ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDliYjFjYjYuLjg2OWUxYTMgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMyw2ICszLDEwIEBACiAjIHN1YmRpcmVjdG9yaWVzIGhlcmUuIEFkZCB0aGVtIGluIHRoZSAiLmdpdGlnbm9yZSIgZmlsZQogIyBpbiB0aGF0IHN1YmRpcmVjdG9yeSBpbnN0ZWFkLgogIworIyBOT1RFISBQbGVhc2UgdXNlICdnaXQtbHMtZmlsZXMgLWkgLS1leGNsdWRlLXN0YW5kYXJkJworIyBjb21tYW5kIGFmdGVyIGNoYW5naW5nIHRoaXMgZmlsZSwgdG8gc2VlIGlmIHRoZXJlIGFyZQorIyBhbnkgdHJhY2tlZCBmaWxlcyB3aGljaCBnZXQgaWdub3JlZCBhZnRlciB0aGUgY2hhbmdlLgorIwogIyBOb3JtYWwgcnVsZXMKICMKIC4qCkBAIC0xOCwxOSArMjIsMjEgQEAKICoubHN0CiAqLnN5bXR5cGVzCiAqLm9yZGVyCisqLmVsZgorKi5iaW4KKyouZ3oKIAogIwogIyBUb3AtbGV2ZWwgZ2VuZXJpYyBmaWxlcwogIwogdGFncwogVEFHUwotdm1saW51eCoKLSF2bWxpbnV4Lmxkcy5TCi0hdm1saW51eC5sZHMuaAordm1saW51eAogU3lzdGVtLm1hcAogTW9kdWxlLm1hcmtlcnMKIE1vZHVsZS5zeW12ZXJzCiAhLmdpdGlnbm9yZQorIS5tYWlsbWFwCiAKICMKICMgR2VuZXJhdGVkIGluY2x1ZGUgZmlsZXMKZGlmZiAtLWdpdCBhL0NSRURJVFMgYi9DUkVESVRTCmluZGV4IDhmZWM3YjMuLmU5N2JlYTAgMTAwNjQ0Ci0tLSBhL0NSRURJVFMKKysrIGIvQ1JFRElUUwpAQCAtMjYxMSw4ICsyNjExLDkgQEAKIFM6IEF1c3RyYWxpYQogCiBOOiBNaWd1ZWwgT2plZGEgU2FuZG9uaXMKLUU6IG1heGV4dHJlbWVAZ21haWwuY29tCi1XOiBodHRwOi8vbWF4ZXh0cmVtZS5nb29nbGVwYWdlcy5jb20vCitFOiBtaWd1ZWwub2plZGEuc2FuZG9uaXNAZ21haWwuY29tCitXOiBodHRwOi8vbWlndWVsb2plZGEuZXMKK1c6IGh0dHA6Ly9qYWlyLmxhYi5maS51dmEuZXMvfm1pZ29qZWQvCiBEOiBBdXRob3Igb2YgdGhlIGtzMDEwOCwgY2ZhZzEyODY0YiBhbmQgY2ZhZzEyODY0YmZiIGF1eGlsaWFyeSBkaXNwbGF5IGRyaXZlcnMuCiBEOiBNYWludGFpbmVyIG9mIHRoZSBhdXhpbGlhcnkgZGlzcGxheSBkcml2ZXJzIHRyZWUgKGRyaXZlcnMvYXV4ZGlzcGxheS8qKQogUzogQy8gTWllc2VzIDIwLCA5LUIKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYmxvY2sgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJsb2NrCmluZGV4IDRiZDllYTUuLjQ0ZjUyYTQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYmxvY2sKKysrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1ibG9jawpAQCAtMjYsMyArMjYsMzcgQEAKIAkJSS9PIHN0YXRpc3RpY3Mgb2YgcGFydGl0aW9uIDxwYXJ0Pi4gVGhlIGZvcm1hdCBpcyB0aGUKIAkJc2FtZSBhcyB0aGUgYWJvdmUtd3JpdHRlbiAvc3lzL2Jsb2NrLzxkaXNrPi9zdGF0CiAJCWZvcm1hdC4KKworCitXaGF0OgkJL3N5cy9ibG9jay88ZGlzaz4vaW50ZWdyaXR5L2Zvcm1hdAorRGF0ZToJCUp1bmUgMjAwOAorQ29udGFjdDoJTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4KK0Rlc2NyaXB0aW9uOgorCQlNZXRhZGF0YSBmb3JtYXQgZm9yIGludGVncml0eSBjYXBhYmxlIGJsb2NrIGRldmljZS4KKwkJRS5nLiBUMTAtRElGLVRZUEUxLUNSQy4KKworCitXaGF0OgkJL3N5cy9ibG9jay88ZGlzaz4vaW50ZWdyaXR5L3JlYWRfdmVyaWZ5CitEYXRlOgkJSnVuZSAyMDA4CitDb250YWN0OglNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRlcnNlbkBvcmFjbGUuY29tPgorRGVzY3JpcHRpb246CisJCUluZGljYXRlcyB3aGV0aGVyIHRoZSBibG9jayBsYXllciBzaG91bGQgdmVyaWZ5IHRoZQorCQlpbnRlZ3JpdHkgb2YgcmVhZCByZXF1ZXN0cyBzZXJ2aWNlZCBieSBkZXZpY2VzIHRoYXQKKwkJc3VwcG9ydCBzZW5kaW5nIGludGVncml0eSBtZXRhZGF0YS4KKworCitXaGF0OgkJL3N5cy9ibG9jay88ZGlzaz4vaW50ZWdyaXR5L3RhZ19zaXplCitEYXRlOgkJSnVuZSAyMDA4CitDb250YWN0OglNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRlcnNlbkBvcmFjbGUuY29tPgorRGVzY3JpcHRpb246CisJCU51bWJlciBvZiBieXRlcyBvZiBpbnRlZ3JpdHkgdGFnIHNwYWNlIGF2YWlsYWJsZSBwZXIKKwkJNTEyIGJ5dGVzIG9mIGRhdGEuCisKKworV2hhdDoJCS9zeXMvYmxvY2svPGRpc2s+L2ludGVncml0eS93cml0ZV9nZW5lcmF0ZQorRGF0ZToJCUp1bmUgMjAwOAorQ29udGFjdDoJTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4KK0Rlc2NyaXB0aW9uOgorCQlJbmRpY2F0ZXMgd2hldGhlciB0aGUgYmxvY2sgbGF5ZXIgc2hvdWxkIGF1dG9tYXRpY2FsbHkKKwkJZ2VuZXJhdGUgY2hlY2tzdW1zIGZvciB3cml0ZSByZXF1ZXN0cyBib3VuZCBmb3IKKwkJZGV2aWNlcyB0aGF0IHN1cHBvcnQgcmVjZWl2aW5nIGludGVncml0eSBtZXRhZGF0YS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLWNzcyBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLWNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTg1ZWMyCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1idXMtY3NzCkBAIC0wLDAgKzEsMzUgQEAKK1doYXQ6CQkvc3lzL2J1cy9jc3MvZGV2aWNlcy8uLi4vdHlwZQorRGF0ZToJCU1hcmNoIDIwMDgKK0NvbnRhY3Q6CUNvcm5lbGlhIEh1Y2sgPGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbT4KKwkJbGludXgtczM5MEB2Z2VyLmtlcm5lbC5vcmcKK0Rlc2NyaXB0aW9uOglDb250YWlucyB0aGUgc3ViY2hhbm5lbCB0eXBlLCBhcyByZXBvcnRlZCBieSB0aGUgaGFyZHdhcmUuCisJCVRoaXMgYXR0cmlidXRlIGlzIHByZXNlbnQgZm9yIGFsbCBzdWJjaGFubmVsIHR5cGVzLgorCitXaGF0OgkJL3N5cy9idXMvY3NzL2RldmljZXMvLi4uL21vZGFsaWFzCitEYXRlOgkJTWFyY2ggMjAwOAorQ29udGFjdDoJQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgorCQlsaW51eC1zMzkwQHZnZXIua2VybmVsLm9yZworRGVzY3JpcHRpb246CUNvbnRhaW5zIHRoZSBtb2R1bGUgYWxpYXMgYXMgcmVwb3J0ZWQgd2l0aCB1ZXZlbnRzLgorCQlJdCBpcyBvZiB0aGUgZm9ybWF0IGNzczp0PHR5cGU+IGFuZCBwcmVzZW50IGZvciBhbGwKKwkJc3ViY2hhbm5lbCB0eXBlcy4KKworV2hhdDoJCS9zeXMvYnVzL2Nzcy9kcml2ZXJzL2lvX3N1YmNoYW5uZWwvLi4uL2NocGlkcworRGF0ZToJCURlY2VtYmVyIDIwMDIKK0NvbnRhY3Q6CUNvcm5lbGlhIEh1Y2sgPGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbT4KKwkJbGludXgtczM5MEB2Z2VyLmtlcm5lbC5vcmcKK0Rlc2NyaXB0aW9uOglDb250YWlucyB0aGUgaWRzIG9mIHRoZSBjaGFubmVsIHBhdGhzIHVzZWQgYnkgdGhpcworCQlzdWJjaGFubmVsLCBhcyByZXBvcnRlZCBieSB0aGUgY2hhbm5lbCBzdWJzeXN0ZW0KKwkJZHVyaW5nIHN1YmNoYW5uZWwgcmVjb2duaXRpb24uCisJCU5vdGU6IFRoaXMgaXMgYW4gSS9PLXN1YmNoYW5uZWwgc3BlY2lmaWMgYXR0cmlidXRlLgorVXNlcnM6CQlzMzkwLXRvb2xzLCBIQUwKKworV2hhdDoJCS9zeXMvYnVzL2Nzcy9kcml2ZXJzL2lvX3N1YmNoYW5uZWwvLi4uL3BpbXBhbXBvbQorRGF0ZToJCURlY2VtYmVyIDIwMDIKK0NvbnRhY3Q6CUNvcm5lbGlhIEh1Y2sgPGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbT4KKwkJbGludXgtczM5MEB2Z2VyLmtlcm5lbC5vcmcKK0Rlc2NyaXB0aW9uOglDb250YWlucyB0aGUgUElNL1BBTS9QT00gdmFsdWVzLCBhcyByZXBvcnRlZCBieSB0aGUKKwkJY2hhbm5lbCBzdWJzeXN0ZW0gd2hlbiBsYXN0IHF1ZXJpZWQgYnkgdGhlIGNvbW1vbiBJL08KKwkJbGF5ZXIgKHRoaXMgaW1wbGllcyB0aGF0IHRoaXMgYXR0cmlidXRlIGlzIG5vdCBuZWNjZXNzYXJpbHkKKwkJaW4gc3luYyB3aXRoIHRoZSB2YWx1ZXMgY3VycmVudCBpbiB0aGUgY2hhbm5lbCBzdWJzeXN0ZW0pLgorCQlOb3RlOiBUaGlzIGlzIGFuIEkvTy1zdWJjaGFubmVsIHNwZWNpZmljIGF0dHJpYnV0ZS4KK1VzZXJzOgkJczM5MC10b29scywgSEFMCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWZpcm13YXJlLW1lbW1hcCBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtZmlybXdhcmUtbWVtbWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkOTllZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWZpcm13YXJlLW1lbW1hcApAQCAtMCwwICsxLDcxIEBACitXaGF0OgkJL3N5cy9maXJtd2FyZS9tZW1tYXAvCitEYXRlOgkJSnVuZSAyMDA4CitDb250YWN0OglCZXJuaGFyZCBXYWxsZSA8YndhbGxlQHN1c2UuZGU+CitEZXNjcmlwdGlvbjoKKwkJT24gYWxsIHBsYXRmb3JtcywgdGhlIGZpcm13YXJlIHByb3ZpZGVzIGEgbWVtb3J5IG1hcCB3aGljaCB0aGUKKwkJa2VybmVsIHJlYWRzLiBUaGUgcmVzb3VyY2VzIGZyb20gdGhhdCBtZW1vcnkgbWFwIGFyZSByZWdpc3RlcmVkCisJCWluIHRoZSBrZXJuZWwgcmVzb3VyY2UgdHJlZSBhbmQgZXhwb3NlZCB0byB1c2Vyc3BhY2UgdmlhCisJCS9wcm9jL2lvbWVtICh0b2dldGhlciB3aXRoIG90aGVyIHJlc291cmNlcykuCisKKwkJSG93ZXZlciwgb24gbW9zdCBhcmNoaXRlY3R1cmVzIHRoYXQgZmlybXdhcmUtcHJvdmlkZWQgbWVtb3J5CisJCW1hcCBpcyBtb2RpZmllZCBhZnRlcndhcmRzIGJ5IHRoZSBrZXJuZWwgaXRzZWxmLCBlaXRoZXIgYmVjYXVzZQorCQl0aGUga2VybmVsIG1lcmdlcyB0aGF0IG1lbW9yeSBtYXAgd2l0aCBvdGhlciBpbmZvcm1hdGlvbiBvcgorCQlqdXN0IGJlY2F1c2UgdGhlIHVzZXIgb3ZlcndyaXRlcyB0aGF0IG1lbW9yeSBtYXAgdmlhIGNvbW1hbmQKKwkJbGluZS4KKworCQlrZXhlYyBuZWVkcyB0aGUgcmF3IGZpcm13YXJlLXByb3ZpZGVkIG1lbW9yeSBtYXAgdG8gc2V0dXAgdGhlCisJCXBhcmFtZXRlciBzZWdtZW50IG9mIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgYm9vdGVkIHdpdGgKKwkJa2V4ZWMuIEFsc28sIHRoZSByYXcgbWVtb3J5IG1hcCBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZy4gRm9yCisJCXRoYXQgcmVhc29uLCAvc3lzL2Zpcm13YXJlL21lbW1hcCBpcyBhbiBpbnRlcmZhY2UgdGhhdCBwcm92aWRlcworCQl0aGUgcmF3IG1lbW9yeSBtYXAgdG8gdXNlcnNwYWNlLgorCisJCVRoZSBzdHJ1Y3R1cmUgaXMgYXMgZm9sbG93czogVW5kZXIgL3N5cy9maXJtd2FyZS9tZW1tYXAgdGhlcmUKKwkJYXJlIHN1YmRpcmVjdG9yaWVzIHdpdGggdGhlIG51bWJlciBvZiB0aGUgZW50cnkgYXMgdGhlaXIgbmFtZToKKworCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMAorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMQorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMgorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMworCQkJLi4uCisKKwkJVGhlIG1heGltdW0gZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIG1lbW9yeSBtYXAgZW50cmllcyBwcm92aWRlZAorCQlieSB0aGUgZmlybXdhcmUuIFRoZSBvcmRlciBpcyBqdXN0IHRoZSBvcmRlciB0aGF0IHRoZSBmaXJtd2FyZQorCQlwcm92aWRlcy4KKworCQlFYWNoIGRpcmVjdG9yeSBjb250YWlucyB0aHJlZSBmaWxlczoKKworCQlzdGFydAk6IFRoZSBzdGFydCBhZGRyZXNzIChhcyBoZXhhZGVjaW1hbCBudW1iZXIgd2l0aCB0aGUKKwkJCSAgJzB4JyBwcmVmaXgpLgorCQllbmQJOiBUaGUgZW5kIGFkZHJlc3MsIGluY2x1c2l2ZSAocmVnYXJkbGVzcyB3aGV0aGVyIHRoZQorCQkJICBmaXJtd2FyZSBwcm92aWRlcyBpbmNsdXNpdmUgb3IgZXhjbHVzaXZlIHJhbmdlcykuCisJCXR5cGUJOiBUeXBlIG9mIHRoZSBlbnRyeSBhcyBzdHJpbmcuIFNlZSBiZWxvdyBmb3IgYSBsaXN0IG9mCisJCQkgIHZhbGlkIHR5cGVzLgorCisJCVNvLCBmb3IgZXhhbXBsZToKKworCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMC9zdGFydAorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMC9lbmQKKwkJCS9zeXMvZmlybXdhcmUvbWVtbWFwLzAvdHlwZQorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMS9zdGFydAorCQkJLi4uCisKKwkJQ3VycmVudGx5IGZvbGxvd2luZyB0eXBlcyBleGlzdDoKKworCQkgIC0gU3lzdGVtIFJBTQorCQkgIC0gQUNQSSBUYWJsZXMKKwkJICAtIEFDUEkgTm9uLXZvbGF0aWxlIFN0b3JhZ2UKKwkJICAtIHJlc2VydmVkCisKKwkJRm9sbG93aW5nIHNoZWxsIHNuaXBwZXQgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSB0aGF0IG1lbW9yeQorCQltYXAgaW4gYSBodW1hbi1yZWFkYWJsZSBmb3JtYXQ6CisKKwkJLS0tLS0tLS0tLS0tLS0tLS0tLS0gODwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkgICMhL2Jpbi9iYXNoCisJCSAgY2QgL3N5cy9maXJtd2FyZS9tZW1tYXAKKwkJICBmb3IgZGlyIGluICogOyBkbworCQkgICAgICBzdGFydD0kKGNhdCAkZGlyL3N0YXJ0KQorCQkgICAgICBlbmQ9JChjYXQgJGRpci9lbmQpCisJCSAgICAgIHR5cGU9JChjYXQgJGRpci90eXBlKQorCQkgICAgICBwcmludGYgIiUwMTZ4LSUwMTZ4ICglcylcbiIgJHN0YXJ0ICRbICRlbmQgKzFdICIkdHlwZSIKKwkJICBkb25lCisJCS0tLS0tLS0tLS0tLS0tLS0tLS0tID44IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vSE9XVE8gYi9Eb2N1bWVudGF0aW9uL0hPV1RPCmluZGV4IDAyOTFhZGUuLjYxOWU4Y2EgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vSE9XVE8KKysrIGIvRG9jdW1lbnRhdGlvbi9IT1dUTwpAQCAtMzc3LDcgKzM3Nyw3IEBACiBidWd6aWxsYS5rZXJuZWwub3JnIGlzIHdoZXJlIHRoZSBMaW51eCBrZXJuZWwgZGV2ZWxvcGVycyB0cmFjayBrZXJuZWwKIGJ1Z3MuICBVc2VycyBhcmUgZW5jb3VyYWdlZCB0byByZXBvcnQgYWxsIGJ1Z3MgdGhhdCB0aGV5IGZpbmQgaW4gdGhpcwogdG9vbC4gIEZvciBkZXRhaWxzIG9uIGhvdyB0byB1c2UgdGhlIGtlcm5lbCBidWd6aWxsYSwgcGxlYXNlIHNlZToKLQlodHRwOi8vdGVzdC5rZXJuZWwub3JnL2J1Z3ppbGxhL2ZhcS5odG1sCisJaHR0cDovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvcGFnZS5jZ2k/aWQ9ZmFxLmh0bWwKIAogVGhlIGZpbGUgUkVQT1JUSU5HLUJVR1MgaW4gdGhlIG1haW4ga2VybmVsIHNvdXJjZSBkaXJlY3RvcnkgaGFzIGEgZ29vZAogdGVtcGxhdGUgZm9yIGhvdyB0byByZXBvcnQgYSBwb3NzaWJsZSBrZXJuZWwgYnVnLCBhbmQgZGV0YWlscyB3aGF0IGtpbmQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vSVJRLWFmZmluaXR5LnR4dCBiL0RvY3VtZW50YXRpb24vSVJRLWFmZmluaXR5LnR4dAppbmRleCA5MzhkN2RkLi5iNGE2MTViIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0lSUS1hZmZpbml0eS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9JUlEtYWZmaW5pdHkudHh0CkBAIC0xLDE3ICsxLDI2IEBACitDaGFuZ2VMb2c6CisJU3RhcnRlZCBieSBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KKwlVcGRhdGUgYnkgTWF4IEtyYXNueWFuc2t5IDxtYXhrQHF1YWxjb21tLmNvbT4KIAotU01QIElSUSBhZmZpbml0eSwgc3RhcnRlZCBieSBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KLQorU01QIElSUSBhZmZpbml0eQogCiAvcHJvYy9pcnEvSVJRIy9zbXBfYWZmaW5pdHkgc3BlY2lmaWVzIHdoaWNoIHRhcmdldCBDUFVzIGFyZSBwZXJtaXR0ZWQKIGZvciBhIGdpdmVuIElSUSBzb3VyY2UuIEl0J3MgYSBiaXRtYXNrIG9mIGFsbG93ZWQgQ1BVcy4gSXQncyBub3QgYWxsb3dlZAogdG8gdHVybiBvZmYgYWxsIENQVXMsIGFuZCBpZiBhbiBJUlEgY29udHJvbGxlciBkb2VzIG5vdCBzdXBwb3J0IElSUQogYWZmaW5pdHkgdGhlbiB0aGUgdmFsdWUgd2lsbCBub3QgY2hhbmdlIGZyb20gdGhlIGRlZmF1bHQgMHhmZmZmZmZmZi4KIAotSGVyZSBpcyBhbiBleGFtcGxlIG9mIHJlc3RyaWN0aW5nIElSUTQ0IChldGgxKSB0byBDUFUwLTMgdGhlbiByZXN0cmljdGluZwotdGhlIElSUSB0byBDUFU0LTcgKHRoaXMgaXMgYW4gOC1DUFUgU01QIGJveCk6CisvcHJvYy9pcnEvZGVmYXVsdF9zbXBfYWZmaW5pdHkgc3BlY2lmaWVzIGRlZmF1bHQgYWZmaW5pdHkgbWFzayB0aGF0IGFwcGxpZXMKK3RvIGFsbCBub24tYWN0aXZlIElSUXMuIE9uY2UgSVJRIGlzIGFsbG9jYXRlZC9hY3RpdmF0ZWQgaXRzIGFmZmluaXR5IGJpdG1hc2sKK3dpbGwgYmUgc2V0IHRvIHRoZSBkZWZhdWx0IG1hc2suIEl0IGNhbiB0aGVuIGJlIGNoYW5nZWQgYXMgZGVzY3JpYmVkIGFib3ZlLgorRGVmYXVsdCBtYXNrIGlzIDB4ZmZmZmZmZmYuCiAKK0hlcmUgaXMgYW4gZXhhbXBsZSBvZiByZXN0cmljdGluZyBJUlE0NCAoZXRoMSkgdG8gQ1BVMC0zIHRoZW4gcmVzdHJpY3RpbmcKK2l0IHRvIENQVTQtNyAodGhpcyBpcyBhbiA4LUNQVSBTTVAgYm94KToKKworW3Jvb3RAbW9vbiA0NF0jIGNkIC9wcm9jL2lycS80NAogW3Jvb3RAbW9vbiA0NF0jIGNhdCBzbXBfYWZmaW5pdHkKIGZmZmZmZmZmCisKIFtyb290QG1vb24gNDRdIyBlY2hvIDBmID4gc21wX2FmZmluaXR5CiBbcm9vdEBtb29uIDQ0XSMgY2F0IHNtcF9hZmZpbml0eQogMDAwMDAwMGYKQEAgLTIxLDE3ICszMCwyNyBAQAogLS0tIGhlbGwgcGluZyBzdGF0aXN0aWNzIC0tLQogNjAyOSBwYWNrZXRzIHRyYW5zbWl0dGVkLCA2MDI3IHBhY2tldHMgcmVjZWl2ZWQsIDAlIHBhY2tldCBsb3NzCiByb3VuZC10cmlwIG1pbi9hdmcvbWF4ID0gMC4xLzAuMS8wLjQgbXMKLVtyb290QG1vb24gNDRdIyBjYXQgL3Byb2MvaW50ZXJydXB0cyB8IGdyZXAgNDQ6Ci0gNDQ6ICAgICAgICAgIDAgICAgICAgMTc4NSAgICAgICAxNzg1ICAgICAgIDE3ODMgICAgICAgMTc4MyAgICAgICAgICAxCi0xICAgICAgICAgIDAgICBJTy1BUElDLWxldmVsICBldGgxCitbcm9vdEBtb29uIDQ0XSMgY2F0IC9wcm9jL2ludGVycnVwdHMgfCBncmVwICdDUFVcfDQ0OicKKyAgICAgICAgICAgQ1BVMCAgICAgICBDUFUxICAgICAgIENQVTIgICAgICAgQ1BVMyAgICAgIENQVTQgICAgICAgQ1BVNSAgICAgICAgQ1BVNiAgICAgICBDUFU3CisgNDQ6ICAgICAgIDEwNjggICAgICAgMTc4NSAgICAgICAxNzg1ICAgICAgIDE3ODMgICAgICAgICAwICAgICAgICAgIDAgICAgICAgICAgIDAgICAgICAgICAwICAgIElPLUFQSUMtbGV2ZWwgIGV0aDEKKworQXMgY2FuIGJlIHNlZW4gZnJvbSB0aGUgbGluZSBhYm92ZSBJUlE0NCB3YXMgZGVsaXZlcmVkIG9ubHkgdG8gdGhlIGZpcnN0IGZvdXIKK3Byb2Nlc3NvcnMgKDAtMykuCitOb3cgbGV0cyByZXN0cmljdCB0aGF0IElSUSB0byBDUFUoNC03KS4KKwogW3Jvb3RAbW9vbiA0NF0jIGVjaG8gZjAgPiBzbXBfYWZmaW5pdHkKK1tyb290QG1vb24gNDRdIyBjYXQgc21wX2FmZmluaXR5CiswMDAwMDBmMAogW3Jvb3RAbW9vbiA0NF0jIHBpbmcgLWYgaAogUElORyBoZWxsICgxOTUuNC43LjMpOiA1NiBkYXRhIGJ5dGVzCiAuLgogLS0tIGhlbGwgcGluZyBzdGF0aXN0aWNzIC0tLQogMjc3OSBwYWNrZXRzIHRyYW5zbWl0dGVkLCAyNzc3IHBhY2tldHMgcmVjZWl2ZWQsIDAlIHBhY2tldCBsb3NzCiByb3VuZC10cmlwIG1pbi9hdmcvbWF4ID0gMC4xLzAuNS81ODUuNCBtcwotW3Jvb3RAbW9vbiA0NF0jIGNhdCAvcHJvYy9pbnRlcnJ1cHRzIHwgZ3JlcCA0NDoKLSA0NDogICAgICAgMTA2OCAgICAgICAxNzg1ICAgICAgIDE3ODUgICAgICAgMTc4NCAgICAgICAxNzg0ICAgICAgIDEwNjkgICAgICAgMTA3MCAgICAgICAxMDY5ICAgSU8tQVBJQy1sZXZlbCAgZXRoMQotW3Jvb3RAbW9vbiA0NF0jCitbcm9vdEBtb29uIDQ0XSMgY2F0IC9wcm9jL2ludGVycnVwdHMgfCAgJ0NQVVx8NDQ6JworICAgICAgICAgICBDUFUwICAgICAgIENQVTEgICAgICAgQ1BVMiAgICAgICBDUFUzICAgICAgQ1BVNCAgICAgICBDUFU1ICAgICAgICBDUFU2ICAgICAgIENQVTcKKyA0NDogICAgICAgMTA2OCAgICAgICAxNzg1ICAgICAgIDE3ODUgICAgICAgMTc4MyAgICAgIDE3ODQgICAgICAgMTA2OSAgICAgICAgMTA3MCAgICAgICAxMDY5ICAgSU8tQVBJQy1sZXZlbCAgZXRoMQorCitUaGlzIHRpbWUgYXJvdW5kIElSUTQ0IHdhcyBkZWxpdmVyZWQgb25seSB0byB0aGUgbGFzdCBmb3VyIHByb2Nlc3NvcnMuCitpLmUgY291bnRlcnMgZm9yIHRoZSBDUFUwLTMgZGlkIG5vdCBjaGFuZ2UuCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWNjb3VudGluZy90YXNrc3RhdHMtc3RydWN0LnR4dCBiL0RvY3VtZW50YXRpb24vYWNjb3VudGluZy90YXNrc3RhdHMtc3RydWN0LnR4dAppbmRleCA4YWE3NTI5Li5jZDc4NGY0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2FjY291bnRpbmcvdGFza3N0YXRzLXN0cnVjdC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9hY2NvdW50aW5nL3Rhc2tzdGF0cy1zdHJ1Y3QudHh0CkBAIC0yNCw2ICsyNCw4IEBACiAKIDQpIFBlci10YXNrIGFuZCBwZXItdGhyZWFkIGNvbnRleHQgc3dpdGNoIGNvdW50IHN0YXRpc3RpY3MKIAorNSkgVGltZSBhY2NvdW50aW5nIGZvciBTTVQgbWFjaGluZXMKKwogRnV0dXJlIGV4dGVuc2lvbiBzaG91bGQgYWRkIGZpZWxkcyB0byB0aGUgZW5kIG9mIHRoZSB0YXNrc3RhdHMgc3RydWN0LCBhbmQKIHNob3VsZCBub3QgY2hhbmdlIHRoZSByZWxhdGl2ZSBwb3NpdGlvbiBvZiBlYWNoIGZpZWxkIHdpdGhpbiB0aGUgc3RydWN0LgogCkBAIC0xNjQsNCArMTY2LDggQEAKIAlfX3U2NAludmNzdzsJCQkvKiBDb250ZXh0IHZvbHVudGFyeSBzd2l0Y2ggY291bnRlciAqLwogCV9fdTY0CW5pdmNzdzsJCQkvKiBDb250ZXh0IGludm9sdW50YXJ5IHN3aXRjaCBjb3VudGVyICovCiAKKzUpIFRpbWUgYWNjb3VudGluZyBmb3IgU01UIG1hY2hpbmVzCisJX191NjQJYWNfdXRpbWVzY2FsZWQ7CQkvKiB1dGltZSBzY2FsZWQgb24gZnJlcXVlbmN5IGV0YyAqLworCV9fdTY0CWFjX3N0aW1lc2NhbGVkOwkJLyogc3RpbWUgc2NhbGVkIG9uIGZyZXF1ZW5jeSBldGMgKi8KKwlfX3U2NAljcHVfc2NhbGVkX3J1bl9yZWFsX3RvdGFsOyAvKiBzY2FsZWQgY3B1X3J1bl9yZWFsX3RvdGFsICovCiB9CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkvY2ZhZzEyODY0YiBiL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9jZmFnMTI4NjRiCmluZGV4IGI3MTQxODMuLmViN2JlMzkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9jZmFnMTI4NjRiCisrKyBiL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9jZmFnMTI4NjRiCkBAIC0zLDcgKzMsNyBAQAogCT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIExpY2Vuc2U6CQlHUEx2MgotQXV0aG9yICYgTWFpbnRhaW5lcjoJTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4KK0F1dGhvciAmIE1haW50YWluZXI6CU1pZ3VlbCBPamVkYSBTYW5kb25pcwogRGF0ZToJCQkyMDA2LTEwLTI3CiAKIApAQCAtMjIsNyArMjIsNyBAQAogMS4gRFJJVkVSIElORk9STUFUSU9OCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotVGhpcyBkcml2ZXIgc3VwcG9ydCBvbmUgY2ZhZzEyODY0YiBkaXNwbGF5IGF0IHRpbWUuCitUaGlzIGRyaXZlciBzdXBwb3J0cyBhIGNmYWcxMjg2NGIgTENELgogCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2NmYWcxMjg2NGItZXhhbXBsZS5jIGIvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2NmYWcxMjg2NGItZXhhbXBsZS5jCmluZGV4IDdiZmFjMzUuLjJjYWVlYTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9jZmFnMTI4NjRiLWV4YW1wbGUuYworKysgYi9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkvY2ZhZzEyODY0Yi1leGFtcGxlLmMKQEAgLTQsNyArNCw3IEBACiAgKiBEZXNjcmlwdGlvbjogY2ZhZzEyODY0YiBMQ0QgdXNlcnNwYWNlIGV4YW1wbGUgcHJvZ3JhbQogICogICAgIExpY2Vuc2U6IEdQTHYyCiAgKgotICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4KKyAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcwogICogICAgICAgIERhdGU6IDIwMDYtMTAtMzEKICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9rczAxMDggYi9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkva3MwMTA4CmluZGV4IDkyYjAzYjYuLjhkZGRhMGMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9rczAxMDgKKysrIGIvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2tzMDEwOApAQCAtMyw3ICszLDcgQEAKIAk9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogTGljZW5zZToJCUdQTHYyCi1BdXRob3IgJiBNYWludGFpbmVyOglNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPgorQXV0aG9yICYgTWFpbnRhaW5lcjoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCiBEYXRlOgkJCTIwMDYtMTAtMjcKIAogCkBAIC0yMSw3ICsyMSw3IEBACiAxLiBEUklWRVIgSU5GT1JNQVRJT04KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1UaGlzIGRyaXZlciBzdXBwb3J0IHRoZSBrczAxMDggTENEIGNvbnRyb2xsZXIuCitUaGlzIGRyaXZlciBzdXBwb3J0cyB0aGUga3MwMTA4IExDRCBjb250cm9sbGVyLgogCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ibG9jay9kYXRhLWludGVncml0eS50eHQgYi9Eb2N1bWVudGF0aW9uL2Jsb2NrL2RhdGEtaW50ZWdyaXR5LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWRjOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9ibG9jay9kYXRhLWludGVncml0eS50eHQKQEAgLTAsMCArMSwzMjcgQEAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEuIElOVFJPRFVDVElPTgorCitNb2Rlcm4gZmlsZXN5c3RlbXMgZmVhdHVyZSBjaGVja3N1bW1pbmcgb2YgZGF0YSBhbmQgbWV0YWRhdGEgdG8KK3Byb3RlY3QgYWdhaW5zdCBkYXRhIGNvcnJ1cHRpb24uICBIb3dldmVyLCB0aGUgZGV0ZWN0aW9uIG9mIHRoZQorY29ycnVwdGlvbiBpcyBkb25lIGF0IHJlYWQgdGltZSB3aGljaCBjb3VsZCBwb3RlbnRpYWxseSBiZSBtb250aHMKK2FmdGVyIHRoZSBkYXRhIHdhcyB3cml0dGVuLiAgQXQgdGhhdCBwb2ludCB0aGUgb3JpZ2luYWwgZGF0YSB0aGF0IHRoZQorYXBwbGljYXRpb24gdHJpZWQgdG8gd3JpdGUgaXMgbW9zdCBsaWtlbHkgbG9zdC4KKworVGhlIHNvbHV0aW9uIGlzIHRvIGVuc3VyZSB0aGF0IHRoZSBkaXNrIGlzIGFjdHVhbGx5IHN0b3Jpbmcgd2hhdCB0aGUKK2FwcGxpY2F0aW9uIG1lYW50IGl0IHRvLiAgUmVjZW50IGFkZGl0aW9ucyB0byBib3RoIHRoZSBTQ1NJIGZhbWlseQorcHJvdG9jb2xzIChTQkMgRGF0YSBJbnRlZ3JpdHkgRmllbGQsIFNDQyBwcm90ZWN0aW9uIHByb3Bvc2FsKSBhcyB3ZWxsCithcyBTQVRBL1QxMyAoRXh0ZXJuYWwgUGF0aCBQcm90ZWN0aW9uKSB0cnkgdG8gcmVtZWR5IHRoaXMgYnkgYWRkaW5nCitzdXBwb3J0IGZvciBhcHBlbmRpbmcgaW50ZWdyaXR5IG1ldGFkYXRhIHRvIGFuIEkvTy4gIFRoZSBpbnRlZ3JpdHkKK21ldGFkYXRhIChvciBwcm90ZWN0aW9uIGluZm9ybWF0aW9uIGluIFNDU0kgdGVybWlub2xvZ3kpIGluY2x1ZGVzIGEKK2NoZWNrc3VtIGZvciBlYWNoIHNlY3RvciBhcyB3ZWxsIGFzIGFuIGluY3JlbWVudGluZyBjb3VudGVyIHRoYXQKK2Vuc3VyZXMgdGhlIGluZGl2aWR1YWwgc2VjdG9ycyBhcmUgd3JpdHRlbiBpbiB0aGUgcmlnaHQgb3JkZXIuICBBbmQKK2ZvciBzb21lIHByb3RlY3Rpb24gc2NoZW1lcyBhbHNvIHRoYXQgdGhlIEkvTyBpcyB3cml0dGVuIHRvIHRoZSByaWdodAorcGxhY2Ugb24gZGlzay4KKworQ3VycmVudCBzdG9yYWdlIGNvbnRyb2xsZXJzIGFuZCBkZXZpY2VzIGltcGxlbWVudCB2YXJpb3VzIHByb3RlY3RpdmUKK21lYXN1cmVzLCBmb3IgaW5zdGFuY2UgY2hlY2tzdW1taW5nIGFuZCBzY3J1YmJpbmcuICBCdXQgdGhlc2UKK3RlY2hub2xvZ2llcyBhcmUgd29ya2luZyBpbiB0aGVpciBvd24gaXNvbGF0ZWQgZG9tYWlucyBvciBhdCBiZXN0CitiZXR3ZWVuIGFkamFjZW50IG5vZGVzIGluIHRoZSBJL08gcGF0aC4gIFRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dAorRElGIGFuZCB0aGUgb3RoZXIgaW50ZWdyaXR5IGV4dGVuc2lvbnMgaXMgdGhhdCB0aGUgcHJvdGVjdGlvbiBmb3JtYXQKK2lzIHdlbGwgZGVmaW5lZCBhbmQgZXZlcnkgbm9kZSBpbiB0aGUgSS9PIHBhdGggY2FuIHZlcmlmeSB0aGUKK2ludGVncml0eSBvZiB0aGUgSS9PIGFuZCByZWplY3QgaXQgaWYgY29ycnVwdGlvbiBpcyBkZXRlY3RlZC4gIFRoaXMKK2FsbG93cyBub3Qgb25seSBjb3JydXB0aW9uIHByZXZlbnRpb24gYnV0IGFsc28gaXNvbGF0aW9uIG9mIHRoZSBwb2ludAorb2YgZmFpbHVyZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMi4gVEhFIERBVEEgSU5URUdSSVRZIEVYVEVOU0lPTlMKKworQXMgd3JpdHRlbiwgdGhlIHByb3RvY29sIGV4dGVuc2lvbnMgb25seSBwcm90ZWN0IHRoZSBwYXRoIGJldHdlZW4KK2NvbnRyb2xsZXIgYW5kIHN0b3JhZ2UgZGV2aWNlLiAgSG93ZXZlciwgbWFueSBjb250cm9sbGVycyBhY3R1YWxseQorYWxsb3cgdGhlIG9wZXJhdGluZyBzeXN0ZW0gdG8gaW50ZXJhY3Qgd2l0aCB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhCisoSU1EKS4gIFdlIGhhdmUgYmVlbiB3b3JraW5nIHdpdGggc2V2ZXJhbCBGQy9TQVMgSEJBIHZlbmRvcnMgdG8gZW5hYmxlCit0aGUgcHJvdGVjdGlvbiBpbmZvcm1hdGlvbiB0byBiZSB0cmFuc2ZlcnJlZCB0byBhbmQgZnJvbSB0aGVpcgorY29udHJvbGxlcnMuCisKK1RoZSBTQ1NJIERhdGEgSW50ZWdyaXR5IEZpZWxkIHdvcmtzIGJ5IGFwcGVuZGluZyA4IGJ5dGVzIG9mIHByb3RlY3Rpb24KK2luZm9ybWF0aW9uIHRvIGVhY2ggc2VjdG9yLiAgVGhlIGRhdGEgKyBpbnRlZ3JpdHkgbWV0YWRhdGEgaXMgc3RvcmVkCitpbiA1MjAgYnl0ZSBzZWN0b3JzIG9uIGRpc2suICBEYXRhICsgSU1EIGFyZSBpbnRlcmxlYXZlZCB3aGVuCit0cmFuc2ZlcnJlZCBiZXR3ZWVuIHRoZSBjb250cm9sbGVyIGFuZCB0YXJnZXQuICBUaGUgVDEzIHByb3Bvc2FsIGlzCitzaW1pbGFyLgorCitCZWNhdXNlIGl0IGlzIGhpZ2hseSBpbmNvbnZlbmllbnQgZm9yIG9wZXJhdGluZyBzeXN0ZW1zIHRvIGRlYWwgd2l0aAorNTIwIChhbmQgNDEwNCkgYnl0ZSBzZWN0b3JzLCB3ZSBhcHByb2FjaGVkIHNldmVyYWwgSEJBIHZlbmRvcnMgYW5kCitlbmNvdXJhZ2VkIHRoZW0gdG8gYWxsb3cgc2VwYXJhdGlvbiBvZiB0aGUgZGF0YSBhbmQgaW50ZWdyaXR5IG1ldGFkYXRhCitzY2F0dGVyLWdhdGhlciBsaXN0cy4KKworVGhlIGNvbnRyb2xsZXIgd2lsbCBpbnRlcmxlYXZlIHRoZSBidWZmZXJzIG9uIHdyaXRlIGFuZCBzcGxpdCB0aGVtIG9uCityZWFkLiAgVGhpcyBtZWFucyB0aGF0IHRoZSBMaW51eCBjYW4gRE1BIHRoZSBkYXRhIGJ1ZmZlcnMgdG8gYW5kIGZyb20KK2hvc3QgbWVtb3J5IHdpdGhvdXQgY2hhbmdlcyB0byB0aGUgcGFnZSBjYWNoZS4KKworQWxzbywgdGhlIDE2LWJpdCBDUkMgY2hlY2tzdW0gbWFuZGF0ZWQgYnkgYm90aCB0aGUgU0NTSSBhbmQgU0FUQSBzcGVjcworaXMgc29tZXdoYXQgaGVhdnkgdG8gY29tcHV0ZSBpbiBzb2Z0d2FyZS4gIEJlbmNobWFya3MgZm91bmQgdGhhdAorY2FsY3VsYXRpbmcgdGhpcyBjaGVja3N1bSBoYWQgYSBzaWduaWZpY2FudCBpbXBhY3Qgb24gc3lzdGVtCitwZXJmb3JtYW5jZSBmb3IgYSBudW1iZXIgb2Ygd29ya2xvYWRzLiAgU29tZSBjb250cm9sbGVycyBhbGxvdyBhCitsaWdodGVyLXdlaWdodCBjaGVja3N1bSB0byBiZSB1c2VkIHdoZW4gaW50ZXJmYWNpbmcgd2l0aCB0aGUgb3BlcmF0aW5nCitzeXN0ZW0uICBFbXVsZXgsIGZvciBpbnN0YW5jZSwgc3VwcG9ydHMgdGhlIFRDUC9JUCBjaGVja3N1bSBpbnN0ZWFkLgorVGhlIElQIGNoZWNrc3VtIHJlY2VpdmVkIGZyb20gdGhlIE9TIGlzIGNvbnZlcnRlZCB0byB0aGUgMTYtYml0IENSQword2hlbiB3cml0aW5nIGFuZCB2aWNlIHZlcnNhLiAgVGhpcyBhbGxvd3MgdGhlIGludGVncml0eSBtZXRhZGF0YSB0byBiZQorZ2VuZXJhdGVkIGJ5IExpbnV4IG9yIHRoZSBhcHBsaWNhdGlvbiBhdCB2ZXJ5IGxvdyBjb3N0IChjb21wYXJhYmxlIHRvCitzb2Z0d2FyZSBSQUlENSkuCisKK1RoZSBJUCBjaGVja3N1bSBpcyB3ZWFrZXIgdGhhbiB0aGUgQ1JDIGluIHRlcm1zIG9mIGRldGVjdGluZyBiaXQKK2Vycm9ycy4gIEhvd2V2ZXIsIHRoZSBzdHJlbmd0aCBpcyByZWFsbHkgaW4gdGhlIHNlcGFyYXRpb24gb2YgdGhlIGRhdGEKK2J1ZmZlcnMgYW5kIHRoZSBpbnRlZ3JpdHkgbWV0YWRhdGEuICBUaGVzZSB0d28gZGlzdGluY3QgYnVmZmVycyBtdWNoCittYXRjaCB1cCBmb3IgYW4gSS9PIHRvIGNvbXBsZXRlLgorCitUaGUgc2VwYXJhdGlvbiBvZiB0aGUgZGF0YSBhbmQgaW50ZWdyaXR5IG1ldGFkYXRhIGJ1ZmZlcnMgYXMgd2VsbCBhcwordGhlIGNob2ljZSBpbiBjaGVja3N1bXMgaXMgcmVmZXJyZWQgdG8gYXMgdGhlIERhdGEgSW50ZWdyaXR5CitFeHRlbnNpb25zLiAgQXMgdGhlc2UgZXh0ZW5zaW9ucyBhcmUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhlIHByb3RvY29sCitib2RpZXMgKFQxMCwgVDEzKSwgT3JhY2xlIGFuZCBpdHMgcGFydG5lcnMgYXJlIHRyeWluZyB0byBzdGFuZGFyZGl6ZQordGhlbSB3aXRoaW4gdGhlIFN0b3JhZ2UgTmV0d29ya2luZyBJbmR1c3RyeSBBc3NvY2lhdGlvbi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMy4gS0VSTkVMIENIQU5HRVMKKworVGhlIGRhdGEgaW50ZWdyaXR5IGZyYW1ld29yayBpbiBMaW51eCBlbmFibGVzIHByb3RlY3Rpb24gaW5mb3JtYXRpb24KK3RvIGJlIHBpbm5lZCB0byBJL09zIGFuZCBzZW50IHRvL3JlY2VpdmVkIGZyb20gY29udHJvbGxlcnMgdGhhdAorc3VwcG9ydCBpdC4KKworVGhlIGFkdmFudGFnZSB0byB0aGUgaW50ZWdyaXR5IGV4dGVuc2lvbnMgaW4gU0NTSSBhbmQgU0FUQSBpcyB0aGF0Cit0aGV5IGVuYWJsZSB1cyB0byBwcm90ZWN0IHRoZSBlbnRpcmUgcGF0aCBmcm9tIGFwcGxpY2F0aW9uIHRvIHN0b3JhZ2UKK2RldmljZS4gIEhvd2V2ZXIsIGF0IHRoZSBzYW1lIHRpbWUgdGhpcyBpcyBhbHNvIHRoZSBiaWdnZXN0CitkaXNhZHZhbnRhZ2UuIEl0IG1lYW5zIHRoYXQgdGhlIHByb3RlY3Rpb24gaW5mb3JtYXRpb24gbXVzdCBiZSBpbiBhCitmb3JtYXQgdGhhdCBjYW4gYmUgdW5kZXJzdG9vZCBieSB0aGUgZGlzay4KKworR2VuZXJhbGx5IExpbnV4L1BPU0lYIGFwcGxpY2F0aW9ucyBhcmUgYWdub3N0aWMgdG8gdGhlIGludHJpY2FjaWVzIG9mCit0aGUgc3RvcmFnZSBkZXZpY2VzIHRoZXkgYXJlIGFjY2Vzc2luZy4gIFRoZSB2aXJ0dWFsIGZpbGVzeXN0ZW0gc3dpdGNoCithbmQgdGhlIGJsb2NrIGxheWVyIG1ha2UgdGhpbmdzIGxpa2UgaGFyZHdhcmUgc2VjdG9yIHNpemUgYW5kCit0cmFuc3BvcnQgcHJvdG9jb2xzIGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQgdG8gdGhlIGFwcGxpY2F0aW9uLgorCitIb3dldmVyLCB0aGlzIGxldmVsIG9mIGRldGFpbCBpcyByZXF1aXJlZCB3aGVuIHByZXBhcmluZyB0aGUKK3Byb3RlY3Rpb24gaW5mb3JtYXRpb24gdG8gc2VuZCB0byBhIGRpc2suICBDb25zZXF1ZW50bHksIHRoZSB2ZXJ5Citjb25jZXB0IG9mIGFuIGVuZC10by1lbmQgcHJvdGVjdGlvbiBzY2hlbWUgaXMgYSBsYXllcmluZyB2aW9sYXRpb24uCitJdCBpcyBjb21wbGV0ZWx5IHVucmVhc29uYWJsZSBmb3IgYW4gYXBwbGljYXRpb24gdG8gYmUgYXdhcmUgd2hldGhlcgoraXQgaXMgYWNjZXNzaW5nIGEgU0NTSSBvciBTQVRBIGRpc2suCisKK1RoZSBkYXRhIGludGVncml0eSBzdXBwb3J0IGltcGxlbWVudGVkIGluIExpbnV4IGF0dGVtcHRzIHRvIGhpZGUgdGhpcworZnJvbSB0aGUgYXBwbGljYXRpb24uICBBcyBmYXIgYXMgdGhlIGFwcGxpY2F0aW9uIChhbmQgdG8gc29tZSBleHRlbnQKK3RoZSBrZXJuZWwpIGlzIGNvbmNlcm5lZCwgdGhlIGludGVncml0eSBtZXRhZGF0YSBpcyBvcGFxdWUgaW5mb3JtYXRpb24KK3RoYXQncyBhdHRhY2hlZCB0byB0aGUgSS9PLgorCitUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBhbGxvd3MgdGhlIGJsb2NrIGxheWVyIHRvIGF1dG9tYXRpY2FsbHkKK2dlbmVyYXRlIHRoZSBwcm90ZWN0aW9uIGluZm9ybWF0aW9uIGZvciBhbnkgSS9PLiAgRXZlbnR1YWxseSB0aGUKK2ludGVudCBpcyB0byBtb3ZlIHRoZSBpbnRlZ3JpdHkgbWV0YWRhdGEgY2FsY3VsYXRpb24gdG8gdXNlcnNwYWNlIGZvcgordXNlciBkYXRhLiAgTWV0YWRhdGEgYW5kIG90aGVyIEkvTyB0aGF0IG9yaWdpbmF0ZXMgd2l0aGluIHRoZSBrZXJuZWwKK3dpbGwgc3RpbGwgdXNlIHRoZSBhdXRvbWF0aWMgZ2VuZXJhdGlvbiBpbnRlcmZhY2UuCisKK1NvbWUgc3RvcmFnZSBkZXZpY2VzIGFsbG93IGVhY2ggaGFyZHdhcmUgc2VjdG9yIHRvIGJlIHRhZ2dlZCB3aXRoIGEKKzE2LWJpdCB2YWx1ZS4gIFRoZSBvd25lciBvZiB0aGlzIHRhZyBzcGFjZSBpcyB0aGUgb3duZXIgb2YgdGhlIGJsb2NrCitkZXZpY2UuICBJLmUuIHRoZSBmaWxlc3lzdGVtIGluIG1vc3QgY2FzZXMuICBUaGUgZmlsZXN5c3RlbSBjYW4gdXNlCit0aGlzIGV4dHJhIHNwYWNlIHRvIHRhZyBzZWN0b3JzIGFzIHRoZXkgc2VlIGZpdC4gIEJlY2F1c2UgdGhlIHRhZworc3BhY2UgaXMgbGltaXRlZCwgdGhlIGJsb2NrIGludGVyZmFjZSBhbGxvd3MgdGFnZ2luZyBiaWdnZXIgY2h1bmtzIGJ5Cit3YXkgb2YgaW50ZXJsZWF2aW5nLiAgVGhpcyB3YXksIDgqMTYgYml0cyBvZiBpbmZvcm1hdGlvbiBjYW4gYmUKK2F0dGFjaGVkIHRvIGEgdHlwaWNhbCA0S0IgZmlsZXN5c3RlbSBibG9jay4KKworVGhpcyBhbHNvIG1lYW5zIHRoYXQgYXBwbGljYXRpb25zIHN1Y2ggYXMgZnNjayBhbmQgbWtmcyB3aWxsIG5lZWQKK2FjY2VzcyB0byBtYW5pcHVsYXRlIHRoZSB0YWdzIGZyb20gdXNlciBzcGFjZS4gIEEgcGFzc3Rocm91Z2gKK2ludGVyZmFjZSBmb3IgdGhpcyBpcyBiZWluZyB3b3JrZWQgb24uCisKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorNC4gQkxPQ0sgTEFZRVIgSU1QTEVNRU5UQVRJT04gREVUQUlMUworCis0LjEgQklPCisKK1RoZSBkYXRhIGludGVncml0eSBwYXRjaGVzIGFkZCBhIG5ldyBmaWVsZCB0byBzdHJ1Y3QgYmlvIHdoZW4KK0NPTkZJR19CTEtfREVWX0lOVEVHUklUWSBpcyBlbmFibGVkLiAgYmlvLT5iaV9pbnRlZ3JpdHkgaXMgYSBwb2ludGVyCit0byBhIHN0cnVjdCBiaXAgd2hpY2ggY29udGFpbnMgdGhlIGJpbyBpbnRlZ3JpdHkgcGF5bG9hZC4gIEVzc2VudGlhbGx5CithIGJpcCBpcyBhIHRyaW1tZWQgZG93biBzdHJ1Y3QgYmlvIHdoaWNoIGhvbGRzIGEgYmlvX3ZlYyBjb250YWluaW5nCit0aGUgaW50ZWdyaXR5IG1ldGFkYXRhIGFuZCB0aGUgcmVxdWlyZWQgaG91c2VrZWVwaW5nIGluZm9ybWF0aW9uIChidmVjCitwb29sLCB2ZWN0b3IgY291bnQsIGV0Yy4pCisKK0Ega2VybmVsIHN1YnN5c3RlbSBjYW4gZW5hYmxlIGRhdGEgaW50ZWdyaXR5IHByb3RlY3Rpb24gb24gYSBiaW8gYnkKK2NhbGxpbmcgYmlvX2ludGVncml0eV9hbGxvYyhiaW8pLiAgVGhpcyB3aWxsIGFsbG9jYXRlIGFuZCBhdHRhY2ggdGhlCitiaXAgdG8gdGhlIGJpby4KKworSW5kaXZpZHVhbCBwYWdlcyBjb250YWluaW5nIGludGVncml0eSBtZXRhZGF0YSBjYW4gc3Vic2VxdWVudGx5IGJlCithdHRhY2hlZCB1c2luZyBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKCkuCisKK2Jpb19mcmVlKCkgd2lsbCBhdXRvbWF0aWNhbGx5IGZyZWUgdGhlIGJpcC4KKworCis0LjIgQkxPQ0sgREVWSUNFCisKK0JlY2F1c2UgdGhlIGZvcm1hdCBvZiB0aGUgcHJvdGVjdGlvbiBkYXRhIGlzIHRpZWQgdG8gdGhlIHBoeXNpY2FsCitkaXNrLCBlYWNoIGJsb2NrIGRldmljZSBoYXMgYmVlbiBleHRlbmRlZCB3aXRoIGEgYmxvY2sgaW50ZWdyaXR5Citwcm9maWxlIChzdHJ1Y3QgYmxrX2ludGVncml0eSkuICBUaGlzIG9wdGlvbmFsIHByb2ZpbGUgaXMgcmVnaXN0ZXJlZAord2l0aCB0aGUgYmxvY2sgbGF5ZXIgdXNpbmcgYmxrX2ludGVncml0eV9yZWdpc3RlcigpLgorCitUaGUgcHJvZmlsZSBjb250YWlucyBjYWxsYmFjayBmdW5jdGlvbnMgZm9yIGdlbmVyYXRpbmcgYW5kIHZlcmlmeWluZwordGhlIHByb3RlY3Rpb24gZGF0YSwgYXMgd2VsbCBhcyBnZXR0aW5nIGFuZCBzZXR0aW5nIGFwcGxpY2F0aW9uIHRhZ3MuCitUaGUgcHJvZmlsZSBhbHNvIGNvbnRhaW5zIGEgZmV3IGNvbnN0YW50cyB0byBhaWQgaW4gY29tcGxldGluZywKK21lcmdpbmcgYW5kIHNwbGl0dGluZyB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhLgorCitMYXllcmVkIGJsb2NrIGRldmljZXMgd2lsbCBuZWVkIHRvIHBpY2sgYSBwcm9maWxlIHRoYXQncyBhcHByb3ByaWF0ZQorZm9yIGFsbCBzdWJkZXZpY2VzLiAgYmxrX2ludGVncml0eV9jb21wYXJlKCkgY2FuIGhlbHAgd2l0aCB0aGF0LiAgRE0KK2FuZCBNRCBsaW5lYXIsIFJBSUQwIGFuZCBSQUlEMSBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4gIFJBSUQ0LzUvNgord2lsbCByZXF1aXJlIGV4dHJhIHdvcmsgZHVlIHRvIHRoZSBhcHBsaWNhdGlvbiB0YWcuCisKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorNS4wIEJMT0NLIExBWUVSIElOVEVHUklUWSBBUEkKKworNS4xIE5PUk1BTCBGSUxFU1lTVEVNCisKKyAgICBUaGUgbm9ybWFsIGZpbGVzeXN0ZW0gaXMgdW5hd2FyZSB0aGF0IHRoZSB1bmRlcmx5aW5nIGJsb2NrIGRldmljZQorICAgIGlzIGNhcGFibGUgb2Ygc2VuZGluZy9yZWNlaXZpbmcgaW50ZWdyaXR5IG1ldGFkYXRhLiAgVGhlIElNRCB3aWxsCisgICAgYmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIGJsb2NrIGxheWVyIGF0IHN1Ym1pdF9iaW8oKSB0aW1lCisgICAgaW4gY2FzZSBvZiBhIFdSSVRFLiAgQSBSRUFEIHJlcXVlc3Qgd2lsbCBjYXVzZSB0aGUgSS9PIGludGVncml0eQorICAgIHRvIGJlIHZlcmlmaWVkIHVwb24gY29tcGxldGlvbi4KKworICAgIElNRCBnZW5lcmF0aW9uIGFuZCB2ZXJpZmljYXRpb24gY2FuIGJlIHRvZ2dsZWQgdXNpbmcgdGhlCisKKyAgICAgIC9zeXMvYmxvY2svPGJkZXY+L2ludGVncml0eS93cml0ZV9nZW5lcmF0ZQorCisgICAgYW5kCisKKyAgICAgIC9zeXMvYmxvY2svPGJkZXY+L2ludGVncml0eS9yZWFkX3ZlcmlmeQorCisgICAgZmxhZ3MuCisKKworNS4yIElOVEVHUklUWS1BV0FSRSBGSUxFU1lTVEVNCisKKyAgICBBIGZpbGVzeXN0ZW0gdGhhdCBpcyBpbnRlZ3JpdHktYXdhcmUgY2FuIHByZXBhcmUgSS9PcyB3aXRoIElNRAorICAgIGF0dGFjaGVkLiAgSXQgY2FuIGFsc28gdXNlIHRoZSBhcHBsaWNhdGlvbiB0YWcgc3BhY2UgaWYgdGhpcyBpcworICAgIHN1cHBvcnRlZCBieSB0aGUgYmxvY2sgZGV2aWNlLgorCisKKyAgICBpbnQgYmRldl9pbnRlZ3JpdHlfZW5hYmxlZChibG9ja19kZXZpY2UsIGludCBydyk7CisKKyAgICAgIGJkZXZfaW50ZWdyaXR5X2VuYWJsZWQoKSB3aWxsIHJldHVybiAxIGlmIHRoZSBibG9jayBkZXZpY2UKKyAgICAgIHN1cHBvcnRzIGludGVncml0eSBtZXRhZGF0YSB0cmFuc2ZlciBmb3IgdGhlIGRhdGEgZGlyZWN0aW9uCisgICAgICBzcGVjaWZpZWQgaW4gJ3J3Jy4KKworICAgICAgYmRldl9pbnRlZ3JpdHlfZW5hYmxlZCgpIGhvbm9ycyB0aGUgd3JpdGVfZ2VuZXJhdGUgYW5kCisgICAgICByZWFkX3ZlcmlmeSBmbGFncyBpbiBzeXNmcyBhbmQgd2lsbCByZXNwb25kIGFjY29yZGluZ2x5LgorCisKKyAgICBpbnQgYmlvX2ludGVncml0eV9wcmVwKGJpbyk7CisKKyAgICAgIFRvIGdlbmVyYXRlIElNRCBmb3IgV1JJVEUgYW5kIHRvIHNldCB1cCBidWZmZXJzIGZvciBSRUFELCB0aGUKKyAgICAgIGZpbGVzeXN0ZW0gbXVzdCBjYWxsIGJpb19pbnRlZ3JpdHlfcHJlcChiaW8pLgorCisgICAgICBQcmlvciB0byBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIHRoZSBiaW8gZGF0YSBkaXJlY3Rpb24gYW5kIHN0YXJ0CisgICAgICBzZWN0b3IgbXVzdCBiZSBzZXQsIGFuZCB0aGUgYmlvIHNob3VsZCBoYXZlIGFsbCBkYXRhIHBhZ2VzCisgICAgICBhZGRlZC4gIEl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZW5zdXJlIHRoYXQgdGhlIGJpbyBkb2VzIG5vdAorICAgICAgY2hhbmdlIHdoaWxlIEkvTyBpcyBpbiBwcm9ncmVzcy4KKworICAgICAgYmlvX2ludGVncml0eV9wcmVwKCkgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlmCisgICAgICBiaW9faW50ZWdyaXR5X2VuYWJsZWQoKSByZXR1cm5lZCAxLgorCisKKyAgICBpbnQgYmlvX2ludGVncml0eV90YWdfc2l6ZShiaW8pOworCisgICAgICBJZiB0aGUgZmlsZXN5c3RlbSB3YW50cyB0byB1c2UgdGhlIGFwcGxpY2F0aW9uIHRhZyBzcGFjZSBpdCB3aWxsCisgICAgICBmaXJzdCBoYXZlIHRvIGZpbmQgb3V0IGhvdyBtdWNoIHN0b3JhZ2Ugc3BhY2UgaXMgYXZhaWxhYmxlLgorICAgICAgQmVjYXVzZSB0YWcgc3BhY2UgaXMgZ2VuZXJhbGx5IGxpbWl0ZWQgKHVzdWFsbHkgMiBieXRlcyBwZXIKKyAgICAgIHNlY3RvciByZWdhcmRsZXNzIG9mIHNlY3RvciBzaXplKSwgdGhlIGludGVncml0eSBmcmFtZXdvcmsKKyAgICAgIHN1cHBvcnRzIGludGVybGVhdmluZyB0aGUgaW5mb3JtYXRpb24gYmV0d2VlbiB0aGUgc2VjdG9ycyBpbiBhbgorICAgICAgSS9PLgorCisgICAgICBGaWxlc3lzdGVtcyBjYW4gY2FsbCBiaW9faW50ZWdyaXR5X3RhZ19zaXplKGJpbykgdG8gZmluZCBvdXQgaG93CisgICAgICBtYW55IGJ5dGVzIG9mIHN0b3JhZ2UgYXJlIGF2YWlsYWJsZSBmb3IgdGhhdCBwYXJ0aWN1bGFyIGJpby4KKworICAgICAgQW5vdGhlciBvcHRpb24gaXMgYmRldl9nZXRfdGFnX3NpemUoYmxvY2tfZGV2aWNlKSB3aGljaCB3aWxsCisgICAgICByZXR1cm4gdGhlIG51bWJlciBvZiBhdmFpbGFibGUgYnl0ZXMgcGVyIGhhcmR3YXJlIHNlY3Rvci4KKworCisgICAgaW50IGJpb19pbnRlZ3JpdHlfc2V0X3RhZyhiaW8sIHZvaWQgKnRhZ19idWYsIGxlbik7CisKKyAgICAgIEFmdGVyIGEgc3VjY2Vzc2Z1bCByZXR1cm4gZnJvbSBiaW9faW50ZWdyaXR5X3ByZXAoKSwKKyAgICAgIGJpb19pbnRlZ3JpdHlfc2V0X3RhZygpIGNhbiBiZSB1c2VkIHRvIGF0dGFjaCBhbiBvcGFxdWUgdGFnCisgICAgICBidWZmZXIgdG8gYSBiaW8uICBPYnZpb3VzbHkgdGhpcyBvbmx5IG1ha2VzIHNlbnNlIGlmIHRoZSBJL08gaXMKKyAgICAgIGEgV1JJVEUuCisKKworICAgIGludCBiaW9faW50ZWdyaXR5X2dldF90YWcoYmlvLCB2b2lkICp0YWdfYnVmLCBsZW4pOworCisgICAgICBTaW1pbGFybHksIGF0IFJFQUQgSS9PIGNvbXBsZXRpb24gdGltZSB0aGUgZmlsZXN5c3RlbSBjYW4KKyAgICAgIHJldHJpZXZlIHRoZSB0YWcgYnVmZmVyIHVzaW5nIGJpb19pbnRlZ3JpdHlfZ2V0X3RhZygpLgorCisKKzYuMyBQQVNTSU5HIEVYSVNUSU5HIElOVEVHUklUWSBNRVRBREFUQQorCisgICAgRmlsZXN5c3RlbXMgdGhhdCBlaXRoZXIgZ2VuZXJhdGUgdGhlaXIgb3duIGludGVncml0eSBtZXRhZGF0YSBvcgorICAgIGFyZSBjYXBhYmxlIG9mIHRyYW5zZmVycmluZyBJTUQgZnJvbSB1c2VyIHNwYWNlIGNhbiB1c2UgdGhlCisgICAgZm9sbG93aW5nIGNhbGxzOgorCisKKyAgICBzdHJ1Y3QgYmlwICogYmlvX2ludGVncml0eV9hbGxvYyhiaW8sIGdmcF9tYXNrLCBucl9wYWdlcyk7CisKKyAgICAgIEFsbG9jYXRlcyB0aGUgYmlvIGludGVncml0eSBwYXlsb2FkIGFuZCBoYW5ncyBpdCBvZmYgb2YgdGhlIGJpby4KKyAgICAgIG5yX3BhZ2VzIGluZGljYXRlIGhvdyBtYW55IHBhZ2VzIG9mIHByb3RlY3Rpb24gZGF0YSBuZWVkIHRvIGJlCisgICAgICBzdG9yZWQgaW4gdGhlIGludGVncml0eSBiaW9fdmVjIGxpc3QgKHNpbWlsYXIgdG8gYmlvX2FsbG9jKCkpLgorCisgICAgICBUaGUgaW50ZWdyaXR5IHBheWxvYWQgd2lsbCBiZSBmcmVlZCBhdCBiaW9fZnJlZSgpIHRpbWUuCisKKworICAgIGludCBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKGJpbywgcGFnZSwgbGVuLCBvZmZzZXQpOworCisgICAgICBBdHRhY2hlcyBhIHBhZ2UgY29udGFpbmluZyBpbnRlZ3JpdHkgbWV0YWRhdGEgdG8gYW4gZXhpc3RpbmcKKyAgICAgIGJpby4gIFRoZSBiaW8gbXVzdCBoYXZlIGFuIGV4aXN0aW5nIGJpcCwKKyAgICAgIGkuZS4gYmlvX2ludGVncml0eV9hbGxvYygpIG11c3QgaGF2ZSBiZWVuIGNhbGxlZC4gIEZvciBhIFdSSVRFLAorICAgICAgdGhlIGludGVncml0eSBtZXRhZGF0YSBpbiB0aGUgcGFnZXMgbXVzdCBiZSBpbiBhIGZvcm1hdAorICAgICAgdW5kZXJzdG9vZCBieSB0aGUgdGFyZ2V0IGRldmljZSB3aXRoIHRoZSBub3RhYmxlIGV4Y2VwdGlvbiB0aGF0CisgICAgICB0aGUgc2VjdG9yIG51bWJlcnMgd2lsbCBiZSByZW1hcHBlZCBhcyB0aGUgcmVxdWVzdCB0cmF2ZXJzZXMgdGhlCisgICAgICBJL08gc3RhY2suICBUaGlzIGltcGxpZXMgdGhhdCB0aGUgcGFnZXMgYWRkZWQgdXNpbmcgdGhpcyBjYWxsCisgICAgICB3aWxsIGJlIG1vZGlmaWVkIGR1cmluZyBJL08hICBUaGUgZmlyc3QgcmVmZXJlbmNlIHRhZyBpbiB0aGUKKyAgICAgIGludGVncml0eSBtZXRhZGF0YSBtdXN0IGhhdmUgYSB2YWx1ZSBvZiBiaXAtPmJpcF9zZWN0b3IuCisKKyAgICAgIFBhZ2VzIGNhbiBiZSBhZGRlZCB1c2luZyBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKCkgYXMgbG9uZyBhcworICAgICAgdGhlcmUgaXMgcm9vbSBpbiB0aGUgYmlwIGJpb192ZWMgYXJyYXkgKG5yX3BhZ2VzKS4KKworICAgICAgVXBvbiBjb21wbGV0aW9uIG9mIGEgUkVBRCBvcGVyYXRpb24sIHRoZSBhdHRhY2hlZCBwYWdlcyB3aWxsCisgICAgICBjb250YWluIHRoZSBpbnRlZ3JpdHkgbWV0YWRhdGEgcmVjZWl2ZWQgZnJvbSB0aGUgc3RvcmFnZSBkZXZpY2UuCisgICAgICBJdCBpcyB1cCB0byB0aGUgcmVjZWl2ZXIgdG8gcHJvY2VzcyB0aGVtIGFuZCB2ZXJpZnkgZGF0YQorICAgICAgaW50ZWdyaXR5IHVwb24gY29tcGxldGlvbi4KKworCis2LjQgUkVHSVNURVJJTkcgQSBCTE9DSyBERVZJQ0UgQVMgQ0FQQUJMRSBPRiBFWENIQU5HSU5HIElOVEVHUklUWQorICAgIE1FVEFEQVRBCisKKyAgICBUbyBlbmFibGUgaW50ZWdyaXR5IGV4Y2hhbmdlIG9uIGEgYmxvY2sgZGV2aWNlIHRoZSBnZW5kaXNrIG11c3QgYmUKKyAgICByZWdpc3RlcmVkIGFzIGNhcGFibGU6CisKKyAgICBpbnQgYmxrX2ludGVncml0eV9yZWdpc3RlcihnZW5kaXNrLCBibGtfaW50ZWdyaXR5KTsKKworICAgICAgVGhlIGJsa19pbnRlZ3JpdHkgc3RydWN0IGlzIGEgdGVtcGxhdGUgYW5kIHNob3VsZCBjb250YWluIHRoZQorICAgICAgZm9sbG93aW5nOgorCisgICAgICAgIHN0YXRpYyBzdHJ1Y3QgYmxrX2ludGVncml0eSBteV9wcm9maWxlID0geworICAgICAgICAgICAgLm5hbWUgICAgICAgICAgICAgICAgICAgPSAiU1RBTkRBUkRTQk9EWS1UWVBFLVZBUklBTlQtQ1NVTSIsCisgICAgICAgICAgICAuZ2VuZXJhdGVfZm4gICAgICAgICAgICA9IG15X2dlbmVyYXRlX2ZuLAorICAgICAgIAkgICAgLnZlcmlmeV9mbiAgICAgICAgICAgICAgPSBteV92ZXJpZnlfZm4sCisgICAgICAgCSAgICAuZ2V0X3RhZ19mbiAgICAgICAgICAgICA9IG15X2dldF90YWdfZm4sCisgICAgICAgCSAgICAuc2V0X3RhZ19mbiAgICAgICAgICAgICA9IG15X3NldF90YWdfZm4sCisJICAgIC50dXBsZV9zaXplICAgICAgICAgICAgID0gc2l6ZW9mKHN0cnVjdCBteV90dXBsZV9zaXplKSwKKwkgICAgLnRhZ19zaXplICAgICAgICAgICAgICAgPSA8dGFnIGJ5dGVzIHBlciBodyBzZWN0b3I+LAorICAgICAgICB9OworCisgICAgICAnbmFtZScgaXMgYSB0ZXh0IHN0cmluZyB3aGljaCB3aWxsIGJlIHZpc2libGUgaW4gc3lzZnMuICBUaGlzIGlzCisgICAgICBwYXJ0IG9mIHRoZSB1c2VybGFuZCBBUEkgc28gY2hvc2UgaXQgY2FyZWZ1bGx5IGFuZCBuZXZlciBjaGFuZ2UKKyAgICAgIGl0LiAgVGhlIGZvcm1hdCBpcyBzdGFuZGFyZHMgYm9keS10eXBlLXZhcmlhbnQuCisgICAgICBFLmcuIFQxMC1ESUYtVFlQRTEtSVAgb3IgVDEzLUVQUC0wLUNSQy4KKworICAgICAgJ2dlbmVyYXRlX2ZuJyBnZW5lcmF0ZXMgYXBwcm9wcmlhdGUgaW50ZWdyaXR5IG1ldGFkYXRhIChmb3IgV1JJVEUpLgorCisgICAgICAndmVyaWZ5X2ZuJyB2ZXJpZmllcyB0aGF0IHRoZSBkYXRhIGJ1ZmZlciBtYXRjaGVzIHRoZSBpbnRlZ3JpdHkKKyAgICAgIG1ldGFkYXRhLgorCisgICAgICAndHVwbGVfc2l6ZScgbXVzdCBiZSBzZXQgdG8gbWF0Y2ggdGhlIHNpemUgb2YgdGhlIGludGVncml0eQorICAgICAgbWV0YWRhdGEgcGVyIHNlY3Rvci4gIEkuZS4gOCBmb3IgRElGIGFuZCBFUFAuCisKKyAgICAgICd0YWdfc2l6ZScgbXVzdCBiZSBzZXQgdG8gaWRlbnRpZnkgaG93IG1hbnkgYnl0ZXMgb2YgdGFnIHNwYWNlCisgICAgICBhcmUgYXZhaWxhYmxlIHBlciBoYXJkd2FyZSBzZWN0b3IuICBGb3IgRElGIHRoaXMgaXMgZWl0aGVyIDIgb3IKKyAgICAgIDAgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUgQ29udHJvbCBNb2RlIFBhZ2UgQVRPIGJpdC4KKworICAgICAgU2VlIDYuMiBmb3IgYSBkZXNjcmlwdGlvbiBvZiBnZXRfdGFnX2ZuIGFuZCBzZXRfdGFnX2ZuLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDA3LTEyLTI0IE1hcnRpbiBLLiBQZXRlcnNlbiA8bWFydGluLnBldGVyc2VuQG9yYWNsZS5jb20+CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2Nncm91cHMudHh0IGIvRG9jdW1lbnRhdGlvbi9jZ3JvdXBzLnR4dAppbmRleCA4MjRmYzAyLi5kOTAxNGFhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2Nncm91cHMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vY2dyb3Vwcy50eHQKQEAgLTM5MCw2ICszOTAsMTAgQEAKIAkuLi4KICMgL2Jpbi9lY2hvIFBJRG4gPiB0YXNrcwogCitZb3UgY2FuIGF0dGFjaCB0aGUgY3VycmVudCBzaGVsbCB0YXNrIGJ5IGVjaG9pbmcgMDoKKworIyBlY2hvIDAgPiB0YXNrcworCiAzLiBLZXJuZWwgQVBJCiA9PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY29udHJvbGxlcnMvZGV2aWNlcy50eHQgYi9Eb2N1bWVudGF0aW9uL2NvbnRyb2xsZXJzL2RldmljZXMudHh0CmluZGV4IDRkY2VhNDIuLjdjYzZlNmEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vY29udHJvbGxlcnMvZGV2aWNlcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9jb250cm9sbGVycy9kZXZpY2VzLnR4dApAQCAtMTMsNyArMTMsNyBAQAogVGhlIHJvb3QgZGV2aWNlIGNncm91cCBzdGFydHMgd2l0aCByd20gdG8gJ2FsbCcuICBBIGNoaWxkIGRldmljZQogY2dyb3VwIGdldHMgYSBjb3B5IG9mIHRoZSBwYXJlbnQuICBBZG1pbmlzdHJhdG9ycyBjYW4gdGhlbiByZW1vdmUKIGRldmljZXMgZnJvbSB0aGUgd2hpdGVsaXN0IG9yIGFkZCBuZXcgZW50cmllcy4gIEEgY2hpbGQgY2dyb3VwIGNhbgotbmV2ZXIgcmVjZWl2ZSBhIGRldmljZSBhY2Nlc3Mgd2hpY2ggaXMgZGVuaWVkIGl0cyBwYXJlbnQuICBIb3dldmVyCituZXZlciByZWNlaXZlIGEgZGV2aWNlIGFjY2VzcyB3aGljaCBpcyBkZW5pZWQgYnkgaXRzIHBhcmVudC4gIEhvd2V2ZXIKIHdoZW4gYSBkZXZpY2UgYWNjZXNzIGlzIHJlbW92ZWQgZnJvbSBhIHBhcmVudCBpdCB3aWxsIG5vdCBhbHNvIGJlCiByZW1vdmVkIGZyb20gdGhlIGNoaWxkKHJlbikuCiAKQEAgLTI5LDcgKzI5LDExIEBACiAKIAllY2hvIGEgPiAvY2dyb3Vwcy8xL2RldmljZXMuZGVueQogCi13aWxsIHJlbW92ZSB0aGUgZGVmYXVsdCAnYSAqOiogbXJ3JyBlbnRyeS4KK3dpbGwgcmVtb3ZlIHRoZSBkZWZhdWx0ICdhICo6KiByd20nIGVudHJ5LiBEb2luZworCisJZWNobyBhID4gL2Nncm91cHMvMS9kZXZpY2VzLmFsbG93CisKK3dpbGwgYWRkIHRoZSAnYSAqOiogcndtJyBlbnRyeSB0byB0aGUgd2hpdGVsaXN0LgogCiAzLiBTZWN1cml0eQogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2NwdXNldHMudHh0IGIvRG9jdW1lbnRhdGlvbi9jcHVzZXRzLnR4dAppbmRleCAzNTM1MDRkLi4xZjVhOTI0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2NwdXNldHMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vY3B1c2V0cy50eHQKQEAgLTE1NCwxMyArMTU0LDE1IEBACiBuZXcgc3lzdGVtIGNhbGxzIGFyZSBhZGRlZCBmb3IgY3B1c2V0cyAtIGFsbCBzdXBwb3J0IGZvciBxdWVyeWluZyBhbmQKIG1vZGlmeWluZyBjcHVzZXRzIGlzIHZpYSB0aGlzIGNwdXNldCBmaWxlIHN5c3RlbS4KIAotVGhlIC9wcm9jLzxwaWQ+L3N0YXR1cyBmaWxlIGZvciBlYWNoIHRhc2sgaGFzIHR3byBhZGRlZCBsaW5lcywKK1RoZSAvcHJvYy88cGlkPi9zdGF0dXMgZmlsZSBmb3IgZWFjaCB0YXNrIGhhcyBmb3VyIGFkZGVkIGxpbmVzLAogZGlzcGxheWluZyB0aGUgdGFza3MgY3B1c19hbGxvd2VkIChvbiB3aGljaCBDUFVzIGl0IG1heSBiZSBzY2hlZHVsZWQpCiBhbmQgbWVtc19hbGxvd2VkIChvbiB3aGljaCBNZW1vcnkgTm9kZXMgaXQgbWF5IG9idGFpbiBtZW1vcnkpLAotaW4gdGhlIGZvcm1hdCBzZWVuIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKK2luIHRoZSB0d28gZm9ybWF0cyBzZWVuIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKIAogICBDcHVzX2FsbG93ZWQ6ICAgZmZmZmZmZmYsZmZmZmZmZmYsZmZmZmZmZmYsZmZmZmZmZmYKKyAgQ3B1c19hbGxvd2VkX2xpc3Q6ICAgICAgMC0xMjcKICAgTWVtc19hbGxvd2VkOiAgIGZmZmZmZmZmLGZmZmZmZmZmCisgIE1lbXNfYWxsb3dlZF9saXN0OiAgICAgIDAtNjMKIAogRWFjaCBjcHVzZXQgaXMgcmVwcmVzZW50ZWQgYnkgYSBkaXJlY3RvcnkgaW4gdGhlIGNncm91cCBmaWxlIHN5c3RlbQogY29udGFpbmluZyAob24gdG9wIG9mIHRoZSBzdGFuZGFyZCBjZ3JvdXAgZmlsZXMpIHRoZSBmb2xsb3dpbmcKQEAgLTU0NCw2ICs1NDYsOSBAQAogICggNCAgOiBzZWFyY2ggbm9kZXMgaW4gYSBjaHVuayBvZiBub2RlIFtvbiBOVU1BIHN5c3RlbV0gKQogICggNSAgOiBzZWFyY2ggc3lzdGVtIHdpZGUgW29uIE5VTUEgc3lzdGVtXSApCiAKK1RoZSBzeXN0ZW0gZGVmYXVsdCBpcyBhcmNoaXRlY3R1cmUgZGVwZW5kZW50LiAgVGhlIHN5c3RlbSBkZWZhdWx0CitjYW4gYmUgY2hhbmdlZCB1c2luZyB0aGUgcmVsYXhfZG9tYWluX2xldmVsPSBib290IHBhcmFtZXRlci4KKwogVGhpcyBmaWxlIGlzIHBlci1jcHVzZXQgYW5kIGFmZmVjdCB0aGUgc2NoZWQgZG9tYWluIHdoZXJlIHRoZSBjcHVzZXQKIGJlbG9uZ3MgdG8uICBUaGVyZWZvcmUgaWYgdGhlIGZsYWcgJ3NjaGVkX2xvYWRfYmFsYW5jZScgb2YgYSBjcHVzZXQKIGlzIGRpc2FibGVkLCB0aGVuICdzY2hlZF9yZWxheF9kb21haW5fbGV2ZWwnIGhhdmUgbm8gZWZmZWN0IHNpbmNlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2NwdXRvcG9sb2d5LnR4dCBiL0RvY3VtZW50YXRpb24vY3B1dG9wb2xvZ3kudHh0CmluZGV4IGI2MWNiOTUuLmJkNjk5ZGEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vY3B1dG9wb2xvZ3kudHh0CisrKyBiL0RvY3VtZW50YXRpb24vY3B1dG9wb2xvZ3kudHh0CkBAIC0xNCw5ICsxNCw4IEBACiBUbyBpbXBsZW1lbnQgaXQgaW4gYW4gYXJjaGl0ZWN0dXJlLW5ldXRyYWwgd2F5LCBhIG5ldyBzb3VyY2UgZmlsZSwKIGRyaXZlcnMvYmFzZS90b3BvbG9neS5jLCBpcyB0byBleHBvcnQgdGhlIDQgYXR0cmlidXRlcy4KIAotSWYgb25lIGFyY2hpdGVjdHVyZSB3YW50cyB0byBzdXBwb3J0IHRoaXMgZmVhdHVyZSwgaXQganVzdCBuZWVkcyB0bwotaW1wbGVtZW50IDQgZGVmaW5lcywgdHlwaWNhbGx5IGluIGZpbGUgaW5jbHVkZS9hc20tWFhYL3RvcG9sb2d5LmguCi1UaGUgNCBkZWZpbmVzIGFyZToKK0ZvciBhbiBhcmNoaXRlY3R1cmUgdG8gc3VwcG9ydCB0aGlzIGZlYXR1cmUsIGl0IG11c3QgZGVmaW5lIHNvbWUgb2YKK3RoZXNlIG1hY3JvcyBpbiBpbmNsdWRlL2FzbS1YWFgvdG9wb2xvZ3kuaDoKICNkZWZpbmUgdG9wb2xvZ3lfcGh5c2ljYWxfcGFja2FnZV9pZChjcHUpCiAjZGVmaW5lIHRvcG9sb2d5X2NvcmVfaWQoY3B1KQogI2RlZmluZSB0b3BvbG9neV90aHJlYWRfc2libGluZ3MoY3B1KQpAQCAtMjUsMTcgKzI0LDEwIEBACiBUaGUgdHlwZSBvZiAqKl9pZCBpcyBpbnQuCiBUaGUgdHlwZSBvZiBzaWJsaW5ncyBpcyBjcHVtYXNrX3QuCiAKLVRvIGJlIGNvbnNpc3RlbnQgb24gYWxsIGFyY2hpdGVjdHVyZXMsIHRoZSA0IGF0dHJpYnV0ZXMgc2hvdWxkIGhhdmUKLWRlZmF1bHQgdmFsdWVzIGlmIHRoZWlyIHZhbHVlcyBhcmUgdW5hdmFpbGFibGUuIEJlbG93IGlzIHRoZSBydWxlLgotMSkgcGh5c2ljYWxfcGFja2FnZV9pZDogSWYgY3B1IGhhcyBubyBwaHlzaWNhbCBwYWNrYWdlIGlkLCAtMSBpcyB0aGUKLWRlZmF1bHQgdmFsdWUuCi0yKSBjb3JlX2lkOiBJZiBjcHUgZG9lc24ndCBzdXBwb3J0IG11bHRpLWNvcmUsIGl0cyBjb3JlIGlkIGlzIDAuCi0zKSB0aHJlYWRfc2libGluZ3M6IEp1c3QgaW5jbHVkZSBpdHNlbGYsIGlmIHRoZSBjcHUgZG9lc24ndCBzdXBwb3J0Ci1IVC9tdWx0aS10aHJlYWQuCi00KSBjb3JlX3NpYmxpbmdzOiBKdXN0IGluY2x1ZGUgaXRzZWxmLCBpZiB0aGUgY3B1IGRvZXNuJ3Qgc3VwcG9ydAotbXVsdGktY29yZSBhbmQgSFQvTXVsdGktdGhyZWFkLgotCi1TbyBiZSBjYXJlZnVsIHdoZW4gZGVjbGFyaW5nIHRoZSA0IGRlZmluZXMgaW4gaW5jbHVkZS9hc20tWFhYL3RvcG9sb2d5LmguCi0KLUlmIGFuIGF0dHJpYnV0ZSBpc24ndCBkZWZpbmVkIG9uIGFuIGFyY2hpdGVjdHVyZSwgaXQgd29uJ3QgYmUgZXhwb3J0ZWQuCi0KK1RvIGJlIGNvbnNpc3RlbnQgb24gYWxsIGFyY2hpdGVjdHVyZXMsIGluY2x1ZGUvbGludXgvdG9wb2xvZ3kuaAorcHJvdmlkZXMgZGVmYXVsdCBkZWZpbml0aW9ucyBmb3IgYW55IG9mIHRoZSBhYm92ZSBtYWNyb3MgdGhhdCBhcmUKK25vdCBkZWZpbmVkIGJ5IGluY2x1ZGUvYXNtLVhYWC90b3BvbG9neS5oOgorMSkgcGh5c2ljYWxfcGFja2FnZV9pZDogLTEKKzIpIGNvcmVfaWQ6IDAKKzMpIHRocmVhZF9zaWJsaW5nczoganVzdCB0aGUgZ2l2ZW4gQ1BVCis0KSBjb3JlX3NpYmxpbmdzOiBqdXN0IHRoZSBnaXZlbiBDUFUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dCBiL0RvY3VtZW50YXRpb24vZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dAppbmRleCA1YjNmMzFmLi42NWExNDgyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2ZlYXR1cmUtcmVtb3ZhbC1zY2hlZHVsZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9mZWF0dXJlLXJlbW92YWwtc2NoZWR1bGUudHh0CkBAIC0yMjIsMTMgKzIyMiw2IEBACiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1XaGF0OglpMmMtaTgxMCwgaTJjLXByb3NhdmFnZSBhbmQgaTJjLXNhdmFnZTQKLVdoZW46CU1heSAyMDA4Ci1XaHk6CVRoZXNlIGRyaXZlcnMgYXJlIHN1cGVyc2VkZWQgYnkgaTgxMGZiLCBpbnRlbGZiIGFuZCBzYXZhZ2VmYi4KLVdobzoJSmVhbiBEZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBXaGF0IChXaHkpOgogCS0gaW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcHRfVE9TLmggaXB0X3Rvcy5oIGhlYWRlciBmaWxlcwogCSAgKHN1cGVyc2VkZWQgYnkgeHRfVE9TL3h0X3RvcyB0YXJnZXQgJiBtYXRjaCkKQEAgLTMxMiwzICszMDUsMTIgQEAKIFdoeToJSW1wbGVtZW50YXRpb24gYmVjYW1lIGdlbmVyaWM7IHVzZXJzIHNob3VsZCBub3cgaW5jbHVkZQogCWxpbnV4L3NlbWFwaG9yZS5oIGluc3RlYWQuCiBXaG86CU1hdHRoZXcgV2lsY294IDx3aWxseUBsaW51eC5pbnRlbC5jb20+CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGF0OglDT05GSUdfVEhFUk1BTF9IV01PTgorV2hlbjoJSmFudWFyeSAyMDA5CitXaHk6CVRoaXMgb3B0aW9uIHdhcyBpbnRyb2R1Y2VkIGp1c3QgdG8gYWxsb3cgb2xkZXIgbG0tc2Vuc29ycyB1c2Vyc3BhY2UKKwl0byBrZWVwIHdvcmtpbmcgb3ZlciB0aGUgdXBncmFkZSB0byAyLjYuMjYuIEF0IHRoZSBzY2hlZHVsZWQgdGltZSBvZgorCXJlbW92YWwgZml4ZWQgbG0tc2Vuc29ycyAoMi54IG9yIDMueCkgc2hvdWxkIGJlIHJlYWRpbHkgYXZhaWxhYmxlLgorV2hvOglSZW5lIEhlcm1hbiA8cmVuZS5oZXJtYW5AZ21haWwuY29tPgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0LnR4dCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC50eHQKaW5kZXggMGM1MDg2ZGIuLjgwZTE5M2QgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0LnR4dApAQCAtMTMsNzIgKzEzLDkzIEBACiAxLiBRdWljayB1c2FnZSBpbnN0cnVjdGlvbnM6CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotICAtIEdyYWIgdXBkYXRlZCBlMmZzcHJvZ3MgZnJvbQotICAgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC9rZXJuZWwvcGVvcGxlL3R5dHNvL2UyZnNwcm9ncy1pbnRlcmltLwotICAgIFRoaXMgaXMgYSBwYXRjaHNldCBvbiB0b3Agb2YgZTJmc3Byb2dzLTEuMzksIHdoaWNoIGNhbiBiZSBmb3VuZCBhdAorICAtIENvbXBpbGUgYW5kIGluc3RhbGwgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGUyZnNwcm9ncyAoYXMgb2YgdGhpcworICAgIHdyaXRpbmcgdmVyc2lvbiAxLjQxKSBmcm9tOgorCisgICAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L3Nob3dmaWxlcy5waHA/Z3JvdXBfaWQ9MjQwNgorCQorCW9yCisKICAgICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgva2VybmVsL3Blb3BsZS90eXRzby9lMmZzcHJvZ3MvCiAKLSAgLSBJdCdzIHN0aWxsIG1rZTJmcyAtaiAvZGV2L2hkYTEKKwlvciBncmFiIHRoZSBsYXRlc3QgZ2l0IHJlcG9zaXRvcnkgZnJvbToKIAotICAtIG1vdW50IC9kZXYvaGRhMSAvd2hlcmV2ZXIgLXQgZXh0NGRldgorICAgIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vZnMvZXh0Mi9lMmZzcHJvZ3MuZ2l0CiAKLSAgLSBUbyBlbmFibGUgZXh0ZW50cywKKyAgLSBDcmVhdGUgYSBuZXcgZmlsZXN5c3RlbSB1c2luZyB0aGUgZXh0NGRldiBmaWxlc3lzdGVtIHR5cGU6CiAKLQltb3VudCAvZGV2L2hkYTEgL3doZXJldmVyIC10IGV4dDRkZXYgLW8gZXh0ZW50cworICAgIAkjIG1rZTJmcyAtdCBleHQ0ZGV2IC9kZXYvaGRhMQogCi0gIC0gVGhlIGZpbGVzeXN0ZW0gaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBleHQzIGRyaXZlciB1bnRpbCB5b3UgYWRkIGEgZmlsZQotICAgIHdoaWNoIGhhcyBleHRlbnRzIChpZTogYG1vdW50IC1vIGV4dGVudHMnLCB0aGVuIGNyZWF0ZSBhIGZpbGUpLgorICAgIE9yIGNvbmZpZ3VyZSBhbiBleGlzdGluZyBleHQzIGZpbGVzeXN0ZW0gdG8gc3VwcG9ydCBleHRlbnRzIGFuZCBzZXQKKyAgICB0aGUgdGVzdF9mcyBmbGFnIHRvIGluZGljYXRlIHRoYXQgaXQncyBvayBmb3IgYW4gaW4tZGV2ZWxvcG1lbnQKKyAgICBmaWxlc3lzdGVtIHRvIHRvdWNoIHRoaXMgZmlsZXN5c3RlbToKIAotICAgIE5PVEU6IFRoZSAiZXh0ZW50cyIgbW91bnQgZmxhZyBpcyB0ZW1wb3JhcnkuICBJdCB3aWxsIHNvb24gZ28gYXdheSBhbmQKLSAgICBleHRlbnRzIHdpbGwgYmUgZW5hYmxlZCBieSB0aGUgIi1vIGV4dGVudHMiIGZsYWcgdG8gbWtlMmZzIG9yIHR1bmUyZnMKKwkjIHR1bmUyZnMgLU8gZXh0ZW50cyAtRSB0ZXN0X2ZzIC9kZXYvaGRhMQorCisgICAgSWYgdGhlIGZpbGVzeXN0ZW0gd2FzIGNyZWF0ZWQgd2l0aCAxMjggYnl0ZSBpbm9kZXMsIGl0IGNhbiBiZQorICAgIGNvbnZlcnRlZCB0byB1c2UgMjU2IGJ5dGUgZm9yIGdyZWF0ZXIgZWZmaWNpZW5jeSB2aWE6CisKKyAgICAgICAgIyB0dW5lMmZzIC1JIDI1NiAvZGV2L2hkYTEKKworICAgIChOb3RlOiB3ZSBjdXJyZW50bHkgZG8gbm90IGhhdmUgdG9vbHMgdG8gY29udmVydCBhbiBleHQ0ZGV2CisgICAgZmlsZXN5c3RlbSBiYWNrIHRvIGV4dDM7IHNvIHBsZWFzZSBkbyBub3QgZG8gdHJ5IHRoaXMgb24gcHJvZHVjdGlvbgorICAgIGZpbGVzeXN0ZW1zLikKKworICAtIE1vdW50aW5nOgorCisJIyBtb3VudCAtdCBleHQ0ZGV2IC9kZXYvaGRhMSAvd2hlcmV2ZXIKIAogICAtIFdoZW4gY29tcGFyaW5nIHBlcmZvcm1hbmNlIHdpdGggb3RoZXIgZmlsZXN5c3RlbXMsIHJlbWVtYmVyIHRoYXQKLSAgICBleHQzLzQgYnkgZGVmYXVsdCBvZmZlcnMgaGlnaGVyIGRhdGEgaW50ZWdyaXR5IGd1YXJhbnRlZXMgdGhhbiBtb3N0LiAgU28KLSAgICB3aGVuIGNvbXBhcmluZyB3aXRoIGEgbWV0YWRhdGEtb25seSBqb3VybmFsbGluZyBmaWxlc3lzdGVtLCB1c2UgYG1vdW50IC1vCi0gICAgZGF0YT13cml0ZWJhY2snLiAgQW5kIHlvdSBtaWdodCBhcyB3ZWxsIHVzZSBgbW91bnQgLW8gbm9iaCcgdG9vIGFsb25nCi0gICAgd2l0aCBpdC4gIE1ha2luZyB0aGUgam91cm5hbCBsYXJnZXIgdGhhbiB0aGUgbWtlMmZzIGRlZmF1bHQgb2Z0ZW4gaGVscHMKLSAgICBwZXJmb3JtYW5jZSB3aXRoIG1ldGFkYXRhLWludGVuc2l2ZSB3b3JrbG9hZHMuCisgICAgZXh0My80IGJ5IGRlZmF1bHQgb2ZmZXJzIGhpZ2hlciBkYXRhIGludGVncml0eSBndWFyYW50ZWVzIHRoYW4gbW9zdC4KKyAgICBTbyB3aGVuIGNvbXBhcmluZyB3aXRoIGEgbWV0YWRhdGEtb25seSBqb3VybmFsbGluZyBmaWxlc3lzdGVtLCBzdWNoCisgICAgYXMgZXh0MywgdXNlIGBtb3VudCAtbyBkYXRhPXdyaXRlYmFjaycuICBBbmQgeW91IG1pZ2h0IGFzIHdlbGwgdXNlCisgICAgYG1vdW50IC1vIG5vYmgnIHRvbyBhbG9uZyB3aXRoIGl0LiAgTWFraW5nIHRoZSBqb3VybmFsIGxhcmdlciB0aGFuCisgICAgdGhlIG1rZTJmcyBkZWZhdWx0IG9mdGVuIGhlbHBzIHBlcmZvcm1hbmNlIHdpdGggbWV0YWRhdGEtaW50ZW5zaXZlCisgICAgd29ya2xvYWRzLgogCiAyLiBGZWF0dXJlcwogPT09PT09PT09PT0KIAogMi4xIEN1cnJlbnRseSBhdmFpbGFibGUKIAotKiBhYmlsaXR5IHRvIHVzZSBmaWxlc3lzdGVtcyA+IDE2VEIKKyogYWJpbGl0eSB0byB1c2UgZmlsZXN5c3RlbXMgPiAxNlRCIChlMmZzcHJvZ3Mgc3VwcG9ydCBub3QgYXZhaWxhYmxlIHlldCkKICogZXh0ZW50IGZvcm1hdCByZWR1Y2VzIG1ldGFkYXRhIG92ZXJoZWFkIChSQU0sIElPIGZvciBhY2Nlc3MsIHRyYW5zYWN0aW9ucykKICogZXh0ZW50IGZvcm1hdCBtb3JlIHJvYnVzdCBpbiBmYWNlIG9mIG9uLWRpc2sgY29ycnVwdGlvbiBkdWUgdG8gbWFnaWNzLAogKiBpbnRlcm5hbCByZWR1bmFuY3kgaW4gdHJlZQotCi0yLjEgUHJldmlvdXNseSBhdmFpbGFibGUsIHNvb24gdG8gYmUgZW5hYmxlZCBieSBkZWZhdWx0IGJ5ICJta2Vmcy5leHQ0IjoKLQotKiBkaXJfaW5kZXggYW5kIHJlc2l6ZSBpbm9kZSB3aWxsIGJlIG9uIGJ5IGRlZmF1bHQKLSogbGFyZ2UgaW5vZGVzIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0IGZvciBmYXN0IEVBcywgbnNlYyB0aW1lc3RhbXBzLCBldGMKKyogaW1wcm92ZWQgZmlsZSBhbGxvY2F0aW9uIChtdWx0aS1ibG9jayBhbGxvYykKKyogZml4IDMyMDAwIHN1YmRpcmVjdG9yeSBsaW1pdAorKiBuc2VjIHRpbWVzdGFtcHMgZm9yIG10aW1lLCBhdGltZSwgY3RpbWUsIGNyZWF0ZSB0aW1lCisqIGlub2RlIHZlcnNpb24gZmllbGQgb24gZGlzayAoTkZTdjQsIEx1c3RyZSkKKyogcmVkdWNlZCBlMmZzY2sgdGltZSB2aWEgdW5pbml0X2JnIGZlYXR1cmUKKyogam91cm5hbCBjaGVja3N1bW1pbmcgZm9yIHJvYnVzdG5lc3MsIHBlcmZvcm1hbmNlCisqIHBlcnNpc3RlbnQgZmlsZSBwcmVhbGxvY2F0aW9uIChlLmcgZm9yIHN0cmVhbWluZyBtZWRpYSwgZGF0YWJhc2VzKQorKiBhYmlsaXR5IHRvIHBhY2sgYml0bWFwcyBhbmQgaW5vZGUgdGFibGVzIGludG8gbGFyZ2VyIHZpcnR1YWwgZ3JvdXBzIHZpYSB0aGUKKyAgZmxleF9iZyBmZWF0dXJlCisqIGxhcmdlIGZpbGUgc3VwcG9ydAorKiBJbm9kZSBhbGxvY2F0aW9uIHVzaW5nIGxhcmdlIHZpcnR1YWwgYmxvY2sgZ3JvdXBzIHZpYSBmbGV4X2JnCisqIGRlbGF5ZWQgYWxsb2NhdGlvbgorKiBsYXJnZSBibG9jayAodXAgdG8gcGFnZXNpemUpIHN1cHBvcnQKKyogZWZmaWNlbnQgbmV3IG9yZGVyZWQgbW9kZSBpbiBKQkQyIGFuZCBleHQ0KGF2b2lkIHVzaW5nIGJ1ZmZlciBoZWFkIHRvIGZvcmNlCisgIHRoZSBvcmRlcmluZykKIAogMi4yIENhbmRpZGF0ZSBmZWF0dXJlcyBmb3IgZnV0dXJlIGluY2x1c2lvbgogCi1UaGVyZSBhcmUgc2V2ZXJhbCB1bmRlciBkaXNjdXNzaW9uLCB3aGV0aGVyIHRoZXkgYWxsIG1ha2UgaXQgaW4gaXMKLXBhcnRseSBhIGZ1bmN0aW9uIG9mIGhvdyBtdWNoIHRpbWUgZXZlcnlvbmUgaGFzIHRvIHdvcmsgb24gdGhlbToKKyogT25saW5lIGRlZnJhZyAocGF0Y2hlcyBhdmFpbGFibGUgYnV0IG5vdCB3ZWxsIHRlc3RlZCkKKyogcmVkdWNlZCBta2UyZnMgdGltZSB2aWEgbGF6eSBpdGFibGUgaW5pdGlhbGl6YXRpb24gaW4gY29uanVjdGlvbiB3aXRoCisgIHRoZSB1bmluaXRfYmcgZmVhdHVyZSAoY2FwYWJpbGl0eSB0byBkbyB0aGlzIGlzIGF2YWlsYWJsZSBpbiBlMmZzcHJvZ3MKKyAgYnV0IGEga2VybmVsIHRocmVhZCB0byBkbyBsYXp5IHplcm9pbmcgb2YgdW51c2VkIGlub2RlIHRhYmxlIGJsb2NrcworICBhZnRlciBmaWxlc3lzdGVtIGlzIGZpcnN0IG1vdW50ZWQgaXMgcmVxdWlyZWQgZm9yIHNhZmV0eSkKIAotKiBpbXByb3ZlZCBmaWxlIGFsbG9jYXRpb24gKG11bHRpLWJsb2NrIGFsbG9jLCBkZWxheWVkIGFsbG9jOyBiYXNpY2FsbHkgZG9uZSkKLSogZml4IDMyMDAwIHN1YmRpcmVjdG9yeSBsaW1pdCAocGF0Y2ggZXhpc3RzLCBuZWVkcyBzb21lIGUyZnNjayB3b3JrKQotKiBuc2VjIHRpbWVzdGFtcHMgZm9yIG10aW1lLCBhdGltZSwgY3RpbWUsIGNyZWF0ZSB0aW1lIChwYXRjaCBleGlzdHMsCi0gIG5lZWRzIHNvbWUgZTJmc2NrIHdvcmspCi0qIGlub2RlIHZlcnNpb24gZmllbGQgb24gZGlzayAoTkZTdjQsIEx1c3RyZTsgcHJvdG90eXBlIGV4aXN0cykKLSogcmVkdWNlZCBta2UyZnMvZTJmc2NrIHRpbWUgdmlhIHVuaW5pdGlhbGl6ZWQgZ3JvdXBzIChwcm90b3R5cGUgZXhpc3RzKQotKiBqb3VybmFsIGNoZWNrc3VtbWluZyBmb3Igcm9idXN0bmVzcywgcGVyZm9ybWFuY2UgKHByb3RvdHlwZSBleGlzdHMpCi0qIHBlcnNpc3RlbnQgZmlsZSBwcmVhbGxvY2F0aW9uIChlLmcgZm9yIHN0cmVhbWluZyBtZWRpYSwgZGF0YWJhc2VzKQorVGhlcmUgYXJlIHNldmVyYWwgb3RoZXJzIHVuZGVyIGRpc2N1c3Npb24sIHdoZXRoZXIgdGhleSBhbGwgbWFrZSBpdCBpbiBpcworcGFydGx5IGEgZnVuY3Rpb24gb2YgaG93IG11Y2ggdGltZSBldmVyeW9uZSBoYXMgdG8gd29yayBvbiB0aGVtLiBGZWF0dXJlcyBsaWtlCittZXRhZGF0YSBjaGVja3N1bW1pbmcgaGF2ZSBiZWVuIGRpc2N1c3NlZCBhbmQgcGxhbm5lZCBmb3IgYSBiaXQgYnV0IG5vIHBhdGNoZXMKK2V4aXN0IHlldCBzbyBJJ20gbm90IHN1cmUgdGhleSdyZSBpbiB0aGUgbmVhci10ZXJtIHJvYWRtYXAuCiAKLUZlYXR1cmVzIGxpa2UgbWV0YWRhdGEgY2hlY2tzdW1taW5nIGhhdmUgYmVlbiBkaXNjdXNzZWQgYW5kIHBsYW5uZWQgZm9yCi1hIGJpdCBidXQgbm8gcGF0Y2hlcyBleGlzdCB5ZXQgc28gSSdtIG5vdCBzdXJlIHRoZXkncmUgaW4gdGhlIG5lYXItdGVybQotcm9hZG1hcC4KK1RoZSBiaWcgcGVyZm9ybWFuY2Ugd2luIHdpbGwgY29tZSB3aXRoIG1iYWxsb2MsIGRlbGFsbG9jIGFuZCBmbGV4X2JnCitncm91cGluZyBvZiBiaXRtYXBzIGFuZCBpbm9kZSB0YWJsZXMuICBTb21lIHRlc3QgcmVzdWx0cyBhdmFpbGFibGUgaGVyZToKIAotVGhlIGJpZyBwZXJmb3JtYW5jZSB3aW4gd2lsbCBjb21lIHdpdGggbWJhbGxvYyBhbmQgZGVsYWxsb2MuICBDRlMgaGFzCi1iZWVuIHVzaW5nIG1iYWxsb2MgZm9yIGEgZmV3IHllYXJzIGFscmVhZHkgd2l0aCBMdXN0cmUsIGFuZCBJQk0gKyBCdWxsCi1kaWQgYSBsb3Qgb2YgYmVuY2htYXJraW5nIG9uIGl0LiAgVGhlIHJlYXNvbiBpdCBpc24ndCBpbiB0aGUgZmlyc3Qgc2V0IG9mCi1wYXRjaGVzIGlzIHBhcnRseSBhIG1hbmFnZWFiaWxpdHkgaXNzdWUsIGFuZCBwYXJ0bHkgYmVjYXVzZSBpdCBkb2Vzbid0Ci1kaXJlY3RseSBhZmZlY3QgdGhlIG9uLWRpc2sgZm9ybWF0IChvdXRzaWRlIG9mIG11Y2ggYmV0dGVyIGFsbG9jYXRpb24pCi1zbyBpdCBpc24ndCBjcml0aWNhbCB0byBnZXQgaW50byB0aGUgZmlyc3Qgcm91bmQgb2YgY2hhbmdlcy4gIEkgYmVsaWV2ZQotQWxleCBpcyB3b3JraW5nIG9uIGEgbmV3IHNldCBvZiBwYXRjaGVzIHJpZ2h0IG5vdy4KKyAtIGh0dHA6Ly93d3cuYnVsbG9wZW5zb3VyY2Uub3JnL2V4dDQvMjAwODA1MzAvZmZzYi13cml0ZS0yLjYuMjYtcmMyLmh0bWwKKyAtIGh0dHA6Ly93d3cuYnVsbG9wZW5zb3VyY2Uub3JnL2V4dDQvMjAwODA1MzAvZmZzYi1yZWFkd3JpdGUtMi42LjI2LXJjMi5odG1sCiAKIDMuIE9wdGlvbnMKID09PT09PT09PT0KQEAgLTIyMiw5ICsyNDMsMTEgQEAKIAkJCXRvIHVzZSBmb3IgYWxsb2NhdGlvbiBzaXplIGFuZCBhbGlnbm1lbnQuIEZvciBSQUlENS82CiAJCQlzeXN0ZW1zIHRoaXMgc2hvdWxkIGJlIHRoZSBudW1iZXIgb2YgZGF0YQogCQkJZGlza3MgKiAgUkFJRCBjaHVuayBzaXplIGluIGZpbGUgc3lzdGVtIGJsb2Nrcy4KLQorZGVsYWxsb2MJKCopCURlZmVycmluZyBibG9jayBhbGxvY2F0aW9uIHVudGlsIHdyaXRlLW91dCB0aW1lLgorbm9kZWxhbGxvYwkJRGlzYWJsZSBkZWxheWVkIGFsbG9jYXRpb24uIEJsb2NrcyBhcmUgYWxsb2NhdGlvbgorCQkJd2hlbiBkYXRhIGlzIGNvcGllZCBmcm9tIHVzZXIgdG8gcGFnZSBjYWNoZS4KIERhdGEgTW9kZQotLS0tLS0tLS0tCis9PT09PT09PT0KIFRoZXJlIGFyZSAzIGRpZmZlcmVudCBkYXRhIG1vZGVzOgogCiAqIHdyaXRlYmFjayBtb2RlCkBAIC0yMzYsMTAgKzI1OSwxMCBAQAogCiAqIG9yZGVyZWQgbW9kZQogSW4gZGF0YT1vcmRlcmVkIG1vZGUsIGV4dDQgb25seSBvZmZpY2lhbGx5IGpvdXJuYWxzIG1ldGFkYXRhLCBidXQgaXQgbG9naWNhbGx5Ci1ncm91cHMgbWV0YWRhdGEgYW5kIGRhdGEgYmxvY2tzIGludG8gYSBzaW5nbGUgdW5pdCBjYWxsZWQgYSB0cmFuc2FjdGlvbi4gIFdoZW4KLWl0J3MgdGltZSB0byB3cml0ZSB0aGUgbmV3IG1ldGFkYXRhIG91dCB0byBkaXNrLCB0aGUgYXNzb2NpYXRlZCBkYXRhIGJsb2NrcwotYXJlIHdyaXR0ZW4gZmlyc3QuICBJbiBnZW5lcmFsLCB0aGlzIG1vZGUgcGVyZm9ybXMgc2xpZ2h0bHkgc2xvd2VyIHRoYW4KLXdyaXRlYmFjayBidXQgc2lnbmlmaWNhbnRseSBmYXN0ZXIgdGhhbiBqb3VybmFsIG1vZGUuCitncm91cHMgbWV0YWRhdGEgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBkYXRhIGNoYW5nZXMgd2l0aCB0aGUgZGF0YSBibG9ja3MgaW50byBhCitzaW5nbGUgdW5pdCBjYWxsZWQgYSB0cmFuc2FjdGlvbi4gIFdoZW4gaXQncyB0aW1lIHRvIHdyaXRlIHRoZSBuZXcgbWV0YWRhdGEKK291dCB0byBkaXNrLCB0aGUgYXNzb2NpYXRlZCBkYXRhIGJsb2NrcyBhcmUgd3JpdHRlbiBmaXJzdC4gIEluIGdlbmVyYWwsCit0aGlzIG1vZGUgcGVyZm9ybXMgc2xpZ2h0bHkgc2xvd2VyIHRoYW4gd3JpdGViYWNrIGJ1dCBzaWduaWZpY2FudGx5IGZhc3RlciB0aGFuIGpvdXJuYWwgbW9kZS4KIAogKiBqb3VybmFsIG1vZGUKIGRhdGE9am91cm5hbCBtb2RlIHByb3ZpZGVzIGZ1bGwgZGF0YSBhbmQgbWV0YWRhdGEgam91cm5hbGluZy4gIEFsbCBuZXcgZGF0YSBpcwpAQCAtMjQ3LDcgKzI3MCw4IEBACiBJbiB0aGUgZXZlbnQgb2YgYSBjcmFzaCwgdGhlIGpvdXJuYWwgY2FuIGJlIHJlcGxheWVkLCBicmluZ2luZyBib3RoIGRhdGEgYW5kCiBtZXRhZGF0YSBpbnRvIGEgY29uc2lzdGVudCBzdGF0ZS4gIFRoaXMgbW9kZSBpcyB0aGUgc2xvd2VzdCBleGNlcHQgd2hlbiBkYXRhCiBuZWVkcyB0byBiZSByZWFkIGZyb20gYW5kIHdyaXR0ZW4gdG8gZGlzayBhdCB0aGUgc2FtZSB0aW1lIHdoZXJlIGl0Ci1vdXRwZXJmb3JtcyBhbGwgb3RoZXJzIG1vZGVzLgorb3V0cGVyZm9ybXMgYWxsIG90aGVycyBtb2Rlcy4gIEN1cmVudGx5IGV4dDQgZG9lcyBub3QgaGF2ZSBkZWxheWVkCithbGxvY2F0aW9uIHN1cHBvcnQgaWYgdGhpcyBkYXRhIGpvdXJuYWxsaW5nIG1vZGUgaXMgc2VsZWN0ZWQuCiAKIFJlZmVyZW5jZXMKID09PT09PT09PT0KQEAgLTI1Niw3ICsyODAsOCBAQAogCQk8ZmlsZTpmcy9qYmQyLz4KIAogcHJvZ3JhbXM6CWh0dHA6Ly9lMmZzcHJvZ3Muc291cmNlZm9yZ2UubmV0LwotCQlodHRwOi8vZXh0MnJlc2l6ZS5zb3VyY2Vmb3JnZS5uZXQKIAogdXNlZnVsIGxpbmtzOglodHRwOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9leHQzLWRldmVsCiAJCWh0dHA6Ly93d3cuYnVsbG9wZW5zb3VyY2Uub3JnL2V4dDQvCisJCWh0dHA6Ly9leHQ0Lndpa2kua2VybmVsLm9yZy9pbmRleC5waHAvTWFpbl9QYWdlCisJCWh0dHA6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlYXR1cmVzL0V4dDQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZ2ZzMi1nbG9ja3MudHh0IGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9nZnMyLWdsb2Nrcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRhZTlhMwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZ2ZzMi1nbG9ja3MudHh0CkBAIC0wLDAgKzEsMTE0IEBACisgICAgICAgICAgICAgICAgICAgR2xvY2sgaW50ZXJuYWwgbG9ja2luZyBydWxlcworICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoaXMgZG9jdW1lbnRzIHRoZSBiYXNpYyBwcmluY2lwbGVzIG9mIHRoZSBnbG9jayBzdGF0ZSBtYWNoaW5lCitpbnRlcm5hbHMuIEVhY2ggZ2xvY2sgKHN0cnVjdCBnZnMyX2dsb2NrIGluIGZzL2dmczIvaW5jb3JlLmgpCitoYXMgdHdvIG1haW4gKGludGVybmFsKSBsb2NrczoKKworIDEuIEEgc3BpbmxvY2sgKGdsX3NwaW4pIHdoaWNoIHByb3RlY3RzIHRoZSBpbnRlcm5hbCBzdGF0ZSBzdWNoCisgICAgYXMgZ2xfc3RhdGUsIGdsX3RhcmdldCBhbmQgdGhlIGxpc3Qgb2YgaG9sZGVycyAoZ2xfaG9sZGVycykKKyAyLiBBIG5vbi1ibG9ja2luZyBiaXQgbG9jaywgR0xGX0xPQ0ssIHdoaWNoIGlzIHVzZWQgdG8gcHJldmVudCBvdGhlcgorICAgIHRocmVhZHMgZnJvbSBtYWtpbmcgY2FsbHMgdG8gdGhlIERMTSwgZXRjLiBhdCB0aGUgc2FtZSB0aW1lLiBJZiBhCisgICAgdGhyZWFkIHRha2VzIHRoaXMgbG9jaywgaXQgbXVzdCB0aGVuIGNhbGwgcnVuX3F1ZXVlICh1c3VhbGx5IHZpYSB0aGUKKyAgICB3b3JrcXVldWUpIHdoZW4gaXQgcmVsZWFzZXMgaXQgaW4gb3JkZXIgdG8gZW5zdXJlIGFueSBwZW5kaW5nIHRhc2tzCisgICAgYXJlIGNvbXBsZXRlZC4KKworVGhlIGdsX2hvbGRlcnMgbGlzdCBjb250YWlucyBhbGwgdGhlIHF1ZXVlZCBsb2NrIHJlcXVlc3RzIChub3QKK2p1c3QgdGhlIGhvbGRlcnMpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2xvY2suIElmIHRoZXJlIGFyZSBhbnkKK2hlbGQgbG9ja3MsIHRoZW4gdGhleSB3aWxsIGJlIGNvbnRpZ3VvdXMgZW50cmllcyBhdCB0aGUgaGVhZAorb2YgdGhlIGxpc3QuIExvY2tzIGFyZSBncmFudGVkIGluIHN0cmljdGx5IHRoZSBvcmRlciB0aGF0IHRoZXkKK2FyZSBxdWV1ZWQsIGV4Y2VwdCBmb3IgdGhvc2UgbWFya2VkIExNX0ZMQUdfUFJJT1JJVFkgd2hpY2ggYXJlCit1c2VkIG9ubHkgZHVyaW5nIHJlY292ZXJ5LCBhbmQgZXZlbiB0aGVuIG9ubHkgZm9yIGpvdXJuYWwgbG9ja3MuCisKK1RoZXJlIGFyZSB0aHJlZSBsb2NrIHN0YXRlcyB0aGF0IHVzZXJzIG9mIHRoZSBnbG9jayBsYXllciBjYW4gcmVxdWVzdCwKK25hbWVseSBzaGFyZWQgKFNIKSwgZGVmZXJyZWQgKERGKSBhbmQgZXhjbHVzaXZlIChFWCkuIFRob3NlIHRyYW5zbGF0ZQordG8gdGhlIGZvbGxvd2luZyBETE0gbG9jayBtb2RlczoKKworR2xvY2sgbW9kZSAgICB8IERMTSBsb2NrIG1vZGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFVOICAgICAgICB8ICAgIElWL05MICBVbmxvY2tlZCAobm8gRExNIGxvY2sgYXNzb2NpYXRlZCB3aXRoIGdsb2NrKSBvciBOTAorICAgIFNIICAgICAgICB8ICAgIFBSICAgICAoUHJvdGVjdGVkIHJlYWQpCisgICAgREYgICAgICAgIHwgICAgQ1cgICAgIChDb25jdXJyZW50IHdyaXRlKQorICAgIEVYICAgICAgICB8ICAgIEVYICAgICAoRXhjbHVzaXZlKQorCitUaHVzIERGIGlzIGJhc2ljYWxseSBhIHNoYXJlZCBtb2RlIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSAibm9ybWFsIgorc2hhcmVkIGxvY2sgbW9kZSwgU0guIEluIEdGUzIgdGhlIERGIG1vZGUgaXMgdXNlZCBleGNsdXNpdmVseSBmb3IgZGlyZWN0IEkvTworb3BlcmF0aW9ucy4gVGhlIGdsb2NrcyBhcmUgYmFzaWNhbGx5IGEgbG9jayBwbHVzIHNvbWUgcm91dGluZXMgd2hpY2ggZGVhbAord2l0aCBjYWNoZSBtYW5hZ2VtZW50LiBUaGUgZm9sbG93aW5nIHJ1bGVzIGFwcGx5IGZvciB0aGUgY2FjaGU6CisKK0dsb2NrIG1vZGUgICB8ICBDYWNoZSBkYXRhIHwgQ2FjaGUgTWV0YWRhdGEgfCBEaXJ0eSBEYXRhIHwgRGlydHkgTWV0YWRhdGEKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgVU4gICAgICAgfCAgICAgTm8gICAgICB8ICAgICAgIE5vICAgICAgIHwgICAgIE5vICAgICB8ICAgICAgTm8KKyAgICBTSCAgICAgICB8ICAgICBZZXMgICAgIHwgICAgICAgWWVzICAgICAgfCAgICAgTm8gICAgIHwgICAgICBObworICAgIERGICAgICAgIHwgICAgIE5vICAgICAgfCAgICAgICBZZXMgICAgICB8ICAgICBObyAgICAgfCAgICAgIE5vCisgICAgRVggICAgICAgfCAgICAgWWVzICAgICB8ICAgICAgIFllcyAgICAgIHwgICAgIFllcyAgICB8ICAgICAgWWVzCisKK1RoZXNlIHJ1bGVzIGFyZSBpbXBsZW1lbnRlZCB1c2luZyB0aGUgdmFyaW91cyBnbG9jayBvcGVyYXRpb25zIHdoaWNoCithcmUgZGVmaW5lZCBmb3IgZWFjaCB0eXBlIG9mIGdsb2NrLiBOb3QgYWxsIHR5cGVzIG9mIGdsb2NrcyB1c2UKK2FsbCB0aGUgbW9kZXMuIE9ubHkgaW5vZGUgZ2xvY2tzIHVzZSB0aGUgREYgbW9kZSBmb3IgZXhhbXBsZS4KKworVGFibGUgb2YgZ2xvY2sgb3BlcmF0aW9ucyBhbmQgcGVyIHR5cGUgY29uc3RhbnRzOgorCitGaWVsZCAgICAgICAgICAgIHwgUHVycG9zZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZ29feG1vdGVfdGggICAgICB8IENhbGxlZCBiZWZvcmUgcmVtb3RlIHN0YXRlIGNoYW5nZSAoZS5nLiB0byBzeW5jIGRpcnR5IGRhdGEpCitnb194bW90ZV9iaCAgICAgIHwgQ2FsbGVkIGFmdGVyIHJlbW90ZSBzdGF0ZSBjaGFuZ2UgKGUuZy4gdG8gcmVmaWxsIGNhY2hlKQorZ29faW52YWwgICAgICAgICB8IENhbGxlZCBpZiByZW1vdGUgc3RhdGUgY2hhbmdlIHJlcXVpcmVzIGludmFsaWRhdGluZyB0aGUgY2FjaGUKK2dvX2RlbW90ZV9vayAgICAgfCBSZXR1cm5zIGJvb2xlYW4gdmFsdWUgb2Ygd2hldGhlciBpdHMgb2sgdG8gZGVtb3RlIGEgZ2xvY2sKKyAgICAgICAgICAgICAgICAgfCAoZS5nLiBjaGVja3MgdGltZW91dCwgYW5kIHRoYXQgdGhlcmUgaXMgbm8gY2FjaGVkIGRhdGEpCitnb19sb2NrICAgICAgICAgIHwgQ2FsbGVkIGZvciB0aGUgZmlyc3QgbG9jYWwgaG9sZGVyIG9mIGEgbG9jaworZ29fdW5sb2NrICAgICAgICB8IENhbGxlZCBvbiB0aGUgZmluYWwgbG9jYWwgdW5sb2NrIG9mIGEgbG9jaworZ29fZHVtcCAgICAgICAgICB8IENhbGxlZCB0byBwcmludCBjb250ZW50IG9mIG9iamVjdCBmb3IgZGVidWdmcyBmaWxlLCBvciBvbgorICAgICAgICAgICAgICAgICB8IGVycm9yIHRvIGR1bXAgZ2xvY2sgdG8gdGhlIGxvZy4KK2dvX3R5cGU7ICAgICAgICAgfCBUaGUgdHlwZSBvZiB0aGUgZ2xvY2ssIExNX1RZUEVfLi4uLi4KK2dvX21pbl9ob2xkX3RpbWUgfCBUaGUgbWluaW11bSBob2xkIHRpbWUKKworVGhlIG1pbmltdW0gaG9sZCB0aW1lIGZvciBlYWNoIGxvY2sgaXMgdGhlIHRpbWUgYWZ0ZXIgYSByZW1vdGUgbG9jaworZ3JhbnQgZm9yIHdoaWNoIHdlIGlnbm9yZSByZW1vdGUgZGVtb3RlIHJlcXVlc3RzLiBUaGlzIGlzIGluIG9yZGVyIHRvCitwcmV2ZW50IGEgc2l0dWF0aW9uIHdoZXJlIGxvY2tzIGFyZSBiZWluZyBib3VuY2VkIGFyb3VuZCB0aGUgY2x1c3RlcgorZnJvbSBub2RlIHRvIG5vZGUgd2l0aCBub25lIG9mIHRoZSBub2RlcyBtYWtpbmcgYW55IHByb2dyZXNzLiBUaGlzCit0ZW5kcyB0byBzaG93IHVwIG1vc3Qgd2l0aCBzaGFyZWQgbW1hcGVkIGZpbGVzIHdoaWNoIGFyZSBiZWluZyB3cml0dGVuCit0byBieSBtdWx0aXBsZSBub2Rlcy4gQnkgZGVsYXlpbmcgdGhlIGRlbW90aW9uIGluIHJlc3BvbnNlIHRvIGEKK3JlbW90ZSBjYWxsYmFjaywgdGhhdCBnaXZlcyB0aGUgdXNlcnNwYWNlIHByb2dyYW0gdGltZSB0byBtYWtlCitzb21lIHByb2dyZXNzIGJlZm9yZSB0aGUgcGFnZXMgYXJlIHVubWFwcGVkLgorCitUaGVyZSBpcyBhIHBsYW4gdG8gdHJ5IGFuZCByZW1vdmUgdGhlIGdvX2xvY2sgYW5kIGdvX3VubG9jayBjYWxsYmFja3MKK2lmIHBvc3NpYmxlLCBpbiBvcmRlciB0byB0cnkgYW5kIHNwZWVkIHVwIHRoZSBmYXN0IHBhdGggdGhvdWdoIHRoZSBsb2NraW5nLgorQWxzbywgZXZlbnR1YWxseSB3ZSBob3BlIHRvIG1ha2UgdGhlIGdsb2NrICJFWCIgbW9kZSBsb2NhbGx5IHNoYXJlZAorc3VjaCB0aGF0IGFueSBsb2NhbCBsb2NraW5nIHdpbGwgYmUgZG9uZSB3aXRoIHRoZSBpX211dGV4IGFzIHJlcXVpcmVkCityYXRoZXIgdGhhbiB2aWEgdGhlIGdsb2NrLgorCitMb2NraW5nIHJ1bGVzIGZvciBnbG9jayBvcGVyYXRpb25zOgorCitPcGVyYXRpb24gICAgIHwgIEdMRl9MT0NLIGJpdCBsb2NrIGhlbGQgfCAgZ2xfc3BpbiBzcGlubG9jayBoZWxkCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZ29feG1vdGVfdGggICB8ICAgICAgIFllcyAgICAgICAgICAgICAgIHwgICAgICAgTm8KK2dvX3htb3RlX2JoICAgfCAgICAgICBZZXMgICAgICAgICAgICAgICB8ICAgICAgIE5vCitnb19pbnZhbCAgICAgIHwgICAgICAgWWVzICAgICAgICAgICAgICAgfCAgICAgICBObworZ29fZGVtb3RlX29rICB8ICAgICAgIFNvbWV0aW1lcyAgICAgICAgIHwgICAgICAgWWVzCitnb19sb2NrICAgICAgIHwgICAgICAgWWVzICAgICAgICAgICAgICAgfCAgICAgICBObworZ29fdW5sb2NrICAgICB8ICAgICAgIFllcyAgICAgICAgICAgICAgIHwgICAgICAgTm8KK2dvX2R1bXAgICAgICAgfCAgICAgICBTb21ldGltZXMgICAgICAgICB8ICAgICAgIFllcworCitOLkIuIE9wZXJhdGlvbnMgbXVzdCBub3QgZHJvcCBlaXRoZXIgdGhlIGJpdCBsb2NrIG9yIHRoZSBzcGlubG9jaworaWYgaXRzIGhlbGQgb24gZW50cnkuIGdvX2R1bXAgYW5kIGRvX2RlbW90ZV9vayBtdXN0IG5ldmVyIGJsb2NrLgorTm90ZSB0aGF0IGdvX2R1bXAgd2lsbCBvbmx5IGJlIGNhbGxlZCBpZiB0aGUgZ2xvY2sncyBzdGF0ZQoraW5kaWNhdGVzIHRoYXQgaXQgaXMgY2FjaGluZyB1cHRvZGF0ZSBkYXRhLgorCitHbG9jayBsb2NraW5nIG9yZGVyIHdpdGhpbiBHRlMyOgorCisgMS4gaV9tdXRleCAoaWYgcmVxdWlyZWQpCisgMi4gUmVuYW1lIGdsb2NrIChmb3IgcmVuYW1lIG9ubHkpCisgMy4gSW5vZGUgZ2xvY2socykKKyAgICAoUGFyZW50cyBiZWZvcmUgY2hpbGRyZW4sIGlub2RlcyBhdCAic2FtZSBsZXZlbCIgd2l0aCBzYW1lIHBhcmVudCBpbgorICAgICBsb2NrIG51bWJlciBvcmRlcikKKyA0LiBSZ3JwIGdsb2NrKHMpIChmb3IgKGRlKWFsbG9jYXRpb24gb3BlcmF0aW9ucykKKyA1LiBUcmFuc2FjdGlvbiBnbG9jayAodmlhIGdmczJfdHJhbnNfYmVnaW4pIGZvciBub24tcmVhZCBvcGVyYXRpb25zCisgNi4gUGFnZSBsb2NrICAoYWx3YXlzIGxhc3QsIHZlcnkgaW1wb3J0YW50ISkKKworVGhlcmUgYXJlIHR3byBnbG9ja3MgcGVyIGlub2RlLiBPbmUgZGVhbHMgd2l0aCBhY2Nlc3MgdG8gdGhlIGlub2RlCitpdHNlbGYgKGxvY2tpbmcgb3JkZXIgYXMgYWJvdmUpLCBhbmQgdGhlIG90aGVyLCBrbm93biBhcyB0aGUgaW9wZW4KK2dsb2NrIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgaV9ubGluayBmaWVsZCBpbiB0aGUgaW5vZGUgdG8KK2RldGVybWluZSB0aGUgbGlmZXRpbWUgb2YgdGhlIGlub2RlIGluIHF1ZXN0aW9uLiBMb2NraW5nIG9mIGlub2RlcworaXMgb24gYSBwZXItaW5vZGUgYmFzaXMuIExvY2tpbmcgb2YgcmdycHMgaXMgb24gYSBwZXIgcmdycCBiYXNpcy4KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wcm9jLnR4dCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcHJvYy50eHQKaW5kZXggZGJjM2M2YS4uN2YyNjhmMyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wcm9jLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3Byb2MudHh0CkBAIC0zODAsMjggKzM4MCwzNSBAQAogT2Ygc29tZSBpbnRlcmVzdCBpcyB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSAvcHJvYy9pcnEgZGlyZWN0b3J5IHRvIDIuNC4KIEl0IGNvdWxkIGJlIHVzZWQgdG8gc2V0IElSUSB0byBDUFUgYWZmaW5pdHksIHRoaXMgbWVhbnMgdGhhdCB5b3UgY2FuICJob29rIiBhbgogSVJRIHRvIG9ubHkgb25lIENQVSwgb3IgdG8gZXhjbHVkZSBhIENQVSBvZiBoYW5kbGluZyBJUlFzLiBUaGUgY29udGVudHMgb2YgdGhlCi1pcnEgc3ViZGlyIGlzIG9uZSBzdWJkaXIgZm9yIGVhY2ggSVJRLCBhbmQgb25lIGZpbGU7IHByb2ZfY3B1X21hc2sKK2lycSBzdWJkaXIgaXMgb25lIHN1YmRpciBmb3IgZWFjaCBJUlEsIGFuZCB0d28gZmlsZXM7IGRlZmF1bHRfc21wX2FmZmluaXR5IGFuZAorcHJvZl9jcHVfbWFzay4KIAogRm9yIGV4YW1wbGUgCiAgID4gbHMgL3Byb2MvaXJxLwogICAwICAxMCAgMTIgIDE0ICAxNiAgMTggIDIgIDQgIDYgIDggIHByb2ZfY3B1X21hc2sKLSAgMSAgMTEgIDEzICAxNSAgMTcgIDE5ICAzICA1ICA3ICA5CisgIDEgIDExICAxMyAgMTUgIDE3ICAxOSAgMyAgNSAgNyAgOSAgZGVmYXVsdF9zbXBfYWZmaW5pdHkKICAgPiBscyAvcHJvYy9pcnEvMC8KICAgc21wX2FmZmluaXR5CiAKLVRoZSBjb250ZW50cyBvZiB0aGUgcHJvZl9jcHVfbWFzayBmaWxlIGFuZCBlYWNoIHNtcF9hZmZpbml0eSBmaWxlIGZvciBlYWNoIElSUQotaXMgdGhlIHNhbWUgYnkgZGVmYXVsdDoKK3NtcF9hZmZpbml0eSBpcyBhIGJpdG1hc2ssIGluIHdoaWNoIHlvdSBjYW4gc3BlY2lmeSB3aGljaCBDUFVzIGNhbiBoYW5kbGUgdGhlCitJUlEsIHlvdSBjYW4gc2V0IGl0IGJ5IGRvaW5nOgogCi0gID4gY2F0IC9wcm9jL2lycS8wL3NtcF9hZmZpbml0eSAKKyAgPiBlY2hvIDEgPiAvcHJvYy9pcnEvMTAvc21wX2FmZmluaXR5CisKK1RoaXMgbWVhbnMgdGhhdCBvbmx5IHRoZSBmaXJzdCBDUFUgd2lsbCBoYW5kbGUgdGhlIElSUSwgYnV0IHlvdSBjYW4gYWxzbyBlY2hvCis1IHdoaWNoIG1lYW5zIHRoYXQgb25seSB0aGUgZmlyc3QgYW5kIGZvdXJ0aCBDUFUgY2FuIGhhbmRsZSB0aGUgSVJRLgorCitUaGUgY29udGVudHMgb2YgZWFjaCBzbXBfYWZmaW5pdHkgZmlsZSBpcyB0aGUgc2FtZSBieSBkZWZhdWx0OgorCisgID4gY2F0IC9wcm9jL2lycS8wL3NtcF9hZmZpbml0eQogICBmZmZmZmZmZgogCi1JdCdzIGEgYml0bWFzaywgaW4gd2hpY2ggeW91IGNhbiBzcGVjaWZ5IHdoaWNoIENQVXMgY2FuIGhhbmRsZSB0aGUgSVJRLCB5b3UgY2FuCi1zZXQgaXQgYnkgZG9pbmc6CitUaGUgZGVmYXVsdF9zbXBfYWZmaW5pdHkgbWFzayBhcHBsaWVzIHRvIGFsbCBub24tYWN0aXZlIElSUXMsIHdoaWNoIGFyZSB0aGUKK0lSUXMgd2hpY2ggaGF2ZSBub3QgeWV0IGJlZW4gYWxsb2NhdGVkL2FjdGl2YXRlZCwgYW5kIGhlbmNlIHdoaWNoIGxhY2sgYQorL3Byb2MvaXJxL1swLTldKiBkaXJlY3RvcnkuCiAKLSAgPiBlY2hvIDEgPiAvcHJvYy9pcnEvcHJvZl9jcHVfbWFzawotCi1UaGlzIG1lYW5zIHRoYXQgb25seSB0aGUgZmlyc3QgQ1BVIHdpbGwgaGFuZGxlIHRoZSBJUlEsIGJ1dCB5b3UgY2FuIGFsc28gZWNobyA1Ci13aGljaCBtZWFucyB0aGF0IG9ubHkgdGhlIGZpcnN0IGFuZCBmb3VydGggQ1BVIGNhbiBoYW5kbGUgdGhlIElSUS4KK3Byb2ZfY3B1X21hc2sgc3BlY2lmaWVzIHdoaWNoIENQVXMgYXJlIHRvIGJlIHByb2ZpbGVkIGJ5IHRoZSBzeXN0ZW0gd2lkZQorcHJvZmlsZXIuIERlZmF1bHQgdmFsdWUgaXMgZmZmZmZmZmYgKGFsbCBjcHVzKS4KIAogVGhlIHdheSBJUlFzIGFyZSByb3V0ZWQgaXMgaGFuZGxlZCBieSB0aGUgSU8tQVBJQywgYW5kIGl0J3MgUm91bmQgUm9iaW4KIGJldHdlZW4gYWxsIHRoZSBDUFVzIHdoaWNoIGFyZSBhbGxvd2VkIHRvIGhhbmRsZSBpdC4gQXMgdXN1YWwgdGhlIGtlcm5lbCBoYXMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZnRyYWNlLnR4dCBiL0RvY3VtZW50YXRpb24vZnRyYWNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2QzZmFhCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9mdHJhY2UudHh0CkBAIC0wLDAgKzEsMTM2MSBAQAorCQlmdHJhY2UgLSBGdW5jdGlvbiBUcmFjZXIKKwkJPT09PT09PT09PT09PT09PT09PT09PT09CisKK0NvcHlyaWdodCAyMDA4IFJlZCBIYXQgSW5jLgorICAgQXV0aG9yOiAgIFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICBMaWNlbnNlOiAgIFRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4yCitSZXZpZXdlcnM6ICAgRWxpYXMgT2x0bWFubnMgYW5kIFJhbmR5IER1bmxhcAorCitXcml0ZW4gZm9yOiAyLjYuMjYtcmM4IGxpbnV4LTIuNi10aXAuZ2l0IHRpcC90cmFjaW5nL2Z0cmFjZSBicmFuY2gKKworSW50cm9kdWN0aW9uCistLS0tLS0tLS0tLS0KKworRnRyYWNlIGlzIGFuIGludGVybmFsIHRyYWNlciBkZXNpZ25lZCB0byBoZWxwIG91dCBkZXZlbG9wZXJzIGFuZAorZGVzaWduZXJzIG9mIHN5c3RlbXMgdG8gZmluZCB3aGF0IGlzIGdvaW5nIG9uIGluc2lkZSB0aGUga2VybmVsLgorSXQgY2FuIGJlIHVzZWQgZm9yIGRlYnVnZ2luZyBvciBhbmFseXppbmcgbGF0ZW5jaWVzIGFuZCBwZXJmb3JtYW5jZQoraXNzdWVzIHRoYXQgdGFrZSBwbGFjZSBvdXRzaWRlIG9mIHVzZXItc3BhY2UuCisKK0FsdGhvdWdoIGZ0cmFjZSBpcyB0aGUgZnVuY3Rpb24gdHJhY2VyLCBpdCBhbHNvIGluY2x1ZGVzIGFuCitpbmZyYXN0cnVjdHVyZSB0aGF0IGFsbG93cyBmb3Igb3RoZXIgdHlwZXMgb2YgdHJhY2luZy4gU29tZSBvZiB0aGUKK3RyYWNlcnMgdGhhdCBhcmUgY3VycmVudGx5IGluIGZ0cmFjZSBpcyBhIHRyYWNlciB0byB0cmFjZQorY29udGV4dCBzd2l0Y2hlcywgdGhlIHRpbWUgaXQgdGFrZXMgZm9yIGEgaGlnaCBwcmlvcml0eSB0YXNrIHRvCitydW4gYWZ0ZXIgaXQgd2FzIHdva2VuIHVwLCB0aGUgdGltZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCwgYW5kCittb3JlLgorCisKK1RoZSBGaWxlIFN5c3RlbQorLS0tLS0tLS0tLS0tLS0tCisKK0Z0cmFjZSB1c2VzIHRoZSBkZWJ1Z2ZzIGZpbGUgc3lzdGVtIHRvIGhvbGQgdGhlIGNvbnRyb2wgZmlsZXMgYXMgd2VsbAorYXMgdGhlIGZpbGVzIHRvIGRpc3BsYXkgb3V0cHV0LgorCitUbyBtb3VudCB0aGUgZGVidWdmcyBzeXN0ZW06CisKKyAgIyBta2RpciAvZGVidWcKKyAgIyBtb3VudCAtdCBkZWJ1Z2ZzIG5vZGV2IC9kZWJ1ZworCisKK1RoYXQncyBpdCEgKGFzc3VtaW5nIHRoYXQgeW91IGhhdmUgZnRyYWNlIGNvbmZpZ3VyZWQgaW50byB5b3VyIGtlcm5lbCkKKworQWZ0ZXIgbW91bnRpbmcgdGhlIGRlYnVnZnMsIHlvdSBjYW4gc2VlIGEgZGlyZWN0b3J5IGNhbGxlZAorInRyYWNpbmciLiAgVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgdGhlIGNvbnRyb2wgYW5kIG91dHB1dCBmaWxlcworb2YgZnRyYWNlLiBIZXJlIGlzIGEgbGlzdCBvZiBzb21lIG9mIHRoZSBrZXkgZmlsZXM6CisKKworIE5vdGU6IGFsbCB0aW1lIHZhbHVlcyBhcmUgaW4gbWljcm9zZWNvbmRzLgorCisgIGN1cnJlbnRfdHJhY2VyIDogVGhpcyBpcyB1c2VkIHRvIHNldCBvciBkaXNwbGF5IHRoZSBjdXJyZW50IHRyYWNlcgorCQl0aGF0IGlzIGNvbmZpZ3VyZWQuCisKKyAgYXZhaWxhYmxlX3RyYWNlcnMgOiBUaGlzIGhvbGRzIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgdHJhY2VycyB0aGF0CisJCWhhdmUgYmVlbiBjb21waWxlZCBpbnRvIHRoZSBrZXJuZWwuIFRoZSB0cmFjZXJzCisJCWxpc3RlZCBoZXJlIGNhbiBiZSBjb25maWd1cmVkIGJ5IGVjaG9pbmcgaW4gdGhlaXIKKwkJbmFtZSBpbnRvIGN1cnJlbnRfdHJhY2VyLgorCisgIHRyYWNpbmdfZW5hYmxlZCA6IFRoaXMgc2V0cyBvciBkaXNwbGF5cyB3aGV0aGVyIHRoZSBjdXJyZW50X3RyYWNlcgorCQlpcyBhY3RpdmF0ZWQgYW5kIHRyYWNpbmcgb3Igbm90LiBFY2hvIDAgaW50byB0aGlzCisJCWZpbGUgdG8gZGlzYWJsZSB0aGUgdHJhY2VyIG9yIDEgKG9yIG5vbi16ZXJvKSB0bworCQllbmFibGUgaXQuCisKKyAgdHJhY2UgOiBUaGlzIGZpbGUgaG9sZHMgdGhlIG91dHB1dCBvZiB0aGUgdHJhY2UgaW4gYSBodW1hbiByZWFkYWJsZQorCQlmb3JtYXQuCisKKyAgbGF0ZW5jeV90cmFjZSA6IFRoaXMgZmlsZSBzaG93cyB0aGUgc2FtZSB0cmFjZSBidXQgdGhlIGluZm9ybWF0aW9uCisJCWlzIG9yZ2FuaXplZCBtb3JlIHRvIGRpc3BsYXkgcG9zc2libGUgbGF0ZW5jaWVzCisJCWluIHRoZSBzeXN0ZW0uCisKKyAgdHJhY2VfcGlwZSA6IFRoZSBvdXRwdXQgaXMgdGhlIHNhbWUgYXMgdGhlICJ0cmFjZSIgZmlsZSBidXQgdGhpcworCQlmaWxlIGlzIG1lYW50IHRvIGJlIHN0cmVhbWVkIHdpdGggbGl2ZSB0cmFjaW5nLgorCQlSZWFkcyBmcm9tIHRoaXMgZmlsZSB3aWxsIGJsb2NrIHVudGlsIG5ldyBkYXRhCisJCWlzIHJldHJpZXZlZC4gVW5saWtlIHRoZSAidHJhY2UiIGFuZCAibGF0ZW5jeV90cmFjZSIKKwkJZmlsZXMsIHRoaXMgZmlsZSBpcyBhIGNvbnN1bWVyLiBUaGlzIG1lYW5zIHJlYWRpbmcKKwkJZnJvbSB0aGlzIGZpbGUgY2F1c2VzIHNlcXVlbnRpYWwgcmVhZHMgdG8gZGlzcGxheQorCQltb3JlIGN1cnJlbnQgZGF0YS4gT25jZSBkYXRhIGlzIHJlYWQgZnJvbSB0aGlzCisJCWZpbGUsIGl0IGlzIGNvbnN1bWVkLCBhbmQgd2lsbCBub3QgYmUgcmVhZAorCQlhZ2FpbiB3aXRoIGEgc2VxdWVudGlhbCByZWFkLiBUaGUgInRyYWNlIiBhbmQKKwkJImxhdGVuY3lfdHJhY2UiIGZpbGVzIGFyZSBzdGF0aWMsIGFuZCBpZiB0aGUKKwkJdHJhY2VyIGlzbid0IGFkZGluZyBtb3JlIGRhdGEsIHRoZXkgd2lsbCBkaXNwbGF5CisJCXRoZSBzYW1lIGluZm9ybWF0aW9uIGV2ZXJ5IHRpbWUgdGhleSBhcmUgcmVhZC4KKworICBpdGVyX2N0cmwgOiBUaGlzIGZpbGUgbGV0cyB0aGUgdXNlciBjb250cm9sIHRoZSBhbW91bnQgb2YgZGF0YQorCQl0aGF0IGlzIGRpc3BsYXllZCBpbiBvbmUgb2YgdGhlIGFib3ZlIG91dHB1dAorCQlmaWxlcy4KKworICB0cmFjZV9tYXhfbGF0ZW5jeSA6IFNvbWUgb2YgdGhlIHRyYWNlcnMgcmVjb3JkIHRoZSBtYXggbGF0ZW5jeS4KKwkJRm9yIGV4YW1wbGUsIHRoZSB0aW1lIGludGVycnVwdHMgYXJlIGRpc2FibGVkLgorCQlUaGlzIHRpbWUgaXMgc2F2ZWQgaW4gdGhpcyBmaWxlLiBUaGUgbWF4IHRyYWNlCisJCXdpbGwgYWxzbyBiZSBzdG9yZWQsIGFuZCBkaXNwbGF5ZWQgYnkgZWl0aGVyCisJCSJ0cmFjZSIgb3IgImxhdGVuY3lfdHJhY2UiLiAgQSBuZXcgbWF4IHRyYWNlIHdpbGwKKwkJb25seSBiZSByZWNvcmRlZCBpZiB0aGUgbGF0ZW5jeSBpcyBncmVhdGVyIHRoYW4KKwkJdGhlIHZhbHVlIGluIHRoaXMgZmlsZS4gKGluIG1pY3Jvc2Vjb25kcykKKworICB0cmFjZV9lbnRyaWVzIDogVGhpcyBzZXRzIG9yIGRpc3BsYXlzIHRoZSBudW1iZXIgb2YgdHJhY2UKKwkJZW50cmllcyBlYWNoIENQVSBidWZmZXIgY2FuIGhvbGQuIFRoZSB0cmFjZXIgYnVmZmVycworCQlhcmUgdGhlIHNhbWUgc2l6ZSBmb3IgZWFjaCBDUFUsIHNvIGNhcmUgbXVzdCBiZQorCQl0YWtlbiB3aGVuIG1vZGlmeWluZyB0aGUgdHJhY2VfZW50cmllcy4gVGhlIHRyYWNlCisJCWJ1ZmZlcnMgYXJlIGFsbG9jYXRlZCBpbiBwYWdlcyAoYmxvY2tzIG9mIG1lbW9yeSB0aGF0CisJCXRoZSBrZXJuZWwgdXNlcyBmb3IgYWxsb2NhdGlvbiwgdXN1YWxseSA0IEtCIGluIHNpemUpLgorCQlTaW5jZSBlYWNoIGVudHJ5IGlzIHNtYWxsZXIgdGhhbiBhIHBhZ2UsIGlmIHRoZSBsYXN0CisJCWFsbG9jYXRlZCBwYWdlIGhhcyByb29tIGZvciBtb3JlIGVudHJpZXMgdGhhbiB3ZXJlCisJCXJlcXVlc3RlZCwgdGhlIHJlc3Qgb2YgdGhlIHBhZ2UgaXMgdXNlZCB0byBhbGxvY2F0ZQorCQllbnRyaWVzLgorCisJCVRoaXMgY2FuIG9ubHkgYmUgdXBkYXRlZCB3aGVuIHRoZSBjdXJyZW50X3RyYWNlcgorCQlpcyBzZXQgdG8gIm5vbmUiLgorCisJCU5PVEU6IEl0IGlzIHBsYW5uZWQgb24gY2hhbmdpbmcgdGhlIGFsbG9jYXRlZCBidWZmZXJzCisJCSAgICAgIGZyb20gYmVpbmcgdGhlIG51bWJlciBvZiBwb3NzaWJsZSBDUFVTIHRvCisJCSAgICAgIHRoZSBudW1iZXIgb2Ygb25saW5lIENQVVMuCisKKyAgdHJhY2luZ19jcHVtYXNrIDogVGhpcyBpcyBhIG1hc2sgdGhhdCBsZXRzIHRoZSB1c2VyIG9ubHkgdHJhY2UKKwkJb24gc3BlY2lmaWVkIENQVVMuIFRoZSBmb3JtYXQgaXMgYSBoZXggc3RyaW5nCisJCXJlcHJlc2VudGluZyB0aGUgQ1BVUy4KKworICBzZXRfZnRyYWNlX2ZpbHRlciA6IFdoZW4gZHluYW1pYyBmdHJhY2UgaXMgY29uZmlndXJlZCBpbiwgdGhlCisJCWNvZGUgaXMgZHluYW1pY2FsbHkgbW9kaWZpZWQgdG8gZGlzYWJsZSBjYWxsaW5nCisJCW9mIHRoZSBmdW5jdGlvbiBwcm9maWxlciAobWNvdW50KS4gVGhpcyBsZXRzCisJCXRyYWNpbmcgYmUgY29uZmlndXJlZCBpbiB3aXRoIHByYWN0aWNhbGx5IG5vIG92ZXJoZWFkCisJCWluIHBlcmZvcm1hbmNlLiAgVGhpcyBhbHNvIGhhcyBhIHNpZGUgZWZmZWN0IG9mCisJCWVuYWJsaW5nIG9yIGRpc2FibGluZyBzcGVjaWZpYyBmdW5jdGlvbnMgdG8gYmUKKwkJdHJhY2VkLiAgRWNob2luZyBpbiBuYW1lcyBvZiBmdW5jdGlvbnMgaW50byB0aGlzCisJCWZpbGUgd2lsbCBsaW1pdCB0aGUgdHJhY2UgdG8gb25seSB0aGVzZSBmdW5jdGlvbnMuCisKKyAgc2V0X2Z0cmFjZV9ub3RyYWNlOiBUaGlzIGhhcyB0aGUgb3Bwb3NpdGUgZWZmZWN0IHRoYXQKKwkJc2V0X2Z0cmFjZV9maWx0ZXIgaGFzLiBBbnkgZnVuY3Rpb24gdGhhdCBpcyBhZGRlZAorCQloZXJlIHdpbGwgbm90IGJlIHRyYWNlZC4gSWYgYSBmdW5jdGlvbiBleGlzdHMKKwkJaW4gYm90aCBzZXRfZnRyYWNlX2ZpbHRlciBhbmQgc2V0X2Z0cmFjZV9ub3RyYWNlLAorCQl0aGUgZnVuY3Rpb24gd2lsbCBfbm90XyBiZSB0cmFjZWQuCisKKyAgYXZhaWxhYmxlX2ZpbHRlcl9mdW5jdGlvbnMgOiBXaGVuIGEgZnVuY3Rpb24gaXMgZW5jb3VudGVyZWQgdGhlIGZpcnN0CisJCXRpbWUgYnkgdGhlIGR5bmFtaWMgdHJhY2VyLCBpdCBpcyByZWNvcmRlZCBhbmQKKwkJbGF0ZXIgdGhlIGNhbGwgaXMgY29udmVydGVkIGludG8gYSBub3AuIFRoaXMgZmlsZQorCQlsaXN0cyB0aGUgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIHJlY29yZGVkCisJCWJ5IHRoZSBkeW5hbWljIHRyYWNlciBhbmQgdGhlc2UgZnVuY3Rpb25zIGNhbgorCQliZSB1c2VkIHRvIHNldCB0aGUgZnRyYWNlIGZpbHRlciBieSB0aGUgYWJvdmUKKwkJInNldF9mdHJhY2VfZmlsdGVyIiBmaWxlLgorCisKK1RoZSBUcmFjZXJzCistLS0tLS0tLS0tLQorCitIZXJlIGFyZSB0aGUgbGlzdCBvZiBjdXJyZW50IHRyYWNlcnMgdGhhdCBjYW4gYmUgY29uZmlndXJlZC4KKworICBmdHJhY2UgLSBmdW5jdGlvbiB0cmFjZXIgdGhhdCB1c2VzIG1jb3VudCB0byB0cmFjZSBhbGwgZnVuY3Rpb25zLgorCQlJdCBpcyBwb3NzaWJsZSB0byBmaWx0ZXIgb3V0IHdoaWNoIGZ1bmN0aW9ucyB0aGF0IGFyZQorCQl0byBiZSB0cmFjZWQgd2hlbiBkeW5hbWljIGZ0cmFjZSBpcyBjb25maWd1cmVkIGluLgorCisgIHNjaGVkX3N3aXRjaCAtIHRyYWNlcyB0aGUgY29udGV4dCBzd2l0Y2hlcyBiZXR3ZWVuIHRhc2tzLgorCisgIGlycXNvZmYgLSB0cmFjZXMgdGhlIGFyZWFzIHRoYXQgZGlzYWJsZSBpbnRlcnJ1cHRzIGFuZCBzYXZlcyBvZmYKKyAgCQl0aGUgdHJhY2Ugd2l0aCB0aGUgbG9uZ2VzdCBtYXggbGF0ZW5jeS4KKwkJU2VlIHRyYWNpbmdfbWF4X2xhdGVuY3kuICBXaGVuIGEgbmV3IG1heCBpcyByZWNvcmRlZCwKKwkJaXQgcmVwbGFjZXMgdGhlIG9sZCB0cmFjZS4gSXQgaXMgYmVzdCB0byB2aWV3IHRoaXMKKwkJdHJhY2Ugd2l0aCB0aGUgbGF0ZW5jeV90cmFjZSBmaWxlLgorCisgIHByZWVtcHRvZmYgLSBTaW1pbGFyIHRvIGlycXNvZmYgYnV0IHRyYWNlcyBhbmQgcmVjb3JkcyB0aGUgdGltZQorCQlwcmVlbXB0aW9uIGlzIGRpc2FibGVkLgorCisgIHByZWVtcHRpcnFzb2ZmIC0gU2ltaWxhciB0byBpcnFzb2ZmIGFuZCBwcmVlbXB0b2ZmLCBidXQgdHJhY2VzIGFuZAorCQkgcmVjb3JkcyB0aGUgbGFyZ2VzdCB0aW1lIGlycXMgYW5kL29yIHByZWVtcHRpb24gaXMKKwkJIGRpc2FibGVkLgorCisgIHdha2V1cCAtIFRyYWNlcyBhbmQgcmVjb3JkcyB0aGUgbWF4IGxhdGVuY3kgdGhhdCBpdCB0YWtlcyBmb3IKKwkJdGhlIGhpZ2hlc3QgcHJpb3JpdHkgdGFzayB0byBnZXQgc2NoZWR1bGVkIGFmdGVyCisJCWl0IGhhcyBiZWVuIHdva2VuIHVwLgorCisgIG5vbmUgLSBUaGlzIGlzIG5vdCBhIHRyYWNlci4gVG8gcmVtb3ZlIGFsbCB0cmFjZXJzIGZyb20gdHJhY2luZworCQlzaW1wbHkgZWNobyAibm9uZSIgaW50byBjdXJyZW50X3RyYWNlci4KKworCitFeGFtcGxlcyBvZiB1c2luZyB0aGUgdHJhY2VyCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0hlcmUgYXJlIHR5cGljYWwgZXhhbXBsZXMgb2YgdXNpbmcgdGhlIHRyYWNlcnMgd2l0aCBvbmx5IGNvbnRyb2xsaW5nCit0aGVtIHdpdGggdGhlIGRlYnVnZnMgaW50ZXJmYWNlICh3aXRob3V0IHVzaW5nIGFueSB1c2VyLWxhbmQgdXRpbGl0aWVzKS4KKworT3V0cHV0IGZvcm1hdDoKKy0tLS0tLS0tLS0tLS0tCisKK0hlcmUncyBhbiBleGFtcGxlIG9mIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHRoZSBmaWxlICJ0cmFjZSIKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLQorIyB0cmFjZXI6IGZ0cmFjZQorIworIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04KKyMgICAgICAgICAgICAgIHwgfCAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwKKyAgICAgICAgICAgIGJhc2gtNDI1MSAgWzAxXSAxMDE1Mi41ODM4NTQ6IHBhdGhfcHV0IDwtcGF0aF93YWxrCisgICAgICAgICAgICBiYXNoLTQyNTEgIFswMV0gMTAxNTIuNTgzODU1OiBkcHV0IDwtcGF0aF9wdXQKKyAgICAgICAgICAgIGJhc2gtNDI1MSAgWzAxXSAxMDE1Mi41ODM4NTU6IF9hdG9taWNfZGVjX2FuZF9sb2NrIDwtZHB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLQorCitBIGhlYWRlciBpcyBwcmludGVkIHdpdGggdGhlIHRyYWNlIHRoYXQgaXMgcmVwcmVzZW50ZWQuIEluIHRoaXMgY2FzZQordGhlIHRyYWNlciBpcyAiZnRyYWNlIi4gVGhlbiBhIGhlYWRlciBzaG93aW5nIHRoZSBmb3JtYXQuIFRhc2sgbmFtZQorImJhc2giLCB0aGUgdGFzayBQSUQgIjQyNTEiLCB0aGUgQ1BVIHRoYXQgaXQgd2FzIHJ1bm5pbmcgb24KKyIwMSIsIHRoZSB0aW1lc3RhbXAgaW4gPHNlY3M+Ljx1c2Vjcz4gZm9ybWF0LCB0aGUgZnVuY3Rpb24gbmFtZSB0aGF0IHdhcwordHJhY2VkICJwYXRoX3B1dCIgYW5kIHRoZSBwYXJlbnQgZnVuY3Rpb24gdGhhdCBjYWxsZWQgdGhpcyBmdW5jdGlvbgorInBhdGhfd2FsayIuCisKK1RoZSBzY2hlZF9zd2l0Y2ggdHJhY2VyIGFsc28gaW5jbHVkZXMgdHJhY2luZyBvZiB0YXNrIHdha2UgdXBzIGFuZAorY29udGV4dCBzd2l0Y2hlcy4KKworICAgICBrc29mdGlycWQvMS03ICAgICBbMDFdICAxNDUzLjA3MDAxMzogICAgICA3OjExNTpSICAgKyAgMjkxNjoxMTU6UworICAgICBrc29mdGlycWQvMS03ICAgICBbMDFdICAxNDUzLjA3MDAxMzogICAgICA3OjExNTpSICAgKyAgICAxMDoxMTU6UworICAgICBrc29mdGlycWQvMS03ICAgICBbMDFdICAxNDUzLjA3MDAxMzogICAgICA3OjExNTpSID09PiAgICAxMDoxMTU6UgorICAgICAgICBldmVudHMvMS0xMCAgICBbMDFdICAxNDUzLjA3MDAxMzogICAgIDEwOjExNTpTID09PiAgMjkxNjoxMTU6UgorICAgICBrb25kZW1hbmQvMS0yOTE2ICBbMDFdICAxNDUzLjA3MDAxMzogICAyOTE2OjExNTpTID09PiAgICAgNzoxMTU6UgorICAgICBrc29mdGlycWQvMS03ICAgICBbMDFdICAxNDUzLjA3MDAxMzogICAgICA3OjExNTpTID09PiAgICAgMDoxNDA6UgorCitXYWtlIHVwcyBhcmUgcmVwcmVzZW50ZWQgYnkgYSAiKyIgYW5kIHRoZSBjb250ZXh0IHN3aXRjaGVzIHNob3cKKyI9PT4iLiAgVGhlIGZvcm1hdCBpczoKKworIENvbnRleHQgc3dpdGNoZXM6CisKKyAgICAgICBQcmV2aW91cyB0YXNrICAgICAgICAgICAgICBOZXh0IFRhc2sKKworICA8cGlkPjo8cHJpbz46PHN0YXRlPiAgPT0+ICA8cGlkPjo8cHJpbz46PHN0YXRlPgorCisgV2FrZSB1cHM6CisKKyAgICAgICBDdXJyZW50IHRhc2sgICAgICAgICAgICAgICBUYXNrIHdha2luZyB1cAorCisgIDxwaWQ+OjxwcmlvPjo8c3RhdGU+ICAgICsgIDxwaWQ+OjxwcmlvPjo8c3RhdGU+CisKK1RoZSBwcmlvIGlzIHRoZSBpbnRlcm5hbCBrZXJuZWwgcHJpb3JpdHksIHdoaWNoIGlzIGludmVyc2UgdG8gdGhlCitwcmlvcml0eSB0aGF0IGlzIHVzdWFsbHkgZGlzcGxheWVkIGJ5IHVzZXItc3BhY2UgdG9vbHMuIFplcm8gcmVwcmVzZW50cwordGhlIGhpZ2hlc3QgcHJpb3JpdHkgKDk5KS4gUHJpbyAxMDAgc3RhcnRzIHRoZSAibmljZSIgcHJpb3JpdGllcyB3aXRoCisxMDAgYmVpbmcgZXF1YWwgdG8gbmljZSAtMjAgYW5kIDEzOSBiZWluZyBuaWNlIDE5LiBUaGUgcHJpbyAiMTQwIiBpcworcmVzZXJ2ZWQgZm9yIHRoZSBpZGxlIHRhc2sgd2hpY2ggaXMgdGhlIGxvd2VzdCBwcmlvcml0eSB0aHJlYWQgKHBpZCAwKS4KKworCitMYXRlbmN5IHRyYWNlIGZvcm1hdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRm9yIHRyYWNlcyB0aGF0IGRpc3BsYXkgbGF0ZW5jeSB0aW1lcywgdGhlIGxhdGVuY3lfdHJhY2UgZmlsZSBnaXZlcworYSBiaXQgbW9yZSBpbmZvcm1hdGlvbiB0byBzZWUgd2h5IGEgbGF0ZW5jeSBoYXBwZW5lZC4gSGVyZSdzIGEgdHlwaWNhbAordHJhY2UuCisKKyMgdHJhY2VyOiBpcnFzb2ZmCisjCitpcnFzb2ZmIGxhdGVuY3kgdHJhY2UgdjEuMS41IG9uIDIuNi4yNi1yYzgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbGF0ZW5jeTogOTcgdXMsICMzLzMsIENQVSMwIHwgKE06cHJlZW1wdCBWUDowLCBLUDowLCBTUDowIEhQOjAgI1A6MikKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorICAgIHwgdGFzazogc3dhcHBlci0wICh1aWQ6MCBuaWNlOjAgcG9saWN5OjAgcnRfcHJpbzowKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgPT4gc3RhcnRlZCBhdDogYXBpY190aW1lcl9pbnRlcnJ1cHQKKyA9PiBlbmRlZCBhdDogICBkb19zb2Z0aXJxCisKKyMgICAgICAgICAgICAgICAgXy0tLS0tLT0+IENQVSMKKyMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmCisjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQKKyMgICAgICAgICAgICAgIHx8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycQorIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aAorIyAgICAgICAgICAgICAgfHx8fCAvCisjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkKKyMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIKKyMgICAgIFwgICAvICAgIHx8fHx8ICAgXCAgIHwgICAvCisgIDxpZGxlPi0wICAgICAwZC4uMSAgICAwdXMrOiB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bmsgKGFwaWNfdGltZXJfaW50ZXJydXB0KQorICA8aWRsZT4tMCAgICAgMGQucy4gICA5N3VzIDogX19kb19zb2Z0aXJxIChkb19zb2Z0aXJxKQorICA8aWRsZT4tMCAgICAgMGQuczEgICA5OHVzIDogdHJhY2VfaGFyZGlycXNfb24gKGRvX3NvZnRpcnEpCisKKwordmltOmZ0PWhlbHAKKworCitUaGlzIHNob3dzIHRoYXQgdGhlIGN1cnJlbnQgdHJhY2VyIGlzICJpcnFzb2ZmIiB0cmFjaW5nIHRoZSB0aW1lCitpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZC4gSXQgZ2l2ZXMgdGhlIHRyYWNlIHZlcnNpb24gYW5kIHRoZSBrZXJuZWwKK3RoaXMgd2FzIGV4ZWN1dGVkIG9uICgyLjYuMjYtcmM4KS4gVGhlbiBpdCBkaXNwbGF5cyB0aGUgbWF4IGxhdGVuY3kKK2luIG1pY3Jvc2VjcyAoOTcgdXMpLiBUaGUgbnVtYmVyIG9mIHRyYWNlIGVudHJpZXMgZGlzcGxheWVkCitieSB0aGUgdG90YWwgbnVtYmVyIHJlY29yZGVkIChib3RoIGFyZSB0aHJlZTogIzMvMykuIFRoZSB0eXBlIG9mCitwcmVlbXB0aW9uIHRoYXQgd2FzIHVzZWQgKFBSRUVNUFQpLiBWUCwgS1AsIFNQLCBhbmQgSFAgYXJlIGFsd2F5cyB6ZXJvCithbmQgcmVzZXJ2ZWQgZm9yIGxhdGVyIHVzZS4gI1AgaXMgdGhlIG51bWJlciBvZiBvbmxpbmUgQ1BVUyAoI1A6MikuCisKK1RoZSB0YXNrIGlzIHRoZSBwcm9jZXNzIHRoYXQgd2FzIHJ1bm5pbmcgd2hlbiB0aGUgbGF0ZW5jeSBoYXBwZW5lZC4KKyhzd2FwcGVyIHBpZDogMCkuCisKK1RoZSBzdGFydCBhbmQgc3RvcCB0aGF0IGNhdXNlZCB0aGUgbGF0ZW5jaWVzOgorCisgIGFwaWNfdGltZXJfaW50ZXJydXB0IGlzIHdoZXJlIHRoZSBpbnRlcnJ1cHRzIHdlcmUgZGlzYWJsZWQuCisgIGRvX3NvZnRpcnEgaXMgd2hlcmUgdGhleSB3ZXJlIGVuYWJsZWQgYWdhaW4uCisKK1RoZSBuZXh0IGxpbmVzIGFmdGVyIHRoZSBoZWFkZXIgYXJlIHRoZSB0cmFjZSBpdHNlbGYuIFRoZSBoZWFkZXIKK2V4cGxhaW5zIHdoaWNoIGlzIHdoaWNoLgorCisgIGNtZDogVGhlIG5hbWUgb2YgdGhlIHByb2Nlc3MgaW4gdGhlIHRyYWNlLgorCisgIHBpZDogVGhlIFBJRCBvZiB0aGF0IHByb2Nlc3MuCisKKyAgQ1BVIzogVGhlIENQVSB0aGF0IHRoZSBwcm9jZXNzIHdhcyBydW5uaW5nIG9uLgorCisgIGlycXMtb2ZmOiAnZCcgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQuICcuJyBvdGhlcndpc2UuCisKKyAgbmVlZC1yZXNjaGVkOiAnTicgdGFzayBuZWVkX3Jlc2NoZWQgaXMgc2V0LCAnLicgb3RoZXJ3aXNlLgorCisgIGhhcmRpcnEvc29mdGlycToKKwknSCcgLSBoYXJkIGlycSBoYXBwZW5lZCBpbnNpZGUgYSBzb2Z0aXJxLgorCSdoJyAtIGhhcmQgaXJxIGlzIHJ1bm5pbmcKKwkncycgLSBzb2Z0IGlycSBpcyBydW5uaW5nCisJJy4nIC0gbm9ybWFsIGNvbnRleHQuCisKKyAgcHJlZW1wdC1kZXB0aDogVGhlIGxldmVsIG9mIHByZWVtcHRfZGlzYWJsZWQKKworVGhlIGFib3ZlIGlzIG1vc3RseSBtZWFuaW5nZnVsIGZvciBrZXJuZWwgZGV2ZWxvcGVycy4KKworICB0aW1lOiBUaGlzIGRpZmZlcnMgZnJvbSB0aGUgdHJhY2UgZmlsZSBvdXRwdXQuIFRoZSB0cmFjZSBmaWxlIG91dHB1dAorCWluY2x1ZGVkIGFuIGFic29sdXRlIHRpbWVzdGFtcC4gVGhlIHRpbWVzdGFtcCB1c2VkIGJ5IHRoZQorCWxhdGVuY3lfdHJhY2UgZmlsZSBpcyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHRyYWNlLgorCisgIGRlbGF5OiBUaGlzIGlzIGp1c3QgdG8gaGVscCBjYXRjaCB5b3VyIGV5ZSBhIGJpdCBiZXR0ZXIuIEFuZAorCW5lZWRzIHRvIGJlIGZpeGVkIHRvIGJlIG9ubHkgcmVsYXRpdmUgdG8gdGhlIHNhbWUgQ1BVLgorCVRoZSBtYXJrcyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMKKwljdXJyZW50IHRyYWNlIGFuZCB0aGUgbmV4dCB0cmFjZS4KKwkgJyEnIC0gZ3JlYXRlciB0aGFuIHByZWVtcHRfbWFya190aHJlc2ggKGRlZmF1bHQgMTAwKQorCSAnKycgLSBncmVhdGVyIHRoYW4gMSBtaWNyb3NlY29uZAorCSAnICcgLSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMSBtaWNyb3NlY29uZC4KKworICBUaGUgcmVzdCBpcyB0aGUgc2FtZSBhcyB0aGUgJ3RyYWNlJyBmaWxlLgorCisKK2l0ZXJfY3RybAorLS0tLS0tLS0tCisKK1RoZSBpdGVyX2N0cmwgZmlsZSBpcyB1c2VkIHRvIGNvbnRyb2wgd2hhdCBnZXRzIHByaW50ZWQgaW4gdGhlIHRyYWNlCitvdXRwdXQuIFRvIHNlZSB3aGF0IGlzIGF2YWlsYWJsZSwgc2ltcGx5IGNhdCB0aGUgZmlsZToKKworICBjYXQgL2RlYnVnL3RyYWNpbmcvaXRlcl9jdHJsCisgIHByaW50LXBhcmVudCBub3N5bS1vZmZzZXQgbm9zeW0tYWRkciBub3ZlcmJvc2Ugbm9yYXcgbm9oZXggbm9iaW4gXAorIG5vYmxvY2sgbm9zdGFja3RyYWNlIG5vc2NoZWQtdHJlZQorCitUbyBkaXNhYmxlIG9uZSBvZiB0aGUgb3B0aW9ucywgZWNobyBpbiB0aGUgb3B0aW9uIHByZXBlbmRlZCB3aXRoICJubyIuCisKKyAgZWNobyBub3ByaW50LXBhcmVudCA+IC9kZWJ1Zy90cmFjaW5nL2l0ZXJfY3RybAorCitUbyBlbmFibGUgYW4gb3B0aW9uLCBsZWF2ZSBvZmYgdGhlICJubyIuCisKKyAgZWNobyBzeW0tb2Zmc2V0ID4gL2RlYnVnL3RyYWNpbmcvaXRlcl9jdHJsCisKK0hlcmUgYXJlIHRoZSBhdmFpbGFibGUgb3B0aW9uczoKKworICBwcmludC1wYXJlbnQgLSBPbiBmdW5jdGlvbiB0cmFjZXMsIGRpc3BsYXkgdGhlIGNhbGxpbmcgZnVuY3Rpb24KKwkJYXMgd2VsbCBhcyB0aGUgZnVuY3Rpb24gYmVpbmcgdHJhY2VkLgorCisgIHByaW50LXBhcmVudDoKKyAgIGJhc2gtNDAwMCAgWzAxXSAgMTQ3Ny42MDY2OTQ6IHNpbXBsZV9zdHJ0b3VsIDwtc3RyaWN0X3N0cnRvdWwKKworICBub3ByaW50LXBhcmVudDoKKyAgIGJhc2gtNDAwMCAgWzAxXSAgMTQ3Ny42MDY2OTQ6IHNpbXBsZV9zdHJ0b3VsCisKKworICBzeW0tb2Zmc2V0IC0gRGlzcGxheSBub3Qgb25seSB0aGUgZnVuY3Rpb24gbmFtZSwgYnV0IGFsc28gdGhlIG9mZnNldAorCQlpbiB0aGUgZnVuY3Rpb24uIEZvciBleGFtcGxlLCBpbnN0ZWFkIG9mIHNlZWluZyBqdXN0CisJCSJrdGltZV9nZXQiLCB5b3Ugd2lsbCBzZWUgImt0aW1lX2dldCsweGIvMHgyMCIuCisKKyAgc3ltLW9mZnNldDoKKyAgIGJhc2gtNDAwMCAgWzAxXSAgMTQ3Ny42MDY2OTQ6IHNpbXBsZV9zdHJ0b3VsKzB4Ni8weGEwCisKKyAgc3ltLWFkZHIgLSB0aGlzIHdpbGwgYWxzbyBkaXNwbGF5IHRoZSBmdW5jdGlvbiBhZGRyZXNzIGFzIHdlbGwgYXMKKwkJdGhlIGZ1bmN0aW9uIG5hbWUuCisKKyAgc3ltLWFkZHI6CisgICBiYXNoLTQwMDAgIFswMV0gIDE0NzcuNjA2Njk0OiBzaW1wbGVfc3RydG91bCA8YzAzMzkzNDY+CisKKyAgdmVyYm9zZSAtIFRoaXMgZGVhbHMgd2l0aCB0aGUgbGF0ZW5jeV90cmFjZSBmaWxlLgorCisgICAgYmFzaCAgNDAwMCAxIDAgMDAwMDAwMDAgMDAwMTBhOTUgWzU4MTI3ZDI2XSAxNzIwLjQxNW1zIFwKKyAgICAoKzAuMDAwbXMpOiBzaW1wbGVfc3RydG91bCAoc3RyaWN0X3N0cnRvdWwpCisKKyAgcmF3IC0gVGhpcyB3aWxsIGRpc3BsYXkgcmF3IG51bWJlcnMuIFRoaXMgb3B0aW9uIGlzIGJlc3QgZm9yIHVzZSB3aXRoCisJdXNlciBhcHBsaWNhdGlvbnMgdGhhdCBjYW4gdHJhbnNsYXRlIHRoZSByYXcgbnVtYmVycyBiZXR0ZXIgdGhhbgorCWhhdmluZyBpdCBkb25lIGluIHRoZSBrZXJuZWwuCisKKyAgaGV4IC0gU2ltaWxhciB0byByYXcsIGJ1dCB0aGUgbnVtYmVycyB3aWxsIGJlIGluIGEgaGV4YWRlY2ltYWwgZm9ybWF0LgorCisgIGJpbiAtIFRoaXMgd2lsbCBwcmludCBvdXQgdGhlIGZvcm1hdHMgaW4gcmF3IGJpbmFyeS4KKworICBibG9jayAtIFRCRCAobmVlZHMgdXBkYXRlKQorCisgIHN0YWNrdHJhY2UgLSBUaGlzIGlzIG9uZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGNoYW5nZXMgdGhlIHRyYWNlIGl0c2VsZi4KKwkJV2hlbiBhIHRyYWNlIGlzIHJlY29yZGVkLCBzbyBpcyB0aGUgc3RhY2sgb2YgZnVuY3Rpb25zLgorCQlUaGlzIGFsbG93cyBmb3IgYmFjayB0cmFjZXMgb2YgdHJhY2Ugc2l0ZXMuCisKKyAgc2NoZWQtdHJlZSAtIFRCRCAoYW55IHVzZXJzPz8pCisKKworc2NoZWRfc3dpdGNoCistLS0tLS0tLS0tLS0KKworVGhpcyB0cmFjZXIgc2ltcGx5IHJlY29yZHMgc2NoZWR1bGUgc3dpdGNoZXMuIEhlcmUncyBhbiBleGFtcGxlCitvZiBob3cgdG8gdXNlIGl0LgorCisgIyBlY2hvIHNjaGVkX3N3aXRjaCA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisgIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIHNsZWVwIDEKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlCisKKyMgdHJhY2VyOiBzY2hlZF9zd2l0Y2gKKyMKKyMgICAgICAgICAgIFRBU0stUElEICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OCisjICAgICAgICAgICAgICB8IHwgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8CisgICAgICAgICAgICBiYXNoLTM5OTcgIFswMV0gICAyNDAuMTMyMjgxOiAgIDM5OTc6MTIwOlIgICArICA0MDU1OjEyMDpSCisgICAgICAgICAgICBiYXNoLTM5OTcgIFswMV0gICAyNDAuMTMyMjg0OiAgIDM5OTc6MTIwOlIgPT0+ICA0MDU1OjEyMDpSCisgICAgICAgICAgIHNsZWVwLTQwNTUgIFswMV0gICAyNDAuMTMyMzcxOiAgIDQwNTU6MTIwOlMgPT0+ICAzOTk3OjEyMDpSCisgICAgICAgICAgICBiYXNoLTM5OTcgIFswMV0gICAyNDAuMTMyNDU0OiAgIDM5OTc6MTIwOlIgICArICA0MDU1OjEyMDpTCisgICAgICAgICAgICBiYXNoLTM5OTcgIFswMV0gICAyNDAuMTMyNDU3OiAgIDM5OTc6MTIwOlIgPT0+ICA0MDU1OjEyMDpSCisgICAgICAgICAgIHNsZWVwLTQwNTUgIFswMV0gICAyNDAuMTMyNDYwOiAgIDQwNTU6MTIwOkQgPT0+ICAzOTk3OjEyMDpSCisgICAgICAgICAgICBiYXNoLTM5OTcgIFswMV0gICAyNDAuMTMyNDYzOiAgIDM5OTc6MTIwOlIgICArICA0MDU1OjEyMDpECisgICAgICAgICAgICBiYXNoLTM5OTcgIFswMV0gICAyNDAuMTMyNDY1OiAgIDM5OTc6MTIwOlIgPT0+ICA0MDU1OjEyMDpSCisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gICAyNDAuMTMyNTg5OiAgICAgIDA6MTQwOlIgICArICAgICA0OjExNTpTCisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gICAyNDAuMTMyNTkxOiAgICAgIDA6MTQwOlIgPT0+ICAgICA0OjExNTpSCisgICAgIGtzb2Z0aXJxZC8wLTQgICAgIFswMF0gICAyNDAuMTMyNTk1OiAgICAgIDQ6MTE1OlMgPT0+ICAgICAwOjE0MDpSCisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gICAyNDAuMTMyNTk4OiAgICAgIDA6MTQwOlIgICArICAgICA0OjExNTpTCisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gICAyNDAuMTMyNTk5OiAgICAgIDA6MTQwOlIgPT0+ICAgICA0OjExNTpSCisgICAgIGtzb2Z0aXJxZC8wLTQgICAgIFswMF0gICAyNDAuMTMyNjAzOiAgICAgIDQ6MTE1OlMgPT0+ICAgICAwOjE0MDpSCisgICAgICAgICAgIHNsZWVwLTQwNTUgIFswMV0gICAyNDAuMTMzMDU4OiAgIDQwNTU6MTIwOlMgPT0+ICAzOTk3OjEyMDpSCisgWy4uLl0KKworCitBcyB3ZSBoYXZlIGRpc2N1c3NlZCBwcmV2aW91c2x5IGFib3V0IHRoaXMgZm9ybWF0LCB0aGUgaGVhZGVyIHNob3dzCit0aGUgbmFtZSBvZiB0aGUgdHJhY2UgYW5kIHBvaW50cyB0byB0aGUgb3B0aW9ucy4gVGhlICJGVU5DVElPTiIKK2lzIGEgbWlzbm9tZXIgc2luY2UgaGVyZSBpdCByZXByZXNlbnRzIHRoZSB3YWtlIHVwcyBhbmQgY29udGV4dAorc3dpdGNoZXMuCisKK1RoZSBzY2hlZF9zd2l0Y2ggb25seSBsaXN0cyB0aGUgd2FrZSB1cHMgKHJlcHJlc2VudGVkIHdpdGggJysnKQorYW5kIGNvbnRleHQgc3dpdGNoZXMgKCc9PT4nKSB3aXRoIHRoZSBwcmV2aW91cyB0YXNrIG9yIGN1cnJlbnQKK2ZpcnN0IGZvbGxvd2VkIGJ5IHRoZSBuZXh0IHRhc2sgb3IgdGFzayB3YWtpbmcgdXAuIFRoZSBmb3JtYXQgZm9yIGJvdGgKK29mIHRoZXNlIGlzIFBJRDpLRVJORUwtUFJJTzpUQVNLLVNUQVRFLiBSZW1lbWJlciB0aGF0IHRoZSBLRVJORUwtUFJJTworaXMgdGhlIGludmVyc2Ugb2YgdGhlIGFjdHVhbCBwcmlvcml0eSB3aXRoIHplcm8gKDApIGJlaW5nIHRoZSBoaWdoZXN0Citwcmlvcml0eSBhbmQgdGhlIG5pY2UgdmFsdWVzIHN0YXJ0aW5nIGF0IDEwMCAobmljZSAtMjApLiBCZWxvdyBpcworYSBxdWljayBjaGFydCB0byBtYXAgdGhlIGtlcm5lbCBwcmlvcml0eSB0byB1c2VyIGxhbmQgcHJpb3JpdGllcy4KKworICBLZXJuZWwgcHJpb3JpdHk6IDAgdG8gOTkgICAgPT0+IHVzZXIgUlQgcHJpb3JpdHkgOTkgdG8gMAorICBLZXJuZWwgcHJpb3JpdHk6IDEwMCB0byAxMzkgPT0+IHVzZXIgbmljZSAtMjAgdG8gMTkKKyAgS2VybmVsIHByaW9yaXR5OiAxNDAgICAgICAgID09PiBpZGxlIHRhc2sgcHJpb3JpdHkKKworVGhlIHRhc2sgc3RhdGVzIGFyZToKKworIFIgLSBydW5uaW5nIDogd2FudHMgdG8gcnVuLCBtYXkgbm90IGFjdHVhbGx5IGJlIHJ1bm5pbmcKKyBTIC0gc2xlZXAgICA6IHByb2Nlc3MgaXMgd2FpdGluZyB0byBiZSB3b2tlbiB1cCAoaGFuZGxlcyBzaWduYWxzKQorIEQgLSBkZWVwIHNsZWVwIDogcHJvY2VzcyBtdXN0IGJlIHdva2VuIHVwIChpZ25vcmVzIHNpZ25hbHMpCisgVCAtIHN0b3BwZWQgOiBwcm9jZXNzIHN1c3BlbmRlZAorIHQgLSB0cmFjZWQgIDogcHJvY2VzcyBpcyBiZWluZyB0cmFjZWQgKHdpdGggc29tZXRoaW5nIGxpa2UgZ2RiKQorIFogLSB6b21iaWUgIDogcHJvY2VzcyB3YWl0aW5nIHRvIGJlIGNsZWFuZWQgdXAKKyBYIC0gdW5rbm93bgorCisKK2Z0cmFjZV9lbmFibGVkCistLS0tLS0tLS0tLS0tLQorCitUaGUgZm9sbG93aW5nIHRyYWNlcnMgZ2l2ZSBkaWZmZXJlbnQgb3V0cHV0IGRlcGVuZGluZyBvbiB3aGV0aGVyCitvciBub3QgdGhlIHN5c2N0bCBmdHJhY2VfZW5hYmxlZCBpcyBzZXQuIFRvIHNldCBmdHJhY2VfZW5hYmxlZCwKK29uZSBjYW4gZWl0aGVyIHVzZSB0aGUgc3lzY3RsIGZ1bmN0aW9uIG9yIHNldCBpdCB2aWEgdGhlIHByb2MKK2ZpbGUgc3lzdGVtIGludGVyZmFjZS4KKworICBzeXNjdGwga2VybmVsLmZ0cmFjZV9lbmFibGVkPTEKKworIG9yCisKKyAgZWNobyAxID4gL3Byb2Mvc3lzL2tlcm5lbC9mdHJhY2VfZW5hYmxlZAorCitUbyBkaXNhYmxlIGZ0cmFjZV9lbmFibGVkIHNpbXBseSByZXBsYWNlIHRoZSAnMScgd2l0aCAnMCcgaW4KK3RoZSBhYm92ZSBjb21tYW5kcy4KKworV2hlbiBmdHJhY2VfZW5hYmxlZCBpcyBzZXQgdGhlIHRyYWNlcnMgd2lsbCBhbHNvIHJlY29yZCB0aGUgZnVuY3Rpb25zCit0aGF0IGFyZSB3aXRoaW4gdGhlIHRyYWNlLiBUaGUgZGVzY3JpcHRpb25zIG9mIHRoZSB0cmFjZXJzCit3aWxsIGFsc28gc2hvdyBhbiBleGFtcGxlIHdpdGggZnRyYWNlIGVuYWJsZWQuCisKKworaXJxc29mZgorLS0tLS0tLQorCitXaGVuIGludGVycnVwdHMgYXJlIGRpc2FibGVkLCB0aGUgQ1BVIGNhbiBub3QgcmVhY3QgdG8gYW55IG90aGVyCitleHRlcm5hbCBldmVudCAoYmVzaWRlcyBOTUlzIGFuZCBTTUlzKS4gVGhpcyBwcmV2ZW50cyB0aGUgdGltZXIKK2ludGVycnVwdCBmcm9tIHRyaWdnZXJpbmcgb3IgdGhlIG1vdXNlIGludGVycnVwdCBmcm9tIGxldHRpbmcgdGhlCitrZXJuZWwga25vdyBvZiBhIG5ldyBtb3VzZSBldmVudC4gVGhlIHJlc3VsdCBpcyBhIGxhdGVuY3kgd2l0aCB0aGUKK3JlYWN0aW9uIHRpbWUuCisKK1RoZSBpcnFzb2ZmIHRyYWNlciB0cmFja3MgdGhlIHRpbWUgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgdG8gdGhlIHRpbWUKK3RoZXkgYXJlIHJlLWVuYWJsZWQuIFdoZW4gYSBuZXcgbWF4aW11bSBsYXRlbmN5IGlzIGhpdCwgaXQgc2F2ZXMgb2ZmCit0aGUgdHJhY2Ugc28gdGhhdCBpdCBtYXkgYmUgcmV0cmlldmVkIGF0IGEgbGF0ZXIgdGltZS4gRXZlcnkgdGltZSBhCituZXcgbWF4aW11bSBpbiByZWFjaGVkLCB0aGUgb2xkIHNhdmVkIHRyYWNlIGlzIGRpc2NhcmRlZCBhbmQgdGhlIG5ldwordHJhY2UgaXMgc2F2ZWQuCisKK1RvIHJlc2V0IHRoZSBtYXhpbXVtLCBlY2hvIDAgaW50byB0cmFjaW5nX21heF9sYXRlbmN5LiBIZXJlJ3MgYW4KK2V4YW1wbGU6CisKKyAjIGVjaG8gaXJxc29mZiA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX21heF9sYXRlbmN5CisgIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGxzIC1sdHIKKyBbLi4uXQorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvbGF0ZW5jeV90cmFjZQorIyB0cmFjZXI6IGlycXNvZmYKKyMKK2lycXNvZmYgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gMi42LjI2LXJjOAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsYXRlbmN5OiA2IHVzLCAjMy8zLCBDUFUjMSB8IChNOnByZWVtcHQgVlA6MCwgS1A6MCwgU1A6MCBIUDowICNQOjIpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB8IHRhc2s6IGJhc2gtNDI2OSAodWlkOjAgbmljZTowIHBvbGljeTowIHJ0X3ByaW86MCkKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorID0+IHN0YXJ0ZWQgYXQ6IGNvcHlfcGFnZV9yYW5nZQorID0+IGVuZGVkIGF0OiAgIGNvcHlfcGFnZV9yYW5nZQorCisjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjCisjICAgICAgICAgICAgICAgLyBfLS0tLS09PiBpcnFzLW9mZgorIyAgICAgICAgICAgICAgfCAvIF8tLS0tPT4gbmVlZC1yZXNjaGVkCisjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEKKyMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgKKyMgICAgICAgICAgICAgIHx8fHwgLworIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5CisjICBjbWQgICAgIHBpZCB8fHx8fCB0aW1lICB8ICAgY2FsbGVyCisjICAgICBcICAgLyAgICB8fHx8fCAgIFwgICB8ICAgLworICAgIGJhc2gtNDI2OSAgMS4uLjEgICAgMHVzKzogX3NwaW5fbG9jayAoY29weV9wYWdlX3JhbmdlKQorICAgIGJhc2gtNDI2OSAgMS4uLjEgICAgN3VzIDogX3NwaW5fdW5sb2NrIChjb3B5X3BhZ2VfcmFuZ2UpCisgICAgYmFzaC00MjY5ICAxLi4uMiAgICA3dXMgOiB0cmFjZV9wcmVlbXB0X29uIChjb3B5X3BhZ2VfcmFuZ2UpCisKKwordmltOmZ0PWhlbHAKKworSGVyZSB3ZSBzZWUgdGhhdCB0aGF0IHdlIGhhZCBhIGxhdGVuY3kgb2YgNiBtaWNyb3NlY3MgKHdoaWNoIGlzCit2ZXJ5IGdvb2QpLiBUaGUgc3Bpbl9sb2NrIGluIGNvcHlfcGFnZV9yYW5nZSBkaXNhYmxlZCBpbnRlcnJ1cHRzLgorVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgNiBhbmQgdGhlIGRpc3BsYXllZCB0aW1lc3RhbXAgN3VzIGlzCitiZWNhdXNlIHRoZSBjbG9jayBtdXN0IGhhdmUgaW5jcmVtZW50ZWQgYmV0d2VlbiB0aGUgdGltZSBvZiByZWNvcmRpbmcKK3RoZSBtYXggbGF0ZW5jeSBhbmQgcmVjb3JkaW5nIHRoZSBmdW5jdGlvbiB0aGF0IGhhZCB0aGF0IGxhdGVuY3kuCisKK05vdGUgdGhlIGFib3ZlIGhhZCBmdHJhY2VfZW5hYmxlZCBub3Qgc2V0LiBJZiB3ZSBzZXQgdGhlIGZ0cmFjZV9lbmFibGVkLAord2UgZ2V0IGEgbXVjaCBsYXJnZXIgb3V0cHV0OgorCisjIHRyYWNlcjogaXJxc29mZgorIworaXJxc29mZiBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAyLjYuMjYtcmM4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxhdGVuY3k6IDUwIHVzLCAjMTAxLzEwMSwgQ1BVIzAgfCAoTTpwcmVlbXB0IFZQOjAsIEtQOjAsIFNQOjAgSFA6MCAjUDoyKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgfCB0YXNrOiBscy00MzM5ICh1aWQ6MCBuaWNlOjAgcG9saWN5OjAgcnRfcHJpbzowKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgPT4gc3RhcnRlZCBhdDogX19hbGxvY19wYWdlc19pbnRlcm5hbAorID0+IGVuZGVkIGF0OiAgIF9fYWxsb2NfcGFnZXNfaW50ZXJuYWwKKworIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIworIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYKKyMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZAorIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxCisjICAgICAgICAgICAgICB8fHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoCisjICAgICAgICAgICAgICB8fHx8IC8KKyMgICAgICAgICAgICAgIHx8fHx8ICAgICBkZWxheQorIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlcgorIyAgICAgXCAgIC8gICAgfHx8fHwgICBcICAgfCAgIC8KKyAgICAgIGxzLTQzMzkgIDAuLi4xICAgIDB1cys6IGdldF9wYWdlX2Zyb21fZnJlZWxpc3QgKF9fYWxsb2NfcGFnZXNfaW50ZXJuYWwpCisgICAgICBscy00MzM5ICAwZC4uMSAgICAzdXMgOiBybXF1ZXVlX2J1bGsgKGdldF9wYWdlX2Zyb21fZnJlZWxpc3QpCisgICAgICBscy00MzM5ICAwZC4uMSAgICAzdXMgOiBfc3Bpbl9sb2NrIChybXF1ZXVlX2J1bGspCisgICAgICBscy00MzM5ICAwZC4uMSAgICA0dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX3NwaW5fbG9jaykKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgIDR1cyA6IF9fcm1xdWV1ZSAocm1xdWV1ZV9idWxrKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICAgNXVzIDogX19ybXF1ZXVlX3NtYWxsZXN0IChfX3JtcXVldWUpCisgICAgICBscy00MzM5ICAwZC4uMiAgICA1dXMgOiBfX21vZF96b25lX3BhZ2Vfc3RhdGUgKF9fcm1xdWV1ZV9zbWFsbGVzdCkKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgIDZ1cyA6IF9fcm1xdWV1ZSAocm1xdWV1ZV9idWxrKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICAgNnVzIDogX19ybXF1ZXVlX3NtYWxsZXN0IChfX3JtcXVldWUpCisgICAgICBscy00MzM5ICAwZC4uMiAgICA3dXMgOiBfX21vZF96b25lX3BhZ2Vfc3RhdGUgKF9fcm1xdWV1ZV9zbWFsbGVzdCkKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgIDd1cyA6IF9fcm1xdWV1ZSAocm1xdWV1ZV9idWxrKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICAgOHVzIDogX19ybXF1ZXVlX3NtYWxsZXN0IChfX3JtcXVldWUpCitbLi4uXQorICAgICAgbHMtNDMzOSAgMGQuLjIgICA0NnVzIDogX19ybXF1ZXVlX3NtYWxsZXN0IChfX3JtcXVldWUpCisgICAgICBscy00MzM5ICAwZC4uMiAgIDQ3dXMgOiBfX21vZF96b25lX3BhZ2Vfc3RhdGUgKF9fcm1xdWV1ZV9zbWFsbGVzdCkKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgNDd1cyA6IF9fcm1xdWV1ZSAocm1xdWV1ZV9idWxrKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICA0OHVzIDogX19ybXF1ZXVlX3NtYWxsZXN0IChfX3JtcXVldWUpCisgICAgICBscy00MzM5ICAwZC4uMiAgIDQ4dXMgOiBfX21vZF96b25lX3BhZ2Vfc3RhdGUgKF9fcm1xdWV1ZV9zbWFsbGVzdCkKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgNDl1cyA6IF9zcGluX3VubG9jayAocm1xdWV1ZV9idWxrKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICA0OXVzIDogc3ViX3ByZWVtcHRfY291bnQgKF9zcGluX3VubG9jaykKKyAgICAgIGxzLTQzMzkgIDBkLi4xICAgNTB1cyA6IGdldF9wYWdlX2Zyb21fZnJlZWxpc3QgKF9fYWxsb2NfcGFnZXNfaW50ZXJuYWwpCisgICAgICBscy00MzM5ICAwZC4uMiAgIDUxdXMgOiB0cmFjZV9oYXJkaXJxc19vbiAoX19hbGxvY19wYWdlc19pbnRlcm5hbCkKKworCit2aW06ZnQ9aGVscAorCisKK0hlcmUgd2UgdHJhY2VkIGEgNTAgbWljcm9zZWNvbmQgbGF0ZW5jeS4gQnV0IHdlIGFsc28gc2VlIGFsbCB0aGUKK2Z1bmN0aW9ucyB0aGF0IHdlcmUgY2FsbGVkIGR1cmluZyB0aGF0IHRpbWUuIE5vdGUgdGhhdCBieSBlbmFibGluZworZnVuY3Rpb24gdHJhY2luZywgd2UgZW5kdXJlIGFuIGFkZGVkIG92ZXJoZWFkLiBUaGlzIG92ZXJoZWFkIG1heQorZXh0ZW5kIHRoZSBsYXRlbmN5IHRpbWVzLiBCdXQgbmV2ZXJ0aGVsZXNzLCB0aGlzIHRyYWNlIGhhcyBwcm92aWRlZAorc29tZSB2ZXJ5IGhlbHBmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uLgorCisKK3ByZWVtcHRvZmYKKy0tLS0tLS0tLS0KKworV2hlbiBwcmVlbXB0aW9uIGlzIGRpc2FibGVkLCB3ZSBtYXkgYmUgYWJsZSB0byByZWNlaXZlIGludGVycnVwdHMgYnV0Cit0aGUgdGFzayBjYW5ub3QgYmUgcHJlZW1wdGVkIGFuZCBhIGhpZ2hlciBwcmlvcml0eSB0YXNrIG11c3Qgd2FpdAorZm9yIHByZWVtcHRpb24gdG8gYmUgZW5hYmxlZCBhZ2FpbiBiZWZvcmUgaXQgY2FuIHByZWVtcHQgYSBsb3dlcgorcHJpb3JpdHkgdGFzay4KKworVGhlIHByZWVtcHRvZmYgdHJhY2VyIHRyYWNlcyB0aGUgcGxhY2VzIHRoYXQgZGlzYWJsZSBwcmVlbXB0aW9uLgorTGlrZSB0aGUgaXJxc29mZiwgaXQgcmVjb3JkcyB0aGUgbWF4aW11bSBsYXRlbmN5IHRoYXQgcHJlZW1wdGlvbgord2FzIGRpc2FibGVkLiBUaGUgY29udHJvbCBvZiBwcmVlbXB0b2ZmIGlzIG11Y2ggbGlrZSB0aGUgaXJxc29mZi4KKworICMgZWNobyBwcmVlbXB0b2ZmID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfbWF4X2xhdGVuY3kKKyAjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgbHMgLWx0cgorIFsuLi5dCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9sYXRlbmN5X3RyYWNlCisjIHRyYWNlcjogcHJlZW1wdG9mZgorIworcHJlZW1wdG9mZiBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAyLjYuMjYtcmM4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxhdGVuY3k6IDI5IHVzLCAjMy8zLCBDUFUjMCB8IChNOnByZWVtcHQgVlA6MCwgS1A6MCwgU1A6MCBIUDowICNQOjIpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB8IHRhc2s6IHNzaGQtNDI2MSAodWlkOjAgbmljZTowIHBvbGljeTowIHJ0X3ByaW86MCkKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorID0+IHN0YXJ0ZWQgYXQ6IGRvX0lSUQorID0+IGVuZGVkIGF0OiAgIF9fZG9fc29mdGlycQorCisjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjCisjICAgICAgICAgICAgICAgLyBfLS0tLS09PiBpcnFzLW9mZgorIyAgICAgICAgICAgICAgfCAvIF8tLS0tPT4gbmVlZC1yZXNjaGVkCisjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEKKyMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgKKyMgICAgICAgICAgICAgIHx8fHwgLworIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5CisjICBjbWQgICAgIHBpZCB8fHx8fCB0aW1lICB8ICAgY2FsbGVyCisjICAgICBcICAgLyAgICB8fHx8fCAgIFwgICB8ICAgLworICAgIHNzaGQtNDI2MSAgMGQuaC4gICAgMHVzKzogaXJxX2VudGVyIChkb19JUlEpCisgICAgc3NoZC00MjYxICAwZC5zLiAgIDI5dXMgOiBfbG9jYWxfYmhfZW5hYmxlIChfX2RvX3NvZnRpcnEpCisgICAgc3NoZC00MjYxICAwZC5zMSAgIDMwdXMgOiB0cmFjZV9wcmVlbXB0X29uIChfX2RvX3NvZnRpcnEpCisKKwordmltOmZ0PWhlbHAKKworVGhpcyBoYXMgc29tZSBtb3JlIGNoYW5nZXMuIFByZWVtcHRpb24gd2FzIGRpc2FibGVkIHdoZW4gYW4gaW50ZXJydXB0CitjYW1lIGluIChub3RpY2UgdGhlICdoJyksIGFuZCB3YXMgZW5hYmxlZCB3aGlsZSBkb2luZyBhIHNvZnRpcnEuCisobm90aWNlIHRoZSAncycpLiBCdXQgd2UgYWxzbyBzZWUgdGhhdCBpbnRlcnJ1cHRzIGhhdmUgYmVlbiBkaXNhYmxlZAord2hlbiBlbnRlcmluZyB0aGUgcHJlZW1wdCBvZmYgc2VjdGlvbiBhbmQgbGVhdmluZyBpdCAodGhlICdkJykuCitXZSBkbyBub3Qga25vdyBpZiBpbnRlcnJ1cHRzIHdlcmUgZW5hYmxlZCBpbiB0aGUgbWVhbiB0aW1lLgorCisjIHRyYWNlcjogcHJlZW1wdG9mZgorIworcHJlZW1wdG9mZiBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAyLjYuMjYtcmM4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxhdGVuY3k6IDYzIHVzLCAjODcvODcsIENQVSMwIHwgKE06cHJlZW1wdCBWUDowLCBLUDowLCBTUDowIEhQOjAgI1A6MikKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorICAgIHwgdGFzazogc3NoZC00MjYxICh1aWQ6MCBuaWNlOjAgcG9saWN5OjAgcnRfcHJpbzowKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgPT4gc3RhcnRlZCBhdDogcmVtb3ZlX3dhaXRfcXVldWUKKyA9PiBlbmRlZCBhdDogICBfX2RvX3NvZnRpcnEKKworIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIworIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYKKyMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZAorIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxCisjICAgICAgICAgICAgICB8fHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoCisjICAgICAgICAgICAgICB8fHx8IC8KKyMgICAgICAgICAgICAgIHx8fHx8ICAgICBkZWxheQorIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlcgorIyAgICAgXCAgIC8gICAgfHx8fHwgICBcICAgfCAgIC8KKyAgICBzc2hkLTQyNjEgIDBkLi4xICAgIDB1cyA6IF9zcGluX2xvY2tfaXJxc2F2ZSAocmVtb3ZlX3dhaXRfcXVldWUpCisgICAgc3NoZC00MjYxICAwZC4uMSAgICAxdXMgOiBfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAocmVtb3ZlX3dhaXRfcXVldWUpCisgICAgc3NoZC00MjYxICAwZC4uMSAgICAydXMgOiBkb19JUlEgKGNvbW1vbl9pbnRlcnJ1cHQpCisgICAgc3NoZC00MjYxICAwZC4uMSAgICAydXMgOiBpcnFfZW50ZXIgKGRvX0lSUSkKKyAgICBzc2hkLTQyNjEgIDBkLi4xICAgIDJ1cyA6IGlkbGVfY3B1IChpcnFfZW50ZXIpCisgICAgc3NoZC00MjYxICAwZC4uMSAgICAzdXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoaXJxX2VudGVyKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAgM3VzIDogaWRsZV9jcHUgKGlycV9lbnRlcikKKyAgICBzc2hkLTQyNjEgIDBkLmguICAgIDR1cyA6IGhhbmRsZV9mYXN0ZW9pX2lycSAoZG9fSVJRKQorWy4uLl0KKyAgICBzc2hkLTQyNjEgIDBkLmguICAgMTJ1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfc3Bpbl9sb2NrKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAxMnVzIDogYWNrX2lvYXBpY19xdWlya19pcnEgKGhhbmRsZV9mYXN0ZW9pX2lycSkKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMTN1cyA6IG1vdmVfbmF0aXZlX2lycSAoYWNrX2lvYXBpY19xdWlya19pcnEpCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDEzdXMgOiBfc3Bpbl91bmxvY2sgKGhhbmRsZV9mYXN0ZW9pX2lycSkKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMTR1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChfc3Bpbl91bmxvY2spCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDE0dXMgOiBpcnFfZXhpdCAoZG9fSVJRKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAxNXVzIDogc3ViX3ByZWVtcHRfY291bnQgKGlycV9leGl0KQorICAgIHNzaGQtNDI2MSAgMGQuLjIgICAxNXVzIDogZG9fc29mdGlycSAoaXJxX2V4aXQpCisgICAgc3NoZC00MjYxICAwZC4uLiAgIDE1dXMgOiBfX2RvX3NvZnRpcnEgKGRvX3NvZnRpcnEpCisgICAgc3NoZC00MjYxICAwZC4uLiAgIDE2dXMgOiBfX2xvY2FsX2JoX2Rpc2FibGUgKF9fZG9fc29mdGlycSkKKyAgICBzc2hkLTQyNjEgIDBkLi4uICAgMTZ1cys6IGFkZF9wcmVlbXB0X2NvdW50IChfX2xvY2FsX2JoX2Rpc2FibGUpCisgICAgc3NoZC00MjYxICAwZC5zNCAgIDIwdXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX19sb2NhbF9iaF9kaXNhYmxlKQorICAgIHNzaGQtNDI2MSAgMGQuczQgICAyMXVzIDogc3ViX3ByZWVtcHRfY291bnQgKGxvY2FsX2JoX2VuYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnM1ICAgMjF1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChsb2NhbF9iaF9lbmFibGUpCitbLi4uXQorICAgIHNzaGQtNDI2MSAgMGQuczYgICA0MXVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9fbG9jYWxfYmhfZGlzYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnM2ICAgNDJ1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChsb2NhbF9iaF9lbmFibGUpCisgICAgc3NoZC00MjYxICAwZC5zNyAgIDQydXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobG9jYWxfYmhfZW5hYmxlKQorICAgIHNzaGQtNDI2MSAgMGQuczUgICA0M3VzIDogYWRkX3ByZWVtcHRfY291bnQgKF9fbG9jYWxfYmhfZGlzYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnM1ICAgNDN1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChsb2NhbF9iaF9lbmFibGVfaXApCisgICAgc3NoZC00MjYxICAwZC5zNiAgIDQ0dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobG9jYWxfYmhfZW5hYmxlX2lwKQorICAgIHNzaGQtNDI2MSAgMGQuczUgICA0NHVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9fbG9jYWxfYmhfZGlzYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnM1ICAgNDV1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChsb2NhbF9iaF9lbmFibGUpCitbLi4uXQorICAgIHNzaGQtNDI2MSAgMGQucy4gICA2M3VzIDogX2xvY2FsX2JoX2VuYWJsZSAoX19kb19zb2Z0aXJxKQorICAgIHNzaGQtNDI2MSAgMGQuczEgICA2NHVzIDogdHJhY2VfcHJlZW1wdF9vbiAoX19kb19zb2Z0aXJxKQorCisKK1RoZSBhYm92ZSBpcyBhbiBleGFtcGxlIG9mIHRoZSBwcmVlbXB0b2ZmIHRyYWNlIHdpdGggZnRyYWNlX2VuYWJsZWQKK3NldC4gSGVyZSB3ZSBzZWUgdGhhdCBpbnRlcnJ1cHRzIHdlcmUgZGlzYWJsZWQgdGhlIGVudGlyZSB0aW1lLgorVGhlIGlycV9lbnRlciBjb2RlIGxldHMgdXMga25vdyB0aGF0IHdlIGVudGVyZWQgYW4gaW50ZXJydXB0ICdoJy4KK0JlZm9yZSB0aGF0LCB0aGUgZnVuY3Rpb25zIGJlaW5nIHRyYWNlZCBzdGlsbCBzaG93IHRoYXQgaXQgaXMgbm90CitpbiBhbiBpbnRlcnJ1cHQsIGJ1dCB3ZSBjYW4gc2VlIGJ5IHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlcyB0aGF0Cit0aGlzIGlzIG5vdCB0aGUgY2FzZS4KKworTm90aWNlIHRoYXQgdGhlIF9fZG9fc29mdGlycSB3aGVuIGNhbGxlZCBkb2Vzbid0IGhhdmUgYSBwcmVlbXB0X2NvdW50LgorSXQgbWF5IHNlZW0gdGhhdCB3ZSBtaXNzZWQgYSBwcmVlbXB0IGVuYWJsZWQuIFdoYXQgcmVhbGx5IGhhcHBlbmVkCitpcyB0aGF0IHRoZSBwcmVlbXB0IGNvdW50IGlzIGhlbGQgb24gdGhlIHRocmVhZHMgc3RhY2sgYW5kIHdlCitzd2l0Y2hlZCB0byB0aGUgc29mdGlycSBzdGFjayAoNEsgc3RhY2tzIGluIGVmZmVjdCkuIFRoZSBjb2RlCitkb2VzIG5vdCBjb3B5IHRoZSBwcmVlbXB0IGNvdW50LCBidXQgYmVjYXVzZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCwKK3dlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgaXQuIEhhdmluZyBhIHRyYWNlciBsaWtlIHRoaXMgaXMgZ29vZAordG8gbGV0IHBlb3BsZSBrbm93IHdoYXQgcmVhbGx5IGhhcHBlbnMgaW5zaWRlIHRoZSBrZXJuZWwuCisKKworcHJlZW1wdGlycXNvZmYKKy0tLS0tLS0tLS0tLS0tCisKK0tub3dpbmcgdGhlIGxvY2F0aW9ucyB0aGF0IGhhdmUgaW50ZXJydXB0cyBkaXNhYmxlZCBvciBwcmVlbXB0aW9uCitkaXNhYmxlZCBmb3IgdGhlIGxvbmdlc3QgdGltZXMgaXMgaGVscGZ1bC4gQnV0IHNvbWV0aW1lcyB3ZSB3b3VsZAorbGlrZSB0byBrbm93IHdoZW4gZWl0aGVyIHByZWVtcHRpb24gYW5kL29yIGludGVycnVwdHMgYXJlIGRpc2FibGVkLgorCitUaGUgZm9sbG93aW5nIGNvZGU6CisKKyAgICBsb2NhbF9pcnFfZGlzYWJsZSgpOworICAgIGNhbGxfZnVuY3Rpb25fd2l0aF9pcnFzX29mZigpOworICAgIHByZWVtcHRfZGlzYWJsZSgpOworICAgIGNhbGxfZnVuY3Rpb25fd2l0aF9pcnFzX2FuZF9wcmVlbXB0aW9uX29mZigpOworICAgIGxvY2FsX2lycV9lbmFibGUoKTsKKyAgICBjYWxsX2Z1bmN0aW9uX3dpdGhfcHJlZW1wdGlvbl9vZmYoKTsKKyAgICBwcmVlbXB0X2VuYWJsZSgpOworCitUaGUgaXJxc29mZiB0cmFjZXIgd2lsbCByZWNvcmQgdGhlIHRvdGFsIGxlbmd0aCBvZgorY2FsbF9mdW5jdGlvbl93aXRoX2lycXNfb2ZmKCkgYW5kCitjYWxsX2Z1bmN0aW9uX3dpdGhfaXJxc19hbmRfcHJlZW1wdGlvbl9vZmYoKS4KKworVGhlIHByZWVtcHRvZmYgdHJhY2VyIHdpbGwgcmVjb3JkIHRoZSB0b3RhbCBsZW5ndGggb2YKK2NhbGxfZnVuY3Rpb25fd2l0aF9pcnFzX2FuZF9wcmVlbXB0aW9uX29mZigpIGFuZAorY2FsbF9mdW5jdGlvbl93aXRoX3ByZWVtcHRpb25fb2ZmKCkuCisKK0J1dCBuZWl0aGVyIHdpbGwgdHJhY2UgdGhlIHRpbWUgdGhhdCBpbnRlcnJ1cHRzIGFuZC9vciBwcmVlbXB0aW9uCitpcyBkaXNhYmxlZC4gVGhpcyB0b3RhbCB0aW1lIGlzIHRoZSB0aW1lIHRoYXQgd2UgY2FuIG5vdCBzY2hlZHVsZS4KK1RvIHJlY29yZCB0aGlzIHRpbWUsIHVzZSB0aGUgcHJlZW1wdGlycXNvZmYgdHJhY2VyLgorCitBZ2FpbiwgdXNpbmcgdGhpcyB0cmFjZSBpcyBtdWNoIGxpa2UgdGhlIGlycXNvZmYgYW5kIHByZWVtcHRvZmYgdHJhY2Vycy4KKworICMgZWNobyBwcmVlbXB0aXJxc29mZiA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX21heF9sYXRlbmN5CisgIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGxzIC1sdHIKKyBbLi4uXQorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvbGF0ZW5jeV90cmFjZQorIyB0cmFjZXI6IHByZWVtcHRpcnFzb2ZmCisjCitwcmVlbXB0aXJxc29mZiBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAyLjYuMjYtcmM4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxhdGVuY3k6IDI5MyB1cywgIzMvMywgQ1BVIzAgfCAoTTpwcmVlbXB0IFZQOjAsIEtQOjAsIFNQOjAgSFA6MCAjUDoyKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgfCB0YXNrOiBscy00ODYwICh1aWQ6MCBuaWNlOjAgcG9saWN5OjAgcnRfcHJpbzowKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgPT4gc3RhcnRlZCBhdDogYXBpY190aW1lcl9pbnRlcnJ1cHQKKyA9PiBlbmRlZCBhdDogICBfX2RvX3NvZnRpcnEKKworIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIworIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYKKyMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZAorIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxCisjICAgICAgICAgICAgICB8fHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoCisjICAgICAgICAgICAgICB8fHx8IC8KKyMgICAgICAgICAgICAgIHx8fHx8ICAgICBkZWxheQorIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlcgorIyAgICAgXCAgIC8gICAgfHx8fHwgICBcICAgfCAgIC8KKyAgICAgIGxzLTQ4NjAgIDBkLi4uICAgIDB1cyE6IHRyYWNlX2hhcmRpcnFzX29mZl90aHVuayAoYXBpY190aW1lcl9pbnRlcnJ1cHQpCisgICAgICBscy00ODYwICAwZC5zLiAgMjk0dXMgOiBfbG9jYWxfYmhfZW5hYmxlIChfX2RvX3NvZnRpcnEpCisgICAgICBscy00ODYwICAwZC5zMSAgMjk0dXMgOiB0cmFjZV9wcmVlbXB0X29uIChfX2RvX3NvZnRpcnEpCisKKwordmltOmZ0PWhlbHAKKworCitUaGUgdHJhY2VfaGFyZGlycXNfb2ZmX3RodW5rIGlzIGNhbGxlZCBmcm9tIGFzc2VtYmx5IG9uIHg4NiB3aGVuCitpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBpbiB0aGUgYXNzZW1ibHkgY29kZS4gV2l0aG91dCB0aGUgZnVuY3Rpb24KK3RyYWNpbmcsIHdlIGRvbid0IGtub3cgaWYgaW50ZXJydXB0cyB3ZXJlIGVuYWJsZWQgd2l0aGluIHRoZSBwcmVlbXB0aW9uCitwb2ludHMuIFdlIGRvIHNlZSB0aGF0IGl0IHN0YXJ0ZWQgd2l0aCBwcmVlbXB0aW9uIGVuYWJsZWQuCisKK0hlcmUgaXMgYSB0cmFjZSB3aXRoIGZ0cmFjZV9lbmFibGVkIHNldDoKKworCisjIHRyYWNlcjogcHJlZW1wdGlycXNvZmYKKyMKK3ByZWVtcHRpcnFzb2ZmIGxhdGVuY3kgdHJhY2UgdjEuMS41IG9uIDIuNi4yNi1yYzgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbGF0ZW5jeTogMTA1IHVzLCAjMTgzLzE4MywgQ1BVIzAgfCAoTTpwcmVlbXB0IFZQOjAsIEtQOjAsIFNQOjAgSFA6MCAjUDoyKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgfCB0YXNrOiBzc2hkLTQyNjEgKHVpZDowIG5pY2U6MCBwb2xpY3k6MCBydF9wcmlvOjApCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyA9PiBzdGFydGVkIGF0OiB3cml0ZV9jaGFuCisgPT4gZW5kZWQgYXQ6ICAgX19kb19zb2Z0aXJxCisKKyMgICAgICAgICAgICAgICAgXy0tLS0tLT0+IENQVSMKKyMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmCisjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQKKyMgICAgICAgICAgICAgIHx8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycQorIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aAorIyAgICAgICAgICAgICAgfHx8fCAvCisjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkKKyMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIKKyMgICAgIFwgICAvICAgIHx8fHx8ICAgXCAgIHwgICAvCisgICAgICBscy00NDczICAwLk4uLiAgICAwdXMgOiBwcmVlbXB0X3NjaGVkdWxlICh3cml0ZV9jaGFuKQorICAgICAgbHMtNDQ3MyAgMGROLjEgICAgMXVzIDogX3NwaW5fbG9jayAoc2NoZWR1bGUpCisgICAgICBscy00NDczICAwZE4uMSAgICAydXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX3NwaW5fbG9jaykKKyAgICAgIGxzLTQ0NzMgIDBkLi4yICAgIDJ1cyA6IHB1dF9wcmV2X3Rhc2tfZmFpciAoc2NoZWR1bGUpCitbLi4uXQorICAgICAgbHMtNDQ3MyAgMGQuLjIgICAxM3VzIDogc2V0X25vcm1hbGl6ZWRfdGltZXNwZWMgKGt0aW1lX2dldF90cykKKyAgICAgIGxzLTQ0NzMgIDBkLi4yICAgMTN1cyA6IF9fc3dpdGNoX3RvIChzY2hlZHVsZSkKKyAgICBzc2hkLTQyNjEgIDBkLi4yICAgMTR1cyA6IGZpbmlzaF90YXNrX3N3aXRjaCAoc2NoZWR1bGUpCisgICAgc3NoZC00MjYxICAwZC4uMiAgIDE0dXMgOiBfc3Bpbl91bmxvY2tfaXJxIChmaW5pc2hfdGFza19zd2l0Y2gpCisgICAgc3NoZC00MjYxICAwZC4uMSAgIDE1dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX3NwaW5fbG9ja19pcnFzYXZlKQorICAgIHNzaGQtNDI2MSAgMGQuLjIgICAxNnVzIDogX3NwaW5fdW5sb2NrX2lycXJlc3RvcmUgKGhydGlja19zZXQpCisgICAgc3NoZC00MjYxICAwZC4uMiAgIDE2dXMgOiBkb19JUlEgKGNvbW1vbl9pbnRlcnJ1cHQpCisgICAgc3NoZC00MjYxICAwZC4uMiAgIDE3dXMgOiBpcnFfZW50ZXIgKGRvX0lSUSkKKyAgICBzc2hkLTQyNjEgIDBkLi4yICAgMTd1cyA6IGlkbGVfY3B1IChpcnFfZW50ZXIpCisgICAgc3NoZC00MjYxICAwZC4uMiAgIDE4dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoaXJxX2VudGVyKQorICAgIHNzaGQtNDI2MSAgMGQuaDIgICAxOHVzIDogaWRsZV9jcHUgKGlycV9lbnRlcikKKyAgICBzc2hkLTQyNjEgIDBkLmguICAgMTh1cyA6IGhhbmRsZV9mYXN0ZW9pX2lycSAoZG9fSVJRKQorICAgIHNzaGQtNDI2MSAgMGQuaC4gICAxOXVzIDogX3NwaW5fbG9jayAoaGFuZGxlX2Zhc3Rlb2lfaXJxKQorICAgIHNzaGQtNDI2MSAgMGQuaC4gICAxOXVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9zcGluX2xvY2spCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDIwdXMgOiBfc3Bpbl91bmxvY2sgKGhhbmRsZV9mYXN0ZW9pX2lycSkKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMjB1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChfc3Bpbl91bmxvY2spCitbLi4uXQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAyOHVzIDogX3NwaW5fdW5sb2NrIChoYW5kbGVfZmFzdGVvaV9pcnEpCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDI5dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoX3NwaW5fdW5sb2NrKQorICAgIHNzaGQtNDI2MSAgMGQuaDIgICAyOXVzIDogaXJxX2V4aXQgKGRvX0lSUSkKKyAgICBzc2hkLTQyNjEgIDBkLmgyICAgMjl1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChpcnFfZXhpdCkKKyAgICBzc2hkLTQyNjEgIDBkLi4zICAgMzB1cyA6IGRvX3NvZnRpcnEgKGlycV9leGl0KQorICAgIHNzaGQtNDI2MSAgMGQuLi4gICAzMHVzIDogX19kb19zb2Z0aXJxIChkb19zb2Z0aXJxKQorICAgIHNzaGQtNDI2MSAgMGQuLi4gICAzMXVzIDogX19sb2NhbF9iaF9kaXNhYmxlIChfX2RvX3NvZnRpcnEpCisgICAgc3NoZC00MjYxICAwZC4uLiAgIDMxdXMrOiBhZGRfcHJlZW1wdF9jb3VudCAoX19sb2NhbF9iaF9kaXNhYmxlKQorICAgIHNzaGQtNDI2MSAgMGQuczQgICAzNHVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9fbG9jYWxfYmhfZGlzYWJsZSkKK1suLi5dCisgICAgc3NoZC00MjYxICAwZC5zMyAgIDQzdXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobG9jYWxfYmhfZW5hYmxlX2lwKQorICAgIHNzaGQtNDI2MSAgMGQuczQgICA0NHVzIDogc3ViX3ByZWVtcHRfY291bnQgKGxvY2FsX2JoX2VuYWJsZV9pcCkKKyAgICBzc2hkLTQyNjEgIDBkLnMzICAgNDR1cyA6IHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCAoYXBpY190aW1lcl9pbnRlcnJ1cHQpCisgICAgc3NoZC00MjYxICAwZC5zMyAgIDQ1dXMgOiBpcnFfZW50ZXIgKHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCkKKyAgICBzc2hkLTQyNjEgIDBkLnMzICAgNDV1cyA6IGlkbGVfY3B1IChpcnFfZW50ZXIpCisgICAgc3NoZC00MjYxICAwZC5zMyAgIDQ2dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoaXJxX2VudGVyKQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA0NnVzIDogaWRsZV9jcHUgKGlycV9lbnRlcikKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgNDd1cyA6IGhydGltZXJfaW50ZXJydXB0IChzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDQ3dXMgOiBrdGltZV9nZXQgKGhydGltZXJfaW50ZXJydXB0KQorWy4uLl0KKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgODF1cyA6IHRpY2tfcHJvZ3JhbV9ldmVudCAoaHJ0aW1lcl9pbnRlcnJ1cHQpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDgydXMgOiBrdGltZV9nZXQgKHRpY2tfcHJvZ3JhbV9ldmVudCkKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgODJ1cyA6IGt0aW1lX2dldF90cyAoa3RpbWVfZ2V0KQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA4M3VzIDogZ2V0bnN0aW1lb2ZkYXkgKGt0aW1lX2dldF90cykKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgODN1cyA6IHNldF9ub3JtYWxpemVkX3RpbWVzcGVjIChrdGltZV9nZXRfdHMpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDg0dXMgOiBjbG9ja2V2ZW50c19wcm9ncmFtX2V2ZW50ICh0aWNrX3Byb2dyYW1fZXZlbnQpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDg0dXMgOiBsYXBpY19uZXh0X2V2ZW50IChjbG9ja2V2ZW50c19wcm9ncmFtX2V2ZW50KQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA4NXVzIDogaXJxX2V4aXQgKHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCkKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgODV1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChpcnFfZXhpdCkKKyAgICBzc2hkLTQyNjEgIDBkLnM0ICAgODZ1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChpcnFfZXhpdCkKKyAgICBzc2hkLTQyNjEgIDBkLnMzICAgODZ1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfX2xvY2FsX2JoX2Rpc2FibGUpCitbLi4uXQorICAgIHNzaGQtNDI2MSAgMGQuczEgICA5OHVzIDogc3ViX3ByZWVtcHRfY291bnQgKG5ldF9yeF9hY3Rpb24pCisgICAgc3NoZC00MjYxICAwZC5zLiAgIDk5dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX3NwaW5fbG9ja19pcnEpCisgICAgc3NoZC00MjYxICAwZC5zMSAgIDk5dXMrOiBfc3Bpbl91bmxvY2tfaXJxIChydW5fdGltZXJfc29mdGlycSkKKyAgICBzc2hkLTQyNjEgIDBkLnMuICAxMDR1cyA6IF9sb2NhbF9iaF9lbmFibGUgKF9fZG9fc29mdGlycSkKKyAgICBzc2hkLTQyNjEgIDBkLnMuICAxMDR1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChfbG9jYWxfYmhfZW5hYmxlKQorICAgIHNzaGQtNDI2MSAgMGQucy4gIDEwNXVzIDogX2xvY2FsX2JoX2VuYWJsZSAoX19kb19zb2Z0aXJxKQorICAgIHNzaGQtNDI2MSAgMGQuczEgIDEwNXVzIDogdHJhY2VfcHJlZW1wdF9vbiAoX19kb19zb2Z0aXJxKQorCisKK1RoaXMgaXMgYSB2ZXJ5IGludGVyZXN0aW5nIHRyYWNlLiBJdCBzdGFydGVkIHdpdGggdGhlIHByZWVtcHRpb24gb2YKK3RoZSBscyB0YXNrLiBXZSBzZWUgdGhhdCB0aGUgdGFzayBoYWQgdGhlICJuZWVkX3Jlc2NoZWQiIGJpdCBzZXQKK3dpdGggdGhlICdOJyBpbiB0aGUgdHJhY2UuICBJbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBpbiB0aGUgc3Bpbl9sb2NrCithbmQgdGhlIHRyYWNlIHN0YXJ0ZWQuIFdlIHNlZSB0aGF0IGEgc2NoZWR1bGUgdG9vayBwbGFjZSB0byBydW4KK3NzaGQuICBXaGVuIHRoZSBpbnRlcnJ1cHRzIHdlcmUgZW5hYmxlZCwgd2UgdG9vayBhbiBpbnRlcnJ1cHQuCitPbiByZXR1cm4gZnJvbSB0aGUgaW50ZXJydXB0IGhhbmRsZXIsIHRoZSBzb2Z0aXJxIHJhbi4gV2UgdG9vayBhbm90aGVyCitpbnRlcnJ1cHQgd2hpbGUgcnVubmluZyB0aGUgc29mdGlycSBhcyB3ZSBzZWUgd2l0aCB0aGUgY2FwaXRhbCAnSCcuCisKKword2FrZXVwCistLS0tLS0KKworSW4gUmVhbC1UaW1lIGVudmlyb25tZW50IGl0IGlzIHZlcnkgaW1wb3J0YW50IHRvIGtub3cgdGhlIHdha2V1cAordGltZSBpdCB0YWtlcyBmb3IgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgdGFzayB0aGF0IHdha2VzIHVwIHRvIHRoZQordGltZSBpdCBleGVjdXRlcy4gVGhpcyBpcyBhbHNvIGtub3duIGFzICJzY2hlZHVsZSBsYXRlbmN5Ii4KK0kgc3RyZXNzIHRoZSBwb2ludCB0aGF0IHRoaXMgaXMgYWJvdXQgUlQgdGFza3MuIEl0IGlzIGFsc28gaW1wb3J0YW50Cit0byBrbm93IHRoZSBzY2hlZHVsaW5nIGxhdGVuY3kgb2Ygbm9uLVJUIHRhc2tzLCBidXQgdGhlIGF2ZXJhZ2UKK3NjaGVkdWxlIGxhdGVuY3kgaXMgYmV0dGVyIGZvciBub24tUlQgdGFza3MuIFRvb2xzIGxpa2UKK0xhdGVuY3lUb3AgYXJlIG1vcmUgYXBwcm9wcmlhdGUgZm9yIHN1Y2ggbWVhc3VyZW1lbnRzLgorCitSZWFsLVRpbWUgZW52aXJvbm1lbnRzIGFyZSBpbnRlcmVzdGVkIGluIHRoZSB3b3JzdCBjYXNlIGxhdGVuY3kuCitUaGF0IGlzIHRoZSBsb25nZXN0IGxhdGVuY3kgaXQgdGFrZXMgZm9yIHNvbWV0aGluZyB0byBoYXBwZW4sIGFuZAorbm90IHRoZSBhdmVyYWdlLiBXZSBjYW4gaGF2ZSBhIHZlcnkgZmFzdCBzY2hlZHVsZXIgdGhhdCBtYXkgb25seQoraGF2ZSBhIGxhcmdlIGxhdGVuY3kgb25jZSBpbiBhIHdoaWxlLCBidXQgdGhhdCB3b3VsZCBub3Qgd29yayB3ZWxsCit3aXRoIFJlYWwtVGltZSB0YXNrcy4gIFRoZSB3YWtldXAgdHJhY2VyIHdhcyBkZXNpZ25lZCB0byByZWNvcmQKK3RoZSB3b3JzdCBjYXNlIHdha2V1cHMgb2YgUlQgdGFza3MuIE5vbi1SVCB0YXNrcyBhcmUgbm90IHJlY29yZGVkCitiZWNhdXNlIHRoZSB0cmFjZXIgb25seSByZWNvcmRzIG9uZSB3b3JzdCBjYXNlIGFuZCB0cmFjaW5nIG5vbi1SVAordGFza3MgdGhhdCBhcmUgdW5wcmVkaWN0YWJsZSB3aWxsIG92ZXJ3cml0ZSB0aGUgd29yc3QgY2FzZSBsYXRlbmN5CitvZiBSVCB0YXNrcy4KKworU2luY2UgdGhpcyB0cmFjZXIgb25seSBkZWFscyB3aXRoIFJUIHRhc2tzLCB3ZSB3aWxsIHJ1biB0aGlzIHNsaWdodGx5CitkaWZmZXJlbnRseSB0aGFuIHdlIGRpZCB3aXRoIHRoZSBwcmV2aW91cyB0cmFjZXJzLiBJbnN0ZWFkIG9mIHBlcmZvcm1pbmcKK2FuICdscycsIHdlIHdpbGwgcnVuICdzbGVlcCAxJyB1bmRlciAnY2hydCcgd2hpY2ggY2hhbmdlcyB0aGUKK3ByaW9yaXR5IG9mIHRoZSB0YXNrLgorCisgIyBlY2hvIHdha2V1cCA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX21heF9sYXRlbmN5CisgIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGNocnQgLWYgNSBzbGVlcCAxCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9sYXRlbmN5X3RyYWNlCisjIHRyYWNlcjogd2FrZXVwCisjCit3YWtldXAgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gMi42LjI2LXJjOAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsYXRlbmN5OiA0IHVzLCAjMi8yLCBDUFUjMSB8IChNOnByZWVtcHQgVlA6MCwgS1A6MCwgU1A6MCBIUDowICNQOjIpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB8IHRhc2s6IHNsZWVwLTQ5MDEgKHVpZDowIG5pY2U6MCBwb2xpY3k6MSBydF9wcmlvOjUpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKworIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIworIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYKKyMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZAorIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxCisjICAgICAgICAgICAgICB8fHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoCisjICAgICAgICAgICAgICB8fHx8IC8KKyMgICAgICAgICAgICAgIHx8fHx8ICAgICBkZWxheQorIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlcgorIyAgICAgXCAgIC8gICAgfHx8fHwgICBcICAgfCAgIC8KKyAgPGlkbGU+LTAgICAgIDFkLmg0ICAgIDB1cys6IHRyeV90b193YWtlX3VwICh3YWtlX3VwX3Byb2Nlc3MpCisgIDxpZGxlPi0wICAgICAxZC4uNCAgICA0dXMgOiBzY2hlZHVsZSAoY3B1X2lkbGUpCisKKwordmltOmZ0PWhlbHAKKworCitSdW5uaW5nIHRoaXMgb24gYW4gaWRsZSBzeXN0ZW0sIHdlIHNlZSB0aGF0IGl0IG9ubHkgdG9vayA0IG1pY3Jvc2Vjb25kcwordG8gcGVyZm9ybSB0aGUgdGFzayBzd2l0Y2guICBOb3RlLCBzaW5jZSB0aGUgdHJhY2UgbWFya2VyIGluIHRoZQorc2NoZWR1bGUgaXMgYmVmb3JlIHRoZSBhY3R1YWwgInN3aXRjaCIsIHdlIHN0b3AgdGhlIHRyYWNpbmcgd2hlbgordGhlIHJlY29yZGVkIHRhc2sgaXMgYWJvdXQgdG8gc2NoZWR1bGUgaW4uIFRoaXMgbWF5IGNoYW5nZSBpZgord2UgYWRkIGEgbmV3IG1hcmtlciBhdCB0aGUgZW5kIG9mIHRoZSBzY2hlZHVsZXIuCisKK05vdGljZSB0aGF0IHRoZSByZWNvcmRlZCB0YXNrIGlzICdzbGVlcCcgd2l0aCB0aGUgUElEIG9mIDQ5MDEgYW5kIGl0CitoYXMgYW4gcnRfcHJpbyBvZiA1LiBUaGlzIHByaW9yaXR5IGlzIHVzZXItc3BhY2UgcHJpb3JpdHkgYW5kIG5vdAordGhlIGludGVybmFsIGtlcm5lbCBwcmlvcml0eS4gVGhlIHBvbGljeSBpcyAxIGZvciBTQ0hFRF9GSUZPIGFuZCAyCitmb3IgU0NIRURfUlIuCisKK0RvaW5nIHRoZSBzYW1lIHdpdGggY2hydCAtciA1IGFuZCBmdHJhY2VfZW5hYmxlZCBzZXQuCisKKyMgdHJhY2VyOiB3YWtldXAKKyMKK3dha2V1cCBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAyLjYuMjYtcmM4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxhdGVuY3k6IDUwIHVzLCAjNjAvNjAsIENQVSMxIHwgKE06cHJlZW1wdCBWUDowLCBLUDowLCBTUDowIEhQOjAgI1A6MikKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorICAgIHwgdGFzazogc2xlZXAtNDA2OCAodWlkOjAgbmljZTowIHBvbGljeToyIHJ0X3ByaW86NSkKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorCisjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjCisjICAgICAgICAgICAgICAgLyBfLS0tLS09PiBpcnFzLW9mZgorIyAgICAgICAgICAgICAgfCAvIF8tLS0tPT4gbmVlZC1yZXNjaGVkCisjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEKKyMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgKKyMgICAgICAgICAgICAgIHx8fHwgLworIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5CisjICBjbWQgICAgIHBpZCB8fHx8fCB0aW1lICB8ICAgY2FsbGVyCisjICAgICBcICAgLyAgICB8fHx8fCAgIFwgICB8ICAgLwora3NvZnRpcnEtNyAgICAgMWQuSDMgICAgMHVzIDogdHJ5X3RvX3dha2VfdXAgKHdha2VfdXBfcHJvY2VzcykKK2tzb2Z0aXJxLTcgICAgIDFkLkg0ICAgIDF1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChtYXJrZXJfcHJvYmVfY2IpCitrc29mdGlycS03ICAgICAxZC5IMyAgICAydXMgOiBjaGVja19wcmVlbXB0X3dha2V1cCAodHJ5X3RvX3dha2VfdXApCitrc29mdGlycS03ICAgICAxZC5IMyAgICAzdXMgOiB1cGRhdGVfY3VyciAoY2hlY2tfcHJlZW1wdF93YWtldXApCitrc29mdGlycS03ICAgICAxZC5IMyAgICA0dXMgOiBjYWxjX2RlbHRhX21pbmUgKHVwZGF0ZV9jdXJyKQora3NvZnRpcnEtNyAgICAgMWQuSDMgICAgNXVzIDogX19yZXNjaGVkX3Rhc2sgKGNoZWNrX3ByZWVtcHRfd2FrZXVwKQora3NvZnRpcnEtNyAgICAgMWQuSDMgICAgNnVzIDogdGFza193YWtlX3VwX3J0ICh0cnlfdG9fd2FrZV91cCkKK2tzb2Z0aXJxLTcgICAgIDFkLkgzICAgIDd1cyA6IF9zcGluX3VubG9ja19pcnFyZXN0b3JlICh0cnlfdG9fd2FrZV91cCkKK1suLi5dCitrc29mdGlycS03ICAgICAxZC5IMiAgIDE3dXMgOiBpcnFfZXhpdCAoc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KQora3NvZnRpcnEtNyAgICAgMWQuSDIgICAxOHVzIDogc3ViX3ByZWVtcHRfY291bnQgKGlycV9leGl0KQora3NvZnRpcnEtNyAgICAgMWQuczMgICAxOXVzIDogc3ViX3ByZWVtcHRfY291bnQgKGlycV9leGl0KQora3NvZnRpcnEtNyAgICAgMS4uczIgICAyMHVzIDogcmN1X3Byb2Nlc3NfY2FsbGJhY2tzIChfX2RvX3NvZnRpcnEpCitbLi4uXQora3NvZnRpcnEtNyAgICAgMS4uczIgICAyNnVzIDogX19yY3VfcHJvY2Vzc19jYWxsYmFja3MgKHJjdV9wcm9jZXNzX2NhbGxiYWNrcykKK2tzb2Z0aXJxLTcgICAgIDFkLnMyICAgMjd1cyA6IF9sb2NhbF9iaF9lbmFibGUgKF9fZG9fc29mdGlycSkKK2tzb2Z0aXJxLTcgICAgIDFkLnMyICAgMjh1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChfbG9jYWxfYmhfZW5hYmxlKQora3NvZnRpcnEtNyAgICAgMS5OLjMgICAyOXVzIDogc3ViX3ByZWVtcHRfY291bnQgKGtzb2Z0aXJxZCkKK2tzb2Z0aXJxLTcgICAgIDEuTi4yICAgMzB1cyA6IF9jb25kX3Jlc2NoZWQgKGtzb2Z0aXJxZCkKK2tzb2Z0aXJxLTcgICAgIDEuTi4yICAgMzF1cyA6IF9fY29uZF9yZXNjaGVkIChfY29uZF9yZXNjaGVkKQora3NvZnRpcnEtNyAgICAgMS5OLjIgICAzMnVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9fY29uZF9yZXNjaGVkKQora3NvZnRpcnEtNyAgICAgMS5OLjIgICAzM3VzIDogc2NoZWR1bGUgKF9fY29uZF9yZXNjaGVkKQora3NvZnRpcnEtNyAgICAgMS5OLjIgICAzM3VzIDogYWRkX3ByZWVtcHRfY291bnQgKHNjaGVkdWxlKQora3NvZnRpcnEtNyAgICAgMS5OLjMgICAzNHVzIDogaHJ0aWNrX2NsZWFyIChzY2hlZHVsZSkKK2tzb2Z0aXJxLTcgICAgIDFkTi4zICAgMzV1cyA6IF9zcGluX2xvY2sgKHNjaGVkdWxlKQora3NvZnRpcnEtNyAgICAgMWROLjMgICAzNnVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9zcGluX2xvY2spCitrc29mdGlycS03ICAgICAxZC4uNCAgIDM3dXMgOiBwdXRfcHJldl90YXNrX2ZhaXIgKHNjaGVkdWxlKQora3NvZnRpcnEtNyAgICAgMWQuLjQgICAzOHVzIDogdXBkYXRlX2N1cnIgKHB1dF9wcmV2X3Rhc2tfZmFpcikKK1suLi5dCitrc29mdGlycS03ICAgICAxZC4uNSAgIDQ3dXMgOiBfc3Bpbl90cnlsb2NrICh0cmFjaW5nX3JlY29yZF9jbWRsaW5lKQora3NvZnRpcnEtNyAgICAgMWQuLjUgICA0OHVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9zcGluX3RyeWxvY2spCitrc29mdGlycS03ICAgICAxZC4uNiAgIDQ5dXMgOiBfc3Bpbl91bmxvY2sgKHRyYWNpbmdfcmVjb3JkX2NtZGxpbmUpCitrc29mdGlycS03ICAgICAxZC4uNiAgIDQ5dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoX3NwaW5fdW5sb2NrKQora3NvZnRpcnEtNyAgICAgMWQuLjQgICA1MHVzIDogc2NoZWR1bGUgKF9fY29uZF9yZXNjaGVkKQorCitUaGUgaW50ZXJydXB0IHdlbnQgb2ZmIHdoaWxlIHJ1bm5pbmcga3NvZnRpcnFkLiBUaGlzIHRhc2sgcnVucyBhdAorU0NIRURfT1RIRVIuIFdoeSBkaWRuJ3Qgd2Ugc2VlIHRoZSAnTicgc2V0IGVhcmx5PyBUaGlzIG1heSBiZQorYSBoYXJtbGVzcyBidWcgd2l0aCB4ODZfMzIgYW5kIDRLIHN0YWNrcy4gT24geDg2XzMyIHdpdGggNEsgc3RhY2tzCitjb25maWd1cmVkLCB0aGUgaW50ZXJydXB0IGFuZCBzb2Z0aXJxIHJ1bnMgd2l0aCB0aGVpciBvd24gc3RhY2suCitTb21lIGluZm9ybWF0aW9uIGlzIGhlbGQgb24gdGhlIHRvcCBvZiB0aGUgdGFzaydzIHN0YWNrIChuZWVkX3Jlc2NoZWQKK2FuZCBwcmVlbXB0X2NvdW50IGFyZSBib3RoIHN0b3JlZCB0aGVyZSkuIFRoZSBzZXR0aW5nIG9mIHRoZSBORUVEX1JFU0NIRUQKK2JpdCBpcyBkb25lIGRpcmVjdGx5IHRvIHRoZSB0YXNrJ3Mgc3RhY2ssIGJ1dCB0aGUgcmVhZGluZyBvZiB0aGUKK05FRURfUkVTQ0hFRCBpcyBkb25lIGJ5IGxvb2tpbmcgYXQgdGhlIGN1cnJlbnQgc3RhY2ssIHdoaWNoIGluIHRoaXMgY2FzZQoraXMgdGhlIHN0YWNrIGZvciB0aGUgaGFyZCBpbnRlcnJ1cHQuIFRoaXMgaGlkZXMgdGhlIGZhY3QgdGhhdCBORUVEX1JFU0NIRUQKK2hhcyBiZWVuIHNldC4gV2UgZG9uJ3Qgc2VlIHRoZSAnTicgdW50aWwgd2Ugc3dpdGNoIGJhY2sgdG8gdGhlIHRhc2sncworYXNzaWduZWQgc3RhY2suCisKK2Z0cmFjZQorLS0tLS0tCisKK2Z0cmFjZSBpcyBub3Qgb25seSB0aGUgbmFtZSBvZiB0aGUgdHJhY2luZyBpbmZyYXN0cnVjdHVyZSwgYnV0IGl0CitpcyBhbHNvIGEgbmFtZSBvZiBvbmUgb2YgdGhlIHRyYWNlcnMuIFRoZSB0cmFjZXIgaXMgdGhlIGZ1bmN0aW9uCit0cmFjZXIuIEVuYWJsaW5nIHRoZSBmdW5jdGlvbiB0cmFjZXIgY2FuIGJlIGRvbmUgZnJvbSB0aGUKK2RlYnVnIGZpbGUgc3lzdGVtLiBNYWtlIHN1cmUgdGhlIGZ0cmFjZV9lbmFibGVkIGlzIHNldCBvdGhlcndpc2UKK3RoaXMgdHJhY2VyIGlzIGEgbm9wLgorCisgIyBzeXNjdGwga2VybmVsLmZ0cmFjZV9lbmFibGVkPTEKKyAjIGVjaG8gZnRyYWNlID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyAjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgdXNsZWVwIDEKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlCisjIHRyYWNlcjogZnRyYWNlCisjCisjICAgICAgICAgICBUQVNLLVBJRCAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTgorIyAgICAgICAgICAgICAgfCB8ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfAorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxMzogZmluaXNoX3Rhc2tfc3dpdGNoIDwtc2NoZWR1bGUKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTQ6IF9zcGluX3VubG9ja19pcnEgPC1maW5pc2hfdGFza19zd2l0Y2gKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTQ6IHN1Yl9wcmVlbXB0X2NvdW50IDwtX3NwaW5fdW5sb2NrX2lycQorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxNTogaHJ0aWNrX3NldCA8LXNjaGVkdWxlCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE1OiBfc3Bpbl9sb2NrX2lycXNhdmUgPC1ocnRpY2tfc2V0CisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE2OiBhZGRfcHJlZW1wdF9jb3VudCA8LV9zcGluX2xvY2tfaXJxc2F2ZQorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxNjogX3NwaW5fdW5sb2NrX2lycXJlc3RvcmUgPC1ocnRpY2tfc2V0CisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE3OiBzdWJfcHJlZW1wdF9jb3VudCA8LV9zcGluX3VubG9ja19pcnFyZXN0b3JlCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE3OiBocnRpY2tfY2xlYXIgPC1ocnRpY2tfc2V0CisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE4OiBzdWJfcHJlZW1wdF9jb3VudCA8LXNjaGVkdWxlCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE4OiBzdWJfcHJlZW1wdF9jb3VudCA8LXByZWVtcHRfc2NoZWR1bGUKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTk6IHdhaXRfZm9yX2NvbXBsZXRpb24gPC1fX3N0b3BfbWFjaGluZV9ydW4KKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTk6IHdhaXRfZm9yX2NvbW1vbiA8LXdhaXRfZm9yX2NvbXBsZXRpb24KKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MjA6IF9zcGluX2xvY2tfaXJxIDwtd2FpdF9mb3JfY29tbW9uCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzIwOiBhZGRfcHJlZW1wdF9jb3VudCA8LV9zcGluX2xvY2tfaXJxCitbLi4uXQorCisKK05vdGU6IEl0IGlzIHNvbWV0aW1lcyBiZXR0ZXIgdG8gZW5hYmxlIG9yIGRpc2FibGUgdHJhY2luZyBkaXJlY3RseSBmcm9tCithIHByb2dyYW0sIGJlY2F1c2UgdGhlIGJ1ZmZlciBtYXkgYmUgb3ZlcmZsb3dlZCBieSB0aGUgZWNobyBjb21tYW5kcworYmVmb3JlIHlvdSBnZXQgdG8gdGhlIHBvaW50IHlvdSB3YW50IHRvIHRyYWNlLiBJdCBpcyBhbHNvIGVhc2llciB0bworc3RvcCB0aGUgdHJhY2luZyBhdCB0aGUgcG9pbnQgdGhhdCB5b3UgaGl0IHRoZSBwYXJ0IHRoYXQgeW91IGFyZQoraW50ZXJlc3RlZCBpbi4gU2luY2UgdGhlIGZ0cmFjZSBidWZmZXIgaXMgYSByaW5nIGJ1ZmZlciB3aXRoIHRoZQorb2xkZXN0IGRhdGEgYmVpbmcgb3ZlcndyaXR0ZW4sIHVzdWFsbHkgaXQgaXMgc3VmZmljaWVudCB0byBzdGFydCB0aGUKK3RyYWNlciB3aXRoIGFuIGVjaG8gY29tbWFuZCBidXQgaGF2ZSB5b3UgY29kZSBzdG9wIGl0LiBTb21ldGhpbmcKK2xpa2UgdGhlIGZvbGxvd2luZyBpcyB1c3VhbGx5IGFwcHJvcHJpYXRlIGZvciB0aGlzLgorCitpbnQgdHJhY2VfZmQ7CitbLi4uXQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworCVsuLi5dCisJdHJhY2VfZmQgPSBvcGVuKCIvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQiLCBPX1dST05MWSk7CisJWy4uLl0KKwlpZiAoY29uZGl0aW9uX2hpdCgpKSB7CisJd3JpdGUodHJhY2VfZmQsICIwIiwgMSk7CisJfQorCVsuLi5dCit9CisKKworZHluYW1pYyBmdHJhY2UKKy0tLS0tLS0tLS0tLS0tCisKK0lmIENPTkZJR19EWU5BTUlDX0ZUUkFDRSBpcyBzZXQsIHRoZW4gdGhlIHN5c3RlbSB3aWxsIHJ1biB3aXRoCit2aXJ0dWFsbHkgbm8gb3ZlcmhlYWQgd2hlbiBmdW5jdGlvbiB0cmFjaW5nIGlzIGRpc2FibGVkLiBUaGUgd2F5Cit0aGlzIHdvcmtzIGlzIHRoZSBtY291bnQgZnVuY3Rpb24gY2FsbCAocGxhY2VkIGF0IHRoZSBzdGFydCBvZgorZXZlcnkga2VybmVsIGZ1bmN0aW9uLCBwcm9kdWNlZCBieSB0aGUgLXBnIHN3aXRjaCBpbiBnY2MpLCBzdGFydHMKK29mIHBvaW50aW5nIHRvIGEgc2ltcGxlIHJldHVybi4KKworV2hlbiBkeW5hbWljIGZ0cmFjZSBpcyBpbml0aWFsaXplZCwgaXQgY2FsbHMga3N0b3BfbWFjaGluZSB0byBtYWtlCit0aGUgbWFjaGluZSBhY3QgbGlrZSBhIHVuaXByb2Nlc3NvciBzbyB0aGF0IGl0IGNhbiBmcmVlbHkgbW9kaWZ5IGNvZGUKK3dpdGhvdXQgd29ycnlpbmcgYWJvdXQgb3RoZXIgcHJvY2Vzc29ycyBleGVjdXRpbmcgdGhhdCBzYW1lIGNvZGUuICBBdAoraW5pdGlhbGl6YXRpb24sIHRoZSBtY291bnQgY2FsbHMgYXJlIGNoYW5nZWQgdG8gY2FsbCBhICJyZWNvcmRfaXAiCitmdW5jdGlvbi4gIEFmdGVyIHRoaXMsIHRoZSBmaXJzdCB0aW1lIGEga2VybmVsIGZ1bmN0aW9uIGlzIGNhbGxlZCwKK2l0IGhhcyB0aGUgY2FsbGluZyBhZGRyZXNzIHNhdmVkIGluIGEgaGFzaCB0YWJsZS4KKworTGF0ZXIgb24gdGhlIGZ0cmFjZWQga2VybmVsIHRocmVhZCBpcyBhd29rZW4gYW5kIHdpbGwgYWdhaW4gY2FsbAora3N0b3BfbWFjaGluZSBpZiBuZXcgZnVuY3Rpb25zIGhhdmUgYmVlbiByZWNvcmRlZC4gVGhlIGZ0cmFjZWQgdGhyZWFkCit3aWxsIGNoYW5nZSBhbGwgY2FsbHMgdG8gbWNvdW50IHRvICJub3AiLiAgSnVzdCBjYWxsaW5nIG1jb3VudAorYW5kIGhhdmluZyBtY291bnQgcmV0dXJuIGhhcyBzaG93biBhIDEwJSBvdmVyaGVhZC4gQnkgY29udmVydGluZworaXQgdG8gYSBub3AsIHRoZXJlIGlzIG5vIHJlY29yZGFibGUgb3ZlcmhlYWQgdG8gdGhlIHN5c3RlbS4KKworT25lIHNwZWNpYWwgc2lkZS1lZmZlY3QgdG8gdGhlIHJlY29yZGluZyBvZiB0aGUgZnVuY3Rpb25zIGJlaW5nCit0cmFjZWQsIGlzIHRoYXQgd2UgY2FuIG5vdyBzZWxlY3RpdmVseSBjaG9vc2Ugd2hpY2ggZnVuY3Rpb25zIHdlCit3YW50IHRvIHRyYWNlIGFuZCB3aGljaCBvbmVzIHdlIHdhbnQgdGhlIG1jb3VudCBjYWxscyB0byByZW1haW4gYXMKK25vcHMuCisKK1R3byBmaWxlcyBhcmUgdXNlZCwgb25lIGZvciBlbmFibGluZyBhbmQgb25lIGZvciBkaXNhYmxpbmcgdGhlIHRyYWNpbmcKK29mIHJlY29yZGVkIGZ1bmN0aW9ucy4gVGhleSBhcmU6CisKKyAgc2V0X2Z0cmFjZV9maWx0ZXIKKworYW5kCisKKyAgc2V0X2Z0cmFjZV9ub3RyYWNlCisKK0EgbGlzdCBvZiBhdmFpbGFibGUgZnVuY3Rpb25zIHRoYXQgeW91IGNhbiBhZGQgdG8gdGhlc2UgZmlsZXMgaXMgbGlzdGVkCitpbjoKKworICAgYXZhaWxhYmxlX2ZpbHRlcl9mdW5jdGlvbnMKKworICMgY2F0IC9kZWJ1Zy90cmFjaW5nL2F2YWlsYWJsZV9maWx0ZXJfZnVuY3Rpb25zCitwdXRfcHJldl90YXNrX2lkbGUKK2ttZW1fY2FjaGVfY3JlYXRlCitwaWNrX25leHRfdGFza19ydAorZ2V0X29ubGluZV9jcHVzCitwaWNrX25leHRfdGFza19mYWlyCittdXRleF9sb2NrCitbLi4uXQorCitJZiBJJ20gb25seSBpbnRlcmVzdGVkIGluIHN5c19uYW5vc2xlZXAgYW5kIGhydGltZXJfaW50ZXJydXB0OgorCisgIyBlY2hvIHN5c19uYW5vc2xlZXAgaHJ0aW1lcl9pbnRlcnJ1cHQgXAorCQk+IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCisgIyBlY2hvIGZ0cmFjZSA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisgIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIHVzbGVlcCAxCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZQorIyB0cmFjZXI6IGZ0cmFjZQorIworIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04KKyMgICAgICAgICAgICAgIHwgfCAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwKKyAgICAgICAgICB1c2xlZXAtNDEzNCAgWzAwXSAgMTMxNy4wNzAwMTc6IGhydGltZXJfaW50ZXJydXB0IDwtc21wX2FwaWNfdGltZXJfaW50ZXJydXB0CisgICAgICAgICAgdXNsZWVwLTQxMzQgIFswMF0gIDEzMTcuMDcwMTExOiBzeXNfbmFub3NsZWVwIDwtc3lzY2FsbF9jYWxsCisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gIDEzMTcuMDcwMTE1OiBocnRpbWVyX2ludGVycnVwdCA8LXNtcF9hcGljX3RpbWVyX2ludGVycnVwdAorCitUbyBzZWUgd2hhdCBmdW5jdGlvbnMgYXJlIGJlaW5nIHRyYWNlZCwgeW91IGNhbiBjYXQgdGhlIGZpbGU6CisKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgoraHJ0aW1lcl9pbnRlcnJ1cHQKK3N5c19uYW5vc2xlZXAKKworCitQZXJoYXBzIHRoaXMgaXNuJ3QgZW5vdWdoLiBUaGUgZmlsdGVycyBhbHNvIGFsbG93IHNpbXBsZSB3aWxkIGNhcmRzLgorT25seSB0aGUgZm9sbG93aW5nIGFyZSBjdXJyZW50bHkgYXZhaWxhYmxlCisKKyAgPG1hdGNoPiogIC0gd2lsbCBtYXRjaCBmdW5jdGlvbnMgdGhhdCBiZWdpbiB3aXRoIDxtYXRjaD4KKyAgKjxtYXRjaD4gIC0gd2lsbCBtYXRjaCBmdW5jdGlvbnMgdGhhdCBlbmQgd2l0aCA8bWF0Y2g+CisgICo8bWF0Y2g+KiAtIHdpbGwgbWF0Y2ggZnVuY3Rpb25zIHRoYXQgaGF2ZSA8bWF0Y2g+IGluIGl0CisKK1RoYXRzIGFsbCB0aGUgd2lsZCBjYXJkcyB0aGF0IGFyZSBhbGxvd2VkLgorCisgIDxtYXRjaD4qPG1hdGNoPiB3aWxsIG5vdCB3b3JrLgorCisgIyBlY2hvIGhydGltZXJfKiA+IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCisKK1Byb2R1Y2VzOgorCisjIHRyYWNlcjogZnRyYWNlCisjCisjICAgICAgICAgICBUQVNLLVBJRCAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTgorIyAgICAgICAgICAgICAgfCB8ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfAorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAxNDgwLjYxMTc5NDogaHJ0aW1lcl9pbml0IDwtY29weV9wcm9jZXNzCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gIDE0ODAuNjExOTQxOiBocnRpbWVyX3N0YXJ0IDwtaHJ0aWNrX3NldAorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAxNDgwLjYxMTk1NjogaHJ0aW1lcl9jYW5jZWwgPC1ocnRpY2tfY2xlYXIKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgMTQ4MC42MTE5NTY6IGhydGltZXJfdHJ5X3RvX2NhbmNlbCA8LWhydGltZXJfY2FuY2VsCisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gIDE0ODAuNjEyMDE5OiBocnRpbWVyX2dldF9uZXh0X2V2ZW50IDwtZ2V0X25leHRfdGltZXJfaW50ZXJydXB0CisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gIDE0ODAuNjEyMDI1OiBocnRpbWVyX2dldF9uZXh0X2V2ZW50IDwtZ2V0X25leHRfdGltZXJfaW50ZXJydXB0CisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gIDE0ODAuNjEyMDMyOiBocnRpbWVyX2dldF9uZXh0X2V2ZW50IDwtZ2V0X25leHRfdGltZXJfaW50ZXJydXB0CisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gIDE0ODAuNjEyMDM3OiBocnRpbWVyX2dldF9uZXh0X2V2ZW50IDwtZ2V0X25leHRfdGltZXJfaW50ZXJydXB0CisgICAgICAgICAgPGlkbGU+LTAgICAgIFswMF0gIDE0ODAuNjEyMzgyOiBocnRpbWVyX2dldF9uZXh0X2V2ZW50IDwtZ2V0X25leHRfdGltZXJfaW50ZXJydXB0CisKKworTm90aWNlIHRoYXQgd2UgbG9zdCB0aGUgc3lzX25hbm9zbGVlcC4KKworICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCitocnRpbWVyX3J1bl9xdWV1ZXMKK2hydGltZXJfcnVuX3BlbmRpbmcKK2hydGltZXJfaW5pdAoraHJ0aW1lcl9jYW5jZWwKK2hydGltZXJfdHJ5X3RvX2NhbmNlbAoraHJ0aW1lcl9mb3J3YXJkCitocnRpbWVyX3N0YXJ0CitocnRpbWVyX3JlcHJvZ3JhbQoraHJ0aW1lcl9mb3JjZV9yZXByb2dyYW0KK2hydGltZXJfZ2V0X25leHRfZXZlbnQKK2hydGltZXJfaW50ZXJydXB0CitocnRpbWVyX25hbm9zbGVlcAoraHJ0aW1lcl93YWtldXAKK2hydGltZXJfZ2V0X3JlbWFpbmluZworaHJ0aW1lcl9nZXRfcmVzCitocnRpbWVyX2luaXRfc2xlZXBlcgorCisKK1RoaXMgaXMgYmVjYXVzZSB0aGUgJz4nIGFuZCAnPj4nIGFjdCBqdXN0IGxpa2UgdGhleSBkbyBpbiBiYXNoLgorVG8gcmV3cml0ZSB0aGUgZmlsdGVycywgdXNlICc+JworVG8gYXBwZW5kIHRvIHRoZSBmaWx0ZXJzLCB1c2UgJz4+JworCitUbyBjbGVhciBvdXQgYSBmaWx0ZXIgc28gdGhhdCBhbGwgZnVuY3Rpb25zIHdpbGwgYmUgcmVjb3JkZWQgYWdhaW46CisKKyAjIGVjaG8gPiAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCisgIworCitBZ2Fpbiwgbm93IHdlIHdhbnQgdG8gYXBwZW5kLgorCisgIyBlY2hvIHN5c19uYW5vc2xlZXAgPiAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCitzeXNfbmFub3NsZWVwCisgIyBlY2hvIGhydGltZXJfKiA+PiAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2VfZmlsdGVyCitocnRpbWVyX3J1bl9xdWV1ZXMKK2hydGltZXJfcnVuX3BlbmRpbmcKK2hydGltZXJfaW5pdAoraHJ0aW1lcl9jYW5jZWwKK2hydGltZXJfdHJ5X3RvX2NhbmNlbAoraHJ0aW1lcl9mb3J3YXJkCitocnRpbWVyX3N0YXJ0CitocnRpbWVyX3JlcHJvZ3JhbQoraHJ0aW1lcl9mb3JjZV9yZXByb2dyYW0KK2hydGltZXJfZ2V0X25leHRfZXZlbnQKK2hydGltZXJfaW50ZXJydXB0CitzeXNfbmFub3NsZWVwCitocnRpbWVyX25hbm9zbGVlcAoraHJ0aW1lcl93YWtldXAKK2hydGltZXJfZ2V0X3JlbWFpbmluZworaHJ0aW1lcl9nZXRfcmVzCitocnRpbWVyX2luaXRfc2xlZXBlcgorCisKK1RoZSBzZXRfZnRyYWNlX25vdHJhY2UgcHJldmVudHMgdGhvc2UgZnVuY3Rpb25zIGZyb20gYmVpbmcgdHJhY2VkLgorCisgIyBlY2hvICcqcHJlZW1wdConICcqbG9jayonID4gL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9ub3RyYWNlCisKK1Byb2R1Y2VzOgorCisjIHRyYWNlcjogZnRyYWNlCisjCisjICAgICAgICAgICBUQVNLLVBJRCAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTgorIyAgICAgICAgICAgICAgfCB8ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfAorICAgICAgICAgICAgYmFzaC00MDQzICBbMDFdICAgMTE1LjI4MTY0NDogZmluaXNoX3Rhc2tfc3dpdGNoIDwtc2NoZWR1bGUKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAxXSAgIDExNS4yODE2NDU6IGhydGlja19zZXQgPC1zY2hlZHVsZQorICAgICAgICAgICAgYmFzaC00MDQzICBbMDFdICAgMTE1LjI4MTY0NTogaHJ0aWNrX2NsZWFyIDwtaHJ0aWNrX3NldAorICAgICAgICAgICAgYmFzaC00MDQzICBbMDFdICAgMTE1LjI4MTY0Njogd2FpdF9mb3JfY29tcGxldGlvbiA8LV9fc3RvcF9tYWNoaW5lX3J1bgorICAgICAgICAgICAgYmFzaC00MDQzICBbMDFdICAgMTE1LjI4MTY0Nzogd2FpdF9mb3JfY29tbW9uIDwtd2FpdF9mb3JfY29tcGxldGlvbgorICAgICAgICAgICAgYmFzaC00MDQzICBbMDFdICAgMTE1LjI4MTY0Nzoga3RocmVhZF9zdG9wIDwtc3RvcF9tYWNoaW5lX3J1bgorICAgICAgICAgICAgYmFzaC00MDQzICBbMDFdICAgMTE1LjI4MTY0ODogaW5pdF93YWl0cXVldWVfaGVhZCA8LWt0aHJlYWRfc3RvcAorICAgICAgICAgICAgYmFzaC00MDQzICBbMDFdICAgMTE1LjI4MTY0ODogd2FrZV91cF9wcm9jZXNzIDwta3RocmVhZF9zdG9wCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMV0gICAxMTUuMjgxNjQ5OiB0cnlfdG9fd2FrZV91cCA8LXdha2VfdXBfcHJvY2VzcworCitXZSBjYW4gc2VlIHRoYXQgdGhlcmUncyBubyBtb3JlIGxvY2sgb3IgcHJlZW1wdCB0cmFjaW5nLgorCitmdHJhY2VkCistLS0tLS0tCisKK0FzIG1lbnRpb25lZCBhYm92ZSwgd2hlbiBkeW5hbWljIGZ0cmFjZSBpcyBjb25maWd1cmVkIGluLCBhIGtlcm5lbAordGhyZWFkIHdha2VzIHVwIG9uY2UgYSBzZWNvbmQgYW5kIGNoZWNrcyB0byBzZWUgaWYgdGhlcmUgYXJlIG1jb3VudAorY2FsbHMgdGhhdCBuZWVkIHRvIGJlIGNvbnZlcnRlZCBpbnRvIG5vcHMuIElmIHRoZXJlIGFyZSBub3QgYW55LCB0aGVuCitpdCBzaW1wbHkgZ29lcyBiYWNrIHRvIHNsZWVwLiBCdXQgaWYgdGhlcmUgYXJlIHNvbWUsIGl0IHdpbGwgY2FsbAora3N0b3BfbWFjaGluZSB0byBjb252ZXJ0IHRoZSBjYWxscyB0byBub3BzLgorCitUaGVyZSBtYXkgYmUgYSBjYXNlIHRoYXQgeW91IGRvIG5vdCB3YW50IHRoaXMgYWRkZWQgbGF0ZW5jeS4KK1BlcmhhcHMgeW91IGFyZSBkb2luZyBzb21lIGF1ZGlvIHJlY29yZGluZyBhbmQgdGhpcyBhY3Rpdml0eSBtaWdodAorY2F1c2Ugc2tpcHMgaW4gdGhlIHBsYXliYWNrLiBUaGVyZSBpcyBhbiBpbnRlcmZhY2UgdG8gZGlzYWJsZQorYW5kIGVuYWJsZSB0aGUgZnRyYWNlZCBrZXJuZWwgdGhyZWFkLgorCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy9mdHJhY2VkX2VuYWJsZWQKKworVGhpcyB3aWxsIGRpc2FibGUgdGhlIGNhbGxpbmcgb2YgdGhlIGtzdG9wX21hY2hpbmUgdG8gdXBkYXRlIHRoZQorbWNvdW50IGNhbGxzIHRvIG5vcHMuIFJlbWVtYmVyIHRoYXQgdGhlcmUncyBhIGxhcmdlIG92ZXJoZWFkCit0byBjYWxsaW5nIG1jb3VudC4gV2l0aG91dCB0aGlzIGtlcm5lbCB0aHJlYWQsIHRoYXQgb3ZlcmhlYWQgd2lsbAorZXhpc3QuCisKK0lmIHRoZXJlIGFyZSByZWNvcmRlZCBjYWxscyB0byBtY291bnQsIGFueSB3cml0ZSB0byB0aGUgZnRyYWNlZF9lbmFibGVkCitmaWxlIHdpbGwgY2F1c2UgdGhlIGtzdG9wX21hY2hpbmUgdG8gcnVuLiBUaGlzIG1lYW5zIHRoYXQgYQordXNlciBjYW4gbWFudWFsbHkgcGVyZm9ybSB0aGUgdXBkYXRlcyB3aGVuIHRoZXkgd2FudCB0byBieSBzaW1wbHkKK2VjaG9pbmcgYSAnMCcgaW50byB0aGUgZnRyYWNlZF9lbmFibGVkIGZpbGUuCisKK1RoZSB1cGRhdGVzIGFyZSBhbHNvIGRvbmUgYXQgdGhlIGJlZ2lubmluZyBvZiBlbmFibGluZyBhIHRyYWNlcgordGhhdCB1c2VzIGZ0cmFjZSBmdW5jdGlvbiByZWNvcmRpbmcuCisKKwordHJhY2VfcGlwZQorLS0tLS0tLS0tLQorCitUaGUgdHJhY2VfcGlwZSBvdXRwdXRzIHRoZSBzYW1lIGFzIHRyYWNlLCBidXQgdGhlIGVmZmVjdCBvbiB0aGUKK3RyYWNpbmcgaXMgZGlmZmVyZW50LiBFdmVyeSByZWFkIGZyb20gdHJhY2VfcGlwZSBpcyBjb25zdW1lZC4KK1RoaXMgbWVhbnMgdGhhdCBzdWJzZXF1ZW50IHJlYWRzIHdpbGwgYmUgZGlmZmVyZW50LiBUaGUgdHJhY2UKK2lzIGxpdmUuCisKKyAjIGVjaG8gZnRyYWNlID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyAjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZV9waXBlID4gL3RtcC90cmFjZS5vdXQgJgorWzFdIDQxNTMKKyAjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgdXNsZWVwIDEKKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlCisjIHRyYWNlcjogZnRyYWNlCisjCisjICAgICAgICAgICBUQVNLLVBJRCAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTgorIyAgICAgICAgICAgICAgfCB8ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfAorCisgIworICMgY2F0IC90bXAvdHJhY2Uub3V0CisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTA2OiBmaW5pc2hfdGFza19zd2l0Y2ggPC1zY2hlZHVsZQorICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzEwNjogaHJ0aWNrX3NldCA8LXNjaGVkdWxlCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTA3OiBocnRpY2tfY2xlYXIgPC1ocnRpY2tfc2V0CisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTA4OiB3YWl0X2Zvcl9jb21wbGV0aW9uIDwtX19zdG9wX21hY2hpbmVfcnVuCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTA4OiB3YWl0X2Zvcl9jb21tb24gPC13YWl0X2Zvcl9jb21wbGV0aW9uCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTA5OiBrdGhyZWFkX3N0b3AgPC1zdG9wX21hY2hpbmVfcnVuCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTA5OiBpbml0X3dhaXRxdWV1ZV9oZWFkIDwta3RocmVhZF9zdG9wCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTEwOiB3YWtlX3VwX3Byb2Nlc3MgPC1rdGhyZWFkX3N0b3AKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMTA6IHRyeV90b193YWtlX3VwIDwtd2FrZV91cF9wcm9jZXNzCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTExOiBzZWxlY3RfdGFza19ycV9ydCA8LXRyeV90b193YWtlX3VwCisKKworTm90ZSwgcmVhZGluZyB0aGUgdHJhY2VfcGlwZSB3aWxsIGJsb2NrIHVudGlsIG1vcmUgaW5wdXQgaXMgYWRkZWQuCitCeSBjaGFuZ2luZyB0aGUgdHJhY2VyLCB0cmFjZV9waXBlIHdpbGwgaXNzdWUgYW4gRU9GLiBXZSBuZWVkZWQKK3RvIHNldCB0aGUgZnRyYWNlIHRyYWNlciBfYmVmb3JlXyBjYXRpbmcgdGhlIHRyYWNlX3BpcGUgZmlsZS4KKworCit0cmFjZSBlbnRyaWVzCistLS0tLS0tLS0tLS0tCisKK0hhdmluZyB0b28gbXVjaCBvciBub3QgZW5vdWdoIGRhdGEgY2FuIGJlIHRyb3VibGVzb21lIGluIGRpYWdub3NpbmcKK3NvbWUgaXNzdWUgaW4gdGhlIGtlcm5lbC4gVGhlIGZpbGUgdHJhY2VfZW50cmllcyBpcyB1c2VkIHRvIG1vZGlmeQordGhlIHNpemUgb2YgdGhlIGludGVybmFsIHRyYWNlIGJ1ZmZlcnMuIFRoZSBudW1iZXIgbGlzdGVkCitpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgdGhhdCBjYW4gYmUgcmVjb3JkZWQgcGVyIENQVS4gVG8ga25vdwordGhlIGZ1bGwgc2l6ZSwgbXVsdGlwbHkgdGhlIG51bWJlciBvZiBwb3NzaWJsZSBDUFVTIHdpdGggdGhlCitudW1iZXIgb2YgZW50cmllcy4KKworICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKKzY1NjIwCisKK05vdGUsIHRvIG1vZGlmeSB0aGlzLCB5b3UgbXVzdCBoYXZlIHRyYWNpbmcgY29tcGxldGVseSBkaXNhYmxlZC4gVG8gZG8gdGhhdCwKK2VjaG8gIm5vbmUiIGludG8gdGhlIGN1cnJlbnRfdHJhY2VyLgorCisgIyBlY2hvIG5vbmUgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorICMgZWNobyAxMDAwMDAgPiAvZGVidWcvdHJhY2luZy90cmFjZV9lbnRyaWVzCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2VfZW50cmllcworMTAwMDQ1CisKKworTm90aWNlIHRoYXQgd2UgZWNob2VkIGluIDEwMCwwMDAgYnV0IHRoZSBzaXplIGlzIDEwMCwwNDUuIFRoZSBlbnRyaWVzCithcmUgaGVsZCBieSBpbmRpdmlkdWFsIHBhZ2VzLiBJdCBhbGxvY2F0ZXMgdGhlIG51bWJlciBvZiBwYWdlcyBpdCB0YWtlcwordG8gZnVsZmlsbCB0aGUgcmVxdWVzdC4gSWYgbW9yZSBlbnRyaWVzIG1heSBmaXQgb24gdGhlIGxhc3QgcGFnZQoraXQgd2lsbCBhZGQgdGhlbS4KKworICMgZWNobyAxID4gL2RlYnVnL3RyYWNpbmcvdHJhY2VfZW50cmllcworICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKKzg1CisKK1RoaXMgc2hvd3MgdXMgdGhhdCA4NSBlbnRyaWVzIGNhbiBmaXQgb24gYSBzaW5nbGUgcGFnZS4KKworVGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IHdpbGwgYmUgYWxsb2NhdGVkIGlzIGEgcGVyY2VudGFnZSBvZiBhdmFpbGFibGUKK21lbW9yeS4gQWxsb2NhdGluZyB0b28gbXVjaCB3aWxsIHByb2R1Y2UgYW4gZXJyb3IuCisKKyAjIGVjaG8gMTAwMDAwMDAwMDAwMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKKy1iYXNoOiBlY2hvOiB3cml0ZSBlcnJvcjogQ2Fubm90IGFsbG9jYXRlIG1lbW9yeQorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKKzg1CisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2J1c3Nlcy9pMmMtaTgxMCBiL0RvY3VtZW50YXRpb24vaTJjL2J1c3Nlcy9pMmMtaTgxMApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzc4MjEwZS4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2kyYy9idXNzZXMvaTJjLWk4MTAKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi1LZXJuZWwgZHJpdmVyIGkyYy1pODEwCi0KLVN1cHBvcnRlZCBhZGFwdGVyczoKLSAgKiBJbnRlbCA4MjgxMCwgODI4MTAtREMxMDAsIDgyODEwRSwgYW5kIDgyODE1IChHTUNIKQotICAqIEludGVsIDgyODQ1RyAoR01DSCkKLQotQXV0aG9yczogCi0JRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5sPiwgCi0JUGhpbGlwIEVkZWxicm9jayA8cGhpbEBuZXRyb2VkZ2UuY29tPiwKLSAgICAgICAgS3nDtnN0aSBNw6Rsa2tpIDxrbWFsa2tpQGNjLmh1dC5maT4sCi0JUmFscGggTWV0emxlciA8cmprbUB0aHAudW5pLWtvZWxuLmRlPiwKLQlNYXJrIEQuIFN0dWRlYmFrZXIgPG1kc3h5ejEyM0B5YWhvby5jb20+Ci0KLU1haW4gY29udGFjdDogTWFyayBTdHVkZWJha2VyIDxtZHN4eXoxMjNAeWFob28uY29tPgotCi1EZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tIAotCi1XQVJOSU5HOiBJZiB5b3UgaGF2ZSBhbiAnODEwJyBvciAnODE1JyBtb3RoZXJib2FyZCwgeW91ciBzdGFuZGFyZCBJMkMKLXRlbXBlcmF0dXJlIHNlbnNvcnMgYXJlIG1vc3QgbGlrZWx5IG9uIHRoZSA4MDEncyBJMkMgYnVzLiBZb3Ugd2FudCB0aGUKLWkyYy1pODAxIGRyaXZlciBmb3IgdGhvc2UsIG5vdCB0aGlzIGRyaXZlci4KLQotTm93IGZvciB0aGUgaTJjLWk4MTAuLi4KLQotVGhlIEdNQ0ggY2hpcCBjb250YWlucyB0d28gSTJDIGludGVyZmFjZXMuCi0KLVRoZSBmaXJzdCBpbnRlcmZhY2UgaXMgdXNlZCBmb3IgRERDIChEYXRhIERpc3BsYXkgQ2hhbm5lbCkgd2hpY2ggaXMgYQotc2VyaWFsIGNoYW5uZWwgdGhyb3VnaCB0aGUgVkdBIG1vbml0b3IgY29ubmVjdG9yIHRvIGEgRERDLWNvbXBsaWFudAotbW9uaXRvci4gVGhpcyBpbnRlcmZhY2UgaXMgZGVmaW5lZCBieSB0aGUgVmlkZW8gRWxlY3Ryb25pY3MgU3RhbmRhcmRzCi1Bc3NvY2lhdGlvbiAoVkVTQSkuIFRoZSBzdGFuZGFyZHMgYXJlIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UgYXQKLWh0dHA6Ly93d3cudmVzYS5vcmcgLgotCi1UaGUgc2Vjb25kIGludGVyZmFjZSBpcyBhIGdlbmVyYWwtcHVycG9zZSBJMkMgYnVzLiBJdCBtYXkgYmUgY29ubmVjdGVkIHRvIGEKLVRWLW91dCBjaGlwIHN1Y2ggYXMgdGhlIEJUODY5IG9yIHBvc3NpYmx5IHRvIGEgZGlnaXRhbCBmbGF0LXBhbmVsIGRpc3BsYXkuCi0KLUZlYXR1cmVzCi0tLS0tLS0tLSAKLQotQm90aCBidXNzZXMgdXNlIHRoZSBpMmMtYWxnby1iaXQgZHJpdmVyIGZvciAnYml0IGJhbmdpbmcnCi1hbmQgc3VwcG9ydCBmb3Igc3BlY2lmaWMgdHJhbnNhY3Rpb25zIGlzIHByb3ZpZGVkIGJ5IGkyYy1hbGdvLWJpdC4KLQotSXNzdWVzCi0tLS0tLS0KLQotSWYgeW91IGVuYWJsZSBidXMgdGVzdGluZyBpbiBpMmMtYWxnby1iaXQgKGluc21vZCBpMmMtYWxnby1iaXQgYml0X3Rlc3Q9MSksCi10aGUgdGVzdCBtYXkgZmFpbDsgaWYgc28sIHRoZSBpMmMtaTgxMCBkcml2ZXIgd29uJ3QgYmUgaW5zZXJ0ZWQuIEhvd2V2ZXIsCi13ZSB0aGluayB0aGlzIGhhcyBiZWVuIGZpeGVkLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvYnVzc2VzL2kyYy1wcm9zYXZhZ2UgYi9Eb2N1bWVudGF0aW9uL2kyYy9idXNzZXMvaTJjLXByb3NhdmFnZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzAzNjg3OS4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2kyYy9idXNzZXMvaTJjLXByb3NhdmFnZQorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLUtlcm5lbCBkcml2ZXIgaTJjLXByb3NhdmFnZQotCi1TdXBwb3J0ZWQgYWRhcHRlcnM6Ci0JCi0JUzMvVklBIEtNMjY2L1ZUODM3NSBha2EgUHJvU2F2YWdlOCAKLQlTMy9WSUEgS00xMzMvVlQ4MzY1IGFrYSBTYXZhZ2U0IAotCi1BdXRob3I6IEhlbmsgVmVyZ29uZXQgPGhlbmtAZ29kLmR5bmRucy5vcmc+Ci0KLURlc2NyaXB0aW9uCi0tLS0tLS0tLS0tLQotCi1UaGUgU2F2YWdlNCBjaGlwcyBjb250YWluIHR3byBJMkMgaW50ZXJmYWNlcyAoYWthIGEgSTJDICdtYXN0ZXInIG9yCi0naG9zdCcpLiAKLQotVGhlIGZpcnN0IGludGVyZmFjZSBpcyB1c2VkIGZvciBEREMgKERhdGEgRGlzcGxheSBDaGFubmVsKSB3aGljaCBpcyBhCi1zZXJpYWwgY2hhbm5lbCB0aHJvdWdoIHRoZSBWR0EgbW9uaXRvciBjb25uZWN0b3IgdG8gYSBEREMtY29tcGxpYW50Ci1tb25pdG9yLiBUaGlzIGludGVyZmFjZSBpcyBkZWZpbmVkIGJ5IHRoZSBWaWRlbyBFbGVjdHJvbmljcyBTdGFuZGFyZHMKLUFzc29jaWF0aW9uIChWRVNBKS4gVGhlIHN0YW5kYXJkcyBhcmUgYXZhaWxhYmxlIGZvciBwdXJjaGFzZSBhdAotaHR0cDovL3d3dy52ZXNhLm9yZyAuIFRoZSBzZWNvbmQgaW50ZXJmYWNlIGlzIGEgZ2VuZXJhbC1wdXJwb3NlIEkyQyBidXMuCi0KLVVzZWZ1bGwgZm9yIGdhaW5pbmcgYWNjZXNzIHRvIHRoZSBUViBFbmNvZGVyIGNoaXBzLgotCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9idXNzZXMvaTJjLXNhdmFnZTQgYi9Eb2N1bWVudGF0aW9uL2kyYy9idXNzZXMvaTJjLXNhdmFnZTQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlY2NlYWIuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi9pMmMvYnVzc2VzL2kyYy1zYXZhZ2U0CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotS2VybmVsIGRyaXZlciBpMmMtc2F2YWdlNAotCi1TdXBwb3J0ZWQgYWRhcHRlcnM6Ci0gICogU2F2YWdlNAotICAqIFNhdmFnZTIwMDAKLQotQXV0aG9yczogCi0JQWxleGFuZGVyIFdvbGQgPGF3b2xkQGJpZ2Zvb3QuY29tPiwKLQlNYXJrIEQuIFN0dWRlYmFrZXIgPG1kc3h5ejEyM0B5YWhvby5jb20+IAotCi1EZXNjcmlwdGlvbgotLS0tLS0tLS0tLS0KLQotVGhlIFNhdmFnZTQgY2hpcHMgY29udGFpbiB0d28gSTJDIGludGVyZmFjZXMgKGFrYSBhIEkyQyAnbWFzdGVyJwotb3IgJ2hvc3QnKS4gCi0KLVRoZSBmaXJzdCBpbnRlcmZhY2UgaXMgdXNlZCBmb3IgRERDIChEYXRhIERpc3BsYXkgQ2hhbm5lbCkgd2hpY2ggaXMgYQotc2VyaWFsIGNoYW5uZWwgdGhyb3VnaCB0aGUgVkdBIG1vbml0b3IgY29ubmVjdG9yIHRvIGEgRERDLWNvbXBsaWFudAotbW9uaXRvci4gVGhpcyBpbnRlcmZhY2UgaXMgZGVmaW5lZCBieSB0aGUgVmlkZW8gRWxlY3Ryb25pY3MgU3RhbmRhcmRzCi1Bc3NvY2lhdGlvbiAoVkVTQSkuIFRoZSBzdGFuZGFyZHMgYXJlIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UgYXQKLWh0dHA6Ly93d3cudmVzYS5vcmcgLiBUaGUgRERDIGJ1cyBpcyBub3QgeWV0IHN1cHBvcnRlZCBiZWNhdXNlIGl0cyByZWdpc3RlcgotaXMgbm90IGRpcmVjdGx5IG1lbW9yeS1tYXBwZWQuCi0KLVRoZSBzZWNvbmQgaW50ZXJmYWNlIGlzIGEgZ2VuZXJhbC1wdXJwb3NlIEkyQyBidXMuIFRoaXMgaXMgdGhlIG9ubHkKLWludGVyZmFjZSBzdXBwb3J0ZWQgYnkgdGhlIGRyaXZlciBhdCB0aGUgbW9tZW50LgotCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9mYXVsdC1jb2RlcyBiL0RvY3VtZW50YXRpb24vaTJjL2ZhdWx0LWNvZGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NTc2NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2kyYy9mYXVsdC1jb2RlcwpAQCAtMCwwICsxLDEyNyBAQAorVGhpcyBpcyBhIHN1bW1hcnkgb2YgdGhlIG1vc3QgaW1wb3J0YW50IGNvbnZlbnRpb25zIGZvciB1c2Ugb2YgZmF1bHQKK2NvZGVzIGluIHRoZSBJMkMvU01CdXMgc3RhY2suCisKKworQSAiRmF1bHQiIGlzIG5vdCBhbHdheXMgYW4gIkVycm9yIgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTm90IGFsbCBmYXVsdCByZXBvcnRzIGltcGx5IGVycm9yczsgInBhZ2UgZmF1bHRzIiBzaG91bGQgYmUgYSBmYW1pbGlhcgorZXhhbXBsZS4gIFNvZnR3YXJlIG9mdGVuIHJldHJpZXMgaWRlbXBvdGVudCBvcGVyYXRpb25zIGFmdGVyIHRyYW5zaWVudAorZmF1bHRzLiAgVGhlcmUgbWF5IGJlIGZhbmNpZXIgcmVjb3Zlcnkgc2NoZW1lcyB0aGF0IGFyZSBhcHByb3ByaWF0ZSBpbgorc29tZSBjYXNlcywgc3VjaCBhcyByZS1pbml0aWFsaXppbmcgKGFuZCBtYXliZSByZXNldHRpbmcpLiAgQWZ0ZXIgc3VjaAorcmVjb3ZlcnksIHRyaWdnZXJlZCBieSBhIGZhdWx0IHJlcG9ydCwgdGhlcmUgaXMgbm8gZXJyb3IuCisKK0luIGEgc2ltaWxhciB3YXksIHNvbWV0aW1lcyBhICJmYXVsdCIgY29kZSBqdXN0IHJlcG9ydHMgb25lIGRlZmluZWQKK3Jlc3VsdCBmb3IgYW4gb3BlcmF0aW9uIC4uLiBpdCBkb2Vzbid0IGluZGljYXRlIHRoYXQgYW55dGhpbmcgaXMgd3JvbmcKK2F0IGFsbCwganVzdCB0aGF0IHRoZSBvdXRjb21lIHdhc24ndCBvbiB0aGUgImdvbGRlbiBwYXRoIi4KKworSW4gc2hvcnQsIHlvdXIgSTJDIGRyaXZlciBjb2RlIG1heSBuZWVkIHRvIGtub3cgdGhlc2UgY29kZXMgaW4gb3JkZXIKK3RvIHJlc3BvbmQgY29ycmVjdGx5LiAgT3RoZXIgY29kZSBtYXkgbmVlZCB0byByZWx5IG9uIFlPVVIgY29kZSByZXBvcnRpbmcKK3RoZSByaWdodCBmYXVsdCBjb2RlLCBzbyB0aGF0IGl0IGNhbiAoaW4gdHVybikgYmVoYXZlIGNvcnJlY3RseS4KKworCitJMkMgYW5kIFNNQnVzIGZhdWx0IGNvZGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUaGVzZSBhcmUgcmV0dXJuZWQgYXMgbmVnYXRpdmUgbnVtYmVycyBmcm9tIG1vc3QgY2FsbHMsIHdpdGggemVybyBvcgorc29tZSBwb3NpdGl2ZSBudW1iZXIgaW5kaWNhdGluZyBhIG5vbi1mYXVsdCByZXR1cm4uICBUaGUgc3BlY2lmaWMKK251bWJlcnMgYXNzb2NpYXRlZCB3aXRoIHRoZXNlIHN5bWJvbHMgZGlmZmVyIGJldHdlZW4gYXJjaGl0ZWN0dXJlcywKK3Rob3VnaCBtb3N0IExpbnV4IHN5c3RlbXMgdXNlIDxhc20tZ2VuZXJpYy9lcnJubyouaD4gbnVtYmVyaW5nLgorCitOb3RlIHRoYXQgdGhlIGRlc2NyaXB0aW9ucyBoZXJlIGFyZSBub3QgZXhoYXVzdGl2ZS4gIFRoZXJlIGFyZSBvdGhlcgorY29kZXMgdGhhdCBtYXkgYmUgcmV0dXJuZWQsIGFuZCBvdGhlciBjYXNlcyB3aGVyZSB0aGVzZSBjb2RlcyBzaG91bGQKK2JlIHJldHVybmVkLiAgSG93ZXZlciwgZHJpdmVycyBzaG91bGQgbm90IHJldHVybiBvdGhlciBjb2RlcyBmb3IgdGhlc2UKK2Nhc2VzICh1bmxlc3MgdGhlIGhhcmR3YXJlIGRvZXNuJ3QgcHJvdmlkZSB1bmlxdWUgZmF1bHQgcmVwb3J0cykuCisKK0Fsc28sIGNvZGVzIHJldHVybmVkIGJ5IGFkYXB0ZXIgcHJvYmUgbWV0aG9kcyBmb2xsb3cgcnVsZXMgd2hpY2ggYXJlCitzcGVjaWZpYyB0byB0aGVpciBob3N0IGJ1cyAoc3VjaCBhcyBQQ0ksIG9yIHRoZSBwbGF0Zm9ybSBidXMpLgorCisKK0VBR0FJTgorCVJldHVybmVkIGJ5IEkyQyBhZGFwdGVycyB3aGVuIHRoZXkgbG9zZSBhcmJpdHJhdGlvbiBpbiBtYXN0ZXIKKwl0cmFuc21pdCBtb2RlOiAgc29tZSBvdGhlciBtYXN0ZXIgd2FzIHRyYW5zbWl0dGluZyBkaWZmZXJlbnQKKwlkYXRhIGF0IHRoZSBzYW1lIHRpbWUuCisKKwlBbHNvIHJldHVybmVkIHdoZW4gdHJ5aW5nIHRvIGludm9rZSBhbiBJMkMgb3BlcmF0aW9uIGluIGFuCisJYXRvbWljIGNvbnRleHQsIHdoZW4gc29tZSB0YXNrIGlzIGFscmVhZHkgdXNpbmcgdGhhdCBJMkMgYnVzCisJdG8gZXhlY3V0ZSBzb21lIG90aGVyIG9wZXJhdGlvbi4KKworRUJBRE1TRworCVJldHVybmVkIGJ5IFNNQnVzIGxvZ2ljIHdoZW4gYW4gaW52YWxpZCBQYWNrZXQgRXJyb3IgQ29kZSBieXRlCisJaXMgcmVjZWl2ZWQuICBUaGlzIGNvZGUgaXMgYSBDUkMgY292ZXJpbmcgYWxsIGJ5dGVzIGluIHRoZQorCXRyYW5zYWN0aW9uLCBhbmQgaXMgc2VudCBiZWZvcmUgdGhlIHRlcm1pbmF0aW5nIFNUT1AuICBUaGlzCisJZmF1bHQgaXMgb25seSByZXBvcnRlZCBvbiByZWFkIHRyYW5zYWN0aW9uczsgdGhlIFNNQnVzIHNsYXZlCisJbWF5IGhhdmUgYSB3YXkgdG8gcmVwb3J0IFBFQyBtaXNtYXRjaGVzIG9uIHdyaXRlcyBmcm9tIHRoZQorCWhvc3QuICBOb3RlIHRoYXQgZXZlbiBpZiBQRUNzIGFyZSBpbiB1c2UsIHlvdSBzaG91bGQgbm90IHJlbHkKKwlvbiB0aGVzZSBhcyB0aGUgb25seSB3YXkgdG8gZGV0ZWN0IGluY29ycmVjdCBkYXRhIHRyYW5zZmVycy4KKworRUJVU1kKKwlSZXR1cm5lZCBieSBTTUJ1cyBhZGFwdGVycyB3aGVuIHRoZSBidXMgd2FzIGJ1c3kgZm9yIGxvbmdlcgorCXRoYW4gYWxsb3dlZC4gIFRoaXMgdXN1YWxseSBpbmRpY2F0ZXMgc29tZSBkZXZpY2UgKG1heWJlIHRoZQorCVNNQnVzIGFkYXB0ZXIpIG5lZWRzIHNvbWUgZmF1bHQgcmVjb3ZlcnkgKHN1Y2ggYXMgcmVzZXR0aW5nKSwKKwlvciB0aGF0IHRoZSByZXNldCB3YXMgYXR0ZW1wdGVkIGJ1dCBmYWlsZWQuCisKK0VJTlZBTAorCVRoaXMgcmF0aGVyIHZhZ3VlIGVycm9yIG1lYW5zIGFuIGludmFsaWQgcGFyYW1ldGVyIGhhcyBiZWVuCisJZGV0ZWN0ZWQgYmVmb3JlIGFueSBJL08gb3BlcmF0aW9uIHdhcyBzdGFydGVkLiAgVXNlIGEgbW9yZQorCXNwZWNpZmljIGZhdWx0IGNvZGUgd2hlbiB5b3UgY2FuLgorCisJT25lIGV4YW1wbGUgd291bGQgYmUgYSBkcml2ZXIgdHJ5aW5nIGFuIFNNQnVzIEJsb2NrIFdyaXRlCisJd2l0aCBibG9jayBzaXplIG91dHNpZGUgdGhlIHJhbmdlIG9mIDEtMzIgYnl0ZXMuCisKK0VJTworCVRoaXMgcmF0aGVyIHZhZ3VlIGVycm9yIG1lYW5zIHNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4KKwlwZXJmb3JtaW5nIGFuIEkvTyBvcGVyYXRpb24uICBVc2UgYSBtb3JlIHNwZWNpZmljIGZhdWx0CisJY29kZSB3aGVuIHlvdSBjYW4uCisKK0VOT0RFVgorCVJldHVybmVkIGJ5IGRyaXZlciBwcm9iZSgpIG1ldGhvZHMuICBUaGlzIGlzIGEgYml0IG1vcmUKKwlzcGVjaWZpYyB0aGFuIEVOWElPLCBpbXBseWluZyB0aGUgcHJvYmxlbSBpc24ndCB3aXRoIHRoZQorCWFkZHJlc3MsIGJ1dCB3aXRoIHRoZSBkZXZpY2UgZm91bmQgdGhlcmUuICBEcml2ZXIgcHJvYmVzCisJbWF5IHZlcmlmeSB0aGUgZGV2aWNlIHJldHVybnMgKmNvcnJlY3QqIHJlc3BvbnNlcywgYW5kCisJcmV0dXJuIHRoaXMgYXMgYXBwcm9wcmlhdGUuICAoVGhlIGRyaXZlciBjb3JlIHdpbGwgd2FybgorCWFib3V0IHByb2JlIGZhdWx0cyBvdGhlciB0aGFuIEVOWElPIGFuZCBFTk9ERVYuKQorCitFTk9NRU0KKwlSZXR1cm5lZCBieSBhbnkgY29tcG9uZW50IHRoYXQgY2FuJ3QgYWxsb2NhdGUgbWVtb3J5IHdoZW4KKwlpdCBuZWVkcyB0byBkbyBzby4KKworRU5YSU8KKwlSZXR1cm5lZCBieSBJMkMgYWRhcHRlcnMgdG8gaW5kaWNhdGUgdGhhdCB0aGUgYWRkcmVzcyBwaGFzZQorCW9mIGEgdHJhbnNmZXIgZGlkbid0IGdldCBhbiBBQ0suICBXaGlsZSBpdCBtaWdodCBqdXN0IG1lYW4KKwlhbiBJMkMgZGV2aWNlIHdhcyB0ZW1wb3JhcmlseSBub3QgcmVzcG9uZGluZywgdXN1YWxseSBpdAorCW1lYW5zIHRoZXJlJ3Mgbm90aGluZyBsaXN0ZW5pbmcgYXQgdGhhdCBhZGRyZXNzLgorCisJUmV0dXJuZWQgYnkgZHJpdmVyIHByb2JlKCkgbWV0aG9kcyB0byBpbmRpY2F0ZSB0aGF0IHRoZXkKKwlmb3VuZCBubyBkZXZpY2UgdG8gYmluZCB0by4gIChFTk9ERVYgbWF5IGFsc28gYmUgdXNlZC4pCisKK0VPUE5PVFNVUFAKKwlSZXR1cm5lZCBieSBhbiBhZGFwdGVyIHdoZW4gYXNrZWQgdG8gcGVyZm9ybSBhbiBvcGVyYXRpb24KKwl0aGF0IGl0IGRvZXNuJ3QsIG9yIGNhbid0LCBzdXBwb3J0LgorCisJRm9yIGV4YW1wbGUsIHRoaXMgd291bGQgYmUgcmV0dXJuZWQgd2hlbiBhbiBhZGFwdGVyIHRoYXQKKwlkb2Vzbid0IHN1cHBvcnQgU01CdXMgYmxvY2sgdHJhbnNmZXJzIGlzIGFza2VkIHRvIGV4ZWN1dGUKKwlvbmUuICBJbiB0aGF0IGNhc2UsIHRoZSBkcml2ZXIgbWFraW5nIHRoYXQgcmVxdWVzdCBzaG91bGQKKwloYXZlIHZlcmlmaWVkIHRoYXQgZnVuY3Rpb25hbGl0eSB3YXMgc3VwcG9ydGVkIGJlZm9yZSBpdAorCW1hZGUgdGhhdCBibG9jayB0cmFuc2ZlciByZXF1ZXN0LgorCisJU2ltaWxhcmx5LCBpZiBhbiBJMkMgYWRhcHRlciBjYW4ndCBleGVjdXRlIGFsbCBsZWdhbCBJMkMKKwltZXNzYWdlcywgaXQgc2hvdWxkIHJldHVybiB0aGlzIHdoZW4gYXNrZWQgdG8gcGVyZm9ybSBhCisJdHJhbnNhY3Rpb24gaXQgY2FuJ3QuICAoVGhlc2UgbGltaXRhdGlvbnMgY2FuJ3QgYmUgc2VlbiBpbgorCXRoZSBhZGFwdGVyJ3MgZnVuY3Rpb25hbGl0eSBtYXNrLCBzaW5jZSB0aGUgYXNzdW1wdGlvbiBpcworCXRoYXQgaWYgYW4gYWRhcHRlciBzdXBwb3J0cyBJMkMgaXQgc3VwcG9ydHMgYWxsIG9mIEkyQy4pCisKK0VQUk9UTworCVJldHVybmVkIHdoZW4gc2xhdmUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgcmVsZXZhbnQgSTJDCisJb3IgU01CdXMgKG9yIGNoaXAtc3BlY2lmaWMpIHByb3RvY29sIHNwZWNpZmljYXRpb25zLiAgT25lCisJY2FzZSBpcyB3aGVuIHRoZSBsZW5ndGggb2YgYW4gU01CdXMgYmxvY2sgZGF0YSByZXNwb25zZQorCShmcm9tIHRoZSBTTUJ1cyBzbGF2ZSkgaXMgb3V0c2lkZSB0aGUgcmFuZ2UgMS0zMiBieXRlcy4KKworRVRJTUVET1VUCisJVGhpcyBpcyByZXR1cm5lZCBieSBkcml2ZXJzIHdoZW4gYW4gb3BlcmF0aW9uIHRvb2sgdG9vIG11Y2gKKwl0aW1lLCBhbmQgd2FzIGFib3J0ZWQgYmVmb3JlIGl0IGNvbXBsZXRlZC4KKworCVNNQnVzIGFkYXB0ZXJzIG1heSByZXR1cm4gaXQgd2hlbiBhbiBvcGVyYXRpb24gdG9vayBtb3JlCisJdGltZSB0aGFuIGFsbG93ZWQgYnkgdGhlIFNNQnVzIHNwZWNpZmljYXRpb247IGZvciBleGFtcGxlLAorCXdoZW4gYSBzbGF2ZSBzdHJldGNoZXMgY2xvY2tzIHRvbyBmYXIuICBJMkMgaGFzIG5vIHN1Y2gKKwl0aW1lb3V0cywgYnV0IGl0J3Mgbm9ybWFsIGZvciBJMkMgYWRhcHRlcnMgdG8gaW1wb3NlIHNvbWUKKwlhcmJpdHJhcnkgbGltaXRzIChtdWNoIGxvbmdlciB0aGFuIFNNQnVzISkgdG9vLgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9zbWJ1cy1wcm90b2NvbCBiL0RvY3VtZW50YXRpb24vaTJjL3NtYnVzLXByb3RvY29sCmluZGV4IDAzZjA4ZmIuLjI0YmZiNjVkIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2kyYy9zbWJ1cy1wcm90b2NvbAorKysgYi9Eb2N1bWVudGF0aW9uL2kyYy9zbWJ1cy1wcm90b2NvbApAQCAtNDIsOCArNDIsOCBAQAogWy4uXTogRGF0YSBzZW50IGJ5IEkyQyBkZXZpY2UsIGFzIG9wcG9zZWQgdG8gZGF0YSBzZW50IGJ5IHRoZSBob3N0IGFkYXB0ZXIuCiAKIAotU01CdXMgUXVpY2sgQ29tbWFuZDogIGkyY19zbWJ1c193cml0ZV9xdWljaygpCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK1NNQnVzIFF1aWNrIENvbW1hbmQKKz09PT09PT09PT09PT09PT09PT0KIAogVGhpcyBzZW5kcyBhIHNpbmdsZSBiaXQgdG8gdGhlIGRldmljZSwgYXQgdGhlIHBsYWNlIG9mIHRoZSBSZC9XciBiaXQuCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL3dyaXRpbmctY2xpZW50cyBiL0RvY3VtZW50YXRpb24vaTJjL3dyaXRpbmctY2xpZW50cwppbmRleCBlZTc1Y2JhLi42YjYxYjNhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2kyYy93cml0aW5nLWNsaWVudHMKKysrIGIvRG9jdW1lbnRhdGlvbi9pMmMvd3JpdGluZy1jbGllbnRzCkBAIC0yNSwxNCArMjUsMjkgQEAKIHByb3ZpZGUuICBBIGNsaWVudCBzdHJ1Y3R1cmUgaG9sZHMgZGV2aWNlLXNwZWNpZmljIGluZm9ybWF0aW9uIGxpa2UgdGhlCiBkcml2ZXIgbW9kZWwgZGV2aWNlIG5vZGUsIGFuZCBpdHMgSTJDIGFkZHJlc3MuCiAKKy8qIGlmZiBkcml2ZXIgdXNlcyBkcml2ZXIgbW9kZWwgKCJuZXcgc3R5bGUiKSBiaW5kaW5nIG1vZGVsOiAqLworCitzdGF0aWMgc3RydWN0IGkyY19kZXZpY2VfaWQgZm9vX2lkdGFibGVbXSA9IHsKKwl7ICJmb28iLCBteV9pZF9mb3JfZm9vIH0sCisJeyAiYmFyIiwgbXlfaWRfZm9yX2JhciB9LAorCXsgfQorfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIGZvb19pZHRhYmxlKTsKKwogc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGZvb19kcml2ZXIgPSB7CiAJLmRyaXZlciA9IHsKIAkJLm5hbWUJPSAiZm9vIiwKIAl9LAogCiAJLyogaWZmIGRyaXZlciB1c2VzIGRyaXZlciBtb2RlbCAoIm5ldyBzdHlsZSIpIGJpbmRpbmcgbW9kZWw6ICovCisJLmlkX3RhYmxlCT0gZm9vX2lkcywKIAkucHJvYmUJCT0gZm9vX3Byb2JlLAogCS5yZW1vdmUJCT0gZm9vX3JlbW92ZSwKKwkvKiBpZiBkZXZpY2UgYXV0b2RldGVjdGlvbiBpcyBuZWVkZWQ6ICovCisJLmNsYXNzCQk9IEkyQ19DTEFTU19TT01FVEhJTkcsCisJLmRldGVjdAkJPSBmb29fZGV0ZWN0LAorCS5hZGRyZXNzX2RhdGEJPSAmYWRkcl9kYXRhLAogCiAJLyogZWxzZSwgZHJpdmVyIHVzZXMgImxlZ2FjeSIgYmluZGluZyBtb2RlbDogKi8KIAkuYXR0YWNoX2FkYXB0ZXIJPSBmb29fYXR0YWNoX2FkYXB0ZXIsCkBAIC0xNzMsMTAgKzE4OCw5IEBACiAoemVybyBub3QgYSBuZWdhdGl2ZSBzdGF0dXMgY29kZSkgaXQgbWF5IHNhdmUgdGhlIGhhbmRsZSBhbmQgdXNlIGl0IHVudGlsCiBmb29fcmVtb3ZlKCkgcmV0dXJucy4gIFRoYXQgYmluZGluZyBtb2RlbCBpcyB1c2VkIGJ5IG1vc3QgTGludXggZHJpdmVycy4KIAotRHJpdmVycyBtYXRjaCBkZXZpY2VzIHdoZW4gaTJjX2NsaWVudC5kcml2ZXJfbmFtZSBhbmQgdGhlIGRyaXZlciBuYW1lIGFyZQotdGhlIHNhbWU7IHRoaXMgYXBwcm9hY2ggaXMgdXNlZCBpbiBzZXZlcmFsIG90aGVyIGJ1c3NlcyB0aGF0IGRvbid0IGhhdmUKLWRldmljZSB0eXBpbmcgc3VwcG9ydCBpbiB0aGUgaGFyZHdhcmUuICBUaGUgZHJpdmVyIGFuZCBtb2R1bGUgbmFtZSBzaG91bGQKLW1hdGNoLCBzbyBob3RwbHVnL2NvbGRwbHVnIG1lY2hhbmlzbXMgd2lsbCBtb2Rwcm9iZSB0aGUgZHJpdmVyLgorVGhlIHByb2JlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGFuIGVudHJ5IGluIHRoZSBpZF90YWJsZSBuYW1lIGZpZWxkCittYXRjaGVzIHRoZSBkZXZpY2UncyBuYW1lLiBJdCBpcyBwYXNzZWQgdGhlIGVudHJ5IHRoYXQgd2FzIG1hdGNoZWQgc28KK3RoZSBkcml2ZXIga25vd3Mgd2hpY2ggb25lIGluIHRoZSB0YWJsZSBtYXRjaGVkLgogCiAKIERldmljZSBDcmVhdGlvbiAoU3RhbmRhcmQgZHJpdmVyIG1vZGVsKQpAQCAtMjA3LDYgKzIyMSwzMSBAQAogcmVmZXJlbmNlIGZvciBsYXRlciB1c2UuCiAKIAorRGV2aWNlIERldGVjdGlvbiAoU3RhbmRhcmQgZHJpdmVyIG1vZGVsKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTb21ldGltZXMgeW91IGRvIG5vdCBrbm93IGluIGFkdmFuY2Ugd2hpY2ggSTJDIGRldmljZXMgYXJlIGNvbm5lY3RlZCB0bworYSBnaXZlbiBJMkMgYnVzLiAgVGhpcyBpcyBmb3IgZXhhbXBsZSB0aGUgY2FzZSBvZiBoYXJkd2FyZSBtb25pdG9yaW5nCitkZXZpY2VzIG9uIGEgUEMncyBTTUJ1cy4gIEluIHRoYXQgY2FzZSwgeW91IG1heSB3YW50IHRvIGxldCB5b3VyIGRyaXZlcgorZGV0ZWN0IHN1cHBvcnRlZCBkZXZpY2VzIGF1dG9tYXRpY2FsbHkuICBUaGlzIGlzIGhvdyB0aGUgbGVnYWN5IG1vZGVsCit3YXMgd29ya2luZywgYW5kIGlzIG5vdyBhdmFpbGFibGUgYXMgYW4gZXh0ZW5zaW9uIHRvIHRoZSBzdGFuZGFyZAorZHJpdmVyIG1vZGVsIChzbyB0aGF0IHdlIGNhbiBmaW5hbGx5IGdldCByaWQgb2YgdGhlIGxlZ2FjeSBtb2RlbC4pCisKK1lvdSBzaW1wbHkgaGF2ZSB0byBkZWZpbmUgYSBkZXRlY3QgY2FsbGJhY2sgd2hpY2ggd2lsbCBhdHRlbXB0IHRvCitpZGVudGlmeSBzdXBwb3J0ZWQgZGV2aWNlcyAocmV0dXJuaW5nIDAgZm9yIHN1cHBvcnRlZCBvbmVzIGFuZCAtRU5PREVWCitmb3IgdW5zdXBwb3J0ZWQgb25lcyksIGEgbGlzdCBvZiBhZGRyZXNzZXMgdG8gcHJvYmUsIGFuZCBhIGRldmljZSB0eXBlCisob3IgY2xhc3MpIHNvIHRoYXQgb25seSBJMkMgYnVzZXMgd2hpY2ggbWF5IGhhdmUgdGhhdCB0eXBlIG9mIGRldmljZQorY29ubmVjdGVkIChhbmQgbm90IG90aGVyd2lzZSBlbnVtZXJhdGVkKSB3aWxsIGJlIHByb2JlZC4gIFRoZSBpMmMKK2NvcmUgd2lsbCB0aGVuIGNhbGwgeW91IGJhY2sgYXMgbmVlZGVkIGFuZCB3aWxsIGluc3RhbnRpYXRlIGEgZGV2aWNlCitmb3IgeW91IGZvciBldmVyeSBzdWNjZXNzZnVsIGRldGVjdGlvbi4KKworTm90ZSB0aGF0IHRoaXMgbWVjaGFuaXNtIGlzIHB1cmVseSBvcHRpb25hbCBhbmQgbm90IHN1aXRhYmxlIGZvciBhbGwKK2RldmljZXMuICBZb3UgbmVlZCBzb21lIHJlbGlhYmxlIHdheSB0byBpZGVudGlmeSB0aGUgc3VwcG9ydGVkIGRldmljZXMKKyh0eXBpY2FsbHkgdXNpbmcgZGV2aWNlLXNwZWNpZmljLCBkZWRpY2F0ZWQgaWRlbnRpZmljYXRpb24gcmVnaXN0ZXJzKSwKK290aGVyd2lzZSBtaXNkZXRlY3Rpb25zIGFyZSBsaWtlbHkgdG8gb2NjdXIgYW5kIHRoaW5ncyBjYW4gZ2V0IHdyb25nCitxdWlja2x5LgorCisKIERldmljZSBEZWxldGlvbiAoU3RhbmRhcmQgZHJpdmVyIG1vZGVsKQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTU1OSw3ICs1OTgsNiBAQAogICBpbiB0ZXJtcyBvZiBpdC4gTmV2ZXIgdXNlIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkhCiAKIAotICBleHRlcm4gczMyIGkyY19zbWJ1c193cml0ZV9xdWljayhzdHJ1Y3QgaTJjX2NsaWVudCAqIGNsaWVudCwgdTggdmFsdWUpOwogICBleHRlcm4gczMyIGkyY19zbWJ1c19yZWFkX2J5dGUoc3RydWN0IGkyY19jbGllbnQgKiBjbGllbnQpOwogICBleHRlcm4gczMyIGkyY19zbWJ1c193cml0ZV9ieXRlKHN0cnVjdCBpMmNfY2xpZW50ICogY2xpZW50LCB1OCB2YWx1ZSk7CiAgIGV4dGVybiBzMzIgaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICogY2xpZW50LCB1OCBjb21tYW5kKTsKQEAgLTU2OCwzMCArNjA2LDMxIEBACiAgIGV4dGVybiBzMzIgaTJjX3NtYnVzX3JlYWRfd29yZF9kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICogY2xpZW50LCB1OCBjb21tYW5kKTsKICAgZXh0ZXJuIHMzMiBpMmNfc21idXNfd3JpdGVfd29yZF9kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICogY2xpZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggY29tbWFuZCwgdTE2IHZhbHVlKTsKKyAgZXh0ZXJuIHMzMiBpMmNfc21idXNfcmVhZF9ibG9ja19kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICogY2xpZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggY29tbWFuZCwgdTggKnZhbHVlcyk7CiAgIGV4dGVybiBzMzIgaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEoc3RydWN0IGkyY19jbGllbnQgKiBjbGllbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggY29tbWFuZCwgdTggbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4ICp2YWx1ZXMpOwogICBleHRlcm4gczMyIGkyY19zbWJ1c19yZWFkX2kyY19ibG9ja19kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICogY2xpZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IGNvbW1hbmQsIHU4IGxlbmd0aCwgdTggKnZhbHVlcyk7Ci0KLVRoZXNlIG9uZXMgd2VyZSByZW1vdmVkIGluIExpbnV4IDIuNi4xMCBiZWNhdXNlIHRoZXkgaGFkIG5vIHVzZXJzLCBidXQgY291bGQKLWJlIGFkZGVkIGJhY2sgbGF0ZXIgaWYgbmVlZGVkOgotCi0gIGV4dGVybiBzMzIgaTJjX3NtYnVzX3JlYWRfYmxvY2tfZGF0YShzdHJ1Y3QgaTJjX2NsaWVudCAqIGNsaWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IGNvbW1hbmQsIHU4ICp2YWx1ZXMpOwogICBleHRlcm4gczMyIGkyY19zbWJ1c193cml0ZV9pMmNfYmxvY2tfZGF0YShzdHJ1Y3QgaTJjX2NsaWVudCAqIGNsaWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggY29tbWFuZCwgdTggbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCAqdmFsdWVzKTsKKworVGhlc2Ugb25lcyB3ZXJlIHJlbW92ZWQgZnJvbSBpMmMtY29yZSBiZWNhdXNlIHRoZXkgaGFkIG5vIHVzZXJzLCBidXQgY291bGQKK2JlIGFkZGVkIGJhY2sgbGF0ZXIgaWYgbmVlZGVkOgorCisgIGV4dGVybiBzMzIgaTJjX3NtYnVzX3dyaXRlX3F1aWNrKHN0cnVjdCBpMmNfY2xpZW50ICogY2xpZW50LCB1OCB2YWx1ZSk7CiAgIGV4dGVybiBzMzIgaTJjX3NtYnVzX3Byb2Nlc3NfY2FsbChzdHJ1Y3QgaTJjX2NsaWVudCAqIGNsaWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IGNvbW1hbmQsIHUxNiB2YWx1ZSk7CiAgIGV4dGVybiBzMzIgaTJjX3NtYnVzX2Jsb2NrX3Byb2Nlc3NfY2FsbChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggY29tbWFuZCwgdTggbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggKnZhbHVlcykKIAotQWxsIHRoZXNlIHRyYW5zYWN0aW9ucyByZXR1cm4gLTEgb24gZmFpbHVyZS4gVGhlICd3cml0ZScgdHJhbnNhY3Rpb25zIAotcmV0dXJuIDAgb24gc3VjY2VzczsgdGhlICdyZWFkJyB0cmFuc2FjdGlvbnMgcmV0dXJuIHRoZSByZWFkIHZhbHVlLCBleGNlcHQgCi1mb3IgcmVhZF9ibG9jaywgd2hpY2ggcmV0dXJucyB0aGUgbnVtYmVyIG9mIHZhbHVlcyByZWFkLiBUaGUgYmxvY2sgYnVmZmVycyAKLW5lZWQgbm90IGJlIGxvbmdlciB0aGFuIDMyIGJ5dGVzLgorQWxsIHRoZXNlIHRyYW5zYWN0aW9ucyByZXR1cm4gYSBuZWdhdGl2ZSBlcnJubyB2YWx1ZSBvbiBmYWlsdXJlLiBUaGUgJ3dyaXRlJwordHJhbnNhY3Rpb25zIHJldHVybiAwIG9uIHN1Y2Nlc3M7IHRoZSAncmVhZCcgdHJhbnNhY3Rpb25zIHJldHVybiB0aGUgcmVhZAordmFsdWUsIGV4Y2VwdCBmb3IgYmxvY2sgdHJhbnNhY3Rpb25zLCB3aGljaCByZXR1cm4gdGhlIG51bWJlciBvZiB2YWx1ZXMKK3JlYWQuIFRoZSBibG9jayBidWZmZXJzIG5lZWQgbm90IGJlIGxvbmdlciB0aGFuIDMyIGJ5dGVzLgogCiBZb3UgY2FuIHJlYWQgdGhlIGZpbGUgYHNtYnVzLXByb3RvY29sJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUKIGFjdHVhbCBTTUJ1cyBwcm90b2NvbC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTM4Ni9ib290LnR4dCBiL0RvY3VtZW50YXRpb24vaTM4Ni9ib290LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTVhZDE1Yy4uMDAwMDAwMAotLS0gYS9Eb2N1bWVudGF0aW9uL2kzODYvYm9vdC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ODcgKzAsMCBAQAotCQkgICAgIFRIRSBMSU5VWC9JMzg2IEJPT1QgUFJPVE9DT0wKLQkJICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQkJICAgIEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotCQkJTGFzdCB1cGRhdGUgMjAwNy0wNS0yMwotCi1PbiB0aGUgaTM4NiBwbGF0Zm9ybSwgdGhlIExpbnV4IGtlcm5lbCB1c2VzIGEgcmF0aGVyIGNvbXBsaWNhdGVkIGJvb3QKLWNvbnZlbnRpb24uICBUaGlzIGhhcyBldm9sdmVkIHBhcnRpYWxseSBkdWUgdG8gaGlzdG9yaWNhbCBhc3BlY3RzLCBhcwotd2VsbCBhcyB0aGUgZGVzaXJlIGluIHRoZSBlYXJseSBkYXlzIHRvIGhhdmUgdGhlIGtlcm5lbCBpdHNlbGYgYmUgYQotYm9vdGFibGUgaW1hZ2UsIHRoZSBjb21wbGljYXRlZCBQQyBtZW1vcnkgbW9kZWwgYW5kIGR1ZSB0byBjaGFuZ2VkCi1leHBlY3RhdGlvbnMgaW4gdGhlIFBDIGluZHVzdHJ5IGNhdXNlZCBieSB0aGUgZWZmZWN0aXZlIGRlbWlzZSBvZgotcmVhbC1tb2RlIERPUyBhcyBhIG1haW5zdHJlYW0gb3BlcmF0aW5nIHN5c3RlbS4KLQotQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIHZlcnNpb25zIG9mIHRoZSBMaW51eC9pMzg2IGJvb3QgcHJvdG9jb2wgZXhpc3QuCi0KLU9sZCBrZXJuZWxzOgl6SW1hZ2UvSW1hZ2Ugc3VwcG9ydCBvbmx5LiAgU29tZSB2ZXJ5IGVhcmx5IGtlcm5lbHMKLQkJbWF5IG5vdCBldmVuIHN1cHBvcnQgYSBjb21tYW5kIGxpbmUuCi0KLVByb3RvY29sIDIuMDA6CShLZXJuZWwgMS4zLjczKSBBZGRlZCBiekltYWdlIGFuZCBpbml0cmQgc3VwcG9ydCwgYXMKLQkJd2VsbCBhcyBhIGZvcm1hbGl6ZWQgd2F5IHRvIGNvbW11bmljYXRlIGJldHdlZW4gdGhlCi0JCWJvb3QgbG9hZGVyIGFuZCB0aGUga2VybmVsLiAgc2V0dXAuUyBtYWRlIHJlbG9jYXRhYmxlLAotCQlhbHRob3VnaCB0aGUgdHJhZGl0aW9uYWwgc2V0dXAgYXJlYSBzdGlsbCBhc3N1bWVkCi0JCXdyaXRhYmxlLgotCi1Qcm90b2NvbCAyLjAxOgkoS2VybmVsIDEuMy43NikgQWRkZWQgYSBoZWFwIG92ZXJydW4gd2FybmluZy4KLQotUHJvdG9jb2wgMi4wMjoJKEtlcm5lbCAyLjQuMC10ZXN0My1wcmUzKSBOZXcgY29tbWFuZCBsaW5lIHByb3RvY29sLgotCQlMb3dlciB0aGUgY29udmVudGlvbmFsIG1lbW9yeSBjZWlsaW5nLglObyBvdmVyd3JpdGUKLQkJb2YgdGhlIHRyYWRpdGlvbmFsIHNldHVwIGFyZWEsIHRodXMgbWFraW5nIGJvb3RpbmcKLQkJc2FmZSBmb3Igc3lzdGVtcyB3aGljaCB1c2UgdGhlIEVCREEgZnJvbSBTTU0gb3IgMzItYml0Ci0JCUJJT1MgZW50cnkgcG9pbnRzLiAgekltYWdlIGRlcHJlY2F0ZWQgYnV0IHN0aWxsCi0JCXN1cHBvcnRlZC4KLQotUHJvdG9jb2wgMi4wMzoJKEtlcm5lbCAyLjQuMTgtcHJlMSkgRXhwbGljaXRseSBtYWtlcyB0aGUgaGlnaGVzdCBwb3NzaWJsZQotCQlpbml0cmQgYWRkcmVzcyBhdmFpbGFibGUgdG8gdGhlIGJvb3Rsb2FkZXIuCi0KLVByb3RvY29sIDIuMDQ6CShLZXJuZWwgMi42LjE0KSBFeHRlbmQgdGhlIHN5c3NpemUgZmllbGQgdG8gZm91ciBieXRlcy4KLQotUHJvdG9jb2wgMi4wNToJKEtlcm5lbCAyLjYuMjApIE1ha2UgcHJvdGVjdGVkIG1vZGUga2VybmVsIHJlbG9jYXRhYmxlLgotCQlJbnRyb2R1Y2UgcmVsb2NhdGFibGVfa2VybmVsIGFuZCBrZXJuZWxfYWxpZ25tZW50IGZpZWxkcy4KLQotUHJvdG9jb2wgMi4wNjoJKEtlcm5lbCAyLjYuMjIpIEFkZGVkIGEgZmllbGQgdGhhdCBjb250YWlucyB0aGUgc2l6ZSBvZgotCQl0aGUgYm9vdCBjb21tYW5kIGxpbmUuCi0KLVByb3RvY29sIDIuMDc6CShLZXJuZWwgMi42LjI0KSBBZGRlZCBwYXJhdmlydHVhbGlzZWQgYm9vdCBwcm90b2NvbC4KLQkJSW50cm9kdWNlZCBoYXJkd2FyZV9zdWJhcmNoIGFuZCBoYXJkd2FyZV9zdWJhcmNoX2RhdGEKLQkJYW5kIEtFRVBfU0VHTUVOVFMgZmxhZyBpbiBsb2FkX2ZsYWdzLgotCi1Qcm90b2NvbCAyLjA4OgkoS2VybmVsIDIuNi4yNikgQWRkZWQgY3JjMzIgY2hlY2tzdW0gYW5kIEVMRiBmb3JtYXQKLQkJcGF5bG9hZC4gSW50cm9kdWNlZCBwYXlsb2FkX29mZnNldCBhbmQgcGF5bG9hZCBsZW5ndGgKLQkJZmllbGRzIHRvIGFpZCBpbiBsb2NhdGluZyB0aGUgcGF5bG9hZC4KLQotUHJvdG9jb2wgMi4wOToJKEtlcm5lbCAyLjYuMjYpIEFkZGVkIGEgZmllbGQgb2YgNjQtYml0IHBoeXNpY2FsCi0JCXBvaW50ZXIgdG8gc2luZ2xlIGxpbmtlZCBsaXN0IG9mIHN0cnVjdAlzZXR1cF9kYXRhLgotCi0qKioqIE1FTU9SWSBMQVlPVVQKLQotVGhlIHRyYWRpdGlvbmFsIG1lbW9yeSBtYXAgZm9yIHRoZSBrZXJuZWwgbG9hZGVyLCB1c2VkIGZvciBJbWFnZSBvcgotekltYWdlIGtlcm5lbHMsIHR5cGljYWxseSBsb29rcyBsaWtlOgotCi0JfAkJCSB8Ci0wQTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBSZXNlcnZlZCBmb3IgQklPUwkgfAlEbyBub3QgdXNlLiAgUmVzZXJ2ZWQgZm9yIEJJT1MgRUJEQS4KLTA5QTAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIENvbW1hbmQgbGluZQkJIHwKLQl8ICBTdGFjay9oZWFwCQkgfAlGb3IgdXNlIGJ5IHRoZSBrZXJuZWwgcmVhbC1tb2RlIGNvZGUuCi0wOTgwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsJCi0JfCAgS2VybmVsIHNldHVwCQkgfAlUaGUga2VybmVsIHJlYWwtbW9kZSBjb2RlLgotMDkwMjAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgS2VybmVsIGJvb3Qgc2VjdG9yCSB8CVRoZSBrZXJuZWwgbGVnYWN5IGJvb3Qgc2VjdG9yLgotMDkwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgUHJvdGVjdGVkLW1vZGUga2VybmVsIHwJVGhlIGJ1bGsgb2YgdGhlIGtlcm5lbCBpbWFnZS4KLTAxMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIEJvb3QgbG9hZGVyCQkgfAk8LSBCb290IHNlY3RvciBlbnRyeSBwb2ludCAwMDAwOjdDMDAKLTAwMTAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIFJlc2VydmVkIGZvciBNQlIvQklPUyB8Ci0wMDA4MDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBUeXBpY2FsbHkgdXNlZCBieSBNQlIgfAotMDAwNjAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIAotCXwgIEJJT1MgdXNlIG9ubHkJIHwKLTAwMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCi0KLVdoZW4gdXNpbmcgYnpJbWFnZSwgdGhlIHByb3RlY3RlZC1tb2RlIGtlcm5lbCB3YXMgcmVsb2NhdGVkIHRvCi0weDEwMDAwMCAoImhpZ2ggbWVtb3J5IiksIGFuZCB0aGUga2VybmVsIHJlYWwtbW9kZSBibG9jayAoYm9vdCBzZWN0b3IsCi1zZXR1cCwgYW5kIHN0YWNrL2hlYXApIHdhcyBtYWRlIHJlbG9jYXRhYmxlIHRvIGFueSBhZGRyZXNzIGJldHdlZW4KLTB4MTAwMDAgYW5kIGVuZCBvZiBsb3cgbWVtb3J5LiBVbmZvcnR1bmF0ZWx5LCBpbiBwcm90b2NvbHMgMi4wMCBhbmQKLTIuMDEgdGhlIDB4OTAwMDArIG1lbW9yeSByYW5nZSBpcyBzdGlsbCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGtlcm5lbDsKLXRoZSAyLjAyIHByb3RvY29sIHJlc29sdmVzIHRoYXQgcHJvYmxlbS4KLQotSXQgaXMgZGVzaXJhYmxlIHRvIGtlZXAgdGhlICJtZW1vcnkgY2VpbGluZyIgLS0gdGhlIGhpZ2hlc3QgcG9pbnQgaW4KLWxvdyBtZW1vcnkgdG91Y2hlZCBieSB0aGUgYm9vdCBsb2FkZXIgLS0gYXMgbG93IGFzIHBvc3NpYmxlLCBzaW5jZQotc29tZSBuZXdlciBCSU9TZXMgaGF2ZSBiZWd1biB0byBhbGxvY2F0ZSBzb21lIHJhdGhlciBsYXJnZSBhbW91bnRzIG9mCi1tZW1vcnksIGNhbGxlZCB0aGUgRXh0ZW5kZWQgQklPUyBEYXRhIEFyZWEsIG5lYXIgdGhlIHRvcCBvZiBsb3cKLW1lbW9yeS4JIFRoZSBib290IGxvYWRlciBzaG91bGQgdXNlIHRoZSAiSU5UIDEyaCIgQklPUyBjYWxsIHRvIHZlcmlmeQotaG93IG11Y2ggbG93IG1lbW9yeSBpcyBhdmFpbGFibGUuCi0KLVVuZm9ydHVuYXRlbHksIGlmIElOVCAxMmggcmVwb3J0cyB0aGF0IHRoZSBhbW91bnQgb2YgbWVtb3J5IGlzIHRvbwotbG93LCB0aGVyZSBpcyB1c3VhbGx5IG5vdGhpbmcgdGhlIGJvb3QgbG9hZGVyIGNhbiBkbyBidXQgdG8gcmVwb3J0IGFuCi1lcnJvciB0byB0aGUgdXNlci4gIFRoZSBib290IGxvYWRlciBzaG91bGQgdGhlcmVmb3JlIGJlIGRlc2lnbmVkIHRvCi10YWtlIHVwIGFzIGxpdHRsZSBzcGFjZSBpbiBsb3cgbWVtb3J5IGFzIGl0IHJlYXNvbmFibHkgY2FuLiAgRm9yCi16SW1hZ2Ugb3Igb2xkIGJ6SW1hZ2Uga2VybmVscywgd2hpY2ggbmVlZCBkYXRhIHdyaXR0ZW4gaW50byB0aGUKLTB4OTAwMDAgc2VnbWVudCwgdGhlIGJvb3QgbG9hZGVyIHNob3VsZCBtYWtlIHN1cmUgbm90IHRvIHVzZSBtZW1vcnkKLWFib3ZlIHRoZSAweDlBMDAwIHBvaW50OyB0b28gbWFueSBCSU9TZXMgd2lsbCBicmVhayBhYm92ZSB0aGF0IHBvaW50LgotCi1Gb3IgYSBtb2Rlcm4gYnpJbWFnZSBrZXJuZWwgd2l0aCBib290IHByb3RvY29sIHZlcnNpb24gPj0gMi4wMiwgYQotbWVtb3J5IGxheW91dCBsaWtlIHRoZSBmb2xsb3dpbmcgaXMgc3VnZ2VzdGVkOgotCi0JfiAgICAgICAgICAgICAgICAgICAgICAgIH4KLSAgICAgICAgfCAgUHJvdGVjdGVkLW1vZGUga2VybmVsIHwKLTEwMDAwMCAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBJL08gbWVtb3J5IGhvbGUJIHwKLTBBMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIFJlc2VydmVkIGZvciBCSU9TCSB8CUxlYXZlIGFzIG11Y2ggYXMgcG9zc2libGUgdW51c2VkCi0JfiAgICAgICAgICAgICAgICAgICAgICAgIH4KLQl8ICBDb21tYW5kIGxpbmUJCSB8CShDYW4gYWxzbyBiZSBiZWxvdyB0aGUgWCsxMDAwMCBtYXJrKQotWCsxMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIFN0YWNrL2hlYXAJCSB8CUZvciB1c2UgYnkgdGhlIGtlcm5lbCByZWFsLW1vZGUgY29kZS4KLVgrMDgwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsJCi0JfCAgS2VybmVsIHNldHVwCQkgfAlUaGUga2VybmVsIHJlYWwtbW9kZSBjb2RlLgotCXwgIEtlcm5lbCBib290IHNlY3RvcgkgfAlUaGUga2VybmVsIGxlZ2FjeSBib290IHNlY3Rvci4KLVggICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBCb290IGxvYWRlcgkJIHwJPC0gQm9vdCBzZWN0b3IgZW50cnkgcG9pbnQgMDAwMDo3QzAwCi0wMDEwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBSZXNlcnZlZCBmb3IgTUJSL0JJT1MgfAotMDAwODAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgVHlwaWNhbGx5IHVzZWQgYnkgTUJSIHwKLTAwMDYwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAKLQl8ICBCSU9TIHVzZSBvbmx5CSB8Ci0wMDAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQotLi4uIHdoZXJlIHRoZSBhZGRyZXNzIFggaXMgYXMgbG93IGFzIHRoZSBkZXNpZ24gb2YgdGhlIGJvb3QgbG9hZGVyCi1wZXJtaXRzLgotCi0KLSoqKiogVEhFIFJFQUwtTU9ERSBLRVJORUwgSEVBREVSCi0KLUluIHRoZSBmb2xsb3dpbmcgdGV4dCwgYW5kIGFueXdoZXJlIGluIHRoZSBrZXJuZWwgYm9vdCBzZXF1ZW5jZSwgImEKLXNlY3RvciIgcmVmZXJzIHRvIDUxMiBieXRlcy4gIEl0IGlzIGluZGVwZW5kZW50IG9mIHRoZSBhY3R1YWwgc2VjdG9yCi1zaXplIG9mIHRoZSB1bmRlcmx5aW5nIG1lZGl1bS4KLQotVGhlIGZpcnN0IHN0ZXAgaW4gbG9hZGluZyBhIExpbnV4IGtlcm5lbCBzaG91bGQgYmUgdG8gbG9hZCB0aGUKLXJlYWwtbW9kZSBjb2RlIChib290IHNlY3RvciBhbmQgc2V0dXAgY29kZSkgYW5kIHRoZW4gZXhhbWluZSB0aGUKLWZvbGxvd2luZyBoZWFkZXIgYXQgb2Zmc2V0IDB4MDFmMS4gIFRoZSByZWFsLW1vZGUgY29kZSBjYW4gdG90YWwgdXAgdG8KLTMySywgYWx0aG91Z2ggdGhlIGJvb3QgbG9hZGVyIG1heSBjaG9vc2UgdG8gbG9hZCBvbmx5IHRoZSBmaXJzdCB0d28KLXNlY3RvcnMgKDFLKSBhbmQgdGhlbiBleGFtaW5lIHRoZSBib290dXAgc2VjdG9yIHNpemUuCi0KLVRoZSBoZWFkZXIgbG9va3MgbGlrZToKLQotT2Zmc2V0CVByb3RvCU5hbWUJCU1lYW5pbmcKLS9TaXplCi0KLTAxRjEvMQlBTEwoMQlzZXR1cF9zZWN0cwlUaGUgc2l6ZSBvZiB0aGUgc2V0dXAgaW4gc2VjdG9ycwotMDFGMi8yCUFMTAlyb290X2ZsYWdzCUlmIHNldCwgdGhlIHJvb3QgaXMgbW91bnRlZCByZWFkb25seQotMDFGNC80CTIuMDQrKDIJc3lzc2l6ZQkJVGhlIHNpemUgb2YgdGhlIDMyLWJpdCBjb2RlIGluIDE2LWJ5dGUgcGFyYXMKLTAxRjgvMglBTEwJcmFtX3NpemUJRE8gTk9UIFVTRSAtIGZvciBib290c2VjdC5TIHVzZSBvbmx5Ci0wMUZBLzIJQUxMCXZpZF9tb2RlCVZpZGVvIG1vZGUgY29udHJvbAotMDFGQy8yCUFMTAlyb290X2RldglEZWZhdWx0IHJvb3QgZGV2aWNlIG51bWJlcgotMDFGRS8yCUFMTAlib290X2ZsYWcJMHhBQTU1IG1hZ2ljIG51bWJlcgotMDIwMC8yCTIuMDArCWp1bXAJCUp1bXAgaW5zdHJ1Y3Rpb24KLTAyMDIvNAkyLjAwKwloZWFkZXIJCU1hZ2ljIHNpZ25hdHVyZSAiSGRyUyIKLTAyMDYvMgkyLjAwKwl2ZXJzaW9uCQlCb290IHByb3RvY29sIHZlcnNpb24gc3VwcG9ydGVkCi0wMjA4LzQJMi4wMCsJcmVhbG1vZGVfc3d0Y2gJQm9vdCBsb2FkZXIgaG9vayAoc2VlIGJlbG93KQotMDIwQy8yCTIuMDArCXN0YXJ0X3N5cwlUaGUgbG9hZC1sb3cgc2VnbWVudCAoMHgxMDAwKSAob2Jzb2xldGUpCi0wMjBFLzIJMi4wMCsJa2VybmVsX3ZlcnNpb24JUG9pbnRlciB0byBrZXJuZWwgdmVyc2lvbiBzdHJpbmcKLTAyMTAvMQkyLjAwKwl0eXBlX29mX2xvYWRlcglCb290IGxvYWRlciBpZGVudGlmaWVyCi0wMjExLzEJMi4wMCsJbG9hZGZsYWdzCUJvb3QgcHJvdG9jb2wgb3B0aW9uIGZsYWdzCi0wMjEyLzIJMi4wMCsJc2V0dXBfbW92ZV9zaXplCU1vdmUgdG8gaGlnaCBtZW1vcnkgc2l6ZSAodXNlZCB3aXRoIGhvb2tzKQotMDIxNC80CTIuMDArCWNvZGUzMl9zdGFydAlCb290IGxvYWRlciBob29rIChzZWUgYmVsb3cpCi0wMjE4LzQJMi4wMCsJcmFtZGlza19pbWFnZQlpbml0cmQgbG9hZCBhZGRyZXNzIChzZXQgYnkgYm9vdCBsb2FkZXIpCi0wMjFDLzQJMi4wMCsJcmFtZGlza19zaXplCWluaXRyZCBzaXplIChzZXQgYnkgYm9vdCBsb2FkZXIpCi0wMjIwLzQJMi4wMCsJYm9vdHNlY3Rfa2x1ZGdlCURPIE5PVCBVU0UgLSBmb3IgYm9vdHNlY3QuUyB1c2Ugb25seQotMDIyNC8yCTIuMDErCWhlYXBfZW5kX3B0cglGcmVlIG1lbW9yeSBhZnRlciBzZXR1cCBlbmQKLTAyMjYvMglOL0EJcGFkMQkJVW51c2VkCi0wMjI4LzQJMi4wMisJY21kX2xpbmVfcHRyCTMyLWJpdCBwb2ludGVyIHRvIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lCi0wMjJDLzQJMi4wMysJaW5pdHJkX2FkZHJfbWF4CUhpZ2hlc3QgbGVnYWwgaW5pdHJkIGFkZHJlc3MKLTAyMzAvNAkyLjA1KwlrZXJuZWxfYWxpZ25tZW50IFBoeXNpY2FsIGFkZHIgYWxpZ25tZW50IHJlcXVpcmVkIGZvciBrZXJuZWwKLTAyMzQvMQkyLjA1KwlyZWxvY2F0YWJsZV9rZXJuZWwgV2hldGhlciBrZXJuZWwgaXMgcmVsb2NhdGFibGUgb3Igbm90Ci0wMjM1LzMJTi9BCXBhZDIJCVVudXNlZAotMDIzOC80CTIuMDYrCWNtZGxpbmVfc2l6ZQlNYXhpbXVtIHNpemUgb2YgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUKLTAyM0MvNAkyLjA3KwloYXJkd2FyZV9zdWJhcmNoIEhhcmR3YXJlIHN1YmFyY2hpdGVjdHVyZQotMDI0MC84CTIuMDcrCWhhcmR3YXJlX3N1YmFyY2hfZGF0YSBTdWJhcmNoaXRlY3R1cmUtc3BlY2lmaWMgZGF0YQotMDI0OC80CTIuMDgrCXBheWxvYWRfb2Zmc2V0CU9mZnNldCBvZiBrZXJuZWwgcGF5bG9hZAotMDI0Qy80CTIuMDgrCXBheWxvYWRfbGVuZ3RoCUxlbmd0aCBvZiBrZXJuZWwgcGF5bG9hZAotMDI1MC84CTIuMDkrCXNldHVwX2RhdGEJNjQtYml0IHBoeXNpY2FsIHBvaW50ZXIgdG8gbGlua2VkIGxpc3QKLQkJCQlvZiBzdHJ1Y3Qgc2V0dXBfZGF0YQotCi0oMSkgRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBpZiB0aGUgc2V0dXBfc2VjdHMgZmllbGQgY29udGFpbnMgMCwgdGhlCi0gICAgcmVhbCB2YWx1ZSBpcyA0LgotCi0oMikgRm9yIGJvb3QgcHJvdG9jb2wgcHJpb3IgdG8gMi4wNCwgdGhlIHVwcGVyIHR3byBieXRlcyBvZiB0aGUgc3lzc2l6ZQotICAgIGZpZWxkIGFyZSB1bnVzYWJsZSwgd2hpY2ggbWVhbnMgdGhlIHNpemUgb2YgYSBiekltYWdlIGtlcm5lbAotICAgIGNhbm5vdCBiZSBkZXRlcm1pbmVkLgotCi1JZiB0aGUgIkhkclMiICgweDUzNzI2NDQ4KSBtYWdpYyBudW1iZXIgaXMgbm90IGZvdW5kIGF0IG9mZnNldCAweDIwMiwKLXRoZSBib290IHByb3RvY29sIHZlcnNpb24gaXMgIm9sZCIuICBMb2FkaW5nIGFuIG9sZCBrZXJuZWwsIHRoZQotZm9sbG93aW5nIHBhcmFtZXRlcnMgc2hvdWxkIGJlIGFzc3VtZWQ6Ci0KLQlJbWFnZSB0eXBlID0gekltYWdlCi0JaW5pdHJkIG5vdCBzdXBwb3J0ZWQKLQlSZWFsLW1vZGUga2VybmVsIG11c3QgYmUgbG9jYXRlZCBhdCAweDkwMDAwLgotCi1PdGhlcndpc2UsIHRoZSAidmVyc2lvbiIgZmllbGQgY29udGFpbnMgdGhlIHByb3RvY29sIHZlcnNpb24sCi1lLmcuIHByb3RvY29sIHZlcnNpb24gMi4wMSB3aWxsIGNvbnRhaW4gMHgwMjAxIGluIHRoaXMgZmllbGQuICBXaGVuCi1zZXR0aW5nIGZpZWxkcyBpbiB0aGUgaGVhZGVyLCB5b3UgbXVzdCBtYWtlIHN1cmUgb25seSB0byBzZXQgZmllbGRzCi1zdXBwb3J0ZWQgYnkgdGhlIHByb3RvY29sIHZlcnNpb24gaW4gdXNlLgotCi0KLSoqKiogREVUQUlMUyBPRiBIRUFERVIgRklFTERTCi0KLUZvciBlYWNoIGZpZWxkLCBzb21lIGFyZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBrZXJuZWwgdG8gdGhlIGJvb3Rsb2FkZXIKLSgicmVhZCIpLCBzb21lIGFyZSBleHBlY3RlZCB0byBiZSBmaWxsZWQgb3V0IGJ5IHRoZSBib290bG9hZGVyCi0oIndyaXRlIiksIGFuZCBzb21lIGFyZSBleHBlY3RlZCB0byBiZSByZWFkIGFuZCBtb2RpZmllZCBieSB0aGUKLWJvb3Rsb2FkZXIgKCJtb2RpZnkiKS4KLQotQWxsIGdlbmVyYWwgcHVycG9zZSBib290IGxvYWRlcnMgc2hvdWxkIHdyaXRlIHRoZSBmaWVsZHMgbWFya2VkCi0ob2JsaWdhdG9yeSkuICBCb290IGxvYWRlcnMgd2hvIHdhbnQgdG8gbG9hZCB0aGUga2VybmVsIGF0IGEKLW5vbnN0YW5kYXJkIGFkZHJlc3Mgc2hvdWxkIGZpbGwgaW4gdGhlIGZpZWxkcyBtYXJrZWQgKHJlbG9jKTsgb3RoZXIKLWJvb3QgbG9hZGVycyBjYW4gaWdub3JlIHRob3NlIGZpZWxkcy4KLQotVGhlIGJ5dGUgb3JkZXIgb2YgYWxsIGZpZWxkcyBpcyBsaXR0bGVlbmRpYW4gKHRoaXMgaXMgeDg2LCBhZnRlciBhbGwuKQotCi1GaWVsZCBuYW1lOglzZXR1cF9zZWN0cwotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDFmMS8xCi1Qcm90b2NvbDoJQUxMCi0KLSAgVGhlIHNpemUgb2YgdGhlIHNldHVwIGNvZGUgaW4gNTEyLWJ5dGUgc2VjdG9ycy4gIElmIHRoaXMgZmllbGQgaXMKLSAgMCwgdGhlIHJlYWwgdmFsdWUgaXMgNC4gIFRoZSByZWFsLW1vZGUgY29kZSBjb25zaXN0cyBvZiB0aGUgYm9vdAotICBzZWN0b3IgKGFsd2F5cyBvbmUgNTEyLWJ5dGUgc2VjdG9yKSBwbHVzIHRoZSBzZXR1cCBjb2RlLgotCi1GaWVsZCBuYW1lOgkgcm9vdF9mbGFncwotVHlwZToJCSBtb2RpZnkgKG9wdGlvbmFsKQotT2Zmc2V0L3NpemU6CSAweDFmMi8yCi1Qcm90b2NvbDoJIEFMTAotCi0gIElmIHRoaXMgZmllbGQgaXMgbm9uemVybywgdGhlIHJvb3QgZGVmYXVsdHMgdG8gcmVhZG9ubHkuICBUaGUgdXNlIG9mCi0gIHRoaXMgZmllbGQgaXMgZGVwcmVjYXRlZDsgdXNlIHRoZSAicm8iIG9yICJydyIgb3B0aW9ucyBvbiB0aGUKLSAgY29tbWFuZCBsaW5lIGluc3RlYWQuCi0KLUZpZWxkIG5hbWU6CXN5c3NpemUKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgxZjQvNCAocHJvdG9jb2wgMi4wNCspIDB4MWY0LzIgKHByb3RvY29sIEFMTCkKLVByb3RvY29sOgkyLjA0KwotCi0gIFRoZSBzaXplIG9mIHRoZSBwcm90ZWN0ZWQtbW9kZSBjb2RlIGluIHVuaXRzIG9mIDE2LWJ5dGUgcGFyYWdyYXBocy4KLSAgRm9yIHByb3RvY29sIHZlcnNpb25zIG9sZGVyIHRoYW4gMi4wNCB0aGlzIGZpZWxkIGlzIG9ubHkgdHdvIGJ5dGVzCi0gIHdpZGUsIGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIHRydXN0ZWQgZm9yIHRoZSBzaXplIG9mIGEga2VybmVsIGlmCi0gIHRoZSBMT0FEX0hJR0ggZmxhZyBpcyBzZXQuCi0KLUZpZWxkIG5hbWU6CXJhbV9zaXplCi1UeXBlOgkJa2VybmVsIGludGVybmFsCi1PZmZzZXQvc2l6ZToJMHgxZjgvMgotUHJvdG9jb2w6CUFMTAotCi0gIFRoaXMgZmllbGQgaXMgb2Jzb2xldGUuCi0KLUZpZWxkIG5hbWU6CXZpZF9tb2RlCi1UeXBlOgkJbW9kaWZ5IChvYmxpZ2F0b3J5KQotT2Zmc2V0L3NpemU6CTB4MWZhLzIKLQotICBQbGVhc2Ugc2VlIHRoZSBzZWN0aW9uIG9uIFNQRUNJQUwgQ09NTUFORCBMSU5FIE9QVElPTlMuCi0KLUZpZWxkIG5hbWU6CXJvb3RfZGV2Ci1UeXBlOgkJbW9kaWZ5IChvcHRpb25hbCkKLU9mZnNldC9zaXplOgkweDFmYy8yCi1Qcm90b2NvbDoJQUxMCi0KLSAgVGhlIGRlZmF1bHQgcm9vdCBkZXZpY2UgZGV2aWNlIG51bWJlci4gIFRoZSB1c2Ugb2YgdGhpcyBmaWVsZCBpcwotICBkZXByZWNhdGVkLCB1c2UgdGhlICJyb290PSIgb3B0aW9uIG9uIHRoZSBjb21tYW5kIGxpbmUgaW5zdGVhZC4KLQotRmllbGQgbmFtZToJYm9vdF9mbGFnCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MWZlLzIKLVByb3RvY29sOglBTEwKLQotICBDb250YWlucyAweEFBNTUuICBUaGlzIGlzIHRoZSBjbG9zZXN0IHRoaW5nIG9sZCBMaW51eCBrZXJuZWxzIGhhdmUKLSAgdG8gYSBtYWdpYyBudW1iZXIuCi0KLUZpZWxkIG5hbWU6CWp1bXAKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgyMDAvMgotUHJvdG9jb2w6CTIuMDArCi0KLSAgQ29udGFpbnMgYW4geDg2IGp1bXAgaW5zdHJ1Y3Rpb24sIDB4RUIgZm9sbG93ZWQgYnkgYSBzaWduZWQgb2Zmc2V0Ci0gIHJlbGF0aXZlIHRvIGJ5dGUgMHgyMDIuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgc2l6ZSBvZgotICB0aGUgaGVhZGVyLgotCi1GaWVsZCBuYW1lOgloZWFkZXIKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgyMDIvNAotUHJvdG9jb2w6CTIuMDArCi0KLSAgQ29udGFpbnMgdGhlIG1hZ2ljIG51bWJlciAiSGRyUyIgKDB4NTM3MjY0NDgpLgotCi1GaWVsZCBuYW1lOgl2ZXJzaW9uCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MjA2LzIKLVByb3RvY29sOgkyLjAwKwotCi0gIENvbnRhaW5zIHRoZSBib290IHByb3RvY29sIHZlcnNpb24sIGluIChtYWpvciA8PCA4KSttaW5vciBmb3JtYXQsCi0gIGUuZy4gMHgwMjA0IGZvciB2ZXJzaW9uIDIuMDQsIGFuZCAweDBhMTEgZm9yIGEgaHlwb3RoZXRpY2FsIHZlcnNpb24KLSAgMTAuMTcuCi0KLUZpZWxkIG5hbWU6CXJlYWRtb2RlX3N3dGNoCi1UeXBlOgkJbW9kaWZ5IChvcHRpb25hbCkKLU9mZnNldC9zaXplOgkweDIwOC80Ci1Qcm90b2NvbDoJMi4wMCsKLQotICBCb290IGxvYWRlciBob29rIChzZWUgQURWQU5DRUQgQk9PVCBMT0FERVIgSE9PS1MgYmVsb3cuKQotCi1GaWVsZCBuYW1lOglzdGFydF9zeXMKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgyMGMvNAotUHJvdG9jb2w6CTIuMDArCi0KLSAgVGhlIGxvYWQgbG93IHNlZ21lbnQgKDB4MTAwMCkuICBPYnNvbGV0ZS4KLQotRmllbGQgbmFtZToJa2VybmVsX3ZlcnNpb24KLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgyMGUvMgotUHJvdG9jb2w6CTIuMDArCi0KLSAgSWYgc2V0IHRvIGEgbm9uemVybyB2YWx1ZSwgY29udGFpbnMgYSBwb2ludGVyIHRvIGEgTlVMLXRlcm1pbmF0ZWQKLSAgaHVtYW4tcmVhZGFibGUga2VybmVsIHZlcnNpb24gbnVtYmVyIHN0cmluZywgbGVzcyAweDIwMC4gIFRoaXMgY2FuCi0gIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUga2VybmVsIHZlcnNpb24gdG8gdGhlIHVzZXIuICBUaGlzIHZhbHVlCi0gIHNob3VsZCBiZSBsZXNzIHRoYW4gKDB4MjAwKnNldHVwX3NlY3RzKS4KLQotICBGb3IgZXhhbXBsZSwgaWYgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gMHgxYzAwLCB0aGUga2VybmVsIHZlcnNpb24KLSAgbnVtYmVyIHN0cmluZyBjYW4gYmUgZm91bmQgYXQgb2Zmc2V0IDB4MWUwMCBpbiB0aGUga2VybmVsIGZpbGUuCi0gIFRoaXMgaXMgYSB2YWxpZCB2YWx1ZSBpZiBhbmQgb25seSBpZiB0aGUgInNldHVwX3NlY3RzIiBmaWVsZAotICBjb250YWlucyB0aGUgdmFsdWUgMTUgb3IgaGlnaGVyLCBhczoKLQotCTB4MWMwMCAgPCAxNSoweDIwMCAoPSAweDFlMDApIGJ1dAotCTB4MWMwMCA+PSAxNCoweDIwMCAoPSAweDFjMDApCi0KLQkweDFjMDAgPj4gOSA9IDE0LCBzbyB0aGUgbWluaW11bSB2YWx1ZSBmb3Igc2V0dXBfc2VjcyBpcyAxNS4KLQotRmllbGQgbmFtZToJdHlwZV9vZl9sb2FkZXIKLVR5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKLU9mZnNldC9zaXplOgkweDIxMC8xCi1Qcm90b2NvbDoJMi4wMCsKLQotICBJZiB5b3VyIGJvb3QgbG9hZGVyIGhhcyBhbiBhc3NpZ25lZCBpZCAoc2VlIHRhYmxlIGJlbG93KSwgZW50ZXIKLSAgMHhUViBoZXJlLCB3aGVyZSBUIGlzIGFuIGlkZW50aWZpZXIgZm9yIHRoZSBib290IGxvYWRlciBhbmQgViBpcwotICBhIHZlcnNpb24gbnVtYmVyLiAgT3RoZXJ3aXNlLCBlbnRlciAweEZGIGhlcmUuCi0KLSAgQXNzaWduZWQgYm9vdCBsb2FkZXIgaWRzOgotCTAgIExJTE8JCQkoMHgwMCByZXNlcnZlZCBmb3IgcHJlLTIuMDAgYm9vdGxvYWRlcikKLQkxICBMb2FkbGluCi0JMiAgYm9vdHNlY3QtbG9hZGVyCSgweDIwLCBhbGwgb3RoZXIgdmFsdWVzIHJlc2VydmVkKQotCTMgIFNZU0xJTlVYCi0JNCAgRXRoZXJCb290Ci0JNSAgRUxJTE8KLQk3ICBHUnVCCi0JOCAgVS1CT09UCi0JOSAgWGVuCi0JQSAgR3VqaW4KLQlCICBRZW11Ci0KLSAgUGxlYXNlIGNvbnRhY3QgPGhwYUB6eXRvci5jb20+IGlmIHlvdSBuZWVkIGEgYm9vdGxvYWRlciBJRAotICB2YWx1ZSBhc3NpZ25lZC4KLQotRmllbGQgbmFtZToJbG9hZGZsYWdzCi1UeXBlOgkJbW9kaWZ5IChvYmxpZ2F0b3J5KQotT2Zmc2V0L3NpemU6CTB4MjExLzEKLVByb3RvY29sOgkyLjAwKwotCi0gIFRoaXMgZmllbGQgaXMgYSBiaXRtYXNrLgotCi0gIEJpdCAwIChyZWFkKToJTE9BREVEX0hJR0gKLQktIElmIDAsIHRoZSBwcm90ZWN0ZWQtbW9kZSBjb2RlIGlzIGxvYWRlZCBhdCAweDEwMDAwLgotCS0gSWYgMSwgdGhlIHByb3RlY3RlZC1tb2RlIGNvZGUgaXMgbG9hZGVkIGF0IDB4MTAwMDAwLgotCi0gIEJpdCA2ICh3cml0ZSk6IEtFRVBfU0VHTUVOVFMKLQlQcm90b2NvbDogMi4wNysKLQktIGlmIDAsIHJlbG9hZCB0aGUgc2VnbWVudCByZWdpc3RlcnMgaW4gdGhlIDMyYml0IGVudHJ5IHBvaW50LgotCS0gaWYgMSwgZG8gbm90IHJlbG9hZCB0aGUgc2VnbWVudCByZWdpc3RlcnMgaW4gdGhlIDMyYml0IGVudHJ5IHBvaW50LgotCQlBc3N1bWUgdGhhdCAlY3MgJWRzICVzcyAlZXMgYXJlIGFsbCBzZXQgdG8gZmxhdCBzZWdtZW50cyB3aXRoCi0JCWEgYmFzZSBvZiAwIChvciB0aGUgZXF1aXZhbGVudCBmb3IgdGhlaXIgZW52aXJvbm1lbnQpLgotCi0gIEJpdCA3ICh3cml0ZSk6IENBTl9VU0VfSEVBUAotCVNldCB0aGlzIGJpdCB0byAxIHRvIGluZGljYXRlIHRoYXQgdGhlIHZhbHVlIGVudGVyZWQgaW4gdGhlCi0JaGVhcF9lbmRfcHRyIGlzIHZhbGlkLiAgSWYgdGhpcyBmaWVsZCBpcyBjbGVhciwgc29tZSBzZXR1cCBjb2RlCi0JZnVuY3Rpb25hbGl0eSB3aWxsIGJlIGRpc2FibGVkLgotCi1GaWVsZCBuYW1lOglzZXR1cF9tb3ZlX3NpemUKLVR5cGU6CQltb2RpZnkgKG9ibGlnYXRvcnkpCi1PZmZzZXQvc2l6ZToJMHgyMTIvMgotUHJvdG9jb2w6CTIuMDAtMi4wMQotCi0gIFdoZW4gdXNpbmcgcHJvdG9jb2wgMi4wMCBvciAyLjAxLCBpZiB0aGUgcmVhbCBtb2RlIGtlcm5lbCBpcyBub3QKLSAgbG9hZGVkIGF0IDB4OTAwMDAsIGl0IGdldHMgbW92ZWQgdGhlcmUgbGF0ZXIgaW4gdGhlIGxvYWRpbmcKLSAgc2VxdWVuY2UuICBGaWxsIGluIHRoaXMgZmllbGQgaWYgeW91IHdhbnQgYWRkaXRpb25hbCBkYXRhIChzdWNoIGFzCi0gIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lKSBtb3ZlZCBpbiBhZGRpdGlvbiB0byB0aGUgcmVhbC1tb2RlIGtlcm5lbAotICBpdHNlbGYuCi0KLSAgVGhlIHVuaXQgaXMgYnl0ZXMgc3RhcnRpbmcgd2l0aCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBib290IHNlY3Rvci4KLSAgCi0gIFRoaXMgZmllbGQgaXMgY2FuIGJlIGlnbm9yZWQgd2hlbiB0aGUgcHJvdG9jb2wgaXMgMi4wMiBvciBoaWdoZXIsIG9yCi0gIGlmIHRoZSByZWFsLW1vZGUgY29kZSBpcyBsb2FkZWQgYXQgMHg5MDAwMC4KLQotRmllbGQgbmFtZToJY29kZTMyX3N0YXJ0Ci1UeXBlOgkJbW9kaWZ5IChvcHRpb25hbCwgcmVsb2MpCi1PZmZzZXQvc2l6ZToJMHgyMTQvNAotUHJvdG9jb2w6CTIuMDArCi0KLSAgVGhlIGFkZHJlc3MgdG8ganVtcCB0byBpbiBwcm90ZWN0ZWQgbW9kZS4gIFRoaXMgZGVmYXVsdHMgdG8gdGhlIGxvYWQKLSAgYWRkcmVzcyBvZiB0aGUga2VybmVsLCBhbmQgY2FuIGJlIHVzZWQgYnkgdGhlIGJvb3QgbG9hZGVyIHRvCi0gIGRldGVybWluZSB0aGUgcHJvcGVyIGxvYWQgYWRkcmVzcy4KLQotICBUaGlzIGZpZWxkIGNhbiBiZSBtb2RpZmllZCBmb3IgdHdvIHB1cnBvc2VzOgotCi0gIDEuIGFzIGEgYm9vdCBsb2FkZXIgaG9vayAoc2VlIEFEVkFOQ0VEIEJPT1QgTE9BREVSIEhPT0tTIGJlbG93LikKLQotICAyLiBpZiBhIGJvb3Rsb2FkZXIgd2hpY2ggZG9lcyBub3QgaW5zdGFsbCBhIGhvb2sgbG9hZHMgYQotICAgICByZWxvY2F0YWJsZSBrZXJuZWwgYXQgYSBub25zdGFuZGFyZCBhZGRyZXNzIGl0IHdpbGwgaGF2ZSB0byBtb2RpZnkKLSAgICAgdGhpcyBmaWVsZCB0byBwb2ludCB0byB0aGUgbG9hZCBhZGRyZXNzLgotCi1GaWVsZCBuYW1lOglyYW1kaXNrX2ltYWdlCi1UeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCi1PZmZzZXQvc2l6ZToJMHgyMTgvNAotUHJvdG9jb2w6CTIuMDArCi0KLSAgVGhlIDMyLWJpdCBsaW5lYXIgYWRkcmVzcyBvZiB0aGUgaW5pdGlhbCByYW1kaXNrIG9yIHJhbWZzLiAgTGVhdmUgYXQKLSAgemVybyBpZiB0aGVyZSBpcyBubyBpbml0aWFsIHJhbWRpc2svcmFtZnMuCi0KLUZpZWxkIG5hbWU6CXJhbWRpc2tfc2l6ZQotVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQotT2Zmc2V0L3NpemU6CTB4MjFjLzQKLVByb3RvY29sOgkyLjAwKwotCi0gIFNpemUgb2YgdGhlIGluaXRpYWwgcmFtZGlzayBvciByYW1mcy4gIExlYXZlIGF0IHplcm8gaWYgdGhlcmUgaXMgbm8KLSAgaW5pdGlhbCByYW1kaXNrL3JhbWZzLgotCi1GaWVsZCBuYW1lOglib290c2VjdF9rbHVkZ2UKLVR5cGU6CQlrZXJuZWwgaW50ZXJuYWwKLU9mZnNldC9zaXplOgkweDIyMC80Ci1Qcm90b2NvbDoJMi4wMCsKLQotICBUaGlzIGZpZWxkIGlzIG9ic29sZXRlLgotCi1GaWVsZCBuYW1lOgloZWFwX2VuZF9wdHIKLVR5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKLU9mZnNldC9zaXplOgkweDIyNC8yCi1Qcm90b2NvbDoJMi4wMSsKLQotICBTZXQgdGhpcyBmaWVsZCB0byB0aGUgb2Zmc2V0IChmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJlYWwtbW9kZQotICBjb2RlKSBvZiB0aGUgZW5kIG9mIHRoZSBzZXR1cCBzdGFjay9oZWFwLCBtaW51cyAweDAyMDAuCi0KLUZpZWxkIG5hbWU6CWNtZF9saW5lX3B0cgotVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQotT2Zmc2V0L3NpemU6CTB4MjI4LzQKLVByb3RvY29sOgkyLjAyKwotCi0gIFNldCB0aGlzIGZpZWxkIHRvIHRoZSBsaW5lYXIgYWRkcmVzcyBvZiB0aGUga2VybmVsIGNvbW1hbmQgbGluZS4KLSAgVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgY2FuIGJlIGxvY2F0ZWQgYW55d2hlcmUgYmV0d2VlbiB0aGUgZW5kIG9mCi0gIHRoZSBzZXR1cCBoZWFwIGFuZCAweEEwMDAwOyBpdCBkb2VzIG5vdCBoYXZlIHRvIGJlIGxvY2F0ZWQgaW4gdGhlCi0gIHNhbWUgNjRLIHNlZ21lbnQgYXMgdGhlIHJlYWwtbW9kZSBjb2RlIGl0c2VsZi4KLQotICBGaWxsIGluIHRoaXMgZmllbGQgZXZlbiBpZiB5b3VyIGJvb3QgbG9hZGVyIGRvZXMgbm90IHN1cHBvcnQgYQotICBjb21tYW5kIGxpbmUsIGluIHdoaWNoIGNhc2UgeW91IGNhbiBwb2ludCB0aGlzIHRvIGFuIGVtcHR5IHN0cmluZwotICAob3IgYmV0dGVyIHlldCwgdG8gdGhlIHN0cmluZyAiYXV0byIuKSAgSWYgdGhpcyBmaWVsZCBpcyBsZWZ0IGF0Ci0gIHplcm8sIHRoZSBrZXJuZWwgd2lsbCBhc3N1bWUgdGhhdCB5b3VyIGJvb3QgbG9hZGVyIGRvZXMgbm90IHN1cHBvcnQKLSAgdGhlIDIuMDIrIHByb3RvY29sLgotCi1GaWVsZCBuYW1lOglpbml0cmRfYWRkcl9tYXgKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgyMmMvNAotUHJvdG9jb2w6CTIuMDMrCi0KLSAgVGhlIG1heGltdW0gYWRkcmVzcyB0aGF0IG1heSBiZSBvY2N1cGllZCBieSB0aGUgaW5pdGlhbAotICByYW1kaXNrL3JhbWZzIGNvbnRlbnRzLiAgRm9yIGJvb3QgcHJvdG9jb2xzIDIuMDIgb3IgZWFybGllciwgdGhpcwotICBmaWVsZCBpcyBub3QgcHJlc2VudCwgYW5kIHRoZSBtYXhpbXVtIGFkZHJlc3MgaXMgMHgzN0ZGRkZGRi4gIChUaGlzCi0gIGFkZHJlc3MgaXMgZGVmaW5lZCBhcyB0aGUgYWRkcmVzcyBvZiB0aGUgaGlnaGVzdCBzYWZlIGJ5dGUsIHNvIGlmCi0gIHlvdXIgcmFtZGlzayBpcyBleGFjdGx5IDEzMTA3MiBieXRlcyBsb25nIGFuZCB0aGlzIGZpZWxkIGlzCi0gIDB4MzdGRkZGRkYsIHlvdSBjYW4gc3RhcnQgeW91ciByYW1kaXNrIGF0IDB4MzdGRTAwMDAuKQotCi1GaWVsZCBuYW1lOglrZXJuZWxfYWxpZ25tZW50Ci1UeXBlOgkJcmVhZCAocmVsb2MpCi1PZmZzZXQvc2l6ZToJMHgyMzAvNAotUHJvdG9jb2w6CTIuMDUrCi0KLSAgQWxpZ25tZW50IHVuaXQgcmVxdWlyZWQgYnkgdGhlIGtlcm5lbCAoaWYgcmVsb2NhdGFibGVfa2VybmVsIGlzIHRydWUuKQotCi1GaWVsZCBuYW1lOglyZWxvY2F0YWJsZV9rZXJuZWwKLVR5cGU6CQlyZWFkIChyZWxvYykKLU9mZnNldC9zaXplOgkweDIzNC8xCi1Qcm90b2NvbDoJMi4wNSsKLQotICBJZiB0aGlzIGZpZWxkIGlzIG5vbnplcm8sIHRoZSBwcm90ZWN0ZWQtbW9kZSBwYXJ0IG9mIHRoZSBrZXJuZWwgY2FuCi0gIGJlIGxvYWRlZCBhdCBhbnkgYWRkcmVzcyB0aGF0IHNhdGlzZmllcyB0aGUga2VybmVsX2FsaWdubWVudCBmaWVsZC4KLSAgQWZ0ZXIgbG9hZGluZywgdGhlIGJvb3QgbG9hZGVyIG11c3Qgc2V0IHRoZSBjb2RlMzJfc3RhcnQgZmllbGQgdG8KLSAgcG9pbnQgdG8gdGhlIGxvYWRlZCBjb2RlLCBvciB0byBhIGJvb3QgbG9hZGVyIGhvb2suCi0KLUZpZWxkIG5hbWU6CWNtZGxpbmVfc2l6ZQotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDIzOC80Ci1Qcm90b2NvbDoJMi4wNisKLQotICBUaGUgbWF4aW11bSBzaXplIG9mIHRoZSBjb21tYW5kIGxpbmUgd2l0aG91dCB0aGUgdGVybWluYXRpbmcKLSAgemVyby4gVGhpcyBtZWFucyB0aGF0IHRoZSBjb21tYW5kIGxpbmUgY2FuIGNvbnRhaW4gYXQgbW9zdAotICBjbWRsaW5lX3NpemUgY2hhcmFjdGVycy4gV2l0aCBwcm90b2NvbCB2ZXJzaW9uIDIuMDUgYW5kIGVhcmxpZXIsIHRoZQotICBtYXhpbXVtIHNpemUgd2FzIDI1NS4KLQotRmllbGQgbmFtZToJaGFyZHdhcmVfc3ViYXJjaAotVHlwZToJCXdyaXRlCi1PZmZzZXQvc2l6ZToJMHgyM2MvNAotUHJvdG9jb2w6CTIuMDcrCi0KLSAgSW4gYSBwYXJhdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdGhlIGhhcmR3YXJlIGxvdyBsZXZlbCBhcmNoaXRlY3R1cmFsCi0gIHBpZWNlcyBzdWNoIGFzIGludGVycnVwdCBoYW5kbGluZywgcGFnZSB0YWJsZSBoYW5kbGluZywgYW5kCi0gIGFjY2Vzc2luZyBwcm9jZXNzIGNvbnRyb2wgcmVnaXN0ZXJzIG5lZWRzIHRvIGJlIGRvbmUgZGlmZmVyZW50bHkuCi0KLSAgVGhpcyBmaWVsZCBhbGxvd3MgdGhlIGJvb3Rsb2FkZXIgdG8gaW5mb3JtIHRoZSBrZXJuZWwgd2UgYXJlIGluIG9uZQotICBvbmUgb2YgdGhvc2UgZW52aXJvbm1lbnRzLgotCi0gIDB4MDAwMDAwMDAJVGhlIGRlZmF1bHQgeDg2L1BDIGVudmlyb25tZW50Ci0gIDB4MDAwMDAwMDEJbGd1ZXN0Ci0gIDB4MDAwMDAwMDIJWGVuCi0KLUZpZWxkIG5hbWU6CWhhcmR3YXJlX3N1YmFyY2hfZGF0YQotVHlwZToJCXdyaXRlCi1PZmZzZXQvc2l6ZToJMHgyNDAvOAotUHJvdG9jb2w6CTIuMDcrCi0KLSAgQSBwb2ludGVyIHRvIGRhdGEgdGhhdCBpcyBzcGVjaWZpYyB0byBoYXJkd2FyZSBzdWJhcmNoCi0KLUZpZWxkIG5hbWU6CXBheWxvYWRfb2Zmc2V0Ci1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MjQ4LzQKLVByb3RvY29sOgkyLjA4KwotCi0gIElmIG5vbi16ZXJvIHRoZW4gdGhpcyBmaWVsZCBjb250YWlucyB0aGUgb2Zmc2V0IGZyb20gdGhlIGVuZCBvZiB0aGUKLSAgcmVhbC1tb2RlIGNvZGUgdG8gdGhlIHBheWxvYWQuCi0KLSAgVGhlIHBheWxvYWQgbWF5IGJlIGNvbXByZXNzZWQuIFRoZSBmb3JtYXQgb2YgYm90aCB0aGUgY29tcHJlc3NlZCBhbmQKLSAgdW5jb21wcmVzc2VkIGRhdGEgc2hvdWxkIGJlIGRldGVybWluZWQgdXNpbmcgdGhlIHN0YW5kYXJkIG1hZ2ljCi0gIG51bWJlcnMuIEN1cnJlbnRseSBvbmx5IGd6aXAgY29tcHJlc3NlZCBFTEYgaXMgdXNlZC4KLSAgCi1GaWVsZCBuYW1lOglwYXlsb2FkX2xlbmd0aAotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDI0Yy80Ci1Qcm90b2NvbDoJMi4wOCsKLQotICBUaGUgbGVuZ3RoIG9mIHRoZSBwYXlsb2FkLgotCi0qKioqIFRIRSBJTUFHRSBDSEVDS1NVTQotCi1Gcm9tIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiAyLjA4IG9ud2FyZHMgdGhlIENSQy0zMiBpcyBjYWxjdWxhdGVkIG92ZXIKLXRoZSBlbnRpcmUgZmlsZSB1c2luZyB0aGUgY2hhcmFjdGVyaXN0aWMgcG9seW5vbWlhbCAweDA0QzExREI3IGFuZCBhbgotaW5pdGlhbCByZW1haW5kZXIgb2YgMHhmZmZmZmZmZi4gIFRoZSBjaGVja3N1bSBpcyBhcHBlbmRlZCB0byB0aGUKLWZpbGU7IHRoZXJlZm9yZSB0aGUgQ1JDIG9mIHRoZSBmaWxlIHVwIHRvIHRoZSBsaW1pdCBzcGVjaWZpZWQgaW4gdGhlCi1zeXNzaXplIGZpZWxkIG9mIHRoZSBoZWFkZXIgaXMgYWx3YXlzIDAuCi0KLSoqKiogVEhFIEtFUk5FTCBDT01NQU5EIExJTkUKLQotVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgaGFzIGJlY29tZSBhbiBpbXBvcnRhbnQgd2F5IGZvciB0aGUgYm9vdAotbG9hZGVyIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGtlcm5lbC4gIFNvbWUgb2YgaXRzIG9wdGlvbnMgYXJlIGFsc28KLXJlbGV2YW50IHRvIHRoZSBib290IGxvYWRlciBpdHNlbGYsIHNlZSAic3BlY2lhbCBjb21tYW5kIGxpbmUgb3B0aW9ucyIKLWJlbG93LgotCi1UaGUga2VybmVsIGNvbW1hbmQgbGluZSBpcyBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcuIFRoZSBtYXhpbXVtCi1sZW5ndGggY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBmaWVsZCBjbWRsaW5lX3NpemUuICBCZWZvcmUgcHJvdG9jb2wKLXZlcnNpb24gMi4wNiwgdGhlIG1heGltdW0gd2FzIDI1NSBjaGFyYWN0ZXJzLiAgQSBzdHJpbmcgdGhhdCBpcyB0b28KLWxvbmcgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHRydW5jYXRlZCBieSB0aGUga2VybmVsLgotCi1JZiB0aGUgYm9vdCBwcm90b2NvbCB2ZXJzaW9uIGlzIDIuMDIgb3IgbGF0ZXIsIHRoZSBhZGRyZXNzIG9mIHRoZQota2VybmVsIGNvbW1hbmQgbGluZSBpcyBnaXZlbiBieSB0aGUgaGVhZGVyIGZpZWxkIGNtZF9saW5lX3B0ciAoc2VlCi1hYm92ZS4pICBUaGlzIGFkZHJlc3MgY2FuIGJlIGFueXdoZXJlIGJldHdlZW4gdGhlIGVuZCBvZiB0aGUgc2V0dXAKLWhlYXAgYW5kIDB4QTAwMDAuCi0KLUlmIHRoZSBwcm90b2NvbCB2ZXJzaW9uIGlzICpub3QqIDIuMDIgb3IgaGlnaGVyLCB0aGUga2VybmVsCi1jb21tYW5kIGxpbmUgaXMgZW50ZXJlZCB1c2luZyB0aGUgZm9sbG93aW5nIHByb3RvY29sOgotCi0JQXQgb2Zmc2V0IDB4MDAyMCAod29yZCksICJjbWRfbGluZV9tYWdpYyIsIGVudGVyIHRoZSBtYWdpYwotCW51bWJlciAweEEzM0YuCi0KLQlBdCBvZmZzZXQgMHgwMDIyICh3b3JkKSwgImNtZF9saW5lX29mZnNldCIsIGVudGVyIHRoZSBvZmZzZXQKLQlvZiB0aGUga2VybmVsIGNvbW1hbmQgbGluZSAocmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZQotCXJlYWwtbW9kZSBrZXJuZWwpLgotCQotCVRoZSBrZXJuZWwgY29tbWFuZCBsaW5lICptdXN0KiBiZSB3aXRoaW4gdGhlIG1lbW9yeSByZWdpb24KLQljb3ZlcmVkIGJ5IHNldHVwX21vdmVfc2l6ZSwgc28geW91IG1heSBuZWVkIHRvIGFkanVzdCB0aGlzCi0JZmllbGQuCi0KLUZpZWxkIG5hbWU6CXNldHVwX2RhdGEKLVR5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKLU9mZnNldC9zaXplOgkweDI1MC84Ci1Qcm90b2NvbDoJMi4wOSsKLQotICBUaGUgNjQtYml0IHBoeXNpY2FsIHBvaW50ZXIgdG8gTlVMTCB0ZXJtaW5hdGVkIHNpbmdsZSBsaW5rZWQgbGlzdCBvZgotICBzdHJ1Y3Qgc2V0dXBfZGF0YS4gVGhpcyBpcyB1c2VkIHRvIGRlZmluZSBhIG1vcmUgZXh0ZW5zaWJsZSBib290Ci0gIHBhcmFtZXRlcnMgcGFzc2luZyBtZWNoYW5pc20uIFRoZSBkZWZpbml0aW9uIG9mIHN0cnVjdCBzZXR1cF9kYXRhIGlzCi0gIGFzIGZvbGxvdzoKLQotICBzdHJ1Y3Qgc2V0dXBfZGF0YSB7Ci0JICB1NjQgbmV4dDsKLQkgIHUzMiB0eXBlOwotCSAgdTMyIGxlbjsKLQkgIHU4ICBkYXRhWzBdOwotICB9OwotCi0gIFdoZXJlLCB0aGUgbmV4dCBpcyBhIDY0LWJpdCBwaHlzaWNhbCBwb2ludGVyIHRvIHRoZSBuZXh0IG5vZGUgb2YKLSAgbGlua2VkIGxpc3QsIHRoZSBuZXh0IGZpZWxkIG9mIHRoZSBsYXN0IG5vZGUgaXMgMDsgdGhlIHR5cGUgaXMgdXNlZAotICB0byBpZGVudGlmeSB0aGUgY29udGVudHMgb2YgZGF0YTsgdGhlIGxlbiBpcyB0aGUgbGVuZ3RoIG9mIGRhdGEKLSAgZmllbGQ7IHRoZSBkYXRhIGhvbGRzIHRoZSByZWFsIHBheWxvYWQuCi0KLQotKioqKiBNRU1PUlkgTEFZT1VUIE9GIFRIRSBSRUFMLU1PREUgQ09ERQotCi1UaGUgcmVhbC1tb2RlIGNvZGUgcmVxdWlyZXMgYSBzdGFjay9oZWFwIHRvIGJlIHNldCB1cCwgYXMgd2VsbCBhcwotbWVtb3J5IGFsbG9jYXRlZCBmb3IgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuICBUaGlzIG5lZWRzIHRvIGJlIGRvbmUKLWluIHRoZSByZWFsLW1vZGUgYWNjZXNzaWJsZSBtZW1vcnkgaW4gYm90dG9tIG1lZ2FieXRlLgotCi1JdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBtb2Rlcm4gbWFjaGluZXMgb2Z0ZW4gaGF2ZSBhIHNpemFibGUgRXh0ZW5kZWQKLUJJT1MgRGF0YSBBcmVhIChFQkRBKS4gIEFzIGEgcmVzdWx0LCBpdCBpcyBhZHZpc2FibGUgdG8gdXNlIGFzIGxpdHRsZQotb2YgdGhlIGxvdyBtZWdhYnl0ZSBhcyBwb3NzaWJsZS4KLQotVW5mb3J0dW5hdGVseSwgdW5kZXIgdGhlIGZvbGxvd2luZyBjaXJjdW1zdGFuY2VzIHRoZSAweDkwMDAwIG1lbW9yeQotc2VnbWVudCBoYXMgdG8gYmUgdXNlZDoKLQotCS0gV2hlbiBsb2FkaW5nIGEgekltYWdlIGtlcm5lbCAoKGxvYWRmbGFncyAmIDB4MDEpID09IDApLgotCS0gV2hlbiBsb2FkaW5nIGEgMi4wMSBvciBlYXJsaWVyIGJvb3QgcHJvdG9jb2wga2VybmVsLgotCi0JICAtPiBGb3IgdGhlIDIuMDAgYW5kIDIuMDEgYm9vdCBwcm90b2NvbHMsIHRoZSByZWFsLW1vZGUgY29kZQotCSAgICAgY2FuIGJlIGxvYWRlZCBhdCBhbm90aGVyIGFkZHJlc3MsIGJ1dCBpdCBpcyBpbnRlcm5hbGx5Ci0JICAgICByZWxvY2F0ZWQgdG8gMHg5MDAwMC4gIEZvciB0aGUgIm9sZCIgcHJvdG9jb2wsIHRoZQotCSAgICAgcmVhbC1tb2RlIGNvZGUgbXVzdCBiZSBsb2FkZWQgYXQgMHg5MDAwMC4KLQotV2hlbiBsb2FkaW5nIGF0IDB4OTAwMDAsIGF2b2lkIHVzaW5nIG1lbW9yeSBhYm92ZSAweDlhMDAwLgotCi1Gb3IgYm9vdCBwcm90b2NvbCAyLjAyIG9yIGhpZ2hlciwgdGhlIGNvbW1hbmQgbGluZSBkb2VzIG5vdCBoYXZlIHRvIGJlCi1sb2NhdGVkIGluIHRoZSBzYW1lIDY0SyBzZWdtZW50IGFzIHRoZSByZWFsLW1vZGUgc2V0dXAgY29kZTsgaXQgaXMKLXRodXMgcGVybWl0dGVkIHRvIGdpdmUgdGhlIHN0YWNrL2hlYXAgdGhlIGZ1bGwgNjRLIHNlZ21lbnQgYW5kIGxvY2F0ZQotdGhlIGNvbW1hbmQgbGluZSBhYm92ZSBpdC4KLQotVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgc2hvdWxkIG5vdCBiZSBsb2NhdGVkIGJlbG93IHRoZSByZWFsLW1vZGUKLWNvZGUsIG5vciBzaG91bGQgaXQgYmUgbG9jYXRlZCBpbiBoaWdoIG1lbW9yeS4KLQotCi0qKioqIFNBTVBMRSBCT09UIENPTkZJR1VSQVRJT04KLQotQXMgYSBzYW1wbGUgY29uZmlndXJhdGlvbiwgYXNzdW1lIHRoZSBmb2xsb3dpbmcgbGF5b3V0IG9mIHRoZSByZWFsCi1tb2RlIHNlZ21lbnQ6Ci0KLSAgICBXaGVuIGxvYWRpbmcgYmVsb3cgMHg5MDAwMCwgdXNlIHRoZSBlbnRpcmUgc2VnbWVudDoKLQotCTB4MDAwMC0weDdmZmYJUmVhbCBtb2RlIGtlcm5lbAotCTB4ODAwMC0weGRmZmYJU3RhY2sgYW5kIGhlYXAKLQkweGUwMDAtMHhmZmZmCUtlcm5lbCBjb21tYW5kIGxpbmUKLQotICAgIFdoZW4gbG9hZGluZyBhdCAweDkwMDAwIE9SIHRoZSBwcm90b2NvbCB2ZXJzaW9uIGlzIDIuMDEgb3IgZWFybGllcjoKLQotCTB4MDAwMC0weDdmZmYJUmVhbCBtb2RlIGtlcm5lbAotCTB4ODAwMC0weDk3ZmYJU3RhY2sgYW5kIGhlYXAKLQkweDk4MDAtMHg5ZmZmCUtlcm5lbCBjb21tYW5kIGxpbmUKLQotU3VjaCBhIGJvb3QgbG9hZGVyIHNob3VsZCBlbnRlciB0aGUgZm9sbG93aW5nIGZpZWxkcyBpbiB0aGUgaGVhZGVyOgotCi0JdW5zaWduZWQgbG9uZyBiYXNlX3B0cjsJLyogYmFzZSBhZGRyZXNzIGZvciByZWFsLW1vZGUgc2VnbWVudCAqLwotCi0JaWYgKCBzZXR1cF9zZWN0cyA9PSAwICkgewotCQlzZXR1cF9zZWN0cyA9IDQ7Ci0JfQotCi0JaWYgKCBwcm90b2NvbCA+PSAweDAyMDAgKSB7Ci0JCXR5cGVfb2ZfbG9hZGVyID0gPHR5cGUgY29kZT47Ci0JCWlmICggbG9hZGluZ19pbml0cmQgKSB7Ci0JCQlyYW1kaXNrX2ltYWdlID0gPGluaXRyZF9hZGRyZXNzPjsKLQkJCXJhbWRpc2tfc2l6ZSA9IDxpbml0cmRfc2l6ZT47Ci0JCX0KLQotCQlpZiAoIHByb3RvY29sID49IDB4MDIwMiAmJiBsb2FkZmxhZ3MgJiAweDAxICkKLQkJCWhlYXBfZW5kID0gMHhlMDAwOwotCQllbHNlCi0JCQloZWFwX2VuZCA9IDB4OTgwMDsKLQotCQlpZiAoIHByb3RvY29sID49IDB4MDIwMSApIHsKLQkJCWhlYXBfZW5kX3B0ciA9IGhlYXBfZW5kIC0gMHgyMDA7Ci0JCQlsb2FkZmxhZ3MgfD0gMHg4MDsgLyogQ0FOX1VTRV9IRUFQICovCi0JCX0KLQotCQlpZiAoIHByb3RvY29sID49IDB4MDIwMiApIHsKLQkJCWNtZF9saW5lX3B0ciA9IGJhc2VfcHRyICsgaGVhcF9lbmQ7Ci0JCQlzdHJjcHkoY21kX2xpbmVfcHRyLCBjbWRsaW5lKTsKLQkJfSBlbHNlIHsKLQkJCWNtZF9saW5lX21hZ2ljCT0gMHhBMzNGOwotCQkJY21kX2xpbmVfb2Zmc2V0ID0gaGVhcF9lbmQ7Ci0JCQlzZXR1cF9tb3ZlX3NpemUgPSBoZWFwX2VuZCArIHN0cmxlbihjbWRsaW5lKSsxOwotCQkJc3RyY3B5KGJhc2VfcHRyK2NtZF9saW5lX29mZnNldCwgY21kbGluZSk7Ci0JCX0KLQl9IGVsc2UgewotCQkvKiBWZXJ5IG9sZCBrZXJuZWwgKi8KLQotCQloZWFwX2VuZCA9IDB4OTgwMDsKLQotCQljbWRfbGluZV9tYWdpYwk9IDB4QTMzRjsKLQkJY21kX2xpbmVfb2Zmc2V0ID0gaGVhcF9lbmQ7Ci0KLQkJLyogQSB2ZXJ5IG9sZCBrZXJuZWwgTVVTVCBoYXZlIGl0cyByZWFsLW1vZGUgY29kZQotCQkgICBsb2FkZWQgYXQgMHg5MDAwMCAqLwotCi0JCWlmICggYmFzZV9wdHIgIT0gMHg5MDAwMCApIHsKLQkJCS8qIENvcHkgdGhlIHJlYWwtbW9kZSBrZXJuZWwgKi8KLQkJCW1lbWNweSgweDkwMDAwLCBiYXNlX3B0ciwgKHNldHVwX3NlY3RzKzEpKjUxMik7Ci0JCQliYXNlX3B0ciA9IDB4OTAwMDA7CQkgLyogUmVsb2NhdGVkICovCi0JCX0KLQotCQlzdHJjcHkoMHg5MDAwMCtjbWRfbGluZV9vZmZzZXQsIGNtZGxpbmUpOwotCi0JCS8qIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNsZWFyIG1lbW9yeSB1cCB0byB0aGUgMzJLIG1hcmsgKi8KLQkJbWVtc2V0KDB4OTAwMDAgKyAoc2V0dXBfc2VjdHMrMSkqNTEyLCAwLAotCQkgICAgICAgKDY0LShzZXR1cF9zZWN0cysxKSkqNTEyKTsKLQl9Ci0KLQotKioqKiBMT0FESU5HIFRIRSBSRVNUIE9GIFRIRSBLRVJORUwKLQotVGhlIDMyLWJpdCAobm9uLXJlYWwtbW9kZSkga2VybmVsIHN0YXJ0cyBhdCBvZmZzZXQgKHNldHVwX3NlY3RzKzEpKjUxMgotaW4gdGhlIGtlcm5lbCBmaWxlIChhZ2FpbiwgaWYgc2V0dXBfc2VjdHMgPT0gMCB0aGUgcmVhbCB2YWx1ZSBpcyA0LikKLUl0IHNob3VsZCBiZSBsb2FkZWQgYXQgYWRkcmVzcyAweDEwMDAwIGZvciBJbWFnZS96SW1hZ2Uga2VybmVscyBhbmQKLTB4MTAwMDAwIGZvciBiekltYWdlIGtlcm5lbHMuCi0KLVRoZSBrZXJuZWwgaXMgYSBiekltYWdlIGtlcm5lbCBpZiB0aGUgcHJvdG9jb2wgPj0gMi4wMCBhbmQgdGhlIDB4MDEKLWJpdCAoTE9BRF9ISUdIKSBpbiB0aGUgbG9hZGZsYWdzIGZpZWxkIGlzIHNldDoKLQotCWlzX2J6SW1hZ2UgPSAocHJvdG9jb2wgPj0gMHgwMjAwKSAmJiAobG9hZGZsYWdzICYgMHgwMSk7Ci0JbG9hZF9hZGRyZXNzID0gaXNfYnpJbWFnZSA/IDB4MTAwMDAwIDogMHgxMDAwMDsKLQotTm90ZSB0aGF0IEltYWdlL3pJbWFnZSBrZXJuZWxzIGNhbiBiZSB1cCB0byA1MTJLIGluIHNpemUsIGFuZCB0aHVzIHVzZQotdGhlIGVudGlyZSAweDEwMDAwLTB4OTAwMDAgcmFuZ2Ugb2YgbWVtb3J5LiAgVGhpcyBtZWFucyBpdCBpcyBwcmV0dHkKLW11Y2ggYSByZXF1aXJlbWVudCBmb3IgdGhlc2Uga2VybmVscyB0byBsb2FkIHRoZSByZWFsLW1vZGUgcGFydCBhdAotMHg5MDAwMC4gIGJ6SW1hZ2Uga2VybmVscyBhbGxvdyBtdWNoIG1vcmUgZmxleGliaWxpdHkuCi0KLQotKioqKiBTUEVDSUFMIENPTU1BTkQgTElORSBPUFRJT05TCi0KLUlmIHRoZSBjb21tYW5kIGxpbmUgcHJvdmlkZWQgYnkgdGhlIGJvb3QgbG9hZGVyIGlzIGVudGVyZWQgYnkgdGhlCi11c2VyLCB0aGUgdXNlciBtYXkgZXhwZWN0IHRoZSBmb2xsb3dpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gd29yay4KLVRoZXkgc2hvdWxkIG5vcm1hbGx5IG5vdCBiZSBkZWxldGVkIGZyb20gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgZXZlbgotdGhvdWdoIG5vdCBhbGwgb2YgdGhlbSBhcmUgYWN0dWFsbHkgbWVhbmluZ2Z1bCB0byB0aGUga2VybmVsLiAgQm9vdAotbG9hZGVyIGF1dGhvcnMgd2hvIG5lZWQgYWRkaXRpb25hbCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgdGhlIGJvb3QKLWxvYWRlciBpdHNlbGYgc2hvdWxkIGdldCB0aGVtIHJlZ2lzdGVyZWQgaW4KLURvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0IHRvIG1ha2Ugc3VyZSB0aGV5IHdpbGwgbm90Ci1jb25mbGljdCB3aXRoIGFjdHVhbCBrZXJuZWwgb3B0aW9ucyBub3cgb3IgaW4gdGhlIGZ1dHVyZS4KLQotICB2Z2E9PG1vZGU+Ci0JPG1vZGU+IGhlcmUgaXMgZWl0aGVyIGFuIGludGVnZXIgKGluIEMgbm90YXRpb24sIGVpdGhlcgotCWRlY2ltYWwsIG9jdGFsLCBvciBoZXhhZGVjaW1hbCkgb3Igb25lIG9mIHRoZSBzdHJpbmdzCi0JIm5vcm1hbCIgKG1lYW5pbmcgMHhGRkZGKSwgImV4dCIgKG1lYW5pbmcgMHhGRkZFKSBvciAiYXNrIgotCShtZWFuaW5nIDB4RkZGRCkuICBUaGlzIHZhbHVlIHNob3VsZCBiZSBlbnRlcmVkIGludG8gdGhlCi0JdmlkX21vZGUgZmllbGQsIGFzIGl0IGlzIHVzZWQgYnkgdGhlIGtlcm5lbCBiZWZvcmUgdGhlIGNvbW1hbmQKLQlsaW5lIGlzIHBhcnNlZC4KLQotICBtZW09PHNpemU+Ci0JPHNpemU+IGlzIGFuIGludGVnZXIgaW4gQyBub3RhdGlvbiBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5Ci0JKGNhc2UgaW5zZW5zaXRpdmUpIEssIE0sIEcsIFQsIFAgb3IgRSAobWVhbmluZyA8PCAxMCwgPDwgMjAsCi0JPDwgMzAsIDw8IDQwLCA8PCA1MCBvciA8PCA2MCkuICBUaGlzIHNwZWNpZmllcyB0aGUgZW5kIG9mCi0JbWVtb3J5IHRvIHRoZSBrZXJuZWwuIFRoaXMgYWZmZWN0cyB0aGUgcG9zc2libGUgcGxhY2VtZW50IG9mCi0JYW4gaW5pdHJkLCBzaW5jZSBhbiBpbml0cmQgc2hvdWxkIGJlIHBsYWNlZCBuZWFyIGVuZCBvZgotCW1lbW9yeS4gIE5vdGUgdGhhdCB0aGlzIGlzIGFuIG9wdGlvbiB0byAqYm90aCogdGhlIGtlcm5lbCBhbmQKLQl0aGUgYm9vdGxvYWRlciEKLQotICBpbml0cmQ9PGZpbGU+Ci0JQW4gaW5pdHJkIHNob3VsZCBiZSBsb2FkZWQuICBUaGUgbWVhbmluZyBvZiA8ZmlsZT4gaXMKLQlvYnZpb3VzbHkgYm9vdGxvYWRlci1kZXBlbmRlbnQsIGFuZCBzb21lIGJvb3QgbG9hZGVycwotCShlLmcuIExJTE8pIGRvIG5vdCBoYXZlIHN1Y2ggYSBjb21tYW5kLgotCi1JbiBhZGRpdGlvbiwgc29tZSBib290IGxvYWRlcnMgYWRkIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byB0aGUKLXVzZXItc3BlY2lmaWVkIGNvbW1hbmQgbGluZToKLQotICBCT09UX0lNQUdFPTxmaWxlPgotCVRoZSBib290IGltYWdlIHdoaWNoIHdhcyBsb2FkZWQuICBBZ2FpbiwgdGhlIG1lYW5pbmcgb2YgPGZpbGU+Ci0JaXMgb2J2aW91c2x5IGJvb3Rsb2FkZXItZGVwZW5kZW50LgotCi0gIGF1dG8KLQlUaGUga2VybmVsIHdhcyBib290ZWQgd2l0aG91dCBleHBsaWNpdCB1c2VyIGludGVydmVudGlvbi4KLQotSWYgdGhlc2Ugb3B0aW9ucyBhcmUgYWRkZWQgYnkgdGhlIGJvb3QgbG9hZGVyLCBpdCBpcyBoaWdobHkKLXJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgbG9jYXRlZCAqZmlyc3QqLCBiZWZvcmUgdGhlIHVzZXItc3BlY2lmaWVkCi1vciBjb25maWd1cmF0aW9uLXNwZWNpZmllZCBjb21tYW5kIGxpbmUuICBPdGhlcndpc2UsICJpbml0PS9iaW4vc2giCi1nZXRzIGNvbmZ1c2VkIGJ5IHRoZSAiYXV0byIgb3B0aW9uLgotCi0KLSoqKiogUlVOTklORyBUSEUgS0VSTkVMCi0KLVRoZSBrZXJuZWwgaXMgc3RhcnRlZCBieSBqdW1waW5nIHRvIHRoZSBrZXJuZWwgZW50cnkgcG9pbnQsIHdoaWNoIGlzCi1sb2NhdGVkIGF0ICpzZWdtZW50KiBvZmZzZXQgMHgyMCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgcmVhbCBtb2RlCi1rZXJuZWwuICBUaGlzIG1lYW5zIHRoYXQgaWYgeW91IGxvYWRlZCB5b3VyIHJlYWwtbW9kZSBrZXJuZWwgY29kZSBhdAotMHg5MDAwMCwgdGhlIGtlcm5lbCBlbnRyeSBwb2ludCBpcyA5MDIwOjAwMDAuCi0KLUF0IGVudHJ5LCBkcyA9IGVzID0gc3Mgc2hvdWxkIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgcmVhbC1tb2RlCi1rZXJuZWwgY29kZSAoMHg5MDAwIGlmIHRoZSBjb2RlIGlzIGxvYWRlZCBhdCAweDkwMDAwKSwgc3Agc2hvdWxkIGJlCi1zZXQgdXAgcHJvcGVybHksIG5vcm1hbGx5IHBvaW50aW5nIHRvIHRoZSB0b3Agb2YgdGhlIGhlYXAsIGFuZAotaW50ZXJydXB0cyBzaG91bGQgYmUgZGlzYWJsZWQuICBGdXJ0aGVybW9yZSwgdG8gZ3VhcmQgYWdhaW5zdCBidWdzIGluCi10aGUga2VybmVsLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBib290IGxvYWRlciBzZXRzIGZzID0gZ3MgPSBkcyA9Ci1lcyA9IHNzLgotCi1JbiBvdXIgZXhhbXBsZSBmcm9tIGFib3ZlLCB3ZSB3b3VsZCBkbzoKLQotCS8qIE5vdGU6IGluIHRoZSBjYXNlIG9mIHRoZSAib2xkIiBrZXJuZWwgcHJvdG9jb2wsIGJhc2VfcHRyIG11c3QKLQkgICBiZSA9PSAweDkwMDAwIGF0IHRoaXMgcG9pbnQ7IHNlZSB0aGUgcHJldmlvdXMgc2FtcGxlIGNvZGUgKi8KLQotCXNlZyA9IGJhc2VfcHRyID4+IDQ7Ci0KLQljbGkoKTsJLyogRW50ZXIgd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkISAqLwotCi0JLyogU2V0IHVwIHRoZSByZWFsLW1vZGUga2VybmVsIHN0YWNrICovCi0JX1NTID0gc2VnOwotCV9TUCA9IGhlYXBfZW5kOwotCi0JX0RTID0gX0VTID0gX0ZTID0gX0dTID0gc2VnOwotCWptcF9mYXIoc2VnKzB4MjAsIDApOwkvKiBSdW4gdGhlIGtlcm5lbCAqLwotCi1JZiB5b3VyIGJvb3Qgc2VjdG9yIGFjY2Vzc2VzIGEgZmxvcHB5IGRyaXZlLCBpdCBpcyByZWNvbW1lbmRlZCB0bwotc3dpdGNoIG9mZiB0aGUgZmxvcHB5IG1vdG9yIGJlZm9yZSBydW5uaW5nIHRoZSBrZXJuZWwsIHNpbmNlIHRoZQota2VybmVsIGJvb3QgbGVhdmVzIGludGVycnVwdHMgb2ZmIGFuZCB0aHVzIHRoZSBtb3RvciB3aWxsIG5vdCBiZQotc3dpdGNoZWQgb2ZmLCBlc3BlY2lhbGx5IGlmIHRoZSBsb2FkZWQga2VybmVsIGhhcyB0aGUgZmxvcHB5IGRyaXZlciBhcwotYSBkZW1hbmQtbG9hZGVkIG1vZHVsZSEKLQotCi0qKioqIEFEVkFOQ0VEIEJPT1QgTE9BREVSIEhPT0tTCi0KLUlmIHRoZSBib290IGxvYWRlciBydW5zIGluIGEgcGFydGljdWxhcmx5IGhvc3RpbGUgZW52aXJvbm1lbnQgKHN1Y2ggYXMKLUxPQURMSU4sIHdoaWNoIHJ1bnMgdW5kZXIgRE9TKSBpdCBtYXkgYmUgaW1wb3NzaWJsZSB0byBmb2xsb3cgdGhlCi1zdGFuZGFyZCBtZW1vcnkgbG9jYXRpb24gcmVxdWlyZW1lbnRzLiAgU3VjaCBhIGJvb3QgbG9hZGVyIG1heSB1c2UgdGhlCi1mb2xsb3dpbmcgaG9va3MgdGhhdCwgaWYgc2V0LCBhcmUgaW52b2tlZCBieSB0aGUga2VybmVsIGF0IHRoZQotYXBwcm9wcmlhdGUgdGltZS4gIFRoZSB1c2Ugb2YgdGhlc2UgaG9va3Mgc2hvdWxkIHByb2JhYmx5IGJlCi1jb25zaWRlcmVkIGFuIGFic29sdXRlbHkgbGFzdCByZXNvcnQhCi0KLUlNUE9SVEFOVDogQWxsIHRoZSBob29rcyBhcmUgcmVxdWlyZWQgdG8gcHJlc2VydmUgJWVzcCwgJWVicCwgJWVzaSBhbmQKLSVlZGkgYWNyb3NzIGludm9jYXRpb24uCi0KLSAgcmVhbG1vZGVfc3d0Y2g6Ci0JQSAxNi1iaXQgcmVhbCBtb2RlIGZhciBzdWJyb3V0aW5lIGludm9rZWQgaW1tZWRpYXRlbHkgYmVmb3JlCi0JZW50ZXJpbmcgcHJvdGVjdGVkIG1vZGUuICBUaGUgZGVmYXVsdCByb3V0aW5lIGRpc2FibGVzIE5NSSwgc28KLQl5b3VyIHJvdXRpbmUgc2hvdWxkIHByb2JhYmx5IGRvIHNvLCB0b28uCi0KLSAgY29kZTMyX3N0YXJ0OgotCUEgMzItYml0IGZsYXQtbW9kZSByb3V0aW5lICpqdW1wZWQqIHRvIGltbWVkaWF0ZWx5IGFmdGVyIHRoZQotCXRyYW5zaXRpb24gdG8gcHJvdGVjdGVkIG1vZGUsIGJ1dCBiZWZvcmUgdGhlIGtlcm5lbCBpcwotCXVuY29tcHJlc3NlZC4gIE5vIHNlZ21lbnRzLCBleGNlcHQgQ1MsIGFyZSBndWFyYW50ZWVkIHRvIGJlCi0Jc2V0IHVwIChjdXJyZW50IGtlcm5lbHMgZG8sIGJ1dCBvbGRlciBvbmVzIGRvIG5vdCk7IHlvdSBzaG91bGQKLQlzZXQgdGhlbSB1cCB0byBCT09UX0RTICgweDE4KSB5b3Vyc2VsZi4KLQotCUFmdGVyIGNvbXBsZXRpbmcgeW91ciBob29rLCB5b3Ugc2hvdWxkIGp1bXAgdG8gdGhlIGFkZHJlc3MKLQl0aGF0IHdhcyBpbiB0aGlzIGZpZWxkIGJlZm9yZSB5b3VyIGJvb3QgbG9hZGVyIG92ZXJ3cm90ZSBpdAotCShyZWxvY2F0ZWQsIGlmIGFwcHJvcHJpYXRlLikKLQotCi0qKioqIDMyLWJpdCBCT09UIFBST1RPQ09MCi0KLUZvciBtYWNoaW5lIHdpdGggc29tZSBuZXcgQklPUyBvdGhlciB0aGFuIGxlZ2FjeSBCSU9TLCBzdWNoIGFzIEVGSSwKLUxpbnV4QklPUywgZXRjLCBhbmQga2V4ZWMsIHRoZSAxNi1iaXQgcmVhbCBtb2RlIHNldHVwIGNvZGUgaW4ga2VybmVsCi1iYXNlZCBvbiBsZWdhY3kgQklPUyBjYW4gbm90IGJlIHVzZWQsIHNvIGEgMzItYml0IGJvb3QgcHJvdG9jb2wgbmVlZHMKLXRvIGJlIGRlZmluZWQuCi0KLUluIDMyLWJpdCBib290IHByb3RvY29sLCB0aGUgZmlyc3Qgc3RlcCBpbiBsb2FkaW5nIGEgTGludXgga2VybmVsCi1zaG91bGQgYmUgdG8gc2V0dXAgdGhlIGJvb3QgcGFyYW1ldGVycyAoc3RydWN0IGJvb3RfcGFyYW1zLAotdHJhZGl0aW9uYWxseSBrbm93biBhcyAiemVybyBwYWdlIikuIFRoZSBtZW1vcnkgZm9yIHN0cnVjdCBib290X3BhcmFtcwotc2hvdWxkIGJlIGFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQgdG8gYWxsIHplcm8uIFRoZW4gdGhlIHNldHVwIGhlYWRlcgotZnJvbSBvZmZzZXQgMHgwMWYxIG9mIGtlcm5lbCBpbWFnZSBvbiBzaG91bGQgYmUgbG9hZGVkIGludG8gc3RydWN0Ci1ib290X3BhcmFtcyBhbmQgZXhhbWluZWQuIFRoZSBlbmQgb2Ygc2V0dXAgaGVhZGVyIGNhbiBiZSBjYWxjdWxhdGVkIGFzCi1mb2xsb3c6Ci0KLQkweDAyMDIgKyBieXRlIHZhbHVlIGF0IG9mZnNldCAweDAyMDEKLQotSW4gYWRkaXRpb24gdG8gcmVhZC9tb2RpZnkvd3JpdGUgdGhlIHNldHVwIGhlYWRlciBvZiB0aGUgc3RydWN0Ci1ib290X3BhcmFtcyBhcyB0aGF0IG9mIDE2LWJpdCBib290IHByb3RvY29sLCB0aGUgYm9vdCBsb2FkZXIgc2hvdWxkCi1hbHNvIGZpbGwgdGhlIGFkZGl0aW9uYWwgZmllbGRzIG9mIHRoZSBzdHJ1Y3QgYm9vdF9wYXJhbXMgYXMgdGhhdAotZGVzY3JpYmVkIGluIHplcm8tcGFnZS50eHQuCi0KLUFmdGVyIHNldHVwcGluZyB0aGUgc3RydWN0IGJvb3RfcGFyYW1zLCB0aGUgYm9vdCBsb2FkZXIgY2FuIGxvYWQgdGhlCi0zMi82NC1iaXQga2VybmVsIGluIHRoZSBzYW1lIHdheSBhcyB0aGF0IG9mIDE2LWJpdCBib290IHByb3RvY29sLgotCi1JbiAzMi1iaXQgYm9vdCBwcm90b2NvbCwgdGhlIGtlcm5lbCBpcyBzdGFydGVkIGJ5IGp1bXBpbmcgdG8gdGhlCi0zMi1iaXQga2VybmVsIGVudHJ5IHBvaW50LCB3aGljaCBpcyB0aGUgc3RhcnQgYWRkcmVzcyBvZiBsb2FkZWQKLTMyLzY0LWJpdCBrZXJuZWwuCi0KLUF0IGVudHJ5LCB0aGUgQ1BVIG11c3QgYmUgaW4gMzItYml0IHByb3RlY3RlZCBtb2RlIHdpdGggcGFnaW5nCi1kaXNhYmxlZDsgYSBHRFQgbXVzdCBiZSBsb2FkZWQgd2l0aCB0aGUgZGVzY3JpcHRvcnMgZm9yIHNlbGVjdG9ycwotX19CT09UX0NTKDB4MTApIGFuZCBfX0JPT1RfRFMoMHgxOCk7IGJvdGggZGVzY3JpcHRvcnMgbXVzdCBiZSA0RyBmbGF0Ci1zZWdtZW50OyBfX0JPT1NfQ1MgbXVzdCBoYXZlIGV4ZWN1dGUvcmVhZCBwZXJtaXNzaW9uLCBhbmQgX19CT09UX0RTCi1tdXN0IGhhdmUgcmVhZC93cml0ZSBwZXJtaXNzaW9uOyBDUyBtdXN0IGJlIF9fQk9PVF9DUyBhbmQgRFMsIEVTLCBTUwotbXVzdCBiZSBfX0JPT1RfRFM7IGludGVycnVwdCBtdXN0IGJlIGRpc2FibGVkOyAlZXNpIG11c3QgaG9sZCB0aGUgYmFzZQotYWRkcmVzcyBvZiB0aGUgc3RydWN0IGJvb3RfcGFyYW1zOyAlZWJwLCAlZWRpIGFuZCAlZWJ4IG11c3QgYmUgemVyby4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaW9jdGwtbnVtYmVyLnR4dCBiL0RvY3VtZW50YXRpb24vaW9jdGwtbnVtYmVyLnR4dAppbmRleCAyNDBjZTdhLi4zYmI1ZjQ2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2lvY3RsLW51bWJlci50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9pb2N0bC1udW1iZXIudHh0CkBAIC0xMTcsNiArMTE3LDcgQEAKIAkJCQkJPG1haWx0bzpuYXRhbGlhQG5pa2hlZmsubmlraGVmLm5sPgogJ2MnCTAwLTdGCWxpbnV4L2NvbXN0YXRzLmgJY29uZmxpY3QhCiAnYycJMDAtN0YJbGludXgvY29kYS5oCQljb25mbGljdCEKKydjJwk4MC05Rglhc20tczM5MC9jaHNjLmgKICdkJwkwMC1GRglsaW51eC9jaGFyL2RybS9kcm0vaAljb25mbGljdCEKICdkJwkwMC1ERglsaW51eC92aWRlb19kZWNvZGVyLmgJY29uZmxpY3QhCiAnZCcJRjAtRkYJbGludXgvZGlnaTEuaApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9rZHVtcC9rZHVtcC50eHQgYi9Eb2N1bWVudGF0aW9uL2tkdW1wL2tkdW1wLnR4dAppbmRleCBiOGU1MmMwLi45NjkxYzdmIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2tkdW1wL2tkdW1wLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2tkdW1wL2tkdW1wLnR4dApAQCAtMTA5LDcgKzEwOSw3IEBACiAyKSBPciB1c2UgdGhlIHN5c3RlbSBrZXJuZWwgYmluYXJ5IGl0c2VsZiBhcyBkdW1wLWNhcHR1cmUga2VybmVsIGFuZCB0aGVyZSBpcwogICAgbm8gbmVlZCB0byBidWlsZCBhIHNlcGFyYXRlIGR1bXAtY2FwdHVyZSBrZXJuZWwuIFRoaXMgaXMgcG9zc2libGUKICAgIG9ubHkgd2l0aCB0aGUgYXJjaGl0ZWN1dHJlcyB3aGljaCBzdXBwb3J0IGEgcmVsb2NhdGFibGUga2VybmVsLiBBcwotICAgb2YgdG9kYXkgaTM4NiBhbmQgaWE2NCBhcmNoaXRlY3R1cmVzIHN1cHBvcnQgcmVsb2NhdGFibGUga2VybmVsLgorICAgb2YgdG9kYXksIGkzODYsIHg4Nl82NCBhbmQgaWE2NCBhcmNoaXRlY3R1cmVzIHN1cHBvcnQgcmVsb2NhdGFibGUga2VybmVsLgogCiBCdWlsZGluZyBhIHJlbG9jYXRhYmxlIGtlcm5lbCBpcyBhZHZhbnRhZ2VvdXMgZnJvbSB0aGUgcG9pbnQgb2YgdmlldyB0aGF0CiBvbmUgZG9lcyBub3QgaGF2ZSB0byBidWlsZCBhIHNlY29uZCBrZXJuZWwgZm9yIGNhcHR1cmluZyB0aGUgZHVtcC4gQnV0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dCBiL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0CmluZGV4IGUwN2M0MzIuLjMxMmZlNzcgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0CkBAIC0yNzEsNiArMjcxLDE3IEBACiAJYWljNzl4eD0JW0hXLFNDU0ldCiAJCQlTZWUgRG9jdW1lbnRhdGlvbi9zY3NpL2FpYzc5eHgudHh0LgogCisJYW1kX2lvbW11PQlbSFcsWDg2LTg0XQorCQkJUGFzcyBwYXJhbWV0ZXJzIHRvIHRoZSBBTUQgSU9NTVUgZHJpdmVyIGluIHRoZSBzeXN0ZW0uCisJCQlQb3NzaWJsZSB2YWx1ZXMgYXJlOgorCQkJaXNvbGF0ZSAtIGVuYWJsZSBkZXZpY2UgaXNvbGF0aW9uIChlYWNoIGRldmljZSwgYXMgZmFyCisJCQkgICAgICAgICAgYXMgcG9zc2libGUsIHdpbGwgZ2V0IGl0cyBvd24gcHJvdGVjdGlvbgorCQkJICAgICAgICAgIGRvbWFpbikKKwlhbWRfaW9tbXVfc2l6ZT0gW0hXLFg4Ni02NF0KKwkJCURlZmluZSB0aGUgc2l6ZSBvZiB0aGUgYXBlcnR1cmUgZm9yIHRoZSBBTUQgSU9NTVUKKwkJCWRyaXZlci4gUG9zc2libGUgdmFsdWVzIGFyZToKKwkJCSczMk0nLCAnNjRNJyAoZGVmYXVsdCksICcxMjhNJywgJzI1Nk0nLCAnNTEyTScsICcxRycKKwogCWFtaWpveS5tYXA9CVtIVyxKT1ldIEFtaWdhIGpveXN0aWNrIHN1cHBvcnQKIAkJCU1hcCBvZiBkZXZpY2VzIGF0dGFjaGVkIHRvIEpPWTBEQVQgYW5kIEpPWTFEQVQKIAkJCUZvcm1hdDogPGE+LDxiPgpAQCAtMjk1LDcgKzMwNiw3IEBACiAJCQl3aGVuIGluaXRpYWxpc2luZyB0aGUgQVBJQyBhbmQgSU8tQVBJQyBjb21wb25lbnRzLgogCiAJYXBtPQkJW0FQTV0gQWR2YW5jZWQgUG93ZXIgTWFuYWdlbWVudAotCQkJU2VlIGhlYWRlciBvZiBhcmNoL2kzODYva2VybmVsL2FwbS5jLgorCQkJU2VlIGhlYWRlciBvZiBhcmNoL3g4Ni9rZXJuZWwvYXBtXzMyLmMuCiAKIAlhcmNyaW1pPQlbSFcsTkVUXSBBUkNuZXQgLSAiUklNIEkiIChlbnRpcmVseSBtZW0tbWFwcGVkKSBjYXJkcwogCQkJRm9ybWF0OiA8aW8+LDxpcnE+LDxub2RlSUQ+CkBAIC01NjAsNiArNTcxLDggQEAKIAogCWRlYnVnX29iamVjdHMJW0tOTF0gRW5hYmxlIG9iamVjdCBkZWJ1Z2dpbmcKIAorCWRlYnVncGF0CVtYODZdIEVuYWJsZSBQQVQgZGVidWdnaW5nCisKIAlkZWNuZXQuYWRkcj0JW0hXLE5FVF0KIAkJCUZvcm1hdDogPGFyZWE+Wyw8bm9kZT5dCiAJCQlTZWUgYWxzbyBEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGVjbmV0LnR4dC4KQEAgLTU5OSw2ICs2MTIsMjkgQEAKIAkJCVNlZSBkcml2ZXJzL2NoYXIvUkVBRE1FLmVwY2EgYW5kCiAJCQlEb2N1bWVudGF0aW9uL2RpZ2llcGNhLnR4dC4KIAorCWRpc2FibGVfbXRycl9jbGVhbnVwIFtYODZdCisJZW5hYmxlX210cnJfY2xlYW51cCBbWDg2XQorCQkJVGhlIGtlcm5lbCB0cmllcyB0byBhZGp1c3QgTVRSUiBsYXlvdXQgZnJvbSBjb250aW51b3VzCisJCQl0byBkaXNjcmV0ZSwgdG8gbWFrZSBYIHNlcnZlciBkcml2ZXIgYWJsZSB0byBhZGQgV0IKKwkJCWVudHJ5IGxhdGVyLiBUaGlzIHBhcmFtZXRlciBlbmFibGVzL2Rpc2FibGVzIHRoYXQuCisKKwltdHJyX2NodW5rX3NpemU9bm5bS01HXSBbWDg2XQorCQkJdXNlZCBmb3IgbXRyciBjbGVhbnVwLiBJdCBpcyBsYXJnZXN0IGNvbnRpbm91cyBjaHVuaworCQkJdGhhdCBjb3VsZCBob2xkIGhvbGVzIGFrYS4gVUMgZW50cmllcy4KKworCW10cnJfZ3Jhbl9zaXplPW5uW0tNR10gW1g4Nl0KKwkJCVVzZWQgZm9yIG10cnIgY2xlYW51cC4gSXQgaXMgZ3JhbnVsYXJpdHkgb2YgbXRyciBibG9jay4KKwkJCURlZmF1bHQgaXMgMS4KKwkJCUxhcmdlIHZhbHVlIGNvdWxkIHByZXZlbnQgc21hbGwgYWxpZ25tZW50IGZyb20KKwkJCXVzaW5nIHVwIE1UUlJzLgorCisJbXRycl9zcGFyZV9yZWdfbnI9biBbWDg2XQorCQkJRm9ybWF0OiA8aW50ZWdlcj4KKwkJCVJhbmdlOiAwLDcgOiBzcGFyZSByZWcgbnVtYmVyCisJCQlEZWZhdWx0IDogMQorCQkJVXNlZCBmb3IgbXRyciBjbGVhbnVwLiBJdCBpcyBzcGFyZSBtdHJyIGVudHJpZXMgbnVtYmVyLgorCQkJU2V0IHRvIDIgb3IgbW9yZSBpZiB5b3VyIGdyYXBoaWNhbCBjYXJkIG5lZWRzIG1vcmUuCisKIAlkaXNhYmxlX210cnJfdHJpbSBbWDg2LCBJbnRlbCBhbmQgQU1EIG9ubHldCiAJCQlCeSBkZWZhdWx0IHRoZSBrZXJuZWwgd2lsbCB0cmltIGFueSB1bmNhY2hlYWJsZQogCQkJbWVtb3J5IG91dCBvZiB5b3VyIGF2YWlsYWJsZSBtZW1vcnkgcG9vbCBiYXNlZCBvbgpAQCAtNjM4LDcgKzY3NCw3IEBACiAKIAllbGFuZnJlcT0JW1g4Ni0zMl0KIAkJCVNlZSBjb21tZW50IGJlZm9yZSBmdW5jdGlvbiBlbGFuZnJlcV9zZXR1cCgpIGluCi0JCQlhcmNoL2kzODYva2VybmVsL2NwdS9jcHVmcmVxL2VsYW5mcmVxLmMuCisJCQlhcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvZWxhbmZyZXEuYy4KIAogCWVsZXZhdG9yPQlbSU9TQ0hFRF0KIAkJCUZvcm1hdDogeyJhbnRpY2lwYXRvcnkiIHwgImNmcSIgfCAiZGVhZGxpbmUiIHwgIm5vb3AifQpAQCAtNzIyLDkgKzc1OCw2IEBACiAJaGQ9CQlbRUlERV0gKEUpSURFIGhhcmQgZHJpdmUgc3Vic3lzdGVtIGdlb21ldHJ5CiAJCQlGb3JtYXQ6IDxjeWw+LDxoZWFkPiw8c2VjdD4KIAotCWhkPz0JCVtIV10gKEUpSURFIHN1YnN5c3RlbQotCWhkP2x1bj0JCVNlZSBEb2N1bWVudGF0aW9uL2lkZS9pZGUudHh0LgotCiAJaGlnaG1lbT1ubltLTUddCVtLTkwsQk9PVF0gZm9yY2VzIHRoZSBoaWdobWVtIHpvbmUgdG8gaGF2ZSBhbiBleGFjdAogCQkJc2l6ZSBvZiA8bm4+LiBUaGlzIHdvcmtzIGV2ZW4gb24gYm94ZXMgdGhhdCBoYXZlIG5vCiAJCQloaWdobWVtIG90aGVyd2lzZS4gVGhpcyBhbHNvIHdvcmtzIHRvIHJlZHVjZSBoaWdobWVtCkBAIC0xMjA4LDYgKzEyNDEsMTEgQEAKIAltdGRwYXJ0cz0JW01URF0KIAkJCVNlZSBkcml2ZXJzL210ZC9jbWRsaW5lcGFydC5jLgogCisJbXRkc2V0PQkJW0FSTV0KKwkJCUFSTS9TM0MyNDEyIEpJVkUgYm9vdCBjb250cm9sCisKKwkJCVNlZSBhcmNoL2FybS9tYWNoLXMzYzI0MTIvbWFjaC1qaXZlLmMKKwogCW10b3VjaHVzYi5yYXdfY29vcmRpbmF0ZXM9CiAJCQlbSFddIE1ha2UgdGhlIE1pY3JvVG91Y2ggVVNCIGRyaXZlciB1c2UgcmF3IGNvb3JkaW5hdGVzCiAJCQkoJ3knLCBkZWZhdWx0KSBvciBjb29rZWQgY29vcmRpbmF0ZXMgKCduJykKQEAgLTE1NzEsNiArMTYwOSwxMCBAQAogCQkJRm9ybWF0OiB7IHBhcnBvcnQ8bnI+IHwgdGltaWQgfCAwIH0KIAkJCVNlZSBhbHNvIERvY3VtZW50YXRpb24vcGFycG9ydC50eHQuCiAKKwlwbXRtcj0JCVtYODZdIE1hbnVhbCBzZXR1cCBvZiBwbXRtciBJL08gUG9ydC4gCisJCQlPdmVycmlkZSBwbXRpbWVyIElPUG9ydCB3aXRoIGEgaGV4IHZhbHVlLgorCQkJZS5nLiBwbXRtcj0weDUwOAorCiAJcG5wYWNwaT0JW0FDUEldCiAJCQl7IG9mZiB9CiAKQEAgLTE2NzksNiArMTcyMSwxMCBAQAogCQkJRm9ybWF0OiA8cmVib290X21vZGU+Wyw8cmVib290X21vZGUyPlssLi4uXV0KIAkJCVNlZSBhcmNoLyova2VybmVsL3JlYm9vdC5jIG9yIGFyY2gvKi9rZXJuZWwvcHJvY2Vzcy5jCQkJCiAKKwlyZWxheF9kb21haW5fbGV2ZWw9CisJCQlbS05MLCBTTVBdIFNldCBzY2hlZHVsZXIncyBkZWZhdWx0IHJlbGF4X2RvbWFpbl9sZXZlbC4KKwkJCVNlZSBEb2N1bWVudGF0aW9uL2NwdXNldHMudHh0LgorCiAJcmVzZXJ2ZT0JW0tOTCxCVUdTXSBGb3JjZSB0aGUga2VybmVsIHRvIGlnbm9yZSBzb21lIGlvbWVtIGFyZWEKIAogCXJlc2VydmV0b3A9CVtYODYtMzJdCkBAIC0yMTEyLDYgKzIxNTgsOSBAQAogCXVzYmhpZC5tb3VzZXBvbGw9CiAJCQlbVVNCSElEXSBUaGUgaW50ZXJ2YWwgd2hpY2ggbWljZSBhcmUgdG8gYmUgcG9sbGVkIGF0LgogCisJYWRkX2VmaV9tZW1tYXAJW0VGSTsgeDg2LTMyLFg4Ni02NF0gSW5jbHVkZSBFRkkgbWVtb3J5IG1hcCBpbgorCQkJa2VybmVsJ3MgbWFwIG9mIGF2YWlsYWJsZSBwaHlzaWNhbCBSQU0uCisKIAl2ZHNvPQkJW1g4Ni0zMixTSCx4ODYtNjRdCiAJCQl2ZHNvPTI6IGVuYWJsZSBjb21wYXQgVkRTTyAoZGVmYXVsdCB3aXRoIENPTVBBVF9WRFNPKQogCQkJdmRzbz0xOiBlbmFibGUgVkRTTyAoZGVmYXVsdCkKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0IGIvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2lwLXN5c2N0bC50eHQKaW5kZXggMTdhNmU0Ni4uOTQ2YjY2ZSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2lwLXN5c2N0bC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2lwLXN5c2N0bC50eHQKQEAgLTgxLDIzICs4MSwyMyBAQAogCU1pbmltdW0gdGltZS10by1saXZlIG9mIGVudHJpZXMuICBTaG91bGQgYmUgZW5vdWdoIHRvIGNvdmVyIGZyYWdtZW50CiAJdGltZS10by1saXZlIG9uIHRoZSByZWFzc2VtYmxpbmcgc2lkZS4gIFRoaXMgbWluaW11bSB0aW1lLXRvLWxpdmUgIGlzCiAJZ3VhcmFudGVlZCBpZiB0aGUgcG9vbCBzaXplIGlzIGxlc3MgdGhhbiBpbmV0X3BlZXJfdGhyZXNob2xkLgotCU1lYXN1cmVkIGluIGppZmZpZXMoMSkuCisJTWVhc3VyZWQgaW4gc2Vjb25kcy4KIAogaW5ldF9wZWVyX21heHR0bCAtIElOVEVHRVIKIAlNYXhpbXVtIHRpbWUtdG8tbGl2ZSBvZiBlbnRyaWVzLiAgVW51c2VkIGVudHJpZXMgd2lsbCBleHBpcmUgYWZ0ZXIKIAl0aGlzIHBlcmlvZCBvZiB0aW1lIGlmIHRoZXJlIGlzIG5vIG1lbW9yeSBwcmVzc3VyZSBvbiB0aGUgcG9vbCAoaS5lLgogCXdoZW4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBwb29sIGlzIHZlcnkgc21hbGwpLgotCU1lYXN1cmVkIGluIGppZmZpZXMoMSkuCisJTWVhc3VyZWQgaW4gc2Vjb25kcy4KIAogaW5ldF9wZWVyX2djX21pbnRpbWUgLSBJTlRFR0VSCiAJTWluaW11bSBpbnRlcnZhbCBiZXR3ZWVuIGdhcmJhZ2UgY29sbGVjdGlvbiBwYXNzZXMuICBUaGlzIGludGVydmFsIGlzCiAJaW4gZWZmZWN0IHVuZGVyIGhpZ2ggbWVtb3J5IHByZXNzdXJlIG9uIHRoZSBwb29sLgotCU1lYXN1cmVkIGluIGppZmZpZXMoMSkuCisJTWVhc3VyZWQgaW4gc2Vjb25kcy4KIAogaW5ldF9wZWVyX2djX21heHRpbWUgLSBJTlRFR0VSCiAJTWluaW11bSBpbnRlcnZhbCBiZXR3ZWVuIGdhcmJhZ2UgY29sbGVjdGlvbiBwYXNzZXMuICBUaGlzIGludGVydmFsIGlzCiAJaW4gZWZmZWN0IHVuZGVyIGxvdyAob3IgYWJzZW50KSBtZW1vcnkgcHJlc3N1cmUgb24gdGhlIHBvb2wuCi0JTWVhc3VyZWQgaW4gamlmZmllcygxKS4KKwlNZWFzdXJlZCBpbiBzZWNvbmRzLgogCiBUQ1AgdmFyaWFibGVzOiAKIApAQCAtMTQ4LDkgKzE0OCw5IEBACiAJYnV0IG5vdCBsb2FkZWQuCiAKIHRjcF9iYXNlX21zcyAtIElOVEVHRVIKLQlUaGUgaW5pdGlhbCB2YWx1ZSBvZiBzZWFyY2hfbG93IHRvIGJlIHVzZWQgYnkgUGFja2V0aXphdGlvbiBMYXllcgotCVBhdGggTVRVIERpc2NvdmVyeSAoTVRVIHByb2JpbmcpLiAgSWYgTVRVIHByb2JpbmcgaXMgZW5hYmxlZCwKLQl0aGlzIGlzIHRoZSBpbml0YWwgTVNTIHVzZWQgYnkgdGhlIGNvbm5lY3Rpb24uCisJVGhlIGluaXRpYWwgdmFsdWUgb2Ygc2VhcmNoX2xvdyB0byBiZSB1c2VkIGJ5IHRoZSBwYWNrZXRpemF0aW9uIGxheWVyCisJUGF0aCBNVFUgZGlzY292ZXJ5IChNVFUgcHJvYmluZykuICBJZiBNVFUgcHJvYmluZyBpcyBlbmFibGVkLAorCXRoaXMgaXMgdGhlIGluaXRpYWwgTVNTIHVzZWQgYnkgdGhlIGNvbm5lY3Rpb24uCiAKIHRjcF9jb25nZXN0aW9uX2NvbnRyb2wgLSBTVFJJTkcKIAlTZXQgdGhlIGNvbmdlc3Rpb24gY29udHJvbCBhbGdvcml0aG0gdG8gYmUgdXNlZCBmb3IgbmV3CkBAIC0xODUsMTAgKzE4NSw5IEBACiAJdGltZW91dHMuICBJdCBpcyBwYXJ0aWN1bGFybHkgYmVuZWZpY2lhbCBpbiB3aXJlbGVzcyBlbnZpcm9ubWVudHMKIAl3aGVyZSBwYWNrZXQgbG9zcyBpcyB0eXBpY2FsbHkgZHVlIHRvIHJhbmRvbSByYWRpbyBpbnRlcmZlcmVuY2UKIAlyYXRoZXIgdGhhbiBpbnRlcm1lZGlhdGUgcm91dGVyIGNvbmdlc3Rpb24uICBGLVJUTyBpcyBzZW5kZXItc2lkZQotCW9ubHkgbW9kaWZpY2F0aW9uLiAgVGhlcmVmb3JlIGl0IGRvZXMgbm90IHJlcXVpcmUgYW55IHN1cHBvcnQgZnJvbQotCXRoZSBwZWVyLCBidXQgaW4gYSB0eXBpY2FsIGNhc2UsIGhvd2V2ZXIsIHdoZXJlIHdpcmVsZXNzIGxpbmsgaXMKLQl0aGUgbG9jYWwgYWNjZXNzIGxpbmsgYW5kIG1vc3Qgb2YgdGhlIGRhdGEgZmxvd3MgZG93bmxpbmssIHRoZQotCWZhcmF3YXkgc2VydmVycyBzaG91bGQgaGF2ZSBGLVJUTyBlbmFibGVkIHRvIHRha2UgYWR2YW50YWdlIG9mIGl0LgorCW9ubHkgbW9kaWZpY2F0aW9uLiBUaGVyZWZvcmUgaXQgZG9lcyBub3QgcmVxdWlyZSBhbnkgc3VwcG9ydCBmcm9tCisJdGhlIHBlZXIuCisKIAlJZiBzZXQgdG8gMSwgYmFzaWMgdmVyc2lvbiBpcyBlbmFibGVkLiAgMiBlbmFibGVzIFNBQ0sgZW5oYW5jZWQKIAlGLVJUTyBpZiBmbG93IHVzZXMgU0FDSy4gIFRoZSBiYXNpYyB2ZXJzaW9uIGNhbiBiZSB1c2VkIGFsc28gd2hlbgogCVNBQ0sgaXMgaW4gdXNlIHRob3VnaCBzY2VuYXJpbyhzKSB3aXRoIGl0IGV4aXN0cyB3aGVyZSBGLVJUTwpAQCAtMjc2LDcgKzI3NSw3IEBACiAJbWVtb3J5LgogCiB0Y3BfbW9kZXJhdGVfcmN2YnVmIC0gQk9PTEVBTgotCUlmIHNldCwgVENQIHBlcmZvcm1zIHJlY2VpdmUgYnVmZmVyIGF1dG90dW5pbmcsIGF0dGVtcHRpbmcgdG8KKwlJZiBzZXQsIFRDUCBwZXJmb3JtcyByZWNlaXZlIGJ1ZmZlciBhdXRvLXR1bmluZywgYXR0ZW1wdGluZyB0bwogCWF1dG9tYXRpY2FsbHkgc2l6ZSB0aGUgYnVmZmVyIChubyBncmVhdGVyIHRoYW4gdGNwX3JtZW1bMl0pIHRvCiAJbWF0Y2ggdGhlIHNpemUgcmVxdWlyZWQgYnkgdGhlIHBhdGggZm9yIGZ1bGwgdGhyb3VnaHB1dC4gIEVuYWJsZWQgYnkKIAlkZWZhdWx0LgpAQCAtMzM2LDcgKzMzNSw3IEBACiAJcHJlc3N1cmUuCiAJRGVmYXVsdDogOEsKIAotCWRlZmF1bHQ6IGRlZmF1bHQgc2l6ZSBvZiByZWNlaXZlIGJ1ZmZlciB1c2VkIGJ5IFRDUCBzb2NrZXRzLgorCWRlZmF1bHQ6IGluaXRpYWwgc2l6ZSBvZiByZWNlaXZlIGJ1ZmZlciB1c2VkIGJ5IFRDUCBzb2NrZXRzLgogCVRoaXMgdmFsdWUgb3ZlcnJpZGVzIG5ldC5jb3JlLnJtZW1fZGVmYXVsdCB1c2VkIGJ5IG90aGVyIHByb3RvY29scy4KIAlEZWZhdWx0OiA4NzM4MCBieXRlcy4gVGhpcyB2YWx1ZSByZXN1bHRzIGluIHdpbmRvdyBvZiA2NTUzNSB3aXRoCiAJZGVmYXVsdCBzZXR0aW5nIG9mIHRjcF9hZHZfd2luX3NjYWxlIGFuZCB0Y3BfYXBwX3dpbjowIGFuZCBhIGJpdApAQCAtMzQ0LDggKzM0MywxMCBAQAogCiAJbWF4OiBtYXhpbWFsIHNpemUgb2YgcmVjZWl2ZSBidWZmZXIgYWxsb3dlZCBmb3IgYXV0b21hdGljYWxseQogCXNlbGVjdGVkIHJlY2VpdmVyIGJ1ZmZlcnMgZm9yIFRDUCBzb2NrZXQuIFRoaXMgdmFsdWUgZG9lcyBub3Qgb3ZlcnJpZGUKLQluZXQuY29yZS5ybWVtX21heCwgInN0YXRpYyIgc2VsZWN0aW9uIHZpYSBTT19SQ1ZCVUYgZG9lcyBub3QgdXNlIHRoaXMuCi0JRGVmYXVsdDogODczODAqMiBieXRlcy4KKwluZXQuY29yZS5ybWVtX21heC4gIENhbGxpbmcgc2V0c29ja29wdCgpIHdpdGggU09fUkNWQlVGIGRpc2FibGVzCisJYXV0b21hdGljIHR1bmluZyBvZiB0aGF0IHNvY2tldCdzIHJlY2VpdmUgYnVmZmVyIHNpemUsIGluIHdoaWNoCisJY2FzZSB0aGlzIHZhbHVlIGlzIGlnbm9yZWQuCisJRGVmYXVsdDogYmV0d2VlbiA4NzM4MEIgYW5kIDRNQiwgZGVwZW5kaW5nIG9uIFJBTSBzaXplLgogCiB0Y3Bfc2FjayAtIEJPT0xFQU4KIAlFbmFibGUgc2VsZWN0IGFja25vd2xlZGdtZW50cyAoU0FDS1MpLgpAQCAtMzU4LDcgKzM1OSw3IEBACiAJRGVmYXVsdDogMQogCiB0Y3Bfc3RkdXJnIC0gQk9PTEVBTgotCVVzZSB0aGUgSG9zdCByZXF1aXJlbWVudHMgaW50ZXJwcmV0YXRpb24gb2YgdGhlIFRDUCB1cmcgcG9pbnRlciBmaWVsZC4KKwlVc2UgdGhlIEhvc3QgcmVxdWlyZW1lbnRzIGludGVycHJldGF0aW9uIG9mIHRoZSBUQ1AgdXJnZW50IHBvaW50ZXIgZmllbGQuCiAJTW9zdCBob3N0cyB1c2UgdGhlIG9sZGVyIEJTRCBpbnRlcnByZXRhdGlvbiwgc28gaWYgeW91IHR1cm4gdGhpcyBvbgogCUxpbnV4IG1pZ2h0IG5vdCBjb21tdW5pY2F0ZSBjb3JyZWN0bHkgd2l0aCB0aGVtLgogCURlZmF1bHQ6IEZBTFNFCkBAIC0zNzEsMTIgKzM3MiwxMiBAQAogdGNwX3N5bmNvb2tpZXMgLSBCT09MRUFOCiAJT25seSB2YWxpZCB3aGVuIHRoZSBrZXJuZWwgd2FzIGNvbXBpbGVkIHdpdGggQ09ORklHX1NZTkNPT0tJRVMKIAlTZW5kIG91dCBzeW5jb29raWVzIHdoZW4gdGhlIHN5biBiYWNrbG9nIHF1ZXVlIG9mIGEgc29ja2V0Ci0Jb3ZlcmZsb3dzLiBUaGlzIGlzIHRvIHByZXZlbnQgYWdhaW5zdCB0aGUgY29tbW9uICdzeW4gZmxvb2QgYXR0YWNrJworCW92ZXJmbG93cy4gVGhpcyBpcyB0byBwcmV2ZW50IGFnYWluc3QgdGhlIGNvbW1vbiAnU1lOIGZsb29kIGF0dGFjaycKIAlEZWZhdWx0OiBGQUxTRQogCiAJTm90ZSwgdGhhdCBzeW5jb29raWVzIGlzIGZhbGxiYWNrIGZhY2lsaXR5LgogCUl0IE1VU1QgTk9UIGJlIHVzZWQgdG8gaGVscCBoaWdobHkgbG9hZGVkIHNlcnZlcnMgdG8gc3RhbmQKLQlhZ2FpbnN0IGxlZ2FsIGNvbm5lY3Rpb24gcmF0ZS4gSWYgeW91IHNlZSBzeW5mbG9vZCB3YXJuaW5ncworCWFnYWluc3QgbGVnYWwgY29ubmVjdGlvbiByYXRlLiBJZiB5b3Ugc2VlIFNZTiBmbG9vZCB3YXJuaW5ncwogCWluIHlvdXIgbG9ncywgYnV0IGludmVzdGlnYXRpb24Jc2hvd3MgdGhhdCB0aGV5IG9jY3VyCiAJYmVjYXVzZSBvZiBvdmVybG9hZCB3aXRoIGxlZ2FsIGNvbm5lY3Rpb25zLCB5b3Ugc2hvdWxkIHR1bmUKIAlhbm90aGVyIHBhcmFtZXRlcnMgdW50aWwgdGhpcyB3YXJuaW5nIGRpc2FwcGVhci4KQEAgLTM4Niw3ICszODcsNyBAQAogCXRvIHVzZSBUQ1AgZXh0ZW5zaW9ucywgY2FuIHJlc3VsdCBpbiBzZXJpb3VzIGRlZ3JhZGF0aW9uCiAJb2Ygc29tZSBzZXJ2aWNlcyAoZi5lLiBTTVRQIHJlbGF5aW5nKSwgdmlzaWJsZSBub3QgYnkgeW91LAogCWJ1dCB5b3VyIGNsaWVudHMgYW5kIHJlbGF5cywgY29udGFjdGluZyB5b3UuIFdoaWxlIHlvdSBzZWUKLQlzeW5mbG9vZCB3YXJuaW5ncyBpbiBsb2dzIG5vdCBiZWluZyByZWFsbHkgZmxvb2RlZCwgeW91ciBzZXJ2ZXIKKwlTWU4gZmxvb2Qgd2FybmluZ3MgaW4gbG9ncyBub3QgYmVpbmcgcmVhbGx5IGZsb29kZWQsIHlvdXIgc2VydmVyCiAJaXMgc2VyaW91c2x5IG1pc2NvbmZpZ3VyZWQuCiAKIHRjcF9zeW5fcmV0cmllcyAtIElOVEVHRVIKQEAgLTQxOSwxOSArNDIwLDIxIEBACiAJRW5hYmxlIHdpbmRvdyBzY2FsaW5nIGFzIGRlZmluZWQgaW4gUkZDMTMyMy4KIAogdGNwX3dtZW0gLSB2ZWN0b3Igb2YgMyBJTlRFR0VSczogbWluLCBkZWZhdWx0LCBtYXgKLQltaW46IEFtb3VudCBvZiBtZW1vcnkgcmVzZXJ2ZWQgZm9yIHNlbmQgYnVmZmVycyBmb3IgVENQIHNvY2tldC4KKwltaW46IEFtb3VudCBvZiBtZW1vcnkgcmVzZXJ2ZWQgZm9yIHNlbmQgYnVmZmVycyBmb3IgVENQIHNvY2tldHMuCiAJRWFjaCBUQ1Agc29ja2V0IGhhcyByaWdodHMgdG8gdXNlIGl0IGR1ZSB0byBmYWN0IG9mIGl0cyBiaXJ0aC4KIAlEZWZhdWx0OiA0SwogCi0JZGVmYXVsdDogQW1vdW50IG9mIG1lbW9yeSBhbGxvd2VkIGZvciBzZW5kIGJ1ZmZlcnMgZm9yIFRDUCBzb2NrZXQKLQlieSBkZWZhdWx0LiBUaGlzIHZhbHVlIG92ZXJyaWRlcyBuZXQuY29yZS53bWVtX2RlZmF1bHQgdXNlZAotCWJ5IG90aGVyIHByb3RvY29scywgaXQgaXMgdXN1YWxseSBsb3dlciB0aGFuIG5ldC5jb3JlLndtZW1fZGVmYXVsdC4KKwlkZWZhdWx0OiBpbml0aWFsIHNpemUgb2Ygc2VuZCBidWZmZXIgdXNlZCBieSBUQ1Agc29ja2V0cy4gIFRoaXMKKwl2YWx1ZSBvdmVycmlkZXMgbmV0LmNvcmUud21lbV9kZWZhdWx0IHVzZWQgYnkgb3RoZXIgcHJvdG9jb2xzLgorCUl0IGlzIHVzdWFsbHkgbG93ZXIgdGhhbiBuZXQuY29yZS53bWVtX2RlZmF1bHQuCiAJRGVmYXVsdDogMTZLCiAKLQltYXg6IE1heGltYWwgYW1vdW50IG9mIG1lbW9yeSBhbGxvd2VkIGZvciBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkCi0Jc2VuZCBidWZmZXJzIGZvciBUQ1Agc29ja2V0LiBUaGlzIHZhbHVlIGRvZXMgbm90IG92ZXJyaWRlCi0JbmV0LmNvcmUud21lbV9tYXgsICJzdGF0aWMiIHNlbGVjdGlvbiB2aWEgU09fU05EQlVGIGRvZXMgbm90IHVzZSB0aGlzLgotCURlZmF1bHQ6IDEyOEsKKwltYXg6IE1heGltYWwgYW1vdW50IG9mIG1lbW9yeSBhbGxvd2VkIGZvciBhdXRvbWF0aWNhbGx5IHR1bmVkCisJc2VuZCBidWZmZXJzIGZvciBUQ1Agc29ja2V0cy4gVGhpcyB2YWx1ZSBkb2VzIG5vdCBvdmVycmlkZQorCW5ldC5jb3JlLndtZW1fbWF4LiAgQ2FsbGluZyBzZXRzb2Nrb3B0KCkgd2l0aCBTT19TTkRCVUYgZGlzYWJsZXMKKwlhdXRvbWF0aWMgdHVuaW5nIG9mIHRoYXQgc29ja2V0J3Mgc2VuZCBidWZmZXIgc2l6ZSwgaW4gd2hpY2ggY2FzZQorCXRoaXMgdmFsdWUgaXMgaWdub3JlZC4KKwlEZWZhdWx0OiBiZXR3ZWVuIDY0SyBhbmQgNE1CLCBkZXBlbmRpbmcgb24gUkFNIHNpemUuCiAKIHRjcF93b3JrYXJvdW5kX3NpZ25lZF93aW5kb3dzIC0gQk9PTEVBTgogCUlmIHNldCwgYXNzdW1lIG5vIHJlY2VpcHQgb2YgYSB3aW5kb3cgc2NhbGluZyBvcHRpb24gbWVhbnMgdGhlCkBAIC03OTQsMTAgKzc5Nyw2IEBACiAJQWxsb3dzIHlvdSB0byB3cml0ZSBhIG51bWJlciwgd2hpY2ggY2FuIGJlIHVzZWQgYXMgcmVxdWlyZWQuCiAJRGVmYXVsdCB2YWx1ZSBpcyAwLgogCi0oMSkgSmlmZmllOiBpbnRlcm5hbCB0aW1ldW5pdCBmb3IgdGhlIGtlcm5lbC4gT24gdGhlIGkzODYgMS8xMDBzLCBvbiB0aGUKLUFscGhhIDEvMTAyNHMuIFNlZSB0aGUgSFogZGVmaW5lIGluIC91c3IvaW5jbHVkZS9hc20vcGFyYW0uaCBmb3IgdGhlIGV4YWN0Ci12YWx1ZSBvbiB5b3VyIHN5c3RlbS4gCi0KIEFsZXhleSBLdXpuZXRzb3YuCiBrdXpuZXRAbXMyLmluci5hYy5ydQogCkBAIC0xMDY0LDI0ICsxMDYzLDE5MyBAQAogCURlZmF1bHQ6IDEKIAogCitwcm9jL3N5cy9uZXQvc2N0cC8qIFZhcmlhYmxlczoKKworYWRkaXBfZW5hYmxlIC0gQk9PTEVBTgorCUVuYWJsZSBvciBkaXNhYmxlIGV4dGVuc2lvbiBvZiAgRHluYW1pYyBBZGRyZXNzIFJlY29uZmlndXJhdGlvbgorCShBREQtSVApIGZ1bmN0aW9uYWxpdHkgc3BlY2lmaWVkIGluIFJGQzUwNjEuICBUaGlzIGV4dGVuc2lvbiBwcm92aWRlcworCXRoZSBhYmlsaXR5IHRvIGR5bmFtaWNhbGx5IGFkZCBhbmQgcmVtb3ZlIG5ldyBhZGRyZXNzZXMgZm9yIHRoZSBTQ1RQCisJYXNzb2NpYXRpb25zLgorCisJMTogRW5hYmxlIGV4dGVuc2lvbi4KKworCTA6IERpc2FibGUgZXh0ZW5zaW9uLgorCisJRGVmYXVsdDogMAorCithZGRpcF9ub2F1dGhfZW5hYmxlIC0gQk9PTEVBTgorCUR5bmFtaWMgQWRkcmVzcyBSZWNvbmZpZ3VyYXRpb24gKEFERC1JUCkgcmVxdWlyZXMgdGhlIHVzZSBvZgorCWF1dGhlbnRpY2F0aW9uIHRvIHByb3RlY3QgdGhlIG9wZXJhdGlvbnMgb2YgYWRkaW5nIG9yIHJlbW92aW5nIG5ldworCWFkZHJlc3Nlcy4gIFRoaXMgcmVxdWlyZW1lbnQgaXMgbWFuZGF0ZWQgc28gdGhhdCB1bmF1dGhvcml6ZWQgaG9zdHMKKwl3b3VsZCBub3QgYmUgYWJsZSB0byBoaWphY2sgYXNzb2NpYXRpb25zLiAgSG93ZXZlciwgb2xkZXIKKwlpbXBsZW1lbnRhdGlvbnMgbWF5IG5vdCBoYXZlIGltcGxlbWVudGVkIHRoaXMgcmVxdWlyZW1lbnQgd2hpbGUKKwlhbGxvd2luZyB0aGUgQURELUlQIGV4dGVuc2lvbi4gIEZvciByZWFzb25zIG9mIGludGVyb3BlcmFiaWxpdHksCisJd2UgcHJvdmlkZSB0aGlzIHZhcmlhYmxlIHRvIGNvbnRyb2wgdGhlIGVuZm9yY2VtZW50IG9mIHRoZQorCWF1dGhlbnRpY2F0aW9uIHJlcXVpcmVtZW50LgorCisJMTogQWxsb3cgQURELUlQIGV4dGVuc2lvbiB0byBiZSB1c2VkIHdpdGhvdXQgYXV0aGVudGljYXRpb24uICBUaGlzCisJICAgc2hvdWxkIG9ubHkgYmUgc2V0IGluIGEgY2xvc2VkIGVudmlyb25tZW50IGZvciBpbnRlcm9wZXJhYmlsaXR5CisJICAgd2l0aCBvbGRlciBpbXBsZW1lbnRhdGlvbnMuCisKKwkwOiBFbmZvcmNlIHRoZSBhdXRoZW50aWNhdGlvbiByZXF1aXJlbWVudAorCisJRGVmYXVsdDogMAorCithdXRoX2VuYWJsZSAtIEJPT0xFQU4KKwlFbmFibGUgb3IgZGlzYWJsZSBBdXRoZW50aWNhdGVkIENodW5rcyBleHRlbnNpb24uICBUaGlzIGV4dGVuc2lvbgorCXByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIHNlbmQgYW5kIHJlY2VpdmUgYXV0aGVudGljYXRlZCBjaHVua3MgYW5kIGlzCisJcmVxdWlyZWQgZm9yIHNlY3VyZSBvcGVyYXRpb24gb2YgRHluYW1pYyBBZGRyZXNzIFJlY29uZmlndXJhdGlvbgorCShBREQtSVApIGV4dGVuc2lvbi4KKworCTE6IEVuYWJsZSB0aGlzIGV4dGVuc2lvbi4KKwkwOiBEaXNhYmxlIHRoaXMgZXh0ZW5zaW9uLgorCisJRGVmYXVsdDogMAorCitwcnNjdHBfZW5hYmxlIC0gQk9PTEVBTgorCUVuYWJsZSBvciBkaXNhYmxlIHRoZSBQYXJ0aWFsIFJlbGlhYmlsaXR5IGV4dGVuc2lvbiAoUkZDMzc1OCkgd2hpY2gKKwlpcyB1c2VkIHRvIG5vdGlmeSBwZWVycyB0aGF0IGEgZ2l2ZW4gREFUQSBzaG91bGQgbm8gbG9uZ2VyIGJlIGV4cGVjdGVkLgorCisJMTogRW5hYmxlIGV4dGVuc2lvbgorCTA6IERpc2FibGUKKworCURlZmF1bHQ6IDEKKworbWF4X2J1cnN0IC0gSU5URUdFUgorCVRoZSBsaW1pdCBvZiB0aGUgbnVtYmVyIG9mIG5ldyBwYWNrZXRzIHRoYXQgY2FuIGJlIGluaXRpYWxseSBzZW50LiAgSXQKKwljb250cm9scyBob3cgYnVyc3R5IHRoZSBnZW5lcmF0ZWQgdHJhZmZpYyBjYW4gYmUuCisKKwlEZWZhdWx0OiA0CisKK2Fzc29jaWF0aW9uX21heF9yZXRyYW5zIC0gSU5URUdFUgorCVNldCB0aGUgbWF4aW11bSBudW1iZXIgZm9yIHJldHJhbnNtaXNzaW9ucyB0aGF0IGFuIGFzc29jaWF0aW9uIGNhbgorCWF0dGVtcHQgZGVjaWRpbmcgdGhhdCB0aGUgcmVtb3RlIGVuZCBpcyB1bnJlYWNoYWJsZS4gIElmIHRoaXMgdmFsdWUKKwlpcyBleGNlZWRlZCwgdGhlIGFzc29jaWF0aW9uIGlzIHRlcm1pbmF0ZWQuCisKKwlEZWZhdWx0OiAxMAorCittYXhfaW5pdF9yZXRyYW5zbWl0cyAtIElOVEVHRVIKKwlUaGUgbWF4aW11bSBudW1iZXIgb2YgcmV0cmFuc21pc3Npb25zIG9mIElOSVQgYW5kIENPT0tJRS1FQ0hPIGNodW5rcworCXRoYXQgYW4gYXNzb2NpYXRpb24gd2lsbCBhdHRlbXB0IGJlZm9yZSBkZWNsYXJpbmcgdGhlIGRlc3RpbmF0aW9uCisJdW5yZWFjaGFibGUgYW5kIHRlcm1pbmF0aW5nLgorCisJRGVmYXVsdDogOAorCitwYXRoX21heF9yZXRyYW5zIC0gSU5URUdFUgorCVRoZSBtYXhpbXVtIG51bWJlciBvZiByZXRyYW5zbWlzc2lvbnMgdGhhdCB3aWxsIGJlIGF0dGVtcHRlZCBvbiBhIGdpdmVuCisJcGF0aC4gIE9uY2UgdGhpcyB0aHJlc2hvbGQgaXMgZXhjZWVkZWQsIHRoZSBwYXRoIGlzIGNvbnNpZGVyZWQKKwl1bnJlYWNoYWJsZSwgYW5kIG5ldyB0cmFmZmljIHdpbGwgdXNlIGEgZGlmZmVyZW50IHBhdGggd2hlbiB0aGUKKwlhc3NvY2lhdGlvbiBpcyBtdWx0aWhvbWVkLgorCisJRGVmYXVsdDogNQorCitydG9faW5pdGlhbCAtIElOVEVHRVIKKwlUaGUgaW5pdGlhbCByb3VuZCB0cmlwIHRpbWVvdXQgdmFsdWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgd2lsbCBiZSB1c2VkCisJaW4gY2FsY3VsYXRpbmcgcm91bmQgdHJpcCB0aW1lcy4gIFRoaXMgaXMgdGhlIGluaXRpYWwgdGltZSBpbnRlcnZhbAorCWZvciByZXRyYW5zbWlzc2lvbnMuCisKKwlEZWZhdWx0OiAzMDAwCisKK3J0b19tYXggLSBJTlRFR0VSCisJVGhlIG1heGltdW0gdmFsdWUgKGluIG1pbGxpc2Vjb25kcykgb2YgdGhlIHJvdW5kIHRyaXAgdGltZW91dC4gIFRoaXMKKwlpcyB0aGUgbGFyZ2VzdCB0aW1lIGludGVydmFsIHRoYXQgY2FuIGVsYXBzZSBiZXR3ZWVuIHJldHJhbnNtaXNzaW9ucy4KKworCURlZmF1bHQ6IDYwMDAwCisKK3J0b19taW4gLSBJTlRFR0VSCisJVGhlIG1pbmltdW0gdmFsdWUgKGluIG1pbGxpc2Vjb25kcykgb2YgdGhlIHJvdW5kIHRyaXAgdGltZW91dC4gIFRoaXMKKwlpcyB0aGUgc21hbGxlc3QgdGltZSBpbnRlcnZhbCB0aGUgY2FuIGVsYXBzZSBiZXR3ZWVuIHJldHJhbnNtaXNzaW9ucy4KKworCURlZmF1bHQ6IDEwMDAKKworaGJfaW50ZXJ2YWwgLSBJTlRFR0VSCisJVGhlIGludGVydmFsIChpbiBtaWxsaXNlY29uZHMpIGJldHdlZW4gSEVBUlRCRUFUIGNodW5rcy4gIFRoZXNlIGNodW5rcworCWFyZSBzZW50IGF0IHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwgb24gaWRsZSBwYXRocyB0byBwcm9iZSB0aGUgc3RhdGUgb2YKKwlhIGdpdmVuIHBhdGggYmV0d2VlbiAyIGFzc29jaWF0aW9ucy4KKworCURlZmF1bHQ6IDMwMDAwCisKK3NhY2tfdGltZW91dCAtIElOVEVHRVIKKwlUaGUgYW1vdW50IG9mIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCB3YWl0CisJdG8gc2VuZCBhIFNBQ0suCisKKwlEZWZhdWx0OiAyMDAKKwordmFsaWRfY29va2llX2xpZmUgLSBJTlRFR0VSCisJVGhlIGRlZmF1bHQgbGlmZXRpbWUgb2YgdGhlIFNDVFAgY29va2llIChpbiBtaWxsaXNlY29uZHMpLiAgVGhlIGNvb2tpZQorCWlzIHVzZWQgZHVyaW5nIGFzc29jaWF0aW9uIGVzdGFibGlzaG1lbnQuCisKKwlEZWZhdWx0OiA2MDAwMAorCitjb29raWVfcHJlc2VydmVfZW5hYmxlIC0gQk9PTEVBTgorCUVuYWJsZSBvciBkaXNhYmxlIHRoZSBhYmlsaXR5IHRvIGV4dGVuZCB0aGUgbGlmZXRpbWUgb2YgdGhlIFNDVFAgY29va2llCisJdGhhdCBpcyB1c2VkIGR1cmluZyB0aGUgZXN0YWJsaXNobWVudCBwaGFzZSBvZiBTQ1RQIGFzc29jaWF0aW9uCisKKwkxOiBFbmFibGUgY29va2llIGxpZmV0aW1lIGV4dGVuc2lvbi4KKwkwOiBEaXNhYmxlCisKKwlEZWZhdWx0OiAxCisKK3JjdmJ1Zl9wb2xpY3kgLSBJTlRFR0VSCisJRGV0ZXJtaW5lcyBpZiB0aGUgcmVjZWl2ZSBidWZmZXIgaXMgYXR0cmlidXRlZCB0byB0aGUgc29ja2V0IG9yIHRvCisJYXNzb2NpYXRpb24uICAgU0NUUCBzdXBwb3J0cyB0aGUgY2FwYWJpbGl0eSB0byBjcmVhdGUgbXVsdGlwbGUKKwlhc3NvY2lhdGlvbnMgb24gYSBzaW5nbGUgc29ja2V0LiAgV2hlbiB1c2luZyB0aGlzIGNhcGFiaWxpdHksIGl0IGlzCisJcG9zc2libGUgdGhhdCBhIHNpbmdsZSBzdGFsbGVkIGFzc29jaWF0aW9uIHRoYXQncyBidWZmZXJpbmcgYSBsb3QKKwlvZiBkYXRhIG1heSBibG9jayBvdGhlciBhc3NvY2lhdGlvbnMgZnJvbSBkZWxpdmVyaW5nIHRoZWlyIGRhdGEgYnkKKwljb25zdW1pbmcgYWxsIG9mIHRoZSByZWNlaXZlIGJ1ZmZlciBzcGFjZS4gIFRvIHdvcmsgYXJvdW5kIHRoaXMsCisJdGhlIHJjdmJ1Zl9wb2xpY3kgY291bGQgYmUgc2V0IHRvIGF0dHJpYnV0ZSB0aGUgcmVjZWl2ZXIgYnVmZmVyIHNwYWNlCisJdG8gZWFjaCBhc3NvY2lhdGlvbiBpbnN0ZWFkIG9mIHRoZSBzb2NrZXQuICBUaGlzIHByZXZlbnRzIHRoZSBkZXNjcmliZWQKKwlibG9ja2luZy4KKworCTE6IHJjdmJ1ZiBzcGFjZSBpcyBwZXIgYXNzb2NpYXRpb24KKwkwOiByZWNidWYgc3BhY2UgaXMgcGVyIHNvY2tldAorCisJRGVmYXVsdDogMAorCitzbmRidWZfcG9saWN5IC0gSU5URUdFUgorCVNpbWlsYXIgdG8gcmN2YnVmX3BvbGljeSBhYm92ZSwgdGhpcyBhcHBsaWVzIHRvIHNlbmQgYnVmZmVyIHNwYWNlLgorCisJMTogU2VuZCBidWZmZXIgaXMgdHJhY2tlZCBwZXIgYXNzb2NpYXRpb24KKwkwOiBTZW5kIGJ1ZmZlciBpcyB0cmFja2VkIHBlciBzb2NrZXQuCisKKwlEZWZhdWx0OiAwCisKK3NjdHBfbWVtIC0gdmVjdG9yIG9mIDMgSU5URUdFUnM6IG1pbiwgcHJlc3N1cmUsIG1heAorCU51bWJlciBvZiBwYWdlcyBhbGxvd2VkIGZvciBxdWV1ZWluZyBieSBhbGwgU0NUUCBzb2NrZXRzLgorCisJbWluOiBCZWxvdyB0aGlzIG51bWJlciBvZiBwYWdlcyBTQ1RQIGlzIG5vdCBib3RoZXJlZCBhYm91dCBpdHMKKwltZW1vcnkgYXBwZXRpdGUuIFdoZW4gYW1vdW50IG9mIG1lbW9yeSBhbGxvY2F0ZWQgYnkgU0NUUCBleGNlZWRzCisJdGhpcyBudW1iZXIsIFNDVFAgc3RhcnRzIHRvIG1vZGVyYXRlIG1lbW9yeSB1c2FnZS4KKworCXByZXNzdXJlOiBUaGlzIHZhbHVlIHdhcyBpbnRyb2R1Y2VkIHRvIGZvbGxvdyBmb3JtYXQgb2YgdGNwX21lbS4KKworCW1heDogTnVtYmVyIG9mIHBhZ2VzIGFsbG93ZWQgZm9yIHF1ZXVlaW5nIGJ5IGFsbCBTQ1RQIHNvY2tldHMuCisKKwlEZWZhdWx0IGlzIGNhbGN1bGF0ZWQgYXQgYm9vdCB0aW1lIGZyb20gYW1vdW50IG9mIGF2YWlsYWJsZSBtZW1vcnkuCisKK3NjdHBfcm1lbSAtIHZlY3RvciBvZiAzIElOVEVHRVJzOiBtaW4sIGRlZmF1bHQsIG1heAorCVNlZSB0Y3Bfcm1lbSBmb3IgYSBkZXNjcmlwdGlvbi4KKworc2N0cF93bWVtICAtIHZlY3RvciBvZiAzIElOVEVHRVJzOiBtaW4sIGRlZmF1bHQsIG1heAorCVNlZSB0Y3Bfd21lbSBmb3IgYSBkZXNjcmlwdGlvbi4KKwogVU5ET0NVTUVOVEVEOgogCi1kZXZfd2VpZ2h0IEZJWE1FCi1kaXNjb3Zlcnlfc2xvdHMgRklYTUUKLWRpc2NvdmVyeV90aW1lb3V0IEZJWE1FCi1mYXN0X3BvbGxfaW5jcmVhc2UgRklYTUUKLWlwNl9xdWV1ZV9tYXhsZW4gRklYTUUKLWxhcF9rZWVwYWxpdmVfdGltZSBGSVhNRQotbG9fY29uZyBGSVhNRQotbWF4X2JhdWRfcmF0ZSBGSVhNRQotbWF4X2RncmFtX3FsZW4gRklYTUUKLW1heF9ub3JlcGx5X3RpbWUgRklYTUUKLW1heF90eF9kYXRhX3NpemUgRklYTUUKLW1heF90eF93aW5kb3cgRklYTUUKLW1pbl90eF90dXJuX3RpbWUgRklYTUUKLW1vZF9jb25nIEZJWE1FCi1ub19jb25nIEZJWE1FCi1ub19jb25nX3RocmVzaCBGSVhNRQotc2xvdF90aW1lb3V0IEZJWE1FCi13YXJuX25vcmVwbHlfdGltZSBGSVhNRQorL3Byb2Mvc3lzL25ldC9jb3JlLyoKKwlkZXZfd2VpZ2h0IEZJWE1FCiAKKy9wcm9jL3N5cy9uZXQvdW5peC8qCisJbWF4X2RncmFtX3FsZW4gRklYTUUKKworL3Byb2Mvc3lzL25ldC9pcmRhLyoKKwlmYXN0X3BvbGxfaW5jcmVhc2UgRklYTUUKKwl3YXJuX25vcmVwbHlfdGltZSBGSVhNRQorCWRpc2NvdmVyeV9zbG90cyBGSVhNRQorCXNsb3RfdGltZW91dCBGSVhNRQorCW1heF9iYXVkX3JhdGUgRklYTUUKKwlkaXNjb3ZlcnlfdGltZW91dCBGSVhNRQorCWxhcF9rZWVwYWxpdmVfdGltZSBGSVhNRQorCW1heF9ub3JlcGx5X3RpbWUgRklYTUUKKwltYXhfdHhfZGF0YV9zaXplIEZJWE1FCisJbWF4X3R4X3dpbmRvdyBGSVhNRQorCW1pbl90eF90dXJuX3RpbWUgRklYTUUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9zMmlvLnR4dCBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9zMmlvLnR4dAppbmRleCA0YmRlNTNlLi4xZTI4ZTJkIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvczJpby50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3MyaW8udHh0CkBAIC04Myw5ICs4Myw5IEBACiBEZWZhdWx0OiAzMCAKIAogZS4gaW50cl90eXBlCi1TcGVjaWZpZXMgaW50ZXJydXB0IHR5cGUuIFBvc3NpYmxlIHZhbHVlcyAxKElOVEEpLCAyKE1TSSksIDMoTVNJLVgpCi1WYWxpZCByYW5nZTogMS0zCi1EZWZhdWx0OiAxIAorU3BlY2lmaWVzIGludGVycnVwdCB0eXBlLiBQb3NzaWJsZSB2YWx1ZXMgMChJTlRBKSwgMihNU0ktWCkKK1ZhbGlkIHZhbHVlczogMCwgMgorRGVmYXVsdDogMgogCiA1LiAgUGVyZm9ybWFuY2Ugc3VnZ2VzdGlvbnMKIEdlbmVyYWw6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25taV93YXRjaGRvZy50eHQgYi9Eb2N1bWVudGF0aW9uL25taV93YXRjaGRvZy50eHQKaW5kZXggNzU3YzcyOS4uOTBhYTQ1MyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ubWlfd2F0Y2hkb2cudHh0CisrKyBiL0RvY3VtZW50YXRpb24vbm1pX3dhdGNoZG9nLnR4dApAQCAtMTAsNyArMTAsNyBAQAogd2hpY2ggZ2V0IGV4ZWN1dGVkIGV2ZW4gaWYgdGhlIHN5c3RlbSBpcyBvdGhlcndpc2UgbG9ja2VkIHVwIGhhcmQpLgogVGhpcyBjYW4gYmUgdXNlZCB0byBkZWJ1ZyBoYXJkIGtlcm5lbCBsb2NrdXBzLiAgQnkgZXhlY3V0aW5nIHBlcmlvZGljCiBOTUkgaW50ZXJydXB0cywgdGhlIGtlcm5lbCBjYW4gbW9uaXRvciB3aGV0aGVyIGFueSBDUFUgaGFzIGxvY2tlZCB1cCwKLWFuZCBwcmludCBvdXQgZGVidWdnaW5nIG1lc3NhZ2VzIGlmIHNvLiAgCithbmQgcHJpbnQgb3V0IGRlYnVnZ2luZyBtZXNzYWdlcyBpZiBzby4KIAogSW4gb3JkZXIgdG8gdXNlIHRoZSBOTUkgd2F0Y2hkb2csIHlvdSBuZWVkIHRvIGhhdmUgQVBJQyBzdXBwb3J0IGluIHlvdXIKIGtlcm5lbC4gRm9yIFNNUCBrZXJuZWxzLCBBUElDIHN1cHBvcnQgZ2V0cyBjb21waWxlZCBpbiBhdXRvbWF0aWNhbGx5LiBGb3IKQEAgLTIyLDggKzIyLDcgQEAKIGtlcm5lbCBkZWJ1Z2dpbmcgb3B0aW9ucywgc3VjaCBhcyBLZXJuZWwgU3RhY2sgTWV0ZXIgb3IgS2VybmVsIFRyYWNlciwKIG1heSBpbXBsaWNpdGx5IGRpc2FibGUgdGhlIE5NSSB3YXRjaGRvZy5dCiAKLUZvciB4ODYtNjQsIHRoZSBuZWVkZWQgQVBJQyBpcyBhbHdheXMgY29tcGlsZWQgaW4sIGFuZCB0aGUgTk1JIHdhdGNoZG9nIGlzCi1hbHdheXMgZW5hYmxlZCB3aXRoIEkvTy1BUElDIG1vZGUgKG5taV93YXRjaGRvZz0xKS4KK0ZvciB4ODYtNjQsIHRoZSBuZWVkZWQgQVBJQyBpcyBhbHdheXMgY29tcGlsZWQgaW4uCiAKIFVzaW5nIGxvY2FsIEFQSUMgKG5taV93YXRjaGRvZz0yKSBuZWVkcyB0aGUgZmlyc3QgcGVyZm9ybWFuY2UgcmVnaXN0ZXIsIHNvCiB5b3UgY2FuJ3QgdXNlIGl0IGZvciBvdGhlciBwdXJwb3NlcyAoc3VjaCBhcyBoaWdoIHByZWNpc2lvbiBwZXJmb3JtYW5jZQpAQCAtNjMsMTYgKzYyLDE1IEBACiAiaGx0IiwgdGhlbiB5b3UgYXJlIG91dCBvZiBsdWNrIC0tIHRoZSBldmVudCB3aWxsIG5vdCBoYXBwZW4gYXQgYWxsIGFuZCB0aGUKIHdhdGNoZG9nIHdvbid0IHRyaWdnZXIuIFRoaXMgaXMgYSBzaG9ydGNvbWluZyBvZiB0aGUgbG9jYWwgQVBJQyB3YXRjaGRvZwogLS0gdW5mb3J0dW5hdGVseSB0aGVyZSBpcyBubyAiY2xvY2sgdGlja3MiIGV2ZW50IHRoYXQgd291bGQgd29yayBhbGwgdGhlCi10aW1lLiBUaGUgSS9PIEFQSUMgd2F0Y2hkb2cgaXMgZHJpdmVuIGV4dGVybmFsbHkgYW5kIGhhcyBubyBzdWNoIHNob3J0Y29taW5nLiAgCit0aW1lLiBUaGUgSS9PIEFQSUMgd2F0Y2hkb2cgaXMgZHJpdmVuIGV4dGVybmFsbHkgYW5kIGhhcyBubyBzdWNoIHNob3J0Y29taW5nLgogQnV0IGl0cyBOTUkgZnJlcXVlbmN5IGlzIG11Y2ggaGlnaGVyLCByZXN1bHRpbmcgaW4gYSBtb3JlIHNpZ25pZmljYW50IGhpdAogdG8gdGhlIG92ZXJhbGwgc3lzdGVtIHBlcmZvcm1hbmNlLgogCi1OT1RFOiBzdGFydGluZyB3aXRoIDIuNC4yLWFjMTggdGhlIE5NSS1vb3BzZXIgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCwKLXlvdSBoYXZlIHRvIGVuYWJsZSBpdCB3aXRoIGEgYm9vdCB0aW1lIHBhcmFtZXRlci4gIFByaW9yIHRvIDIuNC4yLWFjMTgKLXRoZSBOTUktb29wc2VyIGlzIGVuYWJsZWQgdW5jb25kaXRpb25hbGx5IG9uIHg4NiBTTVAgYm94ZXMuCitPbiB4ODYgbm1pX3dhdGNoZG9nIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgc28geW91IGhhdmUgdG8gZW5hYmxlIGl0IHdpdGgKK2EgYm9vdCB0aW1lIHBhcmFtZXRlci4KIAotT24geDg2LTY0IHRoZSBOTUkgb29wc2VyIGlzIG9uIGJ5IGRlZmF1bHQuIE9uIDY0Yml0IEludGVsIENQVXMKLWl0IHVzZXMgSU8tQVBJQyBieSBkZWZhdWx0IGFuZCBvbiBBTUQgaXQgdXNlcyBsb2NhbCBBUElDLgorTk9URTogSW4ga2VybmVscyBwcmlvciB0byAyLjQuMi1hYzE4IHRoZSBOTUktb29wc2VyIGlzIGVuYWJsZWQgdW5jb25kaXRpb25hbGx5CitvbiB4ODYgU01QIGJveGVzLgogCiBbIGZlZWwgZnJlZSB0byBzZW5kIGJ1ZyByZXBvcnRzLCBzdWdnZXN0aW9ucyBhbmQgcGF0Y2hlcyB0bwogICBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4gb3IgdGhlIExpbnV4IFNNUCBtYWlsaW5nCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1kb21haW5zLnR4dCBiL0RvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWRvbWFpbnMudHh0CmluZGV4IGE5ZTk5MGEuLjM3M2NlYWMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWRvbWFpbnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLWRvbWFpbnMudHh0CkBAIC02MSwxMCArNjEsNyBAQAogYXJjaF9pbml0X3NjaGVkX2RvbWFpbnMgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gd2lsbCBhdHRhY2ggZG9tYWlucyB0byBhbGwKIENQVXMgdXNpbmcgY3B1X2F0dGFjaF9kb21haW4uCiAKLUltcGxlbWVudG9ycyBzaG91bGQgY2hhbmdlIHRoZSBsaW5lCi0jdW5kZWYgU0NIRURfRE9NQUlOX0RFQlVHCi10bwotI2RlZmluZSBTQ0hFRF9ET01BSU5fREVCVUcKLWluIGtlcm5lbC9zY2hlZC5jIGFzIHRoaXMgZW5hYmxlcyBhbiBlcnJvciBjaGVja2luZyBwYXJzZSBvZiB0aGUgc2NoZWQgZG9tYWlucworVGhlIHNjaGVkLWRvbWFpbnMgZGVidWdnaW5nIGluZnJhc3RydWN0dXJlIGNhbiBiZSBlbmFibGVkIGJ5IGVuYWJsaW5nCitDT05GSUdfU0NIRURfREVCVUcuIFRoaXMgZW5hYmxlcyBhbiBlcnJvciBjaGVja2luZyBwYXJzZSBvZiB0aGUgc2NoZWQgZG9tYWlucwogd2hpY2ggc2hvdWxkIGNhdGNoIG1vc3QgcG9zc2libGUgZXJyb3JzIChkZXNjcmliZWQgYWJvdmUpLiBJdCBhbHNvIHByaW50cyBvdXQKIHRoZSBkb21haW4gc3RydWN0dXJlIGluIGEgdmlzdWFsIGZvcm1hdC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLXJ0LWdyb3VwLnR4dCBiL0RvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLXJ0LWdyb3VwLnR4dAppbmRleCAxNGY5MDFmLi4zZWYzMzlmIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1ydC1ncm91cC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9zY2hlZHVsZXIvc2NoZWQtcnQtZ3JvdXAudHh0CkBAIC01MSw5ICs1MSw5IEBACiAwLjAwMDE1cy4gU28gdGhpcyBncm91cCBjYW4gYmUgc2NoZWR1bGVkIHdpdGggYSBwZXJpb2Qgb2YgMC4wMDVzIGFuZCBhIHJ1biB0aW1lCiBvZiAwLjAwMDE1cy4KIAotVGhlIHJlbWFpbmluZyBDUFUgdGltZSB3aWxsIGJlIHVzZWQgZm9yIHVzZXIgaW5wdXQgYW5kIG90aGVyIHRhc3MuIEJlY2F1c2UKK1RoZSByZW1haW5pbmcgQ1BVIHRpbWUgd2lsbCBiZSB1c2VkIGZvciB1c2VyIGlucHV0IGFuZCBvdGhlciB0YXNrcy4gQmVjYXVzZQogcmVhbHRpbWUgdGFza3MgaGF2ZSBleHBsaWNpdGx5IGFsbG9jYXRlZCB0aGUgQ1BVIHRpbWUgdGhleSBuZWVkIHRvIHBlcmZvcm0KLXRoZWlyIHRhc2tzLCBidWZmZXIgdW5kZXJydW5zIGluIHRoZSBncmFwaG9jcyBvciBhdWRpbyBjYW4gYmUgZWxpbWluYXRlZC4KK3RoZWlyIHRhc2tzLCBidWZmZXIgdW5kZXJydW5zIGluIHRoZSBncmFwaGljcyBvciBhdWRpbyBjYW4gYmUgZWxpbWluYXRlZC4KIAogTk9URTogdGhlIGFib3ZlIGV4YW1wbGUgaXMgbm90IGZ1bGx5IGltcGxlbWVudGVkIGFzIG9mIHlldCAoMi42LjI1KS4gV2Ugc3RpbGwKIGxhY2sgYW4gRURGIHNjaGVkdWxlciB0byBtYWtlIG5vbi11bmlmb3JtIHBlcmlvZHMgdXNhYmxlLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0FMU0EtQ29uZmlndXJhdGlvbi50eHQgYi9Eb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2EvQUxTQS1Db25maWd1cmF0aW9uLnR4dAppbmRleCAwYmJlZTM4Li43MmFmZjYxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2EvQUxTQS1Db25maWd1cmF0aW9uLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2EvQUxTQS1Db25maWd1cmF0aW9uLnR4dApAQCAtNzUzLDggKzc1MywxMSBAQAogCiAgICAgW011bHRpcGxlIG9wdGlvbnMgZm9yIGVhY2ggY2FyZCBpbnN0YW5jZV0KICAgICBtb2RlbAktIGZvcmNlIHRoZSBtb2RlbCBuYW1lCi0gICAgcG9zaXRpb25fZml4IC0gRml4IERNQSBwb2ludGVyICgwID0gYXV0bywgMSA9IG5vbmUsIDIgPSBQT1NCVUYsIDMgPSBGSUZPIHNpemUpCisgICAgcG9zaXRpb25fZml4IC0gRml4IERNQSBwb2ludGVyICgwID0gYXV0bywgMSA9IHVzZSBMUElCLCAyID0gUE9TQlVGKQogICAgIHByb2JlX21hc2sgIC0gQml0bWFzayB0byBwcm9iZSBjb2RlY3MgKGRlZmF1bHQgPSAtMSwgbWVhbmluZyBhbGwgc2xvdHMpCisgICAgYmRsX3Bvc19hZGoJLSBTcGVjaWZpZXMgdGhlIERNQSBJUlEgdGltaW5nIGRlbGF5IGluIHNhbXBsZXMuCisJCVBhc3NpbmcgLTEgd2lsbCBtYWtlIHRoZSBkcml2ZXIgdG8gY2hvb3NlIHRoZSBhcHByb3ByaWF0ZQorCQl2YWx1ZSBiYXNlZCBvbiB0aGUgY29udHJvbGxlciBjaGlwLgogICAgIAogICAgIFtTaW5nbGUgKGdsb2JhbCkgb3B0aW9uc10KICAgICBzaW5nbGVfY21kICAtIFVzZSBzaW5nbGUgaW1tZWRpYXRlIGNvbW1hbmRzIHRvIGNvbW11bmljYXRlIHdpdGgKQEAgLTg0NSw3ICs4NDgsNyBAQAogCUFMQzI2OQogCSAgYmFzaWMJCUJhc2ljIHByZXNldAogCi0JQUxDNjYyCisJQUxDNjYyLzY2MwogCSAgM3N0YWNrLWRpZwkzLXN0YWNrICgyLWNoYW5uZWwpIHdpdGggU1BESUYKIAkgIDNzdGFjay02Y2gJIDMtc3RhY2sgKDYtY2hhbm5lbCkKIAkgIDNzdGFjay02Y2gtZGlnIDMtc3RhY2sgKDYtY2hhbm5lbCkgd2l0aCBTUERJRgpAQCAtODUzLDYgKzg1NiwxMCBAQAogCSAgbGVub3ZvLTEwMWUJIExlbm92byBsYXB0b3AKIAkgIGVlZXBjLXA3MDEJQVNVUyBFZWVwYyBQNzAxCiAJICBlZWVwYy1lcDIwCUFTVVMgRWVlcGMgRVAyMAorCSAgbTUxdmEJCUFTVVMgTTUxVkEKKwkgIGc3MXYJCUFTVVMgRzcxVgorCSAgaDEzCQlBU1VTIEgxMworCSAgZzUwdgkJQVNVUyBHNTBWCiAJICBhdXRvCQlhdXRvLWNvbmZpZyByZWFkaW5nIEJJT1MgKGRlZmF1bHQpCiAKIAlBTEM4ODIvODg1CkBAIC0xMDkxLDcgKzEwOTgsNyBAQAogICAgIFRoaXMgb2NjdXJzIHdoZW4gdGhlIGFjY2VzcyB0byBub24tZXhpc3Rpbmcgb3Igbm9uLXdvcmtpbmcgY29kZWMgc2xvdAogICAgIChsaWtlbHkgYSBtb2RlbSBvbmUpIGNhdXNlcyBhIHN0YWxsIG9mIHRoZSBjb21tdW5pY2F0aW9uIHZpYSBIRC1hdWRpbwogICAgIGJ1cy4gIFlvdSBjYW4gc2VlIHdoaWNoIGNvZGVjIHNsb3RzIGFyZSBwcm9iZWQgYnkgZW5hYmxpbmcKLSAgICBDT05GSUdfU05EX0RFQlVHX0RFVEVDVCwgb3Igc2ltcGx5IGZyb20gdGhlIGZpbGUgbmFtZSBvZiB0aGUgY29kZWMKKyAgICBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UsIG9yIHNpbXBseSBmcm9tIHRoZSBmaWxlIG5hbWUgb2YgdGhlIGNvZGVjCiAgICAgcHJvYyBmaWxlcy4gIFRoZW4gbGltaXQgdGhlIHNsb3RzIHRvIHByb2JlIGJ5IHByb2JlX21hc2sgb3B0aW9uLgogICAgIEZvciBleGFtcGxlLCBwcm9iZV9tYXNrPTEgbWVhbnMgdG8gcHJvYmUgb25seSB0aGUgZmlyc3Qgc2xvdCwgYW5kCiAgICAgcHJvYmVfbWFzaz00IG1lYW5zIG9ubHkgdGhlIHRoaXJkIHNsb3QuCkBAIC0yMjY3LDYgKzIyNzQsMTAgQEAKIG90aGVyIGRyaXZlciAoZS5nLiBzbmQtdXNiLWF1ZGlvKSBpcyBsb2FkZWQgYmVmb3JlIHNuZC1pbnRlcndhdmUgb3IKIHNuZC1lbnMxMzcxLCBpdCB3aWxsIGJlIGFzc2lnbmVkIHRvIHRoZSB0aGlyZCBvciBsYXRlciBzbG90LgogCitXaGVuIGEgbW9kdWxlIG5hbWUgaXMgZ2l2ZW4gd2l0aCAnIScsIHRoZSBzbG90IHdpbGwgYmUgZ2l2ZW4gZm9yIGFueQorbW9kdWxlcyBidXQgdGhhdCBuYW1lLiAgRm9yIGV4YW1wbGUsICJzbG90cz0hc25kLXBjc3AiIHdpbGwgcmVzZXJ2ZQordGhlIGZpcnN0IHNsb3QgZm9yIGFueSBtb2R1bGVzIGJ1dCBzbmQtcGNzcC4gCisKIAogQUxTQSBQQ00gZGV2aWNlcyB0byBPU1MgZGV2aWNlcyBtYXBwaW5nCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vc291bmQvYWxzYS9Eb2NCb29rL3dyaXRpbmctYW4tYWxzYS1kcml2ZXIudG1wbCBiL0RvY3VtZW50YXRpb24vc291bmQvYWxzYS9Eb2NCb29rL3dyaXRpbmctYW4tYWxzYS1kcml2ZXIudG1wbAppbmRleCBiMDNkZjRkNC4uZTEzYzRlNiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0RvY0Jvb2svd3JpdGluZy1hbi1hbHNhLWRyaXZlci50bXBsCisrKyBiL0RvY3VtZW50YXRpb24vc291bmQvYWxzYS9Eb2NCb29rL3dyaXRpbmctYW4tYWxzYS1kcml2ZXIudG1wbApAQCAtNjEyNyw4ICs2MTI3LDggQEAKIAogICAgICAgPHBhcmE+CiAgICAgICAgIDxmdW5jdGlvbj5zbmRfcHJpbnRkZCgpPC9mdW5jdGlvbj4gaXMgY29tcGlsZWQgaW4gb25seSB3aGVuCi0gICAgICA8Y29uc3RhbnQ+Q09ORklHX1NORF9ERUJVR19ERVRFQ1Q8L2NvbnN0YW50PiBpcyBzZXQuIFBsZWFzZSBub3RlCi0gICAgICB0aGF0IDxjb25zdGFudD5ERUJVR19ERVRFQ1Q8L2NvbnN0YW50PiBpcyBub3Qgc2V0IGFzIGRlZmF1bHQKKyAgICAgIDxjb25zdGFudD5DT05GSUdfU05EX0RFQlVHX1ZFUkJPU0U8L2NvbnN0YW50PiBpcyBzZXQuIFBsZWFzZSBub3RlCisgICAgICB0aGF0IDxjb25zdGFudD5DT05GSUdfU05EX0RFQlVHX1ZFUkJPU0U8L2NvbnN0YW50PiBpcyBub3Qgc2V0IGFzIGRlZmF1bHQKICAgICAgIGV2ZW4gaWYgeW91IGNvbmZpZ3VyZSB0aGUgYWxzYS1kcml2ZXIgd2l0aAogICAgICAgPG9wdGlvbj4tLXdpdGgtZGVidWc9ZnVsbDwvb3B0aW9uPiBvcHRpb24uIFlvdSBuZWVkIHRvIGdpdmUKICAgICAgIGV4cGxpY2l0bHkgPG9wdGlvbj4tLXdpdGgtZGVidWc9ZGV0ZWN0PC9vcHRpb24+IG9wdGlvbiBpbnN0ZWFkLiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdHJhY2Vycy9tbWlvdHJhY2UudHh0IGIvRG9jdW1lbnRhdGlvbi90cmFjZXJzL21taW90cmFjZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRhZmI1NgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vdHJhY2Vycy9tbWlvdHJhY2UudHh0CkBAIC0wLDAgKzEsMTY0IEBACisJCUluLWtlcm5lbCBtZW1vcnktbWFwcGVkIEkvTyB0cmFjaW5nCisKKworSG9tZSBwYWdlIGFuZCBsaW5rcyB0byBvcHRpb25hbCB1c2VyIHNwYWNlIHRvb2xzOgorCisJaHR0cDovL25vdXZlYXUuZnJlZWRlc2t0b3Aub3JnL3dpa2kvTW1pb1RyYWNlCisKK01NSU8gdHJhY2luZyB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgYnkgSW50ZWwgYXJvdW5kIDIwMDMgZm9yIHRoZWlyIEZhdWx0CitJbmplY3Rpb24gVGVzdCBIYXJuZXNzLiBJbiBEZWMgMjAwNiAtIEphbiAyMDA3LCB1c2luZyB0aGUgY29kZSBmcm9tIEludGVsLAorSmVmZiBNdWl6ZWxhYXIgY3JlYXRlZCBhIHRvb2wgZm9yIHRyYWNpbmcgTU1JTyBhY2Nlc3NlcyB3aXRoIHRoZSBOb3V2ZWF1Citwcm9qZWN0IGluIG1pbmQuIFNpbmNlIHRoZW4gbWFueSBwZW9wbGUgaGF2ZSBjb250cmlidXRlZC4KKworTW1pb3RyYWNlIHdhcyBidWlsdCBmb3IgcmV2ZXJzZSBlbmdpbmVlcmluZyBhbnkgbWVtb3J5LW1hcHBlZCBJTyBkZXZpY2Ugd2l0aAordGhlIE5vdXZlYXUgcHJvamVjdCBhcyB0aGUgZmlyc3QgcmVhbCB1c2VyLiBPbmx5IHg4NiBhbmQgeDg2XzY0IGFyY2hpdGVjdHVyZXMKK2FyZSBzdXBwb3J0ZWQuCisKK091dC1vZi10cmVlIG1taW90cmFjZSB3YXMgb3JpZ2luYWxseSBtb2RpZmllZCBmb3IgbWFpbmxpbmUgaW5jbHVzaW9uIGFuZAorZnRyYWNlIGZyYW1ld29yayBieSBQZWtrYSBQYWFsYW5lbiA8cHFAaWtpLmZpPi4KKworCitQcmVwYXJhdGlvbgorLS0tLS0tLS0tLS0KKworTW1pb3RyYWNlIGZlYXR1cmUgaXMgY29tcGlsZWQgaW4gYnkgdGhlIENPTkZJR19NTUlPVFJBQ0Ugb3B0aW9uLiBUcmFjaW5nIGlzCitkaXNhYmxlZCBieSBkZWZhdWx0LCBzbyBpdCBpcyBzYWZlIHRvIGhhdmUgdGhpcyBzZXQgdG8geWVzLiBTTVAgc3lzdGVtcyBhcmUKK3N1cHBvcnRlZCwgYnV0IHRyYWNpbmcgaXMgdW5yZWxpYWJsZSBhbmQgbWF5IG1pc3MgZXZlbnRzIGlmIG1vcmUgdGhhbiBvbmUgQ1BVCitpcyBvbi1saW5lLCB0aGVyZWZvcmUgbW1pb3RyYWNlIHRha2VzIGFsbCBidXQgb25lIENQVSBvZmYtbGluZSBkdXJpbmcgcnVuLXRpbWUKK2FjdGl2YXRpb24uIFlvdSBjYW4gcmUtZW5hYmxlIENQVXMgYnkgaGFuZCwgYnV0IHlvdSBoYXZlIGJlZW4gd2FybmVkLCB0aGVyZQoraXMgbm8gd2F5IHRvIGF1dG9tYXRpY2FsbHkgZGV0ZWN0IGlmIHlvdSBhcmUgbG9zaW5nIGV2ZW50cyBkdWUgdG8gQ1BVcyByYWNpbmcuCisKKworVXNhZ2UgUXVpY2sgUmVmZXJlbmNlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworJCBtb3VudCAtdCBkZWJ1Z2ZzIGRlYnVnZnMgL2RlYnVnCiskIGVjaG8gbW1pb3RyYWNlID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyQgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX3BpcGUgPiBteWR1bXAudHh0ICYKK1N0YXJ0IFggb3Igd2hhdGV2ZXIuCiskIGVjaG8gIlggaXMgdXAiID4gL2RlYnVnL3RyYWNpbmcvbWFya2VyCiskIGVjaG8gbm9uZSA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCitDaGVjayBmb3IgbG9zdCBldmVudHMuCisKKworVXNhZ2UKKy0tLS0tCisKK01ha2Ugc3VyZSBkZWJ1Z2ZzIGlzIG1vdW50ZWQgdG8gL2RlYnVnLiBJZiBub3QsIChyZXF1aXJlcyByb290IHByaXZpbGVnZXMpCiskIG1vdW50IC10IGRlYnVnZnMgZGVidWdmcyAvZGVidWcKKworQ2hlY2sgdGhhdCB0aGUgZHJpdmVyIHlvdSBhcmUgYWJvdXQgdG8gdHJhY2UgaXMgbm90IGxvYWRlZC4KKworQWN0aXZhdGUgbW1pb3RyYWNlIChyZXF1aXJlcyByb290IHByaXZpbGVnZXMpOgorJCBlY2hvIG1taW90cmFjZSA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisKK1N0YXJ0IHN0b3JpbmcgdGhlIHRyYWNlOgorJCBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2VfcGlwZSA+IG15ZHVtcC50eHQgJgorVGhlICdjYXQnIHByb2Nlc3Mgc2hvdWxkIHN0YXkgcnVubmluZyAoc2xlZXBpbmcpIGluIHRoZSBiYWNrZ3JvdW5kLgorCitMb2FkIHRoZSBkcml2ZXIgeW91IHdhbnQgdG8gdHJhY2UgYW5kIHVzZSBpdC4gTW1pb3RyYWNlIHdpbGwgb25seSBjYXRjaCBNTUlPCithY2Nlc3NlcyB0byBhcmVhcyB0aGF0IGFyZSBpb3JlbWFwcGVkIHdoaWxlIG1taW90cmFjZSBpcyBhY3RpdmUuCisKK1tVbmltcGxlbWVudGVkIGZlYXR1cmU6XQorRHVyaW5nIHRyYWNpbmcgeW91IGNhbiBwbGFjZSBjb21tZW50cyAobWFya2VycykgaW50byB0aGUgdHJhY2UgYnkKKyQgZWNobyAiWCBpcyB1cCIgPiAvZGVidWcvdHJhY2luZy9tYXJrZXIKK1RoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIHNlZSB3aGljaCBwYXJ0IG9mIHRoZSAoaHVnZSkgdHJhY2UgY29ycmVzcG9uZHMgdG8KK3doaWNoIGFjdGlvbi4gSXQgaXMgcmVjb21tZW5kZWQgdG8gcGxhY2UgZGVzY3JpcHRpdmUgbWFya2VycyBhYm91dCB3aGF0IHlvdQorZG8uCisKK1NodXQgZG93biBtbWlvdHJhY2UgKHJlcXVpcmVzIHJvb3QgcHJpdmlsZWdlcyk6CiskIGVjaG8gbm9uZSA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCitUaGUgJ2NhdCcgcHJvY2VzcyBleGl0cy4gSWYgaXQgZG9lcyBub3QsIGtpbGwgaXQgYnkgaXNzdWluZyAnZmcnIGNvbW1hbmQgYW5kCitwcmVzc2luZyBjdHJsK2MuCisKK0NoZWNrIHRoYXQgbW1pb3RyYWNlIGRpZCBub3QgbG9zZSBldmVudHMgZHVlIHRvIGEgYnVmZmVyIGZpbGxpbmcgdXAuIEVpdGhlcgorJCBncmVwIC1pIGxvc3QgbXlkdW1wLnR4dAord2hpY2ggdGVsbHMgeW91IGV4YWN0bHkgaG93IG1hbnkgZXZlbnRzIHdlcmUgbG9zdCwgb3IgdXNlCiskIGRtZXNnCit0byB2aWV3IHlvdXIga2VybmVsIGxvZyBhbmQgbG9vayBmb3IgIm1taW90cmFjZSBoYXMgbG9zdCBldmVudHMiIHdhcm5pbmcuIElmCitldmVudHMgd2VyZSBsb3N0LCB0aGUgdHJhY2UgaXMgaW5jb21wbGV0ZS4gWW91IHNob3VsZCBlbmxhcmdlIHRoZSBidWZmZXJzIGFuZAordHJ5IGFnYWluLiBCdWZmZXJzIGFyZSBlbmxhcmdlZCBieSBmaXJzdCBzZWVpbmcgaG93IGxhcmdlIHRoZSBjdXJyZW50IGJ1ZmZlcnMKK2FyZToKKyQgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKK2dpdmVzIHlvdSBhIG51bWJlci4gQXBwcm94aW1hdGVseSBkb3VibGUgdGhpcyBudW1iZXIgYW5kIHdyaXRlIGl0IGJhY2ssIGZvcgoraW5zdGFuY2U6CiskIGVjaG8gMTI4MDAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2VfZW50cmllcworVGhlbiBzdGFydCBhZ2FpbiBmcm9tIHRoZSB0b3AuCisKK0lmIHlvdSBhcmUgZG9pbmcgYSB0cmFjZSBmb3IgYSBkcml2ZXIgcHJvamVjdCwgZS5nLiBOb3V2ZWF1LCB5b3Ugc2hvdWxkIGFsc28KK2RvIHRoZSBmb2xsb3dpbmcgYmVmb3JlIHNlbmRpbmcgeW91ciByZXN1bHRzOgorJCBsc3BjaSAtdnZ2ID4gbHNwY2kudHh0CiskIGRtZXNnID4gZG1lc2cudHh0CiskIHRhciB6Y2YgcGNpaWQtbmljay1tbWlvdHJhY2UudGFyLmd6IG15ZHVtcC50eHQgbHNwY2kudHh0IGRtZXNnLnR4dAorYW5kIHRoZW4gc2VuZCB0aGUgLnRhci5neiBmaWxlLiBUaGUgdHJhY2UgY29tcHJlc3NlcyBjb25zaWRlcmFibHkuIFJlcGxhY2UKKyJwY2lpZCIgYW5kICJuaWNrIiB3aXRoIHRoZSBQQ0kgSUQgb3IgbW9kZWwgbmFtZSBvZiB5b3VyIHBpZWNlIG9mIGhhcmR3YXJlCit1bmRlciBpbnZlc3RpZ2F0aW9uIGFuZCB5b3VyIG5pY2sgbmFtZS4KKworCitIb3cgTW1pb3RyYWNlIFdvcmtzCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK0FjY2VzcyB0byBoYXJkd2FyZSBJTy1tZW1vcnkgaXMgZ2FpbmVkIGJ5IG1hcHBpbmcgYWRkcmVzc2VzIGZyb20gUENJIGJ1cyBieQorY2FsbGluZyBvbmUgb2YgdGhlIGlvcmVtYXBfKigpIGZ1bmN0aW9ucy4gTW1pb3RyYWNlIGlzIGhvb2tlZCBpbnRvIHRoZQorX19pb3JlbWFwKCkgZnVuY3Rpb24gYW5kIGdldHMgY2FsbGVkIHdoZW5ldmVyIGEgbWFwcGluZyBpcyBjcmVhdGVkLiBNYXBwaW5nIGlzCithbiBldmVudCB0aGF0IGlzIHJlY29yZGVkIGludG8gdGhlIHRyYWNlIGxvZy4gTm90ZSwgdGhhdCBJU0EgcmFuZ2UgbWFwcGluZ3MKK2FyZSBub3QgY2F1Z2h0LCBzaW5jZSB0aGUgbWFwcGluZyBhbHdheXMgZXhpc3RzIGFuZCBpcyByZXR1cm5lZCBkaXJlY3RseS4KKworTU1JTyBhY2Nlc3NlcyBhcmUgcmVjb3JkZWQgdmlhIHBhZ2UgZmF1bHRzLiBKdXN0IGJlZm9yZSBfX2lvcmVtYXAoKSByZXR1cm5zLAordGhlIG1hcHBlZCBwYWdlcyBhcmUgbWFya2VkIGFzIG5vdCBwcmVzZW50LiBBbnkgYWNjZXNzIHRvIHRoZSBwYWdlcyBjYXVzZXMgYQorZmF1bHQuIFRoZSBwYWdlIGZhdWx0IGhhbmRsZXIgY2FsbHMgbW1pb3RyYWNlIHRvIGhhbmRsZSB0aGUgZmF1bHQuIE1taW90cmFjZQorbWFya3MgdGhlIHBhZ2UgcHJlc2VudCwgc2V0cyBURiBmbGFnIHRvIGFjaGlldmUgc2luZ2xlIHN0ZXBwaW5nIGFuZCBleGl0cyB0aGUKK2ZhdWx0IGhhbmRsZXIuIFRoZSBpbnN0cnVjdGlvbiB0aGF0IGZhdWx0ZWQgaXMgZXhlY3V0ZWQgYW5kIGRlYnVnIHRyYXAgaXMKK2VudGVyZWQuIEhlcmUgbW1pb3RyYWNlIGFnYWluIG1hcmtzIHRoZSBwYWdlIGFzIG5vdCBwcmVzZW50LiBUaGUgaW5zdHJ1Y3Rpb24KK2lzIGRlY29kZWQgdG8gZ2V0IHRoZSB0eXBlIG9mIG9wZXJhdGlvbiAocmVhZC93cml0ZSksIGRhdGEgd2lkdGggYW5kIHRoZSB2YWx1ZQorcmVhZCBvciB3cml0dGVuLiBUaGVzZSBhcmUgc3RvcmVkIHRvIHRoZSB0cmFjZSBsb2cuCisKK1NldHRpbmcgdGhlIHBhZ2UgcHJlc2VudCBpbiB0aGUgcGFnZSBmYXVsdCBoYW5kbGVyIGhhcyBhIHJhY2UgY29uZGl0aW9uIG9uIFNNUAorbWFjaGluZXMuIER1cmluZyB0aGUgc2luZ2xlIHN0ZXBwaW5nIG90aGVyIENQVXMgbWF5IHJ1biBmcmVlbHkgb24gdGhhdCBwYWdlCithbmQgZXZlbnRzIGNhbiBiZSBtaXNzZWQgd2l0aG91dCBhIG5vdGljZS4gUmUtZW5hYmxpbmcgb3RoZXIgQ1BVcyBkdXJpbmcKK3RyYWNpbmcgaXMgZGlzY291cmFnZWQuCisKKworVHJhY2UgTG9nIEZvcm1hdAorLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgcmF3IGxvZyBpcyB0ZXh0IGFuZCBlYXNpbHkgZmlsdGVyZWQgd2l0aCBlLmcuIGdyZXAgYW5kIGF3ay4gT25lIHJlY29yZCBpcworb25lIGxpbmUgaW4gdGhlIGxvZy4gQSByZWNvcmQgc3RhcnRzIHdpdGggYSBrZXl3b3JkLCBmb2xsb3dlZCBieSBrZXl3b3JkCitkZXBlbmRhbnQgYXJndW1lbnRzLiBBcmd1bWVudHMgYXJlIHNlcGFyYXRlZCBieSBhIHNwYWNlLCBvciBjb250aW51ZSB1bnRpbCB0aGUKK2VuZCBvZiBsaW5lLiBUaGUgZm9ybWF0IGZvciB2ZXJzaW9uIDIwMDcwODI0IGlzIGFzIGZvbGxvd3M6CisKK0V4cGxhbmF0aW9uCUtleXdvcmQJU3BhY2Ugc2VwYXJhdGVkIGFyZ3VtZW50cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3JlYWQgZXZlbnQJUgl3aWR0aCwgdGltZXN0YW1wLCBtYXAgaWQsIHBoeXNpY2FsLCB2YWx1ZSwgUEMsIFBJRAord3JpdGUgZXZlbnQJVwl3aWR0aCwgdGltZXN0YW1wLCBtYXAgaWQsIHBoeXNpY2FsLCB2YWx1ZSwgUEMsIFBJRAoraW9yZW1hcCBldmVudAlNQVAJdGltZXN0YW1wLCBtYXAgaWQsIHBoeXNpY2FsLCB2aXJ0dWFsLCBsZW5ndGgsIFBDLCBQSUQKK2lvdW5tYXAgZXZlbnQJVU5NQVAJdGltZXN0YW1wLCBtYXAgaWQsIFBDLCBQSUQKK21hcmtlcgkJTUFSSwl0aW1lc3RhbXAsIHRleHQKK3ZlcnNpb24JCVZFUlNJT04JdGhlIHN0cmluZyAiMjAwNzA4MjQiCitpbmZvIGZvciByZWFkZXIJTFNQQ0kJb25lIGxpbmUgZnJvbSBsc3BjaSAtdgorUENJIGFkZHJlc3MgbWFwCVBDSURFVglzcGFjZSBzZXBhcmF0ZWQgL3Byb2MvYnVzL3BjaS9kZXZpY2VzIGRhdGEKK3Vuay4gb3Bjb2RlCVVOS05PV04JdGltZXN0YW1wLCBtYXAgaWQsIHBoeXNpY2FsLCBkYXRhLCBQQywgUElECisKK1RpbWVzdGFtcCBpcyBpbiBzZWNvbmRzIHdpdGggZGVjaW1hbHMuIFBoeXNpY2FsIGlzIGEgUENJIGJ1cyBhZGRyZXNzLCB2aXJ0dWFsCitpcyBhIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3MuIFdpZHRoIGlzIHRoZSBkYXRhIHdpZHRoIGluIGJ5dGVzIGFuZCB2YWx1ZSBpcyB0aGUKK2RhdGEgdmFsdWUuIE1hcCBpZCBpcyBhbiBhcmJpdHJhcnkgaWQgbnVtYmVyIGlkZW50aWZ5aW5nIHRoZSBtYXBwaW5nIHRoYXQgd2FzCit1c2VkIGluIGFuIG9wZXJhdGlvbi4gUEMgaXMgdGhlIHByb2dyYW0gY291bnRlciBhbmQgUElEIGlzIHByb2Nlc3MgaWQuIFBDIGlzCit6ZXJvIGlmIGl0IGlzIG5vdCByZWNvcmRlZC4gUElEIGlzIGFsd2F5cyB6ZXJvIGFzIHRyYWNpbmcgTU1JTyBhY2Nlc3Nlcworb3JpZ2luYXRpbmcgaW4gdXNlciBzcGFjZSBtZW1vcnkgaXMgbm90IHlldCBzdXBwb3J0ZWQuCisKK0ZvciBpbnN0YW5jZSwgdGhlIGZvbGxvd2luZyBhd2sgZmlsdGVyIHdpbGwgcGFzcyBhbGwgMzItYml0IHdyaXRlcyB0aGF0IHRhcmdldAorcGh5c2ljYWwgYWRkcmVzc2VzIGluIHRoZSByYW5nZSBbMHhmYjczY2U0MCwgMHhmYjgwMDAwMFsKKworJCBhd2sgJy9XIDQgLyB7IGFkcj1zdHJ0b251bSgkNSk7IGlmIChhZHIgPj0gMHhmYjczY2U0MCAmJgorYWRyIDwgMHhmYjgwMDAwMCkgcHJpbnQ7IH0nCisKKworVG9vbHMgZm9yIERldmVsb3BlcnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSB1c2VyIHNwYWNlIHRvb2xzIGluY2x1ZGUgdXRpbGl0aWVzIGZvcjoKKy0gcmVwbGFjaW5nIG51bWVyaWMgYWRkcmVzc2VzIGFuZCB2YWx1ZXMgd2l0aCBoYXJkd2FyZSByZWdpc3RlciBuYW1lcworLSByZXBsYXlpbmcgTU1JTyBsb2dzLCBpLmUuLCByZS1leGVjdXRpbmcgdGhlIHJlY29yZGVkIHdyaXRlcworCisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvQ0FSRExJU1QuYXUwODI4IGIvRG9jdW1lbnRhdGlvbi92aWRlbzRsaW51eC9DQVJETElTVC5hdTA4MjgKaW5kZXggYWFhZTM2MC4uODZkMWM4ZSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92aWRlbzRsaW51eC9DQVJETElTVC5hdTA4MjgKKysrIGIvRG9jdW1lbnRhdGlvbi92aWRlbzRsaW51eC9DQVJETElTVC5hdTA4MjgKQEAgLTEsNCArMSw0IEBACiAgIDAgLT4gVW5rbm93biBib2FyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXUwODI4KQotICAxIC0+IEhhdXBwYXVnZSBIVlI5NTBRICAgICAgICAgICAgICAgICAgICAgICAgKGF1MDgyOCkgICAgICAgIFsyMDQwOjcyMDBdCisgIDEgLT4gSGF1cHBhdWdlIEhWUjk1MFEgICAgICAgICAgICAgICAgICAgICAgICAoYXUwODI4KSAgICAgICAgWzIwNDA6NzIwMCwyMDQwOjcyMTAsMjA0MDo3MjE3LDIwNDA6NzIxYiwyMDQwOjcyMWYsMjA0MDo3MjgwLDBmZDk6MDAwOF0KICAgMiAtPiBIYXVwcGF1Z2UgSFZSODUwICAgICAgICAgICAgICAgICAgICAgICAgIChhdTA4MjgpICAgICAgICBbMjA0MDo3MjQwXQogICAzIC0+IERWaUNPIEZ1c2lvbkhEVFYgVVNCICAgICAgICAgICAgICAgICAgICAgKGF1MDgyOCkgICAgICAgIFswZmU5OmQ2MjBdCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZtL3NsYWJpbmZvLmMgYi9Eb2N1bWVudGF0aW9uL3ZtL3NsYWJpbmZvLmMKaW5kZXggZTQyMzBlZC4uZGYzMjI3NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92bS9zbGFiaW5mby5jCisrKyBiL0RvY3VtZW50YXRpb24vdm0vc2xhYmluZm8uYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBTbGFiaW5mbzogVG9vbCB0byBnZXQgcmVwb3J0cyBhYm91dCBzbGFicwogICoKLSAqIChDKSAyMDA3IHNnaSwgQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+CisgKiAoQykgMjAwNyBzZ2ksIENocmlzdG9waCBMYW1ldGVyCiAgKgogICogQ29tcGlsZSBieToKICAqCkBAIC05OSw3ICs5OSw3IEBACiAKIHZvaWQgdXNhZ2Uodm9pZCkKIHsKLQlwcmludGYoInNsYWJpbmZvIDUvNy8yMDA3LiAoYykgMjAwNyBzZ2kuIGNsYW1ldGVyQHNnaS5jb21cblxuIgorCXByaW50Zigic2xhYmluZm8gNS83LzIwMDcuIChjKSAyMDA3IHNnaS5cblxuIgogCQkic2xhYmluZm8gWy1haG5wdnRzel0gWy1kIGRlYnVnb3B0c10gW3NsYWItcmVnZXhwXVxuIgogCQkiLWF8LS1hbGlhc2VzICAgICAgICAgICBTaG93IGFsaWFzZXNcbiIKIAkJIi1BfC0tYWN0aXZpdHkgICAgICAgICAgTW9zdCBhY3RpdmUgc2xhYnMgZmlyc3RcbiIKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdm0vc2x1Yi50eHQgYi9Eb2N1bWVudGF0aW9uL3ZtL3NsdWIudHh0CmluZGV4IDdjMTNmMjIuLmJiMWY1YzYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdm0vc2x1Yi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi92bS9zbHViLnR4dApAQCAtMjY2LDQgKzI2Niw0IEBACiAKIAlzbHViX2RlYnVnPUZaLGRlbnRyeQogCi1DaHJpc3RvcGggTGFtZXRlciwgPGNsYW1ldGVyQHNnaS5jb20+LCBNYXkgMzAsIDIwMDcKK0NocmlzdG9waCBMYW1ldGVyLCBNYXkgMzAsIDIwMDcKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTM4Ni9JTy1BUElDLnR4dCBiL0RvY3VtZW50YXRpb24veDg2L2kzODYvSU8tQVBJQy50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTM4Ni9JTy1BUElDLnR4dApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi94ODYvaTM4Ni9JTy1BUElDLnR4dApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODYvaTM4Ni9ib290LnR4dCBiL0RvY3VtZW50YXRpb24veDg2L2kzODYvYm9vdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ3YmZlNQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24veDg2L2kzODYvYm9vdC50eHQKQEAgLTAsMCArMSw5MDAgQEAKKwkJICAgICBUSEUgTElOVVgveDg2IEJPT1QgUFJPVE9DT0wKKwkJICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworT24gdGhlIHg4NiBwbGF0Zm9ybSwgdGhlIExpbnV4IGtlcm5lbCB1c2VzIGEgcmF0aGVyIGNvbXBsaWNhdGVkIGJvb3QKK2NvbnZlbnRpb24uICBUaGlzIGhhcyBldm9sdmVkIHBhcnRpYWxseSBkdWUgdG8gaGlzdG9yaWNhbCBhc3BlY3RzLCBhcword2VsbCBhcyB0aGUgZGVzaXJlIGluIHRoZSBlYXJseSBkYXlzIHRvIGhhdmUgdGhlIGtlcm5lbCBpdHNlbGYgYmUgYQorYm9vdGFibGUgaW1hZ2UsIHRoZSBjb21wbGljYXRlZCBQQyBtZW1vcnkgbW9kZWwgYW5kIGR1ZSB0byBjaGFuZ2VkCitleHBlY3RhdGlvbnMgaW4gdGhlIFBDIGluZHVzdHJ5IGNhdXNlZCBieSB0aGUgZWZmZWN0aXZlIGRlbWlzZSBvZgorcmVhbC1tb2RlIERPUyBhcyBhIG1haW5zdHJlYW0gb3BlcmF0aW5nIHN5c3RlbS4KKworQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIHZlcnNpb25zIG9mIHRoZSBMaW51eC94ODYgYm9vdCBwcm90b2NvbCBleGlzdC4KKworT2xkIGtlcm5lbHM6CXpJbWFnZS9JbWFnZSBzdXBwb3J0IG9ubHkuICBTb21lIHZlcnkgZWFybHkga2VybmVscworCQltYXkgbm90IGV2ZW4gc3VwcG9ydCBhIGNvbW1hbmQgbGluZS4KKworUHJvdG9jb2wgMi4wMDoJKEtlcm5lbCAxLjMuNzMpIEFkZGVkIGJ6SW1hZ2UgYW5kIGluaXRyZCBzdXBwb3J0LCBhcworCQl3ZWxsIGFzIGEgZm9ybWFsaXplZCB3YXkgdG8gY29tbXVuaWNhdGUgYmV0d2VlbiB0aGUKKwkJYm9vdCBsb2FkZXIgYW5kIHRoZSBrZXJuZWwuICBzZXR1cC5TIG1hZGUgcmVsb2NhdGFibGUsCisJCWFsdGhvdWdoIHRoZSB0cmFkaXRpb25hbCBzZXR1cCBhcmVhIHN0aWxsIGFzc3VtZWQKKwkJd3JpdGFibGUuCisKK1Byb3RvY29sIDIuMDE6CShLZXJuZWwgMS4zLjc2KSBBZGRlZCBhIGhlYXAgb3ZlcnJ1biB3YXJuaW5nLgorCitQcm90b2NvbCAyLjAyOgkoS2VybmVsIDIuNC4wLXRlc3QzLXByZTMpIE5ldyBjb21tYW5kIGxpbmUgcHJvdG9jb2wuCisJCUxvd2VyIHRoZSBjb252ZW50aW9uYWwgbWVtb3J5IGNlaWxpbmcuCU5vIG92ZXJ3cml0ZQorCQlvZiB0aGUgdHJhZGl0aW9uYWwgc2V0dXAgYXJlYSwgdGh1cyBtYWtpbmcgYm9vdGluZworCQlzYWZlIGZvciBzeXN0ZW1zIHdoaWNoIHVzZSB0aGUgRUJEQSBmcm9tIFNNTSBvciAzMi1iaXQKKwkJQklPUyBlbnRyeSBwb2ludHMuICB6SW1hZ2UgZGVwcmVjYXRlZCBidXQgc3RpbGwKKwkJc3VwcG9ydGVkLgorCitQcm90b2NvbCAyLjAzOgkoS2VybmVsIDIuNC4xOC1wcmUxKSBFeHBsaWNpdGx5IG1ha2VzIHRoZSBoaWdoZXN0IHBvc3NpYmxlCisJCWluaXRyZCBhZGRyZXNzIGF2YWlsYWJsZSB0byB0aGUgYm9vdGxvYWRlci4KKworUHJvdG9jb2wgMi4wNDoJKEtlcm5lbCAyLjYuMTQpIEV4dGVuZCB0aGUgc3lzc2l6ZSBmaWVsZCB0byBmb3VyIGJ5dGVzLgorCitQcm90b2NvbCAyLjA1OgkoS2VybmVsIDIuNi4yMCkgTWFrZSBwcm90ZWN0ZWQgbW9kZSBrZXJuZWwgcmVsb2NhdGFibGUuCisJCUludHJvZHVjZSByZWxvY2F0YWJsZV9rZXJuZWwgYW5kIGtlcm5lbF9hbGlnbm1lbnQgZmllbGRzLgorCitQcm90b2NvbCAyLjA2OgkoS2VybmVsIDIuNi4yMikgQWRkZWQgYSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBzaXplIG9mCisJCXRoZSBib290IGNvbW1hbmQgbGluZS4KKworUHJvdG9jb2wgMi4wNzoJKEtlcm5lbCAyLjYuMjQpIEFkZGVkIHBhcmF2aXJ0dWFsaXNlZCBib290IHByb3RvY29sLgorCQlJbnRyb2R1Y2VkIGhhcmR3YXJlX3N1YmFyY2ggYW5kIGhhcmR3YXJlX3N1YmFyY2hfZGF0YQorCQlhbmQgS0VFUF9TRUdNRU5UUyBmbGFnIGluIGxvYWRfZmxhZ3MuCisKK1Byb3RvY29sIDIuMDg6CShLZXJuZWwgMi42LjI2KSBBZGRlZCBjcmMzMiBjaGVja3N1bSBhbmQgRUxGIGZvcm1hdAorCQlwYXlsb2FkLiBJbnRyb2R1Y2VkIHBheWxvYWRfb2Zmc2V0IGFuZCBwYXlsb2FkIGxlbmd0aAorCQlmaWVsZHMgdG8gYWlkIGluIGxvY2F0aW5nIHRoZSBwYXlsb2FkLgorCitQcm90b2NvbCAyLjA5OgkoS2VybmVsIDIuNi4yNikgQWRkZWQgYSBmaWVsZCBvZiA2NC1iaXQgcGh5c2ljYWwKKwkJcG9pbnRlciB0byBzaW5nbGUgbGlua2VkIGxpc3Qgb2Ygc3RydWN0CXNldHVwX2RhdGEuCisKKyoqKiogTUVNT1JZIExBWU9VVAorCitUaGUgdHJhZGl0aW9uYWwgbWVtb3J5IG1hcCBmb3IgdGhlIGtlcm5lbCBsb2FkZXIsIHVzZWQgZm9yIEltYWdlIG9yCit6SW1hZ2Uga2VybmVscywgdHlwaWNhbGx5IGxvb2tzIGxpa2U6CisKKwl8CQkJIHwKKzBBMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIFJlc2VydmVkIGZvciBCSU9TCSB8CURvIG5vdCB1c2UuICBSZXNlcnZlZCBmb3IgQklPUyBFQkRBLgorMDlBMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgQ29tbWFuZCBsaW5lCQkgfAorCXwgIFN0YWNrL2hlYXAJCSB8CUZvciB1c2UgYnkgdGhlIGtlcm5lbCByZWFsLW1vZGUgY29kZS4KKzA5ODAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwkKKwl8ICBLZXJuZWwgc2V0dXAJCSB8CVRoZSBrZXJuZWwgcmVhbC1tb2RlIGNvZGUuCiswOTAyMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBLZXJuZWwgYm9vdCBzZWN0b3IJIHwJVGhlIGtlcm5lbCBsZWdhY3kgYm9vdCBzZWN0b3IuCiswOTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBQcm90ZWN0ZWQtbW9kZSBrZXJuZWwgfAlUaGUgYnVsayBvZiB0aGUga2VybmVsIGltYWdlLgorMDEwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgQm9vdCBsb2FkZXIJCSB8CTwtIEJvb3Qgc2VjdG9yIGVudHJ5IHBvaW50IDAwMDA6N0MwMAorMDAxMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgUmVzZXJ2ZWQgZm9yIE1CUi9CSU9TIHwKKzAwMDgwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIFR5cGljYWxseSB1c2VkIGJ5IE1CUiB8CiswMDA2MDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgCisJfCAgQklPUyB1c2Ugb25seQkgfAorMDAwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisKKworV2hlbiB1c2luZyBiekltYWdlLCB0aGUgcHJvdGVjdGVkLW1vZGUga2VybmVsIHdhcyByZWxvY2F0ZWQgdG8KKzB4MTAwMDAwICgiaGlnaCBtZW1vcnkiKSwgYW5kIHRoZSBrZXJuZWwgcmVhbC1tb2RlIGJsb2NrIChib290IHNlY3RvciwKK3NldHVwLCBhbmQgc3RhY2svaGVhcCkgd2FzIG1hZGUgcmVsb2NhdGFibGUgdG8gYW55IGFkZHJlc3MgYmV0d2VlbgorMHgxMDAwMCBhbmQgZW5kIG9mIGxvdyBtZW1vcnkuIFVuZm9ydHVuYXRlbHksIGluIHByb3RvY29scyAyLjAwIGFuZAorMi4wMSB0aGUgMHg5MDAwMCsgbWVtb3J5IHJhbmdlIGlzIHN0aWxsIHVzZWQgaW50ZXJuYWxseSBieSB0aGUga2VybmVsOwordGhlIDIuMDIgcHJvdG9jb2wgcmVzb2x2ZXMgdGhhdCBwcm9ibGVtLgorCitJdCBpcyBkZXNpcmFibGUgdG8ga2VlcCB0aGUgIm1lbW9yeSBjZWlsaW5nIiAtLSB0aGUgaGlnaGVzdCBwb2ludCBpbgorbG93IG1lbW9yeSB0b3VjaGVkIGJ5IHRoZSBib290IGxvYWRlciAtLSBhcyBsb3cgYXMgcG9zc2libGUsIHNpbmNlCitzb21lIG5ld2VyIEJJT1NlcyBoYXZlIGJlZ3VuIHRvIGFsbG9jYXRlIHNvbWUgcmF0aGVyIGxhcmdlIGFtb3VudHMgb2YKK21lbW9yeSwgY2FsbGVkIHRoZSBFeHRlbmRlZCBCSU9TIERhdGEgQXJlYSwgbmVhciB0aGUgdG9wIG9mIGxvdworbWVtb3J5LgkgVGhlIGJvb3QgbG9hZGVyIHNob3VsZCB1c2UgdGhlICJJTlQgMTJoIiBCSU9TIGNhbGwgdG8gdmVyaWZ5Citob3cgbXVjaCBsb3cgbWVtb3J5IGlzIGF2YWlsYWJsZS4KKworVW5mb3J0dW5hdGVseSwgaWYgSU5UIDEyaCByZXBvcnRzIHRoYXQgdGhlIGFtb3VudCBvZiBtZW1vcnkgaXMgdG9vCitsb3csIHRoZXJlIGlzIHVzdWFsbHkgbm90aGluZyB0aGUgYm9vdCBsb2FkZXIgY2FuIGRvIGJ1dCB0byByZXBvcnQgYW4KK2Vycm9yIHRvIHRoZSB1c2VyLiAgVGhlIGJvb3QgbG9hZGVyIHNob3VsZCB0aGVyZWZvcmUgYmUgZGVzaWduZWQgdG8KK3Rha2UgdXAgYXMgbGl0dGxlIHNwYWNlIGluIGxvdyBtZW1vcnkgYXMgaXQgcmVhc29uYWJseSBjYW4uICBGb3IKK3pJbWFnZSBvciBvbGQgYnpJbWFnZSBrZXJuZWxzLCB3aGljaCBuZWVkIGRhdGEgd3JpdHRlbiBpbnRvIHRoZQorMHg5MDAwMCBzZWdtZW50LCB0aGUgYm9vdCBsb2FkZXIgc2hvdWxkIG1ha2Ugc3VyZSBub3QgdG8gdXNlIG1lbW9yeQorYWJvdmUgdGhlIDB4OUEwMDAgcG9pbnQ7IHRvbyBtYW55IEJJT1NlcyB3aWxsIGJyZWFrIGFib3ZlIHRoYXQgcG9pbnQuCisKK0ZvciBhIG1vZGVybiBiekltYWdlIGtlcm5lbCB3aXRoIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiA+PSAyLjAyLCBhCittZW1vcnkgbGF5b3V0IGxpa2UgdGhlIGZvbGxvd2luZyBpcyBzdWdnZXN0ZWQ6CisKKwl+ICAgICAgICAgICAgICAgICAgICAgICAgfgorICAgICAgICB8ICBQcm90ZWN0ZWQtbW9kZSBrZXJuZWwgfAorMTAwMDAwICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIEkvTyBtZW1vcnkgaG9sZQkgfAorMEEwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgUmVzZXJ2ZWQgZm9yIEJJT1MJIHwJTGVhdmUgYXMgbXVjaCBhcyBwb3NzaWJsZSB1bnVzZWQKKwl+ICAgICAgICAgICAgICAgICAgICAgICAgfgorCXwgIENvbW1hbmQgbGluZQkJIHwJKENhbiBhbHNvIGJlIGJlbG93IHRoZSBYKzEwMDAwIG1hcmspCitYKzEwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgU3RhY2svaGVhcAkJIHwJRm9yIHVzZSBieSB0aGUga2VybmVsIHJlYWwtbW9kZSBjb2RlLgorWCswODAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwkKKwl8ICBLZXJuZWwgc2V0dXAJCSB8CVRoZSBrZXJuZWwgcmVhbC1tb2RlIGNvZGUuCisJfCAgS2VybmVsIGJvb3Qgc2VjdG9yCSB8CVRoZSBrZXJuZWwgbGVnYWN5IGJvb3Qgc2VjdG9yLgorWCAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIEJvb3QgbG9hZGVyCQkgfAk8LSBCb290IHNlY3RvciBlbnRyeSBwb2ludCAwMDAwOjdDMDAKKzAwMTAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIFJlc2VydmVkIGZvciBNQlIvQklPUyB8CiswMDA4MDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBUeXBpY2FsbHkgdXNlZCBieSBNQlIgfAorMDAwNjAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIAorCXwgIEJJT1MgdXNlIG9ubHkJIHwKKzAwMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCisuLi4gd2hlcmUgdGhlIGFkZHJlc3MgWCBpcyBhcyBsb3cgYXMgdGhlIGRlc2lnbiBvZiB0aGUgYm9vdCBsb2FkZXIKK3Blcm1pdHMuCisKKworKioqKiBUSEUgUkVBTC1NT0RFIEtFUk5FTCBIRUFERVIKKworSW4gdGhlIGZvbGxvd2luZyB0ZXh0LCBhbmQgYW55d2hlcmUgaW4gdGhlIGtlcm5lbCBib290IHNlcXVlbmNlLCAiYQorc2VjdG9yIiByZWZlcnMgdG8gNTEyIGJ5dGVzLiAgSXQgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIGFjdHVhbCBzZWN0b3IKK3NpemUgb2YgdGhlIHVuZGVybHlpbmcgbWVkaXVtLgorCitUaGUgZmlyc3Qgc3RlcCBpbiBsb2FkaW5nIGEgTGludXgga2VybmVsIHNob3VsZCBiZSB0byBsb2FkIHRoZQorcmVhbC1tb2RlIGNvZGUgKGJvb3Qgc2VjdG9yIGFuZCBzZXR1cCBjb2RlKSBhbmQgdGhlbiBleGFtaW5lIHRoZQorZm9sbG93aW5nIGhlYWRlciBhdCBvZmZzZXQgMHgwMWYxLiAgVGhlIHJlYWwtbW9kZSBjb2RlIGNhbiB0b3RhbCB1cCB0bworMzJLLCBhbHRob3VnaCB0aGUgYm9vdCBsb2FkZXIgbWF5IGNob29zZSB0byBsb2FkIG9ubHkgdGhlIGZpcnN0IHR3bworc2VjdG9ycyAoMUspIGFuZCB0aGVuIGV4YW1pbmUgdGhlIGJvb3R1cCBzZWN0b3Igc2l6ZS4KKworVGhlIGhlYWRlciBsb29rcyBsaWtlOgorCitPZmZzZXQJUHJvdG8JTmFtZQkJTWVhbmluZworL1NpemUKKworMDFGMS8xCUFMTCgxCXNldHVwX3NlY3RzCVRoZSBzaXplIG9mIHRoZSBzZXR1cCBpbiBzZWN0b3JzCiswMUYyLzIJQUxMCXJvb3RfZmxhZ3MJSWYgc2V0LCB0aGUgcm9vdCBpcyBtb3VudGVkIHJlYWRvbmx5CiswMUY0LzQJMi4wNCsoMglzeXNzaXplCQlUaGUgc2l6ZSBvZiB0aGUgMzItYml0IGNvZGUgaW4gMTYtYnl0ZSBwYXJhcworMDFGOC8yCUFMTAlyYW1fc2l6ZQlETyBOT1QgVVNFIC0gZm9yIGJvb3RzZWN0LlMgdXNlIG9ubHkKKzAxRkEvMglBTEwJdmlkX21vZGUJVmlkZW8gbW9kZSBjb250cm9sCiswMUZDLzIJQUxMCXJvb3RfZGV2CURlZmF1bHQgcm9vdCBkZXZpY2UgbnVtYmVyCiswMUZFLzIJQUxMCWJvb3RfZmxhZwkweEFBNTUgbWFnaWMgbnVtYmVyCiswMjAwLzIJMi4wMCsJanVtcAkJSnVtcCBpbnN0cnVjdGlvbgorMDIwMi80CTIuMDArCWhlYWRlcgkJTWFnaWMgc2lnbmF0dXJlICJIZHJTIgorMDIwNi8yCTIuMDArCXZlcnNpb24JCUJvb3QgcHJvdG9jb2wgdmVyc2lvbiBzdXBwb3J0ZWQKKzAyMDgvNAkyLjAwKwlyZWFsbW9kZV9zd3RjaAlCb290IGxvYWRlciBob29rIChzZWUgYmVsb3cpCiswMjBDLzIJMi4wMCsJc3RhcnRfc3lzCVRoZSBsb2FkLWxvdyBzZWdtZW50ICgweDEwMDApIChvYnNvbGV0ZSkKKzAyMEUvMgkyLjAwKwlrZXJuZWxfdmVyc2lvbglQb2ludGVyIHRvIGtlcm5lbCB2ZXJzaW9uIHN0cmluZworMDIxMC8xCTIuMDArCXR5cGVfb2ZfbG9hZGVyCUJvb3QgbG9hZGVyIGlkZW50aWZpZXIKKzAyMTEvMQkyLjAwKwlsb2FkZmxhZ3MJQm9vdCBwcm90b2NvbCBvcHRpb24gZmxhZ3MKKzAyMTIvMgkyLjAwKwlzZXR1cF9tb3ZlX3NpemUJTW92ZSB0byBoaWdoIG1lbW9yeSBzaXplICh1c2VkIHdpdGggaG9va3MpCiswMjE0LzQJMi4wMCsJY29kZTMyX3N0YXJ0CUJvb3QgbG9hZGVyIGhvb2sgKHNlZSBiZWxvdykKKzAyMTgvNAkyLjAwKwlyYW1kaXNrX2ltYWdlCWluaXRyZCBsb2FkIGFkZHJlc3MgKHNldCBieSBib290IGxvYWRlcikKKzAyMUMvNAkyLjAwKwlyYW1kaXNrX3NpemUJaW5pdHJkIHNpemUgKHNldCBieSBib290IGxvYWRlcikKKzAyMjAvNAkyLjAwKwlib290c2VjdF9rbHVkZ2UJRE8gTk9UIFVTRSAtIGZvciBib290c2VjdC5TIHVzZSBvbmx5CiswMjI0LzIJMi4wMSsJaGVhcF9lbmRfcHRyCUZyZWUgbWVtb3J5IGFmdGVyIHNldHVwIGVuZAorMDIyNi8yCU4vQQlwYWQxCQlVbnVzZWQKKzAyMjgvNAkyLjAyKwljbWRfbGluZV9wdHIJMzItYml0IHBvaW50ZXIgdG8gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUKKzAyMkMvNAkyLjAzKwlpbml0cmRfYWRkcl9tYXgJSGlnaGVzdCBsZWdhbCBpbml0cmQgYWRkcmVzcworMDIzMC80CTIuMDUrCWtlcm5lbF9hbGlnbm1lbnQgUGh5c2ljYWwgYWRkciBhbGlnbm1lbnQgcmVxdWlyZWQgZm9yIGtlcm5lbAorMDIzNC8xCTIuMDUrCXJlbG9jYXRhYmxlX2tlcm5lbCBXaGV0aGVyIGtlcm5lbCBpcyByZWxvY2F0YWJsZSBvciBub3QKKzAyMzUvMwlOL0EJcGFkMgkJVW51c2VkCiswMjM4LzQJMi4wNisJY21kbGluZV9zaXplCU1heGltdW0gc2l6ZSBvZiB0aGUga2VybmVsIGNvbW1hbmQgbGluZQorMDIzQy80CTIuMDcrCWhhcmR3YXJlX3N1YmFyY2ggSGFyZHdhcmUgc3ViYXJjaGl0ZWN0dXJlCiswMjQwLzgJMi4wNysJaGFyZHdhcmVfc3ViYXJjaF9kYXRhIFN1YmFyY2hpdGVjdHVyZS1zcGVjaWZpYyBkYXRhCiswMjQ4LzQJMi4wOCsJcGF5bG9hZF9vZmZzZXQJT2Zmc2V0IG9mIGtlcm5lbCBwYXlsb2FkCiswMjRDLzQJMi4wOCsJcGF5bG9hZF9sZW5ndGgJTGVuZ3RoIG9mIGtlcm5lbCBwYXlsb2FkCiswMjUwLzgJMi4wOSsJc2V0dXBfZGF0YQk2NC1iaXQgcGh5c2ljYWwgcG9pbnRlciB0byBsaW5rZWQgbGlzdAorCQkJCW9mIHN0cnVjdCBzZXR1cF9kYXRhCisKKygxKSBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGlmIHRoZSBzZXR1cF9zZWN0cyBmaWVsZCBjb250YWlucyAwLCB0aGUKKyAgICByZWFsIHZhbHVlIGlzIDQuCisKKygyKSBGb3IgYm9vdCBwcm90b2NvbCBwcmlvciB0byAyLjA0LCB0aGUgdXBwZXIgdHdvIGJ5dGVzIG9mIHRoZSBzeXNzaXplCisgICAgZmllbGQgYXJlIHVudXNhYmxlLCB3aGljaCBtZWFucyB0aGUgc2l6ZSBvZiBhIGJ6SW1hZ2Uga2VybmVsCisgICAgY2Fubm90IGJlIGRldGVybWluZWQuCisKK0lmIHRoZSAiSGRyUyIgKDB4NTM3MjY0NDgpIG1hZ2ljIG51bWJlciBpcyBub3QgZm91bmQgYXQgb2Zmc2V0IDB4MjAyLAordGhlIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiBpcyAib2xkIi4gIExvYWRpbmcgYW4gb2xkIGtlcm5lbCwgdGhlCitmb2xsb3dpbmcgcGFyYW1ldGVycyBzaG91bGQgYmUgYXNzdW1lZDoKKworCUltYWdlIHR5cGUgPSB6SW1hZ2UKKwlpbml0cmQgbm90IHN1cHBvcnRlZAorCVJlYWwtbW9kZSBrZXJuZWwgbXVzdCBiZSBsb2NhdGVkIGF0IDB4OTAwMDAuCisKK090aGVyd2lzZSwgdGhlICJ2ZXJzaW9uIiBmaWVsZCBjb250YWlucyB0aGUgcHJvdG9jb2wgdmVyc2lvbiwKK2UuZy4gcHJvdG9jb2wgdmVyc2lvbiAyLjAxIHdpbGwgY29udGFpbiAweDAyMDEgaW4gdGhpcyBmaWVsZC4gIFdoZW4KK3NldHRpbmcgZmllbGRzIGluIHRoZSBoZWFkZXIsIHlvdSBtdXN0IG1ha2Ugc3VyZSBvbmx5IHRvIHNldCBmaWVsZHMKK3N1cHBvcnRlZCBieSB0aGUgcHJvdG9jb2wgdmVyc2lvbiBpbiB1c2UuCisKKworKioqKiBERVRBSUxTIE9GIEhFQURFUiBGSUVMRFMKKworRm9yIGVhY2ggZmllbGQsIHNvbWUgYXJlIGluZm9ybWF0aW9uIGZyb20gdGhlIGtlcm5lbCB0byB0aGUgYm9vdGxvYWRlcgorKCJyZWFkIiksIHNvbWUgYXJlIGV4cGVjdGVkIHRvIGJlIGZpbGxlZCBvdXQgYnkgdGhlIGJvb3Rsb2FkZXIKKygid3JpdGUiKSwgYW5kIHNvbWUgYXJlIGV4cGVjdGVkIHRvIGJlIHJlYWQgYW5kIG1vZGlmaWVkIGJ5IHRoZQorYm9vdGxvYWRlciAoIm1vZGlmeSIpLgorCitBbGwgZ2VuZXJhbCBwdXJwb3NlIGJvb3QgbG9hZGVycyBzaG91bGQgd3JpdGUgdGhlIGZpZWxkcyBtYXJrZWQKKyhvYmxpZ2F0b3J5KS4gIEJvb3QgbG9hZGVycyB3aG8gd2FudCB0byBsb2FkIHRoZSBrZXJuZWwgYXQgYQorbm9uc3RhbmRhcmQgYWRkcmVzcyBzaG91bGQgZmlsbCBpbiB0aGUgZmllbGRzIG1hcmtlZCAocmVsb2MpOyBvdGhlcgorYm9vdCBsb2FkZXJzIGNhbiBpZ25vcmUgdGhvc2UgZmllbGRzLgorCitUaGUgYnl0ZSBvcmRlciBvZiBhbGwgZmllbGRzIGlzIGxpdHRsZWVuZGlhbiAodGhpcyBpcyB4ODYsIGFmdGVyIGFsbC4pCisKK0ZpZWxkIG5hbWU6CXNldHVwX3NlY3RzCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MWYxLzEKK1Byb3RvY29sOglBTEwKKworICBUaGUgc2l6ZSBvZiB0aGUgc2V0dXAgY29kZSBpbiA1MTItYnl0ZSBzZWN0b3JzLiAgSWYgdGhpcyBmaWVsZCBpcworICAwLCB0aGUgcmVhbCB2YWx1ZSBpcyA0LiAgVGhlIHJlYWwtbW9kZSBjb2RlIGNvbnNpc3RzIG9mIHRoZSBib290CisgIHNlY3RvciAoYWx3YXlzIG9uZSA1MTItYnl0ZSBzZWN0b3IpIHBsdXMgdGhlIHNldHVwIGNvZGUuCisKK0ZpZWxkIG5hbWU6CSByb290X2ZsYWdzCitUeXBlOgkJIG1vZGlmeSAob3B0aW9uYWwpCitPZmZzZXQvc2l6ZToJIDB4MWYyLzIKK1Byb3RvY29sOgkgQUxMCisKKyAgSWYgdGhpcyBmaWVsZCBpcyBub256ZXJvLCB0aGUgcm9vdCBkZWZhdWx0cyB0byByZWFkb25seS4gIFRoZSB1c2Ugb2YKKyAgdGhpcyBmaWVsZCBpcyBkZXByZWNhdGVkOyB1c2UgdGhlICJybyIgb3IgInJ3IiBvcHRpb25zIG9uIHRoZQorICBjb21tYW5kIGxpbmUgaW5zdGVhZC4KKworRmllbGQgbmFtZToJc3lzc2l6ZQorVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDFmNC80IChwcm90b2NvbCAyLjA0KykgMHgxZjQvMiAocHJvdG9jb2wgQUxMKQorUHJvdG9jb2w6CTIuMDQrCisKKyAgVGhlIHNpemUgb2YgdGhlIHByb3RlY3RlZC1tb2RlIGNvZGUgaW4gdW5pdHMgb2YgMTYtYnl0ZSBwYXJhZ3JhcGhzLgorICBGb3IgcHJvdG9jb2wgdmVyc2lvbnMgb2xkZXIgdGhhbiAyLjA0IHRoaXMgZmllbGQgaXMgb25seSB0d28gYnl0ZXMKKyAgd2lkZSwgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgdHJ1c3RlZCBmb3IgdGhlIHNpemUgb2YgYSBrZXJuZWwgaWYKKyAgdGhlIExPQURfSElHSCBmbGFnIGlzIHNldC4KKworRmllbGQgbmFtZToJcmFtX3NpemUKK1R5cGU6CQlrZXJuZWwgaW50ZXJuYWwKK09mZnNldC9zaXplOgkweDFmOC8yCitQcm90b2NvbDoJQUxMCisKKyAgVGhpcyBmaWVsZCBpcyBvYnNvbGV0ZS4KKworRmllbGQgbmFtZToJdmlkX21vZGUKK1R5cGU6CQltb2RpZnkgKG9ibGlnYXRvcnkpCitPZmZzZXQvc2l6ZToJMHgxZmEvMgorCisgIFBsZWFzZSBzZWUgdGhlIHNlY3Rpb24gb24gU1BFQ0lBTCBDT01NQU5EIExJTkUgT1BUSU9OUy4KKworRmllbGQgbmFtZToJcm9vdF9kZXYKK1R5cGU6CQltb2RpZnkgKG9wdGlvbmFsKQorT2Zmc2V0L3NpemU6CTB4MWZjLzIKK1Byb3RvY29sOglBTEwKKworICBUaGUgZGVmYXVsdCByb290IGRldmljZSBkZXZpY2UgbnVtYmVyLiAgVGhlIHVzZSBvZiB0aGlzIGZpZWxkIGlzCisgIGRlcHJlY2F0ZWQsIHVzZSB0aGUgInJvb3Q9IiBvcHRpb24gb24gdGhlIGNvbW1hbmQgbGluZSBpbnN0ZWFkLgorCitGaWVsZCBuYW1lOglib290X2ZsYWcKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgxZmUvMgorUHJvdG9jb2w6CUFMTAorCisgIENvbnRhaW5zIDB4QUE1NS4gIFRoaXMgaXMgdGhlIGNsb3Nlc3QgdGhpbmcgb2xkIExpbnV4IGtlcm5lbHMgaGF2ZQorICB0byBhIG1hZ2ljIG51bWJlci4KKworRmllbGQgbmFtZToJanVtcAorVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDIwMC8yCitQcm90b2NvbDoJMi4wMCsKKworICBDb250YWlucyBhbiB4ODYganVtcCBpbnN0cnVjdGlvbiwgMHhFQiBmb2xsb3dlZCBieSBhIHNpZ25lZCBvZmZzZXQKKyAgcmVsYXRpdmUgdG8gYnl0ZSAweDIwMi4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBzaXplIG9mCisgIHRoZSBoZWFkZXIuCisKK0ZpZWxkIG5hbWU6CWhlYWRlcgorVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDIwMi80CitQcm90b2NvbDoJMi4wMCsKKworICBDb250YWlucyB0aGUgbWFnaWMgbnVtYmVyICJIZHJTIiAoMHg1MzcyNjQ0OCkuCisKK0ZpZWxkIG5hbWU6CXZlcnNpb24KK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgyMDYvMgorUHJvdG9jb2w6CTIuMDArCisKKyAgQ29udGFpbnMgdGhlIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiwgaW4gKG1ham9yIDw8IDgpK21pbm9yIGZvcm1hdCwKKyAgZS5nLiAweDAyMDQgZm9yIHZlcnNpb24gMi4wNCwgYW5kIDB4MGExMSBmb3IgYSBoeXBvdGhldGljYWwgdmVyc2lvbgorICAxMC4xNy4KKworRmllbGQgbmFtZToJcmVhZG1vZGVfc3d0Y2gKK1R5cGU6CQltb2RpZnkgKG9wdGlvbmFsKQorT2Zmc2V0L3NpemU6CTB4MjA4LzQKK1Byb3RvY29sOgkyLjAwKworCisgIEJvb3QgbG9hZGVyIGhvb2sgKHNlZSBBRFZBTkNFRCBCT09UIExPQURFUiBIT09LUyBiZWxvdy4pCisKK0ZpZWxkIG5hbWU6CXN0YXJ0X3N5cworVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDIwYy80CitQcm90b2NvbDoJMi4wMCsKKworICBUaGUgbG9hZCBsb3cgc2VnbWVudCAoMHgxMDAwKS4gIE9ic29sZXRlLgorCitGaWVsZCBuYW1lOglrZXJuZWxfdmVyc2lvbgorVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDIwZS8yCitQcm90b2NvbDoJMi4wMCsKKworICBJZiBzZXQgdG8gYSBub256ZXJvIHZhbHVlLCBjb250YWlucyBhIHBvaW50ZXIgdG8gYSBOVUwtdGVybWluYXRlZAorICBodW1hbi1yZWFkYWJsZSBrZXJuZWwgdmVyc2lvbiBudW1iZXIgc3RyaW5nLCBsZXNzIDB4MjAwLiAgVGhpcyBjYW4KKyAgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBrZXJuZWwgdmVyc2lvbiB0byB0aGUgdXNlci4gIFRoaXMgdmFsdWUKKyAgc2hvdWxkIGJlIGxlc3MgdGhhbiAoMHgyMDAqc2V0dXBfc2VjdHMpLgorCisgIEZvciBleGFtcGxlLCBpZiB0aGlzIHZhbHVlIGlzIHNldCB0byAweDFjMDAsIHRoZSBrZXJuZWwgdmVyc2lvbgorICBudW1iZXIgc3RyaW5nIGNhbiBiZSBmb3VuZCBhdCBvZmZzZXQgMHgxZTAwIGluIHRoZSBrZXJuZWwgZmlsZS4KKyAgVGhpcyBpcyBhIHZhbGlkIHZhbHVlIGlmIGFuZCBvbmx5IGlmIHRoZSAic2V0dXBfc2VjdHMiIGZpZWxkCisgIGNvbnRhaW5zIHRoZSB2YWx1ZSAxNSBvciBoaWdoZXIsIGFzOgorCisJMHgxYzAwICA8IDE1KjB4MjAwICg9IDB4MWUwMCkgYnV0CisJMHgxYzAwID49IDE0KjB4MjAwICg9IDB4MWMwMCkKKworCTB4MWMwMCA+PiA5ID0gMTQsIHNvIHRoZSBtaW5pbXVtIHZhbHVlIGZvciBzZXR1cF9zZWNzIGlzIDE1LgorCitGaWVsZCBuYW1lOgl0eXBlX29mX2xvYWRlcgorVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQorT2Zmc2V0L3NpemU6CTB4MjEwLzEKK1Byb3RvY29sOgkyLjAwKworCisgIElmIHlvdXIgYm9vdCBsb2FkZXIgaGFzIGFuIGFzc2lnbmVkIGlkIChzZWUgdGFibGUgYmVsb3cpLCBlbnRlcgorICAweFRWIGhlcmUsIHdoZXJlIFQgaXMgYW4gaWRlbnRpZmllciBmb3IgdGhlIGJvb3QgbG9hZGVyIGFuZCBWIGlzCisgIGEgdmVyc2lvbiBudW1iZXIuICBPdGhlcndpc2UsIGVudGVyIDB4RkYgaGVyZS4KKworICBBc3NpZ25lZCBib290IGxvYWRlciBpZHM6CisJMCAgTElMTwkJCSgweDAwIHJlc2VydmVkIGZvciBwcmUtMi4wMCBib290bG9hZGVyKQorCTEgIExvYWRsaW4KKwkyICBib290c2VjdC1sb2FkZXIJKDB4MjAsIGFsbCBvdGhlciB2YWx1ZXMgcmVzZXJ2ZWQpCisJMyAgU1lTTElOVVgKKwk0ICBFdGhlckJvb3QKKwk1ICBFTElMTworCTcgIEdSdUIKKwk4ICBVLUJPT1QKKwk5ICBYZW4KKwlBICBHdWppbgorCUIgIFFlbXUKKworICBQbGVhc2UgY29udGFjdCA8aHBhQHp5dG9yLmNvbT4gaWYgeW91IG5lZWQgYSBib290bG9hZGVyIElECisgIHZhbHVlIGFzc2lnbmVkLgorCitGaWVsZCBuYW1lOglsb2FkZmxhZ3MKK1R5cGU6CQltb2RpZnkgKG9ibGlnYXRvcnkpCitPZmZzZXQvc2l6ZToJMHgyMTEvMQorUHJvdG9jb2w6CTIuMDArCisKKyAgVGhpcyBmaWVsZCBpcyBhIGJpdG1hc2suCisKKyAgQml0IDAgKHJlYWQpOglMT0FERURfSElHSAorCS0gSWYgMCwgdGhlIHByb3RlY3RlZC1tb2RlIGNvZGUgaXMgbG9hZGVkIGF0IDB4MTAwMDAuCisJLSBJZiAxLCB0aGUgcHJvdGVjdGVkLW1vZGUgY29kZSBpcyBsb2FkZWQgYXQgMHgxMDAwMDAuCisKKyAgQml0IDUgKHdyaXRlKTogUVVJRVRfRkxBRworCS0gSWYgMCwgcHJpbnQgZWFybHkgbWVzc2FnZXMuCisJLSBJZiAxLCBzdXBwcmVzcyBlYXJseSBtZXNzYWdlcy4KKwkJVGhpcyByZXF1ZXN0cyB0byB0aGUga2VybmVsIChkZWNvbXByZXNzb3IgYW5kIGVhcmx5CisJCWtlcm5lbCkgdG8gbm90IHdyaXRlIGVhcmx5IG1lc3NhZ2VzIHRoYXQgcmVxdWlyZQorCQlhY2Nlc3NpbmcgdGhlIGRpc3BsYXkgaGFyZHdhcmUgZGlyZWN0bHkuCisKKyAgQml0IDYgKHdyaXRlKTogS0VFUF9TRUdNRU5UUworCVByb3RvY29sOiAyLjA3KworCS0gSWYgMCwgcmVsb2FkIHRoZSBzZWdtZW50IHJlZ2lzdGVycyBpbiB0aGUgMzJiaXQgZW50cnkgcG9pbnQuCisJLSBJZiAxLCBkbyBub3QgcmVsb2FkIHRoZSBzZWdtZW50IHJlZ2lzdGVycyBpbiB0aGUgMzJiaXQgZW50cnkgcG9pbnQuCisJCUFzc3VtZSB0aGF0ICVjcyAlZHMgJXNzICVlcyBhcmUgYWxsIHNldCB0byBmbGF0IHNlZ21lbnRzIHdpdGgKKwkJYSBiYXNlIG9mIDAgKG9yIHRoZSBlcXVpdmFsZW50IGZvciB0aGVpciBlbnZpcm9ubWVudCkuCisKKyAgQml0IDcgKHdyaXRlKTogQ0FOX1VTRV9IRUFQCisJU2V0IHRoaXMgYml0IHRvIDEgdG8gaW5kaWNhdGUgdGhhdCB0aGUgdmFsdWUgZW50ZXJlZCBpbiB0aGUKKwloZWFwX2VuZF9wdHIgaXMgdmFsaWQuICBJZiB0aGlzIGZpZWxkIGlzIGNsZWFyLCBzb21lIHNldHVwIGNvZGUKKwlmdW5jdGlvbmFsaXR5IHdpbGwgYmUgZGlzYWJsZWQuCisKK0ZpZWxkIG5hbWU6CXNldHVwX21vdmVfc2l6ZQorVHlwZToJCW1vZGlmeSAob2JsaWdhdG9yeSkKK09mZnNldC9zaXplOgkweDIxMi8yCitQcm90b2NvbDoJMi4wMC0yLjAxCisKKyAgV2hlbiB1c2luZyBwcm90b2NvbCAyLjAwIG9yIDIuMDEsIGlmIHRoZSByZWFsIG1vZGUga2VybmVsIGlzIG5vdAorICBsb2FkZWQgYXQgMHg5MDAwMCwgaXQgZ2V0cyBtb3ZlZCB0aGVyZSBsYXRlciBpbiB0aGUgbG9hZGluZworICBzZXF1ZW5jZS4gIEZpbGwgaW4gdGhpcyBmaWVsZCBpZiB5b3Ugd2FudCBhZGRpdGlvbmFsIGRhdGEgKHN1Y2ggYXMKKyAgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUpIG1vdmVkIGluIGFkZGl0aW9uIHRvIHRoZSByZWFsLW1vZGUga2VybmVsCisgIGl0c2VsZi4KKworICBUaGUgdW5pdCBpcyBieXRlcyBzdGFydGluZyB3aXRoIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJvb3Qgc2VjdG9yLgorICAKKyAgVGhpcyBmaWVsZCBpcyBjYW4gYmUgaWdub3JlZCB3aGVuIHRoZSBwcm90b2NvbCBpcyAyLjAyIG9yIGhpZ2hlciwgb3IKKyAgaWYgdGhlIHJlYWwtbW9kZSBjb2RlIGlzIGxvYWRlZCBhdCAweDkwMDAwLgorCitGaWVsZCBuYW1lOgljb2RlMzJfc3RhcnQKK1R5cGU6CQltb2RpZnkgKG9wdGlvbmFsLCByZWxvYykKK09mZnNldC9zaXplOgkweDIxNC80CitQcm90b2NvbDoJMi4wMCsKKworICBUaGUgYWRkcmVzcyB0byBqdW1wIHRvIGluIHByb3RlY3RlZCBtb2RlLiAgVGhpcyBkZWZhdWx0cyB0byB0aGUgbG9hZAorICBhZGRyZXNzIG9mIHRoZSBrZXJuZWwsIGFuZCBjYW4gYmUgdXNlZCBieSB0aGUgYm9vdCBsb2FkZXIgdG8KKyAgZGV0ZXJtaW5lIHRoZSBwcm9wZXIgbG9hZCBhZGRyZXNzLgorCisgIFRoaXMgZmllbGQgY2FuIGJlIG1vZGlmaWVkIGZvciB0d28gcHVycG9zZXM6CisKKyAgMS4gYXMgYSBib290IGxvYWRlciBob29rIChzZWUgQURWQU5DRUQgQk9PVCBMT0FERVIgSE9PS1MgYmVsb3cuKQorCisgIDIuIGlmIGEgYm9vdGxvYWRlciB3aGljaCBkb2VzIG5vdCBpbnN0YWxsIGEgaG9vayBsb2FkcyBhCisgICAgIHJlbG9jYXRhYmxlIGtlcm5lbCBhdCBhIG5vbnN0YW5kYXJkIGFkZHJlc3MgaXQgd2lsbCBoYXZlIHRvIG1vZGlmeQorICAgICB0aGlzIGZpZWxkIHRvIHBvaW50IHRvIHRoZSBsb2FkIGFkZHJlc3MuCisKK0ZpZWxkIG5hbWU6CXJhbWRpc2tfaW1hZ2UKK1R5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKK09mZnNldC9zaXplOgkweDIxOC80CitQcm90b2NvbDoJMi4wMCsKKworICBUaGUgMzItYml0IGxpbmVhciBhZGRyZXNzIG9mIHRoZSBpbml0aWFsIHJhbWRpc2sgb3IgcmFtZnMuICBMZWF2ZSBhdAorICB6ZXJvIGlmIHRoZXJlIGlzIG5vIGluaXRpYWwgcmFtZGlzay9yYW1mcy4KKworRmllbGQgbmFtZToJcmFtZGlza19zaXplCitUeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCitPZmZzZXQvc2l6ZToJMHgyMWMvNAorUHJvdG9jb2w6CTIuMDArCisKKyAgU2l6ZSBvZiB0aGUgaW5pdGlhbCByYW1kaXNrIG9yIHJhbWZzLiAgTGVhdmUgYXQgemVybyBpZiB0aGVyZSBpcyBubworICBpbml0aWFsIHJhbWRpc2svcmFtZnMuCisKK0ZpZWxkIG5hbWU6CWJvb3RzZWN0X2tsdWRnZQorVHlwZToJCWtlcm5lbCBpbnRlcm5hbAorT2Zmc2V0L3NpemU6CTB4MjIwLzQKK1Byb3RvY29sOgkyLjAwKworCisgIFRoaXMgZmllbGQgaXMgb2Jzb2xldGUuCisKK0ZpZWxkIG5hbWU6CWhlYXBfZW5kX3B0cgorVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQorT2Zmc2V0L3NpemU6CTB4MjI0LzIKK1Byb3RvY29sOgkyLjAxKworCisgIFNldCB0aGlzIGZpZWxkIHRvIHRoZSBvZmZzZXQgKGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgcmVhbC1tb2RlCisgIGNvZGUpIG9mIHRoZSBlbmQgb2YgdGhlIHNldHVwIHN0YWNrL2hlYXAsIG1pbnVzIDB4MDIwMC4KKworRmllbGQgbmFtZToJY21kX2xpbmVfcHRyCitUeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCitPZmZzZXQvc2l6ZToJMHgyMjgvNAorUHJvdG9jb2w6CTIuMDIrCisKKyAgU2V0IHRoaXMgZmllbGQgdG8gdGhlIGxpbmVhciBhZGRyZXNzIG9mIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLgorICBUaGUga2VybmVsIGNvbW1hbmQgbGluZSBjYW4gYmUgbG9jYXRlZCBhbnl3aGVyZSBiZXR3ZWVuIHRoZSBlbmQgb2YKKyAgdGhlIHNldHVwIGhlYXAgYW5kIDB4QTAwMDA7IGl0IGRvZXMgbm90IGhhdmUgdG8gYmUgbG9jYXRlZCBpbiB0aGUKKyAgc2FtZSA2NEsgc2VnbWVudCBhcyB0aGUgcmVhbC1tb2RlIGNvZGUgaXRzZWxmLgorCisgIEZpbGwgaW4gdGhpcyBmaWVsZCBldmVuIGlmIHlvdXIgYm9vdCBsb2FkZXIgZG9lcyBub3Qgc3VwcG9ydCBhCisgIGNvbW1hbmQgbGluZSwgaW4gd2hpY2ggY2FzZSB5b3UgY2FuIHBvaW50IHRoaXMgdG8gYW4gZW1wdHkgc3RyaW5nCisgIChvciBiZXR0ZXIgeWV0LCB0byB0aGUgc3RyaW5nICJhdXRvIi4pICBJZiB0aGlzIGZpZWxkIGlzIGxlZnQgYXQKKyAgemVybywgdGhlIGtlcm5lbCB3aWxsIGFzc3VtZSB0aGF0IHlvdXIgYm9vdCBsb2FkZXIgZG9lcyBub3Qgc3VwcG9ydAorICB0aGUgMi4wMisgcHJvdG9jb2wuCisKK0ZpZWxkIG5hbWU6CWluaXRyZF9hZGRyX21heAorVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDIyYy80CitQcm90b2NvbDoJMi4wMysKKworICBUaGUgbWF4aW11bSBhZGRyZXNzIHRoYXQgbWF5IGJlIG9jY3VwaWVkIGJ5IHRoZSBpbml0aWFsCisgIHJhbWRpc2svcmFtZnMgY29udGVudHMuICBGb3IgYm9vdCBwcm90b2NvbHMgMi4wMiBvciBlYXJsaWVyLCB0aGlzCisgIGZpZWxkIGlzIG5vdCBwcmVzZW50LCBhbmQgdGhlIG1heGltdW0gYWRkcmVzcyBpcyAweDM3RkZGRkZGLiAgKFRoaXMKKyAgYWRkcmVzcyBpcyBkZWZpbmVkIGFzIHRoZSBhZGRyZXNzIG9mIHRoZSBoaWdoZXN0IHNhZmUgYnl0ZSwgc28gaWYKKyAgeW91ciByYW1kaXNrIGlzIGV4YWN0bHkgMTMxMDcyIGJ5dGVzIGxvbmcgYW5kIHRoaXMgZmllbGQgaXMKKyAgMHgzN0ZGRkZGRiwgeW91IGNhbiBzdGFydCB5b3VyIHJhbWRpc2sgYXQgMHgzN0ZFMDAwMC4pCisKK0ZpZWxkIG5hbWU6CWtlcm5lbF9hbGlnbm1lbnQKK1R5cGU6CQlyZWFkIChyZWxvYykKK09mZnNldC9zaXplOgkweDIzMC80CitQcm90b2NvbDoJMi4wNSsKKworICBBbGlnbm1lbnQgdW5pdCByZXF1aXJlZCBieSB0aGUga2VybmVsIChpZiByZWxvY2F0YWJsZV9rZXJuZWwgaXMgdHJ1ZS4pCisKK0ZpZWxkIG5hbWU6CXJlbG9jYXRhYmxlX2tlcm5lbAorVHlwZToJCXJlYWQgKHJlbG9jKQorT2Zmc2V0L3NpemU6CTB4MjM0LzEKK1Byb3RvY29sOgkyLjA1KworCisgIElmIHRoaXMgZmllbGQgaXMgbm9uemVybywgdGhlIHByb3RlY3RlZC1tb2RlIHBhcnQgb2YgdGhlIGtlcm5lbCBjYW4KKyAgYmUgbG9hZGVkIGF0IGFueSBhZGRyZXNzIHRoYXQgc2F0aXNmaWVzIHRoZSBrZXJuZWxfYWxpZ25tZW50IGZpZWxkLgorICBBZnRlciBsb2FkaW5nLCB0aGUgYm9vdCBsb2FkZXIgbXVzdCBzZXQgdGhlIGNvZGUzMl9zdGFydCBmaWVsZCB0bworICBwb2ludCB0byB0aGUgbG9hZGVkIGNvZGUsIG9yIHRvIGEgYm9vdCBsb2FkZXIgaG9vay4KKworRmllbGQgbmFtZToJY21kbGluZV9zaXplCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MjM4LzQKK1Byb3RvY29sOgkyLjA2KworCisgIFRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIGNvbW1hbmQgbGluZSB3aXRob3V0IHRoZSB0ZXJtaW5hdGluZworICB6ZXJvLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgbGluZSBjYW4gY29udGFpbiBhdCBtb3N0CisgIGNtZGxpbmVfc2l6ZSBjaGFyYWN0ZXJzLiBXaXRoIHByb3RvY29sIHZlcnNpb24gMi4wNSBhbmQgZWFybGllciwgdGhlCisgIG1heGltdW0gc2l6ZSB3YXMgMjU1LgorCitGaWVsZCBuYW1lOgloYXJkd2FyZV9zdWJhcmNoCitUeXBlOgkJd3JpdGUgKG9wdGlvbmFsLCBkZWZhdWx0cyB0byB4ODYvUEMpCitPZmZzZXQvc2l6ZToJMHgyM2MvNAorUHJvdG9jb2w6CTIuMDcrCisKKyAgSW4gYSBwYXJhdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdGhlIGhhcmR3YXJlIGxvdyBsZXZlbCBhcmNoaXRlY3R1cmFsCisgIHBpZWNlcyBzdWNoIGFzIGludGVycnVwdCBoYW5kbGluZywgcGFnZSB0YWJsZSBoYW5kbGluZywgYW5kCisgIGFjY2Vzc2luZyBwcm9jZXNzIGNvbnRyb2wgcmVnaXN0ZXJzIG5lZWRzIHRvIGJlIGRvbmUgZGlmZmVyZW50bHkuCisKKyAgVGhpcyBmaWVsZCBhbGxvd3MgdGhlIGJvb3Rsb2FkZXIgdG8gaW5mb3JtIHRoZSBrZXJuZWwgd2UgYXJlIGluIG9uZQorICBvbmUgb2YgdGhvc2UgZW52aXJvbm1lbnRzLgorCisgIDB4MDAwMDAwMDAJVGhlIGRlZmF1bHQgeDg2L1BDIGVudmlyb25tZW50CisgIDB4MDAwMDAwMDEJbGd1ZXN0CisgIDB4MDAwMDAwMDIJWGVuCisKK0ZpZWxkIG5hbWU6CWhhcmR3YXJlX3N1YmFyY2hfZGF0YQorVHlwZToJCXdyaXRlIChzdWJhcmNoLWRlcGVuZGVudCkKK09mZnNldC9zaXplOgkweDI0MC84CitQcm90b2NvbDoJMi4wNysKKworICBBIHBvaW50ZXIgdG8gZGF0YSB0aGF0IGlzIHNwZWNpZmljIHRvIGhhcmR3YXJlIHN1YmFyY2gKKyAgVGhpcyBmaWVsZCBpcyBjdXJyZW50bHkgdW51c2VkIGZvciB0aGUgZGVmYXVsdCB4ODYvUEMgZW52aXJvbm1lbnQsCisgIGRvIG5vdCBtb2RpZnkuCisKK0ZpZWxkIG5hbWU6CXBheWxvYWRfb2Zmc2V0CitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MjQ4LzQKK1Byb3RvY29sOgkyLjA4KworCisgIElmIG5vbi16ZXJvIHRoZW4gdGhpcyBmaWVsZCBjb250YWlucyB0aGUgb2Zmc2V0IGZyb20gdGhlIGVuZCBvZiB0aGUKKyAgcmVhbC1tb2RlIGNvZGUgdG8gdGhlIHBheWxvYWQuCisKKyAgVGhlIHBheWxvYWQgbWF5IGJlIGNvbXByZXNzZWQuIFRoZSBmb3JtYXQgb2YgYm90aCB0aGUgY29tcHJlc3NlZCBhbmQKKyAgdW5jb21wcmVzc2VkIGRhdGEgc2hvdWxkIGJlIGRldGVybWluZWQgdXNpbmcgdGhlIHN0YW5kYXJkIG1hZ2ljCisgIG51bWJlcnMuIEN1cnJlbnRseSBvbmx5IGd6aXAgY29tcHJlc3NlZCBFTEYgaXMgdXNlZC4KKyAgCitGaWVsZCBuYW1lOglwYXlsb2FkX2xlbmd0aAorVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDI0Yy80CitQcm90b2NvbDoJMi4wOCsKKworICBUaGUgbGVuZ3RoIG9mIHRoZSBwYXlsb2FkLgorCitGaWVsZCBuYW1lOglzZXR1cF9kYXRhCitUeXBlOgkJd3JpdGUgKHNwZWNpYWwpCitPZmZzZXQvc2l6ZToJMHgyNTAvOAorUHJvdG9jb2w6CTIuMDkrCisKKyAgVGhlIDY0LWJpdCBwaHlzaWNhbCBwb2ludGVyIHRvIE5VTEwgdGVybWluYXRlZCBzaW5nbGUgbGlua2VkIGxpc3Qgb2YKKyAgc3RydWN0IHNldHVwX2RhdGEuIFRoaXMgaXMgdXNlZCB0byBkZWZpbmUgYSBtb3JlIGV4dGVuc2libGUgYm9vdAorICBwYXJhbWV0ZXJzIHBhc3NpbmcgbWVjaGFuaXNtLiBUaGUgZGVmaW5pdGlvbiBvZiBzdHJ1Y3Qgc2V0dXBfZGF0YSBpcworICBhcyBmb2xsb3c6CisKKyAgc3RydWN0IHNldHVwX2RhdGEgeworCSAgdTY0IG5leHQ7CisJICB1MzIgdHlwZTsKKwkgIHUzMiBsZW47CisJICB1OCAgZGF0YVswXTsKKyAgfTsKKworICBXaGVyZSwgdGhlIG5leHQgaXMgYSA2NC1iaXQgcGh5c2ljYWwgcG9pbnRlciB0byB0aGUgbmV4dCBub2RlIG9mCisgIGxpbmtlZCBsaXN0LCB0aGUgbmV4dCBmaWVsZCBvZiB0aGUgbGFzdCBub2RlIGlzIDA7IHRoZSB0eXBlIGlzIHVzZWQKKyAgdG8gaWRlbnRpZnkgdGhlIGNvbnRlbnRzIG9mIGRhdGE7IHRoZSBsZW4gaXMgdGhlIGxlbmd0aCBvZiBkYXRhCisgIGZpZWxkOyB0aGUgZGF0YSBob2xkcyB0aGUgcmVhbCBwYXlsb2FkLgorCisgIFRoaXMgbGlzdCBtYXkgYmUgbW9kaWZpZWQgYXQgYSBudW1iZXIgb2YgcG9pbnRzIGR1cmluZyB0aGUgYm9vdHVwCisgIHByb2Nlc3MuICBUaGVyZWZvcmUsIHdoZW4gbW9kaWZ5aW5nIHRoaXMgbGlzdCBvbmUgc2hvdWxkIGFsd2F5cyBtYWtlCisgIHN1cmUgdG8gY29uc2lkZXIgdGhlIGNhc2Ugd2hlcmUgdGhlIGxpbmtlZCBsaXN0IGFscmVhZHkgY29udGFpbnMKKyAgZW50cmllcy4KKworCisqKioqIFRIRSBJTUFHRSBDSEVDS1NVTQorCitGcm9tIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiAyLjA4IG9ud2FyZHMgdGhlIENSQy0zMiBpcyBjYWxjdWxhdGVkIG92ZXIKK3RoZSBlbnRpcmUgZmlsZSB1c2luZyB0aGUgY2hhcmFjdGVyaXN0aWMgcG9seW5vbWlhbCAweDA0QzExREI3IGFuZCBhbgoraW5pdGlhbCByZW1haW5kZXIgb2YgMHhmZmZmZmZmZi4gIFRoZSBjaGVja3N1bSBpcyBhcHBlbmRlZCB0byB0aGUKK2ZpbGU7IHRoZXJlZm9yZSB0aGUgQ1JDIG9mIHRoZSBmaWxlIHVwIHRvIHRoZSBsaW1pdCBzcGVjaWZpZWQgaW4gdGhlCitzeXNzaXplIGZpZWxkIG9mIHRoZSBoZWFkZXIgaXMgYWx3YXlzIDAuCisKKworKioqKiBUSEUgS0VSTkVMIENPTU1BTkQgTElORQorCitUaGUga2VybmVsIGNvbW1hbmQgbGluZSBoYXMgYmVjb21lIGFuIGltcG9ydGFudCB3YXkgZm9yIHRoZSBib290Citsb2FkZXIgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUga2VybmVsLiAgU29tZSBvZiBpdHMgb3B0aW9ucyBhcmUgYWxzbworcmVsZXZhbnQgdG8gdGhlIGJvb3QgbG9hZGVyIGl0c2VsZiwgc2VlICJzcGVjaWFsIGNvbW1hbmQgbGluZSBvcHRpb25zIgorYmVsb3cuCisKK1RoZSBrZXJuZWwgY29tbWFuZCBsaW5lIGlzIGEgbnVsbC10ZXJtaW5hdGVkIHN0cmluZy4gVGhlIG1heGltdW0KK2xlbmd0aCBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIGZpZWxkIGNtZGxpbmVfc2l6ZS4gIEJlZm9yZSBwcm90b2NvbAordmVyc2lvbiAyLjA2LCB0aGUgbWF4aW11bSB3YXMgMjU1IGNoYXJhY3RlcnMuICBBIHN0cmluZyB0aGF0IGlzIHRvbworbG9uZyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgdHJ1bmNhdGVkIGJ5IHRoZSBrZXJuZWwuCisKK0lmIHRoZSBib290IHByb3RvY29sIHZlcnNpb24gaXMgMi4wMiBvciBsYXRlciwgdGhlIGFkZHJlc3Mgb2YgdGhlCitrZXJuZWwgY29tbWFuZCBsaW5lIGlzIGdpdmVuIGJ5IHRoZSBoZWFkZXIgZmllbGQgY21kX2xpbmVfcHRyIChzZWUKK2Fib3ZlLikgIFRoaXMgYWRkcmVzcyBjYW4gYmUgYW55d2hlcmUgYmV0d2VlbiB0aGUgZW5kIG9mIHRoZSBzZXR1cAoraGVhcCBhbmQgMHhBMDAwMC4KKworSWYgdGhlIHByb3RvY29sIHZlcnNpb24gaXMgKm5vdCogMi4wMiBvciBoaWdoZXIsIHRoZSBrZXJuZWwKK2NvbW1hbmQgbGluZSBpcyBlbnRlcmVkIHVzaW5nIHRoZSBmb2xsb3dpbmcgcHJvdG9jb2w6CisKKwlBdCBvZmZzZXQgMHgwMDIwICh3b3JkKSwgImNtZF9saW5lX21hZ2ljIiwgZW50ZXIgdGhlIG1hZ2ljCisJbnVtYmVyIDB4QTMzRi4KKworCUF0IG9mZnNldCAweDAwMjIgKHdvcmQpLCAiY21kX2xpbmVfb2Zmc2V0IiwgZW50ZXIgdGhlIG9mZnNldAorCW9mIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIChyZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlCisJcmVhbC1tb2RlIGtlcm5lbCkuCisJCisJVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgKm11c3QqIGJlIHdpdGhpbiB0aGUgbWVtb3J5IHJlZ2lvbgorCWNvdmVyZWQgYnkgc2V0dXBfbW92ZV9zaXplLCBzbyB5b3UgbWF5IG5lZWQgdG8gYWRqdXN0IHRoaXMKKwlmaWVsZC4KKworCisqKioqIE1FTU9SWSBMQVlPVVQgT0YgVEhFIFJFQUwtTU9ERSBDT0RFCisKK1RoZSByZWFsLW1vZGUgY29kZSByZXF1aXJlcyBhIHN0YWNrL2hlYXAgdG8gYmUgc2V0IHVwLCBhcyB3ZWxsIGFzCittZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUga2VybmVsIGNvbW1hbmQgbGluZS4gIFRoaXMgbmVlZHMgdG8gYmUgZG9uZQoraW4gdGhlIHJlYWwtbW9kZSBhY2Nlc3NpYmxlIG1lbW9yeSBpbiBib3R0b20gbWVnYWJ5dGUuCisKK0l0IHNob3VsZCBiZSBub3RlZCB0aGF0IG1vZGVybiBtYWNoaW5lcyBvZnRlbiBoYXZlIGEgc2l6YWJsZSBFeHRlbmRlZAorQklPUyBEYXRhIEFyZWEgKEVCREEpLiAgQXMgYSByZXN1bHQsIGl0IGlzIGFkdmlzYWJsZSB0byB1c2UgYXMgbGl0dGxlCitvZiB0aGUgbG93IG1lZ2FieXRlIGFzIHBvc3NpYmxlLgorCitVbmZvcnR1bmF0ZWx5LCB1bmRlciB0aGUgZm9sbG93aW5nIGNpcmN1bXN0YW5jZXMgdGhlIDB4OTAwMDAgbWVtb3J5CitzZWdtZW50IGhhcyB0byBiZSB1c2VkOgorCisJLSBXaGVuIGxvYWRpbmcgYSB6SW1hZ2Uga2VybmVsICgobG9hZGZsYWdzICYgMHgwMSkgPT0gMCkuCisJLSBXaGVuIGxvYWRpbmcgYSAyLjAxIG9yIGVhcmxpZXIgYm9vdCBwcm90b2NvbCBrZXJuZWwuCisKKwkgIC0+IEZvciB0aGUgMi4wMCBhbmQgMi4wMSBib290IHByb3RvY29scywgdGhlIHJlYWwtbW9kZSBjb2RlCisJICAgICBjYW4gYmUgbG9hZGVkIGF0IGFub3RoZXIgYWRkcmVzcywgYnV0IGl0IGlzIGludGVybmFsbHkKKwkgICAgIHJlbG9jYXRlZCB0byAweDkwMDAwLiAgRm9yIHRoZSAib2xkIiBwcm90b2NvbCwgdGhlCisJICAgICByZWFsLW1vZGUgY29kZSBtdXN0IGJlIGxvYWRlZCBhdCAweDkwMDAwLgorCitXaGVuIGxvYWRpbmcgYXQgMHg5MDAwMCwgYXZvaWQgdXNpbmcgbWVtb3J5IGFib3ZlIDB4OWEwMDAuCisKK0ZvciBib290IHByb3RvY29sIDIuMDIgb3IgaGlnaGVyLCB0aGUgY29tbWFuZCBsaW5lIGRvZXMgbm90IGhhdmUgdG8gYmUKK2xvY2F0ZWQgaW4gdGhlIHNhbWUgNjRLIHNlZ21lbnQgYXMgdGhlIHJlYWwtbW9kZSBzZXR1cCBjb2RlOyBpdCBpcwordGh1cyBwZXJtaXR0ZWQgdG8gZ2l2ZSB0aGUgc3RhY2svaGVhcCB0aGUgZnVsbCA2NEsgc2VnbWVudCBhbmQgbG9jYXRlCit0aGUgY29tbWFuZCBsaW5lIGFib3ZlIGl0LgorCitUaGUga2VybmVsIGNvbW1hbmQgbGluZSBzaG91bGQgbm90IGJlIGxvY2F0ZWQgYmVsb3cgdGhlIHJlYWwtbW9kZQorY29kZSwgbm9yIHNob3VsZCBpdCBiZSBsb2NhdGVkIGluIGhpZ2ggbWVtb3J5LgorCisKKyoqKiogU0FNUExFIEJPT1QgQ09ORklHVVJBVElPTgorCitBcyBhIHNhbXBsZSBjb25maWd1cmF0aW9uLCBhc3N1bWUgdGhlIGZvbGxvd2luZyBsYXlvdXQgb2YgdGhlIHJlYWwKK21vZGUgc2VnbWVudDoKKworICAgIFdoZW4gbG9hZGluZyBiZWxvdyAweDkwMDAwLCB1c2UgdGhlIGVudGlyZSBzZWdtZW50OgorCisJMHgwMDAwLTB4N2ZmZglSZWFsIG1vZGUga2VybmVsCisJMHg4MDAwLTB4ZGZmZglTdGFjayBhbmQgaGVhcAorCTB4ZTAwMC0weGZmZmYJS2VybmVsIGNvbW1hbmQgbGluZQorCisgICAgV2hlbiBsb2FkaW5nIGF0IDB4OTAwMDAgT1IgdGhlIHByb3RvY29sIHZlcnNpb24gaXMgMi4wMSBvciBlYXJsaWVyOgorCisJMHgwMDAwLTB4N2ZmZglSZWFsIG1vZGUga2VybmVsCisJMHg4MDAwLTB4OTdmZglTdGFjayBhbmQgaGVhcAorCTB4OTgwMC0weDlmZmYJS2VybmVsIGNvbW1hbmQgbGluZQorCitTdWNoIGEgYm9vdCBsb2FkZXIgc2hvdWxkIGVudGVyIHRoZSBmb2xsb3dpbmcgZmllbGRzIGluIHRoZSBoZWFkZXI6CisKKwl1bnNpZ25lZCBsb25nIGJhc2VfcHRyOwkvKiBiYXNlIGFkZHJlc3MgZm9yIHJlYWwtbW9kZSBzZWdtZW50ICovCisKKwlpZiAoIHNldHVwX3NlY3RzID09IDAgKSB7CisJCXNldHVwX3NlY3RzID0gNDsKKwl9CisKKwlpZiAoIHByb3RvY29sID49IDB4MDIwMCApIHsKKwkJdHlwZV9vZl9sb2FkZXIgPSA8dHlwZSBjb2RlPjsKKwkJaWYgKCBsb2FkaW5nX2luaXRyZCApIHsKKwkJCXJhbWRpc2tfaW1hZ2UgPSA8aW5pdHJkX2FkZHJlc3M+OworCQkJcmFtZGlza19zaXplID0gPGluaXRyZF9zaXplPjsKKwkJfQorCisJCWlmICggcHJvdG9jb2wgPj0gMHgwMjAyICYmIGxvYWRmbGFncyAmIDB4MDEgKQorCQkJaGVhcF9lbmQgPSAweGUwMDA7CisJCWVsc2UKKwkJCWhlYXBfZW5kID0gMHg5ODAwOworCisJCWlmICggcHJvdG9jb2wgPj0gMHgwMjAxICkgeworCQkJaGVhcF9lbmRfcHRyID0gaGVhcF9lbmQgLSAweDIwMDsKKwkJCWxvYWRmbGFncyB8PSAweDgwOyAvKiBDQU5fVVNFX0hFQVAgKi8KKwkJfQorCisJCWlmICggcHJvdG9jb2wgPj0gMHgwMjAyICkgeworCQkJY21kX2xpbmVfcHRyID0gYmFzZV9wdHIgKyBoZWFwX2VuZDsKKwkJCXN0cmNweShjbWRfbGluZV9wdHIsIGNtZGxpbmUpOworCQl9IGVsc2UgeworCQkJY21kX2xpbmVfbWFnaWMJPSAweEEzM0Y7CisJCQljbWRfbGluZV9vZmZzZXQgPSBoZWFwX2VuZDsKKwkJCXNldHVwX21vdmVfc2l6ZSA9IGhlYXBfZW5kICsgc3RybGVuKGNtZGxpbmUpKzE7CisJCQlzdHJjcHkoYmFzZV9wdHIrY21kX2xpbmVfb2Zmc2V0LCBjbWRsaW5lKTsKKwkJfQorCX0gZWxzZSB7CisJCS8qIFZlcnkgb2xkIGtlcm5lbCAqLworCisJCWhlYXBfZW5kID0gMHg5ODAwOworCisJCWNtZF9saW5lX21hZ2ljCT0gMHhBMzNGOworCQljbWRfbGluZV9vZmZzZXQgPSBoZWFwX2VuZDsKKworCQkvKiBBIHZlcnkgb2xkIGtlcm5lbCBNVVNUIGhhdmUgaXRzIHJlYWwtbW9kZSBjb2RlCisJCSAgIGxvYWRlZCBhdCAweDkwMDAwICovCisKKwkJaWYgKCBiYXNlX3B0ciAhPSAweDkwMDAwICkgeworCQkJLyogQ29weSB0aGUgcmVhbC1tb2RlIGtlcm5lbCAqLworCQkJbWVtY3B5KDB4OTAwMDAsIGJhc2VfcHRyLCAoc2V0dXBfc2VjdHMrMSkqNTEyKTsKKwkJCWJhc2VfcHRyID0gMHg5MDAwMDsJCSAvKiBSZWxvY2F0ZWQgKi8KKwkJfQorCisJCXN0cmNweSgweDkwMDAwK2NtZF9saW5lX29mZnNldCwgY21kbGluZSk7CisKKwkJLyogSXQgaXMgcmVjb21tZW5kZWQgdG8gY2xlYXIgbWVtb3J5IHVwIHRvIHRoZSAzMksgbWFyayAqLworCQltZW1zZXQoMHg5MDAwMCArIChzZXR1cF9zZWN0cysxKSo1MTIsIDAsCisJCSAgICAgICAoNjQtKHNldHVwX3NlY3RzKzEpKSo1MTIpOworCX0KKworCisqKioqIExPQURJTkcgVEhFIFJFU1QgT0YgVEhFIEtFUk5FTAorCitUaGUgMzItYml0IChub24tcmVhbC1tb2RlKSBrZXJuZWwgc3RhcnRzIGF0IG9mZnNldCAoc2V0dXBfc2VjdHMrMSkqNTEyCitpbiB0aGUga2VybmVsIGZpbGUgKGFnYWluLCBpZiBzZXR1cF9zZWN0cyA9PSAwIHRoZSByZWFsIHZhbHVlIGlzIDQuKQorSXQgc2hvdWxkIGJlIGxvYWRlZCBhdCBhZGRyZXNzIDB4MTAwMDAgZm9yIEltYWdlL3pJbWFnZSBrZXJuZWxzIGFuZAorMHgxMDAwMDAgZm9yIGJ6SW1hZ2Uga2VybmVscy4KKworVGhlIGtlcm5lbCBpcyBhIGJ6SW1hZ2Uga2VybmVsIGlmIHRoZSBwcm90b2NvbCA+PSAyLjAwIGFuZCB0aGUgMHgwMQorYml0IChMT0FEX0hJR0gpIGluIHRoZSBsb2FkZmxhZ3MgZmllbGQgaXMgc2V0OgorCisJaXNfYnpJbWFnZSA9IChwcm90b2NvbCA+PSAweDAyMDApICYmIChsb2FkZmxhZ3MgJiAweDAxKTsKKwlsb2FkX2FkZHJlc3MgPSBpc19iekltYWdlID8gMHgxMDAwMDAgOiAweDEwMDAwOworCitOb3RlIHRoYXQgSW1hZ2UvekltYWdlIGtlcm5lbHMgY2FuIGJlIHVwIHRvIDUxMksgaW4gc2l6ZSwgYW5kIHRodXMgdXNlCit0aGUgZW50aXJlIDB4MTAwMDAtMHg5MDAwMCByYW5nZSBvZiBtZW1vcnkuICBUaGlzIG1lYW5zIGl0IGlzIHByZXR0eQorbXVjaCBhIHJlcXVpcmVtZW50IGZvciB0aGVzZSBrZXJuZWxzIHRvIGxvYWQgdGhlIHJlYWwtbW9kZSBwYXJ0IGF0CisweDkwMDAwLiAgYnpJbWFnZSBrZXJuZWxzIGFsbG93IG11Y2ggbW9yZSBmbGV4aWJpbGl0eS4KKworCisqKioqIFNQRUNJQUwgQ09NTUFORCBMSU5FIE9QVElPTlMKKworSWYgdGhlIGNvbW1hbmQgbGluZSBwcm92aWRlZCBieSB0aGUgYm9vdCBsb2FkZXIgaXMgZW50ZXJlZCBieSB0aGUKK3VzZXIsIHRoZSB1c2VyIG1heSBleHBlY3QgdGhlIGZvbGxvd2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucyB0byB3b3JrLgorVGhleSBzaG91bGQgbm9ybWFsbHkgbm90IGJlIGRlbGV0ZWQgZnJvbSB0aGUga2VybmVsIGNvbW1hbmQgbGluZSBldmVuCit0aG91Z2ggbm90IGFsbCBvZiB0aGVtIGFyZSBhY3R1YWxseSBtZWFuaW5nZnVsIHRvIHRoZSBrZXJuZWwuICBCb290Citsb2FkZXIgYXV0aG9ycyB3aG8gbmVlZCBhZGRpdGlvbmFsIGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aGUgYm9vdAorbG9hZGVyIGl0c2VsZiBzaG91bGQgZ2V0IHRoZW0gcmVnaXN0ZXJlZCBpbgorRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQgdG8gbWFrZSBzdXJlIHRoZXkgd2lsbCBub3QKK2NvbmZsaWN0IHdpdGggYWN0dWFsIGtlcm5lbCBvcHRpb25zIG5vdyBvciBpbiB0aGUgZnV0dXJlLgorCisgIHZnYT08bW9kZT4KKwk8bW9kZT4gaGVyZSBpcyBlaXRoZXIgYW4gaW50ZWdlciAoaW4gQyBub3RhdGlvbiwgZWl0aGVyCisJZGVjaW1hbCwgb2N0YWwsIG9yIGhleGFkZWNpbWFsKSBvciBvbmUgb2YgdGhlIHN0cmluZ3MKKwkibm9ybWFsIiAobWVhbmluZyAweEZGRkYpLCAiZXh0IiAobWVhbmluZyAweEZGRkUpIG9yICJhc2siCisJKG1lYW5pbmcgMHhGRkZEKS4gIFRoaXMgdmFsdWUgc2hvdWxkIGJlIGVudGVyZWQgaW50byB0aGUKKwl2aWRfbW9kZSBmaWVsZCwgYXMgaXQgaXMgdXNlZCBieSB0aGUga2VybmVsIGJlZm9yZSB0aGUgY29tbWFuZAorCWxpbmUgaXMgcGFyc2VkLgorCisgIG1lbT08c2l6ZT4KKwk8c2l6ZT4gaXMgYW4gaW50ZWdlciBpbiBDIG5vdGF0aW9uIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkKKwkoY2FzZSBpbnNlbnNpdGl2ZSkgSywgTSwgRywgVCwgUCBvciBFIChtZWFuaW5nIDw8IDEwLCA8PCAyMCwKKwk8PCAzMCwgPDwgNDAsIDw8IDUwIG9yIDw8IDYwKS4gIFRoaXMgc3BlY2lmaWVzIHRoZSBlbmQgb2YKKwltZW1vcnkgdG8gdGhlIGtlcm5lbC4gVGhpcyBhZmZlY3RzIHRoZSBwb3NzaWJsZSBwbGFjZW1lbnQgb2YKKwlhbiBpbml0cmQsIHNpbmNlIGFuIGluaXRyZCBzaG91bGQgYmUgcGxhY2VkIG5lYXIgZW5kIG9mCisJbWVtb3J5LiAgTm90ZSB0aGF0IHRoaXMgaXMgYW4gb3B0aW9uIHRvICpib3RoKiB0aGUga2VybmVsIGFuZAorCXRoZSBib290bG9hZGVyIQorCisgIGluaXRyZD08ZmlsZT4KKwlBbiBpbml0cmQgc2hvdWxkIGJlIGxvYWRlZC4gIFRoZSBtZWFuaW5nIG9mIDxmaWxlPiBpcworCW9idmlvdXNseSBib290bG9hZGVyLWRlcGVuZGVudCwgYW5kIHNvbWUgYm9vdCBsb2FkZXJzCisJKGUuZy4gTElMTykgZG8gbm90IGhhdmUgc3VjaCBhIGNvbW1hbmQuCisKK0luIGFkZGl0aW9uLCBzb21lIGJvb3QgbG9hZGVycyBhZGQgdGhlIGZvbGxvd2luZyBvcHRpb25zIHRvIHRoZQordXNlci1zcGVjaWZpZWQgY29tbWFuZCBsaW5lOgorCisgIEJPT1RfSU1BR0U9PGZpbGU+CisJVGhlIGJvb3QgaW1hZ2Ugd2hpY2ggd2FzIGxvYWRlZC4gIEFnYWluLCB0aGUgbWVhbmluZyBvZiA8ZmlsZT4KKwlpcyBvYnZpb3VzbHkgYm9vdGxvYWRlci1kZXBlbmRlbnQuCisKKyAgYXV0bworCVRoZSBrZXJuZWwgd2FzIGJvb3RlZCB3aXRob3V0IGV4cGxpY2l0IHVzZXIgaW50ZXJ2ZW50aW9uLgorCitJZiB0aGVzZSBvcHRpb25zIGFyZSBhZGRlZCBieSB0aGUgYm9vdCBsb2FkZXIsIGl0IGlzIGhpZ2hseQorcmVjb21tZW5kZWQgdGhhdCB0aGV5IGFyZSBsb2NhdGVkICpmaXJzdCosIGJlZm9yZSB0aGUgdXNlci1zcGVjaWZpZWQKK29yIGNvbmZpZ3VyYXRpb24tc3BlY2lmaWVkIGNvbW1hbmQgbGluZS4gIE90aGVyd2lzZSwgImluaXQ9L2Jpbi9zaCIKK2dldHMgY29uZnVzZWQgYnkgdGhlICJhdXRvIiBvcHRpb24uCisKKworKioqKiBSVU5OSU5HIFRIRSBLRVJORUwKKworVGhlIGtlcm5lbCBpcyBzdGFydGVkIGJ5IGp1bXBpbmcgdG8gdGhlIGtlcm5lbCBlbnRyeSBwb2ludCwgd2hpY2ggaXMKK2xvY2F0ZWQgYXQgKnNlZ21lbnQqIG9mZnNldCAweDIwIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSByZWFsIG1vZGUKK2tlcm5lbC4gIFRoaXMgbWVhbnMgdGhhdCBpZiB5b3UgbG9hZGVkIHlvdXIgcmVhbC1tb2RlIGtlcm5lbCBjb2RlIGF0CisweDkwMDAwLCB0aGUga2VybmVsIGVudHJ5IHBvaW50IGlzIDkwMjA6MDAwMC4KKworQXQgZW50cnksIGRzID0gZXMgPSBzcyBzaG91bGQgcG9pbnQgdG8gdGhlIHN0YXJ0IG9mIHRoZSByZWFsLW1vZGUKK2tlcm5lbCBjb2RlICgweDkwMDAgaWYgdGhlIGNvZGUgaXMgbG9hZGVkIGF0IDB4OTAwMDApLCBzcCBzaG91bGQgYmUKK3NldCB1cCBwcm9wZXJseSwgbm9ybWFsbHkgcG9pbnRpbmcgdG8gdGhlIHRvcCBvZiB0aGUgaGVhcCwgYW5kCitpbnRlcnJ1cHRzIHNob3VsZCBiZSBkaXNhYmxlZC4gIEZ1cnRoZXJtb3JlLCB0byBndWFyZCBhZ2FpbnN0IGJ1Z3MgaW4KK3RoZSBrZXJuZWwsIGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIGJvb3QgbG9hZGVyIHNldHMgZnMgPSBncyA9IGRzID0KK2VzID0gc3MuCisKK0luIG91ciBleGFtcGxlIGZyb20gYWJvdmUsIHdlIHdvdWxkIGRvOgorCisJLyogTm90ZTogaW4gdGhlIGNhc2Ugb2YgdGhlICJvbGQiIGtlcm5lbCBwcm90b2NvbCwgYmFzZV9wdHIgbXVzdAorCSAgIGJlID09IDB4OTAwMDAgYXQgdGhpcyBwb2ludDsgc2VlIHRoZSBwcmV2aW91cyBzYW1wbGUgY29kZSAqLworCisJc2VnID0gYmFzZV9wdHIgPj4gNDsKKworCWNsaSgpOwkvKiBFbnRlciB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQhICovCisKKwkvKiBTZXQgdXAgdGhlIHJlYWwtbW9kZSBrZXJuZWwgc3RhY2sgKi8KKwlfU1MgPSBzZWc7CisJX1NQID0gaGVhcF9lbmQ7CisKKwlfRFMgPSBfRVMgPSBfRlMgPSBfR1MgPSBzZWc7CisJam1wX2ZhcihzZWcrMHgyMCwgMCk7CS8qIFJ1biB0aGUga2VybmVsICovCisKK0lmIHlvdXIgYm9vdCBzZWN0b3IgYWNjZXNzZXMgYSBmbG9wcHkgZHJpdmUsIGl0IGlzIHJlY29tbWVuZGVkIHRvCitzd2l0Y2ggb2ZmIHRoZSBmbG9wcHkgbW90b3IgYmVmb3JlIHJ1bm5pbmcgdGhlIGtlcm5lbCwgc2luY2UgdGhlCitrZXJuZWwgYm9vdCBsZWF2ZXMgaW50ZXJydXB0cyBvZmYgYW5kIHRodXMgdGhlIG1vdG9yIHdpbGwgbm90IGJlCitzd2l0Y2hlZCBvZmYsIGVzcGVjaWFsbHkgaWYgdGhlIGxvYWRlZCBrZXJuZWwgaGFzIHRoZSBmbG9wcHkgZHJpdmVyIGFzCithIGRlbWFuZC1sb2FkZWQgbW9kdWxlIQorCisKKyoqKiogQURWQU5DRUQgQk9PVCBMT0FERVIgSE9PS1MKKworSWYgdGhlIGJvb3QgbG9hZGVyIHJ1bnMgaW4gYSBwYXJ0aWN1bGFybHkgaG9zdGlsZSBlbnZpcm9ubWVudCAoc3VjaCBhcworTE9BRExJTiwgd2hpY2ggcnVucyB1bmRlciBET1MpIGl0IG1heSBiZSBpbXBvc3NpYmxlIHRvIGZvbGxvdyB0aGUKK3N0YW5kYXJkIG1lbW9yeSBsb2NhdGlvbiByZXF1aXJlbWVudHMuICBTdWNoIGEgYm9vdCBsb2FkZXIgbWF5IHVzZSB0aGUKK2ZvbGxvd2luZyBob29rcyB0aGF0LCBpZiBzZXQsIGFyZSBpbnZva2VkIGJ5IHRoZSBrZXJuZWwgYXQgdGhlCithcHByb3ByaWF0ZSB0aW1lLiAgVGhlIHVzZSBvZiB0aGVzZSBob29rcyBzaG91bGQgcHJvYmFibHkgYmUKK2NvbnNpZGVyZWQgYW4gYWJzb2x1dGVseSBsYXN0IHJlc29ydCEKKworSU1QT1JUQU5UOiBBbGwgdGhlIGhvb2tzIGFyZSByZXF1aXJlZCB0byBwcmVzZXJ2ZSAlZXNwLCAlZWJwLCAlZXNpIGFuZAorJWVkaSBhY3Jvc3MgaW52b2NhdGlvbi4KKworICByZWFsbW9kZV9zd3RjaDoKKwlBIDE2LWJpdCByZWFsIG1vZGUgZmFyIHN1YnJvdXRpbmUgaW52b2tlZCBpbW1lZGlhdGVseSBiZWZvcmUKKwllbnRlcmluZyBwcm90ZWN0ZWQgbW9kZS4gIFRoZSBkZWZhdWx0IHJvdXRpbmUgZGlzYWJsZXMgTk1JLCBzbworCXlvdXIgcm91dGluZSBzaG91bGQgcHJvYmFibHkgZG8gc28sIHRvby4KKworICBjb2RlMzJfc3RhcnQ6CisJQSAzMi1iaXQgZmxhdC1tb2RlIHJvdXRpbmUgKmp1bXBlZCogdG8gaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlCisJdHJhbnNpdGlvbiB0byBwcm90ZWN0ZWQgbW9kZSwgYnV0IGJlZm9yZSB0aGUga2VybmVsIGlzCisJdW5jb21wcmVzc2VkLiAgTm8gc2VnbWVudHMsIGV4Y2VwdCBDUywgYXJlIGd1YXJhbnRlZWQgdG8gYmUKKwlzZXQgdXAgKGN1cnJlbnQga2VybmVscyBkbywgYnV0IG9sZGVyIG9uZXMgZG8gbm90KTsgeW91IHNob3VsZAorCXNldCB0aGVtIHVwIHRvIEJPT1RfRFMgKDB4MTgpIHlvdXJzZWxmLgorCisJQWZ0ZXIgY29tcGxldGluZyB5b3VyIGhvb2ssIHlvdSBzaG91bGQganVtcCB0byB0aGUgYWRkcmVzcworCXRoYXQgd2FzIGluIHRoaXMgZmllbGQgYmVmb3JlIHlvdXIgYm9vdCBsb2FkZXIgb3Zlcndyb3RlIGl0CisJKHJlbG9jYXRlZCwgaWYgYXBwcm9wcmlhdGUuKQorCisKKyoqKiogMzItYml0IEJPT1QgUFJPVE9DT0wKKworRm9yIG1hY2hpbmUgd2l0aCBzb21lIG5ldyBCSU9TIG90aGVyIHRoYW4gbGVnYWN5IEJJT1MsIHN1Y2ggYXMgRUZJLAorTGludXhCSU9TLCBldGMsIGFuZCBrZXhlYywgdGhlIDE2LWJpdCByZWFsIG1vZGUgc2V0dXAgY29kZSBpbiBrZXJuZWwKK2Jhc2VkIG9uIGxlZ2FjeSBCSU9TIGNhbiBub3QgYmUgdXNlZCwgc28gYSAzMi1iaXQgYm9vdCBwcm90b2NvbCBuZWVkcwordG8gYmUgZGVmaW5lZC4KKworSW4gMzItYml0IGJvb3QgcHJvdG9jb2wsIHRoZSBmaXJzdCBzdGVwIGluIGxvYWRpbmcgYSBMaW51eCBrZXJuZWwKK3Nob3VsZCBiZSB0byBzZXR1cCB0aGUgYm9vdCBwYXJhbWV0ZXJzIChzdHJ1Y3QgYm9vdF9wYXJhbXMsCit0cmFkaXRpb25hbGx5IGtub3duIGFzICJ6ZXJvIHBhZ2UiKS4gVGhlIG1lbW9yeSBmb3Igc3RydWN0IGJvb3RfcGFyYW1zCitzaG91bGQgYmUgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCB0byBhbGwgemVyby4gVGhlbiB0aGUgc2V0dXAgaGVhZGVyCitmcm9tIG9mZnNldCAweDAxZjEgb2Yga2VybmVsIGltYWdlIG9uIHNob3VsZCBiZSBsb2FkZWQgaW50byBzdHJ1Y3QKK2Jvb3RfcGFyYW1zIGFuZCBleGFtaW5lZC4gVGhlIGVuZCBvZiBzZXR1cCBoZWFkZXIgY2FuIGJlIGNhbGN1bGF0ZWQgYXMKK2ZvbGxvdzoKKworCTB4MDIwMiArIGJ5dGUgdmFsdWUgYXQgb2Zmc2V0IDB4MDIwMQorCitJbiBhZGRpdGlvbiB0byByZWFkL21vZGlmeS93cml0ZSB0aGUgc2V0dXAgaGVhZGVyIG9mIHRoZSBzdHJ1Y3QKK2Jvb3RfcGFyYW1zIGFzIHRoYXQgb2YgMTYtYml0IGJvb3QgcHJvdG9jb2wsIHRoZSBib290IGxvYWRlciBzaG91bGQKK2Fsc28gZmlsbCB0aGUgYWRkaXRpb25hbCBmaWVsZHMgb2YgdGhlIHN0cnVjdCBib290X3BhcmFtcyBhcyB0aGF0CitkZXNjcmliZWQgaW4gemVyby1wYWdlLnR4dC4KKworQWZ0ZXIgc2V0dXBwaW5nIHRoZSBzdHJ1Y3QgYm9vdF9wYXJhbXMsIHRoZSBib290IGxvYWRlciBjYW4gbG9hZCB0aGUKKzMyLzY0LWJpdCBrZXJuZWwgaW4gdGhlIHNhbWUgd2F5IGFzIHRoYXQgb2YgMTYtYml0IGJvb3QgcHJvdG9jb2wuCisKK0luIDMyLWJpdCBib290IHByb3RvY29sLCB0aGUga2VybmVsIGlzIHN0YXJ0ZWQgYnkganVtcGluZyB0byB0aGUKKzMyLWJpdCBrZXJuZWwgZW50cnkgcG9pbnQsIHdoaWNoIGlzIHRoZSBzdGFydCBhZGRyZXNzIG9mIGxvYWRlZAorMzIvNjQtYml0IGtlcm5lbC4KKworQXQgZW50cnksIHRoZSBDUFUgbXVzdCBiZSBpbiAzMi1iaXQgcHJvdGVjdGVkIG1vZGUgd2l0aCBwYWdpbmcKK2Rpc2FibGVkOyBhIEdEVCBtdXN0IGJlIGxvYWRlZCB3aXRoIHRoZSBkZXNjcmlwdG9ycyBmb3Igc2VsZWN0b3JzCitfX0JPT1RfQ1MoMHgxMCkgYW5kIF9fQk9PVF9EUygweDE4KTsgYm90aCBkZXNjcmlwdG9ycyBtdXN0IGJlIDRHIGZsYXQKK3NlZ21lbnQ7IF9fQk9PU19DUyBtdXN0IGhhdmUgZXhlY3V0ZS9yZWFkIHBlcm1pc3Npb24sIGFuZCBfX0JPT1RfRFMKK211c3QgaGF2ZSByZWFkL3dyaXRlIHBlcm1pc3Npb247IENTIG11c3QgYmUgX19CT09UX0NTIGFuZCBEUywgRVMsIFNTCittdXN0IGJlIF9fQk9PVF9EUzsgaW50ZXJydXB0IG11c3QgYmUgZGlzYWJsZWQ7ICVlc2kgbXVzdCBob2xkIHRoZSBiYXNlCithZGRyZXNzIG9mIHRoZSBzdHJ1Y3QgYm9vdF9wYXJhbXM7ICVlYnAsICVlZGkgYW5kICVlYnggbXVzdCBiZSB6ZXJvLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMzg2L3VzYi1sZWdhY3ktc3VwcG9ydC50eHQgYi9Eb2N1bWVudGF0aW9uL3g4Ni9pMzg2L3VzYi1sZWdhY3ktc3VwcG9ydC50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTM4Ni91c2ItbGVnYWN5LXN1cHBvcnQudHh0CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL3g4Ni9pMzg2L3VzYi1sZWdhY3ktc3VwcG9ydC50eHQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTM4Ni96ZXJvLXBhZ2UudHh0IGIvRG9jdW1lbnRhdGlvbi94ODYvaTM4Ni96ZXJvLXBhZ2UudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kzODYvemVyby1wYWdlLnR4dApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi94ODYvaTM4Ni96ZXJvLXBhZ2UudHh0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC8wMC1JTkRFWCBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC8wMC1JTkRFWApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi94ODZfNjQvMDAtSU5ERVgKcmVuYW1lIHRvIERvY3VtZW50YXRpb24veDg2L3g4Nl82NC8wMC1JTkRFWApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODZfNjQvYm9vdC1vcHRpb25zLnR4dCBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9ib290LW9wdGlvbnMudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL3g4Nl82NC9ib290LW9wdGlvbnMudHh0CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvYm9vdC1vcHRpb25zLnR4dApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODZfNjQvY3B1LWhvdHBsdWctc3BlYyBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9jcHUtaG90cGx1Zy1zcGVjCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL3g4Nl82NC9jcHUtaG90cGx1Zy1zcGVjCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvY3B1LWhvdHBsdWctc3BlYwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODZfNjQvZmFrZS1udW1hLWZvci1jcHVzZXRzIGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L2Zha2UtbnVtYS1mb3ItY3B1c2V0cwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi94ODZfNjQvZmFrZS1udW1hLWZvci1jcHVzZXRzCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvZmFrZS1udW1hLWZvci1jcHVzZXRzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC9rZXJuZWwtc3RhY2tzIGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L2tlcm5lbC1zdGFja3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24veDg2XzY0L2tlcm5lbC1zdGFja3MKcmVuYW1lIHRvIERvY3VtZW50YXRpb24veDg2L3g4Nl82NC9rZXJuZWwtc3RhY2tzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC9tYWNoaW5lY2hlY2sgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbWFjaGluZWNoZWNrCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL3g4Nl82NC9tYWNoaW5lY2hlY2sKcmVuYW1lIHRvIERvY3VtZW50YXRpb24veDg2L3g4Nl82NC9tYWNoaW5lY2hlY2sKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9tbS50eHQgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbW0udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmY2U3NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbW0udHh0CkBAIC0wLDAgKzEsMjggQEAKKworPHByZXZpb3VzIGRlc2NyaXB0aW9uIG9ic29sZXRlLCBkZWxldGVkPgorCitWaXJ0dWFsIG1lbW9yeSBtYXAgd2l0aCA0IGxldmVsIHBhZ2UgdGFibGVzOgorCiswMDAwMDAwMDAwMDAwMDAwIC0gMDAwMDdmZmZmZmZmZmZmZiAoPTQ3IGJpdHMpIHVzZXIgc3BhY2UsIGRpZmZlcmVudCBwZXIgbW0KK2hvbGUgY2F1c2VkIGJ5IFs0ODo2M10gc2lnbiBleHRlbnNpb24KK2ZmZmY4MDAwMDAwMDAwMDAgLSBmZmZmODBmZmZmZmZmZmZmICg9NDAgYml0cykgZ3VhcmQgaG9sZQorZmZmZjgxMDAwMDAwMDAwMCAtIGZmZmZjMGZmZmZmZmZmZmYgKD00NiBiaXRzKSBkaXJlY3QgbWFwcGluZyBvZiBhbGwgcGh5cy4gbWVtb3J5CitmZmZmYzEwMDAwMDAwMDAwIC0gZmZmZmMxZmZmZmZmZmZmZiAoPTQwIGJpdHMpIGhvbGUKK2ZmZmZjMjAwMDAwMDAwMDAgLSBmZmZmZTFmZmZmZmZmZmZmICg9NDUgYml0cykgdm1hbGxvYy9pb3JlbWFwIHNwYWNlCitmZmZmZTIwMDAwMDAwMDAwIC0gZmZmZmUyZmZmZmZmZmZmZiAoPTQwIGJpdHMpIHZpcnR1YWwgbWVtb3J5IG1hcCAoMVRCKQorLi4uIHVudXNlZCBob2xlIC4uLgorZmZmZmZmZmY4MDAwMDAwMCAtIGZmZmZmZmZmYTAwMDAwMDAgKD01MTIgTUIpICBrZXJuZWwgdGV4dCBtYXBwaW5nLCBmcm9tIHBoeXMgMAorZmZmZmZmZmZhMDAwMDAwMCAtIGZmZmZmZmZmZmZmMDAwMDAgKD0xNTM2IE1CKSBtb2R1bGUgbWFwcGluZyBzcGFjZQorCitUaGUgZGlyZWN0IG1hcHBpbmcgY292ZXJzIGFsbCBtZW1vcnkgaW4gdGhlIHN5c3RlbSB1cCB0byB0aGUgaGlnaGVzdAorbWVtb3J5IGFkZHJlc3MgKHRoaXMgbWVhbnMgaW4gc29tZSBjYXNlcyBpdCBjYW4gYWxzbyBpbmNsdWRlIFBDSSBtZW1vcnkKK2hvbGVzKS4KKwordm1hbGxvYyBzcGFjZSBpcyBsYXppbHkgc3luY2hyb25pemVkIGludG8gdGhlIGRpZmZlcmVudCBQTUw0IHBhZ2VzIG9mCit0aGUgcHJvY2Vzc2VzIHVzaW5nIHRoZSBwYWdlIGZhdWx0IGhhbmRsZXIsIHdpdGggaW5pdF9sZXZlbDRfcGd0IGFzCityZWZlcmVuY2UuCisKK0N1cnJlbnQgWDg2LTY0IGltcGxlbWVudGF0aW9ucyBvbmx5IHN1cHBvcnQgNDAgYml0cyBvZiBhZGRyZXNzIHNwYWNlLAorYnV0IHdlIHN1cHBvcnQgdXAgdG8gNDYgYml0cy4gVGhpcyBleHBhbmRzIGludG8gTUJaIHNwYWNlIGluIHRoZSBwYWdlIHRhYmxlcy4KKworLUFuZGkgS2xlZW4sIEp1bCAyMDA0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvdWVmaS50eHQgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvdWVmaS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVlMmI0ZgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC91ZWZpLnR4dApAQCAtMCwwICsxLDQyIEBACitHZW5lcmFsIG5vdGUgb24gW1VdRUZJIHg4Nl82NCBzdXBwb3J0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBub21lbmNsYXR1cmUgRUZJIGFuZCBVRUZJIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSBpbiB0aGlzIGRvY3VtZW50LgorCitBbHRob3VnaCB0aGUgdG9vbHMgYmVsb3cgYXJlIF9ub3RfIG5lZWRlZCBmb3IgYnVpbGRpbmcgdGhlIGtlcm5lbCwKK3RoZSBuZWVkZWQgYm9vdGxvYWRlciBzdXBwb3J0IGFuZCBhc3NvY2lhdGVkIHRvb2xzIGZvciB4ODZfNjQgcGxhdGZvcm1zCit3aXRoIEVGSSBmaXJtd2FyZSBhbmQgc3BlY2lmaWNhdGlvbnMgYXJlIGxpc3RlZCBiZWxvdy4KKworMS4gVUVGSSBzcGVjaWZpY2F0aW9uOiAgaHR0cDovL3d3dy51ZWZpLm9yZworCisyLiBCb290aW5nIExpbnV4IGtlcm5lbCBvbiBVRUZJIHg4Nl82NCBwbGF0Zm9ybSByZXF1aXJlcyBib290bG9hZGVyCisgICBzdXBwb3J0LiBFbGlsbyB3aXRoIHg4Nl82NCBzdXBwb3J0IGNhbiBiZSB1c2VkLgorCiszLiB4ODZfNjQgcGxhdGZvcm0gd2l0aCBFRkkvVUVGSSBmaXJtd2FyZS4KKworTWVjaGFuaWNzOgorLS0tLS0tLS0tCistIEJ1aWxkIHRoZSBrZXJuZWwgd2l0aCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uCisJQ09ORklHX0ZCX0VGST15CisJQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQorICBJZiBFRkkgcnVudGltZSBzZXJ2aWNlcyBhcmUgZXhwZWN0ZWQsIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbiBzaG91bGQKKyAgYmUgc2VsZWN0ZWQuCisJQ09ORklHX0VGST15CisJQ09ORklHX0VGSV9WQVJTPXkgb3IgbQkJIyBvcHRpb25hbAorLSBDcmVhdGUgYSBWRkFUIHBhcnRpdGlvbiBvbiB0aGUgZGlzaworLSBDb3B5IHRoZSBmb2xsb3dpbmcgdG8gdGhlIFZGQVQgcGFydGl0aW9uOgorCWVsaWxvIGJvb3Rsb2FkZXIgd2l0aCB4ODZfNjQgc3VwcG9ydCwgZWxpbG8gY29uZmlndXJhdGlvbiBmaWxlLAorCWtlcm5lbCBpbWFnZSBidWlsdCBpbiBmaXJzdCBzdGVwIGFuZCBjb3JyZXNwb25kaW5nCisJaW5pdHJkLiBJbnN0cnVjdGlvbnMgb24gYnVpbGRpbmcgZWxpbG8JYW5kIGl0cyBkZXBlbmRlbmNpZXMKKwljYW4gYmUgZm91bmQgaW4gdGhlIGVsaWxvIHNvdXJjZWZvcmdlIHByb2plY3QuCistIEJvb3QgdG8gRUZJIHNoZWxsIGFuZCBpbnZva2UgZWxpbG8gY2hvb3NpbmcgdGhlIGtlcm5lbCBpbWFnZSBidWlsdAorICBpbiBmaXJzdCBzdGVwLgorLSBJZiBzb21lIG9yIGFsbCBFRkkgcnVudGltZSBzZXJ2aWNlcyBkb24ndCB3b3JrLCB5b3UgY2FuIHRyeSBmb2xsb3dpbmcKKyAga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzIHRvIHR1cm4gb2ZmIHNvbWUgb3IgYWxsIEVGSSBydW50aW1lCisgIHNlcnZpY2VzLgorCW5vZWZpCQl0dXJuIG9mZiBhbGwgRUZJIHJ1bnRpbWUgc2VydmljZXMKKwlyZWJvb3RfdHlwZT1rCXR1cm4gb2ZmIEVGSSByZWJvb3QgcnVudGltZSBzZXJ2aWNlCistIElmIHRoZSBFRkkgbWVtb3J5IG1hcCBoYXMgYWRkaXRpb25hbCBlbnRyaWVzIG5vdCBpbiB0aGUgRTgyMCBtYXAsCisgIHlvdSBjYW4gaW5jbHVkZSB0aG9zZSBlbnRyaWVzIGluIHRoZSBrZXJuZWxzIG1lbW9yeSBtYXAgb2YgYXZhaWxhYmxlCisgIHBoeXNpY2FsIFJBTSBieSB1c2luZyB0aGUgZm9sbG93aW5nIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVyLgorCWFkZF9lZmlfbWVtbWFwCWluY2x1ZGUgRUZJIG1lbW9yeSBtYXAgb2YgYXZhaWxhYmxlIHBoeXNpY2FsIFJBTQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODZfNjQvbW0udHh0IGIvRG9jdW1lbnRhdGlvbi94ODZfNjQvbW0udHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODliNmQyLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24veDg2XzY0L21tLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLQotPHByZXZpb3VzIGRlc2NyaXB0aW9uIG9ic29sZXRlLCBkZWxldGVkPgotCi1WaXJ0dWFsIG1lbW9yeSBtYXAgd2l0aCA0IGxldmVsIHBhZ2UgdGFibGVzOgotCi0wMDAwMDAwMDAwMDAwMDAwIC0gMDAwMDdmZmZmZmZmZmZmZiAoPTQ3IGJpdHMpIHVzZXIgc3BhY2UsIGRpZmZlcmVudCBwZXIgbW0KLWhvbGUgY2F1c2VkIGJ5IFs0ODo2M10gc2lnbiBleHRlbnNpb24KLWZmZmY4MDAwMDAwMDAwMDAgLSBmZmZmODBmZmZmZmZmZmZmICg9NDAgYml0cykgZ3VhcmQgaG9sZQotZmZmZjgxMDAwMDAwMDAwMCAtIGZmZmZjMGZmZmZmZmZmZmYgKD00NiBiaXRzKSBkaXJlY3QgbWFwcGluZyBvZiBhbGwgcGh5cy4gbWVtb3J5Ci1mZmZmYzEwMDAwMDAwMDAwIC0gZmZmZmMxZmZmZmZmZmZmZiAoPTQwIGJpdHMpIGhvbGUKLWZmZmZjMjAwMDAwMDAwMDAgLSBmZmZmZTFmZmZmZmZmZmZmICg9NDUgYml0cykgdm1hbGxvYy9pb3JlbWFwIHNwYWNlCi1mZmZmZTIwMDAwMDAwMDAwIC0gZmZmZmUyZmZmZmZmZmZmZiAoPTQwIGJpdHMpIHZpcnR1YWwgbWVtb3J5IG1hcCAoMVRCKQotLi4uIHVudXNlZCBob2xlIC4uLgotZmZmZmZmZmY4MDAwMDAwMCAtIGZmZmZmZmZmODI4MDAwMDAgKD00MCBNQikgICBrZXJuZWwgdGV4dCBtYXBwaW5nLCBmcm9tIHBoeXMgMAotLi4uIHVudXNlZCBob2xlIC4uLgotZmZmZmZmZmY4ODAwMDAwMCAtIGZmZmZmZmZmZmZmMDAwMDAgKD0xOTE5IE1CKSBtb2R1bGUgbWFwcGluZyBzcGFjZQotCi1UaGUgZGlyZWN0IG1hcHBpbmcgY292ZXJzIGFsbCBtZW1vcnkgaW4gdGhlIHN5c3RlbSB1cCB0byB0aGUgaGlnaGVzdAotbWVtb3J5IGFkZHJlc3MgKHRoaXMgbWVhbnMgaW4gc29tZSBjYXNlcyBpdCBjYW4gYWxzbyBpbmNsdWRlIFBDSSBtZW1vcnkKLWhvbGVzKS4KLQotdm1hbGxvYyBzcGFjZSBpcyBsYXppbHkgc3luY2hyb25pemVkIGludG8gdGhlIGRpZmZlcmVudCBQTUw0IHBhZ2VzIG9mCi10aGUgcHJvY2Vzc2VzIHVzaW5nIHRoZSBwYWdlIGZhdWx0IGhhbmRsZXIsIHdpdGggaW5pdF9sZXZlbDRfcGd0IGFzCi1yZWZlcmVuY2UuCi0KLUN1cnJlbnQgWDg2LTY0IGltcGxlbWVudGF0aW9ucyBvbmx5IHN1cHBvcnQgNDAgYml0cyBvZiBhZGRyZXNzIHNwYWNlLAotYnV0IHdlIHN1cHBvcnQgdXAgdG8gNDYgYml0cy4gVGhpcyBleHBhbmRzIGludG8gTUJaIHNwYWNlIGluIHRoZSBwYWdlIHRhYmxlcy4KLQotLUFuZGkgS2xlZW4sIEp1bCAyMDA0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC91ZWZpLnR4dCBiL0RvY3VtZW50YXRpb24veDg2XzY0L3VlZmkudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDc3MTIwLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24veDg2XzY0L3VlZmkudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotR2VuZXJhbCBub3RlIG9uIFtVXUVGSSB4ODZfNjQgc3VwcG9ydAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgbm9tZW5jbGF0dXJlIEVGSSBhbmQgVUVGSSBhcmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgaW4gdGhpcyBkb2N1bWVudC4KLQotQWx0aG91Z2ggdGhlIHRvb2xzIGJlbG93IGFyZSBfbm90XyBuZWVkZWQgZm9yIGJ1aWxkaW5nIHRoZSBrZXJuZWwsCi10aGUgbmVlZGVkIGJvb3Rsb2FkZXIgc3VwcG9ydCBhbmQgYXNzb2NpYXRlZCB0b29scyBmb3IgeDg2XzY0IHBsYXRmb3Jtcwotd2l0aCBFRkkgZmlybXdhcmUgYW5kIHNwZWNpZmljYXRpb25zIGFyZSBsaXN0ZWQgYmVsb3cuCi0KLTEuIFVFRkkgc3BlY2lmaWNhdGlvbjogIGh0dHA6Ly93d3cudWVmaS5vcmcKLQotMi4gQm9vdGluZyBMaW51eCBrZXJuZWwgb24gVUVGSSB4ODZfNjQgcGxhdGZvcm0gcmVxdWlyZXMgYm9vdGxvYWRlcgotICAgc3VwcG9ydC4gRWxpbG8gd2l0aCB4ODZfNjQgc3VwcG9ydCBjYW4gYmUgdXNlZC4KLQotMy4geDg2XzY0IHBsYXRmb3JtIHdpdGggRUZJL1VFRkkgZmlybXdhcmUuCi0KLU1lY2hhbmljczoKLS0tLS0tLS0tLQotLSBCdWlsZCB0aGUga2VybmVsIHdpdGggdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uLgotCUNPTkZJR19GQl9FRkk9eQotCUNPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKLSAgSWYgRUZJIHJ1bnRpbWUgc2VydmljZXMgYXJlIGV4cGVjdGVkLCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gc2hvdWxkCi0gIGJlIHNlbGVjdGVkLgotCUNPTkZJR19FRkk9eQotCUNPTkZJR19FRklfVkFSUz15IG9yIG0JCSMgb3B0aW9uYWwKLS0gQ3JlYXRlIGEgVkZBVCBwYXJ0aXRpb24gb24gdGhlIGRpc2sKLS0gQ29weSB0aGUgZm9sbG93aW5nIHRvIHRoZSBWRkFUIHBhcnRpdGlvbjoKLQllbGlsbyBib290bG9hZGVyIHdpdGggeDg2XzY0IHN1cHBvcnQsIGVsaWxvIGNvbmZpZ3VyYXRpb24gZmlsZSwKLQlrZXJuZWwgaW1hZ2UgYnVpbHQgaW4gZmlyc3Qgc3RlcCBhbmQgY29ycmVzcG9uZGluZwotCWluaXRyZC4gSW5zdHJ1Y3Rpb25zIG9uIGJ1aWxkaW5nIGVsaWxvCWFuZCBpdHMgZGVwZW5kZW5jaWVzCi0JY2FuIGJlIGZvdW5kIGluIHRoZSBlbGlsbyBzb3VyY2Vmb3JnZSBwcm9qZWN0LgotLSBCb290IHRvIEVGSSBzaGVsbCBhbmQgaW52b2tlIGVsaWxvIGNob29zaW5nIHRoZSBrZXJuZWwgaW1hZ2UgYnVpbHQKLSAgaW4gZmlyc3Qgc3RlcC4KLS0gSWYgc29tZSBvciBhbGwgRUZJIHJ1bnRpbWUgc2VydmljZXMgZG9uJ3Qgd29yaywgeW91IGNhbiB0cnkgZm9sbG93aW5nCi0gIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycyB0byB0dXJuIG9mZiBzb21lIG9yIGFsbCBFRkkgcnVudGltZQotICBzZXJ2aWNlcy4KLQlub2VmaQkJdHVybiBvZmYgYWxsIEVGSSBydW50aW1lIHNlcnZpY2VzCi0JcmVib290X3R5cGU9awl0dXJuIG9mZiBFRkkgcmVib290IHJ1bnRpbWUgc2VydmljZQpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCA4ZjBlYzQ2Li42MTk4ZmEzIDEwMDY0NAotLS0gYS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtMzc2LDYgKzM3NiwxMiBAQAogVzoJaHR0cDovL3d3dy5hbWQuY29tL3VzLWVuL0Nvbm5lY3Rpdml0eVNvbHV0aW9ucy9UZWNobmljYWxSZXNvdXJjZXMvMCwsNTBfMjMzNF8yNDUyXzExMzYzLDAwLmh0bWwKIFM6CVN1cHBvcnRlZAogCitBTUQgSU9NTVUgKEFNRC1WSSkKK1A6CUpvZXJnIFJvZWRlbAorTToJam9lcmcucm9lZGVsQGFtZC5jb20KK0w6CWlvbW11QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCitTOglTdXBwb3J0ZWQKKwogQU1TIChBcHBsZSBNb3Rpb24gU2Vuc29yKSBEUklWRVIKIFA6CVN0ZWxpYW4gUG9wCiBNOglzdGVsaWFuQHBvcGllcy5uZXQKQEAgLTc2Myw5ICs3NjksMTAgQEAKIAogQVVYSUxJQVJZIERJU1BMQVkgRFJJVkVSUwogUDoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCi1NOgltYXhleHRyZW1lQGdtYWlsLmNvbQorTToJbWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2F1eGRpc3BsYXkuZ29vZ2xlcGFnZXMuY29tLworVzoJaHR0cDovL21pZ3VlbG9qZWRhLmVzL2F1eGRpc3BsYXkuaHRtCitXOglodHRwOi8vamFpci5sYWIuZmkudXZhLmVzL35taWdvamVkL2F1eGRpc3BsYXkuaHRtCiBTOglNYWludGFpbmVkCiAKIEFWUjMyIEFSQ0hJVEVDVFVSRQpAQCAtMTA1NSwxNiArMTA2MiwxOCBAQAogCiBDRkFHMTI4NjRCIExDRCBEUklWRVIKIFA6CU1pZ3VlbCBPamVkYSBTYW5kb25pcwotTToJbWF4ZXh0cmVtZUBnbWFpbC5jb20KK006CW1pZ3VlbC5vamVkYS5zYW5kb25pc0BnbWFpbC5jb20KIEw6CWxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKLVc6CWh0dHA6Ly9hdXhkaXNwbGF5Lmdvb2dsZXBhZ2VzLmNvbS8KK1c6CWh0dHA6Ly9taWd1ZWxvamVkYS5lcy9hdXhkaXNwbGF5Lmh0bQorVzoJaHR0cDovL2phaXIubGFiLmZpLnV2YS5lcy9+bWlnb2plZC9hdXhkaXNwbGF5Lmh0bQogUzoJTWFpbnRhaW5lZAogCiBDRkFHMTI4NjRCRkIgTENEIEZSQU1FQlVGRkVSIERSSVZFUgogUDoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCi1NOgltYXhleHRyZW1lQGdtYWlsLmNvbQorTToJbWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2F1eGRpc3BsYXkuZ29vZ2xlcGFnZXMuY29tLworVzoJaHR0cDovL21pZ3VlbG9qZWRhLmVzL2F1eGRpc3BsYXkuaHRtCitXOglodHRwOi8vamFpci5sYWIuZmkudXZhLmVzL35taWdvamVkL2F1eGRpc3BsYXkuaHRtCiBTOglNYWludGFpbmVkCiAKIENGRzgwMjExIGFuZCBOTDgwMjExCkBAIC0xNDIwLDYgKzE0MjksMTQgQEAKIEw6CWxpbnV4LWFjcGlAdmdlci5rZXJuZWwub3JnCiBTOglTdXBwb3J0ZWQKIAorRE9DVU1FTlRBVElPTiAoL0RvY3VtZW50YXRpb24gZGlyZWN0b3J5KQorUDogICAgIE1pY2hhZWwgS2VycmlzaworTTogICAgIG10ay5tYW5wYWdlc0BnbWFpbC5jb20KK1A6ICAgICBSYW5keSBEdW5sYXAKK006ICAgICByZHVubGFwQHhlbm90aW1lLm5ldAorTDogICAgIGxpbnV4LWRvY0B2Z2VyLmtlcm5lbC5vcmcKK1M6ICAgICBNYWludGFpbmVkCisKIERPVUJMRVRBTEsgRFJJVkVSCiBQOglKYW1lcyBSLiBWYW4gWmFuZHQKIE06CWpydkB2YW56YW5kdC5tdi5jb20KQEAgLTE2MjYsMTMgKzE2NDMsMTMgQEAKIAogRVhUMyBGSUxFIFNZU1RFTQogUDoJU3RlcGhlbiBUd2VlZGllLCBBbmRyZXcgTW9ydG9uCi1NOglzY3RAcmVkaGF0LmNvbSwgYWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZywgYWRpbGdlckBjbHVzdGVyZnMuY29tCitNOglzY3RAcmVkaGF0LmNvbSwgYWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZywgYWRpbGdlckBzdW4uY29tCiBMOglsaW51eC1leHQ0QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCiBFWFQ0IEZJTEUgU1lTVEVNCiBQOglTdGVwaGVuIFR3ZWVkaWUsIEFuZHJldyBNb3J0b24KLU06CXNjdEByZWRoYXQuY29tLCBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnLCBhZGlsZ2VyQGNsdXN0ZXJmcy5jb20KK006CXNjdEByZWRoYXQuY29tLCBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnLCBhZGlsZ2VyQHN1bi5jb20KIEw6CWxpbnV4LWV4dDRAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKQEAgLTE2NjksNiArMTY4NiwxMyBAQAogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCitGUkVFU0NBTEUgSTJDIENQTSBEUklWRVIKK1A6CUpvY2hlbiBGcmllZHJpY2gKK006CWpvY2hlbkBzY3JhbS5kZQorTDoJbGludXhwcGMtZGV2QG96bGFicy5vcmcKK0w6CWkyY0BsbS1zZW5zb3JzLm9yZworUzoJTWFpbnRhaW5lZAorCiBGUkVFU0NBTEUgU09DIEZTX0VORVQgRFJJVkVSCiBQOglQYW50ZWxpcyBBbnRvbmlvdQogTToJcGFudGVsaXMuYW50b25pb3VAZ21haWwuY29tCkBAIC0yNDI4LDkgKzI0NTIsMTAgQEAKIAogS1MwMTA4IExDRCBDT05UUk9MTEVSIERSSVZFUgogUDoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCi1NOgltYXhleHRyZW1lQGdtYWlsLmNvbQorTToJbWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2F1eGRpc3BsYXkuZ29vZ2xlcGFnZXMuY29tLworVzoJaHR0cDovL21pZ3VlbG9qZWRhLmVzL2F1eGRpc3BsYXkuaHRtCitXOglodHRwOi8vamFpci5sYWIuZmkudXZhLmVzL35taWdvamVkL2F1eGRpc3BsYXkuaHRtCiBTOglNYWludGFpbmVkCiAKIExBUEIgbW9kdWxlCkBAIC0yNDc0LDkgKzI0OTksMTEgQEAKIFc6CWh0dHA6Ly93d3cuaGFuc2VucGFydG5lcnNoaXAuY29tL3ZveWFnZXIKIFM6CU1haW50YWluZWQKIAotTElOVVggRk9SIFBPV0VSUEMKK0xJTlVYIEZPUiBQT1dFUlBDICgzMi1CSVQgQU5EIDY0LUJJVCkKIFA6CVBhdWwgTWFja2VycmFzCiBNOglwYXVsdXNAc2FtYmEub3JnCitQOglCZW5qYW1pbiBIZXJyZW5zY2htaWR0CitNOgliZW5oQGtlcm5lbC5jcmFzaGluZy5vcmcKIFc6CWh0dHA6Ly93d3cucGVuZ3VpbnBwYy5vcmcvCiBMOglsaW51eHBwYy1kZXZAb3psYWJzLm9yZwogVDoJZ2l0IGtlcm5lbC5vcmc6L3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9wYXVsdXMvcG93ZXJwYy5naXQKQEAgLTI1MTYsMTMgKzI1NDMsNiBAQAogTDoJbGludXhwcGMtZGV2QG96bGFicy5vcmcKIFM6CU1haW50YWluZWQKIAotTElOVVggRk9SIFBPV0VSUEMgQk9PVCBDT0RFCi1QOglUb20gUmluaQotTToJdHJpbmlAa2VybmVsLmNyYXNoaW5nLm9yZwotVzoJaHR0cDovL3d3dy5wZW5ndWlucHBjLm9yZy8KLUw6CWxpbnV4cHBjLWRldkBvemxhYnMub3JnCi1TOglNYWludGFpbmVkCi0KIExJTlVYIEZPUiBQT1dFUlBDIEVNQkVEREVEIFBQQzhYWAogUDoJVml0YWx5IEJvcmR1ZwogTToJdml0YkBrZXJuZWwuY3Jhc2hpbmcub3JnCkBAIC0yNTUxLDE3ICsyNTcxLDYgQEAKIE06CWFjbWVAZ2hvc3Rwcm90b2NvbHMubmV0CiBTOglNYWludGFpbmVkCiAKLUxJTlVYIEZPUiA2NEJJVCBQT1dFUlBDCi1QOglQYXVsIE1hY2tlcnJhcwotTToJcGF1bHVzQHNhbWJhLm9yZwotTToJcGF1bHVzQGF1LmlibS5jb20KLVA6CUFudG9uIEJsYW5jaGFyZAotTToJYW50b25Ac2FtYmEub3JnCi1NOglhbnRvbkBhdS5pYm0uY29tCi1XOglodHRwOi8vd3d3LnBlbmd1aW5wcGMub3JnL3BwYzY0LwotTDoJbGludXhwcGMtZGV2QG96bGFicy5vcmcKLVM6CVN1cHBvcnRlZAotCiBMSU5VWCBTRUNVUklUWSBNT0RVTEUgKExTTSkgRlJBTUVXT1JLCiBQOglDaHJpcyBXcmlnaHQKIE06CWNocmlzd0Bzb3VzLXNvbC5vcmcKQEAgLTI2ODAsOCArMjY4OSw4IEBACiBNQU4tUEFHRVM6IE1BTlVBTCBQQUdFUyBGT1IgTElOVVggLS0gU2VjdGlvbnMgMiwgMywgNCwgNSwgYW5kIDcKIFA6CU1pY2hhZWwgS2VycmlzawogTToJbXRrLm1hbnBhZ2VzQGdtYWlsLmNvbQotVzoJZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L2RvY3MvbWFucGFnZXMKLVM6CU1haW50YWluZWQKK1c6ICAgICBodHRwOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL21hbi1wYWdlcworUzogICAgIFN1cHBvcnRlZAogCiBNQVJWRUxMIExJQkVSVEFTIFdJUkVMRVNTIERSSVZFUgogUDoJRGFuIFdpbGxpYW1zCkBAIC0yODE0LDYgKzI4MjMsMTIgQEAKIFc6CWh0dHA6Ly8wcG9pbnRlci5kZS9sZW5uYXJ0L3RjaGliby5odG1sCiBTOglNYWludGFpbmVkCiAKK01VTFRJRlVOQ1RJT04gREVWSUNFUyAoTUZEKQorUDoJU2FtdWVsIE9ydGl6CitNOglzYW1lb0BvcGVuZWRoYW5kLmNvbQorTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZworUzoJU3VwcG9ydGVkCisKIE1VTFRJTUVESUEgQ0FSRCAoTU1DKSwgU0VDVVJFIERJR0lUQUwgKFNEKSBBTkQgU0RJTyBTVUJTWVNURU0KIFA6CVBpZXJyZSBPc3NtYW4KIE06CWRyemV1cy1tbWNAZHJ6ZXVzLmN4CkBAIC0zMDgwLDggKzMwOTUsOCBAQAogUzoJTWFpbnRhaW5lZAogCiBPUFJPRklMRQotUDoJUGhpbGlwcGUgRWxpZQotTToJcGhpbC5lbEB3YW5hZG9vLmZyCitQOglSb2JlcnQgUmljaHRlcgorTToJcm9iZXJ0LnJpY2h0ZXJAYW1kLmNvbQogTDoJb3Byb2ZpbGUtbGlzdEBsaXN0cy5zZi5uZXQKIFM6CU1haW50YWluZWQKIApAQCAtMzE5NSw4ICszMjEwLDggQEAKIFM6CU1haW50YWluZWQKIAogUEVSLVRBU0sgREVMQVkgQUNDT1VOVElORwotUDoJU2hhaWxhYmggTmFnYXIKLU06CW5hZ2FyQHdhdHNvbi5pYm0uY29tCitQOglCYWxiaXIgU2luZ2gKK006CWJhbGJpckBsaW51eC52bmV0LmlibS5jb20KIEw6CWxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIApAQCAtMzY4OCw3ICszNzAzLDcgQEAKIAogU0xBQiBBTExPQ0FUT1IKIFA6CUNocmlzdG9waCBMYW1ldGVyCi1NOgljbGFtZXRlckBzZ2kuY29tCitNOgljbEBsaW51eC1mb3VuZGF0aW9uLm9yZwogUDoJUGVra2EgRW5iZXJnCiBNOglwZW5iZXJnQGNzLmhlbHNpbmtpLmZpCiBQOglNYXR0IE1hY2thbGwKQEAgLTM4OTgsOCArMzkxMyw4IEBACiBTOglNYWludGFpbmVkCiAKIFRBU0tTVEFUUyBTVEFUSVNUSUNTIElOVEVSRkFDRQotUDoJU2hhaWxhYmggTmFnYXIKLU06CW5hZ2FyQHdhdHNvbi5pYm0uY29tCitQOglCYWxiaXIgU2luZ2gKK006CWJhbGJpckBsaW51eC52bmV0LmlibS5jb20KIEw6CWxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIApAQCAtMzk5NSw3ICs0MDEwLDggQEAKIFM6CU1haW50YWluZWQKIAogVFBNIERFVklDRSBEUklWRVIKLVA6CUt5bGVuZSBIYWxsCitQOiAgICAgRGVib3JhIFZlbGFyZGUKK1A6ICAgICBSYWppdiBBbmRyYWRlCiBNOgl0cG1kZC1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKIFc6CWh0dHA6Ly90cG1kZC5zb3VyY2Vmb3JnZS5uZXQKIFA6CU1hcmNlbCBTZWxob3JzdApAQCAtNDMxNCw2ICs0MzMwLDE0IEBACiBXOglodHRwOi8vd3d3LmxpbnV4LXVzYi5vcmcvdXNibmV0CiBTOglNYWludGFpbmVkCiAKK1VTQiBWSURFTyBDTEFTUworUDoJTGF1cmVudCBQaW5jaGFydAorTToJbGF1cmVudC5waW5jaGFydEBza3luZXQuYmUKK0w6CWxpbngtdXZjLWRldmVsQGJlcmxpb3MuZGUKK0w6CXZpZGVvNGxpbnV4LWxpc3RAcmVkaGF0LmNvbQorVzoJaHR0cDovL2xpbnV4LXV2Yy5iZXJsaW9zLmRlCitTOglNYWludGFpbmVkCisKIFVTQiBXOTk2Wzg3XUNGIERSSVZFUgogUDoJTHVjYSBSaXNvbGlhCiBNOglsdWNhLnJpc29saWFAc3R1ZGlvLnVuaWJvLml0CmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IDZhZmY1ZjQuLjVlZmRkODggMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xLDcgKzEsNyBAQAogVkVSU0lPTiA9IDIKIFBBVENITEVWRUwgPSA2CiBTVUJMRVZFTCA9IDI2Ci1FWFRSQVZFUlNJT04gPSAtcmM4CitFWFRSQVZFUlNJT04gPQogTkFNRSA9IFJvdGFyeSBXb21iYXQKIAogIyAqRE9DVU1FTlRBVElPTioKQEAgLTQ1MCw3ICs0NTAsNyBAQAogCiAjIE9iamVjdHMgd2Ugd2lsbCBsaW5rIGludG8gdm1saW51eCAvIHN1YmRpcnMgd2UgbmVlZCB0byB2aXNpdAogaW5pdC15CQk6PSBpbml0LwotZHJpdmVycy15CTo9IGRyaXZlcnMvIHNvdW5kLworZHJpdmVycy15CTo9IGRyaXZlcnMvIHNvdW5kLyBmaXJtd2FyZS8KIG5ldC15CQk6PSBuZXQvCiBsaWJzLXkJCTo9IGxpYi8KIGNvcmUteQkJOj0gdXNyLwpAQCAtNTI4LDYgKzUyOCwxMCBAQAogS0JVSUxEX0FGTEFHUwkrPSAtZ2R3YXJmLTIKIGVuZGlmCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKK0tCVUlMRF9DRkxBR1MJKz0gLXBnCitlbmRpZgorCiAjIFdlIHRyaWdnZXIgYWRkaXRpb25hbCBtaXNtYXRjaGVzIHdpdGggbGVzcyBpbmxpbmluZwogaWZkZWYgQ09ORklHX0RFQlVHX1NFQ1RJT05fTUlTTUFUQ0gKIEtCVUlMRF9DRkxBR1MgKz0gJChjYWxsIGNjLW9wdGlvbiwgLWZuby1pbmxpbmUtZnVuY3Rpb25zLWNhbGxlZC1vbmNlKQpAQCAtOTk1LDYgKzk5OSwxNiBAQAogCUBlY2hvICcqKiogV2FybmluZzogbWFrZSAkQCBpcyB1bm5lY2Vzc2FyeSBub3cuJwogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGaXJtd2FyZSBpbnN0YWxsCitJTlNUQUxMX0ZXX1BBVEg9JChJTlNUQUxMX01PRF9QQVRIKS9saWIvZmlybXdhcmUKK2V4cG9ydCBJTlNUQUxMX0ZXX1BBVEgKKworUEhPTlkgKz0gZmlybXdhcmVfaW5zdGFsbAorZmlybXdhcmVfaW5zdGFsbDogRk9SQ0UKKwlAbWtkaXIgLXAgJChvYmp0cmVlKS9maXJtd2FyZQorCSQoUSkkKE1BS0UpIC1mICQoc3JjdHJlZSkvc2NyaXB0cy9NYWtlZmlsZS5md2luc3Qgb2JqPWZpcm13YXJlIF9fZndfaW5zdGFsbAorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBLZXJuZWwgaGVhZGVycwogSU5TVEFMTF9IRFJfUEFUSD0kKG9ianRyZWUpL3VzcgogZXhwb3J0IElOU1RBTExfSERSX1BBVEgKQEAgLTEwODAsNiArMTA5NCw3IEBACiAjIGJvb3Qgc2NyaXB0IGRlcG1vZCBpcyB0aGUgbWFzdGVyIHZlcnNpb24uCiBQSE9OWSArPSBfbW9kaW5zdF9wb3N0CiBfbW9kaW5zdF9wb3N0OiBfbW9kaW5zdF8KKwkkKFEpJChNQUtFKSAtZiAkKHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUuZndpbnN0IG9iaj1maXJtd2FyZSBfX2Z3X21vZGluc3QKIAkkKGNhbGwgY21kLGRlcG1vZCkKIAogZWxzZSAjIENPTkZJR19NT0RVTEVTCkBAIC0xMTk3LDYgKzEyMTIsOCBAQAogCUBlY2hvICAnKiB2bWxpbnV4CSAgLSBCdWlsZCB0aGUgYmFyZSBrZXJuZWwnCiAJQGVjaG8gICcqIG1vZHVsZXMJICAtIEJ1aWxkIGFsbCBtb2R1bGVzJwogCUBlY2hvICAnICBtb2R1bGVzX2luc3RhbGwgLSBJbnN0YWxsIGFsbCBtb2R1bGVzIHRvIElOU1RBTExfTU9EX1BBVEggKGRlZmF1bHQ6IC8pJworCUBlY2hvICAnICBmaXJtd2FyZV9pbnN0YWxsLSBJbnN0YWxsIGFsbCBmaXJtd2FyZSB0byBJTlNUQUxMX0ZXX1BBVEgnCisJQGVjaG8gICcgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0OiAkJChJTlNUQUxMX01PRF9QQVRIKS9saWIvZmlybXdhcmUpJwogCUBlY2hvICAnICBkaXIvICAgICAgICAgICAgLSBCdWlsZCBhbGwgZmlsZXMgaW4gZGlyIGFuZCBiZWxvdycKIAlAZWNobyAgJyAgZGlyL2ZpbGUuW29pc10gIC0gQnVpbGQgc3BlY2lmaWVkIHRhcmdldCBvbmx5JwogCUBlY2hvICAnICBkaXIvZmlsZS5rbyAgICAgLSBCdWlsZCBtb2R1bGUgaW5jbHVkaW5nIGZpbmFsIGxpbmsnCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2tlcm5lbC9pcnEuYyBiL2FyY2gvYWxwaGEva2VybmVsL2lycS5jCmluZGV4IGZhY2Y4MmEuLmM2MjZhODIgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEva2VybmVsL2lycS5jCisrKyBiL2FyY2gvYWxwaGEva2VybmVsL2lycS5jCkBAIC00Miw4ICs0Miw3IEBACiAjaWZkZWYgQ09ORklHX1NNUCAKIHN0YXRpYyBjaGFyIGlycV91c2VyX2FmZmluaXR5W05SX0lSUVNdOwogCi1pbnQKLXNlbGVjdF9zbXBfYWZmaW5pdHkodW5zaWduZWQgaW50IGlycSkKK2ludCBpcnFfc2VsZWN0X2FmZmluaXR5KHVuc2lnbmVkIGludCBpcnEpCiB7CiAJc3RhdGljIGludCBsYXN0X2NwdTsKIAlpbnQgY3B1ID0gbGFzdF9jcHUgKyAxOwpAQCAtNTEsNyArNTAsNyBAQAogCWlmICghaXJxX2Rlc2NbaXJxXS5jaGlwLT5zZXRfYWZmaW5pdHkgfHwgaXJxX3VzZXJfYWZmaW5pdHlbaXJxXSkKIAkJcmV0dXJuIDE7CiAKLQl3aGlsZSAoIWNwdV9wb3NzaWJsZShjcHUpKQorCXdoaWxlICghY3B1X3Bvc3NpYmxlKGNwdSkgfHwgIWNwdV9pc3NldChjcHUsIGlycV9kZWZhdWx0X2FmZmluaXR5KSkKIAkJY3B1ID0gKGNwdSA8IChOUl9DUFVTLTEpID8gY3B1ICsgMSA6IDApOwogCWxhc3RfY3B1ID0gY3B1OwogCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9hbHBoYS9rZXJuZWwvdm1saW51eC5sZHMuUwppbmRleCBmMTMyNDliLi5lZjM3ZmMxIDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvYWxwaGEva2VybmVsL3ZtbGludXgubGRzLlMKQEAgLTI1LDYgKzI1LDEzIEBACiAJfSA6a2VybmVsCiAJX2V0ZXh0ID0gLjsJLyogRW5kIG9mIHRleHQgc2VjdGlvbiAqLwogCisJTk9URVMgOmtlcm5lbCA6bm90ZQorCS5kdW1teSA6IHsKKwkJKiguZHVtbXkpCisJfSA6a2VybmVsCisKKwlST0RBVEEKKwogCS8qIEV4Y2VwdGlvbiB0YWJsZSAqLwogCS4gPSBBTElHTigxNik7CiAJX19leF90YWJsZSA6IHsKQEAgLTMzLDEzICs0MCw2IEBACiAJCV9fc3RvcF9fX2V4X3RhYmxlID0gLjsKIAl9CiAKLQlOT1RFUyA6a2VybmVsIDpub3RlCi0JLmR1bW15IDogewotCQkqKC5kdW1teSkKLQl9IDprZXJuZWwKLQotCVJPREFUQQotCiAJLyogV2lsbCBiZSBmcmVlZCBhZnRlciBpbml0ICovCiAJLiA9IEFMSUdOKFBBR0VfU0laRSk7CiAJLyogSW5pdCBjb2RlIGFuZCBkYXRhICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9LY29uZmlnIGIvYXJjaC9hcm0vS2NvbmZpZwppbmRleCBjNzJkYWU2Li5jN2FkMzI0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9LY29uZmlnCisrKyBiL2FyY2gvYXJtL0tjb25maWcKQEAgLTE0LDYgKzE0LDggQEAKIAlzZWxlY3QgSEFWRV9PUFJPRklMRQogCXNlbGVjdCBIQVZFX0tQUk9CRVMgaWYgKCFYSVBfS0VSTkVMKQogCXNlbGVjdCBIQVZFX0tSRVRQUk9CRVMgaWYgKEhBVkVfS1BST0JFUykKKwlzZWxlY3QgSEFWRV9GVFJBQ0UgaWYgKCFYSVBfS0VSTkVMKQorCXNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFIGlmIChIQVZFX0ZUUkFDRSkKIAloZWxwCiAJICBUaGUgQVJNIHNlcmllcyBpcyBhIGxpbmUgb2YgbG93LXBvd2VyLWNvbnN1bXB0aW9uIFJJU0MgY2hpcCBkZXNpZ25zCiAJICBsaWNlbnNlZCBieSBBUk0gTHRkIGFuZCB0YXJnZXRlZCBhdCBlbWJlZGRlZCBhcHBsaWNhdGlvbnMgYW5kCkBAIC0yMiw2ICsyNCw5IEBACiAJICBFdXJvcGUuICBUaGVyZSBpcyBhbiBBUk0gTGludXggcHJvamVjdCB3aXRoIGEgd2ViIHBhZ2UgYXQKIAkgIDxodHRwOi8vd3d3LmFybS5saW51eC5vcmcudWsvPi4KIAorY29uZmlnIEhBVkVfUFdNCisJYm9vbAorCiBjb25maWcgU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT04KIAlib29sCiAKQEAgLTg0LDYgKzg5LDExIEBACiAJYm9vbAogCWRlZmF1bHQgeQogCitjb25maWcgSEFWRV9MQVRFTkNZVE9QX1NVUFBPUlQKKwlib29sCisJZGVwZW5kcyBvbiAhU01QCisJZGVmYXVsdCB5CisKIGNvbmZpZyBMT0NLREVQX1NVUFBPUlQKIAlib29sCiAJZGVmYXVsdCB5CkBAIC0xNDcsNiArMTU3LDEwIEBACiBjb25maWcgQVJDSF9NVERfWElQCiAJYm9vbAogCitjb25maWcgR0VORVJJQ19IQVJESVJRU19OT19fRE9fSVJRCisJYm9vbAorCWRlZl9ib29sIHkKKwogaWYgT1BST0ZJTEUKIAogY29uZmlnIE9QUk9GSUxFX0FSTVY2CkBAIC0yMzIsMTMgKzI0Niw2IEBACiAJaGVscAogCSAgU3VwcG9ydCBmb3IgQ2lycnVzIExvZ2ljIDcxMXgvNzIxeCBiYXNlZCBib2FyZHMuCiAKLWNvbmZpZyBBUkNIX0NPMjg1Ci0JYm9vbCAiQ28tRUJTQTI4NSIKLQlzZWxlY3QgRk9PVEJSSURHRQotCXNlbGVjdCBGT09UQlJJREdFX0FERElOCi0JaGVscAotCSAgU3VwcG9ydCBmb3IgSW50ZWwncyBFQlNBMjg1IGNvbXBhbmlvbiBjaGlwLgotCiBjb25maWcgQVJDSF9FQlNBMTEwCiAJYm9vbCAiRUJTQS0xMTAiCiAJc2VsZWN0IElTQQpAQCAtMjk5LDYgKzMwNiw4IEBACiAJZGVwZW5kcyBvbiBNTVUKIAlzZWxlY3QgUExBVF9JT1AKIAlzZWxlY3QgUENJCisJc2VsZWN0IEdFTkVSSUNfR1BJTworCXNlbGVjdCBIQVZFX0dQSU9fTElCCiAJaGVscAogCSAgU3VwcG9ydCBmb3IgSW50ZWwncyA4MDIxOSBhbmQgSU9QMzJYIChYU2NhbGUpIGZhbWlseSBvZgogCSAgcHJvY2Vzc29ycy4KQEAgLTMwOCw2ICszMTcsOCBAQAogCWRlcGVuZHMgb24gTU1VCiAJc2VsZWN0IFBMQVRfSU9QCiAJc2VsZWN0IFBDSQorCXNlbGVjdCBHRU5FUklDX0dQSU8KKwlzZWxlY3QgSEFWRV9HUElPX0xJQgogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIEludGVsJ3MgSU9QMzNYIChYU2NhbGUpIGZhbWlseSBvZiBwcm9jZXNzb3JzLgogCkBAIC0zNDcsNiArMzU4LDE2IEBACiAJICBJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zIG9yIGNvbW1lbnRzIGFib3V0IHRoZSBMaW51eCBrZXJuZWwgcG9ydAogCSAgdG8gdGhpcyBib2FyZCwgc2VuZCBlLW1haWwgdG8gPHNqaGlsbEBjb3R3LmNvbT4uCiAKK2NvbmZpZyBBUkNIX0tJUktXT09ECisJYm9vbCAiTWFydmVsbCBLaXJrd29vZCIKKwlzZWxlY3QgUENJCisJc2VsZWN0IEdFTkVSSUNfVElNRQorCXNlbGVjdCBHRU5FUklDX0NMT0NLRVZFTlRTCisJc2VsZWN0IFBMQVRfT1JJT04KKwloZWxwCisJICBTdXBwb3J0IGZvciB0aGUgZm9sbG93aW5nIE1hcnZlbGwgS2lya3dvb2Qgc2VyaWVzIFNvQ3M6CisJICA4OEY2MTgwLCA4OEY2MTkyIGFuZCA4OEY2MjgxLgorCiBjb25maWcgQVJDSF9LUzg2OTUKIAlib29sICJNaWNyZWwvS2VuZGluIEtTODY5NSIKIAlzZWxlY3QgR0VORVJJQ19HUElPCkBAIC0zNjUsOSArMzg2LDMxIEBACiAKIAkgIDxodHRwOi8vd3d3LmRpZ2kuY29tL3Byb2R1Y3RzL21pY3JvcHJvY2Vzc29ycy9pbmRleC5qc3A+CiAKK2NvbmZpZyBBUkNIX0xPS0kKKwlib29sICJNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSIKKwlzZWxlY3QgR0VORVJJQ19USU1FCisJc2VsZWN0IEdFTkVSSUNfQ0xPQ0tFVkVOVFMKKwlzZWxlY3QgUExBVF9PUklPTgorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHRoZSBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0MuCisKK2NvbmZpZyBBUkNIX01WNzhYWDAKKwlib29sICJNYXJ2ZWxsIE1WNzh4eDAiCisJc2VsZWN0IFBDSQorCXNlbGVjdCBHRU5FUklDX1RJTUUKKwlzZWxlY3QgR0VORVJJQ19DTE9DS0VWRU5UUworCXNlbGVjdCBQTEFUX09SSU9OCisJaGVscAorCSAgU3VwcG9ydCBmb3IgdGhlIGZvbGxvd2luZyBNYXJ2ZWxsIE1WNzh4eDAgc2VyaWVzIFNvQ3M6CisJICBNVjc4MXgwLCBNVjc4MngwLgorCiBjb25maWcgQVJDSF9NWEMKIAlib29sICJGcmVlc2NhbGUgTVhDL2lNWC1iYXNlZCIKKwlzZWxlY3QgR0VORVJJQ19USU1FCisJc2VsZWN0IEdFTkVSSUNfQ0xPQ0tFVkVOVFMKIAlzZWxlY3QgQVJDSF9NVERfWElQCisJc2VsZWN0IEdFTkVSSUNfR1BJTworCXNlbGVjdCBIQVZFX0dQSU9fTElCCiAJaGVscAogCSAgU3VwcG9ydCBmb3IgRnJlZXNjYWxlIE1YQy9pTVgtYmFzZWQgZmFtaWx5IG9mIHByb2Nlc3NvcnMKIApAQCAtMzgxLDcgKzQyNCw4IEBACiAJc2VsZWN0IFBMQVRfT1JJT04KIAloZWxwCiAJICBTdXBwb3J0IGZvciB0aGUgZm9sbG93aW5nIE1hcnZlbGwgT3Jpb24gNXggc2VyaWVzIFNvQ3M6Ci0JICBPcmlvbi0xICg1MTgxKSwgT3Jpb24tTkFTICg1MTgyKSwgT3Jpb24tMiAoNTI4MS4pCisJICBPcmlvbi0xICg1MTgxKSwgT3Jpb24tVm9JUCAoNTE4MUwpLCBPcmlvbi1OQVMgKDUxODIpLAorCSAgT3Jpb24tMiAoNTI4MSkuCiAKIGNvbmZpZyBBUkNIX1BOWDQwMDgKIAlib29sICJQaGlsaXBzIE5leHBlcmlhIFBOWDQwMDggTW9iaWxlIgpAQCAtNDA2LDYgKzQ1MCw3IEBACiAJc2VsZWN0IEZJUQogCXNlbGVjdCBUSU1FUl9BQ09STgogCXNlbGVjdCBBUkNIX01BWV9IQVZFX1BDX0ZEQworCXNlbGVjdCBIQVZFX1BBVEFfUExBVEZPUk0KIAlzZWxlY3QgSVNBX0RNQV9BUEkKIAlzZWxlY3QgTk9fSU9QT1JUCiAJaGVscApAQCAtNTAyLDYgKzU0NywxMCBAQAogCiBzb3VyY2UgImFyY2gvYXJtL21hY2gtaXhwMjN4eC9LY29uZmlnIgogCitzb3VyY2UgImFyY2gvYXJtL21hY2gtbG9raS9LY29uZmlnIgorCitzb3VyY2UgImFyY2gvYXJtL21hY2gtbXY3OHh4MC9LY29uZmlnIgorCiBzb3VyY2UgImFyY2gvYXJtL21hY2gtcHhhL0tjb25maWciCiAKIHNvdXJjZSAiYXJjaC9hcm0vbWFjaC1zYTExMDAvS2NvbmZpZyIKQEAgLTUxNCw2ICs1NjMsOCBAQAogCiBzb3VyY2UgImFyY2gvYXJtL21hY2gtb3Jpb241eC9LY29uZmlnIgogCitzb3VyY2UgImFyY2gvYXJtL21hY2gta2lya3dvb2QvS2NvbmZpZyIKKwogc291cmNlICJhcmNoL2FybS9wbGF0LXMzYzI0eHgvS2NvbmZpZyIKIHNvdXJjZSAiYXJjaC9hcm0vcGxhdC1zM2MvS2NvbmZpZyIKIApAQCAtNzA0LDI3ICs3NTUsNiBAQAogCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIGJ1aWxkaW5nIGEga2VybmVsIGZvciBhIGRlc2t0b3AsIGVtYmVkZGVkCiAJICBvciByZWFsLXRpbWUgc3lzdGVtLiAgU2F5IE4gaWYgeW91IGFyZSB1bnN1cmUuCiAKLWNvbmZpZyBOT19JRExFX0haCi0JYm9vbCAiRHluYW1pYyB0aWNrIHRpbWVyIgotCWRlcGVuZHMgb24gIUdFTkVSSUNfQ0xPQ0tFVkVOVFMKLQloZWxwCi0JICBTZWxlY3QgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gZGlzYWJsZSBjb250aW51b3VzIHRpbWVyIHRpY2tzCi0JICBhbmQgaGF2ZSB0aGVtIHByb2dyYW1tZWQgdG8gb2NjdXIgYXMgcmVxdWlyZWQuIFRoaXMgb3B0aW9uIHNhdmVzCi0JICBwb3dlciBhcyB0aGUgc3lzdGVtIGNhbiByZW1haW4gaW4gaWRsZSBzdGF0ZSBmb3IgbG9uZ2VyLgotCi0JICBCeSBkZWZhdWx0IGR5bmFtaWMgdGljayBpcyBkaXNhYmxlZCBkdXJpbmcgdGhlIGJvb3QsIGFuZCBjYW4gYmUKLQkgIG1hbnVhbGx5IGVuYWJsZWQgd2l0aDoKLQotCSAgICBlY2hvIDEgPiAvc3lzL2RldmljZXMvc3lzdGVtL3RpbWVyL3RpbWVyMC9keW5fdGljawotCi0JICBBbHRlcm5hdGl2ZWx5LCBpZiB5b3Ugd2FudCBkeW5hbWljIHRpY2sgYXV0b21hdGljYWxseSBlbmFibGVkCi0JICBkdXJpbmcgYm9vdCwgcGFzcyAiZHludGljaz1lbmFibGUiIHZpYSB0aGUga2VybmVsIGNvbW1hbmQgc3RyaW5nLgotCi0JICBQbGVhc2Ugbm90ZSB0aGF0IGR5bmFtaWMgdGljayBtYXkgYWZmZWN0IHRoZSBhY2N1cmFjeSBvZgotCSAgdGltZWtlZXBpbmcgb24gc29tZSBwbGF0Zm9ybXMgZGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbi4KLQkgIEN1cnJlbnRseSBhdCBsZWFzdCBPTUFQLCBQWEEyeHggYW5kIFNBMTF4MCBwbGF0Zm9ybXMgYXJlIGtub3duCi0JICB0byBoYXZlIGFjY3VyYXRlIHRpbWVrZWVwaW5nIHdpdGggZHluYW1pYyB0aWNrLgotCiBjb25maWcgSFoKIAlpbnQKIAlkZWZhdWx0IDEyOCBpZiBBUkNIX0w3MjAwCkBAIC03OTAsNyArODIwLDcgQEAKIAogY29uZmlnIExFRFMKIAlib29sICJUaW1lciBhbmQgQ1BVIHVzYWdlIExFRHMiCi0JZGVwZW5kcyBvbiBBUkNIX0NEQjg5NzEyIHx8IEFSQ0hfQ08yODUgfHwgQVJDSF9FQlNBMTEwIHx8IFwKKwlkZXBlbmRzIG9uIEFSQ0hfQ0RCODk3MTIgfHwgQVJDSF9FQlNBMTEwIHx8IFwKIAkJICAgQVJDSF9FQlNBMjg1IHx8IEFSQ0hfSU1YIHx8IEFSQ0hfSU5URUdSQVRPUiB8fCBcCiAJCSAgIEFSQ0hfTFVCQk9DSyB8fCBNQUNIX01BSU5TVE9ORSB8fCBBUkNIX05FVFdJTkRFUiB8fCBcCiAJCSAgIEFSQ0hfT01BUCB8fCBBUkNIX1A3MjBUIHx8IEFSQ0hfUFhBX0lEUCB8fCBcCmRpZmYgLS1naXQgYS9hcmNoL2FybS9NYWtlZmlsZSBiL2FyY2gvYXJtL01ha2VmaWxlCmluZGV4IGU3MmRiMjcuLmIyMDk5NWEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL01ha2VmaWxlCkBAIC0xMDAsOCArMTAwLDYgQEAKICAgaW5jZGlyLSQoQ09ORklHX0FSQ0hfQ0xQUzc1MDApICAgOj0gY2w3NTAwCiAgbWFjaGluZS0kKENPTkZJR19GT09UQlJJREdFKQkgICA6PSBmb290YnJpZGdlCiAgIGluY2Rpci0kKENPTkZJR19GT09UQlJJREdFKQkgICA6PSBlYnNhMjg1Ci0gbWFjaGluZS0kKENPTkZJR19BUkNIX0NPMjg1KQkgICA6PSBmb290YnJpZGdlCi0gIGluY2Rpci0kKENPTkZJR19BUkNIX0NPMjg1KQkgICA6PSBlYnNhMjg1CiAgbWFjaGluZS0kKENPTkZJR19BUkNIX1NIQVJLKQkgICA6PSBzaGFyawogIG1hY2hpbmUtJChDT05GSUdfQVJDSF9TQTExMDApCSAgIDo9IHNhMTEwMAogaWZlcSAoJChDT05GSUdfQVJDSF9TQTExMDApLHkpCkBAIC0xMzUsMTEgKzEzMywxNSBAQAogIG1hY2hpbmUtJChDT05GSUdfQVJDSF9ORVRYKQkgICA6PSBuZXR4CiAgbWFjaGluZS0kKENPTkZJR19BUkNIX05TOVhYWCkJICAgOj0gbnM5eHh4CiAgbWFjaGluZS0kKENPTkZJR19BUkNIX0RBVklOQ0kpCSAgIDo9IGRhdmluY2kKKyBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfS0lSS1dPT0QpICAgOj0ga2lya3dvb2QKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfS1M4Njk1KSAgICAgOj0ga3M4Njk1CiAgIGluY2Rpci0kKENPTkZJR19BUkNIX01YQykJICAgOj0gbXhjCisgbWFjaGluZS0kKENPTkZJR19BUkNIX01YMikJICAgOj0gbXgyCiAgbWFjaGluZS0kKENPTkZJR19BUkNIX01YMykJICAgOj0gbXgzCiAgbWFjaGluZS0kKENPTkZJR19BUkNIX09SSU9ONVgpCSAgIDo9IG9yaW9uNXgKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTVNNN1gwMEEpICAgOj0gbXNtCisgbWFjaGluZS0kKENPTkZJR19BUkNIX0xPS0kpICAgICAgIDo9IGxva2kKKyBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTVY3OFhYMCkgICAgOj0gbXY3OHh4MAogCiBpZmVxICgkKENPTkZJR19BUkNIX0VCU0ExMTApLHkpCiAjIFRoaXMgaXMgd2hhdCBoYXBwZW5zIGlmIHlvdSBmb3JnZXQgdGhlIElPQ1MxNiBsaW5lLgpAQCAtMTkwLDggKzE5Miw2IEBACiBjb3JlLSQoQ09ORklHX0FSQ0hfTVhDKQkJKz0gYXJjaC9hcm0vcGxhdC1teGMvCiAKIGRyaXZlcnMtJChDT05GSUdfT1BST0ZJTEUpICAgICAgKz0gYXJjaC9hcm0vb3Byb2ZpbGUvCi1kcml2ZXJzLSQoQ09ORklHX0FSQ0hfQ0xQUzc1MDApCSs9IGRyaXZlcnMvYWNvcm4vY2hhci8KLWRyaXZlcnMtJChDT05GSUdfQVJDSF9MNzIwMCkJKz0gZHJpdmVycy9hY29ybi9jaGFyLwogCiBsaWJzLXkJCQkJOj0gYXJjaC9hcm0vbGliLyAkKGxpYnMteSkKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL01ha2VmaWxlIGIvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL01ha2VmaWxlCmluZGV4IGRlOWQ5ZWUuLjk1YmFhYzQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvTWFrZWZpbGUKQEAgLTY5LDYgKzY5LDEyIEBACiAKIHRhcmdldHMgICAgICAgOj0gdm1saW51eCB2bWxpbnV4LmxkcyBwaWdneS5neiBwaWdneS5vIGZvbnQubyBmb250LmMgXAogCQkgaGVhZC5vIG1pc2MubyAkKE9CSlMpCisKK2lmZXEgKCQoQ09ORklHX0ZUUkFDRSkseSkKK09SSUdfQ0ZMQUdTIDo9ICQoS0JVSUxEX0NGTEFHUykKK0tCVUlMRF9DRkxBR1MgPSAkKHN1YnN0IC1wZywgLCAkKE9SSUdfQ0ZMQUdTKSkKK2VuZGlmCisKIEVYVFJBX0NGTEFHUyAgOj0gLWZwaWMgLWZuby1idWlsdGluCiBFWFRSQV9BRkxBR1MgIDo9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9oZWFkLlMgYi9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvaGVhZC5TCmluZGV4IDNjMmM4ZjIuLmRlNDFkYWUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9oZWFkLlMKKysrIGIvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL2hlYWQuUwpAQCAtNjIzLDggKzYyMyw4IEBACiAJCWIJX19hcm12NF9tbXVfY2FjaGVfb2ZmCiAJCWIJX19hcm12NF9tbXVfY2FjaGVfZmx1c2gKIAotCQkud29yZAkweDU2MDU1MzEwCQlAIEZlcm9jZW9uCi0JCS53b3JkCTB4ZmZmZmZmZjAKKwkJLndvcmQJMHg1NjA1MDAwMAkJQCBGZXJvY2VvbgorCQkud29yZAkweGZmMGYwMDAwCiAJCWIJX19hcm12NF9tbXVfY2FjaGVfb24KIAkJYglfX2FybXY0X21tdV9jYWNoZV9vZmYKIAkJYglfX2FybXY1dGVqX21tdV9jYWNoZV9mbHVzaApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29tbW9uL01ha2VmaWxlIGIvYXJjaC9hcm0vY29tbW9uL01ha2VmaWxlCmluZGV4IDNkMGI5ZmEuLjMyNWU0YjYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbW1vbi9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9jb21tb24vTWFrZWZpbGUKQEAgLTIsNyArMiw2IEBACiAjIE1ha2VmaWxlIGZvciB0aGUgbGludXgga2VybmVsLgogIwogCi1vYmoteQkJCQkrPSBydGN0aW1lLm8KIG9iai0kKENPTkZJR19BUk1fR0lDKQkJKz0gZ2ljLm8KIG9iai0kKENPTkZJR19BUk1fVklDKQkJKz0gdmljLm8KIG9iai0kKENPTkZJR19JQ1NUNTI1KQkJKz0gaWNzdDUyNS5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb21tb24vZG1hYm91bmNlLmMgYi9hcmNoL2FybS9jb21tb24vZG1hYm91bmNlLmMKaW5kZXggNTJmYzZhOC4uMjc0NDY3MyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29tbW9uL2RtYWJvdW5jZS5jCisrKyBiL2FyY2gvYXJtL2NvbW1vbi9kbWFib3VuY2UuYwpAQCAtNjUwLDcgKzY1MCw4IEBACiBFWFBPUlRfU1lNQk9MKGRtYV91bm1hcF9zZyk7CiBFWFBPUlRfU1lNQk9MKGRtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KTsKIEVYUE9SVF9TWU1CT0woZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UpOwotRVhQT1JUX1NZTUJPTChkbWFfc3luY19zZyk7CitFWFBPUlRfU1lNQk9MKGRtYV9zeW5jX3NnX2Zvcl9jcHUpOworRVhQT1JUX1NZTUJPTChkbWFfc3luY19zZ19mb3JfZGV2aWNlKTsKIEVYUE9SVF9TWU1CT0woZG1hYm91bmNlX3JlZ2lzdGVyX2Rldik7CiBFWFBPUlRfU1lNQk9MKGRtYWJvdW5jZV91bnJlZ2lzdGVyX2Rldik7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbW1vbi9ydGN0aW1lLmMgYi9hcmNoL2FybS9jb21tb24vcnRjdGltZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYThmNzczLi4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL2NvbW1vbi9ydGN0aW1lLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0MzQgKzAsMCBAQAotLyoKLSAqICBsaW51eC9hcmNoL2FybS9jb21tb24vcnRjdGltZS5jCi0gKgotICogIENvcHlyaWdodCAoQykgMjAwMyBEZWVwIEJsdWUgU29sdXRpb25zIEx0ZC4KLSAqICBCYXNlZCBvbiBzYTExMDAtcnRjLmMsIE5pbHMgRmFlcmJlciwgQ0lILCBOaWNvbGFzIFBpdHJlLgotICogIEJhc2VkIG9uIHJ0Yy5jIGJ5IFBhdWwgR29ydG1ha2VyCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSAqLwotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KLSNpbmNsdWRlIDxsaW51eC9ydGMuaD4KLSNpbmNsdWRlIDxsaW51eC9wb2xsLmg+Ci0jaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgotI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgotI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KLSNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgotCi0jaW5jbHVkZSA8YXNtL3J0Yy5oPgotCi1zdGF0aWMgREVDTEFSRV9XQUlUX1FVRVVFX0hFQUQocnRjX3dhaXQpOwotc3RhdGljIHN0cnVjdCBmYXN5bmNfc3RydWN0ICpydGNfYXN5bmNfcXVldWU7Ci0KLS8qCi0gKiBydGNfbG9jayBwcm90ZWN0cyBydGNfaXJxX2RhdGEKLSAqLwotc3RhdGljIERFRklORV9TUElOTE9DSyhydGNfbG9jayk7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBydGNfaXJxX2RhdGE7Ci0KLS8qCi0gKiBydGNfc2VtIHByb3RlY3RzIHJ0Y19pbnVzZSBhbmQgcnRjX29wcwotICovCi1zdGF0aWMgREVGSU5FX01VVEVYKHJ0Y19tdXRleCk7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBydGNfaW51c2U7Ci1zdGF0aWMgc3RydWN0IHJ0Y19vcHMgKnJ0Y19vcHM7Ci0KLSNkZWZpbmUgcnRjX2Vwb2NoIDE5MDBVTAotCi0vKgotICogQ2FsY3VsYXRlIHRoZSBuZXh0IGFsYXJtIHRpbWUgZ2l2ZW4gdGhlIHJlcXVlc3RlZCBhbGFybSB0aW1lIG1hc2sKLSAqIGFuZCB0aGUgY3VycmVudCB0aW1lLgotICovCi12b2lkIHJ0Y19uZXh0X2FsYXJtX3RpbWUoc3RydWN0IHJ0Y190aW1lICpuZXh0LCBzdHJ1Y3QgcnRjX3RpbWUgKm5vdywgc3RydWN0IHJ0Y190aW1lICphbHJtKQotewotCXVuc2lnbmVkIGxvbmcgbmV4dF90aW1lOwotCXVuc2lnbmVkIGxvbmcgbm93X3RpbWU7Ci0KLQluZXh0LT50bV95ZWFyID0gbm93LT50bV95ZWFyOwotCW5leHQtPnRtX21vbiA9IG5vdy0+dG1fbW9uOwotCW5leHQtPnRtX21kYXkgPSBub3ctPnRtX21kYXk7Ci0JbmV4dC0+dG1faG91ciA9IGFscm0tPnRtX2hvdXI7Ci0JbmV4dC0+dG1fbWluID0gYWxybS0+dG1fbWluOwotCW5leHQtPnRtX3NlYyA9IGFscm0tPnRtX3NlYzsKLQotCXJ0Y190bV90b190aW1lKG5vdywgJm5vd190aW1lKTsKLQlydGNfdG1fdG9fdGltZShuZXh0LCAmbmV4dF90aW1lKTsKLQotCWlmIChuZXh0X3RpbWUgPCBub3dfdGltZSkgewotCQkvKiBBZHZhbmNlIG9uZSBkYXkgKi8KLQkJbmV4dF90aW1lICs9IDYwICogNjAgKiAyNDsKLQkJcnRjX3RpbWVfdG9fdG0obmV4dF90aW1lLCBuZXh0KTsKLQl9Ci19Ci1FWFBPUlRfU1lNQk9MKHJ0Y19uZXh0X2FsYXJtX3RpbWUpOwotCi1zdGF0aWMgaW5saW5lIGludCBydGNfYXJtX3JlYWRfdGltZShzdHJ1Y3QgcnRjX29wcyAqb3BzLCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQotewotCW1lbXNldCh0bSwgMCwgc2l6ZW9mKHN0cnVjdCBydGNfdGltZSkpOwotCXJldHVybiBvcHMtPnJlYWRfdGltZSh0bSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHJ0Y19hcm1fc2V0X3RpbWUoc3RydWN0IHJ0Y19vcHMgKm9wcywgc3RydWN0IHJ0Y190aW1lICp0bSkKLXsKLQlpbnQgcmV0OwotCi0JcmV0ID0gcnRjX3ZhbGlkX3RtKHRtKTsKLQlpZiAocmV0ID09IDApCi0JCXJldCA9IG9wcy0+c2V0X3RpbWUodG0pOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgcnRjX2FybV9yZWFkX2FsYXJtKHN0cnVjdCBydGNfb3BzICpvcHMsIHN0cnVjdCBydGNfd2thbHJtICphbHJtKQotewotCWludCByZXQgPSAtRUlOVkFMOwotCWlmIChvcHMtPnJlYWRfYWxhcm0pIHsKLQkJbWVtc2V0KGFscm0sIDAsIHNpemVvZihzdHJ1Y3QgcnRjX3drYWxybSkpOwotCQlyZXQgPSBvcHMtPnJlYWRfYWxhcm0oYWxybSk7Ci0JfQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHJ0Y19hcm1fc2V0X2FsYXJtKHN0cnVjdCBydGNfb3BzICpvcHMsIHN0cnVjdCBydGNfd2thbHJtICphbHJtKQotewotCWludCByZXQgPSAtRUlOVkFMOwotCWlmIChvcHMtPnNldF9hbGFybSkKLQkJcmV0ID0gb3BzLT5zZXRfYWxhcm0oYWxybSk7Ci0JcmV0dXJuIHJldDsKLX0KLQotdm9pZCBydGNfdXBkYXRlKHVuc2lnbmVkIGxvbmcgbnVtLCB1bnNpZ25lZCBsb25nIGV2ZW50cykKLXsKLQlzcGluX2xvY2soJnJ0Y19sb2NrKTsKLQlydGNfaXJxX2RhdGEgPSAocnRjX2lycV9kYXRhICsgKG51bSA8PCA4KSkgfCBldmVudHM7Ci0Jc3Bpbl91bmxvY2soJnJ0Y19sb2NrKTsKLQotCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmcnRjX3dhaXQpOwotCWtpbGxfZmFzeW5jKCZydGNfYXN5bmNfcXVldWUsIFNJR0lPLCBQT0xMX0lOKTsKLX0KLUVYUE9SVF9TWU1CT0wocnRjX3VwZGF0ZSk7Ci0KLQotc3RhdGljIHNzaXplX3QKLXJ0Y19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKLXsKLQlERUNMQVJFX1dBSVRRVUVVRSh3YWl0LCBjdXJyZW50KTsKLQl1bnNpZ25lZCBsb25nIGRhdGE7Ci0Jc3NpemVfdCByZXQ7Ci0KLQlpZiAoY291bnQgPCBzaXplb2YodW5zaWduZWQgbG9uZykpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JYWRkX3dhaXRfcXVldWUoJnJ0Y193YWl0LCAmd2FpdCk7Ci0JZG8gewotCQlfX3NldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7Ci0KLQkJc3Bpbl9sb2NrX2lycSgmcnRjX2xvY2spOwotCQlkYXRhID0gcnRjX2lycV9kYXRhOwotCQlydGNfaXJxX2RhdGEgPSAwOwotCQlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKLQotCQlpZiAoZGF0YSAhPSAwKSB7Ci0JCQlyZXQgPSAwOwotCQkJYnJlYWs7Ci0JCX0KLQkJaWYgKGZpbGUtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSB7Ci0JCQlyZXQgPSAtRUFHQUlOOwotCQkJYnJlYWs7Ci0JCX0KLQkJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7Ci0JCQlyZXQgPSAtRVJFU1RBUlRTWVM7Ci0JCQlicmVhazsKLQkJfQotCQlzY2hlZHVsZSgpOwotCX0gd2hpbGUgKDEpOwotCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7Ci0JcmVtb3ZlX3dhaXRfcXVldWUoJnJ0Y193YWl0LCAmd2FpdCk7Ci0KLQlpZiAocmV0ID09IDApIHsKLQkJcmV0ID0gcHV0X3VzZXIoZGF0YSwgKHVuc2lnbmVkIGxvbmcgX191c2VyICopYnVmKTsKLQkJaWYgKHJldCA9PSAwKQotCQkJcmV0ID0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOwotCX0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdW5zaWduZWQgaW50IHJ0Y19wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQotewotCXVuc2lnbmVkIGxvbmcgZGF0YTsKLQotCXBvbGxfd2FpdChmaWxlLCAmcnRjX3dhaXQsIHdhaXQpOwotCi0Jc3Bpbl9sb2NrX2lycSgmcnRjX2xvY2spOwotCWRhdGEgPSBydGNfaXJxX2RhdGE7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZydGNfbG9jayk7Ci0KLQlyZXR1cm4gZGF0YSAhPSAwID8gUE9MTElOIHwgUE9MTFJETk9STSA6IDA7Ci19Ci0KLXN0YXRpYyBpbnQgcnRjX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAotCQkgICAgIHVuc2lnbmVkIGxvbmcgYXJnKQotewotCXN0cnVjdCBydGNfb3BzICpvcHMgPSBmaWxlLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHJ0Y190aW1lIHRtOwotCXN0cnVjdCBydGNfd2thbHJtIGFscm07Ci0Jdm9pZCBfX3VzZXIgKnVhcmcgPSAodm9pZCBfX3VzZXIgKilhcmc7Ci0JaW50IHJldCA9IC1FSU5WQUw7Ci0KLQlzd2l0Y2ggKGNtZCkgewotCWNhc2UgUlRDX0FMTV9SRUFEOgotCQlyZXQgPSBydGNfYXJtX3JlYWRfYWxhcm0ob3BzLCAmYWxybSk7Ci0JCWlmIChyZXQpCi0JCQlicmVhazsKLQkJcmV0ID0gY29weV90b191c2VyKHVhcmcsICZhbHJtLnRpbWUsIHNpemVvZih0bSkpOwotCQlpZiAocmV0KQotCQkJcmV0ID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0KLQljYXNlIFJUQ19BTE1fU0VUOgotCQlyZXQgPSBjb3B5X2Zyb21fdXNlcigmYWxybS50aW1lLCB1YXJnLCBzaXplb2YodG0pKTsKLQkJaWYgKHJldCkgewotCQkJcmV0ID0gLUVGQVVMVDsKLQkJCWJyZWFrOwotCQl9Ci0JCWFscm0uZW5hYmxlZCA9IDA7Ci0JCWFscm0ucGVuZGluZyA9IDA7Ci0JCWFscm0udGltZS50bV9tZGF5ID0gLTE7Ci0JCWFscm0udGltZS50bV9tb24gPSAtMTsKLQkJYWxybS50aW1lLnRtX3llYXIgPSAtMTsKLQkJYWxybS50aW1lLnRtX3dkYXkgPSAtMTsKLQkJYWxybS50aW1lLnRtX3lkYXkgPSAtMTsKLQkJYWxybS50aW1lLnRtX2lzZHN0ID0gLTE7Ci0JCXJldCA9IHJ0Y19hcm1fc2V0X2FsYXJtKG9wcywgJmFscm0pOwotCQlicmVhazsKLQotCWNhc2UgUlRDX1JEX1RJTUU6Ci0JCXJldCA9IHJ0Y19hcm1fcmVhZF90aW1lKG9wcywgJnRtKTsKLQkJaWYgKHJldCkKLQkJCWJyZWFrOwotCQlyZXQgPSBjb3B5X3RvX3VzZXIodWFyZywgJnRtLCBzaXplb2YodG0pKTsKLQkJaWYgKHJldCkKLQkJCXJldCA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCi0JY2FzZSBSVENfU0VUX1RJTUU6Ci0JCWlmICghY2FwYWJsZShDQVBfU1lTX1RJTUUpKSB7Ci0JCQlyZXQgPSAtRUFDQ0VTOwotCQkJYnJlYWs7Ci0JCX0KLQkJcmV0ID0gY29weV9mcm9tX3VzZXIoJnRtLCB1YXJnLCBzaXplb2YodG0pKTsKLQkJaWYgKHJldCkgewotCQkJcmV0ID0gLUVGQVVMVDsKLQkJCWJyZWFrOwotCQl9Ci0JCXJldCA9IHJ0Y19hcm1fc2V0X3RpbWUob3BzLCAmdG0pOwotCQlicmVhazsKLQotCWNhc2UgUlRDX0VQT0NIX1NFVDoKLSNpZm5kZWYgcnRjX2Vwb2NoCi0JCS8qCi0JCSAqIFRoZXJlIHdlcmUgbm8gUlRDIGNsb2NrcyBiZWZvcmUgMTkwMC4KLQkJICovCi0JCWlmIChhcmcgPCAxOTAwKSB7Ci0JCQlyZXQgPSAtRUlOVkFMOwotCQkJYnJlYWs7Ci0JCX0KLQkJaWYgKCFjYXBhYmxlKENBUF9TWVNfVElNRSkpIHsKLQkJCXJldCA9IC1FQUNDRVM7Ci0JCQlicmVhazsKLQkJfQotCQlydGNfZXBvY2ggPSBhcmc7Ci0JCXJldCA9IDA7Ci0jZW5kaWYKLQkJYnJlYWs7Ci0KLQljYXNlIFJUQ19FUE9DSF9SRUFEOgotCQlyZXQgPSBwdXRfdXNlcihydGNfZXBvY2gsICh1bnNpZ25lZCBsb25nIF9fdXNlciAqKXVhcmcpOwotCQlicmVhazsKLQotCWNhc2UgUlRDX1dLQUxNX1NFVDoKLQkJcmV0ID0gY29weV9mcm9tX3VzZXIoJmFscm0sIHVhcmcsIHNpemVvZihhbHJtKSk7Ci0JCWlmIChyZXQpIHsKLQkJCXJldCA9IC1FRkFVTFQ7Ci0JCQlicmVhazsKLQkJfQotCQlyZXQgPSBydGNfYXJtX3NldF9hbGFybShvcHMsICZhbHJtKTsKLQkJYnJlYWs7Ci0KLQljYXNlIFJUQ19XS0FMTV9SRDoKLQkJcmV0ID0gcnRjX2FybV9yZWFkX2FsYXJtKG9wcywgJmFscm0pOwotCQlpZiAocmV0KQotCQkJYnJlYWs7Ci0JCXJldCA9IGNvcHlfdG9fdXNlcih1YXJnLCAmYWxybSwgc2l6ZW9mKGFscm0pKTsKLQkJaWYgKHJldCkKLQkJCXJldCA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCi0JZGVmYXVsdDoKLQkJaWYgKG9wcy0+aW9jdGwpCi0JCQlyZXQgPSBvcHMtPmlvY3RsKGNtZCwgYXJnKTsKLQkJYnJlYWs7Ci0JfQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JaW50IHJldDsKLQotCW11dGV4X2xvY2soJnJ0Y19tdXRleCk7Ci0KLQlpZiAocnRjX2ludXNlKSB7Ci0JCXJldCA9IC1FQlVTWTsKLQl9IGVsc2UgaWYgKCFydGNfb3BzIHx8ICF0cnlfbW9kdWxlX2dldChydGNfb3BzLT5vd25lcikpIHsKLQkJcmV0ID0gLUVOT0RFVjsKLQl9IGVsc2UgewotCQlmaWxlLT5wcml2YXRlX2RhdGEgPSBydGNfb3BzOwotCi0JCXJldCA9IHJ0Y19vcHMtPm9wZW4gPyBydGNfb3BzLT5vcGVuKCkgOiAwOwotCQlpZiAocmV0ID09IDApIHsKLQkJCXNwaW5fbG9ja19pcnEoJnJ0Y19sb2NrKTsKLQkJCXJ0Y19pcnFfZGF0YSA9IDA7Ci0JCQlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKLQotCQkJcnRjX2ludXNlID0gMTsKLQkJfQotCX0KLQltdXRleF91bmxvY2soJnJ0Y19tdXRleCk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IHJ0Y19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQotewotCXN0cnVjdCBydGNfb3BzICpvcHMgPSBmaWxlLT5wcml2YXRlX2RhdGE7Ci0KLQlpZiAob3BzLT5yZWxlYXNlKQotCQlvcHMtPnJlbGVhc2UoKTsKLQotCXNwaW5fbG9ja19pcnEoJnJ0Y19sb2NrKTsKLQlydGNfaXJxX2RhdGEgPSAwOwotCXNwaW5fdW5sb2NrX2lycSgmcnRjX2xvY2spOwotCi0JbW9kdWxlX3B1dChydGNfb3BzLT5vd25lcik7Ci0JcnRjX2ludXNlID0gMDsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJ0Y19mYXN5bmMoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG9uKQotewotCXJldHVybiBmYXN5bmNfaGVscGVyKGZkLCBmaWxlLCBvbiwgJnJ0Y19hc3luY19xdWV1ZSk7Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJ0Y19mb3BzID0gewotCS5vd25lcgkJPSBUSElTX01PRFVMRSwKLQkubGxzZWVrCQk9IG5vX2xsc2VlaywKLQkucmVhZAkJPSBydGNfcmVhZCwKLQkucG9sbAkJPSBydGNfcG9sbCwKLQkuaW9jdGwJCT0gcnRjX2lvY3RsLAotCS5vcGVuCQk9IHJ0Y19vcGVuLAotCS5yZWxlYXNlCT0gcnRjX3JlbGVhc2UsCi0JLmZhc3luYwkJPSBydGNfZmFzeW5jLAotfTsKLQotc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIHJ0Y19taXNjZGV2ID0gewotCS5taW5vcgkJPSBSVENfTUlOT1IsCi0JLm5hbWUJCT0gInJ0YyIsCi0JLmZvcHMJCT0gJnJ0Y19mb3BzLAotfTsKLQotCi1zdGF0aWMgaW50IHJ0Y19yZWFkX3Byb2MoY2hhciAqcGFnZSwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmYsIGludCBjb3VudCwgaW50ICplb2YsIHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IHJ0Y19vcHMgKm9wcyA9IGRhdGE7Ci0Jc3RydWN0IHJ0Y193a2Fscm0gYWxybTsKLQlzdHJ1Y3QgcnRjX3RpbWUgdG07Ci0JY2hhciAqcCA9IHBhZ2U7Ci0KLQlpZiAocnRjX2FybV9yZWFkX3RpbWUob3BzLCAmdG0pID09IDApIHsKLQkJcCArPSBzcHJpbnRmKHAsCi0JCQkicnRjX3RpbWVcdDogJTAyZDolMDJkOiUwMmRcbiIKLQkJCSJydGNfZGF0ZVx0OiAlMDRkLSUwMmQtJTAyZFxuIgotCQkJInJ0Y19lcG9jaFx0OiAlMDRsdVxuIiwKLQkJCXRtLnRtX2hvdXIsIHRtLnRtX21pbiwgdG0udG1fc2VjLAotCQkJdG0udG1feWVhciArIDE5MDAsIHRtLnRtX21vbiArIDEsIHRtLnRtX21kYXksCi0JCQlydGNfZXBvY2gpOwotCX0KLQotCWlmIChydGNfYXJtX3JlYWRfYWxhcm0ob3BzLCAmYWxybSkgPT0gMCkgewotCQlwICs9IHNwcmludGYocCwgImFscm1fdGltZVx0OiAiKTsKLQkJaWYgKCh1bnNpZ25lZCBpbnQpYWxybS50aW1lLnRtX2hvdXIgPD0gMjQpCi0JCQlwICs9IHNwcmludGYocCwgIiUwMmQ6IiwgYWxybS50aW1lLnRtX2hvdXIpOwotCQllbHNlCi0JCQlwICs9IHNwcmludGYocCwgIioqOiIpOwotCQlpZiAoKHVuc2lnbmVkIGludClhbHJtLnRpbWUudG1fbWluIDw9IDU5KQotCQkJcCArPSBzcHJpbnRmKHAsICIlMDJkOiIsIGFscm0udGltZS50bV9taW4pOwotCQllbHNlCi0JCQlwICs9IHNwcmludGYocCwgIioqOiIpOwotCQlpZiAoKHVuc2lnbmVkIGludClhbHJtLnRpbWUudG1fc2VjIDw9IDU5KQotCQkJcCArPSBzcHJpbnRmKHAsICIlMDJkXG4iLCBhbHJtLnRpbWUudG1fc2VjKTsKLQkJZWxzZQotCQkJcCArPSBzcHJpbnRmKHAsICIqKlxuIik7Ci0KLQkJcCArPSBzcHJpbnRmKHAsICJhbHJtX2RhdGVcdDogIik7Ci0JCWlmICgodW5zaWduZWQgaW50KWFscm0udGltZS50bV95ZWFyIDw9IDIwMCkKLQkJCXAgKz0gc3ByaW50ZihwLCAiJTA0ZC0iLCBhbHJtLnRpbWUudG1feWVhciArIDE5MDApOwotCQllbHNlCi0JCQlwICs9IHNwcmludGYocCwgIioqKiotIik7Ci0JCWlmICgodW5zaWduZWQgaW50KWFscm0udGltZS50bV9tb24gPD0gMTEpCi0JCQlwICs9IHNwcmludGYocCwgIiUwMmQtIiwgYWxybS50aW1lLnRtX21vbiArIDEpOwotCQllbHNlCi0JCQlwICs9IHNwcmludGYocCwgIioqLSIpOwotCQlpZiAoKHVuc2lnbmVkIGludClhbHJtLnRpbWUudG1fbWRheSA8PSAzMSkKLQkJCXAgKz0gc3ByaW50ZihwLCAiJTAyZFxuIiwgYWxybS50aW1lLnRtX21kYXkpOwotCQllbHNlCi0JCQlwICs9IHNwcmludGYocCwgIioqXG4iKTsKLQkJcCArPSBzcHJpbnRmKHAsICJhbHJtX3dha2V1cFx0OiAlc1xuIiwKLQkJCSAgICAgYWxybS5lbmFibGVkID8gInllcyIgOiAibm8iKTsKLQkJcCArPSBzcHJpbnRmKHAsICJhbHJtX3BlbmRpbmdcdDogJXNcbiIsCi0JCQkgICAgIGFscm0ucGVuZGluZyA/ICJ5ZXMiIDogIm5vIik7Ci0JfQotCi0JaWYgKG9wcy0+cHJvYykKLQkJcCArPSBvcHMtPnByb2MocCk7Ci0KLQlyZXR1cm4gcCAtIHBhZ2U7Ci19Ci0KLWludCByZWdpc3Rlcl9ydGMoc3RydWN0IHJ0Y19vcHMgKm9wcykKLXsKLQlpbnQgcmV0ID0gLUVCVVNZOwotCi0JbXV0ZXhfbG9jaygmcnRjX211dGV4KTsKLQlpZiAocnRjX29wcyA9PSBOVUxMKSB7Ci0JCXJ0Y19vcHMgPSBvcHM7Ci0KLQkJcmV0ID0gbWlzY19yZWdpc3RlcigmcnRjX21pc2NkZXYpOwotCQlpZiAocmV0ID09IDApCi0JCQljcmVhdGVfcHJvY19yZWFkX2VudHJ5KCJkcml2ZXIvcnRjIiwgMCwgTlVMTCwKLQkJCQkJICAgICAgIHJ0Y19yZWFkX3Byb2MsIG9wcyk7Ci0JfQotCW11dGV4X3VubG9jaygmcnRjX211dGV4KTsKLQotCXJldHVybiByZXQ7Ci19Ci1FWFBPUlRfU1lNQk9MKHJlZ2lzdGVyX3J0Yyk7Ci0KLXZvaWQgdW5yZWdpc3Rlcl9ydGMoc3RydWN0IHJ0Y19vcHMgKnJ0YykKLXsKLQltdXRleF9sb2NrKCZydGNfbXV0ZXgpOwotCWlmIChydGMgPT0gcnRjX29wcykgewotCQlyZW1vdmVfcHJvY19lbnRyeSgiZHJpdmVyL3J0YyIsIE5VTEwpOwotCQltaXNjX2RlcmVnaXN0ZXIoJnJ0Y19taXNjZGV2KTsKLQkJcnRjX29wcyA9IE5VTEw7Ci0JfQotCW11dGV4X3VubG9jaygmcnRjX211dGV4KTsKLX0KLUVYUE9SVF9TWU1CT0wodW5yZWdpc3Rlcl9ydGMpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29tbW9uL3NoYXJwc2xfcG0uYyBiL2FyY2gvYXJtL2NvbW1vbi9zaGFycHNsX3BtLmMKaW5kZXggNWJiYTUyNS4uODgyMmI2OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29tbW9uL3NoYXJwc2xfcG0uYworKysgYi9hcmNoL2FybS9jb21tb24vc2hhcnBzbF9wbS5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3BtLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3NoYXJwc2wuaD4KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUvc2hhcnBzbF9wbS5oPgogCkBAIC0xNTcsNiArMTU4LDcgQEAKIAlkZXZfZGJnKHNoYXJwc2xfcG0uZGV2LCAiQmF0dGVyeTogdm9sdGFnZTogJWQsIHN0YXR1czogJWQsIHBlcmNlbnRhZ2U6ICVkLCB0aW1lOiAlbGRcbiIsIHZvbHRhZ2UsCiAJCQlzaGFycHNsX3BtLmJhdHRzdGF0Lm1haW5iYXRfc3RhdHVzLCBzaGFycHNsX3BtLmJhdHRzdGF0Lm1haW5iYXRfcGVyY2VudCwgamlmZmllcyk7CiAKKyNpZmRlZiBDT05GSUdfQkFDS0xJR0hUX0NPUkdJCiAJLyogSWYgYmF0dGVyeSBpcyBsb3cuIGxpbWl0IGJhY2tsaWdodCBpbnRlbnNpdHkgdG8gc2F2ZSBwb3dlci4gKi8KIAlpZiAoKHNoYXJwc2xfcG0uYmF0dHN0YXQuYWNfc3RhdHVzICE9IEFQTV9BQ19PTkxJTkUpCiAJCQkmJiAoKHNoYXJwc2xfcG0uYmF0dHN0YXQubWFpbmJhdF9zdGF0dXMgPT0gQVBNX0JBVFRFUllfU1RBVFVTX0xPVykgfHwKQEAgLTE2OSw2ICsxNzEsNyBAQAogCQlzaGFycHNsX3BtLm1hY2hpbmZvLT5iYWNrbGlnaHRfbGltaXQoMCk7CiAJCXNoYXJwc2xfcG0uZmxhZ3MgJj0gflNIQVJQU0xfQkxfTElNSVQ7CiAJfQorI2VuZGlmCiAKIAkvKiBTdXNwZW5kIGlmIGNyaXRpY2FsIGJhdHRlcnkgbGV2ZWwgKi8KIAlpZiAoKHNoYXJwc2xfcG0uYmF0dHN0YXQuYWNfc3RhdHVzICE9IEFQTV9BQ19PTkxJTkUpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2F0OTFjYXA5YWRrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MWNhcDlhZGtfZGVmY29uZmlnCmluZGV4IGUzMmU3MzYuLmJlMmIyZjMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MWNhcDlhZGtfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MWNhcDlhZGtfZGVmY29uZmlnCkBAIC0yMTMsNyArMjEzLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogQ09ORklHX0FFQUJJPXkKIENPTkZJR19PQUJJX0NPTVBBVD15CkBAIC05MDcsNyArOTA2LDMyIEBACiAjCiAjIFVTQiBHYWRnZXQgU3VwcG9ydAogIwotIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVD15CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfU0VMRUNURUQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUX0FUTUVMX1VTQkE9eQorQ09ORklHX1VTQl9BVE1FTF9VU0JBPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfRlNMX1VTQjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9ORVQyMjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfUFhBMlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTTY2NTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfR09LVSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9EVU1NWV9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfRFVBTFNQRUVEPXkKKyMgQ09ORklHX1VTQl9aRVJPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRVRIPW0KK0NPTkZJR19VU0JfRVRIX1JORElTPXkKKyMgQ09ORklHX1VTQl9HQURHRVRGUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0ZJTEVfU1RPUkFHRT1tCisjIENPTkZJR19VU0JfRklMRV9TVE9SQUdFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dfU0VSSUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSURJX0dBREdFVCBpcyBub3Qgc2V0CiBDT05GSUdfTU1DPXkKICMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUNfVU5TQUZFX1JFU1VNRSBpcyBub3Qgc2V0CkBAIC05MjYsNyArOTUwLDU5IEBACiAjIENPTkZJR19NTUNfU1BJIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKLSMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0NMQVNTPXkKK0NPTkZJR19SVENfSENUT1NZUz15CitDT05GSUdfUlRDX0hDVE9TWVNfREVWSUNFPSJydGMwIgorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBSVEMgaW50ZXJmYWNlcworIworQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1gxMjA1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1ODMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDFUODAgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUjk3MDEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzQ4IGlzIG5vdCBzZXQKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9BVDkxU0FNOT15CitDT05GSUdfUlRDX0RSVl9BVDkxU0FNOV9SVFQ9MAorQ09ORklHX1JUQ19EUlZfQVQ5MVNBTTlfR1BCUj0wCiAKICMKICMgRmlsZSBzeXN0ZW1zCmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2F0OTFybTkyMDBka19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2F0OTFybTkyMDBka19kZWZjb25maWcKaW5kZXggMmRiYmJjMy4uODY4ZmI3YiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdDkxcm05MjAwZGtfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXJtOTIwMGRrX2RlZmNvbmZpZwpAQCAtMTY5LDcgKzE2OSw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9hdDkxcm05MjAwZWtfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxcm05MjAwZWtfZGVmY29uZmlnCmluZGV4IDZlOTk0ZjcuLmRlNDNmYzYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXJtOTIwMGVrX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2F0OTFybTkyMDBla19kZWZjb25maWcKQEAgLTE2MCw3ICsxNjAsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAogQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQogQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjBla19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYwZWtfZGVmY29uZmlnCmluZGV4IGY2NTljOTMuLjIwMTFhZGYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjBla19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2MGVrX2RlZmNvbmZpZwpAQCAtMjIwLDcgKzIyMCw2IEBACiAjCiAjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYxZWtfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2MWVrX2RlZmNvbmZpZwppbmRleCAzODAyZTg1Li40MDQ5NzY4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYxZWtfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjFla19kZWZjb25maWcKQEAgLTIxMyw3ICsyMTMsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2M2VrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjNla19kZWZjb25maWcKaW5kZXggMzJhMGQ3NC4uZmExYzVhZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2M2VrX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYzZWtfZGVmY29uZmlnCkBAIC0yMTMsNyArMjEzLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlnMjBla19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05ZzIwZWtfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwNjg2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05ZzIwZWtfZGVmY29uZmlnCkBAIC0wLDAgKzEsMTE2OCBAQAorIworIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI0CisjIFR1ZSBKdW4gMTAgMTU6NTE6NTIgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorQ09ORklHX0dFTkVSSUNfR1BJTz15CitDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19NTVU9eQorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19aT05FX0RNQT15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCitDT05GSUdfTE9DQUxWRVJTSU9OPSIiCisjIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0CisjIENPTkZJR19TV0FQIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CisjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19QSURfTlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorIyBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQorQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CitDT05GSUdfU1lTQ1RMPXkKKyMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CitDT05GSUdfU0xBQklORk89eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CitDT05GSUdfS01PRD15CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKK0NPTkZJR19JT1NDSEVEX0FTPXkKKyMgQ09ORklHX0lPU0NIRURfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfSU9TQ0hFRF9DRlEgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQVM9eQorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0FUOTE9eQorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVhDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworCisjCisjIEF0bWVsIEFUOTEgU3lzdGVtLW9uLUNoaXAKKyMKKyMgQ09ORklHX0FSQ0hfQVQ5MVJNOTIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05UkwgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MVNBTTlHMjA9eQorIyBDT05GSUdfQVJDSF9BVDkxQ0FQOSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFYNDAgaXMgbm90IHNldAorQ09ORklHX0FUOTFfUE1DX1VOSVQ9eQorCisjCisjIEFUOTFTQU05RzIwIEJvYXJkIFR5cGUKKyMKK0NPTkZJR19NQUNIX0FUOTFTQU05RzIwRUs9eQorCisjCisjIEFUOTEgQm9hcmQgT3B0aW9ucworIworIyBDT05GSUdfTVREX0FUOTFfREFUQUZMQVNIX0NBUkQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfQVQ5MV9CVVNXSURUSF8xNiBpcyBub3Qgc2V0CisKKyMKKyMgQVQ5MSBGZWF0dXJlIFNlbGVjdGlvbnMKKyMKK0NPTkZJR19BVDkxX1BST0dSQU1NQUJMRV9DTE9DS1M9eQorIyBDT05GSUdfQVQ5MV9TTE9XX0NMT0NLIGlzIG5vdCBzZXQKK0NPTkZJR19BVDkxX1RJTUVSX0haPTEwMAorQ09ORklHX0FUOTFfRUFSTFlfREJHVT15CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMCBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMSBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMiBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMyBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNCBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNSBpcyBub3Qgc2V0CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9BUk05MjZUPXkKK0NPTkZJR19DUFVfMzJ2NT15CitDT05GSUdfQ1BVX0FCUlRfRVY1VEo9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9WNFdCPXkKK0NPTkZJR19DUFVfVExCX1Y0V0JJPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKKyMgQ09ORklHX0FSTV9USFVNQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9DQUNIRV9ST1VORF9ST0JJTiBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCisjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAorIyBDT05GSUdfTk9fSFogaXMgbm90IHNldAorIyBDT05GSUdfSElHSF9SRVNfVElNRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKKyMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAorQ09ORklHX0haPTEwMAorQ09ORklHX0FFQUJJPXkKK0NPTkZJR19PQUJJX0NPTVBBVD15CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfTEVEUz15CitDT05GSUdfTEVEU19DUFU9eQorQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKK0NPTkZJR19aQk9PVF9ST01fQlNTPTB4MAorQ09ORklHX0NNRExJTkU9Im1lbT02NE0gY29uc29sZT10dHlTMCwxMTUyMDAgaW5pdHJkPTB4MjExMDAwMDAsMzE0NTcyOCByb290PS9kZXYvcmFtMCBydyIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX0ZQRV9OV0ZQRT15CisjIENPTkZJR19GUEVfTldGUEVfWFAgaXMgbm90IHNldAorIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAorIyBDT05GSUdfVkZQIGlzIG5vdCBzZXQKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19QTT15CisjIENPTkZJR19QTV9MRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BNX1NMRUVQPXkKK0NPTkZJR19TVVNQRU5EX1VQX1BPU1NJQkxFPXkKK0NPTkZJR19TVVNQRU5EPXkKKyMgQ09ORklHX0FQTV9FTVVMQVRJT04gaXMgbm90IHNldAorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfVU5JWD15CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKKyMgQ09ORklHX0lQX01VTFRJQ0FTVCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorQ09ORklHX0lQX1BOUF9CT09UUD15CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX0RJQUc9eQorQ09ORklHX0lORVRfVENQX0RJQUc9eQorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCisjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKKyMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorQ09ORklHX01URF9DT05DQVQ9eQorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCisjIENPTkZJR19NVERfQ0ZJIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80PXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorQ09ORklHX01URF9DRklfSTI9eQorIyBDT05GSUdfTVREX0NGSV9JNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKKworIworIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCisjIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCitDT05GSUdfTVREX0RBVEFGTEFTSD15CisjIENPTkZJR19NVERfTTI1UDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorIyBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0VDQ19TTUMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTVVTRVVNX0lEUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfSURTPXkKKyMgQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVAgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0FUOTE9eQorQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX1NPRlQ9eQorIyBDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfSFcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfTk9ORSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9OQU5EU0lNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAorCisjCisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcworIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9MT09QPXkKKyMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX1JBTT15CitDT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKK0NPTkZJR19CTEtfREVWX1JBTV9TSVpFPTgxOTIKK0NPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorQ09ORklHX01JU0NfREVWSUNFUz15CitDT05GSUdfQVRNRUxfUFdNPXkKKyMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CitDT05GSUdfQVRNRUxfU1NDPXkKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1IgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TRyBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCitDT05GSUdfU0NTSV9NVUxUSV9MVU49eQorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPV0xFVkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CitDT05GSUdfUEhZTElCPXkKKworIworIyBNSUkgUEhZIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NQVJWRUxMX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19EQVZJQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19RU0VNSV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTFhUX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19DSUNBREFfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJVEVTU0VfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNU0NfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19JQ1BMVVNfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZJWEVEX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19NRElPX0JJVEJBTkcgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKK0NPTkZJR19NQUNCPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorCisjCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCisjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworQ09ORklHX0lOUFVUX01PVVNFREVWPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0zMjAKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT0yNDAKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAorCisjCisjIElucHV0IERldmljZSBEcml2ZXJzCisjCitDT05GSUdfSU5QVVRfS0VZQk9BUkQ9eQorIyBDT05GSUdfS0VZQk9BUkRfQVRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1VOS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX0xLS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX05FV1RPTiBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVE9XQVdBWSBpcyBub3Qgc2V0CitDT05GSUdfS0VZQk9BUkRfR1BJTz15CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCitDT05GSUdfU0VSSU89eQorQ09ORklHX1NFUklPX1NFUlBPUlQ9eQorIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9BVE1FTD15CitDT05GSUdfU0VSSUFMX0FUTUVMX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMX0FUTUVMX1RUWUFUIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CitDT05GSUdfVU5JWDk4X1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTE2CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorQ09ORklHX0hXX1JBTkRPTT15CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKKworIworIyBTUEkgc3VwcG9ydAorIworQ09ORklHX1NQST15CitDT05GSUdfU1BJX01BU1RFUj15CisKKyMKKyMgU1BJIE1hc3RlciBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19TUElfQVRNRUw9eQorIyBDT05GSUdfU1BJX0JJVEJBTkcgaXMgbm90IHNldAorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CitDT05GSUdfU1BJX1NQSURFVj15CisjIENPTkZJR19TUElfVExFNjJYMCBpcyBub3Qgc2V0CisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkZXZpY2VzCisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CisKKyMKKyMgU291bmQKKyMKK0NPTkZJR19TT1VORD15CisKKyMKKyMgQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlCisjCitDT05GSUdfU05EPXkKK0NPTkZJR19TTkRfVElNRVI9eQorQ09ORklHX1NORF9QQ009eQorQ09ORklHX1NORF9TRVFVRU5DRVI9eQorIyBDT05GSUdfU05EX1NFUV9EVU1NWSBpcyBub3Qgc2V0CitDT05GSUdfU05EX09TU0VNVUw9eQorQ09ORklHX1NORF9NSVhFUl9PU1M9eQorQ09ORklHX1NORF9QQ01fT1NTPXkKK0NPTkZJR19TTkRfUENNX09TU19QTFVHSU5TPXkKK0NPTkZJR19TTkRfU0VRVUVOQ0VSX09TUz15CisjIENPTkZJR19TTkRfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQorIyBDT05GSUdfU05EX1ZFUkJPU0VfUFJPQ0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WRVJCT1NFX1BSSU5USyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREVCVUcgaXMgbm90IHNldAorCisjCisjIEdlbmVyaWMgZGV2aWNlcworIworIyBDT05GSUdfU05EX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSVJNSURJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NVFBBViBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU0VSSUFMX1UxNjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTVBVNDAxIGlzIG5vdCBzZXQKKworIworIyBBTFNBIEFSTSBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfQVQ5MV9BQzk3IGlzIG5vdCBzZXQKKworIworIyBTUEkgZGV2aWNlcworIworQ09ORklHX1NORF9BVDczQzIxMz15CitDT05GSUdfU05EX0FUNzNDMjEzX1RBUkdFVF9CSVRSQVRFPTQ4MDAwCisKKyMKKyMgVVNCIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9VU0JfQVVESU8gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1VTQl9DQUlBUSBpcyBub3Qgc2V0CisKKyMKKyMgU3lzdGVtIG9uIENoaXAgYXVkaW8gc3VwcG9ydAorIworIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0CisKKyMKKyMgU29DIEF1ZGlvIHN1cHBvcnQgZm9yIFN1cGVySAorIworCisjCisjIE9wZW4gU291bmQgU3lzdGVtCisjCisjIENPTkZJR19TT1VORF9QUklNRSBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworQ09ORklHX1VTQl9ISUQ9eQorIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfRkYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKKyMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKK0NPTkZJR19VU0I9eQorIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCitDT05GSUdfVVNCX0RFVklDRUZTPXkKKyMgQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9IQ0Q9eQorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX01PTj15CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworCisjCisjIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERTTCBtb2RlbSBzdXBwb3J0CisjCisKKyMKKyMgVVNCIEdhZGdldCBTdXBwb3J0CisjCitDT05GSUdfVVNCX0dBREdFVD15CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUX1NFTEVDVEVEPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfQU1ENTUzNlVEQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0FUTUVMX1VTQkEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9GU0xfVVNCMiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX05FVDIyODAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9TM0MyNDEwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUX0FUOTE9eQorQ09ORklHX1VTQl9BVDkxPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfRFVNTVlfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfRFVBTFNQRUVEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfWkVSTz1tCisjIENPTkZJR19VU0JfRVRIIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VURlM9bQorQ09ORklHX1VTQl9GSUxFX1NUT1JBR0U9bQorIyBDT05GSUdfVVNCX0ZJTEVfU1RPUkFHRV9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR19TRVJJQUw9bQorIyBDT05GSUdfVVNCX01JRElfR0FER0VUIGlzIG5vdCBzZXQKK0NPTkZJR19NTUM9eQorIyBDT05GSUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQ19VTlNBRkVfUkVTVU1FIGlzIG5vdCBzZXQKKworIworIyBNTUMvU0QgQ2FyZCBEcml2ZXJzCisjCitDT05GSUdfTU1DX0JMT0NLPXkKK0NPTkZJR19NTUNfQkxPQ0tfQk9VTkNFPXkKKyMgQ09ORklHX1NESU9fVUFSVCBpcyBub3Qgc2V0CisKKyMKKyMgTU1DL1NEIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfTU1DX0FUOTE9eQorIyBDT05GSUdfTU1DX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9eQorCisjCisjIExFRCBkcml2ZXJzCisjCitDT05GSUdfTEVEU19BVE1FTF9QV009eQorQ09ORklHX0xFRFNfR1BJTz15CisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CitDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPXkKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAorCisjCisjIFJUQyBpbnRlcmZhY2VzCisjCitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKKworIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX0FUOTFTQU05PXkKK0NPTkZJR19SVENfRFJWX0FUOTFTQU05X1JUVD0wCitDT05GSUdfUlRDX0RSVl9BVDkxU0FNOV9HUEJSPTAKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworQ09ORklHX0ZBVF9GUz15CitDT05GSUdfTVNET1NfRlM9eQorQ09ORklHX1ZGQVRfRlM9eQorQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNworQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9TVU1NQVJZPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZTPXkKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKKyMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKKyMgQ09ORklHX05MU19JU084ODU5XzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE1PXkKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX1VURjg9eQorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOU1RSVU1FTlRBVElPTiBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQgaXMgbm90IHNldAorQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKKyMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS0VSTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVVNFUiBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE8gaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05cmxla19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05cmxla19kZWZjb25maWcKaW5kZXggOThlNjc0Ni4uZDhlYzVmOSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOXJsZWtfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlybGVrX2RlZmNvbmZpZwpAQCAtMjExLDcgKzIxMSw2IEBACiAjCiAjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2F0ZWI5MjAwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXRlYjkyMDBfZGVmY29uZmlnCmluZGV4IGQ4NDZhNDkuLjg1YzgwZjcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYXRlYjkyMDBfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXRlYjkyMDBfZGVmY29uZmlnCkBAIC0xNzEsNyArMTcxLDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci1DT05GSUdfTk9fSURMRV9IWj15CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9jbV94MjcwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvY21feDI3MF9kZWZjb25maWcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjYWIwODMuLjAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9jbV94MjcwX2RlZmNvbmZpZworKysgL2Rldi9udWxsCkBAIC0xLDE0MTAgKzAsMCBAQAotIwotIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjIyCi0jIFdlZCBKdWwgMTggMTQ6MTE6NDggMjAwNwotIwotQ09ORklHX0FSTT15Ci1DT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQotQ09ORklHX0dFTkVSSUNfR1BJTz15Ci1DT05GSUdfR0VORVJJQ19USU1FPXkKLSMgQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFMgaXMgbm90IHNldAotQ09ORklHX01NVT15Ci0jIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAotQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQotQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15Ci1DT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKLUNPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKLUNPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQotQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKLUNPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKLSMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAotQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15Ci1DT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQotQ09ORklHX1pPTkVfRE1BPXkKLUNPTkZJR19BUkNIX01URF9YSVA9eQotQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCi1DT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgotCi0jCi0jIENvZGUgbWF0dXJpdHkgbGV2ZWwgb3B0aW9ucwotIwotQ09ORklHX0VYUEVSSU1FTlRBTD15Ci1DT05GSUdfQlJPS0VOX09OX1NNUD15Ci1DT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCi0KLSMKLSMgR2VuZXJhbCBzZXR1cAotIwotQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgotIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAotQ09ORklHX1NXQVA9eQotQ09ORklHX1NZU1ZJUEM9eQotQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKLSMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKLUNPTkZJR19JS0NPTkZJRz15Ci1DT05GSUdfSUtDT05GSUdfUFJPQz15Ci1DT05GSUdfTE9HX0JVRl9TSElGVD0xNwotQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQotIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKLUNPTkZJR19JTklUUkFNRlNfU09VUkNFPSIiCi1DT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQotQ09ORklHX1NZU0NUTD15Ci1DT05GSUdfRU1CRURERUQ9eQotQ09ORklHX1VJRDE2PXkKLUNPTkZJR19TWVNDVExfU1lTQ0FMTD15Ci1DT05GSUdfS0FMTFNZTVM9eQotIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAotQ09ORklHX0hPVFBMVUc9eQotQ09ORklHX1BSSU5USz15Ci1DT05GSUdfQlVHPXkKLUNPTkZJR19FTEZfQ09SRT15Ci1DT05GSUdfQkFTRV9GVUxMPXkKLUNPTkZJR19GVVRFWD15Ci1DT05GSUdfQU5PTl9JTk9ERVM9eQotIyBDT05GSUdfRVBPTEwgaXMgbm90IHNldAotIyBDT05GSUdfU0lHTkFMRkQgaXMgbm90IHNldAotIyBDT05GSUdfVElNRVJGRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FVkVOVEZEIGlzIG5vdCBzZXQKLUNPTkZJR19TSE1FTT15Ci1DT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQotQ09ORklHX1NMQUI9eQotIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKLUNPTkZJR19SVF9NVVRFWEVTPXkKLSMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAotQ09ORklHX0JBU0VfU01BTEw9MAotQ09ORklHX01PRFVMRVM9eQotQ09ORklHX01PRFVMRV9VTkxPQUQ9eQotQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQotIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAotIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKLUNPTkZJR19LTU9EPXkKLUNPTkZJR19CTE9DSz15Ci0jIENPTkZJR19MQkQgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19MU0YgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAotCi0jCi0jIElPIFNjaGVkdWxlcnMKLSMKLUNPTkZJR19JT1NDSEVEX05PT1A9eQotQ09ORklHX0lPU0NIRURfQVM9eQotQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQotQ09ORklHX0lPU0NIRURfQ0ZRPXkKLUNPTkZJR19ERUZBVUxUX0FTPXkKLSMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAotIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAotIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKLUNPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKLQotIwotIyBTeXN0ZW0gVHlwZQotIwotIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0Ci1DT05GSUdfQVJDSF9QWEE9eQotIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAotQ09ORklHX0RNQUJPVU5DRT15Ci0KLSMKLSMgSW50ZWwgUFhBMnh4IEltcGxlbWVudGF0aW9ucwotIwotIyBDT05GSUdfQVJDSF9MVUJCT0NLIGlzIG5vdCBzZXQKLSMgQ09ORklHX01BQ0hfTE9HSUNQRF9QWEEyNzAgaXMgbm90IHNldAotIyBDT05GSUdfTUFDSF9NQUlOU1RPTkUgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9QWEFfSURQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BYQV9TSEFSUFNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX01BQ0hfVFJJWkVQUzQgaXMgbm90IHNldAotQ09ORklHX01BQ0hfQVJNQ09SRT15Ci1DT05GSUdfUFhBMjd4PXkKLQotIwotIyBQcm9jZXNzb3IgVHlwZQotIwotQ09ORklHX0NQVV8zMj15Ci1DT05GSUdfQ1BVX1hTQ0FMRT15Ci1DT05GSUdfQ1BVXzMydjU9eQotQ09ORklHX0NQVV9BQlJUX0VWNVQ9eQotQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKLUNPTkZJR19DUFVfVExCX1Y0V0JJPXkKLUNPTkZJR19DUFVfQ1AxNT15Ci1DT05GSUdfQ1BVX0NQMTVfTU1VPXkKLQotIwotIyBQcm9jZXNzb3IgRmVhdHVyZXMKLSMKLUNPTkZJR19BUk1fVEhVTUI9eQotIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKLSMgQ09ORklHX09VVEVSX0NBQ0hFIGlzIG5vdCBzZXQKLUNPTkZJR19JV01NWFQ9eQotQ09ORklHX1hTQ0FMRV9QTVU9eQotCi0jCi0jIEJ1cyBzdXBwb3J0Ci0jCi1DT05GSUdfUENJPXkKLUNPTkZJR19QQ0lfU1lTQ0FMTD15Ci1DT05GSUdfUENJX0hPU1RfSVRFODE1Mj15Ci0jIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAotCi0jCi0jIFBDQ0FSRCAoUENNQ0lBL0NhcmRCdXMpIHN1cHBvcnQKLSMKLSMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0Ci0KLSMKLSMgS2VybmVsIEZlYXR1cmVzCi0jCi0jIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAotIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKLUNPTkZJR19IWj0xMDAKLSMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0Ci1DT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15Ci1DT05GSUdfRkxBVE1FTV9NQU5VQUw9eQotIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKLUNPTkZJR19GTEFUTUVNPXkKLUNPTkZJR19GTEFUX05PREVfTUVNX01BUD15Ci0jIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKLUNPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2Ci0jIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAotQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQotQ09ORklHX0JPVU5DRT15Ci1DT05GSUdfVklSVF9UT19CVVM9eQotQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKLQotIwotIyBCb290IG9wdGlvbnMKLSMKLUNPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKLUNPTkZJR19aQk9PVF9ST01fQlNTPTB4MAotQ09ORklHX0NNRExJTkU9IiIKLSMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAotIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAotCi0jCi0jIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgotIwotCi0jCi0jIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAotIwotQ09ORklHX0ZQRV9OV0ZQRT15Ci0jIENPTkZJR19GUEVfTldGUEVfWFAgaXMgbm90IHNldAotIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cwotIwotQ09ORklHX0JJTkZNVF9FTEY9eQotIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAotIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAotIyBDT05GSUdfQVJUSFVSIGlzIG5vdCBzZXQKLQotIwotIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKLSMKLUNPTkZJR19QTT15Ci0jIENPTkZJR19QTV9MRUdBQ1kgaXMgbm90IHNldAotIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfUE1fU1lTRlNfREVQUkVDQVRFRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUE1fRU1VTEFUSU9OIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JraW5nCi0jCi1DT05GSUdfTkVUPXkKLQotIwotIyBOZXR3b3JraW5nIG9wdGlvbnMKLSMKLUNPTkZJR19QQUNLRVQ9eQotIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAotQ09ORklHX1VOSVg9eQotQ09ORklHX1hGUk09eQotIyBDT05GSUdfWEZSTV9VU0VSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0Ci1DT05GSUdfSU5FVD15Ci0jIENPTkZJR19JUF9NVUxUSUNBU1QgaXMgbm90IHNldAotIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKLUNPTkZJR19JUF9GSUJfSEFTSD15Ci1DT05GSUdfSVBfUE5QPXkKLUNPTkZJR19JUF9QTlBfREhDUD15Ci1DT05GSUdfSVBfUE5QX0JPT1RQPXkKLSMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0Ci1DT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKLUNPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQotQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQotQ09ORklHX0lORVRfRElBRz15Ci1DT05GSUdfSU5FVF9UQ1BfRElBRz15Ci0jIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0Ci1DT05GSUdfVENQX0NPTkdfQ1VCSUM9eQotQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgotIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAotIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAotIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19USVBDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CUklER0UgaXMgbm90IHNldAotIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUNORVQgaXMgbm90IHNldAotIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUFggaXMgbm90IHNldAotIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAotIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0xBUEIgaXMgbm90IHNldAotIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAotCi0jCi0jIFFvUyBhbmQvb3IgZmFpciBxdWV1ZWluZwotIwotIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIHRlc3RpbmcKLSMKLSMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAotIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAotIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0Ci0KLSMKLSMgV2lyZWxlc3MKLSMKLSMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKLUNPTkZJR19XSVJFTEVTU19FWFQ9eQotIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAotQ09ORklHX0lFRUU4MDIxMT1tCi0jIENPTkZJR19JRUVFODAyMTFfREVCVUcgaXMgbm90IHNldAotQ09ORklHX0lFRUU4MDIxMV9DUllQVF9XRVA9bQotQ09ORklHX0lFRUU4MDIxMV9DUllQVF9DQ01QPW0KLSMgQ09ORklHX0lFRUU4MDIxMV9DUllQVF9US0lQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUU4MDIxMV9TT0ZUTUFDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAotCi0jCi0jIERldmljZSBEcml2ZXJzCi0jCi0KLSMKLSMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwotIwotQ09ORklHX1NUQU5EQUxPTkU9eQotQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQotQ09ORklHX0ZXX0xPQURFUj15Ci0jIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0Ci1DT05GSUdfTVREPW0KLSMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfUEFSVElUSU9OUz15Ci0jIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKLQotIwotIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwotIwotQ09ORklHX01URF9DSEFSPW0KLUNPTkZJR19NVERfQkxLREVWUz1tCi1DT05GSUdfTVREX0JMT0NLPW0KLSMgQ09ORklHX01URF9CTE9DS19STyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVEwgaXMgbm90IHNldAotIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKLQotIwotIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycwotIwotIyBDT05GSUdfTVREX0NGSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0Ci1DT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQotQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKLUNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15Ci0jIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAotIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfQ0ZJX0kxPXkKLUNPTkZJR19NVERfQ0ZJX0kyPXkKLSMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAotIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0Ci0KLSMKLSMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcwotIwotIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAotIyBDT05GSUdfTVREX1NIQVJQX1NMIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKLQotIwotIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKLSMKLSMgQ09ORklHX01URF9QTUM1NTEgaXMgbm90IHNldAotIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAotCi0jCi0jIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycwotIwotIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfTkFORD1tCi0jIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX0gxOTAwIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfTkFORF9JRFM9bQotIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTkFORF9TSEFSUFNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX0NBRkUgaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EX0NNX1gyNzA9bQotIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0Ci0KLSMKLSMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCi0jCi0jIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVY9eQotIyBDT05GSUdfQkxLX0NQUV9EQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfQ1BRX0NJU1NfREEgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9EQUM5NjAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9VTUVNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9MT09QPXkKLSMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NYOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX1JBTT15Ci1DT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKLUNPTkZJR19CTEtfREVWX1JBTV9TSVpFPTEyMDAwCi1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKLSMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAotIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKLUNPTkZJR19JREU9bQotQ09ORklHX0lERV9NQVhfSFdJRlM9NAotQ09ORklHX0JMS19ERVZfSURFPW0KLQotIwotIyBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKLSMKLSMgQ09ORklHX0JMS19ERVZfSURFX1NBVEEgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFRElTSz1tCi0jIENPTkZJR19JREVESVNLX01VTFRJX01PREUgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFQ0Q9bQotIyBDT05GSUdfQkxLX0RFVl9JREVUQVBFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFRkxPUFBZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFU0NTSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JREVfVEFTS19JT0NUTCBpcyBub3Qgc2V0Ci1DT05GSUdfSURFX1BST0NfRlM9eQotCi0jCi0jIElERSBjaGlwc2V0IHN1cHBvcnQvYnVnZml4ZXMKLSMKLSMgQ09ORklHX0lERV9HRU5FUklDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFUENJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERVBDSV9QQ0lCVVNfT1JERVIgaXMgbm90IHNldAotIyBDT05GSUdfSURFX0FSTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lERURNQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKLQotIwotIyBTQ1NJIGRldmljZSBzdXBwb3J0Ci0jCi0jIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKLUNPTkZJR19TQ1NJPXkKLUNPTkZJR19TQ1NJX0RNQT15Ci0jIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQotIwotQ09ORklHX0JMS19ERVZfU0Q9eQotIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKLQotIwotIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKLSMKLSMgQ09ORklHX1NDU0lfTVVMVElfTFVOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAotQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KLQotIwotIyBTQ1NJIFRyYW5zcG9ydHMKLSMKLSMgQ09ORklHX1NDU0lfU1BJX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NBU19BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgbG93LWxldmVsIGRyaXZlcnMKLSMKLSMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWXzNXX1hYWFhfUkFJRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJXzNXXzlYWFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BQ0FSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FBQ1JBSUQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM3WFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUlDN1hYWF9PTEQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM3OVhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUlDOTRYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RQVF9JMk8gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BUkNNU1IgaXMgbm90IHNldAotIyBDT05GSUdfTUVHQVJBSURfTkVXR0VOIGlzIG5vdCBzZXQKLSMgQ09ORklHX01FR0FSQUlEX0xFR0FDWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRUdBUkFJRF9TQVMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9IUFRJT1AgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JUFMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JTklUSU8gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1RFWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NZTTUzQzhYWF8yIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTEFfRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTEFfSVNDU0kgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9MUEZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfREMzOTV4IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfREMzOTBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfTlNQMzIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEEgaXMgbm90IHNldAotIyBDT05GSUdfTUQgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKLSMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU0FTIGlzIG5vdCBzZXQKLQotIwotIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0Ci0jCi0jIENPTkZJR19GSVJFV0lSRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFMTM5NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMk8gaXMgbm90IHNldAotQ09ORklHX05FVERFVklDRVM9eQotIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAotIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAotIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAotQ09ORklHX05FVF9FVEhFUk5FVD15Ci1DT05GSUdfTUlJPXkKLSMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAotIyBDT05GSUdfSEFQUFlNRUFMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTUM5MVggaXMgbm90IHNldAotQ09ORklHX0RNOTAwMD15Ci0jIENPTkZJR19TTUM5MTFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9UVUxJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19IUDEwMCBpcyBub3Qgc2V0Ci1DT05GSUdfTkVUX1BDST15Ci0jIENPTkZJR19QQ05FVDMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FNRDgxMTFfRVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FEQVBURUNfU1RBUkZJUkUgaXMgbm90IHNldAotIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZPUkNFREVUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ER1JTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VFUFJPMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0UxMDAgaXMgbm90IHNldAotIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKLSMgQ09ORklHX05BVFNFTUkgaXMgbm90IHNldAotIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldAotIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKLUNPTkZJR184MTM5VE9PPW0KLSMgQ09ORklHXzgxMzlUT09fUElPIGlzIG5vdCBzZXQKLSMgQ09ORklHXzgxMzlUT09fVFVORV9UV0lTVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHXzgxMzlUT09fODEyOSBpcyBub3Qgc2V0Ci0jIENPTkZJR184MTM5X09MRF9SWF9SRVNFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAotIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UTEFOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZJQV9SSElORSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQzkyMDMxIGlzIG5vdCBzZXQKLUNPTkZJR19ORVRERVZfMTAwMD15Ci0jIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAotIyBDT05GSUdfREwySyBpcyBub3Qgc2V0Ci0jIENPTkZJR19FMTAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OUzgzODIwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAotIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1I4MTY5IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1FMQTNYWFggaXMgbm90IHNldAotIyBDT05GSUdfQVRMMSBpcyBub3Qgc2V0Ci1DT05GSUdfTkVUREVWXzEwMDAwPXkKLSMgQ09ORklHX0NIRUxTSU9fVDEgaXMgbm90IHNldAotIyBDT05GSUdfQ0hFTFNJT19UMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JWEdCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1MySU8gaXMgbm90IHNldAotIyBDT05GSUdfTVlSSTEwR0UgaXMgbm90IHNldAotIyBDT05GSUdfTkVUWEVOX05JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAotIyBDT05GSUdfVFIgaXMgbm90IHNldAotCi0jCi0jIFdpcmVsZXNzIExBTgotIwotIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgTmV0d29yayBBZGFwdGVycwotIwotIyBDT05GSUdfVVNCX0NBVEMgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfVVNCTkVUX01JSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dBTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GRERJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BQUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAotIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAotIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0Ci0KLSMKLSMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKLSMKLUNPTkZJR19JTlBVVD15Ci0jIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAotCi0jCi0jIFVzZXJsYW5kIGludGVyZmFjZXMKLSMKLSMgQ09ORklHX0lOUFVUX01PVVNFREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UU0RFViBpcyBub3Qgc2V0Ci1DT05GSUdfSU5QVVRfRVZERVY9eQotIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAotCi0jCi0jIElucHV0IERldmljZSBEcml2ZXJzCi0jCi0jIENPTkZJR19JTlBVVF9LRVlCT0FSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAotQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKLSMgQ09ORklHX1RPVUNIU0NSRUVOX0dVTlpFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX0VMTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9NVE9VQ0ggaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTUs3MTIgaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fUEVOTU9VTlQgaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hSSUdIVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFdJTiBpcyBub3Qgc2V0Ci1DT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMD1tCi0jIENPTkZJR19UT1VDSFNDUkVFTl9VU0JfQ09NUE9TSVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAotCi0jCi0jIEhhcmR3YXJlIEkvTyBwb3J0cwotIwotIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAotIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotCi0jCi0jIENoYXJhY3RlciBkZXZpY2VzCi0jCi1DT05GSUdfVlQ9eQotQ09ORklHX1ZUX0NPTlNPTEU9eQotQ09ORklHX0hXX0NPTlNPTEU9eQotIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0Ci0KLSMKLSMgU2VyaWFsIGRyaXZlcnMKLSMKLSMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKLQotIwotIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0Ci0jCi1DT05GSUdfU0VSSUFMX1BYQT15Ci1DT05GSUdfU0VSSUFMX1BYQV9DT05TT0xFPXkKLUNPTkZJR19TRVJJQUxfQ09SRT15Ci1DT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15Ci0jIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKLUNPTkZJR19VTklYOThfUFRZUz15Ci1DT05GSUdfTEVHQUNZX1BUWVM9eQotQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2Ci0jIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAotQ09ORklHX0hXX1JBTkRPTT1tCi0jIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EUk0gaXMgbm90IHNldAotIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKLUNPTkZJR19ERVZQT1JUPXkKLSMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKLSMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1cxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKLUNPTkZJR19NSVNDX0RFVklDRVM9eQotIyBDT05GSUdfUEhBTlRPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAotIyBDT05GSUdfU0dJX0lPQzQgaXMgbm90IHNldAotIyBDT05GSUdfVElGTV9DT1JFIGlzIG5vdCBzZXQKLQotIwotIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCi0jCi0jIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAotCi0jCi0jIExFRCBkZXZpY2VzCi0jCi1DT05GSUdfTkVXX0xFRFM9eQotQ09ORklHX0xFRFNfQ0xBU1M9eQotCi0jCi0jIExFRCBkcml2ZXJzCi0jCi1DT05GSUdfTEVEU19DTV9YMjcwPXkKLQotIwotIyBMRUQgVHJpZ2dlcnMKLSMKLUNPTkZJR19MRURTX1RSSUdHRVJTPXkKLSMgQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19MRURTX1RSSUdHRVJfSURFX0RJU0sgaXMgbm90IHNldAotQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9eQotCi0jCi0jIE11bHRpbWVkaWEgZGV2aWNlcwotIwotIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKLUNPTkZJR19EQUI9eQotIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0Ci0KLSMKLSMgR3JhcGhpY3Mgc3VwcG9ydAotIwotIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKLQotIwotIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0Ci0jCi0jIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAotIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAotQ09ORklHX0ZCPXkKLSMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAotIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKLUNPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQotQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15Ci1DT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15Ci0jIENPTkZJR19GQl9TWVNfRklMTFJFQ1QgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU1lTX0NPUFlBUkVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNldAotQ09ORklHX0ZCX0RFRkVSUkVEX0lPPXkKLSMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAotIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAotIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX01PREVfSEVMUEVSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9USUxFQkxJVFRJTkcgaXMgbm90IHNldAotCi0jCi0jIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCi0jCi0jIENPTkZJR19GQl9DSVJSVVMgaXMgbm90IHNldAotIyBDT05GSUdfRkJfUE0yIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0NZQkVSMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9BU0lMSUFOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9JTVNUVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TMUQxM1hYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9OVklESUEgaXMgbm90IHNldAotIyBDT05GSUdfRkJfUklWQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9NQVRST1ggaXMgbm90IHNldAotIyBDT05GSUdfRkJfUkFERU9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0FUWTEyOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9BVFkgaXMgbm90IHNldAotIyBDT05GSUdfRkJfUzMgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU0FWQUdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1NJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9ORU9NQUdJQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9LWVJPIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCXzNERlggaXMgbm90IHNldAotIyBDT05GSUdfRkJfVk9PRE9PMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9WVDg2MjMgaXMgbm90IHNldAotIyBDT05GSUdfRkJfVFJJREVOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9BUksgaXMgbm90IHNldAotIyBDT05GSUdfRkJfUE0zIGlzIG5vdCBzZXQKLUNPTkZJR19GQl9QWEE9eQotIyBDT05GSUdfRkJfUFhBX1BBUkFNRVRFUlMgaXMgbm90IHNldAotQ09ORklHX0ZCX01CWD1tCi0jIENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKLQotIwotIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKLSMKLSMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKLUNPTkZJR19EVU1NWV9DT05TT0xFPXkKLUNPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKLSMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaXMgbm90IHNldAotIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ST1RBVElPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GT05UUyBpcyBub3Qgc2V0Ci1DT05GSUdfRk9OVF84eDg9eQotQ09ORklHX0ZPTlRfOHgxNj15Ci1DT05GSUdfTE9HTz15Ci1DT05GSUdfTE9HT19MSU5VWF9NT05PPXkKLUNPTkZJR19MT0dPX0xJTlVYX1ZHQTE2PXkKLUNPTkZJR19MT0dPX0xJTlVYX0NMVVQyMjQ9eQotCi0jCi0jIFNvdW5kCi0jCi1DT05GSUdfU09VTkQ9bQotCi0jCi0jIEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZQotIwotQ09ORklHX1NORD1tCi1DT05GSUdfU05EX1RJTUVSPW0KLUNPTkZJR19TTkRfUENNPW0KLSMgQ09ORklHX1NORF9TRVFVRU5DRVIgaXMgbm90IHNldAotQ09ORklHX1NORF9PU1NFTVVMPXkKLUNPTkZJR19TTkRfTUlYRVJfT1NTPW0KLUNPTkZJR19TTkRfUENNX09TUz1tCi1DT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15Ci0jIENPTkZJR19TTkRfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAotQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQotQ09ORklHX1NORF9WRVJCT1NFX1BST0NGUz15Ci0jIENPTkZJR19TTkRfVkVSQk9TRV9QUklOVEsgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBHZW5lcmljIGRldmljZXMKLSMKLUNPTkZJR19TTkRfQUM5N19DT0RFQz1tCi0jIENPTkZJR19TTkRfRFVNTVkgaXMgbm90IHNldAotIyBDT05GSUdfU05EX01UUEFWIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NUFU0MDEgaXMgbm90IHNldAotCi0jCi0jIFBDSSBkZXZpY2VzCi0jCi0jIENPTkZJR19TTkRfQUQxODg5IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9BTFMzMDAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FMSTU0NTEgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FUSUlYUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQVRJSVhQX01PREVNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9BWlQzMzI4IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9CVDg3WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQ0EwMTA2IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9DTUlQQ0kgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0NTNDI4MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQ1M0NlhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9EQVJMQTIwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9HSU5BMjAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0xBWUxBMjAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0RBUkxBMjQgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0dJTkEyNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTEFZTEEyNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTU9OQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTUlBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FQ0hPM0cgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0lORElHTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSU5ESUdPSU8gaXMgbm90IHNldAotIyBDT05GSUdfU05EX0lORElHT0RKIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FTVUxMEsxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FTVUxMEsxWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfRU5TMTM3MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfRU5TMTM3MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfRVMxOTM4IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FUzE5NjggaXMgbm90IHNldAotIyBDT05GSUdfU05EX0ZNODAxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9IREFfSU5URUwgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0hEU1AgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0hEU1BNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9JQ0UxNzEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9JQ0UxNzI0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9JTlRFTDhYMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSU5URUw4WDBNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9LT1JHMTIxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTUFFU1RSTzMgaXMgbm90IHNldAotIyBDT05GSUdfU05EX01JWEFSVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTk0yNTYgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1BDWEhSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9SSVBUSURFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9STUUzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfUk1FOTYgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1JNRTk2NTIgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1NPTklDVklCRVMgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1RSSURFTlQgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1ZJQTgyWFggaXMgbm90IHNldAotIyBDT05GSUdfU05EX1ZJQTgyWFhfTU9ERU0gaXMgbm90IHNldAotIyBDT05GSUdfU05EX1ZYMjIyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9ZTUZQQ0kgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FDOTdfUE9XRVJfU0FWRSBpcyBub3Qgc2V0Ci0KLSMKLSMgQUxTQSBBUk0gZGV2aWNlcwotIwotQ09ORklHX1NORF9QWEEyWFhfUENNPW0KLUNPTkZJR19TTkRfUFhBMlhYX0FDOTc9bQotCi0jCi0jIFVTQiBkZXZpY2VzCi0jCi0jIENPTkZJR19TTkRfVVNCX0FVRElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9VU0JfQ0FJQVEgaXMgbm90IHNldAotCi0jCi0jIFN5c3RlbSBvbiBDaGlwIGF1ZGlvIHN1cHBvcnQKLSMKLSMgQ09ORklHX1NORF9TT0MgaXMgbm90IHNldAotCi0jCi0jIE9wZW4gU291bmQgU3lzdGVtCi0jCi0jIENPTkZJR19TT1VORF9QUklNRSBpcyBub3Qgc2V0Ci1DT05GSUdfQUM5N19CVVM9bQotQ09ORklHX0hJRF9TVVBQT1JUPXkKLUNPTkZJR19ISUQ9eQotIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgSW5wdXQgRGV2aWNlcwotIwotQ09ORklHX1VTQl9ISUQ9eQotIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ISURfRkYgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX1NVUFBPUlQ9eQotQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQotQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKLUNPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15Ci1DT05GSUdfVVNCPXkKLSMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwotIwotQ09ORklHX1VTQl9ERVZJQ0VGUz15Ci0jIENPTkZJR19VU0JfREVWSUNFX0NMQVNTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUEVSU0lTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKLSMKLSMgQ09ORklHX1VTQl9FSENJX0hDRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAotQ09ORklHX1VTQl9PSENJX0hDRD15Ci0jIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKLSMgQ09ORklHX1VTQl9VSENJX0hDRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAotCi0jCi0jIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycwotIwotIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwotIwotCi0jCi0jIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KLSMKLUNPTkZJR19VU0JfU1RPUkFHRT15Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAotCi0jCi0jIFVTQiBJbWFnaW5nIGRldmljZXMKLSMKLSMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX01JQ1JPVEVLIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfTU9OPXkKLQotIwotIyBVU0IgcG9ydCBkcml2ZXJzCi0jCi0KLSMKLSMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAotIwotIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycwotIwotIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKLSMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKLSMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAotQ09ORklHX01NQz1tCi0jIENPTkZJR19NTUNfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfTU1DX1VOU0FGRV9SRVNVTUUgaXMgbm90IHNldAotCi0jCi0jIE1NQy9TRCBDYXJkIERyaXZlcnMKLSMKLUNPTkZJR19NTUNfQkxPQ0s9bQotQ09ORklHX01NQ19CTE9DS19CT1VOQ0U9eQotCi0jCi0jIE1NQy9TRCBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwotIwotQ09ORklHX01NQ19QWEE9bQotIyBDT05GSUdfTU1DX1NESENJIGlzIG5vdCBzZXQKLSMgQ09ORklHX01NQ19USUZNX1NEIGlzIG5vdCBzZXQKLQotIwotIyBSZWFsIFRpbWUgQ2xvY2sKLSMKLUNPTkZJR19SVENfTElCPXkKLUNPTkZJR19SVENfQ0xBU1M9eQotQ09ORklHX1JUQ19IQ1RPU1lTPXkKLUNPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCi0jIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAotCi0jCi0jIFJUQyBpbnRlcmZhY2VzCi0jCi1DT05GSUdfUlRDX0lOVEZfU1lTRlM9eQotQ09ORklHX1JUQ19JTlRGX1BST0M9eQotQ09ORklHX1JUQ19JTlRGX0RFVj15Ci0jIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBQbGF0Zm9ybSBSVEMgZHJpdmVycwotIwotIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKLUNPTkZJR19SVENfRFJWX1YzMDIwPXkKLQotIwotIyBvbi1DUFUgUlRDIGRyaXZlcnMKLSMKLUNPTkZJR19SVENfRFJWX1NBMTEwMD15Ci0KLSMKLSMgRE1BIEVuZ2luZSBzdXBwb3J0Ci0jCi0jIENPTkZJR19ETUFfRU5HSU5FIGlzIG5vdCBzZXQKLQotIwotIyBETUEgQ2xpZW50cwotIwotCi0jCi0jIERNQSBEZXZpY2VzCi0jCi0KLSMKLSMgRmlsZSBzeXN0ZW1zCi0jCi1DT05GSUdfRVhUMl9GUz15Ci0jIENPTkZJR19FWFQyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKLUNPTkZJR19FWFQzX0ZTPXkKLUNPTkZJR19FWFQzX0ZTX1hBVFRSPXkKLSMgQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAotIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0Ci1DT05GSUdfSkJEPXkKLSMgQ09ORklHX0pCRF9ERUJVRyBpcyBub3Qgc2V0Ci1DT05GSUdfRlNfTUJDQUNIRT15Ci0jIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19JTk9USUZZPXkKLUNPTkZJR19JTk9USUZZX1VTRVI9eQotIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQotIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAotIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcwotIwotIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VREZfRlMgaXMgbm90IHNldAotCi0jCi0jIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKLSMKLUNPTkZJR19GQVRfRlM9eQotQ09ORklHX01TRE9TX0ZTPXkKLUNPTkZJR19WRkFUX0ZTPXkKLUNPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKLUNPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKLSMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAotCi0jCi0jIFBzZXVkbyBmaWxlc3lzdGVtcwotIwotQ09ORklHX1BST0NfRlM9eQotQ09ORklHX1BST0NfU1lTQ1RMPXkKLUNPTkZJR19TWVNGUz15Ci1DT05GSUdfVE1QRlM9eQotIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0Ci1DT05GSUdfUkFNRlM9eQotIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKLSMKLSMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfSkZGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmsgRmlsZSBTeXN0ZW1zCi0jCi1DT05GSUdfTkZTX0ZTPXkKLUNPTkZJR19ORlNfVjM9eQotIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU0QgaXMgbm90IHNldAotQ09ORklHX1JPT1RfTkZTPXkKLUNPTkZJR19MT0NLRD15Ci1DT05GSUdfTE9DS0RfVjQ9eQotQ09ORklHX05GU19DT01NT049eQotQ09ORklHX1NVTlJQQz15Ci0jIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKLUNPTkZJR19TTUJfRlM9eQotIyBDT05GSUdfU01CX05MU19ERUZBVUxUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NJRlMgaXMgbm90IHNldAotIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBQYXJ0aXRpb24gVHlwZXMKLSMKLSMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0Ci1DT05GSUdfTVNET1NfUEFSVElUSU9OPXkKLQotIwotIyBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAotIwotQ09ORklHX05MUz15Ci1DT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKLUNPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKLSMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAotQ09ORklHX05MU19JU084ODU5XzE9eQotIyBDT05GSUdfTkxTX0lTTzg4NTlfMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX1VURjggaXMgbm90IHNldAotCi0jCi0jIERpc3RyaWJ1dGVkIExvY2sgTWFuYWdlcgotIwotIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKLQotIwotIyBQcm9maWxpbmcgc3VwcG9ydAotIwotIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKLQotIwotIyBLZXJuZWwgaGFja2luZwotIwotIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAotQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKLUNPTkZJR19NQUdJQ19TWVNSUT15Ci0jIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKLUNPTkZJR19ERUJVR19LRVJORUw9eQotIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAotIyBDT05GSUdfREVURUNUX1NPRlRMT0NLVVAgaXMgbm90IHNldAotQ09ORklHX1NDSEVEX0RFQlVHPXkKLSMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAotIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKLUNPTkZJR19ERUJVR19JTkZPPXkKLSMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAotQ09ORklHX0ZSQU1FX1BPSU5URVI9eQotQ09ORklHX0ZPUkNFRF9JTkxJTklORz15Ci0jIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0Ci1DT05GSUdfREVCVUdfVVNFUj15Ci1DT05GSUdfREVCVUdfRVJST1JTPXkKLUNPTkZJR19ERUJVR19MTD15Ci0jIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAotCi0jCi0jIFNlY3VyaXR5IG9wdGlvbnMKLSMKLSMgQ09ORklHX0tFWVMgaXMgbm90IHNldAotIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAotQ09ORklHX0NSWVBUTz15Ci1DT05GSUdfQ1JZUFRPX0FMR0FQST1tCi1DT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj1tCi1DT05GSUdfQ1JZUFRPX01BTkFHRVI9bQotIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19FQ0I9bQotQ09ORklHX0NSWVBUT19DQkM9bQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQUVTPW0KLSMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0FSQzQ9bQotIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0hXPXkKLQotIwotIyBMaWJyYXJ5IHJvdXRpbmVzCi0jCi1DT05GSUdfQklUUkVWRVJTRT15Ci0jIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKLUNPTkZJR19DUkMzMj15Ci0jIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKLSMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0Ci1DT05GSUdfUExJU1Q9eQotQ09ORklHX0hBU19JT01FTT15Ci1DT05GSUdfSEFTX0lPUE9SVD15Ci1DT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2NvbGxpZV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2NvbGxpZV9kZWZjb25maWcKaW5kZXggNDI2NGUyNy4uZjc2MjJlNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9jb2xsaWVfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvY29sbGllX2RlZmNvbmZpZwpAQCAtMTY2LDcgKzE2Niw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEU9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9jb3JnaV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2NvcmdpX2RlZmNvbmZpZwppbmRleCBlODk4MGE5Li45Yjg3NDhhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2NvcmdpX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2NvcmdpX2RlZmNvbmZpZwpAQCAtMTY1LDcgKzE2NSw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogQ09ORklHX1BSRUVNUFQ9eQotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAogQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQogQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvZWNiYXQ5MV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2VjYmF0OTFfZGVmY29uZmlnCmluZGV4IDkwZWQyMTQuLmNmZWI4MTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvZWNiYXQ5MV9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9lY2JhdDkxX2RlZmNvbmZpZwpAQCAtMjMwLDcgKzIzMCw2IEBACiAjCiAjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogQ09ORklHX1BSRUVNUFQ9eQotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9lbV94MjcwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvZW1feDI3MF9kZWZjb25maWcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiZWEwOTAuLjAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9lbV94MjcwX2RlZmNvbmZpZworKysgL2Rldi9udWxsCkBAIC0xLDEyNjUgKzAsMCBAQAotIwotIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjIyCi0jIE1vbiBKdWwgIDkgMTU6MTg6MjAgMjAwNwotIwotQ09ORklHX0FSTT15Ci1DT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQotQ09ORklHX0dFTkVSSUNfR1BJTz15Ci1DT05GSUdfR0VORVJJQ19USU1FPXkKLSMgQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFMgaXMgbm90IHNldAotQ09ORklHX01NVT15Ci0jIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAotQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQotQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15Ci1DT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKLUNPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKLUNPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQotQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKLUNPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKLSMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAotQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15Ci1DT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQotQ09ORklHX1pPTkVfRE1BPXkKLUNPTkZJR19BUkNIX01URF9YSVA9eQotQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCi1DT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgotCi0jCi0jIENvZGUgbWF0dXJpdHkgbGV2ZWwgb3B0aW9ucwotIwotQ09ORklHX0VYUEVSSU1FTlRBTD15Ci1DT05GSUdfQlJPS0VOX09OX1NNUD15Ci1DT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCi0KLSMKLSMgR2VuZXJhbCBzZXR1cAotIwotQ09ORklHX0xPQ0FMVkVSU0lPTj0iLWVtLXgyNzAiCi0jIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0Ci1DT05GSUdfU1dBUD15Ci1DT05GSUdfU1lTVklQQz15Ci0jIENPTkZJR19JUENfTlMgaXMgbm90IHNldAotQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKLSMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAotQ09ORklHX0lLQ09ORklHPXkKLUNPTkZJR19JS0NPTkZJR19QUk9DPXkKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE3Ci1DT05GSUdfU1lTRlNfREVQUkVDQVRFRD15Ci0jIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JTklUUkQ9eQotQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKLUNPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15Ci1DT05GSUdfU1lTQ1RMPXkKLUNPTkZJR19FTUJFRERFRD15Ci1DT05GSUdfVUlEMTY9eQotQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKLUNPTkZJR19LQUxMU1lNUz15Ci0jIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAotIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0Ci1DT05GSUdfSE9UUExVRz15Ci1DT05GSUdfUFJJTlRLPXkKLUNPTkZJR19CVUc9eQotQ09ORklHX0VMRl9DT1JFPXkKLUNPTkZJR19CQVNFX0ZVTEw9eQotQ09ORklHX0ZVVEVYPXkKLUNPTkZJR19BTk9OX0lOT0RFUz15Ci1DT05GSUdfRVBPTEw9eQotQ09ORklHX1NJR05BTEZEPXkKLUNPTkZJR19USU1FUkZEPXkKLUNPTkZJR19FVkVOVEZEPXkKLUNPTkZJR19TSE1FTT15Ci1DT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQotQ09ORklHX1NMQUI9eQotIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKLUNPTkZJR19SVF9NVVRFWEVTPXkKLSMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAotQ09ORklHX0JBU0VfU01BTEw9MAotCi0jCi0jIExvYWRhYmxlIG1vZHVsZSBzdXBwb3J0Ci0jCi1DT05GSUdfTU9EVUxFUz15Ci1DT05GSUdfTU9EVUxFX1VOTE9BRD15Ci1DT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRD15Ci0jIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAotQ09ORklHX0tNT0Q9eQotCi0jCi0jIEJsb2NrIGxheWVyCi0jCi1DT05GSUdfQkxPQ0s9eQotIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAotIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKLQotIwotIyBJTyBTY2hlZHVsZXJzCi0jCi1DT05GSUdfSU9TQ0hFRF9OT09QPXkKLUNPTkZJR19JT1NDSEVEX0FTPXkKLUNPTkZJR19JT1NDSEVEX0RFQURMSU5FPXkKLUNPTkZJR19JT1NDSEVEX0NGUT15Ci1DT05GSUdfREVGQVVMVF9BUz15Ci0jIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0Ci1DT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCi0KLSMKLSMgU3lzdGVtIFR5cGUKLSMKLSMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAotQ09ORklHX0FSQ0hfUFhBPXkKLSMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKLQotIwotIyBJbnRlbCBQWEEyeHggSW1wbGVtZW50YXRpb25zCi0jCi0jIENPTkZJR19BUkNIX0xVQkJPQ0sgaXMgbm90IHNldAotIyBDT05GSUdfTUFDSF9MT0dJQ1BEX1BYQTI3MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNIX01BSU5TVE9ORSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1BYQV9JRFAgaXMgbm90IHNldAotIyBDT05GSUdfUFhBX1NIQVJQU0wgaXMgbm90IHNldAotIyBDT05GSUdfTUFDSF9UUklaRVBTNCBpcyBub3Qgc2V0Ci1DT05GSUdfTUFDSF9FTV9YMjcwPXkKLUNPTkZJR19QWEEyN3g9eQotCi0jCi0jIFByb2Nlc3NvciBUeXBlCi0jCi1DT05GSUdfQ1BVXzMyPXkKLUNPTkZJR19DUFVfWFNDQUxFPXkKLUNPTkZJR19DUFVfMzJ2NT15Ci1DT05GSUdfQ1BVX0FCUlRfRVY1VD15Ci1DT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQotQ09ORklHX0NQVV9UTEJfVjRXQkk9eQotQ09ORklHX0NQVV9DUDE1PXkKLUNPTkZJR19DUFVfQ1AxNV9NTVU9eQotCi0jCi0jIFByb2Nlc3NvciBGZWF0dXJlcwotIwotQ09ORklHX0FSTV9USFVNQj15Ci0jIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAotIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAotQ09ORklHX0lXTU1YVD15Ci1DT05GSUdfWFNDQUxFX1BNVT15Ci0KLSMKLSMgQnVzIHN1cHBvcnQKLSMKLSMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKLQotIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0Ci0jCi0jIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAotCi0jCi0jIEtlcm5lbCBGZWF0dXJlcwotIwotIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0Ci1DT05GSUdfSFo9MTAwCi1DT05GSUdfQUVBQkk9eQotQ09ORklHX09BQklfQ09NUEFUPXkKLSMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0Ci1DT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15Ci1DT05GSUdfRkxBVE1FTV9NQU5VQUw9eQotIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKLUNPTkZJR19GTEFUTUVNPXkKLUNPTkZJR19GTEFUX05PREVfTUVNX01BUD15Ci0jIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKLUNPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2Ci0jIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAotQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQotQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKLQotIwotIyBCb290IG9wdGlvbnMKLSMKLUNPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKLUNPTkZJR19aQk9PVF9ST01fQlNTPTB4MAotQ09ORklHX0NNRExJTkU9IiIKLSMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAotIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAotCi0jCi0jIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgotIwotCi0jCi0jIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAotIwotQ09ORklHX0ZQRV9OV0ZQRT15Ci0jIENPTkZJR19GUEVfTldGUEVfWFAgaXMgbm90IHNldAotIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cwotIwotQ09ORklHX0JJTkZNVF9FTEY9eQotIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAotIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAotCi0jCi0jIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucwotIwotQ09ORklHX1BNPXkKLUNPTkZJR19QTV9MRUdBQ1k9eQotIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfUE1fU1lTRlNfREVQUkVDQVRFRCBpcyBub3Qgc2V0Ci1DT05GSUdfQVBNX0VNVUxBVElPTj1tCi0KLSMKLSMgTmV0d29ya2luZwotIwotQ09ORklHX05FVD15Ci0KLSMKLSMgTmV0d29ya2luZyBvcHRpb25zCi0jCi1DT05GSUdfUEFDS0VUPXkKLSMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKLUNPTkZJR19VTklYPXkKLUNPTkZJR19YRlJNPXkKLSMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAotIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAotQ09ORklHX0lORVQ9eQotIyBDT05GSUdfSVBfTVVMVElDQVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0Ci1DT05GSUdfSVBfRklCX0hBU0g9eQotQ09ORklHX0lQX1BOUD15Ci1DT05GSUdfSVBfUE5QX0RIQ1A9eQotQ09ORklHX0lQX1BOUF9CT09UUD15Ci0jIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAotIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAotQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15Ci1DT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKLUNPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKLUNPTkZJR19JTkVUX0RJQUc9eQotQ09ORklHX0lORVRfVENQX0RJQUc9eQotIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAotQ09ORklHX1RDUF9DT05HX0NVQklDPXkKLUNPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKLSMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAotIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAotIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVE0gaXMgbm90IHNldAotIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAotIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0xMQzIgaXMgbm90IHNldAotIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKLSMgQ09ORklHX1gyNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKLQotIwotIyBRb1MgYW5kL29yIGZhaXIgcXVldWVpbmcKLSMKLSMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayB0ZXN0aW5nCi0jCi0jIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lSREEgaXMgbm90IHNldAotQ09ORklHX0JUPW0KLUNPTkZJR19CVF9MMkNBUD1tCi1DT05GSUdfQlRfU0NPPW0KLUNPTkZJR19CVF9SRkNPTU09bQotIyBDT05GSUdfQlRfUkZDT01NX1RUWSBpcyBub3Qgc2V0Ci1DT05GSUdfQlRfQk5FUD1tCi0jIENPTkZJR19CVF9CTkVQX01DX0ZJTFRFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CVF9CTkVQX1BST1RPX0ZJTFRFUiBpcyBub3Qgc2V0Ci1DT05GSUdfQlRfSElEUD1tCi0KLSMKLSMgQmx1ZXRvb3RoIGRldmljZSBkcml2ZXJzCi0jCi1DT05GSUdfQlRfSENJVVNCPW0KLSMgQ09ORklHX0JUX0hDSVVTQl9TQ08gaXMgbm90IHNldAotQ09ORklHX0JUX0hDSVVBUlQ9bQotIyBDT05GSUdfQlRfSENJVUFSVF9INCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CVF9IQ0lVQVJUX0JDU1AgaXMgbm90IHNldAotQ09ORklHX0JUX0hDSUJDTTIwM1g9bQotQ09ORklHX0JUX0hDSUJQQTEwWD1tCi1DT05GSUdfQlRfSENJQkZVU0I9bQotIyBDT05GSUdfQlRfSENJVkhDSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0Ci0KLSMKLSMgV2lyZWxlc3MKLSMKLSMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTgwMjExPW0KLSMgQ09ORklHX0lFRUU4MDIxMV9ERUJVRyBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTgwMjExX0NSWVBUX1dFUD1tCi1DT05GSUdfSUVFRTgwMjExX0NSWVBUX0NDTVA9bQotIyBDT05GSUdfSUVFRTgwMjExX0NSWVBUX1RLSVAgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTgwMjExX1NPRlRNQUMgaXMgbm90IHNldAotIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKLQotIwotIyBEZXZpY2UgRHJpdmVycwotIwotCi0jCi0jIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKLSMKLUNPTkZJR19TVEFOREFMT05FPXkKLUNPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKLUNPTkZJR19GV19MT0FERVI9eQotIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0Ci0KLSMKLSMgQ29ubmVjdG9yIC0gdW5pZmllZCB1c2Vyc3BhY2UgPC0+IGtlcm5lbHNwYWNlIGxpbmtlcgotIwotIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKLUNPTkZJR19NVEQ9eQotIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfQ09OQ0FUPXkKLUNPTkZJR19NVERfUEFSVElUSU9OUz15Ci0jIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQ01ETElORV9QQVJUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKLQotIwotIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwotIwotQ09ORklHX01URF9DSEFSPXkKLUNPTkZJR19NVERfQkxLREVWUz15Ci1DT05GSUdfTVREX0JMT0NLPXkKLSMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAotIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAotCi0jCi0jIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCi0jCi0jIENPTkZJR19NVERfQ0ZJIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9DRklfTk9TV0FQIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9DRklfQkVfQllURV9TV0FQIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9DRklfTEVfQllURV9TV0FQIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15Ci1DT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQotQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80PXkKLSMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAotQ09ORklHX01URF9DRklfSTE9eQotQ09ORklHX01URF9DRklfSTI9eQotIyBDT05GSUdfTVREX0NGSV9JNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKLQotIwotIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCi0jCi0jIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfU0hBUlBfU0wgaXMgbm90IHNldAotIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAotCi0jCi0jIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycwotIwotIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAotCi0jCi0jIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycwotIwotIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfTkFORD15Ci0jIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX0gxOTAwIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfTkFORF9JRFM9eQotIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTkFORF9TSEFSUFNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EX1BMQVRGT1JNPXkKLSMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKLQotIwotIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKLSMKLSMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAotCi0jCi0jIFBhcmFsbGVsIHBvcnQgc3VwcG9ydAotIwotIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0Ci0KLSMKLSMgUGx1ZyBhbmQgUGxheSBzdXBwb3J0Ci0jCi0jIENPTkZJR19QTlBBQ1BJIGlzIG5vdCBzZXQKLQotIwotIyBCbG9jayBkZXZpY2VzCi0jCi0jIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfTE9PUD15Ci0jIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9SQU09eQotQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2Ci1DT05GSUdfQkxLX0RFVl9SQU1fU0laRT0xMjAwMAotQ09ORklHX0JMS19ERVZfUkFNX0JMT0NLU0laRT0xMDI0Ci0jIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JREUgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgZGV2aWNlIHN1cHBvcnQKLSMKLSMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAotQ09ORklHX1NDU0k9eQotIyBDT05GSUdfU0NTSV9UR1QgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfUFJPQ19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKLSMKLUNPTkZJR19CTEtfREVWX1NEPXkKLSMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU1IgaXMgbm90IHNldAotIyBDT05GSUdfQ0hSX0RFVl9TRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0Ci0KLSMKLSMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCi0jCi0jIENPTkZJR19TQ1NJX01VTFRJX0xVTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKLUNPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCi0KLSMKLSMgU0NTSSBUcmFuc3BvcnRzCi0jCi0jIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TQVNfQVRUUlMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKLQotIwotIyBTQ1NJIGxvdy1sZXZlbCBkcml2ZXJzCi0jCi0jIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEEgaXMgbm90IHNldAotCi0jCi0jIE11bHRpLWRldmljZSBzdXBwb3J0IChSQUlEIGFuZCBMVk0pCi0jCi0jIENPTkZJR19NRCBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBkZXZpY2Ugc3VwcG9ydAotIwotQ09ORklHX05FVERFVklDRVM9eQotIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAotIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAotIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0Ci0KLSMKLSMgRXRoZXJuZXQgKDEwIG9yIDEwME1iaXQpCi0jCi1DT05GSUdfTkVUX0VUSEVSTkVUPXkKLUNPTkZJR19NSUk9eQotIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKLUNPTkZJR19ETTkwMDA9eQotIyBDT05GSUdfU01DOTExWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAotCi0jCi0jIFdpcmVsZXNzIExBTgotIwotIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgTmV0d29yayBBZGFwdGVycwotIwotIyBDT05GSUdfVVNCX0NBVEMgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfVVNCTkVUX01JSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dBTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19QUFAgaXMgbm90IHNldAotIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAotIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAotCi0jCi0jIElTRE4gc3Vic3lzdGVtCi0jCi0jIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKLQotIwotIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAotIwotQ09ORklHX0lOUFVUPXkKLSMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcmxhbmQgaW50ZXJmYWNlcwotIwotQ09ORklHX0lOUFVUX01PVVNFREVWPXkKLSMgQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYIGlzIG5vdCBzZXQKLUNPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0Ci1DT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4Ci0jIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVFNERVYgaXMgbm90IHNldAotQ09ORklHX0lOUFVUX0VWREVWPXkKLSMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKLQotIwotIyBJbnB1dCBEZXZpY2UgRHJpdmVycwotIwotQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKLSMgQ09ORklHX0tFWUJPQVJEX0FUS0JEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0tFWUJPQVJEX1NVTktCRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LRVlCT0FSRF9MS0tCRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LRVlCT0FSRF9YVEtCRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LRVlCT0FSRF9ORVdUT04gaXMgbm90IHNldAotIyBDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVkgaXMgbm90IHNldAotQ09ORklHX0tFWUJPQVJEX1BYQTI3eD1tCi0jIENPTkZJR19LRVlCT0FSRF9HUElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0Ci1DT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX1VDQjE0MDAgaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0NPTVBPU0lURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKLQotIwotIyBIYXJkd2FyZSBJL08gcG9ydHMKLSMKLUNPTkZJR19TRVJJTz15Ci0jIENPTkZJR19TRVJJT19TRVJQT1JUIGlzIG5vdCBzZXQKLUNPTkZJR19TRVJJT19MSUJQUzI9eQotIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKLQotIwotIyBDaGFyYWN0ZXIgZGV2aWNlcwotIwotQ09ORklHX1ZUPXkKLUNPTkZJR19WVF9DT05TT0xFPXkKLUNPTkZJR19IV19DT05TT0xFPXkKLSMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAotCi0jCi0jIFNlcmlhbCBkcml2ZXJzCi0jCi0jIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0Ci0KLSMKLSMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAotIwotQ09ORklHX1NFUklBTF9QWEE9eQotQ09ORklHX1NFUklBTF9QWEFfQ09OU09MRT15Ci1DT05GSUdfU0VSSUFMX0NPUkU9eQotQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQotQ09ORklHX1VOSVg5OF9QVFlTPXkKLUNPTkZJR19MRUdBQ1lfUFRZUz15Ci1DT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKLQotIwotIyBJUE1JCi0jCi0jIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAotQ09ORklHX0hXX1JBTkRPTT1tCi0jIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKLQotIwotIyBUUE0gZGV2aWNlcwotIwotIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCi0jIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgRGFsbGFzJ3MgMS13aXJlIGJ1cwotIwotIyBDT05GSUdfVzEgaXMgbm90IHNldAotIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAotCi0jCi0jIE1pc2MgZGV2aWNlcwotIwotCi0jCi0jIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKLSMKLSMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0Ci0KLSMKLSMgTEVEIGRldmljZXMKLSMKLSMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKLQotIwotIyBMRUQgZHJpdmVycwotIwotCi0jCi0jIExFRCBUcmlnZ2VycwotIwotCi0jCi0jIE11bHRpbWVkaWEgZGV2aWNlcwotIwotIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RBQiBpcyBub3Qgc2V0Ci0KLSMKLSMgR3JhcGhpY3Mgc3VwcG9ydAotIwotIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKLQotIwotIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0Ci0jCi0jIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAotIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAotQ09ORklHX0ZCPXkKLSMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAotIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKLUNPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQotQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15Ci1DT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15Ci0jIENPTkZJR19GQl9TWVNfRklMTFJFQ1QgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU1lTX0NPUFlBUkVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNldAotQ09ORklHX0ZCX0RFRkVSUkVEX0lPPXkKLSMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAotIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAotIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX01PREVfSEVMUEVSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9USUxFQkxJVFRJTkcgaXMgbm90IHNldAotCi0jCi0jIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCi0jCi0jIENPTkZJR19GQl9TMUQxM1hYWCBpcyBub3Qgc2V0Ci1DT05GSUdfRkJfUFhBPXkKLSMgQ09ORklHX0ZCX1BYQV9QQVJBTUVURVJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX01CWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKLQotIwotIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKLSMKLSMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKLUNPTkZJR19EVU1NWV9DT05TT0xFPXkKLUNPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKLSMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT04gaXMgbm90IHNldAotIyBDT05GSUdfRk9OVFMgaXMgbm90IHNldAotQ09ORklHX0ZPTlRfOHg4PXkKLUNPTkZJR19GT05UXzh4MTY9eQotQ09ORklHX0xPR089eQotQ09ORklHX0xPR09fTElOVVhfTU9OTz15Ci1DT05GSUdfTE9HT19MSU5VWF9WR0ExNj15Ci1DT05GSUdfTE9HT19MSU5VWF9DTFVUMjI0PXkKLQotIwotIyBTb3VuZAotIwotQ09ORklHX1NPVU5EPW0KLQotIwotIyBBZHZhbmNlZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUKLSMKLUNPTkZJR19TTkQ9bQotQ09ORklHX1NORF9USU1FUj1tCi1DT05GSUdfU05EX1BDTT1tCi0jIENPTkZJR19TTkRfU0VRVUVOQ0VSIGlzIG5vdCBzZXQKLUNPTkZJR19TTkRfT1NTRU1VTD15Ci1DT05GSUdfU05EX01JWEVSX09TUz1tCi1DT05GSUdfU05EX1BDTV9PU1M9bQotQ09ORklHX1NORF9QQ01fT1NTX1BMVUdJTlM9eQotIyBDT05GSUdfU05EX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKLUNPTkZJR19TTkRfU1VQUE9SVF9PTERfQVBJPXkKLUNPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlM9eQotIyBDT05GSUdfU05EX1ZFUkJPU0VfUFJJTlRLIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgR2VuZXJpYyBkZXZpY2VzCi0jCi1DT05GSUdfU05EX0FDOTdfQ09ERUM9bQotIyBDT05GSUdfU05EX0RVTU1ZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NVFBBViBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfU0VSSUFMX1UxNjU1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTVBVNDAxIGlzIG5vdCBzZXQKLQotIwotIyBBTFNBIEFSTSBkZXZpY2VzCi0jCi1DT05GSUdfU05EX1BYQTJYWF9QQ009bQotQ09ORklHX1NORF9QWEEyWFhfQUM5Nz1tCi0KLSMKLSMgVVNCIGRldmljZXMKLSMKLSMgQ09ORklHX1NORF9VU0JfQVVESU8gaXMgbm90IHNldAotIyBDT05GSUdfU05EX1VTQl9DQUlBUSBpcyBub3Qgc2V0Ci0KLSMKLSMgU3lzdGVtIG9uIENoaXAgYXVkaW8gc3VwcG9ydAotIwotIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0Ci0KLSMKLSMgT3BlbiBTb3VuZCBTeXN0ZW0KLSMKLSMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKLUNPTkZJR19BQzk3X0JVUz1tCi0KLSMKLSMgSElEIERldmljZXMKLSMKLUNPTkZJR19ISUQ9eQotIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgSW5wdXQgRGV2aWNlcwotIwotQ09ORklHX1VTQl9ISUQ9eQotIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ISURfRkYgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIHN1cHBvcnQKLSMKLUNPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKLUNPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15Ci0jIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCPXkKLSMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwotIwotQ09ORklHX1VTQl9ERVZJQ0VGUz15Ci0jIENPTkZJR19VU0JfREVWSUNFX0NMQVNTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKLSMKLSMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX09IQ0lfSENEPXkKLSMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldAotQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQotIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCi0jCi0jIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKLQotIwotIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCi0jCi0KLSMKLSMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgotIwotQ09ORklHX1VTQl9TVE9SQUdFPXkKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9EUENNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIEltYWdpbmcgZGV2aWNlcwotIwotIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX01PTiBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIHBvcnQgZHJpdmVycwotIwotCi0jCi0jIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKLSMKLSMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAotCi0jCi0jIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKLSMKLSMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERTTCBtb2RlbSBzdXBwb3J0Ci0jCi0KLSMKLSMgVVNCIEdhZGdldCBTdXBwb3J0Ci0jCi0jIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKLUNPTkZJR19NTUM9bQotIyBDT05GSUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX01NQ19VTlNBRkVfUkVTVU1FIGlzIG5vdCBzZXQKLQotIwotIyBNTUMvU0QgQ2FyZCBEcml2ZXJzCi0jCi1DT05GSUdfTU1DX0JMT0NLPW0KLQotIwotIyBNTUMvU0QgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKLSMKLUNPTkZJR19NTUNfUFhBPW0KLQotIwotIyBSZWFsIFRpbWUgQ2xvY2sKLSMKLUNPTkZJR19SVENfTElCPXkKLUNPTkZJR19SVENfQ0xBU1M9bQotCi0jCi0jIFJUQyBpbnRlcmZhY2VzCi0jCi1DT05GSUdfUlRDX0lOVEZfU1lTRlM9eQotQ09ORklHX1JUQ19JTlRGX1BST0M9eQotQ09ORklHX1JUQ19JTlRGX0RFVj15Ci0jIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBJMkMgUlRDIGRyaXZlcnMKLSMKLQotIwotIyBTUEkgUlRDIGRyaXZlcnMKLSMKLQotIwotIyBQbGF0Zm9ybSBSVEMgZHJpdmVycwotIwotIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKLUNPTkZJR19SVENfRFJWX1YzMDIwPW0KLQotIwotIyBvbi1DUFUgUlRDIGRyaXZlcnMKLSMKLUNPTkZJR19SVENfRFJWX1NBMTEwMD1tCi0KLSMKLSMgRmlsZSBzeXN0ZW1zCi0jCi1DT05GSUdfRVhUMl9GUz15Ci0jIENPTkZJR19FWFQyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKLUNPTkZJR19FWFQzX0ZTPXkKLUNPTkZJR19FWFQzX0ZTX1hBVFRSPXkKLSMgQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAotIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0Ci1DT05GSUdfSkJEPXkKLSMgQ09ORklHX0pCRF9ERUJVRyBpcyBub3Qgc2V0Ci1DT05GSUdfRlNfTUJDQUNIRT15Ci0jIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19JTk9USUZZPXkKLUNPTkZJR19JTk9USUZZX1VTRVI9eQotIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQotIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAotIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcwotIwotIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VREZfRlMgaXMgbm90IHNldAotCi0jCi0jIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKLSMKLUNPTkZJR19GQVRfRlM9eQotQ09ORklHX01TRE9TX0ZTPXkKLUNPTkZJR19WRkFUX0ZTPXkKLUNPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKLUNPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKLSMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAotCi0jCi0jIFBzZXVkbyBmaWxlc3lzdGVtcwotIwotQ09ORklHX1BST0NfRlM9eQotQ09ORklHX1BST0NfU1lTQ1RMPXkKLUNPTkZJR19TWVNGUz15Ci1DT05GSUdfVE1QRlM9eQotIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0Ci1DT05GSUdfUkFNRlM9eQotIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKLSMKLSMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAotQ09ORklHX0pGRlMyX0ZTPXkKLUNPTkZJR19KRkZTMl9GU19ERUJVRz0wCi1DT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQotQ09ORklHX0pGRlMyX1NVTU1BUlk9eQotIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAotIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0Ci1DT05GSUdfSkZGUzJfWkxJQj15Ci1DT05GSUdfSkZGUzJfUlRJTUU9eQotIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAotIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmsgRmlsZSBTeXN0ZW1zCi0jCi1DT05GSUdfTkZTX0ZTPXkKLUNPTkZJR19ORlNfVjM9eQotIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU0QgaXMgbm90IHNldAotQ09ORklHX1JPT1RfTkZTPXkKLUNPTkZJR19MT0NLRD15Ci1DT05GSUdfTE9DS0RfVjQ9eQotQ09ORklHX05GU19DT01NT049eQotQ09ORklHX1NVTlJQQz15Ci0jIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKLUNPTkZJR19TTUJfRlM9eQotIyBDT05GSUdfU01CX05MU19ERUZBVUxUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NJRlMgaXMgbm90IHNldAotIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHXzlQX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBQYXJ0aXRpb24gVHlwZXMKLSMKLSMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0Ci1DT05GSUdfTVNET1NfUEFSVElUSU9OPXkKLQotIwotIyBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAotIwotQ09ORklHX05MUz15Ci1DT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKLUNPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKLSMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAotQ09ORklHX05MU19JU084ODU5XzE9eQotIyBDT05GSUdfTkxTX0lTTzg4NTlfMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAotQ09ORklHX05MU19VVEY4PXkKLQotIwotIyBEaXN0cmlidXRlZCBMb2NrIE1hbmFnZXIKLSMKLSMgQ09ORklHX0RMTSBpcyBub3Qgc2V0Ci0KLSMKLSMgUHJvZmlsaW5nIHN1cHBvcnQKLSMKLSMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0Ci0KLSMKLSMgS2VybmVsIGhhY2tpbmcKLSMKLSMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKLUNPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15Ci1DT05GSUdfTUFHSUNfU1lTUlE9eQotIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAotIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0Ci1DT05GSUdfREVCVUdfS0VSTkVMPXkKLSMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAotIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKLUNPTkZJR19ERUJVR19JTkZPPXkKLSMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAotQ09ORklHX0ZSQU1FX1BPSU5URVI9eQotQ09ORklHX0ZPUkNFRF9JTkxJTklORz15Ci0jIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0Ci1DT05GSUdfREVCVUdfVVNFUj15Ci1DT05GSUdfREVCVUdfRVJST1JTPXkKLUNPTkZJR19ERUJVR19MTD15Ci0jIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAotCi0jCi0jIFNlY3VyaXR5IG9wdGlvbnMKLSMKLSMgQ09ORklHX0tFWVMgaXMgbm90IHNldAotIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAotCi0jCi0jIENyeXB0b2dyYXBoaWMgb3B0aW9ucwotIwotQ09ORklHX0NSWVBUTz15Ci1DT05GSUdfQ1JZUFRPX0FMR0FQST1tCi1DT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj1tCi1DT05GSUdfQ1JZUFRPX01BTkFHRVI9bQotIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19FQ0I9bQotQ09ORklHX0NSWVBUT19DQkM9bQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQUVTPW0KLSMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0FSQzQ9bQotIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0KLSMKLSMgSGFyZHdhcmUgY3J5cHRvIGRldmljZXMKLSMKLQotIwotIyBMaWJyYXJ5IHJvdXRpbmVzCi0jCi1DT05GSUdfQklUUkVWRVJTRT15Ci0jIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKLUNPTkZJR19DUkMzMj15Ci0jIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAotQ09ORklHX1pMSUJfSU5GTEFURT15Ci1DT05GSUdfWkxJQl9ERUZMQVRFPXkKLUNPTkZJR19QTElTVD15Ci1DT05GSUdfSEFTX0lPTUVNPXkKLUNPTkZJR19IQVNfSU9QT1JUPXkKLUNPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZwppbmRleCAyNGE3MDFhLi4yMWFhMDEzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnCkBAIC0xODQsNyArMTg0LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvZXNlcmllc19weGFfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9lc2VyaWVzX3B4YV9kZWZjb25maWcKaW5kZXggZWQ0ODdiOS4uNDkzZWNlZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9lc2VyaWVzX3B4YV9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9lc2VyaWVzX3B4YV9kZWZjb25maWcKQEAgLTI1MSw3ICsyNTEsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiBDT05GSUdfQUVBQkk9eQogQ09ORklHX09BQklfQ09NUEFUPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvaW14MjdhZHNfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9pbXgyN2Fkc19kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNkOTViOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvaW14MjdhZHNfZGVmY29uZmlnCkBAIC0wLDAgKzEsODI2IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM2CisjIEZyaSBKdW4gMjAgMTY6Mjk6MzQgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorQ09ORklHX0dFTkVSSUNfR1BJTz15CitDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19NTVU9eQorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19BUkNIX01URF9YSVA9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKK0NPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CisjIENPTkZJR19TV0FQIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CitDT05GSUdfUE9TSVhfTVFVRVVFPXkKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAorQ09ORklHX1NZU0NUTD15CitDT05GSUdfRU1CRURERUQ9eQorQ09ORklHX1VJRDE2PXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQorQ09ORklHX0tBTExTWU1TPXkKK0NPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkKK0NPTkZJR19IT1RQTFVHPXkKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0NPTVBBVF9CUks9eQorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tNT0QgaXMgbm90IHNldAorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CisjIENPTkZJR19JT1NDSEVEX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPU0NIRURfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfSU9TQ0hFRF9DRlEgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX05PT1A9eQorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0ibm9vcCIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NWEM9eQorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgRnJlZXNjYWxlIE1YQyBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19BUkNIX01YMj15CisjIENPTkZJR19BUkNIX01YMyBpcyBub3Qgc2V0CisKKyMKKyMgTVgyIGZhbWlseSBDUFUgc3VwcG9ydAorIworQ09ORklHX01BQ0hfTVgyNz15CisKKyMKKyMgTVgyIFBsYXRmb3JtcworIworQ09ORklHX01BQ0hfTVgyN0FEUz15CisjIENPTkZJR19NQUNIX1BDTTAzOCBpcyBub3Qgc2V0CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9BUk05MjZUPXkKK0NPTkZJR19DUFVfMzJ2NT15CitDT05GSUdfQ1BVX0FCUlRfRVY1VEo9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9WNFdCPXkKK0NPTkZJR19DUFVfVExCX1Y0V0JJPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKK0NPTkZJR19BUk1fVEhVTUI9eQorIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX1dSSVRFVEhST1VHSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfQ0FDSEVfUk9VTkRfUk9CSU4gaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorIyBDT05GSUdfT0FCSV9DT01QQVQgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0iIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworIyBDT05GSUdfUE0gaXMgbm90IHNldAorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKK0NPTkZJR19QQUNLRVRfTU1BUD15CitDT05GSUdfVU5JWD15CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKKyMgQ09ORklHX0lQX1BOUF9ESENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1BOUF9CT09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKKyMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKKyMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworQ09ORklHX01URF9DRkk9eQorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9HRU5fUFJPQkU9eQorQ09ORklHX01URF9DRklfQURWX09QVElPTlM9eQorQ09ORklHX01URF9DRklfTk9TV0FQPXkKKyMgQ09ORklHX01URF9DRklfQkVfQllURV9TV0FQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfTEVfQllURV9TV0FQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0dFT01FVFJZPXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKKyMgQ09ORklHX01URF9DRklfSTIgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PVFAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSU5URUxFWFQ9eQorIyBDT05GSUdfTVREX0NGSV9BTURTVEQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9TVEFBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX1VUSUw9eQorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1hJUCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQPXkKK0NPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfTVREX1BIWVNNQVBfTEVOPTB4MAorQ09ORklHX01URF9QSFlTTUFQX0JBTktXSURUSD0yCisjIENPTkZJR19NVERfQVJNX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVj15CisjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CisjIENPTkZJR19NSUkgaXMgbm90IHNldAorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfRkVDX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15CisjIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAorCisjCisjIElucHV0IERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19JTlBVVF9LRVlCT0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1UgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VDQjE0MDAgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCisjIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2hhcmFjdGVyIGRldmljZXMKKyMKKyMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCisjIENPTkZJR19TRVJJQUxfSU1YIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYOThfUFRZUz15CisjIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisKKyMKKyMgU1BJIEdQSU8gZXhwYW5kZXJzOgorIworIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19FR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfU1VQUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VQUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCisjIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOT1RJRlkgaXMgbm90IHNldAorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGQVRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX1NVTU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CisjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PW0KKyMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD1tCisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKKyMgQ09ORklHX05MU19JU084ODU5XzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE1PW0KKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1VTRVIgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9pb3AxM3h4X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMTN4eF9kZWZjb25maWcKaW5kZXggOTg4YjRkMS4uNDgyZTU3MCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9pb3AxM3h4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2lvcDEzeHhfZGVmY29uZmlnCkBAIC0xOTcsNyArMTk3LDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMzJ4X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMzJ4X2RlZmNvbmZpZwppbmRleCA4M2Y0MGQ0Li44NjEyZjU4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2lvcDMyeF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9pb3AzMnhfZGVmY29uZmlnCkBAIC0yMDEsNyArMjAxLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMzN4X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMzN4X2RlZmNvbmZpZwppbmRleCA5MTdhZmI1Li44YjAwOThkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2lvcDMzeF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9pb3AzM3hfZGVmY29uZmlnCkBAIC0xOTcsNyArMTk3LDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvaXhwMjAwMF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2l4cDIwMDBfZGVmY29uZmlnCmluZGV4IGY4Zjk3OTMuLjg0NjgwZGIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaXhwMjAwMF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9peHAyMDAwX2RlZmNvbmZpZwpAQCAtMTg0LDcgKzE4NCw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2l4cDIzeHhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9peHAyM3h4X2RlZmNvbmZpZwppbmRleCAyN2NmMDIyLi40YTJmN2IyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2l4cDIzeHhfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvaXhwMjN4eF9kZWZjb25maWcKQEAgLTE4MCw3ICsxODAsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnCmluZGV4IGVmYTA0ODUuLmZjMTQ5MzIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWcKQEAgLTE2NSw2ICsxNjUsNyBAQAogQ09ORklHX01BQ0hfTkFTMTAwRD15CiBDT05GSUdfTUFDSF9EU01HNjAwPXkKIENPTkZJR19BUkNIX0lYRFA0WFg9eQorQ09ORklHX01BQ0hfRlNHPXkKIENPTkZJR19DUFVfSVhQNDZYPXkKIENPTkZJR19DUFVfSVhQNDNYPXkKIENPTkZJR19NQUNIX0dUV1g1NzE1PXkKQEAgLTc3MCw3ICs3NzEsNyBAQAogIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9WSUE9eQogIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldApAQCAtMTE0Myw3ICsxMTQ0LDcgQEAKICMgQ09ORklHX1NFTlNPUlNfVklBNjg2QSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1ZUMTIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1ZUODIzMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1c4Mzc4MUQgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfVzgzNzgxRD15CiAjIENPTkZJR19TRU5TT1JTX1c4Mzc5MUQgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODM3OTJEIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVzgzNzkzIGlzIG5vdCBzZXQKQEAgLTEzMzQsOCArMTMzNSw4IEBACiAjCiAjIExFRCBkcml2ZXJzCiAjCi0jIENPTkZJR19MRURTX0lYUDRYWCBpcyBub3Qgc2V0CiBDT05GSUdfTEVEU19HUElPPXkKK0NPTkZJR19MRURTX0ZTRz15CiAKICMKICMgTEVEIFRyaWdnZXJzCkBAIC0xMzY3LDcgKzEzNjgsNyBAQAogIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfUlM1QzM3MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfSVNMMTIwOD15CiBDT05GSUdfUlRDX0RSVl9YMTIwNT15CiBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzPXkKICMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2thZmFfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9rYWZhX2RlZmNvbmZpZwppbmRleCBhZTUxYTQwLi42ZGQ5NWEyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2thZmFfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3Mva2FmYV9kZWZjb25maWcKQEAgLTE2Miw3ICsxNjIsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKIENPTkZJR19QUkVFTVBUPXkKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3Mva2I5MjAyX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3Mva2I5MjAyX2RlZmNvbmZpZwppbmRleCBjMTY1MzdkLi44ZTc0YzY2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2tiOTIwMl9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9rYjkyMDJfZGVmY29uZmlnCkBAIC0xMjYsNyArMTI2LDYgQEAKICMKICMgS2VybmVsIEZlYXR1cmVzCiAjCi0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfRkxBVE1FTT15CiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9raXJrd29vZF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2tpcmt3b29kX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzM1N2JhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9raXJrd29vZF9kZWZjb25maWcKQEAgLTAsMCArMSwxNDI2IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIFN1biBKdW4gMjIgMTU6NTE6MjUgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorQ09ORklHX0dFTkVSSUNfR1BJTz15CitDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19NTVU9eQorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0hBVkVfTEFURU5DWVRPUF9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUPXkKK0NPTkZJR19aT05FX0RNQT15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKK0NPTkZJR19TV0FQPXkKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CisjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMiBpcyBub3Qgc2V0CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CitDT05GSUdfUFJPRklMSU5HPXkKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX09QUk9GSUxFPXkKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKK0NPTkZJR19LUFJPQkVTPXkKK0NPTkZJR19LUkVUUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS01PRCBpcyBub3Qgc2V0CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKK0NPTkZJR19JT1NDSEVEX0FTPXkKK0NPTkZJR19JT1NDSEVEX0RFQURMSU5FPXkKK0NPTkZJR19JT1NDSEVEX0NGUT15CisjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfS0lSS1dPT0Q9eQorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MT0tJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVY3OFhYMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01YQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09SSU9ONVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAorCisjCisjIE1hcnZlbGwgS2lya3dvb2QgSW1wbGVtZW50YXRpb25zCisjCitDT05GSUdfTUFDSF9EQjg4RjYyODFfQlA9eQorQ09ORklHX01BQ0hfUkQ4OEY2MTkyX05BUz15CitDT05GSUdfTUFDSF9SRDg4RjYyODE9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKK0NPTkZJR19QTEFUX09SSU9OPXkKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX0ZFUk9DRU9OPXkKKyMgQ09ORklHX0NQVV9GRVJPQ0VPTl9PTERfSUQgaXMgbm90IHNldAorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUPXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKK0NPTkZJR19DUFVfQ0FDSEVfVklWVD15CitDT05GSUdfQ1BVX0NPUFlfRkVST0NFT049eQorQ09ORklHX0NQVV9UTEJfRkVST0NFT049eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19PVVRFUl9DQUNIRT15CitDT05GSUdfQ0FDSEVfRkVST0NFT05fTDI9eQorCisjCisjIEJ1cyBzdXBwb3J0CisjCitDT05GSUdfUENJPXkKK0NPTkZJR19QQ0lfU1lTQ0FMTD15CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CitDT05GSUdfUENJX0xFR0FDWT15CisjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKK0NPTkZJR19USUNLX09ORVNIT1Q9eQorQ09ORklHX05PX0haPXkKK0NPTkZJR19ISUdIX1JFU19USU1FUlM9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQorQ09ORklHX1BSRUVNUFQ9eQorQ09ORklHX0haPTEwMAorQ09ORklHX0FFQUJJPXkKKyMgQ09ORklHX09BQklfQ09NUEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKK0NPTkZJR19aQk9PVF9ST01fQlNTPTB4MAorQ09ORklHX0NNRExJTkU9IiIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworIyBDT05GSUdfVkZQIGlzIG5vdCBzZXQKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKKyMgQ09ORklHX1BNIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVU1BFTkRfUE9TU0lCTEU9eQorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CitDT05GSUdfUEFDS0VUX01NQVA9eQorQ09ORklHX1VOSVg9eQorQ09ORklHX1hGUk09eQorIyBDT05GSUdfWEZSTV9VU0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVEFUSVNUSUNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorQ09ORklHX0lQX1BOUF9ESENQPXkKK0NPTkZJR19JUF9QTlBfQk9PVFA9eQorIyBDT05GSUdfSVBfUE5QX1JBUlAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX01ST1VURSBpcyBub3Qgc2V0CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorQ09ORklHX0lORVRfRElBRz15CitDT05GSUdfSU5FVF9UQ1BfRElBRz15CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworQ09ORklHX05FVF9QS1RHRU49bQorIyBDT05GSUdfTkVUX1RDUFBST0JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorQ09ORklHX1dJUkVMRVNTX0VYVD15CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj15CisjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CitDT05GSUdfTVREX0pFREVDUFJPQkU9eQorQ09ORklHX01URF9HRU5fUFJPQkU9eQorQ09ORklHX01URF9DRklfQURWX09QVElPTlM9eQorQ09ORklHX01URF9DRklfTk9TV0FQPXkKKyMgQ09ORklHX01URF9DRklfQkVfQllURV9TV0FQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfTEVfQllURV9TV0FQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0dFT01FVFJZPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JTlRFTEVYVD15CisjIENPTkZJR19NVERfQ0ZJX0FNRFNURCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9TVEFBPXkKK0NPTkZJR19NVERfQ0ZJX1VUSUw9eQorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUD15CitDT05GSUdfTVREX1BIWVNNQVBfU1RBUlQ9MHgwCitDT05GSUdfTVREX1BIWVNNQVBfTEVOPTB4MAorQ09ORklHX01URF9QSFlTTUFQX0JBTktXSURUSD0wCisjIENPTkZJR19NVERfQVJNX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0lNUEE3IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9JTlRFTF9WUl9OT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX1BNQzU1MSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfREFUQUZMQVNIIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTTI1UDgwPXkKK0NPTkZJR19NMjVQWFhfVVNFX0ZBU1RfUkVBRD15CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKK0NPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEU9eQorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9DQUZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfT1JJT049eQorIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAorCisjCisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcworIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX0JMS19DUFFfREEgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0NQUV9DSVNTX0RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfREFDOTYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVU1FTSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfTE9PUD15CisjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TWDggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKKyMgQ09ORklHX0lERSBpcyBub3Qgc2V0CisKKyMKKyMgU0NTSSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTST15CitDT05GSUdfU0NTSV9ETUE9eQorIyBDT05GSUdfU0NTSV9UR1QgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfUFJPQ19GUyBpcyBub3Qgc2V0CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX1NSPW0KKyMgQ09ORklHX0JMS19ERVZfU1JfVkVORE9SIGlzIG5vdCBzZXQKK0NPTkZJR19DSFJfREVWX1NHPW0KKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKKyMgQ09ORklHX1NDU0lfTVVMVElfTFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KKworIworIyBTQ1NJIFRyYW5zcG9ydHMKKyMKKyMgQ09ORklHX1NDU0lfU1BJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfTE9XTEVWRUw9eQorIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfM1dfOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUFDUkFJRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzdYWFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzc5WFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM5NFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRFBUX0kyTyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FEVkFOU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQVJDTVNSIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FR0FSQUlEX05FV0dFTiBpcyBub3Qgc2V0CisjIENPTkZJR19NRUdBUkFJRF9MRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfTUVHQVJBSURfU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSFBUSU9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRE1YMzE5MUQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GVVRVUkVfRE9NQUlOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU5JVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU5JQTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX01WU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1RFWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NZTTUzQzhYWF8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVBSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTEFfRkMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTEFfSVNDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MUEZDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREMzOTV4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREMzOTBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTlNQMzIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CitDT05GSUdfQVRBPXkKKyMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQorIyBDT05GSUdfU0FUQV9BSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAorQ09ORklHX1NBVEFfTVY9eQorIyBDT05GSUdfU0FUQV9OViBpcyBub3Qgc2V0CisjIENPTkZJR19QRENfQURNQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1FTVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FMSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FNRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FSVE9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQVRJSVhQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ01ENjQwX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NNRDY0WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NTNTUyMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NTNTUzMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NZUFJFU1MgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9FRkFSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9HRU5FUklDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUMzY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUMzdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUM1gyTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDNYMyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0lUODIxWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0lUODIxMyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0pNSUNST04gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9UUklGTEVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTUFSVkVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX01QSUlYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfT0xEUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05FVENFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OSU5KQTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTUgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PUFRJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfT1BUSURNQSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BEQ19PTEQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SQURJU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUloxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0MxMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0VSVkVSV09SS1MgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QREMyMDI3WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NJTDY4MCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDSCBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAorCisjCisjIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKKyMKKyMgQ09ORklHX0ZJUkVXSVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUUxMzk0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyTyBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNORVQgaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBUFBZTUVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5HRU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0FTU0lOSSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfVkVORE9SXzNDT00gaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19FTkMyOEo2MCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfVFVMSVAgaXMgbm90IHNldAorIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfUENJPXkKKyMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAorIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldAorIyBDT05GSUdfQURBUFRFQ19TVEFSRklSRSBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfRk9SQ0VERVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VFUFJPMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAgaXMgbm90IHNldAorIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BVFNFTUkgaXMgbm90IHNldAorIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKKyMgQ09ORklHXzgxMzlUT08gaXMgbm90IHNldAorIyBDT05GSUdfUjYwNDAgaXMgbm90IHNldAorIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VQSUMxMDAgaXMgbm90IHNldAorIyBDT05GSUdfU1VOREFOQ0UgaXMgbm90IHNldAorIyBDT05GSUdfVExBTiBpcyBub3Qgc2V0CisjIENPTkZJR19WSUFfUkhJTkUgaXMgbm90IHNldAorIyBDT05GSUdfU0M5MjAzMSBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWXzEwMDA9eQorIyBDT05GSUdfQUNFTklDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMMksgaXMgbm90IHNldAorQ09ORklHX0UxMDAwPXkKK0NPTkZJR19FMTAwMF9OQVBJPXkKKyMgQ09ORklHX0UxMDAwX0RJU0FCTEVfUEFDS0VUX1NQTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRSBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEVfRU5BQkxFRCBpcyBub3Qgc2V0CisjIENPTkZJR19JUDEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUdCIGlzIG5vdCBzZXQKKyMgQ09ORklHX05TODM4MjAgaXMgbm90IHNldAorIyBDT05GSUdfSEFNQUNISSBpcyBub3Qgc2V0CisjIENPTkZJR19ZRUxMT1dGSU4gaXMgbm90IHNldAorIyBDT05GSUdfUjgxNjkgaXMgbm90IHNldAorIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLR0UgaXMgbm90IHNldAorIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0CisjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAorIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JOWDIgaXMgbm90IHNldAorQ09ORklHX01WNjQzWFhfRVRIPXkKKyMgQ09ORklHX1FMQTNYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVRMMSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorIyBDT05GSUdfVFIgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CisjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CisjIENPTkZJR19QUFAgaXMgbm90IHNldAorIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfRkMgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15CisjIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKK0NPTkZJR19JTlBVVF9NT1VTRURFVj15CitDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVg9eQorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9FVkRFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX0lOUFVUX0tFWUJPQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfVlQgaXMgbm90IHNldAorIyBDT05GSUdfREVWS01FTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworQ09ORklHX1NFUklBTF84MjUwPXkKK0NPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFPXkKKyMgQ09ORklHX1NFUklBTF84MjUwX1BDSSBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfTlJfVUFSVFM9NAorQ09ORklHX1NFUklBTF84MjUwX1JVTlRJTUVfVUFSVFM9MgorIyBDT05GSUdfU0VSSUFMXzgyNTBfRVhURU5ERUQgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZQT1JUPXkKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorQ09ORklHX0kyQ19DSEFSREVWPXkKKworIworIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNVgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ3NTYgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDgxMTEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0k4MDEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0k4MTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BJSVg0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ORk9SQ0UyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BST1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0FWQUdFNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM1NTk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM2MzAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzk2WCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfTVY2NFhYWD15CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfU1BJPXkKKyMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU1BJX01BU1RFUj15CisKKyMKKyMgU1BJIE1hc3RlciBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1NQSV9CSVRCQU5HIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfT1JJT049eQorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BU0lDMyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBTb3VuZAorIworIyBDT05GSUdfU09VTkQgaXMgbm90IHNldAorQ09ORklHX0hJRF9TVVBQT1JUPXkKK0NPTkZJR19ISUQ9eQorIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRFJBVyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIElucHV0IERldmljZXMKKyMKK0NPTkZJR19VU0JfSElEPXkKKyMgQ09ORklHX1VTQl9ISURJTlBVVF9QT1dFUkJPT0sgaXMgbm90IHNldAorIyBDT05GSUdfSElEX0ZGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9ISURERVYgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVVBQT1JUPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCitDT05GSUdfVVNCX0RFVklDRUZTPXkKK0NPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKKyMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0VIQ0lfSENEPXkKK0NPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CitDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQ9eQorIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT0hDSV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VIQ0lfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfUFJJTlRFUj15CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworQ09ORklHX1VTQl9TVE9SQUdFPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCPXkKK0NPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NUT1JBR0VfRFBDTT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5PXkKK0NPTkZJR19VU0JfU1RPUkFHRV9TRERSNTU9eQorQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01PTiBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycworIworIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NJU1VTQlZHQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CisjIENPTkZJR19MRURTX0NMQVNTIGlzIG5vdCBzZXQKKworIworIyBMRUQgZHJpdmVycworIworCisjCisjIExFRCBUcmlnZ2VycworIworIyBDT05GSUdfTEVEU19UUklHR0VSUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CitDT05GSUdfUlRDX0NMQVNTPXkKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUlRDIGludGVyZmFjZXMKKyMKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAorCisjCisjIEkyQyBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9EUzEzMDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNzQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX01WPXkKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKKworIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19ETUFERVZJQ0VTPXkKKworIworIyBETUEgRGV2aWNlcworIworQ09ORklHX01WX1hPUj15CitDT05GSUdfRE1BX0VOR0lORT15CisKKyMKKyMgRE1BIENsaWVudHMKKyMKKyMgQ09ORklHX05FVF9ETUEgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlM9eQorIyBDT05GSUdfRVhUM19GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KQkQ9eQorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CitDT05GSUdfWEZTX0ZTPXkKKyMgQ09ORklHX1hGU19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19SVCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfSVNPOTY2MF9GUz15CitDT05GSUdfSk9MSUVUPXkKKyMgQ09ORklHX1pJU09GUyBpcyBub3Qgc2V0CitDT05GSUdfVURGX0ZTPW0KK0NPTkZJR19VREZfTkxTPXkKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKK0NPTkZJR19NU0RPU19GUz15CitDT05GSUdfVkZBVF9GUz15CitDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorQ09ORklHX0NSQU1GUz15CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CisjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15CisjIENPTkZJR19BQ09STl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfT1NGX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BTUlHQV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfQVRBUklfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ19QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CisjIENPTkZJR19CU0RfRElTS0xBQkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX1NVQlBBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xETV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0dJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfS0FSTUFfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU1lTVjY4X1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE9eQorQ09ORklHX05MU19JU084ODU5XzI9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfVVRGOD15CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorQ09ORklHX01BR0lDX1NZU1JRPXkKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0tFUk5FTD15CisjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CitDT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorIyBDT05GSUdfU0NIRURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUFJFRU1QVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfSU5GTz15CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19LUFJPQkVTX1NBTklUWV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfTEtEVE0gaXMgbm90IHNldAorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBVEVOQ1lUT1AgaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfVVNFUj15CitDT05GSUdfREVCVUdfRVJST1JTPXkKKyMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19MTD15CisjIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorQ09ORklHX0FTWU5DX0NPUkU9eQorQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCitDT05GSUdfQ1JZUFRPX0FMR0FQST1tCitDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj1tCitDT05GSUdfQ1JZUFRPX01BTkFHRVI9bQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fSFc9eQorIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfQ0NJVFQ9eQorQ09ORklHX0NSQzE2PXkKK0NPTkZJR19DUkNfSVRVX1Q9bQorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorQ09ORklHX0xJQkNSQzMyQz15CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9rczg2OTVfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9rczg2OTVfZGVmY29uZmlnCmluZGV4IDhhYjIxYTAuLjYwNzdmMmMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3Mva3M4Njk1X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2tzODY5NV9kZWZjb25maWcKQEAgLTE3NCw3ICsxNzQsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9sb2tpX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbG9raV9kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdkYTdjMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvbG9raV9kZWZjb25maWcKQEAgLTAsMCArMSwxMTQ3IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIEZyaSBKdW4gMTMgMDM6MDc6NDkgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorIyBDT05GSUdfR0VORVJJQ19HUElPIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfSEFWRV9MQVRFTkNZVE9QX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19MT0NLX0tFUk5FTD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCitDT05GSUdfTE9DQUxWRVJTSU9OPSIiCitDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQorQ09ORklHX1NXQVA9eQorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19IT1RQTFVHPXkKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0NPTVBBVF9CUks9eQorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tNT0QgaXMgbm90IHNldAorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CitDT05GSUdfSU9TQ0hFRF9ERUFETElORT15CitDT05GSUdfSU9TQ0hFRF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0NGUT15CisjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iY2ZxIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS0lSS1dPT0QgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorQ09ORklHX0FSQ0hfTE9LST15CisjIENPTkZJR19BUkNIX01WNzhYWDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19NQUNIX0xCODhSQzg0ODA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKK0NPTkZJR19QTEFUX09SSU9OPXkKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX0ZFUk9DRU9OPXkKKyMgQ09ORklHX0NQVV9GRVJPQ0VPTl9PTERfSUQgaXMgbm90IHNldAorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUPXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKK0NPTkZJR19DUFVfQ0FDSEVfVklWVD15CitDT05GSUdfQ1BVX0NPUFlfRkVST0NFT049eQorQ09ORklHX0NQVV9UTEJfRkVST0NFT049eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX09VVEVSX0NBQ0hFIGlzIG5vdCBzZXQKKworIworIyBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKK0NPTkZJR19USUNLX09ORVNIT1Q9eQorQ09ORklHX05PX0haPXkKK0NPTkZJR19ISUdIX1JFU19USU1FUlM9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQorQ09ORklHX1BSRUVNUFQ9eQorQ09ORklHX0haPTEwMAorQ09ORklHX0FFQUJJPXkKK0NPTkZJR19PQUJJX0NPTVBBVD15CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSIiCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKKyMgQ09ORklHX0ZQRV9OV0ZQRSBpcyBub3Qgc2V0CisjIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0CisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworIyBDT05GSUdfUE0gaXMgbm90IHNldAorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKK0NPTkZJR19QQUNLRVRfTU1BUD15CitDT05GSUdfVU5JWD15CitDT05GSUdfWEZSTT15CisjIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfSU5FVD15CitDT05GSUdfSVBfTVVMVElDQVNUPXkKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CitDT05GSUdfSVBfUE5QX0RIQ1A9eQorQ09ORklHX0lQX1BOUF9CT09UUD15CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD15CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9ESUFHPXkKK0NPTkZJR19JTkVUX1RDUF9ESUFHPXkKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCitDT05GSUdfTkVUX1BLVEdFTj1tCisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19XSVJFTEVTU19FWFQ9eQorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKK0NPTkZJR19GV19MT0FERVI9eQorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorQ09ORklHX0ZUTD15CitDT05GSUdfTkZUTD15CisjIENPTkZJR19ORlRMX1JXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CitDT05GSUdfTVREX0pFREVDUFJPQkU9eQorQ09ORklHX01URF9HRU5fUFJPQkU9eQorQ09ORklHX01URF9DRklfQURWX09QVElPTlM9eQorQ09ORklHX01URF9DRklfTk9TV0FQPXkKKyMgQ09ORklHX01URF9DRklfQkVfQllURV9TV0FQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfTEVfQllURV9TV0FQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0dFT01FVFJZPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80PXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorQ09ORklHX01URF9DRklfSTI9eQorQ09ORklHX01URF9DRklfSTQ9eQorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPXkKK0NPTkZJR19NVERfQ0ZJX0FNRFNURD15CitDT05GSUdfTVREX0NGSV9TVEFBPXkKK0NPTkZJR19NVERfQ0ZJX1VUSUw9eQorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUD15CitDT05GSUdfTVREX1BIWVNNQVBfU1RBUlQ9MHgwCitDT05GSUdfTVREX1BIWVNNQVBfTEVOPTB4MAorQ09ORklHX01URF9QSFlTTUFQX0JBTktXSURUSD0wCisjIENPTkZJR19NVERfQVJNX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0lNUEE3IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9EQVRBRkxBU0ggaXMgbm90IHNldAorQ09ORklHX01URF9NMjVQODA9eQorQ09ORklHX00yNVBYWF9VU0VfRkFTVF9SRUFEPXkKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURT15CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfT1JJT049eQorIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAorCisjCisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcworIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9MT09QPXkKKyMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfU1I9bQorIyBDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1IgaXMgbm90IHNldAorQ09ORklHX0NIUl9ERVZfU0c9bQorIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAorCisjCisjIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcworIworIyBDT05GSUdfU0NTSV9NVUxUSV9MVU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQVRBPXkKKyMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQorQ09ORklHX0FUQV9TRkY9eQorQ09ORklHX1NBVEFfTVY9eQorIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19FTkMyOEo2MCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CisjIENPTkZJR19FMTAwMEVfRU5BQkxFRCBpcyBub3Qgc2V0CitDT05GSUdfTVY2NDNYWF9FVEg9eQorIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorCisjCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCisjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYPXkKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfRVZERVYgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAorCisjCisjIElucHV0IERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19JTlBVVF9LRVlCT0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCisjIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2hhcmFjdGVyIGRldmljZXMKKyMKK0NPTkZJR19WVD15CitDT05GSUdfVlRfQ09OU09MRT15CitDT05GSUdfSFdfQ09OU09MRT15CisjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworQ09ORklHX1NFUklBTF84MjUwPXkKK0NPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFPXkKK0NPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz00CitDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz0yCisjIENPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CitDT05GSUdfSFdfUkFORE9NPW0KKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkKK0NPTkZJR19JMkNfQ0hBUkRFVj15CisKKyMKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19JMkNfT0NPUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfTVY2NFhYWD15CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfU1BJPXkKK0NPTkZJR19TUElfTUFTVEVSPXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfU1BJX0JJVEJBTkcgaXMgbm90IHNldAorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BU0lDMyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworQ09ORklHX1VTQl9ISUQ9eQorIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfRkYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0kgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCitDT05GSUdfVVNCX0RFVklDRUZTPXkKK0NPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKKyMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfUFJJTlRFUj15CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworQ09ORklHX1VTQl9TVE9SQUdFPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCPXkKK0NPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NUT1JBR0VfRFBDTT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5PXkKK0NPTkZJR19VU0JfU1RPUkFHRV9TRERSNTU9eQorQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01PTiBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycworIworIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CitDT05GSUdfTkVXX0xFRFM9eQorIyBDT05GSUdfTEVEU19DTEFTUyBpcyBub3Qgc2V0CisKKyMKKyMgTEVEIGRyaXZlcnMKKyMKKworIworIyBMRUQgVHJpZ2dlcnMKKyMKKyMgQ09ORklHX0xFRFNfVFJJR0dFUlMgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCitDT05GSUdfRVhUMl9GUz15CisjIENPTkZJR19FWFQyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKK0NPTkZJR19FWFQzX0ZTPXkKKyMgQ09ORklHX0VYVDNfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CitDT05GSUdfSkJEPXkKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorQ09ORklHX1hGU19GUz15CisjIENPTkZJR19YRlNfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfUlQgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworQ09ORklHX0lTTzk2NjBfRlM9eQorIyBDT05GSUdfSk9MSUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pJU09GUyBpcyBub3Qgc2V0CitDT05GSUdfVURGX0ZTPW0KK0NPTkZJR19VREZfTkxTPXkKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKK0NPTkZJR19NU0RPU19GUz15CitDT05GSUdfVkZBVF9GUz15CitDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorQ09ORklHX0NSQU1GUz15CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CisjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15CisjIENPTkZJR19BQ09STl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfT1NGX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BTUlHQV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfQVRBUklfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ19QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CitDT05GSUdfQlNEX0RJU0tMQUJFTD15CitDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OPXkKK0NPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT049eQorQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTD15CitDT05GSUdfTERNX1BBUlRJVElPTj15CitDT05GSUdfTERNX0RFQlVHPXkKKyMgQ09ORklHX1NHSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfVUxUUklYX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfU1VOX1BBUlRJVElPTj15CisjIENPTkZJR19LQVJNQV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfRUZJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWNjhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT15CitDT05GSUdfTkxTX0lTTzg4NTlfMj15CisjIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX1VURjggaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQorQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKK0NPTkZJR19NQUdJQ19TWVNSUT15CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX0xBVEVOQ1lUT1AgaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfVVNFUj15CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKK0NPTkZJR19DUllQVE9fQUxHQVBJPW0KK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPW0KK0NPTkZJR19DUllQVE9fTUFOQUdFUj1tCisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9bQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKKyMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKKyMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19IVz15CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQgaXMgbm90IHNldAorQ09ORklHX0NSQ19DQ0lUVD15CitDT05GSUdfQ1JDMTY9eQorQ09ORklHX0NSQ19JVFVfVD1tCitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CitDT05GSUdfTElCQ1JDMzJDPXkKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2xwZDI3MF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2xwZDI3MF9kZWZjb25maWcKaW5kZXggYTNiZjU4My4uMWEzOGQ4ZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9scGQyNzBfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvbHBkMjcwX2RlZmNvbmZpZwpAQCAtMTczLDcgKzE3Myw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2xwZDdhNDA0X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbHBkN2E0MDRfZGVmY29uZmlnCmluZGV4IDQ2YTBmN2YuLjdhMmU5MzIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvbHBkN2E0MDRfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvbHBkN2E0MDRfZGVmY29uZmlnCkBAIC0xNDgsNyArMTQ4LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEU9eQogQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM4ZWJmOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvbXY3OHh4MF9kZWZjb25maWcKQEAgLTAsMCArMSwxNDQ1IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIEZyaSBKdW4gMTMgMDI6NTc6MzIgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorIyBDT05GSUdfR0VORVJJQ19HUElPIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfSEFWRV9MQVRFTkNZVE9QX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19MT0NLX0tFUk5FTD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCitDT05GSUdfTE9DQUxWRVJTSU9OPSIiCitDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQorQ09ORklHX1NXQVA9eQorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorQ09ORklHX0tBTExTWU1TX0FMTD15CisjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19IT1RQTFVHPXkKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0NPTVBBVF9CUks9eQorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CisjIENPTkZJR19TTFVCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMQUIgaXMgbm90IHNldAorQ09ORklHX1NMVUI9eQorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CitDT05GSUdfUFJPRklMSU5HPXkKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX09QUk9GSUxFPXkKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKK0NPTkZJR19LUFJPQkVTPXkKK0NPTkZJR19LUkVUUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LTU9EIGlzIG5vdCBzZXQKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX0lPU0NIRURfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tJUktXT09EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTE9LSSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NVjc4WFgwPXkKKyMgQ09ORklHX0FSQ0hfTVhDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NU003WDAwQSBpcyBub3Qgc2V0CisKKyMKKyMgTWFydmVsbCBNVjc4eHgwIEltcGxlbWVudGF0aW9ucworIworQ09ORklHX01BQ0hfREI3OFgwMF9CUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworQ09ORklHX1BMQVRfT1JJT049eQorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfRkVST0NFT049eQorQ09ORklHX0NQVV9GRVJPQ0VPTl9PTERfSUQ9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUPXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKK0NPTkZJR19DUFVfQ0FDSEVfVklWVD15CitDT05GSUdfQ1BVX0NPUFlfRkVST0NFT049eQorQ09ORklHX0NQVV9UTEJfRkVST0NFT049eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19PVVRFUl9DQUNIRT15CitDT05GSUdfQ0FDSEVfRkVST0NFT05fTDI9eQorCisjCisjIEJ1cyBzdXBwb3J0CisjCitDT05GSUdfUENJPXkKK0NPTkZJR19QQ0lfU1lTQ0FMTD15CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CitDT05GSUdfUENJX0xFR0FDWT15CisjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKK0NPTkZJR19USUNLX09ORVNIT1Q9eQorQ09ORklHX05PX0haPXkKK0NPTkZJR19ISUdIX1JFU19USU1FUlM9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQorQ09ORklHX1BSRUVNUFQ9eQorQ09ORklHX0haPTEwMAorQ09ORklHX0FFQUJJPXkKK0NPTkZJR19PQUJJX0NPTVBBVD15CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSIiCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKK0NPTkZJR19GUEVfTldGUEU9eQorIyBDT05GSUdfRlBFX05XRlBFX1hQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZQRV9GQVNURlBFIGlzIG5vdCBzZXQKK0NPTkZJR19WRlA9eQorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworIyBDT05GSUdfUE0gaXMgbm90IHNldAorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKK0NPTkZJR19QQUNLRVRfTU1BUD15CitDT05GSUdfVU5JWD15CitDT05GSUdfWEZSTT15CisjIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfSU5FVD15CitDT05GSUdfSVBfTVVMVElDQVNUPXkKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CitDT05GSUdfSVBfUE5QX0RIQ1A9eQorQ09ORklHX0lQX1BOUF9CT09UUD15CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD15CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9ESUFHPXkKK0NPTkZJR19JTkVUX1RDUF9ESUFHPXkKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCitDT05GSUdfTkVUX1BLVEdFTj1tCisjIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CitDT05GSUdfV0lSRUxFU1NfRVhUPXkKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CitDT05GSUdfRldfTE9BREVSPXkKKyMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKK0NPTkZJR19NVERfSkVERUNQUk9CRT15CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JTlRFTEVYVD15CitDT05GSUdfTVREX0NGSV9BTURTVEQ9eQorIyBDT05GSUdfTVREX0NGSV9TVEFBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX1VUSUw9eQorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUD15CitDT05GSUdfTVREX1BIWVNNQVBfU1RBUlQ9MHgwCitDT05GSUdfTVREX1BIWVNNQVBfTEVOPTB4MAorQ09ORklHX01URF9QSFlTTUFQX0JBTktXSURUSD0wCisjIENPTkZJR19NVERfQVJNX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0lNUEE3IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9JTlRFTF9WUl9OT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX1BNQzU1MSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKK0NPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEU9eQorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9DQUZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfT1JJT049eQorIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAorCisjCisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcworIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX0JMS19DUFFfREEgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0NQUV9DSVNTX0RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfREFDOTYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVU1FTSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfTE9PUD15CisjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TWDggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CitDT05GSUdfTUlTQ19ERVZJQ0VTPXkKKyMgQ09ORklHX1BIQU5UT00gaXMgbm90IHNldAorIyBDT05GSUdfRUVQUk9NXzkzQ1g2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NHSV9JT0M0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJRk1fQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19FTkNMT1NVUkVfU0VSVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKKyMgQ09ORklHX0lERSBpcyBub3Qgc2V0CisKKyMKKyMgU0NTSSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTST15CitDT05GSUdfU0NTSV9ETUE9eQorIyBDT05GSUdfU0NTSV9UR1QgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfUFJPQ19GUyBpcyBub3Qgc2V0CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX1NSPW0KKyMgQ09ORklHX0JMS19ERVZfU1JfVkVORE9SIGlzIG5vdCBzZXQKK0NPTkZJR19DSFJfREVWX1NHPW0KKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKKyMgQ09ORklHX1NDU0lfTVVMVElfTFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KKworIworIyBTQ1NJIFRyYW5zcG9ydHMKKyMKKyMgQ09ORklHX1NDU0lfU1BJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfTE9XTEVWRUw9eQorIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfM1dfOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUFDUkFJRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzdYWFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzc5WFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM5NFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRFBUX0kyTyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FEVkFOU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQVJDTVNSIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FR0FSQUlEX05FV0dFTiBpcyBub3Qgc2V0CisjIENPTkZJR19NRUdBUkFJRF9MRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfTUVHQVJBSURfU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSFBUSU9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRE1YMzE5MUQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GVVRVUkVfRE9NQUlOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU5JVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU5JQTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX01WU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1RFWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NZTTUzQzhYWF8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVBSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTEFfRkMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTEFfSVNDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MUEZDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREMzOTV4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREMzOTBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTlNQMzIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CitDT05GSUdfQVRBPXkKKyMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQorIyBDT05GSUdfU0FUQV9BSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAorQ09ORklHX1NBVEFfTVY9eQorIyBDT05GSUdfU0FUQV9OViBpcyBub3Qgc2V0CisjIENPTkZJR19QRENfQURNQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1FTVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FMSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FNRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FSVE9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQVRJSVhQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ01ENjQwX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NNRDY0WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NTNTUyMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NTNTUzMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NZUFJFU1MgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9FRkFSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9HRU5FUklDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUMzY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUMzdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUM1gyTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDNYMyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0lUODIxWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0lUODIxMyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0pNSUNST04gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9UUklGTEVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTUFSVkVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX01QSUlYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfT0xEUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05FVENFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OSU5KQTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTUgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PUFRJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfT1BUSURNQSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BEQ19PTEQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SQURJU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUloxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0MxMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0VSVkVSV09SS1MgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QREMyMDI3WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NJTDY4MCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDSCBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAorCisjCisjIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKKyMKKyMgQ09ORklHX0ZJUkVXSVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUUxMzk0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyTyBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNORVQgaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBUFBZTUVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5HRU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0FTU0lOSSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfVkVORE9SXzNDT00gaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfVFVMSVAgaXMgbm90IHNldAorIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfUENJPXkKKyMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAorIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldAorIyBDT05GSUdfQURBUFRFQ19TVEFSRklSRSBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfRk9SQ0VERVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VFUFJPMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAgaXMgbm90IHNldAorIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BVFNFTUkgaXMgbm90IHNldAorIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKKyMgQ09ORklHXzgxMzlUT08gaXMgbm90IHNldAorIyBDT05GSUdfUjYwNDAgaXMgbm90IHNldAorIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VQSUMxMDAgaXMgbm90IHNldAorIyBDT05GSUdfU1VOREFOQ0UgaXMgbm90IHNldAorIyBDT05GSUdfVExBTiBpcyBub3Qgc2V0CisjIENPTkZJR19WSUFfUkhJTkUgaXMgbm90IHNldAorIyBDT05GSUdfU0M5MjAzMSBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWXzEwMDA9eQorIyBDT05GSUdfQUNFTklDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMMksgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JR0IgaXMgbm90IHNldAorIyBDT05GSUdfTlM4MzgyMCBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1BQ0hJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1lFTExPV0ZJTiBpcyBub3Qgc2V0CisjIENPTkZJR19SODE2OSBpcyBub3Qgc2V0CisjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAorIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CisjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CisjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAorIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CitDT05GSUdfTVY2NDNYWF9FVEg9eQorIyBDT05GSUdfUUxBM1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEwxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19UUiBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKworIworIyBVU0IgTmV0d29yayBBZGFwdGVycworIworIyBDT05GSUdfVVNCX0NBVEMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9GQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9FVkRFVj15CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX0lOUFVUX0tFWUJPQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKK0NPTkZJR19TRVJJQUxfODI1MD15CitDT05GSUdfU0VSSUFMXzgyNTBfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfODI1MF9QQ0kgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX05SX1VBUlRTPTQKK0NPTkZJR19TRVJJQUxfODI1MF9SVU5USU1FX1VBUlRTPTIKKyMgQ09ORklHX1NFUklBTF84MjUwX0VYVEVOREVEIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMX0pTTSBpcyBub3Qgc2V0CitDT05GSUdfVU5JWDk4X1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTE2CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CitDT05GSUdfREVWUE9SVD15CitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkKK0NPTkZJR19JMkNfQ0hBUkRFVj15CisKKyMKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTVYMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1ENzU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ4MTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19JODAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QSUlYNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfTkZPUkNFMiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfT0NPUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QUk9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NBVkFHRTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTNTU5NSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTNjMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM5NlggaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CitDT05GSUdfSTJDX01WNjRYWFg9eQorCisjCisjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydAorIworIyBDT05GSUdfRFMxNjgyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRUVQUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAorIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CitDT05GSUdfSFdNT049eQorIyBDT05GSUdfSFdNT05fVklEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQUQ3NDE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAyMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMjUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE0xMDI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAyOSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMzEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE05MjQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURUNzQ3MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FEVDc0NzMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BVFhQMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0RTMTYyMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0k1S19BTUIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19GNzE4MDVGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRjcxODgyRkcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19GNzUzNzVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfR0w1MThTTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0dMNTIwU00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19JVDg3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE02MyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNNzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTc3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE03OCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNODAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE04NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNODcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTkwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE05MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNOTMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVgxNjE5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjY1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDODczNjAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQzg3NDI3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfU0lTNTU5NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0RNRTE3MzcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19TTVNDNDdNMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N00xOTIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19TTVNDNDdCMzk3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURTNzgyOCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RITUM1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1ZJQTY4NkEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19WVDEyMTEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19WVDgyMzEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM3ODFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNzkxRCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4Mzc5MkQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM3OTMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODNMNzg1VFMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODNMNzg2TkcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM2MjdIRiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4MzYyN0VIRiBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTl9ERUJVR19DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19EUk0gaXMgbm90IHNldAorIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworQ09ORklHX1VTQl9ISUQ9eQorIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfRkYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRUhDSV9IQ0Q9eQorQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKK0NPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRD15CisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVUhDSV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorQ09ORklHX1VTQl9QUklOVEVSPXkKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKworIworIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCisjCitDT05GSUdfVVNCX1NUT1JBR0U9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUI9eQorQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT009eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9EUENNPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9TRERSMDk9eQorQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NT15CitDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1Q9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTU9OIGlzIG5vdCBzZXQKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0lTVVNCVkdBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKKworIworIyBMRUQgZHJpdmVycworIworCisjCisjIExFRCBUcmlnZ2VycworIworQ09ORklHX0xFRFNfVFJJR0dFUlM9eQorQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUj15CitDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD15CisjIENPTkZJR19MRURTX1RSSUdHRVJfREVGQVVMVF9PTiBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CitDT05GSUdfUlRDX0NMQVNTPXkKK0NPTkZJR19SVENfSENUT1NZUz15CitDT05GSUdfUlRDX0hDVE9TWVNfREVWSUNFPSJydGMwIgorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBSVEMgaW50ZXJmYWNlcworIworQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9EUzEzMDc9eQorIyBDT05GSUdfUlRDX0RSVl9EUzEzNzQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX1JTNUMzNzI9eQorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9NNDFUODA9eQorIyBDT05GSUdfUlRDX0RSVl9NNDFUODBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisKKyMKKyMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlM9eQorIyBDT05GSUdfRVhUM19GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KQkQ9eQorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfSVNPOTY2MF9GUz1tCitDT05GSUdfSk9MSUVUPXkKKyMgQ09ORklHX1pJU09GUyBpcyBub3Qgc2V0CitDT05GSUdfVURGX0ZTPW0KK0NPTkZJR19VREZfTkxTPXkKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKK0NPTkZJR19NU0RPU19GUz15CitDT05GSUdfVkZBVF9GUz15CitDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorQ09ORklHX0NSQU1GUz15CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CisjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15CisjIENPTkZJR19BQ09STl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfT1NGX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BTUlHQV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfQVRBUklfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ19QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CitDT05GSUdfQlNEX0RJU0tMQUJFTD15CisjIENPTkZJR19NSU5JWF9TVUJQQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU09MQVJJU19YODZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTCBpcyBub3Qgc2V0CisjIENPTkZJR19MRE1fUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NHSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfVUxUUklYX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5fUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tBUk1BX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19FRklfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1Y2OF9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKK0NPTkZJR19OTFNfSVNPODg1OV8yPXkKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorQ09ORklHX01BR0lDX1NZU1JRPXkKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0tFUk5FTD15CisjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CitDT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorQ09ORklHX1NDSEVEX0RFQlVHPXkKK0NPTkZJR19TQ0hFRFNUQVRTPXkKKyMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1BSRUVNUFQ9eQorIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLX0FMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST1ZFX0xPQ0tJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTE9DS19TVEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0lORk89eQorIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfS1BST0JFU19TQU5JVFlfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xLRFRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19MQVRFTkNZVE9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1VTRVI9eQorQ09ORklHX0RFQlVHX0VSUk9SUz15CisjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTEw9eQorIyBDT05GSUdfREVCVUdfSUNFRENDIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworQ09ORklHX0NSWVBUT19BTEdBUEk9bQorQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9bQorQ09ORklHX0NSWVBUT19NQU5BR0VSPW0KKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz1tCisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0hXPXkKKyMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorQ09ORklHX0NSQ19JVFVfVD1tCitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvbXgzMWFkc19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL214MzFhZHNfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNTI3MTcKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL214MzFhZHNfZGVmY29uZmlnCkBAIC0wLDAgKzEsODM5IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM2CisjIEZyaSBKdW4gMjAgMTY6MjE6MTEgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorQ09ORklHX0dFTkVSSUNfR1BJTz15CitDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19NTVU9eQorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19BUkNIX01URF9YSVA9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKK0NPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CitDT05GSUdfU1dBUD15CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKK0NPTkZJR19JS0NPTkZJRz15CitDT05GSUdfSUtDT05GSUdfUFJPQz15CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CitDT05GSUdfR1JPVVBfU0NIRUQ9eQorQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQ9eQorIyBDT05GSUdfUlRfR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX1VTRVJfU0NIRUQ9eQorIyBDT05GSUdfQ0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19IT1RQTFVHPXkKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0NPTVBBVF9CUks9eQorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKK0NPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEPXkKK0NPTkZJR19NT0RWRVJTSU9OUz15CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorQ09ORklHX0tNT0Q9eQorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CitDT05GSUdfSU9TQ0hFRF9ERUFETElORT15CitDT05GSUdfSU9TQ0hFRF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0NGUT15CisjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iY2ZxIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX01YQz15CisjIENPTkZJR19BUkNIX09SSU9ONVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAorCisjCisjIEJvb3Qgb3B0aW9ucworIworCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKKworIworIyBGcmVlc2NhbGUgTVhDIEltcGxlbWVudGF0aW9ucworIworIyBDT05GSUdfQVJDSF9NWDIgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfTVgzPXkKKworIworIyBNWDMgT3B0aW9ucworIworQ09ORklHX01BQ0hfTVgzMUFEUz15CisjIENPTkZJR19NQUNIX1BDTTAzNyBpcyBub3Qgc2V0CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9WNj15CisjIENPTkZJR19DUFVfMzJ2NksgaXMgbm90IHNldAorQ09ORklHX0NQVV8zMnY2PXkKK0NPTkZJR19DUFVfQUJSVF9FVjY9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WNj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJUFQ9eQorQ09ORklHX0NQVV9DT1BZX1Y2PXkKK0NPTkZJR19DUFVfVExCX1Y2PXkKK0NPTkZJR19DUFVfSEFTX0FTSUQ9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9CUFJFRElDVF9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX09VVEVSX0NBQ0hFIGlzIG5vdCBzZXQKKworIworIyBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKK0NPTkZJR19USUNLX09ORVNIT1Q9eQorQ09ORklHX05PX0haPXkKK0NPTkZJR19ISUdIX1JFU19USU1FUlM9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQorQ09ORklHX1BSRUVNUFQ9eQorQ09ORklHX0haPTEwMAorQ09ORklHX0FFQUJJPXkKKyMgQ09ORklHX09BQklfQ09NUEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKK0NPTkZJR19aQk9PVF9ST01fQlNTPTB4MAorQ09ORklHX0NNRExJTkU9Im5vaW5pdHJkIGNvbnNvbGU9dHR5bXhjMCwxMTUyMDAgcm9vdD0vZGV2L210ZGJsb2NrMiBydyBpcD1vZmYiCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKK0NPTkZJR19WRlA9eQorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworIyBDT05GSUdfUE0gaXMgbm90IHNldAorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYPXkKK0NPTkZJR19YRlJNPXkKKyMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKKyMgQ09ORklHX0lQX01VTFRJQ0FTVCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorQ09ORklHX0lQX1BOUF9ESENQPXkKKyMgQ09ORklHX0lQX1BOUF9CT09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX0RJQUc9eQorQ09ORklHX0lORVRfVENQX0RJQUc9eQorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKKyMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKK0NPTkZJR19GV19MT0FERVI9bQorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKK0NPTkZJR19NVERfUkVEQk9PVF9QQVJUUz15CitDT05GSUdfTVREX1JFREJPT1RfRElSRUNUT1JZX0JMT0NLPS0xCisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUU19VTkFMTE9DQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUU19SRUFET05MWSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzEgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorIyBDT05GSUdfTVREX0NGSV9JMiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0lOVEVMRVhUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0FNRFNURD15CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfVVRJTD15CitDT05GSUdfTVREX1JBTT15CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1hJUCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIWVNNQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSTV9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorIyBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0VDQ19TTUMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTVVTRVVNX0lEUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfSURTPXkKKyMgQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKKyMgQ09ORklHX0lERSBpcyBub3Qgc2V0CisKKyMKKyMgU0NTSSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0lOUFVUIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfSU1YPXkKK0NPTkZJR19TRVJJQUxfSU1YX0NPTlNPTEU9eQorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CisjIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisKKyMKKyMgU1BJIEdQSU8gZXhwYW5kZXJzOgorIworIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19FR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VQUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCisjIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGQVRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX1NVTU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKK0NPTkZJR19DUkFNRlM9eQorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKKyMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorIyBDT05GSUdfTkxTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKK0NPTkZJR19QUklOVEtfVElNRT15CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1VTRVIgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCisjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKKyMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKKyMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0hXIGlzIG5vdCBzZXQKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9teDMxbGl0ZWtpdF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL214MzFsaXRla2l0X2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjQxYzQxCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9teDMxbGl0ZWtpdF9kZWZjb25maWcKQEAgLTAsMCArMSwxMTAwIEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIEZyaSBKdW4gMTMgMTQ6MjM6MzkgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorIyBDT05GSUdfR0VORVJJQ19HUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NTVU9eQorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19BUkNIX01URF9YSVA9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKK0NPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CitDT05GSUdfU1dBUD15CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKK0NPTkZJR19JS0NPTkZJRz15CitDT05GSUdfSUtDT05GSUdfUFJPQz15CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQorQ09ORklHX01PRFZFUlNJT05TPXkKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CitDT05GSUdfS01PRD15CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKK0NPTkZJR19JT1NDSEVEX0FTPXkKK0NPTkZJR19JT1NDSEVEX0RFQURMSU5FPXkKK0NPTkZJR19JT1NDSEVEX0NGUT15CisjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorQ09ORklHX0FSQ0hfTVhDPXkKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NU003WDAwQSBpcyBub3Qgc2V0CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworCisjCisjIEZyZWVzY2FsZSBNWEMgSW1wbGVtZW50YXRpb25zCisjCitDT05GSUdfQVJDSF9NWDM9eQorCisjCisjIE1YMyBPcHRpb25zCisjCisjIENPTkZJR19NQUNIX01YMzFBRFMgaXMgbm90IHNldAorQ09ORklHX01BQ0hfTVgzMUxJVEU9eQorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfVjY9eQorIyBDT05GSUdfQ1BVXzMydjZLIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfMzJ2Nj15CitDT05GSUdfQ1BVX0FCUlRfRVY2PXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKK0NPTkZJR19DUFVfQ0FDSEVfVjY9eQorQ09ORklHX0NQVV9DQUNIRV9WSVBUPXkKK0NPTkZJR19DUFVfQ09QWV9WNj15CitDT05GSUdfQ1BVX1RMQl9WNj15CitDT05GSUdfQ1BVX0hBU19BU0lEPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKK0NPTkZJR19BUk1fVEhVTUI9eQorIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfQlBSRURJQ1RfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0NBUkQ9bQorIyBDT05GSUdfUENNQ0lBX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQSBpcyBub3Qgc2V0CisKKyMKKyMgUEMtY2FyZCBicmlkZ2VzCisjCisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCisjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAorQ09ORklHX1BSRUVNUFQ9eQorIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorIyBDT05GSUdfT0FCSV9DT01QQVQgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibm9pbml0cmQgY29uc29sZT10dHlteGMwLDExNTIwMCByb290PS9kZXYvbXRkYmxvY2syIHJ3IGlwPW9mZiIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX1ZGUD15CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CitDT05GSUdfQklORk1UX0FPVVQ9eQorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworQ09ORklHX1BNPXkKKyMgQ09ORklHX1BNX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAorQ09ORklHX1VOSVg9eQorQ09ORklHX1hGUk09eQorIyBDT05GSUdfWEZSTV9VU0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVEFUSVNUSUNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorIyBDT05GSUdfSVBfTVVMVElDQVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CitDT05GSUdfSVBfUE5QX0RIQ1A9eQorIyBDT05GSUdfSVBfUE5QX0JPT1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorQ09ORklHX0lORVRfRElBRz15CitDT05GSUdfSU5FVF9UQ1BfRElBRz15CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj1tCisjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CitDT05GSUdfTVREX1JFREJPT1RfUEFSVFM9eQorQ09ORklHX01URF9SRURCT09UX0RJUkVDVE9SWV9CTE9DSz0tMQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFNfVU5BTExPQ0FURUQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFNfUkVBRE9OTFkgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworQ09ORklHX01URF9DRkk9eQorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9HRU5fUFJPQkU9eQorQ09ORklHX01URF9DRklfQURWX09QVElPTlM9eQorQ09ORklHX01URF9DRklfTk9TV0FQPXkKKyMgQ09ORklHX01URF9DRklfQkVfQllURV9TV0FQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfTEVfQllURV9TV0FQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0dFT01FVFJZPXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKKyMgQ09ORklHX01URF9DRklfSTIgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PVFAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JTlRFTEVYVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9BTURTVEQ9eQorIyBDT05GSUdfTVREX0NGSV9TVEFBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX1VUSUw9eQorQ09ORklHX01URF9SQU09eQorIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9YSVAgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFlTTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKKyMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKKyMgQ09ORklHX0lERSBpcyBub3Qgc2V0CisKKyMKKyMgU0NTSSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTST15CitDT05GSUdfU0NTSV9ETUE9eQorIyBDT05GSUdfU0NTSV9UR1QgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1BST0NfRlM9eQorCisjCisjIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCisjCitDT05GSUdfQkxLX0RFVl9TRD15CisjIENPTkZJR19DSFJfREVWX1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfT1NTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1NSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0cgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAorCisjCisjIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcworIworQ09ORklHX1NDU0lfTVVMVElfTFVOPXkKKyMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KKworIworIyBTQ1NJIFRyYW5zcG9ydHMKKyMKKyMgQ09ORklHX1NDU0lfU1BJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfTE9XTEVWRUw9eQorIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKK0NPTkZJR19NSUk9eQorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorCisjCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCisjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCisjIENPTkZJR19JTlBVVF9NT1VTRURFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKKyMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKKyMgQ09ORklHX0tFWUJPQVJEX0FUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NVTktCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9MS0tCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9YVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9ORVdUT04gaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVkgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9UT1VDSFNDUkVFTj15CisjIENPTkZJR19UT1VDSFNDUkVFTl9GVUpJVFNVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0dVTlpFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0VMTyBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NVE9VQ0ggaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTUs3MTIgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fUEVOTU9VTlQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hSSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFdJTiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9VQ0IxNDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9DT01QT1NJVEUgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCisjIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2hhcmFjdGVyIGRldmljZXMKKyMKK0NPTkZJR19WVD15CitDT05GSUdfVlRfQ09OU09MRT15CitDT05GSUdfSFdfQ09OU09MRT15CisjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorQ09ORklHX0hXX1JBTkRPTT15CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorQ09ORklHX1dBVENIRE9HPXkKK0NPTkZJR19XQVRDSERPR19OT1dBWU9VVD15CisKKyMKKyMgV2F0Y2hkb2cgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX1NPRlRfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFVTQi1iYXNlZCBXYXRjaGRvZyBDYXJkcworIworIyBDT05GSUdfVVNCUENXQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BU0lDMyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworQ09ORklHX1ZJREVPX0RFVj15CitDT05GSUdfVklERU9fVjRMMl9DT01NT049eQorQ09ORklHX1ZJREVPX0FMTE9XX1Y0TDE9eQorQ09ORklHX1ZJREVPX1Y0TDFfQ09NUEFUPXkKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKK0NPTkZJR19WSURFT19NRURJQT15CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCisjIENPTkZJR19NRURJQV9BVFRBQ0ggaXMgbm90IHNldAorQ09ORklHX1ZJREVPX1Y0TDI9eQorQ09ORklHX1ZJREVPX1Y0TDE9eQorQ09ORklHX1ZJREVPX0NBUFRVUkVfRFJJVkVSUz15CisjIENPTkZJR19WSURFT19BRFZfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1ZJREVPX0hFTFBFUl9DSElQU19BVVRPPXkKKyMgQ09ORklHX1ZJREVPX1ZJVkkgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fQ1BJQSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19DUElBMiBpcyBub3Qgc2V0CitDT05GSUdfVjRMX1VTQl9EUklWRVJTPXkKKyMgQ09ORklHX1VTQl9WSUNBTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSUJNQ0FNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LT05JQ0FXQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUVVJQ0tDQU1fTUVTU0VOR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FVDYxWDI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1Y1MTEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFNDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TTjlDMTAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVFY2ODAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pDMDMwMSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFdDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9aUjM2NFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVEtXRUJDQU0gaXMgbm90IHNldAorIyBDT05GSUdfU09DX0NBTUVSQSBpcyBub3Qgc2V0CitDT05GSUdfUkFESU9fQURBUFRFUlM9eQorIyBDT05GSUdfVVNCX0RTQlIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NJNDcwWCBpcyBub3Qgc2V0CitDT05GSUdfREFCPXkKKyMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKK0NPTkZJR19GQj15CisjIENPTkZJR19GSVJNV0FSRV9FRElEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0REQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfRklMTFJFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NGQl9JTUFHRUJMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0ZCX1JFVl9QSVhFTFNfSU5fQllURSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRklMTFJFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0NPUFlBUkVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRk9SRUlHTl9FTkRJQU4gaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTU9ERV9IRUxQRVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1RJTEVCTElUVElORyBpcyBub3Qgc2V0CisKKyMKKyMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKKyMKKyMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQorIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERVRFQ1RfUFJJTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX1JPVEFUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRTIGlzIG5vdCBzZXQKK0NPTkZJR19GT05UXzh4OD15CitDT05GSUdfRk9OVF84eDE2PXkKK0NPTkZJR19MT0dPPXkKKyMgQ09ORklHX0xPR09fTElOVVhfTU9OTyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0dPX0xJTlVYX1ZHQTE2IGlzIG5vdCBzZXQKK0NPTkZJR19MT0dPX0xJTlVYX0NMVVQyMjQ9eQorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfU1VQUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0kgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCisjIENPTkZJR19VU0JfREVWSUNFRlMgaXMgbm90IHNldAorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKKyMgQ09ORklHX1VTQl9TVE9SQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAorQ09ORklHX1VTQl9NT049eQorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCisjIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGQVRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX1NVTU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKK0NPTkZJR19DUkFNRlM9eQorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKKyMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorIyBDT05GSUdfTkxTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKK0NPTkZJR19QUklOVEtfVElNRT15CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKK0NPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CitDT05GSUdfU0NIRURfREVCVUc9eQorIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1BSRUVNUFQ9eQorIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLX0FMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST1ZFX0xPQ0tJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTE9DS19TVEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKKyMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19VU0VSIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19FUlJPUlM9eQorIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0xMPXkKKyMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKKyMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0hXPXkKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0NDSVRUPW0KKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvbmV0eF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL25ldHhfZGVmY29uZmlnCmluZGV4IDU3ZjMyZjMuLjA4ODRmMjMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvbmV0eF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9uZXR4X2RlZmNvbmZpZwpAQCAtMTU0LDcgKzE1NCw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogQ09ORklHX1BSRUVNUFQ9eQotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9vbmVhcm1fZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9vbmVhcm1fZGVmY29uZmlnCmluZGV4IDY1MGEyNDguLjQxOGNhMmYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3Mvb25lYXJtX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL29uZWFybV9kZWZjb25maWcKQEAgLTIwMiw3ICsyMDIsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWcKaW5kZXggNTJjZDk5Yi4uOTU3OGI1ZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI0Ci0jIFRodSBGZWIgIDcgMTQ6MTA6MzAgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNAorIyBNb24gSnVuICAyIDIzOjU0OjQ4IDIwMDgKICMKIENPTkZJR19BUk09eQogQ09ORklHX1NZU19TVVBQT1JUU19BUE1fRU1VTEFUSU9OPXkKQEAgLTIxLDYgKzIxLDcgQEAKICMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKIENPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUPXkKIENPTkZJR19aT05FX0RNQT15CiBDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKIENPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCkBAIC00MCwyNCArNDEsMjQgQEAKICMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CiAjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKICMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CiBDT05GSUdfTE9HX0JVRl9TSElGVD0xNAogIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0Ci1DT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15Ci1DT05GSUdfRkFJUl9VU0VSX1NDSEVEPXkKLSMgQ09ORklHX0ZBSVJfQ0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKICMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAogQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19VSUQxNj15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CitDT05GSUdfS0FMTFNZTVNfQUxMPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQogQ09ORklHX1BSSU5USz15CkBAIC03MywyMCArNzQsMjUgQEAKIENPTkZJR19FVkVOVEZEPXkKIENPTkZJR19TSE1FTT15CiBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQotQ09ORklHX1NMQUI9eQotIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTFVCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMQUIgaXMgbm90IHNldAorQ09ORklHX1NMVUI9eQogIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorQ09ORklHX1BST0ZJTElORz15CiAjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19PUFJPRklMRT15CiBDT05GSUdfSEFWRV9PUFJPRklMRT15Ci0jIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19LUFJPQkVTPXkKK0NPTkZJR19LUkVUUFJPQkVTPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQotQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0xMTEsNyArMTE3LDYgQEAKICMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCiBDT05GSUdfQ0xBU1NJQ19SQ1U9eQotIyBDT05GSUdfUFJFRU1QVF9SQ1UgaXMgbm90IHNldAogCiAjCiAjIFN5c3RlbSBUeXBlCkBAIC0xNjAsNiArMTY1LDE1IEBACiBDT05GSUdfTUFDSF9LVVJPQk9YX1BSTz15CiBDT05GSUdfTUFDSF9ETlMzMjM9eQogQ09ORklHX01BQ0hfVFMyMDk9eQorQ09ORklHX01BQ0hfTElOS1NUQVRJT05fUFJPPXkKK0NPTkZJR19NQUNIX1RTNDA5PXkKK0NPTkZJR19NQUNIX1dSVDM1ME5fVjI9eQorQ09ORklHX01BQ0hfVFM3OFhYPXkKK0NPTkZJR19NQUNIX01WMjEyMD15CitDT05GSUdfTUFDSF9NU1MyPXkKK0NPTkZJR19NQUNIX1dOUjg1NFQ9eQorQ09ORklHX01BQ0hfUkQ4OEY1MTgxTF9HRT15CitDT05GSUdfTUFDSF9SRDg4RjUxODFMX0ZYTz15CiAKICMKICMgQm9vdCBvcHRpb25zCkBAIC0xNjgsNiArMTgyLDcgQEAKICMKICMgUG93ZXIgbWFuYWdlbWVudAogIworQ09ORklHX1BMQVRfT1JJT049eQogCiAjCiAjIFByb2Nlc3NvciBUeXBlCkBAIC0xNzcsOCArMTkyLDkgQEAKIENPTkZJR19DUFVfRkVST0NFT05fT0xEX0lEPXkKIENPTkZJR19DUFVfMzJ2NT15CiBDT05GSUdfQ1BVX0FCUlRfRVY1VD15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CiBDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQotQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQorQ09ORklHX0NQVV9DT1BZX0ZFUk9DRU9OPXkKIENPTkZJR19DUFVfVExCX1Y0V0JJPXkKIENPTkZJR19DUFVfQ1AxNT15CiBDT05GSUdfQ1BVX0NQMTVfTU1VPXkKQEAgLTE4OSw3ICsyMDUsNiBAQAogQ09ORklHX0FSTV9USFVNQj15CiAjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKICMgQ09ORklHX09VVEVSX0NBQ0hFIGlzIG5vdCBzZXQKIAogIwpAQCAtMTk5LDYgKzIxNCw3IEBACiBDT05GSUdfUENJX1NZU0NBTEw9eQogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogQ09ORklHX1BDSV9MRUdBQ1k9eQorIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAKICMKQEAgLTIyMSw2ICsyMzcsNyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCkBAIC0yMzgsNyArMjU1LDYgQEAKIENPTkZJR19DTURMSU5FPSIiCiAjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUQUdTX1BST0MgaXMgbm90IHNldAogCiAjCiAjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgpAQCAtMzExLDggKzMyNyw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zMzUsNiArMzQ5LDcgQEAKICMgTmV0d29yayB0ZXN0aW5nCiAjCiBDT05GSUdfTkVUX1BLVEdFTj1tCisjIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAogIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAogIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldApAQCAtMzYyLDYgKzM3Nyw4IEBACiBDT05GSUdfU1RBTkRBTE9ORT15CiBDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CiBDT05GSUdfRldfTE9BREVSPXkKKyMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAogIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKIENPTkZJR19NVEQ9eQpAQCAtMzcxLDYgKzM4OCw3IEBACiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQogIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtMzc4LDkgKzM5Niw4IEBACiBDT05GSUdfTVREX0NIQVI9eQogQ09ORklHX01URF9CTEtERVZTPXkKIENPTkZJR19NVERfQkxPQ0s9eQotQ09ORklHX0ZUTD15Ci1DT05GSUdfTkZUTD15Ci0jIENPTkZJR19ORlRMX1JXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKICMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAogIyBDT05GSUdfU1NGREMgaXMgbm90IHNldApAQCAtNDA1LDEyICs0MjIsMTIgQEAKICMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NGSV9JMT15CiBDT05GSUdfTVREX0NGSV9JMj15Ci1DT05GSUdfTVREX0NGSV9JND15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAogIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NGSV9JTlRFTEVYVD15CiBDT05GSUdfTVREX0NGSV9BTURTVEQ9eQotQ09ORklHX01URF9DRklfU1RBQT15CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAogQ09ORklHX01URF9DRklfVVRJTD15CiAjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9ST00gaXMgbm90IHNldApAQCAtNDgxLDYgKzQ5OCw5IEBACiAjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAogIyBDT05GSUdfU0dJX0lPQzQgaXMgbm90IHNldAogIyBDT05GSUdfVElGTV9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQ0xPU1VSRV9TRVJWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKIAogIwogIyBTQ1NJIGRldmljZSBzdXBwb3J0CkBAIC01NDIsNiArNTYyLDcgQEAKICMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfSU5JVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfSU5JQTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX01WU0FTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU1RFWCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX1NZTTUzQzhYWF8yIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfSVBSIGlzIG5vdCBzZXQKQEAgLTU1Niw3ICs1NzcsMTAgQEAKICMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiAjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiBDT05GSUdfU0FUQV9NVj15CkBAIC01NjYsNyArNTkwLDYgQEAKICMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKQEAgLTYxMSw2ICs2MzQsNyBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAogIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIApAQCAtNjUyLDcgKzY3Niw3IEBACiAjIENPTkZJR19CNDQgaXMgbm90IHNldAogIyBDT05GSUdfRk9SQ0VERVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0VFUFJPMTAwIGlzIG5vdCBzZXQKLUNPTkZJR19FMTAwPXkKKyMgQ09ORklHX0UxMDAgaXMgbm90IHNldAogIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKICMgQ09ORklHX05BVFNFTUkgaXMgbm90IHNldAogIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldApAQCAtNjY4LDkgKzY5Miw3IEBACiBDT05GSUdfTkVUREVWXzEwMDA9eQogIyBDT05GSUdfQUNFTklDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RMMksgaXMgbm90IHNldAotQ09ORklHX0UxMDAwPXkKLUNPTkZJR19FMTAwMF9OQVBJPXkKLSMgQ09ORklHX0UxMDAwX0RJU0FCTEVfUEFDS0VUX1NQTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0UxMDAwRSBpcyBub3Qgc2V0CiAjIENPTkZJR19FMTAwMEVfRU5BQkxFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUDEwMDAgaXMgbm90IHNldApAQCAtNjgwLDI3ICs3MDIsMTUgQEAKICMgQ09ORklHX1lFTExPV0ZJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19SODE2OSBpcyBub3Qgc2V0CiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAotQ09ORklHX1NLR0U9eQotQ09ORklHX1NLWTI9eQotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CisjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLWTIgaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKLUNPTkZJR19USUdPTjM9eQorIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldAogQ09ORklHX01WNjQzWFhfRVRIPXkKICMgQ09ORklHX1FMQTNYWFggaXMgbm90IHNldAogIyBDT05GSUdfQVRMMSBpcyBub3Qgc2V0Ci1DT05GSUdfTkVUREVWXzEwMDAwPXkKLSMgQ09ORklHX0NIRUxTSU9fVDEgaXMgbm90IHNldAotIyBDT05GSUdfQ0hFTFNJT19UMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JWEdCRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JWEdCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1MySU8gaXMgbm90IHNldAotIyBDT05GSUdfTVlSSTEwR0UgaXMgbm90IHNldAotIyBDT05GSUdfTkVUWEVOX05JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OSVUgaXMgbm90IHNldAotIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC03MDgsNiArNzE4LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03MzgsMTIgKzc0OSw5IEBACiAjCiAjIFVzZXJsYW5kIGludGVyZmFjZXMKICMKLUNPTkZJR19JTlBVVF9NT1VTRURFVj15Ci1DT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVg9eQotQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKLUNPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9FVkRFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQogIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAogCiAjCkBAIC03NjUsMTAgKzc3Myw4IEBACiAjCiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCi1DT05GSUdfVlQ9eQotQ09ORklHX1ZUX0NPTlNPTEU9eQotQ09ORklHX0hXX0NPTlNPTEU9eQotIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03NzcsNyArNzgzLDcgQEAKICMKIENPTkZJR19TRVJJQUxfODI1MD15CiBDT05GSUdfU0VSSUFMXzgyNTBfQ09OU09MRT15Ci1DT05GSUdfU0VSSUFMXzgyNTBfUENJPXkKKyMgQ09ORklHX1NFUklBTF84MjUwX1BDSSBpcyBub3Qgc2V0CiBDT05GSUdfU0VSSUFMXzgyNTBfTlJfVUFSVFM9NAogQ09ORklHX1NFUklBTF84MjUwX1JVTlRJTUVfVUFSVFM9MgogIyBDT05GSUdfU0VSSUFMXzgyNTBfRVhURU5ERUQgaXMgbm90IHNldApAQCAtNzkyLDcgKzc5OCw3IEBACiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MTYKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0Ci1DT05GSUdfSFdfUkFORE9NPW0KKyMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CkBAIC04MDQsMTMgKzgxMCw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC04MzcsNiArODM2LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIENPTkZJR19JMkNfTVY2NFhYWD15CiAKICMKQEAgLTg0NywxOSArODQ3LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC04NzIsNiArODY2LDcgQEAKICMgQ09ORklHX1NFTlNPUlNfQURNMTAzMSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0FETTkyNDAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19BRFQ3NDcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURUNzQ3MyBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0FUWFAxIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfRFMxNjIxIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfSTVLX0FNQiBpcyBub3Qgc2V0CkBAIC05MDEsNiArODk2LDcgQEAKICMgQ09ORklHX1NFTlNPUlNfU01TQzQ3TTEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19TTVNDNDdNMTkyIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfU01TQzQ3QjM5NyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FEUzc4MjggaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19USE1DNTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19WSUE2ODZBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVlQxMjExIGlzIG5vdCBzZXQKQEAgLTkxMCw2ICs5MDYsNyBAQAogIyBDT05GSUdfU0VOU09SU19XODM3OTJEIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVzgzNzkzIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVzgzTDc4NVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzTDc4Nk5HIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVzgzNjI3SEYgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODM2MjdFSEYgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT05fREVCVUdfQ0hJUCBpcyBub3Qgc2V0CkBAIC05MjUsMTQgKzkyMiwyNCBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAotQ09ORklHX0RBQj15Ci0jIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydApAQCAtOTQ5LDEyICs5NTYsNiBAQAogIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKIAogIwotIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKLSMKLSMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKLUNPTkZJR19EVU1NWV9DT05TT0xFPXkKLQotIwogIyBTb3VuZAogIwogIyBDT05GSUdfU09VTkQgaXMgbm90IHNldApAQCAtOTg1LDE0ICs5ODYsMTggQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CiBDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQ9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT0hDSV9IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1VIQ0lfSENEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldApAQCAtMTAwMyw2ICsxMDA4LDcgQEAKICMKICMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAogQ09ORklHX1VTQl9QUklOVEVSPXkKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTEwMjIsNyArMTAyOCw5IEBACiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1PXkKIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVD15CiAjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAogCiAjCkBAIC0xMDYwLDYgKzEwNjgsNyBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKIENPTkZJR19ORVdfTEVEUz15CkBAIC0xMDY4LDcgKzEwNzcsNyBAQAogIwogIyBMRUQgZHJpdmVycwogIwotIyBDT05GSUdfTEVEU19HUElPIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX0dQSU89eQogCiAjCiAjIExFRCBUcmlnZ2VycwpAQCAtMTA3Niw2ICsxMDg1LDcgQEAKIENPTkZJR19MRURTX1RSSUdHRVJTPXkKIENPTkZJR19MRURTX1RSSUdHRVJfVElNRVI9eQogQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9eQorQ09ORklHX0xFRFNfVFJJR0dFUl9ERUZBVUxUX09OPXkKIENPTkZJR19SVENfTElCPXkKIENPTkZJR19SVENfQ0xBU1M9eQogQ09ORklHX1JUQ19IQ1RPU1lTPXkKQEAgLTExMDUsNiArMTExNSw3IEBACiAjIENPTkZJR19SVENfRFJWX1BDRjg1ODMgaXMgbm90IHNldAogQ09ORklHX1JUQ19EUlZfTTQxVDgwPXkKICMgQ09ORklHX1JUQ19EUlZfTTQxVDgwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1MzNTM5MEEgaXMgbm90IHNldAogCiAjCiAjIFNQSSBSVEMgZHJpdmVycwpAQCAtMTEyNSw2ICsxMTM2LDcgQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCiAjIEZpbGUgc3lzdGVtcwpAQCAtMTE0MCwxNCArMTE1MiwxMSBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CiBDT05GSUdfSU5PVElGWV9VU0VSPXkKICMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKLUNPTkZJR19ETk9USUZZPXkKICMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldApAQCAtMTE1NSw4ICsxMTY0LDggQEAKICMKICMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcwogIwotQ09ORklHX0lTTzk2NjBfRlM9eQotIyBDT05GSUdfSk9MSUVUIGlzIG5vdCBzZXQKK0NPTkZJR19JU085NjYwX0ZTPW0KK0NPTkZJR19KT0xJRVQ9eQogIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKIENPTkZJR19VREZfRlM9bQogQ09ORklHX1VERl9OTFM9eQpAQCAtMTIwNSw4ICsxMjE0LDEwIEBACiAjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CiBDT05GSUdfQ1JBTUZTPXkKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAogQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQpAQCAtMTIxNCw3ICsxMjI1LDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC0xMjQxLDE0ICsxMjUxLDEzIEBACiAjIENPTkZJR19NQUNfUEFSVElUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19NU0RPU19QQVJUSVRJT049eQogQ09ORklHX0JTRF9ESVNLTEFCRUw9eQotQ09ORklHX01JTklYX1NVQlBBUlRJVElPTj15Ci1DT05GSUdfU09MQVJJU19YODZfUEFSVElUSU9OPXkKLUNPTkZJR19VTklYV0FSRV9ESVNLTEFCRUw9eQotQ09ORklHX0xETV9QQVJUSVRJT049eQotQ09ORklHX0xETV9ERUJVRz15CisjIENPTkZJR19NSU5JWF9TVUJQQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU09MQVJJU19YODZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTCBpcyBub3Qgc2V0CisjIENPTkZJR19MRE1fUEFSVElUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NHSV9QQVJUSVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfVUxUUklYX1BBUlRJVElPTiBpcyBub3Qgc2V0Ci1DT05GSUdfU1VOX1BBUlRJVElPTj15CisjIENPTkZJR19TVU5fUEFSVElUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBUk1BX1BBUlRJVElPTiBpcyBub3Qgc2V0CiAjIENPTkZJR19FRklfUEFSVElUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NZU1Y2OF9QQVJUSVRJT04gaXMgbm90IHNldApAQCAtMTMwMCwxNSArMTMwOSw0OCBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKLSMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKK0NPTkZJR19NQUdJQ19TWVNSUT15CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKK0NPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CitDT05GSUdfU0NIRURfREVCVUc9eQorQ09ORklHX1NDSEVEU1RBVFM9eQorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfUFJFRU1QVD15CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfSU5GTz15CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19LUFJPQkVTX1NBTklUWV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfTEtEVE0gaXMgbm90IHNldAorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX1VTRVI9eQorQ09ORklHX0RFQlVHX0VSUk9SUz15CisjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTEw9eQorIyBDT05GSUdfREVCVUdfSUNFRENDIGlzIG5vdCBzZXQKIAogIwogIyBTZWN1cml0eSBvcHRpb25zCkBAIC0xMzE3LDUwICsxMzU5LDc5IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPW0KIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPW0KLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9bQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz1tCi1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKQEAgLTEzNjksMTIgKzE0NDAsMTQgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQotQ09ORklHX0NSQ19DQ0lUVD15Ci1DT05GSUdfQ1JDMTY9eQotIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0lUVV9UPW0KIENPTkZJR19DUkMzMj15CiAjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKLUNPTkZJR19MSUJDUkMzMkM9eQorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKIENPTkZJR19aTElCX0lORkxBVEU9eQogQ09ORklHX1pMSUJfREVGTEFURT15CiBDT05GSUdfUExJU1Q9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9wY20wMzdfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9wY20wMzdfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyNzQ3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL3BjbTAzN19kZWZjb25maWcKQEAgLTAsMCArMSw3NDggQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzYKKyMgV2VkIEp1biAyNSAxMTo1Mjo0MiAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX0FSQ0hfTVREX1hJUD15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKK0NPTkZJR19TV0FQPXkKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CisjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJR19JS0NPTkZJR19QUk9DPXkKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CisjIENPTkZJR19SVF9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfVVNFUl9TQ0hFRD15CisjIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQorQ09ORklHX1NZU0NUTD15CitDT05GSUdfRU1CRURERUQ9eQorQ09ORklHX1VJRDE2PXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQorQ09ORklHX01PRFZFUlNJT05TPXkKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CitDT05GSUdfS01PRD15CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKK0NPTkZJR19JT1NDSEVEX0FTPXkKK0NPTkZJR19JT1NDSEVEX0RFQURMSU5FPXkKK0NPTkZJR19JT1NDSEVEX0NGUT15CisjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorQ09ORklHX0FSQ0hfTVhDPXkKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NU003WDAwQSBpcyBub3Qgc2V0CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworCisjCisjIEZyZWVzY2FsZSBNWEMgSW1wbGVtZW50YXRpb25zCisjCitDT05GSUdfQVJDSF9NWDM9eQorCisjCisjIE1YMyBPcHRpb25zCisjCisjIENPTkZJR19NQUNIX01YMzFBRFMgaXMgbm90IHNldAorQ09ORklHX01BQ0hfUENNMDM3PXkKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX1Y2PXkKKyMgQ09ORklHX0NQVV8zMnY2SyBpcyBub3Qgc2V0CitDT05GSUdfQ1BVXzMydjY9eQorQ09ORklHX0NQVV9BQlJUX0VWNj15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CitDT05GSUdfQ1BVX0NBQ0hFX1Y2PXkKK0NPTkZJR19DUFVfQ0FDSEVfVklQVD15CitDT05GSUdfQ1BVX0NPUFlfVjY9eQorQ09ORklHX0NQVV9UTEJfVjY9eQorQ09ORklHX0NQVV9IQVNfQVNJRD15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0JQUkVESUNUX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorIyBDT05GSUdfT0FCSV9DT01QQVQgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibm9pbml0cmQgY29uc29sZT10dHlteGMwLDExNTIwMCByb290PS9kZXYvbXRkYmxvY2syIHJ3IGlwPW9mZiIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX1ZGUD15CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAorQ09ORklHX1VOSVg9eQorIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfSU5FVD15CisjIENPTkZJR19JUF9NVUxUSUNBU1QgaXMgbm90IHNldAorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKK0NPTkZJR19JUF9QTlBfREhDUD15CisjIENPTkZJR19JUF9QTlBfQk9PVFAgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUE5QX1JBUlAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKKyMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKK0NPTkZJR19GV19MT0FERVI9bQorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKKyMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfR0VOX1BST0JFPXkKKyMgQ09ORklHX01URF9DRklfQURWX09QVElPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9OT1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JTlRFTEVYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0FNRFNURCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUD15CitDT05GSUdfTVREX1BIWVNNQVBfU1RBUlQ9MHgwCitDT05GSUdfTVREX1BIWVNNQVBfTEVOPTAKK0NPTkZJR19NVERfUEhZU01BUF9CQU5LV0lEVEg9MgorIyBDT05GSUdfTVREX0FSTV9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKKyMgQ09ORklHX0lERSBpcyBub3Qgc2V0CisKKyMKKyMgU0NTSSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKK0NPTkZJR19TTUM5MVg9eQorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19JTlBVVCBpcyBub3Qgc2V0CisKKyMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCisjIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2hhcmFjdGVyIGRldmljZXMKKyMKKyMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0lNWD15CitDT05GSUdfU0VSSUFMX0lNWF9DT05TT0xFPXkKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CitDT05GSUdfVU5JWDk4X1BUWVM9eQorIyBDT05GSUdfTEVHQUNZX1BUWVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9HUElPX0xJQj15CisKKyMKKyMgR1BJTyBTdXBwb3J0CisjCisKKyMKKyMgSTJDIEdQSU8gZXhwYW5kZXJzOgorIworCisjCisjIFNQSSBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BU0lDMyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfRUdQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkZXZpY2VzCisjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCisjIENPTkZJR19EQUIgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBTb3VuZAorIworIyBDT05GSUdfU09VTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVUFBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKKyMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CisjIENPTkZJR19VSU8gaXMgbm90IHNldAorCisjCisjIEZpbGUgc3lzdGVtcworIworIyBDT05GSUdfRVhUMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQzX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0CitDT05GSUdfSU5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19NU0RPU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WRkFUX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKKyMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorIyBDT05GSUdfTkxTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQgaXMgbm90IHNldAorIyBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1VTRVIgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9wY20wMzhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9wY20wMzhfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNzk4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL3BjbTAzOF9kZWZjb25maWcKQEAgLTAsMCArMSwxMDA4IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM2CisjIEZyaSBKdW4gMjAgMTY6Mzg6MzYgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorQ09ORklHX0dFTkVSSUNfR1BJTz15CitDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19NTVU9eQorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19BUkNIX01URF9YSVA9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKK0NPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CisjIENPTkZJR19TV0FQIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CitDT05GSUdfUE9TSVhfTVFVRVVFPXkKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CitDT05GSUdfUlRfR1JPVVBfU0NIRUQ9eQorQ09ORklHX1VTRVJfU0NIRUQ9eQorIyBDT05GSUdfQ0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjIgaXMgbm90IHNldAorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CisjIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1M9eQorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9GSUxJTkc9eQorQ09ORklHX01BUktFUlM9eQorQ09ORklHX09QUk9GSUxFPXkKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKK0NPTkZJR19LUFJPQkVTPXkKK0NPTkZJR19LUkVUUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUiBpcyBub3Qgc2V0CitDT05GSUdfU0xBQklORk89eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LTU9EIGlzIG5vdCBzZXQKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorIyBDT05GSUdfSU9TQ0hFRF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19JT1NDSEVEX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPU0NIRURfQ0ZRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9OT09QPXkKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9Im5vb3AiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorQ09ORklHX0FSQ0hfTVhDPXkKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NU003WDAwQSBpcyBub3Qgc2V0CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworCisjCisjIEZyZWVzY2FsZSBNWEMgSW1wbGVtZW50YXRpb25zCisjCitDT05GSUdfQVJDSF9NWDI9eQorIyBDT05GSUdfQVJDSF9NWDMgaXMgbm90IHNldAorCisjCisjIE1YMiBmYW1pbHkgQ1BVIHN1cHBvcnQKKyMKK0NPTkZJR19NQUNIX01YMjc9eQorCisjCisjIE1YMiBQbGF0Zm9ybXMKKyMKKyMgQ09ORklHX01BQ0hfTVgyN0FEUyBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9QQ00wMzg9eQorQ09ORklHX01BQ0hfUENNOTcwX0JBU0VCT0FSRD15CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9BUk05MjZUPXkKK0NPTkZJR19DUFVfMzJ2NT15CitDT05GSUdfQ1BVX0FCUlRfRVY1VEo9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9WNFdCPXkKK0NPTkZJR19DUFVfVExCX1Y0V0JJPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKK0NPTkZJR19BUk1fVEhVTUI9eQorIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX1dSSVRFVEhST1VHSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfQ0FDSEVfUk9VTkRfUk9CSU4gaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorIyBDT05GSUdfT0FCSV9DT01QQVQgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0iIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworIyBDT05GSUdfUE0gaXMgbm90IHNldAorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKK0NPTkZJR19QQUNLRVRfTU1BUD15CitDT05GSUdfVU5JWD15CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKKyMgQ09ORklHX0lQX1BOUF9ESENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1BOUF9CT09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKKyMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1RDUFBST0JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CitDT05GSUdfRldfTE9BREVSPXkKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzEgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorIyBDT05GSUdfTVREX0NGSV9JMiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JTlRFTEVYVD15CisjIENPTkZJR19NVERfQ0ZJX0FNRFNURCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfWElQIGlzIG5vdCBzZXQKKworIworIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCisjIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BIWVNNQVA9eQorQ09ORklHX01URF9QSFlTTUFQX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MHgwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTIKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NVERfREFUQUZMQVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NMjVQODAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVj15CisjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CisjIENPTkZJR19NSUkgaXMgbm90IHNldAorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQzI4SjYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorQ09ORklHX0ZFQ19PTEQ9eQorIyBDT05GSUdfTkVUREVWXzEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCisjIENPTkZJR19JTlBVVF9NT1VTRURFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKKyMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9UT1VDSFNDUkVFTj15CisjIENPTkZJR19UT1VDSFNDUkVFTl9BRFM3ODQ2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1UgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VDQjE0MDAgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCisjIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2hhcmFjdGVyIGRldmljZXMKKyMKK0NPTkZJR19WVD15CitDT05GSUdfVlRfQ09OU09MRT15CitDT05GSUdfSFdfQ09OU09MRT15CisjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfSU1YPXkKK0NPTkZJR19TRVJJQUxfSU1YX0NPTlNPTEU9eQorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CisjIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkKKyMgQ09ORklHX0kyQ19DSEFSREVWIGlzIG5vdCBzZXQKKworIworIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0kyQ19HUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfU1BJPXkKK0NPTkZJR19TUElfTUFTVEVSPXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX1NQSV9CSVRCQU5HPXkKKworIworIyBTUEkgUHJvdG9jb2wgTWFzdGVycworIworIyBDT05GSUdfU1BJX0FUMjUgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1NQSURFViBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfVExFNjJYMCBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9HUElPX0xJQj15CisKKyMKKyMgR1BJTyBTdXBwb3J0CisjCisKKyMKKyMgSTJDIEdQSU8gZXhwYW5kZXJzOgorIworIyBDT05GSUdfR1BJT19QQ0E5NTNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dQSU9fUENGODU3WCBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIEdQSU8gZXhwYW5kZXJzOgorIworIyBDT05GSUdfR1BJT19NQ1AyM1MwOCBpcyBub3Qgc2V0CisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX0VHUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCitDT05GSUdfVklERU9fREVWPXkKK0NPTkZJR19WSURFT19WNEwyX0NPTU1PTj15CitDT05GSUdfVklERU9fQUxMT1dfVjRMMT15CitDT05GSUdfVklERU9fVjRMMV9DT01QQVQ9eQorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorQ09ORklHX1ZJREVPX01FRElBPXkKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX01FRElBX0FUVEFDSCBpcyBub3Qgc2V0CitDT05GSUdfTUVESUFfVFVORVI9eQorIyBDT05GSUdfTUVESUFfVFVORVJfQ1VTVE9NSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9UVU5FUl9TSU1QTEU9eQorQ09ORklHX01FRElBX1RVTkVSX1REQTgyOTA9eQorQ09ORklHX01FRElBX1RVTkVSX1REQTk4ODc9eQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3NjE9eQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3Njc9eQorQ09ORklHX01FRElBX1RVTkVSX01UMjBYWD15CitDT05GSUdfTUVESUFfVFVORVJfWEMyMDI4PXkKK0NPTkZJR19NRURJQV9UVU5FUl9YQzUwMDA9eQorQ09ORklHX1ZJREVPX1Y0TDI9eQorQ09ORklHX1ZJREVPX1Y0TDE9eQorQ09ORklHX1ZJREVPX0NBUFRVUkVfRFJJVkVSUz15CisjIENPTkZJR19WSURFT19BRFZfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1ZJREVPX0hFTFBFUl9DSElQU19BVVRPPXkKKyMgQ09ORklHX1ZJREVPX1ZJVkkgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fQ1BJQSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19TQUE1MjQ2QSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19TQUE1MjQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTkVSXzMwMzYgaXMgbm90IHNldAorIyBDT05GSUdfU09DX0NBTUVSQSBpcyBub3Qgc2V0CisjIENPTkZJR19SQURJT19BREFQVEVSUyBpcyBub3Qgc2V0CisjIENPTkZJR19EQUIgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKK0NPTkZJR19GQj15CisjIENPTkZJR19GSVJNV0FSRV9FRElEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0REQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfRklMTFJFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NGQl9JTUFHRUJMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0ZCX1JFVl9QSVhFTFNfSU5fQllURSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRklMTFJFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0NPUFlBUkVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRk9SRUlHTl9FTkRJQU4gaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTU9ERV9IRUxQRVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1RJTEVCTElUVElORyBpcyBub3Qgc2V0CisKKyMKKyMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKKyMKKyMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQorIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERVRFQ1RfUFJJTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX1JPVEFUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19GT05UUz15CitDT05GSUdfRk9OVF84eDg9eQorIyBDT05GSUdfRk9OVF84eDE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfNngxMSBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UXzd4MTQgaXMgbm90IHNldAorIyBDT05GSUdfRk9OVF9QRUFSTF84eDggaXMgbm90IHNldAorIyBDT05GSUdfRk9OVF9BQ09STl84eDggaXMgbm90IHNldAorIyBDT05GSUdfRk9OVF9NSU5JXzR4NiBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1NVTjh4MTYgaXMgbm90IHNldAorIyBDT05GSUdfRk9OVF9TVU4xMngyMiBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UXzEweDE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPR08gaXMgbm90IHNldAorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfU1VQUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VQUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorQ09ORklHX1JUQ19DTEFTUz15CitDT05GSUdfUlRDX0hDVE9TWVM9eQorQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUlRDIGludGVyZmFjZXMKKyMKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAorCisjCisjIEkyQyBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9EUzEzMDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNzQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzPXkKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1MzNTM5MEEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9GTTMxMzAgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUjk3MDEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzQ4IGlzIG5vdCBzZXQKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19VSU8gaXMgbm90IHNldAorCisjCisjIEZpbGUgc3lzdGVtcworIworIyBDT05GSUdfRVhUMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQzX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0CisjIENPTkZJR19JTk9USUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19NU0RPU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WRkFUX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKK0NPTkZJR19ORlNfVjM9eQorIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19MT0NLRF9WND15CitDT05GSUdfTkZTX0NPTU1PTj15CitDT05GSUdfU1VOUlBDPXkKKyMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAorIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlMgaXMgbm90IHNldAorIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQYXJ0aXRpb24gVHlwZXMKKyMKKyMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz1tCisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorQ09ORklHX05MU19DT0RFUEFHRV84NTA9bQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT15CisjIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xNT1tCisjIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX1VURjggaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQorQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKKyMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19VU0VSIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvcGljb3R1eDIwMF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3BpY290dXgyMDBfZGVmY29uZmlnCmluZGV4IDk1YTIyZjUuLjE0ODI2ZjAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvcGljb3R1eDIwMF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9waWNvdHV4MjAwX2RlZmNvbmZpZwpAQCAtMjAxLDcgKzIwMSw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci1DT05GSUdfTk9fSURMRV9IWj15CiBDT05GSUdfSFo9MTAwCiBDT05GSUdfQUVBQkk9eQogQ09ORklHX09BQklfQ09NUEFUPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvcG54NDAwOF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3BueDQwMDhfZGVmY29uZmlnCmluZGV4IGI1ZTExYWEuLjgxMWI4ZjYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvcG54NDAwOF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9wbng0MDA4X2RlZmNvbmZpZwpAQCAtMTUxLDcgKzE1MSw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogQ09ORklHX1BSRUVNUFQ9eQotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9xaWwtYTkyNjBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9xaWwtYTkyNjBfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmOTAzYmUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL3FpbC1hOTI2MF9kZWZjb25maWcKQEAgLTAsMCArMSwxMjU2IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjQKKyMgVHVlIEFwciAxNSAxMjoyODozOCAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9VU0VSX1NDSEVEPXkKKyMgQ09ORklHX0ZBSVJfQ0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQgaXMgbm90IHNldAorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAorQ09ORklHX1NZU0NUTD15CisjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorIyBDT05GSUdfSU9TQ0hFRF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19JT1NDSEVEX0NGUSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9BUz15CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MT15CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgQXRtZWwgQVQ5MSBTeXN0ZW0tb24tQ2hpcAorIworIyBDT05GSUdfQVJDSF9BVDkxUk05MjAwIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0FUOTFTQU05MjYwPXkKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05UkwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxQ0FQOSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFYNDAgaXMgbm90IHNldAorQ09ORklHX0FUOTFfUE1DX1VOSVQ9eQorCisjCisjIEFUOTFTQU05MjYwIFZhcmlhbnRzCisjCisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYwX1NBTTlYRSBpcyBub3Qgc2V0CisKKyMKKyMgQVQ5MVNBTTkyNjAgLyBBVDkxU0FNOVhFIEJvYXJkIFR5cGUKKyMKKyMgQ09ORklHX01BQ0hfQVQ5MVNBTTkyNjBFSyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX0NBTTYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfU0FNOV9MOTI2MCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX1VTQl9BOTI2MCBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9RSUxfQTkyNjA9eQorCisjCisjIEFUOTEgQm9hcmQgT3B0aW9ucworIworCisjCisjIEFUOTEgRmVhdHVyZSBTZWxlY3Rpb25zCisjCisjIENPTkZJR19BVDkxX1BST0dSQU1NQUJMRV9DTE9DS1MgaXMgbm90IHNldAorQ09ORklHX0FUOTFfU0xPV19DTE9DSz15CitDT05GSUdfQVQ5MV9USU1FUl9IWj0xMDAKKyMgQ09ORklHX0FUOTFfRUFSTFlfREJHVSBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDA9eQorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDEgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDIgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDMgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDQgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDUgaXMgbm90IHNldAorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfQVJNOTI2VD15CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVRKPXkKK0NPTkZJR19DUFVfQ0FDSEVfVklWVD15CitDT05GSUdfQ1BVX0NPUFlfVjRXQj15CitDT05GSUdfQ1BVX1RMQl9WNFdCST15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCisjIENPTkZJR19BUk1fVEhVTUIgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX1dSSVRFVEhST1VHSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfQ0FDSEVfUk9VTkRfUk9CSU4gaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PX0haIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CisjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CitDT05GSUdfT0FCSV9DT01QQVQ9eQorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorIyBDT05GSUdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibWVtPTY0TSBjb25zb2xlPXR0eVMxLDExNTIwMCIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX0ZQRV9OV0ZQRT15CisjIENPTkZJR19GUEVfTldGUEVfWFAgaXMgbm90IHNldAorIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAorIyBDT05GSUdfVkZQIGlzIG5vdCBzZXQKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19QTT15CisjIENPTkZJR19QTV9MRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BNX1NMRUVQPXkKK0NPTkZJR19TVVNQRU5EX1VQX1BPU1NJQkxFPXkKK0NPTkZJR19TVVNQRU5EPXkKKyMgQ09ORklHX0FQTV9FTVVMQVRJT04gaXMgbm90IHNldAorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfVU5JWD15CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUj15CitDT05GSUdfQVNLX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX0ZJQl9UUklFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CisjIENPTkZJR19JUF9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKK0NPTkZJR19JUF9QTlA9eQorIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorQ09ORklHX0lQX1BOUF9CT09UUD15CitDT05GSUdfSVBfUE5QX1JBUlA9eQorIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NUk9VVEU9eQorQ09ORklHX0lQX1BJTVNNX1YxPXkKK0NPTkZJR19JUF9QSU1TTV9WMj15CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9ESUFHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CisjIENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9DRkkgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfREFUQUZMQVNIPXkKKyMgQ09ORklHX01URF9NMjVQODAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfQVQ5MT15CitDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfU09GVD15CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19IVyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19OT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1IgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TRyBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCitDT05GSUdfU0NTSV9NVUxUSV9MVU49eQorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAorQ09ORklHX1BIWUxJQj15CisKKyMKKyMgTUlJIFBIWSBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUFSVkVMTF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfREFWSUNPTV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfUVNFTUlfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xYVF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfQ0lDQURBX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19WSVRFU1NFX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19TTVNDX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19CUk9BRENPTV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfSUNQTFVTX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19GSVhFRF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTURJT19CSVRCQU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CitDT05GSUdfTUFDQj15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWXzEwMDA9eQorQ09ORklHX05FVERFVl8xMDAwMD15CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorCisjCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCisjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworQ09ORklHX0lOUFVUX01PVVNFREVWPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKK0NPTkZJR19JTlBVVF9FVkJVRz15CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19JTlBVVF9LRVlCT0FSRD15CisjIENPTkZJR19LRVlCT0FSRF9BVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfWFRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9HUElPPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9BVE1FTD15CitDT05GSUdfU0VSSUFMX0FUTUVMX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMX0FUTUVMX1RUWUFUIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CitDT05GSUdfVU5JWDk4X1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKK0NPTkZJR19IV19SQU5ET009eQorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorQ09ORklHX0kyQ19DSEFSREVWPXkKKworIworIyBJMkMgQWxnb3JpdGhtcworIworIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAorCisjCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfSTJDX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVElOWV9VU0IgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQSBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19TRU5TT1JTX0RTMTMzNyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENBOTUzOSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKKworIworIyBTUEkgc3VwcG9ydAorIworQ09ORklHX1NQST15CisjIENPTkZJR19TUElfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NQSV9NQVNURVI9eQorCisjCisjIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfU1BJX0FUTUVMPXkKKyMgQ09ORklHX1NQSV9CSVRCQU5HIGlzIG5vdCBzZXQKKworIworIyBTUEkgUHJvdG9jb2wgTWFzdGVycworIworIyBDT05GSUdfU1BJX0FUMjUgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1NQSURFViBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfVExFNjJYMCBpcyBub3Qgc2V0CisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorQ09ORklHX1dBVENIRE9HPXkKK0NPTkZJR19XQVRDSERPR19OT1dBWU9VVD15CisKKyMKKyMgV2F0Y2hkb2cgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX1NPRlRfV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MVNBTTlfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFVTQi1iYXNlZCBXYXRjaGRvZyBDYXJkcworIworIyBDT05GSUdfVVNCUENXQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKyMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19EQUIgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19EVU1NWV9DT05TT0xFPXkKKworIworIyBTb3VuZAorIworIyBDT05GSUdfU09VTkQgaXMgbm90IHNldAorQ09ORklHX0hJRF9TVVBQT1JUPXkKK0NPTkZJR19ISUQ9eQorIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRFJBVyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIElucHV0IERldmljZXMKKyMKKyMgQ09ORklHX1VTQl9ISUQgaXMgbm90IHNldAorCisjCisjIFVTQiBISUQgQm9vdCBQcm90b2NvbCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NT1VTRSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKKyMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKK0NPTkZJR19VU0I9eQorIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCitDT05GSUdfVVNCX0RFVklDRUZTPXkKK0NPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKKyMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEVSU0lTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfSENEPXkKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKworIworIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCisjCitDT05GSUdfVVNCX1NUT1JBR0U9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EUENNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAorQ09ORklHX1VTQl9NT049eQorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKKworIworIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0CisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorCisjCisjIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAorIworCisjCisjIFVTQiBHYWRnZXQgU3VwcG9ydAorIworQ09ORklHX1VTQl9HQURHRVQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUX1NFTEVDVEVEPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfQU1ENTUzNlVEQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0FUTUVMX1VTQkEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9GU0xfVVNCMiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX05FVDIyODAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9TM0MyNDEwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUX0FUOTE9eQorQ09ORklHX1VTQl9BVDkxPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfRFVNTVlfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfRFVBTFNQRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9aRVJPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRVRIPXkKK0NPTkZJR19VU0JfRVRIX1JORElTPXkKKyMgQ09ORklHX1VTQl9HQURHRVRGUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRklMRV9TVE9SQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HX1NFUklBTCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlESV9HQURHRVQgaXMgbm90IHNldAorQ09ORklHX01NQz15CisjIENPTkZJR19NTUNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTU1DX1VOU0FGRV9SRVNVTUUgaXMgbm90IHNldAorCisjCisjIE1NQy9TRCBDYXJkIERyaXZlcnMKKyMKK0NPTkZJR19NTUNfQkxPQ0s9eQorQ09ORklHX01NQ19CTE9DS19CT1VOQ0U9eQorIyBDT05GSUdfU0RJT19VQVJUIGlzIG5vdCBzZXQKKworIworIyBNTUMvU0QgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19NTUNfQVQ5MT15CisjIENPTkZJR19NTUNfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz15CisKKyMKKyMgTEVEIGRyaXZlcnMKKyMKK0NPTkZJR19MRURTX0dQSU89eQorCisjCisjIExFRCBUcmlnZ2VycworIworQ09ORklHX0xFRFNfVFJJR0dFUlM9eQorIyBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPXkKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAorCisjCisjIFJUQyBpbnRlcmZhY2VzCisjCitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKKworIworIyBJMkMgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAyIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX000MVQ5ND15CisKKyMKKyMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9BVDkxU0FNOSBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCitDT05GSUdfRVhUMl9GUz15CisjIENPTkZJR19FWFQyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0ZTX1BPU0lYX0FDTD15CisjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSU5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19GVVNFX0ZTPW0KKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworQ09ORklHX0ZBVF9GUz15CisjIENPTkZJR19NU0RPU19GUyBpcyBub3Qgc2V0CitDT05GSUdfVkZBVF9GUz15CitDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKK0NPTkZJR19ORlNfVjNfQUNMPXkKK0NPTkZJR19ORlNfVjQ9eQorIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19BQ0xfU1VQUE9SVD15CitDT05GSUdfTkZTX0NPTU1PTj15CitDT05GSUdfU1VOUlBDPXkKK0NPTkZJR19TVU5SUENfR1NTPXkKKyMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAorQ09ORklHX1JQQ1NFQ19HU1NfS1JCNT15CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX1VURjggaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOU1RSVU1FTlRBVElPTiBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19LRVJORUw9eQorIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAorQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKK0NPTkZJR19TQ0hFRF9ERUJVRz15CisjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLX0FMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST1ZFX0xPQ0tJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTE9DS19TVEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKKyMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CitDT05GSUdfRk9SQ0VEX0lOTElOSU5HPXkKKyMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1VTRVI9eQorIyBDT05GSUdfREVCVUdfRVJST1JTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19MTD15CisjIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUTz15CitDT05GSUdfQ1JZUFRPX0FMR0FQST15CitDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15CitDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fSFcgaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3LXNtcF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3LXNtcF9kZWZjb25maWcKaW5kZXggZmMzOWJhMS4uMGMwOWIyMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9yZWFsdmlldy1zbXBfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvcmVhbHZpZXctc21wX2RlZmNvbmZpZwpAQCAtMTc3LDcgKzE3Nyw2IEBACiBDT05GSUdfSE9UUExVR19DUFU9eQogQ09ORklHX0xPQ0FMX1RJTUVSUz15CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvcmVhbHZpZXdfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9yZWFsdmlld19kZWZjb25maWcKaW5kZXggYWNjYmY1Mi4uOTA3ZTU0MyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9yZWFsdmlld19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9yZWFsdmlld19kZWZjb25maWcKQEAgLTEyNiw3ICsxMjYsNiBAQAogIwogIyBLZXJuZWwgRmVhdHVyZXMKICMKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKIENPTkZJR19GTEFUTUVNPXkKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWcKaW5kZXggNWRkZWNiOS4uZjYyZDE4MSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZwpAQCAtMTkwLDcgKzE5MCw2IEBACiAjCiAjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3MzYzI0MTBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9zM2MyNDEwX2RlZmNvbmZpZwppbmRleCBmOGExNjQ1Li4zNWZhYWVhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3MzYzI0MTBfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvczNjMjQxMF9kZWZjb25maWcKQEAgLTEsMTUgKzEsMTggQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yMS1yYzYKLSMgTW9uIEFwciAgOSAxMDoxMjo1OCAyMDA3CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM4CisjIE1vbiBKdWwgIDcgMTY6NTk6MjMgMjAwOAogIwogQ09ORklHX0FSTT15CiBDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQogQ09ORklHX0dFTkVSSUNfR1BJTz15CiAjIENPTkZJR19HRU5FUklDX1RJTUUgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUyBpcyBub3Qgc2V0CiBDT05GSUdfTU1VPXkKIENPTkZJR19OT19JT1BPUlQ9eQogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKIENPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQogQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKQEAgLTE4LDM0ICsyMSwzOSBAQAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQogQ09ORklHX1pPTkVfRE1BPXkKIENPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAogQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKIAogIwotIyBDb2RlIG1hdHVyaXR5IGxldmVsIG9wdGlvbnMKKyMgR2VuZXJhbCBzZXR1cAogIwogQ09ORklHX0VYUEVSSU1FTlRBTD15CiBDT05GSUdfQlJPS0VOX09OX1NNUD15CiBDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCi0KLSMKLSMgR2VuZXJhbCBzZXR1cAotIwogQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgogQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKIENPTkZJR19TV0FQPXkKIENPTkZJR19TWVNWSVBDPXkKLSMgQ09ORklHX0lQQ19OUyBpcyBub3Qgc2V0CiBDT05GSUdfU1lTVklQQ19TWVNDVEw9eQogIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAogIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VUU19OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfSUtDT05GSUc9bQorQ09ORklHX0lLQ09ORklHX1BST0M9eQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTYKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorQ09ORklHX05BTUVTUEFDRVM9eQorIyBDT05GSUdfVVRTX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQQ19OUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQogQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CkBAIC01Myw2ICs2MSw3IEBACiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfVUlEMTY9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldApAQCAtNjAsMzQgKzY5LDQzIEBACiBDT05GSUdfUFJJTlRLPXkKIENPTkZJR19CVUc9eQogQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19DT01QQVRfQlJLPXkKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CiBDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKIENPTkZJR19TSE1FTT15Ci1DT05GSUdfU0xBQj15CiBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCi0jIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKLQotIwotIyBMb2FkYWJsZSBtb2R1bGUgc3VwcG9ydAotIwogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAogQ09ORklHX0tNT0Q9eQotCi0jCi0jIEJsb2NrIGxheWVyCi0jCiBDT05GSUdfQkxPQ0s9eQogIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAogIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKIAogIwogIyBJTyBTY2hlZHVsZXJzCkBAIC0xMDEsNiArMTE5LDcgQEAKICMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQogCiAjCiAjIFN5c3RlbSBUeXBlCkBAIC0xMTksMTQgKzEzOCwxNyBAQAogIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVhDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldApAQCAtMTM0LDE4ICsxNTYsMzIgQEAKIENPTkZJR19BUkNIX1MzQzI0MTA9eQogIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKIENPTkZJR19QTEFUX1MzQzI0WFg9eQogQ09ORklHX0NQVV9TM0MyNDRYPXkKKyMgQ09ORklHX1MzQzI0WFhfUFdNIGlzIG5vdCBzZXQKIENPTkZJR19QTV9TSU1URUM9eQotIyBDT05GSUdfUzNDX0JPT1RfV0FUQ0hET0cgaXMgbm90IHNldAotIyBDT05GSUdfUzNDX0JPT1RfRVJST1JfUkVTRVQgaXMgbm90IHNldAotIyBDT05GSUdfUzNDMjQxMF9QTV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TM0MyNDEwX1BNX0NIRUNLIGlzIG5vdCBzZXQKLUNPTkZJR19TM0NfTE9XTEVWRUxfVUFSVF9QT1JUPTAKIENPTkZJR19TM0MyNDEwX0RNQT15CiAjIENPTkZJR19TM0MyNDEwX0RNQV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfTUFDSF9TTURLPXkKK0NPTkZJR19QTEFUX1MzQz15CitDT05GSUdfQ1BVX0xMU0VSSUFMX1MzQzI0MTA9eQorQ09ORklHX0NQVV9MTFNFUklBTF9TM0MyNDQwPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKKyMgQ09ORklHX1MzQ19CT09UX1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1MzQ19CT09UX0VSUk9SX1JFU0VUIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisjIENPTkZJR19TM0MyNDEwX1BNX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1MzQzI0MTBfUE1fQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX1MzQ19MT1dMRVZFTF9VQVJUX1BPUlQ9MAogCiAjCiAjIFMzQzI0MDAgTWFjaGluZXMKQEAgLTE1NSw2ICsxOTEsOCBAQAogQ09ORklHX1MzQzI0MTBfUE09eQogQ09ORklHX1MzQzI0MTBfR1BJTz15CiBDT05GSUdfUzNDMjQxMF9DTE9DSz15CitDT05GSUdfU0lNVEVDX05PUj15CitDT05GSUdfTUFDSF9CQVNUX0lERT15CiAKICMKICMgUzNDMjQxMCBNYWNoaW5lcwpAQCAtMTY3LDYgKzIwNSw3IEBACiBDT05GSUdfTUFDSF9PVE9NPXkKIENPTkZJR19NQUNIX0FNTF9NNTkwMD15CiBDT05GSUdfQkFTVF9QQzEwNF9JUlE9eQorIyBDT05GSUdfTUFDSF9UQ1RfSEFNTUVSIGlzIG5vdCBzZXQKIENPTkZJR19NQUNIX1ZSMTAwMD15CiBDT05GSUdfTUFDSF9RVDI0MTA9eQogQ09ORklHX0NQVV9TM0MyNDEyPXkKQEAgLTE3Niw4ICsyMTUsMTAgQEAKICMKICMgUzNDMjQxMiBNYWNoaW5lcwogIworIyBDT05GSUdfTUFDSF9KSVZFIGlzIG5vdCBzZXQKIENPTkZJR19NQUNIX1NNREsyNDEzPXkKIENPTkZJR19NQUNIX1MzQzI0MTM9eQorIyBDT05GSUdfTUFDSF9TTURLMjQxMiBpcyBub3Qgc2V0CiBDT05GSUdfTUFDSF9WU1RNUz15CiBDT05GSUdfQ1BVX1MzQzI0NDA9eQogQ09ORklHX1MzQzI0NDBfRE1BPXkKQEAgLTE5MSw2ICsyMzIsNyBAQAogQ09ORklHX0FSQ0hfUzNDMjQ0MD15CiBDT05GSUdfTUFDSF9ORVhDT0RFUl8yNDQwPXkKIENPTkZJR19TTURLMjQ0MF9DUFUyNDQwPXkKKyMgQ09ORklHX01BQ0hfQVQyNDQwRVZCIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfUzNDMjQ0Mj15CiAKICMKQEAgLTIxNSw2ICsyNTcsNyBAQAogQ09ORklHX0NQVV8zMnY1PXkKIENPTkZJR19DUFVfQUJSVF9FVjRUPXkKIENPTkZJR19DUFVfQUJSVF9FVjVUSj15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CiBDT05GSUdfQ1BVX0NBQ0hFX1Y0V1Q9eQogQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKIENPTkZJR19DUFVfQ09QWV9WNFdCPXkKQEAgLTIzNiwxNyArMjc5LDE1IEBACiAjIEJ1cyBzdXBwb3J0CiAjCiBDT05GSUdfSVNBPXkKLQotIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0Ci0jCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogCiAjCiAjIEtlcm5lbCBGZWF0dXJlcwogIworIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MjAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApAQCAtMjU3LDkgKzI5OCwxMyBAQAogQ09ORklHX0ZMQVRNRU09eQogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CiBDT05GSUdfQUxJR05NRU5UX1RSQVA9eQogCiAjCkBAIC0yNzksNyArMzI0LDcgQEAKICMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCiAjCiBDT05GSUdfRlBFX05XRlBFPXkKLSMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0CitDT05GSUdfRlBFX05XRlBFX1hQPXkKICMgQ09ORklHX0ZQRV9GQVNURlBFIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZGUCBpcyBub3Qgc2V0CiAKQEAgLTI5NSwxMCArMzQwLDEyIEBACiAjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucwogIwogQ09ORklHX1BNPXkKLSMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0CiAjIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QTV9TWVNGU19ERVBSRUNBVEVEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FQTV9FTVVMQVRJT04gaXMgbm90IHNldAorQ09ORklHX1BNX1NMRUVQPXkKK0NPTkZJR19TVVNQRU5EPXkKK0NPTkZJR19TVVNQRU5EX0ZSRUVaRVI9eQorQ09ORklHX0FQTV9FTVVMQVRJT049bQorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CiAKICMKICMgTmV0d29ya2luZwpAQCAtMzA4LDU5ICszNTUsNjcgQEAKICMKICMgTmV0d29ya2luZyBvcHRpb25zCiAjCi0jIENPTkZJR19ORVRERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QQUNLRVQgaXMgbm90IHNldAorQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CiBDT05GSUdfVU5JWD15CiBDT05GSUdfWEZSTT15CiAjIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAogIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CiBDT05GSUdfSU5FVD15Ci0jIENPTkZJR19JUF9NVUxUSUNBU1QgaXMgbm90IHNldAorQ09ORklHX0lQX01VTFRJQ0FTVD15CiAjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAogQ09ORklHX0lQX0ZJQl9IQVNIPXkKIENPTkZJR19JUF9QTlA9eQotIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorQ09ORklHX0lQX1BOUF9ESENQPXkKIENPTkZJR19JUF9QTlBfQk9PVFA9eQogIyBDT05GSUdfSVBfUE5QX1JBUlAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX01ST1VURSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKICMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9UVU5ORUw9bQogQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15CiBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKIENPTkZJR19JTkVUX0RJQUc9eQogQ09ORklHX0lORVRfVENQX0RJQUc9eQogIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAogQ09ORklHX1RDUF9DT05HX0NVQklDPXkKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAotIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAorQ09ORklHX0lQVjY9bQorQ09ORklHX0lQVjZfUFJJVkFDWT15CitDT05GSUdfSVBWNl9ST1VURVJfUFJFRj15CisjIENPTkZJR19JUFY2X1JPVVRFX0lORk8gaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9PUFRJTUlTVElDX0RBRCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVDZfQUg9bQorQ09ORklHX0lORVQ2X0VTUD1tCitDT05GSUdfSU5FVDZfSVBDT01QPW0KK0NPTkZJR19JUFY2X01JUDY9bQorQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMPW0KK0NPTkZJR19JTkVUNl9UVU5ORUw9bQorQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UUkFOU1BPUlQ9bQorQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UVU5ORUw9bQorQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPW0KK0NPTkZJR19JTkVUNl9YRlJNX01PREVfUk9VVEVPUFRJTUlaQVRJT049bQorQ09ORklHX0lQVjZfU0lUPW0KK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKK0NPTkZJR19JUFY2X1RVTk5FTD1tCisjIENPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2X01ST1VURSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKLQotIwotIyBEQ0NQIENvbmZpZ3VyYXRpb24gKEVYUEVSSU1FTlRBTCkKLSMKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAotCi0jCi0jIFNDVFAgQ29uZmlndXJhdGlvbiAoRVhQRVJJTUVOVEFMKQotIwogIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0Ci0KLSMKLSMgVElQQyBDb25maWd1cmF0aW9uIChFWFBFUklNRU5UQUwpCi0jCiAjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CiAjIENPTkZJR19CUklER0UgaXMgbm90IHNldApAQCAtMzczLDIwICs0MjgsNzEgQEAKICMgQ09ORklHX0xBUEIgaXMgbm90IHNldAogIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAotCi0jCi0jIFFvUyBhbmQvb3IgZmFpciBxdWV1ZWluZwotIwogIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfU0NIX0ZJRk89eQogCiAjCiAjIE5ldHdvcmsgdGVzdGluZwogIwogIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAogIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CVCBpcyBub3Qgc2V0CitDT05GSUdfQlQ9bQorQ09ORklHX0JUX0wyQ0FQPW0KK0NPTkZJR19CVF9TQ089bQorQ09ORklHX0JUX1JGQ09NTT1tCitDT05GSUdfQlRfUkZDT01NX1RUWT15CitDT05GSUdfQlRfQk5FUD1tCitDT05GSUdfQlRfQk5FUF9NQ19GSUxURVI9eQorQ09ORklHX0JUX0JORVBfUFJPVE9fRklMVEVSPXkKK0NPTkZJR19CVF9ISURQPW0KKworIworIyBCbHVldG9vdGggZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19CVF9IQ0lVU0I9bQorQ09ORklHX0JUX0hDSVVTQl9TQ089eQorQ09ORklHX0JUX0hDSVVBUlQ9bQorQ09ORklHX0JUX0hDSVVBUlRfSDQ9eQorQ09ORklHX0JUX0hDSVVBUlRfQkNTUD15CitDT05GSUdfQlRfSENJVUFSVF9MTD15CitDT05GSUdfQlRfSENJQkNNMjAzWD1tCitDT05GSUdfQlRfSENJQlBBMTBYPW0KK0NPTkZJR19CVF9IQ0lCRlVTQj1tCitDT05GSUdfQlRfSENJVkhDST1tCisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKK0NPTkZJR19DRkc4MDIxMT1tCitDT05GSUdfTkw4MDIxMT15CitDT05GSUdfV0lSRUxFU1NfRVhUPXkKK0NPTkZJR19NQUM4MDIxMT1tCisKKyMKKyMgUmF0ZSBjb250cm9sIGFsZ29yaXRobSBzZWxlY3Rpb24KKyMKK0NPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUX1BJRD15CisjIENPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUX05PTkUgaXMgbm90IHNldAorCisjCisjIFNlbGVjdGluZyAneScgZm9yIGFuIGFsZ29yaXRobSB3aWxsCisjCisKKyMKKyMgYnVpbGQgdGhlIGFsZ29yaXRobSBpbnRvIG1hYzgwMjExLgorIworQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFQ9InBpZCIKK0NPTkZJR19NQUM4MDIxMV9SQ19QSUQ9eQorQ09ORklHX01BQzgwMjExX01FU0g9eQorQ09ORklHX01BQzgwMjExX0xFRFM9eQorIyBDT05GSUdfTUFDODAyMTFfREVCVUdfUEFDS0VUX0FMSUdOTUVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CiAKICMKICMgRGV2aWNlIERyaXZlcnMKQEAgLTM5NSwyMSArNTAxLDE0IEBACiAjCiAjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKICMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCiBDT05GSUdfU1RBTkRBTE9ORT15CiBDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15Ci0jIENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldAorQ09ORklHX0ZXX0xPQURFUj1tCiAjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKLQotIwotIyBDb25uZWN0b3IgLSB1bmlmaWVkIHVzZXJzcGFjZSA8LT4ga2VybmVsc3BhY2UgbGlua2VyCi0jCiAjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAotCi0jCi0jIE1lbW9yeSBUZWNobm9sb2d5IERldmljZXMgKE1URCkKLSMKIENPTkZJR19NVEQ9eQogIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldApAQCAtNDIwLDYgKzUxOSw3IEBACiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUU19SRUFET05MWSBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQogIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDMyLDYgKzUzMiw3IEBACiAjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CiAjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKICMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKIAogIwogIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycwpAQCAtNDU3LDcgKzU1OCw2IEBACiAjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKIENPTkZJR19NVERfUk9NPXkKICMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAotIyBDT05GSUdfTVREX09CU09MRVRFX0NISVBTIGlzIG5vdCBzZXQKIAogIwogIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCkBAIC00ODYsMTMgKzU4NiwxMCBAQAogIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKLQotIwotIyBOQU5EIEZsYXNoIERldmljZSBEcml2ZXJzCi0jCiBDT05GSUdfTVREX05BTkQ9eQogIyBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9OQU5EX0VDQ19TTUMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTVVTRVVNX0lEUyBpcyBub3Qgc2V0CiBDT05GSUdfTVREX05BTkRfSURTPXkKIENPTkZJR19NVERfTkFORF9TM0MyNDEwPXkKICMgQ09ORklHX01URF9OQU5EX1MzQzI0MTBfREVCVUcgaXMgbm90IHNldApAQCAtNTAwLDMwICs1OTcsMjUgQEAKICMgQ09ORklHX01URF9OQU5EX1MzQzI0MTBfQ0xLU1RPUCBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAotCi0jCi0jIE9uZU5BTkQgRmxhc2ggRGV2aWNlIERyaXZlcnMKLSMKKyMgQ09ORklHX01URF9OQU5EX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BTEFVREEgaXMgbm90IHNldAogIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAogCiAjCi0jIFBhcmFsbGVsIHBvcnQgc3VwcG9ydAorIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKICMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAogQ09ORklHX1BBUlBPUlQ9eQotIyBDT05GSUdfUEFSUE9SVF9QQyBpcyBub3Qgc2V0CitDT05GSUdfUEFSUE9SVF9QQz1tCisjIENPTkZJR19QQVJQT1JUX1BDX0ZJRk8gaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVF9QQ19TVVBFUklPIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBUlBPUlRfR1NDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBUlBPUlRfQVg4ODc5NiBpcyBub3Qgc2V0CitDT05GSUdfUEFSUE9SVF9BWDg4Nzk2PW0KIENPTkZJR19QQVJQT1JUXzEyODQ9eQotCi0jCi0jIFBsdWcgYW5kIFBsYXkgc3VwcG9ydAotIworQ09ORklHX1BBUlBPUlRfTk9UX1BDPXkKICMgQ09ORklHX1BOUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19QTlBBQ1BJIGlzIG5vdCBzZXQKLQotIwotIyBCbG9jayBkZXZpY2VzCi0jCitDT05GSUdfQkxLX0RFVj15CisjIENPTkZJR19QQVJJREUgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0xPT1A9eQogIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKQEAgLTUzMiwzNCArNjI0LDM0IEBACiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT00MDk2Ci1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKKyMgQ09ORklHX0JMS19ERVZfWElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAogQ09ORklHX0FUQV9PVkVSX0VUSD1tCi0KLSMKLSMgQVRBL0FUQVBJL01GTS9STEwgc3VwcG9ydAotIworQ09ORklHX01JU0NfREVWSUNFUz15CisjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CiBDT05GSUdfSURFPXkKIENPTkZJR19CTEtfREVWX0lERT15CiAKICMKLSMgUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL2lkZS50eHQgZm9yIGhlbHAvaW5mbyBvbiBJREUgZHJpdmVzCisjIFBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi9pZGUvaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKICMKICMgQ09ORklHX0JMS19ERVZfSURFX1NBVEEgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSURFRElTSz15CiAjIENPTkZJR19JREVESVNLX01VTFRJX01PREUgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSURFQ0Q9eQorQ09ORklHX0JMS19ERVZfSURFQ0RfVkVSQk9TRV9FUlJPUlM9eQogQ09ORklHX0JMS19ERVZfSURFVEFQRT1tCiBDT05GSUdfQkxLX0RFVl9JREVGTE9QUFk9bQorIyBDT05GSUdfQkxLX0RFVl9JREVTQ1NJIGlzIG5vdCBzZXQKICMgQ09ORklHX0lERV9UQVNLX0lPQ1RMIGlzIG5vdCBzZXQKK0NPTkZJR19JREVfUFJPQ19GUz15CiAKICMKICMgSURFIGNoaXBzZXQgc3VwcG9ydC9idWdmaXhlcwogIwotQ09ORklHX0lERV9HRU5FUklDPXkKLSMgQ09ORklHX0lERV9BUk0gaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFX0JBU1Q9eQotIyBDT05GSUdfSURFX0NISVBTRVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUExBVEZPUk0gaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JREVETUEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9IRCBpcyBub3Qgc2V0CiAKQEAgLTU2NywxMDEgKzY1OSwxMTkgQEAKICMgU0NTSSBkZXZpY2Ugc3VwcG9ydAogIwogIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CitDT05GSUdfU0NTSV9UR1Q9bQogIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1BST0NfRlM9eQogCiAjCi0jIFNlcmlhbCBBVEEgKHByb2QpIGFuZCBQYXJhbGxlbCBBVEEgKGV4cGVyaW1lbnRhbCkgZHJpdmVycworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQogIworQ09ORklHX0JMS19ERVZfU0Q9eQorQ09ORklHX0NIUl9ERVZfU1Q9bQorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX1NSPW0KK0NPTkZJR19CTEtfREVWX1NSX1ZFTkRPUj15CitDT05GSUdfQ0hSX0RFVl9TRz15CitDT05GSUdfQ0hSX0RFVl9TQ0g9bQorCisjCisjIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcworIworQ09ORklHX1NDU0lfTVVMVElfTFVOPXkKK0NPTkZJR19TQ1NJX0NPTlNUQU5UUz15CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorQ09ORklHX1NDU0lfU0NBTl9BU1lOQz15CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSEExNTJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDN1hYWF9PTEQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BRFZBTlNZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lOMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RUQzMyODAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GVVRVUkVfRE9NQUlOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfR0VORVJJQ19OQ1I1MzgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfR0VORVJJQ19OQ1I1MzgwX01NSU8gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9QUEEgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JTU0gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9OQ1I1M0M0MDZBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfUEFTMTYgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTE9HSUNfRkFTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1lNNTNDNDE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfVDEyOCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQSBpcyBub3Qgc2V0Ci0KLSMKLSMgTXVsdGktZGV2aWNlIHN1cHBvcnQgKFJBSUQgYW5kIExWTSkKLSMKK0NPTkZJR19IQVZFX1BBVEFfUExBVEZPUk09eQogIyBDT05GSUdfTUQgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKLSMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0Ci0KLSMKLSMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAotIwotCi0jCi0jIEkyTyBkZXZpY2Ugc3VwcG9ydAotIwotCi0jCi0jIE5ldHdvcmsgZGV2aWNlIHN1cHBvcnQKLSMKIENPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAogIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RVTiBpcyBub3Qgc2V0Ci0KLSMKLSMgQVJDbmV0IGRldmljZXMKLSMKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAogIyBDT05GSUdfQVJDTkVUIGlzIG5vdCBzZXQKLQotIwotIyBQSFkgZGV2aWNlIHN1cHBvcnQKLSMKICMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0Ci0KLSMKLSMgRXRoZXJuZXQgKDEwIG9yIDEwME1iaXQpCi0jCiBDT05GSUdfTkVUX0VUSEVSTkVUPXkKIENPTkZJR19NSUk9eQorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVkVORE9SXzNDT00gaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1ZFTkRPUl9TTUMgaXMgbm90IHNldAogIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKIENPTkZJR19ETTkwMDA9eQorIyBDT05GSUdfRU5DMjhKNjAgaXMgbm90IHNldAorQ09ORklHX0RNOTAwMF9ERUJVR0xFVkVMPTQKICMgQ09ORklHX05FVF9WRU5ET1JfUkFDQUwgaXMgbm90IHNldAogIyBDT05GSUdfQVQxNzAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFUENBIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9JU0EgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9QT0NLRVQgaXMgbm90IHNldAotCi0jCi0jIEV0aGVybmV0ICgxMDAwIE1iaXQpCi0jCi0KLSMKLSMgRXRoZXJuZXQgKDEwMDAwIE1iaXQpCi0jCi0KLSMKLSMgVG9rZW4gUmluZyBkZXZpY2VzCi0jCitDT05GSUdfTkVUREVWXzEwMDA9eQorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVl8xMDAwMD15CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKLSMgV2lyZWxlc3MgTEFOIChub24taGFtcmFkaW8pCisjIFdpcmVsZXNzIExBTgogIwotIyBDT05GSUdfTkVUX1JBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCi0jIFdhbiBpbnRlcmZhY2VzCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCiAjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BMSVAgaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldAotIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKLQotIwotIyBJU0ROIHN1YnN5c3RlbQotIwogIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CiAKICMKQEAgLTY2OSw2ICs3NzksNyBAQAogIwogQ09ORklHX0lOUFVUPXkKICMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CiAKICMKICMgVXNlcmxhbmQgaW50ZXJmYWNlcwpAQCAtNjc4LDcgKzc4OSw2IEBACiBDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAogQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIApAQCAtNjk1LDEyICs4MDUsMjEgQEAKICMgQ09ORklHX0tFWUJPQVJEX0dQSU8gaXMgbm90IHNldAogQ09ORklHX0lOUFVUX01PVVNFPXkKIENPTkZJR19NT1VTRV9QUzI9eQorQ09ORklHX01PVVNFX1BTMl9BTFBTPXkKK0NPTkZJR19NT1VTRV9QUzJfTE9HSVBTMlBQPXkKK0NPTkZJR19NT1VTRV9QUzJfU1lOQVBUSUNTPXkKK0NPTkZJR19NT1VTRV9QUzJfTElGRUJPT0s9eQorQ09ORklHX01PVVNFX1BTMl9UUkFDS1BPSU5UPXkKKyMgQ09ORklHX01PVVNFX1BTMl9UT1VDSEtJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT1VTRV9TRVJJQUwgaXMgbm90IHNldAorIyBDT05GSUdfTU9VU0VfQVBQTEVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT1VTRV9JTlBPUlQgaXMgbm90IHNldAogIyBDT05GSUdfTU9VU0VfTE9HSUJNIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX1BDMTEwUEFEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX1ZTWFhYQUEgaXMgbm90IHNldAorIyBDT05GSUdfTU9VU0VfR1BJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CiAKQEAgLTcyMSw2ICs4NDAsNyBAQAogQ09ORklHX1ZUX0NPTlNPTEU9eQogQ09ORklHX0hXX0NPTlNPTEU9eQogIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQ9eQogIyBDT05GSUdfQ09NUFVUT05FIGlzIG5vdCBzZXQKICMgQ09ORklHX1JPQ0tFVFBPUlQgaXMgbm90IHNldApAQCAtNzI4LDggKzg0OCw2IEBACiAjIENPTkZJR19ESUdJRVBDQSBpcyBub3Qgc2V0CiAjIENPTkZJR19NT1hBX0lOVEVMTElPIGlzIG5vdCBzZXQKICMgQ09ORklHX01PWEFfU01BUlRJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NT1hBX1NNQVJUSU9fTkVXIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZTkNMSU5LTVAgaXMgbm90IHNldAogIyBDT05GSUdfTl9IRExDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JJU0NPTTggaXMgbm90IHNldAogIyBDT05GSUdfU1BFQ0lBTElYIGlzIG5vdCBzZXQKQEAgLTc1OCw4ICs4NzYsMTIgQEAKICMKICMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAogIworQ09ORklHX1NFUklBTF9TQU1TVU5HPXkKKyMgQ09ORklHX1NFUklBTF9TQU1TVU5HX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfU0FNU1VOR19DT05TT0xFPXkKIENPTkZJR19TRVJJQUxfUzNDMjQxMD15Ci1DT05GSUdfU0VSSUFMX1MzQzI0MTBfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX1MzQzI0MTI9eQorQ09ORklHX1NFUklBTF9TM0MyNDQwPXkKIENPTkZJR19TRVJJQUxfQ09SRT15CiBDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CiBDT05GSUdfVU5JWDk4X1BUWVM9eQpAQCAtNzY4LDE2ICs4OTAsMTM5IEBACiBDT05GSUdfUFJJTlRFUj15CiAjIENPTkZJR19MUF9DT05TT0xFIGlzIG5vdCBzZXQKIENPTkZJR19QUERFVj15Ci0jIENPTkZJR19USVBBUiBpcyBub3Qgc2V0Ci0KLSMKLSMgSVBNSQotIwogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKK0NPTkZJR19IV19SQU5ET009eQorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfRFRMSyBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorQ09ORklHX0RFVlBPUlQ9eQorQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CitDT05GSUdfSTJDX0NIQVJERVY9bQorQ09ORklHX0kyQ19BTEdPQklUPXkKIAogIwotIyBXYXRjaGRvZyBDYXJkcworIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKKyMgQ09ORklHX0kyQ19FTEVLVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19HUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorQ09ORklHX0kyQ19TM0MyNDEwPXkKK0NPTkZJR19JMkNfU0lNVEVDPXkKKyMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVElOWV9VU0IgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9JU0EgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfRUVQUk9NPW0KKyMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CisjIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAorQ09ORklHX1NQST15CisjIENPTkZJR19TUElfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NQSV9NQVNURVI9eQorCisjCisjIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfU1BJX0JJVEJBTkc9bQorIyBDT05GSUdfU1BJX0JVVFRFUkZMWSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfTE03MF9MTFAgaXMgbm90IHNldAorQ09ORklHX1NQSV9TM0MyNFhYPW0KK0NPTkZJR19TUElfUzNDMjRYWF9HUElPPW0KKworIworIyBTUEkgUHJvdG9jb2wgTWFzdGVycworIworIyBDT05GSUdfU1BJX0FUMjUgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1NQSURFViBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfVExFNjJYMCBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9HUElPX0xJQj15CisKKyMKKyMgR1BJTyBTdXBwb3J0CisjCisjIENPTkZJR19ERUJVR19HUElPIGlzIG5vdCBzZXQKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX1BDQTk1M1ggaXMgbm90IHNldAorIyBDT05GSUdfR1BJT19QQ0Y4NTdYIGlzIG5vdCBzZXQKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX01DUDIzUzA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CitDT05GSUdfSFdNT049eQorQ09ORklHX0hXTU9OX1ZJRD1tCisjIENPTkZJR19TRU5TT1JTX0FENzQxOCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMjEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE0xMDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAyNiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMjkgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE0xMDMxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNOTI0MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FEVDc0NzAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRFQ3NDczIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQVRYUDEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19EUzE2MjEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19GNzE4MDVGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRjcxODgyRkcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19GNzUzNzVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfR0w1MThTTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0dMNTIwU00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19JVDg3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE02MyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNNzAgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTE03NT1tCisjIENPTkZJR19TRU5TT1JTX0xNNzcgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTE03OD1tCisjIENPTkZJR19TRU5TT1JTX0xNODAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTgzIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0xNODU9bQorIyBDT05GSUdfU0VOU09SU19MTTg3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE05MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNOTIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYMTYxOSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDY2NTAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQzg3MzYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUEM4NzQyNyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0RNRTE3MzcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19TTVNDNDdNMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N00xOTIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19TTVNDNDdCMzk3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURTNzgyOCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RITUM1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1ZUMTIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4Mzc4MUQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM3OTFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNzkyRCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4Mzc5MyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4M0w3ODVUUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4M0w3ODZORyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4MzYyN0hGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNjI3RUhGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OX0RFQlVHX0NISVAgaXMgbm90IHNldAogQ09ORklHX1dBVENIRE9HPXkKICMgQ09ORklHX1dBVENIRE9HX05PV0FZT1VUIGlzIG5vdCBzZXQKIApAQCAtNzk4LDE3OSArMTA0Myw1NCBAQAogIyBVU0ItYmFzZWQgV2F0Y2hkb2cgQ2FyZHMKICMKICMgQ09ORklHX1VTQlBDV0FUQ0hET0cgaXMgbm90IHNldAotQ09ORklHX0hXX1JBTkRPTT15Ci0jIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVExLIGlzIG5vdCBzZXQKLSMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogCiAjCi0jIFRQTSBkZXZpY2VzCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQogIwotIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0Ci0KLSMKLSMgSTJDIHN1cHBvcnQKLSMKLUNPTkZJR19JMkM9eQotQ09ORklHX0kyQ19DSEFSREVWPW0KLQotIwotIyBJMkMgQWxnb3JpdGhtcwotIwotQ09ORklHX0kyQ19BTEdPQklUPW0KLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwotIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKLSMKLSMgQ09ORklHX0kyQ19FTEVLVE9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX1BBUlBPUlQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAotQ09ORklHX0kyQ19TM0MyNDEwPXkKLSMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19QQ0FfSVNBIGlzIG5vdCBzZXQKLQotIwotIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKLSMKLSMgQ09ORklHX1NFTlNPUlNfRFMxMzM3IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfRFMxMzc0IGlzIG5vdCBzZXQKLUNPTkZJR19TRU5TT1JTX0VFUFJPTT1tCi0jIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19QQ0E5NTM5IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKLUNPTkZJR19TUEk9eQotIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19TUElfTUFTVEVSPXkKLQotIwotIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycwotIwotQ09ORklHX1NQSV9CSVRCQU5HPW0KLSMgQ09ORklHX1NQSV9CVVRURVJGTFkgaXMgbm90IHNldAotQ09ORklHX1NQSV9TM0MyNFhYPW0KLUNPTkZJR19TUElfUzNDMjRYWF9HUElPPW0KLQotIwotIyBTUEkgUHJvdG9jb2wgTWFzdGVycwotIwotIyBDT05GSUdfU1BJX0FUMjUgaXMgbm90IHNldAotCi0jCi0jIERhbGxhcydzIDEtd2lyZSBidXMKLSMKLSMgQ09ORklHX1cxIGlzIG5vdCBzZXQKLQotIwotIyBIYXJkd2FyZSBNb25pdG9yaW5nIHN1cHBvcnQKLSMKLUNPTkZJR19IV01PTj15Ci1DT05GSUdfSFdNT05fVklEPW0KLSMgQ09ORklHX1NFTlNPUlNfQUJJVFVHVVJVIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfQURNMTAyMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0FETTEwMjUgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BRE0xMDI2IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfQURNMTAyOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0FETTEwMzEgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BRE05MjQwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfQVNCMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfQVRYUDEgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19EUzE2MjEgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19GNzE4MDVGIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfRlNDSEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfRlNDUE9TIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfR0w1MThTTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0dMNTIwU00gaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19JVDg3IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfTE02MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0xNNzAgaXMgbm90IHNldAotQ09ORklHX1NFTlNPUlNfTE03NT1tCi0jIENPTkZJR19TRU5TT1JTX0xNNzcgaXMgbm90IHNldAotQ09ORklHX1NFTlNPUlNfTE03OD1tCi0jIENPTkZJR19TRU5TT1JTX0xNODAgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19MTTgzIGlzIG5vdCBzZXQKLUNPTkZJR19TRU5TT1JTX0xNODU9bQotIyBDT05GSUdfU0VOU09SU19MTTg3IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfTE05MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0xNOTIgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19NQVgxNjE5IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfUEM4NzM2MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1BDODc0MjcgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19TTVNDNDdNMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1NNU0M0N00xOTIgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19TTVNDNDdCMzk3IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfVlQxMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfVzgzNzgxRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1c4Mzc5MUQgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODM3OTJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfVzgzNzkzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfVzgzTDc4NVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfVzgzNjI3SEYgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODM2MjdFSEYgaXMgbm90IHNldAotIyBDT05GSUdfSFdNT05fREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzYyBkZXZpY2VzCi0jCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwotIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKLQotIwotIyBMRUQgZGV2aWNlcwotIwotQ09ORklHX05FV19MRURTPXkKLUNPTkZJR19MRURTX0NMQVNTPW0KLQotIwotIyBMRUQgZHJpdmVycwotIwotQ09ORklHX0xFRFNfUzNDMjRYWD1tCi1DT05GSUdfTEVEU19IMTk0MD1tCi0KLSMKLSMgTEVEIFRyaWdnZXJzCi0jCi1DT05GSUdfTEVEU19UUklHR0VSUz15Ci1DT05GSUdfTEVEU19UUklHR0VSX1RJTUVSPW0KLSMgQ09ORklHX0xFRFNfVFJJR0dFUl9JREVfRElTSyBpcyBub3Qgc2V0Ci1DT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD1tCitDT05GSUdfTUZEX1NNNTAxPXkKKyMgQ09ORklHX01GRF9BU0lDMyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfRUdQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCi0jIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogCiAjCi0jIERpZ2l0YWwgVmlkZW8gQnJvYWRjYXN0aW5nIERldmljZXMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKICMKLSMgQ09ORklHX0RWQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCisjIENPTkZJR19EQUIgaXMgbm90IHNldAogCiAjCiAjIEdyYXBoaWNzIHN1cHBvcnQKICMKLSMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CiBDT05GSUdfRkI9eQogQ09ORklHX0ZJUk1XQVJFX0VESUQ9eQogIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKIENPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQogQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15CiBDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15CisjIENPTkZJR19GQl9DRkJfUkVWX1BJWEVMU19JTl9CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX01BQ01PREVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX0JBQ0tMSUdIVCBpcyBub3Qgc2V0CkBAIC05NzgsMTIgKzEwOTgsMTkgQEAKICMgQ09ORklHX0ZCX1RJTEVCTElUVElORyBpcyBub3Qgc2V0CiAKICMKLSMgRnJhbWJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCisjIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCiAjCiAjIENPTkZJR19GQl9TMUQxM1hYWCBpcyBub3Qgc2V0CiBDT05GSUdfRkJfUzNDMjQxMD15CiAjIENPTkZJR19GQl9TM0MyNDEwX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9TTTUwMT15CiAjIENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKIAogIwogIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKQEAgLTk5Miw2OCArMTExOSwyMSBAQAogIyBDT05GSUdfTURBX0NPTlNPTEUgaXMgbm90IHNldAogQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQogQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQorIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERVRFQ1RfUFJJTUFSWSBpcyBub3Qgc2V0CiAjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX1JPVEFUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZPTlRTIGlzIG5vdCBzZXQKIENPTkZJR19GT05UXzh4OD15CiBDT05GSUdfRk9OVF84eDE2PXkKLQotIwotIyBMb2dvIGNvbmZpZ3VyYXRpb24KLSMKICMgQ09ORklHX0xPR08gaXMgbm90IHNldAogCiAjCiAjIFNvdW5kCiAjCiAjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0Ci0KLSMKLSMgSElEIERldmljZXMKLSMKK0NPTkZJR19ISURfU1VQUE9SVD15CiBDT05GSUdfSElEPXkKICMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIHN1cHBvcnQKLSMKLUNPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKLUNPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15Ci0jIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCPXkKLSMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwotIwotQ09ORklHX1VTQl9ERVZJQ0VGUz15Ci0jIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCi0jCi0jIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAotQ09ORklHX1VTQl9PSENJX0hDRD15Ci0jIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKLSMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAotCi0jCi0jIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycwotIwotIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwotIwotCi0jCi0jIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KLSMKLSMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAogCiAjCiAjIFVTQiBJbnB1dCBEZXZpY2VzCkBAIC0xMDY1LDQ1ICsxMTQ1LDEyMiBAQAogIwogIyBDT05GSUdfVVNCX0tCRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfTU9VU0UgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0FJUFRFSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfV0FDT00gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0FDRUNBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfS0JUQUIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1BPV0VSTUFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1lFQUxJTksgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1hQQUQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0FUSV9SRU1PVEUgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0FUSV9SRU1PVEUyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9LRVlTUEFOX1JFTU9URSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQVBQTEVUT1VDSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfR1RDTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKKyMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKK0NPTkZJR19VU0I9eQorIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucworIworQ09ORklHX1VTQl9ERVZJQ0VGUz15CitDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9IQ0Q9eQorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworQ09ORklHX1VTQl9BQ009bQorQ09ORklHX1VTQl9QUklOVEVSPW0KK0NPTkZJR19VU0JfV0RNPW0KKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworQ09ORklHX1VTQl9TVE9SQUdFPW0KKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTElCVVNVQUw9eQogCiAjCiAjIFVTQiBJbWFnaW5nIGRldmljZXMKICMKICMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAotCi0jCi0jIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCi0jCi0jIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JQ1JPVEVLIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfTU9OPXkKIAogIwogIyBVU0IgcG9ydCBkcml2ZXJzCiAjCiAjIENPTkZJR19VU0JfVVNTNzIwIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0Ci0jCi0jIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU0VSSUFMPXkKKyMgQ09ORklHX1VTQl9TRVJJQUxfQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRVpVU0IgaXMgbm90IHNldAorQ09ORklHX1VTQl9TRVJJQUxfR0VORVJJQz15CisjIENPTkZJR19VU0JfU0VSSUFMX0FJUkNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfQUlSUFJJTUUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9BUkszMTE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfQkVMS0lOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfQ0gzNDEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9XSElURUhFQVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9ESUdJX0FDQ0VMRVBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9DUDIxMDEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9DWVBSRVNTX004IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfRU1QRUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9TRVJJQUxfRlRESV9TSU89eQorIyBDT05GSUdfVVNCX1NFUklBTF9GVU5TT0ZUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9JUEFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfSVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9FREdFUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0VER0VQT1JUX1RJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfR0FSTUlOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfSVBXIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfSVVVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9QREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfS0xTSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0tPQklMX1NDVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX01DVF9VMjMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfTU9TNzcyMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX01PUzc4NDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9NT1RPUk9MQSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NFUklBTF9OQVZNQU49bQorQ09ORklHX1VTQl9TRVJJQUxfUEwyMzAzPXkKKyMgQ09ORklHX1VTQl9TRVJJQUxfT1RJNjg1OCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX1NQQ1A4WDUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9IUDRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfU0FGRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX1NJRVJSQVdJUkVMRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfVEkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9DWUJFUkpBQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9YSVJDT00gaXMgbm90IHNldAorQ09ORklHX1VTQl9TRVJJQUxfT1BUSU9OPW0KKyMgQ09ORklHX1VTQl9TRVJJQUxfT01OSU5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0RFQlVHIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCkBAIC0xMTE2LDM1ICsxMjczLDM4IEBACiAjIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTEVEPW0KICMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTEQ9bQogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAotIwotCi0jCi0jIFVTQiBHYWRnZXQgU3VwcG9ydAotIworIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAotCi0jCi0jIE1NQy9TRCBDYXJkIHN1cHBvcnQKLSMKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CitDT05GSUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9bQogCiAjCi0jIFJlYWwgVGltZSBDbG9jaworIyBMRUQgZHJpdmVycwogIworQ09ORklHX0xFRFNfUzNDMjRYWD1tCitDT05GSUdfTEVEU19IMTk0MD1tCisjIENPTkZJR19MRURTX0dQSU8gaXMgbm90IHNldAorCisjCisjIExFRCBUcmlnZ2VycworIworQ09ORklHX0xFRFNfVFJJR0dFUlM9eQorQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUj1tCisjIENPTkZJR19MRURTX1RSSUdHRVJfSURFX0RJU0sgaXMgbm90IHNldAorQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9bQorIyBDT05GSUdfTEVEU19UUklHR0VSX0RFRkFVTFRfT04gaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQogQ09ORklHX1JUQ19DTEFTUz15CiBDT05GSUdfUlRDX0hDVE9TWVM9eQpAQCAtMTE1OCw2MSArMTMxOCw4NiBAQAogQ09ORklHX1JUQ19JTlRGX1BST0M9eQogQ09ORklHX1JUQ19JTlRGX0RFVj15CiAjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKIAogIwotIyBSVEMgZHJpdmVycworIyBJMkMgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1MzNTM5MEEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9GTTMxMzAgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUjk3MDEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzQ4IGlzIG5vdCBzZXQKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycwogIwogIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzEzMDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfUENGODU2MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKLUNPTkZJR19SVENfRFJWX1MzQz15CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CiAKICMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9TM0M9eQorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIwogIyBGaWxlIHN5c3RlbXMKICMKIENPTkZJR19FWFQyX0ZTPXkKLSMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorQ09ORklHX0VYVDJfRlNfWEFUVFI9eQorQ09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXkKICMgQ09ORklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKIENPTkZJR19FWFQzX0ZTPXkKIENPTkZJR19FWFQzX0ZTX1hBVFRSPXkKLSMgQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKK0NPTkZJR19FWFQzX0ZTX1BPU0lYX0FDTD15CiAjIENPTkZJR19FWFQzX0ZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAogQ09ORklHX0pCRD15Ci0jIENPTkZJR19KQkRfREVCVUcgaXMgbm90IHNldAogQ09ORklHX0ZTX01CQ0FDSEU9eQogIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CitDT05GSUdfRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19ST01GU19GUz15CitDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CiBDT05GSUdfSU5PVElGWV9VU0VSPXkKICMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKLUNPTkZJR19ETk9USUZZPXkKICMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQUNMPXkKIAogIwogIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCiAjCi0jIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CitDT05GSUdfSVNPOTY2MF9GUz15CitDT05GSUdfSk9MSUVUPXkKKyMgQ09ORklHX1pJU09GUyBpcyBub3Qgc2V0CitDT05GSUdfVURGX0ZTPW0KK0NPTkZJR19VREZfTkxTPXkKIAogIwogIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCkBAIC0xMjIyLDcgKzE0MDcsOSBAQAogQ09ORklHX1ZGQVRfRlM9eQogQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNwogQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgotIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTlRGU19GUz1tCisjIENPTkZJR19OVEZTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX05URlNfUlcgaXMgbm90IHNldAogCiAjCiAjIFBzZXVkbyBmaWxlc3lzdGVtcwpAQCAtMTIzMCwxMCArMTQxNywxMCBAQAogQ09ORklHX1BST0NfRlM9eQogQ09ORklHX1BST0NfU1lTQ1RMPXkKIENPTkZJR19TWVNGUz15Ci0jIENPTkZJR19UTVBGUyBpcyBub3Qgc2V0CitDT05GSUdfVE1QRlM9eQorQ09ORklHX1RNUEZTX1BPU0lYX0FDTD15CiAjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAotQ09ORklHX1JBTUZTPXkKLSMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19DT05GSUdGU19GUz1tCiAKICMKICMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcwpAQCAtMTI0OCwzMSArMTQzNSwzMiBAQAogQ09ORklHX0pGRlMyX0ZTPXkKIENPTkZJR19KRkZTMl9GU19ERUJVRz0wCiBDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQotIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfU1VNTUFSWT15CiAjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CiAjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKIENPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfSkZGUzJfUlRJTUU9eQogIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAogQ09ORklHX0NSQU1GUz15CiAjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ST01GU19GUz15CiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBGaWxlIFN5c3RlbXMKLSMKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKIENPTkZJR19ORlNfRlM9eQogIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKIENPTkZJR19ORlNfQ09NTU9OPXkKIENPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CiAjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAogIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldApAQCAtMTI4MCw3ICsxNDY4LDYgQEAKICMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR185UF9GUyBpcyBub3Qgc2V0CiAKICMKICMgUGFydGl0aW9uIFR5cGVzCkBAIC0xMzAyLDk0ICsxNDg5LDkzIEBACiAjIENPTkZJR19TVU5fUEFSVElUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBUk1BX1BBUlRJVElPTiBpcyBub3Qgc2V0CiAjIENPTkZJR19FRklfUEFSVElUSU9OIGlzIG5vdCBzZXQKLQotIwotIyBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAotIworIyBDT05GSUdfU1lTVjY4X1BBUlRJVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfTkxTPXkKIENPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgotIyBDT05GSUdfTkxTX0NPREVQQUdFXzQzNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzEgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX1VURjggaXMgbm90IHNldAotCi0jCi0jIERpc3RyaWJ1dGVkIExvY2sgTWFuYWdlcgotIworQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQorQ09ORklHX05MU19DT0RFUEFHRV83Mzc9bQorQ09ORklHX05MU19DT0RFUEFHRV83NzU9bQorQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQorQ09ORklHX05MU19DT0RFUEFHRV84NTI9bQorQ09ORklHX05MU19DT0RFUEFHRV84NTU9bQorQ09ORklHX05MU19DT0RFUEFHRV84NTc9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjA9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjE9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjI9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjM9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjQ9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjU9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjY9bQorQ09ORklHX05MU19DT0RFUEFHRV84Njk9bQorQ09ORklHX05MU19DT0RFUEFHRV85MzY9bQorQ09ORklHX05MU19DT0RFUEFHRV85NTA9bQorQ09ORklHX05MU19DT0RFUEFHRV85MzI9bQorQ09ORklHX05MU19DT0RFUEFHRV85NDk9bQorQ09ORklHX05MU19DT0RFUEFHRV84NzQ9bQorQ09ORklHX05MU19JU084ODU5Xzg9bQorQ09ORklHX05MU19DT0RFUEFHRV8xMjUwPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfMTI1MT1tCitDT05GSUdfTkxTX0FTQ0lJPXkKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKK0NPTkZJR19OTFNfSVNPODg1OV8yPW0KK0NPTkZJR19OTFNfSVNPODg1OV8zPW0KK0NPTkZJR19OTFNfSVNPODg1OV80PW0KK0NPTkZJR19OTFNfSVNPODg1OV81PW0KK0NPTkZJR19OTFNfSVNPODg1OV82PW0KK0NPTkZJR19OTFNfSVNPODg1OV83PW0KK0NPTkZJR19OTFNfSVNPODg1OV85PW0KK0NPTkZJR19OTFNfSVNPODg1OV8xMz1tCitDT05GSUdfTkxTX0lTTzg4NTlfMTQ9bQorQ09ORklHX05MU19JU084ODU5XzE1PW0KK0NPTkZJR19OTFNfS09JOF9SPW0KK0NPTkZJR19OTFNfS09JOF9VPW0KK0NPTkZJR19OTFNfVVRGOD1tCiAjIENPTkZJR19ETE0gaXMgbm90IHNldAogCiAjCi0jIFByb2ZpbGluZyBzdXBwb3J0Ci0jCi0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAotCi0jCiAjIEtlcm5lbCBoYWNraW5nCiAjCiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0tFUk5FTD15CiAjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0Ci1DT05GSUdfTE9HX0JVRl9TSElGVD0xNgogQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKK0NPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfTVVURVhFUz15CisjIENPTkZJR19ERUJVR19MT0NLX0FMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST1ZFX0xPQ0tJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTE9DS19TVEFUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiBDT05GSUdfRlJBTUVfUE9JTlRFUj15Ci1DT05GSUdfRk9SQ0VEX0lOTElOSU5HPXkKKyMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKICMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfVVNFUj15Ci0jIENPTkZJR19ERUJVR19FUlJPUlMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0VSUk9SUz15CisjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfTEw9eQogIyBDT05GSUdfREVCVUdfSUNFRENDIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19TM0NfUE9SVD15CkBAIC0xNDAwLDIxICsxNTg2LDEwMCBAQAogIwogIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKIAogIwotIyBDcnlwdG9ncmFwaGljIG9wdGlvbnMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCiAjCi0jIENPTkZJR19DUllQVE8gaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BTEdBUEk9bQorQ09ORklHX0NSWVBUT19BRUFEPW0KK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPW0KK0NPTkZJR19DUllQVE9fSEFTSD1tCitDT05GSUdfQ1JZUFRPX01BTkFHRVI9bQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BVVRIRU5DPW0KKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz1tCisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0hNQUM9bQorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fTUQ1PW0KKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1NIQTE9bQorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCitDT05GSUdfQ1JZUFRPX0FFUz1tCisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fQVJDND1tCisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9bQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCitDT05GSUdfQ1JZUFRPX0RFRkxBVEU9bQorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0hXPXkKIAogIwogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorQ09ORklHX0NSQ19JVFVfVD1tCiBDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiAjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAogQ09ORklHX1pMSUJfSU5GTEFURT15CiBDT05GSUdfWkxJQl9ERUZMQVRFPXkKIENPTkZJR19QTElTVD15CiBDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3Mvc2FtOV9sOTI2MF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3NhbTlfbDkyNjBfZGVmY29uZmlnCmluZGV4IDQ4NGRjOTcuLjg2ODgzNjIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3Mvc2FtOV9sOTI2MF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9zYW05X2w5MjYwX2RlZmNvbmZpZwpAQCAtMjExLDcgKzIxMSw2IEBACiAjCiAjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogQ09ORklHX1BSRUVNUFQ9eQotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZwppbmRleCBhYTdhMDExLi43ZDU5ZmIxIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZwpAQCAtMTY0LDcgKzE2NCw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogQ09ORklHX1BSRUVNUFQ9eQotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAogQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQogQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvdGN0X2hhbW1lcl9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3RjdF9oYW1tZXJfZGVmY29uZmlnCmluZGV4IDU3NmI4MzMuLjA3ZGZiOTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvdGN0X2hhbW1lcl9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy90Y3RfaGFtbWVyX2RlZmNvbmZpZwpAQCAtMjQ3LDcgKzI0Nyw2IEBACiAjCiAjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0yMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3RyaXplcHM0X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvdHJpemVwczRfZGVmY29uZmlnCmluZGV4IDZkYjYzOTIuLjhiN2E0MzEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvdHJpemVwczRfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvdHJpemVwczRfZGVmY29uZmlnCkBAIC0xOTUsNyArMTk1LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKIENPTkZJR19BRUFCST15CiBDT05GSUdfT0FCSV9DT01QQVQ9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy91c2ItYTkyNjBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy91c2ItYTkyNjBfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2ODBiZDIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL3VzYi1hOTI2MF9kZWZjb25maWcKQEAgLTAsMCArMSwxMTQyIEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjQKKyMgVHVlIEFwciAxNSAxMTozOTozNSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9VU0VSX1NDSEVEPXkKKyMgQ09ORklHX0ZBSVJfQ0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQgaXMgbm90IHNldAorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAorQ09ORklHX1NZU0NUTD15CisjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorIyBDT05GSUdfSU9TQ0hFRF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19JT1NDSEVEX0NGUSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9BUz15CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MT15CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgQXRtZWwgQVQ5MSBTeXN0ZW0tb24tQ2hpcAorIworIyBDT05GSUdfQVJDSF9BVDkxUk05MjAwIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0FUOTFTQU05MjYwPXkKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05UkwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxQ0FQOSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFYNDAgaXMgbm90IHNldAorQ09ORklHX0FUOTFfUE1DX1VOSVQ9eQorCisjCisjIEFUOTFTQU05MjYwIFZhcmlhbnRzCisjCisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYwX1NBTTlYRSBpcyBub3Qgc2V0CisKKyMKKyMgQVQ5MVNBTTkyNjAgLyBBVDkxU0FNOVhFIEJvYXJkIFR5cGUKKyMKKyMgQ09ORklHX01BQ0hfQVQ5MVNBTTkyNjBFSyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX0NBTTYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfU0FNOV9MOTI2MCBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9VU0JfQTkyNjA9eQorIyBDT05GSUdfTUFDSF9RSUxfQTkyNjAgaXMgbm90IHNldAorCisjCisjIEFUOTEgQm9hcmQgT3B0aW9ucworIworCisjCisjIEFUOTEgRmVhdHVyZSBTZWxlY3Rpb25zCisjCisjIENPTkZJR19BVDkxX1BST0dSQU1NQUJMRV9DTE9DS1MgaXMgbm90IHNldAorQ09ORklHX0FUOTFfU0xPV19DTE9DSz15CitDT05GSUdfQVQ5MV9USU1FUl9IWj0xMDAKK0NPTkZJR19BVDkxX0VBUkxZX0RCR1U9eQorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDAgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDEgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDIgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDMgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDQgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDUgaXMgbm90IHNldAorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfQVJNOTI2VD15CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVRKPXkKK0NPTkZJR19DUFVfQ0FDSEVfVklWVD15CitDT05GSUdfQ1BVX0NPUFlfVjRXQj15CitDT05GSUdfQ1BVX1RMQl9WNFdCST15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCisjIENPTkZJR19BUk1fVEhVTUIgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX1dSSVRFVEhST1VHSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfQ0FDSEVfUk9VTkRfUk9CSU4gaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PX0haIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CisjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CitDT05GSUdfT0FCSV9DT01QQVQ9eQorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorIyBDT05GSUdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibWVtPTY0TSBjb25zb2xlPXR0eVMwLDExNTIwMCIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX0ZQRV9OV0ZQRT15CisjIENPTkZJR19GUEVfTldGUEVfWFAgaXMgbm90IHNldAorIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAorIyBDT05GSUdfVkZQIGlzIG5vdCBzZXQKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19QTT15CisjIENPTkZJR19QTV9MRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BNX1NMRUVQPXkKK0NPTkZJR19TVVNQRU5EX1VQX1BPU1NJQkxFPXkKK0NPTkZJR19TVVNQRU5EPXkKKyMgQ09ORklHX0FQTV9FTVVMQVRJT04gaXMgbm90IHNldAorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfVU5JWD15CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUj15CitDT05GSUdfQVNLX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX0ZJQl9UUklFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CisjIENPTkZJR19JUF9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKK0NPTkZJR19JUF9QTlA9eQorIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorQ09ORklHX0lQX1BOUF9CT09UUD15CitDT05GSUdfSVBfUE5QX1JBUlA9eQorIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NUk9VVEU9eQorQ09ORklHX0lQX1BJTVNNX1YxPXkKK0NPTkZJR19JUF9QSU1TTV9WMj15CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9ESUFHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CisjIENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9DRkkgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfREFUQUZMQVNIPXkKKyMgQ09ORklHX01URF9NMjVQODAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfQVQ5MT15CitDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfU09GVD15CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19IVyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19OT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1IgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TRyBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCitDT05GSUdfU0NTSV9NVUxUSV9MVU49eQorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAorQ09ORklHX1BIWUxJQj15CisKKyMKKyMgTUlJIFBIWSBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUFSVkVMTF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfREFWSUNPTV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfUVNFTUlfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xYVF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfQ0lDQURBX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19WSVRFU1NFX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19TTVNDX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19CUk9BRENPTV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfSUNQTFVTX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19GSVhFRF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTURJT19CSVRCQU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CitDT05GSUdfTUFDQj15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWXzEwMDA9eQorQ09ORklHX05FVERFVl8xMDAwMD15CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorCisjCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCisjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworQ09ORklHX0lOUFVUX01PVVNFREVWPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKK0NPTkZJR19JTlBVVF9FVkJVRz15CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19JTlBVVF9LRVlCT0FSRD15CisjIENPTkZJR19LRVlCT0FSRF9BVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfWFRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9HUElPPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9BVE1FTD15CitDT05GSUdfU0VSSUFMX0FUTUVMX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMX0FUTUVMX1RUWUFUIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CitDT05GSUdfVU5JWDk4X1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKK0NPTkZJR19IV19SQU5ET009eQorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIHN1cHBvcnQKKyMKK0NPTkZJR19TUEk9eQorIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfTUFTVEVSPXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX1NQSV9BVE1FTD15CisjIENPTkZJR19TUElfQklUQkFORyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFByb3RvY29sIE1hc3RlcnMKKyMKKyMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9TUElERVYgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1RMRTYyWDAgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworIyBDT05GSUdfVVNCX0hJRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhJRCBCb290IFByb3RvY29sIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9LQkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01PVVNFIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9IQ0Q9eQorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX01PTj15CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworCisjCisjIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERTTCBtb2RlbSBzdXBwb3J0CisjCisKKyMKKyMgVVNCIEdhZGdldCBTdXBwb3J0CisjCitDT05GSUdfVVNCX0dBREdFVD15CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfU0VMRUNURUQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0ZTTF9VU0IyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1MzQzI0MTAgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfQVQ5MT15CitDT05GSUdfVVNCX0FUOTE9eQorIyBDT05GSUdfVVNCX0dBREdFVF9EVU1NWV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAorQ09ORklHX1VTQl9FVEg9eQorQ09ORklHX1VTQl9FVEhfUk5ESVM9eQorIyBDT05GSUdfVVNCX0dBREdFVEZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dfU0VSSUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSURJX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKKworIworIyBMRUQgZHJpdmVycworIworQ09ORklHX0xFRFNfR1BJTz15CisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CisjIENPTkZJR19MRURTX1RSSUdHRVJfVElNRVIgaXMgbm90IHNldAorQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9eQorQ09ORklHX1JUQ19MSUI9eQorIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfRlNfUE9TSVhfQUNMPXkKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorQ09ORklHX0ZVU0VfRlM9bQorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKK0NPTkZJR19ORlNfVjM9eQorQ09ORklHX05GU19WM19BQ0w9eQorQ09ORklHX05GU19WND15CisjIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19MT0NLRF9WND15CitDT05GSUdfTkZTX0FDTF9TVVBQT1JUPXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorQ09ORklHX1NVTlJQQ19HU1M9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CitDT05GSUdfUlBDU0VDX0dTU19LUkI1PXkKKyMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAorIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlMgaXMgbm90IHNldAorIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQYXJ0aXRpb24gVHlwZXMKKyMKKyMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT15CisjIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorIyBDT05GSUdfSU5TVFJVTUVOVEFUSU9OIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQorQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKKyMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0tFUk5FTD15CisjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CitDT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorQ09ORklHX1NDSEVEX0RFQlVHPXkKKyMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKK0NPTkZJR19GT1JDRURfSU5MSU5JTkc9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfVVNFUj15CisjIENPTkZJR19ERUJVR19FUlJPUlMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0xMPXkKKyMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKK0NPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvdXNiLWE5MjYzX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvdXNiLWE5MjYzX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGQ0NTViCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy91c2ItYTkyNjNfZGVmY29uZmlnCkBAIC0wLDAgKzEsMTEzNCBAQAorIworIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI0CisjIFR1ZSBBcHIgMTUgMTE6MTU6MTkgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorQ09ORklHX0dFTkVSSUNfR1BJTz15CitDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19NTVU9eQorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19aT05FX0RNQT15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCitDT05GSUdfTE9DQUxWRVJTSU9OPSIiCisjIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0CisjIENPTkZJR19TV0FQIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CisjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19QSURfTlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQ9eQorQ09ORklHX0ZBSVJfVVNFUl9TQ0hFRD15CisjIENPTkZJR19GQUlSX0NHUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNGU19ERVBSRUNBVEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNDVEw9eQorIyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldAorQ09ORklHX1VJRDE2PXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfS0FMTFNZTVM9eQorIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CitDT05GSUdfU0xBQklORk89eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CitDT05GSUdfS01PRD15CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKK0NPTkZJR19JT1NDSEVEX0FTPXkKKyMgQ09ORklHX0lPU0NIRURfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfSU9TQ0hFRF9DRlEgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQVM9eQorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0FUOTE9eQorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVhDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworCisjCisjIEF0bWVsIEFUOTEgU3lzdGVtLW9uLUNoaXAKKyMKKyMgQ09ORklHX0FSQ0hfQVQ5MVJNOTIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjEgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjM9eQorIyBDT05GSUdfQVJDSF9BVDkxU0FNOVJMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MUNBUDkgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxWDQwIGlzIG5vdCBzZXQKK0NPTkZJR19BVDkxX1BNQ19VTklUPXkKKworIworIyBBVDkxU0FNOTI2MyBCb2FyZCBUeXBlCisjCisjIENPTkZJR19NQUNIX0FUOTFTQU05MjYzRUsgaXMgbm90IHNldAorQ09ORklHX01BQ0hfVVNCX0E5MjYzPXkKKworIworIyBBVDkxIEJvYXJkIE9wdGlvbnMKKyMKKworIworIyBBVDkxIEZlYXR1cmUgU2VsZWN0aW9ucworIworIyBDT05GSUdfQVQ5MV9QUk9HUkFNTUFCTEVfQ0xPQ0tTIGlzIG5vdCBzZXQKK0NPTkZJR19BVDkxX1NMT1dfQ0xPQ0s9eQorQ09ORklHX0FUOTFfVElNRVJfSFo9MTAwCitDT05GSUdfQVQ5MV9FQVJMWV9EQkdVPXkKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQ1IGlzIG5vdCBzZXQKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX0FSTTkyNlQ9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUSj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQorQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQorQ09ORklHX0NQVV9UTEJfVjRXQkk9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworIyBDT05GSUdfQVJNX1RIVU1CIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9XUklURVRIUk9VR0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0NBQ0hFX1JPVU5EX1JPQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX09VVEVSX0NBQ0hFIGlzIG5vdCBzZXQKKworIworIyBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKKyMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19OT19IWiBpcyBub3Qgc2V0CisjIENPTkZJR19ISUdIX1JFU19USU1FUlMgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQorIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorQ09ORklHX09BQklfQ09NUEFUPXkKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKKyMgQ09ORklHX0xFRFMgaXMgbm90IHNldAorQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKK0NPTkZJR19aQk9PVF9ST01fQlNTPTB4MAorQ09ORklHX0NNRExJTkU9Im1lbT02NE0gY29uc29sZT10dHlTMCwxMTUyMDAiCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKK0NPTkZJR19GUEVfTldGUEU9eQorIyBDT05GSUdfRlBFX05XRlBFX1hQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZQRV9GQVNURlBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGUCBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCitDT05GSUdfUE09eQorIyBDT05GSUdfUE1fTEVHQUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BNX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QTV9TTEVFUD15CitDT05GSUdfU1VTUEVORF9VUF9QT1NTSUJMRT15CitDT05GSUdfU1VTUEVORD15CisjIENPTkZJR19BUE1fRU1VTEFUSU9OIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAorQ09ORklHX1VOSVg9eQorIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfSU5FVD15CitDT05GSUdfSVBfTVVMVElDQVNUPXkKK0NPTkZJR19JUF9BRFZBTkNFRF9ST1VURVI9eQorQ09ORklHX0FTS19JUF9GSUJfSEFTSD15CisjIENPTkZJR19JUF9GSUJfVFJJRSBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorIyBDT05GSUdfSVBfTVVMVElQTEVfVEFCTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1JPVVRFX01VTFRJUEFUSCBpcyBub3Qgc2V0CitDT05GSUdfSVBfUk9VVEVfVkVSQk9TRT15CitDT05GSUdfSVBfUE5QPXkKKyMgQ09ORklHX0lQX1BOUF9ESENQIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9QTlBfQk9PVFA9eQorQ09ORklHX0lQX1BOUF9SQVJQPXkKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CitDT05GSUdfSVBfTVJPVVRFPXkKK0NPTkZJR19JUF9QSU1TTV9WMT15CitDT05GSUdfSVBfUElNU01fVjI9eQorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKKyMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorIyBDT05GSUdfRldfTE9BREVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCisjIENPTkZJR19NVERfQ0ZJIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80PXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorQ09ORklHX01URF9DRklfSTI9eQorIyBDT05GSUdfTVREX0NGSV9JNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKKworIworIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCisjIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCitDT05GSUdfTVREX0RBVEFGTEFTSD15CisjIENPTkZJR19NVERfTTI1UDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorIyBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0VDQ19TTUMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTVVTRVVNX0lEUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfSURTPXkKKyMgQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVAgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0FUOTE9eQorQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX1NPRlQ9eQorIyBDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfSFcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfTk9ORSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9OQU5EU0lNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAorCisjCisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcworIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9MT09QPXkKKyMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CisKKyMKKyMgU0NTSSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTST15CitDT05GSUdfU0NTSV9ETUE9eQorIyBDT05GSUdfU0NTSV9UR1QgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1BST0NfRlM9eQorCisjCisjIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCisjCitDT05GSUdfQkxLX0RFVl9TRD15CisjIENPTkZJR19DSFJfREVWX1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfT1NTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1NSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0cgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAorCisjCisjIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcworIworQ09ORklHX1NDU0lfTVVMVElfTFVOPXkKKyMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KKworIworIyBTQ1NJIFRyYW5zcG9ydHMKKyMKKyMgQ09ORklHX1NDU0lfU1BJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfTE9XTEVWRUw9eQorIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKK0NPTkZJR19QSFlMSUI9eQorCisjCisjIE1JSSBQSFkgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01BUlZFTExfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBVklDT01fUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FTRU1JX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19MWFRfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJQ0FEQV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfVklURVNTRV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfU01TQ19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfQlJPQURDT01fUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lDUExVU19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfRklYRURfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX01ESU9fQklUQkFORyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKK0NPTkZJR19NSUk9eQorQ09ORklHX01BQ0I9eQorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorQ09ORklHX05FVERFVl8xMDAwPXkKK0NPTkZJR19ORVRERVZfMTAwMDA9eQorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKworIworIyBVU0IgTmV0d29yayBBZGFwdGVycworIworIyBDT05GSUdfVVNCX0NBVEMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19QUFAgaXMgbm90IHNldAorIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CisjIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15CisjIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKK0NPTkZJR19JTlBVVF9NT1VTRURFVj15CisjIENPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWCBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9FVkRFVj15CitDT05GSUdfSU5QVVRfRVZCVUc9eQorCisjCisjIElucHV0IERldmljZSBEcml2ZXJzCisjCitDT05GSUdfSU5QVVRfS0VZQk9BUkQ9eQorIyBDT05GSUdfS0VZQk9BUkRfQVRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1VOS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX0xLS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX05FV1RPTiBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVE9XQVdBWSBpcyBub3Qgc2V0CitDT05GSUdfS0VZQk9BUkRfR1BJTz15CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCisjIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2hhcmFjdGVyIGRldmljZXMKKyMKK0NPTkZJR19WVD15CitDT05GSUdfVlRfQ09OU09MRT15CitDT05GSUdfSFdfQ09OU09MRT15CisjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfQVRNRUw9eQorQ09ORklHX1NFUklBTF9BVE1FTF9DT05TT0xFPXkKKyMgQ09ORklHX1NFUklBTF9BVE1FTF9UVFlBVCBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorQ09ORklHX1VOSVg5OF9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CitDT05GSUdfSFdfUkFORE9NPXkKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorCisjCisjIFNQSSBzdXBwb3J0CisjCitDT05GSUdfU1BJPXkKKyMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU1BJX01BU1RFUj15CisKKyMKKyMgU1BJIE1hc3RlciBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19TUElfQVRNRUw9eQorIyBDT05GSUdfU1BJX0JJVEJBTkcgaXMgbm90IHNldAorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKyMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19EQUIgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19EVU1NWV9DT05TT0xFPXkKKworIworIyBTb3VuZAorIworIyBDT05GSUdfU09VTkQgaXMgbm90IHNldAorQ09ORklHX0hJRF9TVVBQT1JUPXkKK0NPTkZJR19ISUQ9eQorIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRFJBVyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIElucHV0IERldmljZXMKKyMKKyMgQ09ORklHX1VTQl9ISUQgaXMgbm90IHNldAorCisjCisjIFVTQiBISUQgQm9vdCBQcm90b2NvbCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NT1VTRSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKKyMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKK0NPTkZJR19VU0I9eQorIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCitDT05GSUdfVVNCX0RFVklDRUZTPXkKK0NPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKKyMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEVSU0lTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfSENEPXkKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKworIworIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCisjCitDT05GSUdfVVNCX1NUT1JBR0U9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EUENNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAorQ09ORklHX1VTQl9NT049eQorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKKworIworIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0CisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorCisjCisjIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAorIworCisjCisjIFVTQiBHYWRnZXQgU3VwcG9ydAorIworQ09ORklHX1VTQl9HQURHRVQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUX1NFTEVDVEVEPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfQU1ENTUzNlVEQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0FUTUVMX1VTQkEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9GU0xfVVNCMiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX05FVDIyODAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9TM0MyNDEwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUX0FUOTE9eQorQ09ORklHX1VTQl9BVDkxPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfRFVNTVlfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfRFVBTFNQRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9aRVJPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRVRIPXkKK0NPTkZJR19VU0JfRVRIX1JORElTPXkKKyMgQ09ORklHX1VTQl9HQURHRVRGUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRklMRV9TVE9SQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HX1NFUklBTCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlESV9HQURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz15CisKKyMKKyMgTEVEIGRyaXZlcnMKKyMKK0NPTkZJR19MRURTX0dQSU89eQorCisjCisjIExFRCBUcmlnZ2VycworIworQ09ORklHX0xFRFNfVFJJR0dFUlM9eQorIyBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPXkKK0NPTkZJR19SVENfTElCPXkKKyMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCitDT05GSUdfRVhUMl9GUz15CisjIENPTkZJR19FWFQyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0ZTX1BPU0lYX0FDTD15CisjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSU5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19GVVNFX0ZTPW0KKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworQ09ORklHX0ZBVF9GUz15CisjIENPTkZJR19NU0RPU19GUyBpcyBub3Qgc2V0CitDT05GSUdfVkZBVF9GUz15CitDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKK0NPTkZJR19ORlNfVjNfQUNMPXkKK0NPTkZJR19ORlNfVjQ9eQorIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19BQ0xfU1VQUE9SVD15CitDT05GSUdfTkZTX0NPTU1PTj15CitDT05GSUdfU1VOUlBDPXkKK0NPTkZJR19TVU5SUENfR1NTPXkKKyMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAorQ09ORklHX1JQQ1NFQ19HU1NfS1JCNT15CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX1VURjggaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOU1RSVU1FTlRBVElPTiBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19LRVJORUw9eQorIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAorQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKK0NPTkZJR19TQ0hFRF9ERUJVRz15CisjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLX0FMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST1ZFX0xPQ0tJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTE9DS19TVEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKKyMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CitDT05GSUdfRk9SQ0VEX0lOTElOSU5HPXkKKyMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1VTRVI9eQorIyBDT05GSUdfREVCVUdfRVJST1JTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19MTD15CisjIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUTz15CitDT05GSUdfQ1JZUFRPX0FMR0FQST15CitDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15CitDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fSFcgaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3ZlcnNhdGlsZV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3ZlcnNhdGlsZV9kZWZjb25maWcKaW5kZXggNDhkY2E2OS4uODM1NWY4OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy92ZXJzYXRpbGVfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvdmVyc2F0aWxlX2RlZmNvbmZpZwpAQCAtMTUxLDcgKzE1MSw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3htX3gyNzBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy94bV94MjcwX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTQwZDkxCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy94bV94MjcwX2RlZmNvbmZpZwpAQCAtMCwwICsxLDE3NDEgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNQorIyBTdW4gTWF5IDExIDE1OjEyOjUyIDIwMDgKKyMKK0NPTkZJR19BUk09eQorQ09ORklHX1NZU19TVVBQT1JUU19BUE1fRU1VTEFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0dQSU89eQorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUPXkKK0NPTkZJR19aT05FX0RNQT15CitDT05GSUdfQVJDSF9NVERfWElQPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKK0NPTkZJR19TV0FQPXkKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CisjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJR19JS0NPTkZJR19QUk9DPXkKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CisjIENPTkZJR19SVF9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfVVNFUl9TQ0hFRD15CisjIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQorQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CisjIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TTFVCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMQUIgaXMgbm90IHNldAorQ09ORklHX1NMVUI9eQorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUiBpcyBub3Qgc2V0CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX0lPU0NIRURfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01YQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09SSU9ONVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1BYQT15CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKK0NPTkZJR19ETUFCT1VOQ0U9eQorCisjCisjIEludGVsIFBYQTJ4eC9QWEEzeHggSW1wbGVtZW50YXRpb25zCisjCisKKyMKKyMgU2VsZWN0IHRhcmdldCBib2FyZHMKKyMKKyMgQ09ORklHX0FSQ0hfR1VNU1RJWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xVQkJPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9MT0dJQ1BEX1BYQTI3MCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX01BSU5TVE9ORSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQV9JRFAgaXMgbm90IHNldAorIyBDT05GSUdfUFhBX1NIQVJQU0wgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEFfRVNFUklFUyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX1RSSVpFUFM0IGlzIG5vdCBzZXQKK0NPTkZJR19NQUNIX0VNX1gyNzA9eQorIyBDT05GSUdfTUFDSF9DT0xJQlJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfWllMT05JVEUgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9MSVRUTEVUT04gaXMgbm90IHNldAorQ09ORklHX01BQ0hfQVJNQ09SRT15CisjIENPTkZJR19NQUNIX01BR0lDSUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfUENNMDI3IGlzIG5vdCBzZXQKK0NPTkZJR19QWEEyN3g9eQorIyBDT05GSUdfUFhBX1BXTSBpcyBub3Qgc2V0CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfWFNDQUxFPXkKK0NPTkZJR19DUFVfMzJ2NT15CitDT05GSUdfQ1BVX0FCUlRfRVY1VD15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQorQ09ORklHX0NQVV9UTEJfVjRXQkk9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorQ09ORklHX0lXTU1YVD15CitDT05GSUdfWFNDQUxFX1BNVT15CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKK0NPTkZJR19QQ0k9eQorQ09ORklHX1BDSV9TWVNDQUxMPXkKK0NPTkZJR19QQ0lfSE9TVF9JVEU4MTUyPXkKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0lfTEVHQUNZPXkKKyMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUENDQVJEPW0KKyMgQ09ORklHX1BDTUNJQV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUENNQ0lBPW0KK0NPTkZJR19QQ01DSUFfTE9BRF9DSVM9eQorQ09ORklHX1BDTUNJQV9JT0NUTD15CitDT05GSUdfQ0FSREJVUz15CisKKyMKKyMgUEMtY2FyZCBicmlkZ2VzCisjCitDT05GSUdfWUVOVEE9bQorIyBDT05GSUdfWUVOVEFfTzIgaXMgbm90IHNldAorIyBDT05GSUdfWUVOVEFfUklDT0ggaXMgbm90IHNldAorQ09ORklHX1lFTlRBX1RJPXkKKyMgQ09ORklHX1lFTlRBX0VORV9UVU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX1lFTlRBX1RPU0hJQkEgaXMgbm90IHNldAorIyBDT05GSUdfUEQ2NzI5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0k4MjA5MiBpcyBub3Qgc2V0CitDT05GSUdfUENNQ0lBX1BYQTJYWD1tCitDT05GSUdfUENDQVJEX05PTlNUQVRJQz1tCisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CisjIENPTkZJR19ISUdIX1JFU19USU1FUlMgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQorIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorQ09ORklHX09BQklfQ09NUEFUPXkKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKK0NPTkZJR19aQk9PVF9ST01fQlNTPTB4MAorQ09ORklHX0NNRExJTkU9InJvb3Q9MWYwMyBtZW09MzJNIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nCisjCisjIENPTkZJR19DUFVfRlJFUSBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfRlBFX05XRlBFPXkKKyMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0CisjIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCitDT05GSUdfUE09eQorIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BNX1NMRUVQPXkKK0NPTkZJR19TVVNQRU5EPXkKK0NPTkZJR19TVVNQRU5EX0ZSRUVaRVI9eQorQ09ORklHX0FQTV9FTVVMQVRJT049bQorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKK0NPTkZJR19QQUNLRVRfTU1BUD15CitDT05GSUdfVU5JWD15CitDT05GSUdfWEZSTT15CisjIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfSU5FVD15CitDT05GSUdfSVBfTVVMVElDQVNUPXkKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CitDT05GSUdfSVBfUE5QX0RIQ1A9eQorQ09ORklHX0lQX1BOUF9CT09UUD15CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD15CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKKyMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorQ09ORklHX0JUPW0KK0NPTkZJR19CVF9MMkNBUD1tCitDT05GSUdfQlRfU0NPPW0KK0NPTkZJR19CVF9SRkNPTU09bQorIyBDT05GSUdfQlRfUkZDT01NX1RUWSBpcyBub3Qgc2V0CitDT05GSUdfQlRfQk5FUD1tCisjIENPTkZJR19CVF9CTkVQX01DX0ZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9CTkVQX1BST1RPX0ZJTFRFUiBpcyBub3Qgc2V0CitDT05GSUdfQlRfSElEUD1tCisKKyMKKyMgQmx1ZXRvb3RoIGRldmljZSBkcml2ZXJzCisjCitDT05GSUdfQlRfSENJVVNCPW0KK0NPTkZJR19CVF9IQ0lVU0JfU0NPPXkKKyMgQ09ORklHX0JUX0hDSUJUU0RJTyBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9IQ0lVQVJUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0hDSUJDTTIwM1ggaXMgbm90IHNldAorIyBDT05GSUdfQlRfSENJQlBBMTBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0hDSUJGVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0hDSURUTDEgaXMgbm90IHNldAorIyBDT05GSUdfQlRfSENJQlQzQyBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9IQ0lCTFVFQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9IQ0lCVFVBUlQgaXMgbm90IHNldAorIyBDT05GSUdfQlRfSENJVkhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19XSVJFTEVTU19FWFQ9eQorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKK0NPTkZJR19GV19MT0FERVI9bQorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworQ09ORklHX01URF9DRkk9eQorQ09ORklHX01URF9KRURFQ1BST0JFPXkKK0NPTkZJR19NVERfR0VOX1BST0JFPXkKK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NPTkZJR19NVERfQ0ZJX05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0dFT01FVFJZIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80PXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorQ09ORklHX01URF9DRklfSTI9eQorIyBDT05GSUdfTVREX0NGSV9JNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PVFAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSU5URUxFWFQ9eQorQ09ORklHX01URF9DRklfQU1EU1REPXkKK0NPTkZJR19NVERfQ0ZJX1NUQUE9eQorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfWElQIGlzIG5vdCBzZXQKKworIworIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCisjIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BIWVNNQVA9eQorQ09ORklHX01URF9QSFlTTUFQX1NUQVJUPTB4MAorQ09ORklHX01URF9QSFlTTUFQX0xFTj0weDQwMDAwMAorQ09ORklHX01URF9QSFlTTUFQX0JBTktXSURUSD0yCitDT05GSUdfTVREX1BYQTJYWD15CisjIENPTkZJR19NVERfQVJNX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0lNUEE3IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9TSEFSUF9TTCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSU5URUxfVlJfTk9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9QTUM1NTEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0gxOTAwIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9TSEFSUFNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0NBRkUgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0NNX1gyNzA9eQorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfUExBVEZPUk09eQorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0NQUV9EQSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfQ1BRX0NJU1NfREEgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9EQUM5NjAgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VTUVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9MT09QPXkKKyMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1NYOCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX1JBTT15CitDT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKK0NPTkZJR19CTEtfREVWX1JBTV9TSVpFPTQwOTYKKyMgQ09ORklHX0JMS19ERVZfWElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1IgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TRyBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCisjIENPTkZJR19TQ1NJX01VTFRJX0xVTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKKyMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWXzNXX1hYWFhfUkFJRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJXzNXXzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FBQ1JBSUQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM3WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDN1hYWF9PTEQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM3OVhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDOTRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RQVF9JMk8gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BRFZBTlNZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FSQ01TUiBpcyBub3Qgc2V0CisjIENPTkZJR19NRUdBUkFJRF9ORVdHRU4gaXMgbm90IHNldAorIyBDT05GSUdfTUVHQVJBSURfTEVHQUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FR0FSQUlEX1NBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0hQVElPUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RNWDMxOTFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRlVUVVJFX0RPTUFJTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lQUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lOSVRJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lOSUExMDAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9NVlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NURVggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TWU01M0M4WFhfMiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lQUiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMT0dJQ18xMjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfUUxBX0ZDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfUUxBX0lTQ1NJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTFBGQyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RDMzk1eCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RDMzkwVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05TUDMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT1dMRVZFTF9QQ01DSUEgaXMgbm90IHNldAorQ09ORklHX0FUQT1tCisjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9QTVAgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9BSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX05WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BEQ19BRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfUVNUT1IgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BVElJWFAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NDBfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ01ENjRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1lQUkVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0VGQVIgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX0dFTkVSSUMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzNjYgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzN1ggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDJOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUM1gzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSk1JQ1JPTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1RSSUZMRVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NQVJWRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTVBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PTERQSUlYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTkVUQ0VMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05JTkpBMzIgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxNSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PUFRJRE1BIGlzIG5vdCBzZXQKK0NPTkZJR19QQVRBX1BDTUNJQT1tCisjIENPTkZJR19QQVRBX1BEQ19PTEQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SQURJU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUloxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0MxMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0VSVkVSV09SS1MgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QREMyMDI3WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NJTDY4MCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAorCisjCisjIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKKyMKKyMgQ09ORklHX0ZJUkVXSVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUUxMzk0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyTyBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNORVQgaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBUFBZTUVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5HRU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0FTU0lOSSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfVkVORE9SXzNDT00gaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKK0NPTkZJR19ETTkwMDA9eQorQ09ORklHX0RNOTAwMF9ERUJVR0xFVkVMPTEKKyMgQ09ORklHX1NNQzkxMVggaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1RVTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1BDST15CisjIENPTkZJR19QQ05FVDMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNRDgxMTFfRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FEQVBURUNfU1RBUkZJUkUgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPUkNFREVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19FRVBSTzEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZFQUxOWCBpcyBub3Qgc2V0CisjIENPTkZJR19OQVRTRU1JIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FMktfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHXzgxMzlDUCBpcyBub3Qgc2V0CitDT05GSUdfODEzOVRPTz15CisjIENPTkZJR184MTM5VE9PX1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR184MTM5VE9PX1RVTkVfVFdJU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR184MTM5VE9PXzgxMjkgaXMgbm90IHNldAorIyBDT05GSUdfODEzOV9PTERfUlhfUkVTRVQgaXMgbm90IHNldAorIyBDT05GSUdfUjYwNDAgaXMgbm90IHNldAorIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VQSUMxMDAgaXMgbm90IHNldAorIyBDT05GSUdfU1VOREFOQ0UgaXMgbm90IHNldAorIyBDT05GSUdfVExBTiBpcyBub3Qgc2V0CisjIENPTkZJR19WSUFfUkhJTkUgaXMgbm90IHNldAorIyBDT05GSUdfU0M5MjAzMSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorIyBDT05GSUdfVFIgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CitDT05GSUdfV0xBTl84MDIxMT15CisjIENPTkZJR19QQ01DSUFfUkFZQ1MgaXMgbm90IHNldAorIyBDT05GSUdfSVBXMjEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JUFcyMjAwIGlzIG5vdCBzZXQKK0NPTkZJR19MSUJFUlRBUz1tCisjIENPTkZJR19MSUJFUlRBU19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfTElCRVJUQVNfQ1MgaXMgbm90IHNldAorQ09ORklHX0xJQkVSVEFTX1NESU89bQorIyBDT05GSUdfTElCRVJUQVNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSEVSTUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTUVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FJUk9fQ1MgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1dMMzUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19QUklTTTU0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9aRDEyMDEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX05FVF9STkRJU19XTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRkkgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPU1RBUCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUENNQ0lBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKK0NPTkZJR19QUFA9bQorQ09ORklHX1BQUF9NVUxUSUxJTks9eQorQ09ORklHX1BQUF9GSUxURVI9eQorQ09ORklHX1BQUF9BU1lOQz1tCisjIENPTkZJR19QUFBfU1lOQ19UVFkgaXMgbm90IHNldAorQ09ORklHX1BQUF9ERUZMQVRFPW0KK0NPTkZJR19QUFBfQlNEQ09NUD1tCisjIENPTkZJR19QUFBfTVBQRSBpcyBub3Qgc2V0CisjIENPTkZJR19QUFBPRSBpcyBub3Qgc2V0CisjIENPTkZJR19QUFBPTDJUUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKK0NPTkZJR19TTEhDPW0KKyMgQ09ORklHX05FVF9GQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworQ09ORklHX0lOUFVUX01PVVNFREVWPXkKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWD15CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9FVkRFVj15CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9BUE1QT1dFUiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19JTlBVVF9LRVlCT0FSRD15CitDT05GSUdfS0VZQk9BUkRfQVRLQkQ9eQorIyBDT05GSUdfS0VZQk9BUkRfU1VOS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX0xLS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX05FV1RPTiBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVE9XQVdBWSBpcyBub3Qgc2V0CitDT05GSUdfS0VZQk9BUkRfUFhBMjd4PW0KKyMgQ09ORklHX0tFWUJPQVJEX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9UT1VDSFNDUkVFTj15CisjIENPTkZJR19UT1VDSFNDUkVFTl9GVUpJVFNVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0dVTlpFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0VMTyBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NVE9VQ0ggaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTUs3MTIgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fUEVOTU9VTlQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hSSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFdJTiBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fV005N1hYPW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX1dNOTcwNSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fV005NzEyPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1dNOTcxMyBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9XTTk3WFhfTUFJTlNUT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9DT01QT1NJVEUgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgSGFyZHdhcmUgSS9PIHBvcnRzCisjCitDT05GSUdfU0VSSU89eQorIyBDT05GSUdfU0VSSU9fU0VSUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJT19QQ0lQUzIgaXMgbm90IHNldAorQ09ORklHX1NFUklPX0xJQlBTMj15CisjIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCitDT05GSUdfVlQ9eQorQ09ORklHX1ZUX0NPTlNPTEU9eQorQ09ORklHX0hXX0NPTlNPTEU9eQorIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9QWEE9eQorQ09ORklHX1NFUklBTF9QWEFfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMX0pTTSBpcyBub3Qgc2V0CitDT05GSUdfVU5JWDk4X1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTE2CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKKworIworIyBQQ01DSUEgY2hhcmFjdGVyIGRldmljZXMKKyMKKyMgQ09ORklHX1NZTkNMSU5LX0NTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBUkRNQU5fNDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19DQVJETUFOXzQwNDAgaXMgbm90IHNldAorIyBDT05GSUdfSVBXSVJFTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorQ09ORklHX0RFVlBPUlQ9eQorQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CitDT05GSUdfSTJDX0NIQVJERVY9bQorCisjCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1NjMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1WDMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDc1NiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1EODExMSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfSTgwMSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfSTgxMCBpcyBub3Qgc2V0CitDT05GSUdfSTJDX1BYQT15CisjIENPTkZJR19JMkNfUFhBX1NMQVZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QSUlYNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfTkZPUkNFMiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfT0NPUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QUk9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NBVkFHRTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTNTU5NSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTNjMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM5NlggaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEkgaXMgbm90IHNldAorQ09ORklHX0hBVkVfR1BJT19MSUI9eQorCisjCisjIEdQSU8gU3VwcG9ydAorIworIyBDT05GSUdfREVCVUdfR1BJTyBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIEdQSU8gZXhwYW5kZXJzOgorIworIyBDT05GSUdfR1BJT19QQ0E5NTNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dQSU9fUENGODU3WCBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIEdQSU8gZXhwYW5kZXJzOgorIworIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19FR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKK0NPTkZJR19GQj15CisjIENPTkZJR19GSVJNV0FSRV9FRElEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0REQyBpcyBub3Qgc2V0CitDT05GSUdfRkJfQ0ZCX0ZJTExSRUNUPXkKK0NPTkZJR19GQl9DRkJfQ09QWUFSRUE9eQorQ09ORklHX0ZCX0NGQl9JTUFHRUJMSVQ9eQorIyBDT05GSUdfRkJfQ0ZCX1JFVl9QSVhFTFNfSU5fQllURSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRklMTFJFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0NPUFlBUkVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRk9SRUlHTl9FTkRJQU4gaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNldAorQ09ORklHX0ZCX0RFRkVSUkVEX0lPPXkKKyMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01PREVfSEVMUEVSUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9USUxFQkxJVFRJTkcgaXMgbm90IHNldAorCisjCisjIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCisjCisjIENPTkZJR19GQl9DSVJSVVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0yIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NZQkVSMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BU0lMSUFOVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9JTVNUVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMUQxM1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9OVklESUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUklWQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NQVRST1ggaXMgbm90IHNldAorIyBDT05GSUdfRkJfUkFERU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWTEyOCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BVFkgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9ORU9NQUdJQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9LWVJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCXzNERlggaXMgbm90IHNldAorIyBDT05GSUdfRkJfVk9PRE9PMSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WVDg2MjMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVFJJREVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BUksgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0zIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9QWEE9eQorIyBDT05GSUdfRkJfUFhBX1NNQVJUUEFORUwgaXMgbm90IHNldAorQ09ORklHX0ZCX1BYQV9QQVJBTUVURVJTPXkKK0NPTkZJR19GQl9NQlg9bQorIyBDT05GSUdfRkJfQU0yMDBFUEQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CitDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfRk9OVFMgaXMgbm90IHNldAorQ09ORklHX0ZPTlRfOHg4PXkKK0NPTkZJR19GT05UXzh4MTY9eQorQ09ORklHX0xPR089eQorQ09ORklHX0xPR09fTElOVVhfTU9OTz15CitDT05GSUdfTE9HT19MSU5VWF9WR0ExNj15CitDT05GSUdfTE9HT19MSU5VWF9DTFVUMjI0PXkKKworIworIyBTb3VuZAorIworQ09ORklHX1NPVU5EPW0KKworIworIyBBZHZhbmNlZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUKKyMKK0NPTkZJR19TTkQ9bQorQ09ORklHX1NORF9USU1FUj1tCitDT05GSUdfU05EX1BDTT1tCisjIENPTkZJR19TTkRfU0VRVUVOQ0VSIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfT1NTRU1VTD15CitDT05GSUdfU05EX01JWEVSX09TUz1tCitDT05GSUdfU05EX1BDTV9PU1M9bQorQ09ORklHX1NORF9QQ01fT1NTX1BMVUdJTlM9eQorIyBDT05GSUdfU05EX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfU1VQUE9SVF9PTERfQVBJPXkKK0NPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlM9eQorIyBDT05GSUdfU05EX1ZFUkJPU0VfUFJJTlRLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgR2VuZXJpYyBkZXZpY2VzCisjCitDT05GSUdfU05EX0FDOTdfQ09ERUM9bQorIyBDT05GSUdfU05EX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NVFBBViBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU0VSSUFMX1UxNjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTVBVNDAxIGlzIG5vdCBzZXQKKworIworIyBQQ0kgZGV2aWNlcworIworIyBDT05GSUdfU05EX0FEMTg4OSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQUxTMzAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BTEk1NDUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVElJWFAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FUSUlYUF9NT0RFTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVU4ODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVTg4MjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FVODgzMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BWlQzMzI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9CVDg3WCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ0EwMTA2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DTUlQQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU05EX09YWUdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ1M0MjgxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzQ2WFggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RBUkxBMjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0dJTkEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTEFZTEEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREFSTEEyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfR0lOQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9MQVlMQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NT05BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NSUEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VDSE8zRyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5ESUdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR09JTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5ESUdPREogaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VNVTEwSzEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VNVTEwSzFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTlMxMzcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTlMxMzcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FUzE5MzggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VTMTk2OCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRk04MDEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0hEQV9JTlRFTCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSERTUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSERTUE0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0hJRklFUiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSUNFMTcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSUNFMTcyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5URUw4WDAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lOVEVMOFgwTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfS09SRzEyMTIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01BRVNUUk8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NSVhBUlQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX05NMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9QQ1hIUiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUklQVElERSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUk1FMzIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JNRTk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9STUU5NjUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT05JQ1ZJQkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9UUklERU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSUE4MlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSUE4MlhYX01PREVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSVJUVU9TTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVlgyMjIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1lNRlBDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQUM5N19QT1dFUl9TQVZFIGlzIG5vdCBzZXQKKworIworIyBBTFNBIEFSTSBkZXZpY2VzCisjCitDT05GSUdfU05EX1BYQTJYWF9QQ009bQorQ09ORklHX1NORF9QWEEyWFhfQUM5Nz1tCisKKyMKKyMgVVNCIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9VU0JfQVVESU8gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1VTQl9DQUlBUSBpcyBub3Qgc2V0CisKKyMKKyMgUENNQ0lBIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9WWFBPQ0tFVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUERBVURJT0NGIGlzIG5vdCBzZXQKKworIworIyBTeXN0ZW0gb24gQ2hpcCBhdWRpbyBzdXBwb3J0CisjCisjIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKKworIworIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKKyMKKworIworIyBTb0MgQXVkaW8gZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cyBPTUFQCisjCisKKyMKKyMgT3BlbiBTb3VuZCBTeXN0ZW0KKyMKKyMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKK0NPTkZJR19BQzk3X0JVUz1tCitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CitDT05GSUdfSElEX0RFQlVHPXkKKyMgQ09ORklHX0hJRFJBVyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIElucHV0IERldmljZXMKKyMKK0NPTkZJR19VU0JfSElEPXkKKyMgQ09ORklHX1VTQl9ISURJTlBVVF9QT1dFUkJPT0sgaXMgbm90IHNldAorIyBDT05GSUdfSElEX0ZGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9ISURERVYgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVVBQT1JUPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCitDT05GSUdfVVNCX0RFVklDRUZTPXkKKyMgQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FSENJX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0hDRD15CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKKyMgQ09ORklHX1VTQl9VSENJX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBJbWFnaW5nIGRldmljZXMKKyMKKyMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JQ1JPVEVLIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTU9OPXkKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CitDT05GSUdfTU1DPW0KKyMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NTUNfVU5TQUZFX1JFU1VNRSBpcyBub3Qgc2V0CisKKyMKKyMgTU1DL1NEIENhcmQgRHJpdmVycworIworQ09ORklHX01NQ19CTE9DSz1tCitDT05GSUdfTU1DX0JMT0NLX0JPVU5DRT15CisjIENPTkZJR19TRElPX1VBUlQgaXMgbm90IHNldAorCisjCisjIE1NQy9TRCBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX01NQ19QWEE9bQorIyBDT05GSUdfTU1DX1NESENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQ19USUZNX1NEIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz15CisKKyMKKyMgTEVEIGRyaXZlcnMKKyMKKyMgQ09ORklHX0xFRFNfR1BJTyBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19DTV9YMjcwPXkKKworIworIyBMRUQgVHJpZ2dlcnMKKyMKK0NPTkZJR19MRURTX1RSSUdHRVJTPXkKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUiBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD15CisjIENPTkZJR19MRURTX1RSSUdHRVJfREVGQVVMVF9PTiBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CitDT05GSUdfUlRDX0NMQVNTPXkKK0NPTkZJR19SVENfSENUT1NZUz15CitDT05GSUdfUlRDX0hDVE9TWVNfREVWSUNFPSJydGMwIgorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBSVEMgaW50ZXJmYWNlcworIworQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1gxMjA1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1ODMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDFUODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TMzUzOTBBIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfVjMwMjA9eQorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfU0ExMTAwPXkKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCitDT05GSUdfRVhUMl9GUz15CisjIENPTkZJR19FWFQyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKK0NPTkZJR19FWFQzX0ZTPXkKK0NPTkZJR19FWFQzX0ZTX1hBVFRSPXkKKyMgQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CitDT05GSUdfSkJEPXkKK0NPTkZJR19GU19NQkNBQ0hFPXkKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9bQorIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorQ09ORklHX1ZGQVRfRlM9bQorQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNworQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9TVU1NQVJZPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKK0NPTkZJR19ORlNfVjM9eQorIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19MT0NLRF9WND15CitDT05GSUdfTkZTX0NPTU1PTj15CitDT05GSUdfU1VOUlBDPXkKKyMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAorIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19DSUZTPW0KKyMgQ09ORklHX0NJRlNfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGU19XRUFLX1BXX0hBU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ0lGU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTX0RFQlVHMiBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTX0VYUEVSSU1FTlRBTCBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15CisjIENPTkZJR19BQ09STl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfT1NGX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BTUlHQV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfQVRBUklfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ19QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CisjIENPTkZJR19CU0RfRElTS0xBQkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX1NVQlBBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xETV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0dJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfS0FSTUFfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU1lTVjY4X1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTkxTPW0KK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9bQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT1tCisjIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX1VURjg9bQorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQorQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTAKKyMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0tFUk5FTD15CisjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERVRFQ1RfU09GVExPQ0tVUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ0hFRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLX0FMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST1ZFX0xPQ0tJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTE9DS19TVEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19VU0VSPXkKK0NPTkZJR19ERUJVR19FUlJPUlM9eQorIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0xMPXkKKyMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKKyMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fSFcgaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfQ0NJVFQ9bQorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL01ha2VmaWxlIGIvYXJjaC9hcm0va2VybmVsL01ha2VmaWxlCmluZGV4IGFkNDU1ZmYuLmViOTA5MmMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9rZXJuZWwvTWFrZWZpbGUKQEAgLTQsNiArNCwxMCBAQAogCiBBRkxBR1NfaGVhZC5vIDo9IC1EVEVYVF9PRkZTRVQ9JChURVhUX09GRlNFVCkKIAoraWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCitDRkxBR1NfUkVNT1ZFX2Z0cmFjZS5vID0gLXBnCitlbmRpZgorCiAjIE9iamVjdCBmaWxlIGxpc3RzLgogCiBvYmoteQkJOj0gY29tcGF0Lm8gZW50cnktYXJtdi5vIGVudHJ5LWNvbW1vbi5vIGlycS5vIFwKQEAgLTE4LDYgKzIyLDcgQEAKIG9iai0kKENPTkZJR19JU0FfRE1BKQkJKz0gZG1hLWlzYS5vCiBvYmotJChDT05GSUdfUENJKQkJKz0gYmlvczMyLm8gaXNhLm8KIG9iai0kKENPTkZJR19TTVApCQkrPSBzbXAubworb2JqLSQoQ09ORklHX0RZTkFNSUNfRlRSQUNFKQkrPSBmdHJhY2Uubwogb2JqLSQoQ09ORklHX0tFWEVDKQkJKz0gbWFjaGluZV9rZXhlYy5vIHJlbG9jYXRlX2tlcm5lbC5vCiBvYmotJChDT05GSUdfS1BST0JFUykJCSs9IGtwcm9iZXMubyBrcHJvYmVzLWRlY29kZS5vCiBvYmotJChDT05GSUdfQVRBR1NfUFJPQykJKz0gYXRhZ3MubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2FybWtzeW1zLmMgYi9hcmNoL2FybS9rZXJuZWwvYXJta3N5bXMuYwppbmRleCA2ODhiN2IxLi5jYzdiMjQ2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvYXJta3N5bXMuYworKysgYi9hcmNoL2FybS9rZXJuZWwvYXJta3N5bXMuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KIAogLyoKICAqIGxpYmdjYyBmdW5jdGlvbnMgLSBmdW5jdGlvbnMgdGhhdCBhcmUgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZQpAQCAtMTgxLDMgKzE4Miw3IEBACiAjZW5kaWYKIAogRVhQT1JUX1NZTUJPTChjb3B5X3BhZ2UpOworCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorRVhQT1JUX1NZTUJPTChtY291bnQpOworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvYXRhZ3MuYyBiL2FyY2gvYXJtL2tlcm5lbC9hdGFncy5jCmluZGV4IDY0YzQyMDguLjQyYTFhMTQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9hdGFncy5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9hdGFncy5jCkBAIC0xLDUgKzEsNCBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KQEAgLTcsOSArNiw4IEBACiAKIHN0cnVjdCBidWZmZXIgewogCXNpemVfdCBzaXplOwotCWNoYXIgKmRhdGE7CisJY2hhciBkYXRhW107CiB9Owotc3RhdGljIHN0cnVjdCBidWZmZXIgdGFnc19idWZmZXI7CiAKIHN0YXRpYyBpbnQKIHJlYWRfYnVmZmVyKGNoYXIqIHBhZ2UsIGNoYXIqKiBzdGFydCwgb2ZmX3Qgb2ZmLCBpbnQgY291bnQsCkBAIC0yOSw1OCArMjcsNTcgQEAKIAlyZXR1cm4gY291bnQ7CiB9CiAKLQotc3RhdGljIGludAotY3JlYXRlX3Byb2NfZW50cmllcyh2b2lkKQotewotCXN0cnVjdCBwcm9jX2Rpcl9lbnRyeSogdGFnc19lbnRyeTsKLQotCXRhZ3NfZW50cnkgPSBjcmVhdGVfcHJvY19yZWFkX2VudHJ5KCJhdGFncyIsIDA0MDAsIE5VTEwsIHJlYWRfYnVmZmVyLCAmdGFnc19idWZmZXIpOwotCWlmICghdGFnc19lbnRyeSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgY2hhciBfX2luaXRkYXRhIGF0YWdzX2NvcHlfYnVmW0tFWEVDX0JPT1RfUEFSQU1TX1NJWkVdOwotc3RhdGljIGNoYXIgX19pbml0ZGF0YSAqYXRhZ3NfY29weTsKKyNkZWZpbmUgQk9PVF9QQVJBTVNfU0laRSAxNTM2CitzdGF0aWMgY2hhciBfX2luaXRkYXRhIGF0YWdzX2NvcHlbQk9PVF9QQVJBTVNfU0laRV07CiAKIHZvaWQgX19pbml0IHNhdmVfYXRhZ3MoY29uc3Qgc3RydWN0IHRhZyAqdGFncykKIHsKLQlhdGFnc19jb3B5ID0gYXRhZ3NfY29weV9idWY7Ci0JbWVtY3B5KGF0YWdzX2NvcHksIHRhZ3MsIEtFWEVDX0JPT1RfUEFSQU1TX1NJWkUpOworCW1lbWNweShhdGFnc19jb3B5LCB0YWdzLCBzaXplb2YoYXRhZ3NfY29weSkpOwogfQogCi0KIHN0YXRpYyBpbnQgX19pbml0IGluaXRfYXRhZ3NfcHJvY2ZzKHZvaWQpCiB7Ci0Jc3RydWN0IHRhZyAqdGFnOwotCWludCBlcnJvcjsKKwkvKgorCSAqIFRoaXMgY2Fubm90IGdvIGludG8gc2F2ZV9hdGFncygpIGJlY2F1c2Uga21hbGxvYyBhbmQgcHJvYyBkb24ndCB3b3JrCisJICogeWV0IHdoZW4gaXQgaXMgY2FsbGVkLgorCSAqLworCXN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqdGFnc19lbnRyeTsKKwlzdHJ1Y3QgdGFnICp0YWcgPSAoc3RydWN0IHRhZyAqKWF0YWdzX2NvcHk7CisJc3RydWN0IGJ1ZmZlciAqYjsKKwlzaXplX3Qgc2l6ZTsKIAotCWlmICghYXRhZ3NfY29weSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJFeHBvcnRpbmcgQVRBR3M6IE5vIHNhdmVkIHRhZ3MgZm91bmRcbiIpOwotCQlyZXR1cm4gLUVJTzsKKwlpZiAodGFnLT5oZHIudGFnICE9IEFUQUdfQ09SRSkgeworCQlwcmludGsoS0VSTl9JTkZPICJObyBBVEFHcz8iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JZm9yICh0YWcgPSAoc3RydWN0IHRhZyAqKSBhdGFnc19jb3B5OyB0YWctPmhkci5zaXplOyB0YWcgPSB0YWdfbmV4dCh0YWcpKQorCWZvciAoOyB0YWctPmhkci5zaXplOyB0YWcgPSB0YWdfbmV4dCh0YWcpKQogCQk7CiAKLQl0YWdzX2J1ZmZlci5zaXplID0gKChjaGFyICopIHRhZyAtIGF0YWdzX2NvcHkpICsgc2l6ZW9mKHRhZy0+aGRyKTsKLQl0YWdzX2J1ZmZlci5kYXRhID0ga21hbGxvYyh0YWdzX2J1ZmZlci5zaXplLCBHRlBfS0VSTkVMKTsKLQlpZiAodGFnc19idWZmZXIuZGF0YSA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKLQltZW1jcHkodGFnc19idWZmZXIuZGF0YSwgYXRhZ3NfY29weSwgdGFnc19idWZmZXIuc2l6ZSk7CisJLyogaW5jbHVkZSB0aGUgdGVybWluYXRpbmcgQVRBR19OT05FICovCisJc2l6ZSA9IChjaGFyICopdGFnIC0gYXRhZ3NfY29weSArIHNpemVvZihzdHJ1Y3QgdGFnX2hlYWRlcik7CiAKLQllcnJvciA9IGNyZWF0ZV9wcm9jX2VudHJpZXMoKTsKLQlpZiAoZXJyb3IpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJFeHBvcnRpbmcgQVRBR3M6IG5vdCBlbm91Z2ggbWVtb3J5XG4iKTsKLQkJa2ZyZWUodGFnc19idWZmZXIuZGF0YSk7Ci0JCXRhZ3NfYnVmZmVyLnNpemUgPSAwOwotCQl0YWdzX2J1ZmZlci5kYXRhID0gTlVMTDsKLQl9CisJV0FSTl9PTih0YWctPmhkci50YWcgIT0gQVRBR19OT05FKTsKIAotCXJldHVybiBlcnJvcjsKKwliID0ga21hbGxvYyhzaXplb2YoKmIpICsgc2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFiKQorCQlnb3RvIG5vbWVtOworCisJYi0+c2l6ZSA9IHNpemU7CisJbWVtY3B5KGItPmRhdGEsIGF0YWdzX2NvcHksIHNpemUpOworCisJdGFnc19lbnRyeSA9IGNyZWF0ZV9wcm9jX3JlYWRfZW50cnkoImF0YWdzIiwgMDQwMCwKKwkJCU5VTEwsIHJlYWRfYnVmZmVyLCBiKTsKKworCWlmICghdGFnc19lbnRyeSkKKwkJZ290byBub21lbTsKKworCXJldHVybiAwOworCitub21lbToKKwlrZnJlZShiKTsKKwlwcmludGsoS0VSTl9FUlIgIkV4cG9ydGluZyBBVEFHczogbm90IGVub3VnaCBtZW1vcnlcbiIpOworCisJcmV0dXJuIC1FTk9NRU07CiB9Ci0KIGFyY2hfaW5pdGNhbGwoaW5pdF9hdGFnc19wcm9jZnMpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2VjYXJkLmMgYi9hcmNoL2FybS9rZXJuZWwvZWNhcmQuYwppbmRleCBhNTNjMGFiLi44YmZkMjk5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvZWNhcmQuYworKysgYi9hcmNoL2FybS9rZXJuZWwvZWNhcmQuYwpAQCAtNjgwLDcgKzY4MCw3IEBACiAjZGVmaW5lIElPX0VDX01FTUM4X0JBU0UgMAogI2VuZGlmCiAKLXVuc2lnbmVkIGludCBfX2VjYXJkX2FkZHJlc3MoZWNhcmRfdCAqZWMsIGNhcmRfdHlwZV90IHR5cGUsIGNhcmRfc3BlZWRfdCBzcGVlZCkKK3N0YXRpYyB1bnNpZ25lZCBpbnQgX19lY2FyZF9hZGRyZXNzKGVjYXJkX3QgKmVjLCBjYXJkX3R5cGVfdCB0eXBlLCBjYXJkX3NwZWVkX3Qgc3BlZWQpCiB7CiAJdW5zaWduZWQgbG9uZyBhZGRyZXNzID0gMDsKIAlpbnQgc2xvdCA9IGVjLT5zbG90X25vOwpAQCAtMTAwMiw3ICsxMDAyLDcgQEAKIAl9CiAKIAlyYyA9IC1FTk9ERVY7Ci0JaWYgKChlYy0+cG9kYWRkciA9IGVjYXJkX2FkZHJlc3MoZWMsIHR5cGUsIEVDQVJEX1NZTkMpKSA9PSAwKQorCWlmICgoZWMtPnBvZGFkZHIgPSBfX2VjYXJkX2FkZHJlc3MoZWMsIHR5cGUsIEVDQVJEX1NZTkMpKSA9PSAwKQogCQlnb3RvIG5vZGV2OwogCiAJY2lkLnJfemVybyA9IDE7CkBAIC0xMTQxLDEwICsxMTQxLDEwIEBACiAKIAlpZCA9IGVjYXJkX21hdGNoX2RldmljZShkcnYtPmlkX3RhYmxlLCBlYyk7CiAKLQllY2FyZF9jbGFpbShlYyk7CisJZWMtPmNsYWltZWQgPSAxOwogCXJldCA9IGRydi0+cHJvYmUoZWMsIGlkKTsKIAlpZiAocmV0KQotCQllY2FyZF9yZWxlYXNlKGVjKTsKKwkJZWMtPmNsYWltZWQgPSAwOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTExNTQsNyArMTE1NCw3IEBACiAJc3RydWN0IGVjYXJkX2RyaXZlciAqZHJ2ID0gRUNBUkRfRFJWKGRldi0+ZHJpdmVyKTsKIAogCWRydi0+cmVtb3ZlKGVjKTsKLQllY2FyZF9yZWxlYXNlKGVjKTsKKwllYy0+Y2xhaW1lZCA9IDA7CiAKIAkvKgogCSAqIFJlc3RvcmUgdGhlIGRlZmF1bHQgb3BlcmF0aW9ucy4gIFdlIGVuc3VyZSB0aGF0IHRoZQpAQCAtMTE4Miw3ICsxMTgyLDcgQEAKIAlpZiAoZGV2LT5kcml2ZXIpIHsKIAkJaWYgKGRydi0+c2h1dGRvd24pCiAJCQlkcnYtPnNodXRkb3duKGVjKTsKLQkJZWNhcmRfcmVsZWFzZShlYyk7CisJCWVjLT5jbGFpbWVkID0gMDsKIAl9CiAKIAkvKgpAQCAtMTIzOSw3ICsxMjM5LDYgQEAKIHBvc3Rjb3JlX2luaXRjYWxsKGVjYXJkX2J1c19pbml0KTsKIAogRVhQT1JUX1NZTUJPTChlY2FyZF9yZWFkY2h1bmspOwotRVhQT1JUX1NZTUJPTChfX2VjYXJkX2FkZHJlc3MpOwogRVhQT1JUX1NZTUJPTChlY2FyZF9yZWdpc3Rlcl9kcml2ZXIpOwogRVhQT1JUX1NZTUJPTChlY2FyZF9yZW1vdmVfZHJpdmVyKTsKIEVYUE9SVF9TWU1CT0woZWNhcmRfYnVzX3R5cGUpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2VjYXJkLmggYi9hcmNoL2FybS9rZXJuZWwvZWNhcmQuaAppbmRleCBkN2MyZGFjLi40NjQyZDQzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvZWNhcmQuaAorKysgYi9hcmNoL2FybS9rZXJuZWwvZWNhcmQuaApAQCAtNTQsMyArNTQsMTYgQEAKICNkZWZpbmUgY19sZW4oeCkJKCh4KS0+cl9sZW5bMF18KCh4KS0+cl9sZW5bMV08PDgpfCgoeCktPnJfbGVuWzJdPDwxNikpCiAjZGVmaW5lIGNfc3RhcnQoeCkJKCh4KS0+cl9zdGFydCkKIH07CisKK3R5cGVkZWYgZW51bSBlY2FyZF90eXBlIHsJCS8qIENhcmRzIGFkZHJlc3Mgc3BhY2UJCSovCisJRUNBUkRfSU9DLAorCUVDQVJEX01FTUMsCisJRUNBUkRfRUFTSQorfSBjYXJkX3R5cGVfdDsKKwordHlwZWRlZiBlbnVtIHsJCQkJLyogU3BlZWQgZm9yIEVDQVJEX0lPQyBzcGFjZQkqLworCUVDQVJEX1NMT1cJID0gMCwKKwlFQ0FSRF9NRURJVU0JID0gMSwKKwlFQ0FSRF9GQVNUCSA9IDIsCisJRUNBUkRfU1lOQwkgPSAzCit9IGNhcmRfc3BlZWRfdDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9lbnRyeS1jb21tb24uUyBiL2FyY2gvYXJtL2tlcm5lbC9lbnRyeS1jb21tb24uUwppbmRleCA1OTdlZDAwLi44NDY5NGU4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvZW50cnktY29tbW9uLlMKKysrIGIvYXJjaC9hcm0va2VybmVsL2VudHJ5LWNvbW1vbi5TCkBAIC05LDYgKzksNyBAQAogICovCiAKICNpbmNsdWRlIDxhc20vdW5pc3RkLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2VudHJ5LW1hY3JvLlM+CiAKICNpbmNsdWRlICJlbnRyeS1oZWFkZXIuUyIKQEAgLTk5LDYgKzEwMCw1NiBAQAogI3VuZGVmIENBTEwKICNkZWZpbmUgQ0FMTCh4KSAubG9uZyB4CiAKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCitFTlRSWShtY291bnQpCisJc3RtZGIgc3AhLCB7cjAtcjMsIGxyfQorCW1vdiByMCwgbHIKKwlzdWIgcjAsIHIwLCAjTUNPVU5UX0lOU05fU0laRQorCisJLmdsb2JsIG1jb3VudF9jYWxsCittY291bnRfY2FsbDoKKwlibCBmdHJhY2Vfc3R1YgorCWxkbWlhIHNwISwge3IwLXIzLCBwY30KKworRU5UUlkoZnRyYWNlX2NhbGxlcikKKwlzdG1kYiBzcCEsIHtyMC1yMywgbHJ9CisJbGRyIHIxLCBbZnAsICMtNF0KKwltb3YgcjAsIGxyCisJc3ViIHIwLCByMCwgI01DT1VOVF9JTlNOX1NJWkUKKworCS5nbG9ibCBmdHJhY2VfY2FsbAorZnRyYWNlX2NhbGw6CisJYmwgZnRyYWNlX3N0dWIKKwlsZG1pYSBzcCEsIHtyMC1yMywgcGN9CisKKyNlbHNlCisKK0VOVFJZKG1jb3VudCkKKwlzdG1kYiBzcCEsIHtyMC1yMywgbHJ9CisJbGRyIHIwLCA9ZnRyYWNlX3RyYWNlX2Z1bmN0aW9uCisJbGRyIHIyLCBbcjBdCisJYWRyIHIwLCBmdHJhY2Vfc3R1YgorCWNtcCByMCwgcjIKKwlibmUgdHJhY2UKKwlsZG1pYSBzcCEsIHtyMC1yMywgcGN9CisKK3RyYWNlOgorCWxkciByMSwgW2ZwLCAjLTRdCisJbW92IHIwLCBscgorCXN1YiByMCwgcjAsICNNQ09VTlRfSU5TTl9TSVpFCisJbW92IGxyLCBwYworCW1vdiBwYywgcjIKKwlsZG1pYSBzcCEsIHtyMC1yMywgcGN9CisKKyNlbmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KKworCS5nbG9ibCBmdHJhY2Vfc3R1YgorZnRyYWNlX3N0dWI6CisJbW92IHBjLCBscgorCisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgKiBTV0kgaGFuZGxlcgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2Z0cmFjZS5jIGIvYXJjaC9hcm0va2VybmVsL2Z0cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2ZDUwZTYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9rZXJuZWwvZnRyYWNlLmMKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBEeW5hbWljIGZ1bmN0aW9uIHRyYWNpbmcgc3VwcG9ydC4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWJoaXNoZWsgU2FnYXIgPHNhZ2FyLmFiaGlzaGVrQGdtYWlsLmNvbT4KKyAqCisgKiBGb3IgbGljZW5jaW5nIGRldGFpbHMsIHNlZSBDT1BZSU5HLgorICoKKyAqIERlZmluZXMgbG93LWxldmVsIGhhbmRsaW5nIG9mIG1jb3VudCBjYWxscyB3aGVuIHRoZSBrZXJuZWwKKyAqIGlzIGNvbXBpbGVkIHdpdGggdGhlIC1wZyBmbGFnLiBXaGVuIHVzaW5nIGR5bmFtaWMgZnRyYWNlLCB0aGUKKyAqIG1jb3VudCBjYWxsLXNpdGVzIGdldCBwYXRjaGVkIGxhemlseSB3aXRoIE5PUCB0aWxsIHRoZXkgYXJlCisgKiBlbmFibGVkLiBBbGwgY29kZSBtdXRhdGlvbiByb3V0aW5lcyBoZXJlIHRha2UgZWZmZWN0IGF0b21pY2FsbHkuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorCisjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisKKyNkZWZpbmUgUENfT0ZGU0VUICAgICAgOAorI2RlZmluZSBCTF9PUENPREUgICAgICAweGViMDAwMDAwCisjZGVmaW5lIEJMX09GRlNFVF9NQVNLIDB4MDBmZmZmZmYKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgYmxfaW5zbjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIE5PUCA9IDB4ZTFhMDAwMDA7IC8qIG1vdiByMCwgcjAgKi8KKwordW5zaWduZWQgY2hhciAqZnRyYWNlX25vcF9yZXBsYWNlKHZvaWQpCit7CisJcmV0dXJuIChjaGFyICopJk5PUDsKK30KKworLyogY29uc3RydWN0IGEgYnJhbmNoIChCTCkgaW5zdHJ1Y3Rpb24gdG8gYWRkciAqLwordW5zaWduZWQgY2hhciAqZnRyYWNlX2NhbGxfcmVwbGFjZSh1bnNpZ25lZCBsb25nIHBjLCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJbG9uZyBvZmZzZXQ7CisKKwlvZmZzZXQgPSAobG9uZylhZGRyIC0gKGxvbmcpKHBjICsgUENfT0ZGU0VUKTsKKwlpZiAodW5saWtlbHkob2Zmc2V0IDwgLTMzNTU0NDMyIHx8IG9mZnNldCA+IDMzNTU0NDI4KSkgeworCQkvKiBDYW4ndCBnZW5lcmF0ZSBicmFuY2hlcyB0aGF0IGZhciAoZnJvbSBBUk0gQVJNKS4gRnRyYWNlCisJCSAqIGRvZXNuJ3QgZ2VuZXJhdGUgYnJhbmNoZXMgb3V0c2lkZSBvZiBrZXJuZWwgdGV4dC4KKwkJICovCisJCVdBUk5fT05fT05DRSgxKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCW9mZnNldCA9IChvZmZzZXQgPj4gMikgJiBCTF9PRkZTRVRfTUFTSzsKKwlibF9pbnNuID0gQkxfT1BDT0RFIHwgb2Zmc2V0OworCXJldHVybiAodW5zaWduZWQgY2hhciAqKSZibF9pbnNuOworfQorCitpbnQgZnRyYWNlX21vZGlmeV9jb2RlKHVuc2lnbmVkIGxvbmcgcGMsIHVuc2lnbmVkIGNoYXIgKm9sZF9jb2RlLAorCQkgICAgICAgdW5zaWduZWQgY2hhciAqbmV3X2NvZGUpCit7CisJdW5zaWduZWQgbG9uZyBlcnIgPSAwLCByZXBsYWNlZCA9IDAsIG9sZCwgbmV3OworCisJb2xkID0gKih1bnNpZ25lZCBsb25nICopb2xkX2NvZGU7CisJbmV3ID0gKih1bnNpZ25lZCBsb25nICopbmV3X2NvZGU7CisKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisJCSIxOiAgbGRyICAgICUxLCBbJTJdICBcbiIKKwkJIiAgICBjbXAgICAgJTEsICU0ICAgIFxuIgorCQkiMjogIHN0cmVxICAlMywgWyUyXSAgXG4iCisJCSIgICAgY21wbmUgICUxLCAlMyAgICBcbiIKKwkJIiAgICBtb3ZuZSAgJTAsICMyICAgIFxuIgorCQkiMzpcbiIKKworCQkiLnNlY3Rpb24gLmZpeHVwLCBcImF4XCJcbiIKKwkJIjQ6ICBtb3YgICUwLCAjMSAgXG4iCisJCSIgICAgYiAgICAzYiAgICAgIFxuIgorCQkiLnByZXZpb3VzXG4iCisKKwkJIi5zZWN0aW9uIF9fZXhfdGFibGUsIFwiYVwiXG4iCisJCSIgICAgLmxvbmcgMWIsIDRiIFxuIgorCQkiICAgIC5sb25nIDJiLCA0YiBcbiIKKwkJIi5wcmV2aW91c1xuIgorCisJCTogIj1yIihlcnIpLCAiPXIiKHJlcGxhY2VkKQorCQk6ICJyIihwYyksICJyIihuZXcpLCAiciIob2xkKSwgIjAiKGVyciksICIxIihyZXBsYWNlZCkKKwkJOiAibWVtb3J5Iik7CisKKwlpZiAoIWVyciAmJiAocmVwbGFjZWQgPT0gb2xkKSkKKwkJZmx1c2hfaWNhY2hlX3JhbmdlKHBjLCBwYyArIE1DT1VOVF9JTlNOX1NJWkUpOworCisJcmV0dXJuIGVycjsKK30KKworaW50IGZ0cmFjZV91cGRhdGVfZnRyYWNlX2Z1bmMoZnRyYWNlX2Z1bmNfdCBmdW5jKQoreworCWludCByZXQ7CisJdW5zaWduZWQgbG9uZyBwYywgb2xkOworCXVuc2lnbmVkIGNoYXIgKm5ldzsKKworCXBjID0gKHVuc2lnbmVkIGxvbmcpJmZ0cmFjZV9jYWxsOworCW1lbWNweSgmb2xkLCAmZnRyYWNlX2NhbGwsIE1DT1VOVF9JTlNOX1NJWkUpOworCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UocGMsICh1bnNpZ25lZCBsb25nKWZ1bmMpOworCXJldCA9IGZ0cmFjZV9tb2RpZnlfY29kZShwYywgKHVuc2lnbmVkIGNoYXIgKikmb2xkLCBuZXcpOworCXJldHVybiByZXQ7Cit9CisKK2ludCBmdHJhY2VfbWNvdW50X3NldCh1bnNpZ25lZCBsb25nICpkYXRhKQoreworCXVuc2lnbmVkIGxvbmcgcGMsIG9sZDsKKwl1bnNpZ25lZCBsb25nICphZGRyID0gZGF0YTsKKwl1bnNpZ25lZCBjaGFyICpuZXc7CisKKwlwYyA9ICh1bnNpZ25lZCBsb25nKSZtY291bnRfY2FsbDsKKwltZW1jcHkoJm9sZCwgJm1jb3VudF9jYWxsLCBNQ09VTlRfSU5TTl9TSVpFKTsKKwluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKHBjLCAqYWRkcik7CisJKmFkZHIgPSBmdHJhY2VfbW9kaWZ5X2NvZGUocGMsICh1bnNpZ25lZCBjaGFyICopJm9sZCwgbmV3KTsKKwlyZXR1cm4gMDsKK30KKworLyogcnVuIGZyb20ga3N0b3BfbWFjaGluZSAqLworaW50IF9faW5pdCBmdHJhY2VfZHluX2FyY2hfaW5pdCh2b2lkICpkYXRhKQoreworCWZ0cmFjZV9tY291bnRfc2V0KGRhdGEpOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2twcm9iZXMuYyBiL2FyY2gvYXJtL2tlcm5lbC9rcHJvYmVzLmMKaW5kZXggNTU5M2RkMi4uNWVlMzllMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL2twcm9iZXMuYworKysgYi9hcmNoL2FybS9rZXJuZWwva3Byb2Jlcy5jCkBAIC0yNzQsNyArMjc0LDcgQEAKICAqIGZvciBrcmV0cHJvYmUgaGFuZGxlcnMgd2hpY2ggc2hvdWxkIG5vcm1hbGx5IGJlIGludGVyZXN0ZWQgaW4gcjAgb25seQogICogYW55d2F5LgogICovCi1zdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChuYWtlZCkpIF9fa3Byb2JlcyBrcmV0cHJvYmVfdHJhbXBvbGluZSh2b2lkKQordm9pZCBfX25ha2VkIF9fa3Byb2JlcyBrcmV0cHJvYmVfdHJhbXBvbGluZSh2b2lkKQogewogCV9fYXNtX18gX192b2xhdGlsZV9fICgKIAkJInN0bWRiCXNwISwge3IwIC0gcjExfQkJXG5cdCIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL2FybS9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4IDQ2YmYyZWRlLi4xOTliMzY4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9wcm9jZXNzLmMKQEAgLTEzMywxMCArMTMzLDggQEAKIAkJY3B1X3JlbGF4KCk7CiAJZWxzZSB7CiAJCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0JCWlmICghbmVlZF9yZXNjaGVkKCkpIHsKLQkJCXRpbWVyX2R5bl9yZXByb2dyYW0oKTsKKwkJaWYgKCFuZWVkX3Jlc2NoZWQoKSkKIAkJCWFyY2hfaWRsZSgpOwotCQl9CiAJCWxvY2FsX2lycV9lbmFibGUoKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvc3RhY2t0cmFjZS5jIGIvYXJjaC9hcm0va2VybmVsL3N0YWNrdHJhY2UuYwppbmRleCBhZTMxZGViLi5mYzY1MGY2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvc3RhY2t0cmFjZS5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9zdGFja3RyYWNlLmMKQEAgLTM2LDYgKzM2LDcgQEAKICNpZmRlZiBDT05GSUdfU1RBQ0tUUkFDRQogc3RydWN0IHN0YWNrX3RyYWNlX2RhdGEgewogCXN0cnVjdCBzdGFja190cmFjZSAqdHJhY2U7CisJdW5zaWduZWQgaW50IG5vX3NjaGVkX2Z1bmN0aW9uczsKIAl1bnNpZ25lZCBpbnQgc2tpcDsKIH07CiAKQEAgLTQzLDI3ICs0NCw1MyBAQAogewogCXN0cnVjdCBzdGFja190cmFjZV9kYXRhICpkYXRhID0gZDsKIAlzdHJ1Y3Qgc3RhY2tfdHJhY2UgKnRyYWNlID0gZGF0YS0+dHJhY2U7CisJdW5zaWduZWQgbG9uZyBhZGRyID0gZnJhbWUtPmxyOwogCisJaWYgKGRhdGEtPm5vX3NjaGVkX2Z1bmN0aW9ucyAmJiBpbl9zY2hlZF9mdW5jdGlvbnMoYWRkcikpCisJCXJldHVybiAwOwogCWlmIChkYXRhLT5za2lwKSB7CiAJCWRhdGEtPnNraXAtLTsKIAkJcmV0dXJuIDA7CiAJfQogCi0JdHJhY2UtPmVudHJpZXNbdHJhY2UtPm5yX2VudHJpZXMrK10gPSBmcmFtZS0+bHI7CisJdHJhY2UtPmVudHJpZXNbdHJhY2UtPm5yX2VudHJpZXMrK10gPSBhZGRyOwogCiAJcmV0dXJuIHRyYWNlLT5ucl9lbnRyaWVzID49IHRyYWNlLT5tYXhfZW50cmllczsKIH0KIAotdm9pZCBzYXZlX3N0YWNrX3RyYWNlKHN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UpCit2b2lkIHNhdmVfc3RhY2tfdHJhY2VfdHNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3Qgc3RhY2tfdHJhY2UgKnRyYWNlKQogewogCXN0cnVjdCBzdGFja190cmFjZV9kYXRhIGRhdGE7CiAJdW5zaWduZWQgbG9uZyBmcCwgYmFzZTsKIAogCWRhdGEudHJhY2UgPSB0cmFjZTsKIAlkYXRhLnNraXAgPSB0cmFjZS0+c2tpcDsKLQliYXNlID0gKHVuc2lnbmVkIGxvbmcpdGFza19zdGFja19wYWdlKGN1cnJlbnQpOwotCWFzbSgibW92ICUwLCBmcCIgOiAiPXIiIChmcCkpOworCWJhc2UgPSAodW5zaWduZWQgbG9uZyl0YXNrX3N0YWNrX3BhZ2UodHNrKTsKKworCWlmICh0c2sgIT0gY3VycmVudCkgeworI2lmZGVmIENPTkZJR19TTVAKKwkJLyoKKwkJICogV2hhdCBndWFyYW50ZWVzIGRvIHdlIGhhdmUgaGVyZSB0aGF0ICd0c2snCisJCSAqIGlzIG5vdCBydW5uaW5nIG9uIGFub3RoZXIgQ1BVPworCQkgKi8KKwkJQlVHKCk7CisjZWxzZQorCQlkYXRhLm5vX3NjaGVkX2Z1bmN0aW9ucyA9IDE7CisJCWZwID0gdGhyZWFkX3NhdmVkX2ZwKHRzayk7CisjZW5kaWYKKwl9IGVsc2UgeworCQlkYXRhLm5vX3NjaGVkX2Z1bmN0aW9ucyA9IDA7CisJCWFzbSgibW92ICUwLCBmcCIgOiAiPXIiIChmcCkpOworCX0KIAogCXdhbGtfc3RhY2tmcmFtZShmcCwgYmFzZSwgYmFzZSArIFRIUkVBRF9TSVpFLCBzYXZlX3RyYWNlLCAmZGF0YSk7CisJaWYgKHRyYWNlLT5ucl9lbnRyaWVzIDwgdHJhY2UtPm1heF9lbnRyaWVzKQorCQl0cmFjZS0+ZW50cmllc1t0cmFjZS0+bnJfZW50cmllcysrXSA9IFVMT05HX01BWDsKIH0KKwordm9pZCBzYXZlX3N0YWNrX3RyYWNlKHN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UpCit7CisJc2F2ZV9zdGFja190cmFjZV90c2soY3VycmVudCwgdHJhY2UpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc2F2ZV9zdGFja190cmFjZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC90aW1lLmMgYi9hcmNoL2FybS9rZXJuZWwvdGltZS5jCmluZGV4IGI1ODY3ZWMuLmNjNTE0NWIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC90aW1lLmMKKysrIGIvYXJjaC9hcm0va2VybmVsL3RpbWUuYwpAQCAtMzY1LDEwOCArMzY1LDYgQEAKIAkucmVzdW1lCQk9IHRpbWVyX3Jlc3VtZSwKIH07CiAKLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotc3RhdGljIGludCB0aW1lcl9keW5fdGlja19lbmFibGUodm9pZCkKLXsKLQlzdHJ1Y3QgZHluX3RpY2tfdGltZXIgKmR5bl90aWNrID0gc3lzdGVtX3RpbWVyLT5keW5fdGljazsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXQgPSAtRU5PREVWOwotCi0JaWYgKGR5bl90aWNrKSB7Ci0JCXNwaW5fbG9ja19pcnFzYXZlKCZkeW5fdGljay0+bG9jaywgZmxhZ3MpOwotCQlyZXQgPSAwOwotCQlpZiAoIShkeW5fdGljay0+c3RhdGUgJiBEWU5fVElDS19FTkFCTEVEKSkgewotCQkJcmV0ID0gZHluX3RpY2stPmVuYWJsZSgpOwotCi0JCQlpZiAocmV0ID09IDApCi0JCQkJZHluX3RpY2stPnN0YXRlIHw9IERZTl9USUNLX0VOQUJMRUQ7Ci0JCX0KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHluX3RpY2stPmxvY2ssIGZsYWdzKTsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IHRpbWVyX2R5bl90aWNrX2Rpc2FibGUodm9pZCkKLXsKLQlzdHJ1Y3QgZHluX3RpY2tfdGltZXIgKmR5bl90aWNrID0gc3lzdGVtX3RpbWVyLT5keW5fdGljazsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXQgPSAtRU5PREVWOwotCi0JaWYgKGR5bl90aWNrKSB7Ci0JCXNwaW5fbG9ja19pcnFzYXZlKCZkeW5fdGljay0+bG9jaywgZmxhZ3MpOwotCQlyZXQgPSAwOwotCQlpZiAoZHluX3RpY2stPnN0YXRlICYgRFlOX1RJQ0tfRU5BQkxFRCkgewotCQkJcmV0ID0gZHluX3RpY2stPmRpc2FibGUoKTsKLQotCQkJaWYgKHJldCA9PSAwKQotCQkJCWR5bl90aWNrLT5zdGF0ZSAmPSB+RFlOX1RJQ0tfRU5BQkxFRDsKLQkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkeW5fdGljay0+bG9jaywgZmxhZ3MpOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBSZXByb2dyYW0gdGhlIHN5c3RlbSB0aW1lciBmb3IgYXQgbGVhc3QgdGhlIGNhbGN1bGF0ZWQgdGltZSBpbnRlcnZhbC4KLSAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBmcm9tIHRoZSBpZGxlIHRocmVhZCB3aXRoIElSUXMgZGlzYWJsZWQsCi0gKiBpbW1lZGlhdGVseSBiZWZvcmUgc2xlZXBpbmcuCi0gKi8KLXZvaWQgdGltZXJfZHluX3JlcHJvZ3JhbSh2b2lkKQotewotCXN0cnVjdCBkeW5fdGlja190aW1lciAqZHluX3RpY2sgPSBzeXN0ZW1fdGltZXItPmR5bl90aWNrOwotCXVuc2lnbmVkIGxvbmcgbmV4dCwgc2VxLCBmbGFnczsKLQotCWlmICghZHluX3RpY2spCi0JCXJldHVybjsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZkeW5fdGljay0+bG9jaywgZmxhZ3MpOwotCWlmIChkeW5fdGljay0+c3RhdGUgJiBEWU5fVElDS19FTkFCTEVEKSB7Ci0JCW5leHQgPSBuZXh0X3RpbWVyX2ludGVycnVwdCgpOwotCQlkbyB7Ci0JCQlzZXEgPSByZWFkX3NlcWJlZ2luKCZ4dGltZV9sb2NrKTsKLQkJCWR5bl90aWNrLT5yZXByb2dyYW0obmV4dCAtIGppZmZpZXMpOwotCQl9IHdoaWxlIChyZWFkX3NlcXJldHJ5KCZ4dGltZV9sb2NrLCBzZXEpKTsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHluX3RpY2stPmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHNzaXplX3QgdGltZXJfc2hvd19keW5fdGljayhzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBjaGFyICpidWYpCi17Ci0JcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsCi0JCSAgICAgICAoc3lzdGVtX3RpbWVyLT5keW5fdGljay0+c3RhdGUgJiBEWU5fVElDS19FTkFCTEVEKSA+PiAxKTsKLX0KLQotc3RhdGljIHNzaXplX3QgdGltZXJfc2V0X2R5bl90aWNrKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmJ1ZiwKLQkJCQkgIHNpemVfdCBjb3VudCkKLXsKLQl1bnNpZ25lZCBpbnQgZW5hYmxlID0gc2ltcGxlX3N0cnRvdWwoYnVmLCBOVUxMLCAyKTsKLQotCWlmIChlbmFibGUpCi0JCXRpbWVyX2R5bl90aWNrX2VuYWJsZSgpOwotCWVsc2UKLQkJdGltZXJfZHluX3RpY2tfZGlzYWJsZSgpOwotCi0JcmV0dXJuIGNvdW50OwotfQotc3RhdGljIFNZU0RFVl9BVFRSKGR5bl90aWNrLCAwNjQ0LCB0aW1lcl9zaG93X2R5bl90aWNrLCB0aW1lcl9zZXRfZHluX3RpY2spOwotCi0vKgotICogZHludGljaz1lbmFibGV8ZGlzYWJsZQotICovCi1zdGF0aWMgY2hhciBkeW50aWNrX3N0cls0XSBfX2luaXRkYXRhID0gIiI7Ci0KLXN0YXRpYyBpbnQgX19pbml0IGR5bnRpY2tfc2V0dXAoY2hhciAqc3RyKQotewotCWlmIChzdHIpCi0JCXN0cmxjcHkoZHludGlja19zdHIsIHN0ciwgc2l6ZW9mKGR5bnRpY2tfc3RyKSk7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9fc2V0dXAoImR5bnRpY2s9IiwgZHludGlja19zZXR1cCk7Ci0jZW5kaWYKLQogc3RhdGljIGludCBfX2luaXQgdGltZXJfaW5pdF9zeXNmcyh2b2lkKQogewogCWludCByZXQgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJnRpbWVyX3N5c2NsYXNzKTsKQEAgLTQ3NSwxOSArMzczLDYgQEAKIAkJcmV0ID0gc3lzZGV2X3JlZ2lzdGVyKCZzeXN0ZW1fdGltZXItPmRldik7CiAJfQogCi0jaWZkZWYgQ09ORklHX05PX0lETEVfSFoKLQlpZiAocmV0ID09IDAgJiYgc3lzdGVtX3RpbWVyLT5keW5fdGljaykgewotCQlyZXQgPSBzeXNkZXZfY3JlYXRlX2ZpbGUoJnN5c3RlbV90aW1lci0+ZGV2LCAmYXR0cl9keW5fdGljayk7Ci0KLQkJLyoKLQkJICogVHVybiBvbiBkeW5hbWljIHRpY2sgYWZ0ZXIgY2FsaWJyYXRlIGRlbGF5Ci0JCSAqIGZvciBjb3JyZWN0IGJvZ29taXBzCi0JCSAqLwotCQlpZiAocmV0ID09IDAgJiYgZHludGlja19zdHJbMF0gPT0gJ2UnKQotCQkJcmV0ID0gdGltZXJfZHluX3RpY2tfZW5hYmxlKCk7Ci0JfQotI2VuZGlmCi0KIAlyZXR1cm4gcmV0OwogfQogCkBAIC01MDAsMTAgKzM4NSw1IEBACiAJCXN5c3RlbV90aW1lci0+b2Zmc2V0ID0gZHVtbXlfZ2V0dGltZW9mZnNldDsKICNlbmRpZgogCXN5c3RlbV90aW1lci0+aW5pdCgpOwotCi0jaWZkZWYgQ09ORklHX05PX0lETEVfSFoKLQlpZiAoc3lzdGVtX3RpbWVyLT5keW5fdGljaykKLQkJc3Bpbl9sb2NrX2luaXQoJnN5c3RlbV90aW1lci0+ZHluX3RpY2stPmxvY2spOwotI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9jb3B5X3RlbXBsYXRlLlMgYi9hcmNoL2FybS9saWIvY29weV90ZW1wbGF0ZS5TCmluZGV4IGNhYjM1NWMuLjEzOWNjZTYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2xpYi9jb3B5X3RlbXBsYXRlLlMKKysrIGIvYXJjaC9hcm0vbGliL2NvcHlfdGVtcGxhdGUuUwpAQCAtMTMsMTQgKzEzLDYgQEAKICAqLwogCiAvKgotICogVGhpcyBjYW4gYmUgdXNlZCB0byBlbmFibGUgY29kZSB0byBjYWNoZWxpbmUgYWxpZ24gdGhlIHNvdXJjZSBwb2ludGVyLgotICogRXhwZXJpbWVudHMgb24gdGVzdGVkIGFyY2hpdGVjdHVyZXMgKFN0cm9uZ0FSTSBhbmQgWFNjYWxlKSBkaWRuJ3Qgc2hvdwotICogdGhpcyBhIHdvcnRod2hpbGUgdGhpbmcgdG8gZG8uICBUaGF0IG1pZ2h0IGJlIGRpZmZlcmVudCBpbiB0aGUgZnV0dXJlLgotICovCi0vLyNkZWZpbmUgQ0FMR04oY29kZS4uLikJY29kZQotI2RlZmluZSBDQUxHTihjb2RlLi4uKQotCi0vKgogICogVGhlb3J5IG9mIG9wZXJhdGlvbgogICogLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKQEAgLTgyLDcgKzc0LDcgQEAKIAkJc3RtZmQJc3AhLCB7cjUgLSByOH0KIAkJYmx0CTVmCiAKLQlDQUxHTigJYW5kcwlpcCwgcjEsICMzMQkJKQorCUNBTEdOKAlhbmRzCWlwLCByMCwgIzMxCQkpCiAJQ0FMR04oCXJzYglyMywgaXAsICMzMgkJKQogCUNBTEdOKAlzYmNuZXMJcjQsIHIzLCByMgkJKSAgQCBDIGlzIGFsd2F5cyBzZXQgaGVyZQogCUNBTEdOKAliY3MJMmYJCQkpCkBAIC0xNjgsNyArMTYwLDcgQEAKIAkJc3VicwlyMiwgcjIsICMyOAogCQlibHQJMTRmCiAKLQlDQUxHTigJYW5kcwlpcCwgcjEsICMzMQkJKQorCUNBTEdOKAlhbmRzCWlwLCByMCwgIzMxCQkpCiAJQ0FMR04oCXJzYglpcCwgaXAsICMzMgkJKQogCUNBTEdOKAlzYmNuZXMJcjQsIGlwLCByMgkJKSAgQCBDIGlzIGFsd2F5cyBzZXQgaGVyZQogCUNBTEdOKAlzdWJjYwlyMiwgcjIsIGlwCQkpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9saWIvbWVtbW92ZS5TIGIvYXJjaC9hcm0vbGliL21lbW1vdmUuUwppbmRleCBlZjdmZGRjLi4yZTMwMWI3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9saWIvbWVtbW92ZS5TCisrKyBiL2FyY2gvYXJtL2xpYi9tZW1tb3ZlLlMKQEAgLTEzLDE0ICsxMyw2IEBACiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgogI2luY2x1ZGUgPGFzbS9hc3NlbWJsZXIuaD4KIAotLyoKLSAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIGNvZGUgdG8gY2FjaGVsaW5lIGFsaWduIHRoZSBzb3VyY2UgcG9pbnRlci4KLSAqIEV4cGVyaW1lbnRzIG9uIHRlc3RlZCBhcmNoaXRlY3R1cmVzIChTdHJvbmdBUk0gYW5kIFhTY2FsZSkgZGlkbid0IHNob3cKLSAqIHRoaXMgYSB3b3J0aHdoaWxlIHRoaW5nIHRvIGRvLiAgVGhhdCBtaWdodCBiZSBkaWZmZXJlbnQgaW4gdGhlIGZ1dHVyZS4KLSAqLwotLy8jZGVmaW5lIENBTEdOKGNvZGUuLi4pICAgICAgICBjb2RlCi0jZGVmaW5lIENBTEdOKGNvZGUuLi4pCi0KIAkJLnRleHQKIAogLyoKQEAgLTU1LDExICs0NywxMiBAQAogCQlzdG1mZAlzcCEsIHtyNSAtIHI4fQogCQlibHQJNWYKIAotCUNBTEdOKAlhbmRzCWlwLCByMSwgIzMxCQkpCisJQ0FMR04oCWFuZHMJaXAsIHIwLCAjMzEJCSkKIAlDQUxHTigJc2JjbmVzCXI0LCBpcCwgcjIJCSkgIEAgQyBpcyBhbHdheXMgc2V0IGhlcmUKIAlDQUxHTigJYmNzCTJmCQkJKQogCUNBTEdOKAlhZHIJcjQsIDZmCQkJKQogCUNBTEdOKAlzdWJzCXIyLCByMiwgaXAJCSkgIEAgQyBpcyBzZXQgaGVyZQorCUNBTEdOKAlyc2IJaXAsIGlwLCAjMzIJCSkKIAlDQUxHTigJYWRkCXBjLCByNCwgaXAJCSkKIAogCVBMRCgJcGxkCVtyMSwgIy00XQkJKQpAQCAtMTM4LDggKzEzMSw3IEBACiAJCXN1YnMJcjIsIHIyLCAjMjgKIAkJYmx0CTE0ZgogCi0JQ0FMR04oCWFuZHMJaXAsIHIxLCAjMzEJCSkKLQlDQUxHTigJcnNiCWlwLCBpcCwgIzMyCQkpCisJQ0FMR04oCWFuZHMJaXAsIHIwLCAjMzEJCSkKIAlDQUxHTigJc2JjbmVzCXI0LCBpcCwgcjIJCSkgIEAgQyBpcyBhbHdheXMgc2V0IGhlcmUKIAlDQUxHTigJc3ViY2MJcjIsIHIyLCBpcAkJKQogCUNBTEdOKAliY2MJMTVmCQkJKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbGliL21lbXNldC5TIGIvYXJjaC9hcm0vbGliL21lbXNldC5TCmluZGV4IDk1YjExMGIuLmI0NzdkNGEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2xpYi9tZW1zZXQuUworKysgYi9hcmNoL2FybS9saWIvbWVtc2V0LlMKQEAgLTM5LDYgKzM5LDkgQEAKIAltb3YJcjMsIHIxCiAJY21wCXIyLCAjMTYKIAlibHQJNGYKKworI2lmICEgQ0FMR04oMSkrMAorCiAvKgogICogV2UgbmVlZCBhbiBleHRyYSByZWdpc3RlciBmb3IgdGhpcyBsb29wIC0gc2F2ZSB0aGUgcmV0dXJuIGFkZHJlc3MgYW5kCiAgKiB1c2UgdGhlIExSCkBAIC02NCw2ICs2Nyw0OSBAQAogCXN0bW5laWEJcjAhLCB7cjEsIHIzLCBpcCwgbHJ9CiAJbGRyCWxyLCBbc3BdLCAjNAogCisjZWxzZQorCisvKgorICogVGhpcyB2ZXJzaW9uIGFsaWducyB0aGUgZGVzdGluYXRpb24gcG9pbnRlciBpbiBvcmRlciB0byB3cml0ZQorICogd2hvbGUgY2FjaGUgbGluZXMgYXQgb25jZS4KKyAqLworCisJc3RtZmQJc3AhLCB7cjQtcjcsIGxyfQorCW1vdglyNCwgcjEKKwltb3YJcjUsIHIxCisJbW92CXI2LCByMQorCW1vdglyNywgcjEKKwltb3YJaXAsIHIxCisJbW92CWxyLCByMQorCisJY21wCXIyLCAjOTYKKwl0c3RndAlyMCwgIzMxCisJYmxlCTNmCisKKwlhbmQJaXAsIHIwLCAjMzEKKwlyc2IJaXAsIGlwLCAjMzIKKwlzdWIJcjIsIHIyLCBpcAorCW1vdnMJaXAsIGlwLCBsc2wgIygzMiAtIDQpCisJc3RtY3NpYQlyMCEsIHtyNCwgcjUsIHI2LCByN30KKwlzdG1taWlhCXIwISwge3I0LCByNX0KKwl0c3QJaXAsICMoMSA8PCAzMCkKKwltb3YJaXAsIHIxCisJc3RybmUJcjEsIFtyMF0sICM0CisKKzM6CXN1YnMJcjIsIHIyLCAjNjQKKwlzdG1nZWlhCXIwISwge3IxLCByMy1yNywgaXAsIGxyfQorCXN0bWdlaWEJcjAhLCB7cjEsIHIzLXI3LCBpcCwgbHJ9CisJYmd0CTNiCisJbGRtZXFmZAlzcCEsIHtyNC1yNywgcGN9CisKKwl0c3QJcjIsICMzMgorCXN0bW5laWEJcjAhLCB7cjEsIHIzLXI3LCBpcCwgbHJ9CisJdHN0CXIyLCAjMTYKKwlzdG1uZWlhCXIwISwge3I0LXI3fQorCWxkbWZkCXNwISwge3I0LXI3LCBscn0KKworI2VuZGlmCisKIDQ6CXRzdAlyMiwgIzgKIAlzdG1uZWlhCXIwISwge3IxLCByM30KIAl0c3QJcjIsICM0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9saWIvbWVtemVyby5TIGIvYXJjaC9hcm0vbGliL21lbXplcm8uUwppbmRleCBhYmYyNTA4Li5iOGY3OWQ4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9saWIvbWVtemVyby5TCisrKyBiL2FyY2gvYXJtL2xpYi9tZW16ZXJvLlMKQEAgLTM5LDYgKzM5LDkgQEAKICAqLwogCWNtcAlyMSwgIzE2CQkJQCAxIHdlIGNhbiBza2lwIHRoaXMgY2h1bmsgaWYgd2UKIAlibHQJNGYJCQlAIDEgaGF2ZSA8IDE2IGJ5dGVzCisKKyNpZiAhIENBTEdOKDEpKzAKKwogLyoKICAqIFdlIG5lZWQgYW4gZXh0cmEgcmVnaXN0ZXIgZm9yIHRoaXMgbG9vcCAtIHNhdmUgdGhlIHJldHVybiBhZGRyZXNzIGFuZAogICogdXNlIHRoZSBMUgpAQCAtNjQsNiArNjcsNDcgQEAKIAlzdG1uZWlhCXIwISwge3IyLCByMywgaXAsIGxyfQlAIDQKIAlsZHIJbHIsIFtzcF0sICM0CQlAIDEKIAorI2Vsc2UKKworLyoKKyAqIFRoaXMgdmVyc2lvbiBhbGlnbnMgdGhlIGRlc3RpbmF0aW9uIHBvaW50ZXIgaW4gb3JkZXIgdG8gd3JpdGUKKyAqIHdob2xlIGNhY2hlIGxpbmVzIGF0IG9uY2UuCisgKi8KKworCXN0bWZkCXNwISwge3I0LXI3LCBscn0KKwltb3YJcjQsIHIyCisJbW92CXI1LCByMgorCW1vdglyNiwgcjIKKwltb3YJcjcsIHIyCisJbW92CWlwLCByMgorCW1vdglsciwgcjIKKworCWNtcAlyMSwgIzk2CisJYW5kZ3RzCWlwLCByMCwgIzMxCisJYmxlCTNmCisKKwlyc2IJaXAsIGlwLCAjMzIKKwlzdWIJcjEsIHIxLCBpcAorCW1vdnMJaXAsIGlwLCBsc2wgIygzMiAtIDQpCisJc3RtY3NpYQlyMCEsIHtyNCwgcjUsIHI2LCByN30KKwlzdG1taWlhCXIwISwge3I0LCByNX0KKwltb3ZzCWlwLCBpcCwgbHNsICMyCisJc3RyY3MJcjIsIFtyMF0sICM0CisKKzM6CXN1YnMJcjEsIHIxLCAjNjQKKwlzdG1nZWlhCXIwISwge3IyLXI3LCBpcCwgbHJ9CisJc3RtZ2VpYQlyMCEsIHtyMi1yNywgaXAsIGxyfQorCWJndAkzYgorCWxkbWVxZmQJc3AhLCB7cjQtcjcsIHBjfQorCisJdHN0CXIxLCAjMzIKKwlzdG1uZWlhCXIwISwge3IyLXI3LCBpcCwgbHJ9CisJdHN0CXIxLCAjMTYKKwlzdG1uZWlhCXIwISwge3I0LXI3fQorCWxkbWZkCXNwISwge3I0LXI3LCBscn0KKworI2VuZGlmCisKIDQ6CXRzdAlyMSwgIzgJCQlAIDEgOCBieXRlcyBvciBtb3JlPwogCXN0bW5laWEJcjAhLCB7cjIsIHIzfQkJQCAyCiAJdHN0CXIxLCAjNAkJCUAgMSA0IGJ5dGVzIG9yIG1vcmU/CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9LY29uZmlnCmluZGV4IDBmYzA3YjYuLjViYWQ2YjkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9LY29uZmlnCkBAIC0zMCw2ICszMCwxMSBAQAogCXNlbGVjdCBHRU5FUklDX1RJTUUKIAlzZWxlY3QgR0VORVJJQ19DTE9DS0VWRU5UUwogCitjb25maWcgQVJDSF9BVDkxU0FNOUcyMAorCWJvb2wgIkFUOTFTQU05RzIwIgorCXNlbGVjdCBHRU5FUklDX1RJTUUKKwlzZWxlY3QgR0VORVJJQ19DTE9DS0VWRU5UUworCiBjb25maWcgQVJDSF9BVDkxQ0FQOQogCWJvb2wgIkFUOTFDQVA5IgogCXNlbGVjdCBHRU5FUklDX1RJTUUKQEAgLTEyNiw2ICsxMzEsMTIgQEAKIAkgIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgZW1RYml0J3MgRUNCX0FUOTEgYm9hcmQuCiAJICA8aHR0cDovL3dpa2kuZW1xYml0LmNvbS9mcmVlLWVjYi1hdDkxPgogCitjb25maWcgTUFDSF9ZTDkyMDAKKwlib29sICJ1Y0RyYWdvbiBZTC05MjAwIgorCWRlcGVuZHMgb24gQVJDSF9BVDkxUk05MjAwCisJaGVscAorCSAgU2VsZWN0IHRoaXMgaWYgeW91IGFyZSB1c2luZyB0aGUgdWNEcmFnb24gWUwtOTIwMCBib2FyZC4KKwogZW5kaWYKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNjQsNiArMTc1LDIwIEBACiAJICBTZWxlY3QgdGhpcyBpZiB5b3UgYXJlIHVzaW5nIE9saW1leCdzIFNBTTktTDkyNjAgYm9hcmQgYmFzZWQgb24gdGhlIEF0bWVsIEFUOTFTQU05MjYwLgogCSAgPGh0dHA6Ly93d3cub2xpbWV4LmNvbS9kZXYvc2FtOS1MOTI2MC5odG1sPgogCitjb25maWcgTUFDSF9VU0JfQTkyNjAKKwlib29sICJDQUxBTyBVU0ItQTkyNjAiCisJZGVwZW5kcyBvbiBBUkNIX0FUOTFTQU05MjYwCisJaGVscAorCSAgU2VsZWN0IHRoaXMgaWYgeW91IGFyZSB1c2luZyBhIENhbGFvIFN5c3RlbXMgVVNCLUE5MjYwLgorCSAgPGh0dHA6Ly93d3cuY2FsYW8tc3lzdGVtcy5jb20+CisKK2NvbmZpZyBNQUNIX1FJTF9BOTI2MAorCWJvb2wgIkNBTEFPIFFJTC1BOTI2MCBib2FyZCIKKwlkZXBlbmRzIG9uIEFSQ0hfQVQ5MVNBTTkyNjAKKwloZWxwCisJICBTZWxlY3QgdGhpcyBpZiB5b3UgYXJlIHVzaW5nIGEgQ2FsYW8gU3lzdGVtcyBRSUwtQTkyNjAgQm9hcmQuCisJICA8aHR0cDovL3d3dy5jYWxhby1zeXN0ZW1zLmNvbT4KKwogZW5kaWYKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xOTQsNiArMjE5LDEzIEBACiAJICBTZWxlY3QgdGhpcyBpZiB5b3UgYXJlIHVzaW5nIEF0bWVsJ3MgQVQ5MVNBTTkyNjMtRUsgRXZhbHVhdGlvbiBLaXQuCiAJICA8aHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Byb2R1Y3RzL3Rvb2xzX2NhcmQuYXNwP3Rvb2xfaWQ9NDA1Nz4KIAorY29uZmlnIE1BQ0hfVVNCX0E5MjYzCisJYm9vbCAiQ0FMQU8gVVNCLUE5MjYzIgorCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOTI2MworCWhlbHAKKwkgIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgYSBDYWxhbyBTeXN0ZW1zIFVTQi1BOTI2My4KKwkgIDxodHRwOi8vd3d3LmNhbGFvLXN5c3RlbXMuY29tPgorCiBlbmRpZgogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxMiw2ICsyNDQsMjAgQEAKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2lmIEFSQ0hfQVQ5MVNBTTlHMjAKKworY29tbWVudCAiQVQ5MVNBTTlHMjAgQm9hcmQgVHlwZSIKKworY29uZmlnIE1BQ0hfQVQ5MVNBTTlHMjBFSworCWJvb2wgIkF0bWVsIEFUOTFTQU05RzIwLUVLIEV2YWx1YXRpb24gS2l0IgorCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOUcyMAorCWhlbHAKKwkgIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgQXRtZWwncyBBVDkxU0FNOUcyMC1FSyBFdmFsdWF0aW9uIEtpdC4KKworZW5kaWYKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIGlmIEFSQ0hfQVQ5MUNBUDkKIAogY29tbWVudCAiQVQ5MUNBUDkgQm9hcmQgVHlwZSIKQEAgLTI0NywxMyArMjkzLDEzIEBACiAKIGNvbmZpZyBNVERfQVQ5MV9EQVRBRkxBU0hfQ0FSRAogCWJvb2wgIkVuYWJsZSBEYXRhRmxhc2ggQ2FyZCBzdXBwb3J0IgotCWRlcGVuZHMgb24gKEFSQ0hfQVQ5MVJNOTIwMERLIHx8IE1BQ0hfQVQ5MVJNOTIwMEVLIHx8IE1BQ0hfQVQ5MVNBTTkyNjBFSyB8fCBNQUNIX0FUOTFTQU05MjYxRUsgfHwgTUFDSF9BVDkxU0FNOTI2M0VLIHx8IE1BQ0hfQVQ5MUNBUDlBREsgfHwgTUFDSF9TQU05X0w5MjYwIHx8IE1BQ0hfRUNCQVQ5MSkKKwlkZXBlbmRzIG9uIChBUkNIX0FUOTFSTTkyMDBESyB8fCBNQUNIX0FUOTFSTTkyMDBFSyB8fCBNQUNIX0FUOTFTQU05MjYwRUsgfHwgTUFDSF9BVDkxU0FNOTI2MUVLIHx8IE1BQ0hfQVQ5MVNBTTkyNjNFSyB8fCBNQUNIX0FUOTFTQU05RzIwRUsgfHwgTUFDSF9FQ0JBVDkxIHx8IE1BQ0hfU0FNOV9MOTI2MCB8fCBNQUNIX0FUOTFDQVA5QURLKQogCWhlbHAKIAkgIEVuYWJsZSBzdXBwb3J0IGZvciB0aGUgRGF0YUZsYXNoIGNhcmQuCiAKIGNvbmZpZyBNVERfTkFORF9BVDkxX0JVU1dJRFRIXzE2CiAJYm9vbCAiRW5hYmxlIDE2LWJpdCBkYXRhIGJ1cyBpbnRlcmZhY2UgdG8gTkFORCBmbGFzaCIKLQlkZXBlbmRzIG9uIChNQUNIX0FUOTFTQU05MjYwRUsgfHwgTUFDSF9BVDkxU0FNOTI2MUVLIHx8IE1BQ0hfQVQ5MVNBTTkyNjNFSyB8fCBNQUNIX0FUOTFDQVA5QURLKQorCWRlcGVuZHMgb24gKE1BQ0hfQVQ5MVNBTTkyNjBFSyB8fCBNQUNIX0FUOTFTQU05MjYxRUsgfHwgTUFDSF9BVDkxU0FNOTI2M0VLIHx8IE1BQ0hfQVQ5MVNBTTlHMjBFSyB8fCBNQUNIX0FUOTFDQVA5QURLKQogCWhlbHAKIAkgIE9uIEFUOTFTQU05MjZ4IGJvYXJkcyBib3RoIHR5cGVzIG9mIE5BTkQgZmxhc2ggY2FuIGJlIHByZXNlbnQKIAkgICg4IGFuZCAxNiBiaXQgZGF0YSBidXMgd2lkdGgpLgpAQCAtMzAyLDE1ICszNDgsMTUgQEAKIAogY29uZmlnIEFUOTFfRUFSTFlfVVNBUlQzCiAJYm9vbCAiVVNBUlQzIgotCWRlcGVuZHMgb24gKEFSQ0hfQVQ5MVJNOTIwMCB8fCBBUkNIX0FUOTFTQU05UkwgfHwgQVJDSF9BVDkxU0FNOTI2MCkKKwlkZXBlbmRzIG9uIChBUkNIX0FUOTFSTTkyMDAgfHwgQVJDSF9BVDkxU0FNOVJMIHx8IEFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOUcyMCkKIAogY29uZmlnIEFUOTFfRUFSTFlfVVNBUlQ0CiAJYm9vbCAiVVNBUlQ0IgotCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOTI2MAorCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOTI2MCB8fCBBUkNIX0FUOTFTQU05RzIwCiAKIGNvbmZpZyBBVDkxX0VBUkxZX1VTQVJUNQogCWJvb2wgIlVTQVJUNSIKLQlkZXBlbmRzIG9uIEFSQ0hfQVQ5MVNBTTkyNjAKKwlkZXBlbmRzIG9uIEFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOUcyMAogCiBlbmRjaG9pY2UKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1hdDkxL01ha2VmaWxlCmluZGV4IDhkOWJjMDEuLjdkNjQxZjkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvTWFrZWZpbGUKQEAgLTE1LDYgKzE1LDcgQEAKIG9iai0kKENPTkZJR19BUkNIX0FUOTFTQU05MjYxKQkrPSBhdDkxc2FtOTI2MS5vIGF0OTFzYW05MjZ4X3RpbWUubyBhdDkxc2FtOTI2MV9kZXZpY2VzLm8KIG9iai0kKENPTkZJR19BUkNIX0FUOTFTQU05MjYzKQkrPSBhdDkxc2FtOTI2My5vIGF0OTFzYW05MjZ4X3RpbWUubyBhdDkxc2FtOTI2M19kZXZpY2VzLm8KIG9iai0kKENPTkZJR19BUkNIX0FUOTFTQU05UkwpCSs9IGF0OTFzYW05cmwubyBhdDkxc2FtOTI2eF90aW1lLm8gYXQ5MXNhbTlybF9kZXZpY2VzLm8KK29iai0kKENPTkZJR19BUkNIX0FUOTFTQU05RzIwKQkrPSBhdDkxc2FtOTI2MC5vIGF0OTFzYW05MjZ4X3RpbWUubyBhdDkxc2FtOTI2MF9kZXZpY2VzLm8KIG9iai0kKENPTkZJR19BUkNIX0FUOTFDQVA5KQkrPSBhdDkxY2FwOS5vIGF0OTFzYW05MjZ4X3RpbWUubyBhdDkxY2FwOV9kZXZpY2VzLm8KIG9iai0kKENPTkZJR19BUkNIX0FUOTFYNDApCSs9IGF0OTF4NDAubyBhdDkxeDQwX3RpbWUubwogCkBAIC0zMCwyMSArMzEsMjggQEAKIG9iai0kKENPTkZJR19NQUNIX0tBRkEpCQkrPSBib2FyZC1rYWZhLm8KIG9iai0kKENPTkZJR19NQUNIX1BJQ09UVVgyWFgpCSs9IGJvYXJkLXBpY290dXgyMDAubwogb2JqLSQoQ09ORklHX01BQ0hfRUNCQVQ5MSkJKz0gYm9hcmQtZWNiYXQ5MS5vCitvYmotJChDT05GSUdfTUFDSF9ZTDkyMDApCSs9IGJvYXJkLXlsLTkyMDAubwogCiAjIEFUOTFTQU05MjYwIGJvYXJkLXNwZWNpZmljIHN1cHBvcnQKIG9iai0kKENPTkZJR19NQUNIX0FUOTFTQU05MjYwRUspICs9IGJvYXJkLXNhbTkyNjBlay5vCiBvYmotJChDT05GSUdfTUFDSF9DQU02MCkJKz0gYm9hcmQtY2FtNjAubwogb2JqLSQoQ09ORklHX01BQ0hfU0FNOV9MOTI2MCkJKz0gYm9hcmQtc2FtOS1sOTI2MC5vCitvYmotJChDT05GSUdfTUFDSF9VU0JfQTkyNjApCSs9IGJvYXJkLXVzYi1hOTI2MC5vCitvYmotJChDT05GSUdfTUFDSF9RSUxfQTkyNjApCSs9IGJvYXJkLXFpbC1hOTI2MC5vCiAKICMgQVQ5MVNBTTkyNjEgYm9hcmQtc3BlY2lmaWMgc3VwcG9ydAogb2JqLSQoQ09ORklHX01BQ0hfQVQ5MVNBTTkyNjFFSykgKz0gYm9hcmQtc2FtOTI2MWVrLm8KIAogIyBBVDkxU0FNOTI2MyBib2FyZC1zcGVjaWZpYyBzdXBwb3J0CiBvYmotJChDT05GSUdfTUFDSF9BVDkxU0FNOTI2M0VLKSArPSBib2FyZC1zYW05MjYzZWsubworb2JqLSQoQ09ORklHX01BQ0hfVVNCX0E5MjYzKQkrPSBib2FyZC11c2ItYTkyNjMubwogCiAjIEFUOTFTQU05UkwgYm9hcmQtc3BlY2lmaWMgc3VwcG9ydAogb2JqLSQoQ09ORklHX01BQ0hfQVQ5MVNBTTlSTEVLKQkrPSBib2FyZC1zYW05cmxlay5vCiAKKyMgQVQ5MVNBTTlHMjAgYm9hcmQtc3BlY2lmaWMgc3VwcG9ydAorb2JqLSQoQ09ORklHX01BQ0hfQVQ5MVNBTTlHMjBFSykgKz0gYm9hcmQtc2FtOWcyMGVrLm8KKwogIyBBVDkxQ0FQOSBib2FyZC1zcGVjaWZpYyBzdXBwb3J0CiBvYmotJChDT05GSUdfTUFDSF9BVDkxQ0FQOUFESykJKz0gYm9hcmQtY2FwOWFkay5vCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxY2FwOV9kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MWNhcDlfZGV2aWNlcy5jCmluZGV4IGJlNTI2NzQuLjc0N2I5ZGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxY2FwOV9kZXZpY2VzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFjYXA5X2RldmljZXMuYwpAQCAtODQsNiArODQsMTA1IEBACiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBVU0IgSFMgRGV2aWNlIChHYWRnZXQpCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX0dBREdFVF9BVE1FTF9VU0JBKSB8fCBkZWZpbmVkKENPTkZJR19VU0JfR0FER0VUX0FUTUVMX1VTQkFfTU9EVUxFKQorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVzYmFfdWRjX3Jlc291cmNlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gQVQ5MUNBUDlfVURQSFNfRklGTywKKwkJLmVuZAk9IEFUOTFDQVA5X1VEUEhTX0ZJRk8gKyBTWl81MTJLIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydAk9IEFUOTFDQVA5X0JBU0VfVURQSFMsCisJCS5lbmQJPSBBVDkxQ0FQOV9CQVNFX1VEUEhTICsgU1pfMUsgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsyXSA9IHsKKwkJLnN0YXJ0CT0gQVQ5MUNBUDlfSURfVURQSFMsCisJCS5lbmQJPSBBVDkxQ0FQOV9JRF9VRFBIUywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKKyNkZWZpbmUgRVAobmFtLCBpZHgsIG1heHBrdCwgbWF4YmssIGRtYSwgaXNvYykJCQlcCisJW2lkeF0gPSB7CQkJCQkJXAorCQkubmFtZQkJPSBuYW0sCQkJCVwKKwkJLmluZGV4CQk9IGlkeCwJCQkJXAorCQkuZmlmb19zaXplCT0gbWF4cGt0LAkJCVwKKwkJLm5yX2JhbmtzCT0gbWF4YmssCQkJXAorCQkuY2FuX2RtYQk9IGRtYSwJCQkJXAorCQkuY2FuX2lzb2MJPSBpc29jLAkJCQlcCisJfQorCitzdGF0aWMgc3RydWN0IHVzYmFfZXBfZGF0YSB1c2JhX3VkY19lcFtdID0geworCUVQKCJlcDAiLCAwLCAgIDY0LCAxLCAwLCAwKSwKKwlFUCgiZXAxIiwgMSwgMTAyNCwgMywgMSwgMSksCisJRVAoImVwMiIsIDIsIDEwMjQsIDMsIDEsIDEpLAorCUVQKCJlcDMiLCAzLCAxMDI0LCAyLCAxLCAxKSwKKwlFUCgiZXA0IiwgNCwgMTAyNCwgMiwgMSwgMSksCisJRVAoImVwNSIsIDUsIDEwMjQsIDIsIDEsIDApLAorCUVQKCJlcDYiLCA2LCAxMDI0LCAyLCAxLCAwKSwKKwlFUCgiZXA3IiwgNywgMTAyNCwgMiwgMCwgMCksCit9OworCisjdW5kZWYgRVAKKworLyoKKyAqIHBkYXRhIGRvZXNuJ3QgaGF2ZSByb29tIGZvciBhbnkgZW5kcG9pbnRzLCBzbyB3ZSBuZWVkIHRvCisgKiBhcHBlbmQgcm9vbSBmb3IgdGhlIG9uZXMgd2UgbmVlZCByaWdodCBhZnRlciBpdC4KKyAqLworc3RhdGljIHN0cnVjdCB7CisJc3RydWN0IHVzYmFfcGxhdGZvcm1fZGF0YSBwZGF0YTsKKwlzdHJ1Y3QgdXNiYV9lcF9kYXRhIGVwWzhdOworfSB1c2JhX3VkY19kYXRhOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBhdDkxX3VzYmFfdWRjX2RldmljZSA9IHsKKwkubmFtZQkJPSAiYXRtZWxfdXNiYV91ZGMiLAorCS5pZAkJPSAtMSwKKwkuZGV2CQk9IHsKKwkJCQkucGxhdGZvcm1fZGF0YQk9ICZ1c2JhX3VkY19kYXRhLnBkYXRhLAorCX0sCisJLnJlc291cmNlCT0gdXNiYV91ZGNfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRSh1c2JhX3VkY19yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgYXQ5MV9hZGRfZGV2aWNlX3VzYmEoc3RydWN0IHVzYmFfcGxhdGZvcm1fZGF0YSAqZGF0YSkKK3sKKwlhdDkxX3N5c193cml0ZShBVDkxX01BVFJJWF9VRFBIUywgQVQ5MV9NQVRSSVhfU0VMRUNUX1VEUEhTIHwKKwkJCQkJICBBVDkxX01BVFJJWF9VRFBIU19CWVBBU1NfTE9DSyk7CisKKwkvKgorCSAqIEludmFsaWQgcGlucyBhcmUgMCBvbiBBVDkxLCBidXQgdGhlIHVzYmEgZHJpdmVyIGlzIHNoYXJlZAorCSAqIHdpdGggQVZSMzIsIHdoaWNoIHVzZSBuZWdhdGl2ZSB2YWx1ZXMgaW5zdGVhZC4gT25jZS9pZgorCSAqIGdwaW9faXNfdmFsaWQoKSBpcyBwb3J0ZWQgdG8gQVQ5MSwgcmV2aXNpdCB0aGlzIGNvZGUuCisJICovCisJdXNiYV91ZGNfZGF0YS5wZGF0YS52YnVzX3BpbiA9IC1FSU5WQUw7CisJdXNiYV91ZGNfZGF0YS5wZGF0YS5udW1fZXAgPSBBUlJBWV9TSVpFKHVzYmFfdWRjX2VwKTsKKwltZW1jcHkodXNiYV91ZGNfZGF0YS5lcCwgdXNiYV91ZGNfZXAsIHNpemVvZih1c2JhX3VkY19lcCkpOzsKKworCWlmIChkYXRhICYmIGRhdGEtPnZidXNfcGluID4gMCkgeworCQlhdDkxX3NldF9ncGlvX2lucHV0KGRhdGEtPnZidXNfcGluLCAwKTsKKwkJYXQ5MV9zZXRfZGVnbGl0Y2goZGF0YS0+dmJ1c19waW4sIDEpOworCQl1c2JhX3VkY19kYXRhLnBkYXRhLnZidXNfcGluID0gZGF0YS0+dmJ1c19waW47CisJfQorCisJLyogUHVsbHVwIHBpbiBpcyBoYW5kbGVkIGludGVybmFsbHkgYnkgVVNCIGRldmljZSBwZXJpcGhlcmFsICovCisKKwkvKiBDbG9ja3MgKi8KKwlhdDkxX2Nsb2NrX2Fzc29jaWF0ZSgidXRtaV9jbGsiLCAmYXQ5MV91c2JhX3VkY19kZXZpY2UuZGV2LCAiaGNsayIpOworCWF0OTFfY2xvY2tfYXNzb2NpYXRlKCJ1ZHBoc19jbGsiLCAmYXQ5MV91c2JhX3VkY19kZXZpY2UuZGV2LCAicGNsayIpOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZhdDkxX3VzYmFfdWRjX2RldmljZSk7Cit9CisjZWxzZQordm9pZCBfX2luaXQgYXQ5MV9hZGRfZGV2aWNlX3VzYmEoc3RydWN0IHVzYmFfcGxhdGZvcm1fZGF0YSAqZGF0YSkge30KKyNlbmRpZgorCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiAgRXRoZXJuZXQKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2MC5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYwLmMKaW5kZXggZWUyNjU1MC4uMzgwZjEyYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYwLmMKQEAgLTQ3LDYgKzQ3LDIwIEBACiAJfQogfTsKIAorc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBhdDkxc2FtOWcyMF9zcmFtX2Rlc2NbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnZpcnR1YWwJPSBBVDkxX0lPX1ZJUlRfQkFTRSAtIEFUOTFTQU05RzIwX1NSQU0wX1NJWkUsCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihBVDkxU0FNOUcyMF9TUkFNMF9CQVNFKSwKKwkJLmxlbmd0aAkJPSBBVDkxU0FNOUcyMF9TUkFNMF9TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwgeworCQkudmlydHVhbAk9IEFUOTFfSU9fVklSVF9CQVNFIC0gQVQ5MVNBTTlHMjBfU1JBTTBfU0laRSAtIEFUOTFTQU05RzIwX1NSQU0xX1NJWkUsCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihBVDkxU0FNOUcyMF9TUkFNMV9CQVNFKSwKKwkJLmxlbmd0aAkJPSBBVDkxU0FNOUcyMF9TUkFNMV9TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfQorfTsKKwogc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBhdDkxc2FtOXhlX3NyYW1fZGVzY1tdIF9faW5pdGRhdGEgPSB7CiAJewogCQkucGZuCQk9IF9fcGh5c190b19wZm4oQVQ5MVNBTTlYRV9TUkFNX0JBU0UpLApAQCAtMzA3LDYgKzMyMSw4IEBACiAKIAlpZiAoY3B1X2lzX2F0OTFzYW05eGUoKSkKIAkJYXQ5MXNhbTl4ZV9pbml0aWFsaXplKCk7CisJZWxzZSBpZiAoY3B1X2lzX2F0OTFzYW05ZzIwKCkpCisJCWlvdGFibGVfaW5pdChhdDkxc2FtOWcyMF9zcmFtX2Rlc2MsIEFSUkFZX1NJWkUoYXQ5MXNhbTlnMjBfc3JhbV9kZXNjKSk7CiAJZWxzZQogCQlpb3RhYmxlX2luaXQoYXQ5MXNhbTkyNjBfc3JhbV9kZXNjLCBBUlJBWV9TSVpFKGF0OTFzYW05MjYwX3NyYW1fZGVzYykpOwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjBfZGV2aWNlcy5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYwX2RldmljZXMuYwppbmRleCAzOTNhMzJhLi44NmNiYTRhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjBfZGV2aWNlcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2MF9kZXZpY2VzLmMKQEAgLTE4LDYgKzE4LDcgQEAKIAogI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05MjYwLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MXNhbTkyNjBfbWF0cml4Lmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MXNhbTlfc21jLmg+CkBAIC0zMjAsMjAgKzMyMSw0MSBAQAogCWNzYSA9IGF0OTFfc3lzX3JlYWQoQVQ5MV9NQVRSSVhfRUJJQ1NBKTsKIAlhdDkxX3N5c193cml0ZShBVDkxX01BVFJJWF9FQklDU0EsIGNzYSB8IEFUOTFfTUFUUklYX0NTM0FfU01DX1NNQVJUTUVESUEpOwogCi0JLyogc2V0IHRoZSBidXMgaW50ZXJmYWNlIGNoYXJhY3RlcmlzdGljcyAqLwotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1NFVFVQKDMpLCBBVDkxX1NNQ19OV0VTRVRVUF8oMCkgfCBBVDkxX1NNQ19OQ1NfV1JTRVRVUF8oMCkKLQkJCXwgQVQ5MV9TTUNfTlJEU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKTsKKwlpZiAoY3B1X2lzX2F0OTFzYW05MjYwKCkpIHsKKwkJLyogVGltaW5nIGZvciBzYW05MjYwICovCisJCS8qIHNldCB0aGUgYnVzIGludGVyZmFjZSBjaGFyYWN0ZXJpc3RpY3MgKi8KKwkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygxKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQorCQkJCXwgQVQ5MV9TTUNfTlJEU0VUVVBfKDEpIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKTsKIAotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1BVTFNFKDMpLCBBVDkxX1NNQ19OV0VQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfV1JQVUxTRV8oMykKLQkJCXwgQVQ5MV9TTUNfTlJEUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDMpKTsKKwkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXygzKSB8IEFUOTFfU01DX05DU19XUlBVTFNFXygzKQorCQkJCXwgQVQ5MV9TTUNfTlJEUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDMpKTsKIAotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNSkgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNSkpOworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19DWUNMRSgzKSwgQVQ5MV9TTUNfTldFQ1lDTEVfKDUpIHwgQVQ5MV9TTUNfTlJEQ1lDTEVfKDUpKTsKIAotCWlmIChkYXRhLT5idXNfd2lkdGhfMTYpCi0JCW1vZGUgPSBBVDkxX1NNQ19EQldfMTY7Ci0JZWxzZQotCQltb2RlID0gQVQ5MV9TTUNfREJXXzg7Ci0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwgbW9kZSB8IEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8IEFUOTFfU01DX1RERl8oMikpOworCQlpZiAoZGF0YS0+YnVzX3dpZHRoXzE2KQorCQkJbW9kZSA9IEFUOTFfU01DX0RCV18xNjsKKwkJZWxzZQorCQkJbW9kZSA9IEFUOTFfU01DX0RCV184OworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLCBtb2RlIHwgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfCBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwgQVQ5MV9TTUNfVERGXygyKSk7CisJfQorCisJaWYgKGNwdV9pc19hdDkxc2FtOWcyMCgpKSB7CisJCS8qIFRpbWluZyBmb3Igc2FtOWcyMCAqLworCQkvKiBzZXQgdGhlIGJ1cyBpbnRlcmZhY2UgY2hhcmFjdGVyaXN0aWNzICovCisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1NFVFVQKDMpLCBBVDkxX1NNQ19OV0VTRVRVUF8oMikgfCBBVDkxX1NNQ19OQ1NfV1JTRVRVUF8oMCkKKwkJCQl8IEFUOTFfU01DX05SRFNFVFVQXygyKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CisKKwkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXyg0KSB8IEFUOTFfU01DX05DU19XUlBVTFNFXyg0KQorCQkJCXwgQVQ5MV9TTUNfTlJEUFVMU0VfKDQpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDQpKTsKKworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19DWUNMRSgzKSwgQVQ5MV9TTUNfTldFQ1lDTEVfKDcpIHwgQVQ5MV9TTUNfTlJEQ1lDTEVfKDcpKTsKKworCQlpZiAoZGF0YS0+YnVzX3dpZHRoXzE2KQorCQkJbW9kZSA9IEFUOTFfU01DX0RCV18xNjsKKwkJZWxzZQorCQkJbW9kZSA9IEFUOTFfU01DX0RCV184OworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLCBtb2RlIHwgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfCBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwgQVQ5MV9TTUNfVERGXygzKSk7CisJfQogCiAJLyogZW5hYmxlIHBpbiAqLwogCWlmIChkYXRhLT5lbmFibGVfcGluKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYxX2RldmljZXMuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2MV9kZXZpY2VzLmMKaW5kZXggMGJhYmI2NC4uZWMxODkxMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYxX2RldmljZXMuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjFfZGV2aWNlcy5jCkBAIC0yMzIsMTkgKzIzMiwxOSBAQAogCWF0OTFfc3lzX3dyaXRlKEFUOTFfTUFUUklYX0VCSUNTQSwgY3NhIHwgQVQ5MV9NQVRSSVhfQ1MzQV9TTUNfU01BUlRNRURJQSk7CiAKIAkvKiBzZXQgdGhlIGJ1cyBpbnRlcmZhY2UgY2hhcmFjdGVyaXN0aWNzICovCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygwKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQotCQkJfCBBVDkxX1NNQ19OUkRTRVRVUF8oMCkgfCBBVDkxX1NNQ19OQ1NfUkRTRVRVUF8oMCkpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1NFVFVQKDMpLCBBVDkxX1NNQ19OV0VTRVRVUF8oMSkgfCBBVDkxX1NNQ19OQ1NfV1JTRVRVUF8oMCkKKwkJCXwgQVQ5MV9TTUNfTlJEU0VUVVBfKDEpIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKTsKIAotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1BVTFNFKDMpLCBBVDkxX1NNQ19OV0VQVUxTRV8oMikgfCBBVDkxX1NNQ19OQ1NfV1JQVUxTRV8oNSkKLQkJCXwgQVQ5MV9TTUNfTlJEUFVMU0VfKDIpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDUpKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19QVUxTRSgzKSwgQVQ5MV9TTUNfTldFUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDMpCisJCQl8IEFUOTFfU01DX05SRFBVTFNFXygzKSB8IEFUOTFfU01DX05DU19SRFBVTFNFXygzKSk7CiAKLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19DWUNMRSgzKSwgQVQ5MV9TTUNfTldFQ1lDTEVfKDcpIHwgQVQ5MV9TTUNfTlJEQ1lDTEVfKDcpKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19DWUNMRSgzKSwgQVQ5MV9TTUNfTldFQ1lDTEVfKDUpIHwgQVQ5MV9TTUNfTlJEQ1lDTEVfKDUpKTsKIAogCWlmIChkYXRhLT5idXNfd2lkdGhfMTYpCiAJCW1vZGUgPSBBVDkxX1NNQ19EQldfMTY7CiAJZWxzZQogCQltb2RlID0gQVQ5MV9TTUNfREJXXzg7Ci0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwgbW9kZSB8IEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8IEFUOTFfU01DX1RERl8oMSkpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksIG1vZGUgfCBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8IEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfCBBVDkxX1NNQ19UREZfKDIpKTsKIAogCS8qIGVuYWJsZSBwaW4gKi8KIAlpZiAoZGF0YS0+ZW5hYmxlX3BpbikKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2M19kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjNfZGV2aWNlcy5jCmluZGV4IDcxOTY2N2UuLjhhODFmNzYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2M19kZXZpY2VzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYzX2RldmljZXMuYwpAQCAtMzkxLDggKzM5MSw4IEBACiAJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9NQVRSSVhfRUJJMENTQSwgY3NhIHwgQVQ5MV9NQVRSSVhfRUJJMF9DUzNBX1NNQ19TTUFSVE1FRElBKTsKIAogCS8qIHNldCB0aGUgYnVzIGludGVyZmFjZSBjaGFyYWN0ZXJpc3RpY3MgKi8KLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCi0JCQl8IEFUOTFfU01DX05SRFNFVFVQXygwKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygxKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQorCQkJfCBBVDkxX1NNQ19OUkRTRVRVUF8oMSkgfCBBVDkxX1NNQ19OQ1NfUkRTRVRVUF8oMCkpOwogCiAJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXygzKSB8IEFUOTFfU01DX05DU19XUlBVTFNFXygzKQogCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oMykpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05cmxfZGV2aWNlcy5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05cmxfZGV2aWNlcy5jCmluZGV4IDQ1MGRiMzAuLmFlMjgxMDEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOXJsX2RldmljZXMuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTlybF9kZXZpY2VzLmMKQEAgLTI2LDYgKzI2LDEwMSBAQAogCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVVNCIEhTIERldmljZSAoR2FkZ2V0KQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2lmIGRlZmluZWQoQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQSkgfHwgZGVmaW5lZChDT05GSUdfVVNCX0dBREdFVF9BVE1FTF9VU0JBX01PRFVMRSkKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1c2JhX3VkY19yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IEFUOTFTQU05UkxfVURQSFNfRklGTywKKwkJLmVuZAk9IEFUOTFTQU05UkxfVURQSFNfRklGTyArIFNaXzUxMksgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0CT0gQVQ5MVNBTTlSTF9CQVNFX1VEUEhTLAorCQkuZW5kCT0gQVQ5MVNBTTlSTF9CQVNFX1VEUEhTICsgU1pfMUsgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsyXSA9IHsKKwkJLnN0YXJ0CT0gQVQ5MVNBTTlSTF9JRF9VRFBIUywKKwkJLmVuZAk9IEFUOTFTQU05UkxfSURfVURQSFMsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCisjZGVmaW5lIEVQKG5hbSwgaWR4LCBtYXhwa3QsIG1heGJrLCBkbWEsIGlzb2MpCQkJXAorCVtpZHhdID0gewkJCQkJCVwKKwkJLm5hbWUJCT0gbmFtLAkJCQlcCisJCS5pbmRleAkJPSBpZHgsCQkJCVwKKwkJLmZpZm9fc2l6ZQk9IG1heHBrdCwJCQlcCisJCS5ucl9iYW5rcwk9IG1heGJrLAkJCVwKKwkJLmNhbl9kbWEJPSBkbWEsCQkJCVwKKwkJLmNhbl9pc29jCT0gaXNvYywJCQkJXAorCX0KKworc3RhdGljIHN0cnVjdCB1c2JhX2VwX2RhdGEgdXNiYV91ZGNfZXBbXSBfX2luaXRkYXRhID0geworCUVQKCJlcDAiLCAwLCA2NCwgMSwgMCwgMCksCisJRVAoImVwMSIsIDEsIDEwMjQsIDIsIDEsIDEpLAorCUVQKCJlcDIiLCAyLCAxMDI0LCAyLCAxLCAxKSwKKwlFUCgiZXAzIiwgMywgMTAyNCwgMywgMSwgMCksCisJRVAoImVwNCIsIDQsIDEwMjQsIDMsIDEsIDApLAorCUVQKCJlcDUiLCA1LCAxMDI0LCAzLCAxLCAxKSwKKwlFUCgiZXA2IiwgNiwgMTAyNCwgMywgMSwgMSksCit9OworCisjdW5kZWYgRVAKKworLyoKKyAqIHBkYXRhIGRvZXNuJ3QgaGF2ZSByb29tIGZvciBhbnkgZW5kcG9pbnRzLCBzbyB3ZSBuZWVkIHRvCisgKiBhcHBlbmQgcm9vbSBmb3IgdGhlIG9uZXMgd2UgbmVlZCByaWdodCBhZnRlciBpdC4KKyAqLworc3RhdGljIHN0cnVjdCB7CisJc3RydWN0IHVzYmFfcGxhdGZvcm1fZGF0YSBwZGF0YTsKKwlzdHJ1Y3QgdXNiYV9lcF9kYXRhIGVwWzddOworfSB1c2JhX3VkY19kYXRhOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBhdDkxX3VzYmFfdWRjX2RldmljZSA9IHsKKwkubmFtZQkJPSAiYXRtZWxfdXNiYV91ZGMiLAorCS5pZAkJPSAtMSwKKwkuZGV2CQk9IHsKKwkJCQkucGxhdGZvcm1fZGF0YQk9ICZ1c2JhX3VkY19kYXRhLnBkYXRhLAorCX0sCisJLnJlc291cmNlCT0gdXNiYV91ZGNfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRSh1c2JhX3VkY19yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgYXQ5MV9hZGRfZGV2aWNlX3VzYmEoc3RydWN0IHVzYmFfcGxhdGZvcm1fZGF0YSAqZGF0YSkKK3sKKwkvKgorCSAqIEludmFsaWQgcGlucyBhcmUgMCBvbiBBVDkxLCBidXQgdGhlIHVzYmEgZHJpdmVyIGlzIHNoYXJlZAorCSAqIHdpdGggQVZSMzIsIHdoaWNoIHVzZSBuZWdhdGl2ZSB2YWx1ZXMgaW5zdGVhZC4gT25jZS9pZgorCSAqIGdwaW9faXNfdmFsaWQoKSBpcyBwb3J0ZWQgdG8gQVQ5MSwgcmV2aXNpdCB0aGlzIGNvZGUuCisJICovCisJdXNiYV91ZGNfZGF0YS5wZGF0YS52YnVzX3BpbiA9IC1FSU5WQUw7CisJdXNiYV91ZGNfZGF0YS5wZGF0YS5udW1fZXAgPSBBUlJBWV9TSVpFKHVzYmFfdWRjX2VwKTsKKwltZW1jcHkodXNiYV91ZGNfZGF0YS5lcCwgdXNiYV91ZGNfZXAsIHNpemVvZih1c2JhX3VkY19lcCkpOzsKKworCWlmIChkYXRhICYmIGRhdGEtPnZidXNfcGluID4gMCkgeworCQlhdDkxX3NldF9ncGlvX2lucHV0KGRhdGEtPnZidXNfcGluLCAwKTsKKwkJYXQ5MV9zZXRfZGVnbGl0Y2goZGF0YS0+dmJ1c19waW4sIDEpOworCQl1c2JhX3VkY19kYXRhLnBkYXRhLnZidXNfcGluID0gZGF0YS0+dmJ1c19waW47CisJfQorCisJLyogUHVsbHVwIHBpbiBpcyBoYW5kbGVkIGludGVybmFsbHkgYnkgVVNCIGRldmljZSBwZXJpcGhlcmFsICovCisKKwkvKiBDbG9ja3MgKi8KKwlhdDkxX2Nsb2NrX2Fzc29jaWF0ZSgidXRtaV9jbGsiLCAmYXQ5MV91c2JhX3VkY19kZXZpY2UuZGV2LCAiaGNsayIpOworCWF0OTFfY2xvY2tfYXNzb2NpYXRlKCJ1ZHBoc19jbGsiLCAmYXQ5MV91c2JhX3VkY19kZXZpY2UuZGV2LCAicGNsayIpOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZhdDkxX3VzYmFfdWRjX2RldmljZSk7Cit9CisjZWxzZQordm9pZCBfX2luaXQgYXQ5MV9hZGRfZGV2aWNlX3VzYmEoc3RydWN0IHVzYmFfcGxhdGZvcm1fZGF0YSAqZGF0YSkge30KKyNlbmRpZgorCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiAgTU1DIC8gU0QKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKQEAgLTEzOCwxNSArMjMzLDE1IEBACiAJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9NQVRSSVhfRUJJQ1NBLCBjc2EgfCBBVDkxX01BVFJJWF9DUzNBX1NNQ19TTUFSVE1FRElBKTsKIAogCS8qIHNldCB0aGUgYnVzIGludGVyZmFjZSBjaGFyYWN0ZXJpc3RpY3MgKi8KLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCi0JCQl8IEFUOTFfU01DX05SRFNFVFVQXygwKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygxKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQorCQkJfCBBVDkxX1NNQ19OUkRTRVRVUF8oMSkgfCBBVDkxX1NNQ19OQ1NfUkRTRVRVUF8oMCkpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXygyKSB8IEFUOTFfU01DX05DU19XUlBVTFNFXyg1KQotCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMikgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oNSkpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1BVTFNFKDMpLCBBVDkxX1NNQ19OV0VQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfV1JQVUxTRV8oMykKKwkJCXwgQVQ5MV9TTUNfTlJEUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDMpKTsKIAotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNykgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNykpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNSkgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNSkpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwgQVQ5MV9TTUNfREJXXzggfCBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8IEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfCBBVDkxX1NNQ19UREZfKDEpKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLCBBVDkxX1NNQ19EQldfOCB8IEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8IEFUOTFfU01DX1RERl8oMikpOwogCiAJLyogZW5hYmxlIHBpbiAqLwogCWlmIChkYXRhLT5lbmFibGVfcGluKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNhcDlhZGsuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jYXA5YWRrLmMKaW5kZXggZTU1MTJkMS4uOGEyYTk1OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNhcDlhZGsuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY2FwOWFkay5jCkBAIC03OCw2ICs3OCwxMiBAQAogCS5wb3J0cwkJPSAyLAogfTsKIAorLyoKKyAqIFVTQiBIUyBEZXZpY2UgcG9ydAorICovCitzdGF0aWMgc3RydWN0IHVzYmFfcGxhdGZvcm1fZGF0YSBfX2luaXRkYXRhIGNhcDlhZGtfdXNiYV91ZGNfZGF0YSA9IHsKKwkudmJ1c19waW4JPSBBVDkxX1BJTl9QQjMxLAorfTsKIAogLyoKICAqIEFEUzc4NDYgVG91Y2hzY3JlZW4KQEAgLTMyNiw2ICszMzIsOSBAQAogCS8qIFVTQiBIb3N0ICovCiAJc2V0X2lycV90eXBlKEFUOTFDQVA5X0lEX1VIUCwgSVJRVF9ISUdIKTsKIAlhdDkxX2FkZF9kZXZpY2VfdXNiaCgmY2FwOWFka191c2JoX2RhdGEpOworCS8qIFVTQiBIUyAqLworCXNldF9pcnFfdHlwZShBVDkxQ0FQOV9JRF9VRFBIUywgSVJRVF9ISUdIKTsKKwlhdDkxX2FkZF9kZXZpY2VfdXNiYSgmY2FwOWFka191c2JhX3VkY19kYXRhKTsKIAkvKiBTUEkgKi8KIAlhdDkxX2FkZF9kZXZpY2Vfc3BpKGNhcDlhZGtfc3BpX2RldmljZXMsIEFSUkFZX1NJWkUoY2FwOWFka19zcGlfZGV2aWNlcykpOwogCS8qIFRvdWNoc2NyZWVuICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY2FybWV2YS5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNhcm1ldmEuYwppbmRleCAwZjA4NzgyOS4uOTg1NGZjMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNhcm1ldmEuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY2FybWV2YS5jCkBAIC00MCwyNCArNDAsMjEgQEAKICNpbmNsdWRlICJnZW5lcmljLmgiCiAKIAotLyoKLSAqIFNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24uCi0gKiAgICAwIC4uIDMgPSBVU0FSVDAgLi4gVVNBUlQzCi0gKiAgICA0ICAgICAgPSBEQkdVCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgYXQ5MV91YXJ0X2NvbmZpZyBfX2luaXRkYXRhIGNhcm1ldmFfdWFydF9jb25maWcgPSB7Ci0JLmNvbnNvbGVfdHR5CT0gMCwJCQkJLyogdHR5UzAgKi8KLQkubnJfdHR5CQk9IDIsCi0JLnR0eV9tYXAJPSB7IDQsIDEsIC0xLCAtMSwgLTEgfQkJLyogdHR5UzAsIC4uLiwgdHR5UzQgKi8KLX07Ci0KIHN0YXRpYyB2b2lkIF9faW5pdCBjYXJtZXZhX21hcF9pbyh2b2lkKQogewogCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAyMC4wMDAgTUh6IGNyeXN0YWwgKi8KIAlhdDkxcm05MjAwX2luaXRpYWxpemUoMjAwMDAwMDAsIEFUOTFSTTkyMDBfQkdBKTsKIAotCS8qIFNldHVwIHRoZSBzZXJpYWwgcG9ydHMgYW5kIGNvbnNvbGUgKi8KLQlhdDkxX2luaXRfc2VyaWFsKCZjYXJtZXZhX3VhcnRfY29uZmlnKTsKKwkvKiBEQkdVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKKworCS8qIFVTQVJUMSBvbiB0dHlTMS4gKFJ4LCBUeCwgQ1RTLCBSVFMsIERUUiwgRFNSLCBEQ0QsIFJJKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxUk05MjAwX0lEX1VTMSwgMSwgQVRNRUxfVUFSVF9DVFMgfCBBVE1FTF9VQVJUX1JUUworCQkJICAgfCBBVE1FTF9VQVJUX0RUUiB8IEFUTUVMX1VBUlRfRFNSIHwgQVRNRUxfVUFSVF9EQ0QKKwkJCSAgIHwgQVRNRUxfVUFSVF9SSSk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgY2FybWV2YV9pbml0X2lycSh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNzYjYzNy5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNzYjYzNy5jCmluZGV4IDQxOWZkMTkuLmJiMWE1NDcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jc2I2MzcuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY3NiNjM3LmMKQEAgLTQ1LDEwICs0NSwxMCBAQAogCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAzLjY4NjQgTUh6IGNyeXN0YWwgKi8KIAlhdDkxcm05MjAwX2luaXRpYWxpemUoMzY4NjQwMCwgQVQ5MVJNOTIwMF9CR0EpOwogCi0JLyogREJHVSBvbiB0dHlTMCAqLworCS8qIERCR1Ugb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCiAJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOwogCi0JLyogbWFrZSBjb25zb2xlPXR0eVMwIHRoZSBkZWZhdWx0ICovCisJLyogbWFrZSBjb25zb2xlPXR0eVMwIChpZSwgREJHVSkgdGhlIGRlZmF1bHQgKi8KIAlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWRrLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZGsuYwppbmRleCBjMWE4MTNjLi5kYWI5NThkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZGsuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZGsuYwpAQCAtNDUsMTcgKzQ1LDYgQEAKICNpbmNsdWRlICJnZW5lcmljLmgiCiAKIAotLyoKLSAqIFNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24uCi0gKiAgICAwIC4uIDMgPSBVU0FSVDAgLi4gVVNBUlQzCi0gKiAgICA0ICAgICAgPSBEQkdVCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgYXQ5MV91YXJ0X2NvbmZpZyBfX2luaXRkYXRhIGRrX3VhcnRfY29uZmlnID0gewotCS5jb25zb2xlX3R0eQk9IDAsCQkJCS8qIHR0eVMwICovCi0JLm5yX3R0eQkJPSAyLAotCS50dHlfbWFwCT0geyA0LCAxLCAtMSwgLTEsIC0xIH0JCS8qIHR0eVMwLCAuLi4sIHR0eVM0ICovCi19OwotCiBzdGF0aWMgdm9pZCBfX2luaXQgZGtfbWFwX2lvKHZvaWQpCiB7CiAJLyogSW5pdGlhbGl6ZSBwcm9jZXNzb3I6IDE4LjQzMiBNSHogY3J5c3RhbCAqLwpAQCAtNjQsOCArNTMsMTYgQEAKIAkvKiBTZXR1cCB0aGUgTEVEcyAqLwogCWF0OTFfaW5pdF9sZWRzKEFUOTFfUElOX1BCMiwgQVQ5MV9QSU5fUEIyKTsKIAotCS8qIFNldHVwIHRoZSBzZXJpYWwgcG9ydHMgYW5kIGNvbnNvbGUgKi8KLQlhdDkxX2luaXRfc2VyaWFsKCZka191YXJ0X2NvbmZpZyk7CisJLyogREJHVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBVU0FSVDEgb24gdHR5UzEuIChSeCwgVHgsIENUUywgUlRTLCBEVFIsIERTUiwgRENELCBSSSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzEsIDEsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMKKwkJCSAgIHwgQVRNRUxfVUFSVF9EVFIgfCBBVE1FTF9VQVJUX0RTUiB8IEFUTUVMX1VBUlRfRENECisJCQkgICB8IEFUTUVMX1VBUlRfUkkpOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IGRrX2luaXRfaXJxKHZvaWQpCkBAIC0xNjMsNyArMTYwLDcgQEAKICNkZWZpbmUgREtfRkxBU0hfU0laRQkweDIwMDAwMAogCiBzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBka19mbGFzaF9kYXRhID0gewotCS53aWR0aAk9IDIsCisJLndpZHRoCQk9IDIsCiB9OwogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGRrX2ZsYXNoX3Jlc291cmNlID0gewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWViOTIwMC5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWViOTIwMC5jCmluZGV4IGFmMWExZDguLjNmZTA1NGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1lYjkyMDAuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZWI5MjAwLmMKQEAgLTQwLDI0ICs0MCwyNCBAQAogI2luY2x1ZGUgImdlbmVyaWMuaCIKIAogCi0vKgotICogU2VyaWFsIHBvcnQgY29uZmlndXJhdGlvbi4KLSAqICAgIDAgLi4gMyA9IFVTQVJUMCAuLiBVU0FSVDMKLSAqICAgIDQgICAgICA9IERCR1UKLSAqLwotc3RhdGljIHN0cnVjdCBhdDkxX3VhcnRfY29uZmlnIF9faW5pdGRhdGEgZWI5MjAwX3VhcnRfY29uZmlnID0gewotCS5jb25zb2xlX3R0eQk9IDAsCQkJCS8qIHR0eVMwICovCi0JLm5yX3R0eQkJPSAyLAotCS50dHlfbWFwCT0geyA0LCAxLCAtMSwgLTEsIC0xIH0JCS8qIHR0eVMwLCAuLi4sIHR0eVM0ICovCi19OwotCiBzdGF0aWMgdm9pZCBfX2luaXQgZWI5MjAwX21hcF9pbyh2b2lkKQogewogCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxOC40MzIgTUh6IGNyeXN0YWwgKi8KIAlhdDkxcm05MjAwX2luaXRpYWxpemUoMTg0MzIwMDAsIEFUOTFSTTkyMDBfQkdBKTsKIAotCS8qIFNldHVwIHRoZSBzZXJpYWwgcG9ydHMgYW5kIGNvbnNvbGUgKi8KLQlhdDkxX2luaXRfc2VyaWFsKCZlYjkyMDBfdWFydF9jb25maWcpOworCS8qIERCR1Ugb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogVVNBUlQxIG9uIHR0eVMxLiAoUngsIFR4LCBDVFMsIFJUUywgRFRSLCBEU1IsIERDRCwgUkkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMxLCAxLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTCisJCQl8IEFUTUVMX1VBUlRfRFRSIHwgQVRNRUxfVUFSVF9EU1IgfCBBVE1FTF9VQVJUX0RDRAorCQkJfCBBVE1FTF9VQVJUX1JJKTsKKworCS8qIFVTQVJUMiBvbiB0dHlTMi4gKFJ4LCBUeCkgLSBJUkRBICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMyLCAyLCAwKTsKKworCS8qIHNldCBzZXJpYWwgY29uc29sZSB0byB0dHlTMCAoaWUsIERCR1UpICovCisJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBlYjkyMDBfaW5pdF9pcnEodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1lay5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWVrLmMKaW5kZXggMDU3NGU1MC4uNzRhYTQzMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWVrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWVrLmMKQEAgLTQ1LDE3ICs0NSw2IEBACiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCiAKLS8qCi0gKiBTZXJpYWwgcG9ydCBjb25maWd1cmF0aW9uLgotICogICAgMCAuLiAzID0gVVNBUlQwIC4uIFVTQVJUMwotICogICAgNCAgICAgID0gREJHVQotICovCi1zdGF0aWMgc3RydWN0IGF0OTFfdWFydF9jb25maWcgX19pbml0ZGF0YSBla191YXJ0X2NvbmZpZyA9IHsKLQkuY29uc29sZV90dHkJPSAwLAkJCQkvKiB0dHlTMCAqLwotCS5ucl90dHkJCT0gMiwKLQkudHR5X21hcAk9IHsgNCwgMSwgLTEsIC0xLCAtMSB9CQkvKiB0dHlTMCwgLi4uLCB0dHlTNCAqLwotfTsKLQogc3RhdGljIHZvaWQgX19pbml0IGVrX21hcF9pbyh2b2lkKQogewogCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxOC40MzIgTUh6IGNyeXN0YWwgKi8KQEAgLTY0LDggKzUzLDE2IEBACiAJLyogU2V0dXAgdGhlIExFRHMgKi8KIAlhdDkxX2luaXRfbGVkcyhBVDkxX1BJTl9QQjEsIEFUOTFfUElOX1BCMik7CiAKLQkvKiBTZXR1cCB0aGUgc2VyaWFsIHBvcnRzIGFuZCBjb25zb2xlICovCi0JYXQ5MV9pbml0X3NlcmlhbCgmZWtfdWFydF9jb25maWcpOworCS8qIERCR1Ugb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogVVNBUlQxIG9uIHR0eVMxLiAoUngsIFR4LCBDVFMsIFJUUywgRFRSLCBEU1IsIERDRCwgUkkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMxLCAxLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTCisJCQkgICB8IEFUTUVMX1VBUlRfRFRSIHwgQVRNRUxfVUFSVF9EU1IgfCBBVE1FTF9VQVJUX0RDRAorCQkJICAgfCBBVE1FTF9VQVJUX1JJKTsKKworCS8qIHNldCBzZXJpYWwgY29uc29sZSB0byB0dHlTMCAoaWUsIERCR1UpICovCisJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBla19pbml0X2lycSh2b2lkKQpAQCAtMTIyLDcgKzExOSw3IEBACiAjZGVmaW5lIEVLX0ZMQVNIX1NJWkUJMHgyMDAwMDAKIAogc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgZWtfZmxhc2hfZGF0YSA9IHsKLQkud2lkdGgJPSAyLAorCS53aWR0aAkJPSAyLAogfTsKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBla19mbGFzaF9yZXNvdXJjZSA9IHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1rYjkyMDIuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1rYjkyMDIuYwppbmRleCA0YjM5YjljLi5jYjA2NWZlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQta2I5MjAyLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWtiOTIwMi5jCkBAIC0zNywyMCArMzcsMTEgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KIAorI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFybTkyMDBfbWMuaD4KKwogI2luY2x1ZGUgImdlbmVyaWMuaCIKIAogCi0vKgotICogU2VyaWFsIHBvcnQgY29uZmlndXJhdGlvbi4KLSAqICAgIDAgLi4gMyA9IFVTQVJUMCAuLiBVU0FSVDMKLSAqICAgIDQgICAgICA9IERCR1UKLSAqLwotc3RhdGljIHN0cnVjdCBhdDkxX3VhcnRfY29uZmlnIF9faW5pdGRhdGEga2I5MjAyX3VhcnRfY29uZmlnID0gewotCS5jb25zb2xlX3R0eQk9IDAsCQkJCQkvKiB0dHlTMCAqLwotCS5ucl90dHkJCT0gMywKLQkudHR5X21hcAk9IHsgNCwgMCwgMSwgLTEsIC0xIH0JCQkvKiB0dHlTMCwgLi4uLCB0dHlTNCAqLwotfTsKLQogc3RhdGljIHZvaWQgX19pbml0IGtiOTIwMl9tYXBfaW8odm9pZCkKIHsKIAkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTAgTUh6IGNyeXN0YWwgKi8KQEAgLTU5LDggKzUwLDIwIEBACiAJLyogU2V0IHVwIHRoZSBMRURzICovCiAJYXQ5MV9pbml0X2xlZHMoQVQ5MV9QSU5fUEMxOSwgQVQ5MV9QSU5fUEMxOCk7CiAKLQkvKiBTZXR1cCB0aGUgc2VyaWFsIHBvcnRzIGFuZCBjb25zb2xlICovCi0JYXQ5MV9pbml0X3NlcmlhbCgma2I5MjAyX3VhcnRfY29uZmlnKTsKKwkvKiBEQkdVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKKworCS8qIFVTQVJUMCBvbiB0dHlTMSAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxUk05MjAwX0lEX1VTMCwgMSwgMCk7CisKKwkvKiBVU0FSVDEgb24gdHR5UzIgKFJ4ICYgVHggb25seSkgLSBJUkRBIChvcHRpb25hbCkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzEsIDIsIDApOworCisJLyogVVNBUlQzIG9uIHR0eVMzIChSeCwgVHgsIENUUywgUlRTKSAtIFJTNDg1IChvcHRpb25hbCkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzMsIDMsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMpOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IGtiOTIwMl9pbml0X2lycSh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXFpbC1hOTI2MC5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXFpbC1hOTI2MC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YjRlYzMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtcWlsLWE5MjYwLmMKQEAgLTAsMCArMSwyNTUgQEAKKy8qCisgKiBsaW51eC9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtcWlsLWE5MjYwLmMKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA1IFNBTiBQZW9wbGUKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQXRtZWwKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FsYW8tc3lzdGVtcworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpb19rZXlzLmg+CisjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9zaGR3Yy5oPgorCisjaW5jbHVkZSAiZ2VuZXJpYy5oIgorCisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19tYXBfaW8odm9pZCkKK3sKKwkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTIuMDAwIE1IeiBjcnlzdGFsICovCisJYXQ5MXNhbTkyNjBfaW5pdGlhbGl6ZSgxMjAwMDAwMCk7CisKKwkvKiBER0JVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKKworCS8qIFVTQVJUMCBvbiB0dHlTMS4gKFJ4LCBUeCwgQ1RTLCBSVFMsIERUUiwgRFNSLCBEQ0QsIFJJKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxU0FNOTI2MF9JRF9VUzAsIDEsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMKKwkJCSAgIHwgQVRNRUxfVUFSVF9EVFIgfCBBVE1FTF9VQVJUX0RTUiB8IEFUTUVMX1VBUlRfRENECisJCQkgICB8IEFUTUVMX1VBUlRfUkkpOworCisJLyogVVNBUlQxIG9uIHR0eVMyLiAoUngsIFR4LCBDVFMsIFJUUykgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVNBTTkyNjBfSURfVVMxLCAyLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTKTsKKworCS8qIFVTQVJUMiBvbiB0dHlTMy4gKFJ4LCBUeCwgQ1RTLCBSVFMpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFTQU05MjYwX0lEX1VTMiwgMywgQVRNRUxfVUFSVF9DVFMgfCBBVE1FTF9VQVJUX1JUUyk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzEgKGllLCBVU0FSVDApICovCisJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMSk7CisKK30KKworc3RhdGljIHZvaWQgX19pbml0IGVrX2luaXRfaXJxKHZvaWQpCit7CisJYXQ5MXNhbTkyNjBfaW5pdF9pbnRlcnJ1cHRzKE5VTEwpOworfQorCisKKy8qCisgKiBVU0IgSG9zdCBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91c2JoX2RhdGEgX19pbml0ZGF0YSBla191c2JoX2RhdGEgPSB7CisJLnBvcnRzCQk9IDIsCit9OworCisvKgorICogVVNCIERldmljZSBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91ZGNfZGF0YSBfX2luaXRkYXRhIGVrX3VkY19kYXRhID0geworCS52YnVzX3Bpbgk9IEFUOTFfUElOX1BDNSwKKwkucHVsbHVwX3Bpbgk9IDAsCQkvKiBwdWxsLXVwIGRyaXZlbiBieSBVREMgKi8KK307CisKKy8qCisgKiBTUEkgZGV2aWNlcy4KKyAqLworc3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyBla19zcGlfZGV2aWNlc1tdID0geworI2lmIGRlZmluZWQoQ09ORklHX1JUQ19EUlZfTTQxVDk0KQorCXsJLyogTTQxVDk0IFJUQyAqLworCQkubW9kYWxpYXMJPSAibTQxdDk0IiwKKwkJLmNoaXBfc2VsZWN0CT0gMCwKKwkJLm1heF9zcGVlZF9oegk9IDEgKiAxMDAwICogMTAwMCwKKwkJLmJ1c19udW0JPSAwLAorCX0KKyNlbmRpZgorfTsKKworLyoKKyAqIE1BQ0IgRXRoZXJuZXQgZGV2aWNlCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9ldGhfZGF0YSBfX2luaXRkYXRhIGVrX21hY2JfZGF0YSA9IHsKKwkucGh5X2lycV9waW4JPSBBVDkxX1BJTl9QQTMxLAorCS5pc19ybWlpCT0gMSwKK307CisKKy8qCisgKiBOQU5EIGZsYXNoCisgKi8KK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBfX2luaXRkYXRhIGVrX25hbmRfcGFydGl0aW9uW10gPSB7CisJeworCQkubmFtZQk9ICJVYm9vdCAmIEtlcm5lbCIsCisJCS5vZmZzZXQJPSAweDAwMDAwMDAwLAorCQkuc2l6ZQk9IDE2ICogMTAyNCAqIDEwMjQsCisJfSwKKwl7CisJCS5uYW1lCT0gIlJvb3QgRlMiLAorCQkub2Zmc2V0CT0gMHgwMTAwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9LAorCXsKKwkJLm5hbWUJPSAiRlMiLAorCQkub2Zmc2V0CT0gMHgwODgwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uICogX19pbml0IG5hbmRfcGFydGl0aW9ucyhpbnQgc2l6ZSwgaW50ICpudW1fcGFydGl0aW9ucykKK3sKKwkqbnVtX3BhcnRpdGlvbnMgPSBBUlJBWV9TSVpFKGVrX25hbmRfcGFydGl0aW9uKTsKKwlyZXR1cm4gZWtfbmFuZF9wYXJ0aXRpb247Cit9CisKK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9uYW5kX2RhdGEgX19pbml0ZGF0YSBla19uYW5kX2RhdGEgPSB7CisJLmFsZQkJPSAyMSwKKwkuY2xlCQk9IDIyLAorLy8JLmRldF9waW4JPSAuLi4gbm90IGNvbm5lY3RlZAorCS5yZHlfcGluCT0gQVQ5MV9QSU5fUEMxMywKKwkuZW5hYmxlX3Bpbgk9IEFUOTFfUElOX1BDMTQsCisJLnBhcnRpdGlvbl9pbmZvCT0gbmFuZF9wYXJ0aXRpb25zLAorI2lmIGRlZmluZWQoQ09ORklHX01URF9OQU5EX0FUOTFfQlVTV0lEVEhfMTYpCisJLmJ1c193aWR0aF8xNgk9IDEsCisjZWxzZQorCS5idXNfd2lkdGhfMTYJPSAwLAorI2VuZGlmCit9OworCisvKgorICogTUNJIChTRC9NTUMpCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9tbWNfZGF0YSBfX2luaXRkYXRhIGVrX21tY19kYXRhID0geworCS5zbG90X2IJCT0gMCwKKwkud2lyZTQJCT0gMSwKKy8vCS5kZXRfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKKy8vCS53cF9waW4JCT0gLi4uIG5vdCBjb25uZWN0ZWQKKy8vCS52Y2NfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKK307CisKKy8qCisgKiBHUElPIEJ1dHRvbnMKKyAqLworI2lmIGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU8pIHx8IGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU9fTU9EVUxFKQorc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIGVrX2J1dHRvbnNbXSA9IHsKKwl7CS8qIFVTRVIgUFVTSCBCVVRUT04gKi8KKwkJLmNvZGUJCT0gS0VZX0VOVEVSLAorCQkuZ3BpbwkJPSBBVDkxX1BJTl9QQjEwLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJCS5kZXNjCQk9ICJ1c2VyX3BiIiwKKwkJLndha2V1cAkJPSAxLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgZWtfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSBla19idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUoZWtfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBla19idXR0b25fZGV2aWNlID0geworCS5uYW1lCQk9ICJncGlvLWtleXMiLAorCS5pZAkJPSAtMSwKKwkubnVtX3Jlc291cmNlcwk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmVrX2J1dHRvbl9kYXRhLAorCX0KK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkKK3sKKwlhdDkxX3NldF9HUElPX3BlcmlwaChBVDkxX1BJTl9QQjEwLCAxKTsJLyogdXNlciBwdXNoIGJ1dHRvbiwgcHVsbCB1cCBlbmFibGVkICovCisJYXQ5MV9zZXRfZGVnbGl0Y2goQVQ5MV9QSU5fUEIxMCwgMSk7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmVrX2J1dHRvbl9kZXZpY2UpOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkIF9faW5pdCBla19hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkge30KKyNlbmRpZgorCisvKgorICogTEVEcworICovCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkIGVrX2xlZHNbXSA9IHsKKwl7CS8qIHVzZXJfbGVkIChncmVlbikgKi8KKwkJLm5hbWUJCQk9ICJ1c2VyX2xlZCIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjIxLAorCQkuYWN0aXZlX2xvdwkJPSAwLAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCisJfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGVrX2JvYXJkX2luaXQodm9pZCkKK3sKKwkvKiBTZXJpYWwgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc2VyaWFsKCk7CisJLyogVVNCIEhvc3QgKi8KKwlhdDkxX2FkZF9kZXZpY2VfdXNiaCgmZWtfdXNiaF9kYXRhKTsKKwkvKiBVU0IgRGV2aWNlICovCisJYXQ5MV9hZGRfZGV2aWNlX3VkYygmZWtfdWRjX2RhdGEpOworCS8qIFNQSSAqLworCWF0OTFfYWRkX2RldmljZV9zcGkoZWtfc3BpX2RldmljZXMsIEFSUkFZX1NJWkUoZWtfc3BpX2RldmljZXMpKTsKKwkvKiBOQU5EICovCisJYXQ5MV9hZGRfZGV2aWNlX25hbmQoJmVrX25hbmRfZGF0YSk7CisJLyogSTJDICovCisJYXQ5MV9hZGRfZGV2aWNlX2kyYyhOVUxMLCAwKTsKKwkvKiBFdGhlcm5ldCAqLworCWF0OTFfYWRkX2RldmljZV9ldGgoJmVrX21hY2JfZGF0YSk7CisJLyogTU1DICovCisJYXQ5MV9hZGRfZGV2aWNlX21tYygwLCAmZWtfbW1jX2RhdGEpOworCS8qIFB1c2ggQnV0dG9ucyAqLworCWVrX2FkZF9kZXZpY2VfYnV0dG9ucygpOworCS8qIExFRHMgKi8KKwlhdDkxX2dwaW9fbGVkcyhla19sZWRzLCBBUlJBWV9TSVpFKGVrX2xlZHMpKTsKKwkvKiBzaHV0ZG93biBjb250cm9sbGVyLCB3YWtldXAgYnV0dG9uICg1IG1zZWMgbG93KSAqLworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU0hEV19NUiwgQVQ5MV9TSERXX0NQVFdLMF8oMTApIHwgQVQ5MV9TSERXX1dLTU9ERTBfTE9XCisJCQkJfCBBVDkxX1NIRFdfUlRUV0tFTik7Cit9CisKK01BQ0hJTkVfU1RBUlQoUUlMX0E5MjYwLCAiQ0FMQU8gUUlMX0E5MjYwIikKKwkvKiBNYWludGFpbmVyOiBjYWxhby1zeXN0ZW1zICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAorCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKKwkudGltZXIJCT0gJmF0OTFzYW05MjZ4X3RpbWVyLAorCS5tYXBfaW8JCT0gZWtfbWFwX2lvLAorCS5pbml0X2lycQk9IGVrX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUJPSBla19ib2FyZF9pbml0LAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05ZzIwZWsuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05ZzIwZWsuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTYxN2MyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXNhbTlnMjBlay5jCkBAIC0wLDAgKzEsMjE4IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwNSBTQU4gUGVvcGxlCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEF0bWVsCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvYXQ3M2MyMTMuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisKKyNpbmNsdWRlICJnZW5lcmljLmgiCisKKworc3RhdGljIHZvaWQgX19pbml0IGVrX21hcF9pbyh2b2lkKQoreworCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxOC40MzIgTUh6IGNyeXN0YWwgKi8KKwlhdDkxc2FtOTI2MF9pbml0aWFsaXplKDE4NDMyMDAwKTsKKworCS8qIERHQlUgb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogVVNBUlQwIG9uIHR0eVMxLiAoUngsIFR4LCBDVFMsIFJUUywgRFRSLCBEU1IsIERDRCwgUkkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFTQU05MjYwX0lEX1VTMCwgMSwgQVRNRUxfVUFSVF9DVFMgfCBBVE1FTF9VQVJUX1JUUworCQkJICAgfCBBVE1FTF9VQVJUX0RUUiB8IEFUTUVMX1VBUlRfRFNSIHwgQVRNRUxfVUFSVF9EQ0QKKwkJCSAgIHwgQVRNRUxfVUFSVF9SSSk7CisKKwkvKiBVU0FSVDEgb24gdHR5UzIuIChSeCwgVHgsIFJUUywgQ1RTKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxU0FNOTI2MF9JRF9VUzEsIDIsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMpOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGVrX2luaXRfaXJxKHZvaWQpCit7CisJYXQ5MXNhbTkyNjBfaW5pdF9pbnRlcnJ1cHRzKE5VTEwpOworfQorCisKKy8qCisgKiBVU0IgSG9zdCBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91c2JoX2RhdGEgX19pbml0ZGF0YSBla191c2JoX2RhdGEgPSB7CisJLnBvcnRzCQk9IDIsCit9OworCisvKgorICogVVNCIERldmljZSBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91ZGNfZGF0YSBfX2luaXRkYXRhIGVrX3VkY19kYXRhID0geworCS52YnVzX3Bpbgk9IEFUOTFfUElOX1BDNSwKKwkucHVsbHVwX3Bpbgk9IDAsCQkvKiBwdWxsLXVwIGRyaXZlbiBieSBVREMgKi8KK307CisKKworLyoKKyAqIFNQSSBkZXZpY2VzLgorICovCitzdGF0aWMgc3RydWN0IHNwaV9ib2FyZF9pbmZvIGVrX3NwaV9kZXZpY2VzW10gPSB7CisjaWYgIWRlZmluZWQoQ09ORklHX01NQ19BVDkxKQorCXsJLyogRGF0YUZsYXNoIGNoaXAgKi8KKwkJLm1vZGFsaWFzCT0gIm10ZF9kYXRhZmxhc2giLAorCQkuY2hpcF9zZWxlY3QJPSAxLAorCQkubWF4X3NwZWVkX2h6CT0gMTUgKiAxMDAwICogMTAwMCwKKwkJLmJ1c19udW0JPSAwLAorCX0sCisjaWYgZGVmaW5lZChDT05GSUdfTVREX0FUOTFfREFUQUZMQVNIX0NBUkQpCisJewkvKiBEYXRhRmxhc2ggY2FyZCAqLworCQkubW9kYWxpYXMJPSAibXRkX2RhdGFmbGFzaCIsCisJCS5jaGlwX3NlbGVjdAk9IDAsCisJCS5tYXhfc3BlZWRfaHoJPSAxNSAqIDEwMDAgKiAxMDAwLAorCQkuYnVzX251bQk9IDAsCisJfSwKKyNlbmRpZgorI2VuZGlmCit9OworCisKKy8qCisgKiBNQUNCIEV0aGVybmV0IGRldmljZQorICovCitzdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSBla19tYWNiX2RhdGEgPSB7CisJLnBoeV9pcnFfcGluCT0gQVQ5MV9QSU5fUEE3LAorCS5pc19ybWlpCT0gMSwKK307CisKKworLyoKKyAqIE5BTkQgZmxhc2gKKyAqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIF9faW5pdGRhdGEgZWtfbmFuZF9wYXJ0aXRpb25bXSA9IHsKKwl7CisJCS5uYW1lICAgPSAiQm9vdHN0cmFwIiwKKwkJLm9mZnNldCA9IDAsCisJCS5zaXplICAgPSA0ICogMTAyNCAqIDEwMjQsCisJfSwKKwl7CisJCS5uYW1lCT0gIlBhcnRpdGlvbiAxIiwKKwkJLm9mZnNldAk9IDQgKiAxMDI0ICogMTAyNCwKKwkJLnNpemUJPSA2MCAqIDEwMjQgKiAxMDI0LAorCX0sCisJeworCQkubmFtZQk9ICJQYXJ0aXRpb24gMiIsCisJCS5vZmZzZXQJPSA2NCAqIDEwMjQgKiAxMDI0LAorCQkuc2l6ZQk9IE1URFBBUlRfU0laX0ZVTEwsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiAqIF9faW5pdCBuYW5kX3BhcnRpdGlvbnMoaW50IHNpemUsIGludCAqbnVtX3BhcnRpdGlvbnMpCit7CisJKm51bV9wYXJ0aXRpb25zID0gQVJSQVlfU0laRShla19uYW5kX3BhcnRpdGlvbik7CisJcmV0dXJuIGVrX25hbmRfcGFydGl0aW9uOworfQorCisvKiBkZXRfcGluIGlzIG5vdCBjb25uZWN0ZWQgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9uYW5kX2RhdGEgX19pbml0ZGF0YSBla19uYW5kX2RhdGEgPSB7CisJLmFsZQkJPSAyMSwKKwkuY2xlCQk9IDIyLAorCS5yZHlfcGluCT0gQVQ5MV9QSU5fUEMxMywKKwkuZW5hYmxlX3Bpbgk9IEFUOTFfUElOX1BDMTQsCisJLnBhcnRpdGlvbl9pbmZvCT0gbmFuZF9wYXJ0aXRpb25zLAorI2lmIGRlZmluZWQoQ09ORklHX01URF9OQU5EX0FUOTFfQlVTV0lEVEhfMTYpCisJLmJ1c193aWR0aF8xNgk9IDEsCisjZWxzZQorCS5idXNfd2lkdGhfMTYJPSAwLAorI2VuZGlmCit9OworCisKKy8qCisgKiBNQ0kgKFNEL01NQykKKyAqIGRldF9waW4sIHdwX3BpbiBhbmQgdmNjX3BpbiBhcmUgbm90IGNvbm5lY3RlZAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfbW1jX2RhdGEgX19pbml0ZGF0YSBla19tbWNfZGF0YSA9IHsKKwkuc2xvdF9iCQk9IDEsCisJLndpcmU0CQk9IDEsCit9OworCisKKy8qCisgKiBMRURzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19sZWQgZWtfbGVkc1tdID0geworCXsJLyogImJvdHRvbSIgbGVkLCBncmVlbiwgdXNlcmxlZDEgdG8gYmUgZGVmaW5lZCAqLworCQkubmFtZQkJCT0gImRzNSIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQTYsCisJCS5hY3RpdmVfbG93CQk9IDEsCisJCS5kZWZhdWx0X3RyaWdnZXIJPSAibm9uZSIsCisJfSwKKwl7CS8qICJwb3dlciIgbGVkLCB5ZWxsb3cgKi8KKwkJLm5hbWUJCQk9ICJkczEiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEE5LAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCisJfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGVrX2JvYXJkX2luaXQodm9pZCkKK3sKKwkvKiBTZXJpYWwgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc2VyaWFsKCk7CisJLyogVVNCIEhvc3QgKi8KKwlhdDkxX2FkZF9kZXZpY2VfdXNiaCgmZWtfdXNiaF9kYXRhKTsKKwkvKiBVU0IgRGV2aWNlICovCisJYXQ5MV9hZGRfZGV2aWNlX3VkYygmZWtfdWRjX2RhdGEpOworCS8qIFNQSSAqLworCWF0OTFfYWRkX2RldmljZV9zcGkoZWtfc3BpX2RldmljZXMsIEFSUkFZX1NJWkUoZWtfc3BpX2RldmljZXMpKTsKKwkvKiBOQU5EICovCisJYXQ5MV9hZGRfZGV2aWNlX25hbmQoJmVrX25hbmRfZGF0YSk7CisJLyogRXRoZXJuZXQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfZXRoKCZla19tYWNiX2RhdGEpOworCS8qIE1NQyAqLworCWF0OTFfYWRkX2RldmljZV9tbWMoMCwgJmVrX21tY19kYXRhKTsKKwkvKiBJMkMgKi8KKwlhdDkxX2FkZF9kZXZpY2VfaTJjKE5VTEwsIDApOworCS8qIExFRHMgKi8KKwlhdDkxX2dwaW9fbGVkcyhla19sZWRzLCBBUlJBWV9TSVpFKGVrX2xlZHMpKTsKK30KKworTUFDSElORV9TVEFSVChBVDkxU0FNOUcyMEVLLCAiQXRtZWwgQVQ5MVNBTTlHMjAtRUsiKQorCS8qIE1haW50YWluZXI6IEF0bWVsICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAorCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKKwkudGltZXIJCT0gJmF0OTFzYW05MjZ4X3RpbWVyLAorCS5tYXBfaW8JCT0gZWtfbWFwX2lvLAorCS5pbml0X2lycQk9IGVrX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUJPSBla19ib2FyZF9pbml0LAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05cmxlay5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXNhbTlybGVrLmMKaW5kZXggZmZjMDU5Ny4uYjZhNzBmYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXNhbTlybGVrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXNhbTlybGVrLmMKQEAgLTU2LDYgKzU2LDE0IEBACiAKIAogLyoKKyAqIFVTQiBIUyBEZXZpY2UgcG9ydAorICovCitzdGF0aWMgc3RydWN0IHVzYmFfcGxhdGZvcm1fZGF0YSBfX2luaXRkYXRhIGVrX3VzYmFfdWRjX2RhdGEgPSB7CisJLnZidXNfcGluCT0gQVQ5MV9QSU5fUEE4LAorfTsKKworCisvKgogICogTUNJIChTRC9NTUMpCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgYXQ5MV9tbWNfZGF0YSBfX2luaXRkYXRhIGVrX21tY19kYXRhID0gewpAQCAtMTc1LDYgKzE4Myw4IEBACiB7CiAJLyogU2VyaWFsICovCiAJYXQ5MV9hZGRfZGV2aWNlX3NlcmlhbCgpOworCS8qIFVTQiBIUyAqLworCWF0OTFfYWRkX2RldmljZV91c2JhKCZla191c2JhX3VkY19kYXRhKTsKIAkvKiBJMkMgKi8KIAlhdDkxX2FkZF9kZXZpY2VfaTJjKE5VTEwsIDApOwogCS8qIE5BTkQgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjAuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzdhZWRmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXVzYi1hOTI2MC5jCkBAIC0wLDAgKzEsMjE1IEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXVzYi1hOTI2MC5jCisgKgorICogIENvcHlyaWdodCAoQykgMjAwNSBTQU4gUGVvcGxlCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2IEF0bWVsCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IENhbGFvLXN5c3RlbXMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFfc2hkd2MuaD4KKworI2luY2x1ZGUgImdlbmVyaWMuaCIKKworCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfbWFwX2lvKHZvaWQpCit7CisJLyogSW5pdGlhbGl6ZSBwcm9jZXNzb3I6IDEyLjAwMCBNSHogY3J5c3RhbCAqLworCWF0OTFzYW05MjYwX2luaXRpYWxpemUoMTIwMDAwMDApOworCisJLyogREdCVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfaW5pdF9pcnEodm9pZCkKK3sKKwlhdDkxc2FtOTI2MF9pbml0X2ludGVycnVwdHMoTlVMTCk7Cit9CisKKworLyoKKyAqIFVTQiBIb3N0IHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VzYmhfZGF0YSBfX2luaXRkYXRhIGVrX3VzYmhfZGF0YSA9IHsKKwkucG9ydHMJCT0gMiwKK307CisKKy8qCisgKiBVU0IgRGV2aWNlIHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VkY19kYXRhIF9faW5pdGRhdGEgZWtfdWRjX2RhdGEgPSB7CisJLnZidXNfcGluCT0gQVQ5MV9QSU5fUEM1LAorCS5wdWxsdXBfcGluCT0gMCwJCS8qIHB1bGwtdXAgZHJpdmVuIGJ5IFVEQyAqLworfTsKKworLyoKKyAqIE1BQ0IgRXRoZXJuZXQgZGV2aWNlCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9ldGhfZGF0YSBfX2luaXRkYXRhIGVrX21hY2JfZGF0YSA9IHsKKwkucGh5X2lycV9waW4JPSBBVDkxX1BJTl9QQTMxLAorCS5pc19ybWlpCT0gMSwKK307CisKKy8qCisgKiBOQU5EIGZsYXNoCisgKi8KK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBfX2luaXRkYXRhIGVrX25hbmRfcGFydGl0aW9uW10gPSB7CisJeworCQkubmFtZQk9ICJVYm9vdCAmIEtlcm5lbCIsCisJCS5vZmZzZXQJPSAweDAwMDAwMDAwLAorCQkuc2l6ZQk9IDE2ICogMTAyNCAqIDEwMjQsCisJfSwKKwl7CisJCS5uYW1lCT0gIlJvb3QgRlMiLAorCQkub2Zmc2V0CT0gMHgwMTAwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9LAorCXsKKwkJLm5hbWUJPSAiRlMiLAorCQkub2Zmc2V0CT0gMHgwODgwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gKiBfX2luaXQgbmFuZF9wYXJ0aXRpb25zKGludCBzaXplLCBpbnQgKm51bV9wYXJ0aXRpb25zKQoreworCSpudW1fcGFydGl0aW9ucyA9IEFSUkFZX1NJWkUoZWtfbmFuZF9wYXJ0aXRpb24pOworCXJldHVybiBla19uYW5kX3BhcnRpdGlvbjsKK30KKworc3RhdGljIHN0cnVjdCBhdDkxX25hbmRfZGF0YSBfX2luaXRkYXRhIGVrX25hbmRfZGF0YSA9IHsKKwkuYWxlCQk9IDIxLAorCS5jbGUJCT0gMjIsCisvLwkuZGV0X3Bpbgk9IC4uLiBub3QgY29ubmVjdGVkCisJLnJkeV9waW4JPSBBVDkxX1BJTl9QQzEzLAorCS5lbmFibGVfcGluCT0gQVQ5MV9QSU5fUEMxNCwKKwkucGFydGl0aW9uX2luZm8JPSBuYW5kX3BhcnRpdGlvbnMsCisjaWYgZGVmaW5lZChDT05GSUdfTVREX05BTkRfQVQ5MV9CVVNXSURUSF8xNikKKwkuYnVzX3dpZHRoXzE2CT0gMSwKKyNlbHNlCisJLmJ1c193aWR0aF8xNgk9IDAsCisjZW5kaWYKK307CisKKy8qCisgKiBHUElPIEJ1dHRvbnMKKyAqLworCisjaWYgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJTykgfHwgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJT19NT0RVTEUpCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24gZWtfYnV0dG9uc1tdID0geworCXsJLyogVVNFUiBQVVNIIEJVVFRPTiAqLworCQkuY29kZQkJPSBLRVlfRU5URVIsCisJCS5ncGlvCQk9IEFUOTFfUElOX1BCMTAsCisJCS5hY3RpdmVfbG93CT0gMSwKKwkJLmRlc2MJCT0gInVzZXJfcGIiLAorCQkud2FrZXVwCQk9IDEsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBla19idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IGVrX2J1dHRvbnMsCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShla19idXR0b25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGVrX2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZWtfYnV0dG9uX2RhdGEsCisJfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGVrX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKQoreworCWF0OTFfc2V0X0dQSU9fcGVyaXBoKEFUOTFfUElOX1BCMTAsIDEpOwkvKiB1c2VyIHB1c2ggYnV0dG9uLCBwdWxsIHVwIGVuYWJsZWQgKi8KKwlhdDkxX3NldF9kZWdsaXRjaChBVDkxX1BJTl9QQjEwLCAxKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZWtfYnV0dG9uX2RldmljZSk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgX19pbml0IGVrX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKSB7fQorI2VuZGlmCisKKy8qCisgKiBMRURzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19sZWQgZWtfbGVkc1tdID0geworCXsJLyogdXNlcl9sZWQgKGdyZWVuKSAqLworCQkubmFtZQkJCT0gInVzZXJfbGVkIiwKKwkJLmdwaW8JCQk9IEFUOTFfUElOX1BCMjEsCisJCS5hY3RpdmVfbG93CQk9IDAsCisJCS5kZWZhdWx0X3RyaWdnZXIJPSAiaGVhcnRiZWF0IiwKKwl9Cit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfYm9hcmRfaW5pdCh2b2lkKQoreworCS8qIFNlcmlhbCAqLworCWF0OTFfYWRkX2RldmljZV9zZXJpYWwoKTsKKwkvKiBVU0IgSG9zdCAqLworCWF0OTFfYWRkX2RldmljZV91c2JoKCZla191c2JoX2RhdGEpOworCS8qIFVTQiBEZXZpY2UgKi8KKwlhdDkxX2FkZF9kZXZpY2VfdWRjKCZla191ZGNfZGF0YSk7CisJLyogTkFORCAqLworCWF0OTFfYWRkX2RldmljZV9uYW5kKCZla19uYW5kX2RhdGEpOworCS8qIEkyQyAqLworCWF0OTFfYWRkX2RldmljZV9pMmMoTlVMTCwgMCk7CisJLyogRXRoZXJuZXQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfZXRoKCZla19tYWNiX2RhdGEpOworCS8qIFB1c2ggQnV0dG9ucyAqLworCWVrX2FkZF9kZXZpY2VfYnV0dG9ucygpOworCS8qIExFRHMgKi8KKwlhdDkxX2dwaW9fbGVkcyhla19sZWRzLCBBUlJBWV9TSVpFKGVrX2xlZHMpKTsKKwkvKiBzaHV0ZG93biBjb250cm9sbGVyLCB3YWtldXAgYnV0dG9uICg1IG1zZWMgbG93KSAqLworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU0hEV19NUiwgQVQ5MV9TSERXX0NQVFdLMF8oMTApIHwgQVQ5MV9TSERXX1dLTU9ERTBfTE9XCisJCQkJfCBBVDkxX1NIRFdfUlRUV0tFTik7Cit9CisKK01BQ0hJTkVfU1RBUlQoVVNCX0E5MjYwLCAiQ0FMQU8gVVNCX0E5MjYwIikKKwkvKiBNYWludGFpbmVyOiBjYWxhby1zeXN0ZW1zICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAorCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKKwkudGltZXIJCT0gJmF0OTFzYW05MjZ4X3RpbWVyLAorCS5tYXBfaW8JCT0gZWtfbWFwX2lvLAorCS5pbml0X2lycQk9IGVrX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUJPSBla19ib2FyZF9pbml0LAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjMuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTgwMGQzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXVzYi1hOTI2My5jCkBAIC0wLDAgKzEsMjMwIEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXVzYi1hOTI2My5jCisgKgorICogIENvcHlyaWdodCAoQykgMjAwNSBTQU4gUGVvcGxlCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEF0bWVsIENvcnBvcmF0aW9uLgorICogIENvcHlyaWdodCAoQykgMjAwNyBDYWxhby1zeXN0ZW1zCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdDkxX3NoZHdjLmg+CisKKyNpbmNsdWRlICJnZW5lcmljLmgiCisKKworc3RhdGljIHZvaWQgX19pbml0IGVrX21hcF9pbyh2b2lkKQoreworCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxMi4wMCBNSHogY3J5c3RhbCAqLworCWF0OTFzYW05MjYzX2luaXRpYWxpemUoMTIwMDAwMDApOworCisJLyogREdCVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfaW5pdF9pcnEodm9pZCkKK3sKKwlhdDkxc2FtOTI2M19pbml0X2ludGVycnVwdHMoTlVMTCk7Cit9CisKKworLyoKKyAqIFVTQiBIb3N0IHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VzYmhfZGF0YSBfX2luaXRkYXRhIGVrX3VzYmhfZGF0YSA9IHsKKwkucG9ydHMJCT0gMiwKK307CisKKy8qCisgKiBVU0IgRGV2aWNlIHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VkY19kYXRhIF9faW5pdGRhdGEgZWtfdWRjX2RhdGEgPSB7CisJLnZidXNfcGluCT0gQVQ5MV9QSU5fUEIxMSwKKwkucHVsbHVwX3Bpbgk9IDAsCQkvKiBwdWxsLXVwIGRyaXZlbiBieSBVREMgKi8KK307CisKKy8qCisgKiBTUEkgZGV2aWNlcy4KKyAqLworc3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyBla19zcGlfZGV2aWNlc1tdID0geworI2lmICFkZWZpbmVkKENPTkZJR19NTUNfQVQ5MSkKKwl7CS8qIERhdGFGbGFzaCBjaGlwICovCisJCS5tb2RhbGlhcwk9ICJtdGRfZGF0YWZsYXNoIiwKKwkJLmNoaXBfc2VsZWN0CT0gMCwKKwkJLm1heF9zcGVlZF9oegk9IDE1ICogMTAwMCAqIDEwMDAsCisJCS5idXNfbnVtCT0gMCwKKwl9CisjZW5kaWYKK307CisKKy8qCisgKiBNQUNCIEV0aGVybmV0IGRldmljZQorICovCitzdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSBla19tYWNiX2RhdGEgPSB7CisJLnBoeV9pcnFfcGluCT0gQVQ5MV9QSU5fUEUzMSwKKwkuaXNfcm1paQk9IDEsCit9OworCisvKgorICogTkFORCBmbGFzaAorICovCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gX19pbml0ZGF0YSBla19uYW5kX3BhcnRpdGlvbltdID0geworCXsKKwkJLm5hbWUJPSAiTGludXggS2VybmVsIiwKKwkJLm9mZnNldAk9IDB4MDAwMDAwMDAsCisJCS5zaXplCT0gMTYgKiAxMDI0ICogMTAyNCwKKwl9LAorCXsKKwkJLm5hbWUJPSAiUm9vdCBGUyIsCisJCS5vZmZzZXQJPSAweDAxMDAwMDAwLAorCQkuc2l6ZQk9IDEyMCAqIDEwMjQgKiAxMDI0LAorCX0sCisJeworCQkubmFtZQk9ICJGUyIsCisJCS5vZmZzZXQJPSAweDA4ODAwMDAwLAorCQkuc2l6ZQk9IDEyMCAqIDEwMjQgKiAxMDI0LAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiAqIF9faW5pdCBuYW5kX3BhcnRpdGlvbnMoaW50IHNpemUsIGludCAqbnVtX3BhcnRpdGlvbnMpCit7CisJKm51bV9wYXJ0aXRpb25zID0gQVJSQVlfU0laRShla19uYW5kX3BhcnRpdGlvbik7CisJcmV0dXJuIGVrX25hbmRfcGFydGl0aW9uOworfQorCitzdGF0aWMgc3RydWN0IGF0OTFfbmFuZF9kYXRhIF9faW5pdGRhdGEgZWtfbmFuZF9kYXRhID0geworCS5hbGUJCT0gMjEsCisJLmNsZQkJPSAyMiwKKy8vCS5kZXRfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKKwkucmR5X3Bpbgk9IEFUOTFfUElOX1BBMjIsCisJLmVuYWJsZV9waW4JPSBBVDkxX1BJTl9QRDE1LAorCS5wYXJ0aXRpb25faW5mbwk9IG5hbmRfcGFydGl0aW9ucywKKyNpZiBkZWZpbmVkKENPTkZJR19NVERfTkFORF9BVDkxX0JVU1dJRFRIXzE2KQorCS5idXNfd2lkdGhfMTYJPSAxLAorI2Vsc2UKKwkuYnVzX3dpZHRoXzE2CT0gMCwKKyNlbmRpZgorfTsKKworLyoKKyAqIEdQSU8gQnV0dG9ucworICovCisjaWYgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJTykgfHwgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJT19NT0RVTEUpCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24gZWtfYnV0dG9uc1tdID0geworCXsJLyogVVNFUiBQVVNIIEJVVFRPTiAqLworCQkuY29kZQkJPSBLRVlfRU5URVIsCisJCS5ncGlvCQk9IEFUOTFfUElOX1BCMTAsCisJCS5hY3RpdmVfbG93CT0gMSwKKwkJLmRlc2MJCT0gInVzZXJfcGIiLAorCQkud2FrZXVwCQk9IDEsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBla19idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IGVrX2J1dHRvbnMsCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShla19idXR0b25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGVrX2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZWtfYnV0dG9uX2RhdGEsCisJfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGVrX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKQoreworCWF0OTFfc2V0X0dQSU9fcGVyaXBoKEFUOTFfUElOX1BCMTAsIDEpOwkvKiB1c2VyIHB1c2ggYnV0dG9uLCBwdWxsIHVwIGVuYWJsZWQgKi8KKwlhdDkxX3NldF9kZWdsaXRjaChBVDkxX1BJTl9QQjEwLCAxKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZWtfYnV0dG9uX2RldmljZSk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgX19pbml0IGVrX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKSB7fQorI2VuZGlmCisKKy8qCisgKiBMRURzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19sZWQgZWtfbGVkc1tdID0geworCXsJLyogdXNlcl9sZWQgKGdyZWVuKSAqLworCQkubmFtZQkJCT0gInVzZXJfbGVkIiwKKwkJLmdwaW8JCQk9IEFUOTFfUElOX1BCMjEsCisJCS5hY3RpdmVfbG93CQk9IDEsCisJCS5kZWZhdWx0X3RyaWdnZXIJPSAiaGVhcnRiZWF0IiwKKwl9Cit9OworCisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19ib2FyZF9pbml0KHZvaWQpCit7CisJLyogU2VyaWFsICovCisJYXQ5MV9hZGRfZGV2aWNlX3NlcmlhbCgpOworCS8qIFVTQiBIb3N0ICovCisJYXQ5MV9hZGRfZGV2aWNlX3VzYmgoJmVrX3VzYmhfZGF0YSk7CisJLyogVVNCIERldmljZSAqLworCWF0OTFfYWRkX2RldmljZV91ZGMoJmVrX3VkY19kYXRhKTsKKwkvKiBTUEkgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc3BpKGVrX3NwaV9kZXZpY2VzLCBBUlJBWV9TSVpFKGVrX3NwaV9kZXZpY2VzKSk7CisJLyogRXRoZXJuZXQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfZXRoKCZla19tYWNiX2RhdGEpOworCS8qIE5BTkQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfbmFuZCgmZWtfbmFuZF9kYXRhKTsKKwkvKiBJMkMgKi8KKwlhdDkxX2FkZF9kZXZpY2VfaTJjKE5VTEwsIDApOworCS8qIFB1c2ggQnV0dG9ucyAqLworCWVrX2FkZF9kZXZpY2VfYnV0dG9ucygpOworCS8qIExFRHMgKi8KKwlhdDkxX2dwaW9fbGVkcyhla19sZWRzLCBBUlJBWV9TSVpFKGVrX2xlZHMpKTsKKwkvKiBzaHV0ZG93biBjb250cm9sbGVyLCB3YWtldXAgYnV0dG9uICg1IG1zZWMgbG93KSAqLworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU0hEV19NUiwgQVQ5MV9TSERXX0NQVFdLMF8oMTApIHwgQVQ5MV9TSERXX1dLTU9ERTBfTE9XCisJCQkJfCBBVDkxX1NIRFdfUlRUV0tFTik7Cit9CisKK01BQ0hJTkVfU1RBUlQoVVNCX0E5MjYzLCAiQ0FMQU8gVVNCX0E5MjYzIikKKwkvKiBNYWludGFpbmVyOiBjYWxhby1zeXN0ZW1zICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAorCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKKwkudGltZXIJCT0gJmF0OTFzYW05MjZ4X3RpbWVyLAorCS5tYXBfaW8JCT0gZWtfbWFwX2lvLAorCS5pbml0X2lycQk9IGVrX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUJPSBla19ib2FyZF9pbml0LAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC15bC05MjAwLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQteWwtOTIwMC5jCmluZGV4IGI1NzE3MTAuLjcwNzkwNTAgMTAwNzU1Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC15bC05MjAwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXlsLTkyMDAuYwpAQCAtMSwxMSArMSwxMCBAQAogLyoKICAqIGxpbnV4L2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC15bC05MjAwLmMKICAqCi0gKiBBZGFwdGVkIGZyb206Ci0gKnZhcmlvdXMgYm9hcmQgZmlsZXMgaW4KLSAqIC9hcmNoL2FybS9tYWNoLWF0OTEKLSAqIG1vZGlmaWNhdGlvbnMgIHRvIGNvbnZlcnQgdG8gIFlMLTkyMDAgcGxhdGZvcm0KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcgUy5CaXJ0bGVzCisgKiBBZGFwdGVkIGZyb20gdmFyaW91cyBib2FyZCBmaWxlcyBpbiBhcmNoL2FybS9tYWNoLWF0OTEKKyAqCisgKiBNb2RpZmljYXRpb25zIGZvciBZTC05MjAwIHBsYXRmb3JtOgorICogIENvcHlyaWdodCAoQykgMjAwNyBTLiBCaXJ0bGVzCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC0yNiwxMyArMjUsMTQgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KLS8qI2luY2x1ZGUgPGxpbnV4L2Nhbl9idXMvY2FuZGF0YS5oPiovCiAjaW5jbHVkZSA8bGludXgvc3BpL2Fkczc4NDYuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CiAKLS8qI2luY2x1ZGUgPHNvdW5kL2dwaW9fc291bmRlci5oPiovCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KQEAgLTQ1LDE3OSArNDUsMTA4IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MXJtOTIwMF9tYy5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgotI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CiAKICNpbmNsdWRlICJnZW5lcmljLmgiCi0jaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9waW8uaD4KIAotI2RlZmluZSBZTF85MjAwX0ZMQVNIX0JBU0UJQVQ5MV9DSElQU0VMRUNUXzAKLSNkZWZpbmUgWUxfOTIwMF9GTEFTSF9TSVpFCTB4ODAwMDAwCiAKLS8qCi0gKiBTZXJpYWwgcG9ydCBjb25maWd1cmF0aW9uLgotICogICAgMCAuLiAzID0gVVNBUlQwIC4uIFVTQVJUMwotICogICAgNCAgICAgID0gREJHVQotICphdG1lbF91c2FydC4wOiB0dHlTMCBhdCBNTUlPIDB4ZmVmZmYyMDAgKGlycSA9IDEpIGlzIGEgQVRNRUxfU0VSSUFMCi0gKmF0bWVsX3VzYXJ0LjE6IHR0eVMxIGF0IE1NSU8gMHhmZmZjMDAwMCAoaXJxID0gNikgaXMgYSBBVE1FTF9TRVJJQUwKLSAqYXRtZWxfdXNhcnQuMjogdHR5UzIgYXQgTU1JTyAweGZmZmM0MDAwIChpcnEgPSA3KSBpcyBhIEFUTUVMX1NFUklBTAotICphdG1lbF91c2FydC4zOiB0dHlTMyBhdCBNTUlPIDB4ZmZmYzgwMDAgKGlycSA9IDgpIGlzIGEgQVRNRUxfU0VSSUFMCi0gKmF0bWVsX3VzYXJ0LjQ6IHR0eVM0IGF0IE1NSU8gMHhmZmZjYzAwMCAoaXJxID0gOSkgaXMgYSBBVE1FTF9TRVJJQUwKLSAqIG9uIHRoZSBZTC05MjAwIHdlIGFyZSBzaXR0aW5nIGF0IHRoZSBmb2xsb3dpbmcKLSAqdHR5UzAgYXQgTU1JTyAweGZlZmZmMjAwIChpcnEgPSAxKSBpcyBhIEFUOTFfU0VSSUFMCi0gKnR0eVMxIGF0IE1NSU8gMHhmZWZjNDAwMCAoaXJxID0gNykgaXMgYSBBVDkxX1NFUklBTAotICovCi0KLS8qIGV4dGVybiB2b2lkIF9faW5pdCB5bF85MjAwX2FkZF9kZXZpY2Vfc291bmRlcihzdHJ1Y3QgZ3Bpb19zb3VuZGVyICpzb3VuZGVycywgaW50IG5yKTsqLwotCi1zdGF0aWMgc3RydWN0IGF0OTFfdWFydF9jb25maWcgX19pbml0ZGF0YSB5bF85MjAwX3VhcnRfY29uZmlnID0gewotCS5jb25zb2xlX3R0eQk9IDAsCQkJCS8qIHR0eVMwICovCi0JLm5yX3R0eQkJPSAzLAotCS50dHlfbWFwCT0geyA0LCAxLCAwLCAtMSwgLTEgfQkJLyogdHR5UzAsIC4uLiwgdHR5UzQgKi8KLX07Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCB5bF85MjAwX21hcF9pbyh2b2lkKQorc3RhdGljIHZvaWQgX19pbml0IHlsOTIwMF9tYXBfaW8odm9pZCkKIHsKIAkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTguNDMyIE1IeiBjcnlzdGFsICovCi0JLypBbHNvIGluaXRpYWxpc2VzIHJlZ2lzdGVyIGNsb2NrcyAmIGdwaW8qLwotCWF0OTFybTkyMDBfaW5pdGlhbGl6ZSgxODQzMjAwMCwgQVQ5MVJNOTIwMF9QUUZQKTsgLyp3ZSBoYXZlIGEgMyBiYW5rIHN5c3RlbSovCisJYXQ5MXJtOTIwMF9pbml0aWFsaXplKDE4NDMyMDAwLCBBVDkxUk05MjAwX1BRRlApOwogCi0JLyogU2V0dXAgdGhlIHNlcmlhbCBwb3J0cyBhbmQgY29uc29sZSAqLwotCWF0OTFfaW5pdF9zZXJpYWwoJnlsXzkyMDBfdWFydF9jb25maWcpOworCS8qIFNldHVwIHRoZSBMRURzIEQyPVBCMTcgKHRpbWVyKSwgRDM9UEIxNiAoY3B1KSAqLworCWF0OTFfaW5pdF9sZWRzKEFUOTFfUElOX1BCMTYsIEFUOTFfUElOX1BCMTcpOwogCi0JLyogU2V0dXAgdGhlIExFRHMgRDI9UEIxNyxEMz1QQjE2ICovCi0JYXQ5MV9pbml0X2xlZHMoQVQ5MV9QSU5fUEIxNixBVDkxX1BJTl9QQjE3KTsgLypjcHUtbGVkLHRpbWVyLWxlZCovCisJLyogREJHVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBVU0FSVDEgb24gdHR5UzEuIChSeCwgVHgsIENUUywgUlRTLCBEVFIsIERTUiwgRENELCBSSSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzEsIDEsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMKKwkJCXwgQVRNRUxfVUFSVF9EVFIgfCBBVE1FTF9VQVJUX0RTUiB8IEFUTUVMX1VBUlRfRENECisJCQl8IEFUTUVMX1VBUlRfUkkpOworCisJLyogVVNBUlQwIG9uIHR0eVMyLiAoUnggJiBUeCBvbmx5IHRvIEpQMykgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzAsIDIsIDApOworCisJLyogVVNBUlQzIG9uIHR0eVMzLiAoUngsIFR4LCBSVFMgLSBSUzQ4NSBpbnRlcmZhY2UpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMzLCAzLCBBVE1FTF9VQVJUX1JUUyk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOwogfQogCi1zdGF0aWMgdm9pZCBfX2luaXQgeWxfOTIwMF9pbml0X2lycSh2b2lkKQorc3RhdGljIHZvaWQgX19pbml0IHlsOTIwMF9pbml0X2lycSh2b2lkKQogewogCWF0OTFybTkyMDBfaW5pdF9pbnRlcnJ1cHRzKE5VTEwpOwogfQogCi1zdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSB5bF85MjAwX2V0aF9kYXRhID0gewotCS5waHlfaXJxX3Bpbgk9IEFUOTFfUElOX1BCMjgsCi0JLmlzX3JtaWkJPSAxLAotfTsKIAotc3RhdGljIHN0cnVjdCBhdDkxX3VzYmhfZGF0YSBfX2luaXRkYXRhIHlsXzkyMDBfdXNiaF9kYXRhID0gewotCS5wb3J0cwkJPSAxLCAgLyogdGhpcyBzaG91bGQgYmUgMSBub3QgMiBmb3IgdGhlIFlsOTIwMCovCi19OwotCi1zdGF0aWMgc3RydWN0IGF0OTFfdWRjX2RhdGEgX19pbml0ZGF0YSB5bF85MjAwX3VkY19kYXRhID0gewotLypvbiBzaGVldCA3IFNjaGVtaXRpYyByZXYgMS4wKi8KLQkucHVsbHVwX3Bpbgk9IEFUOTFfUElOX1BDNCwKLQkudmJ1c19waW49ICBBVDkxX1BJTl9QQzUsCi0JLnB1bGx1cF9hY3RpdmVfbG93ID0gMSwgLypBQ1RJVkUgTE9XISEgZHVlIHRvIFBOUCB0cmFuc2lzdG9yIG9uIHBhZ2UgNyovCi0KLX07CiAvKgotc3RhdGljIHN0cnVjdCBhdDkxX2NmX2RhdGEgX19pbml0ZGF0YSB5bF85MjAwX2NmX2RhdGEgPSB7Ci1UT0RPIFMuQklSVExFUwotCS5kZXRfcGluCT0gQVQ5MV9QSU5feHh4LAotCS5yc3RfcGluCT0gQVQ5MV9QSU5feHh4LAotCS5pcnFfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKLQkudmNjX3Bpbgk9IC4uLiBhbHdheXMgcG93ZXJlZAorICogTEVEcworICovCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkIHlsOTIwMF9sZWRzW10gPSB7CisJewkvKiBEMiAqLworCQkubmFtZQkJCT0gImxlZDIiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEIxNywKKwkJLmFjdGl2ZV9sb3cJCT0gMSwKKwkJLmRlZmF1bHRfdHJpZ2dlcgk9ICJ0aW1lciIsCisJfSwKKwl7CS8qIEQzICovCisJCS5uYW1lCQkJPSAibGVkMyIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjE2LAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCisJfSwKKwl7CS8qIEQ0ICovCisJCS5uYW1lCQkJPSAibGVkNCIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjE1LAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCX0sCisJewkvKiBENSAqLworCQkubmFtZQkJCT0gImxlZDUiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEI4LAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCX0KK307CisKKy8qCisgKiBFdGhlcm5ldAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSB5bDkyMDBfZXRoX2RhdGEgPSB7CisJLnBoeV9pcnFfcGluCQk9IEFUOTFfUElOX1BCMjgsCisJLmlzX3JtaWkJCT0gMSwKK307CisKKy8qCisgKiBVU0IgSG9zdAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfdXNiaF9kYXRhIF9faW5pdGRhdGEgeWw5MjAwX3VzYmhfZGF0YSA9IHsKKwkucG9ydHMJCQk9IDEsCS8qIFBRRlAgdmVyc2lvbiBvZiBBVDkxUk05MjAwICovCit9OworCisvKgorICogVVNCIERldmljZQorICovCitzdGF0aWMgc3RydWN0IGF0OTFfdWRjX2RhdGEgX19pbml0ZGF0YSB5bDkyMDBfdWRjX2RhdGEgPSB7CisJLnB1bGx1cF9waW4JCT0gQVQ5MV9QSU5fUEM0LAorCS52YnVzX3BpbgkJPSBBVDkxX1BJTl9QQzUsCisJLnB1bGx1cF9hY3RpdmVfbG93CT0gMSwJLyogQWN0aXZlIExvdyBkdWUgdG8gUE5QIHRyYW5zaXN0b3IgKHBnIDcpICovCiAKIH07Ci0qLwotc3RhdGljIHN0cnVjdCBhdDkxX21tY19kYXRhIF9faW5pdGRhdGEgeWxfOTIwMF9tbWNfZGF0YSA9IHsKLQkuZGV0X3Bpbgk9IEFUOTFfUElOX1BCOSwgLypUSElTIExPT0tTIENPUlJFQ1QgU0hFRVQ3Ki8KLS8qCS53cF9waW4JCT0gLi4uIG5vdCBjb25uZWN0ZWQgIFNIRUVUNyovCi0JLnNsb3RfYgkJPSAwLAorCisvKgorICogTU1DCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9tbWNfZGF0YSBfX2luaXRkYXRhIHlsOTIwMF9tbWNfZGF0YSA9IHsKKwkuZGV0X3Bpbgk9IEFUOTFfUElOX1BCOSwKKwkvLyAud3BfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKIAkud2lyZTQJCT0gMSwKLQogfTsKIAotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqICBUb3VjaCBzY3JlZW4KLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0jaWYgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0NikgfHwgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nl9NT0RVTEUpCi1zdGF0aWMgaW50IGFkczc4NDNfcGVuZG93bl9zdGF0ZSh2b2lkKQotewotCXJldHVybiAhYXQ5MV9nZXRfZ3Bpb192YWx1ZShBVDkxX1BJTl9QQjExKTsJLyogVG91Y2hzY3JlZW4gUEVOSVJRICovCi19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCBhdDkxX2luaXRfZGV2aWNlX3RzKHZvaWQpCi17Ci0vKklNUE9SVEFOVCBOT1RFIFRIRSBTUEkgSU5URVJGQUNFIElTIEFMUkVBRFkgQ09ORklHVVJFRCBCWSBYWFhfREVWSUNFUy5DCi1USEFUIElTIFRPIFNBWSBUSEFUICBNSVNPLE1PU0ksU1BDSyBBTkQgQ1MgIGFyZSBhbHJlYWR5IGNvbmZpZ3VyZWQKLXdlIG9ubHkgbmVlZCB0byBlbmFibGUgdGhlIG90aGVyIGRhdGFwaW5zIHdoaWNoIGFyZToKLVBCMTAvUksxIEJVU1kKLSovCi0vKiBUb3VjaHNjcmVlbiBCVVNZIHNpZ25hbCAsICBwaW4sdXNlIHB1bGx1cCAoIFRPRE8gbm90IGN1cnJlbnRseSB1c2VkIGluIHRoZSBBRFM3ODQzLzYuYyBkcml2ZXIpKi8KLWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEIxMCwgMSk7Ci19Ci0KLSNlbHNlCi1zdGF0aWMgdm9pZCBfX2luaXQgYXQ5MV9pbml0X2RldmljZV90cyh2b2lkKSB7fQotI2VuZGlmCi0KLXN0YXRpYyBzdHJ1Y3QgYWRzNzg0Nl9wbGF0Zm9ybV9kYXRhIGFkc19pbmZvID0gewotCS5tb2RlbAkJCT0gNzg0MywKLQkueF9taW4JCQk9IDE1MCwKLQkueF9tYXgJCQk9IDM4MzAsCi0JLnlfbWluCQkJPSAxOTAsCi0JLnlfbWF4CQkJPSAzODMwLAotCS52cmVmX2RlbGF5X3VzZWNzCT0gMTAwLAotLyogZm9yIGEgOCIgdG91Y2ggc2NyZWVuKi8KLQkvLy54X3BsYXRlX29obXMJCT0gNjAzLCAvLz0gNDUwLCBTLkJpcnRsZXMgVE9ETwotCS8vLnlfcGxhdGVfb2htcwkJPSAzMzIsIC8vPSAyNTAsIFMuQmlydGxlcyBUT0RPCi0vKmZvciBhIDEwLjQiIHRvdWNoIHNjcmVlbiovCi0JLy8ueF9wbGF0ZV9vaG1zCQk9NjExLAotCS8vLnlfcGxhdGVfb2htcwkJPTMyNSwKLQotCS54X3BsYXRlX29obXMJPSA1NzYsCi0JLnlfcGxhdGVfb2htcwk9IDM2NiwKLQkJLy8KLQkucHJlc3N1cmVfbWF4CQk9IDE1MDAwLCAvKmdlbmVyYWxseSBub25zZW5zZSBvbiB0aGUgNzg0MyovCi0JIC8qbnVtYmVyIG9mIHRpbWVzIHRvIHNlbmQgcXVlcnkgdG8gY2hpcCBpbiBhIGdpdmVuIHJ1biAwIGVxdWFscyBvbmUgdGltZSAoZG8gbm90IHNldCB0byAwISEgLHRoZXJlIGlzIGEgYnVnIGluIEFEUyA3ODQ2IGNvZGUpKi8KLQkuZGVib3VuY2VfbWF4CQk9IDEsCi0JLmRlYm91bmNlX3JlcAkJPSAwLAotCS5kZWJvdW5jZV90b2wJCT0gKH4wKSwKLQkuZ2V0X3BlbmRvd25fc3RhdGUJPSBhZHM3ODQzX3BlbmRvd25fc3RhdGUsCi19OwotCi0vKnN0YXRpYyBzdHJ1Y3QgY2FuYnVzX3BsYXRmb3JtX2RhdGEgY2FuX2luZm8gPSB7Ci0JLm1vZGVsCQkJPSAyNTEwLAotfTsKLSovCi0KLXN0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8geWxfOTIwMF9zcGlfZGV2aWNlc1tdID0gewotLyp0aGlzIHN0aWNrcyBpdCBhdDoKLSAvc3lzL2RldmljZXMvcGxhdGZvcm0vYXRtZWxfc3BpLjAvc3BpMC4wCi0gL3N5cy9idXMvcGxhdGZvcm0vZGV2aWNlcy8KLURvY3VtZW50YXRpb24vc3BpIElJUkMqLwotCi0jaWYgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0NikgfHwgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nl9NT0RVTEUpCi0gLyoodGhpcyBJUyBjb3JyZWN0IDA0LU5PVi0yMDA3KSovCi0JewotCQkubW9kYWxpYXMJCT0gImFkczc4NDYiLCAvKiBiZWNhdXNlIHRoZSBkcml2ZXIgaXMgY2FsbGVkIGFkczc4NDYqLwotCQkuY2hpcF9zZWxlY3QJPSAwLCAvKlRISVMgTVVTVCBCRSBBTiBJTkRFWCBJTlRPIEFOIEFSUkFZIE9GICBwaW5zICovCi0vKnRoaXMgaXMgT05MWSBUTyBCRSBVU0VEIGlmIGNoaXBzZWxlY3QgYWJvdmUgaXMgbm90IHVzZWQsIGl0IHBhc3NlcyBhIHBpbiBkaXJlY3RseSBmb3IgdGhlIGNoaXAgc2VsZWN0Ki8KLQkJLyouY29udHJvbGxlcl9kYXRhID1BVDkxX1BJTl9QQTMgLCovCi0JCS5tYXhfc3BlZWRfaHoJPSA1MDAwKjI2LCAvKig0NzAwICogMjYpLTEyNTAwMCAqIDI2LCAobWF4IHNhbXBsZSByYXRlIEAgM1YpICogKGNtZCArIGRhdGEgKyBvdmVyaGVhZCkgKi8KLQkJLmJ1c19udW0JCT0gMCwKLQkJLnBsYXRmb3JtX2RhdGEJPSAmYWRzX2luZm8sCi0JCS5pcnEJCQk9IEFUOTFfUElOX1BCMTEsCi0JfSwKLSNlbmRpZgotLyp3ZSBuZWVkIHRvIHB1dCBvdXIgQ0FOIGRyaXZlciBkYXRhIGhlcmUhISovCi0vKlRISVMgSVMgQUxMIERVTU1ZIERBVEEqLwotLyoJewotCQkubW9kYWxpYXMJCT0gIm1jcDI1MTAiLCAvL0RVTU1ZIGZvciBNQ1AyNTEwIGNoaXAKLQkJLmNoaXBfc2VsZWN0CT0gMSwqLyAvKlRISVMgTVVTVCBCRSBBTiBJTkRFWCBJTlRPIEFOIEFSUkFZIE9GICBwaW5zICovCi0JLyp0aGlzIGlzIE9OTFkgVE8gQkUgVVNFRCBpZiBjaGlwc2VsZWN0IGFib3ZlIGlzIG5vdCB1c2VkLCBpdCBwYXNzZXMgYSBwaW4gZGlyZWN0bHkgZm9yIHRoZSBjaGlwIHNlbGVjdCAqLwotCS8qICAuY29udHJvbGxlcl9kYXRhID1BVDkxX1BJTl9QQTQgLAotCQkubWF4X3NwZWVkX2h6CT0gMjUwMDAgKiAyNiwKLQkJLmJ1c19udW0JCT0gMCwKLQkJLnBsYXRmb3JtX2RhdGEJPSAmY2FuX2luZm8sCi0JCS5pcnEJCQk9IEFUOTFfUElOX1BDMCwKLQl9LAotCSovCi0JLy9tYXggU1BJIGNoaXAgbmVlZHMgdG8gZ28gaGVyZQotfTsKLQotc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIF9faW5pdGRhdGEgeWxfOTIwMF9uYW5kX3BhcnRpdGlvbltdID0geworLyoKKyAqIE5BTkQgRmxhc2gKKyAqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIF9faW5pdGRhdGEgeWw5MjAwX25hbmRfcGFydGl0aW9uW10gPSB7CiAJewogCQkubmFtZQk9ICJBVDkxIE5BTkQgcGFydGl0aW9uIDEsIGJvb3QiLAogCQkub2Zmc2V0CT0gMCwKQEAgLTI0Miw0NDIgKzE3MSw0MzQgQEAKIAkJLm5hbWUJPSAiQVQ5MSBOQU5EIHBhcnRpdGlvbiA1LCBleHQtZnMiLAogCQkub2Zmc2V0CT0gMzIgKiBTWl8xTSwKIAkJLnNpemUJPSAzMiAqIFNaXzFNCi0JfSwKKwl9CiB9OwogCiBzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gKiBfX2luaXQgbmFuZF9wYXJ0aXRpb25zKGludCBzaXplLCBpbnQgKm51bV9wYXJ0aXRpb25zKQogewotCSpudW1fcGFydGl0aW9ucyA9IEFSUkFZX1NJWkUoeWxfOTIwMF9uYW5kX3BhcnRpdGlvbik7Ci0JcmV0dXJuIHlsXzkyMDBfbmFuZF9wYXJ0aXRpb247CisJKm51bV9wYXJ0aXRpb25zID0gQVJSQVlfU0laRSh5bDkyMDBfbmFuZF9wYXJ0aXRpb24pOworCXJldHVybiB5bDkyMDBfbmFuZF9wYXJ0aXRpb247CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgYXQ5MV9uYW5kX2RhdGEgX19pbml0ZGF0YSB5bF85MjAwX25hbmRfZGF0YSA9IHsKLQkuYWxlPSA2LAotCS5jbGU9IDcsCi0JLyouZGV0X3Bpbgk9IEFUOTFfUElOX1BDeHgsKi8gICAvKndlIGRvbid0IGhhdmUgYSBkZXQgcGluIGJlY2F1c2UgTmFuZEZsYXNoIGlzIGZpeGVkIHRvIGJvYXJkKi8KLQkucmR5X3Bpbgk9IEFUOTFfUElOX1BDMTQsICAvKlIvIUIgU2hlZXQxMCovCi0JLmVuYWJsZV9waW4JPSBBVDkxX1BJTl9QQzE1LCAgLyohQ0UgIFNoZWV0MTAgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9uYW5kX2RhdGEgX19pbml0ZGF0YSB5bDkyMDBfbmFuZF9kYXRhID0geworCS5hbGUJCT0gNiwKKwkuY2xlCQk9IDcsCisJLy8gLmRldF9waW4JPSAuLi4gbm90IGNvbm5lY3RlZAorCS5yZHlfcGluCT0gQVQ5MV9QSU5fUEMxNCwJLyogUi8hQiAoU2hlZXQxMCkgKi8KKwkuZW5hYmxlX3Bpbgk9IEFUOTFfUElOX1BDMTUsCS8qICFDRSAgKFNoZWV0MTApICovCiAJLnBhcnRpdGlvbl9pbmZvCT0gbmFuZF9wYXJ0aXRpb25zLAogfTsKIAotCi0KIC8qCi1UT0RPIFMuQmlydGxlcwotcG90ZW50aWFsbHkgYSBwcm9ibGVtIHdpdGggdGhlIHNpemUgYWJvdmUKLXBoeXNtYXAgcGxhdGZvcm0gZmxhc2ggZGV2aWNlOiAwMDgwMDAwMCBhdCAxMDAwMDAwMAotcGh5c21hcC1mbGFzaC4wOiBGb3VuZCAxIHgxNiBkZXZpY2VzIGF0IDB4MCBpbiAxNi1iaXQgYmFuawotTk9SIGNoaXAgdG9vIGxhcmdlIHRvIGZpdCBpbiBtYXBwaW5nLiBBdHRlbXB0aW5nIHRvIGNvcGUuLi4KLSBJbnRlbC9TaGFycCBFeHRlbmRlZCBRdWVyeSBUYWJsZSBhdCAweDAwMzEKLVVzaW5nIGJ1ZmZlciB3cml0ZSBtZXRob2QKLWNmaV9jbWRzZXRfMDAwMTogRXJhc2Ugc3VzcGVuZCBvbiB3cml0ZSBlbmFibGVkCi1SZWR1Y2luZyB2aXNpYmlsaXR5IG9mIDE2Mzg0S2lCIGNoaXAgdG8gODE5MktpQgotKi8KKyAqIE5PUiBGbGFzaAorICovCisjZGVmaW5lIFlMOTIwMF9GTEFTSF9CQVNFCUFUOTFfQ0hJUFNFTEVDVF8wCisjZGVmaW5lIFlMOTIwMF9GTEFTSF9TSVpFCTB4MTAwMDAwMAogCi1zdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24geWxfOTIwMF9mbGFzaF9wYXJ0aXRpb25zW10gPSB7CitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24geWw5MjAwX2ZsYXNoX3BhcnRpdGlvbnNbXSA9IHsKIAl7Ci0JCS5uYW1lID0JCSJCb290bG9hZGVyIiwKLQkJLnNpemUgPQkJMHgwMDA0MDAwMCwKLQkJLm9mZnNldCA9CTAsCi0JCS5tYXNrX2ZsYWdzID0JTVREX1dSSVRFQUJMRSAgLyogZm9yY2UgcmVhZC1vbmx5ICovCi0JfSx7Ci0JCS5uYW1lID0JCSJLZXJuZWwiLAotCQkuc2l6ZSA9CQkweDAwMUMwMDAwLAotCQkub2Zmc2V0ID0JMHgwMDA0MDAwMCwKLQl9LHsKLQkJLm5hbWUgPQkJIkZpbGVzeXN0ZW0iLAotCQkuc2l6ZSA9CQlNVERQQVJUX1NJWl9GVUxMLAotCQkub2Zmc2V0ID0JMHgwMDIwMDAwMAotCX0KLQotfTsKLQotc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgeWxfOTIwMF9mbGFzaF9kYXRhID0gewotCS53aWR0aAk9IDIsCi0JLnBhcnRzICAgICAgICAgID0geWxfOTIwMF9mbGFzaF9wYXJ0aXRpb25zLAotCS5ucl9wYXJ0cyAgICAgICA9IEFSUkFZX1NJWkUoeWxfOTIwMF9mbGFzaF9wYXJ0aXRpb25zKSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgeWxfOTIwMF9mbGFzaF9yZXNvdXJjZXNbXSA9IHsKLXsKLQkuc3RhcnQJCT0gWUxfOTIwMF9GTEFTSF9CQVNFLAotCS5lbmQJCT0gWUxfOTIwMF9GTEFTSF9CQVNFICsgWUxfOTIwMF9GTEFTSF9TSVpFIC0gMSwKLQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJCS5uYW1lCQk9ICJCb290bG9hZGVyIiwKKwkJLnNpemUJCT0gMHgwMDA0MDAwMCwKKwkJLm9mZnNldAkJPSAwLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsCS8qIGZvcmNlIHJlYWQtb25seSAqLworCX0sCisJeworCQkubmFtZQkJPSAiS2VybmVsIiwKKwkJLnNpemUJCT0gMHgwMDFDMDAwMCwKKwkJLm9mZnNldAkJPSAweDAwMDQwMDAwLAorCX0sCisJeworCQkubmFtZQkJPSAiRmlsZXN5c3RlbSIsCisJCS5zaXplCQk9IE1URFBBUlRfU0laX0ZVTEwsCisJCS5vZmZzZXQJCT0gMHgwMDIwMDAwMAogCX0KIH07CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHlsXzkyMDBfZmxhc2ggPSB7CitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSB5bDkyMDBfZmxhc2hfZGF0YSA9IHsKKwkud2lkdGgJCT0gMiwKKwkucGFydHMJCT0geWw5MjAwX2ZsYXNoX3BhcnRpdGlvbnMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRSh5bDkyMDBfZmxhc2hfcGFydGl0aW9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHlsOTIwMF9mbGFzaF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAk9IFlMOTIwMF9GTEFTSF9CQVNFLAorCQkuZW5kCT0gWUw5MjAwX0ZMQVNIX0JBU0UgKyBZTDkyMDBfRkxBU0hfU0laRSAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHlsOTIwMF9mbGFzaCA9IHsKIAkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCiAJLmlkCQk9IDAsCiAJLmRldgkJPSB7Ci0JCQkJLnBsYXRmb3JtX2RhdGEJPSAmeWxfOTIwMF9mbGFzaF9kYXRhLAorCQkJCS5wbGF0Zm9ybV9kYXRhCT0gJnlsOTIwMF9mbGFzaF9kYXRhLAogCQkJfSwKLQkucmVzb3VyY2UJPSB5bF85MjAwX2ZsYXNoX3Jlc291cmNlcywKLQkubnVtX3Jlc291cmNlcyAgPSBBUlJBWV9TSVpFKHlsXzkyMDBfZmxhc2hfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UJPSB5bDkyMDBfZmxhc2hfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRSh5bDkyMDBfZmxhc2hfcmVzb3VyY2VzKSwKIH07CiAKLQotc3RhdGljIHN0cnVjdCBncGlvX2xlZCB5bF85MjAwX2xlZHNbXSA9IHsKLS8qRDIgJkQzIGFyZSBwYXNzZWQgZGlyZWN0bHkgaW4gdmlhIGF0OTFfaW5pdF9sZWRzKi8KLQl7Ci0JCS5uYW1lCQkJPSAibGVkNCIsICAvKkQ0Ki8KLQkJLmdwaW8JCQk9IEFUOTFfUElOX1BCMTUsCi0JCS5hY3RpdmVfbG93CQk9IDEsCi0JCS5kZWZhdWx0X3RyaWdnZXIJPSAiaGVhcnRiZWF0IiwKLQkJLyouZGVmYXVsdF90cmlnZ2VyCT0gInRpbWVyIiwqLwotCX0sCi0JewotCQkubmFtZQkJCT0gImxlZDUiLCAgLypENSovCi0JCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjgsCi0JCS5hY3RpdmVfbG93CQk9IDEsCi0JCS5kZWZhdWx0X3RyaWdnZXIJPSAiaGVhcnRiZWF0IiwKLQl9Ci19OwotCi0vL3N0YXRpYyBzdHJ1Y3QgZ3Bpb19zb3VuZGVyIHlsXzkyMDBfc291bmRlcltdID0geyovCi0vKlRoaXMgaXMgYSBzaW1wbGUgc3BlYWtlciBhdHRhY2hlZCB0byBhIGdwbyBsaW5lKi8KLQotLy8JewotLy8JCS5uYW1lCQkJPSAiU3BlYWtlciIsICAvKkxTMSovCi0vLwkJLmdwaW8JCQk9IEFUOTFfUElOX1BBMjIsCi0vLwkJLmFjdGl2ZV9sb3cJCT0gMCwKLS8vCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCi0JCS8qLmRlZmF1bHRfdHJpZ2dlcgk9ICJ0aW1lciIsKi8KLS8vCX0sCi0vL307Ci0KLQotCi1zdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgeWxfOTIwMF9pMmNfZGV2aWNlc1tdID0gewotCXsKLQkvKlRPRE8qLwotCQlJMkNfQk9BUkRfSU5GTygiQ1M0MzM0IiwgMHgwMCksCi0JfQotfTsKLQotCi0gLyoKLSAqIEdQSU8gQnV0dG9ucworLyoKKyAqIEkyQyAoVFdJKQogICovCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgeWw5MjAwX2kyY19kZXZpY2VzW10gPSB7CisJewkvKiBFRVBST00gKi8KKwkJSTJDX0JPQVJEX0lORk8oIjI0YzEyOCIsIDB4NTApLAorCX0KK307CisKKy8qCisgKiBHUElPIEJ1dHRvbnMKKyovCiAjaWYgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJTykgfHwgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJT19NT0RVTEUpCi1zdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24geWxfOTIwMF9idXR0b25zW10gPSB7CitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24geWw5MjAwX2J1dHRvbnNbXSA9IHsKIAl7CiAJCS5ncGlvCQk9IEFUOTFfUElOX1BBMjQsCi0JCS5jb2RlCT0gQlROXzIsCisJCS5jb2RlCQk9IEJUTl8yLAogCQkuZGVzYwkJPSAiU1cyIiwKIAkJLmFjdGl2ZV9sb3cJPSAxLAogCQkud2FrZXVwCQk9IDEsCiAJfSwKIAl7CiAJCS5ncGlvCQk9IEFUOTFfUElOX1BCMSwKLQkJLmNvZGUJPSBCVE5fMywKKwkJLmNvZGUJCT0gQlROXzMsCiAJCS5kZXNjCQk9ICJTVzMiLAogCQkuYWN0aXZlX2xvdwk9IDEsCiAJCS53YWtldXAJCT0gMSwKIAl9LAogCXsKIAkJLmdwaW8JCT0gQVQ5MV9QSU5fUEIyLAotCQkuY29kZQk9IEJUTl80LAorCQkuY29kZQkJPSBCVE5fNCwKIAkJLmRlc2MJCT0gIlNXNCIsCiAJCS5hY3RpdmVfbG93CT0gMSwKIAkJLndha2V1cAkJPSAxLAogCX0sCiAJewogCQkuZ3BpbwkJPSBBVDkxX1BJTl9QQjYsCi0JCS5jb2RlCT0gQlROXzUsCisJCS5jb2RlCQk9IEJUTl81LAogCQkuZGVzYwkJPSAiU1c1IiwKIAkJLmFjdGl2ZV9sb3cJPSAxLAogCQkud2FrZXVwCQk9IDEsCi0JfSwKLQorCX0KIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgeWxfOTIwMF9idXR0b25fZGF0YSA9IHsKLQkuYnV0dG9ucwk9IHlsXzkyMDBfYnV0dG9ucywKLQkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKHlsXzkyMDBfYnV0dG9ucyksCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIHlsOTIwMF9idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IHlsOTIwMF9idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUoeWw5MjAwX2J1dHRvbnMpLAogfTsKIAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgeWxfOTIwMF9idXR0b25fZGV2aWNlID0geworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgeWw5MjAwX2J1dHRvbl9kZXZpY2UgPSB7CiAJLm5hbWUJCT0gImdwaW8ta2V5cyIsCiAJLmlkCQk9IC0xLAogCS5udW1fcmVzb3VyY2VzCT0gMCwKIAkuZGV2CQk9IHsKLQkucGxhdGZvcm1fZGF0YQk9ICZ5bF85MjAwX2J1dHRvbl9kYXRhLAorCQkucGxhdGZvcm1fZGF0YQk9ICZ5bDkyMDBfYnV0dG9uX2RhdGEsCiAJfQogfTsKIAotc3RhdGljIHZvaWQgX19pbml0IHlsXzkyMDBfYWRkX2RldmljZV9idXR0b25zKHZvaWQpCitzdGF0aWMgdm9pZCBfX2luaXQgeWw5MjAwX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKQogewotCS8vU1cyCi0JYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQTI0LCAwKTsKKwlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BBMjQsIDEpOwkvKiBTVzIgKi8KIAlhdDkxX3NldF9kZWdsaXRjaChBVDkxX1BJTl9QQTI0LCAxKTsKLQotCS8vU1czCi0JYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQjEsIDApOworCWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEIxLCAxKTsJLyogU1czICovCiAJYXQ5MV9zZXRfZGVnbGl0Y2goQVQ5MV9QSU5fUEIxLCAxKTsKLQkvL1NXNAotCWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEIyLCAwKTsKKwlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCMiwgMSk7CS8qIFNXNCAqLwogCWF0OTFfc2V0X2RlZ2xpdGNoKEFUOTFfUElOX1BCMiwgMSk7Ci0KLQkvL1NXNQotCWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEI2LCAwKTsKKwlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCNiwgMSk7CS8qIFNXNSAqLwogCWF0OTFfc2V0X2RlZ2xpdGNoKEFUOTFfUElOX1BCNiwgMSk7CiAKKwkvKiBFbmFibGUgYnV0dG9ucyAoU2hlZXQgNSkgKi8KKwlhdDkxX3NldF9ncGlvX291dHB1dChBVDkxX1BJTl9QQjcsIDEpOwogCi0JYXQ5MV9zZXRfZ3Bpb19vdXRwdXQoQVQ5MV9QSU5fUEI3LCAxKTsJLyogI1RVUk4gQlVUVE9OUyBPTiwgU0hFRVQgNSAgb2Ygc2NoZW1hdGljcyAqLwotCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmeWxfOTIwMF9idXR0b25fZGV2aWNlKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnlsOTIwMF9idXR0b25fZGV2aWNlKTsKIH0KICNlbHNlCi1zdGF0aWMgdm9pZCBfX2luaXQgeWxfOTIwMF9hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkge30KK3N0YXRpYyB2b2lkIF9faW5pdCB5bDkyMDBfYWRkX2RldmljZV9idXR0b25zKHZvaWQpIHt9CiAjZW5kaWYKIAorLyoKKyAqIFRvdWNoc2NyZWVuCisgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19UT1VDSFNDUkVFTl9BRFM3ODQ2KSB8fCBkZWZpbmVkKENPTkZJR19UT1VDSFNDUkVFTl9BRFM3ODQ2X01PRFVMRSkKK3N0YXRpYyBpbnQgYWRzNzg0M19wZW5kb3duX3N0YXRlKHZvaWQpCit7CisJcmV0dXJuICFhdDkxX2dldF9ncGlvX3ZhbHVlKEFUOTFfUElOX1BCMTEpOwkvKiBUb3VjaHNjcmVlbiBQRU5JUlEgKi8KK30KKworc3RhdGljIHN0cnVjdCBhZHM3ODQ2X3BsYXRmb3JtX2RhdGEgYWRzX2luZm8gPSB7CisJLm1vZGVsCQkJPSA3ODQzLAorCS54X21pbgkJCT0gMTUwLAorCS54X21heAkJCT0gMzgzMCwKKwkueV9taW4JCQk9IDE5MCwKKwkueV9tYXgJCQk9IDM4MzAsCisJLnZyZWZfZGVsYXlfdXNlY3MJPSAxMDAsCisKKwkvKiBGb3IgYSA4IiB0b3VjaC1zY3JlZW4gKi8KKwkvLyAueF9wbGF0ZV9vaG1zCQk9IDYwMywKKwkvLyAueV9wbGF0ZV9vaG1zCQk9IDMzMiwKKworCS8qIEZvciBhIDEwLjQiIHRvdWNoLXNjcmVlbiAqLworCS8vIC54X3BsYXRlX29obXMJCT0gNjExLAorCS8vIC55X3BsYXRlX29obXMJCT0gMzI1LAorCisJLnhfcGxhdGVfb2htcwkJPSA1NzYsCisJLnlfcGxhdGVfb2htcwkJPSAzNjYsCisKKwkucHJlc3N1cmVfbWF4CQk9IDE1MDAwLCAvKiBnZW5lcmFsbHkgbm9uc2Vuc2Ugb24gdGhlIDc4NDMgKi8KKwkuZGVib3VuY2VfbWF4CQk9IDEsCisJLmRlYm91bmNlX3JlcAkJPSAwLAorCS5kZWJvdW5jZV90b2wJCT0gKH4wKSwKKwkuZ2V0X3BlbmRvd25fc3RhdGUJPSBhZHM3ODQzX3BlbmRvd25fc3RhdGUsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgeWw5MjAwX2FkZF9kZXZpY2VfdHModm9pZCkKK3sKKwlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCMTEsIDEpOwkvKiBUb3VjaHNjcmVlbiBpbnRlcnJ1cHQgcGluICovCisJYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQjEwLCAxKTsJLyogVG91Y2hzY3JlZW4gQlVTWSBzaWduYWwgLSBub3QgdXNlZCEgKi8KK30KKyNlbHNlCitzdGF0aWMgdm9pZCBfX2luaXQgeWw5MjAwX2FkZF9kZXZpY2VfdHModm9pZCkge30KKyNlbmRpZgorCisvKgorICogU1BJIGRldmljZXMKKyAqLworc3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyB5bDkyMDBfc3BpX2RldmljZXNbXSA9IHsKKyNpZiBkZWZpbmVkKENPTkZJR19UT1VDSFNDUkVFTl9BRFM3ODQ2KSB8fCBkZWZpbmVkKENPTkZJR19UT1VDSFNDUkVFTl9BRFM3ODQ2X01PRFVMRSkKKwl7CS8qIFRvdWNoc2NyZWVuICovCisJCS5tb2RhbGlhcwk9ICJhZHM3ODQ2IiwKKwkJLmNoaXBfc2VsZWN0CT0gMCwKKwkJLm1heF9zcGVlZF9oegk9IDUwMDAgKiAyNiwKKwkJLnBsYXRmb3JtX2RhdGEJPSAmYWRzX2luZm8sCisJCS5pcnEJCT0gQVQ5MV9QSU5fUEIxMSwKKwl9LAorI2VuZGlmCisJewkvKiBDQU4gKi8KKwkJLm1vZGFsaWFzCT0gIm1jcDI1MTAiLAorCQkuY2hpcF9zZWxlY3QJPSAxLAorCQkubWF4X3NwZWVkX2h6CT0gMjUwMDAgKiAyNiwKKwkJLmlycQkJPSBBVDkxX1BJTl9QQzAsCisJfQorfTsKKworLyoKKyAqIExDRCAvIFZHQQorICoKKyAqIEVQU09OIFMxRDEzODA2IEZCIChkaXNjb250aW51ZWQgY2hpcCkKKyAqIEVQU09OIFMxRDEzNTA2IEZCCisgKi8KICNpZiBkZWZpbmVkKENPTkZJR19GQl9TMUQxMzVYWCkgfHwgZGVmaW5lZChDT05GSUdfRkJfUzFEMTNYWFhfTU9EVUxFKQogI2luY2x1ZGUgPHZpZGVvL3MxZDEzeHh4ZmIuaD4KIAotLyogRVBTT04gUzFEMTM4MDYgRkIgKGRpc2NvbnRpbnVlZCBjaGlwKSovCi0vKiBFUFNPTiBTMUQxMzUwNiBGQiAqLwotCiAjZGVmaW5lIEFUOTFfRkJfUkVHX0JBU0UJMHg4MDAwMDAwMEwKICNkZWZpbmUgQVQ5MV9GQl9SRUdfU0laRQkweDIwMAogI2RlZmluZSBBVDkxX0ZCX1ZNRU1fQkFTRQkweDgwMjAwMDAwTAogI2RlZmluZSBBVDkxX0ZCX1ZNRU1fU0laRQkweDIwMDAwMEwKIAotLyojZGVmaW5lIFMxRF9ESVNQTEFZX1dJRFRIICAgICAgICAgICA2NDAqLwotLyojZGVmaW5lIFMxRF9ESVNQTEFZX0hFSUdIVCAgICAgICAgICA0ODAqLwotCi0KLXN0YXRpYyB2b2lkIF9faW5pdCB5bF85MjAwX2luaXRfdmlkZW8odm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCB5bDkyMDBfaW5pdF92aWRlbyh2b2lkKQogewotCWF0OTFfc3lzX3dyaXRlKEFUOTFfUElPQyArIFBJT19BU1IsQVQ5MV9QSU5fUEM2KTsKLQlhdDkxX3N5c193cml0ZShBVDkxX1BJT0MgKyBQSU9fQlNSLDApOwotCWF0OTFfc3lzX3dyaXRlKEFUOTFfUElPQyArIFBJT19BU1IsQVQ5MV9QSU5fUEM2KTsKKwkvKiBOV0FJVCBTaWduYWwgKi8KKwlhdDkxX3NldF9BX3BlcmlwaChBVDkxX1BJTl9QQzYsIDApOwogCi0JYXQ5MV9zeXNfd3JpdGUoIEFUOTFfU01DX0NTUigyKSwKLQlBVDkxX1NNQ19OV1NfKDB4NCkgfAotCUFUOTFfU01DX1dTRU4gfAotCUFUOTFfU01DX1RERl8oMHgxMDApIHwKLQlBVDkxX1NNQ19EQlcKKwkvKiBJbml0aWFsaXphdGlvbiBvZiB0aGUgU3RhdGljIE1lbW9yeSBDb250cm9sbGVyIGZvciBDaGlwIFNlbGVjdCAyICovCisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfQ1NSKDIpLCBBVDkxX1NNQ19EQldfMTYJCS8qIDE2IGJpdCAqLworCQkJfCBBVDkxX1NNQ19XU0VOIHwgQVQ5MV9TTUNfTldTXygweDQpCS8qIHdhaXQgc3RhdGVzICovCisJCQl8IEFUOTFfU01DX1RERl8oMHgxMDApCQkJLyogZmxvYXQgdGltZSAqLwogCSk7Ci0KLQotCiB9CiAKLQotc3RhdGljIHN0cnVjdCBzMWQxM3h4eGZiX3JlZ3ZhbCB5bF85MjAwX3MxZGZiX2luaXRyZWdzW10gPQorc3RhdGljIHN0cnVjdCBzMWQxM3h4eGZiX3JlZ3ZhbCB5bDkyMDBfczFkZmJfaW5pdHJlZ3NbXSA9CiB7Ci0Je1MxRFJFR19NSVNDLAkJCQkweDAwfSwgICAvKiBNaXNjZWxsYW5lb3VzIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NPTV9ESVNQX01PREUsCQkweDAxfSwgICAvKiBEaXNwbGF5IE1vZGUgUmVnaXN0ZXIsIExDRCBvbmx5Ki8KLQl7UzFEUkVHX0dQSU9fQ05GMCwJCQkweDAwfSwgICAvKiBHZW5lcmFsIElPIFBpbnMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19HUElPX0NUTDAsCQkJMHgwMH0sICAgLyogR2VuZXJhbCBJTyBQaW5zIENvbnRyb2wgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ0xLX0NORiwJCQkweDExfSwgICAvKiBNZW1vcnkgQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfQ0xLX0NORiwJCTB4MTB9LCAgIC8qIExDRCBQaXhlbCBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9DTEtfQ05GLAkJMHgxMn0sICAgLyogQ1JUL1RWIFBpeGVsIENsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfTVBMVUdfQ0xLX0NORiwJCTB4MDF9LCAgIC8qIE1lZGlhUGx1ZyBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NQVTJNRU1fV1NUX1NFTCwJMHgwMn0sICAgLyogQ1BVIFRvIE1lbW9yeSBXYWl0IFN0YXRlIFNlbGVjdCBSZWdpc3RlciovCi0Je1MxRFJFR19NRU1fQ05GLAkJCTB4MDB9LCAgIC8qIE1lbW9yeSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX1NEUkFNX1JFRl9SQVRFLAkJMHgwNH0sICAgLyogRFJBTSBSZWZyZXNoIFJhdGUgUmVnaXN0ZXIsIE1DTEsgc291cmNlKi8KLQl7UzFEUkVHX1NEUkFNX1RDMCwJCQkweDEyfSwgICAvKiBEUkFNIFRpbWluZ3MgQ29udHJvbCBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX1NEUkFNX1RDMSwJCQkweDAyfSwgICAvKiBEUkFNIFRpbWluZ3MgQ29udHJvbCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX1BBTkVMX1RZUEUsCQkJMHgyNX0sICAgLyogUGFuZWwgVHlwZSBSZWdpc3RlciovCi0Je1MxRFJFR19NT0RfUkFURSwJCQkweDAwfSwgICAvKiBNT0QgUmF0ZSBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9IV0lEVEgsCTB4NEZ9LCAgIC8qIExDRCBIb3Jpem9udGFsIERpc3BsYXkgV2lkdGggUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX05ESVNQX0hQRVIsCQkweDEzfSwgICAvKiBMQ0QgSG9yaXpvbnRhbCBOb24tRGlzcGxheSBQZXJpb2QgUmVnaXN0ZXIqLwotCXtTMURSRUdfVEZUX0ZQTElORV9TVEFSVCwJMHgwMX0sICAgLyogVEZUIEZQTElORSBTdGFydCBQb3NpdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19URlRfRlBMSU5FX1BXSURUSCwJMHgwY30sICAgLyogVEZUIEZQTElORSBQdWxzZSBXaWR0aCBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9WSEVJR0hUMCwJMHhERn0sICAgLyogTENEIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfTENEX0RJU1BfVkhFSUdIVDEsCTB4MDF9LCAgIC8qIExDRCBWZXJ0aWNhbCBEaXNwbGF5IEhlaWdodCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0xDRF9ORElTUF9WUEVSLAkJMHgyY30sICAgLyogTENEIFZlcnRpY2FsIE5vbi1EaXNwbGF5IFBlcmlvZCBSZWdpc3RlciovCi0Je1MxRFJFR19URlRfRlBGUkFNRV9TVEFSVCwJMHgwYX0sICAgLyogVEZUIEZQRlJBTUUgU3RhcnQgUG9zaXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfVEZUX0ZQRlJBTUVfUFdJRFRILAkweDAyfSwgICAvKiBURlQgRlBGUkFNRSBQdWxzZSBXaWR0aCBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9NT0RFLAkJMHgwNX0sICAgLyogTENEIERpc3BsYXkgTW9kZSBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfTUlTQywJCQkweDAxfSwgICAvKiBMQ0QgTWlzY2VsbGFuZW91cyBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9TVEFSVDAsCTB4MDB9LCAgIC8qIExDRCBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19MQ0RfRElTUF9TVEFSVDEsCTB4MDB9LCAgIC8qIExDRCBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19MQ0RfRElTUF9TVEFSVDIsCTB4MDB9LCAgIC8qIExDRCBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMiovCi0Je1MxRFJFR19MQ0RfTUVNX09GRjAsCQkweDgwfSwgICAvKiBMQ0QgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfTENEX01FTV9PRkYxLAkJMHgwMn0sICAgLyogTENEIE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0xDRF9QSVhfUEFOLAkJMHgwM30sICAgLyogTENEIFBpeGVsIFBhbm5pbmcgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0RJU1BfRklGT19IVEMsCTB4MDB9LCAgIC8qIExDRCBEaXNwbGF5IEZJRk8gSGlnaCBUaHJlc2hvbGQgQ29udHJvbCBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9GSUZPX0xUQywJMHgwMH0sICAgLyogTENEIERpc3BsYXkgRklGTyBMb3cgVGhyZXNob2xkIENvbnRyb2wgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0RJU1BfSFdJRFRILAkweDRGfSwgICAvKiBDUlQvVFYgSG9yaXpvbnRhbCBEaXNwbGF5IFdpZHRoIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9ORElTUF9IUEVSLAkJMHgxM30sICAgLyogQ1JUL1RWIEhvcml6b250YWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9IUlRDX1NUQVJULAkJMHgwMX0sICAgLyogQ1JUL1RWIEhSVEMgU3RhcnQgUG9zaXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0hSVENfUFdJRFRILAkweDBCfSwgICAvKiBDUlQvVFYgSFJUQyBQdWxzZSBXaWR0aCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfRElTUF9WSEVJR0hUMCwJMHhERn0sICAgLyogQ1JUL1RWIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQ1JUX0RJU1BfVkhFSUdIVDEsCTB4MDF9LCAgIC8qIENSVC9UViBWZXJ0aWNhbCBEaXNwbGF5IEhlaWdodCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0NSVF9ORElTUF9WUEVSLAkJMHgyQn0sICAgLyogQ1JUL1RWIFZlcnRpY2FsIE5vbi1EaXNwbGF5IFBlcmlvZCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfVlJUQ19TVEFSVCwJCTB4MDl9LCAgIC8qIENSVC9UViBWUlRDIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9WUlRDX1BXSURUSCwJMHgwMX0sICAgLyogQ1JUL1RWIFZSVEMgUHVsc2UgV2lkdGggUmVnaXN0ZXIqLwotCXtTMURSRUdfVFZfT1VUX0NUTCwJCQkweDE4fSwgICAvKiBUViBPdXRwdXQgQ29udHJvbCBSZWdpc3RlciAqLwotCXtTMURSRUdfQ1JUX0RJU1BfTU9ERSwJCTB4MDV9LCAgIC8qIENSVC9UViBEaXNwbGF5IE1vZGUgUmVnaXN0ZXIsIDE2QlBQKi8KLQl7UzFEUkVHX0NSVF9ESVNQX1NUQVJUMCwJMHgwMH0sICAgLyogQ1JUL1RWIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0NSVF9ESVNQX1NUQVJUMSwJMHgwMH0sICAgLyogQ1JUL1RWIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0NSVF9ESVNQX1NUQVJUMiwJMHgwMH0sICAgLyogQ1JUL1RWIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAyKi8KLQl7UzFEUkVHX0NSVF9NRU1fT0ZGMCwJCTB4ODB9LCAgIC8qIENSVC9UViBNZW1vcnkgQWRkcmVzcyBPZmZzZXQgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19DUlRfTUVNX09GRjEsCQkweDAyfSwgICAvKiBDUlQvVFYgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQ1JUX1BJWF9QQU4sCQkweDAwfSwgICAvKiBDUlQvVFYgUGl4ZWwgUGFubmluZyBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfRElTUF9GSUZPX0hUQywJMHgwMH0sICAgLyogQ1JUL1RWIERpc3BsYXkgRklGTyBIaWdoIFRocmVzaG9sZCBDb250cm9sIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9ESVNQX0ZJRk9fTFRDLAkweDAwfSwgICAvKiBDUlQvVFYgRGlzcGxheSBGSUZPIExvdyBUaHJlc2hvbGQgQ29udHJvbCBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfQ1VSX0NUTCwJCTB4MDB9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIENvbnRyb2wgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9TVEFSVCwJCTB4MDF9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9YUE9TMCwJCTB4MDB9LCAgIC8qIExDRCBDdXJzb3IgWCBQb3NpdGlvbiBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0xDRF9DVVJfWFBPUzEsCQkweDAwfSwgICAvKiBMQ0QgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19MQ0RfQ1VSX1lQT1MwLAkJMHgwMH0sICAgLyogTENEIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfTENEX0NVUl9ZUE9TMSwJCTB4MDB9LCAgIC8qIExDRCBDdXJzb3IgWSBQb3NpdGlvbiBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0xDRF9DVVJfQkNUTDAsCQkweDAwfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBCbHVlIENvbG9yIDAgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9HQ1RMMCwJCTB4MDB9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDAgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9SQ1RMMCwJCTB4MDB9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIFJlZCBDb2xvciAwIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfQkNUTDEsCQkweDFGfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBCbHVlIENvbG9yIDEgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9HQ1RMMSwJCTB4M0Z9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDEgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9SQ1RMMSwJCTB4MUZ9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIFJlZCBDb2xvciAxIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfRklGT19IVEMsCTB4MDB9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIEZJRk8gVGhyZXNob2xkIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9DVVJfQ1RMLAkJMHgwMH0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgQ29udHJvbCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX1NUQVJULAkJMHgwMX0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX1hQT1MwLAkJMHgwMH0sICAgLyogQ1JUL1RWIEN1cnNvciBYIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQ1JUX0NVUl9YUE9TMSwJCTB4MDB9LCAgIC8qIENSVC9UViBDdXJzb3IgWCBQb3NpdGlvbiBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0NSVF9DVVJfWVBPUzAsCQkweDAwfSwgICAvKiBDUlQvVFYgQ3Vyc29yIFkgUG9zaXRpb24gUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19DUlRfQ1VSX1lQT1MxLAkJMHgwMH0sICAgLyogQ1JUL1RWIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQ1JUX0NVUl9CQ1RMMCwJCTB4MDB9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX0dDVEwwLAkJMHgwMH0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgR3JlZW4gQ29sb3IgMCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX1JDVEwwLAkJMHgwMH0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgUmVkIENvbG9yIDAgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9CQ1RMMSwJCTB4MUZ9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMSBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX0dDVEwxLAkJMHgzRn0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgR3JlZW4gQ29sb3IgMSBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX1JDVEwxLAkJMHgxRn0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgUmVkIENvbG9yIDEgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9GSUZPX0hUQywJMHgwMH0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgRklGTyBUaHJlc2hvbGQgUmVnaXN0ZXIqLwotCXtTMURSRUdfQkJMVF9DVEwwLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBDb250cm9sIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9DVEwxLAkJCTB4MDF9LCAgIC8qIEJpdEJsdCBDb250cm9sIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9DQ19FWFAsCQkweDAwfSwgICAvKiBCaXRCbHQgUk9QIENvZGUvQ29sb3IgRXhwYW5zaW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0JCTFRfT1AsCQkJMHgwMH0sICAgLyogQml0Qmx0IE9wZXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19CQkxUX1NSQ19TVEFSVDAsCTB4MDB9LCAgIC8qIEJpdEJsdCBTb3VyY2UgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0JCTFRfU1JDX1NUQVJUMSwJMHgwMH0sICAgLyogQml0Qmx0IFNvdXJjZSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9TUkNfU1RBUlQyLAkweDAwfSwgICAvKiBCaXRCbHQgU291cmNlIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMiovCi0Je1MxRFJFR19CQkxUX0RTVF9TVEFSVDAsCTB4MDB9LCAgIC8qIEJpdEJsdCBEZXN0aW5hdGlvbiBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9EU1RfU1RBUlQxLAkweDAwfSwgICAvKiBCaXRCbHQgRGVzdGluYXRpb24gU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0JCTFRfRFNUX1NUQVJUMiwJMHgwMH0sICAgLyogQml0Qmx0IERlc3RpbmF0aW9uIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMiovCi0Je1MxRFJFR19CQkxUX01FTV9PRkYwLAkJMHgwMH0sICAgLyogQml0Qmx0IE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0JCTFRfTUVNX09GRjEsCQkweDAwfSwgICAvKiBCaXRCbHQgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9XSURUSDAsCQkweDAwfSwgICAvKiBCaXRCbHQgV2lkdGggUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19CQkxUX1dJRFRIMSwJCTB4MDB9LCAgIC8qIEJpdEJsdCBXaWR0aCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0JCTFRfSEVJR0hUMCwJCTB4MDB9LCAgIC8qIEJpdEJsdCBIZWlnaHQgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19CQkxUX0hFSUdIVDEsCQkweDAwfSwgICAvKiBCaXRCbHQgSGVpZ2h0IFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9CR0MwLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBCYWNrZ3JvdW5kIENvbG9yIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9CR0MxLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBCYWNrZ3JvdW5kIENvbG9yIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9GR0MwLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBGb3JlZ3JvdW5kIENvbG9yIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9GR0MxLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBGb3JlZ3JvdW5kIENvbG9yIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfTEtVUF9NT0RFLAkJCTB4MDB9LCAgIC8qIExvb2stVXAgVGFibGUgTW9kZSBSZWdpc3RlciovCi0Je1MxRFJFR19MS1VQX0FERFIsCQkJMHgwMH0sICAgLyogTG9vay1VcCBUYWJsZSBBZGRyZXNzIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX1BTX0NORiwJCQkJMHgwMH0sICAgLyogUG93ZXIgU2F2ZSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX1BTX1NUQVRVUywJCQkweDAwfSwgICAvKiBQb3dlciBTYXZlIFN0YXR1cyBSZWdpc3RlciovCi0Je1MxRFJFR19DUFUyTUVNX1dET0dULAkJMHgwMH0sICAgLyogQ1BVLXRvLU1lbW9yeSBBY2Nlc3MgV2F0Y2hkb2cgVGltZXIgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ09NX0RJU1BfTU9ERSwJCTB4MDF9LCAgIC8qIERpc3BsYXkgTW9kZSBSZWdpc3RlciwgTENEIG9ubHkqLworCXtTMURSRUdfTUlTQywJCQkweDAwfSwJLyogTWlzY2VsbGFuZW91cyBSZWdpc3RlciovCisJe1MxRFJFR19DT01fRElTUF9NT0RFLAkJMHgwMX0sCS8qIERpc3BsYXkgTW9kZSBSZWdpc3RlciwgTENEIG9ubHkqLworCXtTMURSRUdfR1BJT19DTkYwLAkJMHgwMH0sCS8qIEdlbmVyYWwgSU8gUGlucyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0dQSU9fQ1RMMCwJCTB4MDB9LAkvKiBHZW5lcmFsIElPIFBpbnMgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19DTEtfQ05GLAkJMHgxMX0sCS8qIE1lbW9yeSBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9DTEtfQ05GLAkJMHgxMH0sCS8qIExDRCBQaXhlbCBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9DTEtfQ05GLAkJMHgxMn0sCS8qIENSVC9UViBQaXhlbCBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX01QTFVHX0NMS19DTkYsCQkweDAxfSwJLyogTWVkaWFQbHVnIENsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfQ1BVMk1FTV9XU1RfU0VMLAkweDAyfSwJLyogQ1BVIFRvIE1lbW9yeSBXYWl0IFN0YXRlIFNlbGVjdCBSZWdpc3RlciovCisJe1MxRFJFR19NRU1fQ05GLAkJMHgwMH0sCS8qIE1lbW9yeSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX1NEUkFNX1JFRl9SQVRFLAkJMHgwNH0sCS8qIERSQU0gUmVmcmVzaCBSYXRlIFJlZ2lzdGVyLCBNQ0xLIHNvdXJjZSovCisJe1MxRFJFR19TRFJBTV9UQzAsCQkweDEyfSwJLyogRFJBTSBUaW1pbmdzIENvbnRyb2wgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19TRFJBTV9UQzEsCQkweDAyfSwJLyogRFJBTSBUaW1pbmdzIENvbnRyb2wgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19QQU5FTF9UWVBFLAkJMHgyNX0sCS8qIFBhbmVsIFR5cGUgUmVnaXN0ZXIqLworCXtTMURSRUdfTU9EX1JBVEUsCQkweDAwfSwJLyogTU9EIFJhdGUgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0RJU1BfSFdJRFRILAkweDRGfSwJLyogTENEIEhvcml6b250YWwgRGlzcGxheSBXaWR0aCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfTkRJU1BfSFBFUiwJCTB4MTN9LAkvKiBMQ0QgSG9yaXpvbnRhbCBOb24tRGlzcGxheSBQZXJpb2QgUmVnaXN0ZXIqLworCXtTMURSRUdfVEZUX0ZQTElORV9TVEFSVCwJMHgwMX0sCS8qIFRGVCBGUExJTkUgU3RhcnQgUG9zaXRpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfVEZUX0ZQTElORV9QV0lEVEgsCTB4MGN9LAkvKiBURlQgRlBMSU5FIFB1bHNlIFdpZHRoIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9ESVNQX1ZIRUlHSFQwLAkweERGfSwJLyogTENEIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfTENEX0RJU1BfVkhFSUdIVDEsCTB4MDF9LAkvKiBMQ0QgVmVydGljYWwgRGlzcGxheSBIZWlnaHQgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19MQ0RfTkRJU1BfVlBFUiwJCTB4MmN9LAkvKiBMQ0QgVmVydGljYWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX1RGVF9GUEZSQU1FX1NUQVJULAkweDBhfSwJLyogVEZUIEZQRlJBTUUgU3RhcnQgUG9zaXRpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfVEZUX0ZQRlJBTUVfUFdJRFRILAkweDAyfSwJLyogVEZUIEZQRlJBTUUgUHVsc2UgV2lkdGggUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0RJU1BfTU9ERSwJCTB4MDV9LAkvKiBMQ0QgRGlzcGxheSBNb2RlIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9NSVNDLAkJMHgwMX0sCS8qIExDRCBNaXNjZWxsYW5lb3VzIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9ESVNQX1NUQVJUMCwJMHgwMH0sCS8qIExDRCBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19MQ0RfRElTUF9TVEFSVDEsCTB4MDB9LAkvKiBMQ0QgRGlzcGxheSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfTENEX0RJU1BfU1RBUlQyLAkweDAwfSwJLyogTENEIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAyKi8KKwl7UzFEUkVHX0xDRF9NRU1fT0ZGMCwJCTB4ODB9LAkvKiBMQ0QgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfTENEX01FTV9PRkYxLAkJMHgwMn0sCS8qIExDRCBNZW1vcnkgQWRkcmVzcyBPZmZzZXQgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19MQ0RfUElYX1BBTiwJCTB4MDN9LAkvKiBMQ0QgUGl4ZWwgUGFubmluZyBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfRElTUF9GSUZPX0hUQywJMHgwMH0sCS8qIExDRCBEaXNwbGF5IEZJRk8gSGlnaCBUaHJlc2hvbGQgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfRElTUF9GSUZPX0xUQywJMHgwMH0sCS8qIExDRCBEaXNwbGF5IEZJRk8gTG93IFRocmVzaG9sZCBDb250cm9sIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9ESVNQX0hXSURUSCwJMHg0Rn0sCS8qIENSVC9UViBIb3Jpem9udGFsIERpc3BsYXkgV2lkdGggUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX05ESVNQX0hQRVIsCQkweDEzfSwJLyogQ1JUL1RWIEhvcml6b250YWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9IUlRDX1NUQVJULAkJMHgwMX0sCS8qIENSVC9UViBIUlRDIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9IUlRDX1BXSURUSCwJMHgwQn0sCS8qIENSVC9UViBIUlRDIFB1bHNlIFdpZHRoIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9ESVNQX1ZIRUlHSFQwLAkweERGfSwJLyogQ1JUL1RWIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQ1JUX0RJU1BfVkhFSUdIVDEsCTB4MDF9LAkvKiBDUlQvVFYgVmVydGljYWwgRGlzcGxheSBIZWlnaHQgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19DUlRfTkRJU1BfVlBFUiwJCTB4MkJ9LAkvKiBDUlQvVFYgVmVydGljYWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9WUlRDX1NUQVJULAkJMHgwOX0sCS8qIENSVC9UViBWUlRDIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9WUlRDX1BXSURUSCwJMHgwMX0sCS8qIENSVC9UViBWUlRDIFB1bHNlIFdpZHRoIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX1RWX09VVF9DVEwsCQkweDE4fSwJLyogVFYgT3V0cHV0IENvbnRyb2wgUmVnaXN0ZXIgKi8KKwl7UzFEUkVHX0NSVF9ESVNQX01PREUsCQkweDA1fSwJLyogQ1JUL1RWIERpc3BsYXkgTW9kZSBSZWdpc3RlciwgMTZCUFAqLworCXtTMURSRUdfQ1JUX0RJU1BfU1RBUlQwLAkweDAwfSwJLyogQ1JUL1RWIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0NSVF9ESVNQX1NUQVJUMSwJMHgwMH0sCS8qIENSVC9UViBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19DUlRfRElTUF9TVEFSVDIsCTB4MDB9LAkvKiBDUlQvVFYgRGlzcGxheSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDIqLworCXtTMURSRUdfQ1JUX01FTV9PRkYwLAkJMHg4MH0sCS8qIENSVC9UViBNZW1vcnkgQWRkcmVzcyBPZmZzZXQgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19DUlRfTUVNX09GRjEsCQkweDAyfSwJLyogQ1JUL1RWIE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0NSVF9QSVhfUEFOLAkJMHgwMH0sCS8qIENSVC9UViBQaXhlbCBQYW5uaW5nIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9ESVNQX0ZJRk9fSFRDLAkweDAwfSwJLyogQ1JUL1RWIERpc3BsYXkgRklGTyBIaWdoIFRocmVzaG9sZCBDb250cm9sIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9ESVNQX0ZJRk9fTFRDLAkweDAwfSwJLyogQ1JUL1RWIERpc3BsYXkgRklGTyBMb3cgVGhyZXNob2xkIENvbnRyb2wgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9DVEwsCQkweDAwfSwJLyogTENEIEluay9DdXJzb3IgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX1NUQVJULAkJMHgwMX0sCS8qIExDRCBJbmsvQ3Vyc29yIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9YUE9TMCwJCTB4MDB9LAkvKiBMQ0QgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMCovCisJe1MxRFJFR19MQ0RfQ1VSX1hQT1MxLAkJMHgwMH0sCS8qIExDRCBDdXJzb3IgWCBQb3NpdGlvbiBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0xDRF9DVVJfWVBPUzAsCQkweDAwfSwJLyogTENEIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfTENEX0NVUl9ZUE9TMSwJCTB4MDB9LAkvKiBMQ0QgQ3Vyc29yIFkgUG9zaXRpb24gUmVnaXN0ZXIgMSovCisJe1MxRFJFR19MQ0RfQ1VSX0JDVEwwLAkJMHgwMH0sCS8qIExDRCBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX0dDVEwwLAkJMHgwMH0sCS8qIExDRCBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDAgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9SQ1RMMCwJCTB4MDB9LAkvKiBMQ0QgSW5rL0N1cnNvciBSZWQgQ29sb3IgMCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX0JDVEwxLAkJMHgxRn0sCS8qIExDRCBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMSBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX0dDVEwxLAkJMHgzRn0sCS8qIExDRCBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDEgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9SQ1RMMSwJCTB4MUZ9LAkvKiBMQ0QgSW5rL0N1cnNvciBSZWQgQ29sb3IgMSBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX0ZJRk9fSFRDLAkweDAwfSwJLyogTENEIEluay9DdXJzb3IgRklGTyBUaHJlc2hvbGQgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9DVEwsCQkweDAwfSwJLyogQ1JUL1RWIEluay9DdXJzb3IgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX1NUQVJULAkJMHgwMX0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9YUE9TMCwJCTB4MDB9LAkvKiBDUlQvVFYgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMCovCisJe1MxRFJFR19DUlRfQ1VSX1hQT1MxLAkJMHgwMH0sCS8qIENSVC9UViBDdXJzb3IgWCBQb3NpdGlvbiBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0NSVF9DVVJfWVBPUzAsCQkweDAwfSwJLyogQ1JUL1RWIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQ1JUX0NVUl9ZUE9TMSwJCTB4MDB9LAkvKiBDUlQvVFYgQ3Vyc29yIFkgUG9zaXRpb24gUmVnaXN0ZXIgMSovCisJe1MxRFJFR19DUlRfQ1VSX0JDVEwwLAkJMHgwMH0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX0dDVEwwLAkJMHgwMH0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDAgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9SQ1RMMCwJCTB4MDB9LAkvKiBDUlQvVFYgSW5rL0N1cnNvciBSZWQgQ29sb3IgMCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX0JDVEwxLAkJMHgxRn0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMSBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX0dDVEwxLAkJMHgzRn0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDEgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9SQ1RMMSwJCTB4MUZ9LAkvKiBDUlQvVFYgSW5rL0N1cnNvciBSZWQgQ29sb3IgMSBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX0ZJRk9fSFRDLAkweDAwfSwJLyogQ1JUL1RWIEluay9DdXJzb3IgRklGTyBUaHJlc2hvbGQgUmVnaXN0ZXIqLworCXtTMURSRUdfQkJMVF9DVEwwLAkJMHgwMH0sCS8qIEJpdEJsdCBDb250cm9sIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9DVEwxLAkJMHgwMX0sCS8qIEJpdEJsdCBDb250cm9sIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQkJMVF9DQ19FWFAsCQkweDAwfSwJLyogQml0Qmx0IFJPUCBDb2RlL0NvbG9yIEV4cGFuc2lvbiBSZWdpc3RlciovCisJe1MxRFJFR19CQkxUX09QLAkJMHgwMH0sCS8qIEJpdEJsdCBPcGVyYXRpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfQkJMVF9TUkNfU1RBUlQwLAkweDAwfSwJLyogQml0Qmx0IFNvdXJjZSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9TUkNfU1RBUlQxLAkweDAwfSwJLyogQml0Qmx0IFNvdXJjZSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQkJMVF9TUkNfU1RBUlQyLAkweDAwfSwJLyogQml0Qmx0IFNvdXJjZSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDIqLworCXtTMURSRUdfQkJMVF9EU1RfU1RBUlQwLAkweDAwfSwJLyogQml0Qmx0IERlc3RpbmF0aW9uIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19CQkxUX0RTVF9TVEFSVDEsCTB4MDB9LAkvKiBCaXRCbHQgRGVzdGluYXRpb24gU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfRFNUX1NUQVJUMiwJMHgwMH0sCS8qIEJpdEJsdCBEZXN0aW5hdGlvbiBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDIqLworCXtTMURSRUdfQkJMVF9NRU1fT0ZGMCwJCTB4MDB9LAkvKiBCaXRCbHQgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9NRU1fT0ZGMSwJCTB4MDB9LAkvKiBCaXRCbHQgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQkJMVF9XSURUSDAsCQkweDAwfSwJLyogQml0Qmx0IFdpZHRoIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9XSURUSDEsCQkweDAwfSwJLyogQml0Qmx0IFdpZHRoIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQkJMVF9IRUlHSFQwLAkJMHgwMH0sCS8qIEJpdEJsdCBIZWlnaHQgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19CQkxUX0hFSUdIVDEsCQkweDAwfSwJLyogQml0Qmx0IEhlaWdodCBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfQkdDMCwJCTB4MDB9LAkvKiBCaXRCbHQgQmFja2dyb3VuZCBDb2xvciBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0JCTFRfQkdDMSwJCTB4MDB9LAkvKiBCaXRCbHQgQmFja2dyb3VuZCBDb2xvciBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfRkdDMCwJCTB4MDB9LAkvKiBCaXRCbHQgRm9yZWdyb3VuZCBDb2xvciBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0JCTFRfRkdDMSwJCTB4MDB9LAkvKiBCaXRCbHQgRm9yZWdyb3VuZCBDb2xvciBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0xLVVBfTU9ERSwJCTB4MDB9LAkvKiBMb29rLVVwIFRhYmxlIE1vZGUgUmVnaXN0ZXIqLworCXtTMURSRUdfTEtVUF9BRERSLAkJMHgwMH0sCS8qIExvb2stVXAgVGFibGUgQWRkcmVzcyBSZWdpc3RlciovCisJe1MxRFJFR19QU19DTkYsCQkJMHgwMH0sCS8qIFBvd2VyIFNhdmUgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCisJe1MxRFJFR19QU19TVEFUVVMsCQkweDAwfSwJLyogUG93ZXIgU2F2ZSBTdGF0dXMgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1BVMk1FTV9XRE9HVCwJCTB4MDB9LAkvKiBDUFUtdG8tTWVtb3J5IEFjY2VzcyBXYXRjaGRvZyBUaW1lciBSZWdpc3RlciovCisJe1MxRFJFR19DT01fRElTUF9NT0RFLAkJMHgwMX0sCS8qIERpc3BsYXkgTW9kZSBSZWdpc3RlciwgTENEIG9ubHkqLwogfTsKIAotc3RhdGljIHU2NCBzMWRmYl9kbWFtYXNrID0gMHhmZmZmZmZmZlVMOworc3RhdGljIHU2NCBzMWRmYl9kbWFtYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKIAotc3RhdGljIHN0cnVjdCBzMWQxM3h4eGZiX3BkYXRhIHlsXzkyMDBfczFkZmJfcGRhdGEgPSB7Ci0JCS5pbml0cmVncwkJCQk9IHlsXzkyMDBfczFkZmJfaW5pdHJlZ3MsCi0JCS5pbml0cmVnc3NpemUJCQk9IEFSUkFZX1NJWkUoeWxfOTIwMF9zMWRmYl9pbml0cmVncyksCi0JCS5wbGF0Zm9ybV9pbml0X3ZpZGVvCT0geWxfOTIwMF9pbml0X3ZpZGVvLAorc3RhdGljIHN0cnVjdCBzMWQxM3h4eGZiX3BkYXRhIHlsOTIwMF9zMWRmYl9wZGF0YSA9IHsKKwkuaW5pdHJlZ3MJCT0geWw5MjAwX3MxZGZiX2luaXRyZWdzLAorCS5pbml0cmVnc3NpemUJCT0gQVJSQVlfU0laRSh5bDkyMDBfczFkZmJfaW5pdHJlZ3MpLAorCS5wbGF0Zm9ybV9pbml0X3ZpZGVvCT0geWw5MjAwX2luaXRfdmlkZW8sCiB9OwogCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHlsXzkyMDBfczFkZmJfcmVzb3VyY2VbXSA9IHsKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgeWw5MjAwX3MxZGZiX3Jlc291cmNlW10gPSB7CiAJWzBdID0gewkvKiB2aWRlbyBtZW0gKi8KLQkJLm5hbWUgICA9ICJzMWQxM3h4eGZiIG1lbW9yeSIsCi0JLyoJLm5hbWUgICA9ICJzMWQxMzgwNiBtZW1vcnkiLCovCi0JCS5zdGFydCAgPSBBVDkxX0ZCX1ZNRU1fQkFTRSwKLQkJLmVuZCAgICA9IEFUOTFfRkJfVk1FTV9CQVNFICsgQVQ5MV9GQl9WTUVNX1NJWkUgLTEsCi0JCS5mbGFncyAgPSBJT1JFU09VUkNFX01FTSwKKwkJLm5hbWUJPSAiczFkMTN4eHhmYiBtZW1vcnkiLAorCQkuc3RhcnQJPSBBVDkxX0ZCX1ZNRU1fQkFTRSwKKwkJLmVuZAk9IEFUOTFfRkJfVk1FTV9CQVNFICsgQVQ5MV9GQl9WTUVNX1NJWkUgLTEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAogCX0sCiAJWzFdID0gewkvKiB2aWRlbyByZWdpc3RlcnMgKi8KLQkJLm5hbWUgICA9ICJzMWQxM3h4eGZiIHJlZ2lzdGVycyIsCi0JLyoJLm5hbWUgICA9ICJzMWQxMzgwNiByZWdpc3RlcnMiLCovCi0JCS5zdGFydCAgPSBBVDkxX0ZCX1JFR19CQVNFLAotCQkuZW5kICAgID0gQVQ5MV9GQl9SRUdfQkFTRSArIEFUOTFfRkJfUkVHX1NJWkUgLTEsCi0JCS5mbGFncyAgPSBJT1JFU09VUkNFX01FTSwKKwkJLm5hbWUJPSAiczFkMTN4eHhmYiByZWdpc3RlcnMiLAorCQkuc3RhcnQJPSBBVDkxX0ZCX1JFR19CQVNFLAorCQkuZW5kCT0gQVQ5MV9GQl9SRUdfQkFTRSArIEFUOTFfRkJfUkVHX1NJWkUgLTEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAogCX0sCiB9OwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB5bF85MjAwX3MxZGZiX2RldmljZSA9IHsKLQkvKlRPRE8gUy5CaXJ0bGVzICwgcmVhbGx5IHdlIG5lZWQgdGhlIGNoaXAgcmV2aXNpb24gaW4gaGVyZSBhcyB3ZWxsKi8KLQkJLm5hbWUJCT0gInMxZDEzODA2ZmIiLAotCS8qICAubmFtZQkJPSAiczFkMTM1MDZmYiIsKi8KLQkJLmlkCQkJPSAtMSwKLQkJLmRldgkJPSB7Ci0JLypUT0RPIHRoZXJlcyBhIHdhcmluZyBoZXJlISEqLwotCS8qV0FSTklORzogdm1saW51eC5vKC5kYXRhKzB4MmRiYyk6IFNlY3Rpb24gbWlzbWF0Y2g6IHJlZmVyZW5jZSB0byAuaW5pdC50ZXh0OiAoYmV0d2VlbiAneWxfOTIwMF9zMWRmYl9wZGF0YScgYW5kICdzMWRmYl9kbWFtYXNrJykqLworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgeWw5MjAwX3MxZGZiX2RldmljZSA9IHsKKwkubmFtZQkJPSAiczFkMTM4MDZmYiIsCisJLmlkCQk9IC0xLAorCS5kZXYJPSB7CiAJCS5kbWFfbWFzawkJPSAmczFkZmJfZG1hbWFzaywKLQkJLmNvaGVyZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKLQkJLnBsYXRmb3JtX2RhdGEJCT0gJnlsXzkyMDBfczFkZmJfcGRhdGEsCisJCS5jb2hlcmVudF9kbWFfbWFzawk9IERNQV9CSVRfTUFTSygzMiksCisJCS5wbGF0Zm9ybV9kYXRhCQk9ICZ5bDkyMDBfczFkZmJfcGRhdGEsCiAJfSwKLQkucmVzb3VyY2UJPSB5bF85MjAwX3MxZGZiX3Jlc291cmNlLAotCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRSh5bF85MjAwX3MxZGZiX3Jlc291cmNlKSwKKwkucmVzb3VyY2UJPSB5bDkyMDBfczFkZmJfcmVzb3VyY2UsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHlsOTIwMF9zMWRmYl9yZXNvdXJjZSksCiB9OwogCi12b2lkIF9faW5pdCB5bF85MjAwX2FkZF9kZXZpY2VfdmlkZW8odm9pZCkKK3ZvaWQgX19pbml0IHlsOTIwMF9hZGRfZGV2aWNlX3ZpZGVvKHZvaWQpCiB7Ci0JcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ5bF85MjAwX3MxZGZiX2RldmljZSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ5bDkyMDBfczFkZmJfZGV2aWNlKTsKIH0KICNlbHNlCi0Jdm9pZCBfX2luaXQgeWxfOTIwMF9hZGRfZGV2aWNlX3ZpZGVvKHZvaWQpIHt9Cit2b2lkIF9faW5pdCB5bDkyMDBfYWRkX2RldmljZV92aWRlbyh2b2lkKSB7fQogI2VuZGlmCiAKLS8qdGhpcyBpcyBub3QgY2FsbGVkIGZpcnN0ICwgeWxfOTIwMF9tYXBfaW8gaXMgY2FsbGVkIGZpcnN0Ki8KLXN0YXRpYyB2b2lkIF9faW5pdCB5bF85MjAwX2JvYXJkX2luaXQodm9pZCkKKworc3RhdGljIHZvaWQgX19pbml0IHlsOTIwMF9ib2FyZF9pbml0KHZvaWQpCiB7CiAJLyogU2VyaWFsICovCiAJYXQ5MV9hZGRfZGV2aWNlX3NlcmlhbCgpOwogCS8qIEV0aGVybmV0ICovCi0JYXQ5MV9hZGRfZGV2aWNlX2V0aCgmeWxfOTIwMF9ldGhfZGF0YSk7CisJYXQ5MV9hZGRfZGV2aWNlX2V0aCgmeWw5MjAwX2V0aF9kYXRhKTsKIAkvKiBVU0IgSG9zdCAqLwotCWF0OTFfYWRkX2RldmljZV91c2JoKCZ5bF85MjAwX3VzYmhfZGF0YSk7CisJYXQ5MV9hZGRfZGV2aWNlX3VzYmgoJnlsOTIwMF91c2JoX2RhdGEpOwogCS8qIFVTQiBEZXZpY2UgKi8KLQlhdDkxX2FkZF9kZXZpY2VfdWRjKCZ5bF85MjAwX3VkY19kYXRhKTsKLQkvKiBwdWxsdXBfcGluIGl0IGlzICBhY3R1YWxseSBhY3RpdmUgbG93LCBidXQgdGhpcyBpcyBub3QgbmVlZGVkLCBkcml2ZXIgc2V0cyBpdCB1cCAqLwotCS8qYXQ5MV9zZXRfbXVsdGlfZHJpdmUoeWxfOTIwMF91ZGNfZGF0YS5wdWxsdXBfcGluLCAwKTsqLwotCi0JLyogQ29tcGFjdCBGbGFzaCAqLwotCS8qYXQ5MV9hZGRfZGV2aWNlX2NmKCZ5bF85MjAwX2NmX2RhdGEpOyovCi0KKwlhdDkxX2FkZF9kZXZpY2VfdWRjKCZ5bDkyMDBfdWRjX2RhdGEpOwogCS8qIEkyQyAqLwotCWF0OTFfYWRkX2RldmljZV9pMmMoeWxfOTIwMF9pMmNfZGV2aWNlcywgQVJSQVlfU0laRSh5bF85MjAwX2kyY19kZXZpY2VzKSk7Ci0JLyogU1BJICovCi0JLypUT0RPIFlMOTIwMCB3ZSBoYXZlIDIgc3BpIGludGVyZmFjZXMgdG91Y2ggc2NyZWVuICYgQ0FOKi8KLQkvKiBBVDkxX1BJTl9QQTUsIEFUOTFfUElOX1BBNiAsIGFyZSB1c2VkIG9uIHRoZSAgbWF4IDQ4NSBOT1QgU1BJKi8KLQotCS8qdG91Y2ggc2NyZWVuIGFuZCBDQU4qLwotCWF0OTFfYWRkX2RldmljZV9zcGkoeWxfOTIwMF9zcGlfZGV2aWNlcywgQVJSQVlfU0laRSh5bF85MjAwX3NwaV9kZXZpY2VzKSk7Ci0KLQkvKkJhc2ljYWxseSB0aGUgIFRTIHVzZXMgIFBCMTEgJiBQQjEwICwgUEIxMSBpcyBjb25maWd1cmVkIGJ5IHRoZSBTUEkgc3lzdGVtIEJQMTAgSVMgTk9UIFVTRUQhISovCi0JLyogd2UgbmVlZCB0aGlzIGluY2FzZSB0aGUgYm9hcmQgaXMgcnVubmluZyB3aXRob3V0IGEgdG91Y2ggc2NyZWVuKi8KLQkjaWYgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0NikgfHwgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nl9NT0RVTEUpCi0JYXQ5MV9pbml0X2RldmljZV90cygpOyAvKmluaXQgdGhlIHRvdWNoIHNjcmVlbiBkZXZpY2UqLwotCSNlbmRpZgotCS8qIERhdGFGbGFzaCBjYXJkICovCi0JYXQ5MV9hZGRfZGV2aWNlX21tYygwLCAmeWxfOTIwMF9tbWNfZGF0YSk7CisJYXQ5MV9hZGRfZGV2aWNlX2kyYyh5bDkyMDBfaTJjX2RldmljZXMsIEFSUkFZX1NJWkUoeWw5MjAwX2kyY19kZXZpY2VzKSk7CisJLyogTU1DICovCisJYXQ5MV9hZGRfZGV2aWNlX21tYygwLCAmeWw5MjAwX21tY19kYXRhKTsKIAkvKiBOQU5EICovCi0JYXQ5MV9hZGRfZGV2aWNlX25hbmQoJnlsXzkyMDBfbmFuZF9kYXRhKTsKKwlhdDkxX2FkZF9kZXZpY2VfbmFuZCgmeWw5MjAwX25hbmRfZGF0YSk7CiAJLyogTk9SIEZsYXNoICovCi0JcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ5bF85MjAwX2ZsYXNoKTsKLQkvKiBMRURzLiBOb3RlISEgdGhpcyBkb2VzIG5vdCBpbmNsdWRlIHRoZSBsZWQncyB3ZSBwYXNzZWQgZm9yIHRoZSBwcm9jZXNzb3Igc3RhdHVzICovCi0JYXQ5MV9ncGlvX2xlZHMoeWxfOTIwMF9sZWRzLCBBUlJBWV9TSVpFKHlsXzkyMDBfbGVkcykpOwotCS8qIFZHQSAgKi8KLQkvKnRoaXMgaXMgc2VsZiByZWdpc3RlcmVkIGJ5IGluY2x1ZGluZyB0aGUgczFkMTN4eHggY2hpcCBpbiB0aGUga2VybmVsIGJ1aWxkKi8KLQl5bF85MjAwX2FkZF9kZXZpY2VfdmlkZW8oKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnlsOTIwMF9mbGFzaCk7CisjaWYgZGVmaW5lZChDT05GSUdfU1BJX0FUTUVMKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQVRNRUxfTU9EVUxFKQorCS8qIFNQSSAqLworCWF0OTFfYWRkX2RldmljZV9zcGkoeWw5MjAwX3NwaV9kZXZpY2VzLCBBUlJBWV9TSVpFKHlsOTIwMF9zcGlfZGV2aWNlcykpOworCS8qIFRvdWNoc2NyZWVuICovCisJeWw5MjAwX2FkZF9kZXZpY2VfdHMoKTsKKyNlbmRpZgorCS8qIExFRHMuICovCisJYXQ5MV9ncGlvX2xlZHMoeWw5MjAwX2xlZHMsIEFSUkFZX1NJWkUoeWw5MjAwX2xlZHMpKTsKIAkvKiBQdXNoIEJ1dHRvbnMgKi8KLQl5bF85MjAwX2FkZF9kZXZpY2VfYnV0dG9ucygpOwotCS8qVE9ETyBmaXh1cCB0aGUgU291bmRlciAqLwotLy8JeWxfOTIwMF9hZGRfZGV2aWNlX3NvdW5kZXIoeWxfOTIwMF9zb3VuZGVyLEFSUkFZX1NJWkUoeWxfOTIwMF9zb3VuZGVyKSk7Ci0KKwl5bDkyMDBfYWRkX2RldmljZV9idXR0b25zKCk7CisJLyogVkdBICovCisJeWw5MjAwX2FkZF9kZXZpY2VfdmlkZW8oKTsKIH0KIAogTUFDSElORV9TVEFSVChZTDkyMDAsICJ1Q2RyYWdvbiBZTC05MjAwIikKLQkvKiBNYWludGFpbmVyOiBTLkJpcnRsZXMqLwotCS5waHlzX2lvCQk9IEFUOTFfQkFTRV9TWVMsCisJLyogTWFpbnRhaW5lcjogUy5CaXJ0bGVzICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAogCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKIAkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKLQkudGltZXIJCQk9ICZhdDkxcm05MjAwX3RpbWVyLAotCS5tYXBfaW8JCQk9IHlsXzkyMDBfbWFwX2lvLAotCS5pbml0X2lycQkJPSB5bF85MjAwX2luaXRfaXJxLAotCS5pbml0X21hY2hpbmUJPSB5bF85MjAwX2JvYXJkX2luaXQsCisJLnRpbWVyCQk9ICZhdDkxcm05MjAwX3RpbWVyLAorCS5tYXBfaW8JCT0geWw5MjAwX21hcF9pbywKKwkuaW5pdF9pcnEJPSB5bDkyMDBfaW5pdF9pcnEsCisJLmluaXRfbWFjaGluZQk9IHlsOTIwMF9ib2FyZF9pbml0LAogTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9jbG9jay5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2Nsb2NrLmMKaW5kZXggYTMzZGZlNC4uNDY0YmRiYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2Nsb2NrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2Nsb2NrLmMKQEAgLTExMiwxMiArMTEyLDM0IEBACiAJCWF0OTFfc3lzX3dyaXRlKEFUOTFfUE1DX1NDRFIsIGNsay0+cG1jX21hc2spOwogfQogCitzdGF0aWMgdm9pZCBwbWNfdWNrcl9tb2RlKHN0cnVjdCBjbGsgKmNsaywgaW50IGlzX29uKQoreworCXVuc2lnbmVkIGludCB1Y2tyID0gYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfVUNLUik7CisKKwlpZiAoaXNfb24pIHsKKwkJaXNfb24gPSBBVDkxX1BNQ19MT0NLVTsKKwkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9DS0dSX1VDS1IsIHVja3IgfCBjbGstPnBtY19tYXNrKTsKKwl9IGVsc2UKKwkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9DS0dSX1VDS1IsIHVja3IgJiB+KGNsay0+cG1jX21hc2spKTsKKworCWRvIHsKKwkJY3B1X3JlbGF4KCk7CisJfSB3aGlsZSAoKGF0OTFfc3lzX3JlYWQoQVQ5MV9QTUNfU1IpICYgQVQ5MV9QTUNfTE9DS1UpICE9IGlzX29uKTsKK30KKwogLyogVVNCIGZ1bmN0aW9uIGNsb2NrcyAoUExMQiBtdXN0IGJlIDQ4IE1IeikgKi8KIHN0YXRpYyBzdHJ1Y3QgY2xrIHVkcGNrID0gewogCS5uYW1lCQk9ICJ1ZHBjayIsCiAJLnBhcmVudAkJPSAmcGxsYiwKIAkubW9kZQkJPSBwbWNfc3lzX21vZGUsCiB9Oworc3RhdGljIHN0cnVjdCBjbGsgdXRtaV9jbGsgPSB7CisJLm5hbWUJCT0gInV0bWlfY2xrIiwKKwkucGFyZW50CQk9ICZtYWluX2NsaywKKwkucG1jX21hc2sJPSBBVDkxX1BNQ19VUExMRU4sCS8qIGluIENLR1JfVUNLUiAqLworCS5tb2RlCQk9IHBtY191Y2tyX21vZGUsCisJLnR5cGUJCT0gQ0xLX1RZUEVfUExMLAorfTsKIHN0YXRpYyBzdHJ1Y3QgY2xrIHVocGNrID0gewogCS5uYW1lCQk9ICJ1aHBjayIsCiAJLnBhcmVudAkJPSAmcGxsYiwKQEAgLTM2MSw3ICszODMsNyBAQAogCiBzdGF0aWMgaW50IGF0OTFfY2xrX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpCiB7Ci0JdTMyCQlzY3NyLCBwY3NyLCBzcjsKKwl1MzIJCXNjc3IsIHBjc3IsIHVja3IgPSAwLCBzcjsKIAlzdHJ1Y3QgY2xrCSpjbGs7CiAKIAlzZXFfcHJpbnRmKHMsICJTQ1NSID0gJTh4XG4iLCBzY3NyID0gYXQ5MV9zeXNfcmVhZChBVDkxX1BNQ19TQ1NSKSk7CkBAIC0zNjksNyArMzkxLDEwIEBACiAJc2VxX3ByaW50ZihzLCAiTU9SICA9ICU4eFxuIiwgYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfTU9SKSk7CiAJc2VxX3ByaW50ZihzLCAiTUNGUiA9ICU4eFxuIiwgYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfTUNGUikpOwogCXNlcV9wcmludGYocywgIlBMTEEgPSAlOHhcbiIsIGF0OTFfc3lzX3JlYWQoQVQ5MV9DS0dSX1BMTEFSKSk7Ci0Jc2VxX3ByaW50ZihzLCAiUExMQiA9ICU4eFxuIiwgYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfUExMQlIpKTsKKwlpZiAoIWNwdV9pc19hdDkxc2FtOXJsKCkpCisJCXNlcV9wcmludGYocywgIlBMTEIgPSAlOHhcbiIsIGF0OTFfc3lzX3JlYWQoQVQ5MV9DS0dSX1BMTEJSKSk7CisJaWYgKGNwdV9pc19hdDkxY2FwOSgpIHx8IGNwdV9pc19hdDkxc2FtOXJsKCkpCisJCXNlcV9wcmludGYocywgIlVDS1IgPSAlOHhcbiIsIHVja3IgPSBhdDkxX3N5c19yZWFkKEFUOTFfQ0tHUl9VQ0tSKSk7CiAJc2VxX3ByaW50ZihzLCAiTUNLUiA9ICU4eFxuIiwgYXQ5MV9zeXNfcmVhZChBVDkxX1BNQ19NQ0tSKSk7CiAJc2VxX3ByaW50ZihzLCAiU1IgICA9ICU4eFxuIiwgc3IgPSBhdDkxX3N5c19yZWFkKEFUOTFfUE1DX1NSKSk7CiAKQEAgLTM4Miw2ICs0MDcsOCBAQAogCQkJc3RhdGUgPSAoc2NzciAmIGNsay0+cG1jX21hc2spID8gIm9uIiA6ICJvZmYiOwogCQllbHNlIGlmIChjbGstPm1vZGUgPT0gcG1jX3BlcmlwaF9tb2RlKQogCQkJc3RhdGUgPSAocGNzciAmIGNsay0+cG1jX21hc2spID8gIm9uIiA6ICJvZmYiOworCQllbHNlIGlmIChjbGstPm1vZGUgPT0gcG1jX3Vja3JfbW9kZSkKKwkJCXN0YXRlID0gKHVja3IgJiBjbGstPnBtY19tYXNrKSA/ICJvbiIgOiAib2ZmIjsKIAkJZWxzZSBpZiAoY2xrLT5wbWNfbWFzaykKIAkJCXN0YXRlID0gKHNyICYgY2xrLT5wbWNfbWFzaykgPyAib24iIDogIm9mZiI7CiAJCWVsc2UgaWYgKGNsayA9PSAmY2xrMzJrIHx8IGNsayA9PSAmbWFpbl9jbGspCkBAIC00ODgsMTQgKzUxNSwxOSBAQAogCQkvKgogCQkgKiBQTEwgaW5wdXQgYmV0d2VlbiAxTUh6IGFuZCAzMk1IeiBwZXIgc3BlYywgYnV0IGxvd2VyCiAJCSAqIGZyZXF1ZW5jZXMgc2VlbSBuZWNlc3NhcnkgaW4gc29tZSBjYXNlcyBzbyBhbGxvdyAxMDBLLgorCQkgKiBXYXJuaW5nOiBzb21lIG5ld2VyIHByb2R1Y3RzIG5lZWQgMk1IeiBtaW4uCiAJCSAqLwogCQlpbnB1dCA9IG1haW5fZnJlcSAvIGk7CisJCWlmIChjcHVfaXNfYXQ5MXNhbTlnMjAoKSAmJiBpbnB1dCA8IDIwMDAwMDApCisJCQljb250aW51ZTsKIAkJaWYgKGlucHV0IDwgMTAwMDAwKQogCQkJY29udGludWU7CiAJCWlmIChpbnB1dCA+IDMyMDAwMDAwKQogCQkJY29udGludWU7CiAKIAkJbXVsMSA9IG91dF9mcmVxIC8gaW5wdXQ7CisJCWlmIChjcHVfaXNfYXQ5MXNhbTlnMjAoKSAmJiBtdWwgPiA2MykKKwkJCWNvbnRpbnVlOwogCQlpZiAobXVsMSA+IDIwNDgpCiAJCQljb250aW51ZTsKIAkJaWYgKG11bDEgPCAyKQpAQCAtNTU1LDcgKzU4Nyw4IEBACiAKIAkvKiByZXBvcnQgaWYgUExMQSBpcyBtb3JlIHRoYW4gbWlsZGx5IG92ZXJjbG9ja2VkICovCiAJcGxsYS5yYXRlX2h6ID0gYXQ5MV9wbGxfcmF0ZSgmcGxsYSwgbWFpbl9jbG9jaywgYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfUExMQVIpKTsKLQlpZiAocGxsYS5yYXRlX2h6ID4gMjA5MDAwMDAwKQorCWlmICgoIWNwdV9pc19hdDkxc2FtOWcyMCgpICYmIHBsbGEucmF0ZV9oeiA+IDIwOTAwMDAwMCkKKwkgICB8fCAoY3B1X2lzX2F0OTFzYW05ZzIwKCkgJiYgcGxsYS5yYXRlX2h6ID4gODAwMDAwMDAwKSkKIAkJcHJfaW5mbygiQ2xvY2tzOiBQTExBIG92ZXJjbG9ja2VkLCAlbGQgTUh6XG4iLCBwbGxhLnJhdGVfaHogLyAxMDAwMDAwKTsKIAogCS8qCkBAIC01NzAsNyArNjAzLDcgQEAKIAkJdWhwY2sucG1jX21hc2sgPSBBVDkxUk05MjAwX1BNQ19VSFA7CiAJCXVkcGNrLnBtY19tYXNrID0gQVQ5MVJNOTIwMF9QTUNfVURQOwogCQlhdDkxX3N5c193cml0ZShBVDkxX1BNQ19TQ0VSLCBBVDkxUk05MjAwX1BNQ19NQ0tVRFApOwotCX0gZWxzZSBpZiAoY3B1X2lzX2F0OTFzYW05MjYwKCkgfHwgY3B1X2lzX2F0OTFzYW05MjYxKCkgfHwgY3B1X2lzX2F0OTFzYW05MjYzKCkpIHsKKwl9IGVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOTI2MCgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MSgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MygpIHx8IGNwdV9pc19hdDkxc2FtOWcyMCgpKSB7CiAJCXVocGNrLnBtY19tYXNrID0gQVQ5MVNBTTkyNnhfUE1DX1VIUDsKIAkJdWRwY2sucG1jX21hc2sgPSBBVDkxU0FNOTI2eF9QTUNfVURQOwogCX0gZWxzZSBpZiAoY3B1X2lzX2F0OTFjYXA5KCkpIHsKQEAgLTU4Miw2ICs2MTUsMTcgQEAKIAl1aHBjay5yYXRlX2h6ID0gYXQ5MV91c2JfcmF0ZSgmcGxsYiwgcGxsYi5yYXRlX2h6LCBhdDkxX3BsbGJfdXNiX2luaXQpOwogCiAJLyoKKwkgKiBVU0IgSFMgY2xvY2sgaW5pdAorCSAqLworCWlmIChjcHVfaXNfYXQ5MWNhcDkoKSB8fCBjcHVfaXNfYXQ5MXNhbTlybCgpKSB7CisJCS8qCisJCSAqIG11bHRpcGxpZXIgaXMgaGFyZC13aXJlZCB0byA0MAorCQkgKiAob2J0YWluIHRoZSBVU0IgSGlnaCBTcGVlZCA0ODAgTUh6IHdoZW4gaW5wdXQgaXMgMTIgTUh6KQorCQkgKi8KKwkJdXRtaV9jbGsucmF0ZV9oeiA9IDQwICogdXRtaV9jbGsucGFyZW50LT5yYXRlX2h6OworCX0KKworCS8qCiAJICogTUNLIGFuZCBDUFUgZGVyaXZlIGZyb20gb25lIG9mIHRob3NlIHByaW1hcnkgY2xvY2tzLgogCSAqIEZvciBub3csIGFzc3VtZSB0aGlzIHBhcmVudGFnZSB3b24ndCBjaGFuZ2UuCiAJICovCkBAIC01OTEsMTMgKzYzNSwyMSBAQAogCWZyZXEgLz0gKDEgPDwgKChtY2tyICYgQVQ5MV9QTUNfUFJFUykgPj4gMikpOwkJCQkvKiBwcmVzY2FsZSAqLwogCWlmIChjcHVfaXNfYXQ5MXJtOTIwMCgpKQogCQltY2sucmF0ZV9oeiA9IGZyZXEgLyAoMSArICgobWNrciAmIEFUOTFfUE1DX01ESVYpID4+IDgpKTsJLyogbWRpdiAqLwotCWVsc2UKLQkJbWNrLnJhdGVfaHogPSBmcmVxIC8gKDEgPDwgKChtY2tyICYgQVQ5MV9QTUNfTURJVikgPj4gOCkpOwkvKiBtZGl2ICovCisJZWxzZSBpZiAoY3B1X2lzX2F0OTFzYW05ZzIwKCkpIHsKKwkJbWNrLnJhdGVfaHogPSAobWNrciAmIEFUOTFfUE1DX01ESVYpID8KKwkJCWZyZXEgLyAoKG1ja3IgJiBBVDkxX1BNQ19NRElWKSA+PiA3KSA6IGZyZXE7CS8qIG1kaXYgOyAoeCA+PiA3KSA9ICgoeCA+PiA4KSAqIDIpICovCisJCWlmIChtY2tyICYgQVQ5MV9QTUNfUERJVikKKwkJCWZyZXEgLz0gMjsJCS8qIHByb2Nlc3NvciBjbG9jayBkaXZpc2lvbiAqLworCX0gZWxzZQorCQltY2sucmF0ZV9oeiA9IGZyZXEgLyAoMSA8PCAoKG1ja3IgJiBBVDkxX1BNQ19NRElWKSA+PiA4KSk7ICAgICAgLyogbWRpdiAqLwogCiAJLyogUmVnaXN0ZXIgdGhlIFBNQydzIHN0YW5kYXJkIGNsb2NrcyAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHN0YW5kYXJkX3BtY19jbG9ja3MpOyBpKyspCiAJCWxpc3RfYWRkX3RhaWwoJnN0YW5kYXJkX3BtY19jbG9ja3NbaV0tPm5vZGUsICZjbG9ja3MpOwogCisJaWYgKGNwdV9pc19hdDkxY2FwOSgpIHx8IGNwdV9pc19hdDkxc2FtOXJsKCkpCisJCWxpc3RfYWRkX3RhaWwoJnV0bWlfY2xrLm5vZGUsICZjbG9ja3MpOworCiAJLyogTUNLIGFuZCBDUFUgY2xvY2sgYXJlICJhbHdheXMgb24iICovCiAJY2xrX2VuYWJsZSgmbWNrKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL3BtLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvcG0uYwppbmRleCBhYTg2M2MxLi44YWI0ZmViIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvcG0uYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvcG0uYwpAQCAtMjAyLDcgKzIwMiw3IEBACiAJCQlwcl9kZWJ1ZygiQVQ5MTogUE0gLSBTdXNwZW5kLXRvLVJBTSB3aXRoIFVTQiBzdGlsbCBhY3RpdmVcbiIpOwogCQkJcmV0dXJuIDA7CiAJCX0KLQl9IGVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOTI2MCgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MSgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MygpKSB7CisJfSBlbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjEoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSB8fCBjcHVfaXNfYXQ5MXNhbTlnMjAoKSkgewogCQlpZiAoKHNjc3IgJiAoQVQ5MVNBTTkyNnhfUE1DX1VIUCB8IEFUOTFTQU05MjZ4X1BNQ19VRFApKSAhPSAwKSB7CiAJCQlwcl9kZWJ1ZygiQVQ5MTogUE0gLSBTdXNwZW5kLXRvLVJBTSB3aXRoIFVTQiBzdGlsbCBhY3RpdmVcbiIpOwogCQkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWVwOTN4eC9jbG9jay5jIGIvYXJjaC9hcm0vbWFjaC1lcDkzeHgvY2xvY2suYwppbmRleCA5ZDc1MTVjLi5mNjJjMzU1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWVwOTN4eC9jbG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtZXA5M3h4L2Nsb2NrLmMKQEAgLTc0LDYgKzc0LDcgQEAKIAogCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwogfQorRVhQT1JUX1NZTUJPTChjbGtfZ2V0KTsKIAogaW50IGNsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQogewpAQCAtODYsNiArODcsNyBAQAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKGNsa19lbmFibGUpOwogCiB2b2lkIGNsa19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKIHsKQEAgLTk2LDE1ICs5OCwxOCBAQAogCQlfX3Jhd193cml0ZWwodmFsdWUgJiB+Y2xrLT5lbmFibGVfbWFzaywgY2xrLT5lbmFibGVfcmVnKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKGNsa19kaXNhYmxlKTsKIAogdW5zaWduZWQgbG9uZyBjbGtfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQogewogCXJldHVybiBjbGstPnJhdGU7CiB9CitFWFBPUlRfU1lNQk9MKGNsa19nZXRfcmF0ZSk7CiAKIHZvaWQgY2xrX3B1dChzdHJ1Y3QgY2xrICpjbGspCiB7CiB9CitFWFBPUlRfU1lNQk9MKGNsa19wdXQpOwogCiAKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL01ha2VmaWxlCmluZGV4IDA2OTRhZDYuLjMyZjg2MDkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvTWFrZWZpbGUKQEAgLTE0LDEyICsxNCwxMCBAQAogcGNpLSQoQ09ORklHX0FSQ0hfTkVUV0lOREVSKSArPSBuZXR3aW5kZXItcGNpLm8KIHBjaS0kKENPTkZJR19BUkNIX1BFUlNPTkFMX1NFUlZFUikgKz0gcGVyc29uYWwtcGNpLm8KIAotbGVkcy0kKENPTkZJR19BUkNIX0NPMjg1KSArPSBlYnNhMjg1LWxlZHMubwogbGVkcy0kKENPTkZJR19BUkNIX0VCU0EyODUpICs9IGVic2EyODUtbGVkcy5vCiBsZWRzLSQoQ09ORklHX0FSQ0hfTkVUV0lOREVSKSArPSBuZXR3aW5kZXItbGVkcy5vCiAKIG9iai0kKENPTkZJR19BUkNIX0NBVFMpICs9IGNhdHMtaHcubyBpc2EtdGltZXIubwotb2JqLSQoQ09ORklHX0FSQ0hfQ08yODUpICs9IGNvMjg1Lm8gZGMyMTI4NS10aW1lci5vCiBvYmotJChDT05GSUdfQVJDSF9FQlNBMjg1KSArPSBlYnNhMjg1Lm8gZGMyMTI4NS10aW1lci5vCiBvYmotJChDT05GSUdfQVJDSF9ORVRXSU5ERVIpICs9IG5ldHdpbmRlci1ody5vIGlzYS10aW1lci5vCiBvYmotJChDT05GSUdfQVJDSF9QRVJTT05BTF9TRVJWRVIpICs9IHBlcnNvbmFsLm8gZGMyMTI4NS10aW1lci5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY28yODUuYyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jbzI4NS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTQ1NTc2Li4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jbzI4NS5jCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIGxpbnV4L2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jbzI4NS5jCi0gKgotICogQ08yODUgbWFjaGluZSBmaXh1cAotICovCi0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotCi0jaW5jbHVkZSA8YXNtL2hhcmR3YXJlL2RlYzIxMjg1Lmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KLQotI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi1zdGF0aWMgdm9pZCBfX2luaXQKLWZpeHVwX2NvZWJzYTI4NShzdHJ1Y3QgbWFjaGluZV9kZXNjICpkZXNjLCBzdHJ1Y3QgdGFnICp0YWdzLAotCQljaGFyICoqY21kbGluZSwgc3RydWN0IG1lbWluZm8gKm1pKQotewotCWV4dGVybiB1bnNpZ25lZCBsb25nIGJvb3RfbWVtb3J5X2VuZDsKLQlleHRlcm4gY2hhciBib290X2NvbW1hbmRfbGluZVtdOwotCi0JbWktPm5yX2JhbmtzICAgICAgPSAxOwotCW1pLT5iYW5rWzBdLnN0YXJ0ID0gUEhZU19PRkZTRVQ7Ci0JbWktPmJhbmtbMF0uc2l6ZSAgPSBib290X21lbW9yeV9lbmQ7Ci0JbWktPmJhbmtbMF0ubm9kZSAgPSAwOwotCi0JKmNtZGxpbmUgPSBib290X2NvbW1hbmRfbGluZTsKLX0KLQotTUFDSElORV9TVEFSVChDTzI4NSwgImNvLUVCU0EyODUiKQotCS8qIE1haW50YWluZXI6IE1hcmsgdmFuIERvZXNidXJnICovCi0JLnBoeXNfaW8JPSBEQzIxMjg1X0FSTUNTUl9CQVNFLAotCS5pb19wZ19vZmZzdAk9ICgoMHg3Y2YwMDAwMCkgPj4gMTgpICYgMHhmZmZjLAotCS5maXh1cAkJPSBmaXh1cF9jb2Vic2EyODUsCi0JLm1hcF9pbwkJPSBmb290YnJpZGdlX21hcF9pbywKLQkuaW5pdF9pcnEJPSBmb290YnJpZGdlX2luaXRfaXJxLAotCS50aW1lcgkJPSAmZm9vdGJyaWRnZV90aW1lciwKLU1BQ0hJTkVfRU5ECi0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21tb24uYyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21tb24uYwppbmRleCBlZjI5ZmMzLi5iMDhhYjUwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY29tbW9uLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2NvbW1vbi5jCkBAIC0xNzcsMjUgKzE3Nyw2IEBACiAjZW5kaWYKIH07CiAKLS8qCi0gKiBUaGUgQ08tZWJzYTI4NSBtYXBwaW5nLgotICovCi1zdGF0aWMgc3RydWN0IG1hcF9kZXNjIGNvMjg1X2lvX2Rlc2NbXSBfX2luaXRkYXRhID0gewotI2lmZGVmIENPTkZJR19BUkNIX0NPMjg1Ci0JewotCQkudmlydHVhbAk9IFBDSU9fQkFTRSwKLQkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKERDMjEyODVfUENJX0lPKSwKLQkJLmxlbmd0aAkJPSBQQ0lPX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRSwKLQl9LCB7Ci0JCS52aXJ0dWFsCT0gUENJTUVNX0JBU0UsCi0JCS5wZm4JCT0gX19waHlzX3RvX3BmbihEQzIxMjg1X1BDSV9NRU0pLAotCQkubGVuZ3RoCQk9IFBDSU1FTV9TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UsCi0JfSwKLSNlbmRpZgotfTsKLQogdm9pZCBfX2luaXQgZm9vdGJyaWRnZV9tYXBfaW8odm9pZCkKIHsKIAkvKgpAQCAtMjA4LDggKzE4OSw2IEBACiAJICogTm93LCB3b3JrIG91dCB3aGF0IHdlJ3ZlIGdvdCB0byBtYXAgaW4gYWRkaXRpb24gb24gdGhpcwogCSAqIHBsYXRmb3JtLgogCSAqLwotCWlmIChtYWNoaW5lX2lzX2NvMjg1KCkpCi0JCWlvdGFibGVfaW5pdChjbzI4NV9pb19kZXNjLCBBUlJBWV9TSVpFKGNvMjg1X2lvX2Rlc2MpKTsKIAlpZiAoZm9vdGJyaWRnZV9jZm5fbW9kZSgpKQogCQlpb3RhYmxlX2luaXQoZWJzYTI4NV9ob3N0X2lvX2Rlc2MsIEFSUkFZX1NJWkUoZWJzYTI4NV9ob3N0X2lvX2Rlc2MpKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9lYnNhMjg1LWxlZHMuYyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9lYnNhMjg1LWxlZHMuYwppbmRleCBhNjRlMjIyLi4wOWMxZmJjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS1sZWRzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2Vic2EyODUtbGVkcy5jCkBAIC0xMjgsNyArMTI4LDcgQEAKIAogc3RhdGljIGludCBfX2luaXQgbGVkc19pbml0KHZvaWQpCiB7Ci0JaWYgKG1hY2hpbmVfaXNfZWJzYTI4NSgpIHx8IG1hY2hpbmVfaXNfY28yODUoKSkKKwlpZiAobWFjaGluZV9pc19lYnNhMjg1KCkpCiAJCWxlZHNfZXZlbnQgPSBlYnNhMjg1X2xlZHNfZXZlbnQ7CiAKIAlsZWRzX2V2ZW50KGxlZF9zdGFydCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvdGltZS5jIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL3RpbWUuYwppbmRleCA1ZDAyZTk1Li5kNWNmY2RhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvdGltZS5jCisrKyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS90aW1lLmMKQEAgLTExNSw4ICsxMTUsNyBAQAogCiB2b2lkIF9faW5pdCBpc2FfcnRjX2luaXQodm9pZCkKIHsKLQlpZiAobWFjaGluZV9pc19jbzI4NSgpIHx8Ci0JICAgIG1hY2hpbmVfaXNfcGVyc29uYWxfc2VydmVyKCkpCisJaWYgKG1hY2hpbmVfaXNfcGVyc29uYWxfc2VydmVyKCkpCiAJCS8qCiAJCSAqIEFkZC1pbiAyMTI4NXMgc2hvdWxkbid0IGFjY2VzcyB0aGUgUlRDCiAJCSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLWlteC9NYWtlZmlsZQppbmRleCA4OGQ1ZTYxLi5iMDQ3YzdlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLWlteC9NYWtlZmlsZQpAQCAtNCw3ICs0LDcgQEAKIAogIyBPYmplY3QgZmlsZSBsaXN0cy4KIAotb2JqLXkJCQkrPSBpcnEubyB0aW1lLm8gZG1hLm8gZ2VuZXJpYy5vCitvYmoteQkJCSs9IGlycS5vIHRpbWUubyBkbWEubyBnZW5lcmljLm8gY2xvY2subwogCiBvYmotJChDT05GSUdfQ1BVX0ZSRVFfSU1YKQkrPSBjcHVmcmVxLm8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xvY2suYyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsb2NrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE5MGZlNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsb2NrLmMKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4sIFBlbmd1dHJvbml4CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisKKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pbXgtcmVncy5oPgorCisvKgorICogVmVyeSBzaW1wbGUgYXBwcm9hY2g6IFdlIGNhbid0IGRpc2FibGUgY2xvY2tzLCBzbyB3ZSBkbworICogbm90IG5lZWQgcmVmY291bnRpbmcKKyAqLworCitzdHJ1Y3QgY2xrIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CisJY29uc3QgY2hhciAqbmFtZTsKKwl1bnNpZ25lZCBsb25nICgqZ2V0X3JhdGUpKHZvaWQpOworfTsKKworLyoKKyAqICBnZXQgdGhlIHN5c3RlbSBwbGwgY2xvY2sgaW4gSHoKKyAqCisgKiAgICAgICAgICAgICAgICAgIG1maSArIG1mbiAvIChtZmQgKzEpCisgKiAgZiA9IDIgKiBmX3JlZiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgICAgICAgICAgICAgICAgICAgICAgIHBkICsgMQorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbXhfZGVjb2RlX3BsbCh1bnNpZ25lZCBpbnQgcGxsLCB1MzIgZl9yZWYpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIGxsOworCXVuc2lnbmVkIGxvbmcgcXVvdDsKKworCXUzMiBtZmkgPSAocGxsID4+IDEwKSAmIDB4ZjsKKwl1MzIgbWZuID0gcGxsICYgMHgzZmY7CisJdTMyIG1mZCA9IChwbGwgPj4gMTYpICYgMHgzZmY7CisJdTMyIHBkID0gIChwbGwgPj4gMjYpICYgMHhmOworCisJbWZpID0gbWZpIDw9IDUgPyA1IDogbWZpOworCisJbGwgPSAyICogKHVuc2lnbmVkIGxvbmcgbG9uZylmX3JlZiAqCisJCSgobWZpIDw8IDE2KSArIChtZm4gPDwgMTYpIC8gKG1mZCArIDEpKTsKKwlxdW90ID0gKHBkICsgMSkgKiAoMSA8PCAxNik7CisJbGwgKz0gcXVvdCAvIDI7CisJZG9fZGl2KGxsLCBxdW90KTsKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpbGw7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlteF9nZXRfc3lzdGVtX2Nsayh2b2lkKQoreworCXUzMiBmX3JlZiA9IChDU0NSICYgQ1NDUl9TWVNURU1fU0VMKSA/IDE2MDAwMDAwIDogKENMSzMyICogNTEyKTsKKworCXJldHVybiBpbXhfZGVjb2RlX3BsbChTUENUTDAsIGZfcmVmKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgaW14X2dldF9tY3VfY2xrKHZvaWQpCit7CisJcmV0dXJuIGlteF9kZWNvZGVfcGxsKE1QQ1RMMCwgQ0xLMzIgKiA1MTIpOworfQorCisvKgorICogIGdldCBwZXJpcGhlcmFsIGNsb2NrIDEgKCBVQVJUWzEyXSwgVGltZXJbMTJdLCBQV00gKQorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbXhfZ2V0X3BlcmNsazEodm9pZCkKK3sKKwlyZXR1cm4gaW14X2dldF9zeXN0ZW1fY2xrKCkgLyAoKChQQ0RSKSAmIDB4ZikrMSk7Cit9CisKKy8qCisgKiAgZ2V0IHBlcmlwaGVyYWwgY2xvY2sgMiAoIExDRCwgU0QsIFNQSVsxMl0gKQorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbXhfZ2V0X3BlcmNsazIodm9pZCkKK3sKKwlyZXR1cm4gaW14X2dldF9zeXN0ZW1fY2xrKCkgLyAoKChQQ0RSPj40KSAmIDB4ZikrMSk7Cit9CisKKy8qCisgKiAgZ2V0IHBlcmlwaGVyYWwgY2xvY2sgMyAoIFNTSSApCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlteF9nZXRfcGVyY2xrMyh2b2lkKQoreworCXJldHVybiBpbXhfZ2V0X3N5c3RlbV9jbGsoKSAvICgoKFBDRFI+PjE2KSAmIDB4N2YpKzEpOworfQorCisvKgorICogIGdldCBoY2xrICggU0RSQU0sIENTSSwgTWVtb3J5IFN0aWNrLCBJMkMsIERNQSApCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlteF9nZXRfaGNsayh2b2lkKQoreworCXJldHVybiBpbXhfZ2V0X3N5c3RlbV9jbGsoKSAvICgoKENTQ1I+PjEwKSAmIDB4ZikrMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19zeXN0ZW1fY2xrID0geworCS5uYW1lID0gInN5c3RlbV9jbGsiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfc3lzdGVtX2NsaywKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19oY2xrID0geworCS5uYW1lID0gImhjbGsiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfaGNsaywKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19tY3VfY2xrID0geworCS5uYW1lID0gIm1jdV9jbGsiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfbWN1X2NsaywKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19wZXJjbGsxID0geworCS5uYW1lID0gInBlcmNsazEiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfcGVyY2xrMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa191YXJ0X2NsayA9IHsKKwkubmFtZSA9ICJ1YXJ0X2NsayIsCisJLmdldF9yYXRlID0gaW14X2dldF9wZXJjbGsxLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY2xrX3BlcmNsazIgPSB7CisJLm5hbWUgPSAicGVyY2xrMiIsCisJLmdldF9yYXRlID0gaW14X2dldF9wZXJjbGsyLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY2xrX3BlcmNsazMgPSB7CisJLm5hbWUgPSAicGVyY2xrMyIsCisJLmdldF9yYXRlID0gaW14X2dldF9wZXJjbGszLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgKmNsa3NbXSA9IHsKKwkmY2xrX3BlcmNsazEsCisJJmNsa19wZXJjbGsyLAorCSZjbGtfcGVyY2xrMywKKwkmY2xrX3N5c3RlbV9jbGssCisJJmNsa19oY2xrLAorCSZjbGtfbWN1X2NsaywKKwkmY2xrX3VhcnRfY2xrLAorfTsKKworc3RhdGljIExJU1RfSEVBRChjbG9ja3MpOworc3RhdGljIERFRklORV9NVVRFWChjbG9ja3NfbXV0ZXgpOworCitzdHJ1Y3QgY2xrICpjbGtfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqaWQpCit7CisJc3RydWN0IGNsayAqcCwgKmNsayA9IEVSUl9QVFIoLUVOT0VOVCk7CisKKwltdXRleF9sb2NrKCZjbG9ja3NfbXV0ZXgpOworCWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmNsb2Nrcywgbm9kZSkgeworCQlpZiAoIXN0cmNtcChwLT5uYW1lLCBpZCkpIHsKKwkJCWNsayA9IHA7CisJCQlnb3RvIGZvdW5kOworCQl9CisJfQorCitmb3VuZDoKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CisKKwlyZXR1cm4gY2xrOworfQorCit2b2lkIGNsa19wdXQoc3RydWN0IGNsayAqY2xrKQoreworfQorCitpbnQgY2xrX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworfQorCit1bnNpZ25lZCBsb25nIGNsa19nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIGNsay0+Z2V0X3JhdGUoKTsKK30KKworaW50IGlteF9jbG9ja3NfaW5pdCh2b2lkKQoreworCWludCBpOworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjbGtzKTsgaSsrKQorCQlsaXN0X2FkZCgmY2xrc1tpXS0+bm9kZSwgJmNsb2Nrcyk7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworCisJcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2NwdWZyZXEuYyBiL2FyY2gvYXJtL21hY2gtaW14L2NwdWZyZXEuYwppbmRleCBlNTQ4YmE3Li5iZTA4MDliIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9jcHVmcmVxLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvY3B1ZnJlcS5jCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KIAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgpAQCAtNTIsNiArNTQsOCBAQAogc3RhdGljIHUzMiBtcGN0bDBfYXRfYm9vdDsKIHN0YXRpYyB1MzIgYmNsa19kaXZfYXRfYm9vdDsKIAorc3RhdGljIHN0cnVjdCBjbGsgKnN5c3RlbV9jbGssICptY3VfY2xrOworCiBzdGF0aWMgdm9pZCBpbXhfc2V0X2FzeW5jX21vZGUodm9pZCkKIHsKIAlhZGp1c3RfY3IoQ1JfOTIwVF9DTE9DS19NT0RFLCBDUl85MjBUX0FTWU5DX01PREUpOwpAQCAtMTYwLDEwICsxNjQsMTAgQEAKIAljciA9IGdldF9jcigpOwogCiAJaWYoKGNyICYgQ1JfOTIwVF9DTE9DS19NT0RFKSA9PSBDUl85MjBUX0ZBU1RCVVNfTU9ERSkgewotCQlmcmVxID0gaW14X2dldF9zeXN0ZW1fY2xrKCk7CisJCWZyZXEgPSBjbGtfZ2V0X3JhdGUoc3lzdGVtX2Nsayk7CiAJCWZyZXEgPSAoZnJlcSArIGJjbGtfZGl2LzIpIC8gYmNsa19kaXY7CiAJfSBlbHNlIHsKLQkJZnJlcSA9IGlteF9nZXRfbWN1X2NsaygpOworCQlmcmVxID0gY2xrX2dldF9yYXRlKG1jdV9jbGspOwogCQlpZiAoY3NjciAmIENTQ1JfTVBVX1BSRVNDKQogCQkJZnJlcSAvPSAyOwogCX0KQEAgLTIwMSw3ICsyMDUsNyBAQAogCXByX2RlYnVnKEtFUk5fREVCVUcgImlteDogcmVxdWVzdGVkIGZyZXF1ZW5jeSAlbGQgSHosIG1wY3RsMCBhdCBib290IDB4JTA4eFxuIiwKIAkJCWZyZXEsIG1wY3RsMF9hdF9ib290KTsKIAotCXN5c2NsayA9IGlteF9nZXRfc3lzdGVtX2NsaygpOworCXN5c2NsayA9IGNsa19nZXRfcmF0ZShzeXN0ZW1fY2xrKTsKIAogCWlmIChmcmVxID4gc3lzY2xrIC8gYmNsa19kaXZfYXRfYm9vdCArIDEwMDAwMDApIHsKIAkJZnJlcSA9IGlteF9jb21wdXRlX21wY3RsKCZtcGN0bDAsIG1wY3RsMF9hdF9ib290LCBDTEszMiAqIDUxMiwgZnJlcSwgcmVsYXRpb24pOwpAQCAtMjkwLDYgKzI5NCwxNiBAQAogCWJjbGtfZGl2X2F0X2Jvb3QgPSBfX21mbGQydmFsKENTQ1JfQkNMS19ESVYsIENTQ1IpICsgMTsKIAltcGN0bDBfYXRfYm9vdCA9IDA7CiAKKwlzeXN0ZW1fY2xrID0gY2xrX2dldChOVUxMLCAic3lzdGVtX2NsayIpOworCWlmIChJU19FUlIoc3lzdGVtX2NsaykpCisJCXJldHVybiBQVFJfRVJSKHN5c3RlbV9jbGspOworCisJbWN1X2NsayA9IGNsa19nZXQoTlVMTCwgIm1jdV9jbGsiKTsKKwlpZiAoSVNfRVJSKG1jdV9jbGspKSB7CisJCWNsa19wdXQoc3lzdGVtX2Nsayk7CisJCXJldHVybiBQVFJfRVJSKG1jdV9jbGspOworCX0KKwogCWlmKChDU0NSICYgQ1NDUl9NUEVOKSAmJgogCSAgICgoZ2V0X2NyKCkgJiBDUl85MjBUX0NMT0NLX01PREUpICE9IENSXzkyMFRfRkFTVEJVU19NT0RFKSkKIAkJbXBjdGwwX2F0X2Jvb3QgPSBNUENUTDA7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9kbWEuYyBiL2FyY2gvYXJtL21hY2gtaW14L2RtYS5jCmluZGV4IGE1OWZmMjkuLmVlMWM2ZjAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L2RtYS5jCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2RtYS5jCkBAIC00MTAsNyArNDEwLDYgQEAKIAogLyoqCiAgKiBpbXhfZG1hX3JlcXVlc3RfYnlfcHJpbyAtIGZpbmQgYW5kIHJlcXVlc3Qgc29tZSBvZiBmcmVlIGNoYW5uZWxzIGJlc3Qgc3VpdGluZyByZXF1ZXN0ZWQgcHJpb3JpdHkKLSAqIEBkbWFfY2g6IGkuTVggRE1BIGNoYW5uZWwgbnVtYmVyCiAgKiBAbmFtZTogdGhlIGRyaXZlci9jYWxsZXIgb3duIG5vbi0lTlVMTCBpZGVudGlmaWNhdGlvbgogICogQHByaW86IG9uZSBvZiB0aGUgaGFyZHdhcmUgZGlzdGluZ3Vpc2hlZCBwcmlvcml0eSBsZXZlbDoKICAqICAgICAgICAlRE1BX1BSSU9fSElHSCwgJURNQV9QUklPX01FRElVTSwgJURNQV9QUklPX0xPVwpAQCAtNDIwLDExICs0MTksOSBAQAogICogaW4gdGhlIGhpZ2hlciBhbmQgdGhlbiBldmVuIGxvd2VyIHByaW9yaXR5IGdyb3Vwcy4KICAqCiAgKiBSZXR1cm4gdmFsdWU6IElmIHRoZXJlIGlzIG5vIGZyZWUgY2hhbm5lbCB0byBhbGxvY2F0ZSwgLSVFTk9ERVYgaXMgcmV0dXJuZWQuCi0gKiAgICAgICAgICAgICAgIFplcm8gdmFsdWUgaW5kaWNhdGVzIHN1Y2Nlc3NmdWwgY2hhbm5lbCBhbGxvY2F0aW9uLgorICogICAgICAgICAgICAgICBPbiBzdWNjZXNzZnVsIGFsbG9jYXRpb24gY2hhbm5lbCBpcyByZXR1cm5lZC4KICAqLwotaW50Ci1pbXhfZG1hX3JlcXVlc3RfYnlfcHJpbyhpbXhfZG1hY2hfdCAqIHBkbWFfY2gsIGNvbnN0IGNoYXIgKm5hbWUsCi0JCQlpbXhfZG1hX3ByaW8gcHJpbykKK2lteF9kbWFjaF90IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKGNvbnN0IGNoYXIgKm5hbWUsIGlteF9kbWFfcHJpbyBwcmlvKQogewogCWludCBpOwogCWludCBiZXN0OwpAQCAtNDQ0LDE1ICs0NDEsMTMgQEAKIAogCWZvciAoaSA9IGJlc3Q7IGkgPCBJTVhfRE1BX0NIQU5ORUxTOyBpKyspIHsKIAkJaWYgKCFpbXhfZG1hX3JlcXVlc3QoaSwgbmFtZSkpIHsKLQkJCSpwZG1hX2NoID0gaTsKLQkJCXJldHVybiAwOworCQkJcmV0dXJuIGk7CiAJCX0KIAl9CiAKIAlmb3IgKGkgPSBiZXN0IC0gMTsgaSA+PSAwOyBpLS0pIHsKIAkJaWYgKCFpbXhfZG1hX3JlcXVlc3QoaSwgbmFtZSkpIHsKLQkJCSpwZG1hX2NoID0gaTsKLQkJCXJldHVybiAwOworCQkJcmV0dXJuIGk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2dlbmVyaWMuYyBiL2FyY2gvYXJtL21hY2gtaW14L2dlbmVyaWMuYwppbmRleCA0Y2ZjOWQzLi45OGRkZDhhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9nZW5lcmljLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvZ2VuZXJpYy5jCkBAIC0yMTQsODIgKzIxNCw2IEBACiAKIEVYUE9SVF9TWU1CT0woaW14X2lycV90b19ncGlvKTsKIAotLyoKLSAqICBnZXQgdGhlIHN5c3RlbSBwbGwgY2xvY2sgaW4gSHoKLSAqCi0gKiAgICAgICAgICAgICAgICAgIG1maSArIG1mbiAvIChtZmQgKzEpCi0gKiAgZiA9IDIgKiBmX3JlZiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIHBkICsgMQotICovCi1zdGF0aWMgdW5zaWduZWQgaW50IGlteF9kZWNvZGVfcGxsKHVuc2lnbmVkIGludCBwbGwsIHUzMiBmX3JlZikKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgbGw7Ci0JdW5zaWduZWQgbG9uZyBxdW90OwotCi0JdTMyIG1maSA9IChwbGwgPj4gMTApICYgMHhmOwotCXUzMiBtZm4gPSBwbGwgJiAweDNmZjsKLQl1MzIgbWZkID0gKHBsbCA+PiAxNikgJiAweDNmZjsKLQl1MzIgcGQgPSAgKHBsbCA+PiAyNikgJiAweGY7Ci0KLQltZmkgPSBtZmkgPD0gNSA/IDUgOiBtZmk7Ci0KLQlsbCA9IDIgKiAodW5zaWduZWQgbG9uZyBsb25nKWZfcmVmICogKCAobWZpPDwxNikgKyAobWZuPDwxNikgLyAobWZkKzEpICk7Ci0JcXVvdCA9IChwZCsxKSAqICgxPDwxNik7Ci0JbGwgKz0gcXVvdCAvIDI7Ci0JZG9fZGl2KGxsLCBxdW90KTsKLQlyZXR1cm4gKHVuc2lnbmVkIGludCkgbGw7Ci19Ci0KLXVuc2lnbmVkIGludCBpbXhfZ2V0X3N5c3RlbV9jbGsodm9pZCkKLXsKLQl1MzIgZl9yZWYgPSAoQ1NDUiAmIENTQ1JfU1lTVEVNX1NFTCkgPyAxNjAwMDAwMCA6IChDTEszMiAqIDUxMik7Ci0KLQlyZXR1cm4gaW14X2RlY29kZV9wbGwoU1BDVEwwLCBmX3JlZik7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfc3lzdGVtX2Nsayk7Ci0KLXVuc2lnbmVkIGludCBpbXhfZ2V0X21jdV9jbGsodm9pZCkKLXsKLQlyZXR1cm4gaW14X2RlY29kZV9wbGwoTVBDVEwwLCBDTEszMiAqIDUxMik7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfbWN1X2Nsayk7Ci0KLS8qCi0gKiAgZ2V0IHBlcmlwaGVyYWwgY2xvY2sgMSAoIFVBUlRbMTJdLCBUaW1lclsxMl0sIFBXTSApCi0gKi8KLXVuc2lnbmVkIGludCBpbXhfZ2V0X3BlcmNsazEodm9pZCkKLXsKLQlyZXR1cm4gaW14X2dldF9zeXN0ZW1fY2xrKCkgLyAoKChQQ0RSKSAmIDB4ZikrMSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfcGVyY2xrMSk7Ci0KLS8qCi0gKiAgZ2V0IHBlcmlwaGVyYWwgY2xvY2sgMiAoIExDRCwgU0QsIFNQSVsxMl0gKQotICovCi11bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGsyKHZvaWQpCi17Ci0JcmV0dXJuIGlteF9nZXRfc3lzdGVtX2NsaygpIC8gKCgoUENEUj4+NCkgJiAweGYpKzEpOwotfQotRVhQT1JUX1NZTUJPTChpbXhfZ2V0X3BlcmNsazIpOwotCi0vKgotICogIGdldCBwZXJpcGhlcmFsIGNsb2NrIDMgKCBTU0kgKQotICovCi11bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGszKHZvaWQpCi17Ci0JcmV0dXJuIGlteF9nZXRfc3lzdGVtX2NsaygpIC8gKCgoUENEUj4+MTYpICYgMHg3ZikrMSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfcGVyY2xrMyk7Ci0KLS8qCi0gKiAgZ2V0IGhjbGsgKCBTRFJBTSwgQ1NJLCBNZW1vcnkgU3RpY2ssIEkyQywgRE1BICkKLSAqLwotdW5zaWduZWQgaW50IGlteF9nZXRfaGNsayh2b2lkKQotewotCXJldHVybiBpbXhfZ2V0X3N5c3RlbV9jbGsoKSAvICgoKENTQ1I+PjEwKSAmIDB4ZikrMSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfaGNsayk7Ci0KIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgaW14X21tY19yZXNvdXJjZXNbXSA9IHsKIAlbMF0gPSB7CiAJCS5zdGFydAk9IDB4MDAyMTQwMDAsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9teDFhZHMuYyBiL2FyY2gvYXJtL21hY2gtaW14L214MWFkcy5jCmluZGV4IGE5Nzc4YzEuLjk2MzVkNTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L214MWFkcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L214MWFkcy5jCkBAIC02OSw2ICs2OSwxMSBAQAogCQkuZW5kCT0gKFVBUlQxX01JTlRfVFgpLAogCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKIAl9LAorCVszXSA9IHsKKwkJLnN0YXJ0CT0gVUFSVDFfTUlOVF9SVFMsCisJCS5lbmQJPSBVQVJUMV9NSU5UX1JUUywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGlteF91YXJ0MV9kZXZpY2UgPSB7CkBAIC05Nyw2ICsxMDIsMTEgQEAKIAkJLmVuZAk9IChVQVJUMl9NSU5UX1RYKSwKIAkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCiAJfSwKKwlbM10gPSB7CisJCS5zdGFydAk9IFVBUlQyX01JTlRfUlRTLAorCQkuZW5kCT0gVUFSVDJfTUlOVF9SVFMsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBpbXhfdWFydDJfZGV2aWNlID0gewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvdGltZS5jIGIvYXJjaC9hcm0vbWFjaC1pbXgvdGltZS5jCmluZGV4IGQ4NmQxMjQuLjVhNDFlOTYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L3RpbWUuYworKysgYi9hcmNoL2FybS9tYWNoLWlteC90aW1lLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KICNpbmNsdWRlIDxsaW51eC9jbG9ja2NoaXBzLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTg2LDEwICs4NywxMCBAQAogCS5mbGFncwkJPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGlteF9jbG9ja3NvdXJjZV9pbml0KHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBpbXhfY2xvY2tzb3VyY2VfaW5pdCh1bnNpZ25lZCBsb25nIHJhdGUpCiB7CiAJY2xvY2tzb3VyY2VfaW14Lm11bHQgPQotCQljbG9ja3NvdXJjZV9oejJtdWx0KGlteF9nZXRfcGVyY2xrMSgpLCBjbG9ja3NvdXJjZV9pbXguc2hpZnQpOworCQljbG9ja3NvdXJjZV9oejJtdWx0KHJhdGUsIGNsb2Nrc291cmNlX2lteC5zaGlmdCk7CiAJY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX2lteCk7CiAKIAlyZXR1cm4gMDsKQEAgLTE3NCw5ICsxNzUsOSBAQAogCS5yYXRpbmcJCT0gMjAwLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgaW14X2Nsb2NrZXZlbnRfaW5pdCh2b2lkKQorc3RhdGljIGludCBfX2luaXQgaW14X2Nsb2NrZXZlbnRfaW5pdCh1bnNpZ25lZCBsb25nIHJhdGUpCiB7Ci0JY2xvY2tldmVudF9pbXgubXVsdCA9IGRpdl9zYyhpbXhfZ2V0X3BlcmNsazEoKSwgTlNFQ19QRVJfU0VDLAorCWNsb2NrZXZlbnRfaW14Lm11bHQgPSBkaXZfc2MocmF0ZSwgTlNFQ19QRVJfU0VDLAogCQkJCQljbG9ja2V2ZW50X2lteC5zaGlmdCk7CiAJY2xvY2tldmVudF9pbXgubWF4X2RlbHRhX25zID0KIAkJY2xvY2tldmVudF9kZWx0YTJucygweGZmZmZmZmZlLCAmY2xvY2tldmVudF9pbXgpOwpAQCAtMTkwLDEzICsxOTEsMjMgQEAKIAlyZXR1cm4gMDsKIH0KIAorZXh0ZXJuIGludCBpbXhfY2xvY2tzX2luaXQodm9pZCk7CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBpbXhfdGltZXJfaW5pdCh2b2lkKQogewotCWlteF90aW1lcl9oYXJkd2FyZV9pbml0KCk7Ci0JaW14X2Nsb2Nrc291cmNlX2luaXQoKTsKKwlzdHJ1Y3QgY2xrICpjbGs7CisJdW5zaWduZWQgbG9uZyByYXRlOwogCi0JaW14X2Nsb2NrZXZlbnRfaW5pdCgpOworCWlteF9jbG9ja3NfaW5pdCgpOworCisJY2xrID0gY2xrX2dldChOVUxMLCAicGVyY2xrMSIpOworCWNsa19lbmFibGUoY2xrKTsKKwlyYXRlID0gY2xrX2dldF9yYXRlKGNsayk7CisKKwlpbXhfdGltZXJfaGFyZHdhcmVfaW5pdCgpOworCWlteF9jbG9ja3NvdXJjZV9pbml0KHJhdGUpOworCisJaW14X2Nsb2NrZXZlbnRfaW5pdChyYXRlKTsKIAogCS8qCiAJICogTWFrZSBpcnFzIGhhcHBlbiBmb3IgdGhlIHN5c3RlbSB0aW1lcgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL01ha2VmaWxlCmluZGV4IDE1OGRhYWYuLjZhNWVmOGQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRvci9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvTWFrZWZpbGUKQEAgLTQsNyArNCw3IEBACiAKICMgT2JqZWN0IGZpbGUgbGlzdHMuCiAKLW9iai15CQkJCQk6PSBjbG9jay5vIGNvcmUubyBsbS5vIHRpbWUubworb2JqLXkJCQkJCTo9IGNsb2NrLm8gY29yZS5vIGxtLm8KIG9iai0kKENPTkZJR19BUkNIX0lOVEVHUkFUT1JfQVApCSs9IGludGVncmF0b3JfYXAubwogb2JqLSQoQ09ORklHX0FSQ0hfSU5URUdSQVRPUl9DUCkJKz0gaW50ZWdyYXRvcl9jcC5vCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRvci90aW1lLmMgYi9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvdGltZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTA4YTBkLi4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRvci90aW1lLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMjMgKzAsMCBAQAotLyoKLSAqICBsaW51eC9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvdGltZS5jCi0gKgotICogIENvcHlyaWdodCAoQykgMjAwMC0yMDAxIERlZXAgQmx1ZSBTb2x1dGlvbnMgTHRkLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKi8KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1lLmg+Ci0jaW5jbHVkZSA8bGludXgvbWMxNDY4MThydGMuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvYW1iYS9idXMuaD4KLQotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8YXNtL3J0Yy5oPgotCi0jaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgotCi0jZGVmaW5lIFJUQ19EUgkJKDApCi0jZGVmaW5lIFJUQ19NUgkJKDQpCi0jZGVmaW5lIFJUQ19TVEFUCSg4KQotI2RlZmluZSBSVENfRU9JCQkoOCkKLSNkZWZpbmUgUlRDX0xSCQkoMTIpCi0jZGVmaW5lIFJUQ19DUgkJKDE2KQotI2RlZmluZSBSVENfQ1JfTUlFCSgxIDw8IDApCi0KLWV4dGVybiBpbnQgKCpzZXRfcnRjKSh2b2lkKTsKLXN0YXRpYyB2b2lkIF9faW9tZW0gKnJ0Y19iYXNlOwotCi1zdGF0aWMgaW50IGludGVncmF0b3Jfc2V0X3J0Yyh2b2lkKQotewotCV9fcmF3X3dyaXRlbCh4dGltZS50dl9zZWMsIHJ0Y19iYXNlICsgUlRDX0xSKTsKLQlyZXR1cm4gMTsKLX0KLQotc3RhdGljIGludCBpbnRlZ3JhdG9yX3J0Y19yZWFkX2FsYXJtKHN0cnVjdCBydGNfd2thbHJtICphbHJtKQotewotCXJ0Y190aW1lX3RvX3RtKHJlYWRsKHJ0Y19iYXNlICsgUlRDX01SKSwgJmFscm0tPnRpbWUpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBpbnRlZ3JhdG9yX3J0Y19zZXRfYWxhcm0oc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCi17Ci0JdW5zaWduZWQgbG9uZyB0aW1lOwotCWludCByZXQ7Ci0KLQkvKgotCSAqIEF0IHRoZSBtb21lbnQsIHdlIGNhbiBvbmx5IGRlYWwgd2l0aCBub24td2lsZGNhcmRlZCBhbGFybSB0aW1lcy4KLQkgKi8KLQlyZXQgPSBydGNfdmFsaWRfdG0oJmFscm0tPnRpbWUpOwotCWlmIChyZXQgPT0gMCkKLQkJcmV0ID0gcnRjX3RtX3RvX3RpbWUoJmFscm0tPnRpbWUsICZ0aW1lKTsKLQlpZiAocmV0ID09IDApCi0JCXdyaXRlbCh0aW1lLCBydGNfYmFzZSArIFJUQ19NUik7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBpbnRlZ3JhdG9yX3J0Y19yZWFkX3RpbWUoc3RydWN0IHJ0Y190aW1lICp0bSkKLXsKLQlydGNfdGltZV90b190bShyZWFkbChydGNfYmFzZSArIFJUQ19EUiksIHRtKTsKLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIFNldCB0aGUgUlRDIHRpbWUuICBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW4ndCBhY2N1cmF0ZWx5IHNldAotICogdGhlIHBvaW50IGF0IHdoaWNoIHRoZSBjb3VudGVyIHVwZGF0ZXMuCi0gKgotICogQWxzbywgc2luY2UgUlRDX0xSIGlzIHRyYW5zZmVycmVkIHRvIFJUQ19DUiBvbiBuZXh0IHJpc2luZwotICogZWRnZSBvZiB0aGUgMUh6IGNsb2NrLCB3ZSBtdXN0IHdyaXRlIHRoZSB0aW1lIG9uZSBzZWNvbmQKLSAqIGluIGFkdmFuY2UuCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50IGludGVncmF0b3JfcnRjX3NldF90aW1lKHN0cnVjdCBydGNfdGltZSAqdG0pCi17Ci0JdW5zaWduZWQgbG9uZyB0aW1lOwotCWludCByZXQ7Ci0KLQlyZXQgPSBydGNfdG1fdG9fdGltZSh0bSwgJnRpbWUpOwotCWlmIChyZXQgPT0gMCkKLQkJd3JpdGVsKHRpbWUgKyAxLCBydGNfYmFzZSArIFJUQ19MUik7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgc3RydWN0IHJ0Y19vcHMgcnRjX29wcyA9IHsKLQkub3duZXIJCT0gVEhJU19NT0RVTEUsCi0JLnJlYWRfdGltZQk9IGludGVncmF0b3JfcnRjX3JlYWRfdGltZSwKLQkuc2V0X3RpbWUJPSBpbnRlZ3JhdG9yX3J0Y19zZXRfdGltZSwKLQkucmVhZF9hbGFybQk9IGludGVncmF0b3JfcnRjX3JlYWRfYWxhcm0sCi0JLnNldF9hbGFybQk9IGludGVncmF0b3JfcnRjX3NldF9hbGFybSwKLX07Ci0KLXN0YXRpYyBpcnFyZXR1cm5fdCBhcm1fcnRjX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCi17Ci0Jd3JpdGVsKDAsIHJ0Y19iYXNlICsgUlRDX0VPSSk7Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi1zdGF0aWMgaW50IHJ0Y19wcm9iZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldiwgdm9pZCAqaWQpCi17Ci0JaW50IHJldDsKLQotCWlmIChydGNfYmFzZSkKLQkJcmV0dXJuIC1FQlVTWTsKLQotCXJldCA9IGFtYmFfcmVxdWVzdF9yZWdpb25zKGRldiwgTlVMTCk7Ci0JaWYgKHJldCkKLQkJZ290byBvdXQ7Ci0KLQlydGNfYmFzZSA9IGlvcmVtYXAoZGV2LT5yZXMuc3RhcnQsIFNaXzRLKTsKLQlpZiAoIXJ0Y19iYXNlKSB7Ci0JCXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gcmVzX291dDsKLQl9Ci0KLQlfX3Jhd193cml0ZWwoMCwgcnRjX2Jhc2UgKyBSVENfQ1IpOwotCV9fcmF3X3dyaXRlbCgwLCBydGNfYmFzZSArIFJUQ19FT0kpOwotCi0JeHRpbWUudHZfc2VjID0gX19yYXdfcmVhZGwocnRjX2Jhc2UgKyBSVENfRFIpOwotCi0JLyogbm90ZSB0aGF0ICdkZXYnIGlzIG1lcmVseSB1c2VkIGZvciBpcnEgZGlzYW1iaWd1YXRpb247Ci0JICogaXQgaXMgbm90IGFjdHVhbGx5IHJlZmVyZW5jZWQgaW4gdGhlIGlycSBoYW5kbGVyCi0JICovCi0JcmV0ID0gcmVxdWVzdF9pcnEoZGV2LT5pcnFbMF0sIGFybV9ydGNfaW50ZXJydXB0LCBJUlFGX0RJU0FCTEVELAotCQkJICAicnRjLXBsMDMwIiwgZGV2KTsKLQlpZiAocmV0KQotCQlnb3RvIG1hcF9vdXQ7Ci0KLQlyZXQgPSByZWdpc3Rlcl9ydGMoJnJ0Y19vcHMpOwotCWlmIChyZXQpCi0JCWdvdG8gaXJxX291dDsKLQotCXNldF9ydGMgPSBpbnRlZ3JhdG9yX3NldF9ydGM7Ci0JcmV0dXJuIDA7Ci0KLSBpcnFfb3V0OgotCWZyZWVfaXJxKGRldi0+aXJxWzBdLCBkZXYpOwotIG1hcF9vdXQ6Ci0JaW91bm1hcChydGNfYmFzZSk7Ci0JcnRjX2Jhc2UgPSBOVUxMOwotIHJlc19vdXQ6Ci0JYW1iYV9yZWxlYXNlX3JlZ2lvbnMoZGV2KTsKLSBvdXQ6Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBydGNfcmVtb3ZlKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQotewotCXNldF9ydGMgPSBOVUxMOwotCi0Jd3JpdGVsKDAsIHJ0Y19iYXNlICsgUlRDX0NSKTsKLQotCWZyZWVfaXJxKGRldi0+aXJxWzBdLCBkZXYpOwotCXVucmVnaXN0ZXJfcnRjKCZydGNfb3BzKTsKLQotCWlvdW5tYXAocnRjX2Jhc2UpOwotCXJ0Y19iYXNlID0gTlVMTDsKLQlhbWJhX3JlbGVhc2VfcmVnaW9ucyhkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgdGltZXNwZWMgcnRjX2RlbHRhOwotCi1zdGF0aWMgaW50IHJ0Y19zdXNwZW5kKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCi17Ci0Jc3RydWN0IHRpbWVzcGVjIHJ0YzsKLQotCXJ0Yy50dl9zZWMgPSByZWFkbChydGNfYmFzZSArIFJUQ19EUik7Ci0JcnRjLnR2X25zZWMgPSAwOwotCXNhdmVfdGltZV9kZWx0YSgmcnRjX2RlbHRhLCAmcnRjKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJ0Y19yZXN1bWUoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHRpbWVzcGVjIHJ0YzsKLQotCXJ0Yy50dl9zZWMgPSByZWFkbChydGNfYmFzZSArIFJUQ19EUik7Ci0JcnRjLnR2X25zZWMgPSAwOwotCXJlc3RvcmVfdGltZV9kZWx0YSgmcnRjX2RlbHRhLCAmcnRjKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IGFtYmFfaWQgcnRjX2lkc1tdID0gewotCXsKLQkJLmlkCT0gMHgwMDA0MTAzMCwKLQkJLm1hc2sJPSAweDAwMGZmZmZmLAotCX0sCi0JeyAwLCAwIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IGFtYmFfZHJpdmVyIHJ0Y19kcml2ZXIgPSB7Ci0JLmRydgkJPSB7Ci0JCS5uYW1lCT0gInJ0Yy1wbDAzMCIsCi0JfSwKLQkucHJvYmUJCT0gcnRjX3Byb2JlLAotCS5yZW1vdmUJCT0gcnRjX3JlbW92ZSwKLQkuc3VzcGVuZAk9IHJ0Y19zdXNwZW5kLAotCS5yZXN1bWUJCT0gcnRjX3Jlc3VtZSwKLQkuaWRfdGFibGUJPSBydGNfaWRzLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgaW50ZWdyYXRvcl9ydGNfaW5pdCh2b2lkKQotewotCXJldHVybiBhbWJhX2RyaXZlcl9yZWdpc3RlcigmcnRjX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBpbnRlZ3JhdG9yX3J0Y19leGl0KHZvaWQpCi17Ci0JYW1iYV9kcml2ZXJfdW5yZWdpc3RlcigmcnRjX2RyaXZlcik7Ci19Ci0KLW1vZHVsZV9pbml0KGludGVncmF0b3JfcnRjX2luaXQpOwotbW9kdWxlX2V4aXQoaW50ZWdyYXRvcl9ydGNfZXhpdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1peHA0eHgvS2NvbmZpZwppbmRleCBlNzc0NDQ3Li5kYjhiNWZlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L0tjb25maWcKQEAgLTEyNSw2ICsxMjUsMTUgQEAKIAlkZXBlbmRzIG9uIEFSQ0hfSVhEUDQyNSB8fCBNQUNIX0lYRFA0NjUgfHwgTUFDSF9LSVhSUDQzNQogCWRlZmF1bHQgeQogCitjb25maWcgTUFDSF9GU0cKKwlib29sCisJcHJvbXB0ICJGcmVlY29tIEZTRy0zIgorCXNlbGVjdCBQQ0kKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCBGcmVlY29tJ3MKKwkgIEZTRy0zIGRldmljZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcyBwbGF0Zm9ybSwKKwkgIHNlZSBodHRwOi8vd3d3Lm5zbHUyLWxpbnV4Lm9yZy93aWtpL0ZTRzMvSG9tZVBhZ2UKKwogIwogIyBDZXJ0YWluIHJlZ2lzdGVycyBhbmQgSVJRcyBhcmUgb25seSBlbmFibGVkIGlmIHN1cHBvcnRpbmcgSVhQNDY1IENQVXMKICMKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1peHA0eHgvTWFrZWZpbGUKaW5kZXggYzE5NTY4OC4uMmU2YmJmOSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1peHA0eHgvTWFrZWZpbGUKQEAgLTE1LDYgKzE1LDcgQEAKIG9iai1wY2ktJChDT05GSUdfTUFDSF9EU01HNjAwKQkJKz0gZHNtZzYwMC1wY2kubwogb2JqLXBjaS0kKENPTkZJR19NQUNIX0dBVEVXQVk3MDAxKQkrPSBnYXRld2F5NzAwMS1wY2kubwogb2JqLXBjaS0kKENPTkZJR19NQUNIX1dHMzAyVjIpCQkrPSB3ZzMwMnYyLXBjaS5vCitvYmotcGNpLSQoQ09ORklHX01BQ0hfRlNHKQkJKz0gZnNnLXBjaS5vCiAKIG9iai15CSs9IGNvbW1vbi5vCiAKQEAgLTI4LDYgKzI5LDcgQEAKIG9iai0kKENPTkZJR19NQUNIX0RTTUc2MDApICAgICAgKz0gZHNtZzYwMC1zZXR1cC5vCiBvYmotJChDT05GSUdfTUFDSF9HQVRFV0FZNzAwMSkJKz0gZ2F0ZXdheTcwMDEtc2V0dXAubwogb2JqLSQoQ09ORklHX01BQ0hfV0czMDJWMikJKz0gd2czMDJ2Mi1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9GU0cpCQkrPSBmc2ctc2V0dXAubwogCiBvYmotJChDT05GSUdfUENJKQkJKz0gJChvYmotcGNpLSQoQ09ORklHX1BDSSkpIGNvbW1vbi1wY2kubwogb2JqLSQoQ09ORklHX0lYUDRYWF9RTUdSKQkrPSBpeHA0eHhfcW1nci5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9jb21tb24uYyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L2NvbW1vbi5jCmluZGV4IGY2ZDY2ZGMuLjM3ODFiM2QgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaXhwNHh4L2NvbW1vbi5jCisrKyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L2NvbW1vbi5jCkBAIC0zMjYsMTEgKzMyNiwxMSBAQAogfTsKIAogLyoKLSAqIFVTQiBkZXZpY2UgY29udHJvbGxlci4gVGhlIElYUDR4eCB1c2VzIHRoZSBzYW1lIGNvbnRyb2xsZXIgYXMgUFhBMlhYLAorICogVVNCIGRldmljZSBjb250cm9sbGVyLiBUaGUgSVhQNHh4IHVzZXMgdGhlIHNhbWUgY29udHJvbGxlciBhcyBQWEEyNVgsCiAgKiBzbyB3ZSBqdXN0IHVzZSB0aGUgc2FtZSBkZXZpY2UuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGl4cDR4eF91ZGNfZGV2aWNlID0gewotCS5uYW1lICAgICAgICAgICA9ICJweGEyeHgtdWRjIiwKKwkubmFtZSAgICAgICAgICAgPSAicHhhMjV4LXVkYyIsCiAJLmlkICAgICAgICAgICAgID0gLTEsCiAJLm51bV9yZXNvdXJjZXMgID0gMiwKIAkucmVzb3VyY2UgICAgICAgPSBpeHA0eHhfdWRjX3Jlc291cmNlcywKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaXhwNHh4L2ZzZy1wY2kuYyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L2ZzZy1wY2kuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTlmM2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1peHA0eHgvZnNnLXBjaS5jCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBhcmNoL2FyY2gvbWFjaC1peHA0eHgvZnNnLXBjaS5jCisgKgorICogRlNHIGJvYXJkLWxldmVsIFBDSSBpbml0aWFsaXphdGlvbgorICoKKyAqIEF1dGhvcjogUm9kIFdoaXRieSA8cm9kQHdoaXRieS5pZC5hdT4KKyAqIE1haW50YWluZXI6IGh0dHA6Ly93d3cubnNsdTItbGludXgub3JnLworICoKKyAqIGJhc2VkIG9uIGl4ZHA0MjUtcGNpLmM6CisgKglDb3B5cmlnaHQgKEMpIDIwMDIgSW50ZWwgQ29ycG9yYXRpb24uCisgKglDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNCBNb250YVZpc3RhIFNvZnR3YXJlLCBJbmMuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisKK3ZvaWQgX19pbml0IGZzZ19wY2lfcHJlaW5pdCh2b2lkKQoreworCXNldF9pcnFfdHlwZShJUlFfRlNHX1BDSV9JTlRBLCBJUlFUX0xPVyk7CisJc2V0X2lycV90eXBlKElSUV9GU0dfUENJX0lOVEIsIElSUVRfTE9XKTsKKwlzZXRfaXJxX3R5cGUoSVJRX0ZTR19QQ0lfSU5UQywgSVJRVF9MT1cpOworCisJaXhwNHh4X3BjaV9wcmVpbml0KCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGZzZ19tYXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNsb3QsIHU4IHBpbikKK3sKKwlzdGF0aWMgaW50IHBjaV9pcnFfdGFibGVbRlNHX1BDSV9JUlFfTElORVNdID0geworCQlJUlFfRlNHX1BDSV9JTlRDLAorCQlJUlFfRlNHX1BDSV9JTlRCLAorCQlJUlFfRlNHX1BDSV9JTlRBLAorCX07CisKKwlpbnQgaXJxID0gLTE7CisJc2xvdCA9IHNsb3QgLSAxMTsKKworCWlmIChzbG90ID49IDEgJiYgc2xvdCA8PSBGU0dfUENJX01BWF9ERVYgJiYKKwkgICAgcGluID49IDEgJiYgcGluIDw9IEZTR19QQ0lfSVJRX0xJTkVTKQorCQlpcnEgPSBwY2lfaXJxX3RhYmxlWyhzbG90IC0gMSldOworCXByaW50ayhLRVJOX0lORk8gIiVzOiBNYXBwZWQgc2xvdCAlZCBwaW4gJWQgdG8gSVJRICVkXG4iLAorCSAgICAgICBfX2Z1bmNfXywgc2xvdCwgcGluLCBpcnEpOworCisJcmV0dXJuIGlycTsKK30KKworc3RydWN0IGh3X3BjaSBmc2dfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzID0gMSwKKwkucHJlaW5pdCA9CSAgZnNnX3BjaV9wcmVpbml0LAorCS5zd2l6emxlID0JICBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwID0JICBpeHA0eHhfc2V0dXAsCisJLnNjYW4gPQkJICBpeHA0eHhfc2Nhbl9idXMsCisJLm1hcF9pcnEgPQkgIGZzZ19tYXBfaXJxLAorfTsKKworaW50IF9faW5pdCBmc2dfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19mc2coKSkKKwkJcGNpX2NvbW1vbl9pbml0KCZmc2dfcGNpKTsKKwlyZXR1cm4gMDsKK30KKworc3Vic3lzX2luaXRjYWxsKGZzZ19wY2lfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L2ZzZy1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkYjNhOTAKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctc2V0dXAuYwpAQCAtMCwwICsxLDI3NiBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtaXhwNHh4L2ZzZy1zZXR1cC5jCisgKgorICogRlNHIGJvYXJkLXNldHVwCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFJvZCBXaGl0YnkgPHJvZEB3aGl0YnkuaWQuYXU+CisgKgorICogYmFzZWQgb24gaXhkcDQyNS1zZXR1cC5jOgorICoJQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQgTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgorICogYmFzZWQgb24gbnNsdTItcG93ZXIuYworICoJQ29weXJpZ2h0IChDKSAyMDA1IFRvd2VyIFRlY2hub2xvZ2llcworICoKKyAqIEF1dGhvcjogUm9kIFdoaXRieSA8cm9kQHdoaXRieS5pZC5hdT4KKyAqIE1haW50YWluZXJzOiBodHRwOi8vd3d3Lm5zbHUyLWxpbnV4Lm9yZy8KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsXzgyNTAuaD4KKyNpbmNsdWRlIDxsaW51eC9sZWRzLmg+CisjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLWdwaW8uaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2ZsYXNoLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL2dwaW8uaD4KKworc3RhdGljIHN0cnVjdCBmbGFzaF9wbGF0Zm9ybV9kYXRhIGZzZ19mbGFzaF9kYXRhID0geworCS5tYXBfbmFtZQkJPSAiY2ZpX3Byb2JlIiwKKwkud2lkdGgJCQk9IDIsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGZzZ19mbGFzaF9yZXNvdXJjZSA9IHsKKwkuZmxhZ3MJCQk9IElPUkVTT1VSQ0VfTUVNLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZnNnX2ZsYXNoID0geworCS5uYW1lCQkJPSAiSVhQNFhYLUZsYXNoIiwKKwkuaWQJCQk9IDAsCisJLmRldiA9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZnNnX2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwkJPSAxLAorCS5yZXNvdXJjZQkJPSAmZnNnX2ZsYXNoX3Jlc291cmNlLAorfTsKKworc3RhdGljIHN0cnVjdCBpMmNfZ3Bpb19wbGF0Zm9ybV9kYXRhIGZzZ19pMmNfZ3Bpb19kYXRhID0geworCS5zZGFfcGluCQk9IEZTR19TREFfUElOLAorCS5zY2xfcGluCQk9IEZTR19TQ0xfUElOLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZnNnX2kyY19ncGlvID0geworCS5uYW1lCQkJPSAiaTJjLWdwaW8iLAorCS5pZAkJCT0gMCwKKwkuZGV2ID0geworCQkucGxhdGZvcm1fZGF0YQk9ICZmc2dfaTJjX2dwaW9fZGF0YSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBfX2luaXRkYXRhIGZzZ19pMmNfYm9hcmRfaW5mbyBbXSA9IHsKKwl7CisJCUkyQ19CT0FSRF9JTkZPKCJydGMtaXNsMTIwOCIsIDB4NmYpLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGZzZ191YXJ0X3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IElYUDRYWF9VQVJUMV9CQVNFX1BIWVMsCisJCS5lbmQJCT0gSVhQNFhYX1VBUlQxX0JBU0VfUEhZUyArIDB4MGZmZiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJeworCQkuc3RhcnQJCT0gSVhQNFhYX1VBUlQyX0JBU0VfUEhZUywKKwkJLmVuZAkJPSBJWFA0WFhfVUFSVDJfQkFTRV9QSFlTICsgMHgwZmZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBmc2dfdWFydF9kYXRhW10gPSB7CisJeworCQkubWFwYmFzZQk9IElYUDRYWF9VQVJUMV9CQVNFX1BIWVMsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilJWFA0WFhfVUFSVDFfQkFTRV9WSVJUICsgUkVHX09GRlNFVCwKKwkJLmlycQkJPSBJUlFfSVhQNFhYX1VBUlQxLAorCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYgfCBVUEZfU0tJUF9URVNULAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IElYUDRYWF9VQVJUX1hUQUwsCisJfSwKKwl7CisJCS5tYXBiYXNlCT0gSVhQNFhYX1VBUlQyX0JBU0VfUEhZUywKKwkJLm1lbWJhc2UJPSAoY2hhciAqKUlYUDRYWF9VQVJUMl9CQVNFX1ZJUlQgKyBSRUdfT0ZGU0VULAorCQkuaXJxCQk9IElSUV9JWFA0WFhfVUFSVDIsCisJCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiB8IFVQRl9TS0lQX1RFU1QsCisJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCS5yZWdzaGlmdAk9IDIsCisJCS51YXJ0Y2xrCT0gSVhQNFhYX1VBUlRfWFRBTCwKKwl9LAorCXsgfQorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZnNnX3VhcnQgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IFBMQVQ4MjUwX0RFVl9QTEFURk9STSwKKwkuZGV2ID0geworCQkucGxhdGZvcm1fZGF0YQk9IGZzZ191YXJ0X2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKGZzZ191YXJ0X3Jlc291cmNlcyksCisJLnJlc291cmNlCQk9IGZzZ191YXJ0X3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGZzZ19sZWRzID0geworCS5uYW1lCQk9ICJmc2ctbGVkIiwKKwkuaWQJCT0gLTEsCit9OworCisvKiBCdWlsdC1pbiAxMC8xMDAgRXRoZXJuZXQgTUFDIGludGVyZmFjZXMgKi8KK3N0YXRpYyBzdHJ1Y3QgZXRoX3BsYXRfaW5mbyBmc2dfcGxhdF9ldGhbXSA9IHsKKwl7CisJCS5waHkJCT0gNSwKKwkJLnJ4cQkJPSAzLAorCQkudHhyZWFkeXEJPSAyMCwKKwl9LCB7CisJCS5waHkJCT0gNCwKKwkJLnJ4cQkJPSA0LAorCQkudHhyZWFkeXEJPSAyMSwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBmc2dfZXRoW10gPSB7CisJeworCQkubmFtZQkJCT0gIml4cDR4eF9ldGgiLAorCQkuaWQJCQk9IElYUDRYWF9FVEhfTlBFQiwKKwkJLmRldiA9IHsKKwkJCS5wbGF0Zm9ybV9kYXRhCT0gZnNnX3BsYXRfZXRoLAorCQl9LAorCX0sIHsKKwkJLm5hbWUJCQk9ICJpeHA0eHhfZXRoIiwKKwkJLmlkCQkJPSBJWFA0WFhfRVRIX05QRUMsCisJCS5kZXYgPSB7CisJCQkucGxhdGZvcm1fZGF0YQk9IGZzZ19wbGF0X2V0aCArIDEsCisJCX0sCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmZzZ19kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKKwkmZnNnX2kyY19ncGlvLAorCSZmc2dfZmxhc2gsCisJJmZzZ19sZWRzLAorCSZmc2dfZXRoWzBdLAorCSZmc2dfZXRoWzFdLAorfTsKKworc3RhdGljIGlycXJldHVybl90IGZzZ19wb3dlcl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwkvKiBTaWduYWwgaW5pdCB0byBkbyB0aGUgY3RybGFsdGRlbCBhY3Rpb24sIHRoaXMgd2lsbCBieXBhc3MgaW5pdCBpZgorCSAqIGl0IGhhc24ndCBzdGFydGVkIGFuZCBkbyBhIGtlcm5lbF9yZXN0YXJ0LgorCSAqLworCWN0cmxfYWx0X2RlbCgpOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3QgZnNnX3Jlc2V0X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCS8qIFRoaXMgaXMgdGhlIHBhcGVyLWNsaXAgcmVzZXQgd2hpY2ggZG9lcyBhbiBlbWVyZ2VuY3kgcmVib290LiAqLworCXByaW50ayhLRVJOX0lORk8gIlJlc3RhcnRpbmcgc3lzdGVtLlxuIik7CisJbWFjaGluZV9yZXN0YXJ0KE5VTEwpOworCisJLyogVGhpcyBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC4gKi8KKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBmc2dfaW5pdCh2b2lkKQoreworCURFQ0xBUkVfTUFDX0JVRihtYWNfYnVmKTsKKwl1aW50OF90IF9faW9tZW0gKmY7CisJaW50IGk7CisKKwlpeHA0eHhfc3lzX2luaXQoKTsKKworCWZzZ19mbGFzaF9yZXNvdXJjZS5zdGFydCA9IElYUDRYWF9FWFBfQlVTX0JBU0UoMCk7CisJZnNnX2ZsYXNoX3Jlc291cmNlLmVuZCA9CisJCUlYUDRYWF9FWFBfQlVTX0JBU0UoMCkgKyBpeHA0eHhfZXhwX2J1c19zaXplIC0gMTsKKworCSpJWFA0WFhfRVhQX0NTMCB8PSBJWFA0WFhfRkxBU0hfV1JJVEFCTEU7CisJKklYUDRYWF9FWFBfQ1MxID0gKklYUDRYWF9FWFBfQ1MwOworCisJLyogQ29uZmlndXJlIENTMiBmb3Igb3BlcmF0aW9uLCA4Yml0IGFuZCB3cml0YWJsZSAqLworCSpJWFA0WFhfRVhQX0NTMiA9IDB4YmZmZjAwMDI7CisKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCBmc2dfaTJjX2JvYXJkX2luZm8sCisJCQkJQVJSQVlfU0laRShmc2dfaTJjX2JvYXJkX2luZm8pKTsKKworCS8qIFRoaXMgaXMgb25seSB1c2VmdWwgb24gYSBtb2RpZmllZCBtYWNoaW5lLCBidXQgaXQgaXMgdmFsdWFibGUKKwkgKiB0byBoYXZlIGl0IGZpcnN0IGluIG9yZGVyIHRvIHNlZSBkZWJ1ZyBtZXNzYWdlcywgYW5kIHNvIHRoYXQKKwkgKiBpdCBkb2VzICpub3QqIGdldCByZW1vdmVkIGlmIHBsYXRmb3JtX2FkZF9kZXZpY2VzIGZhaWxzIQorCSAqLworCSh2b2lkKXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZnNnX3VhcnQpOworCisJcGxhdGZvcm1fYWRkX2RldmljZXMoZnNnX2RldmljZXMsIEFSUkFZX1NJWkUoZnNnX2RldmljZXMpKTsKKworCWlmIChyZXF1ZXN0X2lycShncGlvX3RvX2lycShGU0dfUkJfR1BJTyksICZmc2dfcmVzZXRfaGFuZGxlciwKKwkJCUlSUUZfRElTQUJMRUQgfCBJUlFGX1RSSUdHRVJfTE9XLAorCQkJIkZTRyByZXNldCBidXR0b24iLCBOVUxMKSA8IDApIHsKKworCQlwcmludGsoS0VSTl9ERUJVRyAiUmVzZXQgQnV0dG9uIElSUSAlZCBub3QgYXZhaWxhYmxlXG4iLAorCQkJZ3Bpb190b19pcnEoRlNHX1JCX0dQSU8pKTsKKwl9CisKKwlpZiAocmVxdWVzdF9pcnEoZ3Bpb190b19pcnEoRlNHX1NCX0dQSU8pLCAmZnNnX3Bvd2VyX2hhbmRsZXIsCisJCQlJUlFGX0RJU0FCTEVEIHwgSVJRRl9UUklHR0VSX0xPVywKKwkJCSJGU0cgcG93ZXIgYnV0dG9uIiwgTlVMTCkgPCAwKSB7CisKKwkJcHJpbnRrKEtFUk5fREVCVUcgIlBvd2VyIEJ1dHRvbiBJUlEgJWQgbm90IGF2YWlsYWJsZVxuIiwKKwkJCWdwaW9fdG9faXJxKEZTR19TQl9HUElPKSk7CisJfQorCisJLyoKKwkgKiBNYXAgaW4gYSBwb3J0aW9uIG9mIHRoZSBmbGFzaCBhbmQgcmVhZCB0aGUgTUFDIGFkZHJlc3Nlcy4KKwkgKiBTaW5jZSBpdCBpcyBzdG9yZWQgaW4gQkUgaW4gdGhlIGZsYXNoIGl0c2VsZiwgd2UgbmVlZCB0bworCSAqIGJ5dGVzd2FwIGl0IGlmIHdlJ3JlIGluIExFIG1vZGUuCisJICovCisJZiA9IGlvcmVtYXAoSVhQNFhYX0VYUF9CVVNfQkFTRSgwKSwgMHg0MDAwMDApOworCWlmIChmKSB7CisjaWZkZWYgX19BUk1FQl9fCisJCWZvciAoaSA9IDA7IGkgPCA2OyBpKyspIHsKKwkJCWZzZ19wbGF0X2V0aFswXS5od2FkZHJbaV0gPSByZWFkYihmICsgMHgzQzA0MjIgKyBpKTsKKwkJCWZzZ19wbGF0X2V0aFsxXS5od2FkZHJbaV0gPSByZWFkYihmICsgMHgzQzA0M0IgKyBpKTsKKwkJfQorI2Vsc2UKKworCQkvKgorCQkgIEVuZGlhbi1zd2FwcGVkIHJlYWRzIGZyb20gdW5hbGlnbmVkIGFkZHJlc3NlcyBhcmUKKwkJICByZXF1aXJlZCB0byBleHRyYWN0IHRoZSB0d28gTUFDcyBmcm9tIHRoZSBiaWctZW5kaWFuCisJCSAgUmVkYm9vdCBjb25maWcgYXJlYSBpbiBmbGFzaC4KKwkJKi8KKworCQlmc2dfcGxhdF9ldGhbMF0uaHdhZGRyWzBdID0gcmVhZGIoZiArIDB4M0MwNDIxKTsKKwkJZnNnX3BsYXRfZXRoWzBdLmh3YWRkclsxXSA9IHJlYWRiKGYgKyAweDNDMDQyMCk7CisJCWZzZ19wbGF0X2V0aFswXS5od2FkZHJbMl0gPSByZWFkYihmICsgMHgzQzA0MjcpOworCQlmc2dfcGxhdF9ldGhbMF0uaHdhZGRyWzNdID0gcmVhZGIoZiArIDB4M0MwNDI2KTsKKwkJZnNnX3BsYXRfZXRoWzBdLmh3YWRkcls0XSA9IHJlYWRiKGYgKyAweDNDMDQyNSk7CisJCWZzZ19wbGF0X2V0aFswXS5od2FkZHJbNV0gPSByZWFkYihmICsgMHgzQzA0MjQpOworCisJCWZzZ19wbGF0X2V0aFsxXS5od2FkZHJbMF0gPSByZWFkYihmICsgMHgzQzA0MzkpOworCQlmc2dfcGxhdF9ldGhbMV0uaHdhZGRyWzFdID0gcmVhZGIoZiArIDB4M0MwNDNGKTsKKwkJZnNnX3BsYXRfZXRoWzFdLmh3YWRkclsyXSA9IHJlYWRiKGYgKyAweDNDMDQzRSk7CisJCWZzZ19wbGF0X2V0aFsxXS5od2FkZHJbM10gPSByZWFkYihmICsgMHgzQzA0M0QpOworCQlmc2dfcGxhdF9ldGhbMV0uaHdhZGRyWzRdID0gcmVhZGIoZiArIDB4M0MwNDNDKTsKKwkJZnNnX3BsYXRfZXRoWzFdLmh3YWRkcls1XSA9IHJlYWRiKGYgKyAweDNDMDQ0Myk7CisjZW5kaWYKKwkJaW91bm1hcChmKTsKKwl9CisJcHJpbnRrKEtFUk5fSU5GTyAiRlNHOiBVc2luZyBNQUMgYWRkcmVzcyAlcyBmb3IgcG9ydCAwXG4iLAorCSAgICAgICBwcmludF9tYWMobWFjX2J1ZiwgZnNnX3BsYXRfZXRoWzBdLmh3YWRkcikpOworCXByaW50ayhLRVJOX0lORk8gIkZTRzogVXNpbmcgTUFDIGFkZHJlc3MgJXMgZm9yIHBvcnQgMVxuIiwKKwkgICAgICAgcHJpbnRfbWFjKG1hY19idWYsIGZzZ19wbGF0X2V0aFsxXS5od2FkZHIpKTsKKworfQorCitNQUNISU5FX1NUQVJUKEZTRywgIkZyZWVjb20gRlNHLTMiKQorCS8qIE1haW50YWluZXI6IHd3dy5uc2x1Mi1saW51eC5vcmcgKi8KKwkucGh5c19pbwk9IElYUDRYWF9QRVJJUEhFUkFMX0JBU0VfUEhZUywKKwkuaW9fcGdfb2Zmc3QJPSAoKElYUDRYWF9QRVJJUEhFUkFMX0JBU0VfVklSVCkgPj4gMTgpICYgMHhmZmZjLAorCS5tYXBfaW8JCT0gaXhwNHh4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBpeHA0eHhfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZpeHA0eHhfdGltZXIsCisJLmJvb3RfcGFyYW1zCT0gMHgwMTAwLAorCS5pbml0X21hY2hpbmUJPSBmc2dfaW5pdCwKK01BQ0hJTkVfRU5ECisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gta2lya3dvb2QvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjAwY2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9LY29uZmlnCkBAIC0wLDAgKzEsMjUgQEAKK2lmIEFSQ0hfS0lSS1dPT0QKKworbWVudSAiTWFydmVsbCBLaXJrd29vZCBJbXBsZW1lbnRhdGlvbnMiCisKK2NvbmZpZyBNQUNIX0RCODhGNjI4MV9CUAorCWJvb2wgIk1hcnZlbGwgREItODhGNjI4MS1CUCBEZXZlbG9wbWVudCBCb2FyZCIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIE1hcnZlbGwgREItODhGNjI4MS1CUCBEZXZlbG9wbWVudCBCb2FyZC4KKworY29uZmlnIE1BQ0hfUkQ4OEY2MTkyX05BUworCWJvb2wgIk1hcnZlbGwgUkQtODhGNjE5Mi1OQVMgUmVmZXJlbmNlIEJvYXJkIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTWFydmVsbCBSRC04OEY2MTkyLU5BUyBSZWZlcmVuY2UgQm9hcmQuCisKK2NvbmZpZyBNQUNIX1JEODhGNjI4MQorCWJvb2wgIk1hcnZlbGwgUkQtODhGNjI4MSBSZWZlcmVuY2UgQm9hcmQiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBNYXJ2ZWxsIFJELTg4RjYyODEgUmVmZXJlbmNlIEJvYXJkLgorCitlbmRtZW51CisKK2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTRiZjQwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9NYWtlZmlsZQpAQCAtMCwwICsxLDUgQEAKK29iai15CQkJCSs9IGNvbW1vbi5vIGFkZHItbWFwLm8gaXJxLm8gcGNpZS5vCisKK29iai0kKENPTkZJR19NQUNIX0RCODhGNjI4MV9CUCkJCSs9IGRiODhmNjI4MS1icC1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9SRDg4RjYxOTJfTkFTKQkrPSByZDg4ZjYxOTItbmFzLXNldHVwLm8KK29iai0kKENPTkZJR19NQUNIX1JEODhGNjE5Ml9OQVMpCSs9IHJkODhmNjI4MS1zZXR1cC5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL01ha2VmaWxlLmJvb3QgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL01ha2VmaWxlLmJvb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjcwMzljMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvTWFrZWZpbGUuYm9vdApAQCAtMCwwICsxLDMgQEAKKyAgIHpyZWxhZGRyLXkJOj0gMHgwMDAwODAwMAorcGFyYW1zX3BoeXMteQk6PSAweDAwMDAwMTAwCitpbml0cmRfcGh5cy15CTo9IDB4MDA4MDAwMDAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gta2lya3dvb2QvYWRkci1tYXAuYyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvYWRkci1tYXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzlmMGYzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9hZGRyLW1hcC5jCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9hZGRyLW1hcC5jCisgKgorICogQWRkcmVzcyBtYXAgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIEtpcmt3b29kIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCisvKgorICogR2VuZXJpYyBBZGRyZXNzIERlY29kZSBXaW5kb3dzIGJpdCBzZXR0aW5ncworICovCisjZGVmaW5lIFRBUkdFVF9ERFIJCTAKKyNkZWZpbmUgVEFSR0VUX0RFVl9CVVMJCTEKKyNkZWZpbmUgVEFSR0VUX1BDSUUJCTQKKyNkZWZpbmUgQVRUUl9ERVZfU1BJX1JPTQkweDFlCisjZGVmaW5lIEFUVFJfREVWX0JPT1QJCTB4MWQKKyNkZWZpbmUgQVRUUl9ERVZfTkFORAkJMHgyZgorI2RlZmluZSBBVFRSX0RFVl9DUzMJCTB4MzcKKyNkZWZpbmUgQVRUUl9ERVZfQ1MyCQkweDNiCisjZGVmaW5lIEFUVFJfREVWX0NTMQkJMHgzZAorI2RlZmluZSBBVFRSX0RFVl9DUzAJCTB4M2UKKyNkZWZpbmUgQVRUUl9QQ0lFX0lPCQkweGUwCisjZGVmaW5lIEFUVFJfUENJRV9NRU0JCTB4ZTgKKworLyoKKyAqIEhlbHBlcnMgdG8gZ2V0IEREUiBiYW5rIGluZm8KKyAqLworI2RlZmluZSBERFJfQkFTRV9DU19PRkYobikJKDB4MDAwMCArICgobikgPDwgMykpCisjZGVmaW5lIEREUl9TSVpFX0NTX09GRihuKQkoMHgwMDA0ICsgKChuKSA8PCAzKSkKKworLyoKKyAqIENQVSBBZGRyZXNzIERlY29kZSBXaW5kb3dzIHJlZ2lzdGVycworICovCisjZGVmaW5lIFdJTl9PRkYobikJCShCUklER0VfVklSVF9CQVNFICsgMHgwMDAwICsgKChuKSA8PCA0KSkKKyNkZWZpbmUgV0lOX0NUUkxfT0ZGCQkweDAwMDAKKyNkZWZpbmUgV0lOX0JBU0VfT0ZGCQkweDAwMDQKKyNkZWZpbmUgV0lOX1JFTUFQX0xPX09GRgkweDAwMDgKKyNkZWZpbmUgV0lOX1JFTUFQX0hJX09GRgkweDAwMGMKKworCitzdHJ1Y3QgbWJ1c19kcmFtX3RhcmdldF9pbmZvIGtpcmt3b29kX21idXNfZHJhbV9pbmZvOworCitzdGF0aWMgaW50IF9faW5pdCBjcHVfd2luX2Nhbl9yZW1hcChpbnQgd2luKQoreworCWlmICh3aW4gPCA0KQorCQlyZXR1cm4gMTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfY3B1X3dpbihpbnQgd2luLCB1MzIgYmFzZSwgdTMyIHNpemUsCisJCQkJIHU4IHRhcmdldCwgdTggYXR0ciwgaW50IHJlbWFwKQoreworCXZvaWQgX19pb21lbSAqYWRkciA9ICh2b2lkIF9faW9tZW0gKilXSU5fT0ZGKHdpbik7CisJdTMyIGN0cmw7CisKKwliYXNlICY9IDB4ZmZmZjAwMDA7CisJY3RybCA9ICgoc2l6ZSAtIDEpICYgMHhmZmZmMDAwMCkgfCAoYXR0ciA8PCA4KSB8ICh0YXJnZXQgPDwgNCkgfCAxOworCisJd3JpdGVsKGJhc2UsIGFkZHIgKyBXSU5fQkFTRV9PRkYpOworCXdyaXRlbChjdHJsLCBhZGRyICsgV0lOX0NUUkxfT0ZGKTsKKwlpZiAoY3B1X3dpbl9jYW5fcmVtYXAod2luKSkgeworCQlpZiAocmVtYXAgPCAwKQorCQkJcmVtYXAgPSBiYXNlOworCisJCXdyaXRlbChyZW1hcCAmIDB4ZmZmZjAwMDAsIGFkZHIgKyBXSU5fUkVNQVBfTE9fT0ZGKTsKKwkJd3JpdGVsKDAsIGFkZHIgKyBXSU5fUkVNQVBfSElfT0ZGKTsKKwl9Cit9CisKK3ZvaWQgX19pbml0IGtpcmt3b29kX3NldHVwX2NwdV9tYnVzKHZvaWQpCit7CisJdm9pZCBfX2lvbWVtICphZGRyOworCWludCBpOworCWludCBjczsKKworCS8qCisJICogRmlyc3QsIGRpc2FibGUgYW5kIGNsZWFyIHdpbmRvd3MuCisJICovCisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQlhZGRyID0gKHZvaWQgX19pb21lbSAqKVdJTl9PRkYoaSk7CisKKwkJd3JpdGVsKDAsIGFkZHIgKyBXSU5fQkFTRV9PRkYpOworCQl3cml0ZWwoMCwgYWRkciArIFdJTl9DVFJMX09GRik7CisJCWlmIChjcHVfd2luX2Nhbl9yZW1hcChpKSkgeworCQkJd3JpdGVsKDAsIGFkZHIgKyBXSU5fUkVNQVBfTE9fT0ZGKTsKKwkJCXdyaXRlbCgwLCBhZGRyICsgV0lOX1JFTUFQX0hJX09GRik7CisJCX0KKwl9CisKKwkvKgorCSAqIFNldHVwIHdpbmRvd3MgZm9yIFBDSWUgSU8rTUVNIHNwYWNlLgorCSAqLworCXNldHVwX2NwdV93aW4oMCwgS0lSS1dPT0RfUENJRV9JT19QSFlTX0JBU0UsIEtJUktXT09EX1BDSUVfSU9fU0laRSwKKwkJICAgICAgVEFSR0VUX1BDSUUsIEFUVFJfUENJRV9JTywgS0lSS1dPT0RfUENJRV9JT19CVVNfQkFTRSk7CisJc2V0dXBfY3B1X3dpbigxLCBLSVJLV09PRF9QQ0lFX01FTV9QSFlTX0JBU0UsIEtJUktXT09EX1BDSUVfTUVNX1NJWkUsCisJCSAgICAgIFRBUkdFVF9QQ0lFLCBBVFRSX1BDSUVfTUVNLCAtMSk7CisKKwkvKgorCSAqIFNldHVwIHdpbmRvdyBmb3IgTkFORCBjb250cm9sbGVyLgorCSAqLworCXNldHVwX2NwdV93aW4oMiwgS0lSS1dPT0RfTkFORF9NRU1fUEhZU19CQVNFLCBLSVJLV09PRF9OQU5EX01FTV9TSVpFLAorCQkgICAgICBUQVJHRVRfREVWX0JVUywgQVRUUl9ERVZfTkFORCwgLTEpOworCisJLyoKKwkgKiBTZXR1cCBNQlVTIGRyYW0gdGFyZ2V0IGluZm8uCisJICovCisJa2lya3dvb2RfbWJ1c19kcmFtX2luZm8ubWJ1c19kcmFtX3RhcmdldF9pZCA9IFRBUkdFVF9ERFI7CisKKwlhZGRyID0gKHZvaWQgX19pb21lbSAqKUREUl9XSU5ET1dfQ1BVX0JBU0U7CisKKwlmb3IgKGkgPSAwLCBjcyA9IDA7IGkgPCA0OyBpKyspIHsKKwkJdTMyIGJhc2UgPSByZWFkbChhZGRyICsgRERSX0JBU0VfQ1NfT0ZGKGkpKTsKKwkJdTMyIHNpemUgPSByZWFkbChhZGRyICsgRERSX1NJWkVfQ1NfT0ZGKGkpKTsKKworCQkvKgorCQkgKiBDaGlwIHNlbGVjdCBlbmFibGVkPworCQkgKi8KKwkJaWYgKHNpemUgJiAxKSB7CisJCQlzdHJ1Y3QgbWJ1c19kcmFtX3dpbmRvdyAqdzsKKworCQkJdyA9ICZraXJrd29vZF9tYnVzX2RyYW1faW5mby5jc1tjcysrXTsKKwkJCXctPmNzX2luZGV4ID0gaTsKKwkJCXctPm1idXNfYXR0ciA9IDB4ZiAmIH4oMSA8PCBpKTsKKwkJCXctPmJhc2UgPSBiYXNlICYgMHhmZmZmMDAwMDsKKwkJCXctPnNpemUgPSAoc2l6ZSB8IDB4MDAwMGZmZmYpICsgMTsKKwkJfQorCX0KKwlraXJrd29vZF9tYnVzX2RyYW1faW5mby5udW1fY3MgPSBjczsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gta2lya3dvb2QvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2NvbW1vbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MzhhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2NvbW1vbi5jCkBAIC0wLDAgKzEsMzMxIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uYworICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIEtpcmt3b29kIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF84MjUwLmg+CisjaW5jbHVkZSA8bGludXgvbWJ1cy5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vdGltZXguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gva2lya3dvb2QuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9jYWNoZS1mZXJvY2Vvbi1sMi5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL2VoY2ktb3Jpb24uaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9vcmlvbl9uYW5kLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vdGltZS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEkvTyBBZGRyZXNzIE1hcHBpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBraXJrd29vZF9pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCS52aXJ0dWFsCT0gS0lSS1dPT0RfUENJRV9JT19WSVJUX0JBU0UsCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihLSVJLV09PRF9QQ0lFX0lPX1BIWVNfQkFTRSksCisJCS5sZW5ndGgJCT0gS0lSS1dPT0RfUENJRV9JT19TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwgeworCQkudmlydHVhbAk9IEtJUktXT09EX1JFR1NfVklSVF9CQVNFLAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UpLAorCQkubGVuZ3RoCQk9IEtJUktXT09EX1JFR1NfU0laRSwKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAorCX0sCit9OworCit2b2lkIF9faW5pdCBraXJrd29vZF9tYXBfaW8odm9pZCkKK3sKKwlpb3RhYmxlX2luaXQoa2lya3dvb2RfaW9fZGVzYywgQVJSQVlfU0laRShraXJrd29vZF9pb19kZXNjKSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFSENJCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb25fZWhjaV9kYXRhIGtpcmt3b29kX2VoY2lfZGF0YSA9IHsKKwkuZHJhbQkJPSAma2lya3dvb2RfbWJ1c19kcmFtX2luZm8sCit9OworCitzdGF0aWMgdTY0IGVoY2lfZG1hbWFzayA9IDB4ZmZmZmZmZmZVTDsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEVIQ0kwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Uga2lya3dvb2RfZWhjaV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAk9IFVTQl9QSFlTX0JBU0UsCisJCS5lbmQJPSBVU0JfUEhZU19CQVNFICsgMHgwZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAk9IElSUV9LSVJLV09PRF9VU0IsCisJCS5lbmQJPSBJUlFfS0lSS1dPT0RfVVNCLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uga2lya3dvb2RfZWhjaSA9IHsKKwkubmFtZQkJPSAib3Jpb24tZWhjaSIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5kbWFfbWFzawkJPSAmZWhjaV9kbWFtYXNrLAorCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCQkucGxhdGZvcm1fZGF0YQkJPSAma2lya3dvb2RfZWhjaV9kYXRhLAorCX0sCisJLnJlc291cmNlCT0ga2lya3dvb2RfZWhjaV9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGtpcmt3b29kX2VoY2lfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IGtpcmt3b29kX2VoY2lfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigma2lya3dvb2RfZWhjaSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHRTAwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0cnVjdCBtdjY0M3h4X2V0aF9zaGFyZWRfcGxhdGZvcm1fZGF0YSBraXJrd29vZF9nZTAwX3NoYXJlZF9kYXRhID0geworCS50X2NsawkJPSBLSVJLV09PRF9UQ0xLLAorCS5kcmFtCQk9ICZraXJrd29vZF9tYnVzX2RyYW1faW5mbywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Uga2lya3dvb2RfZ2UwMF9zaGFyZWRfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTAwIGJhc2UiLAorCQkuc3RhcnQJPSBHRTAwX1BIWVNfQkFTRSArIDB4MjAwMCwKKwkJLmVuZAk9IEdFMDBfUEhZU19CQVNFICsgMHgzZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uga2lya3dvb2RfZ2UwMF9zaGFyZWQgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfU0hBUkVEX05BTUUsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmtpcmt3b29kX2dlMDBfc2hhcmVkX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0ga2lya3dvb2RfZ2UwMF9zaGFyZWRfcmVzb3VyY2VzLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBraXJrd29vZF9nZTAwX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UwMCBpcnEiLAorCQkuc3RhcnQJPSBJUlFfS0lSS1dPT0RfR0UwMF9TVU0sCisJCS5lbmQJPSBJUlFfS0lSS1dPT0RfR0UwMF9TVU0sCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBraXJrd29vZF9nZTAwID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX05BTUUsCisJLmlkCQk9IDAsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IGtpcmt3b29kX2dlMDBfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2RfZ2UwMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSkKK3sKKwlldGhfZGF0YS0+c2hhcmVkID0gJmtpcmt3b29kX2dlMDBfc2hhcmVkOworCWtpcmt3b29kX2dlMDAuZGV2LnBsYXRmb3JtX2RhdGEgPSBldGhfZGF0YTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigma2lya3dvb2RfZ2UwMF9zaGFyZWQpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigma2lya3dvb2RfZ2UwMCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTb0MgUlRDCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Uga2lya3dvb2RfcnRjX3Jlc291cmNlID0geworCS5zdGFydAk9IFJUQ19QSFlTX0JBU0UsCisJLmVuZAk9IFJUQ19QSFlTX0JBU0UgKyBTWl8xNiAtIDEsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCit9OworCit2b2lkIF9faW5pdCBraXJrd29vZF9ydGNfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9zaW1wbGUoInJ0Yy1tdiIsIC0xLCAma2lya3dvb2RfcnRjX3Jlc291cmNlLCAxKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFNBVEEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBraXJrd29vZF9zYXRhX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAic2F0YSBiYXNlIiwKKwkJLnN0YXJ0CT0gU0FUQV9QSFlTX0JBU0UsCisJCS5lbmQJPSBTQVRBX1BIWVNfQkFTRSArIDB4NTAwMCAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLm5hbWUJPSAic2F0YSBpcnEiLAorCQkuc3RhcnQJPSBJUlFfS0lSS1dPT0RfU0FUQSwKKwkJLmVuZAk9IElSUV9LSVJLV09PRF9TQVRBLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uga2lya3dvb2Rfc2F0YSA9IHsKKwkubmFtZQkJPSAic2F0YV9tdiIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4ZmZmZmZmZmYsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoa2lya3dvb2Rfc2F0YV9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZQk9IGtpcmt3b29kX3NhdGFfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2Rfc2F0YV9pbml0KHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgKnNhdGFfZGF0YSkKK3sKKwlzYXRhX2RhdGEtPmRyYW0gPSAma2lya3dvb2RfbWJ1c19kcmFtX2luZm87CisJa2lya3dvb2Rfc2F0YS5kZXYucGxhdGZvcm1fZGF0YSA9IHNhdGFfZGF0YTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmtpcmt3b29kX3NhdGEpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBraXJrd29vZF91YXJ0MF9kYXRhW10gPSB7CisJeworCQkubWFwYmFzZQk9IFVBUlQwX1BIWVNfQkFTRSwKKwkJLm1lbWJhc2UJPSAoY2hhciAqKVVBUlQwX1ZJUlRfQkFTRSwKKwkJLmlycQkJPSBJUlFfS0lSS1dPT0RfVUFSVF8wLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IEtJUktXT09EX1RDTEssCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGtpcmt3b29kX3VhcnQwX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQwX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMF9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX0tJUktXT09EX1VBUlRfMCwKKwkJLmVuZAkJPSBJUlFfS0lSS1dPT0RfVUFSVF8wLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGtpcmt3b29kX3VhcnQwID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAwLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBraXJrd29vZF91YXJ0MF9kYXRhLAorCX0sCisJLnJlc291cmNlCQk9IGtpcmt3b29kX3VhcnQwX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKGtpcmt3b29kX3VhcnQwX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBraXJrd29vZF91YXJ0MF9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZraXJrd29vZF91YXJ0MCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IGtpcmt3b29kX3VhcnQxX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDFfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDFfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9LSVJLV09PRF9VQVJUXzEsCisJCS5mbGFncwkJPSBVUEZfU0tJUF9URVNUIHwgVVBGX0JPT1RfQVVUT0NPTkYsCisJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCS5yZWdzaGlmdAk9IDIsCisJCS51YXJ0Y2xrCT0gS0lSS1dPT0RfVENMSywKKwl9LCB7CisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Uga2lya3dvb2RfdWFydDFfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJCT0gVUFSVDFfUEhZU19CQVNFLAorCQkuZW5kCQk9IFVBUlQxX1BIWVNfQkFTRSArIDB4ZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAkJPSBJUlFfS0lSS1dPT0RfVUFSVF8xLAorCQkuZW5kCQk9IElSUV9LSVJLV09PRF9VQVJUXzEsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uga2lya3dvb2RfdWFydDEgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IDEsCisJLmRldgkJCT0geworCQkucGxhdGZvcm1fZGF0YQk9IGtpcmt3b29kX3VhcnQxX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0ga2lya3dvb2RfdWFydDFfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCQk9IEFSUkFZX1NJWkUoa2lya3dvb2RfdWFydDFfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IGtpcmt3b29kX3VhcnQxX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmtpcmt3b29kX3VhcnQxKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRpbWUgaGFuZGxpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQga2lya3dvb2RfdGltZXJfaW5pdCh2b2lkKQoreworCW9yaW9uX3RpbWVfaW5pdChJUlFfS0lSS1dPT0RfQlJJREdFLCBLSVJLV09PRF9UQ0xLKTsKK30KKworc3RydWN0IHN5c190aW1lciBraXJrd29vZF90aW1lciA9IHsKKwkuaW5pdCA9IGtpcmt3b29kX3RpbWVyX2luaXQsCit9OworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR2VuZXJhbAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgY2hhciAqIF9faW5pdCBraXJrd29vZF9pZCh2b2lkKQoreworCXN3aXRjaCAocmVhZGwoREVWSUNFX0lEKSAmIDB4MykgeworCWNhc2UgMDoKKwkJcmV0dXJuICI4OEY2MTgwIjsKKwljYXNlIDE6CisJCXJldHVybiAiODhGNjE5MiI7CisJY2FzZSAyOgorCQlyZXR1cm4gIjg4RjYyODEiOworCX0KKworCXJldHVybiAidW5rbm93biA4OEY2MDAwIHZhcmlhbnQiOworfQorCitzdGF0aWMgaW50IF9faW5pdCBpc19sMl93cml0ZXRocm91Z2godm9pZCkKK3sKKwlyZXR1cm4gISEocmVhZGwoTDJfQ09ORklHX1JFRykgJiBMMl9XUklURVRIUk9VR0gpOworfQorCit2b2lkIF9faW5pdCBraXJrd29vZF9pbml0KHZvaWQpCit7CisJcHJpbnRrKEtFUk5fSU5GTyAiS2lya3dvb2Q6ICVzLCBUQ0xLPSVkLlxuIiwKKwkJa2lya3dvb2RfaWQoKSwgS0lSS1dPT0RfVENMSyk7CisKKwlraXJrd29vZF9zZXR1cF9jcHVfbWJ1cygpOworCisjaWZkZWYgQ09ORklHX0NBQ0hFX0ZFUk9DRU9OX0wyCisJZmVyb2Nlb25fbDJfaW5pdChpc19sMl93cml0ZXRocm91Z2goKSk7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gta2lya3dvb2QvY29tbW9uLmggYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkZWUyZjYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2NvbW1vbi5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLWtpcmt3b29kL2NvbW1vbi5oCisgKgorICogQ29yZSBmdW5jdGlvbnMgZm9yIE1hcnZlbGwgS2lya3dvb2QgU29DcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BUkNIX0tJUktXT09EX0NPTU1PTl9ICisjZGVmaW5lIF9fQVJDSF9LSVJLV09PRF9DT01NT05fSAorCitzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YTsKK3N0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGE7CisKKy8qCisgKiBCYXNpYyBLaXJrd29vZCBpbml0IGZ1bmN0aW9ucyB1c2VkIGVhcmx5IGJ5IG1hY2hpbmUtc2V0dXAuCisgKi8KK3ZvaWQga2lya3dvb2RfbWFwX2lvKHZvaWQpOwordm9pZCBraXJrd29vZF9pbml0KHZvaWQpOwordm9pZCBraXJrd29vZF9pbml0X2lycSh2b2lkKTsKKworZXh0ZXJuIHN0cnVjdCBtYnVzX2RyYW1fdGFyZ2V0X2luZm8ga2lya3dvb2RfbWJ1c19kcmFtX2luZm87Cit2b2lkIGtpcmt3b29kX3NldHVwX2NwdV9tYnVzKHZvaWQpOwordm9pZCBraXJrd29vZF9zZXR1cF9wY2llX2lvX3dpbihpbnQgd2luZG93LCB1MzIgYmFzZSwgdTMyIHNpemUsCisJCQkJaW50IG1haiwgaW50IG1pbik7Cit2b2lkIGtpcmt3b29kX3NldHVwX3BjaWVfbWVtX3dpbihpbnQgd2luZG93LCB1MzIgYmFzZSwgdTMyIHNpemUsCisJCQkJIGludCBtYWosIGludCBtaW4pOworCit2b2lkIGtpcmt3b29kX2VoY2lfaW5pdCh2b2lkKTsKK3ZvaWQga2lya3dvb2RfZ2UwMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIGtpcmt3b29kX3BjaWVfaW5pdCh2b2lkKTsKK3ZvaWQga2lya3dvb2RfcnRjX2luaXQodm9pZCk7Cit2b2lkIGtpcmt3b29kX3NhdGFfaW5pdChzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhICpzYXRhX2RhdGEpOwordm9pZCBraXJrd29vZF91YXJ0MF9pbml0KHZvaWQpOwordm9pZCBraXJrd29vZF91YXJ0MV9pbml0KHZvaWQpOworCitleHRlcm4gc3RydWN0IHN5c190aW1lciBraXJrd29vZF90aW1lcjsKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gta2lya3dvb2QvZGI4OGY2MjgxLWJwLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2RiODhmNjI4MS1icC1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YzQ4MmMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2RiODhmNjI4MS1icC1zZXR1cC5jCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLWtpcmt3b29kL2RiODhmNjI4MS1icC1zZXR1cC5jCisgKgorICogTWFydmVsbCBEQi04OEY2MjgxLUJQIERldmVsb3BtZW50IEJvYXJkIFNldHVwCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBkYjg4ZjYyODFfZ2UwMF9kYXRhID0geworCS5waHlfYWRkcgk9IDgsCit9OworCitzdGF0aWMgc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSBkYjg4ZjYyODFfc2F0YV9kYXRhID0geworCS5uX3BvcnRzCT0gMiwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBkYjg4ZjYyODFfaW5pdCh2b2lkKQoreworCS8qCisJICogQmFzaWMgc2V0dXAuIE5lZWRzIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlraXJrd29vZF9pbml0KCk7CisKKwlraXJrd29vZF9laGNpX2luaXQoKTsKKwlraXJrd29vZF9nZTAwX2luaXQoJmRiODhmNjI4MV9nZTAwX2RhdGEpOworCWtpcmt3b29kX3J0Y19pbml0KCk7CisJa2lya3dvb2Rfc2F0YV9pbml0KCZkYjg4ZjYyODFfc2F0YV9kYXRhKTsKKwlraXJrd29vZF91YXJ0MF9pbml0KCk7CisJa2lya3dvb2RfdWFydDFfaW5pdCgpOworfQorCitzdGF0aWMgaW50IF9faW5pdCBkYjg4ZjYyODFfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19kYjg4ZjYyODFfYnAoKSkKKwkJa2lya3dvb2RfcGNpZV9pbml0KCk7CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChkYjg4ZjYyODFfcGNpX2luaXQpOworCitNQUNISU5FX1NUQVJUKERCODhGNjI4MV9CUCwgIk1hcnZlbGwgREItODhGNjI4MS1CUCBEZXZlbG9wbWVudCBCb2FyZCIpCisJLyogTWFpbnRhaW5lcjogU2FlZWQgQmlzaGFyYSA8c2FlZWRAbWFydmVsbC5jb20+ICovCisJLnBoeXNfaW8JPSBLSVJLV09PRF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKEtJUktXT09EX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gZGI4OGY2MjgxX2luaXQsCisJLm1hcF9pbwkJPSBraXJrd29vZF9tYXBfaW8sCisJLmluaXRfaXJxCT0ga2lya3dvb2RfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZraXJrd29vZF90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2lycS5jIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9pcnEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDJiYjJjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9pcnEuYwpAQCAtMCwwICsxLDIyIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9pcnEuYworICoKKyAqIEtpcmt3b29kIElSUSBoYW5kbGluZy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vaXJxLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKK3ZvaWQgX19pbml0IGtpcmt3b29kX2luaXRfaXJxKHZvaWQpCit7CisJb3Jpb25faXJxX2luaXQoMCwgKHZvaWQgX19pb21lbSAqKShJUlFfVklSVF9CQVNFICsgSVJRX01BU0tfTE9XX09GRikpOworCW9yaW9uX2lycV9pbml0KDMyLCAodm9pZCBfX2lvbWVtICopKElSUV9WSVJUX0JBU0UgKyBJUlFfTUFTS19ISUdIX09GRikpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9wY2llLmMgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL3BjaWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjgyZDBmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9wY2llLmMKQEAgLTAsMCArMSwxODAgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLWtpcmt3b29kL3BjaWUuYworICoKKyAqIFBDSWUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIEtpcmt3b29kIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvbWJ1cy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL3BjaWUuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworCisjZGVmaW5lIFBDSUVfQkFTRQkoKHZvaWQgX19pb21lbSAqKVBDSUVfVklSVF9CQVNFKQorCitzdGF0aWMgaW50IHBjaWVfdmFsaWRfY29uZmlnKGludCBidXMsIGludCBkZXYpCit7CisJLyoKKwkgKiBEb24ndCBnbyBvdXQgd2hlbiB0cnlpbmcgdG8gYWNjZXNzIC0tCisJICogMS4gbm9uZXhpc3RpbmcgZGV2aWNlIG9uIGxvY2FsIGJ1cworCSAqIDIuIHdoZXJlIHRoZXJlJ3Mgbm8gZGV2aWNlIGNvbm5lY3RlZCAobm8gbGluaykKKwkgKi8KKwlpZiAoYnVzID09IDAgJiYgZGV2ID09IDApCisJCXJldHVybiAxOworCisJaWYgKCFvcmlvbl9wY2llX2xpbmtfdXAoUENJRV9CQVNFKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoYnVzID09IDAgJiYgZGV2ICE9IDEpCisJCXJldHVybiAwOworCisJcmV0dXJuIDE7Cit9CisKKworLyoKKyAqIFBDSWUgY29uZmlnIGN5Y2xlcyBhcmUgZG9uZSBieSBwcm9ncmFtbWluZyB0aGUgUENJRV9DT05GX0FERFIgcmVnaXN0ZXIKKyAqIGFuZCB0aGVuIHJlYWRpbmcgdGhlIFBDSUVfQ09ORl9EQVRBIHJlZ2lzdGVyLiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGVzZQorICogdHJhbnNhY3Rpb25zIGFyZSBhdG9taWMuCisgKi8KK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soa2lya3dvb2RfcGNpZV9sb2NrKTsKKworc3RhdGljIGludCBwY2llX3JkX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdTMyIGRldmZuLCBpbnQgd2hlcmUsCisJCQlpbnQgc2l6ZSwgdTMyICp2YWwpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0OworCisJaWYgKHBjaWVfdmFsaWRfY29uZmlnKGJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbikpID09IDApIHsKKwkJKnZhbCA9IDB4ZmZmZmZmZmY7CisJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJmtpcmt3b29kX3BjaWVfbG9jaywgZmxhZ3MpOworCXJldCA9IG9yaW9uX3BjaWVfcmRfY29uZihQQ0lFX0JBU0UsIGJ1cywgZGV2Zm4sIHdoZXJlLCBzaXplLCB2YWwpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmtpcmt3b29kX3BjaWVfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwY2llX3dyX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdTMyIGRldmZuLAorCQkJaW50IHdoZXJlLCBpbnQgc2l6ZSwgdTMyIHZhbCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisKKwlpZiAocGNpZV92YWxpZF9jb25maWcoYnVzLT5udW1iZXIsIFBDSV9TTE9UKGRldmZuKSkgPT0gMCkKKwkJcmV0dXJuIFBDSUJJT1NfREVWSUNFX05PVF9GT1VORDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZraXJrd29vZF9wY2llX2xvY2ssIGZsYWdzKTsKKwlyZXQgPSBvcmlvbl9wY2llX3dyX2NvbmYoUENJRV9CQVNFLCBidXMsIGRldmZuLCB3aGVyZSwgc2l6ZSwgdmFsKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZraXJrd29vZF9wY2llX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX29wcyBwY2llX29wcyA9IHsKKwkucmVhZCA9IHBjaWVfcmRfY29uZiwKKwkud3JpdGUgPSBwY2llX3dyX2NvbmYsCit9OworCisKK3N0YXRpYyBpbnQga2lya3dvb2RfcGNpZV9zZXR1cChpbnQgbnIsIHN0cnVjdCBwY2lfc3lzX2RhdGEgKnN5cykKK3sKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKworCS8qCisJICogR2VuZXJpYyBQQ0llIHVuaXQgc2V0dXAuCisJICovCisJb3Jpb25fcGNpZV9zZXR1cChQQ0lFX0JBU0UsICZraXJrd29vZF9tYnVzX2RyYW1faW5mbyk7CisKKwkvKgorCSAqIFJlcXVlc3QgcmVzb3VyY2VzLgorCSAqLworCXJlcyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSkgKiAyLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJlcykKKwkJcGFuaWMoInBjaWVfc2V0dXAgdW5hYmxlIHRvIGFsbG9jIHJlc291cmNlcyIpOworCisJLyoKKwkgKiBJT1JFU09VUkNFX0lPCisJICovCisJcmVzWzBdLm5hbWUgPSAiUENJZSBJL08gU3BhY2UiOworCXJlc1swXS5mbGFncyA9IElPUkVTT1VSQ0VfSU87CisJcmVzWzBdLnN0YXJ0ID0gS0lSS1dPT0RfUENJRV9JT19QSFlTX0JBU0U7CisJcmVzWzBdLmVuZCA9IHJlc1swXS5zdGFydCArIEtJUktXT09EX1BDSUVfSU9fU0laRSAtIDE7CisJaWYgKHJlcXVlc3RfcmVzb3VyY2UoJmlvcG9ydF9yZXNvdXJjZSwgJnJlc1swXSkpCisJCXBhbmljKCJSZXF1ZXN0IFBDSWUgSU8gcmVzb3VyY2UgZmFpbGVkXG4iKTsKKwlzeXMtPnJlc291cmNlWzBdID0gJnJlc1swXTsKKworCS8qCisJICogSU9SRVNPVVJDRV9NRU0KKwkgKi8KKwlyZXNbMV0ubmFtZSA9ICJQQ0llIE1lbW9yeSBTcGFjZSI7CisJcmVzWzFdLmZsYWdzID0gSU9SRVNPVVJDRV9NRU07CisJcmVzWzFdLnN0YXJ0ID0gS0lSS1dPT0RfUENJRV9NRU1fUEhZU19CQVNFOworCXJlc1sxXS5lbmQgPSByZXNbMV0uc3RhcnQgKyBLSVJLV09PRF9QQ0lFX01FTV9TSVpFIC0gMTsKKwlpZiAocmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZyZXNbMV0pKQorCQlwYW5pYygiUmVxdWVzdCBQQ0llIE1lbW9yeSByZXNvdXJjZSBmYWlsZWRcbiIpOworCXN5cy0+cmVzb3VyY2VbMV0gPSAmcmVzWzFdOworCisJc3lzLT5yZXNvdXJjZVsyXSA9IE5VTEw7CisJc3lzLT5pb19vZmZzZXQgPSAwOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyB2b2lkIF9fZGV2aW5pdCByY19wY2lfZml4dXAoc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwkvKgorCSAqIFByZXZlbnQgZW51bWVyYXRpb24gb2Ygcm9vdCBjb21wbGV4LgorCSAqLworCWlmIChkZXYtPmJ1cy0+cGFyZW50ID09IE5VTEwgJiYgZGV2LT5kZXZmbiA9PSAwKSB7CisJCWludCBpOworCisJCWZvciAoaSA9IDA7IGkgPCBERVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgeworCQkJZGV2LT5yZXNvdXJjZVtpXS5zdGFydCA9IDA7CisJCQlkZXYtPnJlc291cmNlW2ldLmVuZCAgID0gMDsKKwkJCWRldi0+cmVzb3VyY2VbaV0uZmxhZ3MgPSAwOworCQl9CisJfQorfQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUENJX0FOWV9JRCwgcmNfcGNpX2ZpeHVwKTsKKworc3RhdGljIHN0cnVjdCBwY2lfYnVzIF9faW5pdCAqCitraXJrd29vZF9wY2llX3NjYW5fYnVzKGludCBuciwgc3RydWN0IHBjaV9zeXNfZGF0YSAqc3lzKQoreworCXN0cnVjdCBwY2lfYnVzICpidXM7CisKKwlpZiAobnIgPT0gMCkgeworCQlidXMgPSBwY2lfc2Nhbl9idXMoc3lzLT5idXNuciwgJnBjaWVfb3BzLCBzeXMpOworCX0gZWxzZSB7CisJCWJ1cyA9IE5VTEw7CisJCUJVRygpOworCX0KKworCXJldHVybiBidXM7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGtpcmt3b29kX3BjaWVfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJcmV0dXJuIElSUV9LSVJLV09PRF9QQ0lFOworfQorCitzdGF0aWMgc3RydWN0IGh3X3BjaSBraXJrd29vZF9wY2kgX19pbml0ZGF0YSA9IHsKKwkubnJfY29udHJvbGxlcnMJPSAxLAorCS5zd2l6emxlCT0gcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cAkJPSBraXJrd29vZF9wY2llX3NldHVwLAorCS5zY2FuCQk9IGtpcmt3b29kX3BjaWVfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSBraXJrd29vZF9wY2llX21hcF9pcnEsCit9OworCit2b2lkIF9faW5pdCBraXJrd29vZF9wY2llX2luaXQodm9pZCkKK3sKKwlwY2lfY29tbW9uX2luaXQoJmtpcmt3b29kX3BjaSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL3JkODhmNjE5Mi1uYXMtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvcmQ4OGY2MTkyLW5hcy1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZjY0MmMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL3JkODhmNjE5Mi1uYXMtc2V0dXAuYwpAQCAtMCwwICsxLDY5IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9yZDg4ZjYxOTItbmFzLXNldHVwLmMKKyAqCisgKiBNYXJ2ZWxsIFJELTg4RjYxOTItTkFTIFJlZmVyZW5jZSBCb2FyZCBTZXR1cAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9raXJrd29vZC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCisjZGVmaW5lIFJEODhGNjE5Ml9HUElPX1VTQl9WQlVTCQkxMAorCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgcmQ4OGY2MTkyX2dlMDBfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSA4LAorfTsKKworc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgcmQ4OGY2MTkyX3NhdGFfZGF0YSA9IHsKKwkubl9wb3J0cwk9IDIsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcmQ4OGY2MTkyX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIEJhc2ljIHNldHVwLiBOZWVkcyB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJa2lya3dvb2RfaW5pdCgpOworCisJa2lya3dvb2RfZWhjaV9pbml0KCk7CisJa2lya3dvb2RfZ2UwMF9pbml0KCZyZDg4ZjYxOTJfZ2UwMF9kYXRhKTsKKwlraXJrd29vZF9ydGNfaW5pdCgpOworCWtpcmt3b29kX3NhdGFfaW5pdCgmcmQ4OGY2MTkyX3NhdGFfZGF0YSk7CisJa2lya3dvb2RfdWFydDBfaW5pdCgpOworfQorCitzdGF0aWMgaW50IF9faW5pdCByZDg4ZjYxOTJfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19yZDg4ZjYxOTJfbmFzKCkpCisJCWtpcmt3b29kX3BjaWVfaW5pdCgpOworCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwocmQ4OGY2MTkyX3BjaV9pbml0KTsKKworTUFDSElORV9TVEFSVChSRDg4RjYxOTJfTkFTLCAiTWFydmVsbCBSRC04OEY2MTkyLU5BUyBEZXZlbG9wbWVudCBCb2FyZCIpCisJLyogTWFpbnRhaW5lcjogU2FlZWQgQmlzaGFyYSA8c2FlZWRAbWFydmVsbC5jb20+ICovCisJLnBoeXNfaW8JPSBLSVJLV09PRF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKEtJUktXT09EX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gcmQ4OGY2MTkyX2luaXQsCisJLm1hcF9pbwkJPSBraXJrd29vZF9tYXBfaW8sCisJLmluaXRfaXJxCT0ga2lya3dvb2RfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZraXJrd29vZF90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL3JkODhmNjI4MS1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9yZDg4ZjYyODEtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWY4ZGUyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9yZDg4ZjYyODEtc2V0dXAuYwpAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gta2lya3dvb2QvcmQ4OGY2MjgxLXNldHVwLmMKKyAqCisgKiBNYXJ2ZWxsIFJELTg4RjYyODEgUmVmZXJlbmNlIEJvYXJkIFNldHVwCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vb3Jpb25fbmFuZC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gcmQ4OGY2MjgxX25hbmRfcGFydHNbXSA9IHsKKwl7CisJCS5uYW1lID0gInUtYm9vdCIsCisJCS5vZmZzZXQgPSAwLAorCQkuc2l6ZSA9IFNaXzFNCisJfSwgeworCQkubmFtZSA9ICJ1SW1hZ2UiLAorCQkub2Zmc2V0ID0gTVREUEFSVF9PRlNfTlhUQkxLLAorCQkuc2l6ZSA9IFNaXzJNCisJfSwgeworCQkubmFtZSA9ICJyb290IiwKKwkJLm9mZnNldCA9IE1URFBBUlRfT0ZTX05YVEJMSywKKwkJLnNpemUgPSBNVERQQVJUX1NJWl9GVUxMCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcmQ4OGY2MjgxX25hbmRfcmVzb3VyY2UgPSB7CisJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAkJPSBLSVJLV09PRF9OQU5EX01FTV9QSFlTX0JBU0UsCisJLmVuZAkJPSBLSVJLV09PRF9OQU5EX01FTV9QSFlTX0JBU0UgKworCQkJICBLSVJLV09PRF9OQU5EX01FTV9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgb3Jpb25fbmFuZF9kYXRhIHJkODhmNjI4MV9uYW5kX2RhdGEgPSB7CisJLnBhcnRzCQk9IHJkODhmNjI4MV9uYW5kX3BhcnRzLAorCS5ucl9wYXJ0cwk9IEFSUkFZX1NJWkUocmQ4OGY2MjgxX25hbmRfcGFydHMpLAorCS5jbGUJCT0gMCwKKwkuYWxlCQk9IDEsCisJLndpZHRoCQk9IDgsCisJLmNoaXBfZGVsYXkJPSAyNSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHJkODhmNjI4MV9uYW5kX2ZsYXNoID0geworCS5uYW1lCQk9ICJvcmlvbl9uYW5kIiwKKwkuaWQJCT0gLTEsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnJkODhmNjI4MV9uYW5kX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJPSAmcmQ4OGY2MjgxX25hbmRfcmVzb3VyY2UsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHJkODhmNjI4MV9nZTAwX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gLTEsCit9OworCitzdGF0aWMgc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSByZDg4ZjYyODFfc2F0YV9kYXRhID0geworCS5uX3BvcnRzCT0gMiwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCByZDg4ZjYyODFfaW5pdCh2b2lkKQoreworCS8qCisJICogQmFzaWMgc2V0dXAuIE5lZWRzIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlraXJrd29vZF9pbml0KCk7CisKKwlraXJrd29vZF9laGNpX2luaXQoKTsKKwlraXJrd29vZF9nZTAwX2luaXQoJnJkODhmNjI4MV9nZTAwX2RhdGEpOworCWtpcmt3b29kX3J0Y19pbml0KCk7CisJa2lya3dvb2Rfc2F0YV9pbml0KCZyZDg4ZjYyODFfc2F0YV9kYXRhKTsKKwlraXJrd29vZF91YXJ0MF9pbml0KCk7CisJa2lya3dvb2RfdWFydDFfaW5pdCgpOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZyZDg4ZjYyODFfbmFuZF9mbGFzaCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHJkODhmNjI4MV9wY2lfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX3JkODhmNjI4MSgpKQorCQlraXJrd29vZF9wY2llX2luaXQoKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKHJkODhmNjI4MV9wY2lfaW5pdCk7CisKK01BQ0hJTkVfU1RBUlQoUkQ4OEY2MjgxLCAiTWFydmVsbCBSRC04OEY2MjgxIFJlZmVyZW5jZSBCb2FyZCIpCisJLyogTWFpbnRhaW5lcjogU2FlZWQgQmlzaGFyYSA8c2FlZWRAbWFydmVsbC5jb20+ICovCisJLnBoeXNfaW8JPSBLSVJLV09PRF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKEtJUktXT09EX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gcmQ4OGY2MjgxX2luaXQsCisJLm1hcF9pbwkJPSBraXJrd29vZF9tYXBfaW8sCisJLmluaXRfaXJxCT0ga2lya3dvb2RfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZraXJrd29vZF90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtbG9raS9LY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwNDViZGQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvS2NvbmZpZwpAQCAtMCwwICsxLDEzIEBACitpZiBBUkNIX0xPS0kKKworbWVudSAiTWFydmVsbCBMb2tpICg4OFJDODQ4MCkgSW1wbGVtZW50YXRpb25zIgorCitjb25maWcgTUFDSF9MQjg4UkM4NDgwCisJYm9vbCAiTWFydmVsbCBMQjg4UkM4NDgwIERldmVsb3BtZW50IEJvYXJkIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTWFydmVsbCBMQjg4UkM4NDgwIERldmVsb3BtZW50IEJvYXJkLgorCitlbmRtZW51CisKK2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLWxva2kvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQzMjMzZQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbG9raS9NYWtlZmlsZQpAQCAtMCwwICsxLDMgQEAKK29iai15CQkJCSs9IGNvbW1vbi5vIGFkZHItbWFwLm8gaXJxLm8KKworb2JqLSQoQ09ORklHX01BQ0hfTEI4OFJDODQ4MCkJKz0gbGI4OHJjODQ4MC1zZXR1cC5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvTWFrZWZpbGUuYm9vdCBiL2FyY2gvYXJtL21hY2gtbG9raS9NYWtlZmlsZS5ib290Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MDM5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvTWFrZWZpbGUuYm9vdApAQCAtMCwwICsxLDMgQEAKKyAgIHpyZWxhZGRyLXkJOj0gMHgwMDAwODAwMAorcGFyYW1zX3BoeXMteQk6PSAweDAwMDAwMTAwCitpbml0cmRfcGh5cy15CTo9IDB4MDA4MDAwMDAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbG9raS9hZGRyLW1hcC5jIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2FkZHItbWFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmEyNWU1NgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbG9raS9hZGRyLW1hcC5jCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1sb2tpL2FkZHItbWFwLmMKKyAqCisgKiBBZGRyZXNzIG1hcCBmdW5jdGlvbnMgZm9yIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworLyoKKyAqIEdlbmVyaWMgQWRkcmVzcyBEZWNvZGUgV2luZG93cyBiaXQgc2V0dGluZ3MKKyAqLworI2RlZmluZSBUQVJHRVRfRERSCQkwCisjZGVmaW5lIFRBUkdFVF9ERVZfQlVTCQkxCisjZGVmaW5lIFRBUkdFVF9QQ0lFMAkJMworI2RlZmluZSBUQVJHRVRfUENJRTEJCTQKKyNkZWZpbmUgQVRUUl9ERVZfQk9PVAkJMHgwZgorI2RlZmluZSBBVFRSX0RFVl9DUzIJCTB4MWIKKyNkZWZpbmUgQVRUUl9ERVZfQ1MxCQkweDFkCisjZGVmaW5lIEFUVFJfREVWX0NTMAkJMHgxZQorI2RlZmluZSBBVFRSX1BDSUVfSU8JCTB4NTEKKyNkZWZpbmUgQVRUUl9QQ0lFX01FTQkJMHg1OQorCisvKgorICogSGVscGVycyB0byBnZXQgRERSIGJhbmsgaW5mbworICovCisjZGVmaW5lIEREUl9TSVpFX0NTKG4pCQlERFJfUkVHKDB4MTUwMCArICgobikgPDwgMykpCisjZGVmaW5lIEREUl9CQVNFX0NTKG4pCQlERFJfUkVHKDB4MTUwNCArICgobikgPDwgMykpCisKKy8qCisgKiBDUFUgQWRkcmVzcyBEZWNvZGUgV2luZG93cyByZWdpc3RlcnMKKyAqLworI2RlZmluZSBDUFVfV0lOX0NUUkwobikJCUJSSURHRV9SRUcoMHgwMDAgfCAoKG4pIDw8IDQpKQorI2RlZmluZSBDUFVfV0lOX0JBU0UobikJCUJSSURHRV9SRUcoMHgwMDQgfCAoKG4pIDw8IDQpKQorI2RlZmluZSBDUFVfV0lOX1JFTUFQX0xPKG4pCUJSSURHRV9SRUcoMHgwMDggfCAoKG4pIDw8IDQpKQorI2RlZmluZSBDUFVfV0lOX1JFTUFQX0hJKG4pCUJSSURHRV9SRUcoMHgwMGMgfCAoKG4pIDw8IDQpKQorCisKK3N0cnVjdCBtYnVzX2RyYW1fdGFyZ2V0X2luZm8gbG9raV9tYnVzX2RyYW1faW5mbzsKKworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2NwdV93aW4oaW50IHdpbiwgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCSB1OCB0YXJnZXQsIHU4IGF0dHIsIGludCByZW1hcCkKK3sKKwl1MzIgY3RybDsKKworCWJhc2UgJj0gMHhmZmZmMDAwMDsKKwljdHJsID0gKChzaXplIC0gMSkgJiAweGZmZmYwMDAwKSB8IChhdHRyIDw8IDgpIHwgKDEgPDwgNSkgfCB0YXJnZXQ7CisKKwl3cml0ZWwoYmFzZSwgQ1BVX1dJTl9CQVNFKHdpbikpOworCXdyaXRlbChjdHJsLCBDUFVfV0lOX0NUUkwod2luKSk7CisJaWYgKHdpbiA8IDIpIHsKKwkJaWYgKHJlbWFwIDwgMCkKKwkJCXJlbWFwID0gYmFzZTsKKworCQl3cml0ZWwocmVtYXAgJiAweGZmZmYwMDAwLCBDUFVfV0lOX1JFTUFQX0xPKHdpbikpOworCQl3cml0ZWwoMCwgQ1BVX1dJTl9SRU1BUF9ISSh3aW4pKTsKKwl9Cit9CisKK3ZvaWQgX19pbml0IGxva2lfc2V0dXBfY3B1X21idXModm9pZCkKK3sKKwlpbnQgaTsKKwlpbnQgY3M7CisKKwkvKgorCSAqIEZpcnN0LCBkaXNhYmxlIGFuZCBjbGVhciB3aW5kb3dzLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJd3JpdGVsKDAsIENQVV9XSU5fQkFTRShpKSk7CisJCXdyaXRlbCgwLCBDUFVfV0lOX0NUUkwoaSkpOworCQlpZiAoaSA8IDIpIHsKKwkJCXdyaXRlbCgwLCBDUFVfV0lOX1JFTUFQX0xPKGkpKTsKKwkJCXdyaXRlbCgwLCBDUFVfV0lOX1JFTUFQX0hJKGkpKTsKKwkJfQorCX0KKworCS8qCisJICogU2V0dXAgd2luZG93cyBmb3IgUENJZSBJTytNRU0gc3BhY2UuCisJICovCisJc2V0dXBfY3B1X3dpbigyLCBMT0tJX1BDSUUwX01FTV9QSFlTX0JBU0UsIExPS0lfUENJRTBfTUVNX1NJWkUsCisJCSAgICAgIFRBUkdFVF9QQ0lFMCwgQVRUUl9QQ0lFX01FTSwgLTEpOworCXNldHVwX2NwdV93aW4oMywgTE9LSV9QQ0lFMV9NRU1fUEhZU19CQVNFLCBMT0tJX1BDSUUxX01FTV9TSVpFLAorCQkgICAgICBUQVJHRVRfUENJRTEsIEFUVFJfUENJRV9NRU0sIC0xKTsKKworCS8qCisJICogU2V0dXAgTUJVUyBkcmFtIHRhcmdldCBpbmZvLgorCSAqLworCWxva2lfbWJ1c19kcmFtX2luZm8ubWJ1c19kcmFtX3RhcmdldF9pZCA9IFRBUkdFVF9ERFI7CisKKwlmb3IgKGkgPSAwLCBjcyA9IDA7IGkgPCA0OyBpKyspIHsKKwkJdTMyIGJhc2UgPSByZWFkbChERFJfQkFTRV9DUyhpKSk7CisJCXUzMiBzaXplID0gcmVhZGwoRERSX1NJWkVfQ1MoaSkpOworCisJCS8qCisJCSAqIENoaXAgc2VsZWN0IGVuYWJsZWQ/CisJCSAqLworCQlpZiAoc2l6ZSAmIDEpIHsKKwkJCXN0cnVjdCBtYnVzX2RyYW1fd2luZG93ICp3OworCisJCQl3ID0gJmxva2lfbWJ1c19kcmFtX2luZm8uY3NbY3MrK107CisJCQl3LT5jc19pbmRleCA9IGk7CisJCQl3LT5tYnVzX2F0dHIgPSAweGYgJiB+KDEgPDwgaSk7CisJCQl3LT5iYXNlID0gYmFzZSAmIDB4ZmZmZjAwMDA7CisJCQl3LT5zaXplID0gKHNpemUgfCAweDAwMDBmZmZmKSArIDE7CisJCX0KKwl9CisJbG9raV9tYnVzX2RyYW1faW5mby5udW1fY3MgPSBjczsKK30KKwordm9pZCBfX2luaXQgbG9raV9zZXR1cF9kZXZfYm9vdF93aW4odTMyIGJhc2UsIHUzMiBzaXplKQoreworCXNldHVwX2NwdV93aW4oNCwgYmFzZSwgc2l6ZSwgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX0JPT1QsIC0xKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbG9raS9jb21tb24uYyBiL2FyY2gvYXJtL21hY2gtbG9raS9jb21tb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTBmNTAzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2NvbW1vbi5jCkBAIC0wLDAgKzEsMzA1IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1sb2tpL2NvbW1vbi5jCisgKgorICogQ29yZSBmdW5jdGlvbnMgZm9yIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF84MjUwLmg+CisjaW5jbHVkZSA8bGludXgvbWJ1cy5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vdGltZXguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbG9raS5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi90aW1lLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogSS9PIEFkZHJlc3MgTWFwcGluZworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIGxva2lfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbAk9IExPS0lfUkVHU19WSVJUX0JBU0UsCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihMT0tJX1JFR1NfUEhZU19CQVNFKSwKKwkJLmxlbmd0aAkJPSBMT0tJX1JFR1NfU0laRSwKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAorCX0sCit9OworCit2b2lkIF9faW5pdCBsb2tpX21hcF9pbyh2b2lkKQoreworCWlvdGFibGVfaW5pdChsb2tpX2lvX2Rlc2MsIEFSUkFZX1NJWkUobG9raV9pb19kZXNjKSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHRTAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RydWN0IG12NjQzeHhfZXRoX3NoYXJlZF9wbGF0Zm9ybV9kYXRhIGxva2lfZ2UwX3NoYXJlZF9kYXRhID0geworCS50X2NsawkJPSBMT0tJX1RDTEssCisJLmRyYW0JCT0gJmxva2lfbWJ1c19kcmFtX2luZm8sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGxva2lfZ2UwX3NoYXJlZF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMCBiYXNlIiwKKwkJLnN0YXJ0CT0gR0UwX1BIWVNfQkFTRSArIDB4MjAwMCwKKwkJLmVuZAk9IEdFMF9QSFlTX0JBU0UgKyAweDNmZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBsb2tpX2dlMF9zaGFyZWQgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfU0hBUkVEX05BTUUsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmxva2lfZ2UwX3NoYXJlZF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IGxva2lfZ2UwX3NoYXJlZF9yZXNvdXJjZXMsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGxva2lfZ2UwX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UwIGlycSIsCisJCS5zdGFydAk9IElSUV9MT0tJX0dCRV9BX0lOVCwKKwkJLmVuZAk9IElSUV9MT0tJX0dCRV9BX0lOVCwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxva2lfZ2UwID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX05BTUUsCisJLmlkCQk9IDAsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IGxva2lfZ2UwX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IGxva2lfZ2UwX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKQoreworCWV0aF9kYXRhLT5zaGFyZWQgPSAmbG9raV9nZTBfc2hhcmVkOworCWxva2lfZ2UwLmRldi5wbGF0Zm9ybV9kYXRhID0gZXRoX2RhdGE7CisKKwl3cml0ZWwoMHgwMDA3OTIyMCwgR0UwX1ZJUlRfQkFTRSArIDB4MjBiMCk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZsb2tpX2dlMF9zaGFyZWQpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbG9raV9nZTApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0cnVjdCBtdjY0M3h4X2V0aF9zaGFyZWRfcGxhdGZvcm1fZGF0YSBsb2tpX2dlMV9zaGFyZWRfZGF0YSA9IHsKKwkudF9jbGsJCT0gTE9LSV9UQ0xLLAorCS5kcmFtCQk9ICZsb2tpX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsb2tpX2dlMV9zaGFyZWRfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTEgYmFzZSIsCisJCS5zdGFydAk9IEdFMV9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTFfUEhZU19CQVNFICsgMHgzZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbG9raV9nZTFfc2hhcmVkID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLAorCS5pZAkJPSAxLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZsb2tpX2dlMV9zaGFyZWRfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBsb2tpX2dlMV9zaGFyZWRfcmVzb3VyY2VzLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsb2tpX2dlMV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMSBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTE9LSV9HQkVfQl9JTlQsCisJCS5lbmQJPSBJUlFfTE9LSV9HQkVfQl9JTlQsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBsb2tpX2dlMSA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9OQU1FLAorCS5pZAkJPSAxLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBsb2tpX2dlMV9yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBsb2tpX2dlMV9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSkKK3sKKwlldGhfZGF0YS0+c2hhcmVkID0gJmxva2lfZ2UxX3NoYXJlZDsKKwlsb2tpX2dlMS5kZXYucGxhdGZvcm1fZGF0YSA9IGV0aF9kYXRhOworCisJd3JpdGVsKDB4MDAwNzkyMjAsIEdFMV9WSVJUX0JBU0UgKyAweDIwYjApOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbG9raV9nZTFfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmxva2lfZ2UxKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFNBUy9TQVRBCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbG9raV9zYXNfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJtdnNhczAgbWVtIiwKKwkJLnN0YXJ0CT0gU0FTMF9QSFlTX0JBU0UsCisJCS5lbmQJPSBTQVMwX1BIWVNfQkFTRSArIDB4MDFmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkubmFtZQk9ICJtdnNhczAgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX0xPS0lfU0FTX0EsCisJCS5lbmQJPSBJUlFfTE9LSV9TQVNfQSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwgeworCQkubmFtZQk9ICJtdnNhczEgbWVtIiwKKwkJLnN0YXJ0CT0gU0FTMV9QSFlTX0JBU0UsCisJCS5lbmQJPSBTQVMxX1BIWVNfQkFTRSArIDB4MDFmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkubmFtZQk9ICJtdnNhczEgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX0xPS0lfU0FTX0IsCisJCS5lbmQJPSBJUlFfTE9LSV9TQVNfQiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxva2lfc2FzID0geworCS5uYW1lCQk9ICJtdnNhcyIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4ZmZmZmZmZmYsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUobG9raV9zYXNfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UJPSBsb2tpX3Nhc19yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBsb2tpX3Nhc19pbml0KHZvaWQpCit7CisJd3JpdGVsKDB4ODMwMGY3MDcsIEREUl9SRUcoMHgxNDI0KSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZsb2tpX3Nhcyk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IGxva2lfdWFydDBfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMF9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX0xPS0lfVUFSVDAsCisJCS5mbGFncwkJPSBVUEZfU0tJUF9URVNUIHwgVVBGX0JPT1RfQVVUT0NPTkYsCisJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCS5yZWdzaGlmdAk9IDIsCisJCS51YXJ0Y2xrCT0gTE9LSV9UQ0xLLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsb2tpX3VhcnQwX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQwX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMF9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX0xPS0lfVUFSVDAsCisJCS5lbmQJCT0gSVJRX0xPS0lfVUFSVDAsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbG9raV91YXJ0MCA9IHsKKwkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAorCS5pZAkJCT0gMCwKKwkuZGV2CQkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gbG9raV91YXJ0MF9kYXRhLAorCX0sCisJLnJlc291cmNlCQk9IGxva2lfdWFydDBfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCQk9IEFSUkFZX1NJWkUobG9raV91YXJ0MF9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgbG9raV91YXJ0MF9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZsb2tpX3VhcnQwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFVBUlQxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcGxhdF9zZXJpYWw4MjUwX3BvcnQgbG9raV91YXJ0MV9kYXRhW10gPSB7CisJeworCQkubWFwYmFzZQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLm1lbWJhc2UJPSAoY2hhciAqKVVBUlQxX1ZJUlRfQkFTRSwKKwkJLmlycQkJPSBJUlFfTE9LSV9VQVJUMSwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSBMT0tJX1RDTEssCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGxva2lfdWFydDFfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJCT0gVUFSVDFfUEhZU19CQVNFLAorCQkuZW5kCQk9IFVBUlQxX1BIWVNfQkFTRSArIDB4ZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAkJPSBJUlFfTE9LSV9VQVJUMSwKKwkJLmVuZAkJPSBJUlFfTE9LSV9VQVJUMSwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBsb2tpX3VhcnQxID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAxLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBsb2tpX3VhcnQxX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gbG9raV91YXJ0MV9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShsb2tpX3VhcnQxX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBsb2tpX3VhcnQxX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmxva2lfdWFydDEpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVGltZSBoYW5kbGluZworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBsb2tpX3RpbWVyX2luaXQodm9pZCkKK3sKKwlvcmlvbl90aW1lX2luaXQoSVJRX0xPS0lfQlJJREdFLCBMT0tJX1RDTEspOworfQorCitzdHJ1Y3Qgc3lzX3RpbWVyIGxva2lfdGltZXIgPSB7CisJLmluaXQgPSBsb2tpX3RpbWVyX2luaXQsCit9OworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR2VuZXJhbAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCit2b2lkIF9faW5pdCBsb2tpX2luaXQodm9pZCkKK3sKKwlwcmludGsoS0VSTl9JTkZPICJMb2tpIElEOiA4OFJDODQ4MC4gVENMSz0lZC5cbiIsIExPS0lfVENMSyk7CisKKwlsb2tpX3NldHVwX2NwdV9tYnVzKCk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvY29tbW9uLmggYi9hcmNoL2FybS9tYWNoLWxva2kvY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYwNTRmZAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbG9raS9jb21tb24uaApAQCAtMCwwICsxLDM2IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1sb2tpL2NvbW1vbi5oCisgKgorICogQ29yZSBmdW5jdGlvbnMgZm9yIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVJDSF9MT0tJX0NPTU1PTl9ICisjZGVmaW5lIF9fQVJDSF9MT0tJX0NPTU1PTl9ICisKK3N0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhOworCisvKgorICogQmFzaWMgTG9raSBpbml0IGZ1bmN0aW9ucyB1c2VkIGVhcmx5IGJ5IG1hY2hpbmUtc2V0dXAuCisgKi8KK3ZvaWQgbG9raV9tYXBfaW8odm9pZCk7Cit2b2lkIGxva2lfaW5pdCh2b2lkKTsKK3ZvaWQgbG9raV9pbml0X2lycSh2b2lkKTsKKworZXh0ZXJuIHN0cnVjdCBtYnVzX2RyYW1fdGFyZ2V0X2luZm8gbG9raV9tYnVzX2RyYW1faW5mbzsKK3ZvaWQgbG9raV9zZXR1cF9jcHVfbWJ1cyh2b2lkKTsKK3ZvaWQgbG9raV9zZXR1cF9kZXZfYm9vdF93aW4odTMyIGJhc2UsIHUzMiBzaXplKTsKKwordm9pZCBsb2tpX2dlMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIGxva2lfZ2UxX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKTsKK3ZvaWQgbG9raV9zYXNfaW5pdCh2b2lkKTsKK3ZvaWQgbG9raV91YXJ0MF9pbml0KHZvaWQpOwordm9pZCBsb2tpX3VhcnQxX2luaXQodm9pZCk7CisKK2V4dGVybiBzdHJ1Y3Qgc3lzX3RpbWVyIGxva2lfdGltZXI7CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvaXJxLmMgYi9hcmNoL2FybS9tYWNoLWxva2kvaXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgzOWFmOQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbG9raS9pcnEuYwpAQCAtMCwwICsxLDIxIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1sb2tpL2lycS5jCisgKgorICogTWFydmVsbCBMb2tpICg4OFJDODQ4MCkgSVJRIGhhbmRsaW5nLgorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vaXJxLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKK3ZvaWQgX19pbml0IGxva2lfaW5pdF9pcnEodm9pZCkKK3sKKwlvcmlvbl9pcnFfaW5pdCgwLCAodm9pZCBfX2lvbWVtICopKElSUV9WSVJUX0JBU0UgKyBJUlFfTUFTS19PRkYpKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbG9raS9sYjg4cmM4NDgwLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLWxva2kvbGI4OHJjODQ4MC1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxYjllNmUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvbGI4OHJjODQ4MC1zZXR1cC5jCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1sb2tpL2xiODhyYzg0ODAtc2V0dXAuYworICoKKyAqIE1hcnZlbGwgTEI4OFJDODQ4MCBEZXZlbG9wbWVudCBCb2FyZCBTZXR1cAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9sb2tpLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNkZWZpbmUgTEI4OFJDODQ4MF9GTEFTSF9CT09UX0NTX0JBU0UJMHhmODAwMDAwMAorI2RlZmluZSBMQjg4UkM4NDgwX0ZMQVNIX0JPT1RfQ1NfU0laRQlTWl8xMjhNCisKKyNkZWZpbmUgTEI4OFJDODQ4MF9OT1JfQk9PVF9CQVNFCTB4ZmYwMDAwMDAKKyNkZWZpbmUgTEI4OFJDODQ4MF9OT1JfQk9PVF9TSVpFCVNaXzE2TQorCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gbGI4OHJjODQ4MF9ib290X2ZsYXNoX3BhcnRzW10gPSB7CisJeworCQkubmFtZQk9ICJrZXJuZWwiLAorCQkub2Zmc2V0CT0gMCwKKwkJLnNpemUJPSBTWl8yTSwKKwl9LCB7CisJCS5uYW1lCT0gInJvb3QtZnMiLAorCQkub2Zmc2V0CT0gU1pfMk0sCisJCS5zaXplCT0gKFNaXzhNICsgU1pfNE0gKyBTWl8xTSksCisJfSwgeworCQkubmFtZQk9ICJ1LWJvb3QiLAorCQkub2Zmc2V0CT0gKFNaXzhNICsgU1pfNE0gKyBTWl8yTSArIFNaXzFNKSwKKwkJLnNpemUJPSBTWl8xTSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgbGI4OHJjODQ4MF9ib290X2ZsYXNoX2RhdGEgPSB7CisJLnBhcnRzCQk9IGxiODhyYzg0ODBfYm9vdF9mbGFzaF9wYXJ0cywKKwkubnJfcGFydHMJPSBBUlJBWV9TSVpFKGxiODhyYzg0ODBfYm9vdF9mbGFzaF9wYXJ0cyksCisJLndpZHRoCQk9IDEsCS8qIDggYml0IGJ1cyB3aWR0aCAqLworfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsYjg4cmM4NDgwX2Jvb3RfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CT0gTEI4OFJDODQ4MF9OT1JfQk9PVF9CQVNFLAorCS5lbmQJPSBMQjg4UkM4NDgwX05PUl9CT09UX0JBU0UgKyBMQjg4UkM4NDgwX05PUl9CT09UX1NJWkUgLSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbGI4OHJjODQ4MF9ib290X2ZsYXNoID0geworCS5uYW1lCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAk9IDAsCisJLmRldgk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbGI4OHJjODQ4MF9ib290X2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gJmxiODhyYzg0ODBfYm9vdF9mbGFzaF9yZXNvdXJjZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBsYjg4cmM4NDgwX2dlMF9kYXRhID0geworCS5waHlfYWRkcgk9IDEsCisJLm1hY19hZGRyCT0geyAweDAwLCAweDUwLCAweDQzLCAweDExLCAweDIyLCAweDMzIH0sCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgbGI4OHJjODQ4MF9pbml0KHZvaWQpCit7CisJLyoKKwkgKiBCYXNpYyBzZXR1cC4gTmVlZHMgdG8gYmUgY2FsbGVkIGVhcmx5LgorCSAqLworCWxva2lfaW5pdCgpOworCisJbG9raV9nZTBfaW5pdCgmbGI4OHJjODQ4MF9nZTBfZGF0YSk7CisJbG9raV9zYXNfaW5pdCgpOworCWxva2lfdWFydDBfaW5pdCgpOworCWxva2lfdWFydDFfaW5pdCgpOworCisJbG9raV9zZXR1cF9kZXZfYm9vdF93aW4oTEI4OFJDODQ4MF9GTEFTSF9CT09UX0NTX0JBU0UsCisJCQkJTEI4OFJDODQ4MF9GTEFTSF9CT09UX0NTX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbGI4OHJjODQ4MF9ib290X2ZsYXNoKTsKK30KKworTUFDSElORV9TVEFSVChMQjg4UkM4NDgwLCAiTWFydmVsbCBMQjg4UkM4NDgwIERldmVsb3BtZW50IEJvYXJkIikKKwkvKiBNYWludGFpbmVyOiBLZSBXZWkgPGtld2VpQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gTE9LSV9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKExPS0lfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSBsYjg4cmM4NDgwX2luaXQsCisJLm1hcF9pbwkJPSBsb2tpX21hcF9pbywKKwkuaW5pdF9pcnEJPSBsb2tpX2luaXRfaXJxLAorCS50aW1lcgkJPSAmbG9raV90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9LY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4M2NiODYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvS2NvbmZpZwpAQCAtMCwwICsxLDEzIEBACitpZiBBUkNIX01WNzhYWDAKKworbWVudSAiTWFydmVsbCBNVjc4eHgwIEltcGxlbWVudGF0aW9ucyIKKworY29uZmlnIE1BQ0hfREI3OFgwMF9CUAorCWJvb2wgIk1hcnZlbGwgREItNzh4MDAtQlAgRGV2ZWxvcG1lbnQgQm9hcmQiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBNYXJ2ZWxsIERCLTc4eDAwLUJQIERldmVsb3BtZW50IEJvYXJkLgorCitlbmRtZW51CisKK2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWMxNmMwNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9NYWtlZmlsZQpAQCAtMCwwICsxLDIgQEAKK29iai15CQkJCSs9IGNvbW1vbi5vIGFkZHItbWFwLm8gaXJxLm8gcGNpZS5vCitvYmotJChDT05GSUdfTUFDSF9EQjc4WDAwX0JQKQkrPSBkYjc4eDAwLWJwLXNldHVwLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9NYWtlZmlsZS5ib290IGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL01ha2VmaWxlLmJvb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjcwMzljMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9NYWtlZmlsZS5ib290CkBAIC0wLDAgKzEsMyBAQAorICAgenJlbGFkZHIteQk6PSAweDAwMDA4MDAwCitwYXJhbXNfcGh5cy15CTo9IDB4MDAwMDAxMDAKK2luaXRyZF9waHlzLXkJOj0gMHgwMDgwMDAwMApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2FkZHItbWFwLmMgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvYWRkci1tYXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDA0YjY3Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2FkZHItbWFwLmMKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLW12Nzh4eDAvYWRkci1tYXAuYworICoKKyAqIEFkZHJlc3MgbWFwIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBNVjc4eHgwIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworLyoKKyAqIEdlbmVyaWMgQWRkcmVzcyBEZWNvZGUgV2luZG93cyBiaXQgc2V0dGluZ3MKKyAqLworI2RlZmluZSBUQVJHRVRfRERSCQkwCisjZGVmaW5lIFRBUkdFVF9ERVZfQlVTCQkxCisjZGVmaW5lIFRBUkdFVF9QQ0lFMAkJNAorI2RlZmluZSBUQVJHRVRfUENJRTEJCTgKKyNkZWZpbmUgVEFSR0VUX1BDSUUoaSkJCSgoaSkgPyBUQVJHRVRfUENJRTEgOiBUQVJHRVRfUENJRTApCisjZGVmaW5lIEFUVFJfREVWX1NQSV9ST00JMHgxZgorI2RlZmluZSBBVFRSX0RFVl9CT09UCQkweDJmCisjZGVmaW5lIEFUVFJfREVWX0NTMwkJMHgzNworI2RlZmluZSBBVFRSX0RFVl9DUzIJCTB4M2IKKyNkZWZpbmUgQVRUUl9ERVZfQ1MxCQkweDNkCisjZGVmaW5lIEFUVFJfREVWX0NTMAkJMHgzZQorI2RlZmluZSBBVFRSX1BDSUVfSU8obCkJCSgweGYwICYgfigweDEwIDw8IChsKSkpCisjZGVmaW5lIEFUVFJfUENJRV9NRU0obCkJKDB4ZjggJiB+KDB4MTAgPDwgKGwpKSkKKworLyoKKyAqIEhlbHBlcnMgdG8gZ2V0IEREUiBiYW5rIGluZm8KKyAqLworI2RlZmluZSBERFJfQkFTRV9DU19PRkYobikJKDB4MDAwMCArICgobikgPDwgMykpCisjZGVmaW5lIEREUl9TSVpFX0NTX09GRihuKQkoMHgwMDA0ICsgKChuKSA8PCAzKSkKKworLyoKKyAqIENQVSBBZGRyZXNzIERlY29kZSBXaW5kb3dzIHJlZ2lzdGVycworICovCisjZGVmaW5lIFdJTjBfT0ZGKG4pCQkoQlJJREdFX1ZJUlRfQkFTRSArIDB4MDAwMCArICgobikgPDwgNCkpCisjZGVmaW5lIFdJTjhfT0ZGKG4pCQkoQlJJREdFX1ZJUlRfQkFTRSArIDB4MDkwMCArICgoKG4pIC0gOCkgPDwgNCkpCisjZGVmaW5lIFdJTl9DVFJMX09GRgkJMHgwMDAwCisjZGVmaW5lIFdJTl9CQVNFX09GRgkJMHgwMDA0CisjZGVmaW5lIFdJTl9SRU1BUF9MT19PRkYJMHgwMDA4CisjZGVmaW5lIFdJTl9SRU1BUF9ISV9PRkYJMHgwMDBjCisKKworc3RydWN0IG1idXNfZHJhbV90YXJnZXRfaW5mbyBtdjc4eHgwX21idXNfZHJhbV9pbmZvOworCitzdGF0aWMgdm9pZCBfX2luaXQgX19pb21lbSAqd2luX2NmZ19iYXNlKGludCB3aW4pCit7CisJLyoKKwkgKiBGaW5kIHRoZSBjb250cm9sIHJlZ2lzdGVyIGJhc2UgYWRkcmVzcyBmb3IgdGhpcyB3aW5kb3cuCisJICoKKwkgKiBCUklER0VfVklSVF9CQVNFIHBvaW50cyB0byB0aGUgcmlnaHQgKENQVTAncyBvciBDUFUxJ3MpCisJICogTUJVUyBicmlkZ2UgZGVwZW5kaW5nIG9uIHdoaWNoIENQVSBjb3JlIHdlJ3JlIHJ1bm5pbmcgb24sCisJICogc28gd2UgZG9uJ3QgbmVlZCB0byB0YWtlIHRoYXQgaW50byBhY2NvdW50IGhlcmUuCisJICovCisKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSgod2luIDwgOCkgPyBXSU4wX09GRih3aW4pIDogV0lOOF9PRkYod2luKSk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGNwdV93aW5fY2FuX3JlbWFwKGludCB3aW4pCit7CisJaWYgKHdpbiA8IDgpCisJCXJldHVybiAxOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9jcHVfd2luKGludCB3aW4sIHUzMiBiYXNlLCB1MzIgc2l6ZSwKKwkJCQkgdTggdGFyZ2V0LCB1OCBhdHRyLCBpbnQgcmVtYXApCit7CisJdm9pZCBfX2lvbWVtICphZGRyID0gd2luX2NmZ19iYXNlKHdpbik7CisJdTMyIGN0cmw7CisKKwliYXNlICY9IDB4ZmZmZjAwMDA7CisJY3RybCA9ICgoc2l6ZSAtIDEpICYgMHhmZmZmMDAwMCkgfCAoYXR0ciA8PCA4KSB8ICh0YXJnZXQgPDwgNCkgfCAxOworCisJd3JpdGVsKGJhc2UsIGFkZHIgKyBXSU5fQkFTRV9PRkYpOworCXdyaXRlbChjdHJsLCBhZGRyICsgV0lOX0NUUkxfT0ZGKTsKKwlpZiAoY3B1X3dpbl9jYW5fcmVtYXAod2luKSkgeworCQlpZiAocmVtYXAgPCAwKQorCQkJcmVtYXAgPSBiYXNlOworCisJCXdyaXRlbChyZW1hcCAmIDB4ZmZmZjAwMDAsIGFkZHIgKyBXSU5fUkVNQVBfTE9fT0ZGKTsKKwkJd3JpdGVsKDAsIGFkZHIgKyBXSU5fUkVNQVBfSElfT0ZGKTsKKwl9Cit9CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfc2V0dXBfY3B1X21idXModm9pZCkKK3sKKwl2b2lkIF9faW9tZW0gKmFkZHI7CisJaW50IGk7CisJaW50IGNzOworCisJLyoKKwkgKiBGaXJzdCwgZGlzYWJsZSBhbmQgY2xlYXIgd2luZG93cy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTQ7IGkrKykgeworCQlhZGRyID0gd2luX2NmZ19iYXNlKGkpOworCisJCXdyaXRlbCgwLCBhZGRyICsgV0lOX0JBU0VfT0ZGKTsKKwkJd3JpdGVsKDAsIGFkZHIgKyBXSU5fQ1RSTF9PRkYpOworCQlpZiAoY3B1X3dpbl9jYW5fcmVtYXAoaSkpIHsKKwkJCXdyaXRlbCgwLCBhZGRyICsgV0lOX1JFTUFQX0xPX09GRik7CisJCQl3cml0ZWwoMCwgYWRkciArIFdJTl9SRU1BUF9ISV9PRkYpOworCQl9CisJfQorCisJLyoKKwkgKiBTZXR1cCBNQlVTIGRyYW0gdGFyZ2V0IGluZm8uCisJICovCisJbXY3OHh4MF9tYnVzX2RyYW1faW5mby5tYnVzX2RyYW1fdGFyZ2V0X2lkID0gVEFSR0VUX0REUjsKKworCWlmIChtdjc4eHgwX2NvcmVfaW5kZXgoKSA9PSAwKQorCQlhZGRyID0gKHZvaWQgX19pb21lbSAqKUREUl9XSU5ET1dfQ1BVMF9CQVNFOworCWVsc2UKKwkJYWRkciA9ICh2b2lkIF9faW9tZW0gKilERFJfV0lORE9XX0NQVTFfQkFTRTsKKworCWZvciAoaSA9IDAsIGNzID0gMDsgaSA8IDQ7IGkrKykgeworCQl1MzIgYmFzZSA9IHJlYWRsKGFkZHIgKyBERFJfQkFTRV9DU19PRkYoaSkpOworCQl1MzIgc2l6ZSA9IHJlYWRsKGFkZHIgKyBERFJfU0laRV9DU19PRkYoaSkpOworCisJCS8qCisJCSAqIENoaXAgc2VsZWN0IGVuYWJsZWQ/CisJCSAqLworCQlpZiAoc2l6ZSAmIDEpIHsKKwkJCXN0cnVjdCBtYnVzX2RyYW1fd2luZG93ICp3OworCisJCQl3ID0gJm12Nzh4eDBfbWJ1c19kcmFtX2luZm8uY3NbY3MrK107CisJCQl3LT5jc19pbmRleCA9IGk7CisJCQl3LT5tYnVzX2F0dHIgPSAweGYgJiB+KDEgPDwgaSk7CisJCQl3LT5iYXNlID0gYmFzZSAmIDB4ZmZmZjAwMDA7CisJCQl3LT5zaXplID0gKHNpemUgfCAweDAwMDBmZmZmKSArIDE7CisJCX0KKwl9CisJbXY3OHh4MF9tYnVzX2RyYW1faW5mby5udW1fY3MgPSBjczsKK30KKwordm9pZCBfX2luaXQgbXY3OHh4MF9zZXR1cF9wY2llX2lvX3dpbihpbnQgd2luZG93LCB1MzIgYmFzZSwgdTMyIHNpemUsCisJCQkJICAgICAgaW50IG1haiwgaW50IG1pbikKK3sKKwlzZXR1cF9jcHVfd2luKHdpbmRvdywgYmFzZSwgc2l6ZSwgVEFSR0VUX1BDSUUobWFqKSwKKwkJICAgICAgQVRUUl9QQ0lFX0lPKG1pbiksIC0xKTsKK30KKwordm9pZCBfX2luaXQgbXY3OHh4MF9zZXR1cF9wY2llX21lbV93aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCSAgICAgICBpbnQgbWFqLCBpbnQgbWluKQoreworCXNldHVwX2NwdV93aW4od2luZG93LCBiYXNlLCBzaXplLCBUQVJHRVRfUENJRShtYWopLAorCQkgICAgICBBVFRSX1BDSUVfTUVNKG1pbiksIC0xKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjdiODNiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5jCkBAIC0wLDAgKzEsNzU0IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5jCisgKgorICogQ29yZSBmdW5jdGlvbnMgZm9yIE1hcnZlbGwgTVY3OHh4MCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfODI1MC5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tdjc4eHgwLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vY2FjaGUtZmVyb2Nlb24tbDIuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9laGNpLW9yaW9uLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vb3Jpb25fbmFuZC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL3RpbWUuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvbW1vbiBiaXRzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK2ludCBtdjc4eHgwX2NvcmVfaW5kZXgodm9pZCkKK3sKKwl1MzIgZXh0cmE7CisKKwkvKgorCSAqIFJlYWQgRXh0cmEgRmVhdHVyZXMgcmVnaXN0ZXIuCisJICovCisJX19hc21fXygibXJjIHAxNSwgMSwgJTAsIGMxNSwgYzEsIDAiIDogIj1yIiAoZXh0cmEpKTsKKworCXJldHVybiAhIShleHRyYSAmIDB4MDAwMDQwMDApOworfQorCitzdGF0aWMgaW50IGdldF9oY2xrKHZvaWQpCit7CisJaW50IGhjbGs7CisKKwkvKgorCSAqIEhDTEsgdGljayByYXRlIGlzIGNvbmZpZ3VyZWQgYnkgREVWX0RbNzo1XSBwaW5zLgorCSAqLworCXN3aXRjaCAoKHJlYWRsKFNBTVBMRV9BVF9SRVNFVF9MT1cpID4+IDUpICYgNykgeworCWNhc2UgMDoKKwkJaGNsayA9IDE2NjY2NjY2NzsKKwkJYnJlYWs7CisJY2FzZSAxOgorCQloY2xrID0gMjAwMDAwMDAwOworCQlicmVhazsKKwljYXNlIDI6CisJCWhjbGsgPSAyNjY2NjY2Njc7CisJCWJyZWFrOworCWNhc2UgMzoKKwkJaGNsayA9IDMzMzMzMzMzMzsKKwkJYnJlYWs7CisJY2FzZSA0OgorCQloY2xrID0gNDAwMDAwMDAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwYW5pYygidW5rbm93biBIQ0xLIFBMTCBzZXR0aW5nOiAlLjh4XG4iLAorCQkJcmVhZGwoU0FNUExFX0FUX1JFU0VUX0xPVykpOworCX0KKworCXJldHVybiBoY2xrOworfQorCitzdGF0aWMgdm9pZCBnZXRfcGNsa19sMmNsayhpbnQgaGNsaywgaW50IGNvcmVfaW5kZXgsIGludCAqcGNsaywgaW50ICpsMmNsaykKK3sKKwl1MzIgY2ZnOworCisJLyoKKwkgKiBDb3JlICMwIFBDTEsvTDJDTEsgaXMgY29uZmlndXJlZCBieSBiaXRzIFsxMzo4XSwgY29yZSAjMQorCSAqIFBDTEsvTDJDTEsgYnkgYml0cyBbMTk6MTRdLgorCSAqLworCWlmIChjb3JlX2luZGV4ID09IDApIHsKKwkJY2ZnID0gKHJlYWRsKFNBTVBMRV9BVF9SRVNFVF9MT1cpID4+IDgpICYgMHgzZjsKKwl9IGVsc2UgeworCQljZmcgPSAocmVhZGwoU0FNUExFX0FUX1JFU0VUX0xPVykgPj4gMTQpICYgMHgzZjsKKwl9CisKKwkvKgorCSAqIEJpdHMgWzExOjhdIChbMTc6MTRdIGZvciBjb3JlICMxKSBjb25maWd1cmUgdGhlIFBDTEs6SENMSworCSAqIHJhdGlvICgxLCAxLjUsIDIsIDIuNSwgMywgMy41LCA0LCA0LjUsIDUsIDUuNSwgNikuCisJICovCisJKnBjbGsgPSAoKHU2NCloY2xrICogKDIgKyAoY2ZnICYgMHhmKSkpID4+IDE7CisKKwkvKgorCSAqIEJpdHMgWzEzOjEyXSAoWzE5OjE4XSBmb3IgY29yZSAjMSkgY29uZmlndXJlIHRoZSBQQ0xLOkwyQ0xLCisJICogcmF0aW8gKDEsIDIsIDMpLgorCSAqLworCSpsMmNsayA9ICpwY2xrIC8gKCgoY2ZnID4+IDQpICYgMykgKyAxKTsKK30KKworc3RhdGljIGludCBnZXRfdGNsayh2b2lkKQoreworCWludCB0Y2xrOworCisJLyoKKwkgKiBUQ0xLIHRpY2sgcmF0ZSBpcyBjb25maWd1cmVkIGJ5IERFVl9BWzI6MF0gc3RyYXAgcGlucy4KKwkgKi8KKwlzd2l0Y2ggKChyZWFkbChTQU1QTEVfQVRfUkVTRVRfSElHSCkgPj4gNikgJiA3KSB7CisJY2FzZSAxOgorCQl0Y2xrID0gMTY2NjY2NjY3OworCQlicmVhazsKKwljYXNlIDM6CisJCXRjbGsgPSAyMDAwMDAwMDA7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXBhbmljKCJ1bmtub3duIFRDTEsgUExMIHNldHRpbmc6ICUuOHhcbiIsCisJCQlyZWFkbChTQU1QTEVfQVRfUkVTRVRfSElHSCkpOworCX0KKworCXJldHVybiB0Y2xrOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogSS9PIEFkZHJlc3MgTWFwcGluZworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIG12Nzh4eDBfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbAk9IE1WNzhYWDBfQ09SRV9SRUdTX1ZJUlRfQkFTRSwKKwkJLnBmbgkJPSAwLAorCQkubGVuZ3RoCQk9IE1WNzhYWDBfQ09SRV9SRUdTX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LCB7CisJCS52aXJ0dWFsCT0gTVY3OFhYMF9QQ0lFX0lPX1ZJUlRfQkFTRSgwKSwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKE1WNzhYWDBfUENJRV9JT19QSFlTX0JBU0UoMCkpLAorCQkubGVuZ3RoCQk9IE1WNzhYWDBfUENJRV9JT19TSVpFICogOCwKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAorCX0sIHsKKwkJLnZpcnR1YWwJPSBNVjc4WFgwX1JFR1NfVklSVF9CQVNFLAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSksCisJCS5sZW5ndGgJCT0gTVY3OFhYMF9SRUdTX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LAorfTsKKwordm9pZCBfX2luaXQgbXY3OHh4MF9tYXBfaW8odm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIHBoeXM7CisKKwkvKgorCSAqIE1hcCB0aGUgcmlnaHQgc2V0IG9mIHBlci1jb3JlIHJlZ2lzdGVycyBkZXBlbmRpbmcgb24KKwkgKiB3aGljaCBjb3JlIHdlIGFyZSBydW5uaW5nIG9uLgorCSAqLworCWlmIChtdjc4eHgwX2NvcmVfaW5kZXgoKSA9PSAwKSB7CisJCXBoeXMgPSBNVjc4WFgwX0NPUkUwX1JFR1NfUEhZU19CQVNFOworCX0gZWxzZSB7CisJCXBoeXMgPSBNVjc4WFgwX0NPUkUxX1JFR1NfUEhZU19CQVNFOworCX0KKwltdjc4eHgwX2lvX2Rlc2NbMF0ucGZuID0gX19waHlzX3RvX3BmbihwaHlzKTsKKworCWlvdGFibGVfaW5pdChtdjc4eHgwX2lvX2Rlc2MsIEFSUkFZX1NJWkUobXY3OHh4MF9pb19kZXNjKSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFSENJCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb25fZWhjaV9kYXRhIG12Nzh4eDBfZWhjaV9kYXRhID0geworCS5kcmFtCQk9ICZtdjc4eHgwX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHU2NCBlaGNpX2RtYW1hc2sgPSAweGZmZmZmZmZmVUw7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFSENJMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZWhjaTBfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJPSBVU0IwX1BIWVNfQkFTRSwKKwkJLmVuZAk9IFVTQjBfUEhZU19CQVNFICsgMHgwZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAk9IElSUV9NVjc4WFgwX1VTQl8wLAorCQkuZW5kCT0gSVJRX01WNzhYWDBfVVNCXzAsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2VoY2kwID0geworCS5uYW1lCQk9ICJvcmlvbi1laGNpIiwKKwkuaWQJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLmRtYV9tYXNrCQk9ICZlaGNpX2RtYW1hc2ssCisJCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4ZmZmZmZmZmYsCisJCS5wbGF0Zm9ybV9kYXRhCQk9ICZtdjc4eHgwX2VoY2lfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZWhjaTBfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShtdjc4eHgwX2VoY2kwX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX2VoY2kwX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZWhjaTApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRUhDSTEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2VoY2kxX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CT0gVVNCMV9QSFlTX0JBU0UsCisJCS5lbmQJPSBVU0IxX1BIWVNfQkFTRSArIDB4MGZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9VU0JfMSwKKwkJLmVuZAk9IElSUV9NVjc4WFgwX1VTQl8xLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9laGNpMSA9IHsKKwkubmFtZQkJPSAib3Jpb24tZWhjaSIsCisJLmlkCQk9IDEsCisJLmRldgkJPSB7CisJCS5kbWFfbWFzawkJPSAmZWhjaV9kbWFtYXNrLAorCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCQkucGxhdGZvcm1fZGF0YQkJPSAmbXY3OHh4MF9laGNpX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2VoY2kxX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUobXY3OHh4MF9laGNpMV9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgbXY3OHh4MF9laGNpMV9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2VoY2kxKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEVIQ0kyCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9laGNpMl9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAk9IFVTQjJfUEhZU19CQVNFLAorCQkuZW5kCT0gVVNCMl9QSFlTX0JBU0UgKyAweDBmZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CT0gSVJRX01WNzhYWDBfVVNCXzIsCisJCS5lbmQJPSBJUlFfTVY3OFhYMF9VU0JfMiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZWhjaTIgPSB7CisJLm5hbWUJCT0gIm9yaW9uLWVoY2kiLAorCS5pZAkJPSAyLAorCS5kZXYJCT0geworCQkuZG1hX21hc2sJCT0gJmVoY2lfZG1hbWFzaywKKwkJLmNvaGVyZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKKwkJLnBsYXRmb3JtX2RhdGEJCT0gJm12Nzh4eDBfZWhjaV9kYXRhLAorCX0sCisJLnJlc291cmNlCT0gbXY3OHh4MF9laGNpMl9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKG12Nzh4eDBfZWhjaTJfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfZWhjaTJfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9laGNpMik7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHRTAwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0cnVjdCBtdjY0M3h4X2V0aF9zaGFyZWRfcGxhdGZvcm1fZGF0YSBtdjc4eHgwX2dlMDBfc2hhcmVkX2RhdGEgPSB7CisJLnRfY2xrCQk9IDAsCisJLmRyYW0JCT0gJm12Nzh4eDBfbWJ1c19kcmFtX2luZm8sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZ2UwMF9zaGFyZWRfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTAwIGJhc2UiLAorCQkuc3RhcnQJPSBHRTAwX1BIWVNfQkFTRSArIDB4MjAwMCwKKwkJLmVuZAk9IEdFMDBfUEhZU19CQVNFICsgMHgzZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9nZTAwX3NoYXJlZCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9TSEFSRURfTkFNRSwKKwkuaWQJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbXY3OHh4MF9nZTAwX3NoYXJlZF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZ2UwMF9zaGFyZWRfcmVzb3VyY2VzLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2dlMDBfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTAwIGlycSIsCisJCS5zdGFydAk9IElSUV9NVjc4WFgwX0dFMDBfU1VNLAorCQkuZW5kCT0gSVJRX01WNzhYWDBfR0UwMF9TVU0sCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2dlMDAgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfTkFNRSwKKwkuaWQJCT0gMCwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbXY3OHh4MF9nZTAwX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfZ2UwMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSkKK3sKKwlldGhfZGF0YS0+c2hhcmVkID0gJm12Nzh4eDBfZ2UwMF9zaGFyZWQ7CisJbXY3OHh4MF9nZTAwLmRldi5wbGF0Zm9ybV9kYXRhID0gZXRoX2RhdGE7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZ2UwMF9zaGFyZWQpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9nZTAwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdFMDEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RydWN0IG12NjQzeHhfZXRoX3NoYXJlZF9wbGF0Zm9ybV9kYXRhIG12Nzh4eDBfZ2UwMV9zaGFyZWRfZGF0YSA9IHsKKwkudF9jbGsJCT0gMCwKKwkuZHJhbQkJPSAmbXY3OHh4MF9tYnVzX2RyYW1faW5mbywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9nZTAxX3NoYXJlZF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMDEgYmFzZSIsCisJCS5zdGFydAk9IEdFMDFfUEhZU19CQVNFICsgMHgyMDAwLAorCQkuZW5kCT0gR0UwMV9QSFlTX0JBU0UgKyAweDNmZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2dlMDFfc2hhcmVkID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLAorCS5pZAkJPSAxLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZtdjc4eHgwX2dlMDFfc2hhcmVkX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbXY3OHh4MF9nZTAxX3NoYXJlZF9yZXNvdXJjZXMsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZ2UwMV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMDEgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX01WNzhYWDBfR0UwMV9TVU0sCisJCS5lbmQJPSBJUlFfTVY3OFhYMF9HRTAxX1NVTSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZ2UwMSA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9OQU1FLAorCS5pZAkJPSAxLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2dlMDFfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQgbXY3OHh4MF9nZTAxX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKQoreworCWV0aF9kYXRhLT5zaGFyZWQgPSAmbXY3OHh4MF9nZTAxX3NoYXJlZDsKKwlldGhfZGF0YS0+c2hhcmVkX3NtaSA9ICZtdjc4eHgwX2dlMDBfc2hhcmVkOworCW12Nzh4eDBfZ2UwMS5kZXYucGxhdGZvcm1fZGF0YSA9IGV0aF9kYXRhOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2dlMDFfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZ2UwMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHRTEwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0cnVjdCBtdjY0M3h4X2V0aF9zaGFyZWRfcGxhdGZvcm1fZGF0YSBtdjc4eHgwX2dlMTBfc2hhcmVkX2RhdGEgPSB7CisJLnRfY2xrCQk9IDAsCisJLmRyYW0JCT0gJm12Nzh4eDBfbWJ1c19kcmFtX2luZm8sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZ2UxMF9zaGFyZWRfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTEwIGJhc2UiLAorCQkuc3RhcnQJPSBHRTEwX1BIWVNfQkFTRSArIDB4MjAwMCwKKwkJLmVuZAk9IEdFMTBfUEhZU19CQVNFICsgMHgzZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9nZTEwX3NoYXJlZCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9TSEFSRURfTkFNRSwKKwkuaWQJCT0gMiwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbXY3OHh4MF9nZTEwX3NoYXJlZF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZ2UxMF9zaGFyZWRfcmVzb3VyY2VzLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2dlMTBfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTEwIGlycSIsCisJCS5zdGFydAk9IElSUV9NVjc4WFgwX0dFMTBfU1VNLAorCQkuZW5kCT0gSVJRX01WNzhYWDBfR0UxMF9TVU0sCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2dlMTAgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfTkFNRSwKKwkuaWQJCT0gMiwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbXY3OHh4MF9nZTEwX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfZ2UxMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSkKK3sKKwlldGhfZGF0YS0+c2hhcmVkID0gJm12Nzh4eDBfZ2UxMF9zaGFyZWQ7CisJZXRoX2RhdGEtPnNoYXJlZF9zbWkgPSAmbXY3OHh4MF9nZTAwX3NoYXJlZDsKKwltdjc4eHgwX2dlMTAuZGV2LnBsYXRmb3JtX2RhdGEgPSBldGhfZGF0YTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9nZTEwX3NoYXJlZCk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2dlMTApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UxMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEgbXY3OHh4MF9nZTExX3NoYXJlZF9kYXRhID0geworCS50X2NsawkJPSAwLAorCS5kcmFtCQk9ICZtdjc4eHgwX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2dlMTFfc2hhcmVkX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UxMSBiYXNlIiwKKwkJLnN0YXJ0CT0gR0UxMV9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTExX1BIWVNfQkFTRSArIDB4M2ZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZ2UxMV9zaGFyZWQgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfU0hBUkVEX05BTUUsCisJLmlkCQk9IDMsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm12Nzh4eDBfZ2UxMV9zaGFyZWRfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2dlMTFfc2hhcmVkX3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9nZTExX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UxMSBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9HRTExX1NVTSwKKwkJLmVuZAk9IElSUV9NVjc4WFgwX0dFMTFfU1VNLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9nZTExID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX05BTUUsCisJLmlkCQk9IDMsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZ2UxMV9yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX2dlMTFfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpCit7CisJZXRoX2RhdGEtPnNoYXJlZCA9ICZtdjc4eHgwX2dlMTFfc2hhcmVkOworCWV0aF9kYXRhLT5zaGFyZWRfc21pID0gJm12Nzh4eDBfZ2UwMF9zaGFyZWQ7CisJbXY3OHh4MF9nZTExLmRldi5wbGF0Zm9ybV9kYXRhID0gZXRoX2RhdGE7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZ2UxMV9zaGFyZWQpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9nZTExKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFNBVEEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX3NhdGFfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJzYXRhIGJhc2UiLAorCQkuc3RhcnQJPSBTQVRBX1BIWVNfQkFTRSwKKwkJLmVuZAk9IFNBVEFfUEhZU19CQVNFICsgMHg1MDAwIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkubmFtZQk9ICJzYXRhIGlycSIsCisJCS5zdGFydAk9IElSUV9NVjc4WFgwX1NBVEEsCisJCS5lbmQJPSBJUlFfTVY3OFhYMF9TQVRBLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9zYXRhID0geworCS5uYW1lCQk9ICJzYXRhX212IiwKKwkuaWQJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLmNvaGVyZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShtdjc4eHgwX3NhdGFfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX3NhdGFfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQgbXY3OHh4MF9zYXRhX2luaXQoc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSAqc2F0YV9kYXRhKQoreworCXNhdGFfZGF0YS0+ZHJhbSA9ICZtdjc4eHgwX21idXNfZHJhbV9pbmZvOworCW12Nzh4eDBfc2F0YS5kZXYucGxhdGZvcm1fZGF0YSA9IHNhdGFfZGF0YTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfc2F0YSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IG12Nzh4eDBfdWFydDBfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMF9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX01WNzhYWDBfVUFSVF8wLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IDAsCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfdWFydDBfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJCT0gVUFSVDBfUEhZU19CQVNFLAorCQkuZW5kCQk9IFVBUlQwX1BIWVNfQkFTRSArIDB4ZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAkJPSBJUlFfTVY3OFhYMF9VQVJUXzAsCisJCS5lbmQJCT0gSVJRX01WNzhYWDBfVUFSVF8wLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfdWFydDAgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IDAsCisJLmRldgkJCT0geworCQkucGxhdGZvcm1fZGF0YQk9IG12Nzh4eDBfdWFydDBfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBtdjc4eHgwX3VhcnQwX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKG12Nzh4eDBfdWFydDBfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfdWFydDBfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF91YXJ0MCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IG12Nzh4eDBfdWFydDFfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMV9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMV9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX01WNzhYWDBfVUFSVF8xLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IDAsCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfdWFydDFfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJCT0gVUFSVDFfUEhZU19CQVNFLAorCQkuZW5kCQk9IFVBUlQxX1BIWVNfQkFTRSArIDB4ZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAkJPSBJUlFfTVY3OFhYMF9VQVJUXzEsCisJCS5lbmQJCT0gSVJRX01WNzhYWDBfVUFSVF8xLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfdWFydDEgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IDEsCisJLmRldgkJCT0geworCQkucGxhdGZvcm1fZGF0YQk9IG12Nzh4eDBfdWFydDFfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBtdjc4eHgwX3VhcnQxX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKG12Nzh4eDBfdWFydDFfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfdWFydDFfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF91YXJ0MSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IG12Nzh4eDBfdWFydDJfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMl9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMl9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX01WNzhYWDBfVUFSVF8yLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IDAsCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfdWFydDJfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJCT0gVUFSVDJfUEhZU19CQVNFLAorCQkuZW5kCQk9IFVBUlQyX1BIWVNfQkFTRSArIDB4ZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAkJPSBJUlFfTVY3OFhYMF9VQVJUXzIsCisJCS5lbmQJCT0gSVJRX01WNzhYWDBfVUFSVF8yLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfdWFydDIgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IDIsCisJLmRldgkJCT0geworCQkucGxhdGZvcm1fZGF0YQk9IG12Nzh4eDBfdWFydDJfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBtdjc4eHgwX3VhcnQyX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKG12Nzh4eDBfdWFydDJfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfdWFydDJfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF91YXJ0Mik7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IG12Nzh4eDBfdWFydDNfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUM19QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUM19WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX01WNzhYWDBfVUFSVF8zLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IDAsCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfdWFydDNfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJCT0gVUFSVDNfUEhZU19CQVNFLAorCQkuZW5kCQk9IFVBUlQzX1BIWVNfQkFTRSArIDB4ZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAkJPSBJUlFfTVY3OFhYMF9VQVJUXzMsCisJCS5lbmQJCT0gSVJRX01WNzhYWDBfVUFSVF8zLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfdWFydDMgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IDMsCisJLmRldgkJCT0geworCQkucGxhdGZvcm1fZGF0YQk9IG12Nzh4eDBfdWFydDNfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBtdjc4eHgwX3VhcnQzX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKG12Nzh4eDBfdWFydDNfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfdWFydDNfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF91YXJ0Myk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUaW1lIGhhbmRsaW5nCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIG12Nzh4eDBfdGltZXJfaW5pdCh2b2lkKQoreworCW9yaW9uX3RpbWVfaW5pdChJUlFfTVY3OFhYMF9USU1FUl8xLCBnZXRfdGNsaygpKTsKK30KKworc3RydWN0IHN5c190aW1lciBtdjc4eHgwX3RpbWVyID0geworCS5pbml0ID0gbXY3OHh4MF90aW1lcl9pbml0LAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBfX2luaXQgaXNfbDJfd3JpdGV0aHJvdWdoKHZvaWQpCit7CisJcmV0dXJuICEhKHJlYWRsKENQVV9DT05UUk9MKSAmIEwyX1dSSVRFVEhST1VHSCk7Cit9CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfaW5pdCh2b2lkKQoreworCWludCBjb3JlX2luZGV4OworCWludCBoY2xrOworCWludCBwY2xrOworCWludCBsMmNsazsKKwlpbnQgdGNsazsKKworCWNvcmVfaW5kZXggPSBtdjc4eHgwX2NvcmVfaW5kZXgoKTsKKwloY2xrID0gZ2V0X2hjbGsoKTsKKwlnZXRfcGNsa19sMmNsayhoY2xrLCBjb3JlX2luZGV4LCAmcGNsaywgJmwyY2xrKTsKKwl0Y2xrID0gZ2V0X3RjbGsoKTsKKworCXByaW50ayhLRVJOX0lORk8gIk1WNzh4eDAgY29yZSAjJWQsICIsIGNvcmVfaW5kZXgpOworCXByaW50aygiUENMSyA9ICVkTUh6LCAiLCAocGNsayArIDQ5OTk5OSkgLyAxMDAwMDAwKTsKKwlwcmludGsoIkwyID0gJWRNSHosICIsIChsMmNsayArIDQ5OTk5OSkgLyAxMDAwMDAwKTsKKwlwcmludGsoIkhDTEsgPSAlZE1IeiwgIiwgKGhjbGsgKyA0OTk5OTkpIC8gMTAwMDAwMCk7CisJcHJpbnRrKCJUQ0xLID0gJWRNSHpcbiIsICh0Y2xrICsgNDk5OTk5KSAvIDEwMDAwMDApOworCisJbXY3OHh4MF9zZXR1cF9jcHVfbWJ1cygpOworCisjaWZkZWYgQ09ORklHX0NBQ0hFX0ZFUk9DRU9OX0wyCisJZmVyb2Nlb25fbDJfaW5pdChpc19sMl93cml0ZXRocm91Z2goKSk7CisjZW5kaWYKKworCW12Nzh4eDBfZ2UwMF9zaGFyZWRfZGF0YS50X2NsayA9IHRjbGs7CisJbXY3OHh4MF9nZTAxX3NoYXJlZF9kYXRhLnRfY2xrID0gdGNsazsKKwltdjc4eHgwX2dlMTBfc2hhcmVkX2RhdGEudF9jbGsgPSB0Y2xrOworCW12Nzh4eDBfZ2UxMV9zaGFyZWRfZGF0YS50X2NsayA9IHRjbGs7CisJbXY3OHh4MF91YXJ0MF9kYXRhWzBdLnVhcnRjbGsgPSB0Y2xrOworCW12Nzh4eDBfdWFydDFfZGF0YVswXS51YXJ0Y2xrID0gdGNsazsKKwltdjc4eHgwX3VhcnQyX2RhdGFbMF0udWFydGNsayA9IHRjbGs7CisJbXY3OHh4MF91YXJ0M19kYXRhWzBdLnVhcnRjbGsgPSB0Y2xrOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4YWY1ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uaAorICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIE1WNzh4eDAgU29DcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BUkNIX01WNzhYWDBfQ09NTU9OX0gKKyNkZWZpbmUgX19BUkNIX01WNzhYWDBfQ09NTU9OX0gKKworc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGE7CitzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhOworCisvKgorICogQmFzaWMgTVY3OHh4MCBpbml0IGZ1bmN0aW9ucyB1c2VkIGVhcmx5IGJ5IG1hY2hpbmUtc2V0dXAuCisgKi8KK2ludCBtdjc4eHgwX2NvcmVfaW5kZXgodm9pZCk7Cit2b2lkIG12Nzh4eDBfbWFwX2lvKHZvaWQpOwordm9pZCBtdjc4eHgwX2luaXQodm9pZCk7Cit2b2lkIG12Nzh4eDBfaW5pdF9pcnEodm9pZCk7CisKK2V4dGVybiBzdHJ1Y3QgbWJ1c19kcmFtX3RhcmdldF9pbmZvIG12Nzh4eDBfbWJ1c19kcmFtX2luZm87Cit2b2lkIG12Nzh4eDBfc2V0dXBfY3B1X21idXModm9pZCk7Cit2b2lkIG12Nzh4eDBfc2V0dXBfcGNpZV9pb193aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJICAgICAgIGludCBtYWosIGludCBtaW4pOwordm9pZCBtdjc4eHgwX3NldHVwX3BjaWVfbWVtX3dpbihpbnQgd2luZG93LCB1MzIgYmFzZSwgdTMyIHNpemUsCisJCQkJaW50IG1haiwgaW50IG1pbik7CisKK3ZvaWQgbXY3OHh4MF9laGNpMF9pbml0KHZvaWQpOwordm9pZCBtdjc4eHgwX2VoY2kxX2luaXQodm9pZCk7Cit2b2lkIG12Nzh4eDBfZWhjaTJfaW5pdCh2b2lkKTsKK3ZvaWQgbXY3OHh4MF9nZTAwX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKTsKK3ZvaWQgbXY3OHh4MF9nZTAxX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKTsKK3ZvaWQgbXY3OHh4MF9nZTEwX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKTsKK3ZvaWQgbXY3OHh4MF9nZTExX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKTsKK3ZvaWQgbXY3OHh4MF9wY2llX2luaXQoaW50IGluaXRfcG9ydDAsIGludCBpbml0X3BvcnQxKTsKK3ZvaWQgbXY3OHh4MF9zYXRhX2luaXQoc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSAqc2F0YV9kYXRhKTsKK3ZvaWQgbXY3OHh4MF91YXJ0MF9pbml0KHZvaWQpOwordm9pZCBtdjc4eHgwX3VhcnQxX2luaXQodm9pZCk7Cit2b2lkIG12Nzh4eDBfdWFydDJfaW5pdCh2b2lkKTsKK3ZvaWQgbXY3OHh4MF91YXJ0M19pbml0KHZvaWQpOworCitleHRlcm4gc3RydWN0IHN5c190aW1lciBtdjc4eHgwX3RpbWVyOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2RiNzh4MDAtYnAtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9kYjc4eDAwLWJwLXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM5M2QxOQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9kYjc4eDAwLWJwLXNldHVwLmMKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbXY3OHh4MC9kYjc4eDAwLWJwLXNldHVwLmMKKyAqCisgKiBNYXJ2ZWxsIERCLTc4eDAwLUJQIERldmVsb3BtZW50IEJvYXJkIFNldHVwCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL212Nzh4eDAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIGRiNzh4MDBfZ2UwMF9kYXRhID0geworCS5waHlfYWRkcgk9IDgsCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgZGI3OHgwMF9nZTAxX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gOSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBkYjc4eDAwX2dlMTBfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAtMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBkYjc4eDAwX2dlMTFfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAtMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIGRiNzh4MDBfc2F0YV9kYXRhID0geworCS5uX3BvcnRzCT0gMiwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBkYjc4eDAwX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIEJhc2ljIE1WNzh4eDAgc2V0dXAuIE5lZWRzIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwltdjc4eHgwX2luaXQoKTsKKworCS8qCisJICogUGFydGl0aW9uIG9uLWNoaXAgcGVyaXBoZXJhbHMgYmV0d2VlbiB0aGUgdHdvIENQVSBjb3Jlcy4KKwkgKi8KKwlpZiAobXY3OHh4MF9jb3JlX2luZGV4KCkgPT0gMCkgeworCQltdjc4eHgwX2VoY2kwX2luaXQoKTsKKwkJbXY3OHh4MF9laGNpMV9pbml0KCk7CisJCW12Nzh4eDBfZWhjaTJfaW5pdCgpOworCQltdjc4eHgwX2dlMDBfaW5pdCgmZGI3OHgwMF9nZTAwX2RhdGEpOworCQltdjc4eHgwX2dlMDFfaW5pdCgmZGI3OHgwMF9nZTAxX2RhdGEpOworCQltdjc4eHgwX2dlMTBfaW5pdCgmZGI3OHgwMF9nZTEwX2RhdGEpOworCQltdjc4eHgwX2dlMTFfaW5pdCgmZGI3OHgwMF9nZTExX2RhdGEpOworCQltdjc4eHgwX3NhdGFfaW5pdCgmZGI3OHgwMF9zYXRhX2RhdGEpOworCQltdjc4eHgwX3VhcnQwX2luaXQoKTsKKwkJbXY3OHh4MF91YXJ0Ml9pbml0KCk7CisJfSBlbHNlIHsKKwkJbXY3OHh4MF91YXJ0MV9pbml0KCk7CisJCW12Nzh4eDBfdWFydDNfaW5pdCgpOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgZGI3OHgwMF9wY2lfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX2RiNzh4MDBfYnAoKSkgeworCQkvKgorCQkgKiBBc3NpZ24gdGhlIHgxNiBQQ0llIHNsb3Qgb24gdGhlIGJvYXJkIHRvIENQVSBjb3JlCisJCSAqICMwLCBhbmQgbGV0IENQVSBjb3JlICMxIGhhdmUgdGhlIGZvdXIgeDEgc2xvdHMuCisJCSAqLworCQlpZiAobXY3OHh4MF9jb3JlX2luZGV4KCkgPT0gMCkKKwkJCW12Nzh4eDBfcGNpZV9pbml0KDAsIDEpOworCQllbHNlCisJCQltdjc4eHgwX3BjaWVfaW5pdCgxLCAwKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChkYjc4eDAwX3BjaV9pbml0KTsKKworTUFDSElORV9TVEFSVChEQjc4WDAwX0JQLCAiTWFydmVsbCBEQi03OHgwMC1CUCBEZXZlbG9wbWVudCBCb2FyZCIpCisJLyogTWFpbnRhaW5lcjogTGVubmVydCBCdXl0ZW5oZWsgPGJ1eXRlbmhAbWFydmVsbC5jb20+ICovCisJLnBoeXNfaW8JPSBNVjc4WFgwX1JFR1NfUEhZU19CQVNFLAorCS5pb19wZ19vZmZzdAk9ICgoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IGRiNzh4MDBfaW5pdCwKKwkubWFwX2lvCQk9IG12Nzh4eDBfbWFwX2lvLAorCS5pbml0X2lycQk9IG12Nzh4eDBfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZtdjc4eHgwX3RpbWVyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9pcnEuYyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9pcnEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGY0ZWU0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2lycS5jCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLW12Nzh4eDAvaXJxLmMKKyAqCisgKiBNVjc4eHgwIElSUSBoYW5kbGluZy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL212Nzh4eDAuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9pcnEuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKwordm9pZCBfX2luaXQgbXY3OHh4MF9pbml0X2lycSh2b2lkKQoreworCW9yaW9uX2lycV9pbml0KDAsICh2b2lkIF9faW9tZW0gKikoSVJRX1ZJUlRfQkFTRSArIElSUV9NQVNLX0xPV19PRkYpKTsKKwlvcmlvbl9pcnFfaW5pdCgzMiwgKHZvaWQgX19pb21lbSAqKShJUlFfVklSVF9CQVNFICsgSVJRX01BU0tfSElHSF9PRkYpKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmMgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvcGNpZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3OGUxNDQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvcGNpZS5jCkBAIC0wLDAgKzEsMzEyIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYworICoKKyAqIFBDSWUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIE1WNzh4eDAgU29DcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vcGNpZS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCitzdHJ1Y3QgcGNpZV9wb3J0IHsKKwl1OAkJCW1hajsKKwl1OAkJCW1pbjsKKwl1OAkJCXJvb3RfYnVzX25yOworCXZvaWQgX19pb21lbQkJKmJhc2U7CisJc3BpbmxvY2tfdAkJY29uZl9sb2NrOworCWNoYXIJCQlpb19zcGFjZV9uYW1lWzE2XTsKKwljaGFyCQkJbWVtX3NwYWNlX25hbWVbMTZdOworCXN0cnVjdCByZXNvdXJjZQkJcmVzWzJdOworfTsKKworc3RhdGljIHN0cnVjdCBwY2llX3BvcnQgcGNpZV9wb3J0WzhdOworc3RhdGljIGludCBudW1fcGNpZV9wb3J0czsKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcGNpZV9pb19zcGFjZTsKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcGNpZV9tZW1fc3BhY2U7CisKKworc3RhdGljIHZvaWQgX19pbml0IG12Nzh4eDBfcGNpZV9wcmVpbml0KHZvaWQpCit7CisJaW50IGk7CisJdTMyIHNpemVfZWFjaDsKKwl1MzIgc3RhcnQ7CisJaW50IHdpbjsKKworCXBjaWVfaW9fc3BhY2UubmFtZSA9ICJQQ0llIEkvTyBTcGFjZSI7CisJcGNpZV9pb19zcGFjZS5zdGFydCA9IE1WNzhYWDBfUENJRV9JT19QSFlTX0JBU0UoMCk7CisJcGNpZV9pb19zcGFjZS5lbmQgPQorCQlNVjc4WFgwX1BDSUVfSU9fUEhZU19CQVNFKDApICsgTVY3OFhYMF9QQ0lFX0lPX1NJWkUgKiA4IC0gMTsKKwlwY2llX2lvX3NwYWNlLmZsYWdzID0gSU9SRVNPVVJDRV9JTzsKKwlpZiAocmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZwY2llX2lvX3NwYWNlKSkKKwkJcGFuaWMoImNhbid0IGFsbG9jYXRlIFBDSWUgSS9PIHNwYWNlIik7CisKKwlwY2llX21lbV9zcGFjZS5uYW1lID0gIlBDSWUgTUVNIFNwYWNlIjsKKwlwY2llX21lbV9zcGFjZS5zdGFydCA9IE1WNzhYWDBfUENJRV9NRU1fUEhZU19CQVNFOworCXBjaWVfbWVtX3NwYWNlLmVuZCA9CisJCU1WNzhYWDBfUENJRV9NRU1fUEhZU19CQVNFICsgTVY3OFhYMF9QQ0lFX01FTV9TSVpFIC0gMTsKKwlwY2llX21lbV9zcGFjZS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOworCWlmIChyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJnBjaWVfbWVtX3NwYWNlKSkKKwkJcGFuaWMoImNhbid0IGFsbG9jYXRlIFBDSWUgTUVNIHNwYWNlIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3BjaWVfcG9ydHM7IGkrKykgeworCQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IHBjaWVfcG9ydCArIGk7CisKKwkJc25wcmludGYocHAtPmlvX3NwYWNlX25hbWUsIHNpemVvZihwcC0+aW9fc3BhY2VfbmFtZSksCisJCQkiUENJZSAlZC4lZCBJL08iLCBwcC0+bWFqLCBwcC0+bWluKTsKKwkJcHAtPmlvX3NwYWNlX25hbWVbc2l6ZW9mKHBwLT5pb19zcGFjZV9uYW1lKSAtIDFdID0gMDsKKwkJcHAtPnJlc1swXS5uYW1lID0gcHAtPmlvX3NwYWNlX25hbWU7CisJCXBwLT5yZXNbMF0uc3RhcnQgPSBNVjc4WFgwX1BDSUVfSU9fUEhZU19CQVNFKGkpOworCQlwcC0+cmVzWzBdLmVuZCA9IHBwLT5yZXNbMF0uc3RhcnQgKyBNVjc4WFgwX1BDSUVfSU9fU0laRSAtIDE7CisJCXBwLT5yZXNbMF0uZmxhZ3MgPSBJT1JFU09VUkNFX0lPOworCisJCXNucHJpbnRmKHBwLT5tZW1fc3BhY2VfbmFtZSwgc2l6ZW9mKHBwLT5tZW1fc3BhY2VfbmFtZSksCisJCQkiUENJZSAlZC4lZCBNRU0iLCBwcC0+bWFqLCBwcC0+bWluKTsKKwkJcHAtPm1lbV9zcGFjZV9uYW1lW3NpemVvZihwcC0+bWVtX3NwYWNlX25hbWUpIC0gMV0gPSAwOworCQlwcC0+cmVzWzFdLm5hbWUgPSBwcC0+bWVtX3NwYWNlX25hbWU7CisJCXBwLT5yZXNbMV0uZmxhZ3MgPSBJT1JFU09VUkNFX01FTTsKKwl9CisKKwlzd2l0Y2ggKG51bV9wY2llX3BvcnRzKSB7CisJY2FzZSAwOgorCQlzaXplX2VhY2ggPSAwOworCQlicmVhazsKKworCWNhc2UgMToKKwkJc2l6ZV9lYWNoID0gMHgzMDAwMDAwMDsKKwkJYnJlYWs7CisKKwljYXNlIDIgLi4uIDM6CisJCXNpemVfZWFjaCA9IDB4MTAwMDAwMDA7CisJCWJyZWFrOworCisJY2FzZSA0IC4uLiA2OgorCQlzaXplX2VhY2ggPSAweDA4MDAwMDAwOworCQlicmVhazsKKworCWNhc2UgNzoKKwkJc2l6ZV9lYWNoID0gMHgwNDAwMDAwMDsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlwYW5pYygiaW52YWxpZCBudW1iZXIgb2YgUENJZSBwb3J0cyIpOworCX0KKworCXN0YXJ0ID0gTVY3OFhYMF9QQ0lFX01FTV9QSFlTX0JBU0U7CisJZm9yIChpID0gMDsgaSA8IG51bV9wY2llX3BvcnRzOyBpKyspIHsKKwkJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBwY2llX3BvcnQgKyBpOworCisJCXBwLT5yZXNbMV0uc3RhcnQgPSBzdGFydDsKKwkJcHAtPnJlc1sxXS5lbmQgPSBzdGFydCArIHNpemVfZWFjaCAtIDE7CisJCXN0YXJ0ICs9IHNpemVfZWFjaDsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3BjaWVfcG9ydHM7IGkrKykgeworCQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IHBjaWVfcG9ydCArIGk7CisKKwkJaWYgKHJlcXVlc3RfcmVzb3VyY2UoJnBjaWVfaW9fc3BhY2UsICZwcC0+cmVzWzBdKSkKKwkJCXBhbmljKCJjYW4ndCBhbGxvY2F0ZSBQQ0llIEkvTyBzdWItc3BhY2UiKTsKKworCQlpZiAocmVxdWVzdF9yZXNvdXJjZSgmcGNpZV9tZW1fc3BhY2UsICZwcC0+cmVzWzFdKSkKKwkJCXBhbmljKCJjYW4ndCBhbGxvY2F0ZSBQQ0llIE1FTSBzdWItc3BhY2UiKTsKKwl9CisKKwl3aW4gPSAwOworCWZvciAoaSA9IDA7IGkgPCBudW1fcGNpZV9wb3J0czsgaSsrKSB7CisJCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gcGNpZV9wb3J0ICsgaTsKKworCQltdjc4eHgwX3NldHVwX3BjaWVfaW9fd2luKHdpbisrLCBwcC0+cmVzWzBdLnN0YXJ0LAorCQkJcHAtPnJlc1swXS5lbmQgLSBwcC0+cmVzWzBdLnN0YXJ0ICsgMSwKKwkJCXBwLT5tYWosIHBwLT5taW4pOworCisJCW12Nzh4eDBfc2V0dXBfcGNpZV9tZW1fd2luKHdpbisrLCBwcC0+cmVzWzFdLnN0YXJ0LAorCQkJcHAtPnJlc1sxXS5lbmQgLSBwcC0+cmVzWzFdLnN0YXJ0ICsgMSwKKwkJCXBwLT5tYWosIHBwLT5taW4pOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgbXY3OHh4MF9wY2llX3NldHVwKGludCBuciwgc3RydWN0IHBjaV9zeXNfZGF0YSAqc3lzKQoreworCXN0cnVjdCBwY2llX3BvcnQgKnBwOworCisJaWYgKG5yID49IG51bV9wY2llX3BvcnRzKQorCQlyZXR1cm4gMDsKKworCXBwID0gJnBjaWVfcG9ydFtucl07CisJcHAtPnJvb3RfYnVzX25yID0gc3lzLT5idXNucjsKKworCS8qCisJICogR2VuZXJpYyBQQ0llIHVuaXQgc2V0dXAuCisJICovCisJb3Jpb25fcGNpZV9zZXRfbG9jYWxfYnVzX25yKHBwLT5iYXNlLCBzeXMtPmJ1c25yKTsKKwlvcmlvbl9wY2llX3NldHVwKHBwLT5iYXNlLCAmbXY3OHh4MF9tYnVzX2RyYW1faW5mbyk7CisKKwlzeXMtPnJlc291cmNlWzBdID0gJnBwLT5yZXNbMF07CisJc3lzLT5yZXNvdXJjZVsxXSA9ICZwcC0+cmVzWzFdOworCXN5cy0+cmVzb3VyY2VbMl0gPSBOVUxMOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGNpZV9wb3J0ICpidXNfdG9fcG9ydChpbnQgYnVzKQoreworCWludCBpOworCisJZm9yIChpID0gbnVtX3BjaWVfcG9ydHMgLSAxOyBpID49IDA7IGktLSkgeworCQlpbnQgcmJ1cyA9IHBjaWVfcG9ydFtpXS5yb290X2J1c19ucjsKKwkJaWYgKHJidXMgIT0gLTEgJiYgcmJ1cyA8PSBidXMpCisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gaSA+PSAwID8gcGNpZV9wb3J0ICsgaSA6IE5VTEw7Cit9CisKK3N0YXRpYyBpbnQgcGNpZV92YWxpZF9jb25maWcoc3RydWN0IHBjaWVfcG9ydCAqcHAsIGludCBidXMsIGludCBkZXYpCit7CisJLyoKKwkgKiBEb24ndCBnbyBvdXQgd2hlbiB0cnlpbmcgdG8gYWNjZXNzIG5vbmV4aXN0aW5nIGRldmljZXMKKwkgKiBvbiB0aGUgbG9jYWwgYnVzLgorCSAqLworCWlmIChidXMgPT0gcHAtPnJvb3RfYnVzX25yICYmIGRldiA+IDEpCisJCXJldHVybiAwOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgcGNpZV9yZF9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwgaW50IHdoZXJlLAorCQkJaW50IHNpemUsIHUzMiAqdmFsKQoreworCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzX3RvX3BvcnQoYnVzLT5udW1iZXIpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKworCWlmIChwY2llX3ZhbGlkX2NvbmZpZyhwcCwgYnVzLT5udW1iZXIsIFBDSV9TTE9UKGRldmZuKSkgPT0gMCkgeworCQkqdmFsID0gMHhmZmZmZmZmZjsKKwkJcmV0dXJuIFBDSUJJT1NfREVWSUNFX05PVF9GT1VORDsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHAtPmNvbmZfbG9jaywgZmxhZ3MpOworCXJldCA9IG9yaW9uX3BjaWVfcmRfY29uZihwcC0+YmFzZSwgYnVzLCBkZXZmbiwgd2hlcmUsIHNpemUsIHZhbCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHAtPmNvbmZfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwY2llX3dyX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdTMyIGRldmZuLAorCQkJaW50IHdoZXJlLCBpbnQgc2l6ZSwgdTMyIHZhbCkKK3sKKwlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1c190b19wb3J0KGJ1cy0+bnVtYmVyKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisKKwlpZiAocGNpZV92YWxpZF9jb25maWcocHAsIGJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbikpID09IDApCisJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHAtPmNvbmZfbG9jaywgZmxhZ3MpOworCXJldCA9IG9yaW9uX3BjaWVfd3JfY29uZihwcC0+YmFzZSwgYnVzLCBkZXZmbiwgd2hlcmUsIHNpemUsIHZhbCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHAtPmNvbmZfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHN0cnVjdCBwY2lfb3BzIHBjaWVfb3BzID0geworCS5yZWFkID0gcGNpZV9yZF9jb25mLAorCS53cml0ZSA9IHBjaWVfd3JfY29uZiwKK307CisKK3N0YXRpYyB2b2lkIF9fZGV2aW5pdCByY19wY2lfZml4dXAoc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwkvKgorCSAqIFByZXZlbnQgZW51bWVyYXRpb24gb2Ygcm9vdCBjb21wbGV4LgorCSAqLworCWlmIChkZXYtPmJ1cy0+cGFyZW50ID09IE5VTEwgJiYgZGV2LT5kZXZmbiA9PSAwKSB7CisJCWludCBpOworCisJCWZvciAoaSA9IDA7IGkgPCBERVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgeworCQkJZGV2LT5yZXNvdXJjZVtpXS5zdGFydCA9IDA7CisJCQlkZXYtPnJlc291cmNlW2ldLmVuZCAgID0gMDsKKwkJCWRldi0+cmVzb3VyY2VbaV0uZmxhZ3MgPSAwOworCQl9CisJfQorfQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUENJX0FOWV9JRCwgcmNfcGNpX2ZpeHVwKTsKKworc3RhdGljIHN0cnVjdCBwY2lfYnVzIF9faW5pdCAqCittdjc4eHgwX3BjaWVfc2Nhbl9idXMoaW50IG5yLCBzdHJ1Y3QgcGNpX3N5c19kYXRhICpzeXMpCit7CisJc3RydWN0IHBjaV9idXMgKmJ1czsKKworCWlmIChuciA8IG51bV9wY2llX3BvcnRzKSB7CisJCWJ1cyA9IHBjaV9zY2FuX2J1cyhzeXMtPmJ1c25yLCAmcGNpZV9vcHMsIHN5cyk7CisJfSBlbHNlIHsKKwkJYnVzID0gTlVMTDsKKwkJQlVHKCk7CisJfQorCisJcmV0dXJuIGJ1czsKK30KKworc3RhdGljIGludCBfX2luaXQgbXY3OHh4MF9wY2llX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzX3RvX3BvcnQoZGV2LT5idXMtPm51bWJlcik7CisKKwlyZXR1cm4gSVJRX01WNzhYWDBfUENJRV8wMCArIChwcC0+bWFqIDw8IDIpICsgcHAtPm1pbjsKK30KKworc3RhdGljIHN0cnVjdCBod19wY2kgbXY3OHh4MF9wY2kgX19pbml0ZGF0YSA9IHsKKwkubnJfY29udHJvbGxlcnMJPSA4LAorCS5wcmVpbml0CT0gbXY3OHh4MF9wY2llX3ByZWluaXQsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG12Nzh4eDBfcGNpZV9zZXR1cCwKKwkuc2NhbgkJPSBtdjc4eHgwX3BjaWVfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSBtdjc4eHgwX3BjaWVfbWFwX2lycSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBhZGRfcGNpZV9wb3J0KGludCBtYWosIGludCBtaW4sIHVuc2lnbmVkIGxvbmcgYmFzZSkKK3sKKwlwcmludGsoS0VSTl9JTkZPICJNVjc4eHgwIFBDSWUgcG9ydCAlZC4lZDogIiwgbWFqLCBtaW4pOworCisJaWYgKG9yaW9uX3BjaWVfbGlua191cCgodm9pZCBfX2lvbWVtICopYmFzZSkpIHsKKwkJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpZV9wb3J0W251bV9wY2llX3BvcnRzKytdOworCisJCXByaW50aygibGluayB1cFxuIik7CisKKwkJcHAtPm1haiA9IG1hajsKKwkJcHAtPm1pbiA9IG1pbjsKKwkJcHAtPnJvb3RfYnVzX25yID0gLTE7CisJCXBwLT5iYXNlID0gKHZvaWQgX19pb21lbSAqKWJhc2U7CisJCXNwaW5fbG9ja19pbml0KCZwcC0+Y29uZl9sb2NrKTsKKwkJbWVtc2V0KHBwLT5yZXMsIDAsIHNpemVvZihwcC0+cmVzKSk7CisJfSBlbHNlIHsKKwkJcHJpbnRrKCJsaW5rIGRvd24sIGlnbm9yaW5nXG4iKTsKKwl9Cit9CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfcGNpZV9pbml0KGludCBpbml0X3BvcnQwLCBpbnQgaW5pdF9wb3J0MSkKK3sKKwlpZiAoaW5pdF9wb3J0MCkgeworCQlhZGRfcGNpZV9wb3J0KDAsIDAsIFBDSUUwMF9WSVJUX0JBU0UpOworCQlpZiAoIW9yaW9uX3BjaWVfeDRfbW9kZSgodm9pZCBfX2lvbWVtICopUENJRTAwX1ZJUlRfQkFTRSkpIHsKKwkJCWFkZF9wY2llX3BvcnQoMCwgMSwgUENJRTAxX1ZJUlRfQkFTRSk7CisJCQlhZGRfcGNpZV9wb3J0KDAsIDIsIFBDSUUwMl9WSVJUX0JBU0UpOworCQkJYWRkX3BjaWVfcG9ydCgwLCAzLCBQQ0lFMDNfVklSVF9CQVNFKTsKKwkJfQorCX0KKworCWlmIChpbml0X3BvcnQxKSB7CisJCWFkZF9wY2llX3BvcnQoMSwgMCwgUENJRTEwX1ZJUlRfQkFTRSk7CisJCWlmICghb3Jpb25fcGNpZV94NF9tb2RlKCh2b2lkIF9faW9tZW0gKilQQ0lFMTBfVklSVF9CQVNFKSkgeworCQkJYWRkX3BjaWVfcG9ydCgxLCAxLCBQQ0lFMTFfVklSVF9CQVNFKTsKKwkJCWFkZF9wY2llX3BvcnQoMSwgMiwgUENJRTEyX1ZJUlRfQkFTRSk7CisJCQlhZGRfcGNpZV9wb3J0KDEsIDMsIFBDSUUxM19WSVJUX0JBU0UpOworCQl9CisJfQorCisJcGNpX2NvbW1vbl9pbml0KCZtdjc4eHgwX3BjaSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1teDIvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWFhOTdjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvS2NvbmZpZwpAQCAtMCwwICsxLDM5IEBACitjb21tZW50ICJNWDIgZmFtaWx5IENQVSBzdXBwb3J0IgorCWRlcGVuZHMgb24gQVJDSF9NWDIKKworY29uZmlnIE1BQ0hfTVgyNworCWJvb2wgImkuTVgyNyBzdXBwb3J0IgorCWRlcGVuZHMgb24gQVJDSF9NWDIKKwloZWxwCisJICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgRnJlZXNjYWxlJ3MgTVgyIGJhc2VkIGkuTVgyNyBwcm9jZXNzb3IuCisKK2NvbW1lbnQgIk1YMiBQbGF0Zm9ybXMiCisJZGVwZW5kcyBvbiBBUkNIX01YMgorCitjb25maWcgTUFDSF9NWDI3QURTCisJYm9vbCAiTVgyN0FEUyBwbGF0Zm9ybSIKKwlkZXBlbmRzIG9uIE1BQ0hfTVgyNworCWhlbHAKKwkgIEluY2x1ZGUgc3VwcG9ydCBmb3IgTVgyN0FEUyBwbGF0Zm9ybS4gVGhpcyBpbmNsdWRlcyBzcGVjaWZpYworCSAgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBib2FyZCBhbmQgaXRzIHBlcmlwaGVyYWxzLgorCitjb25maWcgTUFDSF9QQ00wMzgKKwlib29sICJQaHl0ZWMgcGh5Q09SRS1pLk1YMjcgQ1BVIG1vZHVsZSAocGNtMDM4KSIKKwlkZXBlbmRzIG9uIE1BQ0hfTVgyNworCWhlbHAKKwkgIEluY2x1ZGUgc3VwcG9ydCBmb3IgcGh5Q09SRS1pLk1YMjcgKGFrYSBwY20wMzgpIHBsYXRmb3JtLiBUaGlzCisJICBpbmNsdWRlcyBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmb3IgdGhlIG1vZHVsZSBhbmQgaXRzIHBlcmlwaGVyYWxzLgorCitjaG9pY2UKKwlwcm9tcHQgIkJhc2Vib2FyZCIKKwlkZXBlbmRzIG9uIE1BQ0hfUENNMDM4CisJZGVmYXVsdCBNQUNIX1BDTTk3MF9CQVNFQk9BUkQKKworY29uZmlnIE1BQ0hfUENNOTcwX0JBU0VCT0FSRAorCXByb21wdCAiUEhZVEVDIFBDTTk3MCBkZXZlbG9wbWVudCBib2FyZCIKKwlib29sCisJaGVscAorCSAgVGhpcyBhZGRzIGJvYXJkIHNwZWNpZmljIGRldmljZXMgdGhhdCBjYW4gYmUgZm91bmQgb24gUGh5dGVjJ3MKKwkgIFBDTTk3MCBldmFsdWF0aW9uIGJvYXJkLgorCitlbmRjaG9pY2UKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgyL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1teDIvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgyZDg2MAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL01ha2VmaWxlCkBAIC0wLDAgKzEsMTQgQEAKKyMKKyMgTWFrZWZpbGUgZm9yIHRoZSBsaW51eCBrZXJuZWwuCisjCisKKyMgT2JqZWN0IGZpbGUgbGlzdHMuCisKK29iai15CTo9ICBzeXN0ZW0ubyBnZW5lcmljLm8gZGV2aWNlcy5vIHNlcmlhbC5vCisKK29iai0kKENPTkZJR19NQUNIX01YMjcpICs9IGNwdV9pbXgyNy5vCitvYmotJChDT05GSUdfTUFDSF9NWDI3KSArPSBjbG9ja19pbXgyNy5vCisKK29iai0kKENPTkZJR19NQUNIX01YMjdBRFMpICs9IG14MjdhZHMubworb2JqLSQoQ09ORklHX01BQ0hfUENNMDM4KSArPSBwY20wMzgubworb2JqLSQoQ09ORklHX01BQ0hfUENNOTcwX0JBU0VCT0FSRCkgKz0gcGNtOTcwLWJhc2Vib2FyZC5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9NYWtlZmlsZS5ib290IGIvYXJjaC9hcm0vbWFjaC1teDIvTWFrZWZpbGUuYm9vdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTY4MzFkY2QKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9NYWtlZmlsZS5ib290CkBAIC0wLDAgKzEsMyBAQAorICAgenJlbGFkZHIteQk6PSAweEEwMDA4MDAwCitwYXJhbXNfcGh5cy15CTo9IDB4QTAwMDAxMDAKK2luaXRyZF9waHlzLXkJOj0gMHhBMDgwMDAwMApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvY2xvY2tfaW14MjcuYyBiL2FyY2gvYXJtL21hY2gtbXgyL2Nsb2NrX2lteDI3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGEyOWVmMgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL2Nsb2NrX2lteDI3LmMKQEAgLTAsMCArMSwxNjI2IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2suaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KKyNpbmNsdWRlIDxhc20vZGl2NjQuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorCisjaW5jbHVkZSAiY3JtX3JlZ3MuaCIKKworc3RhdGljIHN0cnVjdCBjbGsgY2tpbF9jbGs7CitzdGF0aWMgc3RydWN0IGNsayBtcGxsX2NsazsKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1wbGxfbWFpbl9jbGtbXTsKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNwbGxfY2xrOworCitzdGF0aWMgaW50IF9jbGtfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKGNsay0+ZW5hYmxlX3JlZyk7CisJcmVnIHw9IDEgPDwgY2xrLT5lbmFibGVfc2hpZnQ7CisJX19yYXdfd3JpdGVsKHJlZywgY2xrLT5lbmFibGVfcmVnKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoY2xrLT5lbmFibGVfcmVnKTsKKwlyZWcgJj0gfigxIDw8IGNsay0+ZW5hYmxlX3NoaWZ0KTsKKwlfX3Jhd193cml0ZWwocmVnLCBjbGstPmVuYWJsZV9yZWcpOworfQorCitzdGF0aWMgaW50IF9jbGtfc3BsbF9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX0NTQ1IpOworCXJlZyB8PSBDQ01fQ1NDUl9TUEVOOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9DU0NSKTsKKworCXdoaWxlICgoX19yYXdfcmVhZGwoQ0NNX1NQQ1RMMSkgJiBDQ01fU1BDVEwxX0xGKSA9PSAwKQorCQk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19zcGxsX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX0NTQ1IpOworCXJlZyAmPSB+Q0NNX0NTQ1JfU1BFTjsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fQ1NDUik7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfcGNjcjAxX2VuYWJsZSh1bnNpZ25lZCBsb25nIG1hc2swLCB1bnNpZ25lZCBsb25nIG1hc2sxKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IwKTsKKwlyZWcgfD0gbWFzazA7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IwKTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0NSMSk7CisJcmVnIHw9IG1hc2sxOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9QQ0NSMSk7CisKK30KKworc3RhdGljIHZvaWQgX2Nsa19wY2NyMDFfZGlzYWJsZSh1bnNpZ25lZCBsb25nIG1hc2swLCB1bnNpZ25lZCBsb25nIG1hc2sxKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IwKTsKKwlyZWcgJj0gfm1hc2swOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9QQ0NSMCk7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjEpOworCXJlZyAmPSB+bWFzazE7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IxKTsKK30KKworc3RhdGljIHZvaWQgX2Nsa19wY2NyMTBfZW5hYmxlKHVuc2lnbmVkIGxvbmcgbWFzazEsIHVuc2lnbmVkIGxvbmcgbWFzazApCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjEpOworCXJlZyB8PSBtYXNrMTsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjEpOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IwKTsKKwlyZWcgfD0gbWFzazA7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IwKTsKK30KKworc3RhdGljIHZvaWQgX2Nsa19wY2NyMTBfZGlzYWJsZSh1bnNpZ25lZCBsb25nIG1hc2sxLCB1bnNpZ25lZCBsb25nIG1hc2swKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IxKTsKKwlyZWcgJj0gfm1hc2sxOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9QQ0NSMSk7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjApOworCXJlZyAmPSB+bWFzazA7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IwKTsKK30KKworc3RhdGljIGludCBfY2xrX2RtYV9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2VuYWJsZShDQ01fUENDUjBfRE1BX01BU0ssIENDTV9QQ0NSMV9IQ0xLX0RNQV9NQVNLKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX2RtYV9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IwMV9kaXNhYmxlKENDTV9QQ0NSMF9ETUFfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfRE1BX01BU0spOworfQorCitzdGF0aWMgaW50IF9jbGtfcnRpY19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2VuYWJsZShDQ01fUENDUjBfUlRJQ19NQVNLLCBDQ01fUENDUjFfSENMS19SVElDX01BU0spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfcnRpY19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IwMV9kaXNhYmxlKENDTV9QQ0NSMF9SVElDX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1JUSUNfTUFTSyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19lbW1hX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZW5hYmxlKENDTV9QQ0NSMF9FTU1BX01BU0ssIENDTV9QQ0NSMV9IQ0xLX0VNTUFfTUFTSyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19lbW1hX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2Rpc2FibGUoQ0NNX1BDQ1IwX0VNTUFfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfRU1NQV9NQVNLKTsKK30KKworc3RhdGljIGludCBfY2xrX3NsY2RjX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZW5hYmxlKENDTV9QQ0NSMF9TTENEQ19NQVNLLCBDQ01fUENDUjFfSENMS19TTENEQ19NQVNLKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3NsY2RjX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2Rpc2FibGUoQ0NNX1BDQ1IwX1NMQ0RDX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1NMQ0RDX01BU0spOworfQorCitzdGF0aWMgaW50IF9jbGtfZmVjX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZW5hYmxlKENDTV9QQ0NSMF9GRUNfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfRkVDX01BU0spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfZmVjX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2Rpc2FibGUoQ0NNX1BDQ1IwX0ZFQ19NQVNLLCBDQ01fUENDUjFfSENMS19GRUNfTUFTSyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa192cHVfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0NSMSk7CisJcmVnIHw9IENDTV9QQ0NSMV9WUFVfQkFVRF9NQVNLIHwgQ0NNX1BDQ1IxX0hDTEtfVlBVX01BU0s7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IxKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3ZwdV9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0NSMSk7CisJcmVnICY9IH4oQ0NNX1BDQ1IxX1ZQVV9CQVVEX01BU0sgfCBDQ01fUENDUjFfSENMS19WUFVfTUFTSyk7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IxKTsKK30KKworc3RhdGljIGludCBfY2xrX3NhaGFyYTJfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IwMV9lbmFibGUoQ0NNX1BDQ1IwX1NBSEFSQV9NQVNLLCBDQ01fUENDUjFfSENMS19TQUhBUkFfTUFTSyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19zYWhhcmEyX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2Rpc2FibGUoQ0NNX1BDQ1IwX1NBSEFSQV9NQVNLLCBDQ01fUENDUjFfSENMS19TQUhBUkFfTUFTSyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19tc3RpY2sxX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMTBfZW5hYmxlKENDTV9QQ0NSMV9NU0hDX0JBVURfTUFTSywgQ0NNX1BDQ1IwX01TSENfTUFTSyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19tc3RpY2sxX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjEwX2Rpc2FibGUoQ0NNX1BDQ1IxX01TSENfQkFVRF9NQVNLLCBDQ01fUENDUjBfTVNIQ19NQVNLKTsKK30KKworI2RlZmluZSBDU0NSKCkgKF9fcmF3X3JlYWRsKENDTV9DU0NSKSkKKyNkZWZpbmUgUENEUjAoKSAoX19yYXdfcmVhZGwoQ0NNX1BDRFIwKSkKKyNkZWZpbmUgUENEUjEoKSAoX19yYXdfcmVhZGwoQ0NNX1BDRFIxKSkKKworc3RhdGljIGludCBfY2xrX2NwdV9zZXRfcGFyZW50KHN0cnVjdCBjbGsgKmNsaywgc3RydWN0IGNsayAqcGFyZW50KQoreworCWludCBjc2NyID0gQ1NDUigpOworCisJaWYgKGNsay0+cGFyZW50ID09IHBhcmVudCkKKwkJcmV0dXJuIDA7CisKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkgeworCQlpZiAocGFyZW50ID09ICZtcGxsX21haW5fY2xrWzBdKSB7CisJCQljc2NyIHw9IENDTV9DU0NSX0FSTV9TUkM7CisJCX0gZWxzZSB7CisJCQlpZiAocGFyZW50ID09ICZtcGxsX21haW5fY2xrWzFdKQorCQkJCWNzY3IgJj0gfkNDTV9DU0NSX0FSTV9TUkM7CisJCQllbHNlCisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwkJX19yYXdfd3JpdGVsKGNzY3IsIENDTV9DU0NSKTsKKwl9IGVsc2UKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwljbGstPnBhcmVudCA9IHBhcmVudDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19jcHVfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwlpbnQgZGl2OworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlkaXYgPSBwYXJlbnRfcmF0ZSAvIHJhdGU7CisJaWYgKHBhcmVudF9yYXRlICUgcmF0ZSkKKwkJZGl2Kys7CisKKwlpZiAoZGl2ID4gNCkKKwkJZGl2ID0gNDsKKworCXJldHVybiBwYXJlbnRfcmF0ZSAvIGRpdjsKK30KKworc3RhdGljIGludCBfY2xrX2NwdV9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1bnNpZ25lZCBpbnQgZGl2OworCXVpbnQzMl90IHJlZzsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJZGl2ID0gcGFyZW50X3JhdGUgLyByYXRlOworCisJaWYgKGRpdiA+IDQgfHwgZGl2IDwgMSB8fCAoKHBhcmVudF9yYXRlIC8gZGl2KSAhPSByYXRlKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkaXYtLTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9DU0NSKTsKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkgeworCQlyZWcgJj0gfkNDTV9DU0NSX0FSTV9NQVNLOworCQlyZWcgfD0gZGl2IDw8IENDTV9DU0NSX0FSTV9PRkZTRVQ7CisJCXJlZyAmPSB+MHgwNjsKKwkJX19yYXdfd3JpdGVsKHJlZyB8IDB4ODAwMDAwMDAsIENDTV9DU0NSKTsKKwl9IGVsc2UgeworCQlwcmludGsoS0VSTl9FUlIgIkNhbnQgc2V0IENQVSBmcmVxdWVuY3khXG4iKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19wZXJjbGt4X3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLAorCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgZGl2OworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlkaXYgPSBwYXJlbnRfcmF0ZSAvIHJhdGU7CisJaWYgKHBhcmVudF9yYXRlICUgcmF0ZSkKKwkJZGl2Kys7CisKKwlpZiAoZGl2ID4gNjQpCisJCWRpdiA9IDY0OworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gZGl2OworfQorCitzdGF0aWMgaW50IF9jbGtfcGVyY2xreF9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgcmVnOworCXUzMiBkaXY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWlmIChjbGstPmlkIDwgMCB8fCBjbGstPmlkID4gMykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkaXYgPSBwYXJlbnRfcmF0ZSAvIHJhdGU7CisJaWYgKGRpdiA+IDY0IHx8IGRpdiA8IDEgfHwgKChwYXJlbnRfcmF0ZSAvIGRpdikgIT0gcmF0ZSkpCisJCXJldHVybiAtRUlOVkFMOworCWRpdi0tOworCisJcmVnID0KKwkgICAgX19yYXdfcmVhZGwoQ0NNX1BDRFIxKSAmIH4oQ0NNX1BDRFIxX1BFUkRJVjFfTUFTSyA8PAorCQkJCSAgICAgICAoY2xrLT5pZCA8PCAzKSk7CisJcmVnIHw9IGRpdiA8PCAoY2xrLT5pZCA8PCAzKTsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENEUjEpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfdXNiX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyB1c2JfcGRmOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwl1c2JfcGRmID0gKENTQ1IoKSAmIENDTV9DU0NSX1VTQl9NQVNLKSA+PiBDQ01fQ1NDUl9VU0JfT0ZGU0VUOworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gKHVzYl9wZGYgKyAxVSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfc3NpMV9yZWNhbGMoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgc3NpMV9wZGY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCXNzaTFfcGRmID0gKFBDRFIwKCkgJiBDQ01fUENEUjBfU1NJMUJBVURESVZfTUFTSykgPj4KKwkJCQkJQ0NNX1BDRFIwX1NTSTFCQVVERElWX09GRlNFVDsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKQorCQlzc2kxX3BkZiArPSA0OworCWVsc2UKKwkJc3NpMV9wZGYgPSAoc3NpMV9wZGYgPCAyKSA/IDEyNFVMIDogc3NpMV9wZGY7CisKKwlyZXR1cm4gMlVMICogcGFyZW50X3JhdGUgLyBzc2kxX3BkZjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19zc2kyX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBzc2kyX3BkZjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJc3NpMl9wZGYgPSAoUENEUjAoKSAmIENDTV9QQ0RSMF9TU0kyQkFVRERJVl9NQVNLKSA+PgorCSAgICBDQ01fUENEUjBfU1NJMkJBVURESVZfT0ZGU0VUOworCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApCisJCXNzaTJfcGRmICs9IDQ7CisJZWxzZQorCQlzc2kyX3BkZiA9IChzc2kyX3BkZiA8IDIpID8gMTI0VUwgOiBzc2kyX3BkZjsKKworCXJldHVybiAyVUwgKiBwYXJlbnRfcmF0ZSAvIHNzaTJfcGRmOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX25mY19yZWNhbGMoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgbmZjX3BkZjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApIHsKKwkJbmZjX3BkZiA9CisJCSAgICAoUENEUjAoKSAmIENDTV9QQ0RSMF9ORkNESVYyX01BU0spID4+CisJCSAgICBDQ01fUENEUjBfTkZDRElWMl9PRkZTRVQ7CisJfSBlbHNlIHsKKwkJbmZjX3BkZiA9CisJCSAgICAoUENEUjAoKSAmIENDTV9QQ0RSMF9ORkNESVZfTUFTSykgPj4KKwkJICAgIENDTV9QQ0RSMF9ORkNESVZfT0ZGU0VUOworCX0KKworCXJldHVybiBwYXJlbnRfcmF0ZSAvIChuZmNfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfdnB1X3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyB2cHVfcGRmOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkgeworCQl2cHVfcGRmID0KKwkJICAgIChQQ0RSMCgpICYgQ0NNX1BDRFIwX1ZQVURJVjJfTUFTSykgPj4KKwkJICAgIENDTV9QQ0RSMF9WUFVESVYyX09GRlNFVDsKKwkJdnB1X3BkZiArPSA0OworCX0gZWxzZSB7CisJCXZwdV9wZGYgPQorCQkgICAgKFBDRFIwKCkgJiBDQ01fUENEUjBfVlBVRElWX01BU0spID4+CisJCSAgICBDQ01fUENEUjBfVlBVRElWX09GRlNFVDsKKwkJdnB1X3BkZiA9ICh2cHVfcGRmIDwgMikgPyAxMjQgOiB2cHVfcGRmOworCX0KKwlyZXR1cm4gMlVMICogcGFyZW50X3JhdGUgLyB2cHVfcGRmOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX3BhcmVudF9yb3VuZF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXJldHVybiBjbGstPnBhcmVudC0+cm91bmRfcmF0ZShjbGstPnBhcmVudCwgcmF0ZSk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19wYXJlbnRfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJcmV0dXJuIGNsay0+cGFyZW50LT5zZXRfcmF0ZShjbGstPnBhcmVudCwgcmF0ZSk7Cit9CisKKy8qIGluIEh6ICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBleHRlcm5hbF9oaWdoX3JlZmVyZW5jZSA9IDI2MDAwMDAwOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfaGlnaF9yZWZlcmVuY2VfY2xvY2tfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIGV4dGVybmFsX2hpZ2hfcmVmZXJlbmNlOworfQorCisvKgorICogdGhlIGhpZ2ggZnJlcXVlbmN5IGV4dGVybmFsIGNsb2NrIHJlZmVyZW5jZQorICogRGVmYXVsdCBjYXNlIGlzIDI2TUh6LiBDb3VsZCBiZSBjaGFuZ2VkIGF0IHJ1bnRpbWUKKyAqIHdpdGggYSBjYWxsIHRvIGNoYW5nZV9leHRlcm5hbF9oaWdoX3JlZmVyZW5jZSgpCisgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrIGNraWhfY2xrID0geworCS5uYW1lID0gImNraWgiLAorCS5nZXRfcmF0ZSA9IGdldF9oaWdoX3JlZmVyZW5jZV9jbG9ja19yYXRlLAorfTsKKworLyogaW4gSHogKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGV4dGVybmFsX2xvd19yZWZlcmVuY2UgPSAzMjc2ODsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2V0X2xvd19yZWZlcmVuY2VfY2xvY2tfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIGV4dGVybmFsX2xvd19yZWZlcmVuY2U7Cit9CisKKy8qCisgKiB0aGUgbG93IGZyZXF1ZW5jeSBleHRlcm5hbCBjbG9jayByZWZlcmVuY2UKKyAqIERlZmF1bHQgY2FzZSBpcyAzMi43NjhrSHogQ291bGQgYmUgY2hhbmdlZCBhdCBydW50aW1lCisgKiB3aXRoIGEgY2FsbCB0byBjaGFuZ2VfZXh0ZXJuYWxfbG93X3JlZmVyZW5jZSgpCisgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrIGNraWxfY2xrID0geworCS5uYW1lID0gImNraWwiLAorCS5nZXRfcmF0ZSA9IGdldF9sb3dfcmVmZXJlbmNlX2Nsb2NrX3JhdGUsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfbXBsbF9jbGsoc3RydWN0IGNsayAqY2xrKQoreworCXVpbnQzMl90IHJlZzsKKwl1bnNpZ25lZCBsb25nIHJlZl9jbGs7CisJdW5zaWduZWQgbG9uZyBtZmkgPSAwLCBtZm4gPSAwLCBtZmQgPSAwLCBwZGYgPSAwOworCXVuc2lnbmVkIGxvbmcgbG9uZyB0ZW1wOworCisJcmVmX2NsayA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fTVBDVEwwKTsKKwlwZGYgPSAocmVnICYgQ0NNX01QQ1RMMF9QRF9NQVNLKSA+PiBDQ01fTVBDVEwwX1BEX09GRlNFVDsKKwltZmQgPSAocmVnICYgQ0NNX01QQ1RMMF9NRkRfTUFTSykgPj4gQ0NNX01QQ1RMMF9NRkRfT0ZGU0VUOworCW1maSA9IChyZWcgJiBDQ01fTVBDVEwwX01GSV9NQVNLKSA+PiBDQ01fTVBDVEwwX01GSV9PRkZTRVQ7CisJbWZuID0gKHJlZyAmIENDTV9NUENUTDBfTUZOX01BU0spID4+IENDTV9NUENUTDBfTUZOX09GRlNFVDsKKworCW1maSA9IChtZmkgPD0gNSkgPyA1IDogbWZpOworCXRlbXAgPSAyTEwgKiByZWZfY2xrICogbWZuOworCWRvX2Rpdih0ZW1wLCBtZmQgKyAxKTsKKwl0ZW1wID0gMkxMICogcmVmX2NsayAqIG1maSArIHRlbXA7CisJZG9fZGl2KHRlbXAsIHBkZiArIDEpOworCisJcmV0dXJuICh1bnNpZ25lZCBsb25nKXRlbXA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1wbGxfY2xrID0geworCS5uYW1lID0gIm1wbGwiLAorCS5wYXJlbnQgPSAmY2tpaF9jbGssCisJLmdldF9yYXRlID0gZ2V0X21wbGxfY2xrLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19tcGxsX21haW5fZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwkvKiBpLk1YMjcgVE8yOgorCSAqIGNsay0+aWQgPT0gMDogYXJtIGNsb2NrIHNvdXJjZSBwYXRoIDEgd2hpY2ggaXMgZnJvbSAyKk1QTEwvRElWXzIKKwkgKiBjbGstPmlkID09IDE6IGFybSBjbG9jayBzb3VyY2UgcGF0aCAyIHdoaWNoIGlzIGZyb20gMipNUExML0RJVl8zCisJICovCisKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCAmJiBjbGstPmlkID09IDEpCisJCXJldHVybiAyVUwgKiBwYXJlbnRfcmF0ZSAvIDNVTDsKKworCXJldHVybiBwYXJlbnRfcmF0ZTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgbXBsbF9tYWluX2Nsa1tdID0geworCXsKKwkJLyogRm9yIGkuTVgyNyBUTzIsIGl0IGlzIHRoZSBNUExMIHBhdGggMSBvZiBBUk0gY29yZQorCQkgKiBJdCBwcm92aWRlIHRoZSBjbG9jayBzb3VyY2Ugd2hvc2UgcmF0ZSBpcyBzYW1lIGFzIE1QTEwKKwkJICovCisJCS5uYW1lID0gIm1wbGxfbWFpbiIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmbXBsbF9jbGssCisJCS5nZXRfcmF0ZSA9IF9jbGtfbXBsbF9tYWluX2dldF9yYXRlCisJfSwgeworCQkvKiBGb3IgaS5NWDI3IFRPMiwgaXQgaXMgdGhlIE1QTEwgcGF0aCAyIG9mIEFSTSBjb3JlCisJCSAqIEl0IHByb3ZpZGUgdGhlIGNsb2NrIHNvdXJjZSB3aG9zZSByYXRlIGlzIHNhbWUgTVBMTCAqIDIvMworCQkgKi8KKwkJLm5hbWUgPSAibXBsbF9tYWluIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZtcGxsX2NsaywKKwkJLmdldF9yYXRlID0gX2Nsa19tcGxsX21haW5fZ2V0X3JhdGUKKwl9Cit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfc3BsbF9jbGsoc3RydWN0IGNsayAqY2xrKQoreworCXVpbnQzMl90IHJlZzsKKwl1bnNpZ25lZCBsb25nIHJlZl9jbGs7CisJdW5zaWduZWQgbG9uZyBtZmkgPSAwLCBtZm4gPSAwLCBtZmQgPSAwLCBwZGYgPSAwOworCXVuc2lnbmVkIGxvbmcgbG9uZyB0ZW1wOworCisJcmVmX2NsayA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fU1BDVEwwKTsKKwkvKlRPRE86IFRoaXMgaXMgVE8yIEJ1ZyAqLworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKQorCQlfX3Jhd193cml0ZWwocmVnLCBDQ01fU1BDVEwwKTsKKworCXBkZiA9IChyZWcgJiBDQ01fU1BDVEwwX1BEX01BU0spID4+IENDTV9TUENUTDBfUERfT0ZGU0VUOworCW1mZCA9IChyZWcgJiBDQ01fU1BDVEwwX01GRF9NQVNLKSA+PiBDQ01fU1BDVEwwX01GRF9PRkZTRVQ7CisJbWZpID0gKHJlZyAmIENDTV9TUENUTDBfTUZJX01BU0spID4+IENDTV9TUENUTDBfTUZJX09GRlNFVDsKKwltZm4gPSAocmVnICYgQ0NNX1NQQ1RMMF9NRk5fTUFTSykgPj4gQ0NNX1NQQ1RMMF9NRk5fT0ZGU0VUOworCisJbWZpID0gKG1maSA8PSA1KSA/IDUgOiBtZmk7CisJdGVtcCA9IDJMTCAqIHJlZl9jbGsgKiBtZm47CisJZG9fZGl2KHRlbXAsIG1mZCArIDEpOworCXRlbXAgPSAyTEwgKiByZWZfY2xrICogbWZpICsgdGVtcDsKKwlkb19kaXYodGVtcCwgcGRmICsgMSk7CisKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpdGVtcDsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgc3BsbF9jbGsgPSB7CisJLm5hbWUgPSAic3BsbCIsCisJLnBhcmVudCA9ICZja2loX2NsaywKKwkuZ2V0X3JhdGUgPSBnZXRfc3BsbF9jbGssCisJLmVuYWJsZSA9IF9jbGtfc3BsbF9lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX3NwbGxfZGlzYWJsZSwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9jcHVfY2xrKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgZGl2OworCXVuc2lnbmVkIGxvbmcgcmF0ZTsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKQorCQlkaXYgPSAoQ1NDUigpICYgQ0NNX0NTQ1JfQVJNX01BU0spID4+IENDTV9DU0NSX0FSTV9PRkZTRVQ7CisJZWxzZQorCQlkaXYgPSAoQ1NDUigpICYgQ0NNX0NTQ1JfUFJFU0NfTUFTSykgPj4gQ0NNX0NTQ1JfUFJFU0NfT0ZGU0VUOworCisJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisJcmV0dXJuIHJhdGUgLyAoZGl2ICsgMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNwdV9jbGsgPSB7CisJLm5hbWUgPSAiY3B1X2NsayIsCisJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCS5zZXRfcGFyZW50ID0gX2Nsa19jcHVfc2V0X3BhcmVudCwKKwkucm91bmRfcmF0ZSA9IF9jbGtfY3B1X3JvdW5kX3JhdGUsCisJLmdldF9yYXRlID0gZ2V0X2NwdV9jbGssCisJLnNldF9yYXRlID0gX2Nsa19jcHVfc2V0X3JhdGUsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfYWhiX2NsayhzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyByYXRlOworCXVuc2lnbmVkIGxvbmcgYmNsa19wZGY7CisKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkKKwkJYmNsa19wZGYgPSAoQ1NDUigpICYgQ0NNX0NTQ1JfQUhCX01BU0spCisJCQkJCT4+IENDTV9DU0NSX0FIQl9PRkZTRVQ7CisJZWxzZQorCQliY2xrX3BkZiA9IChDU0NSKCkgJiBDQ01fQ1NDUl9CQ0xLX01BU0spCisJCQkJCT4+IENDTV9DU0NSX0JDTEtfT0ZGU0VUOworCisJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisJcmV0dXJuIHJhdGUgLyAoYmNsa19wZGYgKyAxKTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgYWhiX2NsayA9IHsKKwkubmFtZSA9ICJhaGJfY2xrIiwKKwkucGFyZW50ID0gJm1wbGxfbWFpbl9jbGtbMV0sCisJLmdldF9yYXRlID0gZ2V0X2FoYl9jbGssCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfaXBnX2NsayhzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyByYXRlOworCXVuc2lnbmVkIGxvbmcgaXBnX3BkZjsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKQorCQlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwllbHNlCisJCWlwZ19wZGYgPSAoQ1NDUigpICYgQ0NNX0NTQ1JfSVBESVYpID4+IENDTV9DU0NSX0lQRElWX09GRlNFVDsKKworCXJhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCXJldHVybiByYXRlIC8gKGlwZ19wZGYgKyAxKTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgaXBnX2NsayA9IHsKKwkubmFtZSA9ICJpcGdfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmdldF9yYXRlID0gZ2V0X2lwZ19jbGssCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX3BlcmNsa3hfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHBlcmNsa19wZGY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWlmIChjbGstPmlkIDwgMCB8fCBjbGstPmlkID4gMykKKwkJcmV0dXJuIDA7CisKKwlwZXJjbGtfcGRmID0gKFBDRFIxKCkgPj4gKGNsay0+aWQgPDwgMykpICYgQ0NNX1BDRFIxX1BFUkRJVjFfTUFTSzsKKworCXJldHVybiBwYXJlbnRfcmF0ZSAvIChwZXJjbGtfcGRmICsgMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHBlcl9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInBlcl9jbGsiLAorCQkuaWQgPSAwLAorCQkucGFyZW50ID0gJm1wbGxfbWFpbl9jbGtbMV0sCisJCS5nZXRfcmF0ZSA9IF9jbGtfcGVyY2xreF9yZWNhbGMsCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfUEVSQ0xLMV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sIHsKKwkJLm5hbWUgPSAicGVyX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkJLmdldF9yYXRlID0gX2Nsa19wZXJjbGt4X3JlY2FsYywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9QRVJDTEsyX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwgeworCQkubmFtZSA9ICJwZXJfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCQkucm91bmRfcmF0ZSA9IF9jbGtfcGVyY2xreF9yb3VuZF9yYXRlLAorCQkuc2V0X3JhdGUgPSBfY2xrX3BlcmNsa3hfc2V0X3JhdGUsCisJCS5nZXRfcmF0ZSA9IF9jbGtfcGVyY2xreF9yZWNhbGMsCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfUEVSQ0xLM19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sIHsKKwkJLm5hbWUgPSAicGVyX2NsayIsCisJCS5pZCA9IDMsCisJCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkJLnJvdW5kX3JhdGUgPSBfY2xrX3BlcmNsa3hfcm91bmRfcmF0ZSwKKwkJLnNldF9yYXRlID0gX2Nsa19wZXJjbGt4X3NldF9yYXRlLAorCQkuZ2V0X3JhdGUgPSBfY2xrX3BlcmNsa3hfcmVjYWxjLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1BFUkNMSzRfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RydWN0IGNsayB1YXJ0MV9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInVhcnRfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJnVhcnQxX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInVhcnRfaXBnX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9VQVJUMV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdHJ1Y3QgY2xrIHVhcnQyX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAidWFydF9jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmdWFydDJfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAidWFydF9pcGdfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1VBUlQyX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0cnVjdCBjbGsgdWFydDNfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJ1YXJ0X2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZ1YXJ0M19jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJ1YXJ0X2lwZ19jbGsiLAorCQkuaWQgPSAyLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfVUFSVDNfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RydWN0IGNsayB1YXJ0NF9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInVhcnRfY2xrIiwKKwkJLmlkID0gMywKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJnVhcnQ0X2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInVhcnRfaXBnX2NsayIsCisJCS5pZCA9IDMsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9VQVJUNF9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdHJ1Y3QgY2xrIHVhcnQ1X2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAidWFydF9jbGsiLAorCQkuaWQgPSA0LAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmdWFydDVfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAidWFydF9pcGdfY2xrIiwKKwkJLmlkID0gNCwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1VBUlQ1X09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0cnVjdCBjbGsgdWFydDZfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJ1YXJ0X2NsayIsCisJCS5pZCA9IDUsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZ1YXJ0Nl9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJ1YXJ0X2lwZ19jbGsiLAorCQkuaWQgPSA1LAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfVUFSVDZfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZ3B0MV9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImdwdF9jbGsiLAorCQkuaWQgPSAwLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmZ3B0MV9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJncHRfaXBnX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9HUFQxX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGdwdDJfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJncHRfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJmdwdDJfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAiZ3B0X2lwZ19jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfR1BUMl9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBncHQzX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAiZ3B0X2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZncHQzX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImdwdF9pcGdfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0dQVDNfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZ3B0NF9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImdwdF9jbGsiLAorCQkuaWQgPSAzLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmZ3B0NF9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJncHRfaXBnX2NsayIsCisJCS5pZCA9IDMsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9HUFQ0X09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGdwdDVfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJncHRfY2xrIiwKKwkJLmlkID0gNCwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJmdwdDVfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAiZ3B0X2lwZ19jbGsiLAorCQkuaWQgPSA0LAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfR1BUNV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBncHQ2X2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAiZ3B0X2NsayIsCisJCS5pZCA9IDUsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZncHQ2X2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImdwdF9pcGdfY2xrIiwKKwkJLmlkID0gNSwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0dQVDZfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcHdtX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAicHdtX2NsayIsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZwd21fY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAicHdtX2NsayIsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9QV01fT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2RoYzFfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJzZGhjX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1sxXSwKKwkJLnNlY29uZGFyeSA9ICZzZGhjMV9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJzZGhjX2lwZ19jbGsiLAorCQkuaWQgPSAwLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfU0RIQzFfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2RoYzJfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJzZGhjX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1sxXSwKKwkJLnNlY29uZGFyeSA9ICZzZGhjMl9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJzZGhjX2lwZ19jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfU0RIQzJfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2RoYzNfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJzZGhjX2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1sxXSwKKwkJLnNlY29uZGFyeSA9ICZzZGhjM19jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJzZGhjX2lwZ19jbGsiLAorCQkuaWQgPSAyLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfU0RIQzNfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY3NwaTFfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJjc3BpX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1sxXSwKKwkJLnNlY29uZGFyeSA9ICZjc3BpMV9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJjc3BpX2lwZ19jbGsiLAorCQkuaWQgPSAwLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfQ1NQSTFfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY3NwaTJfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJjc3BpX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1sxXSwKKwkJLnNlY29uZGFyeSA9ICZjc3BpMl9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJjc3BpX2lwZ19jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfQ1NQSTJfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY3NwaTNfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJjc3BpX2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1sxXSwKKwkJLnNlY29uZGFyeSA9ICZjc3BpM19jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJjc3BpX2lwZ19jbGsiLAorCQkuaWQgPSAyLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfQ1NQSTNfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgbGNkY19jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImxjZGNfY2xrIiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzJdLAorCQkuc2Vjb25kYXJ5ID0gJmxjZGNfY2xrWzFdLAorCQkucm91bmRfcmF0ZSA9IF9jbGtfcGFyZW50X3JvdW5kX3JhdGUsCisJCS5zZXRfcmF0ZSA9IF9jbGtfcGFyZW50X3NldF9yYXRlLAorCX0sIHsKKwkJLm5hbWUgPSAibGNkY19pcGdfY2xrIiwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuc2Vjb25kYXJ5ID0gJmxjZGNfY2xrWzJdLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0xDRENfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LCB7CisJCS5uYW1lID0gImxjZGNfYWhiX2NsayIsCisJCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9IQ0xLX0xDRENfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY3NpX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAiY3NpX3BlcmNsayIsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1szXSwKKwkJLnNlY29uZGFyeSA9ICZjc2lfY2xrWzFdLAorCQkucm91bmRfcmF0ZSA9IF9jbGtfcGFyZW50X3JvdW5kX3JhdGUsCisJCS5zZXRfcmF0ZSA9IF9jbGtfcGFyZW50X3NldF9yYXRlLAorCX0sIHsKKwkJLm5hbWUgPSAiY3NpX2FoYl9jbGsiLAorCQkucGFyZW50ID0gJmFoYl9jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfSENMS19DU0lfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgdXNiX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAidXNiX2NsayIsCisJCS5wYXJlbnQgPSAmc3BsbF9jbGssCisJCS5nZXRfcmF0ZSA9IF9jbGtfdXNiX3JlY2FsYywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9VU0JPVEdfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LCB7CisJCS5uYW1lID0gInVzYl9haGJfY2xrIiwKKwkJLnBhcmVudCA9ICZhaGJfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX0hDTEtfVVNCT1RHX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc3NpMV9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInNzaV9jbGsiLAorCQkuaWQgPSAwLAorCQkucGFyZW50ID0gJm1wbGxfbWFpbl9jbGtbMV0sCisJCS5zZWNvbmRhcnkgPSAmc3NpMV9jbGtbMV0sCisJCS5nZXRfcmF0ZSA9IF9jbGtfc3NpMV9yZWNhbGMsCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfU1NJMV9CQVVEX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwgeworCQkubmFtZSA9ICJzc2lfaXBnX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9TU0kxX0lQR19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzc2kyX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAic3NpX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkJLnNlY29uZGFyeSA9ICZzc2kyX2Nsa1sxXSwKKwkJLmdldF9yYXRlID0gX2Nsa19zc2kyX3JlY2FsYywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9TU0kyX0JBVURfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LCB7CisJCS5uYW1lID0gInNzaV9pcGdfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX1NTSTJfSVBHX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG5mY19jbGsgPSB7CisJLm5hbWUgPSAibmZjX2NsayIsCisJLnBhcmVudCA9ICZjcHVfY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfbmZjX3JlY2FsYywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9ORkNfQkFVRF9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayB2cHVfY2xrID0geworCS5uYW1lID0gInZwdV9jbGsiLAorCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkuZ2V0X3JhdGUgPSBfY2xrX3ZwdV9yZWNhbGMsCisJLmVuYWJsZSA9IF9jbGtfdnB1X2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfdnB1X2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBkbWFfY2xrID0geworCS5uYW1lID0gImRtYV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19kbWFfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19kbWFfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHJ0aWNfY2xrID0geworCS5uYW1lID0gInJ0aWNfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfcnRpY19lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX3J0aWNfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGJyb21fY2xrID0geworCS5uYW1lID0gImJyb21fY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfSENMS19CUk9NX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGVtbWFfY2xrID0geworCS5uYW1lID0gImVtbWFfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW1tYV9lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX2VtbWFfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNsY2RjX2NsayA9IHsKKwkubmFtZSA9ICJzbGNkY19jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19zbGNkY19lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX3NsY2RjX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBmZWNfY2xrID0geworCS5uYW1lID0gImZlY19jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19mZWNfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19mZWNfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGVtaV9jbGsgPSB7CisJLm5hbWUgPSAiZW1pX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX0hDTEtfRU1JX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNhaGFyYTJfY2xrID0geworCS5uYW1lID0gInNhaGFyYV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19zYWhhcmEyX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfc2FoYXJhMl9kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgYXRhX2NsayA9IHsKKwkubmFtZSA9ICJhdGFfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfSENMS19BVEFfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgbXN0aWNrMV9jbGsgPSB7CisJLm5hbWUgPSAibXN0aWNrMV9jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19tc3RpY2sxX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfbXN0aWNrMV9kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgd2RvZ19jbGsgPSB7CisJLm5hbWUgPSAid2RvZ19jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9XRFRfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZ3Bpb19jbGsgPSB7CisJLm5hbWUgPSAiZ3Bpb19jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9HUElPX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGkyY19jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImkyY19jbGsiLAorCQkuaWQgPSAwLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfSTJDMV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sIHsKKwkJLm5hbWUgPSAiaTJjX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9JMkMyX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGlpbV9jbGsgPSB7CisJLm5hbWUgPSAiaWltX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0lJTV9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBrcHBfY2xrID0geworCS5uYW1lID0gImtwcF9jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9LUFBfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgb3dpcmVfY2xrID0geworCS5uYW1lID0gIm93aXJlX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX09XSVJFX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHJ0Y19jbGsgPSB7CisJLm5hbWUgPSAicnRjX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX1JUQ19PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzY2NfY2xrID0geworCS5uYW1lID0gInNjY19jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9TQ0NfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19jbGtvX3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIGRpdjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCWRpdiA9IHBhcmVudF9yYXRlIC8gcmF0ZTsKKwlpZiAocGFyZW50X3JhdGUgJSByYXRlKQorCQlkaXYrKzsKKworCWlmIChkaXYgPiA4KQorCQlkaXYgPSA4OworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gZGl2OworfQorCitzdGF0aWMgaW50IF9jbGtfY2xrb19zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgcmVnOworCXUzMiBkaXY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWRpdiA9IHBhcmVudF9yYXRlIC8gcmF0ZTsKKworCWlmIChkaXYgPiA4IHx8IGRpdiA8IDEgfHwgKChwYXJlbnRfcmF0ZSAvIGRpdikgIT0gcmF0ZSkpCisJCXJldHVybiAtRUlOVkFMOworCWRpdi0tOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDRFIwKSAmIH5DQ01fUENEUjBfQ0xLT0RJVl9NQVNLOworCXJlZyB8PSBkaXYgPDwgQ0NNX1BDRFIwX0NMS09ESVZfT0ZGU0VUOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9QQ0RSMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19jbGtvX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIGRpdjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJZGl2ID0gX19yYXdfcmVhZGwoQ0NNX1BDRFIwKSAmIENDTV9QQ0RSMF9DTEtPRElWX01BU0sgPj4KKwkJQ0NNX1BDRFIwX0NMS09ESVZfT0ZGU0VUOworCWRpdisrOworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gZGl2OworfQorCitzdGF0aWMgaW50IF9jbGtfY2xrb19zZXRfcGFyZW50KHN0cnVjdCBjbGsgKmNsaywgc3RydWN0IGNsayAqcGFyZW50KQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fQ0NTUikgJiB+Q0NNX0NDU1JfQ0xLT1NFTF9NQVNLOworCisJaWYgKHBhcmVudCA9PSAmY2tpbF9jbGspCisJCXJlZyB8PSAwIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmY2tpaF9jbGspCisJCXJlZyB8PSAyIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSBtcGxsX2Nsay5wYXJlbnQpCisJCXJlZyB8PSAzIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSBzcGxsX2Nsay5wYXJlbnQpCisJCXJlZyB8PSA0IDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmbXBsbF9jbGspCisJCXJlZyB8PSA1IDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmc3BsbF9jbGspCisJCXJlZyB8PSA2IDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmY3B1X2NsaykKKwkJcmVnIHw9IDcgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZhaGJfY2xrKQorCQlyZWcgfD0gOCA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmlwZ19jbGspCisJCXJlZyB8PSA5IDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmcGVyX2Nsa1swXSkKKwkJcmVnIHw9IDB4QSA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnBlcl9jbGtbMV0pCisJCXJlZyB8PSAweEIgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZwZXJfY2xrWzJdKQorCQlyZWcgfD0gMHhDIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmcGVyX2Nsa1szXSkKKwkJcmVnIHw9IDB4RCA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnNzaTFfY2xrWzBdKQorCQlyZWcgfD0gMHhFIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmc3NpMl9jbGtbMF0pCisJCXJlZyB8PSAweEYgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZuZmNfY2xrKQorCQlyZWcgfD0gMHgxMCA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJm1zdGljazFfY2xrKQorCQlyZWcgfD0gMHgxMSA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnZwdV9jbGspCisJCXJlZyB8PSAweDEyIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmdXNiX2Nsa1swXSkKKwkJcmVnIHw9IDB4MTUgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKKworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9DQ1NSKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9jbGtfY2xrb19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENEUjApIHwgQ0NNX1BDRFIwX0NMS09fRU47CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDRFIwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX2Nsa29fZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0RSMCkgJiB+Q0NNX1BDRFIwX0NMS09fRU47CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDRFIwKTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgY2xrb19jbGsgPSB7CisJLm5hbWUgPSAiY2xrb19jbGsiLAorCS5nZXRfcmF0ZSA9IF9jbGtfY2xrb19yZWNhbGMsCisJLnNldF9yYXRlID0gX2Nsa19jbGtvX3NldF9yYXRlLAorCS5yb3VuZF9yYXRlID0gX2Nsa19jbGtvX3JvdW5kX3JhdGUsCisJLnNldF9wYXJlbnQgPSBfY2xrX2Nsa29fc2V0X3BhcmVudCwKKwkuZW5hYmxlID0gX2Nsa19jbGtvX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfY2xrb19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgKm14Y19jbGtzW10gPSB7CisJJmNraWhfY2xrLAorCSZja2lsX2NsaywKKwkmbXBsbF9jbGssCisJJm1wbGxfbWFpbl9jbGtbMF0sCisJJm1wbGxfbWFpbl9jbGtbMV0sCisJJnNwbGxfY2xrLAorCSZjcHVfY2xrLAorCSZhaGJfY2xrLAorCSZpcGdfY2xrLAorCSZwZXJfY2xrWzBdLAorCSZwZXJfY2xrWzFdLAorCSZwZXJfY2xrWzJdLAorCSZwZXJfY2xrWzNdLAorCSZjbGtvX2NsaywKKwkmdWFydDFfY2xrWzBdLAorCSZ1YXJ0MV9jbGtbMV0sCisJJnVhcnQyX2Nsa1swXSwKKwkmdWFydDJfY2xrWzFdLAorCSZ1YXJ0M19jbGtbMF0sCisJJnVhcnQzX2Nsa1sxXSwKKwkmdWFydDRfY2xrWzBdLAorCSZ1YXJ0NF9jbGtbMV0sCisJJnVhcnQ1X2Nsa1swXSwKKwkmdWFydDVfY2xrWzFdLAorCSZ1YXJ0Nl9jbGtbMF0sCisJJnVhcnQ2X2Nsa1sxXSwKKwkmZ3B0MV9jbGtbMF0sCisJJmdwdDFfY2xrWzFdLAorCSZncHQyX2Nsa1swXSwKKwkmZ3B0Ml9jbGtbMV0sCisJJmdwdDNfY2xrWzBdLAorCSZncHQzX2Nsa1sxXSwKKwkmZ3B0NF9jbGtbMF0sCisJJmdwdDRfY2xrWzFdLAorCSZncHQ1X2Nsa1swXSwKKwkmZ3B0NV9jbGtbMV0sCisJJmdwdDZfY2xrWzBdLAorCSZncHQ2X2Nsa1sxXSwKKwkmcHdtX2Nsa1swXSwKKwkmcHdtX2Nsa1sxXSwKKwkmc2RoYzFfY2xrWzBdLAorCSZzZGhjMV9jbGtbMV0sCisJJnNkaGMyX2Nsa1swXSwKKwkmc2RoYzJfY2xrWzFdLAorCSZzZGhjM19jbGtbMF0sCisJJnNkaGMzX2Nsa1sxXSwKKwkmY3NwaTFfY2xrWzBdLAorCSZjc3BpMV9jbGtbMV0sCisJJmNzcGkyX2Nsa1swXSwKKwkmY3NwaTJfY2xrWzFdLAorCSZjc3BpM19jbGtbMF0sCisJJmNzcGkzX2Nsa1sxXSwKKwkmbGNkY19jbGtbMF0sCisJJmxjZGNfY2xrWzFdLAorCSZsY2RjX2Nsa1syXSwKKwkmY3NpX2Nsa1swXSwKKwkmY3NpX2Nsa1sxXSwKKwkmdXNiX2Nsa1swXSwKKwkmdXNiX2Nsa1sxXSwKKwkmc3NpMV9jbGtbMF0sCisJJnNzaTFfY2xrWzFdLAorCSZzc2kyX2Nsa1swXSwKKwkmc3NpMl9jbGtbMV0sCisJJm5mY19jbGssCisJJnZwdV9jbGssCisJJmRtYV9jbGssCisJJnJ0aWNfY2xrLAorCSZicm9tX2NsaywKKwkmZW1tYV9jbGssCisJJnNsY2RjX2NsaywKKwkmZmVjX2NsaywKKwkmZW1pX2NsaywKKwkmc2FoYXJhMl9jbGssCisJJmF0YV9jbGssCisJJm1zdGljazFfY2xrLAorCSZ3ZG9nX2NsaywKKwkmZ3Bpb19jbGssCisJJmkyY19jbGtbMF0sCisJJmkyY19jbGtbMV0sCisJJmlpbV9jbGssCisJJmtwcF9jbGssCisJJm93aXJlX2NsaywKKwkmcnRjX2NsaywKKwkmc2NjX2NsaywKK307CisKK3ZvaWQgX19pbml0IGNoYW5nZV9leHRlcm5hbF9sb3dfcmVmZXJlbmNlKHVuc2lnbmVkIGxvbmcgbmV3X3JlZikKK3sKKwlleHRlcm5hbF9sb3dfcmVmZXJlbmNlID0gbmV3X3JlZjsKK30KKwordW5zaWduZWQgbG9uZyBfX2luaXQgY2xrX2Vhcmx5X2dldF90aW1lcl9yYXRlKHZvaWQpCit7CisJcmV0dXJuIGNsa19nZXRfcmF0ZSgmcGVyX2Nsa1swXSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBwcm9iZV9teGNfY2xvY2tzKHZvaWQpCit7CisJaW50IGk7CisKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkgeworCQlpZiAoQ1NDUigpICYgMHg4MDAwKQorCQkJY3B1X2Nsay5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1swXTsKKworCQlpZiAoIShDU0NSKCkgJiAweDAwODAwMDAwKSkKKwkJCXNzaTJfY2xrWzBdLnBhcmVudCA9ICZzcGxsX2NsazsKKworCQlpZiAoIShDU0NSKCkgJiAweDAwNDAwMDAwKSkKKwkJCXNzaTFfY2xrWzBdLnBhcmVudCA9ICZzcGxsX2NsazsKKworCQlpZiAoIShDU0NSKCkgJiAweDAwMjAwMDAwKSkKKwkJCXZwdV9jbGsucGFyZW50ID0gJnNwbGxfY2xrOworCX0gZWxzZSB7CisJCWNwdV9jbGsucGFyZW50ID0gJm1wbGxfY2xrOworCQljcHVfY2xrLnNldF9wYXJlbnQgPSBOVUxMOworCQljcHVfY2xrLnJvdW5kX3JhdGUgPSBOVUxMOworCQljcHVfY2xrLnNldF9yYXRlID0gTlVMTDsKKwkJYWhiX2Nsay5wYXJlbnQgPSAmbXBsbF9jbGs7CisKKwkJZm9yIChpID0gMDsgaSA8IHNpemVvZihwZXJfY2xrKSAvIHNpemVvZihwZXJfY2xrWzBdKTsgaSsrKQorCQkJcGVyX2Nsa1tpXS5wYXJlbnQgPSAmbXBsbF9jbGs7CisKKwkJc3NpMV9jbGtbMF0ucGFyZW50ID0gJm1wbGxfY2xrOworCQlzc2kyX2Nsa1swXS5wYXJlbnQgPSAmbXBsbF9jbGs7CisKKwkJdnB1X2Nsay5wYXJlbnQgPSAmbXBsbF9jbGs7CisJfQorfQorCisvKgorICogbXVzdCBiZSBjYWxsZWQgdmVyeSBlYXJseSB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgKiBhdmFpbGFibGUgY2xvY2sgcmF0ZSB3aGVuIHRoZSB0aW1lciBmcmFtZXdvcmsgc3RhcnRzCisgKi8KK2ludCBfX2luaXQgbXhjX2Nsb2Nrc19pbml0KHVuc2lnbmVkIGxvbmcgZnJlZikKK3sKKwl1MzIgY3NjcjsKKwlzdHJ1Y3QgY2xrICoqY2xrcDsKKworCWV4dGVybmFsX2hpZ2hfcmVmZXJlbmNlID0gZnJlZjsKKworCS8qIGRldGVjdCBjbG9jayByZWZlcmVuY2UgZm9yIGJvdGggc3lzdGVtIFBMTCAqLworCWNzY3IgPSBDU0NSKCk7CisJaWYgKGNzY3IgJiBDQ01fQ1NDUl9NQ1UpCisJCW1wbGxfY2xrLnBhcmVudCA9ICZja2loX2NsazsKKwllbHNlCisJCW1wbGxfY2xrLnBhcmVudCA9ICZja2lsX2NsazsKKworCWlmIChjc2NyICYgQ0NNX0NTQ1JfU1ApCisJCXNwbGxfY2xrLnBhcmVudCA9ICZja2loX2NsazsKKwllbHNlCisJCXNwbGxfY2xrLnBhcmVudCA9ICZja2lsX2NsazsKKworCXByb2JlX214Y19jbG9ja3MoKTsKKworCXBlcl9jbGtbMF0uZW5hYmxlKCZwZXJfY2xrWzBdKTsKKwlncHQxX2Nsa1sxXS5lbmFibGUoJmdwdDFfY2xrWzFdKTsKKworCWZvciAoY2xrcCA9IG14Y19jbGtzOyBjbGtwIDwgbXhjX2Nsa3MgKyBBUlJBWV9TSVpFKG14Y19jbGtzKTsgY2xrcCsrKQorCQljbGtfcmVnaXN0ZXIoKmNsa3ApOworCisJLyogVHVybiBvZmYgYWxsIHBvc3NpYmxlIGNsb2NrcyAqLworCV9fcmF3X3dyaXRlbChDQ01fUENDUjBfR1BUMV9NQVNLLCBDQ01fUENDUjApOworCV9fcmF3X3dyaXRlbChDQ01fUENDUjFfUEVSQ0xLMV9NQVNLIHwgQ0NNX1BDQ1IxX0hDTEtfRU1JX01BU0ssCisJCSAgICAgQ0NNX1BDQ1IxKTsKKwlzcGxsX2Nsay5kaXNhYmxlKCZzcGxsX2Nsayk7CisKKwkvKiBUaGlzIHdpbGwgcHJvcGFnYXRlIHRvIGFsbCBjaGlsZHJlbiBhbmQgaW5pdCBhbGwgdGhlIGNsb2NrIHJhdGVzICovCisKKwljbGtfZW5hYmxlKCZlbWlfY2xrKTsKKwljbGtfZW5hYmxlKCZncGlvX2Nsayk7CisJY2xrX2VuYWJsZSgmaWltX2Nsayk7CisJY2xrX2VuYWJsZSgmZ3B0MV9jbGtbMF0pOworI2lmZGVmIENPTkZJR19ERUJVR19MTF9DT05TT0xFCisJY2xrX2VuYWJsZSgmdWFydDFfY2xrWzBdKTsKKyNlbmRpZgorCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvY3B1X2lteDI3LmMgYi9hcmNoL2FybS9tYWNoLW14Mi9jcHVfaW14MjcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmI1YzJlCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvY3B1X2lteDI3LmMKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKy8qCisgKiBpLk1YMjcgc3BlY2lmaWMgQ1BVIGRldGVjdGlvbiBjb2RlCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKworI2luY2x1ZGUgImNybV9yZWdzLmgiCisKK3N0YXRpYyBpbnQgY3B1X3NpbGljb25fcmV2ID0gLTE7CitzdGF0aWMgaW50IGNwdV9wYXJ0bnVtYmVyOworCitzdGF0aWMgdm9pZCBxdWVyeV9zaWxpY29uX3BhcmFtZXRlcih2b2lkKQoreworCXUzMiB2YWw7CisJLyoKKwkgKiBub3cgd2UgaGF2ZSBhY2Nlc3MgdG8gdGhlIElPIHJlZ2lzdGVycy4gQXMgd2UgbmVlZAorCSAqIHRoZSBzaWxpY29uIHJldmlzaW9uIHZlcnkgZWFybHkgd2UgcmVhZCBpdCBoZXJlIHRvCisJICogYXZvaWQgYW55IGZ1cnRoZXIgaG9va3MKKwkqLworCXZhbCA9IF9fcmF3X3JlYWRsKElPX0FERFJFU1MoU1lTQ1RSTF9CQVNFX0FERFIpICsgU1lTX0NISVBfSUQpOworCisJY3B1X3NpbGljb25fcmV2ID0gKGludCkodmFsID4+IDI4KTsKKwljcHVfcGFydG51bWJlciA9IChpbnQpKCh2YWwgPj4gMTIpICYgMHhGRkZGKTsKK30KKworLyoKKyAqIFJldHVybnM6CisgKgl0aGUgc2lsaWNvbiByZXZpc2lvbiBvZiB0aGUgY3B1CisgKgktRUlOVkFMIC0gbm90IGEgbXgyNworICovCitpbnQgbXgyN19yZXZpc2lvbih2b2lkKQoreworCWlmIChjcHVfc2lsaWNvbl9yZXYgPT0gLTEpCisJCXF1ZXJ5X3NpbGljb25fcGFyYW1ldGVyKCk7CisKKwlpZiAoY3B1X3BhcnRudW1iZXIgIT0gMHg4ODIxKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiBjcHVfc2lsaWNvbl9yZXY7Cit9CitFWFBPUlRfU1lNQk9MKG14MjdfcmV2aXNpb24pOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvY3JtX3JlZ3MuaCBiL2FyY2gvYXJtL21hY2gtbXgyL2NybV9yZWdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQwYTliOQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL2NybV9yZWdzLmgKQEAgLTAsMCArMSwyNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX19BUkNIX0FSTV9NQUNIX01YMl9DUk1fUkVHU19IX18KKyNkZWZpbmUgX19BUkNIX0FSTV9NQUNIX01YMl9DUk1fUkVHU19IX18KKworI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CisKKy8qIFJlZ2lzdGVyIG9mZnNldHMgKi8KKyNkZWZpbmUgQ0NNX0NTQ1IgICAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDApCisjZGVmaW5lIENDTV9NUENUTDAgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHg0KQorI2RlZmluZSBDQ01fTVBDVEwxICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4OCkKKyNkZWZpbmUgQ0NNX1NQQ1RMMCAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweEMpCisjZGVmaW5lIENDTV9TUENUTDEgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgxMCkKKyNkZWZpbmUgQ0NNX09TQzI2TUNUTCAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDE0KQorI2RlZmluZSBDQ01fUENEUjAgICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MTgpCisjZGVmaW5lIENDTV9QQ0RSMSAgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgxYykKKyNkZWZpbmUgQ0NNX1BDQ1IwICAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDIwKQorI2RlZmluZSBDQ01fUENDUjEgICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MjQpCisjZGVmaW5lIENDTV9DQ1NSICAgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgyOCkKKyNkZWZpbmUgQ0NNX1BNQ1RMICAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDJjKQorI2RlZmluZSBDQ01fUE1DT1VOVCAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MzApCisjZGVmaW5lIENDTV9XS0dEQ1RMICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgzNCkKKworI2RlZmluZSBDQ01fQ1NDUl9VU0JfT0ZGU0VUICAgICAyOAorI2RlZmluZSBDQ01fQ1NDUl9VU0JfTUFTSyAgICAgICAoMHg3IDw8IDI4KQorI2RlZmluZSBDQ01fQ1NDUl9TRF9PRkZTRVQgICAgICAyNAorI2RlZmluZSBDQ01fQ1NDUl9TRF9NQVNLICAgICAgICAoMHgzIDw8IDI0KQorI2RlZmluZSBDQ01fQ1NDUl9TU0kyICAgICAgICAgICAoMSA8PCAyMykKKyNkZWZpbmUgQ0NNX0NTQ1JfU1NJMl9PRkZTRVQgICAgMjMKKyNkZWZpbmUgQ0NNX0NTQ1JfU1NJMSAgICAgICAgICAgKDEgPDwgMjIpCisjZGVmaW5lIENDTV9DU0NSX1NTSTFfT0ZGU0VUICAgIDIyCisjZGVmaW5lIENDTV9DU0NSX1ZQVSAgICAgICAgICAgKDEgPDwgMjEpCisjZGVmaW5lIENDTV9DU0NSX1ZQVV9PRkZTRVQgICAgMjEKKyNkZWZpbmUgQ0NNX0NTQ1JfTVNIQyAgICAgICAgICAgKDEgPDwgMjApCisjZGVmaW5lIENDTV9DU0NSX1NQTExSRVMgICAgICAgICgxIDw8IDE5KQorI2RlZmluZSBDQ01fQ1NDUl9NUExMUkVTICAgICAgICAoMSA8PCAxOCkKKyNkZWZpbmUgQ0NNX0NTQ1JfU1AgICAgICAgICAgICAgKDEgPDwgMTcpCisjZGVmaW5lIENDTV9DU0NSX01DVSAgICAgICAgICAgICgxIDw8IDE2KQorLyogQ0NNX0NTQ1JfQVJNX3h4eCBqdXN0IGJlIGF2YWxpYWJsZSBvbiBpLk1YMjcgVE8yKi8KKyNkZWZpbmUgQ0NNX0NTQ1JfQVJNX1NSQyAgICAgICAgKDEgPDwgMTUpCisjZGVmaW5lIENDTV9DU0NSX0FSTV9PRkZTRVQgICAgIDEyCisjZGVmaW5lIENDTV9DU0NSX0FSTV9NQVNLICAgICAgICgweDMgPDwgMTIpCisvKiBDQ01fQ1NDUl9BUk1feHh4IGp1c3QgYmUgYXZhbGlhYmxlIG9uIGkuTVgyNyBUTzIqLworI2RlZmluZSBDQ01fQ1NDUl9QUkVTQ19PRkZTRVQgICAxMworI2RlZmluZSBDQ01fQ1NDUl9QUkVTQ19NQVNLICAgICAoMHg3IDw8IDEzKQorI2RlZmluZSBDQ01fQ1NDUl9CQ0xLX09GRlNFVCAgICA5CisjZGVmaW5lIENDTV9DU0NSX0JDTEtfTUFTSyAgICAgICgweGYgPDwgOSkKKyNkZWZpbmUgQ0NNX0NTQ1JfSVBESVZfT0ZGU0VUICAgOAorI2RlZmluZSBDQ01fQ1NDUl9JUERJViAgICAgICAgICAoMSA8PCA4KQorLyogQ0NNX0NTQ1JfQUhCX3h4eCBqdXN0IGJlIGF2YWxpYWJsZSBvbiBpLk1YMjcgVE8yKi8KKyNkZWZpbmUgQ0NNX0NTQ1JfQUhCX09GRlNFVCAgICAgOAorI2RlZmluZSBDQ01fQ1NDUl9BSEJfTUFTSyAgICAgICAoMHgzIDw8IDgpCisvKiBDQ01fQ1NDUl9BSEJfeHh4IGp1c3QgYmUgYXZhbGlhYmxlIG9uIGkuTVgyNyBUTzIqLworI2RlZmluZSBDQ01fQ1NDUl9PU0MyNk1ESVYgICAgICAoMSA8PCA0KQorI2RlZmluZSBDQ01fQ1NDUl9PU0MyNk0gICAgICAgICAoMSA8PCAzKQorI2RlZmluZSBDQ01fQ1NDUl9GUE0gICAgICAgICAgICAoMSA8PCAyKQorI2RlZmluZSBDQ01fQ1NDUl9TUEVOICAgICAgICAgICAoMSA8PCAxKQorI2RlZmluZSBDQ01fQ1NDUl9NUEVOICAgICAgICAgICAxCisKKyNkZWZpbmUgQ0NNX01QQ1RMMF9DUExNICAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIENDTV9NUENUTDBfUERfT0ZGU0VUICAgIDI2CisjZGVmaW5lIENDTV9NUENUTDBfUERfTUFTSyAgICAgICgweGYgPDwgMjYpCisjZGVmaW5lIENDTV9NUENUTDBfTUZEX09GRlNFVCAgIDE2CisjZGVmaW5lIENDTV9NUENUTDBfTUZEX01BU0sgICAgICgweDNmZiA8PCAxNikKKyNkZWZpbmUgQ0NNX01QQ1RMMF9NRklfT0ZGU0VUICAgMTAKKyNkZWZpbmUgQ0NNX01QQ1RMMF9NRklfTUFTSyAgICAgKDB4ZiA8PCAxMCkKKyNkZWZpbmUgQ0NNX01QQ1RMMF9NRk5fT0ZGU0VUICAgMAorI2RlZmluZSBDQ01fTVBDVEwwX01GTl9NQVNLICAgICAweDNmZgorCisjZGVmaW5lIENDTV9NUENUTDFfTEYgICAgICAgICAgICgxIDw8IDE1KQorI2RlZmluZSBDQ01fTVBDVEwxX0JSTU8gICAgICAgICAoMSA8PCA2KQorCisjZGVmaW5lIENDTV9TUENUTDBfQ1BMTSAgICAgICAgICgxIDw8IDMxKQorI2RlZmluZSBDQ01fU1BDVEwwX1BEX09GRlNFVCAgICAyNgorI2RlZmluZSBDQ01fU1BDVEwwX1BEX01BU0sgICAgICAoMHhmIDw8IDI2KQorI2RlZmluZSBDQ01fU1BDVEwwX01GRF9PRkZTRVQgICAxNgorI2RlZmluZSBDQ01fU1BDVEwwX01GRF9NQVNLICAgICAoMHgzZmYgPDwgMTYpCisjZGVmaW5lIENDTV9TUENUTDBfTUZJX09GRlNFVCAgIDEwCisjZGVmaW5lIENDTV9TUENUTDBfTUZJX01BU0sgICAgICgweGYgPDwgMTApCisjZGVmaW5lIENDTV9TUENUTDBfTUZOX09GRlNFVCAgIDAKKyNkZWZpbmUgQ0NNX1NQQ1RMMF9NRk5fTUFTSyAgICAgMHgzZmYKKworI2RlZmluZSBDQ01fU1BDVEwxX0xGICAgICAgICAgICAoMSA8PCAxNSkKKyNkZWZpbmUgQ0NNX1NQQ1RMMV9CUk1PICAgICAgICAgKDEgPDwgNikKKworI2RlZmluZSBDQ01fT1NDMjZNQ1RMX1BFQUtfT0ZGU0VUICAgICAgIDE2CisjZGVmaW5lIENDTV9PU0MyNk1DVExfUEVBS19NQVNLICAgICAgICAgKDB4MyA8PCAxNikKKyNkZWZpbmUgQ0NNX09TQzI2TUNUTF9BR0NfT0ZGU0VUICAgICAgICA4CisjZGVmaW5lIENDTV9PU0MyNk1DVExfQUdDX01BU0sgICAgICAgICAgKDB4M2YgPDwgOCkKKyNkZWZpbmUgQ0NNX09TQzI2TUNUTF9BTkFURVNUX09GRlNFVCAgICAwCisjZGVmaW5lIENDTV9PU0MyNk1DVExfQU5BVEVTVF9NQVNLICAgICAgMHgzZgorCisjZGVmaW5lIENDTV9QQ0RSMF9TU0kyQkFVRERJVl9PRkZTRVQgICAgMjYKKyNkZWZpbmUgQ0NNX1BDRFIwX1NTSTJCQVVERElWX01BU0sgICAgICAoMHgzZiA8PCAyNikKKyNkZWZpbmUgQ0NNX1BDRFIwX0NMS09fRU4gICAgICAgICAgICAgICAyNQorI2RlZmluZSBDQ01fUENEUjBfQ0xLT0RJVl9PRkZTRVQgICAgICAgIDIyCisjZGVmaW5lIENDTV9QQ0RSMF9DTEtPRElWX01BU0sgICAgICAgICAgKDB4NyA8PCAyMikKKyNkZWZpbmUgQ0NNX1BDRFIwX1NTSTFCQVVERElWX09GRlNFVCAgICAxNgorI2RlZmluZSBDQ01fUENEUjBfU1NJMUJBVURESVZfTUFTSyAgICAgICgweDNmIDw8IDE2KQorLypUaGUgZGlmaW5pdGlvbiBmb3IgaS5NWDI3IFRPMiovCisjZGVmaW5lIENDTV9QQ0RSMF9WUFVESVYyX09GRlNFVCAgICAgICAgMTAKKyNkZWZpbmUgQ0NNX1BDRFIwX1ZQVURJVjJfTUFTSyAgICAgICAgICAoMHgzZiA8PCAxMCkKKyNkZWZpbmUgQ0NNX1BDRFIwX05GQ0RJVjJfT0ZGU0VUICAgICAgICAgNgorI2RlZmluZSBDQ01fUENEUjBfTkZDRElWMl9NQVNLICAgICAgICAgICAoMHhmIDw8IDYpCisjZGVmaW5lIENDTV9QQ0RSMF9NU0hDRElWMl9NQVNLICAgICAgICAgIDB4M2YKKy8qVGhlIGRpZmluaXRpb24gZm9yIGkuTVgyNyBUTzIqLworI2RlZmluZSBDQ01fUENEUjBfTkZDRElWX09GRlNFVCAgICAgICAgIDEyCisjZGVmaW5lIENDTV9QQ0RSMF9ORkNESVZfTUFTSyAgICAgICAgICAgKDB4ZiA8PCAxMikKKyNkZWZpbmUgQ0NNX1BDRFIwX1ZQVURJVl9PRkZTRVQgICAgICAgIDgKKyNkZWZpbmUgQ0NNX1BDRFIwX1ZQVURJVl9NQVNLICAgICAgICAgICgweGYgPDwgOCkKKyNkZWZpbmUgQ0NNX1BDRFIwX01TSENESVZfT0ZGU0VUICAgICAgICAwCisjZGVmaW5lIENDTV9QQ0RSMF9NU0hDRElWX01BU0sgICAgICAgICAgMHgxZgorCisjZGVmaW5lIENDTV9QQ0RSMV9QRVJESVY0X09GRlNFVCAgICAgICAgMjQKKyNkZWZpbmUgQ0NNX1BDRFIxX1BFUkRJVjRfTUFTSyAgICAgICAgICAoMHgzZiA8PCAyNCkKKyNkZWZpbmUgQ0NNX1BDRFIxX1BFUkRJVjNfT0ZGU0VUICAgICAgICAxNgorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWM19NQVNLICAgICAgICAgICgweDNmIDw8IDE2KQorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWMl9PRkZTRVQgICAgICAgIDgKKyNkZWZpbmUgQ0NNX1BDRFIxX1BFUkRJVjJfTUFTSyAgICAgICAgICAoMHgzZiA8PCA4KQorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWMV9PRkZTRVQgICAgICAgIDAKKyNkZWZpbmUgQ0NNX1BDRFIxX1BFUkRJVjFfTUFTSyAgICAgICAgICAweDNmCisKKyNkZWZpbmUgQ0NNX1BDQ1IwX0NTUEkxX09GRlNFVCAgICAgICAgICAzMQorI2RlZmluZSBDQ01fUENDUjBfQ1NQSTFfTUFTSyAgICAgICAgICAgICgxIDw8IDMxKQorI2RlZmluZSBDQ01fUENDUjBfQ1NQSTJfT0ZGU0VUICAgICAgICAgIDMwCisjZGVmaW5lIENDTV9QQ0NSMF9DU1BJMl9NQVNLICAgICAgICAgICAgKDEgPDwgMzApCisjZGVmaW5lIENDTV9QQ0NSMF9DU1BJM19PRkZTRVQgICAgICAgICAgMjkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0NTUEkzX01BU0sgICAgICAgICAgICAoMSA8PCAyOSkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0RNQV9PRkZTRVQgICAgICAgICAgICAyOAorI2RlZmluZSBDQ01fUENDUjBfRE1BX01BU0sgICAgICAgICAgICAgICgxIDw8IDI4KQorI2RlZmluZSBDQ01fUENDUjBfRU1NQV9PRkZTRVQgICAgICAgICAgIDI3CisjZGVmaW5lIENDTV9QQ0NSMF9FTU1BX01BU0sgICAgICAgICAgICAgKDEgPDwgMjcpCisjZGVmaW5lIENDTV9QQ0NSMF9GRUNfT0ZGU0VUICAgICAgICAgICAgMjYKKyNkZWZpbmUgQ0NNX1BDQ1IwX0ZFQ19NQVNLICAgICAgICAgICAgICAoMSA8PCAyNikKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQSU9fT0ZGU0VUICAgICAgICAgICAyNQorI2RlZmluZSBDQ01fUENDUjBfR1BJT19NQVNLICAgICAgICAgICAgICgxIDw8IDI1KQorI2RlZmluZSBDQ01fUENDUjBfR1BUMV9PRkZTRVQgICAgICAgICAgIDI0CisjZGVmaW5lIENDTV9QQ0NSMF9HUFQxX01BU0sgICAgICAgICAgICAgKDEgPDwgMjQpCisjZGVmaW5lIENDTV9QQ0NSMF9HUFQyX09GRlNFVCAgICAgICAgICAgMjMKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDJfTUFTSyAgICAgICAgICAgICAoMSA8PCAyMykKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDNfT0ZGU0VUICAgICAgICAgICAyMgorI2RlZmluZSBDQ01fUENDUjBfR1BUM19NQVNLICAgICAgICAgICAgICgxIDw8IDIyKQorI2RlZmluZSBDQ01fUENDUjBfR1BUNF9PRkZTRVQgICAgICAgICAgIDIxCisjZGVmaW5lIENDTV9QQ0NSMF9HUFQ0X01BU0sgICAgICAgICAgICAgKDEgPDwgMjEpCisjZGVmaW5lIENDTV9QQ0NSMF9HUFQ1X09GRlNFVCAgICAgICAgICAgMjAKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDVfTUFTSyAgICAgICAgICAgICAoMSA8PCAyMCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDZfT0ZGU0VUICAgICAgICAgICAxOQorI2RlZmluZSBDQ01fUENDUjBfR1BUNl9NQVNLICAgICAgICAgICAgICgxIDw8IDE5KQorI2RlZmluZSBDQ01fUENDUjBfSTJDMV9PRkZTRVQgICAgICAgICAgIDE4CisjZGVmaW5lIENDTV9QQ0NSMF9JMkMxX01BU0sgICAgICAgICAgICAgKDEgPDwgMTgpCisjZGVmaW5lIENDTV9QQ0NSMF9JMkMyX09GRlNFVCAgICAgICAgICAgMTcKKyNkZWZpbmUgQ0NNX1BDQ1IwX0kyQzJfTUFTSyAgICAgICAgICAgICAoMSA8PCAxNykKKyNkZWZpbmUgQ0NNX1BDQ1IwX0lJTV9PRkZTRVQgICAgICAgICAgICAxNgorI2RlZmluZSBDQ01fUENDUjBfSUlNX01BU0sgICAgICAgICAgICAgICgxIDw8IDE2KQorI2RlZmluZSBDQ01fUENDUjBfS1BQX09GRlNFVCAgICAgICAgICAgIDE1CisjZGVmaW5lIENDTV9QQ0NSMF9LUFBfTUFTSyAgICAgICAgICAgICAgKDEgPDwgMTUpCisjZGVmaW5lIENDTV9QQ0NSMF9MQ0RDX09GRlNFVCAgICAgICAgICAgMTQKKyNkZWZpbmUgQ0NNX1BDQ1IwX0xDRENfTUFTSyAgICAgICAgICAgICAoMSA8PCAxNCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX01TSENfT0ZGU0VUICAgICAgICAgICAxMworI2RlZmluZSBDQ01fUENDUjBfTVNIQ19NQVNLICAgICAgICAgICAgICgxIDw8IDEzKQorI2RlZmluZSBDQ01fUENDUjBfT1dJUkVfT0ZGU0VUICAgICAgICAgIDEyCisjZGVmaW5lIENDTV9QQ0NSMF9PV0lSRV9NQVNLICAgICAgICAgICAgKDEgPDwgMTIpCisjZGVmaW5lIENDTV9QQ0NSMF9QV01fT0ZGU0VUICAgICAgICAgICAgMTEKKyNkZWZpbmUgQ0NNX1BDQ1IwX1BXTV9NQVNLICAgICAgICAgICAgICAoMSA8PCAxMSkKKyNkZWZpbmUgQ0NNX1BDQ1IwX1JUQ19PRkZTRVQgICAgICAgICAgICA5CisjZGVmaW5lIENDTV9QQ0NSMF9SVENfTUFTSyAgICAgICAgICAgICAgKDEgPDwgOSkKKyNkZWZpbmUgQ0NNX1BDQ1IwX1JUSUNfT0ZGU0VUICAgICAgICAgICA4CisjZGVmaW5lIENDTV9QQ0NSMF9SVElDX01BU0sgICAgICAgICAgICAgKDEgPDwgOCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NBSEFSQV9PRkZTRVQgICAgICAgICA3CisjZGVmaW5lIENDTV9QQ0NSMF9TQUhBUkFfTUFTSyAgICAgICAgICAgKDEgPDwgNykKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NDQ19PRkZTRVQgICAgICAgICAgICA2CisjZGVmaW5lIENDTV9QQ0NSMF9TQ0NfTUFTSyAgICAgICAgICAgICAgKDEgPDwgNikKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NESEMxX09GRlNFVCAgICAgICAgICA1CisjZGVmaW5lIENDTV9QQ0NSMF9TREhDMV9NQVNLICAgICAgICAgICAgKDEgPDwgNSkKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NESEMyX09GRlNFVCAgICAgICAgICA0CisjZGVmaW5lIENDTV9QQ0NSMF9TREhDMl9NQVNLICAgICAgICAgICAgKDEgPDwgNCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NESEMzX09GRlNFVCAgICAgICAgICAzCisjZGVmaW5lIENDTV9QQ0NSMF9TREhDM19NQVNLICAgICAgICAgICAgKDEgPDwgMykKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NMQ0RDX09GRlNFVCAgICAgICAgICAyCisjZGVmaW5lIENDTV9QQ0NSMF9TTENEQ19NQVNLICAgICAgICAgICAgKDEgPDwgMikKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NTSTFfSVBHX09GRlNFVCAgICAgICAxCisjZGVmaW5lIENDTV9QQ0NSMF9TU0kxX0lQR19NQVNLICAgICAgICAgKDEgPDwgMSkKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NTSTJfSVBHX09GRlNFVCAgICAgICAwCisjZGVmaW5lIENDTV9QQ0NSMF9TU0kyX0lQR19NQVNLICAgICAgICAgKDEgPDwgMCkKKworI2RlZmluZSBDQ01fUENDUjFfVUFSVDFfT0ZGU0VUICAgICAgICAgIDMxCisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUMV9NQVNLICAgICAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUMl9PRkZTRVQgICAgICAgICAgMzAKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQyX01BU0sgICAgICAgICAgICAoMSA8PCAzMCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQzX09GRlNFVCAgICAgICAgICAyOQorI2RlZmluZSBDQ01fUENDUjFfVUFSVDNfTUFTSyAgICAgICAgICAgICgxIDw8IDI5KQorI2RlZmluZSBDQ01fUENDUjFfVUFSVDRfT0ZGU0VUICAgICAgICAgIDI4CisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUNF9NQVNLICAgICAgICAgICAgKDEgPDwgMjgpCisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUNV9PRkZTRVQgICAgICAgICAgMjcKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQ1X01BU0sgICAgICAgICAgICAoMSA8PCAyNykKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQ2X09GRlNFVCAgICAgICAgICAyNgorI2RlZmluZSBDQ01fUENDUjFfVUFSVDZfTUFTSyAgICAgICAgICAgICgxIDw8IDI2KQorI2RlZmluZSBDQ01fUENDUjFfVVNCT1RHX09GRlNFVCAgICAgICAgIDI1CisjZGVmaW5lIENDTV9QQ0NSMV9VU0JPVEdfTUFTSyAgICAgICAgICAgKDEgPDwgMjUpCisjZGVmaW5lIENDTV9QQ0NSMV9XRFRfT0ZGU0VUICAgICAgICAgICAgMjQKKyNkZWZpbmUgQ0NNX1BDQ1IxX1dEVF9NQVNLICAgICAgICAgICAgICAoMSA8PCAyNCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfQVRBX09GRlNFVCAgICAgICAyMworI2RlZmluZSBDQ01fUENDUjFfSENMS19BVEFfTUFTSyAgICAgICAgICgxIDw8IDIzKQorI2RlZmluZSBDQ01fUENDUjFfSENMS19CUk9NX09GRlNFVCAgICAgIDIyCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0JST01fTUFTSyAgICAgICAgKDEgPDwgMjIpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0NTSV9PRkZTRVQgICAgICAgMjEKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfQ1NJX01BU0sgICAgICAgICAoMSA8PCAyMSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfRE1BX09GRlNFVCAgICAgICAyMAorI2RlZmluZSBDQ01fUENDUjFfSENMS19ETUFfTUFTSyAgICAgICAgICgxIDw8IDIwKQorI2RlZmluZSBDQ01fUENDUjFfSENMS19FTUlfT0ZGU0VUICAgICAgIDE5CisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0VNSV9NQVNLICAgICAgICAgKDEgPDwgMTkpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0VNTUFfT0ZGU0VUICAgICAgMTgKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfRU1NQV9NQVNLICAgICAgICAoMSA8PCAxOCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfRkVDX09GRlNFVCAgICAgICAxNworI2RlZmluZSBDQ01fUENDUjFfSENMS19GRUNfTUFTSyAgICAgICAgICgxIDw8IDE3KQorI2RlZmluZSBDQ01fUENDUjFfSENMS19WUFVfT0ZGU0VUICAgICAgIDE2CisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1ZQVV9NQVNLICAgICAgICAgKDEgPDwgMTYpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0xDRENfT0ZGU0VUICAgICAgMTUKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfTENEQ19NQVNLICAgICAgICAoMSA8PCAxNSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfUlRJQ19PRkZTRVQgICAgICAxNAorI2RlZmluZSBDQ01fUENDUjFfSENMS19SVElDX01BU0sgICAgICAgICgxIDw8IDE0KQorI2RlZmluZSBDQ01fUENDUjFfSENMS19TQUhBUkFfT0ZGU0VUICAgIDEzCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1NBSEFSQV9NQVNLICAgICAgKDEgPDwgMTMpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1NMQ0RDX09GRlNFVCAgICAgMTIKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfU0xDRENfTUFTSyAgICAgICAoMSA8PCAxMikKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfVVNCT1RHX09GRlNFVCAgICAxMQorI2RlZmluZSBDQ01fUENDUjFfSENMS19VU0JPVEdfTUFTSyAgICAgICgxIDw8IDExKQorI2RlZmluZSBDQ01fUENDUjFfUEVSQ0xLMV9PRkZTRVQgICAgICAgIDEwCisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEsxX01BU0sgICAgICAgICAgKDEgPDwgMTApCisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEsyX09GRlNFVCAgICAgICAgOQorI2RlZmluZSBDQ01fUENDUjFfUEVSQ0xLMl9NQVNLICAgICAgICAgICgxIDw8IDkpCisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEszX09GRlNFVCAgICAgICAgOAorI2RlZmluZSBDQ01fUENDUjFfUEVSQ0xLM19NQVNLICAgICAgICAgICgxIDw8IDgpCisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEs0X09GRlNFVCAgICAgICAgNworI2RlZmluZSBDQ01fUENDUjFfUEVSQ0xLNF9NQVNLICAgICAgICAgICgxIDw8IDcpCisjZGVmaW5lIENDTV9QQ0NSMV9WUFVfQkFVRF9PRkZTRVQgICAgICAgNgorI2RlZmluZSBDQ01fUENDUjFfVlBVX0JBVURfTUFTSyAgICAgICAgICgxIDw8IDYpCisjZGVmaW5lIENDTV9QQ0NSMV9TU0kxX0JBVURfT0ZGU0VUICAgICAgNQorI2RlZmluZSBDQ01fUENDUjFfU1NJMV9CQVVEX01BU0sgICAgICAgICgxIDw8IDUpCisjZGVmaW5lIENDTV9QQ0NSMV9TU0kyX0JBVURfT0ZGU0VUICAgICAgNAorI2RlZmluZSBDQ01fUENDUjFfU1NJMl9CQVVEX01BU0sgICAgICAgICgxIDw8IDQpCisjZGVmaW5lIENDTV9QQ0NSMV9ORkNfQkFVRF9PRkZTRVQgICAgICAgMworI2RlZmluZSBDQ01fUENDUjFfTkZDX0JBVURfTUFTSyAgICAgICAgICgxIDw8IDMpCisjZGVmaW5lIENDTV9QQ0NSMV9NU0hDX0JBVURfT0ZGU0VUICAgICAgMgorI2RlZmluZSBDQ01fUENDUjFfTVNIQ19CQVVEX01BU0sgICAgICAgICgxIDw8IDIpCisKKyNkZWZpbmUgQ0NNX0NDU1JfMzJLU1IgICAgICAgICAgKDEgPDwgMTUpCisjZGVmaW5lIENDTV9DQ1NSX0NMS01PREUxICAgICAgICgxIDw8IDkpCisjZGVmaW5lIENDTV9DQ1NSX0NMS01PREUwICAgICAgICgxIDw8IDgpCisjZGVmaW5lIENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUIDAKKyNkZWZpbmUgQ0NNX0NDU1JfQ0xLT1NFTF9NQVNLICAgMHgxZgorCisjZGVmaW5lIFNZU19GTUNSICAgICAgICAgICAgICAgIDB4MTQJLyogIEZ1bmN0aW9uYWwgTXV4aW5nIENvbnRyb2wgUmVnICovCisjZGVmaW5lIFNZU19DSElQX0lEICAgICAgICAgICAgIDB4MDAJLyogVGhlIG9mZnNldCBvZiBDSElQIElEIHJlZ2lzdGVyICovCisKKyNlbmRpZiAvKiBfX0FSQ0hfQVJNX01BQ0hfTVgyX0NSTV9SRUdTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvZGV2aWNlcy5jIGIvYXJjaC9hcm0vbWFjaC1teDIvZGV2aWNlcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExZjQ0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9kZXZpY2VzLmMKQEAgLTAsMCArMSwyMzEgQEAKKy8qCisgKiBBdXRob3I6IE1vbnRhVmlzdGEgU29mdHdhcmUsIEluYy4KKyAqICAgICAgIDxzb3VyY2VAbXZpc3RhLmNvbT4KKyAqCisgKiBCYXNlZCBvbiB0aGUgT01BUCBkZXZpY2VzLmMKKyAqCisgKiAyMDA1IChjKSBNb250YVZpc3RhIFNvZnR3YXJlLCBJbmMuIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUKKyAqIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuIFRoaXMgcHJvZ3JhbSBpcworICogbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzCisgKiBvciBpbXBsaWVkLgorICoKKyAqIENvcHlyaWdodCAyMDA2LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisKKy8qCisgKiBSZXNvdXJjZSBkZWZpbml0aW9uIGZvciB0aGUgTVhDIElyREEKKyAqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBteGNfaXJkYV9yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydCAgID0gVUFSVDNfQkFTRV9BRERSLAorCQkuZW5kICAgICA9IFVBUlQzX0JBU0VfQUREUiArIFNaXzRLIC0gMSwKKwkJLmZsYWdzICAgPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ICAgPSBNWENfSU5UX1VBUlQzLAorCQkuZW5kICAgICA9IE1YQ19JTlRfVUFSVDMsCisJCS5mbGFncyAgID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKKy8qIFBsYXRmb3JtIERhdGEgZm9yIE1YQyBJckRBICovCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y19pcmRhX2RldmljZSA9IHsKKwkubmFtZSA9ICJteGNfaXJkYSIsCisJLmlkID0gMCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUobXhjX2lyZGFfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UgPSBteGNfaXJkYV9yZXNvdXJjZXMsCit9OworCisvKgorICogR2VuZXJhbCBQdXJwb3NlIFRpbWVyCisgKiAtIGkuTVgxOiAyIHRpbWVyIChzbGlnaGx5IGRpZmZlcmVudCByZWdpc3RlciBoYW5kbGluZykKKyAqIC0gaS5NWDIxOiAzIHRpbWVyCisgKiAtIGkuTVgyNzogNiB0aW1lcgorICovCisKKy8qIFdlIHVzZSBncHQwIGFzIHN5c3RlbSB0aW1lciwgc28gZG8gbm90IGFkZCBhIGRldmljZSBmb3IgdGhpcyBvbmUgKi8KKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB0aW1lcjFfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBHUFQyX0JBU0VfQUREUiwKKwkJLmVuZAk9IEdQVDJfQkFTRV9BRERSICsgMHgxNywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ICAgPSBNWENfSU5UX0dQVDIsCisJCS5lbmQgICAgID0gTVhDX0lOVF9HUFQyLAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfSVJRLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2dwdDEgPSB7CisJLm5hbWUgPSAiaW14X2dwdCIsCisJLmlkID0gMSwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodGltZXIxX3Jlc291cmNlcyksCisJLnJlc291cmNlID0gdGltZXIxX3Jlc291cmNlcworfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB0aW1lcjJfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBHUFQzX0JBU0VfQUREUiwKKwkJLmVuZAk9IEdQVDNfQkFTRV9BRERSICsgMHgxNywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ICAgPSBNWENfSU5UX0dQVDMsCisJCS5lbmQgICAgID0gTVhDX0lOVF9HUFQzLAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfSVJRLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2dwdDIgPSB7CisJLm5hbWUgPSAiaW14X2dwdCIsCisJLmlkID0gMiwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodGltZXIyX3Jlc291cmNlcyksCisJLnJlc291cmNlID0gdGltZXIyX3Jlc291cmNlcworfTsKKworI2lmZGVmIENPTkZJR19NQUNIX01YMjcKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdGltZXIzX3Jlc291cmNlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gR1BUNF9CQVNFX0FERFIsCisJCS5lbmQJPSBHUFQ0X0JBU0VfQUREUiArIDB4MTcsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydCAgID0gTVhDX0lOVF9HUFQ0LAorCQkuZW5kICAgICA9IE1YQ19JTlRfR1BUNCwKKwkJLmZsYWdzICAgPSBJT1JFU09VUkNFX0lSUSwKKwl9Cit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y19ncHQzID0geworCS5uYW1lID0gImlteF9ncHQiLAorCS5pZCA9IDMsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHRpbWVyM19yZXNvdXJjZXMpLAorCS5yZXNvdXJjZSA9IHRpbWVyM19yZXNvdXJjZXMKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdGltZXI0X3Jlc291cmNlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gR1BUNV9CQVNFX0FERFIsCisJCS5lbmQJPSBHUFQ1X0JBU0VfQUREUiArIDB4MTcsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydCAgID0gTVhDX0lOVF9HUFQ1LAorCQkuZW5kICAgICA9IE1YQ19JTlRfR1BUNSwKKwkJLmZsYWdzICAgPSBJT1JFU09VUkNFX0lSUSwKKwl9Cit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y19ncHQ0ID0geworCS5uYW1lID0gImlteF9ncHQiLAorCS5pZCA9IDQsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHRpbWVyNF9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZSA9IHRpbWVyNF9yZXNvdXJjZXMKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdGltZXI1X3Jlc291cmNlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gR1BUNl9CQVNFX0FERFIsCisJCS5lbmQJPSBHUFQ2X0JBU0VfQUREUiArIDB4MTcsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydCAgID0gTVhDX0lOVF9HUFQ2LAorCQkuZW5kICAgICA9IE1YQ19JTlRfR1BUNiwKKwkJLmZsYWdzICAgPSBJT1JFU09VUkNFX0lSUSwKKwl9Cit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y19ncHQ1ID0geworCS5uYW1lID0gImlteF9ncHQiLAorCS5pZCA9IDUsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHRpbWVyNV9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZSA9IHRpbWVyNV9yZXNvdXJjZXMKK307CisjZW5kaWYKKworLyoKKyAqIFdhdGNoZG9nOgorICogLSBpLk1YMQorICogLSBpLk1YMjEKKyAqIC0gaS5NWDI3CisgKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXhjX3dkdF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAk9IFdET0dfQkFTRV9BRERSLAorCQkuZW5kCT0gV0RPR19CQVNFX0FERFIgKyAweDMwLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfd2R0ID0geworCS5uYW1lID0gIm14Y193ZHQiLAorCS5pZCA9IDAsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKG14Y193ZHRfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UgPSBteGNfd2R0X3Jlc291cmNlcywKK307CisKKy8qIEdQSU8gcG9ydCBkZXNjcmlwdGlvbiAqLworc3RhdGljIHN0cnVjdCBteGNfZ3Bpb19wb3J0IGlteF9ncGlvX3BvcnRzW10gPSB7CisJWzBdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTAiLAorCQkuaXJxID0gTVhDX0lOVF9HUElPLAorCQkuYmFzZSA9ICh2b2lkKikoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MTUwMDAgKyAweDEwMCAqIDApLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfTUFYX0lOVF9MSU5FUywKKwl9LAorCVsxXSA9IHsKKwkJLmNoaXAubGFiZWwgPSAiZ3Bpby0xIiwKKwkJLmJhc2UgPSAodm9pZCopKEFJUElfQkFTRV9BRERSX1ZJUlQgKyAweDE1MDAwICsgMHgxMDAgKiAxKSwKKwkJLnZpcnR1YWxfaXJxX3N0YXJ0ID0gTVhDX01BWF9JTlRfTElORVMgKyAzMiwKKwl9LAorCVsyXSA9IHsKKwkJLmNoaXAubGFiZWwgPSAiZ3Bpby0yIiwKKwkJLmJhc2UgPSAodm9pZCopKEFJUElfQkFTRV9BRERSX1ZJUlQgKyAweDE1MDAwICsgMHgxMDAgKiAyKSwKKwkJLnZpcnR1YWxfaXJxX3N0YXJ0ID0gTVhDX01BWF9JTlRfTElORVMgKyA2NCwKKwl9LAorCVszXSA9IHsKKwkJLmNoaXAubGFiZWwgPSAiZ3Bpby0zIiwKKwkJLmJhc2UgPSAodm9pZCopKEFJUElfQkFTRV9BRERSX1ZJUlQgKyAweDE1MDAwICsgMHgxMDAgKiAzKSwKKwkJLnZpcnR1YWxfaXJxX3N0YXJ0ID0gTVhDX01BWF9JTlRfTElORVMgKyA5NiwKKwl9LAorCVs0XSA9IHsKKwkJLmNoaXAubGFiZWwgPSAiZ3Bpby00IiwKKwkJLmJhc2UgPSAodm9pZCopKEFJUElfQkFTRV9BRERSX1ZJUlQgKyAweDE1MDAwICsgMHgxMDAgKiA0KSwKKwkJLnZpcnR1YWxfaXJxX3N0YXJ0ID0gTVhDX01BWF9JTlRfTElORVMgKyAxMjgsCisJfSwKKwlbNV0gPSB7CisJCS5jaGlwLmxhYmVsID0gImdwaW8tNSIsCisJCS5iYXNlID0gKHZvaWQqKShBSVBJX0JBU0VfQUREUl9WSVJUICsgMHgxNTAwMCArIDB4MTAwICogNSksCisJCS52aXJ0dWFsX2lycV9zdGFydCA9IE1YQ19NQVhfSU5UX0xJTkVTICsgMTYwLAorCX0KK307CisKK2ludCBfX2luaXQgbXhjX3JlZ2lzdGVyX2dwaW9zKHZvaWQpCit7CisJcmV0dXJuIG14Y19ncGlvX2luaXQoaW14X2dwaW9fcG9ydHMsIEFSUkFZX1NJWkUoaW14X2dwaW9fcG9ydHMpKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgyL2dlbmVyaWMuYyBiL2FyY2gvYXJtL21hY2gtbXgyL2dlbmVyaWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzg3NWNmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvZ2VuZXJpYy5jCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBnZW5lcmljLmMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVlcmdlbiBCZWlzZXJ0IChrZXJuZWxAcGVuZ3V0cm9uaXguZGUpCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisKKy8qIE1YMjcgbWVtb3J5IG1hcCBkZWZpbml0aW9uICovCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIG14Y19pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKKwkvKgorCSAqIHRoaXMgZml4ZWQgbWFwcGluZyBjb3ZlcnM6CisJICogLSBBSVBJMQorCSAqIC0gQUlQSTIKKwkgKiAtIEFJVEMKKwkgKiAtIFJPTSBQYXRjaAorCSAqIC0gYW5kIHNvbWUgcmVzZXJ2ZWQgc3BhY2UKKwkgKi8KKwl7CisJCS52aXJ0dWFsID0gQUlQSV9CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oQUlQSV9CQVNFX0FERFIpLAorCQkubGVuZ3RoID0gQUlQSV9TSVpFLAorCQkudHlwZSA9IE1UX0RFVklDRQorCX0sCisJLyoKKwkgKiB0aGlzIGZpeGVkIG1hcHBpbmcgY292ZXJzOgorCSAqIC0gQ1NJCisJICogLSBBVEEKKwkgKi8KKwl7CisJCS52aXJ0dWFsID0gU0FIQjFfQkFTRV9BRERSX1ZJUlQsCisJCS5wZm4gPSBfX3BoeXNfdG9fcGZuKFNBSEIxX0JBU0VfQUREUiksCisJCS5sZW5ndGggPSBTQUhCMV9TSVpFLAorCQkudHlwZSA9IE1UX0RFVklDRQorCX0sCisJLyoKKwkgKiB0aGlzIGZpeGVkIG1hcHBpbmcgY292ZXJzOgorCSAqIC0gRU1JCisJICovCisJeworCQkudmlydHVhbCA9IFhfTUVNQ19CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oWF9NRU1DX0JBU0VfQUREUiksCisJCS5sZW5ndGggPSBYX01FTUNfU0laRSwKKwkJLnR5cGUgPSBNVF9ERVZJQ0UKKwl9Cit9OworCisvKgorICogSW5pdGlhbGl6ZSB0aGUgbWVtb3J5IG1hcC4gSXQgaXMgY2FsbGVkIGR1cmluZyB0aGUKKyAqIHN5c3RlbSBzdGFydHVwIHRvIGNyZWF0ZSBzdGF0aWMgcGh5c2ljYWwgdG8gdmlydHVhbAorICogbWVtb3J5IG1hcCBmb3IgdGhlIElPIG1vZHVsZXMuCisgKi8KK3ZvaWQgX19pbml0IG14Y19tYXBfaW8odm9pZCkKK3sKKwlpb3RhYmxlX2luaXQobXhjX2lvX2Rlc2MsIEFSUkFZX1NJWkUobXhjX2lvX2Rlc2MpKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgyL214MjdhZHMuYyBiL2FyY2gvYXJtL21hY2gtbXgyL214MjdhZHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWZmMDFmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvbXgyN2Fkcy5jCkBAIC0wLDAgKzEsMzA0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwMCBEZWVwIEJsdWUgU29sdXRpb25zIEx0ZAorICogIENvcHlyaWdodCAoQykgMjAwMiBTaGFuZSBOYXkgKHNoYW5lQG1pbmlybC5jb20pCisgKiAgQ29weXJpZ2h0IDIwMDYtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9tYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pbXgtdWFydC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvbXV4LW14MS1teDIuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1teDI3YWRzLmg+CisKKy8qIEFEUydzIE5PUiBmbGFzaCAqLworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgbXgyN2Fkc19mbGFzaF9kYXRhID0geworCS53aWR0aCA9IDIsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG14MjdhZHNfZmxhc2hfcmVzb3VyY2UgPSB7CisJLnN0YXJ0ID0gMHhjMDAwMDAwMCwKKwkuZW5kID0gMHhjMDAwMDAwMCArIDB4MDIwMDAwMDAgLSAxLAorCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteDI3YWRzX25vcl9tdGRfZGV2aWNlID0geworCS5uYW1lID0gInBoeXNtYXAtZmxhc2giLAorCS5pZCA9IDAsCisJLmRldiA9IHsKKwkJLnBsYXRmb3JtX2RhdGEgPSAmbXgyN2Fkc19mbGFzaF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMgPSAxLAorCS5yZXNvdXJjZSA9ICZteDI3YWRzX2ZsYXNoX3Jlc291cmNlLAorfTsKKworc3RhdGljIGludCBteGNfdWFydDBfcGluc1tdID0geworCVBFMTJfUEZfVUFSVDFfVFhELAorCVBFMTNfUEZfVUFSVDFfUlhELAorCVBFMTRfUEZfVUFSVDFfQ1RTLAorCVBFMTVfUEZfVUFSVDFfUlRTCit9OworCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQwX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDBfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQwX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9OT1JNQUwsICJVQVJUMCIpOworfQorCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQwX2V4aXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDBfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQwX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiVUFSVDAiKTsKK30KKworc3RhdGljIGludCBteGNfdWFydDFfcGluc1tdID0geworCVBFM19QRl9VQVJUMl9DVFMsCisJUEU0X1BGX1VBUlQyX1JUUywKKwlQRTZfUEZfVUFSVDJfVFhELAorCVBFN19QRl9VQVJUMl9SWEQKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDFfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MV9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDFfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQxIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDFfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MV9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDFfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMSIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0Ml9waW5zW10gPSB7CisJUEU4X1BGX1VBUlQzX1RYRCwKKwlQRTlfUEZfVUFSVDNfUlhELAorCVBFMTBfUEZfVUFSVDNfQ1RTLAorCVBFMTFfUEZfVUFSVDNfUlRTCit9OworCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQyX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDJfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQyX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9OT1JNQUwsICJVQVJUMiIpOworfQorCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQyX2V4aXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDJfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQyX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiVUFSVDIiKTsKK30KKworc3RhdGljIGludCBteGNfdWFydDNfcGluc1tdID0geworCVBCMjZfQUZfVUFSVDRfUlRTLAorCVBCMjhfQUZfVUFSVDRfVFhELAorCVBCMjlfQUZfVUFSVDRfQ1RTLAorCVBCMzFfQUZfVUFSVDRfUlhECit9OworCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQzX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDNfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQzX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9OT1JNQUwsICJVQVJUMyIpOworfQorCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQzX2V4aXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDNfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQzX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiVUFSVDMiKTsKK30KKworc3RhdGljIGludCBteGNfdWFydDRfcGluc1tdID0geworCVBCMThfQUZfVUFSVDVfVFhELAorCVBCMTlfQUZfVUFSVDVfUlhELAorCVBCMjBfQUZfVUFSVDVfQ1RTLAorCVBCMjFfQUZfVUFSVDVfUlRTCit9OworCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQ0X2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDRfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQ0X3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9OT1JNQUwsICJVQVJUNCIpOworfQorCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQ0X2V4aXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDRfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQ0X3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiVUFSVDQiKTsKK30KKworc3RhdGljIGludCBteGNfdWFydDVfcGluc1tdID0geworCVBCMTBfQUZfVUFSVDZfVFhELAorCVBCMTJfQUZfVUFSVDZfQ1RTLAorCVBCMTFfQUZfVUFSVDZfUlhELAorCVBCMTNfQUZfVUFSVDZfUlRTCit9OworCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQ1X2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDVfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQ1X3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9OT1JNQUwsICJVQVJUNSIpOworfQorCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQ1X2V4aXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDVfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQ1X3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiVUFSVDUiKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZXNbXSBfX2luaXRkYXRhID0geworCSZteDI3YWRzX25vcl9tdGRfZGV2aWNlLAorfTsKKworc3RhdGljIGludCBteGNfZmVjX3BpbnNbXSA9IHsKKwlQRDBfQUlOX0ZFQ19UWEQwLAorCVBEMV9BSU5fRkVDX1RYRDEsCisJUEQyX0FJTl9GRUNfVFhEMiwKKwlQRDNfQUlOX0ZFQ19UWEQzLAorCVBENF9BT1VUX0ZFQ19SWF9FUiwKKwlQRDVfQU9VVF9GRUNfUlhEMSwKKwlQRDZfQU9VVF9GRUNfUlhEMiwKKwlQRDdfQU9VVF9GRUNfUlhEMywKKwlQRDhfQUZfRkVDX01ESU8sCisJUEQ5X0FJTl9GRUNfTURDLAorCVBEMTBfQU9VVF9GRUNfQ1JTLAorCVBEMTFfQU9VVF9GRUNfVFhfQ0xLLAorCVBEMTJfQU9VVF9GRUNfUlhEMCwKKwlQRDEzX0FPVVRfRkVDX1JYX0RWLAorCVBEMTRfQU9VVF9GRUNfQ0xSLAorCVBEMTVfQU9VVF9GRUNfQ09MLAorCVBEMTZfQUlOX0ZFQ19UWF9FUiwKKwlQRjIzX0FJTl9GRUNfVFhfRU4KK307CisKK3N0YXRpYyB2b2lkIGdwaW9fZmVjX2FjdGl2ZSh2b2lkKQoreworCW14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX2ZlY19waW5zLAorCQkJQVJSQVlfU0laRShteGNfZmVjX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9OT1JNQUwsICJGRUMiKTsKK30KKworc3RhdGljIHZvaWQgZ3Bpb19mZWNfaW5hY3RpdmUodm9pZCkKK3sKKwlteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y19mZWNfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX2ZlY19waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfUkVMRUFTRSwgIkZFQyIpOworfQorCitzdGF0aWMgc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSB1YXJ0X3BkYXRhW10gPSB7CisJeworCQkuaW5pdCA9IHVhcnRfbXhjX3BvcnQwX2luaXQsCisJCS5leGl0ID0gdWFydF9teGNfcG9ydDBfZXhpdCwKKwkJLmZsYWdzID0gSU1YVUFSVF9IQVZFX1JUU0NUUywKKwl9LCB7CisJCS5pbml0ID0gdWFydF9teGNfcG9ydDFfaW5pdCwKKwkJLmV4aXQgPSB1YXJ0X214Y19wb3J0MV9leGl0LAorCQkuZmxhZ3MgPSBJTVhVQVJUX0hBVkVfUlRTQ1RTLAorCX0sIHsKKwkJLmluaXQgPSB1YXJ0X214Y19wb3J0Ml9pbml0LAorCQkuZXhpdCA9IHVhcnRfbXhjX3BvcnQyX2V4aXQsCisJCS5mbGFncyA9IElNWFVBUlRfSEFWRV9SVFNDVFMsCisJfSwgeworCQkuaW5pdCA9IHVhcnRfbXhjX3BvcnQzX2luaXQsCisJCS5leGl0ID0gdWFydF9teGNfcG9ydDNfZXhpdCwKKwkJLmZsYWdzID0gSU1YVUFSVF9IQVZFX1JUU0NUUywKKwl9LCB7CisJCS5pbml0ID0gdWFydF9teGNfcG9ydDRfaW5pdCwKKwkJLmV4aXQgPSB1YXJ0X214Y19wb3J0NF9leGl0LAorCQkuZmxhZ3MgPSBJTVhVQVJUX0hBVkVfUlRTQ1RTLAorCX0sIHsKKwkJLmluaXQgPSB1YXJ0X214Y19wb3J0NV9pbml0LAorCQkuZXhpdCA9IHVhcnRfbXhjX3BvcnQ1X2V4aXQsCisJCS5mbGFncyA9IElNWFVBUlRfSEFWRV9SVFNDVFMsCisJfSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBteDI3YWRzX2JvYXJkX2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKworCWdwaW9fZmVjX2FjdGl2ZSgpOworCisJZm9yIChpID0gMDsgaSA8IDY7IGkrKykKKwkJaW14X2luaXRfdWFydChpLCAmdWFydF9wZGF0YVtpXSk7CisKKwlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhwbGF0Zm9ybV9kZXZpY2VzLCBBUlJBWV9TSVpFKHBsYXRmb3JtX2RldmljZXMpKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IG14MjdhZHNfdGltZXJfaW5pdCh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgZnJlZiA9IDI2MDAwMDAwOworCisJaWYgKChfX3Jhd19yZWFkdyhQQkNfVkVSU0lPTl9SRUcpICYgQ0tJSF8yN01IWl9CSVRfU0VUKSA9PSAwKQorCQlmcmVmID0gMjcwMDAwMDA7CisKKwlteGNfY2xvY2tzX2luaXQoZnJlZik7CisJbXhjX3RpbWVyX2luaXQoImdwdF9jbGsuMCIpOworfQorCitzdHJ1Y3Qgc3lzX3RpbWVyIG14MjdhZHNfdGltZXIgPSB7CisJLmluaXQJPSBteDI3YWRzX3RpbWVyX2luaXQsCit9OworCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIG14MjdhZHNfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbCA9IFBCQ19CQVNFX0FERFJFU1MsCisJCS5wZm4gPSBfX3BoeXNfdG9fcGZuKENTNF9CQVNFX0FERFIpLAorCQkubGVuZ3RoID0gU1pfMU0sCisJCS50eXBlID0gTVRfREVWSUNFLAorCX0sCit9OworCit2b2lkIF9faW5pdCBteDI3YWRzX21hcF9pbyh2b2lkKQoreworCW14Y19tYXBfaW8oKTsKKwlpb3RhYmxlX2luaXQobXgyN2Fkc19pb19kZXNjLCBBUlJBWV9TSVpFKG14MjdhZHNfaW9fZGVzYykpOworfQorCitNQUNISU5FX1NUQVJUKE1YMjdBRFMsICJGcmVlc2NhbGUgaS5NWDI3QURTIikKKwkvKiBtYWludGFpbmVyOiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiAqLworCS5waHlzX2lvICAgICAgICA9IEFJUElfQkFTRV9BRERSLAorCS5pb19wZ19vZmZzdCAgICA9ICgoQUlQSV9CQVNFX0FERFJfVklSVCkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcyAgICA9IFBIWVNfT0ZGU0VUICsgMHgxMDAsCisJLm1hcF9pbyAgICAgICAgID0gbXgyN2Fkc19tYXBfaW8sCisJLmluaXRfaXJxICAgICAgID0gbXhjX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUgICA9IG14MjdhZHNfYm9hcmRfaW5pdCwKKwkudGltZXIgICAgICAgICAgPSAmbXgyN2Fkc190aW1lciwKK01BQ0hJTkVfRU5ECisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgyL3BjbTAzOC5jIGIvYXJjaC9hcm0vbWFjaC1teDIvcGNtMDM4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlhMjhmNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL3BjbTAzOC5jCkBAIC0wLDAgKzEsMjA0IEBACisvKgorICogQ29weXJpZ2h0IDIwMDcgUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVsQHBlbmd1dHJvbml4LmRlPiwgUGVuZ3V0cm9uaXgKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKdWVyZ2VuIEJlaXNlcnQgKGtlcm5lbEBwZW5ndXRyb25peC5kZSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pb211eC1teDEtbXgyLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lteC11YXJ0Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQtcGNtMDM4Lmg+CisKKy8qCisgKiBQaHl0ZWMncyBwaHlDT1JFLWkuTVgyNyBjb21lcyB3aXRoIDMyTWlCIGZsYXNoLAorICogMTYgYml0IHdpZHRoCisgKi8KK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHBjbTAzOF9mbGFzaF9kYXRhID0geworCS53aWR0aCA9IDIsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHBjbTAzOF9mbGFzaF9yZXNvdXJjZSA9IHsKKwkuc3RhcnQgPSAweGMwMDAwMDAwLAorCS5lbmQgICA9IDB4YzFmZmZmZmYsCisJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBwY20wMzhfbm9yX210ZF9kZXZpY2UgPSB7CisJLm5hbWUgPSAicGh5c21hcC1mbGFzaCIsCisJLmlkID0gMCwKKwkuZGV2ID0geworCQkucGxhdGZvcm1fZGF0YSA9ICZwY20wMzhfZmxhc2hfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzID0gMSwKKwkucmVzb3VyY2UgPSAmcGNtMDM4X2ZsYXNoX3Jlc291cmNlLAorfTsKKworc3RhdGljIGludCBteGNfdWFydDBfcGluc1tdID0geworCVBFMTJfUEZfVUFSVDFfVFhELAorCVBFMTNfUEZfVUFSVDFfUlhELAorCVBFMTRfUEZfVUFSVDFfQ1RTLAorCVBFMTVfUEZfVUFSVDFfUlRTCit9OworCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQwX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDBfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQwX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9OT1JNQUwsICJVQVJUMCIpOworfQorCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQwX2V4aXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDBfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQwX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiVUFSVDAiKTsKK30KKworc3RhdGljIGludCBteGNfdWFydDFfcGluc1tdID0geworCVBFM19QRl9VQVJUMl9DVFMsCisJUEU0X1BGX1VBUlQyX1JUUywKKwlQRTZfUEZfVUFSVDJfVFhELAorCVBFN19QRl9VQVJUMl9SWEQKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDFfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MV9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDFfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQxIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDFfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MV9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDFfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMSIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0Ml9waW5zW10gPSB7IFBFMTBfUEZfVUFSVDNfQ1RTLAorCQkJCVBFOV9QRl9VQVJUM19SWEQsCisJCQkJUEUxMF9QRl9VQVJUM19DVFMsCisJCQkJUEU5X1BGX1VBUlQzX1JYRCB9OworCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQyX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDJfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQyX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9OT1JNQUwsICJVQVJUMiIpOworfQorCitzdGF0aWMgaW50IHVhcnRfbXhjX3BvcnQyX2V4aXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfdWFydDJfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX3VhcnQyX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiVUFSVDIiKTsKK30KKworc3RhdGljIHN0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgdWFydF9wZGF0YVtdID0geworCXsKKwkJLmluaXQgPSB1YXJ0X214Y19wb3J0MF9pbml0LAorCQkuZXhpdCA9IHVhcnRfbXhjX3BvcnQwX2V4aXQsCisJCS5mbGFncyA9IElNWFVBUlRfSEFWRV9SVFNDVFMsCisJfSwgeworCQkuaW5pdCA9IHVhcnRfbXhjX3BvcnQxX2luaXQsCisJCS5leGl0ID0gdWFydF9teGNfcG9ydDFfZXhpdCwKKwkJLmZsYWdzID0gSU1YVUFSVF9IQVZFX1JUU0NUUywKKwl9LCB7CisJCS5pbml0ID0gdWFydF9teGNfcG9ydDJfaW5pdCwKKwkJLmV4aXQgPSB1YXJ0X214Y19wb3J0Ml9leGl0LAorCQkuZmxhZ3MgPSBJTVhVQVJUX0hBVkVfUlRTQ1RTLAorCX0sCit9OworCitzdGF0aWMgaW50IG14Y19mZWNfcGluc1tdID0geworCVBEMF9BSU5fRkVDX1RYRDAsCisJUEQxX0FJTl9GRUNfVFhEMSwKKwlQRDJfQUlOX0ZFQ19UWEQyLAorCVBEM19BSU5fRkVDX1RYRDMsCisJUEQ0X0FPVVRfRkVDX1JYX0VSLAorCVBENV9BT1VUX0ZFQ19SWEQxLAorCVBENl9BT1VUX0ZFQ19SWEQyLAorCVBEN19BT1VUX0ZFQ19SWEQzLAorCVBEOF9BRl9GRUNfTURJTywKKwlQRDlfQUlOX0ZFQ19NREMsCisJUEQxMF9BT1VUX0ZFQ19DUlMsCisJUEQxMV9BT1VUX0ZFQ19UWF9DTEssCisJUEQxMl9BT1VUX0ZFQ19SWEQwLAorCVBEMTNfQU9VVF9GRUNfUlhfRFYsCisJUEQxNF9BT1VUX0ZFQ19DTFIsCisJUEQxNV9BT1VUX0ZFQ19DT0wsCisJUEQxNl9BSU5fRkVDX1RYX0VSLAorCVBGMjNfQUlOX0ZFQ19UWF9FTgorfTsKKworc3RhdGljIHZvaWQgZ3Bpb19mZWNfYWN0aXZlKHZvaWQpCit7CisJbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfZmVjX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y19mZWNfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIkZFQyIpOworfQorCitzdGF0aWMgdm9pZCBncGlvX2ZlY19pbmFjdGl2ZSh2b2lkKQoreworCW14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX2ZlY19waW5zLAorCQkJQVJSQVlfU0laRShteGNfZmVjX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiRkVDIik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0Zm9ybV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKKwkmcGNtMDM4X25vcl9tdGRfZGV2aWNlLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHBjbTAzOF9pbml0KHZvaWQpCit7CisJaW50IGk7CisJZ3Bpb19mZWNfYWN0aXZlKCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQorCQlpbXhfaW5pdF91YXJ0KGksICZ1YXJ0X3BkYXRhW2ldKTsKKworCXBsYXRmb3JtX2FkZF9kZXZpY2VzKHBsYXRmb3JtX2RldmljZXMsIEFSUkFZX1NJWkUocGxhdGZvcm1fZGV2aWNlcykpOworCisjaWZkZWYgQ09ORklHX01BQ0hfUENNOTcwX0JBU0VCT0FSRAorCXBjbTk3MF9iYXNlYm9hcmRfaW5pdCgpOworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBwY20wMzhfdGltZXJfaW5pdCh2b2lkKQoreworCW14Y19jbG9ja3NfaW5pdCgyNjAwMDAwMCk7CisJbXhjX3RpbWVyX2luaXQoImdwdF9jbGsuMCIpOworfQorCitzdHJ1Y3Qgc3lzX3RpbWVyIHBjbTAzOF90aW1lciA9IHsKKwkuaW5pdCA9IHBjbTAzOF90aW1lcl9pbml0LAorfTsKKworTUFDSElORV9TVEFSVChQQ00wMzgsICJwaHlDT1JFLWkuTVgyNyIpCisJLnBoeXNfaW8gICAgICAgID0gQUlQSV9CQVNFX0FERFIsCisJLmlvX3BnX29mZnN0ICAgID0gKChBSVBJX0JBU0VfQUREUl9WSVJUKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zICAgID0gUEhZU19PRkZTRVQgKyAweDEwMCwKKwkubWFwX2lvICAgICAgICAgPSBteGNfbWFwX2lvLAorCS5pbml0X2lycSAgICAgICA9IG14Y19pbml0X2lycSwKKwkuaW5pdF9tYWNoaW5lICAgPSBwY20wMzhfaW5pdCwKKwkudGltZXIgICAgICAgICAgPSAmcGNtMDM4X3RpbWVyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgyL3BjbTk3MC1iYXNlYm9hcmQuYyBiL2FyY2gvYXJtL21hY2gtbXgyL3BjbTk3MC1iYXNlYm9hcmQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjhhYzRkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvcGNtOTcwLWJhc2Vib2FyZC5jCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVlcmdlbiBCZWlzZXJ0IChrZXJuZWxAcGVuZ3V0cm9uaXguZGUpCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorCisvKgorICogc3lzdGVtIGluaXQgZm9yIGJhc2Vib2FyZCB1c2FnZS4gV2lsbCBiZSBjYWxsZWQgYnkgcGNtMDM4IGluaXQuCisgKgorICogQWRkIHBsYXRmb3JtIGRldmljZXMgcHJlc2VudCBvbiB0aGlzIGJhc2Vib2FyZCBhbmQgaW5pdAorICogdGhlbSBmcm9tIENQVSBzaWRlIGFzIGZhciBhcyByZXF1aXJlZCB0byB1c2UgdGhlbSBsYXRlciBvbgorICovCit2b2lkIF9faW5pdCBwY205NzBfYmFzZWJvYXJkX2luaXQodm9pZCkKK3sKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgyL3NlcmlhbC5jIGIvYXJjaC9hcm0vbWFjaC1teDIvc2VyaWFsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTcwYzAyYgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL3NlcmlhbC5jCkBAIC0wLDAgKzEsMTc3IEBACisvKgorICogQ29weXJpZ2h0IDIwMDYtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW14LXVhcnQuaD4KKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0MFtdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDFfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDFfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUMSwKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDEsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2UwID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSAwLAorCS5yZXNvdXJjZSA9IHVhcnQwLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0MCksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQxW10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUMl9CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUMl9CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQyLAorCQkuZW5kID0gTVhDX0lOVF9VQVJUMiwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTEgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDEsCisJLnJlc291cmNlID0gdWFydDEsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQxKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDJbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQzX0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQzX0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDMsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQzLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlMiA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gMiwKKwkucmVzb3VyY2UgPSB1YXJ0MiwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDIpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0M1tdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDRfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDRfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUNCwKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDQsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2UzID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSAzLAorCS5yZXNvdXJjZSA9IHVhcnQzLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0MyksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQ0W10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUNV9CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUNV9CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQ1LAorCQkuZW5kID0gTVhDX0lOVF9VQVJUNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTQgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDQsCisJLnJlc291cmNlID0gdWFydDQsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQ0KSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDVbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQ2X0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQ2X0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDYsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQ2LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlNSA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gNSwKKwkucmVzb3VyY2UgPSB1YXJ0NSwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDUpLAorfTsKKworLyoKKyAqIFJlZ2lzdGVyIG9ubHkgdGhvc2UgVUFSVHMgdGhhdCBwaHlzaWNhbGx5IGV4aXN0cworICovCitpbnQgX19pbml0IGlteF9pbml0X3VhcnQoaW50IHVhcnRfbm8sIHN0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgKnBkYXRhKQoreworCXN3aXRjaCAodWFydF9ubykgeworCWNhc2UgMDoKKwkJbXhjX3VhcnRfZGV2aWNlMC5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTApOworCQlicmVhazsKKwljYXNlIDE6CisJCW14Y191YXJ0X2RldmljZTEuZGV2LnBsYXRmb3JtX2RhdGEgPSBwZGF0YTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZteGNfdWFydF9kZXZpY2UxKTsKKwkJYnJlYWs7CisjaWZuZGVmIENPTkZJR19NWENfSVJEQQorCWNhc2UgMjoKKwkJbXhjX3VhcnRfZGV2aWNlMi5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTIpOworCQlicmVhazsKKyNlbmRpZgorCWNhc2UgMzoKKwkJbXhjX3VhcnRfZGV2aWNlMy5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTMpOworCQlicmVhazsKKwljYXNlIDQ6CisJCW14Y191YXJ0X2RldmljZTQuZGV2LnBsYXRmb3JtX2RhdGEgPSBwZGF0YTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZteGNfdWFydF9kZXZpY2U0KTsKKwkJYnJlYWs7CisJY2FzZSA1OgorCQlteGNfdWFydF9kZXZpY2U1LmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlNSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvc3lzdGVtLmMgYi9hcmNoL2FybS9tYWNoLW14Mi9zeXN0ZW0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTMwNDY0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvc3lzdGVtLmMKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBBUk0gTGltaXRlZAorICogQ29weXJpZ2h0IChDKSAyMDAwIERlZXAgQmx1ZSBTb2x1dGlvbnMgTHRkCisgKiBDb3B5cmlnaHQgMjAwNi0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL3Byb2MtZm5zLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgorCisvKgorICogUHV0IHRoZSBDUFUgaW50byBpZGxlIG1vZGUuIEl0IGlzIGNhbGxlZCBieSBkZWZhdWx0X2lkbGUoKQorICogaW4gcHJvY2Vzcy5jIGZpbGUuCisgKi8KK3ZvaWQgYXJjaF9pZGxlKHZvaWQpCit7CisJLyoKKwkgKiBUaGlzIHNob3VsZCBkbyBhbGwgdGhlIGNsb2NrIHN3aXRjaGluZworCSAqIGFuZCB3YWl0IGZvciBpbnRlcnJ1cHQgdHJpY2tzLgorCSAqLworCWNwdV9kb19pZGxlKCk7Cit9CisKKyNkZWZpbmUgV0RPR19XQ1JfUkVHICAgICAgICAgICAgICAgICAgICBJT19BRERSRVNTKFdET0dfQkFTRV9BRERSKQorI2RlZmluZSBXRE9HX1dDUl9TUlMgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCisKKy8qCisgKiBSZXNldCB0aGUgc3lzdGVtLiBJdCBpcyBjYWxsZWQgYnkgbWFjaGluZV9yZXN0YXJ0KCkuCisgKi8KK3ZvaWQgYXJjaF9yZXNldChjaGFyIG1vZGUpCit7CisJc3RydWN0IGNsayAqY2xrOworCisJY2xrID0gY2xrX2dldChOVUxMLCAid2RvZ19jbGsiKTsKKwlpZiAoIWNsaykgeworCQlwcmludGsoS0VSTl9FUlIiQ2Fubm90IGFjdGl2YXRlIHRoZSB3YXRjaGRvZy4gR2l2aW5nIHVwXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWNsa19lbmFibGUoY2xrKTsKKworCS8qIEFzc2VydCBTUlMgc2lnbmFsICovCisJX19yYXdfd3JpdGV3KF9fcmF3X3JlYWR3KFdET0dfV0NSX1JFRykgJiB+V0RPR19XQ1JfU1JTLCBXRE9HX1dDUl9SRUcpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDMvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtbXgzL0tjb25maWcKaW5kZXggNWZlODYwNi4uZGI5NDMxZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1teDMvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLW14My9LY29uZmlnCkBAIC04LDUgKzgsMTggQEAKIAkgIEluY2x1ZGUgc3VwcG9ydCBmb3IgTVgzMUFEUyBwbGF0Zm9ybS4gVGhpcyBpbmNsdWRlcyBzcGVjaWZpYwogCSAgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBib2FyZCBhbmQgaXRzIHBlcmlwaGVyYWxzLgogCitjb25maWcgTUFDSF9QQ00wMzcKKwlib29sICJTdXBwb3J0IFBoeXRlYyBwY20wMzcgcGxhdGZvcm1zIgorCWhlbHAKKwkgIEluY2x1ZGUgc3VwcG9ydCBmb3IgUGh5dGVjIHBjbTAzNyBwbGF0Zm9ybS4gVGhpcyBpbmNsdWRlcworCSAgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBib2FyZCBhbmQgaXRzIHBlcmlwaGVyYWxzLgorCitjb25maWcgTUFDSF9NWDMxTElURQorCWJvb2wgIlN1cHBvcnQgTVgzMSBMSVRFS0lUIChMb2dpY1BEKSIKKwlkZWZhdWx0IG4KKwloZWxwCisJICBJbmNsdWRlIHN1cHBvcnQgZm9yIE1YMzEgTElURUtJVCBwbGF0Zm9ybS4gVGhpcyBpbmNsdWRlcyBzcGVjaWZpYworCSAgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBib2FyZCBhbmQgaXRzIHBlcmlwaGVyYWxzLgorCiBlbmRtZW51CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1teDMvTWFrZWZpbGUKaW5kZXggY2JlYzk5Ny4uOGIyMWFiYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1teDMvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1teDMvTWFrZWZpbGUKQEAgLTQsNSArNCw3IEBACiAKICMgT2JqZWN0IGZpbGUgbGlzdHMuCiAKLW9iai15CQkJOj0gbW0ubyB0aW1lLm8KK29iai15CQkJOj0gbW0ubyBjbG9jay5vIGRldmljZXMubyBpb211eC5vCiBvYmotJChDT05GSUdfTUFDSF9NWDMxQURTKQkrPSBteDMxYWRzLm8KK29iai0kKENPTkZJR19NQUNIX01YMzFMSVRFKQkrPSBteDMxbGl0ZS5vCitvYmotJChDT05GSUdfTUFDSF9QQ00wMzcpCSs9IHBjbTAzNy5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My9jbG9jay5jIGIvYXJjaC9hcm0vbWFjaC1teDMvY2xvY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjM2MzU5Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDMvY2xvY2suYwpAQCAtMCwwICsxLDExNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNS0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggYnkgU2FzY2hhIEhhdWVyIDxrZXJuZWxAcGVuZ3V0cm9uaXguZGU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2Nsb2NrLmg+CisjaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CisKKyNpbmNsdWRlICJjcm1fcmVncy5oIgorCisjZGVmaW5lIFBSRV9ESVZfTUlOX0ZSRVEgICAgMTAwMDAwMDAgLyogTWluaW11bSBGcmVxdWVuY3kgYWZ0ZXIgUHJlZGl2aWRlciAqLworCitzdGF0aWMgdm9pZCBfX2NhbGNfcHJlX3Bvc3RfZGl2aWRlcnModTMyIGRpdiwgdTMyICpwcmUsIHUzMiAqcG9zdCkKK3sKKwl1MzIgbWluX3ByZSwgdGVtcF9wcmUsIG9sZF9lcnIsIGVycjsKKworCWlmIChkaXYgPj0gNTEyKSB7CisJCSpwcmUgPSA4OworCQkqcG9zdCA9IDY0OworCX0gZWxzZSBpZiAoZGl2ID49IDY0KSB7CisJCW1pbl9wcmUgPSAoZGl2IC0gMSkgLyA2NCArIDE7CisJCW9sZF9lcnIgPSA4OworCQlmb3IgKHRlbXBfcHJlID0gODsgdGVtcF9wcmUgPj0gbWluX3ByZTsgdGVtcF9wcmUtLSkgeworCQkJZXJyID0gZGl2ICUgdGVtcF9wcmU7CisJCQlpZiAoZXJyID09IDApIHsKKwkJCQkqcHJlID0gdGVtcF9wcmU7CisJCQkJYnJlYWs7CisJCQl9CisJCQllcnIgPSB0ZW1wX3ByZSAtIGVycjsKKwkJCWlmIChlcnIgPCBvbGRfZXJyKSB7CisJCQkJb2xkX2VyciA9IGVycjsKKwkJCQkqcHJlID0gdGVtcF9wcmU7CisJCQl9CisJCX0KKwkJKnBvc3QgPSAoZGl2ICsgKnByZSAtIDEpIC8gKnByZTsKKwl9IGVsc2UgaWYgKGRpdiA8PSA4KSB7CisJCSpwcmUgPSBkaXY7CisJCSpwb3N0ID0gMTsKKwl9IGVsc2UgeworCQkqcHJlID0gMTsKKwkJKnBvc3QgPSBkaXY7CisJfQorfQorCitzdGF0aWMgc3RydWN0IGNsayBtY3VfcGxsX2NsazsKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1jdV9tYWluX2NsazsKK3N0YXRpYyBzdHJ1Y3QgY2xrIHVzYl9wbGxfY2xrOworc3RhdGljIHN0cnVjdCBjbGsgc2VyaWFsX3BsbF9jbGs7CitzdGF0aWMgc3RydWN0IGNsayBpcGdfY2xrOworc3RhdGljIHN0cnVjdCBjbGsgY2tpaF9jbGs7CitzdGF0aWMgc3RydWN0IGNsayBhaGJfY2xrOworCitzdGF0aWMgaW50IF9jbGtfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoY2xrLT5lbmFibGVfcmVnKTsKKwlyZWcgfD0gMyA8PCBjbGstPmVuYWJsZV9zaGlmdDsKKwlfX3Jhd193cml0ZWwocmVnLCBjbGstPmVuYWJsZV9yZWcpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKGNsay0+ZW5hYmxlX3JlZyk7CisJcmVnICY9IH4oMyA8PCBjbGstPmVuYWJsZV9zaGlmdCk7CisJX19yYXdfd3JpdGVsKHJlZywgY2xrLT5lbmFibGVfcmVnKTsKK30KKworc3RhdGljIHZvaWQgX2Nsa19lbWlfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKGNsay0+ZW5hYmxlX3JlZyk7CisJcmVnICY9IH4oMyA8PCBjbGstPmVuYWJsZV9zaGlmdCk7CisJcmVnIHw9ICgxIDw8IGNsay0+ZW5hYmxlX3NoaWZ0KTsKKwlfX3Jhd193cml0ZWwocmVnLCBjbGstPmVuYWJsZV9yZWcpOworfQorCitzdGF0aWMgaW50IF9jbGtfcGxsX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiByZWc7CisJc2lnbmVkIGxvbmcgcGQgPSAxOwkvKiBQcmUtZGl2aWRlciAqLworCXNpZ25lZCBsb25nIG1maTsJLyogTXVsdGlwbGljYXRpb24gRmFjdG9yIChJbnRlZ2VyIHBhcnQpICovCisJc2lnbmVkIGxvbmcgbWZuOwkvKiBNdWx0aXBsaWNhdGlvbiBGYWN0b3IgKEludGVnZXIgcGFydCkgKi8KKwlzaWduZWQgbG9uZyBtZmQ7CS8qIE11bHRpcGxpY2F0aW9uIEZhY3RvciAoRGVub21pbmF0b3IgUGFydCkgKi8KKwlzaWduZWQgbG9uZyB0bXA7CisJdTMyIHJlZl9mcmVxID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCXdoaWxlICgoKHJlZl9mcmVxIC8gcGQpICogMTApID4gcmF0ZSkKKwkJcGQrKzsKKworCWlmICgocmVmX2ZyZXEgLyBwZCkgPCBQUkVfRElWX01JTl9GUkVRKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIHRoZSByZWZfZnJlcS8yIGluIHRoZSBmb2xsb3dpbmcgaXMgdG8gcm91bmQgdXAgKi8KKwltZmkgPSAoKChyYXRlIC8gMikgKiBwZCkgKyAocmVmX2ZyZXEgLyAyKSkgLyByZWZfZnJlcTsKKwlpZiAobWZpIDwgNSB8fCBtZmkgPiAxNSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBwaWNrIGEgbWZkIHZhbHVlIHRoYXQgd2lsbCB3b3JrCisJICogdGhlbiBzb2x2ZSBmb3IgbWZuICovCisJbWZkID0gcmVmX2ZyZXEgLyA1MDAwMDsKKworCS8qCisJICogICAgICAgICAgcGxsX2ZyZXEgKiBwZCAqIG1mZAorCSAqICAgbWZuID0gLS0tLS0tLS0tLS0tLS0tLS0tLS0gIC0gIChtZmkgKiBtZmQpCisJICogICAgICAgICAgIDIgKiByZWZfZnJlcQorCSAqLworCS8qIHRoZSB0bXAvMiBpcyBmb3Igcm91bmRpbmcgKi8KKwl0bXAgPSByZWZfZnJlcSAvIDEwMDAwOworCW1mbiA9CisJICAgICgoKCgoKHJhdGUgLyAyKSArICh0bXAgLyAyKSkgLyB0bXApICogcGQpICogbWZkKSAvIDEwMDAwKSAtCisJICAgIChtZmkgKiBtZmQpOworCisJbWZuID0gbWZuICYgMHgzZmY7CisJcGQtLTsKKwltZmQtLTsKKworCS8qIENoYW5nZSB0aGUgUGxsIHZhbHVlICovCisJcmVnID0gKG1maSA8PCBNWENfQ0NNX1BDVExfTUZJX09GRlNFVCkgfAorCSAgICAobWZuIDw8IE1YQ19DQ01fUENUTF9NRk5fT0ZGU0VUKSB8CisJICAgIChtZmQgPDwgTVhDX0NDTV9QQ1RMX01GRF9PRkZTRVQpIHwgKHBkIDw8IE1YQ19DQ01fUENUTF9QRF9PRkZTRVQpOworCisJaWYgKGNsayA9PSAmbWN1X3BsbF9jbGspCisJCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fTVBDVEwpOworCWVsc2UgaWYgKGNsayA9PSAmdXNiX3BsbF9jbGspCisJCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fVVBDVEwpOworCWVsc2UgaWYgKGNsayA9PSAmc2VyaWFsX3BsbF9jbGspCisJCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fU1JQQ1RMKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX3BsbF9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJbG9uZyBtZmksIG1mbiwgbWZkLCBwZGYsIHJlZl9jbGssIG1mbl9hYnM7CisJdW5zaWduZWQgbG9uZyByZWcsIGNjbXI7CisJczY0IHRlbXA7CisJdW5zaWduZWQgaW50IHByY3M7CisKKwljY21yID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DQ01SKTsKKwlwcmNzID0gKGNjbXIgJiBNWENfQ0NNX0NDTVJfUFJDU19NQVNLKSA+PiBNWENfQ0NNX0NDTVJfUFJDU19PRkZTRVQ7CisJaWYgKHByY3MgPT0gMHgxKQorCQlyZWZfY2xrID0gQ0tJTF9DTEtfRlJFUSAqIDEwMjQ7CisJZWxzZQorCQlyZWZfY2xrID0gY2xrX2dldF9yYXRlKCZja2loX2Nsayk7CisKKwlpZiAoY2xrID09ICZtY3VfcGxsX2NsaykgeworCQlpZiAoKGNjbXIgJiBNWENfQ0NNX0NDTVJfTVBFKSA9PSAwKQorCQkJcmV0dXJuIHJlZl9jbGs7CisJCWlmICgoY2NtciAmIE1YQ19DQ01fQ0NNUl9NRFMpICE9IDApCisJCQlyZXR1cm4gcmVmX2NsazsKKwkJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9NUENUTCk7CisJfSBlbHNlIGlmIChjbGsgPT0gJnVzYl9wbGxfY2xrKQorCQlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX1VQQ1RMKTsKKwllbHNlIGlmIChjbGsgPT0gJnNlcmlhbF9wbGxfY2xrKQorCQlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX1NSUENUTCk7CisJZWxzZSB7CisJCUJVRygpOworCQlyZXR1cm4gMDsKKwl9CisKKwlwZGYgPSAocmVnICYgTVhDX0NDTV9QQ1RMX1BEX01BU0spID4+IE1YQ19DQ01fUENUTF9QRF9PRkZTRVQ7CisJbWZkID0gKHJlZyAmIE1YQ19DQ01fUENUTF9NRkRfTUFTSykgPj4gTVhDX0NDTV9QQ1RMX01GRF9PRkZTRVQ7CisJbWZpID0gKHJlZyAmIE1YQ19DQ01fUENUTF9NRklfTUFTSykgPj4gTVhDX0NDTV9QQ1RMX01GSV9PRkZTRVQ7CisJbWZpID0gKG1maSA8PSA1KSA/IDUgOiBtZmk7CisJbWZuID0gbWZuX2FicyA9IHJlZyAmIE1YQ19DQ01fUENUTF9NRk5fTUFTSzsKKworCWlmIChtZm4gPj0gMHgyMDApIHsKKwkJbWZuIHw9IDB4RkZGRkZFMDA7CisJCW1mbl9hYnMgPSAtbWZuOworCX0KKworCXJlZl9jbGsgKj0gMjsKKwlyZWZfY2xrIC89IHBkZiArIDE7CisKKwl0ZW1wID0gKHU2NCkgcmVmX2NsayAqIG1mbl9hYnM7CisJZG9fZGl2KHRlbXAsIG1mZCArIDEpOworCWlmIChtZm4gPCAwKQorCQl0ZW1wID0gLXRlbXA7CisJdGVtcCA9IChyZWZfY2xrICogbWZpKSArIHRlbXA7CisKKwlyZXR1cm4gdGVtcDsKK30KKworc3RhdGljIGludCBfY2xrX3VzYl9wbGxfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DQ01SKTsKKwlyZWcgfD0gTVhDX0NDTV9DQ01SX1VQRTsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX0NDTVIpOworCisJLyogTm8gbG9jayBiaXQgb24gTVgzMSwgc28gdXNpbmcgbWF4IHRpbWUgZnJvbSBzcGVjICovCisJdWRlbGF5KDgwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3VzYl9wbGxfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fQ0NNUik7CisJcmVnICY9IH5NWENfQ0NNX0NDTVJfVVBFOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fQ0NNUik7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19zZXJpYWxfcGxsX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fQ0NNUik7CisJcmVnIHw9IE1YQ19DQ01fQ0NNUl9TUEU7CisJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9DQ01SKTsKKworCS8qIE5vIGxvY2sgYml0IG9uIE1YMzEsIHNvIHVzaW5nIG1heCB0aW1lIGZyb20gc3BlYyAqLworCXVkZWxheSg4MCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19zZXJpYWxfcGxsX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NDTVIpOworCXJlZyAmPSB+TVhDX0NDTV9DQ01SX1NQRTsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX0NDTVIpOworfQorCisjZGVmaW5lIFBEUjAobWFzaywgb2ZmKSAoKF9fcmF3X3JlYWRsKE1YQ19DQ01fUERSMCkgJiBtYXNrKSA+PiBvZmYpCisjZGVmaW5lIFBEUjEobWFzaywgb2ZmKSAoKF9fcmF3X3JlYWRsKE1YQ19DQ01fUERSMSkgJiBtYXNrKSA+PiBvZmYpCisjZGVmaW5lIFBEUjIobWFzaywgb2ZmKSAoKF9fcmF3X3JlYWRsKE1YQ19DQ01fUERSMikgJiBtYXNrKSA+PiBvZmYpCisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfbWN1X21haW5fZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiBwbWNyMCA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fUE1DUjApOworCisJaWYgKChwbWNyMCAmIE1YQ19DQ01fUE1DUjBfREZTVVAxKSA9PSBNWENfQ0NNX1BNQ1IwX0RGU1VQMV9TUExMKQorCQlyZXR1cm4gY2xrX2dldF9yYXRlKCZzZXJpYWxfcGxsX2Nsayk7CisJZWxzZQorCQlyZXR1cm4gY2xrX2dldF9yYXRlKCZtY3VfcGxsX2Nsayk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfaGNsa19nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBtYXhfcGRmOworCisJbWF4X3BkZiA9IFBEUjAoTVhDX0NDTV9QRFIwX01BWF9QT0RGX01BU0ssCisJCSAgICAgICBNWENfQ0NNX1BEUjBfTUFYX1BPREZfT0ZGU0VUKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChtYXhfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfaXBnX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIGlwZ19wZGY7CisKKwlpcGdfcGRmID0gUERSMChNWENfQ0NNX1BEUjBfSVBHX1BPREZfTUFTSywKKwkJICAgICAgIE1YQ19DQ01fUERSMF9JUEdfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKGlwZ19wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19uZmNfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgbmZjX3BkZjsKKworCW5mY19wZGYgPSBQRFIwKE1YQ19DQ01fUERSMF9ORkNfUE9ERl9NQVNLLAorCQkgICAgICAgTVhDX0NDTV9QRFIwX05GQ19QT0RGX09GRlNFVCk7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAobmZjX3BkZiArIDEpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2hzcF9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBoc3BfcGRmOworCisJaHNwX3BkZiA9IFBEUjAoTVhDX0NDTV9QRFIwX0hTUF9QT0RGX01BU0ssCisJCSAgICAgICBNWENfQ0NNX1BEUjBfSFNQX1BPREZfT0ZGU0VUKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChoc3BfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfdXNiX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHVzYl9wZGYsIHVzYl9wcmVwZGY7CisKKwl1c2JfcGRmID0gUERSMShNWENfQ0NNX1BEUjFfVVNCX1BPREZfTUFTSywKKwkJICAgICAgIE1YQ19DQ01fUERSMV9VU0JfUE9ERl9PRkZTRVQpOworCXVzYl9wcmVwZGYgPSBQRFIxKE1YQ19DQ01fUERSMV9VU0JfUFJERl9NQVNLLAorCQkJICBNWENfQ0NNX1BEUjFfVVNCX1BSREZfT0ZGU0VUKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvICh1c2JfcHJlcGRmICsgMSkgLyAodXNiX3BkZiArIDEpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2NzaV9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZywgcHJlLCBwb3N0OworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9QRFIwKTsKKwlwcmUgPSAocmVnICYgTVhDX0NDTV9QRFIwX0NTSV9QUkRGX01BU0spID4+CisJICAgIE1YQ19DQ01fUERSMF9DU0lfUFJERl9PRkZTRVQ7CisJcHJlKys7CisJcG9zdCA9IChyZWcgJiBNWENfQ0NNX1BEUjBfQ1NJX1BPREZfTUFTSykgPj4KKwkgICAgTVhDX0NDTV9QRFIwX0NTSV9QT0RGX09GRlNFVDsKKwlwb3N0Kys7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAocHJlICogcG9zdCk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfY3NpX3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHByZSwgcG9zdCwgcGFyZW50ID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwl1MzIgZGl2ID0gcGFyZW50IC8gcmF0ZTsKKworCWlmIChwYXJlbnQgJSByYXRlKQorCQlkaXYrKzsKKworCV9fY2FsY19wcmVfcG9zdF9kaXZpZGVycyhkaXYsICZwcmUsICZwb3N0KTsKKworCXJldHVybiBwYXJlbnQgLyAocHJlICogcG9zdCk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19jc2lfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHJlZywgZGl2LCBwcmUsIHBvc3QsIHBhcmVudCA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlkaXYgPSBwYXJlbnQgLyByYXRlOworCisJaWYgKChwYXJlbnQgLyBkaXYpICE9IHJhdGUpCisJCXJldHVybiAtRUlOVkFMOworCisJX19jYWxjX3ByZV9wb3N0X2RpdmlkZXJzKGRpdiwgJnByZSwgJnBvc3QpOworCisJLyogU2V0IENTSSBjbG9jayBkaXZpZGVyICovCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9QRFIwKSAmCisJICAgIH4oTVhDX0NDTV9QRFIwX0NTSV9QT0RGX01BU0sgfCBNWENfQ0NNX1BEUjBfQ1NJX1BSREZfTUFTSyk7CisJcmVnIHw9IChwb3N0IC0gMSkgPDwgTVhDX0NDTV9QRFIwX0NTSV9QT0RGX09GRlNFVDsKKwlyZWcgfD0gKHByZSAtIDEpIDw8IE1YQ19DQ01fUERSMF9DU0lfUFJERl9PRkZTRVQ7CisJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9QRFIwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX3Blcl9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBwZXJfcGRmOworCisJcGVyX3BkZiA9IFBEUjAoTVhDX0NDTV9QRFIwX1BFUl9QT0RGX01BU0ssCisJCSAgICAgICBNWENfQ0NNX1BEUjBfUEVSX1BPREZfT0ZGU0VUKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChwZXJfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfc3NpMV9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBzc2kxX3BkZiwgc3NpMV9wcmVwZGY7CisKKwlzc2kxX3BkZiA9IFBEUjEoTVhDX0NDTV9QRFIxX1NTSTFfUE9ERl9NQVNLLAorCQkJTVhDX0NDTV9QRFIxX1NTSTFfUE9ERl9PRkZTRVQpOworCXNzaTFfcHJlcGRmID0gUERSMShNWENfQ0NNX1BEUjFfU1NJMV9QUkVfUE9ERl9NQVNLLAorCQkJICAgTVhDX0NDTV9QRFIxX1NTSTFfUFJFX1BPREZfT0ZGU0VUKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChzc2kxX3ByZXBkZiArIDEpIC8gKHNzaTFfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfc3NpMl9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBzc2kyX3BkZiwgc3NpMl9wcmVwZGY7CisKKwlzc2kyX3BkZiA9IFBEUjEoTVhDX0NDTV9QRFIxX1NTSTJfUE9ERl9NQVNLLAorCQkJTVhDX0NDTV9QRFIxX1NTSTJfUE9ERl9PRkZTRVQpOworCXNzaTJfcHJlcGRmID0gUERSMShNWENfQ0NNX1BEUjFfU1NJMl9QUkVfUE9ERl9NQVNLLAorCQkJICAgTVhDX0NDTV9QRFIxX1NTSTJfUFJFX1BPREZfT0ZGU0VUKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChzc2kyX3ByZXBkZiArIDEpIC8gKHNzaTJfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfZmlyaV9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBmaXJpX3BkZiwgZmlyaV9wcmVwZGY7CisKKwlmaXJpX3BkZiA9IFBEUjEoTVhDX0NDTV9QRFIxX0ZJUklfUE9ERl9NQVNLLAorCQkJTVhDX0NDTV9QRFIxX0ZJUklfUE9ERl9PRkZTRVQpOworCWZpcmlfcHJlcGRmID0gUERSMShNWENfQ0NNX1BEUjFfRklSSV9QUkVfUE9ERl9NQVNLLAorCQkJICAgTVhDX0NDTV9QRFIxX0ZJUklfUFJFX1BPREZfT0ZGU0VUKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChmaXJpX3ByZXBkZiArIDEpIC8gKGZpcmlfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfZmlyaV9yb3VuZF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiBwcmUsIHBvc3Q7CisJdTMyIHBhcmVudCA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisJdTMyIGRpdiA9IHBhcmVudCAvIHJhdGU7CisKKwlpZiAocGFyZW50ICUgcmF0ZSkKKwkJZGl2Kys7CisKKwlfX2NhbGNfcHJlX3Bvc3RfZGl2aWRlcnMoZGl2LCAmcHJlLCAmcG9zdCk7CisKKwlyZXR1cm4gcGFyZW50IC8gKHByZSAqIHBvc3QpOworCit9CisKK3N0YXRpYyBpbnQgX2Nsa19maXJpX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiByZWcsIGRpdiwgcHJlLCBwb3N0LCBwYXJlbnQgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJZGl2ID0gcGFyZW50IC8gcmF0ZTsKKworCWlmICgocGFyZW50IC8gZGl2KSAhPSByYXRlKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCV9fY2FsY19wcmVfcG9zdF9kaXZpZGVycyhkaXYsICZwcmUsICZwb3N0KTsKKworCS8qIFNldCBGSVJJIGNsb2NrIGRpdmlkZXIgKi8KKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX1BEUjEpICYKKwkgICAgfihNWENfQ0NNX1BEUjFfRklSSV9QT0RGX01BU0sgfCBNWENfQ0NNX1BEUjFfRklSSV9QUkVfUE9ERl9NQVNLKTsKKwlyZWcgfD0gKHByZSAtIDEpIDw8IE1YQ19DQ01fUERSMV9GSVJJX1BSRV9QT0RGX09GRlNFVDsKKwlyZWcgfD0gKHBvc3QgLSAxKSA8PCBNWENfQ0NNX1BEUjFfRklSSV9QT0RGX09GRlNFVDsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX1BEUjEpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfbWJ4X2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIDI7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfbXN0aWNrMV9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBtc3RpX3BkZjsKKworCW1zdGlfcGRmID0gUERSMihNWENfQ0NNX1BEUjJfTVNUMV9QREZfTUFTSywKKwkJCU1YQ19DQ01fUERSMl9NU1QxX1BERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKG1zdGlfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfbXN0aWNrMl9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBtc3RpX3BkZjsKKworCW1zdGlfcGRmID0gUERSMihNWENfQ0NNX1BEUjJfTVNUMl9QREZfTUFTSywKKwkJCU1YQ19DQ01fUERSMl9NU1QyX1BERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKG1zdGlfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGNraWhfcmF0ZTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX2NraWhfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXJldHVybiBja2loX3JhdGU7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNraWhfY2xrID0geworCS5uYW1lID0gImNraWgiLAorCS5nZXRfcmF0ZSA9IGNsa19ja2loX2dldF9yYXRlLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX2NraWxfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXJldHVybiBDS0lMX0NMS19GUkVROworfQorCitzdGF0aWMgc3RydWN0IGNsayBja2lsX2NsayA9IHsKKwkubmFtZSA9ICJja2lsIiwKKwkuZ2V0X3JhdGUgPSBjbGtfY2tpbF9nZXRfcmF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1jdV9wbGxfY2xrID0geworCS5uYW1lID0gIm1jdV9wbGwiLAorCS5wYXJlbnQgPSAmY2tpaF9jbGssCisJLnNldF9yYXRlID0gX2Nsa19wbGxfc2V0X3JhdGUsCisJLmdldF9yYXRlID0gX2Nsa19wbGxfZ2V0X3JhdGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBtY3VfbWFpbl9jbGsgPSB7CisJLm5hbWUgPSAibWN1X21haW5fY2xrIiwKKwkucGFyZW50ID0gJm1jdV9wbGxfY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfbWN1X21haW5fZ2V0X3JhdGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZXJpYWxfcGxsX2NsayA9IHsKKwkubmFtZSA9ICJzZXJpYWxfcGxsIiwKKwkucGFyZW50ID0gJmNraWhfY2xrLAorCS5zZXRfcmF0ZSA9IF9jbGtfcGxsX3NldF9yYXRlLAorCS5nZXRfcmF0ZSA9IF9jbGtfcGxsX2dldF9yYXRlLAorCS5lbmFibGUgPSBfY2xrX3NlcmlhbF9wbGxfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19zZXJpYWxfcGxsX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayB1c2JfcGxsX2NsayA9IHsKKwkubmFtZSA9ICJ1c2JfcGxsIiwKKwkucGFyZW50ID0gJmNraWhfY2xrLAorCS5zZXRfcmF0ZSA9IF9jbGtfcGxsX3NldF9yYXRlLAorCS5nZXRfcmF0ZSA9IF9jbGtfcGxsX2dldF9yYXRlLAorCS5lbmFibGUgPSBfY2xrX3VzYl9wbGxfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa191c2JfcGxsX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBhaGJfY2xrID0geworCS5uYW1lID0gImFoYl9jbGsiLAorCS5wYXJlbnQgPSAmbWN1X21haW5fY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfaGNsa19nZXRfcmF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHBlcl9jbGsgPSB7CisJLm5hbWUgPSAicGVyX2NsayIsCisJLnBhcmVudCA9ICZ1c2JfcGxsX2NsaywKKwkuZ2V0X3JhdGUgPSBfY2xrX3Blcl9nZXRfcmF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHBlcmNsa19jbGsgPSB7CisJLm5hbWUgPSAicGVyY2xrX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY3NwaV9jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gImNzcGlfY2xrIiwKKwkgLmlkID0gMCwKKwkgLnBhcmVudCA9ICZpcGdfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IyLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX0NTUEkxX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gImNzcGlfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZpcGdfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IyLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX0NTUEkyX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gImNzcGlfY2xrIiwKKwkgLmlkID0gMiwKKwkgLnBhcmVudCA9ICZpcGdfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0NTUEkzX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGlwZ19jbGsgPSB7CisJLm5hbWUgPSAiaXBnX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfaXBnX2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZW1pX2NsayA9IHsKKwkubmFtZSA9ICJlbWlfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IyLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjJfRU1JX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZW1pX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBncHRfY2xrID0geworCS5uYW1lID0gImdwdF9jbGsiLAorCS5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9HUFRfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcHdtX2NsayA9IHsKKwkubmFtZSA9ICJwd21fY2xrIiwKKwkucGFyZW50ID0gJnBlcmNsa19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfUFdNX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGVwaXRfY2xrW10gPSB7CisJeworCSAubmFtZSA9ICJlcGl0X2NsayIsCisJIC5pZCA9IDAsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9FUElUMV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJlcGl0X2NsayIsCisJIC5pZCA9IDEsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9FUElUMl9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBuZmNfY2xrID0geworCS5uYW1lID0gIm5mY19jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZ2V0X3JhdGUgPSBfY2xrX25mY19nZXRfcmF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNjY19jbGsgPSB7CisJLm5hbWUgPSAic2NjX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgaXB1X2NsayA9IHsKKwkubmFtZSA9ICJpcHVfY2xrIiwKKwkucGFyZW50ID0gJm1jdV9tYWluX2NsaywKKwkuZ2V0X3JhdGUgPSBfY2xrX2hzcF9nZXRfcmF0ZSwKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9JUFVfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsga3BwX2NsayA9IHsKKwkubmFtZSA9ICJrcHBfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfS1BQX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHdkb2dfY2xrID0geworCS5uYW1lID0gIndkb2dfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfV0RPR19PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9Oworc3RhdGljIHN0cnVjdCBjbGsgcnRjX2NsayA9IHsKKwkubmFtZSA9ICJydGNfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfUlRDX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHVzYl9jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gInVzYl9jbGsiLAorCSAucGFyZW50ID0gJnVzYl9wbGxfY2xrLAorCSAuZ2V0X3JhdGUgPSBfY2xrX3VzYl9nZXRfcmF0ZSx9LAorCXsKKwkgLm5hbWUgPSAidXNiX2FoYl9jbGsiLAorCSAucGFyZW50ID0gJmFoYl9jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfVVNCT1RHX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNzaV9jbGsgPSB7CisJLm5hbWUgPSAiY3NpX2NsayIsCisJLnBhcmVudCA9ICZzZXJpYWxfcGxsX2NsaywKKwkuZ2V0X3JhdGUgPSBfY2xrX2NzaV9nZXRfcmF0ZSwKKwkucm91bmRfcmF0ZSA9IF9jbGtfY3NpX3JvdW5kX3JhdGUsCisJLnNldF9yYXRlID0gX2Nsa19jc2lfc2V0X3JhdGUsCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfQ1NJX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHVhcnRfY2xrW10gPSB7CisJeworCSAubmFtZSA9ICJ1YXJ0X2NsayIsCisJIC5pZCA9IDAsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9VQVJUMV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJ1YXJ0X2NsayIsCisJIC5pZCA9IDEsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9VQVJUMl9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJ1YXJ0X2NsayIsCisJIC5pZCA9IDIsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9VQVJUM19PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJ1YXJ0X2NsayIsCisJIC5pZCA9IDMsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9VQVJUNF9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJ1YXJ0X2NsayIsCisJIC5pZCA9IDQsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9VQVJUNV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBpMmNfY2xrW10gPSB7CisJeworCSAubmFtZSA9ICJpMmNfY2xrIiwKKwkgLmlkID0gMCwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0kyQzFfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAiaTJjX2NsayIsCisJIC5pZCA9IDEsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9JMkMyX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gImkyY19jbGsiLAorCSAuaWQgPSAyLAorCSAucGFyZW50ID0gJnBlcmNsa19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfSTJDM19PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBvd2lyZV9jbGsgPSB7CisJLm5hbWUgPSAib3dpcmVfY2xrIiwKKwkucGFyZW50ID0gJnBlcmNsa19jbGssCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9PV0lSRV9PRkZTRVQsCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2RoY19jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gInNkaGNfY2xrIiwKKwkgLmlkID0gMCwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX1NEX01NQzFfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAic2RoY19jbGsiLAorCSAuaWQgPSAxLAorCSAucGFyZW50ID0gJnBlcmNsa19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfU0RfTU1DMl9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzc2lfY2xrW10gPSB7CisJeworCSAubmFtZSA9ICJzc2lfY2xrIiwKKwkgLnBhcmVudCA9ICZzZXJpYWxfcGxsX2NsaywKKwkgLmdldF9yYXRlID0gX2Nsa19zc2kxX2dldF9yYXRlLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX1NTSTFfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAic3NpX2NsayIsCisJIC5pZCA9IDEsCisJIC5wYXJlbnQgPSAmc2VyaWFsX3BsbF9jbGssCisJIC5nZXRfcmF0ZSA9IF9jbGtfc3NpMl9nZXRfcmF0ZSwKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMiwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMl9TU0kyX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGZpcmlfY2xrID0geworCS5uYW1lID0gImZpcmlfY2xrIiwKKwkucGFyZW50ID0gJnVzYl9wbGxfY2xrLAorCS5yb3VuZF9yYXRlID0gX2Nsa19maXJpX3JvdW5kX3JhdGUsCisJLnNldF9yYXRlID0gX2Nsa19maXJpX3NldF9yYXRlLAorCS5nZXRfcmF0ZSA9IF9jbGtfZmlyaV9nZXRfcmF0ZSwKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjIsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMl9GSVJJX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGF0YV9jbGsgPSB7CisJLm5hbWUgPSAiYXRhX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0FUQV9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBtYnhfY2xrID0geworCS5uYW1lID0gIm1ieF9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjIsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMl9HQUNDX09GRlNFVCwKKwkuZ2V0X3JhdGUgPSBfY2xrX21ieF9nZXRfcmF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHZwdV9jbGsgPSB7CisJLm5hbWUgPSAidnB1X2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMiwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX0dBQ0NfT0ZGU0VULAorCS5nZXRfcmF0ZSA9IF9jbGtfbWJ4X2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcnRpY19jbGsgPSB7CisJLm5hbWUgPSAicnRpY19jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjIsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMl9SVElDX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHJuZ19jbGsgPSB7CisJLm5hbWUgPSAicm5nX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX1JOR19PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZG1hX2Nsa1tdID0geworCXsKKwkgLm5hbWUgPSAic2RtYV9haGJfY2xrIiwKKwkgLnBhcmVudCA9ICZhaGJfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX1NETUFfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAic2RtYV9pcGdfY2xrIiwKKwkgLnBhcmVudCA9ICZpcGdfY2xrLH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1wZWc0X2NsayA9IHsKKwkubmFtZSA9ICJtcGVnNF9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9IQU5UUk9fT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgdmwyY2NfY2xrID0geworCS5uYW1lID0gInZsMmNjX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX0hBTlRST19PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBtc3RpY2tfY2xrW10gPSB7CisJeworCSAubmFtZSA9ICJtc3RpY2tfY2xrIiwKKwkgLmlkID0gMCwKKwkgLnBhcmVudCA9ICZ1c2JfcGxsX2NsaywKKwkgLmdldF9yYXRlID0gX2Nsa19tc3RpY2sxX2dldF9yYXRlLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX01FTVNUSUNLMV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJtc3RpY2tfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZ1c2JfcGxsX2NsaywKKwkgLmdldF9yYXRlID0gX2Nsa19tc3RpY2syX2dldF9yYXRlLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX01FTVNUSUNLMl9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBpaW1fY2xrID0geworCS5uYW1lID0gImlpbV9jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9JSU1fT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19ja28xX3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIGRpdiwgcGFyZW50ID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWRpdiA9IHBhcmVudCAvIHJhdGU7CisJaWYgKHBhcmVudCAlIHJhdGUpCisJCWRpdisrOworCisJaWYgKGRpdiA+IDgpCisJCWRpdiA9IDE2OworCWVsc2UgaWYgKGRpdiA+IDQpCisJCWRpdiA9IDg7CisJZWxzZSBpZiAoZGl2ID4gMikKKwkJZGl2ID0gNDsKKworCXJldHVybiBwYXJlbnQgLyBkaXY7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19ja28xX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiByZWcsIGRpdiwgcGFyZW50ID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWRpdiA9IHBhcmVudCAvIHJhdGU7CisKKwlpZiAoZGl2ID09IDE2KQorCQlkaXYgPSA0OworCWVsc2UgaWYgKGRpdiA9PSA4KQorCQlkaXYgPSAzOworCWVsc2UgaWYgKGRpdiA9PSA0KQorCQlkaXYgPSAyOworCWVsc2UgaWYgKGRpdiA9PSAyKQorCQlkaXYgPSAxOworCWVsc2UgaWYgKGRpdiA9PSAxKQorCQlkaXYgPSAwOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NPU1IpICYgfk1YQ19DQ01fQ09TUl9DTEtPVVRESVZfTUFTSzsKKwlyZWcgfD0gZGl2IDw8IE1YQ19DQ01fQ09TUl9DTEtPVVRESVZfT0ZGU0VUOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fQ09TUik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19ja28xX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgZGl2OworCisJZGl2ID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DT1NSKSAmIE1YQ19DQ01fQ09TUl9DTEtPVVRESVZfTUFTSyA+PgorCSAgICBNWENfQ0NNX0NPU1JfQ0xLT1VURElWX09GRlNFVDsKKworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKDEgPDwgZGl2KTsKK30KKworc3RhdGljIGludCBfY2xrX2NrbzFfc2V0X3BhcmVudChzdHJ1Y3QgY2xrICpjbGssIHN0cnVjdCBjbGsgKnBhcmVudCkKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DT1NSKSAmIH5NWENfQ0NNX0NPU1JfQ0xLT1NFTF9NQVNLOworCisJaWYgKHBhcmVudCA9PSAmbWN1X21haW5fY2xrKQorCQlyZWcgfD0gMCA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZpcGdfY2xrKQorCQlyZWcgfD0gMSA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZ1c2JfcGxsX2NsaykKKwkJcmVnIHw9IDIgPDwgTVhDX0NDTV9DT1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSBtY3VfbWFpbl9jbGsucGFyZW50KQorCQlyZWcgfD0gMyA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZhaGJfY2xrKQorCQlyZWcgfD0gNSA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZzZXJpYWxfcGxsX2NsaykKKwkJcmVnIHw9IDcgPDwgTVhDX0NDTV9DT1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmY2tpaF9jbGspCisJCXJlZyB8PSA4IDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmVtaV9jbGspCisJCXJlZyB8PSA5IDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmlwdV9jbGspCisJCXJlZyB8PSAweEEgPDwgTVhDX0NDTV9DT1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmbmZjX2NsaykKKwkJcmVnIHw9IDB4QiA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZ1YXJ0X2Nsa1swXSkKKwkJcmVnIHw9IDB4QyA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKKworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fQ09TUik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfY2xrX2NrbzFfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DT1NSKSB8IE1YQ19DQ01fQ09TUl9DTEtPRU47CisJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9DT1NSKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX2NrbzFfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fQ09TUikgJiB+TVhDX0NDTV9DT1NSX0NMS09FTjsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX0NPU1IpOworfQorCitzdGF0aWMgc3RydWN0IGNsayBja28xX2NsayA9IHsKKwkubmFtZSA9ICJja28xX2NsayIsCisJLmdldF9yYXRlID0gX2Nsa19ja28xX2dldF9yYXRlLAorCS5zZXRfcmF0ZSA9IF9jbGtfY2tvMV9zZXRfcmF0ZSwKKwkucm91bmRfcmF0ZSA9IF9jbGtfY2tvMV9yb3VuZF9yYXRlLAorCS5zZXRfcGFyZW50ID0gX2Nsa19ja28xX3NldF9wYXJlbnQsCisJLmVuYWJsZSA9IF9jbGtfY2tvMV9lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX2NrbzFfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrICpteGNfY2xrc1tdID0geworCSZja2loX2NsaywKKwkmY2tpbF9jbGssCisJJm1jdV9wbGxfY2xrLAorCSZ1c2JfcGxsX2NsaywKKwkmc2VyaWFsX3BsbF9jbGssCisJJm1jdV9tYWluX2NsaywKKwkmYWhiX2NsaywKKwkmcGVyX2NsaywKKwkmcGVyY2xrX2NsaywKKwkmY2tvMV9jbGssCisJJmVtaV9jbGssCisJJmNzcGlfY2xrWzBdLAorCSZjc3BpX2Nsa1sxXSwKKwkmY3NwaV9jbGtbMl0sCisJJmlwZ19jbGssCisJJmdwdF9jbGssCisJJnB3bV9jbGssCisJJndkb2dfY2xrLAorCSZydGNfY2xrLAorCSZlcGl0X2Nsa1swXSwKKwkmZXBpdF9jbGtbMV0sCisJJm5mY19jbGssCisJJmlwdV9jbGssCisJJmtwcF9jbGssCisJJnVzYl9jbGtbMF0sCisJJnVzYl9jbGtbMV0sCisJJmNzaV9jbGssCisJJnVhcnRfY2xrWzBdLAorCSZ1YXJ0X2Nsa1sxXSwKKwkmdWFydF9jbGtbMl0sCisJJnVhcnRfY2xrWzNdLAorCSZ1YXJ0X2Nsa1s0XSwKKwkmaTJjX2Nsa1swXSwKKwkmaTJjX2Nsa1sxXSwKKwkmaTJjX2Nsa1syXSwKKwkmb3dpcmVfY2xrLAorCSZzZGhjX2Nsa1swXSwKKwkmc2RoY19jbGtbMV0sCisJJnNzaV9jbGtbMF0sCisJJnNzaV9jbGtbMV0sCisJJmZpcmlfY2xrLAorCSZhdGFfY2xrLAorCSZydGljX2NsaywKKwkmcm5nX2NsaywKKwkmc2RtYV9jbGtbMF0sCisJJnNkbWFfY2xrWzFdLAorCSZtc3RpY2tfY2xrWzBdLAorCSZtc3RpY2tfY2xrWzFdLAorCSZzY2NfY2xrLAorCSZpaW1fY2xrLAorfTsKKworaW50IF9faW5pdCBteGNfY2xvY2tzX2luaXQodW5zaWduZWQgbG9uZyBmcmVmKQoreworCXUzMiByZWc7CisJc3RydWN0IGNsayAqKmNsa3A7CisKKwlja2loX3JhdGUgPSBmcmVmOworCisJZm9yIChjbGtwID0gbXhjX2Nsa3M7IGNsa3AgPCBteGNfY2xrcyArIEFSUkFZX1NJWkUobXhjX2Nsa3MpOyBjbGtwKyspCisJCWNsa19yZWdpc3RlcigqY2xrcCk7CisKKwlpZiAoY3B1X2lzX214MzEoKSkgeworCQljbGtfcmVnaXN0ZXIoJm1wZWc0X2Nsayk7CisJCWNsa19yZWdpc3RlcigmbWJ4X2Nsayk7CisJfSBlbHNlIHsKKwkJY2xrX3JlZ2lzdGVyKCZ2cHVfY2xrKTsKKwkJY2xrX3JlZ2lzdGVyKCZ2bDJjY19jbGspOworCX0KKworCS8qIFR1cm4gb2ZmIGFsbCBwb3NzaWJsZSBjbG9ja3MgKi8KKwlfX3Jhd193cml0ZWwoTVhDX0NDTV9DR1IwX0dQVF9NQVNLLCBNWENfQ0NNX0NHUjApOworCV9fcmF3X3dyaXRlbCgwLCBNWENfQ0NNX0NHUjEpOworCisJX19yYXdfd3JpdGVsKE1YQ19DQ01fQ0dSMl9FTUlfTUFTSyB8CisJCSAgICAgTVhDX0NDTV9DR1IyX0lQTVVYMV9NQVNLIHwKKwkJICAgICBNWENfQ0NNX0NHUjJfSVBNVVgyX01BU0sgfAorCQkgICAgIE1YQ19DQ01fQ0dSMl9NWENDTEtFTlNFTF9NQVNLIHwJLyogZm9yIE1YMzIgKi8KKwkJICAgICBNWENfQ0NNX0NHUjJfQ0hJS0NBTVBFTl9NQVNLIHwJLyogZm9yIE1YMzIgKi8KKwkJICAgICBNWENfQ0NNX0NHUjJfT1ZSVlBVQlVTWV9NQVNLIHwJLyogZm9yIE1YMzIgKi8KKwkJICAgICAxIDw8IDI3IHwgMSA8PCAyOCwgLyogQml0IDI3IGFuZCAyOCBhcmUgbm90IGRlZmluZWQgZm9yCisJCQkJCSAgIE1YMzIsIGJ1dCBzdGlsbCByZXF1aXJlZCB0byBiZSBzZXQgKi8KKwkJICAgICBNWENfQ0NNX0NHUjIpOworCisJY2xrX2Rpc2FibGUoJmNrbzFfY2xrKTsKKwljbGtfZGlzYWJsZSgmdXNiX3BsbF9jbGspOworCisJcHJfaW5mbygiQ2xvY2sgaW5wdXQgc291cmNlIGlzICVsZFxuIiwgY2xrX2dldF9yYXRlKCZja2loX2NsaykpOworCisJY2xrX2VuYWJsZSgmZ3B0X2Nsayk7CisJY2xrX2VuYWJsZSgmZW1pX2Nsayk7CisJY2xrX2VuYWJsZSgmaWltX2Nsayk7CisKKwljbGtfZW5hYmxlKCZzZXJpYWxfcGxsX2Nsayk7CisKKwlpZiAobXgzMV9yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkgeworCQlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX1BNQ1IxKTsKKwkJLyogTm8gUExMIHJlc3RhcnQgb24gRFZGUyBzd2l0Y2g7IGVuYWJsZSBhdXRvIEVNSSBoYW5kc2hha2UgKi8KKwkJcmVnIHw9IE1YQ19DQ01fUE1DUjFfUExMUkRJUyB8IE1YQ19DQ01fUE1DUjFfRU1JUlFfRU47CisJCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fUE1DUjEpOworCX0KKworCXJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My9jcm1fcmVncy5oIGIvYXJjaC9hcm0vbWFjaC1teDMvY3JtX3JlZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTBlMGVkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDMvY3JtX3JlZ3MuaApAQCAtMCwwICsxLDQwMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBieSBTYXNjaGEgSGF1ZXIgPGtlcm5lbEBwZW5ndXRyb25peC5kZT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fQVJDSF9BUk1fTUFDSF9NWDNfQ1JNX1JFR1NfSF9fCisjZGVmaW5lIF9fQVJDSF9BUk1fTUFDSF9NWDNfQ1JNX1JFR1NfSF9fCisKKyNkZWZpbmUgQ0tJSF9DTEtfRlJFUSAgICAgICAgICAgMjYwMDAwMDAKKyNkZWZpbmUgQ0tJSF9DTEtfRlJFUV8yN01IWiAgICAgMjcwMDAwMDAKKyNkZWZpbmUgQ0tJTF9DTEtfRlJFUSAgICAgICAgICAgMzI3NjgKKworI2RlZmluZSBNWENfQ0NNX0JBU0UJCUlPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikKKworLyogUmVnaXN0ZXIgYWRkcmVzc2VzICovCisjZGVmaW5lIE1YQ19DQ01fQ0NNUgkJKE1YQ19DQ01fQkFTRSArIDB4MDApCisjZGVmaW5lIE1YQ19DQ01fUERSMAkJKE1YQ19DQ01fQkFTRSArIDB4MDQpCisjZGVmaW5lIE1YQ19DQ01fUERSMQkJKE1YQ19DQ01fQkFTRSArIDB4MDgpCisjZGVmaW5lIE1YQ19DQ01fUkNTUgkJKE1YQ19DQ01fQkFTRSArIDB4MEMpCisjZGVmaW5lIE1YQ19DQ01fTVBDVEwJCShNWENfQ0NNX0JBU0UgKyAweDEwKQorI2RlZmluZSBNWENfQ0NNX1VQQ1RMCQkoTVhDX0NDTV9CQVNFICsgMHgxNCkKKyNkZWZpbmUgTVhDX0NDTV9TUlBDVEwJCShNWENfQ0NNX0JBU0UgKyAweDE4KQorI2RlZmluZSBNWENfQ0NNX0NPU1IJCShNWENfQ0NNX0JBU0UgKyAweDFDKQorI2RlZmluZSBNWENfQ0NNX0NHUjAJCShNWENfQ0NNX0JBU0UgKyAweDIwKQorI2RlZmluZSBNWENfQ0NNX0NHUjEJCShNWENfQ0NNX0JBU0UgKyAweDI0KQorI2RlZmluZSBNWENfQ0NNX0NHUjIJCShNWENfQ0NNX0JBU0UgKyAweDI4KQorI2RlZmluZSBNWENfQ0NNX1dJTVIJCShNWENfQ0NNX0JBU0UgKyAweDJDKQorI2RlZmluZSBNWENfQ0NNX0xEQwkJKE1YQ19DQ01fQkFTRSArIDB4MzApCisjZGVmaW5lIE1YQ19DQ01fRENWUjAJCShNWENfQ0NNX0JBU0UgKyAweDM0KQorI2RlZmluZSBNWENfQ0NNX0RDVlIxCQkoTVhDX0NDTV9CQVNFICsgMHgzOCkKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSMgkJKE1YQ19DQ01fQkFTRSArIDB4M0MpCisjZGVmaW5lIE1YQ19DQ01fRENWUjMJCShNWENfQ0NNX0JBU0UgKyAweDQwKQorI2RlZmluZSBNWENfQ0NNX0xUUjAJCShNWENfQ0NNX0JBU0UgKyAweDQ0KQorI2RlZmluZSBNWENfQ0NNX0xUUjEJCShNWENfQ0NNX0JBU0UgKyAweDQ4KQorI2RlZmluZSBNWENfQ0NNX0xUUjIJCShNWENfQ0NNX0JBU0UgKyAweDRDKQorI2RlZmluZSBNWENfQ0NNX0xUUjMJCShNWENfQ0NNX0JBU0UgKyAweDUwKQorI2RlZmluZSBNWENfQ0NNX0xUQlIwCQkoTVhDX0NDTV9CQVNFICsgMHg1NCkKKyNkZWZpbmUgTVhDX0NDTV9MVEJSMQkJKE1YQ19DQ01fQkFTRSArIDB4NTgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjAJCShNWENfQ0NNX0JBU0UgKyAweDVDKQorI2RlZmluZSBNWENfQ0NNX1BNQ1IxCQkoTVhDX0NDTV9CQVNFICsgMHg2MCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIyCQkoTVhDX0NDTV9CQVNFICsgMHg2NCkKKworLyogUmVnaXN0ZXIgYml0IGRlZmluaXRpb25zICovCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9XQkVOICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNykKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX0NTQ1MgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI1KQorI2RlZmluZSBNWENfQ0NNX0NDTVJfUEVSQ1MgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9TU0kxU19PRkZTRVQgICAgICAgICAgICAgICAxOAorI2RlZmluZSBNWENfQ0NNX0NDTVJfU1NJMVNfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1NTSTJTX09GRlNFVCAgICAgICAgICAgICAgIDIxCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9TU0kyU19NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDIxKQorI2RlZmluZSBNWENfQ0NNX0NDTVJfTFBNX09GRlNFVCAgICAgICAgICAgICAgICAgMTQKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX0xQTV9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMTQpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9GSVJTX09GRlNFVCAgICAgICAgICAgICAgICAxMQorI2RlZmluZSBNWENfQ0NNX0NDTVJfRklSU19NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxMSkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1VQRSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9TUEUgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQorI2RlZmluZSBNWENfQ0NNX0NDTVJfTURTICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1NCWUNTICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9NUEUgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQorI2RlZmluZSBNWENfQ0NNX0NDTVJfUFJDU19PRkZTRVQgICAgICAgICAgICAgICAgMQorI2RlZmluZSBNWENfQ0NNX0NDTVJfUFJDU19NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxKQorCisjZGVmaW5lIE1YQ19DQ01fUERSMF9DU0lfUE9ERl9PRkZTRVQgICAgICAgICAgICAyNgorI2RlZmluZSBNWENfQ0NNX1BEUjBfQ1NJX1BPREZfTUFTSyAgICAgICAgICAgICAgKDB4M0YgPDwgMjYpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9DU0lfUFJERl9PRkZTRVQgICAgICAgICAgICAyMworI2RlZmluZSBNWENfQ0NNX1BEUjBfQ1NJX1BSREZfTUFTSyAgICAgICAgICAgICAgKDB4NyA8PCAyMykKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX1BFUl9QT0RGX09GRlNFVCAgICAgICAgICAgIDE2CisjZGVmaW5lIE1YQ19DQ01fUERSMF9QRVJfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHgxRiA8PCAxNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9QT0RGX09GRlNFVCAgICAgICAgICAgIDExCisjZGVmaW5lIE1YQ19DQ01fUERSMF9IU1BfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHg3IDw8IDExKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX1BPREZfT0ZGU0VUICAgICAgICAgICAgOAorI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX1BPREZfTUFTSyAgICAgICAgICAgICAgKDB4NyA8PCA4KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfSVBHX1BPREZfT0ZGU0VUICAgICAgICAgICAgNgorI2RlZmluZSBNWENfQ0NNX1BEUjBfSVBHX1BPREZfTUFTSyAgICAgICAgICAgICAgKDB4MyA8PCA2KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX1BPREZfT0ZGU0VUICAgICAgICAgICAgMworI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX1BPREZfTUFTSyAgICAgICAgICAgICAgKDB4NyA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX1BPREZfT0ZGU0VUICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX1BPREZfTUFTSyAgICAgICAgICAgICAgMHg3CisKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9ESVZfMSAgICAgICAgICAgICAgICAgICgweDAgPDwgMTEpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9IU1BfRElWXzIgICAgICAgICAgICAgICAgICAoMHgxIDw8IDExKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX0RJVl8zICAgICAgICAgICAgICAgICAgKDB4MiA8PCAxMSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9ESVZfNCAgICAgICAgICAgICAgICAgICgweDMgPDwgMTEpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9IU1BfRElWXzUgICAgICAgICAgICAgICAgICAoMHg0IDw8IDExKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX0RJVl82ICAgICAgICAgICAgICAgICAgKDB4NSA8PCAxMSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9ESVZfNyAgICAgICAgICAgICAgICAgICgweDYgPDwgMTEpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9IU1BfRElWXzggICAgICAgICAgICAgICAgICAoMHg3IDw8IDExKQorCisjZGVmaW5lIE1YQ19DQ01fUERSMF9JUEdfRElWXzEgICAgICAgICAgICAgICAgICAoMHgwIDw8IDYpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9JUEdfRElWXzIgICAgICAgICAgICAgICAgICAoMHgxIDw8IDYpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9JUEdfRElWXzMgICAgICAgICAgICAgICAgICAoMHgyIDw8IDYpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9JUEdfRElWXzQgICAgICAgICAgICAgICAgICAoMHgzIDw8IDYpCisKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01BWF9ESVZfMSAgICAgICAgICAgICAgICAgICgweDAgPDwgMykKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01BWF9ESVZfMiAgICAgICAgICAgICAgICAgICgweDEgPDwgMykKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01BWF9ESVZfMyAgICAgICAgICAgICAgICAgICgweDIgPDwgMykKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01BWF9ESVZfNCAgICAgICAgICAgICAgICAgICgweDMgPDwgMykKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01BWF9ESVZfNSAgICAgICAgICAgICAgICAgICgweDQgPDwgMykKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01BWF9ESVZfNiAgICAgICAgICAgICAgICAgICgweDUgPDwgMykKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01BWF9ESVZfNyAgICAgICAgICAgICAgICAgICgweDYgPDwgMykKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01BWF9ESVZfOCAgICAgICAgICAgICAgICAgICgweDcgPDwgMykKKworI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX0RJVl8xICAgICAgICAgICAgICAgICAgKDB4MCA8PCA4KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX0RJVl8yICAgICAgICAgICAgICAgICAgKDB4MSA8PCA4KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX0RJVl8zICAgICAgICAgICAgICAgICAgKDB4MiA8PCA4KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX0RJVl80ICAgICAgICAgICAgICAgICAgKDB4MyA8PCA4KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX0RJVl81ICAgICAgICAgICAgICAgICAgKDB4NCA8PCA4KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX0RJVl82ICAgICAgICAgICAgICAgICAgKDB4NSA8PCA4KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX0RJVl83ICAgICAgICAgICAgICAgICAgKDB4NiA8PCA4KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTkZDX0RJVl84ICAgICAgICAgICAgICAgICAgKDB4NyA8PCA4KQorCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfRElWXzEgICAgICAgICAgICAgICAgICAweDAKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01DVV9ESVZfMiAgICAgICAgICAgICAgICAgIDB4MQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX0RJVl8zICAgICAgICAgICAgICAgICAgMHgyCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfRElWXzQgICAgICAgICAgICAgICAgICAweDMKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01DVV9ESVZfNSAgICAgICAgICAgICAgICAgIDB4NAorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX0RJVl82ICAgICAgICAgICAgICAgICAgMHg1CisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfRElWXzcgICAgICAgICAgICAgICAgICAweDYKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01DVV9ESVZfOCAgICAgICAgICAgICAgICAgIDB4NworCisjZGVmaW5lIE1YQ19DQ01fUERSMV9VU0JfUFJERl9PRkZTRVQgICAgICAgICAgICAzMAorI2RlZmluZSBNWENfQ0NNX1BEUjFfVVNCX1BSREZfTUFTSyAgICAgICAgICAgICAgKDB4MyA8PCAzMCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1VTQl9QT0RGX09GRlNFVCAgICAgICAgICAgIDI3CisjZGVmaW5lIE1YQ19DQ01fUERSMV9VU0JfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHg3IDw8IDI3KQorI2RlZmluZSBNWENfQ0NNX1BEUjFfRklSSV9QUkVfUE9ERl9PRkZTRVQgICAgICAgMjQKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX0ZJUklfUFJFX1BPREZfTUFTSyAgICAgICAgICgweDcgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUERSMV9GSVJJX1BPREZfT0ZGU0VUICAgICAgICAgICAxOAorI2RlZmluZSBNWENfQ0NNX1BEUjFfRklSSV9QT0RGX01BU0sgICAgICAgICAgICAgKDB4M0YgPDwgMTgpCisjZGVmaW5lIE1YQ19DQ01fUERSMV9TU0kyX1BSRV9QT0RGX09GRlNFVCAgICAgICAxNQorI2RlZmluZSBNWENfQ0NNX1BEUjFfU1NJMl9QUkVfUE9ERl9NQVNLICAgICAgICAgKDB4NyA8PCAxNSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTJfUE9ERl9PRkZTRVQgICAgICAgICAgIDkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTJfUE9ERl9NQVNLICAgICAgICAgICAgICgweDNGIDw8IDkpCisjZGVmaW5lIE1YQ19DQ01fUERSMV9TU0kxX1BSRV9QT0RGX09GRlNFVCAgICAgICA2CisjZGVmaW5lIE1YQ19DQ01fUERSMV9TU0kxX1BSRV9QT0RGX01BU0sgICAgICAgICAoMHg3IDw8IDYpCisjZGVmaW5lIE1YQ19DQ01fUERSMV9TU0kxX1BPREZfT0ZGU0VUICAgICAgICAgICAwCisjZGVmaW5lIE1YQ19DQ01fUERSMV9TU0kxX1BPREZfTUFTSyAgICAgICAgICAgICAweDNGCisKKy8qIEJpdCBkZWZpbml0aW9ucyBmb3IgUkNTUiAqLworI2RlZmluZSBNWENfQ0NNX1JDU1JfTkYxNkIJCQkweDgwMDAwMDAwCisKKy8qIEJpdCBkZWZpbml0aW9ucyBmb3IgYm90aCBNQ1UsIFVTQiBhbmQgU1IgUExMIGNvbnRyb2wgcmVnaXN0ZXJzICovCisjZGVmaW5lIE1YQ19DQ01fUENUTF9CUk0gICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUENUTF9QRF9PRkZTRVQgICAgICAgICAgICAgICAgICAyNgorI2RlZmluZSBNWENfQ0NNX1BDVExfUERfTUFTSyAgICAgICAgICAgICAgICAgICAgKDB4RiA8PCAyNikKKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX01GRF9PRkZTRVQgICAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1YQ19DQ01fUENUTF9NRkRfTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzRkYgPDwgMTYpCisjZGVmaW5lIE1YQ19DQ01fUENUTF9NRklfT0ZGU0VUICAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBNWENfQ0NNX1BDVExfTUZJX01BU0sgICAgICAgICAgICAgICAgICAgKDB4RiA8PCAxMCkKKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX01GTl9PRkZTRVQgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX01GTl9NQVNLICAgICAgICAgICAgICAgICAgIDB4M0ZGCisKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1NEX01NQzFfT0ZGU0VUICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1NEX01NQzFfTUFTSyAgICAgICAgICAgICAgICgweDMgPDwgMCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1NEX01NQzJfT0ZGU0VUICAgICAgICAgICAgIDIKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1NEX01NQzJfTUFTSyAgICAgICAgICAgICAgICgweDMgPDwgMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0dQVF9PRkZTRVQgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0dQVF9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0VQSVQxX09GRlNFVCAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0VQSVQxX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0VQSVQyX09GRlNFVCAgICAgICAgICAgICAgIDgKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0VQSVQyX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgOCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0lJTV9PRkZTRVQgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9JSU1fTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDEwKQorI2RlZmluZSBNWENfQ0NNX0NHUjBfQVRBX09GRlNFVCAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0FUQV9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMTIpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9TRE1BX09GRlNFVCAgICAgICAgICAgICAgICAxNAorI2RlZmluZSBNWENfQ0NNX0NHUjBfU0RNQV9NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0NTUEkzX09GRlNFVCAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9DU1BJM19NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDE2KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfUk5HX09GRlNFVCAgICAgICAgICAgICAgICAgMTgKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1JOR19NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMTgpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9VQVJUMV9PRkZTRVQgICAgICAgICAgICAgICAyMAorI2RlZmluZSBNWENfQ0NNX0NHUjBfVUFSVDFfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCAyMCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1VBUlQyX09GRlNFVCAgICAgICAgICAgICAgIDIyCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9VQVJUMl9NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDIyKQorI2RlZmluZSBNWENfQ0NNX0NHUjBfU1NJMV9PRkZTRVQgICAgICAgICAgICAgICAgMjQKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1NTSTFfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9JMkMxX09GRlNFVCAgICAgICAgICAgICAgICAyNgorI2RlZmluZSBNWENfQ0NNX0NHUjBfSTJDMV9NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAyNikKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0kyQzJfT0ZGU0VUICAgICAgICAgICAgICAgIDI4CisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9JMkMyX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDI4KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfSTJDM19PRkZTRVQgICAgICAgICAgICAgICAgMzAKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0kyQzNfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMzApCisKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0hBTlRST19PRkZTRVQgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0hBTlRST19NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX01FTVNUSUNLMV9PRkZTRVQgICAgICAgICAgIDIKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX01FTVNUSUNLMV9NQVNLICAgICAgICAgICAgICgweDMgPDwgMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX01FTVNUSUNLMl9PRkZTRVQgICAgICAgICAgIDQKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX01FTVNUSUNLMl9NQVNLICAgICAgICAgICAgICgweDMgPDwgNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0NTSV9PRkZTRVQgICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0NTSV9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1JUQ19PRkZTRVQgICAgICAgICAgICAgICAgIDgKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1JUQ19NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgOCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1dET0dfT0ZGU0VUICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9XRE9HX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDEwKQorI2RlZmluZSBNWENfQ0NNX0NHUjFfUFdNX09GRlNFVCAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1BXTV9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMTIpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9TSU1fT0ZGU0VUICAgICAgICAgICAgICAgICAxNAorI2RlZmluZSBNWENfQ0NNX0NHUjFfU0lNX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0VDVF9PRkZTRVQgICAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9FQ1RfTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDE2KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfVVNCT1RHX09GRlNFVCAgICAgICAgICAgICAgMTgKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1VTQk9UR19NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMTgpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9LUFBfT0ZGU0VUICAgICAgICAgICAgICAgICAyMAorI2RlZmluZSBNWENfQ0NNX0NHUjFfS1BQX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAyMCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0lQVV9PRkZTRVQgICAgICAgICAgICAgICAgIDIyCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9JUFVfTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDIyKQorI2RlZmluZSBNWENfQ0NNX0NHUjFfVUFSVDNfT0ZGU0VUICAgICAgICAgICAgICAgMjQKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1VBUlQzX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9VQVJUNF9PRkZTRVQgICAgICAgICAgICAgICAyNgorI2RlZmluZSBNWENfQ0NNX0NHUjFfVUFSVDRfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCAyNikKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1VBUlQ1X09GRlNFVCAgICAgICAgICAgICAgIDI4CisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9VQVJUNV9NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDI4KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfT1dJUkVfT0ZGU0VUICAgICAgICAgICAgICAgMzAKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX09XSVJFX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMzApCisKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX1NTSTJfT0ZGU0VUICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX1NTSTJfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0NTUEkxX09GRlNFVCAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0NTUEkxX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0NTUEkyX09GRlNFVCAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0NTUEkyX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0dBQ0NfT0ZGU0VUICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0dBQ0NfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0VNSV9PRkZTRVQgICAgICAgICAgICAgICAgIDgKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0VNSV9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgOCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX1JUSUNfT0ZGU0VUICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9SVElDX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDEwKQorI2RlZmluZSBNWENfQ0NNX0NHUjJfRklSSV9PRkZTRVQgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0ZJUklfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMTIpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9JUE1VWDFfT0ZGU0VUICAgICAgICAgICAgICAxNAorI2RlZmluZSBNWENfQ0NNX0NHUjJfSVBNVVgxX01BU0sgICAgICAgICAgICAgICAgKDB4MyA8PCAxNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0lQTVVYMl9PRkZTRVQgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9JUE1VWDJfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDE2KQorCisvKiBUaGVzZSBuZXcgQ0dSMiBiaXRzIGFyZSBhZGRlZCBpbiBNWDMyICovCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9BUE1TWVNDTEtTRUxfT0ZGU0VUCTE4CisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9BUE1TWVNDTEtTRUxfTUFTSwkJKDB4MyA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0FQTVNTSUNMS1NFTF9PRkZTRVQJMjAKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0FQTVNTSUNMS1NFTF9NQVNLCQkoMHgzIDw8IDIwKQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQVBNUEVSQ0xLU0VMX09GRlNFVAkyMgorI2RlZmluZSBNWENfQ0NNX0NHUjJfQVBNUEVSQ0xLU0VMX01BU0sJCSgweDMgPDwgMjIpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9NWENDTEtFTlNFTF9PRkZTRVQJCTI0CisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9NWENDTEtFTlNFTF9NQVNLCQkoMHgxIDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQ0hJS0NBTVBFTl9PRkZTRVQJCTI1CisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9DSElLQ0FNUEVOX01BU0sJCSgweDEgPDwgMjUpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9PVlJWUFVCVVNZX09GRlNFVAkJMjYKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX09WUlZQVUJVU1lfTUFTSwkJKDB4MSA8PCAyNikKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0FQTUVOQV9PRkZTRVQJCTMwCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9BT01FTkFfTUFTSwkJKDB4MSA8PCAzMCkKKworLyoKKyAqIExUUjAgcmVnaXN0ZXIgb2Zmc2V0cworICovCisjZGVmaW5lIE1YQ19DQ01fTFRSMF9ESVYzQ0tfT0ZGU0VUICAgICAgICAgICAgICAxCisjZGVmaW5lIE1YQ19DQ01fTFRSMF9ESVYzQ0tfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDEpCisjZGVmaW5lIE1YQ19DQ01fTFRSMF9ETlRIUl9PRkZTRVQgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNWENfQ0NNX0xUUjBfRE5USFJfTUFTSyAgICAgICAgICAgICAgICAgKDB4M0YgPDwgMTYpCisjZGVmaW5lIE1YQ19DQ01fTFRSMF9VUFRIUl9PRkZTRVQgICAgICAgICAgICAgICAyMgorI2RlZmluZSBNWENfQ0NNX0xUUjBfVVBUSFJfTUFTSyAgICAgICAgICAgICAgICAgKDB4M0YgPDwgMjIpCisKKy8qCisgKiBMVFIxIHJlZ2lzdGVyIG9mZnNldHMKKyAqLworI2RlZmluZSBNWENfQ0NNX0xUUjFfUE5DVEhSX09GRlNFVCAgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX0xUUjFfUE5DVEhSX01BU0sgICAgICAgICAgICAgICAgMHgzRgorI2RlZmluZSBNWENfQ0NNX0xUUjFfVVBDTlRfT0ZGU0VUICAgICAgICAgICAgICAgNgorI2RlZmluZSBNWENfQ0NNX0xUUjFfVVBDTlRfTUFTSyAgICAgICAgICAgICAgICAgKDB4RkYgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9MVFIxX0ROQ05UX09GRlNFVCAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIE1YQ19DQ01fTFRSMV9ETkNOVF9NQVNLICAgICAgICAgICAgICAgICAoMHhGRiA8PCAxNCkKKyNkZWZpbmUgTVhDX0NDTV9MVFIxX0xUQlJTUl9NQVNLICAgICAgICAgICAgICAgIDB4NDAwMDAwCisjZGVmaW5lIE1YQ19DQ01fTFRSMV9MVEJSU1JfT0ZGU0VUICAgICAgICAgICAgICAyMgorI2RlZmluZSBNWENfQ0NNX0xUUjFfTFRCUlNSICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAKKyNkZWZpbmUgTVhDX0NDTV9MVFIxX0xUQlJTSCAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwCisKKy8qCisgKiBMVFIyIGJpdCBkZWZpbml0aW9ucy4geCByYW5nZXMgZnJvbSAwIGZvciBXU1c5IHRvIDYgZm9yIFdTVzE1CisgKi8KKyNkZWZpbmUgTVhDX0NDTV9MVFIyX1dTV19PRkZTRVQoeCkgICAgICAgICAgICAgICgxMSArICh4KSAqIDMpCisjZGVmaW5lIE1YQ19DQ01fTFRSMl9XU1dfTUFTSyh4KSAgICAgICAgICAgICAgICAoMHg3IDw8IFwKKwkJCQkJTVhDX0NDTV9MVFIyX1dTV19PRkZTRVQoKHgpKSkKKyNkZWZpbmUgTVhDX0NDTV9MVFIyX0VNQUNfT0ZGU0VUICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9MVFIyX0VNQUNfTUFTSyAgICAgICAgICAgICAgICAgIDB4MUZGCisKKy8qCisgKiBMVFIzIGJpdCBkZWZpbml0aW9ucy4geCByYW5nZXMgZnJvbSAwIGZvciBXU1cwIHRvIDggZm9yIFdTVzgKKyAqLworI2RlZmluZSBNWENfQ0NNX0xUUjNfV1NXX09GRlNFVCh4KSAgICAgICAgICAgICAgKDUgKyAoeCkgKiAzKQorI2RlZmluZSBNWENfQ0NNX0xUUjNfV1NXX01BU0soeCkgICAgICAgICAgICAgICAgKDB4NyA8PCBcCisJCQkJCU1YQ19DQ01fTFRSM19XU1dfT0ZGU0VUKCh4KSkpCisKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDEgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDFfU1BMTCAgICAgICAgICAgICAgICgwIDw8IDMxKQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQMV9NUExMICAgICAgICAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfREZTVVAwICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfREZTVVAwX1BMTCAgICAgICAgICAgICAgICAoMCA8PCAzMCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDBfUERSICAgICAgICAgICAgICAgICgxIDw8IDMwKQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQX01BU0sgICAgICAgICAgICAgICAgKDB4MyA8PCAzMCkKKworI2RlZmluZSBEVlNVUF9UVVJCTwkJCQkwCisjZGVmaW5lIERWU1VQX0hJR0gJCQkJMQorI2RlZmluZSBEVlNVUF9NRURJVU0JCQkJMgorI2RlZmluZSBEVlNVUF9MT1cJCQkJMworI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RWU1VQX1RVUkJPICAgICAgICAgICAgICAgKERWU1VQX1RVUkJPIDw8IDI4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RWU1VQX0hJR0ggICAgICAgICAgICAgICAgKERWU1VQX0hJR0ggPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZTVVBfTUVESVVNICAgICAgICAgICAgICAoRFZTVVBfTUVESVVNIDw8IDI4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RWU1VQX0xPVyAgICAgICAgICAgICAgICAgKERWU1VQX0xPVyA8PCAyOCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9EVlNVUF9PRkZTRVQgICAgICAgICAgICAgIDI4CisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZTVVBfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDI4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1VEU0MgICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1VEU0NfTUFTSyAgICAgICAgICAgICAgICAgKDEgPDwgMjcpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVURTQ19VUCAgICAgICAgICAgICAgICAgICAoMSA8PCAyNykKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9VRFNDX0RPV04gICAgICAgICAgICAgICAgICgwIDw8IDI3KQorCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfMSAgICAgICAgICAgICAgICAgICAoMHgwIDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1ZTQ05UXzIgICAgICAgICAgICAgICAgICAgKDB4MSA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF8zICAgICAgICAgICAgICAgICAgICgweDIgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfNCAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1ZTQ05UXzUgICAgICAgICAgICAgICAgICAgKDB4NCA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF82ICAgICAgICAgICAgICAgICAgICgweDUgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfNyAgICAgICAgICAgICAgICAgICAoMHg2IDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1ZTQ05UXzggICAgICAgICAgICAgICAgICAgKDB4NyA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF9PRkZTRVQgICAgICAgICAgICAgIDI0CisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfTUFTSyAgICAgICAgICAgICAgICAoMHg3IDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RWRkVWICAgICAgICAgICAgICAgICAgICAgMHgwMDgwMDAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RWRklTICAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0xCTUkgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0xCRkwgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0xCQ0ZfNCAgICAgICAgICAgICAgICAgICAgKDB4MCA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9MQkNGXzggICAgICAgICAgICAgICAgICAgICgweDEgPDwgMTgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJDRl8xMiAgICAgICAgICAgICAgICAgICAoMHgyIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0xCQ0ZfMTYgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9MQkNGX09GRlNFVCAgICAgICAgICAgICAgIDE4CisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJDRl9NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1BUVklTICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1VQRFRFTiAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1VQRFRFTl9NQVNLICAgICAgICAgICAgICAgKDB4MSA8PCAxNikKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9GU1ZBSU0gICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDAKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9GU1ZBSV9PRkZTRVQgICAgICAgICAgICAgIDEzCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRlNWQUlfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDEzKQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RQVkNSICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RQVlYgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1dGSU0gICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RSQ0UzICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RSQ0UyICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RSQ0UxICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RSQ0UwICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RDUiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RWRkVOICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1BUVkFJTSAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1BUVkFJX09GRlNFVCAgICAgICAgICAgICAgMQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1BUVkFJX01BU0sgICAgICAgICAgICAgICAgKDB4MyA8PCAxKQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RQVEVOICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQorCisjZGVmaW5lIE1YQ19DQ01fUE1DUjFfRFZHUF9PRkZTRVQgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjFfRFZHUF9NQVNLICAgICAgICAgICAgICAgICAoMHhGKQorCisjZGVmaW5lIE1YQ19DQ01fUE1DUjFfUExMUkRJUyAgICAgICAgICAgICAgICAgICAgICAoMHgxIDw8IDcpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjFfRU1JUlFfRU4gICAgICAgICAgICAgICAgICAgICAgKDB4MSA8PCA4KQorCisjZGVmaW5lIE1YQ19DQ01fRENWUl9VTFZfTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzRkYgPDwgMjIpCisjZGVmaW5lIE1YQ19DQ01fRENWUl9VTFZfT0ZGU0VUICAgICAgICAgICAgICAgICAyMgorI2RlZmluZSBNWENfQ0NNX0RDVlJfTExWX01BU0sgICAgICAgICAgICAgICAgICAgKDB4M0ZGIDw8IDEyKQorI2RlZmluZSBNWENfQ0NNX0RDVlJfTExWX09GRlNFVCAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSX0VMVl9NQVNLICAgICAgICAgICAgICAgICAgICgweDNGRiA8PCAyKQorI2RlZmluZSBNWENfQ0NNX0RDVlJfRUxWX09GRlNFVCAgICAgICAgICAgICAgICAgMgorCisjZGVmaW5lIE1YQ19DQ01fUERSMl9NU1QyX1BERl9NQVNLICAgICAgICAgICAgICAoMHgzRiA8PCA3KQorI2RlZmluZSBNWENfQ0NNX1BEUjJfTVNUMl9QREZfT0ZGU0VUICAgICAgICAgICAgNworI2RlZmluZSBNWENfQ0NNX1BEUjJfTVNUMV9QREZfTUFTSyAgICAgICAgICAgICAgMHgzRgorI2RlZmluZSBNWENfQ0NNX1BEUjJfTVNUMV9QREZfT0ZGU0VUICAgICAgICAgICAgMAorCisjZGVmaW5lIE1YQ19DQ01fQ09TUl9DTEtPU0VMX01BU0sgICAgICAgICAgICAgICAweDBGCisjZGVmaW5lIE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVCAgICAgICAgICAgICAwCisjZGVmaW5lIE1YQ19DQ01fQ09TUl9DTEtPVVRESVZfTUFTSyAgICAgICAgICAgICAoMHgwNyA8PCA2KQorI2RlZmluZSBNWENfQ0NNX0NPU1JfQ0xLT1VURElWX09GRlNFVCAgICAgICAgICAgNgorI2RlZmluZSBNWENfQ0NNX0NPU1JfQ0xLT0VOICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKKworLyoKKyAqIFBNQ1IwIHJlZ2lzdGVyIG9mZnNldHMKKyAqLworI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0xCRkxfT0ZGU0VUICAgMjAKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDBfT0ZGU0VUIDMwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfREZTVVAxX09GRlNFVCAzMQorCisjZW5kaWYJCQkJLyogX19BUkNIX0FSTV9NQUNIX01YM19DUk1fUkVHU19IX18gKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL2RldmljZXMuYyBiL2FyY2gvYXJtL21hY2gtbXgzL2RldmljZXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzAzMjBmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDMvZGV2aWNlcy5jCkBAIC0wLDAgKzEsMTgwIEBACisvKgorICogQ29weXJpZ2h0IDIwMDYtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggU2FzY2hhIEhhdWVyLCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pbXgtdWFydC5oPgorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQwW10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUMV9CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUMV9CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQxLAorCQkuZW5kID0gTVhDX0lOVF9VQVJUMSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTAgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDAsCisJLnJlc291cmNlID0gdWFydDAsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQwKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDFbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQyX0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQyX0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDIsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQyLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlMSA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gMSwKKwkucmVzb3VyY2UgPSB1YXJ0MSwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDEpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0MltdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDNfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDNfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUMywKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDMsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2UyID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSAyLAorCS5yZXNvdXJjZSA9IHVhcnQyLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0MiksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQzW10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUNF9CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUNF9CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQ0LAorCQkuZW5kID0gTVhDX0lOVF9VQVJUNCwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTMgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDMsCisJLnJlc291cmNlID0gdWFydDMsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQzKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDRbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQ1X0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQ1X0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDUsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQ1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlNCA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gNCwKKwkucmVzb3VyY2UgPSB1YXJ0NCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDQpLAorfTsKKworLyoKKyAqIFJlZ2lzdGVyIG9ubHkgdGhvc2UgVUFSVHMgdGhhdCBwaHlzaWNhbGx5IGV4aXN0CisgKi8KK2ludCBfX2luaXQgaW14X2luaXRfdWFydChpbnQgdWFydF9ubywgc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCit7CisJc3dpdGNoICh1YXJ0X25vKSB7CisJY2FzZSAwOgorCQlteGNfdWFydF9kZXZpY2UwLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMCk7CisJCWJyZWFrOworCWNhc2UgMToKKwkJbXhjX3VhcnRfZGV2aWNlMS5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTEpOworCQlicmVhazsKKwljYXNlIDI6CisJCW14Y191YXJ0X2RldmljZTIuZGV2LnBsYXRmb3JtX2RhdGEgPSBwZGF0YTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZteGNfdWFydF9kZXZpY2UyKTsKKwkJYnJlYWs7CisJY2FzZSAzOgorCQlteGNfdWFydF9kZXZpY2UzLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMyk7CisJCWJyZWFrOworCWNhc2UgNDoKKwkJbXhjX3VhcnRfZGV2aWNlNC5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTQpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogR1BJTyBwb3J0IGRlc2NyaXB0aW9uICovCitzdGF0aWMgc3RydWN0IG14Y19ncGlvX3BvcnQgaW14X2dwaW9fcG9ydHNbXSA9IHsKKwlbMF0gPSB7CisJCS5jaGlwLmxhYmVsID0gImdwaW8tMCIsCisJCS5iYXNlID0gSU9fQUREUkVTUyhHUElPMV9CQVNFX0FERFIpLAorCQkuaXJxID0gTVhDX0lOVF9HUElPMSwKKwkJLnZpcnR1YWxfaXJxX3N0YXJ0ID0gTVhDX0dQSU9fSU5UX0JBU0UKKwl9LAorCVsxXSA9IHsKKwkJLmNoaXAubGFiZWwgPSAiZ3Bpby0xIiwKKwkJLmJhc2UgPSBJT19BRERSRVNTKEdQSU8yX0JBU0VfQUREUiksCisJCS5pcnEgPSBNWENfSU5UX0dQSU8yLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfR1BJT19JTlRfQkFTRSArIEdQSU9fTlVNX1BJTgorCX0sCisJWzJdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTIiLAorCQkuYmFzZSA9IElPX0FERFJFU1MoR1BJTzNfQkFTRV9BRERSKSwKKwkJLmlycSA9IE1YQ19JTlRfR1BJTzMsCisJCS52aXJ0dWFsX2lycV9zdGFydCA9IE1YQ19HUElPX0lOVF9CQVNFICsgR1BJT19OVU1fUElOICogMgorCX0KK307CisKK2ludCBfX2luaXQgbXhjX3JlZ2lzdGVyX2dwaW9zKHZvaWQpCit7CisJcmV0dXJuIG14Y19ncGlvX2luaXQoaW14X2dwaW9fcG9ydHMsIEFSUkFZX1NJWkUoaW14X2dwaW9fcG9ydHMpKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL2lvbXV4LmMgYi9hcmNoL2FybS9tYWNoLW14My9pb211eC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkYzUxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9pb211eC5jCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IGJ5IFNhc2NoYSBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4LmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pb211eC1teDMuaD4KKworLyoKKyAqIElPTVVYIHJlZ2lzdGVyIChiYXNlKSBhZGRyZXNzZXMKKyAqLworI2RlZmluZSBJT01VWF9CQVNFCUlPX0FERFJFU1MoSU9NVVhDX0JBU0VfQUREUikKKyNkZWZpbmUgSU9NVVhJTlRfT0JTMQkoSU9NVVhfQkFTRSArIDB4MDAwKQorI2RlZmluZSBJT01VWElOVF9PQlMyCShJT01VWF9CQVNFICsgMHgwMDQpCisjZGVmaW5lIElPTVVYR1BSCShJT01VWF9CQVNFICsgMHgwMDgpCisjZGVmaW5lIElPTVVYU1dfTVVYX0NUTAkoSU9NVVhfQkFTRSArIDB4MDBDKQorI2RlZmluZSBJT01VWFNXX1BBRF9DVEwJKElPTVVYX0JBU0UgKyAweDE1NCkKKworc3RhdGljIERFRklORV9TUElOTE9DSyhncGlvX211eF9sb2NrKTsKKworI2RlZmluZSBJT01VWF9SRUdfTUFTSyAoSU9NVVhfUEFETlVNX01BU0sgJiB+MHgzKQorLyoKKyAqIHNldCB0aGUgbW9kZSBmb3IgYSBJT01VWCBwaW4uCisgKi8KK2ludCBteGNfaW9tdXhfbW9kZSh1bnNpZ25lZCBpbnQgcGluX21vZGUpCit7CisJdTMyIHJlZywgZmllbGQsIGwsIG1vZGUsIHJldCA9IDA7CisKKwlyZWcgPSBJT01VWFNXX01VWF9DVEwgKyAocGluX21vZGUgJiBJT01VWF9SRUdfTUFTSyk7CisJZmllbGQgPSBwaW5fbW9kZSAmIDB4MzsKKwltb2RlID0gKHBpbl9tb2RlICYgSU9NVVhfTU9ERV9NQVNLKSA+PiBJT01VWF9NT0RFX1NISUZUOworCisJcHJfZGVidWcoIiVzOiByZWcgb2Zmc2V0ID0gMHgleCBmaWVsZCA9ICVkIG1vZGUgPSAweCUwMnhcbiIsCisJCQlfX2Z1bmNfXywgKHBpbl9tb2RlICYgSU9NVVhfUkVHX01BU0spLCBmaWVsZCwgbW9kZSk7CisKKwlzcGluX2xvY2soJmdwaW9fbXV4X2xvY2spOworCisJbCA9IF9fcmF3X3JlYWRsKHJlZyk7CisJbCAmPSB+KDB4ZmYgPDwgKGZpZWxkICogOCkpOworCWwgfD0gbW9kZSA8PCAoZmllbGQgKiA4KTsKKwlfX3Jhd193cml0ZWwobCwgcmVnKTsKKworCXNwaW5fdW5sb2NrKCZncGlvX211eF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MKG14Y19pb211eF9tb2RlKTsKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gY29uZmlndXJlcyB0aGUgcGFkIHZhbHVlIGZvciBhIElPTVVYIHBpbi4KKyAqLwordm9pZCBteGNfaW9tdXhfc2V0X3BhZChlbnVtIGlvbXV4X3BpbnMgcGluLCB1MzIgY29uZmlnKQoreworCXUzMiByZWcsIGZpZWxkLCBsOworCisJcmVnID0gSU9NVVhTV19QQURfQ1RMICsgKHBpbiArIDIpIC8gMzsKKwlmaWVsZCA9IChwaW4gKyAyKSAlIDM7CisKKwlwcl9kZWJ1ZygiJXM6IHJlZyBvZmZzZXQgPSAweCV4IGZpZWxkID0gJWRcbiIsCisJCQlfX2Z1bmNfXywgKHBpbiArIDIpIC8gMywgZmllbGQpOworCisJc3Bpbl9sb2NrKCZncGlvX211eF9sb2NrKTsKKworCWwgPSBfX3Jhd19yZWFkbChyZWcpOworCWwgJj0gfigweDFmZiA8PCAoZmllbGQgKiA5KSk7CisJbCB8PSBjb25maWcgPDwgKGZpZWxkICogOSk7CisJX19yYXdfd3JpdGVsKGwsIHJlZyk7CisKKwlzcGluX3VubG9jaygmZ3Bpb19tdXhfbG9jayk7Cit9CitFWFBPUlRfU1lNQk9MKG14Y19pb211eF9zZXRfcGFkKTsKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gZW5hYmxlcy9kaXNhYmxlcyB0aGUgZ2VuZXJhbCBwdXJwb3NlIGZ1bmN0aW9uIGZvciBhIHBhcnRpY3VsYXIKKyAqIHNpZ25hbC4KKyAqLwordm9pZCBteGNfaW9tdXhfc2V0X2dwcihlbnVtIGlvbXV4X2dwX2Z1bmMgZ3AsIGJvb2wgZW4pCit7CisJdTMyIGw7CisKKwlzcGluX2xvY2soJmdwaW9fbXV4X2xvY2spOworCWwgPSBfX3Jhd19yZWFkbChJT01VWEdQUik7CisJaWYgKGVuKQorCQlsIHw9IGdwOworCWVsc2UKKwkJbCAmPSB+Z3A7CisKKwlfX3Jhd193cml0ZWwobCwgSU9NVVhHUFIpOworCXNwaW5fdW5sb2NrKCZncGlvX211eF9sb2NrKTsKK30KK0VYUE9SVF9TWU1CT0wobXhjX2lvbXV4X3NldF9ncHIpOworCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My9teDMxYWRzLmMgYi9hcmNoL2FybS9tYWNoLW14My9teDMxYWRzLmMKaW5kZXggN2U4OWJkYy4uZWJhM2UwYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1teDMvbXgzMWFkcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtbXgzL214MzFhZHMuYwpAQCAtMjYsOSArMjYsMTEgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CiAjaW5jbHVkZSA8YXNtL21lbW9yeS5oPgogI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLW14MzFhZHMuaD4KIAogLyohCiAgKiBAZmlsZSBteDMxYWRzLmMKQEAgLTEyNiw2ICsxMjgsMTYgQEAKIAlteGNfaW5pdF9leHR1YXJ0KCk7CiB9CiAKK3N0YXRpYyB2b2lkIF9faW5pdCBteDMxYWRzX3RpbWVyX2luaXQodm9pZCkKK3sKKwlteGNfY2xvY2tzX2luaXQoMjYwMDAwMDApOworCW14Y190aW1lcl9pbml0KCJpcGdfY2xrLjAiKTsKK30KKworc3RydWN0IHN5c190aW1lciBteDMxYWRzX3RpbWVyID0geworCS5pbml0CT0gbXgzMWFkc190aW1lcl9pbml0LAorfTsKKwogLyoKICAqIFRoZSBmb2xsb3dpbmcgdXNlcyBzdGFuZGFyZCBrZXJuZWwgbWFjcm9zIGRlZmluZWQgaW4gYXJjaC5oIGluIG9yZGVyIHRvCiAgKiBpbml0aWFsaXplIF9fbWFjaF9kZXNjX01YMzFBRFMgZGF0YSBzdHJ1Y3R1cmUuCkBAIC0xMzgsNSArMTUwLDUgQEAKIAkubWFwX2lvICAgICAgICAgPSBteDMxYWRzX21hcF9pbywKIAkuaW5pdF9pcnEgICAgICAgPSBteGNfaW5pdF9pcnEsCiAJLmluaXRfbWFjaGluZSAgID0gbXhjX2JvYXJkX2luaXQsCi0JLnRpbWVyICAgICAgICAgID0gJm14Y190aW1lciwKKwkudGltZXIgICAgICAgICAgPSAmbXgzMWFkc190aW1lciwKIE1BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My9teDMxbGl0ZS5jIGIvYXJjaC9hcm0vbWFjaC1teDMvbXgzMWxpdGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzcyYzFhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDMvbXgzMWxpdGUuYwpAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDAgRGVlcCBCbHVlIFNvbHV0aW9ucyBMdGQKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDIgU2hhbmUgTmF5IChzaGFuZUBtaW5pcmwuY29tKQorICogIENvcHlyaWdodCAyMDA1LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21lbW9yeS5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQtbXgzMWxpdGUuaD4KKworLyoKKyAqIFRoaXMgZmlsZSBjb250YWlucyB0aGUgYm9hcmQtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gcm91dGluZXMuCisgKi8KKworLyoKKyAqIFRoaXMgc3RydWN0dXJlIGRlZmluZXMgdGhlIE1YMzEgbWVtb3J5IG1hcC4KKyAqLworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBteDMxbGl0ZV9pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCS52aXJ0dWFsID0gQUlQUzFfQkFTRV9BRERSX1ZJUlQsCisJCS5wZm4gPSBfX3BoeXNfdG9fcGZuKEFJUFMxX0JBU0VfQUREUiksCisJCS5sZW5ndGggPSBBSVBTMV9TSVpFLAorCQkudHlwZSA9IE1UX05PTlNIQVJFRF9ERVZJQ0UKKwl9LCB7CisJCS52aXJ0dWFsID0gU1BCQTBfQkFTRV9BRERSX1ZJUlQsCisJCS5wZm4gPSBfX3BoeXNfdG9fcGZuKFNQQkEwX0JBU0VfQUREUiksCisJCS5sZW5ndGggPSBTUEJBMF9TSVpFLAorCQkudHlwZSA9IE1UX05PTlNIQVJFRF9ERVZJQ0UKKwl9LCB7CisJCS52aXJ0dWFsID0gQUlQUzJfQkFTRV9BRERSX1ZJUlQsCisJCS5wZm4gPSBfX3BoeXNfdG9fcGZuKEFJUFMyX0JBU0VfQUREUiksCisJCS5sZW5ndGggPSBBSVBTMl9TSVpFLAorCQkudHlwZSA9IE1UX05PTlNIQVJFRF9ERVZJQ0UKKwl9LCB7CisJCS52aXJ0dWFsID0gQ1M0X0JBU0VfQUREUl9WSVJULAorCQkucGZuID0gX19waHlzX3RvX3BmbihDUzRfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IENTNF9TSVpFLAorCQkudHlwZSA9IE1UX0RFVklDRQorCX0KK307CisKKy8qCisgKiBTZXQgdXAgc3RhdGljIHZpcnR1YWwgbWFwcGluZ3MuCisgKi8KK3ZvaWQgX19pbml0IG14MzFsaXRlX21hcF9pbyh2b2lkKQoreworCW14Y19tYXBfaW8oKTsKKwlpb3RhYmxlX2luaXQobXgzMWxpdGVfaW9fZGVzYywgQVJSQVlfU0laRShteDMxbGl0ZV9pb19kZXNjKSk7Cit9CisKKy8qCisgKiBCb2FyZCBzcGVjaWZpYyBpbml0aWFsaXphdGlvbi4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IG14Y19ib2FyZF9pbml0KHZvaWQpCit7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBteDMxbGl0ZV90aW1lcl9pbml0KHZvaWQpCit7CisJbXhjX2Nsb2Nrc19pbml0KDI2MDAwMDAwKTsKKwlteGNfdGltZXJfaW5pdCgiaXBnX2Nsay4wIik7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIgbXgzMWxpdGVfdGltZXIgPSB7CisJLmluaXQJPSBteDMxbGl0ZV90aW1lcl9pbml0LAorfTsKKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgdXNlcyBzdGFuZGFyZCBrZXJuZWwgbWFjcm9zIGRlZmluZWQgaW4gYXJjaC5oIGluIG9yZGVyIHRvCisgKiBpbml0aWFsaXplIF9fbWFjaF9kZXNjX01YMzFMSVRFIGRhdGEgc3RydWN0dXJlLgorICovCisKK01BQ0hJTkVfU1RBUlQoTVgzMUxJVEUsICJMb2dpY1BEIE1YMzEgTElURUtJVCIpCisJLyogTWFpbnRhaW5lcjogRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gKi8KKwkucGh5c19pbyAgICAgICAgPSBBSVBTMV9CQVNFX0FERFIsCisJLmlvX3BnX29mZnN0ICAgID0gKChBSVBTMV9CQVNFX0FERFJfVklSVCkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcyAgICA9IFBIWVNfT0ZGU0VUICsgMHgxMDAsCisJLm1hcF9pbyAgICAgICAgID0gbXgzMWxpdGVfbWFwX2lvLAorCS5pbml0X2lycSAgICAgICA9IG14Y19pbml0X2lycSwKKwkuaW5pdF9tYWNoaW5lICAgPSBteGNfYm9hcmRfaW5pdCwKKwkudGltZXIgICAgICAgICAgPSAmbXgzMWxpdGVfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDMvcGNtMDM3LmMgYi9hcmNoL2FybS9tYWNoLW14My9wY20wMzcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzRhZTZkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDMvcGNtMDM3LmMKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IFNhc2NoYSBIYXVlciwgUGVuZ3V0cm9uaXgKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tZW1vcnkuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pbXgtdWFydC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvbXV4LW14My5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLXBjbTAzNy5oPgorCitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBwY20wMzdfZmxhc2hfZGF0YSA9IHsKKwkud2lkdGggID0gMiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcGNtMDM3X2ZsYXNoX3Jlc291cmNlID0geworCS5zdGFydAk9IDB4YTAwMDAwMDAsCisJLmVuZAk9IDB4YTFmZmZmZmYsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBwY20wMzdfZmxhc2ggPSB7CisJLm5hbWUJPSAicGh5c21hcC1mbGFzaCIsCisJLmlkCT0gMCwKKwkuZGV2CT0geworCQkucGxhdGZvcm1fZGF0YSAgPSAmcGNtMDM3X2ZsYXNoX2RhdGEsCisJfSwKKwkucmVzb3VyY2UgPSAmcGNtMDM3X2ZsYXNoX3Jlc291cmNlLAorCS5udW1fcmVzb3VyY2VzID0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaW14dWFydF9wbGF0Zm9ybV9kYXRhIHVhcnRfcGRhdGEgPSB7CisJLmZsYWdzID0gMCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKKwkmcGNtMDM3X2ZsYXNoLAorfTsKKworLyoKKyAqIEJvYXJkIHNwZWNpZmljIGluaXRpYWxpemF0aW9uLgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgbXhjX2JvYXJkX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhkZXZpY2VzLCBBUlJBWV9TSVpFKGRldmljZXMpKTsKKworCW14Y19pb211eF9tb2RlKE1YMzFfUElOX0NUUzFfX0NUUzEpOworCW14Y19pb211eF9tb2RlKE1YMzFfUElOX1JUUzFfX1JUUzEpOworCW14Y19pb211eF9tb2RlKE1YMzFfUElOX1RYRDFfX1RYRDEpOworCW14Y19pb211eF9tb2RlKE1YMzFfUElOX1JYRDFfX1JYRDEpOworCisJaW14X2luaXRfdWFydCgwLCAmdWFydF9wZGF0YSk7CisKKwlteGNfaW9tdXhfbW9kZShNWDMxX1BJTl9DU1BJM19NT1NJX19SWEQzKTsKKwlteGNfaW9tdXhfbW9kZShNWDMxX1BJTl9DU1BJM19NSVNPX19UWEQzKTsKKworCWlteF9pbml0X3VhcnQoMiwgJnVhcnRfcGRhdGEpOworfQorCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBzdGF0aWMgbWFwcGluZ3MgZm9yIHRoZSBwY20wMzcgYm9hcmQuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2MgcGNtMDM3X2lvX2Rlc2NbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnZpcnR1YWwJPSBBSVBTMV9CQVNFX0FERFJfVklSVCwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKEFJUFMxX0JBU0VfQUREUiksCisJCS5sZW5ndGgJCT0gQUlQUzFfU0laRSwKKwkJLnR5cGUJCT0gTVRfREVWSUNFCisJfSwgeworCQkudmlydHVhbAk9IEFJUFMyX0JBU0VfQUREUl9WSVJULAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oQUlQUzJfQkFTRV9BRERSKSwKKwkJLmxlbmd0aAkJPSBBSVBTMl9TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UKKwl9LAorfTsKKworLyoKKyAqIFNldCB1cCBzdGF0aWMgdmlydHVhbCBtYXBwaW5ncy4KKyAqLwordm9pZCBfX2luaXQgcGNtMDM3X21hcF9pbyh2b2lkKQoreworCW14Y19tYXBfaW8oKTsKKwlpb3RhYmxlX2luaXQocGNtMDM3X2lvX2Rlc2MsIEFSUkFZX1NJWkUocGNtMDM3X2lvX2Rlc2MpKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHBjbTAzN190aW1lcl9pbml0KHZvaWQpCit7CisJbXhjX2Nsb2Nrc19pbml0KDI2MDAwMDAwKTsKKwlteGNfdGltZXJfaW5pdCgiaXBnX2Nsay4wIik7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIgcGNtMDM3X3RpbWVyID0geworCS5pbml0CT0gcGNtMDM3X3RpbWVyX2luaXQsCit9OworCitNQUNISU5FX1NUQVJUKFBDTTAzNywgIlBoeXRlYyBQaHljb3JlIHBjbTAzNyIpCisJLyogTWFpbnRhaW5lcjogUGVuZ3V0cm9uaXggKi8KKwkucGh5c19pbwk9IEFJUFMxX0JBU0VfQUREUiwKKwkuaW9fcGdfb2Zmc3QJPSAoKEFJUFMxX0JBU0VfQUREUl9WSVJUKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zICAgID0gUEhZU19PRkZTRVQgKyAweDEwMCwKKwkubWFwX2lvICAgICAgICAgPSBwY20wMzdfbWFwX2lvLAorCS5pbml0X2lycSAgICAgICA9IG14Y19pbml0X2lycSwKKwkuaW5pdF9tYWNoaW5lICAgPSBteGNfYm9hcmRfaW5pdCwKKwkudGltZXIgICAgICAgICAgPSAmcGNtMDM3X3RpbWVyLAorTUFDSElORV9FTkQKKwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDMvdGltZS5jIGIvYXJjaC9hcm0vbWFjaC1teDMvdGltZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjU2NWM5Li4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtbXgzL3RpbWUuYworKysgL2Rldi9udWxsCkBAIC0xLDE0OCArMCwwIEBACi0vKgotICogU3lzdGVtIFRpbWVyIEludGVycnVwdCByZWNvbmZpZ3VyZWQgdG8gcnVuIGluIGZyZWUtcnVuIG1vZGUuCi0gKiBBdXRob3I6IFZpdGFseSBXb29sCi0gKiBDb3B5cmlnaHQgMjAwNCBNb250YVZpc3RhIFNvZnR3YXJlIEluYy4KLSAqIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqLwotCi0vKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSAqLwotCi0vKiEKLSAqIEBmaWxlIHRpbWUuYwotICogQGJyaWVmIFRoaXMgZmlsZSBjb250YWlucyBPUyB0aWNrIGFuZCB3ZG9nIHRpbWVyIGltcGxlbWVudGF0aW9ucy4KLSAqCi0gKiBUaGlzIGZpbGUgY29udGFpbnMgT1MgdGljayBhbmQgd2RvZyB0aW1lciBpbXBsZW1lbnRhdGlvbnMuCi0gKgotICogQGluZ3JvdXAgVGltZXJzCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9pcnEuaD4KLSNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+Ci0KLS8qIQotICogVGhpcyBpcyB0aGUgdGltZXIgaW50ZXJydXB0IHNlcnZpY2Ugcm91dGluZSB0byBkbyByZXF1aXJlZCB0YXNrcy4KLSAqIEl0IGFsc28gc2VydmljZXMgdGhlIFdET0cgdGltZXIgYXQgdGhlIGZyZXF1ZW5jeSBvZiB0d2ljZSBwZXIgV0RPRwotICogdGltZW91dCB2YWx1ZS4gRm9yIGV4YW1wbGUsIGlmIHRoZSBXRE9HJ3MgdGltZW91dCB2YWx1ZSBpcyA0ICgyCi0gKiBzZWNvbmRzIHNpbmNlIHRoZSBXRE9HIHJ1bnMgYXQgMC41SHopLCBpdCB3aWxsIGJlIHNlcnZpY2VkIG9uY2UKLSAqIGV2ZXJ5IDIvMj0xIHNlY29uZC4KLSAqCi0gKiBAcGFyYW0gIGlycSAgICAgICAgICBHUFQgaW50ZXJydXB0IHNvdXJjZSBudW1iZXIgKG5vdCB1c2VkKQotICogQHBhcmFtICBkZXZfaWQgICAgICAgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHVzZWQKLSAqIEByZXR1cm4gYWx3YXlzIHJldHVybnMgXGIgSVJRX0hBTkRMRUQgYXMgZGVmaW5lZCBpbgotICogICAgICAgICBpbmNsdWRlL2xpbnV4L2ludGVycnVwdC5oLgotICovCi1zdGF0aWMgaXJxcmV0dXJuX3QgbXhjX3RpbWVyX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCi17Ci0JdW5zaWduZWQgaW50IG5leHRfbWF0Y2g7Ci0KLQlpZiAoX19yYXdfcmVhZGwoTVhDX0dQVF9HUFRTUikgJiBHUFRTUl9PRjEpIHsKLQkJZG8gewotCQkJdGltZXJfdGljaygpOwotCQkJbmV4dF9tYXRjaCA9IF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUT0NSMSkgKyBMQVRDSDsKLQkJCV9fcmF3X3dyaXRlbChHUFRTUl9PRjEsIE1YQ19HUFRfR1BUU1IpOwotCQkJX19yYXdfd3JpdGVsKG5leHRfbWF0Y2gsIE1YQ19HUFRfR1BUT0NSMSk7Ci0JCX0gd2hpbGUgKChzaWduZWQgbG9uZykobmV4dF9tYXRjaCAtCi0JCQkJICAgICAgIF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUQ05UKSkgPD0gMCk7Ci0JfQotCi0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi0vKiEKLSAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBvYnRhaW4gdGhlIG51bWJlciBvZiBtaWNyb3NlY29uZHMgc2luY2UgdGhlIGxhc3QKLSAqIHRpbWVyIGludGVycnVwdC4gTm90ZSB0aGF0IGludGVycnVwdHMgaXMgZGlzYWJsZWQgYnkgZG9fZ2V0dGltZW9mZGF5KCkuCi0gKgotICogQHJldHVybiB0aGUgbnVtYmVyIG9mIG1pY3Jvc2Vjb25kcyBzaW5jZSB0aGUgbGFzdCB0aW1lciBpbnRlcnJ1cHQuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIG14Y19nZXR0aW1lb2Zmc2V0KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyB0aWNrc190b19tYXRjaCwgZWxhcHNlZCwgdXNlYywgdGlja191c2VjLCBpOwotCi0JLyogR2V0IHRpY2tzIGJlZm9yZSBuZXh0IHRpbWVyIG1hdGNoICovCi0JdGlja3NfdG9fbWF0Y2ggPQotCSAgICBfX3Jhd19yZWFkbChNWENfR1BUX0dQVE9DUjEpIC0gX19yYXdfcmVhZGwoTVhDX0dQVF9HUFRDTlQpOwotCi0JLyogV2UgbmVlZCBlbGFwc2VkIHRpY2tzIHNpbmNlIGxhc3QgbWF0Y2ggKi8KLQllbGFwc2VkID0gTEFUQ0ggLSB0aWNrc190b19tYXRjaDsKLQotCS8qIE5vdyBjb252ZXJ0IHRoZW0gdG8gdXNlYyAqLwotCS8qIEluc3VyZSBubyBvdmVyZmxvdyB3aGVuIGNhbGN1bGF0aW5nIHRoZSB1c2VjIGJlbG93ICovCi0JZm9yIChpID0gMSwgdGlja191c2VjID0gdGlja19uc2VjIC8gMTAwMDs7IGkgKj0gMikgewotCQl0aWNrX3VzZWMgLz0gaTsKLQkJaWYgKCgweEZGRkZGRkZGIC8gdGlja191c2VjKSA+IGVsYXBzZWQpCi0JCQlicmVhazsKLQl9Ci0JdXNlYyA9ICh1bnNpZ25lZCBsb25nKShlbGFwc2VkICogdGlja191c2VjKSAvIChMQVRDSCAvIGkpOwotCi0JcmV0dXJuIHVzZWM7Ci19Ci0KLS8qIQotICogVGhlIE9TIHRpY2sgdGltZXIgaW50ZXJydXB0IHN0cnVjdHVyZS4KLSAqLwotc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gdGltZXJfaXJxID0gewotCS5uYW1lID0gIk1YQyBUaW1lciBUaWNrIiwKLQkuZmxhZ3MgPSBJUlFGX0RJU0FCTEVEIHwgSVJRRl9USU1FUiwKLQkuaGFuZGxlciA9IG14Y190aW1lcl9pbnRlcnJ1cHQKLX07Ci0KLS8qIQotICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIEdQVCB0byBwcm9kdWNlIGFuIGludGVycnVwdAotICogYmFzZWQgb24gSFouICBJdCBpcyBjYWxsZWQgYnkgc3RhcnRfa2VybmVsKCkgZHVyaW5nIHN5c3RlbSBzdGFydHVwLgotICovCi12b2lkIF9faW5pdCBteGNfaW5pdF90aW1lKHZvaWQpCi17Ci0JdTMyIHJlZywgdjsKLQlyZWcgPSBfX3Jhd19yZWFkbChNWENfR1BUX0dQVENSKTsKLQlyZWcgJj0gfkdQVENSX0VOQUJMRTsKLQlfX3Jhd193cml0ZWwocmVnLCBNWENfR1BUX0dQVENSKTsKLQlyZWcgfD0gR1BUQ1JfU1dSOwotCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19HUFRfR1BUQ1IpOwotCi0Jd2hpbGUgKChfX3Jhd19yZWFkbChNWENfR1BUX0dQVENSKSAmIEdQVENSX1NXUikgIT0gMCkKLQkJY3B1X3JlbGF4KCk7Ci0KLQlyZWcgPSBHUFRDUl9GUlIgfCBHUFRDUl9DTEtTUkNfSElHSEZSRVE7Ci0JX19yYXdfd3JpdGVsKHJlZywgTVhDX0dQVF9HUFRDUik7Ci0KLQkvKiBUT0RPOiBnZXQgdGltZXIgcmF0ZSBmcm9tIGNsayBkcml2ZXIgKi8KLQl2ID0gNjY1MDAwMDA7Ci0KLQlfX3Jhd193cml0ZWwoKHYgLyBDTE9DS19USUNLX1JBVEUpIC0gMSwgTVhDX0dQVF9HUFRQUik7Ci0KLQlpZiAoKHYgJSBDTE9DS19USUNLX1JBVEUpICE9IDApIHsKLQkJcHJfaW5mbygiXG5XQVJOSU5HOiBDYW4ndCBnZW5lcmF0ZSBDTE9DS19USUNLX1JBVEUgYXQgJWQgSHpcbiIsCi0JCQlDTE9DS19USUNLX1JBVEUpOwotCX0KLQlwcl9pbmZvKCJBY3R1YWwgQ0xPQ0tfVElDS19SQVRFIGlzICVkIEh6XG4iLAotCQl2IC8gKChfX3Jhd19yZWFkbChNWENfR1BUX0dQVFBSKSAmIDB4RkZGKSArIDEpKTsKLQotCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUQ05UKTsKLQlyZWcgKz0gTEFUQ0g7Ci0JX19yYXdfd3JpdGVsKHJlZywgTVhDX0dQVF9HUFRPQ1IxKTsKLQotCXNldHVwX2lycShNWENfSU5UX0dQVCwgJnRpbWVyX2lycSk7Ci0KLQlyZWcgPSBfX3Jhd19yZWFkbChNWENfR1BUX0dQVENSKTsKLQlyZWcgPQotCSAgICBHUFRDUl9GUlIgfCBHUFRDUl9DTEtTUkNfSElHSEZSRVEgfCBHUFRDUl9TVE9QRU4gfCBHUFRDUl9ET1pFTiB8Ci0JICAgIEdQVENSX1dBSVRFTiB8IEdQVENSX0VOTU9EIHwgR1BUQ1JfRU5BQkxFOwotCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19HUFRfR1BUQ1IpOwotCi0JX19yYXdfd3JpdGVsKEdQVElSX09GMUlFLCBNWENfR1BUX0dQVElSKTsKLX0KLQotc3RydWN0IHN5c190aW1lciBteGNfdGltZXIgPSB7Ci0JLmluaXQgPSBteGNfaW5pdF90aW1lLAotCS5vZmZzZXQgPSBteGNfZ2V0dGltZW9mZnNldCwKLX07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAxL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9NYWtlZmlsZQppbmRleCBjMDZmNTI1Li4xYmRhOGY1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAxL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDEvTWFrZWZpbGUKQEAgLTMsNyArMyw5IEBACiAjCiAKICMgQ29tbW9uIHN1cHBvcnQKLW9iai15IDo9IGlvLm8gaWQubyBjbG9jay5vIGlycS5vIG11eC5vIHNlcmlhbC5vIGRldmljZXMubworb2JqLXkgOj0gaW8ubyBpZC5vIHNyYW0ubyBjbG9jay5vIGlycS5vIG11eC5vIHNlcmlhbC5vIGRldmljZXMubworCitvYmotJChDT05GSUdfT01BUF9NQ0JTUCkgKz0gbWNic3AubwogCiBvYmotJChDT05GSUdfT01BUF9NUFVfVElNRVIpCSs9IHRpbWUubwogb2JqLSQoQ09ORklHX09NQVBfMzJLX1RJTUVSKQkrPSB0aW1lcjMyay5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW5va2lhNzcwLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW5va2lhNzcwLmMKaW5kZXggYmNiOTg0Zi4uM2YzOWUwZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1ub2tpYTc3MC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtbm9raWE3NzAuYwpAQCAtMTAsNiArMTAsNyBAQAogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KQEAgLTIwMiw3ICsyMDMsNyBAQAogI2RlZmluZQlBTVBMSUZJRVJfQ1RSTF9HUElPCTU4CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrICpkc3B4b3JfY2s7Ci1zdGF0aWMgREVDTEFSRV9NVVRFWChhdWRpb19wd3Jfc2VtKTsKK3N0YXRpYyBERUZJTkVfTVVURVgoYXVkaW9fcHdyX2xvY2spOwogLyoKICAqIGF1ZGlvX3B3cl9zdGF0ZQogICogKy0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpAQCAtMjE4LDcgKzIxOSw3IEBACiBzdGF0aWMgaW50IGF1ZGlvX3B3cl9zdGF0ZSA9IC0xOwogCiAvKgotICogYXVkaW9fcHdyX3VwIC8gZG93biBzaG91bGQgYmUgY2FsbGVkIHVuZGVyIGF1ZGlvX3B3cl9zZW0KKyAqIGF1ZGlvX3B3cl91cCAvIGRvd24gc2hvdWxkIGJlIGNhbGxlZCB1bmRlciBhdWRpb19wd3JfbG9jawogICovCiBzdGF0aWMgdm9pZCBub2tpYTc3MF9hdWRpb19wd3JfdXAodm9pZCkKIHsKQEAgLTIzNywxMSArMjM4LDExIEBACiAKIHN0YXRpYyB2b2lkIGNvZGVjX2RlbGF5ZWRfcG93ZXJfZG93bihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7Ci0JZG93bigmYXVkaW9fcHdyX3NlbSk7CisJbXV0ZXhfbG9jaygmYXVkaW9fcHdyX2xvY2spOwogCWlmIChhdWRpb19wd3Jfc3RhdGUgPT0gLTEpCiAJCWFpYzIzX3Bvd2VyX2Rvd24oKTsKIAljbGtfZGlzYWJsZShkc3B4b3JfY2spOwotCXVwKCZhdWRpb19wd3Jfc2VtKTsKKwltdXRleF91bmxvY2soJmF1ZGlvX3B3cl9sb2NrKTsKIH0KIAogc3RhdGljIERFQ0xBUkVfREVMQVlFRF9XT1JLKGNvZGVjX3Bvd2VyX2Rvd25fd29yaywgY29kZWNfZGVsYXllZF9wb3dlcl9kb3duKTsKQEAgLTI1OCwxOSArMjU5LDE5IEBACiBzdGF0aWMgaW50CiBub2tpYTc3MF9hdWRpb19wd3JfdXBfcmVxdWVzdChzdHJ1Y3QgZHNwX2tmdW5jX2RldmljZSAqa2RldiwgaW50IHN0YWdlKQogewotCWRvd24oJmF1ZGlvX3B3cl9zZW0pOworCW11dGV4X2xvY2soJmF1ZGlvX3B3cl9sb2NrKTsKIAlpZiAoYXVkaW9fcHdyX3N0YXRlID09IC0xKQogCQlub2tpYTc3MF9hdWRpb19wd3JfdXAoKTsKIAkvKiBmb3JjZSBhdWRpb19wd3Jfc3RhdGUgPSAwLCBldmVuIGlmIGl0IHdhcyAxLiAqLwogCWF1ZGlvX3B3cl9zdGF0ZSA9IDA7Ci0JdXAoJmF1ZGlvX3B3cl9zZW0pOworCW11dGV4X3VubG9jaygmYXVkaW9fcHdyX2xvY2spOwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50CiBub2tpYTc3MF9hdWRpb19wd3JfZG93bl9yZXF1ZXN0KHN0cnVjdCBkc3Bfa2Z1bmNfZGV2aWNlICprZGV2LCBpbnQgc3RhZ2UpCiB7Ci0JZG93bigmYXVkaW9fcHdyX3NlbSk7CisJbXV0ZXhfbG9jaygmYXVkaW9fcHdyX2xvY2spOwogCXN3aXRjaCAoc3RhZ2UpIHsKIAljYXNlIDE6CiAJCWlmIChhdWRpb19wd3Jfc3RhdGUgPT0gMCkKQEAgLTI4Myw3ICsyODQsNyBAQAogCQl9CiAJCWJyZWFrOwogCX0KLQl1cCgmYXVkaW9fcHdyX3NlbSk7CisJbXV0ZXhfdW5sb2NrKCZhdWRpb19wd3JfbG9jayk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtb3NrLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW9zay5jCmluZGV4IGE2NjUwNWYuLjg0NWM2NjMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtb3NrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYwpAQCAtMjY3LDEzICsyNjcsMTcgQEAKIAogc3RhdGljIHZvaWQgX19pbml0IG9za19pbml0X3NtYzkxeCh2b2lkKQogeworCXUzMiBsOworCiAJaWYgKChncGlvX3JlcXVlc3QoMCwgInNtY19pcnEiKSkgPCAwKSB7CiAJCXByaW50aygiRXJyb3IgcmVxdWVzdGluZyBncGlvIDAgZm9yIHNtYzkxeCBpcnFcbiIpOwogCQlyZXR1cm47CiAJfQogCiAJLyogQ2hlY2sgRU1JRlMgd2FpdCBzdGF0ZXMgdG8gZml4IGVycm9ycyB3aXRoIFNNQ19HRVRfUEtUX0hEUiAqLwotCUVNSUZTX0NDUygxKSB8PSAweDM7CisJbCA9IG9tYXBfcmVhZGwoRU1JRlNfQ0NTKDEpKTsKKwlsIHw9IDB4MzsKKwlvbWFwX3dyaXRlbChsLCBFTUlGU19DQ1MoMSkpOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgb3NrX2luaXRfY2Yodm9pZCkKQEAgLTUyNiwyMCArNTMwLDI2IEBACiAKIHN0YXRpYyB2b2lkIF9faW5pdCBvc2tfaW5pdCh2b2lkKQogeworCXUzMiBsOworCiAJLyogV29ya2Fyb3VuZCBmb3Igd3JvbmcgQ1MzIChOT1IgZmxhc2gpIHRpbWluZwogCSAqIFRoZXJlIGFyZSBzb21lIFUtQm9vdCB2ZXJzaW9ucyBvdXQgdGhlcmUgd2hpY2ggY29uZmlndXJlCiAJICogd3JvbmcgQ1MzIG1lbW9yeSB0aW1pbmdzLiBUaGlzIG1haW5seSBsZWFkcyB0byBDUkMKIAkgKiBvciBzaW1pbGFyIGVycm9ycyBpZiB5b3UgdXNlIE5PUiBmbGFzaCAoZS5nLiB3aXRoIEpGRlMyKQogCSAqLwotCWlmIChFTUlGU19DQ1MoMykgIT0gRU1JRlNfQ1MzX1ZBTCkKLQkJRU1JRlNfQ0NTKDMpID0gRU1JRlNfQ1MzX1ZBTDsKKwlsID0gb21hcF9yZWFkbChFTUlGU19DQ1MoMykpOworCWlmIChsICE9IEVNSUZTX0NTM19WQUwpCisJCW9tYXBfd3JpdGVsKEVNSUZTX0NTM19WQUwsIEVNSUZTX0NDUygzKSk7CiAKIAlvc2tfZmxhc2hfcmVzb3VyY2UuZW5kID0gb3NrX2ZsYXNoX3Jlc291cmNlLnN0YXJ0ID0gb21hcF9jczNfcGh5cygpOwogCW9za19mbGFzaF9yZXNvdXJjZS5lbmQgKz0gU1pfMzJNIC0gMTsKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhvc2s1OTEyX2RldmljZXMsIEFSUkFZX1NJWkUob3NrNTkxMl9kZXZpY2VzKSk7CiAJb21hcF9ib2FyZF9jb25maWcgPSBvc2tfY29uZmlnOwogCW9tYXBfYm9hcmRfY29uZmlnX3NpemUgPSBBUlJBWV9TSVpFKG9za19jb25maWcpOwotCVVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyB8PSAoMyA8PCAxKTsKKworCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwlsIHw9ICgzIDw8IDEpOworCW9tYXBfd3JpdGVsKGwsIFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKIAogCS8qIGlycSBmb3IgdHBzNjUwMTAgY2hpcCAqLwogCS8qIGJvb3Rsb2FkZXIgZWZmZWN0aXZlbHkgZG9lczogIG9tYXBfY2ZnX3JlZyhVMTlfMTYxMF9NUFVJTzEpOyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9mcGdhLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAxL2ZwZ2EuYwppbmRleCAzMGUxODgxLi4wY2Y2MmVmIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAxL2ZwZ2EuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAxL2ZwZ2EuYwpAQCAtMzIsNyArMzIsNyBAQAogCiBzdGF0aWMgdm9pZCBmcGdhX21hc2tfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7Ci0JaXJxIC09IE9NQVAxNTEwX0lIX0ZQR0FfQkFTRTsKKwlpcnEgLT0gT01BUF9GUEdBX0lSUV9CQVNFOwogCiAJaWYgKGlycSA8IDgpCiAJCV9fcmF3X3dyaXRlYigoX19yYXdfcmVhZGIoT01BUDE1MTBfRlBHQV9JTVJfTE8pCkBAIC02NSw3ICs2NSw3IEBACiAKIHN0YXRpYyB2b2lkIGZwZ2FfdW5tYXNrX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewotCWlycSAtPSBPTUFQMTUxMF9JSF9GUEdBX0JBU0U7CisJaXJxIC09IE9NQVBfRlBHQV9JUlFfQkFTRTsKIAogCWlmIChpcnEgPCA4KQogCQlfX3Jhd193cml0ZWIoKF9fcmF3X3JlYWRiKE9NQVAxNTEwX0ZQR0FfSU1SX0xPKSB8ICgxIDw8IGlycSkpLApAQCAtOTUsOCArOTUsOCBAQAogCWlmICghc3RhdCkKIAkJcmV0dXJuOwogCi0JZm9yIChmcGdhX2lycSA9IE9NQVAxNTEwX0lIX0ZQR0FfQkFTRTsKLQkgICAgIChmcGdhX2lycSA8IChPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyBOUl9GUEdBX0lSUVMpKSAmJiBzdGF0OworCWZvciAoZnBnYV9pcnEgPSBPTUFQX0ZQR0FfSVJRX0JBU0U7CisJICAgICAoZnBnYV9pcnEgPCBPTUFQX0ZQR0FfSVJRX0VORCkgJiYgc3RhdDsKIAkgICAgIGZwZ2FfaXJxKyssIHN0YXQgPj49IDEpIHsKIAkJaWYgKHN0YXQgJiAxKSB7CiAJCQlkID0gaXJxX2Rlc2MgKyBmcGdhX2lycTsKQEAgLTE1MSw3ICsxNTEsNyBAQAogCV9fcmF3X3dyaXRlYigwLCBPTUFQMTUxMF9GUEdBX0lNUl9ISSk7CiAJX19yYXdfd3JpdGViKDAsIElOTk9WQVRPUl9GUEdBX0lNUjIpOwogCi0JZm9yIChpID0gT01BUDE1MTBfSUhfRlBHQV9CQVNFOyBpIDwgKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIE5SX0ZQR0FfSVJRUyk7IGkrKykgeworCWZvciAoaSA9IE9NQVBfRlBHQV9JUlFfQkFTRTsgaSA8IE9NQVBfRlBHQV9JUlFfRU5EOyBpKyspIHsKIAogCQlpZiAoaSA9PSBPTUFQMTUxMF9JTlRfRlBHQV9UUykgewogCQkJLyoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDEvbWNic3AuYyBiL2FyY2gvYXJtL21hY2gtb21hcDEvbWNic3AuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDJjMjUyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9tY2JzcC5jCkBAIC0wLDAgKzEsMjgwIEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1vbWFwMS9tY2JzcC5jCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiBDb250YWN0OiBFZHVhcmRvIFZhbGVudGluIDxlZHVhcmRvLnZhbGVudGluQGluZHQub3JnLmJyPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTXVsdGljaGFubmVsIG1vZGUgbm90IHN1cHBvcnRlZC4KKyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvZG1hLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbXV4Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY3B1Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbWNic3AuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9kc3BfY29tbW9uLmg+CisKKyNkZWZpbmUgRFBTX1JTVENUMl9QRVJfRU4JKDEgPDwgMCkKKyNkZWZpbmUgRFNQX1JTVENUMl9XRF9QRVJfRU4JKDEgPDwgMSkKKworc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayB7CisJc3RydWN0IGNsayBjbGs7CisJc3RydWN0IGNsayAqKmNoaWxkczsKKwlpbnQgbl9jaGlsZHM7Cit9OworCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMTVYWCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMTZYWCkKK3N0YXRpYyB2b2lkIG9tYXBfbWNic3BfY2xrX2luaXQoc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayAqbWNsaykKK3sKKwljb25zdCBjaGFyICpjbGtfbmFtZXNbXSA9IHsgImRzcF9jayIsICJhcGlfY2siLCAiZHNweG9yX2NrIiB9OworCWludCBpOworCisJbWNsay0+bl9jaGlsZHMgPSBBUlJBWV9TSVpFKGNsa19uYW1lcyk7CisJbWNsay0+Y2hpbGRzID0ga3phbGxvYyhtY2xrLT5uX2NoaWxkcyAqIHNpemVvZihzdHJ1Y3QgY2xrICopLAorCQkJCUdGUF9LRVJORUwpOworCisJZm9yIChpID0gMDsgaSA8IG1jbGstPm5fY2hpbGRzOyBpKyspIHsKKwkJLyogV2UgZmFrZSBhIHBsYXRmb3JtIGRldmljZSB0byBnZXQgY29ycmVjdCBkZXZpY2UgaWQgKi8KKwkJc3RydWN0IHBsYXRmb3JtX2RldmljZSBwZGV2OworCisJCXBkZXYuZGV2LmJ1cyA9ICZwbGF0Zm9ybV9idXNfdHlwZTsKKwkJcGRldi5pZCA9IG1jbGstPmNsay5pZDsKKwkJbWNsay0+Y2hpbGRzW2ldID0gY2xrX2dldCgmcGRldi5kZXYsIGNsa19uYW1lc1tpXSk7CisJCWlmIChJU19FUlIobWNsay0+Y2hpbGRzW2ldKSkKKwkJCXByaW50ayhLRVJOX0VSUiAiQ291bGQgbm90IGdldCBjbG9jayAlcyAoJWQpLlxuIiwKKwkJCQljbGtfbmFtZXNbaV0sIG1jbGstPmNsay5pZCk7CisJfQorfQorCitzdGF0aWMgaW50IG9tYXBfbWNic3BfY2xrX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayAqbWNsayA9IGNvbnRhaW5lcl9vZihjbGssCisJCQkJCXN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGssIGNsayk7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWNsay0+bl9jaGlsZHM7IGkrKykKKwkJY2xrX2VuYWJsZShtY2xrLT5jaGlsZHNbaV0pOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBvbWFwX21jYnNwX2Nsa19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrICptY2xrID0gY29udGFpbmVyX29mKGNsaywKKwkJCQkJc3RydWN0IG1jYnNwX2ludGVybmFsX2NsaywgY2xrKTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBtY2xrLT5uX2NoaWxkczsgaSsrKQorCQljbGtfZGlzYWJsZShtY2xrLT5jaGlsZHNbaV0pOworfQorCitzdGF0aWMgc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayBvbWFwX21jYnNwX2Nsa3NbXSA9IHsKKwl7CisJCS5jbGsgPSB7CisJCQkubmFtZSAJCT0gIm1jYnNwX2NsayIsCisJCQkuaWQJCT0gMSwKKwkJCS5lbmFibGUJCT0gb21hcF9tY2JzcF9jbGtfZW5hYmxlLAorCQkJLmRpc2FibGUJPSBvbWFwX21jYnNwX2Nsa19kaXNhYmxlLAorCQl9LAorCX0sCisJeworCQkuY2xrID0geworCQkJLm5hbWUgCQk9ICJtY2JzcF9jbGsiLAorCQkJLmlkCQk9IDMsCisJCQkuZW5hYmxlCQk9IG9tYXBfbWNic3BfY2xrX2VuYWJsZSwKKwkJCS5kaXNhYmxlCT0gb21hcF9tY2JzcF9jbGtfZGlzYWJsZSwKKwkJfSwKKwl9LAorfTsKKworI2RlZmluZSBvbWFwX21jYnNwX2Nsa3Nfc2l6ZQlBUlJBWV9TSVpFKG9tYXBfbWNic3BfY2xrcykKKyNlbHNlCisjZGVmaW5lIG9tYXBfbWNic3BfY2xrc19zaXplCTAKK3N0YXRpYyBzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrIF9faW5pdGRhdGEgKm9tYXBfbWNic3BfY2xrczsKK3N0YXRpYyBpbmxpbmUgdm9pZCBvbWFwX21jYnNwX2Nsa19pbml0KHN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgKm1jbGspCit7IH0KKyNlbmRpZgorCitzdGF0aWMgaW50IG9tYXAxX21jYnNwX2NoZWNrKHVuc2lnbmVkIGludCBpZCkKK3sKKwkvKiBSRVZJU0lUOiBDaGVjayBjb3JyZWN0bHkgZm9yIG51bWJlciBvZiByZWdpc3RlcmVkIE1jQlNQcyAqLworCWlmIChjcHVfaXNfb21hcDczMCgpKSB7CisJCWlmIChpZCA+IE9NQVBfTUFYX01DQlNQX0NPVU5UIC0gMikgeworCQkgICAgICAgcHJpbnRrKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBNY0JTUCVkIGRvZXNuJ3QgZXhpc3RcbiIsCisJCQkJaWQgKyAxKTsKKwkJICAgICAgIHJldHVybiAtRU5PREVWOworCQl9CisJCXJldHVybiAwOworCX0KKworCWlmIChjcHVfaXNfb21hcDE1eHgoKSB8fCBjcHVfaXNfb21hcDE2eHgoKSkgeworCQlpZiAoaWQgPiBPTUFQX01BWF9NQ0JTUF9DT1VOVCAtIDEpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBkb2Vzbid0IGV4aXN0XG4iLAorCQkJCWlkICsgMSk7CisJCQlyZXR1cm4gLUVOT0RFVjsKKwkJfQorCQlyZXR1cm4gMDsKKwl9CisKKwlyZXR1cm4gLUVOT0RFVjsKK30KKworc3RhdGljIHZvaWQgb21hcDFfbWNic3BfcmVxdWVzdCh1bnNpZ25lZCBpbnQgaWQpCit7CisJLyoKKwkgKiBPbiAxNTEwLCAxNjEwIGFuZCAxNzEwLCBNY0JTUDEgYW5kIE1jQlNQMworCSAqIGFyZSBEU1AgcHVibGljIHBlcmlwaGVyYWxzLgorCSAqLworCWlmIChpZCA9PSBPTUFQX01DQlNQMSB8fCBpZCA9PSBPTUFQX01DQlNQMykgeworCQlvbWFwX2RzcF9yZXF1ZXN0X21lbSgpOworCQkvKgorCQkgKiBEU1AgZXh0ZXJuYWwgcGVyaXBoZXJhbCByZXNldAorCQkgKiBGSVhNRTogVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gZHNwIGNvZGUKKwkJICovCisJCV9fcmF3X3dyaXRldyhfX3Jhd19yZWFkdyhEU1BfUlNUQ1QyKSB8IERQU19SU1RDVDJfUEVSX0VOIHwKKwkJCQlEU1BfUlNUQ1QyX1dEX1BFUl9FTiwgRFNQX1JTVENUMik7CisJfQorfQorCitzdGF0aWMgdm9pZCBvbWFwMV9tY2JzcF9mcmVlKHVuc2lnbmVkIGludCBpZCkKK3sKKwlpZiAoaWQgPT0gT01BUF9NQ0JTUDEgfHwgaWQgPT0gT01BUF9NQ0JTUDMpCisJCW9tYXBfZHNwX3JlbGVhc2VfbWVtKCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9tY2JzcF9vcHMgb21hcDFfbWNic3Bfb3BzID0geworCS5jaGVjawkJPSBvbWFwMV9tY2JzcF9jaGVjaywKKwkucmVxdWVzdAk9IG9tYXAxX21jYnNwX3JlcXVlc3QsCisJLmZyZWUJCT0gb21hcDFfbWNic3BfZnJlZSwKK307CisKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQNzMwCitzdGF0aWMgc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSBvbWFwNzMwX21jYnNwX3BkYXRhW10gPSB7CisJeworCQkudmlydF9iYXNlCT0gaW9fcDJ2KE9NQVA3MzBfTUNCU1AxX0JBU0UpLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDFfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVBfRE1BX01DQlNQMV9UWCwKKwkJLnJ4X2lycQkJPSBJTlRfNzMwX01jQlNQMVJYLAorCQkudHhfaXJxCQk9IElOVF83MzBfTWNCU1AxVFgsCisJCS5vcHMJCT0gJm9tYXAxX21jYnNwX29wcywKKwl9LAorCXsKKwkJLnZpcnRfYmFzZQk9IGlvX3AydihPTUFQNzMwX01DQlNQMl9CQVNFKSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUF9ETUFfTUNCU1AzX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDNfVFgsCisJCS5yeF9pcnEJCT0gSU5UXzczMF9NY0JTUDJSWCwKKwkJLnR4X2lycQkJPSBJTlRfNzMwX01jQlNQMlRYLAorCQkub3BzCQk9ICZvbWFwMV9tY2JzcF9vcHMsCisJfSwKK307CisjZGVmaW5lIE9NQVA3MzBfTUNCU1BfUERBVEFfU1oJCUFSUkFZX1NJWkUob21hcDczMF9tY2JzcF9wZGF0YSkKKyNlbHNlCisjZGVmaW5lIG9tYXA3MzBfbWNic3BfcGRhdGEJCU5VTEwKKyNkZWZpbmUgT01BUDczMF9NQ0JTUF9QREFUQV9TWgkJMAorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMTVYWAorc3RhdGljIHN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgb21hcDE1eHhfbWNic3BfcGRhdGFbXSA9IHsKKwl7CisJCS52aXJ0X2Jhc2UJPSBPTUFQMTUxMF9NQ0JTUDFfQkFTRSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUF9ETUFfTUNCU1AxX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDFfVFgsCisJCS5yeF9pcnEJCT0gSU5UX01jQlNQMVJYLAorCQkudHhfaXJxCQk9IElOVF9NY0JTUDFUWCwKKwkJLm9wcwkJPSAmb21hcDFfbWNic3Bfb3BzLAorCQkuY2xrX25hbWUJPSAibWNic3BfY2xrIiwKKwkJfSwKKwl7CisJCS52aXJ0X2Jhc2UJPSBpb19wMnYoT01BUDE1MTBfTUNCU1AyX0JBU0UpLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDJfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVBfRE1BX01DQlNQMl9UWCwKKwkJLnJ4X2lycQkJPSBJTlRfMTUxMF9TUElfUlgsCisJCS50eF9pcnEJCT0gSU5UXzE1MTBfU1BJX1RYLAorCQkub3BzCQk9ICZvbWFwMV9tY2JzcF9vcHMsCisJfSwKKwl7CisJCS52aXJ0X2Jhc2UJPSBPTUFQMTUxMF9NQ0JTUDNfQkFTRSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUF9ETUFfTUNCU1AzX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDNfVFgsCisJCS5yeF9pcnEJCT0gSU5UX01jQlNQM1JYLAorCQkudHhfaXJxCQk9IElOVF9NY0JTUDNUWCwKKwkJLm9wcwkJPSAmb21hcDFfbWNic3Bfb3BzLAorCQkuY2xrX25hbWUJPSAibWNic3BfY2xrIiwKKwl9LAorfTsKKyNkZWZpbmUgT01BUDE1WFhfTUNCU1BfUERBVEFfU1oJCUFSUkFZX1NJWkUob21hcDE1eHhfbWNic3BfcGRhdGEpCisjZWxzZQorI2RlZmluZSBvbWFwMTV4eF9tY2JzcF9wZGF0YQkJTlVMTAorI2RlZmluZSBPTUFQMTVYWF9NQ0JTUF9QREFUQV9TWgkJMAorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMTZYWAorc3RhdGljIHN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgb21hcDE2eHhfbWNic3BfcGRhdGFbXSA9IHsKKwl7CisJCS52aXJ0X2Jhc2UJPSBPTUFQMTYxMF9NQ0JTUDFfQkFTRSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUF9ETUFfTUNCU1AxX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDFfVFgsCisJCS5yeF9pcnEJCT0gSU5UX01jQlNQMVJYLAorCQkudHhfaXJxCQk9IElOVF9NY0JTUDFUWCwKKwkJLm9wcwkJPSAmb21hcDFfbWNic3Bfb3BzLAorCQkuY2xrX25hbWUJPSAibWNic3BfY2xrIiwKKwl9LAorCXsKKwkJLnZpcnRfYmFzZQk9IGlvX3AydihPTUFQMTYxMF9NQ0JTUDJfQkFTRSksCisJCS5kbWFfcnhfc3luYwk9IE9NQVBfRE1BX01DQlNQMl9SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUF9ETUFfTUNCU1AyX1RYLAorCQkucnhfaXJxCQk9IElOVF8xNjEwX01jQlNQMl9SWCwKKwkJLnR4X2lycQkJPSBJTlRfMTYxMF9NY0JTUDJfVFgsCisJCS5vcHMJCT0gJm9tYXAxX21jYnNwX29wcywKKwl9LAorCXsKKwkJLnZpcnRfYmFzZQk9IE9NQVAxNjEwX01DQlNQM19CQVNFLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDNfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVBfRE1BX01DQlNQM19UWCwKKwkJLnJ4X2lycQkJPSBJTlRfTWNCU1AzUlgsCisJCS50eF9pcnEJCT0gSU5UX01jQlNQM1RYLAorCQkub3BzCQk9ICZvbWFwMV9tY2JzcF9vcHMsCisJCS5jbGtfbmFtZQk9ICJtY2JzcF9jbGsiLAorCX0sCit9OworI2RlZmluZSBPTUFQMTZYWF9NQ0JTUF9QREFUQV9TWgkJQVJSQVlfU0laRShvbWFwMTZ4eF9tY2JzcF9wZGF0YSkKKyNlbHNlCisjZGVmaW5lIG9tYXAxNnh4X21jYnNwX3BkYXRhCQlOVUxMCisjZGVmaW5lIE9NQVAxNlhYX01DQlNQX1BEQVRBX1NaCQkwCisjZW5kaWYKKworaW50IF9faW5pdCBvbWFwMV9tY2JzcF9pbml0KHZvaWQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgb21hcF9tY2JzcF9jbGtzX3NpemU7IGkrKykgeworCQlpZiAoY3B1X2lzX29tYXAxNXh4KCkgfHwgY3B1X2lzX29tYXAxNnh4KCkpIHsKKwkJCW9tYXBfbWNic3BfY2xrX2luaXQoJm9tYXBfbWNic3BfY2xrc1tpXSk7CisJCQljbGtfcmVnaXN0ZXIoJm9tYXBfbWNic3BfY2xrc1tpXS5jbGspOworCQl9CisJfQorCisJaWYgKGNwdV9pc19vbWFwNzMwKCkpCisJCW9tYXBfbWNic3BfcmVnaXN0ZXJfYm9hcmRfY2ZnKG9tYXA3MzBfbWNic3BfcGRhdGEsCisJCQkJCQlPTUFQNzMwX01DQlNQX1BEQVRBX1NaKTsKKworCWlmIChjcHVfaXNfb21hcDE1eHgoKSkKKwkJb21hcF9tY2JzcF9yZWdpc3Rlcl9ib2FyZF9jZmcob21hcDE1eHhfbWNic3BfcGRhdGEsCisJCQkJCQlPTUFQMTVYWF9NQ0JTUF9QREFUQV9TWik7CisKKwlpZiAoY3B1X2lzX29tYXAxNnh4KCkpCisJCW9tYXBfbWNic3BfcmVnaXN0ZXJfYm9hcmRfY2ZnKG9tYXAxNnh4X21jYnNwX3BkYXRhLAorCQkJCQkJT01BUDE2WFhfTUNCU1BfUERBVEFfU1opOworCisJcmV0dXJuIG9tYXBfbWNic3BfaW5pdCgpOworfQorCithcmNoX2luaXRjYWxsKG9tYXAxX21jYnNwX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9wbS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9wbS5jCmluZGV4IGU2YzY0ZTEuLjc0MmY3OWUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDEvcG0uYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAxL3BtLmMKQEAgLTExNiwxMyArMTE2LDYgQEAKIAkJcmV0dXJuOwogCX0KIAotCS8qCi0JICogU2luY2UgYW4gaW50ZXJydXB0IG1heSBzZXQgdXAgYSB0aW1lciwgd2UgZG9uJ3Qgd2FudCB0bwotCSAqIHJlcHJvZ3JhbSB0aGUgaGFyZHdhcmUgdGltZXIgd2l0aCBpbnRlcnJ1cHRzIGVuYWJsZWQuCi0JICogUmUtZW5hYmxlIGludGVycnVwdHMgb25seSBhZnRlciByZXR1cm5pbmcgZnJvbSBpZGxlLgotCSAqLwotCXRpbWVyX2R5bl9yZXByb2dyYW0oKTsKLQogI2lmZGVmIENPTkZJR19PTUFQX01QVV9USU1FUgogI3dhcm5pbmcgRW5hYmxlIDMya0h6IE9TIHRpbWVyIGluIG9yZGVyIHRvIGFsbG93IHNsZWVwIHN0YXRlcyBpbiBpZGxlCiAJdXNlX2lkbGVjdDEgPSB1c2VfaWRsZWN0MSAmIH4oMSA8PCA5KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDEvc3JhbS5TIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9zcmFtLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI2ZDI1MgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDEvc3JhbS5TCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBsaW51eC9hcmNoL2FybS9wbGF0LW9tYXAvc3JhbS1mbi5TCisgKgorICogRnVuY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBydW4gaW4gaW50ZXJuYWwgU1JBTQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW8uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKworCS50ZXh0CisKKy8qCisgKiBSZXByb2dyYW1zIFVMUEQgYW5kIENLQ1RMLgorICovCitFTlRSWShvbWFwMV9zcmFtX3JlcHJvZ3JhbV9jbG9jaykKKwlzdG1mZAlzcCEsIHtyMCAtIHIxMiwgbHJ9CQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNrCisKKwltb3YJcjIsICNJT19BRERSRVNTKERQTExfQ1RMKSAmIDB4ZmYwMDAwMDAKKwlvcnIJcjIsIHIyLCAjSU9fQUREUkVTUyhEUExMX0NUTCkgJiAweDAwZmYwMDAwCisJb3JyCXIyLCByMiwgI0lPX0FERFJFU1MoRFBMTF9DVEwpICYgMHgwMDAwZmYwMAorCisJbW92CXIzLCAjSU9fQUREUkVTUyhBUk1fQ0tDVEwpICYgMHhmZjAwMDAwMAorCW9ycglyMywgcjMsICNJT19BRERSRVNTKEFSTV9DS0NUTCkgJiAweDAwZmYwMDAwCisJb3JyCXIzLCByMywgI0lPX0FERFJFU1MoQVJNX0NLQ1RMKSAmIDB4MDAwMGZmMDAKKworCXRzdAlyMCwgIzEgPDwgNAkJCUAgd2FudCBsb2NrIG1vZGU/CisJYmVxCW5ld2NrCQkJCUAgbm9wZQorCWJpYwlyMCwgcjAsICMxIDw8IDQJCQlAIGVsc2UgY2xlYXIgbG9jayBiaXQKKwlzdHJoCXIwLCBbcjJdCQkJQCBzZXQgZHBsbCBpbnRvIGJ5cGFzcyBtb2RlCisJb3JyCXIwLCByMCwgIzEgPDwgNAkJCUAgc2V0IGxvY2sgYml0IGFnYWluCisKK25ld2NrOgorCXN0cmgJcjEsIFtyM10JCQlAIHdyaXRlIG5ldyBja2N0bCB2YWx1ZQorCXN0cmgJcjAsIFtyMl0JCQlAIHdyaXRlIG5ldyBkcGxsIHZhbHVlCisKKwltb3YJcjQsICMweDA3MDAJCQlAIGxldCB0aGUgY2xvY2tzIHNldHRsZQorCW9ycglyNCwgcjQsICMweDAwZmYKK2RlbGF5OglzdWIJcjQsIHI0LCAjMQorCWNtcAlyNCwgIzAKKwlibmUJZGVsYXkKKworbG9jazoJbGRyaAlyNCwgW3IyXSwgIzAJCQlAIHJlYWQgYmFjayBkcGxsIHZhbHVlCisJdHN0CXIwLCAjMSA8PCA0CQkJQCB3YW50IGxvY2sgbW9kZT8KKwliZXEJb3V0CQkJCUAgbm9wZQorCXRzdAlyNCwgIzEgPDwgMAkJCUAgZHBsbCByYXRlIGxvY2tlZD8KKwliZXEJbG9jawkJCQlAIHRyeSBhZ2FpbgorCitvdXQ6CisJbGRtZmQJc3AhLCB7cjAgLSByMTIsIHBjfQkJQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgorRU5UUlkob21hcDFfc3JhbV9yZXByb2dyYW1fY2xvY2tfc3opCisJLndvcmQJLiAtIG9tYXAxX3NyYW1fcmVwcm9ncmFtX2Nsb2NrCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmlsZQppbmRleCAyZmViNjg3Li45M2VlOTkwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvTWFrZWZpbGUKQEAgLTMsOSArMywxNSBAQAogIwogCiAjIENvbW1vbiBzdXBwb3J0Ci1vYmoteSA6PSBpcnEubyBpZC5vIGlvLm8gc3JhbS1mbi5vIG1lbW9yeS5vIGNvbnRyb2wubyBwcmNtLm8gY2xvY2subyBtdXgubyBcCitvYmoteSA6PSBpcnEubyBpZC5vIGlvLm8gbWVtb3J5Lm8gY29udHJvbC5vIHByY20ubyBjbG9jay5vIG11eC5vIFwKIAkJZGV2aWNlcy5vIHNlcmlhbC5vIGdwbWMubyB0aW1lci1ncC5vCiAKK29iai0kKENPTkZJR19PTUFQX01DQlNQKSArPSBtY2JzcC5vCisKKyMgRnVuY3Rpb25zIGxvYWRlZCB0byBTUkFNCitvYmotJChDT05GSUdfQVJDSF9PTUFQMjQyMCkJCSs9IHNyYW0yNDJ4Lm8KK29iai0kKENPTkZJR19BUkNIX09NQVAyNDMwKQkJKz0gc3JhbTI0M3gubworCiAjIFBvd2VyIE1hbmFnZW1lbnQKIG9iai0kKENPTkZJR19QTSkgKz0gcG0ubyBzbGVlcC5vCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYwppbmRleCBhYjlmYzU3Li4xNTY3NWJjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jCkBAIC00MSw2ICs0MSwyNCBAQAogCiAjZGVmaW5lIE1BWF9DTE9DS19FTkFCTEVfV0FJVAkJMTAwMDAwCiAKKy8qIERQTEwgcmF0ZSByb3VuZGluZzogbWluaW11bSBEUExMIG11bHRpcGxpZXIsIGRpdmlkZXIgdmFsdWVzICovCisjZGVmaW5lIERQTExfTUlOX01VTFRJUExJRVIJCTEKKyNkZWZpbmUgRFBMTF9NSU5fRElWSURFUgkJMQorCisvKiBQb3NzaWJsZSBlcnJvciByZXN1bHRzIGZyb20gX2RwbGxfdGVzdF9tdWx0ICovCisjZGVmaW5lIERQTExfTVVMVF9VTkRFUkZMT1cJCSgxIDw8IDApCisKKy8qCisgKiBTY2FsZSBmYWN0b3IgdG8gbWl0aWdhdGUgcm91bmRvZmYgZXJyb3JzIGluIERQTEwgcmF0ZSByb3VuZGluZy4KKyAqIFRoZSBoaWdoZXIgdGhlIHNjYWxlIGZhY3RvciwgdGhlIGdyZWF0ZXIgdGhlIHJpc2sgb2YgYXJpdGhtZXRpYyBvdmVyZmxvdywKKyAqIGJ1dCB0aGUgY2xvc2VyIHRoZSByb3VuZGVkIHJhdGUgdG8gdGhlIHRhcmdldCByYXRlLiAgRFBMTF9TQ0FMRV9GQUNUT1IKKyAqIG11c3QgYmUgYSBwb3dlciBvZiBEUExMX1NDQUxFX0JBU0UuCisgKi8KKyNkZWZpbmUgRFBMTF9TQ0FMRV9GQUNUT1IJCTY0CisjZGVmaW5lIERQTExfU0NBTEVfQkFTRQkJCTIKKyNkZWZpbmUgRFBMTF9ST1VORElOR19WQUwJCSgoRFBMTF9TQ0FMRV9CQVNFIC8gMikgKiBcCisJCQkJCSAoRFBMTF9TQ0FMRV9GQUNUT1IgLyBEUExMX1NDQUxFX0JBU0UpKQorCiB1OCBjcHVfbWFzazsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05NSw3ICsxMTMsNyBAQAogewogCWxvbmcgbG9uZyBkcGxsX2NsazsKIAl1MzIgZHBsbF9tdWx0LCBkcGxsX2RpdiwgZHBsbDsKLQljb25zdCBzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKKwlzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKIAogCWRkID0gY2xrLT5kcGxsX2RhdGE7CiAJLyogUkVWSVNJVDogV2hhdCBkbyB3ZSByZXR1cm4gb24gZXJyb3I/ICovCkBAIC02MDMsNyArNjIxLDggQEAKIAljbGstPnJhdGUgPSBjbGstPnBhcmVudC0+cmF0ZSAvIG5ld19kaXY7CiAKIAlpZiAoY2xrLT5mbGFncyAmIERFTEFZRURfQVBQICYmIGNwdV9pc19vbWFwMjR4eCgpKSB7Ci0JCV9fcmF3X3dyaXRlbChPTUFQMjRYWF9WQUxJRF9DT05GSUcsIE9NQVAyNFhYX1BSQ01fQ0xLQ0ZHX0NUUkwpOworCQlwcm1fd3JpdGVfbW9kX3JlZyhPTUFQMjRYWF9WQUxJRF9DT05GSUcsCisJCQlPTUFQMjRYWF9HUl9NT0QsIE9NQVAyNFhYX1BSQ01fQ0xLQ0ZHX0NUUkxfT0ZGU0VUKTsKIAkJd21iKCk7CiAJfQogCkBAIC03MjMsNiArNzQyLDE4NCBAQAogCXJldHVybiAwOwogfQogCisvKiBEUExMIHJhdGUgcm91bmRpbmcgY29kZSAqLworCisvKioKKyAqIG9tYXAyX2RwbGxfc2V0X3JhdGVfdG9sZXJhbmNlOiBzZXQgdGhlIGVycm9yIHRvbGVyYW5jZSBkdXJpbmcgcmF0ZSByb3VuZGluZworICogQGNsazogc3RydWN0IGNsayAqIG9mIHRoZSBEUExMCisgKiBAdG9sZXJhbmNlOiBtYXhpbXVtIHJhdGUgZXJyb3IgdG9sZXJhbmNlCisgKgorICogU2V0IHRoZSBtYXhpbXVtIERQTEwgcmF0ZSBlcnJvciB0b2xlcmFuY2UgZm9yIHRoZSByYXRlIHJvdW5kaW5nCisgKiBhbGdvcml0aG0uICBUaGUgcmF0ZSB0b2xlcmFuY2UgaXMgYW4gYXR0ZW1wdCB0byBiYWxhbmNlIERQTEwgcG93ZXIKKyAqIHNhdmluZyAodGhlIGxlYXN0IGRpdmlkZXIgdmFsdWUgIm4iKSB2cy4gcmF0ZSBmaWRlbGl0eSAodGhlIGxlYXN0CisgKiBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGRlc2lyZWQgRFBMTCB0YXJnZXQgcmF0ZSBhbmQgdGhlIHJvdW5kZWQKKyAqIHJhdGUgb3V0IG9mIHRoZSBhbGdvcml0aG0pLiAgU28sIGluY3JlYXNpbmcgdGhlIHRvbGVyYW5jZSBpcyBsaWtlbHkKKyAqIHRvIGRlY3JlYXNlIERQTEwgcG93ZXIgY29uc3VtcHRpb24gYW5kIGluY3JlYXNlIERQTEwgcmF0ZSBlcnJvci4KKyAqIFJldHVybnMgLUVJTlZBTCBpZiBwcm92aWRlZCBhIG51bGwgY2xvY2sgcHRyIG9yIGEgY2xrIHRoYXQgaXMgbm90IGEKKyAqIERQTEw7IG9yIDAgdXBvbiBzdWNjZXNzLgorICovCitpbnQgb21hcDJfZHBsbF9zZXRfcmF0ZV90b2xlcmFuY2Uoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBpbnQgdG9sZXJhbmNlKQoreworCWlmICghY2xrIHx8ICFjbGstPmRwbGxfZGF0YSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljbGstPmRwbGxfZGF0YS0+cmF0ZV90b2xlcmFuY2UgPSB0b2xlcmFuY2U7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2RwbGxfY29tcHV0ZV9uZXdfcmF0ZSh1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlLCB1bnNpZ25lZCBpbnQgbSwgdW5zaWduZWQgaW50IG4pCit7CisJdW5zaWduZWQgbG9uZyBsb25nIG51bTsKKworCW51bSA9ICh1bnNpZ25lZCBsb25nIGxvbmcpcGFyZW50X3JhdGUgKiBtOworCWRvX2RpdihudW0sIG4pOworCXJldHVybiBudW07Cit9CisKKy8qCisgKiBfZHBsbF90ZXN0X211bHQgLSB0ZXN0IGEgRFBMTCBtdWx0aXBsaWVyIHZhbHVlCisgKiBAbTogcG9pbnRlciB0byB0aGUgRFBMTCBtIChtdWx0aXBsaWVyKSB2YWx1ZSB1bmRlciB0ZXN0CisgKiBAbjogY3VycmVudCBEUExMIG4gKGRpdmlkZXIpIHZhbHVlIHVuZGVyIHRlc3QKKyAqIEBuZXdfcmF0ZTogcG9pbnRlciB0byBzdG9yYWdlIGZvciB0aGUgcmVzdWx0aW5nIHJvdW5kZWQgcmF0ZQorICogQHRhcmdldF9yYXRlOiB0aGUgZGVzaXJlZCBEUExMIHJhdGUKKyAqIEBwYXJlbnRfcmF0ZTogdGhlIERQTEwncyBwYXJlbnQgY2xvY2sgcmF0ZQorICoKKyAqIFRoaXMgY29kZSB0ZXN0cyBhIERQTEwgbXVsdGlwbGllciB2YWx1ZSwgZW5zdXJpbmcgdGhhdCB0aGUKKyAqIHJlc3VsdGluZyByYXRlIHdpbGwgbm90IGJlIGhpZ2hlciB0aGFuIHRoZSB0YXJnZXRfcmF0ZSwgYW5kIHRoYXQKKyAqIHRoZSBtdWx0aXBsaWVyIHZhbHVlIGl0c2VsZiBpcyB2YWxpZCBmb3IgdGhlIERQTEwuICBJbml0aWFsbHksIHRoZQorICogaW50ZWdlciBwb2ludGVkIHRvIGJ5IHRoZSBtIGFyZ3VtZW50IHNob3VsZCBiZSBwcmVzY2FsZWQgYnkKKyAqIG11bHRpcGx5aW5nIGJ5IERQTExfU0NBTEVfRkFDVE9SLiAgVGhlIGNvZGUgd2lsbCByZXBsYWNlIHRoaXMgd2l0aAorICogYSBub24tc2NhbGVkIG0gdXBvbiByZXR1cm4uICBUaGlzIG5vbi1zY2FsZWQgbSB3aWxsIHJlc3VsdCBpbiBhCisgKiBuZXdfcmF0ZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0YXJnZXRfcmF0ZSAoYnV0IG5vdCBncmVhdGVyIHRoYW4KKyAqIHRhcmdldF9yYXRlKSBnaXZlbiB0aGUgY3VycmVudCAocGFyZW50X3JhdGUsIG4sIHByZXNjYWxlZCBtKQorICogdHJpcGxlLiBSZXR1cm5zIERQTExfTVVMVF9VTkRFUkZMT1cgaW4gdGhlIGV2ZW50IHRoYXQgdGhlCisgKiBub24tc2NhbGVkIG0gYXR0ZW1wdGVkIHRvIHVuZGVyZmxvdywgd2hpY2ggY2FuIGFsbG93IHRoZSBjYWxsaW5nCisgKiBmdW5jdGlvbiB0byBiYWlsIG91dCBlYXJseTsgb3IgMCB1cG9uIHN1Y2Nlc3MuCisgKi8KK3N0YXRpYyBpbnQgX2RwbGxfdGVzdF9tdWx0KGludCAqbSwgaW50IG4sIHVuc2lnbmVkIGxvbmcgKm5ld19yYXRlLAorCQkJICAgdW5zaWduZWQgbG9uZyB0YXJnZXRfcmF0ZSwKKwkJCSAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpCit7CisJaW50IGZsYWdzID0gMCwgY2FycnkgPSAwOworCisJLyogVW5zY2FsZSBtIGFuZCByb3VuZCBpZiBuZWNlc3NhcnkgKi8KKwlpZiAoKm0gJSBEUExMX1NDQUxFX0ZBQ1RPUiA+PSBEUExMX1JPVU5ESU5HX1ZBTCkKKwkJY2FycnkgPSAxOworCSptID0gKCptIC8gRFBMTF9TQ0FMRV9GQUNUT1IpICsgY2Fycnk7CisKKwkvKgorCSAqIFRoZSBuZXcgcmF0ZSBtdXN0IGJlIDw9IHRoZSB0YXJnZXQgcmF0ZSB0byBhdm9pZCBwcm9ncmFtbWluZworCSAqIGEgcmF0ZSB0aGF0IGlzIGltcG9zc2libGUgZm9yIHRoZSBoYXJkd2FyZSB0byBoYW5kbGUKKwkgKi8KKwkqbmV3X3JhdGUgPSBfZHBsbF9jb21wdXRlX25ld19yYXRlKHBhcmVudF9yYXRlLCAqbSwgbik7CisJaWYgKCpuZXdfcmF0ZSA+IHRhcmdldF9yYXRlKSB7CisJCSgqbSktLTsKKwkJKm5ld19yYXRlID0gMDsKKwl9CisKKwkvKiBHdWFyZCBhZ2FpbnN0IG0gdW5kZXJmbG93ICovCisJaWYgKCptIDwgRFBMTF9NSU5fTVVMVElQTElFUikgeworCQkqbSA9IERQTExfTUlOX01VTFRJUExJRVI7CisJCSpuZXdfcmF0ZSA9IDA7CisJCWZsYWdzID0gRFBMTF9NVUxUX1VOREVSRkxPVzsKKwl9CisKKwlpZiAoKm5ld19yYXRlID09IDApCisJCSpuZXdfcmF0ZSA9IF9kcGxsX2NvbXB1dGVfbmV3X3JhdGUocGFyZW50X3JhdGUsICptLCBuKTsKKworCXJldHVybiBmbGFnczsKK30KKworLyoqCisgKiBvbWFwMl9kcGxsX3JvdW5kX3JhdGUgLSByb3VuZCBhIHRhcmdldCByYXRlIGZvciBhbiBPTUFQIERQTEwKKyAqIEBjbGs6IHN0cnVjdCBjbGsgKiBmb3IgYSBEUExMCisgKiBAdGFyZ2V0X3JhdGU6IGRlc2lyZWQgRFBMTCBjbG9jayByYXRlCisgKgorICogR2l2ZW4gYSBEUExMLCBhIGRlc2lyZWQgdGFyZ2V0IHJhdGUsIGFuZCBhIHJhdGUgdG9sZXJhbmNlLCByb3VuZAorICogdGhlIHRhcmdldCByYXRlIHRvIGEgcG9zc2libGUsIHByb2dyYW1tYWJsZSByYXRlIGZvciB0aGlzIERQTEwuCisgKiBSYXRlIHRvbGVyYW5jZSBpcyBhc3N1bWVkIHRvIGJlIHNldCBieSB0aGUgY2FsbGVyIGJlZm9yZSB0aGlzCisgKiBmdW5jdGlvbiBpcyBjYWxsZWQuICBBdHRlbXB0cyB0byBzZWxlY3QgdGhlIG1pbmltdW0gcG9zc2libGUgbgorICogd2l0aGluIHRoZSB0b2xlcmFuY2UgdG8gcmVkdWNlIHBvd2VyIGNvbnN1bXB0aW9uLiAgU3RvcmVzIHRoZQorICogY29tcHV0ZWQgKG0sIG4pIGluIHRoZSBEUExMJ3MgZHBsbF9kYXRhIHN0cnVjdHVyZSBzbyBzZXRfcmF0ZSgpCisgKiB3aWxsIG5vdCBuZWVkIHRvIGNhbGwgdGhpcyAoZXhwZW5zaXZlKSBmdW5jdGlvbiBhZ2Fpbi4gIFJldHVybnMgfjAKKyAqIGlmIHRoZSB0YXJnZXQgcmF0ZSBjYW5ub3QgYmUgcm91bmRlZCwgZWl0aGVyIGJlY2F1c2UgdGhlIHJhdGUgaXMKKyAqIHRvbyBsb3cgb3IgYmVjYXVzZSB0aGUgcmF0ZSB0b2xlcmFuY2UgaXMgc2V0IHRvbyB0aWdodGx5OyBvciB0aGUKKyAqIHJvdW5kZWQgcmF0ZSB1cG9uIHN1Y2Nlc3MuCisgKi8KK2xvbmcgb21hcDJfZHBsbF9yb3VuZF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyB0YXJnZXRfcmF0ZSkKK3sKKwlpbnQgbSwgbiwgciwgZSwgc2NhbGVkX21heF9tOworCXVuc2lnbmVkIGxvbmcgc2NhbGVkX3J0X3JwLCBuZXdfcmF0ZTsKKwlpbnQgbWluX2UgPSAtMSwgbWluX2VfbSA9IC0xLCBtaW5fZV9uID0gLTE7CisKKwlpZiAoIWNsayB8fCAhY2xrLT5kcGxsX2RhdGEpCisJCXJldHVybiB+MDsKKworCXByX2RlYnVnKCJjbG9jazogc3RhcnRpbmcgRFBMTCByb3VuZF9yYXRlIGZvciBjbG9jayAlcywgdGFyZ2V0IHJhdGUgIgorCQkgIiVsZFxuIiwgY2xrLT5uYW1lLCB0YXJnZXRfcmF0ZSk7CisKKwlzY2FsZWRfcnRfcnAgPSB0YXJnZXRfcmF0ZSAvIChjbGstPnBhcmVudC0+cmF0ZSAvIERQTExfU0NBTEVfRkFDVE9SKTsKKwlzY2FsZWRfbWF4X20gPSBjbGstPmRwbGxfZGF0YS0+bWF4X211bHRpcGxpZXIgKiBEUExMX1NDQUxFX0ZBQ1RPUjsKKworCWNsay0+ZHBsbF9kYXRhLT5sYXN0X3JvdW5kZWRfcmF0ZSA9IDA7CisKKwlmb3IgKG4gPSBjbGstPmRwbGxfZGF0YS0+bWF4X2RpdmlkZXI7IG4gPj0gRFBMTF9NSU5fRElWSURFUjsgbi0tKSB7CisKKwkJLyogQ29tcHV0ZSB0aGUgc2NhbGVkIERQTEwgbXVsdGlwbGllciwgYmFzZWQgb24gdGhlIGRpdmlkZXIgKi8KKwkJbSA9IHNjYWxlZF9ydF9ycCAqIG47CisKKwkJLyoKKwkJICogU2luY2Ugd2UncmUgY291bnRpbmcgbiBkb3duLCBhIG0gb3ZlcmZsb3cgbWVhbnMgd2UgY2FuCisJCSAqIGNhbiBpbW1lZGlhdGVseSBza2lwIHRvIHRoZSBuZXh0IG4KKwkJICovCisJCWlmIChtID4gc2NhbGVkX21heF9tKQorCQkJY29udGludWU7CisKKwkJciA9IF9kcGxsX3Rlc3RfbXVsdCgmbSwgbiwgJm5ld19yYXRlLCB0YXJnZXRfcmF0ZSwKKwkJCQkgICAgY2xrLT5wYXJlbnQtPnJhdGUpOworCisJCWUgPSB0YXJnZXRfcmF0ZSAtIG5ld19yYXRlOworCQlwcl9kZWJ1ZygiY2xvY2s6IG4gPSAlZDogbSA9ICVkOiByYXRlIGVycm9yIGlzICVkICIKKwkJCSAiKG5ld19yYXRlID0gJWxkKVxuIiwgbiwgbSwgZSwgbmV3X3JhdGUpOworCisJCWlmIChtaW5fZSA9PSAtMSB8fAorCQkgICAgbWluX2UgPj0gKGludCkoYWJzKGUpIC0gY2xrLT5kcGxsX2RhdGEtPnJhdGVfdG9sZXJhbmNlKSkgeworCQkJbWluX2UgPSBlOworCQkJbWluX2VfbSA9IG07CisJCQltaW5fZV9uID0gbjsKKworCQkJcHJfZGVidWcoImNsb2NrOiBmb3VuZCBuZXcgbGVhc3QgZXJyb3IgJWRcbiIsIG1pbl9lKTsKKwkJfQorCisJCS8qCisJCSAqIFNpbmNlIHdlJ3JlIGNvdW50aW5nIG4gZG93biwgYSBtIHVuZGVyZmxvdyBtZWFucyB3ZQorCQkgKiBjYW4gYmFpbCBvdXQgY29tcGxldGVseSAoc2luY2UgYXMgbiBkZWNyZWFzZXMgaW4KKwkJICogdGhlIG5leHQgaXRlcmF0aW9uLCB0aGVyZSdzIG5vIHdheSB0aGF0IG0gY2FuCisJCSAqIGluY3JlYXNlIGJleW9uZCB0aGUgY3VycmVudCBtKQorCQkgKi8KKwkJaWYgKHIgJiBEUExMX01VTFRfVU5ERVJGTE9XKQorCQkJYnJlYWs7CisJfQorCisJaWYgKG1pbl9lIDwgMCkgeworCQlwcl9kZWJ1ZygiY2xvY2s6IGVycm9yOiB0YXJnZXQgcmF0ZSBvciB0b2xlcmFuY2UgdG9vIGxvd1xuIik7CisJCXJldHVybiB+MDsKKwl9CisKKwljbGstPmRwbGxfZGF0YS0+bGFzdF9yb3VuZGVkX20gPSBtaW5fZV9tOworCWNsay0+ZHBsbF9kYXRhLT5sYXN0X3JvdW5kZWRfbiA9IG1pbl9lX247CisJY2xrLT5kcGxsX2RhdGEtPmxhc3Rfcm91bmRlZF9yYXRlID0KKwkJX2RwbGxfY29tcHV0ZV9uZXdfcmF0ZShjbGstPnBhcmVudC0+cmF0ZSwgbWluX2VfbSwgIG1pbl9lX24pOworCisJcHJfZGVidWcoImNsb2NrOiBmaW5hbCBsZWFzdCBlcnJvcjogZSA9ICVkLCBtID0gJWQsIG4gPSAlZFxuIiwKKwkJIG1pbl9lLCBtaW5fZV9tLCBtaW5fZV9uKTsKKwlwcl9kZWJ1ZygiY2xvY2s6IGZpbmFsIHJhdGU6ICVsZCAgKHRhcmdldCByYXRlOiAlbGQpXG4iLAorCQkgY2xrLT5kcGxsX2RhdGEtPmxhc3Rfcm91bmRlZF9yYXRlLCB0YXJnZXRfcmF0ZSk7CisKKwlyZXR1cm4gY2xrLT5kcGxsX2RhdGEtPmxhc3Rfcm91bmRlZF9yYXRlOworfQorCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIE9tYXAyIGNsb2NrIHJlc2V0IGFuZCBpbml0IGZ1bmN0aW9ucwogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suaAppbmRleCBkNTk4MGE5Li4zY2QzN2NiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5oCkBAIC0xOCwxMSArMTgsMTYgQEAKIAogI2luY2x1ZGUgPGFzbS9hcmNoL2Nsb2NrLmg+CiAKKy8qIFRoZSBtYXhpbXVtIGVycm9yIGJldHdlZW4gYSB0YXJnZXQgRFBMTCByYXRlIGFuZCB0aGUgcm91bmRlZCByYXRlIGluIEh6ICovCisjZGVmaW5lIERFRkFVTFRfRFBMTF9SQVRFX1RPTEVSQU5DRQk1MDAwMAorCiBpbnQgb21hcDJfY2xrX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspOwogdm9pZCBvbWFwMl9jbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspOwogbG9uZyBvbWFwMl9jbGtfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSk7CiBpbnQgb21hcDJfY2xrX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKTsKIGludCBvbWFwMl9jbGtfc2V0X3BhcmVudChzdHJ1Y3QgY2xrICpjbGssIHN0cnVjdCBjbGsgKm5ld19wYXJlbnQpOworaW50IG9tYXAyX2RwbGxfcmF0ZV90b2xlcmFuY2Vfc2V0KHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgaW50IHRvbGVyYW5jZSk7Citsb25nIG9tYXAyX2RwbGxfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgdGFyZ2V0X3JhdGUpOwogCiAjaWZkZWYgQ09ORklHX09NQVBfUkVTRVRfQ0xPQ0tTCiB2b2lkIG9tYXAyX2Nsa19kaXNhYmxlX3VudXNlZChzdHJ1Y3QgY2xrICpjbGspOwpAQCAtNDIsNiArNDcsNyBAQAogaW50IG9tYXAyX2Nsa3NlbF9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSk7CiB1MzIgb21hcDJfZ2V0X2RwbGxfcmF0ZShzdHJ1Y3QgY2xrICpjbGspOwogaW50IG9tYXAyX3dhaXRfY2xvY2tfcmVhZHkodm9pZCBfX2lvbWVtICpyZWcsIHUzMiBjdmFsLCBjb25zdCBjaGFyICpuYW1lKTsKK3ZvaWQgb21hcDJfY2xrX3ByZXBhcmVfZm9yX3JlYm9vdCh2b2lkKTsKIAogZXh0ZXJuIHU4IGNwdV9tYXNrOwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMjR4eC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0eHguYwppbmRleCBlY2UzMmQ4Li5hYTU2Nzg3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMjR4eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syNHh4LmMKQEAgLTE1NCw3ICsxNTQsNyBAQAogICogVXNlcyB0aGUgY3VycmVudCBwcmNtIHNldCB0byB0ZWxsIGlmIGEgcmF0ZSBpcyB2YWxpZC4KICAqIFlvdSBjYW4gZ28gc2xvd2VyLCBidXQgbm90IGZhc3RlciB3aXRoaW4gYSBnaXZlbiByYXRlIHNldC4KICAqLwotc3RhdGljIHUzMiBvbWFwMl9kcGxsX3JvdW5kX3JhdGUodW5zaWduZWQgbG9uZyB0YXJnZXRfcmF0ZSkKK2xvbmcgb21hcDJfZHBsbGNvcmVfcm91bmRfcmF0ZSh1bnNpZ25lZCBsb25nIHRhcmdldF9yYXRlKQogewogCXUzMiBoaWdoLCBsb3csIGNvcmVfY2xrX3NyYzsKIApAQCAtMTgzLDE0ICsxODMsMTQgQEAKIAogfQogCi1zdGF0aWMgdm9pZCBvbWFwMl9kcGxsX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCitzdGF0aWMgdm9pZCBvbWFwMl9kcGxsY29yZV9yZWNhbGMoc3RydWN0IGNsayAqY2xrKQogewogCWNsay0+cmF0ZSA9IG9tYXAyX2dldF9kcGxsX3JhdGVfMjR4eChjbGspOwogCiAJcHJvcGFnYXRlX3JhdGUoY2xrKTsKIH0KIAotc3RhdGljIGludCBvbWFwMl9yZXByb2dyYW1fZHBsbChzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3N0YXRpYyBpbnQgb21hcDJfcmVwcm9ncmFtX2RwbGxjb3JlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQogewogCXUzMiBjdXJfcmF0ZSwgbG93LCBtdWx0LCBkaXYsIHZhbGlkX3JhdGUsIGRvbmVfcmF0ZTsKIAl1MzIgYnlwYXNzID0gMDsKQEAgLTIwOSw3ICsyMDksNyBAQAogCX0gZWxzZSBpZiAoKHJhdGUgPT0gKGN1cl9yYXRlICogMikpICYmIChtdWx0ID09IDEpKSB7CiAJCW9tYXAyX3JlcHJvZ3JhbV9zZHJjKENPUkVfQ0xLX1NSQ19EUExMX1gyLCAxKTsKIAl9IGVsc2UgaWYgKHJhdGUgIT0gY3VyX3JhdGUpIHsKLQkJdmFsaWRfcmF0ZSA9IG9tYXAyX2RwbGxfcm91bmRfcmF0ZShyYXRlKTsKKwkJdmFsaWRfcmF0ZSA9IG9tYXAyX2RwbGxjb3JlX3JvdW5kX3JhdGUocmF0ZSk7CiAJCWlmICh2YWxpZF9yYXRlICE9IHJhdGUpCiAJCQlnb3RvIGRwbGxfZXhpdDsKIApAQCAtMjU2LDcgKzI1Niw3IEBACiAJCW9tYXAyX2luaXRfbWVtb3J5X3BhcmFtcyhvbWFwMl9kbGxfZm9yY2VfbmVlZGVkKCkpOwogCQlvbWFwMl9yZXByb2dyYW1fc2RyYyhkb25lX3JhdGUsIDApOwogCX0KLQlvbWFwMl9kcGxsX3JlY2FsYygmZHBsbF9jayk7CisJb21hcDJfZHBsbGNvcmVfcmVjYWxjKCZkcGxsX2NrKTsKIAlyZXQgPSAwOwogCiBkcGxsX2V4aXQ6CkBAIC0zODMsNyArMzgzLDcgQEAKIAogCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiAJfQotCW9tYXAyX2RwbGxfcmVjYWxjKCZkcGxsX2NrKTsKKwlvbWFwMl9kcGxsY29yZV9yZWNhbGMoJmRwbGxfY2spOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMjR4eC5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0eHguaAppbmRleCA4ODA4MWVkLi5iZTRlMjU1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMjR4eC5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syNHh4LmgKQEAgLTMwLDEyICszMCwxMiBAQAogc3RhdGljIHZvaWQgb21hcDJfc3lzX2Nsa19yZWNhbGMoc3RydWN0IGNsayAqY2xrKTsKIHN0YXRpYyB2b2lkIG9tYXAyX29zY19jbGtfcmVjYWxjKHN0cnVjdCBjbGsgKmNsayk7CiBzdGF0aWMgdm9pZCBvbWFwMl9zeXNfY2xrX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspOwotc3RhdGljIHZvaWQgb21hcDJfZHBsbF9yZWNhbGMoc3RydWN0IGNsayAqY2xrKTsKK3N0YXRpYyB2b2lkIG9tYXAyX2RwbGxjb3JlX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspOwogc3RhdGljIGludCBvbWFwMl9jbGtfZml4ZWRfZW5hYmxlKHN0cnVjdCBjbGsgKmNsayk7CiBzdGF0aWMgdm9pZCBvbWFwMl9jbGtfZml4ZWRfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspOwogc3RhdGljIGludCBvbWFwMl9lbmFibGVfb3NjX2NrKHN0cnVjdCBjbGsgKmNsayk7CiBzdGF0aWMgdm9pZCBvbWFwMl9kaXNhYmxlX29zY19jayhzdHJ1Y3QgY2xrICpjbGspOwotc3RhdGljIGludCBvbWFwMl9yZXByb2dyYW1fZHBsbChzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSk7CitzdGF0aWMgaW50IG9tYXAyX3JlcHJvZ3JhbV9kcGxsY29yZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSk7CiAKIC8qIEtleSBkaXZpZGVycyB3aGljaCBtYWtlIHVwIGEgUFJDTSBzZXQuIFJhdGlvJ3MgZm9yIGEgUFJDTSBhcmUgbWFuZGF0ZWQuCiAgKiB4dGFsX3NwZWVkLCBkcGxsX3NwZWVkLCBtcHVfc3BlZWQsIENNX0NMS1NFTF9NUFUsQ01fQ0xLU0VMX0RTUApAQCAtNjY1LDIwICs2NjUsMjcgQEAKICAqIGRlYWwgd2l0aCB0aGlzCiAgKi8KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgZHBsbF9kZCA9IHsKK3N0YXRpYyBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGxfZGQgPSB7CiAJLm11bHRfZGl2MV9yZWcJCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDEpLAogCS5tdWx0X21hc2sJCT0gT01BUDI0WFhfRFBMTF9NVUxUX01BU0ssCiAJLmRpdjFfbWFzawkJPSBPTUFQMjRYWF9EUExMX0RJVl9NQVNLLAorCS5tYXhfbXVsdGlwbGllcgkJPSAxMDI0LAorCS5tYXhfZGl2aWRlcgkJPSAxNiwKKwkucmF0ZV90b2xlcmFuY2UJCT0gREVGQVVMVF9EUExMX1JBVEVfVE9MRVJBTkNFCiB9OwogCisvKgorICogWFhYIENhbm5vdCBhZGQgcm91bmRfcmF0ZSBoZXJlIHlldCwgYXMgdGhpcyBpcyBzdGlsbCBhIGNvbXBvc2l0ZSBjbG9jaywKKyAqIG5vdCBqdXN0IGEgRFBMTAorICovCiBzdGF0aWMgc3RydWN0IGNsayBkcGxsX2NrID0gewogCS5uYW1lCQk9ICJkcGxsX2NrIiwKIAkucGFyZW50CQk9ICZzeXNfY2ssCQkvKiBDYW4gYmUgZnVuY18zMmsgYWxzbyAqLwogCS5kcGxsX2RhdGEJPSAmZHBsbF9kZCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0MlggfCBDTE9DS19JTl9PTUFQMjQzWCB8CiAJCQkJUkFURV9QUk9QQUdBVEVTIHwgQUxXQVlTX0VOQUJMRUQsCi0JLnJlY2FsYwkJPSAmb21hcDJfZHBsbF9yZWNhbGMsCi0JLnNldF9yYXRlCT0gJm9tYXAyX3JlcHJvZ3JhbV9kcGxsLAorCS5yZWNhbGMJCT0gJm9tYXAyX2RwbGxjb3JlX3JlY2FsYywKKwkuc2V0X3JhdGUJPSAmb21hcDJfcmVwcm9ncmFtX2RwbGxjb3JlLAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgYXBsbDk2X2NrID0gewpAQCAtMTc0Nyw3ICsxNzU0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwMV9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMV9pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSAxLAogCS5wYXJlbnQJCT0gJmw0X2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQyWCB8IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKQEAgLTE3NTYsNyArMTc2NCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDFfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDFfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gMSwKIAkucGFyZW50CQk9ICZmdW5jXzk2bV9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0MlggfCBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fRkNMS0VOMSksCkBAIC0xNzY1LDcgKzE3NzQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AyX2ljayA9IHsKLQkubmFtZQkJPSAibWNic3AyX2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDIsCiAJLnBhcmVudAkJPSAmbDRfY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDJYIHwgQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLApAQCAtMTc3NCw3ICsxNzg0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwMl9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMl9mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSAyLAogCS5wYXJlbnQJCT0gJmZ1bmNfOTZtX2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQyWCB8IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKQEAgLTE3ODMsNyArMTc5NCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDNfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDNfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gMywKIAkucGFyZW50CQk9ICZsNF9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjIpLApAQCAtMTc5Miw3ICsxODA0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwM19mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwM19mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSAzLAogCS5wYXJlbnQJCT0gJmZ1bmNfOTZtX2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgT01BUDI0WFhfQ01fRkNMS0VOMiksCkBAIC0xODAxLDcgKzE4MTQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3A0X2ljayA9IHsKLQkubmFtZQkJPSAibWNic3A0X2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDQsCiAJLnBhcmVudAkJPSAmbDRfY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4yKSwKQEAgLTE4MTAsNyArMTgyNCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDRfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDRfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gNCwKIAkucGFyZW50CQk9ICZmdW5jXzk2bV9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIE9NQVAyNFhYX0NNX0ZDTEtFTjIpLApAQCAtMTgxOSw3ICsxODM0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwNV9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwNV9pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSA1LAogCS5wYXJlbnQJCT0gJmw0X2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMiksCkBAIC0xODI4LDcgKzE4NDQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3A1X2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3A1X2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDUsCiAJLnBhcmVudAkJPSAmZnVuY185Nm1fY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBPTUFQMjRYWF9DTV9GQ0xLRU4yKSwKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5jCmluZGV4IGI0MmJkZDYuLjQyNjMwOTkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguYwpAQCAtMSwxMCArMSwxMSBAQAogLyoKICAqIE9NQVAzLXNwZWNpZmljIGNsb2NrIGZyYW1ld29yayBmdW5jdGlvbnMKICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAwNyBOb2tpYSBDb3Jwb3JhdGlvbgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IE5va2lhIENvcnBvcmF0aW9uCiAgKgogICogV3JpdHRlbiBieSBQYXVsIFdhbG1zbGV5CisgKiBUZXN0aW5nIGFuZCBpbnRlZ3JhdGlvbiBmaXhlcyBieSBKb3VuaSBIw7ZnYW5kZXIKICAqCiAgKiBQYXJ0cyBvZiB0aGlzIGNvZGUgYXJlIGJhc2VkIG9uIGNvZGUgd3JpdHRlbiBieQogICogUmljaGFyZCBXb29kcnVmZiwgVG9ueSBMaW5kZ3JlbiwgVHV1a2thIFRpa2thbmVuLCBLYXJ0aGlrIERhc3UKQEAgLTIzLDYgKzI0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvbGltaXRzLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9jbG9jay5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3NyYW0uaD4KQEAgLTM3LDggKzM5LDExIEBACiAjaW5jbHVkZSAiY20uaCIKICNpbmNsdWRlICJjbS1yZWdiaXRzLTM0eHguaCIKIAotLyogQ01fQ0xLRU5fUExMKi5FTiogYml0IHZhbHVlcyAqLwotI2RlZmluZSBEUExMX0xPQ0tFRAkJMHg3CisvKiBDTV9BVVRPSURMRV9QTEwqLkFVVE9fKiBiaXQgdmFsdWVzICovCisjZGVmaW5lIERQTExfQVVUT0lETEVfRElTQUJMRQkJCTB4MAorI2RlZmluZSBEUExMX0FVVE9JRExFX0xPV19QT1dFUl9TVE9QCQkweDEKKworI2RlZmluZSBNQVhfRFBMTF9XQUlUX1RSSUVTCQkxMDAwMDAwCiAKIC8qKgogICogb21hcDNfZHBsbF9yZWNhbGMgLSByZWNhbGN1bGF0ZSBEUExMIHJhdGUKQEAgLTUzLDYgKzU4LDI5MCBAQAogCXByb3BhZ2F0ZV9yYXRlKGNsayk7CiB9CiAKKy8qIF9vbWFwM19kcGxsX3dyaXRlX2Nsa2VuIC0gd3JpdGUgY2xrZW5fYml0cyBhcmcgdG8gYSBEUExMJ3MgZW5hYmxlIGJpdHMgKi8KK3N0YXRpYyB2b2lkIF9vbWFwM19kcGxsX3dyaXRlX2Nsa2VuKHN0cnVjdCBjbGsgKmNsaywgdTggY2xrZW5fYml0cykKK3sKKwljb25zdCBzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKKworCWRkID0gY2xrLT5kcGxsX2RhdGE7CisKKwljbV9ybXdfcmVnX2JpdHMoZGQtPmVuYWJsZV9tYXNrLCBjbGtlbl9iaXRzIDw8IF9fZmZzKGRkLT5lbmFibGVfbWFzayksCisJCQlkZC0+Y29udHJvbF9yZWcpOworfQorCisvKiBfb21hcDNfd2FpdF9kcGxsX3N0YXR1czogd2FpdCBmb3IgYSBEUExMIHRvIGVudGVyIGEgc3BlY2lmaWMgc3RhdGUgKi8KK3N0YXRpYyBpbnQgX29tYXAzX3dhaXRfZHBsbF9zdGF0dXMoc3RydWN0IGNsayAqY2xrLCB1OCBzdGF0ZSkKK3sKKwljb25zdCBzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKKwlpbnQgaSA9IDA7CisJaW50IHJldCA9IC1FSU5WQUw7CisJdTMyIGlkbGVzdF9tYXNrOworCisJZGQgPSBjbGstPmRwbGxfZGF0YTsKKworCXN0YXRlIDw8PSBkZC0+aWRsZXN0X2JpdDsKKwlpZGxlc3RfbWFzayA9IDEgPDwgZGQtPmlkbGVzdF9iaXQ7CisKKwl3aGlsZSAoKChjbV9yZWFkX3JlZyhkZC0+aWRsZXN0X3JlZykgJiBpZGxlc3RfbWFzaykgIT0gc3RhdGUpICYmCisJICAgICAgIGkgPCBNQVhfRFBMTF9XQUlUX1RSSUVTKSB7CisJCWkrKzsKKwkJdWRlbGF5KDEpOworCX0KKworCWlmIChpID09IE1BWF9EUExMX1dBSVRfVFJJRVMpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJjbG9jazogJXMgZmFpbGVkIHRyYW5zaXRpb24gdG8gJyVzJ1xuIiwKKwkJICAgICAgIGNsay0+bmFtZSwgKHN0YXRlKSA/ICJsb2NrZWQiIDogImJ5cGFzc2VkIik7CisJfSBlbHNlIHsKKwkJcHJfZGVidWcoImNsb2NrOiAlcyB0cmFuc2l0aW9uIHRvICclcycgaW4gJWQgbG9vcHNcbiIsCisJCQkgY2xrLT5uYW1lLCAoc3RhdGUpID8gImxvY2tlZCIgOiAiYnlwYXNzZWQiLCBpKTsKKworCQlyZXQgPSAwOworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qIE5vbi1DT1JFIERQTEwgKGUuZy4sIERQTExzIHRoYXQgZG8gbm90IGNvbnRyb2wgU0RSQykgY2xvY2sgZnVuY3Rpb25zICovCisKKy8qCisgKiBfb21hcDNfbm9uY29yZV9kcGxsX2xvY2sgLSBpbnN0cnVjdCBhIERQTEwgdG8gbG9jayBhbmQgd2FpdCBmb3IgcmVhZGluZXNzCisgKiBAY2xrOiBwb2ludGVyIHRvIGEgRFBMTCBzdHJ1Y3QgY2xrCisgKgorICogSW5zdHJ1Y3RzIGEgbm9uLUNPUkUgRFBMTCB0byBsb2NrLiAgV2FpdHMgZm9yIHRoZSBEUExMIHRvIHJlcG9ydAorICogcmVhZGluZXNzIGJlZm9yZSByZXR1cm5pbmcuICBXaWxsIHNhdmUgYW5kIHJlc3RvcmUgdGhlIERQTEwncworICogYXV0b2lkbGUgc3RhdGUgYWNyb3NzIHRoZSBlbmFibGUsIHBlciB0aGUgQ0RQIGNvZGUuICBJZiB0aGUgRFBMTAorICogbG9ja2VkIHN1Y2Nlc3NmdWxseSwgcmV0dXJuIDA7IGlmIHRoZSBEUExMIGRpZCBub3QgbG9jayBpbiB0aGUgdGltZQorICogYWxsb3R0ZWQsIG9yIERQTEwzIHdhcyBwYXNzZWQgaW4sIHJldHVybiAtRUlOVkFMLgorICovCitzdGF0aWMgaW50IF9vbWFwM19ub25jb3JlX2RwbGxfbG9jayhzdHJ1Y3QgY2xrICpjbGspCit7CisJdTggYWk7CisJaW50IHI7CisKKwlpZiAoY2xrID09ICZkcGxsM19jaykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwcl9kZWJ1ZygiY2xvY2s6IGxvY2tpbmcgRFBMTCAlc1xuIiwgY2xrLT5uYW1lKTsKKworCWFpID0gb21hcDNfZHBsbF9hdXRvaWRsZV9yZWFkKGNsayk7CisKKwlfb21hcDNfZHBsbF93cml0ZV9jbGtlbihjbGssIERQTExfTE9DS0VEKTsKKworCWlmIChhaSkgeworCQkvKgorCQkgKiBJZiBubyBkb3duc3RyZWFtIGNsb2NrcyBhcmUgZW5hYmxlZCwgQ01fSURMRVNUIGJpdAorCQkgKiBtYXkgbmV2ZXIgYmVjb21lIGFjdGl2ZSwgc28gZG9uJ3Qgd2FpdCBmb3IgRFBMTCB0byBsb2NrLgorCQkgKi8KKwkJciA9IDA7CisJCW9tYXAzX2RwbGxfYWxsb3dfaWRsZShjbGspOworCX0gZWxzZSB7CisJCXIgPSBfb21hcDNfd2FpdF9kcGxsX3N0YXR1cyhjbGssIDEpOworCQlvbWFwM19kcGxsX2RlbnlfaWRsZShjbGspOworCX07CisKKwlyZXR1cm4gcjsKK30KKworLyoKKyAqIG9tYXAzX25vbmNvcmVfZHBsbF9ieXBhc3MgLSBpbnN0cnVjdCBhIERQTEwgdG8gYnlwYXNzIGFuZCB3YWl0IGZvciByZWFkaW5lc3MKKyAqIEBjbGs6IHBvaW50ZXIgdG8gYSBEUExMIHN0cnVjdCBjbGsKKyAqCisgKiBJbnN0cnVjdHMgYSBub24tQ09SRSBEUExMIHRvIGVudGVyIGxvdy1wb3dlciBieXBhc3MgbW9kZS4gIEluCisgKiBieXBhc3MgbW9kZSwgdGhlIERQTEwncyByYXRlIGlzIHNldCBlcXVhbCB0byBpdHMgcGFyZW50IGNsb2NrJ3MKKyAqIHJhdGUuICBXYWl0cyBmb3IgdGhlIERQTEwgdG8gcmVwb3J0IHJlYWRpbmVzcyBiZWZvcmUgcmV0dXJuaW5nLgorICogV2lsbCBzYXZlIGFuZCByZXN0b3JlIHRoZSBEUExMJ3MgYXV0b2lkbGUgc3RhdGUgYWNyb3NzIHRoZSBlbmFibGUsCisgKiBwZXIgdGhlIENEUCBjb2RlLiAgSWYgdGhlIERQTEwgZW50ZXJlZCBieXBhc3MgbW9kZSBzdWNjZXNzZnVsbHksCisgKiByZXR1cm4gMDsgaWYgdGhlIERQTEwgZGlkIG5vdCBlbnRlciBieXBhc3MgaW4gdGhlIHRpbWUgYWxsb3R0ZWQsIG9yCisgKiBEUExMMyB3YXMgcGFzc2VkIGluLCBvciB0aGUgRFBMTCBkb2VzIG5vdCBzdXBwb3J0IGxvdy1wb3dlciBieXBhc3MsCisgKiByZXR1cm4gLUVJTlZBTC4KKyAqLworc3RhdGljIGludCBfb21hcDNfbm9uY29yZV9kcGxsX2J5cGFzcyhzdHJ1Y3QgY2xrICpjbGspCit7CisJaW50IHI7CisJdTggYWk7CisKKwlpZiAoY2xrID09ICZkcGxsM19jaykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIShjbGstPmRwbGxfZGF0YS0+bW9kZXMgJiAoMSA8PCBEUExMX0xPV19QT1dFUl9CWVBBU1MpKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwcl9kZWJ1ZygiY2xvY2s6IGNvbmZpZ3VyaW5nIERQTEwgJXMgZm9yIGxvdy1wb3dlciBieXBhc3NcbiIsCisJCSBjbGstPm5hbWUpOworCisJYWkgPSBvbWFwM19kcGxsX2F1dG9pZGxlX3JlYWQoY2xrKTsKKworCV9vbWFwM19kcGxsX3dyaXRlX2Nsa2VuKGNsaywgRFBMTF9MT1dfUE9XRVJfQllQQVNTKTsKKworCXIgPSBfb21hcDNfd2FpdF9kcGxsX3N0YXR1cyhjbGssIDApOworCisJaWYgKGFpKQorCQlvbWFwM19kcGxsX2FsbG93X2lkbGUoY2xrKTsKKwllbHNlCisJCW9tYXAzX2RwbGxfZGVueV9pZGxlKGNsayk7CisKKwlyZXR1cm4gcjsKK30KKworLyoKKyAqIF9vbWFwM19ub25jb3JlX2RwbGxfc3RvcCAtIGluc3RydWN0IGEgRFBMTCB0byBzdG9wCisgKiBAY2xrOiBwb2ludGVyIHRvIGEgRFBMTCBzdHJ1Y3QgY2xrCisgKgorICogSW5zdHJ1Y3RzIGEgbm9uLUNPUkUgRFBMTCB0byBlbnRlciBsb3ctcG93ZXIgc3RvcC4gV2lsbCBzYXZlIGFuZAorICogcmVzdG9yZSB0aGUgRFBMTCdzIGF1dG9pZGxlIHN0YXRlIGFjcm9zcyB0aGUgc3RvcCwgcGVyIHRoZSBDRFAKKyAqIGNvZGUuICBJZiBEUExMMyB3YXMgcGFzc2VkIGluLCBvciB0aGUgRFBMTCBkb2VzIG5vdCBzdXBwb3J0CisgKiBsb3ctcG93ZXIgc3RvcCwgcmV0dXJuIC1FSU5WQUw7IG90aGVyd2lzZSwgcmV0dXJuIDAuCisgKi8KK3N0YXRpYyBpbnQgX29tYXAzX25vbmNvcmVfZHBsbF9zdG9wKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1OCBhaTsKKworCWlmIChjbGsgPT0gJmRwbGwzX2NrKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICghKGNsay0+ZHBsbF9kYXRhLT5tb2RlcyAmICgxIDw8IERQTExfTE9XX1BPV0VSX1NUT1ApKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwcl9kZWJ1ZygiY2xvY2s6IHN0b3BwaW5nIERQTEwgJXNcbiIsIGNsay0+bmFtZSk7CisKKwlhaSA9IG9tYXAzX2RwbGxfYXV0b2lkbGVfcmVhZChjbGspOworCisJX29tYXAzX2RwbGxfd3JpdGVfY2xrZW4oY2xrLCBEUExMX0xPV19QT1dFUl9TVE9QKTsKKworCWlmIChhaSkKKwkJb21hcDNfZHBsbF9hbGxvd19pZGxlKGNsayk7CisJZWxzZQorCQlvbWFwM19kcGxsX2RlbnlfaWRsZShjbGspOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogb21hcDNfbm9uY29yZV9kcGxsX2VuYWJsZSAtIGluc3RydWN0IGEgRFBMTCB0byBlbnRlciBieXBhc3Mgb3IgbG9jayBtb2RlCisgKiBAY2xrOiBwb2ludGVyIHRvIGEgRFBMTCBzdHJ1Y3QgY2xrCisgKgorICogSW5zdHJ1Y3RzIGEgbm9uLUNPUkUgRFBMTCB0byBlbmFibGUsIGUuZy4sIHRvIGVudGVyIGJ5cGFzcyBvciBsb2NrLgorICogVGhlIGNob2ljZSBvZiBtb2RlcyBkZXBlbmRzIG9uIHRoZSBEUExMJ3MgcHJvZ3JhbW1lZCByYXRlOiBpZiBpdCBpcworICogdGhlIHNhbWUgYXMgdGhlIERQTEwncyBwYXJlbnQgY2xvY2ssIGl0IHdpbGwgZW50ZXIgYnlwYXNzOworICogb3RoZXJ3aXNlLCBpdCB3aWxsIGVudGVyIGxvY2suICBUaGlzIGNvZGUgd2lsbCB3YWl0IGZvciB0aGUgRFBMTCB0bworICogaW5kaWNhdGUgcmVhZGluZXNzIGJlZm9yZSByZXR1cm5pbmcsIHVubGVzcyB0aGUgRFBMTCB0YWtlcyB0b28gbG9uZworICogdG8gZW50ZXIgdGhlIHRhcmdldCBzdGF0ZS4gIEludGVuZGVkIHRvIGJlIHVzZWQgYXMgdGhlIHN0cnVjdCBjbGsncworICogZW5hYmxlIGZ1bmN0aW9uLiAgSWYgRFBMTDMgd2FzIHBhc3NlZCBpbiwgb3IgdGhlIERQTEwgZG9lcyBub3QKKyAqIHN1cHBvcnQgbG93LXBvd2VyIHN0b3AsIG9yIGlmIHRoZSBEUExMIHRvb2sgdG9vIGxvbmcgdG8gZW50ZXIKKyAqIGJ5cGFzcyBvciBsb2NrLCByZXR1cm4gLUVJTlZBTDsgb3RoZXJ3aXNlLCByZXR1cm4gMC4KKyAqLworc3RhdGljIGludCBvbWFwM19ub25jb3JlX2RwbGxfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlpbnQgcjsKKworCWlmIChjbGsgPT0gJmRwbGwzX2NrKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjbGstPnBhcmVudC0+cmF0ZSA9PSBjbGtfZ2V0X3JhdGUoY2xrKSkKKwkJciA9IF9vbWFwM19ub25jb3JlX2RwbGxfYnlwYXNzKGNsayk7CisJZWxzZQorCQlyID0gX29tYXAzX25vbmNvcmVfZHBsbF9sb2NrKGNsayk7CisKKwlyZXR1cm4gcjsKK30KKworLyoqCisgKiBvbWFwM19ub25jb3JlX2RwbGxfZW5hYmxlIC0gaW5zdHJ1Y3QgYSBEUExMIHRvIGVudGVyIGJ5cGFzcyBvciBsb2NrIG1vZGUKKyAqIEBjbGs6IHBvaW50ZXIgdG8gYSBEUExMIHN0cnVjdCBjbGsKKyAqCisgKiBJbnN0cnVjdHMgYSBub24tQ09SRSBEUExMIHRvIGVuYWJsZSwgZS5nLiwgdG8gZW50ZXIgYnlwYXNzIG9yIGxvY2suCisgKiBUaGUgY2hvaWNlIG9mIG1vZGVzIGRlcGVuZHMgb24gdGhlIERQTEwncyBwcm9ncmFtbWVkIHJhdGU6IGlmIGl0IGlzCisgKiB0aGUgc2FtZSBhcyB0aGUgRFBMTCdzIHBhcmVudCBjbG9jaywgaXQgd2lsbCBlbnRlciBieXBhc3M7CisgKiBvdGhlcndpc2UsIGl0IHdpbGwgZW50ZXIgbG9jay4gIFRoaXMgY29kZSB3aWxsIHdhaXQgZm9yIHRoZSBEUExMIHRvCisgKiBpbmRpY2F0ZSByZWFkaW5lc3MgYmVmb3JlIHJldHVybmluZywgdW5sZXNzIHRoZSBEUExMIHRha2VzIHRvbyBsb25nCisgKiB0byBlbnRlciB0aGUgdGFyZ2V0IHN0YXRlLiAgSW50ZW5kZWQgdG8gYmUgdXNlZCBhcyB0aGUgc3RydWN0IGNsaydzCisgKiBlbmFibGUgZnVuY3Rpb24uICBJZiBEUExMMyB3YXMgcGFzc2VkIGluLCBvciB0aGUgRFBMTCBkb2VzIG5vdAorICogc3VwcG9ydCBsb3ctcG93ZXIgc3RvcCwgb3IgaWYgdGhlIERQTEwgdG9vayB0b28gbG9uZyB0byBlbnRlcgorICogYnlwYXNzIG9yIGxvY2ssIHJldHVybiAtRUlOVkFMOyBvdGhlcndpc2UsIHJldHVybiAwLgorICovCitzdGF0aWMgdm9pZCBvbWFwM19ub25jb3JlX2RwbGxfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJaWYgKGNsayA9PSAmZHBsbDNfY2spCisJCXJldHVybjsKKworCV9vbWFwM19ub25jb3JlX2RwbGxfc3RvcChjbGspOworfQorCisvKioKKyAqIG9tYXAzX2RwbGxfYXV0b2lkbGVfcmVhZCAtIHJlYWQgYSBEUExMJ3MgYXV0b2lkbGUgYml0cworICogQGNsazogc3RydWN0IGNsayAqIG9mIHRoZSBEUExMIHRvIHJlYWQKKyAqCisgKiBSZXR1cm4gdGhlIERQTEwncyBhdXRvaWRsZSBiaXRzLCBzaGlmdGVkIGRvd24gdG8gYml0IDAuICBSZXR1cm5zCisgKiAtRUlOVkFMIGlmIHBhc3NlZCBhIG51bGwgcG9pbnRlciBvciBpZiB0aGUgc3RydWN0IGNsayBkb2VzIG5vdAorICogYXBwZWFyIHRvIHJlZmVyIHRvIGEgRFBMTC4KKyAqLworc3RhdGljIHUzMiBvbWFwM19kcGxsX2F1dG9pZGxlX3JlYWQoc3RydWN0IGNsayAqY2xrKQoreworCWNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgKmRkOworCXUzMiB2OworCisJaWYgKCFjbGsgfHwgIWNsay0+ZHBsbF9kYXRhKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRkID0gY2xrLT5kcGxsX2RhdGE7CisKKwl2ID0gY21fcmVhZF9yZWcoZGQtPmF1dG9pZGxlX3JlZyk7CisJdiAmPSBkZC0+YXV0b2lkbGVfbWFzazsKKwl2ID4+PSBfX2ZmcyhkZC0+YXV0b2lkbGVfbWFzayk7CisKKwlyZXR1cm4gdjsKK30KKworLyoqCisgKiBvbWFwM19kcGxsX2FsbG93X2lkbGUgLSBlbmFibGUgRFBMTCBhdXRvaWRsZSBiaXRzCisgKiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgdGhlIERQTEwgdG8gb3BlcmF0ZSBvbgorICoKKyAqIEVuYWJsZSBEUExMIGF1dG9tYXRpYyBpZGxlIGNvbnRyb2wuICBUaGlzIGF1dG9tYXRpYyBpZGxlIG1vZGUKKyAqIHN3aXRjaGluZyB0YWtlcyBlZmZlY3Qgb25seSB3aGVuIHRoZSBEUExMIGlzIGxvY2tlZCwgYXQgbGVhc3Qgb24KKyAqIE9NQVAzNDMwLiAgVGhlIERQTEwgd2lsbCBlbnRlciBsb3ctcG93ZXIgc3RvcCB3aGVuIGl0cyBkb3duc3RyZWFtCisgKiBjbG9ja3MgYXJlIGdhdGVkLiAgTm8gcmV0dXJuIHZhbHVlLgorICovCitzdGF0aWMgdm9pZCBvbWFwM19kcGxsX2FsbG93X2lkbGUoc3RydWN0IGNsayAqY2xrKQoreworCWNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgKmRkOworCisJaWYgKCFjbGsgfHwgIWNsay0+ZHBsbF9kYXRhKQorCQlyZXR1cm47CisKKwlkZCA9IGNsay0+ZHBsbF9kYXRhOworCisJLyoKKwkgKiBSRVZJU0lUOiBDT1JFIERQTEwgY2FuIG9wdGlvbmFsbHkgZW50ZXIgbG93LXBvd2VyIGJ5cGFzcworCSAqIGJ5IHdyaXRpbmcgMHg1IGluc3RlYWQgb2YgMHgxLiAgQWRkIHNvbWUgbWVjaGFuaXNtIHRvCisJICogb3B0aW9uYWxseSBlbnRlciB0aGlzIG1vZGUuCisJICovCisJY21fcm13X3JlZ19iaXRzKGRkLT5hdXRvaWRsZV9tYXNrLAorCQkJRFBMTF9BVVRPSURMRV9MT1dfUE9XRVJfU1RPUCA8PCBfX2ZmcyhkZC0+YXV0b2lkbGVfbWFzayksCisJCQlkZC0+YXV0b2lkbGVfcmVnKTsKK30KKworLyoqCisgKiBvbWFwM19kcGxsX2RlbnlfaWRsZSAtIHByZXZlbnQgRFBMTCBmcm9tIGF1dG9tYXRpY2FsbHkgaWRsaW5nCisgKiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgdGhlIERQTEwgdG8gb3BlcmF0ZSBvbgorICoKKyAqIERpc2FibGUgRFBMTCBhdXRvbWF0aWMgaWRsZSBjb250cm9sLiAgTm8gcmV0dXJuIHZhbHVlLgorICovCitzdGF0aWMgdm9pZCBvbWFwM19kcGxsX2RlbnlfaWRsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJY29uc3Qgc3RydWN0IGRwbGxfZGF0YSAqZGQ7CisKKwlpZiAoIWNsayB8fCAhY2xrLT5kcGxsX2RhdGEpCisJCXJldHVybjsKKworCWRkID0gY2xrLT5kcGxsX2RhdGE7CisKKwljbV9ybXdfcmVnX2JpdHMoZGQtPmF1dG9pZGxlX21hc2ssCisJCQlEUExMX0FVVE9JRExFX0RJU0FCTEUgPDwgX19mZnMoZGQtPmF1dG9pZGxlX21hc2spLAorCQkJZGQtPmF1dG9pZGxlX3JlZyk7Cit9CisKKy8qIENsb2NrIGNvbnRyb2wgZm9yIERQTEwgb3V0cHV0cyAqLworCiAvKioKICAqIG9tYXAzX2Nsa291dHgyX3JlY2FsYyAtIHJlY2FsY3VsYXRlIERQTEwgWDIgb3V0cHV0IHZpcnR1YWwgY2xvY2sgcmF0ZQogICogQGNsazogRFBMTCBvdXRwdXQgc3RydWN0IGNsawpAQCAtODksNiArMzc4LDggQEAKIAkJcHJvcGFnYXRlX3JhdGUoY2xrKTsKIH0KIAorLyogQ29tbW9uIGNsb2NrIGNvZGUgKi8KKwogLyoKICAqIEFzIGl0IGlzIHN0cnVjdHVyZWQgbm93LCB0aGlzIHdpbGwgcHJldmVudCBhbiBPTUFQMi8zIG11bHRpYm9vdAogICoga2VybmVsIGZyb20gY29tcGlsaW5nLiAgVGhpcyB3aWxsIG5lZWQgZnVydGhlciBhdHRlbnRpb24uCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguaAppbmRleCBjOWM1OTcyLi4wNTc1N2ViIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmgKQEAgLTEsMTQgKzEsMTkgQEAKIC8qCiAgKiBPTUFQMyBjbG9jayBmcmFtZXdvcmsKICAqCi0gKiBWaXJ0dWFsIGNsb2NrcyBhcmUgaW50cm9kdWNlZCBhcyBhIGNvbnZlbmllbnQgdG9vbHMuCi0gKiBUaGV5IGFyZSBzb3VyY2VzIGZvciBvdGhlciBjbG9ja3MgYW5kIG5vdCBzdXBwb3NlZAotICogdG8gYmUgcmVxdWVzdGVkIGZyb20gZHJpdmVycyBkaXJlY3RseS4KLSAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggTm9raWEgQ29ycG9yYXRpb24KICAqCiAgKiBXcml0dGVuIGJ5IFBhdWwgV2FsbXNsZXkKKyAqIFdpdGggbWFueSBkZXZpY2UgY2xvY2sgZml4ZXMgYnkgS2V2aW4gSGlsbWFuIGFuZCBKb3VuaSBIw7ZnYW5kZXIKKyAqIERQTEwgYnlwYXNzIGNsb2NrIHN1cHBvcnQgYWRkZWQgYnkgUm9tYW4gVGVyZXNob25rb3YKKyAqCisgKi8KKworLyoKKyAqIFZpcnR1YWwgY2xvY2tzIGFyZSBpbnRyb2R1Y2VkIGFzIGNvbnZlbmllbnQgdG9vbHMuCisgKiBUaGV5IGFyZSBzb3VyY2VzIGZvciBvdGhlciBjbG9ja3MgYW5kIG5vdCBzdXBwb3NlZAorICogdG8gYmUgcmVxdWVzdGVkIGZyb20gZHJpdmVycyBkaXJlY3RseS4KICAqLwogCiAjaWZuZGVmIF9fQVJDSF9BUk1fTUFDSF9PTUFQMl9DTE9DSzM0WFhfSApAQCAtMjQsNiArMjksMTUgQEAKIAogc3RhdGljIHZvaWQgb21hcDNfZHBsbF9yZWNhbGMoc3RydWN0IGNsayAqY2xrKTsKIHN0YXRpYyB2b2lkIG9tYXAzX2Nsa291dHgyX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspOworc3RhdGljIHZvaWQgb21hcDNfZHBsbF9hbGxvd19pZGxlKHN0cnVjdCBjbGsgKmNsayk7CitzdGF0aWMgdm9pZCBvbWFwM19kcGxsX2RlbnlfaWRsZShzdHJ1Y3QgY2xrICpjbGspOworc3RhdGljIHUzMiBvbWFwM19kcGxsX2F1dG9pZGxlX3JlYWQoc3RydWN0IGNsayAqY2xrKTsKK3N0YXRpYyBpbnQgb21hcDNfbm9uY29yZV9kcGxsX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspOworc3RhdGljIHZvaWQgb21hcDNfbm9uY29yZV9kcGxsX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKTsKKworLyogTWF4aW11bSBEUExMIG11bHRpcGxpZXIsIGRpdmlkZXIgdmFsdWVzIGZvciBPTUFQMyAqLworI2RlZmluZSBPTUFQM19NQVhfRFBMTF9NVUxUCQkyMDQ4CisjZGVmaW5lIE9NQVAzX01BWF9EUExMX0RJVgkJMTI4CiAKIC8qCiAgKiBEUExMMSBzdXBwbGllcyBjbG9jayB0byB0aGUgTVBVLgpAQCAtMzMsNiArNDcsMTEgQEAKICAqIERQTEw1IHN1cHBsaWVzIG90aGVyIHBlcmlwaGVyYWwgY2xvY2tzIChVU0JIT1NULCBVU0lNKS4KICAqLwogCisvKiBDTV9DTEtFTl9QTEwqLkVOKiBiaXQgdmFsdWVzIC0gbm90IGFsbCBhcmUgYXZhaWxhYmxlIGZvciBldmVyeSBEUExMICovCisjZGVmaW5lIERQTExfTE9XX1BPV0VSX1NUT1AJCTB4MQorI2RlZmluZSBEUExMX0xPV19QT1dFUl9CWVBBU1MJCTB4NQorI2RlZmluZSBEUExMX0xPQ0tFRAkJCTB4NworCiAvKiBQUk0gQ0xPQ0tTICovCiAKIC8qIEFjY29yZGluZyB0byB0aW1lcjMyay5jLCB0aGlzIGlzIGEgMzI3NjhIeiBjbG9jaywgbm90IGEgMzIwMDBIeiBjbG9jay4gKi8KQEAgLTI0MCwxNSArMjU5LDIzIEBACiAvKiBEUExMMSAqLwogLyogTVBVIGNsb2NrIHNvdXJjZSAqLwogLyogVHlwZTogRFBMTCAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgZHBsbDFfZGQgPSB7CitzdGF0aWMgc3RydWN0IGRwbGxfZGF0YSBkcGxsMV9kZCA9IHsKIAkubXVsdF9kaXYxX3JlZwk9IE9NQVBfQ01fUkVHQUREUihNUFVfTU9ELCBPTUFQMzQzMF9DTV9DTEtTRUwxX1BMTCksCiAJLm11bHRfbWFzawk9IE9NQVAzNDMwX01QVV9EUExMX01VTFRfTUFTSywKIAkuZGl2MV9tYXNrCT0gT01BUDM0MzBfTVBVX0RQTExfRElWX01BU0ssCiAJLmNvbnRyb2xfcmVnCT0gT01BUF9DTV9SRUdBRERSKE1QVV9NT0QsIE9NQVAzNDMwX0NNX0NMS0VOX1BMTCksCiAJLmVuYWJsZV9tYXNrCT0gT01BUDM0MzBfRU5fTVBVX0RQTExfTUFTSywKKwkubW9kZXMJCT0gKDEgPDwgRFBMTF9MT1dfUE9XRVJfQllQQVNTKSB8ICgxIDw8IERQTExfTE9DS0VEKSwKIAkuYXV0b19yZWNhbF9iaXQJPSBPTUFQMzQzMF9FTl9NUFVfRFBMTF9EUklGVEdVQVJEX1NISUZULAogCS5yZWNhbF9lbl9iaXQJPSBPTUFQMzQzMF9NUFVfRFBMTF9SRUNBTF9FTl9TSElGVCwKIAkucmVjYWxfc3RfYml0CT0gT01BUDM0MzBfTVBVX0RQTExfU1RfU0hJRlQsCisJLmF1dG9pZGxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihNUFVfTU9ELCBPTUFQMzQzMF9DTV9BVVRPSURMRV9QTEwpLAorCS5hdXRvaWRsZV9tYXNrCT0gT01BUDM0MzBfQVVUT19NUFVfRFBMTF9NQVNLLAorCS5pZGxlc3RfcmVnCT0gT01BUF9DTV9SRUdBRERSKE1QVV9NT0QsIE9NQVAzNDMwX0NNX0lETEVTVF9QTEwpLAorCS5pZGxlc3RfYml0CT0gT01BUDM0MzBfU1RfTVBVX0NMS19TSElGVCwKKwkubWF4X211bHRpcGxpZXIgPSBPTUFQM19NQVhfRFBMTF9NVUxULAorCS5tYXhfZGl2aWRlcgk9IE9NQVAzX01BWF9EUExMX0RJViwKKwkucmF0ZV90b2xlcmFuY2UgPSBERUZBVUxUX0RQTExfUkFURV9UT0xFUkFOQ0UKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGwxX2NrID0gewpAQCAtMjU2LDYgKzI4Myw3IEBACiAJLnBhcmVudAkJPSAmc3lzX2NrLAogCS5kcGxsX2RhdGEJPSAmZHBsbDFfZGQsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwgQUxXQVlTX0VOQUJMRUQsCisJLnJvdW5kX3JhdGUJPSAmb21hcDJfZHBsbF9yb3VuZF9yYXRlLAogCS5yZWNhbGMJCT0gJm9tYXAzX2RwbGxfcmVjYWxjLAogfTsKIApAQCAtMjk3LDIyICszMjUsMzQgQEAKIC8qIElWQTIgY2xvY2sgc291cmNlICovCiAvKiBUeXBlOiBEUExMICovCiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGwyX2RkID0geworc3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbDJfZGQgPSB7CiAJLm11bHRfZGl2MV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfSVZBMl9NT0QsIE9NQVAzNDMwX0NNX0NMS1NFTDFfUExMKSwKIAkubXVsdF9tYXNrCT0gT01BUDM0MzBfSVZBMl9EUExMX01VTFRfTUFTSywKIAkuZGl2MV9tYXNrCT0gT01BUDM0MzBfSVZBMl9EUExMX0RJVl9NQVNLLAogCS5jb250cm9sX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9JVkEyX01PRCwgT01BUDM0MzBfQ01fQ0xLRU5fUExMKSwKIAkuZW5hYmxlX21hc2sJPSBPTUFQMzQzMF9FTl9JVkEyX0RQTExfTUFTSywKKwkubW9kZXMJCT0gKDEgPDwgRFBMTF9MT1dfUE9XRVJfU1RPUCkgfCAoMSA8PCBEUExMX0xPQ0tFRCkgfAorCQkJCSgxIDw8IERQTExfTE9XX1BPV0VSX0JZUEFTUyksCiAJLmF1dG9fcmVjYWxfYml0CT0gT01BUDM0MzBfRU5fSVZBMl9EUExMX0RSSUZUR1VBUkRfU0hJRlQsCiAJLnJlY2FsX2VuX2JpdAk9IE9NQVAzNDMwX1BSTV9JUlFFTkFCTEVfTVBVX0lWQTJfRFBMTF9SRUNBTF9FTl9TSElGVCwKIAkucmVjYWxfc3RfYml0CT0gT01BUDM0MzBfUFJNX0lSUVNUQVRVU19NUFVfSVZBMl9EUExMX1NUX1NISUZULAorCS5hdXRvaWRsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfSVZBMl9NT0QsIE9NQVAzNDMwX0NNX0FVVE9JRExFX1BMTCksCisJLmF1dG9pZGxlX21hc2sJPSBPTUFQMzQzMF9BVVRPX0lWQTJfRFBMTF9NQVNLLAorCS5pZGxlc3RfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX0lWQTJfTU9ELCBPTUFQMzQzMF9DTV9JRExFU1RfUExMKSwKKwkuaWRsZXN0X2JpdAk9IE9NQVAzNDMwX1NUX0lWQTJfQ0xLX1NISUZULAorCS5tYXhfbXVsdGlwbGllciA9IE9NQVAzX01BWF9EUExMX01VTFQsCisJLm1heF9kaXZpZGVyCT0gT01BUDNfTUFYX0RQTExfRElWLAorCS5yYXRlX3RvbGVyYW5jZSA9IERFRkFVTFRfRFBMTF9SQVRFX1RPTEVSQU5DRQogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgZHBsbDJfY2sgPSB7CiAJLm5hbWUJCT0gImRwbGwyX2NrIiwKIAkucGFyZW50CQk9ICZzeXNfY2ssCiAJLmRwbGxfZGF0YQk9ICZkcGxsMl9kZCwKLQkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfCBBTFdBWVNfRU5BQkxFRCwKKwkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMsCisJLmVuYWJsZQkJPSAmb21hcDNfbm9uY29yZV9kcGxsX2VuYWJsZSwKKwkuZGlzYWJsZQk9ICZvbWFwM19ub25jb3JlX2RwbGxfZGlzYWJsZSwKKwkucm91bmRfcmF0ZQk9ICZvbWFwMl9kcGxsX3JvdW5kX3JhdGUsCiAJLnJlY2FsYwkJPSAmb21hcDNfZHBsbF9yZWNhbGMsCiB9OwogCkBAIC0zMzgsMTAgKzM3OCwxMiBAQAogCS5yZWNhbGMJCT0gJm9tYXAyX2Nsa3NlbF9yZWNhbGMsCiB9OwogCi0vKiBEUExMMyAqLwotLyogU291cmNlIGNsb2NrIGZvciBhbGwgaW50ZXJmYWNlcyBhbmQgZm9yIHNvbWUgZGV2aWNlIGZjbGtzICovCi0vKiBUeXBlOiBEUExMICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfZGF0YSBkcGxsM19kZCA9IHsKKy8qCisgKiBEUExMMworICogU291cmNlIGNsb2NrIGZvciBhbGwgaW50ZXJmYWNlcyBhbmQgZm9yIHNvbWUgZGV2aWNlIGZjbGtzCisgKiBSRVZJU0lUOiBBbHNvIHN1cHBvcnRzIGZhc3QgcmVsb2NrIGJ5cGFzcyAtIG5vdCBpbmNsdWRlZCBiZWxvdworICovCitzdGF0aWMgc3RydWN0IGRwbGxfZGF0YSBkcGxsM19kZCA9IHsKIAkubXVsdF9kaXYxX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwxKSwKIAkubXVsdF9tYXNrCT0gT01BUDM0MzBfQ09SRV9EUExMX01VTFRfTUFTSywKIAkuZGl2MV9tYXNrCT0gT01BUDM0MzBfQ09SRV9EUExMX0RJVl9NQVNLLApAQCAtMzUwLDYgKzM5MiwxMSBAQAogCS5hdXRvX3JlY2FsX2JpdAk9IE9NQVAzNDMwX0VOX0NPUkVfRFBMTF9EUklGVEdVQVJEX1NISUZULAogCS5yZWNhbF9lbl9iaXQJPSBPTUFQMzQzMF9DT1JFX0RQTExfUkVDQUxfRU5fU0hJRlQsCiAJLnJlY2FsX3N0X2JpdAk9IE9NQVAzNDMwX0NPUkVfRFBMTF9TVF9TSElGVCwKKwkuYXV0b2lkbGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0FVVE9JRExFKSwKKwkuYXV0b2lkbGVfbWFzawk9IE9NQVAzNDMwX0FVVE9fQ09SRV9EUExMX01BU0ssCisJLm1heF9tdWx0aXBsaWVyID0gT01BUDNfTUFYX0RQTExfTVVMVCwKKwkubWF4X2RpdmlkZXIJPSBPTUFQM19NQVhfRFBMTF9ESVYsCisJLnJhdGVfdG9sZXJhbmNlID0gREVGQVVMVF9EUExMX1JBVEVfVE9MRVJBTkNFCiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBkcGxsM19jayA9IHsKQEAgLTM1Nyw2ICs0MDQsNyBAQAogCS5wYXJlbnQJCT0gJnN5c19jaywKIAkuZHBsbF9kYXRhCT0gJmRwbGwzX2RkLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8IEFMV0FZU19FTkFCTEVELAorCS5yb3VuZF9yYXRlCT0gJm9tYXAyX2RwbGxfcm91bmRfcmF0ZSwKIAkucmVjYWxjCQk9ICZvbWFwM19kcGxsX3JlY2FsYywKIH07CiAKQEAgLTQzOSw3ICs0ODcsNyBAQAogCS5uYW1lCQk9ICJjb3JlX2NrIiwKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfQ09SRV9DTEssCisJLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfQ09SRV9DTEtfTUFTSywKIAkuY2xrc2VsCQk9IGNvcmVfY2tfY2xrc2VsLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8CiAJCQkJUEFSRU5UX0NPTlRST0xTX0NMT0NLLApAQCAtNDU2LDcgKzUwNCw3IEBACiAJLm5hbWUJCT0gImRwbGwzX20yeDJfY2siLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9DT1JFX0NMSywKKwkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9DT1JFX0NMS19NQVNLLAogCS5jbGtzZWwJCT0gZHBsbDNfbTJ4Ml9ja19jbGtzZWwsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwKIAkJCQlQQVJFTlRfQ09OVFJPTFNfQ0xPQ0ssCkBAIC01MDMsNyArNTUxLDcgQEAKIAkucGFyZW50CQk9ICZkcGxsM19tM3gyX2NrLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9DT1JFX0NMSywKKwkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9DT1JFX0NMS19NQVNLLAogCS5jbGtzZWwJCT0gZW11X2NvcmVfYWx3b25fY2tfY2xrc2VsLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8CiAJCQkJUEFSRU5UX0NPTlRST0xTX0NMT0NLLApAQCAtNTEzLDIyICs1NjEsMzMgQEAKIC8qIERQTEw0ICovCiAvKiBTdXBwbGllcyA5Nk1IeiwgNTRNaHogVFYgREFDLCBEU1MgZmNsaywgQ0FNIHNlbnNvciBjbG9jaywgZW11bCB0cmFjZSBjbGsgKi8KIC8qIFR5cGU6IERQTEwgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGw0X2RkID0geworc3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbDRfZGQgPSB7CiAJLm11bHRfZGl2MV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMiksCiAJLm11bHRfbWFzawk9IE9NQVAzNDMwX1BFUklQSF9EUExMX01VTFRfTUFTSywKIAkuZGl2MV9tYXNrCT0gT01BUDM0MzBfUEVSSVBIX0RQTExfRElWX01BU0ssCiAJLmNvbnRyb2xfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS0VOKSwKIAkuZW5hYmxlX21hc2sJPSBPTUFQMzQzMF9FTl9QRVJJUEhfRFBMTF9NQVNLLAorCS5tb2RlcwkJPSAoMSA8PCBEUExMX0xPV19QT1dFUl9TVE9QKSB8ICgxIDw8IERQTExfTE9DS0VEKSwKIAkuYXV0b19yZWNhbF9iaXQJPSBPTUFQMzQzMF9FTl9QRVJJUEhfRFBMTF9EUklGVEdVQVJEX1NISUZULAogCS5yZWNhbF9lbl9iaXQJPSBPTUFQMzQzMF9QRVJJUEhfRFBMTF9SRUNBTF9FTl9TSElGVCwKIAkucmVjYWxfc3RfYml0CT0gT01BUDM0MzBfUEVSSVBIX0RQTExfU1RfU0hJRlQsCisJLmF1dG9pZGxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9BVVRPSURMRSksCisJLmF1dG9pZGxlX21hc2sJPSBPTUFQMzQzMF9BVVRPX1BFUklQSF9EUExMX01BU0ssCisJLmlkbGVzdF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKSwKKwkuaWRsZXN0X2JpdAk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEtfU0hJRlQsCisJLm1heF9tdWx0aXBsaWVyID0gT01BUDNfTUFYX0RQTExfTVVMVCwKKwkubWF4X2RpdmlkZXIJPSBPTUFQM19NQVhfRFBMTF9ESVYsCisJLnJhdGVfdG9sZXJhbmNlID0gREVGQVVMVF9EUExMX1JBVEVfVE9MRVJBTkNFCiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBkcGxsNF9jayA9IHsKIAkubmFtZQkJPSAiZHBsbDRfY2siLAogCS5wYXJlbnQJCT0gJnN5c19jaywKIAkuZHBsbF9kYXRhCT0gJmRwbGw0X2RkLAotCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8IEFMV0FZU19FTkFCTEVELAorCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUywKKwkuZW5hYmxlCQk9ICZvbWFwM19ub25jb3JlX2RwbGxfZW5hYmxlLAorCS5kaXNhYmxlCT0gJm9tYXAzX25vbmNvcmVfZHBsbF9kaXNhYmxlLAorCS5yb3VuZF9yYXRlCT0gJm9tYXAyX2RwbGxfcm91bmRfcmF0ZSwKIAkucmVjYWxjCQk9ICZvbWFwM19kcGxsX3JlY2FsYywKIH07CiAKQEAgLTU4NCw3ICs2NDMsNyBAQAogCS5wYXJlbnQJCT0gJmRwbGw0X20yeDJfY2ssCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEssCisJLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMS19NQVNLLAogCS5jbGtzZWwJCT0gb21hcF85Nm1fYWx3b25fZmNrX2Nsa3NlbCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfAogCQkJCSBQQVJFTlRfQ09OVFJPTFNfQ0xPQ0ssCkBAIC02MTAsNyArNjY5LDcgQEAKIAkucGFyZW50CQk9ICZkcGxsNF9tMngyX2NrLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLLAorCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEtfTUFTSywKIAkuY2xrc2VsCQk9IGNtXzk2bV9mY2tfY2xrc2VsLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8CiAJCQkJUEFSRU5UX0NPTlRST0xTX0NMT0NLLApAQCAtNjUyLDcgKzcxMSw3IEBACiAJLnBhcmVudAkJPSAmZHBsbDRfbTN4Ml9jaywKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMSywKKwkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLX01BU0ssCiAJLmNsa3NlbAkJPSB2aXJ0X29tYXBfNTRtX2Zja19jbGtzZWwsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwKIAkJCQlQQVJFTlRfQ09OVFJPTFNfQ0xPQ0ssCkBAIC04MDQsMjMgKzg2MywzMyBAQAogLyogU3VwcGxpZXMgMTIwTUh6IGNsb2NrLCBVU0lNIHNvdXJjZSBjbG9jayAqLwogLyogVHlwZTogRFBMTCAqLwogLyogMzQzMEVTMiBvbmx5ICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfZGF0YSBkcGxsNV9kZCA9IHsKK3N0YXRpYyBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGw1X2RkID0gewogCS5tdWx0X2RpdjFfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIE9NQVAzNDMwRVMyX0NNX0NMS1NFTDQpLAogCS5tdWx0X21hc2sJPSBPTUFQMzQzMEVTMl9QRVJJUEgyX0RQTExfTVVMVF9NQVNLLAogCS5kaXYxX21hc2sJPSBPTUFQMzQzMEVTMl9QRVJJUEgyX0RQTExfRElWX01BU0ssCiAJLmNvbnRyb2xfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIE9NQVAzNDMwRVMyX0NNX0NMS0VOMiksCiAJLmVuYWJsZV9tYXNrCT0gT01BUDM0MzBFUzJfRU5fUEVSSVBIMl9EUExMX01BU0ssCisJLm1vZGVzCQk9ICgxIDw8IERQTExfTE9XX1BPV0VSX1NUT1ApIHwgKDEgPDwgRFBMTF9MT0NLRUQpLAogCS5hdXRvX3JlY2FsX2JpdAk9IE9NQVAzNDMwRVMyX0VOX1BFUklQSDJfRFBMTF9EUklGVEdVQVJEX1NISUZULAogCS5yZWNhbF9lbl9iaXQJPSBPTUFQMzQzMEVTMl9TTkRfUEVSSVBIX0RQTExfUkVDQUxfRU5fU0hJRlQsCiAJLnJlY2FsX3N0X2JpdAk9IE9NQVAzNDMwRVMyX1NORF9QRVJJUEhfRFBMTF9TVF9TSElGVCwKKwkuYXV0b2lkbGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIE9NQVAzNDMwRVMyX0NNX0FVVE9JRExFMl9QTEwpLAorCS5hdXRvaWRsZV9tYXNrCT0gT01BUDM0MzBFUzJfQVVUT19QRVJJUEgyX0RQTExfTUFTSywKKwkuaWRsZXN0X3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QyKSwKKwkuaWRsZXN0X2JpdAk9IE9NQVAzNDMwRVMyX1NUX1BFUklQSDJfQ0xLX1NISUZULAorCS5tYXhfbXVsdGlwbGllciA9IE9NQVAzX01BWF9EUExMX01VTFQsCisJLm1heF9kaXZpZGVyCT0gT01BUDNfTUFYX0RQTExfRElWLAorCS5yYXRlX3RvbGVyYW5jZSA9IERFRkFVTFRfRFBMTF9SQVRFX1RPTEVSQU5DRQogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgZHBsbDVfY2sgPSB7CiAJLm5hbWUJCT0gImRwbGw1X2NrIiwKIAkucGFyZW50CQk9ICZzeXNfY2ssCiAJLmRwbGxfZGF0YQk9ICZkcGxsNV9kZCwKLQkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0MzBFUzIgfCBSQVRFX1BST1BBR0FURVMgfAotCQkJCUFMV0FZU19FTkFCTEVELAorCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzMEVTMiB8IFJBVEVfUFJPUEFHQVRFUywKKwkuZW5hYmxlCQk9ICZvbWFwM19ub25jb3JlX2RwbGxfZW5hYmxlLAorCS5kaXNhYmxlCT0gJm9tYXAzX25vbmNvcmVfZHBsbF9kaXNhYmxlLAorCS5yb3VuZF9yYXRlCT0gJm9tYXAyX2RwbGxfcm91bmRfcmF0ZSwKIAkucmVjYWxjCQk9ICZvbWFwM19kcGxsX3JlY2FsYywKIH07CiAKQEAgLTEzNjUsNyArMTQzNCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDVfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDVfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gNSwKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQNV9TSElGVCwKQEAgLTEzNzcsNyArMTQ0Nyw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDFfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDFfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gMSwKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9GQ0xLRU4xKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQMV9TSElGVCwKQEAgLTE3ODksNyArMTg2MCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDVfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDVfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gNSwKIAkucGFyZW50CQk9ICZjb3JlX2w0X2ljaywKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMSksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDVfU0hJRlQsCkBAIC0xNzk4LDcgKzE4NzAsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AxX2ljayA9IHsKLQkubmFtZQkJPSAibWNic3AxX2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDEsCiAJLnBhcmVudAkJPSAmY29yZV9sNF9pY2ssCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1AxX1NISUZULApAQCAtMTkzNSw3ICsyMDA4LDcgQEAKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9EU1NfTU9ELCBDTV9GQ0xLRU4pLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fRFNTMV9TSElGVCwKIAkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEssCisJLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMS19NQVNLLAogCS5jbGtzZWwJCT0gZHNzMV9hbHdvbl9mY2tfY2xrc2VsLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCwKIAkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLApAQCAtMTk5MSw3ICsyMDY0LDcgQEAKIAkucGFyZW50CQk9ICZkcGxsNF9tNXgyX2NrLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLLAorCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEtfTUFTSywKIAkuY2xrc2VsCQk9IGNhbV9tY2xrX2Nsa3NlbCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9DQU1fTU9ELCBDTV9GQ0xLRU4pLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fQ0FNX1NISUZULApAQCAtMjU0MSw3ICsyNjE0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwMl9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMl9pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSAyLAogCS5wYXJlbnQJCT0gJnBlcl9sNF9pY2ssCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01fSUNMS0VOKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQMl9TSElGVCwKQEAgLTI1NTAsNyArMjYyNCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDNfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDNfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gMywKIAkucGFyZW50CQk9ICZwZXJfbDRfaWNrLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0lDTEtFTiksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDNfU0hJRlQsCkBAIC0yNTU5LDcgKzI2MzQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3A0X2ljayA9IHsKLQkubmFtZQkJPSAibWNic3A0X2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDQsCiAJLnBhcmVudAkJPSAmcGVyX2w0X2ljaywKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4pLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1A0X1NISUZULApAQCAtMjU3NCw3ICsyNjUwLDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwMl9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMl9mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSAyLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01fRkNMS0VOKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQMl9TSElGVCwKQEAgLTI1ODYsNyArMjY2Myw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDNfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDNfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gMywKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0ZDTEtFTiksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDNfU0hJRlQsCkBAIC0yNTk4LDcgKzI2NzYsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3A0X2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3A0X2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDQsCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9GQ0xLRU4pLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1A0X1NISUZULApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS1yZWdiaXRzLTM0eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvY20tcmVnYml0cy0zNHh4LmgKaW5kZXggM2MzODM5NS4uZWU0YzBjYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS1yZWdiaXRzLTM0eHguaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NtLXJlZ2JpdHMtMzR4eC5oCkBAIC03Miw3ICs3Miw4IEBACiAjZGVmaW5lIE9NQVAzNDMwX1NUX0lWQTIJCQkJKDEgPDwgMCkKIAogLyogQ01fSURMRVNUX1BMTF9JVkEyICovCi0jZGVmaW5lIE9NQVAzNDMwX1NUX0lWQTJfQ0xLCQkJCSgxIDw8IDApCisjZGVmaW5lIE9NQVAzNDMwX1NUX0lWQTJfQ0xLX1NISUZUCQkJMAorI2RlZmluZSBPTUFQMzQzMF9TVF9JVkEyX0NMS19NQVNLCQkJKDEgPDwgMCkKIAogLyogQ01fQVVUT0lETEVfUExMX0lWQTIgKi8KICNkZWZpbmUgT01BUDM0MzBfQVVUT19JVkEyX0RQTExfU0hJRlQJCQkwCkBAIC0xMTUsMTAgKzExNiw3IEBACiAjZGVmaW5lIE9NQVAzNDMwX1NUX01QVQkJCQkJKDEgPDwgMCkKIAogLyogQ01fSURMRVNUX1BMTF9NUFUgKi8KLSNkZWZpbmUgT01BUDM0MzBfU1RfTVBVX0NMSwkJCQkoMSA8PCAwKQotI2RlZmluZSBPTUFQMzQzMF9TVF9JVkEyX0NMS19NQVNLCQkJKDEgPDwgMCkKLQotLyogQ01fSURMRVNUX1BMTF9NUFUgKi8KKyNkZWZpbmUgT01BUDM0MzBfU1RfTVBVX0NMS19TSElGVAkJCTAKICNkZWZpbmUgT01BUDM0MzBfU1RfTVBVX0NMS19NQVNLCQkJKDEgPDwgMCkKIAogLyogQ01fQVVUT0lETEVfUExMX01QVSAqLwpAQCAtNDA4LDggKzQwNiwxMCBAQAogI2RlZmluZSBPTUFQMzQzMF9TVF8xMk1fQ0xLCQkJCSgxIDw8IDQpCiAjZGVmaW5lIE9NQVAzNDMwX1NUXzQ4TV9DTEsJCQkJKDEgPDwgMykKICNkZWZpbmUgT01BUDM0MzBfU1RfOTZNX0NMSwkJCQkoMSA8PCAyKQotI2RlZmluZSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLCQkJCSgxIDw8IDEpCi0jZGVmaW5lIE9NQVAzNDMwX1NUX0NPUkVfQ0xLCQkJCSgxIDw8IDApCisjZGVmaW5lIE9NQVAzNDMwX1NUX1BFUklQSF9DTEtfU0hJRlQJCQkxCisjZGVmaW5lIE9NQVAzNDMwX1NUX1BFUklQSF9DTEtfTUFTSwkJCSgxIDw8IDEpCisjZGVmaW5lIE9NQVAzNDMwX1NUX0NPUkVfQ0xLX1NISUZUCQkJMAorI2RlZmluZSBPTUFQMzQzMF9TVF9DT1JFX0NMS19NQVNLCQkJKDEgPDwgMCkKIAogLyogQ01fSURMRVNUMl9DS0dFTiAqLwogI2RlZmluZSBPTUFQMzQzMEVTMl9TVF8xMjBNX0NMS19TSElGVAkJCTEKQEAgLTQyMyw2ICs0MjMsMTAgQEAKICNkZWZpbmUgT01BUDM0MzBfQVVUT19DT1JFX0RQTExfU0hJRlQJCQkwCiAjZGVmaW5lIE9NQVAzNDMwX0FVVE9fQ09SRV9EUExMX01BU0sJCQkoMHg3IDw8IDApCiAKKy8qIENNX0FVVE9JRExFMl9QTEwgKi8KKyNkZWZpbmUgT01BUDM0MzBFUzJfQVVUT19QRVJJUEgyX0RQTExfU0hJRlQJCTAKKyNkZWZpbmUgT01BUDM0MzBFUzJfQVVUT19QRVJJUEgyX0RQTExfTUFTSwkJKDB4NyA8PCAwKQorCiAvKiBDTV9DTEtTRUwxX1BMTCAqLwogLyogTm90ZSB0aGF0IE9NQVAzNDMwX0NPUkVfRFBMTF9DTEtPVVRfRElWX01BU0sgd2FzICgweDMgPDwgMjcpIG9uIDM0MzBFUzEgKi8KICNkZWZpbmUgT01BUDM0MzBfQ09SRV9EUExMX0NMS09VVF9ESVZfU0hJRlQJCTI3CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NtLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NtLmgKaW5kZXggODQ4OWYzMC4uODdhNDRjNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY20uaApAQCAtODEsNiArODEsNyBAQAogI2RlZmluZSBPTUFQMzQzMEVTMl9DTV9GQ0xLRU4zCQkJCTB4MDAwOAogI2RlZmluZSBPTUFQMzQzMF9DTV9JRExFU1RfUExMCQkJCUNNX0lETEVTVDIKICNkZWZpbmUgT01BUDM0MzBfQ01fQVVUT0lETEVfUExMCQkJQ01fQVVUT0lETEUyCisjZGVmaW5lIE9NQVAzNDMwRVMyX0NNX0FVVE9JRExFMl9QTEwJCQlDTV9BVVRPSURMRTIKICNkZWZpbmUgT01BUDM0MzBfQ01fQ0xLU0VMMQkJCQlDTV9DTEtTRUwKICNkZWZpbmUgT01BUDM0MzBfQ01fQ0xLU0VMMV9QTEwJCQkJQ01fQ0xLU0VMCiAjZGVmaW5lIE9NQVAzNDMwX0NNX0NMS1NFTDJfUExMCQkJCUNNX0NMS1NFTDIKQEAgLTk2LDE1ICs5NywyMSBAQAogLyogQ2xvY2sgbWFuYWdlbWVudCBkb21haW4gcmVnaXN0ZXIgZ2V0L3NldCAqLwogCiAjaWZuZGVmIF9fQVNTRU1CTEVSX18KLXN0YXRpYyBpbmxpbmUgdm9pZCBjbV93cml0ZV9tb2RfcmVnKHUzMiB2YWwsIHMxNiBtb2R1bGUsIHMxNiBpZHgpCisKK2V4dGVybiB1MzIgY21fcmVhZF9tb2RfcmVnKHMxNiBtb2R1bGUsIHUxNiBpZHgpOworZXh0ZXJuIHZvaWQgY21fd3JpdGVfbW9kX3JlZyh1MzIgdmFsLCBzMTYgbW9kdWxlLCB1MTYgaWR4KTsKK2V4dGVybiB1MzIgY21fcm13X21vZF9yZWdfYml0cyh1MzIgbWFzaywgdTMyIGJpdHMsIHMxNiBtb2R1bGUsIHMxNiBpZHgpOworCitzdGF0aWMgaW5saW5lIHUzMiBjbV9zZXRfbW9kX3JlZ19iaXRzKHUzMiBiaXRzLCBzMTYgbW9kdWxlLCBzMTYgaWR4KQogewotCV9fcmF3X3dyaXRlbCh2YWwsIE9NQVBfQ01fUkVHQUREUihtb2R1bGUsIGlkeCkpOworCXJldHVybiBjbV9ybXdfbW9kX3JlZ19iaXRzKGJpdHMsIGJpdHMsIG1vZHVsZSwgaWR4KTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgY21fcmVhZF9tb2RfcmVnKHMxNiBtb2R1bGUsIHMxNiBpZHgpCitzdGF0aWMgaW5saW5lIHUzMiBjbV9jbGVhcl9tb2RfcmVnX2JpdHModTMyIGJpdHMsIHMxNiBtb2R1bGUsIHMxNiBpZHgpCiB7Ci0JcmV0dXJuIF9fcmF3X3JlYWRsKE9NQVBfQ01fUkVHQUREUihtb2R1bGUsIGlkeCkpOworCXJldHVybiBjbV9ybXdfbW9kX3JlZ19iaXRzKGJpdHMsIDB4MCwgbW9kdWxlLCBpZHgpOwogfQorCiAjZW5kaWYKIAogLyogQ00gcmVnaXN0ZXIgYml0cyBzaGFyZWQgYmV0d2VlbiAyNFhYIGFuZCAzNDMwICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY29udHJvbC5jCmluZGV4IGE1ZDg2YTQuLjUxZjcwMzAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY29udHJvbC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY29udHJvbC5jCkBAIC0xMywyMiArMTMsMjEgQEAKICN1bmRlZiBERUJVRwogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KIAotI2luY2x1ZGUgPGFzbS9pby5oPgotCisjaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvY29udHJvbC5oPgogCi1zdGF0aWMgdTMyIG9tYXAyX2N0cmxfYmFzZTsKK3N0YXRpYyB2b2lkIF9faW9tZW0gKm9tYXAyX2N0cmxfYmFzZTsKIAotI2RlZmluZSBPTUFQX0NUUkxfUkVHQUREUihyZWcpCSh2b2lkIF9faW9tZW0gKilJT19BRERSRVNTKG9tYXAyX2N0cmxfYmFzZSBcCi0JCQkJCQkJCSsgKHJlZykpCisjZGVmaW5lIE9NQVBfQ1RSTF9SRUdBRERSKHJlZykJCShvbWFwMl9jdHJsX2Jhc2UgKyAocmVnKSkKIAotdm9pZCBvbWFwX2N0cmxfYmFzZV9zZXQodTMyIGJhc2UpCit2b2lkIF9faW5pdCBvbWFwMl9zZXRfZ2xvYmFsc19jb250cm9sKHN0cnVjdCBvbWFwX2dsb2JhbHMgKm9tYXAyX2dsb2JhbHMpCiB7Ci0Jb21hcDJfY3RybF9iYXNlID0gYmFzZTsKKwlvbWFwMl9jdHJsX2Jhc2UgPSBvbWFwMl9nbG9iYWxzLT5jdHJsOwogfQogCi11MzIgb21hcF9jdHJsX2Jhc2VfZ2V0KHZvaWQpCit2b2lkIF9faW9tZW0gKm9tYXBfY3RybF9iYXNlX2dldCh2b2lkKQogewogCXJldHVybiBvbWFwMl9jdHJsX2Jhc2U7CiB9CkBAIC01MCwyNSArNDksMTYgQEAKIAogdm9pZCBvbWFwX2N0cmxfd3JpdGViKHU4IHZhbCwgdTE2IG9mZnNldCkKIHsKLQlwcl9kZWJ1Zygib21hcF9jdHJsX3dyaXRlYjogd3JpdGluZyAweCUweCB0byAweCUweFxuIiwgdmFsLAotCQkgKHUzMilPTUFQX0NUUkxfUkVHQUREUihvZmZzZXQpKTsKLQogCV9fcmF3X3dyaXRlYih2YWwsIE9NQVBfQ1RSTF9SRUdBRERSKG9mZnNldCkpOwogfQogCiB2b2lkIG9tYXBfY3RybF93cml0ZXcodTE2IHZhbCwgdTE2IG9mZnNldCkKIHsKLQlwcl9kZWJ1Zygib21hcF9jdHJsX3dyaXRldzogd3JpdGluZyAweCUweCB0byAweCUweFxuIiwgdmFsLAotCQkgKHUzMilPTUFQX0NUUkxfUkVHQUREUihvZmZzZXQpKTsKLQogCV9fcmF3X3dyaXRldyh2YWwsIE9NQVBfQ1RSTF9SRUdBRERSKG9mZnNldCkpOwogfQogCiB2b2lkIG9tYXBfY3RybF93cml0ZWwodTMyIHZhbCwgdTE2IG9mZnNldCkKIHsKLQlwcl9kZWJ1Zygib21hcF9jdHJsX3dyaXRlbDogd3JpdGluZyAweCUweCB0byAweCUweFxuIiwgdmFsLAotCQkgKHUzMilPTUFQX0NUUkxfUkVHQUREUihvZmZzZXQpKTsKLQogCV9fcmF3X3dyaXRlbCh2YWwsIE9NQVBfQ1RSTF9SRUdBRERSKG9mZnNldCkpOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2dwbWMuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvZ3BtYy5jCmluZGV4IDAyY2VkZTIuLmRiZjY4ZGMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvZ3BtYy5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvZ3BtYy5jCkBAIC00Miw3ICs0Miw3IEBACiAjZGVmaW5lIEdQTUNfU1RBVFVTCQkweDU0CiAjZGVmaW5lIEdQTUNfUFJFRkVUQ0hfQ09ORklHMQkweDFlMAogI2RlZmluZSBHUE1DX1BSRUZFVENIX0NPTkZJRzIJMHgxZTQKLSNkZWZpbmUgR1BNQ19QUkVGRVRDSF9DT05UUk9MCTB4MWU4CisjZGVmaW5lIEdQTUNfUFJFRkVUQ0hfQ09OVFJPTAkweDFlYwogI2RlZmluZSBHUE1DX1BSRUZFVENIX1NUQVRVUwkweDFmMAogI2RlZmluZSBHUE1DX0VDQ19DT05GSUcJCTB4MWY0CiAjZGVmaW5lIEdQTUNfRUNDX0NPTlRST0wJMHgxZjgKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvaWQuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvaWQuYwppbmRleCA0ZGZkODc4Li5kZmY0YjE2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2lkLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9pZC5jCkBAIC0xNywxNiArMTcsMjMgQEAKIAogI2luY2x1ZGUgPGFzbS9pby5oPgogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMjQyMCkKLSNkZWZpbmUgT01BUDI0WFhfVEFQX0JBU0UJaW9fcDJ2KDB4NDgwMTQwMDApCi0jZW5kaWYKKyNpbmNsdWRlIDxhc20vYXJjaC9jb250cm9sLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY3B1Lmg+CiAKLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNDMwKQotI2RlZmluZSBPTUFQMjRYWF9UQVBfQkFTRQlpb19wMnYoMHg0OTAwQTAwMCkKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNDIwKQorI2RlZmluZSBUQVBfQkFTRQlpb19wMnYoMHg0ODAxNDAwMCkKKyNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDI0MzApCisjZGVmaW5lIFRBUF9CQVNFCWlvX3AydigweDQ5MDBBMDAwKQorI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMzRYWCkKKyNkZWZpbmUgVEFQX0JBU0UJaW9fcDJ2KDB4NDgzMEEwMDApCiAjZW5kaWYKIAogI2RlZmluZSBPTUFQX1RBUF9JRENPREUJCTB4MDIwNAorI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDM0WFgpCisjZGVmaW5lIE9NQVBfVEFQX1BST0RfSUQJMHgwMjEwCisjZWxzZQogI2RlZmluZSBPTUFQX1RBUF9QUk9EX0lECTB4MDIwOAorI2VuZGlmCiAKICNkZWZpbmUgT01BUF9UQVBfRElFX0lEXzAJMHgwMjE4CiAjZGVmaW5lIE9NQVBfVEFQX0RJRV9JRF8xCTB4MDIxQwpAQCAtNTYsOSArNjMsMTM0IEBACiAJeyAuaGF3a2V5ZSA9IDB4YjY4YSwgLmRldiA9IDB4MCwgLnR5cGUgPSAweDI0MzAwMDAwIH0sCiB9OwogCitzdGF0aWMgc3RydWN0IG9tYXBfY2hpcF9pZCBvbWFwX2NoaXA7CisKKy8qKgorICogb21hcF9jaGlwX2lzIC0gdGVzdCB3aGV0aGVyIGN1cnJlbnRseSBydW5uaW5nIE9NQVAgbWF0Y2hlcyBhIGNoaXAgdHlwZQorICogQG9jOiBvbWFwX2NoaXBfdCB0byB0ZXN0IGFnYWluc3QKKyAqCisgKiBUZXN0IHdoZXRoZXIgdGhlIGN1cnJlbnRseS1ydW5uaW5nIE9NQVAgY2hpcCBtYXRjaGVzIHRoZSBzdXBwbGllZAorICogY2hpcCB0eXBlICdvYycuICBSZXR1cm5zIDEgdXBvbiBhIG1hdGNoOyAwIHVwb24gZmFpbHVyZS4KKyAqLworaW50IG9tYXBfY2hpcF9pcyhzdHJ1Y3Qgb21hcF9jaGlwX2lkIG9jaSkKK3sKKwlyZXR1cm4gKG9jaS5vYyAmIG9tYXBfY2hpcC5vYykgPyAxIDogMDsKK30KK0VYUE9SVF9TWU1CT0wob21hcF9jaGlwX2lzKTsKKwogc3RhdGljIHUzMiBfX2luaXQgcmVhZF90YXBfcmVnKGludCByZWcpCiB7Ci0JcmV0dXJuIF9fcmF3X3JlYWRsKE9NQVAyNFhYX1RBUF9CQVNFICsgcmVnKTsKKwl1bnNpZ25lZCBpbnQgcmVndmFsID0gMDsKKwl1MzIgY3B1aWQ7CisKKwkvKiBSZWFkaW5nIHRoZSBJRENPREUgcmVnaXN0ZXIgb24gMzQzMCBFUzEgcmVzdWx0cyBpbiBhCisJICogZGF0YSBhYm9ydCBhcyB0aGUgcmVnaXN0ZXIgaXMgbm90IGV4cG9zZWQgb24gdGhlIE9DUAorCSAqIEhlbmNlIHJlYWRpbmcgdGhlIENvcnRleCBSZXYKKwkgKi8KKwljcHVpZCA9IHJlYWRfY3B1aWQoQ1BVSURfSUQpOworCisJLyogSWYgdGhlIHByb2Nlc3NvciB0eXBlIGlzIENvcnRleC1BOCBhbmQgdGhlIHJldmlzaW9uIGlzIDB4MAorCSAqIGl0IG1lYW5zIGl0cyBDb3J0ZXggcjBwMCB3aGljaCBpcyAzNDMwIEVTMQorCSAqLworCWlmICgoKChjcHVpZCA+PiA0KSAmIDB4RkZGKSA9PSAweEMwOCkgJiYgKChjcHVpZCAmIDB4RikgPT0gMHgwKSkgeworCQlzd2l0Y2ggKHJlZykgeworCQljYXNlIE9NQVBfVEFQX0lEQ09ERSAgOiByZWd2YWwgPSAweDBCN0FFMDJGOyBicmVhazsKKwkJLyogTWFraW5nIERldlR5cGUgYXMgMHhGIGluIEVTMSB0byBkaWZmZXIgZnJvbSBFUzIgKi8KKwkJY2FzZSBPTUFQX1RBUF9QUk9EX0lEIDogcmVndmFsID0gMHgwMDBGMDBGMDsgYnJlYWs7CisJCWNhc2UgT01BUF9UQVBfRElFX0lEXzA6IHJlZ3ZhbCA9IDB4MDEwMDAwMDA7IGJyZWFrOworCQljYXNlIE9NQVBfVEFQX0RJRV9JRF8xOiByZWd2YWwgPSAweDEwMTJkNjg3OyBicmVhazsKKwkJY2FzZSBPTUFQX1RBUF9ESUVfSURfMjoJcmVndmFsID0gMHgwMDAwMDAwMDsgYnJlYWs7CisJCWNhc2UgT01BUF9UQVBfRElFX0lEXzM6CXJlZ3ZhbCA9IDB4MmQyYzAwMDA7IGJyZWFrOworCQl9CisJfSBlbHNlCisJCXJlZ3ZhbCA9IF9fcmF3X3JlYWRsKFRBUF9CQVNFICsgcmVnKTsKKworCXJldHVybiByZWd2YWw7CisKK30KKworLyoKKyAqIF9zZXRfc3lzdGVtX3JldiAtIHNldCB0aGUgc3lzdGVtX3JldiBnbG9iYWwgYmFzZWQgb24gY3VycmVudCBPTUFQIGNoaXAgdHlwZQorICoKKyAqIFNldCB0aGUgc3lzdGVtX3JldiBnbG9iYWwuICBUaGlzIGlzIHByaW1hcmlseSB1c2VkIGJ5IHRoZSBjcHVfaXNfb21hcHh4eHgoKQorICogbWFjcm9zLgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgX3NldF9zeXN0ZW1fcmV2KHUzMiB0eXBlLCB1OCByZXYpCit7CisJdTMyIGksIGN0cmxfc3RhdHVzOworCisJLyoKKwkgKiBzeXN0ZW1fcmV2IGVuY29kaW5nIGlzIGFzIGZvbGxvd3MKKwkgKiBzeXN0ZW1fcmV2ICYgMHhmZjAwMDAwMCAtPiBPbWFwIENsYXNzICgyNHh4LzM0eHgpCisJICogc3lzdGVtX3JldiAmIDB4ZmZmMDAwMDAgLT4gT21hcCBTdWIgQ2xhc3MgKDI0MngvMzQzeCkKKwkgKiBzeXN0ZW1fcmV2ICYgMHhmZmZmMDAwMCAtPiBPbWFwIHR5cGUgKDI0MjAvMjQyMi8yNDIzLzI0MzAvMzQzMCkKKwkgKiBzeXN0ZW1fcmV2ICYgMHgwMDAwZjAwMCAtPiBTaWxpY29uIHJldmlzaW9uIChFUzEsIEVTMiApCisJICogc3lzdGVtX3JldiAmIDB4MDAwMDA3MDAgLT4gRGV2aWNlIFR5cGUgKCBFTVUvSFMvR1AvQkFEICkKKwkgKiBzeXN0ZW1fcmV2ICYgMHgwMDAwMDBjMCAtPiBJRENPREUgcmV2aXNpb25bNjo3XQorCSAqIHN5c3RlbV9yZXYgJiAweDAwMDAwMDNmIC0+IHN5c19ib290WzA6NV0KKwkgKi8KKwkvKiBFbWJlZGRpbmcgdGhlIEVTIHJldmlzaW9uIGluZm8gaW4gdHlwZSBmaWVsZCAqLworCXN5c3RlbV9yZXYgPSB0eXBlOworCS8qIEFsc28gYWRkIElEQ09ERSByZXZpc2lvbiBpbmZvIG9ubHkgdHdvIGxvd2VyIGJpdHMgKi8KKwlzeXN0ZW1fcmV2IHw9ICgocmV2ICYgMHgzKSA8PCA2KTsKKworCS8qIEFkZCBpbiB0aGUgZGV2aWNlIHR5cGUgYW5kIHN5c19ib290IGZpZWxkcyAoc2VlIGFib3ZlKSAqLworCWlmIChjcHVfaXNfb21hcDI0eHgoKSkgeworCQlpID0gT01BUDI0WFhfQ09OVFJPTF9TVEFUVVM7CisJfSBlbHNlIGlmIChjcHVfaXNfb21hcDM0M3goKSkgeworCQlpID0gT01BUDM0M1hfQ09OVFJPTF9TVEFUVVM7CisJfSBlbHNlIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJpZDogdW5rbm93biBDUFUgdHlwZVxuIik7CisJCUJVRygpOworCX0KKwljdHJsX3N0YXR1cyA9IG9tYXBfY3RybF9yZWFkbChpKTsKKwlzeXN0ZW1fcmV2IHw9IChjdHJsX3N0YXR1cyAmIChPTUFQMl9TWVNCT09UXzVfTUFTSyB8CisJCQkJICAgICAgT01BUDJfU1lTQk9PVF80X01BU0sgfAorCQkJCSAgICAgIE9NQVAyX1NZU0JPT1RfM19NQVNLIHwKKwkJCQkgICAgICBPTUFQMl9TWVNCT09UXzJfTUFTSyB8CisJCQkJICAgICAgT01BUDJfU1lTQk9PVF8xX01BU0sgfAorCQkJCSAgICAgIE9NQVAyX1NZU0JPT1RfMF9NQVNLKSk7CisJc3lzdGVtX3JldiB8PSAoY3RybF9zdGF0dXMgJiBPTUFQMl9ERVZJQ0VUWVBFX01BU0spOworfQorCisKKy8qCisgKiBfc2V0X29tYXBfY2hpcCAtIHNldCB0aGUgb21hcF9jaGlwIGdsb2JhbCBiYXNlZCBvbiBPTUFQIGNoaXAgdHlwZQorICoKKyAqIEJ1aWxkIHRoZSBvbWFwX2NoaXAgYml0cy4gIFRoaXMgdmFyaWFibGUgaXMgdXNlZCBieSBwb3dlcmRvbWFpbiBhbmQKKyAqIGNsb2NrZG9tYWluIGNvZGUgdG8gaW5kaWNhdGUgd2hldGhlciBzdHJ1Y3R1cmVzIGFyZSBhcHBsaWNhYmxlIGZvcgorICogdGhlIGN1cnJlbnQgT01BUCBjaGlwIHR5cGUgYnkgQU5EaW5nIGl0IGFnYWluc3QgYSAncGxhdGZvcm0nIGJpdGZpZWxkCisgKiBpbiB0aGUgc3RydWN0dXJlLgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgX3NldF9vbWFwX2NoaXAodm9pZCkKK3sKKwlpZiAoY3B1X2lzX29tYXAzNDN4KCkpIHsKKworCQlvbWFwX2NoaXAub2MgPSBDSElQX0lTX09NQVAzNDMwOworCQlpZiAoaXNfc2lsX3Jldl9lcXVhbF90byhPTUFQMzQzMF9SRVZfRVMxXzApKQorCQkJb21hcF9jaGlwLm9jIHw9IENISVBfSVNfT01BUDM0MzBFUzE7CisJCWVsc2UgaWYgKGlzX3NpbF9yZXZfZ3JlYXRlcl90aGFuKE9NQVAzNDMwX1JFVl9FUzFfMCkpCisJCQlvbWFwX2NoaXAub2MgfD0gQ0hJUF9JU19PTUFQMzQzMEVTMjsKKworCX0gZWxzZSBpZiAoY3B1X2lzX29tYXAyNDN4KCkpIHsKKworCQkvKiBDdXJyZW50bHkgb25seSBzdXBwb3J0cyAyNDMwRVMyLjEgYW5kIDI0MzAtYWxsICovCisJCW9tYXBfY2hpcC5vYyB8PSBDSElQX0lTX09NQVAyNDMwOworCisJfSBlbHNlIGlmIChjcHVfaXNfb21hcDI0MngoKSkgeworCisJCS8qIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIDI0MjBFUzIuMS4xIGFuZCAyNDIwLWFsbCAqLworCQlvbWFwX2NoaXAub2MgfD0gQ0hJUF9JU19PTUFQMjQyMDsKKworCX0gZWxzZSB7CisKKwkJLyogQ3VycmVudCBDUFUgbm90IHN1cHBvcnRlZCBieSB0aGlzIGNvZGUuICovCisJCXByaW50ayhLRVJOX1dBUk5JTkcgIk9NQVAgY2hpcCB0eXBlIGNvZGUgZG9lcyBub3QgeWV0IHN1cHBvcnQgIgorCQkgICAgICAgInRoaXMgQ1BVIHR5cGUuXG4iKTsKKwkJV0FSTl9PTigxKTsKKworCX0KKwogfQogCiB2b2lkIF9faW5pdCBvbWFwMl9jaGVja19yZXZpc2lvbih2b2lkKQpAQCAtNzYsMjEgKzIwOCwzMSBAQAogCXJldiA9IChpZGNvZGUgPj4gMjgpICYgMHgwZjsKIAlkZXZfdHlwZSA9IChwcm9kX2lkID4+IDE2KSAmIDB4MGY7CiAKLSNpZmRlZiBERUJVRwotCXByaW50ayhLRVJOX0RFQlVHICJPTUFQX1RBUF9JRENPREUgMHglMDh4IFJFViAlaSBIQVdLRVlFIDB4JTA0eCBNQU5GICUwM3hcbiIsCi0JCWlkY29kZSwgcmV2LCBoYXdrZXllLCAoaWRjb2RlID4+IDEpICYgMHg3ZmYpOwotCXByaW50ayhLRVJOX0RFQlVHICJPTUFQX1RBUF9ESUVfSURfMDogMHglMDh4XG4iLAotCQlyZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzApKTsKLQlwcmludGsoS0VSTl9ERUJVRyAiT01BUF9UQVBfRElFX0lEXzE6IDB4JTA4eCBERVZfUkVWOiAlaVxuIiwKLQkJcmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8xKSwKLQkgICAgICAgKHJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMSkgPj4gMjgpICYgMHhmKTsKLQlwcmludGsoS0VSTl9ERUJVRyAiT01BUF9UQVBfRElFX0lEXzI6IDB4JTA4eFxuIiwKLQkJcmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8yKSk7Ci0JcHJpbnRrKEtFUk5fREVCVUcgIk9NQVBfVEFQX0RJRV9JRF8zOiAweCUwOHhcbiIsCi0JCXJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMykpOwotCXByaW50ayhLRVJOX0RFQlVHICJPTUFQX1RBUF9QUk9EX0lEXzA6IDB4JTA4eCBERVZfVFlQRTogJWlcbiIsCi0JCXByb2RfaWQsIGRldl90eXBlKTsKLSNlbmRpZgorCXByX2RlYnVnKCJPTUFQX1RBUF9JRENPREUgMHglMDh4IFJFViAlaSBIQVdLRVlFIDB4JTA0eCBNQU5GICUwM3hcbiIsCisJCSBpZGNvZGUsIHJldiwgaGF3a2V5ZSwgKGlkY29kZSA+PiAxKSAmIDB4N2ZmKTsKKwlwcl9kZWJ1ZygiT01BUF9UQVBfRElFX0lEXzA6IDB4JTA4eFxuIiwKKwkJIHJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMCkpOworCXByX2RlYnVnKCJPTUFQX1RBUF9ESUVfSURfMTogMHglMDh4IERFVl9SRVY6ICVpXG4iLAorCQkgcmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8xKSwKKwkJIChyZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzEpID4+IDI4KSAmIDB4Zik7CisJcHJfZGVidWcoIk9NQVBfVEFQX0RJRV9JRF8yOiAweCUwOHhcbiIsCisJCSByZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzIpKTsKKwlwcl9kZWJ1ZygiT01BUF9UQVBfRElFX0lEXzM6IDB4JTA4eFxuIiwKKwkJIHJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMykpOworCXByX2RlYnVnKCJPTUFQX1RBUF9QUk9EX0lEXzA6IDB4JTA4eCBERVZfVFlQRTogJWlcbiIsCisJCSBwcm9kX2lkLCBkZXZfdHlwZSk7CisKKwkvKgorCSAqIERldGVjdGlvbiBmb3IgMzR4eCBFUzIuMCBhbmQgYWJvdmUgY2FuIGJlIGRvbmUgd2l0aCBqdXN0CisJICogaGF3a2V5ZSBhbmQgcmV2LiBTZWUgVFJNIDEuNS4yIERldmljZSBJZGVudGlmaWNhdGlvbi4KKwkgKiBOb3RlIHRoYXQgcmV2IGNhbm5vdCBiZSB1c2VkIGRpcmVjdGx5IGFzIEVTMS4wIHVzZXMgdmFsdWUgMC4KKwkgKi8KKwlpZiAoaGF3a2V5ZSA9PSAweGI3YWUpIHsKKwkJc3lzdGVtX3JldiA9IDB4MzQzMDAwMDAgfCAoKDEgKyByZXYpIDw8IDEyKTsKKwkJcHJfaW5mbygiT01BUCUwNHggRVMyLiVpXG4iLCBzeXN0ZW1fcmV2ID4+IDE2LCByZXYpOworCQlfc2V0X29tYXBfY2hpcCgpOworCQlyZXR1cm47CisJfQogCiAJLyogQ2hlY2sgaGF3a2V5ZSBpZHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShvbWFwX2lkcyk7IGkrKykgewpAQCAtMTE0LDE2ICsyNTYsMTUgQEAKIAkJCQlvbWFwX2lkc1tpXS50eXBlID4+IDE2KTsKIAkJaiA9IGk7CiAJfQotCXN5c3RlbV9yZXYgPSBvbWFwX2lkc1tqXS50eXBlOwogCi0Jc3lzdGVtX3JldiB8PSByZXYgPDwgODsKKwlfc2V0X3N5c3RlbV9yZXYob21hcF9pZHNbal0udHlwZSwgcmV2KTsKIAotCS8qIEFkZCB0aGUgY3B1IGNsYXNzIGluZm8gKDI0eHgpICovCi0Jc3lzdGVtX3JldiB8PSAweDI0OworCV9zZXRfb21hcF9jaGlwKCk7CiAKIAlwcl9pbmZvKCJPTUFQJTA0eCIsIHN5c3RlbV9yZXYgPj4gMTYpOwogCWlmICgoc3lzdGVtX3JldiA+PiA4KSAmIDB4MGYpCi0JCXByaW50aygiJXgiLCAoc3lzdGVtX3JldiA+PiA4KSAmIDB4MGYpOwotCXByaW50aygiXG4iKTsKKwkJcHJfaW5mbygiRVMleCIsIChzeXN0ZW1fcmV2ID4+IDEyKSAmIDB4Zik7CisJcHJfaW5mbygiXG4iKTsKKwogfQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL21jYnNwLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL21jYnNwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdjZjE5OQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbWNic3AuYwpAQCAtMCwwICsxLDIwOCBAQAorLyoKKyAqIGxpbnV4L2FyY2gvYXJtL21hY2gtb21hcDIvbWNic3AuYworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICogQ29udGFjdDogRWR1YXJkbyBWYWxlbnRpbiA8ZWR1YXJkby52YWxlbnRpbkBpbmR0Lm9yZy5icj4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIE11bHRpY2hhbm5lbCBtb2RlIG5vdCBzdXBwb3J0ZWQuCisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL2RtYS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL211eC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL21jYnNwLmg+CisKK3N0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgeworCXN0cnVjdCBjbGsgY2xrOworCXN0cnVjdCBjbGsgKipjaGlsZHM7CisJaW50IG5fY2hpbGRzOworfTsKKworI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDI0WFgpIHx8IGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDM0WFgpCitzdGF0aWMgdm9pZCBvbWFwX21jYnNwX2Nsa19pbml0KHN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgKm1jbGspCit7CisJY29uc3QgY2hhciAqY2xrX25hbWVzW10gPSB7ICJtY2JzcF9pY2siLCAibWNic3BfZmNrIiB9OworCWludCBpOworCisJbWNsay0+bl9jaGlsZHMgPSBBUlJBWV9TSVpFKGNsa19uYW1lcyk7CisJbWNsay0+Y2hpbGRzID0ga3phbGxvYyhtY2xrLT5uX2NoaWxkcyAqIHNpemVvZihzdHJ1Y3QgY2xrICopLAorCQkJCUdGUF9LRVJORUwpOworCisJZm9yIChpID0gMDsgaSA8IG1jbGstPm5fY2hpbGRzOyBpKyspIHsKKwkJLyogV2UgZmFrZSBhIHBsYXRmb3JtIGRldmljZSB0byBnZXQgY29ycmVjdCBkZXZpY2UgaWQgKi8KKwkJc3RydWN0IHBsYXRmb3JtX2RldmljZSBwZGV2OworCisJCXBkZXYuZGV2LmJ1cyA9ICZwbGF0Zm9ybV9idXNfdHlwZTsKKwkJcGRldi5pZCA9IG1jbGstPmNsay5pZDsKKwkJbWNsay0+Y2hpbGRzW2ldID0gY2xrX2dldCgmcGRldi5kZXYsIGNsa19uYW1lc1tpXSk7CisJCWlmIChJU19FUlIobWNsay0+Y2hpbGRzW2ldKSkKKwkJCXByaW50ayhLRVJOX0VSUiAiQ291bGQgbm90IGdldCBjbG9jayAlcyAoJWQpLlxuIiwKKwkJCQljbGtfbmFtZXNbaV0sIG1jbGstPmNsay5pZCk7CisJfQorfQorCitzdGF0aWMgaW50IG9tYXBfbWNic3BfY2xrX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayAqbWNsayA9IGNvbnRhaW5lcl9vZihjbGssCisJCQkJCXN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGssIGNsayk7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWNsay0+bl9jaGlsZHM7IGkrKykKKwkJY2xrX2VuYWJsZShtY2xrLT5jaGlsZHNbaV0pOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBvbWFwX21jYnNwX2Nsa19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrICptY2xrID0gY29udGFpbmVyX29mKGNsaywKKwkJCQkJc3RydWN0IG1jYnNwX2ludGVybmFsX2NsaywgY2xrKTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBtY2xrLT5uX2NoaWxkczsgaSsrKQorCQljbGtfZGlzYWJsZShtY2xrLT5jaGlsZHNbaV0pOworfQorCitzdGF0aWMgc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayBvbWFwX21jYnNwX2Nsa3NbXSA9IHsKKwl7CisJCS5jbGsgPSB7CisJCQkubmFtZSAJCT0gIm1jYnNwX2NsayIsCisJCQkuaWQJCT0gMSwKKwkJCS5lbmFibGUJCT0gb21hcF9tY2JzcF9jbGtfZW5hYmxlLAorCQkJLmRpc2FibGUJPSBvbWFwX21jYnNwX2Nsa19kaXNhYmxlLAorCQl9LAorCX0sCisJeworCQkuY2xrID0geworCQkJLm5hbWUgCQk9ICJtY2JzcF9jbGsiLAorCQkJLmlkCQk9IDIsCisJCQkuZW5hYmxlCQk9IG9tYXBfbWNic3BfY2xrX2VuYWJsZSwKKwkJCS5kaXNhYmxlCT0gb21hcF9tY2JzcF9jbGtfZGlzYWJsZSwKKwkJfSwKKwl9LAorfTsKKworI2RlZmluZSBvbWFwX21jYnNwX2Nsa3Nfc2l6ZQlBUlJBWV9TSVpFKG9tYXBfbWNic3BfY2xrcykKKyNlbHNlCisjZGVmaW5lIG9tYXBfbWNic3BfY2xrc19zaXplCTAKK3N0YXRpYyBzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrIF9faW5pdGRhdGEgKm9tYXBfbWNic3BfY2xrczsKK3N0YXRpYyBpbmxpbmUgdm9pZCBvbWFwX21jYnNwX2Nsa19pbml0KHN0cnVjdCBjbGsgKmNsaykKK3sgfQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIG9tYXAyX21jYnNwMl9tdXhfc2V0dXAodm9pZCkKK3sKKwlvbWFwX2NmZ19yZWcoWTE1XzI0WFhfTUNCU1AyX0NMS1gpOworCW9tYXBfY2ZnX3JlZyhSMTRfMjRYWF9NQ0JTUDJfRlNYKTsKKwlvbWFwX2NmZ19yZWcoVzE1XzI0WFhfTUNCU1AyX0RSKTsKKwlvbWFwX2NmZ19yZWcoVjE1XzI0WFhfTUNCU1AyX0RYKTsKKwlvbWFwX2NmZ19yZWcoVjE0XzI0WFhfR1BJTzExNyk7CisJLyoKKwkgKiBUT0RPOiBOZWVkIHRvIGFkZCBNVVggc2V0dGluZ3MgZm9yIE9NQVAgMjQzMCBTRFAKKwkgKi8KK30KKworc3RhdGljIHZvaWQgb21hcDJfbWNic3BfcmVxdWVzdCh1bnNpZ25lZCBpbnQgaWQpCit7CisJaWYgKGNwdV9pc19vbWFwMjQyMCgpICYmIChpZCA9PSBPTUFQX01DQlNQMikpCisJCW9tYXAyX21jYnNwMl9tdXhfc2V0dXAoKTsKK30KKworc3RhdGljIGludCBvbWFwMl9tY2JzcF9jaGVjayh1bnNpZ25lZCBpbnQgaWQpCit7CisJaWYgKGlkID4gT01BUF9NQVhfTUNCU1BfQ09VTlQgLSAxKSB7CisJCXByaW50ayhLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBkb2Vzbid0IGV4aXN0XG4iLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9tY2JzcF9vcHMgb21hcDJfbWNic3Bfb3BzID0geworCS5yZXF1ZXN0CT0gb21hcDJfbWNic3BfcmVxdWVzdCwKKwkuY2hlY2sJCT0gb21hcDJfbWNic3BfY2hlY2ssCit9OworCisjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDI0WFgKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhIG9tYXAyNHh4X21jYnNwX3BkYXRhW10gPSB7CisJeworCQkudmlydF9iYXNlCT0gSU9fQUREUkVTUyhPTUFQMjRYWF9NQ0JTUDFfQkFTRSksCisJCS5kbWFfcnhfc3luYwk9IE9NQVAyNFhYX0RNQV9NQ0JTUDFfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVAyNFhYX0RNQV9NQ0JTUDFfVFgsCisJCS5yeF9pcnEJCT0gSU5UXzI0WFhfTUNCU1AxX0lSUV9SWCwKKwkJLnR4X2lycQkJPSBJTlRfMjRYWF9NQ0JTUDFfSVJRX1RYLAorCQkub3BzCQk9ICZvbWFwMl9tY2JzcF9vcHMsCisJCS5jbGtfbmFtZQk9ICJtY2JzcF9jbGsiLAorCX0sCisJeworCQkudmlydF9iYXNlCT0gSU9fQUREUkVTUyhPTUFQMjRYWF9NQ0JTUDJfQkFTRSksCisJCS5kbWFfcnhfc3luYwk9IE9NQVAyNFhYX0RNQV9NQ0JTUDJfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVAyNFhYX0RNQV9NQ0JTUDJfVFgsCisJCS5yeF9pcnEJCT0gSU5UXzI0WFhfTUNCU1AyX0lSUV9SWCwKKwkJLnR4X2lycQkJPSBJTlRfMjRYWF9NQ0JTUDJfSVJRX1RYLAorCQkub3BzCQk9ICZvbWFwMl9tY2JzcF9vcHMsCisJCS5jbGtfbmFtZQk9ICJtY2JzcF9jbGsiLAorCX0sCit9OworI2RlZmluZSBPTUFQMjRYWF9NQ0JTUF9QREFUQV9TWgkJQVJSQVlfU0laRShvbWFwMjR4eF9tY2JzcF9wZGF0YSkKKyNlbHNlCisjZGVmaW5lIG9tYXAyNHh4X21jYnNwX3BkYXRhCQlOVUxMCisjZGVmaW5lIE9NQVAyNFhYX01DQlNQX1BEQVRBX1NaCQkwCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX09NQVAzNFhYCitzdGF0aWMgc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSBvbWFwMzR4eF9tY2JzcF9wZGF0YVtdID0geworCXsKKwkJLnZpcnRfYmFzZQk9IElPX0FERFJFU1MoT01BUDM0WFhfTUNCU1AxX0JBU0UpLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQMjRYWF9ETUFfTUNCU1AxX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQMjRYWF9ETUFfTUNCU1AxX1RYLAorCQkucnhfaXJxCQk9IElOVF8yNFhYX01DQlNQMV9JUlFfUlgsCisJCS50eF9pcnEJCT0gSU5UXzI0WFhfTUNCU1AxX0lSUV9UWCwKKwkJLm9wcwkJPSAmb21hcDJfbWNic3Bfb3BzLAorCQkuY2xrX25hbWUJPSAibWNic3BfY2xrIiwKKwl9LAorCXsKKwkJLnZpcnRfYmFzZQk9IElPX0FERFJFU1MoT01BUDM0WFhfTUNCU1AyX0JBU0UpLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQMjRYWF9ETUFfTUNCU1AyX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQMjRYWF9ETUFfTUNCU1AyX1RYLAorCQkucnhfaXJxCQk9IElOVF8yNFhYX01DQlNQMl9JUlFfUlgsCisJCS50eF9pcnEJCT0gSU5UXzI0WFhfTUNCU1AyX0lSUV9UWCwKKwkJLm9wcwkJPSAmb21hcDJfbWNic3Bfb3BzLAorCQkuY2xrX25hbWUJPSAibWNic3BfY2xrIiwKKwl9LAorfTsKKyNkZWZpbmUgT01BUDM0WFhfTUNCU1BfUERBVEFfU1oJCUFSUkFZX1NJWkUob21hcDM0eHhfbWNic3BfcGRhdGEpCisjZWxzZQorI2RlZmluZSBvbWFwMzR4eF9tY2JzcF9wZGF0YQkJTlVMTAorI2RlZmluZSBPTUFQMzRYWF9NQ0JTUF9QREFUQV9TWgkJMAorI2VuZGlmCisKK2ludCBfX2luaXQgb21hcDJfbWNic3BfaW5pdCh2b2lkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG9tYXBfbWNic3BfY2xrc19zaXplOyBpKyspIHsKKwkJLyogT25jZSB3ZSBjYWxsIGNsa19nZXQgaW5zaWRlIGluaXQsIHdlIGRvIG5vdCByZWdpc3RlciBpdCAqLworCQlvbWFwX21jYnNwX2Nsa19pbml0KCZvbWFwX21jYnNwX2Nsa3NbaV0pOworCQljbGtfcmVnaXN0ZXIoJm9tYXBfbWNic3BfY2xrc1tpXS5jbGspOworCX0KKworCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKKwkJb21hcF9tY2JzcF9yZWdpc3Rlcl9ib2FyZF9jZmcob21hcDI0eHhfbWNic3BfcGRhdGEsCisJCQkJCQlPTUFQMjRYWF9NQ0JTUF9QREFUQV9TWik7CisKKwlpZiAoY3B1X2lzX29tYXAzNHh4KCkpCisJCW9tYXBfbWNic3BfcmVnaXN0ZXJfYm9hcmRfY2ZnKG9tYXAzNHh4X21jYnNwX3BkYXRhLAorCQkJCQkJT01BUDM0WFhfTUNCU1BfUERBVEFfU1opOworCisJcmV0dXJuIG9tYXBfbWNic3BfaW5pdCgpOworfQorYXJjaF9pbml0Y2FsbChvbWFwMl9tY2JzcF9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvbWVtb3J5LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL21lbW9yeS5jCmluZGV4IDEyNDc5MDguLjczY2FkYjIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvbWVtb3J5LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9tZW1vcnkuYwpAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9jbG9jay5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3NyYW0uaD4KIApAQCAtMzIsOCArMzMsOCBAQAogI2luY2x1ZGUgIm1lbW9yeS5oIgogI2luY2x1ZGUgInNkcmMuaCIKIAotdW5zaWduZWQgbG9uZyBvbWFwMl9zZHJjX2Jhc2U7Ci11bnNpZ25lZCBsb25nIG9tYXAyX3Ntc19iYXNlOwordm9pZCBfX2lvbWVtICpvbWFwMl9zZHJjX2Jhc2U7Cit2b2lkIF9faW9tZW0gKm9tYXAyX3Ntc19iYXNlOwogCiBzdGF0aWMgc3RydWN0IG1lbW9yeV90aW1pbmdzIG1lbV90aW1pbmdzOwogc3RhdGljIHUzMiBjdXJyX3BlcmZfbGV2ZWwgPSBDT1JFX0NMS19TUkNfRFBMTF9YMjsKQEAgLTE1NCw2ICsxNTUsMTIgQEAKIAltZW1fdGltaW5ncy5zbG93X2RsbF9jdHJsIHw9ICgoMSA8PCAxKSB8ICgzIDw8IDgpKTsKIH0KIAordm9pZCBfX2luaXQgb21hcDJfc2V0X2dsb2JhbHNfbWVtb3J5KHN0cnVjdCBvbWFwX2dsb2JhbHMgKm9tYXAyX2dsb2JhbHMpCit7CisJb21hcDJfc2RyY19iYXNlID0gb21hcDJfZ2xvYmFscy0+c2RyYzsKKwlvbWFwMl9zbXNfYmFzZSA9IG9tYXAyX2dsb2JhbHMtPnNtczsKK30KKwogLyogdHVybiBvbiBzbWFydCBpZGxlIG1vZGVzIGZvciBTRFJBTSBzY2hlZHVsZXIgYW5kIGNvbnRyb2xsZXIgKi8KIHZvaWQgX19pbml0IG9tYXAyX2luaXRfbWVtb3J5KHZvaWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL211eC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9tdXguYwppbmRleCA5MzA3NzAwLi44Zjk4YjIwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL211eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbXV4LmMKQEAgLTIzNiw3ICsyMzYsNyBAQAogCXdhcm4gPSAob3JpZyAhPSByZWcpOwogCWlmIChkZWJ1ZyB8fCB3YXJuKQogCQlwcmludGsoS0VSTl9XQVJOSU5HCi0JCQkiTVVYOiBzZXR1cCAlcyAoMHglMDh4KTogMHglMDJ4IC0+IDB4JTAyeFxuIiwKKwkJCSJNVVg6IHNldHVwICVzICgweCVwKTogMHglMDR4IC0+IDB4JTA0eFxuIiwKIAkJCWNmZy0+bmFtZSwgb21hcF9jdHJsX2Jhc2VfZ2V0KCkgKyBjZmctPm11eF9yZWcsCiAJCQlvcmlnLCByZWcpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wbS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wbS5jCmluZGV4IGFhZDc4MWQuLmQ2YzlkZTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvcG0uYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3BtLmMKQEAgLTU3LDEzICs1Nyw2IEBACiAJCXJldHVybjsKIAl9CiAKLQkvKgotCSAqIFNpbmNlIGFuIGludGVycnVwdCBtYXkgc2V0IHVwIGEgdGltZXIsIHdlIGRvbid0IHdhbnQgdG8KLQkgKiByZXByb2dyYW0gdGhlIGhhcmR3YXJlIHRpbWVyIHdpdGggaW50ZXJydXB0cyBlbmFibGVkLgotCSAqIFJlLWVuYWJsZSBpbnRlcnJ1cHRzIG9ubHkgYWZ0ZXIgcmV0dXJuaW5nIGZyb20gaWRsZS4KLQkgKi8KLQl0aW1lcl9keW5fcmVwcm9ncmFtKCk7Ci0KIAlvbWFwMl9zcmFtX2lkbGUoKTsKIAlsb2NhbF9maXFfZW5hYmxlKCk7CiAJbG9jYWxfaXJxX2VuYWJsZSgpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcmNtLWNvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcmNtLWNvbW1vbi5oCmluZGV4IGNhY2IzNDAuLjU0YzMyZjQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJjbS1jb21tb24uaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20tY29tbW9uLmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogCiAvKiBDaGlwLXNwZWNpZmljIG1vZHVsZSBvZmZzZXRzICovCisjZGVmaW5lIE9NQVAyNFhYX0dSX01PRAkJCQkJT0NQX01PRAogI2RlZmluZSBPTUFQMjRYWF9EU1BfTU9ECQkJCTB4ODAwCiAKICNkZWZpbmUgT01BUDI0MzBfTURNX01PRAkJCQkweGMwMApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcmNtLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20uYwppbmRleCBiMTJmNDIzLi5mZDkyYTgwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20uYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20uYwpAQCAtMTYsMTYgKzE2LDIxIEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAKLSNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9wcmNtLmg+CiAKKyNpbmNsdWRlICJjbG9jay5oIgogI2luY2x1ZGUgInBybS5oIgogI2luY2x1ZGUgInBybS1yZWdiaXRzLTI0eHguaCIKIAotZXh0ZXJuIHZvaWQgb21hcDJfY2xrX3ByZXBhcmVfZm9yX3JlYm9vdCh2b2lkKTsKK3N0YXRpYyB2b2lkIF9faW9tZW0gKnBybV9iYXNlOworc3RhdGljIHZvaWQgX19pb21lbSAqY21fYmFzZTsKIAogdTMyIG9tYXBfcHJjbV9nZXRfcmVzZXRfc291cmNlcyh2b2lkKQogeworCS8qIFhYWCBUaGlzIHByZXN1bWFibHkgbmVlZHMgbW9kaWZpY2F0aW9uIGZvciAzNFhYICovCiAJcmV0dXJuIHBybV9yZWFkX21vZF9yZWcoV0tVUF9NT0QsIFJNX1JTVFNUKSAmIDB4N2Y7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfcHJjbV9nZXRfcmVzZXRfc291cmNlcyk7CkBAIC0zMywxMSArMzgsOTAgQEAKIC8qIFJlc2V0cyBjbG9jayByYXRlcyBhbmQgcmVib290cyB0aGUgc3lzdGVtLiBPbmx5IGNhbGxlZCBmcm9tIHN5c3RlbS5oICovCiB2b2lkIG9tYXBfcHJjbV9hcmNoX3Jlc2V0KGNoYXIgbW9kZSkKIHsKLQl1MzIgd2t1cDsKKwlzMTYgcHJjbV9vZmZzOwogCW9tYXAyX2Nsa19wcmVwYXJlX2Zvcl9yZWJvb3QoKTsKIAotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkgewotCQl3a3VwID0gcHJtX3JlYWRfbW9kX3JlZyhXS1VQX01PRCwgUk1fUlNUQ1RSTCkgfCBPTUFQX1JTVF9EUExMMzsKLQkJcHJtX3dyaXRlX21vZF9yZWcod2t1cCwgV0tVUF9NT0QsIFJNX1JTVENUUkwpOwotCX0KKwlpZiAoY3B1X2lzX29tYXAyNHh4KCkpCisJCXByY21fb2ZmcyA9IFdLVVBfTU9EOworCWVsc2UgaWYgKGNwdV9pc19vbWFwMzR4eCgpKQorCQlwcmNtX29mZnMgPSBPTUFQMzQzMF9HUl9NT0Q7CisJZWxzZQorCQlXQVJOX09OKDEpOworCisJcHJtX3NldF9tb2RfcmVnX2JpdHMoT01BUF9SU1RfRFBMTDMsIHByY21fb2ZmcywgUk1fUlNUQ1RSTCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTMyIF9fb21hcF9wcmNtX3JlYWQodm9pZCBfX2lvbWVtICpiYXNlLCBzMTYgbW9kdWxlLCB1MTYgcmVnKQoreworCUJVR19PTighYmFzZSk7CisJcmV0dXJuIF9fcmF3X3JlYWRsKGJhc2UgKyBtb2R1bGUgKyByZWcpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgX19vbWFwX3ByY21fd3JpdGUodTMyIHZhbHVlLCB2b2lkIF9faW9tZW0gKmJhc2UsCisJCQkJCQlzMTYgbW9kdWxlLCB1MTYgcmVnKQoreworCUJVR19PTighYmFzZSk7CisJX19yYXdfd3JpdGVsKHZhbHVlLCBiYXNlICsgbW9kdWxlICsgcmVnKTsKK30KKworLyogUmVhZCBhIHJlZ2lzdGVyIGluIGEgUFJNIG1vZHVsZSAqLwordTMyIHBybV9yZWFkX21vZF9yZWcoczE2IG1vZHVsZSwgdTE2IGlkeCkKK3sKKwlyZXR1cm4gX19vbWFwX3ByY21fcmVhZChwcm1fYmFzZSwgbW9kdWxlLCBpZHgpOworfQorRVhQT1JUX1NZTUJPTChwcm1fcmVhZF9tb2RfcmVnKTsKKworLyogV3JpdGUgaW50byBhIHJlZ2lzdGVyIGluIGEgUFJNIG1vZHVsZSAqLwordm9pZCBwcm1fd3JpdGVfbW9kX3JlZyh1MzIgdmFsLCBzMTYgbW9kdWxlLCB1MTYgaWR4KQoreworCV9fb21hcF9wcmNtX3dyaXRlKHZhbCwgcHJtX2Jhc2UsIG1vZHVsZSwgaWR4KTsKK30KK0VYUE9SVF9TWU1CT0wocHJtX3dyaXRlX21vZF9yZWcpOworCisvKiBSZWFkLW1vZGlmeS13cml0ZSBhIHJlZ2lzdGVyIGluIGEgUFJNIG1vZHVsZS4gQ2FsbGVyIG11c3QgbG9jayAqLwordTMyIHBybV9ybXdfbW9kX3JlZ19iaXRzKHUzMiBtYXNrLCB1MzIgYml0cywgczE2IG1vZHVsZSwgczE2IGlkeCkKK3sKKwl1MzIgdjsKKworCXYgPSBwcm1fcmVhZF9tb2RfcmVnKG1vZHVsZSwgaWR4KTsKKwl2ICY9IH5tYXNrOworCXYgfD0gYml0czsKKwlwcm1fd3JpdGVfbW9kX3JlZyh2LCBtb2R1bGUsIGlkeCk7CisKKwlyZXR1cm4gdjsKK30KK0VYUE9SVF9TWU1CT0wocHJtX3Jtd19tb2RfcmVnX2JpdHMpOworCisvKiBSZWFkIGEgcmVnaXN0ZXIgaW4gYSBDTSBtb2R1bGUgKi8KK3UzMiBjbV9yZWFkX21vZF9yZWcoczE2IG1vZHVsZSwgdTE2IGlkeCkKK3sKKwlyZXR1cm4gX19vbWFwX3ByY21fcmVhZChjbV9iYXNlLCBtb2R1bGUsIGlkeCk7Cit9CitFWFBPUlRfU1lNQk9MKGNtX3JlYWRfbW9kX3JlZyk7CisKKy8qIFdyaXRlIGludG8gYSByZWdpc3RlciBpbiBhIENNIG1vZHVsZSAqLwordm9pZCBjbV93cml0ZV9tb2RfcmVnKHUzMiB2YWwsIHMxNiBtb2R1bGUsIHUxNiBpZHgpCit7CisJX19vbWFwX3ByY21fd3JpdGUodmFsLCBjbV9iYXNlLCBtb2R1bGUsIGlkeCk7Cit9CitFWFBPUlRfU1lNQk9MKGNtX3dyaXRlX21vZF9yZWcpOworCisvKiBSZWFkLW1vZGlmeS13cml0ZSBhIHJlZ2lzdGVyIGluIGEgQ00gbW9kdWxlLiBDYWxsZXIgbXVzdCBsb2NrICovCit1MzIgY21fcm13X21vZF9yZWdfYml0cyh1MzIgbWFzaywgdTMyIGJpdHMsIHMxNiBtb2R1bGUsIHMxNiBpZHgpCit7CisJdTMyIHY7CisKKwl2ID0gY21fcmVhZF9tb2RfcmVnKG1vZHVsZSwgaWR4KTsKKwl2ICY9IH5tYXNrOworCXYgfD0gYml0czsKKwljbV93cml0ZV9tb2RfcmVnKHYsIG1vZHVsZSwgaWR4KTsKKworCXJldHVybiB2OworfQorRVhQT1JUX1NZTUJPTChjbV9ybXdfbW9kX3JlZ19iaXRzKTsKKwordm9pZCBfX2luaXQgb21hcDJfc2V0X2dsb2JhbHNfcHJjbShzdHJ1Y3Qgb21hcF9nbG9iYWxzICpvbWFwMl9nbG9iYWxzKQoreworCXBybV9iYXNlID0gb21hcDJfZ2xvYmFscy0+cHJtOworCWNtX2Jhc2UgPSBvbWFwMl9nbG9iYWxzLT5jbTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL3BybS5oCmluZGV4IDYxOGY4MTEuLmJiZjQxZmMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0uaApAQCAtMzgsMTMgKzM4LDI5IEBACiAgKgogICovCiAKKy8qIEdsb2JhbCAyNHh4IHJlZ2lzdGVycyBpbiBHUl9NT0QgKFNhbWUgYXMgT0NQX01PRCBmb3IgMjR4eCkgKi8KKyNkZWZpbmUgT01BUDI0WFhfUFJDTV9WT0xUQ1RSTF9PRkZTRVQJCTB4MDA1MAorI2RlZmluZSBPTUFQMjRYWF9QUkNNX0NMS0NGR19DVFJMX09GRlNFVAkweDAwODAKKworLyogMjQyeCBHUl9NT0QgcmVnaXN0ZXJzLCB1c2UgdGhlc2Ugb25seSBmb3IgYXNzZW1ibHkgY29kZSAqLworI2RlZmluZSBPTUFQMjQyWF9QUkNNX1ZPTFRDVFJMCQlPTUFQMjQyMF9QUk1fUkVHQUREUihPTUFQMjRYWF9HUl9NT0QsCVwKKwkJCQkJCU9NQVAyNFhYX1BSQ01fVk9MVENUUkxfT0ZGU0VUKQorI2RlZmluZSBPTUFQMjQyWF9QUkNNX0NMS0NGR19DVFJMCU9NQVAyNDIwX1BSTV9SRUdBRERSKE9NQVAyNFhYX0dSX01PRCwJXAorCQkJCQkJT01BUDI0WFhfUFJDTV9DTEtDRkdfQ1RSTF9PRkZTRVQpCisKKy8qIDI0M3ggR1JfTU9EIHJlZ2lzdGVycywgdXNlIHRoZXNlIG9ubHkgZm9yIGFzc2VtYmx5IGNvZGUgKi8KKyNkZWZpbmUgT01BUDI0M1hfUFJDTV9WT0xUQ1RSTAkJT01BUDI0MzBfUFJNX1JFR0FERFIoT01BUDI0WFhfR1JfTU9ELAlcCisJCQkJCQlPTUFQMjRYWF9QUkNNX1ZPTFRDVFJMX09GRlNFVCkKKyNkZWZpbmUgT01BUDI0M1hfUFJDTV9DTEtDRkdfQ1RSTAlPTUFQMjQzMF9QUk1fUkVHQUREUihPTUFQMjRYWF9HUl9NT0QsCVwKKwkJCQkJCU9NQVAyNFhYX1BSQ01fQ0xLQ0ZHX0NUUkxfT0ZGU0VUKQorCisvKiBUaGVzZSB3aWxsIGRpc2FwcGVhciAqLwogI2RlZmluZSBPTUFQMjRYWF9QUkNNX1JFVklTSU9OCQlPTUFQX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDAwMCkKICNkZWZpbmUgT01BUDI0WFhfUFJDTV9TWVNDT05GSUcJCU9NQVBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDEwKQogCiAjZGVmaW5lIE9NQVAyNFhYX1BSQ01fSVJRU1RBVFVTX01QVQlPTUFQX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDAxOCkKICNkZWZpbmUgT01BUDI0WFhfUFJDTV9JUlFFTkFCTEVfTVBVCU9NQVBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDFjKQogCi0jZGVmaW5lIE9NQVAyNFhYX1BSQ01fVk9MVENUUkwJCU9NQVBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDUwKQogI2RlZmluZSBPTUFQMjRYWF9QUkNNX1ZPTFRTVAkJT01BUF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNTQpCiAjZGVmaW5lIE9NQVAyNFhYX1BSQ01fQ0xLU1JDX0NUUkwJT01BUF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNjApCiAjZGVmaW5lIE9NQVAyNFhYX1BSQ01fQ0xLT1VUX0NUUkwJT01BUF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNzApCkBAIC0xNTAsMTUgKzE2NiwxOSBAQAogI2lmbmRlZiBfX0FTU0VNQkxFUl9fCiAKIC8qIFBvd2VyL3Jlc2V0IG1hbmFnZW1lbnQgZG9tYWluIHJlZ2lzdGVyIGdldC9zZXQgKi8KK2V4dGVybiB1MzIgcHJtX3JlYWRfbW9kX3JlZyhzMTYgbW9kdWxlLCB1MTYgaWR4KTsKK2V4dGVybiB2b2lkIHBybV93cml0ZV9tb2RfcmVnKHUzMiB2YWwsIHMxNiBtb2R1bGUsIHUxNiBpZHgpOworZXh0ZXJuIHUzMiBwcm1fcm13X21vZF9yZWdfYml0cyh1MzIgbWFzaywgdTMyIGJpdHMsIHMxNiBtb2R1bGUsIHMxNiBpZHgpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgcHJtX3dyaXRlX21vZF9yZWcodTMyIHZhbCwgczE2IG1vZHVsZSwgczE2IGlkeCkKKy8qIFJlYWQtbW9kaWZ5LXdyaXRlIGJpdHMgaW4gYSBQUk0gcmVnaXN0ZXIgKGJ5IGRvbWFpbikgKi8KK3N0YXRpYyBpbmxpbmUgdTMyIHBybV9zZXRfbW9kX3JlZ19iaXRzKHUzMiBiaXRzLCBzMTYgbW9kdWxlLCBzMTYgaWR4KQogewotCV9fcmF3X3dyaXRlbCh2YWwsIE9NQVBfUFJNX1JFR0FERFIobW9kdWxlLCBpZHgpKTsKKwlyZXR1cm4gcHJtX3Jtd19tb2RfcmVnX2JpdHMoYml0cywgYml0cywgbW9kdWxlLCBpZHgpOwogfQogCi1zdGF0aWMgaW5saW5lIHUzMiBwcm1fcmVhZF9tb2RfcmVnKHMxNiBtb2R1bGUsIHMxNiBpZHgpCitzdGF0aWMgaW5saW5lIHUzMiBwcm1fY2xlYXJfbW9kX3JlZ19iaXRzKHUzMiBiaXRzLCBzMTYgbW9kdWxlLCBzMTYgaWR4KQogewotCXJldHVybiBfX3Jhd19yZWFkbChPTUFQX1BSTV9SRUdBRERSKG1vZHVsZSwgaWR4KSk7CisJcmV0dXJuIHBybV9ybXdfbW9kX3JlZ19iaXRzKGJpdHMsIDB4MCwgbW9kdWxlLCBpZHgpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvc2RyYy5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zZHJjLmgKaW5kZXggZDdmMjNiYy4uMWIxZmU0ZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zZHJjLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zZHJjLmgKQEAgLTE4LDEzICsxOCwxMSBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL3NkcmMuaD4KIAogI2lmbmRlZiBfX0FTU0VNQkxFUl9fCi1leHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMl9zZHJjX2Jhc2U7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMl9zbXNfYmFzZTsKK2V4dGVybiB2b2lkIF9faW9tZW0gKm9tYXAyX3NkcmNfYmFzZTsKK2V4dGVybiB2b2lkIF9faW9tZW0gKm9tYXAyX3Ntc19iYXNlOwogCi0jZGVmaW5lIE9NQVBfU0RSQ19SRUdBRERSKHJlZykJCQkJCQlcCi0JCSh2b2lkIF9faW9tZW0gKilJT19BRERSRVNTKG9tYXAyX3NkcmNfYmFzZSArIChyZWcpKQotI2RlZmluZSBPTUFQX1NNU19SRUdBRERSKHJlZykJCQkJCQlcCi0JCSh2b2lkIF9faW9tZW0gKilJT19BRERSRVNTKG9tYXAyX3Ntc19iYXNlICsgKHJlZykpCisjZGVmaW5lIE9NQVBfU0RSQ19SRUdBRERSKHJlZykJCQkob21hcDJfc2RyY19iYXNlICsgKHJlZykpCisjZGVmaW5lIE9NQVBfU01TX1JFR0FERFIocmVnKQkJCShvbWFwMl9zbXNfYmFzZSArIChyZWcpKQogCiAvKiBTRFJDIGdsb2JhbCByZWdpc3RlciBnZXQvc2V0ICovCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbS1mbi5TIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtLWZuLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhOWU0OTEuLjAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtLWZuLlMKKysrIC9kZXYvbnVsbApAQCAtMSwzMjQgKzAsMCBAQAotLyoKLSAqIGxpbnV4L2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbS1mbi5TCi0gKgotICogT21hcDIgc3BlY2lmaWMgZnVuY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBydW4gaW4gaW50ZXJuYWwgU1JBTQotICoKLSAqIChDKSBDb3B5cmlnaHQgMjAwNAotICogVGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cudGkuY29tPgotICogUmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgotICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiAvUFVSUE9TRS4gU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCi0gKiBNQSAwMjExMS0xMzA3IFVTQQotICovCi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGFzbS9hc3NlbWJsZXIuaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9pby5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgotCi0jaW5jbHVkZSAic2RyYy5oIgotI2luY2x1ZGUgInBybS5oIgotI2luY2x1ZGUgImNtLmgiCi0KLSNkZWZpbmUgVElNRVJfMzJLU1lOQ1RfQ1JfVglJT19BRERSRVNTKE9NQVAyNDIwXzMyS1NZTkNUX0JBU0UgKyAweDAxMCkKLQotCS50ZXh0Ci0KLUVOVFJZKHNyYW1fZGRyX2luaXQpCi0Jc3RtZmQJc3AhLCB7cjAgLSByMTIsIGxyfQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNrCi0KLQltb3YJcjEyLCByMgkJCUAgY2FwdHVyZSBDUzEgdnMgQ1MwCi0JbW92CXI4LCByMwkJCUAgY2FwdHVyZSBmb3JjZSBwYXJhbWV0ZXIKLQotCS8qIGZyZXF1ZW5jeSBzaGlmdCBkb3duICovCi0JbGRyCXIyLCBjbV9jbGtzZWwyX3BsbAlAIGdldCBhZGRyZXNzIG9mIGRwbGxvdXQgcmVnCi0JbW92CXIzLCAjMHgxCQlAIHZhbHVlIGZvciAxeCBvcGVyYXRpb24KLQlzdHIJcjMsIFtyMl0JCUAgZ28gdG8gTDEtZnJlcSBvcGVyYXRpb24KLQotCS8qIHZvbHRhZ2Ugc2hpZnQgZG93biAqLwotCW1vdiByOSwgIzB4MQkJCUAgc2V0IHVwIGZvciBMMSB2b2x0YWdlIGNhbGwKLQlibCB2b2x0YWdlX3NoaWZ0CQlAIGdvIGRyb3Agdm9sdGFnZQotCi0JLyogZGxsIGxvY2sgbW9kZSAqLwotCWxkcglyMTEsIHNkcmNfZGxsYV9jdHJsCUAgYWRkciBvZiBkbGxhIGN0cmwKLQlsZHIJcjEwLCBbcjExXQkJQCBnZXQgY3VycmVudCB2YWwKLQljbXAJcjEyLCAjMHgxCQlAIGNzMSBiYXNlICgyNDIyIGVzMi4wNS8xKQotCWFkZGVxCXIxMSwgcjExLCAjMHg4CQlAIGlmIGNzMSBiYXNlLCBtb3ZlIHRvIERMTEIKLQltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xlYXIgYml0MgotCWFuZAlyMTAsIHIxMCwgcjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlLgotCW9ycglyMTAsIHIxMCwgIzB4OAkJQCBtYWtlIHN1cmUgRExMIG9uIChlczIgYml0IHBvcykKLQlvcnIJcjEwLCByMTAsICMweDIJCUAgOTAgZGVncmVlIHBoYXNlIGZvciBhbGwgYmVsb3cgMTMzTWh6Ci0Jc3RyCXIxMCwgW3IxMV0JCUAgY29tbWl0IHRvIERMTEFfQ1RSTAotCWJsCWlfZGxsX3dhaXQJCUAgd2FpdCBmb3IgZGxsIHRvIGxvY2sKLQotCS8qIGdldCBkbGwgdmFsdWUgKi8KLQlhZGQJcjExLCByMTEsICMweDQJCUAgZ2V0IGFkZHIgb2Ygc3RhdHVzIHJlZwotCWxkcglyMTAsIFtyMTFdCQlAIGdldCBsb2NrZWQgdmFsdWUKLQotCS8qIHZvbHRhZ2Ugc2hpZnQgdXAgKi8KLQltb3YgcjksICMweDAJCQlAIHNoaWZ0IGJhY2sgdG8gTDAtdm9sdGFnZQotCWJsIHZvbHRhZ2Vfc2hpZnQJCUAgZ28gcmFpc2Ugdm9sdGFnZQotCi0JLyogZnJlcXVlbmN5IHNoaWZ0IHVwICovCi0JbW92CXIzLCAjMHgyCQlAIHZhbHVlIGZvciAyeCBvcGVyYXRpb24KLQlzdHIJcjMsIFtyMl0JCUAgZ28gdG8gTDAtZnJlcSBvcGVyYXRpb24KLQotCS8qIHJlc2V0IGVudHJ5IG1vZGUgZm9yIGRsbGN0cmwgKi8KLQlzdWIJcjExLCByMTEsICMweDQJCUAgbW92ZSBmcm9tIHN0YXR1cyB0byBjdHJsCi0JY21wCXIxMiwgIzB4MQkJQCBub3JtYWxpemUgaWYgY3MxIGJhc2VkCi0Jc3ViZXEJcjExLCByMTEsICMweDgJCUAgcG9zc2libHkgYmFjayB0byBETExBCi0JY21wCXI4LCAjMHgxCQlAIGlmIGZvcmNlZCB1bmxvY2sgZXhpdAotCW9ycmVxCXIxLCByMSwgIzB4NAkJQCBtYWtlIHN1cmUgZXhpdCB3aXRoIHVubG9ja2VkIHZhbHVlCi0Jc3RyCXIxLCBbcjExXQkJQCByZXN0b3JlIERMTEFfQ1RSTCBoaWdoIHZhbHVlCi0JYWRkCXIxMSwgcjExLCAjMHg4CQlAIG1vdmUgdG8gRExMQl9DVFJMIGFkZHIKLQlzdHIJcjEsIFtyMTFdCQlAIHNldCB2YWx1ZSBETExCX0NUUkwKLQlibAlpX2RsbF93YWl0CQlAIHdhaXQgZm9yIHBvc3NpYmxlIGxvY2sKLQotCS8qIHNldCB1cCBmb3IgcmV0dXJuLCBERFIgc2hvdWxkIGJlIGdvb2QgKi8KLQlzdHIgcjEwLCBbcjBdCQkJQCB3cml0ZSBkbGxfc3RhdHVzIGFuZCByZXR1cm4gY291bnRlcgotCWxkbWZkCXNwISwge3IwIC0gcjEyLCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgotCi0JLyogZW5zdXJlIHRoZSBETEwgaGFzIHJlbG9ja2VkICovCi1pX2RsbF93YWl0OgotCW1vdglyNCwgIzB4ODAwCQlAIGRlbGF5IERMTCByZWxvY2ssIG1pbiAweDQwMCBMMyBjbG9ja3MKLWlfZGxsX2RlbGF5OgotCXN1YnMJcjQsIHI0LCAjMHgxCi0JYm5lCWlfZGxsX2RlbGF5Ci0JbW92CXBjLCBscgotCi0JLyoKLQkgKiBzaGlmdCB1cCBvciBkb3duIHZvbHRhZ2UsIHVzZSBSOSBhcyBpbnB1dCB0byB0ZWxsIGxldmVsLgotCSAqIHdhaXQgZm9yIGl0IHRvIGZpbmlzaCwgdXNlIDMyayBzeW5jIGNvdW50ZXIsIDF0aWNrPTMxdVMuCi0JICovCi12b2x0YWdlX3NoaWZ0OgotCWxkcglyNCwgcHJjbV92b2x0Y3RybAlAIGdldCBhZGRyIG9mIHZvbHQgY3RybC4KLQlsZHIJcjUsIFtyNF0JCUAgZ2V0IHZhbHVlLgotCWxkcglyNiwgcHJjbV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNrCi0JYW5kCXI1LCByNSwgcjYJCUAgYXBwbHkgbWFzayB0byBjbGVhciBiaXRzCi0Jb3JyCXI1LCByNSwgcjkJCUAgYnVsbGQgdmFsdWUgZm9yIEwwL0wxLXZvbHQgb3BlcmF0aW9uLgotCXN0cglyNSwgW3I0XQkJQCBzZXQgdXAgZm9yIGNoYW5nZS4KLQltb3YJcjMsICMweDQwMDAJCUAgZ2V0IHZhbCBmb3IgZm9yY2UKLQlvcnIJcjUsIHI1LCByMwkJQCBidWlsZCB2YWx1ZSBmb3IgZm9yY2UKLQlzdHIJcjUsIFtyNF0JCUAgRm9yY2UgdHJhbnNpdGlvbiB0byBMMQotCi0JbGRyCXIzLCB0aW1lcl8zMmtzeW5jdF9jcglAIGdldCBhZGRyIG9mIGNvdW50ZXIKLQlsZHIJcjUsIFtyM10JCUAgZ2V0IHZhbHVlCi0JYWRkCXI1LCByNSwgIzB4MwkJQCBnaXZlIGl0IGF0IG1vc3QgOTN1Uwotdm9sdF9kZWxheToKLQlsZHIJcjcsIFtyM10JCUAgZ2V0IHRpbWVyIHZhbHVlCi0JY21wCXI1LCByNwkJCUAgdGltZSB1cD8KLQliaGkJdm9sdF9kZWxheQkJQCBub3QgeWV0LT5icmFuY2gKLQltb3YJcGMsIGxyCQkJQCBiYWNrIHRvIGNhbGxlci4KLQotLyogcmVsYXRpdmUgbG9hZCBjb25zdGFudHMgKi8KLWNtX2Nsa3NlbDJfcGxsOgotCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMikKLXNkcmNfZGxsYV9jdHJsOgotCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKLXByY21fdm9sdGN0cmw6Ci0JLndvcmQgT01BUDI0MjBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHg1MCkKLXByY21fbWFza192YWw6Ci0JLndvcmQgMHhGRkZGM0ZGQwotdGltZXJfMzJrc3luY3RfY3I6Ci0JLndvcmQgVElNRVJfMzJLU1lOQ1RfQ1JfVgotRU5UUlkoc3JhbV9kZHJfaW5pdF9zeikKLQkud29yZAkuIC0gc3JhbV9kZHJfaW5pdAotCi0vKgotICogUmVwcm9ncmFtcyBtZW1vcnkgdGltaW5ncy4KLSAqIHIwID0gW1BSQ01fRlVMTCB8IFBSQ01fSEFMRl0gcjEgPSBTRFJDX0RMTEFfQ1RSTCB2YWx1ZSByMiA9IFtERFIgfCBTRFJdCi0gKiBQUkNNX0ZVTEwgPSAyLCBQUkNNX0hBTEYgPSAxLCBERFIgPSAxLCBTRFIgPSAwCi0gKi8KLUVOVFJZKHNyYW1fcmVwcm9ncmFtX3NkcmMpCi0Jc3RtZmQJc3AhLCB7cjAgLSByMTAsIGxyfQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNrCi0JbW92CXIzLCAjMHgwCQlAIGNsZWFyIGZvciBtcmMgY2FsbAotCW1jcglwMTUsIDAsIHIzLCBjNywgYzEwLCA0CUAgbWVtb3J5IGJhcnJpZXIsIGZpbmlzaCBBUk0gU0RSL0REUgotCW5vcAotCW5vcAotCWxkcglyNiwgZGRyX3NkcmNfcmZyX2N0cmwJQCBnZXQgYWRkciBvZiByZWZyZXNoIHJlZwotCWxkcglyNSwgW3I2XQkJQCBnZXQgdmFsdWUKLQltb3YJcjUsIHI1LCBsc3IgIzgJCUAgaXNvbGF0ZSByZnIgZmllbGQgYW5kIGRyb3AgYnVyc3QKLQotCWNtcAlyMCwgIzB4MQkJQCBnb2luZyB0byBoYWxmIHNwZWVkPwotCW1vdm5lCXI5LCAjMHgwCQlAIGlmIHVwIHNldCBmbGFnIHVwIGZvciBwcmUgdXAsIGhpIHZvbHQKLQotCWJsbmUJdm9sdGFnZV9zaGlmdF9jCQlAIGFkanVzdCB2b2x0YWdlCi0KLQljbXAJcjAsICMweDEJCUAgZ29pbmcgdG8gaGFsZiBzcGVlZCAocG9zdCBicmFuY2ggbGluaykKLQltb3ZlcQlyNSwgcjUsIGxzciAjMQkJQCBkaXZpZGUgYnkgMiBpZiB0byBoYWxmCi0JbW92bmUJcjUsIHI1LCBsc2wgIzEJCUAgbXVsdCBieSAyIGlmIHRvIGZ1bGwKLQltb3YJcjUsIHI1LCBsc2wgIzgJCUAgcHV0IHJmciBmaWVsZCBiYWNrIGludG8gcGxhY2UKLQlhZGQJcjUsIHI1LCAjMHgxCQlAIHR1cm4gb24gYnVyc3Qgb2YgMQotCWxkcglyNCwgZGRyX2NtX2Nsa3NlbDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2Ygb3V0IHJlZwotCWxkcglyMywgW3I0XQkJQCBnZXQgY3VyciB2YWx1ZQotCW9ycglyMywgcjMsICMweDMKLQliaWMJcjMsIHIzLCAjMHgzCQlAIGNsZWFyIGxvd2VyIGJpdHMKLQlvcnIJcjMsIHIzLCByMAkJQCBuZXcgc3RhdGUgdmFsdWUKLQlzdHIJcjMsIFtyNF0JCUAgc2V0IG5ldyBzdGF0ZSAocGxsL3gsIHg9MSBvciAyKQotCW5vcAotCW5vcAotCi0JbW92ZXEJcjksICMweDEJCUAgaWYgc3BlZWQgZG93biwgcG9zdCBkb3duLCBkcm9wIHZvbHQKLQlibGVxCXZvbHRhZ2Vfc2hpZnRfYwotCi0JbWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1vcnkgYmFycmllcgotCXN0cglyNSwgW3I2XQkJQCBzZXQgbmV3IFJGUl8xIHZhbHVlCi0JYWRkCXI2LCByNiwgIzB4MzAJCUAgZ2V0IFJGUl8yIGFkZHIKLQlzdHIJcjUsIFtyNl0JCUAgc2V0IFJGUl8yCi0Jbm9wCi0JY21wCXIyLCAjMHgxCQlAIChTRFIgb3IgRERSKSBkbyB3ZSBuZWVkIHRvIGFkanVzdCBETEwKLQlibmUJZnJlcV9vdXQJCUAgbGVhdmUgaWYgU0RSLCBubyBETEwgZnVuY3Rpb24KLQotCS8qIFdpdGggRERSLCB3ZSBuZWVkIHRvIHRha2UgY2FyZSBvZiB0aGUgRExMIGZvciB0aGUgZnJlcXVlbmN5IGNoYW5nZSAqLwotCWxkcglyMiwgZGRyX3NkcmNfZGxsYV9jdHJsCUAgYWRkciBvZiBkbGxhIGN0cmwKLQlzdHIJcjEsIFtyMl0JCUAgd3JpdGUgb3V0IG5ldyBTRFJDX0RMTEFfQ1RSTAotCWFkZAlyMiwgcjIsICMweDgJCUAgYWRkciB0byBTRFJDX0RMTEJfQ1RSTAotCXN0cglyMSwgW3IyXQkJQCBjb21taXQgdG8gU0RSQ19ETExCX0NUUkwKLQltb3YJcjEsICMweDIwMDAJCUAgd2FpdCBETEwgcmVsb2NrLCBtaW4gMHg0MDAgTDMgY2xvY2tzCi1kbGxfd2FpdDoKLQlzdWJzCXIxLCByMSwgIzB4MQotCWJuZQlkbGxfd2FpdAotZnJlcV9vdXQ6Ci0JbGRtZmQJc3AhLCB7cjAgLSByMTAsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCi0KLSAgICAvKgotICAgICAqIHNoaWZ0IHVwIG9yIGRvd24gdm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCi0gICAgICoJd2FpdCBmb3IgaXQgdG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9MzF1Uy4KLSAgICAgKi8KLXZvbHRhZ2Vfc2hpZnRfYzoKLQlsZHIJcjEwLCBkZHJfcHJjbV92b2x0Y3RybAlAIGdldCBhZGRyIG9mIHZvbHQgY3RybAotCWxkcglyOCwgW3IxMF0JCUAgZ2V0IHZhbHVlCi0JbGRyCXI3LCBkZHJfcHJjbV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNrCi0JYW5kCXI4LCByOCwgcjcJCUAgYXBwbHkgbWFzayB0byBjbGVhciBiaXRzCi0Jb3JyCXI4LCByOCwgcjkJCUAgYnVsbGQgdmFsdWUgZm9yIEwwL0wxLXZvbHQgb3BlcmF0aW9uLgotCXN0cglyOCwgW3IxMF0JCUAgc2V0IHVwIGZvciBjaGFuZ2UuCi0JbW92CXI3LCAjMHg0MDAwCQlAIGdldCB2YWwgZm9yIGZvcmNlCi0Jb3JyCXI4LCByOCwgcjcJCUAgYnVpbGQgdmFsdWUgZm9yIGZvcmNlCi0Jc3RyCXI4LCBbcjEwXQkJQCBGb3JjZSB0cmFuc2l0aW9uIHRvIEwxCi0KLQlsZHIJcjEwLCBkZHJfdGltZXJfMzJrc3luY3QJQCBnZXQgYWRkciBvZiBjb3VudGVyCi0JbGRyCXI4LCBbcjEwXQkJQCBnZXQgdmFsdWUKLQlhZGQJcjgsIHI4LCAjMHgyCQlAIGdpdmUgaXQgYXQgbW9zdCA2MnVTIChtaW4gMzErKQotdm9sdF9kZWxheV9jOgotCWxkcglyNywgW3IxMF0JCUAgZ2V0IHRpbWVyIHZhbHVlCi0JY21wCXI4LCByNwkJCUAgdGltZSB1cD8KLQliaGkJdm9sdF9kZWxheV9jCQlAIG5vdCB5ZXQtPmJyYW5jaAotCW1vdglwYywgbHIJCQlAIGJhY2sgdG8gY2FsbGVyCi0KLWRkcl9jbV9jbGtzZWwyX3BsbDoKLQkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDIpCi1kZHJfc2RyY19kbGxhX2N0cmw6Ci0JLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9DVFJMKQotZGRyX3NkcmNfcmZyX2N0cmw6Ci0JLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfUkZSX0NUUkxfMCkKLWRkcl9wcmNtX3ZvbHRjdHJsOgotCS53b3JkIE9NQVAyNDIwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4NTApCi1kZHJfcHJjbV9tYXNrX3ZhbDoKLQkud29yZCAweEZGRkYzRkZDCi1kZHJfdGltZXJfMzJrc3luY3Q6Ci0JLndvcmQgVElNRVJfMzJLU1lOQ1RfQ1JfVgotCi1FTlRSWShzcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KQotCS53b3JkCS4gLSBzcmFtX3JlcHJvZ3JhbV9zZHJjCi0KLS8qCi0gKiBTZXQgZGl2aWRlcnMgYW5kIHBsbC4gQWxzbyByZWNhbGN1bGF0ZSBETEwgdmFsdWUgZm9yIEREUiBhbmQgdW5sb2NrIG1vZGUuCi0gKi8KLUVOVFJZKHNyYW1fc2V0X3ByY20pCi0Jc3RtZmQJc3AhLCB7cjAtcjEyLCBscn0JQCByZWdzIHRvIHN0YWNrCi0JYWRyCXI0LCBwYmVnaW4JCUAgYWRkciBvZiBwcmVsb2FkIHN0YXJ0Ci0JYWRyCXI4LCBwZW5kCQlAIGFkZHIgb2YgcHJlbG9hZCBlbmQKLQltY3JyCXAxNSwgMSwgcjgsIHI0LCBjMTIJQCBwcmVsb2FkIGludG8gaWNhY2hlCi1wYmVnaW46Ci0JLyogbW92ZSBpbnRvIGZhc3QgcmVsb2NrIGJ5cGFzcyAqLwotCWxkcglyOCwgcGxsX2N0bAkJQCBnZXQgYWRkcgotCWxkcglyNSwgW3I4XQkJQCBnZXQgdmFsCi0JbXZuCXI2LCAjMHgzCQlAIGNsZWFyIG1hc2sKLQlhbmQJcjUsIHI1LCByNgkJQCBjbGVhciBmaWVsZAotCW9ycglyNywgcjUsICMweDIJCUAgZmFzdCByZWxvY2sgdmFsCi0Jc3RyCXI3LCBbcjhdCQlAIGdvIHRvIGZhc3QgcmVsb2NrCi0JbGRyCXI0LCBwbGxfc3RhdAkJQCBhZGRyIG9mIHN0YXQKLWJsb2NrOgotCS8qIHdhaXQgZm9yIGJ5cGFzcyAqLwotCWxkcglyOCwgW3I0XQkJQCBzdGF0IHZhbHVlCi0JYW5kCXI4LCByOCwgIzB4MwkJQCBtYXNrIGZvciBzdGF0Ci0JY21wCXI4LCAjMHgxCQlAIHRoZXJlIHlldAotCWJuZQlibG9jawkJCUAgbG9vcCBpZiBub3QKLQotCS8qIHNldCBuZXcgZHBsbCBkaXZpZGVycyBfYWZ0ZXJfIGluIGJ5cGFzcyAqLwotCWxkcglyNCwgcGxsX2RpdgkJQCBnZXQgYWRkcgotCXN0cglyMCwgW3I0XQkJQCBzZXQgZHBsbCBjdHJsIHZhbAotCi0JbGRyCXI0LCBzZXRfY29uZmlnCQlAIGdldCBhZGRyCi0JbW92CXI4LCAjMQkJCUAgdmFsaWQgY2ZnIG1zawotCXN0cglyOCwgW3I0XQkJQCBtYWtlIGRpdmlkZXJzIHRha2UKLQotCW1vdglyNCwgIzEwMAkJQCBkZWFkIHNwaW4gYSBiaXQKLXdhaXRfYV9iaXQ6Ci0Jc3VicwlyNCwgcjQsICMxCQlAIGRlYyBsb29wCi0JYm5lCXdhaXRfYV9iaXQJCUAgZGVsYXkgZG9uZT8KLQotCS8qIGNoZWNrIGlmIHN0YXlpbmcgaW4gYnlwYXNzICovCi0JY21wCXIyLCAjMHgxCQlAIHN0YXkgaW4gYnlwYXNzPwotCWJlcQlwZW5kCQkJQCBqdW1wIG92ZXIgZHBsbCByZWxvY2sKLQotCS8qIHJlbG9jayBEUExMIHdpdGggbmV3IHZhbHMgKi8KLQlsZHIJcjUsIHBsbF9zdGF0CQlAIGdldCBhZGRyCi0JbGRyCXI0LCBwbGxfY3RsCQlAIGdldCBhZGRyCi0Jb3JyCXI4LCByNywgIzB4MwkJQCB2YWwgZm9yIGxvY2sgZHBsbAotCXN0cglyOCwgW3I0XQkJQCBzZXQgdmFsCi0JbW92CXIwLCAjMTAwMAkJQCBkZWFkIHNwaW4gYSBiaXQKLXdhaXRfbW9yZToKLQlzdWJzCXIwLCByMCwgIzEJCUAgZGVjIGxvb3AKLQlibmUJd2FpdF9tb3JlCQlAIGRlbGF5IGRvbmU/Ci13YWl0X2xvY2s6Ci0JbGRyCXI4LCBbcjVdCQlAIGdldCBsb2NrIHZhbAotCWFuZAlyOCwgcjgsICMzCQlAIGlzb2xhdGUgZmllbGQKLQljbXAJcjgsICMyCQkJQCBsb2NrZWQ/Ci0JYm5lCXdhaXRfbG9jawkJQCB3YWl0IGlmIG5vdAotcGVuZDoKLQkvKiB1cGRhdGUgbWVtb3J5IHRpbWluZ3MgJiBicmllZmx5IGxvY2sgZGxsICovCi0JbGRyCXI0LCBzZHJjX3JmcgkJQCBnZXQgYWRkcgotCXN0cglyMSwgW3I0XQkJQCB1cGRhdGUgcmVmcmVzaCB0aW1pbmcKLQlsZHIJcjExLCBkbGxhX2N0cmwJCUAgZ2V0IGFkZHIgb2YgRExMQSBjdHJsCi0JbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGN1cnJlbnQgdmFsCi0JbXZuCXI5LCAjMHg0CQlAIG1hc2sgdG8gZ2V0IGNsZWFyIGJpdDIKLQlhbmQJcjEwLCByMTAsIHI5CQlAIGNsZWFyIGJpdDIgZm9yIGxvY2sgbW9kZQotCW9ycglyMTAsIHIxMCwgIzB4OAkJQCBtYWtlIHN1cmUgRExMIG9uIChlczIgYml0IHBvcykKLQlzdHIJcjEwLCBbcjExXQkJQCBjb21taXQgdG8gRExMQV9DVFJMCi0JYWRkCXIxMSwgcjExLCAjMHg4CQlAIG1vdmUgdG8gZGxsYgotCXN0cglyMTAsIFtyMTFdCQlAIGhpdCBETExCIGFsc28KLQotCW1vdglyNCwgIzB4ODAwCQlAIHJlbG9jayB0aW1lIChtaW4gMHg0MDAgTDMgY2xvY2tzKQotd2FpdF9kbGxfbG9jazoKLQlzdWJzCXI0LCByNCwgIzB4MQotCWJuZQl3YWl0X2RsbF9sb2NrCi0Jbm9wCi0JbGRtZmQJc3AhLCB7cjAtcjEyLCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgotCi1zZXRfY29uZmlnOgotCS53b3JkIE9NQVAyNDIwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4ODApCi1wbGxfY3RsOgotCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fRkNMS0VOMSkKLXBsbF9zdGF0OgotCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUMSkKLXBsbF9kaXY6Ci0JLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwpCi1zZHJjX3JmcjoKLQkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19SRlJfQ1RSTF8wKQotZGxsYV9jdHJsOgotCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKLQotRU5UUlkoc3JhbV9zZXRfcHJjbV9zeikKLQkud29yZAkuIC0gc3JhbV9zZXRfcHJjbQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQyeC5TIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQyeC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMjc0NTEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0yNDJ4LlMKQEAgLTAsMCArMSwzMjEgQEAKKy8qCisgKiBsaW51eC9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0yNDJ4LlMKKyAqCisgKiBPbWFwMiBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIHJ1biBpbiBpbnRlcm5hbCBTUkFNCisgKgorICogKEMpIENvcHlyaWdodCAyMDA0CisgKiBUZXhhcyBJbnN0cnVtZW50cywgPHd3dy50aS5jb20+CisgKiBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIC9QVVJQT1NFLiBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisKKyNpbmNsdWRlICJwcm0uaCIKKyNpbmNsdWRlICJjbS5oIgorI2luY2x1ZGUgInNkcmMuaCIKKworCS50ZXh0CisKK0VOVFJZKG9tYXAyNDJ4X3NyYW1fZGRyX2luaXQpCisJc3RtZmQJc3AhLCB7cjAgLSByMTIsIGxyfQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNrCisKKwltb3YJcjEyLCByMgkJCUAgY2FwdHVyZSBDUzEgdnMgQ1MwCisJbW92CXI4LCByMwkJCUAgY2FwdHVyZSBmb3JjZSBwYXJhbWV0ZXIKKworCS8qIGZyZXF1ZW5jeSBzaGlmdCBkb3duICovCisJbGRyCXIyLCBvbWFwMjQyeF9zZGlfY21fY2xrc2VsMl9wbGwJQCBnZXQgYWRkcmVzcyBvZiBkcGxsb3V0IHJlZworCW1vdglyMywgIzB4MQkJQCB2YWx1ZSBmb3IgMXggb3BlcmF0aW9uCisJc3RyCXIzLCBbcjJdCQlAIGdvIHRvIEwxLWZyZXEgb3BlcmF0aW9uCisKKwkvKiB2b2x0YWdlIHNoaWZ0IGRvd24gKi8KKwltb3YgcjksICMweDEJCQlAIHNldCB1cCBmb3IgTDEgdm9sdGFnZSBjYWxsCisJYmwgdm9sdGFnZV9zaGlmdAkJQCBnbyBkcm9wIHZvbHRhZ2UKKworCS8qIGRsbCBsb2NrIG1vZGUgKi8KKwlsZHIJcjExLCBvbWFwMjQyeF9zZGlfc2RyY19kbGxhX2N0cmwJQCBhZGRyIG9mIGRsbGEgY3RybAorCWxkcglyMTAsIFtyMTFdCQlAIGdldCBjdXJyZW50IHZhbAorCWNtcAlyMTIsICMweDEJCUAgY3MxIGJhc2UgKDI0MjIgZXMyLjA1LzEpCisJYWRkZXEJcjExLCByMTEsICMweDgJCUAgaWYgY3MxIGJhc2UsIG1vdmUgdG8gRExMQgorCW12bglyOSwgIzB4NAkJQCBtYXNrIHRvIGdldCBjbGVhciBiaXQyCisJYW5kCXIxMCwgcjEwLCByOQkJQCBjbGVhciBiaXQyIGZvciBsb2NrIG1vZGUuCisJb3JyCXIxMCwgcjEwLCAjMHg4CQlAIG1ha2Ugc3VyZSBETEwgb24gKGVzMiBiaXQgcG9zKQorCW9ycglyMTAsIHIxMCwgIzB4MgkJQCA5MCBkZWdyZWUgcGhhc2UgZm9yIGFsbCBiZWxvdyAxMzNNaHoKKwlzdHIJcjEwLCBbcjExXQkJQCBjb21taXQgdG8gRExMQV9DVFJMCisJYmwJaV9kbGxfd2FpdAkJQCB3YWl0IGZvciBkbGwgdG8gbG9jaworCisJLyogZ2V0IGRsbCB2YWx1ZSAqLworCWFkZAlyMTEsIHIxMSwgIzB4NAkJQCBnZXQgYWRkciBvZiBzdGF0dXMgcmVnCisJbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGxvY2tlZCB2YWx1ZQorCisJLyogdm9sdGFnZSBzaGlmdCB1cCAqLworCW1vdiByOSwgIzB4MAkJCUAgc2hpZnQgYmFjayB0byBMMC12b2x0YWdlCisJYmwgdm9sdGFnZV9zaGlmdAkJQCBnbyByYWlzZSB2b2x0YWdlCisKKwkvKiBmcmVxdWVuY3kgc2hpZnQgdXAgKi8KKwltb3YJcjMsICMweDIJCUAgdmFsdWUgZm9yIDJ4IG9wZXJhdGlvbgorCXN0cglyMywgW3IyXQkJQCBnbyB0byBMMC1mcmVxIG9wZXJhdGlvbgorCisJLyogcmVzZXQgZW50cnkgbW9kZSBmb3IgZGxsY3RybCAqLworCXN1YglyMTEsIHIxMSwgIzB4NAkJQCBtb3ZlIGZyb20gc3RhdHVzIHRvIGN0cmwKKwljbXAJcjEyLCAjMHgxCQlAIG5vcm1hbGl6ZSBpZiBjczEgYmFzZWQKKwlzdWJlcQlyMTEsIHIxMSwgIzB4OAkJQCBwb3NzaWJseSBiYWNrIHRvIERMTEEKKwljbXAJcjgsICMweDEJCUAgaWYgZm9yY2VkIHVubG9jayBleGl0CisJb3JyZXEJcjEsIHIxLCAjMHg0CQlAIG1ha2Ugc3VyZSBleGl0IHdpdGggdW5sb2NrZWQgdmFsdWUKKwlzdHIJcjEsIFtyMTFdCQlAIHJlc3RvcmUgRExMQV9DVFJMIGhpZ2ggdmFsdWUKKwlhZGQJcjExLCByMTEsICMweDgJCUAgbW92ZSB0byBETExCX0NUUkwgYWRkcgorCXN0cglyMSwgW3IxMV0JCUAgc2V0IHZhbHVlIERMTEJfQ1RSTAorCWJsCWlfZGxsX3dhaXQJCUAgd2FpdCBmb3IgcG9zc2libGUgbG9jaworCisJLyogc2V0IHVwIGZvciByZXR1cm4sIEREUiBzaG91bGQgYmUgZ29vZCAqLworCXN0ciByMTAsIFtyMF0JCQlAIHdyaXRlIGRsbF9zdGF0dXMgYW5kIHJldHVybiBjb3VudGVyCisJbGRtZmQJc3AhLCB7cjAgLSByMTIsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCisKKwkvKiBlbnN1cmUgdGhlIERMTCBoYXMgcmVsb2NrZWQgKi8KK2lfZGxsX3dhaXQ6CisJbW92CXI0LCAjMHg4MDAJCUAgZGVsYXkgRExMIHJlbG9jaywgbWluIDB4NDAwIEwzIGNsb2NrcworaV9kbGxfZGVsYXk6CisJc3VicwlyNCwgcjQsICMweDEKKwlibmUJaV9kbGxfZGVsYXkKKwltb3YJcGMsIGxyCisKKwkvKgorCSAqIHNoaWZ0IHVwIG9yIGRvd24gdm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCisJICogd2FpdCBmb3IgaXQgdG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9MzF1Uy4KKwkgKi8KK3ZvbHRhZ2Vfc2hpZnQ6CisJbGRyCXI0LCBvbWFwMjQyeF9zZGlfcHJjbV92b2x0Y3RybAlAIGdldCBhZGRyIG9mIHZvbHQgY3RybC4KKwlsZHIJcjUsIFtyNF0JCUAgZ2V0IHZhbHVlLgorCWxkcglyNiwgcHJjbV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNrCisJYW5kCXI1LCByNSwgcjYJCUAgYXBwbHkgbWFzayB0byBjbGVhciBiaXRzCisJb3JyCXI1LCByNSwgcjkJCUAgYnVsbGQgdmFsdWUgZm9yIEwwL0wxLXZvbHQgb3BlcmF0aW9uLgorCXN0cglyNSwgW3I0XQkJQCBzZXQgdXAgZm9yIGNoYW5nZS4KKwltb3YJcjMsICMweDQwMDAJCUAgZ2V0IHZhbCBmb3IgZm9yY2UKKwlvcnIJcjUsIHI1LCByMwkJQCBidWlsZCB2YWx1ZSBmb3IgZm9yY2UKKwlzdHIJcjUsIFtyNF0JCUAgRm9yY2UgdHJhbnNpdGlvbiB0byBMMQorCisJbGRyCXIzLCBvbWFwMjQyeF9zZGlfdGltZXJfMzJrc3luY3RfY3IJQCBnZXQgYWRkciBvZiBjb3VudGVyCisJbGRyCXI1LCBbcjNdCQlAIGdldCB2YWx1ZQorCWFkZAlyNSwgcjUsICMweDMJCUAgZ2l2ZSBpdCBhdCBtb3N0IDkzdVMKK3ZvbHRfZGVsYXk6CisJbGRyCXI3LCBbcjNdCQlAIGdldCB0aW1lciB2YWx1ZQorCWNtcAlyNSwgcjcJCQlAIHRpbWUgdXA/CisJYmhpCXZvbHRfZGVsYXkJCUAgbm90IHlldC0+YnJhbmNoCisJbW92CXBjLCBscgkJCUAgYmFjayB0byBjYWxsZXIuCisKK29tYXAyNDJ4X3NkaV9jbV9jbGtzZWwyX3BsbDoKKwkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDIpCitvbWFwMjQyeF9zZGlfc2RyY19kbGxhX2N0cmw6CisJLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9DVFJMKQorb21hcDI0Mnhfc2RpX3ByY21fdm9sdGN0cmw6CisJLndvcmQgT01BUDI0MlhfUFJDTV9WT0xUQ1RSTAorcHJjbV9tYXNrX3ZhbDoKKwkud29yZCAweEZGRkYzRkZDCitvbWFwMjQyeF9zZGlfdGltZXJfMzJrc3luY3RfY3I6CisJLndvcmQgSU9fQUREUkVTUyhPTUFQMl8zMktTWU5DVF9CQVNFICsgMHgwMTApCitFTlRSWShvbWFwMjQyeF9zcmFtX2Rkcl9pbml0X3N6KQorCS53b3JkCS4gLSBvbWFwMjQyeF9zcmFtX2Rkcl9pbml0CisKKy8qCisgKiBSZXByb2dyYW1zIG1lbW9yeSB0aW1pbmdzLgorICogcjAgPSBbUFJDTV9GVUxMIHwgUFJDTV9IQUxGXSByMSA9IFNEUkNfRExMQV9DVFJMIHZhbHVlIHIyID0gW0REUiB8IFNEUl0KKyAqIFBSQ01fRlVMTCA9IDIsIFBSQ01fSEFMRiA9IDEsIEREUiA9IDEsIFNEUiA9IDAKKyAqLworRU5UUlkob21hcDI0Mnhfc3JhbV9yZXByb2dyYW1fc2RyYykKKwlzdG1mZAlzcCEsIHtyMCAtIHIxMCwgbHJ9CUAgc2F2ZSByZWdpc3RlcnMgb24gc3RhY2sKKwltb3YJcjMsICMweDAJCUAgY2xlYXIgZm9yIG1yYyBjYWxsCisJbWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1vcnkgYmFycmllciwgZmluaXNoIEFSTSBTRFIvRERSCisJbm9wCisJbm9wCisJbGRyCXI2LCBvbWFwMjQyeF9zcnNfc2RyY19yZnJfY3RybAlAIGdldCBhZGRyIG9mIHJlZnJlc2ggcmVnCisJbGRyCXI1LCBbcjZdCQlAIGdldCB2YWx1ZQorCW1vdglyNSwgcjUsIGxzciAjOAkJQCBpc29sYXRlIHJmciBmaWVsZCBhbmQgZHJvcCBidXJzdAorCisJY21wCXIwLCAjMHgxCQlAIGdvaW5nIHRvIGhhbGYgc3BlZWQ/CisJbW92bmUJcjksICMweDAJCUAgaWYgdXAgc2V0IGZsYWcgdXAgZm9yIHByZSB1cCwgaGkgdm9sdAorCisJYmxuZQl2b2x0YWdlX3NoaWZ0X2MJCUAgYWRqdXN0IHZvbHRhZ2UKKworCWNtcAlyMCwgIzB4MQkJQCBnb2luZyB0byBoYWxmIHNwZWVkIChwb3N0IGJyYW5jaCBsaW5rKQorCW1vdmVxCXI1LCByNSwgbHNyICMxCQlAIGRpdmlkZSBieSAyIGlmIHRvIGhhbGYKKwltb3ZuZQlyNSwgcjUsIGxzbCAjMQkJQCBtdWx0IGJ5IDIgaWYgdG8gZnVsbAorCW1vdglyNSwgcjUsIGxzbCAjOAkJQCBwdXQgcmZyIGZpZWxkIGJhY2sgaW50byBwbGFjZQorCWFkZAlyNSwgcjUsICMweDEJCUAgdHVybiBvbiBidXJzdCBvZiAxCisJbGRyCXI0LCBvbWFwMjQyeF9zcnNfY21fY2xrc2VsMl9wbGwJQCBnZXQgYWRkcmVzcyBvZiBvdXQgcmVnCisJbGRyCXIzLCBbcjRdCQlAIGdldCBjdXJyIHZhbHVlCisJb3JyCXIzLCByMywgIzB4MworCWJpYwlyMywgcjMsICMweDMJCUAgY2xlYXIgbG93ZXIgYml0cworCW9ycglyMywgcjMsIHIwCQlAIG5ldyBzdGF0ZSB2YWx1ZQorCXN0cglyMywgW3I0XQkJQCBzZXQgbmV3IHN0YXRlIChwbGwveCwgeD0xIG9yIDIpCisJbm9wCisJbm9wCisKKwltb3ZlcQlyOSwgIzB4MQkJQCBpZiBzcGVlZCBkb3duLCBwb3N0IGRvd24sIGRyb3Agdm9sdAorCWJsZXEJdm9sdGFnZV9zaGlmdF9jCisKKwltY3IJcDE1LCAwLCByMywgYzcsIGMxMCwgNAlAIG1lbW9yeSBiYXJyaWVyCisJc3RyCXI1LCBbcjZdCQlAIHNldCBuZXcgUkZSXzEgdmFsdWUKKwlhZGQJcjYsIHI2LCAjMHgzMAkJQCBnZXQgUkZSXzIgYWRkcgorCXN0cglyNSwgW3I2XQkJQCBzZXQgUkZSXzIKKwlub3AKKwljbXAJcjIsICMweDEJCUAgKFNEUiBvciBERFIpIGRvIHdlIG5lZWQgdG8gYWRqdXN0IERMTAorCWJuZQlmcmVxX291dAkJQCBsZWF2ZSBpZiBTRFIsIG5vIERMTCBmdW5jdGlvbgorCisJLyogV2l0aCBERFIsIHdlIG5lZWQgdG8gdGFrZSBjYXJlIG9mIHRoZSBETEwgZm9yIHRoZSBmcmVxdWVuY3kgY2hhbmdlICovCisJbGRyCXIyLCBvbWFwMjQyeF9zcnNfc2RyY19kbGxhX2N0cmwJQCBhZGRyIG9mIGRsbGEgY3RybAorCXN0cglyMSwgW3IyXQkJQCB3cml0ZSBvdXQgbmV3IFNEUkNfRExMQV9DVFJMCisJYWRkCXIyLCByMiwgIzB4OAkJQCBhZGRyIHRvIFNEUkNfRExMQl9DVFJMCisJc3RyCXIxLCBbcjJdCQlAIGNvbW1pdCB0byBTRFJDX0RMTEJfQ1RSTAorCW1vdglyMSwgIzB4MjAwMAkJQCB3YWl0IERMTCByZWxvY2ssIG1pbiAweDQwMCBMMyBjbG9ja3MKK2RsbF93YWl0OgorCXN1YnMJcjEsIHIxLCAjMHgxCisJYm5lCWRsbF93YWl0CitmcmVxX291dDoKKwlsZG1mZAlzcCEsIHtyMCAtIHIxMCwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KKworICAgIC8qCisgICAgICogc2hpZnQgdXAgb3IgZG93biB2b2x0YWdlLCB1c2UgUjkgYXMgaW5wdXQgdG8gdGVsbCBsZXZlbC4KKyAgICAgKgl3YWl0IGZvciBpdCB0byBmaW5pc2gsIHVzZSAzMmsgc3luYyBjb3VudGVyLCAxdGljaz0zMXVTLgorICAgICAqLwordm9sdGFnZV9zaGlmdF9jOgorCWxkcglyMTAsIG9tYXAyNDJ4X3Nyc19wcmNtX3ZvbHRjdHJsCUAgZ2V0IGFkZHIgb2Ygdm9sdCBjdHJsCisJbGRyCXI4LCBbcjEwXQkJQCBnZXQgdmFsdWUKKwlsZHIJcjcsIGRkcl9wcmNtX21hc2tfdmFsCUAgZ2V0IHZhbHVlIG9mIG1hc2sKKwlhbmQJcjgsIHI4LCByNwkJQCBhcHBseSBtYXNrIHRvIGNsZWFyIGJpdHMKKwlvcnIJcjgsIHI4LCByOQkJQCBidWxsZCB2YWx1ZSBmb3IgTDAvTDEtdm9sdCBvcGVyYXRpb24uCisJc3RyCXI4LCBbcjEwXQkJQCBzZXQgdXAgZm9yIGNoYW5nZS4KKwltb3YJcjcsICMweDQwMDAJCUAgZ2V0IHZhbCBmb3IgZm9yY2UKKwlvcnIJcjgsIHI4LCByNwkJQCBidWlsZCB2YWx1ZSBmb3IgZm9yY2UKKwlzdHIJcjgsIFtyMTBdCQlAIEZvcmNlIHRyYW5zaXRpb24gdG8gTDEKKworCWxkcglyMTAsIG9tYXAyNDJ4X3Nyc190aW1lcl8zMmtzeW5jdAlAIGdldCBhZGRyIG9mIGNvdW50ZXIKKwlsZHIJcjgsIFtyMTBdCQlAIGdldCB2YWx1ZQorCWFkZAlyOCwgcjgsICMweDIJCUAgZ2l2ZSBpdCBhdCBtb3N0IDYydVMgKG1pbiAzMSspCit2b2x0X2RlbGF5X2M6CisJbGRyCXI3LCBbcjEwXQkJQCBnZXQgdGltZXIgdmFsdWUKKwljbXAJcjgsIHI3CQkJQCB0aW1lIHVwPworCWJoaQl2b2x0X2RlbGF5X2MJCUAgbm90IHlldC0+YnJhbmNoCisJbW92CXBjLCBscgkJCUAgYmFjayB0byBjYWxsZXIKKworb21hcDI0Mnhfc3JzX2NtX2Nsa3NlbDJfcGxsOgorCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMikKK29tYXAyNDJ4X3Nyc19zZHJjX2RsbGFfY3RybDoKKwkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCitvbWFwMjQyeF9zcnNfc2RyY19yZnJfY3RybDoKKwkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19SRlJfQ1RSTF8wKQorb21hcDI0Mnhfc3JzX3ByY21fdm9sdGN0cmw6CisJLndvcmQgT01BUDI0MlhfUFJDTV9WT0xUQ1RSTAorZGRyX3ByY21fbWFza192YWw6CisJLndvcmQgMHhGRkZGM0ZGQworb21hcDI0Mnhfc3JzX3RpbWVyXzMya3N5bmN0OgorCS53b3JkIElPX0FERFJFU1MoT01BUDJfMzJLU1lOQ1RfQkFTRSArIDB4MDEwKQorCitFTlRSWShvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KQorCS53b3JkCS4gLSBvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjCisKKy8qCisgKiBTZXQgZGl2aWRlcnMgYW5kIHBsbC4gQWxzbyByZWNhbGN1bGF0ZSBETEwgdmFsdWUgZm9yIEREUiBhbmQgdW5sb2NrIG1vZGUuCisgKi8KK0VOVFJZKG9tYXAyNDJ4X3NyYW1fc2V0X3ByY20pCisJc3RtZmQJc3AhLCB7cjAtcjEyLCBscn0JQCByZWdzIHRvIHN0YWNrCisJYWRyCXI0LCBwYmVnaW4JCUAgYWRkciBvZiBwcmVsb2FkIHN0YXJ0CisJYWRyCXI4LCBwZW5kCQlAIGFkZHIgb2YgcHJlbG9hZCBlbmQKKwltY3JyCXAxNSwgMSwgcjgsIHI0LCBjMTIJQCBwcmVsb2FkIGludG8gaWNhY2hlCitwYmVnaW46CisJLyogbW92ZSBpbnRvIGZhc3QgcmVsb2NrIGJ5cGFzcyAqLworCWxkcglyOCwgb21hcDI0Mnhfc3NwX3BsbF9jdGwJQCBnZXQgYWRkcgorCWxkcglyNSwgW3I4XQkJQCBnZXQgdmFsCisJbXZuCXI2LCAjMHgzCQlAIGNsZWFyIG1hc2sKKwlhbmQJcjUsIHI1LCByNgkJQCBjbGVhciBmaWVsZAorCW9ycglyNywgcjUsICMweDIJCUAgZmFzdCByZWxvY2sgdmFsCisJc3RyCXI3LCBbcjhdCQlAIGdvIHRvIGZhc3QgcmVsb2NrCisJbGRyCXI0LCBvbWFwMjQyeF9zc3BfcGxsX3N0YXQJQCBhZGRyIG9mIHN0YXQKK2Jsb2NrOgorCS8qIHdhaXQgZm9yIGJ5cGFzcyAqLworCWxkcglyOCwgW3I0XQkJQCBzdGF0IHZhbHVlCisJYW5kCXI4LCByOCwgIzB4MwkJQCBtYXNrIGZvciBzdGF0CisJY21wCXI4LCAjMHgxCQlAIHRoZXJlIHlldAorCWJuZQlibG9jawkJCUAgbG9vcCBpZiBub3QKKworCS8qIHNldCBuZXcgZHBsbCBkaXZpZGVycyBfYWZ0ZXJfIGluIGJ5cGFzcyAqLworCWxkcglyNCwgb21hcDI0Mnhfc3NwX3BsbF9kaXYJQCBnZXQgYWRkcgorCXN0cglyMCwgW3I0XQkJQCBzZXQgZHBsbCBjdHJsIHZhbAorCisJbGRyCXI0LCBvbWFwMjQyeF9zc3Bfc2V0X2NvbmZpZwlAIGdldCBhZGRyCisJbW92CXI4LCAjMQkJCUAgdmFsaWQgY2ZnIG1zaworCXN0cglyOCwgW3I0XQkJQCBtYWtlIGRpdmlkZXJzIHRha2UKKworCW1vdglyNCwgIzEwMAkJQCBkZWFkIHNwaW4gYSBiaXQKK3dhaXRfYV9iaXQ6CisJc3VicwlyNCwgcjQsICMxCQlAIGRlYyBsb29wCisJYm5lCXdhaXRfYV9iaXQJCUAgZGVsYXkgZG9uZT8KKworCS8qIGNoZWNrIGlmIHN0YXlpbmcgaW4gYnlwYXNzICovCisJY21wCXIyLCAjMHgxCQlAIHN0YXkgaW4gYnlwYXNzPworCWJlcQlwZW5kCQkJQCBqdW1wIG92ZXIgZHBsbCByZWxvY2sKKworCS8qIHJlbG9jayBEUExMIHdpdGggbmV3IHZhbHMgKi8KKwlsZHIJcjUsIG9tYXAyNDJ4X3NzcF9wbGxfc3RhdAlAIGdldCBhZGRyCisJbGRyCXI0LCBvbWFwMjQyeF9zc3BfcGxsX2N0bAlAIGdldCBhZGRyCisJb3JyCXI4LCByNywgIzB4MwkJQCB2YWwgZm9yIGxvY2sgZHBsbAorCXN0cglyOCwgW3I0XQkJQCBzZXQgdmFsCisJbW92CXIwLCAjMTAwMAkJQCBkZWFkIHNwaW4gYSBiaXQKK3dhaXRfbW9yZToKKwlzdWJzCXIwLCByMCwgIzEJCUAgZGVjIGxvb3AKKwlibmUJd2FpdF9tb3JlCQlAIGRlbGF5IGRvbmU/Cit3YWl0X2xvY2s6CisJbGRyCXI4LCBbcjVdCQlAIGdldCBsb2NrIHZhbAorCWFuZAlyOCwgcjgsICMzCQlAIGlzb2xhdGUgZmllbGQKKwljbXAJcjgsICMyCQkJQCBsb2NrZWQ/CisJYm5lCXdhaXRfbG9jawkJQCB3YWl0IGlmIG5vdAorcGVuZDoKKwkvKiB1cGRhdGUgbWVtb3J5IHRpbWluZ3MgJiBicmllZmx5IGxvY2sgZGxsICovCisJbGRyCXI0LCBvbWFwMjQyeF9zc3Bfc2RyY19yZnIJQCBnZXQgYWRkcgorCXN0cglyMSwgW3I0XQkJQCB1cGRhdGUgcmVmcmVzaCB0aW1pbmcKKwlsZHIJcjExLCBvbWFwMjQyeF9zc3BfZGxsYV9jdHJsCUAgZ2V0IGFkZHIgb2YgRExMQSBjdHJsCisJbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGN1cnJlbnQgdmFsCisJbXZuCXI5LCAjMHg0CQlAIG1hc2sgdG8gZ2V0IGNsZWFyIGJpdDIKKwlhbmQJcjEwLCByMTAsIHI5CQlAIGNsZWFyIGJpdDIgZm9yIGxvY2sgbW9kZQorCW9ycglyMTAsIHIxMCwgIzB4OAkJQCBtYWtlIHN1cmUgRExMIG9uIChlczIgYml0IHBvcykKKwlzdHIJcjEwLCBbcjExXQkJQCBjb21taXQgdG8gRExMQV9DVFJMCisJYWRkCXIxMSwgcjExLCAjMHg4CQlAIG1vdmUgdG8gZGxsYgorCXN0cglyMTAsIFtyMTFdCQlAIGhpdCBETExCIGFsc28KKworCW1vdglyNCwgIzB4ODAwCQlAIHJlbG9jayB0aW1lIChtaW4gMHg0MDAgTDMgY2xvY2tzKQord2FpdF9kbGxfbG9jazoKKwlzdWJzCXI0LCByNCwgIzB4MQorCWJuZQl3YWl0X2RsbF9sb2NrCisJbm9wCisJbGRtZmQJc3AhLCB7cjAtcjEyLCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgorCitvbWFwMjQyeF9zc3Bfc2V0X2NvbmZpZzoKKwkud29yZCBPTUFQMjQyWF9QUkNNX0NMS0NGR19DVFJMCitvbWFwMjQyeF9zc3BfcGxsX2N0bDoKKwkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS0VOKQorb21hcDI0Mnhfc3NwX3BsbF9zdGF0OgorCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKQorb21hcDI0Mnhfc3NwX3BsbF9kaXY6CisJLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwxKQorb21hcDI0Mnhfc3NwX3NkcmNfcmZyOgorCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX1JGUl9DVFJMXzApCitvbWFwMjQyeF9zc3BfZGxsYV9jdHJsOgorCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKKworRU5UUlkob21hcDI0Mnhfc3JhbV9zZXRfcHJjbV9zeikKKwkud29yZAkuIC0gb21hcDI0Mnhfc3JhbV9zZXRfcHJjbQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQzeC5TIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQzeC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzZmE0OGRjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQzeC5TCkBAIC0wLDAgKzEsMzIxIEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQzeC5TCisgKgorICogT21hcDIgc3BlY2lmaWMgZnVuY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBydW4gaW4gaW50ZXJuYWwgU1JBTQorICoKKyAqIChDKSBDb3B5cmlnaHQgMjAwNAorICogVGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cudGkuY29tPgorICogUmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiAvUFVSUE9TRS4gU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgorI2luY2x1ZGUgPGFzbS9hc3NlbWJsZXIuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pby5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSAicHJtLmgiCisjaW5jbHVkZSAiY20uaCIKKyNpbmNsdWRlICJzZHJjLmgiCisKKwkudGV4dAorCitFTlRSWShvbWFwMjQzeF9zcmFtX2Rkcl9pbml0KQorCXN0bWZkCXNwISwge3IwIC0gcjEyLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjaworCisJbW92CXIxMiwgcjIJCQlAIGNhcHR1cmUgQ1MxIHZzIENTMAorCW1vdglyOCwgcjMJCQlAIGNhcHR1cmUgZm9yY2UgcGFyYW1ldGVyCisKKwkvKiBmcmVxdWVuY3kgc2hpZnQgZG93biAqLworCWxkcglyMiwgb21hcDI0M3hfc2RpX2NtX2Nsa3NlbDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2YgZHBsbG91dCByZWcKKwltb3YJcjMsICMweDEJCUAgdmFsdWUgZm9yIDF4IG9wZXJhdGlvbgorCXN0cglyMywgW3IyXQkJQCBnbyB0byBMMS1mcmVxIG9wZXJhdGlvbgorCisJLyogdm9sdGFnZSBzaGlmdCBkb3duICovCisJbW92IHI5LCAjMHgxCQkJQCBzZXQgdXAgZm9yIEwxIHZvbHRhZ2UgY2FsbAorCWJsIHZvbHRhZ2Vfc2hpZnQJCUAgZ28gZHJvcCB2b2x0YWdlCisKKwkvKiBkbGwgbG9jayBtb2RlICovCisJbGRyCXIxMSwgb21hcDI0M3hfc2RpX3NkcmNfZGxsYV9jdHJsCUAgYWRkciBvZiBkbGxhIGN0cmwKKwlsZHIJcjEwLCBbcjExXQkJQCBnZXQgY3VycmVudCB2YWwKKwljbXAJcjEyLCAjMHgxCQlAIGNzMSBiYXNlICgyNDIyIGVzMi4wNS8xKQorCWFkZGVxCXIxMSwgcjExLCAjMHg4CQlAIGlmIGNzMSBiYXNlLCBtb3ZlIHRvIERMTEIKKwltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xlYXIgYml0MgorCWFuZAlyMTAsIHIxMCwgcjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlLgorCW9ycglyMTAsIHIxMCwgIzB4OAkJQCBtYWtlIHN1cmUgRExMIG9uIChlczIgYml0IHBvcykKKwlvcnIJcjEwLCByMTAsICMweDIJCUAgOTAgZGVncmVlIHBoYXNlIGZvciBhbGwgYmVsb3cgMTMzTWh6CisJc3RyCXIxMCwgW3IxMV0JCUAgY29tbWl0IHRvIERMTEFfQ1RSTAorCWJsCWlfZGxsX3dhaXQJCUAgd2FpdCBmb3IgZGxsIHRvIGxvY2sKKworCS8qIGdldCBkbGwgdmFsdWUgKi8KKwlhZGQJcjExLCByMTEsICMweDQJCUAgZ2V0IGFkZHIgb2Ygc3RhdHVzIHJlZworCWxkcglyMTAsIFtyMTFdCQlAIGdldCBsb2NrZWQgdmFsdWUKKworCS8qIHZvbHRhZ2Ugc2hpZnQgdXAgKi8KKwltb3YgcjksICMweDAJCQlAIHNoaWZ0IGJhY2sgdG8gTDAtdm9sdGFnZQorCWJsIHZvbHRhZ2Vfc2hpZnQJCUAgZ28gcmFpc2Ugdm9sdGFnZQorCisJLyogZnJlcXVlbmN5IHNoaWZ0IHVwICovCisJbW92CXIzLCAjMHgyCQlAIHZhbHVlIGZvciAyeCBvcGVyYXRpb24KKwlzdHIJcjMsIFtyMl0JCUAgZ28gdG8gTDAtZnJlcSBvcGVyYXRpb24KKworCS8qIHJlc2V0IGVudHJ5IG1vZGUgZm9yIGRsbGN0cmwgKi8KKwlzdWIJcjExLCByMTEsICMweDQJCUAgbW92ZSBmcm9tIHN0YXR1cyB0byBjdHJsCisJY21wCXIxMiwgIzB4MQkJQCBub3JtYWxpemUgaWYgY3MxIGJhc2VkCisJc3ViZXEJcjExLCByMTEsICMweDgJCUAgcG9zc2libHkgYmFjayB0byBETExBCisJY21wCXI4LCAjMHgxCQlAIGlmIGZvcmNlZCB1bmxvY2sgZXhpdAorCW9ycmVxCXIxLCByMSwgIzB4NAkJQCBtYWtlIHN1cmUgZXhpdCB3aXRoIHVubG9ja2VkIHZhbHVlCisJc3RyCXIxLCBbcjExXQkJQCByZXN0b3JlIERMTEFfQ1RSTCBoaWdoIHZhbHVlCisJYWRkCXIxMSwgcjExLCAjMHg4CQlAIG1vdmUgdG8gRExMQl9DVFJMIGFkZHIKKwlzdHIJcjEsIFtyMTFdCQlAIHNldCB2YWx1ZSBETExCX0NUUkwKKwlibAlpX2RsbF93YWl0CQlAIHdhaXQgZm9yIHBvc3NpYmxlIGxvY2sKKworCS8qIHNldCB1cCBmb3IgcmV0dXJuLCBERFIgc2hvdWxkIGJlIGdvb2QgKi8KKwlzdHIgcjEwLCBbcjBdCQkJQCB3cml0ZSBkbGxfc3RhdHVzIGFuZCByZXR1cm4gY291bnRlcgorCWxkbWZkCXNwISwge3IwIC0gcjEyLCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgorCisJLyogZW5zdXJlIHRoZSBETEwgaGFzIHJlbG9ja2VkICovCitpX2RsbF93YWl0OgorCW1vdglyNCwgIzB4ODAwCQlAIGRlbGF5IERMTCByZWxvY2ssIG1pbiAweDQwMCBMMyBjbG9ja3MKK2lfZGxsX2RlbGF5OgorCXN1YnMJcjQsIHI0LCAjMHgxCisJYm5lCWlfZGxsX2RlbGF5CisJbW92CXBjLCBscgorCisJLyoKKwkgKiBzaGlmdCB1cCBvciBkb3duIHZvbHRhZ2UsIHVzZSBSOSBhcyBpbnB1dCB0byB0ZWxsIGxldmVsLgorCSAqIHdhaXQgZm9yIGl0IHRvIGZpbmlzaCwgdXNlIDMyayBzeW5jIGNvdW50ZXIsIDF0aWNrPTMxdVMuCisJICovCit2b2x0YWdlX3NoaWZ0OgorCWxkcglyNCwgb21hcDI0M3hfc2RpX3ByY21fdm9sdGN0cmwJQCBnZXQgYWRkciBvZiB2b2x0IGN0cmwuCisJbGRyCXI1LCBbcjRdCQlAIGdldCB2YWx1ZS4KKwlsZHIJcjYsIHByY21fbWFza192YWwJQCBnZXQgdmFsdWUgb2YgbWFzaworCWFuZAlyNSwgcjUsIHI2CQlAIGFwcGx5IG1hc2sgdG8gY2xlYXIgYml0cworCW9ycglyNSwgcjUsIHI5CQlAIGJ1bGxkIHZhbHVlIGZvciBMMC9MMS12b2x0IG9wZXJhdGlvbi4KKwlzdHIJcjUsIFtyNF0JCUAgc2V0IHVwIGZvciBjaGFuZ2UuCisJbW92CXIzLCAjMHg0MDAwCQlAIGdldCB2YWwgZm9yIGZvcmNlCisJb3JyCXI1LCByNSwgcjMJCUAgYnVpbGQgdmFsdWUgZm9yIGZvcmNlCisJc3RyCXI1LCBbcjRdCQlAIEZvcmNlIHRyYW5zaXRpb24gdG8gTDEKKworCWxkcglyMywgb21hcDI0M3hfc2RpX3RpbWVyXzMya3N5bmN0X2NyCUAgZ2V0IGFkZHIgb2YgY291bnRlcgorCWxkcglyNSwgW3IzXQkJQCBnZXQgdmFsdWUKKwlhZGQJcjUsIHI1LCAjMHgzCQlAIGdpdmUgaXQgYXQgbW9zdCA5M3VTCit2b2x0X2RlbGF5OgorCWxkcglyNywgW3IzXQkJQCBnZXQgdGltZXIgdmFsdWUKKwljbXAJcjUsIHI3CQkJQCB0aW1lIHVwPworCWJoaQl2b2x0X2RlbGF5CQlAIG5vdCB5ZXQtPmJyYW5jaAorCW1vdglwYywgbHIJCQlAIGJhY2sgdG8gY2FsbGVyLgorCitvbWFwMjQzeF9zZGlfY21fY2xrc2VsMl9wbGw6CisJLndvcmQgT01BUDI0MzBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwyKQorb21hcDI0M3hfc2RpX3NkcmNfZGxsYV9jdHJsOgorCS53b3JkIE9NQVAyNDNYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKK29tYXAyNDN4X3NkaV9wcmNtX3ZvbHRjdHJsOgorCS53b3JkIE9NQVAyNDNYX1BSQ01fVk9MVENUUkwKK3ByY21fbWFza192YWw6CisJLndvcmQgMHhGRkZGM0ZGQworb21hcDI0M3hfc2RpX3RpbWVyXzMya3N5bmN0X2NyOgorCS53b3JkIElPX0FERFJFU1MoT01BUDJfMzJLU1lOQ1RfQkFTRSArIDB4MDEwKQorRU5UUlkob21hcDI0M3hfc3JhbV9kZHJfaW5pdF9zeikKKwkud29yZAkuIC0gb21hcDI0M3hfc3JhbV9kZHJfaW5pdAorCisvKgorICogUmVwcm9ncmFtcyBtZW1vcnkgdGltaW5ncy4KKyAqIHIwID0gW1BSQ01fRlVMTCB8IFBSQ01fSEFMRl0gcjEgPSBTRFJDX0RMTEFfQ1RSTCB2YWx1ZSByMiA9IFtERFIgfCBTRFJdCisgKiBQUkNNX0ZVTEwgPSAyLCBQUkNNX0hBTEYgPSAxLCBERFIgPSAxLCBTRFIgPSAwCisgKi8KK0VOVFJZKG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmMpCisJc3RtZmQJc3AhLCB7cjAgLSByMTAsIGxyfQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNrCisJbW92CXIzLCAjMHgwCQlAIGNsZWFyIGZvciBtcmMgY2FsbAorCW1jcglwMTUsIDAsIHIzLCBjNywgYzEwLCA0CUAgbWVtb3J5IGJhcnJpZXIsIGZpbmlzaCBBUk0gU0RSL0REUgorCW5vcAorCW5vcAorCWxkcglyNiwgb21hcDI0M3hfc3JzX3NkcmNfcmZyX2N0cmwJQCBnZXQgYWRkciBvZiByZWZyZXNoIHJlZworCWxkcglyNSwgW3I2XQkJQCBnZXQgdmFsdWUKKwltb3YJcjUsIHI1LCBsc3IgIzgJCUAgaXNvbGF0ZSByZnIgZmllbGQgYW5kIGRyb3AgYnVyc3QKKworCWNtcAlyMCwgIzB4MQkJQCBnb2luZyB0byBoYWxmIHNwZWVkPworCW1vdm5lCXI5LCAjMHgwCQlAIGlmIHVwIHNldCBmbGFnIHVwIGZvciBwcmUgdXAsIGhpIHZvbHQKKworCWJsbmUJdm9sdGFnZV9zaGlmdF9jCQlAIGFkanVzdCB2b2x0YWdlCisKKwljbXAJcjAsICMweDEJCUAgZ29pbmcgdG8gaGFsZiBzcGVlZCAocG9zdCBicmFuY2ggbGluaykKKwltb3ZlcQlyNSwgcjUsIGxzciAjMQkJQCBkaXZpZGUgYnkgMiBpZiB0byBoYWxmCisJbW92bmUJcjUsIHI1LCBsc2wgIzEJCUAgbXVsdCBieSAyIGlmIHRvIGZ1bGwKKwltb3YJcjUsIHI1LCBsc2wgIzgJCUAgcHV0IHJmciBmaWVsZCBiYWNrIGludG8gcGxhY2UKKwlhZGQJcjUsIHI1LCAjMHgxCQlAIHR1cm4gb24gYnVyc3Qgb2YgMQorCWxkcglyNCwgb21hcDI0M3hfc3JzX2NtX2Nsa3NlbDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2Ygb3V0IHJlZworCWxkcglyMywgW3I0XQkJQCBnZXQgY3VyciB2YWx1ZQorCW9ycglyMywgcjMsICMweDMKKwliaWMJcjMsIHIzLCAjMHgzCQlAIGNsZWFyIGxvd2VyIGJpdHMKKwlvcnIJcjMsIHIzLCByMAkJQCBuZXcgc3RhdGUgdmFsdWUKKwlzdHIJcjMsIFtyNF0JCUAgc2V0IG5ldyBzdGF0ZSAocGxsL3gsIHg9MSBvciAyKQorCW5vcAorCW5vcAorCisJbW92ZXEJcjksICMweDEJCUAgaWYgc3BlZWQgZG93biwgcG9zdCBkb3duLCBkcm9wIHZvbHQKKwlibGVxCXZvbHRhZ2Vfc2hpZnRfYworCisJbWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1vcnkgYmFycmllcgorCXN0cglyNSwgW3I2XQkJQCBzZXQgbmV3IFJGUl8xIHZhbHVlCisJYWRkCXI2LCByNiwgIzB4MzAJCUAgZ2V0IFJGUl8yIGFkZHIKKwlzdHIJcjUsIFtyNl0JCUAgc2V0IFJGUl8yCisJbm9wCisJY21wCXIyLCAjMHgxCQlAIChTRFIgb3IgRERSKSBkbyB3ZSBuZWVkIHRvIGFkanVzdCBETEwKKwlibmUJZnJlcV9vdXQJCUAgbGVhdmUgaWYgU0RSLCBubyBETEwgZnVuY3Rpb24KKworCS8qIFdpdGggRERSLCB3ZSBuZWVkIHRvIHRha2UgY2FyZSBvZiB0aGUgRExMIGZvciB0aGUgZnJlcXVlbmN5IGNoYW5nZSAqLworCWxkcglyMiwgb21hcDI0M3hfc3JzX3NkcmNfZGxsYV9jdHJsCUAgYWRkciBvZiBkbGxhIGN0cmwKKwlzdHIJcjEsIFtyMl0JCUAgd3JpdGUgb3V0IG5ldyBTRFJDX0RMTEFfQ1RSTAorCWFkZAlyMiwgcjIsICMweDgJCUAgYWRkciB0byBTRFJDX0RMTEJfQ1RSTAorCXN0cglyMSwgW3IyXQkJQCBjb21taXQgdG8gU0RSQ19ETExCX0NUUkwKKwltb3YJcjEsICMweDIwMDAJCUAgd2FpdCBETEwgcmVsb2NrLCBtaW4gMHg0MDAgTDMgY2xvY2tzCitkbGxfd2FpdDoKKwlzdWJzCXIxLCByMSwgIzB4MQorCWJuZQlkbGxfd2FpdAorZnJlcV9vdXQ6CisJbGRtZmQJc3AhLCB7cjAgLSByMTAsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCisKKyAgICAvKgorICAgICAqIHNoaWZ0IHVwIG9yIGRvd24gdm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCisgICAgICoJd2FpdCBmb3IgaXQgdG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9MzF1Uy4KKyAgICAgKi8KK3ZvbHRhZ2Vfc2hpZnRfYzoKKwlsZHIJcjEwLCBvbWFwMjQzeF9zcnNfcHJjbV92b2x0Y3RybAlAIGdldCBhZGRyIG9mIHZvbHQgY3RybAorCWxkcglyOCwgW3IxMF0JCUAgZ2V0IHZhbHVlCisJbGRyCXI3LCBkZHJfcHJjbV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNrCisJYW5kCXI4LCByOCwgcjcJCUAgYXBwbHkgbWFzayB0byBjbGVhciBiaXRzCisJb3JyCXI4LCByOCwgcjkJCUAgYnVsbGQgdmFsdWUgZm9yIEwwL0wxLXZvbHQgb3BlcmF0aW9uLgorCXN0cglyOCwgW3IxMF0JCUAgc2V0IHVwIGZvciBjaGFuZ2UuCisJbW92CXI3LCAjMHg0MDAwCQlAIGdldCB2YWwgZm9yIGZvcmNlCisJb3JyCXI4LCByOCwgcjcJCUAgYnVpbGQgdmFsdWUgZm9yIGZvcmNlCisJc3RyCXI4LCBbcjEwXQkJQCBGb3JjZSB0cmFuc2l0aW9uIHRvIEwxCisKKwlsZHIJcjEwLCBvbWFwMjQzeF9zcnNfdGltZXJfMzJrc3luY3QJQCBnZXQgYWRkciBvZiBjb3VudGVyCisJbGRyCXI4LCBbcjEwXQkJQCBnZXQgdmFsdWUKKwlhZGQJcjgsIHI4LCAjMHgyCQlAIGdpdmUgaXQgYXQgbW9zdCA2MnVTIChtaW4gMzErKQordm9sdF9kZWxheV9jOgorCWxkcglyNywgW3IxMF0JCUAgZ2V0IHRpbWVyIHZhbHVlCisJY21wCXI4LCByNwkJCUAgdGltZSB1cD8KKwliaGkJdm9sdF9kZWxheV9jCQlAIG5vdCB5ZXQtPmJyYW5jaAorCW1vdglwYywgbHIJCQlAIGJhY2sgdG8gY2FsbGVyCisKK29tYXAyNDN4X3Nyc19jbV9jbGtzZWwyX3BsbDoKKwkud29yZCBPTUFQMjQzMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDIpCitvbWFwMjQzeF9zcnNfc2RyY19kbGxhX2N0cmw6CisJLndvcmQgT01BUDI0M1hfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9DVFJMKQorb21hcDI0M3hfc3JzX3NkcmNfcmZyX2N0cmw6CisJLndvcmQgT01BUDI0M1hfU0RSQ19SRUdBRERSKFNEUkNfUkZSX0NUUkxfMCkKK29tYXAyNDN4X3Nyc19wcmNtX3ZvbHRjdHJsOgorCS53b3JkIE9NQVAyNDNYX1BSQ01fVk9MVENUUkwKK2Rkcl9wcmNtX21hc2tfdmFsOgorCS53b3JkIDB4RkZGRjNGRkMKK29tYXAyNDN4X3Nyc190aW1lcl8zMmtzeW5jdDoKKwkud29yZCBJT19BRERSRVNTKE9NQVAyXzMyS1NZTkNUX0JBU0UgKyAweDAxMCkKKworRU5UUlkob21hcDI0M3hfc3JhbV9yZXByb2dyYW1fc2RyY19zeikKKwkud29yZAkuIC0gb21hcDI0M3hfc3JhbV9yZXByb2dyYW1fc2RyYworCisvKgorICogU2V0IGRpdmlkZXJzIGFuZCBwbGwuIEFsc28gcmVjYWxjdWxhdGUgRExMIHZhbHVlIGZvciBERFIgYW5kIHVubG9jayBtb2RlLgorICovCitFTlRSWShvbWFwMjQzeF9zcmFtX3NldF9wcmNtKQorCXN0bWZkCXNwISwge3IwLXIxMiwgbHJ9CUAgcmVncyB0byBzdGFjaworCWFkcglyNCwgcGJlZ2luCQlAIGFkZHIgb2YgcHJlbG9hZCBzdGFydAorCWFkcglyOCwgcGVuZAkJQCBhZGRyIG9mIHByZWxvYWQgZW5kCisJbWNycglwMTUsIDEsIHI4LCByNCwgYzEyCUAgcHJlbG9hZCBpbnRvIGljYWNoZQorcGJlZ2luOgorCS8qIG1vdmUgaW50byBmYXN0IHJlbG9jayBieXBhc3MgKi8KKwlsZHIJcjgsIG9tYXAyNDN4X3NzcF9wbGxfY3RsCUAgZ2V0IGFkZHIKKwlsZHIJcjUsIFtyOF0JCUAgZ2V0IHZhbAorCW12bglyNiwgIzB4MwkJQCBjbGVhciBtYXNrCisJYW5kCXI1LCByNSwgcjYJCUAgY2xlYXIgZmllbGQKKwlvcnIJcjcsIHI1LCAjMHgyCQlAIGZhc3QgcmVsb2NrIHZhbAorCXN0cglyNywgW3I4XQkJQCBnbyB0byBmYXN0IHJlbG9jaworCWxkcglyNCwgb21hcDI0M3hfc3NwX3BsbF9zdGF0CUAgYWRkciBvZiBzdGF0CitibG9jazoKKwkvKiB3YWl0IGZvciBieXBhc3MgKi8KKwlsZHIJcjgsIFtyNF0JCUAgc3RhdCB2YWx1ZQorCWFuZAlyOCwgcjgsICMweDMJCUAgbWFzayBmb3Igc3RhdAorCWNtcAlyOCwgIzB4MQkJQCB0aGVyZSB5ZXQKKwlibmUJYmxvY2sJCQlAIGxvb3AgaWYgbm90CisKKwkvKiBzZXQgbmV3IGRwbGwgZGl2aWRlcnMgX2FmdGVyXyBpbiBieXBhc3MgKi8KKwlsZHIJcjQsIG9tYXAyNDN4X3NzcF9wbGxfZGl2CUAgZ2V0IGFkZHIKKwlzdHIJcjAsIFtyNF0JCUAgc2V0IGRwbGwgY3RybCB2YWwKKworCWxkcglyNCwgb21hcDI0M3hfc3NwX3NldF9jb25maWcJQCBnZXQgYWRkcgorCW1vdglyOCwgIzEJCQlAIHZhbGlkIGNmZyBtc2sKKwlzdHIJcjgsIFtyNF0JCUAgbWFrZSBkaXZpZGVycyB0YWtlCisKKwltb3YJcjQsICMxMDAJCUAgZGVhZCBzcGluIGEgYml0Cit3YWl0X2FfYml0OgorCXN1YnMJcjQsIHI0LCAjMQkJQCBkZWMgbG9vcAorCWJuZQl3YWl0X2FfYml0CQlAIGRlbGF5IGRvbmU/CisKKwkvKiBjaGVjayBpZiBzdGF5aW5nIGluIGJ5cGFzcyAqLworCWNtcAlyMiwgIzB4MQkJQCBzdGF5IGluIGJ5cGFzcz8KKwliZXEJcGVuZAkJCUAganVtcCBvdmVyIGRwbGwgcmVsb2NrCisKKwkvKiByZWxvY2sgRFBMTCB3aXRoIG5ldyB2YWxzICovCisJbGRyCXI1LCBvbWFwMjQzeF9zc3BfcGxsX3N0YXQJQCBnZXQgYWRkcgorCWxkcglyNCwgb21hcDI0M3hfc3NwX3BsbF9jdGwJQCBnZXQgYWRkcgorCW9ycglyOCwgcjcsICMweDMJCUAgdmFsIGZvciBsb2NrIGRwbGwKKwlzdHIJcjgsIFtyNF0JCUAgc2V0IHZhbAorCW1vdglyMCwgIzEwMDAJCUAgZGVhZCBzcGluIGEgYml0Cit3YWl0X21vcmU6CisJc3VicwlyMCwgcjAsICMxCQlAIGRlYyBsb29wCisJYm5lCXdhaXRfbW9yZQkJQCBkZWxheSBkb25lPword2FpdF9sb2NrOgorCWxkcglyOCwgW3I1XQkJQCBnZXQgbG9jayB2YWwKKwlhbmQJcjgsIHI4LCAjMwkJQCBpc29sYXRlIGZpZWxkCisJY21wCXI4LCAjMgkJCUAgbG9ja2VkPworCWJuZQl3YWl0X2xvY2sJCUAgd2FpdCBpZiBub3QKK3BlbmQ6CisJLyogdXBkYXRlIG1lbW9yeSB0aW1pbmdzICYgYnJpZWZseSBsb2NrIGRsbCAqLworCWxkcglyNCwgb21hcDI0M3hfc3NwX3NkcmNfcmZyCUAgZ2V0IGFkZHIKKwlzdHIJcjEsIFtyNF0JCUAgdXBkYXRlIHJlZnJlc2ggdGltaW5nCisJbGRyCXIxMSwgb21hcDI0M3hfc3NwX2RsbGFfY3RybAlAIGdldCBhZGRyIG9mIERMTEEgY3RybAorCWxkcglyMTAsIFtyMTFdCQlAIGdldCBjdXJyZW50IHZhbAorCW12bglyOSwgIzB4NAkJQCBtYXNrIHRvIGdldCBjbGVhciBiaXQyCisJYW5kCXIxMCwgcjEwLCByOQkJQCBjbGVhciBiaXQyIGZvciBsb2NrIG1vZGUKKwlvcnIJcjEwLCByMTAsICMweDgJCUAgbWFrZSBzdXJlIERMTCBvbiAoZXMyIGJpdCBwb3MpCisJc3RyCXIxMCwgW3IxMV0JCUAgY29tbWl0IHRvIERMTEFfQ1RSTAorCWFkZAlyMTEsIHIxMSwgIzB4OAkJQCBtb3ZlIHRvIGRsbGIKKwlzdHIJcjEwLCBbcjExXQkJQCBoaXQgRExMQiBhbHNvCisKKwltb3YJcjQsICMweDgwMAkJQCByZWxvY2sgdGltZSAobWluIDB4NDAwIEwzIGNsb2NrcykKK3dhaXRfZGxsX2xvY2s6CisJc3VicwlyNCwgcjQsICMweDEKKwlibmUJd2FpdF9kbGxfbG9jaworCW5vcAorCWxkbWZkCXNwISwge3IwLXIxMiwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KKworb21hcDI0M3hfc3NwX3NldF9jb25maWc6CisJLndvcmQgT01BUDI0M1hfUFJDTV9DTEtDRkdfQ1RSTAorb21hcDI0M3hfc3NwX3BsbF9jdGw6CisJLndvcmQgT01BUDI0MzBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtFTikKK29tYXAyNDN4X3NzcF9wbGxfc3RhdDoKKwkud29yZCBPTUFQMjQzMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCkKK29tYXAyNDN4X3NzcF9wbGxfZGl2OgorCS53b3JkIE9NQVAyNDMwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMSkKK29tYXAyNDN4X3NzcF9zZHJjX3JmcjoKKwkud29yZCBPTUFQMjQzWF9TRFJDX1JFR0FERFIoU0RSQ19SRlJfQ1RSTF8wKQorb21hcDI0M3hfc3NwX2RsbGFfY3RybDoKKwkud29yZCBPTUFQMjQzWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCisKK0VOVFJZKG9tYXAyNDN4X3NyYW1fc2V0X3ByY21fc3opCisJLndvcmQJLiAtIG9tYXAyNDN4X3NyYW1fc2V0X3ByY20KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvdGltZXItZ3AuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvdGltZXItZ3AuYwppbmRleCA3OGQwNWYyLi41NTc2MDNmIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3RpbWVyLWdwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi90aW1lci1ncC5jCkBAIC01OSw4ICs1OSw3IEBACiBzdGF0aWMgaW50IG9tYXAyX2dwX3RpbWVyX3NldF9uZXh0X2V2ZW50KHVuc2lnbmVkIGxvbmcgY3ljbGVzLAogCQkJCQkgc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQogewotCW9tYXBfZG1fdGltZXJfc2V0X2xvYWQoZ3B0aW1lciwgMCwgMHhmZmZmZmZmZiAtIGN5Y2xlcyk7Ci0Jb21hcF9kbV90aW1lcl9zdGFydChncHRpbWVyKTsKKwlvbWFwX2RtX3RpbWVyX3NldF9sb2FkX3N0YXJ0KGdwdGltZXIsIDAsIDB4ZmZmZmZmZmYgLSBjeWNsZXMpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC03Nyw4ICs3Niw3IEBACiAJCXBlcmlvZCA9IGNsa19nZXRfcmF0ZShvbWFwX2RtX3RpbWVyX2dldF9mY2xrKGdwdGltZXIpKSAvIEhaOwogCQlwZXJpb2QgLT0gMTsKIAotCQlvbWFwX2RtX3RpbWVyX3NldF9sb2FkKGdwdGltZXIsIDEsIDB4ZmZmZmZmZmYgLSBwZXJpb2QpOwotCQlvbWFwX2RtX3RpbWVyX3N0YXJ0KGdwdGltZXIpOworCQlvbWFwX2RtX3RpbWVyX3NldF9sb2FkX3N0YXJ0KGdwdGltZXIsIDEsIDB4ZmZmZmZmZmYgLSBwZXJpb2QpOwogCQlicmVhazsKIAljYXNlIENMT0NLX0VWVF9NT0RFX09ORVNIT1Q6CiAJCWJyZWFrOwpAQCAtMTcyLDggKzE3MCw3IEBACiAJdGlja19yYXRlID0gY2xrX2dldF9yYXRlKG9tYXBfZG1fdGltZXJfZ2V0X2ZjbGsoZ3B0KSk7CiAJdGlja19wZXJpb2QgPSAodGlja19yYXRlIC8gSFopIC0gMTsKIAotCW9tYXBfZG1fdGltZXJfc2V0X2xvYWQoZ3B0LCAxLCAwKTsKLQlvbWFwX2RtX3RpbWVyX3N0YXJ0KGdwdCk7CisJb21hcF9kbV90aW1lcl9zZXRfbG9hZF9zdGFydChncHQsIDEsIDApOwogCiAJY2xvY2tzb3VyY2VfZ3B0Lm11bHQgPQogCQljbG9ja3NvdXJjZV9raHoybXVsdCh0aWNrX3JhdGUvMTAwMCwgY2xvY2tzb3VyY2VfZ3B0LnNoaWZ0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L0tjb25maWcKaW5kZXggOTNkZWJmMy4uZGRjZDQxYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L0tjb25maWcKQEAgLTQ0LDYgKzQ0LDU0IEBACiAJICBCdWZmYWxvIExpbmtzdGF0aW9uIFByby9MaXZlIHBsYXRmb3JtLiBCb3RoIHYxIGFuZAogCSAgdjIgZGV2aWNlcyBhcmUgc3VwcG9ydGVkLgogCitjb25maWcgTUFDSF9UUzQwOQorCWJvb2wgIlFOQVAgVFMtNDA5IgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgUU5BUCBUUy00MDkgcGxhdGZvcm0uCisKK2NvbmZpZyBNQUNIX1dSVDM1ME5fVjIKKwlib29sICJMaW5rc3lzIFdSVDM1ME4gdjIiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBMaW5rc3lzIFdSVDM1ME4gdjIgcGxhdGZvcm0uCisKK2NvbmZpZyBNQUNIX1RTNzhYWAorCWJvb2wgIlRlY2hub2xvZ2ljIFN5c3RlbXMgVFMtNzh4eCIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIFRlY2hub2xvZ2ljIFN5c3RlbXMgVFMtNzh4eCBwbGF0Zm9ybS4KKworY29uZmlnIE1BQ0hfTVYyMTIwCisJYm9vbCAiSFAgTWVkaWEgVmF1bHQgbXYyMTIwIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgSFAgTWVkaWEgVmF1bHQgbXYyMTIwIG9yIG12NTEwMC4KKworY29uZmlnIE1BQ0hfTVNTMgorCWJvb2wgIk1heHRvciBTaGFyZWQgU3RvcmFnZSBJSSIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIE1heHRvciBTaGFyZWQgU3RvcmFnZSBJSSBwbGF0Zm9ybS4KKworY29uZmlnIE1BQ0hfV05SODU0VAorCWJvb2wgIk5ldGdlYXIgV05SODU0VCIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIE5ldGdlYXIgV05SODU0VCBwbGF0Zm9ybS4KKworY29uZmlnIE1BQ0hfUkQ4OEY1MTgxTF9HRQorCWJvb2wgIk1hcnZlbGwgT3Jpb24tVm9JUCBHRSBSZWZlcmVuY2UgRGVzaWduIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTWFydmVsbCBPcmlvbi1Wb0lQIEdFICg4OEY1MTgxTCkgUkQuCisKK2NvbmZpZyBNQUNIX1JEODhGNTE4MUxfRlhPCisJYm9vbCAiTWFydmVsbCBPcmlvbi1Wb0lQIEZYTyBSZWZlcmVuY2UgRGVzaWduIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTWFydmVsbCBPcmlvbi1Wb0lQIEZYTyAoODhGNTE4MUwpIFJELgorCiBlbmRtZW51CiAKIGVuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvTWFrZWZpbGUKaW5kZXggOTMwMWJmNS4uZmNjNDhhOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9NYWtlZmlsZQpAQCAtMSw3ICsxLDE1IEBACi1vYmoteQkJCQkrPSBjb21tb24ubyBhZGRyLW1hcC5vIHBjaS5vIGdwaW8ubyBpcnEubworb2JqLXkJCQkJKz0gY29tbW9uLm8gYWRkci1tYXAubyBwY2kubyBncGlvLm8gaXJxLm8gbXBwLm8KIG9iai0kKENPTkZJR19NQUNIX0RCODhGNTI4MSkJKz0gZGI4OGY1MjgxLXNldHVwLm8KIG9iai0kKENPTkZJR19NQUNIX1JEODhGNTE4MikJKz0gcmQ4OGY1MTgyLXNldHVwLm8KIG9iai0kKENPTkZJR19NQUNIX0tVUk9CT1hfUFJPKQkrPSBrdXJvYm94X3Byby1zZXR1cC5vCiBvYmotJChDT05GSUdfTUFDSF9MSU5LU1RBVElPTl9QUk8pICs9IGt1cm9ib3hfcHJvLXNldHVwLm8KIG9iai0kKENPTkZJR19NQUNIX0ROUzMyMykJKz0gZG5zMzIzLXNldHVwLm8KLW9iai0kKENPTkZJR19NQUNIX1RTMjA5KQkrPSB0czIwOS1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9UUzIwOSkJKz0gdHMyMDktc2V0dXAubyB0c3gwOS1jb21tb24ubworb2JqLSQoQ09ORklHX01BQ0hfVFM0MDkpCSs9IHRzNDA5LXNldHVwLm8gdHN4MDktY29tbW9uLm8KK29iai0kKENPTkZJR19NQUNIX1dSVDM1ME5fVjIpCSs9IHdydDM1MG4tdjItc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfVFM3OFhYKQkrPSB0czc4eHgtc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfTVYyMTIwKQkrPSBtdjIxMjAtc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfTVNTMikJCSs9IG1zczItc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfV05SODU0VCkJKz0gd25yODU0dC1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9SRDg4RjUxODFMX0dFKQkrPSByZDg4ZjUxODFsLWdlLXNldHVwLm8KK29iai0kKENPTkZJR19NQUNIX1JEODhGNTE4MUxfRlhPKQkrPSByZDg4ZjUxODFsLWZ4by1zZXR1cC5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvYWRkci1tYXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9hZGRyLW1hcC5jCmluZGV4IGU2M2ZiMDUuLjZmMGRiZGEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9hZGRyLW1hcC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9hZGRyLW1hcC5jCkBAIC03MCw2ICs3MCw3IEBACiAKIAogc3RydWN0IG1idXNfZHJhbV90YXJnZXRfaW5mbyBvcmlvbjV4X21idXNfZHJhbV9pbmZvOworc3RhdGljIGludCBfX2luaXRkYXRhIHdpbl9hbGxvY19jb3VudDsKIAogc3RhdGljIGludCBfX2luaXQgb3Jpb241eF9jcHVfd2luX2Nhbl9yZW1hcChpbnQgd2luKQogewpAQCAtODcsMTYgKzg4LDIyIEBACiBzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfY3B1X3dpbihpbnQgd2luLCB1MzIgYmFzZSwgdTMyIHNpemUsCiAJCQkJIHU4IHRhcmdldCwgdTggYXR0ciwgaW50IHJlbWFwKQogewotCW9yaW9uNXhfd3JpdGUoQ1BVX1dJTl9CQVNFKHdpbiksIGJhc2UgJiAweGZmZmYwMDAwKTsKLQlvcmlvbjV4X3dyaXRlKENQVV9XSU5fQ1RSTCh3aW4pLAotCQkoKHNpemUgLSAxKSAmIDB4ZmZmZjAwMDApIHwgKGF0dHIgPDwgOCkgfCAodGFyZ2V0IDw8IDQpIHwgMSk7CisJaWYgKHdpbiA+PSA4KSB7CisJCXByaW50ayhLRVJOX0VSUiAic2V0dXBfY3B1X3dpbjogdHJ5aW5nIHRvIGFsbG9jYXRlICIKKwkJCQkid2luZG93ICVkXG4iLCB3aW4pOworCQlyZXR1cm47CisJfQorCisJd3JpdGVsKGJhc2UgJiAweGZmZmYwMDAwLCBDUFVfV0lOX0JBU0Uod2luKSk7CisJd3JpdGVsKCgoc2l6ZSAtIDEpICYgMHhmZmZmMDAwMCkgfCAoYXR0ciA8PCA4KSB8ICh0YXJnZXQgPDwgNCkgfCAxLAorCQlDUFVfV0lOX0NUUkwod2luKSk7CiAKIAlpZiAob3Jpb241eF9jcHVfd2luX2Nhbl9yZW1hcCh3aW4pKSB7CiAJCWlmIChyZW1hcCA8IDApCiAJCQlyZW1hcCA9IGJhc2U7CiAKLQkJb3Jpb241eF93cml0ZShDUFVfV0lOX1JFTUFQX0xPKHdpbiksIHJlbWFwICYgMHhmZmZmMDAwMCk7Ci0JCW9yaW9uNXhfd3JpdGUoQ1BVX1dJTl9SRU1BUF9ISSh3aW4pLCAwKTsKKwkJd3JpdGVsKHJlbWFwICYgMHhmZmZmMDAwMCwgQ1BVX1dJTl9SRU1BUF9MTyh3aW4pKTsKKwkJd3JpdGVsKDAsIENQVV9XSU5fUkVNQVBfSEkod2luKSk7CiAJfQogfQogCkBAIC0xMDksMTEgKzExNiwxMSBAQAogCSAqIEZpcnN0LCBkaXNhYmxlIGFuZCBjbGVhciB3aW5kb3dzLgogCSAqLwogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJb3Jpb241eF93cml0ZShDUFVfV0lOX0JBU0UoaSksIDApOwotCQlvcmlvbjV4X3dyaXRlKENQVV9XSU5fQ1RSTChpKSwgMCk7CisJCXdyaXRlbCgwLCBDUFVfV0lOX0JBU0UoaSkpOworCQl3cml0ZWwoMCwgQ1BVX1dJTl9DVFJMKGkpKTsKIAkJaWYgKG9yaW9uNXhfY3B1X3dpbl9jYW5fcmVtYXAoaSkpIHsKLQkJCW9yaW9uNXhfd3JpdGUoQ1BVX1dJTl9SRU1BUF9MTyhpKSwgMCk7Ci0JCQlvcmlvbjV4X3dyaXRlKENQVV9XSU5fUkVNQVBfSEkoaSksIDApOworCQkJd3JpdGVsKDAsIENQVV9XSU5fUkVNQVBfTE8oaSkpOworCQkJd3JpdGVsKDAsIENQVV9XSU5fUkVNQVBfSEkoaSkpOwogCQl9CiAJfQogCkBAIC0xMjgsNiArMTM1LDcgQEAKIAkJVEFSR0VUX1BDSUUsIEFUVFJfUENJRV9NRU0sIC0xKTsKIAlzZXR1cF9jcHVfd2luKDMsIE9SSU9ONVhfUENJX01FTV9QSFlTX0JBU0UsIE9SSU9ONVhfUENJX01FTV9TSVpFLAogCQlUQVJHRVRfUENJLCBBVFRSX1BDSV9NRU0sIC0xKTsKKwl3aW5fYWxsb2NfY291bnQgPSA0OwogCiAJLyoKIAkgKiBTZXR1cCBNQlVTIGRyYW0gdGFyZ2V0IGluZm8uCkBAIC0xNDcsOCArMTU1LDggQEAKIAkJCXcgPSAmb3Jpb241eF9tYnVzX2RyYW1faW5mby5jc1tjcysrXTsKIAkJCXctPmNzX2luZGV4ID0gaTsKIAkJCXctPm1idXNfYXR0ciA9IDB4ZiAmIH4oMSA8PCBpKTsKLQkJCXctPmJhc2UgPSBiYXNlICYgMHhmZjAwMDAwMDsKLQkJCXctPnNpemUgPSAoc2l6ZSB8IDB4MDBmZmZmZmYpICsgMTsKKwkJCXctPmJhc2UgPSBiYXNlICYgMHhmZmZmMDAwMDsKKwkJCXctPnNpemUgPSAoc2l6ZSB8IDB4MDAwMGZmZmYpICsgMTsKIAkJfQogCX0KIAlvcmlvbjV4X21idXNfZHJhbV9pbmZvLm51bV9jcyA9IGNzOwpAQCAtMTU2LDI1ICsxNjQsMzAgQEAKIAogdm9pZCBfX2luaXQgb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4odTMyIGJhc2UsIHUzMiBzaXplKQogewotCXNldHVwX2NwdV93aW4oNCwgYmFzZSwgc2l6ZSwgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX0JPT1QsIC0xKTsKKwlzZXR1cF9jcHVfd2luKHdpbl9hbGxvY19jb3VudCsrLCBiYXNlLCBzaXplLAorCQkgICAgICBUQVJHRVRfREVWX0JVUywgQVRUUl9ERVZfQk9PVCwgLTEpOwogfQogCiB2b2lkIF9faW5pdCBvcmlvbjV4X3NldHVwX2RldjBfd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSkKIHsKLQlzZXR1cF9jcHVfd2luKDUsIGJhc2UsIHNpemUsIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9DUzAsIC0xKTsKKwlzZXR1cF9jcHVfd2luKHdpbl9hbGxvY19jb3VudCsrLCBiYXNlLCBzaXplLAorCQkgICAgICBUQVJHRVRfREVWX0JVUywgQVRUUl9ERVZfQ1MwLCAtMSk7CiB9CiAKIHZvaWQgX19pbml0IG9yaW9uNXhfc2V0dXBfZGV2MV93aW4odTMyIGJhc2UsIHUzMiBzaXplKQogewotCXNldHVwX2NwdV93aW4oNiwgYmFzZSwgc2l6ZSwgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX0NTMSwgLTEpOworCXNldHVwX2NwdV93aW4od2luX2FsbG9jX2NvdW50KyssIGJhc2UsIHNpemUsCisJCSAgICAgIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9DUzEsIC0xKTsKIH0KIAogdm9pZCBfX2luaXQgb3Jpb241eF9zZXR1cF9kZXYyX3dpbih1MzIgYmFzZSwgdTMyIHNpemUpCiB7Ci0Jc2V0dXBfY3B1X3dpbig3LCBiYXNlLCBzaXplLCBUQVJHRVRfREVWX0JVUywgQVRUUl9ERVZfQ1MyLCAtMSk7CisJc2V0dXBfY3B1X3dpbih3aW5fYWxsb2NfY291bnQrKywgYmFzZSwgc2l6ZSwKKwkJICAgICAgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX0NTMiwgLTEpOwogfQogCiB2b2lkIF9faW5pdCBvcmlvbjV4X3NldHVwX3BjaWVfd2Ffd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSkKIHsKLQlzZXR1cF9jcHVfd2luKDcsIGJhc2UsIHNpemUsIFRBUkdFVF9QQ0lFLCBBVFRSX1BDSUVfV0EsIC0xKTsKKwlzZXR1cF9jcHVfd2luKHdpbl9hbGxvY19jb3VudCsrLCBiYXNlLCBzaXplLAorCQkgICAgICBUQVJHRVRfUENJRSwgQVRUUl9QQ0lFX1dBLCAtMSk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmMKaW5kZXggNGYxM2ZkMC4uZmFmNGUzMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2NvbW1vbi5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9jb21tb24uYwpAQCAtMzksMjUgKzM5LDIyIEBACiAJCS52aXJ0dWFsCT0gT1JJT041WF9SRUdTX1ZJUlRfQkFTRSwKIAkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKE9SSU9ONVhfUkVHU19QSFlTX0JBU0UpLAogCQkubGVuZ3RoCQk9IE9SSU9ONVhfUkVHU19TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UKLQl9LAotCXsKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAorCX0sIHsKIAkJLnZpcnR1YWwJPSBPUklPTjVYX1BDSUVfSU9fVklSVF9CQVNFLAogCQkucGZuCQk9IF9fcGh5c190b19wZm4oT1JJT041WF9QQ0lFX0lPX1BIWVNfQkFTRSksCiAJCS5sZW5ndGgJCT0gT1JJT041WF9QQ0lFX0lPX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi0JeworCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwgewogCQkudmlydHVhbAk9IE9SSU9ONVhfUENJX0lPX1ZJUlRfQkFTRSwKIAkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKE9SSU9ONVhfUENJX0lPX1BIWVNfQkFTRSksCiAJCS5sZW5ndGgJCT0gT1JJT041WF9QQ0lfSU9fU0laRSwKLQkJLnR5cGUJCT0gTVRfREVWSUNFCi0JfSwKLQl7CisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LCB7CiAJCS52aXJ0dWFsCT0gT1JJT041WF9QQ0lFX1dBX1ZJUlRfQkFTRSwKIAkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKE9SSU9ONVhfUENJRV9XQV9QSFlTX0JBU0UpLAogCQkubGVuZ3RoCQk9IE9SSU9ONVhfUENJRV9XQV9TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAogCX0sCiB9OwogCkBAIC02NiwxMDEgKzYzLDMyIEBACiAJaW90YWJsZV9pbml0KG9yaW9uNXhfaW9fZGVzYywgQVJSQVlfU0laRShvcmlvbjV4X2lvX2Rlc2MpKTsKIH0KIAorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIFVBUlQKKyAqIEVIQ0kKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIG9yaW9uNXhfdWFydF9yZXNvdXJjZXNbXSA9IHsKLQl7Ci0JCS5zdGFydAkJPSBVQVJUMF9QSFlTX0JBU0UsCi0JCS5lbmQJCT0gVUFSVDBfUEhZU19CQVNFICsgMHhmZiwKLQkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JewotCQkuc3RhcnQJCT0gSVJRX09SSU9ONVhfVUFSVDAsCi0JCS5lbmQJCT0gSVJRX09SSU9ONVhfVUFSVDAsCi0JCS5mbGFncwkJPSBJT1JFU09VUkNFX0lSUSwKLQl9LAotCXsKLQkJLnN0YXJ0CQk9IFVBUlQxX1BIWVNfQkFTRSwKLQkJLmVuZAkJPSBVQVJUMV9QSFlTX0JBU0UgKyAweGZmLAotCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQl7Ci0JCS5zdGFydAkJPSBJUlFfT1JJT041WF9VQVJUMSwKLQkJLmVuZAkJPSBJUlFfT1JJT041WF9VQVJUMSwKLQkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAotCX0sCi19OwotCi1zdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IG9yaW9uNXhfdWFydF9kYXRhW10gPSB7Ci0JewotCQkubWFwYmFzZQk9IFVBUlQwX1BIWVNfQkFTRSwKLQkJLm1lbWJhc2UJPSAoY2hhciAqKVVBUlQwX1ZJUlRfQkFTRSwKLQkJLmlycQkJPSBJUlFfT1JJT041WF9VQVJUMCwKLQkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJLnJlZ3NoaWZ0CT0gMiwKLQkJLnVhcnRjbGsJPSBPUklPTjVYX1RDTEssCi0JfSwKLQl7Ci0JCS5tYXBiYXNlCT0gVUFSVDFfUEhZU19CQVNFLAotCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDFfVklSVF9CQVNFLAotCQkuaXJxCQk9IElSUV9PUklPTjVYX1VBUlQxLAotCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAotCQkuaW90eXBlCQk9IFVQSU9fTUVNLAotCQkucmVnc2hpZnQJPSAyLAotCQkudWFydGNsawk9IE9SSU9ONVhfVENMSywKLQl9LAotCXsgfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG9yaW9uNXhfdWFydCA9IHsKLQkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAotCS5pZAkJCT0gUExBVDgyNTBfREVWX1BMQVRGT1JNLAotCS5kZXYJCQk9IHsKLQkJLnBsYXRmb3JtX2RhdGEJPSBvcmlvbjV4X3VhcnRfZGF0YSwKLQl9LAotCS5yZXNvdXJjZQkJPSBvcmlvbjV4X3VhcnRfcmVzb3VyY2VzLAotCS5udW1fcmVzb3VyY2VzCQk9IEFSUkFZX1NJWkUob3Jpb241eF91YXJ0X3Jlc291cmNlcyksCi19OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogVVNCIENvbnRyb2xsZXIgLSAyIGludGVyZmFjZXMKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb241eF9laGNpMF9yZXNvdXJjZXNbXSA9IHsKLQl7Ci0JCS5zdGFydAk9IE9SSU9ONVhfVVNCMF9QSFlTX0JBU0UsCi0JCS5lbmQJPSBPUklPTjVYX1VTQjBfUEhZU19CQVNFICsgU1pfNEsgLSAxLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLnN0YXJ0CT0gSVJRX09SSU9ONVhfVVNCMF9DVFJMLAotCQkuZW5kCT0gSVJRX09SSU9ONVhfVVNCMF9DVFJMLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKLQl9LAotfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvcmlvbjV4X2VoY2kxX3Jlc291cmNlc1tdID0gewotCXsKLQkJLnN0YXJ0CT0gT1JJT041WF9VU0IxX1BIWVNfQkFTRSwKLQkJLmVuZAk9IE9SSU9ONVhfVVNCMV9QSFlTX0JBU0UgKyBTWl80SyAtIDEsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JewotCQkuc3RhcnQJPSBJUlFfT1JJT041WF9VU0IxX0NUUkwsCi0JCS5lbmQJPSBJUlFfT1JJT041WF9VU0IxX0NUUkwsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAotCX0sCi19OwotCiBzdGF0aWMgc3RydWN0IG9yaW9uX2VoY2lfZGF0YSBvcmlvbjV4X2VoY2lfZGF0YSA9IHsKIAkuZHJhbQkJPSAmb3Jpb241eF9tYnVzX2RyYW1faW5mbywKIH07CiAKIHN0YXRpYyB1NjQgZWhjaV9kbWFtYXNrID0gMHhmZmZmZmZmZlVMOwogCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRUhDSTAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvcmlvbjV4X2VoY2kwX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CT0gT1JJT041WF9VU0IwX1BIWVNfQkFTRSwKKwkJLmVuZAk9IE9SSU9ONVhfVVNCMF9QSFlTX0JBU0UgKyBTWl80SyAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CT0gSVJRX09SSU9ONVhfVVNCMF9DVFJMLAorCQkuZW5kCT0gSVJRX09SSU9ONVhfVVNCMF9DVFJMLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb241eF9laGNpMCA9IHsKIAkubmFtZQkJPSAib3Jpb24tZWhjaSIsCiAJLmlkCQk9IDAsCkBAIC0xNzMsNiArMTAxLDI3IEBACiAJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKG9yaW9uNXhfZWhjaTBfcmVzb3VyY2VzKSwKIH07CiAKK3ZvaWQgX19pbml0IG9yaW9uNXhfZWhjaTBfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF9laGNpMCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFSENJMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG9yaW9uNXhfZWhjaTFfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJPSBPUklPTjVYX1VTQjFfUEhZU19CQVNFLAorCQkuZW5kCT0gT1JJT041WF9VU0IxX1BIWVNfQkFTRSArIFNaXzRLIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJPSBJUlFfT1JJT041WF9VU0IxX0NUUkwsCisJCS5lbmQJPSBJUlFfT1JJT041WF9VU0IxX0NUUkwsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBvcmlvbjV4X2VoY2kxID0gewogCS5uYW1lCQk9ICJvcmlvbi1laGNpIiwKIAkuaWQJCT0gMSwKQEAgLTE4NSwxMSArMTM0LDE1IEBACiAJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKG9yaW9uNXhfZWhjaTFfcmVzb3VyY2VzKSwKIH07CiAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogR2lnYWJpdCBFdGhlcm5ldCBwb3J0Ci0gKiAoVGhlIE9yaW9uIGFuZCBEaXNjb3ZlcnkgKE1WNjQzeHgpIGZhbWlsaWVzIHVzZSB0aGUgc2FtZSBFdGhlcm5ldCBkcml2ZXIpCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3ZvaWQgX19pbml0IG9yaW9uNXhfZWhjaTFfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF9laGNpMSk7Cit9CiAKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHaWdFCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0cnVjdCBtdjY0M3h4X2V0aF9zaGFyZWRfcGxhdGZvcm1fZGF0YSBvcmlvbjV4X2V0aF9zaGFyZWRfZGF0YSA9IHsKIAkuZHJhbQkJPSAmb3Jpb241eF9tYnVzX2RyYW1faW5mbywKIAkudF9jbGsJCT0gT1JJT041WF9UQ0xLLApAQCAtMjE5LDcgKzE3Miw3IEBACiAJCS5zdGFydAk9IElSUV9PUklPTjVYX0VUSF9TVU0sCiAJCS5lbmQJPSBJUlFfT1JJT041WF9FVEhfU1VNLAogCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKLQl9CisJfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG9yaW9uNXhfZXRoID0gewpAQCAtMjM4LDExICsxOTEsMTAgQEAKIAlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfZXRoKTsKIH0KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBJMkMgY29udHJvbGxlcgotICogKFRoZSBPcmlvbiBhbmQgRGlzY292ZXJ5IChNVjY0M3h4KSBmYW1pbGllcyBzaGFyZSB0aGUgc2FtZSBJMkMgY29udHJvbGxlcikKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEkyQworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgc3RydWN0IG12NjR4eHhfaTJjX3BkYXRhIG9yaW9uNXhfaTJjX3BkYXRhID0gewogCS5mcmVxX20JCT0gOCwgLyogYXNzdW1lcyAxNjYgTUh6IFRDTEsgKi8KIAkuZnJlcV9uCQk9IDMsCkBAIC0yNTEsMTYgKzIwMywxNSBAQAogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIG9yaW9uNXhfaTJjX3Jlc291cmNlc1tdID0gewogCXsKLQkJLm5hbWUgICA9ICJpMmMgYmFzZSIsCi0JCS5zdGFydCAgPSBJMkNfUEhZU19CQVNFLAotCQkuZW5kICAgID0gSTJDX1BIWVNfQkFTRSArIDB4MjAgLTEsCi0JCS5mbGFncyAgPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLm5hbWUgICA9ICJpMmMgaXJxIiwKLQkJLnN0YXJ0ICA9IElSUV9PUklPTjVYX0kyQywKLQkJLmVuZCAgICA9IElSUV9PUklPTjVYX0kyQywKLQkJLmZsYWdzICA9IElPUkVTT1VSQ0VfSVJRLAorCQkubmFtZQk9ICJpMmMgYmFzZSIsCisJCS5zdGFydAk9IEkyQ19QSFlTX0JBU0UsCisJCS5lbmQJPSBJMkNfUEhZU19CQVNFICsgMHgxZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkubmFtZQk9ICJpMmMgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX09SSU9ONVhfSTJDLAorCQkuZW5kCT0gSVJRX09SSU9ONVhfSTJDLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKIAl9LAogfTsKIApAQCAtMjcwLDM2ICsyMjEsNDEgQEAKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUob3Jpb241eF9pMmNfcmVzb3VyY2VzKSwKIAkucmVzb3VyY2UJPSBvcmlvbjV4X2kyY19yZXNvdXJjZXMsCiAJLmRldgkJPSB7Ci0JCS5wbGF0Zm9ybV9kYXRhID0gJm9yaW9uNXhfaTJjX3BkYXRhLAorCQkucGxhdGZvcm1fZGF0YQk9ICZvcmlvbjV4X2kyY19wZGF0YSwKIAl9LAogfTsKIAordm9pZCBfX2luaXQgb3Jpb241eF9pMmNfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF9pMmMpOworfQorCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogU2F0YSBwb3J0CisgKiBTQVRBCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb241eF9zYXRhX3Jlc291cmNlc1tdID0gewotICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLm5hbWUgICA9ICJzYXRhIGJhc2UiLAotICAgICAgICAgICAgICAgIC5zdGFydCAgPSBPUklPTjVYX1NBVEFfUEhZU19CQVNFLAotICAgICAgICAgICAgICAgIC5lbmQgICAgPSBPUklPTjVYX1NBVEFfUEhZU19CQVNFICsgMHg1MDAwIC0gMSwKLSAgICAgICAgICAgICAgICAuZmxhZ3MgID0gSU9SRVNPVVJDRV9NRU0sCi0gICAgICAgIH0sCiAJewotICAgICAgICAgICAgICAgIC5uYW1lICAgPSAic2F0YSBpcnEiLAotICAgICAgICAgICAgICAgIC5zdGFydCAgPSBJUlFfT1JJT041WF9TQVRBLAotICAgICAgICAgICAgICAgIC5lbmQgICAgPSBJUlFfT1JJT041WF9TQVRBLAotICAgICAgICAgICAgICAgIC5mbGFncyAgPSBJT1JFU09VUkNFX0lSUSwKLSAgICAgICAgfSwKKwkJLm5hbWUJPSAic2F0YSBiYXNlIiwKKwkJLnN0YXJ0CT0gT1JJT041WF9TQVRBX1BIWVNfQkFTRSwKKwkJLmVuZAk9IE9SSU9ONVhfU0FUQV9QSFlTX0JBU0UgKyAweDUwMDAgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5uYW1lCT0gInNhdGEgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX09SSU9ONVhfU0FUQSwKKwkJLmVuZAk9IElSUV9PUklPTjVYX1NBVEEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBvcmlvbjV4X3NhdGEgPSB7Ci0JLm5hbWUgICAgICAgICAgID0gInNhdGFfbXYiLAotCS5pZCAgICAgICAgICAgICA9IDAsCisJLm5hbWUJCT0gInNhdGFfbXYiLAorCS5pZAkJPSAwLAogCS5kZXYJCT0gewogCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAogCX0sCi0JLm51bV9yZXNvdXJjZXMgID0gQVJSQVlfU0laRShvcmlvbjV4X3NhdGFfcmVzb3VyY2VzKSwKLQkucmVzb3VyY2UgICAgICAgPSBvcmlvbjV4X3NhdGFfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShvcmlvbjV4X3NhdGFfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UJPSBvcmlvbjV4X3NhdGFfcmVzb3VyY2VzLAogfTsKIAogdm9pZCBfX2luaXQgb3Jpb241eF9zYXRhX2luaXQoc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSAqc2F0YV9kYXRhKQpAQCAtMzA5LDIzICsyNjUsMTExIEBACiAJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X3NhdGEpOwogfQogCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBvcmlvbjV4X3VhcnQwX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDBfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDBfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9PUklPTjVYX1VBUlQwLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IE9SSU9ONVhfVENMSywKKwl9LCB7CisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb241eF91YXJ0MF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAkJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5lbmQJCT0gVUFSVDBfUEhZU19CQVNFICsgMHhmZiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CQk9IElSUV9PUklPTjVYX1VBUlQwLAorCQkuZW5kCQk9IElSUV9PUklPTjVYX1VBUlQwLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG9yaW9uNXhfdWFydDAgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IFBMQVQ4MjUwX0RFVl9QTEFURk9STSwKKwkuZGV2CQkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gb3Jpb241eF91YXJ0MF9kYXRhLAorCX0sCisJLnJlc291cmNlCQk9IG9yaW9uNXhfdWFydDBfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCQk9IEFSUkFZX1NJWkUob3Jpb241eF91YXJ0MF9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgb3Jpb241eF91YXJ0MF9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X3VhcnQwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFVBUlQxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcGxhdF9zZXJpYWw4MjUwX3BvcnQgb3Jpb241eF91YXJ0MV9kYXRhW10gPSB7CisJeworCQkubWFwYmFzZQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLm1lbWJhc2UJPSAoY2hhciAqKVVBUlQxX1ZJUlRfQkFTRSwKKwkJLmlycQkJPSBJUlFfT1JJT041WF9VQVJUMSwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSBPUklPTjVYX1RDTEssCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG9yaW9uNXhfdWFydDFfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJCT0gVUFSVDFfUEhZU19CQVNFLAorCQkuZW5kCQk9IFVBUlQxX1BIWVNfQkFTRSArIDB4ZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAkJPSBJUlFfT1JJT041WF9VQVJUMSwKKwkJLmVuZAkJPSBJUlFfT1JJT041WF9VQVJUMSwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBvcmlvbjV4X3VhcnQxID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSBQTEFUODI1MF9ERVZfUExBVEZPUk0xLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBvcmlvbjV4X3VhcnQxX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gb3Jpb241eF91YXJ0MV9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShvcmlvbjV4X3VhcnQxX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBvcmlvbjV4X3VhcnQxX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfdWFydDEpOworfQorCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogVGltZSBoYW5kbGluZwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KIHN0YXRpYyB2b2lkIG9yaW9uNXhfdGltZXJfaW5pdCh2b2lkKQogewogCW9yaW9uX3RpbWVfaW5pdChJUlFfT1JJT041WF9CUklER0UsIE9SSU9ONVhfVENMSyk7CiB9CiAKIHN0cnVjdCBzeXNfdGltZXIgb3Jpb241eF90aW1lciA9IHsKLSAgICAgICAgLmluaXQgPSBvcmlvbjV4X3RpbWVyX2luaXQsCisJLmluaXQgPSBvcmlvbjV4X3RpbWVyX2luaXQsCiB9OwogCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogR2VuZXJhbAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KIC8qCiAgKiBJZGVudGlmeSBkZXZpY2UgSUQgYW5kIHJldiBmcm9tIFBDSWUgY29uZmlndXJhdGlvbiBoZWFkZXIgc3BhY2UgJzAnLgogICovCkBAIC0zNTAsOCArMzk0LDEwIEBACiAJfSBlbHNlIGlmICgqZGV2ID09IE1WODhGNTE4MV9ERVZfSUQpIHsKIAkJaWYgKCpyZXYgPT0gTVY4OEY1MTgxX1JFVl9CMSkgewogCQkJKmRldl9uYW1lID0gIk1WODhGNTE4MS1SZXYtQjEiOworCQl9IGVsc2UgaWYgKCpyZXYgPT0gTVY4OEY1MTgxTF9SRVZfQTEpIHsKKwkJCSpkZXZfbmFtZSA9ICJNVjg4RjUxODFMLVJldi1BMSI7CiAJCX0gZWxzZSB7Ci0JCQkqZGV2X25hbWUgPSAiTVY4OEY1MTgxLVJldi1VbnN1cHBvcnRlZCI7CisJCQkqZGV2X25hbWUgPSAiTVY4OEY1MTgxKEwpLVJldi1VbnN1cHBvcnRlZCI7CiAJCX0KIAl9IGVsc2UgewogCQkqZGV2X25hbWUgPSAiRGV2aWNlLVVua25vd24iOwpAQCAtMzcwLDE1ICs0MTYsNiBAQAogCSAqIFNldHVwIE9yaW9uIGFkZHJlc3MgbWFwCiAJICovCiAJb3Jpb241eF9zZXR1cF9jcHVfbWJ1c19icmlkZ2UoKTsKLQotCS8qCi0JICogUmVnaXN0ZXIgZGV2aWNlcy4KLQkgKi8KLQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfdWFydCk7Ci0JcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X2VoY2kwKTsKLQlpZiAoZGV2ID09IE1WODhGNTE4Ml9ERVZfSUQpCi0JCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF9laGNpMSk7Ci0JcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X2kyYyk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmggYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmgKaW5kZXggYmQwZjA1ZC4uZjcyY2YwZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2NvbW1vbi5oCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9jb21tb24uaApAQCAtMSwxMCArMSwxMiBAQAogI2lmbmRlZiBfX0FSQ0hfT1JJT041WF9DT01NT05fSAogI2RlZmluZSBfX0FSQ0hfT1JJT041WF9DT01NT05fSAogCitzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YTsKK3N0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGE7CisKIC8qCiAgKiBCYXNpYyBPcmlvbiBpbml0IGZ1bmN0aW9ucyB1c2VkIGVhcmx5IGJ5IG1hY2hpbmUtc2V0dXAuCiAgKi8KLQogdm9pZCBvcmlvbjV4X21hcF9pbyh2b2lkKTsKIHZvaWQgb3Jpb241eF9pbml0X2lycSh2b2lkKTsKIHZvaWQgb3Jpb241eF9pbml0KHZvaWQpOwpAQCAtMjMsMTUgKzI1LDIyIEBACiB2b2lkIG9yaW9uNXhfc2V0dXBfZGV2Ml93aW4odTMyIGJhc2UsIHUzMiBzaXplKTsKIHZvaWQgb3Jpb241eF9zZXR1cF9wY2llX3dhX3dpbih1MzIgYmFzZSwgdTMyIHNpemUpOwogCi0vKgotICogU2hhcmVkIGNvZGUgdXNlZCBpbnRlcm5hbGx5IGJ5IG90aGVyIE9yaW9uIGNvcmUgZnVuY3Rpb25zLgotICogKC9tYWNoLW9yaW9uL3BjaS5jKQotICovCit2b2lkIG9yaW9uNXhfZWhjaTBfaW5pdCh2b2lkKTsKK3ZvaWQgb3Jpb241eF9laGNpMV9pbml0KHZvaWQpOwordm9pZCBvcmlvbjV4X2V0aF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIG9yaW9uNXhfaTJjX2luaXQodm9pZCk7Cit2b2lkIG9yaW9uNXhfc2F0YV9pbml0KHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgKnNhdGFfZGF0YSk7Cit2b2lkIG9yaW9uNXhfdWFydDBfaW5pdCh2b2lkKTsKK3ZvaWQgb3Jpb241eF91YXJ0MV9pbml0KHZvaWQpOwogCi1zdHJ1Y3QgcGNpX3N5c19kYXRhOworLyoKKyAqIFBDSWUvUENJIGZ1bmN0aW9ucy4KKyAqLwogc3RydWN0IHBjaV9idXM7CitzdHJ1Y3QgcGNpX3N5c19kYXRhOwogCiB2b2lkIG9yaW9uNXhfcGNpZV9pZCh1MzIgKmRldiwgdTMyICpyZXYpOwordm9pZCBvcmlvbjV4X3BjaV9zZXRfY2FyZGJ1c19tb2RlKHZvaWQpOwogaW50IG9yaW9uNXhfcGNpX3N5c19zZXR1cChpbnQgbnIsIHN0cnVjdCBwY2lfc3lzX2RhdGEgKnN5cyk7CiBzdHJ1Y3QgcGNpX2J1cyAqb3Jpb241eF9wY2lfc3lzX3NjYW5fYnVzKGludCBuciwgc3RydWN0IHBjaV9zeXNfZGF0YSAqc3lzKTsKIGludCBvcmlvbjV4X3BjaV9tYXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNsb3QsIHU4IHBpbik7CkBAIC00MCwyNiArNDksOSBAQAogICogVmFsaWQgR1BJTyBwaW5zIGFjY29yZGluZyB0byBNUFAgc2V0dXAsIHVzZWQgYnkgbWFjaGluZS1zZXR1cC4KICAqICgvbWFjaC1vcmlvbi9ncGlvLmMpLgogICovCi0KLXZvaWQgb3Jpb241eF9ncGlvX3NldF92YWxpZF9waW5zKHUzMiBwaW5zKTsKK3ZvaWQgb3Jpb241eF9ncGlvX3NldF92YWxpZCh1bnNpZ25lZCBwaW4sIGludCB2YWxpZCk7CiB2b2lkIGdwaW9fZGlzcGxheSh2b2lkKTsJLyogZGVidWcgKi8KIAotLyoKLSAqIFB1bGwgaW4gT3Jpb24gRXRoZXJuZXQgcGxhdGZvcm1fZGF0YSwgdXNlZCBieSBtYWNoaW5lLXNldHVwCi0gKi8KLQotc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGE7Ci0KLXZvaWQgb3Jpb241eF9ldGhfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpOwotCi0vKgotICogT3Jpb24gU2F0YSBwbGF0Zm9ybV9kYXRhLCB1c2VkIGJ5IG1hY2hpbmUtc2V0dXAKLSAqLwotCi1zdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhOwotCi12b2lkIG9yaW9uNXhfc2F0YV9pbml0KHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgKnNhdGFfZGF0YSk7Ci0KIHN0cnVjdCBtYWNoaW5lX2Rlc2M7CiBzdHJ1Y3QgbWVtaW5mbzsKIHN0cnVjdCB0YWc7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZGI4OGY1MjgxLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZGI4OGY1MjgxLXNldHVwLmMKaW5kZXggNDRjNjQzNC4uODg0MDVlNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2RiODhmNTI4MS1zZXR1cC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9kYjg4ZjUyODEtc2V0dXAuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KICNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9vcmlvbl9uYW5kLmg+CiAjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogREItODhGNTI4MSBvbiBib2FyZCBkZXZpY2VzCkBAIC04Niw3ICs4Nyw3IEBACiAJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAogCS5pZAkJPSAwLAogCS5kZXYJCT0gewotCQkucGxhdGZvcm1fZGF0YSA9ICZkYjg4ZjUyODFfYm9vdF9mbGFzaF9kYXRhLAorCQkucGxhdGZvcm1fZGF0YQk9ICZkYjg4ZjUyODFfYm9vdF9mbGFzaF9kYXRhLAogCX0sCiAJLm51bV9yZXNvdXJjZXMJPSAxLAogCS5yZXNvdXJjZQk9ICZkYjg4ZjUyODFfYm9vdF9mbGFzaF9yZXNvdXJjZSwKQEAgLTExMCw3ICsxMTEsNyBAQAogCS5uYW1lCQk9ICJwaHlzbWFwLWZsYXNoIiwKIAkuaWQJCT0gMSwKIAkuZGV2CQk9IHsKLQkJLnBsYXRmb3JtX2RhdGEgPSAmZGI4OGY1MjgxX25vcl9mbGFzaF9kYXRhLAorCQkucGxhdGZvcm1fZGF0YQk9ICZkYjg4ZjUyODFfbm9yX2ZsYXNoX2RhdGEsCiAJfSwKIAkubnVtX3Jlc291cmNlcwk9IDEsCiAJLnJlc291cmNlCT0gJmRiODhmNTI4MV9ub3JfZmxhc2hfcmVzb3VyY2UsCkBAIC0xMjUsMTggKzEyNiwxNSBAQAogCQkubmFtZSA9ICJrZXJuZWwiLAogCQkub2Zmc2V0ID0gMCwKIAkJLnNpemUgPSBTWl8yTSwKLQl9LAotCXsKKwl9LCB7CiAJCS5uYW1lID0gInJvb3QiLAogCQkub2Zmc2V0ID0gU1pfMk0sCiAJCS5zaXplID0gKFNaXzE2TSAtIFNaXzJNKSwKLQl9LAotCXsKKwl9LCB7CiAJCS5uYW1lID0gInVzZXIiLAogCQkub2Zmc2V0ID0gU1pfMTZNLAogCQkuc2l6ZSA9IFNaXzhNLAotCX0sCi0JeworCX0sIHsKIAkJLm5hbWUgPSAicmVjb3ZlcnkiLAogCQkub2Zmc2V0ID0gKFNaXzE2TSArIFNaXzhNKSwKIAkJLnNpemUgPSBTWl84TSwKQEAgLTI4OCw3ICsyODYsNiBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgZGI4OGY1MjgxX2V0aF9kYXRhID0gewogCS5waHlfYWRkcgk9IDgsCi0JLmZvcmNlX3BoeV9hZGRyID0gMSwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMzAxLDExICsyOTgsMjggQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogR2VuZXJhbCBTZXR1cAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkYjg4ZjUyODFfZGV2c1tdIF9faW5pdGRhdGEgPSB7Ci0JJmRiODhmNTI4MV9ib290X2ZsYXNoLAotCSZkYjg4ZjUyODFfbm9yX2ZsYXNoLAotCSZkYjg4ZjUyODFfbmFuZF9mbGFzaCwKK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSBkYjg4ZjUyODFfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfR1BJTyB9LAkJLyogVVNCIE92ZXIgQ3VycmVudCAqLworCXsgIDEsIE1QUF9HUElPIH0sCQkvKiBVU0IgVmJhdCBpbnB1dCAqLworCXsgIDIsIE1QUF9QQ0lfQVJCIH0sCQkvKiBQQ0lfUkVRblsyXSAqLworCXsgIDMsIE1QUF9QQ0lfQVJCIH0sCQkvKiBQQ0lfR05UblsyXSAqLworCXsgIDQsIE1QUF9QQ0lfQVJCIH0sCQkvKiBQQ0lfUkVRblszXSAqLworCXsgIDUsIE1QUF9QQ0lfQVJCIH0sCQkvKiBQQ0lfR05UblszXSAqLworCXsgIDYsIE1QUF9HUElPIH0sCQkvKiBKUDAsIENPTjE3LjIgKi8KKwl7ICA3LCBNUFBfR1BJTyB9LAkJLyogSlAxLCBDT04xNy4xICovCisJeyAgOCwgTVBQX0dQSU8gfSwJCS8qIEpQMiwgQ09OMTEuMiAqLworCXsgIDksIE1QUF9HUElPIH0sCQkvKiBKUDMsIENPTjExLjMgKi8KKwl7IDEwLCBNUFBfR1BJTyB9LAkJLyogUlRDIGludCAqLworCXsgMTEsIE1QUF9HUElPIH0sCQkvKiBCYXVkIFJhdGUgR2VuZXJhdG9yICovCisJeyAxMiwgTVBQX0dQSU8gfSwJCS8qIFBDSSBpbnQgMSAqLworCXsgMTMsIE1QUF9HUElPIH0sCQkvKiBQQ0kgaW50IDIgKi8KKwl7IDE0LCBNUFBfTkFORCB9LAkJLyogTkFORF9SRW5bMl0gKi8KKwl7IDE1LCBNUFBfTkFORCB9LAkJLyogTkFORF9XRW5bMl0gKi8KKwl7IDE2LCBNUFBfVUFSVCB9LAkJLyogVUFSVDFfUlggKi8KKwl7IDE3LCBNUFBfVUFSVCB9LAkJLyogVUFSVDFfVFggKi8KKwl7IDE4LCBNUFBfVUFSVCB9LAkJLyogVUFSVDFfQ1RTbiAqLworCXsgMTksIE1QUF9VQVJUIH0sCQkvKiBVQVJUMV9SVFNuICovCisJeyAtMSB9LAogfTsKIAogc3RhdGljIHZvaWQgX19pbml0IGRiODhmNTI4MV9pbml0KHZvaWQpCkBAIC0zMTUsMzkgKzMyOSwzMSBAQAogCSAqLwogCW9yaW9uNXhfaW5pdCgpOwogCisJb3Jpb241eF9tcHBfY29uZihkYjg4ZjUyODFfbXBwX21vZGVzKTsKKwl3cml0ZWwoMCwgTVBQX0RFVl9DVFJMKTsJCS8qIERFVl9EWzMxOjE2XSAqLworCiAJLyoKLQkgKiBTZXR1cCB0aGUgQ1BVIGFkZHJlc3MgZGVjb2RlIHdpbmRvd3MgZm9yIG91ciBvbi1ib2FyZCBkZXZpY2VzCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgogCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZXRoX2luaXQoJmRiODhmNTI4MV9ldGhfZGF0YSk7CisJb3Jpb241eF9pMmNfaW5pdCgpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCW9yaW9uNXhfdWFydDFfaW5pdCgpOworCiAJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oREI4OEY1MjgxX05PUl9CT09UX0JBU0UsCiAJCQkJREI4OEY1MjgxX05PUl9CT09UX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZGI4OGY1MjgxX2Jvb3RfZmxhc2gpOworCiAJb3Jpb241eF9zZXR1cF9kZXYwX3dpbihEQjg4RjUyODFfN1NFR19CQVNFLCBEQjg4RjUyODFfN1NFR19TSVpFKTsKKwogCW9yaW9uNXhfc2V0dXBfZGV2MV93aW4oREI4OEY1MjgxX05PUl9CQVNFLCBEQjg4RjUyODFfTk9SX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZGI4OGY1MjgxX25vcl9mbGFzaCk7CisKIAlvcmlvbjV4X3NldHVwX2RldjJfd2luKERCODhGNTI4MV9OQU5EX0JBU0UsIERCODhGNTI4MV9OQU5EX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZGI4OGY1MjgxX25hbmRfZmxhc2gpOwogCi0JLyoKLQkgKiBTZXR1cCBNdWx0aXBsZXhpbmcgUGluczoKLQkgKiBNUFAwOiBHUElPIChVU0IgT3ZlciBDdXJyZW50KQlNUFAxOiBHUElPIChVU0IgVmJhdCBpbnB1dCkKLQkgKiBNUFAyOiBQQ0lfUkVRblsyXQkJCU1QUDM6IFBDSV9HTlRuWzJdCi0JICogTVBQNDogUENJX1JFUW5bM10JCQlNUFA1OiBQQ0lfR05UblszXQotCSAqIE1QUDY6IEdQSU8gKEpQMCwgQ09OMTcuMikJCU1QUDc6IEdQSU8gKEpQMSwgQ09OMTcuMSkKLQkgKiBNUFA4OiBHUElPIChKUDIsIENPTjExLjIpCQlNUFA5OiBHUElPIChKUDMsIENPTjExLjMpCi0JICogTVBQMTA6IEdQSU8gKFJUQyBpbnQpCQlNUFAxMTogR1BJTyAoQmF1ZCBSYXRlIEdlbmVyYXRvcikKLQkgKiBNUFAxMjogR1BJTyAoUENJIGludCAxKQkJTVBQMTM6IEdQSU8gKFBDSSBpbnQgMikKLQkgKiBNUFAxNDogTkFORF9SRW5bMl0JCQlNUFAxNTogTkFORF9XRW5bMl0KLQkgKiBNUFAxNjogVUFSVDFfUlgJCQlNUFAxNzogVUFSVDFfVFgKLQkgKiBNUFAxODogVUFSVDFfQ1RTCQkJTVBQMTk6IFVBUlQxX1JUUwotCSAqIE1QUC1ERVY6IERFVl9EWzE2OjMxXQotCSAqLwotCW9yaW9uNXhfd3JpdGUoTVBQXzBfN19DVFJMLCAweDAwMjIyMjAzKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF84XzE1X0NUUkwsIDB4NDQwMDAwMDApOwotCW9yaW9uNXhfd3JpdGUoTVBQXzE2XzE5X0NUUkwsIDApOwotCW9yaW9uNXhfd3JpdGUoTVBQX0RFVl9DVFJMLCAwKTsKLQotCW9yaW9uNXhfZ3Bpb19zZXRfdmFsaWRfcGlucygweDAwMDAzZmMzKTsKLQotCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGRiODhmNTI4MV9kZXZzLCBBUlJBWV9TSVpFKGRiODhmNTI4MV9kZXZzKSk7CiAJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJmRiODhmNTI4MV9pMmNfcnRjLCAxKTsKLQlvcmlvbjV4X2V0aF9pbml0KCZkYjg4ZjUyODFfZXRoX2RhdGEpOwogfQogCiBNQUNISU5FX1NUQVJUKERCODhGNTI4MSwgIk1hcnZlbGwgT3Jpb24tMiBEZXZlbG9wbWVudCBCb2FyZCIpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZG5zMzIzLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZG5zMzIzLXNldHVwLmMKaW5kZXggMjdjZTk2Ny4uMzc5MWNhNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2RuczMyMy1zZXR1cC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9kbnMzMjMtc2V0dXAuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KICNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKIAogI2RlZmluZSBETlMzMjNfR1BJT19MRURfUklHSFRfQU1CRVIJMQogI2RlZmluZSBETlMzMjNfR1BJT19MRURfTEVGVF9BTUJFUgkyCkBAIC01Miw4ICs1Myw2IEBACiAJaWYgKGlycSAhPSAtMSkKIAkJcmV0dXJuIGlycTsKIAotCXByX2VycigiJXM6IHJlcXVlc3RlZCBtYXBwaW5nIGZvciB1bmtub3duIGRldmljZVxuIiwgX19mdW5jX18pOwotCiAJcmV0dXJuIC0xOwogfQogCkBAIC04MSw3ICs4MCw2IEBACiAKIHN0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBkbnMzMjNfZXRoX2RhdGEgPSB7CiAJLnBoeV9hZGRyID0gOCwKLQkuZm9yY2VfcGh5X2FkZHIgPSAxLAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExOSw3ICsxMTcsNyBAQAogCQkubmFtZQk9ICJ1LWJvb3QiLAogCQkuc2l6ZQk9IDB4MDAwMzAwMDAsCiAJCS5vZmZzZXQJPSAweDAwN2QwMDAwLAotCX0KKwl9LAogfTsKIAogc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgZG5zMzIzX25vcl9mbGFzaF9kYXRhID0gewpAQCAtMTM3LDcgKzEzNSw5IEBACiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBkbnMzMjNfbm9yX2ZsYXNoID0gewogCS5uYW1lCQk9ICJwaHlzbWFwLWZsYXNoIiwKIAkuaWQJCT0gMCwKLQkuZGV2CQk9IHsgLnBsYXRmb3JtX2RhdGEgPSAmZG5zMzIzX25vcl9mbGFzaF9kYXRhLCB9LAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZkbnMzMjNfbm9yX2ZsYXNoX2RhdGEsCisJfSwKIAkucmVzb3VyY2UJPSAmZG5zMzIzX25vcl9mbGFzaF9yZXNvdXJjZSwKIAkubnVtX3Jlc291cmNlcwk9IDEsCiB9OwpAQCAtMTcwLDcgKzE3MCw5IEBACiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBkbnMzMjNfZ3Bpb19sZWRzID0gewogCS5uYW1lCQk9ICJsZWRzLWdwaW8iLAogCS5pZAkJPSAtMSwKLQkuZGV2CQk9IHsgLnBsYXRmb3JtX2RhdGEgPSAmZG5zMzIzX2xlZF9kYXRhLCB9LAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZkbnMzMjNfbGVkX2RhdGEsCisJfSwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xODMsMzUgKzE4NSw1MyBAQAogCQkuZ3BpbwkJPSBETlMzMjNfR1BJT19LRVlfUkVTRVQsCiAJCS5kZXNjCQk9ICJSZXNldCBCdXR0b24iLAogCQkuYWN0aXZlX2xvdwk9IDEsCi0JfSwKLQl7CisJfSwgewogCQkuY29kZQkJPSBLRVlfUE9XRVIsCiAJCS5ncGlvCQk9IEROUzMyM19HUElPX0tFWV9QT1dFUiwKIAkJLmRlc2MJCT0gIlBvd2VyIEJ1dHRvbiIsCiAJCS5hY3RpdmVfbG93CT0gMSwKLQl9CisJfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgZG5zMzIzX2J1dHRvbl9kYXRhID0gewogCS5idXR0b25zCT0gZG5zMzIzX2J1dHRvbnMsCi0JLm5idXR0b25zICAgICAgID0gQVJSQVlfU0laRShkbnMzMjNfYnV0dG9ucyksCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShkbnMzMjNfYnV0dG9ucyksCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBkbnMzMjNfYnV0dG9uX2RldmljZSA9IHsKIAkubmFtZQkJPSAiZ3Bpby1rZXlzIiwKIAkuaWQJCT0gLTEsCiAJLm51bV9yZXNvdXJjZXMJPSAwLAotCS5kZXYJCT0geyAucGxhdGZvcm1fZGF0YSAgPSAmZG5zMzIzX2J1dHRvbl9kYXRhLCB9LAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZkbnMzMjNfYnV0dG9uX2RhdGEsCisJfSwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBHZW5lcmFsIFNldHVwCiAgKi8KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRuczMyM19wbGF0X2RldmljZXNbXSBfX2luaXRkYXRhID0gewotCSZkbnMzMjNfbm9yX2ZsYXNoLAotCSZkbnMzMjNfZ3Bpb19sZWRzLAotCSZkbnMzMjNfYnV0dG9uX2RldmljZSwKK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSBkbnMzMjNfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfUENJRV9SU1RfT1VUbiB9LAorCXsgIDEsIE1QUF9HUElPIH0sCQkvKiByaWdodCBhbWJlciBMRUQgKHNhdGEgY2gwKSAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBsZWZ0IGFtYmVyIExFRCAoc2F0YSBjaDEpICovCisJeyAgMywgTVBQX1VOVVNFRCB9LAorCXsgIDQsIE1QUF9HUElPIH0sCQkvKiBwb3dlciBidXR0b24gTEVEICovCisJeyAgNSwgTVBQX0dQSU8gfSwJCS8qIHBvd2VyIGJ1dHRvbiBMRUQgKi8KKwl7ICA2LCBNUFBfR1BJTyB9LAkJLyogR01UIEc3NTEtMmYgb3ZlcnRlbXAgKi8KKwl7ICA3LCBNUFBfR1BJTyB9LAkJLyogTTQxVDgwIG5JUlEvT1VUL1NRVyAqLworCXsgIDgsIE1QUF9HUElPIH0sCQkvKiB0cmlnZ2VycyBwb3dlciBvZmYgKi8KKwl7ICA5LCBNUFBfR1BJTyB9LAkJLyogcG93ZXIgYnV0dG9uIHN3aXRjaCAqLworCXsgMTAsIE1QUF9HUElPIH0sCQkvKiByZXNldCBidXR0b24gc3dpdGNoICovCisJeyAxMSwgTVBQX1VOVVNFRCB9LAorCXsgMTIsIE1QUF9VTlVTRUQgfSwKKwl7IDEzLCBNUFBfVU5VU0VEIH0sCisJeyAxNCwgTVBQX1VOVVNFRCB9LAorCXsgMTUsIE1QUF9VTlVTRUQgfSwKKwl7IDE2LCBNUFBfVU5VU0VEIH0sCisJeyAxNywgTVBQX1VOVVNFRCB9LAorCXsgMTgsIE1QUF9VTlVTRUQgfSwKKwl7IDE5LCBNUFBfVU5VU0VEIH0sCisJeyAtMSB9LAogfTsKIAogLyoKQEAgLTIyNSwxNyArMjQ1LDE1IEBACiBzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgZG5zMzIzX2kyY19kZXZpY2VzW10gPSB7CiAJewogCQlJMkNfQk9BUkRfSU5GTygiZzc2MGEiLCAweDNlKSwKLQl9LAogI2lmIDAKIAkvKiB0aGlzIGVudHJ5IHJlcXVpcmVzIHRoZSBuZXctc3R5bGUgZHJpdmVyIG1vZGVsIGxtNzUgZHJpdmVyLAogCSAqIGZvciB0aGUgbWVhbnRpbWUgImluc21vZCBsbTc1LmtvIGZvcmNlX2xtNzU9MCwweDQ4IiBpcyBuZWVkZWQgKi8KLQl7CisJfSwgewogCQlJMkNfQk9BUkRfSU5GTygiZzc1MSIsIDB4NDgpLAotCX0sCiAjZW5kaWYKLQl7CisJfSwgewogCQlJMkNfQk9BUkRfSU5GTygibTQxdDgwIiwgMHg2OCksCi0JfQorCX0sCiB9OwogCiAvKiBETlMtMzIzIHNwZWNpZmljIHBvd2VyIG9mZiBtZXRob2QgKi8KQEAgLTI1MCw2MiArMjY4LDM1IEBACiAJLyogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4gKi8KIAlvcmlvbjV4X2luaXQoKTsKIAorCW9yaW9uNXhfbXBwX2NvbmYoZG5zMzIzX21wcF9tb2Rlcyk7CisJd3JpdGVsKDAsIE1QUF9ERVZfQ1RSTCk7CQkvKiBERVZfRFszMToxNl0gKi8KKworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZXRoX2luaXQoJmRuczMyM19ldGhfZGF0YSk7CisJb3Jpb241eF9pMmNfaW5pdCgpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCiAJLyogc2V0dXAgZmxhc2ggbWFwcGluZwogCSAqIENTMyBob2xkcyBhIDggTUIgU3BhbnNpb24gUzI5R0wwNjRNOTBURklSNAogCSAqLwogCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKEROUzMyM19OT1JfQk9PVF9CQVNFLCBETlMzMjNfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZkbnMzMjNfbm9yX2ZsYXNoKTsKIAotCS8qIEROUy0zMjMgaGFzIGEgTWFydmVsbCA4OFg3MDQyIFNBVEEgY29udHJvbGxlciBhdHRhY2hlZCB2aWEgUENJZQotCSAqCi0JICogT3BlbiBhIHNwZWNpYWwgYWRkcmVzcyBkZWNvZGUgd2luZG93cyBmb3IgdGhlIFBDSWUgV0EuCi0JICovCi0Jb3Jpb241eF9zZXR1cF9wY2llX3dhX3dpbihPUklPTjVYX1BDSUVfV0FfUEhZU19CQVNFLAotCQkJCU9SSU9ONVhfUENJRV9XQV9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmRuczMyM19ncGlvX2xlZHMpOwogCi0JLyogc2V0IE1QUCB0byAwIGFzIEQtTGluaydzIDIuNi4xMi42IGtlcm5lbCBkaWQgKi8KLQlvcmlvbjV4X3dyaXRlKE1QUF8wXzdfQ1RSTCwgMCk7Ci0Jb3Jpb241eF93cml0ZShNUFBfOF8xNV9DVFJMLCAwKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF8xNl8xOV9DVFJMLCAwKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF9ERVZfQ1RSTCwgMCk7Ci0KLQkvKiBEZWZpbmUgdXNlZCBHUElPIHBpbnMKLQotCSAgR1BJTyBNYXA6Ci0KLQkgIHwgIDAgfCAgICAgfCBQRVhfUlNUX09VVCAobm90IGNvbnRyb2xsZWQgYnkgR1BJTykKLQkgIHwgIDEgfCBPdXQgfCByaWdodCBhbWJlciBMRUQgKD0gc2F0YSBjaDAgTEVEKSAgKGxvdy1hY3RpdmUpCi0JICB8ICAyIHwgT3V0IHwgbGVmdCAgYW1iZXIgTEVEICg9IHNhdGEgY2gxIExFRCkgIChsb3ctYWN0aXZlKQotCSAgfCAgMyB8IE91dCB8IC8vdW5rbm93bi8vCi0JICB8ICA0IHwgT3V0IHwgcG93ZXIgYnV0dG9uIExFRCAobG93LWFjdGl2ZSwgdG9nZXRoZXIgd2l0aCBwaW4gIzUpCi0JICB8ICA1IHwgT3V0IHwgcG93ZXIgYnV0dG9uIExFRCAobG93LWFjdGl2ZSwgdG9nZXRoZXIgd2l0aCBwaW4gIzQpCi0JICB8ICA2IHwgSW4gIHwgR01UIEc3NTEtMmYgb3ZlcnRlbXAuIHNodXRkb3duIHNpZ25hbCAobG93LWFjdGl2ZSkKLQkgIHwgIDcgfCBJbiAgfCBNNDFUODAgbklSUS9PVVQvU1FXIHNpZ25hbAotCSAgfCAgOCB8IE91dCB8IHRyaWdnZXJzIHBvd2VyIG9mZiAoaGlnaC1hY3RpdmUpCi0JICB8ICA5IHwgSW4gIHwgcG93ZXIgYnV0dG9uIHN3aXRjaCAobG93LWFjdGl2ZSkKLQkgIHwgMTAgfCBJbiAgfCByZXNldCBidXR0b24gc3dpdGNoIChsb3ctYWN0aXZlKQotCSAgfCAxMSB8IE91dCB8IC8vdW5rbm93bi8vCi0JICB8IDEyIHwgT3V0IHwgLy91bmtub3duLy8KLQkgIHwgMTMgfCBPdXQgfCAvL3Vua25vd24vLwotCSAgfCAxNCB8IE91dCB8IC8vdW5rbm93bi8vCi0JICB8IDE1IHwgT3V0IHwgLy91bmtub3duLy8KLQkqLwotCW9yaW9uNXhfZ3Bpb19zZXRfdmFsaWRfcGlucygweDA3ZjYpOwotCi0JLyogcmVnaXN0ZXIgZG5zMzIzIHNwZWNpZmljIHBvd2VyLW9mZiBtZXRob2QgKi8KLQlpZiAoKGdwaW9fcmVxdWVzdChETlMzMjNfR1BJT19QT1dFUl9PRkYsICJQT1dFUk9GRiIpICE9IDApCi0JICAgIHx8IChncGlvX2RpcmVjdGlvbl9vdXRwdXQoRE5TMzIzX0dQSU9fUE9XRVJfT0ZGLCAwKSAhPSAwKSkKLQkJcHJfZXJyKCJETlMzMjM6IGZhaWxlZCB0byBzZXR1cCBwb3dlci1vZmYgR1BJT1xuIik7Ci0KLQlwbV9wb3dlcl9vZmYgPSBkbnMzMjNfcG93ZXJfb2ZmOwotCi0JLyogcmVnaXN0ZXIgZmxhc2ggYW5kIG90aGVyIHBsYXRmb3JtIGRldmljZXMgKi8KLQlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhkbnMzMjNfcGxhdF9kZXZpY2VzLAotCQkJICAgICBBUlJBWV9TSVpFKGRuczMyM19wbGF0X2RldmljZXMpKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmRuczMyM19idXR0b25fZGV2aWNlKTsKIAogCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsIGRuczMyM19pMmNfZGV2aWNlcywKIAkJCQlBUlJBWV9TSVpFKGRuczMyM19pMmNfZGV2aWNlcykpOwogCi0Jb3Jpb241eF9ldGhfaW5pdCgmZG5zMzIzX2V0aF9kYXRhKTsKKwkvKiByZWdpc3RlciBkbnMzMjMgc3BlY2lmaWMgcG93ZXItb2ZmIG1ldGhvZCAqLworCWlmIChncGlvX3JlcXVlc3QoRE5TMzIzX0dQSU9fUE9XRVJfT0ZGLCAiUE9XRVJPRkYiKSAhPSAwIHx8CisJICAgIGdwaW9fZGlyZWN0aW9uX291dHB1dChETlMzMjNfR1BJT19QT1dFUl9PRkYsIDApICE9IDApCisJCXByX2VycigiRE5TMzIzOiBmYWlsZWQgdG8gc2V0dXAgcG93ZXItb2ZmIEdQSU9cbiIpOworCXBtX3Bvd2VyX29mZiA9IGRuczMyM19wb3dlcl9vZmY7CiB9CiAKIC8qIFdhcm5pbmc6IEQtTGluayB1c2VzIGEgd3JvbmcgbWFjaC10eXBlICg9NTI2KSBpbiB0aGVpciBib290bG9hZGVyICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZ3Bpby5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2dwaW8uYwppbmRleCA4MTA4YzMxLi5kMDk3OTc5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZ3Bpby5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9ncGlvLmMKQEAgLTI0LDkgKzI0LDEyIEBACiBzdGF0aWMgdW5zaWduZWQgbG9uZyBncGlvX3ZhbGlkW0JJVFNfVE9fTE9OR1MoR1BJT19NQVgpXTsKIHN0YXRpYyBjb25zdCBjaGFyICpncGlvX2xhYmVsW0dQSU9fTUFYXTsgIC8qIG5vbiBudWxsIGZvciBhbGxvY2F0ZWQgR1BJT3MgKi8KIAotdm9pZCBfX2luaXQgb3Jpb241eF9ncGlvX3NldF92YWxpZF9waW5zKHUzMiBwaW5zKQordm9pZCBfX2luaXQgb3Jpb241eF9ncGlvX3NldF92YWxpZCh1bnNpZ25lZCBwaW4sIGludCB2YWxpZCkKIHsKLQlncGlvX3ZhbGlkWzBdID0gcGluczsKKwlpZiAodmFsaWQpCisJCV9fc2V0X2JpdChwaW4sIGdwaW9fdmFsaWQpOworCWVsc2UKKwkJX19jbGVhcl9iaXQocGluLCBncGlvX3ZhbGlkKTsKIH0KIAogLyoKQEAgLTkzLDEwICs5NiwxMCBAQAogewogCWludCB2YWwsIG1hc2sgPSAxIDw8IHBpbjsKIAotCWlmIChvcmlvbjV4X3JlYWQoR1BJT19JT19DT05GKSAmIG1hc2spCi0JCXZhbCA9IG9yaW9uNXhfcmVhZChHUElPX0RBVEFfSU4pIF4gb3Jpb241eF9yZWFkKEdQSU9fSU5fUE9MKTsKKwlpZiAocmVhZGwoR1BJT19JT19DT05GKSAmIG1hc2spCisJCXZhbCA9IHJlYWRsKEdQSU9fREFUQV9JTikgXiByZWFkbChHUElPX0lOX1BPTCk7CiAJZWxzZQotCQl2YWwgPSBvcmlvbjV4X3JlYWQoR1BJT19PVVQpOworCQl2YWwgPSByZWFkbChHUElPX09VVCk7CiAKIAlyZXR1cm4gdmFsICYgbWFzazsKIH0KQEAgLTE4OCwzOSArMTkxLDM5IEBACiAJCQlwcmludGsoIkdQSU8sIGZyZWVcbiIpOwogCQl9IGVsc2UgewogCQkJcHJpbnRrKCJHUElPLCB1c2VkIGJ5ICVzLCAiLCBncGlvX2xhYmVsW2ldKTsKLQkJCWlmIChvcmlvbjV4X3JlYWQoR1BJT19JT19DT05GKSAmICgxIDw8IGkpKSB7CisJCQlpZiAocmVhZGwoR1BJT19JT19DT05GKSAmICgxIDw8IGkpKSB7CiAJCQkJcHJpbnRrKCJpbnB1dCwgYWN0aXZlICVzLCBsZXZlbCAlcywgZWRnZSAlc1xuIiwKLQkJCQkoKG9yaW9uNXhfcmVhZChHUElPX0lOX1BPTCkgPj4gaSkgJiAxKSA/ICJsb3ciIDogImhpZ2giLAotCQkJCSgob3Jpb241eF9yZWFkKEdQSU9fTEVWRUxfTUFTSykgPj4gaSkgJiAxKSA/ICJlbmFibGVkIiA6ICJtYXNrZWQiLAotCQkJCSgob3Jpb241eF9yZWFkKEdQSU9fRURHRV9NQVNLKSA+PiBpKSAmIDEpID8gImVuYWJsZWQiIDogIm1hc2tlZCIpOworCQkJCSgocmVhZGwoR1BJT19JTl9QT0wpID4+IGkpICYgMSkgPyAibG93IiA6ICJoaWdoIiwKKwkJCQkoKHJlYWRsKEdQSU9fTEVWRUxfTUFTSykgPj4gaSkgJiAxKSA/ICJlbmFibGVkIiA6ICJtYXNrZWQiLAorCQkJCSgocmVhZGwoR1BJT19FREdFX01BU0spID4+IGkpICYgMSkgPyAiZW5hYmxlZCIgOiAibWFza2VkIik7CiAJCQl9IGVsc2UgewotCQkJCXByaW50aygib3V0cHV0LCB2YWw9JWRcbiIsIChvcmlvbjV4X3JlYWQoR1BJT19PVVQpID4+IGkpICYgMSk7CisJCQkJcHJpbnRrKCJvdXRwdXQsIHZhbD0lZFxuIiwgKHJlYWRsKEdQSU9fT1VUKSA+PiBpKSAmIDEpOwogCQkJfQogCQl9CiAJfQogCiAJcHJpbnRrKEtFUk5fREVCVUcgIk1QUF8wXzdfQ1RSTCAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlNUFBfMF83X0NUUkwsIG9yaW9uNXhfcmVhZChNUFBfMF83X0NUUkwpKTsKKwkJCQlNUFBfMF83X0NUUkwsIHJlYWRsKE1QUF8wXzdfQ1RSTCkpOwogCXByaW50ayhLRVJOX0RFQlVHICJNUFBfOF8xNV9DVFJMICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCU1QUF84XzE1X0NUUkwsIG9yaW9uNXhfcmVhZChNUFBfOF8xNV9DVFJMKSk7CisJCQkJTVBQXzhfMTVfQ1RSTCwgcmVhZGwoTVBQXzhfMTVfQ1RSTCkpOwogCXByaW50ayhLRVJOX0RFQlVHICJNUFBfMTZfMTlfQ1RSTCAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlNUFBfMTZfMTlfQ1RSTCwgb3Jpb241eF9yZWFkKE1QUF8xNl8xOV9DVFJMKSk7CisJCQkJTVBQXzE2XzE5X0NUUkwsIHJlYWRsKE1QUF8xNl8xOV9DVFJMKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIk1QUF9ERVZfQ1RSTCAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlNUFBfREVWX0NUUkwsIG9yaW9uNXhfcmVhZChNUFBfREVWX0NUUkwpKTsKKwkJCQlNUFBfREVWX0NUUkwsIHJlYWRsKE1QUF9ERVZfQ1RSTCkpOwogCXByaW50ayhLRVJOX0RFQlVHICJHUElPX09VVCAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlHUElPX09VVCwgb3Jpb241eF9yZWFkKEdQSU9fT1VUKSk7CisJCQkJR1BJT19PVVQsIHJlYWRsKEdQSU9fT1VUKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIkdQSU9fSU9fQ09ORiAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlHUElPX0lPX0NPTkYsIG9yaW9uNXhfcmVhZChHUElPX0lPX0NPTkYpKTsKKwkJCQlHUElPX0lPX0NPTkYsIHJlYWRsKEdQSU9fSU9fQ09ORikpOwogCXByaW50ayhLRVJOX0RFQlVHICJHUElPX0JMSU5LX0VOICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCUdQSU9fQkxJTktfRU4sIG9yaW9uNXhfcmVhZChHUElPX0JMSU5LX0VOKSk7CisJCQkJR1BJT19CTElOS19FTiwgcmVhZGwoR1BJT19CTElOS19FTikpOwogCXByaW50ayhLRVJOX0RFQlVHICJHUElPX0lOX1BPTCAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlHUElPX0lOX1BPTCwgb3Jpb241eF9yZWFkKEdQSU9fSU5fUE9MKSk7CisJCQkJR1BJT19JTl9QT0wsIHJlYWRsKEdQSU9fSU5fUE9MKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIkdQSU9fREFUQV9JTiAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlHUElPX0RBVEFfSU4sIG9yaW9uNXhfcmVhZChHUElPX0RBVEFfSU4pKTsKKwkJCQlHUElPX0RBVEFfSU4sIHJlYWRsKEdQSU9fREFUQV9JTikpOwogCXByaW50ayhLRVJOX0RFQlVHICJHUElPX0xFVkVMX01BU0sgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJR1BJT19MRVZFTF9NQVNLLCBvcmlvbjV4X3JlYWQoR1BJT19MRVZFTF9NQVNLKSk7CisJCQkJR1BJT19MRVZFTF9NQVNLLCByZWFkbChHUElPX0xFVkVMX01BU0spKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiR1BJT19FREdFX0NBVVNFICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCUdQSU9fRURHRV9DQVVTRSwgb3Jpb241eF9yZWFkKEdQSU9fRURHRV9DQVVTRSkpOworCQkJCUdQSU9fRURHRV9DQVVTRSwgcmVhZGwoR1BJT19FREdFX0NBVVNFKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIkdQSU9fRURHRV9NQVNLICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCUdQSU9fRURHRV9NQVNLLCBvcmlvbjV4X3JlYWQoR1BJT19FREdFX01BU0spKTsKKwkJCQlHUElPX0VER0VfTUFTSywgcmVhZGwoR1BJT19FREdFX01BU0spKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9pcnEuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9pcnEuYwppbmRleCBkZDIxZjM4Li5lMmEwMDg0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvaXJxLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2lycS5jCkBAIC04Miw3ICs4Miw3IEBACiAJaW50IHBpbiA9IGlycV90b19ncGlvKGlycSk7CiAJc3RydWN0IGlycV9kZXNjICpkZXNjOwogCi0JaWYgKChvcmlvbjV4X3JlYWQoR1BJT19JT19DT05GKSAmICgxIDw8IHBpbikpID09IDApIHsKKwlpZiAoKHJlYWRsKEdQSU9fSU9fQ09ORikgJiAoMSA8PCBwaW4pKSA9PSAwKSB7CiAJCXByaW50ayhLRVJOX0VSUiAib3Jpb241eF9ncGlvX3NldF9pcnFfdHlwZSBmYWlsZWQgIgogCQkJCSIoaXJxICVkLCBwaW4gJWQpLlxuIiwgaXJxLCBwaW4pOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTExNyw3ICsxMTcsNyBAQAogCQkvKgogCQkgKiBzZXQgaW5pdGlhbCBwb2xhcml0eSBiYXNlZCBvbiBjdXJyZW50IGlucHV0IGxldmVsCiAJCSAqLwotCQlpZiAoKG9yaW9uNXhfcmVhZChHUElPX0lOX1BPTCkgXiBvcmlvbjV4X3JlYWQoR1BJT19EQVRBX0lOKSkKKwkJaWYgKChyZWFkbChHUElPX0lOX1BPTCkgXiByZWFkbChHUElPX0RBVEFfSU4pKQogCQkgICAgJiAoMSA8PCBwaW4pKQogCQkJb3Jpb241eF9zZXRiaXRzKEdQSU9fSU5fUE9MLCAoMSA8PCBwaW4pKTsgLyogZmFsbGluZyAqLwogCQllbHNlCkBAIC0xNDksOCArMTQ5LDggQEAKIAogCUJVR19PTihpcnEgPCBJUlFfT1JJT041WF9HUElPXzBfNyB8fCBpcnEgPiBJUlFfT1JJT041WF9HUElPXzI0XzMxKTsKIAlvZmZzID0gKGlycSAtIElSUV9PUklPTjVYX0dQSU9fMF83KSAqIDg7Ci0JY2F1c2UgPSAob3Jpb241eF9yZWFkKEdQSU9fREFUQV9JTikgJiBvcmlvbjV4X3JlYWQoR1BJT19MRVZFTF9NQVNLKSkgfAotCQkob3Jpb241eF9yZWFkKEdQSU9fRURHRV9DQVVTRSkgJiBvcmlvbjV4X3JlYWQoR1BJT19FREdFX01BU0spKTsKKwljYXVzZSA9IChyZWFkbChHUElPX0RBVEFfSU4pICYgcmVhZGwoR1BJT19MRVZFTF9NQVNLKSkgfAorCQkocmVhZGwoR1BJT19FREdFX0NBVVNFKSAmIHJlYWRsKEdQSU9fRURHRV9NQVNLKSk7CiAKIAlmb3IgKHBpbiA9IG9mZnM7IHBpbiA8IG9mZnMgKyA4OyBwaW4rKykgewogCQlpZiAoY2F1c2UgJiAoMSA8PCBwaW4pKSB7CkBAIC0xNTgsOSArMTU4LDkgQEAKIAkJCWRlc2MgPSBpcnFfZGVzYyArIGlycTsKIAkJCWlmICgoZGVzYy0+c3RhdHVzICYgSVJRX1RZUEVfU0VOU0VfTUFTSykgPT0gSVJRVF9CT1RIRURHRSkgewogCQkJCS8qIFN3YXAgcG9sYXJpdHkgKHJhY2Ugd2l0aCBHUElPIGxpbmUpICovCi0JCQkJdTMyIHBvbGFyaXR5ID0gb3Jpb241eF9yZWFkKEdQSU9fSU5fUE9MKTsKKwkJCQl1MzIgcG9sYXJpdHkgPSByZWFkbChHUElPX0lOX1BPTCk7CiAJCQkJcG9sYXJpdHkgXj0gMSA8PCBwaW47Ci0JCQkJb3Jpb241eF93cml0ZShHUElPX0lOX1BPTCwgcG9sYXJpdHkpOworCQkJCXdyaXRlbChwb2xhcml0eSwgR1BJT19JTl9QT0wpOwogCQkJfQogCQkJZGVzY19oYW5kbGVfaXJxKGlycSwgZGVzYyk7CiAJCX0KQEAgLTE3NSw5ICsxNzUsOSBAQAogCS8qCiAJICogTWFzayBhbmQgY2xlYXIgR1BJTyBJUlEgaW50ZXJydXB0cwogCSAqLwotCW9yaW9uNXhfd3JpdGUoR1BJT19MRVZFTF9NQVNLLCAweDApOwotCW9yaW9uNXhfd3JpdGUoR1BJT19FREdFX01BU0ssIDB4MCk7Ci0Jb3Jpb241eF93cml0ZShHUElPX0VER0VfQ0FVU0UsIDB4MCk7CisJd3JpdGVsKDB4MCwgR1BJT19MRVZFTF9NQVNLKTsKKwl3cml0ZWwoMHgwLCBHUElPX0VER0VfTUFTSyk7CisJd3JpdGVsKDB4MCwgR1BJT19FREdFX0NBVVNFKTsKIAogCS8qCiAJICogUmVnaXN0ZXIgY2hhaW5lZCBsZXZlbCBoYW5kbGVycyBmb3IgR1BJTyBJUlFzIGJ5IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgva3Vyb2JveF9wcm8tc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9rdXJvYm94X3Byby1zZXR1cC5jCmluZGV4IGY1MDc0YjguLjg0ZmVhYzQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9rdXJvYm94X3Byby1zZXR1cC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9rdXJvYm94X3Byby1zZXR1cC5jCkBAIC0xMywxMCArMTMsMTIgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL25hbmQuaD4KICNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9yZWcuaD4KICNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KICNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9ncGlvLmg+CkBAIC0yNSw2ICsyNyw3IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgogI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaD4KICNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBLVVJPQk9YLVBSTyBJbmZvCkBAIC01MywxMyArNTYsMTEgQEAKIAkJLm5hbWUJPSAidUltYWdlIiwKIAkJLm9mZnNldAk9IDAsCiAJCS5zaXplCT0gU1pfNE0sCi0JfSwKLQl7CisJfSwgewogCQkubmFtZQk9ICJyb290ZnMiLAogCQkub2Zmc2V0CT0gU1pfNE0sCiAJCS5zaXplCT0gU1pfNjRNLAotCX0sCi0JeworCX0sIHsKIAkJLm5hbWUJPSAiZXh0cmEiLAogCQkub2Zmc2V0CT0gU1pfNE0gKyBTWl82NE0sCiAJCS5zaXplCT0gU1pfMjU2TSAtIChTWl80TSArIFNaXzY0TSksCkBAIC0xMzIsOCArMTMzLDYgQEAKIAkvKgogCSAqIFBDSSBpc24ndCB1c2VkIG9uIHRoZSBLdXJvCiAJICovCi0JcHJpbnRrKEtFUk5fRVJSICJrdXJvYm94X3Byb19wY2lfbWFwX2lycSBmYWlsZWQsIHVua25vd24gYnVzXG4iKTsKLQogCXJldHVybiAtMTsKIH0KIApAQCAtMTYxLDcgKzE2MCw2IEBACiAKIHN0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBrdXJvYm94X3Byb19ldGhfZGF0YSA9IHsKIAkucGh5X2FkZHIJPSA4LAotCS5mb3JjZV9waHlfYWRkciA9IDEsCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE3NSwxMiArMTczLDE2OSBAQAogICogU0FUQQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSBrdXJvYm94X3Byb19zYXRhX2RhdGEgPSB7Ci0JLm5fcG9ydHMgICAgICAgID0gMiwKKwkubl9wb3J0cwk9IDIsCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEt1cm9ib3ggUHJvIHNwZWNpZmljIHBvd2VyIG9mZiBtZXRob2QgdmlhIFVBUlQxLWF0dGFjaGVkIG1pY3JvY29udHJvbGxlcgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVUFSVDFfUkVHKHgpCShVQVJUMV9WSVJUX0JBU0UgKyAoKFVBUlRfIyN4KSA8PCAyKSkKKworc3RhdGljIGludCBrdXJvYm94X3Byb19taWNvbnJlYWQodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJaW50IGk7CisJaW50IHRpbWVvdXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworCQl0aW1lb3V0ID0gMTA7CisKKwkJd2hpbGUgKCEocmVhZGwoVUFSVDFfUkVHKExTUikpICYgVUFSVF9MU1JfRFIpKSB7CisJCQlpZiAoLS10aW1lb3V0ID09IDApCisJCQkJYnJlYWs7CisJCQl1ZGVsYXkoMTAwMCk7CisJCX0KKworCQlpZiAodGltZW91dCA9PSAwKQorCQkJYnJlYWs7CisJCWJ1ZltpXSA9IHJlYWRsKFVBUlQxX1JFRyhSWCkpOworCX0KKworCS8qIHJldHVybiByZWFkIGJ5dGVzICovCisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyBpbnQga3Vyb2JveF9wcm9fbWljb253cml0ZShjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCkKK3sKKwlpbnQgaSA9IDA7CisKKwl3aGlsZSAoY291bnQtLSkgeworCQl3aGlsZSAoIShyZWFkbChVQVJUMV9SRUcoTFNSKSkgJiBVQVJUX0xTUl9USFJFKSkKKwkJCWJhcnJpZXIoKTsKKwkJd3JpdGVsKGJ1ZltpKytdLCBVQVJUMV9SRUcoVFgpKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBrdXJvYm94X3Byb19taWNvbnNlbmQoY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGNvdW50KQoreworCWludCBpOworCXVuc2lnbmVkIGNoYXIgY2hlY2tzdW0gPSAwOworCXVuc2lnbmVkIGNoYXIgcmVjdl9idWZbNDBdOworCXVuc2lnbmVkIGNoYXIgc2VuZF9idWZbNDBdOworCXVuc2lnbmVkIGNoYXIgY29ycmVjdF9hY2tbM107CisJaW50IHJldHJ5ID0gMjsKKworCS8qIEdlbmVyYXRlIGNoZWNrc3VtICovCisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCisJCWNoZWNrc3VtIC09ICBkYXRhW2ldOworCisJZG8geworCQkvKiBTZW5kIGRhdGEgKi8KKwkJa3Vyb2JveF9wcm9fbWljb253cml0ZShkYXRhLCBjb3VudCk7CisKKwkJLyogc2VuZCBjaGVja3N1bSAqLworCQlrdXJvYm94X3Byb19taWNvbndyaXRlKCZjaGVja3N1bSwgMSk7CisKKwkJaWYgKGt1cm9ib3hfcHJvX21pY29ucmVhZChyZWN2X2J1Ziwgc2l6ZW9mKHJlY3ZfYnVmKSkgPD0gMykgeworCQkJcHJpbnRrKEtFUk5fRVJSICI+JXM6IHJlY2VpdmUgZmFpbGVkLlxuIiwgX19mdW5jX18pOworCisJCQkvKiBzZW5kIHByZWFtYmxlIHRvIGNsZWFyIHRoZSByZWNlaXZlIGJ1ZmZlciAqLworCQkJbWVtc2V0KCZzZW5kX2J1ZiwgMHhmZiwgc2l6ZW9mKHNlbmRfYnVmKSk7CisJCQlrdXJvYm94X3Byb19taWNvbndyaXRlKHNlbmRfYnVmLCBzaXplb2Yoc2VuZF9idWYpKTsKKworCQkJLyogbWFrZSBkdW1teSByZWFkcyAqLworCQkJbWRlbGF5KDEwMCk7CisJCQlrdXJvYm94X3Byb19taWNvbnJlYWQocmVjdl9idWYsIHNpemVvZihyZWN2X2J1ZikpOworCQl9IGVsc2UgeworCQkJLyogR2VuZXJhdGUgZXhwZWN0ZWQgYWNrICovCisJCQljb3JyZWN0X2Fja1swXSA9IDB4MDE7CisJCQljb3JyZWN0X2Fja1sxXSA9IGRhdGFbMV07CisJCQljb3JyZWN0X2Fja1syXSA9IDB4MDA7CisKKwkJCS8qIGNoZWNrc3VtIENoZWNrICovCisJCQlpZiAoKHJlY3ZfYnVmWzBdICsgcmVjdl9idWZbMV0gKyByZWN2X2J1ZlsyXSArCisJCQkgICAgIHJlY3ZfYnVmWzNdKSAmIDB4RkYpIHsKKwkJCQlwcmludGsoS0VSTl9FUlIgIj4lczogQ2hlY2tzdW0gRXJyb3IgOiAiCisJCQkJCSJSZWNlaXZlZCBkYXRhWyUwMngsICUwMngsICUwMngsICUwMnhdIgorCQkJCQkiXG4iLCBfX2Z1bmNfXywgcmVjdl9idWZbMF0sCisJCQkJCXJlY3ZfYnVmWzFdLCByZWN2X2J1ZlsyXSwgcmVjdl9idWZbM10pOworCQkJfSBlbHNlIHsKKwkJCQkvKiBDaGVjayBSZWNlaXZlZCBEYXRhICovCisJCQkJaWYgKGNvcnJlY3RfYWNrWzBdID09IHJlY3ZfYnVmWzBdICYmCisJCQkJICAgIGNvcnJlY3RfYWNrWzFdID09IHJlY3ZfYnVmWzFdICYmCisJCQkJICAgIGNvcnJlY3RfYWNrWzJdID09IHJlY3ZfYnVmWzJdKSB7CisJCQkJCS8qIEludGVydmFsIGZvciBuZXh0IGNvbW1hbmQgKi8KKwkJCQkJbWRlbGF5KDEwKTsKKworCQkJCQkvKiBSZWNlaXZlIEFDSyAqLworCQkJCQlyZXR1cm4gMDsKKwkJCQl9CisJCQl9CisJCQkvKiBSZWNlaXZlZCBOQUsgb3IgaWxsZWdhbCBEYXRhICovCisJCQlwcmludGsoS0VSTl9FUlIgIj4lczogRXJyb3IgOiBOQUsgb3IgSWxsZWdhbCBEYXRhICIKKwkJCQkJIlJlY2VpdmVkXG4iLCBfX2Z1bmNfXyk7CisJCX0KKwl9IHdoaWxlIChyZXRyeS0tKTsKKworCS8qIEludGVydmFsIGZvciBuZXh0IGNvbW1hbmQgKi8KKwltZGVsYXkoMTApOworCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgdm9pZCBrdXJvYm94X3Byb19wb3dlcl9vZmYodm9pZCkKK3sKKwljb25zdCB1bnNpZ25lZCBjaGFyIHdhdGNoZG9na2lsbFtdCT0gezB4MDEsIDB4MzUsIDB4MDB9OworCWNvbnN0IHVuc2lnbmVkIGNoYXIgc2h1dGRvd253YWl0W10JPSB7MHgwMCwgMHgwY307CisJY29uc3QgdW5zaWduZWQgY2hhciBwb3dlcm9mZltdCQk9IHsweDAwLCAweDA2fTsKKwkvKiAzODQwMCBiYXVkIGRpdmlzb3IgKi8KKwljb25zdCB1bnNpZ25lZCBkaXZpc29yID0gKChPUklPTjVYX1RDTEsgKyAoOCAqIDM4NDAwKSkgLyAoMTYgKiAzODQwMCkpOworCisJcHJfaW5mbygiJXM6IHRyaWdnZXJpbmcgcG93ZXItb2ZmLi4uXG4iLCBfX2Z1bmNfXyk7CisKKwkvKiBoaWphY2sgdWFydDEgYW5kIHJlc2V0IGludG8gc2FuZSBzdGF0ZSAoMzg0MDAsOG4xLGV2ZW4gcGFyaXR5KSAqLworCXdyaXRlbCgweDgzLCBVQVJUMV9SRUcoTENSKSk7CisJd3JpdGVsKGRpdmlzb3IgJiAweGZmLCBVQVJUMV9SRUcoRExMKSk7CisJd3JpdGVsKChkaXZpc29yID4+IDgpICYgMHhmZiwgVUFSVDFfUkVHKERMTSkpOworCXdyaXRlbCgweDFiLCBVQVJUMV9SRUcoTENSKSk7CisJd3JpdGVsKDB4MDAsIFVBUlQxX1JFRyhJRVIpKTsKKwl3cml0ZWwoMHgwNywgVUFSVDFfUkVHKEZDUikpOworCXdyaXRlbCgweDAwLCBVQVJUMV9SRUcoTUNSKSk7CisKKwkvKiBTZW5kIHRoZSBjb21tYW5kcyB0byBzaHV0ZG93biB0aGUgS3Vyb2JveCBQcm8gKi8KKwlrdXJvYm94X3Byb19taWNvbnNlbmQod2F0Y2hkb2draWxsLCBzaXplb2Yod2F0Y2hkb2draWxsKSkgOworCWt1cm9ib3hfcHJvX21pY29uc2VuZChzaHV0ZG93bndhaXQsIHNpemVvZihzaHV0ZG93bndhaXQpKSA7CisJa3Vyb2JveF9wcm9fbWljb25zZW5kKHBvd2Vyb2ZmLCBzaXplb2YocG93ZXJvZmYpKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBHZW5lcmFsIFNldHVwCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSBrdXJvYm94X3Byb19tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9VTlVTRUQgfSwKKwl7ICAxLCBNUFBfVU5VU0VEIH0sCisJeyAgMiwgTVBQX0dQSU8gfSwJCS8qIEdQSU8gTWljb24gKi8KKwl7ICAzLCBNUFBfR1BJTyB9LAkJLyogR1BJTyBSdGMgKi8KKwl7ICA0LCBNUFBfVU5VU0VEIH0sCisJeyAgNSwgTVBQX1VOVVNFRCB9LAorCXsgIDYsIE1QUF9OQU5EIH0sCQkvKiBOQU5EIEZsYXNoIFJFbiAqLworCXsgIDcsIE1QUF9OQU5EIH0sCQkvKiBOQU5EIEZsYXNoIFdFbiAqLworCXsgIDgsIE1QUF9VTlVTRUQgfSwKKwl7ICA5LCBNUFBfVU5VU0VEIH0sCisJeyAxMCwgTVBQX1VOVVNFRCB9LAorCXsgMTEsIE1QUF9VTlVTRUQgfSwKKwl7IDEyLCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBwcmVzZW5jZSAqLworCXsgMTMsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAxIHByZXNlbmNlICovCisJeyAxNCwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDAgYWN0aXZlICovCisJeyAxNSwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgYWN0aXZlICovCisJeyAxNiwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxIFJYRCAqLworCXsgMTcsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBUWEQgKi8KKwl7IDE4LCBNUFBfVUFSVCB9LAkJLyogVUFSVDEgQ1RTbiAqLworCXsgMTksIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBSVFNuICovCisJeyAtMSB9LAorfTsKIAogc3RhdGljIHZvaWQgX19pbml0IGt1cm9ib3hfcHJvX2luaXQodm9pZCkKIHsKQEAgLTE4OSw0NiArMzQ0LDMzIEBACiAJICovCiAJb3Jpb241eF9pbml0KCk7CiAKLQkvKgotCSAqIFNldHVwIHRoZSBDUFUgYWRkcmVzcyBkZWNvZGUgd2luZG93cyBmb3Igb3VyIGRldmljZXMKLQkgKi8KLQlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihLVVJPQk9YX1BST19OT1JfQk9PVF9CQVNFLAotCQkJCUtVUk9CT1hfUFJPX05PUl9CT09UX1NJWkUpOwotCW9yaW9uNXhfc2V0dXBfZGV2MF93aW4oS1VST0JPWF9QUk9fTkFORF9CQVNFLCBLVVJPQk9YX1BST19OQU5EX1NJWkUpOworCW9yaW9uNXhfbXBwX2NvbmYoa3Vyb2JveF9wcm9fbXBwX21vZGVzKTsKIAogCS8qCi0JICogT3BlbiBhIHNwZWNpYWwgYWRkcmVzcyBkZWNvZGUgd2luZG93cyBmb3IgdGhlIFBDSWUgV0EuCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgogCSAqLwotCW9yaW9uNXhfc2V0dXBfcGNpZV93YV93aW4oT1JJT041WF9QQ0lFX1dBX1BIWVNfQkFTRSwKLQkJCQlPUklPTjVYX1BDSUVfV0FfU0laRSk7Ci0KLQkvKgotCSAqIFNldHVwIE11bHRpcGxleGluZyBQaW5zIC0tCi0JICogTVBQWzAtMV0gTm90IHVzZWQKLQkgKiBNUFBbMl0gR1BJTyBNaWNvbgotCSAqIE1QUFszXSBHUElPIFJUQwotCSAqIE1QUFs0LTVdIE5vdCB1c2VkCi0JICogTVBQWzZdIE5hbmQgRmxhc2ggUkVuCi0JICogTVBQWzddIE5hbmQgRmxhc2ggV0VuCi0JICogTVBQWzgtMTFdIE5vdCB1c2VkCi0JICogTVBQWzEyXSBTQVRBIDAgcHJlc2VuY2UgSW5kaWNhdGlvbgotCSAqIE1QUFsxM10gU0FUQSAxIHByZXNlbmNlIEluZGljYXRpb24KLQkgKiBNUFBbMTRdIFNBVEEgMCBhY3RpdmUgSW5kaWNhdGlvbgotCSAqIE1QUFsxNV0gU0FUQSAxIGFjdGl2ZSBpbmRpY2F0aW9uCi0JICogTVBQWzE2LTE5XSBOb3QgdXNlZAotCSAqLwotCW9yaW9uNXhfd3JpdGUoTVBQXzBfN19DVFJMLCAweDQ0MjIwMDAzKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF84XzE1X0NUUkwsIDB4NTU1NTAwMDApOwotCW9yaW9uNXhfd3JpdGUoTVBQXzE2XzE5X0NUUkwsIDB4MCk7Ci0KLQlvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkX3BpbnMoMHgwMDAwMDAwYyk7Ci0KLQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmt1cm9ib3hfcHJvX25vcl9mbGFzaCk7Ci0JaWYgKG1hY2hpbmVfaXNfa3Vyb2JveF9wcm8oKSkKLQkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZrdXJvYm94X3Byb19uYW5kX2ZsYXNoKTsKLQlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCAma3Vyb2JveF9wcm9faTJjX3J0YywgMSk7CisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9laGNpMV9pbml0KCk7CiAJb3Jpb241eF9ldGhfaW5pdCgma3Vyb2JveF9wcm9fZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKIAlvcmlvbjV4X3NhdGFfaW5pdCgma3Vyb2JveF9wcm9fc2F0YV9kYXRhKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKwlvcmlvbjV4X3VhcnQxX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKEtVUk9CT1hfUFJPX05PUl9CT09UX0JBU0UsCisJCQkJICAgS1VST0JPWF9QUk9fTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZrdXJvYm94X3Byb19ub3JfZmxhc2gpOworCisJaWYgKG1hY2hpbmVfaXNfa3Vyb2JveF9wcm8oKSkgeworCQlvcmlvbjV4X3NldHVwX2RldjBfd2luKEtVUk9CT1hfUFJPX05BTkRfQkFTRSwKKwkJCQkgICAgICAgS1VST0JPWF9QUk9fTkFORF9TSVpFKTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZrdXJvYm94X3Byb19uYW5kX2ZsYXNoKTsKKwl9CisKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCAma3Vyb2JveF9wcm9faTJjX3J0YywgMSk7CisKKwkvKiByZWdpc3RlciBLdXJvYm94IFBybyBzcGVjaWZpYyBwb3dlci1vZmYgbWV0aG9kICovCisJcG1fcG93ZXJfb2ZmID0ga3Vyb2JveF9wcm9fcG93ZXJfb2ZmOwogfQogCiAjaWZkZWYgQ09ORklHX01BQ0hfS1VST0JPWF9QUk8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tcHAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tcHAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDhjYWRiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21wcC5jCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21wcC5jCisgKgorICogTVBQIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBPcmlvbiA1eCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisKK3N0YXRpYyBpbnQgaXNfNTE4MWwodm9pZCkKK3sKKwl1MzIgZGV2OworCXUzMiByZXY7CisKKwlvcmlvbjV4X3BjaWVfaWQoJmRldiwgJnJldik7CisKKwlyZXR1cm4gISEoZGV2ID09IE1WODhGNTE4MV9ERVZfSUQgJiYgcmV2ID49IE1WODhGNTE4MUxfUkVWX0EwKTsKK30KKworc3RhdGljIGludCBpc181MTgyKHZvaWQpCit7CisJdTMyIGRldjsKKwl1MzIgcmV2OworCisJb3Jpb241eF9wY2llX2lkKCZkZXYsICZyZXYpOworCisJcmV0dXJuICEhKGRldiA9PSBNVjg4RjUxODJfREVWX0lEKTsKK30KKworc3RhdGljIGludCBpc181MjgxKHZvaWQpCit7CisJdTMyIGRldjsKKwl1MzIgcmV2OworCisJb3Jpb241eF9wY2llX2lkKCZkZXYsICZyZXYpOworCisJcmV0dXJuICEhKGRldiA9PSBNVjg4RjUyODFfREVWX0lEKTsKK30KKworc3RhdGljIGludCBfX2luaXQgZGV0ZXJtaW5lX3R5cGVfZW5jb2RpbmcoaW50IG1wcCwgZW51bSBvcmlvbjV4X21wcF90eXBlIHR5cGUpCit7CisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBNUFBfVU5VU0VEOgorCWNhc2UgTVBQX0dQSU86CisJCWlmIChtcHAgPT0gMCkKKwkJCXJldHVybiAzOworCQlpZiAobXBwID49IDEgJiYgbXBwIDw9IDE1KQorCQkJcmV0dXJuIDA7CisJCWlmIChtcHAgPj0gMTYgJiYgbXBwIDw9IDE5KSB7CisJCQlpZiAoaXNfNTE4MigpKQorCQkJCXJldHVybiA1OworCQkJaWYgKHR5cGUgPT0gTVBQX1VOVVNFRCkKKwkJCQlyZXR1cm4gMDsKKwkJfQorCQlyZXR1cm4gLTE7CisKKwljYXNlIE1QUF9QQ0lFX1JTVF9PVVRuOgorCQlpZiAobXBwID09IDApCisJCQlyZXR1cm4gMDsKKwkJcmV0dXJuIC0xOworCisJY2FzZSBNUFBfUENJX0FSQjoKKwkJaWYgKG1wcCA+PSAwICYmIG1wcCA8PSA3KQorCQkJcmV0dXJuIDI7CisJCXJldHVybiAtMTsKKworCWNhc2UgTVBQX1BDSV9QTUVuOgorCQlpZiAobXBwID09IDIpCisJCQlyZXR1cm4gMzsKKwkJcmV0dXJuIC0xOworCisJY2FzZSBNUFBfR0lHRToKKwkJaWYgKG1wcCA+PSA4ICYmIG1wcCA8PSAxOSkKKwkJCXJldHVybiAxOworCQlyZXR1cm4gLTE7CisKKwljYXNlIE1QUF9OQU5EOgorCQlpZiAoaXNfNTE4MigpIHx8IGlzXzUyODEoKSkgeworCQkJaWYgKG1wcCA+PSA0ICYmIG1wcCA8PSA3KQorCQkJCXJldHVybiA0OworCQkJaWYgKG1wcCA+PSAxMiAmJiBtcHAgPD0gMTcpCisJCQkJcmV0dXJuIDQ7CisJCX0KKwkJcmV0dXJuIC0xOworCisJY2FzZSBNUFBfUENJX0NMSzoKKwkJaWYgKGlzXzUxODFsKCkgJiYgbXBwID49IDYgJiYgbXBwIDw9IDcpCisJCQlyZXR1cm4gNTsKKwkJcmV0dXJuIC0xOworCisJY2FzZSBNUFBfU0FUQV9MRUQ6CisJCWlmIChpc181MTgyKCkpIHsKKwkJCWlmIChtcHAgPj0gNCAmJiBtcHAgPD0gNykKKwkJCQlyZXR1cm4gNTsKKwkJCWlmIChtcHAgPj0gMTIgJiYgbXBwIDw9IDE1KQorCQkJCXJldHVybiA1OworCQl9CisJCXJldHVybiAtMTsKKworCWNhc2UgTVBQX1VBUlQ6CisJCWlmIChtcHAgPj0gMTYgJiYgbXBwIDw9IDE5KQorCQkJcmV0dXJuIDA7CisJCXJldHVybiAtMTsKKwl9CisKKwlwcmludGsoS0VSTl9JTkZPICJ1bmtub3duIE1QUCB0eXBlICVkXG4iLCB0eXBlKTsKKworCXJldHVybiAtMTsKK30KKwordm9pZCBfX2luaXQgb3Jpb241eF9tcHBfY29uZihzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSAqbW9kZSkKK3sKKwl1MzIgbXBwXzBfN19jdHJsID0gcmVhZGwoTVBQXzBfN19DVFJMKTsKKwl1MzIgbXBwXzhfMTVfY3RybCA9IHJlYWRsKE1QUF84XzE1X0NUUkwpOworCXUzMiBtcHBfMTZfMTlfY3RybCA9IHJlYWRsKE1QUF8xNl8xOV9DVFJMKTsKKworCXdoaWxlIChtb2RlLT5tcHAgPj0gMCkgeworCQl1MzIgKnJlZzsKKwkJaW50IG51bV90eXBlOworCQlpbnQgc2hpZnQ7CisKKwkJaWYgKG1vZGUtPm1wcCA+PSAwICYmIG1vZGUtPm1wcCA8PSA3KQorCQkJcmVnID0gJm1wcF8wXzdfY3RybDsKKwkJZWxzZSBpZiAobW9kZS0+bXBwID49IDggJiYgbW9kZS0+bXBwIDw9IDE1KQorCQkJcmVnID0gJm1wcF84XzE1X2N0cmw7CisJCWVsc2UgaWYgKG1vZGUtPm1wcCA+PSAxNiAmJiBtb2RlLT5tcHAgPD0gMTkpCisJCQlyZWcgPSAmbXBwXzE2XzE5X2N0cmw7CisJCWVsc2UgeworCQkJcHJpbnRrKEtFUk5fRVJSICJvcmlvbjV4X21wcF9jb25mOiBpbnZhbGlkIE1QUCAiCisJCQkJCSIoJWQpXG4iLCBtb2RlLT5tcHApOworCQkJY29udGludWU7CisJCX0KKworCQludW1fdHlwZSA9IGRldGVybWluZV90eXBlX2VuY29kaW5nKG1vZGUtPm1wcCwgbW9kZS0+dHlwZSk7CisJCWlmIChudW1fdHlwZSA8IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAib3Jpb241eF9tcHBfY29uZjogaW52YWxpZCBNUFAgIgorCQkJCQkiY29tYmluYXRpb24gKCVkLCAlZClcbiIsIG1vZGUtPm1wcCwKKwkJCQkJbW9kZS0+dHlwZSk7CisJCQljb250aW51ZTsKKwkJfQorCisJCXNoaWZ0ID0gKG1vZGUtPm1wcCAmIDcpIDw8IDI7CisJCSpyZWcgJj0gfigweGYgPDwgc2hpZnQpOworCQkqcmVnIHw9IChudW1fdHlwZSAmIDB4ZikgPDwgc2hpZnQ7CisKKwkJb3Jpb241eF9ncGlvX3NldF92YWxpZChtb2RlLT5tcHAsICEhKG1vZGUtPnR5cGUgPT0gTVBQX0dQSU8pKTsKKworCQltb2RlKys7CisJfQorCisJd3JpdGVsKG1wcF8wXzdfY3RybCwgTVBQXzBfN19DVFJMKTsKKwl3cml0ZWwobXBwXzhfMTVfY3RybCwgTVBQXzhfMTVfQ1RSTCk7CisJd3JpdGVsKG1wcF8xNl8xOV9jdHJsLCBNUFBfMTZfMTlfQ1RSTCk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXBwLmggYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXBwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwZTYxMAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tcHAuaApAQCAtMCwwICsxLDc0IEBACisjaWZuZGVmIF9fQVJDSF9PUklPTjVYX01QUF9ICisjZGVmaW5lIF9fQVJDSF9PUklPTjVYX01QUF9ICisKK2VudW0gb3Jpb241eF9tcHBfdHlwZSB7CisJLyoKKwkgKiBUaGlzIE1QUCBpcyB1bnVzZWQuCisJICovCisJTVBQX1VOVVNFRCwKKworCS8qCisJICogVGhpcyBNUFAgcGluIGlzIHVzZWQgYXMgYSBnZW5lcmljIEdQSU8gcGluLiAgVmFsaWQgZm9yCisJICogTVBQcyAwLTE1IGFuZCBkZXZpY2UgYnVzIGRhdGEgcGlucyAxNi0zMS4gIE9uIDUxODIsIGFsc28KKwkgKiB2YWxpZCBmb3IgTVBQcyAxNi0xOS4KKwkgKi8KKwlNUFBfR1BJTywKKworCS8qCisJICogVGhpcyBNUFAgaXMgdXNlZCBhcyBQQ0llX1JTVF9PVVRuIHBpbi4gIFZhbGlkIGZvcgorCSAqIE1QUCAwIG9ubHkuCisJICovCisJTVBQX1BDSUVfUlNUX09VVG4sCisKKwkvKgorCSAqIFRoaXMgTVBQIGlzIHVzZWQgYXMgUENJIGFyYml0ZXIgcGluIChSRVFuL0dOVG4pLgorCSAqIFZhbGlkIGZvciBNUFBzIDAtNyBvbmx5LgorCSAqLworCU1QUF9QQ0lfQVJCLAorCisJLyoKKwkgKiBUaGlzIE1QUCBpcyB1c2VkIGFzIFBDSV9QTUVuIHBpbi4gIFZhbGlkIGZvciBNUFAgMiBvbmx5LgorCSAqLworCU1QUF9QQ0lfUE1FbiwKKworCS8qCisJICogVGhpcyBNUFAgaXMgdXNlZCBhcyBHaWdFIGhhbGYtZHVwbGV4IChDT0wsIENSUykgb3IgR01JSQorCSAqIChSWEVSUiwgQ1JTLCBUWEVSUiwgVFhEWzc6NF0sIFJYRFs3OjRdKSBwaW4uICBWYWxpZCBmb3IKKwkgKiBNUFBzIDgtMTkgb25seS4KKwkgKi8KKwlNUFBfR0lHRSwKKworCS8qCisJICogVGhpcyBNUFAgaXMgdXNlZCBhcyBOQU5EIFJFbi9XRW4gcGluLiAgVmFsaWQgZm9yIE1QUHMKKwkgKiA0LTcgYW5kIDEyLTE3IG9ubHksIGFuZCBvbmx5IG9uIHRoZSA1MTgxbC81MTgyLzUyODEuCisJICovCisJTVBQX05BTkQsCisKKwkvKgorCSAqIFRoaXMgTVBQIGlzIHVzZWQgYXMgYSBQQ0kgY2xvY2sgb3V0cHV0IHBpbi4gIFZhbGlkIGZvcgorCSAqIE1QUHMgNi03IG9ubHksIGFuZCBvbmx5IG9uIHRoZSA1MTgxbC4KKwkgKi8KKwlNUFBfUENJX0NMSywKKworCS8qCisJICogVGhpcyBNUFAgaXMgdXNlZCBhcyBhIFNBVEEgcHJlc2VuY2UvYWN0aXZpdHkgTEVELgorCSAqIFZhbGlkIGZvciBNUFBzIDQtNyBhbmQgMTItMTUgb25seSwgYW5kIG9ubHkgb24gdGhlIDUxODIuCisJICovCisJTVBQX1NBVEFfTEVELAorCisJLyoKKwkgKiBUaGlzIE1QUCBpcyB1c2VkIGFzIFVBUlQxIFJYRC9UWEQvQ1RTbi9SVFNuIHBpbi4KKwkgKiBWYWxpZCBmb3IgTVBQcyAxNi0xOSBvbmx5LgorCSAqLworCU1QUF9VQVJULAorfTsKKworc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgeworCWludAkJCW1wcDsKKwllbnVtIG9yaW9uNXhfbXBwX3R5cGUJdHlwZTsKK307CisKK3ZvaWQgb3Jpb241eF9tcHBfY29uZihzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSAqbW9kZSk7CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXNzMi1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21zczItc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2U5ZTQwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21zczItc2V0dXAuYwpAQCAtMCwwICsxLDI3MCBAQAorLyoKKyAqIE1heHRvciBTaGFyZWQgU3RvcmFnZSBJSSBCb2FyZCBTZXR1cAorICoKKyAqIE1haW50YWluZXI6IFN5bHZlciBCcnVuZWF1IDxzeWx2ZXIuYnJ1bmVhdUBnb29nbGVtYWlsLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uCisgKiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGxpbnV4L2xlZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisKKyNkZWZpbmUgTVNTMl9OT1JfQk9PVF9CQVNFCTB4ZmY4MDAwMDAKKyNkZWZpbmUgTVNTMl9OT1JfQk9PVF9TSVpFCVNaXzI1NksKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBNYXh0b3IgU2hhcmVkIFN0b3JhZ2UgSUkgSW5mbworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBNYXh0b3IgU2hhcmVkIFN0b3JhZ2UgSUkgaGFyZHdhcmUgOgorICogLSBNYXJ2ZWxsIDg4RjUxODItQTIgQzUwMAorICogLSBNYXJ2ZWxsIDg4RTExMTEgR2lnYWJpdCBFdGhlcm5ldCBQSFkKKyAqIC0gUlRDIE00MVQ4MSAoQDB4NjgpIG9uIEkyQyBidXMKKyAqIC0gMjU2S0IgTk9SIGZsYXNoCisgKiAtIDY0TUIgb2YgUkFNCisgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAyNTZLQiBOT1IgRmxhc2ggb24gQk9PVCBEZXZpY2UKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBtc3MyX25vcl9mbGFzaF9kYXRhID0geworCS53aWR0aAkJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtc3MyX25vcl9mbGFzaF9yZXNvdXJjZSA9IHsKKwkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CQk9IE1TUzJfTk9SX0JPT1RfQkFTRSwKKwkuZW5kCQk9IE1TUzJfTk9SX0JPT1RfQkFTRSArIE1TUzJfTk9SX0JPT1RfU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtc3MyX25vcl9mbGFzaCA9IHsKKwkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm1zczJfbm9yX2ZsYXNoX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJPSAmbXNzMl9ub3JfZmxhc2hfcmVzb3VyY2UsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFBDSSBzZXR1cAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50IF9faW5pdCBtc3MyX3BjaV9tYXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNsb3QsIHU4IHBpbikKK3sKKwlpbnQgaXJxOworCisJLyoKKwkgKiBDaGVjayBmb3IgZGV2aWNlcyB3aXRoIGhhcmQtd2lyZWQgSVJRcy4KKwkgKi8KKwlpcnEgPSBvcmlvbjV4X3BjaV9tYXBfaXJxKGRldiwgc2xvdCwgcGluKTsKKwlpZiAoaXJxICE9IC0xKQorCQlyZXR1cm4gaXJxOworCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgc3RydWN0IGh3X3BjaSBtc3MyX3BjaSBfX2luaXRkYXRhID0geworCS5ucl9jb250cm9sbGVycyA9IDIsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG9yaW9uNXhfcGNpX3N5c19zZXR1cCwKKwkuc2NhbgkJPSBvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSBtc3MyX3BjaV9tYXBfaXJxLAorfTsKKworc3RhdGljIGludCBfX2luaXQgbXNzMl9wY2lfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX21zczIoKSkKKwkJcGNpX2NvbW1vbl9pbml0KCZtc3MyX3BjaSk7CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChtc3MyX3BjaV9pbml0KTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEV0aGVybmV0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIG1zczJfZXRoX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gOCwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogU0FUQQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIG1zczJfc2F0YV9kYXRhID0geworCS5uX3BvcnRzCT0gMiwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR1BJTyBidXR0b25zCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBNU1MyX0dQSU9fS0VZX1JFU0VUCTEyCisjZGVmaW5lIE1TUzJfR1BJT19LRVlfUE9XRVIJMTEKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIG1zczJfYnV0dG9uc1tdID0geworCXsKKwkJLmNvZGUJCT0gS0VZX1BPV0VSLAorCQkuZ3BpbwkJPSBNU1MyX0dQSU9fS0VZX1BPV0VSLAorCQkuZGVzYwkJPSAiUG93ZXIiLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJfSwgeworCQkuY29kZQkJPSBLRVlfUkVTVEFSVCwKKwkJLmdwaW8JCT0gTVNTMl9HUElPX0tFWV9SRVNFVCwKKwkJLmRlc2MJCT0gIlJlc2V0IiwKKwkJLmFjdGl2ZV9sb3cJPSAxLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIG1zczJfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSBtc3MyX2J1dHRvbnMsCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShtc3MyX2J1dHRvbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXNzMl9idXR0b25fZGV2aWNlID0geworCS5uYW1lCQk9ICJncGlvLWtleXMiLAorCS5pZAkJPSAtMSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbXNzMl9idXR0b25fZGF0YSwKKwl9LAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBSVEMgbTQxdDgxIG9uIEkyQyBidXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIE1TUzJfR1BJT19SVENfSVJRCTMKKworc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBfX2luaXRkYXRhIG1zczJfaTJjX3J0YyA9IHsKKwlJMkNfQk9BUkRfSU5GTygibTQxdDgxIiwgMHg2OCksCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIE1TUzIgcG93ZXIgb2ZmIG1ldGhvZAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKgorICogT24gdGhlIE1heHRvciBTaGFyZWQgU3RvcmFnZSBJSSwgdGhlIHNodXRkb3duIHByb2Nlc3MgaXMgdGhlIGZvbGxvd2luZyA6CisgKiAtIFVzZXJsYW5kIG1vZGlmaWVzIFUtYm9vdCBlbnYgdG8gdGVsbCBVLWJvb3QgdG8gZ28gaWRsZSBhdCBuZXh0IGJvb3QKKyAqIC0gVGhlIGJvYXJkIHJlYm9vdHMKKyAqIC0gVS1ib290IHN0YXJ0cyBhbmQgZ28gaW50byBhbiBpZGxlIG1vZGUgdW50aWwgdGhlIHVzZXIgcHJlc3MgInBvd2VyIgorICovCitzdGF0aWMgdm9pZCBtc3MyX3Bvd2VyX29mZih2b2lkKQoreworCXUzMiByZWc7CisKKwkvKgorCSAqIEVuYWJsZSBhbmQgaXNzdWUgc29mdCByZXNldAorCSAqLworCXJlZyA9IHJlYWRsKENQVV9SRVNFVF9NQVNLKTsKKwlyZWcgfD0gMSA8PCAyOworCXdyaXRlbChyZWcsIENQVV9SRVNFVF9NQVNLKTsKKworCXJlZyA9IHJlYWRsKENQVV9TT0ZUX1JFU0VUKTsKKwlyZWcgfD0gMTsKKwl3cml0ZWwocmVnLCBDUFVfU09GVF9SRVNFVCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsIFNldHVwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSBtc3MyX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX0dQSU8gfSwJCS8qIFBvd2VyIExFRCAqLworCXsgIDEsIE1QUF9HUElPIH0sCQkvKiBFcnJvciBMRUQgKi8KKwl7ICAyLCBNUFBfVU5VU0VEIH0sCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIFJUQyBpbnRlcnJ1cHQgKi8KKwl7ICA0LCBNUFBfR1BJTyB9LAkJLyogSEREIGluZC4gKFNpbmdsZS9EdWFsKSovCisJeyAgNSwgTVBQX0dQSU8gfSwJCS8qIEhEMCA1ViBjb250cm9sICovCisJeyAgNiwgTVBQX0dQSU8gfSwJCS8qIEhEMCAxMlYgY29udHJvbCAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiBIRDEgNVYgY29udHJvbCAqLworCXsgIDgsIE1QUF9HUElPIH0sCQkvKiBIRDEgMTJWIGNvbnRyb2wgKi8KKwl7ICA5LCBNUFBfVU5VU0VEIH0sCisJeyAxMCwgTVBQX0dQSU8gfSwJCS8qIEZhbiBjb250cm9sICovCisJeyAxMSwgTVBQX0dQSU8gfSwJCS8qIFBvd2VyIGJ1dHRvbiAqLworCXsgMTIsIE1QUF9HUElPIH0sCQkvKiBSZXNldCBidXR0b24gKi8KKwl7IDEzLCBNUFBfVU5VU0VEIH0sCisJeyAxNCwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDAgYWN0aXZlICovCisJeyAxNSwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgYWN0aXZlICovCisJeyAxNiwgTVBQX1VOVVNFRCB9LAorCXsgMTcsIE1QUF9VTlVTRUQgfSwKKwl7IDE4LCBNUFBfVU5VU0VEIH0sCisJeyAxOSwgTVBQX1VOVVNFRCB9LAorCXsgLTEgfSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBtc3MyX2luaXQodm9pZCkKK3sKKwkvKiBTZXR1cCBiYXNpYyBPcmlvbiBmdW5jdGlvbnMuIE5lZWQgdG8gYmUgY2FsbGVkIGVhcmx5LiAqLworCW9yaW9uNXhfaW5pdCgpOworCisJb3Jpb241eF9tcHBfY29uZihtc3MyX21wcF9tb2Rlcyk7CisKKwkvKgorCSAqIE1QUFsyMF0gVW51c2VkCisJICogTVBQWzIxXSBQQ0kgY2xvY2sKKwkgKiBNUFBbMjJdIFVTQiAwIG92ZXIgY3VycmVudAorCSAqIE1QUFsyM10gVVNCIDEgb3ZlciBjdXJyZW50CisJICovCisKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2VoY2kxX2luaXQoKTsKKwlvcmlvbjV4X2V0aF9pbml0KCZtc3MyX2V0aF9kYXRhKTsKKwlvcmlvbjV4X2kyY19pbml0KCk7CisJb3Jpb241eF9zYXRhX2luaXQoJm1zczJfc2F0YV9kYXRhKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKE1TUzJfTk9SX0JPT1RfQkFTRSwgTVNTMl9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm1zczJfbm9yX2ZsYXNoKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXNzMl9idXR0b25fZGV2aWNlKTsKKworCWlmIChncGlvX3JlcXVlc3QoTVNTMl9HUElPX1JUQ19JUlEsICJydGMiKSA9PSAwKSB7CisJCWlmIChncGlvX2RpcmVjdGlvbl9pbnB1dChNU1MyX0dQSU9fUlRDX0lSUSkgPT0gMCkKKwkJCW1zczJfaTJjX3J0Yy5pcnEgPSBncGlvX3RvX2lycShNU1MyX0dQSU9fUlRDX0lSUSk7CisJCWVsc2UKKwkJCWdwaW9fZnJlZShNU1MyX0dQSU9fUlRDX0lSUSk7CisJfQorCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZtc3MyX2kyY19ydGMsIDEpOworCisJLyogcmVnaXN0ZXIgbXNzMiBzcGVjaWZpYyBwb3dlci1vZmYgbWV0aG9kICovCisJcG1fcG93ZXJfb2ZmID0gbXNzMl9wb3dlcl9vZmY7Cit9CisKK01BQ0hJTkVfU1RBUlQoTVNTMiwgIk1heHRvciBTaGFyZWQgU3RvcmFnZSBJSSIpCisJLyogTWFpbnRhaW5lcjogU3lsdmVyIEJydW5lYXUgPHN5bHZlci5icnVuZWF1QGdvb2dsZW1haWwuY29tPiAqLworCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSBtc3MyX2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L212MjEyMC1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L212MjEyMC1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ZjNiMGYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXYyMTIwLXNldHVwLmMKQEAgLTAsMCArMSwyMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSGVyYmVydCBWYWxlcmlvIFJpZWRlbCA8aHZyQGdudS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIE1pY2hsbWF5ciA8dGJtQGN5cml1cy5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8bGludXgvbGVkcy5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisKKyNkZWZpbmUgTVYyMTIwX05PUl9CT09UX0JBU0UJMHhmNDAwMDAwMAorI2RlZmluZSBNVjIxMjBfTk9SX0JPT1RfU0laRQlTWl81MTJLCisKKyNkZWZpbmUgTVYyMTIwX0dQSU9fUlRDX0lSUQkzCisjZGVmaW5lIE1WMjEyMF9HUElPX0tFWV9SRVNFVAkxNworI2RlZmluZSBNVjIxMjBfR1BJT19LRVlfUE9XRVIJMTgKKyNkZWZpbmUgTVYyMTIwX0dQSU9fUE9XRVJfT0ZGCTE5CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFdGhlcm5ldAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgbXYyMTIwX2V0aF9kYXRhID0geworCS5waHlfYWRkcgk9IDgsCit9OworCitzdGF0aWMgc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSBtdjIxMjBfc2F0YV9kYXRhID0geworCS5uX3BvcnRzCT0gMiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBtdjIxMjBfcGFydGl0aW9uc1tdID0geworCXsKKwkJLm5hbWUJPSAiZmlybXdhcmUiLAorCQkuc2l6ZQk9IDB4MDAwODAwMDAsCisJCS5vZmZzZXQJPSAwLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBtdjIxMjBfbm9yX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDEsCisJLnBhcnRzCQk9IG12MjEyMF9wYXJ0aXRpb25zLAorCS5ucl9wYXJ0cwk9IEFSUkFZX1NJWkUobXYyMTIwX3BhcnRpdGlvbnMpCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12MjEyMF9ub3JfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAkJPSBNVjIxMjBfTk9SX0JPT1RfQkFTRSwKKwkuZW5kCQk9IE1WMjEyMF9OT1JfQk9PVF9CQVNFICsgTVYyMTIwX05PUl9CT09UX1NJWkUgLSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXYyMTIwX25vcl9mbGFzaCA9IHsKKwkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm12MjEyMF9ub3JfZmxhc2hfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQk9ICZtdjIxMjBfbm9yX2ZsYXNoX3Jlc291cmNlLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX2J1dHRvbiBtdjIxMjBfYnV0dG9uc1tdID0geworCXsKKwkJLmNvZGUJCT0gS0VZX1JFU1RBUlQsCisJCS5ncGlvCQk9IE1WMjEyMF9HUElPX0tFWV9SRVNFVCwKKwkJLmRlc2MJCT0gInJlc2V0IiwKKwkJLmFjdGl2ZV9sb3cJPSAxLAorCX0sIHsKKwkJLmNvZGUJCT0gS0VZX1BPV0VSLAorCQkuZ3BpbwkJPSBNVjIxMjBfR1BJT19LRVlfUE9XRVIsCisJCS5kZXNjCQk9ICJwb3dlciIsCisJCS5hY3RpdmVfbG93CT0gMSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBtdjIxMjBfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSBtdjIxMjBfYnV0dG9ucywKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKG12MjEyMF9idXR0b25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12MjEyMF9idXR0b25fZGV2aWNlID0geworCS5uYW1lCQk9ICJncGlvLWtleXMiLAorCS5pZAkJPSAtMSwKKwkubnVtX3Jlc291cmNlcwk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm12MjEyMF9idXR0b25fZGF0YSwKKwl9LAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR2VuZXJhbCBTZXR1cAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgbXYyMTIwX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX0dQSU8gfSwJCS8qIFN5cyBzdGF0dXMgTEVEICovCisJeyAgMSwgTVBQX0dQSU8gfSwJCS8qIFN5cyBlcnJvciBMRUQgKi8KKwl7ICAyLCBNUFBfR1BJTyB9LAkJLyogT3ZlclRlbXAgaW50ZXJydXB0ICovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIFJUQyBpbnRlcnJ1cHQgKi8KKwl7ICA0LCBNUFBfR1BJTyB9LAkJLyogVl9MRUQgNVYgKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogVl9MRUQgMy4zViAqLworCXsgIDYsIE1QUF9VTlVTRUQgfSwKKwl7ICA3LCBNUFBfVU5VU0VEIH0sCisJeyAgOCwgTVBQX0dQSU8gfSwJCS8qIFNBVEEgMCBmYWlsIExFRCAqLworCXsgIDksIE1QUF9HUElPIH0sCQkvKiBTQVRBIDEgZmFpbCBMRUQgKi8KKwl7IDEwLCBNUFBfVU5VU0VEIH0sCisJeyAxMSwgTVBQX1VOVVNFRCB9LAorCXsgMTIsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAwIHByZXNlbmNlICovCisJeyAxMywgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgcHJlc2VuY2UgKi8KKwl7IDE0LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBhY3RpdmUgKi8KKwl7IDE1LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMSBhY3RpdmUgKi8KKwl7IDE2LCBNUFBfVU5VU0VEIH0sCisJeyAxNywgTVBQX0dQSU8gfSwJCS8qIFJlc2V0IGJ1dHRvbiAqLworCXsgMTgsIE1QUF9HUElPIH0sCQkvKiBQb3dlciBidXR0b24gKi8KKwl7IDE5LCBNUFBfR1BJTyB9LAkJLyogUG93ZXIgb2ZmICovCisJeyAtMSB9LAorfTsKKworc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBfX2luaXRkYXRhIG12MjEyMF9pMmNfcnRjID0geworCUkyQ19CT0FSRF9JTkZPKCJwY2Y4NTYzIiwgMHg1MSksCisJLmlycQk9IDAsCit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkIG12MjEyMF9sZWRfcGluc1tdID0geworCXsKKwkJLm5hbWUJCQk9ICJtdjIxMjA6Ymx1ZTpoZWFsdGgiLAorCQkuZ3BpbwkJCT0gMCwKKwl9LAorCXsKKwkJLm5hbWUJCQk9ICJtdjIxMjA6cmVkOmhlYWx0aCIsCisJCS5ncGlvCQkJPSAxLAorCX0sCisJeworCQkubmFtZQkJCT0gIm12MjEyMDpsZWQ6YnJpZ2h0IiwKKwkJLmdwaW8JCQk9IDQsCisJCS5kZWZhdWx0X3RyaWdnZXIJPSAiZGVmYXVsdC1vbiIsCisJfSwKKwl7CisJCS5uYW1lCQkJPSAibXYyMTIwOmxlZDpkaW1tZWQiLAorCQkuZ3BpbwkJCT0gNSwKKwl9LAorCXsKKwkJLm5hbWUJCQk9ICJtdjIxMjA6cmVkOnNhdGEwIiwKKwkJLmdwaW8JCQk9IDgsCisJCS5hY3RpdmVfbG93CQk9IDEsCisJfSwKKwl7CisJCS5uYW1lCQkJPSAibXYyMTIwOnJlZDpzYXRhMSIsCisJCS5ncGlvCQkJPSA5LAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCX0sCisKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19sZWRfcGxhdGZvcm1fZGF0YSBtdjIxMjBfbGVkX2RhdGEgPSB7CisJLmxlZHMJCT0gbXYyMTIwX2xlZF9waW5zLAorCS5udW1fbGVkcwk9IEFSUkFZX1NJWkUobXYyMTIwX2xlZF9waW5zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12MjEyMF9sZWRzID0geworCS5uYW1lCT0gImxlZHMtZ3BpbyIsCisJLmlkCT0gLTEsCisJLmRldgk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbXYyMTIwX2xlZF9kYXRhLAorCX0KK307CisKK3N0YXRpYyB2b2lkIG12MjEyMF9wb3dlcl9vZmYodm9pZCkKK3sKKwlwcl9pbmZvKCIlczogdHJpZ2dlcmluZyBwb3dlci1vZmYuLi5cbiIsIF9fZnVuY19fKTsKKwlncGlvX3NldF92YWx1ZShNVjIxMjBfR1BJT19QT1dFUl9PRkYsIDApOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgbXYyMTIwX2luaXQodm9pZCkKK3sKKwkvKiBTZXR1cCBiYXNpYyBPcmlvbiBmdW5jdGlvbnMuIE5lZWQgdG8gYmUgY2FsbGVkIGVhcmx5LiAqLworCW9yaW9uNXhfaW5pdCgpOworCisJb3Jpb241eF9tcHBfY29uZihtdjIxMjBfbXBwX21vZGVzKTsKKworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZWhjaTFfaW5pdCgpOworCW9yaW9uNXhfZXRoX2luaXQoJm12MjEyMF9ldGhfZGF0YSk7CisJb3Jpb241eF9pMmNfaW5pdCgpOworCW9yaW9uNXhfc2F0YV9pbml0KCZtdjIxMjBfc2F0YV9kYXRhKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKE1WMjEyMF9OT1JfQk9PVF9CQVNFLCBNVjIxMjBfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjIxMjBfbm9yX2ZsYXNoKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXYyMTIwX2J1dHRvbl9kZXZpY2UpOworCisJaWYgKGdwaW9fcmVxdWVzdChNVjIxMjBfR1BJT19SVENfSVJRLCAicnRjIikgPT0gMCkgeworCQlpZiAoZ3Bpb19kaXJlY3Rpb25faW5wdXQoTVYyMTIwX0dQSU9fUlRDX0lSUSkgPT0gMCkKKwkJCW12MjEyMF9pMmNfcnRjLmlycSA9IGdwaW9fdG9faXJxKE1WMjEyMF9HUElPX1JUQ19JUlEpOworCQllbHNlCisJCQlncGlvX2ZyZWUoTVYyMTIwX0dQSU9fUlRDX0lSUSk7CisJfQorCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZtdjIxMjBfaTJjX3J0YywgMSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjIxMjBfbGVkcyk7CisKKwkvKiByZWdpc3RlciBtdjIxMjAgc3BlY2lmaWMgcG93ZXItb2ZmIG1ldGhvZCAqLworCWlmIChncGlvX3JlcXVlc3QoTVYyMTIwX0dQSU9fUE9XRVJfT0ZGLCAiUE9XRVJPRkYiKSAhPSAwIHx8CisJICAgIGdwaW9fZGlyZWN0aW9uX291dHB1dChNVjIxMjBfR1BJT19QT1dFUl9PRkYsIDEpICE9IDApCisJCXByX2VycigibXYyMTIwOiBmYWlsZWQgdG8gc2V0dXAgcG93ZXItb2ZmIEdQSU9cbiIpOworCXBtX3Bvd2VyX29mZiA9IG12MjEyMF9wb3dlcl9vZmY7Cit9CisKKy8qIFdhcm5pbmc6IEhQIHVzZXMgYSB3cm9uZyBtYWNoLXR5cGUgKD01MjYpIGluIHRoZWlyIGJvb3Rsb2FkZXIgKi8KK01BQ0hJTkVfU1RBUlQoTVYyMTIwLCAiSFAgTWVkaWEgVmF1bHQgbXYyMTIwIikKKwkvKiBNYWludGFpbmVyOiBNYXJ0aW4gTWljaGxtYXlyIDx0Ym1AY3lyaXVzLmNvbT4gKi8KKwkucGh5c19pbwk9IE9SSU9ONVhfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChPUklPTjVYX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweEZGRkMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gbXYyMTIwX2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3BjaS5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3BjaS5jCmluZGV4IDlkNWQzOWYuLjI1NmE0ZjY4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcGNpLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3BjaS5jCkBAIC0xNTIsNiArMTUyLDggQEAKIAlpZiAoZGV2ID09IE1WODhGNTE4MV9ERVZfSUQgfHwgZGV2ID09IE1WODhGNTE4Ml9ERVZfSUQpIHsKIAkJcHJpbnRrKEtFUk5fTk9USUNFICJBcHBseWluZyBPcmlvbi0xL09yaW9uLU5BUyBQQ0llIGNvbmZpZyAiCiAJCQkJICAgInJlYWQgdHJhbnNhY3Rpb24gd29ya2Fyb3VuZFxuIik7CisJCW9yaW9uNXhfc2V0dXBfcGNpZV93YV93aW4oT1JJT041WF9QQ0lFX1dBX1BIWVNfQkFTRSwKKwkJCQkJICBPUklPTjVYX1BDSUVfV0FfU0laRSk7CiAJCXBjaWVfb3BzLnJlYWQgPSBwY2llX3JkX2NvbmZfd2E7CiAJfQogCkBAIC0yNDAsMTMgKzI0MiwxMyBAQAogICogUENJIEFkZHJlc3MgRGVjb2RlIFdpbmRvd3MgcmVnaXN0ZXJzCiAgKi8KICNkZWZpbmUgUENJX0JBUl9TSVpFX0REUl9DUyhuKQkoKChuKSA9PSAwKSA/IE9SSU9ONVhfUENJX1JFRygweGMwOCkgOiBcCi0JCQkJKChuKSA9PSAxKSA/IE9SSU9ONVhfUENJX1JFRygweGQwOCkgOiAgXAotCQkJCSgobikgPT0gMikgPyBPUklPTjVYX1BDSV9SRUcoMHhjMGMpIDogIFwKLQkJCQkoKG4pID09IDMpID8gT1JJT041WF9QQ0lfUkVHKDB4ZDBjKSA6IDApCi0jZGVmaW5lIFBDSV9CQVJfUkVNQVBfRERSX0NTKG4pCSgoKG4pID09MCkgPyBPUklPTjVYX1BDSV9SRUcoMHhjNDgpIDogIFwKLQkJCQkoKG4pID09IDEpID8gT1JJT041WF9QQ0lfUkVHKDB4ZDQ4KSA6ICBcCi0JCQkJKChuKSA9PSAyKSA/IE9SSU9ONVhfUENJX1JFRygweGM0YykgOiAgXAotCQkJCSgobikgPT0gMykgPyBPUklPTjVYX1BDSV9SRUcoMHhkNGMpIDogMCkKKwkJCQkgKChuKSA9PSAxKSA/IE9SSU9ONVhfUENJX1JFRygweGQwOCkgOiBcCisJCQkJICgobikgPT0gMikgPyBPUklPTjVYX1BDSV9SRUcoMHhjMGMpIDogXAorCQkJCSAoKG4pID09IDMpID8gT1JJT041WF9QQ0lfUkVHKDB4ZDBjKSA6IDApCisjZGVmaW5lIFBDSV9CQVJfUkVNQVBfRERSX0NTKG4pCSgoKG4pID09IDApID8gT1JJT041WF9QQ0lfUkVHKDB4YzQ4KSA6IFwKKwkJCQkgKChuKSA9PSAxKSA/IE9SSU9ONVhfUENJX1JFRygweGQ0OCkgOiBcCisJCQkJICgobikgPT0gMikgPyBPUklPTjVYX1BDSV9SRUcoMHhjNGMpIDogXAorCQkJCSAoKG4pID09IDMpID8gT1JJT041WF9QQ0lfUkVHKDB4ZDRjKSA6IDApCiAjZGVmaW5lIFBDSV9CQVJfRU5BQkxFCQlPUklPTjVYX1BDSV9SRUcoMHhjM2MpCiAjZGVmaW5lIFBDSV9BRERSX0RFQ09ERV9DVFJMCU9SSU9ONVhfUENJX1JFRygweGQzYykKIApAQCAtMjY0LDkgKzI2NiwxMSBAQAogICovCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG9yaW9uNXhfcGNpX2xvY2spOwogCitzdGF0aWMgaW50IG9yaW9uNXhfcGNpX2NhcmRidXNfbW9kZTsKKwogc3RhdGljIGludCBvcmlvbjV4X3BjaV9sb2NhbF9idXNfbnIodm9pZCkKIHsKLQl1MzIgY29uZiA9IG9yaW9uNXhfcmVhZChQQ0lfUDJQX0NPTkYpOworCXUzMiBjb25mID0gcmVhZGwoUENJX1AyUF9DT05GKTsKIAlyZXR1cm4oKGNvbmYgJiBQQ0lfUDJQX0JVU19NQVNLKSA+PiBQQ0lfUDJQX0JVU19PRkZTKTsKIH0KIApAQCAtMjc2LDExICsyODAsMTEgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXNwaW5fbG9ja19pcnFzYXZlKCZvcmlvbjV4X3BjaV9sb2NrLCBmbGFncyk7CiAKLQlvcmlvbjV4X3dyaXRlKFBDSV9DT05GX0FERFIsIFBDSV9DT05GX0JVUyhidXMpIHwKLQkJCVBDSV9DT05GX0RFVihkZXYpIHwgUENJX0NPTkZfUkVHKHdoZXJlKSB8Ci0JCQlQQ0lfQ09ORl9GVU5DKGZ1bmMpIHwgUENJX0NPTkZfQUREUl9FTik7CisJd3JpdGVsKFBDSV9DT05GX0JVUyhidXMpIHwKKwkJUENJX0NPTkZfREVWKGRldikgfCBQQ0lfQ09ORl9SRUcod2hlcmUpIHwKKwkJUENJX0NPTkZfRlVOQyhmdW5jKSB8IFBDSV9DT05GX0FERFJfRU4sIFBDSV9DT05GX0FERFIpOwogCi0JKnZhbCA9IG9yaW9uNXhfcmVhZChQQ0lfQ09ORl9EQVRBKTsKKwkqdmFsID0gcmVhZGwoUENJX0NPTkZfREFUQSk7CiAKIAlpZiAoc2l6ZSA9PSAxKQogCQkqdmFsID0gKCp2YWwgPj4gKDgqKHdoZXJlICYgMHgzKSkpICYgMHhmZjsKQEAgLTMwMCw5ICszMDQsOSBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJm9yaW9uNXhfcGNpX2xvY2ssIGZsYWdzKTsKIAotCW9yaW9uNXhfd3JpdGUoUENJX0NPTkZfQUREUiwgUENJX0NPTkZfQlVTKGJ1cykgfAotCQkJUENJX0NPTkZfREVWKGRldikgfCBQQ0lfQ09ORl9SRUcod2hlcmUpIHwKLQkJCVBDSV9DT05GX0ZVTkMoZnVuYykgfCBQQ0lfQ09ORl9BRERSX0VOKTsKKwl3cml0ZWwoUENJX0NPTkZfQlVTKGJ1cykgfAorCQlQQ0lfQ09ORl9ERVYoZGV2KSB8IFBDSV9DT05GX1JFRyh3aGVyZSkgfAorCQlQQ0lfQ09ORl9GVU5DKGZ1bmMpIHwgUENJX0NPTkZfQUREUl9FTiwgUENJX0NPTkZfQUREUik7CiAKIAlpZiAoc2l6ZSA9PSA0KSB7CiAJCV9fcmF3X3dyaXRlbCh2YWwsIFBDSV9DT05GX0RBVEEpOwpAQCAtMzE5LDE0ICszMjMsMzAgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IG9yaW9uNXhfcGNpX3ZhbGlkX2NvbmZpZyhpbnQgYnVzLCB1MzIgZGV2Zm4pCit7CisJaWYgKGJ1cyA9PSBvcmlvbjV4X3BjaV9sb2NhbF9idXNfbnIoKSkgeworCQkvKgorCQkgKiBEb24ndCBnbyBvdXQgZm9yIGxvY2FsIGRldmljZQorCQkgKi8KKwkJaWYgKFBDSV9TTE9UKGRldmZuKSA9PSAwICYmIFBDSV9GVU5DKGRldmZuKSAhPSAwKQorCQkJcmV0dXJuIDA7CisKKwkJLyoKKwkJICogV2hlbiB0aGUgUENJIHNpZ25hbHMgYXJlIGRpcmVjdGx5IGNvbm5lY3RlZCB0byBhCisJCSAqIENhcmRidXMgc2xvdCwgaWdub3JlIGFsbCBidXQgZGV2aWNlIElEcyAwIGFuZCAxLgorCQkgKi8KKwkJaWYgKG9yaW9uNXhfcGNpX2NhcmRidXNfbW9kZSAmJiBQQ0lfU0xPVChkZXZmbikgPiAxKQorCQkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbnQgb3Jpb241eF9wY2lfcmRfY29uZihzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1MzIgZGV2Zm4sCiAJCQkJaW50IHdoZXJlLCBpbnQgc2l6ZSwgdTMyICp2YWwpCiB7Ci0JLyoKLQkgKiBEb24ndCBnbyBvdXQgZm9yIGxvY2FsIGRldmljZQotCSAqLwotCWlmIChidXMtPm51bWJlciA9PSBvcmlvbjV4X3BjaV9sb2NhbF9idXNfbnIoKSAmJgotCSAgICBQQ0lfU0xPVChkZXZmbikgPT0gMCAmJiBQQ0lfRlVOQyhkZXZmbikgIT0gMCkgeworCWlmICghb3Jpb241eF9wY2lfdmFsaWRfY29uZmlnKGJ1cy0+bnVtYmVyLCBkZXZmbikpIHsKIAkJKnZhbCA9IDB4ZmZmZmZmZmY7CiAJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CiAJfQpAQCAtMzM4LDggKzM1OCw3IEBACiBzdGF0aWMgaW50IG9yaW9uNXhfcGNpX3dyX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdTMyIGRldmZuLAogCQkJCWludCB3aGVyZSwgaW50IHNpemUsIHUzMiB2YWwpCiB7Ci0JaWYgKGJ1cy0+bnVtYmVyID09IG9yaW9uNXhfcGNpX2xvY2FsX2J1c19ucigpICYmCi0JICAgIFBDSV9TTE9UKGRldmZuKSA9PSAwICYmIFBDSV9GVU5DKGRldmZuKSAhPSAwKQorCWlmICghb3Jpb241eF9wY2lfdmFsaWRfY29uZmlnKGJ1cy0+bnVtYmVyLCBkZXZmbikpCiAJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CiAKIAlyZXR1cm4gb3Jpb241eF9wY2lfaHdfd3JfY29uZihidXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pLApAQCAtMzUzLDkgKzM3Miw5IEBACiAKIHN0YXRpYyB2b2lkIF9faW5pdCBvcmlvbjV4X3BjaV9zZXRfYnVzX25yKGludCBucikKIHsKLQl1MzIgcDJwID0gb3Jpb241eF9yZWFkKFBDSV9QMlBfQ09ORik7CisJdTMyIHAycCA9IHJlYWRsKFBDSV9QMlBfQ09ORik7CiAKLQlpZiAob3Jpb241eF9yZWFkKFBDSV9NT0RFKSAmIFBDSV9NT0RFX1BDSVgpIHsKKwlpZiAocmVhZGwoUENJX01PREUpICYgUENJX01PREVfUENJWCkgewogCQkvKgogCQkgKiBQQ0ktWCBtb2RlCiAJCSAqLwpAQCAtMzcyLDcgKzM5MSw3IEBACiAJCSAqLwogCQlwMnAgJj0gflBDSV9QMlBfQlVTX01BU0s7CiAJCXAycCB8PSAobnIgPDwgUENJX1AyUF9CVVNfT0ZGUyk7Ci0JCW9yaW9uNXhfd3JpdGUoUENJX1AyUF9DT05GLCBwMnApOworCQl3cml0ZWwocDJwLCBQQ0lfUDJQX0NPTkYpOwogCX0KIH0KIApAQCAtMzk5LDcgKzQxOCw3IEBACiAJICogRmlyc3QsIGRpc2FibGUgd2luZG93cy4KIAkgKi8KIAl3aW5fZW5hYmxlID0gMHhmZmZmZmZmZjsKLQlvcmlvbjV4X3dyaXRlKFBDSV9CQVJfRU5BQkxFLCB3aW5fZW5hYmxlKTsKKwl3cml0ZWwod2luX2VuYWJsZSwgUENJX0JBUl9FTkFCTEUpOwogCiAJLyoKIAkgKiBTZXR1cCB3aW5kb3dzIGZvciBERFIgYmFua3MuCkBAIC00MjUsMTAgKzQ0NCwxMCBAQAogCQkgKi8KIAkJcmVnID0gUENJX0NPTkZfUkVHX0JBUl9ISV9DUyhjcy0+Y3NfaW5kZXgpOwogCQlvcmlvbjV4X3BjaV9od193cl9jb25mKGJ1cywgMCwgZnVuYywgcmVnLCA0LCAwKTsKLQkJb3Jpb241eF93cml0ZShQQ0lfQkFSX1NJWkVfRERSX0NTKGNzLT5jc19pbmRleCksCi0JCQkJKGNzLT5zaXplIC0gMSkgJiAweGZmZmZmMDAwKTsKLQkJb3Jpb241eF93cml0ZShQQ0lfQkFSX1JFTUFQX0REUl9DUyhjcy0+Y3NfaW5kZXgpLAotCQkJCWNzLT5iYXNlICYgMHhmZmZmZjAwMCk7CisJCXdyaXRlbCgoY3MtPnNpemUgLSAxKSAmIDB4ZmZmZmYwMDAsCisJCQlQQ0lfQkFSX1NJWkVfRERSX0NTKGNzLT5jc19pbmRleCkpOworCQl3cml0ZWwoY3MtPmJhc2UgJiAweGZmZmZmMDAwLAorCQkJUENJX0JBUl9SRU1BUF9ERFJfQ1MoY3MtPmNzX2luZGV4KSk7CiAKIAkJLyoKIAkJICogRW5hYmxlIGRlY29kZSB3aW5kb3cgZm9yIHRoaXMgY2hpcCBzZWxlY3QuCkBAIC00MzksNyArNDU4LDcgQEAKIAkvKgogCSAqIFJlLWVuYWJsZSBkZWNvZGUgd2luZG93cy4KIAkgKi8KLQlvcmlvbjV4X3dyaXRlKFBDSV9CQVJfRU5BQkxFLCB3aW5fZW5hYmxlKTsKKwl3cml0ZWwod2luX2VuYWJsZSwgUENJX0JBUl9FTkFCTEUpOwogCiAJLyoKIAkgKiBEaXNhYmxlIGF1dG9tYXRpYyB1cGRhdGUgb2YgYWRkcmVzcyByZW1hcGluZyB3aGVuIHdyaXRpbmcgdG8gQkFScy4KQEAgLTUyMiw2ICs1NDEsMTEgQEAKIH0KIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBDSV9BTllfSUQsIHJjX3BjaV9maXh1cCk7CiAKK3ZvaWQgX19pbml0IG9yaW9uNXhfcGNpX3NldF9jYXJkYnVzX21vZGUodm9pZCkKK3sKKwlvcmlvbjV4X3BjaV9jYXJkYnVzX21vZGUgPSAxOworfQorCiBpbnQgX19pbml0IG9yaW9uNXhfcGNpX3N5c19zZXR1cChpbnQgbnIsIHN0cnVjdCBwY2lfc3lzX2RhdGEgKnN5cykKIHsKIAlpbnQgcmV0ID0gMDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODFsLWZ4by1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4MWwtZnhvLXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUwZTM2NQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODFsLWZ4by1zZXR1cC5jCkBAIC0wLDAgKzEsMTYxIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4MWwtZnhvLXNldHVwLmMKKyAqCisgKiBNYXJ2ZWxsIE9yaW9uLVZvSVAgRlhPIFJlZmVyZW5jZSBEZXNpZ24gU2V0dXAKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2xlZHMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFJELTg4RjUxODFMIEZYTyBJbmZvCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiA4TSBOT1IgZmxhc2ggRGV2aWNlIGJ1cyBib290IGNoaXAgc2VsZWN0CisgKi8KKyNkZWZpbmUgUkQ4OEY1MTgxTF9GWE9fTk9SX0JPT1RfQkFTRQkJMHhmZjgwMDAwMAorI2RlZmluZSBSRDg4RjUxODFMX0ZYT19OT1JfQk9PVF9TSVpFCQlTWl84TQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogOE0gTk9SIEZsYXNoIG9uIERldmljZSBidXMgQm9vdCBjaGlwIHNlbGVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSByZDg4ZjUxODFsX2Z4b19ub3JfYm9vdF9mbGFzaF9kYXRhID0geworCS53aWR0aAkJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSByZDg4ZjUxODFsX2Z4b19ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZSA9IHsKKwkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CQk9IFJEODhGNTE4MUxfRlhPX05PUl9CT09UX0JBU0UsCisJLmVuZAkJPSBSRDg4RjUxODFMX0ZYT19OT1JfQk9PVF9CQVNFICsKKwkJCSAgUkQ4OEY1MTgxTF9GWE9fTk9SX0JPT1RfU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSByZDg4ZjUxODFsX2Z4b19ub3JfYm9vdF9mbGFzaCA9IHsKKwkubmFtZQkJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcmQ4OGY1MTgxbF9meG9fbm9yX2Jvb3RfZmxhc2hfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCQk9IDEsCisJLnJlc291cmNlCQk9ICZyZDg4ZjUxODFsX2Z4b19ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZSwKK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsIFNldHVwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSByZDg4ZjUxODFsX2Z4b19tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9HUElPIH0sCQkvKiBMRUQxIENhcmRCdXMgTEVEIChmcm9udCBwYW5lbCkgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogUENJX2ludEEgKi8KKwl7ICAyLCBNUFBfR1BJTyB9LAkJLyogSGFyZCBSZXNldCAvIEZhY3RvcnkgSW5pdCovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIEZYUyBvciBEQUEgc2VsZWN0ICovCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIExFRDYgLSBwaG9uZSBMRUQgKGZyb250IHBhbmVsKSAqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBMRUQ1IC0gcGhvbmUgTEVEIChmcm9udCBwYW5lbCkgKi8KKwl7ICA2LCBNUFBfUENJX0NMSyB9LAkJLyogQ1BVIFBDSSByZWZjbGsgKi8KKwl7ICA3LCBNUFBfUENJX0NMSyB9LAkJLyogUENJL1BDSWUgcmVmY2xrICovCisJeyAgOCwgTVBQX0dQSU8gfSwJCS8qIENhcmRCdXMgcmVzZXQgKi8KKwl7ICA5LCBNUFBfR1BJTyB9LAkJLyogR0VfUlhFUlIgKi8KKwl7IDEwLCBNUFBfR1BJTyB9LAkJLyogTEVEMiBNaW5pUENJIExFRCAoZnJvbnQgcGFuZWwpICovCisJeyAxMSwgTVBQX0dQSU8gfSwJCS8qIExpZmVsaW5lIGNvbnRyb2wgKi8KKwl7IDEyLCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzRdICovCisJeyAxMywgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs1XSAqLworCXsgMTQsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNl0gKi8KKwl7IDE1LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzddICovCisJeyAxNiwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs0XSAqLworCXsgMTcsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNV0gKi8KKwl7IDE4LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzZdICovCisJeyAxOSwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs3XSAqLworCXsgLTEgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSByZDg4ZjUxODFsX2Z4b19ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAtMSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCByZDg4ZjUxODFsX2Z4b19pbml0KHZvaWQpCit7CisJLyoKKwkgKiBTZXR1cCBiYXNpYyBPcmlvbiBmdW5jdGlvbnMuIE5lZWQgdG8gYmUgY2FsbGVkIGVhcmx5LgorCSAqLworCW9yaW9uNXhfaW5pdCgpOworCisJb3Jpb241eF9tcHBfY29uZihyZDg4ZjUxODFsX2Z4b19tcHBfbW9kZXMpOworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9ldGhfaW5pdCgmcmQ4OGY1MTgxbF9meG9fZXRoX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oUkQ4OEY1MTgxTF9GWE9fTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBSRDg4RjUxODFMX0ZYT19OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnJkODhmNTE4MWxfZnhvX25vcl9ib290X2ZsYXNoKTsKK30KKworc3RhdGljIGludCBfX2luaXQKK3JkODhmNTE4MWxfZnhvX3BjaV9tYXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNsb3QsIHU4IHBpbikKK3sKKwlpbnQgaXJxOworCisJLyoKKwkgKiBDaGVjayBmb3IgZGV2aWNlcyB3aXRoIGhhcmQtd2lyZWQgSVJRcy4KKwkgKi8KKwlpcnEgPSBvcmlvbjV4X3BjaV9tYXBfaXJxKGRldiwgc2xvdCwgcGluKTsKKwlpZiAoaXJxICE9IC0xKQorCQlyZXR1cm4gaXJxOworCisJLyoKKwkgKiBNaW5pLVBDSSAvIENhcmRidXMgc2xvdC4KKwkgKi8KKwlyZXR1cm4gZ3Bpb190b19pcnEoMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIHJkODhmNTE4MWxfZnhvX3BjaSBfX2luaXRkYXRhID0geworCS5ucl9jb250cm9sbGVycwk9IDIsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG9yaW9uNXhfcGNpX3N5c19zZXR1cCwKKwkuc2NhbgkJPSBvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSByZDg4ZjUxODFsX2Z4b19wY2lfbWFwX2lycSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHJkODhmNTE4MWxfZnhvX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfcmQ4OGY1MTgxbF9meG8oKSkgeworCQlvcmlvbjV4X3BjaV9zZXRfY2FyZGJ1c19tb2RlKCk7CisJCXBjaV9jb21tb25faW5pdCgmcmQ4OGY1MTgxbF9meG9fcGNpKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChyZDg4ZjUxODFsX2Z4b19wY2lfaW5pdCk7CisKK01BQ0hJTkVfU1RBUlQoUkQ4OEY1MTgxTF9GWE8sICJNYXJ2ZWxsIE9yaW9uLVZvSVAgRlhPIFJlZmVyZW5jZSBEZXNpZ24iKQorCS8qIE1haW50YWluZXI6IE5pY29sYXMgUGl0cmUgPG5pY29AbWFydmVsbC5jb20+ICovCisJLnBoeXNfaW8JPSBPUklPTjVYX1JFR1NfUEhZU19CQVNFLAorCS5pb19wZ19vZmZzdAk9ICgoT1JJT041WF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhGRkZDLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IHJkODhmNTE4MWxfZnhvX2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODFsLWdlLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgxbC1nZS1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NjQ0N2QKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgxbC1nZS1zZXR1cC5jCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4MWwtZ2Utc2V0dXAuYworICoKKyAqIE1hcnZlbGwgT3Jpb24tVm9JUCBHRSBSZWZlcmVuY2UgRGVzaWduIFNldHVwCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9sZWRzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBSRC04OEY1MTgxTCBHRSBJbmZvCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiAxNk0gTk9SIGZsYXNoIERldmljZSBidXMgYm9vdCBjaGlwIHNlbGVjdAorICovCisjZGVmaW5lIFJEODhGNTE4MUxfR0VfTk9SX0JPT1RfQkFTRQkJMHhmZjAwMDAwMAorI2RlZmluZSBSRDg4RjUxODFMX0dFX05PUl9CT09UX1NJWkUJCVNaXzE2TQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogMTZNIE5PUiBGbGFzaCBvbiBEZXZpY2UgYnVzIEJvb3QgY2hpcCBzZWxlY3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgcmQ4OGY1MTgxbF9nZV9ub3JfYm9vdF9mbGFzaF9kYXRhID0geworCS53aWR0aAkJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSByZDg4ZjUxODFsX2dlX25vcl9ib290X2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJCT0gUkQ4OEY1MTgxTF9HRV9OT1JfQk9PVF9CQVNFLAorCS5lbmQJCT0gUkQ4OEY1MTgxTF9HRV9OT1JfQk9PVF9CQVNFICsKKwkJCSAgUkQ4OEY1MTgxTF9HRV9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHJkODhmNTE4MWxfZ2Vfbm9yX2Jvb3RfZmxhc2ggPSB7CisJLm5hbWUJCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnJkODhmNTE4MWxfZ2Vfbm9yX2Jvb3RfZmxhc2hfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCQk9IDEsCisJLnJlc291cmNlCQk9ICZyZDg4ZjUxODFsX2dlX25vcl9ib290X2ZsYXNoX3Jlc291cmNlLAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwgU2V0dXAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIHJkODhmNTE4MWxfZ2VfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfR1BJTyB9LAkJLyogTEVEMSAqLworCXsgIDEsIE1QUF9HUElPIH0sCQkvKiBMRUQ1ICovCisJeyAgMiwgTVBQX0dQSU8gfSwJCS8qIExFRDQgKi8KKwl7ICAzLCBNUFBfR1BJTyB9LAkJLyogTEVEMyAqLworCXsgIDQsIE1QUF9HUElPIH0sCQkvKiBQQ0lfaW50QSAqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBSVEMgaW50ZXJydXB0ICovCisJeyAgNiwgTVBQX1BDSV9DTEsgfSwJCS8qIENQVSBQQ0kgcmVmY2xrICovCisJeyAgNywgTVBQX1BDSV9DTEsgfSwJCS8qIFBDSS9QQ0llIHJlZmNsayAqLworCXsgIDgsIE1QUF9HUElPIH0sCQkvKiA4OGU2MTMxIGludGVycnVwdCAqLworCXsgIDksIE1QUF9HUElPIH0sCQkvKiBHRV9SWEVSUiAqLworCXsgMTAsIE1QUF9HUElPIH0sCQkvKiBQQ0lfaW50QiAqLworCXsgMTEsIE1QUF9HUElPIH0sCQkvKiBMRUQyICovCisJeyAxMiwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs0XSAqLworCXsgMTMsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNV0gKi8KKwl7IDE0LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzZdICovCisJeyAxNSwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs3XSAqLworCXsgMTYsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNF0gKi8KKwl7IDE3LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzVdICovCisJeyAxOCwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs2XSAqLworCXsgMTksIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbN10gKi8KKwl7IC0xIH0sCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgcmQ4OGY1MTgxbF9nZV9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAtMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSByZDg4ZjUxODFsX2dlX2kyY19ydGMgPSB7CisJSTJDX0JPQVJEX0lORk8oImRzMTMzOCIsIDB4NjgpLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHJkODhmNTE4MWxfZ2VfaW5pdCh2b2lkKQoreworCS8qCisJICogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlvcmlvbjV4X2luaXQoKTsKKworCW9yaW9uNXhfbXBwX2NvbmYocmQ4OGY1MTgxbF9nZV9tcHBfbW9kZXMpOworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9ldGhfaW5pdCgmcmQ4OGY1MTgxbF9nZV9ldGhfZGF0YSk7CisJb3Jpb241eF9pMmNfaW5pdCgpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oUkQ4OEY1MTgxTF9HRV9OT1JfQk9PVF9CQVNFLAorCQkJCSAgIFJEODhGNTE4MUxfR0VfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZyZDg4ZjUxODFsX2dlX25vcl9ib290X2ZsYXNoKTsKKworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZyZDg4ZjUxODFsX2dlX2kyY19ydGMsIDEpOworfQorCitzdGF0aWMgaW50IF9faW5pdAorcmQ4OGY1MTgxbF9nZV9wY2lfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJaW50IGlycTsKKworCS8qCisJICogQ2hlY2sgZm9yIGRldmljZXMgd2l0aCBoYXJkLXdpcmVkIElSUXMuCisJICovCisJaXJxID0gb3Jpb241eF9wY2lfbWFwX2lycShkZXYsIHNsb3QsIHBpbik7CisJaWYgKGlycSAhPSAtMSkKKwkJcmV0dXJuIGlycTsKKworCS8qCisJICogQ2FyZGJ1cyBzbG90LgorCSAqLworCWlmIChwaW4gPT0gMSkKKwkJcmV0dXJuIGdwaW9fdG9faXJxKDQpOworCWVsc2UKKwkJcmV0dXJuIGdwaW9fdG9faXJxKDEwKTsKK30KKworc3RhdGljIHN0cnVjdCBod19wY2kgcmQ4OGY1MTgxbF9nZV9wY2kgX19pbml0ZGF0YSA9IHsKKwkubnJfY29udHJvbGxlcnMJPSAyLAorCS5zd2l6emxlCT0gcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cAkJPSBvcmlvbjV4X3BjaV9zeXNfc2V0dXAsCisJLnNjYW4JCT0gb3Jpb241eF9wY2lfc3lzX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0gcmQ4OGY1MTgxbF9nZV9wY2lfbWFwX2lycSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHJkODhmNTE4MWxfZ2VfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19yZDg4ZjUxODFsX2dlKCkpIHsKKwkJb3Jpb241eF9wY2lfc2V0X2NhcmRidXNfbW9kZSgpOworCQlwY2lfY29tbW9uX2luaXQoJnJkODhmNTE4MWxfZ2VfcGNpKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChyZDg4ZjUxODFsX2dlX3BjaV9pbml0KTsKKworTUFDSElORV9TVEFSVChSRDg4RjUxODFMX0dFLCAiTWFydmVsbCBPcmlvbi1Wb0lQIEdFIFJlZmVyZW5jZSBEZXNpZ24iKQorCS8qIE1haW50YWluZXI6IExlbm5lcnQgQnV5dGVuaGVrIDxidXl0ZW5oQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSByZDg4ZjUxODFsX2dlX2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODItc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODItc2V0dXAuYwppbmRleCA4MWFiYzEwLi4xMGFlNjI4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgyLXNldHVwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4Mi1zZXR1cC5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgogI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFJELTg4RjUxODIgSW5mbwpAQCAtMTI1LDYgKzEyNiw3IEBACiAKIAkJbGVkc19ldmVudCA9IHJkODhmNTE4Ml9kYmdsZWRfZXZlbnQ7CiAJfQorCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTIyMCw3ICsyMjIsNiBAQAogCiBzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgcmQ4OGY1MTgyX2V0aF9kYXRhID0gewogCS5waHlfYWRkcgk9IDgsCi0JLmZvcmNlX3BoeV9hZGRyID0gMSwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMjM0LDE1ICsyMzUsMzQgQEAKICAqIFNhdGEKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgcmQ4OGY1MTgyX3NhdGFfZGF0YSA9IHsKLQkubl9wb3J0cyAgICAgICAgPSAyLAorCS5uX3BvcnRzCT0gMiwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogR2VuZXJhbCBTZXR1cAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpyZDg4ZjUxODJfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7Ci0JJnJkODhmNTE4Ml9ub3JfZmxhc2gsCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgcmQ4OGY1MTgyX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX0dQSU8gfSwJCS8qIERlYnVnIExlZCAqLworCXsgIDEsIE1QUF9HUElPIH0sCQkvKiBSZXNldCBTd2l0Y2ggKi8KKwl7ICAyLCBNUFBfVU5VU0VEIH0sCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIFJUQyBJbnQgKi8KKwl7ICA0LCBNUFBfR1BJTyB9LAorCXsgIDUsIE1QUF9HUElPIH0sCisJeyAgNiwgTVBQX0dQSU8gfSwJCS8qIFBDSV9pbnRBICovCisJeyAgNywgTVBQX0dQSU8gfSwJCS8qIFBDSV9pbnRCICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAorCXsgIDksIE1QUF9VTlVTRUQgfSwKKwl7IDEwLCBNUFBfVU5VU0VEIH0sCisJeyAxMSwgTVBQX1VOVVNFRCB9LAorCXsgMTIsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAwIHByZXNlbmNlICovCisJeyAxMywgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgcHJlc2VuY2UgKi8KKwl7IDE0LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBhY3RpdmUgKi8KKwl7IDE1LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMSBhY3RpdmUgKi8KKwl7IDE2LCBNUFBfVU5VU0VEIH0sCisJeyAxNywgTVBQX1VOVVNFRCB9LAorCXsgMTgsIE1QUF9VTlVTRUQgfSwKKwl7IDE5LCBNUFBfVU5VU0VEIH0sCisJeyAtMSB9LAogfTsKIAogc3RhdGljIHZvaWQgX19pbml0IHJkODhmNTE4Ml9pbml0KHZvaWQpCkBAIC0yNTIsMzUgKzI3Miw5IEBACiAJICovCiAJb3Jpb241eF9pbml0KCk7CiAKLQkvKgotCSAqIFNldHVwIHRoZSBDUFUgYWRkcmVzcyBkZWNvZGUgd2luZG93cyBmb3Igb3VyIGRldmljZXMKLQkgKi8KLQlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihSRDg4RjUxODJfTk9SX0JPT1RfQkFTRSwKLQkJCQlSRDg4RjUxODJfTk9SX0JPT1RfU0laRSk7Ci0Jb3Jpb241eF9zZXR1cF9kZXYxX3dpbihSRDg4RjUxODJfTk9SX0JBU0UsIFJEODhGNTE4Ml9OT1JfU0laRSk7CisJb3Jpb241eF9tcHBfY29uZihyZDg4ZjUxODJfbXBwX21vZGVzKTsKIAogCS8qCi0JICogT3BlbiBhIHNwZWNpYWwgYWRkcmVzcyBkZWNvZGUgd2luZG93cyBmb3IgdGhlIFBDSWUgV0EuCi0JICovCi0Jb3Jpb241eF9zZXR1cF9wY2llX3dhX3dpbihPUklPTjVYX1BDSUVfV0FfUEhZU19CQVNFLAotCQkJCU9SSU9ONVhfUENJRV9XQV9TSVpFKTsKLQotCS8qCi0JICogU2V0dXAgTXVsdGlwbGV4aW5nIFBpbnMgLS0KLQkgKiBNUFBbMF0gRGVidWcgTGVkIChHUElPIC0gT3V0KQotCSAqIE1QUFsxXSBEZWJ1ZyBMZWQgKEdQSU8gLSBPdXQpCi0JICogTVBQWzJdIE4vQQotCSAqIE1QUFszXSBSVENfSW50IChHUElPIC0gSW4pCi0JICogTVBQWzRdIEdQSU8KLQkgKiBNUFBbNV0gR1BJTwotCSAqIE1QUFs2XSBQQ0lfaW50QSAoR1BJTyAtIEluKQotCSAqIE1QUFs3XSBQQ0lfaW50QiAoR1BJTyAtIEluKQotCSAqIE1QUFs4LTExXSBOL0EKLQkgKiBNUFBbMTJdIFNBVEEgMCBwcmVzZW5jZSBJbmRpY2F0aW9uCi0JICogTVBQWzEzXSBTQVRBIDEgcHJlc2VuY2UgSW5kaWNhdGlvbgotCSAqIE1QUFsxNF0gU0FUQSAwIGFjdGl2ZSBJbmRpY2F0aW9uCi0JICogTVBQWzE1XSBTQVRBIDEgYWN0aXZlIGluZGljYXRpb24KLQkgKiBNUFBbMTYtMTldIE5vdCB1c2VkCiAJICogTVBQWzIwXSBQQ0kgQ2xvY2sgdG8gTVY4OEY1MTgyCiAJICogTVBQWzIxXSBQQ0kgQ2xvY2sgdG8gbWluaSBQQ0kgQ09OMTEKIAkgKiBNUFBbMjJdIFVTQiAwIG92ZXIgY3VycmVudCBpbmRpY2F0aW9uCkBAIC0yODksMTYgKzI4MywyMyBAQAogCSAqIE1QUFsyNV0gVVNCIDAgb3ZlciBjdXJyZW50IGVuYWJsZQogCSAqLwogCi0Jb3Jpb241eF93cml0ZShNUFBfMF83X0NUUkwsIDB4MDAwMDAwMDMpOwotCW9yaW9uNXhfd3JpdGUoTVBQXzhfMTVfQ1RSTCwgMHg1NTU1MDAwMCk7Ci0Jb3Jpb241eF93cml0ZShNUFBfMTZfMTlfQ1RSTCwgMHg1NTU1KTsKLQotCW9yaW9uNXhfZ3Bpb19zZXRfdmFsaWRfcGlucygweDAwMDAwMGZiKTsKLQotCXBsYXRmb3JtX2FkZF9kZXZpY2VzKHJkODhmNTE4Ml9kZXZpY2VzLCBBUlJBWV9TSVpFKHJkODhmNTE4Ml9kZXZpY2VzKSk7Ci0JaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJnJkODhmNTE4Ml9pMmNfcnRjLCAxKTsKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2VoY2kxX2luaXQoKTsKIAlvcmlvbjV4X2V0aF9pbml0KCZyZDg4ZjUxODJfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKIAlvcmlvbjV4X3NhdGFfaW5pdCgmcmQ4OGY1MTgyX3NhdGFfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihSRDg4RjUxODJfTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBSRDg4RjUxODJfTk9SX0JPT1RfU0laRSk7CisKKwlvcmlvbjV4X3NldHVwX2RldjFfd2luKFJEODhGNTE4Ml9OT1JfQkFTRSwgUkQ4OEY1MTgyX05PUl9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnJkODhmNTE4Ml9ub3JfZmxhc2gpOworCisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJnJkODhmNTE4Ml9pMmNfcnRjLCAxKTsKIH0KIAogTUFDSElORV9TVEFSVChSRDg4RjUxODIsICJNYXJ2ZWxsIE9yaW9uLU5BUyBSZWZlcmVuY2UgRGVzaWduIikKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czIwOS1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzMjA5LXNldHVwLmMKaW5kZXggOWFmYjQxZS4uYTljZWY5NyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzMjA5LXNldHVwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzMjA5LXNldHVwLmMKQEAgLTI4LDYgKzI4LDggQEAKICNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CiAjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisjaW5jbHVkZSAidHN4MDktY29tbW9uLmgiCiAKICNkZWZpbmUgUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFIDB4ZjQwMDAwMDAKICNkZWZpbmUgUU5BUF9UUzIwOV9OT1JfQk9PVF9TSVpFIFNaXzhNCkBAIC00Nyw1MiArNDksNTQgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gcW5hcF90czIwOV9wYXJ0aXRpb25zW10gPSB7CiAJewotCQkubmFtZSAgICAgICA9ICJVLUJvb3QiLAotCQkuc2l6ZSAgICAgICA9IDB4MDAwODAwMDAsCi0JCS5vZmZzZXQgICAgID0gMHgwMDc4MDAwMCwKLQkJLm1hc2tfZmxhZ3MgPSBNVERfV1JJVEVBQkxFLAorCQkubmFtZQkJPSAiVS1Cb290IiwKKwkJLnNpemUJCT0gMHgwMDA4MDAwMCwKKwkJLm9mZnNldAkJPSAweDAwNzgwMDAwLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsCiAJfSwgewotCQkubmFtZSAgID0gIktlcm5lbCIsCi0JCS5zaXplICAgPSAweDAwMjAwMDAwLAotCQkub2Zmc2V0ID0gMCwKKwkJLm5hbWUJCT0gIktlcm5lbCIsCisJCS5zaXplCQk9IDB4MDAyMDAwMDAsCisJCS5vZmZzZXQJCT0gMCwKIAl9LCB7Ci0JCS5uYW1lICAgPSAiUm9vdEZTMSIsCi0JCS5zaXplICAgPSAweDAwNDAwMDAwLAotCQkub2Zmc2V0ID0gMHgwMDIwMDAwMCwKKwkJLm5hbWUJCT0gIlJvb3RGUzEiLAorCQkuc2l6ZQkJPSAweDAwNDAwMDAwLAorCQkub2Zmc2V0CQk9IDB4MDAyMDAwMDAsCiAJfSwgewotCQkubmFtZSAgID0gIlJvb3RGUzIiLAotCQkuc2l6ZSAgID0gMHgwMDEwMDAwMCwKLQkJLm9mZnNldCA9IDB4MDA2MDAwMDAsCisJCS5uYW1lCQk9ICJSb290RlMyIiwKKwkJLnNpemUJCT0gMHgwMDEwMDAwMCwKKwkJLm9mZnNldAkJPSAweDAwNjAwMDAwLAogCX0sIHsKLQkJLm5hbWUgICA9ICJVLUJvb3QgQ29uZmlnIiwKLQkJLnNpemUgICA9IDB4MDAwMjAwMDAsCi0JCS5vZmZzZXQgPSAweDAwNzYwMDAwLAorCQkubmFtZQkJPSAiVS1Cb290IENvbmZpZyIsCisJCS5zaXplCQk9IDB4MDAwMjAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDc2MDAwMCwKIAl9LCB7Ci0JCS5uYW1lICAgICAgID0gIk5BUyBDb25maWciLAotCQkuc2l6ZSAgICAgICA9IDB4MDAwNjAwMDAsCi0JCS5vZmZzZXQgICAgID0gMHgwMDcwMDAwMCwKLQkJLm1hc2tfZmxhZ3MgPSBNVERfV1JJVEVBQkxFLAotCX0KKwkJLm5hbWUJCT0gIk5BUyBDb25maWciLAorCQkuc2l6ZQkJPSAweDAwMDYwMDAwLAorCQkub2Zmc2V0CQk9IDB4MDA3MDAwMDAsCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwKKwl9LAogfTsKIAogc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgcW5hcF90czIwOV9ub3JfZmxhc2hfZGF0YSA9IHsKLQkud2lkdGggICAgPSAxLAotCS5wYXJ0cyAgICA9IHFuYXBfdHMyMDlfcGFydGl0aW9ucywKLQkubnJfcGFydHMgPSBBUlJBWV9TSVpFKHFuYXBfdHMyMDlfcGFydGl0aW9ucykKKwkud2lkdGgJCT0gMSwKKwkucGFydHMJCT0gcW5hcF90czIwOV9wYXJ0aXRpb25zLAorCS5ucl9wYXJ0cwk9IEFSUkFZX1NJWkUocW5hcF90czIwOV9wYXJ0aXRpb25zKQogfTsKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBxbmFwX3RzMjA5X25vcl9mbGFzaF9yZXNvdXJjZSA9IHsKLQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKLQkuc3RhcnQgPSBRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UsCi0JLmVuZCAgID0gUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFICsgUU5BUF9UUzIwOV9OT1JfQk9PVF9TSVpFIC0gMSwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJPSBRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UsCisJLmVuZAk9IFFOQVBfVFMyMDlfTk9SX0JPT1RfQkFTRSArIFFOQVBfVFMyMDlfTk9SX0JPT1RfU0laRSAtIDEsCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBxbmFwX3RzMjA5X25vcl9mbGFzaCA9IHsKLQkubmFtZSAgICAgICAgICA9ICJwaHlzbWFwLWZsYXNoIiwKLQkuaWQgICAgICAgICAgICA9IDAsCi0JLmRldiAgICAgICAgICAgPSB7IC5wbGF0Zm9ybV9kYXRhID0gJnFuYXBfdHMyMDlfbm9yX2ZsYXNoX2RhdGEsIH0sCi0JLnJlc291cmNlICAgICAgPSAmcW5hcF90czIwOV9ub3JfZmxhc2hfcmVzb3VyY2UsCi0JLm51bV9yZXNvdXJjZXMgPSAxLAorCS5uYW1lCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcW5hcF90czIwOV9ub3JfZmxhc2hfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQk9ICZxbmFwX3RzMjA5X25vcl9mbGFzaF9yZXNvdXJjZSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE2NCwxMiArMTY4LDEyIEBACiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaHdfcGNpIHFuYXBfdHMyMDlfcGNpIF9faW5pdGRhdGEgPSB7Ci0JLm5yX2NvbnRyb2xsZXJzID0gMiwKLQkucHJlaW5pdCAgICAgICAgPSBxbmFwX3RzMjA5X3BjaV9wcmVpbml0LAotCS5zd2l6emxlICAgICAgICA9IHBjaV9zdGRfc3dpenpsZSwKLQkuc2V0dXAgICAgICAgICAgPSBvcmlvbjV4X3BjaV9zeXNfc2V0dXAsCi0JLnNjYW4gICAgICAgICAgID0gb3Jpb241eF9wY2lfc3lzX3NjYW5fYnVzLAotCS5tYXBfaXJxICAgICAgICA9IHFuYXBfdHMyMDlfcGNpX21hcF9pcnEsCisJLm5yX2NvbnRyb2xsZXJzCT0gMiwKKwkucHJlaW5pdAk9IHFuYXBfdHMyMDlfcGNpX3ByZWluaXQsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG9yaW9uNXhfcGNpX3N5c19zZXR1cCwKKwkuc2NhbgkJPSBvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSBxbmFwX3RzMjA5X3BjaV9tYXBfaXJxLAogfTsKIAogc3RhdGljIGludCBfX2luaXQgcW5hcF90czIwOV9wY2lfaW5pdCh2b2lkKQpAQCAtMTgzLDk2ICsxODcsNiBAQAogc3Vic3lzX2luaXRjYWxsKHFuYXBfdHMyMDlfcGNpX2luaXQpOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIEV0aGVybmV0Ci0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHFuYXBfdHMyMDlfZXRoX2RhdGEgPSB7Ci0JLnBoeV9hZGRyICAgICAgID0gOCwKLQkuZm9yY2VfcGh5X2FkZHIgPSAxLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgcGFyc2VfaGV4X25pYmJsZShjaGFyIG4pCi17Ci0JaWYgKG4gPj0gJzAnICYmIG4gPD0gJzknKQotCQlyZXR1cm4gbiAtICcwJzsKLQotCWlmIChuID49ICdBJyAmJiBuIDw9ICdGJykKLQkJcmV0dXJuIG4gLSAnQScgKyAxMDsKLQotCWlmIChuID49ICdhJyAmJiBuIDw9ICdmJykKLQkJcmV0dXJuIG4gLSAnYScgKyAxMDsKLQotCXJldHVybiAtMTsKLX0KLQotc3RhdGljIGludCBfX2luaXQgcGFyc2VfaGV4X2J5dGUoY29uc3QgY2hhciAqYikKLXsKLQlpbnQgaGk7Ci0JaW50IGxvOwotCi0JaGkgPSBwYXJzZV9oZXhfbmliYmxlKGJbMF0pOwotCWxvID0gcGFyc2VfaGV4X25pYmJsZShiWzFdKTsKLQotCWlmIChoaSA8IDAgfHwgbG8gPCAwKQotCQlyZXR1cm4gLTE7Ci0KLQlyZXR1cm4gKGhpIDw8IDQpIHwgbG87Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IGNoZWNrX21hY19hZGRyKGNvbnN0IGNoYXIgKmFkZHJfc3RyKQotewotCXVfaW50OF90IGFkZHJbNl07Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7Ci0JCWludCBieXRlOwotCi0JCS8qCi0JCSAqIEVuZm9yY2UgInh4Onh4Onh4Onh4Onh4Onh4XG4iIGZvcm1hdC4KLQkJICovCi0JCWlmIChhZGRyX3N0clsoaSAqIDMpICsgMl0gIT0gKChpIDwgNSkgPyAnOicgOiAnXG4nKSkKLQkJCXJldHVybiAtMTsKLQotCQlieXRlID0gcGFyc2VfaGV4X2J5dGUoYWRkcl9zdHIgKyAoaSAqIDMpKTsKLQkJaWYgKGJ5dGUgPCAwKQotCQkJcmV0dXJuIC0xOwotCQlhZGRyW2ldID0gYnl0ZTsKLQl9Ci0KLQlwcmludGsoS0VSTl9JTkZPICJ0czIwOTogZm91bmQgZXRoZXJuZXQgbWFjIGFkZHJlc3MgIik7Ci0JZm9yIChpID0gMDsgaSA8IDY7IGkrKykKLQkJcHJpbnRrKCIlLjJ4JXMiLCBhZGRyW2ldLCAoaSA8IDUpID8gIjoiIDogIi5cbiIpOwotCi0JbWVtY3B5KHFuYXBfdHMyMDlfZXRoX2RhdGEubWFjX2FkZHIsIGFkZHIsIDYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBUaGUgJ05BUyBDb25maWcnIGZsYXNoIHBhcnRpdGlvbiBoYXMgYW4gZXh0MiBmaWxlc3lzdGVtIHdoaWNoCi0gKiBjb250YWlucyBhIGZpbGUgdGhhdCBoYXMgdGhlIGV0aGVybmV0IE1BQyBhZGRyZXNzIGluIHBsYWluIHRleHQKLSAqIChmb3JtYXQgInh4Onh4Onh4Onh4Onh4Onh4XG4iLikKLSAqLwotc3RhdGljIHZvaWQgX19pbml0IHRzMjA5X2ZpbmRfbWFjX2FkZHIodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGFkZHI7Ci0KLQlmb3IgKGFkZHIgPSAweDAwNzAwMDAwOyBhZGRyIDwgMHgwMDc2MDAwMDsgYWRkciArPSAxMDI0KSB7Ci0JCWNoYXIgKm5vcl9wYWdlOwotCQlpbnQgcmV0ID0gMDsKLQotCQlub3JfcGFnZSA9IGlvcmVtYXAoUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFICsgYWRkciwgMTAyNCk7Ci0JCWlmIChub3JfcGFnZSAhPSBOVUxMKSB7Ci0JCQlyZXQgPSBjaGVja19tYWNfYWRkcihub3JfcGFnZSk7Ci0JCQlpb3VubWFwKG5vcl9wYWdlKTsKLQkJfQotCi0JCWlmIChyZXQgPT0gMCkKLQkJCWJyZWFrOwotCX0KLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBSVEMgUzM1MzkwQSBvbiBJMkMgYnVzCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMjgwLDcgKzE5NCw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBxbmFwX3RzMjA5X2kyY19ydGMgPSB7CiAJSTJDX0JPQVJEX0lORk8oInMzNTM5MGEiLCAweDMwKSwKLSAgICAgICAuaXJxICAgICAgICAgPSAwLAorCS5pcnEJPSAwLAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTI5Nyw3MCArMjExLDYzIEBACiAJCS5ncGlvCQk9IFFOQVBfVFMyMDlfR1BJT19LRVlfTUVESUEsCiAJCS5kZXNjCQk9ICJVU0IgQ29weSBCdXR0b24iLAogCQkuYWN0aXZlX2xvdwk9IDEsCi0JfSwKLQl7CisJfSwgewogCQkuY29kZQkJPSBLRVlfUE9XRVIsCiAJCS5ncGlvCQk9IFFOQVBfVFMyMDlfR1BJT19LRVlfUkVTRVQsCiAJCS5kZXNjCQk9ICJSZXNldCBCdXR0b24iLAogCQkuYWN0aXZlX2xvdwk9IDEsCi0JfQorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIHFuYXBfdHMyMDlfYnV0dG9uX2RhdGEgPSB7CiAJLmJ1dHRvbnMJPSBxbmFwX3RzMjA5X2J1dHRvbnMsCi0JLm5idXR0b25zICAgICAgID0gQVJSQVlfU0laRShxbmFwX3RzMjA5X2J1dHRvbnMpLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUocW5hcF90czIwOV9idXR0b25zKSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHFuYXBfdHMyMDlfYnV0dG9uX2RldmljZSA9IHsKIAkubmFtZQkJPSAiZ3Bpby1rZXlzIiwKIAkuaWQJCT0gLTEsCiAJLm51bV9yZXNvdXJjZXMJPSAwLAotCS5kZXYJCT0geyAucGxhdGZvcm1fZGF0YSAgPSAmcW5hcF90czIwOV9idXR0b25fZGF0YSwgfSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcW5hcF90czIwOV9idXR0b25fZGF0YSwKKwl9LAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBTQVRBCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIHFuYXBfdHMyMDlfc2F0YV9kYXRhID0gewotCS5uX3BvcnRzICAgICAgICA9IDIsCisJLm5fcG9ydHMJPSAyLAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKICAqIEdlbmVyYWwgU2V0dXAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcW5hcF90czIwOV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKLQkmcW5hcF90czIwOV9ub3JfZmxhc2gsCi0JJnFuYXBfdHMyMDlfYnV0dG9uX2RldmljZSwKK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSB0czIwOV9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9VTlVTRUQgfSwKKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogVVNCIGNvcHkgYnV0dG9uICovCisJeyAgMiwgTVBQX0dQSU8gfSwJCS8qIExvYWQgZGVmYXVsdHMgYnV0dG9uICovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIEdQSU8gUlRDICovCisJeyAgNCwgTVBQX1VOVVNFRCB9LAorCXsgIDUsIE1QUF9VTlVTRUQgfSwKKwl7ICA2LCBNUFBfR1BJTyB9LAkJLyogUENJIEludCBBICovCisJeyAgNywgTVBQX0dQSU8gfSwJCS8qIFBDSSBJbnQgQiAqLworCXsgIDgsIE1QUF9VTlVTRUQgfSwKKwl7ICA5LCBNUFBfVU5VU0VEIH0sCisJeyAxMCwgTVBQX1VOVVNFRCB9LAorCXsgMTEsIE1QUF9VTlVTRUQgfSwKKwl7IDEyLCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBwcmVzZW5jZSAqLworCXsgMTMsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAxIHByZXNlbmNlICovCisJeyAxNCwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDAgYWN0aXZlICovCisJeyAxNSwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgYWN0aXZlICovCisJeyAxNiwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxIFJYRCAqLworCXsgMTcsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBUWEQgKi8KKwl7IDE4LCBNUFBfR1BJTyB9LAkJLyogU1dfUlNUICovCisJeyAxOSwgTVBQX1VOVVNFRCB9LAorCXsgLTEgfSwKIH07CiAKLS8qCi0gKiBRTkFQIFRTLVsxMl0wOSBzcGVjaWZpYyBwb3dlciBvZmYgbWV0aG9kIHZpYSBVQVJUMS1hdHRhY2hlZCBQSUMKLSAqLwotCi0jZGVmaW5lIFVBUlQxX1JFRyh4KSAgKFVBUlQxX1ZJUlRfQkFTRSArICgoVUFSVF8jI3gpIDw8IDIpKQotCi1zdGF0aWMgdm9pZCBxbmFwX3RzMjA5X3Bvd2VyX29mZih2b2lkKQotewotCS8qIDE5MjAwIGJhdWQgZGl2aXNvciAqLwotCWNvbnN0IHVuc2lnbmVkIGRpdmlzb3IgPSAoKE9SSU9ONVhfVENMSyArICg4ICogMTkyMDApKSAvICgxNiAqIDE5MjAwKSk7Ci0KLQlwcl9pbmZvKCIlczogdHJpZ2dlcmluZyBwb3dlci1vZmYuLi5cbiIsIF9fZnVuY19fKTsKLQotCS8qIGhpamFjayB1YXJ0MSBhbmQgcmVzZXQgaW50byBzYW5lIHN0YXRlICgxOTIwMCw4bjEpICovCi0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoTENSKSwgMHg4Myk7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoRExMKSwgZGl2aXNvciAmIDB4ZmYpOwotCW9yaW9uNXhfd3JpdGUoVUFSVDFfUkVHKERMTSksIChkaXZpc29yID4+IDgpICYgMHhmZik7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoTENSKSwgMHgwMyk7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoSUVSKSwgMHgwMCk7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoRkNSKSwgMHgwMCk7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoTUNSKSwgMHgwMCk7Ci0KLQkvKiBzZW5kIHRoZSBwb3dlci1vZmYgY29tbWFuZCAnQScgdG8gUElDICovCi0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoVFgpLCAnQScpOwotfQotCiBzdGF0aWMgdm9pZCBfX2luaXQgcW5hcF90czIwOV9pbml0KHZvaWQpCiB7CiAJLyoKQEAgLTM2OCw1MSArMjc1LDMzIEBACiAJICovCiAJb3Jpb241eF9pbml0KCk7CiAKLQkvKgotCSAqIFNldHVwIGZsYXNoIG1hcHBpbmcKLQkgKi8KLQlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UsCi0JCQkgICAgUU5BUF9UUzIwOV9OT1JfQk9PVF9TSVpFKTsKKwlvcmlvbjV4X21wcF9jb25mKHRzMjA5X21wcF9tb2Rlcyk7CiAKIAkvKgotCSAqIE9wZW4gYSBzcGVjaWFsIGFkZHJlc3MgZGVjb2RlIHdpbmRvd3MgZm9yIHRoZSBQQ0llIFdBLgotCSAqLwotCW9yaW9uNXhfc2V0dXBfcGNpZV93YV93aW4oT1JJT041WF9QQ0lFX1dBX1BIWVNfQkFTRSwKLQkJCQlPUklPTjVYX1BDSUVfV0FfU0laRSk7Ci0KLQkvKgotCSAqIFNldHVwIE11bHRpcGxleGluZyBQaW5zIC0tCi0JICogTVBQWzBdIFJlc2VydmVkCi0JICogTVBQWzFdIFVTQiBjb3B5IGJ1dHRvbiAoMCBhY3RpdmUpCi0JICogTVBQWzJdIExvYWQgZGVmYXVsdHMgYnV0dG9uICgwIGFjdGl2ZSkKLQkgKiBNUFBbM10gR1BJTyBSVEMKLQkgKiBNUFBbNC01XSBSZXNlcnZlZAotCSAqIE1QUFs2XSBQQ0kgSW50IEEKLQkgKiBNUFBbN10gUENJIEludCBCCi0JICogTVBQWzgtMTFdIFJlc2VydmVkCi0JICogTVBQWzEyXSBTQVRBIDAgcHJlc2VuY2UKLQkgKiBNUFBbMTNdIFNBVEEgMSBwcmVzZW5jZQotCSAqIE1QUFsxNF0gU0FUQSAwIGFjdGl2ZQotCSAqIE1QUFsxNV0gU0FUQSAxIGFjdGl2ZQotCSAqIE1QUFsxNl0gVUFSVDEgUlhECi0JICogTVBQWzE3XSBVQVJUMSBUWEQKLQkgKiBNUFBbMThdIFNXX1JTVCAoMCBhY3RpdmUpCi0JICogTVBQWzE5XSBSZXNlcnZlZAogCSAqIE1QUFsyMF0gUENJIGNsb2NrIDAKIAkgKiBNUFBbMjFdIFBDSSBjbG9jayAxCiAJICogTVBQWzIyXSBVU0IgMCBvdmVyIGN1cnJlbnQKIAkgKiBNUFBbMjMtMjVdIFJlc2VydmVkCiAJICovCi0Jb3Jpb241eF93cml0ZShNUFBfMF83X0NUUkwsIDB4Myk7Ci0Jb3Jpb241eF93cml0ZShNUFBfOF8xNV9DVFJMLCAweDU1NTUwMDAwKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF8xNl8xOV9DVFJMLCAweDU1MDApOwotCW9yaW9uNXhfZ3Bpb19zZXRfdmFsaWRfcGlucygweDNjYzBmZmYpOwogCi0JLyogcmVnaXN0ZXIgdHMyMDkgc3BlY2lmaWMgcG93ZXItb2ZmIG1ldGhvZCAqLwotCXBtX3Bvd2VyX29mZiA9IHFuYXBfdHMyMDlfcG93ZXJfb2ZmOworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZWhjaTFfaW5pdCgpOworCXFuYXBfdHN4MDlfZmluZF9tYWNfYWRkcihRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UgKworCQkJCSBxbmFwX3RzMjA5X3BhcnRpdGlvbnNbNV0ub2Zmc2V0LAorCQkJCSBxbmFwX3RzMjA5X3BhcnRpdGlvbnNbNV0uc2l6ZSk7CisJb3Jpb241eF9ldGhfaW5pdCgmcW5hcF90c3gwOV9ldGhfZGF0YSk7CisJb3Jpb241eF9pMmNfaW5pdCgpOworCW9yaW9uNXhfc2F0YV9pbml0KCZxbmFwX3RzMjA5X3NhdGFfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CiAKLQlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhxbmFwX3RzMjA5X2RldmljZXMsCi0JCQkJQVJSQVlfU0laRShxbmFwX3RzMjA5X2RldmljZXMpKTsKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UsCisJCQkJICAgUU5BUF9UUzIwOV9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnFuYXBfdHMyMDlfbm9yX2ZsYXNoKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcW5hcF90czIwOV9idXR0b25fZGV2aWNlKTsKIAogCS8qIEdldCBSVEMgSVJRIGFuZCByZWdpc3RlciB0aGUgY2hpcCAqLwogCWlmIChncGlvX3JlcXVlc3QoVFMyMDlfUlRDX0dQSU8sICJydGMiKSA9PSAwKSB7CkBAIC00MjUsMTQgKzMxNCwxMiBAQAogCQlwcl93YXJuaW5nKCJxbmFwX3RzMjA5X2luaXQ6IGZhaWxlZCB0byBnZXQgUlRDIElSUVxuIik7CiAJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJnFuYXBfdHMyMDlfaTJjX3J0YywgMSk7CiAKLQl0czIwOV9maW5kX21hY19hZGRyKCk7Ci0Jb3Jpb241eF9ldGhfaW5pdCgmcW5hcF90czIwOV9ldGhfZGF0YSk7Ci0KLQlvcmlvbjV4X3NhdGFfaW5pdCgmcW5hcF90czIwOV9zYXRhX2RhdGEpOworCS8qIHJlZ2lzdGVyIHRzeDA5IHNwZWNpZmljIHBvd2VyLW9mZiBtZXRob2QgKi8KKwlwbV9wb3dlcl9vZmYgPSBxbmFwX3RzeDA5X3Bvd2VyX29mZjsKIH0KIAogTUFDSElORV9TVEFSVChUUzIwOSwgIlFOQVAgVFMtMTA5L1RTLTIwOSIpCi0JLyogTWFpbnRhaW5lcjogIEJ5cm9uIEJyYWRsZXkgPGJ5cm9uLmJicmFkbGV5QGdtYWlsLmNvbT4gKi8KKwkvKiBNYWludGFpbmVyOiBCeXJvbiBCcmFkbGV5IDxieXJvbi5iYnJhZGxleUBnbWFpbC5jb20+ICovCiAJLnBoeXNfaW8JPSBPUklPTjVYX1JFR1NfUEhZU19CQVNFLAogCS5pb19wZ19vZmZzdAk9ICgoT1JJT041WF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhGRkZDLAogCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHM0MDktc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czQwOS1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyZjBmZjAKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHM0MDktc2V0dXAuYwpAQCAtMCwwICsxLDI3MyBAQAorLyoKKyAqIFFOQVAgVFMtNDA5IEJvYXJkIFNldHVwCisgKgorICogTWFpbnRhaW5lcjogU3lsdmVyIEJydW5lYXUgPHN5bHZlci5icnVuZWF1QGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uCisgKiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsX3JlZy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorI2luY2x1ZGUgInRzeDA5LWNvbW1vbi5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFFOQVAgVFMtNDA5IEluZm8KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogUU5BUCBUUy00MDkgaGFyZHdhcmUgOgorICogLSBNYXJ2ZWxsIDg4RjUyODEtRDAKKyAqIC0gTWFydmVsbCA4OFNYNzA0MiBTQVRBIGNvbnRyb2xsZXIgKFBDSWUpCisgKiAtIE1hcnZlbGwgODhFMTExOCBHaWdhYml0IEV0aGVybmV0IFBIWQorICogLSBSVEMgUzM1MzkwQSAoQDB4MzApIG9uIEkyQyBidXMKKyAqIC0gOE1CIE5PUiBmbGFzaAorICogLSAyNTZNQiBvZiBERFItMiBSQU0KKyAqLworCisvKgorICogOE1CIE5PUiBmbGFzaCBEZXZpY2UgYnVzIGJvb3QgY2hpcCBzZWxlY3QKKyAqLworCisjZGVmaW5lIFFOQVBfVFM0MDlfTk9SX0JPT1RfQkFTRSAweGZmODAwMDAwCisjZGVmaW5lIFFOQVBfVFM0MDlfTk9SX0JPT1RfU0laRSBTWl84TQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogOE1pQiBOT1IgZmxhc2guIFRoZSBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBpcyBub3QgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlCisgKiAgICAgcGFydGl0aW9ucyBvbiB0aGUgZGV2aWNlIGJlY2F1c2Ugd2Ugd2FudCB0byBrZWVwIGNvbXBhdGFiaWxpdHkgd2l0aAorICogICAgIGV4aXN0aW5nIFFOQVAgZmlybXdhcmUuCisgKgorICogTGF5b3V0IGFzIHVzZWQgYnkgUU5BUDoKKyAqICBbMl0gMHgwMDAwMDAwMC0weDAwMjAwMDAwIDogIktlcm5lbCIKKyAqICBbM10gMHgwMDIwMDAwMC0weDAwNjAwMDAwIDogIlJvb3RGUzEiCisgKiAgWzRdIDB4MDA2MDAwMDAtMHgwMDcwMDAwMCA6ICJSb290RlMyIgorICogIFs2XSAweDAwNzAwMDAwLTB4MDA3NjAwMDAgOiAiTkFTIENvbmZpZyIgKHJlYWQtb25seSkKKyAqICBbNV0gMHgwMDc2MDAwMC0weDAwNzgwMDAwIDogIlUtQm9vdCBDb25maWciCisgKiAgWzFdIDB4MDA3ODAwMDAtMHgwMDgwMDAwMCA6ICJVLUJvb3QiIChyZWFkLW9ubHkpCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHFuYXBfdHM0MDlfcGFydGl0aW9uc1tdID0geworCXsKKwkJLm5hbWUJCT0gIlUtQm9vdCIsCisJCS5zaXplCQk9IDB4MDAwODAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDc4MDAwMCwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLAorCX0sIHsKKwkJLm5hbWUJCT0gIktlcm5lbCIsCisJCS5zaXplCQk9IDB4MDAyMDAwMDAsCisJCS5vZmZzZXQJCT0gMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJSb290RlMxIiwKKwkJLnNpemUJCT0gMHgwMDQwMDAwMCwKKwkJLm9mZnNldAkJPSAweDAwMjAwMDAwLAorCX0sIHsKKwkJLm5hbWUJCT0gIlJvb3RGUzIiLAorCQkuc2l6ZQkJPSAweDAwMTAwMDAwLAorCQkub2Zmc2V0CQk9IDB4MDA2MDAwMDAsCisJfSwgeworCQkubmFtZQkJPSAiVS1Cb290IENvbmZpZyIsCisJCS5zaXplCQk9IDB4MDAwMjAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDc2MDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJOQVMgQ29uZmlnIiwKKwkJLnNpemUJCT0gMHgwMDA2MDAwMCwKKwkJLm9mZnNldAkJPSAweDAwNzAwMDAwLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHFuYXBfdHM0MDlfbm9yX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDEsCisJLnBhcnRzCQk9IHFuYXBfdHM0MDlfcGFydGl0aW9ucywKKwkubnJfcGFydHMJPSBBUlJBWV9TSVpFKHFuYXBfdHM0MDlfcGFydGl0aW9ucykKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcW5hcF90czQwOV9ub3JfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CT0gUU5BUF9UUzQwOV9OT1JfQk9PVF9CQVNFLAorCS5lbmQJPSBRTkFQX1RTNDA5X05PUl9CT09UX0JBU0UgKyBRTkFQX1RTNDA5X05PUl9CT09UX1NJWkUgLSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcW5hcF90czQwOV9ub3JfZmxhc2ggPSB7CisJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geyAucGxhdGZvcm1fZGF0YSA9ICZxbmFwX3RzNDA5X25vcl9mbGFzaF9kYXRhLCB9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSAmcW5hcF90czQwOV9ub3JfZmxhc2hfcmVzb3VyY2UsCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFBDSQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQgX19pbml0IHFuYXBfdHM0MDlfcGNpX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCWludCBpcnE7CisKKwkvKgorCSAqIENoZWNrIGZvciBkZXZpY2VzIHdpdGggaGFyZC13aXJlZCBJUlFzLgorCSAqLworCWlycSA9IG9yaW9uNXhfcGNpX21hcF9pcnEoZGV2LCBzbG90LCBwaW4pOworCWlmIChpcnEgIT0gLTEpCisJCXJldHVybiBpcnE7CisKKwkvKgorCSAqIFBDSSBpc24ndCB1c2VkIG9uIHRoZSBUUy00MDkKKwkgKi8KKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIHFuYXBfdHM0MDlfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzCT0gMiwKKwkuc3dpenpsZQk9IHBjaV9zdGRfc3dpenpsZSwKKwkuc2V0dXAJCT0gb3Jpb241eF9wY2lfc3lzX3NldHVwLAorCS5zY2FuCQk9IG9yaW9uNXhfcGNpX3N5c19zY2FuX2J1cywKKwkubWFwX2lycQk9IHFuYXBfdHM0MDlfcGNpX21hcF9pcnEsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBxbmFwX3RzNDA5X3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfdHM0MDkoKSkKKwkJcGNpX2NvbW1vbl9pbml0KCZxbmFwX3RzNDA5X3BjaSk7CisKKwlyZXR1cm4gMDsKK30KKworc3Vic3lzX2luaXRjYWxsKHFuYXBfdHM0MDlfcGNpX2luaXQpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFJUQyBTMzUzOTBBIG9uIEkyQyBidXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFRTNDA5X1JUQ19HUElPCTEwCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBxbmFwX3RzNDA5X2kyY19ydGMgPSB7CisJSTJDX0JPQVJEX0lORk8oInMzNTM5MGEiLCAweDMwKSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHUElPIEF0dGFjaGVkIEtleXMKKyAqICAgICBQb3dlciBidXR0b24gaXMgYXR0YWNoZWQgdG8gdGhlIFBJQyBtaWNyb2NvbnRyb2xsZXIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFFOQVBfVFM0MDlfR1BJT19LRVlfTUVESUEJMTUKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIHFuYXBfdHM0MDlfYnV0dG9uc1tdID0geworCXsKKwkJLmNvZGUJCT0gS0VZX1JFU1RBUlQsCisJCS5ncGlvCQk9IFFOQVBfVFM0MDlfR1BJT19LRVlfTUVESUEsCisJCS5kZXNjCQk9ICJVU0IgQ29weSBCdXR0b24iLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgcW5hcF90czQwOV9idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IHFuYXBfdHM0MDlfYnV0dG9ucywKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKHFuYXBfdHM0MDlfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBxbmFwX3RzNDA5X2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcW5hcF90czQwOV9idXR0b25fZGF0YSwKKwl9LAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsIFNldHVwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSB0czQwOV9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9VTlVTRUQgfSwKKwl7ICAxLCBNUFBfVU5VU0VEIH0sCisJeyAgMiwgTVBQX1VOVVNFRCB9LAorCXsgIDMsIE1QUF9VTlVTRUQgfSwKKwl7ICA0LCBNUFBfR1BJTyB9LAkJLyogSEREIDEgc3RhdHVzICovCisJeyAgNSwgTVBQX0dQSU8gfSwJCS8qIEhERCAyIHN0YXR1cyAqLworCXsgIDYsIE1QUF9HUElPIH0sCQkvKiBIREQgMyBzdGF0dXMgKi8KKwl7ICA3LCBNUFBfR1BJTyB9LAkJLyogSEREIDQgc3RhdHVzICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAorCXsgIDksIE1QUF9VTlVTRUQgfSwKKwl7IDEwLCBNUFBfR1BJTyB9LAkJLyogUlRDIGludCAqLworCXsgMTEsIE1QUF9VTlVTRUQgfSwKKwl7IDEyLCBNUFBfVU5VU0VEIH0sCisJeyAxMywgTVBQX1VOVVNFRCB9LAorCXsgMTQsIE1QUF9HUElPIH0sCQkvKiBTV19SU1QgKi8KKwl7IDE1LCBNUFBfR1BJTyB9LAkJLyogVVNCIGNvcHkgYnV0dG9uICovCisJeyAxNiwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxIFJYRCAqLworCXsgMTcsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBUWEQgKi8KKwl7IDE4LCBNUFBfVU5VU0VEIH0sCisJeyAxOSwgTVBQX1VOVVNFRCB9LAorCXsgLTEgfSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBxbmFwX3RzNDA5X2luaXQodm9pZCkKK3sKKwkvKgorCSAqIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJb3Jpb241eF9pbml0KCk7CisKKwlvcmlvbjV4X21wcF9jb25mKHRzNDA5X21wcF9tb2Rlcyk7CisKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlxbmFwX3RzeDA5X2ZpbmRfbWFjX2FkZHIoUU5BUF9UUzQwOV9OT1JfQk9PVF9CQVNFICsKKwkJCQkgcW5hcF90czQwOV9wYXJ0aXRpb25zWzVdLm9mZnNldCwKKwkJCQkgcW5hcF90czQwOV9wYXJ0aXRpb25zWzVdLnNpemUpOworCW9yaW9uNXhfZXRoX2luaXQoJnFuYXBfdHN4MDlfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKFFOQVBfVFM0MDlfTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBRTkFQX1RTNDA5X05PUl9CT09UX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcW5hcF90czQwOV9ub3JfZmxhc2gpOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZxbmFwX3RzNDA5X2J1dHRvbl9kZXZpY2UpOworCisJLyogR2V0IFJUQyBJUlEgYW5kIHJlZ2lzdGVyIHRoZSBjaGlwICovCisJaWYgKGdwaW9fcmVxdWVzdChUUzQwOV9SVENfR1BJTywgInJ0YyIpID09IDApIHsKKwkJaWYgKGdwaW9fZGlyZWN0aW9uX2lucHV0KFRTNDA5X1JUQ19HUElPKSA9PSAwKQorCQkJcW5hcF90czQwOV9pMmNfcnRjLmlycSA9IGdwaW9fdG9faXJxKFRTNDA5X1JUQ19HUElPKTsKKwkJZWxzZQorCQkJZ3Bpb19mcmVlKFRTNDA5X1JUQ19HUElPKTsKKwl9CisJaWYgKHFuYXBfdHM0MDlfaTJjX3J0Yy5pcnEgPT0gMCkKKwkJcHJfd2FybmluZygicW5hcF90czQwOV9pbml0OiBmYWlsZWQgdG8gZ2V0IFJUQyBJUlFcbiIpOworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZxbmFwX3RzNDA5X2kyY19ydGMsIDEpOworCisJLyogcmVnaXN0ZXIgdHN4MDkgc3BlY2lmaWMgcG93ZXItb2ZmIG1ldGhvZCAqLworCXBtX3Bvd2VyX29mZiA9IHFuYXBfdHN4MDlfcG93ZXJfb2ZmOworfQorCitNQUNISU5FX1NUQVJUKFRTNDA5LCAiUU5BUCBUUy00MDkiKQorCS8qIE1haW50YWluZXI6ICBTeWx2ZXIgQnJ1bmVhdSA8c3lsdmVyLmJydW5lYXVAZ21haWwuY29tPiAqLworCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSBxbmFwX3RzNDA5X2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czc4eHgtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czc4eHgtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2U5ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzNzh4eC1zZXR1cC5jCkBAIC0wLDAgKzEsMjc3IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzNzh4eC1zZXR1cC5jCisgKgorICogTWFpbnRhaW5lcjogQWxleGFuZGVyIENsb3V0ZXIgPGFsZXhAZGlncml6Lm9yZy51az4KKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9tNDh0ODYuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVFMtNzh4eCBJbmZvCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIEZQR0EgLSBsaXZlcyB3aGVyZSB0aGUgUENJIGJ1cyB3b3VsZCBiZSBhdCBPUklPTjVYX1BDSV9NRU1fUEhZU19CQVNFCisgKi8KKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19QSFlTX0JBU0UJMHhlODAwMDAwMAorI2RlZmluZSBUUzc4WFhfRlBHQV9SRUdTX1ZJUlRfQkFTRQkweGZmOTAwMDAwCisjZGVmaW5lIFRTNzhYWF9GUEdBX1JFR1NfU0laRQkJU1pfMU0KKworI2RlZmluZSBUUzc4WFhfRlBHQV9SRUdTX1NZU0NPTl9JRAkoVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UgfCAweDAwMCkKKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19TWVNDT05fTENESQkoVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UgfCAweDAwNCkKKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19TWVNDT05fTENETwkoVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UgfCAweDAwOCkKKworI2RlZmluZSBUUzc4WFhfRlBHQV9SRUdTX1JUQ19DVFJMCShUUzc4WFhfRlBHQV9SRUdTX1ZJUlRfQkFTRSB8IDB4ODA4KQorI2RlZmluZSBUUzc4WFhfRlBHQV9SRUdTX1JUQ19EQVRBCShUUzc4WFhfRlBHQV9SRUdTX1ZJUlRfQkFTRSB8IDB4ODBjKQorCisvKgorICogNTEya0IgTk9SIGZsYXNoIERldmljZQorICovCisjZGVmaW5lIFRTNzhYWF9OT1JfQk9PVF9CQVNFCQkweGZmODAwMDAwCisjZGVmaW5lIFRTNzhYWF9OT1JfQk9PVF9TSVpFCQlTWl81MTJLCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogSS9PIEFkZHJlc3MgTWFwcGluZworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIHRzNzh4eF9pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCS52aXJ0dWFsCT0gVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UsCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihUUzc4WFhfRlBHQV9SRUdTX1BIWVNfQkFTRSksCisJCS5sZW5ndGgJCT0gVFM3OFhYX0ZQR0FfUkVHU19TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwKK307CisKK3ZvaWQgX19pbml0IHRzNzh4eF9tYXBfaW8odm9pZCkKK3sKKwlvcmlvbjV4X21hcF9pbygpOworCWlvdGFibGVfaW5pdCh0czc4eHhfaW9fZGVzYywgQVJSQVlfU0laRSh0czc4eHhfaW9fZGVzYykpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDUxMmtCIE5PUiBCb290IEZsYXNoIC0gdGhlIGNoaXAgaXMgYSBNMjVQNDAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHRzNzh4eF9ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCQk9ICJ0cy1ib290cm9tIiwKKwkJLm9mZnNldAkJPSAwLAorCQkvKiBvbmx5IHRoZSBmaXJzdCAyNTZrQiBpcyB1c2VkICovCisJCS5zaXplCQk9IFNaXzI1NkssCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgdHM3OHh4X25vcl9ib290X2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDEsCisJLnBhcnRzCQk9IHRzNzh4eF9ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZXMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRSh0czc4eHhfbm9yX2Jvb3RfZmxhc2hfcmVzb3VyY2VzKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdHM3OHh4X25vcl9ib290X2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJCT0gVFM3OFhYX05PUl9CT09UX0JBU0UsCisJLmVuZAkJPSBUUzc4WFhfTk9SX0JPT1RfQkFTRSArIFRTNzhYWF9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHRzNzh4eF9ub3JfYm9vdF9mbGFzaCA9IHsKKwkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZ0czc4eHhfbm9yX2Jvb3RfZmxhc2hfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSAmdHM3OHh4X25vcl9ib290X2ZsYXNoX3Jlc291cmNlLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFdGhlcm5ldAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgdHM3OHh4X2V0aF9kYXRhID0geworCS5waHlfYWRkcgk9IDAsCisJLmZvcmNlX3BoeV9hZGRyID0gMSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUlRDIE00OFQ4NiAtIG5pY2tlZF5XYm9ycm93ZWQgZnJvbSBhcmNoL2FybS9tYWNoLWVwOTN4eC90czcyeHguYworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZkZWYgQ09ORklHX1JUQ19EUlZfTTQ4VDg2CitzdGF0aWMgdW5zaWduZWQgY2hhciB0czc4eHhfcnRjX3JlYWRieXRlKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwl3cml0ZWIoYWRkciwgVFM3OFhYX0ZQR0FfUkVHU19SVENfQ1RSTCk7CisJcmV0dXJuIHJlYWRiKFRTNzhYWF9GUEdBX1JFR1NfUlRDX0RBVEEpOworfQorCitzdGF0aWMgdm9pZCB0czc4eHhfcnRjX3dyaXRlYnl0ZSh1bnNpZ25lZCBjaGFyIHZhbHVlLCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJd3JpdGViKGFkZHIsIFRTNzhYWF9GUEdBX1JFR1NfUlRDX0NUUkwpOworCXdyaXRlYih2YWx1ZSwgVFM3OFhYX0ZQR0FfUkVHU19SVENfREFUQSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbTQ4dDg2X29wcyB0czc4eHhfcnRjX29wcyA9IHsKKwkucmVhZGJ5dGUJPSB0czc4eHhfcnRjX3JlYWRieXRlLAorCS53cml0ZWJ5dGUJPSB0czc4eHhfcnRjX3dyaXRlYnl0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHRzNzh4eF9ydGNfZGV2aWNlID0geworCS5uYW1lCQk9ICJydGMtbTQ4dDg2IiwKKwkuaWQJCT0gLTEsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnRzNzh4eF9ydGNfb3BzLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAwLAorfTsKKworLyoKKyAqIFRTIHVzZXMgc29tZSBvZiB0aGUgdXNlciBzdG9yYWdlIHNwYWNlIG9uIHRoZSBSVEMgY2hpcCBzbyBzZWUgaWYgaXQgaXMKKyAqIHByZXNlbnQ7IGFzIGl0J3MgYW4gb3B0aW9uYWwgZmVhdHVyZSBhdCBwdXJjaGFzZSB0aW1lIGFuZCBub3QgYWxsIGJvYXJkcworICogd2lsbCBoYXZlIGl0IHByZXNlbnQKKyAqCisgKiBJJ3ZlIHVzZWQgdGhlIG1ldGhvZCBUUyB1c2UgaW4gdGhlaXIgcnRjNzgwMC5jIGV4YW1wbGUgZm9yIHRoZSBkZXRlY3Rpb24KKyAqCisgKiBUT0RPOiB0cmFjayBkb3duIGEgZ3VpbmVhIHBpZyB3aXRob3V0IGFuIFJUQyB0byBzZWUgaWYgd2UgY2FuIHdvcmsgb3V0IGEKKyAqIAkJYmV0dGVyIFJUQyBkZXRlY3Rpb24gcm91dGluZQorICovCitzdGF0aWMgaW50IF9faW5pdCB0czc4eHhfcnRjX2luaXQodm9pZCkKK3sKKwl1bnNpZ25lZCBjaGFyIHRtcF9ydGMwLCB0bXBfcnRjMTsKKworCXRtcF9ydGMwID0gdHM3OHh4X3J0Y19yZWFkYnl0ZSgxMjYpOworCXRtcF9ydGMxID0gdHM3OHh4X3J0Y19yZWFkYnl0ZSgxMjcpOworCisJdHM3OHh4X3J0Y193cml0ZWJ5dGUoMHgwMCwgMTI2KTsKKwl0czc4eHhfcnRjX3dyaXRlYnl0ZSgweDU1LCAxMjcpOworCWlmICh0czc4eHhfcnRjX3JlYWRieXRlKDEyNykgPT0gMHg1NSkgeworCQl0czc4eHhfcnRjX3dyaXRlYnl0ZSgweGFhLCAxMjcpOworCQlpZiAodHM3OHh4X3J0Y19yZWFkYnl0ZSgxMjcpID09IDB4YWEKKwkJCQkmJiB0czc4eHhfcnRjX3JlYWRieXRlKDEyNikgPT0gMHgwMCkgeworCQkJdHM3OHh4X3J0Y193cml0ZWJ5dGUodG1wX3J0YzAsIDEyNik7CisJCQl0czc4eHhfcnRjX3dyaXRlYnl0ZSh0bXBfcnRjMSwgMTI3KTsKKwkJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmdHM3OHh4X3J0Y19kZXZpY2UpOworCQkJcmV0dXJuIDE7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK307CisjZWxzZQorc3RhdGljIGludCBfX2luaXQgdHM3OHh4X3J0Y19pbml0KHZvaWQpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTQVRBCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIHRzNzh4eF9zYXRhX2RhdGEgPSB7CisJLm5fcG9ydHMJPSAyLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBwcmludCBzb21lIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGUgYm9hcmQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgX19pbml0IHRzNzh4eF9wcmludF9ib2FyZF9pZCh2b2lkKQoreworCXVuc2lnbmVkIGludCBib2FyZF9pbmZvOworCisJYm9hcmRfaW5mbyA9IHJlYWRsKFRTNzhYWF9GUEdBX1JFR1NfU1lTQ09OX0lEKTsKKwlwcmludGsoS0VSTl9JTkZPICJUUy03OHh4IEluZm86IEZQR0EgcmV2PSUuMngsIEJvYXJkIE1hZ2ljPSUuNngsICIsCisJCQkJYm9hcmRfaW5mbyAmIDB4ZmYsCisJCQkJKGJvYXJkX2luZm8gPj4gOCkgJiAweGZmZmZmZik7CisJYm9hcmRfaW5mbyA9IHJlYWRsKFRTNzhYWF9GUEdBX1JFR1NfU1lTQ09OX0xDREkpOworCXByaW50aygiSlAxPSVkLCBKUDI9JWRcbiIsCisJCQkJKGJvYXJkX2luZm8gPj4gMzApICYgMHgxLAorCQkJCShib2FyZF9pbmZvID4+IDMxKSAmIDB4MSk7Cit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwgU2V0dXAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIHRzNzh4eF9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9VTlVTRUQgfSwKKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogSlRBRyBDbG9jayAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBKVEFHIERhdGEgSW4gKi8KKwl7ICAzLCBNUFBfR1BJTyB9LAkJLyogTGF0IEVDUDIgMjU2IEZQR0EgLSBQQjJCICovCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIEpUQUcgRGF0YSBPdXQgKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogSlRBRyBUTVMgKi8KKwl7ICA2LCBNUFBfR1BJTyB9LAkJLyogTGF0IEVDUDIgMjU2IEZQR0EgLSBQQjMxQV9DTEs0KyAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiBMYXQgRUNQMiAyNTYgRlBHQSAtIFBCMjJCICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAorCXsgIDksIE1QUF9VTlVTRUQgfSwKKwl7IDEwLCBNUFBfVU5VU0VEIH0sCisJeyAxMSwgTVBQX1VOVVNFRCB9LAorCXsgMTIsIE1QUF9VTlVTRUQgfSwKKwl7IDEzLCBNUFBfVU5VU0VEIH0sCisJeyAxNCwgTVBQX1VOVVNFRCB9LAorCXsgMTUsIE1QUF9VTlVTRUQgfSwKKwl7IDE2LCBNUFBfVUFSVCB9LAorCXsgMTcsIE1QUF9VQVJUIH0sCisJeyAxOCwgTVBQX1VBUlQgfSwKKwl7IDE5LCBNUFBfVUFSVCB9LAorCXsgLTEgfSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCB0czc4eHhfaW5pdCh2b2lkKQoreworCS8qCisJICogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlvcmlvbjV4X2luaXQoKTsKKworCXRzNzh4eF9wcmludF9ib2FyZF9pZCgpOworCisJb3Jpb241eF9tcHBfY29uZih0czc4eHhfbXBwX21vZGVzKTsKKworCS8qCisJICogTVBQWzIwXSBQQ0kgQ2xvY2sgT3V0IDEKKwkgKiBNUFBbMjFdIFBDSSBDbG9jayBPdXQgMAorCSAqIE1QUFsyMl0gVW51c2VkCisJICogTVBQWzIzXSBVbnVzZWQKKwkgKiBNUFBbMjRdIFVudXNlZAorCSAqIE1QUFsyNV0gVW51c2VkCisJICovCisKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2VoY2kxX2luaXQoKTsKKwlvcmlvbjV4X2V0aF9pbml0KCZ0czc4eHhfZXRoX2RhdGEpOworCW9yaW9uNXhfc2F0YV9pbml0KCZ0czc4eHhfc2F0YV9kYXRhKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKwlvcmlvbjV4X3VhcnQxX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKFRTNzhYWF9OT1JfQk9PVF9CQVNFLAorCQkJCSAgIFRTNzhYWF9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnRzNzh4eF9ub3JfYm9vdF9mbGFzaCk7CisKKwlpZiAoIXRzNzh4eF9ydGNfaW5pdCgpKQorCQlwcmludGsoS0VSTl9JTkZPICJUUy03OHh4IFJUQyBub3QgZGV0ZWN0ZWQgb3IgZW5hYmxlZFxuIik7Cit9CisKK01BQ0hJTkVfU1RBUlQoVFM3OFhYLCAiVGVjaG5vbG9naWMgU3lzdGVtcyBUUy03OHh4IFNCQyIpCisJLyogTWFpbnRhaW5lcjogQWxleGFuZGVyIENsb3V0ZXIgPGFsZXhAZGlncml6Lm9yZy51az4gKi8KKwkucGh5c19pbwk9IE9SSU9ONVhfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChPUklPTjVYX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweEZGRkMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gdHM3OHh4X2luaXQsCisJLm1hcF9pbwkJPSB0czc4eHhfbWFwX2lvLAorCS5pbml0X2lycQk9IG9yaW9uNXhfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZvcmlvbjV4X3RpbWVyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC90c3gwOS1jb21tb24uYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90c3gwOS1jb21tb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2ZlYWMzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzeDA5LWNvbW1vbi5jCkBAIC0wLDAgKzEsMTMzIEBACisvKgorICogUU5BUCBUUy14MDkgQm9hcmRzIGNvbW1vbiBmdW5jdGlvbnMKKyAqCisgKiBNYWludGFpbmVyczogTGVubmVydCBCdXl0ZW5oZWsgPGJ1eXRlbmhAbWFydmVsbC5jb20+CisgKgkJQnlyb24gQnJhZGxleSA8Ynlyb24uYmJyYWRsZXlAZ21haWwuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24KKyAqIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+CisjaW5jbHVkZSAidHN4MDktY29tbW9uLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUU5BUCBUUy14MDkgc3BlY2lmaWMgcG93ZXIgb2ZmIG1ldGhvZCB2aWEgVUFSVDEtYXR0YWNoZWQgUElDCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBVQVJUMV9SRUcoeCkJKFVBUlQxX1ZJUlRfQkFTRSArICgoVUFSVF8jI3gpIDw8IDIpKQorCit2b2lkIHFuYXBfdHN4MDlfcG93ZXJfb2ZmKHZvaWQpCit7CisJLyogMTkyMDAgYmF1ZCBkaXZpc29yICovCisJY29uc3QgdW5zaWduZWQgZGl2aXNvciA9ICgoT1JJT041WF9UQ0xLICsgKDggKiAxOTIwMCkpIC8gKDE2ICogMTkyMDApKTsKKworCXByX2luZm8oIiVzOiB0cmlnZ2VyaW5nIHBvd2VyLW9mZi4uLlxuIiwgX19mdW5jX18pOworCisJLyogaGlqYWNrIHVhcnQxIGFuZCByZXNldCBpbnRvIHNhbmUgc3RhdGUgKDE5MjAwLDhuMSkgKi8KKwl3cml0ZWwoMHg4MywgVUFSVDFfUkVHKExDUikpOworCXdyaXRlbChkaXZpc29yICYgMHhmZiwgVUFSVDFfUkVHKERMTCkpOworCXdyaXRlbCgoZGl2aXNvciA+PiA4KSAmIDB4ZmYsIFVBUlQxX1JFRyhETE0pKTsKKwl3cml0ZWwoMHgwMywgVUFSVDFfUkVHKExDUikpOworCXdyaXRlbCgweDAwLCBVQVJUMV9SRUcoSUVSKSk7CisJd3JpdGVsKDB4MDAsIFVBUlQxX1JFRyhGQ1IpKTsKKwl3cml0ZWwoMHgwMCwgVUFSVDFfUkVHKE1DUikpOworCisJLyogc2VuZCB0aGUgcG93ZXItb2ZmIGNvbW1hbmQgJ0EnIHRvIFBJQyAqLworCXdyaXRlbCgnQScsIFVBUlQxX1JFRyhUWCkpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEV0aGVybmV0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgcW5hcF90c3gwOV9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSA4LAorfTsKKworc3RhdGljIGludCBfX2luaXQgcW5hcF90c3gwOV9wYXJzZV9oZXhfbmliYmxlKGNoYXIgbikKK3sKKwlpZiAobiA+PSAnMCcgJiYgbiA8PSAnOScpCisJCXJldHVybiBuIC0gJzAnOworCisJaWYgKG4gPj0gJ0EnICYmIG4gPD0gJ0YnKQorCQlyZXR1cm4gbiAtICdBJyArIDEwOworCisJaWYgKG4gPj0gJ2EnICYmIG4gPD0gJ2YnKQorCQlyZXR1cm4gbiAtICdhJyArIDEwOworCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgaW50IF9faW5pdCBxbmFwX3RzeDA5X3BhcnNlX2hleF9ieXRlKGNvbnN0IGNoYXIgKmIpCit7CisJaW50IGhpOworCWludCBsbzsKKworCWhpID0gcW5hcF90c3gwOV9wYXJzZV9oZXhfbmliYmxlKGJbMF0pOworCWxvID0gcW5hcF90c3gwOV9wYXJzZV9oZXhfbmliYmxlKGJbMV0pOworCisJaWYgKGhpIDwgMCB8fCBsbyA8IDApCisJCXJldHVybiAtMTsKKworCXJldHVybiAoaGkgPDwgNCkgfCBsbzsKK30KKworc3RhdGljIGludCBfX2luaXQgcW5hcF90c3gwOV9jaGVja19tYWNfYWRkcihjb25zdCBjaGFyICphZGRyX3N0cikKK3sKKwl1X2ludDhfdCBhZGRyWzZdOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IDY7IGkrKykgeworCQlpbnQgYnl0ZTsKKworCQkvKgorCQkgKiBFbmZvcmNlICJ4eDp4eDp4eDp4eDp4eDp4eFxuIiBmb3JtYXQuCisJCSAqLworCQlpZiAoYWRkcl9zdHJbKGkgKiAzKSArIDJdICE9ICgoaSA8IDUpID8gJzonIDogJ1xuJykpCisJCQlyZXR1cm4gLTE7CisKKwkJYnl0ZSA9IHFuYXBfdHN4MDlfcGFyc2VfaGV4X2J5dGUoYWRkcl9zdHIgKyAoaSAqIDMpKTsKKwkJaWYgKGJ5dGUgPCAwKQorCQkJcmV0dXJuIC0xOworCQlhZGRyW2ldID0gYnl0ZTsKKwl9CisKKwlwcmludGsoS0VSTl9JTkZPICJ0c3gwOTogZm91bmQgZXRoZXJuZXQgbWFjIGFkZHJlc3MgIik7CisJZm9yIChpID0gMDsgaSA8IDY7IGkrKykKKwkJcHJpbnRrKCIlLjJ4JXMiLCBhZGRyW2ldLCAoaSA8IDUpID8gIjoiIDogIi5cbiIpOworCisJbWVtY3B5KHFuYXBfdHN4MDlfZXRoX2RhdGEubWFjX2FkZHIsIGFkZHIsIDYpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBUaGUgJ05BUyBDb25maWcnIGZsYXNoIHBhcnRpdGlvbiBoYXMgYW4gZXh0MiBmaWxlc3lzdGVtIHdoaWNoCisgKiBjb250YWlucyBhIGZpbGUgdGhhdCBoYXMgdGhlIGV0aGVybmV0IE1BQyBhZGRyZXNzIGluIHBsYWluIHRleHQKKyAqIChmb3JtYXQgInh4Onh4Onh4Onh4Onh4Onh4XG4iKS4KKyAqLwordm9pZCBfX2luaXQgcW5hcF90c3gwOV9maW5kX21hY19hZGRyKHUzMiBtZW1fYmFzZSwgdTMyIHNpemUpCit7CisJdW5zaWduZWQgbG9uZyBhZGRyOworCisJZm9yIChhZGRyID0gbWVtX2Jhc2U7IGFkZHIgPCAobWVtX2Jhc2UgKyBzaXplKTsgYWRkciArPSAxMDI0KSB7CisJCWNoYXIgKm5vcl9wYWdlOworCQlpbnQgcmV0ID0gMDsKKworCQlub3JfcGFnZSA9IGlvcmVtYXAoYWRkciwgMTAyNCk7CisJCWlmIChub3JfcGFnZSAhPSBOVUxMKSB7CisJCQlyZXQgPSBxbmFwX3RzeDA5X2NoZWNrX21hY19hZGRyKG5vcl9wYWdlKTsKKwkJCWlvdW5tYXAobm9yX3BhZ2UpOworCQl9CisKKwkJaWYgKHJldCA9PSAwKQorCQkJYnJlYWs7CisJfQorfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzeDA5LWNvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzeDA5LWNvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ODQyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHN4MDktY29tbW9uLmgKQEAgLTAsMCArMSwyMCBAQAorI2lmbmRlZiBfX0FSQ0hfT1JJT041WF9UU1gwOV9DT01NT05fSAorI2RlZmluZSBfX0FSQ0hfT1JJT041WF9UU1gwOV9DT01NT05fSAorCisvKgorICogUU5BUCBUUy14MDkgQm9hcmRzIHBvd2VyLW9mZiBmdW5jdGlvbgorICovCitleHRlcm4gdm9pZCBxbmFwX3RzeDA5X3Bvd2VyX29mZih2b2lkKTsKKworLyoKKyAqIFFOQVAgVFMteDA5IEJvYXJkcyBmdW5jdGlvbiB0byBmaW5kIEV0aGVybmV0IE1BQyBhZGRyZXNzIGluIGZsYXNoIG1lbW9yeQorICovCitleHRlcm4gdm9pZCBfX2luaXQgcW5hcF90c3gwOV9maW5kX21hY19hZGRyKHUzMiBtZW1fYmFzZSwgdTMyIHNpemUpOworCisvKgorICogUU5BUCBUUy14MDkgQm9hcmRzIGV0aGVybmV0IGRlY2xhcmF0aW9uCisgKi8KK2V4dGVybiBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBxbmFwX3RzeDA5X2V0aF9kYXRhOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3ducjg1NHQtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC93bnI4NTR0LXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFmMDkzZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC93bnI4NTR0LXNldHVwLmMKQEAgLTAsMCArMSwxNjQgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLW9yaW9uNXgvd25yODU0dC1zZXR1cC5jCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKKworc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIHducjg1NHRfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfR1BJTyB9LAkJLyogUG93ZXIgTEVEIGdyZWVuICgwPW9uKSAqLworCXsgIDEsIE1QUF9HUElPIH0sCQkvKiBSZXNldCBCdXR0b24gKDA9b2ZmKSAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBQb3dlciBMRUQgYmxpbmsgKDA9b2ZmKSAqLworCXsgIDMsIE1QUF9HUElPIH0sCQkvKiBXQU4gU3RhdHVzIExFRCBhbWJlciAoMD1vZmYpICovCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIFBDSSBpbnQgKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogPz8/ICovCisJeyAgNiwgTVBQX0dQSU8gfSwJCS8qID8/PyAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiA/Pz8gKi8KKwl7ICA4LCBNUFBfVU5VU0VEIH0sCQkvKiA/Pz8gKi8KKwl7ICA5LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhFUlIgKi8KKwl7IDEwLCBNUFBfVU5VU0VEIH0sCQkvKiA/Pz8gKi8KKwl7IDExLCBNUFBfVU5VU0VEIH0sCQkvKiA/Pz8gKi8KKwl7IDEyLCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzRdICovCisJeyAxMywgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs1XSAqLworCXsgMTQsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNl0gKi8KKwl7IDE1LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzddICovCisJeyAxNiwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs0XSAqLworCXsgMTcsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNV0gKi8KKwl7IDE4LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzZdICovCisJeyAxOSwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs3XSAqLworCXsgLTEgfSwKK307CisKKy8qCisgKiA4TSBOT1IgZmxhc2ggRGV2aWNlIGJ1cyBib290IGNoaXAgc2VsZWN0CisgKi8KKyNkZWZpbmUgV05SODU0VF9OT1JfQk9PVF9CQVNFCTB4ZjQwMDAwMDAKKyNkZWZpbmUgV05SODU0VF9OT1JfQk9PVF9TSVpFCVNaXzhNCisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiB3bnI4NTR0X25vcl9mbGFzaF9wYXJ0aXRpb25zW10gPSB7CisJeworCQkubmFtZQkJPSAia2VybmVsIiwKKwkJLm9mZnNldAkJPSAweDAwMDAwMDAwLAorCQkuc2l6ZQkJPSAweDAwMTAwMDAwLAorCX0sIHsKKwkJLm5hbWUJCT0gInJvb3RmcyIsCisJCS5vZmZzZXQJCT0gMHgwMDEwMDAwMCwKKwkJLnNpemUJCT0gMHgwMDY2MDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJ1Ym9vdCIsCisJCS5vZmZzZXQJCT0gMHgwMDc2MDAwMCwKKwkJLnNpemUJCT0gMHgwMDA0MDAwMCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgd25yODU0dF9ub3JfZmxhc2hfZGF0YSA9IHsKKwkud2lkdGgJCT0gMiwKKwkucGFydHMJCT0gd25yODU0dF9ub3JfZmxhc2hfcGFydGl0aW9ucywKKwkubnJfcGFydHMJPSBBUlJBWV9TSVpFKHducjg1NHRfbm9yX2ZsYXNoX3BhcnRpdGlvbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB3bnI4NTR0X25vcl9mbGFzaF9yZXNvdXJjZSA9IHsKKwkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CQk9IFdOUjg1NFRfTk9SX0JPT1RfQkFTRSwKKwkuZW5kCQk9IFdOUjg1NFRfTk9SX0JPT1RfQkFTRSArIFdOUjg1NFRfTk9SX0JPT1RfU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB3bnI4NTR0X25vcl9mbGFzaCA9IHsKKwkubmFtZQkJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmd25yODU0dF9ub3JfZmxhc2hfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCQk9IDEsCisJLnJlc291cmNlCQk9ICZ3bnI4NTR0X25vcl9mbGFzaF9yZXNvdXJjZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSB3bnI4NTR0X2V0aF9kYXRhID0geworCS5waHlfYWRkcgk9IC0xLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHducjg1NHRfaW5pdCh2b2lkKQoreworCS8qCisJICogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlvcmlvbjV4X2luaXQoKTsKKworCW9yaW9uNXhfbXBwX2NvbmYod25yODU0dF9tcHBfbW9kZXMpOworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9ldGhfaW5pdCgmd25yODU0dF9ldGhfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihXTlI4NTRUX05PUl9CT09UX0JBU0UsCisJCQkJICAgV05SODU0VF9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnducjg1NHRfbm9yX2ZsYXNoKTsKK30KKworc3RhdGljIGludCBfX2luaXQgd25yODU0dF9wY2lfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJaW50IGlycTsKKworCS8qCisJICogQ2hlY2sgZm9yIGRldmljZXMgd2l0aCBoYXJkLXdpcmVkIElSUXMuCisJICovCisJaXJxID0gb3Jpb241eF9wY2lfbWFwX2lycShkZXYsIHNsb3QsIHBpbik7CisJaWYgKGlycSAhPSAtMSkKKwkJcmV0dXJuIGlycTsKKworCS8qCisJICogTWluaS1QQ0kgc2xvdC4KKwkgKi8KKwlpZiAoc2xvdCA9PSA3KQorCQlyZXR1cm4gZ3Bpb190b19pcnEoNCk7CisKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIHducjg1NHRfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzCT0gMiwKKwkuc3dpenpsZQk9IHBjaV9zdGRfc3dpenpsZSwKKwkuc2V0dXAJCT0gb3Jpb241eF9wY2lfc3lzX3NldHVwLAorCS5zY2FuCQk9IG9yaW9uNXhfcGNpX3N5c19zY2FuX2J1cywKKwkubWFwX2lycQk9IHducjg1NHRfcGNpX21hcF9pcnEsCit9OworCitzdGF0aWMgaW50IF9faW5pdCB3bnI4NTR0X3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfd25yODU0dCgpKQorCQlwY2lfY29tbW9uX2luaXQoJnducjg1NHRfcGNpKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKHducjg1NHRfcGNpX2luaXQpOworCitNQUNISU5FX1NUQVJUKFdOUjg1NFQsICJOZXRnZWFyIFdOUjg1NFQiKQorCS8qIE1haW50YWluZXI6IEltcmUgS2Fsb3ogPGthbG96QG9wZW53cnQub3JnPiAqLworCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSB3bnI4NTR0X2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC93cnQzNTBuLXYyLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvd3J0MzUwbi12Mi1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYWI1NWMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvd3J0MzUwbi12Mi1zZXR1cC5jCkBAIC0wLDAgKzEsMTczIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3dydDM1MG4tdjItc2V0dXAuYworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisKK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSB3cnQzNTBuX3YyX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX0dQSU8gfSwJCS8qIFBvd2VyIExFRCBncmVlbiAoMD1vbikgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogU2VjdXJpdHkgTEVEICgwPW9uKSAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBJbnRlcm5hbCBCdXR0b24gKDA9b24pICovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIFJlc2V0IEJ1dHRvbiAoMD1vbikgKi8KKwl7ICA0LCBNUFBfR1BJTyB9LAkJLyogUENJIGludCAqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBQb3dlciBMRUQgb3JhbmdlICgwPW9uKSAqLworCXsgIDYsIE1QUF9HUElPIH0sCQkvKiBVU0IgTEVEICgwPW9uKSAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiBXaXJlbGVzcyBMRUQgKDA9b24pICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAkJLyogPz8/ICovCisJeyAgOSwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRVJSICovCisJeyAxMCwgTVBQX1VOVVNFRCB9LAkJLyogPz8/ICovCisJeyAxMSwgTVBQX1VOVVNFRCB9LAkJLyogPz8/ICovCisJeyAxMiwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs0XSAqLworCXsgMTMsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNV0gKi8KKwl7IDE0LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzZdICovCisJeyAxNSwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs3XSAqLworCXsgMTYsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNF0gKi8KKwl7IDE3LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzVdICovCisJeyAxOCwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs2XSAqLworCXsgMTksIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbN10gKi8KKwl7IC0xIH0sCit9OworCisvKgorICogOE0gTk9SIGZsYXNoIERldmljZSBidXMgYm9vdCBjaGlwIHNlbGVjdAorICovCisjZGVmaW5lIFdSVDM1ME5fVjJfTk9SX0JPT1RfQkFTRQkweGY0MDAwMDAwCisjZGVmaW5lIFdSVDM1ME5fVjJfTk9SX0JPT1RfU0laRQlTWl84TQorCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gd3J0MzUwbl92Ml9ub3JfZmxhc2hfcGFydGl0aW9uc1tdID0geworCXsKKwkJLm5hbWUJCT0gImtlcm5lbCIsCisJCS5vZmZzZXQJCT0gMHgwMDAwMDAwMCwKKwkJLnNpemUJCT0gMHgwMDc2MDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJyb290ZnMiLAorCQkub2Zmc2V0CQk9IDB4MDAxYTAwMDAsCisJCS5zaXplCQk9IDB4MDA1YzAwMDAsCisJfSwgeworCQkubmFtZQkJPSAibGFuZyIsCisJCS5vZmZzZXQJCT0gMHgwMDc2MDAwMCwKKwkJLnNpemUJCT0gMHgwMDA0MDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJudnJhbSIsCisJCS5vZmZzZXQJCT0gMHgwMDdhMDAwMCwKKwkJLnNpemUJCT0gMHgwMDAyMDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJ1LWJvb3QiLAorCQkub2Zmc2V0CQk9IDB4MDA3YzAwMDAsCisJCS5zaXplCQk9IDB4MDAwNDAwMDAsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHdydDM1MG5fdjJfbm9yX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDEsCisJLnBhcnRzCQk9IHdydDM1MG5fdjJfbm9yX2ZsYXNoX3BhcnRpdGlvbnMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRSh3cnQzNTBuX3YyX25vcl9mbGFzaF9wYXJ0aXRpb25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugd3J0MzUwbl92Ml9ub3JfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAkJPSBXUlQzNTBOX1YyX05PUl9CT09UX0JBU0UsCisJLmVuZAkJPSBXUlQzNTBOX1YyX05PUl9CT09UX0JBU0UgKyBXUlQzNTBOX1YyX05PUl9CT09UX1NJWkUgLSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugd3J0MzUwbl92Ml9ub3JfZmxhc2ggPSB7CisJLm5hbWUJCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJndydDM1MG5fdjJfbm9yX2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwkJPSAxLAorCS5yZXNvdXJjZQkJPSAmd3J0MzUwbl92Ml9ub3JfZmxhc2hfcmVzb3VyY2UsCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgd3J0MzUwbl92Ml9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAtMSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCB3cnQzNTBuX3YyX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJb3Jpb241eF9pbml0KCk7CisKKwlvcmlvbjV4X21wcF9jb25mKHdydDM1MG5fdjJfbXBwX21vZGVzKTsKKworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZXRoX2luaXQoJndydDM1MG5fdjJfZXRoX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oV1JUMzUwTl9WMl9OT1JfQk9PVF9CQVNFLAorCQkJCSAgIFdSVDM1ME5fVjJfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ3cnQzNTBuX3YyX25vcl9mbGFzaCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHdydDM1MG5fdjJfcGNpX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCWludCBpcnE7CisKKwkvKgorCSAqIENoZWNrIGZvciBkZXZpY2VzIHdpdGggaGFyZC13aXJlZCBJUlFzLgorCSAqLworCWlycSA9IG9yaW9uNXhfcGNpX21hcF9pcnEoZGV2LCBzbG90LCBwaW4pOworCWlmIChpcnEgIT0gLTEpCisJCXJldHVybiBpcnE7CisKKwkvKgorCSAqIE1pbmktUENJIHNsb3QuCisJICovCisJaWYgKHNsb3QgPT0gNykKKwkJcmV0dXJuIGdwaW9fdG9faXJxKDQpOworCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgc3RydWN0IGh3X3BjaSB3cnQzNTBuX3YyX3BjaSBfX2luaXRkYXRhID0geworCS5ucl9jb250cm9sbGVycwk9IDIsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG9yaW9uNXhfcGNpX3N5c19zZXR1cCwKKwkuc2NhbgkJPSBvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSB3cnQzNTBuX3YyX3BjaV9tYXBfaXJxLAorfTsKKworc3RhdGljIGludCBfX2luaXQgd3J0MzUwbl92Ml9wY2lfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX3dydDM1MG5fdjIoKSkKKwkJcGNpX2NvbW1vbl9pbml0KCZ3cnQzNTBuX3YyX3BjaSk7CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbCh3cnQzNTBuX3YyX3BjaV9pbml0KTsKKworTUFDSElORV9TVEFSVChXUlQzNTBOX1YyLCAiTGlua3N5cyBXUlQzNTBOIHYyIikKKwkvKiBNYWludGFpbmVyOiBMZW5uZXJ0IEJ1eXRlbmhlayA8YnV5dGVuaEBtYXJ2ZWxsLmNvbT4gKi8KKwkucGh5c19pbwk9IE9SSU9ONVhfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChPUklPTjVYX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweEZGRkMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gd3J0MzUwbl92Ml9pbml0LAorCS5tYXBfaW8JCT0gb3Jpb241eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gb3Jpb241eF9pbml0X2lycSwKKwkudGltZXIJCT0gJm9yaW9uNXhfdGltZXIsCisJLmZpeHVwCQk9IHRhZ19maXh1cF9tZW0zMiwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1weGEvS2NvbmZpZwppbmRleCA1ZGE3YTY4Li45MTRiYjMzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL0tjb25maWcKQEAgLTIwLDggKzIwLDcgQEAKIAogZW5kaWYKIAotY2hvaWNlCi0JcHJvbXB0ICJTZWxlY3QgdGFyZ2V0IGJvYXJkIgorbWVudSAiU2VsZWN0IHRhcmdldCBib2FyZHMiCiAKIGNvbmZpZyBBUkNIX0dVTVNUSVgKIAlib29sICJHdW1zdGl4IFhTY2FsZSBib2FyZHMiCkBAIC0zNywxMCArMzYsMTIgQEAKIGNvbmZpZyBNQUNIX0xPR0lDUERfUFhBMjcwCiAJYm9vbCAiTG9naWNQRCBQWEEyNzAgQ2FyZCBFbmdpbmUgRGV2ZWxvcG1lbnQgUGxhdGZvcm0iCiAJc2VsZWN0IFBYQTI3eAorCXNlbGVjdCBIQVZFX1BXTQogCiBjb25maWcgTUFDSF9NQUlOU1RPTkUKIAlib29sICJJbnRlbCBIQ0REQkJWQTAgRGV2ZWxvcG1lbnQgUGxhdGZvcm0iCiAJc2VsZWN0IFBYQTI3eAorCXNlbGVjdCBIQVZFX1BXTQogCiBjb25maWcgQVJDSF9QWEFfSURQCiAJYm9vbCAiQWNjZWxlbnQgWHNjYWxlIElEUCIKQEAgLTExNiw2ICsxMTcsNyBAQAogY29uZmlnIE1BQ0hfWllMT05JVEUKIAlib29sICJQWEEzeHggRGV2ZWxvcG1lbnQgUGxhdGZvcm0iCiAJc2VsZWN0IFBYQTN4eAorCXNlbGVjdCBIQVZFX1BXTQogCiBjb25maWcgTUFDSF9MSVRUTEVUT04KIAlib29sICJQWEEzeHggRm9ybSBGYWN0b3IgUGxhdGZvcm0gKGFrYSBMaXR0bGV0b24pIgpAQCAtMTM4LDcgKzE0MCw3IEBACiAJc2VsZWN0IFBYQTI3eAogCXNlbGVjdCBJV01NWFQKIAotZW5kY2hvaWNlCitlbmRtZW51CiAKIGNob2ljZQogCXByb21wdCAiVXNlZCBiYXNlYm9hcmQiCkBAIC0xNDYsMjYgKzE0OCwyNSBAQAogCiBjb25maWcgTUFDSF9QQ005OTBfQkFTRUJPQVJECiAJYm9vbCAiUEhZVEVDIFBDTS05OTAgZGV2ZWxvcG1lbnQgYm9hcmQiCisJc2VsZWN0IEhBVkVfUFdNCiAKIGVuZGNob2ljZQogCi1pZiBQWEFfU0hBUlBTTAotCiBjaG9pY2UKLQlwcm9tcHQgIlNlbGVjdCB0YXJnZXQgU2hhcnAgWmF1cnVzIGRldmljZSByYW5nZSIKKwlwcm9tcHQgImRpc3BsYXkgb24gcGNtOTkwIgorCWRlcGVuZHMgb24gTUFDSF9QQ005OTBfQkFTRUJPQVJECiAKLWNvbmZpZyBQWEFfU0hBUlBTTF8yNXgKLQlib29sICJTaGFycCBQWEEyNXggbW9kZWxzIChTTC01NjAwLCBTTC1DN3h4IGFuZCBTTC1DNjAwMHgpIgotCXNlbGVjdCBQWEEyNXgKK2NvbmZpZyBQQ005OTBfRElTUExBWV9TSEFSUAorCWJvb2wgInNoYXJwIGxxMDg0djFkZzIxIHN0biBkaXNwbGF5IgogCi1jb25maWcgUFhBX1NIQVJQU0xfMjd4Ci0JYm9vbCAiU2hhcnAgUFhBMjcwIG1vZGVscyAoU0wtQ3h4MDApIgotCXNlbGVjdCBQWEEyN3gKK2NvbmZpZyBQQ005OTBfRElTUExBWV9ORUMKKwlib29sICJuZWMgbmw2NDQ4YmMyMF8xOGQgdGZ0IGRpc3BsYXkiCisKK2NvbmZpZyBQQ005OTBfRElTUExBWV9OT05FCisJYm9vbCAibm8gZGlzcGxheSIKIAogZW5kY2hvaWNlCiAKLWVuZGlmCi0KIGlmIEFSQ0hfR1VNU1RJWAogCiBjaG9pY2UKQEAgLTE5OSwyOCArMjAwLDMzIEBACiAKIGNvbmZpZyBNQUNIX1BPT0RMRQogCWJvb2wgIkVuYWJsZSBTaGFycCBTTC01NjAwIChQb29kbGUpIFN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQWEFfU0hBUlBTTF8yNXgKKwlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMCisJc2VsZWN0IFBYQTI1eAogCXNlbGVjdCBTSEFSUF9MT0NPTU8KIAlzZWxlY3QgUFhBX1NTUAogCiBjb25maWcgTUFDSF9DT1JHSQogCWJvb2wgIkVuYWJsZSBTaGFycCBTTC1DNzAwIChDb3JnaSkgU3VwcG9ydCIKLQlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMXzI1eAorCWRlcGVuZHMgb24gUFhBX1NIQVJQU0wKKwlzZWxlY3QgUFhBMjV4CiAJc2VsZWN0IFBYQV9TSEFSUF9DN3h4CiAKIGNvbmZpZyBNQUNIX1NIRVBIRVJECiAJYm9vbCAiRW5hYmxlIFNoYXJwIFNMLUM3NTAgKFNoZXBoZXJkKSBTdXBwb3J0IgotCWRlcGVuZHMgb24gUFhBX1NIQVJQU0xfMjV4CisJZGVwZW5kcyBvbiBQWEFfU0hBUlBTTAorCXNlbGVjdCBQWEEyNXgKIAlzZWxlY3QgUFhBX1NIQVJQX0M3eHgKIAogY29uZmlnIE1BQ0hfSFVTS1kKIAlib29sICJFbmFibGUgU2hhcnAgU0wtQzc2MCAoSHVza3kpIFN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQWEFfU0hBUlBTTF8yNXgKKwlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMCisJc2VsZWN0IFBYQTI1eAogCXNlbGVjdCBQWEFfU0hBUlBfQzd4eAogCiBjb25maWcgTUFDSF9BS0lUQQogCWJvb2wgIkVuYWJsZSBTaGFycCBTTC0xMDAwIChBa2l0YSkgU3VwcG9ydCIKLQlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMXzI3eAorCWRlcGVuZHMgb24gUFhBX1NIQVJQU0wKKwlzZWxlY3QgUFhBMjd4CiAJc2VsZWN0IFBYQV9TSEFSUF9DeHgwMAogCXNlbGVjdCBNQUNIX1NQSVRaCiAJc2VsZWN0IEkyQwpAQCAtMjI4LDE3ICsyMzQsMjAgQEAKIAogY29uZmlnIE1BQ0hfU1BJVFoKIAlib29sICJFbmFibGUgU2hhcnAgWmF1cnVzIFNMLTMwMDAgKFNwaXR6KSBTdXBwb3J0IgotCWRlcGVuZHMgb24gUFhBX1NIQVJQU0xfMjd4CisJZGVwZW5kcyBvbiBQWEFfU0hBUlBTTAorCXNlbGVjdCBQWEEyN3gKIAlzZWxlY3QgUFhBX1NIQVJQX0N4eDAwCiAKIGNvbmZpZyBNQUNIX0JPUlpPSQogCWJvb2wgIkVuYWJsZSBTaGFycCBaYXVydXMgU0wtMzEwMCAoQm9yem9pKSBTdXBwb3J0IgotCWRlcGVuZHMgb24gUFhBX1NIQVJQU0xfMjd4CisJZGVwZW5kcyBvbiBQWEFfU0hBUlBTTAorCXNlbGVjdCBQWEEyN3gKIAlzZWxlY3QgUFhBX1NIQVJQX0N4eDAwCiAKIGNvbmZpZyBNQUNIX1RPU0EKIAlib29sICJFbmFibGUgU2hhcnAgU0wtNjAwMHggKFRvc2EpIFN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQWEFfU0hBUlBTTF8yNXgKKwlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMCisJc2VsZWN0IFBYQTI1eAogCiBjb25maWcgUFhBMjV4CiAJYm9vbApAQCAtMjczLDQgKzI4MiwxMCBAQAogCXRyaXN0YXRlCiAJaGVscAogCSAgRW5hYmxlIHN1cHBvcnQgZm9yIFBYQTJ4eCBTU1AgcG9ydHMKKworY29uZmlnIFBYQV9QV00KKwl0cmlzdGF0ZQorCWRlZmF1bHQgQkFDS0xJR0hUX1BXTQorCWhlbHAKKwkgIEVuYWJsZSBzdXBwb3J0IGZvciBQWEEyeHgvUFhBM3h4IFBXTSBjb250cm9sbGVycwogZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1weGEvTWFrZWZpbGUKaW5kZXggMGU2ZDA1Yi4uYzRkZmJlOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvTWFrZWZpbGUKQEAgLTEwLDEwICsxMCwxMSBAQAogCiAjIEdlbmVyaWMgZHJpdmVycyB0aGF0IG90aGVyIGRyaXZlcnMgbWF5IGRlcGVuZCB1cG9uCiBvYmotJChDT05GSUdfUFhBX1NTUCkJCSs9IHNzcC5vCitvYmotJChDT05GSUdfUFhBX1BXTSkJCSs9IHB3bS5vCiAKICMgU29DLXNwZWNpZmljIGNvZGUKLW9iai0kKENPTkZJR19QWEEyNXgpCQkrPSBtZnAtcHhhMnh4Lm8gcHhhMjV4Lm8KLW9iai0kKENPTkZJR19QWEEyN3gpCQkrPSBtZnAtcHhhMnh4Lm8gcHhhMjd4Lm8KK29iai0kKENPTkZJR19QWEEyNXgpCQkrPSBtZnAtcHhhMnh4Lm8gcHhhMnh4Lm8gcHhhMjV4Lm8KK29iai0kKENPTkZJR19QWEEyN3gpCQkrPSBtZnAtcHhhMnh4Lm8gcHhhMnh4Lm8gcHhhMjd4Lm8KIG9iai0kKENPTkZJR19QWEEzeHgpCQkrPSBtZnAtcHhhM3h4Lm8gcHhhM3h4Lm8gc21lbWMubwogb2JqLSQoQ09ORklHX0NQVV9QWEEzMDApCSs9IHB4YTMwMC5vCiBvYmotJChDT05GSUdfQ1BVX1BYQTMyMCkJKz0gcHhhMzIwLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2Nsb2NrLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9jbG9jay5jCmluZGV4IGU5N2RjNTkuLmI0ZDA0OTUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2Nsb2NrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvY2xvY2suYwpAQCAtMTIsNyArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAKLSNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KIApAQCAtNDcsNiArNDcsOSBAQAogCQljbGsgPSBwOwogCW11dGV4X3VubG9jaygmY2xvY2tzX211dGV4KTsKIAorCWlmICghSVNfRVJSKGNsaykgJiYgY2xrLT5vcHMgPT0gTlVMTCkKKwkJY2xrID0gY2xrLT5vdGhlcjsKKwogCXJldHVybiBjbGs7CiB9CiBFWFBPUlRfU1lNQk9MKGNsa19nZXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvY2xvY2suaCBiL2FyY2gvYXJtL21hY2gtcHhhL2Nsb2NrLmgKaW5kZXggYmM2Yjc3ZS4uODNjYmZhYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvY2xvY2suaAorKysgYi9hcmNoL2FybS9tYWNoLXB4YS9jbG9jay5oCkBAIC0xNSw2ICsxNSw3IEBACiAJdW5zaWduZWQgaW50CQlja2VuOwogCXVuc2lnbmVkIGludAkJZGVsYXk7CiAJdW5zaWduZWQgaW50CQllbmFibGVkOworCXN0cnVjdCBjbGsJCSpvdGhlcjsKIH07CiAKICNkZWZpbmUgSU5JVF9DS0VOKF9uYW1lLCBfY2tlbiwgX3JhdGUsIF9kZWxheSwgX2RldikJXApAQCAtMzUsNiArMzYsMTcgQEAKIAkJLmNrZW4JPSBDS0VOXyMjX2NrZW4sCQkJXAogCX0KIAorLyoKKyAqIFRoaXMgaXMgYSBwbGFjZWhvbGRlciB0byBhbGlhcyBvbmUgY2xvY2sgZGV2aWNlK25hbWUgcGFpcgorICogdG8gYW5vdGhlciBzdHJ1Y3QgY2xrLgorICovCisjZGVmaW5lIElOSVRfQ0tPVEhFUihfbmFtZSwgX290aGVyLCBfZGV2KQkJXAorCXsJCQkJCQlcCisJCS5uYW1lCT0gX25hbWUsCQkJXAorCQkuZGV2CT0gX2RldiwJCQkJXAorCQkub3RoZXIJPSBfb3RoZXIsCQkJXAorCX0KKwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBjbGtvcHMgY2xrX2NrZW5fb3BzOwogCiB2b2lkIGNsa19ja2VuX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC1wY2kuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAtcGNpLmMKaW5kZXggYWM3ZjA1Zi4uMzE5YzlmZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC1wY2kuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLXBjaS5jCkBAIC00MSwxOCArNDEsMjAgQEAKIHsKIAl1bnNpZ25lZCBpbnQgc3ogPSBTWl82NE0gPj4gUEFHRV9TSElGVDsKIAotCXByX2luZm8oIkFkanVzdGluZyB6b25lcyBmb3IgQ00teDI3MFxuIik7CisJaWYgKG1hY2hpbmVfaXNfYXJtY29yZSgpKSB7CisJCXByX2luZm8oIkFkanVzdGluZyB6b25lcyBmb3IgQ00teDI3MFxuIik7CiAKLQkvKgotCSAqIE9ubHkgYWRqdXN0IGlmID4gNjRNIG9uIGN1cnJlbnQgc3lzdGVtCi0JICovCi0JaWYgKG5vZGUgfHwgKHpvbmVfc2l6ZVswXSA8PSBzeikpCi0JCXJldHVybjsKKwkJLyoKKwkJICogT25seSBhZGp1c3QgaWYgPiA2NE0gb24gY3VycmVudCBzeXN0ZW0KKwkJICovCisJCWlmIChub2RlIHx8ICh6b25lX3NpemVbMF0gPD0gc3opKQorCQkJcmV0dXJuOwogCi0Jem9uZV9zaXplWzFdID0gem9uZV9zaXplWzBdIC0gc3o7Ci0Jem9uZV9zaXplWzBdID0gc3o7Ci0JemhvbGVfc2l6ZVsxXSA9IHpob2xlX3NpemVbMF07Ci0JemhvbGVfc2l6ZVswXSA9IDA7CisJCXpvbmVfc2l6ZVsxXSA9IHpvbmVfc2l6ZVswXSAtIHN6OworCQl6b25lX3NpemVbMF0gPSBzejsKKwkJemhvbGVfc2l6ZVsxXSA9IHpob2xlX3NpemVbMF07CisJCXpob2xlX3NpemVbMF0gPSAwOworCX0KIH0KIAogc3RhdGljIHZvaWQgY214MjcwX2l0ODE1Ml9pcnFfZGVtdXgodW5zaWduZWQgaW50IGlycSwgc3RydWN0IGlycV9kZXNjICpkZXNjKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC5jCmluZGV4IGY1ODUxZDEuLjAxYjk5NjQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdWRpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YWZiLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb2hjaS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21tYy5oPgpAQCAtODEsMTIgKzgyLDYgQEAKIAl9CiB9OwogCi0vKiBhdWRpbyBkZXZpY2UgKi8KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGNteDI3MF9hdWRpb19kZXZpY2UgPSB7Ci0JLm5hbWUJCT0gInB4YTJ4eC1hYzk3IiwKLQkuaWQJCT0gLTEsCi19OwotCiAvKiB0b3VjaHNjcmVlbiBjb250cm9sbGVyICovCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBjbXgyNzBfdHNfZGV2aWNlID0gewogCS5uYW1lCQk9ICJ1Y2IxNDAwX3RzIiwKQEAgLTIxOSw3ICsyMTQsNiBAQAogLyogcGxhdGZvcm0gZGV2aWNlcyAqLwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZjbXgyNzBfZGV2aWNlX2RtOWssCi0JJmNteDI3MF9hdWRpb19kZXZpY2UsCiAJJmNteDI3MF9ydGNfZGV2aWNlLAogCSZjbXgyNzBfMjcwMEcsCiAJJmNteDI3MF9sZWRfZGV2aWNlLApAQCAtNTk0LDYgKzU4OCw3IEBACiAKIAkvKiByZWdpc3RlciBDTS1YMjcwIHBsYXRmb3JtIGRldmljZXMgKi8KIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhwbGF0Zm9ybV9kZXZpY2VzLCBBUlJBWV9TSVpFKHBsYXRmb3JtX2RldmljZXMpKTsKKwlweGFfc2V0X2FjOTdfaW5mbyhOVUxMKTsKIAogCS8qIHNldCBNQ0kgYW5kIE9IQ0kgcGxhdGZvcm0gcGFyYW1ldGVycyAqLwogCXB4YV9zZXRfbWNpX2luZm8oJmNteDI3MF9tY2lfcGxhdGZvcm1fZGF0YSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9jb3JnaS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvY29yZ2kuYwppbmRleCBiNzU3ZGQ3Li5iMzc2NzFiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9jb3JnaS5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2NvcmdpLmMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lyZGEuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2NvcmdpX3BtLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9jb3JnaV9wbS5jCmluZGV4IDBhODVmNzAuLmU5MWMwZjIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2NvcmdpX3BtLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvY29yZ2lfcG0uYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL3NoYXJwc2wuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9jb3JnaS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgogI2luY2x1ZGUgInNoYXJwc2wuaCIKIApAQCAtMjA0LDcgKzIwNSw5IEBACiAJLnJlYWRfZGV2ZGF0YSAgICA9IGNvcmdpcG1fcmVhZF9kZXZkYXRhLAogCS5jaGFyZ2VyX3dha2V1cCAgPSBjb3JnaV9jaGFyZ2VyX3dha2V1cCwKIAkuc2hvdWxkX3dha2V1cCAgID0gY29yZ2lfc2hvdWxkX3dha2V1cCwKKyNpZmRlZiBDT05GSUdfQkFDS0xJR0hUX0NPUkdJCiAJLmJhY2tsaWdodF9saW1pdCA9IGNvcmdpYmxfbGltaXRfaW50ZW5zaXR5LAorI2VuZGlmCiAJLmNoYXJnZV9vbl92b2x0CSAgPSBTSEFSUFNMX0NIQVJHRV9PTl9WT0xULAogCS5jaGFyZ2Vfb25fdGVtcAkgID0gU0hBUlBTTF9DSEFSR0VfT05fVEVNUCwKIAkuY2hhcmdlX2FjaW5faGlnaCA9IFNIQVJQU0xfQ0hBUkdFX09OX0FDSU5fSElHSCwKQEAgLTIyNiw2ICsyMjksMTAgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX2NvcmdpKCkgJiYgIW1hY2hpbmVfaXNfc2hlcGhlcmQoKQorCQkJJiYgIW1hY2hpbmVfaXNfaHVza3koKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAljb3JnaXBtX2RldmljZSA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygic2hhcnBzbC1wbSIsIC0xKTsKIAlpZiAoIWNvcmdpcG1fZGV2aWNlKQogCQlyZXR1cm4gLUVOT01FTTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2RldmljZXMuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2RldmljZXMuYwppbmRleCBkNmMwNWI2Li5hNmYyMzkwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9kZXZpY2VzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvZGV2aWNlcy5jCkBAIC0xMCwxMSArMTAsMTQgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pcmRhLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaTJjLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbWZwLXB4YTI3eC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL29oY2kuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyN3hfa2V5cGFkLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvY2FtZXJhLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXVkaW8uaD4KIAogI2luY2x1ZGUgImRldmljZXMuaCIKKyNpbmNsdWRlICJnZW5lcmljLmgiCiAKIHZvaWQgX19pbml0IHB4YV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhKQogewpAQCAtOTEsOCArOTQsMTkgQEAKIAogc3RhdGljIHU2NCB1ZGNfZG1hX21hc2sgPSB+KHUzMikwOwogCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfdWRjID0gewotCS5uYW1lCQk9ICJweGEyeHgtdWRjIiwKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjV4X2RldmljZV91ZGMgPSB7CisJLm5hbWUJCT0gInB4YTI1eC11ZGMiLAorCS5pZAkJPSAtMSwKKwkucmVzb3VyY2UJPSBweGEyeHhfdWRjX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocHhhMnh4X3VkY19yZXNvdXJjZXMpLAorCS5kZXYJCT0gIHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcHhhX3VkY19pbmZvLAorCQkuZG1hX21hc2sJPSAmdWRjX2RtYV9tYXNrLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjd4X2RldmljZV91ZGMgPSB7CisJLm5hbWUJCT0gInB4YTI3eC11ZGMiLAogCS5pZAkJPSAtMSwKIAkucmVzb3VyY2UJPSBweGEyeHhfdWRjX3Jlc291cmNlcywKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocHhhMnh4X3VkY19yZXNvdXJjZXMpLApAQCAtMjMzLDggKzI0NywxNSBAQAogCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShweGFpMmNfcmVzb3VyY2VzKSwKIH07CiAKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHB4YTI3eF9pMmNfbWZwX2NmZ1tdID0geworCUdQSU8xMTdfSTJDX1NDTCwKKwlHUElPMTE4X0kyQ19TREEsCit9OworCiB2b2lkIF9faW5pdCBweGFfc2V0X2kyY19pbmZvKHN0cnVjdCBpMmNfcHhhX3BsYXRmb3JtX2RhdGEgKmluZm8pCiB7CisJaWYgKGNwdV9pc19weGEyN3goKSkKKwkJcHhhMnh4X21mcF9jb25maWcoQVJSQVlfQU5EX1NJWkUocHhhMjd4X2kyY19tZnBfY2ZnKSk7CiAJcHhhX3JlZ2lzdGVyX2RldmljZSgmcHhhX2RldmljZV9pMmMsIGluZm8pOwogfQogCkBAIC0yNzgsOCArMjk5LDY5IEBACiAJLmlkCQk9IC0xLAogfTsKIAorc3RhdGljIHN0cnVjdCByZXNvdXJjZSBweGFfYWM5N19yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydCAgPSAweDQwNTAwMDAwLAorCQkuZW5kCT0gMHg0MDUwMDAwMCArIDB4ZmZmLAorCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydCAgPSBJUlFfQUM5NywKKwkJLmVuZCAgICA9IElSUV9BQzk3LAorCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyB1NjQgcHhhX2FjOTdfZG1hbWFzayA9IDB4ZmZmZmZmZmZVTDsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGFfZGV2aWNlX2FjOTcgPSB7CisJLm5hbWUgICAgICAgICAgID0gInB4YTJ4eC1hYzk3IiwKKwkuaWQgICAgICAgICAgICAgPSAtMSwKKwkuZGV2ICAgICAgICAgICAgPSB7CisJCS5kbWFfbWFzayA9ICZweGFfYWM5N19kbWFtYXNrLAorCQkuY29oZXJlbnRfZG1hX21hc2sgPSAweGZmZmZmZmZmLAorCX0sCisJLm51bV9yZXNvdXJjZXMgID0gQVJSQVlfU0laRShweGFfYWM5N19yZXNvdXJjZXMpLAorCS5yZXNvdXJjZSAgICAgICA9IHB4YV9hYzk3X3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IHB4YV9zZXRfYWM5N19pbmZvKHB4YTJ4eF9hdWRpb19vcHNfdCAqb3BzKQoreworCXB4YV9yZWdpc3Rlcl9kZXZpY2UoJnB4YV9kZXZpY2VfYWM5Nywgb3BzKTsKK30KKwogI2lmZGVmIENPTkZJR19QWEEyNXgKIAorc3RhdGljIHN0cnVjdCByZXNvdXJjZSBweGEyNXhfcmVzb3VyY2VfcHdtMFtdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gMHg0MGIwMDAwMCwKKwkJLmVuZAk9IDB4NDBiMDAwMGYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI1eF9kZXZpY2VfcHdtMCA9IHsKKwkubmFtZQkJPSAicHhhMjV4LXB3bSIsCisJLmlkCQk9IDAsCisJLnJlc291cmNlCT0gcHhhMjV4X3Jlc291cmNlX3B3bTAsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHB4YTI1eF9yZXNvdXJjZV9wd20wKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcHhhMjV4X3Jlc291cmNlX3B3bTFbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IDB4NDBjMDAwMDAsCisJCS5lbmQJPSAweDQwYzAwMDBmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyNXhfZGV2aWNlX3B3bTEgPSB7CisJLm5hbWUJCT0gInB4YTI1eC1wd20iLAorCS5pZAkJPSAxLAorCS5yZXNvdXJjZQk9IHB4YTI1eF9yZXNvdXJjZV9wd20xLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShweGEyNXhfcmVzb3VyY2VfcHdtMSksCit9OworCiBzdGF0aWMgdTY0IHB4YTI1eF9zc3BfZG1hX21hc2sgPSBETUFfQklUX01BU0soMzIpOwogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHB4YTI1eF9yZXNvdXJjZV9zc3BbXSA9IHsKQEAgLTU2OCw2ICs2NTAsMzYgQEAKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocHhhMjd4X3Jlc291cmNlX3NzcDMpLAogfTsKIAorc3RhdGljIHN0cnVjdCByZXNvdXJjZSBweGEyN3hfcmVzb3VyY2VfcHdtMFtdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gMHg0MGIwMDAwMCwKKwkJLmVuZAk9IDB4NDBiMDAwMWYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2VfcHdtMCA9IHsKKwkubmFtZQkJPSAicHhhMjd4LXB3bSIsCisJLmlkCQk9IDAsCisJLnJlc291cmNlCT0gcHhhMjd4X3Jlc291cmNlX3B3bTAsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHB4YTI3eF9yZXNvdXJjZV9wd20wKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcHhhMjd4X3Jlc291cmNlX3B3bTFbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IDB4NDBjMDAwMDAsCisJCS5lbmQJPSAweDQwYzAwMDFmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyN3hfZGV2aWNlX3B3bTEgPSB7CisJLm5hbWUJCT0gInB4YTI3eC1wd20iLAorCS5pZAkJPSAxLAorCS5yZXNvdXJjZQk9IHB4YTI3eF9yZXNvdXJjZV9wd20xLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShweGEyN3hfcmVzb3VyY2VfcHdtMSksCit9OworCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHB4YTI3eF9yZXNvdXJjZV9jYW1lcmFbXSA9IHsKIAlbMF0gPSB7CiAJCS5zdGFydAk9IDB4NTAwMDAwMDAsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9kZXZpY2VzLmggYi9hcmNoL2FybS9tYWNoLXB4YS9kZXZpY2VzLmgKaW5kZXggZmNhYjAxNy4uYjg1MmViMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvZGV2aWNlcy5oCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2RldmljZXMuaApAQCAtMSw3ICsxLDggQEAKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfbWNpOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhM3h4X2RldmljZV9tY2kyOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhM3h4X2RldmljZV9tY2kzOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV91ZGM7CitleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyNXhfZGV2aWNlX3VkYzsKK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2VfdWRjOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV9mYjsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfZmZ1YXJ0OwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV9idHVhcnQ7CkBAIC0xMSw2ICsxMiw3IEBACiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGFfZGV2aWNlX2kyczsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfZmljcDsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfcnRjOworZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV9hYzk3OwogCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyN3hfZGV2aWNlX2kyY19wb3dlcjsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2Vfb2hjaTsKQEAgLTI0LDQgKzI2LDkgQEAKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2Vfc3NwMzsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTN4eF9kZXZpY2Vfc3NwNDsKIAorZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjV4X2RldmljZV9wd20wOworZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjV4X2RldmljZV9wd20xOworZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjd4X2RldmljZV9wd20wOworZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjd4X2RldmljZV9wd20xOworCiB2b2lkIF9faW5pdCBweGFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9lbS14MjcwLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9lbS14MjcwLmMKaW5kZXggOWM1NzcwMC4uMWJmNjgwNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvZW0teDI3MC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2VtLXgyNzAuYwpAQCAtMjQsNiArMjQsOCBAQAogCiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTI3eC11ZGMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdWRpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YWZiLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb2hjaS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21tYy5oPgpAQCAtNzIsMTIgKzc0LDYgQEAKIAl9CiB9OwogCi0vKiBhdWRpbyBkZXZpY2UgKi8KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGVtX3gyNzBfYXVkaW8gPSB7Ci0JLm5hbWUJCT0gInB4YTJ4eC1hYzk3IiwKLQkuaWQJCT0gLTEsCi19OwotCiAvKiBXTTk3MTIgdG91Y2hzY3JlZW4gY29udHJvbGxlci4gSG9wZWZ1bGx5IHRoZSBkcml2ZXIgd2lsbCBtYWtlIGl0IHRvCiAgKiB0aGUgbWFpbnN0cmVhbSBzb21ldGltZSAqLwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZW1feDI3MF90cyA9IHsKQEAgLTIxNyw3ICsyMTMsNiBAQAogLyogcGxhdGZvcm0gZGV2aWNlcyAqLwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZlbV94MjcwX2RtOWssCi0JJmVtX3gyNzBfYXVkaW8sCiAJJmVtX3gyNzBfdHMsCiAJJmVtX3gyNzBfcnRjLAogCSZlbV94MjcwX25hbmQsCkBAIC0zMjUsNiArMzIwLDcgQEAKIAogCS8qIHJlZ2lzdGVyIEVNLVgyNzAgcGxhdGZvcm0gZGV2aWNlcyAqLwogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKHBsYXRmb3JtX2RldmljZXMsIEFSUkFZX1NJWkUocGxhdGZvcm1fZGV2aWNlcykpOworCXB4YV9zZXRfYWM5N19pbmZvKE5VTEwpOwogCiAJLyogc2V0IE1DSSBhbmQgT0hDSSBwbGF0Zm9ybSBwYXJhbWV0ZXJzICovCiAJcHhhX3NldF9tY2lfaW5mbygmZW1feDI3MF9tY2lfcGxhdGZvcm1fZGF0YSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9nZW5lcmljLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9nZW5lcmljLmMKaW5kZXggNDQ2MTc5My4uY2EwNTMyMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvZ2VuZXJpYy5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2dlbmVyaWMuYwpAQCAtNjAsMjMgKzYwLDYgQEAKIEVYUE9SVF9TWU1CT0woZ2V0X21lbWNsa19mcmVxdWVuY3lfMTBraHopOwogCiAvKgotICogUm91dGluZSB0byBzYWZlbHkgZW5hYmxlIG9yIGRpc2FibGUgYSBjbG9jayBpbiB0aGUgQ0tFTgotICovCi12b2lkIF9fcHhhX3NldF9ja2VuKGludCBjbG9jaywgaW50IGVuYWJsZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQotCWlmIChlbmFibGUpCi0JCUNLRU4gfD0gKDEgPDwgY2xvY2spOwotCWVsc2UKLQkJQ0tFTiAmPSB+KDEgPDwgY2xvY2spOwotCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotfQotRVhQT1JUX1NZTUJPTChfX3B4YV9zZXRfY2tlbik7Ci0KLS8qCiAgKiBJbnRlbCBQWEEyeHggaW50ZXJuYWwgcmVnaXN0ZXIgbWFwcGluZy4KICAqCiAgKiBOb3RlIDE6IG5vdCBhbGwgUFhBMnh4IHZhcmlhbnRzIGltcGxlbWVudCBhbGwgdGhvc2UgYWRkcmVzc2VzLgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvaXJxLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9pcnEuYwppbmRleCBhOWEwYzNmLi5mYmZmNTU3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9pcnEuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9pcnEuYwpAQCAtMjEsNyArMjEsNiBAQAogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+CiAKICNpbmNsdWRlICJnZW5lcmljLmgiCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2xwZDI3MC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvbHBkMjcwLmMKaW5kZXggYTIwZTRiMS4uY2MxYzRmYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvbHBkMjcwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvbHBkMjcwLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL3BhcnRpdGlvbnMuaD4KKyNpbmNsdWRlIDxsaW51eC9wd21fYmFja2xpZ2h0Lmg+CiAKICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KQEAgLTEzNCw5ICsxMzUsMTIgQEAKIAogc3RhdGljIGludCBfX2luaXQgbHBkMjcwX2lycV9kZXZpY2VfaW5pdCh2b2lkKQogewotCWludCByZXQgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmxwZDI3MF9pcnFfc3lzY2xhc3MpOwotCWlmIChyZXQgPT0gMCkKLQkJcmV0ID0gc3lzZGV2X3JlZ2lzdGVyKCZscGQyNzBfaXJxX2RldmljZSk7CisJaW50IHJldCA9IC1FTk9ERVY7CisJaWYgKG1hY2hpbmVfaXNfbG9naWNwZF9weGEyNzAoKSkgeworCQlyZXQgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmxwZDI3MF9pcnFfc3lzY2xhc3MpOworCQlpZiAocmV0ID09IDApCisJCQlyZXQgPSBzeXNkZXZfcmVnaXN0ZXIoJmxwZDI3MF9pcnFfZGV2aWNlKTsKKwl9CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTY0LDExICsxNjgsNiBAQAogCS5yZXNvdXJjZQk9IHNtYzkxeF9yZXNvdXJjZXMsCiB9OwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBscGQyNzBfYXVkaW9fZGV2aWNlID0gewotCS5uYW1lCQk9ICJweGEyeHgtYWM5NyIsCi0JLmlkCQk9IC0xLAotfTsKLQogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBscGQyNzBfZmxhc2hfcmVzb3VyY2VzW10gPSB7CiAJWzBdID0gewogCQkuc3RhcnQJPSBQWEFfQ1MwX1BIWVMsCkBAIC0yMzMsMjEgKzIzMiwyMCBAQAogCX0sCiB9OwogCi1zdGF0aWMgdm9pZCBscGQyNzBfYmFja2xpZ2h0X3Bvd2VyKGludCBvbikKLXsKLQlpZiAob24pIHsKLQkJcHhhX2dwaW9fbW9kZShHUElPMTZfUFdNMF9NRCk7Ci0JCXB4YV9zZXRfY2tlbihDS0VOX1BXTTAsIDEpOwotCQlQV01fQ1RSTDAgPSAwOwotCQlQV01fUFdEVVRZMCA9IDB4M2ZmOwotCQlQV01fUEVSVkFMMCA9IDB4M2ZmOwotCX0gZWxzZSB7Ci0JCVBXTV9DVFJMMCA9IDA7Ci0JCVBXTV9QV0RVVFkwID0gMHgwOwotCQlQV01fUEVSVkFMMCA9IDB4M0ZGOwotCQlweGFfc2V0X2NrZW4oQ0tFTl9QV00wLCAwKTsKLQl9Ci19CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX3B3bV9iYWNrbGlnaHRfZGF0YSBscGQyNzBfYmFja2xpZ2h0X2RhdGEgPSB7CisJLnB3bV9pZAkJPSAwLAorCS5tYXhfYnJpZ2h0bmVzcwk9IDEsCisJLmRmdF9icmlnaHRuZXNzCT0gMSwKKwkucHdtX3BlcmlvZF9ucwk9IDc4NzcwLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbHBkMjcwX2JhY2tsaWdodF9kZXZpY2UgPSB7CisJLm5hbWUJCT0gInB3bS1iYWNrbGlnaHQiLAorCS5kZXYJCT0geworCQkucGFyZW50CT0gJnB4YTI3eF9kZXZpY2VfcHdtMC5kZXYsCisJCS5wbGF0Zm9ybV9kYXRhID0gJmxwZDI3MF9iYWNrbGlnaHRfZGF0YSwKKwl9LAorfTsKIAogLyogNS43IiBURlQgUVZHQSAoTG9MbyBkaXNwbGF5IG51bWJlciAxKSAqLwogc3RhdGljIHN0cnVjdCBweGFmYl9tb2RlX2luZm8gc2hhcnBfbHEwNTdxM2RjMDJfbW9kZSA9IHsKQEAgLTI2OSw3ICsyNjcsNiBAQAogCS5udW1fbW9kZXMJCT0gMSwKIAkubGNjcjAJCQk9IDB4MDc4MDAwODAsCiAJLmxjY3IzCQkJPSAweDAwNDAwMDAwLAotCS5weGFmYl9iYWNrbGlnaHRfcG93ZXIJPSBscGQyNzBfYmFja2xpZ2h0X3Bvd2VyLAogfTsKIAogLyogMTIuMSIgVEZUIFNWR0EgKExvTG8gZGlzcGxheSBudW1iZXIgMikgKi8KQEAgLTI5Miw3ICsyODksNiBAQAogCS5udW1fbW9kZXMJCT0gMSwKIAkubGNjcjAJCQk9IDB4MDc4MDAwODAsCiAJLmxjY3IzCQkJPSAweDAwNDAwMDAwLAotCS5weGFmYl9iYWNrbGlnaHRfcG93ZXIJPSBscGQyNzBfYmFja2xpZ2h0X3Bvd2VyLAogfTsKIAogLyogMy42IiBURlQgUVZHQSAoTG9MbyBkaXNwbGF5IG51bWJlciAzKSAqLwpAQCAtMzE1LDcgKzMxMSw2IEBACiAJLm51bV9tb2RlcwkJPSAxLAogCS5sY2NyMAkJCT0gMHgwNzgwMDA4MCwKIAkubGNjcjMJCQk9IDB4MDA0MDAwMDAsCi0JLnB4YWZiX2JhY2tsaWdodF9wb3dlcgk9IGxwZDI3MF9iYWNrbGlnaHRfcG93ZXIsCiB9OwogCiAvKiA2LjQiIFRGVCBWR0EgKExvTG8gZGlzcGxheSBudW1iZXIgNSkgKi8KQEAgLTMzOCw3ICszMzMsNiBAQAogCS5udW1fbW9kZXMJCT0gMSwKIAkubGNjcjAJCQk9IDB4MDc4MDAwODAsCiAJLmxjY3IzCQkJPSAweDAwNDAwMDAwLAotCS5weGFmYl9iYWNrbGlnaHRfcG93ZXIJPSBscGQyNzBfYmFja2xpZ2h0X3Bvd2VyLAogfTsKIAogLyogMTAuNCIgVEZUIFZHQSAoTG9MbyBkaXNwbGF5IG51bWJlciA3KSAqLwpAQCAtMzYxLDcgKzM1NSw2IEBACiAJLm51bV9tb2RlcwkJPSAxLAogCS5sY2NyMAkJCT0gMHgwNzgwMDA4MCwKIAkubGNjcjMJCQk9IDB4MDA0MDAwMDAsCi0JLnB4YWZiX2JhY2tsaWdodF9wb3dlcgk9IGxwZDI3MF9iYWNrbGlnaHRfcG93ZXIsCiB9OwogCiAvKiAzLjUiIFRGVCBRVkdBIChMb0xvIGRpc3BsYXkgbnVtYmVyIDgpICovCkBAIC0zODQsNyArMzc3LDYgQEAKIAkubnVtX21vZGVzCQk9IDEsCiAJLmxjY3IwCQkJPSAweDA3ODAwMDgwLAogCS5sY2NyMwkJCT0gMHgwMDQwMDAwMCwKLQkucHhhZmJfYmFja2xpZ2h0X3Bvd2VyCT0gbHBkMjcwX2JhY2tsaWdodF9wb3dlciwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcHhhZmJfbWFjaF9pbmZvICpscGQyNzBfbGNkX3RvX3VzZTsKQEAgLTQxNCw3ICs0MDYsNyBAQAogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxhdGZvcm1fZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CiAJJnNtYzkxeF9kZXZpY2UsCi0JJmxwZDI3MF9hdWRpb19kZXZpY2UsCisJJmxwZDI3MF9iYWNrbGlnaHRfZGV2aWNlLAogCSZscGQyNzBfZmxhc2hfZGV2aWNlWzBdLAogCSZscGQyNzBfZmxhc2hfZGV2aWNlWzFdLAogfTsKQEAgLTQ1NCw5ICs0NDYsMTIgQEAKIAkgKiBPbiBMb2dpY1BEIFBYQTI3MCwgd2Ugcm91dGUgQUM5N19TWVNDTEsgdmlhIEdQSU80NS4KIAkgKi8KIAlweGFfZ3Bpb19tb2RlKEdQSU80NV9TWVNDTEtfQUM5N19NRCk7CisJcHhhX2dwaW9fbW9kZShHUElPMTZfUFdNMF9NRCk7CiAKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhwbGF0Zm9ybV9kZXZpY2VzLCBBUlJBWV9TSVpFKHBsYXRmb3JtX2RldmljZXMpKTsKIAorCXB4YV9zZXRfYWM5N19pbmZvKE5VTEwpOworCiAJaWYgKGxwZDI3MF9sY2RfdG9fdXNlICE9IE5VTEwpCiAJCXNldF9weGFfZmJfaW5mbyhscGQyNzBfbGNkX3RvX3VzZSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2x1YmJvY2suYyBiL2FyY2gvYXJtL21hY2gtcHhhL2x1YmJvY2suYwppbmRleCA3YjliZGQwLi5hM2ZhZTQxIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9sdWJib2NrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvbHViYm9jay5jCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21mcC1weGEyNXguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdWRpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2x1YmJvY2suaD4KICNpbmNsdWRlIDxhc20vYXJjaC91ZGMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pcmRhLmg+CkBAIC0xOTYsMTEgKzE5Nyw2IEBACiAJLy8gbm8gRCsgcHVsbHVwOyBsdWJib2NrIGNhbid0IGNvbm5lY3QvZGlzY29ubmVjdCBpbiBzb2Z0d2FyZQogfTsKIAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbHViX2F1ZGlvX2RldmljZSA9IHsKLQkubmFtZQkJPSAicHhhMnh4LWFjOTciLAotCS5pZAkJPSAtMSwKLX07Ci0KIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugc2ExMTExX3Jlc291cmNlc1tdID0gewogCVswXSA9IHsKIAkJLnN0YXJ0CT0gMHgxMDAwMDAwMCwKQEAgLTM2OCw3ICszNjQsNiBAQAogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CiAJJnNhMTExMV9kZXZpY2UsCi0JJmx1Yl9hdWRpb19kZXZpY2UsCiAJJnNtYzkxeF9kZXZpY2UsCiAJJmx1YmJvY2tfZmxhc2hfZGV2aWNlWzBdLAogCSZsdWJib2NrX2ZsYXNoX2RldmljZVsxXSwKQEAgLTQ5NCw2ICs0ODksNyBAQAogCXNldF9weGFfZmJfaW5mbygmc2hhcnBfbG04djMxKTsKIAlweGFfc2V0X21jaV9pbmZvKCZsdWJib2NrX21jaV9wbGF0Zm9ybV9kYXRhKTsKIAlweGFfc2V0X2ZpY3BfaW5mbygmbHViYm9ja19maWNwX3BsYXRmb3JtX2RhdGEpOworCXB4YV9zZXRfYWM5N19pbmZvKE5VTEwpOwogCiAJbHViYm9ja19mbGFzaF9kYXRhWzBdLndpZHRoID0gbHViYm9ja19mbGFzaF9kYXRhWzFdLndpZHRoID0KIAkJKEJPT1RfREVGICYgMSkgPyAyIDogNDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL21hZ2ljaWFuLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9tYWdpY2lhbi5jCmluZGV4IGJhZGJhMDYuLjAxYjJmYTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL21hZ2ljaWFuLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvbWFnaWNpYW4uYwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L210ZC9tYXAuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgogI2luY2x1ZGUgPGxpbnV4L3BkYV9wb3dlci5oPgorI2luY2x1ZGUgPGxpbnV4L3B3bV9iYWNrbGlnaHQuaD4KIAogI2luY2x1ZGUgPGFzbS9ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CkBAIC0zMywxMiArMzQsMTQgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9tYWdpY2lhbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21mcC1weGEyN3guaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhZmIuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pMmMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pcmRhLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb2hjaS5oPgogCisjaW5jbHVkZSAiZGV2aWNlcy5oIgogI2luY2x1ZGUgImdlbmVyaWMuaCIKIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgbWFnaWNpYW5fcGluX2NvbmZpZ1tdID0gewpAQCAtMzQ4LDQwICszNTEsNTggQEAKICAqIEJhY2tsaWdodAogICovCiAKLXN0YXRpYyB2b2lkIG1hZ2ljaWFuX3NldF9ibF9pbnRlbnNpdHkoaW50IGludGVuc2l0eSkKK3N0YXRpYyBpbnQgbWFnaWNpYW5fYmFja2xpZ2h0X2luaXQoc3RydWN0IGRldmljZSAqZGV2KQogewotCWlmIChpbnRlbnNpdHkpIHsKLQkJUFdNX0NUUkwwID0gMTsKLQkJUFdNX1BFUlZBTDAgPSAweGM4OwotCQlpZiAoaW50ZW5zaXR5ID4gMHhjNykgewotCQkJUFdNX1BXRFVUWTAgPSBpbnRlbnNpdHkgLSAweDQ4OwotCQkJZ3Bpb19zZXRfdmFsdWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIyLCAxKTsKLQkJfSBlbHNlIHsKLQkJCVBXTV9QV0RVVFkwID0gaW50ZW5zaXR5OwotCQkJZ3Bpb19zZXRfdmFsdWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIyLCAwKTsKLQkJfQotCQlncGlvX3NldF92YWx1ZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUiwgMSk7Ci0JCXB4YV9zZXRfY2tlbihDS0VOX1BXTTAsIDEpOworCWludCByZXQ7CisKKwlyZXQgPSBncGlvX3JlcXVlc3QoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIsICJCTF9QT1dFUiIpOworCWlmIChyZXQpCisJCWdvdG8gZXJyOworCXJldCA9IGdwaW9fcmVxdWVzdChFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUjIsICJCTF9QT1dFUjIiKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycjI7CisJcmV0dXJuIDA7CisKK2VycjI6CisJZ3Bpb19mcmVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSKTsKK2VycjoKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IG1hZ2ljaWFuX2JhY2tsaWdodF9ub3RpZnkoaW50IGJyaWdodG5lc3MpCit7CisJZ3Bpb19zZXRfdmFsdWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIsIGJyaWdodG5lc3MpOworCWlmIChicmlnaHRuZXNzID49IDIwMCkgeworCQlncGlvX3NldF92YWx1ZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUjIsIDEpOworCQlyZXR1cm4gYnJpZ2h0bmVzcyAtIDcyOwogCX0gZWxzZSB7Ci0JCS8qIFBXTV9QV0RVVFkwID0gaW50ZW5zaXR5OyAqLwotCQlncGlvX3NldF92YWx1ZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUiwgMCk7Ci0JCXB4YV9zZXRfY2tlbihDS0VOX1BXTTAsIDApOworCQlncGlvX3NldF92YWx1ZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUjIsIDApOworCQlyZXR1cm4gYnJpZ2h0bmVzczsKIAl9CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZ2VuZXJpY19ibF9pbmZvIGJhY2tsaWdodF9pbmZvID0gewotCS5kZWZhdWx0X2ludGVuc2l0eSA9IDB4NjQsCi0JLmxpbWl0X21hc2sgICAgICAgID0gMHgwYiwKLQkubWF4X2ludGVuc2l0eSAgICAgPSAweGM3KzB4NDgsCi0JLnNldF9ibF9pbnRlbnNpdHkgID0gbWFnaWNpYW5fc2V0X2JsX2ludGVuc2l0eSwKK3N0YXRpYyB2b2lkIG1hZ2ljaWFuX2JhY2tsaWdodF9leGl0KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlncGlvX2ZyZWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIpOworCWdwaW9fZnJlZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUjIpOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX3B3bV9iYWNrbGlnaHRfZGF0YSBiYWNrbGlnaHRfZGF0YSA9IHsKKwkucHdtX2lkICAgICAgICAgPSAwLAorCS5tYXhfYnJpZ2h0bmVzcyA9IDI3MiwKKwkuZGZ0X2JyaWdodG5lc3MgPSAxMDAsCisJLnB3bV9wZXJpb2RfbnMgID0gMzA5MjMsCisJLmluaXQgICAgICAgICAgID0gbWFnaWNpYW5fYmFja2xpZ2h0X2luaXQsCisJLm5vdGlmeSAgICAgICAgID0gbWFnaWNpYW5fYmFja2xpZ2h0X25vdGlmeSwKKwkuZXhpdCAgICAgICAgICAgPSBtYWdpY2lhbl9iYWNrbGlnaHRfZXhpdCwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGJhY2tsaWdodCA9IHsKLQkubmFtZSA9ICJnZW5lcmljLWJsIiwKKwkubmFtZSA9ICJwd20tYmFja2xpZ2h0IiwKIAkuZGV2ICA9IHsKLQkJLnBsYXRmb3JtX2RhdGEgPSAmYmFja2xpZ2h0X2luZm8sCisJCS5wYXJlbnQgICAgICAgID0gJnB4YTI3eF9kZXZpY2VfcHdtMC5kZXYsCisJCS5wbGF0Zm9ybV9kYXRhID0gJmJhY2tsaWdodF9kYXRhLAogCX0sCi0JLmlkICAgPSAtMSwKIH07CiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9tYWluc3RvbmUuYyBiL2FyY2gvYXJtL21hY2gtcHhhL21haW5zdG9uZS5jCmluZGV4IDczOTlmYjMuLmYyZTllN2MgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL21haW5zdG9uZS5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL21haW5zdG9uZS5jCkBAIC0yMyw5ICsyMyw5IEBACiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+Ci0jaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KKyNpbmNsdWRlIDxsaW51eC9wd21fYmFja2xpZ2h0Lmg+CiAKICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KQEAgLTI4MCwxMiArMjgwLDYgQEAKIAkucmVzdW1lCQk9IG1zdF9hdWRpb19yZXN1bWUsCiB9OwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtc3RfYXVkaW9fZGV2aWNlID0gewotCS5uYW1lCQk9ICJweGEyeHgtYWM5NyIsCi0JLmlkCQk9IC0xLAotCS5kZXYJCT0geyAucGxhdGZvcm1fZGF0YSA9ICZtc3RfYXVkaW9fb3BzIH0sCi19OwotCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGZsYXNoX3Jlc291cmNlc1tdID0gewogCVswXSA9IHsKIAkJLnN0YXJ0CT0gUFhBX0NTMF9QSFlTLApAQCAtMzQ5LDU2ICszNDMsMjcgQEAKIAl9LAogfTsKIAotI2lmZGVmIENPTkZJR19CQUNLTElHSFRfQ0xBU1NfREVWSUNFCi1zdGF0aWMgaW50IG1haW5zdG9uZV9iYWNrbGlnaHRfdXBkYXRlX3N0YXR1cyhzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmwpCi17Ci0JaW50IGJyaWdodG5lc3MgPSBibC0+cHJvcHMuYnJpZ2h0bmVzczsKKyNpZiBkZWZpbmVkKENPTkZJR19GQl9QWEEpIHx8IGRlZmluZWQoQ09ORklHX0ZCX1BYQV9NT0RVTEUpCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX3B3bV9iYWNrbGlnaHRfZGF0YSBtYWluc3RvbmVfYmFja2xpZ2h0X2RhdGEgPSB7CisJLnB3bV9pZAkJPSAwLAorCS5tYXhfYnJpZ2h0bmVzcwk9IDEwMjMsCisJLmRmdF9icmlnaHRuZXNzCT0gMTAyMywKKwkucHdtX3BlcmlvZF9ucwk9IDc4NzcwLAorfTsKIAotCWlmIChibC0+cHJvcHMucG93ZXIgIT0gRkJfQkxBTktfVU5CTEFOSyB8fAotCSAgICBibC0+cHJvcHMuZmJfYmxhbmsgIT0gRkJfQkxBTktfVU5CTEFOSykKLQkJYnJpZ2h0bmVzcyA9IDA7Ci0KLQlpZiAoYnJpZ2h0bmVzcyAhPSAwKQotCQlweGFfc2V0X2NrZW4oQ0tFTl9QV00wLCAxKTsKLQotCVBXTV9DVFJMMCA9IDA7Ci0JUFdNX1BXRFVUWTAgPSBicmlnaHRuZXNzOwotCVBXTV9QRVJWQUwwID0gYmwtPnByb3BzLm1heF9icmlnaHRuZXNzOwotCi0JaWYgKGJyaWdodG5lc3MgPT0gMCkKLQkJcHhhX3NldF9ja2VuKENLRU5fUFdNMCwgMCk7Ci0JcmV0dXJuIDA7IC8qIHBvaW50bGVzcyByZXR1cm4gdmFsdWUgKi8KLX0KLQotc3RhdGljIGludCBtYWluc3RvbmVfYmFja2xpZ2h0X2dldF9icmlnaHRuZXNzKHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpibCkKLXsKLQlyZXR1cm4gUFdNX1BXRFVUWTA7Ci19Ci0KLXN0YXRpYyAvKmNvbnN0Ki8gc3RydWN0IGJhY2tsaWdodF9vcHMgbWFpbnN0b25lX2JhY2tsaWdodF9vcHMgPSB7Ci0JLnVwZGF0ZV9zdGF0dXMJPSBtYWluc3RvbmVfYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMsCi0JLmdldF9icmlnaHRuZXNzCT0gbWFpbnN0b25lX2JhY2tsaWdodF9nZXRfYnJpZ2h0bmVzcywKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG1haW5zdG9uZV9iYWNrbGlnaHRfZGV2aWNlID0geworCS5uYW1lCQk9ICJwd20tYmFja2xpZ2h0IiwKKwkuZGV2CQk9IHsKKwkJLnBhcmVudCA9ICZweGEyN3hfZGV2aWNlX3B3bTAuZGV2LAorCQkucGxhdGZvcm1fZGF0YSA9ICZtYWluc3RvbmVfYmFja2xpZ2h0X2RhdGEsCisJfSwKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBtYWluc3RvbmVfYmFja2xpZ2h0X3JlZ2lzdGVyKHZvaWQpCiB7Ci0Jc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsOwotCi0JYmwgPSBiYWNrbGlnaHRfZGV2aWNlX3JlZ2lzdGVyKCJtYWluc3RvbmUtYmwiLCAmcHhhX2RldmljZV9mYi5kZXYsCi0JCQkJICAgICAgIE5VTEwsICZtYWluc3RvbmVfYmFja2xpZ2h0X29wcyk7Ci0JaWYgKElTX0VSUihibCkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtYWluc3RvbmU6IHVuYWJsZSB0byByZWdpc3RlciBiYWNrbGlnaHQ6ICVsZFxuIiwKLQkJICAgICAgIFBUUl9FUlIoYmwpKTsKLQkJcmV0dXJuOwotCX0KLQotCS8qCi0JICogYnJva2VuIGRlc2lnbiAtIHJlZ2lzdGVyLXRoZW4tc2V0dXAgaW50ZXJmYWNlcyBhcmUKLQkgKiB1dHRlcmx5IGJyb2tlbiBieSBkZWZpbml0aW9uLgotCSAqLwotCWJsLT5wcm9wcy5tYXhfYnJpZ2h0bmVzcyA9IDEwMjM7Ci0JYmwtPnByb3BzLmJyaWdodG5lc3MgPSAxMDIzOwotCWJhY2tsaWdodF91cGRhdGVfc3RhdHVzKGJsKTsKKwlpbnQgcmV0ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtYWluc3RvbmVfYmFja2xpZ2h0X2RldmljZSk7CisJaWYgKHJldCkKKwkJcHJpbnRrKEtFUk5fRVJSICJtYWluc3RvbmU6IGZhaWxlZCB0byByZWdpc3RlciBiYWNrbGlnaHQgZGV2aWNlOiAlZFxuIiwgcmV0KTsKIH0KICNlbHNlCiAjZGVmaW5lIG1haW5zdG9uZV9iYWNrbGlnaHRfcmVnaXN0ZXIoKQlkbyB7IH0gd2hpbGUgKDApCkBAIC01MjgsNyArNDkzLDYgQEAKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZzbWM5MXhfZGV2aWNlLAotCSZtc3RfYXVkaW9fZGV2aWNlLAogCSZtc3RfZmxhc2hfZGV2aWNlWzBdLAogCSZtc3RfZmxhc2hfZGV2aWNlWzFdLAogCSZtc3RfZ3Bpb19rZXlzX2RldmljZSwKQEAgLTYzOCw2ICs2MDIsNyBAQAogCXB4YV9zZXRfZmljcF9pbmZvKCZtYWluc3RvbmVfZmljcF9wbGF0Zm9ybV9kYXRhKTsKIAlweGFfc2V0X29oY2lfaW5mbygmbWFpbnN0b25lX29oY2lfcGxhdGZvcm1fZGF0YSk7CiAJcHhhX3NldF9pMmNfaW5mbyhOVUxMKTsKKwlweGFfc2V0X2FjOTdfaW5mbygmbXN0X2F1ZGlvX29wcyk7CiAKIAltYWluc3RvbmVfaW5pdF9rZXlwYWQoKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL21mcC1weGEyeHguYyBiL2FyY2gvYXJtL21hY2gtcHhhL21mcC1weGEyeHguYwppbmRleCAyMjA5N2ExLi5kMWNkYjRlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9tZnAtcHhhMnh4LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvbWZwLXB4YTJ4eC5jCkBAIC0yMCw2ICsyMCw3IEBACiAKICNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tZnAtcHhhMnh4Lmg+CiAKICNpbmNsdWRlICJnZW5lcmljLmgiCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9wY205OTAtYmFzZWJvYXJkLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9wY205OTAtYmFzZWJvYXJkLmMKaW5kZXggNDlkOTUxZC4uNWQ4N2M3YyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvcGNtOTkwLWJhc2Vib2FyZC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3BjbTk5MC1iYXNlYm9hcmQuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2lkZS5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L3B3bV9iYWNrbGlnaHQuaD4KIAogI2luY2x1ZGUgPG1lZGlhL3NvY19jYW1lcmEuaD4KIApAQCAtMzMsMTIgKzM0LDEwMyBAQAogI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdWRpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21tYy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL29oY2kuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9wY205OTBfYmFzZWJvYXJkLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhZmIuaD4KKworI2luY2x1ZGUgImRldmljZXMuaCIKIAogLyoKLSAqIFRoZSBQQ00tOTkwIGRldmVsb3BtZW50IGJhc2Vib2FyZCB1c2VzIFBDTS0wMjcncyBoYXJkZXdhcmUgaW4gdGhlCisgKiBwY205OTBfbGNkX3Bvd2VyIC0gY29udHJvbCBwb3dlciBzdXBwbHkgdG8gdGhlIExDRAorICogQG9uOiAwID0gc3dpdGNoIG9mZiwgMSA9IHN3aXRjaCBvbgorICoKKyAqIENhbGxlZCBieSB0aGUgcHhhZmIgZHJpdmVyCisgKi8KKyNpZm5kZWYgQ09ORklHX1BDTTk5MF9ESVNQTEFZX05PTkUKK3N0YXRpYyB2b2lkIHBjbTk5MF9sY2RfcG93ZXIoaW50IG9uLCBzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhcikKK3sKKwlpZiAob24pIHsKKwkJLyogZW5hYmxlIExDRC1MYXRjaGVzCisJCSAqIHBvd2VyIG9uIExDRAorCQkgKi8KKwkJX19QQ005OTBfQ1RSTF9SRUcoUENNOTkwX0NUUkxfUEhZUyArIFBDTTk5MF9DVFJMX1JFRzMpID0KKwkJCVBDTTk5MF9DVFJMX0xDRFBXUiArIFBDTTk5MF9DVFJMX0xDRE9OOworCX0gZWxzZSB7CisJCS8qIGRpc2FibGUgTENELUxhdGNoZXMKKwkJICogcG93ZXIgb2ZmIExDRAorCQkgKi8KKwkJX19QQ005OTBfQ1RSTF9SRUcoUENNOTkwX0NUUkxfUEhZUyArIFBDTTk5MF9DVFJMX1JFRzMpID0gMHgwMDsKKwl9Cit9CisjZW5kaWYKKworI2lmIGRlZmluZWQoQ09ORklHX1BDTTk5MF9ESVNQTEFZX1NIQVJQKQorc3RhdGljIHN0cnVjdCBweGFmYl9tb2RlX2luZm8gZmJfaW5mb19zaGFycF9scTA4NHYxZGcyMSA9IHsKKwkucGl4Y2xvY2sJCT0gMjgwMDAsCisJLnhyZXMJCQk9IDY0MCwKKwkueXJlcwkJCT0gNDgwLAorCS5icHAJCQk9IDE2LAorCS5oc3luY19sZW4JCT0gMjAsCisJLmxlZnRfbWFyZ2luCQk9IDEwMywKKwkucmlnaHRfbWFyZ2luCQk9IDQ3LAorCS52c3luY19sZW4JCT0gNiwKKwkudXBwZXJfbWFyZ2luCQk9IDI4LAorCS5sb3dlcl9tYXJnaW4JCT0gNSwKKwkuc3luYwkJCT0gMCwKKwkuY21hcF9ncmV5c2NhbGUJCT0gMCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcHhhZmJfbWFjaF9pbmZvIHBjbTk5MF9mYmluZm8gX19pbml0ZGF0YSA9IHsKKwkubW9kZXMJCQk9ICZmYl9pbmZvX3NoYXJwX2xxMDg0djFkZzIxLAorCS5udW1fbW9kZXMJCT0gMSwKKwkubGNjcjAJCQk9IExDQ1IwX1BBUywKKwkubGNjcjMJCQk9IExDQ1IzX1BDUCwKKwkucHhhZmJfbGNkX3Bvd2VyCT0gcGNtOTkwX2xjZF9wb3dlciwKK307CisjZWxpZiBkZWZpbmVkKENPTkZJR19QQ005OTBfRElTUExBWV9ORUMpCitzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvIGZiX2luZm9fbmVjX25sNjQ0OGJjMjBfMThkID0geworCS5waXhjbG9jawkJPSAzOTcyMCwKKwkueHJlcwkJCT0gNjQwLAorCS55cmVzCQkJPSA0ODAsCisJLmJwcAkJCT0gMTYsCisJLmhzeW5jX2xlbgkJPSAzMiwKKwkubGVmdF9tYXJnaW4JCT0gMTYsCisJLnJpZ2h0X21hcmdpbgkJPSA0OCwKKwkudnN5bmNfbGVuCQk9IDIsCisJLnVwcGVyX21hcmdpbgkJPSAxMiwKKwkubG93ZXJfbWFyZ2luCQk9IDE3LAorCS5zeW5jCQkJPSAwLAorCS5jbWFwX2dyZXlzY2FsZQkJPSAwLAorfTsKKworc3RhdGljIHN0cnVjdCBweGFmYl9tYWNoX2luZm8gcGNtOTkwX2ZiaW5mbyBfX2luaXRkYXRhID0geworCS5tb2RlcwkJCT0gJmZiX2luZm9fbmVjX25sNjQ0OGJjMjBfMThkLAorCS5udW1fbW9kZXMJCT0gMSwKKwkubGNjcjAJCQk9IExDQ1IwX0FjdCwKKwkubGNjcjMJCQk9IExDQ1IzX1BpeEZsRWRnLAorCS5weGFmYl9sY2RfcG93ZXIJPSBwY205OTBfbGNkX3Bvd2VyLAorfTsKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX3B3bV9iYWNrbGlnaHRfZGF0YSBwY205OTBfYmFja2xpZ2h0X2RhdGEgPSB7CisJLnB3bV9pZAkJPSAwLAorCS5tYXhfYnJpZ2h0bmVzcwk9IDEwMjMsCisJLmRmdF9icmlnaHRuZXNzCT0gMTAyMywKKwkucHdtX3BlcmlvZF9ucwk9IDc4NzcwLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcGNtOTkwX2JhY2tsaWdodF9kZXZpY2UgPSB7CisJLm5hbWUJCT0gInB3bS1iYWNrbGlnaHQiLAorCS5kZXYJCT0geworCQkucGFyZW50ID0gJnB4YTI3eF9kZXZpY2VfcHdtMC5kZXYsCisJCS5wbGF0Zm9ybV9kYXRhID0gJnBjbTk5MF9iYWNrbGlnaHRfZGF0YSwKKwl9LAorfTsKKworLyoKKyAqIFRoZSBQQ00tOTkwIGRldmVsb3BtZW50IGJhc2Vib2FyZCB1c2VzIFBDTS0wMjcncyBoYXJkd2FyZSBpbiB0aGUKICAqIGZvbGxvd2luZyB3YXk6CiAgKgogICogLSBMQ0Qgc3VwcG9ydCBpcyBpbiB1c2UKQEAgLTMzMywzNiArNDI1LDYgQEAKICNlbmRpZiAvKiBDT05GSUdfVklERU9fUFhBMjd4IHx8Q09ORklHX1ZJREVPX1BYQTI3eF9NT0RVTEUgKi8KIAogLyoKLSAqIEFDOTcgc3VwcG9ydAotICogTm90ZTogVGhlIGNvbm5lY3RlZCBBQzk3IG1peGVyIGFsc28gcmVwb3J0cyBpbnRlcnJ1cHRzIGF0IFBDTTk5MF9BQzk3X0lSUQotICovCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHB4YTI3eF9hYzk3X3Jlc291cmNlc1tdID0gewotCVswXSA9IHsKLQkJLnN0YXJ0ICA9IDB4NDA1MDAwMDAsCi0JCS5lbmQJPSAweDQwNTAwMDAwICsgMHhmZmYsCi0JCS5mbGFncyAgPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCVsxXSA9IHsKLQkJLnN0YXJ0ICA9IElSUV9BQzk3LAotCQkuZW5kICAgID0gSVJRX0FDOTcsCi0JCS5mbGFncyAgPSBJT1JFU09VUkNFX0lSUSwKLQl9LAotfTsKLQotc3RhdGljIHU2NCBweGFfYWM5N19kbWFtYXNrID0gMHhmZmZmZmZmZlVMOwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyN3hfZGV2aWNlX2FjOTcgPSB7Ci0JLm5hbWUgICAgICAgICAgID0gInB4YTJ4eC1hYzk3IiwKLQkuaWQgICAgICAgICAgICAgPSAtMSwKLQkuZGV2ICAgICAgICAgICAgPSB7Ci0JCS5kbWFfbWFzayA9ICZweGFfYWM5N19kbWFtYXNrLAotCQkuY29oZXJlbnRfZG1hX21hc2sgPSAweGZmZmZmZmZmLAotCX0sCi0JLm51bV9yZXNvdXJjZXMgID0gQVJSQVlfU0laRShweGEyN3hfYWM5N19yZXNvdXJjZXMpLAotCS5yZXNvdXJjZSAgICAgICA9IHB4YTI3eF9hYzk3X3Jlc291cmNlcywKLX07Ci0KLS8qCiAgKiBlbmFibGUgZ2VuZXJpYyBhY2Nlc3MgdG8gdGhlIGJhc2UgYm9hcmQgY29udHJvbCBDUExEcyBVNiBhbmQgVTcKICAqLwogc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBwY205OTBfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CkBAIC0zOTMsNyArNDU1LDExIEBACiAJLyogcmVnaXN0ZXIgQ1BMRCdzIElSUSBjb250cm9sbGVyICovCiAJcGNtOTkwX2luaXRfaXJxKCk7CiAKLQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnB4YTI3eF9kZXZpY2VfYWM5Nyk7CisjaWZuZGVmIENPTkZJR19QQ005OTBfRElTUExBWV9OT05FCisJc2V0X3B4YV9mYl9pbmZvKCZwY205OTBfZmJpbmZvKTsKKyNlbmRpZgorCXB4YV9ncGlvX21vZGUoR1BJTzE2X1BXTTBfTUQpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcGNtOTkwX2JhY2tsaWdodF9kZXZpY2UpOwogCiAJLyogTU1DICovCiAJcHhhX3NldF9tY2lfaW5mbygmcGNtOTkwX21jaV9wbGF0Zm9ybV9kYXRhKTsKQEAgLTQwMiw2ICs0NjgsNyBAQAogCXB4YV9zZXRfb2hjaV9pbmZvKCZwY205OTBfb2hjaV9wbGF0Zm9ybV9kYXRhKTsKIAogCXB4YV9zZXRfaTJjX2luZm8oTlVMTCk7CisJcHhhX3NldF9hYzk3X2luZm8oTlVMTCk7CiAKICNpZiBkZWZpbmVkKENPTkZJR19WSURFT19QWEEyN3gpIHx8IGRlZmluZWQoQ09ORklHX1ZJREVPX1BYQTI3eF9NT0RVTEUpCiAJcHhhX3NldF9jYW1lcmFfaW5mbygmcGNtOTkwX3B4YWNhbWVyYV9wbGF0Zm9ybV9kYXRhKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3Bvb2RsZS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvcG9vZGxlLmMKaW5kZXggMGIzMGYyNS4uZjgxYzEwYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvcG9vZGxlLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvcG9vZGxlLmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21tYy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3VkYy5oPgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvcHdtLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9wd20uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTI4Y2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvcHdtLmMKQEAgLTAsMCArMSwzMTkgQEAKKy8qCisgKiBsaW51eC9hcmNoL2FybS9tYWNoLXB4YS9wd20uYworICoKKyAqIHNpbXBsZSBkcml2ZXIgZm9yIFBXTSAoUHVsc2UgV2lkdGggTW9kdWxhdG9yKSBjb250cm9sbGVyCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiAyMDA4LTAyLTEzCWluaXRpYWwgdmVyc2lvbgorICogCQllcmljIG1pYW8gPGVyaWMubWlhb0BtYXJ2ZWxsLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9wd20uaD4KKworI2luY2x1ZGUgPGFzbS9kaXY2NC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisKKy8qIFBXTSByZWdpc3RlcnMgYW5kIGJpdHMgZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgUFdNQ1IJCSgweDAwKQorI2RlZmluZSBQV01EQ1IJCSgweDA0KQorI2RlZmluZSBQV01QQ1IJCSgweDA4KQorCisjZGVmaW5lIFBXTUNSX1NECSgxIDw8IDYpCisjZGVmaW5lIFBXTURDUl9GRAkoMSA8PCAxMCkKKworc3RydWN0IHB3bV9kZXZpY2UgeworCXN0cnVjdCBsaXN0X2hlYWQJbm9kZTsKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OworCisJY29uc3QgY2hhcgkqbGFiZWw7CisJc3RydWN0IGNsawkqY2xrOworCWludAkJY2xrX2VuYWJsZWQ7CisJdm9pZCBfX2lvbWVtCSptbWlvX2Jhc2U7CisKKwl1bnNpZ25lZCBpbnQJdXNlX2NvdW50OworCXVuc2lnbmVkIGludAlwd21faWQ7Cit9OworCisvKgorICogcGVyaW9kX25zID0gMTBeOSAqIChQUkVTQ0FMRSArIDEpICogKFBWICsgMSkgLyBQV01fQ0xLX1JBVEUKKyAqIGR1dHlfbnMgICA9IDEwXjkgKiAoUFJFU0NBTEUgKyAxKSAqIERDIC8gUFdNX0NMS19SQVRFCisgKi8KK2ludCBwd21fY29uZmlnKHN0cnVjdCBwd21fZGV2aWNlICpwd20sIGludCBkdXR5X25zLCBpbnQgcGVyaW9kX25zKQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBjOworCXVuc2lnbmVkIGxvbmcgcGVyaW9kX2N5Y2xlcywgcHJlc2NhbGUsIHB2LCBkYzsKKworCWlmIChwd20gPT0gTlVMTCB8fCBwZXJpb2RfbnMgPT0gMCB8fCBkdXR5X25zID4gcGVyaW9kX25zKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWMgPSBjbGtfZ2V0X3JhdGUocHdtLT5jbGspOworCWMgPSBjICogcGVyaW9kX25zOworCWRvX2RpdihjLCAxMDAwMDAwMDAwKTsKKwlwZXJpb2RfY3ljbGVzID0gYzsKKworCWlmIChwZXJpb2RfY3ljbGVzIDwgMCkKKwkJcGVyaW9kX2N5Y2xlcyA9IDE7CisJcHJlc2NhbGUgPSAocGVyaW9kX2N5Y2xlcyAtIDEpIC8gMTAyNDsKKwlwdiA9IHBlcmlvZF9jeWNsZXMgLyAocHJlc2NhbGUgKyAxKSAtIDE7CisKKwlpZiAocHJlc2NhbGUgPiA2MykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoZHV0eV9ucyA9PSBwZXJpb2RfbnMpCisJCWRjID0gUFdNRENSX0ZEOworCWVsc2UKKwkJZGMgPSAocHYgKyAxKSAqIGR1dHlfbnMgLyBwZXJpb2RfbnM7CisKKwkvKiBOT1RFOiB0aGUgY2xvY2sgdG8gUFdNIGhhcyB0byBiZSBlbmFibGVkIGZpcnN0CisJICogYmVmb3JlIHdyaXRpbmcgdG8gdGhlIHJlZ2lzdGVycworCSAqLworCWNsa19lbmFibGUocHdtLT5jbGspOworCV9fcmF3X3dyaXRlbChwcmVzY2FsZSwgcHdtLT5tbWlvX2Jhc2UgKyBQV01DUik7CisJX19yYXdfd3JpdGVsKGRjLCBwd20tPm1taW9fYmFzZSArIFBXTURDUik7CisJX19yYXdfd3JpdGVsKHB2LCBwd20tPm1taW9fYmFzZSArIFBXTVBDUik7CisJY2xrX2Rpc2FibGUocHdtLT5jbGspOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKHB3bV9jb25maWcpOworCitpbnQgcHdtX2VuYWJsZShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQoreworCWludCByYyA9IDA7CisKKwlpZiAoIXB3bS0+Y2xrX2VuYWJsZWQpIHsKKwkJcmMgPSBjbGtfZW5hYmxlKHB3bS0+Y2xrKTsKKwkJaWYgKCFyYykKKwkJCXB3bS0+Y2xrX2VuYWJsZWQgPSAxOworCX0KKwlyZXR1cm4gcmM7Cit9CitFWFBPUlRfU1lNQk9MKHB3bV9lbmFibGUpOworCit2b2lkIHB3bV9kaXNhYmxlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pCit7CisJaWYgKHB3bS0+Y2xrX2VuYWJsZWQpIHsKKwkJY2xrX2Rpc2FibGUocHdtLT5jbGspOworCQlwd20tPmNsa19lbmFibGVkID0gMDsKKwl9Cit9CitFWFBPUlRfU1lNQk9MKHB3bV9kaXNhYmxlKTsKKworc3RhdGljIERFRklORV9NVVRFWChwd21fbG9jayk7CitzdGF0aWMgTElTVF9IRUFEKHB3bV9saXN0KTsKKworc3RydWN0IHB3bV9kZXZpY2UgKnB3bV9yZXF1ZXN0KGludCBwd21faWQsIGNvbnN0IGNoYXIgKmxhYmVsKQoreworCXN0cnVjdCBwd21fZGV2aWNlICpwd207CisJaW50IGZvdW5kID0gMDsKKworCW11dGV4X2xvY2soJnB3bV9sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkocHdtLCAmcHdtX2xpc3QsIG5vZGUpIHsKKwkJaWYgKHB3bS0+cHdtX2lkID09IHB3bV9pZCkgeworCQkJZm91bmQgPSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoZm91bmQpIHsKKwkJaWYgKHB3bS0+dXNlX2NvdW50ID09IDApIHsKKwkJCXB3bS0+dXNlX2NvdW50Kys7CisJCQlwd20tPmxhYmVsID0gbGFiZWw7CisJCX0gZWxzZQorCQkJcHdtID0gRVJSX1BUUigtRUJVU1kpOworCX0gZWxzZQorCQlwd20gPSBFUlJfUFRSKC1FTk9FTlQpOworCisJbXV0ZXhfdW5sb2NrKCZwd21fbG9jayk7CisJcmV0dXJuIHB3bTsKK30KK0VYUE9SVF9TWU1CT0wocHdtX3JlcXVlc3QpOworCit2b2lkIHB3bV9mcmVlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pCit7CisJbXV0ZXhfbG9jaygmcHdtX2xvY2spOworCisJaWYgKHB3bS0+dXNlX2NvdW50KSB7CisJCXB3bS0+dXNlX2NvdW50LS07CisJCXB3bS0+bGFiZWwgPSBOVUxMOworCX0gZWxzZQorCQlwcl93YXJuaW5nKCJQV00gZGV2aWNlIGFscmVhZHkgZnJlZWRcbiIpOworCisJbXV0ZXhfdW5sb2NrKCZwd21fbG9jayk7Cit9CitFWFBPUlRfU1lNQk9MKHB3bV9mcmVlKTsKKworc3RhdGljIGlubGluZSB2b2lkIF9fYWRkX3B3bShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQoreworCW11dGV4X2xvY2soJnB3bV9sb2NrKTsKKwlsaXN0X2FkZF90YWlsKCZwd20tPm5vZGUsICZwd21fbGlzdCk7CisJbXV0ZXhfdW5sb2NrKCZwd21fbG9jayk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCXVuc2lnbmVkIGludCBwd21faWQsIHN0cnVjdCBwd21fZGV2aWNlICpwYXJlbnRfcHdtKQoreworCXN0cnVjdCBwd21fZGV2aWNlICpwd207CisJc3RydWN0IHJlc291cmNlICpyOworCWludCByZXQgPSAwOworCisJcHdtID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHB3bV9kZXZpY2UpLCBHRlBfS0VSTkVMKTsKKwlpZiAocHdtID09IE5VTEwpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeVxuIik7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCX0KKworCXB3bS0+Y2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAiUFdNQ0xLIik7CisJaWYgKElTX0VSUihwd20tPmNsaykpIHsKKwkJcmV0ID0gUFRSX0VSUihwd20tPmNsayk7CisJCWdvdG8gZXJyX2ZyZWU7CisJfQorCXB3bS0+Y2xrX2VuYWJsZWQgPSAwOworCisJcHdtLT51c2VfY291bnQgPSAwOworCXB3bS0+cHdtX2lkID0gcHdtX2lkOworCXB3bS0+cGRldiA9IHBkZXY7CisKKwlpZiAocGFyZW50X3B3bSAhPSBOVUxMKSB7CisJCS8qIHJlZ2lzdGVycyBmb3IgdGhlIHNlY29uZCBQV00gaGFzIG9mZnNldCBvZiAweDEwICovCisJCXB3bS0+bW1pb19iYXNlID0gcGFyZW50X3B3bS0+bW1pb19iYXNlICsgMHgxMDsKKwkJX19hZGRfcHdtKHB3bSk7CisJCXJldHVybiBwd207CisJfQorCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJaWYgKHIgPT0gTlVMTCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBtZW1vcnkgcmVzb3VyY2UgZGVmaW5lZFxuIik7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gZXJyX2ZyZWVfY2xrOworCX0KKworCXIgPSByZXF1ZXN0X21lbV9yZWdpb24oci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSwgcGRldi0+bmFtZSk7CisJaWYgKHIgPT0gTlVMTCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVxdWVzdCBtZW1vcnkgcmVzb3VyY2VcbiIpOworCQlyZXQgPSAtRUJVU1k7CisJCWdvdG8gZXJyX2ZyZWVfY2xrOworCX0KKworCXB3bS0+bW1pb19iYXNlID0gaW9yZW1hcChyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxKTsKKwlpZiAocHdtLT5tbWlvX2Jhc2UgPT0gTlVMTCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gaW9yZW1hcCgpIHJlZ2lzdGVyc1xuIik7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gZXJyX2ZyZWVfbWVtOworCX0KKworCV9fYWRkX3B3bShwd20pOworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHB3bSk7CisJcmV0dXJuIHB3bTsKKworZXJyX2ZyZWVfbWVtOgorCXJlbGVhc2VfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxKTsKK2Vycl9mcmVlX2NsazoKKwljbGtfcHV0KHB3bS0+Y2xrKTsKK2Vycl9mcmVlOgorCWtmcmVlKHB3bSk7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKK30KKworc3RhdGljIGludCBfX2RldmluaXQgcHhhMjV4X3B3bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBwd21fZGV2aWNlICpwd20gPSBwd21fcHJvYmUocGRldiwgcGRldi0+aWQsIE5VTEwpOworCisJaWYgKElTX0VSUihwd20pKQorCQlyZXR1cm4gUFRSX0VSUihwd20pOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZpbml0IHB4YTI3eF9wd21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcHdtX2RldmljZSAqcHdtOworCisJcHdtID0gcHdtX3Byb2JlKHBkZXYsIHBkZXYtPmlkLCBOVUxMKTsKKwlpZiAoSVNfRVJSKHB3bSkpCisJCXJldHVybiBQVFJfRVJSKHB3bSk7CisKKwlwd20gPSBwd21fcHJvYmUocGRldiwgcGRldi0+aWQgKyAyLCBwd20pOworCWlmIChJU19FUlIocHdtKSkKKwkJcmV0dXJuIFBUUl9FUlIocHdtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZGV2ZXhpdCBwd21fcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHB3bV9kZXZpY2UgKnB3bTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CisKKwlwd20gPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlpZiAocHdtID09IE5VTEwpCisJCXJldHVybiAtRU5PREVWOworCisJbXV0ZXhfbG9jaygmcHdtX2xvY2spOworCWxpc3RfZGVsKCZwd20tPm5vZGUpOworCW11dGV4X3VubG9jaygmcHdtX2xvY2spOworCisJaW91bm1hcChwd20tPm1taW9fYmFzZSk7CisKKwlyID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlyZWxlYXNlX21lbV9yZWdpb24oci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSk7CisKKwljbGtfcHV0KHB3bS0+Y2xrKTsKKwlrZnJlZShwd20pOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBweGEyNXhfcHdtX2RyaXZlciA9IHsKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAicHhhMjV4LXB3bSIsCisJfSwKKwkucHJvYmUJCT0gcHhhMjV4X3B3bV9wcm9iZSwKKwkucmVtb3ZlCQk9IF9fZGV2ZXhpdF9wKHB3bV9yZW1vdmUpLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcHhhMjd4X3B3bV9kcml2ZXIgPSB7CisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gInB4YTI3eC1wd20iLAorCX0sCisJLnByb2JlCQk9IHB4YTI3eF9wd21fcHJvYmUsCisJLnJlbW92ZQkJPSBfX2RldmV4aXRfcChwd21fcmVtb3ZlKSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHB3bV9pbml0KHZvaWQpCit7CisJaW50IHJldCA9IDA7CisKKwlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnB4YTI1eF9wd21fZHJpdmVyKTsKKwlpZiAocmV0KSB7CisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIHJlZ2lzdGVyIHB4YTI1eF9wd21fZHJpdmVyXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnB4YTI3eF9wd21fZHJpdmVyKTsKKwlpZiAocmV0KSB7CisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIHJlZ2lzdGVyIHB4YTI3eF9wd21fZHJpdmVyXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorYXJjaF9pbml0Y2FsbChwd21faW5pdCk7CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBwd21fZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZweGEyNXhfcHdtX2RyaXZlcik7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnB4YTI3eF9wd21fZHJpdmVyKTsKK30KK21vZHVsZV9leGl0KHB3bV9leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvcHhhMjV4LmMgYi9hcmNoL2FybS9tYWNoLXB4YS9weGEyNXguYwppbmRleCBlNWI0MTdkLi40Y2Q1MGUzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9weGEyNXguYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9weGEyNXguYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lycXMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbWZwLXB4YTI1eC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3BtLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvZG1hLmg+CkBAIC0xMTcsMjkgKzExOCwzNSBAQAogCUlOSVRfQ0tFTigiVUFSVENMSyIsIEhXVUFSVCwgMTQ3NDU2MDAsIDEsICZweGFfZGV2aWNlX2h3dWFydC5kZXYpCiA7CiAKKy8qCisgKiBQWEEgMnh4IGNsb2NrIGRlY2xhcmF0aW9ucy4gT3JkZXIgaXMgaW1wb3J0YW50IChzZWUgYWxpYXNlcyBiZWxvdykKKyAqIFBsZWFzZSBiZSBjYXJlZnVsIG5vdCB0byBkaXNydXB0IHRoZSBvcmRlcmluZy4KKyAqLwogc3RhdGljIHN0cnVjdCBjbGsgcHhhMjV4X2Nsa3NbXSA9IHsKIAlJTklUX0NLKCJMQ0RDTEsiLCBMQ0QsICZjbGtfcHhhMjV4X2xjZF9vcHMsICZweGFfZGV2aWNlX2ZiLmRldiksCiAJSU5JVF9DS0VOKCJVQVJUQ0xLIiwgRkZVQVJULCAxNDc0NTYwMCwgMSwgJnB4YV9kZXZpY2VfZmZ1YXJ0LmRldiksCiAJSU5JVF9DS0VOKCJVQVJUQ0xLIiwgQlRVQVJULCAxNDc0NTYwMCwgMSwgJnB4YV9kZXZpY2VfYnR1YXJ0LmRldiksCiAJSU5JVF9DS0VOKCJVQVJUQ0xLIiwgU1RVQVJULCAxNDc0NTYwMCwgMSwgTlVMTCksCi0JSU5JVF9DS0VOKCJVRENDTEsiLCBVU0IsIDQ3OTIzMDAwLCA1LCAmcHhhX2RldmljZV91ZGMuZGV2KSwKKwlJTklUX0NLRU4oIlVEQ0NMSyIsIFVTQiwgNDc5MjMwMDAsIDUsICZweGEyNXhfZGV2aWNlX3VkYy5kZXYpLAogCUlOSVRfQ0tFTigiTU1DQ0xLIiwgTU1DLCAxOTE2OTAwMCwgMCwgJnB4YV9kZXZpY2VfbWNpLmRldiksCiAJSU5JVF9DS0VOKCJJMkNDTEsiLCBJMkMsIDMxOTQ5MDAwLCAwLCAmcHhhX2RldmljZV9pMmMuZGV2KSwKIAogCUlOSVRfQ0tFTigiU1NQQ0xLIiwgIFNTUCwgMzY4NjQwMCwgMCwgJnB4YTI1eF9kZXZpY2Vfc3NwLmRldiksCiAJSU5JVF9DS0VOKCJTU1BDTEsiLCBOU1NQLCAzNjg2NDAwLCAwLCAmcHhhMjV4X2RldmljZV9uc3NwLmRldiksCiAJSU5JVF9DS0VOKCJTU1BDTEsiLCBBU1NQLCAzNjg2NDAwLCAwLCAmcHhhMjV4X2RldmljZV9hc3NwLmRldiksCisJSU5JVF9DS0VOKCJQV01DTEsiLCBQV00wLCAzNjg2NDAwLCAwLCAmcHhhMjV4X2RldmljZV9wd20wLmRldiksCisJSU5JVF9DS0VOKCJQV01DTEsiLCBQV00xLCAzNjg2NDAwLCAwLCAmcHhhMjV4X2RldmljZV9wd20xLmRldiksCiAKIAlJTklUX0NLRU4oIkFDOTdDTEsiLCAgICAgQUM5NywgICAgIDI0NTc2MDAwLCAwLCBOVUxMKSwKIAogCS8qCi0JSU5JVF9DS0VOKCJQV01DTEsiLCAgUFdNMCwgMzY4NjQwMCwgIDAsIE5VTEwpLAotCUlOSVRfQ0tFTigiUFdNQ0xLIiwgIFBXTTAsIDM2ODY0MDAsICAwLCBOVUxMKSwKIAlJTklUX0NLRU4oIkkyU0NMSyIsICBJMlMsICAxNDc0NTYwMCwgMCwgTlVMTCksCiAJKi8KIAlJTklUX0NLRU4oIkZJQ1BDTEsiLCBGSUNQLCA0NzkyMzAwMCwgMCwgTlVMTCksCiB9OwogCitzdGF0aWMgc3RydWN0IGNsayBncGlvN19jbGsgPSBJTklUX0NLT1RIRVIoIkdQSU83X0NLIiwgJnB4YTI1eF9jbGtzWzRdLCBOVUxMKTsKKwogI2lmZGVmIENPTkZJR19QTQogCiAjZGVmaW5lIFNBVkUoeCkJCXNsZWVwX3NhdmVbU0xFRVBfU0FWRV8jI3hdID0geApAQCAtMjYwLDcgKzI2Nyw3IEBACiB9CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpweGEyNXhfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7Ci0JJnB4YV9kZXZpY2VfdWRjLAorCSZweGEyNXhfZGV2aWNlX3VkYywKIAkmcHhhX2RldmljZV9mZnVhcnQsCiAJJnB4YV9kZXZpY2VfYnR1YXJ0LAogCSZweGFfZGV2aWNlX3N0dWFydCwKQEAgLTI2OSw2ICsyNzYsOCBAQAogCSZweGEyNXhfZGV2aWNlX3NzcCwKIAkmcHhhMjV4X2RldmljZV9uc3NwLAogCSZweGEyNXhfZGV2aWNlX2Fzc3AsCisJJnB4YTI1eF9kZXZpY2VfcHdtMCwKKwkmcHhhMjV4X2RldmljZV9wd20xLAogfTsKIAogc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIHB4YTI1eF9zeXNkZXZbXSA9IHsKQEAgLTMxMSw2ICszMjAsOCBAQAogCWlmIChjcHVfaXNfcHhhMjV4KCkpCiAJCXJldCA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcHhhX2RldmljZV9od3VhcnQpOwogCisJY2xrc19yZWdpc3RlcigmZ3BpbzdfY2xrLCAxKTsKKwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI3eC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvcHhhMjd4LmMKaW5kZXggN2U5NDU4My4uZDVkMTRlYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvcHhhMjd4LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvcHhhMjd4LmMKQEAgLTE0Niw3ICsxNDYsNyBAQAogCiAJSU5JVF9DS0VOKCJJMlNDTEsiLCAgSTJTLCAgMTQ2ODIwMDAsIDAsICZweGFfZGV2aWNlX2kycy5kZXYpLAogCUlOSVRfQ0tFTigiSTJDQ0xLIiwgIEkyQywgIDMyODQyMDAwLCAwLCAmcHhhX2RldmljZV9pMmMuZGV2KSwKLQlJTklUX0NLRU4oIlVEQ0NMSyIsICBVU0IsICA0ODAwMDAwMCwgNSwgJnB4YV9kZXZpY2VfdWRjLmRldiksCisJSU5JVF9DS0VOKCJVRENDTEsiLCAgVVNCLCAgNDgwMDAwMDAsIDUsICZweGEyN3hfZGV2aWNlX3VkYy5kZXYpLAogCUlOSVRfQ0tFTigiTU1DQ0xLIiwgIE1NQywgIDE5NTAwMDAwLCAwLCAmcHhhX2RldmljZV9tY2kuZGV2KSwKIAlJTklUX0NLRU4oIkZJQ1BDTEsiLCBGSUNQLCA0ODAwMDAwMCwgMCwgJnB4YV9kZXZpY2VfZmljcC5kZXYpLAogCkBAIC0xNTcsMTIgKzE1NywxMyBAQAogCUlOSVRfQ0tFTigiU1NQQ0xLIiwgU1NQMSwgMTMwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX3NzcDEuZGV2KSwKIAlJTklUX0NLRU4oIlNTUENMSyIsIFNTUDIsIDEzMDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9zc3AyLmRldiksCiAJSU5JVF9DS0VOKCJTU1BDTEsiLCBTU1AzLCAxMzAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2Vfc3NwMy5kZXYpLAorCUlOSVRfQ0tFTigiUFdNQ0xLIiwgUFdNMCwgMTMwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX3B3bTAuZGV2KSwKKwlJTklUX0NLRU4oIlBXTUNMSyIsIFBXTTEsIDEzMDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9wd20xLmRldiksCiAKIAlJTklUX0NLRU4oIkFDOTdDTEsiLCAgICAgQUM5NywgICAgIDI0NTc2MDAwLCAwLCBOVUxMKSwKIAlJTklUX0NLRU4oIkFDOTdDT05GQ0xLIiwgQUM5N0NPTkYsIDI0NTc2MDAwLCAwLCBOVUxMKSwKIAogCS8qCi0JSU5JVF9DS0VOKCJQV01DTEsiLCAgUFdNMCwgMTMwMDAwMDAsIDAsIE5VTEwpLAogCUlOSVRfQ0tFTigiTVNMQ0xLIiwgIE1TTCwgIDQ4MDAwMDAwLCAwLCBOVUxMKSwKIAlJTklUX0NLRU4oIlVTSU1DTEsiLCBVU0lNLCA0ODAwMDAwMCwgMCwgTlVMTCksCiAJSU5JVF9DS0VOKCJNU1RLQ0xLIiwgTUVNU1RLLCAxOTUwMDAwMCwgMCwgTlVMTCksCkBAIC0zNDksMTEgKzM1MCwxNCBAQAogCiB2b2lkIF9faW5pdCBweGFfc2V0X2kyY19wb3dlcl9pbmZvKHN0cnVjdCBpMmNfcHhhX3BsYXRmb3JtX2RhdGEgKmluZm8pCiB7CisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlQQ0ZSIHw9IFBDRlJfUEkyQ0VOOworCWxvY2FsX2lycV9lbmFibGUoKTsKIAlweGEyN3hfZGV2aWNlX2kyY19wb3dlci5kZXYucGxhdGZvcm1fZGF0YSA9IGluZm87CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKLQkmcHhhX2RldmljZV91ZGMsCisJJnB4YTI3eF9kZXZpY2VfdWRjLAogCSZweGFfZGV2aWNlX2ZmdWFydCwKIAkmcHhhX2RldmljZV9idHVhcnQsCiAJJnB4YV9kZXZpY2Vfc3R1YXJ0LApAQCAtMzYzLDYgKzM2Nyw4IEBACiAJJnB4YTI3eF9kZXZpY2Vfc3NwMSwKIAkmcHhhMjd4X2RldmljZV9zc3AyLAogCSZweGEyN3hfZGV2aWNlX3NzcDMsCisJJnB4YTI3eF9kZXZpY2VfcHdtMCwKKwkmcHhhMjd4X2RldmljZV9wd20xLAogfTsKIAogc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIHB4YTI3eF9zeXNkZXZbXSA9IHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTJ4eC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvcHhhMnh4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRmNjQxNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTJ4eC5jCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBsaW51eC9hcmNoL2FybS9tYWNoLXB4YS9weGEyeHguYworICoKKyAqIGNvZGUgc3BlY2lmaWMgdG8gcHhhMnh4CisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IERtaXRyeSBCYXJ5c2hrb3YKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL21mcC1weGEyeHguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tZnAtcHhhMjV4Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaXJkYS5oPgorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBweGEyeHhfbWZwX2ZpcltdID0geworCUdQSU80Nl9GSUNQX1JYRCwKKwlHUElPNDdfRklDUF9UWEQsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBweGEyeHhfbWZwX3NpcltdID0geworCUdQSU80Nl9TVFVBUlRfUlhELAorCUdQSU80N19TVFVBUlRfVFhELAorfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgcHhhMnh4X21mcF9vZmZbXSA9IHsKKwlHUElPNDZfR1BJTyB8IE1GUF9MUE1fRFJJVkVfTE9XLAorCUdQSU80N19HUElPIHwgTUZQX0xQTV9EUklWRV9MT1csCit9OworCit2b2lkIHB4YTJ4eF90cmFuc2NlaXZlcl9tb2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IG1vZGUpCit7CisJaWYgKG1vZGUgJiBJUl9PRkYpIHsKKwkJcHhhMnh4X21mcF9jb25maWcocHhhMnh4X21mcF9vZmYsIEFSUkFZX1NJWkUocHhhMnh4X21mcF9vZmYpKTsKKwl9IGVsc2UgaWYgKG1vZGUgJiBJUl9TSVJNT0RFKSB7CisJCXB4YTJ4eF9tZnBfY29uZmlnKHB4YTJ4eF9tZnBfc2lyLCBBUlJBWV9TSVpFKHB4YTJ4eF9tZnBfc2lyKSk7CisJfSBlbHNlIGlmIChtb2RlICYgSVJfRklSTU9ERSkgeworCQlweGEyeHhfbWZwX2NvbmZpZyhweGEyeHhfbWZwX2ZpciwgQVJSQVlfU0laRShweGEyeHhfbWZwX2ZpcikpOworCX0gZWxzZQorCQlCVUcoKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTN4eC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvcHhhM3h4LmMKaW5kZXggNjQ0NTUwYi4uMTU2ODVkMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvcHhhM3h4LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvcHhhM3h4LmMKQEAgLTIzMSw3ICsyMzEsNyBAQAogCVBYQTN4eF9DS0VOKCJVQVJUQ0xLIiwgU1RVQVJULCAxNDg1NzAwMCwgMSwgTlVMTCksCiAKIAlQWEEzeHhfQ0tFTigiSTJDQ0xLIiwgSTJDLCAgMzI4NDIwMDAsIDAsICZweGFfZGV2aWNlX2kyYy5kZXYpLAotCVBYQTN4eF9DS0VOKCJVRENDTEsiLCBVREMsICA0ODAwMDAwMCwgNSwgJnB4YV9kZXZpY2VfdWRjLmRldiksCisJUFhBM3h4X0NLRU4oIlVEQ0NMSyIsIFVEQywgIDQ4MDAwMDAwLCA1LCAmcHhhMjd4X2RldmljZV91ZGMuZGV2KSwKIAlQWEEzeHhfQ0tFTigiVVNCQ0xLIiwgVVNCSCwgNDgwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX29oY2kuZGV2KSwKIAlQWEEzeHhfQ0tFTigiS0JEQ0xLIiwgS0VZUEFELCAgMzI3NjgsIDAsICZweGEyN3hfZGV2aWNlX2tleXBhZC5kZXYpLAogCkBAIC0yMzksNiArMjM5LDggQEAKIAlQWEEzeHhfQ0tFTigiU1NQQ0xLIiwgU1NQMiwgMTMwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX3NzcDIuZGV2KSwKIAlQWEEzeHhfQ0tFTigiU1NQQ0xLIiwgU1NQMywgMTMwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX3NzcDMuZGV2KSwKIAlQWEEzeHhfQ0tFTigiU1NQQ0xLIiwgU1NQNCwgMTMwMDAwMDAsIDAsICZweGEzeHhfZGV2aWNlX3NzcDQuZGV2KSwKKwlQWEEzeHhfQ0tFTigiUFdNQ0xLIiwgUFdNMCwgMTMwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX3B3bTAuZGV2KSwKKwlQWEEzeHhfQ0tFTigiUFdNQ0xLIiwgUFdNMSwgMTMwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX3B3bTEuZGV2KSwKIAogCVBYQTN4eF9DS0VOKCJNTUNDTEsiLCBNTUMxLCAxOTUwMDAwMCwgMCwgJnB4YV9kZXZpY2VfbWNpLmRldiksCiAJUFhBM3h4X0NLRU4oIk1NQ0NMSyIsIE1NQzIsIDE5NTAwMDAwLCAwLCAmcHhhM3h4X2RldmljZV9tY2kyLmRldiksCkBAIC01MjAsNyArNTIyLDcgQEAKICAqLwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7Ci0JJnB4YV9kZXZpY2VfdWRjLAorLyoJJnB4YV9kZXZpY2VfdWRjLAlUaGUgVURDIGRyaXZlciBpcyBQWEEyNXggb25seSAqLwogCSZweGFfZGV2aWNlX2ZmdWFydCwKIAkmcHhhX2RldmljZV9idHVhcnQsCiAJJnB4YV9kZXZpY2Vfc3R1YXJ0LApAQCAtNTMwLDYgKzUzMiw4IEBACiAJJnB4YTI3eF9kZXZpY2Vfc3NwMiwKIAkmcHhhMjd4X2RldmljZV9zc3AzLAogCSZweGEzeHhfZGV2aWNlX3NzcDQsCisJJnB4YTI3eF9kZXZpY2VfcHdtMCwKKwkmcHhhMjd4X2RldmljZV9wd20xLAogfTsKIAogc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIHB4YTN4eF9zeXNkZXZbXSA9IHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3NwaXR6X3BtLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9zcGl0el9wbS5jCmluZGV4IDIzZjA1MGYuLjM2MDM1NDAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3NwaXR6X3BtLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvc3BpdHpfcG0uYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL3NoYXJwc2wuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9zcGl0ei5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgogI2luY2x1ZGUgInNoYXJwc2wuaCIKIApAQCAtMjA3LDcgKzIwOCw5IEBACiAJLnJlYWRfZGV2ZGF0YSAgICAgPSBzcGl0enBtX3JlYWRfZGV2ZGF0YSwKIAkuY2hhcmdlcl93YWtldXAgICA9IHNwaXR6X2NoYXJnZXJfd2FrZXVwLAogCS5zaG91bGRfd2FrZXVwICAgID0gc3BpdHpfc2hvdWxkX3dha2V1cCwKKyNpZmRlZiBDT05GSUdfQkFDS0xJR0hUX0NPUkdJCiAgICAgICAgIC5iYWNrbGlnaHRfbGltaXQgID0gY29yZ2libF9saW1pdF9pbnRlbnNpdHksCisjZW5kaWYKIAkuY2hhcmdlX29uX3ZvbHQJICA9IFNIQVJQU0xfQ0hBUkdFX09OX1ZPTFQsCiAJLmNoYXJnZV9vbl90ZW1wCSAgPSBTSEFSUFNMX0NIQVJHRV9PTl9URU1QLAogCS5jaGFyZ2VfYWNpbl9oaWdoID0gU0hBUlBTTF9DSEFSR0VfT05fQUNJTl9ISUdILApAQCAtMjI5LDYgKzIzMiwxMCBAQAogewogCWludCByZXQ7CiAKKwlpZiAoIW1hY2hpbmVfaXNfc3BpdHooKSAmJiAhbWFjaGluZV9pc19ha2l0YSgpCisJCQkmJiAhbWFjaGluZV9pc19ib3J6b2koKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAlzcGl0enBtX2RldmljZSA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygic2hhcnBzbC1wbSIsIC0xKTsKIAlpZiAoIXNwaXR6cG1fZGV2aWNlKQogCQlyZXR1cm4gLUVOT01FTTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3N0YW5kYnkuUyBiL2FyY2gvYXJtL21hY2gtcHhhL3N0YW5kYnkuUwppbmRleCAxNjc0MTJlLi40MGJiNzBlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9zdGFuZGJ5LlMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvc3RhbmRieS5TCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAKIAkJLnRleHQKIApAQCAtMzUsMjAgKzM2LDIwIEBACiAKICNpZmRlZiBDT05GSUdfUFhBM3h4CiAKLSNkZWZpbmUgTURDTkZHCQkweDAwMDAKLSNkZWZpbmUgTURDTkZHX0RNQ0VOCSgxIDw8IDMwKQotI2RlZmluZSBERFJfSENBTAkweDAwNjAKLSNkZWZpbmUgRERSX0hDQUxfSENSTkcJMHgxZgotI2RlZmluZSBERFJfSENBTF9IQ1BST0cJKDEgPDwgMjgpCi0jZGVmaW5lIEREUl9IQ0FMX0hDRU4JKDEgPDwgMzEpCi0jZGVmaW5lIERNQ0lFUgkJMHgwMDcwCi0jZGVmaW5lIERNQ0lFUl9FRExQCSgxIDw8IDI5KQotI2RlZmluZSBETUNJU1IJCTB4MDA3OAotI2RlZmluZSBSQ09NUAkJMHgwMTAwCi0jZGVmaW5lIFJDT01QX1NXRVZBTAkoMSA8PCAzMSkKKyNkZWZpbmUgUFhBM19NRENORkcJCTB4MDAwMAorI2RlZmluZSBQWEEzX01EQ05GR19ETUNFTgkoMSA8PCAzMCkKKyNkZWZpbmUgUFhBM19ERFJfSENBTAkJMHgwMDYwCisjZGVmaW5lIFBYQTNfRERSX0hDQUxfSENSTkcJMHgxZgorI2RlZmluZSBQWEEzX0REUl9IQ0FMX0hDUFJPRwkoMSA8PCAyOCkKKyNkZWZpbmUgUFhBM19ERFJfSENBTF9IQ0VOCSgxIDw8IDMxKQorI2RlZmluZSBQWEEzX0RNQ0lFUgkJMHgwMDcwCisjZGVmaW5lIFBYQTNfRE1DSUVSX0VETFAJKDEgPDwgMjkpCisjZGVmaW5lIFBYQTNfRE1DSVNSCQkweDAwNzgKKyNkZWZpbmUgUFhBM19SQ09NUAkJMHgwMTAwCisjZGVmaW5lIFBYQTNfUkNPTVBfU1dFVkFMCSgxIDw8IDMxKQogCiBFTlRSWShwbV9lbnRlcl9zdGFuZGJ5X3N0YXJ0KQotCW1vdglyMSwgIzB4ZjYwMDAwMDAJCUAgRE1FTUNfUkVHX0JBU0UgKE1EQ05GRykKKwltb3YJcjEsICMweGY2MDAwMDAwCQkJQCBETUVNQ19SRUdfQkFTRSAoUFhBM19NRENORkcpCiAJYWRkCXIxLCByMSwgIzB4MDAxMDAwMDAKIAogCS8qCkBAIC01OSw1NCArNjAsNTQgQEAKIAkgKiBUaGlzIGFsc28gbWVhbnMgdGhhdCBvbmx5IHRoZSBkeW5hbWljIG1lbW9yeSBjb250cm9sbGVyCiAJICogY2FuIGJlIHJlbGlhYmx5IGFjY2Vzc2VkIGluIHRoZSBjb2RlIGZvbGxvd2luZyBzdGFuZGJ5LgogCSAqLwotCWxkcglyMiwgW3IxXQkJQCBEdW1teSByZWFkIE1EQ05GRworCWxkcglyMiwgW3IxXQkJCUAgRHVtbXkgcmVhZCBQWEEzX01EQ05GRwogCiAJbWNyCXAxNCwgMCwgcjAsIGM3LCBjMCwgMAogCS5yZXB0CTgKIAlub3AKIAkuZW5kcgogCi0JbGRyCXIwLCBbcjEsICNERFJfSENBTF0JQCBDbGVhciAoYW5kIHdhaXQgZm9yKSBIQ0VOCi0JYmljCXIwLCByMCwgI0REUl9IQ0FMX0hDRU4KLQlzdHIJcjAsIFtyMSwgI0REUl9IQ0FMXQotMToJbGRyCXIwLCBbcjEsICNERFJfSENBTF0KLQl0c3QJcjAsICNERFJfSENBTF9IQ0VOCisJbGRyCXIwLCBbcjEsICNQWEEzX0REUl9IQ0FMXQlAIENsZWFyIChhbmQgd2FpdCBmb3IpIEhDRU4KKwliaWMJcjAsIHIwLCAjUFhBM19ERFJfSENBTF9IQ0VOCisJc3RyCXIwLCBbcjEsICNQWEEzX0REUl9IQ0FMXQorMToJbGRyCXIwLCBbcjEsICNQWEEzX0REUl9IQ0FMXQorCXRzdAlyMCwgI1BYQTNfRERSX0hDQUxfSENFTgogCWJuZQkxYgogCi0JbGRyCXIwLCBbcjEsICNSQ09NUF0JQCBJbml0aWF0ZSBSQ09NUAotCW9ycglyMCwgcjAsICNSQ09NUF9TV0VWQUwKLQlzdHIJcjAsIFtyMSwgI1JDT01QXQorCWxkcglyMCwgW3IxLCAjUFhBM19SQ09NUF0JCUAgSW5pdGlhdGUgUkNPTVAKKwlvcnIJcjAsIHIwLCAjUFhBM19SQ09NUF9TV0VWQUwKKwlzdHIJcjAsIFtyMSwgI1BYQTNfUkNPTVBdCiAKLQltb3YJcjAsICN+MAkJCUAgQ2xlYXIgaW50ZXJydXB0cwotCXN0cglyMCwgW3IxLCAjRE1DSVNSXQorCW1vdglyMCwgI34wCQkJCUAgQ2xlYXIgaW50ZXJydXB0cworCXN0cglyMCwgW3IxLCAjUFhBM19ETUNJU1JdCiAKLQlsZHIJcjAsIFtyMSwgI0RNQ0lFUl0JQCBzZXQgRE1JRVJbRURMUF0KLQlvcnIJcjAsIHIwLCAjRE1DSUVSX0VETFAKLQlzdHIJcjAsIFtyMSwgI0RNQ0lFUl0KKwlsZHIJcjAsIFtyMSwgI1BYQTNfRE1DSUVSXQkJQCBzZXQgRE1JRVJbRURMUF0KKwlvcnIJcjAsIHIwLCAjUFhBM19ETUNJRVJfRURMUAorCXN0cglyMCwgW3IxLCAjUFhBM19ETUNJRVJdCiAKLQlsZHIJcjAsIFtyMSwgI0REUl9IQ0FMXQlAIGNsZWFyIEhDUk5HLCBzZXQgSENQUk9HLCBIQ0VOCi0JYmljCXIwLCByMCwgI0REUl9IQ0FMX0hDUk5HCi0Jb3JyCXIwLCByMCwgI0REUl9IQ0FMX0hDRU4gfCBERFJfSENBTF9IQ1BST0cKLQlzdHIJcjAsIFtyMSwgI0REUl9IQ0FMXQorCWxkcglyMCwgW3IxLCAjUFhBM19ERFJfSENBTF0JQCBjbGVhciBIQ1JORywgc2V0IEhDUFJPRywgSENFTgorCWJpYwlyMCwgcjAsICNQWEEzX0REUl9IQ0FMX0hDUk5HCisJb3JyCXIwLCByMCwgI1BYQTNfRERSX0hDQUxfSENFTiB8IFBYQTNfRERSX0hDQUxfSENQUk9HCisJc3RyCXIwLCBbcjEsICNQWEEzX0REUl9IQ0FMXQogCi0xOglsZHIJcjAsIFtyMSwgI0RNQ0lTUl0KLQl0c3QJcjAsICNETUNJRVJfRURMUAorMToJbGRyCXIwLCBbcjEsICNQWEEzX0RNQ0lTUl0KKwl0c3QJcjAsICNQWEEzX0RNQ0lFUl9FRExQCiAJYmVxCTFiCiAKLQlsZHIJcjAsIFtyMSwgI01EQ05GR10JQCBzZXQgTURDTkZHW0RNQ0VOXQotCW9ycglyMCwgcjAsICNNRENORkdfRE1DRU4KLQlzdHIJcjAsIFtyMSwgI01EQ05GR10KLTE6CWxkcglyMCwgW3IxLCAjTURDTkZHXQotCXRzdAlyMCwgI01EQ05GR19ETUNFTgorCWxkcglyMCwgW3IxLCAjUFhBM19NRENORkddCQlAIHNldCBQWEEzX01EQ05GR1tETUNFTl0KKwlvcnIJcjAsIHIwLCAjUFhBM19NRENORkdfRE1DRU4KKwlzdHIJcjAsIFtyMSwgI1BYQTNfTURDTkZHXQorMToJbGRyCXIwLCBbcjEsICNQWEEzX01EQ05GR10KKwl0c3QJcjAsICNQWEEzX01EQ05GR19ETUNFTgogCWJlcQkxYgogCi0JbGRyCXIwLCBbcjEsICNERFJfSENBTF0JQCBzZXQgRERSX0hDQUxbSENSTkddCisJbGRyCXIwLCBbcjEsICNQWEEzX0REUl9IQ0FMXQlAIHNldCBQWEEzX0REUl9IQ0FMW0hDUk5HXQogCW9ycglyMCwgcjAsICMyIEAgSENSTkcKLQlzdHIJcjAsIFtyMSwgI0REUl9IQ0FMXQorCXN0cglyMCwgW3IxLCAjUFhBM19ERFJfSENBTF0KIAotCWxkcglyMCwgW3IxLCAjRE1DSUVSXQlAIENsZWFyIHRoZSBpbnRlcnJ1cHQKKwlsZHIJcjAsIFtyMSwgI1BYQTNfRE1DSUVSXQkJQCBDbGVhciB0aGUgaW50ZXJydXB0CiAJYmljCXIwLCByMCwgIzB4MjAwMDAwMDAKLQlzdHIJcjAsIFtyMSwgI0RNQ0lFUl0KKwlzdHIJcjAsIFtyMSwgI1BYQTNfRE1DSUVSXQogCiAJbW92CXBjLCBscgogRU5UUlkocG1fZW50ZXJfc3RhbmRieV9lbmQpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS90cml6ZXBzNC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvdHJpemVwczQuYwppbmRleCA5MzE4ODVkLi42MWUyNDQwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS90cml6ZXBzNC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3RyaXplcHM0LmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxhc20vbWFjaC9mbGFzaC5oPgogCiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvdHJpemVwczQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9hdWRpby5oPgpAQCAtMTc1LDE5ICsxNzYsMTAgQEAKIAkucmVzb3VyY2UJPSBOVUxMLAogfTsKIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBQWEEyNzAgYWM5NyBzb3VuZCBjb2RlYwotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYWM5N19hdWRpb19kZXZpY2UgPSB7Ci0JLm5hbWUJCT0gInB4YTJ4eC1hYzk3IiwKLQkuaWQJCT0gLTEsCi19OwotCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqIHRyaXplcHM0X2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZmbGFzaF9kZXZpY2UsCiAJJnVhcnRfZGV2aWNlcywKIAkmZG05MDAwX2RldmljZSwKLQkmYWM5N19hdWRpb19kZXZpY2UsCiB9OwogCiAjaWZkZWYgQ09ORklHX01BQ0hfVFJJWkVQUzRfQ09OWFMKQEAgLTQzOCw2ICs0MzAsNyBAQAogCXB4YV9zZXRfbWNpX2luZm8oJnRyaXplcHM0X21jaV9wbGF0Zm9ybV9kYXRhKTsKIAlweGFfc2V0X2ZpY3BfaW5mbygmdHJpemVwczRfZmljcF9wbGF0Zm9ybV9kYXRhKTsKIAlweGFfc2V0X29oY2lfaW5mbygmdHJpemVwczRfb2hjaV9wbGF0Zm9ybV9kYXRhKTsKKwlweGFfc2V0X2FjOTdfaW5mbyhOVUxMKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IHRyaXplcHM0X21hcF9pbyh2b2lkKQpAQCAtNDg3LDYgKzQ4MCw3IEBACiAJQ29uWFNfQkNSID0gdHJpemVwc19jb254c19iY3I7CiAjZW5kaWYKIAorI3dhcm5pbmcgRklYTUUgLSBhY2Nlc3NpbmcgUE0gcmVnaXN0ZXJzIGRpcmVjdGx5IGlzIGRlcHJlY2F0ZWQKIAlQV0VSICA9IDB4MDAwMDAwMDI7CiAJUEZFUiAgPSAweDAwMDAwMDAwOwogCVBSRVIgID0gMHgwMDAwMDAwMjsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlLmMgYi9hcmNoL2FybS9tYWNoLXB4YS96eWxvbml0ZS5jCmluZGV4IDRhMDAyODAuLjY2YjQ0NmMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGUuYwpAQCAtMTgsMjIgKzE4LDI0IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3B3bV9iYWNrbGlnaHQuaD4KIAogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F1ZGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YWZiLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvenlsb25pdGUuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyN3hfa2V5cGFkLmg+CiAKKyNpbmNsdWRlICJkZXZpY2VzLmgiCiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCiAjZGVmaW5lIE1BWF9TTE9UUwkzCiBzdHJ1Y3QgcGxhdGZvcm1fbW1jX3Nsb3Qgenlsb25pdGVfbW1jX3Nsb3RbTUFYX1NMT1RTXTsKIAotaW50IGdwaW9fYmFja2xpZ2h0OwogaW50IGdwaW9fZXRoX2lycTsKIAogaW50IHdtOTcxM19pcnE7CkBAIC02MiwxMCArNjQsMjAgQEAKIH07CiAKICNpZiBkZWZpbmVkKENPTkZJR19GQl9QWEEpIHx8IGRlZmluZWQoQ09ORklHX0ZCX1BYQV9NT0RVTEUpCi1zdGF0aWMgdm9pZCB6eWxvbml0ZV9iYWNrbGlnaHRfcG93ZXIoaW50IG9uKQotewotCWdwaW9fc2V0X3ZhbHVlKGdwaW9fYmFja2xpZ2h0LCBvbik7Ci19CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX3B3bV9iYWNrbGlnaHRfZGF0YSB6eWxvbml0ZV9iYWNrbGlnaHRfZGF0YSA9IHsKKwkucHdtX2lkCQk9IDMsCisJLm1heF9icmlnaHRuZXNzCT0gMTAwLAorCS5kZnRfYnJpZ2h0bmVzcwk9IDEwMCwKKwkucHdtX3BlcmlvZF9ucwk9IDEwMDAwLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugenlsb25pdGVfYmFja2xpZ2h0X2RldmljZSA9IHsKKwkubmFtZQkJPSAicHdtLWJhY2tsaWdodCIsCisJLmRldgkJPSB7CisJCS5wYXJlbnQgPSAmcHhhMjd4X2RldmljZV9wd20xLmRldiwKKwkJLnBsYXRmb3JtX2RhdGEJPSAmenlsb25pdGVfYmFja2xpZ2h0X2RhdGEsCisJfSwKK307CiAKIHN0YXRpYyBzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvIHRvc2hpYmFfbHRtMDM1YTc3NmNfbW9kZSA9IHsKIAkucGl4Y2xvY2sJCT0gMTEwMDAwLApAQCAtOTgsNyArMTEwLDYgQEAKIHN0YXRpYyBzdHJ1Y3QgcHhhZmJfbWFjaF9pbmZvIHp5bG9uaXRlX3Rvc2hpYmFfbGNkX2luZm8gPSB7CiAJLm51bV9tb2RlcyAgICAgIAk9IDEsCiAJLmxjZF9jb25uCQk9IExDRF9DT0xPUl9URlRfMTZCUFAgfCBMQ0RfUENMS19FREdFX0ZBTEwsCi0JLnB4YWZiX2JhY2tsaWdodF9wb3dlcgk9IHp5bG9uaXRlX2JhY2tsaWdodF9wb3dlciwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvIHNoYXJwX2xzMDM3X21vZGVzW10gPSB7CkBAIC0xMzQsMTMgKzE0NSwxMSBAQAogCS5tb2RlcwkJCT0gc2hhcnBfbHMwMzdfbW9kZXMsCiAJLm51bV9tb2RlcwkJPSAyLAogCS5sY2RfY29ubgkJPSBMQ0RfQ09MT1JfVEZUXzE2QlBQIHwgTENEX1BDTEtfRURHRV9GQUxMLAotCS5weGFmYl9iYWNrbGlnaHRfcG93ZXIJPSB6eWxvbml0ZV9iYWNrbGlnaHRfcG93ZXIsCiB9OwogCiBzdGF0aWMgdm9pZCBfX2luaXQgenlsb25pdGVfaW5pdF9sY2Qodm9pZCkKIHsKLQkvKiBiYWNrbGlnaHQgR1BJTzogb3V0cHV0LCBkZWZhdWx0IG9uICovCi0JZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KGdwaW9fYmFja2xpZ2h0LCAxKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnp5bG9uaXRlX2JhY2tsaWdodF9kZXZpY2UpOwogCiAJaWYgKGxjZF9pZCAmIDB4MjApIHsKIAkJc2V0X3B4YV9mYl9pbmZvKCZ6eWxvbml0ZV9zaGFycF9sY2RfaW5mbyk7CkBAIC0zMjksNiArMzM4LDcgQEAKIAlzbWM5MXhfcmVzb3VyY2VzWzFdLmVuZCAgID0gZ3Bpb190b19pcnEoZ3Bpb19ldGhfaXJxKTsKIAlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnNtYzkxeF9kZXZpY2UpOwogCisJcHhhX3NldF9hYzk3X2luZm8oTlVMTCk7CiAJenlsb25pdGVfaW5pdF9sY2QoKTsKIAl6eWxvbml0ZV9pbml0X21tYygpOwogCXp5bG9uaXRlX2luaXRfa2V5cGFkKCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS96eWxvbml0ZV9weGEzMDAuYyBiL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlX3B4YTMwMC5jCmluZGV4IDMyNGZiOWQuLjZmN2FlOTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlX3B4YTMwMC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlX3B4YTMwMC5jCkBAIC01MCw2ICs1MCw3IEBACiAJR1BJTzc1X0xDRF9CSUFTLAogCUdQSU83Nl9MQ0RfVlNZTkMsCiAJR1BJTzEyN19MQ0RfQ1NfTiwKKwlHUElPMjBfUFdNM19PVVQsCS8qIGJhY2tsaWdodCAqLwogCiAJLyogQlRVQVJUICovCiAJR1BJTzExMV9VQVJUMl9SVFMsCkBAIC0yMDAsOSArMjAxLDYgQEAKIAkJLyogZGV0ZWN0IExDRCBwYW5lbCAqLwogCQl6eWxvbml0ZV9kZXRlY3RfbGNkX3BhbmVsKCk7CiAKLQkJLyogR1BJTyBwaW4gYXNzaWdubWVudCAqLwotCQlncGlvX2JhY2tsaWdodCA9IG1mcF90b19ncGlvKE1GUF9QSU5fR1BJTzIwKTsKLQogCQkvKiBNTUMgY2FyZCBkZXRlY3QgJiB3cml0ZSBwcm90ZWN0IGZvciBjb250cm9sbGVyIDAgKi8KIAkJenlsb25pdGVfbW1jX3Nsb3RbMF0uZ3Bpb19jZCAgPSBFWFRfR1BJTygwKTsKIAkJenlsb25pdGVfbW1jX3Nsb3RbMF0uZ3Bpb193cCAgPSBFWFRfR1BJTygyKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlX3B4YTMyMC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzIwLmMKaW5kZXggMTkzZDA3OS4uMmI0ZmMzNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzIwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzIwLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKIAlHUElPMTVfMl9MQ0RfTENMSywKIAlHUElPMTZfMl9MQ0RfUENMSywKIAlHUElPMTdfMl9MQ0RfQklBUywKKwlHUElPMTRfUFdNM19PVVQsCS8qIGJhY2tsaWdodCAqLwogCiAJLyogRkZVQVJUICovCiAJR1BJTzQxX1VBUlQxX1JYRCB8IE1GUF9MUE1fRURHRV9GQUxMLApAQCAtMTg3LDcgKzE4OCw2IEBACiAJCXp5bG9uaXRlX2RldGVjdF9sY2RfcGFuZWwoKTsKIAogCQkvKiBHUElPIHBpbiBhc3NpZ25tZW50ICovCi0JCWdwaW9fYmFja2xpZ2h0CT0gbWZwX3RvX2dwaW8oTUZQX1BJTl9HUElPMTQpOwogCQlncGlvX2V0aF9pcnEJPSBtZnBfdG9fZ3BpbyhNRlBfUElOX0dQSU85KTsKIAogCQkvKiBNTUMgY2FyZCBkZXRlY3QgJiB3cml0ZSBwcm90ZWN0IGZvciBjb250cm9sbGVyIDAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcmVhbHZpZXcvcGxhdHNtcC5jIGIvYXJjaC9hcm0vbWFjaC1yZWFsdmlldy9wbGF0c21wLmMKaW5kZXggM2U1NzQyOC4uOGU4MTNlZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1yZWFsdmlldy9wbGF0c21wLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1yZWFsdmlldy9wbGF0c21wLmMKQEAgLTc0LDYgKzc0LDggQEAKIAogdm9pZCBfX2NwdWluaXQgcGxhdGZvcm1fc2Vjb25kYXJ5X2luaXQodW5zaWduZWQgaW50IGNwdSkKIHsKKwl0cmFjZV9oYXJkaXJxc19vZmYoKTsKKwogCS8qCiAJICogdGhlIHByaW1hcnkgY29yZSBtYXkgaGF2ZSB1c2VkIGEgImNyb3NzIGNhbGwiIHNvZnQgaW50ZXJydXB0CiAJICogdG8gZ2V0IHRoaXMgcHJvY2Vzc29yIG91dCBvZiBXRkkgaW4gdGhlIEJvb3RNb25pdG9yIC0gbWFrZQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvS2NvbmZpZwppbmRleCBjZDNkYzA4Li45OWZkYzczIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvS2NvbmZpZwpAQCAtMzcsNiArMzcsMTcgQEAKIAloZWxwCiAJICBDbG9jayBjb2RlIGZvciB0aGUgUzNDMjQxMCwgYW5kIHNpbWlsYXIgcHJvY2Vzc29ycwogCitjb25maWcgU0lNVEVDX05PUgorCWJvb2wKKwloZWxwCisJICBJbnRlcm5hbCBub2RlIHRvIHNwZWNpZnkgbWFjaGluZSBoYXMgc2ltdGVjIE5PUiBtYXBwaW5nCisKK2NvbmZpZyBNQUNIX0JBU1RfSURFCisJYm9vbAorCXNlbGVjdCBIQVZFX1BBVEFfUExBVEZPUk0KKwloZWxwCisJICBJbnRlcm5hbCBub2RlIGZvciBtYWNoaW5lcyB3aXRoIGFuIEJBU1Qgc3R5bGUgSURFCisJICBpbnRlcmZhY2UKIAogbWVudSAiUzNDMjQxMCBNYWNoaW5lcyIKIApAQCAtNjEsMTUgKzcyLDE4IEBACiAJICBJbnRlcm5hbCBub2RlIGZvciBIMTk0MCBhbmQgcmVsYXRlZCBQTQogCiBjb25maWcgTUFDSF9OMzAKLQlib29sICJBY2VyIE4zMCIKKwlib29sICJBY2VyIE4zMCBmYW1pbHkiCiAJc2VsZWN0IENQVV9TM0MyNDEwCiAJaGVscAotCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBBY2VyIE4zMAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCBzdXBwdCBmb3IgdGhlIEFjZXIgTjMwLCBBY2VyIE4zNSwKKwkgIE5hdm1hbiBQaU41NzAsIFlha3VtbyBBbHBoYVggb3IgQWlyaXMgTkMwNSBQREFzLgogCiBjb25maWcgQVJDSF9CQVNUCiAJYm9vbCAiU2ltdGVjIEVsZWN0cm9uaWNzIEJBU1QgKEVCMjQxMElUWCkiCiAJc2VsZWN0IENQVV9TM0MyNDEwCiAJc2VsZWN0IFBNX1NJTVRFQyBpZiBQTQorCXNlbGVjdCBTSU1URUNfTk9SCisJc2VsZWN0IE1BQ0hfQkFTVF9JREUKIAlzZWxlY3QgSVNBCiAJaGVscAogCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBTaW10ZWMgRWxlY3Ryb25pY3MgRUIyNDEwSVRYCkBAIC0xMDcsNiArMTIxLDggQEAKIGNvbmZpZyBNQUNIX1ZSMTAwMAogCWJvb2wgIlRob3Jjb20gVlIxMDAwIgogCXNlbGVjdCBQTV9TSU1URUMgaWYgUE0KKwlzZWxlY3QgU0lNVEVDX05PUgorCXNlbGVjdCBNQUNIX0JBU1RfSURFCiAJc2VsZWN0IENQVV9TM0MyNDEwCiAJaGVscAogCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBUaG9yY29tIFZSMTAwMCBib2FyZC4KQEAgLTExOCw0ICsxMzQsMyBAQAogCSAgIFNheSBZIGhlcmUgaWYgeW91IGFyZSB1c2luZyB0aGUgQXJtem9uZSBRVDI0MTAKIAogZW5kbWVudQotCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvTWFrZWZpbGUKaW5kZXggY2FiYzEzYy4uMDBmMzFmOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9NYWtlZmlsZQpAQCAtMzAsMyArMzAsMTEgQEAKIG9iai0kKENPTkZJR19NQUNIX1RDVF9IQU1NRVIpCSs9IG1hY2gtdGN0X2hhbW1lci5vCiBvYmotJChDT05GSUdfTUFDSF9WUjEwMDApCSs9IG1hY2gtdnIxMDAwLm8gdXNiLXNpbXRlYy5vCiBvYmotJChDT05GSUdfTUFDSF9RVDI0MTApCSs9IG1hY2gtcXQyNDEwLm8KKworIyBDb21tb24gYml0cyBvZiBtYWNoaW5lIHN1cHBvcnQKKworb2JqLSQoQ09ORklHX1NJTVRFQ19OT1IpCSs9IG5vci1zaW10ZWMubworCisjIG1hY2hpbmUgYWRkaXRpb25zCisKK29iai0kKENPTkZJR19NQUNIX0JBU1RfSURFKQkrPSBiYXN0LWlkZS5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvYmFzdC1pZGUuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9iYXN0LWlkZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmOTVmZTMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvYmFzdC1pZGUuYwpAQCAtMCwwICsxLDExMiBAQAorLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL2Jhc3QtaWRlLmMKKyAqCisgKiBDb3B5cmlnaHQgMjAwNyBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly93d3cuc2ltdGVjLmNvLnVrL3Byb2R1Y3RzL0VCMjQxMElUWC8KKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKworI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2Jhc3QtbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYmFzdC1pcnEuaD4KKworLyogSURFIHBvcnRzICovCisKK3N0YXRpYyBzdHJ1Y3QgcGF0YV9wbGF0Zm9ybV9pbmZvIGJhc3RfaWRlX3BsYXRkYXRhID0geworCS5pb3BvcnRfc2hpZnQJPSA1LAorfTsKKworI2RlZmluZSBJREVfQ1MJUzNDMjQxMF9DUzUKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBiYXN0X2lkZTBfcmVzb3VyY2VbXSA9IHsKKwlbMF0JPSB7CisJCS5zdGFydAk9IElERV9DUyArIEJBU1RfUEFfSURFUFJJLAorCQkuZW5kCT0gSURFX0NTICsgQkFTVF9QQV9JREVQUkkgKyAoOCAqIDB4MjApIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0JPSB7CisJCS5zdGFydAk9IElERV9DUyArIEJBU1RfUEFfSURFUFJJQVVYICsgKDYgKiAweDIwKSAsCisJCS5lbmQJPSBJREVfQ1MgKyBCQVNUX1BBX0lERVBSSUFVWCArICg3ICogMHgyMCkgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsyXQk9IHsKKwkJLnN0YXJ0CT0gSVJRX0lERTAsCisJCS5lbmQJPSBJUlFfSURFMCwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGJhc3RfZGV2aWNlX2lkZTAgPSB7CisJLm5hbWUJCT0gInBhdGFfcGxhdGZvcm0iLAorCS5pZAkJPSAwLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShiYXN0X2lkZTBfcmVzb3VyY2UpLAorCS5yZXNvdXJjZQk9IGJhc3RfaWRlMF9yZXNvdXJjZSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEgPSAmYmFzdF9pZGVfcGxhdGRhdGEsCisJCS5jb2hlcmVudF9kbWFfbWFzayA9IH4wLAorCX0KKworfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBiYXN0X2lkZTFfcmVzb3VyY2VbXSA9IHsKKwlbMF0JPSB7CisJCS5zdGFydAk9IElERV9DUyArIEJBU1RfUEFfSURFU0VDLAorCQkuZW5kCT0gSURFX0NTICsgQkFTVF9QQV9JREVTRUMgKyAoOCAqIDB4MjApIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0JPSB7CisJCS5zdGFydAk9IElERV9DUyArIEJBU1RfUEFfSURFU0VDQVVYICsgKDYgKiAweDIwKSwKKwkJLmVuZAk9IElERV9DUyArIEJBU1RfUEFfSURFU0VDQVVYICsgKDcgKiAweDIwKSAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzJdCT0geworCQkuc3RhcnQJPSBJUlFfSURFMSwKKwkJLmVuZAk9IElSUV9JREUxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYmFzdF9kZXZpY2VfaWRlMSA9IHsKKwkubmFtZQkJPSAicGF0YV9wbGF0Zm9ybSIsCisJLmlkCQk9IDEsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGJhc3RfaWRlMV9yZXNvdXJjZSksCisJLnJlc291cmNlCT0gYmFzdF9pZGUxX3Jlc291cmNlLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YSA9ICZiYXN0X2lkZV9wbGF0ZGF0YSwKKwkJLmNvaGVyZW50X2RtYV9tYXNrID0gfjAsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmJhc3RfaWRlX2RldmljZXNbXSBfX2luaXRkYXRhID0geworCSZiYXN0X2RldmljZV9pZGUwLAorCSZiYXN0X2RldmljZV9pZGUxLAorfTsKKworc3RhdGljIF9faW5pdCBpbnQgYmFzdF9pZGVfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX2Jhc3QoKSB8fCBtYWNoaW5lX2lzX3ZyMTAwMCgpKQorCQlyZXR1cm4gcGxhdGZvcm1fYWRkX2RldmljZXMoYmFzdF9pZGVfZGV2aWNlcywKKwkJCQkJICAgIEFSUkFZX1NJWkUoYmFzdF9pZGVfZGV2aWNlcykpOworCisJcmV0dXJuIDA7Cit9CisKK2ZzX2luaXRjYWxsKGJhc3RfaWRlX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtYmFzdC5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtYmFzdC5jCmluZGV4IDI3ZjYzZDUuLjk2NWYyNzEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLWJhc3QuYworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1iYXN0LmMKQEAgLTEsNiArMSw2IEBACiAvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1iYXN0LmMKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCiAgKiAgIEJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KICAqCiAgKiBodHRwOi8vd3d3LnNpbXRlYy5jby51ay9wcm9kdWN0cy9FQjI0MTBJVFgvCkBAIC0yMCw2ICsyMCw4IEBACiAjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9kbTkwMDAuaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KIAogI2luY2x1ZGUgPG5ldC9heDg4Nzk2Lmg+CiAKQEAgLTU2LDcgKzU4LDkgQEAKICNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2Nsb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9kZXZzLmg+CiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jcHUuaD4KKwogI2luY2x1ZGUgInVzYi1zaW10ZWMuaCIKKyNpbmNsdWRlICJub3Itc2ltdGVjLmgiCiAKICNkZWZpbmUgQ09QWVJJR0hUICIsIChjKSAyMDA0LTIwMDUgU2ltdGVjIEVsZWN0cm9uaWNzIgogCkBAIC0xMzQsMzcgKzEzOCwyMSBAQAogICB7IFZBX0MyKEJBU1RfVkFfSVNBSU8pLCAgIFBBX0NTMihCQVNUX1BBX0lTQUlPKSwgICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DMihCQVNUX1ZBX0lTQU1FTSksICBQQV9DUzIoQkFTVF9QQV9JU0FNRU0pLCAgIFNaXzE2TSwgTVRfREVWSUNFIH0sCiAgIHsgVkFfQzIoQkFTVF9WQV9TVVBFUklPKSwgUEFfQ1MyKEJBU1RfUEFfU1VQRVJJTyksICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MyKEJBU1RfVkFfSURFUFJJKSwgIFBBX0NTMyhCQVNUX1BBX0lERVBSSSksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMihCQVNUX1ZBX0lERVNFQyksICBQQV9DUzMoQkFTVF9QQV9JREVTRUMpLCAgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzIoQkFTVF9WQV9JREVQUklBVVgpLCBQQV9DUzMoQkFTVF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzIoQkFTVF9WQV9JREVTRUNBVVgpLCBQQV9DUzMoQkFTVF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCiAKICAgLyogc2xvdywgd29yZCAqLwogICB7IFZBX0MzKEJBU1RfVkFfSVNBSU8pLCAgIFBBX0NTMyhCQVNUX1BBX0lTQUlPKSwgICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DMyhCQVNUX1ZBX0lTQU1FTSksICBQQV9DUzMoQkFTVF9QQV9JU0FNRU0pLCAgIFNaXzE2TSwgTVRfREVWSUNFIH0sCiAgIHsgVkFfQzMoQkFTVF9WQV9TVVBFUklPKSwgUEFfQ1MzKEJBU1RfUEFfU1VQRVJJTyksICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MzKEJBU1RfVkFfSURFUFJJKSwgIFBBX0NTMyhCQVNUX1BBX0lERVBSSSksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMyhCQVNUX1ZBX0lERVNFQyksICBQQV9DUzMoQkFTVF9QQV9JREVTRUMpLCAgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzMoQkFTVF9WQV9JREVQUklBVVgpLCBQQV9DUzMoQkFTVF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzMoQkFTVF9WQV9JREVTRUNBVVgpLCBQQV9DUzMoQkFTVF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCiAKICAgLyogZmFzdCwgYnl0ZSAqLwogICB7IFZBX0M0KEJBU1RfVkFfSVNBSU8pLCAgIFBBX0NTNChCQVNUX1BBX0lTQUlPKSwgICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DNChCQVNUX1ZBX0lTQU1FTSksICBQQV9DUzQoQkFTVF9QQV9JU0FNRU0pLCAgIFNaXzE2TSwgTVRfREVWSUNFIH0sCiAgIHsgVkFfQzQoQkFTVF9WQV9TVVBFUklPKSwgUEFfQ1M0KEJBU1RfUEFfU1VQRVJJTyksICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M0KEJBU1RfVkFfSURFUFJJKSwgIFBBX0NTNShCQVNUX1BBX0lERVBSSSksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNChCQVNUX1ZBX0lERVNFQyksICBQQV9DUzUoQkFTVF9QQV9JREVTRUMpLCAgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzQoQkFTVF9WQV9JREVQUklBVVgpLCBQQV9DUzUoQkFTVF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzQoQkFTVF9WQV9JREVTRUNBVVgpLCBQQV9DUzUoQkFTVF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCiAKICAgLyogZmFzdCwgd29yZCAqLwogICB7IFZBX0M1KEJBU1RfVkFfSVNBSU8pLCAgIFBBX0NTNShCQVNUX1BBX0lTQUlPKSwgICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DNShCQVNUX1ZBX0lTQU1FTSksICBQQV9DUzUoQkFTVF9QQV9JU0FNRU0pLCAgIFNaXzE2TSwgTVRfREVWSUNFIH0sCiAgIHsgVkFfQzUoQkFTVF9WQV9TVVBFUklPKSwgUEFfQ1M1KEJBU1RfUEFfU1VQRVJJTyksICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M1KEJBU1RfVkFfSURFUFJJKSwgIFBBX0NTNShCQVNUX1BBX0lERVBSSSksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNShCQVNUX1ZBX0lERVNFQyksICBQQV9DUzUoQkFTVF9QQV9JREVTRUMpLCAgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzUoQkFTVF9WQV9JREVQUklBVVgpLCBQQV9DUzUoQkFTVF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzUoQkFTVF9WQV9JREVTRUNBVVgpLCBQQV9DUzUoQkFTVF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCiB9OwogCiAjZGVmaW5lIFVDT04gUzNDMjQxMF9VQ09OX0RFRkFVTFQgfCBTM0MyNDEwX1VDT05fVUNMSwpAQCAtMjE4LDIzICsyMDYsNiBAQAogCX0KIH07CiAKLS8qIE5PUiBGbGFzaCBvbiBCQVNUIGJvYXJkICovCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYmFzdF9ub3JfcmVzb3VyY2VbXSA9IHsKLQlbMF0gPSB7Ci0JCS5zdGFydCA9IFMzQzI0MTBfQ1MxICsgMHg0MDAwMDAwLAotCQkuZW5kICAgPSBTM0MyNDEwX0NTMSArIDB4NDAwMDAwMCArICgzMioxMDI0KjEwMjQpIC0gMSwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCi0JfQotfTsKLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYmFzdF9kZXZpY2Vfbm9yID0gewotCS5uYW1lCQk9ICJiYXN0LW5vciIsCi0JLmlkCQk9IC0xLAotCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShiYXN0X25vcl9yZXNvdXJjZSksCi0JLnJlc291cmNlCT0gYmFzdF9ub3JfcmVzb3VyY2UsCi19OwotCiAvKiBOQU5EIEZsYXNoIG9uIEJBU1QgYm9hcmQgKi8KIAogI2lmZGVmIENPTkZJR19QTQpAQCAtMzc0LDcgKzM0NSw3IEBACiAJWzJdID0gewogCQkuc3RhcnQgPSBJUlFfRE05MDAwLAogCQkuZW5kICAgPSBJUlFfRE05MDAwLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSB8IElSUUZfVFJJR0dFUl9ISUdILAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSB8IElPUkVTT1VSQ0VfSVJRX0hJR0hMRVZFTCwKIAl9CiAKIH07CkBAIC01NjQsNiArNTM1LDE4IEBACiAJLmRlZmF1bHRfZGlzcGxheSA9IDEsCiB9OwogCisvKiBJMkMgZGV2aWNlcyBmaXR0ZWQuICovCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gYmFzdF9pMmNfZGV2c1tdIF9faW5pdGRhdGEgPSB7CisJeworCQlJMkNfQk9BUkRfSU5GTygidGx2MzIwYWljMjMiLCAweDFhKSwKKwl9LCB7CisJCUkyQ19CT0FSRF9JTkZPKCJzaW10ZWMtcG11IiwgMHg2YiksCisJfSwgeworCQlJMkNfQk9BUkRfSU5GTygiY2g3MDEzIiwgMHg3NSksCisJfSwKK307CisKIC8qIFN0YW5kYXJkIEJBU1QgZGV2aWNlcyAqLwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYmFzdF9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKQEAgLTU3Myw3ICs1NTYsNiBAQAogCSZzM2NfZGV2aWNlX2kyYywKICAJJnMzY19kZXZpY2VfcnRjLAogCSZzM2NfZGV2aWNlX25hbmQsCi0JJmJhc3RfZGV2aWNlX25vciwKIAkmYmFzdF9kZXZpY2VfZG05aywKIAkmYmFzdF9kZXZpY2VfYXNpeCwKIAkmYmFzdF9kZXZpY2VfYXhwcCwKQEAgLTYyMiw2ICs2MDQsMTEgQEAKIAogCXMzYzI0eHhfZmJfc2V0X3BsYXRkYXRhKCZiYXN0X2ZiX2luZm8pOwogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGJhc3RfZGV2aWNlcywgQVJSQVlfU0laRShiYXN0X2RldmljZXMpKTsKKworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsIGJhc3RfaTJjX2RldnMsCisJCQkJQVJSQVlfU0laRShiYXN0X2kyY19kZXZzKSk7CisKKwlub3Jfc2ltdGVjX2luaXQoKTsKIH0KIAogTUFDSElORV9TVEFSVChCQVNULCAiU2ltdGVjLUJBU1QiKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtbjMwLmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1uMzAuYwppbmRleCA2MjFmNTQ4Li40M2MyZTkxIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1uMzAuYworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1uMzAuYwpAQCAtMSw5ICsxLDEwIEBACi0vKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1uMzAuYworLyogTWFjaGluZSBzcGVjaWZpYyBjb2RlIGZvciB0aGUgQWNlciBuMzAsIEFjZXIgTjM1LCBOYXZtYW4gUGlOIDU3MCwKKyAqIFlha3VtbyBBbHBoYVggYW5kIEFpcmlzIE5DMDUgUERBcy4KICAqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKICAqCUJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDUgQ2hyaXN0ZXIgV2VpbmlnZWwgPGNocmlzdGVyQHdlaW5pZ2VsLnNlPgorICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDggQ2hyaXN0ZXIgV2VpbmlnZWwgPGNocmlzdGVyQHdlaW5pZ2VsLnNlPgogICoKICAqIFRoZXJlIGlzIGEgd2lraSB3aXRoIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG4zMCBwb3J0IGF0CiAgKiBodHRwOi8vaGFuZGhlbGRzLm9yZy9tb2luL21vaW4uY2dpL0FjZXJOMzBEb2N1bWVudGF0aW9uIC4KQEAgLTExLDM2ICsxMiw0MiBAQAogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCiAgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSovCisgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbGlzdC5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiAKLSNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KIAotI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXNlcmlhbC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2ZiLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbGVkcy1ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+Ci0jaW5jbHVkZSA8YXNtL3BsYXQtczNjL2lpYy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtbGNkLmg+CiAKLSNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L3MzYzI0MTAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvaWljLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisKICNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2Nsb2NrLmg+Ci0jaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9kZXZzLmg+CiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jcHUuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2RldnMuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L3MzYzI0MTAuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L3VkYy5oPgogCiBzdGF0aWMgc3RydWN0IG1hcF9kZXNjIG4zMF9pb2Rlc2NbXSBfX2luaXRkYXRhID0gewogCS8qIG5vdGhpbmcgaGVyZSB5ZXQgKi8KQEAgLTY0LDcgKzcxLDggQEAKIAkJLnVsY29uCSAgICAgPSAweDQzLAogCQkudWZjb24JICAgICA9IDB4NTEsCiAJfSwKLQkvKiBUaGUgQmx1ZVRvb3RoIGNvbnRyb2xsZXIgaXMgY29ubmVjdGVkIHRvIHBvcnQgMiAqLworCS8qIE9uIHRoZSBOMzAgdGhlIGJsdWV0b290aCBjb250cm9sbGVyIGlzIGNvbm5lY3RlZCBoZXJlLgorCSAqIE9uIHRoZSBOMzUgYW5kIHZhcmlhbnRzIHRoZSBHUFMgcmVjZWl2ZXIgaXMgY29ubmVjdGVkIGhlcmUuICovCiAJWzJdID0gewogCQkuaHdwb3J0CSAgICAgPSAyLAogCQkuZmxhZ3MJICAgICA9IDAsCkBAIC03NCwxMyArODIsMjYwIEBACiAJfSwKIH07CiAKK3N0YXRpYyB2b2lkIG4zMF91ZGNfcHVsbHVwKGVudW0gczNjMjQxMF91ZGNfY21kX2UgY21kKQoreworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTM0MyNDEwX1VEQ19QX0VOQUJMRSA6CisJCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEIzLCAxKTsKKwkJYnJlYWs7CisJY2FzZSBTM0MyNDEwX1VEQ19QX0RJU0FCTEUgOgorCQlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BCMywgMCk7CisJCWJyZWFrOworCWNhc2UgUzNDMjQxMF9VRENfUF9SRVNFVCA6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX3VkY19tYWNoX2luZm8gbjMwX3VkY19jZmcgX19pbml0ZGF0YSA9IHsKKwkudWRjX2NvbW1hbmQJCT0gbjMwX3VkY19wdWxsdXAsCisJLnZidXNfcGluCQk9IFMzQzI0MTBfR1BHMSwKKwkudmJ1c19waW5faW52ZXJ0ZWQJPSAwLAorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIG4zMF9idXR0b25zW10gPSB7CisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjAsCisJCS5jb2RlCQk9IEtFWV9QT1dFUiwKKwkJLmRlc2MJCT0gIlBvd2VyIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRzksCisJCS5jb2RlCQk9IEtFWV9VUCwKKwkJLmRlc2MJCT0gIlRodW1id2hlZWwgVXAiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BHOCwKKwkJLmNvZGUJCT0gS0VZX0RPV04sCisJCS5kZXNjCQk9ICJUaHVtYndoZWVsIERvd24iLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BHNywKKwkJLmNvZGUJCT0gS0VZX0VOVEVSLAorCQkuZGVzYwkJPSAiVGh1bWJ3aGVlbCBQcmVzcyIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEY3LAorCQkuY29kZQkJPSBLRVlfSE9NRVBBR0UsCisJCS5kZXNjCQk9ICJIb21lIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjYsCisJCS5jb2RlCQk9IEtFWV9DQUxFTkRBUiwKKwkJLmRlc2MJCT0gIkNhbGVuZGFyIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjUsCisJCS5jb2RlCQk9IEtFWV9BRERSRVNTQk9PSywKKwkJLmRlc2MJCT0gIkNvbnRhY3RzIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjQsCisJCS5jb2RlCQk9IEtFWV9NQUlMLAorCQkuZGVzYwkJPSAiTWFpbCIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBuMzBfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSBuMzBfYnV0dG9ucywKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKG4zMF9idXR0b25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG4zMF9idXR0b25fZGV2aWNlID0geworCS5uYW1lCQk9ICJncGlvLWtleXMiLAorCS5pZAkJPSAtMSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbjMwX2J1dHRvbl9kYXRhLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX2J1dHRvbiBuMzVfYnV0dG9uc1tdID0geworCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEYwLAorCQkuY29kZQkJPSBLRVlfUE9XRVIsCisJCS5kZXNjCQk9ICJQb3dlciIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEc5LAorCQkuY29kZQkJPSBLRVlfVVAsCisJCS5kZXNjCQk9ICJKb3lzdGljayBVcCIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEc4LAorCQkuY29kZQkJPSBLRVlfRE9XTiwKKwkJLmRlc2MJCT0gIkpveXN0aWNrIERvd24iLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BHNiwKKwkJLmNvZGUJCT0gS0VZX0RPV04sCisJCS5kZXNjCQk9ICJKb3lzdGljayBMZWZ0IiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRzUsCisJCS5jb2RlCQk9IEtFWV9ET1dOLAorCQkuZGVzYwkJPSAiSm95c3RpY2sgUmlnaHQiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BHNywKKwkJLmNvZGUJCT0gS0VZX0VOVEVSLAorCQkuZGVzYwkJPSAiSm95c3RpY2sgUHJlc3MiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGNywKKwkJLmNvZGUJCT0gS0VZX0hPTUVQQUdFLAorCQkuZGVzYwkJPSAiSG9tZSIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEY2LAorCQkuY29kZQkJPSBLRVlfQ0FMRU5EQVIsCisJCS5kZXNjCQk9ICJDYWxlbmRhciIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEY1LAorCQkuY29kZQkJPSBLRVlfQUREUkVTU0JPT0ssCisJCS5kZXNjCQk9ICJDb250YWN0cyIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEY0LAorCQkuY29kZQkJPSBLRVlfTUFJTCwKKwkJLmRlc2MJCT0gIk1haWwiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGMywKKwkJLmNvZGUJCT0gU1dfUkFESU8sCisJCS5kZXNjCQk9ICJHUFMgQW50ZW5uYSIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEcyLAorCQkuY29kZQkJPSBTV19IRUFEUEhPTkVfSU5TRVJULAorCQkuZGVzYwkJPSAiSGVhZHBob25lIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIG4zNV9idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IG4zNV9idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUobjM1X2J1dHRvbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbjM1X2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbjM1X2J1dHRvbl9kYXRhLAorCX0KK307CisKKy8qIFRoaXMgaXMgdGhlIGJsdWV0b290aCBMRUQgb24gdGhlIGRldmljZS4gKi8KK3N0YXRpYyBzdHJ1Y3QgczNjMjR4eF9sZWRfcGxhdGRhdGEgbjMwX2JsdWVfbGVkX3BkYXRhID0geworCS5uYW1lCQk9ICJibHVlX2xlZCIsCisJLmdwaW8JCT0gUzNDMjQxMF9HUEc2LAorCS5kZWZfdHJpZ2dlcgk9ICIiLAorfTsKKworLyogVGhpcyBMRUQgaXMgZHJpdmVuIGJ5IHRoZSBiYXR0ZXJ5IG1pY3JvY29udHJvbGxlciwgYW5kIGlzIGJsaW5raW5nCisgKiByZWQsIGJsaW5raW5nIGdyZWVuIG9yIHNvbGlkIGdyZWVuIHdoZW4gdGhlIGJhdHRlcnkgaXMgbG93LAorICogY2hhcmdpbmcgb3IgZnVsbCByZXNwZWN0aXZlbHkuICBCeSBkcml2aW5nIEdQRDkgbG93LCBpdCdzIHBvc3NpYmxlCisgKiB0byBmb3JjZSB0aGUgTEVEIHRvIGJsaW5rIHJlZCwgc28gY2FsbCB0aGF0IHdhcm5pbmcgTEVELiAgKi8KK3N0YXRpYyBzdHJ1Y3QgczNjMjR4eF9sZWRfcGxhdGRhdGEgbjMwX3dhcm5pbmdfbGVkX3BkYXRhID0geworCS5uYW1lCQk9ICJ3YXJuaW5nX2xlZCIsCisJLmZsYWdzICAgICAgICAgID0gUzNDMjRYWF9MRURGX0FDVExPVywKKwkuZ3BpbwkJPSBTM0MyNDEwX0dQRDksCisJLmRlZl90cmlnZ2VyCT0gIiIsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBuMzBfYmx1ZV9sZWQgPSB7CisJLm5hbWUJCT0gInMzYzI0eHhfbGVkIiwKKwkuaWQJCT0gMSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbjMwX2JsdWVfbGVkX3BkYXRhLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBuMzBfd2FybmluZ19sZWQgPSB7CisJLm5hbWUJCT0gInMzYzI0eHhfbGVkIiwKKwkuaWQJCT0gMiwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbjMwX3dhcm5pbmdfbGVkX3BkYXRhLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHMzYzI0MTBmYl9kaXNwbGF5IG4zMF9kaXNwbGF5IF9faW5pdGRhdGEgPSB7CisJLnR5cGUJCT0gUzNDMjQxMF9MQ0RDT04xX1RGVCwKKwkud2lkdGgJCT0gMjQwLAorCS5oZWlnaHQJCT0gMzIwLAorCS5waXhjbG9jawk9IDE3MDAwMCwKKworCS54cmVzCQk9IDI0MCwKKwkueXJlcwkJPSAzMjAsCisJLmJwcAkJPSAxNiwKKwkubGVmdF9tYXJnaW4JPSAzLAorCS5yaWdodF9tYXJnaW4JPSA0MCwKKwkuaHN5bmNfbGVuCT0gNDAsCisJLnVwcGVyX21hcmdpbgk9IDIsCisJLmxvd2VyX21hcmdpbgk9IDMsCisJLnZzeW5jX2xlbgk9IDIsCisKKwkubGNkY29uNSA9IFMzQzI0MTBfTENEQ09ONV9JTlZWTElORSB8IFMzQzI0MTBfTENEQ09ONV9JTlZWRlJBTUUsCit9OworCitzdGF0aWMgc3RydWN0IHMzYzI0MTBmYl9tYWNoX2luZm8gbjMwX2ZiX2luZm8gX19pbml0ZGF0YSA9IHsKKwkuZGlzcGxheXMJPSAmbjMwX2Rpc3BsYXksCisJLm51bV9kaXNwbGF5cwk9IDEsCisJLmRlZmF1bHRfZGlzcGxheSA9IDAsCisJLmxwY3NlbAkJPSAweDA2LAorfTsKKwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm4zMF9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKKwkmczNjX2RldmljZV9sY2QsCisJJnMzY19kZXZpY2Vfd2R0LAorCSZzM2NfZGV2aWNlX2kyYywKKwkmczNjX2RldmljZV9paXMsCiAJJnMzY19kZXZpY2VfdXNiLAorCSZzM2NfZGV2aWNlX3VzYmdhZGdldCwKKwkmbjMwX2J1dHRvbl9kZXZpY2UsCisJJm4zMF9ibHVlX2xlZCwKKwkmbjMwX3dhcm5pbmdfbGVkLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm4zNV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKIAkmczNjX2RldmljZV9sY2QsCiAJJnMzY19kZXZpY2Vfd2R0LAogCSZzM2NfZGV2aWNlX2kyYywKIAkmczNjX2RldmljZV9paXMsCiAJJnMzY19kZXZpY2VfdXNiZ2FkZ2V0LAorCSZuMzVfYnV0dG9uX2RldmljZSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgczNjMjQxMF9wbGF0Zm9ybV9pMmMgbjMwX2kyY2NmZyA9IHsKQEAgLTkwLDkgKzM0NSwxNDggQEAKIAkubWF4X2ZyZXEJPSAxMCoxMDAwLAogfTsKIAorLyogTG90cyBvZiBoYXJkY29kZWQgc3R1ZmYsIGJ1dCBpdCBzZXRzIHVwIHRoZSBoYXJkd2FyZSBpbiBhIHVzZWZ1bAorICogc3RhdGUgc28gdGhhdCB3ZSBjYW4gYm9vdCBMaW51eCBkaXJlY3RseSBmcm9tIGZsYXNoLiAqLworc3RhdGljIHZvaWQgX19pbml0IG4zMF9od2luaXQodm9pZCkKK3sKKwkvKiBHUEEwLTExIHNwZWNpYWwgZnVuY3Rpb25zIC0tIHVua25vd24gd2hhdCB0aGV5IGRvCisJICogR1BBMTIgTjMwIHNwZWNpYWwgZnVuY3Rpb24gLS0gdW5rbm93biB3aGF0IGl0IGRvZXMKKwkgKiAgICAgICBOMzUvUGlOIG91dHB1dCAtLSB1bmtub3duIHdoYXQgaXQgZG9lcworCSAqCisJICogQTEyIGlzIG5HQ1MxIG9uIHRoZSBOMzAgYW5kIGFuIG91dHB1dCBvbiB0aGUgTjM1L1BpTi4gIEkKKwkgKiBkb24ndCB0aGluayBpdCBkb2VzIGFueXRoaW5nIHVzZWZ1bCBvbiB0aGUgTjMwLCBzbyBJIG91Z2h0CisJICogdG8gbWFrZSBpdCBhbiBvdXRwdXQgdGhlcmUgdG9vIHNpbmNlIGl0IGFsd2F5cyBkcml2ZW4gdG8gMAorCSAqIGFzIGZhciBhcyBJIGNhbiB0ZWxsLiAqLworCWlmIChtYWNoaW5lX2lzX24zMCgpKQorCQlfX3Jhd193cml0ZWwoMHgwMDdmZmZmZiwgUzNDMjQxMF9HUEFDT04pOworCWlmIChtYWNoaW5lX2lzX24zNSgpKQorCQlfX3Jhd193cml0ZWwoMHgwMDdmZWZmZiwgUzNDMjQxMF9HUEFDT04pOworCV9fcmF3X3dyaXRlbCgweDAwMDAwMDAwLCBTM0MyNDEwX0dQQURBVCk7CisKKwkvKiBHUEIwIFRPVVQwIGJhY2tsaWdodCBsZXZlbAorCSAqIEdQQjEgb3V0cHV0IDE9YmFja2xpZ2h0IG9uCisJICogR1BCMiBvdXRwdXQgSXJEQSBlbmFibGUgMD10cmFuc2NlaXZlciBlbmFibGVkLCAxPWRpc2FibGVkCisJICogR1BCMyBvdXRwdXQgVVNCIEQrIHB1bGwgdXAgMD1kaXNhYmxlZCwgMT1lbmFibGVkCisJICogR1BCNCBOMzAgb3V0cHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiAgICAgIE4zMC9QaU4gR1BTIGNvbnRyb2wgMD1HUFMgZW5hYmxlZCwgMT1HUFMgZGlzYWJsZWQKKwkgKiBHUEI1IG91dHB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogR1BCNiBpbnB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogR1BCNyBvdXRwdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqIEdQQjggb3V0cHV0IC0tIHByb2JhYmx5IExDRCBkcml2ZXIgZW5hYmxlCisJICogR1BCOSBvdXRwdXQgLS0gcHJvYmFibHkgTENEIFZTWU5DIGRyaXZlciBlbmFibGUKKwkgKiBHUEIxMCBvdXRwdXQgLS0gcHJvYmFibHkgTENEIEhTWU5DIGRyaXZlciBlbmFibGUKKwkgKi8KKwlfX3Jhd193cml0ZWwoMHgwMDE1NDU1NiwgUzNDMjQxMF9HUEJDT04pOworCV9fcmF3X3dyaXRlbCgweDAwMDAwNzUwLCBTM0MyNDEwX0dQQkRBVCk7CisJX19yYXdfd3JpdGVsKDB4MDAwMDAwNzMsIFMzQzI0MTBfR1BCVVApOworCisJLyogR1BDMCBpbnB1dCBSUzIzMiBEQ0QvRFNSL1JJCisJICogR1BDMSBMQ0QKKwkgKiBHUEMyIG91dHB1dCBSUzIzMiBEVFI/CisJICogR1BDMyBpbnB1dCBSUzIzMiBEQ0QvRFNSL1JJCisJICogR1BDNCBMQ0QKKwkgKiBHUEM1IG91dHB1dCAwPU5BTkQgd3JpdGUgZW5hYmxlZCwgMT1OQU5EIHdyaXRlIHByb3RlY3QKKwkgKiBHUEM2IGlucHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiBHUEM3IGlucHV0IGNoYXJnZXIgc3RhdHVzIDA9Y2hhcmdlciBjb25uZWN0ZWQKKwkgKiAgICAgIHRoaXMgaW5wdXQgY2FuIGJlIHRyaWdnZXJlZCBieSBwb3dlciBvbiB0aGUgVVNCIGRldmljZQorCSAqICAgICAgcG9ydCB0b28sIGJ1dCB3aWxsIGdvIGJhY2sgdG8gZGlzY29ubmVjdGVkIHNvb24gYWZ0ZXIuCisJICogR1BDOCBOMzAvTjM1IG91dHB1dCAtLSB1bmtub3duIGZ1bmN0aW9uLCBhbHdheXMgZHJpdmVuIHRvIDEKKwkgKiAgICAgIFBpTiBpbnB1dCAtLSB1bmtub3duIGZ1bmN0aW9uLCBhbHdheXMgcmVhZCBhcyAxCisJICogICAgICBNYWtlIGl0IGFuIGlucHV0IHdpdGggYSBwdWxsIHVwIGZvciBhbGwgbW9kZWxzLgorCSAqIEdQQzktMTUgTENECisJICovCisJX19yYXdfd3JpdGVsKDB4YWFhODA2MTgsIFMzQzI0MTBfR1BDQ09OKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwMDE0YywgUzNDMjQxMF9HUENEQVQpOworCV9fcmF3X3dyaXRlbCgweDAwMDBmZWYyLCBTM0MyNDEwX0dQQ1VQKTsKKworCS8qIEdQRDAgaW5wdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqIEdQRDEtRDcgTENECisJICogR1BEOCBOMzAgb3V0cHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiAgICAgIE4zNS9QaU4gb3V0cHV0IDE9R1BTIExFRCBvbgorCSAqIEdQRDkgb3V0cHV0IDA9cG93ZXIgbGVkIGJsaW5rcyByZWQsIDE9bm9ybWFsIHBvd2VyIGxlZCBmdW5jdGlvbgorCSAqIEdQRDEwIG91dHB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogR1BEMTEtMTUgTENEIGRyaXZlcnMKKwkgKi8KKwlfX3Jhd193cml0ZWwoMHhhYTk1YWFhNCwgUzNDMjQxMF9HUERDT04pOworCV9fcmF3X3dyaXRlbCgweDAwMDAwNjAxLCBTM0MyNDEwX0dQRERBVCk7CisJX19yYXdfd3JpdGVsKDB4MDAwMGZiZmUsIFMzQzI0MTBfR1BEVVApOworCisJLyogR1BFMC00IEkyUyBhdWRpbyBidXMKKwkgKiBHUEU1LTEwIFNEL01NQyBidXMKKwkgKiBFMTEtMTMgb3V0cHV0cyAtLSB1bmtub3duIGZ1bmN0aW9uLCBwcm9iYWJseSBwb3dlciBtYW5hZ2VtZW50CisJICogRTE0LTE1IEkyQyBidXMgY29ubmVjdGVkIHRvIHRoZSBiYXR0ZXJ5IGNvbnRyb2xsZXIKKwkgKi8KKwlfX3Jhd193cml0ZWwoMHhhNTZhYWFhYSwgUzNDMjQxMF9HUEVDT04pOworCV9fcmF3X3dyaXRlbCgweDAwMDBlZmM1LCBTM0MyNDEwX0dQRURBVCk7CisJX19yYXdfd3JpdGVsKDB4MDAwMGY4MWYsIFMzQzI0MTBfR1BFVVApOworCisJLyogR1BGMCAgaW5wdXQgMD1wb3dlciBidXR0b24gcHJlc3NlZAorCSAqIEdQRjEgIGlucHV0IFNEL01NQyBzd2l0Y2ggMD1jYXJkIHByZXNlbnQKKwkgKiBHUEYyICBOMzAgMT1yZXNldCBidXR0b24gcHJlc3NlZCAoaW52ZXJ0ZWQgY29tcGFyZWQgdG8gdGhlIHJlc3QpCisJICoJIE4zNS9QaU4gMD1yZXNldCBidXR0b24gcHJlc3NlZAorCSAqIEdQRjMgIE4zMC9QaU4gaW5wdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqICAgICAgIE4zNSBpbnB1dCBHUFMgYW50ZW5uYSBwb3NpdGlvbiwgMD1hbnRlbm5hIGNsb3NlZCwgMT1vcGVuCisJICogR1BGNCAgaW5wdXQgMD1idXR0b24gNCBwcmVzc2VkCisJICogR1BGNSAgaW5wdXQgMD1idXR0b24gMyBwcmVzc2VkCisJICogR1BGNiAgaW5wdXQgMD1idXR0b24gMiBwcmVzc2VkCisJICogR1BGNyAgaW5wdXQgMD1idXR0b24gMSBwcmVzc2VkCisJICovCisJX19yYXdfd3JpdGVsKDB4MDAwMGFhYWEsIFMzQzI0MTBfR1BGQ09OKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwMDAwMCwgUzNDMjQxMF9HUEZEQVQpOworCV9fcmF3X3dyaXRlbCgweDAwMDAwMGZmLCBTM0MyNDEwX0dQRlVQKTsKKworCS8qIEdQRzAgIGlucHV0IFJTMjMyIERDRC9EU1IvUkkKKwkgKiBHUEcxICBpbnB1dCAxPVVTQiBnYWRnZXQgcG9ydCBoYXMgcG93ZXIgZnJvbSBhIGhvc3QKKwkgKiBHUEcyICBOMzAgaW5wdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqICAgICAgIE4zNS9QaU4gaW5wdXQgMD1oZWFkcGhvbmVzIHBsdWdnZWQgaW4sIDE9bm90IHBsdWdnZWQgaW4KKwkgKiBHUEczICBOMzAgb3V0cHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiAgICAgICBOMzUvUGlOIGlucHV0IHdpdGggdW5rbm93biBmdW5jdGlvbgorCSAqIEdQRzQgIE4zMCBvdXRwdXQgMD1NTUMgZW5hYmxlZCwgMT1NTUMgZGlzYWJsZWQKKwkgKiBHUEc1ICBOMzAgb3V0cHV0IDA9Qmx1ZVRvb3RoIGNoaXAgZGlzYWJsZWQsIDE9ZW5hYmxlZAorCSAqICAgICAgIE4zNS9QaU4gaW5wdXQgam95c3RpY2sgcmlnaHQKKwkgKiBHUEc2ICBOMzAgb3V0cHV0IDA9Ymx1ZSBsZWQgb24sIDE9b2ZmCisJICogICAgICAgTjM1L1BpTiBpbnB1dCBqb3lzdGljayBsZWZ0CisJICogR1BHNyAgaW5wdXQgMD10aHVtYndoZWVsIHByZXNzZWQKKwkgKiBHUEc4ICBpbnB1dCAwPXRodW1id2hlZWwgZG93bgorCSAqIEdQRzkgIGlucHV0IDA9dGh1bWJ3aGVlbCB1cAorCSAqIEdQRzEwIGlucHV0IFNEL01NQyB3cml0ZSBwcm90ZWN0IHN3aXRjaAorCSAqIEdQRzExIE4zMCBpbnB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogICAgICAgTjM1IG91dHB1dCAwPUdQUyBhbnRlbm5hIHBvd2VyZWQsIDE9bm90IHBvd2VyZWQKKwkgKiAgICAgICBQaU4gb3V0cHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiBHUEcxMi0xNSB0b3VjaCBzY3JlZW4gZnVuY3Rpb25zCisJICoKKwkgKiBUaGUgcHVsbHVwcyBkaWZmZXIgYmV0d2VlbiB0aGUgbW9kZWxzLCBzbyBlbmFibGUgYWxsCisJICogcHVsbHVwcyB0aGF0IGFyZSBlbmFibGVkIG9uIGFueSBvZiB0aGUgbW9kZWxzLgorCSAqLworCWlmIChtYWNoaW5lX2lzX24zMCgpKQorCQlfX3Jhd193cml0ZWwoMHhmZjBhOTU2YSwgUzNDMjQxMF9HUEdDT04pOworCWlmIChtYWNoaW5lX2lzX24zNSgpKQorCQlfX3Jhd193cml0ZWwoMHhmZjRhYTkyYSwgUzNDMjQxMF9HUEdDT04pOworCV9fcmF3X3dyaXRlbCgweDAwMDBlODAwLCBTM0MyNDEwX0dQR0RBVCk7CisJX19yYXdfd3JpdGVsKDB4MDAwMGY4NmYsIFMzQzI0MTBfR1BHVVApOworCisJLyogR1BIMC8xLzIvMyBSUzIzMiBzZXJpYWwgcG9ydAorCSAqIEdQSDQvNSBJckRBIHNlcmlhbCBwb3J0CisJICogR1BINi83ICBOMzAgQmx1ZVRvb3RoIHNlcmlhbCBwb3J0CisJICogICAgICAgICBOMzUvUGlOIEdQUyByZWNlaXZlcgorCSAqIEdQSDggaW5wdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqIEdQSDkgQ0xLT1VUMCBIQ0xLIC0tIHVua25vd24gdXNlCisJICogR1BIMTAgQ0xLT1VUMSBGQ0xLIC0tIHVua25vd24gdXNlCisJICoKKwkgKiBUaGUgcHVsbCB1cHMgZm9yIEg2L0g3IGFyZSBlbmFibGVkIG9uIE4zMCBidXQgbm90IG9uIHRoZQorCSAqIE4zNS9QaU4uICBJIHN1cHBvc2UgaXMgdXNlZnVsIGZvciBhIGJ1ZGdldCBtb2RlbCBvZiB0aGUgTjMwCisJICogd2l0aCBubyBibHVldG9vaC4gIEl0IGRvZXNuJ3QgaHVydCB0byBoYXZlIHRoZSBwdWxsIHVwcworCSAqIGVuYWJsZWQgb24gdGhlIE4zNSwgc28gbGVhdmUgdGhlbSBlbmFibGVkIGZvciBhbGwgbW9kZWxzLgorCSAqLworCV9fcmF3X3dyaXRlbCgweDAwMjhhYWFhLCBTM0MyNDEwX0dQSENPTik7CisJX19yYXdfd3JpdGVsKDB4MDAwMDA1ZWYsIFMzQzI0MTBfR1BIREFUKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwMDYzZiwgUzNDMjQxMF9HUEhVUCk7Cit9CisKIHN0YXRpYyB2b2lkIF9faW5pdCBuMzBfbWFwX2lvKHZvaWQpCiB7CiAJczNjMjR4eF9pbml0X2lvKG4zMF9pb2Rlc2MsIEFSUkFZX1NJWkUobjMwX2lvZGVzYykpOworCW4zMF9od2luaXQoKTsKIAlzM2MyNHh4X2luaXRfY2xvY2tzKDApOwogCXMzYzI0eHhfaW5pdF91YXJ0cyhuMzBfdWFydGNmZ3MsIEFSUkFZX1NJWkUobjMwX3VhcnRjZmdzKSk7CiB9CkBAIC0xMDYsNyArNTAwLDkgQEAKIAogc3RhdGljIHZvaWQgX19pbml0IG4zMF9pbml0KHZvaWQpCiB7CisJczNjMjR4eF9mYl9zZXRfcGxhdGRhdGEoJm4zMF9mYl9pbmZvKTsKIAlzM2NfZGV2aWNlX2kyYy5kZXYucGxhdGZvcm1fZGF0YSA9ICZuMzBfaTJjY2ZnOworCXMzYzI0eHhfdWRjX3NldF9wbGF0ZGF0YSgmbjMwX3VkY19jZmcpOwogCiAJLyogVHVybiBvZmYgc3VzcGVuZCBvbiBib3RoIFVTQiBwb3J0cywgYW5kIHN3aXRjaCB0aGUKIAkgKiBzZWxlY3RhYmxlIFVTQiBwb3J0IHRvIFVTQiBkZXZpY2UgbW9kZS4gKi8KQEAgLTExNSw3ICs1MTEsMzIgQEAKIAkJCSAgICAgIFMzQzI0MTBfTUlTQ0NSX1VTQlNVU1BORDAgfAogCQkJICAgICAgUzNDMjQxMF9NSVNDQ1JfVVNCU1VTUE5EMSwgMHgwKTsKIAotCXBsYXRmb3JtX2FkZF9kZXZpY2VzKG4zMF9kZXZpY2VzLCBBUlJBWV9TSVpFKG4zMF9kZXZpY2VzKSk7CisJaWYgKG1hY2hpbmVfaXNfbjMwKCkpIHsKKwkJLyogVHVybiBvZmYgc3VzcGVuZCBvbiBib3RoIFVTQiBwb3J0cywgYW5kIHN3aXRjaCB0aGUKKwkJICogc2VsZWN0YWJsZSBVU0IgcG9ydCB0byBVU0IgZGV2aWNlIG1vZGUuICovCisJCXMzYzI0MTBfbW9kaWZ5X21pc2NjcihTM0MyNDEwX01JU0NDUl9VU0JIT1NUIHwKKwkJCQkgICAgICBTM0MyNDEwX01JU0NDUl9VU0JTVVNQTkQwIHwKKwkJCQkgICAgICBTM0MyNDEwX01JU0NDUl9VU0JTVVNQTkQxLCAweDApOworCisJCXBsYXRmb3JtX2FkZF9kZXZpY2VzKG4zMF9kZXZpY2VzLCBBUlJBWV9TSVpFKG4zMF9kZXZpY2VzKSk7CisJfQorCisJaWYgKG1hY2hpbmVfaXNfbjM1KCkpIHsKKwkJLyogVHVybiBvZmYgc3VzcGVuZCBhbmQgc3dpdGNoIHRoZSBzZWxlY3RhYmxlIFVTQiBwb3J0CisJCSAqIHRvIFVTQiBkZXZpY2UgbW9kZS4gIFR1cm4gb24gc3VzcGVuZCBmb3IgdGhlIGhvc3QKKwkJICogcG9ydCBzaW5jZSBpdCBpcyBub3QgY29ubmVjdGVkIG9uIHRoZSBOMzUuCisJCSAqCisJCSAqIEFjdHVhbGx5LCB0aGUgaG9zdCBwb3J0IGlzIGF2YWlsYWJsZSBhdCBzb21lIHBhZHMKKwkJICogb24gdGhlIGJhY2sgb2YgdGhlIGRldmljZSwgc28gaXQgd291bGQgYWN0dWFsbHkgYmUKKwkJICogcG9zc2libGUgdG8gYWRkIGEgVVNCIGRldmljZSBpbnNpZGUgdGhlIE4zNSBpZiB5b3UKKwkJICogYXJlIHdpbGxpbmcgdG8gZG8gc29tZSBoYXJkd2FyZSBtb2RpZmljYXRpb25zLiAqLworCQlzM2MyNDEwX21vZGlmeV9taXNjY3IoUzNDMjQxMF9NSVNDQ1JfVVNCSE9TVCB8CisJCQkJICAgICAgUzNDMjQxMF9NSVNDQ1JfVVNCU1VTUE5EMCB8CisJCQkJICAgICAgUzNDMjQxMF9NSVNDQ1JfVVNCU1VTUE5EMSwKKwkJCQkgICAgICBTM0MyNDEwX01JU0NDUl9VU0JTVVNQTkQxKTsKKworCQlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhuMzVfZGV2aWNlcywgQVJSQVlfU0laRShuMzVfZGV2aWNlcykpOworCX0KIH0KIAogTUFDSElORV9TVEFSVChOMzAsICJBY2VyLU4zMCIpCkBAIC0xMzEsOSArNTUyLDE0IEBACiAJLm1hcF9pbwkJPSBuMzBfbWFwX2lvLAogTUFDSElORV9FTkQKIAotLyoKLSAgICBMb2NhbCB2YXJpYWJsZXM6Ci0gICAgICAgIGNvbXBpbGUtY29tbWFuZDogIm1ha2UgQVJDSD1hcm0gQ1JPU1NfQ09NUElMRT0vdXNyL2xvY2FsL2FybS8zLjMuMi9iaW4vYXJtLWxpbnV4LSAtayAtQyAuLi8uLi8uLiIKLSAgICAgICAgYy1iYXNpYy1vZmZzZXQ6IDgKLSAgICBFbmQ6Ci0qLworTUFDSElORV9TVEFSVChOMzUsICJBY2VyLU4zNSIpCisJLyogTWFpbnRhaW5lcjogQ2hyaXN0ZXIgV2VpbmlnZWwgPGNocmlzdGVyQHdlaW5pZ2VsLnNlPgorCSovCisJLnBoeXNfaW8JPSBTM0MyNDEwX1BBX1VBUlQsCisJLmlvX3BnX29mZnN0CT0gKCgodTMyKVMzQzI0WFhfVkFfVUFSVCkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IFMzQzI0MTBfU0RSQU1fUEEgKyAweDEwMCwKKwkudGltZXIJCT0gJnMzYzI0eHhfdGltZXIsCisJLmluaXRfbWFjaGluZQk9IG4zMF9pbml0LAorCS5pbml0X2lycQk9IG4zMF9pbml0X2lycSwKKwkubWFwX2lvCQk9IG4zMF9tYXBfaW8sCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtdnIxMDAwLmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC12cjEwMDAuYwppbmRleCA0YzRiNWM0Li45YTA5NjVhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC12cjEwMDAuYworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC12cjEwMDAuYwpAQCAtMSw2ICsxLDYgQEAKIC8qIGxpbnV4L2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLXZyMTAwMC5jCiAgKgotICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgU2ltdGVjIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSwyMDA4IFNpbXRlYyBFbGVjdHJvbmljcwogICogICBCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CiAgKgogICogTWFjaGluZSBzdXBwb3J0IGZvciBUaG9yY29tIFZSMTAwMCBib2FyZC4gRGVzaWduZWQgZm9yIFRob3Jjb20gYnkKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kbTkwMDAuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KIAogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgpAQCAtNDYsNyArNDcsOSBAQAogI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY2xvY2suaD4KICNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2RldnMuaD4KICNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2NwdS5oPgorCiAjaW5jbHVkZSAidXNiLXNpbXRlYy5oIgorI2luY2x1ZGUgIm5vci1zaW10ZWMuaCIKIAogLyogbWFjcm9zIGZvciB2aXJ0dWFsIGFkZHJlc3MgbW9kcyBmb3IgdGhlIGlvIHNwYWNlIGVudHJpZXMgKi8KICNkZWZpbmUgVkFfQzUoaXRlbSkgKCh1bnNpZ25lZCBsb25nKShpdGVtKSArIEJBU1RfVkFNX0NTNSkKQEAgLTk3LDM0ICsxMDAsNiBAQAogCSAgLmxlbmd0aAk9IFNaXzFNLAogCSAgLnR5cGUJCT0gTVRfREVWSUNFLAogICB9LAotCi0gIC8qIHBlcmlwaGVyYWwgc3BhY2UuLi4gb25lIGZvciBlYWNoIG9mIGZhc3Qvc2xvdy9ieXRlLzE2Yml0ICovCi0gIC8qIG5vdGUsIGlkZSBpcyBvbmx5IGRlY29kZWQgaW4gd29yZCBzcGFjZSwgZXZlbiB0aG91Z2ggc29tZSByZWdpc3RlcnMKLSAgICogYXJlIG9ubHkgOGJpdCAqLwotCi0gIC8qIHNsb3csIGJ5dGUgKi8KLSAgeyBWQV9DMihWUjEwMDBfVkFfSURFUFJJKSwgIFBBX0NTMyhWUjEwMDBfUEFfSURFUFJJKSwJICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MyKFZSMTAwMF9WQV9JREVTRUMpLCAgUEFfQ1MzKFZSMTAwMF9QQV9JREVTRUMpLAkgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzIoVlIxMDAwX1ZBX0lERVBSSUFVWCksIFBBX0NTMyhWUjEwMDBfUEFfSURFUFJJQVVYKSwgU1pfMU0sIE1UX0RFVklDRSB9LAotICB7IFZBX0MyKFZSMTAwMF9WQV9JREVTRUNBVVgpLCBQQV9DUzMoVlIxMDAwX1BBX0lERVNFQ0FVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLQotICAvKiBzbG93LCB3b3JkICovCi0gIHsgVkFfQzMoVlIxMDAwX1ZBX0lERVBSSSksICBQQV9DUzMoVlIxMDAwX1BBX0lERVBSSSksCSAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMyhWUjEwMDBfVkFfSURFU0VDKSwgIFBBX0NTMyhWUjEwMDBfUEFfSURFU0VDKSwJICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MzKFZSMTAwMF9WQV9JREVQUklBVVgpLCBQQV9DUzMoVlIxMDAwX1BBX0lERVBSSUFVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMyhWUjEwMDBfVkFfSURFU0VDQVVYKSwgUEFfQ1MzKFZSMTAwMF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0KLSAgLyogZmFzdCwgYnl0ZSAqLwotICB7IFZBX0M0KFZSMTAwMF9WQV9JREVQUkkpLCAgUEFfQ1M1KFZSMTAwMF9QQV9JREVQUkkpLAkgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzQoVlIxMDAwX1ZBX0lERVNFQyksICBQQV9DUzUoVlIxMDAwX1BBX0lERVNFQyksCSAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNChWUjEwMDBfVkFfSURFUFJJQVVYKSwgUEFfQ1M1KFZSMTAwMF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzQoVlIxMDAwX1ZBX0lERVNFQ0FVWCksIFBBX0NTNShWUjEwMDBfUEFfSURFU0VDQVVYKSwgU1pfMU0sIE1UX0RFVklDRSB9LAotCi0gIC8qIGZhc3QsIHdvcmQgKi8KLSAgeyBWQV9DNShWUjEwMDBfVkFfSURFUFJJKSwgIFBBX0NTNShWUjEwMDBfUEFfSURFUFJJKSwJICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M1KFZSMTAwMF9WQV9JREVTRUMpLCAgUEFfQ1M1KFZSMTAwMF9QQV9JREVTRUMpLAkgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzUoVlIxMDAwX1ZBX0lERVBSSUFVWCksIFBBX0NTNShWUjEwMDBfUEFfSURFUFJJQVVYKSwgU1pfMU0sIE1UX0RFVklDRSB9LAotICB7IFZBX0M1KFZSMTAwMF9WQV9JREVTRUNBVVgpLCBQQV9DUzUoVlIxMDAwX1BBX0lERVNFQ0FVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKIH07CiAKICNkZWZpbmUgVUNPTiBTM0MyNDEwX1VDT05fREVGQVVMVCB8IFMzQzI0MTBfVUNPTl9VQ0xLCkBAIC0yMzAsMjMgKzIwNSw2IEBACiAJfSwKIH07CiAKLS8qIE1URCBOT1IgRmxhc2ggKi8KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSB2cjEwMDBfbm9yX3Jlc291cmNlW10gPSB7Ci0JWzBdID0gewotCQkuc3RhcnQJPSBTM0MyNDEwX0NTMSArIDB4NDAwMDAwMCwKLQkJLmVuZAk9IFMzQzI0MTBfQ1MxICsgMHg0MDAwMDAwICsgU1pfMTZNIC0gMSwKLQkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCi0JfQotfTsKLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgdnIxMDAwX25vciA9IHsKLQkubmFtZQkJPSAiYmFzdC1ub3IiLAotCS5pZAkJPSAtMSwKLQkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUodnIxMDAwX25vcl9yZXNvdXJjZSksCi0JLnJlc291cmNlCT0gdnIxMDAwX25vcl9yZXNvdXJjZSwKLX07Ci0KIC8qIERNOTAwMCBldGhlcm5ldCBkZXZpY2VzICovCiAKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdnIxMDAwX2RtOWswX3Jlc291cmNlW10gPSB7CkBAIC0yNjMsNyArMjIxLDcgQEAKIAlbMl0gPSB7CiAJCS5zdGFydCA9IElSUV9WUjEwMDBfRE05MDAwQSwKIAkJLmVuZCAgID0gSVJRX1ZSMTAwMF9ETTkwMDBBLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSB8IElSUUZfVFJJR0dFUl9ISUdILAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSB8IElPUkVTT1VSQ0VfSVJRX0hJR0hMRVZFTCwKIAl9CiAKIH07CkBAIC0yODIsNyArMjQwLDcgQEAKIAlbMl0gPSB7CiAJCS5zdGFydCA9IElSUV9WUjEwMDBfRE05MDAwTiwKIAkJLmVuZCAgID0gSVJRX1ZSMTAwMF9ETTkwMDBOLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSB8IElSUUZfVFJJR0dFUl9ISUdILAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSB8IElPUkVTT1VSQ0VfSVJRX0hJR0hMRVZFTCwKIAl9CiB9OwogCkBAIC0zNTgsNiArMzE2LDE4IEBACiAJfSwKIH07CiAKKy8qIEkyQyBkZXZpY2VzLiAqLworCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIHZyMTAwMF9pMmNfZGV2c1tdIF9faW5pdGRhdGEgPSB7CisJeworCQlJMkNfQk9BUkRfSU5GTygidGx2MzIwYWljMjMiLCAweDFhKSwKKwl9LCB7CisJCUkyQ19CT0FSRF9JTkZPKCJ0bXAxMDEiLCAweDQ4KSwKKwl9LCB7CisJCUkyQ19CT0FSRF9JTkZPKCJtNDFzdDg3IiwgMHg2OCksCisJfSwKK307CisKIC8qIGRldmljZXMgZm9yIHRoaXMgYm9hcmQgKi8KIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnZyMTAwMF9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKQEAgLTM2Nyw3ICszMzcsNiBAQAogCSZzM2NfZGV2aWNlX2kyYywKIAkmczNjX2RldmljZV9hZGMsCiAJJnNlcmlhbF9kZXZpY2UsCi0JJnZyMTAwMF9ub3IsCiAJJnZyMTAwMF9kbTlrMCwKIAkmdnIxMDAwX2RtOWsxLAogCSZ2cjEwMDBfbGVkMSwKQEAgLTQxNiw2ICszODUsMTEgQEAKIHN0YXRpYyB2b2lkIF9faW5pdCB2cjEwMDBfaW5pdCh2b2lkKQogewogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKHZyMTAwMF9kZXZpY2VzLCBBUlJBWV9TSVpFKHZyMTAwMF9kZXZpY2VzKSk7CisKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCB2cjEwMDBfaTJjX2RldnMsCisJCQkJQVJSQVlfU0laRSh2cjEwMDBfaTJjX2RldnMpKTsKKworCW5vcl9zaW10ZWNfaW5pdCgpOwogfQogCiBNQUNISU5FX1NUQVJUKFZSMTAwMCwgIlRob3Jjb20tVlIxMDAwIikKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9ub3Itc2ltdGVjLmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbm9yLXNpbXRlYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NGUyMWIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbm9yLXNpbXRlYy5jCkBAIC0wLDAgKzEsODYgQEAKKy8qIGxpbnV4L2FyY2gvYXJtL21hY2gtczNjMjQxMC9ub3Itc2ltdGVjLmMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoJQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgorICoKKyAqIFNpbXRlYyBOT1IgbWFwcGluZworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BhcnRpdGlvbnMuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2Jhc3QtbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYmFzdC1jcGxkLmg+CisKKworc3RhdGljIHZvaWQgc2ltdGVjX25vcl92cHAoc3RydWN0IG1hcF9pbmZvICptYXAsIGludCB2cHApCit7CisJdW5zaWduZWQgaW50IHZhbDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCXZhbCA9IF9fcmF3X3JlYWRiKEJBU1RfVkFfQ1RSTDMpOworCisJcHJpbnRrKEtFUk5fREVCVUcgIiVzKCVkKVxuIiwgX19mdW5jX18sIHZwcCk7CisKKwlpZiAodnBwKQorCQl2YWwgfD0gQkFTVF9DUExEX0NUUkwzX1JPTVdFTjsKKwllbHNlCisJCXZhbCAmPSB+QkFTVF9DUExEX0NUUkwzX1JPTVdFTjsKKworCV9fcmF3X3dyaXRlYih2YWwsIEJBU1RfVkFfQ1RSTDMpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBzaW10ZWNfbm9yX3BkYXRhID0geworCS53aWR0aAkJPSAyLAorCS5zZXRfdnBwCT0gc2ltdGVjX25vcl92cHAsCisJLm5yX3BhcnRzCT0gMCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugc2ltdGVjX25vcl9yZXNvdXJjZVtdID0geworCVswXSA9IHsKKwkJLnN0YXJ0ID0gUzNDMjQxMF9DUzEgKyAweDQwMDAwMDAsCisJCS5lbmQgICA9IFMzQzI0MTBfQ1MxICsgMHg0MDAwMDAwICsgU1pfOE0gLSAxLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBzaW10ZWNfZGV2aWNlX25vciA9IHsKKwkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShzaW10ZWNfbm9yX3Jlc291cmNlKSwKKwkucmVzb3VyY2UJPSBzaW10ZWNfbm9yX3Jlc291cmNlLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YSA9ICZzaW10ZWNfbm9yX3BkYXRhLAorCX0sCit9OworCit2b2lkIF9faW5pdCBub3Jfc2ltdGVjX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZzaW10ZWNfZGV2aWNlX25vcik7CisJaWYgKHJldCA8IDApCisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIHJlZ2lzdGVyIHBoeXNtYXAtZmxhc2ggZGV2aWNlXG4iKTsKKwllbHNlCisJCXNpbXRlY19ub3JfdnBwKE5VTEwsIDEpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL25vci1zaW10ZWMuaCBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9ub3Itc2ltdGVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYxOWMxZQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9ub3Itc2ltdGVjLmgKQEAgLTAsMCArMSwxNCBAQAorLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL25vci1zaW10ZWMuaAorICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CisgKgorICogU2ltdGVjIE5PUiBtYXBwaW5nCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKK2V4dGVybiB2b2lkIG5vcl9zaW10ZWNfaW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMi9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL0tjb25maWcKaW5kZXggMGI0MzQzMS4uYzU5YTlkMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL0tjb25maWcKQEAgLTM0LDYgKzM0LDE2IEBACiAKIG1lbnUgIlMzQzI0MTIgTWFjaGluZXMiCiAKK2NvbmZpZyBNQUNIX0pJVkUKKwlib29sICJMb2dpdGVjaCBKaXZlIgorCXNlbGVjdCBDUFVfUzNDMjQxMgorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IGFyZSB1c2luZyB0aGUgTG9naXRlY2ggSml2ZS4KKworY29uZmlnIE1BQ0hfSklWRV9TSE9XX0JPT1RMT0FERVIKKwlib29sICJBbGxvdyBhY2Nlc3MgdG8gYm9vdGxvYWRlciBwYXJ0aXRpb25zIGluIE1URCIKKwlkZXBlbmRzIG9uIE1BQ0hfSklWRSAmJiBFWFBFUklNRU5UQUwKKwogY29uZmlnIE1BQ0hfU01ESzI0MTMKIAlib29sICJTTURLMjQxMyIKIAlzZWxlY3QgQ1BVX1MzQzI0MTIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMi9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtczNjMjQxMi9NYWtlZmlsZQppbmRleCAyNjdmMzM0Li4yMDkxOGQ1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTIvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL01ha2VmaWxlCkBAIC0xOCw1ICsxOCw2IEBACiAKICMgTWFjaGluZSBzdXBwb3J0CiAKK29iai0kKENPTkZJR19NQUNIX0pJVkUpCQkrPSBtYWNoLWppdmUubwogb2JqLSQoQ09ORklHX01BQ0hfU01ESzI0MTMpCSs9IG1hY2gtc21kazI0MTMubwogb2JqLSQoQ09ORklHX01BQ0hfVlNUTVMpCSs9IG1hY2gtdnN0bXMubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL2Nsb2NrLmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvY2xvY2suYwppbmRleCAyNjk3YTY1Li4xMTU3YjVhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTIvY2xvY2suYworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvY2xvY2suYwpAQCAtNjMxLDYgKzYzMSwxNyBAQAogCQkuYml0CT0gUzNDMjQxMl9DTEtTUkNfVVNCQ0xLX0hDTEssCiAJCS5zcmNfMAk9ICZjbGtfdXN5c2NsaywKIAkJLnNyY18xCT0gJmNsa19oLAorCS8qIGhlcmUgd2UgYXNzdW1lICBPTVs0XSBzZWxlY3QgeHRhbCAqLworCX0sIHsKKwkJLmNsawk9ICZjbGtfZXJlZmNsaywKKwkJLmJpdAk9IFMzQzI0MTJfQ0xLU1JDX0VSRUZDTEtfRVhUQ0xLLAorCQkuc3JjXzAJPSAmY2xrX3h0YWwsCisJCS5zcmNfMQk9ICZjbGtfZXh0LAorCX0sIHsKKwkJLmNsawk9ICZjbGtfdXJlZmNsaywKKwkJLmJpdAk9IFMzQzI0MTJfQ0xLU1JDX1VSRUZDTEtfRVhUQ0xLLAorCQkuc3JjXzAJPSAmY2xrX3h0YWwsCisJCS5zcmNfMQk9ICZjbGtfZXh0LAogCX0sCiB9OwogCkBAIC02NjYsOCArNjc3LDYgQEAKIHN0YXRpYyBzdHJ1Y3QgY2xrICpjbGtzW10gX19pbml0ZGF0YSA9IHsKIAkmY2xrX2V4dCwKIAkmY2xrX3VzYl9idXMsCi0JJmNsa19lcmVmY2xrLAotCSZjbGtfdXJlZmNsaywKIAkmY2xrX21yZWZjbGssCiAJJmNsa19hcm1jbGssCiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL21hY2gtaml2ZS5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL21hY2gtaml2ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNTkyNDcKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvbWFjaC1qaXZlLmMKQEAgLTAsMCArMSw2ODcgQEAKKy8qIGxpbnV4L2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLWppdmUuYworICoKKyAqIENvcHlyaWdodCAyMDA3IFNpbXRlYyBFbGVjdHJvbmljcworICoJQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgorICoKKyAqIGh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisKKyNpbmNsdWRlIDx2aWRlby9pbGk5MzIwLmg+CisKKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisKKyNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BhcnRpdGlvbnMuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXNlcmlhbC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9uYW5kLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL2lpYy5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1wb3dlci5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtbWVtLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1sY2QuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9zcGktZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2ZiLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorCisjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmRfZWNjLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BhcnRpdGlvbnMuaD4KKworI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY2xvY2suaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2RldnMuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2NwdS5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvcG0uaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L3VkYy5oPgorCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIGppdmVfaW9kZXNjW10gX19pbml0ZGF0YSA9IHsKK307CisKKyNkZWZpbmUgVUNPTiBTM0MyNDEwX1VDT05fREVGQVVMVAorI2RlZmluZSBVTENPTiBTM0MyNDEwX0xDT05fQ1M4IHwgUzNDMjQxMF9MQ09OX1BOT05FCisjZGVmaW5lIFVGQ09OIFMzQzI0MTBfVUZDT05fUlhUUklHOCB8IFMzQzI0MTBfVUZDT05fRklGT01PREUKKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgaml2ZV91YXJ0Y2Znc1tdID0geworCVswXSA9IHsKKwkJLmh3cG9ydAkgICAgID0gMCwKKwkJLmZsYWdzCSAgICAgPSAwLAorCQkudWNvbgkgICAgID0gVUNPTiwKKwkJLnVsY29uCSAgICAgPSBVTENPTiwKKwkJLnVmY29uCSAgICAgPSBVRkNPTiwKKwl9LAorCVsxXSA9IHsKKwkJLmh3cG9ydAkgICAgID0gMSwKKwkJLmZsYWdzCSAgICAgPSAwLAorCQkudWNvbgkgICAgID0gVUNPTiwKKwkJLnVsY29uCSAgICAgPSBVTENPTiwKKwkJLnVmY29uCSAgICAgPSBVRkNPTiwKKwl9LAorCVsyXSA9IHsKKwkJLmh3cG9ydAkgICAgID0gMiwKKwkJLmZsYWdzCSAgICAgPSAwLAorCQkudWNvbgkgICAgID0gVUNPTiwKKwkJLnVsY29uCSAgICAgPSBVTENPTiwKKwkJLnVmY29uCSAgICAgPSBVRkNPTiwKKwl9Cit9OworCisvKiBKaXZlIGZsYXNoIGFzc2lnbm1lbnQKKyAqCisgKiAweDAwMDAwMDAwLTB4MDAwMjgwMDAgOiB1Ym9vdAorICogMHgwMDAyODAwMC0weDAwMDJjMDAwIDogdWJvb3QgZW52CisgKiAweDAwMDJjMDAwLTB4MDAwMzAwMDAgOiBzcGFyZQorICogMHgwMDAzMDAwMC0weDAwMjAwMDAwIDogemltYWdlIEEKKyAqIDB4MDAyMDAwMDAtMHgwMTYwMDAwMCA6IGNyYW1mcyBBCisgKiAweDAxNjAwMDAwLTB4MDE3ZDAwMDAgOiB6aW1hZ2UgQgorICogMHgwMTdkMDAwMC0weDAyYmQwMDAwIDogY3JhbWZzIEIKKyAqIDB4MDJiZDAwMDAtMHgwM2ZkMDAwMCA6IHlhZmZzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBqaXZlX2ltYWdlQV9uYW5kX3BhcnRbXSA9IHsKKworI2lmZGVmIENPTkZJR19NQUNIX0pJVkVfU0hPV19CT09UTE9BREVSCisJLyogRG9uJ3QgYWxsb3cgYWNjZXNzIHRvIHRoZSBib290bG9hZGVyIGZyb20gbGludXggKi8KKwl7CisJCS5uYW1lICAgICAgICAgICA9ICJ1Ym9vdCIsCisJCS5vZmZzZXQgICAgICAgICA9IDAsCisJCS5zaXplICAgICAgICAgICA9ICgxNjAgKiBTWl8xSyksCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwgLyogZm9yY2UgcmVhZC1vbmx5ICovCisJfSwKKworCS8qIHNwYXJlICovCisgICAgICAgIHsKKyAgICAgICAgICAgICAgICAubmFtZSAgICAgICAgICAgPSAic3BhcmUiLAorICAgICAgICAgICAgICAgIC5vZmZzZXQgICAgICAgICA9ICgxNzYgKiBTWl8xSyksCisgICAgICAgICAgICAgICAgLnNpemUgICAgICAgICAgID0gKDE2ICogU1pfMUspLAorICAgICAgICB9LAorI2VuZGlmCisKKwkvKiBib290ZWQgaW1hZ2VzICovCisgICAgICAgIHsKKwkJLm5hbWUJCT0gImtlcm5lbCAocm8pIiwKKwkJLm9mZnNldAkJPSAoMTkyICogU1pfMUspLAorCQkuc2l6ZQkJPSAoU1pfMk0pIC0gKDE5MiAqIFNaXzFLKSwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLCAvKiBmb3JjZSByZWFkLW9ubHkgKi8KKyAgICAgICAgfSwgeworICAgICAgICAgICAgICAgIC5uYW1lICAgICAgICAgICA9ICJyb290IChybykiLAorICAgICAgICAgICAgICAgIC5vZmZzZXQgICAgICAgICA9IChTWl8yTSksCisgICAgICAgICAgICAgICAgLnNpemUgICAgICAgICAgID0gKDIwICogU1pfMU0pLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsIC8qIGZvcmNlIHJlYWQtb25seSAqLworICAgICAgICB9LAorCisJLyogeWFmZnMgKi8KKwl7CisJCS5uYW1lCQk9ICJ5YWZmcyIsCisJCS5vZmZzZXQJCT0gKDQ0ICogU1pfMU0pLAorCQkuc2l6ZQkJPSAoMjAgKiBTWl8xTSksCisJfSwKKworCS8qIGJvb3Rsb2FkZXIgZW52aXJvbm1lbnQgKi8KKwl7CisgICAgICAgICAgICAgICAgLm5hbWUJCT0gImVudiIsCisJCS5vZmZzZXQJCT0gKDE2MCAqIFNaXzFLKSwKKwkJLnNpemUJCT0gKDE2ICogU1pfMUspLAorCX0sCisKKwkvKiB1cGdyYWRlIGltYWdlcyAqLworICAgICAgICB7CisJCS5uYW1lCQk9ICJ6aW1hZ2UiLAorCQkub2Zmc2V0CQk9ICgyMiAqIFNaXzFNKSwKKwkJLnNpemUJCT0gKDIgKiBTWl8xTSkgLSAoMTkyICogU1pfMUspLAorICAgICAgICB9LCB7CisJCS5uYW1lCQk9ICJjcmFtZnMiLAorCQkub2Zmc2V0CQk9ICgyNCAqIFNaXzFNKSAtICgxOTIqU1pfMUspLAorCQkuc2l6ZQkJPSAoMjAgKiBTWl8xTSksCisgICAgICAgIH0sCit9OworCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gaml2ZV9pbWFnZUJfbmFuZF9wYXJ0W10gPSB7CisKKyNpZmRlZiBDT05GSUdfTUFDSF9KSVZFX1NIT1dfQk9PVExPQURFUgorCS8qIERvbid0IGFsbG93IGFjY2VzcyB0byB0aGUgYm9vdGxvYWRlciBmcm9tIGxpbnV4ICovCisJeworCQkubmFtZSAgICAgICAgICAgPSAidWJvb3QiLAorCQkub2Zmc2V0ICAgICAgICAgPSAwLAorCQkuc2l6ZSAgICAgICAgICAgPSAoMTYwICogU1pfMUspLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsIC8qIGZvcmNlIHJlYWQtb25seSAqLworCX0sCisKKwkvKiBzcGFyZSAqLworICAgICAgICB7CisgICAgICAgICAgICAgICAgLm5hbWUgICAgICAgICAgID0gInNwYXJlIiwKKyAgICAgICAgICAgICAgICAub2Zmc2V0ICAgICAgICAgPSAoMTc2ICogU1pfMUspLAorICAgICAgICAgICAgICAgIC5zaXplICAgICAgICAgICA9ICgxNiAqIFNaXzFLKSwKKyAgICAgICAgfSwKKyNlbmRpZgorCisJLyogYm9vdGVkIGltYWdlcyAqLworICAgICAgICB7CisJCS5uYW1lICAgICAgICAgICA9ICJrZXJuZWwgKHJvKSIsCisJCS5vZmZzZXQgICAgICAgICA9ICgyMiAqIFNaXzFNKSwKKwkJLnNpemUgICAgICAgICAgID0gKDIgKiBTWl8xTSkgLSAoMTkyICogU1pfMUspLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsIC8qIGZvcmNlIHJlYWQtb25seSAqLworICAgICAgICB9LAorCXsKKwkJLm5hbWUJCT0gInJvb3QgKHJvKSIsCisJCS5vZmZzZXQJCT0gKDI0ICogU1pfMU0pIC0gKDE5MiAqIFNaXzFLKSwKKyAgICAgICAgICAgICAgICAuc2l6ZQkJPSAoMjAgKiBTWl8xTSksCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwgLyogZm9yY2UgcmVhZC1vbmx5ICovCisJfSwKKworCS8qIHlhZmZzICovCisJeworCQkubmFtZQkJPSAieWFmZnMiLAorCQkub2Zmc2V0CQk9ICg0NCAqIFNaXzFNKSwKKwkJLnNpemUJCT0gKDIwICogU1pfMU0pLAorICAgICAgICB9LAorCisJLyogYm9vdGxvYWRlciBlbnZpcm9ubWVudCAqLworCXsKKwkJLm5hbWUJCT0gImVudiIsCisJCS5vZmZzZXQJCT0gKDE2MCAqIFNaXzFLKSwKKwkJLnNpemUJCT0gKDE2ICogU1pfMUspLAorCX0sCisKKwkvKiB1cGdyYWRlIGltYWdlcyAqLworCXsKKwkJLm5hbWUJCT0gInppbWFnZSIsCisJCS5vZmZzZXQJCT0gKDE5MiAqIFNaXzFLKSwKKwkJLnNpemUJCT0gKDIgKiBTWl8xTSkgLSAoMTkyICogU1pfMUspLAorICAgICAgICB9LCB7CisJCS5uYW1lCQk9ICJjcmFtZnMiLAorCQkub2Zmc2V0CQk9ICgyICogU1pfMU0pLAorCQkuc2l6ZQkJPSAoMjAgKiBTWl8xTSksCisgICAgICAgIH0sCit9OworCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfbmFuZF9zZXQgaml2ZV9uYW5kX3NldHNbXSA9IHsKKwlbMF0gPSB7CisJCS5uYW1lICAgICAgICAgICA9ICJmbGFzaCIsCisJCS5ucl9jaGlwcyAgICAgICA9IDEsCisJCS5ucl9wYXJ0aXRpb25zICA9IEFSUkFZX1NJWkUoaml2ZV9pbWFnZUFfbmFuZF9wYXJ0KSwKKwkJLnBhcnRpdGlvbnMgICAgID0gaml2ZV9pbWFnZUFfbmFuZF9wYXJ0LAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfcGxhdGZvcm1fbmFuZCBqaXZlX25hbmRfaW5mbyA9IHsKKwkvKiBzZXQgdGFrZW4gZnJvbSBvc2lyaXMgbmFuZCB0aW1pbmdzLCBwb3NzaWJseSBzdGlsbCBjb25zZXJ2YXRpdmUgKi8KKwkudGFjbHMJCT0gMzAsCisJLnR3cnBoMAkJPSA1NSwKKwkudHdycGgxCQk9IDQwLAorCS5zZXRzCQk9IGppdmVfbmFuZF9zZXRzLAorCS5ucl9zZXRzCT0gQVJSQVlfU0laRShqaXZlX25hbmRfc2V0cyksCit9OworCitzdGF0aWMgaW50IF9faW5pdCBqaXZlX210ZHNldChjaGFyICpvcHRpb25zKQoreworCXN0cnVjdCBzM2MyNDEwX25hbmRfc2V0ICpuYW5kID0gJmppdmVfbmFuZF9zZXRzWzBdOworCXVuc2lnbmVkIGxvbmcgc2V0OworCisJaWYgKG9wdGlvbnMgPT0gTlVMTCB8fCBvcHRpb25zWzBdID09ICdcMCcpCisJCXJldHVybiAwOworCisJaWYgKHN0cmljdF9zdHJ0b3VsKG9wdGlvbnMsIDEwLCAmc2V0KSkgeworCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBwYXJzZSBtdGRzZXQ9JXNcbiIsIG9wdGlvbnMpOworCQlyZXR1cm4gMDsKKwl9CisKKwlzd2l0Y2ggKHNldCkgeworCWNhc2UgMToKKwkJbmFuZC0+bnJfcGFydGl0aW9ucyA9IEFSUkFZX1NJWkUoaml2ZV9pbWFnZUJfbmFuZF9wYXJ0KTsKKwkJbmFuZC0+cGFydGl0aW9ucyA9IGppdmVfaW1hZ2VCX25hbmRfcGFydDsKKwljYXNlIDA6CisJCS8qIHRoaXMgaXMgYWxyZWFkeSBzZXR1cCBpbiB0aGUgbmFuZCBpbmZvICovCisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXByaW50ayhLRVJOX0VSUiAiVW5rbm93biBtdGQgc2V0ICVsZCBzcGVjaWZpZWQsIgorCQkgICAgICAgInVzaW5nIGRlZmF1bHQuIiwgc2V0KTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogcGFyc2UgdGhlIG10ZHNldD0gb3B0aW9uIGdpdmVuIHRvIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lICovCitfX3NldHVwKCJtdGRzZXQ9Iiwgaml2ZV9tdGRzZXQpOworCisvKiBMQ0QgdGltaW5nIGFuZCBzZXR1cCAqLworCisjZGVmaW5lIExDRF9YUkVTCSAoMjQwKQorI2RlZmluZSBMQ0RfWVJFUwkgKDMyMCkKKyNkZWZpbmUgTENEX0xFRlRfTUFSR0lOICAoMTIpCisjZGVmaW5lIExDRF9SSUdIVF9NQVJHSU4gKDEyKQorI2RlZmluZSBMQ0RfTE9XRVJfTUFSR0lOICgxMikKKyNkZWZpbmUgTENEX1VQUEVSX01BUkdJTiAoMTIpCisjZGVmaW5lIExDRF9WU1lOQwkgKDIpCisjZGVmaW5lIExDRF9IU1lOQwkgKDIpCisKKyNkZWZpbmUgTENEX1JFRlJFU0gJICg2MCkKKworI2RlZmluZSBMQ0RfSFRPVCAoTENEX0hTWU5DICsgTENEX0xFRlRfTUFSR0lOICsgTENEX1hSRVMgKyBMQ0RfUklHSFRfTUFSR0lOKQorI2RlZmluZSBMQ0RfVlRPVCAoTENEX1ZTWU5DICsgTENEX0xPV0VSX01BUkdJTiArIExDRF9ZUkVTICsgTENEX1VQUEVSX01BUkdJTikKKworc3RydWN0IHMzYzI0MTBmYl9kaXNwbGF5IGppdmVfdmdnMjQzMmE0X2Rpc3BsYXlbXSA9IHsKKwlbMF0gPSB7CisJCS53aWR0aAkJPSBMQ0RfWFJFUywKKwkJLmhlaWdodAkJPSBMQ0RfWVJFUywKKwkJLnhyZXMJCT0gTENEX1hSRVMsCisJCS55cmVzCQk9IExDRF9ZUkVTLAorCQkubGVmdF9tYXJnaW4JPSBMQ0RfTEVGVF9NQVJHSU4sCisJCS5yaWdodF9tYXJnaW4JPSBMQ0RfUklHSFRfTUFSR0lOLAorCQkudXBwZXJfbWFyZ2luCT0gTENEX1VQUEVSX01BUkdJTiwKKwkJLmxvd2VyX21hcmdpbgk9IExDRF9MT1dFUl9NQVJHSU4sCisJCS5oc3luY19sZW4JPSBMQ0RfSFNZTkMsCisJCS52c3luY19sZW4JPSBMQ0RfVlNZTkMsCisKKwkJLnBpeGNsb2NrCT0gKDEwMDAwMDAwMDAwMDBMTCAvCisJCQkJICAgKExDRF9SRUZSRVNIICogTENEX0hUT1QgKiBMQ0RfVlRPVCkpLAorCisJCS5icHAJCT0gMTYsCisJCS50eXBlCQk9IChTM0MyNDEwX0xDRENPTjFfVEZUMTZCUFAgfAorCQkJCSAgIFMzQzI0MTBfTENEQ09OMV9URlQpLAorCisJCS5sY2Rjb241CT0gKFMzQzI0MTBfTENEQ09ONV9GUk01NjUgfAorCQkJCSAgIFMzQzI0MTBfTENEQ09ONV9JTlZWTElORSB8CisJCQkJICAgUzNDMjQxMF9MQ0RDT041X0lOVlZGUkFNRSB8CisJCQkJICAgUzNDMjQxMF9MQ0RDT041X0lOVlZERU4gfAorCQkJCSAgIFMzQzI0MTBfTENEQ09ONV9QV1JFTiksCisJfSwKK307CisKKy8qIHRvZG8gLSBwdXQgaW50byBncGlvIGhlYWRlciAqLworCisjZGVmaW5lIFMzQzI0MTBfR1BDQ09OX01BU0soeCkJKDMgPDwgKCh4KSAqIDIpKQorI2RlZmluZSBTM0MyNDEwX0dQRENPTl9NQVNLKHgpCSgzIDw8ICgoeCkgKiAyKSkKKworc3RydWN0IHMzYzI0MTBmYl9tYWNoX2luZm8gaml2ZV9sY2RfY29uZmlnID0geworCS5kaXNwbGF5cwkgPSBqaXZlX3ZnZzI0MzJhNF9kaXNwbGF5LAorCS5udW1fZGlzcGxheXMJID0gQVJSQVlfU0laRShqaXZlX3ZnZzI0MzJhNF9kaXNwbGF5KSwKKwkuZGVmYXVsdF9kaXNwbGF5ID0gMCwKKworCS8qIEVuYWJsZSBWRFsyLi43XSwgVkRbMTAuLjE1XSwgVkRbMTguLjIzXSBhbmQgVkNMSywgc3luY3MsIFZERU4KKwkgKiBhbmQgZGlzYWJsZSB0aGUgcHVsbCBkb3duIHJlc2lzdG9ycyBvbiBwaW5zIHdlIGFyZSB1c2luZyBmb3IgTENECisJICogZGF0YS4gKi8KKworCS5ncGN1cAkJPSAoMHhmIDw8IDEpIHwgKDB4M2YgPDwgMTApLAorCisJLmdwY2NvbgkJPSAoUzNDMjQxMF9HUEMxX1ZDTEsgICB8IFMzQzI0MTBfR1BDMl9WTElORSB8CisJCQkgICBTM0MyNDEwX0dQQzNfVkZSQU1FIHwgUzNDMjQxMF9HUEM0X1ZNIHwKKwkJCSAgIFMzQzI0MTBfR1BDMTBfVkQyICAgfCBTM0MyNDEwX0dQQzExX1ZEMyB8CisJCQkgICBTM0MyNDEwX0dQQzEyX1ZENCAgIHwgUzNDMjQxMF9HUEMxM19WRDUgfAorCQkJICAgUzNDMjQxMF9HUEMxNF9WRDYgICB8IFMzQzI0MTBfR1BDMTVfVkQ3KSwKKworCS5ncGNjb25fbWFzawk9IChTM0MyNDEwX0dQQ0NPTl9NQVNLKDEpICB8IFMzQzI0MTBfR1BDQ09OX01BU0soMikgIHwKKwkJCSAgIFMzQzI0MTBfR1BDQ09OX01BU0soMykgIHwgUzNDMjQxMF9HUENDT05fTUFTSyg0KSAgfAorCQkJICAgUzNDMjQxMF9HUENDT05fTUFTSygxMCkgfCBTM0MyNDEwX0dQQ0NPTl9NQVNLKDExKSB8CisJCQkgICBTM0MyNDEwX0dQQ0NPTl9NQVNLKDEyKSB8IFMzQzI0MTBfR1BDQ09OX01BU0soMTMpIHwKKwkJCSAgIFMzQzI0MTBfR1BDQ09OX01BU0soMTQpIHwgUzNDMjQxMF9HUENDT05fTUFTSygxNSkpLAorCisJLmdwZHVwCQk9ICgweDNmIDw8IDIpIHwgKDB4M2YgPDwgMTApLAorCisJLmdwZGNvbgkJPSAoUzNDMjQxMF9HUEQyX1ZEMTAgIHwgUzNDMjQxMF9HUEQzX1ZEMTEgfAorCQkJICAgUzNDMjQxMF9HUEQ0X1ZEMTIgIHwgUzNDMjQxMF9HUEQ1X1ZEMTMgfAorCQkJICAgUzNDMjQxMF9HUEQ2X1ZEMTQgIHwgUzNDMjQxMF9HUEQ3X1ZEMTUgfAorCQkJICAgUzNDMjQxMF9HUEQxMF9WRDE4IHwgUzNDMjQxMF9HUEQxMV9WRDE5IHwKKwkJCSAgIFMzQzI0MTBfR1BEMTJfVkQyMCB8IFMzQzI0MTBfR1BEMTNfVkQyMSB8CisJCQkgICBTM0MyNDEwX0dQRDE0X1ZEMjIgfCBTM0MyNDEwX0dQRDE1X1ZEMjMpLAorCisJLmdwZGNvbl9tYXNrCT0gKFMzQzI0MTBfR1BEQ09OX01BU0soMikgIHwgUzNDMjQxMF9HUERDT05fTUFTSygzKSB8CisJCQkgICBTM0MyNDEwX0dQRENPTl9NQVNLKDQpICB8IFMzQzI0MTBfR1BEQ09OX01BU0soNSkgfAorCQkJICAgUzNDMjQxMF9HUERDT05fTUFTSyg2KSAgfCBTM0MyNDEwX0dQRENPTl9NQVNLKDcpIHwKKwkJCSAgIFMzQzI0MTBfR1BEQ09OX01BU0soMTApIHwgUzNDMjQxMF9HUERDT05fTUFTSygxMSl8CisJCQkgICBTM0MyNDEwX0dQRENPTl9NQVNLKDEyKSB8IFMzQzI0MTBfR1BEQ09OX01BU0soMTMpfAorCQkJICAgUzNDMjQxMF9HUERDT05fTUFTSygxNCkgfCBTM0MyNDEwX0dQRENPTl9NQVNLKDE1KSksCit9OworCisvKiBJTEk5MzIwIHN1cHBvcnQuICovCisKK3N0YXRpYyB2b2lkIGppdmVfbGNtX3Jlc2V0KHVuc2lnbmVkIGludCBzZXQpCit7CisJcHJpbnRrKEtFUk5fREVCVUcgIiVzKCVkKVxuIiwgX19mdW5jX18sIHNldCk7CisKKwlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BHMTMsIHNldCk7CisJczNjMjQxMF9ncGlvX2NmZ3BpbihTM0MyNDEwX0dQRzEzLCBTM0MyNDEwX0dQSU9fT1VUUFVUKTsKK30KKworI3VuZGVmIExDRF9VUFBFUl9NQVJHSU4KKyNkZWZpbmUgTENEX1VQUEVSX01BUkdJTiAyCisKK3N0YXRpYyBzdHJ1Y3QgaWxpOTMyMF9wbGF0ZGF0YSBqaXZlX2xjbV9jb25maWcgPSB7CisJLmhzaXplCQk9IExDRF9YUkVTLAorCS52c2l6ZQkJPSBMQ0RfWVJFUywKKworCS5yZXNldAkJPSBqaXZlX2xjbV9yZXNldCwKKwkuc3VzcGVuZAk9IElMSTkzMjBfU1VTUEVORF9ERUVQLAorCisJLmVudHJ5X21vZGUJPSBJTEk5MzIwX0VOVFJZTU9ERV9JRCgzKSB8IElMSTkzMjBfRU5UUllNT0RFX0JHUiwKKwkuZGlzcGxheTIJPSAoSUxJOTMyMF9ESVNQTEFZMl9GUChMQ0RfVVBQRVJfTUFSR0lOKSB8CisJCQkgICBJTEk5MzIwX0RJU1BMQVkyX0JQKExDRF9MT1dFUl9NQVJHSU4pKSwKKwkuZGlzcGxheTMJPSAweDAsCisJLmRpc3BsYXk0CT0gMHgwLAorCS5yZ2JfaWYxCT0gKElMSTkzMjBfUkdCSUYxX1JJTV9SR0IxOCB8CisJCQkgICBJTEk5MzIwX1JHQklGMV9STSB8IElMSTkzMjBfUkdCSUYxX0NMS19SR0JJRiksCisJLnJnYl9pZjIJPSBJTEk5MzIwX1JHQklGMl9EUEwsCisJLmludGVyZmFjZTIJPSAweDAsCisJLmludGVyZmFjZTMJPSAweDMsCisJLmludGVyZmFjZTQJPSAoSUxJOTMyMF9JTlRFUkZBQ0U0X1JUTkUoMTYpIHwKKwkJCSAgIElMSTkzMjBfSU5URVJGQUNFNF9ESVZFKDEpKSwKKwkuaW50ZXJmYWNlNQk9IDB4MCwKKwkuaW50ZXJmYWNlNgk9IDB4MCwKK307CisKKy8qIExDRCBTUEkgc3VwcG9ydCAqLworCitzdGF0aWMgdm9pZCBqaXZlX2xjZF9zcGlfY2hpcHNlbGVjdChzdHJ1Y3QgczNjMjQxMF9zcGlncGlvX2luZm8gKnNwaSwgaW50IGNzKQoreworCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEI3LCBjcyA/IDAgOiAxKTsKK30KKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX3NwaWdwaW9faW5mbyBqaXZlX2xjZF9zcGkgPSB7CisJLmJ1c19udW0JPSAwLAorCS5waW5fY2xrCT0gUzNDMjQxMF9HUEc4LAorCS5waW5fbW9zaQk9IFMzQzI0MTBfR1BCOCwKKwkuY2hpcF9zZWxlY3QJPSBqaXZlX2xjZF9zcGlfY2hpcHNlbGVjdCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGppdmVfZGV2aWNlX2xjZHNwaSA9IHsKKwkubmFtZQkJPSAiczNjMjR4eC1zcGktZ3BpbyIsCisJLmlkCQk9IDEsCisJLm51bV9yZXNvdXJjZXMgID0gMCwKKwkuZGV2LnBsYXRmb3JtX2RhdGEgPSAmaml2ZV9sY2Rfc3BpLAorfTsKKworLyogV004NzUwIGF1ZGlvIGNvZGUgU1BJIGRlZmluaXRpb24gKi8KKworc3RhdGljIHZvaWQgaml2ZV93bTg3NTBfY2hpcHNlbGVjdChzdHJ1Y3QgczNjMjQxMF9zcGlncGlvX2luZm8gKnNwaSwgaW50IGNzKQoreworCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEgxMCwgY3MgPyAwIDogMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF9zcGlncGlvX2luZm8gaml2ZV93bTg3NTBfc3BpID0geworCS5idXNfbnVtCT0gMiwKKwkucGluX2Nsawk9IFMzQzI0MTBfR1BCNCwKKwkucGluX21vc2kJPSBTM0MyNDEwX0dQQjksCisJLmNoaXBfc2VsZWN0CT0gaml2ZV93bTg3NTBfY2hpcHNlbGVjdCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGppdmVfZGV2aWNlX3dtODc1MCA9IHsKKwkubmFtZQkJPSAiczNjMjR4eC1zcGktZ3BpbyIsCisJLmlkCQk9IDIsCisJLm51bV9yZXNvdXJjZXMgID0gMCwKKwkuZGV2LnBsYXRmb3JtX2RhdGEgPSAmaml2ZV93bTg3NTBfc3BpLAorfTsKKworLyogSklWRSBTUEkgZGV2aWNlcy4gKi8KKworc3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyBfX2luaXRkYXRhIGppdmVfc3BpX2RldnNbXSA9IHsKKwlbMF0gPSB7CisJCS5tb2RhbGlhcwk9ICJWR0cyNDMyQTQiLAorCQkuYnVzX251bQk9IDEsCisJCS5jaGlwX3NlbGVjdAk9IDAsCisJCS5tb2RlCQk9IFNQSV9NT0RFXzMsCS8qIENQT0w9MSwgQ1BIQT0xICovCisJCS5tYXhfc3BlZWRfaHoJPSAxMDAwMDAsCisJCS5wbGF0Zm9ybV9kYXRhCT0gJmppdmVfbGNtX2NvbmZpZywKKwl9LCB7CisJCS5tb2RhbGlhcwk9ICJXTTg3NTAiLAorCQkuYnVzX251bQk9IDIsCisJCS5jaGlwX3NlbGVjdAk9IDAsCisJCS5tb2RlCQk9IFNQSV9NT0RFXzAsCS8qIENQT0w9MCwgQ1BIQT0wICovCisJCS5tYXhfc3BlZWRfaHoJPSAxMDAwMDAsCisJfSwKK307CisKKy8qIEkyQyBidXMgYW5kIGRldmljZSBjb25maWd1cmF0aW9uLiAqLworCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfcGxhdGZvcm1faTJjIGppdmVfaTJjX2NmZyA9IHsKKwkubWF4X2ZyZXEJPSA4MCAqIDEwMDAsCisJLmJ1c19mcmVxCT0gNTAgKiAxMDAwLAorCS5mbGFncwkJPSBTM0NfSUlDRkxHX0ZJTFRFUiwKKwkuc2RhX2RlbGF5CT0gMiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gaml2ZV9pMmNfZGV2c1tdID0geworCVswXSA9IHsKKwkJSTJDX0JPQVJEX0lORk8oImxpczMwMmRsIiwgMHgxYyksCisJCS5pcnEJPSBJUlFfRUlOVDE0LAorCX0sCit9OworCisvKiBUaGUgcGxhdGZvcm0gZGV2aWNlcyBiZWluZyB1c2VkLiAqLworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqaml2ZV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKKwkmczNjX2RldmljZV91c2IsCisJJnMzY19kZXZpY2VfcnRjLAorCSZzM2NfZGV2aWNlX3dkdCwKKwkmczNjX2RldmljZV9pMmMsCisJJnMzY19kZXZpY2VfbGNkLAorCSZqaXZlX2RldmljZV9sY2RzcGksCisJJmppdmVfZGV2aWNlX3dtODc1MCwKKwkmczNjX2RldmljZV9uYW5kLAorCSZzM2NfZGV2aWNlX3VzYmdhZGdldCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF91ZGNfbWFjaF9pbmZvIGppdmVfdWRjX2NmZyBfX2luaXRkYXRhID0geworCS52YnVzX3Bpbgk9IFMzQzI0MTBfR1BHMSwJCS8qIGRldGVjdCBpcyBvbiBHUEcxICovCit9OworCisvKiBKaXZlIHBvd2VyIG1hbmFnZW1lbnQgZGV2aWNlICovCisKKyNpZmRlZiBDT05GSUdfUE0KK3N0YXRpYyBpbnQgaml2ZV9wbV9zdXNwZW5kKHN0cnVjdCBzeXNfZGV2aWNlICpzZCwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCS8qIFdyaXRlIHRoZSBtYWdpYyB2YWx1ZSB1LWJvb3QgdXNlcyB0byBjaGVjayBmb3IgcmVzdW1lIGludG8KKwkgKiB0aGUgSU5GT1JNMCByZWdpc3RlciwgYW5kIGVuc3VyZSBJTkZPUk0xIGlzIHNldCB0byB0aGUKKwkgKiBjb3JyZWN0IGFkZHJlc3MgdG8gcmVzdW1lIGZyb20uICovCisKKwlfX3Jhd193cml0ZWwoMHgyQkVELCBTM0MyNDEyX0lORk9STTApOworCV9fcmF3X3dyaXRlbCh2aXJ0X3RvX3BoeXMoczNjMjQxMF9jcHVfcmVzdW1lKSwgUzNDMjQxMl9JTkZPUk0xKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGppdmVfcG1fcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpzZCkKK3sKKwlfX3Jhd193cml0ZWwoMHgwLCBTM0MyNDEyX0lORk9STTApOworCXJldHVybiAwOworfQorCisjZWxzZQorI2RlZmluZSBqaXZlX3BtX3N1c3BlbmQgTlVMTAorI2RlZmluZSBqaXZlX3BtX3Jlc3VtZSBOVUxMCisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3Mgaml2ZV9wbV9zeXNjbGFzcyA9IHsKKwkubmFtZQkJPSAiaml2ZS1wbSIsCisJLnN1c3BlbmQJPSBqaXZlX3BtX3N1c3BlbmQsCisJLnJlc3VtZQkJPSBqaXZlX3BtX3Jlc3VtZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBqaXZlX3BtX3N5c2RldiA9IHsKKwkuY2xzCQk9ICZqaXZlX3BtX3N5c2NsYXNzLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGppdmVfbWFwX2lvKHZvaWQpCit7CisJczNjMjR4eF9pbml0X2lvKGppdmVfaW9kZXNjLCBBUlJBWV9TSVpFKGppdmVfaW9kZXNjKSk7CisJczNjMjR4eF9pbml0X2Nsb2NrcygxMjAwMDAwMCk7CisJczNjMjR4eF9pbml0X3VhcnRzKGppdmVfdWFydGNmZ3MsIEFSUkFZX1NJWkUoaml2ZV91YXJ0Y2ZncykpOworfQorCitzdGF0aWMgdm9pZCBqaXZlX3Bvd2VyX29mZih2b2lkKQoreworCXByaW50ayhLRVJOX0lORk8gInBvd2VyaW5nIHN5c3RlbSBkb3duLi4uXG4iKTsKKworCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEM1LCAxKTsKKwlzM2MyNDEwX2dwaW9fY2ZncGluKFMzQzI0MTBfR1BDNSwgUzNDMjQxMF9HUElPX09VVFBVVCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBqaXZlX21hY2hpbmVfaW5pdCh2b2lkKQoreworCS8qIHJlZ2lzdGVyIHN5c3RlbSBkZXZpY2VzIGZvciBtYW5hZ2luZyBsb3cgbGV2ZWwgc3VzcGVuZCAqLworCisJc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZqaXZlX3BtX3N5c2NsYXNzKTsKKwlzeXNkZXZfcmVnaXN0ZXIoJmppdmVfcG1fc3lzZGV2KTsKKworCS8qIHdyaXRlIG91ciBzbGVlcCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIElPLiBQdWxsIGRvd24gYWxsIHVudXNlZAorCSAqIElPLCBlbnN1cmUgdGhhdCB3ZSBoYXZlIHR1cm5lZCBvZmYgYWxsIHBlcmlwaGVyYWxzIHdlIGRvIG5vdAorCSAqIG5lZWQsIGFuZCBjb25maWd1cmUgdGhlIG9uZXMgd2UgZG8gbmVlZC4gKi8KKworCS8qIFBvcnQgQiBzbGVlcCAqLworCisJX19yYXdfd3JpdGVsKFMzQzI0MTJfU0xQQ09OX0lOKDApICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0hJR0goMikgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMykgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNikgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0hJR0goNykgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoOCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoOSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTApLCBTM0MyNDEyX0dQQlNMUENPTik7CisKKwkvKiBQb3J0IEMgc2xlZXAgKi8KKworCV9fcmF3X3dyaXRlbChTM0MyNDEyX1NMUENPTl9QVUxMKDApIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDEpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDIpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDMpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDQpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDUpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9MT1coNikgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDYpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDcpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDgpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDkpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDEwKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxMSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTIpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDEzKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxNCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTUpLCBTM0MyNDEyX0dQQ1NMUENPTik7CisKKwkvKiBQb3J0IEQgc2xlZXAgKi8KKworCV9fcmF3X3dyaXRlbChTM0MyNDEyX1NMUENPTl9BTExfUFVMTCwgUzNDMjQxMl9HUERTTFBDT04pOworCisJLyogUG9ydCBGIHNsZWVwICovCisKKwlfX3Jhd193cml0ZWwoUzNDMjQxMl9TTFBDT05fTE9XKDApICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fTE9XKDEpICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fTE9XKDIpICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fRUlOVCgzKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fRUlOVCg0KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fRUlOVCg1KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fRUlOVCg2KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fRUlOVCg3KSwgUzNDMjQxMl9HUEZTTFBDT04pOworCisJLyogUG9ydCBHIHNsZWVwICovCisKKwlfX3Jhd193cml0ZWwoUzNDMjQxMl9TTFBDT05fSU4oMCkgICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDEpICAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTigyKSAgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oMykgICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDQpICAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTig1KSAgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oNikgICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDcpICAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDgpICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg5KSAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDEwKSAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDExKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxMikgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTMpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTigxNCkgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxNSksIFMzQzI0MTJfR1BHU0xQQ09OKTsKKworCS8qIFBvcnQgSCBzbGVlcCAqLworCisJX19yYXdfd3JpdGVsKFMzQzI0MTJfU0xQQ09OX1BVTEwoMCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMikgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMykgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoNikgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDcpICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDgpICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoOSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDEwKSwgUzNDMjQxMl9HUEhTTFBDT04pOworCisJLyogaW5pdGlhbGlzZSB0aGUgcG93ZXIgbWFuYWdlbWVudCBub3cgd2UndmUgc2V0dXAgZXZlcnl0aGluZy4gKi8KKworCXMzYzI0MTBfcG1faW5pdCgpOworCisJczNjX2RldmljZV9uYW5kLmRldi5wbGF0Zm9ybV9kYXRhID0gJmppdmVfbmFuZF9pbmZvOworCisJLyogaW5pdGlhbGlzZSB0aGUgc3BpICovCisKKwlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BHMTMsIDApOworCXMzYzI0MTBfZ3Bpb19jZmdwaW4oUzNDMjQxMF9HUEcxMywgUzNDMjQxMF9HUElPX09VVFBVVCk7CisKKwlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BCNywgMSk7CisJczNjMjQxMF9ncGlvX2NmZ3BpbihTM0MyNDEwX0dQQjcsIFMzQzI0MTBfR1BJT19PVVRQVVQpOworCisJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQjYsIDApOworCXMzYzI0MTBfZ3Bpb19jZmdwaW4oUzNDMjQxMF9HUEI2LCBTM0MyNDEwX0dQSU9fT1VUUFVUKTsKKworCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEc4LCAxKTsKKwlzM2MyNDEwX2dwaW9fY2ZncGluKFMzQzI0MTBfR1BHOCwgUzNDMjQxMF9HUElPX09VVFBVVCk7CisKKwkvKiBpbml0aWFsaXNlIHRoZSBXTTg3NTAgc3BpICovCisKKwlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BIMTAsIDEpOworCXMzYzI0MTBfZ3Bpb19jZmdwaW4oUzNDMjQxMF9HUEgxMCwgUzNDMjQxMF9HUElPX09VVFBVVCk7CisKKwkvKiBUdXJuIG9mZiBzdXNwZW5kIG9uIGJvdGggVVNCIHBvcnRzLCBhbmQgc3dpdGNoIHRoZQorCSAqIHNlbGVjdGFibGUgVVNCIHBvcnQgdG8gVVNCIGRldmljZSBtb2RlLiAqLworCisJczNjMjQxMF9tb2RpZnlfbWlzY2NyKFMzQzI0MTBfTUlTQ0NSX1VTQkhPU1QgfAorCQkJICAgICAgUzNDMjQxMF9NSVNDQ1JfVVNCU1VTUE5EMCB8CisJCQkgICAgICBTM0MyNDEwX01JU0NDUl9VU0JTVVNQTkQxLCAweDApOworCisJczNjMjR4eF91ZGNfc2V0X3BsYXRkYXRhKCZqaXZlX3VkY19jZmcpOworCXMzYzI0eHhfZmJfc2V0X3BsYXRkYXRhKCZqaXZlX2xjZF9jb25maWcpOworCisJc3BpX3JlZ2lzdGVyX2JvYXJkX2luZm8oaml2ZV9zcGlfZGV2cywgQVJSQVlfU0laRShqaXZlX3NwaV9kZXZzKSk7CisKKwlzM2NfZGV2aWNlX2kyYy5kZXYucGxhdGZvcm1fZGF0YSA9ICZqaXZlX2kyY19jZmc7CisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgaml2ZV9pMmNfZGV2cywgQVJSQVlfU0laRShqaXZlX2kyY19kZXZzKSk7CisKKwlwbV9wb3dlcl9vZmYgPSBqaXZlX3Bvd2VyX29mZjsKKworCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGppdmVfZGV2aWNlcywgQVJSQVlfU0laRShqaXZlX2RldmljZXMpKTsKK30KKworTUFDSElORV9TVEFSVChKSVZFLCAiSklWRSIpCisJLyogTWFpbnRhaW5lcjogQmVuIERvb2tzIDxiZW5AZmx1ZmYub3JnPiAqLworCS5waHlzX2lvCT0gUzNDMjQxMF9QQV9VQVJULAorCS5pb19wZ19vZmZzdAk9ICgoKHUzMilTM0MyNFhYX1ZBX1VBUlQpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBTM0MyNDEwX1NEUkFNX1BBICsgMHgxMDAsCisKKwkuaW5pdF9pcnEJPSBzM2MyNHh4X2luaXRfaXJxLAorCS5tYXBfaW8JCT0gaml2ZV9tYXBfaW8sCisJLmluaXRfbWFjaGluZQk9IGppdmVfbWFjaGluZV9pbml0LAorCS50aW1lcgkJPSAmczNjMjR4eF90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0NDAvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9LY29uZmlnCmluZGV4IGYxOTE1YmQuLjI1ZGUwNDIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9LY29uZmlnCkBAIC0yOSw2ICsyOSw3IEBACiAJYm9vbCAiU2ltdGVjIEVsZWN0cm9uaWNzIEFOVUJJUyIKIAlzZWxlY3QgQ1BVX1MzQzI0NDAKIAlzZWxlY3QgUE1fU0lNVEVDIGlmIFBNCisJc2VsZWN0IEhBVkVfUEFUQV9QTEFURk9STQogCWhlbHAKIAkgIFNheSBZIGhlcmUgaWYgeW91IGFyZSB1c2luZyB0aGUgU2ltdGVjIEVsZWN0cm9uaWNzIEFOVUJJUwogCSAgZGV2ZWxvcG1lbnQgc3lzdGVtCkBAIC02Nyw2ICs2OCwxMSBAQAogCWRlZmF1bHQgeSBpZiBBUkNIX1MzQzI0NDAKIAlzZWxlY3QgQ1BVX1MzQzI0NDAKIAorY29uZmlnIE1BQ0hfQVQyNDQwRVZCCisJYm9vbCAiQXZhbnRlY2ggQVQyNDQwRVZCIGRldmVsb3BtZW50IGJvYXJkIgorCXNlbGVjdCBDUFVfUzNDMjQ0MAorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IGFyZSB1c2luZyB0aGUgQVQyNDQwRVZCIGRldmVsb3BtZW50IGJvYXJkCiAKIGVuZG1lbnUKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL01ha2VmaWxlCmluZGV4IGM4MWVkNjIuLjBiNDQ0MGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvTWFrZWZpbGUKQEAgLTIxLDMgKzIxLDQgQEAKIG9iai0kKENPTkZJR19NQUNIX1JYMzcxNSkJKz0gbWFjaC1yeDM3MTUubwogb2JqLSQoQ09ORklHX0FSQ0hfUzNDMjQ0MCkJKz0gbWFjaC1zbWRrMjQ0MC5vCiBvYmotJChDT05GSUdfTUFDSF9ORVhDT0RFUl8yNDQwKSArPSBtYWNoLW5leGNvZGVyLm8KK29iai0kKENPTkZJR19NQUNIX0FUMjQ0MEVWQikgKz0gbWFjaC1hdDI0NDBldmIubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtYW51YmlzLmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1hbnViaXMuYwppbmRleCA0NzI1ODkxLi4wOWFmOGIyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1hbnViaXMuYworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1hbnViaXMuYwpAQCAtMSw2ICsxLDYgQEAKIC8qIGxpbnV4L2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLWFudWJpcy5jCiAgKgotICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgU2ltdGVjIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSwyMDA4IFNpbXRlYyBFbGVjdHJvbmljcwogICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KICAqCUJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KICAqCkBAIC0xNyw2ICsxNyw4IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAKICNpbmNsdWRlIDxsaW51eC9zbTUwMS5oPgogI2luY2x1ZGUgPGxpbnV4L3NtNTAxLXJlZ3MuaD4KQEAgLTI0MSwxNCArMjQzLDE4IEBACiAKIC8qIElERSBjaGFubmVscyAqLwogCitzdHJ1Y3QgcGF0YV9wbGF0Zm9ybV9pbmZvIGFudWJpc19pZGVfcGxhdGRhdGEgPSB7CisJLmlvcG9ydF9zaGlmdAk9IDUsCit9OworCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGFudWJpc19pZGUwX3Jlc291cmNlW10gPSB7CiAJewogCQkuc3RhcnQJPSBTM0MyNDEwX0NTMywKIAkJLmVuZAk9IFMzQzI0MTBfQ1MzICsgKDgqMzIpIC0gMSwKIAkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCiAJfSwgewotCQkuc3RhcnQJPSBTM0MyNDEwX0NTMyArICgxPDwyNiksCi0JCS5lbmQJPSBTM0MyNDEwX0NTMyArICgxPDwyNikgKyAoOCozMikgLSAxLAorCQkuc3RhcnQJPSBTM0MyNDEwX0NTMyArICgxPDwyNikgKyAoNiozMiksCisJCS5lbmQJPSBTM0MyNDEwX0NTMyArICgxPDwyNikgKyAoNyozMikgLSAxLAogCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKIAl9LCB7CiAJCS5zdGFydAk9IElSUV9JREUwLApAQCAtMjU4LDEwICsyNjQsMTQgQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGFudWJpc19kZXZpY2VfaWRlMCA9IHsKLQkubmFtZQkJPSAic2ltdGVjLWlkZSIsCisJLm5hbWUJCT0gInBhdGFfcGxhdGZvcm0iLAogCS5pZAkJPSAwLAogCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShhbnViaXNfaWRlMF9yZXNvdXJjZSksCiAJLnJlc291cmNlCT0gYW51YmlzX2lkZTBfcmVzb3VyY2UsCisJLmRldgk9IHsKKwkJLnBsYXRmb3JtX2RhdGEgPSAmYW51YmlzX2lkZV9wbGF0ZGF0YSwKKwkJLmNvaGVyZW50X2RtYV9tYXNrID0gfjAsCisJfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYW51YmlzX2lkZTFfcmVzb3VyY2VbXSA9IHsKQEAgLTI3MCw4ICsyODAsOCBAQAogCQkuZW5kCT0gUzNDMjQxMF9DUzQgKyAoOCozMikgLSAxLAogCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKIAl9LCB7Ci0JCS5zdGFydAk9IFMzQzI0MTBfQ1M0ICsgKDE8PDI2KSwKLQkJLmVuZAk9IFMzQzI0MTBfQ1M0ICsgKDE8PDI2KSArICg4KjMyKSAtIDEsCisJCS5zdGFydAk9IFMzQzI0MTBfQ1M0ICsgKDE8PDI2KSArICg2KjMyKSwKKwkJLmVuZAk9IFMzQzI0MTBfQ1M0ICsgKDE8PDI2KSArICg3KjMyKSAtIDEsCiAJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAogCX0sIHsKIAkJLnN0YXJ0CT0gSVJRX0lERTAsCkBAIC0yODAsMTIgKzI5MCwxNSBAQAogCX0sCiB9OwogCi0KIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGFudWJpc19kZXZpY2VfaWRlMSA9IHsKLQkubmFtZQkJPSAic2ltdGVjLWlkZSIsCisJLm5hbWUJCT0gInBhdGFfcGxhdGZvcm0iLAogCS5pZAkJPSAxLAogCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShhbnViaXNfaWRlMV9yZXNvdXJjZSksCiAJLnJlc291cmNlCT0gYW51YmlzX2lkZTFfcmVzb3VyY2UsCisJLmRldgk9IHsKKwkJLnBsYXRmb3JtX2RhdGEgPSAmYW51YmlzX2lkZV9wbGF0ZGF0YSwKKwkJLmNvaGVyZW50X2RtYV9tYXNrID0gfjAsCisJfSwKIH07CiAKIC8qIEFzaXggQVg4ODc5NiAxMC8xMDAgZXRoZXJuZXQgY29udHJvbGxlciAqLwpAQCAtNDA5LDYgKzQyMiwxNSBAQAogCSZzM2MyNHh4X3VjbGssCiB9OwogCisvKiBJMkMgZGV2aWNlcy4gKi8KKworc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBhbnViaXNfaTJjX2RldnNbXSBfX2luaXRkYXRhID0geworCXsKKwkJSTJDX0JPQVJEX0lORk8oInRwczY1MDExIiwgMHg0OCksCisJCS5pcnEJPSBJUlFfRUlOVDIwLAorCX0KK307CisKIHN0YXRpYyB2b2lkIF9faW5pdCBhbnViaXNfbWFwX2lvKHZvaWQpCiB7CiAJLyogaW5pdGlhbGlzZSB0aGUgY2xvY2tzICovCkBAIC00NDgsNiArNDcwLDkgQEAKIHN0YXRpYyB2b2lkIF9faW5pdCBhbnViaXNfaW5pdCh2b2lkKQogewogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGFudWJpc19kZXZpY2VzLCBBUlJBWV9TSVpFKGFudWJpc19kZXZpY2VzKSk7CisKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCBhbnViaXNfaTJjX2RldnMsCisJCQkJQVJSQVlfU0laRShhbnViaXNfaTJjX2RldnMpKTsKIH0KIAogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1hdDI0NDBldmIuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLWF0MjQ0MGV2Yi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1ZTNjN2YKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1hdDI0NDBldmIuYwpAQCAtMCwwICsxLDE5OCBAQAorLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtYXQyNDQwZXZiLmMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggUmFtYXggTG8gPHJhbWF4bG9AZ21haWwuY29tPgorICogICAgICBCYXNlZCBvbiBtYWNoLWFudWJpcy5jIGJ5IEJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KKyAqICAgICAgYW5kIG1vZGlmaWNhdGlvbnMgYnkgU0JaIDxzYnpAc3BndWkub3JnPiBhbmQKKyAqICAgICAgV2VpYmluZyA8aHR0cDovL3dlaWJpbmcuYmxvZ2J1cy5jb20+CisgKgorICogRm9yIHByb2R1Y3QgaW5mb3JtYXRpb24sIHZpc2l0IGh0dHA6Ly93d3cuYXJtOWUuY29tLworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtOTAwMC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLW1lbS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtbGNkLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL25hbmQuaD4KKworI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kX2VjYy5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2Nsb2NrLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9kZXZzLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jcHUuaD4KKworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBhdDI0NDBldmJfaW9kZXNjW10gX19pbml0ZGF0YSA9IHsKKwkvKiBOb3RoaW5nIGhlcmUgKi8KK307CisKKyNkZWZpbmUgVUNPTiBTM0MyNDEwX1VDT05fREVGQVVMVAorI2RlZmluZSBVTENPTiAoUzNDMjQxMF9MQ09OX0NTOCB8IFMzQzI0MTBfTENPTl9QTk9ORSkKKyNkZWZpbmUgVUZDT04gKFMzQzI0MTBfVUZDT05fUlhUUklHOCB8IFMzQzI0MTBfVUZDT05fRklGT01PREUpCisKK3N0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyBhdDI0NDBldmJfc2VyaWFsX2Nsb2Nrc1tdID0geworCVswXSA9IHsKKwkJLm5hbWUJCT0gInVjbGsiLAorCQkuZGl2aXNvcgk9IDEsCisJCS5taW5fYmF1ZAk9IDAsCisJCS5tYXhfYmF1ZAk9IDAsCisJfSwKKwlbMV0gPSB7CisJCS5uYW1lCQk9ICJwY2xrIiwKKwkJLmRpdmlzb3IJPSAxLAorCQkubWluX2JhdWQJPSAwLAorCQkubWF4X2JhdWQJPSAwLAorCX0KK307CisKKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgYXQyNDQwZXZiX3VhcnRjZmdzW10gX19pbml0ZGF0YSA9IHsKKwlbMF0gPSB7CisJCS5od3BvcnQJICAgICA9IDAsCisJCS5mbGFncwkgICAgID0gMCwKKwkJLnVjb24JICAgICA9IFVDT04sCisJCS51bGNvbgkgICAgID0gVUxDT04sCisJCS51ZmNvbgkgICAgID0gVUZDT04sCisJCS5jbG9ja3MJICAgICA9IGF0MjQ0MGV2Yl9zZXJpYWxfY2xvY2tzLAorCQkuY2xvY2tzX3NpemUgPSBBUlJBWV9TSVpFKGF0MjQ0MGV2Yl9zZXJpYWxfY2xvY2tzKSwKKwl9LAorCVsxXSA9IHsKKwkJLmh3cG9ydAkgICAgID0gMSwKKwkJLmZsYWdzCSAgICAgPSAwLAorCQkudWNvbgkgICAgID0gVUNPTiwKKwkJLnVsY29uCSAgICAgPSBVTENPTiwKKwkJLnVmY29uCSAgICAgPSBVRkNPTiwKKwkJLmNsb2NrcwkgICAgID0gYXQyNDQwZXZiX3NlcmlhbF9jbG9ja3MsCisJCS5jbG9ja3Nfc2l6ZSA9IEFSUkFZX1NJWkUoYXQyNDQwZXZiX3NlcmlhbF9jbG9ja3MpLAorCX0sCit9OworCisvKiBOQU5EIEZsYXNoIG9uIEFUMjQ0MEVWQiBib2FyZCAqLworCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gYXQyNDQwZXZiX2RlZmF1bHRfbmFuZF9wYXJ0W10gPSB7CisJWzBdID0geworCQkubmFtZQk9ICJCb290IEFnZW50IiwKKwkJLnNpemUJPSBTWl8yNTZLLAorCQkub2Zmc2V0CT0gMCwKKwl9LAorCVsxXSA9IHsKKwkJLm5hbWUJPSAiS2VybmVsIiwKKwkJLnNpemUJPSBTWl8yTSwKKwkJLm9mZnNldAk9IFNaXzI1NkssCisJfSwKKwlbMl0gPSB7CisJCS5uYW1lCT0gIlJvb3QiLAorCQkub2Zmc2V0CT0gU1pfMjU2SyArIFNaXzJNLAorCQkuc2l6ZQk9IE1URFBBUlRfU0laX0ZVTEwsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF9uYW5kX3NldCBhdDI0NDBldmJfbmFuZF9zZXRzW10gPSB7CisJWzBdID0geworCQkubmFtZQkJPSAibmFuZCIsCisJCS5ucl9jaGlwcwk9IDEsCisJCS5ucl9wYXJ0aXRpb25zCT0gQVJSQVlfU0laRShhdDI0NDBldmJfZGVmYXVsdF9uYW5kX3BhcnQpLAorCQkucGFydGl0aW9ucwk9IGF0MjQ0MGV2Yl9kZWZhdWx0X25hbmRfcGFydCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX3BsYXRmb3JtX25hbmQgYXQyNDQwZXZiX25hbmRfaW5mbyA9IHsKKwkudGFjbHMJCT0gMjUsCisJLnR3cnBoMAkJPSA1NSwKKwkudHdycGgxCQk9IDQwLAorCS5ucl9zZXRzCT0gQVJSQVlfU0laRShhdDI0NDBldmJfbmFuZF9zZXRzKSwKKwkuc2V0cwkJPSBhdDI0NDBldmJfbmFuZF9zZXRzLAorfTsKKworLyogRE05MDAwQUVQIDEwLzEwMCBldGhlcm5ldCBjb250cm9sbGVyICovCisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYXQyNDQwZXZiX2RtOWtfcmVzb3VyY2VbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydCA9IFMzQzI0MTBfQ1MzLAorCQkuZW5kICAgPSBTM0MyNDEwX0NTMyArIDMsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydCA9IFMzQzI0MTBfQ1MzICsgNCwKKwkJLmVuZCAgID0gUzNDMjQxMF9DUzMgKyA3LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTQorCX0sCisJWzJdID0geworCQkuc3RhcnQgPSBJUlFfRUlOVDcsCisJCS5lbmQgICA9IElSUV9FSU5UNywKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEgfCBJT1JFU09VUkNFX0lSUV9ISUdIRURHRSwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IGRtOTAwMF9wbGF0X2RhdGEgYXQyNDQwZXZiX2RtOWtfcGRhdGEgPSB7CisJLmZsYWdzCQk9IChETTkwMDBfUExBVEZfMTZCSVRPTkxZIHwgRE05MDAwX1BMQVRGX05PX0VFUFJPTSksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBhdDI0NDBldmJfZGV2aWNlX2V0aCA9IHsKKwkubmFtZQkJPSAiZG05MDAwIiwKKwkuaWQJCT0gLTEsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGF0MjQ0MGV2Yl9kbTlrX3Jlc291cmNlKSwKKwkucmVzb3VyY2UJPSBhdDI0NDBldmJfZG05a19yZXNvdXJjZSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmYXQyNDQwZXZiX2RtOWtfcGRhdGEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphdDI0NDBldmJfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CisJJnMzY19kZXZpY2VfdXNiLAorCSZzM2NfZGV2aWNlX3dkdCwKKwkmczNjX2RldmljZV9hZGMsCisJJnMzY19kZXZpY2VfaTJjLAorCSZzM2NfZGV2aWNlX3J0YywKKwkmczNjX2RldmljZV9uYW5kLAorCSZhdDI0NDBldmJfZGV2aWNlX2V0aCwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBhdDI0NDBldmJfbWFwX2lvKHZvaWQpCit7CisJczNjX2RldmljZV9uYW5kLmRldi5wbGF0Zm9ybV9kYXRhID0gJmF0MjQ0MGV2Yl9uYW5kX2luZm87CisKKwlzM2MyNHh4X2luaXRfaW8oYXQyNDQwZXZiX2lvZGVzYywgQVJSQVlfU0laRShhdDI0NDBldmJfaW9kZXNjKSk7CisJczNjMjR4eF9pbml0X2Nsb2NrcygxNjkzNDQwMCk7CisJczNjMjR4eF9pbml0X3VhcnRzKGF0MjQ0MGV2Yl91YXJ0Y2ZncywgQVJSQVlfU0laRShhdDI0NDBldmJfdWFydGNmZ3MpKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGF0MjQ0MGV2Yl9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fYWRkX2RldmljZXMoYXQyNDQwZXZiX2RldmljZXMsIEFSUkFZX1NJWkUoYXQyNDQwZXZiX2RldmljZXMpKTsKK30KKworCitNQUNISU5FX1NUQVJUKEFUMjQ0MEVWQiwgIkFUMjQ0MEVWQiIpCisJLnBoeXNfaW8JPSBTM0MyNDEwX1BBX1VBUlQsCisJLmlvX3BnX29mZnN0CT0gKCgodTMyKVMzQzI0WFhfVkFfVUFSVCkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IFMzQzI0MTBfU0RSQU1fUEEgKyAweDEwMCwKKwkubWFwX2lvCQk9IGF0MjQ0MGV2Yl9tYXBfaW8sCisJLmluaXRfbWFjaGluZQk9IGF0MjQ0MGV2Yl9pbml0LAorCS5pbml0X2lycQk9IHMzYzI0eHhfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZzM2MyNHh4X3RpbWVyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLW9zaXJpcy5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtb3NpcmlzLmMKaW5kZXggOGE4YWNkYi4uYWY5OTZiMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtb3NpcmlzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtb3NpcmlzLmMKQEAgLTEsNiArMSw2IEBACiAvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1vc2lyaXMuYwogICoKLSAqIENvcHlyaWdodCAoYykgMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoYykgMjAwNSwyMDA4IFNpbXRlYyBFbGVjdHJvbmljcwogICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KICAqCUJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KICAqCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KIAogI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KICNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KQEAgLTMyMiw2ICszMjMsMTUgQEAKIAkuY2xzCQk9ICZvc2lyaXNfcG1fc3lzY2xhc3MsCiB9OwogCisvKiBJMkMgZGV2aWNlcyBmaXR0ZWQuICovCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gb3NpcmlzX2kyY19kZXZzW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCUkyQ19CT0FSRF9JTkZPKCJ0cHM2NTAxMSIsIDB4NDgpLAorCQkuaXJxCT0gSVJRX0VJTlQyMCwKKwl9LAorfTsKKwogLyogU3RhbmRhcmQgT3NpcmlzIGRldmljZXMgKi8KIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9zaXJpc19kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKQEAgLTM4OCw2ICszOTgsOSBAQAogCXN5c2Rldl9jbGFzc19yZWdpc3Rlcigmb3NpcmlzX3BtX3N5c2NsYXNzKTsKIAlzeXNkZXZfcmVnaXN0ZXIoJm9zaXJpc19wbV9zeXNkZXYpOwogCisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgb3NpcmlzX2kyY19kZXZzLAorCQkJCUFSUkFZX1NJWkUob3NpcmlzX2kyY19kZXZzKSk7CisKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhvc2lyaXNfZGV2aWNlcywgQVJSQVlfU0laRShvc2lyaXNfZGV2aWNlcykpOwogfTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQzL2Nsb2NrLmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDMvY2xvY2suYwppbmRleCBiNDJmOTU2Li4xN2YwNjRmIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0NDMvY2xvY2suYworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDMvY2xvY2suYwpAQCAtODEsNyArODEsNyBAQAogCWVsc2UKIAkJY2xrY29uICY9IH5jbG9ja3M7CiAKLQlfX3Jhd193cml0ZWwoY2xrY29uLCBTM0MyNDQzX0hDTEtDT04pOworCV9fcmF3X3dyaXRlbChjbGtjb24sIFMzQzI0NDNfUENMS0NPTik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIyMSw3ICsyMjEsNiBAQAogCS5nZXRfcmF0ZQk9IHMzYzI0NDNfZ2V0cmF0ZV9tZGl2Y2xrLAogfTsKIAotCiBzdGF0aWMgaW50IHMzYzI0NDNfc2V0cGFyZW50X21zeXNjbGsoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpwYXJlbnQpCiB7CiAJdW5zaWduZWQgbG9uZyBjbGtzcmMgPSBfX3Jhd19yZWFkbChTM0MyNDQzX0NMS1NSQyk7CkBAIC0yNDksNiArMjQ4LDQ2IEBACiAJLnNldF9wYXJlbnQJPSBzM2MyNDQzX3NldHBhcmVudF9tc3lzY2xrLAogfTsKIAorLyogYXJtZGl2CisgKgorICogdGhpcyBjbG9jayBpcyBzb3VyY2VkIGZyb20gbXN5c2NsayBhbmQgY2FuIGhhdmUgYSBudW1iZXIgb2YKKyAqIGRpdmlkZXIgdmFsdWVzIGFwcGxpZWQgdG8gaXQgdG8gdGhlbiBiZSBmZWQgaW50byBhcm1jbGsuCisqLworCitzdGF0aWMgc3RydWN0IGNsayBjbGtfYXJtZGl2ID0geworCS5uYW1lCQk9ICJhcm1kaXYiLAorCS5pZAkJPSAtMSwKKwkucGFyZW50CQk9ICZjbGtfbXN5c2NsaywKK307CisKKy8qIGFybWNsaworICoKKyAqIHRoaXMgaXMgdGhlIGNsb2NrIGZlZCBpbnRvIHRoZSBBUk0gY29yZSBpdHNlbGYsIGVpdGhlciBmcm9tCisgKiBhcm1kaXYgb3IgZnJvbSBoY2xrLgorICovCisKK3N0YXRpYyBpbnQgczNjMjQ0M19zZXRwYXJlbnRfYXJtY2xrKHN0cnVjdCBjbGsgKmNsaywgc3RydWN0IGNsayAqcGFyZW50KQoreworCXVuc2lnbmVkIGxvbmcgY2xrZGl2MDsKKworCWNsa2RpdjAgPSBfX3Jhd19yZWFkbChTM0MyNDQzX0NMS0RJVjApOworCisJaWYgKHBhcmVudCA9PSAmY2xrX2FybWRpdikKKwkJY2xrZGl2MCAmPSB+UzNDMjQ0M19DTEtESVYwX0RWUzsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmNsa19oKQorCQljbGtkaXYwIHw9IFMzQzI0NDNfQ0xLRElWMF9EVlM7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKKworCV9fcmF3X3dyaXRlbChjbGtkaXYwLCBTM0MyNDQzX0NMS0RJVjApOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGNsayBjbGtfYXJtID0geworCS5uYW1lCQk9ICJhcm1jbGsiLAorCS5pZAkJPSAtMSwKKwkuc2V0X3BhcmVudAk9IHMzYzI0NDNfc2V0cGFyZW50X2FybWNsaywKK307CiAKIC8qIGVzeXNjbGsKICAqCkBAIC02MzksNiArNjc4LDI5IEBACiAJLnJvdW5kX3JhdGUJPSBzM2MyNDQzX3JvdW5kcmF0ZV9jbGtzcmMyNTYsCiB9OwogCisvKiBwcmVkaXYKKyAqCisgKiB0aGlzIGRpdmlkZXMgdGhlIG1zeXNjbGsgZG93biB0byBwYXNzIHRvIGgvcC9ldGMuCisgKi8KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgczNjMjQ0M19wcmVkaXZfZ2V0cmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyByYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwl1bnNpZ25lZCBsb25nIGNsa2RpdjAgPSBfX3Jhd19yZWFkbChTM0MyNDQzX0NMS0RJVjApOworCisJY2xrZGl2MCAmPSBTM0MyNDQzX0NMS0RJVjBfUFJFRElWX01BU0s7CisJY2xrZGl2MCA+Pj0gUzNDMjQ0M19DTEtESVYwX1BSRURJVl9TSElGVDsKKworCXJldHVybiByYXRlIC8gKGNsa2RpdjAgKyAxKTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgY2xrX3ByZWRpdiA9IHsKKwkubmFtZQkJPSAicHJlZGl2IiwKKwkuaWQJCT0gLTEsCisJLnBhcmVudAkJPSAmY2xrX21zeXNjbGssCisJLmdldF9yYXRlCT0gczNjMjQ0M19wcmVkaXZfZ2V0cmF0ZSwKK307CisKIC8qIHN0YW5kYXJkIGNsb2NrIGRlZmluaXRpb25zICovCiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIGluaXRfY2xvY2tzX2Rpc2FibGVbXSA9IHsKQEAgLTg4Nyw2ICs5NDksMTUgQEAKIAl9CiAKIAljbGtfaW5pdF9zZXRfcGFyZW50KCZjbGtfbXN5c2NsaywgcGFyZW50KTsKKworCS8qIGFybSAqLworCisJaWYgKF9fcmF3X3JlYWRsKFMzQzI0NDNfQ0xLRElWMCkgJiBTM0MyNDQzX0NMS0RJVjBfRFZTKQorCQlwYXJlbnQgPSAmY2xrX2g7CisJZWxzZQorCQlwYXJlbnQgPSAmY2xrX2FybWRpdjsKKworCWNsa19pbml0X3NldF9wYXJlbnQoJmNsa19hcm0sIHBhcmVudCk7CiB9CiAKIC8qIGFybWRpdiBkaXZpc29yIHRhYmxlICovCkBAIC05MDksMTAgKzk4MCw5IEBACiAJcmV0dXJuIGFybWRpdltjbGtjb24wID4+IFMzQzI0NDNfQ0xLRElWMF9BUk1ESVZfU0hJRlRdOwogfQogCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgczNjMjQ0M19nZXRfcHJlZGl2KHVuc2lnbmVkIGxvbmcgY2xrY29uMCkKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBzM2MyNDQzX2dldF9oZGl2KHVuc2lnbmVkIGxvbmcgY2xrY29uMCkKIHsKLQljbGtjb24wICY9IFMzQzI0NDNfQ0xLRElWMF9QUkVESVZfTUFTSzsKLQljbGtjb24wID4+PSBTM0MyNDQzX0NMS0RJVjBfUFJFRElWX1NISUZUOworCWNsa2NvbjAgJj0gUzNDMjQ0M19DTEtESVYwX0hDTEtESVZfTUFTSzsKIAogCXJldHVybiBjbGtjb24wICsgMTsKIH0KQEAgLTkzNiw2ICsxMDA2LDkgQEAKIAkmY2xrX2hzc3BpLAogCSZjbGtfaHNtbWNfZGl2LAogCSZjbGtfaHNtbWMsCisJJmNsa19hcm1kaXYsCisJJmNsa19hcm0sCisJJmNsa19wcmVkaXYsCiB9OwogCiB2b2lkIF9faW5pdCBzM2MyNDQzX2luaXRfY2xvY2tzKGludCB4dGFsKQpAQCAtOTUxLDEwICsxMDI0LDE2IEBACiAJaW50IHJldDsKIAlpbnQgcHRyOwogCisJLyogczNjMjQ0MyBwYXJlbnRzIGggYW5kIHAgY2xvY2tzIGZyb20gcHJlZGl2ICovCisJY2xrX2gucGFyZW50ID0gJmNsa19wcmVkaXY7CisJY2xrX3AucGFyZW50ID0gJmNsa19wcmVkaXY7CisKIAlwbGwgPSBzM2MyNDQzX2dldF9tcGxsKG1wbGxjb24sIHh0YWwpOworCWNsa19tc3lzY2xrLnJhdGUgPSBwbGw7CiAKIAlmY2xrID0gcGxsIC8gczNjMjQ0M19mY2xrX2RpdihjbGtkaXYwKTsKLQloY2xrID0gZmNsayAvIHMzYzI0NDNfZ2V0X3ByZWRpdihjbGtkaXYwKTsKKwloY2xrID0gczNjMjQ0M19wcmVkaXZfZ2V0cmF0ZSgmY2xrX3ByZWRpdik7CisJaGNsayA9IGhjbGsgLyBzM2MyNDQzX2dldF9oZGl2KGNsa2RpdjApOwogCWhjbGsgPSBoY2xrIC8gKChjbGtkaXYwICYgUzNDMjQ0M19DTEtESVYwX0hBTEZfSENMSykgPyAyIDogMSk7CiAgCXBjbGsgPSBoY2xrIC8gKChjbGtkaXYwICYgUzNDMjQ0M19DTEtESVYwX0hBTEZfUENMSykgPyAyIDogMSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL0tjb25maWcgYi9hcmNoL2FybS9tbS9LY29uZmlnCmluZGV4IDMzZWQwNDguLjNhNmM4ZWMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbW0vS2NvbmZpZwpAQCAtMTgwLDggKzE4MCwyMSBAQAogIyBBUk05MjZUCiBjb25maWcgQ1BVX0FSTTkyNlQKIAlib29sICJTdXBwb3J0IEFSTTkyNlQgcHJvY2Vzc29yIgotCWRlcGVuZHMgb24gQVJDSF9JTlRFR1JBVE9SIHx8IEFSQ0hfVkVSU0FUSUxFX1BCIHx8IE1BQ0hfVkVSU0FUSUxFX0FCIHx8IEFSQ0hfT01BUDczMCB8fCBBUkNIX09NQVAxNlhYIHx8IE1BQ0hfUkVBTFZJRVdfRUIgfHwgQVJDSF9QTlg0MDA4IHx8IEFSQ0hfTkVUWCB8fCBDUFVfUzNDMjQxMiB8fCBBUkNIX0FUOTFTQU05MjYwIHx8IEFSQ0hfQVQ5MVNBTTkyNjEgfHwgQVJDSF9BVDkxU0FNOTI2MyB8fCBBUkNIX0FUOTFTQU05UkwgfHwgQVJDSF9BVDkxQ0FQOSB8fCBBUkNIX05TOVhYWCB8fCBBUkNIX0RBVklOQ0kKLQlkZWZhdWx0IHkgaWYgQVJDSF9WRVJTQVRJTEVfUEIgfHwgTUFDSF9WRVJTQVRJTEVfQUIgfHwgQVJDSF9PTUFQNzMwIHx8IEFSQ0hfT01BUDE2WFggfHwgQVJDSF9QTlg0MDA4IHx8IEFSQ0hfTkVUWCB8fCBDUFVfUzNDMjQxMiB8fCBBUkNIX0FUOTFTQU05MjYwIHx8IEFSQ0hfQVQ5MVNBTTkyNjEgfHwgQVJDSF9BVDkxU0FNOTI2MyB8fCBBUkNIX0FUOTFTQU05UkwgfHwgQVJDSF9BVDkxQ0FQOSB8fCBBUkNIX05TOVhYWCB8fCBBUkNIX0RBVklOQ0kKKwlkZXBlbmRzIG9uIEFSQ0hfSU5URUdSQVRPUiB8fCBBUkNIX1ZFUlNBVElMRV9QQiB8fCBcCisJCU1BQ0hfVkVSU0FUSUxFX0FCIHx8IEFSQ0hfT01BUDczMCB8fCBcCisJCUFSQ0hfT01BUDE2WFggfHwgTUFDSF9SRUFMVklFV19FQiB8fCBcCisJCUFSQ0hfUE5YNDAwOCB8fCBBUkNIX05FVFggfHwgQ1BVX1MzQzI0MTIgfHwgXAorCQlBUkNIX0FUOTFTQU05MjYwIHx8IEFSQ0hfQVQ5MVNBTTkyNjEgfHwgXAorCQlBUkNIX0FUOTFTQU05MjYzIHx8IEFSQ0hfQVQ5MVNBTTlSTCB8fCBcCisJCUFSQ0hfQVQ5MVNBTTlHMjAgfHwgQVJDSF9BVDkxQ0FQOSB8fCBcCisJCUFSQ0hfTlM5WFhYIHx8IEFSQ0hfREFWSU5DSQorCWRlZmF1bHQgeSBpZiBBUkNIX1ZFUlNBVElMRV9QQiB8fCBNQUNIX1ZFUlNBVElMRV9BQiB8fCBcCisJCUFSQ0hfT01BUDczMCB8fCBBUkNIX09NQVAxNlhYIHx8IFwKKwkJQVJDSF9QTlg0MDA4IHx8IEFSQ0hfTkVUWCB8fCBDUFVfUzNDMjQxMiB8fCBcCisJCUFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOTI2MSB8fCBcCisJCUFSQ0hfQVQ5MVNBTTkyNjMgfHwgQVJDSF9BVDkxU0FNOVJMIHx8IFwKKwkJQVJDSF9BVDkxU0FNOUcyMCB8fCBBUkNIX0FUOTFDQVA5IHx8IFwKKwkJQVJDSF9OUzlYWFggfHwgQVJDSF9EQVZJTkNJIHx8IEFSQ0hfTVgyCiAJc2VsZWN0IENQVV8zMnY1CiAJc2VsZWN0IENQVV9BQlJUX0VWNVRKCiAJc2VsZWN0IENQVV9QQUJSVF9OT0lGQVIKQEAgLTM2NSw3ICszNzgsNyBAQAogIyBGZXJvY2VvbgogY29uZmlnIENQVV9GRVJPQ0VPTgogCWJvb2wKLQlkZXBlbmRzIG9uIEFSQ0hfT1JJT041WAorCWRlcGVuZHMgb24gQVJDSF9PUklPTjVYIHx8IEFSQ0hfTE9LSSB8fCBBUkNIX0tJUktXT09EIHx8IEFSQ0hfTVY3OFhYMAogCWRlZmF1bHQgeQogCXNlbGVjdCBDUFVfMzJ2NQogCXNlbGVjdCBDUFVfQUJSVF9FVjVUCkBAIC0zNzMsNyArMzg2LDcgQEAKIAlzZWxlY3QgQ1BVX0NBQ0hFX1ZJVlQKIAlzZWxlY3QgQ1BVX0NQMTVfTU1VCiAJc2VsZWN0IENQVV9DT1BZX0ZFUk9DRU9OIGlmIE1NVQotCXNlbGVjdCBDUFVfVExCX1Y0V0JJIGlmIE1NVQorCXNlbGVjdCBDUFVfVExCX0ZFUk9DRU9OIGlmIE1NVQogCiBjb25maWcgQ1BVX0ZFUk9DRU9OX09MRF9JRAogCWJvb2wgIkFjY2VwdCBlYXJseSBGZXJvY2VvbiBjb3JlcyB3aXRoIGFuIEFSTTkyNiBJRCIKQEAgLTU1MSw2ICs1NjQsMTEgQEAKIAkgIEFSTSBBcmNoaXRlY3R1cmUgVmVyc2lvbiA0IFRMQiB3aXRoIHdyaXRlYmFjayBjYWNoZSBhbmQgaW52YWxpZGF0ZQogCSAgaW5zdHJ1Y3Rpb24gY2FjaGUgZW50cnkuCiAKK2NvbmZpZyBDUFVfVExCX0ZFUk9DRU9OCisJYm9vbAorCWhlbHAKKwkgIEZlcm9jZW9uIFRMQiAodjR3Ymkgd2l0aCBub24tb3V0ZXItY2FjaGFibGUgcGFnZSB0YWJsZSB3YWxrcykuCisKIGNvbmZpZyBDUFVfVExCX1Y2CiAJYm9vbAogCkBAIC03MDksNiArNzI3LDE0IEBACiAJYm9vbAogCWRlZmF1bHQgbgogCitjb25maWcgQ0FDSEVfRkVST0NFT05fTDIKKwlib29sICJFbmFibGUgdGhlIEZlcm9jZW9uIEwyIGNhY2hlIGNvbnRyb2xsZXIiCisJZGVwZW5kcyBvbiBBUkNIX0tJUktXT09EIHx8IEFSQ0hfTVY3OFhYMAorCWRlZmF1bHQgeQorCXNlbGVjdCBPVVRFUl9DQUNIRQorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIEZlcm9jZW9uIEwyIGNhY2hlIGNvbnRyb2xsZXIuCisKIGNvbmZpZyBDQUNIRV9MMlgwCiAJYm9vbCAiRW5hYmxlIHRoZSBMMngwIG91dGVyIGNhY2hlIGNvbnRyb2xsZXIiCiAJZGVwZW5kcyBvbiBSRUFMVklFV19FQl9BUk0xMU1QIHx8IE1BQ0hfUkVBTFZJRVdfUEIxMU1QIHx8IE1BQ0hfUkVBTFZJRVdfUEIxMTc2CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9NYWtlZmlsZSBiL2FyY2gvYXJtL21tL01ha2VmaWxlCmluZGV4IDMyYjJkMmQuLmY2NGI5MjUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21tL01ha2VmaWxlCkBAIC00Niw2ICs0Niw3IEBACiBvYmotJChDT05GSUdfQ1BVX1RMQl9WNFdUKQkrPSB0bGItdjQubwogb2JqLSQoQ09ORklHX0NQVV9UTEJfVjRXQikJKz0gdGxiLXY0d2Iubwogb2JqLSQoQ09ORklHX0NQVV9UTEJfVjRXQkkpCSs9IHRsYi12NHdiaS5vCitvYmotJChDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTikJKz0gdGxiLXY0d2JpLm8JIyByZXVzZSB2NHdiaSBUTEIgZnVuY3Rpb25zCiBvYmotJChDT05GSUdfQ1BVX1RMQl9WNikJKz0gdGxiLXY2Lm8KIG9iai0kKENPTkZJR19DUFVfVExCX1Y3KQkrPSB0bGItdjcubwogCkBAIC03Myw0ICs3NCw1IEBACiBvYmotJChDT05GSUdfQ1BVX1Y2KQkJKz0gcHJvYy12Ni5vCiBvYmotJChDT05GSUdfQ1BVX1Y3KQkJKz0gcHJvYy12Ny5vCiAKK29iai0kKENPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMikJKz0gY2FjaGUtZmVyb2Nlb24tbDIubwogb2JqLSQoQ09ORklHX0NBQ0hFX0wyWDApCSs9IGNhY2hlLWwyeDAubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vY2FjaGUtZmVyb2Nlb24tbDIuYyBiL2FyY2gvYXJtL21tL2NhY2hlLWZlcm9jZW9uLWwyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBlZWM0YgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21tL2NhY2hlLWZlcm9jZW9uLWwyLmMKQEAgLTAsMCArMSwzMTggQEAKKy8qCisgKiBhcmNoL2FybS9tbS9jYWNoZS1mZXJvY2Vvbi1sMi5jIC0gRmVyb2Nlb24gTDIgY2FjaGUgY29udHJvbGxlciBzdXBwb3J0CisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnZlbGwgU2VtaWNvbmR1Y3RvcgorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICoKKyAqIFJlZmVyZW5jZXM6CisgKiAtIFVuaWZpZWQgTGF5ZXIgMiBDYWNoZSBmb3IgRmVyb2Nlb24gQ1BVIENvcmVzLAorICogICBEb2N1bWVudCBJRCBNVi1TMTA0ODU4LTAwLCBSZXYuIEEsIE9jdG9iZXIgMjMgMjAwNy4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vY2FjaGUtZmVyb2Nlb24tbDIuaD4KKworCisvKgorICogTG93LWxldmVsIGNhY2hlIG1haW50ZW5hbmNlIG9wZXJhdGlvbnMuCisgKgorICogQXMgd2VsbCBhcyB0aGUgcmVndWxhciAnY2xlYW4vaW52YWxpZGF0ZS9mbHVzaCBMMiBjYWNoZSBsaW5lIGJ5CisgKiBNVkEnIGluc3RydWN0aW9ucywgdGhlIEZlcm9jZW9uIEwyIGNhY2hlIGNvbnRyb2xsZXIgYWxzbyBmZWF0dXJlcworICogJ2NsZWFuL2ludmFsaWRhdGUgTDIgcmFuZ2UgYnkgTVZBJyBvcGVyYXRpb25zLgorICoKKyAqIENhY2hlIHJhbmdlIG9wZXJhdGlvbnMgYXJlIGluaXRpYXRlZCBieSB3cml0aW5nIHRoZSBzdGFydCBhbmQKKyAqIGVuZCBhZGRyZXNzZXMgdG8gc3VjY2Vzc2l2ZSBjcDE1IHJlZ2lzdGVycywgYW5kIHByb2Nlc3MgZXZlcnkKKyAqIGNhY2hlIGxpbmUgd2hvc2UgZmlyc3QgYnl0ZSBhZGRyZXNzIGxpZXMgaW4gdGhlIGluY2x1c2l2ZSByYW5nZQorICogW3N0YXJ0OmVuZF0uCisgKgorICogVGhlIGNhY2hlIHJhbmdlIG9wZXJhdGlvbnMgc3RhbGwgdGhlIENQVSBwaXBlbGluZSB1bnRpbCBjb21wbGV0aW9uLgorICoKKyAqIFRoZSByYW5nZSBvcGVyYXRpb25zIHJlcXVpcmUgdHdvIHN1Y2Nlc3NpdmUgY3AxNSB3cml0ZXMsIGluCisgKiBiZXR3ZWVuIHdoaWNoIHdlIGRvbid0IHdhbnQgdG8gYmUgcHJlZW1wdGVkLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgbDJfY2xlYW5fcGEodW5zaWduZWQgbG9uZyBhZGRyKQoreworCV9fYXNtX18oIm1jciBwMTUsIDEsICUwLCBjMTUsIGM5LCAzIiA6IDogInIiIChhZGRyKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBsMl9jbGVhbl9tdmFfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCS8qCisJICogTWFrZSBzdXJlICdzdGFydCcgYW5kICdlbmQnIHJlZmVyZW5jZSB0aGUgc2FtZSBwYWdlLCBhcworCSAqIEwyIGlzIFBJUFQgYW5kIHJhbmdlIG9wZXJhdGlvbnMgb25seSBkbyBhIFRMQiBsb29rdXAgb24KKwkgKiB0aGUgc3RhcnQgYWRkcmVzcy4KKwkgKi8KKwlCVUdfT04oKHN0YXJ0IF4gZW5kKSAmIH4oUEFHRV9TSVpFIC0gMSkpOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjOSwgNCIgOiA6ICJyIiAoc3RhcnQpKTsKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjOSwgNSIgOiA6ICJyIiAoZW5kKSk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGwyX2NsZWFuX3BhX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCWwyX2NsZWFuX212YV9yYW5nZShfX3BoeXNfdG9fdmlydChzdGFydCksIF9fcGh5c190b192aXJ0KGVuZCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbDJfY2xlYW5faW52X3BhKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjMTAsIDMiIDogOiAiciIgKGFkZHIpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGwyX2ludl9wYSh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJX19hc21fXygibWNyIHAxNSwgMSwgJTAsIGMxNSwgYzExLCAzIiA6IDogInIiIChhZGRyKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBsMl9pbnZfbXZhX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwkvKgorCSAqIE1ha2Ugc3VyZSAnc3RhcnQnIGFuZCAnZW5kJyByZWZlcmVuY2UgdGhlIHNhbWUgcGFnZSwgYXMKKwkgKiBMMiBpcyBQSVBUIGFuZCByYW5nZSBvcGVyYXRpb25zIG9ubHkgZG8gYSBUTEIgbG9va3VwIG9uCisJICogdGhlIHN0YXJ0IGFkZHJlc3MuCisJICovCisJQlVHX09OKChzdGFydCBeIGVuZCkgJiB+KFBBR0VfU0laRSAtIDEpKTsKKworCXJhd19sb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJX19hc21fXygibWNyIHAxNSwgMSwgJTAsIGMxNSwgYzExLCA0IiA6IDogInIiIChzdGFydCkpOworCV9fYXNtX18oIm1jciBwMTUsIDEsICUwLCBjMTUsIGMxMSwgNSIgOiA6ICJyIiAoZW5kKSk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGwyX2ludl9wYV9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwlsMl9pbnZfbXZhX3JhbmdlKF9fcGh5c190b192aXJ0KHN0YXJ0KSwgX19waHlzX3RvX3ZpcnQoZW5kKSk7Cit9CisKKworLyoKKyAqIExpbnV4IHByaW1pdGl2ZXMuCisgKgorICogTm90ZSB0aGF0IHRoZSBlbmQgYWRkcmVzc2VzIHBhc3NlZCB0byBMaW51eCBwcmltaXRpdmVzIGFyZQorICogbm9uaW5jbHVzaXZlLCB3aGlsZSB0aGUgaGFyZHdhcmUgY2FjaGUgcmFuZ2Ugb3BlcmF0aW9ucyB1c2UKKyAqIGluY2x1c2l2ZSBzdGFydCBhbmQgZW5kIGFkZHJlc3Nlcy4KKyAqLworI2RlZmluZSBDQUNIRV9MSU5FX1NJWkUJCTMyCisjZGVmaW5lIE1BWF9SQU5HRV9TSVpFCQkxMDI0CisKK3N0YXRpYyBpbnQgbDJfd3Rfb3ZlcnJpZGU7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGNhbGNfcmFuZ2VfZW5kKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXVuc2lnbmVkIGxvbmcgcmFuZ2VfZW5kOworCisJQlVHX09OKHN0YXJ0ICYgKENBQ0hFX0xJTkVfU0laRSAtIDEpKTsKKwlCVUdfT04oZW5kICYgKENBQ0hFX0xJTkVfU0laRSAtIDEpKTsKKworCS8qCisJICogVHJ5IHRvIHByb2Nlc3MgYWxsIGNhY2hlIGxpbmVzIGJldHdlZW4gJ3N0YXJ0JyBhbmQgJ2VuZCcuCisJICovCisJcmFuZ2VfZW5kID0gZW5kOworCisJLyoKKwkgKiBMaW1pdCB0aGUgbnVtYmVyIG9mIGNhY2hlIGxpbmVzIHByb2Nlc3NlZCBhdCBvbmNlLAorCSAqIHNpbmNlIGNhY2hlIHJhbmdlIG9wZXJhdGlvbnMgc3RhbGwgdGhlIENQVSBwaXBlbGluZQorCSAqIHVudGlsIGNvbXBsZXRpb24uCisJICovCisJaWYgKHJhbmdlX2VuZCA+IHN0YXJ0ICsgTUFYX1JBTkdFX1NJWkUpCisJCXJhbmdlX2VuZCA9IHN0YXJ0ICsgTUFYX1JBTkdFX1NJWkU7CisKKwkvKgorCSAqIENhY2hlIHJhbmdlIG9wZXJhdGlvbnMgY2FuJ3Qgc3RyYWRkbGUgYSBwYWdlIGJvdW5kYXJ5LgorCSAqLworCWlmIChyYW5nZV9lbmQgPiAoc3RhcnQgfCAoUEFHRV9TSVpFIC0gMSkpICsgMSkKKwkJcmFuZ2VfZW5kID0gKHN0YXJ0IHwgKFBBR0VfU0laRSAtIDEpKSArIDE7CisKKwlyZXR1cm4gcmFuZ2VfZW5kOworfQorCitzdGF0aWMgdm9pZCBmZXJvY2Vvbl9sMl9pbnZfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJLyoKKwkgKiBDbGVhbiBhbmQgaW52YWxpZGF0ZSBwYXJ0aWFsIGZpcnN0IGNhY2hlIGxpbmUuCisJICovCisJaWYgKHN0YXJ0ICYgKENBQ0hFX0xJTkVfU0laRSAtIDEpKSB7CisJCWwyX2NsZWFuX2ludl9wYShzdGFydCAmIH4oQ0FDSEVfTElORV9TSVpFIC0gMSkpOworCQlzdGFydCA9IChzdGFydCB8IChDQUNIRV9MSU5FX1NJWkUgLSAxKSkgKyAxOworCX0KKworCS8qCisJICogQ2xlYW4gYW5kIGludmFsaWRhdGUgcGFydGlhbCBsYXN0IGNhY2hlIGxpbmUuCisJICovCisJaWYgKGVuZCAmIChDQUNIRV9MSU5FX1NJWkUgLSAxKSkgeworCQlsMl9jbGVhbl9pbnZfcGEoZW5kICYgfihDQUNIRV9MSU5FX1NJWkUgLSAxKSk7CisJCWVuZCAmPSB+KENBQ0hFX0xJTkVfU0laRSAtIDEpOworCX0KKworCS8qCisJICogSW52YWxpZGF0ZSBhbGwgZnVsbCBjYWNoZSBsaW5lcyBiZXR3ZWVuICdzdGFydCcgYW5kICdlbmQnLgorCSAqLworCXdoaWxlIChzdGFydCAhPSBlbmQpIHsKKwkJdW5zaWduZWQgbG9uZyByYW5nZV9lbmQgPSBjYWxjX3JhbmdlX2VuZChzdGFydCwgZW5kKTsKKwkJbDJfaW52X3BhX3JhbmdlKHN0YXJ0LCByYW5nZV9lbmQgLSBDQUNIRV9MSU5FX1NJWkUpOworCQlzdGFydCA9IHJhbmdlX2VuZDsKKwl9CisKKwlkc2IoKTsKK30KKworc3RhdGljIHZvaWQgZmVyb2Nlb25fbDJfY2xlYW5fcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJLyoKKwkgKiBJZiBMMiBpcyBmb3JjZWQgdG8gV1QsIHRoZSBMMiB3aWxsIGFsd2F5cyBiZSBjbGVhbiBhbmQgd2UKKwkgKiBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nIGhlcmUuCisJICovCisJaWYgKCFsMl93dF9vdmVycmlkZSkgeworCQlzdGFydCAmPSB+KENBQ0hFX0xJTkVfU0laRSAtIDEpOworCQllbmQgPSAoZW5kICsgQ0FDSEVfTElORV9TSVpFIC0gMSkgJiB+KENBQ0hFX0xJTkVfU0laRSAtIDEpOworCQl3aGlsZSAoc3RhcnQgIT0gZW5kKSB7CisJCQl1bnNpZ25lZCBsb25nIHJhbmdlX2VuZCA9IGNhbGNfcmFuZ2VfZW5kKHN0YXJ0LCBlbmQpOworCQkJbDJfY2xlYW5fcGFfcmFuZ2Uoc3RhcnQsIHJhbmdlX2VuZCAtIENBQ0hFX0xJTkVfU0laRSk7CisJCQlzdGFydCA9IHJhbmdlX2VuZDsKKwkJfQorCX0KKworCWRzYigpOworfQorCitzdGF0aWMgdm9pZCBmZXJvY2Vvbl9sMl9mbHVzaF9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwlzdGFydCAmPSB+KENBQ0hFX0xJTkVfU0laRSAtIDEpOworCWVuZCA9IChlbmQgKyBDQUNIRV9MSU5FX1NJWkUgLSAxKSAmIH4oQ0FDSEVfTElORV9TSVpFIC0gMSk7CisJd2hpbGUgKHN0YXJ0ICE9IGVuZCkgeworCQl1bnNpZ25lZCBsb25nIHJhbmdlX2VuZCA9IGNhbGNfcmFuZ2VfZW5kKHN0YXJ0LCBlbmQpOworCQlpZiAoIWwyX3d0X292ZXJyaWRlKQorCQkJbDJfY2xlYW5fcGFfcmFuZ2Uoc3RhcnQsIHJhbmdlX2VuZCAtIENBQ0hFX0xJTkVfU0laRSk7CisJCWwyX2ludl9wYV9yYW5nZShzdGFydCwgcmFuZ2VfZW5kIC0gQ0FDSEVfTElORV9TSVpFKTsKKwkJc3RhcnQgPSByYW5nZV9lbmQ7CisJfQorCisJZHNiKCk7Cit9CisKKworLyoKKyAqIFJvdXRpbmVzIHRvIGRpc2FibGUgYW5kIHJlLWVuYWJsZSB0aGUgRC1jYWNoZSBhbmQgSS1jYWNoZSBhdCBydW4KKyAqIHRpbWUuICBUaGVzZSBhcmUgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIEwyIGNhY2hlIGNhbiBvbmx5IGJlIGVuYWJsZWQKKyAqIG9yIGRpc2FibGVkIHdoaWxlIHRoZSBMMSBEY2FjaGUgYW5kIEljYWNoZSBhcmUgYm90aCBkaXNhYmxlZC4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IGludmFsaWRhdGVfYW5kX2Rpc2FibGVfZGNhY2hlKHZvaWQpCit7CisJdTMyIGNyOworCisJY3IgPSBnZXRfY3IoKTsKKwlpZiAoY3IgJiBDUl9DKSB7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwkJcmF3X2xvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwkJZmx1c2hfY2FjaGVfYWxsKCk7CisJCXNldF9jcihjciAmIH5DUl9DKTsKKwkJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBlbmFibGVfZGNhY2hlKHZvaWQpCit7CisJdTMyIGNyOworCisJY3IgPSBnZXRfY3IoKTsKKwlpZiAoIShjciAmIENSX0MpKQorCQlzZXRfY3IoY3IgfCBDUl9DKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IF9faW52YWxpZGF0ZV9pY2FjaGUodm9pZCkKK3sKKwlpbnQgZHVtbXk7CisKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXygibWNyIHAxNSwgMCwgJTAsIGM3LCBjNSwgMFxuIiA6ICI9ciIgKGR1bW15KSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpbnZhbGlkYXRlX2FuZF9kaXNhYmxlX2ljYWNoZSh2b2lkKQoreworCXUzMiBjcjsKKworCWNyID0gZ2V0X2NyKCk7CisJaWYgKGNyICYgQ1JfSSkgeworCQlzZXRfY3IoY3IgJiB+Q1JfSSk7CisJCV9faW52YWxpZGF0ZV9pY2FjaGUoKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBlbmFibGVfaWNhY2hlKHZvaWQpCit7CisJdTMyIGNyOworCisJY3IgPSBnZXRfY3IoKTsKKwlpZiAoIShjciAmIENSX0kpKQorCQlzZXRfY3IoY3IgfCBDUl9JKTsKK30KKworc3RhdGljIGlubGluZSB1MzIgcmVhZF9leHRyYV9mZWF0dXJlcyh2b2lkKQoreworCXUzMiB1OworCisJX19hc21fXygibXJjIHAxNSwgMSwgJTAsIGMxNSwgYzEsIDAiIDogIj1yIiAodSkpOworCisJcmV0dXJuIHU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZV9leHRyYV9mZWF0dXJlcyh1MzIgdSkKK3sKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjMSwgMCIgOiA6ICJyIiAodSkpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZGlzYWJsZV9sMl9wcmVmZXRjaCh2b2lkKQoreworCXUzMiB1OworCisJLyoKKwkgKiBSZWFkIHRoZSBDUFUgRXh0cmEgRmVhdHVyZXMgcmVnaXN0ZXIgYW5kIHZlcmlmeSB0aGF0IHRoZQorCSAqIERpc2FibGUgTDIgUHJlZmV0Y2ggYml0IGlzIHNldC4KKwkgKi8KKwl1ID0gcmVhZF9leHRyYV9mZWF0dXJlcygpOworCWlmICghKHUgJiAweDAxMDAwMDAwKSkgeworCQlwcmludGsoS0VSTl9JTkZPICJGZXJvY2VvbiBMMjogRGlzYWJsaW5nIEwyIHByZWZldGNoLlxuIik7CisJCXdyaXRlX2V4dHJhX2ZlYXR1cmVzKHUgfCAweDAxMDAwMDAwKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBlbmFibGVfbDIodm9pZCkKK3sKKwl1MzIgdTsKKworCXUgPSByZWFkX2V4dHJhX2ZlYXR1cmVzKCk7CisJaWYgKCEodSAmIDB4MDA0MDAwMDApKSB7CisJCXByaW50ayhLRVJOX0lORk8gIkZlcm9jZW9uIEwyOiBFbmFibGluZyBMMlxuIik7CisKKwkJaW52YWxpZGF0ZV9hbmRfZGlzYWJsZV9kY2FjaGUoKTsKKwkJaW52YWxpZGF0ZV9hbmRfZGlzYWJsZV9pY2FjaGUoKTsKKwkJd3JpdGVfZXh0cmFfZmVhdHVyZXModSB8IDB4MDA0MDAwMDApOworCQllbmFibGVfaWNhY2hlKCk7CisJCWVuYWJsZV9kY2FjaGUoKTsKKwl9Cit9CisKK3ZvaWQgX19pbml0IGZlcm9jZW9uX2wyX2luaXQoaW50IF9fbDJfd3Rfb3ZlcnJpZGUpCit7CisJbDJfd3Rfb3ZlcnJpZGUgPSBfX2wyX3d0X292ZXJyaWRlOworCisJZGlzYWJsZV9sMl9wcmVmZXRjaCgpOworCisJb3V0ZXJfY2FjaGUuaW52X3JhbmdlID0gZmVyb2Nlb25fbDJfaW52X3JhbmdlOworCW91dGVyX2NhY2hlLmNsZWFuX3JhbmdlID0gZmVyb2Nlb25fbDJfY2xlYW5fcmFuZ2U7CisJb3V0ZXJfY2FjaGUuZmx1c2hfcmFuZ2UgPSBmZXJvY2Vvbl9sMl9mbHVzaF9yYW5nZTsKKworCWVuYWJsZV9sMigpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiRmVyb2Nlb24gTDI6IENhY2hlIHN1cHBvcnQgaW5pdGlhbGlzZWQlcy5cbiIsCisJCQkgbDJfd3Rfb3ZlcnJpZGUgPyAiLCBpbiBXVCBvdmVycmlkZSBtb2RlIiA6ICIiKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL2ZhdWx0LWFybXYuYyBiL2FyY2gvYXJtL21tL2ZhdWx0LWFybXYuYwppbmRleCA0NDU1OGQ1Li5mYmZhMjYwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9mYXVsdC1hcm12LmMKKysrIGIvYXJjaC9hcm0vbW0vZmF1bHQtYXJtdi5jCkBAIC0xNDQsMTMgKzE0NCwxNyBAQAogCXBhZ2UgPSBwZm5fdG9fcGFnZShwZm4pOwogCW1hcHBpbmcgPSBwYWdlX21hcHBpbmcocGFnZSk7CiAJaWYgKG1hcHBpbmcpIHsKKyNpZm5kZWYgQ09ORklHX1NNUAogCQlpbnQgZGlydHkgPSB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfZGNhY2hlX2RpcnR5LCAmcGFnZS0+ZmxhZ3MpOwogCiAJCWlmIChkaXJ0eSkKIAkJCV9fZmx1c2hfZGNhY2hlX3BhZ2UobWFwcGluZywgcGFnZSk7CisjZW5kaWYKIAogCQlpZiAoY2FjaGVfaXNfdml2dCgpKQogCQkJbWFrZV9jb2hlcmVudChtYXBwaW5nLCB2bWEsIGFkZHIsIHBmbik7CisJCWVsc2UgaWYgKHZtYS0+dm1fZmxhZ3MgJiBWTV9FWEVDKQorCQkJX19mbHVzaF9pY2FjaGVfYWxsKCk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9mbHVzaC5jIGIvYXJjaC9hcm0vbW0vZmx1c2guYwppbmRleCA5ZGY1MDdkLi4wMjllZTY1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9mbHVzaC5jCisrKyBiL2FyY2gvYXJtL21tL2ZsdXNoLmMKQEAgLTE5OSw2ICsxOTksOCBAQAogCQlfX2ZsdXNoX2RjYWNoZV9wYWdlKG1hcHBpbmcsIHBhZ2UpOwogCQlpZiAobWFwcGluZyAmJiBjYWNoZV9pc192aXZ0KCkpCiAJCQlfX2ZsdXNoX2RjYWNoZV9hbGlhc2VzKG1hcHBpbmcsIHBhZ2UpOworCQllbHNlIGlmIChtYXBwaW5nKQorCQkJX19mbHVzaF9pY2FjaGVfYWxsKCk7CiAJfQogfQogRVhQT1JUX1NZTUJPTChmbHVzaF9kY2FjaGVfcGFnZSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9wcm9jLWZlcm9jZW9uLlMgYi9hcmNoL2FybS9tbS9wcm9jLWZlcm9jZW9uLlMKaW5kZXggYTAyYzE3MS4uZjJlNTg4NCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vcHJvYy1mZXJvY2Vvbi5TCisrKyBiL2FyY2gvYXJtL21tL3Byb2MtZmVyb2Nlb24uUwpAQCAtNDQsMTEgKzQ0LDMxIEBACiAgKi8KICNkZWZpbmUgQ0FDSEVfRExJTkVTSVpFCTMyCiAKKwkuYnNzCisJLmFsaWduIDMKK19fY2FjaGVfcGFyYW1zX2xvYzoKKwkuc3BhY2UJOAorCiAJLnRleHQKK19fY2FjaGVfcGFyYW1zOgorCS53b3JkCV9fY2FjaGVfcGFyYW1zX2xvYworCiAvKgogICogY3B1X2Zlcm9jZW9uX3Byb2NfaW5pdCgpCiAgKi8KIEVOVFJZKGNwdV9mZXJvY2Vvbl9wcm9jX2luaXQpCisJbXJjCXAxNSwgMCwgcjAsIGMwLCBjMCwgMQkJQCByZWFkIGNhY2hlIHR5cGUgcmVnaXN0ZXIKKwlsZHIJcjEsIF9fY2FjaGVfcGFyYW1zCisJbW92CXIyLCAjKDE2IDw8IDUpCisJdHN0CXIwLCAjKDEgPDwgMTYpCQkJQCBnZXQgd2F5CisJbW92CXIwLCByMCwgbHNyICMxOAkJCUAgZ2V0IGNhY2hlIHNpemUgb3JkZXIKKwltb3ZuZQlyMywgIygoNCAtIDEpIDw8IDMwKQkJQCA0LXdheQorCWFuZAlyMCwgcjAsICMweGYKKwltb3ZlcQlyMywgIzAJCQkJQCAxLXdheQorCW1vdglyMiwgcjIsIGxzbCByMAkJCUAgYWN0dWFsIGNhY2hlIHNpemUKKwltb3ZuZQlyMiwgcjIsIGxzciAjMgkJCUAgdHVybmVkIGludG8gIyBvZiBzZXRzCisJc3ViCXIyLCByMiwgIygxIDw8IDUpCisJc3RtaWEJcjEsIHtyMiwgcjN9CiAJbW92CXBjLCBscgogCiAvKgpAQCAtNTksNiArNzksMTMgQEAKIAltb3YJaXAsICNQU1JfRl9CSVQgfCBQU1JfSV9CSVQgfCBTVkNfTU9ERQogCW1zcgljcHNyX2MsIGlwCiAJYmwJZmVyb2Nlb25fZmx1c2hfa2Vybl9jYWNoZV9hbGwKKworI2lmIGRlZmluZWQoQ09ORklHX0NBQ0hFX0ZFUk9DRU9OX0wyKSAmJiAhZGVmaW5lZChDT05GSUdfTDJfQ0FDSEVfV1JJVEVUSFJPVUdIKQorCW1vdglyMCwgIzAKKwltY3IJcDE1LCAxLCByMCwgYzE1LCBjOSwgMAkJQCBjbGVhbiBMMgorCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCisjZW5kaWYKKwogCW1yYwlwMTUsIDAsIHIwLCBjMSwgYzAsIDAJCUAgY3RybCByZWdpc3RlcgogCWJpYwlyMCwgcjAsICMweDEwMDAJCQlAIC4uLmkuLi4uLi4uLi4uLi4KIAliaWMJcjAsIHIwLCAjMHgwMDBlCQkJQCAuLi4uLi4uLi4uLi53Y2EuCkBAIC0xMTcsMTEgKzE0NCwxOSBAQAogICovCiBFTlRSWShmZXJvY2Vvbl9mbHVzaF9rZXJuX2NhY2hlX2FsbCkKIAltb3YJcjIsICNWTV9FWEVDCi0JbW92CWlwLCAjMAorCiBfX2ZsdXNoX3dob2xlX2NhY2hlOgotMToJbXJjCXAxNSwgMCwgcjE1LCBjNywgYzE0LCAzIAlAIHRlc3QsY2xlYW4saW52YWxpZGF0ZQotCWJuZQkxYgorCWxkcglyMSwgX19jYWNoZV9wYXJhbXMKKwlsZG1pYQlyMSwge3IxLCByM30KKzE6CW9ycglpcCwgcjEsIHIzCisyOgltY3IJcDE1LCAwLCBpcCwgYzcsIGMxNCwgMgkJQCBjbGVhbiArIGludmFsaWRhdGUgRCBzZXQvd2F5CisJc3VicwlpcCwgaXAsICMoMSA8PCAzMCkJCUAgbmV4dCB3YXkKKwliY3MJMmIKKwlzdWJzCXIxLCByMSwgIygxIDw8IDUpCQlAIG5leHQgc2V0CisJYmNzCTFiCisKIAl0c3QJcjIsICNWTV9FWEVDCisJbW92CWlwLCAjMAogCW1jcm5lCXAxNSwgMCwgaXAsIGM3LCBjNSwgMAkJQCBpbnZhbGlkYXRlIEkgY2FjaGUKIAltY3JuZQlwMTUsIDAsIGlwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCiAJbW92CXBjLCBscgpAQCAtMTM4LDcgKzE3Myw2IEBACiAgKi8KIAkuYWxpZ24JNQogRU5UUlkoZmVyb2Nlb25fZmx1c2hfdXNlcl9jYWNoZV9yYW5nZSkKLQltb3YJaXAsICMwCiAJc3ViCXIzLCByMSwgcjAJCQlAIGNhbGN1bGF0ZSB0b3RhbCBzaXplCiAJY21wCXIzLCAjQ0FDSEVfRExJTUlUCiAJYmd0CV9fZmx1c2hfd2hvbGVfY2FjaGUKQEAgLTE1Miw2ICsxODYsNyBAQAogCWNtcAlyMCwgcjEKIAlibG8JMWIKIAl0c3QJcjIsICNWTV9FWEVDCisJbW92CWlwLCAjMAogCW1jcm5lCXAxNSwgMCwgaXAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKIAltb3YJcGMsIGxyCiAKQEAgLTIwOSw2ICsyNDQsMjAgQEAKIAltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgogCW1vdglwYywgbHIKIAorCS5hbGlnbgk1CitFTlRSWShmZXJvY2Vvbl9yYW5nZV9mbHVzaF9rZXJuX2RjYWNoZV9wYWdlKQorCW1ycwlyMiwgY3BzcgorCWFkZAlyMSwgcjAsICNQQUdFX1NaIC0gQ0FDSEVfRExJTkVTSVpFCUAgdG9wIGFkZHIgaXMgaW5jbHVzaXZlCisJb3JyCXIzLCByMiwgI1BTUl9JX0JJVAorCW1zcgljcHNyX2MsIHIzCQkJQCBkaXNhYmxlIGludGVycnVwdHMKKwltY3IJcDE1LCA1LCByMCwgYzE1LCBjMTUsIDAJCUAgRCBjbGVhbi9pbnYgcmFuZ2Ugc3RhcnQKKwltY3IJcDE1LCA1LCByMSwgYzE1LCBjMTUsIDEJCUAgRCBjbGVhbi9pbnYgcmFuZ2UgdG9wCisJbXNyCWNwc3JfYywgcjIJCQlAIHJlc3RvcmUgaW50ZXJydXB0cworCW1vdglyMCwgIzAKKwltY3IJcDE1LCAwLCByMCwgYzcsIGM1LCAwCQlAIGludmFsaWRhdGUgSSBjYWNoZQorCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCisJbW92CXBjLCBscgorCiAvKgogICoJZG1hX2ludl9yYW5nZShzdGFydCwgZW5kKQogICoKQEAgLTIyNSwxMCArMjc0LDEwIEBACiAJLmFsaWduCTUKIEVOVFJZKGZlcm9jZW9uX2RtYV9pbnZfcmFuZ2UpCiAJdHN0CXIwLCAjQ0FDSEVfRExJTkVTSVpFIC0gMQorCWJpYwlyMCwgcjAsICNDQUNIRV9ETElORVNJWkUgLSAxCiAJbWNybmUJcDE1LCAwLCByMCwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGVudHJ5CiAJdHN0CXIxLCAjQ0FDSEVfRExJTkVTSVpFIC0gMQogCW1jcm5lCXAxNSwgMCwgcjEsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBlbnRyeQotCWJpYwlyMCwgcjAsICNDQUNIRV9ETElORVNJWkUgLSAxCiAxOgltY3IJcDE1LCAwLCByMCwgYzcsIGM2LCAxCQlAIGludmFsaWRhdGUgRCBlbnRyeQogCWFkZAlyMCwgcjAsICNDQUNIRV9ETElORVNJWkUKIAljbXAJcjAsIHIxCkBAIC0yMzYsNiArMjg1LDIyIEBACiAJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKIAltb3YJcGMsIGxyCiAKKwkuYWxpZ24JNQorRU5UUlkoZmVyb2Nlb25fcmFuZ2VfZG1hX2ludl9yYW5nZSkKKwltcnMJcjIsIGNwc3IKKwl0c3QJcjAsICNDQUNIRV9ETElORVNJWkUgLSAxCisJbWNybmUJcDE1LCAwLCByMCwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGVudHJ5CisJdHN0CXIxLCAjQ0FDSEVfRExJTkVTSVpFIC0gMQorCW1jcm5lCXAxNSwgMCwgcjEsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBlbnRyeQorCWNtcAlyMSwgcjAKKwlzdWJuZQlyMSwgcjEsICMxCQkJQCB0b3AgYWRkcmVzcyBpcyBpbmNsdXNpdmUKKwlvcnIJcjMsIHIyLCAjUFNSX0lfQklUCisJbXNyCWNwc3JfYywgcjMJCQlAIGRpc2FibGUgaW50ZXJydXB0cworCW1jcglwMTUsIDUsIHIwLCBjMTUsIGMxNCwgMAkJQCBEIGludiByYW5nZSBzdGFydAorCW1jcglwMTUsIDUsIHIxLCBjMTUsIGMxNCwgMQkJQCBEIGludiByYW5nZSB0b3AKKwltc3IJY3Bzcl9jLCByMgkJCUAgcmVzdG9yZSBpbnRlcnJ1cHRzCisJbW92CXBjLCBscgorCiAvKgogICoJZG1hX2NsZWFuX3JhbmdlKHN0YXJ0LCBlbmQpCiAgKgpAQCAtMjU2LDYgKzMyMSwxOSBAQAogCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCiAJbW92CXBjLCBscgogCisJLmFsaWduCTUKK0VOVFJZKGZlcm9jZW9uX3JhbmdlX2RtYV9jbGVhbl9yYW5nZSkKKwltcnMJcjIsIGNwc3IKKwljbXAJcjEsIHIwCisJc3VibmUJcjEsIHIxLCAjMQkJCUAgdG9wIGFkZHJlc3MgaXMgaW5jbHVzaXZlCisJb3JyCXIzLCByMiwgI1BTUl9JX0JJVAorCW1zcgljcHNyX2MsIHIzCQkJQCBkaXNhYmxlIGludGVycnVwdHMKKwltY3IJcDE1LCA1LCByMCwgYzE1LCBjMTMsIDAJCUAgRCBjbGVhbiByYW5nZSBzdGFydAorCW1jcglwMTUsIDUsIHIxLCBjMTUsIGMxMywgMQkJQCBEIGNsZWFuIHJhbmdlIHRvcAorCW1zcgljcHNyX2MsIHIyCQkJQCByZXN0b3JlIGludGVycnVwdHMKKwltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgorCW1vdglwYywgbHIKKwogLyoKICAqCWRtYV9mbHVzaF9yYW5nZShzdGFydCwgZW5kKQogICoKQEAgLTI3NCw2ICszNTIsMTkgQEAKIAltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgogCW1vdglwYywgbHIKIAorCS5hbGlnbgk1CitFTlRSWShmZXJvY2Vvbl9yYW5nZV9kbWFfZmx1c2hfcmFuZ2UpCisJbXJzCXIyLCBjcHNyCisJY21wCXIxLCByMAorCXN1Ym5lCXIxLCByMSwgIzEJCQlAIHRvcCBhZGRyZXNzIGlzIGluY2x1c2l2ZQorCW9ycglyMywgcjIsICNQU1JfSV9CSVQKKwltc3IJY3Bzcl9jLCByMwkJCUAgZGlzYWJsZSBpbnRlcnJ1cHRzCisJbWNyCXAxNSwgNSwgcjAsIGMxNSwgYzE1LCAwCQlAIEQgY2xlYW4vaW52IHJhbmdlIHN0YXJ0CisJbWNyCXAxNSwgNSwgcjEsIGMxNSwgYzE1LCAxCQlAIEQgY2xlYW4vaW52IHJhbmdlIHRvcAorCW1zcgljcHNyX2MsIHIyCQkJQCByZXN0b3JlIGludGVycnVwdHMKKwltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgorCW1vdglwYywgbHIKKwogRU5UUlkoZmVyb2Nlb25fY2FjaGVfZm5zKQogCS5sb25nCWZlcm9jZW9uX2ZsdXNoX2tlcm5fY2FjaGVfYWxsCiAJLmxvbmcJZmVyb2Nlb25fZmx1c2hfdXNlcl9jYWNoZV9hbGwKQEAgLTI4NSwxMiArMzc2LDMzIEBACiAJLmxvbmcJZmVyb2Nlb25fZG1hX2NsZWFuX3JhbmdlCiAJLmxvbmcJZmVyb2Nlb25fZG1hX2ZsdXNoX3JhbmdlCiAKK0VOVFJZKGZlcm9jZW9uX3JhbmdlX2NhY2hlX2ZucykKKwkubG9uZwlmZXJvY2Vvbl9mbHVzaF9rZXJuX2NhY2hlX2FsbAorCS5sb25nCWZlcm9jZW9uX2ZsdXNoX3VzZXJfY2FjaGVfYWxsCisJLmxvbmcJZmVyb2Nlb25fZmx1c2hfdXNlcl9jYWNoZV9yYW5nZQorCS5sb25nCWZlcm9jZW9uX2NvaGVyZW50X2tlcm5fcmFuZ2UKKwkubG9uZwlmZXJvY2Vvbl9jb2hlcmVudF91c2VyX3JhbmdlCisJLmxvbmcJZmVyb2Nlb25fcmFuZ2VfZmx1c2hfa2Vybl9kY2FjaGVfcGFnZQorCS5sb25nCWZlcm9jZW9uX3JhbmdlX2RtYV9pbnZfcmFuZ2UKKwkubG9uZwlmZXJvY2Vvbl9yYW5nZV9kbWFfY2xlYW5fcmFuZ2UKKwkubG9uZwlmZXJvY2Vvbl9yYW5nZV9kbWFfZmx1c2hfcmFuZ2UKKwogCS5hbGlnbgk1CiBFTlRSWShjcHVfZmVyb2Nlb25fZGNhY2hlX2NsZWFuX2FyZWEpCisjaWYgZGVmaW5lZChDT05GSUdfQ0FDSEVfRkVST0NFT05fTDIpICYmICFkZWZpbmVkKENPTkZJR19MMl9DQUNIRV9XUklURVRIUk9VR0gpCisJbW92CXIyLCByMAorCW1vdglyMywgcjEKKyNlbmRpZgogMToJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBlbnRyeQogCWFkZAlyMCwgcjAsICNDQUNIRV9ETElORVNJWkUKIAlzdWJzCXIxLCByMSwgI0NBQ0hFX0RMSU5FU0laRQogCWJoaQkxYgorI2lmIGRlZmluZWQoQ09ORklHX0NBQ0hFX0ZFUk9DRU9OX0wyKSAmJiAhZGVmaW5lZChDT05GSUdfTDJfQ0FDSEVfV1JJVEVUSFJPVUdIKQorMToJbWNyCXAxNSwgMSwgcjIsIGMxNSwgYzksIDEJCUAgY2xlYW4gTDIgZW50cnkKKwlhZGQJcjIsIHIyLCAjQ0FDSEVfRExJTkVTSVpFCisJc3VicwlyMywgcjMsICNDQUNIRV9ETElORVNJWkUKKwliaGkJMWIKKyNlbmRpZgogCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCiAJbW92CXBjLCBscgogCkBAIC0zMDYsMTYgKzQxOCwyNSBAQAogCS5hbGlnbgk1CiBFTlRSWShjcHVfZmVyb2Nlb25fc3dpdGNoX21tKQogI2lmZGVmIENPTkZJR19NTVUKLQltb3YJaXAsICMwCi1AICYmICdDbGVhbiAmIEludmFsaWRhdGUgd2hvbGUgRENhY2hlJwotMToJbXJjCXAxNSwgMCwgcjE1LCBjNywgYzE0LCAzIAlAIHRlc3QsY2xlYW4saW52YWxpZGF0ZQotCWJuZQkxYgotCW1jcglwMTUsIDAsIGlwLCBjNywgYzUsIDAJCUAgaW52YWxpZGF0ZSBJIGNhY2hlCi0JbWNyCXAxNSwgMCwgaXAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKKwkvKgorCSAqIE5vdGU6IHdlIHdpc2ggdG8gY2FsbCBfX2ZsdXNoX3dob2xlX2NhY2hlIGJ1dCB3ZSBuZWVkIHRvIHByZXNlcnZlCisJICogbHIgdG8gZG8gc28uICBUaGUgb25seSB3YXkgd2l0aG91dCB0b3VjaGluZyBtYWluIG1lbW9yeSBpcyB0bworCSAqIHVzZSByMiB3aGljaCBpcyBub3JtYWxseSB1c2VkIHRvIHRlc3QgdGhlIFZNX0VYRUMgZmxhZywgYW5kCisJICogY29tcGVuc2F0ZSBsb2NhbGx5IGZvciB0aGUgc2tpcHBlZCBvcHMgaWYgaXQgaXMgbm90IHNldC4KKwkgKi8KKwltb3YJcjIsIGxyCQkJCUAgYWJ1c2UgcjIgdG8gcHJlc2VydmUgbHIKKwlibAlfX2ZsdXNoX3dob2xlX2NhY2hlCisJQCBpZiByMiBjb250YWlucyB0aGUgVk1fRVhFQyBiaXQgdGhlbiB0aGUgbmV4dCAyIG9wcyBhcmUgZG9uZSBhbHJlYWR5CisJdHN0CXIyLCAjVk1fRVhFQworCW1jcmVxCXAxNSwgMCwgaXAsIGM3LCBjNSwgMAkJQCBpbnZhbGlkYXRlIEkgY2FjaGUKKwltY3JlcQlwMTUsIDAsIGlwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCisKIAltY3IJcDE1LCAwLCByMCwgYzIsIGMwLCAwCQlAIGxvYWQgcGFnZSB0YWJsZSBwb2ludGVyCiAJbWNyCXAxNSwgMCwgaXAsIGM4LCBjNywgMAkJQCBpbnZhbGlkYXRlIEkgJiBEIFRMQnMKLSNlbmRpZgorCW1vdglwYywgcjIKKyNlbHNlCiAJbW92CXBjLCBscgorI2VuZGlmCiAKIC8qCiAgKiBjcHVfZmVyb2Nlb25fc2V0X3B0ZV9leHQocHRlcCwgcHRlLCBleHQpCkBAIC0zNDUsNiArNDY2LDkgQEAKIAlzdHIJcjIsIFtyMF0JCQlAIGhhcmR3YXJlIHZlcnNpb24KIAltb3YJcjAsIHIwCiAJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBlbnRyeQorI2lmIGRlZmluZWQoQ09ORklHX0NBQ0hFX0ZFUk9DRU9OX0wyKSAmJiAhZGVmaW5lZChDT05GSUdfTDJfQ0FDSEVfV1JJVEVUSFJPVUdIKQorCW1jcglwMTUsIDEsIHIwLCBjMTUsIGM5LCAxCQlAIGNsZWFuIEwyIGVudHJ5CisjZW5kaWYKIAltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgogI2VuZGlmCiAJbW92CXBjLCBscgpAQCAtMzY5LDE0ICs0OTMsMTUgQEAKIAkuc2l6ZQlfX2Zlcm9jZW9uX3NldHVwLCAuIC0gX19mZXJvY2Vvbl9zZXR1cAogCiAJLyoKLQkgKiAgUgotCSAqIC5SVkkgWkZSUyBCTERQIFdDQU0KLQkgKiAuMDExIDAwMDEgLi4xMSAwMTAxCisJICogICAgICBCCisJICogIFIgICBQCisJICogLlJWSSBVRlJTIEJMRFAgV0NBTQorCSAqIC4wMTEgLjAwMSAuLjExIDAxMDEKIAkgKgogCSAqLwogCS50eXBlCWZlcm9jZW9uX2NydmFsLCAjb2JqZWN0CiBmZXJvY2Vvbl9jcnZhbDoKLQljcnZhbAljbGVhcj0weDAwMDA3ZjNmLCBtbXVzZXQ9MHgwMDAwMzEzNSwgdWNzZXQ9MHgwMDAwMTEzNAorCWNydmFsCWNsZWFyPTB4MDAwMDc3M2YsIG1tdXNldD0weDAwMDAzMTM1LCB1Y3NldD0weDAwMDAxMTM0CiAKIAlfX0lOSVREQVRBCiAKQEAgLTQxNCw2ICs1MzksMjEgQEAKIAkuYXNjaXoJIkZlcm9jZW9uIgogCS5zaXplCWNwdV9mZXJvY2Vvbl9uYW1lLCAuIC0gY3B1X2Zlcm9jZW9uX25hbWUKIAorCS50eXBlCWNwdV84OGZyNTMxX25hbWUsICNvYmplY3QKK2NwdV84OGZyNTMxX25hbWU6CisJLmFzY2l6CSJGZXJvY2VvbiA4OEZSNTMxLXZkIgorCS5zaXplCWNwdV84OGZyNTMxX25hbWUsIC4gLSBjcHVfODhmcjUzMV9uYW1lCisKKwkudHlwZQljcHVfODhmcjU3MV9uYW1lLCAjb2JqZWN0CitjcHVfODhmcjU3MV9uYW1lOgorCS5hc2NpegkiRmVyb2Nlb24gODhGUjU3MS12ZCIKKwkuc2l6ZQljcHVfODhmcjU3MV9uYW1lLCAuIC0gY3B1Xzg4ZnI1NzFfbmFtZQorCisJLnR5cGUJY3B1Xzg4ZnIxMzFfbmFtZSwgI29iamVjdAorY3B1Xzg4ZnIxMzFfbmFtZToKKwkuYXNjaXoJIkZlcm9jZW9uIDg4RlIxMzEiCisJLnNpemUJY3B1Xzg4ZnIxMzFfbmFtZSwgLiAtIGNwdV84OGZyMTMxX25hbWUKKwogCS5hbGlnbgogCiAJLnNlY3Rpb24gIi5wcm9jLmluZm8uaW5pdCIsICNhbGxvYywgI2V4ZWNpbnN0cgpAQCAtNDIxLDE1ICs1NjEsMTUgQEAKICNpZmRlZiBDT05GSUdfQ1BVX0ZFUk9DRU9OX09MRF9JRAogCS50eXBlCV9fZmVyb2Nlb25fb2xkX2lkX3Byb2NfaW5mbywjb2JqZWN0CiBfX2Zlcm9jZW9uX29sZF9pZF9wcm9jX2luZm86Ci0JLmxvbmcJMHg0MTA2OTI2MAotCS5sb25nCTB4ZmZmZmZmZjAKLQkubG9uZyAgIFBNRF9UWVBFX1NFQ1QgfCBcCisJLmxvbmcJMHg0MTAwOTI2MAorCS5sb25nCTB4ZmYwMGZmZjAKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAogCQlQTURfU0VDVF9CVUZGRVJBQkxFIHwgXAogCQlQTURfU0VDVF9DQUNIRUFCTEUgfCBcCiAJCVBNRF9CSVQ0IHwgXAogCQlQTURfU0VDVF9BUF9XUklURSB8IFwKIAkJUE1EX1NFQ1RfQVBfUkVBRAotCS5sb25nICAgUE1EX1RZUEVfU0VDVCB8IFwKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAogCQlQTURfQklUNCB8IFwKIAkJUE1EX1NFQ1RfQVBfV1JJVEUgfCBcCiAJCVBNRF9TRUNUX0FQX1JFQUQKQEAgLTQ0NSwxNyArNTg1LDE3IEBACiAJLnNpemUJX19mZXJvY2Vvbl9vbGRfaWRfcHJvY19pbmZvLCAuIC0gX19mZXJvY2Vvbl9vbGRfaWRfcHJvY19pbmZvCiAjZW5kaWYKIAotCS50eXBlCV9fZmVyb2Nlb25fcHJvY19pbmZvLCNvYmplY3QKLV9fZmVyb2Nlb25fcHJvY19pbmZvOgorCS50eXBlCV9fODhmcjUzMV9wcm9jX2luZm8sI29iamVjdAorX184OGZyNTMxX3Byb2NfaW5mbzoKIAkubG9uZwkweDU2MDU1MzEwCiAJLmxvbmcJMHhmZmZmZmZmMAotCS5sb25nICAgUE1EX1RZUEVfU0VDVCB8IFwKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAogCQlQTURfU0VDVF9CVUZGRVJBQkxFIHwgXAogCQlQTURfU0VDVF9DQUNIRUFCTEUgfCBcCiAJCVBNRF9CSVQ0IHwgXAogCQlQTURfU0VDVF9BUF9XUklURSB8IFwKIAkJUE1EX1NFQ1RfQVBfUkVBRAotCS5sb25nICAgUE1EX1RZUEVfU0VDVCB8IFwKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAogCQlQTURfQklUNCB8IFwKIAkJUE1EX1NFQ1RfQVBfV1JJVEUgfCBcCiAJCVBNRF9TRUNUX0FQX1JFQUQKQEAgLTQ2Myw5ICs2MDMsNTkgQEAKIAkubG9uZwljcHVfYXJjaF9uYW1lCiAJLmxvbmcJY3B1X2VsZl9uYW1lCiAJLmxvbmcJSFdDQVBfU1dQfEhXQ0FQX0hBTEZ8SFdDQVBfVEhVTUJ8SFdDQVBfRkFTVF9NVUxUfEhXQ0FQX0VEU1AKLQkubG9uZwljcHVfZmVyb2Nlb25fbmFtZQorCS5sb25nCWNwdV84OGZyNTMxX25hbWUKIAkubG9uZwlmZXJvY2Vvbl9wcm9jZXNzb3JfZnVuY3Rpb25zCiAJLmxvbmcJdjR3YmlfdGxiX2ZucwogCS5sb25nCWZlcm9jZW9uX3VzZXJfZm5zCiAJLmxvbmcJZmVyb2Nlb25fY2FjaGVfZm5zCi0JLnNpemUJX19mZXJvY2Vvbl9wcm9jX2luZm8sIC4gLSBfX2Zlcm9jZW9uX3Byb2NfaW5mbworCS5zaXplCV9fODhmcjUzMV9wcm9jX2luZm8sIC4gLSBfXzg4ZnI1MzFfcHJvY19pbmZvCisKKwkudHlwZQlfXzg4ZnI1NzFfcHJvY19pbmZvLCNvYmplY3QKK19fODhmcjU3MV9wcm9jX2luZm86CisJLmxvbmcJMHg1NjE1NTcxMAorCS5sb25nCTB4ZmZmZmZmZjAKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAorCQlQTURfU0VDVF9CVUZGRVJBQkxFIHwgXAorCQlQTURfU0VDVF9DQUNIRUFCTEUgfCBcCisJCVBNRF9CSVQ0IHwgXAorCQlQTURfU0VDVF9BUF9XUklURSB8IFwKKwkJUE1EX1NFQ1RfQVBfUkVBRAorCS5sb25nCVBNRF9UWVBFX1NFQ1QgfCBcCisJCVBNRF9CSVQ0IHwgXAorCQlQTURfU0VDVF9BUF9XUklURSB8IFwKKwkJUE1EX1NFQ1RfQVBfUkVBRAorCWIJX19mZXJvY2Vvbl9zZXR1cAorCS5sb25nCWNwdV9hcmNoX25hbWUKKwkubG9uZwljcHVfZWxmX25hbWUKKwkubG9uZwlIV0NBUF9TV1B8SFdDQVBfSEFMRnxIV0NBUF9USFVNQnxIV0NBUF9GQVNUX01VTFR8SFdDQVBfRURTUAorCS5sb25nCWNwdV84OGZyNTcxX25hbWUKKwkubG9uZwlmZXJvY2Vvbl9wcm9jZXNzb3JfZnVuY3Rpb25zCisJLmxvbmcJdjR3YmlfdGxiX2ZucworCS5sb25nCWZlcm9jZW9uX3VzZXJfZm5zCisJLmxvbmcJZmVyb2Nlb25fcmFuZ2VfY2FjaGVfZm5zCisJLnNpemUJX184OGZyNTcxX3Byb2NfaW5mbywgLiAtIF9fODhmcjU3MV9wcm9jX2luZm8KKworCS50eXBlCV9fODhmcjEzMV9wcm9jX2luZm8sI29iamVjdAorX184OGZyMTMxX3Byb2NfaW5mbzoKKwkubG9uZwkweDU2MjUxMzEwCisJLmxvbmcJMHhmZmZmZmZmMAorCS5sb25nCVBNRF9UWVBFX1NFQ1QgfCBcCisJCVBNRF9TRUNUX0JVRkZFUkFCTEUgfCBcCisJCVBNRF9TRUNUX0NBQ0hFQUJMRSB8IFwKKwkJUE1EX0JJVDQgfCBcCisJCVBNRF9TRUNUX0FQX1dSSVRFIHwgXAorCQlQTURfU0VDVF9BUF9SRUFECisJLmxvbmcJUE1EX1RZUEVfU0VDVCB8IFwKKwkJUE1EX0JJVDQgfCBcCisJCVBNRF9TRUNUX0FQX1dSSVRFIHwgXAorCQlQTURfU0VDVF9BUF9SRUFECisJYglfX2Zlcm9jZW9uX3NldHVwCisJLmxvbmcJY3B1X2FyY2hfbmFtZQorCS5sb25nCWNwdV9lbGZfbmFtZQorCS5sb25nCUhXQ0FQX1NXUHxIV0NBUF9IQUxGfEhXQ0FQX1RIVU1CfEhXQ0FQX0ZBU1RfTVVMVHxIV0NBUF9FRFNQCisJLmxvbmcJY3B1Xzg4ZnIxMzFfbmFtZQorCS5sb25nCWZlcm9jZW9uX3Byb2Nlc3Nvcl9mdW5jdGlvbnMKKwkubG9uZwl2NHdiaV90bGJfZm5zCisJLmxvbmcJZmVyb2Nlb25fdXNlcl9mbnMKKwkubG9uZwlmZXJvY2Vvbl9yYW5nZV9jYWNoZV9mbnMKKwkuc2l6ZQlfXzg4ZnIxMzFfcHJvY19pbmZvLCAuIC0gX184OGZyMTMxX3Byb2NfaW5mbwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1pb3AvZ3Bpby5jIGIvYXJjaC9hcm0vcGxhdC1pb3AvZ3Bpby5jCmluZGV4IGVkYTQzNjAuLjY0MGU0OTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtaW9wL2dwaW8uYworKysgYi9hcmNoL2FybS9wbGF0LWlvcC9ncGlvLmMKQEAgLTExLDYgKzExLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9pb3AzeHguaD4KIAogdm9pZCBncGlvX2xpbmVfY29uZmlnKGludCBsaW5lLCBpbnQgZGlyZWN0aW9uKQpAQCAtNDYsMyArNTAsNDIgQEAKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiBFWFBPUlRfU1lNQk9MKGdwaW9fbGluZV9zZXQpOworCitzdGF0aWMgaW50IGlvcDN4eF9ncGlvX2RpcmVjdGlvbl9pbnB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBncGlvKQoreworCWdwaW9fbGluZV9jb25maWcoZ3BpbywgR1BJT19JTik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaW9wM3h4X2dwaW9fZGlyZWN0aW9uX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBncGlvLCBpbnQgbGV2ZWwpCit7CisJZ3Bpb19saW5lX3NldChncGlvLCBsZXZlbCk7CisJZ3Bpb19saW5lX2NvbmZpZyhncGlvLCBHUElPX09VVCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaW9wM3h4X2dwaW9fZ2V0X3ZhbHVlKHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGdwaW8pCit7CisJcmV0dXJuIGdwaW9fbGluZV9nZXQoZ3Bpbyk7Cit9CisKK3N0YXRpYyB2b2lkIGlvcDN4eF9ncGlvX3NldF92YWx1ZShzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBncGlvLCBpbnQgdmFsdWUpCit7CisJZ3Bpb19saW5lX3NldChncGlvLCB2YWx1ZSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19jaGlwIGlvcDN4eF9jaGlwID0geworCS5sYWJlbAkJCT0gImlvcDN4eCIsCisJLmRpcmVjdGlvbl9pbnB1dAk9IGlvcDN4eF9ncGlvX2RpcmVjdGlvbl9pbnB1dCwKKwkuZ2V0CQkJPSBpb3AzeHhfZ3Bpb19nZXRfdmFsdWUsCisJLmRpcmVjdGlvbl9vdXRwdXQJPSBpb3AzeHhfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0LAorCS5zZXQJCQk9IGlvcDN4eF9ncGlvX3NldF92YWx1ZSwKKwkuYmFzZQkJCT0gMCwKKwkubmdwaW8JCQk9IElPUDNYWF9OX0dQSU9TLAorfTsKKworc3RhdGljIGludCBfX2luaXQgaW9wM3h4X2dwaW9fc2V0dXAodm9pZCkKK3sKKwlyZXR1cm4gZ3Bpb2NoaXBfYWRkKCZpb3AzeHhfY2hpcCk7Cit9CithcmNoX2luaXRjYWxsKGlvcDN4eF9ncGlvX3NldHVwKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtbXhjL0tjb25maWcgYi9hcmNoL2FybS9wbGF0LW14Yy9LY29uZmlnCmluZGV4IGJiNmUxMjcuLmUxNGVhYWQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtbXhjL0tjb25maWcKKysrIGIvYXJjaC9hcm0vcGxhdC1teGMvS2NvbmZpZwpAQCAtMyw5ICszLDE0IEBACiBtZW51ICJGcmVlc2NhbGUgTVhDIEltcGxlbWVudGF0aW9ucyIKIAogY2hvaWNlCi0JcHJvbXB0ICJNWEMvaU1YIFN5c3RlbSBUeXBlIgorCXByb21wdCAiTVhDL2lNWCBCYXNlIFR5cGUiCiAJZGVmYXVsdCBBUkNIX01YMwogCitjb25maWcgQVJDSF9NWDIKKwlib29sICJNWDItYmFzZWQiCisJaGVscAorCSAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHN5c3RlbXMgYmFzZWQgb24gdGhlIEZyZWVzY2FsZSBpLk1YMiBmYW1pbHkKKwogY29uZmlnIEFSQ0hfTVgzCiAJYm9vbCAiTVgzLWJhc2VkIgogCWhlbHAKQEAgLTEzLDYgKzE4LDcgQEAKIAogZW5kY2hvaWNlCiAKK3NvdXJjZSAiYXJjaC9hcm0vbWFjaC1teDIvS2NvbmZpZyIKIHNvdXJjZSAiYXJjaC9hcm0vbWFjaC1teDMvS2NvbmZpZyIKIAogZW5kbWVudQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvTWFrZWZpbGUgYi9hcmNoL2FybS9wbGF0LW14Yy9NYWtlZmlsZQppbmRleCBmOTZkYzAzLi5kYjY2ZTlhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW14Yy9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9wbGF0LW14Yy9NYWtlZmlsZQpAQCAtMyw0ICszLDYgQEAKICMKIAogIyBDb21tb24gc3VwcG9ydAotb2JqLXkgOj0gaXJxLm8KK29iai15IDo9IGlycS5vIGNsb2NrLm8gZ3Bpby5vIHRpbWUubworCitvYmotJChDT05GSUdfQVJDSF9NWDIpICs9IGlvbXV4LW14MS1teDIubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvY2xvY2suYyBiL2FyY2gvYXJtL3BsYXQtbXhjL2Nsb2NrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFhODZmZAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL3BsYXQtbXhjL2Nsb2NrLmMKQEAgLTAsMCArMSwzMzEgQEAKKy8qCisgKiBCYXNlZCBvbiBhcmNoL2FybS9wbGF0LW9tYXAvY2xvY2suYworICoKKyAqIENvcHlyaWdodCAoQykgMjAwNCAtIDIwMDUgTm9raWEgY29ycG9yYXRpb24KKyAqIFdyaXR0ZW4gYnkgVHV1a2thIFRpa2thbmVuIDx0dXVra2EudGlra2FuZW5AZWxla3Ryb2JpdC5jb20+CisgKiBNb2RpZmllZCBmb3Igb21hcCBzaGFyZWQgY2xvY2sgZnJhbWV3b3JrIGJ5IFRvbnkgTGluZGdyZW4gPHRvbnlAYXRvbWlkZS5jb20+CisgKiBDb3B5cmlnaHQgMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworLyogI2RlZmluZSBERUJVRyAqLworCisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CisjaW5jbHVkZSA8bGludXgvc2VtYXBob3JlLmg+CisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2suaD4KKworc3RhdGljIExJU1RfSEVBRChjbG9ja3MpOworc3RhdGljIERFRklORV9NVVRFWChjbG9ja3NfbXV0ZXgpOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFN0YW5kYXJkIGNsb2NrIGZ1bmN0aW9ucyBkZWZpbmVkIGluIGluY2x1ZGUvbGludXgvY2xrLmgKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKiBSZXRyaWV2ZSBhIGNsb2NrIGJ5IG5hbWUuCisgKgorICogTm90ZSB0aGF0IHdlIGZpcnN0IHRyeSB0byB1c2UgZGV2aWNlIGlkIG9uIHRoZSBidXMKKyAqIGFuZCBjbG9jayBuYW1lLiBJZiB0aGlzIGZhaWxzLCB3ZSB0cnkgdG8gdXNlICI8bmFtZT4uPGlkPiIuIElmIHRoaXMgZmFpbHMsCisgKiB3ZSB0cnkgdG8gdXNlIGNsb2NrIG5hbWUgb25seS4KKyAqIFRoZSByZWZlcmVuY2UgY291bnQgdG8gdGhlIGNsb2NrJ3MgbW9kdWxlIG93bmVyIHJlZiBjb3VudCBpcyBpbmNyZW1lbnRlZC4KKyAqLworc3RydWN0IGNsayAqY2xrX2dldChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmlkKQoreworCXN0cnVjdCBjbGsgKnAsICpjbGsgPSBFUlJfUFRSKC1FTk9FTlQpOworCWludCBpZG5vOworCWNvbnN0IGNoYXIgKnN0cjsKKworCWlmIChpZCA9PSBOVUxMKQorCQlyZXR1cm4gY2xrOworCisJaWYgKGRldiA9PSBOVUxMIHx8IGRldi0+YnVzICE9ICZwbGF0Zm9ybV9idXNfdHlwZSkKKwkJaWRubyA9IC0xOworCWVsc2UKKwkJaWRubyA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpLT5pZDsKKworCW11dGV4X2xvY2soJmNsb2Nrc19tdXRleCk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZjbG9ja3MsIG5vZGUpIHsKKwkJaWYgKHAtPmlkID09IGlkbm8gJiYKKwkJICAgIHN0cmNtcChpZCwgcC0+bmFtZSkgPT0gMCAmJiB0cnlfbW9kdWxlX2dldChwLT5vd25lcikpIHsKKwkJCWNsayA9IHA7CisJCQlnb3RvIGZvdW5kOworCQl9CisJfQorCisJc3RyID0gc3RycmNocihpZCwgJy4nKTsKKwlpZiAoc3RyKSB7CisJCWludCBjbnQgPSBzdHIgLSBpZDsKKwkJc3RyKys7CisJCWlkbm8gPSBzaW1wbGVfc3RydG9sKHN0ciwgTlVMTCwgMTApOworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZjbG9ja3MsIG5vZGUpIHsKKwkJCWlmIChwLT5pZCA9PSBpZG5vICYmCisJCQkgICAgc3RybGVuKHAtPm5hbWUpID09IGNudCAmJgorCQkJICAgIHN0cm5jbXAoaWQsIHAtPm5hbWUsIGNudCkgPT0gMCAmJgorCQkJICAgIHRyeV9tb2R1bGVfZ2V0KHAtPm93bmVyKSkgeworCQkJCWNsayA9IHA7CisJCQkJZ290byBmb3VuZDsKKwkJCX0KKwkJfQorCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmNsb2Nrcywgbm9kZSkgeworCQlpZiAoc3RyY21wKGlkLCBwLT5uYW1lKSA9PSAwICYmIHRyeV9tb2R1bGVfZ2V0KHAtPm93bmVyKSkgeworCQkJY2xrID0gcDsKKwkJCWdvdG8gZm91bmQ7CisJCX0KKwl9CisKKwlwcmludGsoS0VSTl9XQVJOSU5HICJjbGs6IFVuYWJsZSB0byBnZXQgcmVxdWVzdGVkIGNsb2NrOiAlc1xuIiwgaWQpOworCitmb3VuZDoKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CisKKwlyZXR1cm4gY2xrOworfQorRVhQT1JUX1NZTUJPTChjbGtfZ2V0KTsKKworc3RhdGljIHZvaWQgX19jbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm47CisKKwlfX2Nsa19kaXNhYmxlKGNsay0+cGFyZW50KTsKKwlfX2Nsa19kaXNhYmxlKGNsay0+c2Vjb25kYXJ5KTsKKworCWlmICghKC0tY2xrLT51c2Vjb3VudCkgJiYgY2xrLT5kaXNhYmxlKQorCQljbGstPmRpc2FibGUoY2xrKTsKK30KKworc3RhdGljIGludCBfX2Nsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlfX2Nsa19lbmFibGUoY2xrLT5wYXJlbnQpOworCV9fY2xrX2VuYWJsZShjbGstPnNlY29uZGFyeSk7CisKKwlpZiAoY2xrLT51c2Vjb3VudCsrID09IDAgJiYgY2xrLT5lbmFibGUpCisJCWNsay0+ZW5hYmxlKGNsayk7CisKKwlyZXR1cm4gMDsKK30KKworLyogVGhpcyBmdW5jdGlvbiBpbmNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIGNsb2NrIGFuZCBlbmFibGVzIHRoZQorICogY2xvY2sgaWYgbm90IGFscmVhZHkgZW5hYmxlZC4gVGhlIHBhcmVudCBjbG9jayB0cmVlIGlzIHJlY3Vyc2l2ZWx5IGVuYWJsZWQKKyAqLworaW50IGNsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCWludCByZXQgPSAwOworCisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW11dGV4X2xvY2soJmNsb2Nrc19tdXRleCk7CisJcmV0ID0gX19jbGtfZW5hYmxlKGNsayk7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX2VuYWJsZSk7CisKKy8qIFRoaXMgZnVuY3Rpb24gZGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBjbG9jayBhbmQgZGlzYWJsZXMKKyAqIHRoZSBjbG9jayB3aGVuIHJlZmVyZW5jZSBjb3VudCBpcyAwLiBUaGUgcGFyZW50IGNsb2NrIHRyZWUgaXMKKyAqIHJlY3Vyc2l2ZWx5IGRpc2FibGVkCisgKi8KK3ZvaWQgY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlfX2Nsa19kaXNhYmxlKGNsayk7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworfQorRVhQT1JUX1NZTUJPTChjbGtfZGlzYWJsZSk7CisKKy8qIFJldHJpZXZlIHRoZSAqY3VycmVudCogY2xvY2sgcmF0ZS4gSWYgdGhlIGNsb2NrIGl0c2VsZgorICogZG9lcyBub3QgcHJvdmlkZSBhIHNwZWNpYWwgY2FsY3VsYXRpb24gcm91dGluZSwgYXNrCisgKiBpdHMgcGFyZW50IGFuZCBzbyBvbiwgdW50aWwgb25lIGlzIGFibGUgdG8gcmV0dXJuCisgKiBhIHZhbGlkIGNsb2NrIHJhdGUKKyAqLwordW5zaWduZWQgbG9uZyBjbGtfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSkKKwkJcmV0dXJuIDBVTDsKKworCWlmIChjbGstPmdldF9yYXRlKQorCQlyZXR1cm4gY2xrLT5nZXRfcmF0ZShjbGspOworCisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7Cit9CitFWFBPUlRfU1lNQk9MKGNsa19nZXRfcmF0ZSk7CisKKy8qIERlY3JlbWVudCB0aGUgY2xvY2sncyBtb2R1bGUgcmVmZXJlbmNlIGNvdW50ICovCit2b2lkIGNsa19wdXQoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgJiYgIUlTX0VSUihjbGspKQorCQltb2R1bGVfcHV0KGNsay0+b3duZXIpOworfQorRVhQT1JUX1NZTUJPTChjbGtfcHV0KTsKKworLyogUm91bmQgdGhlIHJlcXVlc3RlZCBjbG9jayByYXRlIHRvIHRoZSBuZWFyZXN0IHN1cHBvcnRlZAorICogcmF0ZSB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcmVxdWVzdGVkIHJhdGUuCisgKiBUaGlzIGlzIGRlcGVuZGVudCBvbiB0aGUgY2xvY2sncyBjdXJyZW50IHBhcmVudC4KKyAqLworbG9uZyBjbGtfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwlpZiAoY2xrID09IE5VTEwgfHwgSVNfRVJSKGNsaykgfHwgIWNsay0+cm91bmRfcmF0ZSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gY2xrLT5yb3VuZF9yYXRlKGNsaywgcmF0ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGNsa19yb3VuZF9yYXRlKTsKKworLyogU2V0IHRoZSBjbG9jayB0byB0aGUgcmVxdWVzdGVkIGNsb2NrIHJhdGUuIFRoZSByYXRlIG11c3QKKyAqIG1hdGNoIGEgc3VwcG9ydGVkIHJhdGUgZXhhY3RseSBiYXNlZCBvbiB3aGF0IGNsa19yb3VuZF9yYXRlIHJldHVybnMKKyAqLworaW50IGNsa19zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwlpbnQgcmV0ID0gLUVJTlZBTDsKKworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSB8fCBjbGstPnNldF9yYXRlID09IE5VTEwgfHwgcmF0ZSA9PSAwKQorCQlyZXR1cm4gcmV0OworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlyZXQgPSBjbGstPnNldF9yYXRlKGNsaywgcmF0ZSk7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX3NldF9yYXRlKTsKKworLyogU2V0IHRoZSBjbG9jaydzIHBhcmVudCB0byBhbm90aGVyIGNsb2NrIHNvdXJjZSAqLworaW50IGNsa19zZXRfcGFyZW50KHN0cnVjdCBjbGsgKmNsaywgc3RydWN0IGNsayAqcGFyZW50KQoreworCWludCByZXQgPSAtRUlOVkFMOworCisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspIHx8IHBhcmVudCA9PSBOVUxMIHx8CisJICAgIElTX0VSUihwYXJlbnQpIHx8IGNsay0+c2V0X3BhcmVudCA9PSBOVUxMKQorCQlyZXR1cm4gcmV0OworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlyZXQgPSBjbGstPnNldF9wYXJlbnQoY2xrLCBwYXJlbnQpOworCWlmIChyZXQgPT0gMCkKKwkJY2xrLT5wYXJlbnQgPSBwYXJlbnQ7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX3NldF9wYXJlbnQpOworCisvKiBSZXRyaWV2ZSB0aGUgY2xvY2sncyBwYXJlbnQgY2xvY2sgc291cmNlICovCitzdHJ1Y3QgY2xrICpjbGtfZ2V0X3BhcmVudChzdHJ1Y3QgY2xrICpjbGspCit7CisJc3RydWN0IGNsayAqcmV0ID0gTlVMTDsKKworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiBjbGstPnBhcmVudDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX2dldF9wYXJlbnQpOworCisvKgorICogQWRkIGEgbmV3IGNsb2NrIHRvIHRoZSBjbG9jayB0cmVlLgorICovCitpbnQgY2xrX3JlZ2lzdGVyKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlpZiAoY2xrID09IE5VTEwgfHwgSVNfRVJSKGNsaykpCisJCXJldHVybiAtRUlOVkFMOworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlsaXN0X2FkZCgmY2xrLT5ub2RlLCAmY2xvY2tzKTsKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX3JlZ2lzdGVyKTsKKworLyogUmVtb3ZlIGEgY2xvY2sgZnJvbSB0aGUgY2xvY2sgdHJlZSAqLwordm9pZCBjbGtfdW5yZWdpc3RlcihzdHJ1Y3QgY2xrICpjbGspCit7CisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZjbG9ja3NfbXV0ZXgpOworCWxpc3RfZGVsKCZjbGstPm5vZGUpOworCW11dGV4X3VubG9jaygmY2xvY2tzX211dGV4KTsKK30KK0VYUE9SVF9TWU1CT0woY2xrX3VucmVnaXN0ZXIpOworCisjaWZkZWYgQ09ORklHX1BST0NfRlMKK3N0YXRpYyBpbnQgbXhjX2Nsb2NrX3JlYWRfcHJvYyhjaGFyICpwYWdlLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZiwKKwkJCQlpbnQgY291bnQsIGludCAqZW9mLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBjbGsgKmNsa3A7CisJY2hhciAqcCA9IHBhZ2U7CisJaW50IGxlbjsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2xrcCwgJmNsb2Nrcywgbm9kZSkgeworCQlwICs9IHNwcmludGYocCwgIiVzLSVkOlx0XHQlbHUsICVkIiwgY2xrcC0+bmFtZSwgY2xrcC0+aWQsCisJCQkJY2xrX2dldF9yYXRlKGNsa3ApLCBjbGtwLT51c2Vjb3VudCk7CisJCWlmIChjbGtwLT5wYXJlbnQpCisJCQlwICs9IHNwcmludGYocCwgIiwgJXMtJWRcbiIsIGNsa3AtPnBhcmVudC0+bmFtZSwKKwkJCQkgICAgIGNsa3AtPnBhcmVudC0+aWQpOworCQllbHNlCisJCQlwICs9IHNwcmludGYocCwgIlxuIik7CisJfQorCisJbGVuID0gKHAgLSBwYWdlKSAtIG9mZjsKKwlpZiAobGVuIDwgMCkKKwkJbGVuID0gMDsKKworCSplb2YgPSAobGVuIDw9IGNvdW50KSA/IDEgOiAwOworCSpzdGFydCA9IHBhZ2UgKyBvZmY7CisKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgaW50IF9faW5pdCBteGNfc2V0dXBfcHJvY19lbnRyeSh2b2lkKQoreworCXN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqcmVzOworCisJcmVzID0gY3JlYXRlX3Byb2NfcmVhZF9lbnRyeSgiY3B1L2Nsb2NrcyIsIDAsIE5VTEwsCisJCQkJICAgICBteGNfY2xvY2tfcmVhZF9wcm9jLCBOVUxMKTsKKwlpZiAoIXJlcykgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBjcmVhdGUgcHJvYy9jcHUvY2xvY2tzXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCXJldHVybiAwOworfQorCitsYXRlX2luaXRjYWxsKG14Y19zZXR1cF9wcm9jX2VudHJ5KTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvZ3Bpby5jIGIvYXJjaC9hcm0vcGxhdC1teGMvZ3Bpby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNzczNjcKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9wbGF0LW14Yy9ncGlvLmMKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBNWEMgR1BJTyBzdXBwb3J0LiAoYykgMjAwOCBEYW5pZWwgTWFjayA8ZGFuaWVsQGNhaWFxLmRlPgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBCYXNlZCBvbiBjb2RlIGZyb20gRnJlZXNjYWxlLAorICogQ29weXJpZ2h0IDIwMDQtMjAwNiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvYnVnLmg+CisKK3N0YXRpYyBzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqbXhjX2dwaW9fcG9ydHM7CitzdGF0aWMgaW50IGdwaW9fdGFibGVfc2l6ZTsKKworLyogTm90ZTogVGhpcyBkcml2ZXIgYXNzdW1lcyAzMiBHUElPcyBhcmUgaGFuZGxlZCBpbiBvbmUgcmVnaXN0ZXIgKi8KKworc3RhdGljIHZvaWQgX2NsZWFyX2dwaW9faXJxc3RhdHVzKHN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0LCB1MzIgaW5kZXgpCit7CisJX19yYXdfd3JpdGVsKDEgPDwgaW5kZXgsIHBvcnQtPmJhc2UgKyBHUElPX0lTUik7Cit9CisKK3N0YXRpYyB2b2lkIF9zZXRfZ3Bpb19pcnFlbmFibGUoc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQsIHUzMiBpbmRleCwKKwkJCQlpbnQgZW5hYmxlKQoreworCXUzMiBsOworCisJbCA9IF9fcmF3X3JlYWRsKHBvcnQtPmJhc2UgKyBHUElPX0lNUik7CisJbCA9IChsICYgKH4oMSA8PCBpbmRleCkpKSB8ICghIWVuYWJsZSA8PCBpbmRleCk7CisJX19yYXdfd3JpdGVsKGwsIHBvcnQtPmJhc2UgKyBHUElPX0lNUik7Cit9CisKK3N0YXRpYyB2b2lkIGdwaW9fYWNrX2lycSh1MzIgaXJxKQoreworCXUzMiBncGlvID0gaXJxX3RvX2dwaW8oaXJxKTsKKwlfY2xlYXJfZ3Bpb19pcnFzdGF0dXMoJm14Y19ncGlvX3BvcnRzW2dwaW8gLyAzMl0sIGdwaW8gJiAweDFmKTsKK30KKworc3RhdGljIHZvaWQgZ3Bpb19tYXNrX2lycSh1MzIgaXJxKQoreworCXUzMiBncGlvID0gaXJxX3RvX2dwaW8oaXJxKTsKKwlfc2V0X2dwaW9faXJxZW5hYmxlKCZteGNfZ3Bpb19wb3J0c1tncGlvIC8gMzJdLCBncGlvICYgMHgxZiwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIGdwaW9fdW5tYXNrX2lycSh1MzIgaXJxKQoreworCXUzMiBncGlvID0gaXJxX3RvX2dwaW8oaXJxKTsKKwlfc2V0X2dwaW9faXJxZW5hYmxlKCZteGNfZ3Bpb19wb3J0c1tncGlvIC8gMzJdLCBncGlvICYgMHgxZiwgMSk7Cit9CisKK3N0YXRpYyBpbnQgZ3Bpb19zZXRfaXJxX3R5cGUodTMyIGlycSwgdTMyIHR5cGUpCit7CisJdTMyIGdwaW8gPSBpcnFfdG9fZ3BpbyhpcnEpOworCXN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0ID0gJm14Y19ncGlvX3BvcnRzW2dwaW8gLyAzMl07CisJdTMyIGJpdCwgdmFsOworCWludCBlZGdlOworCXZvaWQgX19pb21lbSAqcmVnID0gcG9ydC0+YmFzZTsKKworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgSVJRVF9SSVNJTkc6CisJCWVkZ2UgPSBHUElPX0lOVF9SSVNFX0VER0U7CisJCWJyZWFrOworCWNhc2UgSVJRVF9GQUxMSU5HOgorCQllZGdlID0gR1BJT19JTlRfRkFMTF9FREdFOworCQlicmVhazsKKwljYXNlIElSUVRfTE9XOgorCQllZGdlID0gR1BJT19JTlRfTE9XX0xFVjsKKwkJYnJlYWs7CisJY2FzZSBJUlFUX0hJR0g6CisJCWVkZ2UgPSBHUElPX0lOVF9ISUdIX0xFVjsKKwkJYnJlYWs7CisJZGVmYXVsdDoJLyogdGhpcyBpbmNsdWRlcyBJUlFUX0JPVEhFREdFICovCisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJlZyArPSBHUElPX0lDUjEgKyAoKGdwaW8gJiAweDEwKSA+PiAyKTsgLyogbG93ZXIgb3IgdXBwZXIgcmVnaXN0ZXIgKi8KKwliaXQgPSBncGlvICYgMHhmOworCXZhbCA9IF9fcmF3X3JlYWRsKHJlZykgJiB+KDB4MyA8PCAoYml0IDw8IDEpKTsKKwlfX3Jhd193cml0ZWwodmFsIHwgKGVkZ2UgPDwgKGJpdCA8PCAxKSksIHJlZyk7CisJX2NsZWFyX2dwaW9faXJxc3RhdHVzKHBvcnQsIGdwaW8gJiAweDFmKTsKKworCXJldHVybiAwOworfQorCisvKiBoYW5kbGUgbiBpbnRlcnJ1cHRzIGluIG9uZSBzdGF0dXMgcmVnaXN0ZXIgKi8KK3N0YXRpYyB2b2lkIG14Y19ncGlvX2lycV9oYW5kbGVyKHN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0LCB1MzIgaXJxX3N0YXQpCit7CisJdTMyIGdwaW9faXJxX25vOworCisJZ3Bpb19pcnFfbm8gPSBwb3J0LT52aXJ0dWFsX2lycV9zdGFydDsKKwlmb3IgKDsgaXJxX3N0YXQgIT0gMDsgaXJxX3N0YXQgPj49IDEsIGdwaW9faXJxX25vKyspIHsKKworCQlpZiAoKGlycV9zdGF0ICYgMSkgPT0gMCkKKwkJCWNvbnRpbnVlOworCisJCUJVR19PTighKGlycV9kZXNjW2dwaW9faXJxX25vXS5oYW5kbGVfaXJxKSk7CisJCWlycV9kZXNjW2dwaW9faXJxX25vXS5oYW5kbGVfaXJxKGdwaW9faXJxX25vLAorCQkJCSZpcnFfZGVzY1tncGlvX2lycV9ub10pOworCX0KK30KKworI2lmZGVmIENPTkZJR19BUkNIX01YMworLyogTVgzIGhhcyBvbmUgaW50ZXJydXB0ICpwZXIqIGdwaW8gcG9ydCAqLworc3RhdGljIHZvaWQgbXgzX2dwaW9faXJxX2hhbmRsZXIodTMyIGlycSwgc3RydWN0IGlycV9kZXNjICpkZXNjKQoreworCXUzMiBpcnFfc3RhdDsKKwlzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqcG9ydCA9IChzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqKWdldF9pcnFfZGF0YShpcnEpOworCisJaXJxX3N0YXQgPSBfX3Jhd19yZWFkbChwb3J0LT5iYXNlICsgR1BJT19JU1IpICYKKwkJCV9fcmF3X3JlYWRsKHBvcnQtPmJhc2UgKyBHUElPX0lNUik7CisJQlVHX09OKCFpcnFfc3RhdCk7CisJbXhjX2dwaW9faXJxX2hhbmRsZXIocG9ydCwgaXJxX3N0YXQpOworfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDIKKy8qIE1YMiBoYXMgb25lIGludGVycnVwdCAqZm9yIGFsbCogZ3BpbyBwb3J0cyAqLworc3RhdGljIHZvaWQgbXgyX2dwaW9faXJxX2hhbmRsZXIodTMyIGlycSwgc3RydWN0IGlycV9kZXNjICpkZXNjKQoreworCWludCBpOworCXUzMiBpcnFfbXNrLCBpcnFfc3RhdDsKKwlzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqcG9ydCA9IChzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqKWdldF9pcnFfZGF0YShpcnEpOworCisJLyogd2FsayB0aHJvdWdoIGFsbCBpbnRlcnJ1cHQgc3RhdHVzIHJlZ2lzdGVycyAqLworCWZvciAoaSA9IDA7IGkgPCBncGlvX3RhYmxlX3NpemU7IGkrKykgeworCQlpcnFfbXNrID0gX19yYXdfcmVhZGwocG9ydFtpXS5iYXNlICsgR1BJT19JTVIpOworCQlpZiAoIWlycV9tc2spCisJCQljb250aW51ZTsKKworCQlpcnFfc3RhdCA9IF9fcmF3X3JlYWRsKHBvcnRbaV0uYmFzZSArIEdQSU9fSVNSKSAmIGlycV9tc2s7CisJCWlmIChpcnFfc3RhdCkKKwkJCW14Y19ncGlvX2lycV9oYW5kbGVyKCZwb3J0W2ldLCBpcnFfc3RhdCk7CisJfQorfQorI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgZ3Bpb19pcnFfY2hpcCA9IHsKKwkuYWNrID0gZ3Bpb19hY2tfaXJxLAorCS5tYXNrID0gZ3Bpb19tYXNrX2lycSwKKwkudW5tYXNrID0gZ3Bpb191bm1hc2tfaXJxLAorCS5zZXRfdHlwZSA9IGdwaW9fc2V0X2lycV90eXBlLAorfTsKKworc3RhdGljIHZvaWQgX3NldF9ncGlvX2RpcmVjdGlvbihzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQsCisJCQkJaW50IGRpcikKK3sKKwlzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqcG9ydCA9CisJCWNvbnRhaW5lcl9vZihjaGlwLCBzdHJ1Y3QgbXhjX2dwaW9fcG9ydCwgY2hpcCk7CisJdTMyIGw7CisKKwlsID0gX19yYXdfcmVhZGwocG9ydC0+YmFzZSArIEdQSU9fR0RJUik7CisJaWYgKGRpcikKKwkJbCB8PSAxIDw8IG9mZnNldDsKKwllbHNlCisJCWwgJj0gfigxIDw8IG9mZnNldCk7CisJX19yYXdfd3JpdGVsKGwsIHBvcnQtPmJhc2UgKyBHUElPX0dESVIpOworfQorCitzdGF0aWMgdm9pZCBteGNfZ3Bpb19zZXQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgb2Zmc2V0LCBpbnQgdmFsdWUpCit7CisJc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQgPQorCQljb250YWluZXJfb2YoY2hpcCwgc3RydWN0IG14Y19ncGlvX3BvcnQsIGNoaXApOworCXZvaWQgX19pb21lbSAqcmVnID0gcG9ydC0+YmFzZSArIEdQSU9fRFI7CisJdTMyIGw7CisKKwlsID0gKF9fcmF3X3JlYWRsKHJlZykgJiAofigxIDw8IG9mZnNldCkpKSB8ICh2YWx1ZSA8PCBvZmZzZXQpOworCV9fcmF3X3dyaXRlbChsLCByZWcpOworfQorCitzdGF0aWMgaW50IG14Y19ncGlvX2dldChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQpCit7CisJc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQgPQorCQljb250YWluZXJfb2YoY2hpcCwgc3RydWN0IG14Y19ncGlvX3BvcnQsIGNoaXApOworCisJcmV0dXJuIChfX3Jhd19yZWFkbChwb3J0LT5iYXNlICsgR1BJT19EUikgPj4gb2Zmc2V0KSAmIDE7Cit9CisKK3N0YXRpYyBpbnQgbXhjX2dwaW9fZGlyZWN0aW9uX2lucHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCkKK3sKKwlfc2V0X2dwaW9fZGlyZWN0aW9uKGNoaXAsIG9mZnNldCwgMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbXhjX2dwaW9fZGlyZWN0aW9uX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLAorCQkJCSAgICAgdW5zaWduZWQgb2Zmc2V0LCBpbnQgdmFsdWUpCit7CisJX3NldF9ncGlvX2RpcmVjdGlvbihjaGlwLCBvZmZzZXQsIDEpOworCW14Y19ncGlvX3NldChjaGlwLCBvZmZzZXQsIHZhbHVlKTsKKwlyZXR1cm4gMDsKK30KKworaW50IF9faW5pdCBteGNfZ3Bpb19pbml0KHN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0LCBpbnQgY250KQoreworCWludCBpLCBqOworCisJLyogc2F2ZSBmb3IgbG9jYWwgdXNhZ2UgKi8KKwlteGNfZ3Bpb19wb3J0cyA9IHBvcnQ7CisJZ3Bpb190YWJsZV9zaXplID0gY250OworCisJcHJpbnRrKEtFUk5fSU5GTyAiTVhDIEdQSU8gaGFyZHdhcmVcbiIpOworCisJZm9yIChpID0gMDsgaSA8IGNudDsgaSsrKSB7CisJCS8qIGRpc2FibGUgdGhlIGludGVycnVwdCBhbmQgY2xlYXIgdGhlIHN0YXR1cyAqLworCQlfX3Jhd193cml0ZWwoMCwgcG9ydFtpXS5iYXNlICsgR1BJT19JTVIpOworCQlfX3Jhd193cml0ZWwofjAsIHBvcnRbaV0uYmFzZSArIEdQSU9fSVNSKTsKKwkJZm9yIChqID0gcG9ydFtpXS52aXJ0dWFsX2lycV9zdGFydDsKKwkJCWogPCBwb3J0W2ldLnZpcnR1YWxfaXJxX3N0YXJ0ICsgMzI7IGorKykgeworCQkJc2V0X2lycV9jaGlwKGosICZncGlvX2lycV9jaGlwKTsKKwkJCXNldF9pcnFfaGFuZGxlcihqLCBoYW5kbGVfZWRnZV9pcnEpOworCQkJc2V0X2lycV9mbGFncyhqLCBJUlFGX1ZBTElEKTsKKwkJfQorCisJCS8qIHJlZ2lzdGVyIGdwaW8gY2hpcCAqLworCQlwb3J0W2ldLmNoaXAuZGlyZWN0aW9uX2lucHV0ID0gbXhjX2dwaW9fZGlyZWN0aW9uX2lucHV0OworCQlwb3J0W2ldLmNoaXAuZGlyZWN0aW9uX291dHB1dCA9IG14Y19ncGlvX2RpcmVjdGlvbl9vdXRwdXQ7CisJCXBvcnRbaV0uY2hpcC5nZXQgPSBteGNfZ3Bpb19nZXQ7CisJCXBvcnRbaV0uY2hpcC5zZXQgPSBteGNfZ3Bpb19zZXQ7CisJCXBvcnRbaV0uY2hpcC5iYXNlID0gaSAqIDMyOworCQlwb3J0W2ldLmNoaXAubmdwaW8gPSAzMjsKKworCQkvKiBpdHMgYSBzZXJpb3VzIGNvbmZpZ3VyYXRpb24gYnVnIHdoZW4gaXQgZmFpbHMgKi8KKwkJQlVHX09OKCBncGlvY2hpcF9hZGQoJnBvcnRbaV0uY2hpcCkgPCAwICk7CisKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDMKKwkJLyogc2V0dXAgb25lIGhhbmRsZXIgZm9yIGVhY2ggZW50cnkgKi8KKwkJc2V0X2lycV9jaGFpbmVkX2hhbmRsZXIocG9ydFtpXS5pcnEsIG14M19ncGlvX2lycV9oYW5kbGVyKTsKKwkJc2V0X2lycV9kYXRhKHBvcnRbaV0uaXJxLCAmcG9ydFtpXSk7CisjZW5kaWYKKwl9CisKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDIKKwkvKiBzZXR1cCBvbmUgaGFuZGxlciBmb3IgYWxsIEdQSU8gaW50ZXJydXB0cyAqLworCXNldF9pcnFfY2hhaW5lZF9oYW5kbGVyKHBvcnRbMF0uaXJxLCBteDJfZ3Bpb19pcnFfaGFuZGxlcik7CisJc2V0X2lycV9kYXRhKHBvcnRbMF0uaXJxLCBwb3J0KTsKKyNlbmRpZgorCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvaW9tdXgtbXgxLW14Mi5jIGIvYXJjaC9hcm0vcGxhdC1teGMvaW9tdXgtbXgxLW14Mi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ODU1NzEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9wbGF0LW14Yy9pb211eC1teDEtbXgyLmMKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiAgYXJjaC9hcm0vbWFjaC1teGMvZ2VuZXJpYy5jCisgKgorICogIGF1dGhvcjogU2FzY2hhIEhhdWVyCisgKiAgQ3JlYXRlZDogYXByaWwgMjB0aCwgMjAwNAorICogIENvcHlyaWdodDogU3luZXJ0cm9uaXh4IEdtYkgKKyAqCisgKiAgQ29tbW9uIGNvZGUgZm9yIGkuTVggbWFjaGluZXMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pb211eC1teDEtbXgyLmg+CisKK3ZvaWQgbXhjX2dwaW9fbW9kZShpbnQgZ3Bpb19tb2RlKQoreworCXVuc2lnbmVkIGludCBwaW4gPSBncGlvX21vZGUgJiBHUElPX1BJTl9NQVNLOworCXVuc2lnbmVkIGludCBwb3J0ID0gKGdwaW9fbW9kZSAmIEdQSU9fUE9SVF9NQVNLKSA+PiBHUElPX1BPUlRfU0hJRlQ7CisJdW5zaWduZWQgaW50IG9jciA9IChncGlvX21vZGUgJiBHUElPX09DUl9NQVNLKSA+PiBHUElPX09DUl9TSElGVDsKKwl1bnNpZ25lZCBpbnQgdG1wOworCisJLyogUHVsbHVwIGVuYWJsZSAqLworCXRtcCA9IF9fcmF3X3JlYWRsKFZBX0dQSU9fQkFTRSArIE1YQ19QVUVOKHBvcnQpKTsKKwlpZiAoZ3Bpb19tb2RlICYgR1BJT19QVUVOKQorCQl0bXAgfD0gKDEgPDwgcGluKTsKKwllbHNlCisJCXRtcCAmPSB+KDEgPDwgcGluKTsKKwlfX3Jhd193cml0ZWwodG1wLCBWQV9HUElPX0JBU0UgKyBNWENfUFVFTihwb3J0KSk7CisKKwkvKiBEYXRhIGRpcmVjdGlvbiAqLworCXRtcCA9IF9fcmF3X3JlYWRsKFZBX0dQSU9fQkFTRSArIE1YQ19ERElSKHBvcnQpKTsKKwlpZiAoZ3Bpb19tb2RlICYgR1BJT19PVVQpCisJCXRtcCB8PSAxIDw8IHBpbjsKKwllbHNlCisJCXRtcCAmPSB+KDEgPDwgcGluKTsKKwlfX3Jhd193cml0ZWwodG1wLCBWQV9HUElPX0JBU0UgKyBNWENfRERJUihwb3J0KSk7CisKKwkvKiBQcmltYXJ5IC8gYWx0ZXJuYXRlIGZ1bmN0aW9uICovCisJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX0dQUihwb3J0KSk7CisJaWYgKGdwaW9fbW9kZSAmIEdQSU9fQUYpCisJCXRtcCB8PSAoMSA8PCBwaW4pOworCWVsc2UKKwkJdG1wICY9IH4oMSA8PCBwaW4pOworCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19HUFIocG9ydCkpOworCisJLyogdXNlIGFzIGdwaW8/ICovCisJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX0dJVVMocG9ydCkpOworCWlmIChncGlvX21vZGUgJiAoR1BJT19QRiB8IEdQSU9fQUYpKQorCQl0bXAgJj0gfigxIDw8IHBpbik7CisJZWxzZQorCQl0bXAgfD0gKDEgPDwgcGluKTsKKwlfX3Jhd193cml0ZWwodG1wLCBWQV9HUElPX0JBU0UgKyBNWENfR0lVUyhwb3J0KSk7CisKKwlpZiAocGluIDwgMTYpIHsKKwkJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX09DUjEocG9ydCkpOworCQl0bXAgJj0gfigzIDw8IChwaW4gKiAyKSk7CisJCXRtcCB8PSAob2NyIDw8IChwaW4gKiAyKSk7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19PQ1IxKHBvcnQpKTsKKworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfSUNPTkZBMShwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9ICgoZ3Bpb19tb2RlID4+IEdQSU9fQU9VVF9TSElGVCkgJiAzKSA8PCAocGluICogMik7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkExKHBvcnQpKTsKKworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfSUNPTkZCMShwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9ICgoZ3Bpb19tb2RlID4+IEdQSU9fQk9VVF9TSElGVCkgJiAzKSA8PCAocGluICogMik7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkIxKHBvcnQpKTsKKwl9IGVsc2UgeworCQlwaW4gLT0gMTY7CisKKwkJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX09DUjIocG9ydCkpOworCQl0bXAgJj0gfigzIDw8IChwaW4gKiAyKSk7CisJCXRtcCB8PSAob2NyIDw8IChwaW4gKiAyKSk7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19PQ1IyKHBvcnQpKTsKKworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfSUNPTkZBMihwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9ICgoZ3Bpb19tb2RlID4+IEdQSU9fQU9VVF9TSElGVCkgJiAzKSA8PCAocGluICogMik7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkEyKHBvcnQpKTsKKworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfSUNPTkZCMihwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9ICgoZ3Bpb19tb2RlID4+IEdQSU9fQk9VVF9TSElGVCkgJiAzKSA8PCAocGluICogMik7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkIyKHBvcnQpKTsKKwl9Cit9CitFWFBPUlRfU1lNQk9MKG14Y19ncGlvX21vZGUpOworCitpbnQgbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhjb25zdCBpbnQgKnBpbl9saXN0LCB1bnNpZ25lZCBjb3VudCwKKwkJCQlpbnQgYWxsb2NfbW9kZSwgY29uc3QgY2hhciAqbGFiZWwpCit7CisJY29uc3QgaW50ICpwID0gcGluX2xpc3Q7CisJaW50IGk7CisJdW5zaWduZWQgZ3BpbzsKKwl1bnNpZ25lZCBtb2RlOworCisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJZ3BpbyA9ICpwICYgKEdQSU9fUElOX01BU0sgfCBHUElPX1BPUlRfTUFTSyk7CisJCW1vZGUgPSAqcCAmIH4oR1BJT19QSU5fTUFTSyB8IEdQSU9fUE9SVF9NQVNLKTsKKworCQlpZiAoZ3BpbyA+PSAoR1BJT19QT1JUX01BWCArIDEpICogMzIpCisJCQlnb3RvIHNldHVwX2Vycm9yOworCisJCWlmIChhbGxvY19tb2RlICYgTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFKQorCQkJZ3Bpb19mcmVlKGdwaW8pOworCQllbHNlIGlmICghKGFsbG9jX21vZGUgJiBNWENfR1BJT19BTExPQ19NT0RFX05PX0FMTE9DKSkKKwkJCWlmIChncGlvX3JlcXVlc3QoZ3BpbywgbGFiZWwpCisJCQkgICAmJiAhKGFsbG9jX21vZGUgJiBNWENfR1BJT19BTExPQ19NT0RFX1RSWV9BTExPQykpCisJCQkJZ290byBzZXR1cF9lcnJvcjsKKworCQlpZiAoIShhbGxvY19tb2RlICYgKE1YQ19HUElPX0FMTE9DX01PREVfQUxMT0NfT05MWSB8CisJCQkJICAgIE1YQ19HUElPX0FMTE9DX01PREVfUkVMRUFTRSkpKQorCQkJbXhjX2dwaW9fbW9kZShncGlvIHwgbW9kZSk7CisKKwkJcCsrOworCX0KKwlyZXR1cm4gMDsKKworc2V0dXBfZXJyb3I6CisJaWYgKGFsbG9jX21vZGUgJiAoTVhDX0dQSU9fQUxMT0NfTU9ERV9OT19BTExPQyB8CisJICAgIE1YQ19HUElPX0FMTE9DX01PREVfVFJZX0FMTE9DKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl3aGlsZSAocCAhPSBwaW5fbGlzdCkgeworCQlwLS07CisJCWdwaW8gPSAqcCAmIChHUElPX1BJTl9NQVNLIHwgR1BJT19QT1JUX01BU0spOworCQlncGlvX2ZyZWUoZ3Bpbyk7CisJfQorCisJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MKG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMpOworCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW14Yy9pcnEuYyBiL2FyY2gvYXJtL3BsYXQtbXhjL2lycS5jCmluZGV4IDJhZDVhNjkuLjFmYmUwMWQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtbXhjL2lycS5jCisrKyBiL2FyY2gvYXJtL3BsYXQtbXhjL2lycS5jCkBAIC0xLDI0ICsxLDU5IEBACiAvKgotICogIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLS8qCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KIAorI2RlZmluZSBBVklDX0JBU0UJCUlPX0FERFJFU1MoQVZJQ19CQVNFX0FERFIpCisjZGVmaW5lIEFWSUNfSU5UQ05UTAkJKEFWSUNfQkFTRSArIDB4MDApCS8qIGludCBjb250cm9sIHJlZyAqLworI2RlZmluZSBBVklDX05JTUFTSwkJKEFWSUNfQkFTRSArIDB4MDQpCS8qIGludCBtYXNrIHJlZyAqLworI2RlZmluZSBBVklDX0lOVEVOTlVNCQkoQVZJQ19CQVNFICsgMHgwOCkJLyogaW50IGVuYWJsZSBudW1iZXIgcmVnICovCisjZGVmaW5lIEFWSUNfSU5URElTTlVNCQkoQVZJQ19CQVNFICsgMHgwQykJLyogaW50IGRpc2FibGUgbnVtYmVyIHJlZyAqLworI2RlZmluZSBBVklDX0lOVEVOQUJMRUgJCShBVklDX0JBU0UgKyAweDEwKQkvKiBpbnQgZW5hYmxlIHJlZyBoaWdoICovCisjZGVmaW5lIEFWSUNfSU5URU5BQkxFTAkJKEFWSUNfQkFTRSArIDB4MTQpCS8qIGludCBlbmFibGUgcmVnIGxvdyAqLworI2RlZmluZSBBVklDX0lOVFRZUEVICQkoQVZJQ19CQVNFICsgMHgxOCkJLyogaW50IHR5cGUgcmVnIGhpZ2ggKi8KKyNkZWZpbmUgQVZJQ19JTlRUWVBFTAkJKEFWSUNfQkFTRSArIDB4MUMpCS8qIGludCB0eXBlIHJlZyBsb3cgKi8KKyNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZNwkoQVZJQ19CQVNFICsgMHgyMCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsNyAqLworI2RlZmluZSBBVklDX05JUFJJT1JJVFk2CShBVklDX0JBU0UgKyAweDI0KQkvKiBub3JtIGludCBwcmlvcml0eSBsdmw2ICovCisjZGVmaW5lIEFWSUNfTklQUklPUklUWTUJKEFWSUNfQkFTRSArIDB4MjgpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDUgKi8KKyNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZNAkoQVZJQ19CQVNFICsgMHgyQykJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsNCAqLworI2RlZmluZSBBVklDX05JUFJJT1JJVFkzCShBVklDX0JBU0UgKyAweDMwKQkvKiBub3JtIGludCBwcmlvcml0eSBsdmwzICovCisjZGVmaW5lIEFWSUNfTklQUklPUklUWTIJKEFWSUNfQkFTRSArIDB4MzQpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDIgKi8KKyNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZMQkoQVZJQ19CQVNFICsgMHgzOCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsMSAqLworI2RlZmluZSBBVklDX05JUFJJT1JJVFkwCShBVklDX0JBU0UgKyAweDNDKQkvKiBub3JtIGludCBwcmlvcml0eSBsdmwwICovCisjZGVmaW5lIEFWSUNfTklWRUNTUgkJKEFWSUNfQkFTRSArIDB4NDApCS8qIG5vcm0gaW50IHZlY3Rvci9zdGF0dXMgKi8KKyNkZWZpbmUgQVZJQ19GSVZFQ1NSCQkoQVZJQ19CQVNFICsgMHg0NCkJLyogZmFzdCBpbnQgdmVjdG9yL3N0YXR1cyAqLworI2RlZmluZSBBVklDX0lOVFNSQ0gJCShBVklDX0JBU0UgKyAweDQ4KQkvKiBpbnQgc291cmNlIHJlZyBoaWdoICovCisjZGVmaW5lIEFWSUNfSU5UU1JDTAkJKEFWSUNfQkFTRSArIDB4NEMpCS8qIGludCBzb3VyY2UgcmVnIGxvdyAqLworI2RlZmluZSBBVklDX0lOVEZSQ0gJCShBVklDX0JBU0UgKyAweDUwKQkvKiBpbnQgZm9yY2UgcmVnIGhpZ2ggKi8KKyNkZWZpbmUgQVZJQ19JTlRGUkNMCQkoQVZJQ19CQVNFICsgMHg1NCkJLyogaW50IGZvcmNlIHJlZyBsb3cgKi8KKyNkZWZpbmUgQVZJQ19OSVBOREgJCShBVklDX0JBU0UgKyAweDU4KQkvKiBub3JtIGludCBwZW5kaW5nIGhpZ2ggKi8KKyNkZWZpbmUgQVZJQ19OSVBOREwJCShBVklDX0JBU0UgKyAweDVDKQkvKiBub3JtIGludCBwZW5kaW5nIGxvdyAqLworI2RlZmluZSBBVklDX0ZJUE5ESAkJKEFWSUNfQkFTRSArIDB4NjApCS8qIGZhc3QgaW50IHBlbmRpbmcgaGlnaCAqLworI2RlZmluZSBBVklDX0ZJUE5ETAkJKEFWSUNfQkFTRSArIDB4NjQpCS8qIGZhc3QgaW50IHBlbmRpbmcgbG93ICovCisKKyNkZWZpbmUgU1lTVEVNX1BSRVZfUkVHCQlJT19BRERSRVNTKElJTV9CQVNFX0FERFIgKyAweDIwKQorI2RlZmluZSBTWVNURU1fU1JFVl9SRUcJCUlPX0FERFJFU1MoSUlNX0JBU0VfQUREUiArIDB4MjQpCisjZGVmaW5lIElJTV9QUk9EX1JFVl9TSAkJMworI2RlZmluZSBJSU1fUFJPRF9SRVZfTEVOCTUKKwogLyogRGlzYWJsZSBpbnRlcnJ1cHQgbnVtYmVyICJpcnEiIGluIHRoZSBBVklDICovCiBzdGF0aWMgdm9pZCBteGNfbWFza19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKQEAgLTMyLDcgKzY3LDcgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBteGNfYXZpY19jaGlwID0gewotCS5tYXNrX2FjayA9IG14Y19tYXNrX2lycSwKKwkuYWNrID0gbXhjX21hc2tfaXJxLAogCS5tYXNrID0gbXhjX21hc2tfaXJxLAogCS51bm1hc2sgPSBteGNfdW5tYXNrX2lycSwKIH07CkBAIC03MSw1ICsxMDYsOCBAQAogCXJlZyB8PSAoMHhGIDw8IDI4KTsKIAlfX3Jhd193cml0ZWwocmVnLCBBVklDX05JUFJJT1JJVFk2KTsKIAorCS8qIGluaXQgYXJjaGl0ZWN0dXJlcyBjaGFpbmVkIGludGVycnVwdCBoYW5kbGVyICovCisJbXhjX3JlZ2lzdGVyX2dwaW9zKCk7CisKIAlwcmludGsoS0VSTl9JTkZPICJNWEMgSVJRIGluaXRpYWxpemVkXG4iKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtbXhjL3RpbWUuYyBiL2FyY2gvYXJtL3BsYXQtbXhjL3RpbWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmY4NjM0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vcGxhdC1teGMvdGltZS5jCkBAIC0wLDAgKzEsMjI4IEBACisvKgorICogIGxpbnV4L2FyY2gvYXJtL3BsYXQtbXhjL3RpbWUuYworICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEZWVwIEJsdWUgU29sdXRpb25zCisgKiAgQ29weXJpZ2h0IChDKSAyMDAyIFNoYW5lIE5heSAoc2hhbmVAbWluaXJsLmNvbSkKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwNyBQYXZlbCBQaXNhIChwcGlzYUBwaWtyb24uY29tKQorICogIENvcHlyaWdodCAoQykgMjAwOCBKdWVyZ2VuIEJlaXNlcnQgKGtlcm5lbEBwZW5ndXRyb25peC5kZSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL214Y190aW1lci5oPgorCitzdGF0aWMgc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSBjbG9ja2V2ZW50X214YzsKK3N0YXRpYyBlbnVtIGNsb2NrX2V2ZW50X21vZGUgY2xvY2tldmVudF9tb2RlID0gQ0xPQ0tfRVZUX01PREVfVU5VU0VEOworCisvKiBjbG9jayBzb3VyY2UgZm9yIHRoZSB0aW1lciAqLworc3RhdGljIHN0cnVjdCBjbGsgKnRpbWVyX2NsazsKKworLyogY2xvY2sgc291cmNlICovCisKK3N0YXRpYyBjeWNsZV90IG14Y19nZXRfY3ljbGVzKHZvaWQpCit7CisJcmV0dXJuIF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVENOKTsKK30KKworc3RhdGljIHN0cnVjdCBjbG9ja3NvdXJjZSBjbG9ja3NvdXJjZV9teGMgPSB7CisJLm5hbWUgCQk9ICJteGNfdGltZXIxIiwKKwkucmF0aW5nCQk9IDIwMCwKKwkucmVhZAkJPSBteGNfZ2V0X2N5Y2xlcywKKwkubWFzawkJPSBDTE9DS1NPVVJDRV9NQVNLKDMyKSwKKwkuc2hpZnQgCQk9IDIwLAorCS5mbGFncwkJPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUywKK307CisKK3N0YXRpYyBpbnQgX19pbml0IG14Y19jbG9ja3NvdXJjZV9pbml0KHZvaWQpCit7CisJdW5zaWduZWQgaW50IGNsb2NrOworCisJY2xvY2sgPSBjbGtfZ2V0X3JhdGUodGltZXJfY2xrKTsKKworCWNsb2Nrc291cmNlX214Yy5tdWx0ID0gY2xvY2tzb3VyY2VfaHoybXVsdChjbG9jaywKKwkJCQkJY2xvY2tzb3VyY2VfbXhjLnNoaWZ0KTsKKwljbG9ja3NvdXJjZV9yZWdpc3RlcigmY2xvY2tzb3VyY2VfbXhjKTsKKworCXJldHVybiAwOworfQorCisvKiBjbG9jayBldmVudCAqLworCitzdGF0aWMgaW50IG14Y19zZXRfbmV4dF9ldmVudCh1bnNpZ25lZCBsb25nIGV2dCwKKwkJCSAgICAgIHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKnVudXNlZCkKK3sKKwl1bnNpZ25lZCBsb25nIHRjbXA7CisKKwl0Y21wID0gX19yYXdfcmVhZGwoVElNRVJfQkFTRSArIE1YQ19UQ04pICsgZXZ0OworCV9fcmF3X3dyaXRlbCh0Y21wLCBUSU1FUl9CQVNFICsgTVhDX1RDTVApOworCisJcmV0dXJuIChpbnQpKHRjbXAgLSBfX3Jhd19yZWFkbChUSU1FUl9CQVNFICsgTVhDX1RDTikpIDwgMCA/CisJCQkJLUVUSU1FIDogMDsKK30KKworI2lmZGVmIERFQlVHCitzdGF0aWMgY29uc3QgY2hhciAqY2xvY2tfZXZlbnRfbW9kZV9sYWJlbFtdID0geworCVtDTE9DS19FVlRfTU9ERV9QRVJJT0RJQ10gPSAiQ0xPQ0tfRVZUX01PREVfUEVSSU9ESUMiLAorCVtDTE9DS19FVlRfTU9ERV9PTkVTSE9UXSAgPSAiQ0xPQ0tfRVZUX01PREVfT05FU0hPVCIsCisJW0NMT0NLX0VWVF9NT0RFX1NIVVRET1dOXSA9ICJDTE9DS19FVlRfTU9ERV9TSFVURE9XTiIsCisJW0NMT0NLX0VWVF9NT0RFX1VOVVNFRF0gICA9ICJDTE9DS19FVlRfTU9ERV9VTlVTRUQiCit9OworI2VuZGlmIC8qIERFQlVHICovCisKK3N0YXRpYyB2b2lkIG14Y19zZXRfbW9kZShlbnVtIGNsb2NrX2V2ZW50X21vZGUgbW9kZSwKKwkJCQlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCS8qCisJICogVGhlIHRpbWVyIGludGVycnVwdCBnZW5lcmF0aW9uIGlzIGRpc2FibGVkIGF0IGxlYXN0CisJICogZm9yIGVub3VnaCB0aW1lIHRvIGNhbGwgbXhjX3NldF9uZXh0X2V2ZW50KCkKKwkgKi8KKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwkvKiBEaXNhYmxlIGludGVycnVwdCBpbiBHUFQgbW9kdWxlICovCisJZ3B0X2lycV9kaXNhYmxlKCk7CisKKwlpZiAobW9kZSAhPSBjbG9ja2V2ZW50X21vZGUpIHsKKwkJLyogU2V0IGV2ZW50IHRpbWUgaW50byBmYXItZmFyIGZ1dHVyZSAqLworCQlfX3Jhd193cml0ZWwoX19yYXdfcmVhZGwoVElNRVJfQkFTRSArIE1YQ19UQ04pIC0gMywKKwkJCQlUSU1FUl9CQVNFICsgTVhDX1RDTVApOworCQkvKiBDbGVhciBwZW5kaW5nIGludGVycnVwdCAqLworCQlncHRfaXJxX2Fja25vd2xlZGdlKCk7CisJfQorCisjaWZkZWYgREVCVUcKKwlwcmludGsoS0VSTl9JTkZPICJteGNfc2V0X21vZGU6IGNoYW5naW5nIG1vZGUgZnJvbSAlcyB0byAlc1xuIiwKKwkJY2xvY2tfZXZlbnRfbW9kZV9sYWJlbFtjbG9ja2V2ZW50X21vZGVdLAorCQljbG9ja19ldmVudF9tb2RlX2xhYmVsW21vZGVdKTsKKyNlbmRpZiAvKiBERUJVRyAqLworCisJLyogUmVtZW1iZXIgdGltZXIgbW9kZSAqLworCWNsb2NrZXZlbnRfbW9kZSA9IG1vZGU7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJc3dpdGNoIChtb2RlKSB7CisJY2FzZSBDTE9DS19FVlRfTU9ERV9QRVJJT0RJQzoKKwkJcHJpbnRrKEtFUk5fRVJSIm14Y19zZXRfbW9kZTogUGVyaW9kaWMgbW9kZSBpcyBub3QgIgorCQkJCSJzdXBwb3J0ZWQgZm9yIGkuTVhcbiIpOworCQlicmVhazsKKwljYXNlIENMT0NLX0VWVF9NT0RFX09ORVNIT1Q6CisJLyoKKwkgKiBEbyBub3QgcHV0IG92ZXJoZWFkIG9mIGludGVycnVwdCBlbmFibGUvZGlzYWJsZSBpbnRvCisJICogbXhjX3NldF9uZXh0X2V2ZW50KCksIHRoZSBjb3JlIGhhcyBhYm91dCA0IG1pbnV0ZXMKKwkgKiB0byBjYWxsIG14Y19zZXRfbmV4dF9ldmVudCgpIG9yIHNodXRkb3duIGNsb2NrIGFmdGVyCisJICogbW9kZSBzd2l0Y2hpbmcKKwkgKi8KKwkJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCQlncHRfaXJxX2VuYWJsZSgpOworCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJCWJyZWFrOworCWNhc2UgQ0xPQ0tfRVZUX01PREVfU0hVVERPV046CisJY2FzZSBDTE9DS19FVlRfTU9ERV9VTlVTRUQ6CisJY2FzZSBDTE9DS19FVlRfTU9ERV9SRVNVTUU6CisJCS8qIExlZnQgZXZlbnQgc291cmNlcyBkaXNhYmxlZCwgbm8gbW9yZSBpbnRlcnJ1cHRzIGFwcGVhciAqLworCQlicmVhazsKKwl9Cit9CisKKy8qCisgKiBJUlEgaGFuZGxlciBmb3IgdGhlIHRpbWVyCisgKi8KK3N0YXRpYyBpcnFyZXR1cm5fdCBteGNfdGltZXJfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQgPSAmY2xvY2tldmVudF9teGM7CisJdWludDMyX3QgdHN0YXQ7CisKKwl0c3RhdCA9IF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVFNUQVQpOworCisJZ3B0X2lycV9hY2tub3dsZWRnZSgpOworCisJZXZ0LT5ldmVudF9oYW5kbGVyKGV2dCk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIG14Y190aW1lcl9pcnEgPSB7CisJLm5hbWUJCT0gImkuTVggVGltZXIgVGljayIsCisJLmZsYWdzCQk9IElSUUZfRElTQUJMRUQgfCBJUlFGX1RJTUVSIHwgSVJRRl9JUlFQT0xMLAorCS5oYW5kbGVyCT0gbXhjX3RpbWVyX2ludGVycnVwdCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlIGNsb2NrZXZlbnRfbXhjID0geworCS5uYW1lCQk9ICJteGNfdGltZXIxIiwKKwkuZmVhdHVyZXMJPSBDTE9DS19FVlRfRkVBVF9PTkVTSE9ULAorCS5zaGlmdAkJPSAzMiwKKwkuc2V0X21vZGUJPSBteGNfc2V0X21vZGUsCisJLnNldF9uZXh0X2V2ZW50CT0gbXhjX3NldF9uZXh0X2V2ZW50LAorCS5yYXRpbmcJCT0gMjAwLAorfTsKKworc3RhdGljIGludCBfX2luaXQgbXhjX2Nsb2NrZXZlbnRfaW5pdCh2b2lkKQoreworCXVuc2lnbmVkIGludCBjbG9jazsKKworCWNsb2NrID0gY2xrX2dldF9yYXRlKHRpbWVyX2Nsayk7CisKKwljbG9ja2V2ZW50X214Yy5tdWx0ID0gZGl2X3NjKGNsb2NrLCBOU0VDX1BFUl9TRUMsCisJCQkJCWNsb2NrZXZlbnRfbXhjLnNoaWZ0KTsKKwljbG9ja2V2ZW50X214Yy5tYXhfZGVsdGFfbnMgPQorCQkJY2xvY2tldmVudF9kZWx0YTJucygweGZmZmZmZmZlLCAmY2xvY2tldmVudF9teGMpOworCWNsb2NrZXZlbnRfbXhjLm1pbl9kZWx0YV9ucyA9CisJCQljbG9ja2V2ZW50X2RlbHRhMm5zKDB4ZmYsICZjbG9ja2V2ZW50X214Yyk7CisKKwljbG9ja2V2ZW50X214Yy5jcHVtYXNrID0gY3B1bWFza19vZl9jcHUoMCk7CisKKwljbG9ja2V2ZW50c19yZWdpc3Rlcl9kZXZpY2UoJmNsb2NrZXZlbnRfbXhjKTsKKworCXJldHVybiAwOworfQorCit2b2lkIF9faW5pdCBteGNfdGltZXJfaW5pdChjb25zdCBjaGFyICpjbGtfdGltZXIpCit7CisJdGltZXJfY2xrID0gY2xrX2dldChOVUxMLCBjbGtfdGltZXIpOworCWlmICghdGltZXJfY2xrKSB7CisJCXByaW50ayhLRVJOX0VSUiJDYW5ub3QgZGV0ZXJtaW5lIHRpbWVyIGNsb2NrLiBHaXZpbmcgdXAuXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWNsa19lbmFibGUodGltZXJfY2xrKTsKKworCS8qCisJICogSW5pdGlhbGlzZSB0byBhIGtub3duIHN0YXRlIChhbGwgdGltZXJzIG9mZiwgYW5kIHRpbWluZyByZXNldCkKKwkgKi8KKwlfX3Jhd193cml0ZWwoMCwgVElNRVJfQkFTRSArIE1YQ19UQ1RMKTsKKwlfX3Jhd193cml0ZWwoMCwgVElNRVJfQkFTRSArIE1YQ19UUFJFUik7IC8qIHNlZSBkYXRhc2hlZXQgbm90ZSAqLworCisJX19yYXdfd3JpdGVsKFRDVExfRlJSIHwJLyogZnJlZSBydW5uaW5nICovCisJCSAgICAgVENUTF9WQUwgfAkvKiBzZXQgY2xvY2tzb3VyY2UgYW5kIGFyY2ggc3BlY2lmaWMgYml0cyAqLworCQkgICAgIFRDVExfVEVOLAkvKiBzdGFydCB0aGUgdGltZXIgKi8KKwkJICAgICBUSU1FUl9CQVNFICsgTVhDX1RDVEwpOworCisJLyogaW5pdCBhbmQgcmVnaXN0ZXIgdGhlIHRpbWVyIHRvIHRoZSBmcmFtZXdvcmsgKi8KKwlteGNfY2xvY2tzb3VyY2VfaW5pdCgpOworCW14Y19jbG9ja2V2ZW50X2luaXQoKTsKKworCS8qIE1ha2UgaXJxcyBoYXBwZW4gKi8KKwlzZXR1cF9pcnEoVElNRVJfSU5URVJSVVBULCAmbXhjX3RpbWVyX2lycSk7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9NYWtlZmlsZSBiL2FyY2gvYXJtL3BsYXQtb21hcC9NYWtlZmlsZQppbmRleCBiYzYzOWEzLi4yYzQwNTFjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9tYXAvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL01ha2VmaWxlCkBAIC0zLDcgKzMsNyBAQAogIwogCiAjIENvbW1vbiBzdXBwb3J0Ci1vYmoteSA6PSBjb21tb24ubyBzcmFtLm8gc3JhbS1mbi5vIGNsb2NrLm8gZGV2aWNlcy5vIGRtYS5vIG11eC5vIGdwaW8ubyBcCitvYmoteSA6PSBjb21tb24ubyBzcmFtLm8gY2xvY2subyBkZXZpY2VzLm8gZG1hLm8gbXV4Lm8gZ3Bpby5vIFwKIAkgdXNiLm8gZmIubwogb2JqLW0gOj0KIG9iai1uIDo9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW9tYXAvY2xvY2suYyBiL2FyY2gvYXJtL3BsYXQtb21hcC9jbG9jay5jCmluZGV4IDJkYjU1ODAuLmMyZTc0MWQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9jbG9jay5jCisrKyBiL2FyY2gvYXJtL3BsYXQtb21hcC9jbG9jay5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqICBsaW51eC9hcmNoL2FybS9wbGF0LW9tYXAvY2xvY2suYwogICoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQgLSAyMDA1IE5va2lhIGNvcnBvcmF0aW9uCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0IC0gMjAwOCBOb2tpYSBjb3Jwb3JhdGlvbgogICogIFdyaXR0ZW4gYnkgVHV1a2thIFRpa2thbmVuIDx0dXVra2EudGlra2FuZW5AZWxla3Ryb2JpdC5jb20+CiAgKgogICogIE1vZGlmaWVkIGZvciBvbWFwIHNoYXJlZCBjbG9jayBmcmFtZXdvcmsgYnkgVG9ueSBMaW5kZ3JlbiA8dG9ueUBhdG9taWRlLmNvbT4KQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdWZyZXEuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KIApAQCAtMzMsNDEgKzM0LDYgQEAKIAogc3RhdGljIHN0cnVjdCBjbGtfZnVuY3Rpb25zICphcmNoX2Nsb2NrOwogCi0jaWZkZWYgQ09ORklHX1BNX0RFQlVHCi0KLXN0YXRpYyB2b2lkIHByaW50X3BhcmVudHMoc3RydWN0IGNsayAqY2xrKQotewotCXN0cnVjdCBjbGsgKnA7Ci0JaW50IHByaW50ZWQgPSAwOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShwLCAmY2xvY2tzLCBub2RlKSB7Ci0JCWlmIChwLT5wYXJlbnQgPT0gY2xrICYmIHAtPnVzZWNvdW50KSB7Ci0JCQlpZiAoIWNsay0+dXNlY291bnQgJiYgIXByaW50ZWQpIHsKLQkJCQlwcmludGsoIk1JU01BVENIOiAlc1xuIiwgY2xrLT5uYW1lKTsKLQkJCQlwcmludGVkID0gMTsKLQkJCX0KLQkJCXByaW50aygiXHQlLTE1c1xuIiwgcC0+bmFtZSk7Ci0JCX0KLQl9Ci19Ci0KLXZvaWQgY2xrX3ByaW50X3VzZWNvdW50cyh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IGNsayAqcDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjbG9ja2Z3X2xvY2ssIGZsYWdzKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZjbG9ja3MsIG5vZGUpIHsKLQkJaWYgKHAtPnVzZWNvdW50KQotCQkJcHJpbnRrKCIlLTE1czogJWRcbiIsIHAtPm5hbWUsIHAtPnVzZWNvdW50KTsKLQkJcHJpbnRfcGFyZW50cyhwKTsKLQotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbG9ja2Z3X2xvY2ssIGZsYWdzKTsKLX0KLQotI2VuZGlmCi0KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhbmRhcmQgY2xvY2sgZnVuY3Rpb25zIGRlZmluZWQgaW4gaW5jbHVkZS9saW51eC9jbGsuaAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTQ0NiwzICs0MTIsOTMgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmIGRlZmluZWQoQ09ORklHX1BNX0RFQlVHKSAmJiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKKy8qCisgKglkZWJ1Z2ZzIHN1cHBvcnQgdG8gdHJhY2UgY2xvY2sgdHJlZSBoaWVyYXJjaHkgYW5kIGF0dHJpYnV0ZXMKKyAqLworc3RhdGljIHN0cnVjdCBkZW50cnkgKmNsa19kZWJ1Z2ZzX3Jvb3Q7CisKK3N0YXRpYyBpbnQgY2xrX2RlYnVnZnNfcmVnaXN0ZXJfb25lKHN0cnVjdCBjbGsgKmMpCit7CisJaW50IGVycjsKKwlzdHJ1Y3QgZGVudHJ5ICpkLCAqY2hpbGQ7CisJc3RydWN0IGNsayAqcGEgPSBjLT5wYXJlbnQ7CisJY2hhciBzWzI1NV07CisJY2hhciAqcCA9IHM7CisKKwlwICs9IHNwcmludGYocCwgIiVzIiwgYy0+bmFtZSk7CisJaWYgKGMtPmlkICE9IDApCisJCXNwcmludGYocCwgIjolZCIsIGMtPmlkKTsKKwlkID0gZGVidWdmc19jcmVhdGVfZGlyKHMsIHBhID8gcGEtPmRlbnQgOiBjbGtfZGVidWdmc19yb290KTsKKwlpZiAoSVNfRVJSKGQpKQorCQlyZXR1cm4gUFRSX0VSUihkKTsKKwljLT5kZW50ID0gZDsKKworCWQgPSBkZWJ1Z2ZzX2NyZWF0ZV91OCgidXNlY291bnQiLCBTX0lSVUdPLCBjLT5kZW50LCAodTggKikmYy0+dXNlY291bnQpOworCWlmIChJU19FUlIoZCkpIHsKKwkJZXJyID0gUFRSX0VSUihkKTsKKwkJZ290byBlcnJfb3V0OworCX0KKwlkID0gZGVidWdmc19jcmVhdGVfdTMyKCJyYXRlIiwgU19JUlVHTywgYy0+ZGVudCwgKHUzMiAqKSZjLT5yYXRlKTsKKwlpZiAoSVNfRVJSKGQpKSB7CisJCWVyciA9IFBUUl9FUlIoZCk7CisJCWdvdG8gZXJyX291dDsKKwl9CisJZCA9IGRlYnVnZnNfY3JlYXRlX3gzMigiZmxhZ3MiLCBTX0lSVUdPLCBjLT5kZW50LCAodTMyICopJmMtPmZsYWdzKTsKKwlpZiAoSVNfRVJSKGQpKSB7CisJCWVyciA9IFBUUl9FUlIoZCk7CisJCWdvdG8gZXJyX291dDsKKwl9CisJcmV0dXJuIDA7CisKK2Vycl9vdXQ6CisJZCA9IGMtPmRlbnQ7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShjaGlsZCwgJmQtPmRfc3ViZGlycywgZF91LmRfY2hpbGQpCisJCWRlYnVnZnNfcmVtb3ZlKGNoaWxkKTsKKwlkZWJ1Z2ZzX3JlbW92ZShjLT5kZW50KTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGNsa19kZWJ1Z2ZzX3JlZ2lzdGVyKHN0cnVjdCBjbGsgKmMpCit7CisJaW50IGVycjsKKwlzdHJ1Y3QgY2xrICpwYSA9IGMtPnBhcmVudDsKKworCWlmIChwYSAmJiAhcGEtPmRlbnQpIHsKKwkJZXJyID0gY2xrX2RlYnVnZnNfcmVnaXN0ZXIocGEpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAoIWMtPmRlbnQpIHsKKwkJZXJyID0gY2xrX2RlYnVnZnNfcmVnaXN0ZXJfb25lKGMpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGNsa19kZWJ1Z2ZzX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgY2xrICpjOworCXN0cnVjdCBkZW50cnkgKmQ7CisJaW50IGVycjsKKworCWQgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoImNsb2NrIiwgTlVMTCk7CisJaWYgKElTX0VSUihkKSkKKwkJcmV0dXJuIFBUUl9FUlIoZCk7CisJY2xrX2RlYnVnZnNfcm9vdCA9IGQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGMsICZjbG9ja3MsIG5vZGUpIHsKKwkJZXJyID0gY2xrX2RlYnVnZnNfcmVnaXN0ZXIoYyk7CisJCWlmIChlcnIpCisJCQlnb3RvIGVycl9vdXQ7CisJfQorCXJldHVybiAwOworZXJyX291dDoKKwlkZWJ1Z2ZzX3JlbW92ZShjbGtfZGVidWdmc19yb290KTsgLyogUkVWSVNJVDogQ2xlYW51cCBjb3JyZWN0bHkgKi8KKwlyZXR1cm4gZXJyOworfQorbGF0ZV9pbml0Y2FsbChjbGtfZGVidWdmc19pbml0KTsKKworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BNX0RFQlVHKSAmJiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9jb21tb24uYyBiL2FyY2gvYXJtL3BsYXQtb21hcC9jb21tb24uYwppbmRleCBiZDFjZWYyLi44ZDA0OTI5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9tYXAvY29tbW9uLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2NvbW1vbi5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAKKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2NvbnRyb2wuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tdXguaD4KQEAgLTI0MSwzMCArMjQyLDcwIEBACiAKIC8qIEdsb2JhbCBhZGRyZXNzIGJhc2Ugc2V0dXAgY29kZSAqLwogCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMikgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKKworc3RhdGljIHN0cnVjdCBvbWFwX2dsb2JhbHMgKm9tYXAyX2dsb2JhbHM7CisKK3N0YXRpYyB2b2lkIF9faW5pdCBfX29tYXAyX3NldF9nbG9iYWxzKHZvaWQpCit7CisJb21hcDJfc2V0X2dsb2JhbHNfbWVtb3J5KG9tYXAyX2dsb2JhbHMpOworCW9tYXAyX3NldF9nbG9iYWxzX2NvbnRyb2wob21hcDJfZ2xvYmFscyk7CisJb21hcDJfc2V0X2dsb2JhbHNfcHJjbShvbWFwMl9nbG9iYWxzKTsKK30KKworI2VuZGlmCisKICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNDIwKQorCitzdGF0aWMgc3RydWN0IG9tYXBfZ2xvYmFscyBvbWFwMjQyeF9nbG9iYWxzID0geworCS50YXAJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKDB4NDgwMTQwMDApLAorCS5zZHJjCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQyMF9TRFJDX0JBU0UpLAorCS5zbXMJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDIwX1NNU19CQVNFKSwKKwkuY3RybAk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoT01BUDI0MjBfQ1RSTF9CQVNFKSwKKwkucHJtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQyMF9QUk1fQkFTRSksCisJLmNtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQyMF9DTV9CQVNFKSwKK307CisKIHZvaWQgX19pbml0IG9tYXAyX3NldF9nbG9iYWxzXzI0Mngodm9pZCkKIHsKLQlvbWFwMl9zZHJjX2Jhc2UgPSBPTUFQMjQyMF9TRFJDX0JBU0U7Ci0Jb21hcDJfc21zX2Jhc2UgPSBPTUFQMjQyMF9TTVNfQkFTRTsKLQlvbWFwX2N0cmxfYmFzZV9zZXQoT01BUDI0MjBfQ1RSTF9CQVNFKTsKKwlvbWFwMl9nbG9iYWxzID0gJm9tYXAyNDJ4X2dsb2JhbHM7CisJX19vbWFwMl9zZXRfZ2xvYmFscygpOwogfQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNDMwKQorCitzdGF0aWMgc3RydWN0IG9tYXBfZ2xvYmFscyBvbWFwMjQzeF9nbG9iYWxzID0geworCS50YXAJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKDB4NDkwMGEwMDApLAorCS5zZHJjCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQzWF9TRFJDX0JBU0UpLAorCS5zbXMJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDNYX1NNU19CQVNFKSwKKwkuY3RybAk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoT01BUDI0M1hfQ1RSTF9CQVNFKSwKKwkucHJtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQzMF9QUk1fQkFTRSksCisJLmNtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQzMF9DTV9CQVNFKSwKK307CisKIHZvaWQgX19pbml0IG9tYXAyX3NldF9nbG9iYWxzXzI0M3godm9pZCkKIHsKLQlvbWFwMl9zZHJjX2Jhc2UgPSBPTUFQMjQzWF9TRFJDX0JBU0U7Ci0Jb21hcDJfc21zX2Jhc2UgPSBPTUFQMjQzWF9TTVNfQkFTRTsKLQlvbWFwX2N0cmxfYmFzZV9zZXQoT01BUDI0M1hfQ1RSTF9CQVNFKTsKKwlvbWFwMl9nbG9iYWxzID0gJm9tYXAyNDN4X2dsb2JhbHM7CisJX19vbWFwMl9zZXRfZ2xvYmFscygpOwogfQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzNDMwKQorCitzdGF0aWMgc3RydWN0IG9tYXBfZ2xvYmFscyBvbWFwMzQzeF9nbG9iYWxzID0geworCS50YXAJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKDB4NDgzMEEwMDApLAorCS5zZHJjCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMzQzWF9TRFJDX0JBU0UpLAorCS5zbXMJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAzNDNYX1NNU19CQVNFKSwKKwkuY3RybAk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoT01BUDM0M1hfQ1RSTF9CQVNFKSwKKwkucHJtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMzQzMF9QUk1fQkFTRSksCisJLmNtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMzQzMF9DTV9CQVNFKSwKK307CisKIHZvaWQgX19pbml0IG9tYXAyX3NldF9nbG9iYWxzXzM0M3godm9pZCkKIHsKLQlvbWFwMl9zZHJjX2Jhc2UgPSBPTUFQMzQzWF9TRFJDX0JBU0U7Ci0Jb21hcDJfc21zX2Jhc2UgPSBPTUFQMzQzWF9TTVNfQkFTRTsKLQlvbWFwX2N0cmxfYmFzZV9zZXQoT01BUDM0M1hfQ1RSTF9CQVNFKTsKKwlvbWFwMl9nbG9iYWxzID0gJm9tYXAzNDN4X2dsb2JhbHM7CisJX19vbWFwMl9zZXRfZ2xvYmFscygpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9kZXZpY2VzLmMgYi9hcmNoL2FybS9wbGF0LW9tYXAvZGV2aWNlcy5jCmluZGV4IDRhNTNmOWIuLjgxMDAyYjcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9kZXZpY2VzLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2RldmljZXMuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL211eC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tZW5lbGF1cy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL21jYnNwLmg+CiAKICNpZglkZWZpbmVkKENPTkZJR19PTUFQX0RTUCkgfHwgZGVmaW5lZChDT05GSUdfT01BUF9EU1BfTU9EVUxFKQogCkBAIC0xNDUsNiArMTQ2LDUzIEBACiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpZiBkZWZpbmVkKENPTkZJR19PTUFQX01DQlNQKSB8fCBkZWZpbmVkKENPTkZJR19PTUFQX01DQlNQX01PRFVMRSkKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKipvbWFwX21jYnNwX2RldmljZXM7CisKK3ZvaWQgb21hcF9tY2JzcF9yZWdpc3Rlcl9ib2FyZF9jZmcoc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSAqY29uZmlnLAorCQkJCQlpbnQgc2l6ZSkKK3sKKwlpbnQgaTsKKworCWlmIChzaXplID4gT01BUF9NQVhfTUNCU1BfQ09VTlQpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiUmVnaXN0ZXJlZCB0b28gbWFueSBNY0JTUHMgcGxhdGZvcm1fZGF0YS4iCisJCQkiIFVzaW5nIG1heGltdW0gKCVkKSBhdmFpbGFibGUuXG4iLAorCQkJT01BUF9NQVhfTUNCU1BfQ09VTlQpOworCQlzaXplID0gT01BUF9NQVhfTUNCU1BfQ09VTlQ7CisJfQorCisJb21hcF9tY2JzcF9kZXZpY2VzID0ga3phbGxvYyhzaXplICogc2l6ZW9mKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKiksCisJCQkJICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIW9tYXBfbWNic3BfZGV2aWNlcykgeworCQlwcmludGsoS0VSTl9FUlIgIkNvdWxkIG5vdCByZWdpc3RlciBNY0JTUCBkZXZpY2VzXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKwkJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqbmV3X21jYnNwOworCQlpbnQgcmV0OworCisJCW5ld19tY2JzcCA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygib21hcC1tY2JzcCIsIGkgKyAxKTsKKwkJaWYgKCFuZXdfbWNic3ApCisJCQljb250aW51ZTsKKwkJbmV3X21jYnNwLT5kZXYucGxhdGZvcm1fZGF0YSA9ICZjb25maWdbaV07CisJCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQobmV3X21jYnNwKTsKKwkJaWYgKHJldCkgeworCQkJcGxhdGZvcm1fZGV2aWNlX3B1dChuZXdfbWNic3ApOworCQkJY29udGludWU7CisJCX0KKwkJb21hcF9tY2JzcF9kZXZpY2VzW2ldID0gbmV3X21jYnNwOworCX0KK30KKworI2Vsc2UKK3ZvaWQgb21hcF9tY2JzcF9yZWdpc3Rlcl9ib2FyZF9jZmcoc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSAqY29uZmlnLAorCQkJCQlpbnQgc2l6ZSkKK3sgIH0KKyNlbmRpZgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAjaWYJZGVmaW5lZChDT05GSUdfTU1DX09NQVApIHx8IGRlZmluZWQoQ09ORklHX01NQ19PTUFQX01PRFVMRSkKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL2RtYS5jIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2RtYS5jCmluZGV4IGMwMGVkYTUuLmZhYzhlOTkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9kbWEuYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvZG1hLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICogbGludXgvYXJjaC9hcm0vcGxhdC1vbWFwL2RtYS5jCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDAzIE5va2lhIENvcnBvcmF0aW9uCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgLSAyMDA4IE5va2lhIENvcnBvcmF0aW9uCiAgKiBBdXRob3I6IEp1aGEgWXJqw7Zsw6QgPGp1aGEueXJqb2xhQG5va2lhLmNvbT4KICAqIERNQSBjaGFubmVsIGxpbmtpbmcgZm9yIDE2MTAgYnkgU2FtdWVsIE9ydGl6IDxzYW11ZWwub3J0aXpAbm9raWEuY29tPgogICogR3JhcGhpY3MgRE1BIGFuZCBMQ0QgRE1BIGdyYXBoaWNzIHRyYW5mb3JtYXRpb25zCkBAIC0yNSwxMSArMjUsMTEgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2RtYS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaW5jbHVkZSA8YXNtL2FyY2gvdGMuaD4KIApAQCAtNDMsMTMgKzQzLDEzIEBACiBlbnVtIHsgRE1BX0NIQUlOX1NUQVJURUQsIERNQV9DSEFJTl9OT1RTVEFSVEVEIH07CiAjZW5kaWYKIAotI2RlZmluZSBPTUFQX0RNQV9BQ1RJVkUJCTB4MDEKLSNkZWZpbmUgT01BUF9ETUFfQ0NSX0VOCQkoMSA8PCA3KQorI2RlZmluZSBPTUFQX0RNQV9BQ1RJVkUJCQkweDAxCisjZGVmaW5lIE9NQVBfRE1BX0NDUl9FTgkJCSgxIDw8IDcpCiAjZGVmaW5lIE9NQVAyX0RNQV9DU1JfQ0xFQVJfTUFTSwkweGZmZQogCi0jZGVmaW5lIE9NQVBfRlVOQ19NVVhfQVJNX0JBU0UJKDB4ZmZmZTEwMDAgKyAweGVjKQorI2RlZmluZSBPTUFQX0ZVTkNfTVVYX0FSTV9CQVNFCQkoMHhmZmZlMTAwMCArIDB4ZWMpCiAKLXN0YXRpYyBpbnQgZW5hYmxlXzE1MTBfbW9kZSA9IDA7CitzdGF0aWMgaW50IGVuYWJsZV8xNTEwX21vZGU7CiAKIHN0cnVjdCBvbWFwX2RtYV9sY2ggewogCWludCBuZXh0X2xjaDsKQEAgLTU3LDcgKzU3LDcgQEAKIAl1MTYgc2F2ZWRfY3NyOwogCXUxNiBlbmFibGVkX2lycXM7CiAJY29uc3QgY2hhciAqZGV2X25hbWU7Ci0Jdm9pZCAoKiBjYWxsYmFjaykoaW50IGxjaCwgdTE2IGNoX3N0YXR1cywgdm9pZCAqZGF0YSk7CisJdm9pZCAoKmNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKTsKIAl2b2lkICpkYXRhOwogCiAjaWZuZGVmIENPTkZJR19BUkNIX09NQVAxCkBAIC03Miw3ICs3Miw2IEBACiAJbG9uZyBmbGFnczsKIH07CiAKLSNpZm5kZWYgQ09ORklHX0FSQ0hfT01BUDEKIHN0cnVjdCBkbWFfbGlua19pbmZvIHsKIAlpbnQgKmxpbmtlZF9kbWFjaF9xOwogCWludCBub19vZl9sY2hzX2xpbmtlZDsKQEAgLTg2LDcgKzg1LDkgQEAKIAogfTsKIAotc3RhdGljIHN0cnVjdCBkbWFfbGlua19pbmZvIGRtYV9saW5rZWRfbGNoW09NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdOworc3RhdGljIHN0cnVjdCBkbWFfbGlua19pbmZvICpkbWFfbGlua2VkX2xjaDsKKworI2lmbmRlZiBDT05GSUdfQVJDSF9PTUFQMQogCiAvKiBDaGFpbiBoYW5kbGluZyBtYWNyb3MgKi8KICNkZWZpbmUgT01BUF9ETUFfQ0hBSU5fUUlOSVQoY2hhaW5faWQpCQkJCQlcCkBAIC0xMTksMTIgKzEyMCwxNSBAQAogCQlkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0ucV9jb3VudCsrOyBcCiAJfSB3aGlsZSAoMCkKICNlbmRpZgorCitzdGF0aWMgaW50IGRtYV9sY2hfY291bnQ7CiBzdGF0aWMgaW50IGRtYV9jaGFuX2NvdW50OwogCiBzdGF0aWMgc3BpbmxvY2tfdCBkbWFfY2hhbl9sb2NrOwotc3RhdGljIHN0cnVjdCBvbWFwX2RtYV9sY2ggZG1hX2NoYW5bT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVF07CitzdGF0aWMgc3RydWN0IG9tYXBfZG1hX2xjaCAqZG1hX2NoYW47CitzdGF0aWMgdm9pZCBfX2lvbWVtICpvbWFwX2RtYV9iYXNlOwogCi1zdGF0aWMgY29uc3QgdTggb21hcDFfZG1hX2lycVtPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UXSA9IHsKK3N0YXRpYyBjb25zdCB1OCBvbWFwMV9kbWFfaXJxW09NQVAxX0xPR0lDQUxfRE1BX0NIX0NPVU5UXSA9IHsKIAlJTlRfRE1BX0NIMF82LCBJTlRfRE1BX0NIMV83LCBJTlRfRE1BX0NIMl84LCBJTlRfRE1BX0NIMywKIAlJTlRfRE1BX0NINCwgSU5UX0RNQV9DSDUsIElOVF8xNjEwX0RNQV9DSDYsIElOVF8xNjEwX0RNQV9DSDcsCiAJSU5UXzE2MTBfRE1BX0NIOCwgSU5UXzE2MTBfRE1BX0NIOSwgSU5UXzE2MTBfRE1BX0NIMTAsCkBAIC0xMzksNiArMTQzLDI0IEBACiAjZGVmaW5lIFJFVklTSVRfMjRYWCgpCQlwcmludGsoS0VSTl9FUlIgIkZJWE1FOiBubyAlcyBvbiAyNHh4XG4iLCBcCiAJCQkJCQlfX2Z1bmNfXyk7CiAKKyNkZWZpbmUgZG1hX3JlYWQocmVnKQkJCQkJCQlcCisoewkJCQkJCQkJCVwKKwl1MzIgX192YWw7CQkJCQkJCVwKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCQkJCQlcCisJCV9fdmFsID0gX19yYXdfcmVhZHcob21hcF9kbWFfYmFzZSArIE9NQVAxX0RNQV8jI3JlZyk7CVwKKwllbHNlCQkJCQkJCQlcCisJCV9fdmFsID0gX19yYXdfcmVhZGwob21hcF9kbWFfYmFzZSArIE9NQVBfRE1BNF8jI3JlZyk7CVwKKwlfX3ZhbDsJCQkJCQkJCVwKK30pCisKKyNkZWZpbmUgZG1hX3dyaXRlKHZhbCwgcmVnKQkJCQkJCVwKKyh7CQkJCQkJCQkJXAorCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkJCQkJCVwKKwkJX19yYXdfd3JpdGV3KCh1MTYpKHZhbCksIG9tYXBfZG1hX2Jhc2UgKyBPTUFQMV9ETUFfIyNyZWcpOyBcCisJZWxzZQkJCQkJCQkJXAorCQlfX3Jhd193cml0ZWwoKHZhbCksIG9tYXBfZG1hX2Jhc2UgKyBPTUFQX0RNQTRfIyNyZWcpOwlcCit9KQorCiAjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDE1WFgKIC8qIFJldHVybnMgMSBpZiB0aGUgRE1BIG1vZHVsZSBpcyBpbiBPTUFQMTUxMC1jb21wYXRpYmxlIG1vZGUsIDAgb3RoZXJ3aXNlICovCiBpbnQgb21hcF9kbWFfaW5fMTUxMF9tb2RlKHZvaWQpCkBAIC0xNzMsMTMgKzE5NSwxNCBAQAogI2RlZmluZSBzZXRfZ2RtYV9kZXYocmVxLCBkZXYpCWRvIHt9IHdoaWxlICgwKQogI2VuZGlmCiAKKy8qIE9tYXAxIG9ubHkgKi8KIHN0YXRpYyB2b2lkIGNsZWFyX2xjaF9yZWdzKGludCBsY2gpCiB7CiAJaW50IGk7Ci0JdTMyIGxjaF9iYXNlID0gT01BUF9ETUFfQkFTRSArIGxjaCAqIDB4NDA7CisJdm9pZCBfX2lvbWVtICpsY2hfYmFzZSA9IG9tYXBfZG1hX2Jhc2UgKyBPTUFQMV9ETUFfQ0hfQkFTRShsY2gpOwogCiAJZm9yIChpID0gMDsgaSA8IDB4MmM7IGkgKz0gMikKLQkJb21hcF93cml0ZXcoMCwgbGNoX2Jhc2UgKyBpKTsKKwkJX19yYXdfd3JpdGV3KDAsIGxjaF9iYXNlICsgaSk7CiB9CiAKIHZvaWQgb21hcF9zZXRfZG1hX3ByaW9yaXR5KGludCBsY2gsIGludCBkc3RfcG9ydCwgaW50IHByaW9yaXR5KQpAQCAtMjEyLDMzICsyMzUsNDkgQEAKIAl9CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKKwkJdTMyIGNjcjsKKworCQljY3IgPSBkbWFfcmVhZChDQ1IobGNoKSk7CiAJCWlmIChwcmlvcml0eSkKLQkJCU9NQVBfRE1BX0NDUl9SRUcobGNoKSB8PSAoMSA8PCA2KTsKKwkJCWNjciB8PSAoMSA8PCA2KTsKIAkJZWxzZQotCQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpICY9IH4oMSA8PCA2KTsKKwkJCWNjciAmPSB+KDEgPDwgNik7CisJCWRtYV93cml0ZShjY3IsIENDUihsY2gpKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9wcmlvcml0eSk7CiAKIHZvaWQgb21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhpbnQgbGNoLCBpbnQgZGF0YV90eXBlLCBpbnQgZWxlbV9jb3VudCwKIAkJCQkgIGludCBmcmFtZV9jb3VudCwgaW50IHN5bmNfbW9kZSwKIAkJCQkgIGludCBkbWFfdHJpZ2dlciwgaW50IHNyY19vcl9kc3Rfc3luY2gpCiB7Ci0JT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+MHgwMzsKLQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpIHw9IGRhdGFfdHlwZTsKKwl1MzIgbDsKKworCWwgPSBkbWFfcmVhZChDU0RQKGxjaCkpOworCWwgJj0gfjB4MDM7CisJbCB8PSBkYXRhX3R5cGU7CisJZG1hX3dyaXRlKGwsIENTRFAobGNoKSk7CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpICY9IH4oMSA8PCA1KTsKLQkJaWYgKHN5bmNfbW9kZSA9PSBPTUFQX0RNQV9TWU5DX0ZSQU1FKQotCQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpIHw9IDEgPDwgNTsKKwkJdTE2IGNjcjsKIAotCQlPTUFQMV9ETUFfQ0NSMl9SRUcobGNoKSAmPSB+KDEgPDwgMik7CisJCWNjciA9IGRtYV9yZWFkKENDUihsY2gpKTsKKwkJY2NyICY9IH4oMSA8PCA1KTsKKwkJaWYgKHN5bmNfbW9kZSA9PSBPTUFQX0RNQV9TWU5DX0ZSQU1FKQorCQkJY2NyIHw9IDEgPDwgNTsKKwkJZG1hX3dyaXRlKGNjciwgQ0NSKGxjaCkpOworCisJCWNjciA9IGRtYV9yZWFkKENDUjIobGNoKSk7CisJCWNjciAmPSB+KDEgPDwgMik7CiAJCWlmIChzeW5jX21vZGUgPT0gT01BUF9ETUFfU1lOQ19CTE9DSykKLQkJCU9NQVAxX0RNQV9DQ1IyX1JFRyhsY2gpIHw9IDEgPDwgMjsKKwkJCWNjciB8PSAxIDw8IDI7CisJCWRtYV93cml0ZShjY3IsIENDUjIobGNoKSk7CiAJfQogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpICYmIGRtYV90cmlnZ2VyKSB7Ci0JCXUzMiB2YWwgPSBPTUFQX0RNQV9DQ1JfUkVHKGxjaCk7CisJCXUzMiB2YWw7CiAKKwkJdmFsID0gZG1hX3JlYWQoQ0NSKGxjaCkpOwogCQl2YWwgJj0gfigzIDw8IDE5KTsKIAkJaWYgKGRtYV90cmlnZ2VyID4gNjMpCiAJCQl2YWwgfD0gMSA8PCAyMDsKQEAgLTI2MywxMiArMzAyLDEzIEBACiAJCWVsc2UKIAkJCXZhbCAmPSB+KDEgPDwgMjQpOwkvKiBkZXN0IHN5bmNoICovCiAKLQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpID0gdmFsOworCQlkbWFfd3JpdGUodmFsLCBDQ1IobGNoKSk7CiAJfQogCi0JT01BUF9ETUFfQ0VOX1JFRyhsY2gpID0gZWxlbV9jb3VudDsKLQlPTUFQX0RNQV9DRk5fUkVHKGxjaCkgPSBmcmFtZV9jb3VudDsKKwlkbWFfd3JpdGUoZWxlbV9jb3VudCwgQ0VOKGxjaCkpOworCWRtYV93cml0ZShmcmFtZV9jb3VudCwgQ0ZOKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfdHJhbnNmZXJfcGFyYW1zKTsKIAogdm9pZCBvbWFwX3NldF9kbWFfY29sb3JfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX2NvbG9yX21vZGUgbW9kZSwgdTMyIGNvbG9yKQogewpAQCAtMjgxLDcgKzMyMSw5IEBACiAJCXJldHVybjsKIAl9CiAKLQl3ID0gT01BUDFfRE1BX0NDUjJfUkVHKGxjaCkgJiB+MHgwMzsKKwl3ID0gZG1hX3JlYWQoQ0NSMihsY2gpKTsKKwl3ICY9IH4weDAzOworCiAJc3dpdGNoIChtb2RlKSB7CiAJY2FzZSBPTUFQX0RNQV9DT05TVEFOVF9GSUxMOgogCQl3IHw9IDB4MDE7CkBAIC0yOTQsNTIgKzMzNiw4MSBAQAogCWRlZmF1bHQ6CiAJCUJVRygpOwogCX0KLQlPTUFQMV9ETUFfQ0NSMl9SRUcobGNoKSA9IHc7CisJZG1hX3dyaXRlKHcsIENDUjIobGNoKSk7CiAKLQl3ID0gT01BUDFfRE1BX0xDSF9DVFJMX1JFRyhsY2gpICYgfjB4MGY7CisJdyA9IGRtYV9yZWFkKExDSF9DVFJMKGxjaCkpOworCXcgJj0gfjB4MGY7CiAJLyogRGVmYXVsdCBpcyBjaGFubmVsIHR5cGUgMkQgKi8KIAlpZiAobW9kZSkgewotCQlPTUFQMV9ETUFfQ09MT1JfTF9SRUcobGNoKSA9ICh1MTYpY29sb3I7Ci0JCU9NQVAxX0RNQV9DT0xPUl9VX1JFRyhsY2gpID0gKHUxNikoY29sb3IgPj4gMTYpOworCQlkbWFfd3JpdGUoKHUxNiljb2xvciwgQ09MT1JfTChsY2gpKTsKKwkJZG1hX3dyaXRlKCh1MTYpKGNvbG9yID4+IDE2KSwgQ09MT1JfVShsY2gpKTsKIAkJdyB8PSAxOwkJLyogQ2hhbm5lbCB0eXBlIEcgKi8KIAl9Ci0JT01BUDFfRE1BX0xDSF9DVFJMX1JFRyhsY2gpID0gdzsKKwlkbWFfd3JpdGUodywgTENIX0NUUkwobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9jb2xvcl9tb2RlKTsKIAogdm9pZCBvbWFwX3NldF9kbWFfd3JpdGVfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX3dyaXRlX21vZGUgbW9kZSkKIHsKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+KDB4MyA8PCAxNik7Ci0JCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgfD0gKG1vZGUgPDwgMTYpOworCQl1MzIgY3NkcDsKKworCQljc2RwID0gZG1hX3JlYWQoQ1NEUChsY2gpKTsKKwkJY3NkcCAmPSB+KDB4MyA8PCAxNik7CisJCWNzZHAgfD0gKG1vZGUgPDwgMTYpOworCQlkbWFfd3JpdGUoY3NkcCwgQ1NEUChsY2gpKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV93cml0ZV9tb2RlKTsKKwordm9pZCBvbWFwX3NldF9kbWFfY2hhbm5lbF9tb2RlKGludCBsY2gsIGVudW0gb21hcF9kbWFfY2hhbm5lbF9tb2RlIG1vZGUpCit7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSkgeworCQl1MzIgbDsKKworCQlsID0gZG1hX3JlYWQoTENIX0NUUkwobGNoKSk7CisJCWwgJj0gfjB4NzsKKwkJbCB8PSBtb2RlOworCQlkbWFfd3JpdGUobCwgTENIX0NUUkwobGNoKSk7CisJfQorfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfY2hhbm5lbF9tb2RlKTsKIAogLyogTm90ZSB0aGF0IHNyY19wb3J0IGlzIG9ubHkgZm9yIG9tYXAxICovCiB2b2lkIG9tYXBfc2V0X2RtYV9zcmNfcGFyYW1zKGludCBsY2gsIGludCBzcmNfcG9ydCwgaW50IHNyY19hbW9kZSwKIAkJCSAgICAgdW5zaWduZWQgbG9uZyBzcmNfc3RhcnQsCiAJCQkgICAgIGludCBzcmNfZWksIGludCBzcmNfZmkpCiB7CisJdTMyIGw7CisKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+KDB4MWYgPDwgMik7Ci0JCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgfD0gc3JjX3BvcnQgPDwgMjsKKwkJdTE2IHc7CisKKwkJdyA9IGRtYV9yZWFkKENTRFAobGNoKSk7CisJCXcgJj0gfigweDFmIDw8IDIpOworCQl3IHw9IHNyY19wb3J0IDw8IDI7CisJCWRtYV93cml0ZSh3LCBDU0RQKGxjaCkpOwogCX0KIAotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSAmPSB+KDB4MDMgPDwgMTIpOwotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSB8PSBzcmNfYW1vZGUgPDwgMTI7CisJbCA9IGRtYV9yZWFkKENDUihsY2gpKTsKKwlsICY9IH4oMHgwMyA8PCAxMik7CisJbCB8PSBzcmNfYW1vZGUgPDwgMTI7CisJZG1hX3dyaXRlKGwsIENDUihsY2gpKTsKIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgewotCQlPTUFQMV9ETUFfQ1NTQV9VX1JFRyhsY2gpID0gc3JjX3N0YXJ0ID4+IDE2OwotCQlPTUFQMV9ETUFfQ1NTQV9MX1JFRyhsY2gpID0gc3JjX3N0YXJ0OworCQlkbWFfd3JpdGUoc3JjX3N0YXJ0ID4+IDE2LCBDU1NBX1UobGNoKSk7CisJCWRtYV93cml0ZSgodTE2KXNyY19zdGFydCwgQ1NTQV9MKGxjaCkpOwogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKLQkJT01BUDJfRE1BX0NTU0FfUkVHKGxjaCkgPSBzcmNfc3RhcnQ7CisJCWRtYV93cml0ZShzcmNfc3RhcnQsIENTU0EobGNoKSk7CiAKLQlPTUFQX0RNQV9DU0VJX1JFRyhsY2gpID0gc3JjX2VpOwotCU9NQVBfRE1BX0NTRklfUkVHKGxjaCkgPSBzcmNfZmk7CisJZG1hX3dyaXRlKHNyY19laSwgQ1NFSShsY2gpKTsKKwlkbWFfd3JpdGUoc3JjX2ZpLCBDU0ZJKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfc3JjX3BhcmFtcyk7CiAKLXZvaWQgb21hcF9zZXRfZG1hX3BhcmFtcyhpbnQgbGNoLCBzdHJ1Y3Qgb21hcF9kbWFfY2hhbm5lbF9wYXJhbXMgKiBwYXJhbXMpCit2b2lkIG9tYXBfc2V0X2RtYV9wYXJhbXMoaW50IGxjaCwgc3RydWN0IG9tYXBfZG1hX2NoYW5uZWxfcGFyYW1zICpwYXJhbXMpCiB7CiAJb21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhsY2gsIHBhcmFtcy0+ZGF0YV90eXBlLAogCQkJCSAgICAgcGFyYW1zLT5lbGVtX2NvdW50LCBwYXJhbXMtPmZyYW1lX2NvdW50LApAQCAtMzU2LDI4ICs0MjcsMzcgQEAKIAkJb21hcF9kbWFfc2V0X3ByaW9fbGNoKGxjaCwgcGFyYW1zLT5yZWFkX3ByaW8sCiAJCQkJICAgICAgcGFyYW1zLT53cml0ZV9wcmlvKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3BhcmFtcyk7CiAKIHZvaWQgb21hcF9zZXRfZG1hX3NyY19pbmRleChpbnQgbGNoLCBpbnQgZWlkeCwgaW50IGZpZHgpCiB7Ci0JaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7Ci0JCVJFVklTSVRfMjRYWCgpOworCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKIAkJcmV0dXJuOwotCX0KLQlPTUFQX0RNQV9DU0VJX1JFRyhsY2gpID0gZWlkeDsKLQlPTUFQX0RNQV9DU0ZJX1JFRyhsY2gpID0gZmlkeDsKKworCWRtYV93cml0ZShlaWR4LCBDU0VJKGxjaCkpOworCWRtYV93cml0ZShmaWR4LCBDU0ZJKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfc3JjX2luZGV4KTsKIAogdm9pZCBvbWFwX3NldF9kbWFfc3JjX2RhdGFfcGFjayhpbnQgbGNoLCBpbnQgZW5hYmxlKQogewotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgJj0gfigxIDw8IDYpOworCXUzMiBsOworCisJbCA9IGRtYV9yZWFkKENTRFAobGNoKSk7CisJbCAmPSB+KDEgPDwgNik7CiAJaWYgKGVuYWJsZSkKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSB8PSAoMSA8PCA2KTsKKwkJbCB8PSAoMSA8PCA2KTsKKwlkbWFfd3JpdGUobCwgQ1NEUChsY2gpKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19kYXRhX3BhY2spOwogCiB2b2lkIG9tYXBfc2V0X2RtYV9zcmNfYnVyc3RfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX2J1cnN0X21vZGUgYnVyc3RfbW9kZSkKIHsKIAl1bnNpZ25lZCBpbnQgYnVyc3QgPSAwOwotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgJj0gfigweDAzIDw8IDcpOworCXUzMiBsOworCisJbCA9IGRtYV9yZWFkKENTRFAobGNoKSk7CisJbCAmPSB+KDB4MDMgPDwgNyk7CiAKIAlzd2l0Y2ggKGJ1cnN0X21vZGUpIHsKIAljYXNlIE9NQVBfRE1BX0RBVEFfQlVSU1RfRElTOgpAQCAtNDA4LDU1ICs0ODgsNzMgQEAKIAlkZWZhdWx0OgogCQlCVUcoKTsKIAl9Ci0JT01BUF9ETUFfQ1NEUF9SRUcobGNoKSB8PSAoYnVyc3QgPDwgNyk7CisKKwlsIHw9IChidXJzdCA8PCA3KTsKKwlkbWFfd3JpdGUobCwgQ1NEUChsY2gpKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19idXJzdF9tb2RlKTsKIAogLyogTm90ZSB0aGF0IGRlc3RfcG9ydCBpcyBvbmx5IGZvciBPTUFQMSAqLwogdm9pZCBvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMoaW50IGxjaCwgaW50IGRlc3RfcG9ydCwgaW50IGRlc3RfYW1vZGUsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIGRlc3Rfc3RhcnQsCiAJCQkgICAgICBpbnQgZHN0X2VpLCBpbnQgZHN0X2ZpKQogeworCXUzMiBsOworCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7Ci0JCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgJj0gfigweDFmIDw8IDkpOwotCQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpIHw9IGRlc3RfcG9ydCA8PCA5OworCQlsID0gZG1hX3JlYWQoQ1NEUChsY2gpKTsKKwkJbCAmPSB+KDB4MWYgPDwgOSk7CisJCWwgfD0gZGVzdF9wb3J0IDw8IDk7CisJCWRtYV93cml0ZShsLCBDU0RQKGxjaCkpOwogCX0KIAotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSAmPSB+KDB4MDMgPDwgMTQpOwotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSB8PSBkZXN0X2Ftb2RlIDw8IDE0OworCWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CisJbCAmPSB+KDB4MDMgPDwgMTQpOworCWwgfD0gZGVzdF9hbW9kZSA8PCAxNDsKKwlkbWFfd3JpdGUobCwgQ0NSKGxjaCkpOwogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7Ci0JCU9NQVAxX0RNQV9DRFNBX1VfUkVHKGxjaCkgPSBkZXN0X3N0YXJ0ID4+IDE2OwotCQlPTUFQMV9ETUFfQ0RTQV9MX1JFRyhsY2gpID0gZGVzdF9zdGFydDsKKwkJZG1hX3dyaXRlKGRlc3Rfc3RhcnQgPj4gMTYsIENEU0FfVShsY2gpKTsKKwkJZG1hX3dyaXRlKGRlc3Rfc3RhcnQsIENEU0FfTChsY2gpKTsKIAl9CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCi0JCU9NQVAyX0RNQV9DRFNBX1JFRyhsY2gpID0gZGVzdF9zdGFydDsKKwkJZG1hX3dyaXRlKGRlc3Rfc3RhcnQsIENEU0EobGNoKSk7CiAKLQlPTUFQX0RNQV9DREVJX1JFRyhsY2gpID0gZHN0X2VpOwotCU9NQVBfRE1BX0NERklfUkVHKGxjaCkgPSBkc3RfZmk7CisJZG1hX3dyaXRlKGRzdF9laSwgQ0RFSShsY2gpKTsKKwlkbWFfd3JpdGUoZHN0X2ZpLCBDREZJKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMpOwogCiB2b2lkIG9tYXBfc2V0X2RtYV9kZXN0X2luZGV4KGludCBsY2gsIGludCBlaWR4LCBpbnQgZmlkeCkKIHsKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKLQkJUkVWSVNJVF8yNFhYKCk7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQogCQlyZXR1cm47Ci0JfQotCU9NQVBfRE1BX0NERUlfUkVHKGxjaCkgPSBlaWR4OwotCU9NQVBfRE1BX0NERklfUkVHKGxjaCkgPSBmaWR4OworCisJZG1hX3dyaXRlKGVpZHgsIENERUkobGNoKSk7CisJZG1hX3dyaXRlKGZpZHgsIENERkkobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2luZGV4KTsKIAogdm9pZCBvbWFwX3NldF9kbWFfZGVzdF9kYXRhX3BhY2soaW50IGxjaCwgaW50IGVuYWJsZSkKIHsKLQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpICY9IH4oMSA8PCAxMyk7CisJdTMyIGw7CisKKwlsID0gZG1hX3JlYWQoQ1NEUChsY2gpKTsKKwlsICY9IH4oMSA8PCAxMyk7CiAJaWYgKGVuYWJsZSkKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSB8PSAxIDw8IDEzOworCQlsIHw9IDEgPDwgMTM7CisJZG1hX3dyaXRlKGwsIENTRFAobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2RhdGFfcGFjayk7CiAKIHZvaWQgb21hcF9zZXRfZG1hX2Rlc3RfYnVyc3RfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX2J1cnN0X21vZGUgYnVyc3RfbW9kZSkKIHsKIAl1bnNpZ25lZCBpbnQgYnVyc3QgPSAwOwotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgJj0gfigweDAzIDw8IDE0KTsKKwl1MzIgbDsKKworCWwgPSBkbWFfcmVhZChDU0RQKGxjaCkpOworCWwgJj0gfigweDAzIDw8IDE0KTsKIAogCXN3aXRjaCAoYnVyc3RfbW9kZSkgewogCWNhc2UgT01BUF9ETUFfREFUQV9CVVJTVF9ESVM6CkBAIC00ODYsOCArNTg0LDEwIEBACiAJCUJVRygpOwogCQlyZXR1cm47CiAJfQotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgfD0gKGJ1cnN0IDw8IDE0KTsKKwlsIHw9IChidXJzdCA8PCAxNCk7CisJZG1hX3dyaXRlKGwsIENTRFAobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2J1cnN0X21vZGUpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgb21hcF9lbmFibGVfY2hhbm5lbF9pcnEoaW50IGxjaCkKIHsKQEAgLTQ5NSw2NCArNTk1LDc0IEBACiAKIAkvKiBDbGVhciBDU1IgKi8KIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCi0JCXN0YXR1cyA9IE9NQVBfRE1BX0NTUl9SRUcobGNoKTsKKwkJc3RhdHVzID0gZG1hX3JlYWQoQ1NSKGxjaCkpOwogCWVsc2UgaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQotCQlPTUFQX0RNQV9DU1JfUkVHKGxjaCkgPSBPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0s7CisJCWRtYV93cml0ZShPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0ssIENTUihsY2gpKTsKIAogCS8qIEVuYWJsZSBzb21lIG5pY2UgaW50ZXJydXB0cy4gKi8KLQlPTUFQX0RNQV9DSUNSX1JFRyhsY2gpID0gZG1hX2NoYW5bbGNoXS5lbmFibGVkX2lycXM7Ci0KLQlkbWFfY2hhbltsY2hdLmZsYWdzIHw9IE9NQVBfRE1BX0FDVElWRTsKKwlkbWFfd3JpdGUoZG1hX2NoYW5bbGNoXS5lbmFibGVkX2lycXMsIENJQ1IobGNoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIG9tYXBfZGlzYWJsZV9jaGFubmVsX2lycShpbnQgbGNoKQogewogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKLQkJT01BUF9ETUFfQ0lDUl9SRUcobGNoKSA9IDA7CisJCWRtYV93cml0ZSgwLCBDSUNSKGxjaCkpOwogfQogCiB2b2lkIG9tYXBfZW5hYmxlX2RtYV9pcnEoaW50IGxjaCwgdTE2IGJpdHMpCiB7CiAJZG1hX2NoYW5bbGNoXS5lbmFibGVkX2lycXMgfD0gYml0czsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9lbmFibGVfZG1hX2lycSk7CiAKIHZvaWQgb21hcF9kaXNhYmxlX2RtYV9pcnEoaW50IGxjaCwgdTE2IGJpdHMpCiB7CiAJZG1hX2NoYW5bbGNoXS5lbmFibGVkX2lycXMgJj0gfmJpdHM7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZGlzYWJsZV9kbWFfaXJxKTsKIAogc3RhdGljIGlubGluZSB2b2lkIGVuYWJsZV9sbmsoaW50IGxjaCkKIHsKKwl1MzIgbDsKKworCWwgPSBkbWFfcmVhZChDTE5LX0NUUkwobGNoKSk7CisKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCi0JCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoKSAmPSB+KDEgPDwgMTQpOworCQlsICY9IH4oMSA8PCAxNCk7CiAKIAkvKiBTZXQgdGhlIEVOQUJMRV9MTksgYml0cyAqLwogCWlmIChkbWFfY2hhbltsY2hdLm5leHRfbGNoICE9IC0xKQotCQlPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKGxjaCkgPQotCQkJZG1hX2NoYW5bbGNoXS5uZXh0X2xjaCB8ICgxIDw8IDE1KTsKKwkJbCA9IGRtYV9jaGFuW2xjaF0ubmV4dF9sY2ggfCAoMSA8PCAxNSk7CiAKICNpZm5kZWYgQ09ORklHX0FSQ0hfT01BUDEKLQlpZiAoZG1hX2NoYW5bbGNoXS5uZXh0X2xpbmtlZF9jaCAhPSAtMSkKLQkJT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2gpID0KLQkJCWRtYV9jaGFuW2xjaF0ubmV4dF9saW5rZWRfY2ggfCAoMSA8PCAxNSk7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQorCQlpZiAoZG1hX2NoYW5bbGNoXS5uZXh0X2xpbmtlZF9jaCAhPSAtMSkKKwkJCWwgPSBkbWFfY2hhbltsY2hdLm5leHRfbGlua2VkX2NoIHwgKDEgPDwgMTUpOwogI2VuZGlmCisKKwlkbWFfd3JpdGUobCwgQ0xOS19DVFJMKGxjaCkpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZGlzYWJsZV9sbmsoaW50IGxjaCkKIHsKKwl1MzIgbDsKKworCWwgPSBkbWFfcmVhZChDTE5LX0NUUkwobGNoKSk7CisKIAkvKiBEaXNhYmxlIGludGVycnVwdHMgKi8KIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJT01BUF9ETUFfQ0lDUl9SRUcobGNoKSA9IDA7CisJCWRtYV93cml0ZSgwLCBDSUNSKGxjaCkpOwogCQkvKiBTZXQgdGhlIFNUT1BfTE5LIGJpdCAqLwotCQlPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKGxjaCkgfD0gMSA8PCAxNDsKKwkJbCB8PSAxIDw8IDE0OwogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewogCQlvbWFwX2Rpc2FibGVfY2hhbm5lbF9pcnEobGNoKTsKIAkJLyogQ2xlYXIgdGhlIEVOQUJMRV9MTksgYml0ICovCi0JCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoKSAmPSB+KDEgPDwgMTUpOworCQlsICY9IH4oMSA8PCAxNSk7CiAJfQogCisJZG1hX3dyaXRlKGwsIENMTktfQ1RSTChsY2gpKTsKIAlkbWFfY2hhbltsY2hdLmZsYWdzICY9IH5PTUFQX0RNQV9BQ1RJVkU7CiB9CiAKQEAgLTU2MywxMyArNjczLDEzIEBACiAJaWYgKCFjcHVfY2xhc3NfaXNfb21hcDIoKSkKIAkJcmV0dXJuOwogCi0JdmFsID0gb21hcF9yZWFkbChPTUFQX0RNQTRfSVJRRU5BQkxFX0wwKTsKKwl2YWwgPSBkbWFfcmVhZChJUlFFTkFCTEVfTDApOwogCXZhbCB8PSAxIDw8IGxjaDsKLQlvbWFwX3dyaXRlbCh2YWwsIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDApOworCWRtYV93cml0ZSh2YWwsIElSUUVOQUJMRV9MMCk7CiB9CiAKIGludCBvbWFwX3JlcXVlc3RfZG1hKGludCBkZXZfaWQsIGNvbnN0IGNoYXIgKmRldl9uYW1lLAotCQkgICAgIHZvaWQgKCogY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAorCQkgICAgIHZvaWQgKCpjYWxsYmFjaykoaW50IGxjaCwgdTE2IGNoX3N0YXR1cywgdm9pZCAqZGF0YSksCiAJCSAgICAgdm9pZCAqZGF0YSwgaW50ICpkbWFfY2hfb3V0KQogewogCWludCBjaCwgZnJlZV9jaCA9IC0xOwpAQCAtNjAyLDEwICs3MTIsMTQgQEAKIAljaGFuLT5kZXZfbmFtZSA9IGRldl9uYW1lOwogCWNoYW4tPmNhbGxiYWNrID0gY2FsbGJhY2s7CiAJY2hhbi0+ZGF0YSA9IGRhdGE7CisKICNpZm5kZWYgQ09ORklHX0FSQ0hfT01BUDEKLQljaGFuLT5jaGFpbl9pZCA9IC0xOwotCWNoYW4tPm5leHRfbGlua2VkX2NoID0gLTE7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7CisJCWNoYW4tPmNoYWluX2lkID0gLTE7CisJCWNoYW4tPm5leHRfbGlua2VkX2NoID0gLTE7CisJfQogI2VuZGlmCisKIAljaGFuLT5lbmFibGVkX2lycXMgPSBPTUFQX0RNQV9EUk9QX0lSUSB8IE9NQVBfRE1BX0JMT0NLX0lSUTsKIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkKQEAgLTYyMCwyNiArNzM0LDI4IEBACiAJCQlzZXRfZ2RtYV9kZXYoZnJlZV9jaCArIDEsIGRldl9pZCk7CiAJCQlkZXZfaWQgPSBmcmVlX2NoICsgMTsKIAkJfQotCQkvKiBEaXNhYmxlIHRoZSAxNTEwIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgc2V0IHRoZSBzeW5jIGRldmljZQotCQkgKiBpZC4gKi8KLQkJT01BUF9ETUFfQ0NSX1JFRyhmcmVlX2NoKSA9IGRldl9pZCB8ICgxIDw8IDEwKTsKKwkJLyoKKwkJICogRGlzYWJsZSB0aGUgMTUxMCBjb21wYXRpYmlsaXR5IG1vZGUgYW5kIHNldCB0aGUgc3luYyBkZXZpY2UKKwkJICogaWQuCisJCSAqLworCQlkbWFfd3JpdGUoZGV2X2lkIHwgKDEgPDwgMTApLCBDQ1IoZnJlZV9jaCkpOwogCX0gZWxzZSBpZiAoY3B1X2lzX29tYXA3MzAoKSB8fCBjcHVfaXNfb21hcDE1eHgoKSkgewotCQlPTUFQX0RNQV9DQ1JfUkVHKGZyZWVfY2gpID0gZGV2X2lkOworCQlkbWFfd3JpdGUoZGV2X2lkLCBDQ1IoZnJlZV9jaCkpOwogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewogCQlvbWFwMl9lbmFibGVfaXJxX2xjaChmcmVlX2NoKTsKLQogCQlvbWFwX2VuYWJsZV9jaGFubmVsX2lycShmcmVlX2NoKTsKIAkJLyogQ2xlYXIgdGhlIENTUiByZWdpc3RlciBhbmQgSVJRIHN0YXR1cyByZWdpc3RlciAqLwotCQlPTUFQX0RNQV9DU1JfUkVHKGZyZWVfY2gpID0gT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLOwotCQlvbWFwX3dyaXRlbCgxIDw8IGZyZWVfY2gsIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCQlkbWFfd3JpdGUoT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLLCBDU1IoZnJlZV9jaCkpOworCQlkbWFfd3JpdGUoMSA8PCBmcmVlX2NoLCBJUlFTVEFUVVNfTDApOwogCX0KIAogCSpkbWFfY2hfb3V0ID0gZnJlZV9jaDsKIAogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3JlcXVlc3RfZG1hKTsKIAogdm9pZCBvbWFwX2ZyZWVfZG1hKGludCBsY2gpCiB7CkBAIC02NDcsMTEgKzc2MywxMiBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRtYV9jaGFuX2xvY2ssIGZsYWdzKTsKIAlpZiAoZG1hX2NoYW5bbGNoXS5kZXZfaWQgPT0gLTEpIHsKLQkJcHJpbnRrKCJvbWFwX2RtYTogdHJ5aW5nIHRvIGZyZWUgbm9uYWxsb2NhdGVkIERNQSBjaGFubmVsICVkXG4iLAorCQlwcl9lcnIoIm9tYXBfZG1hOiB0cnlpbmcgdG8gZnJlZSB1bmFsbG9jYXRlZCBETUEgY2hhbm5lbCAlZFxuIiwKIAkJICAgICAgIGxjaCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRtYV9jaGFuX2xvY2ssIGZsYWdzKTsKIAkJcmV0dXJuOwogCX0KKwogCWRtYV9jaGFuW2xjaF0uZGV2X2lkID0gLTE7CiAJZG1hX2NoYW5bbGNoXS5uZXh0X2xjaCA9IC0xOwogCWRtYV9jaGFuW2xjaF0uY2FsbGJhY2sgPSBOVUxMOwpAQCAtNjU5LDMwICs3NzYsMzEgQEAKIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgewogCQkvKiBEaXNhYmxlIGFsbCBETUEgaW50ZXJydXB0cyBmb3IgdGhlIGNoYW5uZWwuICovCi0JCU9NQVBfRE1BX0NJQ1JfUkVHKGxjaCkgPSAwOworCQlkbWFfd3JpdGUoMCwgQ0lDUihsY2gpKTsKIAkJLyogTWFrZSBzdXJlIHRoZSBETUEgdHJhbnNmZXIgaXMgc3RvcHBlZC4gKi8KLQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpID0gMDsKKwkJZG1hX3dyaXRlKDAsIENDUihsY2gpKTsKIAl9CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKIAkJdTMyIHZhbDsKIAkJLyogRGlzYWJsZSBpbnRlcnJ1cHRzICovCi0JCXZhbCA9IG9tYXBfcmVhZGwoT01BUF9ETUE0X0lSUUVOQUJMRV9MMCk7CisJCXZhbCA9IGRtYV9yZWFkKElSUUVOQUJMRV9MMCk7CiAJCXZhbCAmPSB+KDEgPDwgbGNoKTsKLQkJb21hcF93cml0ZWwodmFsLCBPTUFQX0RNQTRfSVJRRU5BQkxFX0wwKTsKKwkJZG1hX3dyaXRlKHZhbCwgSVJRRU5BQkxFX0wwKTsKIAogCQkvKiBDbGVhciB0aGUgQ1NSIHJlZ2lzdGVyIGFuZCBJUlEgc3RhdHVzIHJlZ2lzdGVyICovCi0JCU9NQVBfRE1BX0NTUl9SRUcobGNoKSA9IE9NQVAyX0RNQV9DU1JfQ0xFQVJfTUFTSzsKLQkJb21hcF93cml0ZWwoMSA8PCBsY2gsIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCQlkbWFfd3JpdGUoT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLLCBDU1IobGNoKSk7CisJCWRtYV93cml0ZSgxIDw8IGxjaCwgSVJRU1RBVFVTX0wwKTsKIAogCQkvKiBEaXNhYmxlIGFsbCBETUEgaW50ZXJydXB0cyBmb3IgdGhlIGNoYW5uZWwuICovCi0JCU9NQVBfRE1BX0NJQ1JfUkVHKGxjaCkgPSAwOworCQlkbWFfd3JpdGUoMCwgQ0lDUihsY2gpKTsKIAogCQkvKiBNYWtlIHN1cmUgdGhlIERNQSB0cmFuc2ZlciBpcyBzdG9wcGVkLiAqLwotCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgPSAwOworCQlkbWFfd3JpdGUoMCwgQ0NSKGxjaCkpOwogCQlvbWFwX2NsZWFyX2RtYShsY2gpOwogCX0KIH0KK0VYUE9SVF9TWU1CT0wob21hcF9mcmVlX2RtYSk7CiAKIC8qKgogICogQGJyaWVmIG9tYXBfZG1hX3NldF9nbG9iYWxfcGFyYW1zIDogU2V0IGdsb2JhbCBwcmlvcml0eSBzZXR0aW5ncyBmb3IgZG1hCkBAIC03MTAsNyArODI4LDcgQEAKIAlyZWcgPSAoYXJiX3JhdGUgJiAweGZmKSA8PCAxNjsKIAlyZWcgfD0gKDB4ZmYgJiBtYXhfZmlmb19kZXB0aCk7CiAKLQlvbWFwX3dyaXRlbChyZWcsIE9NQVBfRE1BNF9HQ1JfUkVHKTsKKwlkbWFfd3JpdGUocmVnLCBHQ1IpOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX2RtYV9zZXRfZ2xvYmFsX3BhcmFtcyk7CiAKQEAgLTcyNywyMCArODQ1LDIxIEBACiBvbWFwX2RtYV9zZXRfcHJpb19sY2goaW50IGxjaCwgdW5zaWduZWQgY2hhciByZWFkX3ByaW8sCiAJCSAgICAgIHVuc2lnbmVkIGNoYXIgd3JpdGVfcHJpbykKIHsKLQl1MzIgdzsKKwl1MzIgbDsKIAotCWlmICh1bmxpa2VseSgobGNoIDwgMCB8fCBsY2ggPj0gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCkpKSB7CisJaWYgKHVubGlrZWx5KChsY2ggPCAwIHx8IGxjaCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYW5uZWwgaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9Ci0JdyA9IE9NQVBfRE1BX0NDUl9SRUcobGNoKTsKLQl3ICY9IH4oKDEgPDwgNikgfCAoMSA8PCAyNikpOworCWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CisJbCAmPSB+KCgxIDw8IDYpIHwgKDEgPDwgMjYpKTsKIAlpZiAoY3B1X2lzX29tYXAyNDMwKCkgfHwgY3B1X2lzX29tYXAzNHh4KCkpCi0JCXcgfD0gKChyZWFkX3ByaW8gJiAweDEpIDw8IDYpIHwgKCh3cml0ZV9wcmlvICYgMHgxKSA8PCAyNik7CisJCWwgfD0gKChyZWFkX3ByaW8gJiAweDEpIDw8IDYpIHwgKCh3cml0ZV9wcmlvICYgMHgxKSA8PCAyNik7CiAJZWxzZQotCQl3IHw9ICgocmVhZF9wcmlvICYgMHgxKSA8PCA2KTsKKwkJbCB8PSAoKHJlYWRfcHJpbyAmIDB4MSkgPDwgNik7CiAKLQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgPSB3OworCWRtYV93cml0ZShsLCBDQ1IobGNoKSk7CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9kbWFfc2V0X3ByaW9fbGNoKTsKQEAgLTc1NiwyOCArODc1LDM0IEBACiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7Ci0JCWludCBzdGF0dXM7Ci0JCU9NQVBfRE1BX0NDUl9SRUcobGNoKSAmPSB+T01BUF9ETUFfQ0NSX0VOOworCQl1MzIgbDsKKworCQlsID0gZG1hX3JlYWQoQ0NSKGxjaCkpOworCQlsICY9IH5PTUFQX0RNQV9DQ1JfRU47CisJCWRtYV93cml0ZShsLCBDQ1IobGNoKSk7CiAKIAkJLyogQ2xlYXIgcGVuZGluZyBpbnRlcnJ1cHRzICovCi0JCXN0YXR1cyA9IE9NQVBfRE1BX0NTUl9SRUcobGNoKTsKKwkJbCA9IGRtYV9yZWFkKENTUihsY2gpKTsKIAl9CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKIAkJaW50IGk7Ci0JCXUzMiBsY2hfYmFzZSA9IE9NQVBfRE1BNF9CQVNFICsgbGNoICogMHg2MCArIDB4ODA7CisJCXZvaWQgX19pb21lbSAqbGNoX2Jhc2UgPSBvbWFwX2RtYV9iYXNlICsgT01BUF9ETUE0X0NIX0JBU0UobGNoKTsKIAkJZm9yIChpID0gMDsgaSA8IDB4NDQ7IGkgKz0gNCkKLQkJCW9tYXBfd3JpdGVsKDAsIGxjaF9iYXNlICsgaSk7CisJCQlfX3Jhd193cml0ZWwoMCwgbGNoX2Jhc2UgKyBpKTsKIAl9CiAKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfY2xlYXJfZG1hKTsKIAogdm9pZCBvbWFwX3N0YXJ0X2RtYShpbnQgbGNoKQogeworCXUzMiBsOworCiAJaWYgKCFvbWFwX2RtYV9pbl8xNTEwX21vZGUoKSAmJiBkbWFfY2hhbltsY2hdLm5leHRfbGNoICE9IC0xKSB7CiAJCWludCBuZXh0X2xjaCwgY3VyX2xjaDsKLQkJY2hhciBkbWFfY2hhbl9saW5rX21hcFtPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UXTsKKwkJY2hhciBkbWFfY2hhbl9saW5rX21hcFtPTUFQX0RNQTRfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdOwogCiAJCWRtYV9jaGFuX2xpbmtfbWFwW2xjaF0gPSAxOwogCQkvKiBTZXQgdGhlIGxpbmsgcmVnaXN0ZXIgb2YgdGhlIGZpcnN0IGNoYW5uZWwgKi8KQEAgLTgwMSwyNyArOTI2LDM0IEBACiAJCX0gd2hpbGUgKG5leHRfbGNoICE9IC0xKTsKIAl9IGVsc2UgaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7CiAJCS8qIEVycmF0YTogTmVlZCB0byB3cml0ZSBsY2ggZXZlbiBpZiBub3QgdXNpbmcgY2hhaW5pbmcgKi8KLQkJT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2gpID0gbGNoOworCQlkbWFfd3JpdGUobGNoLCBDTE5LX0NUUkwobGNoKSk7CiAJfQogCiAJb21hcF9lbmFibGVfY2hhbm5lbF9pcnEobGNoKTsKIAotCS8qIEVycmF0YTogT24gRVMyLjAgQlVGRkVSSU5HIGRpc2FibGUgbXVzdCBiZSBzZXQuCi0JICogVGhpcyB3aWxsIGFsd2F5cyBmYWlsIG9uIEVTMS4wICovCi0JaWYgKGNwdV9pc19vbWFwMjR4eCgpKSB7Ci0JCU9NQVBfRE1BX0NDUl9SRUcobGNoKSB8PSBPTUFQX0RNQV9DQ1JfRU47Ci0JfQorCWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CiAKLQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgfD0gT01BUF9ETUFfQ0NSX0VOOworCS8qCisJICogRXJyYXRhOiBPbiBFUzIuMCBCVUZGRVJJTkcgZGlzYWJsZSBtdXN0IGJlIHNldC4KKwkgKiBUaGlzIHdpbGwgYWx3YXlzIGZhaWwgb24gRVMxLjAKKwkgKi8KKwlpZiAoY3B1X2lzX29tYXAyNHh4KCkpCisJCWwgfD0gT01BUF9ETUFfQ0NSX0VOOworCisJbCB8PSBPTUFQX0RNQV9DQ1JfRU47CisJZG1hX3dyaXRlKGwsIENDUihsY2gpKTsKIAogCWRtYV9jaGFuW2xjaF0uZmxhZ3MgfD0gT01BUF9ETUFfQUNUSVZFOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3N0YXJ0X2RtYSk7CiAKIHZvaWQgb21hcF9zdG9wX2RtYShpbnQgbGNoKQogeworCXUzMiBsOworCiAJaWYgKCFvbWFwX2RtYV9pbl8xNTEwX21vZGUoKSAmJiBkbWFfY2hhbltsY2hdLm5leHRfbGNoICE9IC0xKSB7CiAJCWludCBuZXh0X2xjaCwgY3VyX2xjaCA9IGxjaDsKLQkJY2hhciBkbWFfY2hhbl9saW5rX21hcFtPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UXTsKKwkJY2hhciBkbWFfY2hhbl9saW5rX21hcFtPTUFQX0RNQTRfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdOwogCiAJCW1lbXNldChkbWFfY2hhbl9saW5rX21hcCwgMCwgc2l6ZW9mKGRtYV9jaGFuX2xpbmtfbWFwKSk7CiAJCWRvIHsKQEAgLTg0MiwxOCArOTc0LDIyIEBACiAKIAkvKiBEaXNhYmxlIGFsbCBpbnRlcnJ1cHRzIG9uIHRoZSBjaGFubmVsICovCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQotCQlPTUFQX0RNQV9DSUNSX1JFRyhsY2gpID0gMDsKKwkJZG1hX3dyaXRlKDAsIENJQ1IobGNoKSk7CiAKLQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgJj0gfk9NQVBfRE1BX0NDUl9FTjsKKwlsID0gZG1hX3JlYWQoQ0NSKGxjaCkpOworCWwgJj0gfk9NQVBfRE1BX0NDUl9FTjsKKwlkbWFfd3JpdGUobCwgQ0NSKGxjaCkpOworCiAJZG1hX2NoYW5bbGNoXS5mbGFncyAmPSB+T01BUF9ETUFfQUNUSVZFOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3N0b3BfZG1hKTsKIAogLyoKICAqIEFsbG93cyBjaGFuZ2luZyB0aGUgRE1BIGNhbGxiYWNrIGZ1bmN0aW9uIG9yIGRhdGEuIFRoaXMgbWF5IGJlIG5lZWRlZCBpZgogICogdGhlIGRyaXZlciBzaGFyZXMgYSBzaW5nbGUgRE1BIGNoYW5uZWwgZm9yIG11bHRpcGxlIGRtYSB0cmlnZ2Vycy4KICAqLwogaW50IG9tYXBfc2V0X2RtYV9jYWxsYmFjayhpbnQgbGNoLAotCQkJICB2b2lkICgqIGNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKSwKKwkJCSAgdm9pZCAoKmNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKSwKIAkJCSAgdm9pZCAqZGF0YSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtODczLDYgKzEwMDksNyBAQAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9jYWxsYmFjayk7CiAKIC8qCiAgKiBSZXR1cm5zIGN1cnJlbnQgcGh5c2ljYWwgc291cmNlIGFkZHJlc3MgZm9yIHRoZSBnaXZlbiBETUEgY2hhbm5lbC4KQEAgLTg4NiwxNSArMTAyMywyNCBAQAogewogCWRtYV9hZGRyX3Qgb2Zmc2V0ID0gMDsKIAotCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkKLQkJb2Zmc2V0ID0gKGRtYV9hZGRyX3QpIChPTUFQMV9ETUFfQ1NTQV9MX1JFRyhsY2gpIHwKLQkJCQkgICAgICAgKE9NQVAxX0RNQV9DU1NBX1VfUkVHKGxjaCkgPDwgMTYpKTsKKwlpZiAoY3B1X2lzX29tYXAxNXh4KCkpCisJCW9mZnNldCA9IGRtYV9yZWFkKENQQyhsY2gpKTsKKwllbHNlCisJCW9mZnNldCA9IGRtYV9yZWFkKENTQUMobGNoKSk7CiAKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCi0JCW9mZnNldCA9IE9NQVBfRE1BX0NTQUNfUkVHKGxjaCk7CisJLyoKKwkgKiBvbWFwIDMuMi8zLjMgZXJyYXR1bTogc29tZXRpbWVzIDAgaXMgcmV0dXJuZWQgaWYgQ1NBQy9DREFDIGlzCisJICogcmVhZCBiZWZvcmUgdGhlIERNQSBjb250cm9sbGVyIGZpbmlzaGVkIGRpc2FibGluZyB0aGUgY2hhbm5lbC4KKwkgKi8KKwlpZiAoIWNwdV9pc19vbWFwMTV4eCgpICYmIG9mZnNldCA9PSAwKQorCQlvZmZzZXQgPSBkbWFfcmVhZChDU0FDKGxjaCkpOworCisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQorCQlvZmZzZXQgfD0gKGRtYV9yZWFkKENTU0FfVShsY2gpKSA8PCAxNik7CiAKIAlyZXR1cm4gb2Zmc2V0OwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2dldF9kbWFfc3JjX3Bvcyk7CiAKIC8qCiAgKiBSZXR1cm5zIGN1cnJlbnQgcGh5c2ljYWwgZGVzdGluYXRpb24gYWRkcmVzcyBmb3IgdGhlIGdpdmVuIERNQSBjaGFubmVsLgpAQCAtOTA4LDI1ICsxMDU0LDMwIEBACiB7CiAJZG1hX2FkZHJfdCBvZmZzZXQgPSAwOwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQotCQlvZmZzZXQgPSAoZG1hX2FkZHJfdCkgKE9NQVAxX0RNQV9DRFNBX0xfUkVHKGxjaCkgfAotCQkJCSAgICAgICAoT01BUDFfRE1BX0NEU0FfVV9SRUcobGNoKSA8PCAxNikpOworCWlmIChjcHVfaXNfb21hcDE1eHgoKSkKKwkJb2Zmc2V0ID0gZG1hX3JlYWQoQ1BDKGxjaCkpOworCWVsc2UKKwkJb2Zmc2V0ID0gZG1hX3JlYWQoQ0RBQyhsY2gpKTsKIAotCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKLQkJb2Zmc2V0ID0gT01BUF9ETUFfQ0RBQ19SRUcobGNoKTsKKwkvKgorCSAqIG9tYXAgMy4yLzMuMyBlcnJhdHVtOiBzb21ldGltZXMgMCBpcyByZXR1cm5lZCBpZiBDU0FDL0NEQUMgaXMKKwkgKiByZWFkIGJlZm9yZSB0aGUgRE1BIGNvbnRyb2xsZXIgZmluaXNoZWQgZGlzYWJsaW5nIHRoZSBjaGFubmVsLgorCSAqLworCWlmICghY3B1X2lzX29tYXAxNXh4KCkgJiYgb2Zmc2V0ID09IDApCisJCW9mZnNldCA9IGRtYV9yZWFkKENEQUMobGNoKSk7CisKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCisJCW9mZnNldCB8PSAoZG1hX3JlYWQoQ0RTQV9VKGxjaCkpIDw8IDE2KTsKIAogCXJldHVybiBvZmZzZXQ7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9kc3RfcG9zKTsKIAotLyoKLSAqIFJldHVybnMgY3VycmVudCBzb3VyY2UgdHJhbnNmZXIgY291bnRpbmcgZm9yIHRoZSBnaXZlbiBETUEgY2hhbm5lbC4KLSAqIENhbiBiZSB1c2VkIHRvIG1vbml0b3IgdGhlIHByb2dyZXNzIG9mIGEgdHJhbnNmZXIgaW5zaWRlIGEgYmxvY2suCi0gKiBJdCBtdXN0IGJlIGNhbGxlZCB3aXRoIGRpc2FibGVkIGludGVycnVwdHMuCi0gKi8KLWludCBvbWFwX2dldF9kbWFfc3JjX2FkZHJfY291bnRlcihpbnQgbGNoKQoraW50IG9tYXBfZ2V0X2RtYV9hY3RpdmVfc3RhdHVzKGludCBsY2gpCiB7Ci0JcmV0dXJuIChkbWFfYWRkcl90KSBPTUFQX0RNQV9DU0FDX1JFRyhsY2gpOworCXJldHVybiAoZG1hX3JlYWQoQ0NSKGxjaCkpICYgT01BUF9ETUFfQ0NSX0VOKSAhPSAwOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2dldF9kbWFfYWN0aXZlX3N0YXR1cyk7CiAKIGludCBvbWFwX2RtYV9ydW5uaW5nKHZvaWQpCiB7CkBAIC05MzgsNyArMTA4OSw3IEBACiAJCQlyZXR1cm4gMTsKIAogCWZvciAobGNoID0gMDsgbGNoIDwgZG1hX2NoYW5fY291bnQ7IGxjaCsrKQotCQlpZiAoT01BUF9ETUFfQ0NSX1JFRyhsY2gpICYgT01BUF9ETUFfQ0NSX0VOKQorCQlpZiAoZG1hX3JlYWQoQ0NSKGxjaCkpICYgT01BUF9ETUFfQ0NSX0VOKQogCQkJcmV0dXJuIDE7CiAKIAlyZXR1cm4gMDsKQEAgLTk0OSw3ICsxMTAwLDcgQEAKICAqIEZvciB0aGlzIERNQSBsaW5rIHRvIHN0YXJ0LCB5b3Ugc3RpbGwgbmVlZCB0byBzdGFydCAoc2VlIG9tYXBfc3RhcnRfZG1hKQogICogdGhlIGZpcnN0IG9uZS4gVGhhdCB3aWxsIGZpcmUgdXAgdGhlIGVudGlyZSBxdWV1ZS4KICAqLwotdm9pZCBvbWFwX2RtYV9saW5rX2xjaCAoaW50IGxjaF9oZWFkLCBpbnQgbGNoX3F1ZXVlKQordm9pZCBvbWFwX2RtYV9saW5rX2xjaChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpCiB7CiAJaWYgKG9tYXBfZG1hX2luXzE1MTBfbW9kZSgpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiRE1BIGxpbmtpbmcgaXMgbm90IHN1cHBvcnRlZCBpbiAxNTEwIG1vZGVcbiIpOwpAQCAtOTY2LDExICsxMTE3LDEyIEBACiAKIAlkbWFfY2hhbltsY2hfaGVhZF0ubmV4dF9sY2ggPSBsY2hfcXVldWU7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZG1hX2xpbmtfbGNoKTsKIAogLyoKICAqIE9uY2UgdGhlIERNQSBxdWV1ZSBpcyBzdG9wcGVkLCB3ZSBjYW4gZGVzdHJveSBpdC4KICAqLwotdm9pZCBvbWFwX2RtYV91bmxpbmtfbGNoIChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpCit2b2lkIG9tYXBfZG1hX3VubGlua19sY2goaW50IGxjaF9oZWFkLCBpbnQgbGNoX3F1ZXVlKQogewogCWlmIChvbWFwX2RtYV9pbl8xNTEwX21vZGUoKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkRNQSBsaW5raW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gMTUxMCBtb2RlXG4iKTsKQEAgLTk4NSw3ICsxMTM3LDYgQEAKIAkJZHVtcF9zdGFjaygpOwogCX0KIAotCiAJaWYgKChkbWFfY2hhbltsY2hfaGVhZF0uZmxhZ3MgJiBPTUFQX0RNQV9BQ1RJVkUpIHx8CiAJICAgIChkbWFfY2hhbltsY2hfaGVhZF0uZmxhZ3MgJiBPTUFQX0RNQV9BQ1RJVkUpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAib21hcF9kbWE6IFlvdSBuZWVkIHRvIHN0b3AgdGhlIERNQSBjaGFubmVscyAiCkBAIC05OTUsMTIgKzExNDYsMTUgQEAKIAogCWRtYV9jaGFuW2xjaF9oZWFkXS5uZXh0X2xjaCA9IC0xOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2RtYV91bmxpbmtfbGNoKTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogI2lmbmRlZiBDT05GSUdfQVJDSF9PTUFQMQogLyogQ3JlYXRlIGNoYWluIG9mIERNQSBjaGFubmVzbHMgKi8KIHN0YXRpYyB2b2lkIGNyZWF0ZV9kbWFfbGNoX2NoYWluKGludCBsY2hfaGVhZCwgaW50IGxjaF9xdWV1ZSkKIHsKLQl1MzIgdzsKKwl1MzIgbDsKIAogCS8qIENoZWNrIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGxpbmsgaW4gY2hhaW4gKi8KIAlpZiAoZG1hX2NoYW5bbGNoX2hlYWRdLm5leHRfbGlua2VkX2NoID09IC0xKSB7CkBAIC0xMDIwLDE1ICsxMTc0LDE1IEBACiAJCQkJCWxjaF9xdWV1ZTsKIAl9CiAKLQl3ID0gT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2hfaGVhZCk7Ci0JdyAmPSB+KDB4MWYpOwotCXcgfD0gbGNoX3F1ZXVlOwotCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoX2hlYWQpID0gdzsKKwlsID0gZG1hX3JlYWQoQ0xOS19DVFJMKGxjaF9oZWFkKSk7CisJbCAmPSB+KDB4MWYpOworCWwgfD0gbGNoX3F1ZXVlOworCWRtYV93cml0ZShsLCBDTE5LX0NUUkwobGNoX2hlYWQpKTsKIAotCXcgPSBPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKGxjaF9xdWV1ZSk7Ci0JdyAmPSB+KDB4MWYpOwotCXcgfD0gKGRtYV9jaGFuW2xjaF9xdWV1ZV0ubmV4dF9saW5rZWRfY2gpOwotCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoX3F1ZXVlKSA9IHc7CisJbCA9IGRtYV9yZWFkKENMTktfQ1RSTChsY2hfcXVldWUpKTsKKwlsICY9IH4oMHgxZik7CisJbCB8PSAoZG1hX2NoYW5bbGNoX3F1ZXVlXS5uZXh0X2xpbmtlZF9jaCk7CisJZG1hX3dyaXRlKGwsIENMTktfQ1RSTChsY2hfcXVldWUpKTsKIH0KIAogLyoqCkBAIC0xMDYzLDcgKzEyMTcsNyBAQAogCX0KIAogCWlmICh1bmxpa2VseSgobm9fb2ZfY2hhbnMgPCAxCi0JCQl8fCBub19vZl9jaGFucyA+IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCQkJfHwgbm9fb2ZfY2hhbnMgPiBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIE51bWJlciBvZiBjaGFubmVscyByZXF1ZXN0ZWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMTE4LDYgKzEyNzIsNyBAQAogCQlmb3IgKGkgPSAwOyBpIDwgKG5vX29mX2NoYW5zIC0gMSk7IGkrKykKIAkJCWNyZWF0ZV9kbWFfbGNoX2NoYWluKGNoYW5uZWxzW2ldLCBjaGFubmVsc1tpICsgMV0pOwogCX0KKwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX3JlcXVlc3RfZG1hX2NoYWluKTsKQEAgLTExNDAsNyArMTI5NSw3IEBACiAKIAkvKiBDaGVjayBmb3IgaW5wdXQgcGFyYW1zICovCiAJaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAKLQkJCXx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCQkJfHwgY2hhaW5faWQgPj0gZG1hX2xjaF9jb3VudCkpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCBjaGFpbiBpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTExNjAsNiArMTMxNSw3IEBACiAJCSAqLwogCQlvbWFwX3NldF9kbWFfcGFyYW1zKGNoYW5uZWxzW2ldLCAmcGFyYW1zKTsKIAl9CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9tb2RpZnlfZG1hX2NoYWluX3BhcmFtcyk7CkBAIC0xMTc4LDcgKzEzMzQsNyBAQAogCXUzMiBpOwogCiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwotCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMjAzLDYgKzEzNTksNyBAQAogCWRtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5saW5rZWRfZG1hY2hfcSA9IE5VTEw7CiAJZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmNoYWluX21vZGUgPSAtMTsKIAlkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0uY2hhaW5fc3RhdGUgPSAtMTsKKwogCXJldHVybiAoMCk7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZnJlZV9kbWFfY2hhaW4pOwpAQCAtMTIxOCw3ICsxMzc1LDcgQEAKIGludCBvbWFwX2RtYV9jaGFpbl9zdGF0dXMoaW50IGNoYWluX2lkKQogewogCS8qIENoZWNrIGZvciBpbnB1dCBwYXJhbXMgKi8KLQlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYWluIGlkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTIzMyw2ICsxMzkwLDcgQEAKIAogCWlmIChPTUFQX0RNQV9DSEFJTl9RRU1QVFkoY2hhaW5faWQpKQogCQlyZXR1cm4gT01BUF9ETUFfQ0hBSU5fSU5BQ1RJVkU7CisKIAlyZXR1cm4gT01BUF9ETUFfQ0hBSU5fQUNUSVZFOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX2RtYV9jaGFpbl9zdGF0dXMpOwpAQCAtMTI1NSwxMSArMTQxMywxMyBAQAogCQkJaW50IGVsZW1fY291bnQsIGludCBmcmFtZV9jb3VudCwgdm9pZCAqY2FsbGJrX2RhdGEpCiB7CiAJaW50ICpjaGFubmVsczsKLQl1MzIgdywgbGNoOworCXUzMiBsLCBsY2g7CiAJaW50IHN0YXJ0X2RtYSA9IDA7CiAKLQkvKiBpZiBidWZmZXIgc2l6ZSBpcyBsZXNzIHRoYW4gMSB0aGVuIHRoZXJlIGlzCi0JICogbm8gdXNlIG9mIHN0YXJ0aW5nIHRoZSBjaGFpbiAqLworCS8qCisJICogaWYgYnVmZmVyIHNpemUgaXMgbGVzcyB0aGFuIDEgdGhlbiB0aGVyZSBpcworCSAqIG5vIHVzZSBvZiBzdGFydGluZyB0aGUgY2hhaW4KKwkgKi8KIAlpZiAoZWxlbV9jb3VudCA8IDEpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGJ1ZmZlciBzaXplXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xMjY3LDcgKzE0MjcsNyBAQAogCiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwogCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwCi0JCQl8fCBjaGFpbl9pZCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwkJCXx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMjk2LDIwICsxNDU2LDI0IEBACiAKIAkvKiBTZXQgdGhlIHBhcmFtcyB0byB0aGUgZnJlZSBjaGFubmVsICovCiAJaWYgKHNyY19zdGFydCAhPSAwKQotCQlPTUFQMl9ETUFfQ1NTQV9SRUcobGNoKSA9IHNyY19zdGFydDsKKwkJZG1hX3dyaXRlKHNyY19zdGFydCwgQ1NTQShsY2gpKTsKIAlpZiAoZGVzdF9zdGFydCAhPSAwKQotCQlPTUFQMl9ETUFfQ0RTQV9SRUcobGNoKSA9IGRlc3Rfc3RhcnQ7CisJCWRtYV93cml0ZShkZXN0X3N0YXJ0LCBDRFNBKGxjaCkpOwogCiAJLyogV3JpdGUgdGhlIGJ1ZmZlciBzaXplICovCi0JT01BUF9ETUFfQ0VOX1JFRyhsY2gpID0gZWxlbV9jb3VudDsKLQlPTUFQX0RNQV9DRk5fUkVHKGxjaCkgPSBmcmFtZV9jb3VudDsKKwlkbWFfd3JpdGUoZWxlbV9jb3VudCwgQ0VOKGxjaCkpOworCWRtYV93cml0ZShmcmFtZV9jb3VudCwgQ0ZOKGxjaCkpOwogCi0JLyogSWYgdGhlIGNoYWluIGlzIGR5bmFtaWNhbGx5IGxpbmtlZCwKLQkgKiB0aGVuIHdlIG1heSBoYXZlIHRvIHN0YXJ0IHRoZSBjaGFpbiBpZiBpdHMgbm90IGFjdGl2ZSAqLworCS8qCisJICogSWYgdGhlIGNoYWluIGlzIGR5bmFtaWNhbGx5IGxpbmtlZCwKKwkgKiB0aGVuIHdlIG1heSBoYXZlIHRvIHN0YXJ0IHRoZSBjaGFpbiBpZiBpdHMgbm90IGFjdGl2ZQorCSAqLwogCWlmIChkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0uY2hhaW5fbW9kZSA9PSBPTUFQX0RNQV9EWU5BTUlDX0NIQUlOKSB7CiAKLQkJLyogSW4gRHluYW1pYyBjaGFpbiwgaWYgdGhlIGNoYWluIGlzIG5vdCBzdGFydGVkLAotCQkgKiBxdWV1ZSB0aGUgY2hhbm5lbCAqLworCQkvKgorCQkgKiBJbiBEeW5hbWljIGNoYWluLCBpZiB0aGUgY2hhaW4gaXMgbm90IHN0YXJ0ZWQsCisJCSAqIHF1ZXVlIHRoZSBjaGFubmVsCisJCSAqLwogCQlpZiAoZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmNoYWluX3N0YXRlID09CiAJCQkJCQlETUFfQ0hBSU5fTk9UU1RBUlRFRCkgewogCQkJLyogRW5hYmxlIHRoZSBsaW5rIGluIHByZXZpb3VzIGNoYW5uZWwgKi8KQEAgLTEzMTksOCArMTQ4MywxMCBAQAogCQkJZG1hX2NoYW5bbGNoXS5zdGF0ZSA9IERNQV9DSF9RVUVVRUQ7CiAJCX0KIAotCQkvKiBDaGFpbiBpcyBhbHJlYWR5IHN0YXJ0ZWQsIG1ha2Ugc3VyZSBpdHMgYWN0aXZlLAotCQkgKiBpZiBub3QgdGhlbiBzdGFydCB0aGUgY2hhaW4gKi8KKwkJLyoKKwkJICogQ2hhaW4gaXMgYWxyZWFkeSBzdGFydGVkLCBtYWtlIHN1cmUgaXRzIGFjdGl2ZSwKKwkJICogaWYgbm90IHRoZW4gc3RhcnQgdGhlIGNoYWluCisJCSAqLwogCQllbHNlIHsKIAkJCXN0YXJ0X2RtYSA9IDE7CiAKQEAgLTEzMjksOCArMTQ5NSw4IEBACiAJCQkJZW5hYmxlX2xuayhkbWFfY2hhbltsY2hdLnByZXZfbGlua2VkX2NoKTsKIAkJCQlkbWFfY2hhbltsY2hdLnN0YXRlID0gRE1BX0NIX1FVRVVFRDsKIAkJCQlzdGFydF9kbWEgPSAwOwotCQkJCWlmICgwID09ICgoMSA8PCA3KSAmIChPTUFQX0RNQV9DQ1JfUkVHCi0JCQkJCShkbWFfY2hhbltsY2hdLnByZXZfbGlua2VkX2NoKSkpKSB7CisJCQkJaWYgKDAgPT0gKCgxIDw8IDcpICYgZG1hX3JlYWQoCisJCQkJCUNDUihkbWFfY2hhbltsY2hdLnByZXZfbGlua2VkX2NoKSkpKSB7CiAJCQkJCWRpc2FibGVfbG5rKGRtYV9jaGFuW2xjaF0uCiAJCQkJCQkgICAgcHJldl9saW5rZWRfY2gpOwogCQkJCQlwcl9kZWJ1ZygiXG4gcHJldiBjaCBpcyBzdG9wcGVkXG4iKTsKQEAgLTEzNDYsMjcgKzE1MTIsMjggQEAKIAkJCX0KIAkJCW9tYXBfZW5hYmxlX2NoYW5uZWxfaXJxKGxjaCk7CiAKLQkJCXcgPSBPTUFQX0RNQV9DQ1JfUkVHKGxjaCk7CisJCQlsID0gZG1hX3JlYWQoQ0NSKGxjaCkpOwogCi0JCQlpZiAoKDAgPT0gKHcgJiAoMSA8PCAyNCkpKSkKLQkJCQl3ICY9IH4oMSA8PCAyNSk7CisJCQlpZiAoKDAgPT0gKGwgJiAoMSA8PCAyNCkpKSkKKwkJCQlsICY9IH4oMSA8PCAyNSk7CiAJCQllbHNlCi0JCQkJdyB8PSAoMSA8PCAyNSk7CisJCQkJbCB8PSAoMSA8PCAyNSk7CiAJCQlpZiAoc3RhcnRfZG1hID09IDEpIHsKLQkJCQlpZiAoMCA9PSAodyAmICgxIDw8IDcpKSkgewotCQkJCQl3IHw9ICgxIDw8IDcpOworCQkJCWlmICgwID09IChsICYgKDEgPDwgNykpKSB7CisJCQkJCWwgfD0gKDEgPDwgNyk7CiAJCQkJCWRtYV9jaGFuW2xjaF0uc3RhdGUgPSBETUFfQ0hfU1RBUlRFRDsKIAkJCQkJcHJfZGVidWcoInN0YXJ0aW5nICVkXG4iLCBsY2gpOwotCQkJCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgPSB3OworCQkJCQlkbWFfd3JpdGUobCwgQ0NSKGxjaCkpOwogCQkJCX0gZWxzZQogCQkJCQlzdGFydF9kbWEgPSAwOwogCQkJfSBlbHNlIHsKLQkJCQlpZiAoMCA9PSAodyAmICgxIDw8IDcpKSkKLQkJCQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpID0gdzsKKwkJCQlpZiAoMCA9PSAobCAmICgxIDw8IDcpKSkKKwkJCQkJZG1hX3dyaXRlKGwsIENDUihsY2gpKTsKIAkJCX0KIAkJCWRtYV9jaGFuW2xjaF0uZmxhZ3MgfD0gT01BUF9ETUFfQUNUSVZFOwogCQl9CiAJfQorCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZG1hX2NoYWluX2FfdHJhbnNmZXIpOwpAQCAtMTM4Miw5ICsxNTQ5LDkgQEAKIGludCBvbWFwX3N0YXJ0X2RtYV9jaGFpbl90cmFuc2ZlcnMoaW50IGNoYWluX2lkKQogewogCWludCAqY2hhbm5lbHM7Ci0JdTMyIHcsIGk7CisJdTMyIGwsIGk7CiAKLQlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYWluIGlkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTQwNiwxOCArMTU3MywxOSBAQAogCQlvbWFwX2VuYWJsZV9jaGFubmVsX2lycShjaGFubmVsc1swXSk7CiAJfQogCi0JdyA9IE9NQVBfRE1BX0NDUl9SRUcoY2hhbm5lbHNbMF0pOwotCXcgfD0gKDEgPDwgNyk7CisJbCA9IGRtYV9yZWFkKENDUihjaGFubmVsc1swXSkpOworCWwgfD0gKDEgPDwgNyk7CiAJZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmNoYWluX3N0YXRlID0gRE1BX0NIQUlOX1NUQVJURUQ7CiAJZG1hX2NoYW5bY2hhbm5lbHNbMF1dLnN0YXRlID0gRE1BX0NIX1NUQVJURUQ7CiAKLQlpZiAoKDAgPT0gKHcgJiAoMSA8PCAyNCkpKSkKLQkJdyAmPSB+KDEgPDwgMjUpOworCWlmICgoMCA9PSAobCAmICgxIDw8IDI0KSkpKQorCQlsICY9IH4oMSA8PCAyNSk7CiAJZWxzZQotCQl3IHw9ICgxIDw8IDI1KTsKLQlPTUFQX0RNQV9DQ1JfUkVHKGNoYW5uZWxzWzBdKSA9IHc7CisJCWwgfD0gKDEgPDwgMjUpOworCWRtYV93cml0ZShsLCBDQ1IoY2hhbm5lbHNbMF0pKTsKIAogCWRtYV9jaGFuW2NoYW5uZWxzWzBdXS5mbGFncyB8PSBPTUFQX0RNQV9BQ1RJVkU7CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9zdGFydF9kbWFfY2hhaW5fdHJhbnNmZXJzKTsKQEAgLTE0MzMsMTEgKzE2MDEsMTEgQEAKIGludCBvbWFwX3N0b3BfZG1hX2NoYWluX3RyYW5zZmVycyhpbnQgY2hhaW5faWQpCiB7CiAJaW50ICpjaGFubmVsczsKLQl1MzIgdywgaTsKKwl1MzIgbCwgaTsKIAl1MzIgc3lzX2NmOwogCiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwotCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xNDQ5LDIxICsxNjE3LDIyIEBACiAJfQogCWNoYW5uZWxzID0gZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmxpbmtlZF9kbWFjaF9xOwogCi0JLyogRE1BIEVycmF0YToKKwkvKgorCSAqIERNQSBFcnJhdGE6CiAJICogU3BlY2lhbCBwcm9ncmFtbWluZyBtb2RlbCBuZWVkZWQgdG8gZGlzYWJsZSBETUEgYmVmb3JlIGVuZCBvZiBibG9jawogCSAqLwotCXN5c19jZiA9IG9tYXBfcmVhZGwoT01BUF9ETUE0X09DUF9TWVNDT05GSUcpOwotCXcgPSBzeXNfY2Y7CisJc3lzX2NmID0gZG1hX3JlYWQoT0NQX1NZU0NPTkZJRyk7CisJbCA9IHN5c19jZjsKIAkvKiBNaWRkbGUgbW9kZSByZWcgc2V0IG5vIFN0YW5kYnkgKi8KLQl3ICY9IH4oKDEgPDwgMTIpfCgxIDw8IDEzKSk7Ci0Jb21hcF93cml0ZWwodywgT01BUF9ETUE0X09DUF9TWVNDT05GSUcpOworCWwgJj0gfigoMSA8PCAxMil8KDEgPDwgMTMpKTsKKwlkbWFfd3JpdGUobCwgT0NQX1NZU0NPTkZJRyk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLm5vX29mX2xjaHNfbGlua2VkOyBpKyspIHsKIAogCQkvKiBTdG9wIHRoZSBDaGFubmVsIHRyYW5zbWlzc2lvbiAqLwotCQl3ID0gT01BUF9ETUFfQ0NSX1JFRyhjaGFubmVsc1tpXSk7Ci0JCXcgJj0gfigxIDw8IDcpOwotCQlPTUFQX0RNQV9DQ1JfUkVHKGNoYW5uZWxzW2ldKSA9IHc7CisJCWwgPSBkbWFfcmVhZChDQ1IoY2hhbm5lbHNbaV0pKTsKKwkJbCAmPSB+KDEgPDwgNyk7CisJCWRtYV93cml0ZShsLCBDQ1IoY2hhbm5lbHNbaV0pKTsKIAogCQkvKiBEaXNhYmxlIHRoZSBsaW5rIGluIGFsbCB0aGUgY2hhbm5lbHMgKi8KIAkJZGlzYWJsZV9sbmsoY2hhbm5lbHNbaV0pOwpAQCAtMTQ3Niw3ICsxNjQ1LDggQEAKIAlPTUFQX0RNQV9DSEFJTl9RSU5JVChjaGFpbl9pZCk7CiAKIAkvKiBFcnJhdGEgLSBwdXQgaW4gdGhlIG9sZCB2YWx1ZSAqLwotCW9tYXBfd3JpdGVsKHN5c19jZiwgT01BUF9ETUE0X09DUF9TWVNDT05GSUcpOworCWRtYV93cml0ZShzeXNfY2YsIE9DUF9TWVNDT05GSUcpOworCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfc3RvcF9kbWFfY2hhaW5fdHJhbnNmZXJzKTsKQEAgLTE0OTksNyArMTY2OSw3IEBACiAJaW50ICpjaGFubmVsczsKIAogCS8qIENoZWNrIGZvciBpbnB1dCBwYXJhbXMgKi8KLQlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYWluIGlkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTUxNyw4ICsxNjg3LDggQEAKIAkvKiBHZXQgdGhlIGN1cnJlbnQgY2hhbm5lbCAqLwogCWxjaCA9IGNoYW5uZWxzW2RtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5xX2hlYWRdOwogCi0JKmVpID0gT01BUDJfRE1BX0NDRU5fUkVHKGxjaCk7Ci0JKmZpID0gT01BUDJfRE1BX0NDRk5fUkVHKGxjaCk7CisJKmVpID0gZG1hX3JlYWQoQ0NFTihsY2gpKTsKKwkqZmkgPSBkbWFfcmVhZChDQ0ZOKGxjaCkpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNTM5LDcgKzE3MDksNyBAQAogCWludCAqY2hhbm5lbHM7CiAKIAkvKiBDaGVjayBmb3IgaW5wdXQgcGFyYW1zICovCi0JaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCkpKSB7CisJaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gZG1hX2xjaF9jb3VudCkpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCBjaGFpbiBpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE1NTUsNyArMTcyNSw3IEBACiAJLyogR2V0IHRoZSBjdXJyZW50IGNoYW5uZWwgKi8KIAlsY2ggPSBjaGFubmVsc1tkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0ucV9oZWFkXTsKIAotCXJldHVybiAoT01BUF9ETUFfQ0RBQ19SRUcobGNoKSk7CisJcmV0dXJuIGRtYV9yZWFkKENEQUMobGNoKSk7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9jaGFpbl9kc3RfcG9zKTsKIApAQCAtMTU3Myw3ICsxNzQzLDcgQEAKIAlpbnQgKmNoYW5uZWxzOwogCiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwotCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xNTg5LDEwICsxNzU5LDEwIEBACiAJLyogR2V0IHRoZSBjdXJyZW50IGNoYW5uZWwgKi8KIAlsY2ggPSBjaGFubmVsc1tkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0ucV9oZWFkXTsKIAotCXJldHVybiAoT01BUF9ETUFfQ1NBQ19SRUcobGNoKSk7CisJcmV0dXJuIGRtYV9yZWFkKENTQUMobGNoKSk7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9jaGFpbl9zcmNfcG9zKTsKLSNlbmRpZgorI2VuZGlmCS8qIGlmbmRlZiBDT05GSUdfQVJDSF9PTUFQMSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCkBAIC0xNjAwLDEzICsxNzcwLDEzIEBACiAKIHN0YXRpYyBpbnQgb21hcDFfZG1hX2hhbmRsZV9jaChpbnQgY2gpCiB7Ci0JdTE2IGNzcjsKKwl1MzIgY3NyOwogCiAJaWYgKGVuYWJsZV8xNTEwX21vZGUgJiYgY2ggPj0gNikgewogCQljc3IgPSBkbWFfY2hhbltjaF0uc2F2ZWRfY3NyOwogCQlkbWFfY2hhbltjaF0uc2F2ZWRfY3NyID0gMDsKIAl9IGVsc2UKLQkJY3NyID0gT01BUF9ETUFfQ1NSX1JFRyhjaCk7CisJCWNzciA9IGRtYV9yZWFkKENTUihjaCkpOwogCWlmIChlbmFibGVfMTUxMF9tb2RlICYmIGNoIDw9IDIgJiYgKGNzciA+PiA3KSAhPSAwKSB7CiAJCWRtYV9jaGFuW2NoICsgNl0uc2F2ZWRfY3NyID0gY3NyID4+IDc7CiAJCWNzciAmPSAweDdmOwpAQCAtMTYyOCw2ICsxNzk4LDcgQEAKIAkJZG1hX2NoYW5bY2hdLmZsYWdzICY9IH5PTUFQX0RNQV9BQ1RJVkU7CiAJaWYgKGxpa2VseShkbWFfY2hhbltjaF0uY2FsbGJhY2sgIT0gTlVMTCkpCiAJCWRtYV9jaGFuW2NoXS5jYWxsYmFjayhjaCwgY3NyLCBkbWFfY2hhbltjaF0uZGF0YSk7CisKIAlyZXR1cm4gMTsKIH0KIApAQCAtMTY1OCwxMiArMTgyOSwxMyBAQAogCiBzdGF0aWMgaW50IG9tYXAyX2RtYV9oYW5kbGVfY2goaW50IGNoKQogewotCXUzMiBzdGF0dXMgPSBPTUFQX0RNQV9DU1JfUkVHKGNoKTsKKwl1MzIgc3RhdHVzID0gZG1hX3JlYWQoQ1NSKGNoKSk7CiAKIAlpZiAoIXN0YXR1cykgewogCQlpZiAocHJpbnRrX3JhdGVsaW1pdCgpKQotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiU3B1cmlvdXMgRE1BIElSUSBmb3IgbGNoICVkXG4iLCBjaCk7Ci0JCW9tYXBfd3JpdGVsKDEgPDwgY2gsIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiU3B1cmlvdXMgRE1BIElSUSBmb3IgbGNoICVkXG4iLAorCQkJCWNoKTsKKwkJZG1hX3dyaXRlKDEgPDwgY2gsIElSUVNUQVRVU19MMCk7CiAJCXJldHVybiAwOwogCX0KIAlpZiAodW5saWtlbHkoZG1hX2NoYW5bY2hdLmRldl9pZCA9PSAtMSkpIHsKQEAgLTE2ODYsMTQgKzE4NTgsMTQgQEAKIAkJcHJpbnRrKEtFUk5fSU5GTyAiRE1BIG1pc2FsaWduZWQgZXJyb3Igd2l0aCBkZXZpY2UgJWRcbiIsCiAJCSAgICAgICBkbWFfY2hhbltjaF0uZGV2X2lkKTsKIAotCU9NQVBfRE1BX0NTUl9SRUcoY2gpID0gT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLOwotCW9tYXBfd3JpdGVsKDEgPDwgY2gsIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCWRtYV93cml0ZShPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0ssIENTUihjaCkpOworCWRtYV93cml0ZSgxIDw8IGNoLCBJUlFTVEFUVVNfTDApOwogCiAJLyogSWYgdGhlIGNoIGlzIG5vdCBjaGFpbmVkIHRoZW4gY2hhaW5faWQgd2lsbCBiZSAtMSAqLwogCWlmIChkbWFfY2hhbltjaF0uY2hhaW5faWQgIT0gLTEpIHsKIAkJaW50IGNoYWluX2lkID0gZG1hX2NoYW5bY2hdLmNoYWluX2lkOwogCQlkbWFfY2hhbltjaF0uc3RhdGUgPSBETUFfQ0hfTk9UU1RBUlRFRDsKLQkJaWYgKE9NQVBfRE1BX0NMTktfQ1RSTF9SRUcoY2gpICYgKDEgPDwgMTUpKQorCQlpZiAoZG1hX3JlYWQoQ0xOS19DVFJMKGNoKSkgJiAoMSA8PCAxNSkpCiAJCQlkbWFfY2hhbltkbWFfY2hhbltjaF0ubmV4dF9saW5rZWRfY2hdLnN0YXRlID0KIAkJCQkJCQlETUFfQ0hfU1RBUlRFRDsKIAkJaWYgKGRtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5jaGFpbl9tb2RlID09CkBAIC0xNzAzLDEzICsxODc1LDEzIEBACiAJCWlmICghT01BUF9ETUFfQ0hBSU5fUUVNUFRZKGNoYWluX2lkKSkKIAkJCU9NQVBfRE1BX0NIQUlOX0lOQ1FIRUFEKGNoYWluX2lkKTsKIAotCQlzdGF0dXMgPSBPTUFQX0RNQV9DU1JfUkVHKGNoKTsKKwkJc3RhdHVzID0gZG1hX3JlYWQoQ1NSKGNoKSk7CiAJfQogCiAJaWYgKGxpa2VseShkbWFfY2hhbltjaF0uY2FsbGJhY2sgIT0gTlVMTCkpCiAJCWRtYV9jaGFuW2NoXS5jYWxsYmFjayhjaCwgc3RhdHVzLCBkbWFfY2hhbltjaF0uZGF0YSk7CiAKLQlPTUFQX0RNQV9DU1JfUkVHKGNoKSA9IHN0YXR1czsKKwlkbWFfd3JpdGUoc3RhdHVzLCBDU1IoY2gpKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTcyMCwxMyArMTg5MiwxMyBAQAogCXUzMiB2YWw7CiAJaW50IGk7CiAKLQl2YWwgPSBvbWFwX3JlYWRsKE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCXZhbCA9IGRtYV9yZWFkKElSUVNUQVRVU19MMCk7CiAJaWYgKHZhbCA9PSAwKSB7CiAJCWlmIChwcmludGtfcmF0ZWxpbWl0KCkpCiAJCQlwcmludGsoS0VSTl9XQVJOSU5HICJTcHVyaW91cyBETUEgSVJRXG4iKTsKIAkJcmV0dXJuIElSUV9IQU5ETEVEOwogCX0KLQlmb3IgKGkgPSAwOyBpIDwgT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCAmJiB2YWwgIT0gMDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGRtYV9sY2hfY291bnQgJiYgdmFsICE9IDA7IGkrKykgewogCQlpZiAodmFsICYgMSkKIAkJCW9tYXAyX2RtYV9oYW5kbGVfY2goaSk7CiAJCXZhbCA+Pj0gMTsKQEAgLTE3NTAsNyArMTkyMiw3IEBACiBzdGF0aWMgc3RydWN0IGxjZF9kbWFfaW5mbyB7CiAJc3BpbmxvY2tfdCBsb2NrOwogCWludCByZXNlcnZlZDsKLQl2b2lkICgqIGNhbGxiYWNrKSh1MTYgc3RhdHVzLCB2b2lkICpkYXRhKTsKKwl2b2lkICgqY2FsbGJhY2spKHUxNiBzdGF0dXMsIHZvaWQgKmRhdGEpOwogCXZvaWQgKmNiX2RhdGE7CiAKIAlpbnQgYWN0aXZlOwpAQCAtMTc3Miw2ICsxOTQ0LDcgQEAKIAlsY2RfZG1hLnhyZXMgPSBmYl94cmVzOwogCWxjZF9kbWEueXJlcyA9IGZiX3lyZXM7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjEpOwogCiB2b2lkIG9tYXBfc2V0X2xjZF9kbWFfc3JjX3BvcnQoaW50IHBvcnQpCiB7CkBAIC0xNzgyLDEyICsxOTU1LDEzIEBACiB7CiAJbGNkX2RtYS5leHRfY3RybCA9IGV4dGVybmFsOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2V4dF9jb250cm9sbGVyKTsKIAogdm9pZCBvbWFwX3NldF9sY2RfZG1hX3NpbmdsZV90cmFuc2ZlcihpbnQgc2luZ2xlKQogewogCWxjZF9kbWEuc2luZ2xlX3RyYW5zZmVyID0gc2luZ2xlOwogfQotCitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfc2luZ2xlX3RyYW5zZmVyKTsKIAogdm9pZCBvbWFwX3NldF9sY2RfZG1hX2IxX3JvdGF0aW9uKGludCByb3RhdGUpCiB7CkBAIC0xNzk4LDYgKzE5NzIsNyBAQAogCX0KIAlsY2RfZG1hLnJvdGF0ZSA9IHJvdGF0ZTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfbGNkX2RtYV9iMV9yb3RhdGlvbik7CiAKIHZvaWQgb21hcF9zZXRfbGNkX2RtYV9iMV9taXJyb3IoaW50IG1pcnJvcikKIHsKQEAgLTE4MDcsNiArMTk4Miw3IEBACiAJfQogCWxjZF9kbWEubWlycm9yID0gbWlycm9yOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX21pcnJvcik7CiAKIHZvaWQgb21hcF9zZXRfbGNkX2RtYV9iMV92eHJlcyh1bnNpZ25lZCBsb25nIHZ4cmVzKQogewpAQCAtMTgxNyw2ICsxOTkzLDcgQEAKIAl9CiAJbGNkX2RtYS52eHJlcyA9IHZ4cmVzOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX3Z4cmVzKTsKIAogdm9pZCBvbWFwX3NldF9sY2RfZG1hX2IxX3NjYWxlKHVuc2lnbmVkIGludCB4c2NhbGUsIHVuc2lnbmVkIGludCB5c2NhbGUpCiB7CkBAIC0xODI3LDYgKzIwMDQsNyBAQAogCWxjZF9kbWEueHNjYWxlID0geHNjYWxlOwogCWxjZF9kbWEueXNjYWxlID0geXNjYWxlOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX3NjYWxlKTsKIAogc3RhdGljIHZvaWQgc2V0X2IxX3JlZ3Modm9pZCkKIHsKQEAgLTE4NTcsOCArMjAzNSwxMSBAQAogCXhzY2FsZSA9IGxjZF9kbWEueHNjYWxlID8gbGNkX2RtYS54c2NhbGUgOiAxOwogCXlzY2FsZSA9IGxjZF9kbWEueXNjYWxlID8gbGNkX2RtYS55c2NhbGUgOiAxOwogCUJVR19PTih2eHJlcyA8IGxjZF9kbWEueHJlcyk7Ci0jZGVmaW5lIFBJWEFERFIoeCx5KSAobGNkX2RtYS5hZGRyICsgKCh5KSAqIHZ4cmVzICogeXNjYWxlICsgKHgpICogeHNjYWxlKSAqIGVzKQorCisjZGVmaW5lIFBJWEFERFIoeCwgeSkgKGxjZF9kbWEuYWRkciArCQkJCQlcCisJCSgoeSkgKiB2eHJlcyAqIHlzY2FsZSArICh4KSAqIHhzY2FsZSkgKiBlcykKICNkZWZpbmUgUElYU1RFUChzeCwgc3ksIGR4LCBkeSkgKFBJWEFERFIoZHgsIGR5KSAtIFBJWEFERFIoc3gsIHN5KSAtIGVzICsgMSkKKwogCXN3aXRjaCAobGNkX2RtYS5yb3RhdGUpIHsKIAljYXNlIDA6CiAJCWlmICghbGNkX2RtYS5taXJyb3IpIHsKQEAgLTE4NjcsOCArMjA0OCw4IEBACiAJCQkvKiAxNTEwIERNQSByZXF1aXJlcyB0aGUgYm90dG9tIGFkZHJlc3MgdG8gYmUgMiBtb3JlCiAJCQkgKiB0aGFuIHRoZSBhY3R1YWwgbGFzdCBtZW1vcnkgYWNjZXNzIGxvY2F0aW9uLiAqLwogCQkJaWYgKG9tYXBfZG1hX2luXzE1MTBfbW9kZSgpICYmCi0JCQkgICAgbGNkX2RtYS5kYXRhX3R5cGUgPT0gT01BUF9ETUFfREFUQV9UWVBFX1MzMikKLQkJCQlib3R0b20gKz0gMjsKKwkJCQlsY2RfZG1hLmRhdGFfdHlwZSA9PSBPTUFQX0RNQV9EQVRBX1RZUEVfUzMyKQorCQkJCQlib3R0b20gKz0gMjsKIAkJCWVpID0gUElYU1RFUCgwLCAwLCAxLCAwKTsKIAkJCWZpID0gUElYU1RFUChsY2RfZG1hLnhyZXMgLSAxLCAwLCAwLCAxKTsKIAkJfSBlbHNlIHsKQEAgLTE5OTUsNyArMjE3Niw3IEBACiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQogCi1pbnQgb21hcF9yZXF1ZXN0X2xjZF9kbWEodm9pZCAoKiBjYWxsYmFjaykodTE2IHN0YXR1cywgdm9pZCAqZGF0YSksCitpbnQgb21hcF9yZXF1ZXN0X2xjZF9kbWEodm9pZCAoKmNhbGxiYWNrKSh1MTYgc3RhdHVzLCB2b2lkICpkYXRhKSwKIAkJCSB2b2lkICpkYXRhKQogewogCXNwaW5fbG9ja19pcnEoJmxjZF9kbWEubG9jayk7CkBAIC0yMDIxLDYgKzIyMDIsNyBAQAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfcmVxdWVzdF9sY2RfZG1hKTsKIAogdm9pZCBvbWFwX2ZyZWVfbGNkX2RtYSh2b2lkKQogewpAQCAtMjAzNywxMiArMjIxOSwxNCBAQAogCWxjZF9kbWEucmVzZXJ2ZWQgPSAwOwogCXNwaW5fdW5sb2NrKCZsY2RfZG1hLmxvY2spOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2ZyZWVfbGNkX2RtYSk7CiAKIHZvaWQgb21hcF9lbmFibGVfbGNkX2RtYSh2b2lkKQogewogCXUxNiB3OwogCi0JLyogU2V0IHRoZSBFbmFibGUgYml0IG9ubHkgaWYgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBpcworCS8qCisJICogU2V0IHRoZSBFbmFibGUgYml0IG9ubHkgaWYgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBpcwogCSAqIGNvbm5lY3RlZC4gT3RoZXJ3aXNlIHRoZSBPTUFQIGludGVybmFsIGNvbnRyb2xsZXIgd2lsbAogCSAqIHN0YXJ0IHRoZSB0cmFuc2ZlciB3aGVuIGl0IGdldHMgZW5hYmxlZC4KIAkgKi8KQEAgLTIwNTksNiArMjI0Myw3IEBACiAJdyB8PSAxIDw8IDc7CiAJb21hcF93cml0ZXcodywgT01BUDE2MTBfRE1BX0xDRF9DQ1IpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2VuYWJsZV9sY2RfZG1hKTsKIAogdm9pZCBvbWFwX3NldHVwX2xjZF9kbWEodm9pZCkKIHsKQEAgLTIwNzQsMTYgKzIyNTksMTggQEAKIAkJdTE2IHc7CiAKIAkJdyA9IG9tYXBfcmVhZHcoT01BUDE2MTBfRE1BX0xDRF9DQ1IpOwotCQkvKiBJZiBETUEgd2FzIGFscmVhZHkgYWN0aXZlIHNldCB0aGUgZW5kX3Byb2cgYml0IHRvIGhhdmUKKwkJLyoKKwkJICogSWYgRE1BIHdhcyBhbHJlYWR5IGFjdGl2ZSBzZXQgdGhlIGVuZF9wcm9nIGJpdCB0byBoYXZlCiAJCSAqIHRoZSBwcm9ncmFtbWVkIHJlZ2lzdGVyIHNldCBsb2FkZWQgaW50byB0aGUgYWN0aXZlCiAJCSAqIHJlZ2lzdGVyIHNldC4KIAkJICovCiAJCXcgfD0gMSA8PCAxMTsJCS8qIEVuZF9wcm9nICovCiAJCWlmICghbGNkX2RtYS5zaW5nbGVfdHJhbnNmZXIpCi0JICAgICAgICAJdyB8PSAoMyA8PCA4KTsJLyogQXV0b19pbml0LCByZXBlYXQgKi8KKwkJCXcgfD0gKDMgPDwgOCk7CS8qIEF1dG9faW5pdCwgcmVwZWF0ICovCiAJCW9tYXBfd3JpdGV3KHcsIE9NQVAxNjEwX0RNQV9MQ0RfQ0NSKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0dXBfbGNkX2RtYSk7CiAKIHZvaWQgb21hcF9zdG9wX2xjZF9kbWEodm9pZCkKIHsKQEAgLTIxMDEsNiArMjI4OCw3IEBACiAJdyAmPSB+KDEgPDwgOCk7CiAJb21hcF93cml0ZXcodywgT01BUDE2MTBfRE1BX0xDRF9DVFJMKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zdG9wX2xjZF9kbWEpOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCkBAIC0yMTA4LDI3ICsyMjk2LDU1IEBACiB7CiAJaW50IGNoLCByOwogCisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7CisJCW9tYXBfZG1hX2Jhc2UgPSAodm9pZCBfX2lvbWVtICopSU9fQUREUkVTUyhPTUFQMV9ETUFfQkFTRSk7CisJCWRtYV9sY2hfY291bnQgPSBPTUFQMV9MT0dJQ0FMX0RNQV9DSF9DT1VOVDsKKwl9IGVsc2UgaWYgKGNwdV9pc19vbWFwMjR4eCgpKSB7CisJCW9tYXBfZG1hX2Jhc2UgPSAodm9pZCBfX2lvbWVtICopSU9fQUREUkVTUyhPTUFQMjRYWF9ETUE0X0JBU0UpOworCQlkbWFfbGNoX2NvdW50ID0gT01BUF9ETUE0X0xPR0lDQUxfRE1BX0NIX0NPVU5UOworCX0gZWxzZSBpZiAoY3B1X2lzX29tYXAzNHh4KCkpIHsKKwkJb21hcF9kbWFfYmFzZSA9ICh2b2lkIF9faW9tZW0gKilJT19BRERSRVNTKE9NQVAzNFhYX0RNQTRfQkFTRSk7CisJCWRtYV9sY2hfY291bnQgPSBPTUFQX0RNQTRfTE9HSUNBTF9ETUFfQ0hfQ09VTlQ7CisJfSBlbHNlIHsKKwkJcHJfZXJyKCJETUEgaW5pdCBmYWlsZWQgZm9yIHVuc3VwcG9ydGVkIG9tYXBcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlkbWFfY2hhbiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBvbWFwX2RtYV9sY2gpICogZG1hX2xjaF9jb3VudCwKKwkJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIWRtYV9jaGFuKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgeworCQlkbWFfbGlua2VkX2xjaCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkbWFfbGlua19pbmZvKSAqCisJCQkJCQlkbWFfbGNoX2NvdW50LCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFkbWFfbGlua2VkX2xjaCkgeworCQkJa2ZyZWUoZG1hX2NoYW4pOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwl9CisKIAlpZiAoY3B1X2lzX29tYXAxNXh4KCkpIHsKIAkJcHJpbnRrKEtFUk5fSU5GTyAiRE1BIHN1cHBvcnQgZm9yIE9NQVAxNXh4IGluaXRpYWxpemVkXG4iKTsKIAkJZG1hX2NoYW5fY291bnQgPSA5OwogCQllbmFibGVfMTUxMF9tb2RlID0gMTsKIAl9IGVsc2UgaWYgKGNwdV9pc19vbWFwMTZ4eCgpIHx8IGNwdV9pc19vbWFwNzMwKCkpIHsKIAkJcHJpbnRrKEtFUk5fSU5GTyAiT01BUCBETUEgaGFyZHdhcmUgdmVyc2lvbiAlZFxuIiwKLQkJICAgICAgIG9tYXBfcmVhZHcoT01BUF9ETUFfSFdfSUQpKTsKKwkJICAgICAgIGRtYV9yZWFkKEhXX0lEKSk7CiAJCXByaW50ayhLRVJOX0lORk8gIkRNQSBjYXBhYmlsaXRpZXM6ICUwOHg6JTA4eDolMDR4OiUwNHg6JTA0eFxuIiwKLQkJICAgICAgIChvbWFwX3JlYWR3KE9NQVBfRE1BX0NBUFNfMF9VKSA8PCAxNikgfAotCQkgICAgICAgb21hcF9yZWFkdyhPTUFQX0RNQV9DQVBTXzBfTCksCi0JCSAgICAgICAob21hcF9yZWFkdyhPTUFQX0RNQV9DQVBTXzFfVSkgPDwgMTYpIHwKLQkJICAgICAgIG9tYXBfcmVhZHcoT01BUF9ETUFfQ0FQU18xX0wpLAotCQkgICAgICAgb21hcF9yZWFkdyhPTUFQX0RNQV9DQVBTXzIpLCBvbWFwX3JlYWR3KE9NQVBfRE1BX0NBUFNfMyksCi0JCSAgICAgICBvbWFwX3JlYWR3KE9NQVBfRE1BX0NBUFNfNCkpOworCQkgICAgICAgKGRtYV9yZWFkKENBUFNfMF9VKSA8PCAxNikgfAorCQkgICAgICAgZG1hX3JlYWQoQ0FQU18wX0wpLAorCQkgICAgICAgKGRtYV9yZWFkKENBUFNfMV9VKSA8PCAxNikgfAorCQkgICAgICAgZG1hX3JlYWQoQ0FQU18xX0wpLAorCQkgICAgICAgZG1hX3JlYWQoQ0FQU18yKSwgZG1hX3JlYWQoQ0FQU18zKSwKKwkJICAgICAgIGRtYV9yZWFkKENBUFNfNCkpOwogCQlpZiAoIWVuYWJsZV8xNTEwX21vZGUpIHsKIAkJCXUxNiB3OwogCiAJCQkvKiBEaXNhYmxlIE9NQVAgMy4wLzMuMSBjb21wYXRpYmlsaXR5IG1vZGUuICovCi0JCQl3ID0gb21hcF9yZWFkdyhPTUFQX0RNQV9HU0NSKTsKKwkJCXcgPSBkbWFfcmVhZChHU0NSKTsKIAkJCXcgfD0gMSA8PCAzOwotCQkJb21hcF93cml0ZXcodywgT01BUF9ETUFfR1NDUik7CisJCQlkbWFfd3JpdGUodywgR1NDUik7CiAJCQlkbWFfY2hhbl9jb3VudCA9IDE2OwogCQl9IGVsc2UKIAkJCWRtYV9jaGFuX2NvdW50ID0gOTsKQEAgLTIxNDEsMTkgKzIzNTcsMTcgQEAKIAkJCW9tYXBfd3JpdGV3KHcsIE9NQVAxNjEwX0RNQV9MQ0RfQ1RSTCk7CiAJCX0KIAl9IGVsc2UgaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7Ci0JCXU4IHJldmlzaW9uID0gb21hcF9yZWFkYihPTUFQX0RNQTRfUkVWSVNJT04pOworCQl1OCByZXZpc2lvbiA9IGRtYV9yZWFkKFJFVklTSU9OKSAmIDB4ZmY7CiAJCXByaW50ayhLRVJOX0lORk8gIk9NQVAgRE1BIGhhcmR3YXJlIHJldmlzaW9uICVkLiVkXG4iLAogCQkgICAgICAgcmV2aXNpb24gPj4gNCwgcmV2aXNpb24gJiAweGYpOwotCQlkbWFfY2hhbl9jb3VudCA9IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQ7CisJCWRtYV9jaGFuX2NvdW50ID0gT01BUF9ETUE0X0xPR0lDQUxfRE1BX0NIX0NPVU5UOwogCX0gZWxzZSB7CiAJCWRtYV9jaGFuX2NvdW50ID0gMDsKIAkJcmV0dXJuIDA7CiAJfQogCi0JbWVtc2V0KCZsY2RfZG1hLCAwLCBzaXplb2YobGNkX2RtYSkpOwogCXNwaW5fbG9ja19pbml0KCZsY2RfZG1hLmxvY2spOwogCXNwaW5fbG9ja19pbml0KCZkbWFfY2hhbl9sb2NrKTsKLQltZW1zZXQoJmRtYV9jaGFuLCAwLCBzaXplb2YoZG1hX2NoYW4pKTsKIAogCWZvciAoY2ggPSAwOyBjaCA8IGRtYV9jaGFuX2NvdW50OyBjaCsrKSB7CiAJCW9tYXBfY2xlYXJfZG1hKGNoKTsKQEAgLTIxNjQsOCArMjM3OCwxMCBAQAogCQkJY29udGludWU7CiAKIAkJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7Ci0JCQkvKiByZXF1ZXN0X2lycSgpIGRvZXNuJ3QgbGlrZSBkZXZfaWQgKGllLiBjaCkgYmVpbmcKLQkJCSAqIHplcm8sIHNvIHdlIGhhdmUgdG8ga2x1ZGdlIGFyb3VuZCB0aGlzLiAqLworCQkJLyoKKwkJCSAqIHJlcXVlc3RfaXJxKCkgZG9lc24ndCBsaWtlIGRldl9pZCAoaWUuIGNoKSBiZWluZworCQkJICogemVybywgc28gd2UgaGF2ZSB0byBrbHVkZ2UgYXJvdW5kIHRoaXMuCisJCQkgKi8KIAkJCXIgPSByZXF1ZXN0X2lycShvbWFwMV9kbWFfaXJxW2NoXSwKIAkJCQkJb21hcDFfZG1hX2lycV9oYW5kbGVyLCAwLCAiRE1BIiwKIAkJCQkJKHZvaWQgKikgKGNoICsgMSkpOwpAQCAtMjIxMCw0OCArMjQyNiw0IEBACiAKIGFyY2hfaW5pdGNhbGwob21hcF9pbml0X2RtYSk7CiAKLUVYUE9SVF9TWU1CT0wob21hcF9nZXRfZG1hX3NyY19wb3MpOwotRVhQT1JUX1NZTUJPTChvbWFwX2dldF9kbWFfZHN0X3Bvcyk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9zcmNfYWRkcl9jb3VudGVyKTsKLUVYUE9SVF9TWU1CT0wob21hcF9jbGVhcl9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfcHJpb3JpdHkpOwotRVhQT1JUX1NZTUJPTChvbWFwX3JlcXVlc3RfZG1hKTsKLUVYUE9SVF9TWU1CT0wob21hcF9mcmVlX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc3RhcnRfZG1hKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zdG9wX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9jYWxsYmFjayk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfZW5hYmxlX2RtYV9pcnEpOwotRVhQT1JUX1NZTUJPTChvbWFwX2Rpc2FibGVfZG1hX2lycSk7Ci0KLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9jb2xvcl9tb2RlKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3dyaXRlX21vZGUpOwotCi1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9zcmNfcGFyYW1zKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19pbmRleCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9zcmNfZGF0YV9wYWNrKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19idXJzdF9tb2RlKTsKLQotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfZGVzdF9pbmRleCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2RhdGFfcGFjayk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2J1cnN0X21vZGUpOwotCi1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9wYXJhbXMpOwotCi1FWFBPUlRfU1lNQk9MKG9tYXBfZG1hX2xpbmtfbGNoKTsKLUVYUE9SVF9TWU1CT0wob21hcF9kbWFfdW5saW5rX2xjaCk7Ci0KLUVYUE9SVF9TWU1CT0wob21hcF9yZXF1ZXN0X2xjZF9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX2ZyZWVfbGNkX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfZW5hYmxlX2xjZF9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldHVwX2xjZF9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX3N0b3BfbGNkX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjEpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX3NpbmdsZV90cmFuc2Zlcik7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfZXh0X2NvbnRyb2xsZXIpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX3JvdGF0aW9uKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfbGNkX2RtYV9iMV92eHJlcyk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjFfc2NhbGUpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX21pcnJvcik7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9kbXRpbWVyLmMgYi9hcmNoL2FybS9wbGF0LW9tYXAvZG10aW1lci5jCmluZGV4IDMwMmFkOGQuLmYyMjUwNmEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9kbXRpbWVyLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2RtdGltZXIuYwpAQCAtMzgsMzQgKzM4LDExMyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL2lycXMuaD4KIAogLyogcmVnaXN0ZXIgb2Zmc2V0cyAqLwotI2RlZmluZSBPTUFQX1RJTUVSX0lEX1JFRwkJMHgwMAotI2RlZmluZSBPTUFQX1RJTUVSX09DUF9DRkdfUkVHCQkweDEwCi0jZGVmaW5lIE9NQVBfVElNRVJfU1lTX1NUQVRfUkVHCQkweDE0Ci0jZGVmaW5lIE9NQVBfVElNRVJfU1RBVF9SRUcJCTB4MTgKLSNkZWZpbmUgT01BUF9USU1FUl9JTlRfRU5fUkVHCQkweDFjCi0jZGVmaW5lIE9NQVBfVElNRVJfV0FLRVVQX0VOX1JFRwkweDIwCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9SRUcJCTB4MjQKLSNkZWZpbmUgT01BUF9USU1FUl9DT1VOVEVSX1JFRwkJMHgyOAotI2RlZmluZSBPTUFQX1RJTUVSX0xPQURfUkVHCQkweDJjCi0jZGVmaW5lIE9NQVBfVElNRVJfVFJJR0dFUl9SRUcJCTB4MzAKLSNkZWZpbmUgT01BUF9USU1FUl9XUklURV9QRU5EX1JFRwkweDM0Ci0jZGVmaW5lIE9NQVBfVElNRVJfTUFUQ0hfUkVHCQkweDM4Ci0jZGVmaW5lIE9NQVBfVElNRVJfQ0FQVFVSRV9SRUcJCTB4M2MKLSNkZWZpbmUgT01BUF9USU1FUl9JRl9DVFJMX1JFRwkJMHg0MAorI2RlZmluZSBfT01BUF9USU1FUl9JRF9PRkZTRVQJCTB4MDAKKyNkZWZpbmUgX09NQVBfVElNRVJfT0NQX0NGR19PRkZTRVQJMHgxMAorI2RlZmluZSBfT01BUF9USU1FUl9TWVNfU1RBVF9PRkZTRVQJMHgxNAorI2RlZmluZSBfT01BUF9USU1FUl9TVEFUX09GRlNFVAkJMHgxOAorI2RlZmluZSBfT01BUF9USU1FUl9JTlRfRU5fT0ZGU0VUCTB4MWMKKyNkZWZpbmUgX09NQVBfVElNRVJfV0FLRVVQX0VOX09GRlNFVAkweDIwCisjZGVmaW5lIF9PTUFQX1RJTUVSX0NUUkxfT0ZGU0VUCQkweDI0CisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfR1BPQ0ZHCQkoMSA8PCAxNCkKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9DQVBUTU9ERQkoMSA8PCAxMykKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9QVAkJKDEgPDwgMTIpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfVENNX0xPV1RPSElHSAkoMHgxIDw8IDgpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfVENNX0hJR0hUT0xPVwkoMHgyIDw8IDgpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfVENNX0JPVEhFREdFUwkoMHgzIDw8IDgpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfU0NQV00JCSgxIDw8IDcpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfQ0UJCSgxIDw8IDYpIC8qIGNvbXBhcmUgZW5hYmxlICovCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfUFJFCQkoMSA8PCA1KSAvKiBwcmVzY2FsZXIgZW5hYmxlICovCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfUFRWX1NISUZUCTIgLyogcHJlc2NhbGVyIHZhbHVlIHNoaWZ0ICovCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfUE9TVEVECQkoMSA8PCAyKQorI2RlZmluZQkJT01BUF9USU1FUl9DVFJMX0FSCQkoMSA8PCAxKSAvKiBhdXRvLXJlbG9hZCBlbmFibGUgKi8KKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9TVAkJKDEgPDwgMCkgLyogc3RhcnQgdGltZXIgKi8KKyNkZWZpbmUgX09NQVBfVElNRVJfQ09VTlRFUl9PRkZTRVQJMHgyOAorI2RlZmluZSBfT01BUF9USU1FUl9MT0FEX09GRlNFVAkJMHgyYworI2RlZmluZSBfT01BUF9USU1FUl9UUklHR0VSX09GRlNFVAkweDMwCisjZGVmaW5lIF9PTUFQX1RJTUVSX1dSSVRFX1BFTkRfT0ZGU0VUCTB4MzQKKyNkZWZpbmUJCVdQX05PTkUJCQkwCS8qIG5vIHdyaXRlIHBlbmRpbmcgYml0ICovCisjZGVmaW5lCQlXUF9UQ0xSCQkJKDEgPDwgMCkKKyNkZWZpbmUJCVdQX1RDUlIJCQkoMSA8PCAxKQorI2RlZmluZQkJV1BfVExEUgkJCSgxIDw8IDIpCisjZGVmaW5lCQlXUF9UVEdSCQkJKDEgPDwgMykKKyNkZWZpbmUJCVdQX1RNQVIJCQkoMSA8PCA0KQorI2RlZmluZQkJV1BfVFBJUgkJCSgxIDw8IDUpCisjZGVmaW5lCQlXUF9UTklSCQkJKDEgPDwgNikKKyNkZWZpbmUJCVdQX1RDVlIJCQkoMSA8PCA3KQorI2RlZmluZQkJV1BfVE9DUgkJCSgxIDw8IDgpCisjZGVmaW5lCQlXUF9UT1dSCQkJKDEgPDwgOSkKKyNkZWZpbmUgX09NQVBfVElNRVJfTUFUQ0hfT0ZGU0VUCTB4MzgKKyNkZWZpbmUgX09NQVBfVElNRVJfQ0FQVFVSRV9PRkZTRVQJMHgzYworI2RlZmluZSBfT01BUF9USU1FUl9JRl9DVFJMX09GRlNFVAkweDQwCisjZGVmaW5lIF9PTUFQX1RJTUVSX0NBUFRVUkUyX09GRlNFVAkJMHg0NAkvKiBUQ0FSMiwgMzR4eCBvbmx5ICovCisjZGVmaW5lIF9PTUFQX1RJTUVSX1RJQ0tfUE9TX09GRlNFVAkJMHg0OAkvKiBUUElSLCAzNHh4IG9ubHkgKi8KKyNkZWZpbmUgX09NQVBfVElNRVJfVElDS19ORUdfT0ZGU0VUCQkweDRjCS8qIFROSVIsIDM0eHggb25seSAqLworI2RlZmluZSBfT01BUF9USU1FUl9USUNLX0NPVU5UX09GRlNFVAkJMHg1MAkvKiBUQ1ZSLCAzNHh4IG9ubHkgKi8KKyNkZWZpbmUgX09NQVBfVElNRVJfVElDS19JTlRfTUFTS19TRVRfT0ZGU0VUCTB4NTQJLyogVE9DUiwgMzR4eCBvbmx5ICovCisjZGVmaW5lIF9PTUFQX1RJTUVSX1RJQ0tfSU5UX01BU0tfQ09VTlRfT0ZGU0VUCTB4NTgJLyogVE9XUiwgMzR4eCBvbmx5ICovCiAKLS8qIHRpbWVyIGNvbnRyb2wgcmVnIGJpdHMgKi8KLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX0dQT0NGRwkJKDEgPDwgMTQpCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9DQVBUTU9ERQkoMSA8PCAxMykKLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1BUCQkoMSA8PCAxMikKLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1RDTV9MT1dUT0hJR0gJKDB4MSA8PCA4KQotI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfVENNX0hJR0hUT0xPVwkoMHgyIDw8IDgpCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9UQ01fQk9USEVER0VTCSgweDMgPDwgOCkKLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1NDUFdNCQkoMSA8PCA3KQotI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfQ0UJCSgxIDw8IDYpCS8qIGNvbXBhcmUgZW5hYmxlICovCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9QUkUJCSgxIDw8IDUpCS8qIHByZXNjYWxlciBlbmFibGUgKi8KLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1BUVl9TSElGVAkyCQkvKiBob3cgbXVjaCB0byBzaGlmdCB0aGUgcHJlc2NhbGVyIHZhbHVlICovCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9BUgkJKDEgPDwgMSkJLyogYXV0by1yZWxvYWQgZW5hYmxlICovCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9TVAkJKDEgPDwgMCkJLyogc3RhcnQgdGltZXIgKi8KKy8qIHJlZ2lzdGVyIG9mZnNldHMgd2l0aCB0aGUgd3JpdGUgcGVuZGluZyBiaXQgZW5jb2RlZCAqLworI2RlZmluZQlXUFNISUZUCQkJCQkxNgorCisjZGVmaW5lIE9NQVBfVElNRVJfSURfUkVHCQkJKF9PTUFQX1RJTUVSX0lEX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX09DUF9DRkdfUkVHCQkJKF9PTUFQX1RJTUVSX09DUF9DRkdfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9OT05FIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfU1lTX1NUQVRfUkVHCQkJKF9PTUFQX1RJTUVSX1NZU19TVEFUX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1NUQVRfUkVHCQkJKF9PTUFQX1RJTUVSX1NUQVRfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9OT05FIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfSU5UX0VOX1JFRwkJCShfT01BUF9USU1FUl9JTlRfRU5fT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9OT05FIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfV0FLRVVQX0VOX1JFRwkJKF9PTUFQX1RJTUVSX1dBS0VVUF9FTl9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1JFRwkJCShfT01BUF9USU1FUl9DVFJMX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfVENMUiA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX0NPVU5URVJfUkVHCQkJKF9PTUFQX1RJTUVSX0NPVU5URVJfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9UQ1JSIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfTE9BRF9SRUcJCQkoX09NQVBfVElNRVJfTE9BRF9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX1RMRFIgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9UUklHR0VSX1JFRwkJCShfT01BUF9USU1FUl9UUklHR0VSX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfVFRHUiA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1dSSVRFX1BFTkRfUkVHCQkoX09NQVBfVElNRVJfV1JJVEVfUEVORF9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9NQVRDSF9SRUcJCQkoX09NQVBfVElNRVJfTUFUQ0hfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9UTUFSIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfQ0FQVFVSRV9SRUcJCQkoX09NQVBfVElNRVJfQ0FQVFVSRV9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9JRl9DVFJMX1JFRwkJCShfT01BUF9USU1FUl9JRl9DVFJMX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX0NBUFRVUkUyX1JFRwkJCShfT01BUF9USU1FUl9DQVBUVVJFMl9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9USUNLX1BPU19SRUcJCQkoX09NQVBfVElNRVJfVElDS19QT1NfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9UUElSIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfVElDS19ORUdfUkVHCQkJKF9PTUFQX1RJTUVSX1RJQ0tfTkVHX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfVE5JUiA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1RJQ0tfQ09VTlRfUkVHCQkoX09NQVBfVElNRVJfVElDS19DT1VOVF9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX1RDVlIgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9USUNLX0lOVF9NQVNLX1NFVF9SRUcJCQkJXAorCQkoX09NQVBfVElNRVJfVElDS19JTlRfTUFTS19TRVRfT0ZGU0VUIHwgKFdQX1RPQ1IgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9USUNLX0lOVF9NQVNLX0NPVU5UX1JFRwkJCQlcCisJCShfT01BUF9USU1FUl9USUNLX0lOVF9NQVNLX0NPVU5UX09GRlNFVCB8IChXUF9UT1dSIDw8IFdQU0hJRlQpKQogCiBzdHJ1Y3Qgb21hcF9kbV90aW1lciB7CiAJdW5zaWduZWQgbG9uZyBwaHlzX2Jhc2U7CkBAIC03Niw2ICsxNTUsNyBAQAogCXZvaWQgX19pb21lbSAqaW9fYmFzZTsKIAl1bnNpZ25lZCByZXNlcnZlZDoxOwogCXVuc2lnbmVkIGVuYWJsZWQ6MTsKKwl1bnNpZ25lZCBwb3N0ZWQ6MTsKIH07CiAKICNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMQpAQCAtMTgxLDE2ICsyNjEsMzQgQEAKIAogc3RhdGljIHNwaW5sb2NrX3QgZG1fdGltZXJfbG9jazsKIAotc3RhdGljIGlubGluZSB1MzIgb21hcF9kbV90aW1lcl9yZWFkX3JlZyhzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCByZWcpCisvKgorICogUmVhZHMgdGltZXIgcmVnaXN0ZXJzIGluIHBvc3RlZCBhbmQgbm9uLXBvc3RlZCBtb2RlLiBUaGUgcG9zdGVkIG1vZGUgYml0CisgKiBpcyBlbmNvZGVkIGluIHJlZy4gTm90ZSB0aGF0IGluIHBvc3RlZCBtb2RlIHdyaXRlIHBlbmRpbmcgYml0IG11c3QgYmUKKyAqIGNoZWNrZWQuIE90aGVyd2lzZSBhIHJlYWQgb2YgYSBub24gY29tcGxldGVkIHdyaXRlIHdpbGwgcHJvZHVjZSBhbiBlcnJvci4KKyAqLworc3RhdGljIGlubGluZSB1MzIgb21hcF9kbV90aW1lcl9yZWFkX3JlZyhzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIHUzMiByZWcpCiB7Ci0JcmV0dXJuIHJlYWRsKHRpbWVyLT5pb19iYXNlICsgcmVnKTsKKwlpZiAodGltZXItPnBvc3RlZCkKKwkJd2hpbGUgKHJlYWRsKHRpbWVyLT5pb19iYXNlICsgKE9NQVBfVElNRVJfV1JJVEVfUEVORF9SRUcgJiAweGZmKSkKKwkJCQkmIChyZWcgPj4gV1BTSElGVCkpCisJCQljcHVfcmVsYXgoKTsKKwlyZXR1cm4gcmVhZGwodGltZXItPmlvX2Jhc2UgKyAocmVnICYgMHhmZikpOwogfQogCi1zdGF0aWMgdm9pZCBvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyhzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCByZWcsIHUzMiB2YWx1ZSkKKy8qCisgKiBXcml0ZXMgdGltZXIgcmVnaXN0ZXJzIGluIHBvc3RlZCBhbmQgbm9uLXBvc3RlZCBtb2RlLiBUaGUgcG9zdGVkIG1vZGUgYml0CisgKiBpcyBlbmNvZGVkIGluIHJlZy4gTm90ZSB0aGF0IGluIHBvc3RlZCBtb2RlIHRoZSB3cml0ZSBwZW5kaW5nIGJpdCBtdXN0IGJlCisgKiBjaGVja2VkLiBPdGhlcndpc2UgYSB3cml0ZSBvbiBhIHJlZ2lzdGVyIHdoaWNoIGhhcyBhIHBlbmRpbmcgd3JpdGUgd2lsbCBiZQorICogbG9zdC4KKyAqLworc3RhdGljIHZvaWQgb21hcF9kbV90aW1lcl93cml0ZV9yZWcoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCB1MzIgcmVnLAorCQkJCQkJdTMyIHZhbHVlKQogewotCXdyaXRlbCh2YWx1ZSwgdGltZXItPmlvX2Jhc2UgKyByZWcpOwotCXdoaWxlIChvbWFwX2RtX3RpbWVyX3JlYWRfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX1dSSVRFX1BFTkRfUkVHKSkKLQkJOworCWlmICh0aW1lci0+cG9zdGVkKQorCQl3aGlsZSAocmVhZGwodGltZXItPmlvX2Jhc2UgKyAoT01BUF9USU1FUl9XUklURV9QRU5EX1JFRyAmIDB4ZmYpKQorCQkJCSYgKHJlZyA+PiBXUFNISUZUKSkKKwkJCWNwdV9yZWxheCgpOworCXdyaXRlbCh2YWx1ZSwgdGltZXItPmlvX2Jhc2UgKyAocmVnICYgMHhmZikpOwogfQogCiBzdGF0aWMgdm9pZCBvbWFwX2RtX3RpbWVyX3dhaXRfZm9yX3Jlc2V0KHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lcikKQEAgLTIxNywxNyArMzE1LDIzIEBACiAJfQogCW9tYXBfZG1fdGltZXJfc2V0X3NvdXJjZSh0aW1lciwgT01BUF9USU1FUl9TUkNfMzJfS0haKTsKIAotCS8qIFNldCB0byBzbWFydC1pZGxlIG1vZGUgKi8KIAlsID0gb21hcF9kbV90aW1lcl9yZWFkX3JlZyh0aW1lciwgT01BUF9USU1FUl9PQ1BfQ0ZHX1JFRyk7Ci0JbCB8PSAweDAyIDw8IDM7CisJbCB8PSAweDAyIDw8IDM7ICAvKiBTZXQgdG8gc21hcnQtaWRsZSBtb2RlICovCisJbCB8PSAweDIgPDwgODsgICAvKiBTZXQgY2xvY2sgYWN0aXZpdHkgdG8gcGVyc2VydmUgZi1jbG9jayBvbiBpZGxlICovCiAKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkgJiYgdGltZXIgPT0gJmRtX3RpbWVyc1swXSkgewotCQkvKiBFbmFibGUgd2FrZS11cCBvbmx5IGZvciBHUFQxIG9uIE9NQVAyIENQVXMqLworCS8qCisJICogRW5hYmxlIHdha2UtdXAgb25seSBmb3IgR1BUMSBvbiBPTUFQMiBDUFVzLgorCSAqIEZJWE1FOiBBbGwgdGltZXJzIHNob3VsZCBoYXZlIHdha2UtdXAgZW5hYmxlZCBhbmQgY2xlYXIKKwkgKiBQUkNNIHN0YXR1cy4KKwkgKi8KKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkgJiYgKHRpbWVyID09ICZkbV90aW1lcnNbMF0pKQogCQlsIHw9IDEgPDwgMjsKLQkJLyogTm9uLXBvc3RlZCBtb2RlICovCi0JCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0lGX0NUUkxfUkVHLCAwKTsKLQl9CiAJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfT0NQX0NGR19SRUcsIGwpOworCisJLyogTWF0Y2ggaGFyZHdhcmUgcmVzZXQgZGVmYXVsdCBvZiBwb3N0ZWQgbW9kZSAqLworCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0lGX0NUUkxfUkVHLAorCQkJT01BUF9USU1FUl9DVFJMX1BPU1RFRCk7CisJdGltZXItPnBvc3RlZCA9IDE7CiB9CiAKIHN0YXRpYyB2b2lkIG9tYXBfZG1fdGltZXJfcHJlcGFyZShzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIpCkBAIC00MzQsOSArNTM4LDMyIEBACiAJCWwgJj0gfk9NQVBfVElNRVJfQ1RSTF9BUjsKIAlvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyh0aW1lciwgT01BUF9USU1FUl9DVFJMX1JFRywgbCk7CiAJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfTE9BRF9SRUcsIGxvYWQpOworCisJLyogUkVWSVNJVDogaHcgZmVhdHVyZSwgdHRnciBvdmVydGFraW5nIHRsZHI/ICovCisJd2hpbGUgKHJlYWRsKHRpbWVyLT5pb19iYXNlICsgKE9NQVBfVElNRVJfV1JJVEVfUEVORF9SRUcgJiAweGZmKSkpCisJCWNwdV9yZWxheCgpOworCiAJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfVFJJR0dFUl9SRUcsIDApOwogfQogCisvKiBPcHRpbWl6ZWQgc2V0X2xvYWQgd2hpY2ggcmVtb3ZlcyBjb3N0bHkgc3BpbiB3YWl0IGluIHRpbWVyX3N0YXJ0ICovCit2b2lkIG9tYXBfZG1fdGltZXJfc2V0X2xvYWRfc3RhcnQoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCBpbnQgYXV0b3JlbG9hZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbG9hZCkKK3sKKwl1MzIgbDsKKworCWwgPSBvbWFwX2RtX3RpbWVyX3JlYWRfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0NUUkxfUkVHKTsKKwlpZiAoYXV0b3JlbG9hZCkKKwkJbCB8PSBPTUFQX1RJTUVSX0NUUkxfQVI7CisJZWxzZQorCQlsICY9IH5PTUFQX1RJTUVSX0NUUkxfQVI7CisJbCB8PSBPTUFQX1RJTUVSX0NUUkxfU1Q7CisKKwlvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyh0aW1lciwgT01BUF9USU1FUl9DT1VOVEVSX1JFRywgbG9hZCk7CisJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfTE9BRF9SRUcsIGxvYWQpOworCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0NUUkxfUkVHLCBsKTsKK30KKwogdm9pZCBvbWFwX2RtX3RpbWVyX3NldF9tYXRjaChzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBlbmFibGUsCiAJCQkgICAgIHVuc2lnbmVkIGludCBtYXRjaCkKIHsKQEAgLTQ1MSw3ICs1NzgsNiBAQAogCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX01BVENIX1JFRywgbWF0Y2gpOwogfQogCi0KIHZvaWQgb21hcF9kbV90aW1lcl9zZXRfcHdtKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IGRlZl9vbiwKIAkJCSAgIGludCB0b2dnbGUsIGludCB0cmlnZ2VyKQogewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL21jYnNwLmMgYi9hcmNoL2FybS9wbGF0LW9tYXAvbWNic3AuYwppbmRleCA5Y2Y4M2M0Li5jN2Y3NDA2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9tYXAvbWNic3AuYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvbWNic3AuYwpAQCAtMTUsOTUgKzE1LDY2IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLQotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgogCiAjaW5jbHVkZSA8YXNtL2FyY2gvZG1hLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvbXV4Lmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvaXJxcy5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL2RzcF9jb21tb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tY2JzcC5oPgogCi0jaWZkZWYgQ09ORklHX01DQlNQX0RFQlVHCi0jZGVmaW5lIERCRyh4Li4uKQlwcmludGsoeCkKLSNlbHNlCi0jZGVmaW5lIERCRyh4Li4uKQkJCWRvIHsgfSB3aGlsZSAoMCkKLSNlbmRpZgotCi1zdHJ1Y3Qgb21hcF9tY2JzcCB7Ci0JdTMyICAgICAgICAgICAgICAgICAgICAgICAgICBpb19iYXNlOwotCXU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ7Ci0JdTggICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlOwotCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggICAgICAgcnhfd29yZF9sZW5ndGg7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCAgICAgICB0eF93b3JkX2xlbmd0aDsKLQotCW9tYXBfbWNic3BfaW9fdHlwZV90ICAgICAgICAgaW9fdHlwZTsgLyogSVJRIG9yIHBvbGwgKi8KLQkvKiBJUlEgYmFzZWQgVFgvUlggKi8KLQlpbnQgICAgICAgICAgICAgICAgICAgICAgICAgIHJ4X2lycTsKLQlpbnQgICAgICAgICAgICAgICAgICAgICAgICAgIHR4X2lycTsKLQotCS8qIERNQSBzdHVmZiAqLwotCXU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1hX3J4X3N5bmM7Ci0Jc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICBkbWFfcnhfbGNoOwotCXU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1hX3R4X3N5bmM7Ci0Jc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICBkbWFfdHhfbGNoOwotCi0JLyogQ29tcGxldGlvbiBxdWV1ZXMgKi8KLQlzdHJ1Y3QgY29tcGxldGlvbiAgICAgICAgICAgIHR4X2lycV9jb21wbGV0aW9uOwotCXN0cnVjdCBjb21wbGV0aW9uICAgICAgICAgICAgcnhfaXJxX2NvbXBsZXRpb247Ci0Jc3RydWN0IGNvbXBsZXRpb24gICAgICAgICAgICB0eF9kbWFfY29tcGxldGlvbjsKLQlzdHJ1Y3QgY29tcGxldGlvbiAgICAgICAgICAgIHJ4X2RtYV9jb21wbGV0aW9uOwotCi0Jc3BpbmxvY2tfdCAgICAgICAgICAgICAgICAgICBsb2NrOwotfTsKLQogc3RhdGljIHN0cnVjdCBvbWFwX21jYnNwIG1jYnNwW09NQVBfTUFYX01DQlNQX0NPVU5UXTsKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMQotc3RhdGljIHN0cnVjdCBjbGsgKm1jYnNwX2RzcF9jayA9IDA7Ci1zdGF0aWMgc3RydWN0IGNsayAqbWNic3BfYXBpX2NrID0gMDsKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcF9kc3B4b3JfY2sgPSAwOwotI2VuZGlmCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDIKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcDFfaWNrID0gMDsKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcDFfZmNrID0gMDsKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcDJfaWNrID0gMDsKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcDJfZmNrID0gMDsKLSNlbmRpZgorCisjZGVmaW5lIG9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpCShtY2JzcFtpZF0ucGRhdGEgJiYgXAorCQkJCQltY2JzcFtpZF0ucGRhdGEtPm9wcyAmJiBcCisJCQkJCW1jYnNwW2lkXS5wZGF0YS0+b3BzLT5jaGVjayAmJiBcCisJCQkJCShtY2JzcFtpZF0ucGRhdGEtPm9wcy0+Y2hlY2soaWQpID09IDApKQogCiBzdGF0aWMgdm9pZCBvbWFwX21jYnNwX2R1bXBfcmVnKHU4IGlkKQogewotCURCRygiKioqKiBNQ0JTUCVkIHJlZ3MgKioqKlxuIiwgbWNic3BbaWRdLmlkKTsKLQlEQkcoIkRSUjI6ICAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgRFJSMikpOwotCURCRygiRFJSMTogIDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBEUlIxKSk7Ci0JREJHKCJEWFIyOiAgMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIERYUjIpKTsKLQlEQkcoIkRYUjE6ICAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgRFhSMSkpOwotCURCRygiU1BDUjI6IDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBTUENSMikpOwotCURCRygiU1BDUjE6IDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBTUENSMSkpOwotCURCRygiUkNSMjogIDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBSQ1IyKSk7Ci0JREJHKCJSQ1IxOiAgMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFJDUjEpKTsKLQlEQkcoIlhDUjI6ICAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgWENSMikpOwotCURCRygiWENSMTogIDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBYQ1IxKSk7Ci0JREJHKCJTUkdSMjogMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNSR1IyKSk7Ci0JREJHKCJTUkdSMTogMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNSR1IxKSk7Ci0JREJHKCJQQ1IwOiAgMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFBDUjApKTsKLQlEQkcoIioqKioqKioqKioqKioqKioqKioqKioqXG4iKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICIqKioqIE1jQlNQJWQgcmVncyAqKioqXG4iLCBtY2JzcFtpZF0uaWQpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIkRSUjI6ICAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIERSUjIpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJEUlIxOiAgMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBEUlIxKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiRFhSMjogIDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgRFhSMikpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIkRYUjE6ICAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIERYUjEpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJTUENSMjogMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBTUENSMikpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIlNQQ1IxOiAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNQQ1IxKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiUkNSMjogIDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgUkNSMikpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIlJDUjE6ICAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFJDUjEpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJYQ1IyOiAgMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBYQ1IyKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiWENSMTogIDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgWENSMSkpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIlNSR1IyOiAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNSR1IyKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiU1JHUjE6IDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgU1JHUjEpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJQQ1IwOiAgMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBQQ1IwKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiKioqKioqKioqKioqKioqKioqKioqKipcbiIpOwogfQogCiBzdGF0aWMgaXJxcmV0dXJuX3Qgb21hcF9tY2JzcF90eF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7CiAJc3RydWN0IG9tYXBfbWNic3AgKm1jYnNwX3R4ID0gZGV2X2lkOwogCi0JREJHKCJUWCBJUlEgY2FsbGJhY2sgOiAweCV4XG4iLAotCSAgICBPTUFQX01DQlNQX1JFQUQobWNic3BfdHgtPmlvX2Jhc2UsIFNQQ1IyKSk7CisJZGV2X2RiZyhtY2JzcF90eC0+ZGV2LCAiVFggSVJRIGNhbGxiYWNrIDogMHgleFxuIiwKKwkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwX3R4LT5pb19iYXNlLCBTUENSMikpOwogCiAJY29tcGxldGUoJm1jYnNwX3R4LT50eF9pcnFfY29tcGxldGlvbik7CisKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKQEAgLTExMSwxMCArODIsMTEgQEAKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcCAqbWNic3BfcnggPSBkZXZfaWQ7CiAKLQlEQkcoIlJYIElSUSBjYWxsYmFjayA6IDB4JXhcbiIsCi0JICAgIE9NQVBfTUNCU1BfUkVBRChtY2JzcF9yeC0+aW9fYmFzZSwgU1BDUjIpKTsKKwlkZXZfZGJnKG1jYnNwX3J4LT5kZXYsICJSWCBJUlEgY2FsbGJhY2sgOiAweCV4XG4iLAorCQlPTUFQX01DQlNQX1JFQUQobWNic3BfcngtPmlvX2Jhc2UsIFNQQ1IyKSk7CiAKIAljb21wbGV0ZSgmbWNic3BfcngtPnJ4X2lycV9jb21wbGV0aW9uKTsKKwogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIApAQCAtMTIyLDggKzk0LDggQEAKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcCAqbWNic3BfZG1hX3R4ID0gZGF0YTsKIAotCURCRygiVFggRE1BIGNhbGxiYWNrIDogMHgleFxuIiwKLQkgICAgT01BUF9NQ0JTUF9SRUFEKG1jYnNwX2RtYV90eC0+aW9fYmFzZSwgU1BDUjIpKTsKKwlkZXZfZGJnKG1jYnNwX2RtYV90eC0+ZGV2LCAiVFggRE1BIGNhbGxiYWNrIDogMHgleFxuIiwKKwkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwX2RtYV90eC0+aW9fYmFzZSwgU1BDUjIpKTsKIAogCS8qIFdlIGNhbiBmcmVlIHRoZSBjaGFubmVscyAqLwogCW9tYXBfZnJlZV9kbWEobWNic3BfZG1hX3R4LT5kbWFfdHhfbGNoKTsKQEAgLTEzNiw4ICsxMDgsOCBAQAogewogCXN0cnVjdCBvbWFwX21jYnNwICptY2JzcF9kbWFfcnggPSBkYXRhOwogCi0JREJHKCJSWCBETUEgY2FsbGJhY2sgOiAweCV4XG4iLAotCSAgICBPTUFQX01DQlNQX1JFQUQobWNic3BfZG1hX3J4LT5pb19iYXNlLCBTUENSMikpOworCWRldl9kYmcobWNic3BfZG1hX3J4LT5kZXYsICJSWCBETUEgY2FsbGJhY2sgOiAweCV4XG4iLAorCQlPTUFQX01DQlNQX1JFQUQobWNic3BfZG1hX3J4LT5pb19iYXNlLCBTUENSMikpOwogCiAJLyogV2UgY2FuIGZyZWUgdGhlIGNoYW5uZWxzICovCiAJb21hcF9mcmVlX2RtYShtY2JzcF9kbWFfcngtPmRtYV9yeF9sY2gpOwpAQCAtMTQ2LDE5ICsxMTgsMjQgQEAKIAljb21wbGV0ZSgmbWNic3BfZG1hX3J4LT5yeF9kbWFfY29tcGxldGlvbik7CiB9CiAKLQogLyoKICAqIG9tYXBfbWNic3BfY29uZmlnIHNpbXBseSB3cml0ZSBhIGNvbmZpZyB0byB0aGUKICAqIGFwcHJvcHJpYXRlIE1jQlNQLgogICogWW91IGVpdGhlciBjYWxsIHRoaXMgZnVuY3Rpb24gb3Igc2V0IHRoZSBNY0JTUCByZWdpc3RlcnMKICAqIGJ5IHlvdXJzZWxmIGJlZm9yZSBjYWxsaW5nIG9tYXBfbWNic3Bfc3RhcnQoKS4KICAqLwotCi12b2lkIG9tYXBfbWNic3BfY29uZmlnKHVuc2lnbmVkIGludCBpZCwgY29uc3Qgc3RydWN0IG9tYXBfbWNic3BfcmVnX2NmZyAqIGNvbmZpZykKK3ZvaWQgb21hcF9tY2JzcF9jb25maWcodW5zaWduZWQgaW50IGlkLCBjb25zdCBzdHJ1Y3Qgb21hcF9tY2JzcF9yZWdfY2ZnICpjb25maWcpCiB7Ci0JdTMyIGlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwl1MzIgaW9fYmFzZTsKIAotCURCRygiT01BUC1NY0JTUDogTWNCU1AlZCAgaW9fYmFzZTogMHglOHhcbiIsIGlkKzEsIGlvX2Jhc2UpOworCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKKwkJcmV0dXJuOworCX0KKworCWlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJDb25maWd1cmluZyBNY0JTUCVkICBpb19iYXNlOiAweCU4eFxuIiwKKwkJCW1jYnNwW2lkXS5pZCwgaW9fYmFzZSk7CiAKIAkvKiBXZSB3cml0ZSB0aGUgZ2l2ZW4gY29uZmlnICovCiAJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBTUENSMiwgY29uZmlnLT5zcGNyMik7CkBAIC0xNzMsODMgKzE1MCw3IEBACiAJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBNQ1IxLCBjb25maWctPm1jcjEpOwogCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgUENSMCwgY29uZmlnLT5wY3IwKTsKIH0KLQotCi0KLXN0YXRpYyBpbnQgb21hcF9tY2JzcF9jaGVjayh1bnNpZ25lZCBpbnQgaWQpCi17Ci0JaWYgKGNwdV9pc19vbWFwNzMwKCkpIHsKLQkJaWYgKGlkID4gT01BUF9NQVhfTUNCU1BfQ09VTlQgLSAxKSB7Ci0JCSAgICAgICBwcmludGsoS0VSTl9FUlIgIk9NQVAtTWNCU1A6IE1jQlNQJWQgZG9lc24ndCBleGlzdFxuIiwgaWQgKyAxKTsKLQkJICAgICAgIHJldHVybiAtMTsKLQkJfQotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoY3B1X2lzX29tYXAxNXh4KCkgfHwgY3B1X2lzX29tYXAxNnh4KCkgfHwgY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJaWYgKGlkID4gT01BUF9NQVhfTUNCU1BfQ09VTlQpIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBkb2Vzbid0IGV4aXN0XG4iLCBpZCArIDEpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCXJldHVybiAwOwotCX0KLQotCXJldHVybiAtMTsKLX0KLQotI2lmZGVmIENPTkZJR19BUkNIX09NQVAxCi1zdGF0aWMgdm9pZCBvbWFwX21jYnNwX2RzcF9yZXF1ZXN0KHZvaWQpCi17Ci0JaWYgKGNwdV9pc19vbWFwMTV4eCgpIHx8IGNwdV9pc19vbWFwMTZ4eCgpKSB7Ci0JCWludCByZXQ7Ci0KLQkJcmV0ID0gb21hcF9kc3BfcmVxdWVzdF9tZW0oKTsKLQkJaWYgKHJldCA8IDApIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiQ291bGQgbm90IGdldCBkc3AgbWVtb3J5OiAlaVxuIiwgcmV0KTsKLQkJCXJldHVybjsKLQkJfQotCi0JCWNsa19lbmFibGUobWNic3BfZHNwX2NrKTsKLQkJY2xrX2VuYWJsZShtY2JzcF9hcGlfY2spOwotCi0JCS8qIGVuYWJsZSAxMk1IeiBjbG9jayB0byBtY2JzcCAxICYgMyAqLwotCQljbGtfZW5hYmxlKG1jYnNwX2RzcHhvcl9jayk7Ci0KLQkJLyoKLQkJICogRFNQIGV4dGVybmFsIHBlcmlwaGVyYWwgcmVzZXQKLQkJICogRklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIGRzcCBjb2RlCi0JCSAqLwotCQlfX3Jhd193cml0ZXcoX19yYXdfcmVhZHcoRFNQX1JTVENUMikgfCAxIHwgMSA8PCAxLAotCQkJICAgICBEU1BfUlNUQ1QyKTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIG9tYXBfbWNic3BfZHNwX2ZyZWUodm9pZCkKLXsKLQlpZiAoY3B1X2lzX29tYXAxNXh4KCkgfHwgY3B1X2lzX29tYXAxNnh4KCkpIHsKLQkJb21hcF9kc3BfcmVsZWFzZV9tZW0oKTsKLQkJY2xrX2Rpc2FibGUobWNic3BfZHNweG9yX2NrKTsKLQkJY2xrX2Rpc2FibGUobWNic3BfZHNwX2NrKTsKLQkJY2xrX2Rpc2FibGUobWNic3BfYXBpX2NrKTsKLQl9Ci19Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19BUkNIX09NQVAyCi1zdGF0aWMgdm9pZCBvbWFwMl9tY2JzcDJfbXV4X3NldHVwKHZvaWQpCi17Ci0JaWYgKGNwdV9pc19vbWFwMjQyMCgpKSB7Ci0JCW9tYXBfY2ZnX3JlZyhZMTVfMjRYWF9NQ0JTUDJfQ0xLWCk7Ci0JCW9tYXBfY2ZnX3JlZyhSMTRfMjRYWF9NQ0JTUDJfRlNYKTsKLQkJb21hcF9jZmdfcmVnKFcxNV8yNFhYX01DQlNQMl9EUik7Ci0JCW9tYXBfY2ZnX3JlZyhWMTVfMjRYWF9NQ0JTUDJfRFgpOwotCQlvbWFwX2NmZ19yZWcoVjE0XzI0WFhfR1BJTzExNyk7Ci0JfQotCS8qCi0JICogTmVlZCB0byBhZGQgTVVYIHNldHRpbmdzIGZvciBPTUFQIDI0MzAgU0RQCi0JICovCi19Ci0jZW5kaWYKK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9jb25maWcpOwogCiAvKgogICogV2UgY2FuIGNob29zZSBiZXR3ZWVuIElSUSBiYXNlZCBvciBwb2xsZWQgSU8uCkBAIC0yNTcsMTMgKzE1OCwxNiBAQAogICovCiBpbnQgb21hcF9tY2JzcF9zZXRfaW9fdHlwZSh1bnNpZ25lZCBpbnQgaWQsIG9tYXBfbWNic3BfaW9fdHlwZV90IGlvX3R5cGUpCiB7Ci0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKLQkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKIAlzcGluX2xvY2soJm1jYnNwW2lkXS5sb2NrKTsKIAogCWlmICghbWNic3BbaWRdLmZyZWUpIHsKLQkJcHJpbnRrIChLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBpcyBjdXJyZW50bHkgaW4gdXNlXG4iLCBpZCArIDEpOworCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIGlzIGN1cnJlbnRseSBpbiB1c2VcbiIsCisJCQltY2JzcFtpZF0uaWQpOwogCQlzcGluX3VubG9jaygmbWNic3BbaWRdLmxvY2spOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0yNzQsMzggKzE3OCwyNiBAQAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc2V0X2lvX3R5cGUpOwogCiBpbnQgb21hcF9tY2JzcF9yZXF1ZXN0KHVuc2lnbmVkIGludCBpZCkKIHsKIAlpbnQgZXJyOwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMQotCS8qCi0JICogT24gMTUxMCwgMTYxMCBhbmQgMTcxMCwgTWNCU1AxIGFuZCBNY0JTUDMKLQkgKiBhcmUgRFNQIHB1YmxpYyBwZXJpcGhlcmFscy4KLQkgKi8KLQlpZiAoaWQgPT0gT01BUF9NQ0JTUDEgfHwgaWQgPT0gT01BUF9NQ0JTUDMpCi0JCW9tYXBfbWNic3BfZHNwX3JlcXVlc3QoKTsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDIKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJaWYgKGlkID09IE9NQVBfTUNCU1AxKSB7Ci0JCQljbGtfZW5hYmxlKG1jYnNwMV9pY2spOwotCQkJY2xrX2VuYWJsZShtY2JzcDFfZmNrKTsKLQkJfSBlbHNlIHsKLQkJCWNsa19lbmFibGUobWNic3AyX2ljayk7Ci0JCQljbGtfZW5hYmxlKG1jYnNwMl9mY2spOwotCQl9CisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKIAl9Ci0jZW5kaWYKKworCWlmIChtY2JzcFtpZF0ucGRhdGEtPm9wcy0+cmVxdWVzdCkKKwkJbWNic3BbaWRdLnBkYXRhLT5vcHMtPnJlcXVlc3QoaWQpOworCisJY2xrX2VuYWJsZShtY2JzcFtpZF0uY2xrKTsKIAogCXNwaW5fbG9jaygmbWNic3BbaWRdLmxvY2spOwogCWlmICghbWNic3BbaWRdLmZyZWUpIHsKLQkJcHJpbnRrIChLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBpcyBjdXJyZW50bHkgaW4gdXNlXG4iLCBpZCArIDEpOworCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIGlzIGN1cnJlbnRseSBpbiB1c2VcbiIsCisJCQltY2JzcFtpZF0uaWQpOwogCQlzcGluX3VubG9jaygmbWNic3BbaWRdLmxvY2spOwogCQlyZXR1cm4gLTE7CiAJfQpAQCAtMzE1LDI0ICsyMDcsMjMgQEAKIAogCWlmIChtY2JzcFtpZF0uaW9fdHlwZSA9PSBPTUFQX01DQlNQX0lSUV9JTykgewogCQkvKiBXZSBuZWVkIHRvIGdldCBJUlFzIGhlcmUgKi8KLQkJZXJyID0gcmVxdWVzdF9pcnEobWNic3BbaWRdLnR4X2lycSwgb21hcF9tY2JzcF90eF9pcnFfaGFuZGxlciwgMCwKLQkJCQkgICJNY0JTUCIsCi0JCQkJICAodm9pZCAqKSAoJm1jYnNwW2lkXSkpOworCQllcnIgPSByZXF1ZXN0X2lycShtY2JzcFtpZF0udHhfaXJxLCBvbWFwX21jYnNwX3R4X2lycV9oYW5kbGVyLAorCQkJCQkwLCAiTWNCU1AiLCAodm9pZCAqKSAoJm1jYnNwW2lkXSkpOwogCQlpZiAoZXJyICE9IDApIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiT01BUC1NY0JTUDogVW5hYmxlIHRvIHJlcXVlc3QgVFggSVJRICVkIGZvciBNY0JTUCVkXG4iLAotCQkJICAgICAgIG1jYnNwW2lkXS50eF9pcnEsIG1jYnNwW2lkXS5pZCk7CisJCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJVbmFibGUgdG8gcmVxdWVzdCBUWCBJUlEgJWQgIgorCQkJCQkiZm9yIE1jQlNQJWRcbiIsIG1jYnNwW2lkXS50eF9pcnEsCisJCQkJCW1jYnNwW2lkXS5pZCk7CiAJCQlyZXR1cm4gZXJyOwogCQl9CiAKIAkJaW5pdF9jb21wbGV0aW9uKCYobWNic3BbaWRdLnR4X2lycV9jb21wbGV0aW9uKSk7CiAKLQotCQllcnIgPSByZXF1ZXN0X2lycShtY2JzcFtpZF0ucnhfaXJxLCBvbWFwX21jYnNwX3J4X2lycV9oYW5kbGVyLCAwLAotCQkJCSAgIk1jQlNQIiwKLQkJCQkgICh2b2lkICopICgmbWNic3BbaWRdKSk7CisJCWVyciA9IHJlcXVlc3RfaXJxKG1jYnNwW2lkXS5yeF9pcnEsIG9tYXBfbWNic3BfcnhfaXJxX2hhbmRsZXIsCisJCQkJCTAsICJNY0JTUCIsICh2b2lkICopICgmbWNic3BbaWRdKSk7CiAJCWlmIChlcnIgIT0gMCkgewotCQkJcHJpbnRrKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBVbmFibGUgdG8gcmVxdWVzdCBSWCBJUlEgJWQgZm9yIE1jQlNQJWRcbiIsCi0JCQkgICAgICAgbWNic3BbaWRdLnJ4X2lycSwgbWNic3BbaWRdLmlkKTsKKwkJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIlVuYWJsZSB0byByZXF1ZXN0IFJYIElSUSAlZCAiCisJCQkJCSJmb3IgTWNCU1AlZFxuIiwgbWNic3BbaWRdLnJ4X2lycSwKKwkJCQkJbWNic3BbaWRdLmlkKTsKIAkJCWZyZWVfaXJxKG1jYnNwW2lkXS50eF9pcnEsICh2b2lkICopICgmbWNic3BbaWRdKSk7CiAJCQlyZXR1cm4gZXJyOwogCQl9CkBAIC0zNDEsMzYgKzIzMiwyNSBAQAogCX0KIAogCXJldHVybiAwOwotCiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcmVxdWVzdCk7CiAKIHZvaWQgb21hcF9tY2JzcF9mcmVlKHVuc2lnbmVkIGludCBpZCkKIHsKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQorCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKIAkJcmV0dXJuOwotCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDEKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJaWYgKGlkID09IE9NQVBfTUNCU1AxIHx8IGlkID09IE9NQVBfTUNCU1AzKQotCQkJb21hcF9tY2JzcF9kc3BfZnJlZSgpOwogCX0KLSNlbmRpZgogCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDIKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJaWYgKGlkID09IE9NQVBfTUNCU1AxKSB7Ci0JCQljbGtfZGlzYWJsZShtY2JzcDFfaWNrKTsKLQkJCWNsa19kaXNhYmxlKG1jYnNwMV9mY2spOwotCQl9IGVsc2UgewotCQkJY2xrX2Rpc2FibGUobWNic3AyX2ljayk7Ci0JCQljbGtfZGlzYWJsZShtY2JzcDJfZmNrKTsKLQkJfQotCX0KLSNlbmRpZgorCWlmIChtY2JzcFtpZF0ucGRhdGEtPm9wcy0+ZnJlZSkKKwkJbWNic3BbaWRdLnBkYXRhLT5vcHMtPmZyZWUoaWQpOworCisJY2xrX2Rpc2FibGUobWNic3BbaWRdLmNsayk7CiAKIAlzcGluX2xvY2soJm1jYnNwW2lkXS5sb2NrKTsKIAlpZiAobWNic3BbaWRdLmZyZWUpIHsKLQkJcHJpbnRrIChLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCB3YXMgbm90IHJlc2VydmVkXG4iLCBpZCArIDEpOworCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIHdhcyBub3QgcmVzZXJ2ZWRcbiIsCisJCQltY2JzcFtpZF0uaWQpOwogCQlzcGluX3VubG9jaygmbWNic3BbaWRdLmxvY2spOwogCQlyZXR1cm47CiAJfQpAQCAtMzg0LDYgKzI2NCw3IEBACiAJCWZyZWVfaXJxKG1jYnNwW2lkXS50eF9pcnEsICh2b2lkICopICgmbWNic3BbaWRdKSk7CiAJfQogfQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX2ZyZWUpOwogCiAvKgogICogSGVyZSB3ZSBzdGFydCB0aGUgTWNCU1AsIGJ5IGVuYWJsaW5nIHRoZSBzYW1wbGUKQEAgLTM5NSwxMyArMjc2LDE1IEBACiAJdTMyIGlvX2Jhc2U7CiAJdTE2IHc7CiAKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQorCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKIAkJcmV0dXJuOworCX0KIAogCWlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKIAotCW1jYnNwW2lkXS5yeF93b3JkX2xlbmd0aCA9ICgoT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFJDUjEpID4+IDUpICYgMHg3KTsKLQltY2JzcFtpZF0udHhfd29yZF9sZW5ndGggPSAoKE9NQVBfTUNCU1BfUkVBRChpb19iYXNlLCBYQ1IxKSA+PiA1KSAmIDB4Nyk7CisJbWNic3BbaWRdLnJ4X3dvcmRfbGVuZ3RoID0gKE9NQVBfTUNCU1BfUkVBRChpb19iYXNlLCBSQ1IxKSA+PiA1KSAmIDB4NzsKKwltY2JzcFtpZF0udHhfd29yZF9sZW5ndGggPSAoT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFhDUjEpID4+IDUpICYgMHg3OwogCiAJLyogU3RhcnQgdGhlIHNhbXBsZSBnZW5lcmF0b3IgKi8KIAl3ID0gT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFNQQ1IyKTsKQEAgLTQyMiwyMCArMzA1LDIyIEBACiAKIAkvKiBEdW1wIE1jQlNQIFJlZ3MgKi8KIAlvbWFwX21jYnNwX2R1bXBfcmVnKGlkKTsKLQogfQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3N0YXJ0KTsKIAogdm9pZCBvbWFwX21jYnNwX3N0b3AodW5zaWduZWQgaW50IGlkKQogewogCXUzMiBpb19iYXNlOwogCXUxNiB3OwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CiAJCXJldHVybjsKKwl9CiAKIAlpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CiAKLSAgICAgICAgLyogUmVzZXQgdHJhbnNtaXR0ZXIgKi8KKwkvKiBSZXNldCB0cmFuc21pdHRlciAqLwogCXcgPSBPTUFQX01DQlNQX1JFQUQoaW9fYmFzZSwgU1BDUjIpOwogCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgU1BDUjIsIHcgJiB+KDEpKTsKIApAQCAtNDQ3LDEyICszMzIsMTkgQEAKIAl3ID0gT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFNQQ1IyKTsKIAlPTUFQX01DQlNQX1dSSVRFKGlvX2Jhc2UsIFNQQ1IyLCB3ICYgfigxIDw8IDYpKTsKIH0KLQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3N0b3ApOwogCiAvKiBwb2xsZWQgbWNic3AgaS9vIG9wZXJhdGlvbnMgKi8KIGludCBvbWFwX21jYnNwX3BvbGx3cml0ZSh1bnNpZ25lZCBpbnQgaWQsIHUxNiBidWYpCiB7Ci0JdTMyIGJhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwl1MzIgYmFzZTsKKworCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOwogCXdyaXRldyhidWYsIGJhc2UgKyBPTUFQX01DQlNQX1JFR19EWFIxKTsKIAkvKiBpZiBmcmFtZSBzeW5jIGVycm9yIC0gY2xlYXIgdGhlIGVycm9yICovCiAJaWYgKHJlYWR3KGJhc2UgKyBPTUFQX01DQlNQX1JFR19TUENSMikgJiBYU1lOQ19FUlIpIHsKQEAgLTQ3NCwxOCArMzY2LDI3IEBACiAJCQkJICAgICAgIChYUlNUKSwKIAkJCQkgICAgICAgYmFzZSArIE9NQVBfTUNCU1BfUkVHX1NQQ1IyKTsKIAkJCQl1ZGVsYXkoMTApOwotCQkJCXByaW50ayhLRVJOX0VSUgotCQkJCSAgICAgICAiIENvdWxkIG5vdCB3cml0ZSB0byBNY0JTUCBSZWdpc3RlclxuIik7CisJCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiQ291bGQgbm90IHdyaXRlIHRvIgorCQkJCQkiIE1jQlNQJWQgUmVnaXN0ZXJcbiIsIG1jYnNwW2lkXS5pZCk7CiAJCQkJcmV0dXJuIC0yOwogCQkJfQogCQl9CiAJfQorCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcG9sbHdyaXRlKTsKIAotaW50IG9tYXBfbWNic3BfcG9sbHJlYWQodW5zaWduZWQgaW50IGlkLCB1MTYgKiBidWYpCitpbnQgb21hcF9tY2JzcF9wb2xscmVhZCh1bnNpZ25lZCBpbnQgaWQsIHUxNiAqYnVmKQogewotCXUzMiBiYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CisJdTMyIGJhc2U7CisKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWJhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKIAkvKiBpZiBmcmFtZSBzeW5jIGVycm9yIC0gY2xlYXIgdGhlIGVycm9yICovCiAJaWYgKHJlYWR3KGJhc2UgKyBPTUFQX01DQlNQX1JFR19TUENSMSkgJiBSU1lOQ19FUlIpIHsKIAkJLyogY2xlYXIgZXJyb3IgKi8KQEAgLTUwNiwxNSArNDA3LDE3IEBACiAJCQkJICAgICAgIChSUlNUKSwKIAkJCQkgICAgICAgYmFzZSArIE9NQVBfTUNCU1BfUkVHX1NQQ1IxKTsKIAkJCQl1ZGVsYXkoMTApOwotCQkJCXByaW50ayhLRVJOX0VSUgotCQkJCSAgICAgICAiIENvdWxkIG5vdCByZWFkIGZyb20gTWNCU1AgUmVnaXN0ZXJcbiIpOworCQkJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIkNvdWxkIG5vdCByZWFkIGZyb20iCisJCQkJCSIgTWNCU1AlZCBSZWdpc3RlclxuIiwgbWNic3BbaWRdLmlkKTsKIAkJCQlyZXR1cm4gLTI7CiAJCQl9CiAJCX0KIAl9CiAJKmJ1ZiA9IHJlYWR3KGJhc2UgKyBPTUFQX01DQlNQX1JFR19EUlIxKTsKKwogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3BvbGxyZWFkKTsKIAogLyoKICAqIElSUSBiYXNlZCB3b3JkIHRyYW5zbWlzc2lvbi4KQEAgLTUyMiwxMiArNDI1LDE1IEBACiB2b2lkIG9tYXBfbWNic3BfeG1pdF93b3JkKHVuc2lnbmVkIGludCBpZCwgdTMyIHdvcmQpCiB7CiAJdTMyIGlvX2Jhc2U7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCB3b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS50eF93b3JkX2xlbmd0aDsKKwlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHdvcmRfbGVuZ3RoOwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CiAJCXJldHVybjsKKwl9CiAKIAlpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CisJd29yZF9sZW5ndGggPSBtY2JzcFtpZF0udHhfd29yZF9sZW5ndGg7CiAKIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCYobWNic3BbaWRdLnR4X2lycV9jb21wbGV0aW9uKSk7CiAKQEAgLTUzNSwxNiArNDQxLDIwIEBACiAJCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgRFhSMiwgd29yZCA+PiAxNik7CiAJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBEWFIxLCB3b3JkICYgMHhmZmZmKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF94bWl0X3dvcmQpOwogCiB1MzIgb21hcF9tY2JzcF9yZWN2X3dvcmQodW5zaWduZWQgaW50IGlkKQogewogCXUzMiBpb19iYXNlOwogCXUxNiB3b3JkX2xzYiwgd29yZF9tc2IgPSAwOwotCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggd29yZF9sZW5ndGggPSBtY2JzcFtpZF0ucnhfd29yZF9sZW5ndGg7CisJb21hcF9tY2JzcF93b3JkX2xlbmd0aCB3b3JkX2xlbmd0aDsKIAotCWlmIChvbWFwX21jYnNwX2NoZWNrKGlkKSA8IDApCi0JCXJldHVybiAtRUlOVkFMOworCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQogCisJd29yZF9sZW5ndGggPSBtY2JzcFtpZF0ucnhfd29yZF9sZW5ndGg7CiAJaW9fYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOwogCiAJd2FpdF9mb3JfY29tcGxldGlvbigmKG1jYnNwW2lkXS5yeF9pcnFfY29tcGxldGlvbikpOwpAQCAtNTU1LDE1ICs0NjUsMjQgQEAKIAogCXJldHVybiAod29yZF9sc2IgfCAod29yZF9tc2IgPDwgMTYpKTsKIH0KLQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3JlY3Zfd29yZCk7CiAKIGludCBvbWFwX21jYnNwX3NwaV9tYXN0ZXJfeG1pdF93b3JkX3BvbGwodW5zaWduZWQgaW50IGlkLCB1MzIgd29yZCkKIHsKLQl1MzIgaW9fYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOwotCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggdHhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0udHhfd29yZF9sZW5ndGg7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCByeF93b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS5yeF93b3JkX2xlbmd0aDsKKwl1MzIgaW9fYmFzZTsKKwlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHR4X3dvcmRfbGVuZ3RoOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggcnhfd29yZF9sZW5ndGg7CiAJdTE2IHNwY3IyLCBzcGNyMSwgYXR0ZW1wdHMgPSAwLCB3b3JkX2xzYiwgd29yZF9tc2IgPSAwOwogCisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CisJdHhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0udHhfd29yZF9sZW5ndGg7CisJcnhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0ucnhfd29yZF9sZW5ndGg7CisKIAlpZiAodHhfd29yZF9sZW5ndGggIT0gcnhfd29yZF9sZW5ndGgpCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC01NzcsNyArNDk2LDggQEAKIAkJCXVkZWxheSgxMCk7CiAJCQlPTUFQX01DQlNQX1dSSVRFKGlvX2Jhc2UsIFNQQ1IyLCBzcGNyMiB8IFhSU1QpOwogCQkJdWRlbGF5KDEwKTsKLQkJCXByaW50aygiTWNCU1AgdHJhbnNtaXR0ZXIgbm90IHJlYWR5XG4iKTsKKwkJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgdHJhbnNtaXR0ZXIgbm90ICIKKwkJCQkicmVhZHlcbiIsIG1jYnNwW2lkXS5pZCk7CiAJCQlyZXR1cm4gLUVBR0FJTjsKIAkJfQogCX0KQEAgLTU5Nyw3ICs1MTcsOCBAQAogCQkJdWRlbGF5KDEwKTsKIAkJCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgU1BDUjEsIHNwY3IxIHwgUlJTVCk7CiAJCQl1ZGVsYXkoMTApOwotCQkJcHJpbnRrKCJNY0JTUCByZWNlaXZlciBub3QgcmVhZHlcbiIpOworCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiTWNCU1AlZCByZWNlaXZlciBub3QgIgorCQkJCSJyZWFkeVxuIiwgbWNic3BbaWRdLmlkKTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJfQpAQCAtNjA5LDE0ICs1MzAsMjQgQEAKIAogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NwaV9tYXN0ZXJfeG1pdF93b3JkX3BvbGwpOwogCi1pbnQgb21hcF9tY2JzcF9zcGlfbWFzdGVyX3JlY3Zfd29yZF9wb2xsKHVuc2lnbmVkIGludCBpZCwgdTMyICogd29yZCkKK2ludCBvbWFwX21jYnNwX3NwaV9tYXN0ZXJfcmVjdl93b3JkX3BvbGwodW5zaWduZWQgaW50IGlkLCB1MzIgKndvcmQpCiB7Ci0JdTMyIGlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZSwgY2xvY2tfd29yZCA9IDA7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCB0eF93b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS50eF93b3JkX2xlbmd0aDsKLQlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHJ4X3dvcmRfbGVuZ3RoID0gbWNic3BbaWRdLnJ4X3dvcmRfbGVuZ3RoOworCXUzMiBpb19iYXNlLCBjbG9ja193b3JkID0gMDsKKwlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHR4X3dvcmRfbGVuZ3RoOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggcnhfd29yZF9sZW5ndGg7CiAJdTE2IHNwY3IyLCBzcGNyMSwgYXR0ZW1wdHMgPSAwLCB3b3JkX2xzYiwgd29yZF9tc2IgPSAwOwogCisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CisJdHhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0udHhfd29yZF9sZW5ndGg7CisJcnhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0ucnhfd29yZF9sZW5ndGg7CisKIAlpZiAodHhfd29yZF9sZW5ndGggIT0gcnhfd29yZF9sZW5ndGgpCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC02MzAsNyArNTYxLDggQEAKIAkJCXVkZWxheSgxMCk7CiAJCQlPTUFQX01DQlNQX1dSSVRFKGlvX2Jhc2UsIFNQQ1IyLCBzcGNyMiB8IFhSU1QpOwogCQkJdWRlbGF5KDEwKTsKLQkJCXByaW50aygiTWNCU1AgdHJhbnNtaXR0ZXIgbm90IHJlYWR5XG4iKTsKKwkJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgdHJhbnNtaXR0ZXIgbm90ICIKKwkJCQkicmVhZHlcbiIsIG1jYnNwW2lkXS5pZCk7CiAJCQlyZXR1cm4gLUVBR0FJTjsKIAkJfQogCX0KQEAgLTY1MCw3ICs1ODIsOCBAQAogCQkJdWRlbGF5KDEwKTsKIAkJCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgU1BDUjEsIHNwY3IxIHwgUlJTVCk7CiAJCQl1ZGVsYXkoMTApOwotCQkJcHJpbnRrKCJNY0JTUCByZWNlaXZlciBub3QgcmVhZHlcbiIpOworCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiTWNCU1AlZCByZWNlaXZlciBub3QgIgorCQkJCSJyZWFkeVxuIiwgbWNic3BbaWRdLmlkKTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJfQpAQCAtNjY0LDcgKzU5Nyw3IEBACiAKIAlyZXR1cm4gMDsKIH0KLQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NwaV9tYXN0ZXJfcmVjdl93b3JkX3BvbGwpOwogCiAvKgogICogU2ltcGxlIERNQSBiYXNlZCBidWZmZXIgcngvdHggcm91dGluZXMuCkBAIC02NzMsMjUgKzYwNiwzMiBAQAogICogRm9yIGFueXRoaW5nIGZhbmNpZXIsIHlvdSBzaG91bGQgdXNlIHlvdXIgb3duIGN1c3RvbWl6ZWQgRE1BCiAgKiByb3V0aW5lcyBhbmQgY2FsbGJhY2tzLgogICovCi1pbnQgb21hcF9tY2JzcF94bWl0X2J1ZmZlcih1bnNpZ25lZCBpbnQgaWQsIGRtYV9hZGRyX3QgYnVmZmVyLCB1bnNpZ25lZCBpbnQgbGVuZ3RoKQoraW50IG9tYXBfbWNic3BfeG1pdF9idWZmZXIodW5zaWduZWQgaW50IGlkLCBkbWFfYWRkcl90IGJ1ZmZlciwKKwkJCQl1bnNpZ25lZCBpbnQgbGVuZ3RoKQogewogCWludCBkbWFfdHhfY2g7CiAJaW50IHNyY19wb3J0ID0gMDsKIAlpbnQgZGVzdF9wb3J0ID0gMDsKIAlpbnQgc3luY19kZXYgPSAwOwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKLQkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKLQlpZiAob21hcF9yZXF1ZXN0X2RtYShtY2JzcFtpZF0uZG1hX3R4X3N5bmMsICJNY0JTUCBUWCIsIG9tYXBfbWNic3BfdHhfZG1hX2NhbGxiYWNrLAotCQkJICAgICAmbWNic3BbaWRdLAotCQkJICAgICAmZG1hX3R4X2NoKSkgewotCQlwcmludGsoIk9NQVAtTWNCU1A6IFVuYWJsZSB0byByZXF1ZXN0IERNQSBjaGFubmVsIGZvciBNY0JTUCVkIFRYLiBUcnlpbmcgSVJRIGJhc2VkIFRYXG4iLCBpZCsxKTsKKwlpZiAob21hcF9yZXF1ZXN0X2RtYShtY2JzcFtpZF0uZG1hX3R4X3N5bmMsICJNY0JTUCBUWCIsCisJCQkJb21hcF9tY2JzcF90eF9kbWFfY2FsbGJhY2ssCisJCQkJJm1jYnNwW2lkXSwKKwkJCQkmZG1hX3R4X2NoKSkgeworCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICIgVW5hYmxlIHRvIHJlcXVlc3QgRE1BIGNoYW5uZWwgZm9yICIKKwkJCQkiTWNCU1AlZCBUWC4gVHJ5aW5nIElSUSBiYXNlZCBUWFxuIiwKKwkJCQltY2JzcFtpZF0uaWQpOwogCQlyZXR1cm4gLUVBR0FJTjsKIAl9CiAJbWNic3BbaWRdLmRtYV90eF9sY2ggPSBkbWFfdHhfY2g7CiAKLQlEQkcoIlRYIERNQSBvbiBjaGFubmVsICVkXG4iLCBkbWFfdHhfY2gpOworCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgVFggRE1BIG9uIGNoYW5uZWwgJWRcbiIsIG1jYnNwW2lkXS5pZCwKKwkJZG1hX3R4X2NoKTsKIAogCWluaXRfY29tcGxldGlvbigmKG1jYnNwW2lkXS50eF9kbWFfY29tcGxldGlvbikpOwogCkBAIC02OTksNyArNjM5LDcgQEAKIAkJc3JjX3BvcnQgPSBPTUFQX0RNQV9QT1JUX1RJUEI7CiAJCWRlc3RfcG9ydCA9IE9NQVBfRE1BX1BPUlRfRU1JRkY7CiAJfQotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCiAJCXN5bmNfZGV2ID0gbWNic3BbaWRdLmRtYV90eF9zeW5jOwogCiAJb21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhtY2JzcFtpZF0uZG1hX3R4X2xjaCwKQEAgLTcyMiwyOSArNjYyLDM3IEBACiAKIAlvbWFwX3N0YXJ0X2RtYShtY2JzcFtpZF0uZG1hX3R4X2xjaCk7CiAJd2FpdF9mb3JfY29tcGxldGlvbigmKG1jYnNwW2lkXS50eF9kbWFfY29tcGxldGlvbikpOworCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfeG1pdF9idWZmZXIpOwogCi0KLWludCBvbWFwX21jYnNwX3JlY3ZfYnVmZmVyKHVuc2lnbmVkIGludCBpZCwgZG1hX2FkZHJfdCBidWZmZXIsIHVuc2lnbmVkIGludCBsZW5ndGgpCitpbnQgb21hcF9tY2JzcF9yZWN2X2J1ZmZlcih1bnNpZ25lZCBpbnQgaWQsIGRtYV9hZGRyX3QgYnVmZmVyLAorCQkJCXVuc2lnbmVkIGludCBsZW5ndGgpCiB7CiAJaW50IGRtYV9yeF9jaDsKIAlpbnQgc3JjX3BvcnQgPSAwOwogCWludCBkZXN0X3BvcnQgPSAwOwogCWludCBzeW5jX2RldiA9IDA7CiAKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOworCX0KIAotCWlmIChvbWFwX3JlcXVlc3RfZG1hKG1jYnNwW2lkXS5kbWFfcnhfc3luYywgIk1jQlNQIFJYIiwgb21hcF9tY2JzcF9yeF9kbWFfY2FsbGJhY2ssCi0JCQkgICAgICZtY2JzcFtpZF0sCi0JCQkgICAgICZkbWFfcnhfY2gpKSB7Ci0JCXByaW50aygiVW5hYmxlIHRvIHJlcXVlc3QgRE1BIGNoYW5uZWwgZm9yIE1jQlNQJWQgUlguIFRyeWluZyBJUlEgYmFzZWQgUlhcbiIsIGlkKzEpOworCWlmIChvbWFwX3JlcXVlc3RfZG1hKG1jYnNwW2lkXS5kbWFfcnhfc3luYywgIk1jQlNQIFJYIiwKKwkJCQlvbWFwX21jYnNwX3J4X2RtYV9jYWxsYmFjaywKKwkJCQkmbWNic3BbaWRdLAorCQkJCSZkbWFfcnhfY2gpKSB7CisJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIlVuYWJsZSB0byByZXF1ZXN0IERNQSBjaGFubmVsIGZvciAiCisJCQkJIk1jQlNQJWQgUlguIFRyeWluZyBJUlEgYmFzZWQgUlhcbiIsCisJCQkJbWNic3BbaWRdLmlkKTsKIAkJcmV0dXJuIC1FQUdBSU47CiAJfQogCW1jYnNwW2lkXS5kbWFfcnhfbGNoID0gZG1hX3J4X2NoOwogCi0JREJHKCJSWCBETUEgb24gY2hhbm5lbCAlZFxuIiwgZG1hX3J4X2NoKTsKKwlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIFJYIERNQSBvbiBjaGFubmVsICVkXG4iLCBtY2JzcFtpZF0uaWQsCisJCWRtYV9yeF9jaCk7CiAKIAlpbml0X2NvbXBsZXRpb24oJihtY2JzcFtpZF0ucnhfZG1hX2NvbXBsZXRpb24pKTsKIApAQCAtNzUyLDE0ICs3MDAsMTQgQEAKIAkJc3JjX3BvcnQgPSBPTUFQX0RNQV9QT1JUX1RJUEI7CiAJCWRlc3RfcG9ydCA9IE9NQVBfRE1BX1BPUlRfRU1JRkY7CiAJfQotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCiAJCXN5bmNfZGV2ID0gbWNic3BbaWRdLmRtYV9yeF9zeW5jOwogCiAJb21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhtY2JzcFtpZF0uZG1hX3J4X2xjaCwKLQkJCQkgICAgIE9NQVBfRE1BX0RBVEFfVFlQRV9TMTYsCi0JCQkJICAgICBsZW5ndGggPj4gMSwgMSwKLQkJCQkgICAgIE9NQVBfRE1BX1NZTkNfRUxFTUVOVCwKLQkgc3luY19kZXYsIDApOworCQkJCQlPTUFQX0RNQV9EQVRBX1RZUEVfUzE2LAorCQkJCQlsZW5ndGggPj4gMSwgMSwKKwkJCQkJT01BUF9ETUFfU1lOQ19FTEVNRU5ULAorCQkJCQlzeW5jX2RldiwgMCk7CiAKIAlvbWFwX3NldF9kbWFfc3JjX3BhcmFtcyhtY2JzcFtpZF0uZG1hX3J4X2xjaCwKIAkJCQlzcmNfcG9ydCwKQEAgLTc2OCwxNiArNzE2LDE3IEBACiAJCQkJMCwgMCk7CiAKIAlvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMobWNic3BbaWRdLmRtYV9yeF9sY2gsCi0JCQkJIGRlc3RfcG9ydCwKLQkJCQkgT01BUF9ETUFfQU1PREVfUE9TVF9JTkMsCi0JCQkJIGJ1ZmZlciwKLQkJCQkgMCwgMCk7CisJCQkJCWRlc3RfcG9ydCwKKwkJCQkJT01BUF9ETUFfQU1PREVfUE9TVF9JTkMsCisJCQkJCWJ1ZmZlciwKKwkJCQkJMCwgMCk7CiAKIAlvbWFwX3N0YXJ0X2RtYShtY2JzcFtpZF0uZG1hX3J4X2xjaCk7CiAJd2FpdF9mb3JfY29tcGxldGlvbigmKG1jYnNwW2lkXS5yeF9kbWFfY29tcGxldGlvbikpOworCiAJcmV0dXJuIDA7CiB9Ci0KK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9yZWN2X2J1ZmZlcik7CiAKIC8qCiAgKiBTUEkgd3JhcHBlci4KQEAgLTc4NSwxMiArNzM0LDE1IEBACiAgKiB0aGlzIHdyYXBwZXIganVzdCBuZWVkIGFuIG9tYXBfbWNic3Bfc3BpX2NmZyBzdHJ1Y3R1cmUgYXMgYW4gaW5wdXQuCiAgKiBPbmNlIHRoaXMgaXMgZG9uZSwgeW91IGNhbiBjYWxsIG9tYXBfbWNic3Bfc3RhcnQoKS4KICAqLwotdm9pZCBvbWFwX21jYnNwX3NldF9zcGlfbW9kZSh1bnNpZ25lZCBpbnQgaWQsIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX3NwaV9jZmcgKiBzcGlfY2ZnKQordm9pZCBvbWFwX21jYnNwX3NldF9zcGlfbW9kZSh1bnNpZ25lZCBpbnQgaWQsCisJCQkJY29uc3Qgc3RydWN0IG9tYXBfbWNic3Bfc3BpX2NmZyAqc3BpX2NmZykKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9yZWdfY2ZnIG1jYnNwX2NmZzsKIAotCWlmIChvbWFwX21jYnNwX2NoZWNrKGlkKSA8IDApCisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOwogCQlyZXR1cm47CisJfQogCiAJbWVtc2V0KCZtY2JzcF9jZmcsIDAsIHNpemVvZihzdHJ1Y3Qgb21hcF9tY2JzcF9yZWdfY2ZnKSk7CiAKQEAgLTc5OCw3ICs3NTAsNyBAQAogCW1jYnNwX2NmZy5yY3IxIHw9IChSV0RMRU4xKHNwaV9jZmctPndvcmRfbGVuZ3RoKSB8IFJGUkxFTjEoMCkpOwogCW1jYnNwX2NmZy54Y3IxIHw9IChYV0RMRU4xKHNwaV9jZmctPndvcmRfbGVuZ3RoKSB8IFhGUkxFTjEoMCkpOwogCi0gICAgICAgIC8qIENsb2NrIHN0b3AgbW9kZSAqLworCS8qIENsb2NrIHN0b3AgbW9kZSAqLwogCWlmIChzcGlfY2ZnLT5jbGtfc3RwX21vZGUgPT0gT01BUF9NQ0JTUF9DTEtfU1RQX01PREVfTk9fREVMQVkpCiAJCW1jYnNwX2NmZy5zcGNyMSB8PSAoMSA8PCAxMik7CiAJZWxzZQpAQCAtODI3LDEzICs3NzksMTIgQEAKIAogCWlmIChzcGlfY2ZnLT5zcGlfbW9kZSA9PSBPTUFQX01DQlNQX1NQSV9NQVNURVIpIHsKIAkJbWNic3BfY2ZnLnBjcjAgfD0gQ0xLWE07Ci0JCW1jYnNwX2NmZy5zcmdyMSB8PSBDTEtHRFYoc3BpX2NmZy0+Y2xrX2RpdiAtMSk7CisJCW1jYnNwX2NmZy5zcmdyMSB8PSBDTEtHRFYoc3BpX2NmZy0+Y2xrX2RpdiAtIDEpOwogCQltY2JzcF9jZmcucGNyMCB8PSBGU1hNOwogCQltY2JzcF9jZmcuc3JncjIgJj0gfkZTR007CiAJCW1jYnNwX2NmZy54Y3IyIHw9IFhEQVRETFkoMSk7CiAJCW1jYnNwX2NmZy5yY3IyIHw9IFJEQVRETFkoMSk7Ci0JfQotCWVsc2UgeworCX0gZWxzZSB7CiAJCW1jYnNwX2NmZy5wY3IwICY9IH5DTEtYTTsKIAkJbWNic3BfY2ZnLnNyZ3IxIHw9IENMS0dEVigxKTsKIAkJbWNic3BfY2ZnLnBjcjAgJj0gfkZTWE07CkBAIC04NDYsMTk5ICs3OTcsOTkgQEAKIAogCW9tYXBfbWNic3BfY29uZmlnKGlkLCAmbWNic3BfY2ZnKTsKIH0KLQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NldF9zcGlfbW9kZSk7CiAKIC8qCiAgKiBNY0JTUDEgYW5kIE1jQlNQMyBhcmUgZGlyZWN0bHkgbWFwcGVkIG9uIDE2MTAgYW5kIDE1MTAuCiAgKiA3MzAgaGFzIG9ubHkgMiBNY0JTUCwgYW5kIGJvdGggb2YgdGhlbSBhcmUgTVBVIHBlcmlwaGVyYWxzLgogICovCi1zdHJ1Y3Qgb21hcF9tY2JzcF9pbmZvIHsKLQl1MzIgdmlydF9iYXNlOwotCXU4IGRtYV9yeF9zeW5jLCBkbWFfdHhfc3luYzsKLQl1MTYgcnhfaXJxLCB0eF9pcnE7Ci19OwotCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDczMAotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX2luZm8gbWNic3BfNzMwW10gPSB7Ci0JWzBdID0geyAudmlydF9iYXNlID0gaW9fcDJ2KE9NQVA3MzBfTUNCU1AxX0JBU0UpLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDFfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVBfRE1BX01DQlNQMV9UWCwKLQkJLnJ4X2lycSA9IElOVF83MzBfTWNCU1AxUlgsCi0JCS50eF9pcnEgPSBJTlRfNzMwX01jQlNQMVRYIH0sCi0JWzFdID0geyAudmlydF9iYXNlID0gaW9fcDJ2KE9NQVA3MzBfTUNCU1AyX0JBU0UpLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDNfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVBfRE1BX01DQlNQM19UWCwKLQkJLnJ4X2lycSA9IElOVF83MzBfTWNCU1AyUlgsCi0JCS50eF9pcnEgPSBJTlRfNzMwX01jQlNQMlRYIH0sCi19OwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMTVYWAotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX2luZm8gbWNic3BfMTUxMFtdID0gewotCVswXSA9IHsgLnZpcnRfYmFzZSA9IE9NQVAxNTEwX01DQlNQMV9CQVNFLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDFfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVBfRE1BX01DQlNQMV9UWCwKLQkJLnJ4X2lycSA9IElOVF9NY0JTUDFSWCwKLQkJLnR4X2lycSA9IElOVF9NY0JTUDFUWCB9LAotCVsxXSA9IHsgLnZpcnRfYmFzZSA9IGlvX3AydihPTUFQMTUxMF9NQ0JTUDJfQkFTRSksCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQMl9SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AyX1RYLAotCQkucnhfaXJxID0gSU5UXzE1MTBfU1BJX1JYLAotCQkudHhfaXJxID0gSU5UXzE1MTBfU1BJX1RYIH0sCi0JWzJdID0geyAudmlydF9iYXNlID0gT01BUDE1MTBfTUNCU1AzX0JBU0UsCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQM19SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AzX1RYLAotCQkucnhfaXJxID0gSU5UX01jQlNQM1JYLAotCQkudHhfaXJxID0gSU5UX01jQlNQM1RYIH0sCi19OwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAxNlhYKQotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX2luZm8gbWNic3BfMTYxMFtdID0gewotCVswXSA9IHsgLnZpcnRfYmFzZSA9IE9NQVAxNjEwX01DQlNQMV9CQVNFLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDFfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVBfRE1BX01DQlNQMV9UWCwKLQkJLnJ4X2lycSA9IElOVF9NY0JTUDFSWCwKLQkJLnR4X2lycSA9IElOVF9NY0JTUDFUWCB9LAotCVsxXSA9IHsgLnZpcnRfYmFzZSA9IGlvX3AydihPTUFQMTYxMF9NQ0JTUDJfQkFTRSksCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQMl9SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AyX1RYLAotCQkucnhfaXJxID0gSU5UXzE2MTBfTWNCU1AyX1JYLAotCQkudHhfaXJxID0gSU5UXzE2MTBfTWNCU1AyX1RYIH0sCi0JWzJdID0geyAudmlydF9iYXNlID0gT01BUDE2MTBfTUNCU1AzX0JBU0UsCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQM19SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AzX1RYLAotCQkucnhfaXJxID0gSU5UX01jQlNQM1JYLAotCQkudHhfaXJxID0gSU5UX01jQlNQM1RYIH0sCi19OwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNFhYKQotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX2luZm8gbWNic3BfMjR4eFtdID0gewotCVswXSA9IHsgLnZpcnRfYmFzZSA9IElPX0FERFJFU1MoT01BUDI0WFhfTUNCU1AxX0JBU0UpLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQMjRYWF9ETUFfTUNCU1AxX1JYLAotCQkuZG1hX3R4X3N5bmMgPSBPTUFQMjRYWF9ETUFfTUNCU1AxX1RYLAotCQkucnhfaXJxID0gSU5UXzI0WFhfTUNCU1AxX0lSUV9SWCwKLQkJLnR4X2lycSA9IElOVF8yNFhYX01DQlNQMV9JUlFfVFgsCi0JCX0sCi0JWzFdID0geyAudmlydF9iYXNlID0gSU9fQUREUkVTUyhPTUFQMjRYWF9NQ0JTUDJfQkFTRSksCi0JCS5kbWFfcnhfc3luYyA9IE9NQVAyNFhYX0RNQV9NQ0JTUDJfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVAyNFhYX0RNQV9NQ0JTUDJfVFgsCi0JCS5yeF9pcnEgPSBJTlRfMjRYWF9NQ0JTUDJfSVJRX1JYLAotCQkudHhfaXJxID0gSU5UXzI0WFhfTUNCU1AyX0lSUV9UWCwKLQkJfSwKLX07Ci0jZW5kaWYKLQotc3RhdGljIGludCBfX2luaXQgb21hcF9tY2JzcF9pbml0KHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBvbWFwX21jYnNwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7Ci0JaW50IG1jYnNwX2NvdW50ID0gMCwgaTsKLQlzdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfbWNic3BfaW5mbyAqbWNic3BfaW5mbzsKKwlzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhICpwZGF0YSA9IHBkZXYtPmRldi5wbGF0Zm9ybV9kYXRhOworCWludCBpZCA9IHBkZXYtPmlkIC0gMTsKKwlpbnQgcmV0ID0gMDsKIAotCXByaW50aygiSW5pdGlhbGl6aW5nIE9NQVAgTWNCU1Agc3lzdGVtXG4iKTsKKwlpZiAoIXBkYXRhKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIk1jQlNQIGRldmljZSBpbml0aWFsaXplZCB3aXRob3V0IgorCQkJCSJwbGF0Zm9ybSBkYXRhXG4iKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBleGl0OworCX0KIAotI2lmZGVmIENPTkZJR19BUkNIX09NQVAxCi0JbWNic3BfZHNwX2NrID0gY2xrX2dldCgwLCAiZHNwX2NrIik7Ci0JaWYgKElTX0VSUihtY2JzcF9kc3BfY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIGRzcF9jayBoYW5kbGUuXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWNic3BfZHNwX2NrKTsKLQl9Ci0JbWNic3BfYXBpX2NrID0gY2xrX2dldCgwLCAiYXBpX2NrIik7Ci0JaWYgKElTX0VSUihtY2JzcF9hcGlfY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIGFwaV9jayBoYW5kbGUuXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWNic3BfYXBpX2NrKTsKLQl9Ci0JbWNic3BfZHNweG9yX2NrID0gY2xrX2dldCgwLCAiZHNweG9yX2NrIik7Ci0JaWYgKElTX0VSUihtY2JzcF9kc3B4b3JfY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIGRzcHhvcl9jayBoYW5kbGUuXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWNic3BfZHNweG9yX2NrKTsKLQl9Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMgotCW1jYnNwMV9pY2sgPSBjbGtfZ2V0KDAsICJtY2JzcDFfaWNrIik7Ci0JaWYgKElTX0VSUihtY2JzcDFfaWNrKSkgewotCQlwcmludGsoS0VSTl9FUlIgIm1jYnNwOiBjb3VsZCBub3QgYWNxdWlyZSBtY2JzcDFfaWNrIGhhbmRsZS5cbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtY2JzcDFfaWNrKTsKLQl9Ci0JbWNic3AxX2ZjayA9IGNsa19nZXQoMCwgIm1jYnNwMV9mY2siKTsKLQlpZiAoSVNfRVJSKG1jYnNwMV9mY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIG1jYnNwMV9mY2sgaGFuZGxlLlxuIik7Ci0JCXJldHVybiBQVFJfRVJSKG1jYnNwMV9mY2spOwotCX0KLQltY2JzcDJfaWNrID0gY2xrX2dldCgwLCAibWNic3AyX2ljayIpOwotCWlmIChJU19FUlIobWNic3AyX2ljaykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtY2JzcDogY291bGQgbm90IGFjcXVpcmUgbWNic3AyX2ljayBoYW5kbGUuXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWNic3AyX2ljayk7Ci0JfQotCW1jYnNwMl9mY2sgPSBjbGtfZ2V0KDAsICJtY2JzcDJfZmNrIik7Ci0JaWYgKElTX0VSUihtY2JzcDJfZmNrKSkgewotCQlwcmludGsoS0VSTl9FUlIgIm1jYnNwOiBjb3VsZCBub3QgYWNxdWlyZSBtY2JzcDJfZmNrIGhhbmRsZS5cbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtY2JzcDJfZmNrKTsKLQl9Ci0jZW5kaWYKKwlkZXZfZGJnKCZwZGV2LT5kZXYsICJJbml0aWFsaXppbmcgT01BUCBNY0JTUCAoJWQpLlxuIiwgcGRldi0+aWQpOwogCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDczMAotCWlmIChjcHVfaXNfb21hcDczMCgpKSB7Ci0JCW1jYnNwX2luZm8gPSBtY2JzcF83MzA7Ci0JCW1jYnNwX2NvdW50ID0gQVJSQVlfU0laRShtY2JzcF83MzApOworCWlmIChpZCA+PSBPTUFQX01BWF9NQ0JTUF9DT1VOVCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJJbnZhbGlkIE1jQlNQIGRldmljZSBpZCAoJWQpXG4iLCBpZCk7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZXhpdDsKIAl9Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMTVYWAotCWlmIChjcHVfaXNfb21hcDE1eHgoKSkgewotCQltY2JzcF9pbmZvID0gbWNic3BfMTUxMDsKLQkJbWNic3BfY291bnQgPSBBUlJBWV9TSVpFKG1jYnNwXzE1MTApOwotCX0KLSNlbmRpZgotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDE2WFgpCi0JaWYgKGNwdV9pc19vbWFwMTZ4eCgpKSB7Ci0JCW1jYnNwX2luZm8gPSBtY2JzcF8xNjEwOwotCQltY2JzcF9jb3VudCA9IEFSUkFZX1NJWkUobWNic3BfMTYxMCk7Ci0JfQotI2VuZGlmCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMjRYWCkKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJbWNic3BfaW5mbyA9IG1jYnNwXzI0eHg7Ci0JCW1jYnNwX2NvdW50ID0gQVJSQVlfU0laRShtY2JzcF8yNHh4KTsKLQkJb21hcDJfbWNic3AyX211eF9zZXR1cCgpOwotCX0KLSNlbmRpZgotCWZvciAoaSA9IDA7IGkgPCBPTUFQX01BWF9NQ0JTUF9DT1VOVCA7IGkrKykgewotCQlpZiAoaSA+PSBtY2JzcF9jb3VudCkgewotCQkJbWNic3BbaV0uaW9fYmFzZSA9IDA7Ci0JCQltY2JzcFtpXS5mcmVlID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCQl9Ci0JCW1jYnNwW2ldLmlkID0gaSArIDE7Ci0JCW1jYnNwW2ldLmZyZWUgPSAxOwotCQltY2JzcFtpXS5kbWFfdHhfbGNoID0gLTE7Ci0JCW1jYnNwW2ldLmRtYV9yeF9sY2ggPSAtMTsKIAotCQltY2JzcFtpXS5pb19iYXNlID0gbWNic3BfaW5mb1tpXS52aXJ0X2Jhc2U7Ci0JCW1jYnNwW2ldLmlvX3R5cGUgPSBPTUFQX01DQlNQX0lSUV9JTzsgLyogRGVmYXVsdCBJL08gaXMgSVJRIGJhc2VkICovCi0JCW1jYnNwW2ldLnR4X2lycSA9IG1jYnNwX2luZm9baV0udHhfaXJxOwotCQltY2JzcFtpXS5yeF9pcnEgPSBtY2JzcF9pbmZvW2ldLnJ4X2lycTsKLQkJbWNic3BbaV0uZG1hX3J4X3N5bmMgPSBtY2JzcF9pbmZvW2ldLmRtYV9yeF9zeW5jOwotCQltY2JzcFtpXS5kbWFfdHhfc3luYyA9IG1jYnNwX2luZm9baV0uZG1hX3R4X3N5bmM7Ci0JCXNwaW5fbG9ja19pbml0KCZtY2JzcFtpXS5sb2NrKTsKKwlzcGluX2xvY2tfaW5pdCgmbWNic3BbaWRdLmxvY2spOworCW1jYnNwW2lkXS5pZCA9IGlkICsgMTsKKwltY2JzcFtpZF0uZnJlZSA9IDE7CisJbWNic3BbaWRdLmRtYV90eF9sY2ggPSAtMTsKKwltY2JzcFtpZF0uZG1hX3J4X2xjaCA9IC0xOworCisJbWNic3BbaWRdLmlvX2Jhc2UgPSBwZGF0YS0+dmlydF9iYXNlOworCS8qIERlZmF1bHQgSS9PIGlzIElSUSBiYXNlZCAqLworCW1jYnNwW2lkXS5pb190eXBlID0gT01BUF9NQ0JTUF9JUlFfSU87CisJbWNic3BbaWRdLnR4X2lycSA9IHBkYXRhLT50eF9pcnE7CisJbWNic3BbaWRdLnJ4X2lycSA9IHBkYXRhLT5yeF9pcnE7CisJbWNic3BbaWRdLmRtYV9yeF9zeW5jID0gcGRhdGEtPmRtYV9yeF9zeW5jOworCW1jYnNwW2lkXS5kbWFfdHhfc3luYyA9IHBkYXRhLT5kbWFfdHhfc3luYzsKKworCWlmIChwZGF0YS0+Y2xrX25hbWUpCisJCW1jYnNwW2lkXS5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsIHBkYXRhLT5jbGtfbmFtZSk7CisJaWYgKElTX0VSUihtY2JzcFtpZF0uY2xrKSkgeworCQltY2JzcFtpZF0uZnJlZSA9IDA7CisJCWRldl9lcnIoJnBkZXYtPmRldiwKKwkJCSJJbnZhbGlkIGNsb2NrIGNvbmZpZ3VyYXRpb24gZm9yIE1jQlNQJWQuXG4iLAorCQkJbWNic3BbaWRdLmlkKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBleGl0OworCX0KKworCW1jYnNwW2lkXS5wZGF0YSA9IHBkYXRhOworCW1jYnNwW2lkXS5kZXYgPSAmcGRldi0+ZGV2OworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsICZtY2JzcFtpZF0pOworCitleGl0OgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgb21hcF9tY2JzcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgb21hcF9tY2JzcCAqbWNic3AgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworCWlmIChtY2JzcCkgeworCisJCWlmIChtY2JzcC0+cGRhdGEgJiYgbWNic3AtPnBkYXRhLT5vcHMgJiYKKwkJCQltY2JzcC0+cGRhdGEtPm9wcy0+ZnJlZSkKKwkJCW1jYnNwLT5wZGF0YS0+b3BzLT5mcmVlKG1jYnNwLT5pZCk7CisKKwkJY2xrX2Rpc2FibGUobWNic3AtPmNsayk7CisJCWNsa19wdXQobWNic3AtPmNsayk7CisKKwkJbWNic3AtPmNsayA9IE5VTEw7CisJCW1jYnNwLT5mcmVlID0gMDsKKwkJbWNic3AtPmRldiA9IE5VTEw7CiAJfQogCiAJcmV0dXJuIDA7CiB9CiAKLWFyY2hfaW5pdGNhbGwob21hcF9tY2JzcF9pbml0KTsKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG9tYXBfbWNic3BfZHJpdmVyID0geworCS5wcm9iZQkJPSBvbWFwX21jYnNwX3Byb2JlLAorCS5yZW1vdmUJCT0gb21hcF9tY2JzcF9yZW1vdmUsCisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gIm9tYXAtbWNic3AiLAorCX0sCit9OwogCi1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfY29uZmlnKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9yZXF1ZXN0KTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9zZXRfaW9fdHlwZSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfZnJlZSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc3RhcnQpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3N0b3ApOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3BvbGxyZWFkKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9wb2xsd3JpdGUpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3htaXRfd29yZCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcmVjdl93b3JkKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF94bWl0X2J1ZmZlcik7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcmVjdl9idWZmZXIpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NwaV9tYXN0ZXJfeG1pdF93b3JkX3BvbGwpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NwaV9tYXN0ZXJfcmVjdl93b3JkX3BvbGwpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NldF9zcGlfbW9kZSk7CitpbnQgX19pbml0IG9tYXBfbWNic3BfaW5pdCh2b2lkKQoreworCS8qIFJlZ2lzdGVyIHRoZSBNY0JTUCBkcml2ZXIgKi8KKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZvbWFwX21jYnNwX2RyaXZlcik7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9zcmFtLWZuLlMgYi9hcmNoL2FybS9wbGF0LW9tYXAvc3JhbS1mbi5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTE4MTNjLi4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9zcmFtLWZuLlMKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogbGludXgvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0tZm4uUwotICoKLSAqIEZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcnVuIGluIGludGVybmFsIFNSQU0KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+Ci0KLQkudGV4dAotCi0vKgotICogUmVwcm9ncmFtcyBVTFBEIGFuZCBDS0NUTC4KLSAqLwotRU5UUlkoc3JhbV9yZXByb2dyYW1fY2xvY2spCi0Jc3RtZmQJc3AhLCB7cjAgLSByMTIsIGxyfQkJQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjawotCi0JbW92CXIyLCAjSU9fQUREUkVTUyhEUExMX0NUTCkgJiAweGZmMDAwMDAwCi0Jb3JyCXIyLCByMiwgI0lPX0FERFJFU1MoRFBMTF9DVEwpICYgMHgwMGZmMDAwMAotCW9ycglyMiwgcjIsICNJT19BRERSRVNTKERQTExfQ1RMKSAmIDB4MDAwMGZmMDAKLQotCW1vdglyMywgI0lPX0FERFJFU1MoQVJNX0NLQ1RMKSAmIDB4ZmYwMDAwMDAKLQlvcnIJcjMsIHIzLCAjSU9fQUREUkVTUyhBUk1fQ0tDVEwpICYgMHgwMGZmMDAwMAotCW9ycglyMywgcjMsICNJT19BRERSRVNTKEFSTV9DS0NUTCkgJiAweDAwMDBmZjAwCi0KLQl0c3QJcjAsICMxIDw8IDQJCQlAIHdhbnQgbG9jayBtb2RlPwotCWJlcQluZXdjawkJCQlAIG5vcGUKLQliaWMJcjAsIHIwLCAjMSA8PCA0CQkJQCBlbHNlIGNsZWFyIGxvY2sgYml0Ci0Jc3RyaAlyMCwgW3IyXQkJCUAgc2V0IGRwbGwgaW50byBieXBhc3MgbW9kZQotCW9ycglyMCwgcjAsICMxIDw8IDQJCQlAIHNldCBsb2NrIGJpdCBhZ2FpbgotCi1uZXdjazoKLQlzdHJoCXIxLCBbcjNdCQkJQCB3cml0ZSBuZXcgY2tjdGwgdmFsdWUKLQlzdHJoCXIwLCBbcjJdCQkJQCB3cml0ZSBuZXcgZHBsbCB2YWx1ZQotCi0JbW92CXI0LCAjMHgwNzAwCQkJQCBsZXQgdGhlIGNsb2NrcyBzZXR0bGUKLQlvcnIJcjQsIHI0LCAjMHgwMGZmCi1kZWxheToJc3ViCXI0LCByNCwgIzEKLQljbXAJcjQsICMwCi0JYm5lCWRlbGF5Ci0KLWxvY2s6CWxkcmgJcjQsIFtyMl0sICMwCQkJQCByZWFkIGJhY2sgZHBsbCB2YWx1ZQotCXRzdAlyMCwgIzEgPDwgNAkJCUAgd2FudCBsb2NrIG1vZGU/Ci0JYmVxCW91dAkJCQlAIG5vcGUKLQl0c3QJcjQsICMxIDw8IDAJCQlAIGRwbGwgcmF0ZSBsb2NrZWQ/Ci0JYmVxCWxvY2sJCQkJQCB0cnkgYWdhaW4KLQotb3V0OgotCWxkbWZkCXNwISwge3IwIC0gcjEyLCBwY30JCUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KLUVOVFJZKHNyYW1fcmVwcm9ncmFtX2Nsb2NrX3N6KQotCS53b3JkCS4gLSBzcmFtX3JlcHJvZ3JhbV9jbG9jawpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0uYyBiL2FyY2gvYXJtL3BsYXQtb21hcC9zcmFtLmMKaW5kZXggMWYyM2YwNC4uNTU0ZWU1OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0uYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvc3JhbS5jCkBAIC0xMCw2ICsxMCw3IEBACiAgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwogICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAgKi8KKyN1bmRlZiBERUJVRwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CkBAIC0yNCwyNSArMjUsNDMgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9zcmFtLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KIAorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbnRyb2wuaD4KKworI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDIpIHx8IGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDMpCisjIGluY2x1ZGUgIi4uL21hY2gtb21hcDIvcHJtLmgiCisjIGluY2x1ZGUgIi4uL21hY2gtb21hcDIvY20uaCIKKyMgaW5jbHVkZSAiLi4vbWFjaC1vbWFwMi9zZHJjLmgiCisjZW5kaWYKKwogI2RlZmluZSBPTUFQMV9TUkFNX1BBCQkweDIwMDAwMDAwCi0jZGVmaW5lIE9NQVAxX1NSQU1fVkEJCTB4ZDAwMDAwMDAKKyNkZWZpbmUgT01BUDFfU1JBTV9WQQkJVk1BTExPQ19FTkQKICNkZWZpbmUgT01BUDJfU1JBTV9QQQkJMHg0MDIwMDAwMAogI2RlZmluZSBPTUFQMl9TUkFNX1BVQl9QQQkweDQwMjBmODAwCi0jZGVmaW5lIE9NQVAyX1NSQU1fVkEJCTB4ZDAwMDAwMDAKLSNkZWZpbmUgT01BUDJfU1JBTV9QVUJfVkEJMHhkMDAwMDgwMAorI2RlZmluZSBPTUFQMl9TUkFNX1ZBCQlWTUFMTE9DX0VORAorI2RlZmluZSBPTUFQMl9TUkFNX1BVQl9WQQkoVk1BTExPQ19FTkQgKyAweDgwMCkKKyNkZWZpbmUgT01BUDNfU1JBTV9QQSAgICAgICAgICAgMHg0MDIwMDAwMAorI2RlZmluZSBPTUFQM19TUkFNX1ZBICAgICAgICAgICAweGQ3MDAwMDAwCisjZGVmaW5lIE9NQVAzX1NSQU1fUFVCX1BBICAgICAgIDB4NDAyMDgwMDAKKyNkZWZpbmUgT01BUDNfU1JBTV9QVUJfVkEgICAgICAgMHhkNzAwODAwMAogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMjRYWCkKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNFhYKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzNFhYKQogI2RlZmluZSBTUkFNX0JPT1RMT0FERVJfU1oJMHgwMAogI2Vsc2UKICNkZWZpbmUgU1JBTV9CT09UTE9BREVSX1NaCTB4ODAKICNlbmRpZgogCi0jZGVmaW5lIFZBX1JFUUlORk9QRVJNMAkJSU9fQUREUkVTUygweDY4MDA1MDQ4KQotI2RlZmluZSBWQV9SRUFEUEVSTTAJCUlPX0FERFJFU1MoMHg2ODAwNTA1MCkKLSNkZWZpbmUgVkFfV1JJVEVQRVJNMAkJSU9fQUREUkVTUygweDY4MDA1MDU4KQotI2RlZmluZSBWQV9DT05UUk9MX1NUQVQJCUlPX0FERFJFU1MoMHg0ODAwMDJGOCkKKyNkZWZpbmUgT01BUDI0WFhfVkFfUkVRSU5GT1BFUk0wCUlPX0FERFJFU1MoMHg2ODAwNTA0OCkKKyNkZWZpbmUgT01BUDI0WFhfVkFfUkVBRFBFUk0wCQlJT19BRERSRVNTKDB4NjgwMDUwNTApCisjZGVmaW5lIE9NQVAyNFhYX1ZBX1dSSVRFUEVSTTAJCUlPX0FERFJFU1MoMHg2ODAwNTA1OCkKKworI2RlZmluZSBPTUFQMzRYWF9WQV9SRVFJTkZPUEVSTTAJSU9fQUREUkVTUygweDY4MDEyODQ4KQorI2RlZmluZSBPTUFQMzRYWF9WQV9SRUFEUEVSTTAJCUlPX0FERFJFU1MoMHg2ODAxMjg1MCkKKyNkZWZpbmUgT01BUDM0WFhfVkFfV1JJVEVQRVJNMAkJSU9fQUREUkVTUygweDY4MDEyODU4KQorI2RlZmluZSBPTUFQMzRYWF9WQV9BRERSX01BVENIMgkJSU9fQUREUkVTUygweDY4MDEyODgwKQorI2RlZmluZSBPTUFQMzRYWF9WQV9TTVNfUkdfQVRUMAkJSU9fQUREUkVTUygweDZDMDAwMDQ4KQorI2RlZmluZSBPTUFQMzRYWF9WQV9DT05UUk9MX1NUQVQJSU9fQUREUkVTUygweDQ4MDAyMkYwKQorCiAjZGVmaW5lIEdQX0RFVklDRQkJMHgzMDAKLSNkZWZpbmUgVFlQRV9NQVNLCQkweDcwMAogCiAjZGVmaW5lIFJPVU5EX0RPV04odmFsdWUsYm91bmRhcnkpCSgodmFsdWUpICYgKH4oKGJvdW5kYXJ5KS0xKSkpCiAKQEAgLTY4LDE0ICs4NywyMSBAQAogCWludCB0eXBlID0gMDsKIAogCWlmIChjcHVfaXNfb21hcDI0MngoKSkKLQkJdHlwZSA9IF9fcmF3X3JlYWRsKFZBX0NPTlRST0xfU1RBVCkgJiBUWVBFX01BU0s7CisJCXR5cGUgPSBzeXN0ZW1fcmV2ICYgT01BUDJfREVWSUNFVFlQRV9NQVNLOwogCiAJaWYgKHR5cGUgPT0gR1BfREVWSUNFKSB7CiAJCS8qIFJBTUZXOiBSL1cgYWNjZXNzIHRvIGFsbCBpbml0aWF0b3JzIGZvciBhbGwgcXVhbGlmaWVyIHNldHMgKi8KIAkJaWYgKGNwdV9pc19vbWFwMjQyeCgpKSB7Ci0JCQlfX3Jhd193cml0ZWwoMHhGRiwgVkFfUkVRSU5GT1BFUk0wKTsgLyogYWxsIHEtdmVjdHMgKi8KLQkJCV9fcmF3X3dyaXRlbCgweENGREUsIFZBX1JFQURQRVJNMCk7ICAvKiBhbGwgaS1yZWFkICovCi0JCQlfX3Jhd193cml0ZWwoMHhDRkRFLCBWQV9XUklURVBFUk0wKTsgLyogYWxsIGktd3JpdGUgKi8KKwkJCV9fcmF3X3dyaXRlbCgweEZGLCBPTUFQMjRYWF9WQV9SRVFJTkZPUEVSTTApOyAvKiBhbGwgcS12ZWN0cyAqLworCQkJX19yYXdfd3JpdGVsKDB4Q0ZERSwgT01BUDI0WFhfVkFfUkVBRFBFUk0wKTsgIC8qIGFsbCBpLXJlYWQgKi8KKwkJCV9fcmF3X3dyaXRlbCgweENGREUsIE9NQVAyNFhYX1ZBX1dSSVRFUEVSTTApOyAvKiBhbGwgaS13cml0ZSAqLworCQl9CisJCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCQkJX19yYXdfd3JpdGVsKDB4RkZGRiwgT01BUDM0WFhfVkFfUkVRSU5GT1BFUk0wKTsgLyogYWxsIHEtdmVjdHMgKi8KKwkJCV9fcmF3X3dyaXRlbCgweEZGRkYsIE9NQVAzNFhYX1ZBX1JFQURQRVJNMCk7ICAvKiBhbGwgaS1yZWFkICovCisJCQlfX3Jhd193cml0ZWwoMHhGRkZGLCBPTUFQMzRYWF9WQV9XUklURVBFUk0wKTsgLyogYWxsIGktd3JpdGUgKi8KKwkJCV9fcmF3X3dyaXRlbCgweDAsIE9NQVAzNFhYX1ZBX0FERFJfTUFUQ0gyKTsKKwkJCV9fcmF3X3dyaXRlbCgweEZGRkZGRkZGLCBPTUFQMzRYWF9WQV9TTVNfUkdfQVRUMCk7CiAJCX0KIAkJcmV0dXJuIDA7CiAJfSBlbHNlCkBAIC05MiwxOCArMTE4LDMwIEBACiB7CiAJdW5zaWduZWQgbG9uZyByZXNlcnZlZDsKIAotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkgeworCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewogCQlpZiAoaXNfc3JhbV9sb2NrZWQoKSkgewotCQkJb21hcF9zcmFtX2Jhc2UgPSBPTUFQMl9TUkFNX1BVQl9WQTsKLQkJCW9tYXBfc3JhbV9zdGFydCA9IE9NQVAyX1NSQU1fUFVCX1BBOwotCQkJb21hcF9zcmFtX3NpemUgPSAweDgwMDsgLyogMksgKi8KKwkJCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCQkJCW9tYXBfc3JhbV9iYXNlID0gT01BUDNfU1JBTV9QVUJfVkE7CisJCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDNfU1JBTV9QVUJfUEE7CisJCQkJb21hcF9zcmFtX3NpemUgPSAweDgwMDA7IC8qIDMySyAqLworCQkJfSBlbHNlIHsKKwkJCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAyX1NSQU1fUFVCX1ZBOworCQkJCW9tYXBfc3JhbV9zdGFydCA9IE9NQVAyX1NSQU1fUFVCX1BBOworCQkJCW9tYXBfc3JhbV9zaXplID0gMHg4MDA7IC8qIDJLICovCisJCQl9CiAJCX0gZWxzZSB7Ci0JCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAyX1NSQU1fVkE7Ci0JCQlvbWFwX3NyYW1fc3RhcnQgPSBPTUFQMl9TUkFNX1BBOwotCQkJaWYgKGNwdV9pc19vbWFwMjQyeCgpKQotCQkJCW9tYXBfc3JhbV9zaXplID0gMHhhMDAwMDsgLyogNjQwSyAqLwotCQkJZWxzZSBpZiAoY3B1X2lzX29tYXAyNDN4KCkpCisJCQlpZiAoY3B1X2lzX29tYXAzNHh4KCkpIHsKKwkJCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAzX1NSQU1fVkE7CisJCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDNfU1JBTV9QQTsKIAkJCQlvbWFwX3NyYW1fc2l6ZSA9IDB4MTAwMDA7IC8qIDY0SyAqLworCQkJfSBlbHNlIHsKKwkJCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAyX1NSQU1fVkE7CisJCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDJfU1JBTV9QQTsKKwkJCQlpZiAoY3B1X2lzX29tYXAyNDJ4KCkpCisJCQkJCW9tYXBfc3JhbV9zaXplID0gMHhhMDAwMDsgLyogNjQwSyAqLworCQkJCWVsc2UgaWYgKGNwdV9pc19vbWFwMjQzeCgpKQorCQkJCQlvbWFwX3NyYW1fc2l6ZSA9IDB4MTAwMDA7IC8qIDY0SyAqLworCQkJfQogCQl9CiAJfSBlbHNlIHsKIAkJb21hcF9zcmFtX2Jhc2UgPSBPTUFQMV9TUkFNX1ZBOwpAQCAtMTU3LDYgKzE5NSwxMyBAQAogCQlvbWFwX3NyYW1faW9fZGVzY1swXS5wZm4gPSBfX3BoeXNfdG9fcGZuKGJhc2UpOwogCX0KIAorCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCQlvbWFwX3NyYW1faW9fZGVzY1swXS52aXJ0dWFsID0gT01BUDNfU1JBTV9WQTsKKwkJYmFzZSA9IE9NQVAzX1NSQU1fUEE7CisJCWJhc2UgPSBST1VORF9ET1dOKGJhc2UsIFBBR0VfU0laRSk7CisJCW9tYXBfc3JhbV9pb19kZXNjWzBdLnBmbiA9IF9fcGh5c190b19wZm4oYmFzZSk7CisJfQorCiAJb21hcF9zcmFtX2lvX2Rlc2NbMF0ubGVuZ3RoID0gMTAyNCAqIDEwMjQ7CS8qIFVzZSBzZWN0aW9uIGRlc2MgKi8KIAlpb3RhYmxlX2luaXQob21hcF9zcmFtX2lvX2Rlc2MsIEFSUkFZX1NJWkUob21hcF9zcmFtX2lvX2Rlc2MpKTsKIApAQCAtMTkxLDYgKzIzNiw3IEBACiAJb21hcF9zcmFtX2NlaWwgLT0gc2l6ZTsKIAlvbWFwX3NyYW1fY2VpbCA9IFJPVU5EX0RPV04ob21hcF9zcmFtX2NlaWwsIHNpemVvZih2b2lkICopKTsKIAltZW1jcHkoKHZvaWQgKilvbWFwX3NyYW1fY2VpbCwgc3RhcnQsIHNpemUpOworCWZsdXNoX2ljYWNoZV9yYW5nZSgodW5zaWduZWQgbG9uZylzdGFydCwgKHVuc2lnbmVkIGxvbmcpKHN0YXJ0ICsgc2l6ZSkpOwogCiAJcmV0dXJuICh2b2lkICopb21hcF9zcmFtX2NlaWw7CiB9CkBAIC0yMTQsOCArMjYwLDkgQEAKIAogaW50IF9faW5pdCBvbWFwMV9zcmFtX2luaXQodm9pZCkKIHsKLQlfb21hcF9zcmFtX3JlcHJvZ3JhbV9jbG9jayA9IG9tYXBfc3JhbV9wdXNoKHNyYW1fcmVwcm9ncmFtX2Nsb2NrLAotCQkJCQkJICAgIHNyYW1fcmVwcm9ncmFtX2Nsb2NrX3N6KTsKKwlfb21hcF9zcmFtX3JlcHJvZ3JhbV9jbG9jayA9CisJCQlvbWFwX3NyYW1fcHVzaChvbWFwMV9zcmFtX3JlcHJvZ3JhbV9jbG9jaywKKwkJCQkJb21hcDFfc3JhbV9yZXByb2dyYW1fY2xvY2tfc3opOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMjQsNyArMjcxLDcgQEAKICNkZWZpbmUgb21hcDFfc3JhbV9pbml0KCkJZG8ge30gd2hpbGUgKDApCiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19BUkNIX09NQVAyCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMikgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKIAogc3RhdGljIHZvaWQgKCpfb21hcDJfc3JhbV9kZHJfaW5pdCkodTMyICpzbG93X2RsbF9jdHJsLCB1MzIgZmFzdF9kbGxfY3RybCwKIAkJCSAgICAgIHUzMiBiYXNlX2NzLCB1MzIgZm9yY2VfdW5sb2NrKTsKQEAgLTI1OSwxOSArMzA2LDEwOSBAQAogCiAJcmV0dXJuIF9vbWFwMl9zZXRfcHJjbShkcGxsX2N0cmxfdmFsLCBzZHJjX3Jmcl92YWwsIGJ5cGFzcyk7CiB9CisjZW5kaWYKIAotaW50IF9faW5pdCBvbWFwMl9zcmFtX2luaXQodm9pZCkKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMjQyMAoraW50IF9faW5pdCBvbWFwMjQyeF9zcmFtX2luaXQodm9pZCkKIHsKLQlfb21hcDJfc3JhbV9kZHJfaW5pdCA9IG9tYXBfc3JhbV9wdXNoKHNyYW1fZGRyX2luaXQsIHNyYW1fZGRyX2luaXRfc3opOworCV9vbWFwMl9zcmFtX2Rkcl9pbml0ID0gb21hcF9zcmFtX3B1c2gob21hcDI0Mnhfc3JhbV9kZHJfaW5pdCwKKwkJCQkJb21hcDI0Mnhfc3JhbV9kZHJfaW5pdF9zeik7CiAKLQlfb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYyA9IG9tYXBfc3JhbV9wdXNoKHNyYW1fcmVwcm9ncmFtX3NkcmMsCi0JCQkJCQkgICAgc3JhbV9yZXByb2dyYW1fc2RyY19zeik7Ci0JX29tYXAyX3NldF9wcmNtID0gb21hcF9zcmFtX3B1c2goc3JhbV9zZXRfcHJjbSwgc3JhbV9zZXRfcHJjbV9zeik7CisJX29tYXAyX3NyYW1fcmVwcm9ncmFtX3NkcmMgPSBvbWFwX3NyYW1fcHVzaChvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjLAorCQkJCQkgICAgb21hcDI0Mnhfc3JhbV9yZXByb2dyYW1fc2RyY19zeik7CisKKwlfb21hcDJfc2V0X3ByY20gPSBvbWFwX3NyYW1fcHVzaChvbWFwMjQyeF9zcmFtX3NldF9wcmNtLAorCQkJCQkgb21hcDI0Mnhfc3JhbV9zZXRfcHJjbV9zeik7CiAKIAlyZXR1cm4gMDsKIH0KICNlbHNlCi0jZGVmaW5lIG9tYXAyX3NyYW1faW5pdCgpCWRvIHt9IHdoaWxlICgwKQorc3RhdGljIGlubGluZSBpbnQgb21hcDI0Mnhfc3JhbV9pbml0KHZvaWQpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX09NQVAyNDMwCitpbnQgX19pbml0IG9tYXAyNDN4X3NyYW1faW5pdCh2b2lkKQoreworCV9vbWFwMl9zcmFtX2Rkcl9pbml0ID0gb21hcF9zcmFtX3B1c2gob21hcDI0M3hfc3JhbV9kZHJfaW5pdCwKKwkJCQkJb21hcDI0M3hfc3JhbV9kZHJfaW5pdF9zeik7CisKKwlfb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYyA9IG9tYXBfc3JhbV9wdXNoKG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmMsCisJCQkJCSAgICBvbWFwMjQzeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KTsKKworCV9vbWFwMl9zZXRfcHJjbSA9IG9tYXBfc3JhbV9wdXNoKG9tYXAyNDN4X3NyYW1fc2V0X3ByY20sCisJCQkJCSBvbWFwMjQzeF9zcmFtX3NldF9wcmNtX3N6KTsKKworCXJldHVybiAwOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50IG9tYXAyNDN4X3NyYW1faW5pdCh2b2lkKQoreworCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMworCitzdGF0aWMgdTMyICgqX29tYXAyX3NyYW1fcmVwcm9ncmFtX2dwbWMpKHUzMiBwZXJmX2xldmVsKTsKK3UzMiBvbWFwMl9zcmFtX3JlcHJvZ3JhbV9ncG1jKHUzMiBwZXJmX2xldmVsKQoreworCWlmICghX29tYXAyX3NyYW1fcmVwcm9ncmFtX2dwbWMpCisJCW9tYXBfc3JhbV9lcnJvcigpOworCisJcmV0dXJuIF9vbWFwMl9zcmFtX3JlcHJvZ3JhbV9ncG1jKHBlcmZfbGV2ZWwpOworfQorCitzdGF0aWMgdTMyICgqX29tYXAyX3NyYW1fY29uZmlndXJlX2NvcmVfZHBsbCkodTMyIG0sIHUzMiBuLAorCQkJCQkJdTMyIGZyZXFzZWwsIHUzMiBtMik7Cit1MzIgb21hcDJfc3JhbV9jb25maWd1cmVfY29yZV9kcGxsKHUzMiBtLCB1MzIgbiwgdTMyIGZyZXFzZWwsIHUzMiBtMikKK3sKKwlpZiAoIV9vbWFwMl9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGwpCisJCW9tYXBfc3JhbV9lcnJvcigpOworCisJcmV0dXJuIF9vbWFwMl9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGwobSwgbiwgZnJlcXNlbCwgbTIpOworfQorCisvKiBSRVZJU0lUOiBTaG91bGQgdGhpcyBiZSBzYW1lIGFzIG9tYXAzNHh4X3NyYW1faW5pdCgpIGFmdGVyIG9mZi1pZGxlPyAqLwordm9pZCByZXN0b3JlX3NyYW1fZnVuY3Rpb25zKHZvaWQpCit7CisJb21hcF9zcmFtX2NlaWwgPSBvbWFwX3NyYW1fYmFzZSArIG9tYXBfc3JhbV9zaXplOworCisJX29tYXAyX3NyYW1fcmVwcm9ncmFtX2dwbWMgPSBvbWFwX3NyYW1fcHVzaChvbWFwMzR4eF9zcmFtX3JlcHJvZ3JhbV9ncG1jLAorCQlvbWFwMzR4eF9zcmFtX3JlcHJvZ3JhbV9ncG1jX3N6KTsKKworCV9vbWFwMl9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGwgPQorCQkJb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9jb25maWd1cmVfY29yZV9kcGxsLAorCQkJCQlvbWFwMzR4eF9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGxfc3opOworfQorCitpbnQgX19pbml0IG9tYXAzNHh4X3NyYW1faW5pdCh2b2lkKQoreworCV9vbWFwMl9zcmFtX2Rkcl9pbml0ID0gb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9kZHJfaW5pdCwKKwkJCQkJb21hcDM0eHhfc3JhbV9kZHJfaW5pdF9zeik7CisKKwlfb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYyA9IG9tYXBfc3JhbV9wdXNoKG9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX3NkcmMsCisJCQkJCW9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX3NkcmNfc3opOworCisJX29tYXAyX3NldF9wcmNtID0gb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9zZXRfcHJjbSwKKwkJCQkJb21hcDM0eHhfc3JhbV9zZXRfcHJjbV9zeik7CisKKwlfb21hcDJfc3JhbV9yZXByb2dyYW1fZ3BtYyA9IG9tYXBfc3JhbV9wdXNoKG9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX2dwbWMsCisJCQkJCW9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX2dwbWNfc3opOworCisJX29tYXAyX3NyYW1fY29uZmlndXJlX2NvcmVfZHBsbCA9CisJCQkJb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9jb25maWd1cmVfY29yZV9kcGxsLAorCQkJCQlvbWFwMzR4eF9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGxfc3opOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgb21hcDM0eHhfc3JhbV9pbml0KHZvaWQpCit7CisJcmV0dXJuIDA7Cit9CiAjZW5kaWYKIAogaW50IF9faW5pdCBvbWFwX3NyYW1faW5pdCh2b2lkKQpAQCAtMjc5LDEwICs0MTYsMTQgQEAKIAlvbWFwX2RldGVjdF9zcmFtKCk7CiAJb21hcF9tYXBfc3JhbSgpOwogCi0JaWYgKCFjcHVfaXNfb21hcDI0eHgoKSkKKwlpZiAoIShjcHVfY2xhc3NfaXNfb21hcDIoKSkpCiAJCW9tYXAxX3NyYW1faW5pdCgpOwotCWVsc2UKLQkJb21hcDJfc3JhbV9pbml0KCk7CisJZWxzZSBpZiAoY3B1X2lzX29tYXAyNDJ4KCkpCisJCW9tYXAyNDJ4X3NyYW1faW5pdCgpOworCWVsc2UgaWYgKGNwdV9pc19vbWFwMjQzMCgpKQorCQlvbWFwMjQzeF9zcmFtX2luaXQoKTsKKwllbHNlIGlmIChjcHVfaXNfb21hcDM0eHgoKSkKKwkJb21hcDM0eHhfc3JhbV9pbml0KCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC91c2IuYyBiL2FyY2gvYXJtL3BsYXQtb21hcC91c2IuYwppbmRleCBhNjE5NDc1Li4yNjk5YzE2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9tYXAvdXNiLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL3VzYi5jCkBAIC0xLDQgKzEsNCBAQAotLyoKKyAvKgogICogYXJjaC9hcm0vcGxhdC1vbWFwL3VzYi5jIC0tIHBsYXRmb3JtIGxldmVsIFVTQiBpbml0aWFsaXphdGlvbgogICoKICAqIENvcHlyaWdodCAoQykgMjAwNCBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgpAQCAtMTU2LDggKzE1NiwxMiBAQAogCiAJaWYgKG53aXJlcyA9PSAwKSB7CiAJCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSAmJiAhY3B1X2lzX29tYXAxNXh4KCkpIHsKKwkJCXUzMiBsOworCiAJCQkvKiBwdWxsZG93biBEKy9ELSAqLwotCQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHICY9IH4oMyA8PCAxKTsKKwkJCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJCWwgJj0gfigzIDw8IDEpOworCQkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOwogCQl9CiAJCXJldHVybiAwOwogCX0KQEAgLTE3MSw2ICsxNzUsOCBAQAogCiAJLyogaW50ZXJuYWwgdHJhbnNjZWl2ZXIgKHVuYXZhaWxhYmxlIG9uIDE3eHgsIDI0eHgpICovCiAJaWYgKCFjcHVfY2xhc3NfaXNfb21hcDIoKSAmJiBud2lyZXMgPT0gMikgeworCQl1MzIgbDsKKwogCQkvLyBvbWFwX2NmZ19yZWcoUDlfVVNCX0RQKTsKIAkJLy8gb21hcF9jZmdfcmVnKFI4X1VTQl9ETSk7CiAKQEAgLTE4NSw5ICsxOTEsMTEgQEAKIAkJICogIC0gT1RHIHN1cHBvcnQgb24gdGhpcyBwb3J0IG5vdCB5ZXQgd3JpdHRlbgogCQkgKi8KIAotCQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcgJj0gfig3IDw8IDQpOworCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCWwgJj0gfig3IDw8IDQpOwogCQlpZiAoIWlzX2RldmljZSkKLQkJCVVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyB8PSAoMyA8PCAxKTsKKwkJCWwgfD0gKDMgPDwgMSk7CisJCW9tYXBfd3JpdGVsKGwsIFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKIAogCQlyZXR1cm4gMyA8PCAxNjsKIAl9CkBAIC0yMTcsOCArMjI1LDEzIEBACiAJICogd2l0aCBWQlVTIHN3aXRjaGluZyBhbmQgb3ZlcmN1cnJlbnQgZGV0ZWN0aW9uLgogCSAqLwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmIG53aXJlcyAhPSA2KQotCQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcgJj0gfkNPTkZfVVNCMl9VTklfUjsKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkgJiYgbndpcmVzICE9IDYpIHsKKwkJdTMyIGw7CisKKwkJbCA9IG9tYXBfcmVhZGwoVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCQlsICY9IH5DT05GX1VTQjJfVU5JX1I7CisJCW9tYXBfd3JpdGVsKGwsIFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwl9CiAKIAlzd2l0Y2ggKG53aXJlcykgewogCWNhc2UgMzoKQEAgLTIzOCw5ICsyNTEsMTMgQEAKIAkJCW9tYXBfY2ZnX3JlZyhLMjBfMjRYWF9VU0IwX1ZNKTsKIAkJCW9tYXAyX3VzYl9kZXZjb25mX3NldCgwLCBVU0JfVU5JRElSKTsKIAkJfSBlbHNlIHsKKwkJCXUzMiBsOworCiAJCQlvbWFwX2NmZ19yZWcoQUE5X1VTQjBfVlApOwogCQkJb21hcF9jZmdfcmVnKFI5X1VTQjBfVk0pOwotCQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHIHw9IENPTkZfVVNCMl9VTklfUjsKKwkJCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJCWwgfD0gQ09ORl9VU0IyX1VOSV9SOworCQkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOwogCQl9CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC0yNTQsOCArMjcxLDEzIEBACiB7CiAJdTMyCXN5c2NvbjEgPSAwOwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSAmJiBud2lyZXMgIT0gNikKLQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHICY9IH5DT05GX1VTQjFfVU5JX1I7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSAmJiBud2lyZXMgIT0gNikgeworCQl1MzIgbDsKKworCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCWwgJj0gfkNPTkZfVVNCMV9VTklfUjsKKwkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCX0KIAlpZiAoY3B1X2lzX29tYXAyNHh4KCkpCiAJCW9tYXAyX3VzYl9kZXZjb25mX2NsZWFyKDEsIFVTQl9CSURJUl9UTEwpOwogCkBAIC0zMTYsOCArMzM4LDEzIEBACiAJCXN5c2NvbjEgPSAzOwogCQlvbWFwX2NmZ19yZWcoVVNCMV9WUCk7CiAJCW9tYXBfY2ZnX3JlZyhVU0IxX1ZNKTsKLQkJaWYgKCFjcHVfaXNfb21hcDE1eHgoKSkKLQkJCVVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyB8PSBDT05GX1VTQjFfVU5JX1I7CisJCWlmICghY3B1X2lzX29tYXAxNXh4KCkpIHsKKwkJCXUzMiBsOworCisJCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCQlsIHw9IENPTkZfVVNCMV9VTklfUjsKKwkJCW9tYXBfd3JpdGVsKGwsIFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJfQogCQlicmVhazsKIAlkZWZhdWx0OgogYmFkOgpAQCAtMzQwLDggKzM2NywxMyBAQAogCWlmIChhbHRfcGluZ3JvdXAgfHwgbndpcmVzID09IDApCiAJCXJldHVybiAwOwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSAmJiBud2lyZXMgIT0gNikKLQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHICY9IH5DT05GX1VTQjJfVU5JX1I7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSAmJiBud2lyZXMgIT0gNikgeworCQl1MzIgbDsKKworCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCWwgJj0gfkNPTkZfVVNCMl9VTklfUjsKKwkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCX0KIAogCS8qIGV4dGVybmFsIHRyYW5zY2VpdmVyICovCiAJaWYgKGNwdV9pc19vbWFwMTV4eCgpKSB7CkBAIC00MTAsOSArNDQyLDEzIEBACiAJCQlvbWFwX2NmZ19yZWcoVVNCMl9WUCk7CiAJCQlvbWFwX2NmZ19yZWcoVVNCMl9WTSk7CiAJCX0gZWxzZSB7CisJCQl1MzIgbDsKKwogCQkJb21hcF9jZmdfcmVnKEFBOV9VU0IyX1ZQKTsKIAkJCW9tYXBfY2ZnX3JlZyhSOV9VU0IyX1ZNKTsKLQkJCVVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyB8PSBDT05GX1VTQjJfVU5JX1I7CisJCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCQlsIHw9IENPTkZfVVNCMl9VTklfUjsKKwkJCW9tYXBfd3JpdGVsKGwsIFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKIAkJfQogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtNTMxLDEwICs1NjcsNiBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jZGVmaW5lIFVMUERfQ0xPQ0tfQ1RSTF9SRUcJX19SRUcxNihVTFBEX0NMT0NLX0NUUkwpCi0jZGVmaW5lIFVMUERfU09GVF9SRVFfUkVHCV9fUkVHMTYoVUxQRF9TT0ZUX1JFUSkKLQotCiAvLyBGSVhNRSBjb3JyZWN0IGFuc3dlciBkZXBlbmRzIG9uIGhtY19tb2RlLAogLy8gYXMgZG9lcyAob24gb21hcDEpIGFueSBub256ZXJvIHZhbHVlIGZvciBjb25maWctPm90ZyBwb3J0IG51bWJlcgogI2lmZGVmCUNPTkZJR19VU0JfR0FER0VUX09NQVAKQEAgLTU1MCwxNyArNTgyLDE3IEBACiB2b2lkIF9faW5pdAogb21hcF9vdGdfaW5pdChzdHJ1Y3Qgb21hcF91c2JfY29uZmlnICpjb25maWcpCiB7Ci0JdTMyCQlzeXNjb24gPSBPVEdfU1lTQ09OXzFfUkVHICYgMHhmZmZmOworCXUzMgkJc3lzY29uOwogCWludAkJc3RhdHVzOwogCWludAkJYWx0X3Bpbmdyb3VwID0gMDsKIAogCS8qIE5PVEU6ICBubyBidXMgb3IgY2xvY2sgc2V0dXAgKHlldD8pICovCiAKLQlzeXNjb24gPSBPVEdfU1lTQ09OXzFfUkVHICYgMHhmZmZmOworCXN5c2NvbiA9IG9tYXBfcmVhZGwoT1RHX1NZU0NPTl8xKSAmIDB4ZmZmZjsKIAlpZiAoIShzeXNjb24gJiBPVEdfUkVTRVRfRE9ORSkpCiAJCXByX2RlYnVnKCJVU0IgcmVzZXRzIG5vdCBjb21wbGV0ZT9cbiIpOwogCi0JLy8gT1RHX0lSUV9FTl9SRUcgPSAwOworCS8vb21hcF93cml0ZXcoMCwgT1RHX0lSUV9FTik7CiAKIAkvKiBwaW4gbXV4aW5nIGFuZCB0cmFuc2NlaXZlciBwaW5vdXRzICovCiAJaWYgKGNvbmZpZy0+cGluc1swXSA+IDIpCS8qIGFsdCBwaW5ncm91cCAyICovCkBAIC01NjgsOCArNjAwLDggQEAKIAlzeXNjb24gfD0gb21hcF91c2IwX2luaXQoY29uZmlnLT5waW5zWzBdLCBpc191c2IwX2RldmljZShjb25maWcpKTsKIAlzeXNjb24gfD0gb21hcF91c2IxX2luaXQoY29uZmlnLT5waW5zWzFdKTsKIAlzeXNjb24gfD0gb21hcF91c2IyX2luaXQoY29uZmlnLT5waW5zWzJdLCBhbHRfcGluZ3JvdXApOwotCXByX2RlYnVnKCJPVEdfU1lTQ09OXzFfUkVHID0gJTA4eFxuIiwgc3lzY29uKTsKLQlPVEdfU1lTQ09OXzFfUkVHID0gc3lzY29uOworCXByX2RlYnVnKCJPVEdfU1lTQ09OXzEgPSAlMDh4XG4iLCBvbWFwX3JlYWRsKE9UR19TWVNDT05fMSkpOworCW9tYXBfd3JpdGVsKHN5c2NvbiwgT1RHX1NZU0NPTl8xKTsKIAogCXN5c2NvbiA9IGNvbmZpZy0+aG1jX21vZGU7CiAJc3lzY29uIHw9IFVTQlhfU1lOQ0hSTyB8ICg0IDw8IDE2KSAvKiBCX0FTRTBfQlJTVCAqLzsKQEAgLTU3OCw5ICs2MTAsMTAgQEAKIAkJc3lzY29uIHw9IE9UR19FTjsKICNlbmRpZgogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkKLQkJcHJfZGVidWcoIlVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyA9ICUwM3hcbiIsIFVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyk7Ci0JcHJfZGVidWcoIk9UR19TWVNDT05fMl9SRUcgPSAlMDh4XG4iLCBzeXNjb24pOwotCU9UR19TWVNDT05fMl9SRUcgPSBzeXNjb247CisJCXByX2RlYnVnKCJVU0JfVFJBTlNDRUlWRVJfQ1RSTCA9ICUwM3hcbiIsCisJCQkgb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCkpOworCXByX2RlYnVnKCJPVEdfU1lTQ09OXzIgPSAlMDh4XG4iLCBvbWFwX3JlYWRsKE9UR19TWVNDT05fMikpOworCW9tYXBfd3JpdGVsKHN5c2NvbiwgT1RHX1NZU0NPTl8yKTsKIAogCXByaW50aygiVVNCOiBobWMgJWQiLCBjb25maWctPmhtY19tb2RlKTsKIAlpZiAoIWFsdF9waW5ncm91cCkKQEAgLTU5NywxMiArNjMwLDE5IEBACiAJcHJpbnRrKCJcbiIpOwogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7CisJCXUxNiB3OworCiAJCS8qIGxlYXZlIFVTQiBjbG9ja3MvY29udHJvbGxlcnMgb2ZmIHVudGlsIG5lZWRlZCAqLwotCQlVTFBEX1NPRlRfUkVRX1JFRyAmPSB+U09GVF9VU0JfQ0xLX1JFUTsKLQkJVUxQRF9DTE9DS19DVFJMX1JFRyAmPSB+VVNCX01DTEtfRU47Ci0JCVVMUERfQ0xPQ0tfQ1RSTF9SRUcgfD0gRElTX1VTQl9QVkNJX0NMSzsKKwkJdyA9IG9tYXBfcmVhZHcoVUxQRF9TT0ZUX1JFUSk7CisJCXcgJj0gflNPRlRfVVNCX0NMS19SRVE7CisJCW9tYXBfd3JpdGV3KHcsIFVMUERfU09GVF9SRVEpOworCisJCXcgPSBvbWFwX3JlYWR3KFVMUERfQ0xPQ0tfQ1RSTCk7CisJCXcgJj0gflVTQl9NQ0xLX0VOOworCQl3IHw9IERJU19VU0JfUFZDSV9DTEs7CisJCW9tYXBfd3JpdGV3KHcsIFVMUERfQ0xPQ0tfQ1RSTCk7CiAJfQotCXN5c2NvbiA9IE9UR19TWVNDT05fMV9SRUc7CisJc3lzY29uID0gb21hcF9yZWFkbChPVEdfU1lTQ09OXzEpOwogCXN5c2NvbiB8PSBIU1RfSURMRV9FTnxERVZfSURMRV9FTnxPVEdfSURMRV9FTjsKIAogI2lmZGVmCUNPTkZJR19VU0JfR0FER0VUX09NQVAKQEAgLTYzOSw4ICs2NzksOCBAQAogCQkJcHJfZGVidWcoImNhbid0IHJlZ2lzdGVyIE9URyBkZXZpY2UsICVkXG4iLCBzdGF0dXMpOwogCX0KICNlbmRpZgotCXByX2RlYnVnKCJPVEdfU1lTQ09OXzFfUkVHID0gJTA4eFxuIiwgc3lzY29uKTsKLQlPVEdfU1lTQ09OXzFfUkVHID0gc3lzY29uOworCXByX2RlYnVnKCJPVEdfU1lTQ09OXzEgPSAlMDh4XG4iLCBvbWFwX3JlYWRsKE9UR19TWVNDT05fMSkpOworCW9tYXBfd3JpdGVsKHN5c2NvbiwgT1RHX1NZU0NPTl8xKTsKIAogCXN0YXR1cyA9IDA7CiB9CkBAIC02NTMsMTggKzY5MywxOSBAQAogCiAjaWZkZWYJQ09ORklHX0FSQ0hfT01BUDE1WFgKIAotI2RlZmluZSBVTFBEX0RQTExfQ1RSTF9SRUcJX19SRUcxNihVTFBEX0RQTExfQ1RSTCkKKy8qIFVMUERfRFBMTF9DVFJMICovCiAjZGVmaW5lIERQTExfSU9CCQkoMSA8PCAxMykKICNkZWZpbmUgRFBMTF9QTExfRU5BQkxFCQkoMSA8PCA0KQogI2RlZmluZSBEUExMX0xPQ0sJCSgxIDw8IDApCiAKLSNkZWZpbmUgVUxQRF9BUExMX0NUUkxfUkVHCV9fUkVHMTYoVUxQRF9BUExMX0NUUkwpCisvKiBVTFBEX0FQTExfQ1RSTCAqLwogI2RlZmluZSBBUExMX05EUExMX1NXSVRDSAkoMSA8PCAwKQogCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBvbWFwXzE1MTBfdXNiX2luaXQoc3RydWN0IG9tYXBfdXNiX2NvbmZpZyAqY29uZmlnKQogewogCXVuc2lnbmVkIGludCB2YWw7CisJdTE2IHc7CiAKIAlvbWFwX3VzYjBfaW5pdChjb25maWctPnBpbnNbMF0sIGlzX3VzYjBfZGV2aWNlKGNvbmZpZykpOwogCW9tYXBfdXNiMV9pbml0KGNvbmZpZy0+cGluc1sxXSk7CkBAIC02ODUsMTIgKzcyNiwyMiBAQAogCXByaW50aygiXG4iKTsKIAogCS8qIHVzZSBEUExMIGZvciA0OCBNSHogZnVuY3Rpb24gY2xvY2sgKi8KLQlwcl9kZWJ1ZygiQVBMTCAlMDR4IERQTEwgJTA0eCBSRVEgJTA0eFxuIiwgVUxQRF9BUExMX0NUUkxfUkVHLAotCQkJVUxQRF9EUExMX0NUUkxfUkVHLCBVTFBEX1NPRlRfUkVRX1JFRyk7Ci0JVUxQRF9BUExMX0NUUkxfUkVHICY9IH5BUExMX05EUExMX1NXSVRDSDsKLQlVTFBEX0RQTExfQ1RSTF9SRUcgfD0gRFBMTF9JT0IgfCBEUExMX1BMTF9FTkFCTEU7Ci0JVUxQRF9TT0ZUX1JFUV9SRUcgfD0gU09GVF9VRENfUkVRIHwgU09GVF9EUExMX1JFUTsKLQl3aGlsZSAoIShVTFBEX0RQTExfQ1RSTF9SRUcgJiBEUExMX0xPQ0spKQorCXByX2RlYnVnKCJBUExMICUwNHggRFBMTCAlMDR4IFJFUSAlMDR4XG4iLCBvbWFwX3JlYWR3KFVMUERfQVBMTF9DVFJMKSwKKwkJCW9tYXBfcmVhZHcoVUxQRF9EUExMX0NUUkwpLCBvbWFwX3JlYWR3KFVMUERfU09GVF9SRVEpKTsKKworCXcgPSBvbWFwX3JlYWR3KFVMUERfQVBMTF9DVFJMKTsKKwl3ICY9IH5BUExMX05EUExMX1NXSVRDSDsKKwlvbWFwX3dyaXRldyh3LCBVTFBEX0FQTExfQ1RSTCk7CisKKwl3ID0gb21hcF9yZWFkdyhVTFBEX0RQTExfQ1RSTCk7CisJdyB8PSBEUExMX0lPQiB8IERQTExfUExMX0VOQUJMRTsKKwlvbWFwX3dyaXRldyh3LCBVTFBEX0RQTExfQ1RSTCk7CisKKwl3ID0gb21hcF9yZWFkdyhVTFBEX1NPRlRfUkVRKTsKKwl3IHw9IFNPRlRfVURDX1JFUSB8IFNPRlRfRFBMTF9SRVE7CisJb21hcF93cml0ZXcodywgVUxQRF9TT0ZUX1JFUSk7CisKKwl3aGlsZSAoIShvbWFwX3JlYWR3KFVMUERfRFBMTF9DVFJMKSAmIERQTExfTE9DSykpCiAJCWNwdV9yZWxheCgpOwogCiAjaWZkZWYJQ09ORklHX1VTQl9HQURHRVRfT01BUApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vcmlvbi9pcnEuYyBiL2FyY2gvYXJtL3BsYXQtb3Jpb24vaXJxLmMKaW5kZXggYzViNjY5ZC4uZmU2NmExOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1vcmlvbi9pcnEuYworKysgYi9hcmNoL2FybS9wbGF0LW9yaW9uL2lycS5jCkBAIC0zNiw4ICszNiw4IEBACiAKIHN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgb3Jpb25faXJxX2NoaXAgPSB7CiAJLm5hbWUJCT0gIm9yaW9uX2lycSIsCi0JLmFjawkJPSBvcmlvbl9pcnFfbWFzaywKIAkubWFzawkJPSBvcmlvbl9pcnFfbWFzaywKKwkubWFza19hY2sJPSBvcmlvbl9pcnFfbWFzaywKIAkudW5tYXNrCQk9IG9yaW9uX2lycV91bm1hc2ssCiB9OwogCkBAIC01OSw2ICs1OSw3IEBACiAJCXNldF9pcnFfY2hpcChpcnEsICZvcmlvbl9pcnFfY2hpcCk7CiAJCXNldF9pcnFfY2hpcF9kYXRhKGlycSwgbWFza2FkZHIpOwogCQlzZXRfaXJxX2hhbmRsZXIoaXJxLCBoYW5kbGVfbGV2ZWxfaXJxKTsKKwkJaXJxX2Rlc2NbaXJxXS5zdGF0dXMgfD0gSVJRX0xFVkVMOwogCQlzZXRfaXJxX2ZsYWdzKGlycSwgSVJRRl9WQUxJRCk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vcmlvbi9wY2llLmMgYi9hcmNoL2FybS9wbGF0LW9yaW9uL3BjaWUuYwppbmRleCBhYmZkYTUzLi5jYTMyYzYwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9yaW9uL3BjaWUuYworKysgYi9hcmNoL2FybS9wbGF0LW9yaW9uL3BjaWUuYwpAQCAtMzksNiArMzksNyBAQAogI2RlZmluZSBQQ0lFX0NPTkZfREFUQV9PRkYJMHgxOGZjCiAjZGVmaW5lIFBDSUVfTUFTS19PRkYJCTB4MTkxMAogI2RlZmluZSBQQ0lFX0NUUkxfT0ZGCQkweDFhMDAKKyNkZWZpbmUgIFBDSUVfQ1RSTF9YMV9NT0RFCQkweDAwMDEKICNkZWZpbmUgUENJRV9TVEFUX09GRgkJMHgxYTA0CiAjZGVmaW5lICBQQ0lFX1NUQVRfREVWX09GRlMJCTIwCiAjZGVmaW5lICBQQ0lFX1NUQVRfREVWX01BU0sJCTB4MWYKQEAgLTYyLDYgKzYzLDExIEBACiAJcmV0dXJuICEocmVhZGwoYmFzZSArIFBDSUVfU1RBVF9PRkYpICYgUENJRV9TVEFUX0xJTktfRE9XTik7CiB9CiAKK2ludCBfX2luaXQgb3Jpb25fcGNpZV94NF9tb2RlKHZvaWQgX19pb21lbSAqYmFzZSkKK3sKKwlyZXR1cm4gIShyZWFkbChiYXNlICsgUENJRV9DVFJMX09GRikgJiBQQ0lFX0NUUkxfWDFfTU9ERSk7Cit9CisKIGludCBvcmlvbl9wY2llX2dldF9sb2NhbF9idXNfbnIodm9pZCBfX2lvbWVtICpiYXNlKQogewogCXUzMiBzdGF0ID0gcmVhZGwoYmFzZSArIFBDSUVfU1RBVF9PRkYpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vcmlvbi90aW1lLmMgYi9hcmNoL2FybS9wbGF0LW9yaW9uL3RpbWUuYwppbmRleCAyOGI1Mjg1Li45M2M0ZWY5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9yaW9uL3RpbWUuYworKysgYi9hcmNoL2FybS9wbGF0LW9yaW9uL3RpbWUuYwpAQCAtNzQsNyArNzQsNyBAQAogCS8qCiAJICogQ2xlYXIgYW5kIGVuYWJsZSBjbG9ja2V2ZW50IHRpbWVyIGludGVycnVwdC4KIAkgKi8KLQl3cml0ZWwofkJSSURHRV9JTlRfVElNRVIxLCBCUklER0VfQ0FVU0UpOworCXdyaXRlbChCUklER0VfSU5UX1RJTUVSMV9DTFIsIEJSSURHRV9DQVVTRSk7CiAKIAl1ID0gcmVhZGwoQlJJREdFX01BU0spOwogCXUgfD0gQlJJREdFX0lOVF9USU1FUjE7CkBAIC0xMzgsNyArMTM4LDcgQEAKIAkJLyoKIAkJICogQUNLIHBlbmRpbmcgdGltZXIgaW50ZXJydXB0LgogCQkgKi8KLQkJd3JpdGVsKH5CUklER0VfSU5UX1RJTUVSMSwgQlJJREdFX0NBVVNFKTsKKwkJd3JpdGVsKEJSSURHRV9JTlRfVElNRVIxX0NMUiwgQlJJREdFX0NBVVNFKTsKIAogCX0KIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CkBAIC0xNTksNyArMTU5LDcgQEAKIAkvKgogCSAqIEFDSyB0aW1lciBpbnRlcnJ1cHQgYW5kIGNhbGwgZXZlbnQgaGFuZGxlci4KIAkgKi8KLQl3cml0ZWwofkJSSURHRV9JTlRfVElNRVIxLCBCUklER0VfQ0FVU0UpOworCXdyaXRlbChCUklER0VfSU5UX1RJTUVSMV9DTFIsIEJSSURHRV9DQVVTRSk7CiAJb3Jpb25fY2xrZXZ0LmV2ZW50X2hhbmRsZXIoJm9yaW9uX2Nsa2V2dCk7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvS2NvbmZpZyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9LY29uZmlnCmluZGV4IGI2NmZiM2MuLjVlMjhjMjEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9LY29uZmlnCkBAIC05LDYgKzksNyBAQAogCWRlcGVuZHMgb24gQVJDSF9TM0MyNDEwCiAJZGVmYXVsdCB5IGlmIEFSQ0hfUzNDMjQxMAogCXNlbGVjdCBOT19JT1BPUlQKKwlzZWxlY3QgSEFWRV9HUElPX0xJQgogCWhlbHAKIAkgIEJhc2UgcGxhdGZvcm0gY29kZSBmb3IgYW55IFNhbXN1bmcgUzNDMjRYWCBkZXZpY2UKIApAQCAtMjAsNiArMjEsMTMgQEAKIAloZWxwCiAJICBTdXBwb3J0IGZvciBTM0MyNDQwIGFuZCBTM0MyNDQyIFNhbXN1bmcgTW9iaWxlIENQVSBiYXNlZCBzeXN0ZW1zLgogCitjb25maWcgUzNDMjRYWF9QV00KKwlib29sICJQV00gZGV2aWNlIHN1cHBvcnQiCisJc2VsZWN0IEhBVkVfUFdNCisJaGVscAorCSAgU3VwcG9ydCBmb3IgZXhwb3J0aW5nIHRoZSBQV00gdGltZXIgYmxvY2tzIHZpYSB0aGUgcHdtIGRldmljZQorCSAgc3lzdGVtLgorCiBjb25maWcgUE1fU0lNVEVDCiAJYm9vbAogCWhlbHAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9NYWtlZmlsZSBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9NYWtlZmlsZQppbmRleCAxMzFkMjAyLi5kODI3NjdiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L01ha2VmaWxlCkBAIC0xNiw4ICsxNiwxMCBAQAogb2JqLXkJCQkJKz0gaXJxLm8KIG9iai15CQkJCSs9IGRldnMubwogb2JqLXkJCQkJKz0gZ3Bpby5vCitvYmoteQkJCQkrPSBncGlvbGliLm8KIG9iai15CQkJCSs9IHRpbWUubwogb2JqLXkJCQkJKz0gY2xvY2subworb2JqLXkJCQkJKz0gcHdtLWNsb2NrLm8KIAogIyBBcmNoaXRlY3R1cmUgZGVwZW5kYW50IGJ1aWxkcwogCkBAIC0yNyw1ICsyOSw2IEBACiBvYmotJChDT05GSUdfUE1fU0lNVEVDKQkJKz0gcG0tc2ltdGVjLm8KIG9iai0kKENPTkZJR19QTSkJCSs9IHBtLm8KIG9iai0kKENPTkZJR19QTSkJCSs9IHNsZWVwLm8KK29iai0kKENPTkZJR19IQVZFX1BXTSkJCSs9IHB3bS5vCiBvYmotJChDT05GSUdfUzNDMjQxMF9ETUEpCSs9IGRtYS5vCiBvYmotJChDT05GSUdfTUFDSF9TTURLKQkJKz0gY29tbW9uLXNtZGsubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2RldnMuYyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9kZXZzLmMKaW5kZXggZTU0NmU5My4uZWVhM2IzMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2RldnMuYworKysgYi9hcmNoL2FybS9wbGF0LXMzYzI0eHgvZGV2cy5jCkBAIC00OTUsMTA2ICs0OTUsNiBAQAogCiBFWFBPUlRfU1lNQk9MKHMzY19kZXZpY2Vfc3BpMSk7CiAKLS8qIHB3bSB0aW1lciBibG9ja3MgKi8KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzM2NfdGltZXIwX3Jlc291cmNlW10gPSB7Ci0JWzBdID0gewotCQkuc3RhcnQgPSBTM0MyNFhYX1BBX1RJTUVSICsgMHgwQywKLQkJLmVuZCAgID0gUzNDMjRYWF9QQV9USU1FUiArIDB4MEMgKyAweEIsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JWzFdID0gewotCQkuc3RhcnQgPSBJUlFfVElNRVIwLAotCQkuZW5kICAgPSBJUlFfVElNRVIwLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKLQl9Ci0KLX07Ci0KLXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcjAgPSB7Ci0JLm5hbWUJCSAgPSAiczNjMjQxMC10aW1lciIsCi0JLmlkCQkgID0gMCwKLQkubnVtX3Jlc291cmNlcwkgID0gQVJSQVlfU0laRShzM2NfdGltZXIwX3Jlc291cmNlKSwKLQkucmVzb3VyY2UJICA9IHMzY190aW1lcjBfcmVzb3VyY2UsCi19OwotCi1FWFBPUlRfU1lNQk9MKHMzY19kZXZpY2VfdGltZXIwKTsKLQotLyogdGltZXIgMSAqLwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHMzY190aW1lcjFfcmVzb3VyY2VbXSA9IHsKLQlbMF0gPSB7Ci0JCS5zdGFydCA9IFMzQzI0WFhfUEFfVElNRVIgKyAweDE4LAotCQkuZW5kICAgPSBTM0MyNFhYX1BBX1RJTUVSICsgMHgyMywKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQlbMV0gPSB7Ci0JCS5zdGFydCA9IElSUV9USU1FUjEsCi0JCS5lbmQgICA9IElSUV9USU1FUjEsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAotCX0KLQotfTsKLQotc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyMSA9IHsKLQkubmFtZQkJICA9ICJzM2MyNDEwLXRpbWVyIiwKLQkuaWQJCSAgPSAxLAotCS5udW1fcmVzb3VyY2VzCSAgPSBBUlJBWV9TSVpFKHMzY190aW1lcjFfcmVzb3VyY2UpLAotCS5yZXNvdXJjZQkgID0gczNjX3RpbWVyMV9yZXNvdXJjZSwKLX07Ci0KLUVYUE9SVF9TWU1CT0woczNjX2RldmljZV90aW1lcjEpOwotCi0vKiB0aW1lciAyICovCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgczNjX3RpbWVyMl9yZXNvdXJjZVtdID0gewotCVswXSA9IHsKLQkJLnN0YXJ0ID0gUzNDMjRYWF9QQV9USU1FUiArIDB4MjQsCi0JCS5lbmQgICA9IFMzQzI0WFhfUEFfVElNRVIgKyAweDJGLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCVsxXSA9IHsKLQkJLnN0YXJ0ID0gSVJRX1RJTUVSMiwKLQkJLmVuZCAgID0gSVJRX1RJTUVSMiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCi0JfQotCi19OwotCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXIyID0gewotCS5uYW1lCQkgID0gInMzYzI0MTAtdGltZXIiLAotCS5pZAkJICA9IDIsCi0JLm51bV9yZXNvdXJjZXMJICA9IEFSUkFZX1NJWkUoczNjX3RpbWVyMl9yZXNvdXJjZSksCi0JLnJlc291cmNlCSAgPSBzM2NfdGltZXIyX3Jlc291cmNlLAotfTsKLQotRVhQT1JUX1NZTUJPTChzM2NfZGV2aWNlX3RpbWVyMik7Ci0KLS8qIHRpbWVyIDMgKi8KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzM2NfdGltZXIzX3Jlc291cmNlW10gPSB7Ci0JWzBdID0gewotCQkuc3RhcnQgPSBTM0MyNFhYX1BBX1RJTUVSICsgMHgzMCwKLQkJLmVuZCAgID0gUzNDMjRYWF9QQV9USU1FUiArIDB4M0IsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JWzFdID0gewotCQkuc3RhcnQgPSBJUlFfVElNRVIzLAotCQkuZW5kICAgPSBJUlFfVElNRVIzLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKLQl9Ci0KLX07Ci0KLXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcjMgPSB7Ci0JLm5hbWUJCSAgPSAiczNjMjQxMC10aW1lciIsCi0JLmlkCQkgID0gMywKLQkubnVtX3Jlc291cmNlcwkgID0gQVJSQVlfU0laRShzM2NfdGltZXIzX3Jlc291cmNlKSwKLQkucmVzb3VyY2UJICA9IHMzY190aW1lcjNfcmVzb3VyY2UsCi19OwotCi1FWFBPUlRfU1lNQk9MKHMzY19kZXZpY2VfdGltZXIzKTsKLQogI2lmZGVmIENPTkZJR19DUFVfUzNDMjQ0MAogCiAvKiBDYW1pZiBDb250cm9sbGVyICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvZ3Bpb2xpYi5jIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2dwaW9saWIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjVkOGQwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2dwaW9saWIuYwpAQCAtMCwwICsxLDI1OSBAQAorLyogbGludXgvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2dwaW9saWIuYworICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CisgKgorICogUzNDMjRYWCBHUElPbGliIHN1cHBvcnQKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCisqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisKK3N0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCB7CisJc3RydWN0IGdwaW9fY2hpcAljaGlwOworCXZvaWQgX19pb21lbQkJKmJhc2U7Cit9OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCAqdG9fczNjX2NoaXAoc3RydWN0IGdwaW9fY2hpcCAqZ3BjKQoreworCXJldHVybiBjb250YWluZXJfb2YoZ3BjLCBzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAsIGNoaXApOworfQorCisvKiB0aGVzZSByb3V0aW5lcyBhcmUgZXhwb3J0ZWQgZm9yIHVzZSBieSBvdGhlciBwYXJ0cyBvZiB0aGUgcGxhdGZvcm0KKyAqIGFuZCBzeXN0ZW0gc3VwcG9ydCwgYnV0IGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBieSB0aGUKKyAqIGRyaXZlcnMgdGhlbXNldmxlcy4KKyAqLworCitpbnQgczNjMjR4eF9ncGlvbGliX2lucHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgKm91cmNoaXAgPSB0b19zM2NfY2hpcChjaGlwKTsKKwl2b2lkIF9faW9tZW0gKmJhc2UgPSBvdXJjaGlwLT5iYXNlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBjb247CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwljb24gPSBfX3Jhd19yZWFkbChiYXNlICsgMHgwMCk7CisJY29uICY9IH4oMyA8PCAob2Zmc2V0ICogMikpOworCWNvbiB8PSAoUzNDMjQxMF9HUElPX09VVFBVVCAmIDB4ZikgPDwgKG9mZnNldCAqIDIpOworCisJX19yYXdfd3JpdGVsKGNvbiwgYmFzZSArIDB4MDApOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCXJldHVybiAwOworfQorCitpbnQgczNjMjR4eF9ncGlvbGliX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLAorCQkJCSAgdW5zaWduZWQgb2Zmc2V0LCBpbnQgdmFsdWUpCit7CisJc3RydWN0IHMzYzI0eHhfZ3Bpb19jaGlwICpvdXJjaGlwID0gdG9fczNjX2NoaXAoY2hpcCk7CisJdm9pZCBfX2lvbWVtICpiYXNlID0gb3VyY2hpcC0+YmFzZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgZGF0OworCXVuc2lnbmVkIGxvbmcgY29uOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJZGF0ID0gX19yYXdfcmVhZGwoYmFzZSArIDB4MDQpOworCWRhdCAmPSB+KDEgPDwgb2Zmc2V0KTsKKwlpZiAodmFsdWUpCisJCWRhdCB8PSAxIDw8IG9mZnNldDsKKwlfX3Jhd193cml0ZWwoZGF0LCBiYXNlICsgMHgwNCk7CisKKwljb24gPSBfX3Jhd19yZWFkbChiYXNlICsgMHgwMCk7CisJY29uICY9IH4oMyA8PCAob2Zmc2V0ICogMikpOworCWNvbiB8PSAoUzNDMjQxMF9HUElPX09VVFBVVCAmIDB4ZikgPDwgKG9mZnNldCAqIDIpOworCisJX19yYXdfd3JpdGVsKGNvbiwgYmFzZSArIDB4MDApOworCV9fcmF3X3dyaXRlbChkYXQsIGJhc2UgKyAweDA0KTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKwordm9pZCBzM2MyNHh4X2dwaW9saWJfc2V0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCwgaW50IHZhbHVlKQoreworCXN0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCAqb3VyY2hpcCA9IHRvX3MzY19jaGlwKGNoaXApOworCXZvaWQgX19pb21lbSAqYmFzZSA9IG91cmNoaXAtPmJhc2U7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIGRhdDsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCWRhdCA9IF9fcmF3X3JlYWRsKGJhc2UgKyAweDA0KTsKKwlkYXQgJj0gfigxIDw8IG9mZnNldCk7CisJaWYgKHZhbHVlKQorCQlkYXQgfD0gMSA8PCBvZmZzZXQ7CisJX19yYXdfd3JpdGVsKGRhdCwgYmFzZSArIDB4MDQpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitpbnQgczNjMjR4eF9ncGlvbGliX2dldChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQpCit7CisJc3RydWN0IHMzYzI0eHhfZ3Bpb19jaGlwICpvdXJjaGlwID0gdG9fczNjX2NoaXAoY2hpcCk7CisJdW5zaWduZWQgbG9uZyB2YWw7CisKKwl2YWwgPSBfX3Jhd19yZWFkbChvdXJjaGlwLT5iYXNlICsgMHgwNCk7CisJdmFsID4+PSBvZmZzZXQ7CisJdmFsICY9IDE7CisKKwlyZXR1cm4gdmFsOworfQorCitzdGF0aWMgaW50IHMzYzI0eHhfZ3Bpb2xpYl9iYW5rYV9pbnB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQpCit7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbnQgczNjMjR4eF9ncGlvbGliX2JhbmthX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLAorCQkJCQl1bnNpZ25lZCBvZmZzZXQsIGludCB2YWx1ZSkKK3sKKwlzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgKm91cmNoaXAgPSB0b19zM2NfY2hpcChjaGlwKTsKKwl2b2lkIF9faW9tZW0gKmJhc2UgPSBvdXJjaGlwLT5iYXNlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBkYXQ7CisJdW5zaWduZWQgbG9uZyBjb247CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwljb24gPSBfX3Jhd19yZWFkbChiYXNlICsgMHgwMCk7CisJZGF0ID0gX19yYXdfcmVhZGwoYmFzZSArIDB4MDQpOworCisJZGF0ICY9IH4oMSA8PCBvZmZzZXQpOworCWlmICh2YWx1ZSkKKwkJZGF0IHw9IDEgPDwgb2Zmc2V0OworCisJX19yYXdfd3JpdGVsKGRhdCwgYmFzZSArIDB4MDQpOworCisJY29uICY9IH4oMSA8PCBvZmZzZXQpOworCisJX19yYXdfd3JpdGVsKGNvbiwgYmFzZSArIDB4MDApOworCV9fcmF3X3dyaXRlbChkYXQsIGJhc2UgKyAweDA0KTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworCitzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgZ3Bpb3NbXSA9IHsKKwlbMF0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEEwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEEwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9BIiwKKwkJCS5uZ3BpbwkJCT0gMjQsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2JhbmthX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfYmFua2Ffb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbMV0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEIwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEIwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9CIiwKKwkJCS5uZ3BpbwkJCT0gMTYsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbMl0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEMwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEMwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9DIiwKKwkJCS5uZ3BpbwkJCT0gMTYsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbM10gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEQwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEQwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9EIiwKKwkJCS5uZ3BpbwkJCT0gMTYsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbNF0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEUwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEUwLAorCQkJLmxhYmVsCQkJPSAiR1BJT0UiLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5uZ3BpbwkJCT0gMTYsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbNV0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEYwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEYwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9GIiwKKwkJCS5uZ3BpbwkJCT0gOCwKKwkJCS5kaXJlY3Rpb25faW5wdXQJPSBzM2MyNHh4X2dwaW9saWJfaW5wdXQsCisJCQkuZGlyZWN0aW9uX291dHB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9vdXRwdXQsCisJCQkuc2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfc2V0LAorCQkJLmdldAkJCT0gczNjMjR4eF9ncGlvbGliX2dldCwKKwkJfSwKKwl9LAorCVs2XSA9IHsKKwkJLmJhc2UJPSBTM0MyNFhYX0dQSU9fQkFTRShTM0MyNDEwX0dQRzApLAorCQkuY2hpcAk9IHsKKwkJCS5iYXNlCQkJPSBTM0MyNDEwX0dQRzAsCisJCQkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCQkJLmxhYmVsCQkJPSAiR1BJT0ciLAorCQkJLm5ncGlvCQkJPSAxMCwKKwkJCS5kaXJlY3Rpb25faW5wdXQJPSBzM2MyNHh4X2dwaW9saWJfaW5wdXQsCisJCQkuZGlyZWN0aW9uX291dHB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9vdXRwdXQsCisJCQkuc2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfc2V0LAorCQkJLmdldAkJCT0gczNjMjR4eF9ncGlvbGliX2dldCwKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIF9faW5pdCBpbnQgczNjMjR4eF9ncGlvbGliX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgKmNoaXAgPSBncGlvczsKKwlpbnQgZ3BuOworCisJZm9yIChncG4gPSAwOyBncG4gPCBBUlJBWV9TSVpFKGdwaW9zKTsgZ3BuKyssIGNoaXArKykKKwkJZ3Bpb2NoaXBfYWRkKCZjaGlwLT5jaGlwKTsKKworCXJldHVybiAwOworfQorCithcmNoX2luaXRjYWxsKHMzYzI0eHhfZ3Bpb2xpYl9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9wd20tY2xvY2suYyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9wd20tY2xvY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2RhM2UzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L3B3bS1jbG9jay5jCkBAIC0wLDAgKzEsNDM3IEBACisvKiBsaW51eC9hcmNoL2FybS9wbGF0LXMzYzI0eHgvcHdtLWNsb2NrLmMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcgU2ltdGVjIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMDggQmVuIERvb2tzCisgKglCZW4gRG9va3MgPGJlbi1saW51eEBmbHVmZi5vcmc+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLgorKi8KKworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1jbG9jay5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jbG9jay5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY3B1Lmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy10aW1lci5oPgorCisvKiBFYWNoIG9mIHRoZSB0aW1lcnMgMCB0aHJvdWdoIDUgZ28gdGhyb3VnaCB0aGUgZm9sbG93aW5nCisgKiBjbG9jayB0cmVlLCB3aXRoIHRoZSBpbnB1dHMgZGVwZW5kaW5nIG9uIHRoZSB0aW1lcnMuCisgKgorICogcGNsayAtLS0tIFsgcHJlc2NhbGVyIDAgXSAtKy0tLT4gdGltZXIgMAorICoJCQkgICAgICArLS0tPiB0aW1lciAxCisgKgorICogcGNsayAtLS0tIFsgcHJlc2NhbGVyIDEgXSAtKy0tLT4gdGltZXIgMgorICoJCQkgICAgICArLS0tPiB0aW1lciAzCisgKgkJCSAgICAgIFwtLS0+IHRpbWVyIDQKKyAqCisgKiBXaGljaCBhcmUgZmVkIGludG8gdGhlIHRpbWVycyBhcyBzbzoKKyAqCisgKiBwcmVzY2FsZWQgMCAtLS0tIFsgZGl2IDIsNCw4LDE2IF0gLS0tXAorICoJCQkJICAgICAgIFttdXhdIC0+IHRpbWVyIDAKKyAqIHRjbGsgMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vCisgKgorICogcHJlc2NhbGVkIDAgLS0tLSBbIGRpdiAyLDQsOCwxNiBdIC0tLVwKKyAqCQkJCSAgICAgICBbbXV4XSAtPiB0aW1lciAxCisgKiB0Y2xrIDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLworICoKKyAqCisgKiBwcmVzY2FsZWQgMSAtLS0tIFsgZGl2IDIsNCw4LDE2IF0gLS0tXAorICoJCQkJICAgICAgIFttdXhdIC0+IHRpbWVyIDIKKyAqIHRjbGsgMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vCisgKgorICogcHJlc2NhbGVkIDEgLS0tLSBbIGRpdiAyLDQsOCwxNiBdIC0tLVwKKyAqCQkJCSAgICAgICBbbXV4XSAtPiB0aW1lciAzCisgKiB0Y2xrIDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLworICoKKyAqIHByZXNjYWxlZCAxIC0tLS0gWyBkaXYgMiw0LDgsIDE2IF0gLS1cCisgKgkJCQkgICAgICAgW211eF0gLT4gdGltZXIgNAorICogdGNsayAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8KKyAqCisgKiBTaW5jZSB0aGUgbXV4IGFuZCB0aGUgZGl2aWRlciBhcmUgdGllZCB0b2dldGhlciBpbiB0aGUKKyAqIHNhbWUgcmVnaXN0ZXIgc3BhY2UsIGl0IGlzIGltcG9zc2libGUgdG8gc2V0IHRoZSBwYXJlbnQKKyAqIGFuZCB0aGUgcmF0ZSBhdCB0aGUgc2FtZSB0aW1lLiBUbyBhdm9pZCB0aGlzLCB3ZSBhZGQgYW4KKyAqIGludGVybWVkaWF0ZSAncHJlc2NhbGVkLWFuZC1kaXZpZGVkJyBjbG9jayB0byBzZWxlY3QKKyAqIGFzIHRoZSBwYXJlbnQgZm9yIHRoZSB0aW1lciBpbnB1dCBjbG9jayBjYWxsZWQgdGRpdi4KKyAqCisgKiBwcmVzY2FsZWQgY2xrIC0tPiBwd20tdGRpdiAtLS1cCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyBtdXggXSAtLT4gdGltZXIgWAorICogdGNsayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLworKi8KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX3B3bV9zY2FsZXJfZ2V0cmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyB0Y2ZnMCA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzApOworCisJaWYgKGNsay0+aWQgPT0gMSkgeworCQl0Y2ZnMCAmPSBTM0MyNDEwX1RDRkdfUFJFU0NBTEVSMV9NQVNLOworCQl0Y2ZnMCA+Pj0gUzNDMjQxMF9UQ0ZHX1BSRVNDQUxFUjFfU0hJRlQ7CisJfSBlbHNlIHsKKwkJdGNmZzAgJj0gUzNDMjQxMF9UQ0ZHX1BSRVNDQUxFUjBfTUFTSzsKKwl9CisKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvICh0Y2ZnMCArIDEpOworfQorCisvKiBUT0RPIC0gYWRkIHNldCByYXRlIGNhbGxzLiAqLworCitzdHJ1Y3QgY2xrIGNsa190aW1lcl9zY2FsZXJbXSA9IHsKKwlbMF0JPSB7CisJCS5uYW1lCQk9ICJwd20tc2NhbGVyMCIsCisJCS5pZAkJPSAtMSwKKwkJLmdldF9yYXRlCT0gY2xrX3B3bV9zY2FsZXJfZ2V0cmF0ZSwKKwl9LAorCVsxXQk9IHsKKwkJLm5hbWUJCT0gInB3bS1zY2FsZXIxIiwKKwkJLmlkCQk9IC0xLAorCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3NjYWxlcl9nZXRyYXRlLAorCX0sCit9OworCitzdHJ1Y3QgY2xrIGNsa190aW1lcl90Y2xrW10gPSB7CisJWzBdCT0geworCQkubmFtZQkJPSAicHdtLXRjbGswIiwKKwkJLmlkCQk9IC0xLAorCX0sCisJWzFdCT0geworCQkubmFtZQkJPSAicHdtLXRjbGsxIiwKKwkJLmlkCQk9IC0xLAorCX0sCit9OworCitzdHJ1Y3QgcHdtX3RkaXZfY2xrIHsKKwlzdHJ1Y3QgY2xrCWNsazsKKwl1bnNpZ25lZCBpbnQJZGl2aXNvcjsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHB3bV90ZGl2X2NsayAqdG9fdGRpdihzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihjbGssIHN0cnVjdCBwd21fdGRpdl9jbGssIGNsayk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB0Y2ZnX3RvX2Rpdmlzb3IodW5zaWduZWQgbG9uZyB0Y2ZnMSkKK3sKKwlyZXR1cm4gMSA8PCAoMSArIHRjZmcxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX3B3bV90ZGl2X2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHRjZmcxID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ0ZHMSk7CisJdW5zaWduZWQgaW50IGRpdmlzb3I7CisKKwl0Y2ZnMSA+Pj0gUzNDMjQxMF9UQ0ZHMV9TSElGVChjbGstPmlkKTsKKwl0Y2ZnMSAmPSBTM0MyNDEwX1RDRkcxX01VWF9NQVNLOworCisJaWYgKHRjZmcxID09IFMzQzI0MTBfVENGRzFfTVVYX1RDTEspCisJCWRpdmlzb3IgPSB0b190ZGl2KGNsayktPmRpdmlzb3I7CisJZWxzZQorCQlkaXZpc29yID0gdGNmZ190b19kaXZpc29yKHRjZmcxKTsKKworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gZGl2aXNvcjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX3B3bV90ZGl2X3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLAorCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCXVuc2lnbmVkIGxvbmcgZGl2aXNvcjsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwlkaXZpc29yID0gcGFyZW50X3JhdGUgLyByYXRlOworCisJaWYgKGRpdmlzb3IgPD0gMikKKwkJZGl2aXNvciA9IDI7CisJZWxzZSBpZiAoZGl2aXNvciA8PSA0KQorCQlkaXZpc29yID0gNDsKKwllbHNlIGlmIChkaXZpc29yIDw9IDgpCisJCWRpdmlzb3IgPSA4OworCWVsc2UKKwkJZGl2aXNvciA9IDE2OworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gZGl2aXNvcjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX3B3bV90ZGl2X2JpdHMoc3RydWN0IHB3bV90ZGl2X2NsayAqZGl2Y2xrKQoreworCXVuc2lnbmVkIGxvbmcgYml0czsKKworCXN3aXRjaCAoZGl2Y2xrLT5kaXZpc29yKSB7CisJY2FzZSAyOgorCQliaXRzID0gUzNDMjQxMF9UQ0ZHMV9NVVhfRElWMjsKKwkJYnJlYWs7CisJY2FzZSA0OgorCQliaXRzID0gUzNDMjQxMF9UQ0ZHMV9NVVhfRElWNDsKKwkJYnJlYWs7CisJY2FzZSA4OgorCQliaXRzID0gUzNDMjQxMF9UQ0ZHMV9NVVhfRElWODsKKwkJYnJlYWs7CisJY2FzZSAxNjoKKwlkZWZhdWx0OgorCQliaXRzID0gUzNDMjQxMF9UQ0ZHMV9NVVhfRElWMTY7CisJCWJyZWFrOworCX0KKworCXJldHVybiBiaXRzOworfQorCitzdGF0aWMgdm9pZCBjbGtfcHdtX3RkaXZfdXBkYXRlKHN0cnVjdCBwd21fdGRpdl9jbGsgKmRpdmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHRjZmcxID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ0ZHMSk7CisJdW5zaWduZWQgbG9uZyBiaXRzID0gY2xrX3B3bV90ZGl2X2JpdHMoZGl2Y2xrKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgc2hpZnQgPSAgUzNDMjQxMF9UQ0ZHMV9TSElGVChkaXZjbGstPmNsay5pZCk7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwl0Y2ZnMSA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzEpOworCXRjZmcxICY9IH4oUzNDMjQxMF9UQ0ZHMV9NVVhfTUFTSyA8PCBzaGlmdCk7CisJdGNmZzEgfD0gYml0cyA8PCBzaGlmdDsKKwlfX3Jhd193cml0ZWwodGNmZzEsIFMzQzI0MTBfVENGRzEpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgaW50IGNsa19wd21fdGRpdl9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwlzdHJ1Y3QgcHdtX3RkaXZfY2xrICpkaXZjbGsgPSB0b190ZGl2KGNsayk7CisJdW5zaWduZWQgbG9uZyB0Y2ZnMSA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzEpOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCXVuc2lnbmVkIGxvbmcgZGl2aXNvcjsKKworCXRjZmcxID4+PSBTM0MyNDEwX1RDRkcxX1NISUZUKGNsay0+aWQpOworCXRjZmcxICY9IFMzQzI0MTBfVENGRzFfTVVYX01BU0s7CisKKwlyYXRlID0gY2xrX3JvdW5kX3JhdGUoY2xrLCByYXRlKTsKKwlkaXZpc29yID0gcGFyZW50X3JhdGUgLyByYXRlOworCisJaWYgKGRpdmlzb3IgPiAxNikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkaXZjbGstPmRpdmlzb3IgPSBkaXZpc29yOworCisJLyogVXBkYXRlIHRoZSBjdXJyZW50IE1VWCBzZXR0aW5ncyBpZiB3ZSBhcmUgY3VycmVudGx5CisJICogc2VsZWN0ZWQgYXMgdGhlIGNsb2NrIHNvdXJjZSBmb3IgdGhpcyBjbG9jay4gKi8KKworCWlmICh0Y2ZnMSAhPSBTM0MyNDEwX1RDRkcxX01VWF9UQ0xLKQorCQljbGtfcHdtX3RkaXZfdXBkYXRlKGRpdmNsayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RydWN0IHB3bV90ZGl2X2NsayBjbGtfdGltZXJfdGRpdltdID0geworCVswXQk9IHsKKwkJLmNsawk9IHsKKwkJCS5uYW1lCQk9ICJwd20tdGRpdiIsCisJCQkucGFyZW50CQk9ICZjbGtfdGltZXJfc2NhbGVyWzBdLAorCQkJLmdldF9yYXRlCT0gY2xrX3B3bV90ZGl2X2dldF9yYXRlLAorCQkJLnNldF9yYXRlCT0gY2xrX3B3bV90ZGl2X3NldF9yYXRlLAorCQkJLnJvdW5kX3JhdGUJPSBjbGtfcHdtX3RkaXZfcm91bmRfcmF0ZSwKKwkJfSwKKwl9LAorCVsxXQk9IHsKKwkJLmNsawk9IHsKKwkJCS5uYW1lCQk9ICJwd20tdGRpdiIsCisJCQkucGFyZW50CQk9ICZjbGtfdGltZXJfc2NhbGVyWzBdLAorCQkJLmdldF9yYXRlCT0gY2xrX3B3bV90ZGl2X2dldF9yYXRlLAorCQkJLnNldF9yYXRlCT0gY2xrX3B3bV90ZGl2X3NldF9yYXRlLAorCQkJLnJvdW5kX3JhdGUJPSBjbGtfcHdtX3RkaXZfcm91bmRfcmF0ZSwKKwkJfQorCX0sCisJWzJdCT0geworCQkuY2xrCT0geworCQkJLm5hbWUJCT0gInB3bS10ZGl2IiwKKwkJCS5wYXJlbnQJCT0gJmNsa190aW1lcl9zY2FsZXJbMV0sCisJCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfZ2V0X3JhdGUsCisJCQkuc2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfc2V0X3JhdGUsCisJCQkucm91bmRfcmF0ZQk9IGNsa19wd21fdGRpdl9yb3VuZF9yYXRlLAorCQl9LAorCX0sCisJWzNdCT0geworCQkuY2xrCT0geworCQkJLm5hbWUJCT0gInB3bS10ZGl2IiwKKwkJCS5wYXJlbnQJCT0gJmNsa190aW1lcl9zY2FsZXJbMV0sCisJCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfZ2V0X3JhdGUsCisJCQkuc2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfc2V0X3JhdGUsCisJCQkucm91bmRfcmF0ZQk9IGNsa19wd21fdGRpdl9yb3VuZF9yYXRlLAorCQl9LAorCX0sCisJWzRdCT0geworCQkuY2xrCT0geworCQkJLm5hbWUJCT0gInB3bS10ZGl2IiwKKwkJCS5wYXJlbnQJCT0gJmNsa190aW1lcl9zY2FsZXJbMV0sCisJCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfZ2V0X3JhdGUsCisJCQkuc2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfc2V0X3JhdGUsCisJCQkucm91bmRfcmF0ZQk9IGNsa19wd21fdGRpdl9yb3VuZF9yYXRlLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgaW50IF9faW5pdCBjbGtfcHdtX3RkaXZfcmVnaXN0ZXIodW5zaWduZWQgaW50IGlkKQoreworCXN0cnVjdCBwd21fdGRpdl9jbGsgKmRpdmNsayA9ICZjbGtfdGltZXJfdGRpdltpZF07CisJdW5zaWduZWQgbG9uZyB0Y2ZnMSA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzEpOworCisJdGNmZzEgPj49IFMzQzI0MTBfVENGRzFfU0hJRlQoaWQpOworCXRjZmcxICY9IFMzQzI0MTBfVENGRzFfTVVYX01BU0s7CisKKwlkaXZjbGstPmNsay5pZCA9IGlkOworCWRpdmNsay0+ZGl2aXNvciA9IHRjZmdfdG9fZGl2aXNvcih0Y2ZnMSk7CisKKwlyZXR1cm4gczNjMjR4eF9yZWdpc3Rlcl9jbG9jaygmZGl2Y2xrLT5jbGspOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjbGsgKnMzYzI0eHhfcHdtY2xrX3RjbGsodW5zaWduZWQgaW50IGlkKQoreworCXJldHVybiAoaWQgPj0gMikgPyAmY2xrX3RpbWVyX3RjbGtbMV0gOiAmY2xrX3RpbWVyX3RjbGtbMF07Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNsayAqczNjMjR4eF9wd21jbGtfdGRpdih1bnNpZ25lZCBpbnQgaWQpCit7CisJcmV0dXJuICZjbGtfdGltZXJfdGRpdltpZF0uY2xrOworfQorCitzdGF0aWMgaW50IGNsa19wd21fdGluX3NldF9wYXJlbnQoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpwYXJlbnQpCit7CisJdW5zaWduZWQgaW50IGlkID0gY2xrLT5pZDsKKwl1bnNpZ25lZCBsb25nIHRjZmcxOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBiaXRzOworCXVuc2lnbmVkIGxvbmcgc2hpZnQgPSBTM0MyNDEwX1RDRkcxX1NISUZUKGlkKTsKKworCWlmIChwYXJlbnQgPT0gczNjMjR4eF9wd21jbGtfdGNsayhpZCkpCisJCWJpdHMgPSBTM0MyNDEwX1RDRkcxX01VWF9UQ0xLIDw8IHNoaWZ0OworCWVsc2UgaWYgKHBhcmVudCA9PSBzM2MyNHh4X3B3bWNsa190ZGl2KGlkKSkKKwkJYml0cyA9IGNsa19wd21fdGRpdl9iaXRzKHRvX3RkaXYoY2xrKSkgPDwgc2hpZnQ7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWNsay0+cGFyZW50ID0gcGFyZW50OworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJdGNmZzEgPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDRkcxKTsKKwl0Y2ZnMSAmPSB+KFMzQzI0MTBfVENGRzFfTVVYX01BU0sgPDwgc2hpZnQpOworCV9fcmF3X3dyaXRlbCh0Y2ZnMSB8IGJpdHMsIFMzQzI0MTBfVENGRzEpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa190aW5bXSA9IHsKKwlbMF0JPSB7CisJCS5uYW1lCQk9ICJwd20tdGluIiwKKwkJLmlkCQk9IDAsCisJCS5zZXRfcGFyZW50CT0gY2xrX3B3bV90aW5fc2V0X3BhcmVudCwKKwl9LAorCVsxXQk9IHsKKwkJLm5hbWUJCT0gInB3bS10aW4iLAorCQkuaWQJCT0gMSwKKwkJLnNldF9wYXJlbnQJPSBjbGtfcHdtX3Rpbl9zZXRfcGFyZW50LAorCX0sCisJWzJdCT0geworCQkubmFtZQkJPSAicHdtLXRpbiIsCisJCS5pZAkJPSAyLAorCQkuc2V0X3BhcmVudAk9IGNsa19wd21fdGluX3NldF9wYXJlbnQsCisJfSwKKwlbM10JPSB7CisJCS5uYW1lCQk9ICJwd20tdGluIiwKKwkJLmlkCQk9IDMsCisJCS5zZXRfcGFyZW50CT0gY2xrX3B3bV90aW5fc2V0X3BhcmVudCwKKwl9LAorCVs0XQk9IHsKKwkJLm5hbWUJCT0gInB3bS10aW4iLAorCQkuaWQJCT0gNCwKKwkJLnNldF9wYXJlbnQJPSBjbGtfcHdtX3Rpbl9zZXRfcGFyZW50LAorCX0sCit9OworCitzdGF0aWMgX19pbml0IGludCBjbGtfcHdtX3Rpbl9yZWdpc3RlcihzdHJ1Y3QgY2xrICpwd20pCit7CisJdW5zaWduZWQgbG9uZyB0Y2ZnMSA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzEpOworCXVuc2lnbmVkIGludCBpZCA9IHB3bS0+aWQ7CisKKwlzdHJ1Y3QgY2xrICpwYXJlbnQ7CisJaW50IHJldDsKKworCXJldCA9IHMzYzI0eHhfcmVnaXN0ZXJfY2xvY2socHdtKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXRjZmcxID4+PSBTM0MyNDEwX1RDRkcxX1NISUZUKGlkKTsKKwl0Y2ZnMSAmPSBTM0MyNDEwX1RDRkcxX01VWF9NQVNLOworCisJaWYgKHRjZmcxID09IFMzQzI0MTBfVENGRzFfTVVYX1RDTEspCisJCXBhcmVudCA9IHMzYzI0eHhfcHdtY2xrX3RjbGsoaWQpOworCWVsc2UKKwkJcGFyZW50ID0gczNjMjR4eF9wd21jbGtfdGRpdihpZCk7CisKKwlyZXR1cm4gY2xrX3NldF9wYXJlbnQocHdtLCBwYXJlbnQpOworfQorCitzdGF0aWMgX19pbml0IGludCBzM2MyNHh4X3B3bWNsa19pbml0KHZvaWQpCit7CisJc3RydWN0IGNsayAqY2xrX3RpbWVyczsKKwl1bnNpZ25lZCBpbnQgY2xrOworCWludCByZXQ7CisKKwljbGtfdGltZXJzID0gY2xrX2dldChOVUxMLCAidGltZXJzIik7CisJaWYgKElTX0VSUihjbGtfdGltZXJzKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBubyBwYXJlbnQgY2xvY2tcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZm9yIChjbGsgPSAwOyBjbGsgPCBBUlJBWV9TSVpFKGNsa190aW1lcl9zY2FsZXIpOyBjbGsrKykgeworCQljbGtfdGltZXJfc2NhbGVyW2Nsa10ucGFyZW50ID0gY2xrX3RpbWVyczsKKwkJcmV0ID0gczNjMjR4eF9yZWdpc3Rlcl9jbG9jaygmY2xrX3RpbWVyX3NjYWxlcltjbGtdKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiZXJyb3IgYWRkaW5nIHB3bSBzY2FsZXIlZCBjbG9ja1xuIiwgY2xrKTsKKwkJCWdvdG8gZXJyOworCQl9CisJfQorCisJZm9yIChjbGsgPSAwOyBjbGsgPCBBUlJBWV9TSVpFKGNsa190aW1lcl90Y2xrKTsgY2xrKyspIHsKKwkJcmV0ID0gczNjMjR4eF9yZWdpc3Rlcl9jbG9jaygmY2xrX3RpbWVyX3RjbGtbY2xrXSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlwcmludGsoS0VSTl9FUlIgImVycm9yIGFkZGluZyBwd3cgdGNsayVkXG4iLCBjbGspOworCQkJZ290byBlcnI7CisJCX0KKwl9CisKKwlmb3IgKGNsayA9IDA7IGNsayA8IEFSUkFZX1NJWkUoY2xrX3RpbWVyX3RkaXYpOyBjbGsrKykgeworCQlyZXQgPSBjbGtfcHdtX3RkaXZfcmVnaXN0ZXIoY2xrKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiZXJyb3IgYWRkaW5nIHB3bSVkIHRkaXYgY2xvY2tcbiIsIGNsayk7CisJCQlnb3RvIGVycjsKKwkJfQorCX0KKworCWZvciAoY2xrID0gMDsgY2xrIDwgQVJSQVlfU0laRShjbGtfdGluKTsgY2xrKyspIHsKKwkJcmV0ID0gY2xrX3B3bV90aW5fcmVnaXN0ZXIoJmNsa190aW5bY2xrXSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlwcmludGsoS0VSTl9FUlIgImVycm9yIGFkZGluZyBwd20lZCB0aW4gY2xvY2tcbiIsIGNsayk7CisJCQlnb3RvIGVycjsKKwkJfQorCX0KKworCXJldHVybiAwOworCisgZXJyOgorCXJldHVybiByZXQ7Cit9CisKK2FyY2hfaW5pdGNhbGwoczNjMjR4eF9wd21jbGtfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvcHdtLmMgYi9hcmNoL2FybS9wbGF0LXMzYzI0eHgvcHdtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThjNGJkYwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9wd20uYwpAQCAtMCwwICsxLDQwMiBAQAorLyogYXJjaC9hcm0vcGxhdC1zM2MyNHh4L3B3bS5jCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA3IEJlbiBEb29rcworICogQ29weXJpZ2h0IChjKSAyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPiwgPGJlbi1saW51eEBmbHVmZi5vcmc+CisgKgorICogUzNDMjRYWCBQV00gZGV2aWNlIGNvcmUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCisqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9wd20uaD4KKworI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXRpbWVyLmg+CisKK3N0cnVjdCBwd21fZGV2aWNlIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkCSBsaXN0OworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UJKnBkZXY7CisKKwlzdHJ1Y3QgY2xrCQkqY2xrX2RpdjsKKwlzdHJ1Y3QgY2xrCQkqY2xrOworCWNvbnN0IGNoYXIJCSpsYWJlbDsKKworCXVuc2lnbmVkIGludAkJIHBlcmlvZF9uczsKKwl1bnNpZ25lZCBpbnQJCSBkdXR5X25zOworCisJdW5zaWduZWQgY2hhcgkJIHRjb25fYmFzZTsKKwl1bnNpZ25lZCBjaGFyCQkgcnVubmluZzsKKwl1bnNpZ25lZCBjaGFyCQkgdXNlX2NvdW50OworCXVuc2lnbmVkIGNoYXIJCSBwd21faWQ7Cit9OworCisjZGVmaW5lIHB3bV9kYmcoX3B3bSwgbXNnLi4uKSBkZXZfaW5mbygmKF9wd20pLT5wZGV2LT5kZXYsIG1zZykKKworc3RhdGljIHN0cnVjdCBjbGsgKmNsa19zY2FsZXJbMl07CisKKy8qIFN0YW5kYXJkIHNldHVwIGZvciBhIHRpbWVyIGJsb2NrLiAqLworCisjZGVmaW5lIFRJTUVSX1JFU09VUkNFX1NJWkUgKDEpCisKKyNkZWZpbmUgVElNRVJfUkVTT1VSQ0UoX3RtciwgX2lycSkJCQlcCisJKHN0cnVjdCByZXNvdXJjZSBbVElNRVJfUkVTT1VSQ0VfU0laRV0pIHsJXAorCQlbMF0gPSB7CQkJCQlcCisJCQkuc3RhcnQJPSBfaXJxLAkJCVwKKwkJCS5lbmQJPSBfaXJxLAkJCVwKKwkJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRCVwKKwkJfQkJCQkJXAorCX0KKworI2RlZmluZSBERUZJTkVfVElNRVIoX3Rtcl9ubywgX2lycSkJCQlcCisJLm5hbWUJCT0gInMzYzI0eHgtcHdtIiwJCVwKKwkuaWQJCT0gX3Rtcl9ubywJCQlcCisJLm51bV9yZXNvdXJjZXMJPSBUSU1FUl9SRVNPVVJDRV9TSVpFLAkJXAorCS5yZXNvdXJjZQk9IFRJTUVSX1JFU09VUkNFKF90bXJfbm8sIF9pcnEpLAlcCisKKy8qIHNpbmNlIHdlIGFscmVhZHkgaGF2ZSBhbiBzdGF0aWMgbWFwcGluZyBmb3IgdGhlIHRpbWVyLCB3ZSBkbyBub3QKKyAqIGJvdGhlciBzZXR0aW5nIGFueSBJTyByZXNvdXJjZSBmb3IgdGhlIGJhc2UuCisgKi8KKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyW10gPSB7CisJWzBdID0geyBERUZJTkVfVElNRVIoMCwgSVJRX1RJTUVSMCkgfSwKKwlbMV0gPSB7IERFRklORV9USU1FUigxLCBJUlFfVElNRVIxKSB9LAorCVsyXSA9IHsgREVGSU5FX1RJTUVSKDIsIElSUV9USU1FUjIpIH0sCisJWzNdID0geyBERUZJTkVfVElNRVIoMywgSVJRX1RJTUVSMykgfSwKKwlbNF0gPSB7IERFRklORV9USU1FUig0LCBJUlFfVElNRVI0KSB9LAorfTsKKworc3RhdGljIGlubGluZSBpbnQgcHdtX2lzX3RkaXYoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwlyZXR1cm4gY2xrX2dldF9wYXJlbnQocHdtLT5jbGspID09IHB3bS0+Y2xrX2RpdjsKK30KKworc3RhdGljIERFRklORV9NVVRFWChwd21fbG9jayk7CitzdGF0aWMgTElTVF9IRUFEKHB3bV9saXN0KTsKKworc3RydWN0IHB3bV9kZXZpY2UgKnB3bV9yZXF1ZXN0KGludCBwd21faWQsIGNvbnN0IGNoYXIgKmxhYmVsKQoreworCXN0cnVjdCBwd21fZGV2aWNlICpwd207CisJaW50IGZvdW5kID0gMDsKKworCW11dGV4X2xvY2soJnB3bV9sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkocHdtLCAmcHdtX2xpc3QsIGxpc3QpIHsKKwkJaWYgKHB3bS0+cHdtX2lkID09IHB3bV9pZCkgeworCQkJZm91bmQgPSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoZm91bmQpIHsKKwkJaWYgKHB3bS0+dXNlX2NvdW50ID09IDApIHsKKwkJCXB3bS0+dXNlX2NvdW50ID0gMTsKKwkJCXB3bS0+bGFiZWwgPSBsYWJlbDsKKwkJfSBlbHNlCisJCQlwd20gPSBFUlJfUFRSKC1FQlVTWSk7CisJfSBlbHNlCisJCXB3bSA9IEVSUl9QVFIoLUVOT0VOVCk7CisKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKKwlyZXR1cm4gcHdtOworfQorCitFWFBPUlRfU1lNQk9MKHB3bV9yZXF1ZXN0KTsKKworCit2b2lkIHB3bV9mcmVlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pCit7CisJbXV0ZXhfbG9jaygmcHdtX2xvY2spOworCisJaWYgKHB3bS0+dXNlX2NvdW50KSB7CisJCXB3bS0+dXNlX2NvdW50LS07CisJCXB3bS0+bGFiZWwgPSBOVUxMOworCX0gZWxzZQorCQlwcmludGsoS0VSTl9FUlIgIlBXTSVkIGRldmljZSBhbHJlYWR5IGZyZWVkXG4iLCBwd20tPnB3bV9pZCk7CisKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKK30KKworRVhQT1JUX1NZTUJPTChwd21fZnJlZSk7CisKKyNkZWZpbmUgcHdtX3Rjb25fc3RhcnQocHdtKSAoMSA8PCAocHdtLT50Y29uX2Jhc2UgKyAwKSkKKyNkZWZpbmUgcHdtX3Rjb25faW52ZXJ0KHB3bSkgKDEgPDwgKHB3bS0+dGNvbl9iYXNlICsgMikpCisjZGVmaW5lIHB3bV90Y29uX2F1dG9yZWxvYWQocHdtKSAoMSA8PCAocHdtLT50Y29uX2Jhc2UgKyAzKSkKKyNkZWZpbmUgcHdtX3Rjb25fbWFudWx1cGRhdGUocHdtKSAoMSA8PCAocHdtLT50Y29uX2Jhc2UgKyAxKSkKKworaW50IHB3bV9lbmFibGUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgdGNvbjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCXRjb24gPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDT04pOworCXRjb24gfD0gcHdtX3Rjb25fc3RhcnQocHdtKTsKKwlfX3Jhd193cml0ZWwodGNvbiwgUzNDMjQxMF9UQ09OKTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCXB3bS0+cnVubmluZyA9IDE7CisJcmV0dXJuIDA7Cit9CisKK0VYUE9SVF9TWU1CT0wocHdtX2VuYWJsZSk7CisKK3ZvaWQgcHdtX2Rpc2FibGUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgdGNvbjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCXRjb24gPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDT04pOworCXRjb24gJj0gfnB3bV90Y29uX3N0YXJ0KHB3bSk7CisJX19yYXdfd3JpdGVsKHRjb24sIFMzQzI0MTBfVENPTik7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlwd20tPnJ1bm5pbmcgPSAwOworfQorCitFWFBPUlRfU1lNQk9MKHB3bV9kaXNhYmxlKTsKKwordW5zaWduZWQgbG9uZyBwd21fY2FsY190aW4oc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwgdW5zaWduZWQgbG9uZyBmcmVxKQoreworCXVuc2lnbmVkIGxvbmcgdGluX3BhcmVudF9yYXRlOworCXVuc2lnbmVkIGludCBkaXY7CisKKwl0aW5fcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrX2dldF9wYXJlbnQocHdtLT5jbGtfZGl2KSk7CisJcHdtX2RiZyhwd20sICJ0aW4gcGFyZW50IGF0ICVsdVxuIiwgdGluX3BhcmVudF9yYXRlKTsKKworCWZvciAoZGl2ID0gMjsgZGl2IDw9IDE2OyBkaXYgKj0gMikgeworCQlpZiAoKHRpbl9wYXJlbnRfcmF0ZSAvIChkaXYgPDwgMTYpKSA8IGZyZXEpCisJCQlyZXR1cm4gdGluX3BhcmVudF9yYXRlIC8gZGl2OworCX0KKworCXJldHVybiB0aW5fcGFyZW50X3JhdGUgLyAxNjsKK30KKworI2RlZmluZSBOU19JTl9IWiAoMTAwMDAwMDAwMFVMKQorCitpbnQgcHdtX2NvbmZpZyhzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCBpbnQgZHV0eV9ucywgaW50IHBlcmlvZF9ucykKK3sKKwl1bnNpZ25lZCBsb25nIHRpbl9yYXRlOworCXVuc2lnbmVkIGxvbmcgdGluX25zOworCXVuc2lnbmVkIGxvbmcgcGVyaW9kOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyB0Y29uOworCXVuc2lnbmVkIGxvbmcgdGNudDsKKwlsb25nIHRjbXA7CisKKwkvKiBXZSBjdXJyZW50bHkgYXZvaWQgdXNpbmcgNjRiaXQgYXJpdGhtZXRpYyBieSB1c2luZyB0aGUKKwkgKiBmYWN0IHRoYXQgYW55dGhpbmcgZmFzdGVyIHRoYW4gMUh6IGlzIGVhc2lseSByZXByZXNlbnRhYmxlCisJICogYnkgMzJiaXRzLiAqLworCisJaWYgKHBlcmlvZF9ucyA+IE5TX0lOX0haIHx8IGR1dHlfbnMgPiBOU19JTl9IWikKKwkJcmV0dXJuIC1FUkFOR0U7CisKKwlpZiAoZHV0eV9ucyA+IHBlcmlvZF9ucykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAocGVyaW9kX25zID09IHB3bS0+cGVyaW9kX25zICYmCisJICAgIGR1dHlfbnMgPT0gcHdtLT5kdXR5X25zKQorCQlyZXR1cm4gMDsKKworCS8qIFRoZSBUQ01QIGFuZCBUQ05UIGNhbiBiZSByZWFkIHdpdGhvdXQgYSBsb2NrLCB0aGV5J3JlIG5vdAorCSAqIHNoYXJlZCBiZXR3ZWVuIHRoZSB0aW1lcnMuICovCisKKwl0Y21wID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ01QQihwd20tPnB3bV9pZCkpOworCXRjbnQgPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDTlRCKHB3bS0+cHdtX2lkKSk7CisKKwlwZXJpb2QgPSBOU19JTl9IWiAvIHBlcmlvZF9uczsKKworCXB3bV9kYmcocHdtLCAiZHV0eV9ucz0lZCwgcGVyaW9kX25zPSVkICglbHUpXG4iLAorCQlkdXR5X25zLCBwZXJpb2RfbnMsIHBlcmlvZCk7CisKKwkvKiBDaGVjayB0byBzZWUgaWYgd2UgYXJlIGNoYW5naW5nIHRoZSBjbG9jayByYXRlIG9mIHRoZSBQV00gKi8KKworCWlmIChwd20tPnBlcmlvZF9ucyAhPSBwZXJpb2RfbnMpIHsKKwkJaWYgKHB3bV9pc190ZGl2KHB3bSkpIHsKKwkJCXRpbl9yYXRlID0gcHdtX2NhbGNfdGluKHB3bSwgcGVyaW9kKTsKKwkJCWNsa19zZXRfcmF0ZShwd20tPmNsa19kaXYsIHRpbl9yYXRlKTsKKwkJfSBlbHNlCisJCQl0aW5fcmF0ZSA9IGNsa19nZXRfcmF0ZShwd20tPmNsayk7CisKKwkJcHdtLT5wZXJpb2RfbnMgPSBwZXJpb2RfbnM7CisKKwkJcHdtX2RiZyhwd20sICJ0aW5fcmF0ZT0lbHVcbiIsIHRpbl9yYXRlKTsKKworCQl0aW5fbnMgPSBOU19JTl9IWiAvIHRpbl9yYXRlOworCQl0Y250ID0gcGVyaW9kX25zIC8gdGluX25zOworCX0gZWxzZQorCQl0aW5fbnMgPSBOU19JTl9IWiAvIGNsa19nZXRfcmF0ZShwd20tPmNsayk7CisKKwkvKiBOb3RlLCBjb3VudGVycyBjb3VudCBkb3duICovCisKKwl0Y21wID0gZHV0eV9ucyAvIHRpbl9uczsKKwl0Y21wID0gdGNudCAtIHRjbXA7CisKKwlwd21fZGJnKHB3bSwgInRpbl9ucz0lbHUsIHRjbXA9JWxkLyVsdVxuIiwgdGluX25zLCB0Y21wLCB0Y250KTsKKworCWlmICh0Y21wIDwgMCkKKwkJdGNtcCA9IDA7CisKKwkvKiBVcGRhdGUgdGhlIFBXTSByZWdpc3RlciBibG9jay4gKi8KKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCV9fcmF3X3dyaXRlbCh0Y21wLCBTM0MyNDEwX1RDTVBCKHB3bS0+cHdtX2lkKSk7CisJX19yYXdfd3JpdGVsKHRjbnQsIFMzQzI0MTBfVENOVEIocHdtLT5wd21faWQpKTsKKworCXRjb24gPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDT04pOworCXRjb24gfD0gcHdtX3Rjb25fbWFudWx1cGRhdGUocHdtKTsKKwl0Y29uIHw9IHB3bV90Y29uX2F1dG9yZWxvYWQocHdtKTsKKwlfX3Jhd193cml0ZWwodGNvbiwgUzNDMjQxMF9UQ09OKTsKKworCXRjb24gJj0gfnB3bV90Y29uX21hbnVsdXBkYXRlKHB3bSk7CisJX19yYXdfd3JpdGVsKHRjb24sIFMzQzI0MTBfVENPTik7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlyZXR1cm4gMDsKK30KKworRVhQT1JUX1NZTUJPTChwd21fY29uZmlnKTsKKworc3RhdGljIGludCBwd21fcmVnaXN0ZXIoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwlwd20tPmR1dHlfbnMgPSAtMTsKKwlwd20tPnBlcmlvZF9ucyA9IC0xOworCisJbXV0ZXhfbG9jaygmcHdtX2xvY2spOworCWxpc3RfYWRkX3RhaWwoJnB3bS0+bGlzdCwgJnB3bV9saXN0KTsKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHMzY19wd21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBwd21fZGV2aWNlICpwd207CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIHRjb247CisJdW5zaWduZWQgaW50IGlkID0gcGRldi0+aWQ7CisJaW50IHJldDsKKworCWlmIChpZCA9PSA0KSB7CisJCWRldl9lcnIoZGV2LCAiVElNRVI0IGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXG4iKTsKKwkJcmV0dXJuIC1FTlhJTzsKKwl9CisKKwlwd20gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcHdtX2RldmljZSksIEdGUF9LRVJORUwpOworCWlmIChwd20gPT0gTlVMTCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBwd21fZGV2aWNlXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJcHdtLT5wZGV2ID0gcGRldjsKKwlwd20tPnB3bV9pZCA9IGlkOworCisJLyogY2FsY3VsYXRlIGJhc2Ugb2YgY29udHJvbCBiaXRzIGluIFRDT04gKi8KKwlwd20tPnRjb25fYmFzZSA9IGlkID09IDAgPyAwIDogKGlkICogNCkgKyA0OworCisJcHdtLT5jbGsgPSBjbGtfZ2V0KGRldiwgInB3bS10aW4iKTsKKwlpZiAoSVNfRVJSKHB3bS0+Y2xrKSkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgcHdtIHRpbiBjbGtcbiIpOworCQlyZXQgPSBQVFJfRVJSKHB3bS0+Y2xrKTsKKwkJZ290byBlcnJfYWxsb2M7CisJfQorCisJcHdtLT5jbGtfZGl2ID0gY2xrX2dldChkZXYsICJwd20tdGRpdiIpOworCWlmIChJU19FUlIocHdtLT5jbGtfZGl2KSkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgcHdtIHRkaXYgY2xrXG4iKTsKKwkJcmV0ID0gUFRSX0VSUihwd20tPmNsa19kaXYpOworCQlnb3RvIGVycl9jbGtfdGluOworCX0KKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCXRjb24gPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDT04pOworCXRjb24gfD0gcHdtX3Rjb25faW52ZXJ0KHB3bSk7CisJX19yYXdfd3JpdGVsKHRjb24sIFMzQzI0MTBfVENPTik7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKworCXJldCA9IHB3bV9yZWdpc3Rlcihwd20pOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgcHdtXG4iKTsKKwkJZ290byBlcnJfY2xrX3RkaXY7CisJfQorCisJcHdtX2RiZyhwd20sICJjb25maWcgYml0cyAlMDJ4XG4iLAorCQkoX19yYXdfcmVhZGwoUzNDMjQxMF9UQ09OKSA+PiBwd20tPnRjb25fYmFzZSkgJiAweDBmKTsKKworCWRldl9pbmZvKGRldiwgInRpbiBhdCAlbHUsIHRkaXYgYXQgJWx1LCB0aW49JXNjbGssIGJhc2UgJWRcbiIsCisJCSBjbGtfZ2V0X3JhdGUocHdtLT5jbGspLAorCQkgY2xrX2dldF9yYXRlKHB3bS0+Y2xrX2RpdiksCisJCSBwd21faXNfdGRpdihwd20pID8gImRpdiIgOiAiZXh0IiwgcHdtLT50Y29uX2Jhc2UpOworCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHdtKTsKKwlyZXR1cm4gMDsKKworIGVycl9jbGtfdGRpdjoKKwljbGtfcHV0KHB3bS0+Y2xrX2Rpdik7CisKKyBlcnJfY2xrX3RpbjoKKwljbGtfcHV0KHB3bS0+Y2xrKTsKKworIGVycl9hbGxvYzoKKwlrZnJlZShwd20pOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgczNjX3B3bV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcHdtX2RldmljZSAqcHdtID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwljbGtfcHV0KHB3bS0+Y2xrX2Rpdik7CisJY2xrX3B1dChwd20tPmNsayk7CisJa2ZyZWUocHdtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2NfcHdtX2RyaXZlciA9IHsKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAiczNjMjR4eC1wd20iLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9LAorCS5wcm9iZQkJPSBzM2NfcHdtX3Byb2JlLAorCS5yZW1vdmUJCT0gX19kZXZleGl0X3AoczNjX3B3bV9yZW1vdmUpLAorfTsKKworc3RhdGljIGludCBfX2luaXQgcHdtX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJY2xrX3NjYWxlclswXSA9IGNsa19nZXQoTlVMTCwgInB3bS1zY2FsZXIwIik7CisJY2xrX3NjYWxlclsxXSA9IGNsa19nZXQoTlVMTCwgInB3bS1zY2FsZXIxIik7CisKKwlpZiAoSVNfRVJSKGNsa19zY2FsZXJbMF0pIHx8IElTX0VSUihjbGtfc2NhbGVyWzFdKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBmYWlsZWQgdG8gZ2V0IHNjYWxlciBjbG9ja3NcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZzM2NfcHdtX2RyaXZlcik7CisJaWYgKHJldCkKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogZmFpbGVkIHRvIGFkZCBwd20gZHJpdmVyXG4iLCBfX2Z1bmNfXyk7CisKKwlyZXR1cm4gcmV0OworfQorCithcmNoX2luaXRjYWxsKHB3bV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3Rvb2xzL21hY2gtdHlwZXMgYi9hcmNoL2FybS90b29scy9tYWNoLXR5cGVzCmluZGV4IDIwN2E4YjUuLjBiZTU2MzAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3Rvb2xzL21hY2gtdHlwZXMKKysrIGIvYXJjaC9hcm0vdG9vbHMvbWFjaC10eXBlcwpAQCAtMTIsNyArMTIsNyBAQAogIwogIyAgIGh0dHA6Ly93d3cuYXJtLmxpbnV4Lm9yZy51ay9kZXZlbG9wZXIvbWFjaGluZXMvP2FjdGlvbj1uZXcKICMKLSMgTGFzdCB1cGRhdGU6IFNhdCBBcHIgMTkgMTE6MjM6MzggMjAwOAorIyBMYXN0IHVwZGF0ZTogTW9uIEp1bCA3IDE2OjI1OjM5IDIwMDgKICMKICMgbWFjaGluZV9pc194eHgJQ09ORklHX3h4eHgJCU1BQ0hfVFlQRV94eHgJCW51bWJlcgogIwpAQCAtNTYwLDcgKzU2MCw2IEBACiBib3hlcgkJCU1BQ0hfQk9YRVIJCUJPWEVSCQkJNTQ0CiBzaGVwaGVyZAkJTUFDSF9TSEVQSEVSRAkJU0hFUEhFUkQJCTU0NQogYW1sNDI4MDBhYQkJTUFDSF9BTUw0MjgwMEFBCQlBTUw0MjgwMEFBCQk1NDYKLW1sNjc0MDAxCQlNQUNIX01BQ0hfVFlQRV9NTDY3NDAwMQlNQUNIX1RZUEVfTUw2NzQwMDEJNTQ3CiBscGMyMjk0CQkJTUFDSF9MUEMyMjk0CQlMUEMyMjk0CQkJNTQ4CiBzd2l0Y2hncmFzcwkJTUFDSF9TV0lUQ0hHUkFTUwlTV0lUQ0hHUkFTUwkJNTQ5CiBlbnNfY211CQkJTUFDSF9FTlNfQ01VCQlFTlNfQ01VCQkJNTUwCkBAIC03NDgsNyArNzQ3LDYgQEAKIGl0ZTgxNTIJCQlNQUNIX0lURTgxNTIJCUlURTgxNTIJCQk3MzUKIGxwYzN4eHgJCQlNQUNIX0xQQzNYWFgJCUxQQzNYWFgJCQk3MzYKIHB1cHBldGVlcgkJTUFDSF9QVVBQRVRFRVIJCVBVUFBFVEVFUgkJNzM3Ci12dDAwMQkJCU1BQ0hfTUFDSF9WQURBVEVDSAlNQUNIX1ZBREFURUNICQk3MzgKIGU1NzAJCQlNQUNIX0U1NzAJCUU1NzAJCQk3MzkKIHg1MAkJCU1BQ0hfWDUwCQlYNTAJCQk3NDAKIHJlY29uCQkJTUFDSF9SRUNPTgkJUkVDT04JCQk3NDEKQEAgLTgzOSw3ICs4MzcsNyBAQAogb21hcF9nc2FtcGxlCQlNQUNIX09NQVBfR1NBTVBMRQlPTUFQX0dTQU1QTEUJCTgyNgogcmVhbHZpZXdfZWIJCU1BQ0hfUkVBTFZJRVdfRUIJUkVBTFZJRVdfRUIJCTgyNwogc2Ftb2EJCQlNQUNIX1NBTU9BCQlTQU1PQQkJCTgyOAotdDN4c2NhbGUJCU1BQ0hfVDNYU0NBTEUJCVQzWFNDQUxFCQk4MjkKK3BhbG10MwkJCU1BQ0hfUEFMTVQzCQlQQUxNVDMJCQk4MjkKIGk4NzgJCQlNQUNIX0k4NzgJCUk4NzgJCQk4MzAKIGJvcnpvaQkJCU1BQ0hfQk9SWk9JCQlCT1JaT0kJCQk4MzEKIGdlY2tvCQkJTUFDSF9HRUNLTwkJR0VDS08JCQk4MzIKQEAgLTg5NSw3ICs4OTMsNyBAQAogb21pX2JvYXJkCQlNQUNIX09NSV9CT0FSRAkJT01JX0JPQVJECQk4ODIKIG14MjFjaXYJCQlNQUNIX01YMjFDSVYJCU1YMjFDSVYJCQk4ODMKIG1haGlfY2RhYwkJTUFDSF9NQUhJX0NEQUMJCU1BSElfQ0RBQwkJODg0Ci14c2NhbGVfcGFsbXR4CQlNQUNIX1hTQ0FMRV9QQUxNVFgJWFNDQUxFX1BBTE1UWAkJODg1CitwYWxtdHgJCQlNQUNIX1BBTE1UWAkJUEFMTVRYCQkJODg1CiBzM2MyNDEzCQkJTUFDSF9TM0MyNDEzCQlTM0MyNDEzCQkJODg3CiBzYW1zeXNfZXAwCQlNQUNIX1NBTVNZU19FUDAJCVNBTVNZU19FUDAJCTg4OAogd2czMDJ2MQkJCU1BQ0hfV0czMDJWMQkJV0czMDJWMQkJCTg4OQpAQCAtOTE4LDcgKzkxNiw3IEBACiBhcGY5MzI4CQkJTUFDSF9BUEY5MzI4CQlBUEY5MzI4CQkJOTA2CiBvbWFwX3dpcG9xCQlNQUNIX09NQVBfV0lQT1EJCU9NQVBfV0lQT1EJCTkwNwogb21hcF90d2lwCQlNQUNIX09NQVBfVFdJUAkJT01BUF9UV0lQCQk5MDgKLXhzY2FsZV90cmVvNjUwCQlNQUNIX1hTQ0FMRV9QQUxNVFJFTzY1MAlYU0NBTEVfUEFMTVRSRU82NTAJOTA5CitwYWxtdHJlbzY1MAkJTUFDSF9QQUxNVFJFTzY1MAlQQUxNVFJFTzY1MAkJOTA5CiBhY3VtZW4JCQlNQUNIX0FDVU1FTgkJQUNVTUVOCQkJOTEwCiB4cDEwMAkJCU1BQ0hfWFAxMDAJCVhQMTAwCQkJOTExCiBmczI0MTAJCQlNQUNIX0ZTMjQxMAkJRlMyNDEwCQkJOTEyCkBAIC05MjYsOCArOTI0LDggQEAKIHNxMmZ0bHBhbG0JCU1BQ0hfU1EyRlRMUEFMTQkJU1EyRlRMUEFMTQkJOTE0CiBic2Vtc2VydmVyCQlNQUNIX0JTRU1TRVJWRVIJCUJTRU1TRVJWRVIJCTkxNQogbmV0Y2xpZW50CQlNQUNIX05FVENMSUVOVAkJTkVUQ0xJRU5UCQk5MTYKLXhzY2FsZV9wYWxtdHQ1CQlNQUNIX1hTQ0FMRV9QQUxNVFQ1CVhTQ0FMRV9QQUxNVFQ1CQk5MTcKLXhzY2FsZV9wYWxtdGMJCU1BQ0hfT01BUF9QQUxNVEMJT01BUF9QQUxNVEMJCTkxOAorcGFsbXQ1CQkJTUFDSF9QQUxNVDUJCVBBTE1UNQkJCTkxNworcGFsbXRjCQkJTUFDSF9QQUxNVEMJCVBBTE1UQwkJCTkxOAogb21hcF9hcG9sbG9uCQlNQUNIX09NQVBfQVBPTExPTglPTUFQX0FQT0xMT04JCTkxOQogbXhjMzAwMzBldmIJCU1BQ0hfTVhDMzAwMzBFVkIJTVhDMzAwMzBFVkIJCTkyMAogcmVhXzJkCQkJTUFDSF9SRUFfMkQJCVJFQV8yRAkJCTkyMQpAQCAtMTIyMCw3ICsxMjE4LDYgQEAKIGVtNzIxMAkJCU1BQ0hfRU03MjEwCQlFTTcyMTAJCQkxMjEyCiBodGNoZXJtZXMJCU1BQ0hfSFRDSEVSTUVTCQlIVENIRVJNRVMJCTEyMTMKIGV0aV9jMQkJCU1BQ0hfRVRJX0MxCQlFVElfQzEJCQkxMjE0Ci1tYWNoX2RlcDI0MTAJCU1BQ0hfTUFDSF9ERVAyNDEwCU1BQ0hfREVQMjQxMAkJMTIxNQogYWMxMDAJCQlNQUNIX0FDMTAwCQlBQzEwMAkJCTEyMTYKIHNuZWV0Y2gJCQlNQUNIX1NORUVUQ0gJCVNORUVUQ0gJCQkxMjE3CiBzdHVkZW50bWF0ZQkJTUFDSF9TVFVERU5UTUFURQlTVFVERU5UTUFURQkJMTIxOApAQCAtMTQyMSwxMCArMTQxOCwxMCBAQAogY250eV90aXRhbgkJTUFDSF9DTlRZX1RJVEFOCQlDTlRZX1RJVEFOCQkxNDE4CiBhcHAzeHgJCQlNQUNIX0FQUDNYWAkJQVBQM1hYCQkJMTQxOQogc2lkZW9hdHNncmFtYQkJTUFDSF9TSURFT0FUU0dSQU1BCVNJREVPQVRTR1JBTUEJCTE0MjAKLXhzY2FsZV9wYWxtdDcwMHAJTUFDSF9YU0NBTEVfUEFMTVQ3MDBQCVhTQ0FMRV9QQUxNVDcwMFAJMTQyMQoteHNjYWxlX3BhbG10NzAwdwlNQUNIX1hTQ0FMRV9QQUxNVDcwMFcJWFNDQUxFX1BBTE1UNzAwVwkxNDIyCi14c2NhbGVfcGFsbXQ3NTAJCU1BQ0hfWFNDQUxFX1BBTE1UNzUwCVhTQ0FMRV9QQUxNVDc1MAkJMTQyMwoteHNjYWxlX3BhbG10NzU1cAlNQUNIX1hTQ0FMRV9QQUxNVDc1NVAJWFNDQUxFX1BBTE1UNzU1UAkxNDI0CitwYWxtdHJlbzcwMHAJCU1BQ0hfUEFMTVRSRU83MDBQCVBBTE1UUkVPNzAwUAkJMTQyMQorcGFsbXRyZW83MDB3CQlNQUNIX1BBTE1UUkVPNzAwVwlQQUxNVFJFTzcwMFcJCTE0MjIKK3BhbG10cmVvNzUwCQlNQUNIX1BBTE1UUkVPNzUwCVBBTE1UUkVPNzUwCQkxNDIzCitwYWxtdHJlbzc1NXAJCU1BQ0hfUEFMTVRSRU83NTVQCVBBTE1UUkVPNzU1UAkJMTQyNAogZXpyZWdhbnV0OTIwMAkJTUFDSF9FWlJFR0FOVVQ5MjAwCUVaUkVHQU5VVDkyMDAJCTE0MjUKIHNhcmdlCQkJTUFDSF9TQVJHRQkJU0FSR0UJCQkxNDI2CiBhNjk2CQkJTUFDSF9BNjk2CQlBNjk2CQkJMTQyNwpAQCAtMTQ2Myw3ICsxNDYwLDcgQEAKIGh0Y3RpdGFuCQlNQUNIX0hUQ1RJVEFOCQlIVENUSVRBTgkJMTQ2MwogcXJhbml1bQkJCU1BQ0hfUVJBTklVTQkJUVJBTklVTQkJCTE0NjQKIGFkeF93c2MyCQlNQUNIX0FEWF9XU0MyCQlBRFhfV1NDMgkJMTQ2NQotYWR4X21lZGNvbQkJTUFDSF9BRFhfTUVESU5FVAlBRFhfTUVESU5FVAkJMTQ2NgorYWR4X21lZGNvbQkJTUFDSF9BRFhfTUVEQ09NCQlBRFhfTUVEQ09NCQkxNDY2CiBiYm9hcmQJCQlNQUNIX0JCT0FSRAkJQkJPQVJECQkJMTQ2NwogY2FtYnJpYQkJCU1BQ0hfQ0FNQlJJQQkJQ0FNQlJJQQkJCTE0NjgKIG10N3h4eAkJCU1BQ0hfTVQ3WFhYCQlNVDdYWFgJCQkxNDY5CkBAIC0xNTE5LDcgKzE1MTYsNyBAQAogY29yc2ljYQkJCU1BQ0hfQ09SU0lDQQkJQ09SU0lDQQkJCTE1MTkKIGJpZ2V5ZQkJCU1BQ0hfQklHRVlFCQlCSUdFWUUJCQkxNTIwCiB0bGw1MDAwCQkJTUFDSF9UTEw1MDAwCQlUTEw1MDAwCQkJMTUyMgotaG5pMjcwCQkJTUFDSF9ITklfWDI3MAkJSE5JX1gyNzAJCTE1MjMKK2JlYm90CQkJTUFDSF9CRUJPVAkJQkVCT1QJCQkxNTIzCiBxb25nCQkJTUFDSF9RT05HCQlRT05HCQkJMTUyNAogdGNvbXBhY3QJCU1BQ0hfVENPTVBBQ1QJCVRDT01QQUNUCQkxNTI1CiBwdW1hNQkJCU1BQ0hfUFVNQTUJCVBVTUE1CQkJMTUyNgpAQCAtMTYzNiw3ICsxNjMzLDYgQEAKIHBhbGVybW9jCQlNQUNIX1BBTEVSTU9DCQlQQUxFUk1PQwkJMTYzOAogb21hcF9sZHAJCU1BQ0hfT01BUF9MRFAJCU9NQVBfTERQCQkxNjM5CiBpcDUwMAkJCU1BQ0hfSVA1MDAJCUlQNTAwCQkJMTY0MAotbXgzNWFkcwkJCU1BQ0hfTUFDSF9NWDM1QURTCU1BQ0hfTVgzNUFEUwkJMTY0MQogYXNlMgkJCU1BQ0hfQVNFMgkJQVNFMgkJCTE2NDIKIG14MzVldmIJCQlNQUNIX01YMzVFVkIJCU1YMzVFVkIJCQkxNjQzCiBhbWxfbTgwNTAJCU1BQ0hfQU1MX004MDUwCQlBTUxfTTgwNTAJCTE2NDQKQEAgLTE2NDcsNyArMTY0Myw3IEBACiB0cml6ZXBzNHdsCQlNQUNIX1RSSVpFUFM0V0wJCVRSSVpFUFM0V0wJCTE2NDkKIHRyaXplcHM1CQlNQUNIX1RSSVpFUFM1CQlUUklaRVBTNQkJMTY1MAogbWFybGluCQkJTUFDSF9NQVJMSU4JCU1BUkxJTgkJCTE2NTEKLXRzNzgwMAkJCU1BQ0hfVFM3ODAwCQlUUzc4MDAJCQkxNjUyCit0czc4eHgJCQlNQUNIX1RTNzhYWAkJVFM3OFhYCQkJMTY1MgogaHBpcGFxMjE0CQlNQUNIX0hQSVBBUTIxNAkJSFBJUEFRMjE0CQkxNjUzCiBhdDU3MmQ5NDBkY20JCU1BQ0hfQVQ1NzJEOTQwRENNCUFUNTcyRDk0MERDTQkJMTY1NAogbmUxYm9hcmQJCU1BQ0hfTkUxQk9BUkQJCU5FMUJPQVJECQkxNjU1CkBAIC0xNzIwLDMgKzE3MTYsOTkgQEAKIGxnX2tzMjAJCQlNQUNIX0xHX0tTMjAJCUxHX0tTMjAJCQkxNzI1CiBoaGdwcwkJCU1BQ0hfSEhHUFMJCUhIR1BTCQkJMTcyNgogbm9raWFfbjgxMF93aW1heAlNQUNIX05PS0lBX044MTBfV0lNQVgJTk9LSUFfTjgxMF9XSU1BWAkxNzI3CitpbnNpZ2h0CQkJTUFDSF9JTlNJR0hUCQlJTlNJR0hUCQkJMTcyOAorc2FwcGhpcmUJCU1BQ0hfU0FQUEhJUkUJCVNBUFBISVJFCQkxNzI5Citjc2I2Mzd4bwkJTUFDSF9DU0I2MzdYTwkJQ1NCNjM3WE8JCTE3MzAKK2V2aXNpb25nCQlNQUNIX0VWSVNJT05HCQlFVklTSU9ORwkJMTczMQorc3RtcDM3eHgJCU1BQ0hfU1RNUDM3WFgJCVNUTVAzN1hYCQkxNzMyCitzdG1wMzc4eAkJTUFDSF9TVE1QMzhYWAkJU1RNUDM4WFgJCTE3MzMKK3RudAkJCU1BQ0hfVE5UCQlUTlQJCQkxNzM0Cit0Ynh0CQkJTUFDSF9UQlhUCQlUQlhUCQkJMTczNQorcGxheW1hdGUJCU1BQ0hfUExBWU1BVEUJCVBMQVlNQVRFCQkxNzM2CitwbnMxMAkJCU1BQ0hfUE5TMTAJCVBOUzEwCQkJMTczNworZXpuYXZpCQkJTUFDSF9FWk5BVkkJCUVaTkFWSQkJCTE3MzgKK3BzNDAwMAkJCU1BQ0hfUFM0MDAwCQlQUzQwMDAJCQkxNzM5CitlenhfYTc4MAkJTUFDSF9FWlhfQTc4MAkJRVpYX0E3ODAJCTE3NDAKK2V6eF9lNjgwCQlNQUNIX0VaWF9FNjgwCQlFWlhfRTY4MAkJMTc0MQorZXp4X2ExMjAwCQlNQUNIX0VaWF9BMTIwMAkJRVpYX0ExMjAwCQkxNzQyCitlenhfZTYJCQlNQUNIX0VaWF9FNgkJRVpYX0U2CQkJMTc0MworZXp4X2UyCQkJTUFDSF9FWlhfRTIJCUVaWF9FMgkJCTE3NDQKK2V6eF9hOTEwCQlNQUNIX0VaWF9BOTEwCQlFWlhfQTkxMAkJMTc0NQorY3dteDMxCQkJTUFDSF9DV01YMzEJCUNXTVgzMQkJCTE3NDYKK3NsMjMxMgkJCU1BQ0hfU0wyMzEyCQlTTDIzMTIJCQkxNzQ3CitibGVubnkJCQlNQUNIX0JMRU5OWQkJQkxFTk5ZCQkJMTc0OAorZHMxMDcJCQlNQUNIX0RTMTA3CQlEUzEwNwkJCTE3NDkKK2RzeDA3CQkJTUFDSF9EU1gwNwkJRFNYMDcJCQkxNzUwCitwaWNvY29tMQkJTUFDSF9QSUNPQ09NMQkJUElDT0NPTTEJCTE3NTEKK2x5bnhfd29sdmVyaW5lCQlNQUNIX0xZTlhfV09MVkVSSU5FCUxZTlhfV09MVkVSSU5FCQkxNzUyCit1YmlzeXNfcDlfc2MxOQkJTUFDSF9VQklTWVNfUDlfU0MxOQlVQklTWVNfUDlfU0MxOQkJMTc1Mwora3JhdG9zX2xvdwkJTUFDSF9LUkFUT1NfTE9XCQlLUkFUT1NfTE9XCQkxNzU0CittNzAwCQkJTUFDSF9NNzAwCQlNNzAwCQkJMTc1NQorZWRtaW5pX3YyCQlNQUNIX0VETUlOSV9WMgkJRURNSU5JX1YyCQkxNzU2Cit6aXBpdDIJCQlNQUNIX1pJUElUMgkJWklQSVQyCQkJMTc1NworaHNsZmVtdG9jZWxsCQlNQUNIX0hTTEZFTVRPQ0VMTAlIU0xGRU1UT0NFTEwJCTE3NTgKK2RhaW50cmVlX2F0OTEJCU1BQ0hfREFJTlRSRUVfQVQ5MQlEQUlOVFJFRV9BVDkxCQkxNzU5CitzZzU2MHVzYgkJTUFDSF9TRzU2MFVTQgkJU0c1NjBVU0IJCTE3NjAKK29tYXAzX3BhbmRvcmEJCU1BQ0hfT01BUDNfUEFORE9SQQlPTUFQM19QQU5ET1JBCQkxNzYxCit1c3I4MjAwCQkJTUFDSF9VU1I4MjAwCQlVU1I4MjAwCQkJMTc2MgorczFzNjVrCQkJTUFDSF9TMVM2NUsJCVMxUzY1SwkJCTE3NjMKK3MyczY1YQkJCU1BQ0hfUzJTNjVBCQlTMlM2NUEJCQkxNzY0CitpY29yZQkJCU1BQ0hfSUNPUkUJCUlDT1JFCQkJMTc2NQorbXNzMgkJCU1BQ0hfTVNTMgkJTVNTMgkJCTE3NjYKK2JlbG1vbnQJCQlNQUNIX0JFTE1PTlQJCUJFTE1PTlQJCQkxNzY3Cithc3VzcDUyNQkJTUFDSF9BU1VTUDUyNQkJQVNVU1A1MjUJCTE3NjgKK2xiODhyYzg0ODAJCU1BQ0hfTEI4OFJDODQ4MAkJTEI4OFJDODQ4MAkJMTc2OQoraGlweGEJCQlNQUNIX0hJUFhBCQlISVBYQQkJCTE3NzAKK214MjVfM2RzCQlNQUNIX01YMjVfM0RTCQlNWDI1XzNEUwkJMTc3MQorbTgwMAkJCU1BQ0hfTTgwMAkJTTgwMAkJCTE3NzIKK29tYXAzNTMwX2x2X3NvbQkJTUFDSF9PTUFQMzUzMF9MVl9TT00JT01BUDM1MzBfTFZfU09NCQkxNzczCitwcmltYV9ldmIJCU1BQ0hfUFJJTUFfRVZCCQlQUklNQV9FVkIJCTE3NzQKK214MzFidDEJCQlNQUNIX01YMzFCVDEJCU1YMzFCVDEJCQkxNzc1CithdGxhczRfZXZiCQlNQUNIX0FUTEFTNF9FVkIJCUFUTEFTNF9FVkIJCTE3NzYKK214MzFjaWNhZGEJCU1BQ0hfTVgzMUNJQ0FEQQkJTVgzMUNJQ0FEQQkJMTc3NworbWk0MjR3cgkJCU1BQ0hfTUk0MjRXUgkJTUk0MjRXUgkJCTE3NzgKK2F4c191bHRyYXgJCU1BQ0hfQVhTX1VMVFJBWAkJQVhTX1VMVFJBWAkJMTc3OQorYXQ1NzJkOTQwZGViCQlNQUNIX0FUNTcyRDk0MERFQglBVDU3MkQ5NDBERUIJCTE3ODAKK2RhdmluY2lfZGE4eHhfZXZtCU1BQ0hfREFWSU5DSV9EQThYWF9FVk0JREFWSU5DSV9EQThYWF9FVk0JMTc4MQorZXA5MzAyCQkJTUFDSF9FUDkzMDIJCUVQOTMwMgkJCTE3ODIKK2F0NTcyZDk0MGhmZWIJCU1BQ0hfQVQ1NzJEOTQwSEZFQglBVDU3MkQ5NDBIRkVCCQkxNzgzCitjeWJvb2szCQkJTUFDSF9DWUJPT0szCQlDWUJPT0szCQkJMTc4NAord2RnMDAyCQkJTUFDSF9XREcwMDIJCVdERzAwMgkJCTE3ODUKK3NnNTYwYWRzbAkJTUFDSF9TRzU2MEFEU0wJCVNHNTYwQURTTAkJMTc4NgorbmV4dGlvX24yODAwX2ljYQlNQUNIX05FWFRJT19OMjgwMF9JQ0EJTkVYVElPX04yODAwX0lDQQkxNzg3CittYXJ2ZWxsX25ld2RiCQlNQUNIX01BUlZFTExfTkVXREIJTUFSVkVMTF9ORVdEQgkJMTc4OQordmFuZGlodWQJCU1BQ0hfVkFORElIVUQJCVZBTkRJSFVECQkxNzkwCittYWd4X2U4CQkJTUFDSF9NQUdYX0U4CQlNQUdYX0U4CQkJMTc5MQorbWFneF96NgkJCU1BQ0hfTUFHWF9aNgkJTUFHWF9aNgkJCTE3OTIKK21hZ3hfdjgJCQlNQUNIX01BR1hfVjgJCU1BR1hfVjgJCQkxNzkzCittYWd4X3U5CQkJTUFDSF9NQUdYX1U5CQlNQUdYX1U5CQkJMTc5NAordG91Z2hjZjA4CQlNQUNIX1RPVUdIQ0YwOAkJVE9VR0hDRjA4CQkxNzk1Cit6dzQ0MDAJCQlNQUNIX1pXNDQwMAkJWlc0NDAwCQkJMTc5NgorbWFyYXQ5MQkJCU1BQ0hfTUFSQVQ5MQkJTUFSQVQ5MQkJCTE3OTcKK292ZXJvCQkJTUFDSF9PVkVSTwkJT1ZFUk8JCQkxNzk4CithdDI0NDBldmIJCU1BQ0hfQVQyNDQwRVZCCQlBVDI0NDBFVkIJCTE3OTkKK25lb2NvcmU5MjYJCU1BQ0hfTkVPQ09SRTkyNgkJTkVPQ09SRTkyNgkJMTgwMAord25yODU0dAkJCU1BQ0hfV05SODU0VAkJV05SODU0VAkJCTE4MDEKK2lteDI3CQkJTUFDSF9JTVgyNwkJSU1YMjcJCQkxODAyCittb29zZV9kYgkJTUFDSF9NT09TRV9EQgkJTU9PU0VfREIJCTE4MDMKK2ZhYjQJCQlNQUNIX0ZBQjQJCUZBQjQJCQkxODA0CitodGNkaWFtb25kCQlNQUNIX0hUQ0RJQU1PTkQJCUhUQ0RJQU1PTkQJCTE4MDUKK2Zpb25hCQkJTUFDSF9GSU9OQQkJRklPTkEJCQkxODA2CitteGMzMDAzMF94CQlNQUNIX01YQzMwMDMwX1gJCU1YQzMwMDMwX1gJCTE4MDcKK2JtcDEwMDAJCQlNQUNIX0JNUDEwMDAJCUJNUDEwMDAJCQkxODA4Citsb2dpOTIwMAkJTUFDSF9MT0dJOTIwMAkJTE9HSTkyMDAJCTE4MDkKK3RxbWEzMQkJCU1BQ0hfVFFNQTMxCQlUUU1BMzEJCQkxODEwCitjY3c5cDkyMTVqcwkJTUFDSF9DQ1c5UDkyMTVKUwlDQ1c5UDkyMTVKUwkJMTgxMQorcmQ4OGY1MTgxbF9nZQkJTUFDSF9SRDg4RjUxODFMX0dFCVJEODhGNTE4MUxfR0UJCTE4MTIKK3NpZm1haW4JCQlNQUNIX1NJRk1BSU4JCVNJRk1BSU4JCQkxODEzCitzYW05X2w5MjYxCQlNQUNIX1NBTTlfTDkyNjEJCVNBTTlfTDkyNjEJCTE4MTQKK2NjOW0yNDQzanMJCU1BQ0hfQ0M5TTI0NDNKUwkJQ0M5TTI0NDNKUwkJMTgxNQoreGFyaWEzMDAJCU1BQ0hfWEFSSUEzMDAJCVhBUklBMzAwCQkxODE2CitpdDkyMDAJCQlNQUNIX0lUOTIwMAkJSVQ5MjAwCQkJMTgxNworcmQ4OGY1MTgxbF9meG8JCU1BQ0hfUkQ4OEY1MTgxTF9GWE8JUkQ4OEY1MTgxTF9GWE8JCTE4MTgKK2tyaXNzX3NlbnNvcgkJTUFDSF9LUklTU19TRU5TT1IJS1JJU1NfU0VOU09SCQkxODE5CitwaWx6X3BtaTUJCU1BQ0hfUElMWl9QTUk1CQlQSUxaX1BNSTUJCTE4MjAKK2phZGUJCQlNQUNIX0pBREUJCUpBREUJCQkxODIxCitrczg2OTVfc29mdHBsYwkJTUFDSF9LUzg2OTVfU09GVFBMQwlLUzg2OTVfU09GVFBMQwkJMTgyMgorZ3ByaXNjNAkJCU1BQ0hfR1BSSVNDNAkJR1BSSVNDNAkJCTE4MjMKK3N0YW1wOTI2MAkJTUFDSF9TVEFNUDkyNjAJCVNUQU1QOTI2MAkJMTgyNApkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9LY29uZmlnIGIvYXJjaC9hdnIzMi9LY29uZmlnCmluZGV4IDA5YWQ3OTkuLjQ1ZDYzYzkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvS2NvbmZpZworKysgYi9hcmNoL2F2cjMyL0tjb25maWcKQEAgLTg4LDYgKzg4LDcgQEAKIAlzZWxlY3QgTU1VCiAJc2VsZWN0IFBFUkZPUk1BTkNFX0NPVU5URVJTCiAJc2VsZWN0IEhBVkVfR1BJT19MSUIKKwlzZWxlY3QgR0VORVJJQ19BTExPQ0FUT1IKIAogIwogIyBDUFUgdHlwZXMKQEAgLTE0Nyw2ICsxNDgsOSBAQAogCiBzb3VyY2UgImtlcm5lbC9LY29uZmlnLnByZWVtcHQiCiAKK2NvbmZpZyBRVUlDS0xJU1QKKwlkZWZfYm9vbCB5CisKIGNvbmZpZyBIQVZFX0FSQ0hfQk9PVE1FTV9OT0RFCiAJZGVmX2Jvb2wgbgogCkBAIC0yMDEsNiArMjA1LDExIEBACiAKIG1lbnUgIlBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucyIKIAorc291cmNlICJrZXJuZWwvcG93ZXIvS2NvbmZpZyIKKworY29uZmlnIEFSQ0hfU1VTUEVORF9QT1NTSUJMRQorCWRlZl9ib29sIHkKKwogbWVudSAiQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nIgogCiBzb3VyY2UgImRyaXZlcnMvY3B1ZnJlcS9LY29uZmlnIgpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9ib2FyZHMvYXRuZ3cxMDAvc2V0dXAuYyBiL2FyY2gvYXZyMzIvYm9hcmRzL2F0bmd3MTAwL3NldHVwLmMKaW5kZXggYTM5OGJlMi4uYTUxYmI5ZiAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9ib2FyZHMvYXRuZ3cxMDAvc2V0dXAuYworKysgYi9hcmNoL2F2cjMyL2JvYXJkcy9hdG5ndzEwMC9zZXR1cC5jCkBAIC05LDYgKzksOCBAQAogICovCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZXRoZXJkZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMtZ3Bpby5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CkBAIC0yNSw2ICsyNywxMyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL2luaXQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9wb3J0bXV4Lmg+CiAKKy8qIE9zY2lsbGF0b3IgZnJlcXVlbmNpZXMuIFRoZXNlIGFyZSBib2FyZC1zcGVjaWZpYyAqLwordW5zaWduZWQgbG9uZyBhdDMyX2JvYXJkX29zY19yYXRlc1szXSA9IHsKKwlbMF0gPSAzMjc2OCwJLyogMzIuNzY4IGtIeiBvbiBSVEMgb3NjICovCisJWzFdID0gMjAwMDAwMDAsCS8qIDIwIE1IeiBvbiBvc2MwICovCisJWzJdID0gMTIwMDAwMDAsCS8qIDEyIE1IeiBvbiBvc2MxICovCit9OworCiAvKiBJbml0aWFsaXplZCBieSBib290bG9hZGVyLXNwZWNpZmljIHN0YXJ0dXAgY29kZS4gKi8KIHN0cnVjdCB0YWcgKmJvb3Rsb2FkZXJfdGFncyBfX2luaXRkYXRhOwogCkBAIC0xNDAsNiArMTQ5LDEwIEBACiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBpMmNfaW5mb1tdID0geworCS8qIE5PVEU6ICBvcmlnaW5hbCBBVHRpbnkyNCBmaXJtd2FyZSBpcyBhdCBhZGRyZXNzIDB4MGIgKi8KK307CisKIHN0YXRpYyBpbnQgX19pbml0IGF0bmd3MTAwX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZAlpOwpAQCAtMTY1LDEyICsxNzgsMjggQEAKIAl9CiAJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZuZ3dfZ3Bpb19sZWRzKTsKIAorCS8qIGFsbCB0aGVzZSBpMmMvc21idXMgcGlucyBzaG91bGQgaGF2ZSBleHRlcm5hbCBwdWxsdXBzIGZvcgorCSAqIG9wZW4tZHJhaW4gc2hhcmluZyBhbW9uZyBhbGwgSTJDIGRldmljZXMuICBTREEgYW5kIFNDTCBkbzsKKwkgKiBQQjI4L0VYVElOVDMgZG9lc24ndDsgaXQgc2hvdWxkIGJlIFNNQkFMRVJUIyAoZm9yIFBNQnVzKSwKKwkgKiBidXQgaXQncyBub3QgYXZhaWxhYmxlIG9mZi1ib2FyZC4KKwkgKi8KKwlhdDMyX3NlbGVjdF9wZXJpcGgoR1BJT19QSU5fUEIoMjgpLCAwLCBBVDMyX0dQSU9GX1BVTExVUCk7CiAJYXQzMl9zZWxlY3RfZ3BpbyhpMmNfZ3Bpb19kYXRhLnNkYV9waW4sCiAJCUFUMzJfR1BJT0ZfTVVMVElEUlYgfCBBVDMyX0dQSU9GX09VVFBVVCB8IEFUMzJfR1BJT0ZfSElHSCk7CiAJYXQzMl9zZWxlY3RfZ3BpbyhpMmNfZ3Bpb19kYXRhLnNjbF9waW4sCiAJCUFUMzJfR1BJT0ZfTVVMVElEUlYgfCBBVDMyX0dQSU9GX09VVFBVVCB8IEFUMzJfR1BJT0ZfSElHSCk7CiAJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZpMmNfZ3Bpb19kZXZpY2UpOworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsIGkyY19pbmZvLCBBUlJBWV9TSVpFKGkyY19pbmZvKSk7CiAKIAlyZXR1cm4gMDsKIH0KIHBvc3Rjb3JlX2luaXRjYWxsKGF0bmd3MTAwX2luaXQpOworCitzdGF0aWMgaW50IF9faW5pdCBhdG5ndzEwMF9hcmNoX2luaXQodm9pZCkKK3sKKwkvKiBzZXRfaXJxX3R5cGUoKSBhZnRlciB0aGUgYXJjaF9pbml0Y2FsbCBmb3IgRUlDIGhhcyBydW4sIGFuZAorCSAqIGJlZm9yZSB0aGUgSTJDIHN1YnN5c3RlbSBjb3VsZCB0cnkgdXNpbmcgdGhpcyBJUlEuCisJICovCisJcmV0dXJuIHNldF9pcnFfdHlwZShBVDMyX0VYVElOVCgzKSwgSVJRX1RZUEVfRURHRV9GQUxMSU5HKTsKK30KK2FyY2hfaW5pdGNhbGwoYXRuZ3cxMDBfYXJjaF9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDIuYyBiL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDIuYwppbmRleCAwMDBlYjQyLi44NmIzNjNjIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDAyLmMKKysrIGIvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwMi5jCkBAIC0yOCw2ICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiYXRzdGsxMDAwLmgiCiAKKy8qIE9zY2lsbGF0b3IgZnJlcXVlbmNpZXMuIFRoZXNlIGFyZSBib2FyZCBzcGVjaWZpYyAqLwordW5zaWduZWQgbG9uZyBhdDMyX2JvYXJkX29zY19yYXRlc1szXSA9IHsKKwlbMF0gPSAzMjc2OCwJLyogMzIuNzY4IGtIeiBvbiBSVEMgb3NjICovCisJWzFdID0gMjAwMDAwMDAsCS8qIDIwIE1IeiBvbiBvc2MwICovCisJWzJdID0gMTIwMDAwMDAsCS8qIDEyIE1IeiBvbiBvc2MxICovCit9OwogCiBzdHJ1Y3QgZXRoX2FkZHIgewogCXU4IGFkZHJbNl07CkBAIC0yMzIsNyArMjM4LDcgQEAKIAlzZXRfaHdfYWRkcihhdDMyX2FkZF9kZXZpY2VfZXRoKDEsICZldGhfZGF0YVsxXSkpOwogI2Vsc2UKIAlhdDMyX2FkZF9kZXZpY2VfbGNkYygwLCAmYXRzdGsxMDAwX2xjZGNfZGF0YSwKLQkJCSAgICAgZmJtZW1fc3RhcnQsIGZibWVtX3NpemUpOworCQkJICAgICBmYm1lbV9zdGFydCwgZmJtZW1fc2l6ZSwgMCk7CiAjZW5kaWYKIAlhdDMyX2FkZF9kZXZpY2VfdXNiYSgwLCBOVUxMKTsKICNpZm5kZWYgQ09ORklHX0JPQVJEX0FUU1RLMTAwWF9TVzNfQ1VTVE9NCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDAzLmMgYi9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDAzLmMKaW5kZXggYTBiMjIzZC4uZWExMDlmNCAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwMy5jCisrKyBiL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDMuYwpAQCAtMjcsNiArMjcsMTMgQEAKIAogI2luY2x1ZGUgImF0c3RrMTAwMC5oIgogCisvKiBPc2NpbGxhdG9yIGZyZXF1ZW5jaWVzLiBUaGVzZSBhcmUgYm9hcmQgc3BlY2lmaWMgKi8KK3Vuc2lnbmVkIGxvbmcgYXQzMl9ib2FyZF9vc2NfcmF0ZXNbM10gPSB7CisJWzBdID0gMzI3NjgsCS8qIDMyLjc2OCBrSHogb24gUlRDIG9zYyAqLworCVsxXSA9IDIwMDAwMDAwLAkvKiAyMCBNSHogb24gb3NjMCAqLworCVsyXSA9IDEyMDAwMDAwLAkvKiAxMiBNSHogb24gb3NjMSAqLworfTsKKwogI2lmZGVmIENPTkZJR19CT0FSRF9BVFNUSzEwMDBfRVhUREFDCiBzdGF0aWMgc3RydWN0IGF0NzNjMjEzX2JvYXJkX2luZm8gYXQ3M2MyMTNfZGF0YSA9IHsKIAkuc3NjX2lkCQk9IDAsCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDA0LmMgYi9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDA0LmMKaW5kZXggZTc2NWE4Ni4uYzcyMzZkZiAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwNC5jCisrKyBiL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDQuYwpAQCAtMjksNiArMjksMTMgQEAKIAogI2luY2x1ZGUgImF0c3RrMTAwMC5oIgogCisvKiBPc2NpbGxhdG9yIGZyZXF1ZW5jaWVzLiBUaGVzZSBhcmUgYm9hcmQgc3BlY2lmaWMgKi8KK3Vuc2lnbmVkIGxvbmcgYXQzMl9ib2FyZF9vc2NfcmF0ZXNbM10gPSB7CisJWzBdID0gMzI3NjgsCS8qIDMyLjc2OCBrSHogb24gUlRDIG9zYyAqLworCVsxXSA9IDIwMDAwMDAwLAkvKiAyMCBNSHogb24gb3NjMCAqLworCVsyXSA9IDEyMDAwMDAwLAkvKiAxMiBNSHogb24gb3NjMSAqLworfTsKKwogI2lmZGVmIENPTkZJR19CT0FSRF9BVFNUSzEwMDBfRVhUREFDCiBzdGF0aWMgc3RydWN0IGF0NzNjMjEzX2JvYXJkX2luZm8gYXQ3M2MyMTNfZGF0YSA9IHsKIAkuc3NjX2lkCQk9IDAsCkBAIC0xMzMsNyArMTQwLDcgQEAKIAlhdDMyX2FkZF9kZXZpY2VfbWNpKDApOwogI2VuZGlmCiAJYXQzMl9hZGRfZGV2aWNlX2xjZGMoMCwgJmF0c3RrMTAwMF9sY2RjX2RhdGEsCi0JCQkgICAgIGZibWVtX3N0YXJ0LCBmYm1lbV9zaXplKTsKKwkJCSAgICAgZmJtZW1fc3RhcnQsIGZibWVtX3NpemUsIDApOwogCWF0MzJfYWRkX2RldmljZV91c2JhKDAsIE5VTEwpOwogI2lmbmRlZiBDT05GSUdfQk9BUkRfQVRTVEsxMDBYX1NXM19DVVNUT00KIAlhdDMyX2FkZF9kZXZpY2Vfc3NjKDAsIEFUTUVMX1NTQ19UWCk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2tlcm5lbC9lbnRyeS1hdnIzMmIuUyBiL2FyY2gvYXZyMzIva2VybmVsL2VudHJ5LWF2cjMyYi5TCmluZGV4IDVmMzE3MDIuLjJiMzk4Y2EgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIva2VybmVsL2VudHJ5LWF2cjMyYi5TCisrKyBiL2FyY2gvYXZyMzIva2VybmVsL2VudHJ5LWF2cjMyYi5TCkBAIC03NCw1MCArNzQsNDEgQEAKIAkuYWxpZ24JMgogCWJyYWwJZG9fZHRsYl9tb2RpZmllZAogCi0JLyoKLQkgKiByMCA6CVBHRC9QVC9QVEUKLQkgKiByMSA6IE9mZmVuZGluZyBhZGRyZXNzCi0JICogcjIgOiBTY3JhdGNoIHJlZ2lzdGVyCi0JICogcjMgOiBDYXVzZSAoNSwgMTIgb3IgMTMpCi0JICovCiAjZGVmaW5lCXRsYm1pc3Nfc2F2ZQlwdXNobQlyMC1yMwogI2RlZmluZSB0bGJtaXNzX3Jlc3RvcmUJcG9wbQlyMC1yMwogCi0JLnNlY3Rpb24gLnRsYnguZXgudGV4dCwiYXgiLEBwcm9nYml0cworCS5vcmcJMHg1MAogCS5nbG9iYWwJaXRsYl9taXNzCiBpdGxiX21pc3M6CiAJdGxibWlzc19zYXZlCiAJcmptcAl0bGJfbWlzc19jb21tb24KIAotCS5zZWN0aW9uIC50bGJyLmV4LnRleHQsImF4IixAcHJvZ2JpdHMKKwkub3JnCTB4NjAKIGR0bGJfbWlzc19yZWFkOgogCXRsYm1pc3Nfc2F2ZQogCXJqbXAJdGxiX21pc3NfY29tbW9uCiAKLQkuc2VjdGlvbiAudGxidy5leC50ZXh0LCJheCIsQHByb2diaXRzCisJLm9yZwkweDcwCiBkdGxiX21pc3Nfd3JpdGU6CiAJdGxibWlzc19zYXZlCiAKIAkuZ2xvYmFsCXRsYl9taXNzX2NvbW1vbgorCS5hbGlnbgkyCiB0bGJfbWlzc19jb21tb246CiAJbWZzcglyMCwgU1lTUkVHX1RMQkVBUgogCW1mc3IJcjEsIFNZU1JFR19QVEJSCiAKLQkvKiBJcyBpdCB0aGUgdm1hbGxvYyBzcGFjZT8gKi8KLQlibGQJcjAsIDMxCi0JYnJjcwloYW5kbGVfdm1hbGxvY19taXNzCi0KLQkvKiBGaXJzdCBsZXZlbCBsb29rdXAgKi8KKwkvKgorCSAqIEZpcnN0IGxldmVsIGxvb2t1cDogVGhlIFBHRCBjb250YWlucyB2aXJ0dWFsIHBvaW50ZXJzIHRvCisJICogdGhlIHNlY29uZC1sZXZlbCBwYWdlIHRhYmxlcywgYnV0IHRoZXkgbWF5IGJlIE5VTEwgaWYgbm90CisJICogcHJlc2VudC4KKwkgKi8KIHBndGJsX2xvb2t1cDoKIAlsc3IJcjIsIHIwLCBQR0RJUl9TSElGVAogCWxkLncJcjMsIHIxW3IyIDw8IDJdCiAJYmZleHR1CXIxLCByMCwgUEFHRV9TSElGVCwgUEdESVJfU0hJRlQgLSBQQUdFX1NISUZUCi0JYmxkCXIzLCBfUEFHRV9CSVRfUFJFU0VOVAotCWJyY2MJcGFnZV90YWJsZV9ub3RfcHJlc2VudAotCi0JLyogVHJhbnNsYXRlIHRvIHZpcnR1YWwgYWRkcmVzcyBpbiBQMS4gKi8KLQlhbmRsCXIzLCAweGYwMDAKLQlzYnIJcjMsIDMxCisJY3AudwlyMywgMAorCWJyZXEJcGFnZV90YWJsZV9ub3RfcHJlc2VudAogCiAJLyogU2Vjb25kIGxldmVsIGxvb2t1cCAqLwogCWxkLncJcjIsIHIzW3IxIDw8IDJdCkBAIC0xNDgsMTYgKzEzOSw1NSBAQAogCXRsYm1pc3NfcmVzdG9yZQogCXJldGUKIAotaGFuZGxlX3ZtYWxsb2NfbWlzczoKLQkvKiBTaW1wbHkgZG8gdGhlIGxvb2t1cCBpbiBpbml0J3MgcGFnZSB0YWJsZSAqLworCS8qIFRoZSBzbG93IHBhdGggb2YgdGhlIFRMQiBtaXNzIGhhbmRsZXIgKi8KKwkuYWxpZ24JMgorcGFnZV90YWJsZV9ub3RfcHJlc2VudDoKKwkvKiBEbyB3ZSBuZWVkIHRvIHN5bmNocm9uaXplIHdpdGggc3dhcHBlcl9wZ19kaXI/ICovCisJYmxkCXIwLCAzMQorCWJyY3MJc3luY193aXRoX3N3YXBwZXJfcGdfZGlyCisKK3BhZ2Vfbm90X3ByZXNlbnQ6CisJdGxibWlzc19yZXN0b3JlCisJc3ViCXNwLCA0CisJc3RtdHMJLS1zcCwgcjAtbHIKKwlyY2FsbAlzYXZlX2Z1bGxfY29udGV4dF9leAorCW1mc3IJcjEyLCBTWVNSRUdfRUNSCisJbW92CXIxMSwgc3AKKwlyY2FsbAlkb19wYWdlX2ZhdWx0CisJcmptcAlyZXRfZnJvbV9leGNlcHRpb24KKworCS5hbGlnbgkyCitzeW5jX3dpdGhfc3dhcHBlcl9wZ19kaXI6CisJLyoKKwkgKiBJZiBzd2FwcGVyX3BnX2RpciBjb250YWlucyBhIG5vbi1OVUxMIHNlY29uZC1sZXZlbCBwYWdlCisJICogdGFibGUgcG9pbnRlciwgY29weSBpdCBpbnRvIHRoZSBjdXJyZW50IFBHRC4gSWYgbm90LCB3ZQorCSAqIG11c3QgaGFuZGxlIGl0IGFzIGEgZnVsbC1ibG93biBwYWdlIGZhdWx0LgorCSAqCisJICogSnVtcGluZyBiYWNrIHRvIHBndGJsX2xvb2t1cCBjYXVzZXMgYW4gdW5uZWNlc3NhcnkgbG9va3VwLAorCSAqIGJ1dCBpdCBpcyBndWFyYW50ZWVkIHRvIGJlIGEgY2FjaGUgaGl0LCBpdCB3b24ndCBoYXBwZW4KKwkgKiB2ZXJ5IG9mdGVuLCBhbmQgd2UgYWJzb2x1dGVseSBkbyBub3Qgd2FudCB0byBzYWNyaWZpY2UgYW55CisJICogcGVyZm9ybWFuY2UgaW4gdGhlIGZhc3QgcGF0aCBpbiBvcmRlciB0byBpbXByb3ZlIHRoaXMuCisJICovCiAJbW92CXIxLCBsbyhzd2FwcGVyX3BnX2RpcikKIAlvcmgJcjEsIGhpKHN3YXBwZXJfcGdfZGlyKQorCWxkLncJcjMsIHIxW3IyIDw8IDJdCisJY3AudwlyMywgMAorCWJyZXEJcGFnZV9ub3RfcHJlc2VudAorCW1mc3IJcjEsIFNZU1JFR19QVEJSCisJc3QudwlyMVtyMiA8PCAyXSwgcjMKIAlyam1wCXBndGJsX2xvb2t1cAogCisJLyoKKwkgKiBXZSBjdXJyZW50bHkgaGF2ZSB0d28gYnl0ZXMgbGVmdCBhdCB0aGlzIHBvaW50IHVudGlsIHdlCisJICogY3Jhc2ggaW50byB0aGUgc3lzdGVtIGNhbGwgaGFuZGxlci4uLgorCSAqCisJICogRG9uJ3Qgd29ycnksIHRoZSBhc3NlbWJsZXIgd2lsbCBsZXQgdXMga25vdy4KKwkgKi8KKwogCiAJLyogLS0tICAgICAgICAgICAgICAgICAgICBTeXN0ZW0gQ2FsbCAgICAgICAgICAgICAgICAgICAgLS0tICovCiAKLQkuc2VjdGlvbiAuc2NhbGwudGV4dCwiYXgiLEBwcm9nYml0cworCS5vcmcJMHgxMDAKIHN5c3RlbV9jYWxsOgogI2lmZGVmIENPTkZJR19QUkVFTVBUCiAJbWFza19pbnRlcnJ1cHRzCkBAIC0yNjYsMTggKzI5Niw2IEBACiAJYnJjYwlzeXNjYWxsX2V4aXRfY29udAogCXJqbXAJZW50ZXJfbW9uaXRvcl9tb2RlCiAKLQkvKiBUaGUgc2xvdyBwYXRoIG9mIHRoZSBUTEIgbWlzcyBoYW5kbGVyICovCi1wYWdlX3RhYmxlX25vdF9wcmVzZW50OgotcGFnZV9ub3RfcHJlc2VudDoKLQl0bGJtaXNzX3Jlc3RvcmUKLQlzdWIJc3AsIDQKLQlzdG10cwktLXNwLCByMC1scgotCXJjYWxsCXNhdmVfZnVsbF9jb250ZXh0X2V4Ci0JbWZzcglyMTIsIFNZU1JFR19FQ1IKLQltb3YJcjExLCBzcAotCXJjYWxsCWRvX3BhZ2VfZmF1bHQKLQlyam1wCXJldF9mcm9tX2V4Y2VwdGlvbgotCiAJLyogVGhpcyBmdW5jdGlvbiBleHBlY3RzIHRvIGZpbmQgb2ZmZW5kaW5nIFBDIGluIFNZU1JFR19SQVJfRVggKi8KIAkudHlwZQlzYXZlX2Z1bGxfY29udGV4dF9leCwgQGZ1bmN0aW9uCiAJLmFsaWduCTIKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIva2VybmVsL3NpZ25hbC5jIGIvYXJjaC9hdnIzMi9rZXJuZWwvc2lnbmFsLmMKaW5kZXggNTYxNmEwMC4uYzViMTFmOSAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9rZXJuZWwvc2lnbmFsLmMKKysrIGIvYXJjaC9hdnIzMi9rZXJuZWwvc2lnbmFsLmMKQEAgLTkzLDYgKzkzLDkgQEAKIAlpZiAocmVzdG9yZV9zaWdjb250ZXh0KHJlZ3MsICZmcmFtZS0+dWMudWNfbWNvbnRleHQpKQogCQlnb3RvIGJhZGZyYW1lOwogCisJaWYgKGRvX3NpZ2FsdHN0YWNrKCZmcmFtZS0+dWMudWNfc3RhY2ssIE5VTEwsIHJlZ3MtPnNwKSA9PSAtRUZBVUxUKQorCQlnb3RvIGJhZGZyYW1lOworCiAJcHJfZGVidWcoIkNvbnRleHQgcmVzdG9yZWQ6IHBjID0gJTA4bHgsIGxyID0gJTA4bHgsIHNwID0gJTA4bHhcbiIsCiAJCSByZWdzLT5wYywgcmVncy0+bHIsIHJlZ3MtPnNwKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9rZXJuZWwvc3RhY2t0cmFjZS5jIGIvYXJjaC9hdnIzMi9rZXJuZWwvc3RhY2t0cmFjZS5jCmluZGV4IDlhNjgxOTAuLmY0YmRiNDQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIva2VybmVsL3N0YWNrdHJhY2UuYworKysgYi9hcmNoL2F2cjMyL2tlcm5lbC9zdGFja3RyYWNlLmMKQEAgLTUxLDMgKzUxLDQgQEAKIAkJZnAgPSBmcmFtZS0+ZnA7CiAJfQogfQorRVhQT1JUX1NZTUJPTF9HUEwoc2F2ZV9zdGFja190cmFjZSk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2tlcm5lbC90aW1lLmMgYi9hcmNoL2F2cjMyL2tlcm5lbC90aW1lLmMKaW5kZXggMDBhOTg2Mi4uYWJkOTU0ZiAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9rZXJuZWwvdGltZS5jCisrKyBiL2FyY2gvYXZyMzIva2VybmVsL3RpbWUuYwpAQCAtNywyMSArNywxMyBAQAogICovCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9wcm9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+Ci0jaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdGltZS5oPgogCi0jaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CiAjaW5jbHVkZSA8YXNtL3N5c3JlZy5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgogCiAjaW5jbHVkZSA8YXNtL2FyY2gvcG0uaD4KIApkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvYXZyMzIva2VybmVsL3ZtbGludXgubGRzLlMKaW5kZXggNDgxY2ZkNC4uNzkxMGQ0MSAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL2F2cjMyL2tlcm5lbC92bWxpbnV4Lmxkcy5TCkBAIC02OCwxNCArNjgsNiBAQAogCQlfZXZiYSA9IC47CiAJCV90ZXh0ID0gLjsKIAkJKiguZXgudGV4dCkKLQkJLiA9IDB4NTA7Ci0JCSooLnRsYnguZXgudGV4dCkKLQkJLiA9IDB4NjA7Ci0JCSooLnRsYnIuZXgudGV4dCkKLQkJLiA9IDB4NzA7Ci0JCSooLnRsYncuZXgudGV4dCkKLQkJLiA9IDB4MTAwOwotCQkqKC5zY2FsbC50ZXh0KQogCQkqKC5pcnEudGV4dCkKIAkJS1BST0JFU19URVhUCiAJCVRFWFRfVEVYVApAQCAtOTMsOCArODUsNiBAQAogCQlfX3N0b3BfX19leF90YWJsZSA9IC47CiAJfQogCi0JQlVHX1RBQkxFCi0KIAlST0RBVEEKIAogCS4gPSBBTElHTihUSFJFQURfU0laRSk7CkBAIC0xMDcsNiArOTcsMTAgQEAKIAkJICovCiAJCSooLmRhdGEuaW5pdF90YXNrKQogCisJCS8qIFRoZW4sIHRoZSBwYWdlLWFsaWduZWQgZGF0YSAqLworCQkuID0gQUxJR04oUEFHRV9TSVpFKTsKKwkJKiguZGF0YS5wYWdlX2FsaWduZWQpCisKIAkJLyogVGhlbiwgdGhlIGNhY2hlbGluZSBhbGlnbmVkIGRhdGEgKi8KIAkJLiA9IEFMSUdOKEwxX0NBQ0hFX0JZVEVTKTsKIAkJKiguZGF0YS5jYWNoZWxpbmVfYWxpZ25lZCkKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbGliL2lvLXJlYWRzYi5TIGIvYXJjaC9hdnIzMi9saWIvaW8tcmVhZHNiLlMKaW5kZXggMmJlNWRhNy4uY2IyZDg2OSAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9saWIvaW8tcmVhZHNiLlMKKysrIGIvYXJjaC9hdnIzMi9saWIvaW8tcmVhZHNiLlMKQEAgLTQxLDcgKzQxLDcgQEAKIDI6CXN1YglyMTAsIC00CiAJcmV0ZXEJcjEyCiAKLTM6CWxkLnVoCXI4LCByMTJbMF0KKzM6CWxkLnViCXI4LCByMTJbMF0KIAlzdWIJcjEwLCAxCiAJc3QuYglyMTErKywgcjgKIAlicm5lCTNiCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL01ha2VmaWxlIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9NYWtlZmlsZQppbmRleCBlODkwMDk0Li5kNTAxOGUyIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL01ha2VmaWxlCisrKyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvTWFrZWZpbGUKQEAgLTEsMyArMSw4IEBACi1vYmoteQkJCQkrPSBhdDMyYXAubyBjbG9jay5vIGludGMubyBleHRpbnQubyBwaW8ubyBoc21jLm8KK29iai15CQkJCSs9IHBkYy5vIGNsb2NrLm8gaW50Yy5vIGV4dGludC5vIHBpby5vIGhzbWMubwogb2JqLSQoQ09ORklHX0NQVV9BVDMyQVA3MDBYKQkrPSBhdDMyYXA3MDB4Lm8gcG0tYXQzMmFwNzAweC5vCiBvYmotJChDT05GSUdfQ1BVX0ZSRVFfQVQzMkFQKQkrPSBjcHVmcmVxLm8KK29iai0kKENPTkZJR19QTSkJCSs9IHBtLm8KKworaWZlcSAoJChDT05GSUdfUE1fREVCVUcpLHkpCitDRkxBR1NfcG0ubwkrPSAtRERFQlVHCitlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9hdDMyYXAuYyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvYXQzMmFwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjNDk4N2YuLjAwMDAwMDAKLS0tIGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9hdDMyYXAuYworKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXRtZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0KLSNpbmNsdWRlIDxhc20vYXJjaC9pbml0Lmg+Ci0KLXZvaWQgX19pbml0IHNldHVwX3BsYXRmb3JtKHZvaWQpCi17Ci0JYXQzMl9jbG9ja19pbml0KCk7Ci0JYXQzMl9wb3J0bXV4X2luaXQoKTsKLX0KLQotc3RhdGljIGludCBfX2luaXQgcGRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IGNsayAqcGNsaywgKmhjbGs7Ci0KLQlwY2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAicGNsayIpOwotCWlmIChJU19FUlIocGNsaykpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gcGNsayBkZWZpbmVkXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIocGNsayk7Ci0JfQotCWhjbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJoY2xrIik7Ci0JaWYgKElTX0VSUihoY2xrKSkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBoY2xrIGRlZmluZWRcbiIpOwotCQljbGtfcHV0KHBjbGspOwotCQlyZXR1cm4gUFRSX0VSUihoY2xrKTsKLQl9Ci0KLQljbGtfZW5hYmxlKHBjbGspOwotCWNsa19lbmFibGUoaGNsayk7Ci0KLQlkZXZfaW5mbygmcGRldi0+ZGV2LCAiQXRtZWwgUGVyaXBoZXJhbCBETUEgQ29udHJvbGxlciBlbmFibGVkXG4iKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcGRjX2RyaXZlciA9IHsKLQkucHJvYmUJCT0gcGRjX3Byb2JlLAotCS5kcml2ZXIJCT0gewotCQkubmFtZQk9ICJwZGMiLAotCX0sCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBwZGNfaW5pdCh2b2lkKQotewotCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnBkY19kcml2ZXIpOwotfQotYXJjaF9pbml0Y2FsbChwZGNfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2F0MzJhcDcwMHguYyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvYXQzMmFwNzAweC5jCmluZGV4IDBmMjRiNGY4Li4wN2IyMWIxIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2F0MzJhcDcwMHguYworKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2F0MzJhcDcwMHguYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL2F0MzJhcDcwMHguaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3BvcnRtdXguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9zcmFtLmg+CiAKICNpbmNsdWRlIDx2aWRlby9hdG1lbF9sY2RjLmg+CiAKQEAgLTkzLDE5ICs5NCwxMiBAQAogCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHBtX2xvY2spOwogCi11bnNpZ25lZCBsb25nIGF0MzJhcDcwMDBfb3NjX3JhdGVzWzNdID0gewotCVswXSA9IDMyNzY4LAotCS8qIEZJWE1FOiB0aGVzZSBhcmUgQVRTVEsxMDAyLXNwZWNpZmljICovCi0JWzFdID0gMjAwMDAwMDAsCi0JWzJdID0gMTIwMDAwMDAsCi19OwotCiBzdGF0aWMgc3RydWN0IGNsayBvc2MwOwogc3RhdGljIHN0cnVjdCBjbGsgb3NjMTsKIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgb3NjX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKIHsKLQlyZXR1cm4gYXQzMmFwNzAwMF9vc2NfcmF0ZXNbY2xrLT5pbmRleF07CisJcmV0dXJuIGF0MzJfYm9hcmRfb3NjX3JhdGVzW2Nsay0+aW5kZXhdOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBwbGxfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIGNvbnRyb2wpCkBAIC02ODIsNiArNjc2LDE0IEBACiAJLnVzZXJzCQk9IDEsCiAJLmluZGV4CQk9IDMsCiB9Oworc3RhdGljIHN0cnVjdCBjbGsgc2RyYW1jX2NsayA9IHsKKwkubmFtZQkJPSAic2RyYW1jX2NsayIsCisJLnBhcmVudAkJPSAmcGJiX2NsaywKKwkubW9kZQkJPSBwYmJfY2xrX21vZGUsCisJLmdldF9yYXRlCT0gcGJiX2Nsa19nZXRfcmF0ZSwKKwkudXNlcnMJCT0gMSwKKwkuaW5kZXgJCT0gMTQsCit9OwogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHNtYzBfcmVzb3VyY2VbXSA9IHsKIAlQQk1FTSgweGZmZjAzNDAwKSwKQEAgLTg0MSw2ICs4NDMsODEgQEAKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBQU0lGCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhdG1lbF9wc2lmMF9yZXNvdXJjZVtdIF9faW5pdGRhdGEgPSB7CisJeworCQkuc3RhcnQJPSAweGZmZTAzYzAwLAorCQkuZW5kCT0gMHhmZmUwM2NmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlJUlEoMTgpLAorfTsKK3N0YXRpYyBzdHJ1Y3QgY2xrIGF0bWVsX3BzaWYwX3BjbGsgPSB7CisJLm5hbWUJCT0gInBjbGsiLAorCS5wYXJlbnQJCT0gJnBiYV9jbGssCisJLm1vZGUJCT0gcGJhX2Nsa19tb2RlLAorCS5nZXRfcmF0ZQk9IHBiYV9jbGtfZ2V0X3JhdGUsCisJLmluZGV4CQk9IDE1LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhdG1lbF9wc2lmMV9yZXNvdXJjZVtdIF9faW5pdGRhdGEgPSB7CisJeworCQkuc3RhcnQJPSAweGZmZTAzZDAwLAorCQkuZW5kCT0gMHhmZmUwM2RmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlJUlEoMTgpLAorfTsKK3N0YXRpYyBzdHJ1Y3QgY2xrIGF0bWVsX3BzaWYxX3BjbGsgPSB7CisJLm5hbWUJCT0gInBjbGsiLAorCS5wYXJlbnQJCT0gJnBiYV9jbGssCisJLm1vZGUJCT0gcGJhX2Nsa19tb2RlLAorCS5nZXRfcmF0ZQk9IHBiYV9jbGtfZ2V0X3JhdGUsCisJLmluZGV4CQk9IDE1LAorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSAqX19pbml0IGF0MzJfYWRkX2RldmljZV9wc2lmKHVuc2lnbmVkIGludCBpZCkKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OworCisJaWYgKCEoaWQgPT0gMCB8fCBpZCA9PSAxKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlwZGV2ID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJhdG1lbF9wc2lmIiwgaWQpOworCWlmICghcGRldikKKwkJcmV0dXJuIE5VTEw7CisKKwlzd2l0Y2ggKGlkKSB7CisJY2FzZSAwOgorCQlpZiAocGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMocGRldiwgYXRtZWxfcHNpZjBfcmVzb3VyY2UsCisJCQkJCUFSUkFZX1NJWkUoYXRtZWxfcHNpZjBfcmVzb3VyY2UpKSkKKwkJCWdvdG8gZXJyX2FkZF9yZXNvdXJjZXM7CisJCWF0bWVsX3BzaWYwX3BjbGsuZGV2ID0gJnBkZXYtPmRldjsKKwkJc2VsZWN0X3BlcmlwaGVyYWwoUEEoOCksIFBFUklQSF9BLCAwKTsgLyogQ0xPQ0sgKi8KKwkJc2VsZWN0X3BlcmlwaGVyYWwoUEEoOSksIFBFUklQSF9BLCAwKTsgLyogREFUQSAgKi8KKwkJYnJlYWs7CisJY2FzZSAxOgorCQlpZiAocGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMocGRldiwgYXRtZWxfcHNpZjFfcmVzb3VyY2UsCisJCQkJCUFSUkFZX1NJWkUoYXRtZWxfcHNpZjFfcmVzb3VyY2UpKSkKKwkJCWdvdG8gZXJyX2FkZF9yZXNvdXJjZXM7CisJCWF0bWVsX3BzaWYxX3BjbGsuZGV2ID0gJnBkZXYtPmRldjsKKwkJc2VsZWN0X3BlcmlwaGVyYWwoUEIoMTEpLCBQRVJJUEhfQSwgMCk7IC8qIENMT0NLICovCisJCXNlbGVjdF9wZXJpcGhlcmFsKFBCKDEyKSwgUEVSSVBIX0EsIDApOyAvKiBEQVRBICAqLworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpOworCXJldHVybiBwZGV2OworCitlcnJfYWRkX3Jlc291cmNlczoKKwlwbGF0Zm9ybV9kZXZpY2VfcHV0KHBkZXYpOworCXJldHVybiBOVUxMOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogIFVTQVJUCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCkBAIC0xMTEzLDcgKzExOTAsOCBAQAogCXN3aXRjaCAoaWQpIHsKIAljYXNlIDA6CiAJCXBkZXYgPSAmYXRtZWxfc3BpMF9kZXZpY2U7Ci0JCXNlbGVjdF9wZXJpcGhlcmFsKFBBKDApLCAgUEVSSVBIX0EsIDApOwkvKiBNSVNPCSAqLworCQkvKiBwdWxsdXAgTUlTTyBzbyBhIGxldmVsIGlzIGFsd2F5cyBkZWZpbmVkICovCisJCXNlbGVjdF9wZXJpcGhlcmFsKFBBKDApLCAgUEVSSVBIX0EsIEFUMzJfR1BJT0ZfUFVMTFVQKTsKIAkJc2VsZWN0X3BlcmlwaGVyYWwoUEEoMSksICBQRVJJUEhfQSwgMCk7CS8qIE1PU0kJICovCiAJCXNlbGVjdF9wZXJpcGhlcmFsKFBBKDIpLCAgUEVSSVBIX0EsIDApOwkvKiBTQ0sJICovCiAJCWF0MzJfc3BpX3NldHVwX3NsYXZlcygwLCBiLCBuLCBzcGkwX3BpbnMpOwpAQCAtMTEyMSw3ICsxMTk5LDggQEAKIAogCWNhc2UgMToKIAkJcGRldiA9ICZhdG1lbF9zcGkxX2RldmljZTsKLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEIoMCksICBQRVJJUEhfQiwgMCk7CS8qIE1JU08gICovCisJCS8qIHB1bGx1cCBNSVNPIHNvIGEgbGV2ZWwgaXMgYWx3YXlzIGRlZmluZWQgKi8KKwkJc2VsZWN0X3BlcmlwaGVyYWwoUEIoMCksICBQRVJJUEhfQiwgQVQzMl9HUElPRl9QVUxMVVApOwogCQlzZWxlY3RfcGVyaXBoZXJhbChQQigxKSwgIFBFUklQSF9CLCAwKTsJLyogTU9TSSAgKi8KIAkJc2VsZWN0X3BlcmlwaGVyYWwoUEIoNSksICBQRVJJUEhfQiwgMCk7CS8qIFNDSyAgICovCiAJCWF0MzJfc3BpX3NldHVwX3NsYXZlcygxLCBiLCBuLCBzcGkxX3BpbnMpOwpAQCAtMTI2NCw3ICsxMzQzLDggQEAKIAogc3RydWN0IHBsYXRmb3JtX2RldmljZSAqX19pbml0CiBhdDMyX2FkZF9kZXZpY2VfbGNkYyh1bnNpZ25lZCBpbnQgaWQsIHN0cnVjdCBhdG1lbF9sY2RmYl9pbmZvICpkYXRhLAotCQkgICAgIHVuc2lnbmVkIGxvbmcgZmJtZW1fc3RhcnQsIHVuc2lnbmVkIGxvbmcgZmJtZW1fbGVuKQorCQkgICAgIHVuc2lnbmVkIGxvbmcgZmJtZW1fc3RhcnQsIHVuc2lnbmVkIGxvbmcgZmJtZW1fbGVuLAorCQkgICAgIHVuc2lnbmVkIGludCBwaW5fY29uZmlnKQogewogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CiAJc3RydWN0IGF0bWVsX2xjZGZiX2luZm8gKmluZm87CkBAIC0xMjkxLDM3ICsxMzcxLDc3IEBACiAJc3dpdGNoIChpZCkgewogCWNhc2UgMDoKIAkJcGRldiA9ICZhdG1lbF9sY2RmYjBfZGV2aWNlOwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygxOSksIFBFUklQSF9BLCAwKTsJLyogQ0MJICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMCksIFBFUklQSF9BLCAwKTsJLyogSFNZTkMgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDIxKSwgUEVSSVBIX0EsIDApOwkvKiBQQ0xLCSAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjIpLCBQRVJJUEhfQSwgMCk7CS8qIFZTWU5DICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMyksIFBFUklQSF9BLCAwKTsJLyogRFZBTAkgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI0KSwgUEVSSVBIX0EsIDApOwkvKiBNT0RFCSAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjUpLCBQRVJJUEhfQSwgMCk7CS8qIFBXUgkgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI2KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMCAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjcpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEExICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyOCksIFBFUklQSF9BLCAwKTsJLyogREFUQTIgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI5KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMyAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMzApLCBQRVJJUEhfQSwgMCk7CS8qIERBVEE0ICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygzMSksIFBFUklQSF9BLCAwKTsJLyogREFUQTUgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDApLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBNiAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMSksICBQRVJJUEhfQSwgMCk7CS8qIERBVEE3ICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgyKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTggICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDMpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBOSAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoNCksICBQRVJJUEhfQSwgMCk7CS8qIERBVEExMCAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg1KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTExICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDYpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTIgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoNyksICBQRVJJUEhfQSwgMCk7CS8qIERBVEExMyAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg4KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTE0ICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDkpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTUgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTApLCBQRVJJUEhfQSwgMCk7CS8qIERBVEExNiAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxMSksIFBFUklQSF9BLCAwKTsJLyogREFUQTE3ICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEyKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTggKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTMpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEExOSAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNCksIFBFUklQSF9BLCAwKTsJLyogREFUQTIwICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE1KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjEgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTYpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEEyMiAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNyksIFBFUklQSF9BLCAwKTsJLyogREFUQTIzICovCisKKwkJc3dpdGNoIChwaW5fY29uZmlnKSB7CisJCWNhc2UgMDoKKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDE5KSwgUEVSSVBIX0EsIDApOwkvKiBDQwkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMCksIFBFUklQSF9BLCAwKTsJLyogSFNZTkMgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMSksIFBFUklQSF9BLCAwKTsJLyogUENMSwkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMiksIFBFUklQSF9BLCAwKTsJLyogVlNZTkMgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMyksIFBFUklQSF9BLCAwKTsJLyogRFZBTAkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyNCksIFBFUklQSF9BLCAwKTsJLyogTU9ERQkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyNSksIFBFUklQSF9BLCAwKTsJLyogUFdSCSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI2KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMCAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI3KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI4KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMiAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI5KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMyAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDMwKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBNCAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDMxKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBNSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDApLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBNiAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBNyAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDIpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBOCAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDMpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBOSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDQpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDUpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTEgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDYpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTIgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDcpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTMgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDgpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTQgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDkpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTUgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEwKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTYgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDExKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTcgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEyKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTggKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEzKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTkgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE0KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE1KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjEgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE2KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjIgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE3KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjMgKi8KKwkJCWJyZWFrOworCQljYXNlIDE6CisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgwKSwgIFBFUklQSF9CLCAwKTsJLyogQ0MJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjApLCBQRVJJUEhfQSwgMCk7CS8qIEhTWU5DICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjEpLCBQRVJJUEhfQSwgMCk7CS8qIFBDTEsJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjIpLCBQRVJJUEhfQSwgMCk7CS8qIFZTWU5DICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMSksICBQRVJJUEhfQiwgMCk7CS8qIERWQUwJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMiksICBQRVJJUEhfQiwgMCk7CS8qIE1PREUJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjUpLCBQRVJJUEhfQSwgMCk7CS8qIFBXUgkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgzKSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTAgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg0KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTEgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg1KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTIgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg2KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTMgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg3KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTQgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygzMSksIFBFUklQSF9BLCAwKTsJLyogREFUQTUgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgwKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTYgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTcgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg4KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTggICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg5KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxMCksIFBFUklQSF9CLCAwKTsJLyogREFUQTEwICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxMSksIFBFUklQSF9CLCAwKTsJLyogREFUQTExICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxMiksIFBFUklQSF9CLCAwKTsJLyogREFUQTEyICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg3KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTEzICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg4KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTE0ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg5KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTE1ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxMyksIFBFUklQSF9CLCAwKTsJLyogREFUQTE2ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxNCksIFBFUklQSF9CLCAwKTsJLyogREFUQTE3ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxNSksIFBFUklQSF9CLCAwKTsJLyogREFUQTE4ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxNiksIFBFUklQSF9CLCAwKTsJLyogREFUQTE5ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxNyksIFBFUklQSF9CLCAwKTsJLyogREFUQTIwICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxOCksIFBFUklQSF9CLCAwKTsJLyogREFUQTIxICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNiksIFBFUklQSF9BLCAwKTsJLyogREFUQTIyICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNyksIFBFUklQSF9BLCAwKTsJLyogREFUQTIzICovCisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWdvdG8gZXJyX2ludmFsaWRfaWQ7CisJCX0KIAogCQljbGtfc2V0X3BhcmVudCgmYXRtZWxfbGNkZmIwX3BpeGNsaywgJnBsbDApOwogCQljbGtfc2V0X3JhdGUoJmF0bWVsX2xjZGZiMF9waXhjbGssIGNsa19nZXRfcmF0ZSgmcGxsMCkpOwpAQCAtMTM2MCw3ICsxNDgwLDcgQEAKIAlJUlEoMjQpLAogfTsKIHN0YXRpYyBzdHJ1Y3QgY2xrIGF0bWVsX3B3bTBfbWNrID0gewotCS5uYW1lCQk9ICJtY2siLAorCS5uYW1lCQk9ICJwd21fY2xrIiwKIAkucGFyZW50CQk9ICZwYmJfY2xrLAogCS5tb2RlCQk9IHBiYl9jbGtfbW9kZSwKIAkuZ2V0X3JhdGUJPSBwYmJfY2xrX2dldF9yYXRlLApAQCAtMTg4Nyw2ICsyMDA3LDcgQEAKIAkmaG1hdHJpeF9jbGssCiAJJmViaV9jbGssCiAJJmhyYW1jX2NsaywKKwkmc2RyYW1jX2NsaywKIAkmc21jMF9wY2xrLAogCSZzbWMwX21jaywKIAkmcGRjX2hjbGssCkBAIC0xOTAwLDYgKzIwMjEsOCBAQAogCSZwaW80X21jaywKIAkmYXQzMl90Y2IwX3QwX2NsaywKIAkmYXQzMl90Y2IxX3QwX2NsaywKKwkmYXRtZWxfcHNpZjBfcGNsaywKKwkmYXRtZWxfcHNpZjFfcGNsaywKIAkmYXRtZWxfdXNhcnQwX3VzYXJ0LAogCSZhdG1lbF91c2FydDFfdXNhcnQsCiAJJmF0bWVsX3VzYXJ0Ml91c2FydCwKQEAgLTE5MzUsMTYgKzIwNTgsNyBAQAogfTsKIHVuc2lnbmVkIGludCBhdDMyX25yX2Nsb2NrcyA9IEFSUkFZX1NJWkUoYXQzMl9jbG9ja19saXN0KTsKIAotdm9pZCBfX2luaXQgYXQzMl9wb3J0bXV4X2luaXQodm9pZCkKLXsKLQlhdDMyX2luaXRfcGlvKCZwaW8wX2RldmljZSk7Ci0JYXQzMl9pbml0X3BpbygmcGlvMV9kZXZpY2UpOwotCWF0MzJfaW5pdF9waW8oJnBpbzJfZGV2aWNlKTsKLQlhdDMyX2luaXRfcGlvKCZwaW8zX2RldmljZSk7Ci0JYXQzMl9pbml0X3BpbygmcGlvNF9kZXZpY2UpOwotfQotCi12b2lkIF9faW5pdCBhdDMyX2Nsb2NrX2luaXQodm9pZCkKK3ZvaWQgX19pbml0IHNldHVwX3BsYXRmb3JtKHZvaWQpCiB7CiAJdTMyIGNwdV9tYXNrID0gMCwgaHNiX21hc2sgPSAwLCBwYmFfbWFzayA9IDAsIHBiYl9tYXNrID0gMDsKIAlpbnQgaTsKQEAgLTE5OTksNCArMjExMywzNiBAQAogCXBtX3dyaXRlbChIU0JfTUFTSywgaHNiX21hc2spOwogCXBtX3dyaXRlbChQQkFfTUFTSywgcGJhX21hc2spOwogCXBtX3dyaXRlbChQQkJfTUFTSywgcGJiX21hc2spOworCisJLyogSW5pdGlhbGl6ZSB0aGUgcG9ydCBtdXhlcyAqLworCWF0MzJfaW5pdF9waW8oJnBpbzBfZGV2aWNlKTsKKwlhdDMyX2luaXRfcGlvKCZwaW8xX2RldmljZSk7CisJYXQzMl9pbml0X3BpbygmcGlvMl9kZXZpY2UpOworCWF0MzJfaW5pdF9waW8oJnBpbzNfZGV2aWNlKTsKKwlhdDMyX2luaXRfcGlvKCZwaW80X2RldmljZSk7CiB9CisKK3N0cnVjdCBnZW5fcG9vbCAqc3JhbV9wb29sOworCitzdGF0aWMgaW50IF9faW5pdCBzcmFtX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgZ2VuX3Bvb2wgKnBvb2w7CisKKwkvKiAxS2lCIGdyYW51bGFyaXR5ICovCisJcG9vbCA9IGdlbl9wb29sX2NyZWF0ZSgxMCwgLTEpOworCWlmICghcG9vbCkKKwkJZ290byBmYWlsOworCisJaWYgKGdlbl9wb29sX2FkZChwb29sLCAweDI0MDAwMDAwLCAweDgwMDAsIC0xKSkKKwkJZ290byBlcnJfcG9vbF9hZGQ7CisKKwlzcmFtX3Bvb2wgPSBwb29sOworCXJldHVybiAwOworCitlcnJfcG9vbF9hZGQ6CisJZ2VuX3Bvb2xfZGVzdHJveShwb29sKTsKK2ZhaWw6CisJcHJfZXJyKCJGYWlsZWQgdG8gY3JlYXRlIFNSQU0gcG9vbFxuIik7CisJcmV0dXJuIC1FTk9NRU07Cit9Citjb3JlX2luaXRjYWxsKHNyYW1faW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2ludGMuYyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvaW50Yy5jCmluZGV4IDA5N2NmNGUuLjk5NGM0NTQ1IDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2ludGMuYworKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2ludGMuYwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXRtZWwgQ29ycG9yYXRpb24KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBBdG1lbCBDb3Jwb3JhdGlvbgogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwpAQCAtMTIsMTQgKzEyLDIwIEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KIAogI2luY2x1ZGUgImludGMuaCIKIAogc3RydWN0IGludGMgewotCXZvaWQgX19pb21lbQkqcmVnczsKLQlzdHJ1Y3QgaXJxX2NoaXAJY2hpcDsKKwl2b2lkIF9faW9tZW0JCSpyZWdzOworCXN0cnVjdCBpcnFfY2hpcAkJY2hpcDsKKwlzdHJ1Y3Qgc3lzX2RldmljZQlzeXNkZXY7CisjaWZkZWYgQ09ORklHX1BNCisJdW5zaWduZWQgbG9uZwkJc3VzcGVuZF9pcHI7CisJdW5zaWduZWQgbG9uZwkJc2F2ZWRfaXByWzY0XTsKKyNlbmRpZgogfTsKIAogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYXQzMl9pbnRjMF9kZXZpY2U7CkBAIC0xMzYsNiArMTQyLDc0IEBACiAJcGFuaWMoIkludGVycnVwdCBjb250cm9sbGVyIGluaXRpYWxpemF0aW9uIGZhaWxlZCFcbiIpOwogfQogCisjaWZkZWYgQ09ORklHX1BNCit2b2lkIGludGNfc2V0X3N1c3BlbmRfaGFuZGxlcih1bnNpZ25lZCBsb25nIG9mZnNldCkKK3sKKwlpbnRjMC5zdXNwZW5kX2lwciA9IG9mZnNldDsKK30KKworc3RhdGljIGludCBpbnRjX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKnNkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50YyAqaW50YyA9IGNvbnRhaW5lcl9vZihzZGV2LCBzdHJ1Y3QgaW50Yywgc3lzZGV2KTsKKwlpbnQgaTsKKworCWlmICh1bmxpa2VseSghaXJxc19kaXNhYmxlZCgpKSkgeworCQlwcl9lcnIoImludGNfc3VzcGVuZDogY2FsbGVkIHdpdGggaW50ZXJydXB0cyBlbmFibGVkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHVubGlrZWx5KCFpbnRjLT5zdXNwZW5kX2lwcikpIHsKKwkJcHJfZXJyKCJpbnRjX3N1c3BlbmQ6IHN1c3BlbmRfaXByIG5vdCBpbml0aWFsaXplZFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWZvciAoaSA9IDA7IGkgPCA2NDsgaSsrKSB7CisJCWludGMtPnNhdmVkX2lwcltpXSA9IGludGNfcmVhZGwoaW50YywgSU5UUFIwICsgNCAqIGkpOworCQlpbnRjX3dyaXRlbChpbnRjLCBJTlRQUjAgKyA0ICogaSwgaW50Yy0+c3VzcGVuZF9pcHIpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGludGNfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpzZGV2KQoreworCXN0cnVjdCBpbnRjICppbnRjID0gY29udGFpbmVyX29mKHNkZXYsIHN0cnVjdCBpbnRjLCBzeXNkZXYpOworCWludCBpOworCisJV0FSTl9PTighaXJxc19kaXNhYmxlZCgpKTsKKworCWZvciAoaSA9IDA7IGkgPCA2NDsgaSsrKQorCQlpbnRjX3dyaXRlbChpbnRjLCBJTlRQUjAgKyA0ICogaSwgaW50Yy0+c2F2ZWRfaXByW2ldKTsKKworCXJldHVybiAwOworfQorI2Vsc2UKKyNkZWZpbmUgaW50Y19zdXNwZW5kCU5VTEwKKyNkZWZpbmUgaW50Y19yZXN1bWUJTlVMTAorI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGludGNfY2xhc3MgPSB7CisJLm5hbWUJCT0gImludGMiLAorCS5zdXNwZW5kCT0gaW50Y19zdXNwZW5kLAorCS5yZXN1bWUJCT0gaW50Y19yZXN1bWUsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBpbnRjX2luaXRfc3lzZGV2KHZvaWQpCit7CisJaW50IHJldDsKKworCXJldCA9IHN5c2Rldl9jbGFzc19yZWdpc3RlcigmaW50Y19jbGFzcyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWludGMwLnN5c2Rldi5pZCA9IDA7CisJaW50YzAuc3lzZGV2LmNscyA9ICZpbnRjX2NsYXNzOworCXJldCA9IHN5c2Rldl9yZWdpc3RlcigmaW50YzAuc3lzZGV2KTsKKworCXJldHVybiByZXQ7Cit9CitkZXZpY2VfaW5pdGNhbGwoaW50Y19pbml0X3N5c2Rldik7CisKIHVuc2lnbmVkIGxvbmcgaW50Y19nZXRfcGVuZGluZyh1bnNpZ25lZCBpbnQgZ3JvdXApCiB7CiAJcmV0dXJuIGludGNfcmVhZGwoJmludGMwLCBJTlRSRVEwICsgNCAqIGdyb3VwKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGRjLmMgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BkYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwNDBiZGEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BkYy5jCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXRtZWwgQ29ycG9yYXRpb24KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKK3N0YXRpYyBpbnQgX19pbml0IHBkY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBjbGsgKnBjbGssICpoY2xrOworCisJcGNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgInBjbGsiKTsKKwlpZiAoSVNfRVJSKHBjbGspKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIHBjbGsgZGVmaW5lZFxuIik7CisJCXJldHVybiBQVFJfRVJSKHBjbGspOworCX0KKwloY2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAiaGNsayIpOworCWlmIChJU19FUlIoaGNsaykpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gaGNsayBkZWZpbmVkXG4iKTsKKwkJY2xrX3B1dChwY2xrKTsKKwkJcmV0dXJuIFBUUl9FUlIoaGNsayk7CisJfQorCisJY2xrX2VuYWJsZShwY2xrKTsKKwljbGtfZW5hYmxlKGhjbGspOworCisJZGV2X2luZm8oJnBkZXYtPmRldiwgIkF0bWVsIFBlcmlwaGVyYWwgRE1BIENvbnRyb2xsZXIgZW5hYmxlZFxuIik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHBkY19kcml2ZXIgPSB7CisJLnByb2JlCQk9IHBkY19wcm9iZSwKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAicGRjIiwKKwl9LAorfTsKKworc3RhdGljIGludCBfX2luaXQgcGRjX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZwZGNfZHJpdmVyKTsKK30KK2FyY2hfaW5pdGNhbGwocGRjX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9waW8uYyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGlvLmMKaW5kZXggMzhhOGZhMy4uNjBkYTAzYiAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9waW8uYworKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3Bpby5jCkBAIC0zMTgsNiArMzE4LDggQEAKIAkJY29uc3QgY2hhciAqbGFiZWw7CiAKIAkJbGFiZWwgPSBncGlvY2hpcF9pc19yZXF1ZXN0ZWQoY2hpcCwgaSk7CisJCWlmICghbGFiZWwgJiYgKGltciAmIG1hc2spKQorCQkJbGFiZWwgPSAiW2lycV0iOwogCQlpZiAoIWxhYmVsKQogCQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGlvLmggYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3Bpby5oCmluZGV4IDc3OTUxMTYuLjk0ODRkZmMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGlvLmgKKysrIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9waW8uaApAQCAtNTcsNyArNTcsNyBAQAogCiAvKiBCaXRmaWVsZHMgaW4gSUZEUiAqLwogCi0vKiBCaXRmaWVsZHMgaW4gSVNGUiAqLworLyogQml0ZmllbGRzIGluIElGU1IgKi8KIAogLyogQml0ZmllbGRzIGluIFNPRFIgKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wbS1hdDMyYXA3MDB4LlMgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BtLWF0MzJhcDcwMHguUwppbmRleCA5NDllMjQ4Li4wYTUzYWQzIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BtLWF0MzJhcDcwMHguUworKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BtLWF0MzJhcDcwMHguUwpAQCAtMTIsNiArMTIsMTIgQEAKICNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9wbS5oPgogCisjaW5jbHVkZSAicG0uaCIKKyNpbmNsdWRlICJzZHJhbWMuaCIKKworLyogU2FtZSBhcyAweGZmZjAwMDAwIGJ1dCBmaXRzIGluIGEgMjEgYml0IHNpZ25lZCBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgUE1fQkFTRQktMHgxMDAwMDAKKwogCS5zZWN0aW9uIC5ic3MsICJ3YSIsIEBub2JpdHMKIAkuZ2xvYmFsCWRpc2FibGVfaWRsZV9zbGVlcAogCS50eXBlCWRpc2FibGVfaWRsZV9zbGVlcCwgQG9iamVjdApAQCAtNjQsMyArNzAsMTA1IEBACiAJdW5tYXNrX2ludGVycnVwdHMKIAlyZXRhbAlyMTIKIAkuc2l6ZQljcHVfaWRsZV9za2lwX3NsZWVwLCAuIC0gY3B1X2lkbGVfc2tpcF9zbGVlcAorCisjaWZkZWYgQ09ORklHX1BNCisJLnNlY3Rpb24gLmluaXQudGV4dCwgImF4IiwgQHByb2diaXRzCisKKwkuZ2xvYmFsCXBtX2V4Y2VwdGlvbgorCS50eXBlCXBtX2V4Y2VwdGlvbiwgQGZ1bmN0aW9uCitwbV9leGNlcHRpb246CisJLyoKKwkgKiBFeGNlcHRpb25zIGFyZSBtYXNrZWQgd2hlbiB3ZSBzd2l0Y2ggdG8gdGhpcyBoYW5kbGVyLCBzbworCSAqIHdlJ2xsIG9ubHkgZ2V0ICJ1bnJlY292ZXJhYmxlIiBleGNlcHRpb25zIChvZmZzZXQgMC4pCisJICovCisJc3ViCXIxMiwgcGMsIC4gLSAuTHBhbmljX21zZworCWxkZHBjCXBjLCAuTHBhbmljX2FkZHIKKworCS5hbGlnbgkyCisuTHBhbmljX2FkZHI6CisJLmxvbmcJcGFuaWMKKy5McGFuaWNfbXNnOgorCS5hc2NpegkiVW5yZWNvdmVyYWJsZSBleGNlcHRpb24gZHVyaW5nIHN1c3BlbmRcbiIKKwkuc2l6ZQlwbV9leGNlcHRpb24sIC4gLSBwbV9leGNlcHRpb24KKworCS5nbG9iYWwJcG1faXJxMAorCS50eXBlCXBtX2lycTAsIEBmdW5jdGlvbgorcG1faXJxMDoKKwkvKiBEaXNhYmxlIGludGVycnVwdHMgYW5kIHJldHVybiBhZnRlciB0aGUgc2xlZXAgaW5zdHJ1Y3Rpb24gKi8KKwltZnNyCXI5LCBTWVNSRUdfUlNSX0lOVDAKKwltdHNyCVNZU1JFR19SQVJfSU5UMCwgcjgKKwlzYnIJcjksIFNZU1JFR19HTV9PRkZTRVQKKwltdHNyCVNZU1JFR19SU1JfSU5UMCwgcjkKKwlyZXRlCisKKwkvKgorCSAqIHZvaWQgY3B1X2VudGVyX3N0YW5kYnkodW5zaWduZWQgbG9uZyBzZHJhbWNfYmFzZSkKKwkgKgorCSAqIEVudGVyIFBNX1NVU1BFTkRfU1RBTkRCWSBtb2RlLiBBdCB0aGlzIHBvaW50LCBhbGwgZHJpdmVycworCSAqIGFyZSBzdXNwZW5kZWQgYW5kIGludGVycnVwdHMgYXJlIGRpc2FibGVkLiBJbnRlcnJ1cHRzCisJICogbWFya2VkIGFzICd3YWtldXAnIGV2ZW50IHNvdXJjZXMgbWF5IHN0aWxsIGNvbWUgYWxvbmcgYW5kCisJICogZ2V0IHVzIG91dCBvZiBoZXJlLgorCSAqCisJICogVGhlIFNEUkFNIHdpbGwgYmUgcHV0IGludG8gc2VsZi1yZWZyZXNoIG1vZGUgKHdoaWNoIGRvZXMKKwkgKiBub3QgcmVxdWlyZSBhIGNsb2NrIGZyb20gdGhlIENQVSksIGFuZCB0aGUgQ1BVIHdpbGwgYmUgcHV0CisJICogaW50byAiZnJvemVuIiBtb2RlIChIU0IgYnVzIHN0b3BwZWQpLiBUaGUgU0RSQU0gY29udHJvbGxlcgorCSAqIHdpbGwgYXV0b21hdGljYWxseSBicmluZyB0aGUgU0RSQU0gaW50byBub3JtYWwgbW9kZSBvbiB0aGUKKwkgKiBmaXJzdCBhY2Nlc3MsIGFuZCB0aGUgcG93ZXIgbWFuYWdlciB3aWxsIGF1dG9tYXRpY2FsbHkKKwkgKiBzdGFydCB0aGUgSFNCIGFuZCBDUFUgY2xvY2tzIHVwb24gYSB3YWtldXAgZXZlbnQuCisJICoKKwkgKiBUaGlzIGNvZGUgdXNlcyB0aGUgc2FtZSAic2tpcCBzbGVlcCIgdGVjaG5pcXVlIGFzIGFib3ZlLgorCSAqIEl0IGlzIHZlcnkgaW1wb3J0YW50IHRoYXQgd2UganVtcCBkaXJlY3RseSB0bworCSAqIGNwdV9hZnRlcl9zbGVlcCBhZnRlciB0aGUgc2xlZXAgaW5zdHJ1Y3Rpb24gc2luY2UgdGhhdCdzCisJICogd2hlcmUgd2UnbGwgZW5kIHVwIGlmIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBkZWNpZGVzIHRoYXQgd2UKKwkgKiBuZWVkIHRvIHNraXAgdGhlIHNsZWVwIGluc3RydWN0aW9uLgorCSAqLworCS5nbG9iYWwJcG1fc3RhbmRieQorCS50eXBlCXBtX3N0YW5kYnksIEBmdW5jdGlvbgorcG1fc3RhbmRieToKKwkvKgorCSAqIGludGVycnVwdHMgYXJlIGFscmVhZHkgbWFza2VkIGF0IHRoaXMgcG9pbnQsIGFuZCBFVkJBCisJICogcG9pbnRzIHRvIHBtX2V4Y2VwdGlvbiBhYm92ZS4KKwkgKi8KKwlsZC53CXIxMCwgcjEyW1NEUkFNQ19MUFJdCisJc3ViCXI4LCBwYywgLiAtIDFmCQkvKiByZXR1cm4gYWRkcmVzcyBmb3IgaXJxIGhhbmRsZXIgKi8KKwltb3YJcjExLCBTRFJBTUNfTFBSX0xQQ0JfU0VMRl9SRlIKKwliZmlucwlyMTAsIHIxMSwgMCwgMgkJLyogTFBDQiA8LSBzZWxmIFJlZnJlc2ggKi8KKwlzeW5jCTAJCQkvKiBmbHVzaCB3cml0ZSBidWZmZXIgKi8KKwlzdC53CXIxMltTRFJBTUNfTFBSXSwgcjExCS8qIHB1dCBTRFJBTSBpbiBzZWxmLXJlZnJlc2ggbW9kZSAqLworCWxkLncJcjExLCByMTJbU0RSQU1DX0xQUl0KKwl1bm1hc2tfaW50ZXJydXB0cworCXNsZWVwCUNQVV9TTEVFUF9GUk9aRU4KKzE6CW1hc2tfaW50ZXJydXB0cworCXJldGFsCXIxMgorCS5zaXplCXBtX3N0YW5kYnksIC4gLSBwbV9zdGFuZGJ5CisKKwkuZ2xvYmFsCXBtX3N1c3BlbmRfdG9fcmFtCisJLnR5cGUJcG1fc3VzcGVuZF90b19yYW0sIEBmdW5jdGlvbgorcG1fc3VzcGVuZF90b19yYW06CisJLyoKKwkgKiBpbnRlcnJ1cHRzIGFyZSBhbHJlYWR5IG1hc2tlZCBhdCB0aGlzIHBvaW50LCBhbmQgRVZCQQorCSAqIHBvaW50cyB0byBwbV9leGNlcHRpb24gYWJvdmUuCisJICovCisJbW92CXIxMSwgMAorCWNhY2hlCXIxMVsyXSwgOAkJLyogY2xlYW4gYWxsIGRjYWNoZSBsaW5lcyAqLworCXN5bmMJMAkJCS8qIGZsdXNoIHdyaXRlIGJ1ZmZlciAqLworCWxkLncJcjEwLCByMTJbU0RSQU1DX0xQUl0KKwlzdWIJcjgsIHBjLCAuIC0gMWYJCS8qIHJldHVybiBhZGRyZXNzIGZvciBpcnEgaGFuZGxlciAqLworCW1vdglyMTEsIFNEUkFNQ19MUFJfTFBDQl9TRUxGX1JGUgorCWJmaW5zCXIxMCwgcjExLCAwLCAyCQkvKiBMUENCIDwtIHNlbGYgcmVmcmVzaCAqLworCXN0LncJcjEyW1NEUkFNQ19MUFJdLCByMTAJLyogcHV0IFNEUkFNIGluIHNlbGYtcmVmcmVzaCBtb2RlICovCisJbGQudwlyMTEsIHIxMltTRFJBTUNfTFBSXQorCisJdW5tYXNrX2ludGVycnVwdHMKKwlzbGVlcAlDUFVfU0xFRVBfU1RPUAorMToJbWFza19pbnRlcnJ1cHRzCisKKwlyZXRhbAlyMTIKKwkuc2l6ZQlwbV9zdXNwZW5kX3RvX3JhbSwgLiAtIHBtX3N1c3BlbmRfdG9fcmFtCisKKwkuZ2xvYmFsCXBtX3NyYW1fZW5kCisJLnR5cGUJcG1fc3JhbV9lbmQsIEBmdW5jdGlvbgorcG1fc3JhbV9lbmQ6CisJLnNpemUJcG1fc3JhbV9lbmQsIDAKKworI2VuZGlmIC8qIENPTkZJR19QTSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wbS5jIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiNzY0MzIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BtLmMKQEAgLTAsMCArMSwyNDUgQEAKKy8qCisgKiBBVlIzMiBBUCBQb3dlciBNYW5hZ2VtZW50CisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEF0bWVsIENvcnBvcmF0aW9uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKworI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL3N5c3JlZy5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvcG0uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9zcmFtLmg+CisKKy8qIEZJWE1FOiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEFQNzAwMCAqLworI2RlZmluZSBTRFJBTUNfQkFTRQkweGZmZjAzODAwCisKKyNpbmNsdWRlICJzZHJhbWMuaCIKKworI2RlZmluZSBTUkFNX1BBR0VfRkxBR1MJKFNZU1JFR19CSVQoVExCRUxPX0QpIHwgU1lTUkVHX0JGKFNaLCAxKQlcCisJCQkJfCBTWVNSRUdfQkYoQVAsIDMpIHwgU1lTUkVHX0JJVChHKSkKKworCitzdGF0aWMgdW5zaWduZWQgbG9uZwlwbV9zcmFtX3N0YXJ0Oworc3RhdGljIHNpemVfdAkJcG1fc3JhbV9zaXplOworc3RhdGljIHN0cnVjdCB2bV9zdHJ1Y3QJKnBtX3NyYW1fYXJlYTsKKworc3RhdGljIHZvaWQgKCphdnIzMl9wbV9lbnRlcl9zdGFuZGJ5KSh1bnNpZ25lZCBsb25nIHNkcmFtY19iYXNlKTsKK3N0YXRpYyB2b2lkICgqYXZyMzJfcG1fZW50ZXJfc3RyKSh1bnNpZ25lZCBsb25nIHNkcmFtY19iYXNlKTsKKworLyoKKyAqIE11c3QgYmUgY2FsbGVkIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZC4gRXhjZXB0aW9ucyB3aWxsIGJlIG1hc2tlZAorICogb24gcmV0dXJuIChpLmUuIGFsbCBleGNlcHRpb25zIHdpbGwgYmUgInVucmVjb3ZlcmFibGUiLikKKyAqLworc3RhdGljIHZvaWQgKmF2cjMyX3BtX21hcF9zcmFtKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZwl2YWRkcjsKKwl1bnNpZ25lZCBsb25nCXBhZ2VfYWRkcjsKKwl1MzIJCXRsYmVoaTsKKwl1MzIJCW1tdWNyOworCisJdmFkZHIgPSAodW5zaWduZWQgbG9uZylwbV9zcmFtX2FyZWEtPmFkZHI7CisJcGFnZV9hZGRyID0gcG1fc3JhbV9zdGFydCAmIFBBR0VfTUFTSzsKKworCS8qCisJICogTWFzayBleGNlcHRpb25zIGFuZCBncmFiIHRoZSBmaXJzdCBUTEIgZW50cnkuIFdlIHdvbid0IGJlCisJICogbmVlZGluZyBpdCB3aGlsZSBzbGVlcGluZy4KKwkgKi8KKwlhc20gdm9sYXRpbGUoInNzcmYJJTAiIDogOiAiaSIoU1lTUkVHX0VNX09GRlNFVCkgOiAibWVtb3J5Iik7CisKKwltbXVjciA9IHN5c3JlZ19yZWFkKE1NVUNSKTsKKwl0bGJlaGkgPSBzeXNyZWdfcmVhZChUTEJFSEkpOworCXN5c3JlZ193cml0ZShNTVVDUiwgU1lTUkVHX0JGSU5TKERSUCwgMCwgbW11Y3IpKTsKKworCXRsYmVoaSA9IFNZU1JFR19CRihBU0lELCBTWVNSRUdfQkZFWFQoQVNJRCwgdGxiZWhpKSk7CisJdGxiZWhpIHw9IHZhZGRyICYgUEFHRV9NQVNLOworCXRsYmVoaSB8PSBTWVNSRUdfQklUKFRMQkVISV9WKTsKKworCXN5c3JlZ193cml0ZShUTEJFTE8sIHBhZ2VfYWRkciB8IFNSQU1fUEFHRV9GTEFHUyk7CisJc3lzcmVnX3dyaXRlKFRMQkVISSwgdGxiZWhpKTsKKwlfX2J1aWx0aW5fdGxidygpOworCisJcmV0dXJuICh2b2lkICopKHZhZGRyICsgcG1fc3JhbV9zdGFydCAtIHBhZ2VfYWRkcik7Cit9CisKKy8qCisgKiBNdXN0IGJlIGNhbGxlZCB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQuIEV4Y2VwdGlvbnMgd2lsbCBiZQorICogdW5tYXNrZWQgb24gcmV0dXJuLgorICovCitzdGF0aWMgdm9pZCBhdnIzMl9wbV91bm1hcF9zcmFtKHZvaWQpCit7CisJdTMyCW1tdWNyOworCXUzMgl0bGJlaGk7CisJdTMyCXRsYmFybG87CisKKwkvKiBHb2luZyB0byB1cGRhdGUgVExCIGVudHJ5IGF0IGluZGV4IDAgKi8KKwltbXVjciA9IHN5c3JlZ19yZWFkKE1NVUNSKTsKKwl0bGJlaGkgPSBzeXNyZWdfcmVhZChUTEJFSEkpOworCXN5c3JlZ193cml0ZShNTVVDUiwgU1lTUkVHX0JGSU5TKERSUCwgMCwgbW11Y3IpKTsKKworCS8qIENsZWFyIHRoZSAidmFsaWQiIGJpdCAqLworCXRsYmVoaSA9IFNZU1JFR19CRihBU0lELCBTWVNSRUdfQkZFWFQoQVNJRCwgdGxiZWhpKSk7CisJc3lzcmVnX3dyaXRlKFRMQkVISSwgdGxiZWhpKTsKKworCS8qIE1hcmsgaXQgYXMgIm5vdCBhY2Nlc3NlZCIgKi8KKwl0bGJhcmxvID0gc3lzcmVnX3JlYWQoVExCQVJMTyk7CisJc3lzcmVnX3dyaXRlKFRMQkFSTE8sIHRsYmFybG8gfCAweDgwMDAwMDAwVSk7CisKKwkvKiBVcGRhdGUgdGhlIFRMQiAqLworCV9fYnVpbHRpbl90bGJ3KCk7CisKKwkvKiBVbm1hc2sgZXhjZXB0aW9ucyAqLworCWFzbSB2b2xhdGlsZSgiY3NyZgklMCIgOiA6ICJpIihTWVNSRUdfRU1fT0ZGU0VUKSA6ICJtZW1vcnkiKTsKK30KKworc3RhdGljIGludCBhdnIzMl9wbV92YWxpZF9zdGF0ZShzdXNwZW5kX3N0YXRlX3Qgc3RhdGUpCit7CisJc3dpdGNoIChzdGF0ZSkgeworCWNhc2UgUE1fU1VTUEVORF9PTjoKKwljYXNlIFBNX1NVU1BFTkRfU1RBTkRCWToKKwljYXNlIFBNX1NVU1BFTkRfTUVNOgorCQlyZXR1cm4gMTsKKworCWRlZmF1bHQ6CisJCXJldHVybiAwOworCX0KK30KKworc3RhdGljIGludCBhdnIzMl9wbV9lbnRlcihzdXNwZW5kX3N0YXRlX3Qgc3RhdGUpCit7CisJdTMyCQlscHJfc2F2ZWQ7CisJdTMyCQlldmJhX3NhdmVkOworCXZvaWQJCSpzcmFtOworCisJc3dpdGNoIChzdGF0ZSkgeworCWNhc2UgUE1fU1VTUEVORF9TVEFOREJZOgorCQlzcmFtID0gYXZyMzJfcG1fbWFwX3NyYW0oKTsKKworCQkvKiBTd2l0Y2ggdG8gaW4tc3JhbSBleGNlcHRpb24gaGFuZGxlcnMgKi8KKwkJZXZiYV9zYXZlZCA9IHN5c3JlZ19yZWFkKEVWQkEpOworCQlzeXNyZWdfd3JpdGUoRVZCQSwgKHVuc2lnbmVkIGxvbmcpc3JhbSk7CisKKwkJLyoKKwkJICogU2F2ZSB0aGUgTFBSIHJlZ2lzdGVyIHNvIHRoYXQgd2UgY2FuIHJlLWVuYWJsZQorCQkgKiBTRFJBTSBMb3cgUG93ZXIgbW9kZSBvbiByZXN1bWUuCisJCSAqLworCQlscHJfc2F2ZWQgPSBzZHJhbWNfcmVhZGwoTFBSKTsKKwkJcHJfZGVidWcoIiVzOiBFbnRlcmluZyBzdGFuZGJ5Li4uXG4iLCBfX2Z1bmNfXyk7CisJCWF2cjMyX3BtX2VudGVyX3N0YW5kYnkoU0RSQU1DX0JBU0UpOworCQlzZHJhbWNfd3JpdGVsKExQUiwgbHByX3NhdmVkKTsKKworCQkvKiBTd2l0Y2ggYmFjayB0byByZWd1bGFyIGV4Y2VwdGlvbiBoYW5kbGVycyAqLworCQlzeXNyZWdfd3JpdGUoRVZCQSwgZXZiYV9zYXZlZCk7CisKKwkJYXZyMzJfcG1fdW5tYXBfc3JhbSgpOworCQlicmVhazsKKworCWNhc2UgUE1fU1VTUEVORF9NRU06CisJCXNyYW0gPSBhdnIzMl9wbV9tYXBfc3JhbSgpOworCisJCS8qIFN3aXRjaCB0byBpbi1zcmFtIGV4Y2VwdGlvbiBoYW5kbGVycyAqLworCQlldmJhX3NhdmVkID0gc3lzcmVnX3JlYWQoRVZCQSk7CisJCXN5c3JlZ193cml0ZShFVkJBLCAodW5zaWduZWQgbG9uZylzcmFtKTsKKworCQkvKgorCQkgKiBTYXZlIHRoZSBMUFIgcmVnaXN0ZXIgc28gdGhhdCB3ZSBjYW4gcmUtZW5hYmxlCisJCSAqIFNEUkFNIExvdyBQb3dlciBtb2RlIG9uIHJlc3VtZS4KKwkJICovCisJCWxwcl9zYXZlZCA9IHNkcmFtY19yZWFkbChMUFIpOworCQlwcl9kZWJ1ZygiJXM6IEVudGVyaW5nIHN1c3BlbmQtdG8tcmFtLi4uXG4iLCBfX2Z1bmNfXyk7CisJCWF2cjMyX3BtX2VudGVyX3N0cihTRFJBTUNfQkFTRSk7CisJCXNkcmFtY193cml0ZWwoTFBSLCBscHJfc2F2ZWQpOworCisJCS8qIFN3aXRjaCBiYWNrIHRvIHJlZ3VsYXIgZXhjZXB0aW9uIGhhbmRsZXJzICovCisJCXN5c3JlZ193cml0ZShFVkJBLCBldmJhX3NhdmVkKTsKKworCQlhdnIzMl9wbV91bm1hcF9zcmFtKCk7CisJCWJyZWFrOworCisJY2FzZSBQTV9TVVNQRU5EX09OOgorCQlwcl9kZWJ1ZygiJXM6IEVudGVyaW5nIGlkbGUuLi5cbiIsIF9fZnVuY19fKTsKKwkJY3B1X2VudGVyX2lkbGUoKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlwcl9kZWJ1ZygiJXM6IEludmFsaWQgc3VzcGVuZCBzdGF0ZSAlZFxuIiwgX19mdW5jX18sIHN0YXRlKTsKKwkJZ290byBvdXQ7CisJfQorCisJcHJfZGVidWcoIiVzOiB3YWtldXBcbiIsIF9fZnVuY19fKTsKKworb3V0OgorCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX3N1c3BlbmRfb3BzIGF2cjMyX3BtX29wcyA9IHsKKwkudmFsaWQJPSBhdnIzMl9wbV92YWxpZF9zdGF0ZSwKKwkuZW50ZXIJPSBhdnIzMl9wbV9lbnRlciwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGF2cjMyX3BtX29mZnNldCh2b2lkICpzeW1ib2wpCit7CisJZXh0ZXJuIHU4IHBtX2V4Y2VwdGlvbltdOworCisJcmV0dXJuICh1bnNpZ25lZCBsb25nKXN5bWJvbCAtICh1bnNpZ25lZCBsb25nKXBtX2V4Y2VwdGlvbjsKK30KKworc3RhdGljIGludCBfX2luaXQgYXZyMzJfcG1faW5pdCh2b2lkKQoreworCWV4dGVybiB1OCBwbV9leGNlcHRpb25bXTsKKwlleHRlcm4gdTggcG1faXJxMFtdOworCWV4dGVybiB1OCBwbV9zdGFuZGJ5W107CisJZXh0ZXJuIHU4IHBtX3N1c3BlbmRfdG9fcmFtW107CisJZXh0ZXJuIHU4IHBtX3NyYW1fZW5kW107CisJdm9pZCAqZHN0OworCisJLyoKKwkgKiBUbyBrZWVwIHRoaW5ncyBzaW1wbGUsIHdlIGRlcGVuZCBvbiBub3QgbmVlZGluZyBtb3JlIHRoYW4gYQorCSAqIHNpbmdsZSBwYWdlLgorCSAqLworCXBtX3NyYW1fc2l6ZSA9IGF2cjMyX3BtX29mZnNldChwbV9zcmFtX2VuZCk7CisJaWYgKHBtX3NyYW1fc2l6ZSA+IFBBR0VfU0laRSkKKwkJZ290byBlcnI7CisKKwlwbV9zcmFtX3N0YXJ0ID0gc3JhbV9hbGxvYyhwbV9zcmFtX3NpemUpOworCWlmICghcG1fc3JhbV9zdGFydCkKKwkJZ290byBlcnJfYWxsb2Nfc3JhbTsKKworCS8qIEdyYWIgYSB2aXJ0dWFsIGFyZWEgd2UgY2FuIHVzZSBsYXRlciBvbi4gKi8KKwlwbV9zcmFtX2FyZWEgPSBnZXRfdm1fYXJlYShwbV9zcmFtX3NpemUsIFZNX0lPUkVNQVApOworCWlmICghcG1fc3JhbV9hcmVhKQorCQlnb3RvIGVycl92bV9hcmVhOworCXBtX3NyYW1fYXJlYS0+cGh5c19hZGRyID0gcG1fc3JhbV9zdGFydDsKKworCWxvY2FsX2lycV9kaXNhYmxlKCk7CisJZHN0ID0gYXZyMzJfcG1fbWFwX3NyYW0oKTsKKwltZW1jcHkoZHN0LCBwbV9leGNlcHRpb24sIHBtX3NyYW1fc2l6ZSk7CisJZmx1c2hfZGNhY2hlX3JlZ2lvbihkc3QsIHBtX3NyYW1fc2l6ZSk7CisJaW52YWxpZGF0ZV9pY2FjaGVfcmVnaW9uKGRzdCwgcG1fc3JhbV9zaXplKTsKKwlhdnIzMl9wbV91bm1hcF9zcmFtKCk7CisJbG9jYWxfaXJxX2VuYWJsZSgpOworCisJYXZyMzJfcG1fZW50ZXJfc3RhbmRieSA9IGRzdCArIGF2cjMyX3BtX29mZnNldChwbV9zdGFuZGJ5KTsKKwlhdnIzMl9wbV9lbnRlcl9zdHIgPSBkc3QgKyBhdnIzMl9wbV9vZmZzZXQocG1fc3VzcGVuZF90b19yYW0pOworCWludGNfc2V0X3N1c3BlbmRfaGFuZGxlcihhdnIzMl9wbV9vZmZzZXQocG1faXJxMCkpOworCisJc3VzcGVuZF9zZXRfb3BzKCZhdnIzMl9wbV9vcHMpOworCisJcHJpbnRrKCJBVlIzMiBBUCBQb3dlciBNYW5hZ2VtZW50IGVuYWJsZWRcbiIpOworCisJcmV0dXJuIDA7CisKK2Vycl92bV9hcmVhOgorCXNyYW1fZnJlZShwbV9zcmFtX3N0YXJ0LCBwbV9zcmFtX3NpemUpOworZXJyX2FsbG9jX3NyYW06CitlcnI6CisJcHJfZXJyKCJBVlIzMiBQb3dlciBNYW5hZ2VtZW50IGluaXRpYWxpemF0aW9uIGZhaWxlZFxuIik7CisJcmV0dXJuIC1FTk9NRU07Cit9CithcmNoX2luaXRjYWxsKGF2cjMyX3BtX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9zZHJhbWMuaCBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvc2RyYW1jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZlZWFlZAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvc2RyYW1jLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIFJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciB0aGUgQVQzMkFQIFNEUkFNIENvbnRyb2xsZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXRtZWwgQ29ycG9yYXRpb24KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKy8qIFJlZ2lzdGVyIG9mZnNldHMgKi8KKyNkZWZpbmUgU0RSQU1DX01SCQkJMHgwMDAwCisjZGVmaW5lIFNEUkFNQ19UUgkJCTB4MDAwNAorI2RlZmluZSBTRFJBTUNfQ1IJCQkweDAwMDgKKyNkZWZpbmUgU0RSQU1DX0hTUgkJCTB4MDAwYworI2RlZmluZSBTRFJBTUNfTFBSCQkJMHgwMDEwCisjZGVmaW5lIFNEUkFNQ19JRVIJCQkweDAwMTQKKyNkZWZpbmUgU0RSQU1DX0lEUgkJCTB4MDAxOAorI2RlZmluZSBTRFJBTUNfSU1SCQkJMHgwMDFjCisjZGVmaW5lIFNEUkFNQ19JU1IJCQkweDAwMjAKKyNkZWZpbmUgU0RSQU1DX01EUgkJCTB4MDAyNAorCisvKiBNUiAtIE1vZGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU0RSQU1DX01SX01PREVfTk9STUFMCQkoICAwIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTVJfTU9ERV9OT1AJCSggIDEgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19NUl9NT0RFX0JBTktTX1BSRUNIQVJHRQkoICAyIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTVJfTU9ERV9MT0FEX01PREUJKCAgMyA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX01SX01PREVfQVVUT19SRUZSRVNICSggIDQgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19NUl9NT0RFX0VYVF9MT0FEX01PREUJKCAgNSA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX01SX01PREVfUE9XRVJfRE9XTgkoICA2IDw8ICAwKQorCisvKiBDUiAtIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU0RSQU1DX0NSX05DXzhfQklUUwkJKCAgMCA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX0NSX05DXzlfQklUUwkJKCAgMSA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX0NSX05DXzEwX0JJVFMJCSggIDIgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19DUl9OQ18xMV9CSVRTCQkoICAzIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfQ1JfTlJfMTFfQklUUwkJKCAgMCA8PCAgMikKKyNkZWZpbmUgU0RSQU1DX0NSX05SXzEyX0JJVFMJCSggIDEgPDwgIDIpCisjZGVmaW5lIFNEUkFNQ19DUl9OUl8xM19CSVRTCQkoICAyIDw8ICAyKQorI2RlZmluZSBTRFJBTUNfQ1JfTkJfMl9CQU5LUwkJKCAgMCA8PCAgNCkKKyNkZWZpbmUgU0RSQU1DX0NSX05CXzRfQkFOS1MJCSggIDEgPDwgIDQpCisjZGVmaW5lIFNEUkFNQ19DUl9DQVMoeCkJCSgoeCkgPDwgIDUpCisjZGVmaW5lIFNEUkFNQ19DUl9EQldfMzJfQklUUwkJKCAgMCA8PCAgNykKKyNkZWZpbmUgU0RSQU1DX0NSX0RCV18xNl9CSVRTCQkoICAxIDw8ICA3KQorI2RlZmluZSBTRFJBTUNfQ1JfVFdSKHgpCQkoKHgpIDw8ICA4KQorI2RlZmluZSBTRFJBTUNfQ1JfVFJDKHgpCQkoKHgpIDw8IDEyKQorI2RlZmluZSBTRFJBTUNfQ1JfVFJQKHgpCQkoKHgpIDw8IDE2KQorI2RlZmluZSBTRFJBTUNfQ1JfVFJDRCh4KQkJKCh4KSA8PCAyMCkKKyNkZWZpbmUgU0RSQU1DX0NSX1RSQVMoeCkJCSgoeCkgPDwgMjQpCisjZGVmaW5lIFNEUkFNQ19DUl9UWFNSKHgpCQkoKHgpIDw8IDI4KQorCisvKiBIU1IgLSBIaWdoIFNwZWVkIFJlZ2lzdGVyICovCisjZGVmaW5lIFNEUkFNQ19IU1JfREEJCQkoICAxIDw8ICAwKQorCisvKiBMUFIgLSBMb3cgUG93ZXIgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU0RSQU1DX0xQUl9MUENCX0lOSElCSVQJCSggIDAgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19MUFJfTFBDQl9TRUxGX1JGUgkoICAxIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTFBSX0xQQ0JfUERPV04JCSggIDIgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19MUFJfTFBDQl9ERUVQX1BET1dOCSggIDMgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19MUFJfUEFTUih4KQkJKCh4KSA8PCAgNCkKKyNkZWZpbmUgU0RSQU1DX0xQUl9UQ1NSKHgpCQkoKHgpIDw8ICA4KQorI2RlZmluZSBTRFJBTUNfTFBSX0RTKHgpCQkoKHgpIDw8IDEwKQorI2RlZmluZSBTRFJBTUNfTFBSX1RJTUVPVVQoeCkJCSgoeCkgPDwgMTIpCisKKy8qIElFUi9JRFIvSU1SL0lTUiAtIEludGVycnVwdCBFbmFibGUvRGlzYWJsZS9NYXNrL1N0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBTRFJBTUNfSVNSX1JFUwkJCSggIDEgPDwgIDApCisKKy8qIE1EUiAtIE1lbW9yeSBEZXZpY2UgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU0RSQU1DX01EUl9NRF9TRFJBTQkJKCAgMCA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX01EUl9NRF9MT1dfUFdSX1NEUkFNCSggIDEgPDwgIDApCisKKy8qIFJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgKi8KKyNkZWZpbmUgc2RyYW1jX3JlYWRsKHJlZykgXAorCV9fcmF3X3JlYWRsKCh2b2lkIF9faW9tZW0gX19mb3JjZSAqKVNEUkFNQ19CQVNFICsgU0RSQU1DXyMjcmVnKQorI2RlZmluZSBzZHJhbWNfd3JpdGVsKHJlZywgdmFsdWUpIFwKKwlfX3Jhd193cml0ZWwodmFsdWUsICh2b2lkIF9faW9tZW0gX19mb3JjZSAqKVNEUkFNQ19CQVNFICsgU0RSQU1DXyMjcmVnKQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tbS9pbml0LmMgYi9hcmNoL2F2cjMyL21tL2luaXQuYwppbmRleCAwZTY0ZGRjLi4zZjkwYTg3IDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21tL2luaXQuYworKysgYi9hcmNoL2F2cjMyL21tL2luaXQuYwpAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW16b25lLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9ub2RlbWFzay5oPgpAQCAtMjMsMTEgKzI0LDE0IEBACiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CiAKKyNkZWZpbmUgX19wYWdlX2FsaWduZWQJX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEucGFnZV9hbGlnbmVkIikpKQorCiBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgbW11X2dhdGhlciwgbW11X2dhdGhlcnMpOwogCi1wZ2RfdCBzd2FwcGVyX3BnX2RpcltQVFJTX1BFUl9QR0RdOworcGdkX3Qgc3dhcHBlcl9wZ19kaXJbUFRSU19QRVJfUEdEXSBfX3BhZ2VfYWxpZ25lZDsKIAogc3RydWN0IHBhZ2UgKmVtcHR5X3plcm9fcGFnZTsKK0VYUE9SVF9TWU1CT0woZW1wdHlfemVyb19wYWdlKTsKIAogLyoKICAqIENhY2hlIG9mIE1NVSBjb250ZXh0IGxhc3QgdXNlZC4KQEAgLTEwNiwxOSArMTEwLDkgQEAKIAl6ZXJvX3BhZ2UgPSBhbGxvY19ib290bWVtX2xvd19wYWdlc19ub2RlKE5PREVfREFUQSgwKSwKIAkJCQkJCSBQQUdFX1NJWkUpOwogCi0JewotCQlwZ2RfdCAqcGdfZGlyOwotCQlpbnQgaTsKLQotCQlwZ19kaXIgPSBzd2FwcGVyX3BnX2RpcjsKLQkJc3lzcmVnX3dyaXRlKFBUQlIsICh1bnNpZ25lZCBsb25nKXBnX2Rpcik7Ci0KLQkJZm9yIChpID0gMDsgaSA8IFBUUlNfUEVSX1BHRDsgaSsrKQotCQkJcGdkX3ZhbChwZ19kaXJbaV0pID0gMDsKLQotCQllbmFibGVfbW11KCk7Ci0JCXByaW50ayAoIkNQVTogUGFnaW5nIGVuYWJsZWRcbiIpOwotCX0KKwlzeXNyZWdfd3JpdGUoUFRCUiwgKHVuc2lnbmVkIGxvbmcpc3dhcHBlcl9wZ19kaXIpOworCWVuYWJsZV9tbXUoKTsKKwlwcmludGsgKCJDUFU6IFBhZ2luZyBlbmFibGVkXG4iKTsKIAogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgewogCQlwZ19kYXRhX3QgKnBnZGF0ID0gTk9ERV9EQVRBKG5pZCk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21tL3RsYi5jIGIvYXJjaC9hdnIzMi9tbS90bGIuYwppbmRleCBjZDEyZWRiLi4wNjY3N2JlIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21tL3RsYi5jCisrKyBiL2FyY2gvYXZyMzIvbW0vdGxiLmMKQEAgLTExLDIxICsxMSwyMSBAQAogCiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CiAKLSNkZWZpbmUgX1RMQkVISV9JCTB4MTAwCisvKiBUT0RPOiBHZXQgdGhlIGNvcnJlY3QgbnVtYmVyIGZyb20gdGhlIENPTkZJRzEgc3lzdGVtIHJlZ2lzdGVyICovCisjZGVmaW5lIE5SX1RMQl9FTlRSSUVTIDMyCiAKLXZvaWQgc2hvd19kdGxiX2VudHJ5KHVuc2lnbmVkIGludCBpbmRleCkKK3N0YXRpYyB2b2lkIHNob3dfZHRsYl9lbnRyeSh1bnNpZ25lZCBpbnQgaW5kZXgpCiB7Ci0JdW5zaWduZWQgaW50IHRsYmVoaSwgdGxiZWhpX3NhdmUsIHRsYmVsbywgbW11Y3IsIG1tdWNyX3NhdmU7CisJdTMyIHRsYmVoaSwgdGxiZWhpX3NhdmUsIHRsYmVsbywgbW11Y3IsIG1tdWNyX3NhdmU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAltbXVjcl9zYXZlID0gc3lzcmVnX3JlYWQoTU1VQ1IpOwogCXRsYmVoaV9zYXZlID0gc3lzcmVnX3JlYWQoVExCRUhJKTsKLQltbXVjciA9IG1tdWNyX3NhdmUgJiAweDEzOwotCW1tdWNyIHw9IGluZGV4IDw8IDE0OworCW1tdWNyID0gU1lTUkVHX0JGSU5TKERSUCwgaW5kZXgsIG1tdWNyX3NhdmUpOwogCXN5c3JlZ193cml0ZShNTVVDUiwgbW11Y3IpOwogCi0JYXNtIHZvbGF0aWxlKCJ0bGJyIiA6IDogOiAibWVtb3J5Iik7CisJX19idWlsdGluX3RsYnIoKTsKIAljcHVfc3luY19waXBlbGluZSgpOwogCiAJdGxiZWhpID0gc3lzcmVnX3JlYWQoVExCRUhJKTsKQEAgLTMzLDE1ICszMywxNyBAQAogCiAJcHJpbnRrKCIlMnU6ICVjICVjICUwMnggICAlMDV4ICUwNXggJW8gICVvICAlYyAlYyAlYyAlY1xuIiwKIAkgICAgICAgaW5kZXgsCi0JICAgICAgICh0bGJlaGkgJiAweDIwMCk/JzEnOicwJywKLQkgICAgICAgKHRsYmVsbyAmIDB4MTAwKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWhpICYgMHhmZiksCi0JICAgICAgICh0bGJlaGkgPj4gMTIpLCAodGxiZWxvID4+IDEyKSwKLQkgICAgICAgKHRsYmVsbyA+PiA0KSAmIDcsICh0bGJlbG8gPj4gMikgJiAzLAotCSAgICAgICAodGxiZWxvICYgMHgyMDApPycxJzonMCcsCi0JICAgICAgICh0bGJlbG8gJiAweDA4MCk/JzEnOicwJywKLQkgICAgICAgKHRsYmVsbyAmIDB4MDAxKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWxvICYgMHgwMDIpPycxJzonMCcpOworCSAgICAgICBTWVNSRUdfQkZFWFQoVExCRUhJX1YsIHRsYmVoaSkgPyAnMScgOiAnMCcsCisJICAgICAgIFNZU1JFR19CRkVYVChHLCB0bGJlbG8pID8gJzEnIDogJzAnLAorCSAgICAgICBTWVNSRUdfQkZFWFQoQVNJRCwgdGxiZWhpKSwKKwkgICAgICAgU1lTUkVHX0JGRVhUKFZQTiwgdGxiZWhpKSA+PiAyLAorCSAgICAgICBTWVNSRUdfQkZFWFQoUEZOLCB0bGJlbG8pID4+IDIsCisJICAgICAgIFNZU1JFR19CRkVYVChBUCwgdGxiZWxvKSwKKwkgICAgICAgU1lTUkVHX0JGRVhUKFNaLCB0bGJlbG8pLAorCSAgICAgICBTWVNSRUdfQkZFWFQoVExCRUxPX0MsIHRsYmVsbykgPyAnQycgOiAnICcsCisJICAgICAgIFNZU1JFR19CRkVYVChCLCB0bGJlbG8pID8gJ0InIDogJyAnLAorCSAgICAgICBTWVNSRUdfQkZFWFQoVywgdGxiZWxvKSA/ICdXJyA6ICcgJywKKwkgICAgICAgU1lTUkVHX0JGRVhUKFRMQkVMT19ELCB0bGJlbG8pID8gJ0QnIDogJyAnKTsKIAogCXN5c3JlZ193cml0ZShNTVVDUiwgbW11Y3Jfc2F2ZSk7CiAJc3lzcmVnX3dyaXRlKFRMQkVISSwgdGxiZWhpX3NhdmUpOwpAQCAtNTQsMjkgKzU2LDMzIEBACiAJdW5zaWduZWQgaW50IGk7CiAKIAlwcmludGsoIklEICBWIEcgQVNJRCBWUE4gICBQRk4gICBBUCBTWiBDIEIgVyBEXG4iKTsKLQlmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykKKwlmb3IgKGkgPSAwOyBpIDwgTlJfVExCX0VOVFJJRVM7IGkrKykKIAkJc2hvd19kdGxiX2VudHJ5KGkpOwogfQogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBsYXN0X21tdWNyOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X3JlcGxhY2VtZW50X3BvaW50ZXIodW5zaWduZWQgc2hpZnQpCitzdGF0aWMgdm9pZCB1cGRhdGVfZHRsYih1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90IHB0ZSkKIHsKLQl1bnNpZ25lZCBsb25nIG1tdWNyLCBtbXVjcl9zYXZlOworCXUzMiB0bGJlaGk7CisJdTMyIG1tdWNyOwogCi0JbW11Y3IgPSBtbXVjcl9zYXZlID0gc3lzcmVnX3JlYWQoTU1VQ1IpOworCS8qCisJICogV2UncmUgbm90IGNoYW5naW5nIHRoZSBBU0lEIGhlcmUsIHNvIG5vIG5lZWQgdG8gZmx1c2ggdGhlCisJICogcGlwZWxpbmUuCisJICovCisJdGxiZWhpID0gc3lzcmVnX3JlYWQoVExCRUhJKTsKKwl0bGJlaGkgPSBTWVNSRUdfQkYoQVNJRCwgU1lTUkVHX0JGRVhUKEFTSUQsIHRsYmVoaSkpOworCXRsYmVoaSB8PSBhZGRyZXNzICYgTU1VX1ZQTl9NQVNLOworCXRsYmVoaSB8PSBTWVNSRUdfQklUKFRMQkVISV9WKTsKKwlzeXNyZWdfd3JpdGUoVExCRUhJLCB0bGJlaGkpOwogCiAJLyogRG9lcyB0aGlzIG1hcHBpbmcgYWxyZWFkeSBleGlzdD8gKi8KLQlfX2FzbV9fIF9fdm9sYXRpbGVfXygKLQkJIgl0bGJzXG4iCi0JCSIJbWZzciAlMCwgJTEiCi0JCTogIj1yIihtbXVjcikKLQkJOiAiaSIoU1lTUkVHX01NVUNSKSk7CisJX19idWlsdGluX3RsYnMoKTsKKwltbXVjciA9IHN5c3JlZ19yZWFkKE1NVUNSKTsKIAogCWlmIChtbXVjciAmIFNZU1JFR19CSVQoTU1VQ1JfTikpIHsKIAkJLyogTm90IGZvdW5kIC0tIHBpY2sgYSBub3QtcmVjZW50bHktYWNjZXNzZWQgZW50cnkgKi8KLQkJdW5zaWduZWQgbG9uZyBycDsKLQkJdW5zaWduZWQgbG9uZyB0bGJhciA9IHN5c3JlZ19yZWFkKFRMQkFSTE8pOworCQl1bnNpZ25lZCBpbnQgcnA7CisJCXUzMiB0bGJhciA9IHN5c3JlZ19yZWFkKFRMQkFSTE8pOwogCiAJCXJwID0gMzIgLSBmbHModGxiYXIpOwogCQlpZiAocnAgPT0gMzIpIHsKQEAgLTg0LDMwICs5MCwxNCBAQAogCQkJc3lzcmVnX3dyaXRlKFRMQkFSTE8sIC0xTCk7CiAJCX0KIAotCQltbXVjciAmPSAweDEzOwotCQltbXVjciB8PSAocnAgPDwgc2hpZnQpOwotCisJCW1tdWNyID0gU1lTUkVHX0JGSU5TKERSUCwgcnAsIG1tdWNyKTsKIAkJc3lzcmVnX3dyaXRlKE1NVUNSLCBtbXVjcik7CiAJfQogCi0JbGFzdF9tbXVjciA9IG1tdWNyOwotfQotCi1zdGF0aWMgdm9pZCB1cGRhdGVfZHRsYih1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90IHB0ZSwgdW5zaWduZWQgbG9uZyBhc2lkKQotewotCXVuc2lnbmVkIGxvbmcgdnBuOwotCi0JdnBuID0gKGFkZHJlc3MgJiBNTVVfVlBOX01BU0spIHwgX1RMQkVISV9WQUxJRCB8IGFzaWQ7Ci0Jc3lzcmVnX3dyaXRlKFRMQkVISSwgdnBuKTsKLQljcHVfc3luY19waXBlbGluZSgpOwotCi0Jc2V0X3JlcGxhY2VtZW50X3BvaW50ZXIoMTQpOwotCiAJc3lzcmVnX3dyaXRlKFRMQkVMTywgcHRlX3ZhbChwdGUpICYgX1BBR0VfRkxBR1NfSEFSRFdBUkVfTUFTSyk7CiAKIAkvKiBMZXQncyBnbyAqLwotCWFzbSB2b2xhdGlsZSgibm9wXG5cdHRsYnciIDogOiA6ICJtZW1vcnkiKTsKLQljcHVfc3luY19waXBlbGluZSgpOworCV9fYnVpbHRpbl90bGJ3KCk7CiB9CiAKIHZvaWQgdXBkYXRlX21tdV9jYWNoZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKQEAgLTEyMCwzOSArMTEwLDQwIEBACiAJCXJldHVybjsKIAogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQl1cGRhdGVfZHRsYihhZGRyZXNzLCBwdGUsIGdldF9hc2lkKCkpOworCXVwZGF0ZV9kdGxiKGFkZHJlc3MsIHB0ZSk7CiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogfQogCi12b2lkIF9fZmx1c2hfdGxiX3BhZ2UodW5zaWduZWQgbG9uZyBhc2lkLCB1bnNpZ25lZCBsb25nIHBhZ2UpCitzdGF0aWMgdm9pZCBfX2ZsdXNoX3RsYl9wYWdlKHVuc2lnbmVkIGxvbmcgYXNpZCwgdW5zaWduZWQgbG9uZyBwYWdlKQogewotCXVuc2lnbmVkIGxvbmcgbW11Y3IsIHRsYmVoaTsKKwl1MzIgbW11Y3IsIHRsYmVoaTsKIAotCXBhZ2UgfD0gYXNpZDsKLQlzeXNyZWdfd3JpdGUoVExCRUhJLCBwYWdlKTsKLQljcHVfc3luY19waXBlbGluZSgpOwotCWFzbSB2b2xhdGlsZSgidGxicyIpOworCS8qCisJICogQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBtYXNraW5nIG91dCBub24tUEZOIGJpdHMgaW4gcGFnZQorCSAqIGFuZCBjaGFuZ2luZyB0aGUgY3VycmVudCBBU0lEIGlmIG5lY2Vzc2FyeS4gVGhpcyBtZWFucyB0aGF0CisJICogd2UgZG9uJ3QgbmVlZCB0byBmbHVzaCB0aGUgcGlwZWxpbmUgYWZ0ZXIgd3JpdGluZyBUTEJFSEkuCisJICovCisJdGxiZWhpID0gcGFnZSB8IGFzaWQ7CisJc3lzcmVnX3dyaXRlKFRMQkVISSwgdGxiZWhpKTsKKworCV9fYnVpbHRpbl90bGJzKCk7CiAJbW11Y3IgPSBzeXNyZWdfcmVhZChNTVVDUik7CiAKIAlpZiAoIShtbXVjciAmIFNZU1JFR19CSVQoTU1VQ1JfTikpKSB7Ci0JCXVuc2lnbmVkIGxvbmcgdGxiYXJsbzsKLQkJdW5zaWduZWQgbG9uZyBlbnRyeTsKKwkJdW5zaWduZWQgaW50IGVudHJ5OworCQl1MzIgdGxiYXJsbzsKIAogCQkvKiBDbGVhciB0aGUgInZhbGlkIiBiaXQgKi8KLQkJdGxiZWhpID0gc3lzcmVnX3JlYWQoVExCRUhJKTsKLQkJdGxiZWhpICY9IH5fVExCRUhJX1ZBTElEOwogCQlzeXNyZWdfd3JpdGUoVExCRUhJLCB0bGJlaGkpOwotCQljcHVfc3luY19waXBlbGluZSgpOwogCiAJCS8qIG1hcmsgdGhlIGVudHJ5IGFzICJub3QgYWNjZXNzZWQiICovCi0JCWVudHJ5ID0gKG1tdWNyID4+IDE0KSAmIDB4M2Y7CisJCWVudHJ5ID0gU1lTUkVHX0JGRVhUKERSUCwgbW11Y3IpOwogCQl0bGJhcmxvID0gc3lzcmVnX3JlYWQoVExCQVJMTyk7Ci0JCXRsYmFybG8gfD0gKDB4ODAwMDAwMDAgPj4gZW50cnkpOworCQl0bGJhcmxvIHw9ICgweDgwMDAwMDAwVUwgPj4gZW50cnkpOwogCQlzeXNyZWdfd3JpdGUoVExCQVJMTywgdGxiYXJsbyk7CiAKIAkJLyogdXBkYXRlIHRoZSBlbnRyeSB3aXRoIHZhbGlkIGJpdCBjbGVhciAqLwotCQlhc20gdm9sYXRpbGUoInRsYnciKTsKLQkJY3B1X3N5bmNfcGlwZWxpbmUoKTsKKwkJX19idWlsdGluX3RsYncoKTsKIAl9CiB9CiAKQEAgLTE5MCwxNyArMTgxLDIyIEBACiAKIAkJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCQlzaXplID0gKGVuZCAtIHN0YXJ0ICsgKFBBR0VfU0laRSAtIDEpKSA+PiBQQUdFX1NISUZUOworCiAJCWlmIChzaXplID4gKE1NVV9EVExCX0VOVFJJRVMgLyA0KSkgeyAvKiBUb28gbWFueSBlbnRyaWVzIHRvIGZsdXNoICovCiAJCQltbS0+Y29udGV4dCA9IE5PX0NPTlRFWFQ7CiAJCQlpZiAobW0gPT0gY3VycmVudC0+bW0pCiAJCQkJYWN0aXZhdGVfY29udGV4dChtbSk7CiAJCX0gZWxzZSB7Ci0JCQl1bnNpZ25lZCBsb25nIGFzaWQgPSBtbS0+Y29udGV4dCAmIE1NVV9DT05URVhUX0FTSURfTUFTSzsKLQkJCXVuc2lnbmVkIGxvbmcgc2F2ZWRfYXNpZCA9IE1NVV9OT19BU0lEOworCQkJdW5zaWduZWQgbG9uZyBhc2lkOworCQkJdW5zaWduZWQgbG9uZyBzYXZlZF9hc2lkOworCisJCQlhc2lkID0gbW0tPmNvbnRleHQgJiBNTVVfQ09OVEVYVF9BU0lEX01BU0s7CisJCQlzYXZlZF9hc2lkID0gTU1VX05PX0FTSUQ7CiAKIAkJCXN0YXJ0ICY9IFBBR0VfTUFTSzsKIAkJCWVuZCArPSAoUEFHRV9TSVpFIC0gMSk7CiAJCQllbmQgJj0gUEFHRV9NQVNLOworCiAJCQlpZiAobW0gIT0gY3VycmVudC0+bW0pIHsKIAkJCQlzYXZlZF9hc2lkID0gZ2V0X2FzaWQoKTsKIAkJCQlzZXRfYXNpZChhc2lkKTsKQEAgLTIxOCwzMyArMjE0LDM0IEBACiB9CiAKIC8qCi0gKiBUT0RPOiBJZiB0aGlzIGlzIG9ubHkgY2FsbGVkIGZvciBhZGRyZXNzZXMgPiBUQVNLX1NJWkUsIHdlIGNhbiBwcm9iYWJseQotICogc2tpcCB0aGUgQVNJRCBzdHVmZiBhbmQganVzdCB1c2UgdGhlIEdsb2JhbCBiaXQuLi4KKyAqIFRoaXMgZnVuY3Rpb24gZGVwZW5kcyBvbiB0aGUgcGFnZXMgdG8gYmUgZmx1c2hlZCBoYXZpbmcgdGhlIEcKKyAqIChnbG9iYWwpIGJpdCBzZXQgaW4gdGhlaXIgcHRlLiBUaGlzIGlzIHRydWUgZm9yIGFsbAorICogUEFHRV9LRVJORUwoX1JPKSBwYWdlcy4KICAqLwogdm9pZCBmbHVzaF90bGJfa2VybmVsX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHNpemU7CiAKLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAJc2l6ZSA9IChlbmQgLSBzdGFydCArIChQQUdFX1NJWkUgLSAxKSkgPj4gUEFHRV9TSElGVDsKIAlpZiAoc2l6ZSA+IChNTVVfRFRMQl9FTlRSSUVTIC8gNCkpIHsgLyogVG9vIG1hbnkgZW50cmllcyB0byBmbHVzaCAqLwogCQlmbHVzaF90bGJfYWxsKCk7CiAJfSBlbHNlIHsKLQkJdW5zaWduZWQgbG9uZyBhc2lkID0gaW5pdF9tbS5jb250ZXh0ICYgTU1VX0NPTlRFWFRfQVNJRF9NQVNLOwotCQl1bnNpZ25lZCBsb25nIHNhdmVkX2FzaWQgPSBnZXRfYXNpZCgpOworCQl1bnNpZ25lZCBsb25nIGFzaWQ7CisKKwkJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCQlhc2lkID0gZ2V0X2FzaWQoKTsKIAogCQlzdGFydCAmPSBQQUdFX01BU0s7CiAJCWVuZCArPSAoUEFHRV9TSVpFIC0gMSk7CiAJCWVuZCAmPSBQQUdFX01BU0s7Ci0JCXNldF9hc2lkKGFzaWQpOworCiAJCXdoaWxlIChzdGFydCA8IGVuZCkgewogCQkJX19mbHVzaF90bGJfcGFnZShhc2lkLCBzdGFydCk7CiAJCQlzdGFydCArPSBQQUdFX1NJWkU7CiAJCX0KLQkJc2V0X2FzaWQoc2F2ZWRfYXNpZCk7CisJCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAl9Ci0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogfQogCiB2b2lkIGZsdXNoX3RsYl9tbShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKQEAgLTI4MCw3ICsyNzcsNyBAQAogewogCXN0YXRpYyB1bnNpZ25lZCBsb25nIHRsYl9pbmRleDsKIAotCWlmICgqcG9zID49IDMyKQorCWlmICgqcG9zID49IE5SX1RMQl9FTlRSSUVTKQogCQlyZXR1cm4gTlVMTDsKIAogCXRsYl9pbmRleCA9IDA7CkBAIC0yOTEsNyArMjg4LDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nICppbmRleCA9IHY7CiAKLQlpZiAoKmluZGV4ID49IDMxKQorCWlmICgqaW5kZXggPj0gTlJfVExCX0VOVFJJRVMgLSAxKQogCQlyZXR1cm4gTlVMTDsKIAogCSsrKnBvczsKQEAgLTMxMywxNiArMzEwLDE2IEBACiAJaWYgKCppbmRleCA9PSAwKQogCQlzZXFfcHV0cyh0bGIsICJJRCAgViBHIEFTSUQgVlBOICAgUEZOICAgQVAgU1ogQyBCIFcgRFxuIik7CiAKLQlCVUdfT04oKmluZGV4ID49IDMyKTsKKwlCVUdfT04oKmluZGV4ID49IE5SX1RMQl9FTlRSSUVTKTsKIAogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAltbXVjcl9zYXZlID0gc3lzcmVnX3JlYWQoTU1VQ1IpOwogCXRsYmVoaV9zYXZlID0gc3lzcmVnX3JlYWQoVExCRUhJKTsKLQltbXVjciA9IG1tdWNyX3NhdmUgJiAweDEzOwotCW1tdWNyIHw9ICppbmRleCA8PCAxNDsKKwltbXVjciA9IFNZU1JFR19CRklOUyhEUlAsICppbmRleCwgbW11Y3Jfc2F2ZSk7CiAJc3lzcmVnX3dyaXRlKE1NVUNSLCBtbXVjcik7CiAKLQlhc20gdm9sYXRpbGUoInRsYnIiIDogOiA6ICJtZW1vcnkiKTsKKwkvKiBUTEJSIG1pZ2h0IGNoYW5nZSB0aGUgQVNJRCAqLworCV9fYnVpbHRpbl90bGJyKCk7CiAJY3B1X3N5bmNfcGlwZWxpbmUoKTsKIAogCXRsYmVoaSA9IHN5c3JlZ19yZWFkKFRMQkVISSk7CkBAIC0zMzQsMTYgKzMzMSwxOCBAQAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAogCXNlcV9wcmludGYodGxiLCAiJTJsdTogJWMgJWMgJTAyeCAgICUwNXggJTA1eCAlbyAgJW8gICVjICVjICVjICVjXG4iLAotCSAgICAgICAqaW5kZXgsCi0JICAgICAgICh0bGJlaGkgJiAweDIwMCk/JzEnOicwJywKLQkgICAgICAgKHRsYmVsbyAmIDB4MTAwKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWhpICYgMHhmZiksCi0JICAgICAgICh0bGJlaGkgPj4gMTIpLCAodGxiZWxvID4+IDEyKSwKLQkgICAgICAgKHRsYmVsbyA+PiA0KSAmIDcsICh0bGJlbG8gPj4gMikgJiAzLAotCSAgICAgICAodGxiZWxvICYgMHgyMDApPycxJzonMCcsCi0JICAgICAgICh0bGJlbG8gJiAweDA4MCk/JzEnOicwJywKLQkgICAgICAgKHRsYmVsbyAmIDB4MDAxKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWxvICYgMHgwMDIpPycxJzonMCcpOworCQkgICAqaW5kZXgsCisJCSAgIFNZU1JFR19CRkVYVChUTEJFSElfViwgdGxiZWhpKSA/ICcxJyA6ICcwJywKKwkJICAgU1lTUkVHX0JGRVhUKEcsIHRsYmVsbykgPyAnMScgOiAnMCcsCisJCSAgIFNZU1JFR19CRkVYVChBU0lELCB0bGJlaGkpLAorCQkgICBTWVNSRUdfQkZFWFQoVlBOLCB0bGJlaGkpID4+IDIsCisJCSAgIFNZU1JFR19CRkVYVChQRk4sIHRsYmVsbykgPj4gMiwKKwkJICAgU1lTUkVHX0JGRVhUKEFQLCB0bGJlbG8pLAorCQkgICBTWVNSRUdfQkZFWFQoU1osIHRsYmVsbyksCisJCSAgIFNZU1JFR19CRkVYVChUTEJFTE9fQywgdGxiZWxvKSA/ICcxJyA6ICcwJywKKwkJICAgU1lTUkVHX0JGRVhUKEIsIHRsYmVsbykgPyAnMScgOiAnMCcsCisJCSAgIFNZU1JFR19CRkVYVChXLCB0bGJlbG8pID8gJzEnIDogJzAnLAorCQkgICBTWVNSRUdfQkZFWFQoVExCRUxPX0QsIHRsYmVsbykgPyAnMScgOiAnMCcpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2JsYWNrZmluL2tlcm5lbC9jcGxiLW5vbXB1L2NwbGJpbml0LmMgYi9hcmNoL2JsYWNrZmluL2tlcm5lbC9jcGxiLW5vbXB1L2NwbGJpbml0LmMKaW5kZXggOTE3MzI1Yi4uNmJlMGM1MCAxMDA2NDQKLS0tIGEvYXJjaC9ibGFja2Zpbi9rZXJuZWwvY3BsYi1ub21wdS9jcGxiaW5pdC5jCisrKyBiL2FyY2gvYmxhY2tmaW4va2VybmVsL2NwbGItbm9tcHUvY3BsYmluaXQuYwpAQCAtMjU0LDcgKzI1NCw4IEBACiB9CiAKIC8qIGhlbHBlciBmdW5jdGlvbiAqLwotc3RhdGljIHZvaWQgX19maWxsX2NvZGVfY3BsYnRhYihzdHJ1Y3QgY3BsYl90YWIgKnQsIGludCBpLCB1MzIgYV9zdGFydCwgdTMyIGFfZW5kKQorc3RhdGljIHZvaWQgX19pbml0CitfX2ZpbGxfY29kZV9jcGxidGFiKHN0cnVjdCBjcGxiX3RhYiAqdCwgaW50IGksIHUzMiBhX3N0YXJ0LCB1MzIgYV9lbmQpCiB7CiAJaWYgKGNwbGJfZGF0YVtpXS5wc2l6ZSkgewogCQlmaWxsX2NwbGJ0YWIodCwKQEAgLTI5MSw3ICsyOTIsOCBAQAogCX0KIH0KIAotc3RhdGljIHZvaWQgX19maWxsX2RhdGFfY3BsYnRhYihzdHJ1Y3QgY3BsYl90YWIgKnQsIGludCBpLCB1MzIgYV9zdGFydCwgdTMyIGFfZW5kKQorc3RhdGljIHZvaWQgX19pbml0CitfX2ZpbGxfZGF0YV9jcGxidGFiKHN0cnVjdCBjcGxiX3RhYiAqdCwgaW50IGksIHUzMiBhX3N0YXJ0LCB1MzIgYV9lbmQpCiB7CiAJaWYgKGNwbGJfZGF0YVtpXS5wc2l6ZSkgewogCQlmaWxsX2NwbGJ0YWIodCwKZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4va2VybmVsL2lycWNoaXAuYyBiL2FyY2gvYmxhY2tmaW4va2VybmVsL2lycWNoaXAuYwppbmRleCA3MzY0N2MxLi4wNzQwMmY1IDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL2tlcm5lbC9pcnFjaGlwLmMKKysrIGIvYXJjaC9ibGFja2Zpbi9rZXJuZWwvaXJxY2hpcC5jCkBAIC02MCw5ICs2MCwxNCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBpcnFfZGVzYyBiYWRfaXJxX2Rlc2MgPSB7CisJLnN0YXR1cyA9IElSUV9ESVNBQkxFRCwKIAkuY2hpcCA9ICZiYWRfY2hpcCwKIAkuaGFuZGxlX2lycSA9IGhhbmRsZV9iYWRfaXJxLAogCS5kZXB0aCA9IDEsCisJLmxvY2sgPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChpcnFfZGVzYy0+bG9jayksCisjaWZkZWYgQ09ORklHX1NNUAorCS5hZmZpbml0eSA9IENQVV9NQVNLX0FMTAorI2VuZGlmCiB9OwogCiBpbnQgc2hvd19pbnRlcnJ1cHRzKHN0cnVjdCBzZXFfZmlsZSAqcCwgdm9pZCAqdikKZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU2MS9jb3JlYi5jIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTYxL2NvcmViLmMKaW5kZXggMWI0NGU5ZS4uODU5ODA5OCAxMDA2NDQKLS0tIGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTYxL2NvcmViLmMKKysrIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTYxL2NvcmViLmMKQEAgLTE5NCw2ICsxOTQsNyBAQAogCXJldHVybiByZXQ7CiB9CiAKKy8qIE5vIEJLTCBuZWVkZWQgaGVyZSAqLwogc3RhdGljIGludCBjb3JlYl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCXNwaW5fbG9ja19pcnEoJmNvcmViX2xvY2spOwpkaWZmIC0tZ2l0IGEvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvZWVwcm9tLmMgYi9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9lZXByb20uYwppbmRleCBmMWNhYzlkLi4xZjJhZTkwIDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9lZXByb20uYworKysgYi9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9lZXByb20uYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSAiaTJjLmgiCkBAIC0zNzUsMTAgKzM3Niw5IEBACiB9CiAKIC8qIE9wZW5zIHRoZSBkZXZpY2UuICovCi0KIHN0YXRpYyBpbnQgZWVwcm9tX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlsZSkKIHsKLQorICBjeWNsZV9rZXJuZWxfbG9jaygpOwogICBpZihpbWlub3IoaW5vZGUpICE9IEVFUFJPTV9NSU5PUl9OUikKICAgICAgcmV0dXJuIC1FTlhJTzsKICAgaWYoaW1ham9yKGlub2RlKSAhPSBFRVBST01fTUFKT1JfTlIpCmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9ncGlvLmMgYi9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9ncGlvLmMKaW5kZXggNjhhOTk4Yi4uODYwNDhlNiAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvZ3Bpby5jCisrKyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2dwaW8uYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC0zMjMsNiArMzI0LDcgQEAKIAlpZiAoIXByaXYpCiAJCXJldHVybiAtRU5PTUVNOwogCisJbG9ja19rZXJuZWwoKTsKIAlwcml2LT5taW5vciA9IHA7CiAKIAkvKiBpbml0aWFsaXplIHRoZSBpby9hbGFybSBzdHJ1Y3QgKi8KQEAgLTM1Nyw2ICszNTksNyBAQAogCWFsYXJtbGlzdCA9IHByaXY7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ3Bpb19sb2NrLCBmbGFncyk7CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2kyYy5jIGIvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvaTJjLmMKaW5kZXggZDZkMjIwNi4uMjc5N2U2NyAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvaTJjLmMKKysrIGIvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvaTJjLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KQEAgLTU2Niw2ICs1NjcsNyBAQAogc3RhdGljIGludAogaTJjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvc3luY19zZXJpYWwuYyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL3N5bmNfc2VyaWFsLmMKaW5kZXggMDY5NTQ2ZS4uOTFmZWE2MiAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvc3luY19zZXJpYWwuYworKysgYi9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9zeW5jX3NlcmlhbC5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGFzbS9kbWEuaD4KQEAgLTQ0MywxOCArNDQ0LDIxIEBACiAJaW50IGRldiA9IE1JTk9SKGlub2RlLT5pX3JkZXYpOwogCXN0cnVjdCBzeW5jX3BvcnQgKnBvcnQ7CiAJaW50IG1vZGU7CisJaW50IGVyciA9IC1FQlVTWTsKIAorCWxvY2tfa2VybmVsKCk7CiAJREVCVUcocHJpbnRrKEtFUk5fREVCVUcgIk9wZW4gc3luYyBzZXJpYWwgcG9ydCAlZFxuIiwgZGV2KSk7CiAKIAlpZiAoZGV2IDwgMCB8fCBkZXYgPj0gTlVNQkVSX09GX1BPUlRTIHx8ICFwb3J0c1tkZXZdLmVuYWJsZWQpIHsKIAkJREVCVUcocHJpbnRrKEtFUk5fREVCVUcgIkludmFsaWQgbWlub3IgJWRcbiIsIGRldikpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJZXJyID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CiAJfQogCXBvcnQgPSAmcG9ydHNbZGV2XTsKIAkvKiBBbGxvdyBvcGVuIHRoaXMgZGV2aWNlIHR3aWNlIChhc3N1bWluZyBvbmUgcmVhZGVyIGFuZCBvbmUgd3JpdGVyKSAqLwogCWlmIChwb3J0LT5idXN5ID09IDIpIHsKIAkJREVCVUcocHJpbnRrKEtFUk5fREVCVUcgIkRldmljZSBpcyBidXN5Li4gXG4iKSk7Ci0JCXJldHVybiAtRUJVU1k7CisJCWdvdG8gb3V0OwogCX0KIAlpZiAocG9ydC0+aW5pdF9pcnFzKSB7CiAJCWlmIChwb3J0LT51c2VfZG1hKSB7CkBAIC00NjUsMTQgKzQ2OSwxNCBAQAogCQkJCQkJJnBvcnRzWzBdKSkgewogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgcG9ydCAxIElSUSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9IGVsc2UgaWYgKHJlcXVlc3RfaXJxKDI1LCByeF9pbnRlcnJ1cHQsIDAsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDEgZG1hIHJ4IiwKIAkJCQkJCSZwb3J0c1swXSkpIHsKIAkJCQkJZnJlZV9pcnEoMjQsICZwb3J0WzBdKTsKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMSBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzX3JlcXVlc3RfZG1hKDgsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDEgZG1hIHRyIiwKIAkJCQkJCURNQV9WRVJCT1NFX09OX0VSUk9SLApAQCAtNDgyLDcgKzQ4Niw3IEBACiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jICIKIAkJCQkJCSJzeW5jIHNlcmlhbCBwb3J0IDEgIgogCQkJCQkJIlRYIERNQSBjaGFubmVsIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAoY3Jpc19yZXF1ZXN0X2RtYSg5LAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAxIGRtYSByZWMiLAogCQkJCQkJRE1BX1ZFUkJPU0VfT05fRVJST1IsCkBAIC00OTMsNyArNDk3LDcgQEAKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMSAiCiAJCQkJCQkiUlggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfQogI2VuZGlmCiAJCQkJUkVTRVRfRE1BKDgpOyBXQUlUX0RNQSg4KTsKQEAgLTUyMCwxNCArNTI0LDE0IEBACiAJCQkJCQkmcG9ydHNbMV0pKSB7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jICIKIAkJCQkJCSJzeW5jIHNlcmlhbCBwb3J0IDMgSVJRIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAocmVxdWVzdF9pcnEoMjEsIHJ4X2ludGVycnVwdCwgMCwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMyBkbWEgcngiLAogCQkJCQkJJnBvcnRzWzFdKSkgewogCQkJCQlmcmVlX2lycSgyMCwgJnBvcnRzWzFdKTsKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMyBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzX3JlcXVlc3RfZG1hKDQsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDMgZG1hIHRyIiwKIAkJCQkJCURNQV9WRVJCT1NFX09OX0VSUk9SLApAQCAtNTM3LDcgKzU0MSw3IEBACiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jICIKIAkJCQkJCSJzeW5jIHNlcmlhbCBwb3J0IDMgIgogCQkJCQkJIlRYIERNQSBjaGFubmVsIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAoY3Jpc19yZXF1ZXN0X2RtYSg1LAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAzIGRtYSByZWMiLAogCQkJCQkJRE1BX1ZFUkJPU0VfT05fRVJST1IsCkBAIC01NDgsNyArNTUyLDcgQEAKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMyAiCiAJCQkJCQkiUlggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfQogI2VuZGlmCiAJCQkJUkVTRVRfRE1BKDQpOyBXQUlUX0RNQSg0KTsKQEAgLTU4MSw3ICs1ODUsNyBAQAogCQkJCQkJJnBvcnRzWzBdKSkgewogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgbWFudWFsIGlycSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAJCQl9IGVsc2UgaWYgKHBvcnQgPT0gJnBvcnRzWzFdKSB7CiAJCQkJaWYgKHJlcXVlc3RfaXJxKDgsCkBAIC01OTEsNyArNTk1LDcgQEAKIAkJCQkJCSZwb3J0c1sxXSkpIHsKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIG1hbnVhbCBpcnEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfQogCQkJfQogCQkJcG9ydC0+aW5pdF9pcnFzID0gMDsKQEAgLTYyMCw3ICs2MjQsMTEgQEAKIAkJCSpSX0lSUV9NQVNLMV9TRVQgPSAxIDw8IHBvcnQtPmRhdGFfYXZhaWxfYml0OwogCQlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAic3NlciVkIHJlYyBzdGFydGVkXG4iLCBkZXYpKTsKIAl9Ci0JcmV0dXJuIDA7CisJcmV0ID0gMDsKKwkKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBzeW5jX3NlcmlhbF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvY3J5cHRvY29wLmMgYi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9jcnlwdG9jb3AuYwppbmRleCA5ZmI1ODIwLi42N2M2MWVhIDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9jcnlwdG9jb3AuYworKysgYi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9jcnlwdG9jb3AuYwpAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+CiAKQEAgLTIzMDIsMTEgKzIzMDMsMTEgQEAKIAlyZXR1cm4gMDsKIH0KIAotCiBzdGF0aWMgaW50IGNyeXB0b2NvcF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewogCWludCBwID0gaW1pbm9yKGlub2RlKTsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJaWYgKHAgIT0gQ1JZUFRPQ09QX01JTk9SKSByZXR1cm4gLUVJTlZBTDsKIAogCWZpbHAtPnByaXZhdGVfZGF0YSA9IE5VTEw7CmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9pMmMuYyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2kyYy5jCmluZGV4IGMyZmI3YTUuLjE3OWU3YjggMTAwNjQ0Ci0tLSBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2kyYy5jCisrKyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2kyYy5jCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9ldHJheGkyYy5oPgogCkBAIC02MzYsNiArNjM3LDcgQEAKIHN0YXRpYyBpbnQKIGkyY19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL21hY2gtYTMvZ3Bpby5jIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1hMy9ncGlvLmMKaW5kZXggZGUxMDdkYS4uZWY5ODYwOCAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1hMy9ncGlvLmMKKysrIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1hMy9ncGlvLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2V0cmF4Z3Bpby5oPgogI2luY2x1ZGUgPGh3cmVncy9yZWdfbWFwLmg+CkBAIC0zOTAsNiArMzkxLDggQEAKIAogCWlmICghcHJpdikKIAkJcmV0dXJuIC1FTk9NRU07CisKKwlsb2NrX2tlcm5lbCgpOwogCW1lbXNldChwcml2LCAwLCBzaXplb2YoKnByaXYpKTsKIAogCXByaXYtPm1pbm9yID0gcDsKQEAgLTQxMiw2ICs0MTUsNyBAQAogCQlzcGluX3VubG9ja19pcnEoJmdwaW9fbG9jayk7CiAJfQogCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9tYWNoLWZzL2dwaW8uYyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL21hY2gtZnMvZ3Bpby5jCmluZGV4IDc4NjNmZDQuLmZlMWZkZTggMTAwNjQ0Ci0tLSBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL21hY2gtZnMvZ3Bpby5jCisrKyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL21hY2gtZnMvZ3Bpby5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9ldHJheGdwaW8uaD4KICNpbmNsdWRlIDxod3JlZ3MvcmVnX21hcC5oPgpAQCAtNDI2LDkgKzQyNywxMCBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXByaXYgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgZ3Bpb19wcml2YXRlKSwgR0ZQX0tFUk5FTCk7Ci0KIAlpZiAoIXByaXYpCiAJCXJldHVybiAtRU5PTUVNOworCisJbG9ja19rZXJuZWwoKTsKIAltZW1zZXQocHJpdiwgMCwgc2l6ZW9mKCpwcml2KSk7CiAKIAlwcml2LT5taW5vciA9IHA7CkBAIC00NDksNiArNDUxLDcgQEAKIAlhbGFybWxpc3QgPSBwcml2OwogCXNwaW5fdW5sb2NrX2lycSgmYWxhcm1fbG9jayk7CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL3N5bmNfc2VyaWFsLmMgYi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9zeW5jX3NlcmlhbC5jCmluZGV4IDQ3YzM3N2QuLmQyYTBmYmYgMTAwNjQ0Ci0tLSBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL3N5bmNfc2VyaWFsLmMKKysrIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvc3luY19zZXJpYWwuYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpAQCAtNDI5LDIzICs0MzAsMjYgQEAKIHN0YXRpYyBpbnQgc3luY19zZXJpYWxfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAlpbnQgZGV2ID0gaW1pbm9yKGlub2RlKTsKKwlpbnQgcmV0ID0gLUVCVVNZOwogCXN5bmNfcG9ydCAqcG9ydDsKIAlyZWdfZG1hX3J3X2NmZyBjZmcgPSB7LmVuID0gcmVna19kbWFfeWVzfTsKIAlyZWdfZG1hX3J3X2ludHJfbWFzayBpbnRyX21hc2sgPSB7LmRhdGEgPSByZWdrX2RtYV95ZXN9OwogCisJbG9ja19rZXJuZWwoKTsKIAlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAiT3BlbiBzeW5jIHNlcmlhbCBwb3J0ICVkXG4iLCBkZXYpKTsKIAogCWlmIChkZXYgPCAwIHx8IGRldiA+PSBOQlJfUE9SVFMgfHwgIXBvcnRzW2Rldl0uZW5hYmxlZCkKIAl7CiAJCURFQlVHKHByaW50ayhLRVJOX0RFQlVHICJJbnZhbGlkIG1pbm9yICVkXG4iLCBkZXYpKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OwogCX0KIAlwb3J0ID0gJnBvcnRzW2Rldl07CiAJLyogQWxsb3cgb3BlbiB0aGlzIGRldmljZSB0d2ljZSAoYXNzdW1pbmcgb25lIHJlYWRlciBhbmQgb25lIHdyaXRlcikgKi8KIAlpZiAocG9ydC0+YnVzeSA9PSAyKQogCXsKIAkJREVCVUcocHJpbnRrKEtFUk5fREVCVUcgIkRldmljZSBpcyBidXN5Li4gXG4iKSk7Ci0JCXJldHVybiAtRUJVU1k7CisJCWdvdG8gb3V0OwogCX0KIAogCkBAIC00NTksNyArNDYzLDcgQEAKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMCBkbWEgdHIiLAogCQkJCQkJJnBvcnRzWzBdKSkgewogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDAgSVJRIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAocmVxdWVzdF9pcnEoRE1BX0lOX0lOVFJfVkVDVCwKIAkJCQkJCXJ4X2ludGVycnVwdCwKIAkJCQkJCTAsCkBAIC00NjcsNyArNDcxLDcgQEAKIAkJCQkJCSZwb3J0c1swXSkpIHsKIAkJCQkJZnJlZV9pcnEoRE1BX09VVF9JTlRSX1ZFQ1QsICZwb3J0WzBdKTsKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2NhdGUgc3luYyBzZXJpYWwgcG9ydCAwIElSUSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9IGVsc2UgaWYgKGNyaXN2MzJfcmVxdWVzdF9kbWEoT1VUX0RNQV9OQlIsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDAgZG1hIHRyIiwKIAkJCQkJCURNQV9WRVJCT1NFX09OX0VSUk9SLApAQCAtNDc2LDcgKzQ4MCw3IEBACiAJCQkJCWZyZWVfaXJxKERNQV9PVVRfSU5UUl9WRUNULCAmcG9ydFswXSk7CiAJCQkJCWZyZWVfaXJxKERNQV9JTl9JTlRSX1ZFQ1QsICZwb3J0WzBdKTsKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2NhdGUgc3luYyBzZXJpYWwgcG9ydCAwIFRYIERNQSBjaGFubmVsIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAoY3Jpc3YzMl9yZXF1ZXN0X2RtYShJTl9ETUFfTkJSLAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAwIGRtYSByZWMiLAogCQkJCQkJRE1BX1ZFUkJPU0VfT05fRVJST1IsCkBAIC00ODYsNyArNDkwLDcgQEAKIAkJCQkJZnJlZV9pcnEoRE1BX09VVF9JTlRSX1ZFQ1QsICZwb3J0WzBdKTsKIAkJCQkJZnJlZV9pcnEoRE1BX0lOX0lOVFJfVkVDVCwgJnBvcnRbMF0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDEgUlggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfQogI2VuZGlmCiAJCQl9CkBAIC00OTksNyArNTAzLDcgQEAKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMSBkbWEgdHIiLAogCQkJCQkJJnBvcnRzWzFdKSkgewogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDEgSVJRIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAocmVxdWVzdF9pcnEoRE1BN19JTlRSX1ZFQ1QsCiAJCQkJCQkgICAgICAgcnhfaW50ZXJydXB0LAogCQkJCQkJICAgICAgIDAsCkBAIC01MDcsNyArNTExLDcgQEAKIAkJCQkJCSAgICAgICAmcG9ydHNbMV0pKSB7CiAJCQkJCWZyZWVfaXJxKERNQTZfSU5UUl9WRUNULCAmcG9ydHNbMV0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDMgSVJRIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAoY3Jpc3YzMl9yZXF1ZXN0X2RtYSgKIAkJCQkJCVNZTkNfU0VSMV9UWF9ETUFfTkJSLAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAxIGRtYSB0ciIsCkBAIC01MTcsNyArNTIxLDcgQEAKIAkJCQkJZnJlZV9pcnEoRE1BNl9JTlRSX1ZFQ1QsICZwb3J0c1sxXSk7CiAJCQkJCWZyZWVfaXJxKERNQTdfSU5UUl9WRUNULCAmcG9ydHNbMV0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDMgVFggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzdjMyX3JlcXVlc3RfZG1hKAogCQkJCQkJU1lOQ19TRVIxX1JYX0RNQV9OQlIsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDMgZG1hIHJlYyIsCkBAIC01MjgsNyArNTMyLDcgQEAKIAkJCQkJZnJlZV9pcnEoRE1BNl9JTlRSX1ZFQ1QsICZwb3J0c1sxXSk7CiAJCQkJCWZyZWVfaXJxKERNQTdfSU5UUl9WRUNULCAmcG9ydHNbMV0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDMgUlggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfQogI2VuZGlmCiAJCQl9CkBAIC01NTQsNyArNTU4LDcgQEAKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgbWFudWFsIGlycSIsCiAJCQkJCQkmcG9ydHNbMF0pKSB7CiAJCQkJCXByaW50aygiQ2FuJ3QgYWxsb2NhdGUgc3luYyBzZXJpYWwgbWFudWFsIGlycSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAJCQl9CiAjaWZkZWYgQ09ORklHX0VUUkFYRlMKQEAgLTU2NSw3ICs1NjksNyBAQAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCBtYW51YWwgaXJxIiwKIAkJCQkJCSZwb3J0c1sxXSkpIHsKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2NhdGUgc3luYyBzZXJpYWwgbWFudWFsIGlycSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAJCQl9CiAjZW5kaWYKQEAgLTU3OCw3ICs1ODIsMTAgQEAKIAl9IC8qIHBvcnQtPmluaXRfaXJxcyAqLwogCiAJcG9ydC0+YnVzeSsrOwotCXJldHVybiAwOworCXJldCA9IDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgc3luY19zZXJpYWxfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvaWE2NC9rZXJuZWwvc2V0dXAuYwppbmRleCA0YWUxNWM4Li42MzJjZGE4IDEwMDY0NAotLS0gYS9hcmNoL2lhNjQva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9zZXR1cC5jCkBAIC01NDcsNyArNTQ3LDggQEAKICMgaWZkZWYgQ09ORklHX0FDUElfTlVNQQogCWFjcGlfbnVtYV9pbml0KCk7CiAJcGVyX2NwdV9zY2FuX2ZpbmFsaXplKChjcHVzX3dlaWdodChlYXJseV9jcHVfcG9zc2libGVfbWFwKSA9PSAwID8KLQkJMzIgOiBjcHVzX3dlaWdodChlYXJseV9jcHVfcG9zc2libGVfbWFwKSksIGFkZGl0aW9uYWxfY3B1cyk7CisJCTMyIDogY3B1c193ZWlnaHQoZWFybHlfY3B1X3Bvc3NpYmxlX21hcCkpLAorCQlhZGRpdGlvbmFsX2NwdXMgPiAwID8gYWRkaXRpb25hbF9jcHVzIDogMCk7CiAjIGVuZGlmCiAjZWxzZQogIyBpZmRlZiBDT05GSUdfU01QCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL3RpbWUuYyBiL2FyY2gvaWE2NC9rZXJuZWwvdGltZS5jCmluZGV4IDhjNzM2NDMuLmFhZDFiN2IgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvdGltZS5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvdGltZS5jCkBAIC0xMTcsNiArMTE3LDcgQEAKIAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGFjY291bnRfc3lzdGVtX3Z0aW1lKTsKIAogLyoKICAqIENhbGxlZCBmcm9tIHRoZSB0aW1lciBpbnRlcnJ1cHQgaGFuZGxlciB0byBjaGFyZ2UgYWNjdW11bGF0ZWQgdXNlciB0aW1lCmRpZmYgLS1naXQgYS9hcmNoL202OGsvYnZtZTYwMDAvcnRjLmMgYi9hcmNoL202OGsvYnZtZTYwMDAvcnRjLmMKaW5kZXggYTgxMmQwMy4uZThhYzNmNyAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2J2bWU2MDAwL3J0Yy5jCisrKyBiL2FyY2gvbTY4ay9idm1lNjAwMC9ydGMuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9mY250bC5oPgpAQCAtMTQwLDEwICsxNDEsMTQgQEAKIAogc3RhdGljIGludCBydGNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlpZihydGNfc3RhdHVzKQorCWxvY2tfa2VybmVsKCk7CisJaWYocnRjX3N0YXR1cykgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CisJfQogCiAJcnRjX3N0YXR1cyA9IDE7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL202OGsvbXZtZTE2eC9ydGMuYyBiL2FyY2gvbTY4ay9tdm1lMTZ4L3J0Yy5jCmluZGV4IGUzNDEzODcuLjQzMmE5ZjEgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9tdm1lMTZ4L3J0Yy5jCisrKyBiL2FyY2gvbTY4ay9tdm1lMTZ4L3J0Yy5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZjbnRsLmg+CkBAIC0xMjcsMTEgKzEyOCwxNCBAQAogCiBzdGF0aWMgaW50IHJ0Y19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJaWYoICFhdG9taWNfZGVjX2FuZF90ZXN0KCZydGNfcmVhZHkpICkKIAl7CiAJCWF0b21pY19pbmMoICZydGNfcmVhZHkgKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOwogCX0KKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9LY29uZmlnIGIvYXJjaC9taXBzL0tjb25maWcKaW5kZXggZWE3MGQ1YS4uZDJiZTNmZiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL0tjb25maWcKKysrIGIvYXJjaC9taXBzL0tjb25maWcKQEAgLTEwMDYsNyArMTAwNiw3IEBACiBjb25maWcgTUlQU19MMV9DQUNIRV9TSElGVAogCWludAogCWRlZmF1bHQgIjQiIGlmIE1BQ0hfREVDU1RBVElPTgotCWRlZmF1bHQgIjciIGlmIFNHSV9JUDI3IHx8IFNHSV9JUDI4IHx8IFNOSV9STQorCWRlZmF1bHQgIjciIGlmIFNHSV9JUDIyIHx8IFNHSV9JUDI3IHx8IFNHSV9JUDI4IHx8IFNOSV9STQogCWRlZmF1bHQgIjQiIGlmIFBNQ19NU1A0MjAwX0VWQUwKIAlkZWZhdWx0ICI1IgogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvYmFzbGVyL2V4Y2l0ZS9leGNpdGVfaW9kZXYuYyBiL2FyY2gvbWlwcy9iYXNsZXIvZXhjaXRlL2V4Y2l0ZV9pb2Rldi5jCmluZGV4IDQ3NmQyMGUuLmExZTM1MjYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9iYXNsZXIvZXhjaXRlL2V4Y2l0ZV9pb2Rldi5jCisrKyBiL2FyY2gvbWlwcy9iYXNsZXIvZXhjaXRlL2V4Y2l0ZV9pb2Rldi5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlICJleGNpdGVfaW9kZXYuaCIKIApAQCAtMTEwLDggKzExMSwxNCBAQAogCiBzdGF0aWMgaW50IGlvZGV2X29wZW4oc3RydWN0IGlub2RlICppLCBzdHJ1Y3QgZmlsZSAqZikKIHsKLQlyZXR1cm4gcmVxdWVzdF9pcnEoaW9kZXZfaXJxLCBpb2Rldl9pcnFoZGwsIElSUUZfRElTQUJMRUQsCisJaW50IHJldDsKKworCWxvY2tfa2VybmVsKCk7CisJcmV0ID0gcmVxdWVzdF9pcnEoaW9kZXZfaXJxLCBpb2Rldl9pcnFoZGwsIElSUUZfRElTQUJMRUQsCiAJCQkgICBpb2Rldl9uYW1lLCAmbWlzY2Rldik7CisJdW5sb2NrX2tlcm5lbCgpOworCisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBpb2Rldl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaSwgc3RydWN0IGZpbGUgKmYpCmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL2NldnQtdHh4OS5jIGIvYXJjaC9taXBzL2tlcm5lbC9jZXZ0LXR4eDkuYwppbmRleCA3OTVjYjhmLi5iNWZjNGViIDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL2NldnQtdHh4OS5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvY2V2dC10eHg5LmMKQEAgLTE2MSw2ICsxNjEsOSBAQAogCXN0cnVjdCB0eHg5X3Rtcl9yZWcgX19pb21lbSAqdG1ycHRyOwogCiAJdG1ycHRyID0gaW9yZW1hcChiYXNlYWRkciwgc2l6ZW9mKHN0cnVjdCB0eHg5X3Rtcl9yZWcpKTsKKwkvKiBTdGFydCBvbmNlIHRvIG1ha2UgQ291bnRlclJlc2V0RW5hYmxlIGVmZmVjdGl2ZSAqLworCV9fcmF3X3dyaXRlbChUWHg5X1RNVENSX0NSRSB8IFRYeDlfVE1UQ1JfVENFLCAmdG1ycHRyLT50Y3IpOworCS8qIFN0b3AgYW5kIHJlc2V0IHRoZSBjb3VudGVyICovCiAJX19yYXdfd3JpdGVsKFRYeDlfVE1UQ1JfQ1JFLCAmdG1ycHRyLT50Y3IpOwogCV9fcmF3X3dyaXRlbCgwLCAmdG1ycHRyLT50aXNyKTsKIAlfX3Jhd193cml0ZWwoMHhmZmZmZmZmZiwgJnRtcnB0ci0+Y3ByYSk7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL3J0bHguYyBiL2FyY2gvbWlwcy9rZXJuZWwvcnRseC5jCmluZGV4IGI4OGYxYzEuLmI1NTY0MTkgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvcnRseC5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvcnRseC5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogI2luY2x1ZGUgPGxpbnV4L2VsZi5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZWxvYWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgpAQCAtMzkyLDggKzM5MywxMiBAQAogc3RhdGljIGludCBmaWxlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJaW50IG1pbm9yID0gaW1pbm9yKGlub2RlKTsKKwlpbnQgZXJyOwogCi0JcmV0dXJuIHJ0bHhfb3BlbihtaW5vciwgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSA/IDAgOiAxKTsKKwlsb2NrX2tlcm5lbCgpOworCWVyciA9IHJ0bHhfb3BlbihtaW5vciwgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSA/IDAgOiAxKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBmaWxlX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL3N0YWNrdHJhY2UuYyBiL2FyY2gvbWlwcy9rZXJuZWwvc3RhY2t0cmFjZS5jCmluZGV4IGViZDlkYjguLjVlYjQ2ODEgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvc3RhY2t0cmFjZS5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvc3RhY2t0cmFjZS5jCkBAIC03MywzICs3Myw0IEBACiAJcHJlcGFyZV9mcmFtZXRyYWNlKHJlZ3MpOwogCXNhdmVfY29udGV4dF9zdGFjayh0cmFjZSwgcmVncyk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChzYXZlX3N0YWNrX3RyYWNlKTsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvdnBlLmMgYi9hcmNoL21pcHMva2VybmVsL3ZwZS5jCmluZGV4IDI3OTQ1MDEuLjk3MmIyZDIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvdnBlLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC92cGUuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNpbmNsdWRlIDxsaW51eC9lbGYuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3lzY2FsbHMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVsb2FkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KQEAgLTEwNTAsMTcgKzEwNTEsMjAgQEAKIAllbnVtIHZwZV9zdGF0ZSBzdGF0ZTsKIAlzdHJ1Y3QgdnBlX25vdGlmaWNhdGlvbnMgKm5vdDsKIAlzdHJ1Y3QgdnBlICp2OwotCWludCByZXQ7CisJaW50IHJldCwgZXJyID0gMDsKIAorCWxvY2tfa2VybmVsKCk7CiAJaWYgKG1pbm9yICE9IGltaW5vcihpbm9kZSkpIHsKIAkJLyogYXNzdW1lIG9ubHkgMSBkZXZpY2UgYXQgdGhlIG1vbWVudC4gKi8KIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiVlBFIGxvYWRlcjogb25seSB2cGUxIGlzIHN1cHBvcnRlZFxuIik7Ci0JCXJldHVybiAtRU5PREVWOworCQllcnIgPSAtRU5PREVWOworCQlnb3RvIG91dDsKIAl9CiAKIAlpZiAoKHYgPSBnZXRfdnBlKHRjbGltaXQpKSA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIlZQRSBsb2FkZXI6IHVuYWJsZSB0byBnZXQgdnBlXG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCWVyciA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OwogCX0KIAogCXN0YXRlID0geGNoZygmdi0+c3RhdGUsIFZQRV9TVEFURV9JTlVTRSk7CkBAIC0xMTAwLDYgKzExMDQsOCBAQAogCXYtPnNoYXJlZF9wdHIgPSBOVUxMOwogCXYtPl9fc3RhcnQgPSAwOwogCitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbW0vYy1yM2suYyBiL2FyY2gvbWlwcy9tbS9jLXIzay5jCmluZGV4IDc2OTM1ZTMuLjI3YTViNDYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9tbS9jLXIzay5jCisrKyBiL2FyY2gvbWlwcy9tbS9jLXIzay5jCkBAIC0yNiw3ICsyNiw3IEBACiBzdGF0aWMgdW5zaWduZWQgbG9uZyBpY2FjaGVfc2l6ZSwgZGNhY2hlX3NpemU7CQkvKiBTaXplIGluIGJ5dGVzICovCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBpY2FjaGVfbHNpemUsIGRjYWNoZV9sc2l6ZTsJLyogU2l6ZSBpbiBieXRlcyAqLwogCi11bnNpZ25lZCBsb25nIF9faW5pdCByM2tfY2FjaGVfc2l6ZSh1bnNpZ25lZCBsb25nIGNhX2ZsYWdzKQordW5zaWduZWQgbG9uZyBfX2NwdWluaXQgcjNrX2NhY2hlX3NpemUodW5zaWduZWQgbG9uZyBjYV9mbGFncykKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzLCBzdGF0dXMsIGR1bW15LCBzaXplOwogCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKnA7CkBAIC02MSw3ICs2MSw3IEBACiAJcmV0dXJuIHNpemUgKiBzaXplb2YoKnApOwogfQogCi11bnNpZ25lZCBsb25nIF9faW5pdCByM2tfY2FjaGVfbHNpemUodW5zaWduZWQgbG9uZyBjYV9mbGFncykKK3Vuc2lnbmVkIGxvbmcgX19jcHVpbml0IHIza19jYWNoZV9sc2l6ZSh1bnNpZ25lZCBsb25nIGNhX2ZsYWdzKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHN0YXR1cywgbHNpemUsIGk7CiAJdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqcDsKQEAgLTkwLDcgKzkwLDcgQEAKIAlyZXR1cm4gbHNpemUgKiBzaXplb2YoKnApOwogfQogCi1zdGF0aWMgdm9pZCBfX2luaXQgcjNrX3Byb2JlX2NhY2hlKHZvaWQpCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgcjNrX3Byb2JlX2NhY2hlKHZvaWQpCiB7CiAJZGNhY2hlX3NpemUgPSByM2tfY2FjaGVfc2l6ZShTVDBfSVNDKTsKIAlpZiAoZGNhY2hlX3NpemUpCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbW0vcGFnZS5jIGIvYXJjaC9taXBzL21tL3BhZ2UuYwppbmRleCAxZWRmMGNiLi4xNDE3YzY0IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbW0vcGFnZS5jCisrKyBiL2FyY2gvbWlwcy9tbS9wYWdlLmMKQEAgLTIzNSwxMyArMjM1LDEyIEBACiAJfQogCS8qCiAJICogVG9vIG11Y2ggdW5yb2xsaW5nIHdpbGwgb3ZlcmZsb3cgdGhlIGF2YWlsYWJsZSBzcGFjZSBpbgotCSAqIGNsZWFyX3NwYWNlX2FycmF5IC8gY29weV9wYWdlX2FycmF5LiA4IHdvcmRzIHNvdW5kcyBnZW5lcm91cywKLQkgKiBidXQgYSBSNDAwMCB3aXRoIDEyOCBieXRlIEwyIGxpbmUgbGVuZ3RoIGNhbiBleGNlZWQgZXZlbiB0aGF0LgorCSAqIGNsZWFyX3NwYWNlX2FycmF5IC8gY29weV9wYWdlX2FycmF5LgogCSAqLwotCWhhbGZfY2xlYXJfbG9vcF9zaXplID0gbWluKDggKiBjbGVhcl93b3JkX3NpemUsCisJaGFsZl9jbGVhcl9sb29wX3NpemUgPSBtaW4oMTYgKiBjbGVhcl93b3JkX3NpemUsCiAJCQkJICAgbWF4KGNhY2hlX2xpbmVfc2l6ZSA+PiAxLAogCQkJCSAgICAgICA0ICogY2xlYXJfd29yZF9zaXplKSk7Ci0JaGFsZl9jb3B5X2xvb3Bfc2l6ZSA9IG1pbig4ICogY29weV93b3JkX3NpemUsCisJaGFsZl9jb3B5X2xvb3Bfc2l6ZSA9IG1pbigxNiAqIGNvcHlfd29yZF9zaXplLAogCQkJCSAgbWF4KGNhY2hlX2xpbmVfc2l6ZSA+PiAxLAogCQkJCSAgICAgIDQgKiBjb3B5X3dvcmRfc2l6ZSkpOwogfQpAQCAtMjYzLDIxICsyNjIsMjMgQEAKIAlpZiAocHJlZl9iaWFzX2NsZWFyX3N0b3JlKSB7CiAJCXVhc21faV9wcmVmKGJ1ZiwgcHJlZl9kc3RfbW9kZSwgcHJlZl9iaWFzX2NsZWFyX3N0b3JlICsgb2ZmLAogCQkJICAgIEEwKTsKLQl9IGVsc2UgaWYgKGNwdV9oYXNfY2FjaGVfY2RleF9zKSB7Ci0JCXVhc21faV9jYWNoZShidWYsIENyZWF0ZV9EaXJ0eV9FeGNsX1NELCBvZmYsIEEwKTsKLQl9IGVsc2UgaWYgKGNwdV9oYXNfY2FjaGVfY2RleF9wKSB7Ci0JCWlmIChSNDYwMF9WMV9ISVRfQ0FDSEVPUF9XQVIgJiYgY3B1X2lzX3I0NjAwX3YxX3goKSkgewotCQkJdWFzbV9pX25vcChidWYpOwotCQkJdWFzbV9pX25vcChidWYpOwotCQkJdWFzbV9pX25vcChidWYpOwotCQkJdWFzbV9pX25vcChidWYpOworCX0gZWxzZSBpZiAoY2FjaGVfbGluZV9zaXplID09IChoYWxmX2NsZWFyX2xvb3Bfc2l6ZSA8PCAxKSkgeworCQlpZiAoY3B1X2hhc19jYWNoZV9jZGV4X3MpIHsKKwkJCXVhc21faV9jYWNoZShidWYsIENyZWF0ZV9EaXJ0eV9FeGNsX1NELCBvZmYsIEEwKTsKKwkJfSBlbHNlIGlmIChjcHVfaGFzX2NhY2hlX2NkZXhfcCkgeworCQkJaWYgKFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUiAmJiBjcHVfaXNfcjQ2MDBfdjFfeCgpKSB7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJCXVhc21faV9ub3AoYnVmKTsKKwkJCQl1YXNtX2lfbm9wKGJ1Zik7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJfQorCisJCQlpZiAoUjQ2MDBfVjJfSElUX0NBQ0hFT1BfV0FSICYmIGNwdV9pc19yNDYwMF92Ml94KCkpCisJCQkJdWFzbV9pX2x3KGJ1ZiwgWkVSTywgWkVSTywgQVQpOworCisJCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9ELCBvZmYsIEEwKTsKIAkJfQotCi0JCWlmIChSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIgJiYgY3B1X2lzX3I0NjAwX3YyX3goKSkKLQkJCXVhc21faV9sdyhidWYsIFpFUk8sIFpFUk8sIEFUKTsKLQotCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9ELCBvZmYsIEEwKTsKLQl9CisJCX0KIH0KIAogdm9pZCBfX2NwdWluaXQgYnVpbGRfY2xlYXJfcGFnZSh2b2lkKQpAQCAtNDAzLDIwICs0MDQsMjIgQEAKIAlpZiAocHJlZl9iaWFzX2NvcHlfc3RvcmUpIHsKIAkJdWFzbV9pX3ByZWYoYnVmLCBwcmVmX2RzdF9tb2RlLCBwcmVmX2JpYXNfY29weV9zdG9yZSArIG9mZiwKIAkJCSAgICBBMCk7Ci0JfSBlbHNlIGlmIChjcHVfaGFzX2NhY2hlX2NkZXhfcykgewotCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9TRCwgb2ZmLCBBMCk7Ci0JfSBlbHNlIGlmIChjcHVfaGFzX2NhY2hlX2NkZXhfcCkgewotCQlpZiAoUjQ2MDBfVjFfSElUX0NBQ0hFT1BfV0FSICYmIGNwdV9pc19yNDYwMF92MV94KCkpIHsKLQkJCXVhc21faV9ub3AoYnVmKTsKLQkJCXVhc21faV9ub3AoYnVmKTsKLQkJCXVhc21faV9ub3AoYnVmKTsKLQkJCXVhc21faV9ub3AoYnVmKTsKKwl9IGVsc2UgaWYgKGNhY2hlX2xpbmVfc2l6ZSA9PSAoaGFsZl9jb3B5X2xvb3Bfc2l6ZSA8PCAxKSkgeworCQlpZiAoY3B1X2hhc19jYWNoZV9jZGV4X3MpIHsKKwkJCXVhc21faV9jYWNoZShidWYsIENyZWF0ZV9EaXJ0eV9FeGNsX1NELCBvZmYsIEEwKTsKKwkJfSBlbHNlIGlmIChjcHVfaGFzX2NhY2hlX2NkZXhfcCkgeworCQkJaWYgKFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUiAmJiBjcHVfaXNfcjQ2MDBfdjFfeCgpKSB7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJCXVhc21faV9ub3AoYnVmKTsKKwkJCQl1YXNtX2lfbm9wKGJ1Zik7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJfQorCisJCQlpZiAoUjQ2MDBfVjJfSElUX0NBQ0hFT1BfV0FSICYmIGNwdV9pc19yNDYwMF92Ml94KCkpCisJCQkJdWFzbV9pX2x3KGJ1ZiwgWkVSTywgWkVSTywgQVQpOworCisJCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9ELCBvZmYsIEEwKTsKIAkJfQotCi0JCWlmIChSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIgJiYgY3B1X2lzX3I0NjAwX3YyX3goKSkKLQkJCXVhc21faV9sdyhidWYsIFpFUk8sIFpFUk8sIEFUKTsKLQotCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9ELCBvZmYsIEEwKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9zYy1ybTdrLmMgYi9hcmNoL21pcHMvbW0vc2Mtcm03ay5jCmluZGV4IGZjMjI3ZjMuLmUzYWJmYjIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9tbS9zYy1ybTdrLmMKKysrIGIvYXJjaC9taXBzL21tL3NjLXJtN2suYwpAQCAtODYsNyArODYsNyBAQAogLyoKICAqIFRoaXMgZnVuY3Rpb24gaXMgZXhlY3V0ZWQgaW4gdW5jYWNoZWQgYWRkcmVzcyBzcGFjZS4KICAqLwotc3RhdGljIF9faW5pdCB2b2lkIF9fcm03a19zY19lbmFibGUodm9pZCkKK3N0YXRpYyBfX2NwdWluaXQgdm9pZCBfX3JtN2tfc2NfZW5hYmxlKHZvaWQpCiB7CiAJaW50IGk7CiAKQEAgLTEwNyw3ICsxMDcsNyBAQAogCX0KIH0KIAotc3RhdGljIF9faW5pdCB2b2lkIHJtN2tfc2NfZW5hYmxlKHZvaWQpCitzdGF0aWMgX19jcHVpbml0IHZvaWQgcm03a19zY19lbmFibGUodm9pZCkKIHsKIAlpZiAocmVhZF9jMF9jb25maWcoKSAmIFJNN0tfQ09ORl9TRSkKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL3NnaS1pcDMyL2lwMzItaXJxLmMgYi9hcmNoL21pcHMvc2dpLWlwMzIvaXAzMi1pcnEuYwppbmRleCBiMGVhMGU0Li4wZDZiNjY2IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvc2dpLWlwMzIvaXAzMi1pcnEuYworKysgYi9hcmNoL21pcHMvc2dpLWlwMzIvaXAzMi1pcnEuYwpAQCAtNDI1LDYgKzQyNSwxMSBAQAogCUJVSUxEX0JVR19PTihNQUNFSVNBX1NFUklBTDJfUkRNQU9SX0lSUSAtIE1BQ0VJU0FfQVVESU9fU1dfSVJRICE9IDMxKTsKIAogCWNyaW1lX2ludCA9IGNyaW1lLT5pc3RhdCAmIGNyaW1lX21hc2s7CisKKwkvKiBjcmltZSBzb21ldGltZSBkZWxpdmVycyBzcHVyaW91cyBpbnRlcnJ1cHRzLCBpZ25vcmUgdGhlbSAqLworCWlmICh1bmxpa2VseShjcmltZV9pbnQgPT0gMCkpCisJCXJldHVybjsKKwogCWlycSA9IE1BQ0VfVklEX0lOMV9JUlEgKyBfX2ZmcyhjcmltZV9pbnQpOwogCiAJaWYgKGNyaW1lX2ludCAmIENSSU1FX01BQ0VJU0FfSU5UX01BU0spIHsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9zaWJ5dGUvY29tbW9uL3NiX3RicHJvZi5jIGIvYXJjaC9taXBzL3NpYnl0ZS9jb21tb24vc2JfdGJwcm9mLmMKaW5kZXggNjNiNDQ0ZS4uMjhiMDEyYSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3NpYnl0ZS9jb21tb24vc2JfdGJwcm9mLmMKKysrIGIvYXJjaC9taXBzL3NpYnl0ZS9jb21tb24vc2JfdGJwcm9mLmMKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KQEAgLTQwMiwxOCArNDAzLDI2IEBACiBzdGF0aWMgaW50IHNicHJvZl90Yl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewogCWludCBtaW5vcjsKKwlpbnQgZXJyID0gMDsKIAorCWxvY2tfa2VybmVsKCk7CiAJbWlub3IgPSBpbWlub3IoaW5vZGUpOwotCWlmIChtaW5vciAhPSAwKQotCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAobWlub3IgIT0gMCkgeworCQllcnIgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAKLQlpZiAoeGNoZygmc2JwLm9wZW4sIFNCX09QRU5JTkcpICE9IFNCX0NMT1NFRCkKLQkJcmV0dXJuIC1FQlVTWTsKKwlpZiAoeGNoZygmc2JwLm9wZW4sIFNCX09QRU5JTkcpICE9IFNCX0NMT1NFRCkgeworCQllcnIgPSAtRUJVU1k7CisJCWdvdG8gb3V0OworCX0KIAogCW1lbXNldCgmc2JwLCAwLCBzaXplb2Yoc3RydWN0IHNicHJvZl90YikpOwogCXNicC5zYnByb2ZfdGJidWYgPSB2bWFsbG9jKE1BWF9UQlNBTVBMRV9CWVRFUyk7Ci0JaWYgKCFzYnAuc2Jwcm9mX3RiYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoIXNicC5zYnByb2ZfdGJidWYpIHsKKwkJZXJyID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQogCW1lbXNldChzYnAuc2Jwcm9mX3RiYnVmLCAwLCBNQVhfVEJTQU1QTEVfQllURVMpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnNicC50Yl9zeW5jKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzYnAudGJfcmVhZCk7CkBAIC00MjEsNyArNDMwLDkgQEAKIAogCXNicC5vcGVuID0gU0JfT1BFTjsKIAotCXJldHVybiAwOworICBvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBpbnQgc2Jwcm9mX3RiX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvc2lieXRlL3N3YXJtL01ha2VmaWxlIGIvYXJjaC9taXBzL3NpYnl0ZS9zd2FybS9NYWtlZmlsZQppbmRleCAxNzc1NzU1Li4yNTVkNjkyIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvc2lieXRlL3N3YXJtL01ha2VmaWxlCisrKyBiL2FyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vTWFrZWZpbGUKQEAgLTEsMyArMSw0IEBACiBvYmoteQkJCQk6PSBzZXR1cC5vIHJ0Y194aWNvcjEyNDEubyBydGNfbTQxdDgxLm8KIAorb2JqLSQoQ09ORklHX0kyQ19CT0FSRElORk8pCSs9IHN3YXJtLWkyYy5vCiBvYmotJChDT05GSUdfS0dEQikJCSs9IGRiZ19pby5vCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvc2lieXRlL3N3YXJtL3N3YXJtLWkyYy5jIGIvYXJjaC9taXBzL3NpYnl0ZS9zd2FybS9zd2FybS1pMmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjgyYWM5Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9taXBzL3NpYnl0ZS9zd2FybS9zd2FybS1pMmMuYwpAQCAtMCwwICsxLDM3IEBACisvKgorICoJYXJjaC9taXBzL3NpYnl0ZS9zd2FybS9zd2FybS1pMmMuYworICoKKyAqCUJyb2FkY29tIEJDTTkxMjUwQSAoU1dBUk0pLCBldGMuIEkyQyBwbGF0Zm9ybSBzZXR1cC4KKyAqCisgKglDb3B5cmlnaHQgKGMpIDIwMDggIE1hY2llaiBXLiBSb3p5Y2tpCisgKgorICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICoJbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqCWFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbgorICoJMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gc3dhcm1faTJjX2luZm8xW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCUkyQ19CT0FSRF9JTkZPKCJtNDF0ODEiLCAweDY4KSwKKwl9LAorfTsKKworc3RhdGljIGludCBfX2luaXQgc3dhcm1faTJjX2luaXQodm9pZCkKK3sKKwlpbnQgZXJyOworCisJZXJyID0gaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMSwgc3dhcm1faTJjX2luZm8xLAorCQkJCSAgICAgIEFSUkFZX1NJWkUoc3dhcm1faTJjX2luZm8xKSk7CisJaWYgKGVyciA8IDApCisJCXByaW50ayhLRVJOX0VSUgorCQkgICAgICAgInN3YXJtLWkyYzogY2Fubm90IHJlZ2lzdGVyIGJvYXJkIEkyQyBkZXZpY2VzXG4iKTsKKwlyZXR1cm4gZXJyOworfQorCithcmNoX2luaXRjYWxsKHN3YXJtX2kyY19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMwMC9rZXJuZWwvbW4xMDMwMF9rc3ltcy5jIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9tbjEwMzAwX2tzeW1zLmMKaW5kZXggNmQxOTYyOC4uZjllYjk3NSAxMDA2NDQKLS0tIGEvYXJjaC9tbjEwMzAwL2tlcm5lbC9tbjEwMzAwX2tzeW1zLmMKKysrIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9tbjEwMzAwX2tzeW1zLmMKQEAgLTEwLDggKzEwLDExIEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAKIAorRVhQT1JUX1NZTUJPTChlbXB0eV96ZXJvX3BhZ2UpOworCiBFWFBPUlRfU1lNQk9MKGNoYW5nZV9iaXQpOwogRVhQT1JUX1NZTUJPTCh0ZXN0X2FuZF9jaGFuZ2VfYml0KTsKIApAQCAtMzEsNyArMzQsOSBAQAogZXh0ZXJuIHU2NCBfX2FzaGxkaTModTY0LCB1bnNpZ25lZCk7CiBleHRlcm4gdTY0IF9fbHNocmRpMyh1NjQsIHVuc2lnbmVkKTsKIGV4dGVybiBzNjQgX19uZWdkaTIoczY0KTsKK2V4dGVybiBpbnQgX191Y21wZGkyKHU2NCwgdTY0KTsKIEVYUE9SVF9TWU1CT0woX19hc2hyZGkzKTsKIEVYUE9SVF9TWU1CT0woX19hc2hsZGkzKTsKIEVYUE9SVF9TWU1CT0woX19sc2hyZGkzKTsKIEVYUE9SVF9TWU1CT0woX19uZWdkaTIpOworRVhQT1JUX1NZTUJPTChfX3VjbXBkaTIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9tbjEwMzAwL2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL21uMTAzMDAva2VybmVsL3Byb2Nlc3MuYwppbmRleCA5YzYyM2M4Li5iMjhjOWE2IDEwMDY0NAotLS0gYS9hcmNoL21uMTAzMDAva2VybmVsL3Byb2Nlc3MuYworKysgYi9hcmNoL21uMTAzMDAva2VybmVsL3Byb2Nlc3MuYwpAQCAtMTUzLDYgKzE1Myw3IEBACiAJcmV0dXJuIGRvX2ZvcmsoZmxhZ3MgfCBDTE9ORV9WTSB8IENMT05FX1VOVFJBQ0VELCAwLCAmcmVncywgMCwKIAkJICAgICAgIE5VTEwsIE5VTEwpOwogfQorRVhQT1JUX1NZTUJPTChrZXJuZWxfdGhyZWFkKTsKIAogLyoKICAqIGZyZWUgY3VycmVudCB0aHJlYWQgZGF0YSBzdHJ1Y3R1cmVzIGV0Yy4uCmRpZmYgLS1naXQgYS9hcmNoL21uMTAzMDAvbGliL01ha2VmaWxlIGIvYXJjaC9tbjEwMzAwL2xpYi9NYWtlZmlsZQppbmRleCBmZGZhOWVjLi4wY2QyMzQ2IDEwMDY0NAotLS0gYS9hcmNoL21uMTAzMDAvbGliL01ha2VmaWxlCisrKyBiL2FyY2gvbW4xMDMwMC9saWIvTWFrZWZpbGUKQEAgLTQsNCArNCw0IEBACiAKIGxpYi15ID0gZGVsYXkubyB1c2VyY29weS5vIGNoZWNrc3VtLm8gYml0b3BzLm8gbWVtY3B5Lm8gbWVtbW92ZS5vIG1lbXNldC5vCiBsaWIteSArPSBkb19jc3VtLm8KLWxpYi15ICs9IF9fYXNobGRpMy5vIF9fYXNocmRpMy5vIF9fbHNocmRpMy5vIG5lZ2RpMi5vCitsaWIteSArPSBfX2FzaGxkaTMubyBfX2FzaHJkaTMubyBfX2xzaHJkaTMubyBuZWdkaTIubyBfX3VjbXBkaTIubwpkaWZmIC0tZ2l0IGEvYXJjaC9tbjEwMzAwL2xpYi9fX3VjbXBkaTIuUyBiL2FyY2gvbW4xMDMwMC9saWIvX191Y21wZGkyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkY2JkZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvbW4xMDMwMC9saWIvX191Y21wZGkyLlMKQEAgLTAsMCArMSw0MyBAQAorLyogX191Y21wZGkyLlM6IDY0LWJpdCB1bnNpZ25lZCBjb21wYXJlCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFJlZCBIYXQsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIFdyaXR0ZW4gYnkgRGF2aWQgSG93ZWxscyAoZGhvd2VsbHNAcmVkaGF0LmNvbSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uCisgKiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKworICAgICAgICAudGV4dAorICAgICAgICAucDJhbGlnbgk0CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgaW50IF9fdWNtcGRpMih1bnNpZ25lZCBsb25nIGxvbmcgYSBbRDA6RDFdLAorIwkJdW5zaWduZWQgbG9uZyBsb25nIGIgWyhTUCwxMiksKFNQLDE2KV0pCisjCisjIC0gcmV0dXJucyAwLCAxLCBvciAyIGFzIGEgPCwgPSwgPiBiIHJlc3BlY3RpdmVseS4KKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAgICAgICAgLmdsb2JsCQlfX3VjbXBkaTIKKyAgICAgICAgLnR5cGUJCV9fdWNtcGRpMixAZnVuY3Rpb24KK19fdWNtcGRpMjoKKwltb3YJCSgxMixzcCksYTAJCSMgYi5sc3cKKwltb3YJCSgxNixzcCksYTEJCSMgYi5tc3cKKworCXN1YgkJYTAsZDAKKwlzdWJjCQlhMSxkMQkJCSMgbWF5IGNsZWFyIFosIG5ldmVyIHNldHMgaXQKKwlibmUJCV9fdWNtcGRpMl9kaWZmZXIJIyBhLm1zdyAhPSBiLm1zdworCW1vdgkJKzEsZDAKKwlyZXRzCisKK19fdWNtcGRpMl9kaWZmZXI6CisJIyBDIGZsYWcgaXMgc2V0IGlmIExFLCBjbGVhciBpZiBHRQorCXN1YmMJCWQwLGQwCQkJIyAtMSBpZiBMRSwgMCBpZiBHRQorCWFkZAkJKzEsZDAJCQkjICAwIGlmIExFLCAxIGlmIEdFCisJYWRkCQlkMCxkMAkJCSMgIDAgaWYgTEUsIDIgaWYgR0UKKwlyZXRzCisKKwkuc2l6ZQkJX191Y21wZGkyLCAuLV9fdWNtcGRpMgpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3BlcmYuYyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wZXJmLmMKaW5kZXggODlkNmQ1YS4uZjY5NmY1NyAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL3BlcmYuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcGVyZi5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTI2MCwxMyArMjYxLDE2IEBACiAgKi8KIHN0YXRpYyBpbnQgcGVyZl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZwZXJmX2xvY2spOwogCWlmIChwZXJmX2VuYWJsZWQpIHsKIAkJc3Bpbl91bmxvY2soJnBlcmZfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAJcGVyZl9lbmFibGVkID0gMTsKICAJc3Bpbl91bmxvY2soJnBlcmZfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IDJlNTE2YjguLjFhM2I2Y2MgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCkBAIC02Nyw3ICs2Nyw2IEBACiAJX2V0ZXh0ID0gLjsKIAogCVJPREFUQQotCUJVR19UQUJMRQogCiAJLyogd3JpdGVhYmxlICovCiAJLyogTWFrZSBzdXJlIHRoaXMgaXMgcGFnZSBhbGlnbmVkIHNvCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvS2NvbmZpZyBiL2FyY2gvcG93ZXJwYy9LY29uZmlnCmluZGV4IDg1MmQ0MGMuLjIwZWFjZjIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9LY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9LY29uZmlnCkBAIC0xMDUsMTIgKzEwNSwxNCBAQAogY29uZmlnIFBQQwogCWJvb2wKIAlkZWZhdWx0IHkKKwlzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRQorCXNlbGVjdCBIQVZFX0ZUUkFDRQogCXNlbGVjdCBIQVZFX0lERQotCXNlbGVjdCBIQVZFX09QUk9GSUxFCiAJc2VsZWN0IEhBVkVfS1BST0JFUwogCXNlbGVjdCBIQVZFX0tSRVRQUk9CRVMKIAlzZWxlY3QgSEFWRV9MTUIKIAlzZWxlY3QgVVNFX0dFTkVSSUNfU01QX0hFTFBFUlMgaWYgU01QCisJc2VsZWN0IEhBVkVfT1BST0ZJTEUKIAogY29uZmlnIEVBUkxZX1BSSU5USwogCWJvb2wKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L01ha2VmaWxlIGIvYXJjaC9wb3dlcnBjL2Jvb3QvTWFrZWZpbGUKaW5kZXggMWNlZTJmOS4uMDk1ZTA0ZCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2Jvb3QvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvTWFrZWZpbGUKQEAgLTI3Myw3ICsyNzMsOCBAQAogaW5pdHJkLSAgOj0gJChwYXRzdWJzdCB6SW1hZ2UlLCB6SW1hZ2UuaW5pdHJkJSwgJChpbWFnZS1uKSAkKGltYWdlLSkpCiBpbml0cmQteSA6PSAkKHBhdHN1YnN0IHpJbWFnZSUsIHpJbWFnZS5pbml0cmQlLCBcCiAJCSQocGF0c3Vic3QgZHRiSW1hZ2UlLCBkdGJJbWFnZS5pbml0cmQlLCBcCi0JCSQocGF0c3Vic3QgdHJlZUltYWdlJSwgdHJlZUltYWdlLmluaXRyZCUsICQoaW1hZ2UteSkpKSkKKwkJJChwYXRzdWJzdCBzaW1wbGVJbWFnZSUsIHNpbXBsZUltYWdlLmluaXRyZCUsIFwKKwkJJChwYXRzdWJzdCB0cmVlSW1hZ2UlLCB0cmVlSW1hZ2UuaW5pdHJkJSwgJChpbWFnZS15KSkpKSkKIGluaXRyZC15IDo9ICQoZmlsdGVyLW91dCAkKGltYWdlLXkpLCAkKGluaXRyZC15KSkKIHRhcmdldHMJKz0gJChpbWFnZS15KSAkKGluaXRyZC15KQogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL01ha2VmaWxlIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9NYWtlZmlsZQppbmRleCAyMzQ2ZDI3Li5mM2Y1ZTI2IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL01ha2VmaWxlCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvTWFrZWZpbGUKQEAgLTEyLDYgKzEyLDE4IEBACiBDRkxBR1NfYnRleHQubwkJKz0gLWZQSUMKIGVuZGlmCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKKyMgRG8gbm90IHRyYWNlIGVhcmx5IGJvb3QgY29kZQorQ0ZMQUdTX1JFTU9WRV9jcHV0YWJsZS5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX3Byb21faW5pdC5vID0gLXBnCisKK2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorIyBkeW5hbWljIGZ0cmFjZSBzZXR1cC4KK0NGTEFHU19SRU1PVkVfZnRyYWNlLm8gPSAtcGcKK2VuZGlmCisKK2VuZGlmCisKIG9iai15CQkJCTo9IGNwdXRhYmxlLm8gcHRyYWNlLm8gc3lzY2FsbHMubyBcCiAJCQkJICAgaXJxLm8gYWxpZ24ubyBzaWduYWxfMzIubyBwbWMubyB2ZHNvLm8gXAogCQkJCSAgIGluaXRfdGFzay5vIHByb2Nlc3MubyBzeXN0YmwubyBpZGxlLm8gXApAQCAtNzgsNiArOTAsOCBAQAogb2JqLSQoQ09ORklHX0FVRElUKQkJKz0gYXVkaXQubwogb2JqNjQtJChDT05GSUdfQVVESVQpCQkrPSBjb21wYXRfYXVkaXQubwogCitvYmotJChDT05GSUdfRFlOQU1JQ19GVFJBQ0UpCSs9IGZ0cmFjZS5vCisKIG9iai0kKENPTkZJR184WFhfTUlOSU1BTF9GUEVNVSkgKz0gc29mdGVtdTh4eC5vCiAKIGlmbmVxICgkKENPTkZJR19QUENfSU5ESVJFQ1RfSU8pLHkpCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzMyLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzMyLlMKaW5kZXggMGM4NjE0ZC4uNzIzMWE3MCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV8zMi5TCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfMzIuUwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGFzbS9wcGNfYXNtLmg+CiAjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CiAjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KIAogI3VuZGVmIFNIT1dfU1lTQ0FMTFMKICN1bmRlZiBTSE9XX1NZU0NBTExTX1RBU0sKQEAgLTEwMzUsMyArMTAzNiwxMjkgQEAKIAkvKiBYWFggbG9hZCB1cCBCQVRzIGFuZCBwYW5pYyAqLwogCiAjZW5kaWYgLyogQ09ORklHX1BQQ19SVEFTICovCisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCitfR0xPQkFMKG1jb3VudCkKK19HTE9CQUwoX21jb3VudCkKKwlzdHd1CXIxLC00OChyMSkKKwlzdHcJcjMsIDEyKHIxKQorCXN0dwlyNCwgMTYocjEpCisJc3R3CXI1LCAyMChyMSkKKwlzdHcJcjYsIDI0KHIxKQorCW1mbHIJcjMKKwlzdHcJcjcsIDI4KHIxKQorCW1mY3IJcjUKKwlzdHcJcjgsIDMyKHIxKQorCXN0dwlyOSwgMzYocjEpCisJc3R3CXIxMCw0MChyMSkKKwlzdHcJcjMsIDQ0KHIxKQorCXN0dwlyNSwgOChyMSkKKwlzdWJpCXIzLCByMywgTUNPVU5UX0lOU05fU0laRQorCS5nbG9ibCBtY291bnRfY2FsbAorbWNvdW50X2NhbGw6CisJYmwJZnRyYWNlX3N0dWIKKwlub3AKKwlsd3oJcjYsIDgocjEpCisJbHd6CXIwLCA0NChyMSkKKwlsd3oJcjMsIDEyKHIxKQorCW10Y3RyCXIwCisJbHd6CXI0LCAxNihyMSkKKwltdGNyCXI2CisJbHd6CXI1LCAyMChyMSkKKwlsd3oJcjYsIDI0KHIxKQorCWx3eglyMCwgNTIocjEpCisJbHd6CXI3LCAyOChyMSkKKwlsd3oJcjgsIDMyKHIxKQorCW10bHIJcjAKKwlsd3oJcjksIDM2KHIxKQorCWx3eglyMTAsNDAocjEpCisJYWRkaQlyMSwgcjEsIDQ4CisJYmN0cgorCitfR0xPQkFMKGZ0cmFjZV9jYWxsZXIpCisJLyogQmFzZWQgb2ZmIG9mIG9iamR1bXAgb3B0cHV0IGZyb20gZ2xpYmMgKi8KKwlzdHd1CXIxLC00OChyMSkKKwlzdHcJcjMsIDEyKHIxKQorCXN0dwlyNCwgMTYocjEpCisJc3R3CXI1LCAyMChyMSkKKwlzdHcJcjYsIDI0KHIxKQorCW1mbHIJcjMKKwlsd3oJcjQsIDUyKHIxKQorCW1mY3IJcjUKKwlzdHcJcjcsIDI4KHIxKQorCXN0dwlyOCwgMzIocjEpCisJc3R3CXI5LCAzNihyMSkKKwlzdHcJcjEwLDQwKHIxKQorCXN0dwlyMywgNDQocjEpCisJc3R3CXI1LCA4KHIxKQorCXN1YmkJcjMsIHIzLCBNQ09VTlRfSU5TTl9TSVpFCisuZ2xvYmwgZnRyYWNlX2NhbGwKK2Z0cmFjZV9jYWxsOgorCWJsCWZ0cmFjZV9zdHViCisJbm9wCisJbHd6CXI2LCA4KHIxKQorCWx3eglyMCwgNDQocjEpCisJbHd6CXIzLCAxMihyMSkKKwltdGN0cglyMAorCWx3eglyNCwgMTYocjEpCisJbXRjcglyNgorCWx3eglyNSwgMjAocjEpCisJbHd6CXI2LCAyNChyMSkKKwlsd3oJcjAsIDUyKHIxKQorCWx3eglyNywgMjgocjEpCisJbHd6CXI4LCAzMihyMSkKKwltdGxyCXIwCisJbHd6CXI5LCAzNihyMSkKKwlsd3oJcjEwLDQwKHIxKQorCWFkZGkJcjEsIHIxLCA0OAorCWJjdHIKKyNlbHNlCitfR0xPQkFMKG1jb3VudCkKK19HTE9CQUwoX21jb3VudCkKKwlzdHd1CXIxLC00OChyMSkKKwlzdHcJcjMsIDEyKHIxKQorCXN0dwlyNCwgMTYocjEpCisJc3R3CXI1LCAyMChyMSkKKwlzdHcJcjYsIDI0KHIxKQorCW1mbHIJcjMKKwlsd3oJcjQsIDUyKHIxKQorCW1mY3IJcjUKKwlzdHcJcjcsIDI4KHIxKQorCXN0dwlyOCwgMzIocjEpCisJc3R3CXI5LCAzNihyMSkKKwlzdHcJcjEwLDQwKHIxKQorCXN0dwlyMywgNDQocjEpCisJc3R3CXI1LCA4KHIxKQorCisJc3ViaQlyMywgcjMsIE1DT1VOVF9JTlNOX1NJWkUKKwlMT0FEX1JFR19BRERSKHI1LCBmdHJhY2VfdHJhY2VfZnVuY3Rpb24pCisJbHd6CXI1LDAocjUpCisKKwltdGN0cglyNQorCWJjdHJsCisKKwlub3AKKworCWx3eglyNiwgOChyMSkKKwlsd3oJcjAsIDQ0KHIxKQorCWx3eglyMywgMTIocjEpCisJbXRjdHIJcjAKKwlsd3oJcjQsIDE2KHIxKQorCW10Y3IJcjYKKwlsd3oJcjUsIDIwKHIxKQorCWx3eglyNiwgMjQocjEpCisJbHd6CXIwLCA1MihyMSkKKwlsd3oJcjcsIDI4KHIxKQorCWx3eglyOCwgMzIocjEpCisJbXRscglyMAorCWx3eglyOSwgMzYocjEpCisJbHd6CXIxMCw0MChyMSkKKwlhZGRpCXIxLCByMSwgNDgKKwliY3RyCisjZW5kaWYKKworX0dMT0JBTChmdHJhY2Vfc3R1YikKKwlibHIKKworI2VuZGlmIC8qIENPTkZJR19NQ09VTlQgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfNjQuUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfNjQuUwppbmRleCBjMGRiNWI3Li4yZjUxMWE5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzY0LlMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV82NC5TCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8YXNtL2J1Zy5oPgogI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KICNpbmNsdWRlIDxhc20vaXJxZmxhZ3MuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CiAKIC8qCiAgKiBTeXN0ZW0gY2FsbHMuCkBAIC04NzAsMyArODcxLDY3IEBACiAJbGQJcjAsMTYocjEpCiAJbXRsciAgICByMAogICAgICAgICBibHIKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKK19HTE9CQUwobWNvdW50KQorX0dMT0JBTChfbWNvdW50KQorCS8qIFRha2VuIGZyb20gb3V0cHV0IG9mIG9iamR1bXAgZnJvbSBsaWI2NC9nbGliYyAqLworCW1mbHIJcjMKKwlzdGR1CXIxLCAtMTEyKHIxKQorCXN0ZAlyMywgMTI4KHIxKQorCXN1YmkJcjMsIHIzLCBNQ09VTlRfSU5TTl9TSVpFCisJLmdsb2JsIG1jb3VudF9jYWxsCittY291bnRfY2FsbDoKKwlibAlmdHJhY2Vfc3R1YgorCW5vcAorCWxkCXIwLCAxMjgocjEpCisJbXRscglyMAorCWFkZGkJcjEsIHIxLCAxMTIKKwlibHIKKworX0dMT0JBTChmdHJhY2VfY2FsbGVyKQorCS8qIFRha2VuIGZyb20gb3V0cHV0IG9mIG9iamR1bXAgZnJvbSBsaWI2NC9nbGliYyAqLworCW1mbHIJcjMKKwlsZAlyMTEsIDAocjEpCisJc3RkdQlyMSwgLTExMihyMSkKKwlzdGQJcjMsIDEyOChyMSkKKwlsZAlyNCwgMTYocjExKQorCXN1YmkJcjMsIHIzLCBNQ09VTlRfSU5TTl9TSVpFCisuZ2xvYmwgZnRyYWNlX2NhbGwKK2Z0cmFjZV9jYWxsOgorCWJsCWZ0cmFjZV9zdHViCisJbm9wCisJbGQJcjAsIDEyOChyMSkKKwltdGxyCXIwCisJYWRkaQlyMSwgcjEsIDExMgorX0dMT0JBTChmdHJhY2Vfc3R1YikKKwlibHIKKyNlbHNlCitfR0xPQkFMKG1jb3VudCkKKwlibHIKKworX0dMT0JBTChfbWNvdW50KQorCS8qIFRha2VuIGZyb20gb3V0cHV0IG9mIG9iamR1bXAgZnJvbSBsaWI2NC9nbGliYyAqLworCW1mbHIJcjMKKwlsZAlyMTEsIDAocjEpCisJc3RkdQlyMSwgLTExMihyMSkKKwlzdGQJcjMsIDEyOChyMSkKKwlsZAlyNCwgMTYocjExKQorCisJc3ViaQlyMywgcjMsIE1DT1VOVF9JTlNOX1NJWkUKKwlMT0FEX1JFR19BRERSKHI1LGZ0cmFjZV90cmFjZV9mdW5jdGlvbikKKwlsZAlyNSwwKHI1KQorCWxkCXI1LDAocjUpCisJbXRjdHIJcjUKKwliY3RybAorCisJbm9wCisJbGQJcjAsIDEyOChyMSkKKwltdGxyCXIwCisJYWRkaQlyMSwgcjEsIDExMgorX0dMT0JBTChmdHJhY2Vfc3R1YikKKwlibHIKKworI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZnRyYWNlLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2Z0cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NTVjZWIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2Z0cmFjZS5jCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogQ29kZSBmb3IgcmVwbGFjaW5nIGZ0cmFjZSBjYWxscyB3aXRoIGp1bXBzLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICoKKyAqIFRoYW5rcyBnb2VzIG91dCB0byBQLkEuIFNlbWksIEluYyBmb3Igc3VwcGx5aW5nIG1lIHdpdGggYSBQUEM2NCBib3guCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorCisjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisKKworc3RhdGljIHVuc2lnbmVkIGludCBmdHJhY2Vfbm9wID0gMHg2MDAwMDAwMDsKKworI2lmZGVmIENPTkZJR19QUEMzMgorIyBkZWZpbmUgR0VUX0FERFIoYWRkcikgYWRkcgorI2Vsc2UKKy8qIFBvd2VyUEM2NCdzIGZ1bmN0aW9ucyBhcmUgZGF0YSB0aGF0IHBvaW50cyB0byB0aGUgZnVuY3Rpb25zICovCisjIGRlZmluZSBHRVRfQUREUihhZGRyKSAqKHVuc2lnbmVkIGxvbmcgKilhZGRyCisjZW5kaWYKKworCitzdGF0aWMgdW5zaWduZWQgaW50IG5vdHJhY2UgZnRyYWNlX2NhbGNfb2Zmc2V0KGxvbmcgaXAsIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gKGludCkoYWRkciAtIGlwKTsKK30KKworbm90cmFjZSB1bnNpZ25lZCBjaGFyICpmdHJhY2Vfbm9wX3JlcGxhY2Uodm9pZCkKK3sKKwlyZXR1cm4gKGNoYXIgKikmZnRyYWNlX25vcDsKK30KKworbm90cmFjZSB1bnNpZ25lZCBjaGFyICpmdHJhY2VfY2FsbF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlzdGF0aWMgdW5zaWduZWQgaW50IG9wOworCisJLyoKKwkgKiBJdCB3b3VsZCBiZSBuaWNlIHRvIGp1c3QgdXNlIGNyZWF0ZV9mdW5jdGlvbl9jYWxsLCBidXQgdGhhdCB3aWxsCisJICogdXBkYXRlIHRoZSBjb2RlIGl0c2VsZi4gSGVyZSB3ZSBuZWVkIHRvIGp1c3QgcmV0dXJuIHRoZQorCSAqIGluc3RydWN0aW9uIHRoYXQgaXMgZ29pbmcgdG8gYmUgbW9kaWZpZWQsIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZQorCSAqIGNvZGUuCisJICovCisJYWRkciA9IEdFVF9BRERSKGFkZHIpOworCisJLyogU2V0IHRvICJibCBhZGRyIiAqLworCW9wID0gMHg0ODAwMDAwMSB8IChmdHJhY2VfY2FsY19vZmZzZXQoaXAsIGFkZHIpICYgMHgwM2ZmZmZmYyk7CisKKwkvKgorCSAqIE5vIGxvY2tpbmcgbmVlZGVkLCB0aGlzIG11c3QgYmUgY2FsbGVkIHZpYSBrc3RvcF9tYWNoaW5lCisJICogd2hpY2ggaW4gZXNzZW5jZSBpcyBsaWtlIHJ1bm5pbmcgb24gYSB1bmlwcm9jZXNzb3IgbWFjaGluZS4KKwkgKi8KKwlyZXR1cm4gKHVuc2lnbmVkIGNoYXIgKikmb3A7Cit9CisKKyNpZmRlZiBDT05GSUdfUFBDNjQKKyMgZGVmaW5lIF9BU01fQUxJR04JIiAuYWxpZ24gMyAiCisjIGRlZmluZSBfQVNNX1BUUgkiIC5sbG9uZyAiCisjZWxzZQorIyBkZWZpbmUgX0FTTV9BTElHTgkiIC5hbGlnbiAyICIKKyMgZGVmaW5lIF9BU01fUFRSCSIgLmxvbmcgIgorI2VuZGlmCisKK25vdHJhY2UgaW50CitmdHJhY2VfbW9kaWZ5X2NvZGUodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgY2hhciAqb2xkX2NvZGUsCisJCSAgIHVuc2lnbmVkIGNoYXIgKm5ld19jb2RlKQoreworCXVuc2lnbmVkIHJlcGxhY2VkOworCXVuc2lnbmVkIG9sZCA9ICoodW5zaWduZWQgKilvbGRfY29kZTsKKwl1bnNpZ25lZCBuZXcgPSAqKHVuc2lnbmVkICopbmV3X2NvZGU7CisJaW50IGZhdWx0ZWQgPSAwOworCisJLyoKKwkgKiBOb3RlOiBEdWUgdG8gbW9kdWxlcyBhbmQgX19pbml0LCBjb2RlIGNhbgorCSAqICBkaXNhcHBlYXIgYW5kIGNoYW5nZSwgd2UgbmVlZCB0byBwcm90ZWN0IGFnYWluc3QgZmF1bHRpbmcKKwkgKiAgYXMgd2VsbCBhcyBjb2RlIGNoYW5naW5nLgorCSAqCisJICogTm8gcmVhbCBsb2NraW5nIG5lZWRlZCwgdGhpcyBjb2RlIGlzIHJ1biB0aHJvdWdoCisJICoga3N0b3BfbWFjaGluZS4KKwkgKi8KKwlhc20gdm9sYXRpbGUgKAorCQkiMTogbHd6CQklMSwgMCglMilcbiIKKwkJIiAgIGNtcHcJJTEsICU1XG4iCisJCSIgICBibmUJCTJmXG4iCisJCSIgICBzdHd1CSUzLCAwKCUyKVxuIgorCQkiMjpcbiIKKwkJIi5zZWN0aW9uIC5maXh1cCwgXCJheFwiXG4iCisJCSIzOglsaSAlMCwgMVxuIgorCQkiCWIgMmJcbiIKKwkJIi5wcmV2aW91c1xuIgorCQkiLnNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIgorCQlfQVNNX0FMSUdOICJcbiIKKwkJX0FTTV9QVFIgIjFiLCAzYlxuIgorCQkiLnByZXZpb3VzIgorCQk6ICI9ciIoZmF1bHRlZCksICI9ciIocmVwbGFjZWQpCisJCTogInIiKGlwKSwgInIiKG5ldyksCisJCSAgIjAiKGZhdWx0ZWQpLCAiciIob2xkKQorCQk6ICJtZW1vcnkiKTsKKworCWlmIChyZXBsYWNlZCAhPSBvbGQgJiYgcmVwbGFjZWQgIT0gbmV3KQorCQlmYXVsdGVkID0gMjsKKworCWlmICghZmF1bHRlZCkKKwkJZmx1c2hfaWNhY2hlX3JhbmdlKGlwLCBpcCArIDgpOworCisJcmV0dXJuIGZhdWx0ZWQ7Cit9CisKK25vdHJhY2UgaW50IGZ0cmFjZV91cGRhdGVfZnRyYWNlX2Z1bmMoZnRyYWNlX2Z1bmNfdCBmdW5jKQoreworCXVuc2lnbmVkIGxvbmcgaXAgPSAodW5zaWduZWQgbG9uZykoJmZ0cmFjZV9jYWxsKTsKKwl1bnNpZ25lZCBjaGFyIG9sZFtNQ09VTlRfSU5TTl9TSVpFXSwgKm5ldzsKKwlpbnQgcmV0OworCisJbWVtY3B5KG9sZCwgJmZ0cmFjZV9jYWxsLCBNQ09VTlRfSU5TTl9TSVpFKTsKKwluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCAodW5zaWduZWQgbG9uZylmdW5jKTsKKwlyZXQgPSBmdHJhY2VfbW9kaWZ5X2NvZGUoaXAsIG9sZCwgbmV3KTsKKworCXJldHVybiByZXQ7Cit9CisKK25vdHJhY2UgaW50IGZ0cmFjZV9tY291bnRfc2V0KHVuc2lnbmVkIGxvbmcgKmRhdGEpCit7CisJdW5zaWduZWQgbG9uZyBpcCA9IChsb25nKSgmbWNvdW50X2NhbGwpOworCXVuc2lnbmVkIGxvbmcgKmFkZHIgPSBkYXRhOworCXVuc2lnbmVkIGNoYXIgb2xkW01DT1VOVF9JTlNOX1NJWkVdLCAqbmV3OworCisJLyoKKwkgKiBSZXBsYWNlIHRoZSBtY291bnQgc3R1YiB3aXRoIGEgcG9pbnRlciB0byB0aGUKKwkgKiBpcCByZWNvcmRlciBmdW5jdGlvbi4KKwkgKi8KKwltZW1jcHkob2xkLCAmbWNvdW50X2NhbGwsIE1DT1VOVF9JTlNOX1NJWkUpOworCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsICphZGRyKTsKKwkqYWRkciA9IGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgb2xkLCBuZXcpOworCisJcmV0dXJuIDA7Cit9CisKK2ludCBfX2luaXQgZnRyYWNlX2R5bl9hcmNoX2luaXQodm9pZCAqZGF0YSkKK3sKKwkvKiBUaGlzIGlzIHJ1bm5pbmcgaW4ga3N0b3BfbWFjaGluZSAqLworCisJZnRyYWNlX21jb3VudF9zZXQoZGF0YSk7CisKKwlyZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9pby5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9pby5jCmluZGV4IGUzMWFjYTkyLi4xODgyYmY0IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2lvLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9pby5jCkBAIC0xMjAsNyArMTIwLDggQEAKIAogI2RlZmluZSBJT19DSEVDS19BTElHTih2LGEpICgoKCh1bnNpZ25lZCBsb25nKSh2KSkgJiAoKGEpIC0gMSkpID09IDApCiAKLXZvaWQgX21lbXNldF9pbyh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIsIGludCBjLCB1bnNpZ25lZCBsb25nIG4pCitub3RyYWNlIHZvaWQKK19tZW1zZXRfaW8odm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyLCBpbnQgYywgdW5zaWduZWQgbG9uZyBuKQogewogCXZvaWQgKnAgPSAodm9pZCBfX2ZvcmNlICopYWRkcjsKIAl1MzIgbGMgPSBjOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9pcnEuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaXJxLmMKaW5kZXggYmNjMjQ5ZC4uZGNjOTQ2ZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9pcnEuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2lycS5jCkBAIC05OCw3ICs5OCw3IEBACiAKIGludCBkaXN0cmlidXRlX2lycXMgPSAxOwogCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X2hhcmRfZW5hYmxlZCh2b2lkKQorc3RhdGljIGlubGluZSBub3RyYWNlIHVuc2lnbmVkIGxvbmcgZ2V0X2hhcmRfZW5hYmxlZCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgZW5hYmxlZDsKIApAQCAtMTA4LDEzICsxMDgsMTMgQEAKIAlyZXR1cm4gZW5hYmxlZDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNldF9zb2Z0X2VuYWJsZWQodW5zaWduZWQgbG9uZyBlbmFibGUpCitzdGF0aWMgaW5saW5lIG5vdHJhY2Ugdm9pZCBzZXRfc29mdF9lbmFibGVkKHVuc2lnbmVkIGxvbmcgZW5hYmxlKQogewogCV9fYXNtX18gX192b2xhdGlsZV9fKCJzdGIgJTAsJTEoMTMpIgogCTogOiAiciIgKGVuYWJsZSksICJpIiAob2Zmc2V0b2Yoc3RydWN0IHBhY2Ffc3RydWN0LCBzb2Z0X2VuYWJsZWQpKSk7CiB9CiAKLXZvaWQgcmF3X2xvY2FsX2lycV9yZXN0b3JlKHVuc2lnbmVkIGxvbmcgZW4pCitub3RyYWNlIHZvaWQgcmF3X2xvY2FsX2lycV9yZXN0b3JlKHVuc2lnbmVkIGxvbmcgZW4pCiB7CiAJLyoKIAkgKiBnZXRfcGFjYSgpLT5zb2Z0X2VuYWJsZWQgPSBlbjsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvbGVnYWN5X3NlcmlhbC5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9sZWdhY3lfc2VyaWFsLmMKaW5kZXggNjFkZDE3NC4uNGQ5NmUxZCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9sZWdhY3lfc2VyaWFsLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9sZWdhY3lfc2VyaWFsLmMKQEAgLTMzLDEzICszMywxNCBAQAogCXBoeXNfYWRkcl90CQkJdGFkZHI7CiB9IGxlZ2FjeV9zZXJpYWxfaW5mb3NbTUFYX0xFR0FDWV9TRVJJQUxfUE9SVFNdOwogCi1zdGF0aWMgc3RydWN0IF9faW5pdGRhdGEgb2ZfZGV2aWNlX2lkIHBhcmVudHNbXSA9IHsKK3N0YXRpYyBzdHJ1Y3QgX19pbml0ZGF0YSBvZl9kZXZpY2VfaWQgbGVnYWN5X3NlcmlhbF9wYXJlbnRzW10gPSB7CiAJey50eXBlID0gInNvYyIsfSwKIAl7LnR5cGUgPSAidHNpLWJyaWRnZSIsfSwKIAl7LnR5cGUgPSAib3BiIiwgfSwKIAl7LmNvbXBhdGlibGUgPSAiaWJtLG9wYiIsfSwKIAl7LmNvbXBhdGlibGUgPSAic2ltcGxlLWJ1cyIsfSwKIAl7LmNvbXBhdGlibGUgPSAid3JzLGVwbGQtbG9jYWxidXMiLH0sCisJe30sCiB9OwogCiBzdGF0aWMgdW5zaWduZWQgaW50IGxlZ2FjeV9zZXJpYWxfY291bnQ7CkBAIC0xMzYsNiArMTM3LDExIEBACiAJaWYgKG9mX2dldF9wcm9wZXJ0eShucCwgImNsb2NrLWZyZXF1ZW5jeSIsIE5VTEwpID09IE5VTEwpCiAJCXJldHVybiAtMTsKIAorCS8qIGlmIHJlZy1zaGlmdCBvciBvZmZzZXQsIGRvbid0IHRyeSB0byB1c2UgaXQgKi8KKwlpZiAoKG9mX2dldF9wcm9wZXJ0eShucCwgInJlZy1zaGlmdCIsIE5VTEwpICE9IE5VTEwpIHx8CisJCShvZl9nZXRfcHJvcGVydHkobnAsICJyZWctb2Zmc2V0IiwgTlVMTCkgIT0gTlVMTCkpCisJCXJldHVybiAtMTsKKwogCS8qIGlmIHJ0YXMgdXNlcyB0aGlzIGRldmljZSwgZG9uJ3QgdHJ5IHRvIHVzZSBpdCBhcyB3ZWxsICovCiAJaWYgKG9mX2dldF9wcm9wZXJ0eShucCwgInVzZWQtYnktcnRhcyIsIE5VTEwpICE9IE5VTEwpCiAJCXJldHVybiAtMTsKQEAgLTMyMiw3ICszMjgsNyBAQAogCQlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhcmVudCA9IG9mX2dldF9wYXJlbnQobnApOwogCQlpZiAoIXBhcmVudCkKIAkJCWNvbnRpbnVlOwotCQlpZiAob2ZfbWF0Y2hfbm9kZShwYXJlbnRzLCBwYXJlbnQpICE9IE5VTEwpIHsKKwkJaWYgKG9mX21hdGNoX25vZGUobGVnYWN5X3NlcmlhbF9wYXJlbnRzLCBwYXJlbnQpICE9IE5VTEwpIHsKIAkJCWluZGV4ID0gYWRkX2xlZ2FjeV9zb2NfcG9ydChucCwgbnApOwogCQkJaWYgKGluZGV4ID49IDAgJiYgbnAgPT0gc3Rkb3V0KQogCQkJCWxlZ2FjeV9zZXJpYWxfY29uc29sZSA9IGluZGV4OwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9vZl9wbGF0Zm9ybS5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9vZl9wbGF0Zm9ybS5jCmluZGV4IGU3OWFkOGEuLjNmMzdhNmUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvb2ZfcGxhdGZvcm0uYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL29mX3BsYXRmb3JtLmMKQEAgLTc2LDYgKzc2LDggQEAKIAkJcmV0dXJuIE5VTEw7CiAKIAlkZXYtPmRtYV9tYXNrID0gMHhmZmZmZmZmZlVMOworCWRldi0+ZGV2LmNvaGVyZW50X2RtYV9tYXNrID0gRE1BXzMyQklUX01BU0s7CisKIAlkZXYtPmRldi5idXMgPSAmb2ZfcGxhdGZvcm1fYnVzX3R5cGU7CiAKIAkvKiBXZSBkbyBub3QgZmlsbCB0aGUgRE1BIG9wcyBmb3IgcGxhdGZvcm0gZGV2aWNlcyBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcGNfa3N5bXMuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHBjX2tzeW1zLmMKaW5kZXggZDNhYzYzMS4uYThkMDI1MCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcGNfa3N5bXMuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BwY19rc3ltcy5jCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CiAjaW5jbHVkZSA8YXNtL3NpZ25hbC5oPgogI2luY2x1ZGUgPGFzbS9kY3IuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CiAKICNpZmRlZiBDT05GSUdfUFBDMzIKIGV4dGVybiB2b2lkIHRyYW5zZmVyX3RvX2hhbmRsZXIodm9pZCk7CkBAIC02Nyw2ICs2OCwxMCBAQAogRVhQT1JUX1NZTUJPTChzeXNfc2lncmV0dXJuKTsKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorRVhQT1JUX1NZTUJPTChfbWNvdW50KTsKKyNlbmRpZgorCiBFWFBPUlRfU1lNQk9MKHN0cmNweSk7CiBFWFBPUlRfU1lNQk9MKHN0cm5jcHkpOwogRVhQT1JUX1NZTUJPTChzdHJjYXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cF8zMi5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cF8zMi5jCmluZGV4IDUxMTJhNGEuLjE5ZThmY2IgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2V0dXBfMzIuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwXzMyLmMKQEAgLTgxLDcgKzgxLDcgQEAKICAqIGZyb20gdGhlIGFkZHJlc3MgdGhhdCBpdCB3YXMgbGlua2VkIGF0LCBzbyB3ZSBtdXN0IHVzZSBSRUxPQy9QVFJSRUxPQwogICogdG8gYWNjZXNzIHN0YXRpYyBkYXRhIChpbmNsdWRpbmcgc3RyaW5ncykuICAtLSBwYXVsdXMKICAqLwotdW5zaWduZWQgbG9uZyBfX2luaXQgZWFybHlfaW5pdCh1bnNpZ25lZCBsb25nIGR0X3B0cikKK25vdHJhY2UgdW5zaWduZWQgbG9uZyBfX2luaXQgZWFybHlfaW5pdCh1bnNpZ25lZCBsb25nIGR0X3B0cikKIHsKIAl1bnNpZ25lZCBsb25nIG9mZnNldCA9IHJlbG9jX29mZnNldCgpOwogCXN0cnVjdCBjcHVfc3BlYyAqc3BlYzsKQEAgLTExMSw3ICsxMTEsNyBAQAogICogVGhpcyBpcyBjYWxsZWQgdmVyeSBlYXJseSBvbiB0aGUgYm9vdCBwcm9jZXNzLCBhZnRlciBhIG1pbmltYWwKICAqIE1NVSBlbnZpcm9ubWVudCBoYXMgYmVlbiBzZXQgdXAgYnV0IGJlZm9yZSBNTVVfaW5pdCBpcyBjYWxsZWQuCiAgKi8KLXZvaWQgX19pbml0IG1hY2hpbmVfaW5pdCh1bnNpZ25lZCBsb25nIGR0X3B0ciwgdW5zaWduZWQgbG9uZyBwaHlzKQorbm90cmFjZSB2b2lkIF9faW5pdCBtYWNoaW5lX2luaXQodW5zaWduZWQgbG9uZyBkdF9wdHIsIHVuc2lnbmVkIGxvbmcgcGh5cykKIHsKIAkvKiBFbmFibGUgZWFybHkgZGVidWdnaW5nIGlmIGFueSBzcGVjaWZpZWQgKHNlZSB1ZGJnLmgpICovCiAJdWRiZ19lYXJseV9pbml0KCk7CkBAIC0xMzMsNyArMTMzLDcgQEAKIAogI2lmZGVmIENPTkZJR19CT09LRV9XRFQKIC8qIENoZWNrcyB3ZHQ9eCBhbmQgd2R0X3BlcmlvZD14eCBjb21tYW5kLWxpbmUgb3B0aW9uICovCi1pbnQgX19pbml0IGVhcmx5X3BhcnNlX3dkdChjaGFyICpwKQorbm90cmFjZSBpbnQgX19pbml0IGVhcmx5X3BhcnNlX3dkdChjaGFyICpwKQogewogCWlmIChwICYmIHN0cm5jbXAocCwgIjAiLCAxKSAhPSAwKQogCSAgICAgICBib29rZV93ZHRfZW5hYmxlZCA9IDE7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3N0YWNrdHJhY2UuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvc3RhY2t0cmFjZS5jCmluZGV4IDk2Mjk0NDAuLjNjZjBkOTQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc3RhY2t0cmFjZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvc3RhY2t0cmFjZS5jCkBAIC0xMiw2ICsxMiw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3N0YWNrdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CiAKIC8qCkBAIC00NCwzICs0NSw0IEBACiAJCXNwID0gbmV3c3A7CiAJfQogfQorRVhQT1JUX1NZTUJPTF9HUEwoc2F2ZV9zdGFja190cmFjZSk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3ZtbGludXgubGRzLlMKaW5kZXggMGMzMDAwYi4uNTNkNTdkMSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtNjQsOCArNjQsNiBAQAogCiAJTk9URVMKIAotCUJVR19UQUJMRQotCiAvKgogICogSW5pdCBzZWN0aW9ucyBkaXNjYXJkZWQgYXQgcnVudGltZQogICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbGl0ZTUyMDBfcG0uYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9saXRlNTIwMF9wbS5jCmluZGV4IDQxYzdmZDkuLmZlOTJlNjUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9saXRlNTIwMF9wbS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9saXRlNTIwMF9wbS5jCkBAIC0xNCw2ICsxNCw3IEBACiBzdGF0aWMgc3RydWN0IG1wYzUyeHhfeGxiIF9faW9tZW0gKnhsYjsKIHN0YXRpYyBzdHJ1Y3QgbXBjNTJ4eF9ncGlvIF9faW9tZW0gKmdwczsKIHN0YXRpYyBzdHJ1Y3QgbXBjNTJ4eF9ncGlvX3drdXAgX19pb21lbSAqZ3B3Oworc3RhdGljIHZvaWQgX19pb21lbSAqcGNpOwogc3RhdGljIHZvaWQgX19pb21lbSAqc3JhbTsKIHN0YXRpYyBjb25zdCBpbnQgc3JhbV9zaXplID0gMHg0MDAwOwkvKiAxNiBrQnl0ZXMgKi8KIHN0YXRpYyB2b2lkIF9faW9tZW0gKm1iYXI7CkBAIC01MCw2ICs1MSw4IEBACiAJCXsgLnR5cGUgPSAiYnVpbHRpbiIsIC5jb21wYXRpYmxlID0gIm1wYzUyMDAiLCB9LCAvKiBlZmlrYSAqLwogCQl7fQogCX07CisJdTY0IHJlZ2FkZHI2NCA9IDA7CisJY29uc3QgdTMyICpyZWdhZGRyX3A7CiAKIAkvKiBkZWVwIHNsZWVwPyBsZXQgbXBjNTJ4eCBjb2RlIGhhbmRsZSB0aGF0ICovCiAJaWYgKGxpdGU1MjAwX3BtX3RhcmdldF9zdGF0ZSA9PSBQTV9TVVNQRU5EX1NUQU5EQlkpCkBAIC02MCw4ICs2MywxMiBAQAogCiAJLyogbWFwIHJlZ2lzdGVycyAqLwogCW5wID0gb2ZfZmluZF9tYXRjaGluZ19ub2RlKE5VTEwsIGltbXJfaWRzKTsKLQltYmFyID0gb2ZfaW9tYXAobnAsIDApOworCXJlZ2FkZHJfcCA9IG9mX2dldF9hZGRyZXNzKG5wLCAwLCBOVUxMLCBOVUxMKTsKKwlpZiAocmVnYWRkcl9wKQorCQlyZWdhZGRyNjQgPSBvZl90cmFuc2xhdGVfYWRkcmVzcyhucCwgcmVnYWRkcl9wKTsKIAlvZl9ub2RlX3B1dChucCk7CisKKwltYmFyID0gaW9yZW1hcCgodTMyKSByZWdhZGRyNjQsIDB4QzAwMCk7CiAJaWYgKCFtYmFyKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiJXM6JWkgRXJyb3IgbWFwcGluZyByZWdpc3RlcnNcbiIsIF9fZnVuY19fLCBfX0xJTkVfXyk7CiAJCXJldHVybiAtRU5PU1lTOwpAQCAtNzEsNiArNzgsNyBAQAogCXBpYyA9IG1iYXIgKyAweDUwMDsKIAlncHMgPSBtYmFyICsgMHhiMDA7CiAJZ3B3ID0gbWJhciArIDB4YzAwOworCXBjaSA9IG1iYXIgKyAweGQwMDsKIAliZXMgPSBtYmFyICsgMHgxMjAwOwogCXhsYiA9IG1iYXIgKyAweDFmMDA7CiAJc3JhbSA9IG1iYXIgKyAweDgwMDA7CkBAIC04NSw2ICs5Myw3IEBACiBzdGF0aWMgc3RydWN0IG1wYzUyeHhfeGxiIHN4bGI7CiBzdGF0aWMgc3RydWN0IG1wYzUyeHhfZ3BpbyBzZ3BzOwogc3RhdGljIHN0cnVjdCBtcGM1Mnh4X2dwaW9fd2t1cCBzZ3B3Oworc3RhdGljIGNoYXIgc3BjaVsweDIwMF07CiAKIHN0YXRpYyB2b2lkIGxpdGU1MjAwX3NhdmVfcmVncyh2b2lkKQogewpAQCAtOTQsNiArMTAzLDcgQEAKIAlfbWVtY3B5X2Zyb21pbygmc3hsYiwgeGxiLCBzaXplb2YoKnhsYikpOwogCV9tZW1jcHlfZnJvbWlvKCZzZ3BzLCBncHMsIHNpemVvZigqZ3BzKSk7CiAJX21lbWNweV9mcm9taW8oJnNncHcsIGdwdywgc2l6ZW9mKCpncHcpKTsKKwlfbWVtY3B5X2Zyb21pbyhzcGNpLCBwY2ksIDB4MjAwKTsKIAogCV9tZW1jcHlfZnJvbWlvKHNhdmVkX3NyYW0sIHNyYW0sIHNyYW1fc2l6ZSk7CiB9CkBAIC0xMDMsNiArMTEzLDggQEAKIAlpbnQgaTsKIAlfbWVtY3B5X3RvaW8oc3JhbSwgc2F2ZWRfc3JhbSwgc3JhbV9zaXplKTsKIAorCS8qIFBDSSBDb25maWd1cmF0aW9uICovCisJX21lbWNweV90b2lvKHBjaSwgc3BjaSwgMHgyMDApOwogCiAJLyoKIAkgKiBHUElPcy4gSW50ZXJydXB0IE1hc3RlciBFbmFibGUgaGFzIGhpZ2hlciBhZGRyZXNzIHRoZW4gb3RoZXIKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvTWFrZWZpbGUgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL01ha2VmaWxlCmluZGV4IDRkNzJjOGYuLjg5Nzc0MTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9NYWtlZmlsZQpAQCAtMSw1ICsxLDEwIEBACiBDRkxBR1NfYm9vdHhfaW5pdC5vICAJCSs9IC1mUElDCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKKyMgRG8gbm90IHRyYWNlIGVhcmx5IGJvb3QgY29kZQorQ0ZMQUdTX1JFTU9WRV9ib290eF9pbml0Lm8gPSAtcGcKK2VuZGlmCisKIG9iai15CQkJCSs9IHBpYy5vIHNldHVwLm8gdGltZS5vIGZlYXR1cmUubyBwY2kubyBcCiAJCQkJICAgc2xlZXAubyBsb3dfaTJjLm8gY2FjaGUubyBwZnVuY19jb3JlLm8gXAogCQkJCSAgIHBmdW5jX2Jhc2UubwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL0tjb25maWcgYi9hcmNoL3MzOTAvS2NvbmZpZwppbmRleCAxMDdlNDkyLi41ZGM4ZjgwIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvS2NvbmZpZworKysgYi9hcmNoL3MzOTAvS2NvbmZpZwpAQCAtMTQ2LDYgKzE0Niw3IEBACiBjb25maWcgQ09NUEFUCiAJYm9vbCAiS2VybmVsIHN1cHBvcnQgZm9yIDMxIGJpdCBlbXVsYXRpb24iCiAJZGVwZW5kcyBvbiA2NEJJVAorCXNlbGVjdCBDT01QQVRfQklORk1UX0VMRgogCWhlbHAKIAkgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBlbmFibGUgeW91ciBzeXN0ZW0ga2VybmVsIHRvCiAJICBoYW5kbGUgc3lzdGVtLWNhbGxzIGZyb20gRUxGIGJpbmFyaWVzIGZvciAzMSBiaXQgRVNBLiAgVGhpcyBvcHRpb24KQEAgLTMxMiw2ICszMTMsMTAgQEAKIGNvbmZpZyBBUkNIX1NFTEVDVF9NRU1PUllfTU9ERUwKICAgICAgICBkZWZfYm9vbCB5CiAKK2NvbmZpZyBBUkNIX0VOQUJMRV9NRU1PUllfSE9UUExVRworCWRlZl9ib29sIHkKKwlkZXBlbmRzIG9uIFNQQVJTRU1FTQorCiBzb3VyY2UgIm1tL0tjb25maWciCiAKIGNvbW1lbnQgIkkvTyBzdWJzeXN0ZW0gY29uZmlndXJhdGlvbiIKQEAgLTM0NCw2ICszNDksMjIgQEAKIAogCSAgSWYgdW5zdXJlLCBzYXkgTi4KIAorY29uZmlnIENIU0NfU0NICisJdHJpc3RhdGUgIlN1cHBvcnQgZm9yIENIU0Mgc3ViY2hhbm5lbHMiCisJaGVscAorCSAgVGhpcyBkcml2ZXIgYWxsb3dzIHVzYWdlIG9mIENIU0Mgc3ViY2hhbm5lbHMuIEEgQ0hTQyBzdWJjaGFubmVsCisJICBpcyB1c3VhbGx5IHByZXNlbnQgb24gTFBBUiBvbmx5LgorCSAgVGhlIGRyaXZlciBjcmVhdGVzIGEgZGV2aWNlIC9kZXYvY2hzYywgd2hpY2ggbWF5IGJlIHVzZWQgdG8KKwkgIG9idGFpbiBJL08gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWFjaGluZSBhbmQKKwkgIHRvIGlzc3VlIGFzeW5jaHJvbm91cyBjaHNjIGNvbW1hbmRzIChEQU5HRVJPVVMpLgorCSAgWW91IHdpbGwgdXN1YWxseSBvbmx5IHdhbnQgdG8gdXNlIHRoaXMgaW50ZXJmYWNlIG9uIGEgc3BlY2lhbAorCSAgTFBBUiBkZXNpZ25hdGVkIGZvciBzeXN0ZW0gbWFuYWdlbWVudC4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgY2hzY19zY2guCisKKwkgIElmIHVuc3VyZSwgc2F5IE4uCisKIGNvbW1lbnQgIk1pc2MiCiAKIGNvbmZpZyBJUEwKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YS5oIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhLmgKaW5kZXggZGIzYWU4NTAuLjE3YTI2MzYgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YS5oCisrKyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YS5oCkBAIC0zLDEzICszLDExIEBACiAgKgogICogRGVmaW5pdGlvbnMgYW5kIGludGVyZmFjZSBmb3IgTGludXggLSB6L1ZNIE1vbml0b3IgU3RyZWFtLgogICoKLSAqIENvcHlyaWdodCAoQykgMjAwMywyMDA2IElCTSBDb3Jwb3JhdGlvbiwgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkguCisgKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDMsIDIwMDgKICAqCiAgKiBBdXRob3I6IEdlcmFsZCBTY2hhZWZlciA8Z2VyYWxkLnNjaGFlZmVyQGRlLmlibS5jb20+CiAgKi8KIAotLy8jZGVmaW5lIEFQUExEQVRBX0RFQlVHCQkJLyogRGVidWcgbWVzc2FnZXMgb24vb2ZmICovCi0KICNkZWZpbmUgQVBQTERBVEFfTUFYX1JFQ19TSVpFCSAgNDAyNAkvKiBNYXhpbXVtIHNpemUgb2YgdGhlICovCiAJCQkJCS8qIGRhdGEgYnVmZmVyICovCiAjZGVmaW5lIEFQUExEQVRBX01BWF9QUk9DUyAxMDAKQEAgLTMyLDEyICszMCw2IEBACiAjZGVmaW5lIFBfRVJST1IoeC4uLikJcHJpbnRrKEtFUk5fRVJSIE1ZX1BSSU5UX05BTUUgIiBlcnJvcjogIiB4KQogI2RlZmluZSBQX1dBUk5JTkcoeC4uLikJcHJpbnRrKEtFUk5fV0FSTklORyBNWV9QUklOVF9OQU1FICIgc3RhdHVzOiAiIHgpCiAKLSNpZmRlZiBBUFBMREFUQV9ERUJVRwotI2RlZmluZSBQX0RFQlVHKHguLi4pICAgcHJpbnRrKEtFUk5fREVCVUcgTVlfUFJJTlRfTkFNRSAiIGRlYnVnOiAiIHgpCi0jZWxzZQotI2RlZmluZSBQX0RFQlVHKHguLi4pICAgZG8ge30gd2hpbGUgKDApCi0jZW5kaWYKLQogc3RydWN0IGFwcGxkYXRhX29wcyB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwogCXN0cnVjdCBjdGxfdGFibGVfaGVhZGVyICpzeXNjdGxfaGVhZGVyOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2UuYyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9iYXNlLmMKaW5kZXggODM3YTNiMy4uYTdmODk3OSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2UuYworKysgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jCkBAIC01LDcgKzUsNyBAQAogICogRXhwb3J0cyBhcHBsZGF0YV9yZWdpc3Rlcl9vcHMoKSBhbmQgYXBwbGRhdGFfdW5yZWdpc3Rlcl9vcHMoKSBmb3IgdGhlCiAgKiBkYXRhIGdhdGhlcmluZyBtb2R1bGVzLgogICoKLSAqIENvcHlyaWdodCAoQykgMjAwMywyMDA2IElCTSBDb3Jwb3JhdGlvbiwgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkguCisgKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDMsIDIwMDgKICAqCiAgKiBBdXRob3I6IEdlcmFsZCBTY2hhZWZlciA8Z2VyYWxkLnNjaGFlZmVyQGRlLmlibS5jb20+CiAgKi8KQEAgLTEwOCw5ICsxMDgsNiBAQAogICovCiBzdGF0aWMgdm9pZCBhcHBsZGF0YV90aW1lcl9mdW5jdGlvbih1bnNpZ25lZCBsb25nIGRhdGEpCiB7Ci0JUF9ERUJVRygiICAgLT0gVGltZXIgPS1cbiIpOwotCVBfREVCVUcoIkNQVTogJWksIGV4cGlyZV9jb3VudDogJWlcbiIsIHNtcF9wcm9jZXNzb3JfaWQoKSwKLQkJYXRvbWljX3JlYWQoJmFwcGxkYXRhX2V4cGlyZV9jb3VudCkpOwogCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZhcHBsZGF0YV9leHBpcmVfY291bnQpKSB7CiAJCWF0b21pY19zZXQoJmFwcGxkYXRhX2V4cGlyZV9jb3VudCwgbnVtX29ubGluZV9jcHVzKCkpOwogCQlxdWV1ZV93b3JrKGFwcGxkYXRhX3dxLCAoc3RydWN0IHdvcmtfc3RydWN0ICopIGRhdGEpOwpAQCAtMTI4LDE0ICsxMjUsMTEgQEAKIAlzdHJ1Y3QgYXBwbGRhdGFfb3BzICpvcHM7CiAJaW50IGk7CiAKLQlQX0RFQlVHKCIgIC09IFdvcmsgUXVldWUgPS1cbiIpOwogCWkgPSAwOwogCWdldF9vbmxpbmVfY3B1cygpOwogCXNwaW5fbG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwogCWxpc3RfZm9yX2VhY2gobGgsICZhcHBsZGF0YV9vcHNfbGlzdCkgewogCQlvcHMgPSBsaXN0X2VudHJ5KGxoLCBzdHJ1Y3QgYXBwbGRhdGFfb3BzLCBsaXN0KTsKLQkJUF9ERUJVRygibGlzdF9mb3JfZWFjaCBsb29wOiAlaSkgYWN0aXZlID0gJXUsIG5hbWUgPSAlc1xuIiwKLQkJCSsraSwgb3BzLT5hY3RpdmUsIG9wcy0+bmFtZSk7CiAJCWlmIChvcHMtPmFjdGl2ZSA9PSAxKSB7CiAJCQlvcHMtPmNhbGxiYWNrKG9wcy0+ZGF0YSk7CiAJCX0KQEAgLTIxMiw3ICsyMDYsNiBAQAogCQkJCQkJIDEpOwogCQl9CiAJCWFwcGxkYXRhX3RpbWVyX2FjdGl2ZSA9IDE7Ci0JCVBfSU5GTygiTW9uaXRvcmluZyB0aW1lciBzdGFydGVkLlxuIik7CiAJCWJyZWFrOwogCWNhc2UgQVBQTERBVEFfREVMX1RJTUVSOgogCQlmb3JfZWFjaF9vbmxpbmVfY3B1KGkpCkBAIC0yMjEsNyArMjE0LDYgQEAKIAkJCWJyZWFrOwogCQlhcHBsZGF0YV90aW1lcl9hY3RpdmUgPSAwOwogCQlhdG9taWNfc2V0KCZhcHBsZGF0YV9leHBpcmVfY291bnQsIG51bV9vbmxpbmVfY3B1cygpKTsKLQkJUF9JTkZPKCJNb25pdG9yaW5nIHRpbWVyIHN0b3BwZWQuXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBBUFBMREFUQV9NT0RfVElNRVI6CiAJCXBlcl9jcHVfaW50ZXJ2YWwgPSAodTY0KSAoYXBwbGRhdGFfaW50ZXJ2YWwqMTAwMCAvCkBAIC0zMTMsMTAgKzMwNSw4IEBACiAJfQogCWludGVydmFsID0gMDsKIAlzc2NhbmYoYnVmLCAiJWkiLCAmaW50ZXJ2YWwpOwotCWlmIChpbnRlcnZhbCA8PSAwKSB7Ci0JCVBfRVJST1IoIlRpbWVyIENQVSBpbnRlcnZhbCBoYXMgdG8gYmUgPiAwIVxuIik7CisJaWYgKGludGVydmFsIDw9IDApCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCWdldF9vbmxpbmVfY3B1cygpOwogCXNwaW5fbG9jaygmYXBwbGRhdGFfdGltZXJfbG9jayk7CkBAIC0zMjQsOSArMzE0LDYgQEAKIAlfX2FwcGxkYXRhX3Z0aW1lcl9zZXR1cChBUFBMREFUQV9NT0RfVElNRVIpOwogCXNwaW5fdW5sb2NrKCZhcHBsZGF0YV90aW1lcl9sb2NrKTsKIAlwdXRfb25saW5lX2NwdXMoKTsKLQotCVBfSU5GTygiTW9uaXRvcmluZyBDUFUgaW50ZXJ2YWwgc2V0IHRvICV1IG1pbGxpc2Vjb25kcy5cbiIsCi0JCSBpbnRlcnZhbCk7CiBvdXQ6CiAJKmxlbnAgPSBsZW47CiAJKnBwb3MgKz0gbGVuOwpAQCAtNDA2LDIzICszOTMsMTYgQEAKIAkJCVBfRVJST1IoIlNUQVJUIERJQUcgMHhEQyBmb3IgJXMgZmFpbGVkLCAiCiAJCQkJInJldHVybiBjb2RlOiAlZFxuIiwgb3BzLT5uYW1lLCByYyk7CiAJCQltb2R1bGVfcHV0KG9wcy0+b3duZXIpOwotCQl9IGVsc2UgewotCQkJUF9JTkZPKCJNb25pdG9yaW5nICVzIGRhdGEgZW5hYmxlZCwgIgotCQkJCSJESUFHIDB4REMgc3RhcnRlZC5cbiIsIG9wcy0+bmFtZSk7CisJCX0gZWxzZQogCQkJb3BzLT5hY3RpdmUgPSAxOwotCQl9CiAJfSBlbHNlIGlmICgoYnVmWzBdID09ICcwJykgJiYgKG9wcy0+YWN0aXZlID09IDEpKSB7CiAJCW9wcy0+YWN0aXZlID0gMDsKIAkJcmMgPSBhcHBsZGF0YV9kaWFnKG9wcy0+cmVjb3JkX25yLCBBUFBMREFUQV9TVE9QX1JFQywKIAkJCQkodW5zaWduZWQgbG9uZykgb3BzLT5kYXRhLCBvcHMtPnNpemUsCiAJCQkJb3BzLT5tb2RfbHZsKTsKLQkJaWYgKHJjICE9IDApIHsKKwkJaWYgKHJjICE9IDApCiAJCQlQX0VSUk9SKCJTVE9QIERJQUcgMHhEQyBmb3IgJXMgZmFpbGVkLCAiCiAJCQkJInJldHVybiBjb2RlOiAlZFxuIiwgb3BzLT5uYW1lLCByYyk7Ci0JCX0gZWxzZSB7Ci0JCQlQX0lORk8oIk1vbml0b3JpbmcgJXMgZGF0YSBkaXNhYmxlZCwgIgotCQkJCSJESUFHIDB4REMgc3RvcHBlZC5cbiIsIG9wcy0+bmFtZSk7Ci0JCX0KIAkJbW9kdWxlX3B1dChvcHMtPm93bmVyKTsKIAl9CiAJc3Bpbl91bmxvY2soJmFwcGxkYXRhX29wc19sb2NrKTsKQEAgLTQ2OCw3ICs0NDgsNiBAQAogCW9wcy0+c3lzY3RsX2hlYWRlciA9IHJlZ2lzdGVyX3N5c2N0bF90YWJsZShvcHMtPmN0bF90YWJsZSk7CiAJaWYgKCFvcHMtPnN5c2N0bF9oZWFkZXIpCiAJCWdvdG8gb3V0OwotCVBfSU5GTygiJXMtb3BzIHJlZ2lzdGVyZWQhXG4iLCBvcHMtPm5hbWUpOwogCXJldHVybiAwOwogb3V0OgogCXNwaW5fbG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOwpAQCAtNDkwLDcgKzQ2OSw2IEBACiAJc3Bpbl91bmxvY2soJmFwcGxkYXRhX29wc19sb2NrKTsKIAl1bnJlZ2lzdGVyX3N5c2N0bF90YWJsZShvcHMtPnN5c2N0bF9oZWFkZXIpOwogCWtmcmVlKG9wcy0+Y3RsX3RhYmxlKTsKLQlQX0lORk8oIiVzLW9wcyB1bnJlZ2lzdGVyZWQhXG4iLCBvcHMtPm5hbWUpOwogfQogLyoqKioqKioqKioqKioqKioqKioqKiogbW9kdWxlLW9wcyBtYW5hZ2VtZW50IDxFTkQ+ICoqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC01NTMsMTQgKzUzMSw5IEBACiB7CiAJaW50IGk7CiAKLQlQX0RFQlVHKCJzaXplb2YocGFyYW1ldGVyX2xpc3QpID0gJWx1XG4iLAotCQlzaXplb2Yoc3RydWN0IGFwcGxkYXRhX3BhcmFtZXRlcl9saXN0KSk7Ci0KIAlhcHBsZGF0YV93cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKCJhcHBsZGF0YSIpOwotCWlmICghYXBwbGRhdGFfd3EpIHsKLQkJUF9FUlJPUigiQ291bGQgbm90IGNyZWF0ZSB3b3JrIHF1ZXVlXG4iKTsKKwlpZiAoIWFwcGxkYXRhX3dxKQogCQlyZXR1cm4gLUVOT01FTTsKLQl9CiAKIAlnZXRfb25saW5lX2NwdXMoKTsKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGkpCkBAIC01NzEsOCArNTQ0LDYgQEAKIAlyZWdpc3Rlcl9ob3RjcHVfbm90aWZpZXIoJmFwcGxkYXRhX25iKTsKIAogCWFwcGxkYXRhX3N5c2N0bF9oZWFkZXIgPSByZWdpc3Rlcl9zeXNjdGxfdGFibGUoYXBwbGRhdGFfZGlyX3RhYmxlKTsKLQotCVBfREVCVUcoIkJhc2UgaW50ZXJmYWNlIGluaXRpYWxpemVkLlxuIik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTU4NCw3ICs1NTUsOSBAQAogRVhQT1JUX1NZTUJPTF9HUEwoYXBwbGRhdGFfdW5yZWdpc3Rlcl9vcHMpOwogRVhQT1JUX1NZTUJPTF9HUEwoYXBwbGRhdGFfZGlhZyk7CiAKKyNpZmRlZiBDT05GSUdfU1dBUAogRVhQT1JUX1NZTUJPTF9HUEwoc2lfc3dhcGluZm8pOworI2VuZGlmCiBFWFBPUlRfU1lNQk9MX0dQTChucl90aHJlYWRzKTsKIEVYUE9SVF9TWU1CT0xfR1BMKG5yX3J1bm5pbmcpOwogRVhQT1JUX1NZTUJPTF9HUEwobnJfaW93YWl0KTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9tZW0uYyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9tZW0uYwppbmRleCA1MTE4MWNjLi4zZWQ1NmI3IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbWVtLmMKKysrIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX21lbS5jCkBAIC0xNCwxNCArMTQsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9zd2FwLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CiAKICNpbmNsdWRlICJhcHBsZGF0YS5oIgogCiAKLSNkZWZpbmUgTVlfUFJJTlRfTkFNRSAiYXBwbGRhdGFfbWVtIgkJLyogZm9yIGRlYnVnIG1lc3NhZ2VzLCBldGMuICovCiAjZGVmaW5lIFAySyh4KSAoKHgpIDw8IChQQUdFX1NISUZUIC0gMTApKQkvKiBDb252ZXJ0cyAjUGFnZXMgdG8gS0IgKi8KIAogLyoKQEAgLTcwLDMwICs2OSw2IEBACiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGFwcGxkYXRhX21lbV9kYXRhOwogCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhcHBsZGF0YV9kZWJ1Z19wcmludChzdHJ1Y3QgYXBwbGRhdGFfbWVtX2RhdGEgKm1lbV9kYXRhKQotewotCVBfREVCVUcoIi0tLSBNRU0gLSBSRUNPUkQgLS0tXG4iKTsKLQlQX0RFQlVHKCJwZ3BnaW4gICAgID0gJThsdSBLQlxuIiwgbWVtX2RhdGEtPnBncGdpbik7Ci0JUF9ERUJVRygicGdwZ291dCAgICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5wZ3Bnb3V0KTsKLQlQX0RFQlVHKCJwc3dwaW4gICAgID0gJThsdSBQYWdlc1xuIiwgbWVtX2RhdGEtPnBzd3Bpbik7Ci0JUF9ERUJVRygicHN3cG91dCAgICA9ICU4bHUgUGFnZXNcbiIsIG1lbV9kYXRhLT5wc3dwb3V0KTsKLQlQX0RFQlVHKCJwZ2FsbG9jICAgID0gJThsdSBcbiIsIG1lbV9kYXRhLT5wZ2FsbG9jKTsKLQlQX0RFQlVHKCJwZ2ZhdWx0ICAgID0gJThsdSBcbiIsIG1lbV9kYXRhLT5wZ2ZhdWx0KTsKLQlQX0RFQlVHKCJwZ21hamZhdWx0ID0gJThsdSBcbiIsIG1lbV9kYXRhLT5wZ21hamZhdWx0KTsKLQlQX0RFQlVHKCJzaGFyZWRyYW0gID0gJThsdSBLQlxuIiwgbWVtX2RhdGEtPnNoYXJlZHJhbSk7Ci0JUF9ERUJVRygidG90YWxyYW0gICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT50b3RhbHJhbSk7Ci0JUF9ERUJVRygiZnJlZXJhbSAgICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5mcmVlcmFtKTsKLQlQX0RFQlVHKCJ0b3RhbGhpZ2ggID0gJThsdSBLQlxuIiwgbWVtX2RhdGEtPnRvdGFsaGlnaCk7Ci0JUF9ERUJVRygiZnJlZWhpZ2ggICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5mcmVlaGlnaCk7Ci0JUF9ERUJVRygiYnVmZmVycmFtICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5idWZmZXJyYW0pOwotCVBfREVCVUcoImNhY2hlZCAgICAgPSAlOGx1IEtCXG4iLCBtZW1fZGF0YS0+Y2FjaGVkKTsKLQlQX0RFQlVHKCJ0b3RhbHN3YXAgID0gJThsdSBLQlxuIiwgbWVtX2RhdGEtPnRvdGFsc3dhcCk7Ci0JUF9ERUJVRygiZnJlZXN3YXAgICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5mcmVlc3dhcCk7Ci0JUF9ERUJVRygic3luY19jb3VudF8xID0gJXVcbiIsIG1lbV9kYXRhLT5zeW5jX2NvdW50XzEpOwotCVBfREVCVUcoInN5bmNfY291bnRfMiA9ICV1XG4iLCBtZW1fZGF0YS0+c3luY19jb3VudF8yKTsKLQlQX0RFQlVHKCJ0aW1lc3RhbXAgICAgPSAlbFhcbiIsIG1lbV9kYXRhLT50aW1lc3RhbXApOwotfQotCiAvKgogICogYXBwbGRhdGFfZ2V0X21lbV9kYXRhKCkKICAqCkBAIC0xNDAsOSArMTE1LDYgQEAKIAogCW1lbV9kYXRhLT50aW1lc3RhbXAgPSBnZXRfY2xvY2soKTsKIAltZW1fZGF0YS0+c3luY19jb3VudF8yKys7Ci0jaWZkZWYgQVBQTERBVEFfREVCVUcKLQlhcHBsZGF0YV9kZWJ1Z19wcmludChtZW1fZGF0YSk7Ci0jZW5kaWYKIH0KIAogCkBAIC0xNjQsMTcgKzEzNiw3IEBACiAgKi8KIHN0YXRpYyBpbnQgX19pbml0IGFwcGxkYXRhX21lbV9pbml0KHZvaWQpCiB7Ci0JaW50IHJjOwotCi0JUF9ERUJVRygic2l6ZW9mKG1lbSkgPSAlbHVcbiIsIHNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfbWVtX2RhdGEpKTsKLQotCXJjID0gYXBwbGRhdGFfcmVnaXN0ZXJfb3BzKCZvcHMpOwotCWlmIChyYyAhPSAwKSB7Ci0JCVBfRVJST1IoIkVycm9yIHJlZ2lzdGVyaW5nIG9wcywgcmMgPSAlaVxuIiwgcmMpOwotCX0gZWxzZSB7Ci0JCVBfREVCVUcoIiVzLW9wcyByZWdpc3RlcmVkIVxuIiwgb3BzLm5hbWUpOwotCX0KLQlyZXR1cm4gcmM7CisJcmV0dXJuIGFwcGxkYXRhX3JlZ2lzdGVyX29wcygmb3BzKTsKIH0KIAogLyoKQEAgLTE4NSw3ICsxNDcsNiBAQAogc3RhdGljIHZvaWQgX19leGl0IGFwcGxkYXRhX21lbV9leGl0KHZvaWQpCiB7CiAJYXBwbGRhdGFfdW5yZWdpc3Rlcl9vcHMoJm9wcyk7Ci0JUF9ERUJVRygiJXMtb3BzIHVucmVnaXN0ZXJlZCFcbiIsIG9wcy5uYW1lKTsKIH0KIAogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbmV0X3N1bS5jIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX25ldF9zdW0uYwppbmRleCA0ZDgzNDQzLi4zYjc0NjU1IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbmV0X3N1bS5jCisrKyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9uZXRfc3VtLmMKQEAgLTIxLDkgKzIxLDYgQEAKICNpbmNsdWRlICJhcHBsZGF0YS5oIgogCiAKLSNkZWZpbmUgTVlfUFJJTlRfTkFNRQkiYXBwbGRhdGFfbmV0X3N1bSIJLyogZm9yIGRlYnVnIG1lc3NhZ2VzLCBldGMuICovCi0KLQogLyoKICAqIE5ldHdvcmsgZGF0YQogICoKQEAgLTYwLDI2ICs1Nyw2IEBACiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGFwcGxkYXRhX25ldF9zdW1fZGF0YTsKIAogCi1zdGF0aWMgaW5saW5lIHZvaWQgYXBwbGRhdGFfcHJpbnRfZGVidWcoc3RydWN0IGFwcGxkYXRhX25ldF9zdW1fZGF0YSAqbmV0X2RhdGEpCi17Ci0JUF9ERUJVRygiLS0tIE5FVCAtIFJFQ09SRCAtLS1cbiIpOwotCi0JUF9ERUJVRygibnJfaW50ZXJmYWNlcyA9ICV1XG4iLCBuZXRfZGF0YS0+bnJfaW50ZXJmYWNlcyk7Ci0JUF9ERUJVRygicnhfcGFja2V0cyAgICA9ICU4bHVcbiIsIG5ldF9kYXRhLT5yeF9wYWNrZXRzKTsKLQlQX0RFQlVHKCJ0eF9wYWNrZXRzICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPnR4X3BhY2tldHMpOwotCVBfREVCVUcoInJ4X2J5dGVzICAgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+cnhfYnl0ZXMpOwotCVBfREVCVUcoInR4X2J5dGVzICAgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+dHhfYnl0ZXMpOwotCVBfREVCVUcoInJ4X2Vycm9ycyAgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+cnhfZXJyb3JzKTsKLQlQX0RFQlVHKCJ0eF9lcnJvcnMgICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPnR4X2Vycm9ycyk7Ci0JUF9ERUJVRygicnhfZHJvcHBlZCAgICA9ICU4bHVcbiIsIG5ldF9kYXRhLT5yeF9kcm9wcGVkKTsKLQlQX0RFQlVHKCJ0eF9kcm9wcGVkICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPnR4X2Ryb3BwZWQpOwotCVBfREVCVUcoImNvbGxpc2lvbnMgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+Y29sbGlzaW9ucyk7Ci0KLQlQX0RFQlVHKCJzeW5jX2NvdW50XzEgPSAldVxuIiwgbmV0X2RhdGEtPnN5bmNfY291bnRfMSk7Ci0JUF9ERUJVRygic3luY19jb3VudF8yID0gJXVcbiIsIG5ldF9kYXRhLT5zeW5jX2NvdW50XzIpOwotCVBfREVCVUcoInRpbWVzdGFtcCAgICA9ICVsWFxuIiwgbmV0X2RhdGEtPnRpbWVzdGFtcCk7Ci19Ci0KIC8qCiAgKiBhcHBsZGF0YV9nZXRfbmV0X3N1bV9kYXRhKCkKICAqCkBAIC0xMzUsOSArMTEyLDYgQEAKIAogCW5ldF9kYXRhLT50aW1lc3RhbXAgPSBnZXRfY2xvY2soKTsKIAluZXRfZGF0YS0+c3luY19jb3VudF8yKys7Ci0jaWZkZWYgQVBQTERBVEFfREVCVUcKLQlhcHBsZGF0YV9wcmludF9kZWJ1ZyhuZXRfZGF0YSk7Ci0jZW5kaWYKIH0KIAogCkBAIC0xNTksMTcgKzEzMyw3IEBACiAgKi8KIHN0YXRpYyBpbnQgX19pbml0IGFwcGxkYXRhX25ldF9pbml0KHZvaWQpCiB7Ci0JaW50IHJjOwotCi0JUF9ERUJVRygic2l6ZW9mKG5ldCkgPSAlbHVcbiIsIHNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfbmV0X3N1bV9kYXRhKSk7Ci0KLQlyYyA9IGFwcGxkYXRhX3JlZ2lzdGVyX29wcygmb3BzKTsKLQlpZiAocmMgIT0gMCkgewotCQlQX0VSUk9SKCJFcnJvciByZWdpc3RlcmluZyBvcHMsIHJjID0gJWlcbiIsIHJjKTsKLQl9IGVsc2UgewotCQlQX0RFQlVHKCIlcy1vcHMgcmVnaXN0ZXJlZCFcbiIsIG9wcy5uYW1lKTsKLQl9Ci0JcmV0dXJuIHJjOworCXJldHVybiBhcHBsZGF0YV9yZWdpc3Rlcl9vcHMoJm9wcyk7CiB9CiAKIC8qCkBAIC0xODAsNyArMTQ0LDYgQEAKIHN0YXRpYyB2b2lkIF9fZXhpdCBhcHBsZGF0YV9uZXRfZXhpdCh2b2lkKQogewogCWFwcGxkYXRhX3VucmVnaXN0ZXJfb3BzKCZvcHMpOwotCVBfREVCVUcoIiVzLW9wcyB1bnJlZ2lzdGVyZWQhXG4iLCBvcHMubmFtZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX29zLmMgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfb3MuYwppbmRleCA2YjNlYWZlLi5lYjQ0ZjlmIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfb3MuYworKysgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfb3MuYwpAQCAtODksNDQgKzg5LDYgQEAKIH07CiAKIAotc3RhdGljIGlubGluZSB2b2lkIGFwcGxkYXRhX3ByaW50X2RlYnVnKHN0cnVjdCBhcHBsZGF0YV9vc19kYXRhICpvc19kYXRhKQotewotCWludCBhMCwgYTEsIGEyLCBpOwotCi0JUF9ERUJVRygiLS0tIE9TIC0gUkVDT1JEIC0tLVxuIik7Ci0JUF9ERUJVRygibnJfdGhyZWFkcyAgID0gJXVcbiIsIG9zX2RhdGEtPm5yX3RocmVhZHMpOwotCVBfREVCVUcoIm5yX3J1bm5pbmcgICA9ICV1XG4iLCBvc19kYXRhLT5ucl9ydW5uaW5nKTsKLQlQX0RFQlVHKCJucl9pb3dhaXQgICAgPSAldVxuIiwgb3NfZGF0YS0+bnJfaW93YWl0KTsKLQlQX0RFQlVHKCJhdmVucnVuKGludCkgPSAlOHggLyAlOHggLyAlOHhcbiIsIG9zX2RhdGEtPmF2ZW5ydW5bMF0sCi0JCW9zX2RhdGEtPmF2ZW5ydW5bMV0sIG9zX2RhdGEtPmF2ZW5ydW5bMl0pOwotCWEwID0gb3NfZGF0YS0+YXZlbnJ1blswXTsKLQlhMSA9IG9zX2RhdGEtPmF2ZW5ydW5bMV07Ci0JYTIgPSBvc19kYXRhLT5hdmVucnVuWzJdOwotCVBfREVCVUcoImF2ZW5ydW4oZmxvYXQpID0gJWQuJTAyZCAvICVkLiUwMmQgLyAlZC4lMDJkXG4iLAotCQlMT0FEX0lOVChhMCksIExPQURfRlJBQyhhMCksIExPQURfSU5UKGExKSwgTE9BRF9GUkFDKGExKSwKLQkJTE9BRF9JTlQoYTIpLCBMT0FEX0ZSQUMoYTIpKTsKLQotCVBfREVCVUcoIm5yX2NwdXMgPSAldVxuIiwgb3NfZGF0YS0+bnJfY3B1cyk7Ci0JZm9yIChpID0gMDsgaSA8IG9zX2RhdGEtPm5yX2NwdXM7IGkrKykgewotCQlQX0RFQlVHKCJjcHUldSA6IHVzZXIgPSAldSwgbmljZSA9ICV1LCBzeXN0ZW0gPSAldSwgIgotCQkJImlkbGUgPSAldSwgaXJxID0gJXUsIHNvZnRpcnEgPSAldSwgaW93YWl0ID0gJXUsICIKLQkJCSJzdGVhbCA9ICV1XG4iLAotCQkJCW9zX2RhdGEtPm9zX2NwdVtpXS5jcHVfaWQsCi0JCQkJb3NfZGF0YS0+b3NfY3B1W2ldLnBlcl9jcHVfdXNlciwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9uaWNlLAotCQkJCW9zX2RhdGEtPm9zX2NwdVtpXS5wZXJfY3B1X3N5c3RlbSwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9pZGxlLAotCQkJCW9zX2RhdGEtPm9zX2NwdVtpXS5wZXJfY3B1X2lycSwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9zb2Z0aXJxLAotCQkJCW9zX2RhdGEtPm9zX2NwdVtpXS5wZXJfY3B1X2lvd2FpdCwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9zdGVhbCk7Ci0JfQotCi0JUF9ERUJVRygic3luY19jb3VudF8xID0gJXVcbiIsIG9zX2RhdGEtPnN5bmNfY291bnRfMSk7Ci0JUF9ERUJVRygic3luY19jb3VudF8yID0gJXVcbiIsIG9zX2RhdGEtPnN5bmNfY291bnRfMik7Ci0JUF9ERUJVRygidGltZXN0YW1wICAgID0gJWxYXG4iLCBvc19kYXRhLT50aW1lc3RhbXApOwotfQotCiAvKgogICogYXBwbGRhdGFfZ2V0X29zX2RhdGEoKQogICoKQEAgLTE4MCwxMyArMTQyLDEwIEBACiAJCQkJCSAgIEFQUExEQVRBX1NUQVJUX0lOVEVSVkFMX1JFQywKIAkJCQkJICAgKHVuc2lnbmVkIGxvbmcpIG9wcy5kYXRhLCBuZXdfc2l6ZSwKIAkJCQkJICAgb3BzLm1vZF9sdmwpOwotCQkJaWYgKHJjICE9IDApIHsKKwkJCWlmIChyYyAhPSAwKQogCQkJCVBfRVJST1IoIm9zOiBTVEFSVCBORVcgRElBRyAweERDIGZhaWxlZCwgIgogCQkJCQkicmV0dXJuIGNvZGU6ICVkLCBuZXcgc2l6ZSA9ICVpXG4iLCByYywKIAkJCQkJbmV3X3NpemUpOwotCQkJCVBfSU5GTygib3M6IHN0b3BwaW5nIG9sZCByZWNvcmQgbm93XG4iKTsKLQkJCX0gZWxzZQotCQkJCVBfSU5GTygib3M6IG5ldyByZWNvcmQgc2l6ZSA9ICVpXG4iLCBuZXdfc2l6ZSk7CiAKIAkJCXJjID0gYXBwbGRhdGFfZGlhZyhBUFBMREFUQV9SRUNPUkRfT1NfSUQsCiAJCQkJCSAgIEFQUExEQVRBX1NUT1BfUkVDLApAQCAtMjA0LDkgKzE2Myw2IEBACiAJfQogCW9zX2RhdGEtPnRpbWVzdGFtcCA9IGdldF9jbG9jaygpOwogCW9zX2RhdGEtPnN5bmNfY291bnRfMisrOwotI2lmZGVmIEFQUExEQVRBX0RFQlVHCi0JYXBwbGRhdGFfcHJpbnRfZGVidWcob3NfZGF0YSk7Ci0jZW5kaWYKIH0KIAogCkBAIC0yMjcsMTIgKzE4Myw5IEBACiAJCXJjID0gLUVOT01FTTsKIAkJZ290byBvdXQ7CiAJfQotCVBfREVCVUcoIm1heC4gc2l6ZW9mKG9zKSA9ICVpLCBzaXplb2Yob3NfY3B1KSA9ICVsdVxuIiwgbWF4X3NpemUsCi0JCXNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfb3NfcGVyX2NwdSkpOwogCiAJYXBwbGRhdGFfb3NfZGF0YSA9IGt6YWxsb2MobWF4X3NpemUsIEdGUF9ETUEpOwogCWlmIChhcHBsZGF0YV9vc19kYXRhID09IE5VTEwpIHsKLQkJUF9FUlJPUigiTm8gbWVtb3J5IGZvciAlcyFcbiIsIG9wcy5uYW1lKTsKIAkJcmMgPSAtRU5PTUVNOwogCQlnb3RvIG91dDsKIAl9CkBAIC0yNDAsMTcgKzE5MywxMiBAQAogCWFwcGxkYXRhX29zX2RhdGEtPnBlcl9jcHVfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfb3NfcGVyX2NwdSk7CiAJYXBwbGRhdGFfb3NfZGF0YS0+Y3B1X29mZnNldCAgID0gb2Zmc2V0b2Yoc3RydWN0IGFwcGxkYXRhX29zX2RhdGEsCiAJCQkJCQkJb3NfY3B1KTsKLQlQX0RFQlVHKCJjcHUgb2Zmc2V0ID0gJXVcbiIsIGFwcGxkYXRhX29zX2RhdGEtPmNwdV9vZmZzZXQpOwogCiAJb3BzLmRhdGEgPSBhcHBsZGF0YV9vc19kYXRhOwogCW9wcy5jYWxsYmFjayAgPSAmYXBwbGRhdGFfZ2V0X29zX2RhdGE7CiAJcmMgPSBhcHBsZGF0YV9yZWdpc3Rlcl9vcHMoJm9wcyk7Ci0JaWYgKHJjICE9IDApIHsKLQkJUF9FUlJPUigiRXJyb3IgcmVnaXN0ZXJpbmcgb3BzLCByYyA9ICVpXG4iLCByYyk7CisJaWYgKHJjICE9IDApCiAJCWtmcmVlKGFwcGxkYXRhX29zX2RhdGEpOwotCX0gZWxzZSB7Ci0JCVBfREVCVUcoIiVzLW9wcyByZWdpc3RlcmVkIVxuIiwgb3BzLm5hbWUpOwotCX0KIG91dDoKIAlyZXR1cm4gcmM7CiB9CkBAIC0yNjQsNyArMjEyLDYgQEAKIHsKIAlhcHBsZGF0YV91bnJlZ2lzdGVyX29wcygmb3BzKTsKIAlrZnJlZShhcHBsZGF0YV9vc19kYXRhKTsKLQlQX0RFQlVHKCIlcy1vcHMgdW5yZWdpc3RlcmVkIVxuIiwgb3BzLm5hbWUpOwogfQogCiAKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9jcnlwdG8vY3J5cHRfczM5MC5oIGIvYXJjaC9zMzkwL2NyeXB0by9jcnlwdF9zMzkwLmgKaW5kZXggOTk5MmY5NS4uMGVmOTgyOSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2NyeXB0by9jcnlwdF9zMzkwLmgKKysrIGIvYXJjaC9zMzkwL2NyeXB0by9jcnlwdF9zMzkwLmgKQEAgLTI5Niw2ICsyOTYsMTAgQEAKIAl1bnNpZ25lZCBjaGFyIHN0YXR1c1sxNl07CiAJaW50IHJldDsKIAorCS8qIGNoZWNrIGlmIENQQUNGIGZhY2lsaXR5IChiaXQgMTcpIGlzIGF2YWlsYWJsZSAqLworCWlmICghKHN0ZmwoKSAmIDFVTEwgPDwgKDMxIC0gMTcpKSkKKwkJcmV0dXJuIDA7CisKIAlzd2l0Y2ggKGZ1bmMgJiBDUllQVF9TMzkwX09QX01BU0spIHsKIAljYXNlIENSWVBUX1MzOTBfS006CiAJCXJldCA9IGNyeXB0X3MzOTBfa20oS01fUVVFUlksICZzdGF0dXMsIE5VTEwsIE5VTEwsIDApOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2NyeXB0by9wcm5nLmMgYi9hcmNoL3MzOTAvY3J5cHRvL3BybmcuYwppbmRleCAwY2ZlZmRkLi5lY2E3MjRkIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvY3J5cHRvL3BybmcuYworKysgYi9hcmNoL3MzOTAvY3J5cHRvL3BybmcuYwpAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgpAQCAtNDgsNiArNDksNyBAQAogCiBzdGF0aWMgaW50IHBybmdfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKIH0KIApAQCAtMTg1LDExICsxODcsOCBAQAogCXBybmdfc2VlZCgxNik7CiAKIAlyZXQgPSBtaXNjX3JlZ2lzdGVyKCZwcm5nX2Rldik7Ci0JaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HCi0JCSAgICAgICAiQ291bGQgbm90IHJlZ2lzdGVyIG1pc2MgZGV2aWNlIGZvciBQUk5HLlxuIik7CisJaWYgKHJldCkKIAkJZ290byBvdXRfYnVmOwotCX0KIAlyZXR1cm4gMDsKIAogb3V0X2J1ZjoKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9oeXBmcy9pbm9kZS5jIGIvYXJjaC9zMzkwL2h5cGZzL2lub2RlLmMKaW5kZXggNGIwMTBmZi4uNzM4Mzc4MSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2h5cGZzL2lub2RlLmMKKysrIGIvYXJjaC9zMzkwL2h5cGZzL2lub2RlLmMKQEAgLTE1MCwzMyArMTUwLDI0IEBACiAJCQkgICAgICB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsIGxvZmZfdCBvZmZzZXQpCiB7CiAJY2hhciAqZGF0YTsKLQlzaXplX3QgbGVuOworCXNzaXplX3QgcmV0OwogCXN0cnVjdCBmaWxlICpmaWxwID0gaW9jYi0+a2lfZmlscDsKIAkvKiBYWFg6IHRlbXBvcmFyeSAqLwogCWNoYXIgX191c2VyICpidWYgPSBpb3ZbMF0uaW92X2Jhc2U7CiAJc2l6ZV90IGNvdW50ID0gaW92WzBdLmlvdl9sZW47CiAKLQlpZiAobnJfc2VncyAhPSAxKSB7Ci0JCWNvdW50ID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7Ci0JfQorCWlmIChucl9zZWdzICE9IDEpCisJCXJldHVybiAtRUlOVkFMOwogCiAJZGF0YSA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQlsZW4gPSBzdHJsZW4oZGF0YSk7Ci0JaWYgKG9mZnNldCA+IGxlbikgewotCQljb3VudCA9IDA7Ci0JCWdvdG8gb3V0OwotCX0KLQlpZiAoY291bnQgPiBsZW4gLSBvZmZzZXQpCi0JCWNvdW50ID0gbGVuIC0gb2Zmc2V0OwotCWlmIChjb3B5X3RvX3VzZXIoYnVmLCBkYXRhICsgb2Zmc2V0LCBjb3VudCkpIHsKLQkJY291bnQgPSAtRUZBVUxUOwotCQlnb3RvIG91dDsKLQl9Ci0JaW9jYi0+a2lfcG9zICs9IGNvdW50OworCXJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsICZvZmZzZXQsIGRhdGEsIHN0cmxlbihkYXRhKSk7CisJaWYgKHJldCA8PSAwKQorCQlyZXR1cm4gcmV0OworCisJaW9jYi0+a2lfcG9zICs9IHJldDsKIAlmaWxlX2FjY2Vzc2VkKGZpbHApOwotb3V0OgotCXJldHVybiBjb3VudDsKKworCXJldHVybiByZXQ7CiB9CiBzdGF0aWMgc3NpemVfdCBoeXBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgbnJfc2VncywgbG9mZl90IG9mZnNldCkKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL3MzOTAva2VybmVsL01ha2VmaWxlCmluZGV4IDYzMDJmNTAuLjUwZjY1N2UgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGUKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9NYWtlZmlsZQpAQCAtNyw5ICs3LDE0IEBACiAjCiBDRkxBR1Nfc21wLm8JOj0gLVduby1ub25udWxsCiAKKyMKKyMgUGFzcyBVVFNfTUFDSElORSBmb3IgdXNlcl9yZWdzZXQgZGVmaW5pdGlvbgorIworQ0ZMQUdTX3B0cmFjZS5vCQkrPSAtRFVUU19NQUNISU5FPSciJChVVFNfTUFDSElORSkiJworCiBvYmoteQk6PSAgYml0bWFwLm8gdHJhcHMubyB0aW1lLm8gcHJvY2Vzcy5vIGJhc2UubyBlYXJseS5vIFwKICAgICAgICAgICAgIHNldHVwLm8gc3lzX3MzOTAubyBwdHJhY2UubyBzaWduYWwubyBjcGNtZC5vIGViY2RpYy5vIFwKLQkgICAgczM5MF9leHQubyBkZWJ1Zy5vIGlycS5vIGlwbC5vIGRpcy5vIGRpYWcubworCSAgICBzMzkwX2V4dC5vIGRlYnVnLm8gaXJxLm8gaXBsLm8gZGlzLm8gZGlhZy5vIG1lbV9kZXRlY3QubwogCiBvYmoteQkrPSAkKGlmICQoQ09ORklHXzY0QklUKSxlbnRyeTY0Lm8sZW50cnkubykKIG9iai15CSs9ICQoaWYgJChDT05GSUdfNjRCSVQpLHJlaXBsNjQubyxyZWlwbC5vKQpAQCAtMjMsNyArMjgsNyBAQAogY29tcGF0LW9iai0kKENPTkZJR19BVURJVCkJKz0gY29tcGF0X2F1ZGl0Lm8KIG9iai0kKENPTkZJR19DT01QQVQpCQkrPSBjb21wYXRfbGludXgubyBjb21wYXRfc2lnbmFsLm8gXAogCQkJCQljb21wYXRfd3JhcHBlci5vIGNvbXBhdF9leGVjX2RvbWFpbi5vIFwKLQkJCQkJYmluZm10X2VsZjMyLm8gJChjb21wYXQtb2JqLXkpCisJCQkJCSQoY29tcGF0LW9iai15KQogCiBvYmotJChDT05GSUdfVklSVF9USU1FUikJKz0gdnRpbWUubwogb2JqLSQoQ09ORklHX1NUQUNLVFJBQ0UpCSs9IHN0YWNrdHJhY2UubwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9iaW5mbXRfZWxmMzIuYyBiL2FyY2gvczM5MC9rZXJuZWwvYmluZm10X2VsZjMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlMWMzMTUuLjAwMDAwMDAKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9iaW5mbXRfZWxmMzIuYworKysgL2Rldi9udWxsCkBAIC0xLDIxNCArMCwwIEBACi0vKgotICogU3VwcG9ydCBmb3IgMzItYml0IExpbnV4IGZvciBTMzkwIEVMRiBiaW5hcmllcy4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDAgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsIElCTSBDb3Jwb3JhdGlvbgotICogQXV0aG9yKHMpOiBHZXJoYXJkIFRvbm4gKHRvbkBkZS5pYm0uY29tKQotICoKLSAqIEhlYXZpbHkgaW5zcGlyZWQgYnkgdGhlIDMyLWJpdCBTcGFyYyBjb21wYXQgY29kZSB3aGljaCBpcwotICogQ29weXJpZ2h0IChDKSAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4IERhdmlkIFMuIE1pbGxlciAoZGF2ZW1AcmVkaGF0LmNvbSkKLSAqIENvcHlyaWdodCAoQykgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCBKYWt1YiBKZWxpbmVrICAgKGpqQHVsdHJhLmxpbnV4LmN6KQotICovCi0KLSNkZWZpbmUgX19BU01TMzkwX0VMRl9ICi0KLSNpbmNsdWRlIDxsaW51eC90aW1lLmg+Ci0KLS8qCi0gKiBUaGVzZSBhcmUgdXNlZCB0byBzZXQgcGFyYW1ldGVycyBpbiB0aGUgY29yZSBkdW1wcy4KLSAqLwotI2RlZmluZSBFTEZfQ0xBU1MJRUxGQ0xBU1MzMgotI2RlZmluZSBFTEZfREFUQQlFTEZEQVRBMk1TQgotI2RlZmluZSBFTEZfQVJDSAlFTV9TMzkwCi0KLS8qCi0gKiBUaGlzIGlzIHVzZWQgdG8gZW5zdXJlIHdlIGRvbid0IGxvYWQgc29tZXRoaW5nIGZvciB0aGUgd3JvbmcgYXJjaGl0ZWN0dXJlLgotICovCi0jZGVmaW5lIGVsZl9jaGVja19hcmNoKHgpIFwKLQkoKCh4KS0+ZV9tYWNoaW5lID09IEVNX1MzOTAgfHwgKHgpLT5lX21hY2hpbmUgPT0gRU1fUzM5MF9PTEQpIFwKLSAgICAgICAgICYmICh4KS0+ZV9pZGVudFtFSV9DTEFTU10gPT0gRUxGX0NMQVNTKQotCi0vKiBFTEYgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgTlVNX0dQUlMgICAgICAxNgotI2RlZmluZSBOVU1fRlBSUyAgICAgIDE2Ci0jZGVmaW5lIE5VTV9BQ1JTICAgICAgMTYgICAgCi0KLS8qIEZvciBTVlI0L1MzOTAgdGhlIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYmUgcmVnaXN0ZXJlZCB3aXRoIGBhdGV4aXRgIGlzCi0gICBwYXNzZWQgaW4gUjE0LiAqLwotI2RlZmluZSBFTEZfUExBVF9JTklUKF9yLCBsb2FkX2FkZHIpIFwKLQlkbyB7IFwKLQkJX3ItPmdwcnNbMTRdID0gMDsgXAotCX0gd2hpbGUoMCkKLQotI2RlZmluZSBVU0VfRUxGX0NPUkVfRFVNUAotI2RlZmluZSBFTEZfRVhFQ19QQUdFU0laRSAgICAgICA0MDk2Ci0KLS8qIFRoaXMgaXMgdGhlIGxvY2F0aW9uIHRoYXQgYW4gRVRfRFlOIHByb2dyYW0gaXMgbG9hZGVkIGlmIGV4ZWMnZWQuICBUeXBpY2FsCi0gICB1c2Ugb2YgdGhpcyBpcyB0byBpbnZva2UgIi4vbGQuc28gc29tZXByb2ciIHRvIHRlc3Qgb3V0IGEgbmV3IHZlcnNpb24gb2YKLSAgIHRoZSBsb2FkZXIuICBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGl0IGlzIG91dCBvZiB0aGUgd2F5IG9mIHRoZSBwcm9ncmFtCi0gICB0aGF0IGl0IHdpbGwgImV4ZWMiLCBhbmQgdGhhdCB0aGVyZSBpcyBzdWZmaWNpZW50IHJvb20gZm9yIHRoZSBicmsuICAqLwotCi0jZGVmaW5lIEVMRl9FVF9EWU5fQkFTRSAgICAgICAgIChUQVNLX1NJWkUgLyAzICogMikKLQotLyogV293LCB0aGUgIm1haW4iIGFyY2ggbmVlZHMgYXJjaCBkZXBlbmRlbnQgZnVuY3Rpb25zIHRvby4uIDopICovCi0KLS8qIHJlZ3MgaXMgc3RydWN0IHB0X3JlZ3MsIHByX3JlZyBpcyBlbGZfZ3JlZ3NldF90ICh3aGljaCBpcwotICAgbm93IHN0cnVjdF91c2VyX3JlZ3MsIHRoZXkgYXJlIGRpZmZlcmVudCkgKi8KLQotI2RlZmluZSBFTEZfQ09SRV9DT1BZX1JFR1MocHJfcmVnLCByZWdzKSBkdW1wX3JlZ3MzMihyZWdzLCAmcHJfcmVnKTsKLQotI2RlZmluZSBFTEZfQ09SRV9DT1BZX1RBU0tfUkVHUyh0c2ssIHJlZ3MpIGR1bXBfdGFza19yZWdzMzIodHNrLCByZWdzKQotCi0jZGVmaW5lIEVMRl9DT1JFX0NPUFlfRlBSRUdTKHRzaywgZnByZWdzKSBkdW1wX3Rhc2tfZnB1KHRzaywgZnByZWdzKQotCi0vKiBUaGlzIHlpZWxkcyBhIG1hc2sgdGhhdCB1c2VyIHByb2dyYW1zIGNhbiB1c2UgdG8gZmlndXJlIG91dCB3aGF0Ci0gICBpbnN0cnVjdGlvbiBzZXQgdGhpcyBDUFUgc3VwcG9ydHMuICovCi0KLSNkZWZpbmUgRUxGX0hXQ0FQICgwKQotCi0vKiBUaGlzIHlpZWxkcyBhIHN0cmluZyB0aGF0IGxkLnNvIHdpbGwgdXNlIHRvIGxvYWQgaW1wbGVtZW50YXRpb24KLSAgIHNwZWNpZmljIGxpYnJhcmllcyBmb3Igb3B0aW1pemF0aW9uLiAgVGhpcyBpcyBtb3JlIHNwZWNpZmljIGluCi0gICBpbnRlbnQgdGhhbiBwb2tpbmcgYXQgdW5hbWUgb3IgL3Byb2MvY3B1aW5mby4KLQotICAgRm9yIHRoZSBtb21lbnQsIHdlIGhhdmUgb25seSBvcHRpbWl6YXRpb25zIGZvciB0aGUgSW50ZWwgZ2VuZXJhdGlvbnMsCi0gICBidXQgdGhhdCBjb3VsZCBjaGFuZ2UuLi4gKi8KLQotI2RlZmluZSBFTEZfUExBVEZPUk0gKE5VTEwpCi0KLSNkZWZpbmUgU0VUX1BFUlNPTkFMSVRZKGV4LCBpYmNzMikJCQlcCi1kbyB7CQkJCQkJCVwKLQlpZiAoaWJjczIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0JCXNldF9wZXJzb25hbGl0eShQRVJfU1ZSNCk7ICAgICAgICAgICAgICBcCi0JZWxzZSBpZiAoY3VycmVudC0+cGVyc29uYWxpdHkgIT0gUEVSX0xJTlVYMzIpICAgXAotCQlzZXRfcGVyc29uYWxpdHkoUEVSX0xJTlVYKTsgICAgICAgICAgICAgXAotCXNldF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpOwkJCVwKLX0gd2hpbGUgKDApCi0KLSNpbmNsdWRlICJjb21wYXRfbGludXguaCIKLQotdHlwZWRlZiBfczM5MF9mcF9yZWdzMzIgZWxmX2ZwcmVnc2V0X3Q7Ci0KLXR5cGVkZWYgc3RydWN0Ci17Ci0JCi0JX3Bzd190MzIJcHN3OwotCV9fdTMyCQlncHJzW19fTlVNX0dQUlNdOyAKLQlfX3UzMgkJYWNyc1tfX05VTV9BQ1JTXTsgCi0JX191MzIJCW9yaWdfZ3ByMjsKLX0gczM5MF9yZWdzMzI7Ci10eXBlZGVmIHMzOTBfcmVnczMyIGVsZl9ncmVnc2V0X3Q7Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bXBfcmVnczMyKHN0cnVjdCBwdF9yZWdzICpwdHJlZ3MsIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0JaW50IGk7Ci0KLQltZW1jcHkoJnJlZ3MtPnBzdy5tYXNrLCAmcHRyZWdzLT5wc3cubWFzaywgNCk7Ci0JbWVtY3B5KCZyZWdzLT5wc3cuYWRkciwgKGNoYXIgKikmcHRyZWdzLT5wc3cuYWRkciArIDQsIDQpOwotCWZvciAoaSA9IDA7IGkgPCBOVU1fR1BSUzsgaSsrKQotCQlyZWdzLT5ncHJzW2ldID0gcHRyZWdzLT5ncHJzW2ldOwotCXNhdmVfYWNjZXNzX3JlZ3MocmVncy0+YWNycyk7Ci0JcmVncy0+b3JpZ19ncHIyID0gcHRyZWdzLT5vcmlnX2dwcjI7Ci0JcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bXBfdGFza19yZWdzMzIoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0Jc3RydWN0IHB0X3JlZ3MgKnB0cmVncyA9IHRhc2tfcHRfcmVncyh0c2spOwotCWludCBpOwotCi0JbWVtY3B5KCZyZWdzLT5wc3cubWFzaywgJnB0cmVncy0+cHN3Lm1hc2ssIDQpOwotCW1lbWNweSgmcmVncy0+cHN3LmFkZHIsIChjaGFyICopJnB0cmVncy0+cHN3LmFkZHIgKyA0LCA0KTsKLQlmb3IgKGkgPSAwOyBpIDwgTlVNX0dQUlM7IGkrKykKLQkJcmVncy0+Z3Byc1tpXSA9IHB0cmVncy0+Z3Byc1tpXTsKLQltZW1jcHkocmVncy0+YWNycywgdHNrLT50aHJlYWQuYWNycywgc2l6ZW9mKHJlZ3MtPmFjcnMpKTsKLQlyZWdzLT5vcmlnX2dwcjIgPSBwdHJlZ3MtPm9yaWdfZ3ByMjsKLQlyZXR1cm4gMTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZHVtcF90YXNrX2ZwdShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgZWxmX2ZwcmVnc2V0X3QgKmZwcmVncykKLXsKLQlpZiAodHNrID09IGN1cnJlbnQpCi0JCXNhdmVfZnBfcmVncygoczM5MF9mcF9yZWdzICopIGZwcmVncyk7Ci0JZWxzZQotCQltZW1jcHkoZnByZWdzLCAmdHNrLT50aHJlYWQuZnBfcmVncywgc2l6ZW9mKGVsZl9mcHJlZ3NldF90KSk7Ci0JcmV0dXJuIDE7Ci19Ci0KLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9lbGZjb3JlLmg+Ci0jaW5jbHVkZSA8bGludXgvYmluZm10cy5oPgotI2luY2x1ZGUgPGxpbnV4L2NvbXBhdC5oPgotCi0jZGVmaW5lIGVsZl9wcnN0YXR1cyBlbGZfcHJzdGF0dXMzMgotc3RydWN0IGVsZl9wcnN0YXR1czMyCi17Ci0Jc3RydWN0IGVsZl9zaWdpbmZvIHByX2luZm87CS8qIEluZm8gYXNzb2NpYXRlZCB3aXRoIHNpZ25hbCAqLwotCXNob3J0CXByX2N1cnNpZzsJCS8qIEN1cnJlbnQgc2lnbmFsICovCi0JdTMyCXByX3NpZ3BlbmQ7CS8qIFNldCBvZiBwZW5kaW5nIHNpZ25hbHMgKi8KLQl1MzIJcHJfc2lnaG9sZDsJLyogU2V0IG9mIGhlbGQgc2lnbmFscyAqLwotCXBpZF90CXByX3BpZDsKLQlwaWRfdAlwcl9wcGlkOwotCXBpZF90CXByX3BncnA7Ci0JcGlkX3QJcHJfc2lkOwotCXN0cnVjdCBjb21wYXRfdGltZXZhbCBwcl91dGltZTsJLyogVXNlciB0aW1lICovCi0Jc3RydWN0IGNvbXBhdF90aW1ldmFsIHByX3N0aW1lOwkvKiBTeXN0ZW0gdGltZSAqLwotCXN0cnVjdCBjb21wYXRfdGltZXZhbCBwcl9jdXRpbWU7CS8qIEN1bXVsYXRpdmUgdXNlciB0aW1lICovCi0Jc3RydWN0IGNvbXBhdF90aW1ldmFsIHByX2NzdGltZTsJLyogQ3VtdWxhdGl2ZSBzeXN0ZW0gdGltZSAqLwotCWVsZl9ncmVnc2V0X3QgcHJfcmVnOwkvKiBHUCByZWdpc3RlcnMgKi8KLQlpbnQgcHJfZnB2YWxpZDsJCS8qIFRydWUgaWYgbWF0aCBjby1wcm9jZXNzb3IgYmVpbmcgdXNlZC4gICovCi19OwotCi0jZGVmaW5lIGVsZl9wcnBzaW5mbyBlbGZfcHJwc2luZm8zMgotc3RydWN0IGVsZl9wcnBzaW5mbzMyCi17Ci0JY2hhcglwcl9zdGF0ZTsJLyogbnVtZXJpYyBwcm9jZXNzIHN0YXRlICovCi0JY2hhcglwcl9zbmFtZTsJLyogY2hhciBmb3IgcHJfc3RhdGUgKi8KLQljaGFyCXByX3pvbWI7CS8qIHpvbWJpZSAqLwotCWNoYXIJcHJfbmljZTsJLyogbmljZSB2YWwgKi8KLQl1MzIJcHJfZmxhZzsJLyogZmxhZ3MgKi8KLQl1MTYJcHJfdWlkOwotCXUxNglwcl9naWQ7Ci0JcGlkX3QJcHJfcGlkLCBwcl9wcGlkLCBwcl9wZ3JwLCBwcl9zaWQ7Ci0JLyogTG90cyBtaXNzaW5nICovCi0JY2hhcglwcl9mbmFtZVsxNl07CS8qIGZpbGVuYW1lIG9mIGV4ZWN1dGFibGUgKi8KLQljaGFyCXByX3BzYXJnc1tFTEZfUFJBUkdTWl07CS8qIGluaXRpYWwgcGFydCBvZiBhcmcgbGlzdCAqLwotfTsKLQotI2luY2x1ZGUgPGxpbnV4L2hpZ2h1aWQuaD4KLQotLyoKLSNkZWZpbmUgaW5pdF9lbGZfYmluZm10IGluaXRfZWxmMzJfYmluZm10Ci0qLwotCi0jdW5kZWYgc3RhcnRfdGhyZWFkCi0jZGVmaW5lIHN0YXJ0X3RocmVhZCAgICAgICAgICAgICAgICAgICAgc3RhcnRfdGhyZWFkMzEgCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzdGFydF90aHJlYWQzMShzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyBuZXdfcHN3LAotCQkJCSAgdW5zaWduZWQgbG9uZyBuZXdfc3RhY2twKQotewotCXNldF9mcyhVU0VSX0RTKTsKLQlyZWdzLT5wc3cubWFzawk9IHBzd191c2VyMzJfYml0czsKLQlyZWdzLT5wc3cuYWRkcgk9IG5ld19wc3c7Ci0JcmVncy0+Z3Byc1sxNV0JPSBuZXdfc3RhY2twOwotCWNyc3RfdGFibGVfZG93bmdyYWRlKGN1cnJlbnQtPm1tLCAxVUwgPDwgMzEpOwotfQotCi1NT0RVTEVfREVTQ1JJUFRJT04oIkJpbmFyeSBmb3JtYXQgbG9hZGVyIGZvciBjb21wYXRpYmlsaXR5IHdpdGggMzJiaXQgTGludXggZm9yIFMzOTAgYmluYXJpZXMsIgotICAgICAgICAgICAgICAgICAgICIgQ29weXJpZ2h0IDIwMDAgSUJNIENvcnBvcmF0aW9uIik7IAotTU9EVUxFX0FVVEhPUigiR2VyaGFyZCBUb25uIDx0b25AZGUuaWJtLmNvbT4iKTsKLQotI3VuZGVmIE1PRFVMRV9ERVNDUklQVElPTgotI3VuZGVmIE1PRFVMRV9BVVRIT1IKLQotI3VuZGVmIGNwdXRpbWVfdG9fdGltZXZhbAotI2RlZmluZSBjcHV0aW1lX3RvX3RpbWV2YWwgY3B1dGltZV90b19jb21wYXRfdGltZXZhbAotc3RhdGljIGlubGluZSB2b2lkCi1jcHV0aW1lX3RvX2NvbXBhdF90aW1ldmFsKGNvbnN0IGNwdXRpbWVfdCBjcHV0aW1lLCBzdHJ1Y3QgY29tcGF0X3RpbWV2YWwgKnZhbHVlKQotewotCXZhbHVlLT50dl91c2VjID0gY3B1dGltZSAlIDEwMDAwMDA7Ci0JdmFsdWUtPnR2X3NlYyA9IGNwdXRpbWUgLyAxMDAwMDAwOwotfQotCi0jaW5jbHVkZSAiLi4vLi4vLi4vZnMvYmluZm10X2VsZi5jIgotCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2NvbXBhdF9wdHJhY2UuaCBiL2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X3B0cmFjZS5oCmluZGV4IDQxOWFlZjkuLmNkZTgxZmEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X3B0cmFjZS5oCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X3B0cmFjZS5oCkBAIC0xLDcgKzEsNyBAQAogI2lmbmRlZiBfUFRSQUNFMzJfSAogI2RlZmluZSBfUFRSQUNFMzJfSAogCi0jaW5jbHVkZSAiY29tcGF0X2xpbnV4LmgiICAvKiBuZWVkZWQgZm9yIF9wc3dfdDMyICovCisjaW5jbHVkZSAiY29tcGF0X2xpbnV4LmgiICAvKiBuZWVkZWQgZm9yIHBzd19jb21wYXRfdCAqLwogCiB0eXBlZGVmIHN0cnVjdCB7CiAJX191MzIgY3JbM107CkBAIC0zOCw3ICszOCw3IEBACiAKIHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0MzIKIHsKLQlfcHN3X3QzMiBwc3c7CisJcHN3X2NvbXBhdF90IHBzdzsKIAl1MzIgZ3Byc1tOVU1fR1BSU107CiAJdTMyIGFjcnNbTlVNX0FDUlNdOwogCXUzMiBvcmlnX2dwcjI7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2RlYnVnLmMgYi9hcmNoL3MzOTAva2VybmVsL2RlYnVnLmMKaW5kZXggYzkzZDEyOS4uZDgwZmNkNCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9kZWJ1Zy5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvZGVidWcuYwpAQCAtMTA3OSw3ICsxMDc5LDYgQEAKIAlzMzkwZGJmX3N5c2N0bF9oZWFkZXIgPSByZWdpc3Rlcl9zeXNjdGxfdGFibGUoczM5MGRiZl9kaXJfdGFibGUpOwogCW11dGV4X2xvY2soJmRlYnVnX211dGV4KTsKIAlkZWJ1Z19kZWJ1Z2ZzX3Jvb3RfZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoREVCVUdfRElSX1JPT1QsTlVMTCk7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiZGVidWc6IEluaXRpYWxpemF0aW9uIGNvbXBsZXRlXG4iKTsKIAlpbml0aWFsaXplZCA9IDE7CiAJbXV0ZXhfdW5sb2NrKCZkZWJ1Z19tdXRleCk7CiAKQEAgLTExOTMsNyArMTE5Miw2IEBACiAJZm9yKDsgaXNzcGFjZSgqYnVmKTsgYnVmKyspOwogCXJjID0gc2ltcGxlX3N0cnRvdWwoYnVmLCAmYnVmLCAxMCk7CiAJaWYoKmJ1Zil7Ci0JCXByaW50aygiZGVidWc6IG5vIGludGVnZXIgc3BlY2lmaWVkIVxuIik7CiAJCXJjID0gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIHJjOwpAQCAtMTM0MCwxOSArMTMzOCwxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgCW1lbXNldChpZC0+YXJlYXNbaV1bal0sIDAsIFBBR0VfU0laRSk7CiAJCQl9CiAJCX0KLSAgICAgICAgICAgICAgICBwcmludGsoS0VSTl9JTkZPICJkZWJ1ZzogJXM6IGFsbCBhcmVhcyBmbHVzaGVkXG4iLGlkLT5uYW1lKTsKICAgICAgICAgfSBlbHNlIGlmKGFyZWEgPj0gMCAmJiBhcmVhIDwgaWQtPm5yX2FyZWFzKSB7CiAgICAgICAgICAgICAgICAgaWQtPmFjdGl2ZV9lbnRyaWVzW2FyZWFdID0gMDsKIAkJaWQtPmFjdGl2ZV9wYWdlc1thcmVhXSA9IDA7CiAJCWZvcihpID0gMDsgaSA8IGlkLT5wYWdlc19wZXJfYXJlYTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgCW1lbXNldChpZC0+YXJlYXNbYXJlYV1baV0sMCxQQUdFX1NJWkUpOwogCQl9Ci0gICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiZGVidWc6ICVzOiBhcmVhICVpIGhhcyBiZWVuIGZsdXNoZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBpZC0+bmFtZSwgYXJlYSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTwotICAgICAgICAgICAgICAgICAgICAgICJkZWJ1ZzogJXM6IGFyZWEgJWkgY2Fubm90IGJlIGZsdXNoZWQgKHJhbmdlOiAlaSAtICVpKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlkLT5uYW1lLCBhcmVhLCAwLCBpZC0+bnJfYXJlYXMtMSk7CiAgICAgICAgIH0KICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaWQtPmxvY2ssZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9lYXJseS5jIGIvYXJjaC9zMzkwL2tlcm5lbC9lYXJseS5jCmluZGV4IGQwZTA5NjguLjJhMmNhMjYgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvZWFybHkuYworKysgYi9hcmNoL3MzOTAva2VybmVsL2Vhcmx5LmMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wZm4uaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL2ViY2RpYy5oPgogI2luY2x1ZGUgPGFzbS9pcGwuaD4KICNpbmNsdWRlIDxhc20vbG93Y29yZS5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KQEAgLTI2LDEyICsyNyw0MCBAQAogLyoKICAqIENyZWF0ZSBhIEtlcm5lbCBOU1MgaWYgdGhlIFNBVkVTWVM9IHBhcmFtZXRlciBpcyBkZWZpbmVkCiAgKi8KLSNkZWZpbmUgREVGU1lTX0NNRF9TSVpFCQk5NgorI2RlZmluZSBERUZTWVNfQ01EX1NJWkUJCTEyOAogI2RlZmluZSBTQVZFU1lTX0NNRF9TSVpFCTMyCiAKIGNoYXIga2VybmVsX25zc19uYW1lW05TU19OQU1FX1NJWkUgKyAxXTsKIAorc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2Jvb3RfY29tbWFuZF9saW5lKHZvaWQpOworCisKICNpZmRlZiBDT05GSUdfU0hBUkVEX0tFUk5FTAoraW50IF9faW5pdCBzYXZlc3lzX2lwbF9uc3MoY2hhciAqY21kLCBjb25zdCBpbnQgY21kbGVuKTsKKworYXNtKAorCSIJLnNlY3Rpb24gLmluaXQudGV4dCxcImF4XCIsQHByb2diaXRzXG4iCisJIgkuYWxpZ24JNFxuIgorCSIJLnR5cGUJc2F2ZXN5c19pcGxfbnNzLCBAZnVuY3Rpb25cbiIKKwkic2F2ZXN5c19pcGxfbnNzOlxuIgorI2lmZGVmIENPTkZJR182NEJJVAorCSIJc3RtZwk2LDE1LDQ4KDE1KVxuIgorCSIJbGdyCTE0LDNcbiIKKwkiCXNhbTMxXG4iCisJIglkaWFnCTIsMTQsMHg4XG4iCisJIglzYW02NFxuIgorCSIJbGdyCTIsMTRcbiIKKwkiCWxtZwk2LDE1LDQ4KDE1KVxuIgorI2Vsc2UKKwkiCXN0bQk2LDE1LDI0KDE1KVxuIgorCSIJbHIJMTQsM1xuIgorCSIJZGlhZwkyLDE0LDB4OFxuIgorCSIJbHIJMiwxNFxuIgorCSIJbG0JNiwxNSwyNCgxNSlcbiIKKyNlbmRpZgorCSIJYnIJMTRcbiIKKwkiCS5zaXplCXNhdmVzeXNfaXBsX25zcywgLi1zYXZlc3lzX2lwbF9uc3NcbiIpOworCiBzdGF0aWMgbm9pbmxpbmUgX19pbml0IHZvaWQgY3JlYXRlX2tlcm5lbF9uc3Modm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgaSwgc3RleHRfcGZuLCBlc2hhcmVkX3BmbiwgZW5kX3BmbiwgbWluX3NpemU7CkBAIC0zOSw2ICs2OCw3IEBACiAJdW5zaWduZWQgaW50IHNpbml0cmRfcGZuLCBlaW5pdHJkX3BmbjsKICNlbmRpZgogCWludCByZXNwb25zZTsKKwlzaXplX3QgbGVuOwogCWNoYXIgKnNhdmVzeXNfcHRyOwogCWNoYXIgdXBwZXJfY29tbWFuZF9saW5lW0NPTU1BTkRfTElORV9TSVpFXTsKIAljaGFyIGRlZnN5c19jbWRbREVGU1lTX0NNRF9TSVpFXTsKQEAgLTQ5LDggKzc5LDggQEAKIAkJcmV0dXJuOwogCiAJLyogQ29udmVydCBDT01NQU5EX0xJTkUgdG8gdXBwZXIgY2FzZSAqLwotCWZvciAoaSA9IDA7IGkgPCBzdHJsZW4oQ09NTUFORF9MSU5FKTsgaSsrKQotCQl1cHBlcl9jb21tYW5kX2xpbmVbaV0gPSB0b3VwcGVyKENPTU1BTkRfTElORVtpXSk7CisJZm9yIChpID0gMDsgaSA8IHN0cmxlbihib290X2NvbW1hbmRfbGluZSk7IGkrKykKKwkJdXBwZXJfY29tbWFuZF9saW5lW2ldID0gdG91cHBlcihib290X2NvbW1hbmRfbGluZVtpXSk7CiAKIAlzYXZlc3lzX3B0ciA9IHN0cnN0cih1cHBlcl9jb21tYW5kX2xpbmUsICJTQVZFU1lTPSIpOwogCkBAIC04Myw3ICsxMTMsOCBAQAogCX0KICNlbmRpZgogCi0Jc3ByaW50ZihkZWZzeXNfY21kLCAiJXMgRVcgTUlOU0laRT0lLjdpSyIsIGRlZnN5c19jbWQsIG1pbl9zaXplKTsKKwlzcHJpbnRmKGRlZnN5c19jbWQsICIlcyBFVyBNSU5TSVpFPSUuN2lLIFBBUk1SRUdTPTAtMTMiLAorCQlkZWZzeXNfY21kLCBtaW5fc2l6ZSk7CiAJc3ByaW50ZihzYXZlc3lzX2NtZCwgIlNBVkVTWVMgJXMgXG4gSVBMICVzIiwKIAkJa2VybmVsX25zc19uYW1lLCBrZXJuZWxfbnNzX25hbWUpOwogCkBAIC05NCwxMyArMTI1LDI0IEBACiAJCXJldHVybjsKIAl9CiAKLQlfX2NwY21kKHNhdmVzeXNfY21kLCBOVUxMLCAwLCAmcmVzcG9uc2UpOworCWxlbiA9IHN0cmxlbihzYXZlc3lzX2NtZCk7CisJQVNDRUJDKHNhdmVzeXNfY21kLCBsZW4pOworCXJlc3BvbnNlID0gc2F2ZXN5c19pcGxfbnNzKHNhdmVzeXNfY21kLCBsZW4pOwogCi0JaWYgKHJlc3BvbnNlICE9IHN0cmxlbihzYXZlc3lzX2NtZCkpIHsKKwkvKiBPbiBzdWNjZXNzOiByZXNwb25zZSBpcyBlcXVhbCB0byB0aGUgY29tbWFuZCBzaXplLAorCSAqCSAgICAgICBtYXggU0FWRVNZU19DTURfU0laRQorCSAqIE9uIGVycm9yOiByZXNwb25zZSBjb250YWlucyB0aGUgbnVtZXJpYyBwb3J0aW9uIG9mIGNwIGVycm9yIG1lc3NhZ2UuCisJICoJICAgICBmb3IgU0FWRVNZUyBpdCB3aWxsIGJlID49IDI2MworCSAqLworCWlmIChyZXNwb25zZSA+IFNBVkVTWVNfQ01EX1NJWkUpIHsKIAkJa2VybmVsX25zc19uYW1lWzBdID0gJ1wwJzsKIAkJcmV0dXJuOwogCX0KIAorCS8qIHJlLXNldHVwIGJvb3QgY29tbWFuZCBsaW5lIHdpdGggbmV3IGlwbCB2bSBwYXJtcyAqLworCWlwbF91cGRhdGVfcGFyYW1ldGVycygpOworCXNldHVwX2Jvb3RfY29tbWFuZF9saW5lKCk7CisKIAlpcGxfZmxhZ3MgPSBJUExfTlNTX1ZBTElEOwogfQogCkBAIC0xNDEsMTA5ICsxODMsMTEgQEAKIAlpZiAoY3B1aW5mby0+Y3B1X2lkLnZlcnNpb24gPT0gMHhmZikKIAkJbWFjaGluZV9mbGFncyB8PSBNQUNISU5FX0ZMQUdfVk07CiAKLQkvKiBSdW5uaW5nIG9uIGEgUC8zOTAgPyAqLwotCWlmIChjcHVpbmZvLT5jcHVfaWQubWFjaGluZSA9PSAweDc0OTApCi0JCW1hY2hpbmVfZmxhZ3MgfD0gTUFDSElORV9GTEFHX1AzOTA7Ci0KIAkvKiBSdW5uaW5nIHVuZGVyIEtWTSA/ICovCiAJaWYgKGNwdWluZm8tPmNwdV9pZC52ZXJzaW9uID09IDB4ZmUpCiAJCW1hY2hpbmVfZmxhZ3MgfD0gTUFDSElORV9GTEFHX0tWTTsKIH0KIAotI2lmZGVmIENPTkZJR182NEJJVAotc3RhdGljIG5vaW5saW5lIF9faW5pdCBpbnQgbWVtb3J5X2Zhc3RfZGV0ZWN0KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyB2YWwwID0gMDsKLQl1bnNpZ25lZCBsb25nIHZhbDEgPSAweGM7Ci0JaW50IHJldCA9IC1FTk9TWVM7Ci0KLQlpZiAoaXBsX2ZsYWdzICYgSVBMX05TU19WQUxJRCkKLQkJcmV0dXJuIC1FTk9TWVM7Ci0KLQlhc20gdm9sYXRpbGUoCi0JCSIJZGlhZwklMSwlMiwweDI2MFxuIgotCQkiMDoJbGhpCSUwLDBcbiIKLQkJIjE6XG4iCi0JCUVYX1RBQkxFKDBiLDFiKQotCQk6ICIrZCIgKHJldCksICIrZCIgKHZhbDApLCAiK2QiICh2YWwxKSA6IDogImNjIik7Ci0KLQlpZiAocmV0IHx8IHZhbDAgIT0gdmFsMSkKLQkJcmV0dXJuIC1FTk9TWVM7Ci0KLQltZW1vcnlfY2h1bmtbMF0uc2l6ZSA9IHZhbDAgKyAxOwotCXJldHVybiAwOwotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IG1lbW9yeV9mYXN0X2RldGVjdCh2b2lkKQotewotCXJldHVybiAtRU5PU1lTOwotfQotI2VuZGlmCi0KLXN0YXRpYyBpbmxpbmUgX19pbml0IHVuc2lnbmVkIGxvbmcgX190cHJvdCh1bnNpZ25lZCBsb25nIGFkZHIpCi17Ci0JaW50IGNjID0gLTE7Ci0KLQlhc20gdm9sYXRpbGUoCi0JCSIJdHByb3QJMCglMSksMFxuIgotCQkiMDoJaXBtCSUwXG4iCi0JCSIJc3JsCSUwLDI4XG4iCi0JCSIxOlxuIgotCQlFWF9UQUJMRSgwYiwxYikKLQkJOiAiK2QiIChjYykgOiAiYSIgKGFkZHIpIDogImNjIik7Ci0JcmV0dXJuICh1bnNpZ25lZCBsb25nKWNjOwotfQotCi0vKiBDaGVja2luZyBtZW1vcnkgaW4gMTI4S0IgaW5jcmVtZW50cy4gKi8KLSNkZWZpbmUgQ0hVTktfSU5DUgkoMVVMIDw8IDE3KQotI2RlZmluZSBBRERSMkcJCSgxVUwgPDwgMzEpCi0KLXN0YXRpYyBub2lubGluZSBfX2luaXQgdm9pZCBmaW5kX21lbW9yeV9jaHVua3ModW5zaWduZWQgbG9uZyBtZW1zaXplKQotewotCXVuc2lnbmVkIGxvbmcgYWRkciA9IDAsIG9sZF9hZGRyID0gMDsKLQl1bnNpZ25lZCBsb25nIG9sZF9jYyA9IENIVU5LX1JFQURfV1JJVEU7Ci0JdW5zaWduZWQgbG9uZyBjYzsKLQlpbnQgY2h1bmsgPSAwOwotCi0Jd2hpbGUgKGNodW5rIDwgTUVNT1JZX0NIVU5LUykgewotCQljYyA9IF9fdHByb3QoYWRkcik7Ci0JCXdoaWxlIChjYyA9PSBvbGRfY2MpIHsKLQkJCWFkZHIgKz0gQ0hVTktfSU5DUjsKLQkJCWlmIChtZW1zaXplICYmIGFkZHIgPj0gbWVtc2l6ZSkKLQkJCQlicmVhazsKLSNpZm5kZWYgQ09ORklHXzY0QklUCi0JCQlpZiAoYWRkciA9PSBBRERSMkcpCi0JCQkJYnJlYWs7Ci0jZW5kaWYKLQkJCWNjID0gX190cHJvdChhZGRyKTsKLQkJfQotCi0JCWlmIChvbGRfYWRkciAhPSBhZGRyICYmCi0JCSAgICAob2xkX2NjID09IENIVU5LX1JFQURfV1JJVEUgfHwgb2xkX2NjID09IENIVU5LX1JFQURfT05MWSkpIHsKLQkJCW1lbW9yeV9jaHVua1tjaHVua10uYWRkciA9IG9sZF9hZGRyOwotCQkJbWVtb3J5X2NodW5rW2NodW5rXS5zaXplID0gYWRkciAtIG9sZF9hZGRyOwotCQkJbWVtb3J5X2NodW5rW2NodW5rXS50eXBlID0gb2xkX2NjOwotCQkJY2h1bmsrKzsKLQkJfQotCi0JCW9sZF9hZGRyID0gYWRkcjsKLQkJb2xkX2NjID0gY2M7Ci0KLSNpZm5kZWYgQ09ORklHXzY0QklUCi0JCWlmIChhZGRyID09IEFERFIyRykKLQkJCWJyZWFrOwotI2VuZGlmCi0JCS8qCi0JCSAqIEZpbmlzaCBtZW1vcnkgZGV0ZWN0aW9uIGF0IHRoZSBmaXJzdCBob2xlCi0JCSAqIGlmIHN0b3JhZ2Ugc2l6ZSBpcyB1bmtub3duLgotCQkgKi8KLQkJaWYgKGNjID09IC0xVUwgJiYgIW1lbXNpemUpCi0JCQlicmVhazsKLQkJaWYgKG1lbXNpemUgJiYgYWRkciA+PSBtZW1zaXplKQotCQkJYnJlYWs7Ci0JfQotfQotCiBzdGF0aWMgX19pbml0IHZvaWQgZWFybHlfcGdtX2NoZWNrX2hhbmRsZXIodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CkBAIC0zODAsMjMgKzMyNCw2MSBAQAogI2VuZGlmCiB9CiAKK3N0YXRpYyBfX2luaXQgdm9pZCByZXNjdWVfaW5pdHJkKHZvaWQpCit7CisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECisJLyoKKwkgKiBNb3ZlIHRoZSBpbml0cmQgcmlnaHQgYmVoaW5kIHRoZSBic3Mgc2VjdGlvbiBpbiBjYXNlIGl0IHN0YXJ0cworCSAqIHdpdGhpbiB0aGUgYnNzIHNlY3Rpb24uIFNvIHdlIGRvbid0IG92ZXJ3cml0ZSBpdCB3aGVuIHRoZSBic3MKKwkgKiBzZWN0aW9uIGdldHMgY2xlYXJlZC4KKwkgKi8KKwlpZiAoIUlOSVRSRF9TVEFSVCB8fCAhSU5JVFJEX1NJWkUpCisJCXJldHVybjsKKwlpZiAoSU5JVFJEX1NUQVJUID49ICh1bnNpZ25lZCBsb25nKSBfX2Jzc19zdG9wKQorCQlyZXR1cm47CisJbWVtbW92ZShfX2Jzc19zdG9wLCAodm9pZCAqKSBJTklUUkRfU1RBUlQsIElOSVRSRF9TSVpFKTsKKwlJTklUUkRfU1RBUlQgPSAodW5zaWduZWQgbG9uZykgX19ic3Nfc3RvcDsKKyNlbmRpZgorfQorCisvKiBTZXQgdXAgYm9vdCBjb21tYW5kIGxpbmUgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9ib290X2NvbW1hbmRfbGluZSh2b2lkKQoreworCWNoYXIgKnBhcm0gPSBOVUxMOworCisJLyogY29weSBhcmNoIGNvbW1hbmQgbGluZSAqLworCXN0cmxjcHkoYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORSwgQVJDSF9DT01NQU5EX0xJTkVfU0laRSk7CisJYm9vdF9jb21tYW5kX2xpbmVbQVJDSF9DT01NQU5EX0xJTkVfU0laRSAtIDFdID0gMDsKKworCS8qIGFwcGVuZCBJUEwgUEFSTSBkYXRhIHRvIHRoZSBib290IGNvbW1hbmQgbGluZSAqLworCWlmIChNQUNISU5FX0lTX1ZNKSB7CisJCXBhcm0gPSBib290X2NvbW1hbmRfbGluZSArIHN0cmxlbihib290X2NvbW1hbmRfbGluZSk7CisJCSpwYXJtKysgPSAnICc7CisJCWdldF9pcGxfdm1wYXJtKHBhcm0pOworCQlpZiAocGFybVswXSA9PSAnPScpCisJCQltZW1tb3ZlKGJvb3RfY29tbWFuZF9saW5lLCBwYXJtICsgMSwgc3RybGVuKHBhcm0pKTsKKwl9Cit9CisKKwogLyoKICAqIFNhdmUgaXBsIHBhcmFtZXRlcnMsIGNsZWFyIGJzcyBtZW1vcnksIGluaXRpYWxpemUgc3RvcmFnZSBrZXlzCiAgKiBhbmQgY3JlYXRlIGEga2VybmVsIE5TUyBhdCBzdGFydHVwIGlmIHRoZSBTQVZFU1lTPSBwYXJtIGlzIGRlZmluZWQKICAqLwogdm9pZCBfX2luaXQgc3RhcnR1cF9pbml0KHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nIG1lbXNpemU7Ci0KIAlpcGxfc2F2ZV9wYXJhbWV0ZXJzKCk7CisJcmVzY3VlX2luaXRyZCgpOwogCWNsZWFyX2Jzc19zZWN0aW9uKCk7CiAJaW5pdF9rZXJuZWxfc3RvcmFnZV9rZXkoKTsKIAlsb2NrZGVwX2luaXQoKTsKIAlsb2NrZGVwX29mZigpOwotCWRldGVjdF9tYWNoaW5lX3R5cGUoKTsKLQljcmVhdGVfa2VybmVsX25zcygpOwogCXNvcnRfbWFpbl9leHRhYmxlKCk7CiAJc2V0dXBfbG93Y29yZV9lYXJseSgpOworCWRldGVjdF9tYWNoaW5lX3R5cGUoKTsKKwlpcGxfdXBkYXRlX3BhcmFtZXRlcnMoKTsKKwlzZXR1cF9ib290X2NvbW1hbmRfbGluZSgpOworCWNyZWF0ZV9rZXJuZWxfbnNzKCk7CiAJZGV0ZWN0X212cGcoKTsKIAlkZXRlY3RfaWVlZSgpOwogCWRldGVjdF9jc3AoKTsKQEAgLTQwNCwxOCArMzg2LDcgQEAKIAlkZXRlY3RfZGlhZzQ0KCk7CiAJZGV0ZWN0X21hY2hpbmVfZmFjaWxpdGllcygpOwogCXNldHVwX2hwYWdlKCk7Ci0Jc2NscF9yZWFkX2luZm9fZWFybHkoKTsKIAlzY2xwX2ZhY2lsaXRpZXNfZGV0ZWN0KCk7Ci0JbWVtc2l6ZSA9IHNjbHBfbWVtb3J5X2RldGVjdCgpOwotI2lmbmRlZiBDT05GSUdfNjRCSVQKLQkvKgotCSAqIENhbid0IGRlYWwgd2l0aCBtb3JlIHRoYW4gMkcgaW4gMzEgYml0IGFkZHJlc3NpbmcgbW9kZSwgc28KLQkgKiBsaW1pdCB0aGUgdmFsdWUgaW4gb3JkZXIgdG8gYXZvaWQgc3RyYW5nZSBzaWRlIGVmZmVjdHMuCi0JICovCi0JaWYgKG1lbXNpemUgPiBBRERSMkcpCi0JCW1lbXNpemUgPSBBRERSMkc7Ci0jZW5kaWYKLQlpZiAobWVtb3J5X2Zhc3RfZGV0ZWN0KCkgPCAwKQotCQlmaW5kX21lbW9yeV9jaHVua3MoKHVuc2lnbmVkIGxvbmcpIG1lbXNpemUpOworCWRldGVjdF9tZW1vcnlfbGF5b3V0KG1lbW9yeV9jaHVuayk7CiAJbG9ja2RlcF9vbigpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9pcGwuYyBiL2FyY2gvczM5MC9rZXJuZWwvaXBsLmMKaW5kZXggNTMyNTQyNC4uNTRiMjc3OSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9pcGwuYworKysgYi9hcmNoL3MzOTAva2VybmVsL2lwbC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8YXNtL2lwbC5oPgogI2luY2x1ZGUgPGFzbS9zbXAuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KQEAgLTIyLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxhc20vZWJjZGljLmg+CiAjaW5jbHVkZSA8YXNtL3Jlc2V0Lmg+CiAjaW5jbHVkZSA8YXNtL3NjbHAuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAogI2RlZmluZSBJUExfUEFSTV9CTE9DS19WRVJTSU9OIDAKIApAQCAtMTIxLDYgKzEyMyw3IEBACiAJUkVJUExfTUVUSE9EX0ZDUF9ST19WTSwKIAlSRUlQTF9NRVRIT0RfRkNQX0RVTVAsCiAJUkVJUExfTUVUSE9EX05TUywKKwlSRUlQTF9NRVRIT0RfTlNTX0RJQUcsCiAJUkVJUExfTUVUSE9EX0RFRkFVTFQsCiB9OwogCkBAIC0xMzQsMTQgKzEzNywxNSBAQAogCiBzdGF0aWMgaW50IGRpYWczMDhfc2V0X3dvcmtzID0gMDsKIAorc3RhdGljIHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrIGlwbF9ibG9jazsKKwogc3RhdGljIGludCByZWlwbF9jYXBhYmlsaXRpZXMgPSBJUExfVFlQRV9VTktOT1dOOwogCiBzdGF0aWMgZW51bSBpcGxfdHlwZSByZWlwbF90eXBlID0gSVBMX1RZUEVfVU5LTk9XTjsKIHN0YXRpYyBlbnVtIGlwbF9tZXRob2QgcmVpcGxfbWV0aG9kID0gUkVJUExfTUVUSE9EX0RFRkFVTFQ7CiBzdGF0aWMgc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKnJlaXBsX2Jsb2NrX2ZjcDsKIHN0YXRpYyBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqcmVpcGxfYmxvY2tfY2N3OwotCi1zdGF0aWMgY2hhciByZWlwbF9uc3NfbmFtZVtOU1NfTkFNRV9TSVpFICsgMV07CitzdGF0aWMgc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKnJlaXBsX2Jsb2NrX25zczsKIAogc3RhdGljIGludCBkdW1wX2NhcGFiaWxpdGllcyA9IERVTVBfVFlQRV9OT05FOwogc3RhdGljIGVudW0gZHVtcF90eXBlIGR1bXBfdHlwZSA9IERVTVBfVFlQRV9OT05FOwpAQCAtMjYzLDYgKzI2Nyw1NiBAQAogCiBzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIHN5c19pcGxfdHlwZV9hdHRyID0gX19BVFRSX1JPKGlwbF90eXBlKTsKIAorLyogVk0gSVBMIFBBUk0gcm91dGluZXMgKi8KK3N0YXRpYyB2b2lkIHJlaXBsX2dldF9hc2NpaV92bXBhcm0oY2hhciAqZGVzdCwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiKQoreworCWludCBpOworCWludCBsZW4gPSAwOworCWNoYXIgaGFzX2xvd2VyY2FzZSA9IDA7CisKKwlpZiAoKGlwYi0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzICYgRElBRzMwOF9WTV9GTEFHU19WUF9WQUxJRCkgJiYKKwkgICAgKGlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm1fbGVuID4gMCkpIHsKKworCQlsZW4gPSBpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtX2xlbjsKKwkJbWVtY3B5KGRlc3QsIGlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm0sIGxlbik7CisJCS8qIElmIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgaXMgbG93ZXJjYXNlLCB3ZSBhc3N1bWUgbWl4ZWQKKwkJICogY2FzZTsgb3RoZXJ3aXNlIHdlIGNvbnZlcnQgZXZlcnl0aGluZyB0byBsb3dlcmNhc2UuCisJCSAqLworCQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCisJCQlpZiAoKGRlc3RbaV0gPiAweDgwICYmIGRlc3RbaV0gPCAweDhhKSB8fCAvKiBhLWkgKi8KKwkJCSAgICAoZGVzdFtpXSA+IDB4OTAgJiYgZGVzdFtpXSA8IDB4OWEpIHx8IC8qIGotciAqLworCQkJICAgIChkZXN0W2ldID4gMHhhMSAmJiBkZXN0W2ldIDwgMHhhYSkpIHsgLyogcy16ICovCisJCQkJaGFzX2xvd2VyY2FzZSA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCWlmICghaGFzX2xvd2VyY2FzZSkKKwkJCUVCQ19UT0xPV0VSKGRlc3QsIGxlbik7CisJCUVCQ0FTQyhkZXN0LCBsZW4pOworCX0KKwlkZXN0W2xlbl0gPSAwOworfQorCit2b2lkIGdldF9pcGxfdm1wYXJtKGNoYXIgKmRlc3QpCit7CisJaWYgKGRpYWczMDhfc2V0X3dvcmtzICYmIChpcGxfYmxvY2suaGRyLnBidCA9PSBESUFHMzA4X0lQTF9UWVBFX0NDVykpCisJCXJlaXBsX2dldF9hc2NpaV92bXBhcm0oZGVzdCwgJmlwbF9ibG9jayk7CisJZWxzZQorCQlkZXN0WzBdID0gMDsKK30KKworc3RhdGljIHNzaXplX3QgaXBsX3ZtX3Bhcm1fc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQlzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJY2hhciBwYXJtW0RJQUczMDhfVk1QQVJNX1NJWkUgKyAxXSA9IHt9OworCisJZ2V0X2lwbF92bXBhcm0ocGFybSk7CisJcmV0dXJuIHNwcmludGYocGFnZSwgIiVzXG4iLCBwYXJtKTsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfaXBsX3ZtX3Bhcm1fYXR0ciA9CisJX19BVFRSKHBhcm0sIFNfSVJVR08sIGlwbF92bV9wYXJtX3Nob3csIE5VTEwpOworCiBzdGF0aWMgc3NpemVfdCBzeXNfaXBsX2RldmljZV9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCSAgIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKIHsKQEAgLTI4NSwxNCArMzM5LDggQEAKIHN0YXRpYyBzc2l6ZV90IGlwbF9wYXJhbWV0ZXJfcmVhZChzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkJICBjaGFyICpidWYsIGxvZmZfdCBvZmYsIHNpemVfdCBjb3VudCkKIHsKLQl1bnNpZ25lZCBpbnQgc2l6ZSA9IElQTF9QQVJNQkxPQ0tfU0laRTsKLQotCWlmIChvZmYgPiBzaXplKQotCQlyZXR1cm4gMDsKLQlpZiAob2ZmICsgY291bnQgPiBzaXplKQotCQljb3VudCA9IHNpemUgLSBvZmY7Ci0JbWVtY3B5KGJ1ZiwgKHZvaWQgKilJUExfUEFSTUJMT0NLX1NUQVJUICsgb2ZmLCBjb3VudCk7Ci0JcmV0dXJuIGNvdW50OworCXJldHVybiBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCAmb2ZmLCBJUExfUEFSTUJMT0NLX1NUQVJULAorCQkJCQlJUExfUEFSTUJMT0NLX1NJWkUpOwogfQogCiBzdGF0aWMgc3RydWN0IGJpbl9hdHRyaWJ1dGUgaXBsX3BhcmFtZXRlcl9hdHRyID0gewpAQCAtMzEwLDEyICszNTgsNyBAQAogCXVuc2lnbmVkIGludCBzaXplID0gSVBMX1BBUk1CTE9DS19TVEFSVC0+aXBsX2luZm8uZmNwLnNjcF9kYXRhX2xlbjsKIAl2b2lkICpzY3BfZGF0YSA9ICZJUExfUEFSTUJMT0NLX1NUQVJULT5pcGxfaW5mby5mY3Auc2NwX2RhdGE7CiAKLQlpZiAob2ZmID4gc2l6ZSkKLQkJcmV0dXJuIDA7Ci0JaWYgKG9mZiArIGNvdW50ID4gc2l6ZSkKLQkJY291bnQgPSBzaXplIC0gb2ZmOwotCW1lbWNweShidWYsIHNjcF9kYXRhICsgb2ZmLCBjb3VudCk7Ci0JcmV0dXJuIGNvdW50OworCXJldHVybiBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCAmb2ZmLCBzY3BfZGF0YSwgc2l6ZSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSBpcGxfc2NwX2RhdGFfYXR0ciA9IHsKQEAgLTM3MCwxNSArNDEzLDI3IEBACiBzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIHN5c19pcGxfY2N3X2xvYWRwYXJtX2F0dHIgPQogCV9fQVRUUihsb2FkcGFybSwgMDQ0NCwgaXBsX2Njd19sb2FkcGFybV9zaG93LCBOVUxMKTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmlwbF9jY3dfYXR0cnNbXSA9IHsKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppcGxfY2N3X2F0dHJzX3ZtW10gPSB7CisJJnN5c19pcGxfdHlwZV9hdHRyLmF0dHIsCisJJnN5c19pcGxfZGV2aWNlX2F0dHIuYXR0ciwKKwkmc3lzX2lwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAorCSZzeXNfaXBsX3ZtX3Bhcm1fYXR0ci5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqaXBsX2Njd19hdHRyc19scGFyW10gPSB7CiAJJnN5c19pcGxfdHlwZV9hdHRyLmF0dHIsCiAJJnN5c19pcGxfZGV2aWNlX2F0dHIuYXR0ciwKIAkmc3lzX2lwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBpcGxfY2N3X2F0dHJfZ3JvdXAgPSB7Ci0JLmF0dHJzID0gaXBsX2Njd19hdHRycywKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGlwbF9jY3dfYXR0cl9ncm91cF92bSA9IHsKKwkuYXR0cnMgPSBpcGxfY2N3X2F0dHJzX3ZtLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgaXBsX2Njd19hdHRyX2dyb3VwX2xwYXIgPSB7CisJLmF0dHJzID0gaXBsX2Njd19hdHRyc19scGFyCiB9OwogCiAvKiBOU1MgaXBsIGRldmljZSBhdHRyaWJ1dGVzICovCkBAIC0zODgsNiArNDQzLDggQEAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppcGxfbnNzX2F0dHJzW10gPSB7CiAJJnN5c19pcGxfdHlwZV9hdHRyLmF0dHIsCiAJJnN5c19pcGxfbnNzX25hbWVfYXR0ci5hdHRyLAorCSZzeXNfaXBsX2Njd19sb2FkcGFybV9hdHRyLmF0dHIsCisJJnN5c19pcGxfdm1fcGFybV9hdHRyLmF0dHIsCiAJTlVMTCwKIH07CiAKQEAgLTQ1MCw3ICs1MDcsMTIgQEAKIAl9CiAJc3dpdGNoIChpcGxfaW5mby50eXBlKSB7CiAJY2FzZSBJUExfVFlQRV9DQ1c6Ci0JCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZpcGxfa3NldC0+a29iaiwgJmlwbF9jY3dfYXR0cl9ncm91cCk7CisJCWlmIChNQUNISU5FX0lTX1ZNKQorCQkJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJmlwbF9rc2V0LT5rb2JqLAorCQkJCQkJJmlwbF9jY3dfYXR0cl9ncm91cF92bSk7CisJCWVsc2UKKwkJCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZpcGxfa3NldC0+a29iaiwKKwkJCQkJCSZpcGxfY2N3X2F0dHJfZ3JvdXBfbHBhcik7CiAJCWJyZWFrOwogCWNhc2UgSVBMX1RZUEVfRkNQOgogCWNhc2UgSVBMX1RZUEVfRkNQX0RVTVA6CkBAIC00ODEsNiArNTQzLDgzIEBACiAgKiByZWlwbCBzaHV0ZG93biBhY3Rpb246IFJlYm9vdCBMaW51eCBvbiBzaHV0ZG93bi4KICAqLwogCisvKiBWTSBJUEwgUEFSTSBhdHRyaWJ1dGVzICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9nZW5lcmljX3ZtcGFybV9zaG93KHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrICppcGIsCisJCQkJCSAgY2hhciAqcGFnZSkKK3sKKwljaGFyIHZtcGFybVtESUFHMzA4X1ZNUEFSTV9TSVpFICsgMV0gPSB7fTsKKworCXJlaXBsX2dldF9hc2NpaV92bXBhcm0odm1wYXJtLCBpcGIpOworCXJldHVybiBzcHJpbnRmKHBhZ2UsICIlc1xuIiwgdm1wYXJtKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfZ2VuZXJpY192bXBhcm1fc3RvcmUoc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKmlwYiwKKwkJCQkJICBzaXplX3Qgdm1wYXJtX21heCwKKwkJCQkJICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCit7CisJaW50IGksIGlwX2xlbjsKKworCS8qIGlnbm9yZSB0cmFpbGluZyBuZXdsaW5lICovCisJaXBfbGVuID0gbGVuOworCWlmICgobGVuID4gMCkgJiYgKGJ1ZltsZW4gLSAxXSA9PSAnXG4nKSkKKwkJaXBfbGVuLS07CisKKwlpZiAoaXBfbGVuID4gdm1wYXJtX21heCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBwYXJtIGlzIHVzZWQgdG8gc3RvcmUga2VybmVsIG9wdGlvbnMsIGNoZWNrIGZvciBjb21tb24gY2hhcnMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgaXBfbGVuOyBpKyspCisJCWlmICghKGlzYWxudW0oYnVmW2ldKSB8fCBpc2FzY2lpKGJ1ZltpXSkgfHwgaXNwcmludChidWZbaV0pKSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJbWVtc2V0KGlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm0sIDAsIERJQUczMDhfVk1QQVJNX1NJWkUpOworCWlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm1fbGVuID0gaXBfbGVuOworCWlmIChpcF9sZW4gPiAwKSB7CisJCWlwYi0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzIHw9IERJQUczMDhfVk1fRkxBR1NfVlBfVkFMSUQ7CisJCW1lbWNweShpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtLCBidWYsIGlwX2xlbik7CisJCUFTQ0VCQyhpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtLCBpcF9sZW4pOworCX0gZWxzZSB7CisJCWlwYi0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzICY9IH5ESUFHMzA4X1ZNX0ZMQUdTX1ZQX1ZBTElEOworCX0KKworCXJldHVybiBsZW47Cit9CisKKy8qIE5TUyB3cmFwcGVyICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9uc3Nfdm1wYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHJlaXBsX2dlbmVyaWNfdm1wYXJtX3Nob3cocmVpcGxfYmxvY2tfbnNzLCBwYWdlKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfbnNzX3ZtcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCXJldHVybiByZWlwbF9nZW5lcmljX3ZtcGFybV9zdG9yZShyZWlwbF9ibG9ja19uc3MsIDU2LCBidWYsIGxlbik7Cit9CisKKy8qIENDVyB3cmFwcGVyICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9jY3dfdm1wYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHJlaXBsX2dlbmVyaWNfdm1wYXJtX3Nob3cocmVpcGxfYmxvY2tfY2N3LCBwYWdlKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfY2N3X3ZtcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCXJldHVybiByZWlwbF9nZW5lcmljX3ZtcGFybV9zdG9yZShyZWlwbF9ibG9ja19jY3csIDY0LCBidWYsIGxlbik7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgc3lzX3JlaXBsX25zc192bXBhcm1fYXR0ciA9CisJX19BVFRSKHBhcm0sIFNfSVJVR08gfCBTX0lXVVNSLCByZWlwbF9uc3Nfdm1wYXJtX3Nob3csCisJCQkJCXJlaXBsX25zc192bXBhcm1fc3RvcmUpOworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfY2N3X3ZtcGFybV9hdHRyID0KKwlfX0FUVFIocGFybSwgU19JUlVHTyB8IFNfSVdVU1IsIHJlaXBsX2Njd192bXBhcm1fc2hvdywKKwkJCQkJcmVpcGxfY2N3X3ZtcGFybV9zdG9yZSk7CisKIC8qIEZDUCByZWlwbCBkZXZpY2UgYXR0cmlidXRlcyAqLwogCiBERUZJTkVfSVBMX0FUVFJfUlcocmVpcGxfZmNwLCB3d3BuLCAiMHglMDE2bGx4XG4iLCAiJTAxNmxseFxuIiwKQEAgLTUxMywyNyArNjUyLDI2IEBACiBERUZJTkVfSVBMX0FUVFJfUlcocmVpcGxfY2N3LCBkZXZpY2UsICIwLjAuJTA0bGx4XG4iLCAiMC4wLiVsbHhcbiIsCiAJcmVpcGxfYmxvY2tfY2N3LT5pcGxfaW5mby5jY3cuZGV2bm8pOwogCi1zdGF0aWMgdm9pZCByZWlwbF9nZXRfYXNjaWlfbG9hZHBhcm0oY2hhciAqbG9hZHBhcm0pCitzdGF0aWMgdm9pZCByZWlwbF9nZXRfYXNjaWlfbG9hZHBhcm0oY2hhciAqbG9hZHBhcm0sCisJCQkJICAgICBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaWJwKQogewotCW1lbWNweShsb2FkcGFybSwgJnJlaXBsX2Jsb2NrX2Njdy0+aXBsX2luZm8uY2N3LmxvYWRfcGFyYW0sCi0JICAgICAgIExPQURQQVJNX0xFTik7CisJbWVtY3B5KGxvYWRwYXJtLCBpYnAtPmlwbF9pbmZvLmNjdy5sb2FkX3Bhcm0sIExPQURQQVJNX0xFTik7CiAJRUJDQVNDKGxvYWRwYXJtLCBMT0FEUEFSTV9MRU4pOwogCWxvYWRwYXJtW0xPQURQQVJNX0xFTl0gPSAwOwogCXN0cnN0cmlwKGxvYWRwYXJtKTsKIH0KIAotc3RhdGljIHNzaXplX3QgcmVpcGxfY2N3X2xvYWRwYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCi0JCQkJICAgICAgIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX2dlbmVyaWNfbG9hZHBhcm1fc2hvdyhzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiLAorCQkJCQkgICBjaGFyICpwYWdlKQogewogCWNoYXIgYnVmW0xPQURQQVJNX0xFTiArIDFdOwogCi0JcmVpcGxfZ2V0X2FzY2lpX2xvYWRwYXJtKGJ1Zik7CisJcmVpcGxfZ2V0X2FzY2lpX2xvYWRwYXJtKGJ1ZiwgaXBiKTsKIAlyZXR1cm4gc3ByaW50ZihwYWdlLCAiJXNcbiIsIGJ1Zik7CiB9CiAKLXN0YXRpYyBzc2l6ZV90IHJlaXBsX2Njd19sb2FkcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKLQkJCQkJc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLAotCQkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCitzdGF0aWMgc3NpemVfdCByZWlwbF9nZW5lcmljX2xvYWRwYXJtX3N0b3JlKHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrICppcGIsCisJCQkJCSAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCiB7CiAJaW50IGksIGxwX2xlbjsKIApAQCAtNTUyLDM1ICs2OTAsMTI4IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAkvKiBpbml0aWFsaXplIGxvYWRwYXJtIHdpdGggYmxhbmtzICovCi0JbWVtc2V0KCZyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5sb2FkX3BhcmFtLCAnICcsIExPQURQQVJNX0xFTik7CisJbWVtc2V0KGlwYi0+aXBsX2luZm8uY2N3LmxvYWRfcGFybSwgJyAnLCBMT0FEUEFSTV9MRU4pOwogCS8qIGNvcHkgYW5kIGNvbnZlcnQgdG8gZWJjZGljICovCi0JbWVtY3B5KCZyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5sb2FkX3BhcmFtLCBidWYsIGxwX2xlbik7Ci0JQVNDRUJDKHJlaXBsX2Jsb2NrX2Njdy0+aXBsX2luZm8uY2N3LmxvYWRfcGFyYW0sIExPQURQQVJNX0xFTik7CisJbWVtY3B5KGlwYi0+aXBsX2luZm8uY2N3LmxvYWRfcGFybSwgYnVmLCBscF9sZW4pOworCUFTQ0VCQyhpcGItPmlwbF9pbmZvLmNjdy5sb2FkX3Bhcm0sIExPQURQQVJNX0xFTik7CiAJcmV0dXJuIGxlbjsKIH0KIAotc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIgPQotCV9fQVRUUihsb2FkcGFybSwgMDY0NCwgcmVpcGxfY2N3X2xvYWRwYXJtX3Nob3csCi0JICAgICAgIHJlaXBsX2Njd19sb2FkcGFybV9zdG9yZSk7CisvKiBOU1Mgd3JhcHBlciAqLworc3RhdGljIHNzaXplX3QgcmVpcGxfbnNzX2xvYWRwYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICAgIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKK3sKKwlyZXR1cm4gcmVpcGxfZ2VuZXJpY19sb2FkcGFybV9zaG93KHJlaXBsX2Jsb2NrX25zcywgcGFnZSk7Cit9CiAKLXN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpyZWlwbF9jY3dfYXR0cnNbXSA9IHsKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX25zc19sb2FkcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkJc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLAorCQkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCit7CisJcmV0dXJuIHJlaXBsX2dlbmVyaWNfbG9hZHBhcm1fc3RvcmUocmVpcGxfYmxvY2tfbnNzLCBidWYsIGxlbik7Cit9CisKKy8qIENDVyB3cmFwcGVyICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9jY3dfbG9hZHBhcm1fc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICAgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQoreworCXJldHVybiByZWlwbF9nZW5lcmljX2xvYWRwYXJtX3Nob3cocmVpcGxfYmxvY2tfY2N3LCBwYWdlKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfY2N3X2xvYWRwYXJtX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCQlzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlyZXR1cm4gcmVpcGxfZ2VuZXJpY19sb2FkcGFybV9zdG9yZShyZWlwbF9ibG9ja19jY3csIGJ1ZiwgbGVuKTsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIgPQorCV9fQVRUUihsb2FkcGFybSwgU19JUlVHTyB8IFNfSVdVU1IsIHJlaXBsX2Njd19sb2FkcGFybV9zaG93LAorCQkJCQkgICAgcmVpcGxfY2N3X2xvYWRwYXJtX3N0b3JlKTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnJlaXBsX2Njd19hdHRyc192bVtdID0geworCSZzeXNfcmVpcGxfY2N3X2RldmljZV9hdHRyLmF0dHIsCisJJnN5c19yZWlwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAorCSZzeXNfcmVpcGxfY2N3X3ZtcGFybV9hdHRyLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpyZWlwbF9jY3dfYXR0cnNfbHBhcltdID0gewogCSZzeXNfcmVpcGxfY2N3X2RldmljZV9hdHRyLmF0dHIsCiAJJnN5c19yZWlwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCByZWlwbF9jY3dfYXR0cl9ncm91cCA9IHsKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHJlaXBsX2Njd19hdHRyX2dyb3VwX3ZtID0gewogCS5uYW1lICA9IElQTF9DQ1dfU1RSLAotCS5hdHRycyA9IHJlaXBsX2Njd19hdHRycywKKwkuYXR0cnMgPSByZWlwbF9jY3dfYXR0cnNfdm0sCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCByZWlwbF9jY3dfYXR0cl9ncm91cF9scGFyID0geworCS5uYW1lICA9IElQTF9DQ1dfU1RSLAorCS5hdHRycyA9IHJlaXBsX2Njd19hdHRyc19scGFyLAogfTsKIAogCiAvKiBOU1MgcmVpcGwgZGV2aWNlIGF0dHJpYnV0ZXMgKi8KK3N0YXRpYyB2b2lkIHJlaXBsX2dldF9hc2NpaV9uc3NfbmFtZShjaGFyICpkc3QsCisJCQkJICAgICBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiKQoreworCW1lbWNweShkc3QsIGlwYi0+aXBsX2luZm8uY2N3Lm5zc19uYW1lLCBOU1NfTkFNRV9TSVpFKTsKKwlFQkNBU0MoZHN0LCBOU1NfTkFNRV9TSVpFKTsKKwlkc3RbTlNTX05BTUVfU0laRV0gPSAwOworfQogCi1ERUZJTkVfSVBMX0FUVFJfU1RSX1JXKHJlaXBsX25zcywgbmFtZSwgIiVzXG4iLCAiJXNcbiIsIHJlaXBsX25zc19uYW1lKTsKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX25zc19uYW1lX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQoreworCWNoYXIgbnNzX25hbWVbTlNTX05BTUVfU0laRSArIDFdID0ge307CisKKwlyZWlwbF9nZXRfYXNjaWlfbnNzX25hbWUobnNzX25hbWUsIHJlaXBsX2Jsb2NrX25zcyk7CisJcmV0dXJuIHNwcmludGYocGFnZSwgIiVzXG4iLCBuc3NfbmFtZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX25zc19uYW1lX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCSAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlpbnQgbnNzX2xlbjsKKworCS8qIGlnbm9yZSB0cmFpbGluZyBuZXdsaW5lICovCisJbnNzX2xlbiA9IGxlbjsKKwlpZiAoKGxlbiA+IDApICYmIChidWZbbGVuIC0gMV0gPT0gJ1xuJykpCisJCW5zc19sZW4tLTsKKworCWlmIChuc3NfbGVuID4gTlNTX05BTUVfU0laRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltZW1zZXQocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsIDB4NDAsIE5TU19OQU1FX1NJWkUpOworCWlmIChuc3NfbGVuID4gMCkgeworCQlyZWlwbF9ibG9ja19uc3MtPmlwbF9pbmZvLmNjdy52bV9mbGFncyB8PQorCQkJRElBRzMwOF9WTV9GTEFHU19OU1NfVkFMSUQ7CisJCW1lbWNweShyZWlwbF9ibG9ja19uc3MtPmlwbF9pbmZvLmNjdy5uc3NfbmFtZSwgYnVmLCBuc3NfbGVuKTsKKwkJQVNDRUJDKHJlaXBsX2Jsb2NrX25zcy0+aXBsX2luZm8uY2N3Lm5zc19uYW1lLCBuc3NfbGVuKTsKKwkJRUJDX1RPVVBQRVIocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsIG5zc19sZW4pOworCX0gZWxzZSB7CisJCXJlaXBsX2Jsb2NrX25zcy0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzICY9CisJCQl+RElBRzMwOF9WTV9GTEFHU19OU1NfVkFMSUQ7CisJfQorCisJcmV0dXJuIGxlbjsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfbnNzX25hbWVfYXR0ciA9CisJX19BVFRSKG5hbWUsIFNfSVJVR08gfCBTX0lXVVNSLCByZWlwbF9uc3NfbmFtZV9zaG93LAorCQkJCQlyZWlwbF9uc3NfbmFtZV9zdG9yZSk7CisKK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgc3lzX3JlaXBsX25zc19sb2FkcGFybV9hdHRyID0KKwlfX0FUVFIobG9hZHBhcm0sIFNfSVJVR08gfCBTX0lXVVNSLCByZWlwbF9uc3NfbG9hZHBhcm1fc2hvdywKKwkJCQkJICAgIHJlaXBsX25zc19sb2FkcGFybV9zdG9yZSk7CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpyZWlwbF9uc3NfYXR0cnNbXSA9IHsKIAkmc3lzX3JlaXBsX25zc19uYW1lX2F0dHIuYXR0ciwKKwkmc3lzX3JlaXBsX25zc19sb2FkcGFybV9hdHRyLmF0dHIsCisJJnN5c19yZWlwbF9uc3Nfdm1wYXJtX2F0dHIuYXR0ciwKIAlOVUxMLAogfTsKIApAQCAtNjE3LDcgKzg0OCwxMCBAQAogCQlyZWlwbF9tZXRob2QgPSBSRUlQTF9NRVRIT0RfRkNQX0RVTVA7CiAJCWJyZWFrOwogCWNhc2UgSVBMX1RZUEVfTlNTOgotCQlyZWlwbF9tZXRob2QgPSBSRUlQTF9NRVRIT0RfTlNTOworCQlpZiAoZGlhZzMwOF9zZXRfd29ya3MpCisJCQlyZWlwbF9tZXRob2QgPSBSRUlQTF9NRVRIT0RfTlNTX0RJQUc7CisJCWVsc2UKKwkJCXJlaXBsX21ldGhvZCA9IFJFSVBMX01FVEhPRF9OU1M7CiAJCWJyZWFrOwogCWNhc2UgSVBMX1RZUEVfVU5LTk9XTjoKIAkJcmVpcGxfbWV0aG9kID0gUkVJUExfTUVUSE9EX0RFRkFVTFQ7CkBAIC02NTUsMTEgKzg4OSwzOCBAQAogCiBzdGF0aWMgc3RydWN0IGtzZXQgKnJlaXBsX2tzZXQ7CiAKK3N0YXRpYyB2b2lkIGdldF9pcGxfc3RyaW5nKGNoYXIgKmRzdCwgc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKmlwYiwKKwkJCSAgIGNvbnN0IGVudW0gaXBsX21ldGhvZCBtKQoreworCWNoYXIgbG9hZHBhcm1bTE9BRFBBUk1fTEVOICsgMV0gPSB7fTsKKwljaGFyIHZtcGFybVtESUFHMzA4X1ZNUEFSTV9TSVpFICsgMV0gPSB7fTsKKwljaGFyIG5zc19uYW1lW05TU19OQU1FX1NJWkUgKyAxXSA9IHt9OworCXNpemVfdCBwb3MgPSAwOworCisJcmVpcGxfZ2V0X2FzY2lpX2xvYWRwYXJtKGxvYWRwYXJtLCBpcGIpOworCXJlaXBsX2dldF9hc2NpaV9uc3NfbmFtZShuc3NfbmFtZSwgaXBiKTsKKwlyZWlwbF9nZXRfYXNjaWlfdm1wYXJtKHZtcGFybSwgaXBiKTsKKworCXN3aXRjaCAobSkgeworCWNhc2UgUkVJUExfTUVUSE9EX0NDV19WTToKKwkJcG9zID0gc3ByaW50Zihkc3QsICJJUEwgJVggQ0xFQVIiLCBpcGItPmlwbF9pbmZvLmNjdy5kZXZubyk7CisJCWJyZWFrOworCWNhc2UgUkVJUExfTUVUSE9EX05TUzoKKwkJcG9zID0gc3ByaW50Zihkc3QsICJJUEwgJXMiLCBuc3NfbmFtZSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwlpZiAoc3RybGVuKGxvYWRwYXJtKSA+IDApCisJCXBvcyArPSBzcHJpbnRmKGRzdCArIHBvcywgIiBMT0FEUEFSTSAnJXMnIiwgbG9hZHBhcm0pOworCWlmIChzdHJsZW4odm1wYXJtKSA+IDApCisJCXNwcmludGYoZHN0ICsgcG9zLCAiIFBBUk0gJXMiLCB2bXBhcm0pOworfQorCiBzdGF0aWMgdm9pZCByZWlwbF9ydW4oc3RydWN0IHNodXRkb3duX3RyaWdnZXIgKnRyaWdnZXIpCiB7CiAJc3RydWN0IGNjd19kZXZfaWQgZGV2aWQ7Ci0Jc3RhdGljIGNoYXIgYnVmWzEwMF07Ci0JY2hhciBsb2FkcGFybVtMT0FEUEFSTV9MRU4gKyAxXTsKKwlzdGF0aWMgY2hhciBidWZbMTI4XTsKIAogCXN3aXRjaCAocmVpcGxfbWV0aG9kKSB7CiAJY2FzZSBSRUlQTF9NRVRIT0RfQ0NXX0NJTzoKQEAgLTY2OCwxMyArOTI5LDcgQEAKIAkJcmVpcGxfY2N3X2RldigmZGV2aWQpOwogCQlicmVhazsKIAljYXNlIFJFSVBMX01FVEhPRF9DQ1dfVk06Ci0JCXJlaXBsX2dldF9hc2NpaV9sb2FkcGFybShsb2FkcGFybSk7Ci0JCWlmIChzdHJsZW4obG9hZHBhcm0pID09IDApCi0JCQlzcHJpbnRmKGJ1ZiwgIklQTCAlWCBDTEVBUiIsCi0JCQkJcmVpcGxfYmxvY2tfY2N3LT5pcGxfaW5mby5jY3cuZGV2bm8pOwotCQllbHNlCi0JCQlzcHJpbnRmKGJ1ZiwgIklQTCAlWCBDTEVBUiBMT0FEUEFSTSAnJXMnIiwKLQkJCQlyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5kZXZubywgbG9hZHBhcm0pOworCQlnZXRfaXBsX3N0cmluZyhidWYsIHJlaXBsX2Jsb2NrX2NjdywgUkVJUExfTUVUSE9EX0NDV19WTSk7CiAJCV9fY3BjbWQoYnVmLCBOVUxMLCAwLCBOVUxMKTsKIAkJYnJlYWs7CiAJY2FzZSBSRUlQTF9NRVRIT0RfQ0NXX0RJQUc6CkBAIC02OTEsOCArOTQ2LDEyIEBACiAJY2FzZSBSRUlQTF9NRVRIT0RfRkNQX1JPX1ZNOgogCQlfX2NwY21kKCJJUEwiLCBOVUxMLCAwLCBOVUxMKTsKIAkJYnJlYWs7CisJY2FzZSBSRUlQTF9NRVRIT0RfTlNTX0RJQUc6CisJCWRpYWczMDgoRElBRzMwOF9TRVQsIHJlaXBsX2Jsb2NrX25zcyk7CisJCWRpYWczMDgoRElBRzMwOF9JUEwsIE5VTEwpOworCQlicmVhazsKIAljYXNlIFJFSVBMX01FVEhPRF9OU1M6Ci0JCXNwcmludGYoYnVmLCAiSVBMICVzIiwgcmVpcGxfbnNzX25hbWUpOworCQlnZXRfaXBsX3N0cmluZyhidWYsIHJlaXBsX2Jsb2NrX25zcywgUkVJUExfTUVUSE9EX05TUyk7CiAJCV9fY3BjbWQoYnVmLCBOVUxMLCAwLCBOVUxMKTsKIAkJYnJlYWs7CiAJY2FzZSBSRUlQTF9NRVRIT0RfREVGQVVMVDoKQEAgLTcwNywxNiArOTY2LDM2IEBACiAJZGlzYWJsZWRfd2FpdCgodW5zaWduZWQgbG9uZykgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IHJlaXBsX3Byb2JlKHZvaWQpCitzdGF0aWMgdm9pZCByZWlwbF9ibG9ja19jY3dfaW5pdChzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiKQogewotCXZvaWQgKmJ1ZmZlcjsKKwlpcGItPmhkci5sZW4gPSBJUExfUEFSTV9CTEtfQ0NXX0xFTjsKKwlpcGItPmhkci52ZXJzaW9uID0gSVBMX1BBUk1fQkxPQ0tfVkVSU0lPTjsKKwlpcGItPmhkci5ibGswX2xlbiA9IElQTF9QQVJNX0JMSzBfQ0NXX0xFTjsKKwlpcGItPmhkci5wYnQgPSBESUFHMzA4X0lQTF9UWVBFX0NDVzsKK30KIAotCWJ1ZmZlciA9ICh2b2lkICopIGdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZmZlcikKLQkJcmV0dXJuOwotCWlmIChkaWFnMzA4KERJQUczMDhfU1RPUkUsIGJ1ZmZlcikgPT0gRElBRzMwOF9SQ19PSykKLQkJZGlhZzMwOF9zZXRfd29ya3MgPSAxOwotCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylidWZmZXIpOworc3RhdGljIHZvaWQgcmVpcGxfYmxvY2tfY2N3X2ZpbGxfcGFybXMoc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKmlwYikKK3sKKwkvKiBMT0FEUEFSTSAqLworCS8qIGNoZWNrIGlmIHJlYWQgc2NwIGluZm8gd29ya2VkIGFuZCBzZXQgbG9hZHBhcm0gKi8KKwlpZiAoc2NscF9pcGxfaW5mby5pc192YWxpZCkKKwkJbWVtY3B5KGlwYi0+aXBsX2luZm8uY2N3LmxvYWRfcGFybSwKKwkJCQkmc2NscF9pcGxfaW5mby5sb2FkcGFybSwgTE9BRFBBUk1fTEVOKTsKKwllbHNlCisJCS8qIHJlYWQgc2NwIGluZm8gZmFpbGVkOiBzZXQgZW1wdHkgbG9hZHBhcm0gKEVCQ0RJQyBibGFua3MpICovCisJCW1lbXNldChpcGItPmlwbF9pbmZvLmNjdy5sb2FkX3Bhcm0sIDB4NDAsIExPQURQQVJNX0xFTik7CisJaXBiLT5oZHIuZmxhZ3MgPSBESUFHMzA4X0ZMQUdTX0xQX1ZBTElEOworCisJLyogVk0gUEFSTSAqLworCWlmIChNQUNISU5FX0lTX1ZNICYmIGRpYWczMDhfc2V0X3dvcmtzICYmCisJICAgIChpcGxfYmxvY2suaXBsX2luZm8uY2N3LnZtX2ZsYWdzICYgRElBRzMwOF9WTV9GTEFHU19WUF9WQUxJRCkpIHsKKworCQlpcGItPmlwbF9pbmZvLmNjdy52bV9mbGFncyB8PSBESUFHMzA4X1ZNX0ZMQUdTX1ZQX1ZBTElEOworCQlpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtX2xlbiA9CisJCQkJCWlwbF9ibG9jay5pcGxfaW5mby5jY3cudm1fcGFybV9sZW47CisJCW1lbWNweShpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtLAorCQkgICAgICAgaXBsX2Jsb2NrLmlwbF9pbmZvLmNjdy52bV9wYXJtLCBESUFHMzA4X1ZNUEFSTV9TSVpFKTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0IHJlaXBsX25zc19pbml0KHZvaWQpCkBAIC03MjUsMTAgKzEwMDQsMzEgQEAKIAogCWlmICghTUFDSElORV9JU19WTSkKIAkJcmV0dXJuIDA7CisKKwlyZWlwbF9ibG9ja19uc3MgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJaWYgKCFyZWlwbF9ibG9ja19uc3MpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKCFkaWFnMzA4X3NldF93b3JrcykKKwkJc3lzX3JlaXBsX25zc192bXBhcm1fYXR0ci5hdHRyLm1vZGUgPSBTX0lSVUdPOworCiAJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnJlaXBsX2tzZXQtPmtvYmosICZyZWlwbF9uc3NfYXR0cl9ncm91cCk7CiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7Ci0Jc3RybmNweShyZWlwbF9uc3NfbmFtZSwga2VybmVsX25zc19uYW1lLCBOU1NfTkFNRV9TSVpFICsgMSk7CisKKwlyZWlwbF9ibG9ja19jY3dfaW5pdChyZWlwbF9ibG9ja19uc3MpOworCWlmIChpcGxfaW5mby50eXBlID09IElQTF9UWVBFX05TUykgeworCQltZW1zZXQocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsCisJCQknICcsIE5TU19OQU1FX1NJWkUpOworCQltZW1jcHkocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsCisJCQlrZXJuZWxfbnNzX25hbWUsIHN0cmxlbihrZXJuZWxfbnNzX25hbWUpKTsKKwkJQVNDRUJDKHJlaXBsX2Jsb2NrX25zcy0+aXBsX2luZm8uY2N3Lm5zc19uYW1lLCBOU1NfTkFNRV9TSVpFKTsKKwkJcmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cudm1fZmxhZ3MgfD0KKwkJCURJQUczMDhfVk1fRkxBR1NfTlNTX1ZBTElEOworCisJCXJlaXBsX2Jsb2NrX2Njd19maWxsX3Bhcm1zKHJlaXBsX2Jsb2NrX25zcyk7CisJfQorCiAJcmVpcGxfY2FwYWJpbGl0aWVzIHw9IElQTF9UWVBFX05TUzsKIAlyZXR1cm4gMDsKIH0KQEAgLTc0MCwyOCArMTA0MCwyNyBAQAogCXJlaXBsX2Jsb2NrX2NjdyA9ICh2b2lkICopIGdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKIAlpZiAoIXJlaXBsX2Jsb2NrX2NjdykKIAkJcmV0dXJuIC1FTk9NRU07Ci0JcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnJlaXBsX2tzZXQtPmtvYmosICZyZWlwbF9jY3dfYXR0cl9ncm91cCk7Ci0JaWYgKHJjKSB7Ci0JCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylyZWlwbF9ibG9ja19jY3cpOwotCQlyZXR1cm4gcmM7CisKKwlpZiAoTUFDSElORV9JU19WTSkgeworCQlpZiAoIWRpYWczMDhfc2V0X3dvcmtzKQorCQkJc3lzX3JlaXBsX2Njd192bXBhcm1fYXR0ci5hdHRyLm1vZGUgPSBTX0lSVUdPOworCQlyYyA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmcmVpcGxfa3NldC0+a29iaiwKKwkJCQkJJnJlaXBsX2Njd19hdHRyX2dyb3VwX3ZtKTsKKwl9IGVsc2UgeworCQlpZighZGlhZzMwOF9zZXRfd29ya3MpCisJCQlzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIuYXR0ci5tb2RlID0gU19JUlVHTzsKKwkJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnJlaXBsX2tzZXQtPmtvYmosCisJCQkJCSZyZWlwbF9jY3dfYXR0cl9ncm91cF9scGFyKTsKIAl9Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIubGVuID0gSVBMX1BBUk1fQkxLX0NDV19MRU47Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIudmVyc2lvbiA9IElQTF9QQVJNX0JMT0NLX1ZFUlNJT047Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIuYmxrMF9sZW4gPSBJUExfUEFSTV9CTEswX0NDV19MRU47Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIucGJ0ID0gRElBRzMwOF9JUExfVFlQRV9DQ1c7Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIuZmxhZ3MgPSBESUFHMzA4X0ZMQUdTX0xQX1ZBTElEOwotCS8qIGNoZWNrIGlmIHJlYWQgc2NwIGluZm8gd29ya2VkIGFuZCBzZXQgbG9hZHBhcm0gKi8KLQlpZiAoc2NscF9pcGxfaW5mby5pc192YWxpZCkKLQkJbWVtY3B5KHJlaXBsX2Jsb2NrX2Njdy0+aXBsX2luZm8uY2N3LmxvYWRfcGFyYW0sCi0JCSAgICAgICAmc2NscF9pcGxfaW5mby5sb2FkcGFybSwgTE9BRFBBUk1fTEVOKTsKLQllbHNlCi0JCS8qIHJlYWQgc2NwIGluZm8gZmFpbGVkOiBzZXQgZW1wdHkgbG9hZHBhcm0gKEVCQ0RJQyBibGFua3MpICovCi0JCW1lbXNldChyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5sb2FkX3BhcmFtLCAweDQwLAotCQkgICAgICAgTE9BRFBBUk1fTEVOKTsKLQlpZiAoIU1BQ0hJTkVfSVNfVk0gJiYgIWRpYWczMDhfc2V0X3dvcmtzKQotCQlzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIuYXR0ci5tb2RlID0gU19JUlVHTzsKLQlpZiAoaXBsX2luZm8udHlwZSA9PSBJUExfVFlQRV9DQ1cpCisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlyZWlwbF9ibG9ja19jY3dfaW5pdChyZWlwbF9ibG9ja19jY3cpOworCWlmIChpcGxfaW5mby50eXBlID09IElQTF9UWVBFX0NDVykgewogCQlyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5kZXZubyA9IGlwbF9kZXZubzsKKwkJcmVpcGxfYmxvY2tfY2N3X2ZpbGxfcGFybXMocmVpcGxfYmxvY2tfY2N3KTsKKwl9CisKIAlyZWlwbF9jYXBhYmlsaXRpZXMgfD0gSVBMX1RZUEVfQ0NXOwogCXJldHVybiAwOwogfQpAQCAtMTI5OCw3ICsxNTk3LDYgQEAKIAogc3RhdGljIGludCBfX2luaXQgczM5MF9pcGxfaW5pdCh2b2lkKQogewotCXJlaXBsX3Byb2JlKCk7CiAJc2NscF9nZXRfaXBsX2luZm8oJnNjbHBfaXBsX2luZm8pOwogCXNodXRkb3duX2FjdGlvbnNfaW5pdCgpOwogCXNodXRkb3duX3RyaWdnZXJzX2luaXQoKTsKQEAgLTE0MDUsNiArMTcwMywxMiBAQAogCWF0b21pY19ub3RpZmllcl9jaGFpbl9yZWdpc3RlcigmcGFuaWNfbm90aWZpZXJfbGlzdCwgJm9uX3BhbmljX25iKTsKIH0KIAordm9pZCBfX2luaXQgaXBsX3VwZGF0ZV9wYXJhbWV0ZXJzKHZvaWQpCit7CisJaWYgKGRpYWczMDgoRElBRzMwOF9TVE9SRSwgJmlwbF9ibG9jaykgPT0gRElBRzMwOF9SQ19PSykKKwkJZGlhZzMwOF9zZXRfd29ya3MgPSAxOworfQorCiB2b2lkIF9faW5pdCBpcGxfc2F2ZV9wYXJhbWV0ZXJzKHZvaWQpCiB7CiAJc3RydWN0IGNpb19pcGxpbmZvIGlwbGluZm87CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2twcm9iZXMuYyBiL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCmluZGV4IGVkMDRkMTMuLjI4OGFkNDkgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCkBAIC00MSwxMCArNDEsOCBAQAogCWlmIChpc19wcm9oaWJpdGVkX29wY29kZSgoa3Byb2JlX29wY29kZV90ICopIHAtPmFkZHIpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmICgodW5zaWduZWQgbG9uZylwLT5hZGRyICYgMHgwMSkgewotCQlwcmludGsoIkF0dGVtcHQgdG8gcmVnaXN0ZXIga3Byb2JlIGF0IGFuIHVuYWxpZ25lZCBhZGRyZXNzXG4iKTsKKwlpZiAoKHVuc2lnbmVkIGxvbmcpcC0+YWRkciAmIDB4MDEpCiAJCXJldHVybiAtRUlOVkFMOwotCQl9CiAKIAkvKiBVc2UgdGhlIGdldF9pbnNuX3Nsb3QoKSBmYWNpbGl0eSBmb3IgY29ycmVjdG5lc3MgKi8KIAlpZiAoIShwLT5haW5zbi5pbnNuID0gZ2V0X2luc25fc2xvdCgpKSkKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvbWFjaGluZV9rZXhlYy5jIGIvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjLmMKaW5kZXggM2M3N2RkMy4uMTMxZDdlZSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjLmMKQEAgLTUyLDcgKzUyLDYgQEAKIAogdm9pZCBtYWNoaW5lX3NodXRkb3duKHZvaWQpCiB7Ci0JcHJpbnRrKEtFUk5fSU5GTyAia2V4ZWM6IG1hY2hpbmVfc2h1dGRvd24gY2FsbGVkXG4iKTsKIH0KIAogdm9pZCBtYWNoaW5lX2tleGVjKHN0cnVjdCBraW1hZ2UgKmltYWdlKQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9tZW1fZGV0ZWN0LmMgYi9hcmNoL3MzOTAva2VybmVsL21lbV9kZXRlY3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGVkN2FiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9tZW1fZGV0ZWN0LmMKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDgKKyAqICAgIEF1dGhvcihzKTogSGVpa28gQ2Fyc3RlbnMgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9pcGwuaD4KKyNpbmNsdWRlIDxhc20vc2NscC5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorCitzdGF0aWMgaW50IG1lbW9yeV9mYXN0X2RldGVjdChzdHJ1Y3QgbWVtX2NodW5rICpjaHVuaykKK3sKKwl1bnNpZ25lZCBsb25nIHZhbDAgPSAwOworCXVuc2lnbmVkIGxvbmcgdmFsMSA9IDB4YzsKKwlpbnQgcmMgPSAtRU9QTk9UU1VQUDsKKworCWlmIChpcGxfZmxhZ3MgJiBJUExfTlNTX1ZBTElEKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJYXNtIHZvbGF0aWxlKAorCQkiCWRpYWcJJTEsJTIsMHgyNjBcbiIKKwkJIjA6CWxoaQklMCwwXG4iCisJCSIxOlxuIgorCQlFWF9UQUJMRSgwYiwxYikKKwkJOiAiK2QiIChyYyksICIrZCIgKHZhbDApLCAiK2QiICh2YWwxKSA6IDogImNjIik7CisKKwlpZiAocmMgfHwgdmFsMCAhPSB2YWwxKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJY2h1bmstPnNpemUgPSB2YWwwICsgMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgdHByb3QodW5zaWduZWQgbG9uZyBhZGRyKQoreworCWludCByYyA9IC1FRkFVTFQ7CisKKwlhc20gdm9sYXRpbGUoCisJCSIJdHByb3QJMCglMSksMFxuIgorCQkiMDoJaXBtCSUwXG4iCisJCSIJc3JsCSUwLDI4XG4iCisJCSIxOlxuIgorCQlFWF9UQUJMRSgwYiwxYikKKwkJOiAiK2QiIChyYykgOiAiYSIgKGFkZHIpIDogImNjIik7CisJcmV0dXJuIHJjOworfQorCisjZGVmaW5lIEFERFIyRyAoMVVMTCA8PCAzMSkKKworc3RhdGljIHZvaWQgZmluZF9tZW1vcnlfY2h1bmtzKHN0cnVjdCBtZW1fY2h1bmsgY2h1bmtbXSkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgbWVtc2l6ZSwgcm5tYXgsIHJ6bTsKKwl1bnNpZ25lZCBsb25nIGFkZHIgPSAwLCBzaXplOworCWludCBpID0gMCwgdHlwZTsKKworCXJ6bSA9IHNjbHBfZ2V0X3J6bSgpOworCXJubWF4ID0gc2NscF9nZXRfcm5tYXgoKTsKKwltZW1zaXplID0gcnptICogcm5tYXg7CisJaWYgKCFyem0pCisJCXJ6bSA9IDFVTEwgPDwgMTc7CisJaWYgKHNpemVvZihsb25nKSA9PSA0KSB7CisJCXJ6bSA9IG1pbihBRERSMkcsIHJ6bSk7CisJCW1lbXNpemUgPSBtZW1zaXplID8gbWluKEFERFIyRywgbWVtc2l6ZSkgOiBBRERSMkc7CisJfQorCWRvIHsKKwkJc2l6ZSA9IDA7CisJCXR5cGUgPSB0cHJvdChhZGRyKTsKKwkJZG8geworCQkJc2l6ZSArPSByem07CisJCQlpZiAobWVtc2l6ZSAmJiBhZGRyICsgc2l6ZSA+PSBtZW1zaXplKQorCQkJCWJyZWFrOworCQl9IHdoaWxlICh0eXBlID09IHRwcm90KGFkZHIgKyBzaXplKSk7CisJCWlmICh0eXBlID09IENIVU5LX1JFQURfV1JJVEUgfHwgdHlwZSA9PSBDSFVOS19SRUFEX09OTFkpIHsKKwkJCWNodW5rW2ldLmFkZHIgPSBhZGRyOworCQkJY2h1bmtbaV0uc2l6ZSA9IHNpemU7CisJCQljaHVua1tpXS50eXBlID0gdHlwZTsKKwkJCWkrKzsKKwkJfQorCQlhZGRyICs9IHNpemU7CisJfSB3aGlsZSAoYWRkciA8IG1lbXNpemUgJiYgaSA8IE1FTU9SWV9DSFVOS1MpOworfQorCit2b2lkIGRldGVjdF9tZW1vcnlfbGF5b3V0KHN0cnVjdCBtZW1fY2h1bmsgY2h1bmtbXSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzLCBjcjA7CisKKwltZW1zZXQoY2h1bmssIDAsIE1FTU9SWV9DSFVOS1MgKiBzaXplb2Yoc3RydWN0IG1lbV9jaHVuaykpOworCWlmIChtZW1vcnlfZmFzdF9kZXRlY3QoJmNodW5rWzBdKSA9PSAwKQorCQlyZXR1cm47CisJLyogRGlzYWJsZSBJUlFzLCBEQVQgYW5kIGxvdyBhZGRyZXNzIHByb3RlY3Rpb24gc28gdHByb3QgZG9lcyB0aGUKKwkgKiByaWdodCB0aGluZyBhbmQgd2UgZG9uJ3QgZ2V0IHNjaGVkdWxlZCBhd2F5IHdpdGggbG93IGFkZHJlc3MKKwkgKiBwcm90ZWN0aW9uIGRpc2FibGVkLgorCSAqLworCWZsYWdzID0gX19yYXdfbG9jYWxfaXJxX3N0bnNtKDB4ZjgpOworCV9fY3RsX3N0b3JlKGNyMCwgMCwgMCk7CisJX19jdGxfY2xlYXJfYml0KDAsIDI4KTsKKwlmaW5kX21lbW9yeV9jaHVua3MoY2h1bmspOworCV9fY3RsX2xvYWQoY3IwLCAwLCAwKTsKKwlfX3Jhd19sb2NhbF9pcnFfc3NtKGZsYWdzKTsKK30KK0VYUE9SVF9TWU1CT0woZGV0ZWN0X21lbW9yeV9sYXlvdXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYwppbmRleCA3OTIwODYxLi44NWRlZmQwIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYworKysgYi9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYwpAQCAtNzUsNDYgKzc1LDE5IEBACiAJcmV0dXJuIHNmLT5ncHJzWzhdOwogfQogCi0vKgotICogTmVlZCB0byBrbm93IGFib3V0IENQVXMgZ29pbmcgaWRsZT8KLSAqLwotc3RhdGljIEFUT01JQ19OT1RJRklFUl9IRUFEKGlkbGVfY2hhaW4pOwogREVGSU5FX1BFUl9DUFUoc3RydWN0IHMzOTBfaWRsZV9kYXRhLCBzMzkwX2lkbGUpOwogCi1pbnQgcmVnaXN0ZXJfaWRsZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKQotewotCXJldHVybiBhdG9taWNfbm90aWZpZXJfY2hhaW5fcmVnaXN0ZXIoJmlkbGVfY2hhaW4sIG5iKTsKLX0KLUVYUE9SVF9TWU1CT0wocmVnaXN0ZXJfaWRsZV9ub3RpZmllcik7Ci0KLWludCB1bnJlZ2lzdGVyX2lkbGVfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYikKLXsKLQlyZXR1cm4gYXRvbWljX25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoJmlkbGVfY2hhaW4sIG5iKTsKLX0KLUVYUE9SVF9TWU1CT0wodW5yZWdpc3Rlcl9pZGxlX25vdGlmaWVyKTsKLQogc3RhdGljIGludCBzMzkwX2lkbGVfZW50ZXIodm9pZCkKIHsKIAlzdHJ1Y3QgczM5MF9pZGxlX2RhdGEgKmlkbGU7Ci0JaW50IG5yX2NhbGxzID0gMDsKLQl2b2lkICpoY3B1OwotCWludCByYzsKIAotCWhjcHUgPSAodm9pZCAqKShsb25nKXNtcF9wcm9jZXNzb3JfaWQoKTsKLQlyYyA9IF9fYXRvbWljX25vdGlmaWVyX2NhbGxfY2hhaW4oJmlkbGVfY2hhaW4sIFMzOTBfQ1BVX0lETEUsIGhjcHUsIC0xLAotCQkJCQkgICZucl9jYWxscyk7Ci0JaWYgKHJjID09IE5PVElGWV9CQUQpIHsKLQkJbnJfY2FsbHMtLTsKLQkJX19hdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmaWRsZV9jaGFpbiwgUzM5MF9DUFVfTk9UX0lETEUsCi0JCQkJCSAgICAgaGNwdSwgbnJfY2FsbHMsIE5VTEwpOwotCQlyZXR1cm4gcmM7Ci0JfQogCWlkbGUgPSAmX19nZXRfY3B1X3ZhcihzMzkwX2lkbGUpOwogCXNwaW5fbG9jaygmaWRsZS0+bG9jayk7CiAJaWRsZS0+aWRsZV9jb3VudCsrOwogCWlkbGUtPmluX2lkbGUgPSAxOwogCWlkbGUtPmlkbGVfZW50ZXIgPSBnZXRfY2xvY2soKTsKIAlzcGluX3VubG9jaygmaWRsZS0+bG9jayk7CisJdnRpbWVfc3RvcF9jcHVfdGltZXIoKTsKIAlyZXR1cm4gTk9USUZZX09LOwogfQogCkBAIC0xMjIsMTMgKzk1LDEyIEBACiB7CiAJc3RydWN0IHMzOTBfaWRsZV9kYXRhICppZGxlOwogCisJdnRpbWVfc3RhcnRfY3B1X3RpbWVyKCk7CiAJaWRsZSA9ICZfX2dldF9jcHVfdmFyKHMzOTBfaWRsZSk7CiAJc3Bpbl9sb2NrKCZpZGxlLT5sb2NrKTsKIAlpZGxlLT5pZGxlX3RpbWUgKz0gZ2V0X2Nsb2NrKCkgLSBpZGxlLT5pZGxlX2VudGVyOwogCWlkbGUtPmluX2lkbGUgPSAwOwogCXNwaW5fdW5sb2NrKCZpZGxlLT5sb2NrKTsKLQlhdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmaWRsZV9jaGFpbiwgUzM5MF9DUFVfTk9UX0lETEUsCi0JCQkJICAgKHZvaWQgKikobG9uZykgc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIH0KIAogZXh0ZXJuIHZvaWQgczM5MF9oYW5kbGVfbWNjayh2b2lkKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvcHRyYWNlLmMgYi9hcmNoL3MzOTAva2VybmVsL3B0cmFjZS5jCmluZGV4IDM1ODI3YjkuLjI4MTViZmUgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvcHRyYWNlLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9wdHJhY2UuYwpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvYXVkaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zaWduYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lbGYuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdzZXQuaD4KIAogI2luY2x1ZGUgPGFzbS9zZWdtZW50Lmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KQEAgLTQ3LDYgKzQ5LDExIEBACiAjaW5jbHVkZSAiY29tcGF0X3B0cmFjZS5oIgogI2VuZGlmCiAKK2VudW0gczM5MF9yZWdzZXQgeworCVJFR1NFVF9HRU5FUkFMLAorCVJFR1NFVF9GUCwKK307CisKIHN0YXRpYyB2b2lkCiBGaXhQZXJSZWdpc3RlcnMoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQogewpAQCAtMTI2LDI0ICsxMzMsMTAgQEAKICAqIHN0cnVjdCB1c2VyIGNvbnRhaW4gcGFkIGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJlYWQgYXMgemVyb2VzLgogICogTG92ZWx5Li4uCiAgKi8KLXN0YXRpYyBpbnQKLXBlZWtfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3BlZWtfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkcikKIHsKIAlzdHJ1Y3QgdXNlciAqZHVtbXkgPSBOVUxMOwotCWFkZHJfdCBvZmZzZXQsIHRtcCwgbWFzazsKLQotCS8qCi0JICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAotCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwuLi4KLQkgKi8KLQltYXNrID0gX19BRERSX01BU0s7Ci0jaWZkZWYgQ09ORklHXzY0QklUCi0JaWYgKGFkZHIgPj0gKGFkZHJfdCkgJmR1bW15LT5yZWdzLmFjcnMgJiYKLQkgICAgYWRkciA8IChhZGRyX3QpICZkdW1teS0+cmVncy5vcmlnX2dwcjIpCi0JCW1hc2sgPSAzOwotI2VuZGlmCi0JaWYgKChhZGRyICYgbWFzaykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcikgLSBfX0FERFJfTUFTSykKLQkJcmV0dXJuIC1FSU87CisJYWRkcl90IG9mZnNldCwgdG1wOwogCiAJaWYgKGFkZHIgPCAoYWRkcl90KSAmZHVtbXktPnJlZ3MuYWNycykgewogCQkvKgpAQCAtMTk3LDI0ICsxOTAsMTggQEAKIAl9IGVsc2UKIAkJdG1wID0gMDsKIAotCXJldHVybiBwdXRfdXNlcih0bXAsIChhZGRyX3QgX191c2VyICopIGRhdGEpOworCXJldHVybiB0bXA7CiB9CiAKLS8qCi0gKiBXcml0ZSBhIHdvcmQgdG8gdGhlIHVzZXIgYXJlYSBvZiBhIHByb2Nlc3MgYXQgbG9jYXRpb24gYWRkci4gVGhpcwotICogb3BlcmF0aW9uIGRvZXMgaGF2ZSBhbiBhZGRpdGlvbmFsIHByb2JsZW0gY29tcGFyZWQgdG8gcGVla191c2VyLgotICogU3RvcmVzIHRvIHRoZSBwcm9ncmFtIHN0YXR1cyB3b3JkIGFuZCBvbiB0aGUgZmxvYXRpbmcgcG9pbnQKLSAqIGNvbnRyb2wgcmVnaXN0ZXIgbmVlZHMgdG8gZ2V0IGNoZWNrZWQgZm9yIHZhbGlkaXR5LgotICovCiBzdGF0aWMgaW50Ci1wb2tlX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQorcGVla191c2VyKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGFkZHJfdCBhZGRyLCBhZGRyX3QgZGF0YSkKIHsKIAlzdHJ1Y3QgdXNlciAqZHVtbXkgPSBOVUxMOwotCWFkZHJfdCBvZmZzZXQsIG1hc2s7CisJYWRkcl90IHRtcCwgbWFzazsKIAogCS8qCiAJICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAotCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwgaW5kZWVkLi4uCisJICogYW4gYWxpZ25tZW50IG9mIDQuIFByb2dyYW1tZXJzIGZyb20gaGVsbC4uLgogCSAqLwogCW1hc2sgPSBfX0FERFJfTUFTSzsKICNpZmRlZiBDT05GSUdfNjRCSVQKQEAgLTIyNSw2ICsyMTIsMjEgQEAKIAlpZiAoKGFkZHIgJiBtYXNrKSB8fCBhZGRyID4gc2l6ZW9mKHN0cnVjdCB1c2VyKSAtIF9fQUREUl9NQVNLKQogCQlyZXR1cm4gLUVJTzsKIAorCXRtcCA9IF9fcGVla191c2VyKGNoaWxkLCBhZGRyKTsKKwlyZXR1cm4gcHV0X3VzZXIodG1wLCAoYWRkcl90IF9fdXNlciAqKSBkYXRhKTsKK30KKworLyoKKyAqIFdyaXRlIGEgd29yZCB0byB0aGUgdXNlciBhcmVhIG9mIGEgcHJvY2VzcyBhdCBsb2NhdGlvbiBhZGRyLiBUaGlzCisgKiBvcGVyYXRpb24gZG9lcyBoYXZlIGFuIGFkZGl0aW9uYWwgcHJvYmxlbSBjb21wYXJlZCB0byBwZWVrX3VzZXIuCisgKiBTdG9yZXMgdG8gdGhlIHByb2dyYW0gc3RhdHVzIHdvcmQgYW5kIG9uIHRoZSBmbG9hdGluZyBwb2ludAorICogY29udHJvbCByZWdpc3RlciBuZWVkcyB0byBnZXQgY2hlY2tlZCBmb3IgdmFsaWRpdHkuCisgKi8KK3N0YXRpYyBpbnQgX19wb2tlX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQoreworCXN0cnVjdCB1c2VyICpkdW1teSA9IE5VTEw7CisJYWRkcl90IG9mZnNldDsKKwogCWlmIChhZGRyIDwgKGFkZHJfdCkgJmR1bW15LT5yZWdzLmFjcnMpIHsKIAkJLyoKIAkJICogcHN3IGFuZCBncHJzIGFyZSBzdG9yZWQgb24gdGhlIHN0YWNrCkBAIC0yOTIsNiArMjk0LDI4IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQKK3Bva2VfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCit7CisJc3RydWN0IHVzZXIgKmR1bW15ID0gTlVMTDsKKwlhZGRyX3QgbWFzazsKKworCS8qCisJICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAorCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwgaW5kZWVkLi4uCisJICovCisJbWFzayA9IF9fQUREUl9NQVNLOworI2lmZGVmIENPTkZJR182NEJJVAorCWlmIChhZGRyID49IChhZGRyX3QpICZkdW1teS0+cmVncy5hY3JzICYmCisJICAgIGFkZHIgPCAoYWRkcl90KSAmZHVtbXktPnJlZ3Mub3JpZ19ncHIyKQorCQltYXNrID0gMzsKKyNlbmRpZgorCWlmICgoYWRkciAmIG1hc2spIHx8IGFkZHIgPiBzaXplb2Yoc3RydWN0IHVzZXIpIC0gX19BRERSX01BU0spCisJCXJldHVybiAtRUlPOworCisJcmV0dXJuIF9fcG9rZV91c2VyKGNoaWxkLCBhZGRyLCBkYXRhKTsKK30KKwogbG9uZyBhcmNoX3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBsb25nIHJlcXVlc3QsIGxvbmcgYWRkciwgbG9uZyBkYXRhKQogewogCXB0cmFjZV9hcmVhIHBhcmVhOyAKQEAgLTM2NywxOCArMzkxLDEzIEBACiAvKgogICogU2FtZSBhcyBwZWVrX3VzZXIgYnV0IGZvciBhIDMxIGJpdCBwcm9ncmFtLgogICovCi1zdGF0aWMgaW50Ci1wZWVrX3VzZXJfZW11MzEoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQorc3RhdGljIHUzMiBfX3BlZWtfdXNlcl9jb21wYXQoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIpCiB7CiAJc3RydWN0IHVzZXIzMiAqZHVtbXkzMiA9IE5VTEw7CiAJcGVyX3N0cnVjdDMyICpkdW1teV9wZXIzMiA9IE5VTEw7CiAJYWRkcl90IG9mZnNldDsKIAlfX3UzMiB0bXA7CiAKLQlpZiAoIXRlc3RfdGhyZWFkX2ZsYWcoVElGXzMxQklUKSB8fAotCSAgICAoYWRkciAmIDMpIHx8IGFkZHIgPiBzaXplb2Yoc3RydWN0IHVzZXIpIC0gMykKLQkJcmV0dXJuIC1FSU87Ci0KIAlpZiAoYWRkciA8IChhZGRyX3QpICZkdW1teTMyLT5yZWdzLmFjcnMpIHsKIAkJLyoKIAkJICogcHN3IGFuZCBncHJzIGFyZSBzdG9yZWQgb24gdGhlIHN0YWNrCkBAIC00MzUsMjUgKzQ1NCwzMiBAQAogCX0gZWxzZQogCQl0bXAgPSAwOwogCisJcmV0dXJuIHRtcDsKK30KKworc3RhdGljIGludCBwZWVrX3VzZXJfY29tcGF0KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgICAgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQoreworCV9fdTMyIHRtcDsKKworCWlmICghdGVzdF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpIHx8CisJICAgIChhZGRyICYgMykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcikgLSAzKQorCQlyZXR1cm4gLUVJTzsKKworCXRtcCA9IF9fcGVla191c2VyX2NvbXBhdChjaGlsZCwgYWRkcik7CiAJcmV0dXJuIHB1dF91c2VyKHRtcCwgKF9fdTMyIF9fdXNlciAqKSBkYXRhKTsKIH0KIAogLyoKICAqIFNhbWUgYXMgcG9rZV91c2VyIGJ1dCBmb3IgYSAzMSBiaXQgcHJvZ3JhbS4KICAqLwotc3RhdGljIGludAotcG9rZV91c2VyX2VtdTMxKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGFkZHJfdCBhZGRyLCBhZGRyX3QgZGF0YSkKK3N0YXRpYyBpbnQgX19wb2tlX3VzZXJfY29tcGF0KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgICAgICBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCiB7CiAJc3RydWN0IHVzZXIzMiAqZHVtbXkzMiA9IE5VTEw7CiAJcGVyX3N0cnVjdDMyICpkdW1teV9wZXIzMiA9IE5VTEw7CisJX191MzIgdG1wID0gKF9fdTMyKSBkYXRhOwogCWFkZHJfdCBvZmZzZXQ7Ci0JX191MzIgdG1wOwotCi0JaWYgKCF0ZXN0X3RocmVhZF9mbGFnKFRJRl8zMUJJVCkgfHwKLQkgICAgKGFkZHIgJiAzKSB8fCBhZGRyID4gc2l6ZW9mKHN0cnVjdCB1c2VyMzIpIC0gMykKLQkJcmV0dXJuIC1FSU87Ci0KLQl0bXAgPSAoX191MzIpIGRhdGE7CiAKIAlpZiAoYWRkciA8IChhZGRyX3QpICZkdW1teTMyLT5yZWdzLmFjcnMpIHsKIAkJLyoKQEAgLTUyOCw2ICs1NTQsMTYgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBwb2tlX3VzZXJfY29tcGF0KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgICAgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQoreworCWlmICghdGVzdF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpIHx8CisJICAgIChhZGRyICYgMykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcjMyKSAtIDMpCisJCXJldHVybiAtRUlPOworCisJcmV0dXJuIF9fcG9rZV91c2VyX2NvbXBhdChjaGlsZCwgYWRkciwgZGF0YSk7Cit9CisKIGxvbmcgY29tcGF0X2FyY2hfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGNvbXBhdF9sb25nX3QgcmVxdWVzdCwKIAkJCWNvbXBhdF91bG9uZ190IGNhZGRyLCBjb21wYXRfdWxvbmdfdCBjZGF0YSkKIHsKQEAgLTUzOSwxMSArNTc1LDExIEBACiAJc3dpdGNoIChyZXF1ZXN0KSB7CiAJY2FzZSBQVFJBQ0VfUEVFS1VTUjoKIAkJLyogcmVhZCB0aGUgd29yZCBhdCBsb2NhdGlvbiBhZGRyIGluIHRoZSBVU0VSIGFyZWEuICovCi0JCXJldHVybiBwZWVrX3VzZXJfZW11MzEoY2hpbGQsIGFkZHIsIGRhdGEpOworCQlyZXR1cm4gcGVla191c2VyX2NvbXBhdChjaGlsZCwgYWRkciwgZGF0YSk7CiAKIAljYXNlIFBUUkFDRV9QT0tFVVNSOgogCQkvKiB3cml0ZSB0aGUgd29yZCBhdCBsb2NhdGlvbiBhZGRyIGluIHRoZSBVU0VSIGFyZWEgKi8KLQkJcmV0dXJuIHBva2VfdXNlcl9lbXUzMShjaGlsZCwgYWRkciwgZGF0YSk7CisJCXJldHVybiBwb2tlX3VzZXJfY29tcGF0KGNoaWxkLCBhZGRyLCBkYXRhKTsKIAogCWNhc2UgUFRSQUNFX1BFRUtVU1JfQVJFQToKIAljYXNlIFBUUkFDRV9QT0tFVVNSX0FSRUE6CkBAIC01NTUsMTMgKzU5MSwxMyBAQAogCQljb3BpZWQgPSAwOwogCQl3aGlsZSAoY29waWVkIDwgcGFyZWEubGVuKSB7CiAJCQlpZiAocmVxdWVzdCA9PSBQVFJBQ0VfUEVFS1VTUl9BUkVBKQotCQkJCXJldCA9IHBlZWtfdXNlcl9lbXUzMShjaGlsZCwgYWRkciwgZGF0YSk7CisJCQkJcmV0ID0gcGVla191c2VyX2NvbXBhdChjaGlsZCwgYWRkciwgZGF0YSk7CiAJCQllbHNlIHsKIAkJCQlfX3UzMiB1dG1wOwogCQkJCWlmIChnZXRfdXNlcih1dG1wLAogCQkJCQkgICAgIChfX3UzMiBfX2ZvcmNlIF9fdXNlciAqKSBkYXRhKSkKIAkJCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCQkJcmV0ID0gcG9rZV91c2VyX2VtdTMxKGNoaWxkLCBhZGRyLCB1dG1wKTsKKwkJCQlyZXQgPSBwb2tlX3VzZXJfY29tcGF0KGNoaWxkLCBhZGRyLCB1dG1wKTsKIAkJCX0KIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKQEAgLTYxMCwzICs2NDYsMjQwIEBACiAJCQkJICAgIHJlZ3MtPmdwcnNbMl0sIHJlZ3MtPm9yaWdfZ3ByMiwgcmVncy0+Z3Byc1szXSwKIAkJCQkgICAgcmVncy0+Z3Byc1s0XSwgcmVncy0+Z3Byc1s1XSk7CiB9CisKKy8qCisgKiB1c2VyX3JlZ3NldCBkZWZpbml0aW9ucy4KKyAqLworCitzdGF0aWMgaW50IHMzOTBfcmVnc19nZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCisJCQkgY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0ICpyZWdzZXQsCisJCQkgdW5zaWduZWQgaW50IHBvcywgdW5zaWduZWQgaW50IGNvdW50LAorCQkJIHZvaWQgKmtidWYsIHZvaWQgX191c2VyICp1YnVmKQoreworCWlmICh0YXJnZXQgPT0gY3VycmVudCkKKwkJc2F2ZV9hY2Nlc3NfcmVncyh0YXJnZXQtPnRocmVhZC5hY3JzKTsKKworCWlmIChrYnVmKSB7CisJCXVuc2lnbmVkIGxvbmcgKmsgPSBrYnVmOworCQl3aGlsZSAoY291bnQgPiAwKSB7CisJCQkqaysrID0gX19wZWVrX3VzZXIodGFyZ2V0LCBwb3MpOworCQkJY291bnQgLT0gc2l6ZW9mKCprKTsKKwkJCXBvcyArPSBzaXplb2YoKmspOworCQl9CisJfSBlbHNlIHsKKwkJdW5zaWduZWQgbG9uZyBfX3VzZXIgKnUgPSB1YnVmOworCQl3aGlsZSAoY291bnQgPiAwKSB7CisJCQlpZiAoX19wdXRfdXNlcihfX3BlZWtfdXNlcih0YXJnZXQsIHBvcyksIHUrKykpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQljb3VudCAtPSBzaXplb2YoKnUpOworCQkJcG9zICs9IHNpemVvZigqdSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczM5MF9yZWdzX3NldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCSBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXQgKnJlZ3NldCwKKwkJCSB1bnNpZ25lZCBpbnQgcG9zLCB1bnNpZ25lZCBpbnQgY291bnQsCisJCQkgY29uc3Qgdm9pZCAqa2J1ZiwgY29uc3Qgdm9pZCBfX3VzZXIgKnVidWYpCit7CisJaW50IHJjID0gMDsKKworCWlmICh0YXJnZXQgPT0gY3VycmVudCkKKwkJc2F2ZV9hY2Nlc3NfcmVncyh0YXJnZXQtPnRocmVhZC5hY3JzKTsKKworCWlmIChrYnVmKSB7CisJCWNvbnN0IHVuc2lnbmVkIGxvbmcgKmsgPSBrYnVmOworCQl3aGlsZSAoY291bnQgPiAwICYmICFyYykgeworCQkJcmMgPSBfX3Bva2VfdXNlcih0YXJnZXQsIHBvcywgKmsrKyk7CisJCQljb3VudCAtPSBzaXplb2YoKmspOworCQkJcG9zICs9IHNpemVvZigqayk7CisJCX0KKwl9IGVsc2UgeworCQljb25zdCB1bnNpZ25lZCBsb25nICBfX3VzZXIgKnUgPSB1YnVmOworCQl3aGlsZSAoY291bnQgPiAwICYmICFyYykgeworCQkJdW5zaWduZWQgbG9uZyB3b3JkOworCQkJcmMgPSBfX2dldF91c2VyKHdvcmQsIHUrKyk7CisJCQlpZiAocmMpCisJCQkJYnJlYWs7CisJCQlyYyA9IF9fcG9rZV91c2VyKHRhcmdldCwgcG9zLCB3b3JkKTsKKwkJCWNvdW50IC09IHNpemVvZigqdSk7CisJCQlwb3MgKz0gc2l6ZW9mKCp1KTsKKwkJfQorCX0KKworCWlmIChyYyA9PSAwICYmIHRhcmdldCA9PSBjdXJyZW50KQorCQlyZXN0b3JlX2FjY2Vzc19yZWdzKHRhcmdldC0+dGhyZWFkLmFjcnMpOworCisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IHMzOTBfZnByZWdzX2dldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCSAgIGNvbnN0IHN0cnVjdCB1c2VyX3JlZ3NldCAqcmVnc2V0LCB1bnNpZ25lZCBpbnQgcG9zLAorCQkJICAgdW5zaWduZWQgaW50IGNvdW50LCB2b2lkICprYnVmLCB2b2lkIF9fdXNlciAqdWJ1ZikKK3sKKwlpZiAodGFyZ2V0ID09IGN1cnJlbnQpCisJCXNhdmVfZnBfcmVncygmdGFyZ2V0LT50aHJlYWQuZnBfcmVncyk7CisKKwlyZXR1cm4gdXNlcl9yZWdzZXRfY29weW91dCgmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwKKwkJCQkgICAmdGFyZ2V0LT50aHJlYWQuZnBfcmVncywgMCwgLTEpOworfQorCitzdGF0aWMgaW50IHMzOTBfZnByZWdzX3NldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCSAgIGNvbnN0IHN0cnVjdCB1c2VyX3JlZ3NldCAqcmVnc2V0LCB1bnNpZ25lZCBpbnQgcG9zLAorCQkJICAgdW5zaWduZWQgaW50IGNvdW50LCBjb25zdCB2b2lkICprYnVmLAorCQkJICAgY29uc3Qgdm9pZCBfX3VzZXIgKnVidWYpCit7CisJaW50IHJjID0gMDsKKworCWlmICh0YXJnZXQgPT0gY3VycmVudCkKKwkJc2F2ZV9mcF9yZWdzKCZ0YXJnZXQtPnRocmVhZC5mcF9yZWdzKTsKKworCS8qIElmIHNldHRpbmcgRlBDLCBtdXN0IHZhbGlkYXRlIGl0IGZpcnN0LiAqLworCWlmIChjb3VudCA+IDAgJiYgcG9zIDwgb2Zmc2V0b2YoczM5MF9mcF9yZWdzLCBmcHJzKSkgeworCQl1MzIgZnBjWzJdID0geyB0YXJnZXQtPnRocmVhZC5mcF9yZWdzLmZwYywgMCB9OworCQlyYyA9IHVzZXJfcmVnc2V0X2NvcHlpbigmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwgJmZwYywKKwkJCQkJMCwgb2Zmc2V0b2YoczM5MF9mcF9yZWdzLCBmcHJzKSk7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKwkJaWYgKChmcGNbMF0gJiB+RlBDX1ZBTElEX01BU0spICE9IDAgfHwgZnBjWzFdICE9IDApCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJdGFyZ2V0LT50aHJlYWQuZnBfcmVncy5mcGMgPSBmcGNbMF07CisJfQorCisJaWYgKHJjID09IDAgJiYgY291bnQgPiAwKQorCQlyYyA9IHVzZXJfcmVnc2V0X2NvcHlpbigmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwKKwkJCQkJdGFyZ2V0LT50aHJlYWQuZnBfcmVncy5mcHJzLAorCQkJCQlvZmZzZXRvZihzMzkwX2ZwX3JlZ3MsIGZwcnMpLCAtMSk7CisKKwlpZiAocmMgPT0gMCAmJiB0YXJnZXQgPT0gY3VycmVudCkKKwkJcmVzdG9yZV9mcF9yZWdzKCZ0YXJnZXQtPnRocmVhZC5mcF9yZWdzKTsKKworCXJldHVybiByYzsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB1c2VyX3JlZ3NldCBzMzkwX3JlZ3NldHNbXSA9IHsKKwlbUkVHU0VUX0dFTkVSQUxdID0geworCQkuY29yZV9ub3RlX3R5cGUgPSBOVF9QUlNUQVRVUywKKwkJLm4gPSBzaXplb2YoczM5MF9yZWdzKSAvIHNpemVvZihsb25nKSwKKwkJLnNpemUgPSBzaXplb2YobG9uZyksCisJCS5hbGlnbiA9IHNpemVvZihsb25nKSwKKwkJLmdldCA9IHMzOTBfcmVnc19nZXQsCisJCS5zZXQgPSBzMzkwX3JlZ3Nfc2V0LAorCX0sCisJW1JFR1NFVF9GUF0gPSB7CisJCS5jb3JlX25vdGVfdHlwZSA9IE5UX1BSRlBSRUcsCisJCS5uID0gc2l6ZW9mKHMzOTBfZnBfcmVncykgLyBzaXplb2YobG9uZyksCisJCS5zaXplID0gc2l6ZW9mKGxvbmcpLAorCQkuYWxpZ24gPSBzaXplb2YobG9uZyksCisJCS5nZXQgPSBzMzkwX2ZwcmVnc19nZXQsCisJCS5zZXQgPSBzMzkwX2ZwcmVnc19zZXQsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyB1c2VyX3MzOTBfdmlldyA9IHsKKwkubmFtZSA9IFVUU19NQUNISU5FLAorCS5lX21hY2hpbmUgPSBFTV9TMzkwLAorCS5yZWdzZXRzID0gczM5MF9yZWdzZXRzLAorCS5uID0gQVJSQVlfU0laRShzMzkwX3JlZ3NldHMpCit9OworCisjaWZkZWYgQ09ORklHX0NPTVBBVAorc3RhdGljIGludCBzMzkwX2NvbXBhdF9yZWdzX2dldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCQljb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXQgKnJlZ3NldCwKKwkJCQl1bnNpZ25lZCBpbnQgcG9zLCB1bnNpZ25lZCBpbnQgY291bnQsCisJCQkJdm9pZCAqa2J1Ziwgdm9pZCBfX3VzZXIgKnVidWYpCit7CisJaWYgKHRhcmdldCA9PSBjdXJyZW50KQorCQlzYXZlX2FjY2Vzc19yZWdzKHRhcmdldC0+dGhyZWFkLmFjcnMpOworCisJaWYgKGtidWYpIHsKKwkJY29tcGF0X3Vsb25nX3QgKmsgPSBrYnVmOworCQl3aGlsZSAoY291bnQgPiAwKSB7CisJCQkqaysrID0gX19wZWVrX3VzZXJfY29tcGF0KHRhcmdldCwgcG9zKTsKKwkJCWNvdW50IC09IHNpemVvZigqayk7CisJCQlwb3MgKz0gc2l6ZW9mKCprKTsKKwkJfQorCX0gZWxzZSB7CisJCWNvbXBhdF91bG9uZ190IF9fdXNlciAqdSA9IHVidWY7CisJCXdoaWxlIChjb3VudCA+IDApIHsKKwkJCWlmIChfX3B1dF91c2VyKF9fcGVla191c2VyX2NvbXBhdCh0YXJnZXQsIHBvcyksIHUrKykpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQljb3VudCAtPSBzaXplb2YoKnUpOworCQkJcG9zICs9IHNpemVvZigqdSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczM5MF9jb21wYXRfcmVnc19zZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCisJCQkJY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0ICpyZWdzZXQsCisJCQkJdW5zaWduZWQgaW50IHBvcywgdW5zaWduZWQgaW50IGNvdW50LAorCQkJCWNvbnN0IHZvaWQgKmtidWYsIGNvbnN0IHZvaWQgX191c2VyICp1YnVmKQoreworCWludCByYyA9IDA7CisKKwlpZiAodGFyZ2V0ID09IGN1cnJlbnQpCisJCXNhdmVfYWNjZXNzX3JlZ3ModGFyZ2V0LT50aHJlYWQuYWNycyk7CisKKwlpZiAoa2J1ZikgeworCQljb25zdCBjb21wYXRfdWxvbmdfdCAqayA9IGtidWY7CisJCXdoaWxlIChjb3VudCA+IDAgJiYgIXJjKSB7CisJCQlyYyA9IF9fcG9rZV91c2VyX2NvbXBhdCh0YXJnZXQsIHBvcywgKmsrKyk7CisJCQljb3VudCAtPSBzaXplb2YoKmspOworCQkJcG9zICs9IHNpemVvZigqayk7CisJCX0KKwl9IGVsc2UgeworCQljb25zdCBjb21wYXRfdWxvbmdfdCAgX191c2VyICp1ID0gdWJ1ZjsKKwkJd2hpbGUgKGNvdW50ID4gMCAmJiAhcmMpIHsKKwkJCWNvbXBhdF91bG9uZ190IHdvcmQ7CisJCQlyYyA9IF9fZ2V0X3VzZXIod29yZCwgdSsrKTsKKwkJCWlmIChyYykKKwkJCQlicmVhazsKKwkJCXJjID0gX19wb2tlX3VzZXJfY29tcGF0KHRhcmdldCwgcG9zLCB3b3JkKTsKKwkJCWNvdW50IC09IHNpemVvZigqdSk7CisJCQlwb3MgKz0gc2l6ZW9mKCp1KTsKKwkJfQorCX0KKworCWlmIChyYyA9PSAwICYmIHRhcmdldCA9PSBjdXJyZW50KQorCQlyZXN0b3JlX2FjY2Vzc19yZWdzKHRhcmdldC0+dGhyZWFkLmFjcnMpOworCisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0IHMzOTBfY29tcGF0X3JlZ3NldHNbXSA9IHsKKwlbUkVHU0VUX0dFTkVSQUxdID0geworCQkuY29yZV9ub3RlX3R5cGUgPSBOVF9QUlNUQVRVUywKKwkJLm4gPSBzaXplb2YoczM5MF9jb21wYXRfcmVncykgLyBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5zaXplID0gc2l6ZW9mKGNvbXBhdF9sb25nX3QpLAorCQkuYWxpZ24gPSBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5nZXQgPSBzMzkwX2NvbXBhdF9yZWdzX2dldCwKKwkJLnNldCA9IHMzOTBfY29tcGF0X3JlZ3Nfc2V0LAorCX0sCisJW1JFR1NFVF9GUF0gPSB7CisJCS5jb3JlX25vdGVfdHlwZSA9IE5UX1BSRlBSRUcsCisJCS5uID0gc2l6ZW9mKHMzOTBfZnBfcmVncykgLyBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5zaXplID0gc2l6ZW9mKGNvbXBhdF9sb25nX3QpLAorCQkuYWxpZ24gPSBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5nZXQgPSBzMzkwX2ZwcmVnc19nZXQsCisJCS5zZXQgPSBzMzkwX2ZwcmVnc19zZXQsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyB1c2VyX3MzOTBfY29tcGF0X3ZpZXcgPSB7CisJLm5hbWUgPSAiczM5MCIsCisJLmVfbWFjaGluZSA9IEVNX1MzOTAsCisJLnJlZ3NldHMgPSBzMzkwX2NvbXBhdF9yZWdzZXRzLAorCS5uID0gQVJSQVlfU0laRShzMzkwX2NvbXBhdF9yZWdzZXRzKQorfTsKKyNlbmRpZgorCitjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyAqdGFza191c2VyX3JlZ3NldF92aWV3KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKK3sKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisJaWYgKHRlc3RfdHNrX3RocmVhZF9mbGFnKHRhc2ssIFRJRl8zMUJJVCkpCisJCXJldHVybiAmdXNlcl9zMzkwX2NvbXBhdF92aWV3OworI2VuZGlmCisJcmV0dXJuICZ1c2VyX3MzOTBfdmlldzsKK30KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvczM5MC9rZXJuZWwvc2V0dXAuYwppbmRleCAyYmM3MGI2Li5iMzU4ZTE4IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9zZXR1cC5jCkBAIC03Nyw3ICs3Nyw3IEBACiB1bnNpZ25lZCBsb25nIGVsZl9od2NhcCA9IDA7CiBjaGFyIGVsZl9wbGF0Zm9ybVtFTEZfUExBVEZPUk1fU0laRV07CiAKLXN0cnVjdCBtZW1fY2h1bmsgX19tZW1pbml0ZGF0YSBtZW1vcnlfY2h1bmtbTUVNT1JZX0NIVU5LU107CitzdHJ1Y3QgbWVtX2NodW5rIF9faW5pdGRhdGEgbWVtb3J5X2NodW5rW01FTU9SWV9DSFVOS1NdOwogdm9sYXRpbGUgaW50IF9fY3B1X2xvZ2ljYWxfbWFwW05SX0NQVVNdOyAvKiBsb2dpY2FsIGNwdSB0byBjcHUgYWRkcmVzcyAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSBtZW1vcnlfZW5kOwogCkBAIC0yMDUsMTIgKzIwNSw2IEBACiAJCQlTRVRfQ09OU09MRV9TQ0xQOwogI2VuZGlmCiAJCX0KLSAgICAgICAgfSBlbHNlIGlmIChNQUNISU5FX0lTX1AzOTApIHsKLSNpZiBkZWZpbmVkKENPTkZJR19UTjMyMTVfQ09OU09MRSkKLQkJU0VUX0NPTlNPTEVfMzIxNTsKLSNlbGlmIGRlZmluZWQoQ09ORklHX1ROMzI3MF9DT05TT0xFKQotCQlTRVRfQ09OU09MRV8zMjcwOwotI2VuZGlmCiAJfSBlbHNlIHsKICNpZiBkZWZpbmVkKENPTkZJR19TQ0xQX0NPTlNPTEUpIHx8IGRlZmluZWQoQ09ORklHX1NDTFBfVlQyMjBfQ09OU09MRSkKIAkJU0VUX0NPTlNPTEVfU0NMUDsKQEAgLTIyMSwxOCArMjE1LDE3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfWkZDUERVTVApIHx8IGRlZmluZWQoQ09ORklHX1pGQ1BEVU1QX01PRFVMRSkKIHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF96ZmNwZHVtcCh1bnNpZ25lZCBpbnQgY29uc29sZV9kZXZubykKIHsKLQlzdGF0aWMgY2hhciBzdHJbNjRdOworCXN0YXRpYyBjaGFyIHN0cls0MV07CiAKIAlpZiAoaXBsX2luZm8udHlwZSAhPSBJUExfVFlQRV9GQ1BfRFVNUCkKIAkJcmV0dXJuOwogCWlmIChjb25zb2xlX2Rldm5vICE9IC0xKQotCQlzcHJpbnRmKHN0ciwgImNpb19pZ25vcmU9YWxsLCEwLjAuJTA0eCwhMC4wLiUwNHgiLAorCQlzcHJpbnRmKHN0ciwgIiBjaW9faWdub3JlPWFsbCwhMC4wLiUwNHgsITAuMC4lMDR4IiwKIAkJCWlwbF9pbmZvLmRhdGEuZmNwLmRldl9pZC5kZXZubywgY29uc29sZV9kZXZubyk7CiAJZWxzZQotCQlzcHJpbnRmKHN0ciwgImNpb19pZ25vcmU9YWxsLCEwLjAuJTA0eCIsCisJCXNwcmludGYoc3RyLCAiIGNpb19pZ25vcmU9YWxsLCEwLjAuJTA0eCIsCiAJCQlpcGxfaW5mby5kYXRhLmZjcC5kZXZfaWQuZGV2bm8pOwotCXN0cmNhdChDT01NQU5EX0xJTkUsICIgIik7Ci0Jc3RyY2F0KENPTU1BTkRfTElORSwgc3RyKTsKKwlzdHJjYXQoYm9vdF9jb21tYW5kX2xpbmUsIHN0cik7CiAJY29uc29sZV9sb2dsZXZlbCA9IDI7CiB9CiAjZWxzZQpAQCAtMjg5LDMyICsyODIsNiBAQAogfQogZWFybHlfcGFyYW0oIm1lbSIsIGVhcmx5X3BhcnNlX21lbSk7CiAKLS8qCi0gKiAiaXBsZGVsYXk9WFhYW3NtXSIgc2V0cyBpcGwgZGVsYXkgaW4gc2Vjb25kcyBvciBtaW51dGVzCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IGVhcmx5X3BhcnNlX2lwbGRlbGF5KGNoYXIgKnApCi17Ci0JdW5zaWduZWQgbG9uZyBkZWxheSA9IDA7Ci0KLQlkZWxheSA9IHNpbXBsZV9zdHJ0b3VsKHAsICZwLCAwKTsKLQotCXN3aXRjaCAoKnApIHsKLQljYXNlICdzJzoKLQljYXNlICdTJzoKLQkJZGVsYXkgKj0gMTAwMDAwMDsKLQkJYnJlYWs7Ci0JY2FzZSAnbSc6Ci0JY2FzZSAnTSc6Ci0JCWRlbGF5ICo9IDYwICogMTAwMDAwMDsKLQl9Ci0KLQkvKiBub3cgd2FpdCBmb3IgdGhlIHJlcXVlc3RlZCBhbW91bnQgb2YgdGltZSAqLwotCXVkZWxheShkZWxheSk7Ci0KLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJpcGxkZWxheSIsIGVhcmx5X3BhcnNlX2lwbGRlbGF5KTsKLQogI2lmZGVmIENPTkZJR19TMzkwX1NXSVRDSF9BTU9ERQogI2lmZGVmIENPTkZJR19QR1NURQogdW5zaWduZWQgaW50IHN3aXRjaF9hbW9kZSA9IDE7CkBAIC04MDQsMTEgKzc3MSw5IEBACiAJCXByaW50aygiV2UgYXJlIHJ1bm5pbmcgbmF0aXZlICg2NCBiaXQgbW9kZSlcbiIpOwogI2VuZGlmIC8qIENPTkZJR182NEJJVCAqLwogCi0JLyogU2F2ZSB1bnBhcnNlZCBjb21tYW5kIGxpbmUgY29weSBmb3IgL3Byb2MvY21kbGluZSAqLwotCXN0cmxjcHkoYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORSwgQ09NTUFORF9MSU5FX1NJWkUpOwotCi0JKmNtZGxpbmVfcCA9IENPTU1BTkRfTElORTsKLQkqKCpjbWRsaW5lX3AgKyBDT01NQU5EX0xJTkVfU0laRSAtIDEpID0gJ1wwJzsKKwkvKiBIYXZlIG9uZSBjb21tYW5kIGxpbmUgdGhhdCBpcyBwYXJzZWQgYW5kIHNhdmVkIGluIC9wcm9jL2NtZGxpbmUgKi8KKwkvKiBib290X2NvbW1hbmRfbGluZSBoYXMgYmVlbiBhbHJlYWR5IHNldCB1cCBpbiBlYXJseS5jICovCisJKmNtZGxpbmVfcCA9IGJvb3RfY29tbWFuZF9saW5lOwogCiAgICAgICAgIFJPT1RfREVWID0gUm9vdF9SQU0wOwogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3N0YWNrdHJhY2UuYyBiL2FyY2gvczM5MC9rZXJuZWwvc3RhY2t0cmFjZS5jCmluZGV4IDg1ZTQ2YTUuLjU3NTcxZjEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvc3RhY2t0cmFjZS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvc3RhY2t0cmFjZS5jCkBAIC04MSw2ICs4MSw3IEBACiAJCQkgICBTMzkwX2xvd2NvcmUudGhyZWFkX2luZm8sCiAJCQkgICBTMzkwX2xvd2NvcmUudGhyZWFkX2luZm8gKyBUSFJFQURfU0laRSwgMSk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChzYXZlX3N0YWNrX3RyYWNlKTsKIAogdm9pZCBzYXZlX3N0YWNrX3RyYWNlX3RzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZSkKIHsKQEAgLTkzLDMgKzk0LDQgQEAKIAlpZiAodHJhY2UtPm5yX2VudHJpZXMgPCB0cmFjZS0+bWF4X2VudHJpZXMpCiAJCXRyYWNlLT5lbnRyaWVzW3RyYWNlLT5ucl9lbnRyaWVzKytdID0gVUxPTkdfTUFYOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoc2F2ZV9zdGFja190cmFjZV90c2spOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC90aW1lLmMgYi9hcmNoL3MzOTAva2VybmVsL3RpbWUuYwppbmRleCA2MDM3ZWQyLi44MDUxZTkzIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3RpbWUuYworKysgYi9hcmNoL3MzOTAva2VybmVsL3RpbWUuYwpAQCAtMyw3ICszLDcgQEAKICAqICAgIFRpbWUgb2YgZGF5IGJhc2VkIHRpbWVyIGZ1bmN0aW9ucy4KICAqCiAgKiAgUzM5MCB2ZXJzaW9uCi0gKiAgICBDb3B5cmlnaHQgKEMpIDE5OTkgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsIElCTSBDb3Jwb3JhdGlvbgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk5LCAyMDA4CiAgKiAgICBBdXRob3Iocyk6IEhhcnRtdXQgUGVubmVyIChocEBkZS5pYm0uY29tKSwKICAqICAgICAgICAgICAgICAgTWFydGluIFNjaHdpZGVmc2t5IChzY2h3aWRlZnNreUBkZS5pYm0uY29tKSwKICAqICAgICAgICAgICAgICAgRGVuaXMgSm9zZXBoIEJhcnJvdyAoZGpiYXJyb3dAZGUuaWJtLmNvbSxiYXJyb3dfZGpAeWFob28uY29tKQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KICNpbmNsdWRlIDxsaW51eC9jbG9ja2NoaXBzLmg+CisjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CiAjaW5jbHVkZSA8YXNtL3MzOTBfZXh0Lmg+CkBAIC0xNjIsNyArMTYzLDcgQEAKIAkvKiBFbmFibGUgY2xvY2sgY29tcGFyYXRvciB0aW1lciBpbnRlcnJ1cHQuICovCiAJX19jdGxfc2V0X2JpdCgwLDExKTsKIAotCS8qIEFsd2F5cyBhbGxvdyBFVFIgZXh0ZXJuYWwgaW50ZXJydXB0cywgZXZlbiB3aXRob3V0IGFuIEVUUi4gKi8KKwkvKiBBbHdheXMgYWxsb3cgdGhlIHRpbWluZyBhbGVydCBleHRlcm5hbCBpbnRlcnJ1cHQuICovCiAJX19jdGxfc2V0X2JpdCgwLCA0KTsKIH0KIApAQCAtMTcwLDggKzE3MSwyMSBAQAogewogfQogCitzdGF0aWMgdm9pZCBldHJfdGltaW5nX2FsZXJ0KHN0cnVjdCBldHJfaXJxX3Bhcm0gKik7CitzdGF0aWMgdm9pZCBzdHBfdGltaW5nX2FsZXJ0KHN0cnVjdCBzdHBfaXJxX3Bhcm0gKik7CisKK3N0YXRpYyB2b2lkIHRpbWluZ19hbGVydF9pbnRlcnJ1cHQoX191MTYgY29kZSkKK3sKKwlpZiAoUzM5MF9sb3djb3JlLmV4dF9wYXJhbXMgJiAweDAwYzQwMDAwKQorCQlldHJfdGltaW5nX2FsZXJ0KChzdHJ1Y3QgZXRyX2lycV9wYXJtICopCisJCQkJICZTMzkwX2xvd2NvcmUuZXh0X3BhcmFtcyk7CisJaWYgKFMzOTBfbG93Y29yZS5leHRfcGFyYW1zICYgMHgwMDAzODAwMCkKKwkJc3RwX3RpbWluZ19hbGVydCgoc3RydWN0IHN0cF9pcnFfcGFybSAqKQorCQkJCSAmUzM5MF9sb3djb3JlLmV4dF9wYXJhbXMpOworfQorCiBzdGF0aWMgdm9pZCBldHJfcmVzZXQodm9pZCk7Ci1zdGF0aWMgdm9pZCBldHJfZXh0X2hhbmRsZXIoX191MTYpOworc3RhdGljIHZvaWQgc3RwX3Jlc2V0KHZvaWQpOwogCiAvKgogICogR2V0IHRoZSBUT0QgY2xvY2sgcnVubmluZy4KQEAgLTE4MSw2ICsxOTUsNyBAQAogCXU2NCB0aW1lOwogCiAJZXRyX3Jlc2V0KCk7CisJc3RwX3Jlc2V0KCk7CiAJaWYgKHN0b3JlX2Nsb2NrKCZ0aW1lKSA9PSAwKQogCQlyZXR1cm4gdGltZTsKIAkvKiBUT0QgY2xvY2sgbm90IHJ1bm5pbmcuIFNldCB0aGUgY2xvY2sgdG8gVW5peCBFcG9jaC4gKi8KQEAgLTIzMSw4ICsyNDYsOSBAQAogCWlmIChjbG9ja3NvdXJjZV9yZWdpc3RlcigmY2xvY2tzb3VyY2VfdG9kKSAhPSAwKQogCQlwYW5pYygiQ291bGQgbm90IHJlZ2lzdGVyIFRPRCBjbG9jayBzb3VyY2UiKTsKIAotCS8qIHJlcXVlc3QgdGhlIGV0ciBleHRlcm5hbCBpbnRlcnJ1cHQgKi8KLQlpZiAocmVnaXN0ZXJfZWFybHlfZXh0ZXJuYWxfaW50ZXJydXB0KDB4MTQwNiwgZXRyX2V4dF9oYW5kbGVyLAorCS8qIHJlcXVlc3QgdGhlIHRpbWluZyBhbGVydCBleHRlcm5hbCBpbnRlcnJ1cHQgKi8KKwlpZiAocmVnaXN0ZXJfZWFybHlfZXh0ZXJuYWxfaW50ZXJydXB0KDB4MTQwNiwKKwkJCQkJICAgICAgdGltaW5nX2FsZXJ0X2ludGVycnVwdCwKIAkJCQkJICAgICAgJmV4dF9pbnRfZXRyX2NjKSAhPSAwKQogCQlwYW5pYygiQ291bGRuJ3QgcmVxdWVzdCBleHRlcm5hbCBpbnRlcnJ1cHQgMHgxNDA2Iik7CiAKQEAgLTI0NSwxMCArMjYxLDExMiBAQAogfQogCiAvKgorICogVGhlIHRpbWUgaXMgImNsb2NrIi4gb2xkIGlzIHdoYXQgd2UgdGhpbmsgdGhlIHRpbWUgaXMuCisgKiBBZGp1c3QgdGhlIHZhbHVlIGJ5IGEgbXVsdGlwbGUgb2YgamlmZmllcyBhbmQgYWRkIHRoZSBkZWx0YSB0byBudHAuCisgKiAiZGVsYXkiIGlzIGFuIGFwcHJveGltYXRpb24gaG93IGxvbmcgdGhlIHN5bmNocm9uaXphdGlvbiB0b29rLiBJZgorICogdGhlIHRpbWUgY29ycmVjdGlvbiBpcyBwb3NpdGl2ZSwgdGhlbiAiZGVsYXkiIGlzIHN1YnRyYWN0ZWQgZnJvbQorICogdGhlIHRpbWUgZGlmZmVyZW5jZSBhbmQgb25seSB0aGUgcmVtYWluaW5nIHBhcnQgaXMgcGFzc2VkIHRvIG50cC4KKyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBhZGp1c3RfdGltZSh1bnNpZ25lZCBsb25nIGxvbmcgb2xkLAorCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBjbG9jaywKKwkJCQkgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZGVsYXkpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIGRlbHRhLCB0aWNrczsKKwlzdHJ1Y3QgdGltZXggYWRqdXN0OworCisJaWYgKGNsb2NrID4gb2xkKSB7CisJCS8qIEl0IGlzIGxhdGVyIHRoYW4gd2UgdGhvdWdodC4gKi8KKwkJZGVsdGEgPSB0aWNrcyA9IGNsb2NrIC0gb2xkOworCQlkZWx0YSA9IHRpY2tzID0gKGRlbHRhIDwgZGVsYXkpID8gMCA6IGRlbHRhIC0gZGVsYXk7CisJCWRlbHRhIC09IGRvX2Rpdih0aWNrcywgQ0xLX1RJQ0tTX1BFUl9KSUZGWSk7CisJCWFkanVzdC5vZmZzZXQgPSB0aWNrcyAqICgxMDAwMDAwIC8gSFopOworCX0gZWxzZSB7CisJCS8qIEl0IGlzIGVhcmxpZXIgdGhhbiB3ZSB0aG91Z2h0LiAqLworCQlkZWx0YSA9IHRpY2tzID0gb2xkIC0gY2xvY2s7CisJCWRlbHRhIC09IGRvX2Rpdih0aWNrcywgQ0xLX1RJQ0tTX1BFUl9KSUZGWSk7CisJCWRlbHRhID0gLWRlbHRhOworCQlhZGp1c3Qub2Zmc2V0ID0gLXRpY2tzICogKDEwMDAwMDAgLyBIWik7CisJfQorCWppZmZpZXNfdGltZXJfY2MgKz0gZGVsdGE7CisJaWYgKGFkanVzdC5vZmZzZXQgIT0gMCkgeworCQlwcmludGsoS0VSTl9OT1RJQ0UgImV0cjogdGltZSBhZGp1c3RlZCBieSAlbGkgbWljcm8tc2Vjb25kc1xuIiwKKwkJICAgICAgIGFkanVzdC5vZmZzZXQpOworCQlhZGp1c3QubW9kZXMgPSBBREpfT0ZGU0VUX1NJTkdMRVNIT1Q7CisJCWRvX2FkanRpbWV4KCZhZGp1c3QpOworCX0KKwlyZXR1cm4gZGVsdGE7Cit9CisKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShhdG9taWNfdCwgY2xvY2tfc3luY193b3JkKTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGNsb2NrX3N5bmNfZmxhZ3M7CisKKyNkZWZpbmUgQ0xPQ0tfU1lOQ19IQVNfRVRSCTAKKyNkZWZpbmUgQ0xPQ0tfU1lOQ19IQVNfU1RQCTEKKyNkZWZpbmUgQ0xPQ0tfU1lOQ19FVFIJCTIKKyNkZWZpbmUgQ0xPQ0tfU1lOQ19TVFAJCTMKKworLyoKKyAqIFRoZSBzeW5jaHJvbm91cyBnZXRfY2xvY2sgZnVuY3Rpb24uIEl0IHdpbGwgd3JpdGUgdGhlIGN1cnJlbnQgY2xvY2sKKyAqIHZhbHVlIHRvIHRoZSBjbG9jayBwb2ludGVyIGFuZCByZXR1cm4gMCBpZiB0aGUgY2xvY2sgaXMgaW4gc3luYyB3aXRoCisgKiB0aGUgZXh0ZXJuYWwgdGltZSBzb3VyY2UuIElmIHRoZSBjbG9jayBtb2RlIGlzIGxvY2FsIGl0IHdpbGwgcmV0dXJuCisgKiAtRU5PU1lTIGFuZCAtRUFHQUlOIGlmIHRoZSBjbG9jayBpcyBub3QgaW4gc3luYyB3aXRoIHRoZSBleHRlcm5hbAorICogcmVmZXJlbmNlLgorICovCitpbnQgZ2V0X3N5bmNfY2xvY2sodW5zaWduZWQgbG9uZyBsb25nICpjbG9jaykKK3sKKwlhdG9taWNfdCAqc3dfcHRyOworCXVuc2lnbmVkIGludCBzdzAsIHN3MTsKKworCXN3X3B0ciA9ICZnZXRfY3B1X3ZhcihjbG9ja19zeW5jX3dvcmQpOworCXN3MCA9IGF0b21pY19yZWFkKHN3X3B0cik7CisJKmNsb2NrID0gZ2V0X2Nsb2NrKCk7CisJc3cxID0gYXRvbWljX3JlYWQoc3dfcHRyKTsKKwlwdXRfY3B1X3ZhcihjbG9ja19zeW5jX3N5bmMpOworCWlmIChzdzAgPT0gc3cxICYmIChzdzAgJiAweDgwMDAwMDAwVSkpCisJCS8qIFN1Y2Nlc3M6IHRpbWUgaXMgaW4gc3luYy4gKi8KKwkJcmV0dXJuIDA7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX0hBU19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSAmJgorCSAgICAhdGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfU1RQLCAmY2xvY2tfc3luY19mbGFncykpCisJCXJldHVybiAtRU5PU1lTOworCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSAmJgorCSAgICAhdGVzdF9iaXQoQ0xPQ0tfU1lOQ19TVFAsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJcmV0dXJuIC1FQUNDRVM7CisJcmV0dXJuIC1FQUdBSU47Cit9CitFWFBPUlRfU1lNQk9MKGdldF9zeW5jX2Nsb2NrKTsKKworLyoKKyAqIE1ha2UgZ2V0X3N5bmNfY2xvY2sgcmV0dXJuIC1FQUdBSU4uCisgKi8KK3N0YXRpYyB2b2lkIGRpc2FibGVfc3luY19jbG9jayh2b2lkICpkdW1teSkKK3sKKwlhdG9taWNfdCAqc3dfcHRyID0gJl9fZ2V0X2NwdV92YXIoY2xvY2tfc3luY193b3JkKTsKKwkvKgorCSAqIENsZWFyIHRoZSBpbi1zeW5jIGJpdCAyXjMxLiBBbGwgZ2V0X3N5bmNfY2xvY2sgY2FsbHMgd2lsbAorCSAqIGZhaWwgdW50aWwgdGhlIHN5bmMgYml0IGlzIHR1cm5lZCBiYWNrIG9uLiBJbiBhZGRpdGlvbgorCSAqIGluY3JlYXNlIHRoZSAic2VxdWVuY2UiIGNvdW50ZXIgdG8gYXZvaWQgdGhlIHJhY2Ugb2YgYW4KKwkgKiBldHIgZXZlbnQgYW5kIHRoZSBjb21wbGV0ZSByZWNvdmVyeSBhZ2FpbnN0IGdldF9zeW5jX2Nsb2NrLgorCSAqLworCWF0b21pY19jbGVhcl9tYXNrKDB4ODAwMDAwMDAsIHN3X3B0cik7CisJYXRvbWljX2luYyhzd19wdHIpOworfQorCisvKgorICogTWFrZSBnZXRfc3luY19jbG9jayByZXR1cm4gMCBhZ2Fpbi4KKyAqIE5lZWRzIHRvIGJlIGNhbGxlZCBmcm9tIGEgY29udGV4dCBkaXNhYmxlZCBmb3IgcHJlZW1wdGlvbi4KKyAqLworc3RhdGljIHZvaWQgZW5hYmxlX3N5bmNfY2xvY2sodm9pZCkKK3sKKwlhdG9taWNfdCAqc3dfcHRyID0gJl9fZ2V0X2NwdV92YXIoY2xvY2tfc3luY193b3JkKTsKKwlhdG9taWNfc2V0X21hc2soMHg4MDAwMDAwMCwgc3dfcHRyKTsKK30KKworLyoKICAqIEV4dGVybmFsIFRpbWUgUmVmZXJlbmNlIChFVFIpIGNvZGUuCiAgKi8KIHN0YXRpYyBpbnQgZXRyX3BvcnQwX29ubGluZTsKIHN0YXRpYyBpbnQgZXRyX3BvcnQxX29ubGluZTsKK3N0YXRpYyBpbnQgZXRyX3N0ZWFpX2F2YWlsYWJsZTsKIAogc3RhdGljIGludCBfX2luaXQgZWFybHlfcGFyc2VfZXRyKGNoYXIgKnApCiB7CkBAIC0yNzMsMTIgKzM5MSw2IEBACiAJRVRSX0VWRU5UX1VQREFURSwKIH07CiAKLWVudW0gZXRyX2ZsYWdzIHsKLQlFVFJfRkxBR19FTk9TWVMsCi0JRVRSX0ZMQUdfRUFDQ0VTLAotCUVUUl9GTEFHX1NURUFJLAotfTsKLQogLyoKICAqIFZhbGlkIGJpdCBjb21iaW5hdGlvbnMgb2YgdGhlIGVhY3IgcmVnaXN0ZXIgYXJlICh4ID0gZG9uJ3QgY2FyZSk6CiAgKiBlMCBlMSBkcCBwMCBwMSBlYSBlcyBzbApAQCAtMzA1LDc0ICs0MTcsMTggQEAKICAqLwogc3RhdGljIHN0cnVjdCBldHJfZWFjciBldHJfZWFjcjsKIHN0YXRpYyB1NjQgZXRyX3RvbGVjOwkJCS8qIHRpbWUgb2YgbGFzdCBlYWNyIHVwZGF0ZSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgZXRyX2ZsYWdzOwogc3RhdGljIHN0cnVjdCBldHJfYWliIGV0cl9wb3J0MDsKIHN0YXRpYyBpbnQgZXRyX3BvcnQwX3VwdG9kYXRlOwogc3RhdGljIHN0cnVjdCBldHJfYWliIGV0cl9wb3J0MTsKIHN0YXRpYyBpbnQgZXRyX3BvcnQxX3VwdG9kYXRlOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgZXRyX2V2ZW50czsKIHN0YXRpYyBzdHJ1Y3QgdGltZXJfbGlzdCBldHJfdGltZXI7Ci1zdGF0aWMgREVGSU5FX1BFUl9DUFUoYXRvbWljX3QsIGV0cl9zeW5jX3dvcmQpOwogCiBzdGF0aWMgdm9pZCBldHJfdGltZW91dCh1bnNpZ25lZCBsb25nIGR1bW15KTsKIHN0YXRpYyB2b2lkIGV0cl93b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CiBzdGF0aWMgREVDTEFSRV9XT1JLKGV0cl93b3JrLCBldHJfd29ya19mbik7CiAKIC8qCi0gKiBUaGUgZXRyIGdldF9jbG9jayBmdW5jdGlvbi4gSXQgd2lsbCB3cml0ZSB0aGUgY3VycmVudCBjbG9jayB2YWx1ZQotICogdG8gdGhlIGNsb2NrIHBvaW50ZXIgYW5kIHJldHVybiAwIGlmIHRoZSBjbG9jayBpcyBpbiBzeW5jIHdpdGggdGhlCi0gKiBleHRlcm5hbCB0aW1lIHNvdXJjZS4gSWYgdGhlIGNsb2NrIG1vZGUgaXMgbG9jYWwgaXQgd2lsbCByZXR1cm4KLSAqIC1FTk9TWVMgYW5kIC1FQUdBSU4gaWYgdGhlIGNsb2NrIGlzIG5vdCBpbiBzeW5jIHdpdGggdGhlIGV4dGVybmFsCi0gKiByZWZlcmVuY2UuIFRoaXMgZnVuY3Rpb24gaXMgd2hhdCBFVFIgaXMgYWxsIGFib3V0Li4KLSAqLwotaW50IGdldF9zeW5jX2Nsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqY2xvY2spCi17Ci0JYXRvbWljX3QgKnN3X3B0cjsKLQl1bnNpZ25lZCBpbnQgc3cwLCBzdzE7Ci0KLQlzd19wdHIgPSAmZ2V0X2NwdV92YXIoZXRyX3N5bmNfd29yZCk7Ci0Jc3cwID0gYXRvbWljX3JlYWQoc3dfcHRyKTsKLQkqY2xvY2sgPSBnZXRfY2xvY2soKTsKLQlzdzEgPSBhdG9taWNfcmVhZChzd19wdHIpOwotCXB1dF9jcHVfdmFyKGV0cl9zeW5jX3N5bmMpOwotCWlmIChzdzAgPT0gc3cxICYmIChzdzAgJiAweDgwMDAwMDAwVSkpCi0JCS8qIFN1Y2Nlc3M6IHRpbWUgaXMgaW4gc3luYy4gKi8KLQkJcmV0dXJuIDA7Ci0JaWYgKHRlc3RfYml0KEVUUl9GTEFHX0VOT1NZUywgJmV0cl9mbGFncykpCi0JCXJldHVybiAtRU5PU1lTOwotCWlmICh0ZXN0X2JpdChFVFJfRkxBR19FQUNDRVMsICZldHJfZmxhZ3MpKQotCQlyZXR1cm4gLUVBQ0NFUzsKLQlyZXR1cm4gLUVBR0FJTjsKLX0KLUVYUE9SVF9TWU1CT0woZ2V0X3N5bmNfY2xvY2spOwotCi0vKgotICogTWFrZSBnZXRfc3luY19jbG9jayByZXR1cm4gLUVBR0FJTi4KLSAqLwotc3RhdGljIHZvaWQgZXRyX2Rpc2FibGVfc3luY19jbG9jayh2b2lkICpkdW1teSkKLXsKLQlhdG9taWNfdCAqc3dfcHRyID0gJl9fZ2V0X2NwdV92YXIoZXRyX3N5bmNfd29yZCk7Ci0JLyoKLQkgKiBDbGVhciB0aGUgaW4tc3luYyBiaXQgMl4zMS4gQWxsIGdldF9zeW5jX2Nsb2NrIGNhbGxzIHdpbGwKLQkgKiBmYWlsIHVudGlsIHRoZSBzeW5jIGJpdCBpcyB0dXJuZWQgYmFjayBvbi4gSW4gYWRkaXRpb24KLQkgKiBpbmNyZWFzZSB0aGUgInNlcXVlbmNlIiBjb3VudGVyIHRvIGF2b2lkIHRoZSByYWNlIG9mIGFuCi0JICogZXRyIGV2ZW50IGFuZCB0aGUgY29tcGxldGUgcmVjb3ZlcnkgYWdhaW5zdCBnZXRfc3luY19jbG9jay4KLQkgKi8KLQlhdG9taWNfY2xlYXJfbWFzaygweDgwMDAwMDAwLCBzd19wdHIpOwotCWF0b21pY19pbmMoc3dfcHRyKTsKLX0KLQotLyoKLSAqIE1ha2UgZ2V0X3N5bmNfY2xvY2sgcmV0dXJuIDAgYWdhaW4uCi0gKiBOZWVkcyB0byBiZSBjYWxsZWQgZnJvbSBhIGNvbnRleHQgZGlzYWJsZWQgZm9yIHByZWVtcHRpb24uCi0gKi8KLXN0YXRpYyB2b2lkIGV0cl9lbmFibGVfc3luY19jbG9jayh2b2lkKQotewotCWF0b21pY190ICpzd19wdHIgPSAmX19nZXRfY3B1X3ZhcihldHJfc3luY193b3JkKTsKLQlhdG9taWNfc2V0X21hc2soMHg4MDAwMDAwMCwgc3dfcHRyKTsKLX0KLQotLyoKICAqIFJlc2V0IEVUUiBhdHRhY2htZW50LgogICovCiBzdGF0aWMgdm9pZCBldHJfcmVzZXQodm9pZCkKQEAgLTM4MSwxNSArNDM3LDEzIEBACiAJCS5lMCA9IDAsIC5lMSA9IDAsIC5fcGFkMCA9IDQsIC5kcCA9IDAsCiAJCS5wMCA9IDAsIC5wMSA9IDAsIC5fcGFkMSA9IDAsIC5lYSA9IDAsCiAJCS5lcyA9IDAsIC5zbCA9IDAgfTsKLQlpZiAoZXRyX3NldHIoJmV0cl9lYWNyKSA9PSAwKQorCWlmIChldHJfc2V0cigmZXRyX2VhY3IpID09IDApIHsKIAkJZXRyX3RvbGVjID0gZ2V0X2Nsb2NrKCk7Ci0JZWxzZSB7Ci0JCXNldF9iaXQoRVRSX0ZMQUdfRU5PU1lTLCAmZXRyX2ZsYWdzKTsKLQkJaWYgKGV0cl9wb3J0MF9vbmxpbmUgfHwgZXRyX3BvcnQxX29ubGluZSkgewotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiUnVubmluZyBvbiBub24gRVRSIGNhcGFibGUgIgotCQkJICAgICAgICJtYWNoaW5lLCBvbmx5IGxvY2FsIG1vZGUgYXZhaWxhYmxlLlxuIik7Ci0JCQlldHJfcG9ydDBfb25saW5lID0gZXRyX3BvcnQxX29ubGluZSA9IDA7Ci0JCX0KKwkJc2V0X2JpdChDTE9DS19TWU5DX0hBU19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKTsKKwl9IGVsc2UgaWYgKGV0cl9wb3J0MF9vbmxpbmUgfHwgZXRyX3BvcnQxX29ubGluZSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJSdW5uaW5nIG9uIG5vbiBFVFIgY2FwYWJsZSAiCisJCSAgICAgICAibWFjaGluZSwgb25seSBsb2NhbCBtb2RlIGF2YWlsYWJsZS5cbiIpOworCQlldHJfcG9ydDBfb25saW5lID0gZXRyX3BvcnQxX29ubGluZSA9IDA7CiAJfQogfQogCkBAIC0zOTcsMTQgKzQ1MSwxMiBAQAogewogCXN0cnVjdCBldHJfYWliIGFpYjsKIAotCWlmICh0ZXN0X2JpdChFVFJfRkxBR19FTk9TWVMsICZldHJfZmxhZ3MpKQorCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfRVRSLCAmY2xvY2tfc3luY19mbGFncykpCiAJCXJldHVybiAwOwogCS8qIENoZWNrIGlmIHRoaXMgbWFjaGluZSBoYXMgdGhlIHN0ZWFpIGluc3RydWN0aW9uLiAqLwogCWlmIChldHJfc3RlYWkoJmFpYiwgRVRSX1NURUFJX1NURVBQSU5HX1BPUlQpID09IDApCi0JCXNldF9iaXQoRVRSX0ZMQUdfU1RFQUksICZldHJfZmxhZ3MpOworCQlldHJfc3RlYWlfYXZhaWxhYmxlID0gMTsKIAlzZXR1cF90aW1lcigmZXRyX3RpbWVyLCBldHJfdGltZW91dCwgMFVMKTsKLQlpZiAoIWV0cl9wb3J0MF9vbmxpbmUgJiYgIWV0cl9wb3J0MV9vbmxpbmUpCi0JCXNldF9iaXQoRVRSX0ZMQUdfRUFDQ0VTLCAmZXRyX2ZsYWdzKTsKIAlpZiAoZXRyX3BvcnQwX29ubGluZSkgewogCQlzZXRfYml0KEVUUl9FVkVOVF9QT1JUMF9DSEFOR0UsICZldHJfZXZlbnRzKTsKIAkJc2NoZWR1bGVfd29yaygmZXRyX3dvcmspOwpAQCAtNDM1LDcgKzQ4Nyw4IEBACiB7CiAJaWYgKCFldHJfZWFjci5zbCkKIAkJcmV0dXJuOwotCWV0cl9kaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CisJaWYgKHRlc3RfYml0KENMT0NLX1NZTkNfRVRSLCAmY2xvY2tfc3luY19mbGFncykpCisJCWRpc2FibGVfc3luY19jbG9jayhOVUxMKTsKIAlzZXRfYml0KEVUUl9FVkVOVF9TV0lUQ0hfTE9DQUwsICZldHJfZXZlbnRzKTsKIAlzY2hlZHVsZV93b3JrKCZldHJfd29yayk7CiB9CkBAIC00NTAsMjMgKzUwMywyMSBAQAogewogCWlmICghZXRyX2VhY3IuZXMpCiAJCXJldHVybjsKLQlldHJfZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCWlmICh0ZXN0X2JpdChDTE9DS19TWU5DX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlkaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CiAJc2V0X2JpdChFVFJfRVZFTlRfU1lOQ19DSEVDSywgJmV0cl9ldmVudHMpOwogCXNjaGVkdWxlX3dvcmsoJmV0cl93b3JrKTsKIH0KIAogLyoKLSAqIEVUUiBleHRlcm5hbCBpbnRlcnJ1cHQuIFRoZXJlIGFyZSB0d28gY2F1c2VzOgorICogRVRSIHRpbWluZyBhbGVydC4gVGhlcmUgYXJlIHR3byBjYXVzZXM6CiAgKiAxKSBwb3J0IHN0YXRlIGNoYW5nZSwgY2hlY2sgdGhlIHVzYWJpbGl0eSBvZiB0aGUgcG9ydAogICogMikgcG9ydCBhbGVydCwgb25lIG9mIHRoZSBFVFItZGF0YS12YWxpZGl0eSBiaXRzICh2MS12MiBiaXRzIG9mIHRoZQogICogICAgc2xkci1zdGF0dXMgd29yZCkgb3IgRVRSLWRhdGEgd29yZCAxIChlZGYxKSBvciBFVFItZGF0YSB3b3JkIDMgKGVkZjMpCiAgKiAgICBvciBFVFItZGF0YSB3b3JkIDQgKGVkZjQpIGhhcyBjaGFuZ2VkLgogICovCi1zdGF0aWMgdm9pZCBldHJfZXh0X2hhbmRsZXIoX191MTYgY29kZSkKK3N0YXRpYyB2b2lkIGV0cl90aW1pbmdfYWxlcnQoc3RydWN0IGV0cl9pcnFfcGFybSAqaW50cGFybSkKIHsKLQlzdHJ1Y3QgZXRyX2ludGVycnVwdGlvbl9wYXJhbWV0ZXIgKmludHBhcm0gPQotCQkoc3RydWN0IGV0cl9pbnRlcnJ1cHRpb25fcGFyYW1ldGVyICopICZTMzkwX2xvd2NvcmUuZXh0X3BhcmFtczsKLQogCWlmIChpbnRwYXJtLT5wYzApCiAJCS8qIEVUUiBwb3J0IDAgc3RhdGUgY2hhbmdlLiAqLwogCQlzZXRfYml0KEVUUl9FVkVOVF9QT1JUMF9DSEFOR0UsICZldHJfZXZlbnRzKTsKQEAgLTU5MSw1OCArNjQyLDIzIEBACiAJcmV0dXJuIDE7CiB9CiAKLS8qCi0gKiBUaGUgdGltZSBpcyAiY2xvY2siLiBvbGQgaXMgd2hhdCB3ZSB0aGluayB0aGUgdGltZSBpcy4KLSAqIEFkanVzdCB0aGUgdmFsdWUgYnkgYSBtdWx0aXBsZSBvZiBqaWZmaWVzIGFuZCBhZGQgdGhlIGRlbHRhIHRvIG50cC4KLSAqICJkZWxheSIgaXMgYW4gYXBwcm94aW1hdGlvbiBob3cgbG9uZyB0aGUgc3luY2hyb25pemF0aW9uIHRvb2suIElmCi0gKiB0aGUgdGltZSBjb3JyZWN0aW9uIGlzIHBvc2l0aXZlLCB0aGVuICJkZWxheSIgaXMgc3VidHJhY3RlZCBmcm9tCi0gKiB0aGUgdGltZSBkaWZmZXJlbmNlIGFuZCBvbmx5IHRoZSByZW1haW5pbmcgcGFydCBpcyBwYXNzZWQgdG8gbnRwLgotICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGV0cl9hZGp1c3RfdGltZSh1bnNpZ25lZCBsb25nIGxvbmcgb2xkLAotCQkJCQkgIHVuc2lnbmVkIGxvbmcgbG9uZyBjbG9jaywKLQkJCQkJICB1bnNpZ25lZCBsb25nIGxvbmcgZGVsYXkpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIGRlbHRhLCB0aWNrczsKLQlzdHJ1Y3QgdGltZXggYWRqdXN0OwotCi0JaWYgKGNsb2NrID4gb2xkKSB7Ci0JCS8qIEl0IGlzIGxhdGVyIHRoYW4gd2UgdGhvdWdodC4gKi8KLQkJZGVsdGEgPSB0aWNrcyA9IGNsb2NrIC0gb2xkOwotCQlkZWx0YSA9IHRpY2tzID0gKGRlbHRhIDwgZGVsYXkpID8gMCA6IGRlbHRhIC0gZGVsYXk7Ci0JCWRlbHRhIC09IGRvX2Rpdih0aWNrcywgQ0xLX1RJQ0tTX1BFUl9KSUZGWSk7Ci0JCWFkanVzdC5vZmZzZXQgPSB0aWNrcyAqICgxMDAwMDAwIC8gSFopOwotCX0gZWxzZSB7Ci0JCS8qIEl0IGlzIGVhcmxpZXIgdGhhbiB3ZSB0aG91Z2h0LiAqLwotCQlkZWx0YSA9IHRpY2tzID0gb2xkIC0gY2xvY2s7Ci0JCWRlbHRhIC09IGRvX2Rpdih0aWNrcywgQ0xLX1RJQ0tTX1BFUl9KSUZGWSk7Ci0JCWRlbHRhID0gLWRlbHRhOwotCQlhZGp1c3Qub2Zmc2V0ID0gLXRpY2tzICogKDEwMDAwMDAgLyBIWik7Ci0JfQotCWppZmZpZXNfdGltZXJfY2MgKz0gZGVsdGE7Ci0JaWYgKGFkanVzdC5vZmZzZXQgIT0gMCkgewotCQlwcmludGsoS0VSTl9OT1RJQ0UgImV0cjogdGltZSBhZGp1c3RlZCBieSAlbGkgbWljcm8tc2Vjb25kc1xuIiwKLQkJICAgICAgIGFkanVzdC5vZmZzZXQpOwotCQlhZGp1c3QubW9kZXMgPSBBREpfT0ZGU0VUX1NJTkdMRVNIT1Q7Ci0JCWRvX2FkanRpbWV4KCZhZGp1c3QpOwotCX0KLQlyZXR1cm4gZGVsdGE7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgeworc3RydWN0IGNsb2NrX3N5bmNfZGF0YSB7CiAJaW50IGluX3N5bmM7CiAJdW5zaWduZWQgbG9uZyBsb25nIGZpeHVwX2NjOwotfSBldHJfc3luYzsKK307CiAKLXN0YXRpYyB2b2lkIGV0cl9zeW5jX2NwdV9zdGFydCh2b2lkICpkdW1teSkKK3N0YXRpYyB2b2lkIGNsb2NrX3N5bmNfY3B1X3N0YXJ0KHZvaWQgKmR1bW15KQogewotCWV0cl9lbmFibGVfc3luY19jbG9jaygpOworCXN0cnVjdCBjbG9ja19zeW5jX2RhdGEgKnN5bmMgPSBkdW1teTsKKworCWVuYWJsZV9zeW5jX2Nsb2NrKCk7CiAJLyoKIAkgKiBUaGlzIGxvb2tzIGxpa2UgYSBidXN5IHdhaXQgbG9vcCBidXQgaXQgaXNuJ3QuIGV0cl9zeW5jX2NwdXMKIAkgKiBpcyBjYWxsZWQgb24gYWxsIG90aGVyIGNwdXMgd2hpbGUgdGhlIFRPRCBjbG9ja3MgaXMgc3RvcHBlZC4KIAkgKiBfX3VkZWxheSB3aWxsIHN0b3AgdGhlIGNwdSBvbiBhbiBlbmFibGVkIHdhaXQgcHN3IHVudGlsIHRoZQogCSAqIFRPRCBpcyBydW5uaW5nIGFnYWluLgogCSAqLwotCXdoaWxlIChldHJfc3luYy5pbl9zeW5jID09IDApIHsKKwl3aGlsZSAoc3luYy0+aW5fc3luYyA9PSAwKSB7CiAJCV9fdWRlbGF5KDEpOwogCQkvKgogCQkgKiBBIGRpZmZlcmVudCBjcHUgY2hhbmdlcyAqaW5fc3luYy4gVGhlcmVmb3JlIHVzZQpAQCAtNjUwLDE3ICs2NjYsMTcgQEAKIAkJICovCiAJCWJhcnJpZXIoKTsKIAl9Ci0JaWYgKGV0cl9zeW5jLmluX3N5bmMgIT0gMSkKKwlpZiAoc3luYy0+aW5fc3luYyAhPSAxKQogCQkvKiBEaWRuJ3Qgd29yay4gQ2xlYXIgcGVyLWNwdSBpbiBzeW5jIGJpdCBhZ2Fpbi4gKi8KLQkJZXRyX2Rpc2FibGVfc3luY19jbG9jayhOVUxMKTsKKwkJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOwogCS8qCiAJICogVGhpcyByb3VuZCBvZiBUT0Qgc3luY2luZyBpcyBkb25lLiBTZXQgdGhlIGNsb2NrIGNvbXBhcmF0b3IKIAkgKiB0byB0aGUgbmV4dCB0aWNrIGFuZCBsZXQgdGhlIHByb2Nlc3NvciBjb250aW51ZS4KIAkgKi8KLQlmaXh1cF9jbG9ja19jb21wYXJhdG9yKGV0cl9zeW5jLmZpeHVwX2NjKTsKKwlmaXh1cF9jbG9ja19jb21wYXJhdG9yKHN5bmMtPmZpeHVwX2NjKTsKIH0KIAotc3RhdGljIHZvaWQgZXRyX3N5bmNfY3B1X2VuZCh2b2lkICpkdW1teSkKK3N0YXRpYyB2b2lkIGNsb2NrX3N5bmNfY3B1X2VuZCh2b2lkICpkdW1teSkKIHsKIH0KIApAQCAtNjcyLDYgKzY4OCw3IEBACiBzdGF0aWMgaW50IGV0cl9zeW5jX2Nsb2NrKHN0cnVjdCBldHJfYWliICphaWIsIGludCBwb3J0KQogewogCXN0cnVjdCBldHJfYWliICpzeW5jX3BvcnQ7CisJc3RydWN0IGNsb2NrX3N5bmNfZGF0YSBldHJfc3luYzsKIAl1bnNpZ25lZCBsb25nIGxvbmcgY2xvY2ssIG9sZF9jbG9jaywgZGVsYXksIGRlbHRhOwogCWludCBmb2xsb3dzOwogCWludCByYzsKQEAgLTY5MCw5ICs3MDcsOSBAQAogCSAqLwogCW1lbXNldCgmZXRyX3N5bmMsIDAsIHNpemVvZihldHJfc3luYykpOwogCXByZWVtcHRfZGlzYWJsZSgpOwotCXNtcF9jYWxsX2Z1bmN0aW9uKGV0cl9zeW5jX2NwdV9zdGFydCwgTlVMTCwgMCk7CisJc21wX2NhbGxfZnVuY3Rpb24oY2xvY2tfc3luY19jcHVfc3RhcnQsICZldHJfc3luYywgMCk7CiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKLQlldHJfZW5hYmxlX3N5bmNfY2xvY2soKTsKKwllbmFibGVfc3luY19jbG9jaygpOwogCiAJLyogU2V0IGNsb2NrIHRvIG5leHQgT1RFLiAqLwogCV9fY3RsX3NldF9iaXQoMTQsIDIxKTsKQEAgLTcwNywxMyArNzI0LDEzIEBACiAJCS8qIEFkanVzdCBMaW51eCB0aW1pbmcgdmFyaWFibGVzLiAqLwogCQlkZWxheSA9ICh1bnNpZ25lZCBsb25nIGxvbmcpCiAJCQkoYWliLT5lZGYyLmV0diAtIHN5bmNfcG9ydC0+ZWRmMi5ldHYpIDw8IDMyOwotCQlkZWx0YSA9IGV0cl9hZGp1c3RfdGltZShvbGRfY2xvY2ssIGNsb2NrLCBkZWxheSk7CisJCWRlbHRhID0gYWRqdXN0X3RpbWUob2xkX2Nsb2NrLCBjbG9jaywgZGVsYXkpOwogCQlldHJfc3luYy5maXh1cF9jYyA9IGRlbHRhOwogCQlmaXh1cF9jbG9ja19jb21wYXJhdG9yKGRlbHRhKTsKIAkJLyogVmVyaWZ5IHRoYXQgdGhlIGNsb2NrIGlzIHByb3Blcmx5IHNldC4gKi8KIAkJaWYgKCFldHJfYWliX2ZvbGxvd3Moc3luY19wb3J0LCBhaWIsIHBvcnQpKSB7CiAJCQkvKiBEaWRuJ3Qgd29yay4gKi8KLQkJCWV0cl9kaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CisJCQlkaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CiAJCQlldHJfc3luYy5pbl9zeW5jID0gLUVBR0FJTjsKIAkJCXJjID0gLUVBR0FJTjsKIAkJfSBlbHNlIHsKQEAgLTcyNCwxMiArNzQxLDEyIEBACiAJCS8qIENvdWxkIG5vdCBzZXQgdGhlIGNsb2NrID8hPyAqLwogCQlfX2N0bF9jbGVhcl9iaXQoMCwgMjkpOwogCQlfX2N0bF9jbGVhcl9iaXQoMTQsIDIxKTsKLQkJZXRyX2Rpc2FibGVfc3luY19jbG9jayhOVUxMKTsKKwkJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOwogCQlldHJfc3luYy5pbl9zeW5jID0gLUVBR0FJTjsKIAkJcmMgPSAtRUFHQUlOOwogCX0KIAlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0Jc21wX2NhbGxfZnVuY3Rpb24oZXRyX3N5bmNfY3B1X2VuZCxOVUxMLDApOworCXNtcF9jYWxsX2Z1bmN0aW9uKGNsb2NrX3N5bmNfY3B1X2VuZCwgTlVMTCwgMCk7CiAJcHJlZW1wdF9lbmFibGUoKTsKIAlyZXR1cm4gcmM7CiB9CkBAIC04MzIsNyArODQ5LDcgQEAKIAkgKiBEbyBub3QgdHJ5IHRvIGdldCB0aGUgYWx0ZXJuYXRlIHBvcnQgYWliIGlmIHRoZSBjbG9jawogCSAqIGlzIG5vdCBpbiBzeW5jIHlldC4KIAkgKi8KLQlpZiAoIWVhY3IuZXMpCisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpICYmICFlYWNyLmVzKQogCQlyZXR1cm4gZWFjcjsKIAogCS8qCkBAIC04NDAsNyArODU3LDcgQEAKIAkgKiB0aGUgb3RoZXIgcG9ydCBpbW1lZGlhdGVseS4gSWYgb25seSBzdGV0ciBpcyBhdmFpbGFibGUgdGhlCiAJICogZGF0YS1wb3J0IGJpdCB0b2dnbGUgaGFzIHRvIGJlIHVzZWQuCiAJICovCi0JaWYgKHRlc3RfYml0KEVUUl9GTEFHX1NURUFJLCAmZXRyX2ZsYWdzKSkgeworCWlmIChldHJfc3RlYWlfYXZhaWxhYmxlKSB7CiAJCWlmIChlYWNyLnAwICYmICFldHJfcG9ydDBfdXB0b2RhdGUpIHsKIAkJCWV0cl9zdGVhaV9jdigmZXRyX3BvcnQwLCBFVFJfU1RFQUlfUE9SVF8wKTsKIAkJCWV0cl9wb3J0MF91cHRvZGF0ZSA9IDE7CkBAIC05MDksMTAgKzkyNiwxMCBAQAogCWlmICghZWFjci5lYSkgewogCQkvKiBCb3RoIHBvcnRzIG9mZmxpbmUuIFJlc2V0IGV2ZXJ5dGhpbmcuICovCiAJCWVhY3IuZHAgPSBlYWNyLmVzID0gZWFjci5zbCA9IDA7Ci0JCW9uX2VhY2hfY3B1KGV0cl9kaXNhYmxlX3N5bmNfY2xvY2ssIE5VTEwsIDEpOworCQlvbl9lYWNoX2NwdShkaXNhYmxlX3N5bmNfY2xvY2ssIE5VTEwsIDEpOwogCQlkZWxfdGltZXJfc3luYygmZXRyX3RpbWVyKTsKIAkJZXRyX3VwZGF0ZV9lYWNyKGVhY3IpOwotCQlzZXRfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CisJCWNsZWFyX2JpdChDTE9DS19TWU5DX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpOwogCQlyZXR1cm47CiAJfQogCkBAIC05NTMsNyArOTcwLDYgQEAKIAkJCWVhY3IuZTEgPSAxOwogCQlzeW5jX3BvcnQgPSAoZXRyX3BvcnQwX3VwdG9kYXRlICYmCiAJCQkgICAgIGV0cl9wb3J0X3ZhbGlkKCZldHJfcG9ydDAsIDApKSA/IDAgOiAtMTsKLQkJY2xlYXJfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJfSBlbHNlIGlmIChlYWNyLnAxICYmIGFpYi5lc3cucHNjMSA9PSBldHJfbHBzY19wcHNfbW9kZSkgewogCQllYWNyLnNsID0gMDsKIAkJZWFjci5lMCA9IDA7CkBAIC05NjIsNyArOTc4LDYgQEAKIAkJCWVhY3IuZXMgPSAwOwogCQlzeW5jX3BvcnQgPSAoZXRyX3BvcnQxX3VwdG9kYXRlICYmCiAJCQkgICAgIGV0cl9wb3J0X3ZhbGlkKCZldHJfcG9ydDEsIDEpKSA/IDEgOiAtMTsKLQkJY2xlYXJfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJfSBlbHNlIGlmIChlYWNyLnAwICYmIGFpYi5lc3cucHNjMCA9PSBldHJfbHBzY19vcGVyYXRpb25hbF9zdGVwKSB7CiAJCWVhY3Iuc2wgPSAxOwogCQllYWNyLmUwID0gMTsKQEAgLTk3Niw3ICs5OTEsNiBAQAogCQkJZWFjci5lMSA9IDE7CiAJCXN5bmNfcG9ydCA9IChldHJfcG9ydDBfdXB0b2RhdGUgJiYKIAkJCSAgICAgZXRyX3BvcnRfdmFsaWQoJmV0cl9wb3J0MCwgMCkpID8gMCA6IC0xOwotCQljbGVhcl9iaXQoRVRSX0ZMQUdfRUFDQ0VTLCAmZXRyX2ZsYWdzKTsKIAl9IGVsc2UgaWYgKGVhY3IucDEgJiYgYWliLmVzdy5wc2MxID09IGV0cl9scHNjX29wZXJhdGlvbmFsX3N0ZXApIHsKIAkJZWFjci5zbCA9IDE7CiAJCWVhY3IuZTAgPSAwOwpAQCAtOTg1LDE5ICs5OTksMjIgQEAKIAkJCWVhY3IuZXMgPSAwOwogCQlzeW5jX3BvcnQgPSAoZXRyX3BvcnQxX3VwdG9kYXRlICYmCiAJCQkgICAgIGV0cl9wb3J0X3ZhbGlkKCZldHJfcG9ydDEsIDEpKSA/IDEgOiAtMTsKLQkJY2xlYXJfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJfSBlbHNlIHsKIAkJLyogQm90aCBwb3J0cyBub3QgdXNhYmxlLiAqLwogCQllYWNyLmVzID0gZWFjci5zbCA9IDA7CiAJCXN5bmNfcG9ydCA9IC0xOwotCQlzZXRfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CisJCWNsZWFyX2JpdChDTE9DS19TWU5DX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpOwogCX0KIAorCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJZWFjci5lcyA9IDA7CisKIAkvKgogCSAqIElmIHRoZSBjbG9jayBpcyBpbiBzeW5jIGp1c3QgdXBkYXRlIHRoZSBlYWNyIGFuZCByZXR1cm4uCiAJICogSWYgdGhlcmUgaXMgbm8gdmFsaWQgc3luYyBwb3J0IHdhaXQgZm9yIGEgcG9ydCB1cGRhdGUuCiAJICovCi0JaWYgKGVhY3IuZXMgfHwgc3luY19wb3J0IDwgMCkgeworCWlmICh0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpIHx8CisJICAgIGVhY3IuZXMgfHwgc3luY19wb3J0IDwgMCkgewogCQlldHJfdXBkYXRlX2VhY3IoZWFjcik7CiAJCWV0cl9zZXRfdG9sZWNfdGltZW91dChub3cpOwogCQlyZXR1cm47CkBAIC0xMDE4LDExICsxMDM1LDEzIEBACiAJICogYW5kIHNldCB1cCBhIHRpbWVyIHRvIHRyeSBhZ2FpbiBhZnRlciAwLjUgc2Vjb25kcwogCSAqLwogCWV0cl91cGRhdGVfZWFjcihlYWNyKTsKKwlzZXRfYml0KENMT0NLX1NZTkNfRVRSLCAmY2xvY2tfc3luY19mbGFncyk7CiAJaWYgKG5vdyA8IGV0cl90b2xlYyArICgxNjAwMDAwIDw8IDEyKSB8fAogCSAgICBldHJfc3luY19jbG9jaygmYWliLCBzeW5jX3BvcnQpICE9IDApIHsKIAkJLyogU3luYyBmYWlsZWQuIFRyeSBhZ2FpbiBpbiAxLzIgc2Vjb25kLiAqLwogCQllYWNyLmVzID0gMDsKIAkJZXRyX3VwZGF0ZV9lYWNyKGVhY3IpOworCQljbGVhcl9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKTsKIAkJZXRyX3NldF9zeW5jX3RpbWVvdXQoKTsKIAl9IGVsc2UKIAkJZXRyX3NldF90b2xlY190aW1lb3V0KG5vdyk7CkBAIC0xMDk3LDggKzExMTYsOCBAQAogCXZhbHVlID0gc2ltcGxlX3N0cnRvdWwoYnVmLCBOVUxMLCAwKTsKIAlpZiAodmFsdWUgIT0gMCAmJiB2YWx1ZSAhPSAxKQogCQlyZXR1cm4gLUVJTlZBTDsKLQlpZiAodGVzdF9iaXQoRVRSX0ZMQUdfRU5PU1lTLCAmZXRyX2ZsYWdzKSkKLQkJcmV0dXJuIC1FTk9TWVM7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX0hBU19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCWlmIChkZXYgPT0gJmV0cl9wb3J0MF9kZXYpIHsKIAkJaWYgKGV0cl9wb3J0MF9vbmxpbmUgPT0gdmFsdWUpCiAJCQlyZXR1cm4gY291bnQ7CS8qIE5vdGhpbmcgdG8gZG8uICovCkBAIC0xMjkyLDMgKzEzMTEsMzE4IEBACiB9CiAKIGRldmljZV9pbml0Y2FsbChldHJfaW5pdF9zeXNmcyk7CisKKy8qCisgKiBTZXJ2ZXIgVGltZSBQcm90b2NvbCAoU1RQKSBjb2RlLgorICovCitzdGF0aWMgaW50IHN0cF9vbmxpbmU7CitzdGF0aWMgc3RydWN0IHN0cF9zc3RwaSBzdHBfaW5mbzsKK3N0YXRpYyB2b2lkICpzdHBfcGFnZTsKKworc3RhdGljIHZvaWQgc3RwX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKK3N0YXRpYyBERUNMQVJFX1dPUksoc3RwX3dvcmssIHN0cF93b3JrX2ZuKTsKKworc3RhdGljIGludCBfX2luaXQgZWFybHlfcGFyc2Vfc3RwKGNoYXIgKnApCit7CisJaWYgKHN0cm5jbXAocCwgIm9mZiIsIDMpID09IDApCisJCXN0cF9vbmxpbmUgPSAwOworCWVsc2UgaWYgKHN0cm5jbXAocCwgIm9uIiwgMikgPT0gMCkKKwkJc3RwX29ubGluZSA9IDE7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgic3RwIiwgZWFybHlfcGFyc2Vfc3RwKTsKKworLyoKKyAqIFJlc2V0IFNUUCBhdHRhY2htZW50LgorICovCitzdGF0aWMgdm9pZCBzdHBfcmVzZXQodm9pZCkKK3sKKwlpbnQgcmM7CisKKwlzdHBfcGFnZSA9IGFsbG9jX2Jvb3RtZW1fcGFnZXMoUEFHRV9TSVpFKTsKKwlyYyA9IGNoc2Nfc3N0cGMoc3RwX3BhZ2UsIFNUUF9PUF9DVFJMLCAweDAwMDApOworCWlmIChyYyA9PSAxKQorCQlzZXRfYml0KENMT0NLX1NZTkNfSEFTX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpOworCWVsc2UgaWYgKHN0cF9vbmxpbmUpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiUnVubmluZyBvbiBub24gU1RQIGNhcGFibGUgbWFjaGluZS5cbiIpOworCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHN0cF9wYWdlLCBQQUdFX1NJWkUpOworCQlzdHBfcGFnZSA9IE5VTEw7CisJCXN0cF9vbmxpbmUgPSAwOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgc3RwX2luaXQodm9pZCkKK3sKKwlpZiAodGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfU1RQLCAmY2xvY2tfc3luY19mbGFncykgJiYgc3RwX29ubGluZSkKKwkJc2NoZWR1bGVfd29yaygmc3RwX3dvcmspOworCXJldHVybiAwOworfQorCithcmNoX2luaXRjYWxsKHN0cF9pbml0KTsKKworLyoKKyAqIFNUUCB0aW1pbmcgYWxlcnQuIFRoZXJlIGFyZSB0aHJlZSBjYXVzZXM6CisgKiAxKSB0aW1pbmcgc3RhdHVzIGNoYW5nZQorICogMikgbGluayBhdmFpbGFiaWxpdHkgY2hhbmdlCisgKiAzKSB0aW1lIGNvbnRyb2wgcGFyYW1ldGVyIGNoYW5nZQorICogSW4gYWxsIHRocmVlIGNhc2VzIHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIGNsb2NrIHNvdXJjZSBzdGF0ZS4KKyAqIElmIGEgU1RQIGNsb2NrIHNvdXJjZSBpcyBub3cgYXZhaWxhYmxlIHVzZSBpdC4KKyAqLworc3RhdGljIHZvaWQgc3RwX3RpbWluZ19hbGVydChzdHJ1Y3Qgc3RwX2lycV9wYXJtICppbnRwYXJtKQoreworCWlmIChpbnRwYXJtLT50c2MgfHwgaW50cGFybS0+bGFjIHx8IGludHBhcm0tPnRjcGMpCisJCXNjaGVkdWxlX3dvcmsoJnN0cF93b3JrKTsKK30KKworLyoKKyAqIFNUUCBzeW5jIGNoZWNrIG1hY2hpbmUgY2hlY2suIFRoaXMgaXMgY2FsbGVkIHdoZW4gdGhlIHRpbWluZyBzdGF0ZQorICogY2hhbmdlcyBmcm9tIHRoZSBzeW5jaHJvbml6ZWQgc3RhdGUgdG8gdGhlIHVuc3luY2hyb25pemVkIHN0YXRlLgorICogQWZ0ZXIgYSBTVFAgc3luYyBjaGVjayB0aGUgY2xvY2sgaXMgbm90IGluIHN5bmMuIFRoZSBtYWNoaW5lIGNoZWNrCisgKiBpcyBicm9hZGNhc3RlZCB0byBhbGwgY3B1cyBhdCB0aGUgc2FtZSB0aW1lLgorICovCit2b2lkIHN0cF9zeW5jX2NoZWNrKHZvaWQpCit7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlyZXR1cm47CisJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCXNjaGVkdWxlX3dvcmsoJnN0cF93b3JrKTsKK30KKworLyoKKyAqIFNUUCBpc2xhbmQgY29uZGl0aW9uIG1hY2hpbmUgY2hlY2suIFRoaXMgaXMgY2FsbGVkIHdoZW4gYW4gYXR0YWNoZWQKKyAqIHNlcnZlciAgYXR0ZW1wdHMgdG8gY29tbXVuaWNhdGUgb3ZlciBhbiBTVFAgbGluayBhbmQgdGhlIHNlcnZlcnMKKyAqIGhhdmUgbWF0Y2hpbmcgQ1ROIGlkcyBhbmQgaGF2ZSBhIHZhbGlkIHN0cmF0dW0tMSBjb25maWd1cmF0aW9uCisgKiBidXQgdGhlIGNvbmZpZ3VyYXRpb25zIGRvIG5vdCBtYXRjaC4KKyAqLwordm9pZCBzdHBfaXNsYW5kX2NoZWNrKHZvaWQpCit7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlyZXR1cm47CisJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCXNjaGVkdWxlX3dvcmsoJnN0cF93b3JrKTsKK30KKworLyoKKyAqIFNUUCB0YXNrbGV0LiBDaGVjayBmb3IgdGhlIFNUUCBzdGF0ZSBhbmQgdGFrZSBvdmVyIHRoZSBjbG9jaworICogc3luY2hyb25pemF0aW9uIGlmIHRoZSBTVFAgY2xvY2sgc291cmNlIGlzIHVzYWJsZS4KKyAqLworc3RhdGljIHZvaWQgc3RwX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBjbG9ja19zeW5jX2RhdGEgc3RwX3N5bmM7CisJdW5zaWduZWQgbG9uZyBsb25nIG9sZF9jbG9jaywgZGVsdGE7CisJaW50IHJjOworCisJaWYgKCFzdHBfb25saW5lKSB7CisJCWNoc2Nfc3N0cGMoc3RwX3BhZ2UsIFNUUF9PUF9DVFJMLCAweDAwMDApOworCQlyZXR1cm47CisJfQorCisJcmMgPSBjaHNjX3NzdHBjKHN0cF9wYWdlLCBTVFBfT1BfQ1RSTCwgMHhiMGUwKTsKKwlpZiAocmMpCisJCXJldHVybjsKKworCXJjID0gY2hzY19zc3RwaShzdHBfcGFnZSwgJnN0cF9pbmZvLCBzaXplb2Yoc3RydWN0IHN0cF9zc3RwaSkpOworCWlmIChyYyB8fCBzdHBfaW5mby5jID09IDApCisJCXJldHVybjsKKworCS8qCisJICogQ2F0Y2ggYWxsIG90aGVyIGNwdXMgYW5kIG1ha2UgdGhlbSB3YWl0IHVudGlsIHdlIGhhdmUKKwkgKiBzdWNjZXNzZnVsbHkgc3luY2VkIHRoZSBjbG9jay4gc21wX2NhbGxfZnVuY3Rpb24gd2lsbAorCSAqIHJldHVybiBhZnRlciBhbGwgb3RoZXIgY3B1cyBhcmUgaW4gY2xvY2tfc3luY19jcHVfc3RhcnQuCisJICovCisJbWVtc2V0KCZzdHBfc3luYywgMCwgc2l6ZW9mKHN0cF9zeW5jKSk7CisJcHJlZW1wdF9kaXNhYmxlKCk7CisJc21wX2NhbGxfZnVuY3Rpb24oY2xvY2tfc3luY19jcHVfc3RhcnQsICZzdHBfc3luYywgMCwgMCk7CisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwllbmFibGVfc3luY19jbG9jaygpOworCisJc2V0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpOworCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJc2NoZWR1bGVfd29yaygmZXRyX3dvcmspOworCisJcmMgPSAwOworCWlmIChzdHBfaW5mby50b2RvZmZbMF0gfHwgc3RwX2luZm8udG9kb2ZmWzFdIHx8CisJICAgIHN0cF9pbmZvLnRvZG9mZlsyXSB8fCBzdHBfaW5mby50b2RvZmZbM10gfHwKKwkgICAgc3RwX2luZm8udG1kICE9IDIpIHsKKwkJb2xkX2Nsb2NrID0gZ2V0X2Nsb2NrKCk7CisJCXJjID0gY2hzY19zc3RwYyhzdHBfcGFnZSwgU1RQX09QX1NZTkMsIDApOworCQlpZiAocmMgPT0gMCkgeworCQkJZGVsdGEgPSBhZGp1c3RfdGltZShvbGRfY2xvY2ssIGdldF9jbG9jaygpLCAwKTsKKwkJCWZpeHVwX2Nsb2NrX2NvbXBhcmF0b3IoZGVsdGEpOworCQkJcmMgPSBjaHNjX3NzdHBpKHN0cF9wYWdlLCAmc3RwX2luZm8sCisJCQkJCXNpemVvZihzdHJ1Y3Qgc3RwX3NzdHBpKSk7CisJCQlpZiAocmMgPT0gMCAmJiBzdHBfaW5mby50bWQgIT0gMikKKwkJCQlyYyA9IC1FQUdBSU47CisJCX0KKwl9CisJaWYgKHJjKSB7CisJCWRpc2FibGVfc3luY19jbG9jayhOVUxMKTsKKwkJc3RwX3N5bmMuaW5fc3luYyA9IC1FQUdBSU47CisJCWNsZWFyX2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpOworCQlpZiAoZXRyX3BvcnQwX29ubGluZSB8fCBldHJfcG9ydDFfb25saW5lKQorCQkJc2NoZWR1bGVfd29yaygmZXRyX3dvcmspOworCX0gZWxzZQorCQlzdHBfc3luYy5pbl9zeW5jID0gMTsKKworCWxvY2FsX2lycV9lbmFibGUoKTsKKwlzbXBfY2FsbF9mdW5jdGlvbihjbG9ja19zeW5jX2NwdV9lbmQsIE5VTEwsIDAsIDApOworCXByZWVtcHRfZW5hYmxlKCk7Cit9CisKKy8qCisgKiBTVFAgY2xhc3Mgc3lzZnMgaW50ZXJmYWNlIGZ1bmN0aW9ucworICovCitzdGF0aWMgc3RydWN0IHN5c2Rldl9jbGFzcyBzdHBfc3lzY2xhc3MgPSB7CisJLm5hbWUJPSAic3RwIiwKK307CisKK3N0YXRpYyBzc2l6ZV90IHN0cF9jdG5faWRfc2hvdyhzdHJ1Y3Qgc3lzZGV2X2NsYXNzICpjbGFzcywgY2hhciAqYnVmKQoreworCWlmICghc3RwX29ubGluZSkKKwkJcmV0dXJuIC1FTk9EQVRBOworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiUwMTZsbHhcbiIsCisJCSAgICAgICAqKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBzdHBfaW5mby5jdG5pZCk7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihjdG5faWQsIDA0MDAsIHN0cF9jdG5faWRfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IHN0cF9jdG5fdHlwZV9zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIHN0cF9pbmZvLmN0bik7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihjdG5fdHlwZSwgMDQwMCwgc3RwX2N0bl90eXBlX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBzdHBfZHN0X29mZnNldF9zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lIHx8ICEoc3RwX2luZm8udmJpdHMgJiAweDIwMDApKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIChpbnQpKHMxNikgc3RwX2luZm8uZHN0byk7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihkc3Rfb2Zmc2V0LCAwNDAwLCBzdHBfZHN0X29mZnNldF9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qgc3RwX2xlYXBfc2Vjb25kc19zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lIHx8ICEoc3RwX2luZm8udmJpdHMgJiAweDgwMDApKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIChpbnQpKHMxNikgc3RwX2luZm8ubGVhcHMpOworfQorCitzdGF0aWMgU1lTREVWX0NMQVNTX0FUVFIobGVhcF9zZWNvbmRzLCAwNDAwLCBzdHBfbGVhcF9zZWNvbmRzX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBzdHBfc3RyYXR1bV9zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIChpbnQpKHMxNikgc3RwX2luZm8uc3RyYXR1bSk7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihzdHJhdHVtLCAwNDAwLCBzdHBfc3RyYXR1bV9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qgc3RwX3RpbWVfb2Zmc2V0X3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoIXN0cF9vbmxpbmUgfHwgIShzdHBfaW5mby52Yml0cyAmIDB4MDgwMCkpCisJCXJldHVybiAtRU5PREFUQTsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgKGludCkgc3RwX2luZm8udHRvKTsKK30KKworc3RhdGljIFNZU0RFVl9DTEFTU19BVFRSKHRpbWVfb2Zmc2V0LCAwNDAwLCBzdHBfdGltZV9vZmZzZXRfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IHN0cF90aW1lX3pvbmVfb2Zmc2V0X3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoIXN0cF9vbmxpbmUgfHwgIShzdHBfaW5mby52Yml0cyAmIDB4NDAwMCkpCisJCXJldHVybiAtRU5PREFUQTsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgKGludCkoczE2KSBzdHBfaW5mby50em8pOworfQorCitzdGF0aWMgU1lTREVWX0NMQVNTX0FUVFIodGltZV96b25lX29mZnNldCwgMDQwMCwKKwkJCSBzdHBfdGltZV96b25lX29mZnNldF9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qgc3RwX3RpbWluZ19tb2RlX3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoIXN0cF9vbmxpbmUpCisJCXJldHVybiAtRU5PREFUQTsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgc3RwX2luZm8udG1kKTsKK30KKworc3RhdGljIFNZU0RFVl9DTEFTU19BVFRSKHRpbWluZ19tb2RlLCAwNDAwLCBzdHBfdGltaW5nX21vZGVfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IHN0cF90aW1pbmdfc3RhdGVfc2hvdyhzdHJ1Y3Qgc3lzZGV2X2NsYXNzICpjbGFzcywgY2hhciAqYnVmKQoreworCWlmICghc3RwX29ubGluZSkKKwkJcmV0dXJuIC1FTk9EQVRBOworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVpXG4iLCBzdHBfaW5mby50c3QpOworfQorCitzdGF0aWMgU1lTREVWX0NMQVNTX0FUVFIodGltaW5nX3N0YXRlLCAwNDAwLCBzdHBfdGltaW5nX3N0YXRlX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBzdHBfb25saW5lX3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgc3RwX29ubGluZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHN0cF9vbmxpbmVfc3RvcmUoc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsCisJCQkJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJdW5zaWduZWQgaW50IHZhbHVlOworCisJdmFsdWUgPSBzaW1wbGVfc3RydG91bChidWYsIE5VTEwsIDApOworCWlmICh2YWx1ZSAhPSAwICYmIHZhbHVlICE9IDEpCisJCXJldHVybiAtRUlOVkFMOworCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfU1RQLCAmY2xvY2tfc3luY19mbGFncykpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwlzdHBfb25saW5lID0gdmFsdWU7CisJc2NoZWR1bGVfd29yaygmc3RwX3dvcmspOworCXJldHVybiBjb3VudDsKK30KKworLyoKKyAqIENhbid0IHVzZSBTWVNERVZfQ0xBU1NfQVRUUiBiZWNhdXNlIHRoZSBhdHRyaWJ1dGUgc2hvdWxkIGJlIG5hbWVkCisgKiBzdHAvb25saW5lIGJ1dCBhdHRyX29ubGluZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIGZpbGUgLi4KKyAqLworc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3NfYXR0cmlidXRlIGF0dHJfc3RwX29ubGluZSA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAib25saW5lIiwgLm1vZGUgPSAwNjAwIH0sCisJLnNob3cJPSBzdHBfb25saW5lX3Nob3csCisJLnN0b3JlCT0gc3RwX29ubGluZV9zdG9yZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzX2F0dHJpYnV0ZSAqc3RwX2F0dHJpYnV0ZXNbXSA9IHsKKwkmYXR0cl9jdG5faWQsCisJJmF0dHJfY3RuX3R5cGUsCisJJmF0dHJfZHN0X29mZnNldCwKKwkmYXR0cl9sZWFwX3NlY29uZHMsCisJJmF0dHJfc3RwX29ubGluZSwKKwkmYXR0cl9zdHJhdHVtLAorCSZhdHRyX3RpbWVfb2Zmc2V0LAorCSZhdHRyX3RpbWVfem9uZV9vZmZzZXQsCisJJmF0dHJfdGltaW5nX21vZGUsCisJJmF0dHJfdGltaW5nX3N0YXRlLAorCU5VTEwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHN0cF9pbml0X3N5c2ZzKHZvaWQpCit7CisJc3RydWN0IHN5c2Rldl9jbGFzc19hdHRyaWJ1dGUgKiphdHRyOworCWludCByYzsKKworCXJjID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZzdHBfc3lzY2xhc3MpOworCWlmIChyYykKKwkJZ290byBvdXQ7CisJZm9yIChhdHRyID0gc3RwX2F0dHJpYnV0ZXM7ICphdHRyOyBhdHRyKyspIHsKKwkJcmMgPSBzeXNkZXZfY2xhc3NfY3JlYXRlX2ZpbGUoJnN0cF9zeXNjbGFzcywgKmF0dHIpOworCQlpZiAocmMpCisJCQlnb3RvIG91dF91bnJlZzsKKwl9CisJcmV0dXJuIDA7CitvdXRfdW5yZWc6CisJZm9yICg7IGF0dHIgPj0gc3RwX2F0dHJpYnV0ZXM7IGF0dHItLSkKKwkJc3lzZGV2X2NsYXNzX3JlbW92ZV9maWxlKCZzdHBfc3lzY2xhc3MsICphdHRyKTsKKwlzeXNkZXZfY2xhc3NfdW5yZWdpc3Rlcigmc3RwX3N5c2NsYXNzKTsKK291dDoKKwlyZXR1cm4gcmM7Cit9CisKK2RldmljZV9pbml0Y2FsbChzdHBfaW5pdF9zeXNmcyk7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3RvcG9sb2d5LmMgYi9hcmNoL3MzOTAva2VybmVsL3RvcG9sb2d5LmMKaW5kZXggNjYxYTA3Mi4uMjEyZDYxOCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuYwpAQCAtMzEzLDggKzMxMyw2IEBACiAJCW1hY2hpbmVfaGFzX3RvcG9sb2d5X2lycSA9IDE7CiAKIAl0bF9pbmZvID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOwotCWlmICghdGxfaW5mbykKLQkJZ290byBlcnJvcjsKIAlpbmZvID0gdGxfaW5mbzsKIAlzdHNpKGluZm8sIDE1LCAxLCAyKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9zMzkwL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IGI0NjA3MTUuLjc2YzFlNjAgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL3MzOTAva2VybmVsL3ZtbGludXgubGRzLlMKQEAgLTQwLDcgKzQwLDYgQEAKIAlfZXRleHQgPSAuOwkJLyogRW5kIG9mIHRleHQgc2VjdGlvbiAqLwogCiAJTk9URVMgOnRleHQgOm5vdGUKLQlCVUdfVEFCTEUgOnRleHQKIAogCVJPREFUQQogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3Z0aW1lLmMgYi9hcmNoL3MzOTAva2VybmVsL3Z0aW1lLmMKaW5kZXggY2E5MGVlMy4uMGZhNWRjNSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC92dGltZS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdnRpbWUuYwpAQCAtMTM2LDcgKzEzNiw3IEBACiB9CiAjZW5kaWYKIAotc3RhdGljIHZvaWQgc3RhcnRfY3B1X3RpbWVyKHZvaWQpCit2b2lkIHZ0aW1lX3N0YXJ0X2NwdV90aW1lcih2b2lkKQogewogCXN0cnVjdCB2dGltZXJfcXVldWUgKnZ0X2xpc3Q7CiAKQEAgLTE1MCw3ICsxNTAsNyBAQAogCQlzZXRfdnRpbWVyKHZ0X2xpc3QtPmlkbGUpOwogfQogCi1zdGF0aWMgdm9pZCBzdG9wX2NwdV90aW1lcih2b2lkKQordm9pZCB2dGltZV9zdG9wX2NwdV90aW1lcih2b2lkKQogewogCXN0cnVjdCB2dGltZXJfcXVldWUgKnZ0X2xpc3Q7CiAKQEAgLTMxOCw4ICszMTgsNyBAQAogCXZ0X2xpc3QgPSAmcGVyX2NwdSh2aXJ0X2NwdV90aW1lciwgdGltZXItPmNwdSk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnZ0X2xpc3QtPmxvY2ssIGZsYWdzKTsKIAotCWlmICh0aW1lci0+Y3B1ICE9IHNtcF9wcm9jZXNzb3JfaWQoKSkKLQkJcHJpbnRrKCJpbnRlcm5hbF9hZGRfdnRpbWVyOiBCVUcsIHJ1bm5pbmcgb24gd3JvbmcgQ1BVIik7CisJQlVHX09OKHRpbWVyLT5jcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAogCS8qIGlmIGxpc3QgaXMgZW1wdHkgd2Ugb25seSBoYXZlIHRvIHNldCB0aGUgdGltZXIgKi8KIAlpZiAobGlzdF9lbXB0eSgmdnRfbGlzdC0+bGlzdCkpIHsKQEAgLTM1MywyNSArMzUyLDEyIEBACiAJcHV0X2NwdSgpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBwcmVwYXJlX3Z0aW1lcihzdHJ1Y3QgdnRpbWVyX2xpc3QgKnRpbWVyKQorc3RhdGljIGlubGluZSB2b2lkIHByZXBhcmVfdnRpbWVyKHN0cnVjdCB2dGltZXJfbGlzdCAqdGltZXIpCiB7Ci0JaWYgKCF0aW1lci0+ZnVuY3Rpb24pIHsKLQkJcHJpbnRrKCJhZGRfdmlydF90aW1lcjogdW5pbml0aWFsaXplZCB0aW1lclxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmICghdGltZXItPmV4cGlyZXMgfHwgdGltZXItPmV4cGlyZXMgPiBWVElNRVJfTUFYX1NMSUNFKSB7Ci0JCXByaW50aygiYWRkX3ZpcnRfdGltZXI6IGludmFsaWQgdGltZXIgZXhwaXJlIHZhbHVlIVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmICh2dGltZXJfcGVuZGluZyh0aW1lcikpIHsKLQkJcHJpbnRrKCJhZGRfdmlydF90aW1lcjogdGltZXIgcGVuZGluZ1xuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCisJQlVHX09OKCF0aW1lci0+ZnVuY3Rpb24pOworCUJVR19PTighdGltZXItPmV4cGlyZXMgfHwgdGltZXItPmV4cGlyZXMgPiBWVElNRVJfTUFYX1NMSUNFKTsKKwlCVUdfT04odnRpbWVyX3BlbmRpbmcodGltZXIpKTsKIAl0aW1lci0+Y3B1ID0gZ2V0X2NwdSgpOwotCXJldHVybiAwOwogfQogCiAvKgpAQCAtMzgyLDEwICszNjgsNyBAQAogCXN0cnVjdCB2dGltZXJfbGlzdCAqdGltZXI7CiAKIAl0aW1lciA9IChzdHJ1Y3QgdnRpbWVyX2xpc3QgKiluZXc7Ci0KLQlpZiAocHJlcGFyZV92dGltZXIodGltZXIpIDwgMCkKLQkJcmV0dXJuOwotCisJcHJlcGFyZV92dGltZXIodGltZXIpOwogCXRpbWVyLT5pbnRlcnZhbCA9IDA7CiAJaW50ZXJuYWxfYWRkX3Z0aW1lcih0aW1lcik7CiB9CkBAIC0zOTksMTAgKzM4Miw3IEBACiAJc3RydWN0IHZ0aW1lcl9saXN0ICp0aW1lcjsKIAogCXRpbWVyID0gKHN0cnVjdCB2dGltZXJfbGlzdCAqKW5ldzsKLQotCWlmIChwcmVwYXJlX3Z0aW1lcih0aW1lcikgPCAwKQotCQlyZXR1cm47Ci0KKwlwcmVwYXJlX3Z0aW1lcih0aW1lcik7CiAJdGltZXItPmludGVydmFsID0gdGltZXItPmV4cGlyZXM7CiAJaW50ZXJuYWxfYWRkX3Z0aW1lcih0aW1lcik7CiB9CkBAIC00MjMsMTUgKzQwMyw4IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgY3B1OwogCi0JaWYgKCF0aW1lci0+ZnVuY3Rpb24pIHsKLQkJcHJpbnRrKCJtb2RfdmlydF90aW1lcjogdW5pbml0aWFsaXplZCB0aW1lclxuIik7Ci0JCXJldHVybgktRUlOVkFMOwotCX0KLQotCWlmICghZXhwaXJlcyB8fCBleHBpcmVzID4gVlRJTUVSX01BWF9TTElDRSkgewotCQlwcmludGsoIm1vZF92aXJ0X3RpbWVyOiBpbnZhbGlkIGV4cGlyZSByYW5nZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KKwlCVUdfT04oIXRpbWVyLT5mdW5jdGlvbik7CisJQlVHX09OKCFleHBpcmVzIHx8IGV4cGlyZXMgPiBWVElNRVJfTUFYX1NMSUNFKTsKIAogCS8qCiAJICogVGhpcyBpcyBhIGNvbW1vbiBvcHRpbWl6YXRpb24gdHJpZ2dlcmVkIGJ5IHRoZQpAQCAtNDQ0LDYgKzQxNyw5IEBACiAJY3B1ID0gZ2V0X2NwdSgpOwogCXZ0X2xpc3QgPSAmcGVyX2NwdSh2aXJ0X2NwdV90aW1lciwgY3B1KTsKIAorCS8qIGNoZWNrIGlmIHdlIHJ1biBvbiB0aGUgcmlnaHQgQ1BVICovCisJQlVHX09OKHRpbWVyLT5jcHUgIT0gY3B1KTsKKwogCS8qIGRpc2FibGUgaW50ZXJydXB0cyBiZWZvcmUgdGVzdCBpZiB0aW1lciBpcyBwZW5kaW5nICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnZ0X2xpc3QtPmxvY2ssIGZsYWdzKTsKIApAQCAtNDU4LDE0ICs0MzQsNiBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQkvKiBjaGVjayBpZiB3ZSBydW4gb24gdGhlIHJpZ2h0IENQVSAqLwotCWlmICh0aW1lci0+Y3B1ICE9IGNwdSkgewotCQlwcmludGsoIm1vZF92aXJ0X3RpbWVyOiBydW5uaW5nIG9uIHdyb25nIENQVSwgY2hlY2sgeW91ciBjb2RlXG4iKTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdnRfbGlzdC0+bG9jaywgZmxhZ3MpOwotCQlwdXRfY3B1KCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCWxpc3RfZGVsX2luaXQoJnRpbWVyLT5lbnRyeSk7CiAJdGltZXItPmV4cGlyZXMgPSBleHBpcmVzOwogCkBAIC01MzYsMjQgKzUwNCw2IEBACiAKIH0KIAotc3RhdGljIGludCB2dGltZXJfaWRsZV9ub3RpZnkoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmhjcHUpCi17Ci0Jc3dpdGNoIChhY3Rpb24pIHsKLQljYXNlIFMzOTBfQ1BVX0lETEU6Ci0JCXN0b3BfY3B1X3RpbWVyKCk7Ci0JCWJyZWFrOwotCWNhc2UgUzM5MF9DUFVfTk9UX0lETEU6Ci0JCXN0YXJ0X2NwdV90aW1lcigpOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIE5PVElGWV9PSzsKLX0KLQotc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayB2dGltZXJfaWRsZV9uYiA9IHsKLQkubm90aWZpZXJfY2FsbCA9IHZ0aW1lcl9pZGxlX25vdGlmeSwKLX07Ci0KIHZvaWQgX19pbml0IHZ0aW1lX2luaXQodm9pZCkKIHsKIAkvKiByZXF1ZXN0IHRoZSBjcHUgdGltZXIgZXh0ZXJuYWwgaW50ZXJydXB0ICovCkBAIC01NjEsOSArNTExLDYgQEAKIAkJCQkJICAgICAgJmV4dF9pbnRfaW5mb190aW1lcikgIT0gMCkKIAkJcGFuaWMoIkNvdWxkbid0IHJlcXVlc3QgZXh0ZXJuYWwgaW50ZXJydXB0IDB4MTAwNSIpOwogCi0JaWYgKHJlZ2lzdGVyX2lkbGVfbm90aWZpZXIoJnZ0aW1lcl9pZGxlX25iKSkKLQkJcGFuaWMoIkNvdWxkbid0IHJlZ2lzdGVyIGlkbGUgbm90aWZpZXIiKTsKLQogCS8qIEVuYWJsZSBjcHUgdGltZXIgaW50ZXJydXB0cyBvbiB0aGUgYm9vdCBjcHUuICovCiAJaW5pdF9jcHVfdnRpbWVyKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvbW0vaW5pdC5jIGIvYXJjaC9zMzkwL21tL2luaXQuYwppbmRleCAwNTU5ODY0Li4zODhjYzc0IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvbW0vaW5pdC5jCisrKyBiL2FyY2gvczM5MC9tbS9pbml0LmMKQEAgLTIwMiwzICsyMDIsMjIgQEAKICAgICAgICAgfQogfQogI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTUVNT1JZX0hPVFBMVUcKK2ludCBhcmNoX2FkZF9tZW1vcnkoaW50IG5pZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSkKK3sKKwlzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0OworCXN0cnVjdCB6b25lICp6b25lOworCWludCByYzsKKworCXBnZGF0ID0gTk9ERV9EQVRBKG5pZCk7CisJem9uZSA9IHBnZGF0LT5ub2RlX3pvbmVzICsgWk9ORV9OT1JNQUw7CisJcmMgPSB2bWVtX2FkZF9tYXBwaW5nKHN0YXJ0LCBzaXplKTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKKwlyYyA9IF9fYWRkX3BhZ2VzKHpvbmUsIFBGTl9ET1dOKHN0YXJ0KSwgUEZOX0RPV04oc2l6ZSkpOworCWlmIChyYykKKwkJdm1lbV9yZW1vdmVfbWFwcGluZyhzdGFydCwgc2l6ZSk7CisJcmV0dXJuIHJjOworfQorI2VuZGlmIC8qIENPTkZJR19NRU1PUllfSE9UUExVRyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9ib2FyZHMvbGFuZGlzay9naW8uYyBiL2FyY2gvc2gvYm9hcmRzL2xhbmRpc2svZ2lvLmMKaW5kZXggMTcwMjUwOC4uMGMxNWIwYSAxMDA2NDQKLS0tIGEvYXJjaC9zaC9ib2FyZHMvbGFuZGlzay9naW8uYworKysgYi9hcmNoL3NoL2JvYXJkcy9sYW5kaXNrL2dpby5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9rZGV2X3QuaD4KICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KQEAgLTMyLDE3ICszMywyMCBAQAogc3RhdGljIGludCBnaW9fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlpbnQgbWlub3I7CisJaW50IHJldCA9IC1FTk9FTlQ7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gTUlOT1IoaW5vZGUtPmlfcmRldik7CiAJaWYgKG1pbm9yIDwgREVWQ09VTlQpIHsKIAkJaWYgKG9wZW5DbnQgPiAwKSB7Ci0JCQlyZXR1cm4gLUVBTFJFQURZOworCQkJcmV0ID0gLUVBTFJFQURZOwogCQl9IGVsc2UgewogCQkJb3BlbkNudCsrOwotCQkJcmV0dXJuIDA7CisJCQlyZXQgPSAwOwogCQl9CiAJfQotCXJldHVybiAtRU5PRU5UOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGdpb19jbG9zZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9sYW5kaXNrX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9sYW5kaXNrX2RlZmNvbmZpZwppbmRleCBmNTJkYjEyLi4zOGY5MzRhIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL2xhbmRpc2tfZGVmY29uZmlnCkBAIC0yMjYsNyArMjI2LDYgQEAKICMKIENPTkZJR19TSF9UTVU9eQogQ09ORklHX1NIX1RJTUVSX0lSUT0xNgotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfU0hfUENMS19GUkVRPTMzMzMzMzMzCiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9sYm94cmUyX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9sYm94cmUyX2RlZmNvbmZpZwppbmRleCA5ZmE2NmQ5Li5iNjhiNmNkIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3MvbGJveHJlMl9kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL2xib3hyZTJfZGVmY29uZmlnCkBAIC0yMzEsNyArMjMxLDYgQEAKICMKIENPTkZJR19TSF9UTVU9eQogQ09ORklHX1NIX1RJTUVSX0lSUT0xNgotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfU0hfUENMS19GUkVRPTQwMDAwMDAwCiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9zZTc3MDVfZGVmY29uZmlnIGIvYXJjaC9zaC9jb25maWdzL3NlNzcwNV9kZWZjb25maWcKaW5kZXggODQ3MTdkOC4uNDkwZGNiYyAxMDA2NDQKLS0tIGEvYXJjaC9zaC9jb25maWdzL3NlNzcwNV9kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL3NlNzcwNV9kZWZjb25maWcKQEAgLTIzOSw3ICsyMzksNiBAQAogIwogQ09ORklHX1NIX1RNVT15CiBDT05GSUdfU0hfVElNRVJfSVJRPTE2Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19TSF9QQ0xLX0ZSRVE9MzMzMzMzMzMKIAogIwpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9jb25maWdzL3NlNzcxMl9kZWZjb25maWcgYi9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzEyX2RlZmNvbmZpZwppbmRleCAyNDBhMWNlLi4yZGQ4M2FmIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzEyX2RlZmNvbmZpZworKysgYi9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzEyX2RlZmNvbmZpZwpAQCAtMjM2LDcgKzIzNiw2IEBACiAjCiBDT05GSUdfU0hfVE1VPXkKIENPTkZJR19TSF9USU1FUl9JUlE9MTYKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX1NIX1BDTEtfRlJFUT02NjY2NjY2NgogCiAjCmRpZmYgLS1naXQgYS9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzUwX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9zZTc3NTBfZGVmY29uZmlnCmluZGV4IGM2MGI2ZmQuLjE2Nzc4NmYgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvY29uZmlncy9zZTc3NTBfZGVmY29uZmlnCisrKyBiL2FyY2gvc2gvY29uZmlncy9zZTc3NTBfZGVmY29uZmlnCkBAIC0yMzUsNyArMjM1LDYgQEAKICMKIENPTkZJR19TSF9UTVU9eQogQ09ORklHX1NIX1RJTUVSX0lSUT0xNgotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfU0hfUENMS19GUkVRPTMzMzMzMzMzCiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL3N0YWNrdHJhY2UuYyBiL2FyY2gvc2gva2VybmVsL3N0YWNrdHJhY2UuYwppbmRleCBkNDFlNTYxLi4xYjJhZTM1IDEwMDY0NAotLS0gYS9hcmNoL3NoL2tlcm5lbC9zdGFja3RyYWNlLmMKKysrIGIvYXJjaC9zaC9rZXJuZWwvc3RhY2t0cmFjZS5jCkBAIC0zNCwzICszNCw0IEBACiAJCX0KIAl9CiB9CitFWFBPUlRfU1lNQk9MX0dQTChzYXZlX3N0YWNrX3RyYWNlKTsKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL3ZtbGludXhfMzIubGRzLlMgYi9hcmNoL3NoL2tlcm5lbC92bWxpbnV4XzMyLmxkcy5TCmluZGV4IGM3MTEzNzguLjdiNGI4MmJkIDEwMDY0NAotLS0gYS9hcmNoL3NoL2tlcm5lbC92bWxpbnV4XzMyLmxkcy5TCisrKyBiL2FyY2gvc2gva2VybmVsL3ZtbGludXhfMzIubGRzLlMKQEAgLTQ0LDcgKzQ0LDYgQEAKIAogCV9ldGV4dCA9IC47CQkJLyogRW5kIG9mIHRleHQgc2VjdGlvbiAqLwogCi0JQlVHX1RBQkxFCiAJTk9URVMKIAlST19EQVRBKFBBR0VfU0laRSkKIApkaWZmIC0tZ2l0IGEvYXJjaC9zaC9rZXJuZWwvdm1saW51eF82NC5sZHMuUyBiL2FyY2gvc2gva2VybmVsL3ZtbGludXhfNjQubGRzLlMKaW5kZXggZDFlMTc3MC4uMzNmYTQ2NCAxMDA2NDQKLS0tIGEvYXJjaC9zaC9rZXJuZWwvdm1saW51eF82NC5sZHMuUworKysgYi9hcmNoL3NoL2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TCkBAIC02NSw3ICs2NSw2IEBACiAKIAlfZXRleHQgPSAuOwkJCS8qIEVuZCBvZiB0ZXh0IHNlY3Rpb24gKi8KIAotCUJVR19UQUJMRQogCU5PVEVTIAogCVJPX0RBVEEoUEFHRV9TSVpFKQogCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9hcGMuYyBiL2FyY2gvc3BhcmMva2VybmVsL2FwYy5jCmluZGV4IGQwNmE0MDUuLjY3MDc0MjIgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMva2VybmVsL2FwYy5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL2FwYy5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcG0uaD4KIAogI2luY2x1ZGUgPGFzbS9pby5oPgpAQCAtNzUsNiArNzYsNyBAQAogCiBzdGF0aWMgaW50IGFwY19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmM2NC9LY29uZmlnIGIvYXJjaC9zcGFyYzY0L0tjb25maWcKaW5kZXggZWIzNmYzYi4uZmNhOTI0NiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYzY0L0tjb25maWcKKysrIGIvYXJjaC9zcGFyYzY0L0tjb25maWcKQEAgLTExLDYgKzExLDggQEAKIGNvbmZpZyBTUEFSQzY0CiAJYm9vbAogCWRlZmF1bHQgeQorCXNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFCisJc2VsZWN0IEhBVkVfRlRSQUNFCiAJc2VsZWN0IEhBVkVfSURFCiAJc2VsZWN0IEhBVkVfTE1CCiAJc2VsZWN0IEhBVkVfQVJDSF9LR0RCCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjNjQvS2NvbmZpZy5kZWJ1ZyBiL2FyY2gvc3BhcmM2NC9LY29uZmlnLmRlYnVnCmluZGV4IDZhNGQyOGEuLmQ2ZDMyZDEgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmM2NC9LY29uZmlnLmRlYnVnCisrKyBiL2FyY2gvc3BhcmM2NC9LY29uZmlnLmRlYnVnCkBAIC0zMyw3ICszMyw3IEBACiAKIGNvbmZpZyBNQ09VTlQKIAlib29sCi0JZGVwZW5kcyBvbiBTVEFDS19ERUJVRworCWRlcGVuZHMgb24gU1RBQ0tfREVCVUcgfHwgRlRSQUNFCiAJZGVmYXVsdCB5CiAKIGNvbmZpZyBGUkFNRV9QT0lOVEVSCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjNjQva2VybmVsL01ha2VmaWxlIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC9NYWtlZmlsZQppbmRleCBlYzRmNWViLi40MThiNTc4IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjNjQva2VybmVsL01ha2VmaWxlCisrKyBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvTWFrZWZpbGUKQEAgLTE0LDYgKzE0LDcgQEAKIAkJICAgcG93ZXIubyBzYnVzLm8gc3BhcmM2NF9rc3ltcy5vIGNobWMubyBcCiAJCSAgIHZpc2VtdWwubyBwcm9tLm8gb2ZfZGV2aWNlLm8gaHZhcGkubyBzc3RhdGUubyBtZGVzYy5vCiAKK29iai0kKENPTkZJR19EWU5BTUlDX0ZUUkFDRSkgKz0gZnRyYWNlLm8KIG9iai0kKENPTkZJR19TVEFDS1RSQUNFKSArPSBzdGFja3RyYWNlLm8KIG9iai0kKENPTkZJR19QQ0kpCSArPSBlYnVzLm8gcGNpX2NvbW1vbi5vIFwKIAkJCSAgICBwY2lfcHN5Y2hvLm8gcGNpX3NhYnJlLm8gcGNpX3NjaGl6by5vIFwKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmM2NC9rZXJuZWwvZnRyYWNlLmMgYi9hcmNoL3NwYXJjNjQva2VybmVsL2Z0cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyOThkMGEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3NwYXJjNjQva2VybmVsL2Z0cmFjZS5jCkBAIC0wLDAgKzEsOTQgQEAKKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorCisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgorCitzdGF0aWMgY29uc3QgdTMyIGZ0cmFjZV9ub3AgPSAweDAxMDAwMDAwOworCitub3RyYWNlIHVuc2lnbmVkIGNoYXIgKmZ0cmFjZV9ub3BfcmVwbGFjZSh2b2lkKQoreworCXJldHVybiAoY2hhciAqKSZmdHJhY2Vfbm9wOworfQorCitub3RyYWNlIHVuc2lnbmVkIGNoYXIgKmZ0cmFjZV9jYWxsX3JlcGxhY2UodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBhZGRyKQoreworCXN0YXRpYyB1MzIgY2FsbDsKKwlzMzIgb2ZmOworCisJb2ZmID0gKChzMzIpYWRkciAtIChzMzIpaXApOworCWNhbGwgPSAweDQwMDAwMDAwIHwgKCh1MzIpb2ZmID4+IDIpOworCisJcmV0dXJuICh1bnNpZ25lZCBjaGFyICopICZjYWxsOworfQorCitub3RyYWNlIGludAorZnRyYWNlX21vZGlmeV9jb2RlKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGNoYXIgKm9sZF9jb2RlLAorCQkgICB1bnNpZ25lZCBjaGFyICpuZXdfY29kZSkKK3sKKwl1MzIgb2xkID0gKih1MzIgKilvbGRfY29kZTsKKwl1MzIgbmV3ID0gKih1MzIgKiluZXdfY29kZTsKKwl1MzIgcmVwbGFjZWQ7CisJaW50IGZhdWx0ZWQ7CisKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXygKKwkiMToJY2FzCVslW2lwXV0sICVbb2xkXSwgJVtuZXddXG4iCisJIglmbHVzaAklW2lwXVxuIgorCSIJbW92CTAsICVbZmF1bHRlZF1cbiIKKwkiMjpcbiIKKwkiCS5zZWN0aW9uIC5maXh1cCwjYWxsb2MsI2V4ZWNpbnN0clxuIgorCSIJLmFsaWduCTRcbiIKKwkiMzoJc2V0aGkJJSVoaSgyYiksICVbZmF1bHRlZF1cbiIKKwkiCWptcGwJJVtmYXVsdGVkXSArICUlbG8oMmIpLCAlJWcwXG4iCisJIgkgbW92CTEsICVbZmF1bHRlZF1cbiIKKwkiCS5wcmV2aW91c1xuIgorCSIJLnNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIgorCSIJLmFsaWduCTRcbiIKKwkiCS53b3JkCTFiLCAzYlxuIgorCSIJLnByZXZpb3VzXG4iCisJOiAiPXIiIChyZXBsYWNlZCksIFtmYXVsdGVkXSAiPXIiIChmYXVsdGVkKQorCTogW25ld10gIjAiIChuZXcpLCBbb2xkXSAiciIgKG9sZCksIFtpcF0gInIiIChpcCkKKwk6ICJtZW1vcnkiKTsKKworCWlmIChyZXBsYWNlZCAhPSBvbGQgJiYgcmVwbGFjZWQgIT0gbmV3KQorCQlmYXVsdGVkID0gMjsKKworCXJldHVybiBmYXVsdGVkOworfQorCitub3RyYWNlIGludCBmdHJhY2VfdXBkYXRlX2Z0cmFjZV9mdW5jKGZ0cmFjZV9mdW5jX3QgZnVuYykKK3sKKwl1bnNpZ25lZCBsb25nIGlwID0gKHVuc2lnbmVkIGxvbmcpKCZmdHJhY2VfY2FsbCk7CisJdW5zaWduZWQgY2hhciBvbGRbTUNPVU5UX0lOU05fU0laRV0sICpuZXc7CisKKwltZW1jcHkob2xkLCAmZnRyYWNlX2NhbGwsIE1DT1VOVF9JTlNOX1NJWkUpOworCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsICh1bnNpZ25lZCBsb25nKWZ1bmMpOworCXJldHVybiBmdHJhY2VfbW9kaWZ5X2NvZGUoaXAsIG9sZCwgbmV3KTsKK30KKworbm90cmFjZSBpbnQgZnRyYWNlX21jb3VudF9zZXQodW5zaWduZWQgbG9uZyAqZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIGlwID0gKGxvbmcpKCZtY291bnRfY2FsbCk7CisJdW5zaWduZWQgbG9uZyAqYWRkciA9IGRhdGE7CisJdW5zaWduZWQgY2hhciBvbGRbTUNPVU5UX0lOU05fU0laRV0sICpuZXc7CisKKwkvKgorCSAqIFJlcGxhY2UgdGhlIG1jb3VudCBzdHViIHdpdGggYSBwb2ludGVyIHRvIHRoZQorCSAqIGlwIHJlY29yZGVyIGZ1bmN0aW9uLgorCSAqLworCW1lbWNweShvbGQsICZtY291bnRfY2FsbCwgTUNPVU5UX0lOU05fU0laRSk7CisJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgKmFkZHIpOworCSphZGRyID0gZnRyYWNlX21vZGlmeV9jb2RlKGlwLCBvbGQsIG5ldyk7CisKKwlyZXR1cm4gMDsKK30KKworCitpbnQgX19pbml0IGZ0cmFjZV9keW5fYXJjaF9pbml0KHZvaWQgKmRhdGEpCit7CisJZnRyYWNlX21jb3VudF9zZXQoZGF0YSk7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjNjQva2VybmVsL3NwYXJjNjRfa3N5bXMuYyBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvc3BhcmM2NF9rc3ltcy5jCmluZGV4IDhhYzBiOTkuLjQ5ZDNlYTUwIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjNjQva2VybmVsL3NwYXJjNjRfa3N5bXMuYworKysgYi9hcmNoL3NwYXJjNjQva2VybmVsL3NwYXJjNjRfa3N5bXMuYwpAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgPGFzbS9uczg3MzAzLmg+CiAjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CiAjaW5jbHVkZSA8YXNtL2NwdWRhdGEuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CiAKIHN0cnVjdCBwb2xsIHsKIAlpbnQgZmQ7CkBAIC0xMTEsOCArMTEyLDcgQEAKIEVYUE9SVF9TWU1CT0woc21wX2NhbGxfZnVuY3Rpb24pOwogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAotI2lmIGRlZmluZWQoQ09ORklHX01DT1VOVCkKLWV4dGVybiB2b2lkIF9tY291bnQodm9pZCk7CisjaWZkZWYgQ09ORklHX01DT1VOVAogRVhQT1JUX1NZTUJPTChfbWNvdW50KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjNjQva2VybmVsL3N0YWNrdHJhY2UuYyBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvc3RhY2t0cmFjZS5jCmluZGV4IGM3M2NlM2YuLmIzZTM3MzcgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmM2NC9rZXJuZWwvc3RhY2t0cmFjZS5jCisrKyBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvc3RhY2t0cmFjZS5jCkBAIC0xLDYgKzEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvc3RhY2t0cmFjZS5oPgogI2luY2x1ZGUgPGxpbnV4L3RocmVhZF9pbmZvLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgogI2luY2x1ZGUgPGFzbS9zdGFja3RyYWNlLmg+CiAKQEAgLTQ3LDMgKzQ4LDQgQEAKIAkJCXRyYWNlLT5lbnRyaWVzW3RyYWNlLT5ucl9lbnRyaWVzKytdID0gcGM7CiAJfSB3aGlsZSAodHJhY2UtPm5yX2VudHJpZXMgPCB0cmFjZS0+bWF4X2VudHJpZXMpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoc2F2ZV9zdGFja190cmFjZSk7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjNjQva2VybmVsL3RpbWUuYyBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvdGltZS5jCmluZGV4IGU1ZDIzODkuLmJlZGM0YzEgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmM2NC9rZXJuZWwvdGltZS5jCisrKyBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvdGltZS5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KQEAgLTE2NTksMTAgKzE2NjAsMTQgQEAKIAogc3RhdGljIGludCBtaW5pX3J0Y19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewotCWlmIChtaW5pX3J0Y19zdGF0dXMgJiBSVENfSVNfT1BFTikKKwlsb2NrX2tlcm5lbCgpOworCWlmIChtaW5pX3J0Y19zdGF0dXMgJiBSVENfSVNfT1BFTikgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CisJfQogCiAJbWluaV9ydGNfc3RhdHVzIHw9IFJUQ19JU19PUEVOOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYzY0L2xpYi9tY291bnQuUyBiL2FyY2gvc3BhcmM2NC9saWIvbWNvdW50LlMKaW5kZXggOWU0NTM0Yi4uNzczNWE3YSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYzY0L2xpYi9tY291bnQuUworKysgYi9hcmNoL3NwYXJjNjQvbGliL21jb3VudC5TCkBAIC0yOCwxMCArMjgsMTMgQEAKIAkuc2tpcAkJT1ZTVEFDS1NJWkUKICNlbmRpZgogCS50ZXh0Ci0JLmFsaWduIDMyCi0JLmdsb2JsIG1jb3VudCwgX21jb3VudAotbWNvdW50OgorCS5hbGlnbgkJMzIKKwkuZ2xvYmwJCV9tY291bnQKKwkudHlwZQkJX21jb3VudCwjZnVuY3Rpb24KKwkuZ2xvYmwJCW1jb3VudAorCS50eXBlCQltY291bnQsI2Z1bmN0aW9uCiBfbWNvdW50OgorbWNvdW50OgogI2lmZGVmIENPTkZJR19TVEFDS19ERUJVRwogCS8qCiAJICogQ2hlY2sgd2hldGhlciAlc3AgaXMgZGFuZ2Vyb3VzbHkgbG93LgpAQCAtNTUsNiArNTgsNTMgQEAKIAkgb3IJCSVnMywgJWxvKHBhbmljc3RyaW5nKSwgJW8wCiAJY2FsbAkJcHJvbV9oYWx0CiAJIG5vcAorMToKICNlbmRpZgotMToJcmV0bAorI2lmZGVmIENPTkZJR19GVFJBQ0UKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKwltb3YJCSVvNywgJW8wCisJLmdsb2JsCQltY291bnRfY2FsbAorbWNvdW50X2NhbGw6CisJY2FsbAkJZnRyYWNlX3N0dWIKKwkgbW92CQklbzAsICVvNworI2Vsc2UKKwlzZXRoaQkJJWhpKGZ0cmFjZV90cmFjZV9mdW5jdGlvbiksICVnMQorCXNldGhpCQklaGkoZnRyYWNlX3N0dWIpLCAlZzIKKwlsZHgJCVslZzEgKyAlbG8oZnRyYWNlX3RyYWNlX2Z1bmN0aW9uKV0sICVnMQorCW9yCQklZzIsICVsbyhmdHJhY2Vfc3R1YiksICVnMgorCWNtcAkJJWcxLCAlZzIKKwliZSxwbgkJJWljYywgMWYKKwkgbW92CQklaTcsICVvMQorCWptcGwJCSVnMSwgJWcwCisJIG1vdgkJJW83LCAlbzAKKwkvKiBub3QgcmVhY2hlZCAqLworMToKKyNlbmRpZgorI2VuZGlmCisJcmV0bAogCSBub3AKKwkuc2l6ZQkJX21jb3VudCwuLV9tY291bnQKKwkuc2l6ZQkJbWNvdW50LC4tbWNvdW50CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisJLmdsb2JsCQlmdHJhY2Vfc3R1YgorCS50eXBlCQlmdHJhY2Vfc3R1YiwjZnVuY3Rpb24KK2Z0cmFjZV9zdHViOgorCXJldGwKKwkgbm9wCisJLnNpemUJCWZ0cmFjZV9zdHViLC4tZnRyYWNlX3N0dWIKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKwkuZ2xvYmwJCWZ0cmFjZV9jYWxsZXIKKwkudHlwZQkJZnRyYWNlX2NhbGxlciwjZnVuY3Rpb24KK2Z0cmFjZV9jYWxsZXI6CisJbW92CQklaTcsICVvMQorCW1vdgkJJW83LCAlbzAKKwkuZ2xvYmwJCWZ0cmFjZV9jYWxsCitmdHJhY2VfY2FsbDoKKwljYWxsCQlmdHJhY2Vfc3R1YgorCSBtb3YJCSVvMCwgJW83CisJcmV0bAorCSBub3AKKwkuc2l6ZQkJZnRyYWNlX2NhbGxlciwuLWZ0cmFjZV9jYWxsZXIKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3VtL01ha2VmaWxlIGIvYXJjaC91bS9NYWtlZmlsZQppbmRleCBkYmVhYjE1Li5jYTQwMzk3IDEwMDY0NAotLS0gYS9hcmNoL3VtL01ha2VmaWxlCisrKyBiL2FyY2gvdW0vTWFrZWZpbGUKQEAgLTc3LDcgKzc3LDYgQEAKIEtFUk5FTF9ERUZJTkVTID0gJChzdHJpcCAtRGVycm5vPWtlcm5lbF9lcnJubyAtRHNpZ3Byb2NtYXNrPWtlcm5lbF9zaWdwcm9jbWFzayBcCiAJCQkgLURta3RpbWU9a2VybmVsX21rdGltZSAkKEFSQ0hfS0VSTkVMX0RFRklORVMpKQogS0JVSUxEX0NGTEFHUyArPSAkKEtFUk5FTF9ERUZJTkVTKQotS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1mbm8tdW5pdC1hdC1hLXRpbWUsKQogCiBQSE9OWSArPSBsaW51eAogCmRpZmYgLS1naXQgYS9hcmNoL3VtL01ha2VmaWxlLWkzODYgYi9hcmNoL3VtL01ha2VmaWxlLWkzODYKaW5kZXggNTYxZTM3My4uMzAyY2JlNSAxMDA2NDQKLS0tIGEvYXJjaC91bS9NYWtlZmlsZS1pMzg2CisrKyBiL2FyY2gvdW0vTWFrZWZpbGUtaTM4NgpAQCAtMzIsNCArMzIsMTEgQEAKICMgYW4gdW5yZXNvbHZlZCByZWZlcmVuY2UuCiBjZmxhZ3MteSArPSAtZmZyZWVzdGFuZGluZwogCisjIERpc2FibGUgdW5pdC1hdC1hLXRpbWUgbW9kZSBvbiBwcmUtZ2NjLTQuMCBjb21waWxlcnMsIGl0IG1ha2VzIGdjYyB1c2UKKyMgYSBsb3QgbW9yZSBzdGFjayBkdWUgdG8gdGhlIGxhY2sgb2Ygc2hhcmluZyBvZiBzdGFja2xvdHMuICBBbHNvLCBnY2MKKyMgNC4zLjAgbmVlZHMgLWZ1bml0LWF0LWEtdGltZSBmb3IgZXh0ZXJuIGlubGluZSBmdW5jdGlvbnMuCitLQlVJTERfQ0ZMQUdTICs9ICQoc2hlbGwgaWYgWyAkKGNhbGwgY2MtdmVyc2lvbikgLWx0IDA0MDAgXSA7IHRoZW4gXAorCQkJZWNobyAkKGNhbGwgY2Mtb3B0aW9uLC1mbm8tdW5pdC1hdC1hLXRpbWUpOyBcCisJCQllbHNlIGVjaG8gJChjYWxsIGNjLW9wdGlvbiwtZnVuaXQtYXQtYS10aW1lKTsgZmkgOykKKwogS0JVSUxEX0NGTEFHUyArPSAkKGNmbGFncy15KQpkaWZmIC0tZ2l0IGEvYXJjaC91bS9NYWtlZmlsZS14ODZfNjQgYi9hcmNoL3VtL01ha2VmaWxlLXg4Nl82NAppbmRleCA4ZWQzNjJmLi5hOWNkN2U3IDEwMDY0NAotLS0gYS9hcmNoL3VtL01ha2VmaWxlLXg4Nl82NAorKysgYi9hcmNoL3VtL01ha2VmaWxlLXg4Nl82NApAQCAtMjEsMyArMjEsNiBAQAogCiBMSU5LLSQoQ09ORklHX0xEX1NDUklQVF9EWU4pICs9IC1XbCwtcnBhdGgsL2xpYjY0CiBMSU5LLXkgKz0gLW02NAorCisjIERvIHVuaXQtYXQtYS10aW1lIHVuY29uZGl0aW9uYWxseSBvbiB4ODZfNjQsIGZvbGxvd2luZyB0aGUgaG9zdAorS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1mdW5pdC1hdC1hLXRpbWUpCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvaGFyZGRvZ19rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvaGFyZGRvZ19rZXJuLmMKaW5kZXggYTlhZDRiZC4uZDMzMjUwMyAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL2hhcmRkb2dfa2Vybi5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9oYXJkZG9nX2tlcm4uYwpAQCAtNjYsNiArNjYsNyBAQAogCWludCBlcnIgPSAtRUJVU1k7CiAJY2hhciAqc29jayA9IE5VTEw7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9jaygmbG9jayk7CiAJaWYodGltZXJfYWxpdmUpCiAJCWdvdG8gZXJyOwpAQCAtODIsOSArODMsMTEgQEAKIAogCXRpbWVyX2FsaXZlID0gMTsKIAlzcGluX3VubG9jaygmbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKIGVycjoKIAlzcGluX3VubG9jaygmbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9tbWFwcGVyX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVycy9tbWFwcGVyX2tlcm4uYwppbmRleCA2N2IyZjU1Li5lYjI0MDMyIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvbW1hcHBlcl9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL21tYXBwZXJfa2Vybi5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgIm1lbV91c2VyLmgiCiAKQEAgLTc3LDYgKzc4LDcgQEAKIAogc3RhdGljIGludCBtbWFwcGVyX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3JhbmRvbS5jIGIvYXJjaC91bS9kcml2ZXJzL3JhbmRvbS5jCmluZGV4IDQ5NDkwNDQuLjZlYWJiNzAgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9yYW5kb20uYworKysgYi9hcmNoL3VtL2RyaXZlcnMvcmFuZG9tLmMKQEAgLTcsNiArNyw3IEBACiAgKiBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGluY29ycG9yYXRlZCBoZXJlaW4gYnkgcmVmZXJlbmNlLgogICovCiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CkBAIC0zMyw2ICszNCw4IEBACiAKIHN0YXRpYyBpbnQgcm5nX2Rldl9vcGVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOworCiAJLyogZW5mb3JjZSByZWFkLW9ubHkgYWNjZXNzIHRvIHRoaXMgY2hyZGV2ICovCiAJaWYgKChmaWxwLT5mX21vZGUgJiBGTU9ERV9SRUFEKSA9PSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcgYi9hcmNoL3g4Ni9LY29uZmlnCmluZGV4IDJmM2ZiZWIuLjk2ZTBjMmUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L0tjb25maWcKKysrIGIvYXJjaC94ODYvS2NvbmZpZwpAQCAtMjMsNiArMjMsOCBAQAogCXNlbGVjdCBIQVZFX09QUk9GSUxFCiAJc2VsZWN0IEhBVkVfS1BST0JFUwogCXNlbGVjdCBIQVZFX0tSRVRQUk9CRVMKKwlzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRQorCXNlbGVjdCBIQVZFX0ZUUkFDRQogCXNlbGVjdCBIQVZFX0tWTSBpZiAoKFg4Nl8zMiAmJiAhWDg2X1ZPWUFHRVIgJiYgIVg4Nl9WSVNXUyAmJiAhWDg2X05VTUFRKSB8fCBYODZfNjQpCiAJc2VsZWN0IEhBVkVfQVJDSF9LR0RCIGlmICFYODZfVk9ZQUdFUgogCkBAIC0xMjEsNyArMTIzLDcgQEAKIAlkZWZfYm9vbCB5CiAKIGNvbmZpZyBIQVZFX1NFVFVQX1BFUl9DUFVfQVJFQQotCWRlZl9ib29sIFg4Nl82NCB8fCAoWDg2X1NNUCAmJiAhWDg2X1ZPWUFHRVIpCisJZGVmX2Jvb2wgWDg2XzY0X1NNUCB8fCAoWDg2X1NNUCAmJiAhWDg2X1ZPWUFHRVIpCiAKIGNvbmZpZyBIQVZFX0NQVU1BU0tfT0ZfQ1BVX01BUAogCWRlZl9ib29sIFg4Nl82NF9TTVAKQEAgLTE4MiwxMiArMTg0LDEyIEBACiBjb25maWcgWDg2X0hUCiAJYm9vbAogCWRlcGVuZHMgb24gU01QCi0JZGVwZW5kcyBvbiAoWDg2XzMyICYmICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSKSkgfHwgWDg2XzY0CisJZGVwZW5kcyBvbiAoWDg2XzMyICYmICFYODZfVk9ZQUdFUikgfHwgWDg2XzY0CiAJZGVmYXVsdCB5CiAKIGNvbmZpZyBYODZfQklPU19SRUJPT1QKIAlib29sCi0JZGVwZW5kcyBvbiAhWDg2X1ZJU1dTICYmICFYODZfVk9ZQUdFUgorCWRlcGVuZHMgb24gIVg4Nl9WT1lBR0VSCiAJZGVmYXVsdCB5CiAKIGNvbmZpZyBYODZfVFJBTVBPTElORQpAQCAtMjMxLDYgKzIzMywyNiBAQAogCiAJICBJZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHRvIGRvIGhlcmUsIHNheSBOLgogCitjb25maWcgWDg2X0ZJTkRfU01QX0NPTkZJRworCWRlZl9ib29sIHkKKwlkZXBlbmRzIG9uIFg4Nl9NUFBBUlNFIHx8IFg4Nl9WT1lBR0VSCisKK2lmIEFDUEkKK2NvbmZpZyBYODZfTVBQQVJTRQorCWRlZl9ib29sIHkKKwlib29sICJFbmFibGUgTVBTIHRhYmxlIgorCWRlcGVuZHMgb24gWDg2X0xPQ0FMX0FQSUMKKwloZWxwCisJICBGb3Igb2xkIHNtcCBzeXN0ZW1zIHRoYXQgZG8gbm90IGhhdmUgcHJvcGVyIGFjcGkgc3VwcG9ydC4gTmV3ZXIgc3lzdGVtcworCSAgKGVzcCB3aXRoIDY0Yml0IGNwdXMpIHdpdGggYWNwaSBzdXBwb3J0LCBNQURUIGFuZCBEU0RUIHdpbGwgb3ZlcnJpZGUgaXQKK2VuZGlmCisKK2lmICFBQ1BJCitjb25maWcgWDg2X01QUEFSU0UKKwlkZWZfYm9vbCB5CisJZGVwZW5kcyBvbiBYODZfTE9DQUxfQVBJQworZW5kaWYKKwogY2hvaWNlCiAJcHJvbXB0ICJTdWJhcmNoaXRlY3R1cmUgVHlwZSIKIAlkZWZhdWx0IFg4Nl9QQwpAQCAtMjUyLDcgKzI3NCw3IEBACiAKIGNvbmZpZyBYODZfVk9ZQUdFUgogCWJvb2wgIlZveWFnZXIgKE5DUikiCi0JZGVwZW5kcyBvbiBYODZfMzIgJiYgKFNNUCB8fCBCUk9LRU4pCisJZGVwZW5kcyBvbiBYODZfMzIgJiYgKFNNUCB8fCBCUk9LRU4pICYmICFQQ0kKIAloZWxwCiAJICBWb3lhZ2VyIGlzIGFuIE1DQS1iYXNlZCAzMi13YXkgY2FwYWJsZSBTTVAgYXJjaGl0ZWN0dXJlIHByb3ByaWV0YXJ5CiAJICB0byBOQ1IgQ29ycC4gIE1hY2hpbmUgY2xhc3NlcyAzNDV4LzM1eHgvNDEwMC81MXh4IGFyZSBWb3lhZ2VyLWJhc2VkLgpAQCAtMjYyLDE2ICsyODQsMjcgQEAKIAkgIElmIHlvdSBkbyBub3Qgc3BlY2lmaWNhbGx5IGtub3cgeW91IGhhdmUgYSBWb3lhZ2VyIGJhc2VkIG1hY2hpbmUsCiAJICBzYXkgTiBoZXJlLCBvdGhlcndpc2UgdGhlIGtlcm5lbCB5b3UgYnVpbGQgd2lsbCBub3QgYmUgYm9vdGFibGUuCiAKK2NvbmZpZyBYODZfR0VORVJJQ0FSQ0gKKyAgICAgICBib29sICJHZW5lcmljIGFyY2hpdGVjdHVyZSIKKwlkZXBlbmRzIG9uIFg4Nl8zMgorICAgICAgIGhlbHAKKyAgICAgICAgICBUaGlzIG9wdGlvbiBjb21waWxlcyBpbiB0aGUgTlVNQVEsIFN1bW1pdCwgYmlnc21wLCBFUzcwMDAsIGRlZmF1bHQKKwkgIHN1YmFyY2hpdGVjdHVyZXMuICBJdCBpcyBpbnRlbmRlZCBmb3IgYSBnZW5lcmljIGJpbmFyeSBrZXJuZWwuCisJICBpZiB5b3Ugc2VsZWN0IHRoZW0gYWxsLCBrZXJuZWwgd2lsbCBwcm9iZSBpdCBvbmUgYnkgb25lLiBhbmQgd2lsbAorCSAgZmFsbGJhY2sgdG8gZGVmYXVsdC4KKworaWYgWDg2X0dFTkVSSUNBUkNICisKIGNvbmZpZyBYODZfTlVNQVEKIAlib29sICJOVU1BUSAoSUJNL1NlcXVlbnQpIgotCWRlcGVuZHMgb24gU01QICYmIFg4Nl8zMgorCWRlcGVuZHMgb24gU01QICYmIFg4Nl8zMiAmJiBQQ0kgJiYgWDg2X01QUEFSU0UKIAlzZWxlY3QgTlVNQQogCWhlbHAKLQkgIFRoaXMgb3B0aW9uIGlzIHVzZWQgZm9yIGdldHRpbmcgTGludXggdG8gcnVuIG9uIGEgKElCTS9TZXF1ZW50KSBOVU1BCi0JICBtdWx0aXF1YWQgYm94LiBUaGlzIGNoYW5nZXMgdGhlIHdheSB0aGF0IHByb2Nlc3NvcnMgYXJlIGJvb3RzdHJhcHBlZCwKLQkgIGFuZCB1c2VzIENsdXN0ZXJlZCBMb2dpY2FsIEFQSUMgYWRkcmVzc2luZyBtb2RlIGluc3RlYWQgb2YgRmxhdCBMb2dpY2FsLgotCSAgWW91IHdpbGwgbmVlZCBhIG5ldyBseW54ZXIuZWxmIGZpbGUgdG8gZmxhc2ggeW91ciBmaXJtd2FyZSB3aXRoIC0gc2VuZAotCSAgZW1haWwgdG8gPE1hcnRpbi5CbGlnaEB1cy5pYm0uY29tPi4KKwkgIFRoaXMgb3B0aW9uIGlzIHVzZWQgZm9yIGdldHRpbmcgTGludXggdG8gcnVuIG9uIGEgTlVNQVEgKElCTS9TZXF1ZW50KQorCSAgTlVNQSBtdWx0aXF1YWQgYm94LiBUaGlzIGNoYW5nZXMgdGhlIHdheSB0aGF0IHByb2Nlc3NvcnMgYXJlCisJICBib290c3RyYXBwZWQsIGFuZCB1c2VzIENsdXN0ZXJlZCBMb2dpY2FsIEFQSUMgYWRkcmVzc2luZyBtb2RlIGluc3RlYWQKKwkgIG9mIEZsYXQgTG9naWNhbC4gIFlvdSB3aWxsIG5lZWQgYSBuZXcgbHlueGVyLmVsZiBmaWxlIHRvIGZsYXNoIHlvdXIKKwkgIGZpcm13YXJlIHdpdGggLSBzZW5kIGVtYWlsIHRvIDxNYXJ0aW4uQmxpZ2hAdXMuaWJtLmNvbT4uCiAKIGNvbmZpZyBYODZfU1VNTUlUCiAJYm9vbCAiU3VtbWl0L0VYQSAoSUJNIHg0NDApIgpAQCAtMjgwLDQ2ICszMTMsMjEgQEAKIAkgIFRoaXMgb3B0aW9uIGlzIG5lZWRlZCBmb3IgSUJNIHN5c3RlbXMgdGhhdCB1c2UgdGhlIFN1bW1pdC9FWEEgY2hpcHNldC4KIAkgIEluIHBhcnRpY3VsYXIsIGl0IGlzIG5lZWRlZCBmb3IgdGhlIHg0NDAuCiAKLQkgIElmIHlvdSBkb24ndCBoYXZlIG9uZSBvZiB0aGVzZSBjb21wdXRlcnMsIHlvdSBzaG91bGQgc2F5IE4gaGVyZS4KLQkgIElmIHlvdSB3YW50IHRvIGJ1aWxkIGEgTlVNQSBrZXJuZWwsIHlvdSBtdXN0IHNlbGVjdCBBQ1BJLgotCi1jb25maWcgWDg2X0JJR1NNUAotCWJvb2wgIlN1cHBvcnQgZm9yIG90aGVyIHN1Yi1hcmNoIFNNUCBzeXN0ZW1zIHdpdGggbW9yZSB0aGFuIDggQ1BVcyIKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBTTVAKLQloZWxwCi0JICBUaGlzIG9wdGlvbiBpcyBuZWVkZWQgZm9yIHRoZSBzeXN0ZW1zIHRoYXQgaGF2ZSBtb3JlIHRoYW4gOCBDUFVzCi0JICBhbmQgaWYgdGhlIHN5c3RlbSBpcyBub3Qgb2YgYW55IHN1Yi1hcmNoIHR5cGUgYWJvdmUuCi0KLQkgIElmIHlvdSBkb24ndCBoYXZlIHN1Y2ggYSBzeXN0ZW0sIHlvdSBzaG91bGQgc2F5IE4gaGVyZS4KLQotY29uZmlnIFg4Nl9WSVNXUwotCWJvb2wgIlNHSSAzMjAvNTQwIChWaXN1YWwgV29ya3N0YXRpb24pIgotCWRlcGVuZHMgb24gWDg2XzMyCi0JaGVscAotCSAgVGhlIFNHSSBWaXN1YWwgV29ya3N0YXRpb24gc2VyaWVzIGlzIGFuIElBMzItYmFzZWQgd29ya3N0YXRpb24KLQkgIGJhc2VkIG9uIFNHSSBzeXN0ZW1zIGNoaXBzIHdpdGggc29tZSBsZWdhY3kgUEMgaGFyZHdhcmUgYXR0YWNoZWQuCi0KLQkgIFNheSBZIGhlcmUgdG8gY3JlYXRlIGEga2VybmVsIHRvIHJ1biBvbiB0aGUgU0dJIDMyMCBvciA1NDAuCi0KLQkgIEEga2VybmVsIGNvbXBpbGVkIGZvciB0aGUgVmlzdWFsIFdvcmtzdGF0aW9uIHdpbGwgbm90IHJ1biBvbiBQQ3MKLQkgIGFuZCB2aWNlIHZlcnNhLiBTZWUgPGZpbGU6RG9jdW1lbnRhdGlvbi9zZ2ktdmlzd3MudHh0PiBmb3IgZGV0YWlscy4KLQotY29uZmlnIFg4Nl9HRU5FUklDQVJDSAotICAgICAgIGJvb2wgIkdlbmVyaWMgYXJjaGl0ZWN0dXJlIChTdW1taXQsIGJpZ3NtcCwgRVM3MDAwLCBkZWZhdWx0KSIKLQlkZXBlbmRzIG9uIFg4Nl8zMgotICAgICAgIGhlbHAKLSAgICAgICAgICBUaGlzIG9wdGlvbiBjb21waWxlcyBpbiB0aGUgU3VtbWl0LCBiaWdzbXAsIEVTNzAwMCwgZGVmYXVsdCBzdWJhcmNoaXRlY3R1cmVzLgotCSAgSXQgaXMgaW50ZW5kZWQgZm9yIGEgZ2VuZXJpYyBiaW5hcnkga2VybmVsLgotCSAgSWYgeW91IHdhbnQgYSBOVU1BIGtlcm5lbCwgc2VsZWN0IEFDUEkuICAgV2UgbmVlZCBTUkFUIGZvciBOVU1BLgotCiBjb25maWcgWDg2X0VTNzAwMAogCWJvb2wgIlN1cHBvcnQgZm9yIFVuaXN5cyBFUzcwMDAgSUEzMiBzZXJpZXMiCiAJZGVwZW5kcyBvbiBYODZfMzIgJiYgU01QCiAJaGVscAogCSAgU3VwcG9ydCBmb3IgVW5pc3lzIEVTNzAwMCBzeXN0ZW1zLiAgU2F5ICdZJyBoZXJlIGlmIHRoaXMga2VybmVsIGlzCiAJICBzdXBwb3NlZCB0byBydW4gb24gYW4gSUEzMi1iYXNlZCBVbmlzeXMgRVM3MDAwIHN5c3RlbS4KLQkgIE9ubHkgY2hvb3NlIHRoaXMgb3B0aW9uIGlmIHlvdSBoYXZlIHN1Y2ggYSBzeXN0ZW0sIG90aGVyd2lzZSB5b3UKLQkgIHNob3VsZCBzYXkgTiBoZXJlLgorCitjb25maWcgWDg2X0JJR1NNUAorCWJvb2wgIlN1cHBvcnQgZm9yIGJpZyBTTVAgc3lzdGVtcyB3aXRoIG1vcmUgdGhhbiA4IENQVXMiCisJZGVwZW5kcyBvbiBYODZfMzIgJiYgU01QCisJaGVscAorCSAgVGhpcyBvcHRpb24gaXMgbmVlZGVkIGZvciB0aGUgc3lzdGVtcyB0aGF0IGhhdmUgbW9yZSB0aGFuIDggQ1BVcworCSAgYW5kIGlmIHRoZSBzeXN0ZW0gaXMgbm90IG9mIGFueSBzdWItYXJjaCB0eXBlIGFib3ZlLgorCitlbmRpZgogCiBjb25maWcgWDg2X1JEQzMyMVgKIAlib29sICJSREMgUi0zMjF4IFNvQyIKQEAgLTMzOCw3ICszNDYsNyBAQAogY29uZmlnIFg4Nl9WU01QCiAJYm9vbCAiU3VwcG9ydCBmb3IgU2NhbGVNUCB2U01QIgogCXNlbGVjdCBQQVJBVklSVAotCWRlcGVuZHMgb24gWDg2XzY0CisJZGVwZW5kcyBvbiBYODZfNjQgJiYgUENJCiAJaGVscAogCSAgU3VwcG9ydCBmb3IgU2NhbGVNUCB2U01QIHN5c3RlbXMuICBTYXkgJ1knIGhlcmUgaWYgdGhpcyBrZXJuZWwgaXMKIAkgIHN1cHBvc2VkIHRvIHJ1biBvbiB0aGVzZSBFTTY0VC1iYXNlZCBtYWNoaW5lcy4gIE9ubHkgY2hvb3NlIHRoaXMgb3B0aW9uCkBAIC0zNDYsNiArMzU0LDE4IEBACiAKIGVuZGNob2ljZQogCitjb25maWcgWDg2X1ZJU1dTCisJYm9vbCAiU0dJIDMyMC81NDAgKFZpc3VhbCBXb3Jrc3RhdGlvbikiCisJZGVwZW5kcyBvbiBYODZfMzIgJiYgUENJICYmICFYODZfVk9ZQUdFUiAmJiBYODZfTVBQQVJTRSAmJiBQQ0lfR09ESVJFQ1QKKwloZWxwCisJICBUaGUgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiBzZXJpZXMgaXMgYW4gSUEzMi1iYXNlZCB3b3Jrc3RhdGlvbgorCSAgYmFzZWQgb24gU0dJIHN5c3RlbXMgY2hpcHMgd2l0aCBzb21lIGxlZ2FjeSBQQyBoYXJkd2FyZSBhdHRhY2hlZC4KKworCSAgU2F5IFkgaGVyZSB0byBjcmVhdGUgYSBrZXJuZWwgdG8gcnVuIG9uIHRoZSBTR0kgMzIwIG9yIDU0MC4KKworCSAgQSBrZXJuZWwgY29tcGlsZWQgZm9yIHRoZSBWaXN1YWwgV29ya3N0YXRpb24gd2lsbCBydW4gb24gZ2VuZXJhbAorCSAgUENzIGFzIHdlbGwuIFNlZSA8ZmlsZTpEb2N1bWVudGF0aW9uL3NnaS12aXN3cy50eHQ+IGZvciBkZXRhaWxzLgorCiBjb25maWcgU0NIRURfTk9fTk9fT01JVF9GUkFNRV9QT0lOVEVSCiAJZGVmX2Jvb2wgeQogCXByb21wdCAiU2luZ2xlLWRlcHRoIFdDSEFOIG91dHB1dCIKQEAgLTM3NCw3ICszOTQsNyBAQAogCWJvb2wgIlZNSSBHdWVzdCBzdXBwb3J0IgogCXNlbGVjdCBQQVJBVklSVAogCWRlcGVuZHMgb24gWDg2XzMyCi0JZGVwZW5kcyBvbiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikKKwlkZXBlbmRzIG9uICFYODZfVk9ZQUdFUgogCWhlbHAKIAkgIFZNSSBwcm92aWRlcyBhIHBhcmF2aXJ0dWFsaXplZCBpbnRlcmZhY2UgdG8gdGhlIFZNd2FyZSBFU1ggc2VydmVyCiAJICAoaXQgY291bGQgYmUgdXNlZCBieSBvdGhlciBoeXBlcnZpc29ycyBpbiB0aGVvcnkgdG9vLCBidXQgaXMgbm90CkBAIC0zODUsNyArNDA1LDcgQEAKIAlib29sICJLVk0gcGFyYXZpcnR1YWxpemVkIGNsb2NrIgogCXNlbGVjdCBQQVJBVklSVAogCXNlbGVjdCBQQVJBVklSVF9DTE9DSwotCWRlcGVuZHMgb24gIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAloZWxwCiAJICBUdXJuaW5nIG9uIHRoaXMgb3B0aW9uIHdpbGwgYWxsb3cgeW91IHRvIHJ1biBhIHBhcmF2aXJ0dWFsaXplZCBjbG9jawogCSAgd2hlbiBydW5uaW5nIG92ZXIgdGhlIEtWTSBoeXBlcnZpc29yLiBJbnN0ZWFkIG9mIHJlbHlpbmcgb24gYSBQSVQKQEAgLTM5Niw3ICs0MTYsNyBAQAogY29uZmlnIEtWTV9HVUVTVAogCWJvb2wgIktWTSBHdWVzdCBzdXBwb3J0IgogCXNlbGVjdCBQQVJBVklSVAotCWRlcGVuZHMgb24gIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAloZWxwCiAJIFRoaXMgb3B0aW9uIGVuYWJsZXMgdmFyaW91cyBvcHRpbWl6YXRpb25zIGZvciBydW5uaW5nIHVuZGVyIHRoZSBLVk0KIAkgaHlwZXJ2aXNvci4KQEAgLTQwNSw3ICs0MjUsNyBAQAogCiBjb25maWcgUEFSQVZJUlQKIAlib29sICJFbmFibGUgcGFyYXZpcnR1YWxpemF0aW9uIGNvZGUiCi0JZGVwZW5kcyBvbiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikKKwlkZXBlbmRzIG9uICFYODZfVk9ZQUdFUgogCWhlbHAKIAkgIFRoaXMgY2hhbmdlcyB0aGUga2VybmVsIHNvIGl0IGNhbiBtb2RpZnkgaXRzZWxmIHdoZW4gaXQgaXMgcnVuCiAJICB1bmRlciBhIGh5cGVydmlzb3IsIHBvdGVudGlhbGx5IGltcHJvdmluZyBwZXJmb3JtYW5jZSBzaWduaWZpY2FudGx5CkBAIC00MTgsNTEgKzQzOCwzMiBAQAogCiBlbmRpZgogCi1jb25maWcgTUVNVEVTVF9CT09UUEFSQU0KLQlib29sICJNZW10ZXN0IGJvb3QgcGFyYW1ldGVyIgorY29uZmlnIFBBUkFWSVJUX0RFQlVHCisgICAgICAgYm9vbCAicGFyYXZpcnQtb3BzIGRlYnVnZ2luZyIKKyAgICAgICBkZXBlbmRzIG9uIFBBUkFWSVJUICYmIERFQlVHX0tFUk5FTAorICAgICAgIGhlbHAKKyAgICAgICAgIEVuYWJsZSB0byBkZWJ1ZyBwYXJhdmlydF9vcHMgaW50ZXJuYWxzLiAgU3BlY2lmaWNhbGx5LCBCVUcgaWYKKwkgYSBwYXJhdmlydF9vcCBpcyBtaXNzaW5nIHdoZW4gaXQgaXMgY2FsbGVkLgorCitjb25maWcgTUVNVEVTVAorCWJvb2wgIk1lbXRlc3QiCiAJZGVwZW5kcyBvbiBYODZfNjQKLQlkZWZhdWx0IHkKIAloZWxwCiAJICBUaGlzIG9wdGlvbiBhZGRzIGEga2VybmVsIHBhcmFtZXRlciAnbWVtdGVzdCcsIHdoaWNoIGFsbG93cyBtZW10ZXN0Ci0JICB0byBiZSBkaXNhYmxlZCBhdCBib290LiAgSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIG1lbXRlc3QKLQkgIGZ1bmN0aW9uYWxpdHkgY2FuIGJlIGRpc2FibGVkIHdpdGggbWVtdGVzdD0wIG9uIHRoZSBrZXJuZWwKLQkgIGNvbW1hbmQgbGluZS4gIFRoZSBwdXJwb3NlIG9mIHRoaXMgb3B0aW9uIGlzIHRvIGFsbG93IGEgc2luZ2xlCi0JICBrZXJuZWwgaW1hZ2UgdG8gYmUgZGlzdHJpYnV0ZWQgd2l0aCBtZW10ZXN0IGJ1aWx0IGluLCBidXQgbm90Ci0JICBuZWNlc3NhcmlseSBlbmFibGVkLgotCi0JICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBZLgotCi1jb25maWcgTUVNVEVTVF9CT09UUEFSQU1fVkFMVUUKLQlpbnQgIk1lbXRlc3QgYm9vdCBwYXJhbWV0ZXIgZGVmYXVsdCB2YWx1ZSAoMC00KSIKLQlkZXBlbmRzIG9uIE1FTVRFU1RfQk9PVFBBUkFNCi0JcmFuZ2UgMCA0Ci0JZGVmYXVsdCAwCi0JaGVscAotCSAgVGhpcyBvcHRpb24gc2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGtlcm5lbCBwYXJhbWV0ZXIKLQkgICdtZW10ZXN0Jywgd2hpY2ggYWxsb3dzIG1lbXRlc3QgdG8gYmUgZGlzYWJsZWQgYXQgYm9vdC4gIElmIHRoaXMKLQkgIG9wdGlvbiBpcyBzZXQgdG8gMCAoemVybyksIHRoZSBtZW10ZXN0IGtlcm5lbCBwYXJhbWV0ZXIgd2lsbAotCSAgZGVmYXVsdCB0byAwLCBkaXNhYmxpbmcgbWVtdGVzdCBhdCBib290dXAuICBJZiB0aGlzIG9wdGlvbiBpcwotCSAgc2V0IHRvIDQsIHRoZSBtZW10ZXN0IGtlcm5lbCBwYXJhbWV0ZXIgd2lsbCBkZWZhdWx0IHRvIDQsCi0JICBlbmFibGluZyBtZW10ZXN0IGF0IGJvb3R1cCwgYW5kIHVzZSB0aGF0IGFzIHBhdHRlcm4gbnVtYmVyLgotCi0JICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciAwLgotCi1jb25maWcgQUNQSV9TUkFUCi0JZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmIEFDUEkgJiYgTlVNQSAmJiAoWDg2X1NVTU1JVCB8fCBYODZfR0VORVJJQ0FSQ0gpCi0Jc2VsZWN0IEFDUElfTlVNQQotCi1jb25maWcgSEFWRV9BUkNIX1BBUlNFX1NSQVQKLQlkZWZfYm9vbCB5Ci0JZGVwZW5kcyBvbiBBQ1BJX1NSQVQKKwkgIHRvIGJlIHNldC4KKwkJbWVtdGVzdD0wLCBtZWFuIGRpc2FibGVkOyAtLSBkZWZhdWx0CisJCW1lbXRlc3Q9MSwgbWVhbiBkbyAxIHRlc3QgcGF0dGVybjsKKwkJLi4uCisJCW1lbXRlc3Q9NCwgbWVhbiBkbyA0IHRlc3QgcGF0dGVybnMuCisJICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBOLgogCiBjb25maWcgWDg2X1NVTU1JVF9OVU1BCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmIE5VTUEgJiYgKFg4Nl9TVU1NSVQgfHwgWDg2X0dFTkVSSUNBUkNIKQorCWRlcGVuZHMgb24gWDg2XzMyICYmIE5VTUEgJiYgWDg2X0dFTkVSSUNBUkNICiAKIGNvbmZpZyBYODZfQ1lDTE9ORV9USU1FUgogCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBYODZfU1VNTUlUIHx8IFg4Nl9HRU5FUklDQVJDSAorCWRlcGVuZHMgb24gWDg2X0dFTkVSSUNBUkNICiAKIGNvbmZpZyBFUzcwMDBfQ0xVU1RFUkVEX0FQSUMKIAlkZWZfYm9vbCB5CkBAIC01NTAsNiArNTUxLDIxIEBACiAJICBDYWxnYXJ5IGFueXdheSwgcGFzcyAnaW9tbXU9Y2FsZ2FyeScgb24gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCiAJICBJZiB1bnN1cmUsIHNheSBZLgogCitjb25maWcgQU1EX0lPTU1VCisJYm9vbCAiQU1EIElPTU1VIHN1cHBvcnQiCisJc2VsZWN0IFNXSU9UTEIKKwlkZXBlbmRzIG9uIFg4Nl82NCAmJiBQQ0kgJiYgQUNQSQorCWhlbHAKKwkgIFdpdGggdGhpcyBvcHRpb24geW91IGNhbiBlbmFibGUgc3VwcG9ydCBmb3IgQU1EIElPTU1VIGhhcmR3YXJlIGluCisJICB5b3VyIHN5c3RlbS4gQW4gSU9NTVUgaXMgYSBoYXJkd2FyZSBjb21wb25lbnQgd2hpY2ggcHJvdmlkZXMKKwkgIHJlbWFwcGluZyBvZiBETUEgbWVtb3J5IGFjY2Vzc2VzIGZyb20gZGV2aWNlcy4gV2l0aCBhbiBBTUQgSU9NTVUgeW91CisJICBjYW4gaXNvbGF0ZSB0aGUgdGhlIERNQSBtZW1vcnkgb2YgZGlmZmVyZW50IGRldmljZXMgYW5kIHByb3RlY3QgdGhlCisJICBzeXN0ZW0gZnJvbSBtaXNiZWhhdmluZyBkZXZpY2UgZHJpdmVycyBvciBoYXJkd2FyZS4KKworCSAgWW91IGNhbiBmaW5kIG91dCBpZiB5b3VyIHN5c3RlbSBoYXMgYW4gQU1EIElPTU1VIGlmIHlvdSBsb29rIGludG8KKwkgIHlvdXIgQklPUyBmb3IgYW4gb3B0aW9uIHRvIGVuYWJsZSBpdCBvciBpZiB5b3UgaGF2ZSBhbiBJVlJTIEFDUEkKKwkgIHRhYmxlLgorCiAjIG5lZWQgdGhpcyBhbHdheXMgc2VsZWN0ZWQgYnkgSU9NTVUgZm9yIHRoZSBWSUEgd29ya2Fyb3VuZAogY29uZmlnIFNXSU9UTEIKIAlib29sCkBAIC01NjEsMjEgKzU3NywzNiBAQAogCSAgMyBHQiBvZiBtZW1vcnkuIElmIHVuc3VyZSwgc2F5IFkuCiAKIGNvbmZpZyBJT01NVV9IRUxQRVIKLQlkZWZfYm9vbCAoQ0FMR0FSWV9JT01NVSB8fCBHQVJUX0lPTU1VIHx8IFNXSU9UTEIpCisJZGVmX2Jvb2wgKENBTEdBUllfSU9NTVUgfHwgR0FSVF9JT01NVSB8fCBTV0lPVExCIHx8IEFNRF9JT01NVSkKK2NvbmZpZyBNQVhTTVAKKwlib29sICJDb25maWd1cmUgTWF4aW11bSBudW1iZXIgb2YgU01QIFByb2Nlc3NvcnMgYW5kIE5VTUEgTm9kZXMiCisJZGVwZW5kcyBvbiBYODZfNjQgJiYgU01QCisJZGVmYXVsdCBuCisJaGVscAorCSAgQ29uZmlndXJlIG1heGltdW0gbnVtYmVyIG9mIENQVVMgYW5kIE5VTUEgTm9kZXMgZm9yIHRoaXMgYXJjaGl0ZWN0dXJlLgorCSAgSWYgdW5zdXJlLCBzYXkgTi4KIAoraWYgTUFYU01QCiBjb25maWcgTlJfQ1BVUwotCWludCAiTWF4aW11bSBudW1iZXIgb2YgQ1BVcyAoMi0yNTUpIgotCXJhbmdlIDIgMjU1CisJaW50CisJZGVmYXVsdCAiNDA5NiIKK2VuZGlmCisKK2lmICFNQVhTTVAKK2NvbmZpZyBOUl9DUFVTCisJaW50ICJNYXhpbXVtIG51bWJlciBvZiBDUFVzICgyLTQwOTYpIgorCXJhbmdlIDIgNDA5NgogCWRlcGVuZHMgb24gU01QCiAJZGVmYXVsdCAiMzIiIGlmIFg4Nl9OVU1BUSB8fCBYODZfU1VNTUlUIHx8IFg4Nl9CSUdTTVAgfHwgWDg2X0VTNzAwMAogCWRlZmF1bHQgIjgiCiAJaGVscAogCSAgVGhpcyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIENQVXMgd2hpY2ggdGhpcwotCSAga2VybmVsIHdpbGwgc3VwcG9ydC4gIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBpcyAyNTUgYW5kIHRoZQorCSAga2VybmVsIHdpbGwgc3VwcG9ydC4gIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBpcyA0MDk2IGFuZCB0aGUKIAkgIG1pbmltdW0gdmFsdWUgd2hpY2ggbWFrZXMgc2Vuc2UgaXMgMi4KIAogCSAgVGhpcyBpcyBwdXJlbHkgdG8gc2F2ZSBtZW1vcnkgLSBlYWNoIHN1cHBvcnRlZCBDUFUgYWRkcwogCSAgYXBwcm94aW1hdGVseSBlaWdodCBraWxvYnl0ZXMgdG8gdGhlIGtlcm5lbCBpbWFnZS4KK2VuZGlmCiAKIGNvbmZpZyBTQ0hFRF9TTVQKIAlib29sICJTTVQgKEh5cGVydGhyZWFkaW5nKSBzY2hlZHVsZXIgc3VwcG9ydCIKQEAgLTU5OSw3ICs2MzAsNyBAQAogCiBjb25maWcgWDg2X1VQX0FQSUMKIAlib29sICJMb2NhbCBBUElDIHN1cHBvcnQgb24gdW5pcHJvY2Vzc29ycyIKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAhU01QICYmICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSIHx8IFg4Nl9HRU5FUklDQVJDSCkKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAhU01QICYmICEoWDg2X1ZPWUFHRVIgfHwgWDg2X0dFTkVSSUNBUkNIKQogCWhlbHAKIAkgIEEgbG9jYWwgQVBJQyAoQWR2YW5jZWQgUHJvZ3JhbW1hYmxlIEludGVycnVwdCBDb250cm9sbGVyKSBpcyBhbgogCSAgaW50ZWdyYXRlZCBpbnRlcnJ1cHQgY29udHJvbGxlciBpbiB0aGUgQ1BVLiBJZiB5b3UgaGF2ZSBhIHNpbmdsZS1DUFUKQEAgLTYyNCwxMSArNjU1LDExIEBACiAKIGNvbmZpZyBYODZfTE9DQUxfQVBJQwogCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIChYODZfVVBfQVBJQyB8fCAoKFg4Nl9WSVNXUyB8fCBTTVApICYmICFYODZfVk9ZQUdFUikgfHwgWDg2X0dFTkVSSUNBUkNIKSkKKwlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIChYODZfVVBfQVBJQyB8fCAoU01QICYmICFYODZfVk9ZQUdFUikgfHwgWDg2X0dFTkVSSUNBUkNIKSkKIAogY29uZmlnIFg4Nl9JT19BUElDCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzY0IHx8IChYODZfMzIgJiYgKFg4Nl9VUF9JT0FQSUMgfHwgKFNNUCAmJiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikpIHx8IFg4Nl9HRU5FUklDQVJDSCkpCisJZGVwZW5kcyBvbiBYODZfNjQgfHwgKFg4Nl8zMiAmJiAoWDg2X1VQX0lPQVBJQyB8fCAoU01QICYmICFYODZfVk9ZQUdFUikgfHwgWDg2X0dFTkVSSUNBUkNIKSkKIAogY29uZmlnIFg4Nl9WSVNXU19BUElDCiAJZGVmX2Jvb2wgeQpAQCAtNjgyLDcgKzcxMyw3IEBACiAKIGNvbmZpZyBYODZfTUNFX1A0VEhFUk1BTAogCWJvb2wgImNoZWNrIGZvciBQNCB0aGVybWFsIHRocm90dGxpbmcgaW50ZXJydXB0LiIKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBYODZfTUNFICYmIChYODZfVVBfQVBJQyB8fCBTTVApICYmICFYODZfVklTV1MKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBYODZfTUNFICYmIChYODZfVVBfQVBJQyB8fCBTTVApCiAJaGVscAogCSAgRW5hYmxpbmcgdGhpcyBmZWF0dXJlIHdpbGwgY2F1c2UgYSBtZXNzYWdlIHRvIGJlIHByaW50ZWQgd2hlbiB0aGUgUDQKIAkgIGVudGVycyB0aGVybWFsIHRocm90dGxpbmcuCkBAIC05MTIsOSArOTQzLDkgQEAKIGNvbmZpZyBOVU1BCiAJYm9vbCAiTnVtYSBNZW1vcnkgQWxsb2NhdGlvbiBhbmQgU2NoZWR1bGVyIFN1cHBvcnQgKEVYUEVSSU1FTlRBTCkiCiAJZGVwZW5kcyBvbiBTTVAKLQlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIEhJR0hNRU02NEcgJiYgKFg4Nl9OVU1BUSB8fCAoWDg2X1NVTU1JVCB8fCBYODZfR0VORVJJQ0FSQ0gpICYmIEFDUEkpICYmIEVYUEVSSU1FTlRBTCkKKwlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIEhJR0hNRU02NEcgJiYgKFg4Nl9OVU1BUSB8fCBYODZfQklHU01QIHx8IFg4Nl9TVU1NSVQgJiYgQUNQSSkgJiYgRVhQRVJJTUVOVEFMKQogCWRlZmF1bHQgbiBpZiBYODZfUEMKLQlkZWZhdWx0IHkgaWYgKFg4Nl9OVU1BUSB8fCBYODZfU1VNTUlUKQorCWRlZmF1bHQgeSBpZiAoWDg2X05VTUFRIHx8IFg4Nl9TVU1NSVQgfHwgWDg2X0JJR1NNUCkKIAloZWxwCiAJICBFbmFibGUgTlVNQSAoTm9uIFVuaWZvcm0gTWVtb3J5IEFjY2Vzcykgc3VwcG9ydC4KIAkgIFRoZSBrZXJuZWwgd2lsbCB0cnkgdG8gYWxsb2NhdGUgbWVtb3J5IHVzZWQgYnkgYSBDUFUgb24gdGhlCkBAIC05NjYsMTMgKzk5NywyNSBAQAogCSAgaW50byB2aXJ0dWFsIG5vZGVzIHdoZW4gYm9vdGVkIHdpdGggIm51bWE9ZmFrZT1OIiwgd2hlcmUgTiBpcyB0aGUKIAkgIG51bWJlciBvZiBub2Rlcy4gVGhpcyBpcyBvbmx5IHVzZWZ1bCBmb3IgZGVidWdnaW5nLgogCitpZiBNQVhTTVAKKwogY29uZmlnIE5PREVTX1NISUZUCi0JaW50ICJNYXggbnVtIG5vZGVzIHNoaWZ0KDEtMTUpIgotCXJhbmdlIDEgMTUgIGlmIFg4Nl82NAorCWludAorCWRlZmF1bHQgIjkiCitlbmRpZgorCitpZiAhTUFYU01QCitjb25maWcgTk9ERVNfU0hJRlQKKwlpbnQgIk1heGltdW0gTlVNQSBOb2RlcyAoYXMgYSBwb3dlciBvZiAyKSIKKwlyYW5nZSAxIDkgICBpZiBYODZfNjQKIAlkZWZhdWx0ICI2IiBpZiBYODZfNjQKIAlkZWZhdWx0ICI0IiBpZiBYODZfTlVNQVEKIAlkZWZhdWx0ICIzIgogCWRlcGVuZHMgb24gTkVFRF9NVUxUSVBMRV9OT0RFUworCWhlbHAKKwkgIFNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIE5VTUEgTm9kZXMgYXZhaWxhYmxlIG9uIHRoZSB0YXJnZXQKKwkgIHN5c3RlbS4gIEluY3JlYXNlcyBtZW1vcnkgcmVzZXJ2ZWQgdG8gYWNjb21vZGF0ZSB2YXJpb3VzIHRhYmxlcy4KK2VuZGlmCiAKIGNvbmZpZyBIQVZFX0FSQ0hfQk9PVE1FTV9OT0RFCiAJZGVmX2Jvb2wgeQpAQCAtMTA5MSw2ICsxMTM0LDM3IEBACiAKIAkgIFNlZSA8ZmlsZTpEb2N1bWVudGF0aW9uL210cnIudHh0PiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAorY29uZmlnIE1UUlJfU0FOSVRJWkVSCisJYm9vbAorCXByb21wdCAiTVRSUiBjbGVhbnVwIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBNVFJSCisJaGVscAorCSAgQ29udmVydCBNVFJSIGxheW91dCBmcm9tIGNvbnRpbnVvdXMgdG8gZGlzY3JldGUsIHNvIFggZHJpdmVycyBjYW4KKwkgIGFkZCB3cml0ZWJhY2sgZW50cmllcy4KKworCSAgQ2FuIGJlIGRpc2FibGVkIHdpdGggZGlzYWJsZV9tdHJyX2NsZWFudXAgb24gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCisJICBUaGUgbGFyZ2VzdCBtdHJyIGVudHJ5IHNpemUgZm9yIGEgY29udGlub3VzIGJsb2NrIGNhbiBiZSBzZXQgd2l0aAorCSAgbXRycl9jaHVua19zaXplLgorCisJICBJZiB1bnN1cmUsIHNheSBOLgorCitjb25maWcgTVRSUl9TQU5JVElaRVJfRU5BQkxFX0RFRkFVTFQKKwlpbnQgIk1UUlIgY2xlYW51cCBlbmFibGUgdmFsdWUgKDAtMSkiCisJcmFuZ2UgMCAxCisJZGVmYXVsdCAiMCIKKwlkZXBlbmRzIG9uIE1UUlJfU0FOSVRJWkVSCisJaGVscAorCSAgRW5hYmxlIG10cnIgY2xlYW51cCBkZWZhdWx0IHZhbHVlCisKK2NvbmZpZyBNVFJSX1NBTklUSVpFUl9TUEFSRV9SRUdfTlJfREVGQVVMVAorCWludCAiTVRSUiBjbGVhbnVwIHNwYXJlIHJlZyBudW0gKDAtNykiCisJcmFuZ2UgMCA3CisJZGVmYXVsdCAiMSIKKwlkZXBlbmRzIG9uIE1UUlJfU0FOSVRJWkVSCisJaGVscAorCSAgbXRyciBjbGVhbnVwIHNwYXJlIGVudHJpZXMgZGVmYXVsdCwgaXQgY2FuIGJlIGNoYW5nZWQgdmlhCisJICBtdHJyX3NwYXJlX3JlZ19ucj1OIG9uIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLgorCiBjb25maWcgWDg2X1BBVAogCWJvb2wKIAlwcm9tcHQgIng4NiBQQVQgc3VwcG9ydCIKQEAgLTExOTEsNyArMTI2NSw2IEBACiAKIGNvbmZpZyBDUkFTSF9EVU1QCiAJYm9vbCAia2VybmVsIGNyYXNoIGR1bXBzIChFWFBFUklNRU5UQUwpIgotCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMCiAJZGVwZW5kcyBvbiBYODZfNjQgfHwgKFg4Nl8zMiAmJiBISUdITUVNKQogCWhlbHAKIAkgIEdlbmVyYXRlIGNyYXNoIGR1bXAgYWZ0ZXIgYmVpbmcgc3RhcnRlZCBieSBrZXhlYy4KQEAgLTEzNDAsNyArMTQxMyw3IEBACiAKIG1lbnVjb25maWcgQVBNCiAJdHJpc3RhdGUgIkFQTSAoQWR2YW5jZWQgUG93ZXIgTWFuYWdlbWVudCkgQklPUyBzdXBwb3J0IgotCWRlcGVuZHMgb24gWDg2XzMyICYmIFBNX1NMRUVQICYmICFYODZfVklTV1MKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBQTV9TTEVFUAogCS0tLWhlbHAtLS0KIAkgIEFQTSBpcyBhIEJJT1Mgc3BlY2lmaWNhdGlvbiBmb3Igc2F2aW5nIHBvd2VyIHVzaW5nIHNldmVyYWwgZGlmZmVyZW50CiAJICB0ZWNobmlxdWVzLiBUaGlzIGlzIG1vc3RseSB1c2VmdWwgZm9yIGJhdHRlcnkgcG93ZXJlZCBsYXB0b3BzIHdpdGgKQEAgLTE0NzYsOCArMTU0OSw3IEBACiBtZW51ICJCdXMgb3B0aW9ucyAoUENJIGV0Yy4pIgogCiBjb25maWcgUENJCi0JYm9vbCAiUENJIHN1cHBvcnQiIGlmICFYODZfVklTV1MgJiYgIVg4Nl9WU01QCi0JZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKKwlib29sICJQQ0kgc3VwcG9ydCIKIAlkZWZhdWx0IHkKIAlzZWxlY3QgQVJDSF9TVVBQT1JUU19NU0kgaWYgKFg4Nl9MT0NBTF9BUElDICYmIFg4Nl9JT19BUElDKQogCWhlbHAKQEAgLTE0ODgsNyArMTU2MCw3IEBACiAKIGNob2ljZQogCXByb21wdCAiUENJIGFjY2VzcyBtb2RlIgotCWRlcGVuZHMgb24gWDg2XzMyICYmIFBDSSAmJiAhWDg2X1ZJU1dTCisJZGVwZW5kcyBvbiBYODZfMzIgJiYgUENJCiAJZGVmYXVsdCBQQ0lfR09BTlkKIAktLS1oZWxwLS0tCiAJICBPbiBQQ0kgc3lzdGVtcywgdGhlIEJJT1MgY2FuIGJlIHVzZWQgdG8gZGV0ZWN0IHRoZSBQQ0kgZGV2aWNlcyBhbmQKQEAgLTE1MjUsMTIgKzE1OTcsMTIgQEAKIAogY29uZmlnIFBDSV9CSU9TCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmICFYODZfVklTV1MgJiYgUENJICYmIChQQ0lfR09CSU9TIHx8IFBDSV9HT0FOWSkKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBQQ0kgJiYgKFBDSV9HT0JJT1MgfHwgUENJX0dPQU5ZKQogCiAjIHg4Ni02NCBkb2Vzbid0IHN1cHBvcnQgUENJIEJJT1MgYWNjZXNzIGZyb20gbG9uZyBtb2RlIHNvIGFsd2F5cyBnbyBkaXJlY3QuCiBjb25maWcgUENJX0RJUkVDVAogCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIFBDSSAmJiAoWDg2XzY0IHx8IChQQ0lfR09ESVJFQ1QgfHwgUENJX0dPQU5ZIHx8IFBDSV9HT09MUEMpIHx8IFg4Nl9WSVNXUykKKwlkZXBlbmRzIG9uIFBDSSAmJiAoWDg2XzY0IHx8IChQQ0lfR09ESVJFQ1QgfHwgUENJX0dPQU5ZIHx8IFBDSV9HT09MUEMpKQogCiBjb25maWcgUENJX01NQ09ORklHCiAJZGVmX2Jvb2wgeQpAQCAtMTU5MCw3ICsxNjYyLDcgQEAKIAogY29uZmlnIElTQQogCWJvb2wgIklTQSBzdXBwb3J0IgotCWRlcGVuZHMgb24gIShYODZfVk9ZQUdFUiB8fCBYODZfVklTV1MpCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAloZWxwCiAJICBGaW5kIG91dCB3aGV0aGVyIHlvdSBoYXZlIElTQSBzbG90cyBvbiB5b3VyIG1vdGhlcmJvYXJkLiAgSVNBIGlzIHRoZQogCSAgbmFtZSBvZiBhIGJ1cyBzeXN0ZW0sIGkuZS4gdGhlIHdheSB0aGUgQ1BVIHRhbGtzIHRvIHRoZSBvdGhlciBzdHVmZgpAQCAtMTYxNyw3ICsxNjg5LDcgQEAKIHNvdXJjZSAiZHJpdmVycy9laXNhL0tjb25maWciCiAKIGNvbmZpZyBNQ0EKLQlib29sICJNQ0Egc3VwcG9ydCIgaWYgIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpCisJYm9vbCAiTUNBIHN1cHBvcnQiIGlmICFYODZfVk9ZQUdFUgogCWRlZmF1bHQgeSBpZiBYODZfVk9ZQUdFUgogCWhlbHAKIAkgIE1pY3JvQ2hhbm5lbCBBcmNoaXRlY3R1cmUgaXMgZm91bmQgaW4gc29tZSBJQk0gUFMvMiBtYWNoaW5lcyBhbmQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcuY3B1IGIvYXJjaC94ODYvS2NvbmZpZy5jcHUKaW5kZXggMmFkNjMwMS4uYWJmZjFiOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZy5jcHUKKysrIGIvYXJjaC94ODYvS2NvbmZpZy5jcHUKQEAgLTM0NCw3ICszNDQsNyBAQAogCiBjb25maWcgWDg2X1dQX1dPUktTX09LCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmICFNMzg2CisJZGVwZW5kcyBvbiAhTTM4NgogCiBjb25maWcgWDg2X0lOVkxQRwogCWRlZl9ib29sIHkKQEAgLTM5OSw2ICszOTksMTAgQEAKIAlkZWZfYm9vbCB5CiAJZGVwZW5kcyBvbiAoKE1XSU5DSElQM0QgfHwgTVdJTkNISVAyIHx8IE1DUlVTT0UgfHwgTUVGRklDRU9OIHx8IE1DWVJJWElJSSB8fCBNSzcgfHwgTUs2IHx8IE1QRU5USVVNNCB8fCBNUEVOVElVTU0gfHwgTVBFTlRJVU1JSUkgfHwgTVBFTlRJVU1JSSB8fCBNNjg2IHx8IE01ODZNTVggfHwgTTU4NlRTQyB8fCBNSzggfHwgTVZJQUMzXzIgfHwgTVZJQUM3IHx8IE1HRU9ERUdYMSB8fCBNR0VPREVfTFggfHwgTUNPUkUyKSAmJiAhWDg2X05VTUFRKSB8fCBYODZfNjQKIAorY29uZmlnIFg4Nl9DTVBYQ0hHNjQKKwlkZWZfYm9vbCB5CisJZGVwZW5kcyBvbiBYODZfUEFFIHx8IFg4Nl82NAorCiAjIHRoaXMgc2hvdWxkIGJlIHNldCBmb3IgYWxsIC1tYXJjaD0uLiBvcHRpb25zIHdoZXJlIHRoZSBjb21waWxlcgogIyBnZW5lcmF0ZXMgY21vdi4KIGNvbmZpZyBYODZfQ01PVgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZy5kZWJ1ZyBiL2FyY2gveDg2L0tjb25maWcuZGVidWcKaW5kZXggMTgzNjMzNy4uYWUzNmJmYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZy5kZWJ1ZworKysgYi9hcmNoL3g4Ni9LY29uZmlnLmRlYnVnCkBAIC0yMCw2ICsyMCwxNCBAQAogCiAJICBJZiBpbiBkb3VidCwgc2F5IFkuCiAKK2NvbmZpZyBYODZfVkVSQk9TRV9CT09UVVAKKwlib29sICJFbmFibGUgdmVyYm9zZSB4ODYgYm9vdHVwIGluZm8gbWVzc2FnZXMiCisJZGVmYXVsdCB5CisJaGVscAorCSAgRW5hYmxlcyB0aGUgaW5mb3JtYXRpb25hbCBvdXRwdXQgZnJvbSB0aGUgZGVjb21wcmVzc2lvbiBzdGFnZQorCSAgKGUuZy4gYnpJbWFnZSkgb2YgdGhlIGJvb3QuIElmIHlvdSBkaXNhYmxlIHRoaXMgeW91IHdpbGwgc3RpbGwKKwkgIHNlZSBlcnJvcnMuIERpc2FibGUgdGhpcyBpZiB5b3Ugd2FudCBzaWxlbnQgYm9vdHVwLgorCiBjb25maWcgRUFSTFlfUFJJTlRLCiAJYm9vbCAiRWFybHkgcHJpbnRrIiBpZiBFTUJFRERFRAogCWRlZmF1bHQgeQpAQCAtNjAsNyArNjgsNyBAQAogY29uZmlnIERFQlVHX1BFUl9DUFVfTUFQUwogCWJvb2wgIkRlYnVnIGFjY2VzcyB0byBwZXJfY3B1IG1hcHMiCiAJZGVwZW5kcyBvbiBERUJVR19LRVJORUwKLQlkZXBlbmRzIG9uIFg4Nl82NF9TTVAKKwlkZXBlbmRzIG9uIFg4Nl9TTVAKIAlkZWZhdWx0IG4KIAloZWxwCiAJICBTYXkgWSB0byB2ZXJpZnkgdGhhdCB0aGUgcGVyX2NwdSBtYXAgYmVpbmcgYWNjZXNzZWQgaGFzCkBAIC0xMjksMTUgKzEzNyw2IEBACiAJICBvbiB0aGUgVk0gc3Vic3lzdGVtIGZvciBoaWdoZXIgb3JkZXIgYWxsb2NhdGlvbnMuIFRoaXMgb3B0aW9uCiAJICB3aWxsIGFsc28gdXNlIElSUSBzdGFja3MgdG8gY29tcGVuc2F0ZSBmb3IgdGhlIHJlZHVjZWQgc3RhY2tzcGFjZS4KIAotY29uZmlnIFg4Nl9GSU5EX1NNUF9DT05GSUcKLQlkZWZfYm9vbCB5Ci0JZGVwZW5kcyBvbiBYODZfTE9DQUxfQVBJQyB8fCBYODZfVk9ZQUdFUgotCWRlcGVuZHMgb24gWDg2XzMyCi0KLWNvbmZpZyBYODZfTVBQQVJTRQotCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIChYODZfMzIgJiYgKFg4Nl9MT0NBTF9BUElDICYmICFYODZfVklTV1MpKSB8fCBYODZfNjQKLQogY29uZmlnIERPVUJMRUZBVUxUCiAJZGVmYXVsdCB5CiAJYm9vbCAiRW5hYmxlIGRvdWJsZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyIiBpZiBFTUJFRERFRApAQCAtMTcyLDYgKzE3MSwzMyBAQAogCSAgQWRkIGEgc2ltcGxlIGxlYWsgdHJhY2VyIHRvIHRoZSBJT01NVSBjb2RlLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdQogCSAgYXJlIGRlYnVnZ2luZyBhIGJ1Z2d5IGRldmljZSBkcml2ZXIgdGhhdCBsZWFrcyBJT01NVSBtYXBwaW5ncy4KIAorY29uZmlnIE1NSU9UUkFDRV9IT09LUworCWJvb2wKKworY29uZmlnIE1NSU9UUkFDRQorCWJvb2wgIk1lbW9yeSBtYXBwZWQgSU8gdHJhY2luZyIKKwlkZXBlbmRzIG9uIERFQlVHX0tFUk5FTCAmJiBQQ0kKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBNTUlPVFJBQ0VfSE9PS1MKKwloZWxwCisJICBNbWlvdHJhY2UgdHJhY2VzIE1lbW9yeSBNYXBwZWQgSS9PIGFjY2VzcyBhbmQgaXMgbWVhbnQgZm9yCisJICBkZWJ1Z2dpbmcgYW5kIHJldmVyc2UgZW5naW5lZXJpbmcuIEl0IGlzIGNhbGxlZCBmcm9tIHRoZSBpb3JlbWFwCisJICBpbXBsZW1lbnRhdGlvbiBhbmQgd29ya3MgdmlhIHBhZ2UgZmF1bHRzLiBUcmFjaW5nIGlzIGRpc2FibGVkIGJ5CisJICBkZWZhdWx0IGFuZCBjYW4gYmUgZW5hYmxlZCBhdCBydW4tdGltZS4KKworCSAgU2VlIERvY3VtZW50YXRpb24vdHJhY2Vycy9tbWlvdHJhY2UudHh0LgorCSAgSWYgeW91IGFyZSBub3QgaGVscGluZyB0byBkZXZlbG9wIGRyaXZlcnMsIHNheSBOLgorCitjb25maWcgTU1JT1RSQUNFX1RFU1QKKwl0cmlzdGF0ZSAiVGVzdCBtb2R1bGUgZm9yIG1taW90cmFjZSIKKwlkZXBlbmRzIG9uIE1NSU9UUkFDRSAmJiBtCisJaGVscAorCSAgVGhpcyBpcyBhIGR1bWIgbW9kdWxlIGZvciB0ZXN0aW5nIG1taW90cmFjZS4gSXQgaXMgdmVyeSBkYW5nZXJvdXMKKwkgIGFzIGl0IHdpbGwgd3JpdGUgZ2FyYmFnZSB0byBJTyBtZW1vcnkgc3RhcnRpbmcgYXQgYSBnaXZlbiBhZGRyZXNzLgorCSAgSG93ZXZlciwgaXQgc2hvdWxkIGJlIHNhZmUgdG8gdXNlIG9uIGUuZy4gdW51c2VkIHBvcnRpb24gb2YgVlJBTS4KKworCSAgU2F5IE4sIHVubGVzcyB5b3UgYWJzb2x1dGVseSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy4KKwogIwogIyBJTyBkZWxheSB0eXBlczoKICMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L01ha2VmaWxlIGIvYXJjaC94ODYvTWFrZWZpbGUKaW5kZXggM2NmZjNjOC4uOTE5Y2UyMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvTWFrZWZpbGUKQEAgLTExMywzMyArMTEzLDExIEBACiBtZmxhZ3MtJChDT05GSUdfWDg2X1ZPWUFHRVIpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtdm95YWdlcgogbWNvcmUtJChDT05GSUdfWDg2X1ZPWUFHRVIpCTo9IGFyY2gveDg2L21hY2gtdm95YWdlci8KIAotIyBWSVNXUyBzdWJhcmNoIHN1cHBvcnQKLW1mbGFncy0kKENPTkZJR19YODZfVklTV1MpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MKLW1jb3JlLSQoQ09ORklHX1g4Nl9WSVNXUykJOj0gYXJjaC94ODYvbWFjaC12aXN3cy8KLQotIyBOVU1BUSBzdWJhcmNoIHN1cHBvcnQKLW1mbGFncy0kKENPTkZJR19YODZfTlVNQVEpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEKLW1jb3JlLSQoQ09ORklHX1g4Nl9OVU1BUSkJOj0gYXJjaC94ODYvbWFjaC1kZWZhdWx0LwotCi0jIEJJR1NNUCBzdWJhcmNoIHN1cHBvcnQKLW1mbGFncy0kKENPTkZJR19YODZfQklHU01QKQk6PSAtSWluY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcAotbWNvcmUtJChDT05GSUdfWDg2X0JJR1NNUCkJOj0gYXJjaC94ODYvbWFjaC1kZWZhdWx0LwotCi0jU3VtbWl0IHN1YmFyY2ggc3VwcG9ydAotbWZsYWdzLSQoQ09ORklHX1g4Nl9TVU1NSVQpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtc3VtbWl0Ci1tY29yZS0kKENPTkZJR19YODZfU1VNTUlUKQk6PSBhcmNoL3g4Ni9tYWNoLWRlZmF1bHQvCi0KICMgZ2VuZXJpYyBzdWJhcmNoaXRlY3R1cmUKIG1mbGFncy0kKENPTkZJR19YODZfR0VORVJJQ0FSQ0gpOj0gLUlpbmNsdWRlL2FzbS14ODYvbWFjaC1nZW5lcmljCiBmY29yZS0kKENPTkZJR19YODZfR0VORVJJQ0FSQ0gpCSs9IGFyY2gveDg2L21hY2gtZ2VuZXJpYy8KIG1jb3JlLSQoQ09ORklHX1g4Nl9HRU5FUklDQVJDSCkJOj0gYXJjaC94ODYvbWFjaC1kZWZhdWx0LwogCi0KLSMgRVM3MDAwIHN1YmFyY2ggc3VwcG9ydAotbWZsYWdzLSQoQ09ORklHX1g4Nl9FUzcwMDApCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtZXM3MDAwCi1mY29yZS0kKENPTkZJR19YODZfRVM3MDAwKQk6PSBhcmNoL3g4Ni9tYWNoLWVzNzAwMC8KLW1jb3JlLSQoQ09ORklHX1g4Nl9FUzcwMDApCTo9IGFyY2gveDg2L21hY2gtZGVmYXVsdC8KLQogIyBSREMgUi0zMjF4IHN1YmFyY2ggc3VwcG9ydAogbWZsYWdzLSQoQ09ORklHX1g4Nl9SREMzMjFYKQk6PSAtSWluY2x1ZGUvYXNtLXg4Ni9tYWNoLXJkYzMyMXgKIG1jb3JlLSQoQ09ORklHX1g4Nl9SREMzMjFYKQk6PSBhcmNoL3g4Ni9tYWNoLWRlZmF1bHQvCkBAIC0xNjAsNiArMTM4LDcgQEAKIAogaGVhZC15IDo9IGFyY2gveDg2L2tlcm5lbC9oZWFkXyQoQklUUykubwogaGVhZC15ICs9IGFyY2gveDg2L2tlcm5lbC9oZWFkJChCSVRTKS5vCitoZWFkLXkgKz0gYXJjaC94ODYva2VybmVsL2hlYWQubwogaGVhZC15ICs9IGFyY2gveDg2L2tlcm5lbC9pbml0X3Rhc2subwogCiBsaWJzLXkgICs9IGFyY2gveDg2L2xpYi8KQEAgLTIxMCwxMiArMTg5LDEyIEBACiAKICMgS0JVSUxEX0lNQUdFIHNwZWNpZnkgdGFyZ2V0IGltYWdlIGJlaW5nIGJ1aWx0CiAgICAgICAgICAgICAgICAgICAgIEtCVUlMRF9JTUFHRSA6PSAkKGJvb3QpL2J6SW1hZ2UKLXpJbWFnZSB6bGlsbyB6ZGlzazogS0JVSUxEX0lNQUdFIDo9IGFyY2gveDg2L2Jvb3QvekltYWdlCit6SW1hZ2UgemxpbG8gemRpc2s6IEtCVUlMRF9JTUFHRSA6PSAkKGJvb3QpL3pJbWFnZQogCiB6SW1hZ2UgYnpJbWFnZTogdm1saW51eAogCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQoYm9vdCkgJChLQlVJTERfSU1BR0UpCiAJJChRKW1rZGlyIC1wICQob2JqdHJlZSkvYXJjaC8kKFVUU19NQUNISU5FKS9ib290Ci0JJChRKWxuIC1mc24gLi4vLi4veDg2L2Jvb3QvYnpJbWFnZSAkKG9ianRyZWUpL2FyY2gvJChVVFNfTUFDSElORSkvYm9vdC9iekltYWdlCisJJChRKWxuIC1mc24gLi4vLi4veDg2L2Jvb3QvYnpJbWFnZSAkKG9ianRyZWUpL2FyY2gvJChVVFNfTUFDSElORSkvYm9vdC8kQAogCiBjb21wcmVzc2VkOiB6SW1hZ2UKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9hMjAuYyBiL2FyY2gveDg2L2Jvb3QvYTIwLmMKaW5kZXggZTAxYWFmZC4uNDA2M2Q2MyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9hMjAuYworKysgYi9hcmNoL3g4Ni9ib290L2EyMC5jCkBAIC0xLDcgKzEsNyBAQAogLyogLSotIGxpbnV4LWMgLSotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgogICoKICAqICAgQ29weXJpZ2h0IChDKSAxOTkxLCAxOTkyIExpbnVzIFRvcnZhbGRzCi0gKiAgIENvcHlyaWdodCAyMDA3IHJQYXRoLCBJbmMuIC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorICogICBDb3B5cmlnaHQgMjAwNy0yMDA4IHJQYXRoLCBJbmMuIC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAogICoKICAqICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIExpbnV4IGtlcm5lbCwgYW5kIGlzIG1hZGUgYXZhaWxhYmxlIHVuZGVyCiAgKiAgIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLgpAQCAtOTUsNiArOTUsOSBAQAogCiAJb3V0YigweGRmLCAweDYwKTsJLyogQTIwIG9uICovCiAJZW1wdHlfODA0MigpOworCisJb3V0YigweGZmLCAweDY0KTsJLyogTnVsbCBjb21tYW5kLCBidXQgVUhDSSB3YW50cyBpdCAqLworCWVtcHR5XzgwNDIoKTsKIH0KIAogc3RhdGljIHZvaWQgZW5hYmxlX2EyMF9mYXN0KHZvaWQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvaGVhZF82NC5TIGIvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL2hlYWRfNjQuUwppbmRleCBkODgxOWVmLi4xZDVkZmY0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvaGVhZF82NC5TCisrKyBiL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9oZWFkXzY0LlMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9ib290Lmg+CiAjaW5jbHVkZSA8YXNtL21zci5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3ItZmxhZ3MuaD4KICNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KIAogLnNlY3Rpb24gIi50ZXh0LmhlYWQiCkBAIC0xMDksNyArMTEwLDcgQEAKIAogCS8qIEVuYWJsZSBQQUUgbW9kZSAqLwogCXhvcmwJJWVheCwgJWVheAotCW9ybAkkKDEgPDwgNSksICVlYXgKKwlvcmwJJChYODZfQ1I0X1BBRSksICVlYXgKIAltb3ZsCSVlYXgsICVjcjQKIAogIC8qCkBAIC0xNzAsNyArMTcxLDcgQEAKIAlwdXNobAklZWF4CiAKIAkvKiBFbnRlciBwYWdlZCBwcm90ZWN0ZWQgTW9kZSwgYWN0aXZhdGluZyBMb25nIE1vZGUgKi8KLQltb3ZsCSQweDgwMDAwMDAxLCAlZWF4IC8qIEVuYWJsZSBQYWdpbmcgYW5kIFByb3RlY3RlZCBtb2RlICovCisJbW92bAkkKFg4Nl9DUjBfUEcgfCBYODZfQ1IwX1BFKSwgJWVheCAvKiBFbmFibGUgUGFnaW5nIGFuZCBQcm90ZWN0ZWQgbW9kZSAqLwogCW1vdmwJJWVheCwgJWNyMAogCiAJLyogSnVtcCBmcm9tIDMyYml0IGNvbXBhdGliaWxpdHkgbW9kZSBpbnRvIDY0Yml0IG1vZGUuICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvbWlzYy5jIGIvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL21pc2MuYwppbmRleCA5MDQ1NmNlLi5iYzU1NTNiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvbWlzYy5jCisrKyBiL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9taXNjLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9ib290Lmg+CisjaW5jbHVkZSA8YXNtL2Jvb3RwYXJhbS5oPgogCiAvKiBXQVJOSU5HISEKICAqIFRoaXMgY29kZSBpcyBjb21waWxlZCB3aXRoIC1mUElDIGFuZCBpdCBpcyByZWxvY2F0ZWQgZHluYW1pY2FsbHkKQEAgLTE4NywxMyArMTg4LDggQEAKIC8qCiAgKiBUaGlzIGlzIHNldCB1cCBieSB0aGUgc2V0dXAtcm91dGluZSBhdCBib290LXRpbWUKICAqLwotc3RhdGljIHVuc2lnbmVkIGNoYXIgKnJlYWxfbW9kZTsgLyogUG9pbnRlciB0byByZWFsLW1vZGUgZGF0YSAqLwotCi0jZGVmaW5lIFJNX0VYVF9NRU1fSyAgICgqKHVuc2lnbmVkIHNob3J0ICopKHJlYWxfbW9kZSArIDB4MikpCi0jaWZuZGVmIFNUQU5EQVJEX01FTU9SWV9CSU9TX0NBTEwKLSNkZWZpbmUgUk1fQUxUX01FTV9LICAgKCoodW5zaWduZWQgbG9uZyAqKShyZWFsX21vZGUgKyAweDFlMCkpCi0jZW5kaWYKLSNkZWZpbmUgUk1fU0NSRUVOX0lORk8gKCooc3RydWN0IHNjcmVlbl9pbmZvICopKHJlYWxfbW9kZSswKSkKK3N0YXRpYyBzdHJ1Y3QgYm9vdF9wYXJhbXMgKnJlYWxfbW9kZTsJCS8qIFBvaW50ZXIgdG8gcmVhbC1tb2RlIGRhdGEgKi8KK3N0YXRpYyBpbnQgcXVpZXQ7CiAKIGV4dGVybiB1bnNpZ25lZCBjaGFyIGlucHV0X2RhdGFbXTsKIGV4dGVybiBpbnQgaW5wdXRfbGVuOwpAQCAtMjA2LDcgKzIwMiw4IEBACiBzdGF0aWMgdm9pZCAqbWVtc2V0KHZvaWQgKnMsIGludCBjLCB1bnNpZ25lZCBuKTsKIHN0YXRpYyB2b2lkICptZW1jcHkodm9pZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjLCB1bnNpZ25lZCBuKTsKIAotc3RhdGljIHZvaWQgcHV0c3RyKGNvbnN0IGNoYXIgKik7CitzdGF0aWMgdm9pZCBfX3B1dHN0cihpbnQsIGNvbnN0IGNoYXIgKik7CisjZGVmaW5lIHB1dHN0cihfX3gpICBfX3B1dHN0cigwLCBfX3gpCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0CiAjZGVmaW5lIG1lbXB0ciBsb25nCkBAIC0yMjEsMTAgKzIxOCw2IEBACiBzdGF0aWMgaW50IHZpZHBvcnQ7CiBzdGF0aWMgaW50IGxpbmVzLCBjb2xzOwogCi0jaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQotdm9pZCAqeHF1YWRfcG9ydGlvOwotI2VuZGlmCi0KICNpbmNsdWRlICIuLi8uLi8uLi8uLi9saWIvaW5mbGF0ZS5jIgogCiBzdGF0aWMgdm9pZCAqbWFsbG9jKGludCBzaXplKQpAQCAtMjcwLDE4ICsyNjMsMjQgQEAKIAkJdmlkbWVtW2ldID0gJyAnOwogfQogCi1zdGF0aWMgdm9pZCBwdXRzdHIoY29uc3QgY2hhciAqcykKK3N0YXRpYyB2b2lkIF9fcHV0c3RyKGludCBlcnJvciwgY29uc3QgY2hhciAqcykKIHsKIAlpbnQgeCwgeSwgcG9zOwogCWNoYXIgYzsKIAotI2lmZGVmIENPTkZJR19YODZfMzIKLQlpZiAoUk1fU0NSRUVOX0lORk8ub3JpZ192aWRlb19tb2RlID09IDAgJiYgbGluZXMgPT0gMCAmJiBjb2xzID09IDApCisjaWZuZGVmIENPTkZJR19YODZfVkVSQk9TRV9CT09UVVAKKwlpZiAoIWVycm9yKQogCQlyZXR1cm47CiAjZW5kaWYKIAotCXggPSBSTV9TQ1JFRU5fSU5GTy5vcmlnX3g7Ci0JeSA9IFJNX1NDUkVFTl9JTkZPLm9yaWdfeTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJaWYgKHJlYWxfbW9kZS0+c2NyZWVuX2luZm8ub3JpZ192aWRlb19tb2RlID09IDAgJiYKKwkgICAgbGluZXMgPT0gMCAmJiBjb2xzID09IDApCisJCXJldHVybjsKKyNlbmRpZgorCisJeCA9IHJlYWxfbW9kZS0+c2NyZWVuX2luZm8ub3JpZ194OworCXkgPSByZWFsX21vZGUtPnNjcmVlbl9pbmZvLm9yaWdfeTsKIAogCXdoaWxlICgoYyA9ICpzKyspICE9ICdcMCcpIHsKIAkJaWYgKGMgPT0gJ1xuJykgewpAQCAtMzAyLDggKzMwMSw4IEBACiAJCX0KIAl9CiAKLQlSTV9TQ1JFRU5fSU5GTy5vcmlnX3ggPSB4OwotCVJNX1NDUkVFTl9JTkZPLm9yaWdfeSA9IHk7CisJcmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3ggPSB4OworCXJlYWxfbW9kZS0+c2NyZWVuX2luZm8ub3JpZ195ID0geTsKIAogCXBvcyA9ICh4ICsgY29scyAqIHkpICogMjsJLyogVXBkYXRlIGN1cnNvciBwb3NpdGlvbiAqLwogCW91dGIoMTQsIHZpZHBvcnQpOwpAQCAtMzY2LDkgKzM2NSw5IEBACiAKIHN0YXRpYyB2b2lkIGVycm9yKGNoYXIgKngpCiB7Ci0JcHV0c3RyKCJcblxuIik7Ci0JcHV0c3RyKHgpOwotCXB1dHN0cigiXG5cbiAtLSBTeXN0ZW0gaGFsdGVkIik7CisJX19wdXRzdHIoMSwgIlxuXG4iKTsKKwlfX3B1dHN0cigxLCB4KTsKKwlfX3B1dHN0cigxLCAiXG5cbiAtLSBTeXN0ZW0gaGFsdGVkIik7CiAKIAl3aGlsZSAoMSkKIAkJYXNtKCJobHQiKTsKQEAgLTM5NSw3ICszOTQsOCBAQAogCQlyZXR1cm47CiAJfQogCi0JcHV0c3RyKCJQYXJzaW5nIEVMRi4uLiAiKTsKKwlpZiAoIXF1aWV0KQorCQlwdXRzdHIoIlBhcnNpbmcgRUxGLi4uICIpOwogCiAJcGhkcnMgPSBtYWxsb2Moc2l6ZW9mKCpwaGRycykgKiBlaGRyLmVfcGhudW0pOwogCWlmICghcGhkcnMpCkBAIC00MzAsNyArNDMwLDEwIEBACiB7CiAJcmVhbF9tb2RlID0gcm1vZGU7CiAKLQlpZiAoUk1fU0NSRUVOX0lORk8ub3JpZ192aWRlb19tb2RlID09IDcpIHsKKwlpZiAocmVhbF9tb2RlLT5oZHIubG9hZGZsYWdzICYgUVVJRVRfRkxBRykKKwkJcXVpZXQgPSAxOworCisJaWYgKHJlYWxfbW9kZS0+c2NyZWVuX2luZm8ub3JpZ192aWRlb19tb2RlID09IDcpIHsKIAkJdmlkbWVtID0gKGNoYXIgKikgMHhiMDAwMDsKIAkJdmlkcG9ydCA9IDB4M2I0OwogCX0gZWxzZSB7CkBAIC00MzgsOCArNDQxLDggQEAKIAkJdmlkcG9ydCA9IDB4M2Q0OwogCX0KIAotCWxpbmVzID0gUk1fU0NSRUVOX0lORk8ub3JpZ192aWRlb19saW5lczsKLQljb2xzID0gUk1fU0NSRUVOX0lORk8ub3JpZ192aWRlb19jb2xzOworCWxpbmVzID0gcmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3ZpZGVvX2xpbmVzOworCWNvbHMgPSByZWFsX21vZGUtPnNjcmVlbl9pbmZvLm9yaWdfdmlkZW9fY29sczsKIAogCXdpbmRvdyA9IG91dHB1dDsJCS8qIE91dHB1dCBidWZmZXIgKE5vcm1hbGx5IGF0IDFNKSAqLwogCWZyZWVfbWVtX3B0ciAgICAgPSBoZWFwOwkvKiBIZWFwICovCkBAIC00NjUsOSArNDY4LDExIEBACiAjZW5kaWYKIAogCW1ha2VjcmMoKTsKLQlwdXRzdHIoIlxuRGVjb21wcmVzc2luZyBMaW51eC4uLiAiKTsKKwlpZiAoIXF1aWV0KQorCQlwdXRzdHIoIlxuRGVjb21wcmVzc2luZyBMaW51eC4uLiAiKTsKIAlndW56aXAoKTsKIAlwYXJzZV9lbGYob3V0cHV0KTsKLQlwdXRzdHIoImRvbmUuXG5Cb290aW5nIHRoZSBrZXJuZWwuXG4iKTsKKwlpZiAoIXF1aWV0KQorCQlwdXRzdHIoImRvbmUuXG5Cb290aW5nIHRoZSBrZXJuZWwuXG4iKTsKIAlyZXR1cm47CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvcmVsb2NzLmMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvcmVsb2NzLmMKaW5kZXggZWRhYWRlYS4uYTEzMTBjNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL3JlbG9jcy5jCisrKyBiL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9yZWxvY3MuYwpAQCAtMTAsMTYgKzEwLDIwIEBACiAjZGVmaW5lIFVTRV9CU0QKICNpbmNsdWRlIDxlbmRpYW4uaD4KIAotI2RlZmluZSBNQVhfU0hEUlMgMTAwCiAjZGVmaW5lIEFSUkFZX1NJWkUoeCkgKHNpemVvZih4KSAvIHNpemVvZigoeClbMF0pKQogc3RhdGljIEVsZjMyX0VoZHIgZWhkcjsKLXN0YXRpYyBFbGYzMl9TaGRyIHNoZHJbTUFYX1NIRFJTXTsKLXN0YXRpYyBFbGYzMl9TeW0gICpzeW10YWJbTUFYX1NIRFJTXTsKLXN0YXRpYyBFbGYzMl9SZWwgICpyZWx0YWJbTUFYX1NIRFJTXTsKLXN0YXRpYyBjaGFyICpzdHJ0YWJbTUFYX1NIRFJTXTsKIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJlbG9jX2NvdW50LCByZWxvY19pZHg7CiBzdGF0aWMgdW5zaWduZWQgbG9uZyAqcmVsb2NzOwogCitzdHJ1Y3Qgc2VjdGlvbiB7CisJRWxmMzJfU2hkciAgICAgc2hkcjsKKwlzdHJ1Y3Qgc2VjdGlvbiAqbGluazsKKwlFbGYzMl9TeW0gICAgICAqc3ltdGFiOworCUVsZjMyX1JlbCAgICAgICpyZWx0YWI7CisJY2hhciAgICAgICAgICAgKnN0cnRhYjsKK307CitzdGF0aWMgc3RydWN0IHNlY3Rpb24gKnNlY3M7CisKIC8qCiAgKiBGb2xsb3dpbmcgc3ltYm9scyBoYXZlIGJlZW4gYXVkaXRlZC4gVGhlcmUgdmFsdWVzIGFyZSBjb25zdGFudCBhbmQgZG8KICAqIG5vdCBjaGFuZ2UgaWYgYnpJbWFnZSBpcyBsb2FkZWQgYXQgYSBkaWZmZXJlbnQgcGh5c2ljYWwgYWRkcmVzcyB0aGFuCkBAIC0zNSw3ICszOSw3IEBACiB7CiAJaW50IGk7CiAKLQlmb3IoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNhZmVfYWJzX3JlbG9jcyk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNhZmVfYWJzX3JlbG9jcyk7IGkrKykgewogCQlpZiAoIXN0cmNtcChzeW1fbmFtZSwgc2FmZV9hYnNfcmVsb2NzW2ldKSkKIAkJCS8qIE1hdGNoIGZvdW5kICovCiAJCQlyZXR1cm4gMTsKQEAgLTEzNywxMCArMTQxLDEwIEBACiB7CiAJY29uc3QgY2hhciAqc2VjX3N0cnRhYjsKIAljb25zdCBjaGFyICpuYW1lOwotCXNlY19zdHJ0YWIgPSBzdHJ0YWJbZWhkci5lX3Noc3RybmR4XTsKKwlzZWNfc3RydGFiID0gc2Vjc1tlaGRyLmVfc2hzdHJuZHhdLnN0cnRhYjsKIAluYW1lID0gIjxub25hbWU+IjsKIAlpZiAoc2huZHggPCBlaGRyLmVfc2hudW0pIHsKLQkJbmFtZSA9IHNlY19zdHJ0YWIgKyBzaGRyW3NobmR4XS5zaF9uYW1lOworCQluYW1lID0gc2VjX3N0cnRhYiArIHNlY3Nbc2huZHhdLnNoZHIuc2hfbmFtZTsKIAl9CiAJZWxzZSBpZiAoc2huZHggPT0gU0hOX0FCUykgewogCQluYW1lID0gIkFCU09MVVRFIjsKQEAgLTE1OSw3ICsxNjMsNyBAQAogCQluYW1lID0gc3ltX3N0cnRhYiArIHN5bS0+c3RfbmFtZTsKIAl9CiAJZWxzZSB7Ci0JCW5hbWUgPSBzZWNfbmFtZShzaGRyW3N5bS0+c3Rfc2huZHhdLnNoX25hbWUpOworCQluYW1lID0gc2VjX25hbWUoc2Vjc1tzeW0tPnN0X3NobmR4XS5zaGRyLnNoX25hbWUpOwogCX0KIAlyZXR1cm4gbmFtZTsKIH0KQEAgLTI0NCwyOSArMjQ4LDM0IEBACiBzdGF0aWMgdm9pZCByZWFkX3NoZHJzKEZJTEUgKmZwKQogewogCWludCBpOwotCWlmIChlaGRyLmVfc2hudW0gPiBNQVhfU0hEUlMpIHsKLQkJZGllKCIlZCBzZWN0aW9uIGhlYWRlcnMgc3VwcG9ydGVkOiAlZFxuIiwKLQkJCWVoZHIuZV9zaG51bSwgTUFYX1NIRFJTKTsKKwlFbGYzMl9TaGRyIHNoZHI7CisKKwlzZWNzID0gY2FsbG9jKGVoZHIuZV9zaG51bSwgc2l6ZW9mKHN0cnVjdCBzZWN0aW9uKSk7CisJaWYgKCFzZWNzKSB7CisJCWRpZSgiVW5hYmxlIHRvIGFsbG9jYXRlICVkIHNlY3Rpb24gaGVhZGVyc1xuIiwKKwkJICAgIGVoZHIuZV9zaG51bSk7CiAJfQogCWlmIChmc2VlayhmcCwgZWhkci5lX3Nob2ZmLCBTRUVLX1NFVCkgPCAwKSB7CiAJCWRpZSgiU2VlayB0byAlZCBmYWlsZWQ6ICVzXG4iLAogCQkJZWhkci5lX3Nob2ZmLCBzdHJlcnJvcihlcnJubykpOwogCX0KLQlpZiAoZnJlYWQoJnNoZHIsIHNpemVvZihzaGRyWzBdKSwgZWhkci5lX3NobnVtLCBmcCkgIT0gZWhkci5lX3NobnVtKSB7Ci0JCWRpZSgiQ2Fubm90IHJlYWQgRUxGIHNlY3Rpb24gaGVhZGVyczogJXNcbiIsCi0JCQlzdHJlcnJvcihlcnJubykpOwotCX0KLQlmb3IoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgewotCQlzaGRyW2ldLnNoX25hbWUgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX25hbWUpOwotCQlzaGRyW2ldLnNoX3R5cGUgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX3R5cGUpOwotCQlzaGRyW2ldLnNoX2ZsYWdzICAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX2ZsYWdzKTsKLQkJc2hkcltpXS5zaF9hZGRyICAgICAgPSBlbGYzMl90b19jcHUoc2hkcltpXS5zaF9hZGRyKTsKLQkJc2hkcltpXS5zaF9vZmZzZXQgICAgPSBlbGYzMl90b19jcHUoc2hkcltpXS5zaF9vZmZzZXQpOwotCQlzaGRyW2ldLnNoX3NpemUgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX3NpemUpOwotCQlzaGRyW2ldLnNoX2xpbmsgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX2xpbmspOwotCQlzaGRyW2ldLnNoX2luZm8gICAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX2luZm8pOwotCQlzaGRyW2ldLnNoX2FkZHJhbGlnbiA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX2FkZHJhbGlnbik7Ci0JCXNoZHJbaV0uc2hfZW50c2l6ZSAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfZW50c2l6ZSk7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJCXN0cnVjdCBzZWN0aW9uICpzZWMgPSAmc2Vjc1tpXTsKKwkJaWYgKGZyZWFkKCZzaGRyLCBzaXplb2Ygc2hkciwgMSwgZnApICE9IDEpCisJCQlkaWUoIkNhbm5vdCByZWFkIEVMRiBzZWN0aW9uIGhlYWRlcnMgJWQvJWQ6ICVzXG4iLAorCQkJICAgIGksIGVoZHIuZV9zaG51bSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJc2VjLT5zaGRyLnNoX25hbWUgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX25hbWUpOworCQlzZWMtPnNoZHIuc2hfdHlwZSAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHIuc2hfdHlwZSk7CisJCXNlYy0+c2hkci5zaF9mbGFncyAgICAgPSBlbGYzMl90b19jcHUoc2hkci5zaF9mbGFncyk7CisJCXNlYy0+c2hkci5zaF9hZGRyICAgICAgPSBlbGYzMl90b19jcHUoc2hkci5zaF9hZGRyKTsKKwkJc2VjLT5zaGRyLnNoX29mZnNldCAgICA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX29mZnNldCk7CisJCXNlYy0+c2hkci5zaF9zaXplICAgICAgPSBlbGYzMl90b19jcHUoc2hkci5zaF9zaXplKTsKKwkJc2VjLT5zaGRyLnNoX2xpbmsgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX2xpbmspOworCQlzZWMtPnNoZHIuc2hfaW5mbyAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHIuc2hfaW5mbyk7CisJCXNlYy0+c2hkci5zaF9hZGRyYWxpZ24gPSBlbGYzMl90b19jcHUoc2hkci5zaF9hZGRyYWxpZ24pOworCQlzZWMtPnNoZHIuc2hfZW50c2l6ZSAgID0gZWxmMzJfdG9fY3B1KHNoZHIuc2hfZW50c2l6ZSk7CisJCWlmIChzZWMtPnNoZHIuc2hfbGluayA8IGVoZHIuZV9zaG51bSkKKwkJCXNlYy0+bGluayA9ICZzZWNzW3NlYy0+c2hkci5zaF9saW5rXTsKIAl9CiAKIH0KQEAgLTI3NCwyMCArMjgzLDIyIEBACiBzdGF0aWMgdm9pZCByZWFkX3N0cnRhYnMoRklMRSAqZnApCiB7CiAJaW50IGk7Ci0JZm9yKGkgPSAwOyBpIDwgZWhkci5lX3NobnVtOyBpKyspIHsKLQkJaWYgKHNoZHJbaV0uc2hfdHlwZSAhPSBTSFRfU1RSVEFCKSB7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJCXN0cnVjdCBzZWN0aW9uICpzZWMgPSAmc2Vjc1tpXTsKKwkJaWYgKHNlYy0+c2hkci5zaF90eXBlICE9IFNIVF9TVFJUQUIpIHsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCXN0cnRhYltpXSA9IG1hbGxvYyhzaGRyW2ldLnNoX3NpemUpOwotCQlpZiAoIXN0cnRhYltpXSkgeworCQlzZWMtPnN0cnRhYiA9IG1hbGxvYyhzZWMtPnNoZHIuc2hfc2l6ZSk7CisJCWlmICghc2VjLT5zdHJ0YWIpIHsKIAkJCWRpZSgibWFsbG9jIG9mICVkIGJ5dGVzIGZvciBzdHJ0YWIgZmFpbGVkXG4iLAotCQkJCXNoZHJbaV0uc2hfc2l6ZSk7CisJCQkJc2VjLT5zaGRyLnNoX3NpemUpOwogCQl9Ci0JCWlmIChmc2VlayhmcCwgc2hkcltpXS5zaF9vZmZzZXQsIFNFRUtfU0VUKSA8IDApIHsKKwkJaWYgKGZzZWVrKGZwLCBzZWMtPnNoZHIuc2hfb2Zmc2V0LCBTRUVLX1NFVCkgPCAwKSB7CiAJCQlkaWUoIlNlZWsgdG8gJWQgZmFpbGVkOiAlc1xuIiwKLQkJCQlzaGRyW2ldLnNoX29mZnNldCwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCQlzZWMtPnNoZHIuc2hfb2Zmc2V0LCBzdHJlcnJvcihlcnJubykpOwogCQl9Ci0JCWlmIChmcmVhZChzdHJ0YWJbaV0sIDEsIHNoZHJbaV0uc2hfc2l6ZSwgZnApICE9IHNoZHJbaV0uc2hfc2l6ZSkgeworCQlpZiAoZnJlYWQoc2VjLT5zdHJ0YWIsIDEsIHNlYy0+c2hkci5zaF9zaXplLCBmcCkKKwkJICAgICE9IHNlYy0+c2hkci5zaF9zaXplKSB7CiAJCQlkaWUoIkNhbm5vdCByZWFkIHN5bWJvbCB0YWJsZTogJXNcbiIsCiAJCQkJc3RyZXJyb3IoZXJybm8pKTsKIAkJfQpAQCAtMjk3LDI4ICszMDgsMzEgQEAKIHN0YXRpYyB2b2lkIHJlYWRfc3ltdGFicyhGSUxFICpmcCkKIHsKIAlpbnQgaSxqOwotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7Ci0JCWlmIChzaGRyW2ldLnNoX3R5cGUgIT0gU0hUX1NZTVRBQikgeworCWZvciAoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgeworCQlzdHJ1Y3Qgc2VjdGlvbiAqc2VjID0gJnNlY3NbaV07CisJCWlmIChzZWMtPnNoZHIuc2hfdHlwZSAhPSBTSFRfU1lNVEFCKSB7CiAJCQljb250aW51ZTsKIAkJfQotCQlzeW10YWJbaV0gPSBtYWxsb2Moc2hkcltpXS5zaF9zaXplKTsKLQkJaWYgKCFzeW10YWJbaV0pIHsKKwkJc2VjLT5zeW10YWIgPSBtYWxsb2Moc2VjLT5zaGRyLnNoX3NpemUpOworCQlpZiAoIXNlYy0+c3ltdGFiKSB7CiAJCQlkaWUoIm1hbGxvYyBvZiAlZCBieXRlcyBmb3Igc3ltdGFiIGZhaWxlZFxuIiwKLQkJCQlzaGRyW2ldLnNoX3NpemUpOworCQkJCXNlYy0+c2hkci5zaF9zaXplKTsKIAkJfQotCQlpZiAoZnNlZWsoZnAsIHNoZHJbaV0uc2hfb2Zmc2V0LCBTRUVLX1NFVCkgPCAwKSB7CisJCWlmIChmc2VlayhmcCwgc2VjLT5zaGRyLnNoX29mZnNldCwgU0VFS19TRVQpIDwgMCkgewogCQkJZGllKCJTZWVrIHRvICVkIGZhaWxlZDogJXNcbiIsCi0JCQkJc2hkcltpXS5zaF9vZmZzZXQsIHN0cmVycm9yKGVycm5vKSk7CisJCQkJc2VjLT5zaGRyLnNoX29mZnNldCwgc3RyZXJyb3IoZXJybm8pKTsKIAkJfQotCQlpZiAoZnJlYWQoc3ltdGFiW2ldLCAxLCBzaGRyW2ldLnNoX3NpemUsIGZwKSAhPSBzaGRyW2ldLnNoX3NpemUpIHsKKwkJaWYgKGZyZWFkKHNlYy0+c3ltdGFiLCAxLCBzZWMtPnNoZHIuc2hfc2l6ZSwgZnApCisJCSAgICAhPSBzZWMtPnNoZHIuc2hfc2l6ZSkgewogCQkJZGllKCJDYW5ub3QgcmVhZCBzeW1ib2wgdGFibGU6ICVzXG4iLAogCQkJCXN0cmVycm9yKGVycm5vKSk7CiAJCX0KLQkJZm9yKGogPSAwOyBqIDwgc2hkcltpXS5zaF9zaXplL3NpemVvZihzeW10YWJbaV1bMF0pOyBqKyspIHsKLQkJCXN5bXRhYltpXVtqXS5zdF9uYW1lICA9IGVsZjMyX3RvX2NwdShzeW10YWJbaV1bal0uc3RfbmFtZSk7Ci0JCQlzeW10YWJbaV1bal0uc3RfdmFsdWUgPSBlbGYzMl90b19jcHUoc3ltdGFiW2ldW2pdLnN0X3ZhbHVlKTsKLQkJCXN5bXRhYltpXVtqXS5zdF9zaXplICA9IGVsZjMyX3RvX2NwdShzeW10YWJbaV1bal0uc3Rfc2l6ZSk7Ci0JCQlzeW10YWJbaV1bal0uc3Rfc2huZHggPSBlbGYxNl90b19jcHUoc3ltdGFiW2ldW2pdLnN0X3NobmR4KTsKKwkJZm9yIChqID0gMDsgaiA8IHNlYy0+c2hkci5zaF9zaXplL3NpemVvZihFbGYzMl9TeW0pOyBqKyspIHsKKwkJCUVsZjMyX1N5bSAqc3ltID0gJnNlYy0+c3ltdGFiW2pdOworCQkJc3ltLT5zdF9uYW1lICA9IGVsZjMyX3RvX2NwdShzeW0tPnN0X25hbWUpOworCQkJc3ltLT5zdF92YWx1ZSA9IGVsZjMyX3RvX2NwdShzeW0tPnN0X3ZhbHVlKTsKKwkJCXN5bS0+c3Rfc2l6ZSAgPSBlbGYzMl90b19jcHUoc3ltLT5zdF9zaXplKTsKKwkJCXN5bS0+c3Rfc2huZHggPSBlbGYxNl90b19jcHUoc3ltLT5zdF9zaG5keCk7CiAJCX0KIAl9CiB9CkBAIC0zMjcsMjYgKzM0MSwyOSBAQAogc3RhdGljIHZvaWQgcmVhZF9yZWxvY3MoRklMRSAqZnApCiB7CiAJaW50IGksajsKLQlmb3IoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgewotCQlpZiAoc2hkcltpXS5zaF90eXBlICE9IFNIVF9SRUwpIHsKKwlmb3IgKGkgPSAwOyBpIDwgZWhkci5lX3NobnVtOyBpKyspIHsKKwkJc3RydWN0IHNlY3Rpb24gKnNlYyA9ICZzZWNzW2ldOworCQlpZiAoc2VjLT5zaGRyLnNoX3R5cGUgIT0gU0hUX1JFTCkgewogCQkJY29udGludWU7CiAJCX0KLQkJcmVsdGFiW2ldID0gbWFsbG9jKHNoZHJbaV0uc2hfc2l6ZSk7Ci0JCWlmICghcmVsdGFiW2ldKSB7CisJCXNlYy0+cmVsdGFiID0gbWFsbG9jKHNlYy0+c2hkci5zaF9zaXplKTsKKwkJaWYgKCFzZWMtPnJlbHRhYikgewogCQkJZGllKCJtYWxsb2Mgb2YgJWQgYnl0ZXMgZm9yIHJlbG9jcyBmYWlsZWRcbiIsCi0JCQkJc2hkcltpXS5zaF9zaXplKTsKKwkJCQlzZWMtPnNoZHIuc2hfc2l6ZSk7CiAJCX0KLQkJaWYgKGZzZWVrKGZwLCBzaGRyW2ldLnNoX29mZnNldCwgU0VFS19TRVQpIDwgMCkgeworCQlpZiAoZnNlZWsoZnAsIHNlYy0+c2hkci5zaF9vZmZzZXQsIFNFRUtfU0VUKSA8IDApIHsKIAkJCWRpZSgiU2VlayB0byAlZCBmYWlsZWQ6ICVzXG4iLAotCQkJCXNoZHJbaV0uc2hfb2Zmc2V0LCBzdHJlcnJvcihlcnJubykpOworCQkJCXNlYy0+c2hkci5zaF9vZmZzZXQsIHN0cmVycm9yKGVycm5vKSk7CiAJCX0KLQkJaWYgKGZyZWFkKHJlbHRhYltpXSwgMSwgc2hkcltpXS5zaF9zaXplLCBmcCkgIT0gc2hkcltpXS5zaF9zaXplKSB7CisJCWlmIChmcmVhZChzZWMtPnJlbHRhYiwgMSwgc2VjLT5zaGRyLnNoX3NpemUsIGZwKQorCQkgICAgIT0gc2VjLT5zaGRyLnNoX3NpemUpIHsKIAkJCWRpZSgiQ2Fubm90IHJlYWQgc3ltYm9sIHRhYmxlOiAlc1xuIiwKIAkJCQlzdHJlcnJvcihlcnJubykpOwogCQl9Ci0JCWZvcihqID0gMDsgaiA8IHNoZHJbaV0uc2hfc2l6ZS9zaXplb2YocmVsdGFiWzBdWzBdKTsgaisrKSB7Ci0JCQlyZWx0YWJbaV1bal0ucl9vZmZzZXQgPSBlbGYzMl90b19jcHUocmVsdGFiW2ldW2pdLnJfb2Zmc2V0KTsKLQkJCXJlbHRhYltpXVtqXS5yX2luZm8gICA9IGVsZjMyX3RvX2NwdShyZWx0YWJbaV1bal0ucl9pbmZvKTsKKwkJZm9yIChqID0gMDsgaiA8IHNlYy0+c2hkci5zaF9zaXplL3NpemVvZihFbGYzMl9SZWwpOyBqKyspIHsKKwkJCUVsZjMyX1JlbCAqcmVsID0gJnNlYy0+cmVsdGFiW2pdOworCQkJcmVsLT5yX29mZnNldCA9IGVsZjMyX3RvX2NwdShyZWwtPnJfb2Zmc2V0KTsKKwkJCXJlbC0+cl9pbmZvICAgPSBlbGYzMl90b19jcHUocmVsLT5yX2luZm8pOwogCQl9CiAJfQogfQpAQCAtMzU3LDE5ICszNzQsMjEgQEAKIAlpbnQgaTsKIAlwcmludGYoIkFic29sdXRlIHN5bWJvbHNcbiIpOwogCXByaW50ZigiIE51bTogICAgVmFsdWUgU2l6ZSAgVHlwZSAgICAgICBCaW5kICAgICAgICBWaXNpYmlsaXR5ICBOYW1lXG4iKTsKLQlmb3IoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgeworCQlzdHJ1Y3Qgc2VjdGlvbiAqc2VjID0gJnNlY3NbaV07CiAJCWNoYXIgKnN5bV9zdHJ0YWI7CiAJCUVsZjMyX1N5bSAqc2hfc3ltdGFiOwogCQlpbnQgajsKLQkJaWYgKHNoZHJbaV0uc2hfdHlwZSAhPSBTSFRfU1lNVEFCKSB7CisKKwkJaWYgKHNlYy0+c2hkci5zaF90eXBlICE9IFNIVF9TWU1UQUIpIHsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCXNoX3N5bXRhYiA9IHN5bXRhYltpXTsKLQkJc3ltX3N0cnRhYiA9IHN0cnRhYltzaGRyW2ldLnNoX2xpbmtdOwotCQlmb3IoaiA9IDA7IGogPCBzaGRyW2ldLnNoX3NpemUvc2l6ZW9mKHN5bXRhYlswXVswXSk7IGorKykgeworCQlzaF9zeW10YWIgPSBzZWMtPnN5bXRhYjsKKwkJc3ltX3N0cnRhYiA9IHNlYy0+bGluay0+c3RydGFiOworCQlmb3IgKGogPSAwOyBqIDwgc2VjLT5zaGRyLnNoX3NpemUvc2l6ZW9mKEVsZjMyX1N5bSk7IGorKykgewogCQkJRWxmMzJfU3ltICpzeW07CiAJCQljb25zdCBjaGFyICpuYW1lOwotCQkJc3ltID0gJnN5bXRhYltpXVtqXTsKKwkJCXN5bSA9ICZzZWMtPnN5bXRhYltqXTsKIAkJCW5hbWUgPSBzeW1fbmFtZShzeW1fc3RydGFiLCBzeW0pOwogCQkJaWYgKHN5bS0+c3Rfc2huZHggIT0gU0hOX0FCUykgewogCQkJCWNvbnRpbnVlOwpAQCAtMzg5LDI2ICs0MDgsMjcgQEAKIHsKIAlpbnQgaSwgcHJpbnRlZCA9IDA7CiAKLQlmb3IoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgeworCQlzdHJ1Y3Qgc2VjdGlvbiAqc2VjID0gJnNlY3NbaV07CisJCXN0cnVjdCBzZWN0aW9uICpzZWNfYXBwbGllcywgKnNlY19zeW10YWI7CiAJCWNoYXIgKnN5bV9zdHJ0YWI7CiAJCUVsZjMyX1N5bSAqc2hfc3ltdGFiOwotCQl1bnNpZ25lZCBzZWNfYXBwbGllcywgc2VjX3N5bXRhYjsKIAkJaW50IGo7Ci0JCWlmIChzaGRyW2ldLnNoX3R5cGUgIT0gU0hUX1JFTCkgeworCQlpZiAoc2VjLT5zaGRyLnNoX3R5cGUgIT0gU0hUX1JFTCkgewogCQkJY29udGludWU7CiAJCX0KLQkJc2VjX3N5bXRhYiAgPSBzaGRyW2ldLnNoX2xpbms7Ci0JCXNlY19hcHBsaWVzID0gc2hkcltpXS5zaF9pbmZvOwotCQlpZiAoIShzaGRyW3NlY19hcHBsaWVzXS5zaF9mbGFncyAmIFNIRl9BTExPQykpIHsKKwkJc2VjX3N5bXRhYiAgPSBzZWMtPmxpbms7CisJCXNlY19hcHBsaWVzID0gJnNlY3Nbc2VjLT5zaGRyLnNoX2luZm9dOworCQlpZiAoIShzZWNfYXBwbGllcy0+c2hkci5zaF9mbGFncyAmIFNIRl9BTExPQykpIHsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCXNoX3N5bXRhYiA9IHN5bXRhYltzZWNfc3ltdGFiXTsKLQkJc3ltX3N0cnRhYiA9IHN0cnRhYltzaGRyW3NlY19zeW10YWJdLnNoX2xpbmtdOwotCQlmb3IoaiA9IDA7IGogPCBzaGRyW2ldLnNoX3NpemUvc2l6ZW9mKHJlbHRhYlswXVswXSk7IGorKykgeworCQlzaF9zeW10YWIgID0gc2VjX3N5bXRhYi0+c3ltdGFiOworCQlzeW1fc3RydGFiID0gc2VjX3N5bXRhYi0+bGluay0+c3RydGFiOworCQlmb3IgKGogPSAwOyBqIDwgc2VjLT5zaGRyLnNoX3NpemUvc2l6ZW9mKEVsZjMyX1JlbCk7IGorKykgewogCQkJRWxmMzJfUmVsICpyZWw7CiAJCQlFbGYzMl9TeW0gKnN5bTsKIAkJCWNvbnN0IGNoYXIgKm5hbWU7Ci0JCQlyZWwgPSAmcmVsdGFiW2ldW2pdOworCQkJcmVsID0gJnNlYy0+cmVsdGFiW2pdOwogCQkJc3ltID0gJnNoX3N5bXRhYltFTEYzMl9SX1NZTShyZWwtPnJfaW5mbyldOwogCQkJbmFtZSA9IHN5bV9uYW1lKHN5bV9zdHJ0YWIsIHN5bSk7CiAJCQlpZiAoc3ltLT5zdF9zaG5keCAhPSBTSE5fQUJTKSB7CkBAIC00NTYsMjYgKzQ3NiwyOCBAQAogewogCWludCBpOwogCS8qIFdhbGsgdGhyb3VnaCB0aGUgcmVsb2NhdGlvbnMgKi8KLQlmb3IoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgewogCQljaGFyICpzeW1fc3RydGFiOwogCQlFbGYzMl9TeW0gKnNoX3N5bXRhYjsKLQkJdW5zaWduZWQgc2VjX2FwcGxpZXMsIHNlY19zeW10YWI7CisJCXN0cnVjdCBzZWN0aW9uICpzZWNfYXBwbGllcywgKnNlY19zeW10YWI7CiAJCWludCBqOwotCQlpZiAoc2hkcltpXS5zaF90eXBlICE9IFNIVF9SRUwpIHsKKwkJc3RydWN0IHNlY3Rpb24gKnNlYyA9ICZzZWNzW2ldOworCisJCWlmIChzZWMtPnNoZHIuc2hfdHlwZSAhPSBTSFRfUkVMKSB7CiAJCQljb250aW51ZTsKIAkJfQotCQlzZWNfc3ltdGFiICA9IHNoZHJbaV0uc2hfbGluazsKLQkJc2VjX2FwcGxpZXMgPSBzaGRyW2ldLnNoX2luZm87Ci0JCWlmICghKHNoZHJbc2VjX2FwcGxpZXNdLnNoX2ZsYWdzICYgU0hGX0FMTE9DKSkgeworCQlzZWNfc3ltdGFiICA9IHNlYy0+bGluazsKKwkJc2VjX2FwcGxpZXMgPSAmc2Vjc1tzZWMtPnNoZHIuc2hfaW5mb107CisJCWlmICghKHNlY19hcHBsaWVzLT5zaGRyLnNoX2ZsYWdzICYgU0hGX0FMTE9DKSkgewogCQkJY29udGludWU7CiAJCX0KLQkJc2hfc3ltdGFiID0gc3ltdGFiW3NlY19zeW10YWJdOwotCQlzeW1fc3RydGFiID0gc3RydGFiW3NoZHJbc2VjX3N5bXRhYl0uc2hfbGlua107Ci0JCWZvcihqID0gMDsgaiA8IHNoZHJbaV0uc2hfc2l6ZS9zaXplb2YocmVsdGFiWzBdWzBdKTsgaisrKSB7CisJCXNoX3N5bXRhYiA9IHNlY19zeW10YWItPnN5bXRhYjsKKwkJc3ltX3N0cnRhYiA9IHNlYy0+bGluay0+c3RydGFiOworCQlmb3IgKGogPSAwOyBqIDwgc2VjLT5zaGRyLnNoX3NpemUvc2l6ZW9mKEVsZjMyX1JlbCk7IGorKykgewogCQkJRWxmMzJfUmVsICpyZWw7CiAJCQlFbGYzMl9TeW0gKnN5bTsKIAkJCXVuc2lnbmVkIHJfdHlwZTsKLQkJCXJlbCA9ICZyZWx0YWJbaV1bal07CisJCQlyZWwgPSAmc2VjLT5yZWx0YWJbal07CiAJCQlzeW0gPSAmc2hfc3ltdGFiW0VMRjMyX1JfU1lNKHJlbC0+cl9pbmZvKV07CiAJCQlyX3R5cGUgPSBFTEYzMl9SX1RZUEUocmVsLT5yX2luZm8pOwogCQkJLyogRG9uJ3QgdmlzaXQgcmVsb2NhdGlvbnMgdG8gYWJzb2x1dGUgc3ltYm9scyAqLwpAQCAtNTM5LDcgKzU2MSw3IEBACiAJCSAqLwogCQlwcmludGYoIi5zZWN0aW9uIFwiLmRhdGEucmVsb2NcIixcImFcIlxuIik7CiAJCXByaW50ZigiLmJhbGlnbiA0XG4iKTsKLQkJZm9yKGkgPSAwOyBpIDwgcmVsb2NfY291bnQ7IGkrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgcmVsb2NfY291bnQ7IGkrKykgewogCQkJcHJpbnRmKCJcdCAubG9uZyAweCUwOGx4XG4iLCByZWxvY3NbaV0pOwogCQl9CiAJCXByaW50ZigiXG4iKTsKQEAgLTU1MCw3ICs1NzIsNyBAQAogCQkvKiBQcmludCBhIHN0b3AgKi8KIAkJcHJpbnRmKCIlYyVjJWMlYyIsIGJ1ZlswXSwgYnVmWzFdLCBidWZbMl0sIGJ1ZlszXSk7CiAJCS8qIE5vdyBwcmludCBlYWNoIHJlbG9jYXRpb24gKi8KLQkJZm9yKGkgPSAwOyBpIDwgcmVsb2NfY291bnQ7IGkrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgcmVsb2NfY291bnQ7IGkrKykgewogCQkJYnVmWzBdID0gKHJlbG9jc1tpXSA+PiAgMCkgJiAweGZmOwogCQkJYnVmWzFdID0gKHJlbG9jc1tpXSA+PiAgOCkgJiAweGZmOwogCQkJYnVmWzJdID0gKHJlbG9jc1tpXSA+PiAxNikgJiAweGZmOwpAQCAtNTc3LDcgKzU5OSw3IEBACiAJc2hvd19hYnNvbHV0ZV9yZWxvY3MgPSAwOwogCWFzX3RleHQgPSAwOwogCWZuYW1lID0gTlVMTDsKLQlmb3IoaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKKwlmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKSB7CiAJCWNoYXIgKmFyZyA9IGFyZ3ZbaV07CiAJCWlmICgqYXJnID09ICctJykgewogCQkJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1hYnMtc3ltcyIpID09IDApIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvY3B1LmMgYi9hcmNoL3g4Ni9ib290L2NwdS5jCmluZGV4IDAwZTE5ZWQuLjkyZDZmZDcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvY3B1LmMKKysrIGIvYXJjaC94ODYvYm9vdC9jcHUuYwpAQCAtMjgsNiArMjgsOCBAQAogCWlmIChsZXZlbCA9PSA2NCkgewogCQlyZXR1cm4gIng4Ni02NCI7CiAJfSBlbHNlIHsKKwkJaWYgKGxldmVsID09IDE1KQorCQkJbGV2ZWwgPSA2OwogCQlzcHJpbnRmKGJ1ZiwgImklZDg2IiwgbGV2ZWwpOwogCQlyZXR1cm4gYnVmOwogCX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvbWFpbi5jIGIvYXJjaC94ODYvYm9vdC9tYWluLmMKaW5kZXggNzc1NjlhNC4uMjI5NjE2NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9tYWluLmMKKysrIGIvYXJjaC94ODYvYm9vdC9tYWluLmMKQEAgLTE2NSw2ICsxNjUsMTAgQEAKIAkvKiBTZXQgdGhlIHZpZGVvIG1vZGUgKi8KIAlzZXRfdmlkZW8oKTsKIAorCS8qIFBhcnNlIGNvbW1hbmQgbGluZSBmb3IgJ3F1aWV0JyBhbmQgcGFzcyBpdCB0byBkZWNvbXByZXNzb3IuICovCisJaWYgKGNtZGxpbmVfZmluZF9vcHRpb25fYm9vbCgicXVpZXQiKSkKKwkJYm9vdF9wYXJhbXMuaGRyLmxvYWRmbGFncyB8PSBRVUlFVF9GTEFHOworCiAJLyogRG8gdGhlIGxhc3QgdGhpbmdzIGFuZCBpbnZva2UgcHJvdGVjdGVkIG1vZGUgKi8KIAlnb190b19wcm90ZWN0ZWRfbW9kZSgpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9tZW1vcnkuYyBiL2FyY2gveDg2L2Jvb3QvbWVtb3J5LmMKaW5kZXggYWNhZDMyZS4uNTMxNjVjOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9tZW1vcnkuYworKysgYi9hcmNoL3g4Ni9ib290L21lbW9yeS5jCkBAIC0xMyw2ICsxMyw3IEBACiAgKi8KIAogI2luY2x1ZGUgImJvb3QuaCIKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KIAogI2RlZmluZSBTTUFQCTB4NTM0ZDQxNTAJLyogQVNDSUkgIlNNQVAiICovCiAKQEAgLTUzLDcgKzU0LDcgQEAKIAogCQljb3VudCsrOwogCQlkZXNjKys7Ci0JfSB3aGlsZSAobmV4dCAmJiBjb3VudCA8IEU4MjBNQVgpOworCX0gd2hpbGUgKG5leHQgJiYgY291bnQgPCBBUlJBWV9TSVpFKGJvb3RfcGFyYW1zLmU4MjBfbWFwKSk7CiAKIAlyZXR1cm4gYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzID0gY291bnQ7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L3BtanVtcC5TIGIvYXJjaC94ODYvYm9vdC9wbWp1bXAuUwppbmRleCBhYjA0OWQ0Li4xNDFiNmUyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L3BtanVtcC5TCisrKyBiL2FyY2gveDg2L2Jvb3QvcG1qdW1wLlMKQEAgLTMzLDYgKzMzLDggQEAKIAltb3Z3CSVjcywgJWJ4CiAJc2hsbAkkNCwgJWVieAogCWFkZGwJJWVieCwgMmYKKwlqbXAJMWYJCQkjIFNob3J0IGp1bXAgdG8gc2VyaWFsaXplIG9uIDM4Ni80ODYKKzE6CiAKIAltb3Z3CSRfX0JPT1RfRFMsICVjeAogCW1vdncJJF9fQk9PVF9UU1MsICVkaQpAQCAtNDAsOCArNDIsNiBAQAogCW1vdmwJJWNyMCwgJWVkeAogCW9yYgkkWDg2X0NSMF9QRSwgJWRsCSMgUHJvdGVjdGVkIG1vZGUKIAltb3ZsCSVlZHgsICVjcjAKLQlqbXAJMWYJCQkjIFNob3J0IGp1bXAgdG8gc2VyaWFsaXplIG9uIDM4Ni80ODYKLTE6CiAKIAkjIFRyYW5zaXRpb24gdG8gMzItYml0IG1vZGUKIAkuYnl0ZQkweDY2LCAweGVhCQkjIGxqbXBsIG9wY29kZQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC92aWRlby12Z2EuYyBiL2FyY2gveDg2L2Jvb3QvdmlkZW8tdmdhLmMKaW5kZXggNDBlY2I4ZC4uYjkzOWNiNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC92aWRlby12Z2EuYworKysgYi9hcmNoL3g4Ni9ib290L3ZpZGVvLXZnYS5jCkBAIC0yNTksOCArMjU5LDcgQEAKIAlyZXR1cm4gbW9kZV9jb3VudFthZGFwdGVyXTsKIH0KIAotX192aWRlb2NhcmQgdmlkZW9fdmdhID0KLXsKK19fdmlkZW9jYXJkIHZpZGVvX3ZnYSA9IHsKIAkuY2FyZF9uYW1lCT0gIlZHQSIsCiAJLnByb2JlCQk9IHZnYV9wcm9iZSwKIAkuc2V0X21vZGUJPSB2Z2Ffc2V0X21vZGUsCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnIGIvYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZwppbmRleCBhZDdkZGFhLi45YmMzNGUyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnCisrKyBiL2FyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWcKQEAgLTEsNTQgKzEsMTAzIEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjItZ2l0MTQKLSMgRnJpIEp1bCAyMCAwOTo1MzoxNSAyMDA3CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMxCisjIFN1biBNYXkgIDQgMTk6NTk6MDIgMjAwOAogIworIyBDT05GSUdfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1g4Nl8zMj15CisjIENPTkZJR19YODZfNjQgaXMgbm90IHNldAorQ09ORklHX1g4Nj15CitDT05GSUdfREVGQ09ORklHX0xJU1Q9ImFyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWciCisjIENPTkZJR19HRU5FUklDX0xPQ0tCUkVBSyBpcyBub3Qgc2V0CiBDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NNT1NfVVBEQVRFPXkKIENPTkZJR19DTE9DS1NPVVJDRV9XQVRDSERPRz15CiBDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CiBDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CUk9BRENBU1Q9eQogQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKLUNPTkZJR19TRU1BUEhPUkVfU0xFRVBFUlM9eQotQ09ORklHX1g4Nj15CitDT05GSUdfSEFWRV9MQVRFTkNZVE9QX1NVUFBPUlQ9eQorQ09ORklHX0ZBU1RfQ01QWENIR19MT0NBTD15CiBDT05GSUdfTU1VPXkKIENPTkZJR19aT05FX0RNQT15Ci1DT05GSUdfUVVJQ0tMSVNUPXkKIENPTkZJR19HRU5FUklDX0lTQV9ETUE9eQogQ09ORklHX0dFTkVSSUNfSU9NQVA9eQogQ09ORklHX0dFTkVSSUNfQlVHPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorIyBDT05GSUdfR0VORVJJQ19HUElPIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX01BWV9IQVZFX1BDX0ZEQz15Ci1DT05GSUdfRE1JPXkKLUNPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCi0KLSMKLSMgQ29kZSBtYXR1cml0eSBsZXZlbCBvcHRpb25zCi0jCi1DT05GSUdfRVhQRVJJTUVOVEFMPXkKLUNPTkZJR19MT0NLX0tFUk5FTD15Ci1DT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCisjIENPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLIGlzIG5vdCBzZXQKK0NPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0hBU19DUFVfSURMRV9XQUlUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CisjIENPTkZJR19HRU5FUklDX1RJTUVfVlNZU0NBTEwgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSEFTX0NQVV9SRUxBWD15CitDT05GSUdfQVJDSF9IQVNfQ0FDSEVfTElORV9TSVpFPXkKK0NPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQT15CisjIENPTkZJR19IQVZFX0NQVU1BU0tfT0ZfQ1BVX01BUCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9ISUJFUk5BVElPTl9QT1NTSUJMRT15CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKyMgQ09ORklHX1pPTkVfRE1BMzIgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfUE9QVUxBVEVTX05PREVfTUFQPXkKKyMgQ09ORklHX0FVRElUX0FSQ0ggaXMgbm90IHNldAorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfQVJDSF9TVVBQT1JUU19PUFRJTUlaRURfSU5MSU5JTkc9eQorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19HRU5FUklDX1BFTkRJTkdfSVJRPXkKK0NPTkZJR19YODZfU01QPXkKK0NPTkZJR19YODZfMzJfU01QPXkKK0NPTkZJR19YODZfSFQ9eQorQ09ORklHX1g4Nl9CSU9TX1JFQk9PVD15CitDT05GSUdfWDg2X1RSQU1QT0xJTkU9eQorQ09ORklHX0tUSU1FX1NDQUxBUj15CiAKICMKICMgR2VuZXJhbCBzZXR1cAogIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgogQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgotQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKIENPTkZJR19TV0FQPXkKIENPTkZJR19TWVNWSVBDPXkKIENPTkZJR19TWVNWSVBDX1NZU0NUTD15CiBDT05GSUdfUE9TSVhfTVFVRVVFPXkKLSMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAotIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAotQ09ORklHX0lLQ09ORklHPXkKLUNPTkZJR19JS0NPTkZJR19QUk9DPXkKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE4Ci0jIENPTkZJR19DUFVTRVRTIGlzIG5vdCBzZXQKLUNPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19CU0RfUFJPQ0VTU19BQ0NUPXkKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1RfVjMgaXMgbm90IHNldAorQ09ORklHX1RBU0tTVEFUUz15CitDT05GSUdfVEFTS19ERUxBWV9BQ0NUPXkKK0NPTkZJR19UQVNLX1hBQ0NUPXkKK0NPTkZJR19UQVNLX0lPX0FDQ09VTlRJTkc9eQorQ09ORklHX0FVRElUPXkKK0NPTkZJR19BVURJVFNZU0NBTEw9eQorQ09ORklHX0FVRElUX1RSRUU9eQorIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTcKK0NPTkZJR19DR1JPVVBTPXkKKyMgQ09ORklHX0NHUk9VUF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQ0dST1VQX05TPXkKKyMgQ09ORklHX0NHUk9VUF9ERVZJQ0UgaXMgbm90IHNldAorQ09ORklHX0NQVVNFVFM9eQorQ09ORklHX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKKyMgQ09ORklHX1JUX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX0NHUk9VUF9TQ0hFRD15CitDT05GSUdfQ0dST1VQX0NQVUFDQ1Q9eQorQ09ORklHX1JFU09VUkNFX0NPVU5URVJTPXkKKyMgQ09ORklHX0NHUk9VUF9NRU1fUkVTX0NUTFIgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMiBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QSURfQ1BVU0VUPXkKIENPTkZJR19SRUxBWT15CitDT05GSUdfTkFNRVNQQUNFUz15CitDT05GSUdfVVRTX05TPXkKK0NPTkZJR19JUENfTlM9eQorQ09ORklHX1VTRVJfTlM9eQorQ09ORklHX1BJRF9OUz15CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQogQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CkBAIC01NiwxMyArMTA1LDE1IEBACiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfVUlEMTY9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15Ci0jIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQorIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfQU5PTl9JTk9ERVM9eQpAQCAtNzYsNiArMTI3LDE3IEBACiAjIENPTkZJR19TTEFCIGlzIG5vdCBzZXQKIENPTkZJR19TTFVCPXkKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1BST0ZJTElORz15CitDT05GSUdfTUFSS0VSUz15CisjIENPTkZJR19PUFJPRklMRSBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CitDT05GSUdfS1BST0JFUz15CitDT05GSUdfS1JFVFBST0JFUz15CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKQEAgLTg3LDEwICsxNDksMTAgQEAKICMgQ09ORklHX0tNT0QgaXMgbm90IHNldAogQ09ORklHX1NUT1BfTUFDSElORT15CiBDT05GSUdfQkxPQ0s9eQotQ09ORklHX0xCRD15Ci0jIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9JT19UUkFDRT15CiAjIENPTkZJR19MU0YgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfQlNHPXkKIAogIwogIyBJTyBTY2hlZHVsZXJzCkBAIC0xMDMsNyArMTY1LDggQEAKICMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfQ0ZRPXkKICMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0Ci1DT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQogCiAjCiAjIFByb2Nlc3NvciB0eXBlIGFuZCBmZWF0dXJlcwpAQCAtMTExLDE4ICsxNzQsMjEgQEAKIENPTkZJR19USUNLX09ORVNIT1Q9eQogQ09ORklHX05PX0haPXkKIENPTkZJR19ISUdIX1JFU19USU1FUlM9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQogQ09ORklHX1NNUD15Ci0jIENPTkZJR19YODZfUEMgaXMgbm90IHNldAorQ09ORklHX1g4Nl9QQz15CiAjIENPTkZJR19YODZfRUxBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfVk9ZQUdFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfTlVNQVEgaXMgbm90IHNldAogIyBDT05GSUdfWDg2X1NVTU1JVCBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfQklHU01QIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9WSVNXUyBpcyBub3Qgc2V0Ci1DT05GSUdfWDg2X0dFTkVSSUNBUkNIPXkKKyMgQ09ORklHX1g4Nl9HRU5FUklDQVJDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfRVM3MDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBUkFWSVJUIGlzIG5vdCBzZXQKLUNPTkZJR19YODZfQ1lDTE9ORV9USU1FUj15CisjIENPTkZJR19YODZfUkRDMzIxWCBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfVlNNUCBpcyBub3Qgc2V0CitDT05GSUdfU0NIRURfTk9fTk9fT01JVF9GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX1BBUkFWSVJUX0dVRVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX00zODYgaXMgbm90IHNldAogIyBDT05GSUdfTTQ4NiBpcyBub3Qgc2V0CiAjIENPTkZJR19NNTg2IGlzIG5vdCBzZXQKQEAgLTEzMCw5ICsxOTYsOCBAQAogIyBDT05GSUdfTTU4Nk1NWCBpcyBub3Qgc2V0CiAjIENPTkZJR19NNjg2IGlzIG5vdCBzZXQKICMgQ09ORklHX01QRU5USVVNSUkgaXMgbm90IHNldAotQ09ORklHX01QRU5USVVNSUlJPXkKKyMgQ09ORklHX01QRU5USVVNSUlJIGlzIG5vdCBzZXQKICMgQ09ORklHX01QRU5USVVNTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQ09SRTIgaXMgbm90IHNldAogIyBDT05GSUdfTVBFTlRJVU00IGlzIG5vdCBzZXQKICMgQ09ORklHX01LNiBpcyBub3Qgc2V0CiAjIENPTkZJR19NSzcgaXMgbm90IHNldApAQCAtMTQ3LDE0ICsyMTIsMTQgQEAKICMgQ09ORklHX01DWVJJWElJSSBpcyBub3Qgc2V0CiAjIENPTkZJR19NVklBQzNfMiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVklBQzcgaXMgbm90IHNldAotQ09ORklHX1g4Nl9HRU5FUklDPXkKKyMgQ09ORklHX01QU0MgaXMgbm90IHNldAorQ09ORklHX01DT1JFMj15CisjIENPTkZJR19HRU5FUklDX0NQVSBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfR0VORVJJQyBpcyBub3Qgc2V0CitDT05GSUdfWDg2X0NQVT15CiBDT05GSUdfWDg2X0NNUFhDSEc9eQotQ09ORklHX1g4Nl9MMV9DQUNIRV9TSElGVD03CitDT05GSUdfWDg2X0wxX0NBQ0hFX1NISUZUPTYKIENPTkZJR19YODZfWEFERD15Ci1DT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQotIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQogQ09ORklHX1g4Nl9XUF9XT1JLU19PSz15CiBDT05GSUdfWDg2X0lOVkxQRz15CiBDT05GSUdfWDg2X0JTV0FQPXkKQEAgLTE2MiwxMDYgKzIyNywxMjAgQEAKIENPTkZJR19YODZfR09PRF9BUElDPXkKIENPTkZJR19YODZfSU5URUxfVVNFUkNPUFk9eQogQ09ORklHX1g4Nl9VU0VfUFBST19DSEVDS1NVTT15CitDT05GSUdfWDg2X1A2X05PUD15CiBDT05GSUdfWDg2X1RTQz15Ci1DT05GSUdfWDg2X0NNT1Y9eQotQ09ORklHX1g4Nl9NSU5JTVVNX0NQVV9GQU1JTFk9NAorQ09ORklHX1g4Nl9NSU5JTVVNX0NQVV9GQU1JTFk9NgorQ09ORklHX1g4Nl9ERUJVR0NUTE1TUj15CiBDT05GSUdfSFBFVF9USU1FUj15CiBDT05GSUdfSFBFVF9FTVVMQVRFX1JUQz15Ci1DT05GSUdfTlJfQ1BVUz0zMgotQ09ORklHX1NDSEVEX1NNVD15CitDT05GSUdfRE1JPXkKKyMgQ09ORklHX0lPTU1VX0hFTFBFUiBpcyBub3Qgc2V0CitDT05GSUdfTlJfQ1BVUz00CisjIENPTkZJR19TQ0hFRF9TTVQgaXMgbm90IHNldAogQ09ORklHX1NDSEVEX01DPXkKICMgQ09ORklHX1BSRUVNUFRfTk9ORSBpcyBub3Qgc2V0CiBDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlk9eQogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci1DT05GSUdfUFJFRU1QVF9CS0w9eQogQ09ORklHX1g4Nl9MT0NBTF9BUElDPXkKIENPTkZJR19YODZfSU9fQVBJQz15Ci1DT05GSUdfWDg2X01DRT15Ci1DT05GSUdfWDg2X01DRV9OT05GQVRBTD15Ci1DT05GSUdfWDg2X01DRV9QNFRIRVJNQUw9eQorIyBDT05GSUdfWDg2X01DRSBpcyBub3Qgc2V0CiBDT05GSUdfVk04Nj15CiAjIENPTkZJR19UT1NISUJBIGlzIG5vdCBzZXQKICMgQ09ORklHX0k4SyBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfUkVCT09URklYVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19NSUNST0NPREU9eQotQ09ORklHX01JQ1JPQ09ERV9PTERfSU5URVJGQUNFPXkKKyMgQ09ORklHX01JQ1JPQ09ERSBpcyBub3Qgc2V0CiBDT05GSUdfWDg2X01TUj15CiBDT05GSUdfWDg2X0NQVUlEPXkKLQotIwotIyBGaXJtd2FyZSBEcml2ZXJzCi0jCi0jIENPTkZJR19FREQgaXMgbm90IHNldAotIyBDT05GSUdfREVMTF9SQlUgaXMgbm90IHNldAotIyBDT05GSUdfRENEQkFTIGlzIG5vdCBzZXQKLUNPTkZJR19ETUlJRD15CiAjIENPTkZJR19OT0hJR0hNRU0gaXMgbm90IHNldAogQ09ORklHX0hJR0hNRU00Rz15CiAjIENPTkZJR19ISUdITUVNNjRHIGlzIG5vdCBzZXQKIENPTkZJR19QQUdFX09GRlNFVD0weEMwMDAwMDAwCiBDT05GSUdfSElHSE1FTT15Ci1DT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQorQ09ORklHX05FRURfTk9ERV9NRU1NQVBfU0laRT15CitDT05GSUdfQVJDSF9GTEFUTUVNX0VOQUJMRT15CitDT05GSUdfQVJDSF9TUEFSU0VNRU1fRU5BQkxFPXkKK0NPTkZJR19BUkNIX1NFTEVDVF9NRU1PUllfTU9ERUw9eQogQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQotQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0ZMQVRNRU1fTUFOVUFMIGlzIG5vdCBzZXQKICMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAotIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0Ci1DT05GSUdfRkxBVE1FTT15Ci1DT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQotIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CitDT05GSUdfU1BBUlNFTUVNX01BTlVBTD15CitDT05GSUdfU1BBUlNFTUVNPXkKK0NPTkZJR19IQVZFX01FTU9SWV9QUkVTRU5UPXkKK0NPTkZJR19TUEFSU0VNRU1fU1RBVElDPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CisKKyMKKyMgTWVtb3J5IGhvdHBsdWcgaXMgY3VycmVudGx5IGluY29tcGF0aWJsZSB3aXRoIFNvZnR3YXJlIFN1c3BlbmQKKyMKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKIENPTkZJR19SRVNPVVJDRVNfNjRCSVQ9eQogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15Ci1DT05GSUdfTlJfUVVJQ0s9MQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKICMgQ09ORklHX0hJR0hQVEUgaXMgbm90IHNldAogIyBDT05GSUdfTUFUSF9FTVVMQVRJT04gaXMgbm90IHNldAogQ09ORklHX01UUlI9eQotIyBDT05GSUdfRUZJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9QQVQgaXMgbm90IHNldAorQ09ORklHX0VGST15CiAjIENPTkZJR19JUlFCQUxBTkNFIGlzIG5vdCBzZXQKIENPTkZJR19TRUNDT01QPXkKICMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0Ci1DT05GSUdfSFpfMjUwPXkKKyMgQ09ORklHX0haXzI1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8zMDAgaXMgbm90IHNldAotIyBDT05GSUdfSFpfMTAwMCBpcyBub3Qgc2V0Ci1DT05GSUdfSFo9MjUwCi0jIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkFTSF9EVU1QIGlzIG5vdCBzZXQKLUNPTkZJR19QSFlTSUNBTF9TVEFSVD0weDEwMDAwMAotIyBDT05GSUdfUkVMT0NBVEFCTEUgaXMgbm90IHNldAotQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwCi0jIENPTkZJR19IT1RQTFVHX0NQVSBpcyBub3Qgc2V0Ci1DT05GSUdfQ09NUEFUX1ZEU089eQorQ09ORklHX0haXzEwMDA9eQorQ09ORklHX0haPTEwMDAKK0NPTkZJR19TQ0hFRF9IUlRJQ0s9eQorQ09ORklHX0tFWEVDPXkKK0NPTkZJR19DUkFTSF9EVU1QPXkKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDEwMDAwMDAKK0NPTkZJR19SRUxPQ0FUQUJMRT15CitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgyMDAwMDAKK0NPTkZJR19IT1RQTFVHX0NQVT15CisjIENPTkZJR19DT01QQVRfVkRTTyBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQogCiAjCi0jIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucyAoQUNQSSwgQVBNKQorIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKICMKIENPTkZJR19QTT15Ci1DT05GSUdfUE1fTEVHQUNZPXkKLSMgQ09ORklHX1BNX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBBQ1BJIChBZHZhbmNlZCBDb25maWd1cmF0aW9uIGFuZCBQb3dlciBJbnRlcmZhY2UpIFN1cHBvcnQKLSMKK0NPTkZJR19QTV9ERUJVRz15CisjIENPTkZJR19QTV9WRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fUE1fVFJBQ0U9eQorQ09ORklHX1BNX1RSQUNFPXkKK0NPTkZJR19QTV9UUkFDRV9SVEM9eQorQ09ORklHX1BNX1NMRUVQX1NNUD15CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkQ9eQorQ09ORklHX1NVU1BFTkRfRlJFRVpFUj15CitDT05GSUdfSElCRVJOQVRJT049eQorQ09ORklHX1BNX1NURF9QQVJUSVRJT049IiIKIENPTkZJR19BQ1BJPXkKK0NPTkZJR19BQ1BJX1NMRUVQPXkKIENPTkZJR19BQ1BJX1BST0NGUz15CitDT05GSUdfQUNQSV9QUk9DRlNfUE9XRVI9eQorQ09ORklHX0FDUElfU1lTRlNfUE9XRVI9eQorQ09ORklHX0FDUElfUFJPQ19FVkVOVD15CiBDT05GSUdfQUNQSV9BQz15CiBDT05GSUdfQUNQSV9CQVRURVJZPXkKIENPTkZJR19BQ1BJX0JVVFRPTj15CiBDT05GSUdfQUNQSV9GQU49eQotIyBDT05GSUdfQUNQSV9ET0NLIGlzIG5vdCBzZXQKK0NPTkZJR19BQ1BJX0RPQ0s9eQorIyBDT05GSUdfQUNQSV9CQVkgaXMgbm90IHNldAogQ09ORklHX0FDUElfUFJPQ0VTU09SPXkKK0NPTkZJR19BQ1BJX0hPVFBMVUdfQ1BVPXkKIENPTkZJR19BQ1BJX1RIRVJNQUw9eQorIyBDT05GSUdfQUNQSV9XTUkgaXMgbm90IHNldAogIyBDT05GSUdfQUNQSV9BU1VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FDUElfVE9TSElCQSBpcyBub3Qgc2V0Ci1DT05GSUdfQUNQSV9CTEFDS0xJU1RfWUVBUj0yMDAxCi1DT05GSUdfQUNQSV9ERUJVRz15CisjIENPTkZJR19BQ1BJX0NVU1RPTV9EU0RUIGlzIG5vdCBzZXQKK0NPTkZJR19BQ1BJX0JMQUNLTElTVF9ZRUFSPTAKKyMgQ09ORklHX0FDUElfREVCVUcgaXMgbm90IHNldAogQ09ORklHX0FDUElfRUM9eQogQ09ORklHX0FDUElfUE9XRVI9eQogQ09ORklHX0FDUElfU1lTVEVNPXkKIENPTkZJR19YODZfUE1fVElNRVI9eQotIyBDT05GSUdfQUNQSV9DT05UQUlORVIgaXMgbm90IHNldAorQ09ORklHX0FDUElfQ09OVEFJTkVSPXkKICMgQ09ORklHX0FDUElfU0JTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FQTSBpcyBub3Qgc2V0CiAKQEAgLTI3MSwxNSArMzUwLDE3IEBACiBDT05GSUdfQ1BVX0ZSRVE9eQogQ09ORklHX0NQVV9GUkVRX1RBQkxFPXkKIENPTkZJR19DUFVfRlJFUV9ERUJVRz15Ci1DT05GSUdfQ1BVX0ZSRVFfU1RBVD15Ci0jIENPTkZJR19DUFVfRlJFUV9TVEFUX0RFVEFJTFMgaXMgbm90IHNldAotQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFPXkKLSMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1VTRVJTUEFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9TVEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BPV0VSU0FWRSBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFPXkKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX09OREVNQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX0NPTlNFUlZBVElWRSBpcyBub3Qgc2V0CiBDT05GSUdfQ1BVX0ZSRVFfR09WX1BFUkZPUk1BTkNFPXkKICMgQ09ORklHX0NQVV9GUkVRX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNldAogQ09ORklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0U9eQogQ09ORklHX0NQVV9GUkVRX0dPVl9PTkRFTUFORD15Ci1DT05GSUdfQ1BVX0ZSRVFfR09WX0NPTlNFUlZBVElWRT15CisjIENPTkZJR19DUFVfRlJFUV9HT1ZfQ09OU0VSVkFUSVZFIGlzIG5vdCBzZXQKIAogIwogIyBDUFVGcmVxIHByb2Nlc3NvciBkcml2ZXJzCkBAIC0yODcsOCArMzY4LDcgQEAKIENPTkZJR19YODZfQUNQSV9DUFVGUkVRPXkKICMgQ09ORklHX1g4Nl9QT1dFUk5PV19LNiBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfUE9XRVJOT1dfSzcgaXMgbm90IHNldAotQ09ORklHX1g4Nl9QT1dFUk5PV19LOD15Ci1DT05GSUdfWDg2X1BPV0VSTk9XX0s4X0FDUEk9eQorIyBDT05GSUdfWDg2X1BPV0VSTk9XX0s4IGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9HWF9TVVNQTU9EIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9TUEVFRFNURVBfQ0VOVFJJTk8gaXMgbm90IHNldAogIyBDT05GSUdfWDg2X1NQRUVEU1RFUF9JQ0ggaXMgbm90IHNldApAQCAtMzAyLDQzICszODIsNzIgQEAKICMKICMgc2hhcmVkIG9wdGlvbnMKICMKLUNPTkZJR19YODZfQUNQSV9DUFVGUkVRX1BST0NfSU5URj15CisjIENPTkZJR19YODZfQUNQSV9DUFVGUkVRX1BST0NfSU5URiBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfU1BFRURTVEVQX0xJQiBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX0lETEU9eQorQ09ORklHX0NQVV9JRExFX0dPVl9MQURERVI9eQorQ09ORklHX0NQVV9JRExFX0dPVl9NRU5VPXkKIAogIwotIyBCdXMgb3B0aW9ucyAoUENJLCBQQ01DSUEsIEVJU0EsIE1DQSwgSVNBKQorIyBCdXMgb3B0aW9ucyAoUENJIGV0Yy4pCiAjCiBDT05GSUdfUENJPXkKICMgQ09ORklHX1BDSV9HT0JJT1MgaXMgbm90IHNldAogIyBDT05GSUdfUENJX0dPTU1DT05GSUcgaXMgbm90IHNldAogIyBDT05GSUdfUENJX0dPRElSRUNUIGlzIG5vdCBzZXQKIENPTkZJR19QQ0lfR09BTlk9eQorIyBDT05GSUdfUENJX0dPT0xQQyBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0JJT1M9eQogQ09ORklHX1BDSV9ESVJFQ1Q9eQogQ09ORklHX1BDSV9NTUNPTkZJRz15Ci0jIENPTkZJR19QQ0lFUE9SVEJVUyBpcyBub3Qgc2V0CitDT05GSUdfUENJX0RPTUFJTlM9eQorQ09ORklHX1BDSUVQT1JUQlVTPXkKKyMgQ09ORklHX0hPVFBMVUdfUENJX1BDSUUgaXMgbm90IHNldAorQ09ORklHX1BDSUVBRVI9eQorIyBDT05GSUdfUENJRUFTUE0gaXMgbm90IHNldAogQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJPXkKIENPTkZJR19QQ0lfTVNJPXkKKyMgQ09ORklHX1BDSV9MRUdBQ1kgaXMgbm90IHNldAogIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hUX0lSUSBpcyBub3Qgc2V0CitDT05GSUdfSFRfSVJRPXkKIENPTkZJR19JU0FfRE1BX0FQST15CiAjIENPTkZJR19JU0EgaXMgbm90IHNldAogIyBDT05GSUdfTUNBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDeDIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19PTFBDIGlzIG5vdCBzZXQKIENPTkZJR19LOF9OQj15CitDT05GSUdfUENDQVJEPXkKKyMgQ09ORklHX1BDTUNJQV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUENNQ0lBPXkKK0NPTkZJR19QQ01DSUFfTE9BRF9DSVM9eQorQ09ORklHX1BDTUNJQV9JT0NUTD15CitDT05GSUdfQ0FSREJVUz15CiAKICMKLSMgUENDQVJEIChQQ01DSUEvQ2FyZEJ1cykgc3VwcG9ydAorIyBQQy1jYXJkIGJyaWRnZXMKICMKLSMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CitDT05GSUdfWUVOVEE9eQorQ09ORklHX1lFTlRBX08yPXkKK0NPTkZJR19ZRU5UQV9SSUNPSD15CitDT05GSUdfWUVOVEFfVEk9eQorQ09ORklHX1lFTlRBX0VORV9UVU5FPXkKK0NPTkZJR19ZRU5UQV9UT1NISUJBPXkKKyMgQ09ORklHX1BENjcyOSBpcyBub3Qgc2V0CisjIENPTkZJR19JODIwOTIgaXMgbm90IHNldAorQ09ORklHX1BDQ0FSRF9OT05TVEFUSUM9eQorQ09ORklHX0hPVFBMVUdfUENJPXkKKyMgQ09ORklHX0hPVFBMVUdfUENJX0ZBS0UgaXMgbm90IHNldAorIyBDT05GSUdfSE9UUExVR19QQ0lfSUJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPVFBMVUdfUENJX0FDUEkgaXMgbm90IHNldAorIyBDT05GSUdfSE9UUExVR19QQ0lfQ1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IT1RQTFVHX1BDSV9TSFBDIGlzIG5vdCBzZXQKIAogIwotIyBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cworIyBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cyAvIEVtdWxhdGlvbnMKICMKIENPTkZJR19CSU5GTVRfRUxGPXkKICMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKK0NPTkZJR19CSU5GTVRfTUlTQz15CiAKICMKICMgTmV0d29ya2luZwpAQCAtMzQ5LDU5ICs0NTgsMTQyIEBACiAjIE5ldHdvcmtpbmcgb3B0aW9ucwogIwogQ09ORklHX1BBQ0tFVD15Ci0jIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfUEFDS0VUX01NQVA9eQogQ09ORklHX1VOSVg9eQogQ09ORklHX1hGUk09eQotIyBDT05GSUdfWEZSTV9VU0VSIGlzIG5vdCBzZXQKK0NPTkZJR19YRlJNX1VTRVI9eQogIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CiBDT05GSUdfSU5FVD15CiBDT05GSUdfSVBfTVVMVElDQVNUPXkKLSMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSPXkKK0NPTkZJR19BU0tfSVBfRklCX0hBU0g9eQorIyBDT05GSUdfSVBfRklCX1RSSUUgaXMgbm90IHNldAogQ09ORklHX0lQX0ZJQl9IQVNIPXkKLUNPTkZJR19JUF9QTlA9eQotQ09ORklHX0lQX1BOUF9ESENQPXkKLSMgQ09ORklHX0lQX1BOUF9CT09UUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfTVVMVElQTEVfVEFCTEVTPXkKK0NPTkZJR19JUF9ST1VURV9NVUxUSVBBVEg9eQorQ09ORklHX0lQX1JPVVRFX1ZFUkJPU0U9eQorIyBDT05GSUdfSVBfUE5QIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorQ09ORklHX0lQX01ST1VURT15CitDT05GSUdfSVBfUElNU01fVjE9eQorQ09ORklHX0lQX1BJTVNNX1YyPXkKICMgQ09ORklHX0FSUEQgaXMgbm90IHNldAotIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorQ09ORklHX1NZTl9DT09LSUVTPXkKICMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CiBDT05GSUdfSU5FVF9UVU5ORUw9eQotQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15Ci1DT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0Ci1DT05GSUdfSU5FVF9ESUFHPXkKLUNPTkZJR19JTkVUX1RDUF9ESUFHPXkKLSMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX0xSTz15CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEPXkKKyMgQ09ORklHX1RDUF9DT05HX0JJQyBpcyBub3Qgc2V0CiBDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorIyBDT05GSUdfVENQX0NPTkdfV0VTVFdPT0QgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfSFRDUCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19IU1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19IWUJMQSBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19WRUdBUyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19TQ0FMQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19MUCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19WRU5PIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX1lFQUggaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfSUxMSU5PSVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9CSUMgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQ1VCSUM9eQorIyBDT05GSUdfREVGQVVMVF9IVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfVkVHQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9XRVNUV09PRCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX1JFTk8gaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgotIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CitDT05GSUdfVENQX01ENVNJRz15CisjIENPTkZJR19JUF9WUyBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNj15CiAjIENPTkZJR19JUFY2X1BSSVZBQ1kgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9ST1VURVJfUFJFRiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X09QVElNSVNUSUNfREFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X0FIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X0VTUCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVDZfQUg9eQorQ09ORklHX0lORVQ2X0VTUD15CiAjIENPTkZJR19JTkVUNl9JUENPTVAgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NSVA2IGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RSQU5TUE9SVD15CiBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RVTk5FTD15Ci0jIENPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9eQogIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1JPVVRFT1BUSU1JWkFUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19JUFY2X1NJVD15CitDT05GSUdfSVBWNl9ORElTQ19OT0RFVFlQRT15CiAjIENPTkZJR19JUFY2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAotIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjZfTVJPVVRFIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRMQUJFTD15CitDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKK0NPTkZJR19ORVRGSUxURVI9eQorIyBDT05GSUdfTkVURklMVEVSX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUl9BRFZBTkNFRCBpcyBub3Qgc2V0CisKKyMKKyMgQ29yZSBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgorIworQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LPXkKK0NPTkZJR19ORVRGSUxURVJfTkVUTElOS19MT0c9eQorQ09ORklHX05GX0NPTk5UUkFDSz15CitDT05GSUdfTkZfQ09OTlRSQUNLX1NFQ01BUks9eQorQ09ORklHX05GX0NPTk5UUkFDS19GVFA9eQorQ09ORklHX05GX0NPTk5UUkFDS19JUkM9eQorQ09ORklHX05GX0NPTk5UUkFDS19TSVA9eQorQ09ORklHX05GX0NUX05FVExJTks9eQorQ09ORklHX05FVEZJTFRFUl9YVEFCTEVTPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX01BUks9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTkZMT0c9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfU0VDTUFSSz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9DT05OU0VDTUFSSz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9UQ1BNU1M9eQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT05OVFJBQ0s9eQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9NQVJLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUE9MSUNZPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfU1RBVEU9eQorCisjCisjIElQOiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgorIworQ09ORklHX05GX0NPTk5UUkFDS19JUFY0PXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfUFJPQ19DT01QQVQ9eQorQ09ORklHX0lQX05GX0lQVEFCTEVTPXkKK0NPTkZJR19JUF9ORl9GSUxURVI9eQorQ09ORklHX0lQX05GX1RBUkdFVF9SRUpFQ1Q9eQorQ09ORklHX0lQX05GX1RBUkdFVF9MT0c9eQorQ09ORklHX0lQX05GX1RBUkdFVF9VTE9HPXkKK0NPTkZJR19ORl9OQVQ9eQorQ09ORklHX05GX05BVF9ORUVERUQ9eQorQ09ORklHX0lQX05GX1RBUkdFVF9NQVNRVUVSQURFPXkKK0NPTkZJR19ORl9OQVRfRlRQPXkKK0NPTkZJR19ORl9OQVRfSVJDPXkKKyMgQ09ORklHX05GX05BVF9URlRQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GX05BVF9BTUFOREEgaXMgbm90IHNldAorIyBDT05GSUdfTkZfTkFUX1BQVFAgaXMgbm90IHNldAorIyBDT05GSUdfTkZfTkFUX0gzMjMgaXMgbm90IHNldAorQ09ORklHX05GX05BVF9TSVA9eQorQ09ORklHX0lQX05GX01BTkdMRT15CisKKyMKKyMgSVB2NjogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19ORl9DT05OVFJBQ0tfSVBWNj15CitDT05GSUdfSVA2X05GX0lQVEFCTEVTPXkKK0NPTkZJR19JUDZfTkZfTUFUQ0hfSVBWNkhFQURFUj15CitDT05GSUdfSVA2X05GX0ZJTFRFUj15CitDT05GSUdfSVA2X05GX1RBUkdFVF9MT0c9eQorQ09ORklHX0lQNl9ORl9UQVJHRVRfUkVKRUNUPXkKK0NPTkZJR19JUDZfTkZfTUFOR0xFPXkKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAogIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CiAjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKQEAgLTQwOSw2ICs2MDEsNyBAQAogIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAogIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKK0NPTkZJR19MTEM9eQogIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFggaXMgbm90IHNldAogIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldApAQCAtNDE2LDI4ICs2MDksOTkgQEAKICMgQ09ORklHX0xBUEIgaXMgbm90IHNldAogIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX05FVF9TQ0hFRD15CiAKICMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCisjIFF1ZXVlaW5nL1NjaGVkdWxpbmcKICMKLSMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0NCUSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0hUQiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0hGU0MgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9QUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfUlIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9SRUQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9TRlEgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9URVFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfVEJGIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfR1JFRCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0RTTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX05FVEVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfSU5HUkVTUyBpcyBub3Qgc2V0CisKKyMKKyMgQ2xhc3NpZmljYXRpb24KKyMKK0NPTkZJR19ORVRfQ0xTPXkKKyMgQ09ORklHX05FVF9DTFNfQkFTSUMgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19UQ0lOREVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfUk9VVEU0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfRlcgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19VMzIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19SU1ZQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfUlNWUDYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19GTE9XIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRU1BVENIPXkKK0NPTkZJR19ORVRfRU1BVENIX1NUQUNLPTMyCisjIENPTkZJR19ORVRfRU1BVENIX0NNUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfRU1BVENIX05CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9FTUFUQ0hfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9FTUFUQ0hfTUVUQSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfRU1BVENIX1RFWFQgaXMgbm90IHNldAorQ09ORklHX05FVF9DTFNfQUNUPXkKKyMgQ09ORklHX05FVF9BQ1RfUE9MSUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfR0FDVCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX01JUlJFRCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX0lQVCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX05BVCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX1BFRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfU0lNUCBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1NDSF9GSUZPPXkKIAogIwogIyBOZXR3b3JrIHRlc3RpbmcKICMKICMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1RDUFBST0JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKK0NPTkZJR19IQU1SQURJTz15CisKKyMKKyMgUGFja2V0IFJhZGlvIHByb3RvY29scworIworIyBDT05GSUdfQVgyNSBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAogIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CVCBpcyBub3Qgc2V0CiAjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CitDT05GSUdfRklCX1JVTEVTPXkKIAogIwogIyBXaXJlbGVzcwogIwotIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAotIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKLSMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19DRkc4MDIxMT15CitDT05GSUdfTkw4MDIxMT15CitDT05GSUdfV0lSRUxFU1NfRVhUPXkKK0NPTkZJR19NQUM4MDIxMT15CisKKyMKKyMgUmF0ZSBjb250cm9sIGFsZ29yaXRobSBzZWxlY3Rpb24KKyMKK0NPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUX1BJRD15CisjIENPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUX05PTkUgaXMgbm90IHNldAorCisjCisjIFNlbGVjdGluZyAneScgZm9yIGFuIGFsZ29yaXRobSB3aWxsCisjCisKKyMKKyMgYnVpbGQgdGhlIGFsZ29yaXRobSBpbnRvIG1hYzgwMjExLgorIworQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFQ9InBpZCIKK0NPTkZJR19NQUM4MDIxMV9SQ19QSUQ9eQorIyBDT05GSUdfTUFDODAyMTFfTUVTSCBpcyBub3Qgc2V0CitDT05GSUdfTUFDODAyMTFfTEVEUz15CisjIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExX0RFQlVHX1BBQ0tFVF9BTElHTk1FTlQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTFfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldApAQCAtNDQ5LDEzICs3MTMsMTUgQEAKICMKICMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwogIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKIENPTkZJR19TVEFOREFMT05FPXkKIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKIENPTkZJR19GV19MT0FERVI9eQogIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfREVWUkVTPXkKICMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfQ09OTkVDVE9SPXkKK0NPTkZJR19QUk9DX0VWRU5UUz15CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfUE5QPXkKQEAgLTQ2Niw3ICs3MzIsNyBAQAogIwogQ09ORklHX1BOUEFDUEk9eQogQ09ORklHX0JMS19ERVY9eQotQ09ORklHX0JMS19ERVZfRkQ9eQorIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfQ1BRX0RBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19DUFFfQ0lTU19EQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0RBQzk2MCBpcyBub3Qgc2V0CkBAIC00NzksOCArNzQ1LDggQEAKICMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfUkFNPXkKIENPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgotQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9NDA5NgotQ09ORklHX0JMS19ERVZfUkFNX0JMT0NLU0laRT0xMDI0CitDT05GSUdfQkxLX0RFVl9SQU1fU0laRT0xNjM4NAorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAogQ09ORklHX01JU0NfREVWSUNFUz15CkBAIC00ODksNzMgKzc1NSwxNyBAQAogIyBDT05GSUdfRUVQUk9NXzkzQ1g2IGlzIG5vdCBzZXQKICMgQ09ORklHX1NHSV9JT0M0IGlzIG5vdCBzZXQKICMgQ09ORklHX1RJRk1fQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0VSX1dNSSBpcyBub3Qgc2V0CisjIENPTkZJR19BU1VTX0xBUFRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19GVUpJVFNVX0xBUFRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19UQzExMDBfV01JIGlzIG5vdCBzZXQKKyMgQ09ORklHX01TSV9MQVBUT1AgaXMgbm90IHNldAogIyBDT05GSUdfU09OWV9MQVBUT1AgaXMgbm90IHNldAogIyBDT05GSUdfVEhJTktQQURfQUNQSSBpcyBub3Qgc2V0Ci1DT05GSUdfSURFPXkKLUNPTkZJR19CTEtfREVWX0lERT15Ci0KLSMKLSMgUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL2lkZS50eHQgZm9yIGhlbHAvaW5mbyBvbiBJREUgZHJpdmVzCi0jCi0jIENPTkZJR19CTEtfREVWX0lERV9TQVRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSERfSURFIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERURJU0s9eQotQ09ORklHX0lERURJU0tfTVVMVElfTU9ERT15Ci1DT05GSUdfQkxLX0RFVl9JREVDRD15Ci0jIENPTkZJR19CTEtfREVWX0lERVRBUEUgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVGTE9QUFkgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVTQ1NJIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERUFDUEk9eQotIyBDT05GSUdfSURFX1RBU0tfSU9DVEwgaXMgbm90IHNldAotQ09ORklHX0lERV9QUk9DX0ZTPXkKLQotIwotIyBJREUgY2hpcHNldCBzdXBwb3J0L2J1Z2ZpeGVzCi0jCi1DT05GSUdfSURFX0dFTkVSSUM9eQotIyBDT05GSUdfQkxLX0RFVl9DTUQ2NDAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVQTlAgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFUENJPXkKLSMgQ09ORklHX0lERVBDSV9TSEFSRV9JUlEgaXMgbm90IHNldAotQ09ORklHX0lERVBDSV9QQ0lCVVNfT1JERVI9eQotIyBDT05GSUdfQkxLX0RFVl9PRkZCT0FSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0dFTkVSSUMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9PUFRJNjIxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfUloxMDAwIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERURNQV9QQ0k9eQotIyBDT05GSUdfQkxLX0RFVl9JREVETUFfRk9SQ0VEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERURNQV9PTkxZRElTSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0FFQzYyWFggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9BTEkxNVgzIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0FNRDc0WFg9eQotIyBDT05GSUdfQkxLX0RFVl9BVElJWFAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DTUQ2NFggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9UUklGTEVYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQ1k4MkM2OTMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DUzU1MjAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DUzU1MzAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DUzU1MzUgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9IUFQzNFggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9IUFQzNjYgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9KTUlDUk9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU0MxMjAwIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX1BJSVg9eQotIyBDT05GSUdfQkxLX0RFVl9JVDgyMTMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JVDgyMVggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9OUzg3NDE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfUERDMjAyWFhfT0xEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfUERDMjAyWFhfTkVXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU1ZXS1MgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TSUlNQUdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU0lTNTUxMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NMQzkwRTY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVFJNMjkwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVklBODJDWFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAotIyBDT05GSUdfSURFX0FSTSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVETUE9eQotIyBDT05GSUdfSURFRE1BX0lWQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOVEVMX01FTkxPVyBpcyBub3Qgc2V0CisjIENPTkZJR19FTkNMT1NVUkVfU0VSVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKKyMgQ09ORklHX0lERSBpcyBub3Qgc2V0CiAKICMKICMgU0NTSSBkZXZpY2Ugc3VwcG9ydApAQCAtNTY0LDggKzc3NCw4IEBACiBDT05GSUdfU0NTST15CiBDT05GSUdfU0NTSV9ETUE9eQogIyBDT05GSUdfU0NTSV9UR1QgaXMgbm90IHNldAotQ09ORklHX1NDU0lfTkVUTElOSz15Ci0jIENPTkZJR19TQ1NJX1BST0NfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1BST0NfRlM9eQogCiAjCiAjIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCkBAIC01NzQsNyArNzg0LDcgQEAKICMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAogIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX1NSPXkKLSMgQ09ORklHX0JMS19ERVZfU1JfVkVORE9SIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX1NSX1ZFTkRPUj15CiBDT05GSUdfQ0hSX0RFVl9TRz15CiAjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CiAKQEAgLTU4Miw3ICs3OTIsNyBAQAogIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKICMKICMgQ09ORklHX1NDU0lfTVVMVElfTFVOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0NPTlNUQU5UUz15CiAjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKIENPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCkBAIC01OTEsODEgKzgwMSwzNyBAQAogIyBTQ1NJIFRyYW5zcG9ydHMKICMKIENPTkZJR19TQ1NJX1NQSV9BVFRSUz15Ci1DT05GSUdfU0NTSV9GQ19BVFRSUz15CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TQVNfQVRUUlMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKLQotIwotIyBTQ1NJIGxvdy1sZXZlbCBkcml2ZXJzCi0jCi0jIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEPXkKLSMgQ09ORklHX1NDU0lfM1dfOVhYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FDQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUFDUkFJRCBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTSV9BSUM3WFhYPXkKLUNPTkZJR19BSUM3WFhYX0NNRFNfUEVSX0RFVklDRT0zMgotQ09ORklHX0FJQzdYWFhfUkVTRVRfREVMQVlfTVM9NTAwMAotQ09ORklHX0FJQzdYWFhfREVCVUdfRU5BQkxFPXkKLUNPTkZJR19BSUM3WFhYX0RFQlVHX01BU0s9MAotQ09ORklHX0FJQzdYWFhfUkVHX1BSRVRUWV9QUklOVD15Ci0jIENPTkZJR19TQ1NJX0FJQzdYWFhfT0xEIGlzIG5vdCBzZXQKLUNPTkZJR19TQ1NJX0FJQzc5WFg9eQotQ09ORklHX0FJQzc5WFhfQ01EU19QRVJfREVWSUNFPTMyCi1DT05GSUdfQUlDNzlYWF9SRVNFVF9ERUxBWV9NUz00MDAwCi0jIENPTkZJR19BSUM3OVhYX0RFQlVHX0VOQUJMRSBpcyBub3Qgc2V0Ci1DT05GSUdfQUlDNzlYWF9ERUJVR19NQVNLPTAKLSMgQ09ORklHX0FJQzc5WFhfUkVHX1BSRVRUWV9QUklOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FJQzk0WFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9EUFRfSTJPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQURWQU5TWVMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BUkNNU1IgaXMgbm90IHNldAotIyBDT05GSUdfTUVHQVJBSURfTkVXR0VOIGlzIG5vdCBzZXQKLSMgQ09ORklHX01FR0FSQUlEX0xFR0FDWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRUdBUkFJRF9TQVMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9IUFRJT1AgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9CVVNMT0dJQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RNWDMxOTFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRUFUQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9HRFRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSU5JVElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSU5JQTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NURVggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TWU01M0M4WFhfMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lQUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMT0dJQ18xMjgwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfUUxBX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfUUxBX0lTQ1NJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfTFBGQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RDMzk1eCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RDMzkwVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX05TUDMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT1dMRVZFTCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPV0xFVkVMX1BDTUNJQSBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBX0FDUEk9eQorQ09ORklHX1NBVEFfUE1QPXkKIENPTkZJR19TQVRBX0FIQ0k9eQotQ09ORklHX1NBVEFfU1ZXPXkKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAogQ09ORklHX0FUQV9QSUlYPXkKICMgQ09ORklHX1NBVEFfTVYgaXMgbm90IHNldAotQ09ORklHX1NBVEFfTlY9eQorIyBDT05GSUdfU0FUQV9OViBpcyBub3Qgc2V0CiAjIENPTkZJR19QRENfQURNQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1FTVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0Ci1DT05GSUdfU0FUQV9TSUw9eQotIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0Ci1DT05GSUdfU0FUQV9WSUE9eQorIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BQ1BJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKK0NPTkZJR19QQVRBX0FNRD15CiAjIENPTkZJR19QQVRBX0FSVE9QIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQVRJSVhQIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQ01ENjQwX1BDSSBpcyBub3Qgc2V0CkBAIC02NzMsNiArODM5LDcgQEAKICMgQ09ORklHX1BBVEFfQ1M1NTIwIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQ1M1NTMwIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQ1M1NTM1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTM2IGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQ1lQUkVTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0VGQVIgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX0dFTkVSSUMgaXMgbm90IHNldApAQCAtNjg2LDExICs4NTMsMTQgQEAKICMgQ09ORklHX1BBVEFfVFJJRkxFWCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX01BUlZFTEwgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9NUElJWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19QQVRBX09MRFBJSVggaXMgbm90IHNldAorQ09ORklHX1BBVEFfT0xEUElJWD15CiAjIENPTkZJR19QQVRBX05FVENFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OSU5KQTMyIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfTlM4NzQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTUgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9PUFRJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfT1BUSURNQSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BDTUNJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BEQ19PTEQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9SQURJU1lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUloxMDAwIGlzIG5vdCBzZXQKQEAgLTcwMiw2NSArODcyLDQyIEBACiAjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAogQ09ORklHX01EPXkKLSMgQ09ORklHX0JMS19ERVZfTUQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfTUQ9eQorIyBDT05GSUdfTURfTElORUFSIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX1JBSUQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX1JBSUQxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX1JBSUQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9SQUlENDU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX01VTFRJUEFUSCBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9GQVVMVFkgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfRE09eQogIyBDT05GSUdfRE1fREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfRE1fQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfRE1fU05BUFNIT1QgaXMgbm90IHNldAotIyBDT05GSUdfRE1fTUlSUk9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RNX1pFUk8gaXMgbm90IHNldAorQ09ORklHX0RNX01JUlJPUj15CitDT05GSUdfRE1fWkVSTz15CiAjIENPTkZJR19ETV9NVUxUSVBBVEggaXMgbm90IHNldAogIyBDT05GSUdfRE1fREVMQVkgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKLUNPTkZJR19GVVNJT049eQotQ09ORklHX0ZVU0lPTl9TUEk9eQotIyBDT05GSUdfRlVTSU9OX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9TQVMgaXMgbm90IHNldAotQ09ORklHX0ZVU0lPTl9NQVhfU0dFPTEyOAotIyBDT05GSUdfRlVTSU9OX0NUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ETV9VRVZFTlQgaXMgbm90IHNldAorIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIAogIwogIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0CiAjCiAjIENPTkZJR19GSVJFV0lSRSBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTEzOTQ9eQotCi0jCi0jIFN1YnN5c3RlbSBPcHRpb25zCi0jCi0jIENPTkZJR19JRUVFMTM5NF9WRVJCT1NFREVCVUcgaXMgbm90IHNldAotCi0jCi0jIENvbnRyb2xsZXJzCi0jCi0KLSMKLSMgVGV4YXMgSW5zdHJ1bWVudHMgUENJTHlueCByZXF1aXJlcyBJMkMKLSMKLUNPTkZJR19JRUVFMTM5NF9PSENJMTM5ND15Ci0KLSMKLSMgUHJvdG9jb2xzCi0jCi0jIENPTkZJR19JRUVFMTM5NF9WSURFTzEzOTQgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTEzOTRfU0JQMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFMTM5NF9FVEgxMzk0X1JPTV9FTlRSWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFMTM5NF9FVEgxMzk0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0X0RWMTM5NCBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTEzOTRfUkFXSU89eQorIyBDT05GSUdfSUVFRTEzOTQgaXMgbm90IHNldAogIyBDT05GSUdfSTJPIGlzIG5vdCBzZXQKIENPTkZJR19NQUNJTlRPU0hfRFJJVkVSUz15Ci0jIENPTkZJR19NQUNfRU1VTU9VU0VCVE4gaXMgbm90IHNldAorQ09ORklHX01BQ19FTVVNT1VTRUJUTj15CiBDT05GSUdfTkVUREVWSUNFUz15Ci1DT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19JRkIgaXMgbm90IHNldAogIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAogIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKICMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfU0IxMDAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldApAQCAtNzcwLDM4ICs5MTcsNDAgQEAKICMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CiAjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfVkVORE9SXzNDT009eQotQ09ORklHX1ZPUlRFWD15CisjIENPTkZJR19WT1JURVggaXMgbm90IHNldAogIyBDT05GSUdfVFlQSE9PTiBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1RVTElQPXkKICMgQ09ORklHX0RFMjEwNFggaXMgbm90IHNldAotQ09ORklHX1RVTElQPXkKLSMgQ09ORklHX1RVTElQX01XSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UVUxJUF9NTUlPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RVTElQX05BUEkgaXMgbm90IHNldAorIyBDT05GSUdfVFVMSVAgaXMgbm90IHNldAogIyBDT05GSUdfREU0WDUgaXMgbm90IHNldAogIyBDT05GSUdfV0lOQk9ORF84NDAgaXMgbm90IHNldAogIyBDT05GSUdfRE05MTAyIGlzIG5vdCBzZXQKICMgQ09ORklHX1VMSTUyNlggaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1hJUkNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19IUDEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAogQ09ORklHX05FVF9QQ0k9eQogIyBDT05GSUdfUENORVQzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19BTUQ4MTExX0VUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19BREFQVEVDX1NUQVJGSVJFIGlzIG5vdCBzZXQKLUNPTkZJR19CNDQ9eQorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKIENPTkZJR19GT1JDRURFVEg9eQogIyBDT05GSUdfRk9SQ0VERVRIX05BUEkgaXMgbm90IHNldAotIyBDT05GSUdfREdSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19FRVBSTzEwMCBpcyBub3Qgc2V0CiBDT05GSUdfRTEwMD15CiAjIENPTkZJR19GRUFMTlggaXMgbm90IHNldAogIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0Ci1DT05GSUdfODEzOUNQPXkKKyMgQ09ORklHXzgxMzlDUCBpcyBub3Qgc2V0CiBDT05GSUdfODEzOVRPTz15Ci0jIENPTkZJR184MTM5VE9PX1BJTyBpcyBub3Qgc2V0CitDT05GSUdfODEzOVRPT19QSU89eQogIyBDT05GSUdfODEzOVRPT19UVU5FX1RXSVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfODEzOVRPT184MTI5IGlzIG5vdCBzZXQKICMgQ09ORklHXzgxMzlfT0xEX1JYX1JFU0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1I2MDQwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJUzkwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19FUElDMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NVTkRBTkNFIGlzIG5vdCBzZXQKQEAgLTgxNCwzNCArOTYzLDc1IEBACiBDT05GSUdfRTEwMDA9eQogIyBDT05GSUdfRTEwMDBfTkFQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19FMTAwMF9ESVNBQkxFX1BBQ0tFVF9TUExJVCBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEUgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorIyBDT05GSUdfSVAxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lHQiBpcyBub3Qgc2V0CiAjIENPTkZJR19OUzgzODIwIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAogIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKLUNPTkZJR19SODE2OT15Ci0jIENPTkZJR19SODE2OV9OQVBJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1I4MTY5IGlzIG5vdCBzZXQKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKIENPTkZJR19TS1kyPXkKKyMgQ09ORklHX1NLWTJfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKIENPTkZJR19USUdPTjM9eQotQ09ORklHX0JOWDI9eQorIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CiAjIENPTkZJR19RTEEzWFhYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUTDEgaXMgbm90IHNldAogQ09ORklHX05FVERFVl8xMDAwMD15CiAjIENPTkZJR19DSEVMU0lPX1QxIGlzIG5vdCBzZXQKICMgQ09ORklHX0NIRUxTSU9fVDMgaXMgbm90IHNldAorIyBDT05GSUdfSVhHQkUgaXMgbm90IHNldAogIyBDT05GSUdfSVhHQiBpcyBub3Qgc2V0CiAjIENPTkZJR19TMklPIGlzIG5vdCBzZXQKICMgQ09ORklHX01ZUkkxMEdFIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFhFTl9OSUMgaXMgbm90IHNldAorIyBDT05GSUdfTklVIGlzIG5vdCBzZXQKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUiBpcyBub3Qgc2V0CisjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAorIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKK0NPTkZJR19UUj15CisjIENPTkZJR19JQk1PTCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1MUyBpcyBub3Qgc2V0CisjIENPTkZJR18zQzM1OSBpcyBub3Qgc2V0CisjIENPTkZJR19UTVMzODBUUiBpcyBub3Qgc2V0CiAKICMKICMgV2lyZWxlc3MgTEFOCiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorQ09ORklHX1dMQU5fODAyMTE9eQorIyBDT05GSUdfUENNQ0lBX1JBWUNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVzIxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSVBXMjIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJFUlRBUyBpcyBub3Qgc2V0CisjIENPTkZJR19BSVJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFUk1FUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE1FTCBpcyBub3Qgc2V0CisjIENPTkZJR19BSVJPX0NTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9XTDM1MDEgaXMgbm90IHNldAorIyBDT05GSUdfUFJJU001NCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfWkQxMjAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9ORVRfUk5ESVNfV0xBTiBpcyBub3Qgc2V0CisjIENPTkZJR19SVEw4MTgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUTDgxODcgaXMgbm90IHNldAorIyBDT05GSUdfQURNODIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19QNTRfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19BVEg1Sz15CisjIENPTkZJR19BVEg1S19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTENPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTDQ5NjUgaXMgbm90IHNldAorIyBDT05GSUdfSVdMMzk0NSBpcyBub3Qgc2V0CisjIENPTkZJR19IT1NUQVAgaXMgbm90IHNldAorIyBDT05GSUdfQjQzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0M0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19aRDEyMTFSVyBpcyBub3Qgc2V0CisjIENPTkZJR19SVDJYMDAgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC04NTAsMTYgKzEwNDAsMjcgQEAKICMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1VTQk5FVF9NSUkgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1BDTUNJQT15CisjIENPTkZJR19QQ01DSUFfM0M1ODkgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBXzNDNTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9GTVZKMThYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9QQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfTk1DTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9TTUM5MUM5MiBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfWElSQzJQUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfQVhORVQgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX0lCTVRSIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GRERJIGlzIG5vdCBzZXQKK0NPTkZJR19GRERJPXkKKyMgQ09ORklHX0RFRlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLRlAgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CiBDT05GSUdfTkVUQ09OU09MRT15CisjIENPTkZJR19ORVRDT05TT0xFX0RZTkFNSUMgaXMgbm90IHNldAogQ09ORklHX05FVFBPTEw9eQogIyBDT05GSUdfTkVUUE9MTF9UUkFQIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSPXkKQEAgLTg3MCwxOCArMTA3MSwxNyBAQAogIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAogIwogQ09ORklHX0lOUFVUPXkKLSMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRkZfTUVNTEVTUz15CitDT05GSUdfSU5QVVRfUE9MTERFVj15CiAKICMKICMgVXNlcmxhbmQgaW50ZXJmYWNlcwogIwogQ09ORklHX0lOUFVUX01PVVNFREVWPXkKLUNPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWD15CisjIENPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWCBpcyBub3Qgc2V0CiBDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAogQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKIENPTkZJR19JTlBVVF9FVkRFVj15CiAjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CiAKQEAgLTkwNiwxNyArMTEwNiw2MyBAQAogIyBDT05GSUdfTU9VU0VfU0VSSUFMIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX0FQUExFVE9VQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTU9VU0VfVlNYWFhBQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfSk9ZU1RJQ0s9eQorIyBDT05GSUdfSk9ZU1RJQ0tfQU5BTE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0EzRCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19BREkgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfQ09CUkEgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfR0YySyBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19HUklQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0dSSVBfTVAgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfR1VJTExFTU9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0lOVEVSQUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1NJREVXSU5ERVIgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfVE1EQyBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19JRk9SQ0UgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19NQUdFTExBTiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19TUEFDRU9SQiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19TUEFDRUJBTEwgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfU1RJTkdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19UV0lESk9ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1pIRU5IVUEgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfSk9ZRFVNUCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19YUEFEIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9UQUJMRVQ9eQorIyBDT05GSUdfVEFCTEVUX1VTQl9BQ0VDQUQgaXMgbm90IHNldAorIyBDT05GSUdfVEFCTEVUX1VTQl9BSVBURUsgaXMgbm90IHNldAorIyBDT05GSUdfVEFCTEVUX1VTQl9HVENPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBQkxFVF9VU0JfS0JUQUIgaXMgbm90IHNldAorIyBDT05GSUdfVEFCTEVUX1VTQl9XQUNPTSBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRlVKSVRTVSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9HVU5aRSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9FTE8gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01LNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1BFTk1PVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU4gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9VU0JfQ09NUE9TSVRFIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9NSVNDPXkKKyMgQ09ORklHX0lOUFVUX1BDU1BLUiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9BUEFORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfV0lTVFJPTl9CVE5TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FUTEFTX0JUTlMgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfQVRJX1JFTU9URSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9BVElfUkVNT1RFMiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9LRVlTUEFOX1JFTU9URSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT1dFUk1BVEUgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfWUVBTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9VSU5QVVQgaXMgbm90IHNldAogCiAjCiAjIEhhcmR3YXJlIEkvTyBwb3J0cwogIwogQ09ORklHX1NFUklPPXkKIENPTkZJR19TRVJJT19JODA0Mj15Ci0jIENPTkZJR19TRVJJT19TRVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJT19TRVJQT1JUPXkKICMgQ09ORklHX1NFUklPX0NUODJDNzEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFUklPX1BDSVBTMiBpcyBub3Qgc2V0CiBDT05GSUdfU0VSSU9fTElCUFMyPXkKQEAgLTkyOSw4ICsxMTc1LDI2IEBACiBDT05GSUdfVlQ9eQogQ09ORklHX1ZUX0NPTlNPTEU9eQogQ09ORklHX0hXX0NPTlNPTEU9eQotIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKK0NPTkZJR19ERVZLTUVNPXkKK0NPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQ9eQorIyBDT05GSUdfQ09NUFVUT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPQ0tFVFBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1lDTEFERVMgaXMgbm90IHNldAorIyBDT05GSUdfRElHSUVQQ0EgaXMgbm90IHNldAorIyBDT05GSUdfTU9YQV9JTlRFTExJTyBpcyBub3Qgc2V0CisjIENPTkZJR19NT1hBX1NNQVJUSU8gaXMgbm90IHNldAorIyBDT05GSUdfSVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTkNMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTkNMSU5LTVAgaXMgbm90IHNldAorIyBDT05GSUdfU1lOQ0xJTktfR1QgaXMgbm90IHNldAorIyBDT05GSUdfTl9IRExDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JJU0NPTTggaXMgbm90IHNldAorIyBDT05GSUdfU1BFQ0lBTElYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TVEFMRFJWIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKICMKICMgU2VyaWFsIGRyaXZlcnMKQEAgLTk0MCw5ICsxMjA0LDE0IEBACiBDT05GSUdfRklYX0VBUkxZQ09OX01FTT15CiBDT05GSUdfU0VSSUFMXzgyNTBfUENJPXkKIENPTkZJR19TRVJJQUxfODI1MF9QTlA9eQotQ09ORklHX1NFUklBTF84MjUwX05SX1VBUlRTPTQKKyMgQ09ORklHX1NFUklBTF84MjUwX0NTIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz0zMgogQ09ORklHX1NFUklBTF84MjUwX1JVTlRJTUVfVUFSVFM9NAotIyBDT05GSUdfU0VSSUFMXzgyNTBfRVhURU5ERUQgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX0VYVEVOREVEPXkKK0NPTkZJR19TRVJJQUxfODI1MF9NQU5ZX1BPUlRTPXkKK0NPTkZJR19TRVJJQUxfODI1MF9TSEFSRV9JUlE9eQorQ09ORklHX1NFUklBTF84MjUwX0RFVEVDVF9JUlE9eQorQ09ORklHX1NFUklBTF84MjUwX1JTQT15CiAKICMKICMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydApAQCAtOTUxLDIwICsxMjIwLDE2OCBAQAogQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQogIyBDT05GSUdfU0VSSUFMX0pTTSBpcyBub3Qgc2V0CiBDT05GSUdfVU5JWDk4X1BUWVM9eQotQ09ORklHX0xFR0FDWV9QVFlTPXkKLUNPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgorIyBDT05GSUdfTEVHQUNZX1BUWVMgaXMgbm90IHNldAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKIENPTkZJR19IV19SQU5ET009eQotQ09ORklHX0hXX1JBTkRPTV9JTlRFTD15Ci1DT05GSUdfSFdfUkFORE9NX0FNRD15CisjIENPTkZJR19IV19SQU5ET01fSU5URUwgaXMgbm90IHNldAorIyBDT05GSUdfSFdfUkFORE9NX0FNRCBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NX0dFT0RFPXkKIENPTkZJR19IV19SQU5ET01fVklBPXkKLSMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLUNPTkZJR19SVEM9eQorQ09ORklHX05WUkFNPXkKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1NPTllQSSBpcyBub3Qgc2V0CisKKyMKKyMgUENNQ0lBIGNoYXJhY3RlciBkZXZpY2VzCisjCisjIENPTkZJR19TWU5DTElOS19DUyBpcyBub3Qgc2V0CisjIENPTkZJR19DQVJETUFOXzQwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQ0FSRE1BTl80MDQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQV0lSRUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfTVdBVkUgaXMgbm90IHNldAorIyBDT05GSUdfUEM4NzM2eF9HUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX05TQ19HUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NTNTUzNV9HUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorQ09ORklHX0hQRVQ9eQorIyBDT05GSUdfSFBFVF9SVENfSVJRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRVRfTU1BUCBpcyBub3Qgc2V0CisjIENPTkZJR19IQU5HQ0hFQ0tfVElNRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19URUxDTE9DSyBpcyBub3Qgc2V0CitDT05GSUdfREVWUE9SVD15CitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkKKyMgQ09ORklHX0kyQ19DSEFSREVWIGlzIG5vdCBzZXQKKworIworIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNVgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ3NTYgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDgxMTEgaXMgbm90IHNldAorQ09ORklHX0kyQ19JODAxPXkKKyMgQ09ORklHX0kyQ19JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QSUlYNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfTkZPUkNFMiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfT0NPUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QUk9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NBVkFHRTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ3gyMDBfQUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM1NTk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM2MzAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzk2WCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19XMSBpcyBub3Qgc2V0CitDT05GSUdfUE9XRVJfU1VQUExZPXkKKyMgQ09ORklHX1BPV0VSX1NVUFBMWV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19QREFfUE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfQkFUVEVSWV9EUzI3NjAgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorQ09ORklHX1RIRVJNQUw9eQorQ09ORklHX1dBVENIRE9HPXkKKyMgQ09ORklHX1dBVENIRE9HX05PV0FZT1VUIGlzIG5vdCBzZXQKKworIworIyBXYXRjaGRvZyBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfU09GVF9XQVRDSERPRyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ1FVSVJFX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRFZBTlRFQ0hfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FMSU0xNTM1X1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19BTElNNzEwMV9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfU0M1MjBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VVUk9URUNIX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JQjcwMF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSUJNQVNSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBRkVSX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JNjMwMEVTQl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSVRDT19XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSVQ4NzEyRl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSFBfV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfU0MxMjAwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19QQzg3NDEzX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR182MFhYX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQkM4MzYwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQkM3MjQwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFU1X1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTVNDMzdCNzg3X1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19XODM2MjdIRl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfVzgzNjk3SEZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1c4Mzg3N0ZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1c4Mzk3N0ZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0haX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQkNfRVBYX0MzX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBQQ0ktYmFzZWQgV2F0Y2hkb2cgQ2FyZHMKKyMKKyMgQ09ORklHX1BDSVBDV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfV0RUUENJIGlzIG5vdCBzZXQKKworIworIyBVU0ItYmFzZWQgV2F0Y2hkb2cgQ2FyZHMKKyMKKyMgQ09ORklHX1VTQlBDV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKK0NPTkZJR19EQUI9eQorIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIwogQ09ORklHX0FHUD15CiAjIENPTkZJR19BR1BfQUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FHUF9BVEkgaXMgbm90IHNldApAQCAtOTc2LDY0ICsxMzkzLDEwMiBAQAogIyBDT05GSUdfQUdQX1NXT1JLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BR1BfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0FHUF9FRkZJQ0VPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19EUk0gaXMgbm90IHNldAotIyBDT05GSUdfTVdBVkUgaXMgbm90IHNldAotIyBDT05GSUdfUEM4NzM2eF9HUElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX05TQ19HUElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NTNTUzNV9HUElPIGlzIG5vdCBzZXQKLUNPTkZJR19SQVdfRFJJVkVSPXkKLUNPTkZJR19NQVhfUkFXX0RFVlM9MjU2Ci1DT05GSUdfSFBFVD15Ci0jIENPTkZJR19IUEVUX1JUQ19JUlEgaXMgbm90IHNldAotQ09ORklHX0hQRVRfTU1BUD15Ci0jIENPTkZJR19IQU5HQ0hFQ0tfVElNRVIgaXMgbm90IHNldAotIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19URUxDTE9DSyBpcyBub3Qgc2V0Ci1DT05GSUdfREVWUE9SVD15Ci0jIENPTkZJR19JMkMgaXMgbm90IHNldAorQ09ORklHX0RSTT15CisjIENPTkZJR19EUk1fVERGWCBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fUjEyOCBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fUkFERU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9JODMwIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fSTkxNT15CisjIENPTkZJR19EUk1fTUdBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKK0NPTkZJR19GQj15CisjIENPTkZJR19GSVJNV0FSRV9FRElEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0REQyBpcyBub3Qgc2V0CitDT05GSUdfRkJfQ0ZCX0ZJTExSRUNUPXkKK0NPTkZJR19GQl9DRkJfQ09QWUFSRUE9eQorQ09ORklHX0ZCX0NGQl9JTUFHRUJMSVQ9eQorIyBDT05GSUdfRkJfQ0ZCX1JFVl9QSVhFTFNfSU5fQllURSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRklMTFJFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0NPUFlBUkVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRk9SRUlHTl9FTkRJQU4gaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNldAorQ09ORklHX0ZCX0RFRkVSUkVEX0lPPXkKKyMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9NT0RFX0hFTFBFUlM9eQorQ09ORklHX0ZCX1RJTEVCTElUVElORz15CiAKICMKLSMgU1BJIHN1cHBvcnQKKyMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKICMKLSMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1cxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19IV01PTiBpcyBub3Qgc2V0Ci0KLSMKLSMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwotIwotIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKLQotIwotIyBNdWx0aW1lZGlhIGRldmljZXMKLSMKLSMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0Ci1DT05GSUdfREFCPXkKLSMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAotCi0jCi0jIEdyYXBoaWNzIHN1cHBvcnQKLSMKLSMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DSVJSVVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0yIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NZQkVSMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BUkMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVNJTElBTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfSU1TVFQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVkdBMTYgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVVZFU0EgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVkVTQSBpcyBub3Qgc2V0CitDT05GSUdfRkJfRUZJPXkKKyMgQ09ORklHX0ZCX0lNQUMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTjQxMSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9IR0EgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAorIyBDT05GSUdfRkJfTlZJRElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1JJVkEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfSTgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9MRTgwNTc4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lOVEVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BVFJPWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SQURFT04gaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0tZUk8gaXMgbm90IHNldAorIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZUODYyMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DWUJMQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9UUklERU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfR0VPREUgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CitDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUPXkKKyMgQ09ORklHX0xDRF9DTEFTU19ERVZJQ0UgaXMgbm90IHNldAorQ09ORklHX0JBQ0tMSUdIVF9DTEFTU19ERVZJQ0U9eQorIyBDT05GSUdfQkFDS0xJR0hUX0NPUkdJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9QUk9HRUFSIGlzIG5vdCBzZXQKIAogIwogIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CiAjCiAjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAotIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAotIyBDT05GSUdfRkIgaXMgbm90IHNldAogCiAjCiAjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAogIwogQ09ORklHX1ZHQV9DT05TT0xFPXkKIENPTkZJR19WR0FDT05fU09GVF9TQ1JPTExCQUNLPXkKLUNPTkZJR19WR0FDT05fU09GVF9TQ1JPTExCQUNLX1NJWkU9MTI4CitDT05GSUdfVkdBQ09OX1NPRlRfU0NST0xMQkFDS19TSVpFPTY0CiBDT05GSUdfVklERU9fU0VMRUNUPXkKIENPTkZJR19EVU1NWV9DT05TT0xFPXkKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0xPR089eQorIyBDT05GSUdfTE9HT19MSU5VWF9NT05PIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPR09fTElOVVhfVkdBMTYgaXMgbm90IHNldAorQ09ORklHX0xPR09fTElOVVhfQ0xVVDIyND15CiAKICMKICMgU291bmQKQEAgLTEwNDMsMzMgKzE0OTgsMTY3IEBACiAjCiAjIEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZQogIwotIyBDT05GSUdfU05EIGlzIG5vdCBzZXQKK0NPTkZJR19TTkQ9eQorQ09ORklHX1NORF9USU1FUj15CitDT05GSUdfU05EX1BDTT15CitDT05GSUdfU05EX0hXREVQPXkKK0NPTkZJR19TTkRfU0VRVUVOQ0VSPXkKK0NPTkZJR19TTkRfU0VRX0RVTU1ZPXkKK0NPTkZJR19TTkRfT1NTRU1VTD15CitDT05GSUdfU05EX01JWEVSX09TUz15CitDT05GSUdfU05EX1BDTV9PU1M9eQorQ09ORklHX1NORF9QQ01fT1NTX1BMVUdJTlM9eQorQ09ORklHX1NORF9TRVFVRU5DRVJfT1NTPXkKK0NPTkZJR19TTkRfRFlOQU1JQ19NSU5PUlM9eQorQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQorQ09ORklHX1NORF9WRVJCT1NFX1BST0NGUz15CisjIENPTkZJR19TTkRfVkVSQk9TRV9QUklOVEsgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfVk1BU1RFUj15CisKKyMKKyMgR2VuZXJpYyBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfUENTUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJUk1JREkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01UUEFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NUFU0MDEgaXMgbm90IHNldAorCisjCisjIFBDSSBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfQUQxODg5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BTFMzMDAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FMUzQwMDAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FMSTU0NTEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FUSUlYUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVRJSVhQX01PREVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NNSVBDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfT1hZR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzQyODEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NTNDZYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ1M1NTMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzU1MzVBVURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREFSTEEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfR0lOQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9MQVlMQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9EQVJMQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9HSU5BMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0xBWUxBMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01PTkEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01JQSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRUNITzNHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR08gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lORElHT0lPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR09ESiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU1VMTBLMSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU1VMTBLMVggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VOUzEzNzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VOUzEzNzEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VTMTkzOCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRVMxOTY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9GTTgwMSBpcyBub3Qgc2V0CitDT05GSUdfU05EX0hEQV9JTlRFTD15CitDT05GSUdfU05EX0hEQV9IV0RFUD15CitDT05GSUdfU05EX0hEQV9DT0RFQ19SRUFMVEVLPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0FOQUxPRz15CitDT05GSUdfU05EX0hEQV9DT0RFQ19TSUdNQVRFTD15CitDT05GSUdfU05EX0hEQV9DT0RFQ19WSUE9eQorQ09ORklHX1NORF9IREFfQ09ERUNfQVRJSERNST15CitDT05GSUdfU05EX0hEQV9DT0RFQ19DT05FWEFOVD15CitDT05GSUdfU05EX0hEQV9DT0RFQ19DTUVESUE9eQorQ09ORklHX1NORF9IREFfQ09ERUNfU0kzMDU0PXkKK0NPTkZJR19TTkRfSERBX0dFTkVSSUM9eQorIyBDT05GSUdfU05EX0hEQV9QT1dFUl9TQVZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9IRFNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9IRFNQTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSElGSUVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JQ0UxNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JQ0UxNzI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTlRFTDhYMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5URUw4WDBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9LT1JHMTIxMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTUFFU1RSTzMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01JWEFSVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTk0yNTYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1BDWEhSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9SSVBUSURFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9STUUzMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUk1FOTYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JNRTk2NTIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NJUzcwMTkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPTklDVklCRVMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJQTgyWFggaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJQTgyWFhfTU9ERU0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJUlRVT1NPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WWDIyMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfWU1GUENJIGlzIG5vdCBzZXQKKworIworIyBVU0IgZGV2aWNlcworIworIyBDT05GSUdfU05EX1VTQl9BVURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVVNCX1VTWDJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9VU0JfQ0FJQVEgaXMgbm90IHNldAorCisjCisjIFBDTUNJQSBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfVlhQT0NLRVQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1BEQVVESU9DRiBpcyBub3Qgc2V0CisKKyMKKyMgU3lzdGVtIG9uIENoaXAgYXVkaW8gc3VwcG9ydAorIworIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0CisKKyMKKyMgQUxTQSBTb0MgYXVkaW8gZm9yIEZyZWVzY2FsZSBTT0NzCisjCisKKyMKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAorIwogCiAjCiAjIE9wZW4gU291bmQgU3lzdGVtCiAjCi1DT05GSUdfU09VTkRfUFJJTUU9eQotIyBDT05GSUdfU09VTkRfVFJJREVOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TT1VORF9NU05EQ0xBUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TT1VORF9NU05EUElOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NPVU5EX09TUyBpcyBub3Qgc2V0CisjIENPTkZJR19TT1VORF9QUklNRSBpcyBub3Qgc2V0CiBDT05GSUdfSElEX1NVUFBPUlQ9eQogQ09ORklHX0hJRD15Ci0jIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0hJRF9ERUJVRz15CitDT05GSUdfSElEUkFXPXkKIAogIwogIyBVU0IgSW5wdXQgRGV2aWNlcwogIwogQ09ORklHX1VTQl9ISUQ9eQotIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ISURfRkYgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSz15CitDT05GSUdfSElEX0ZGPXkKK0NPTkZJR19ISURfUElEPXkKK0NPTkZJR19MT0dJVEVDSF9GRj15CisjIENPTkZJR19MT0dJUlVNQkxFUEFEMl9GRiBpcyBub3Qgc2V0CitDT05GSUdfUEFOVEhFUkxPUkRfRkY9eQorQ09ORklHX1RIUlVTVE1BU1RFUl9GRj15CitDT05GSUdfWkVST1BMVVNfRkY9eQorQ09ORklHX1VTQl9ISURERVY9eQogQ09ORklHX1VTQl9TVVBQT1JUPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogQ09ORklHX1VTQj15Ci0jIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9ERUJVRz15CitDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTPXkKIAogIwogIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCkBAIC0xMDc3LDE4ICsxNjY2LDE4IEBACiBDT05GSUdfVVNCX0RFVklDRUZTPXkKICMgQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VTUEVORD15CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQotIyBDT05GSUdfVVNCX0VIQ0lfU1BMSVRfSVNPIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiAjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKQEAgLTExMjEsOCArMTcxMCwxMCBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0xJQlVTVUFMPXkKIAogIwogIyBVU0IgSW1hZ2luZyBkZXZpY2VzCkBAIC0xMTM0LDEwICsxNzI1LDYgQEAKICMKICMgVVNCIHBvcnQgZHJpdmVycwogIwotCi0jCi0jIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKLSMKICMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAogCiAjCkBAIC0xMTYzLDkwICsxNzUwLDEyNSBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAotIwotCi0jCi0jIFVTQiBHYWRnZXQgU3VwcG9ydAotIwogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAotCi0jCi0jIExFRCBkZXZpY2VzCi0jCi0jIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CitDT05GSUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9eQogCiAjCiAjIExFRCBkcml2ZXJzCiAjCisjIENPTkZJR19MRURTX0NMRVZPX01BSUwgaXMgbm90IHNldAogCiAjCiAjIExFRCBUcmlnZ2VycwogIworQ09ORklHX0xFRFNfVFJJR0dFUlM9eQorIyBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQgaXMgbm90IHNldAorIyBDT05GSUdfTEVEU19UUklHR0VSX0RFRkFVTFRfT04gaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VEQUMgaXMgbm90IHNldAorQ09ORklHX0VEQUM9eQogCiAjCi0jIFJlYWwgVGltZSBDbG9jaworIyBSZXBvcnRpbmcgc3Vic3lzdGVtcwogIwotIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VEQUNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfRURBQ19NTV9FREFDIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorIyBDT05GSUdfUlRDX0hDVE9TWVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKIAogIwotIyBETUEgRW5naW5lIHN1cHBvcnQKKyMgUlRDIGludGVyZmFjZXMKICMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAorQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CiAKICMKLSMgRE1BIENsaWVudHMKKyMgSTJDIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1gxMjA1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1ODMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDFUODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TMzUzOTBBIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfQ01PUz15CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworQ09ORklHX0RNQURFVklDRVM9eQogCiAjCiAjIERNQSBEZXZpY2VzCiAjCi1DT05GSUdfVklSVFVBTElaQVRJT049eQotIyBDT05GSUdfS1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOVEVMX0lPQVRETUEgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwotIyBVc2Vyc3BhY2UgSS9PCisjIEZpcm13YXJlIERyaXZlcnMKICMKLSMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisjIENPTkZJR19FREQgaXMgbm90IHNldAorQ09ORklHX0VGSV9WQVJTPXkKKyMgQ09ORklHX0RFTExfUkJVIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RDREJBUyBpcyBub3Qgc2V0CitDT05GSUdfRE1JSUQ9eQorIyBDT05GSUdfSVNDU0lfSUJGVF9GSU5EIGlzIG5vdCBzZXQKIAogIwogIyBGaWxlIHN5c3RlbXMKICMKLUNPTkZJR19FWFQyX0ZTPXkKLUNPTkZJR19FWFQyX0ZTX1hBVFRSPXkKLUNPTkZJR19FWFQyX0ZTX1BPU0lYX0FDTD15Ci0jIENPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VYVDJfRlNfWElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAogQ09ORklHX0VYVDNfRlM9eQogQ09ORklHX0VYVDNfRlNfWEFUVFI9eQogQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMPXkKLSMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlNfU0VDVVJJVFk9eQogIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfSkJEPXkKICMgQ09ORklHX0pCRF9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfTUJDQUNIRT15Ci1DT05GSUdfUkVJU0VSRlNfRlM9eQotIyBDT05GSUdfUkVJU0VSRlNfQ0hFQ0sgaXMgbm90IHNldAotIyBDT05GSUdfUkVJU0VSRlNfUFJPQ19JTkZPIGlzIG5vdCBzZXQKLUNPTkZJR19SRUlTRVJGU19GU19YQVRUUj15Ci1DT05GSUdfUkVJU0VSRlNfRlNfUE9TSVhfQUNMPXkKLSMgQ09ORklHX1JFSVNFUkZTX0ZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKIENPTkZJR19JTk9USUZZX1VTRVI9eQotIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQorQ09ORklHX1FVT1RBPXkKK0NPTkZJR19RVU9UQV9ORVRMSU5LX0lOVEVSRkFDRT15CisjIENPTkZJR19QUklOVF9RVU9UQV9XQVJOSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FGTVRfVjEgaXMgbm90IHNldAorQ09ORklHX1FGTVRfVjI9eQorQ09ORklHX1FVT1RBQ1RMPXkKICMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfQVVUT0ZTNF9GUz15CiAjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKQEAgLTEyNTYsOCArMTg3OCw4IEBACiAjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKICMKIENPTkZJR19JU085NjYwX0ZTPXkKLSMgQ09ORklHX0pPTElFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19aSVNPRlMgaXMgbm90IHNldAorQ09ORklHX0pPTElFVD15CitDT05GSUdfWklTT0ZTPXkKICMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CiAKICMKQEAgLTEyNzUsMTMgKzE4OTcsMTMgQEAKICMKIENPTkZJR19QUk9DX0ZTPXkKIENPTkZJR19QUk9DX0tDT1JFPXkKK0NPTkZJR19QUk9DX1ZNQ09SRT15CiBDT05GSUdfUFJPQ19TWVNDVEw9eQogQ09ORklHX1NZU0ZTPXkKIENPTkZJR19UTVBGUz15CiBDT05GSUdfVE1QRlNfUE9TSVhfQUNMPXkKIENPTkZJR19IVUdFVExCRlM9eQogQ09ORklHX0hVR0VUTEJfUEFHRT15Ci1DT05GSUdfUkFNRlM9eQogIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAogCiAjCkBAIC0xMjg5LDYgKzE5MTEsNyBAQAogIwogIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDUllQVF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKQEAgLTEyOTYsMzMgKzE5MTksMTUgQEAKICMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAogIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBGaWxlIFN5c3RlbXMKLSMKLUNPTkZJR19ORlNfRlM9eQotQ09ORklHX05GU19WMz15Ci0jIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAotQ09ORklHX05GU0Q9eQotQ09ORklHX05GU0RfVjM9eQotIyBDT05GSUdfTkZTRF9WM19BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfTkZTRF9WNCBpcyBub3Qgc2V0Ci1DT05GSUdfTkZTRF9UQ1A9eQotQ09ORklHX1JPT1RfTkZTPXkKLUNPTkZJR19MT0NLRD15Ci1DT05GSUdfTE9DS0RfVjQ9eQotQ09ORklHX0VYUE9SVEZTPXkKLUNPTkZJR19ORlNfQ09NTU9OPXkKLUNPTkZJR19TVU5SUEM9eQotIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAotIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CisjIENPTkZJR19ORlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CiAjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldApAQCAtMTMzMiwxNCArMTkzNywyNiBAQAogIwogIyBQYXJ0aXRpb24gVHlwZXMKICMKLSMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfT1NGX1BBUlRJVElPTj15CitDT05GSUdfQU1JR0FfUEFSVElUSU9OPXkKKyMgQ09ORklHX0FUQVJJX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTUFDX1BBUlRJVElPTj15CiBDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKLQotIwotIyBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAotIworQ09ORklHX0JTRF9ESVNLTEFCRUw9eQorQ09ORklHX01JTklYX1NVQlBBUlRJVElPTj15CitDT05GSUdfU09MQVJJU19YODZfUEFSVElUSU9OPXkKK0NPTkZJR19VTklYV0FSRV9ESVNLTEFCRUw9eQorIyBDT05GSUdfTERNX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfU0dJX1BBUlRJVElPTj15CisjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TVU5fUEFSVElUSU9OPXkKK0NPTkZJR19LQVJNQV9QQVJUSVRJT049eQorQ09ORklHX0VGSV9QQVJUSVRJT049eQorIyBDT05GSUdfU1lTVjY4X1BBUlRJVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfTkxTPXkKLUNPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19ERUZBVUxUPSJ1dGY4IgogQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQogIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKQEAgLTEzNzQsMzcgKzE5OTEsMzMgQEAKICMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAotQ09ORklHX05MU19JU084ODU5XzE1PXkKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CiBDT05GSUdfTkxTX1VURjg9eQotCi0jCi0jIERpc3RyaWJ1dGVkIExvY2sgTWFuYWdlcgotIwogIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKLUNPTkZJR19JTlNUUlVNRU5UQVRJT049eQotQ09ORklHX1BST0ZJTElORz15Ci1DT05GSUdfT1BST0ZJTEU9eQotQ09ORklHX0tQUk9CRVM9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCiAjCiBDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9XQVJOPTIwNDgKIENPTkZJR19NQUdJQ19TWVNSUT15Ci1DT05GSUdfVU5VU0VEX1NZTUJPTFM9eQotIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0ZTPXkKICMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0tFUk5FTD15CiAjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0Ci1DT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorIyBDT05GSUdfREVURUNUX1NPRlRMT0NLVVAgaXMgbm90IHNldAogIyBDT05GSUdfU0NIRURfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CitDT05GSUdfU0NIRURTVEFUUz15CiBDT05GSUdfVElNRVJfU1RBVFM9eQorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldApAQCAtMTQxOSw0OCArMjAzMiwxNzQgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKICMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZSQU1FX1BPSU5URVIgaXMgbm90IHNldAotQ09ORklHX09QVElNSVpFX0lOTElOSU5HPXkKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKICMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfS1BST0JFU19TQU5JVFlfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0xLRFRNIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19MQVRFTkNZVE9QIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9WSURFX09IQ0kxMzk0X0RNQV9JTklUPXkKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfS0dEQiBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9BUkNIX0tHREI9eQorIyBDT05GSUdfTk9OUFJPTUlTQ19ERVZNRU0gaXMgbm90IHNldAogQ09ORklHX0VBUkxZX1BSSU5USz15CiBDT05GSUdfREVCVUdfU1RBQ0tPVkVSRkxPVz15Ci0jIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19ST0RBVEEgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFPXkKKyMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfUFREVU1QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19ST0RBVEE9eQorIyBDT05GSUdfREVCVUdfUk9EQVRBX1RFU1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX05YX1RFU1Q9bQogIyBDT05GSUdfNEtTVEFDS1MgaXMgbm90IHNldAogQ09ORklHX1g4Nl9GSU5EX1NNUF9DT05GSUc9eQogQ09ORklHX1g4Nl9NUFBBUlNFPXkKIENPTkZJR19ET1VCTEVGQVVMVD15CitDT05GSUdfSU9fREVMQVlfVFlQRV8wWDgwPTAKK0NPTkZJR19JT19ERUxBWV9UWVBFXzBYRUQ9MQorQ09ORklHX0lPX0RFTEFZX1RZUEVfVURFTEFZPTIKK0NPTkZJR19JT19ERUxBWV9UWVBFX05PTkU9MworQ09ORklHX0lPX0RFTEFZXzBYODA9eQorIyBDT05GSUdfSU9fREVMQVlfMFhFRCBpcyBub3Qgc2V0CisjIENPTkZJR19JT19ERUxBWV9VREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfSU9fREVMQVlfTk9ORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT19ERUxBWV9UWVBFPTAKK0NPTkZJR19ERUJVR19CT09UX1BBUkFNUz15CisjIENPTkZJR19DUEFfREVCVUcgaXMgbm90IHNldAogCiAjCiAjIFNlY3VyaXR5IG9wdGlvbnMKICMKLSMgQ09ORklHX0tFWVMgaXMgbm90IHNldAotIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlTPXkKK0NPTkZJR19LRVlTX0RFQlVHX1BST0NfS0VZUz15CitDT05GSUdfU0VDVVJJVFk9eQorQ09ORklHX1NFQ1VSSVRZX05FVFdPUks9eQorIyBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNIGlzIG5vdCBzZXQKK0NPTkZJR19TRUNVUklUWV9DQVBBQklMSVRJRVM9eQorQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTPXkKKyMgQ09ORklHX1NFQ1VSSVRZX1JPT1RQTFVHIGlzIG5vdCBzZXQKK0NPTkZJR19TRUNVUklUWV9ERUZBVUxUX01NQVBfTUlOX0FERFI9NjU1MzYKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0JPT1RQQVJBTT15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9CT09UUEFSQU1fVkFMVUU9MQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfRElTQUJMRT15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9ERVZFTE9QPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0FWQ19TVEFUUz15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9DSEVDS1JFUVBST1RfVkFMVUU9MQorIyBDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9FTkFCTEVfU0VDTUFSS19ERUZBVUxUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfUE9MSUNZREJfVkVSU0lPTl9NQVggaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfU01BQ0sgaXMgbm90IHNldAorQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCitDT05GSUdfQ1JZUFRPX0FMR0FQST15CitDT05GSUdfQ1JZUFRPX0FFQUQ9eQorQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQorQ09ORklHX0NSWVBUT19IQVNIPXkKK0NPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0FVVEhFTkM9eQorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj15CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fSE1BQz15CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fU0hBMT15CisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKK0NPTkZJR19DUllQVE9fQUVTPXkKKyMgQ09ORklHX0NSWVBUT19BRVNfNTg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BUkM0PXkKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjBfNTg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0hfNTg2IGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0hXPXkKKyMgQ09ORklHX0NSWVBUT19ERVZfUEFETE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVWX0dFT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tWTT15CitDT05GSUdfVklSVFVBTElaQVRJT049eQorIyBDT05GSUdfS1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xHVUVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUSU9fUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRJT19CQUxMT09OIGlzIG5vdCBzZXQKIAogIwogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CitDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVD15CitDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUPXkKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAogQ09ORklHX0NSQzMyPXkKICMgQ09ORklHX0NSQzcgaXMgbm90IHNldAogIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19BVURJVF9HRU5FUklDPXkKIENPTkZJR19aTElCX0lORkxBVEU9eQogQ09ORklHX1BMSVNUPXkKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQotQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQotQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKLUNPTkZJR19HRU5FUklDX1BFTkRJTkdfSVJRPXkKLUNPTkZJR19YODZfU01QPXkKLUNPTkZJR19YODZfSFQ9eQotQ09ORklHX1g4Nl9CSU9TX1JFQk9PVD15Ci1DT05GSUdfWDg2X1RSQU1QT0xJTkU9eQotQ09ORklHX0tUSU1FX1NDQUxBUj15CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jb25maWdzL3g4Nl82NF9kZWZjb25maWcgYi9hcmNoL3g4Ni9jb25maWdzL3g4Nl82NF9kZWZjb25maWcKaW5kZXggMmQ2ZjViMi4uYWU1MTI0ZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnCisrKyBiL2FyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZwpAQCAtMSw2NCArMSwxMDMgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yMi1naXQxNAotIyBGcmkgSnVsIDIwIDA5OjUzOjE1IDIwMDcKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzEKKyMgU3VuIE1heSAgNCAxOTo1OTo1NyAyMDA4CiAjCi1DT05GSUdfWDg2XzY0PXkKIENPTkZJR182NEJJVD15CisjIENPTkZJR19YODZfMzIgaXMgbm90IHNldAorQ09ORklHX1g4Nl82ND15CiBDT05GSUdfWDg2PXkKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnIgorIyBDT05GSUdfR0VORVJJQ19MT0NLQlJFQUsgaXMgbm90IHNldAogQ09ORklHX0dFTkVSSUNfVElNRT15Ci1DT05GSUdfR0VORVJJQ19USU1FX1ZTWVNDQUxMPXkKIENPTkZJR19HRU5FUklDX0NNT1NfVVBEQVRFPXkKLUNPTkZJR19aT05FX0RNQTMyPXkKK0NPTkZJR19DTE9DS1NPVVJDRV9XQVRDSERPRz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CUk9BRENBU1Q9eQogQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKLUNPTkZJR19TRU1BUEhPUkVfU0xFRVBFUlM9eQorQ09ORklHX0hBVkVfTEFURU5DWVRPUF9TVVBQT1JUPXkKK0NPTkZJR19GQVNUX0NNUFhDSEdfTE9DQUw9eQogQ09ORklHX01NVT15CiBDT05GSUdfWk9ORV9ETUE9eQotQ09ORklHX1FVSUNLTElTVD15Ci1DT05GSUdfTlJfUVVJQ0s9MgotQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQotQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15Ci1DT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQotQ09ORklHX1g4Nl9DTVBYQ0hHPXkKLUNPTkZJR19FQVJMWV9QUklOVEs9eQogQ09ORklHX0dFTkVSSUNfSVNBX0RNQT15CiBDT05GSUdfR0VORVJJQ19JT01BUD15Ci1DT05GSUdfQVJDSF9NQVlfSEFWRV9QQ19GREM9eQotQ09ORklHX0FSQ0hfUE9QVUxBVEVTX05PREVfTUFQPXkKLUNPTkZJR19ETUk9eQotQ09ORklHX0FVRElUX0FSQ0g9eQogQ09ORklHX0dFTkVSSUNfQlVHPXkKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorIyBDT05GSUdfR0VORVJJQ19HUElPIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX01BWV9IQVZFX1BDX0ZEQz15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKLUNPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCi0KLSMKLSMgQ29kZSBtYXR1cml0eSBsZXZlbCBvcHRpb25zCi0jCi1DT05GSUdfRVhQRVJJTUVOVEFMPXkKLUNPTkZJR19MT0NLX0tFUk5FTD15Ci1DT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCitDT05GSUdfQVJDSF9IQVNfQ1BVX0lETEVfV0FJVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0dFTkVSSUNfVElNRV9WU1lTQ0FMTD15CitDT05GSUdfQVJDSF9IQVNfQ1BVX1JFTEFYPXkKK0NPTkZJR19BUkNIX0hBU19DQUNIRV9MSU5FX1NJWkU9eQorQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBPXkKK0NPTkZJR19IQVZFX0NQVU1BU0tfT0ZfQ1BVX01BUD15CitDT05GSUdfQVJDSF9ISUJFUk5BVElPTl9QT1NTSUJMRT15CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKK0NPTkZJR19aT05FX0RNQTMyPXkKK0NPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CitDT05GSUdfQVVESVRfQVJDSD15CitDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX09QVElNSVpFRF9JTkxJTklORz15CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX0dFTkVSSUNfUEVORElOR19JUlE9eQorQ09ORklHX1g4Nl9TTVA9eQorQ09ORklHX1g4Nl82NF9TTVA9eQorQ09ORklHX1g4Nl9IVD15CitDT05GSUdfWDg2X0JJT1NfUkVCT09UPXkKK0NPTkZJR19YODZfVFJBTVBPTElORT15CisjIENPTkZJR19LVElNRV9TQ0FMQVIgaXMgbm90IHNldAogCiAjCiAjIEdlbmVyYWwgc2V0dXAKICMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKIENPTkZJR19MT0NBTFZFUlNJT049IiIKLUNPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CisjIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0CiBDT05GSUdfU1dBUD15CiBDT05GSUdfU1lTVklQQz15CiBDT05GSUdfU1lTVklQQ19TWVNDVEw9eQogQ09ORklHX1BPU0lYX01RVUVVRT15Ci0jIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKLUNPTkZJR19JS0NPTkZJRz15Ci1DT05GSUdfSUtDT05GSUdfUFJPQz15Ci1DT05GSUdfTE9HX0JVRl9TSElGVD0xOAotIyBDT05GSUdfQ1BVU0VUUyBpcyBub3Qgc2V0Ci1DT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfQlNEX1BST0NFU1NfQUNDVD15CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUX1YzIGlzIG5vdCBzZXQKK0NPTkZJR19UQVNLU1RBVFM9eQorQ09ORklHX1RBU0tfREVMQVlfQUNDVD15CitDT05GSUdfVEFTS19YQUNDVD15CitDT05GSUdfVEFTS19JT19BQ0NPVU5USU5HPXkKK0NPTkZJR19BVURJVD15CitDT05GSUdfQVVESVRTWVNDQUxMPXkKK0NPTkZJR19BVURJVF9UUkVFPXkKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE3CitDT05GSUdfQ0dST1VQUz15CisjIENPTkZJR19DR1JPVVBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0NHUk9VUF9OUz15CisjIENPTkZJR19DR1JPVVBfREVWSUNFIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVTRVRTPXkKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CisjIENPTkZJR19SVF9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19DR1JPVVBfU0NIRUQ9eQorQ09ORklHX0NHUk9VUF9DUFVBQ0NUPXkKK0NPTkZJR19SRVNPVVJDRV9DT1VOVEVSUz15CisjIENPTkZJR19DR1JPVVBfTUVNX1JFU19DVExSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjIgaXMgbm90IHNldAorQ09ORklHX1BST0NfUElEX0NQVVNFVD15CiBDT05GSUdfUkVMQVk9eQorQ09ORklHX05BTUVTUEFDRVM9eQorQ09ORklHX1VUU19OUz15CitDT05GSUdfSVBDX05TPXkKK0NPTkZJR19VU0VSX05TPXkKK0NPTkZJR19QSURfTlM9eQogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKIENPTkZJR19JTklUUkFNRlNfU09VUkNFPSIiCiBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQpAQCAtNjYsMTMgKzEwNSwxNSBAQAogIyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldAogQ09ORklHX1VJRDE2PXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKIENPTkZJR19LQUxMU1lNU19BTEw9eQotIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUz15CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKIENPTkZJR19CVUc9eQogQ09ORklHX0VMRl9DT1JFPXkKKyMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTgyLDkgKzEyMywyMSBAQAogQ09ORklHX0VWRU5URkQ9eQogQ09ORklHX1NITUVNPXkKIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15Ci1DT05GSUdfU0xBQj15Ci0jIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKK0NPTkZJR19TTFVCX0RFQlVHPXkKKyMgQ09ORklHX1NMQUIgaXMgbm90IHNldAorQ09ORklHX1NMVUI9eQogIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CitDT05GSUdfUFJPRklMSU5HPXkKK0NPTkZJR19NQVJLRVJTPXkKKyMgQ09ORklHX09QUk9GSUxFIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKK0NPTkZJR19LUFJPQkVTPXkKK0NPTkZJR19LUkVUUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MApAQCAtOTYsMTQgKzE0OSwxNSBAQAogIyBDT05GSUdfS01PRCBpcyBub3Qgc2V0CiBDT05GSUdfU1RPUF9NQUNISU5FPXkKIENPTkZJR19CTE9DSz15Ci0jIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lPX1RSQUNFPXkKK0NPTkZJR19CTEtfREVWX0JTRz15CitDT05GSUdfQkxPQ0tfQ09NUEFUPXkKIAogIwogIyBJTyBTY2hlZHVsZXJzCiAjCiBDT05GSUdfSU9TQ0hFRF9OT09QPXkKLSMgQ09ORklHX0lPU0NIRURfQVMgaXMgbm90IHNldAorQ09ORklHX0lPU0NIRURfQVM9eQogQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQogQ09ORklHX0lPU0NIRURfQ0ZRPXkKICMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldApAQCAtMTExLDEwNyArMTY1LDE3NyBAQAogQ09ORklHX0RFRkFVTFRfQ0ZRPXkKICMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQogCiAjCiAjIFByb2Nlc3NvciB0eXBlIGFuZCBmZWF0dXJlcwogIwotQ09ORklHX1g4Nl9QQz15Ci0jIENPTkZJR19YODZfVlNNUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSzggaXMgbm90IHNldAotIyBDT05GSUdfTVBTQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQ09SRTIgaXMgbm90IHNldAotQ09ORklHX0dFTkVSSUNfQ1BVPXkKLUNPTkZJR19YODZfTDFfQ0FDSEVfQllURVM9MTI4Ci1DT05GSUdfWDg2X0wxX0NBQ0hFX1NISUZUPTcKLUNPTkZJR19YODZfSU5URVJOT0RFX0NBQ0hFX0JZVEVTPTEyOAotQ09ORklHX1g4Nl9UU0M9eQotQ09ORklHX1g4Nl9HT09EX0FQSUM9eQotIyBDT05GSUdfTUlDUk9DT0RFIGlzIG5vdCBzZXQKLUNPTkZJR19YODZfTVNSPXkKLUNPTkZJR19YODZfQ1BVSUQ9eQotQ09ORklHX1g4Nl9IVD15Ci1DT05GSUdfWDg2X0lPX0FQSUM9eQotQ09ORklHX1g4Nl9MT0NBTF9BUElDPXkKLUNPTkZJR19NVFJSPXkKK0NPTkZJR19USUNLX09ORVNIT1Q9eQorQ09ORklHX05PX0haPXkKK0NPTkZJR19ISUdIX1JFU19USU1FUlM9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQogQ09ORklHX1NNUD15Ci1DT05GSUdfU0NIRURfU01UPXkKK0NPTkZJR19YODZfUEM9eQorIyBDT05GSUdfWDg2X0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1ZPWUFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X05VTUFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9TVU1NSVQgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X0JJR1NNUCBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfVklTV1MgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X0dFTkVSSUNBUkNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9FUzcwMDAgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1JEQzMyMVggaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1ZTTVAgaXMgbm90IHNldAorIyBDT05GSUdfUEFSQVZJUlRfR1VFU1QgaXMgbm90IHNldAorQ09ORklHX01FTVRFU1RfQk9PVFBBUkFNPXkKK0NPTkZJR19NRU1URVNUX0JPT1RQQVJBTV9WQUxVRT0wCisjIENPTkZJR19NMzg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX000ODYgaXMgbm90IHNldAorIyBDT05GSUdfTTU4NiBpcyBub3Qgc2V0CisjIENPTkZJR19NNTg2VFNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX001ODZNTVggaXMgbm90IHNldAorIyBDT05GSUdfTTY4NiBpcyBub3Qgc2V0CisjIENPTkZJR19NUEVOVElVTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX01QRU5USVVNSUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX01QRU5USVVNTSBpcyBub3Qgc2V0CisjIENPTkZJR19NUEVOVElVTTQgaXMgbm90IHNldAorIyBDT05GSUdfTUs2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01LNyBpcyBub3Qgc2V0CisjIENPTkZJR19NSzggaXMgbm90IHNldAorIyBDT05GSUdfTUNSVVNPRSBpcyBub3Qgc2V0CisjIENPTkZJR19NRUZGSUNFT04gaXMgbm90IHNldAorIyBDT05GSUdfTVdJTkNISVBDNiBpcyBub3Qgc2V0CisjIENPTkZJR19NV0lOQ0hJUDIgaXMgbm90IHNldAorIyBDT05GSUdfTVdJTkNISVAzRCBpcyBub3Qgc2V0CisjIENPTkZJR19NR0VPREVHWDEgaXMgbm90IHNldAorIyBDT05GSUdfTUdFT0RFX0xYIGlzIG5vdCBzZXQKKyMgQ09ORklHX01DWVJJWElJSSBpcyBub3Qgc2V0CisjIENPTkZJR19NVklBQzNfMiBpcyBub3Qgc2V0CisjIENPTkZJR19NVklBQzcgaXMgbm90IHNldAorIyBDT05GSUdfTVBTQyBpcyBub3Qgc2V0CitDT05GSUdfTUNPUkUyPXkKKyMgQ09ORklHX0dFTkVSSUNfQ1BVIGlzIG5vdCBzZXQKK0NPTkZJR19YODZfQ1BVPXkKK0NPTkZJR19YODZfTDFfQ0FDSEVfQllURVM9NjQKK0NPTkZJR19YODZfSU5URVJOT0RFX0NBQ0hFX0JZVEVTPTY0CitDT05GSUdfWDg2X0NNUFhDSEc9eQorQ09ORklHX1g4Nl9MMV9DQUNIRV9TSElGVD02CitDT05GSUdfWDg2X0dPT0RfQVBJQz15CitDT05GSUdfWDg2X0lOVEVMX1VTRVJDT1BZPXkKK0NPTkZJR19YODZfVVNFX1BQUk9fQ0hFQ0tTVU09eQorQ09ORklHX1g4Nl9QNl9OT1A9eQorQ09ORklHX1g4Nl9UU0M9eQorQ09ORklHX1g4Nl9DTU9WPXkKK0NPTkZJR19YODZfTUlOSU1VTV9DUFVfRkFNSUxZPTY0CitDT05GSUdfWDg2X0RFQlVHQ1RMTVNSPXkKK0NPTkZJR19IUEVUX1RJTUVSPXkKK0NPTkZJR19IUEVUX0VNVUxBVEVfUlRDPXkKK0NPTkZJR19ETUk9eQorQ09ORklHX0dBUlRfSU9NTVU9eQorQ09ORklHX0NBTEdBUllfSU9NTVU9eQorQ09ORklHX0NBTEdBUllfSU9NTVVfRU5BQkxFRF9CWV9ERUZBVUxUPXkKK0NPTkZJR19TV0lPVExCPXkKK0NPTkZJR19JT01NVV9IRUxQRVI9eQorQ09ORklHX05SX0NQVVM9NAorIyBDT05GSUdfU0NIRURfU01UIGlzIG5vdCBzZXQKIENPTkZJR19TQ0hFRF9NQz15CiAjIENPTkZJR19QUkVFTVBUX05PTkUgaXMgbm90IHNldAogQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZPXkKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotQ09ORklHX1BSRUVNUFRfQktMPXkKK0NPTkZJR19YODZfTE9DQUxfQVBJQz15CitDT05GSUdfWDg2X0lPX0FQSUM9eQorIyBDT05GSUdfWDg2X01DRSBpcyBub3Qgc2V0CisjIENPTkZJR19JOEsgaXMgbm90IHNldAorIyBDT05GSUdfTUlDUk9DT0RFIGlzIG5vdCBzZXQKK0NPTkZJR19YODZfTVNSPXkKK0NPTkZJR19YODZfQ1BVSUQ9eQogQ09ORklHX05VTUE9eQogQ09ORklHX0s4X05VTUE9eQotQ09ORklHX05PREVTX1NISUZUPTYKIENPTkZJR19YODZfNjRfQUNQSV9OVU1BPXkKLUNPTkZJR19OVU1BX0VNVT15CitDT05GSUdfTk9ERVNfU1BBTl9PVEhFUl9OT0RFUz15CisjIENPTkZJR19OVU1BX0VNVSBpcyBub3Qgc2V0CitDT05GSUdfTk9ERVNfU0hJRlQ9NgorQ09ORklHX0FSQ0hfU1BBUlNFTUVNX0RFRkFVTFQ9eQorQ09ORklHX0FSQ0hfU1BBUlNFTUVNX0VOQUJMRT15CitDT05GSUdfQVJDSF9TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKKyMgQ09ORklHX0ZMQVRNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX1NQQVJTRU1FTV9NQU5VQUw9eQorQ09ORklHX1NQQVJTRU1FTT15CiBDT05GSUdfTkVFRF9NVUxUSVBMRV9OT0RFUz15CitDT05GSUdfSEFWRV9NRU1PUllfUFJFU0VOVD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKK0NPTkZJR19TUEFSU0VNRU1fRVhUUkVNRT15CitDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFPXkKK0NPTkZJR19TUEFSU0VNRU1fVk1FTU1BUD15CisKKyMKKyMgTWVtb3J5IGhvdHBsdWcgaXMgY3VycmVudGx5IGluY29tcGF0aWJsZSB3aXRoIFNvZnR3YXJlIFN1c3BlbmQKKyMKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKIENPTkZJR19NSUdSQVRJT049eQogQ09ORklHX1JFU09VUkNFU182NEJJVD15CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15Ci1DT05GSUdfSEFWRV9BUkNIX0VBUkxZX1BGTl9UT19OSUQ9eQotQ09ORklHX09VVF9PRl9MSU5FX1BGTl9UT19QQUdFPXkKLUNPTkZJR19OUl9DUFVTPTMyCitDT05GSUdfTVRSUj15CisjIENPTkZJR19YODZfUEFUIGlzIG5vdCBzZXQKK0NPTkZJR19FRkk9eQorQ09ORklHX1NFQ0NPTVA9eQorIyBDT05GSUdfSFpfMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0haXzI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19IWl8zMDAgaXMgbm90IHNldAorQ09ORklHX0haXzEwMDA9eQorQ09ORklHX0haPTEwMDAKK0NPTkZJR19TQ0hFRF9IUlRJQ0s9eQorQ09ORklHX0tFWEVDPXkKK0NPTkZJR19DUkFTSF9EVU1QPXkKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDEwMDAwMDAKK0NPTkZJR19SRUxPQ0FUQUJMRT15CiBDT05GSUdfUEhZU0lDQUxfQUxJR049MHgyMDAwMDAKIENPTkZJR19IT1RQTFVHX0NQVT15CisjIENPTkZJR19DT01QQVRfVkRTTyBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQotQ09ORklHX0hQRVRfVElNRVI9eQotQ09ORklHX0hQRVRfRU1VTEFURV9SVEM9eQotQ09ORklHX0dBUlRfSU9NTVU9eQotIyBDT05GSUdfQ0FMR0FSWV9JT01NVSBpcyBub3Qgc2V0Ci1DT05GSUdfU1dJT1RMQj15Ci1DT05GSUdfWDg2X01DRT15Ci1DT05GSUdfWDg2X01DRV9JTlRFTD15Ci1DT05GSUdfWDg2X01DRV9BTUQ9eQotIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JBU0hfRFVNUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SRUxPQ0FUQUJMRSBpcyBub3Qgc2V0Ci1DT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgyMDAwMDAKLUNPTkZJR19TRUNDT01QPXkKLSMgQ09ORklHX0NDX1NUQUNLUFJPVEVDVE9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0Ci1DT05GSUdfSFpfMjUwPXkKLSMgQ09ORklHX0haXzMwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19IWl8xMDAwIGlzIG5vdCBzZXQKLUNPTkZJR19IWj0yNTAKLUNPTkZJR19LOF9OQj15Ci1DT05GSUdfR0VORVJJQ19IQVJESVJRUz15Ci1DT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQotQ09ORklHX0lTQV9ETUFfQVBJPXkKLUNPTkZJR19HRU5FUklDX1BFTkRJTkdfSVJRPXkKK0NPTkZJR19IQVZFX0FSQ0hfRUFSTFlfUEZOX1RPX05JRD15CiAKICMKICMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCitDT05GSUdfQVJDSF9ISUJFUk5BVElPTl9IRUFERVI9eQogQ09ORklHX1BNPXkKLSMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE1fREVCVUc9eQorIyBDT05GSUdfUE1fVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX1BNX1RSQUNFPXkKK0NPTkZJR19QTV9UUkFDRT15CitDT05GSUdfUE1fVFJBQ0VfUlRDPXkKK0NPTkZJR19QTV9TTEVFUF9TTVA9eQorQ09ORklHX1BNX1NMRUVQPXkKK0NPTkZJR19TVVNQRU5EPXkKK0NPTkZJR19TVVNQRU5EX0ZSRUVaRVI9eQogQ09ORklHX0hJQkVSTkFUSU9OPXkKIENPTkZJR19QTV9TVERfUEFSVElUSU9OPSIiCi0KLSMKLSMgQUNQSSAoQWR2YW5jZWQgQ29uZmlndXJhdGlvbiBhbmQgUG93ZXIgSW50ZXJmYWNlKSBTdXBwb3J0Ci0jCiBDT05GSUdfQUNQST15CiBDT05GSUdfQUNQSV9TTEVFUD15Ci1DT05GSUdfQUNQSV9TTEVFUF9QUk9DX0ZTPXkKLUNPTkZJR19BQ1BJX1NMRUVQX1BST0NfU0xFRVA9eQogQ09ORklHX0FDUElfUFJPQ0ZTPXkKK0NPTkZJR19BQ1BJX1BST0NGU19QT1dFUj15CitDT05GSUdfQUNQSV9TWVNGU19QT1dFUj15CitDT05GSUdfQUNQSV9QUk9DX0VWRU5UPXkKIENPTkZJR19BQ1BJX0FDPXkKIENPTkZJR19BQ1BJX0JBVFRFUlk9eQogQ09ORklHX0FDUElfQlVUVE9OPXkKIENPTkZJR19BQ1BJX0ZBTj15Ci0jIENPTkZJR19BQ1BJX0RPQ0sgaXMgbm90IHNldAorQ09ORklHX0FDUElfRE9DSz15CisjIENPTkZJR19BQ1BJX0JBWSBpcyBub3Qgc2V0CiBDT05GSUdfQUNQSV9QUk9DRVNTT1I9eQogQ09ORklHX0FDUElfSE9UUExVR19DUFU9eQogQ09ORklHX0FDUElfVEhFUk1BTD15CiBDT05GSUdfQUNQSV9OVU1BPXkKKyMgQ09ORklHX0FDUElfV01JIGlzIG5vdCBzZXQKICMgQ09ORklHX0FDUElfQVNVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BQ1BJX1RPU0hJQkEgaXMgbm90IHNldAorIyBDT05GSUdfQUNQSV9DVVNUT01fRFNEVCBpcyBub3Qgc2V0CiBDT05GSUdfQUNQSV9CTEFDS0xJU1RfWUVBUj0wCiAjIENPTkZJR19BQ1BJX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19BQ1BJX0VDPXkKQEAgLTIyNywyOSArMzUxLDM0IEBACiBDT05GSUdfQ1BVX0ZSRVE9eQogQ09ORklHX0NQVV9GUkVRX1RBQkxFPXkKIENPTkZJR19DUFVfRlJFUV9ERUJVRz15Ci1DT05GSUdfQ1BVX0ZSRVFfU1RBVD15Ci0jIENPTkZJR19DUFVfRlJFUV9TVEFUX0RFVEFJTFMgaXMgbm90IHNldAotQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFPXkKLSMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1VTRVJTUEFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9TVEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BPV0VSU0FWRSBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFPXkKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX09OREVNQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX0NPTlNFUlZBVElWRSBpcyBub3Qgc2V0CiBDT05GSUdfQ1BVX0ZSRVFfR09WX1BFUkZPUk1BTkNFPXkKICMgQ09ORklHX0NQVV9GUkVRX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNldAogQ09ORklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0U9eQogQ09ORklHX0NQVV9GUkVRX0dPVl9PTkRFTUFORD15Ci1DT05GSUdfQ1BVX0ZSRVFfR09WX0NPTlNFUlZBVElWRT15CisjIENPTkZJR19DUFVfRlJFUV9HT1ZfQ09OU0VSVkFUSVZFIGlzIG5vdCBzZXQKIAogIwogIyBDUFVGcmVxIHByb2Nlc3NvciBkcml2ZXJzCiAjCi1DT05GSUdfWDg2X1BPV0VSTk9XX0s4PXkKLUNPTkZJR19YODZfUE9XRVJOT1dfSzhfQUNQST15Ci0jIENPTkZJR19YODZfU1BFRURTVEVQX0NFTlRSSU5PIGlzIG5vdCBzZXQKIENPTkZJR19YODZfQUNQSV9DUFVGUkVRPXkKKyMgQ09ORklHX1g4Nl9QT1dFUk5PV19LOCBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfU1BFRURTVEVQX0NFTlRSSU5PIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9QNF9DTE9DS01PRCBpcyBub3Qgc2V0CiAKICMKICMgc2hhcmVkIG9wdGlvbnMKICMKLUNPTkZJR19YODZfQUNQSV9DUFVGUkVRX1BST0NfSU5URj15CisjIENPTkZJR19YODZfQUNQSV9DUFVGUkVRX1BST0NfSU5URiBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfU1BFRURTVEVQX0xJQiBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX0lETEU9eQorQ09ORklHX0NQVV9JRExFX0dPVl9MQURERVI9eQorQ09ORklHX0NQVV9JRExFX0dPVl9NRU5VPXkKIAogIwogIyBCdXMgb3B0aW9ucyAoUENJIGV0Yy4pCkBAIC0yNTcsMjcgKzM4Niw1NiBAQAogQ09ORklHX1BDST15CiBDT05GSUdfUENJX0RJUkVDVD15CiBDT05GSUdfUENJX01NQ09ORklHPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CitDT05GSUdfRE1BUj15CitDT05GSUdfRE1BUl9HRlhfV0E9eQorQ09ORklHX0RNQVJfRkxPUFBZX1dBPXkKIENPTkZJR19QQ0lFUE9SVEJVUz15CisjIENPTkZJR19IT1RQTFVHX1BDSV9QQ0lFIGlzIG5vdCBzZXQKIENPTkZJR19QQ0lFQUVSPXkKKyMgQ09ORklHX1BDSUVBU1BNIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX1NVUFBPUlRTX01TST15CiBDT05GSUdfUENJX01TST15CisjIENPTkZJR19QQ0lfTEVHQUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IVF9JUlEgaXMgbm90IHNldAorQ09ORklHX0hUX0lSUT15CitDT05GSUdfSVNBX0RNQV9BUEk9eQorQ09ORklHX0s4X05CPXkKK0NPTkZJR19QQ0NBUkQ9eQorIyBDT05GSUdfUENNQ0lBX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QQ01DSUE9eQorQ09ORklHX1BDTUNJQV9MT0FEX0NJUz15CitDT05GSUdfUENNQ0lBX0lPQ1RMPXkKK0NPTkZJR19DQVJEQlVTPXkKIAogIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0CisjIFBDLWNhcmQgYnJpZGdlcwogIwotIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKK0NPTkZJR19ZRU5UQT15CitDT05GSUdfWUVOVEFfTzI9eQorQ09ORklHX1lFTlRBX1JJQ09IPXkKK0NPTkZJR19ZRU5UQV9UST15CitDT05GSUdfWUVOVEFfRU5FX1RVTkU9eQorQ09ORklHX1lFTlRBX1RPU0hJQkE9eQorIyBDT05GSUdfUEQ2NzI5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0k4MjA5MiBpcyBub3Qgc2V0CitDT05GSUdfUENDQVJEX05PTlNUQVRJQz15CitDT05GSUdfSE9UUExVR19QQ0k9eQorIyBDT05GSUdfSE9UUExVR19QQ0lfRkFLRSBpcyBub3Qgc2V0CisjIENPTkZJR19IT1RQTFVHX1BDSV9BQ1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPVFBMVUdfUENJX0NQQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSE9UUExVR19QQ0lfU0hQQyBpcyBub3Qgc2V0CiAKICMKICMgRXhlY3V0YWJsZSBmaWxlIGZvcm1hdHMgLyBFbXVsYXRpb25zCiAjCiBDT05GSUdfQklORk1UX0VMRj15Ci0jIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CitDT05GSUdfQ09NUEFUX0JJTkZNVF9FTEY9eQorQ09ORklHX0JJTkZNVF9NSVNDPXkKIENPTkZJR19JQTMyX0VNVUxBVElPTj15Ci1DT05GSUdfSUEzMl9BT1VUPXkKKyMgQ09ORklHX0lBMzJfQU9VVCBpcyBub3Qgc2V0CiBDT05GSUdfQ09NUEFUPXkKK0NPTkZJR19DT01QQVRfRk9SX1U2NF9BTElHTk1FTlQ9eQogQ09ORklHX1NZU1ZJUENfQ09NUEFUPXkKIAogIwpAQCAtMjg5LDIyICs0NDcsMzEgQEAKICMgTmV0d29ya2luZyBvcHRpb25zCiAjCiBDT05GSUdfUEFDS0VUPXkKLSMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19QQUNLRVRfTU1BUD15CiBDT05GSUdfVU5JWD15CitDT05GSUdfWEZSTT15CitDT05GSUdfWEZSTV9VU0VSPXkKKyMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVEFUSVNUSUNTIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAogQ09ORklHX0lORVQ9eQogQ09ORklHX0lQX01VTFRJQ0FTVD15Ci0jIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUj15CitDT05GSUdfQVNLX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX0ZJQl9UUklFIGlzIG5vdCBzZXQKIENPTkZJR19JUF9GSUJfSEFTSD15Ci1DT05GSUdfSVBfUE5QPXkKLUNPTkZJR19JUF9QTlBfREhDUD15Ci0jIENPTkZJR19JUF9QTlBfQk9PVFAgaXMgbm90IHNldAotIyBDT05GSUdfSVBfUE5QX1JBUlAgaXMgbm90IHNldAorQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUz15CitDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIPXkKK0NPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKKyMgQ09ORklHX0lQX1BOUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAotIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NUk9VVEU9eQorQ09ORklHX0lQX1BJTVNNX1YxPXkKK0NPTkZJR19JUF9QSU1TTV9WMj15CiAjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19TWU5fQ09PS0lFUz15CiAjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKQEAgLTMxMywzMSArNDgwLDEwOSBAQAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKLUNPTkZJR19JTkVUX0RJQUc9eQotQ09ORklHX0lORVRfVENQX0RJQUc9eQotIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX0lORVRfTFJPPXkKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQURWQU5DRUQ9eQorIyBDT05GSUdfVENQX0NPTkdfQklDIGlzIG5vdCBzZXQKIENPTkZJR19UQ1BfQ09OR19DVUJJQz15CisjIENPTkZJR19UQ1BfQ09OR19XRVNUV09PRCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19IVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0hTVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0hZQkxBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX1ZFR0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX1NDQUxBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0xQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX1ZFTk8gaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfWUVBSCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19JTExJTk9JUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0JJQyBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DVUJJQz15CisjIENPTkZJR19ERUZBVUxUX0hUQ1AgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9WRUdBUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX1dFU1RXT09EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfUkVOTyBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCi0jIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfTUQ1U0lHPXkKKyMgQ09ORklHX0lQX1ZTIGlzIG5vdCBzZXQKIENPTkZJR19JUFY2PXkKICMgQ09ORklHX0lQVjZfUFJJVkFDWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X1JPVVRFUl9QUkVGIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfT1BUSU1JU1RJQ19EQUQgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfQUggaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfRVNQIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUNl9BSD15CitDT05GSUdfSU5FVDZfRVNQPXkKICMgQ09ORklHX0lORVQ2X0lQQ09NUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X01JUDYgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RSQU5TUE9SVD15CitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RVTk5FTD15CitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9eQogIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1JPVVRFT1BUSU1JWkFUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19JUFY2X1NJVD15CitDT05GSUdfSVBWNl9ORElTQ19OT0RFVFlQRT15CiAjIENPTkZJR19JUFY2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAotIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjZfTVJPVVRFIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRMQUJFTD15CitDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKK0NPTkZJR19ORVRGSUxURVI9eQorIyBDT05GSUdfTkVURklMVEVSX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUl9BRFZBTkNFRCBpcyBub3Qgc2V0CisKKyMKKyMgQ29yZSBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgorIworQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LPXkKK0NPTkZJR19ORVRGSUxURVJfTkVUTElOS19MT0c9eQorQ09ORklHX05GX0NPTk5UUkFDSz15CitDT05GSUdfTkZfQ09OTlRSQUNLX1NFQ01BUks9eQorQ09ORklHX05GX0NPTk5UUkFDS19GVFA9eQorQ09ORklHX05GX0NPTk5UUkFDS19JUkM9eQorQ09ORklHX05GX0NPTk5UUkFDS19TSVA9eQorQ09ORklHX05GX0NUX05FVExJTks9eQorQ09ORklHX05FVEZJTFRFUl9YVEFCTEVTPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX01BUks9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTkZMT0c9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfU0VDTUFSSz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9DT05OU0VDTUFSSz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9UQ1BNU1M9eQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT05OVFJBQ0s9eQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9NQVJLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUE9MSUNZPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfU1RBVEU9eQorCisjCisjIElQOiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgorIworQ09ORklHX05GX0NPTk5UUkFDS19JUFY0PXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfUFJPQ19DT01QQVQ9eQorQ09ORklHX0lQX05GX0lQVEFCTEVTPXkKK0NPTkZJR19JUF9ORl9GSUxURVI9eQorQ09ORklHX0lQX05GX1RBUkdFVF9SRUpFQ1Q9eQorQ09ORklHX0lQX05GX1RBUkdFVF9MT0c9eQorQ09ORklHX0lQX05GX1RBUkdFVF9VTE9HPXkKK0NPTkZJR19ORl9OQVQ9eQorQ09ORklHX05GX05BVF9ORUVERUQ9eQorQ09ORklHX0lQX05GX1RBUkdFVF9NQVNRVUVSQURFPXkKK0NPTkZJR19ORl9OQVRfRlRQPXkKK0NPTkZJR19ORl9OQVRfSVJDPXkKKyMgQ09ORklHX05GX05BVF9URlRQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GX05BVF9BTUFOREEgaXMgbm90IHNldAorIyBDT05GSUdfTkZfTkFUX1BQVFAgaXMgbm90IHNldAorIyBDT05GSUdfTkZfTkFUX0gzMjMgaXMgbm90IHNldAorQ09ORklHX05GX05BVF9TSVA9eQorQ09ORklHX0lQX05GX01BTkdMRT15CisKKyMKKyMgSVB2NjogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19ORl9DT05OVFJBQ0tfSVBWNj15CitDT05GSUdfSVA2X05GX0lQVEFCTEVTPXkKK0NPTkZJR19JUDZfTkZfTUFUQ0hfSVBWNkhFQURFUj15CitDT05GSUdfSVA2X05GX0ZJTFRFUj15CitDT05GSUdfSVA2X05GX1RBUkdFVF9MT0c9eQorQ09ORklHX0lQNl9ORl9UQVJHRVRfUkVKRUNUPXkKK0NPTkZJR19JUDZfTkZfTUFOR0xFPXkKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAogIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CiAjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKQEAgLTM0NSw2ICs1OTAsNyBAQAogIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAogIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKK0NPTkZJR19MTEM9eQogIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFggaXMgbm90IHNldAogIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldApAQCAtMzUyLDI4ICs1OTgsOTkgQEAKICMgQ09ORklHX0xBUEIgaXMgbm90IHNldAogIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX05FVF9TQ0hFRD15CiAKICMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCisjIFF1ZXVlaW5nL1NjaGVkdWxpbmcKICMKLSMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0NCUSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0hUQiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0hGU0MgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9QUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfUlIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9SRUQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9TRlEgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9URVFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfVEJGIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfR1JFRCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0RTTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX05FVEVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfSU5HUkVTUyBpcyBub3Qgc2V0CisKKyMKKyMgQ2xhc3NpZmljYXRpb24KKyMKK0NPTkZJR19ORVRfQ0xTPXkKKyMgQ09ORklHX05FVF9DTFNfQkFTSUMgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19UQ0lOREVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfUk9VVEU0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfRlcgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19VMzIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19SU1ZQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfUlNWUDYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0NMU19GTE9XIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRU1BVENIPXkKK0NPTkZJR19ORVRfRU1BVENIX1NUQUNLPTMyCisjIENPTkZJR19ORVRfRU1BVENIX0NNUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfRU1BVENIX05CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9FTUFUQ0hfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9FTUFUQ0hfTUVUQSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfRU1BVENIX1RFWFQgaXMgbm90IHNldAorQ09ORklHX05FVF9DTFNfQUNUPXkKKyMgQ09ORklHX05FVF9BQ1RfUE9MSUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfR0FDVCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX01JUlJFRCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX0lQVCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX05BVCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX1BFRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9BQ1RfU0lNUCBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1NDSF9GSUZPPXkKIAogIwogIyBOZXR3b3JrIHRlc3RpbmcKICMKICMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1RDUFBST0JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKK0NPTkZJR19IQU1SQURJTz15CisKKyMKKyMgUGFja2V0IFJhZGlvIHByb3RvY29scworIworIyBDT05GSUdfQVgyNSBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAogIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CVCBpcyBub3Qgc2V0CiAjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CitDT05GSUdfRklCX1JVTEVTPXkKIAogIwogIyBXaXJlbGVzcwogIwotIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAotIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKLSMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19DRkc4MDIxMT15CitDT05GSUdfTkw4MDIxMT15CitDT05GSUdfV0lSRUxFU1NfRVhUPXkKK0NPTkZJR19NQUM4MDIxMT15CisKKyMKKyMgUmF0ZSBjb250cm9sIGFsZ29yaXRobSBzZWxlY3Rpb24KKyMKK0NPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUX1BJRD15CisjIENPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUX05PTkUgaXMgbm90IHNldAorCisjCisjIFNlbGVjdGluZyAneScgZm9yIGFuIGFsZ29yaXRobSB3aWxsCisjCisKKyMKKyMgYnVpbGQgdGhlIGFsZ29yaXRobSBpbnRvIG1hYzgwMjExLgorIworQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFQ9InBpZCIKK0NPTkZJR19NQUM4MDIxMV9SQ19QSUQ9eQorIyBDT05GSUdfTUFDODAyMTFfTUVTSCBpcyBub3Qgc2V0CitDT05GSUdfTUFDODAyMTFfTEVEUz15CisjIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExX0RFQlVHX1BBQ0tFVF9BTElHTk1FTlQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTFfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldApAQCAtMzg1LDEzICs3MDIsMTUgQEAKICMKICMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwogIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKIENPTkZJR19TVEFOREFMT05FPXkKIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKIENPTkZJR19GV19MT0FERVI9eQogIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfREVWUkVTPXkKICMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfQ09OTkVDVE9SPXkKK0NPTkZJR19QUk9DX0VWRU5UUz15CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfUE5QPXkKQEAgLTQwMiw3ICs3MjEsNyBAQAogIwogQ09ORklHX1BOUEFDUEk9eQogQ09ORklHX0JMS19ERVY9eQotQ09ORklHX0JMS19ERVZfRkQ9eQorIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfQ1BRX0RBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19DUFFfQ0lTU19EQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0RBQzk2MCBpcyBub3Qgc2V0CkBAIC00MTUsOCArNzM0LDggQEAKICMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfUkFNPXkKIENPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgotQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9NDA5NgotQ09ORklHX0JMS19ERVZfUkFNX0JMT0NLU0laRT0xMDI0CitDT05GSUdfQkxLX0RFVl9SQU1fU0laRT0xNjM4NAorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAogQ09ORklHX01JU0NfREVWSUNFUz15CkBAIC00MjUsNzIgKzc0NCwxNiBAQAogIyBDT05GSUdfRUVQUk9NXzkzQ1g2IGlzIG5vdCBzZXQKICMgQ09ORklHX1NHSV9JT0M0IGlzIG5vdCBzZXQKICMgQ09ORklHX1RJRk1fQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0VSX1dNSSBpcyBub3Qgc2V0CisjIENPTkZJR19BU1VTX0xBUFRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19GVUpJVFNVX0xBUFRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19NU0lfTEFQVE9QIGlzIG5vdCBzZXQKICMgQ09ORklHX1NPTllfTEFQVE9QIGlzIG5vdCBzZXQKICMgQ09ORklHX1RISU5LUEFEX0FDUEkgaXMgbm90IHNldAotQ09ORklHX0lERT15Ci1DT05GSUdfQkxLX0RFVl9JREU9eQotCi0jCi0jIFBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi9pZGUudHh0IGZvciBoZWxwL2luZm8gb24gSURFIGRyaXZlcwotIwotIyBDT05GSUdfQkxLX0RFVl9JREVfU0FUQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0hEX0lERSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVESVNLPXkKLUNPTkZJR19JREVESVNLX01VTFRJX01PREU9eQotQ09ORklHX0JMS19ERVZfSURFQ0Q9eQotIyBDT05GSUdfQkxLX0RFVl9JREVUQVBFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFRkxPUFBZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFU0NTSSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVBQ1BJPXkKLSMgQ09ORklHX0lERV9UQVNLX0lPQ1RMIGlzIG5vdCBzZXQKLUNPTkZJR19JREVfUFJPQ19GUz15Ci0KLSMKLSMgSURFIGNoaXBzZXQgc3VwcG9ydC9idWdmaXhlcwotIwotQ09ORklHX0lERV9HRU5FUklDPXkKLSMgQ09ORklHX0JMS19ERVZfQ01ENjQwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFUE5QIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERVBDST15Ci0jIENPTkZJR19JREVQQ0lfU0hBUkVfSVJRIGlzIG5vdCBzZXQKLUNPTkZJR19JREVQQ0lfUENJQlVTX09SREVSPXkKLSMgQ09ORklHX0JMS19ERVZfT0ZGQk9BUkQgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9HRU5FUklDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfT1BUSTYyMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1JaMTAwMCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVETUFfUENJPXkKLSMgQ09ORklHX0JMS19ERVZfSURFRE1BX0ZPUkNFRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JREVETUFfT05MWURJU0sgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9BRUM2MlhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQUxJMTVYMyBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9BTUQ3NFhYPXkKLUNPTkZJR19CTEtfREVWX0FUSUlYUD15Ci0jIENPTkZJR19CTEtfREVWX0NNRDY0WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1RSSUZMRVggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DWTgyQzY5MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0NTNTUyMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0NTNTUzMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0hQVDM0WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0hQVDM2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0pNSUNST04gaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TQzEyMDAgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfUElJWD15Ci0jIENPTkZJR19CTEtfREVWX0lUODIxMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lUODIxWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX05TODc0MTUgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9QREMyMDJYWF9PTEQgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfUERDMjAyWFhfTkVXPXkKLSMgQ09ORklHX0JMS19ERVZfU1ZXS1MgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TSUlNQUdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU0lTNTUxMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NMQzkwRTY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVFJNMjkwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVklBODJDWFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAotIyBDT05GSUdfSURFX0FSTSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVETUE9eQotIyBDT05GSUdfSURFRE1BX0lWQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOVEVMX01FTkxPVyBpcyBub3Qgc2V0CisjIENPTkZJR19FTkNMT1NVUkVfU0VSVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKKyMgQ09ORklHX0lERSBpcyBub3Qgc2V0CiAKICMKICMgU0NTSSBkZXZpY2Ugc3VwcG9ydApAQCAtNDk5LDggKzc2Miw4IEBACiBDT05GSUdfU0NTST15CiBDT05GSUdfU0NTSV9ETUE9eQogIyBDT05GSUdfU0NTSV9UR1QgaXMgbm90IHNldAotQ09ORklHX1NDU0lfTkVUTElOSz15Ci0jIENPTkZJR19TQ1NJX1BST0NfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1BST0NfRlM9eQogCiAjCiAjIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCkBAIC01MDksNyArNzcyLDcgQEAKICMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAogIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX1NSPXkKLSMgQ09ORklHX0JMS19ERVZfU1JfVkVORE9SIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX1NSX1ZFTkRPUj15CiBDT05GSUdfQ0hSX0RFVl9TRz15CiAjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CiAKQEAgLTUyNiw3MyArNzg5LDM3IEBACiAjIFNDU0kgVHJhbnNwb3J0cwogIwogQ09ORklHX1NDU0lfU1BJX0FUVFJTPXkKLUNPTkZJR19TQ1NJX0ZDX0FUVFJTPXkKKyMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTSV9TQVNfQVRUUlM9eQorIyBDT05GSUdfU0NTSV9TQVNfQVRUUlMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKLQotIwotIyBTQ1NJIGxvdy1sZXZlbCBkcml2ZXJzCi0jCi0jIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl8zV19YWFhYX1JBSUQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV8zV185WFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUNBUkQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BQUNSQUlEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUlDN1hYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FJQzdYWFhfT0xEIGlzIG5vdCBzZXQKLUNPTkZJR19TQ1NJX0FJQzc5WFg9eQotQ09ORklHX0FJQzc5WFhfQ01EU19QRVJfREVWSUNFPTMyCi1DT05GSUdfQUlDNzlYWF9SRVNFVF9ERUxBWV9NUz00MDAwCi0jIENPTkZJR19BSUM3OVhYX0RFQlVHX0VOQUJMRSBpcyBub3Qgc2V0Ci1DT05GSUdfQUlDNzlYWF9ERUJVR19NQVNLPTAKLSMgQ09ORklHX0FJQzc5WFhfUkVHX1BSRVRUWV9QUklOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FJQzk0WFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BUkNNU1IgaXMgbm90IHNldAotIyBDT05GSUdfTUVHQVJBSURfTkVXR0VOIGlzIG5vdCBzZXQKLSMgQ09ORklHX01FR0FSQUlEX0xFR0FDWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRUdBUkFJRF9TQVMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9IUFRJT1AgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9CVVNMT0dJQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RNWDMxOTFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRUFUQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9HRFRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSU5JVElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSU5JQTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NURVggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TWU01M0M4WFhfMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lQUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMT0dJQ18xMjgwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfUUxBX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfUUxBX0lTQ1NJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfTFBGQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RDMzk1eCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RDMzkwVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9XTEVWRUwgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT1dMRVZFTF9QQ01DSUEgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogQ09ORklHX0FUQV9BQ1BJPXkKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9BSENJPXkKLUNPTkZJR19TQVRBX1NWVz15CisjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKKyMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKIENPTkZJR19BVEFfUElJWD15CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKLUNPTkZJR19TQVRBX05WPXkKKyMgQ09ORklHX1NBVEFfTlYgaXMgbm90IHNldAogIyBDT05GSUdfUERDX0FETUEgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9RU1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAotQ09ORklHX1NBVEFfU0lMPXkKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAotQ09ORklHX1NBVEFfVklBPXkKKyMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQUNQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FMSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19QQVRBX0FNRCBpcyBub3Qgc2V0CitDT05GSUdfUEFUQV9BTUQ9eQogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FUSUlYUCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0NNRDY0MF9QQ0kgaXMgbm90IHNldApAQCAtNjEyLDExICs4MzksMTQgQEAKICMgQ09ORklHX1BBVEFfVFJJRkxFWCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX01BUlZFTEwgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9NUElJWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19QQVRBX09MRFBJSVggaXMgbm90IHNldAorQ09ORklHX1BBVEFfT0xEUElJWD15CiAjIENPTkZJR19QQVRBX05FVENFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OSU5KQTMyIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfTlM4NzQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTUgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9PUFRJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfT1BUSURNQSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BDTUNJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BEQ19PTEQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9SQURJU1lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUloxMDAwIGlzIG5vdCBzZXQKQEAgLTYyOCw2NSArODU4LDQyIEBACiAjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAogQ09ORklHX01EPXkKLSMgQ09ORklHX0JMS19ERVZfTUQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfTUQ9eQorIyBDT05GSUdfTURfTElORUFSIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX1JBSUQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX1JBSUQxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX1JBSUQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9SQUlENDU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01EX01VTFRJUEFUSCBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9GQVVMVFkgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfRE09eQogIyBDT05GSUdfRE1fREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfRE1fQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfRE1fU05BUFNIT1QgaXMgbm90IHNldAotIyBDT05GSUdfRE1fTUlSUk9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RNX1pFUk8gaXMgbm90IHNldAorQ09ORklHX0RNX01JUlJPUj15CitDT05GSUdfRE1fWkVSTz15CiAjIENPTkZJR19ETV9NVUxUSVBBVEggaXMgbm90IHNldAogIyBDT05GSUdfRE1fREVMQVkgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKLUNPTkZJR19GVVNJT049eQotQ09ORklHX0ZVU0lPTl9TUEk9eQotIyBDT05GSUdfRlVTSU9OX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9TQVMgaXMgbm90IHNldAotQ09ORklHX0ZVU0lPTl9NQVhfU0dFPTEyOAotIyBDT05GSUdfRlVTSU9OX0NUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ETV9VRVZFTlQgaXMgbm90IHNldAorIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIAogIwogIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0CiAjCiAjIENPTkZJR19GSVJFV0lSRSBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTEzOTQ9eQotCi0jCi0jIFN1YnN5c3RlbSBPcHRpb25zCi0jCi0jIENPTkZJR19JRUVFMTM5NF9WRVJCT1NFREVCVUcgaXMgbm90IHNldAotCi0jCi0jIENvbnRyb2xsZXJzCi0jCi0KLSMKLSMgVGV4YXMgSW5zdHJ1bWVudHMgUENJTHlueCByZXF1aXJlcyBJMkMKLSMKLUNPTkZJR19JRUVFMTM5NF9PSENJMTM5ND15Ci0KLSMKLSMgUHJvdG9jb2xzCi0jCi0jIENPTkZJR19JRUVFMTM5NF9WSURFTzEzOTQgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTEzOTRfU0JQMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFMTM5NF9FVEgxMzk0X1JPTV9FTlRSWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFMTM5NF9FVEgxMzk0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0X0RWMTM5NCBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTEzOTRfUkFXSU89eQorIyBDT05GSUdfSUVFRTEzOTQgaXMgbm90IHNldAogIyBDT05GSUdfSTJPIGlzIG5vdCBzZXQKIENPTkZJR19NQUNJTlRPU0hfRFJJVkVSUz15Ci0jIENPTkZJR19NQUNfRU1VTU9VU0VCVE4gaXMgbm90IHNldAorQ09ORklHX01BQ19FTVVNT1VTRUJUTj15CiBDT05GSUdfTkVUREVWSUNFUz15Ci1DT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19JRkIgaXMgbm90IHNldAogIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAogIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKICMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0Ci1DT05GSUdfVFVOPXkKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9TQjEwMDAgaXMgbm90IHNldAogIyBDT05GSUdfQVJDTkVUIGlzIG5vdCBzZXQKICMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CkBAIC02OTYsMzkgKzkwMyw0MCBAQAogIyBDT05GSUdfU1VOR0VNIGlzIG5vdCBzZXQKICMgQ09ORklHX0NBU1NJTkkgaXMgbm90IHNldAogQ09ORklHX05FVF9WRU5ET1JfM0NPTT15Ci1DT05GSUdfVk9SVEVYPXkKKyMgQ09ORklHX1ZPUlRFWCBpcyBub3Qgc2V0CiAjIENPTkZJR19UWVBIT09OIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfVFVMSVA9eQogIyBDT05GSUdfREUyMTA0WCBpcyBub3Qgc2V0Ci1DT05GSUdfVFVMSVA9eQotIyBDT05GSUdfVFVMSVBfTVdJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RVTElQX01NSU8gaXMgbm90IHNldAotIyBDT05GSUdfVFVMSVBfTkFQSSBpcyBub3Qgc2V0CisjIENPTkZJR19UVUxJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERTRYNSBpcyBub3Qgc2V0CiAjIENPTkZJR19XSU5CT05EXzg0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19ETTkxMDIgaXMgbm90IHNldAogIyBDT05GSUdfVUxJNTI2WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfWElSQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1BDST15CiAjIENPTkZJR19QQ05FVDMyIGlzIG5vdCBzZXQKLUNPTkZJR19BTUQ4MTExX0VUSD15Ci0jIENPTkZJR19BTUQ4MTExRV9OQVBJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNRDgxMTFfRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FEQVBURUNfU1RBUkZJUkUgaXMgbm90IHNldAotQ09ORklHX0I0ND15CisjIENPTkZJR19CNDQgaXMgbm90IHNldAogQ09ORklHX0ZPUkNFREVUSD15CiAjIENPTkZJR19GT1JDRURFVEhfTkFQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ER1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX0VFUFJPMTAwIGlzIG5vdCBzZXQKIENPTkZJR19FMTAwPXkKICMgQ09ORklHX0ZFQUxOWCBpcyBub3Qgc2V0CiAjIENPTkZJR19OQVRTRU1JIGlzIG5vdCBzZXQKICMgQ09ORklHX05FMktfUENJIGlzIG5vdCBzZXQKLUNPTkZJR184MTM5Q1A9eQorIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKIENPTkZJR184MTM5VE9PPXkKLSMgQ09ORklHXzgxMzlUT09fUElPIGlzIG5vdCBzZXQKK0NPTkZJR184MTM5VE9PX1BJTz15CiAjIENPTkZJR184MTM5VE9PX1RVTkVfVFdJU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR184MTM5VE9PXzgxMjkgaXMgbm90IHNldAogIyBDT05GSUdfODEzOV9PTERfUlhfUkVTRVQgaXMgbm90IHNldAorIyBDT05GSUdfUjYwNDAgaXMgbm90IHNldAogIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0VQSUMxMDAgaXMgbm90IHNldAogIyBDT05GSUdfU1VOREFOQ0UgaXMgbm90IHNldApAQCAtNzQwLDM0ICs5NDgsNzQgQEAKIENPTkZJR19FMTAwMD15CiAjIENPTkZJR19FMTAwMF9OQVBJIGlzIG5vdCBzZXQKICMgQ09ORklHX0UxMDAwX0RJU0FCTEVfUEFDS0VUX1NQTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRSBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEVfRU5BQkxFRCBpcyBub3Qgc2V0CisjIENPTkZJR19JUDEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUdCIGlzIG5vdCBzZXQKICMgQ09ORklHX05TODM4MjAgaXMgbm90IHNldAogIyBDT05GSUdfSEFNQUNISSBpcyBub3Qgc2V0CiAjIENPTkZJR19ZRUxMT1dGSU4gaXMgbm90IHNldAogIyBDT05GSUdfUjgxNjkgaXMgbm90IHNldAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAotIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0CitDT05GSUdfU0tZMj15CisjIENPTkZJR19TS1kyX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiBDT05GSUdfVElHT04zPXkKLUNPTkZJR19CTlgyPXkKKyMgQ09ORklHX0JOWDIgaXMgbm90IHNldAogIyBDT05GSUdfUUxBM1hYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEwxIGlzIG5vdCBzZXQKIENPTkZJR19ORVRERVZfMTAwMDA9eQogIyBDT05GSUdfQ0hFTFNJT19UMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DSEVMU0lPX1QzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lYR0JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0lYR0IgaXMgbm90IHNldAotQ09ORklHX1MySU89bQotIyBDT05GSUdfUzJJT19OQVBJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1MySU8gaXMgbm90IHNldAogIyBDT05GSUdfTVlSSTEwR0UgaXMgbm90IHNldAogIyBDT05GSUdfTkVUWEVOX05JQyBpcyBub3Qgc2V0CisjIENPTkZJR19OSVUgaXMgbm90IHNldAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CisjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAorQ09ORklHX1RSPXkKKyMgQ09ORklHX0lCTU9MIGlzIG5vdCBzZXQKKyMgQ09ORklHXzNDMzU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1RNUzM4MFRSIGlzIG5vdCBzZXQKIAogIwogIyBXaXJlbGVzcyBMQU4KICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAotIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CitDT05GSUdfV0xBTl84MDIxMT15CisjIENPTkZJR19QQ01DSUFfUkFZQ1MgaXMgbm90IHNldAorIyBDT05GSUdfSVBXMjEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JUFcyMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkVSVEFTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FJUk8gaXMgbm90IHNldAorIyBDT05GSUdfSEVSTUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTUVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FJUk9fQ1MgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1dMMzUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19QUklTTTU0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9aRDEyMDEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX05FVF9STkRJU19XTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUTDgxODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRMODE4NyBpcyBub3Qgc2V0CisjIENPTkZJR19BRE04MjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1A1NF9DT01NT04gaXMgbm90IHNldAorQ09ORklHX0FUSDVLPXkKKyMgQ09ORklHX0FUSDVLX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRkkgaXMgbm90IHNldAorIyBDT05GSUdfSVdMQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfSVdMNDk2NSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0wzOTQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPU1RBUCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDMgaXMgbm90IHNldAorIyBDT05GSUdfQjQzTEVHQUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pEMTIxMVJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUMlgwMCBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTc3NiwxNiArMTAyNCwyNiBAQAogIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfVVNCTkVUX01JSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfUENNQ0lBPXkKKyMgQ09ORklHX1BDTUNJQV8zQzU4OSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfM0M1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX0ZNVkoxOFggaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1BDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9OTUNMQU4gaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1NNQzkxQzkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9YSVJDMlBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9BWE5FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAotIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CitDT05GSUdfRkREST15CisjIENPTkZJR19ERUZYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TS0ZQIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAogQ09ORklHX05FVENPTlNPTEU9eQorIyBDT05GSUdfTkVUQ09OU09MRV9EWU5BTUlDIGlzIG5vdCBzZXQKIENPTkZJR19ORVRQT0xMPXkKICMgQ09ORklHX05FVFBPTExfVFJBUCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUj15CkBAIC03OTYsMTggKzEwNTQsMTcgQEAKICMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKICMKIENPTkZJR19JTlBVVD15Ci0jIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0ZGX01FTUxFU1M9eQorQ09ORklHX0lOUFVUX1BPTExERVY9eQogCiAjCiAjIFVzZXJsYW5kIGludGVyZmFjZXMKICMKIENPTkZJR19JTlBVVF9NT1VTRURFVj15Ci1DT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVg9eQorIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAogQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKIENPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKICMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UU0RFViBpcyBub3Qgc2V0CiBDT05GSUdfSU5QVVRfRVZERVY9eQogIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAogCkBAIC04MzIsMTcgKzEwODksNjIgQEAKICMgQ09ORklHX01PVVNFX1NFUklBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT1VTRV9BUFBMRVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX1ZTWFhYQUEgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0pPWVNUSUNLPXkKKyMgQ09ORklHX0pPWVNUSUNLX0FOQUxPRyBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19BM0QgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfQURJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0NPQlJBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0dGMksgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfR1JJUCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19HUklQX01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0dVSUxMRU1PVCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19JTlRFUkFDVCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19TSURFV0lOREVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1RNREMgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfSUZPUkNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfTUFHRUxMQU4gaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfU1BBQ0VPUkIgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfU1BBQ0VCQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1NUSU5HRVIgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfVFdJREpPWSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19aSEVOSFVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0pPWURVTVAgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfWFBBRCBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfVEFCTEVUPXkKKyMgQ09ORklHX1RBQkxFVF9VU0JfQUNFQ0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBQkxFVF9VU0JfQUlQVEVLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBQkxFVF9VU0JfR1RDTyBpcyBub3Qgc2V0CisjIENPTkZJR19UQUJMRVRfVVNCX0tCVEFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBQkxFVF9VU0JfV0FDT00gaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1UgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VDQjE0MDAgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0NPTVBPU0lURSBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfTUlTQz15CisjIENPTkZJR19JTlBVVF9QQ1NQS1IgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfQVBBTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FUTEFTX0JUTlMgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfQVRJX1JFTU9URSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9BVElfUkVNT1RFMiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9LRVlTUEFOX1JFTU9URSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT1dFUk1BVEUgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfWUVBTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9VSU5QVVQgaXMgbm90IHNldAogCiAjCiAjIEhhcmR3YXJlIEkvTyBwb3J0cwogIwogQ09ORklHX1NFUklPPXkKIENPTkZJR19TRVJJT19JODA0Mj15Ci0jIENPTkZJR19TRVJJT19TRVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJT19TRVJQT1JUPXkKICMgQ09ORklHX1NFUklPX0NUODJDNzEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFUklPX1BDSVBTMiBpcyBub3Qgc2V0CiBDT05GSUdfU0VSSU9fTElCUFMyPXkKQEAgLTg1NSw4ICsxMTU3LDI2IEBACiBDT05GSUdfVlQ9eQogQ09ORklHX1ZUX0NPTlNPTEU9eQogQ09ORklHX0hXX0NPTlNPTEU9eQotIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKK0NPTkZJR19ERVZLTUVNPXkKK0NPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQ9eQorIyBDT05GSUdfQ09NUFVUT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPQ0tFVFBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1lDTEFERVMgaXMgbm90IHNldAorIyBDT05GSUdfRElHSUVQQ0EgaXMgbm90IHNldAorIyBDT05GSUdfTU9YQV9JTlRFTExJTyBpcyBub3Qgc2V0CisjIENPTkZJR19NT1hBX1NNQVJUSU8gaXMgbm90IHNldAorIyBDT05GSUdfSVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTkNMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTkNMSU5LTVAgaXMgbm90IHNldAorIyBDT05GSUdfU1lOQ0xJTktfR1QgaXMgbm90IHNldAorIyBDT05GSUdfTl9IRExDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JJU0NPTTggaXMgbm90IHNldAorIyBDT05GSUdfU1BFQ0lBTElYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TVEFMRFJWIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKICMKICMgU2VyaWFsIGRyaXZlcnMKQEAgLTg2Niw5ICsxMTg2LDE0IEBACiBDT05GSUdfRklYX0VBUkxZQ09OX01FTT15CiBDT05GSUdfU0VSSUFMXzgyNTBfUENJPXkKIENPTkZJR19TRVJJQUxfODI1MF9QTlA9eQotQ09ORklHX1NFUklBTF84MjUwX05SX1VBUlRTPTQKKyMgQ09ORklHX1NFUklBTF84MjUwX0NTIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz0zMgogQ09ORklHX1NFUklBTF84MjUwX1JVTlRJTUVfVUFSVFM9NAotIyBDT05GSUdfU0VSSUFMXzgyNTBfRVhURU5ERUQgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX0VYVEVOREVEPXkKK0NPTkZJR19TRVJJQUxfODI1MF9NQU5ZX1BPUlRTPXkKK0NPTkZJR19TRVJJQUxfODI1MF9TSEFSRV9JUlE9eQorQ09ORklHX1NFUklBTF84MjUwX0RFVEVDVF9JUlE9eQorQ09ORklHX1NFUklBTF84MjUwX1JTQT15CiAKICMKICMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydApAQCAtODc3LDc4ICsxMjAyLDI2MCBAQAogQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQogIyBDT05GSUdfU0VSSUFMX0pTTSBpcyBub3Qgc2V0CiBDT05GSUdfVU5JWDk4X1BUWVM9eQotQ09ORklHX0xFR0FDWV9QVFlTPXkKLUNPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgorIyBDT05GSUdfTEVHQUNZX1BUWVMgaXMgbm90IHNldAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKIENPTkZJR19IV19SQU5ET009eQotQ09ORklHX0hXX1JBTkRPTV9JTlRFTD15Ci1DT05GSUdfSFdfUkFORE9NX0FNRD15Ci0jIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci1DT05GSUdfUlRDPXkKKyMgQ09ORklHX0hXX1JBTkRPTV9JTlRFTCBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET01fQU1EIGlzIG5vdCBzZXQKK0NPTkZJR19OVlJBTT15CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0Ci1DT05GSUdfQUdQPXkKLUNPTkZJR19BR1BfQU1ENjQ9eQotQ09ORklHX0FHUF9JTlRFTD15Ci0jIENPTkZJR19BR1BfU0lTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FHUF9WSUEgaXMgbm90IHNldAotIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKKworIworIyBQQ01DSUEgY2hhcmFjdGVyIGRldmljZXMKKyMKKyMgQ09ORklHX1NZTkNMSU5LX0NTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBUkRNQU5fNDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19DQVJETUFOXzQwNDAgaXMgbm90IHNldAorIyBDT05GSUdfSVBXSVJFTEVTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NV0FWRSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQzg3MzZ4X0dQSU8gaXMgbm90IHNldAotQ09ORklHX1JBV19EUklWRVI9eQotQ09ORklHX01BWF9SQVdfREVWUz0yNTYKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogQ09ORklHX0hQRVQ9eQogIyBDT05GSUdfSFBFVF9SVENfSVJRIGlzIG5vdCBzZXQKLUNPTkZJR19IUEVUX01NQVA9eQorIyBDT05GSUdfSFBFVF9NTUFQIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTkdDSEVDS19USU1FUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFTENMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19ERVZQT1JUPXkKLSMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkKKyMgQ09ORklHX0kyQ19DSEFSREVWIGlzIG5vdCBzZXQKIAogIwotIyBTUEkgc3VwcG9ydAorIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKKyMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNVgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ3NTYgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDgxMTEgaXMgbm90IHNldAorQ09ORklHX0kyQ19JODAxPXkKKyMgQ09ORklHX0kyQ19JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QSUlYNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfTkZPUkNFMiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfT0NPUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QUk9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NBVkFHRTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTNTU5NSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTNjMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM5NlggaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorQ09ORklHX1BPV0VSX1NVUFBMWT15CisjIENPTkZJR19QT1dFUl9TVVBQTFlfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUERBX1BPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBVFRFUllfRFMyNzYwIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19USEVSTUFMPXkKK0NPTkZJR19XQVRDSERPRz15CisjIENPTkZJR19XQVRDSERPR19OT1dBWU9VVCBpcyBub3Qgc2V0CisKKyMKKyMgV2F0Y2hkb2cgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX1NPRlRfV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfQUNRVUlSRV9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfQURWQU5URUNIX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19BTElNMTUzNV9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfQUxJTTcxMDFfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDNTIwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19FVVJPVEVDSF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSUI3MDBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTUFTUiBpcyBub3Qgc2V0CisjIENPTkZJR19XQUZFUl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSTYzMDBFU0JfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lUQ09fV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lUODcxMkZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQX1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDMTIwMF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfUEM4NzQxM19XRFQgaXMgbm90IHNldAorIyBDT05GSUdfNjBYWF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfU0JDODM2MF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVNV9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfU01TQzM3Qjc4N19XRFQgaXMgbm90IHNldAorIyBDT05GSUdfVzgzNjI3SEZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1c4MzY5N0hGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19XODM4NzdGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19XODM5NzdGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIWl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfU0JDX0VQWF9DM19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgUENJLWJhc2VkIFdhdGNoZG9nIENhcmRzCisjCisjIENPTkZJR19QQ0lQQ1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dEVFBDSSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCLWJhc2VkIFdhdGNoZG9nIENhcmRzCisjCisjIENPTkZJR19VU0JQQ1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKICMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAogCiAjCiAjIEdyYXBoaWNzIHN1cHBvcnQKICMKLSMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfQUdQPXkKK0NPTkZJR19BR1BfQU1ENjQ9eQorQ09ORklHX0FHUF9JTlRFTD15CisjIENPTkZJR19BR1BfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FHUF9WSUEgaXMgbm90IHNldAorQ09ORklHX0RSTT15CisjIENPTkZJR19EUk1fVERGWCBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fUjEyOCBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fUkFERU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9JODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9JODMwIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fSTkxNT15CisjIENPTkZJR19EUk1fTUdBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKK0NPTkZJR19GQj15CisjIENPTkZJR19GSVJNV0FSRV9FRElEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0REQyBpcyBub3Qgc2V0CitDT05GSUdfRkJfQ0ZCX0ZJTExSRUNUPXkKK0NPTkZJR19GQl9DRkJfQ09QWUFSRUE9eQorQ09ORklHX0ZCX0NGQl9JTUFHRUJMSVQ9eQorIyBDT05GSUdfRkJfQ0ZCX1JFVl9QSVhFTFNfSU5fQllURSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRklMTFJFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0NPUFlBUkVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRk9SRUlHTl9FTkRJQU4gaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNldAorQ09ORklHX0ZCX0RFRkVSUkVEX0lPPXkKKyMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9NT0RFX0hFTFBFUlM9eQorQ09ORklHX0ZCX1RJTEVCTElUVElORz15CisKKyMKKyMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKKyMKKyMgQ09ORklHX0ZCX0NJUlJVUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ1lCRVIyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FSQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BU0lMSUFOVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9JTVNUVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WR0ExNiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9VVkVTQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WRVNBIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9FRkk9eQorIyBDT05GSUdfRkJfSU1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9ONDExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0hHQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMUQxM1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9OVklESUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUklWQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9MRTgwNTc4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lOVEVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BVFJPWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SQURFT04gaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0tZUk8gaXMgbm90IHNldAorIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZUODYyMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9UUklERU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfR0VPREUgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CitDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUPXkKKyMgQ09ORklHX0xDRF9DTEFTU19ERVZJQ0UgaXMgbm90IHNldAorQ09ORklHX0JBQ0tMSUdIVF9DTEFTU19ERVZJQ0U9eQorIyBDT05GSUdfQkFDS0xJR0hUX0NPUkdJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9QUk9HRUFSIGlzIG5vdCBzZXQKIAogIwogIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CiAjCiAjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAotIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAotIyBDT05GSUdfRkIgaXMgbm90IHNldAogCiAjCiAjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAogIwogQ09ORklHX1ZHQV9DT05TT0xFPXkKIENPTkZJR19WR0FDT05fU09GVF9TQ1JPTExCQUNLPXkKLUNPTkZJR19WR0FDT05fU09GVF9TQ1JPTExCQUNLX1NJWkU9MjU2CitDT05GSUdfVkdBQ09OX1NPRlRfU0NST0xMQkFDS19TSVpFPTY0CiBDT05GSUdfVklERU9fU0VMRUNUPXkKIENPTkZJR19EVU1NWV9DT05TT0xFPXkKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0xPR089eQorIyBDT05GSUdfTE9HT19MSU5VWF9NT05PIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPR09fTElOVVhfVkdBMTYgaXMgbm90IHNldAorQ09ORklHX0xPR09fTElOVVhfQ0xVVDIyND15CiAKICMKICMgU291bmQKQEAgLTk1OCwzMyArMTQ2NSwxNjUgQEAKICMKICMgQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlCiAjCi0jIENPTkZJR19TTkQgaXMgbm90IHNldAorQ09ORklHX1NORD15CitDT05GSUdfU05EX1RJTUVSPXkKK0NPTkZJR19TTkRfUENNPXkKK0NPTkZJR19TTkRfSFdERVA9eQorQ09ORklHX1NORF9TRVFVRU5DRVI9eQorQ09ORklHX1NORF9TRVFfRFVNTVk9eQorQ09ORklHX1NORF9PU1NFTVVMPXkKK0NPTkZJR19TTkRfTUlYRVJfT1NTPXkKK0NPTkZJR19TTkRfUENNX09TUz15CitDT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15CitDT05GSUdfU05EX1NFUVVFTkNFUl9PU1M9eQorQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUz15CitDT05GSUdfU05EX1NVUFBPUlRfT0xEX0FQST15CitDT05GSUdfU05EX1ZFUkJPU0VfUFJPQ0ZTPXkKKyMgQ09ORklHX1NORF9WRVJCT1NFX1BSSU5USyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NORF9WTUFTVEVSPXkKKworIworIyBHZW5lcmljIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9QQ1NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVklSTUlESSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTVRQQVYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NFUklBTF9VMTY1NTAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01QVTQwMSBpcyBub3Qgc2V0CisKKyMKKyMgUENJIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9BRDE4ODkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FMUzMwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQUxTNDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQUxJNTQ1MSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVRJSVhQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVElJWFBfTU9ERU0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FVODgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVU4ODIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVTg4MzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FXMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVpUMzMyOCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQlQ4N1ggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NBMDEwNiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ01JUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9PWFlHRU4gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NTNDI4MSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ1M0NlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzU1MzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RBUkxBMjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0dJTkEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTEFZTEEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREFSTEEyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfR0lOQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9MQVlMQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NT05BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NSUEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VDSE8zRyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5ESUdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR09JTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5ESUdPREogaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VNVTEwSzEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VNVTEwSzFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTlMxMzcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTlMxMzcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FUzE5MzggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VTMTk2OCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRk04MDEgaXMgbm90IHNldAorQ09ORklHX1NORF9IREFfSU5URUw9eQorQ09ORklHX1NORF9IREFfSFdERVA9eQorQ09ORklHX1NORF9IREFfQ09ERUNfUkVBTFRFSz15CitDT05GSUdfU05EX0hEQV9DT0RFQ19BTkFMT0c9eQorQ09ORklHX1NORF9IREFfQ09ERUNfU0lHTUFURUw9eQorQ09ORklHX1NORF9IREFfQ09ERUNfVklBPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0FUSUhETUk9eQorQ09ORklHX1NORF9IREFfQ09ERUNfQ09ORVhBTlQ9eQorQ09ORklHX1NORF9IREFfQ09ERUNfQ01FRElBPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1NJMzA1ND15CitDT05GSUdfU05EX0hEQV9HRU5FUklDPXkKKyMgQ09ORklHX1NORF9IREFfUE9XRVJfU0FWRSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSERTUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSERTUE0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0hJRklFUiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSUNFMTcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSUNFMTcyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5URUw4WDAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lOVEVMOFgwTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfS09SRzEyMTIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01BRVNUUk8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NSVhBUlQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX05NMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9QQ1hIUiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUklQVElERSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUk1FMzIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JNRTk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9STUU5NjUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT05JQ1ZJQkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9UUklERU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSUE4MlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSUE4MlhYX01PREVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSVJUVU9TTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVlgyMjIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1lNRlBDSSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9VU0JfQVVESU8gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1VTQl9VU1gyWSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVVNCX0NBSUFRIGlzIG5vdCBzZXQKKworIworIyBQQ01DSUEgZGV2aWNlcworIworIyBDT05GSUdfU05EX1ZYUE9DS0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9QREFVRElPQ0YgaXMgbm90IHNldAorCisjCisjIFN5c3RlbSBvbiBDaGlwIGF1ZGlvIHN1cHBvcnQKKyMKKyMgQ09ORklHX1NORF9TT0MgaXMgbm90IHNldAorCisjCisjIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcworIworCisjCisjIFNvQyBBdWRpbyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzIE9NQVAKKyMKIAogIwogIyBPcGVuIFNvdW5kIFN5c3RlbQogIwotQ09ORklHX1NPVU5EX1BSSU1FPXkKLSMgQ09ORklHX1NPVU5EX1RSSURFTlQgaXMgbm90IHNldAotIyBDT05GSUdfU09VTkRfTVNORENMQVMgaXMgbm90IHNldAotIyBDT05GSUdfU09VTkRfTVNORFBJTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TT1VORF9PU1MgaXMgbm90IHNldAorIyBDT05GSUdfU09VTkRfUFJJTUUgaXMgbm90IHNldAogQ09ORklHX0hJRF9TVVBQT1JUPXkKIENPTkZJR19ISUQ9eQotIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfREVCVUc9eQorQ09ORklHX0hJRFJBVz15CiAKICMKICMgVVNCIElucHV0IERldmljZXMKICMKIENPTkZJR19VU0JfSElEPXkKLSMgQ09ORklHX1VTQl9ISURJTlBVVF9QT1dFUkJPT0sgaXMgbm90IHNldAotIyBDT05GSUdfSElEX0ZGIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9ISURERVYgaXMgbm90IHNldAorQ09ORklHX1VTQl9ISURJTlBVVF9QT1dFUkJPT0s9eQorQ09ORklHX0hJRF9GRj15CitDT05GSUdfSElEX1BJRD15CitDT05GSUdfTE9HSVRFQ0hfRkY9eQorIyBDT05GSUdfTE9HSVJVTUJMRVBBRDJfRkYgaXMgbm90IHNldAorQ09ORklHX1BBTlRIRVJMT1JEX0ZGPXkKK0NPTkZJR19USFJVU1RNQVNURVJfRkY9eQorQ09ORklHX1pFUk9QTFVTX0ZGPXkKK0NPTkZJR19VU0JfSElEREVWPXkKIENPTkZJR19VU0JfU1VQUE9SVD15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKIENPTkZJR19VU0I9eQotIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfREVCVUc9eQorQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUz15CiAKICMKICMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwpAQCAtOTkyLDE4ICsxNjMxLDE4IEBACiBDT05GSUdfVVNCX0RFVklDRUZTPXkKICMgQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VTUEVORD15CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQotIyBDT05GSUdfVVNCX0VIQ0lfU1BMSVRfSVNPIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiAjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKQEAgLTEwMzYsOCArMTY3NSwxMCBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0xJQlVTVUFMPXkKIAogIwogIyBVU0IgSW1hZ2luZyBkZXZpY2VzCkBAIC0xMDQ5LDEwICsxNjkwLDYgQEAKICMKICMgVVNCIHBvcnQgZHJpdmVycwogIwotCi0jCi0jIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKLSMKICMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAogCiAjCkBAIC0xMDc4LDk4ICsxNzE1LDEyNiBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAotIwotCi0jCi0jIFVTQiBHYWRnZXQgU3VwcG9ydAotIwogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAotCi0jCi0jIExFRCBkZXZpY2VzCi0jCi0jIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CitDT05GSUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9eQogCiAjCiAjIExFRCBkcml2ZXJzCiAjCisjIENPTkZJR19MRURTX0NMRVZPX01BSUwgaXMgbm90IHNldAogCiAjCiAjIExFRCBUcmlnZ2VycwogIworQ09ORklHX0xFRFNfVFJJR0dFUlM9eQorIyBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQgaXMgbm90IHNldAorIyBDT05GSUdfTEVEU19UUklHR0VSX0RFRkFVTFRfT04gaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VEQUMgaXMgbm90IHNldAorQ09ORklHX0VEQUM9eQogCiAjCi0jIFJlYWwgVGltZSBDbG9jaworIyBSZXBvcnRpbmcgc3Vic3lzdGVtcwogIwotIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VEQUNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfRURBQ19NTV9FREFDIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorIyBDT05GSUdfUlRDX0hDVE9TWVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKIAogIwotIyBETUEgRW5naW5lIHN1cHBvcnQKKyMgUlRDIGludGVyZmFjZXMKICMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAorQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CiAKICMKLSMgRE1BIENsaWVudHMKKyMgSTJDIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1gxMjA1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1ODMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDFUODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TMzUzOTBBIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfQ01PUz15CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworQ09ORklHX0RNQURFVklDRVM9eQogCiAjCiAjIERNQSBEZXZpY2VzCiAjCi1DT05GSUdfVklSVFVBTElaQVRJT049eQotIyBDT05GSUdfS1ZNIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCisjIENPTkZJR19JTlRFTF9JT0FURE1BIGlzIG5vdCBzZXQKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKICMgRmlybXdhcmUgRHJpdmVycwogIwogIyBDT05GSUdfRUREIGlzIG5vdCBzZXQKK0NPTkZJR19FRklfVkFSUz15CiAjIENPTkZJR19ERUxMX1JCVSBpcyBub3Qgc2V0CiAjIENPTkZJR19EQ0RCQVMgaXMgbm90IHNldAogQ09ORklHX0RNSUlEPXkKKyMgQ09ORklHX0lTQ1NJX0lCRlRfRklORCBpcyBub3Qgc2V0CiAKICMKICMgRmlsZSBzeXN0ZW1zCiAjCi1DT05GSUdfRVhUMl9GUz15Ci1DT05GSUdfRVhUMl9GU19YQVRUUj15Ci1DT05GSUdfRVhUMl9GU19QT1NJWF9BQ0w9eQotIyBDT05GSUdfRVhUMl9GU19TRUNVUklUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19FWFQzX0ZTPXkKIENPTkZJR19FWFQzX0ZTX1hBVFRSPXkKIENPTkZJR19FWFQzX0ZTX1BPU0lYX0FDTD15Ci0jIENPTkZJR19FWFQzX0ZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKK0NPTkZJR19FWFQzX0ZTX1NFQ1VSSVRZPXkKICMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAogQ09ORklHX0pCRD15CiAjIENPTkZJR19KQkRfREVCVUcgaXMgbm90IHNldAogQ09ORklHX0ZTX01CQ0FDSEU9eQotQ09ORklHX1JFSVNFUkZTX0ZTPXkKLSMgQ09ORklHX1JFSVNFUkZTX0NIRUNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JFSVNFUkZTX1BST0NfSU5GTyBpcyBub3Qgc2V0Ci1DT05GSUdfUkVJU0VSRlNfRlNfWEFUVFI9eQotQ09ORklHX1JFSVNFUkZTX0ZTX1BPU0lYX0FDTD15Ci0jIENPTkZJR19SRUlTRVJGU19GU19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogQ09ORklHX0ZTX1BPU0lYX0FDTD15CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CiBDT05GSUdfSU5PVElGWV9VU0VSPXkKLSMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKLUNPTkZJR19ETk9USUZZPXkKK0NPTkZJR19RVU9UQT15CitDT05GSUdfUVVPVEFfTkVUTElOS19JTlRFUkZBQ0U9eQorIyBDT05GSUdfUFJJTlRfUVVPVEFfV0FSTklORyBpcyBub3Qgc2V0CisjIENPTkZJR19RRk1UX1YxIGlzIG5vdCBzZXQKK0NPTkZJR19RRk1UX1YyPXkKK0NPTkZJR19RVU9UQUNUTD15CiAjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAogQ09ORklHX0FVVE9GUzRfRlM9eQogIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CkBAIC0xMTgwLDcgKzE4NDUsNyBAQAogIwogQ09ORklHX0lTTzk2NjBfRlM9eQogQ09ORklHX0pPTElFVD15Ci0jIENPTkZJR19aSVNPRlMgaXMgbm90IHNldAorQ09ORklHX1pJU09GUz15CiAjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAogCiAjCkBAIC0xMTk4LDEzICsxODYzLDEzIEBACiAjCiBDT05GSUdfUFJPQ19GUz15CiBDT05GSUdfUFJPQ19LQ09SRT15CitDT05GSUdfUFJPQ19WTUNPUkU9eQogQ09ORklHX1BST0NfU1lTQ1RMPXkKIENPTkZJR19TWVNGUz15CiBDT05GSUdfVE1QRlM9eQogQ09ORklHX1RNUEZTX1BPU0lYX0FDTD15CiBDT05GSUdfSFVHRVRMQkZTPXkKIENPTkZJR19IVUdFVExCX1BBR0U9eQotQ09ORklHX1JBTUZTPXkKICMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKIAogIwpAQCAtMTIxMiw2ICsxODc3LDcgQEAKICMKICMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FQ1JZUFRfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CkBAIC0xMjE5LDMzICsxODg1LDE1IEBACiAjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmsgRmlsZSBTeXN0ZW1zCi0jCi1DT05GSUdfTkZTX0ZTPXkKLUNPTkZJR19ORlNfVjM9eQotIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEPXkKLUNPTkZJR19ORlNEX1YzPXkKLSMgQ09ORklHX05GU0RfVjNfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU0RfVjQgaXMgbm90IHNldAotQ09ORklHX05GU0RfVENQPXkKLUNPTkZJR19ST09UX05GUz15Ci1DT05GSUdfTE9DS0Q9eQotQ09ORklHX0xPQ0tEX1Y0PXkKLUNPTkZJR19FWFBPUlRGUz15Ci1DT05GSUdfTkZTX0NPTU1PTj15Ci1DT05GSUdfU1VOUlBDPXkKLSMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAotIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorIyBDT05GSUdfTkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAogIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NJRlMgaXMgbm90IHNldAogIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKQEAgLTEyNTUsMTQgKzE5MDMsMjYgQEAKICMKICMgUGFydGl0aW9uIFR5cGVzCiAjCi0jIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15CisjIENPTkZJR19BQ09STl9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX09TRl9QQVJUSVRJT049eQorQ09ORklHX0FNSUdBX1BBUlRJVElPTj15CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX01BQ19QQVJUSVRJT049eQogQ09ORklHX01TRE9TX1BBUlRJVElPTj15Ci0KLSMKLSMgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKLSMKK0NPTkZJR19CU0RfRElTS0xBQkVMPXkKK0NPTkZJR19NSU5JWF9TVUJQQVJUSVRJT049eQorQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJVElPTj15CitDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMPXkKKyMgQ09ORklHX0xETV9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX1NHSV9QQVJUSVRJT049eQorIyBDT05GSUdfVUxUUklYX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfU1VOX1BBUlRJVElPTj15CitDT05GSUdfS0FSTUFfUEFSVElUSU9OPXkKK0NPTkZJR19FRklfUEFSVElUSU9OPXkKKyMgQ09ORklHX1NZU1Y2OF9QQVJUSVRJT04gaXMgbm90IHNldAogQ09ORklHX05MUz15Ci1DT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfREVGQVVMVD0idXRmOCIKIENPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKICMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CkBAIC0xMjk3LDQwICsxOTU3LDMzIEBACiAjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKLUNPTkZJR19OTFNfSVNPODg1OV8xNT15CisjIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAogQ09ORklHX05MU19VVEY4PXkKLQotIwotIyBEaXN0cmlidXRlZCBMb2NrIE1hbmFnZXIKLSMKICMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CiAKICMKLSMgSW5zdHJ1bWVudGF0aW9uIFN1cHBvcnQKLSMKLUNPTkZJR19QUk9GSUxJTkc9eQotQ09ORklHX09QUk9GSUxFPXkKLUNPTkZJR19LUFJPQkVTPXkKLQotIwogIyBLZXJuZWwgaGFja2luZwogIwogQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorIyBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfV0FSTj0yMDQ4CiBDT05GSUdfTUFHSUNfU1lTUlE9eQotQ09ORklHX1VOVVNFRF9TWU1CT0xTPXkKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19GUz15CiAjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19LRVJORUw9eQogIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAotQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKKyMgQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDSEVEX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAorQ09ORklHX1NDSEVEU1RBVFM9eQogQ09ORklHX1RJTUVSX1NUQVRTPXkKLSMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldApAQCAtMTM0NCwyOCArMTk5NywxNjIgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKICMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZSQU1FX1BPSU5URVIgaXMgbm90IHNldAotQ09ORklHX09QVElNSVpFX0lOTElOSU5HPXkKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKICMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfS1BST0JFU19TQU5JVFlfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0xLRFRNIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19ST0RBVEEgaXMgbm90IHNldAotIyBDT05GSUdfSU9NTVVfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTEFURU5DWVRPUCBpcyBub3Qgc2V0CitDT05GSUdfUFJPVklERV9PSENJMTM5NF9ETUFfSU5JVD15CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tHREIgaXMgbm90IHNldAorQ09ORklHX0hBVkVfQVJDSF9LR0RCPXkKKyMgQ09ORklHX05PTlBST01JU0NfREVWTUVNIGlzIG5vdCBzZXQKK0NPTkZJR19FQVJMWV9QUklOVEs9eQogQ09ORklHX0RFQlVHX1NUQUNLT1ZFUkZMT1c9eQotIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFPXkKKyMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19QRVJfQ1BVX01BUFMgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1BURFVNUCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfUk9EQVRBPXkKKyMgQ09ORklHX0RJUkVDVF9HQlBBR0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1JPREFUQV9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19OWF9URVNUPW0KK0NPTkZJR19YODZfTVBQQVJTRT15CisjIENPTkZJR19JT01NVV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfSU9fREVMQVlfVFlQRV8wWDgwPTAKK0NPTkZJR19JT19ERUxBWV9UWVBFXzBYRUQ9MQorQ09ORklHX0lPX0RFTEFZX1RZUEVfVURFTEFZPTIKK0NPTkZJR19JT19ERUxBWV9UWVBFX05PTkU9MworQ09ORklHX0lPX0RFTEFZXzBYODA9eQorIyBDT05GSUdfSU9fREVMQVlfMFhFRCBpcyBub3Qgc2V0CisjIENPTkZJR19JT19ERUxBWV9VREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfSU9fREVMQVlfTk9ORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT19ERUxBWV9UWVBFPTAKK0NPTkZJR19ERUJVR19CT09UX1BBUkFNUz15CisjIENPTkZJR19DUEFfREVCVUcgaXMgbm90IHNldAogCiAjCiAjIFNlY3VyaXR5IG9wdGlvbnMKICMKLSMgQ09ORklHX0tFWVMgaXMgbm90IHNldAotIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlTPXkKK0NPTkZJR19LRVlTX0RFQlVHX1BST0NfS0VZUz15CitDT05GSUdfU0VDVVJJVFk9eQorQ09ORklHX1NFQ1VSSVRZX05FVFdPUks9eQorIyBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNIGlzIG5vdCBzZXQKK0NPTkZJR19TRUNVUklUWV9DQVBBQklMSVRJRVM9eQorQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTPXkKKyMgQ09ORklHX1NFQ1VSSVRZX1JPT1RQTFVHIGlzIG5vdCBzZXQKK0NPTkZJR19TRUNVUklUWV9ERUZBVUxUX01NQVBfTUlOX0FERFI9NjU1MzYKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0JPT1RQQVJBTT15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9CT09UUEFSQU1fVkFMVUU9MQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfRElTQUJMRT15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9ERVZFTE9QPXkKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0FWQ19TVEFUUz15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9DSEVDS1JFUVBST1RfVkFMVUU9MQorIyBDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9FTkFCTEVfU0VDTUFSS19ERUZBVUxUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfUE9MSUNZREJfVkVSU0lPTl9NQVggaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfU01BQ0sgaXMgbm90IHNldAorQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCitDT05GSUdfQ1JZUFRPX0FMR0FQST15CitDT05GSUdfQ1JZUFRPX0FFQUQ9eQorQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQorQ09ORklHX0NSWVBUT19IQVNIPXkKK0NPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0FVVEhFTkM9eQorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj15CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fSE1BQz15CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fU0hBMT15CisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKK0NPTkZJR19DUllQVE9fQUVTPXkKKyMgQ09ORklHX0NSWVBUT19BRVNfWDg2XzY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BUkM0PXkKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjBfWDg2XzY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0hfWDg2XzY0IGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0hXPXkKKyMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tWTT15CitDT05GSUdfVklSVFVBTElaQVRJT049eQorIyBDT05GSUdfS1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRJT19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfVklSVElPX0JBTExPT04gaXMgbm90IHNldAogCiAjCiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKK0NPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUPXkKK0NPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQ9eQogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pYTMyL2lhMzJlbnRyeS5TIGIvYXJjaC94ODYvaWEzMi9pYTMyZW50cnkuUwppbmRleCBiNWUzMjlkLi4yMDM3MWQwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pYTMyL2lhMzJlbnRyeS5TCisrKyBiL2FyY2gveDg2L2lhMzIvaWEzMmVudHJ5LlMKQEAgLTYxLDYgKzYxLDE5IEBACiAJQ0ZJX1VOREVGSU5FRAlyMTUKIAkuZW5kbQogCisjaWZkZWYgQ09ORklHX1BBUkFWSVJUCitFTlRSWShuYXRpdmVfdXNlcmdzX3N5c3JldDMyKQorCXN3YXBncworCXN5c3JldGwKK0VORFBST0MobmF0aXZlX3VzZXJnc19zeXNyZXQzMikKKworRU5UUlkobmF0aXZlX2lycV9lbmFibGVfc3lzZXhpdCkKKwlzd2FwZ3MKKwlzdGkKKwlzeXNleGl0CitFTkRQUk9DKG5hdGl2ZV9pcnFfZW5hYmxlX3N5c2V4aXQpCisjZW5kaWYKKwogLyoKICAqIDMyYml0IFNZU0VOVEVSIGluc3RydWN0aW9uIGVudHJ5LgogICoKQEAgLTg1LDE0ICs5OCwxNCBAQAogCUNGSV9TSUdOQUxfRlJBTUUKIAlDRklfREVGX0NGQQlyc3AsMAogCUNGSV9SRUdJU1RFUglyc3AscmJwCi0Jc3dhcGdzCisJU1dBUEdTX1VOU0FGRV9TVEFDSwogCW1vdnEJJWdzOnBkYV9rZXJuZWxzdGFjaywgJXJzcAogCWFkZHEJJChQREFfU1RBQ0tPRkZTRVQpLCVyc3AJCiAJLyoKIAkgKiBObyBuZWVkIHRvIGZvbGxvdyB0aGlzIGlycXMgb24vb2ZmIHNlY3Rpb246IHRoZSBzeXNjYWxsCiAJICogZGlzYWJsZWQgaXJxcywgaGVyZSB3ZSBlbmFibGUgaXQgc3RyYWlnaHQgYWZ0ZXIgZW50cnk6CiAJICovCi0Jc3RpCQorCUVOQUJMRV9JTlRFUlJVUFRTKENMQlJfTk9ORSkKICAJbW92bAklZWJwLCVlYnAJCS8qIHplcm8gZXh0ZW5zaW9uICovCiAJcHVzaHEJJF9fVVNFUjMyX0RTCiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIDgKQEAgLTEwMyw3ICsxMTYsNyBAQAogCXB1c2hmcQogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4CiAJLypDRklfUkVMX09GRlNFVCByZmxhZ3MsMCovCi0JbW92bAk4KjMtVEhSRUFEX1NJWkUrdGhyZWFkaW5mb19zeXNlbnRlcl9yZXR1cm4oJXJzcCksICVyMTBkCisJbW92bAk4KjMtVEhSRUFEX1NJWkUrVElfc3lzZW50ZXJfcmV0dXJuKCVyc3ApLCAlcjEwZAogCUNGSV9SRUdJU1RFUiByaXAscjEwCiAJcHVzaHEJJF9fVVNFUjMyX0NTCiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIDgKQEAgLTEyMyw4ICsxMzYsOSBAQAogIAkucXVhZCAxYixpYTMyX2JhZGFyZwogIAkucHJldmlvdXMJCiAJR0VUX1RIUkVBRF9JTkZPKCVyMTApCi0Jb3JsICAgICRUU19DT01QQVQsdGhyZWFkaW5mb19zdGF0dXMoJXIxMCkKLQl0ZXN0bCAgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0VDQ09NUCksdGhyZWFkaW5mb19mbGFncyglcjEwKQorCW9ybCAgICAkVFNfQ09NUEFULFRJX3N0YXR1cyglcjEwKQorCXRlc3RsICAkKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElGX1NZU0NBTExfQVVESVR8X1RJRl9TRUNDT01QKSwgXAorCQkgVElfZmxhZ3MoJXIxMCkKIAlDRklfUkVNRU1CRVJfU1RBVEUKIAlqbnogIHN5c2VudGVyX3RyYWNlc3lzCiBzeXNlbnRlcl9kb19jYWxsOgkKQEAgLTEzNCwxMSArMTQ4LDExIEBACiAJY2FsbAkqaWEzMl9zeXNfY2FsbF90YWJsZSgsJXJheCw4KQogCW1vdnEJJXJheCxSQVgtQVJHT0ZGU0VUKCVyc3ApCiAJR0VUX1RIUkVBRF9JTkZPKCVyMTApCi0JY2xpCisJRElTQUJMRV9JTlRFUlJVUFRTKENMQlJfTk9ORSkKIAlUUkFDRV9JUlFTX09GRgotCXRlc3RsCSRfVElGX0FMTFdPUktfTUFTSyx0aHJlYWRpbmZvX2ZsYWdzKCVyMTApCisJdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLFRJX2ZsYWdzKCVyMTApCiAJam56CWludF9yZXRfZnJvbV9zeXNfY2FsbAotCWFuZGwgICAgJH5UU19DT01QQVQsdGhyZWFkaW5mb19zdGF0dXMoJXIxMCkKKwlhbmRsICAgICR+VFNfQ09NUEFULFRJX3N0YXR1cyglcjEwKQogCS8qIGNsZWFyIElGLCB0aGF0IHBvcGZxIGRvZXNuJ3QgZW5hYmxlIGludGVycnVwdHMgZWFybHkgKi8KIAlhbmRsICAkfjB4MjAwLEVGTEFHUy1SMTEoJXJzcCkgCiAJbW92bAlSSVAtUjExKCVyc3ApLCVlZHgJCS8qIFVzZXIgJWVpcCAqLwpAQCAtMTUxLDEwICsxNjUsNyBAQAogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAogCUNGSV9SRUdJU1RFUiByc3AscmN4CiAJVFJBQ0VfSVJRU19PTgotCXN3YXBncwotCXN0aQkJLyogc3RpIG9ubHkgdGFrZXMgZWZmZWN0IGFmdGVyIHRoZSBuZXh0IGluc3RydWN0aW9uICovCi0JLyogc3lzZXhpdCAqLwotCS5ieXRlCTB4ZiwgMHgzNQorCUVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQzMgogCiBzeXNlbnRlcl90cmFjZXN5czoKIAlDRklfUkVTVE9SRV9TVEFURQpAQCAtMjAwLDcgKzIxMSw3IEBACiAJQ0ZJX0RFRl9DRkEJcnNwLFBEQV9TVEFDS09GRlNFVAogCUNGSV9SRUdJU1RFUglyaXAscmN4CiAJLypDRklfUkVHSVNURVIJcmZsYWdzLHIxMSovCi0Jc3dhcGdzCisJU1dBUEdTX1VOU0FGRV9TVEFDSwogCW1vdmwJJWVzcCwlcjhkCiAJQ0ZJX1JFR0lTVEVSCXJzcCxyOAogCW1vdnEJJWdzOnBkYV9rZXJuZWxzdGFjaywlcnNwCkBAIC0yMDgsNyArMjE5LDcgQEAKIAkgKiBObyBuZWVkIHRvIGZvbGxvdyB0aGlzIGlycXMgb24vb2ZmIHNlY3Rpb246IHRoZSBzeXNjYWxsCiAJICogZGlzYWJsZWQgaXJxcyBhbmQgaGVyZSB3ZSBlbmFibGUgaXQgc3RyYWlnaHQgYWZ0ZXIgZW50cnk6CiAJICovCi0Jc3RpCisJRU5BQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQogCVNBVkVfQVJHUyA4LDEsMQogCW1vdmwgCSVlYXgsJWVheAkvKiB6ZXJvIGV4dGVuc2lvbiAqLwogCW1vdnEJJXJheCxPUklHX1JBWC1BUkdPRkZTRVQoJXJzcCkKQEAgLTIzMCw4ICsyNDEsOSBAQAogCS5xdWFkIDFiLGlhMzJfYmFkYXJnCiAJLnByZXZpb3VzCQogCUdFVF9USFJFQURfSU5GTyglcjEwKQotCW9ybCAgICRUU19DT01QQVQsdGhyZWFkaW5mb19zdGF0dXMoJXIxMCkKLQl0ZXN0bCAkKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElGX1NZU0NBTExfQVVESVR8X1RJRl9TRUNDT01QKSx0aHJlYWRpbmZvX2ZsYWdzKCVyMTApCisJb3JsICAgJFRTX0NPTVBBVCxUSV9zdGF0dXMoJXIxMCkKKwl0ZXN0bCAkKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElGX1NZU0NBTExfQVVESVR8X1RJRl9TRUNDT01QKSwgXAorCQlUSV9mbGFncyglcjEwKQogCUNGSV9SRU1FTUJFUl9TVEFURQogCWpueiAgIGNzdGFyX3RyYWNlc3lzCiBjc3Rhcl9kb19jYWxsOgkKQEAgLTI0MSwxMSArMjUzLDExIEBACiAJY2FsbCAqaWEzMl9zeXNfY2FsbF90YWJsZSgsJXJheCw4KQogCW1vdnEgJXJheCxSQVgtQVJHT0ZGU0VUKCVyc3ApCiAJR0VUX1RIUkVBRF9JTkZPKCVyMTApCi0JY2xpCisJRElTQUJMRV9JTlRFUlJVUFRTKENMQlJfTk9ORSkKIAlUUkFDRV9JUlFTX09GRgotCXRlc3RsICRfVElGX0FMTFdPUktfTUFTSyx0aHJlYWRpbmZvX2ZsYWdzKCVyMTApCisJdGVzdGwgJF9USUZfQUxMV09SS19NQVNLLFRJX2ZsYWdzKCVyMTApCiAJam56ICBpbnRfcmV0X2Zyb21fc3lzX2NhbGwKLQlhbmRsICR+VFNfQ09NUEFULHRocmVhZGluZm9fc3RhdHVzKCVyMTApCisJYW5kbCAkflRTX0NPTVBBVCxUSV9zdGF0dXMoJXIxMCkKIAlSRVNUT1JFX0FSR1MgMSwtQVJHX1NLSVAsMSwxLDEKIAltb3ZsIFJJUC1BUkdPRkZTRVQoJXJzcCksJWVjeAogCUNGSV9SRUdJU1RFUiByaXAscmN4CkBAIC0yNTQsOCArMjY2LDcgQEAKIAlUUkFDRV9JUlFTX09OCiAJbW92bCBSU1AtQVJHT0ZGU0VUKCVyc3ApLCVlc3AKIAlDRklfUkVTVE9SRSByc3AKLQlzd2FwZ3MKLQlzeXNyZXRsCisJVVNFUkdTX1NZU1JFVDMyCiAJCiBjc3Rhcl90cmFjZXN5czoJCiAJQ0ZJX1JFU1RPUkVfU1RBVEUKQEAgLTMxMCwxMiArMzIxLDEyIEBACiAJLypDRklfUkVMX09GRlNFVAlyZmxhZ3MsRUZMQUdTLVJJUCovCiAJLypDRklfUkVMX09GRlNFVAljcyxDUy1SSVAqLwogCUNGSV9SRUxfT0ZGU0VUCXJpcCxSSVAtUklQCi0Jc3dhcGdzCisJU1dBUEdTCiAJLyoKIAkgKiBObyBuZWVkIHRvIGZvbGxvdyB0aGlzIGlycXMgb24vb2ZmIHNlY3Rpb246IHRoZSBzeXNjYWxsCiAJICogZGlzYWJsZWQgaXJxcyBhbmQgaGVyZSB3ZSBlbmFibGUgaXQgc3RyYWlnaHQgYWZ0ZXIgZW50cnk6CiAJICovCi0Jc3RpCisJRU5BQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQogCW1vdmwgJWVheCwlZWF4CiAJcHVzaHEgJXJheAogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4CkBAIC0zMjQsOCArMzM1LDkgQEAKIAkgICB0aGlzIGNvdWxkIGJlIGEgcHJvYmxlbS4gKi8KIAlTQVZFX0FSR1MgMCwwLDEKIAlHRVRfVEhSRUFEX0lORk8oJXIxMCkKLQlvcmwgICAkVFNfQ09NUEFULHRocmVhZGluZm9fc3RhdHVzKCVyMTApCi0JdGVzdGwgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0VDQ09NUCksdGhyZWFkaW5mb19mbGFncyglcjEwKQorCW9ybCAgICRUU19DT01QQVQsVElfc3RhdHVzKCVyMTApCisJdGVzdGwgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0VDQ09NUCksIFwKKwkJVElfZmxhZ3MoJXIxMCkKIAlqbnogaWEzMl90cmFjZXN5cwogaWEzMl9kb19zeXNjYWxsOgkKIAljbXBsICQoSUEzMl9OUl9zeXNjYWxscy0xKSwlZWF4CkBAIC0zNzAsMTMgKzM4MiwxMSBAQAogCVBUUkVHU0NBTEwgc3R1YjMyX3J0X3NpZ3JldHVybiwgc3lzMzJfcnRfc2lncmV0dXJuLCAlcmRpCiAJUFRSRUdTQ0FMTCBzdHViMzJfc2lncmV0dXJuLCBzeXMzMl9zaWdyZXR1cm4sICVyZGkKIAlQVFJFR1NDQUxMIHN0dWIzMl9zaWdhbHRzdGFjaywgc3lzMzJfc2lnYWx0c3RhY2ssICVyZHgKLQlQVFJFR1NDQUxMIHN0dWIzMl9zaWdzdXNwZW5kLCBzeXMzMl9zaWdzdXNwZW5kLCAlcmN4CiAJUFRSRUdTQ0FMTCBzdHViMzJfZXhlY3ZlLCBzeXMzMl9leGVjdmUsICVyY3gKIAlQVFJFR1NDQUxMIHN0dWIzMl9mb3JrLCBzeXNfZm9yaywgJXJkaQogCVBUUkVHU0NBTEwgc3R1YjMyX2Nsb25lLCBzeXMzMl9jbG9uZSwgJXJkeAogCVBUUkVHU0NBTEwgc3R1YjMyX3Zmb3JrLCBzeXNfdmZvcmssICVyZGkKIAlQVFJFR1NDQUxMIHN0dWIzMl9pb3BsLCBzeXNfaW9wbCwgJXJzaQotCVBUUkVHU0NBTEwgc3R1YjMyX3J0X3NpZ3N1c3BlbmQsIHN5c19ydF9zaWdzdXNwZW5kLCAlcmR4CiAKIEVOVFJZKGlhMzJfcHRyZWdzX2NvbW1vbikKIAlwb3BxICVyMTEKQEAgLTQ3Niw3ICs0ODYsNyBAQAogCS5xdWFkIHN5c19zc2V0bWFzawogCS5xdWFkIHN5c19zZXRyZXVpZDE2CS8qIDcwICovCiAJLnF1YWQgc3lzX3NldHJlZ2lkMTYKLQkucXVhZCBzdHViMzJfc2lnc3VzcGVuZAorCS5xdWFkIHN5czMyX3NpZ3N1c3BlbmQKIAkucXVhZCBjb21wYXRfc3lzX3NpZ3BlbmRpbmcKIAkucXVhZCBzeXNfc2V0aG9zdG5hbWUKIAkucXVhZCBjb21wYXRfc3lzX3NldHJsaW1pdAkvKiA3NSAqLwpAQCAtNTgzLDcgKzU5Myw3IEBACiAJLnF1YWQgc3lzMzJfcnRfc2lncGVuZGluZwogCS5xdWFkIGNvbXBhdF9zeXNfcnRfc2lndGltZWR3YWl0CiAJLnF1YWQgc3lzMzJfcnRfc2lncXVldWVpbmZvCi0JLnF1YWQgc3R1YjMyX3J0X3NpZ3N1c3BlbmQKKwkucXVhZCBzeXNfcnRfc2lnc3VzcGVuZAogCS5xdWFkIHN5czMyX3ByZWFkCQkvKiAxODAgKi8KIAkucXVhZCBzeXMzMl9wd3JpdGUKIAkucXVhZCBzeXNfY2hvd24xNgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsLy5naXRpZ25vcmUgYi9hcmNoL3g4Ni9rZXJuZWwvLmdpdGlnbm9yZQppbmRleCA0ZWEzOGEzLi4wOGY0ZmQ3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvLmdpdGlnbm9yZQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDMgQEAKIHZzeXNjYWxsLmxkcwogdnN5c2NhbGxfMzIubGRzCit2bWxpbnV4LmxkcwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL01ha2VmaWxlIGIvYXJjaC94ODYva2VybmVsL01ha2VmaWxlCmluZGV4IDc3ODA3ZDQuLjUxMTJjODQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUKQEAgLTIsMTAgKzIsMTcgQEAKICMgTWFrZWZpbGUgZm9yIHRoZSBsaW51eCBrZXJuZWwuCiAjCiAKLWV4dHJhLXkgICAgICAgICAgICAgICAgOj0gaGVhZF8kKEJJVFMpLm8gaGVhZCQoQklUUykubyBpbml0X3Rhc2subyB2bWxpbnV4LmxkcworZXh0cmEteSAgICAgICAgICAgICAgICA6PSBoZWFkXyQoQklUUykubyBoZWFkJChCSVRTKS5vIGhlYWQubyBpbml0X3Rhc2subyB2bWxpbnV4LmxkcwogCiBDUFBGTEFHU192bWxpbnV4LmxkcyArPSAtVSQoVVRTX01BQ0hJTkUpCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKKyMgRG8gbm90IHByb2ZpbGUgZGVidWcgdXRpbGl0aWVzCitDRkxBR1NfUkVNT1ZFX3RzY182NC5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX3RzY18zMi5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX3J0Yy5vID0gLXBnCitlbmRpZgorCiAjCiAjIHZzeXNjYWxscyAod2hpY2ggd29yayBvbiB0aGUgdXNlciBzdGFjaykgc2hvdWxkIGhhdmUKICMgbm8gc3RhY2stcHJvdGVjdG9yIGNoZWNrczoKQEAgLTEzLDIwICsyMCwyMSBAQAogbm9zdGFja3AgOj0gJChjYWxsIGNjLW9wdGlvbiwgLWZuby1zdGFjay1wcm90ZWN0b3IpCiBDRkxBR1NfdnN5c2NhbGxfNjQubwk6PSAkKFBST0ZJTElORykgLWcwICQobm9zdGFja3ApCiBDRkxBR1NfaHBldC5vCQk6PSAkKG5vc3RhY2twKQotQ0ZMQUdTX3RzY182NC5vCQk6PSAkKG5vc3RhY2twKQorQ0ZMQUdTX3RzYy5vCQk6PSAkKG5vc3RhY2twKQogCiBvYmoteQkJCTo9IHByb2Nlc3NfJChCSVRTKS5vIHNpZ25hbF8kKEJJVFMpLm8gZW50cnlfJChCSVRTKS5vCiBvYmoteQkJCSs9IHRyYXBzXyQoQklUUykubyBpcnFfJChCSVRTKS5vCiBvYmoteQkJCSs9IHRpbWVfJChCSVRTKS5vIGlvcG9ydC5vIGxkdC5vCi1vYmoteQkJCSs9IHNldHVwXyQoQklUUykubyBpODI1OV8kKEJJVFMpLm8gc2V0dXAubworb2JqLXkJCQkrPSBzZXR1cC5vIGk4MjU5Lm8gaXJxaW5pdF8kKEJJVFMpLm8gc2V0dXBfcGVyY3B1Lm8KK29iai0kKENPTkZJR19YODZfVklTV1MpCSs9IHZpc3dzX3F1aXJrcy5vCitvYmotJChDT05GSUdfWDg2XzMyKQkrPSBwcm9iZV9yb21zXzMyLm8KIG9iai0kKENPTkZJR19YODZfMzIpCSs9IHN5c19pMzg2XzMyLm8gaTM4Nl9rc3ltc18zMi5vCiBvYmotJChDT05GSUdfWDg2XzY0KQkrPSBzeXNfeDg2XzY0Lm8geDg2NjRfa3N5bXNfNjQubwotb2JqLSQoQ09ORklHX1g4Nl82NCkJKz0gc3lzY2FsbF82NC5vIHZzeXNjYWxsXzY0Lm8gc2V0dXA2NC5vCi1vYmoteQkJCSs9IGJvb3RmbGFnLm8gZTgyMF8kKEJJVFMpLm8KK29iai0kKENPTkZJR19YODZfNjQpCSs9IHN5c2NhbGxfNjQubyB2c3lzY2FsbF82NC5vCitvYmoteQkJCSs9IGJvb3RmbGFnLm8gZTgyMC5vCiBvYmoteQkJCSs9IHBjaS1kbWEubyBxdWlya3MubyBpODIzNy5vIHRvcG9sb2d5Lm8ga2RlYnVnZnMubwogb2JqLXkJCQkrPSBhbHRlcm5hdGl2ZS5vIGk4MjUzLm8gcGNpLW5vbW11Lm8KLW9iai0kKENPTkZJR19YODZfNjQpCSs9IGJ1Z3NfNjQubwotb2JqLXkJCQkrPSB0c2NfJChCSVRTKS5vIGlvX2RlbGF5Lm8gcnRjLm8KK29iai15CQkJKz0gdHNjLm8gaW9fZGVsYXkubyBydGMubwogCiBvYmotJChDT05GSUdfWDg2X1RSQU1QT0xJTkUpCSs9IHRyYW1wb2xpbmUubwogb2JqLXkJCQkJKz0gcHJvY2Vzcy5vCkBAIC01Myw5ICs2MSwxMCBAQAogb2JqLSQoQ09ORklHX1g4Nl82NF9TTVApCSs9IHRzY19zeW5jLm8gc21wY29tbW9uLm8KIG9iai0kKENPTkZJR19YODZfVFJBTVBPTElORSkJKz0gdHJhbXBvbGluZV8kKEJJVFMpLm8KIG9iai0kKENPTkZJR19YODZfTVBQQVJTRSkJKz0gbXBwYXJzZS5vCi1vYmotJChDT05GSUdfWDg2X0xPQ0FMX0FQSUMpCSs9IGFwaWNfJChCSVRTKS5vIG5taV8kKEJJVFMpLm8KK29iai0kKENPTkZJR19YODZfTE9DQUxfQVBJQykJKz0gYXBpY18kKEJJVFMpLm8gbm1pLm8KIG9iai0kKENPTkZJR19YODZfSU9fQVBJQykJKz0gaW9fYXBpY18kKEJJVFMpLm8KIG9iai0kKENPTkZJR19YODZfUkVCT09URklYVVBTKQkrPSByZWJvb3RfZml4dXBzXzMyLm8KK29iai0kKENPTkZJR19EWU5BTUlDX0ZUUkFDRSkJKz0gZnRyYWNlLm8KIG9iai0kKENPTkZJR19LRVhFQykJCSs9IG1hY2hpbmVfa2V4ZWNfJChCSVRTKS5vCiBvYmotJChDT05GSUdfS0VYRUMpCQkrPSByZWxvY2F0ZV9rZXJuZWxfJChCSVRTKS5vIGNyYXNoLm8KIG9iai0kKENPTkZJR19DUkFTSF9EVU1QKQkrPSBjcmFzaF9kdW1wXyQoQklUUykubwpAQCAtNjQsNyArNzMsNiBAQAogb2JqLXkJCQkJKz0gdnNtcF82NC5vCiBvYmotJChDT05GSUdfS1BST0JFUykJCSs9IGtwcm9iZXMubwogb2JqLSQoQ09ORklHX01PRFVMRVMpCQkrPSBtb2R1bGVfJChCSVRTKS5vCi1vYmotJChDT05GSUdfQUNQSV9TUkFUKSAJKz0gc3JhdF8zMi5vCiBvYmotJChDT05GSUdfRUZJKSAJCSs9IGVmaS5vIGVmaV8kKEJJVFMpLm8gZWZpX3N0dWJfJChCSVRTKS5vCiBvYmotJChDT05GSUdfRE9VQkxFRkFVTFQpIAkrPSBkb3VibGVmYXVsdF8zMi5vCiBvYmotJChDT05GSUdfS0dEQikJCSs9IGtnZGIubwpAQCAtOTQsMTIgKzEwMiwxMyBAQAogIyMjCiAjIDY0IGJpdCBzcGVjaWZpYyBmaWxlcwogaWZlcSAoJChDT05GSUdfWDg2XzY0KSx5KQotICAgICAgICBvYmoteQkJCQkrPSBnZW5hcGljXzY0Lm8gZ2VuYXBpY19mbGF0XzY0Lm8gZ2VueDJhcGljX3V2X3gubworICAgICAgICBvYmoteQkJCQkrPSBnZW5hcGljXzY0Lm8gZ2VuYXBpY19mbGF0XzY0Lm8gZ2VueDJhcGljX3V2X3gubyB0bGJfdXYubwogICAgICAgICBvYmotJChDT05GSUdfWDg2X1BNX1RJTUVSKQkrPSBwbXRpbWVyXzY0Lm8KICAgICAgICAgb2JqLSQoQ09ORklHX0FVRElUKQkJKz0gYXVkaXRfNjQubwogCiAgICAgICAgIG9iai0kKENPTkZJR19HQVJUX0lPTU1VKQkrPSBwY2ktZ2FydF82NC5vIGFwZXJ0dXJlXzY0Lm8KICAgICAgICAgb2JqLSQoQ09ORklHX0NBTEdBUllfSU9NTVUpCSs9IHBjaS1jYWxnYXJ5XzY0Lm8gdGNlXzY0Lm8KKyAgICAgICAgb2JqLSQoQ09ORklHX0FNRF9JT01NVSkJCSs9IGFtZF9pb21tdV9pbml0Lm8gYW1kX2lvbW11Lm8KICAgICAgICAgb2JqLSQoQ09ORklHX1NXSU9UTEIpCQkrPSBwY2ktc3dpb3RsYl82NC5vCiAKICAgICAgICAgb2JqLSQoQ09ORklHX1BDSV9NTUNPTkZJRykJKz0gbW1jb25mLWZhbTEwaF82NC5vCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9ib290LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9ib290LmMKaW5kZXggMzNjNTIxNi4uZjQ4OWQ3YSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FjcGkvYm9vdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL2Jvb3QuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KICNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgogI2luY2x1ZGUgPGFzbS9zbXAuaD4KQEAgLTEwNiwyMSArMTA3LDYgQEAKICAqLwogZW51bSBhY3BpX2lycV9tb2RlbF9pZCBhY3BpX2lycV9tb2RlbCA9IEFDUElfSVJRX01PREVMX1BJQzsKIAotI2lmZGVmCUNPTkZJR19YODZfNjQKLQotLyogcmVseSBvbiBhbGwgQUNQSSB0YWJsZXMgYmVpbmcgaW4gdGhlIGRpcmVjdCBtYXBwaW5nICovCi1jaGFyICpfX2luaXQgX19hY3BpX21hcF90YWJsZSh1bnNpZ25lZCBsb25nIHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQotewotCWlmICghcGh5c19hZGRyIHx8ICFzaXplKQotCQlyZXR1cm4gTlVMTDsKLQotCWlmIChwaHlzX2FkZHIrc2l6ZSA8PSAobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkgKyBQQUdFX1NJWkUpCi0JCXJldHVybiBfX3ZhKHBoeXNfYWRkcik7Ci0KLQlyZXR1cm4gTlVMTDsKLX0KLQotI2Vsc2UKIAogLyoKICAqIFRlbXBvcmFyaWx5IHVzZSB0aGUgdmlydHVhbCBhcmVhIHN0YXJ0aW5nIGZyb20gRklYX0lPX0FQSUNfQkFTRV9FTkQsCkBAIC0xMzksMTEgKzEyNSwxNSBAQAogCXVuc2lnbmVkIGxvbmcgYmFzZSwgb2Zmc2V0LCBtYXBwZWRfc2l6ZTsKIAlpbnQgaWR4OwogCi0JaWYgKHBoeXMgKyBzaXplIDwgOCAqIDEwMjQgKiAxMDI0KQorCWlmICghcGh5cyB8fCAhc2l6ZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAocGh5cytzaXplIDw9IChtYXhfbG93X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpCiAJCXJldHVybiBfX3ZhKHBoeXMpOwogCiAJb2Zmc2V0ID0gcGh5cyAmIChQQUdFX1NJWkUgLSAxKTsKIAltYXBwZWRfc2l6ZSA9IFBBR0VfU0laRSAtIG9mZnNldDsKKwljbGVhcl9maXhtYXAoRklYX0FDUElfRU5EKTsKIAlzZXRfZml4bWFwKEZJWF9BQ1BJX0VORCwgcGh5cyk7CiAJYmFzZSA9IGZpeF90b192aXJ0KEZJWF9BQ1BJX0VORCk7CiAKQEAgLTE1NSwxMyArMTQ1LDEzIEBACiAJCWlmICgtLWlkeCA8IEZJWF9BQ1BJX0JFR0lOKQogCQkJcmV0dXJuIE5VTEw7CS8qIGNhbm5vdCBoYW5kbGUgdGhpcyAqLwogCQlwaHlzICs9IFBBR0VfU0laRTsKKwkJY2xlYXJfZml4bWFwKGlkeCk7CiAJCXNldF9maXhtYXAoaWR4LCBwaHlzKTsKIAkJbWFwcGVkX3NpemUgKz0gUEFHRV9TSVpFOwogCX0KIAogCXJldHVybiAoKHVuc2lnbmVkIGNoYXIgKiliYXNlICsgb2Zmc2V0KTsKIH0KLSNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1BDSV9NTUNPTkZJRwogLyogVGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIE1NQ09ORklHIGFwZXJ0dXJlLiAgU2V0IGZyb20gQUNQSSB0YWJsZXMuICovCkBAIC0zMzgsOCArMzI4LDYgQEAKIAogI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCi1zdHJ1Y3QgbXBfaW9hcGljX3JvdXRpbmcgbXBfaW9hcGljX3JvdXRpbmdbTUFYX0lPX0FQSUNTXTsKLQogc3RhdGljIGludCBfX2luaXQKIGFjcGlfcGFyc2VfaW9hcGljKHN0cnVjdCBhY3BpX3N1YnRhYmxlX2hlYWRlciAqIGhlYWRlciwgY29uc3QgdW5zaWduZWQgbG9uZyBlbmQpCiB7CkBAIC01MTQsOCArNTAyLDYgQEAKIAkgKiBNYWtlIHN1cmUgYWxsIChsZWdhY3kpIFBDSSBJUlFzIGFyZSBzZXQgYXMgbGV2ZWwtdHJpZ2dlcmVkLgogCSAqLwogCWlmIChhY3BpX2lycV9tb2RlbCA9PSBBQ1BJX0lSUV9NT0RFTF9QSUMpIHsKLQkJZXh0ZXJuIHZvaWQgZWlzYV9zZXRfbGV2ZWxfaXJxKHVuc2lnbmVkIGludCBpcnEpOwotCiAJCWlmICh0cmlnZ2VyaW5nID09IEFDUElfTEVWRUxfU0VOU0lUSVZFKQogCQkJZWlzYV9zZXRfbGV2ZWxfaXJxKGdzaSk7CiAJfQpAQCAtODYwLDYgKzg0NiwzNjQgQEAKICNlbmRpZgkJCQkvKiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMgKi8KIAogI2lmZGVmCUNPTkZJR19YODZfSU9fQVBJQworI2RlZmluZSBNUF9JU0FfQlVTCQkwCisKKyNpZmRlZiBDT05GSUdfWDg2X0VTNzAwMAorZXh0ZXJuIGludCBlczcwMDBfcGxhdDsKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHsKKwlpbnQgYXBpY19pZDsKKwlpbnQgZ3NpX2Jhc2U7CisJaW50IGdzaV9lbmQ7CisJREVDTEFSRV9CSVRNQVAocGluX3Byb2dyYW1tZWQsIE1QX01BWF9JT0FQSUNfUElOICsgMSk7Cit9IG1wX2lvYXBpY19yb3V0aW5nW01BWF9JT19BUElDU107CisKK3N0YXRpYyBpbnQgbXBfZmluZF9pb2FwaWMoaW50IGdzaSkKK3sKKwlpbnQgaSA9IDA7CisKKwkvKiBGaW5kIHRoZSBJT0FQSUMgdGhhdCBtYW5hZ2VzIHRoaXMgR1NJLiAqLworCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNzOyBpKyspIHsKKwkJaWYgKChnc2kgPj0gbXBfaW9hcGljX3JvdXRpbmdbaV0uZ3NpX2Jhc2UpCisJCSAgICAmJiAoZ3NpIDw9IG1wX2lvYXBpY19yb3V0aW5nW2ldLmdzaV9lbmQpKQorCQkJcmV0dXJuIGk7CisJfQorCisJcHJpbnRrKEtFUk5fRVJSICJFUlJPUjogVW5hYmxlIHRvIGxvY2F0ZSBJT0FQSUMgZm9yIEdTSSAlZFxuIiwgZ3NpKTsKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyB1OCBfX2luaXQgdW5pcV9pb2FwaWNfaWQodTggaWQpCit7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWlmICgoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwpICYmCisJICAgICFBUElDX1hBUElDKGFwaWNfdmVyc2lvbltib290X2NwdV9waHlzaWNhbF9hcGljaWRdKSkKKwkJcmV0dXJuIGlvX2FwaWNfZ2V0X3VuaXF1ZV9pZChucl9pb2FwaWNzLCBpZCk7CisJZWxzZQorCQlyZXR1cm4gaWQ7CisjZWxzZQorCWludCBpOworCURFQ0xBUkVfQklUTUFQKHVzZWQsIDI1Nik7CisJYml0bWFwX3plcm8odXNlZCwgMjU2KTsKKwlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7CisJCXN0cnVjdCBtcF9jb25maWdfaW9hcGljICppYSA9ICZtcF9pb2FwaWNzW2ldOworCQlfX3NldF9iaXQoaWEtPm1wX2FwaWNpZCwgdXNlZCk7CisJfQorCWlmICghdGVzdF9iaXQoaWQsIHVzZWQpKQorCQlyZXR1cm4gaWQ7CisJcmV0dXJuIGZpbmRfZmlyc3RfemVyb19iaXQodXNlZCwgMjU2KTsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50IGJhZF9pb2FwaWModW5zaWduZWQgbG9uZyBhZGRyZXNzKQoreworCWlmIChucl9pb2FwaWNzID49IE1BWF9JT19BUElDUykgeworCQlwcmludGsoS0VSTl9FUlIgIkVSUk9SOiBNYXggIyBvZiBJL08gQVBJQ3MgKCVkKSBleGNlZWRlZCAiCisJCSAgICAgICAiKGZvdW5kICVkKVxuIiwgTUFYX0lPX0FQSUNTLCBucl9pb2FwaWNzKTsKKwkJcGFuaWMoIlJlY29tcGlsZSBrZXJuZWwgd2l0aCBiaWdnZXIgTUFYX0lPX0FQSUNTIVxuIik7CisJfQorCWlmICghYWRkcmVzcykgeworCQlwcmludGsoS0VSTl9FUlIgIldBUk5JTkc6IEJvZ3VzICh6ZXJvKSBJL08gQVBJQyBhZGRyZXNzIgorCQkgICAgICAgIiBmb3VuZCBpbiB0YWJsZSwgc2tpcHBpbmchXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCit2b2lkIF9faW5pdCBtcF9yZWdpc3Rlcl9pb2FwaWMoaW50IGlkLCB1MzIgYWRkcmVzcywgdTMyIGdzaV9iYXNlKQoreworCWludCBpZHggPSAwOworCisJaWYgKGJhZF9pb2FwaWMoYWRkcmVzcykpCisJCXJldHVybjsKKworCWlkeCA9IG5yX2lvYXBpY3M7CisKKwltcF9pb2FwaWNzW2lkeF0ubXBfdHlwZSA9IE1QX0lPQVBJQzsKKwltcF9pb2FwaWNzW2lkeF0ubXBfZmxhZ3MgPSBNUENfQVBJQ19VU0FCTEU7CisJbXBfaW9hcGljc1tpZHhdLm1wX2FwaWNhZGRyID0gYWRkcmVzczsKKworCXNldF9maXhtYXBfbm9jYWNoZShGSVhfSU9fQVBJQ19CQVNFXzAgKyBpZHgsIGFkZHJlc3MpOworCW1wX2lvYXBpY3NbaWR4XS5tcF9hcGljaWQgPSB1bmlxX2lvYXBpY19pZChpZCk7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCW1wX2lvYXBpY3NbaWR4XS5tcF9hcGljdmVyID0gaW9fYXBpY19nZXRfdmVyc2lvbihpZHgpOworI2Vsc2UKKwltcF9pb2FwaWNzW2lkeF0ubXBfYXBpY3ZlciA9IDA7CisjZW5kaWYKKwkvKgorCSAqIEJ1aWxkIGJhc2ljIEdTSSBsb29rdXAgdGFibGUgdG8gZmFjaWxpdGF0ZSBnc2ktPmlvX2FwaWMgbG9va3VwcworCSAqIGFuZCB0byBwcmV2ZW50IHJlcHJvZ3JhbW1pbmcgb2YgSU9BUElDIHBpbnMgKFBDSSBHU0lzKS4KKwkgKi8KKwltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmFwaWNfaWQgPSBtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2lkOworCW1wX2lvYXBpY19yb3V0aW5nW2lkeF0uZ3NpX2Jhc2UgPSBnc2lfYmFzZTsKKwltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9lbmQgPSBnc2lfYmFzZSArCisJICAgIGlvX2FwaWNfZ2V0X3JlZGlyX2VudHJpZXMoaWR4KTsKKworCXByaW50ayhLRVJOX0lORk8gIklPQVBJQ1slZF06IGFwaWNfaWQgJWQsIHZlcnNpb24gJWQsIGFkZHJlc3MgMHglbHgsICIKKwkgICAgICAgIkdTSSAlZC0lZFxuIiwgaWR4LCBtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2lkLAorCSAgICAgICBtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY3ZlciwgbXBfaW9hcGljc1tpZHhdLm1wX2FwaWNhZGRyLAorCSAgICAgICBtcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9iYXNlLCBtcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9lbmQpOworCisJbnJfaW9hcGljcysrOworfQorCitzdGF0aWMgdm9pZCBhc3NpZ25fdG9fbXBfaXJxKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptLAorCQkJCSAgICBzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqbXBfaXJxKQoreworCW1lbWNweShtcF9pcnEsIG0sIHNpemVvZihzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYykpOworfQorCitzdGF0aWMgaW50IG1wX2lycV9jbXAoc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgKm1wX2lycSwKKwkJCQlzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqbSkKK3sKKwlyZXR1cm4gbWVtY21wKG1wX2lycSwgbSwgc2l6ZW9mKHN0cnVjdCBtcF9jb25maWdfaW50c3JjKSk7Cit9CisKK3N0YXRpYyB2b2lkIHNhdmVfbXBfaXJxKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKKwkJaWYgKCFtcF9pcnFfY21wKCZtcF9pcnFzW2ldLCBtKSkKKwkJCXJldHVybjsKKwl9CisKKwlhc3NpZ25fdG9fbXBfaXJxKG0sICZtcF9pcnFzW21wX2lycV9lbnRyaWVzXSk7CisJaWYgKCsrbXBfaXJxX2VudHJpZXMgPT0gTUFYX0lSUV9TT1VSQ0VTKQorCQlwYW5pYygiTWF4ICMgb2YgaXJxIHNvdXJjZXMgZXhjZWVkZWQhIVxuIik7Cit9CisKK3ZvaWQgX19pbml0IG1wX292ZXJyaWRlX2xlZ2FjeV9pcnEodTggYnVzX2lycSwgdTggcG9sYXJpdHksIHU4IHRyaWdnZXIsIHUzMiBnc2kpCit7CisJaW50IGlvYXBpYzsKKwlpbnQgcGluOworCXN0cnVjdCBtcF9jb25maWdfaW50c3JjIG1wX2lycTsKKworCS8qCisJICogQ29udmVydCAnZ3NpJyB0byAnaW9hcGljLnBpbicuCisJICovCisJaW9hcGljID0gbXBfZmluZF9pb2FwaWMoZ3NpKTsKKwlpZiAoaW9hcGljIDwgMCkKKwkJcmV0dXJuOworCXBpbiA9IGdzaSAtIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uZ3NpX2Jhc2U7CisKKwkvKgorCSAqIFRCRDogVGhpcyBjaGVjayBpcyBmb3IgZmF1bHR5IHRpbWVyIGVudHJpZXMsIHdoZXJlIHRoZSBvdmVycmlkZQorCSAqICAgICAgZXJyb25lb3VzbHkgc2V0cyB0aGUgdHJpZ2dlciB0byBsZXZlbCwgcmVzdWx0aW5nIGluIGEgSFVHRQorCSAqICAgICAgaW5jcmVhc2Ugb2YgdGltZXIgaW50ZXJydXB0cyEKKwkgKi8KKwlpZiAoKGJ1c19pcnEgPT0gMCkgJiYgKHRyaWdnZXIgPT0gMykpCisJCXRyaWdnZXIgPSAxOworCisJbXBfaXJxLm1wX3R5cGUgPSBNUF9JTlRTUkM7CisJbXBfaXJxLm1wX2lycXR5cGUgPSBtcF9JTlQ7CisJbXBfaXJxLm1wX2lycWZsYWcgPSAodHJpZ2dlciA8PCAyKSB8IHBvbGFyaXR5OworCW1wX2lycS5tcF9zcmNidXMgPSBNUF9JU0FfQlVTOworCW1wX2lycS5tcF9zcmNidXNpcnEgPSBidXNfaXJxOwkvKiBJUlEgKi8KKwltcF9pcnEubXBfZHN0YXBpYyA9IG1wX2lvYXBpY3NbaW9hcGljXS5tcF9hcGljaWQ7IC8qIEFQSUMgSUQgKi8KKwltcF9pcnEubXBfZHN0aXJxID0gcGluOwkvKiBJTlRJTiMgKi8KKworCXNhdmVfbXBfaXJxKCZtcF9pcnEpOworfQorCit2b2lkIF9faW5pdCBtcF9jb25maWdfYWNwaV9sZWdhY3lfaXJxcyh2b2lkKQoreworCWludCBpOworCWludCBpb2FwaWM7CisJdW5zaWduZWQgaW50IGRzdGFwaWM7CisJc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgbXBfaXJxOworCisjaWYgZGVmaW5lZCAoQ09ORklHX01DQSkgfHwgZGVmaW5lZCAoQ09ORklHX0VJU0EpCisJLyoKKwkgKiBGYWJyaWNhdGUgdGhlIGxlZ2FjeSBJU0EgYnVzIChidXMgIzMxKS4KKwkgKi8KKwltcF9idXNfaWRfdG9fdHlwZVtNUF9JU0FfQlVTXSA9IE1QX0JVU19JU0E7CisjZW5kaWYKKwlzZXRfYml0KE1QX0lTQV9CVVMsIG1wX2J1c19ub3RfcGNpKTsKKwlEcHJpbnRrKCJCdXMgIyVkIGlzIElTQVxuIiwgTVBfSVNBX0JVUyk7CisKKyNpZmRlZiBDT05GSUdfWDg2X0VTNzAwMAorCS8qCisJICogT2xkZXIgZ2VuZXJhdGlvbnMgb2YgRVM3MDAwIGhhdmUgbm8gbGVnYWN5IGlkZW50aXR5IG1hcHBpbmdzCisJICovCisJaWYgKGVzNzAwMF9wbGF0ID09IDEpCisJCXJldHVybjsKKyNlbmRpZgorCisJLyoKKwkgKiBMb2NhdGUgdGhlIElPQVBJQyB0aGF0IG1hbmFnZXMgdGhlIElTQSBJUlFzICgwLTE1KS4KKwkgKi8KKwlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYygwKTsKKwlpZiAoaW9hcGljIDwgMCkKKwkJcmV0dXJuOworCWRzdGFwaWMgPSBtcF9pb2FwaWNzW2lvYXBpY10ubXBfYXBpY2lkOworCisJLyoKKwkgKiBVc2UgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIElSUXMgMC0xNS4gIFVubGVzcworCSAqIG92ZXJyaWRkZW4gYnkgKE1BRFQpIGludGVycnVwdCBzb3VyY2Ugb3ZlcnJpZGUgZW50cmllcy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgeworCQlpbnQgaWR4OworCisJCWZvciAoaWR4ID0gMDsgaWR4IDwgbXBfaXJxX2VudHJpZXM7IGlkeCsrKSB7CisJCQlzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqaXJxID0gbXBfaXJxcyArIGlkeDsKKworCQkJLyogRG8gd2UgYWxyZWFkeSBoYXZlIGEgbWFwcGluZyBmb3IgdGhpcyBJU0EgSVJRPyAqLworCQkJaWYgKGlycS0+bXBfc3JjYnVzID09IE1QX0lTQV9CVVMKKwkJCSAgICAmJiBpcnEtPm1wX3NyY2J1c2lycSA9PSBpKQorCQkJCWJyZWFrOworCisJCQkvKiBEbyB3ZSBhbHJlYWR5IGhhdmUgYSBtYXBwaW5nIGZvciB0aGlzIElPQVBJQyBwaW4gKi8KKwkJCWlmIChpcnEtPm1wX2RzdGFwaWMgPT0gZHN0YXBpYyAmJgorCQkJICAgIGlycS0+bXBfZHN0aXJxID09IGkpCisJCQkJYnJlYWs7CisJCX0KKworCQlpZiAoaWR4ICE9IG1wX2lycV9lbnRyaWVzKSB7CisJCQlwcmludGsoS0VSTl9ERUJVRyAiQUNQSTogSVJRJWQgdXNlZCBieSBvdmVycmlkZS5cbiIsIGkpOworCQkJY29udGludWU7CS8qIElSUSBhbHJlYWR5IHVzZWQgKi8KKwkJfQorCisJCW1wX2lycS5tcF90eXBlID0gTVBfSU5UU1JDOworCQltcF9pcnEubXBfaXJxZmxhZyA9IDA7CS8qIENvbmZvcm1pbmcgKi8KKwkJbXBfaXJxLm1wX3NyY2J1cyA9IE1QX0lTQV9CVVM7CisJCW1wX2lycS5tcF9kc3RhcGljID0gZHN0YXBpYzsKKwkJbXBfaXJxLm1wX2lycXR5cGUgPSBtcF9JTlQ7CisJCW1wX2lycS5tcF9zcmNidXNpcnEgPSBpOyAvKiBJZGVudGl0eSBtYXBwZWQgKi8KKwkJbXBfaXJxLm1wX2RzdGlycSA9IGk7CisKKwkJc2F2ZV9tcF9pcnEoJm1wX2lycSk7CisJfQorfQorCitpbnQgbXBfcmVnaXN0ZXJfZ3NpKHUzMiBnc2ksIGludCB0cmlnZ2VyaW5nLCBpbnQgcG9sYXJpdHkpCit7CisJaW50IGlvYXBpYzsKKwlpbnQgaW9hcGljX3BpbjsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjZGVmaW5lIE1BWF9HU0lfTlVNCTQwOTYKKyNkZWZpbmUgSVJRX0NPTVBSRVNTSU9OX1NUQVJUCTY0CisKKwlzdGF0aWMgaW50IHBjaV9pcnEgPSBJUlFfQ09NUFJFU1NJT05fU1RBUlQ7CisJLyoKKwkgKiBNYXBwaW5nIGJldHdlZW4gR2xvYmFsIFN5c3RlbSBJbnRlcnJ1cHRzLCB3aGljaAorCSAqIHJlcHJlc2VudCBhbGwgcG9zc2libGUgaW50ZXJydXB0cywgYW5kIElSUXMKKwkgKiBhc3NpZ25lZCB0byBhY3R1YWwgZGV2aWNlcy4KKwkgKi8KKwlzdGF0aWMgaW50IGdzaV90b19pcnFbTUFYX0dTSV9OVU1dOworI2Vsc2UKKworCWlmIChhY3BpX2lycV9tb2RlbCAhPSBBQ1BJX0lSUV9NT0RFTF9JT0FQSUMpCisJCXJldHVybiBnc2k7CisjZW5kaWYKKworCS8qIERvbid0IHNldCB1cCB0aGUgQUNQSSBTQ0kgYmVjYXVzZSBpdCdzIGFscmVhZHkgc2V0IHVwICovCisJaWYgKGFjcGlfZ2JsX0ZBRFQuc2NpX2ludGVycnVwdCA9PSBnc2kpCisJCXJldHVybiBnc2k7CisKKwlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYyhnc2kpOworCWlmIChpb2FwaWMgPCAwKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIk5vIElPQVBJQyBmb3IgR1NJICV1XG4iLCBnc2kpOworCQlyZXR1cm4gZ3NpOworCX0KKworCWlvYXBpY19waW4gPSBnc2kgLSBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmdzaV9iYXNlOworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWlmIChpb2FwaWNfcmVudW1iZXJfaXJxKQorCQlnc2kgPSBpb2FwaWNfcmVudW1iZXJfaXJxKGlvYXBpYywgZ3NpKTsKKyNlbmRpZgorCisJLyoKKwkgKiBBdm9pZCBwaW4gcmVwcm9ncmFtbWluZy4gIFBSVHMgdHlwaWNhbGx5IGluY2x1ZGUgZW50cmllcworCSAqIHdpdGggcmVkdW5kYW50IHBpbi0+Z3NpIG1hcHBpbmdzIChidXQgdW5pcXVlIFBDSSBkZXZpY2VzKTsKKwkgKiB3ZSBvbmx5IHByb2dyYW0gdGhlIElPQVBJQyBvbiB0aGUgZmlyc3QuCisJICovCisJaWYgKGlvYXBpY19waW4gPiBNUF9NQVhfSU9BUElDX1BJTikgeworCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgcmVmZXJlbmNlIHRvIElPQVBJQyBwaW4gIgorCQkgICAgICAgIiVkLSVkXG4iLCBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmFwaWNfaWQsCisJCSAgICAgICBpb2FwaWNfcGluKTsKKwkJcmV0dXJuIGdzaTsKKwl9CisJaWYgKHRlc3RfYml0KGlvYXBpY19waW4sIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10ucGluX3Byb2dyYW1tZWQpKSB7CisJCURwcmludGsoS0VSTl9ERUJVRyAiUGluICVkLSVkIGFscmVhZHkgcHJvZ3JhbW1lZFxuIiwKKwkJCW1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uYXBpY19pZCwgaW9hcGljX3Bpbik7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCQlyZXR1cm4gKGdzaSA8IElSUV9DT01QUkVTU0lPTl9TVEFSVCA/IGdzaSA6IGdzaV90b19pcnFbZ3NpXSk7CisjZWxzZQorCQlyZXR1cm4gZ3NpOworI2VuZGlmCisJfQorCisJc2V0X2JpdChpb2FwaWNfcGluLCBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLnBpbl9wcm9ncmFtbWVkKTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJLyoKKwkgKiBGb3IgR1NJID49IDY0LCB1c2UgSVJRIGNvbXByZXNzaW9uCisJICovCisJaWYgKChnc2kgPj0gSVJRX0NPTVBSRVNTSU9OX1NUQVJUKQorCSAgICAmJiAodHJpZ2dlcmluZyA9PSBBQ1BJX0xFVkVMX1NFTlNJVElWRSkpIHsKKwkJLyoKKwkJICogRm9yIFBDSSBkZXZpY2VzIGFzc2lnbiBJUlFzIGluIG9yZGVyLCBhdm9pZGluZyBnYXBzCisJCSAqIGR1ZSB0byB1bnVzZWQgSS9PIEFQSUMgcGlucy4KKwkJICovCisJCWludCBpcnEgPSBnc2k7CisJCWlmIChnc2kgPCBNQVhfR1NJX05VTSkgeworCQkJLyoKKwkJCSAqIFJldGFpbiB0aGUgVklBIGNoaXBzZXQgd29yay1hcm91bmQgKGdzaSA+IDE1KSwgYnV0CisJCQkgKiBhdm9pZCBhIHByb2JsZW0gd2hlcmUgdGhlIDgyNTQgdGltZXIgKElSUTApIGlzIHNldHVwCisJCQkgKiB2aWEgYW4gb3ZlcnJpZGUgKHNvIGl0J3Mgbm90IG9uIHBpbiAwIG9mIHRoZSBpb2FwaWMpLAorCQkJICogYW5kIGF0IHRoZSBzYW1lIHRpbWUsIHRoZSBwaW4gMCBpbnRlcnJ1cHQgaXMgYSBQQ0kKKwkJCSAqIHR5cGUuICBUaGUgZ3NpID4gMTUgdGVzdCBjb3VsZCBjYXVzZSB0aGVzZSB0d28gcGlucworCQkJICogdG8gYmUgc2hhcmVkIGFzIElSUTAsIGFuZCB0aGV5IGFyZSBub3Qgc2hhcmVhYmxlLgorCQkJICogU28gdGVzdCBmb3IgdGhpcyBjb25kaXRpb24sIGFuZCBpZiBuZWNlc3NhcnksIGF2b2lkCisJCQkgKiB0aGUgcGluIGNvbGxpc2lvbi4KKwkJCSAqLworCQkJZ3NpID0gcGNpX2lycSsrOworCQkJLyoKKwkJCSAqIERvbid0IGFzc2lnbiBJUlEgdXNlZCBieSBBQ1BJIFNDSQorCQkJICovCisJCQlpZiAoZ3NpID09IGFjcGlfZ2JsX0ZBRFQuc2NpX2ludGVycnVwdCkKKwkJCQlnc2kgPSBwY2lfaXJxKys7CisJCQlnc2lfdG9faXJxW2lycV0gPSBnc2k7CisJCX0gZWxzZSB7CisJCQlwcmludGsoS0VSTl9FUlIgIkdTSSAldSBpcyB0b28gaGlnaFxuIiwgZ3NpKTsKKwkJCXJldHVybiBnc2k7CisJCX0KKwl9CisjZW5kaWYKKwlpb19hcGljX3NldF9wY2lfcm91dGluZyhpb2FwaWMsIGlvYXBpY19waW4sIGdzaSwKKwkJCQl0cmlnZ2VyaW5nID09IEFDUElfRURHRV9TRU5TSVRJVkUgPyAwIDogMSwKKwkJCQlwb2xhcml0eSA9PSBBQ1BJX0FDVElWRV9ISUdIID8gMCA6IDEpOworCXJldHVybiBnc2k7Cit9CisKK2ludCBtcF9jb25maWdfYWNwaV9nc2kodW5zaWduZWQgY2hhciBudW1iZXIsIHVuc2lnbmVkIGludCBkZXZmbiwgdTggcGluLAorCQkJdTMyIGdzaSwgaW50IHRyaWdnZXJpbmcsIGludCBwb2xhcml0eSkKK3sKKyNpZmRlZiBDT05GSUdfWDg2X01QUEFSU0UKKwlzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyBtcF9pcnE7CisJaW50IGlvYXBpYzsKKworCWlmICghYWNwaV9pb2FwaWMpCisJCXJldHVybiAwOworCisJLyogcHJpbnQgdGhlIGVudHJ5IHNob3VsZCBoYXBwZW4gb24gbXB0YWJsZSBpZGVudGljYWxseSAqLworCW1wX2lycS5tcF90eXBlID0gTVBfSU5UU1JDOworCW1wX2lycS5tcF9pcnF0eXBlID0gbXBfSU5UOworCW1wX2lycS5tcF9pcnFmbGFnID0gKHRyaWdnZXJpbmcgPT0gQUNQSV9FREdFX1NFTlNJVElWRSA/IDQgOiAweDBjKSB8CisJCQkJKHBvbGFyaXR5ID09IEFDUElfQUNUSVZFX0hJR0ggPyAxIDogMyk7CisJbXBfaXJxLm1wX3NyY2J1cyA9IG51bWJlcjsKKwltcF9pcnEubXBfc3JjYnVzaXJxID0gKCgoZGV2Zm4gPj4gMykgJiAweDFmKSA8PCAyKSB8ICgocGluIC0gMSkgJiAzKTsKKwlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYyhnc2kpOworCW1wX2lycS5tcF9kc3RhcGljID0gbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5hcGljX2lkOworCW1wX2lycS5tcF9kc3RpcnEgPSBnc2kgLSBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmdzaV9iYXNlOworCisJc2F2ZV9tcF9pcnEoJm1wX2lycSk7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIFBhcnNlIElPQVBJQyByZWxhdGVkIGVudHJpZXMgaW4gTUFEVAogICogcmV0dXJucyAwIG9uIHN1Y2Nlc3MsIDwgMCBvbiBlcnJvcgpAQCAtMTAwOSw4ICsxMzUzLDYgQEAKIAlyZXR1cm47CiB9CiAKLSNpZmRlZiBfX2kzODZfXwotCiBzdGF0aWMgaW50IF9faW5pdCBkaXNhYmxlX2FjcGlfaXJxKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQogewogCWlmICghYWNwaV9mb3JjZSkgewpAQCAtMTA2MSw2ICsxNDAzLDE2IEBACiB9CiAKIC8qCisgKiBGb3JjZSBpZ25vcmluZyBCSU9TIElSUTAgcGluMiBvdmVycmlkZQorICovCitzdGF0aWMgaW50IF9faW5pdCBkbWlfaWdub3JlX2lycTBfdGltZXJfb3ZlcnJpZGUoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmQpCit7CisJcHJfbm90aWNlKCIlcyBkZXRlY3RlZDogSWdub3JpbmcgQklPUyBJUlEwIHBpbjIgb3ZlcnJpZGVcbiIsIGQtPmlkZW50KTsKKwlhY3BpX3NraXBfdGltZXJfb3ZlcnJpZGUgPSAxOworCXJldHVybiAwOworfQorCisvKgogICogSWYgeW91ciBzeXN0ZW0gaXMgYmxhY2tsaXN0ZWQgaGVyZSwgYnV0IHlvdSBmaW5kIHRoYXQgYWNwaT1mb3JjZQogICogd29ya3MgZm9yIHlvdSwgcGxlYXNlIGNvbnRhY3QgYWNwaS1kZXZlbEBzb3VyY2Vmb3JnZS5uZXQKICAqLwpAQCAtMTIyNywxMSArMTU3OSwzNSBAQAogCQkgICAgIERNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiVHJhdmVsTWF0ZSAzNjAiKSwKIAkJICAgICB9LAogCSB9LAorCS8qCisJICogSFAgbGFwdG9wcyB3aGljaCB1c2UgYSBEU0RUIHJlcG9ydGluZyBhcyBIUC9TQjQwMC8xMDAwMCwKKwkgKiB3aGljaCBpbmNsdWRlcyBzb21lIGNvZGUgd2hpY2ggb3ZlcnJpZGVzIGFsbCB0ZW1wZXJhdHVyZQorCSAqIHRyaXAgcG9pbnRzIHRvIDE2QyBpZiB0aGUgSU5USU4yIGlucHV0IG9mIHRoZSBJL08gQVBJQworCSAqIGlzIGVuYWJsZWQuICBUaGlzIGlucHV0IGlzIGluY29ycmVjdGx5IGRlc2lnbmF0ZWQgdGhlCisJICogSVNBIElSUSAwIHZpYSBhbiBpbnRlcnJ1cHQgc291cmNlIG92ZXJyaWRlIGV2ZW4gdGhvdWdoCisJICogaXQgaXMgd2lyZWQgdG8gdGhlIG91dHB1dCBvZiB0aGUgbWFzdGVyIDgyNTlBIGFuZCBJTlRJTjAKKwkgKiBpcyBub3QgY29ubmVjdGVkIGF0IGFsbC4gIEZvcmNlIGlnbm9yaW5nIEJJT1MgSVJRMCBwaW4yCisJICogb3ZlcnJpZGUgaW4gdGhhdCBjYXNlcy4KKwkgKi8KKwl7CisJIC5jYWxsYmFjayA9IGRtaV9pZ25vcmVfaXJxMF90aW1lcl9vdmVycmlkZSwKKwkgLmlkZW50ID0gIkhQIE5YNjEyNSBsYXB0b3AiLAorCSAubWF0Y2hlcyA9IHsKKwkJICAgICBETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJIZXdsZXR0LVBhY2thcmQiKSwKKwkJICAgICBETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIkhQIENvbXBhcSBueDYxMjUiKSwKKwkJICAgICB9LAorCSB9LAorCXsKKwkgLmNhbGxiYWNrID0gZG1pX2lnbm9yZV9pcnEwX3RpbWVyX292ZXJyaWRlLAorCSAuaWRlbnQgPSAiSFAgTlg2MzI1IGxhcHRvcCIsCisJIC5tYXRjaGVzID0geworCQkgICAgIERNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkhld2xldHQtUGFja2FyZCIpLAorCQkgICAgIERNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiSFAgQ29tcGFxIG54NjMyNSIpLAorCQkgICAgIH0sCisJIH0sCiAJe30KIH07CiAKLSNlbmRpZgkJCQkvKiBfX2kzODZfXyAqLwotCiAvKgogICogYWNwaV9ib290X3RhYmxlX2luaXQoKSBhbmQgYWNwaV9ib290X2luaXQoKQogICogIGNhbGxlZCBmcm9tIHNldHVwX2FyY2goKSwgYWx3YXlzLgpAQCAtMTI1OSw5ICsxNjM1LDcgQEAKIHsKIAlpbnQgZXJyb3I7CiAKLSNpZmRlZiBfX2kzODZfXwogCWRtaV9jaGVja19zeXN0ZW0oYWNwaV9kbWlfdGFibGUpOwotI2VuZGlmCiAKIAkvKgogCSAqIElmIGFjcGlfZGlzYWJsZWQsIGJhaWwgb3V0CkBAIC0xMzg2LDYgKzE3NjAsMjAgQEAKIH0KIGVhcmx5X3BhcmFtKCJwY2kiLCBwYXJzZV9wY2kpOwogCitpbnQgX19pbml0IGFjcGlfbXBzX2NoZWNrKHZvaWQpCit7CisjaWYgZGVmaW5lZChDT05GSUdfWDg2X0xPQ0FMX0FQSUMpICYmICFkZWZpbmVkKENPTkZJR19YODZfTVBQQVJTRSkKKy8qIG1wdGFibGUgY29kZSBpcyBub3QgYnVpbHQtaW4qLworCWlmIChhY3BpX2Rpc2FibGVkIHx8IGFjcGlfbm9pcnEpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiTVBTIHN1cHBvcnQgY29kZSBpcyBub3QgYnVpbHQtaW4uXG4iCisJCSAgICAgICAiVXNpbmcgYWNwaT1vZmYgb3IgYWNwaT1ub2lycSBvciBwY2k9bm9hY3BpICIKKwkJICAgICAgICJtYXkgaGF2ZSBwcm9ibGVtXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorI2VuZGlmCisJcmV0dXJuIDA7Cit9CisKICNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIHN0YXRpYyBpbnQgX19pbml0IHBhcnNlX2FjcGlfc2tpcF90aW1lcl9vdmVycmlkZShjaGFyICphcmcpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9yZWFsbW9kZS93YWtldXAuUyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5TCmluZGV4IGY5Yjc3ZmIuLjMzNTU5NzMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5TCkBAIC01LDYgKzUsNyBAQAogI2luY2x1ZGUgPGFzbS9tc3ItaW5kZXguaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgogCiAJLmNvZGUxNgogCS5zZWN0aW9uICIuaGVhZGVyIiwgImEiCkBAIC0yNCw2ICsyNSwxMSBAQAogcmVhbG1vZGVfZmxhZ3M6CS5sb25nCTAKIHJlYWxfbWFnaWM6CS5sb25nCTAKIHRyYW1wb2xpbmVfc2VnbWVudDoJLndvcmQgMAorX3BhZDE6CQkuYnl0ZQkwCit3YWtldXBfam1wOgkuYnl0ZQkweGVhCS8qIGxqbXB3ICovCit3YWtldXBfam1wX29mZjoJLndvcmQJM2YKK3dha2V1cF9qbXBfc2VnOgkud29yZAkwCit3YWtldXBfZ2R0OgkucXVhZAkwLCAwLCAwCiBzaWduYXR1cmU6CS5sb25nCTB4NTFlZTExMTEKIAogCS50ZXh0CkBAIC0zNCwxMSArNDAsMzQgQEAKIAljbGkKIAljbGQKIAorCS8qIEFwcGFyZW50bHkgc29tZSBkaW13aXQgQklPUyBwcm9ncmFtbWVycyBkb24ndCBrbm93IGhvdyB0bworCSAgIHByb2dyYW0gYSBQTSB0byBSTSB0cmFuc2l0aW9uLCBhbmQgd2UgbWlnaHQgZW5kIHVwIGhlcmUgd2l0aAorCSAgIGp1bmsgaW4gdGhlIGRhdGEgc2VnbWVudCBkZXNjcmlwdG9yIHJlZ2lzdGVycy4gIFRoZSBvbmx5IHdheQorCSAgIHRvIHJlcGFpciB0aGF0IGlzIHRvIGdvIGludG8gUE0gYW5kIGZpeCBpdCBvdXJzZWx2ZXMuLi4gKi8KKwltb3Z3CSQxNiwgJWN4CisJbGdkdGwJJWNzOndha2V1cF9nZHQKKwltb3ZsCSVjcjAsICVlYXgKKwlvcmIJJFg4Nl9DUjBfUEUsICVhbAorCW1vdmwJJWVheCwgJWNyMAorCWptcAkxZgorMToJbGptcHcJJDgsICQyZgorMjoKKwltb3Z3CSVjeCwgJWRzCisJbW92dwklY3gsICVlcworCW1vdncJJWN4LCAlc3MKKwltb3Z3CSVjeCwgJWZzCisJbW92dwklY3gsICVncworCisJYW5kYgkkflg4Nl9DUjBfUEUsICVhbAorCW1vdmwJJWVheCwgJWNyMAorCWptcAl3YWtldXBfam1wCiszOgogCS8qIFNldCB1cCBzZWdtZW50cyAqLwogCW1vdncJJWNzLCAlYXgKIAltb3Z3CSVheCwgJWRzCiAJbW92dwklYXgsICVlcwogCW1vdncJJWF4LCAlc3MKKwlsaWR0bAl3YWtldXBfaWR0CiAKIAltb3ZsCSR3YWtldXBfc3RhY2tfZW5kLCAlZXNwCiAKQEAgLTk4LDcgKzEyNywxNCBAQAogCWptcAkxYgogCiAJLmRhdGEKLQkuYmFsaWduCTQKKwkuYmFsaWduCTgKKworCS8qIFRoaXMgaXMgdGhlIHN0YW5kYXJkIHJlYWwtbW9kZSBJRFQgKi8KK3dha2V1cF9pZHQ6CisJLndvcmQJMHhmZmZmCQkvKiBsaW1pdCAqLworCS5sb25nCTAJCS8qIGFkZHJlc3MgKi8KKwkud29yZAkwCisKIAkuZ2xvYmwJSEVBUCwgaGVhcF9lbmQKIEhFQVA6CiAJLmxvbmcJd2FrZXVwX2hlYXAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5oIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLmgKaW5kZXggZWY4MTY2Zi4uNjlkMzhkMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLmgKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLmgKQEAgLTI0LDYgKzI0LDExIEBACiAJdTMyIHJlYWxtb2RlX2ZsYWdzOwogCXUzMiByZWFsX21hZ2ljOwogCXUxNiB0cmFtcG9saW5lX3NlZ21lbnQ7CS8qIHNlZ21lbnQgd2l0aCB0cmFtcG9saW5lIGNvZGUsIDY0LWJpdCBvbmx5ICovCisJdTggIF9wYWQxOworCXU4ICB3YWtldXBfam1wOworCXUxNiB3YWtldXBfam1wX29mZjsKKwl1MTYgd2FrZXVwX2ptcF9zZWc7CisJdTY0IHdha2V1cF9nZHRbM107CiAJdTMyIHNpZ25hdHVyZTsJCS8qIFRvIGNoZWNrIHdlIGhhdmUgY29ycmVjdCBzdHJ1Y3R1cmUgKi8KIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9zbGVlcC5jIGIvYXJjaC94ODYva2VybmVsL2FjcGkvc2xlZXAuYwppbmRleCBhZmMyNWVlLi43OTNhZDIwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9zbGVlcC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMKQEAgLTIzLDYgKzIzLDE1IEBACiBzdGF0aWMgY2hhciB0ZW1wX3N0YWNrWzEwMjQwXTsKICNlbmRpZgogCisvKiBYWFg6IHRoaXMgbWFjcm8gc2hvdWxkIG1vdmUgdG8gYXNtLXg4Ni9zZWdtZW50LmggYW5kIGJlIHNoYXJlZCB3aXRoIHRoZQorICAgYm9vdCBjb2RlLi4uICovCisjZGVmaW5lIEdEVF9FTlRSWShmbGFncywgYmFzZSwgbGltaXQpCQlcCisJKCgodTY0KShiYXNlICYgMHhmZjAwMDAwMCkgPDwgMzIpIHwJXAorCSAoKHU2NClmbGFncyA8PCA0MCkgfAkJCVwKKwkgKCh1NjQpKGxpbWl0ICYgMHgwMGZmMDAwMCkgPDwgMzIpIHwJXAorCSAoKHU2NCkoYmFzZSAmIDB4MDBmZmZmZmYpIDw8IDE2KSB8CVwKKwkgKCh1NjQpKGxpbWl0ICYgMHgwMDAwZmZmZikpKQorCiAvKioKICAqIGFjcGlfc2F2ZV9zdGF0ZV9tZW0gLSBzYXZlIGtlcm5lbCBzdGF0ZQogICoKQEAgLTUwLDYgKzU5LDI5IEBACiAKIAloZWFkZXItPnZpZGVvX21vZGUgPSBzYXZlZF92aWRlb19tb2RlOwogCisJaGVhZGVyLT53YWtldXBfam1wX3NlZyA9IGFjcGlfd2FrZXVwX2FkZHJlc3MgPj4gNDsKKworCS8qCisJICogU2V0IHVwIHRoZSB3YWtldXAgR0RULiAgV2Ugc2V0IHRoZXNlIHVwIGFzIEJpZyBSZWFsIE1vZGUsCisJICogdGhhdCBpcywgd2l0aCBsaW1pdHMgc2V0IHRvIDQgR0IuICBBdCBsZWFzdCB0aGUgTGVub3ZvCisJICogVGhpbmtwYWQgWDYxIGlzIGtub3duIHRvIG5lZWQgdGhpcyBmb3IgdGhlIHZpZGVvIEJJT1MKKwkgKiBpbml0aWFsaXphdGlvbiBxdWlyayB0byB3b3JrOyB0aGlzIGlzIGxpa2VseSB0byBhbHNvCisJICogYmUgdGhlIGNhc2UgZm9yIG90aGVyIGxhcHRvcHMgb3IgaW50ZWdyYXRlZCB2aWRlbyBkZXZpY2VzLgorCSAqLworCisJLyogR0RUWzBdOiBHRFQgc2VsZi1wb2ludGVyICovCisJaGVhZGVyLT53YWtldXBfZ2R0WzBdID0KKwkJKHU2NCkoc2l6ZW9mKGhlYWRlci0+d2FrZXVwX2dkdCkgLSAxKSArCisJCSgodTY0KShhY3BpX3dha2V1cF9hZGRyZXNzICsKKwkJCSgoY2hhciAqKSZoZWFkZXItPndha2V1cF9nZHQgLSAoY2hhciAqKWFjcGlfcmVhbG1vZGUpKQorCQkJCTw8IDE2KTsKKwkvKiBHRFRbMV06IGJpZyByZWFsIG1vZGUtbGlrZSBjb2RlIHNlZ21lbnQgKi8KKwloZWFkZXItPndha2V1cF9nZHRbMV0gPQorCQlHRFRfRU5UUlkoMHg4MDliLCBhY3BpX3dha2V1cF9hZGRyZXNzLCAweGZmZmZmKTsKKwkvKiBHRFRbMl06IGJpZyByZWFsIG1vZGUtbGlrZSBkYXRhIHNlZ21lbnQgKi8KKwloZWFkZXItPndha2V1cF9nZHRbMl0gPQorCQlHRFRfRU5UUlkoMHg4MDkzLCBhY3BpX3dha2V1cF9hZGRyZXNzLCAweGZmZmZmKTsKKwogI2lmbmRlZiBDT05GSUdfNjRCSVQKIAlzdG9yZV9nZHQoKHN0cnVjdCBkZXNjX3B0ciAqKSZoZWFkZXItPnBtb2RlX2dkdCk7CiAKQEAgLTcyLDcgKzEwNCw5IEBACiAJc2F2ZWRfbWFnaWMgPSAweDEyMzQ1Njc4OwogI2Vsc2UgLyogQ09ORklHXzY0QklUICovCiAJaGVhZGVyLT50cmFtcG9saW5lX3NlZ21lbnQgPSBzZXR1cF90cmFtcG9saW5lKCkgPj4gNDsKLQlpbml0X3JzcCA9ICh1bnNpZ25lZCBsb25nKXRlbXBfc3RhY2sgKyA0MDk2OworI2lmZGVmIENPTkZJR19TTVAKKwlzdGFja19zdGFydC5zcCA9IHRlbXBfc3RhY2sgKyA0MDk2OworI2VuZGlmCiAJaW5pdGlhbF9jb2RlID0gKHVuc2lnbmVkIGxvbmcpd2FrZXVwX2xvbmc2NDsKIAlzYXZlZF9tYWdpYyA9IDB4MTIzNDU2Nzg5YWJjZGVmMDsKICNlbmRpZiAvKiBDT05GSUdfNjRCSVQgKi8KQEAgLTExMSw3ICsxNDUsNyBAQAogCQlyZXR1cm47CiAJfQogCi0JYWNwaV93YWtldXBfYWRkcmVzcyA9IGFjcGlfcmVhbG1vZGU7CisJYWNwaV93YWtldXBfYWRkcmVzcyA9IHZpcnRfdG9fcGh5cygodm9pZCAqKWFjcGlfcmVhbG1vZGUpOwogfQogCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hbHRlcm5hdGl2ZS5jIGIvYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmMKaW5kZXggNjVjNzg1Ny4uMjc2M2NiMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmMKQEAgLTEsNiArMSw2IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgpAQCAtMTQzLDcgKzE0Myw3IEBACiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCiBleHRlcm4gY2hhciBfX3ZzeXNjYWxsXzA7Ci1zdGF0aWMgaW5saW5lIGNvbnN0IHVuc2lnbmVkIGNoYXIqY29uc3QgKiBmaW5kX25vcF90YWJsZSh2b2lkKQorY29uc3QgdW5zaWduZWQgY2hhciAqY29uc3QgKmZpbmRfbm9wX3RhYmxlKHZvaWQpCiB7CiAJcmV0dXJuIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciAhPSBYODZfVkVORE9SX0lOVEVMIHx8CiAJICAgICAgIGJvb3RfY3B1X2RhdGEueDg2IDwgNiA/IGs4X25vcHMgOiBwNl9ub3BzOwpAQCAtMTYyLDcgKzE2Miw3IEBACiAJeyAtMSwgTlVMTCB9CiB9OwogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhcipjb25zdCAqIGZpbmRfbm9wX3RhYmxlKHZvaWQpCitjb25zdCB1bnNpZ25lZCBjaGFyICpjb25zdCAqZmluZF9ub3BfdGFibGUodm9pZCkKIHsKIAljb25zdCB1bnNpZ25lZCBjaGFyICpjb25zdCAqbm9wdGFibGUgPSBpbnRlbF9ub3BzOwogCWludCBpOwpAQCAtMjc5LDcgKzI3OSw3IEBACiAJc3RydWN0IGxpc3RfaGVhZCBuZXh0OwogfTsKIHN0YXRpYyBMSVNUX0hFQUQoc21wX2FsdF9tb2R1bGVzKTsKLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0soc21wX2FsdCk7CitzdGF0aWMgREVGSU5FX01VVEVYKHNtcF9hbHQpOwogc3RhdGljIGludCBzbXBfbW9kZSA9IDE7CS8qIHByb3RlY3RlZCBieSBzbXBfYWx0ICovCiAKIHZvaWQgYWx0ZXJuYXRpdmVzX3NtcF9tb2R1bGVfYWRkKHN0cnVjdCBtb2R1bGUgKm1vZCwgY2hhciAqbmFtZSwKQEAgLTMxMiwxMiArMzEyLDEyIEBACiAJCV9fZnVuY19fLCBzbXAtPmxvY2tzLCBzbXAtPmxvY2tzX2VuZCwKIAkJc21wLT50ZXh0LCBzbXAtPnRleHRfZW5kLCBzbXAtPm5hbWUpOwogCi0Jc3Bpbl9sb2NrKCZzbXBfYWx0KTsKKwltdXRleF9sb2NrKCZzbXBfYWx0KTsKIAlsaXN0X2FkZF90YWlsKCZzbXAtPm5leHQsICZzbXBfYWx0X21vZHVsZXMpOwogCWlmIChib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVVApKQogCQlhbHRlcm5hdGl2ZXNfc21wX3VubG9jayhzbXAtPmxvY2tzLCBzbXAtPmxvY2tzX2VuZCwKIAkJCQkJc21wLT50ZXh0LCBzbXAtPnRleHRfZW5kKTsKLQlzcGluX3VubG9jaygmc21wX2FsdCk7CisJbXV0ZXhfdW5sb2NrKCZzbXBfYWx0KTsKIH0KIAogdm9pZCBhbHRlcm5hdGl2ZXNfc21wX21vZHVsZV9kZWwoc3RydWN0IG1vZHVsZSAqbW9kKQpAQCAtMzI3LDE3ICszMjcsMTcgQEAKIAlpZiAoc21wX2FsdF9vbmNlIHx8IG5vcmVwbGFjZV9zbXApCiAJCXJldHVybjsKIAotCXNwaW5fbG9jaygmc21wX2FsdCk7CisJbXV0ZXhfbG9jaygmc21wX2FsdCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShpdGVtLCAmc21wX2FsdF9tb2R1bGVzLCBuZXh0KSB7CiAJCWlmIChtb2QgIT0gaXRlbS0+bW9kKQogCQkJY29udGludWU7CiAJCWxpc3RfZGVsKCZpdGVtLT5uZXh0KTsKLQkJc3Bpbl91bmxvY2soJnNtcF9hbHQpOworCQltdXRleF91bmxvY2soJnNtcF9hbHQpOwogCQlEUFJJTlRLKCIlczogJXNcbiIsIF9fZnVuY19fLCBpdGVtLT5uYW1lKTsKIAkJa2ZyZWUoaXRlbSk7CiAJCXJldHVybjsKIAl9Ci0Jc3Bpbl91bmxvY2soJnNtcF9hbHQpOworCW11dGV4X3VubG9jaygmc21wX2FsdCk7CiB9CiAKIHZvaWQgYWx0ZXJuYXRpdmVzX3NtcF9zd2l0Y2goaW50IHNtcCkKQEAgLTM1OSw3ICszNTksNyBAQAogCQlyZXR1cm47CiAJQlVHX09OKCFzbXAgJiYgKG51bV9vbmxpbmVfY3B1cygpID4gMSkpOwogCi0Jc3Bpbl9sb2NrKCZzbXBfYWx0KTsKKwltdXRleF9sb2NrKCZzbXBfYWx0KTsKIAogCS8qCiAJICogQXZvaWQgdW5uZWNlc3Nhcnkgc3dpdGNoZXMgYmVjYXVzZSBpdCBmb3JjZXMgSklUIGJhc2VkIFZNcyB0bwpAQCAtMzgzLDcgKzM4Myw3IEBACiAJCQkJCQltb2QtPnRleHQsIG1vZC0+dGV4dF9lbmQpOwogCX0KIAlzbXBfbW9kZSA9IHNtcDsKLQlzcGluX3VubG9jaygmc21wX2FsdCk7CisJbXV0ZXhfdW5sb2NrKCZzbXBfYWx0KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYW1kX2lvbW11LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYW1kX2lvbW11LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI3NjZkOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hbWRfaW9tbXUuYwpAQCAtMCwwICsxLDk2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEF1dGhvcjogSm9lcmcgUm9lZGVsIDxqb2VyZy5yb2VkZWxAYW1kLmNvbT4KKyAqICAgICAgICAgTGVvIER1cmFuIDxsZW8uZHVyYW5AYW1kLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvZ2ZwLmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9pb21tdS1oZWxwZXIuaD4KKyNpbmNsdWRlIDxhc20vcHJvdG8uaD4KKyNpbmNsdWRlIDxhc20vZ2FydC5oPgorI2luY2x1ZGUgPGFzbS9hbWRfaW9tbXVfdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vYW1kX2lvbW11Lmg+CisKKyNkZWZpbmUgQ01EX1NFVF9UWVBFKGNtZCwgdCkgKChjbWQpLT5kYXRhWzFdIHw9ICgodCkgPDwgMjgpKQorCisjZGVmaW5lIHRvX3BhZ2VzKGFkZHIsIHNpemUpIFwKKwkgKHJvdW5kX3VwKCgoYWRkcikgJiB+UEFHRV9NQVNLKSArIChzaXplKSwgUEFHRV9TSVpFKSA+PiBQQUdFX1NISUZUKQorCitzdGF0aWMgREVGSU5FX1JXTE9DSyhhbWRfaW9tbXVfZGV2dGFibGVfbG9jayk7CisKK3N0cnVjdCBjb21tYW5kIHsKKwl1MzIgZGF0YVs0XTsKK307CisKK3N0YXRpYyBpbnQgZG1hX29wc191bml0eV9tYXAoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tLAorCQkJICAgICBzdHJ1Y3QgdW5pdHlfbWFwX2VudHJ5ICplKTsKKworc3RhdGljIGludCBpb21tdV9oYXNfbnBjYWNoZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwlyZXR1cm4gaW9tbXUtPmNhcCAmIElPTU1VX0NBUF9OUENBQ0hFOworfQorCitzdGF0aWMgaW50IF9faW9tbXVfcXVldWVfY29tbWFuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgc3RydWN0IGNvbW1hbmQgKmNtZCkKK3sKKwl1MzIgdGFpbCwgaGVhZDsKKwl1OCAqdGFyZ2V0OworCisJdGFpbCA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NNRF9UQUlMX09GRlNFVCk7CisJdGFyZ2V0ID0gKGlvbW11LT5jbWRfYnVmICsgdGFpbCk7CisJbWVtY3B5X3RvaW8odGFyZ2V0LCBjbWQsIHNpemVvZigqY21kKSk7CisJdGFpbCA9ICh0YWlsICsgc2l6ZW9mKCpjbWQpKSAlIGlvbW11LT5jbWRfYnVmX3NpemU7CisJaGVhZCA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NNRF9IRUFEX09GRlNFVCk7CisJaWYgKHRhaWwgPT0gaGVhZCkKKwkJcmV0dXJuIC1FTk9NRU07CisJd3JpdGVsKHRhaWwsIGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NNRF9UQUlMX09GRlNFVCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9xdWV1ZV9jb21tYW5kKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBzdHJ1Y3QgY29tbWFuZCAqY21kKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpb21tdS0+bG9jaywgZmxhZ3MpOworCXJldCA9IF9faW9tbXVfcXVldWVfY29tbWFuZChpb21tdSwgY21kKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBpb21tdV9jb21wbGV0aW9uX3dhaXQoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgY29tbWFuZCBjbWQ7CisJdm9sYXRpbGUgdTY0IHJlYWR5ID0gMDsKKwl1bnNpZ25lZCBsb25nIHJlYWR5X3BoeXMgPSB2aXJ0X3RvX3BoeXMoJnJlYWR5KTsKKworCW1lbXNldCgmY21kLCAwLCBzaXplb2YoY21kKSk7CisJY21kLmRhdGFbMF0gPSBMT1dfVTMyKHJlYWR5X3BoeXMpIHwgQ01EX0NPTVBMX1dBSVRfU1RPUkVfTUFTSzsKKwljbWQuZGF0YVsxXSA9IEhJR0hfVTMyKHJlYWR5X3BoeXMpOworCWNtZC5kYXRhWzJdID0gMTsgLyogdmFsdWUgd3JpdHRlbiB0byAncmVhZHknICovCisJQ01EX1NFVF9UWVBFKCZjbWQsIENNRF9DT01QTF9XQUlUKTsKKworCWlvbW11LT5uZWVkX3N5bmMgPSAwOworCisJcmV0ID0gaW9tbXVfcXVldWVfY29tbWFuZChpb21tdSwgJmNtZCk7CisKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJd2hpbGUgKCFyZWFkeSkKKwkJY3B1X3JlbGF4KCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9xdWV1ZV9pbnZfZGV2X2VudHJ5KHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1MTYgZGV2aWQpCit7CisJc3RydWN0IGNvbW1hbmQgY21kOworCisJQlVHX09OKGlvbW11ID09IE5VTEwpOworCisJbWVtc2V0KCZjbWQsIDAsIHNpemVvZihjbWQpKTsKKwlDTURfU0VUX1RZUEUoJmNtZCwgQ01EX0lOVl9ERVZfRU5UUlkpOworCWNtZC5kYXRhWzBdID0gZGV2aWQ7CisKKwlpb21tdS0+bmVlZF9zeW5jID0gMTsKKworCXJldHVybiBpb21tdV9xdWV1ZV9jb21tYW5kKGlvbW11LCAmY21kKTsKK30KKworc3RhdGljIGludCBpb21tdV9xdWV1ZV9pbnZfaW9tbXVfcGFnZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisJCXU2NCBhZGRyZXNzLCB1MTYgZG9taWQsIGludCBwZGUsIGludCBzKQoreworCXN0cnVjdCBjb21tYW5kIGNtZDsKKworCW1lbXNldCgmY21kLCAwLCBzaXplb2YoY21kKSk7CisJYWRkcmVzcyAmPSBQQUdFX01BU0s7CisJQ01EX1NFVF9UWVBFKCZjbWQsIENNRF9JTlZfSU9NTVVfUEFHRVMpOworCWNtZC5kYXRhWzFdIHw9IGRvbWlkOworCWNtZC5kYXRhWzJdID0gTE9XX1UzMihhZGRyZXNzKTsKKwljbWQuZGF0YVszXSA9IEhJR0hfVTMyKGFkZHJlc3MpOworCWlmIChzKQorCQljbWQuZGF0YVsyXSB8PSBDTURfSU5WX0lPTU1VX1BBR0VTX1NJWkVfTUFTSzsKKwlpZiAocGRlKQorCQljbWQuZGF0YVsyXSB8PSBDTURfSU5WX0lPTU1VX1BBR0VTX1BERV9NQVNLOworCisJaW9tbXUtPm5lZWRfc3luYyA9IDE7CisKKwlyZXR1cm4gaW9tbXVfcXVldWVfY29tbWFuZChpb21tdSwgJmNtZCk7Cit9CisKK3N0YXRpYyBpbnQgaW9tbXVfZmx1c2hfcGFnZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHUxNiBkb21pZCwKKwkJdTY0IGFkZHJlc3MsIHNpemVfdCBzaXplKQoreworCWludCBzID0gMDsKKwl1bnNpZ25lZCBwYWdlcyA9IHRvX3BhZ2VzKGFkZHJlc3MsIHNpemUpOworCisJYWRkcmVzcyAmPSBQQUdFX01BU0s7CisKKwlpZiAocGFnZXMgPiAxKSB7CisJCS8qCisJCSAqIElmIHdlIGhhdmUgdG8gZmx1c2ggbW9yZSB0aGFuIG9uZSBwYWdlLCBmbHVzaCBhbGwKKwkJICogVExCIGVudHJpZXMgZm9yIHRoaXMgZG9tYWluCisJCSAqLworCQlhZGRyZXNzID0gQ01EX0lOVl9JT01NVV9BTExfUEFHRVNfQUREUkVTUzsKKwkJcyA9IDE7CisJfQorCisJaW9tbXVfcXVldWVfaW52X2lvbW11X3BhZ2VzKGlvbW11LCBhZGRyZXNzLCBkb21pZCwgMCwgcyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9tYXAoc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb20sCisJCSAgICAgdW5zaWduZWQgbG9uZyBidXNfYWRkciwKKwkJICAgICB1bnNpZ25lZCBsb25nIHBoeXNfYWRkciwKKwkJICAgICBpbnQgcHJvdCkKK3sKKwl1NjQgX19wdGUsICpwdGUsICpwYWdlOworCisJYnVzX2FkZHIgID0gUEFHRV9BTElHTihidXNfYWRkcik7CisJcGh5c19hZGRyID0gUEFHRV9BTElHTihidXNfYWRkcik7CisKKwkvKiBvbmx5IHN1cHBvcnQgNTEyR0IgYWRkcmVzcyBzcGFjZXMgZm9yIG5vdyAqLworCWlmIChidXNfYWRkciA+IElPTU1VX01BUF9TSVpFX0wzIHx8ICEocHJvdCAmIElPTU1VX1BST1RfTUFTSykpCisJCXJldHVybiAtRUlOVkFMOworCisJcHRlID0gJmRvbS0+cHRfcm9vdFtJT01NVV9QVEVfTDJfSU5ERVgoYnVzX2FkZHIpXTsKKworCWlmICghSU9NTVVfUFRFX1BSRVNFTlQoKnB0ZSkpIHsKKwkJcGFnZSA9ICh1NjQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmICghcGFnZSkKKwkJCXJldHVybiAtRU5PTUVNOworCQkqcHRlID0gSU9NTVVfTDJfUERFKHZpcnRfdG9fcGh5cyhwYWdlKSk7CisJfQorCisJcHRlID0gSU9NTVVfUFRFX1BBR0UoKnB0ZSk7CisJcHRlID0gJnB0ZVtJT01NVV9QVEVfTDFfSU5ERVgoYnVzX2FkZHIpXTsKKworCWlmICghSU9NTVVfUFRFX1BSRVNFTlQoKnB0ZSkpIHsKKwkJcGFnZSA9ICh1NjQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmICghcGFnZSkKKwkJCXJldHVybiAtRU5PTUVNOworCQkqcHRlID0gSU9NTVVfTDFfUERFKHZpcnRfdG9fcGh5cyhwYWdlKSk7CisJfQorCisJcHRlID0gSU9NTVVfUFRFX1BBR0UoKnB0ZSk7CisJcHRlID0gJnB0ZVtJT01NVV9QVEVfTDBfSU5ERVgoYnVzX2FkZHIpXTsKKworCWlmIChJT01NVV9QVEVfUFJFU0VOVCgqcHRlKSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCV9fcHRlID0gcGh5c19hZGRyIHwgSU9NTVVfUFRFX1A7CisJaWYgKHByb3QgJiBJT01NVV9QUk9UX0lSKQorCQlfX3B0ZSB8PSBJT01NVV9QVEVfSVI7CisJaWYgKHByb3QgJiBJT01NVV9QUk9UX0lXKQorCQlfX3B0ZSB8PSBJT01NVV9QVEVfSVc7CisKKwkqcHRlID0gX19wdGU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9mb3JfdW5pdHlfbWFwKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJICAgICAgIHN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmVudHJ5KQoreworCXUxNiBiZGYsIGk7CisKKwlmb3IgKGkgPSBlbnRyeS0+ZGV2aWRfc3RhcnQ7IGkgPD0gZW50cnktPmRldmlkX2VuZDsgKytpKSB7CisJCWJkZiA9IGFtZF9pb21tdV9hbGlhc190YWJsZVtpXTsKKwkJaWYgKGFtZF9pb21tdV9ybG9va3VwX3RhYmxlW2JkZl0gPT0gaW9tbXUpCisJCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpb21tdV9pbml0X3VuaXR5X21hcHBpbmdzKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCXN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmVudHJ5OworCWludCByZXQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmYW1kX2lvbW11X3VuaXR5X21hcCwgbGlzdCkgeworCQlpZiAoIWlvbW11X2Zvcl91bml0eV9tYXAoaW9tbXUsIGVudHJ5KSkKKwkJCWNvbnRpbnVlOworCQlyZXQgPSBkbWFfb3BzX3VuaXR5X21hcChpb21tdS0+ZGVmYXVsdF9kb20sIGVudHJ5KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZG1hX29wc191bml0eV9tYXAoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tLAorCQkJICAgICBzdHJ1Y3QgdW5pdHlfbWFwX2VudHJ5ICplKQoreworCXU2NCBhZGRyOworCWludCByZXQ7CisKKwlmb3IgKGFkZHIgPSBlLT5hZGRyZXNzX3N0YXJ0OyBhZGRyIDwgZS0+YWRkcmVzc19lbmQ7CisJICAgICBhZGRyICs9IFBBR0VfU0laRSkgeworCQlyZXQgPSBpb21tdV9tYXAoJmRtYV9kb20tPmRvbWFpbiwgYWRkciwgYWRkciwgZS0+cHJvdCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCQkvKgorCQkgKiBpZiB1bml0eSBtYXBwaW5nIGlzIGluIGFwZXJ0dXJlIHJhbmdlIG1hcmsgdGhlIHBhZ2UKKwkJICogYXMgYWxsb2NhdGVkIGluIHRoZSBhcGVydHVyZQorCQkgKi8KKwkJaWYgKGFkZHIgPCBkbWFfZG9tLT5hcGVydHVyZV9zaXplKQorCQkJX19zZXRfYml0KGFkZHIgPj4gUEFHRV9TSElGVCwgZG1hX2RvbS0+Yml0bWFwKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbml0X3VuaXR5X21hcHBpbmdzX2Zvcl9kZXZpY2Uoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tLAorCQkJCQkgIHUxNiBkZXZpZCkKK3sKKwlzdHJ1Y3QgdW5pdHlfbWFwX2VudHJ5ICplOworCWludCByZXQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGUsICZhbWRfaW9tbXVfdW5pdHlfbWFwLCBsaXN0KSB7CisJCWlmICghKGRldmlkID49IGUtPmRldmlkX3N0YXJ0ICYmIGRldmlkIDw9IGUtPmRldmlkX2VuZCkpCisJCQljb250aW51ZTsKKwkJcmV0ID0gZG1hX29wc191bml0eV9tYXAoZG1hX2RvbSwgZSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBkbWFfbWFza190b19wYWdlcyh1bnNpZ25lZCBsb25nIG1hc2spCit7CisJcmV0dXJuIChtYXNrID4+IFBBR0VfU0hJRlQpICsKKwkJKFBBR0VfQUxJR04obWFzayAmIH5QQUdFX01BU0spID4+IFBBR0VfU0hJRlQpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBkbWFfb3BzX2FsbG9jX2FkZHJlc3NlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCSAgICAgc3RydWN0IGRtYV9vcHNfZG9tYWluICpkb20sCisJCQkJCSAgICAgdW5zaWduZWQgaW50IHBhZ2VzKQoreworCXVuc2lnbmVkIGxvbmcgbGltaXQgPSBkbWFfbWFza190b19wYWdlcygqZGV2LT5kbWFfbWFzayk7CisJdW5zaWduZWQgbG9uZyBhZGRyZXNzOworCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IGRvbS0+YXBlcnR1cmVfc2l6ZSA+PiBQQUdFX1NISUZUOworCXVuc2lnbmVkIGxvbmcgYm91bmRhcnlfc2l6ZTsKKworCWJvdW5kYXJ5X3NpemUgPSBBTElHTihkbWFfZ2V0X3NlZ19ib3VuZGFyeShkZXYpICsgMSwKKwkJCVBBR0VfU0laRSkgPj4gUEFHRV9TSElGVDsKKwlsaW1pdCA9IGxpbWl0IDwgc2l6ZSA/IGxpbWl0IDogc2l6ZTsKKworCWlmIChkb20tPm5leHRfYml0ID49IGxpbWl0KQorCQlkb20tPm5leHRfYml0ID0gMDsKKworCWFkZHJlc3MgPSBpb21tdV9hcmVhX2FsbG9jKGRvbS0+Yml0bWFwLCBsaW1pdCwgZG9tLT5uZXh0X2JpdCwgcGFnZXMsCisJCQkwICwgYm91bmRhcnlfc2l6ZSwgMCk7CisJaWYgKGFkZHJlc3MgPT0gLTEpCisJCWFkZHJlc3MgPSBpb21tdV9hcmVhX2FsbG9jKGRvbS0+Yml0bWFwLCBsaW1pdCwgMCwgcGFnZXMsCisJCQkJMCwgYm91bmRhcnlfc2l6ZSwgMCk7CisKKwlpZiAobGlrZWx5KGFkZHJlc3MgIT0gLTEpKSB7CisJCWRvbS0+bmV4dF9iaXQgPSBhZGRyZXNzICsgcGFnZXM7CisJCWFkZHJlc3MgPDw9IFBBR0VfU0hJRlQ7CisJfSBlbHNlCisJCWFkZHJlc3MgPSBiYWRfZG1hX2FkZHJlc3M7CisKKwlXQVJOX09OKChhZGRyZXNzICsgKFBBR0VfU0laRSpwYWdlcykpID4gZG9tLT5hcGVydHVyZV9zaXplKTsKKworCXJldHVybiBhZGRyZXNzOworfQorCitzdGF0aWMgdm9pZCBkbWFfb3BzX2ZyZWVfYWRkcmVzc2VzKHN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG9tLAorCQkJCSAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKKwkJCQkgICB1bnNpZ25lZCBpbnQgcGFnZXMpCit7CisJYWRkcmVzcyA+Pj0gUEFHRV9TSElGVDsKKwlpb21tdV9hcmVhX2ZyZWUoZG9tLT5iaXRtYXAsIGFkZHJlc3MsIHBhZ2VzKTsKK30KKworc3RhdGljIHUxNiBkb21haW5faWRfYWxsb2Modm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCBpZDsKKworCXdyaXRlX2xvY2tfaXJxc2F2ZSgmYW1kX2lvbW11X2RldnRhYmxlX2xvY2ssIGZsYWdzKTsKKwlpZCA9IGZpbmRfZmlyc3RfemVyb19iaXQoYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCwgTUFYX0RPTUFJTl9JRCk7CisJQlVHX09OKGlkID09IDApOworCWlmIChpZCA+IDAgJiYgaWQgPCBNQVhfRE9NQUlOX0lEKQorCQlfX3NldF9iaXQoaWQsIGFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXApOworCWVsc2UKKwkJaWQgPSAwOworCXdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIGlkOworfQorCitzdGF0aWMgdm9pZCBkbWFfb3BzX3Jlc2VydmVfYWRkcmVzc2VzKHN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG9tLAorCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGFnZSwKKwkJCQkgICAgICB1bnNpZ25lZCBpbnQgcGFnZXMpCit7CisJdW5zaWduZWQgaW50IGxhc3RfcGFnZSA9IGRvbS0+YXBlcnR1cmVfc2l6ZSA+PiBQQUdFX1NISUZUOworCisJaWYgKHN0YXJ0X3BhZ2UgKyBwYWdlcyA+IGxhc3RfcGFnZSkKKwkJcGFnZXMgPSBsYXN0X3BhZ2UgLSBzdGFydF9wYWdlOworCisJc2V0X2JpdF9zdHJpbmcoZG9tLT5iaXRtYXAsIHN0YXJ0X3BhZ2UsIHBhZ2VzKTsKK30KKworc3RhdGljIHZvaWQgZG1hX29wc19mcmVlX3BhZ2V0YWJsZShzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb20pCit7CisJaW50IGksIGo7CisJdTY0ICpwMSwgKnAyLCAqcDM7CisKKwlwMSA9IGRtYV9kb20tPmRvbWFpbi5wdF9yb290OworCisJaWYgKCFwMSkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgaSA8IDUxMjsgKytpKSB7CisJCWlmICghSU9NTVVfUFRFX1BSRVNFTlQocDFbaV0pKQorCQkJY29udGludWU7CisKKwkJcDIgPSBJT01NVV9QVEVfUEFHRShwMVtpXSk7CisJCWZvciAoaiA9IDA7IGogPCA1MTI7ICsraSkgeworCQkJaWYgKCFJT01NVV9QVEVfUFJFU0VOVChwMltqXSkpCisJCQkJY29udGludWU7CisJCQlwMyA9IElPTU1VX1BURV9QQUdFKHAyW2pdKTsKKwkJCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwMyk7CisJCX0KKworCQlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpcDIpOworCX0KKworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwMSk7Cit9CisKK3N0YXRpYyB2b2lkIGRtYV9vcHNfZG9tYWluX2ZyZWUoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkb20pCit7CisJaWYgKCFkb20pCisJCXJldHVybjsKKworCWRtYV9vcHNfZnJlZV9wYWdldGFibGUoZG9tKTsKKworCWtmcmVlKGRvbS0+cHRlX3BhZ2VzKTsKKworCWtmcmVlKGRvbS0+Yml0bWFwKTsKKworCWtmcmVlKGRvbSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9vcHNfZG9tYWluX2FsbG9jKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJCQkJICAgdW5zaWduZWQgb3JkZXIpCit7CisJc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tOworCXVuc2lnbmVkIGksIG51bV9wdGVfcGFnZXM7CisJdTY0ICpsMl9wZGU7CisJdTY0IGFkZHJlc3M7CisKKwkvKgorCSAqIEN1cnJlbnRseSB0aGUgRE1BIGFwZXJ0dXJlIG11c3QgYmUgYmV0d2VlbiAzMiBNQiBhbmQgMUdCIGluIHNpemUKKwkgKi8KKwlpZiAoKG9yZGVyIDwgMjUpIHx8IChvcmRlciA+IDMwKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlkbWFfZG9tID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRtYV9vcHNfZG9tYWluKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkbWFfZG9tKQorCQlyZXR1cm4gTlVMTDsKKworCXNwaW5fbG9ja19pbml0KCZkbWFfZG9tLT5kb21haW4ubG9jayk7CisKKwlkbWFfZG9tLT5kb21haW4uaWQgPSBkb21haW5faWRfYWxsb2MoKTsKKwlpZiAoZG1hX2RvbS0+ZG9tYWluLmlkID09IDApCisJCWdvdG8gZnJlZV9kbWFfZG9tOworCWRtYV9kb20tPmRvbWFpbi5tb2RlID0gUEFHRV9NT0RFXzNfTEVWRUw7CisJZG1hX2RvbS0+ZG9tYWluLnB0X3Jvb3QgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKKwlkbWFfZG9tLT5kb21haW4ucHJpdiA9IGRtYV9kb207CisJaWYgKCFkbWFfZG9tLT5kb21haW4ucHRfcm9vdCkKKwkJZ290byBmcmVlX2RtYV9kb207CisJZG1hX2RvbS0+YXBlcnR1cmVfc2l6ZSA9ICgxVUxMIDw8IG9yZGVyKTsKKwlkbWFfZG9tLT5iaXRtYXAgPSBremFsbG9jKGRtYV9kb20tPmFwZXJ0dXJlX3NpemUgLyAoUEFHRV9TSVpFICogOCksCisJCQkJICBHRlBfS0VSTkVMKTsKKwlpZiAoIWRtYV9kb20tPmJpdG1hcCkKKwkJZ290byBmcmVlX2RtYV9kb207CisJLyoKKwkgKiBtYXJrIHRoZSBmaXJzdCBwYWdlIGFzIGFsbG9jYXRlZCBzbyB3ZSBuZXZlciByZXR1cm4gMCBhcworCSAqIGEgdmFsaWQgZG1hLWFkZHJlc3MuIFNvIHdlIGNhbiB1c2UgMCBhcyBlcnJvciB2YWx1ZQorCSAqLworCWRtYV9kb20tPmJpdG1hcFswXSA9IDE7CisJZG1hX2RvbS0+bmV4dF9iaXQgPSAwOworCisJaWYgKGlvbW11LT5leGNsdXNpb25fc3RhcnQgJiYKKwkgICAgaW9tbXUtPmV4Y2x1c2lvbl9zdGFydCA8IGRtYV9kb20tPmFwZXJ0dXJlX3NpemUpIHsKKwkJdW5zaWduZWQgbG9uZyBzdGFydHBhZ2UgPSBpb21tdS0+ZXhjbHVzaW9uX3N0YXJ0ID4+IFBBR0VfU0hJRlQ7CisJCWludCBwYWdlcyA9IHRvX3BhZ2VzKGlvbW11LT5leGNsdXNpb25fc3RhcnQsCisJCQkJaW9tbXUtPmV4Y2x1c2lvbl9sZW5ndGgpOworCQlkbWFfb3BzX3Jlc2VydmVfYWRkcmVzc2VzKGRtYV9kb20sIHN0YXJ0cGFnZSwgcGFnZXMpOworCX0KKworCW51bV9wdGVfcGFnZXMgPSBkbWFfZG9tLT5hcGVydHVyZV9zaXplIC8gKFBBR0VfU0laRSAqIDUxMik7CisJZG1hX2RvbS0+cHRlX3BhZ2VzID0ga3phbGxvYyhudW1fcHRlX3BhZ2VzICogc2l6ZW9mKHZvaWQgKiksCisJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIWRtYV9kb20tPnB0ZV9wYWdlcykKKwkJZ290byBmcmVlX2RtYV9kb207CisKKwlsMl9wZGUgPSAodTY0ICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOworCWlmIChsMl9wZGUgPT0gTlVMTCkKKwkJZ290byBmcmVlX2RtYV9kb207CisKKwlkbWFfZG9tLT5kb21haW4ucHRfcm9vdFswXSA9IElPTU1VX0wyX1BERSh2aXJ0X3RvX3BoeXMobDJfcGRlKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3B0ZV9wYWdlczsgKytpKSB7CisJCWRtYV9kb20tPnB0ZV9wYWdlc1tpXSA9ICh1NjQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmICghZG1hX2RvbS0+cHRlX3BhZ2VzW2ldKQorCQkJZ290byBmcmVlX2RtYV9kb207CisJCWFkZHJlc3MgPSB2aXJ0X3RvX3BoeXMoZG1hX2RvbS0+cHRlX3BhZ2VzW2ldKTsKKwkJbDJfcGRlW2ldID0gSU9NTVVfTDFfUERFKGFkZHJlc3MpOworCX0KKworCXJldHVybiBkbWFfZG9tOworCitmcmVlX2RtYV9kb206CisJZG1hX29wc19kb21haW5fZnJlZShkbWFfZG9tKTsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW5fZm9yX2RldmljZSh1MTYgZGV2aWQpCit7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb207CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXJlYWRfbG9ja19pcnFzYXZlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCWRvbSA9IGFtZF9pb21tdV9wZF90YWJsZVtkZXZpZF07CisJcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmYW1kX2lvbW11X2RldnRhYmxlX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiBkb207Cit9CisKK3N0YXRpYyB2b2lkIHNldF9kZXZpY2VfZG9tYWluKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJICAgICAgc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW4sCisJCQkgICAgICB1MTYgZGV2aWQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXU2NCBwdGVfcm9vdCA9IHZpcnRfdG9fcGh5cyhkb21haW4tPnB0X3Jvb3QpOworCisJcHRlX3Jvb3QgfD0gKGRvbWFpbi0+bW9kZSAmIDB4MDcpIDw8IDk7CisJcHRlX3Jvb3QgfD0gSU9NTVVfUFRFX0lSIHwgSU9NTVVfUFRFX0lXIHwgSU9NTVVfUFRFX1AgfCAyOworCisJd3JpdGVfbG9ja19pcnFzYXZlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCWFtZF9pb21tdV9kZXZfdGFibGVbZGV2aWRdLmRhdGFbMF0gPSBwdGVfcm9vdDsKKwlhbWRfaW9tbXVfZGV2X3RhYmxlW2RldmlkXS5kYXRhWzFdID0gcHRlX3Jvb3QgPj4gMzI7CisJYW1kX2lvbW11X2Rldl90YWJsZVtkZXZpZF0uZGF0YVsyXSA9IGRvbWFpbi0+aWQ7CisKKwlhbWRfaW9tbXVfcGRfdGFibGVbZGV2aWRdID0gZG9tYWluOworCXdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCisJaW9tbXVfcXVldWVfaW52X2Rldl9lbnRyeShpb21tdSwgZGV2aWQpOworCisJaW9tbXUtPm5lZWRfc3luYyA9IDE7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X2RldmljZV9yZXNvdXJjZXMoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCXN0cnVjdCBhbWRfaW9tbXUgKippb21tdSwKKwkJCQlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKipkb21haW4sCisJCQkJdTE2ICpiZGYpCit7CisJc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tOworCXN0cnVjdCBwY2lfZGV2ICpwY2lkZXY7CisJdTE2IF9iZGY7CisKKwlCVUdfT04oIWRldiB8fCBkZXYtPmJ1cyAhPSAmcGNpX2J1c190eXBlIHx8ICFkZXYtPmRtYV9tYXNrKTsKKworCXBjaWRldiA9IHRvX3BjaV9kZXYoZGV2KTsKKwlfYmRmID0gKHBjaWRldi0+YnVzLT5udW1iZXIgPDwgOCkgfCBwY2lkZXYtPmRldmZuOworCisJaWYgKF9iZGYgPj0gYW1kX2lvbW11X2xhc3RfYmRmKSB7CisJCSppb21tdSA9IE5VTEw7CisJCSpkb21haW4gPSBOVUxMOworCQkqYmRmID0gMHhmZmZmOworCQlyZXR1cm4gMDsKKwl9CisKKwkqYmRmID0gYW1kX2lvbW11X2FsaWFzX3RhYmxlW19iZGZdOworCisJKmlvbW11ID0gYW1kX2lvbW11X3Jsb29rdXBfdGFibGVbKmJkZl07CisJaWYgKCppb21tdSA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKwlkbWFfZG9tID0gKCppb21tdSktPmRlZmF1bHRfZG9tOworCSpkb21haW4gPSBkb21haW5fZm9yX2RldmljZSgqYmRmKTsKKwlpZiAoKmRvbWFpbiA9PSBOVUxMKSB7CisJCSpkb21haW4gPSAmZG1hX2RvbS0+ZG9tYWluOworCQlzZXRfZGV2aWNlX2RvbWFpbigqaW9tbXUsICpkb21haW4sICpiZGYpOworCQlwcmludGsoS0VSTl9JTkZPICJBTUQgSU9NTVU6IFVzaW5nIHByb3RlY3Rpb24gZG9tYWluICVkIGZvciAiCisJCQkJImRldmljZSAiLCAoKmRvbWFpbiktPmlkKTsKKwkJcHJpbnRfZGV2aWQoX2JkZiwgMSk7CisJfQorCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBkbWFfYWRkcl90IGRtYV9vcHNfZG9tYWluX21hcChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKKwkJCQkgICAgIHN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG9tLAorCQkJCSAgICAgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAorCQkJCSAgICAgcGh5c19hZGRyX3QgcGFkZHIsCisJCQkJICAgICBpbnQgZGlyZWN0aW9uKQoreworCXU2NCAqcHRlLCBfX3B0ZTsKKworCVdBUk5fT04oYWRkcmVzcyA+IGRvbS0+YXBlcnR1cmVfc2l6ZSk7CisKKwlwYWRkciAmPSBQQUdFX01BU0s7CisKKwlwdGUgID0gZG9tLT5wdGVfcGFnZXNbSU9NTVVfUFRFX0wxX0lOREVYKGFkZHJlc3MpXTsKKwlwdGUgKz0gSU9NTVVfUFRFX0wwX0lOREVYKGFkZHJlc3MpOworCisJX19wdGUgPSBwYWRkciB8IElPTU1VX1BURV9QIHwgSU9NTVVfUFRFX0ZDOworCisJaWYgKGRpcmVjdGlvbiA9PSBETUFfVE9fREVWSUNFKQorCQlfX3B0ZSB8PSBJT01NVV9QVEVfSVI7CisJZWxzZSBpZiAoZGlyZWN0aW9uID09IERNQV9GUk9NX0RFVklDRSkKKwkJX19wdGUgfD0gSU9NTVVfUFRFX0lXOworCWVsc2UgaWYgKGRpcmVjdGlvbiA9PSBETUFfQklESVJFQ1RJT05BTCkKKwkJX19wdGUgfD0gSU9NTVVfUFRFX0lSIHwgSU9NTVVfUFRFX0lXOworCisJV0FSTl9PTigqcHRlKTsKKworCSpwdGUgPSBfX3B0ZTsKKworCXJldHVybiAoZG1hX2FkZHJfdClhZGRyZXNzOworfQorCitzdGF0aWMgdm9pZCBkbWFfb3BzX2RvbWFpbl91bm1hcChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKKwkJCQkgc3RydWN0IGRtYV9vcHNfZG9tYWluICpkb20sCisJCQkJIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKK3sKKwl1NjQgKnB0ZTsKKworCWlmIChhZGRyZXNzID49IGRvbS0+YXBlcnR1cmVfc2l6ZSkKKwkJcmV0dXJuOworCisJV0FSTl9PTihhZGRyZXNzICYgMHhmZmZVTEwgfHwgYWRkcmVzcyA+IGRvbS0+YXBlcnR1cmVfc2l6ZSk7CisKKwlwdGUgID0gZG9tLT5wdGVfcGFnZXNbSU9NTVVfUFRFX0wxX0lOREVYKGFkZHJlc3MpXTsKKwlwdGUgKz0gSU9NTVVfUFRFX0wwX0lOREVYKGFkZHJlc3MpOworCisJV0FSTl9PTighKnB0ZSk7CisKKwkqcHRlID0gMFVMTDsKK30KKworc3RhdGljIGRtYV9hZGRyX3QgX19tYXBfc2luZ2xlKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKKwkJCSAgICAgICBzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb20sCisJCQkgICAgICAgcGh5c19hZGRyX3QgcGFkZHIsCisJCQkgICAgICAgc2l6ZV90IHNpemUsCisJCQkgICAgICAgaW50IGRpcikKK3sKKwlkbWFfYWRkcl90IG9mZnNldCA9IHBhZGRyICYgflBBR0VfTUFTSzsKKwlkbWFfYWRkcl90IGFkZHJlc3MsIHN0YXJ0OworCXVuc2lnbmVkIGludCBwYWdlczsKKwlpbnQgaTsKKworCXBhZ2VzID0gdG9fcGFnZXMocGFkZHIsIHNpemUpOworCXBhZGRyICY9IFBBR0VfTUFTSzsKKworCWFkZHJlc3MgPSBkbWFfb3BzX2FsbG9jX2FkZHJlc3NlcyhkZXYsIGRtYV9kb20sIHBhZ2VzKTsKKwlpZiAodW5saWtlbHkoYWRkcmVzcyA9PSBiYWRfZG1hX2FkZHJlc3MpKQorCQlnb3RvIG91dDsKKworCXN0YXJ0ID0gYWRkcmVzczsKKwlmb3IgKGkgPSAwOyBpIDwgcGFnZXM7ICsraSkgeworCQlkbWFfb3BzX2RvbWFpbl9tYXAoaW9tbXUsIGRtYV9kb20sIHN0YXJ0LCBwYWRkciwgZGlyKTsKKwkJcGFkZHIgKz0gUEFHRV9TSVpFOworCQlzdGFydCArPSBQQUdFX1NJWkU7CisJfQorCWFkZHJlc3MgKz0gb2Zmc2V0OworCitvdXQ6CisJcmV0dXJuIGFkZHJlc3M7Cit9CisKK3N0YXRpYyB2b2lkIF9fdW5tYXBfc2luZ2xlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJICAgc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tLAorCQkJICAgZG1hX2FkZHJfdCBkbWFfYWRkciwKKwkJCSAgIHNpemVfdCBzaXplLAorCQkJICAgaW50IGRpcikKK3sKKwlkbWFfYWRkcl90IGksIHN0YXJ0OworCXVuc2lnbmVkIGludCBwYWdlczsKKworCWlmICgoZG1hX2FkZHIgPT0gMCkgfHwgKGRtYV9hZGRyICsgc2l6ZSA+IGRtYV9kb20tPmFwZXJ0dXJlX3NpemUpKQorCQlyZXR1cm47CisKKwlwYWdlcyA9IHRvX3BhZ2VzKGRtYV9hZGRyLCBzaXplKTsKKwlkbWFfYWRkciAmPSBQQUdFX01BU0s7CisJc3RhcnQgPSBkbWFfYWRkcjsKKworCWZvciAoaSA9IDA7IGkgPCBwYWdlczsgKytpKSB7CisJCWRtYV9vcHNfZG9tYWluX3VubWFwKGlvbW11LCBkbWFfZG9tLCBzdGFydCk7CisJCXN0YXJ0ICs9IFBBR0VfU0laRTsKKwl9CisKKwlkbWFfb3BzX2ZyZWVfYWRkcmVzc2VzKGRtYV9kb20sIGRtYV9hZGRyLCBwYWdlcyk7Cit9CisKK3N0YXRpYyBkbWFfYWRkcl90IG1hcF9zaW5nbGUoc3RydWN0IGRldmljZSAqZGV2LCBwaHlzX2FkZHJfdCBwYWRkciwKKwkJCSAgICAgc2l6ZV90IHNpemUsIGludCBkaXIpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKwlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbjsKKwl1MTYgZGV2aWQ7CisJZG1hX2FkZHJfdCBhZGRyOworCisJZ2V0X2RldmljZV9yZXNvdXJjZXMoZGV2LCAmaW9tbXUsICZkb21haW4sICZkZXZpZCk7CisKKwlpZiAoaW9tbXUgPT0gTlVMTCB8fCBkb21haW4gPT0gTlVMTCkKKwkJcmV0dXJuIChkbWFfYWRkcl90KXBhZGRyOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCWFkZHIgPSBfX21hcF9zaW5nbGUoZGV2LCBpb21tdSwgZG9tYWluLT5wcml2LCBwYWRkciwgc2l6ZSwgZGlyKTsKKwlpZiAoYWRkciA9PSBiYWRfZG1hX2FkZHJlc3MpCisJCWdvdG8gb3V0OworCisJaWYgKGlvbW11X2hhc19ucGNhY2hlKGlvbW11KSkKKwkJaW9tbXVfZmx1c2hfcGFnZXMoaW9tbXUsIGRvbWFpbi0+aWQsIGFkZHIsIHNpemUpOworCisJaWYgKGlvbW11LT5uZWVkX3N5bmMpCisJCWlvbW11X2NvbXBsZXRpb25fd2FpdChpb21tdSk7CisKK291dDoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCXJldHVybiBhZGRyOworfQorCitzdGF0aWMgdm9pZCB1bm1hcF9zaW5nbGUoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGRtYV9hZGRyLAorCQkJIHNpemVfdCBzaXplLCBpbnQgZGlyKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW47CisJdTE2IGRldmlkOworCisJaWYgKCFnZXRfZGV2aWNlX3Jlc291cmNlcyhkZXYsICZpb21tdSwgJmRvbWFpbiwgJmRldmlkKSkKKwkJcmV0dXJuOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCisJX191bm1hcF9zaW5nbGUoaW9tbXUsIGRvbWFpbi0+cHJpdiwgZG1hX2FkZHIsIHNpemUsIGRpcik7CisKKwlpb21tdV9mbHVzaF9wYWdlcyhpb21tdSwgZG9tYWluLT5pZCwgZG1hX2FkZHIsIHNpemUpOworCisJaWYgKGlvbW11LT5uZWVkX3N5bmMpCisJCWlvbW11X2NvbXBsZXRpb25fd2FpdChpb21tdSk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIGludCBtYXBfc2dfbm9faW9tbXUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCwKKwkJCSAgIGludCBuZWxlbXMsIGludCBkaXIpCit7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOworCWludCBpOworCisJZm9yX2VhY2hfc2coc2dsaXN0LCBzLCBuZWxlbXMsIGkpIHsKKwkJcy0+ZG1hX2FkZHJlc3MgPSAoZG1hX2FkZHJfdClzZ19waHlzKHMpOworCQlzLT5kbWFfbGVuZ3RoICA9IHMtPmxlbmd0aDsKKwl9CisKKwlyZXR1cm4gbmVsZW1zOworfQorCitzdGF0aWMgaW50IG1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsaXN0LAorCQkgIGludCBuZWxlbXMsIGludCBkaXIpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKwlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbjsKKwl1MTYgZGV2aWQ7CisJaW50IGk7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOworCXBoeXNfYWRkcl90IHBhZGRyOworCWludCBtYXBwZWRfZWxlbXMgPSAwOworCisJZ2V0X2RldmljZV9yZXNvdXJjZXMoZGV2LCAmaW9tbXUsICZkb21haW4sICZkZXZpZCk7CisKKwlpZiAoIWlvbW11IHx8ICFkb21haW4pCisJCXJldHVybiBtYXBfc2dfbm9faW9tbXUoZGV2LCBzZ2xpc3QsIG5lbGVtcywgZGlyKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCWZvcl9lYWNoX3NnKHNnbGlzdCwgcywgbmVsZW1zLCBpKSB7CisJCXBhZGRyID0gc2dfcGh5cyhzKTsKKworCQlzLT5kbWFfYWRkcmVzcyA9IF9fbWFwX3NpbmdsZShkZXYsIGlvbW11LCBkb21haW4tPnByaXYsCisJCQkJCSAgICAgIHBhZGRyLCBzLT5sZW5ndGgsIGRpcik7CisKKwkJaWYgKHMtPmRtYV9hZGRyZXNzKSB7CisJCQlzLT5kbWFfbGVuZ3RoID0gcy0+bGVuZ3RoOworCQkJbWFwcGVkX2VsZW1zKys7CisJCX0gZWxzZQorCQkJZ290byB1bm1hcDsKKwkJaWYgKGlvbW11X2hhc19ucGNhY2hlKGlvbW11KSkKKwkJCWlvbW11X2ZsdXNoX3BhZ2VzKGlvbW11LCBkb21haW4tPmlkLCBzLT5kbWFfYWRkcmVzcywKKwkJCQkJICBzLT5kbWFfbGVuZ3RoKTsKKwl9CisKKwlpZiAoaW9tbXUtPm5lZWRfc3luYykKKwkJaW9tbXVfY29tcGxldGlvbl93YWl0KGlvbW11KTsKKworb3V0OgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCisJcmV0dXJuIG1hcHBlZF9lbGVtczsKK3VubWFwOgorCWZvcl9lYWNoX3NnKHNnbGlzdCwgcywgbWFwcGVkX2VsZW1zLCBpKSB7CisJCWlmIChzLT5kbWFfYWRkcmVzcykKKwkJCV9fdW5tYXBfc2luZ2xlKGlvbW11LCBkb21haW4tPnByaXYsIHMtPmRtYV9hZGRyZXNzLAorCQkJCSAgICAgICBzLT5kbWFfbGVuZ3RoLCBkaXIpOworCQlzLT5kbWFfYWRkcmVzcyA9IHMtPmRtYV9sZW5ndGggPSAwOworCX0KKworCW1hcHBlZF9lbGVtcyA9IDA7CisKKwlnb3RvIG91dDsKK30KKworc3RhdGljIHZvaWQgdW5tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCwKKwkJICAgICBpbnQgbmVsZW1zLCBpbnQgZGlyKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW47CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzOworCXUxNiBkZXZpZDsKKwlpbnQgaTsKKworCWlmICghZ2V0X2RldmljZV9yZXNvdXJjZXMoZGV2LCAmaW9tbXUsICZkb21haW4sICZkZXZpZCkpCisJCXJldHVybjsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCWZvcl9lYWNoX3NnKHNnbGlzdCwgcywgbmVsZW1zLCBpKSB7CisJCV9fdW5tYXBfc2luZ2xlKGlvbW11LCBkb21haW4tPnByaXYsIHMtPmRtYV9hZGRyZXNzLAorCQkJICAgICAgIHMtPmRtYV9sZW5ndGgsIGRpcik7CisJCWlvbW11X2ZsdXNoX3BhZ2VzKGlvbW11LCBkb21haW4tPmlkLCBzLT5kbWFfYWRkcmVzcywKKwkJCQkgIHMtPmRtYV9sZW5ndGgpOworCQlzLT5kbWFfYWRkcmVzcyA9IHMtPmRtYV9sZW5ndGggPSAwOworCX0KKworCWlmIChpb21tdS0+bmVlZF9zeW5jKQorCQlpb21tdV9jb21wbGV0aW9uX3dhaXQoaW9tbXUpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkICphbGxvY19jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAorCQkJICAgIGRtYV9hZGRyX3QgKmRtYV9hZGRyLCBnZnBfdCBmbGFnKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdm9pZCAqdmlydF9hZGRyOworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCXN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluOworCXUxNiBkZXZpZDsKKwlwaHlzX2FkZHJfdCBwYWRkcjsKKworCXZpcnRfYWRkciA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhmbGFnLCBnZXRfb3JkZXIoc2l6ZSkpOworCWlmICghdmlydF9hZGRyKQorCQlyZXR1cm4gMDsKKworCW1lbXNldCh2aXJ0X2FkZHIsIDAsIHNpemUpOworCXBhZGRyID0gdmlydF90b19waHlzKHZpcnRfYWRkcik7CisKKwlnZXRfZGV2aWNlX3Jlc291cmNlcyhkZXYsICZpb21tdSwgJmRvbWFpbiwgJmRldmlkKTsKKworCWlmICghaW9tbXUgfHwgIWRvbWFpbikgeworCQkqZG1hX2FkZHIgPSAoZG1hX2FkZHJfdClwYWRkcjsKKwkJcmV0dXJuIHZpcnRfYWRkcjsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7CisKKwkqZG1hX2FkZHIgPSBfX21hcF9zaW5nbGUoZGV2LCBpb21tdSwgZG9tYWluLT5wcml2LCBwYWRkciwKKwkJCQkgc2l6ZSwgRE1BX0JJRElSRUNUSU9OQUwpOworCisJaWYgKCpkbWFfYWRkciA9PSBiYWRfZG1hX2FkZHJlc3MpIHsKKwkJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZyl2aXJ0X2FkZHIsIGdldF9vcmRlcihzaXplKSk7CisJCXZpcnRfYWRkciA9IE5VTEw7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChpb21tdV9oYXNfbnBjYWNoZShpb21tdSkpCisJCWlvbW11X2ZsdXNoX3BhZ2VzKGlvbW11LCBkb21haW4tPmlkLCAqZG1hX2FkZHIsIHNpemUpOworCisJaWYgKGlvbW11LT5uZWVkX3N5bmMpCisJCWlvbW11X2NvbXBsZXRpb25fd2FpdChpb21tdSk7CisKK291dDoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCXJldHVybiB2aXJ0X2FkZHI7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKKwkJCSAgdm9pZCAqdmlydF9hZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRyKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW47CisJdTE2IGRldmlkOworCisJZ2V0X2RldmljZV9yZXNvdXJjZXMoZGV2LCAmaW9tbXUsICZkb21haW4sICZkZXZpZCk7CisKKwlpZiAoIWlvbW11IHx8ICFkb21haW4pCisJCWdvdG8gZnJlZV9tZW07CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7CisKKwlfX3VubWFwX3NpbmdsZShpb21tdSwgZG9tYWluLT5wcml2LCBkbWFfYWRkciwgc2l6ZSwgRE1BX0JJRElSRUNUSU9OQUwpOworCWlvbW11X2ZsdXNoX3BhZ2VzKGlvbW11LCBkb21haW4tPmlkLCBkbWFfYWRkciwgc2l6ZSk7CisKKwlpZiAoaW9tbXUtPm5lZWRfc3luYykKKwkJaW9tbXVfY29tcGxldGlvbl93YWl0KGlvbW11KTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCitmcmVlX21lbToKKwlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKXZpcnRfYWRkciwgZ2V0X29yZGVyKHNpemUpKTsKK30KKworLyoKKyAqIElmIHRoZSBkcml2ZXIgY29yZSBpbmZvcm1zIHRoZSBETUEgbGF5ZXIgaWYgYSBkcml2ZXIgZ3JhYnMgYSBkZXZpY2UKKyAqIHdlIGRvbid0IG5lZWQgdG8gcHJlYWxsb2NhdGUgdGhlIHByb3RlY3Rpb24gZG9tYWlucyBhbnltb3JlLgorICogRm9yIG5vdyB3ZSBoYXZlIHRvLgorICovCit2b2lkIHByZWFsbG9jX3Byb3RlY3Rpb25fZG9tYWlucyh2b2lkKQoreworCXN0cnVjdCBwY2lfZGV2ICpkZXYgPSBOVUxMOworCXN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG1hX2RvbTsKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKwlpbnQgb3JkZXIgPSBhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXI7CisJdTE2IGRldmlkOworCisJd2hpbGUgKChkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBkZXYpKSAhPSBOVUxMKSB7CisJCWRldmlkID0gKGRldi0+YnVzLT5udW1iZXIgPDwgOCkgfCBkZXYtPmRldmZuOworCQlpZiAoZGV2aWQgPj0gYW1kX2lvbW11X2xhc3RfYmRmKQorCQkJY29udGludWU7CisJCWRldmlkID0gYW1kX2lvbW11X2FsaWFzX3RhYmxlW2RldmlkXTsKKwkJaWYgKGRvbWFpbl9mb3JfZGV2aWNlKGRldmlkKSkKKwkJCWNvbnRpbnVlOworCQlpb21tdSA9IGFtZF9pb21tdV9ybG9va3VwX3RhYmxlW2RldmlkXTsKKwkJaWYgKCFpb21tdSkKKwkJCWNvbnRpbnVlOworCQlkbWFfZG9tID0gZG1hX29wc19kb21haW5fYWxsb2MoaW9tbXUsIG9yZGVyKTsKKwkJaWYgKCFkbWFfZG9tKQorCQkJY29udGludWU7CisJCWluaXRfdW5pdHlfbWFwcGluZ3NfZm9yX2RldmljZShkbWFfZG9tLCBkZXZpZCk7CisJCXNldF9kZXZpY2VfZG9tYWluKGlvbW11LCAmZG1hX2RvbS0+ZG9tYWluLCBkZXZpZCk7CisJCXByaW50ayhLRVJOX0lORk8gIkFNRCBJT01NVTogQWxsb2NhdGVkIGRvbWFpbiAlZCBmb3IgZGV2aWNlICIsCisJCSAgICAgICBkbWFfZG9tLT5kb21haW4uaWQpOworCQlwcmludF9kZXZpZChkZXZpZCwgMSk7CisJfQorfQorCitzdGF0aWMgc3RydWN0IGRtYV9tYXBwaW5nX29wcyBhbWRfaW9tbXVfZG1hX29wcyA9IHsKKwkuYWxsb2NfY29oZXJlbnQgPSBhbGxvY19jb2hlcmVudCwKKwkuZnJlZV9jb2hlcmVudCA9IGZyZWVfY29oZXJlbnQsCisJLm1hcF9zaW5nbGUgPSBtYXBfc2luZ2xlLAorCS51bm1hcF9zaW5nbGUgPSB1bm1hcF9zaW5nbGUsCisJLm1hcF9zZyA9IG1hcF9zZywKKwkudW5tYXBfc2cgPSB1bm1hcF9zZywKK307CisKK2ludCBfX2luaXQgYW1kX2lvbW11X2luaXRfZG1hX29wcyh2b2lkKQoreworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCWludCBvcmRlciA9IGFtZF9pb21tdV9hcGVydHVyZV9vcmRlcjsKKwlpbnQgcmV0OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpb21tdSwgJmFtZF9pb21tdV9saXN0LCBsaXN0KSB7CisJCWlvbW11LT5kZWZhdWx0X2RvbSA9IGRtYV9vcHNfZG9tYWluX2FsbG9jKGlvbW11LCBvcmRlcik7CisJCWlmIChpb21tdS0+ZGVmYXVsdF9kb20gPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCQlyZXQgPSBpb21tdV9pbml0X3VuaXR5X21hcHBpbmdzKGlvbW11KTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZnJlZV9kb21haW5zOworCX0KKworCWlmIChhbWRfaW9tbXVfaXNvbGF0ZSkKKwkJcHJlYWxsb2NfcHJvdGVjdGlvbl9kb21haW5zKCk7CisKKwlpb21tdV9kZXRlY3RlZCA9IDE7CisJZm9yY2VfaW9tbXUgPSAxOworCWJhZF9kbWFfYWRkcmVzcyA9IDA7CisjaWZkZWYgQ09ORklHX0dBUlRfSU9NTVUKKwlnYXJ0X2lvbW11X2FwZXJ0dXJlX2Rpc2FibGVkID0gMTsKKwlnYXJ0X2lvbW11X2FwZXJ0dXJlID0gMDsKKyNlbmRpZgorCisJZG1hX29wcyA9ICZhbWRfaW9tbXVfZG1hX29wczsKKworCXJldHVybiAwOworCitmcmVlX2RvbWFpbnM6CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGlvbW11LCAmYW1kX2lvbW11X2xpc3QsIGxpc3QpIHsKKwkJaWYgKGlvbW11LT5kZWZhdWx0X2RvbSkKKwkJCWRtYV9vcHNfZG9tYWluX2ZyZWUoaW9tbXUtPmRlZmF1bHRfZG9tKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FtZF9pb21tdV9pbml0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYW1kX2lvbW11X2luaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTEzZTQzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2FtZF9pb21tdV9pbml0LmMKQEAgLTAsMCArMSw4NzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBBdXRob3I6IEpvZXJnIFJvZWRlbCA8am9lcmcucm9lZGVsQGFtZC5jb20+CisgKiAgICAgICAgIExlbyBEdXJhbiA8bGVvLmR1cmFuQGFtZC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZAorICogYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9nZnAuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CisjaW5jbHVkZSA8YXNtL3BjaS1kaXJlY3QuaD4KKyNpbmNsdWRlIDxhc20vYW1kX2lvbW11X3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2FtZF9pb21tdS5oPgorI2luY2x1ZGUgPGFzbS9nYXJ0Lmg+CisKKy8qCisgKiBkZWZpbml0aW9ucyBmb3IgdGhlIEFDUEkgc2Nhbm5pbmcgY29kZQorICovCisjZGVmaW5lIFVQREFURV9MQVNUX0JERih4KSBkbyB7XAorCWlmICgoeCkgPiBhbWRfaW9tbXVfbGFzdF9iZGYpIFwKKwkJYW1kX2lvbW11X2xhc3RfYmRmID0gKHgpOyBcCisJfSB3aGlsZSAoMCk7CisKKyNkZWZpbmUgREVWSUQoYnVzLCBkZXZmbikgKCgoYnVzKSA8PCA4KSB8IChkZXZmbikpCisjZGVmaW5lIFBDSV9CVVMoeCkgKCgoeCkgPj4gOCkgJiAweGZmKQorI2RlZmluZSBJVlJTX0hFQURFUl9MRU5HVEggNDgKKyNkZWZpbmUgVEJMX1NJWkUoeCkgKDEgPDwgKFBBR0VfU0hJRlQgKyBnZXRfb3JkZXIoYW1kX2lvbW11X2xhc3RfYmRmICogKHgpKSkpCisKKyNkZWZpbmUgQUNQSV9JVkhEX1RZUEUgICAgICAgICAgICAgICAgICAweDEwCisjZGVmaW5lIEFDUElfSVZNRF9UWVBFX0FMTCAgICAgICAgICAgICAgMHgyMAorI2RlZmluZSBBQ1BJX0lWTURfVFlQRSAgICAgICAgICAgICAgICAgIDB4MjEKKyNkZWZpbmUgQUNQSV9JVk1EX1RZUEVfUkFOR0UgICAgICAgICAgICAweDIyCisKKyNkZWZpbmUgSVZIRF9ERVZfQUxMICAgICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIElWSERfREVWX1NFTEVDVCAgICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBJVkhEX0RFVl9TRUxFQ1RfUkFOR0VfU1RBUlQgICAgIDB4MDMKKyNkZWZpbmUgSVZIRF9ERVZfUkFOR0VfRU5EICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIElWSERfREVWX0FMSUFTICAgICAgICAgICAgICAgICAgMHg0MgorI2RlZmluZSBJVkhEX0RFVl9BTElBU19SQU5HRSAgICAgICAgICAgIDB4NDMKKyNkZWZpbmUgSVZIRF9ERVZfRVhUX1NFTEVDVCAgICAgICAgICAgICAweDQ2CisjZGVmaW5lIElWSERfREVWX0VYVF9TRUxFQ1RfUkFOR0UgICAgICAgMHg0NworCisjZGVmaW5lIElWSERfRkxBR19IVF9UVU5fRU4gICAgICAgICAgICAgMHgwMAorI2RlZmluZSBJVkhEX0ZMQUdfUEFTU1BXX0VOICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgSVZIRF9GTEFHX1JFU1BBU1NQV19FTiAgICAgICAgICAweDAyCisjZGVmaW5lIElWSERfRkxBR19JU09DX0VOICAgICAgICAgICAgICAgMHgwMworCisjZGVmaW5lIElWTURfRkxBR19FWENMX1JBTkdFICAgICAgICAgICAgMHgwOAorI2RlZmluZSBJVk1EX0ZMQUdfVU5JVFlfTUFQICAgICAgICAgICAgIDB4MDEKKworI2RlZmluZSBBQ1BJX0RFVkZMQUdfSU5JVFBBU1MgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgQUNQSV9ERVZGTEFHX0VYVElOVCAgICAgICAgICAgICAweDAyCisjZGVmaW5lIEFDUElfREVWRkxBR19OTUkgICAgICAgICAgICAgICAgMHgwNAorI2RlZmluZSBBQ1BJX0RFVkZMQUdfU1lTTUdUMSAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQUNQSV9ERVZGTEFHX1NZU01HVDIgICAgICAgICAgICAweDIwCisjZGVmaW5lIEFDUElfREVWRkxBR19MSU5UMCAgICAgICAgICAgICAgMHg0MAorI2RlZmluZSBBQ1BJX0RFVkZMQUdfTElOVDEgICAgICAgICAgICAgIDB4ODAKKyNkZWZpbmUgQUNQSV9ERVZGTEFHX0FUU0RJUyAgICAgICAgICAgICAweDEwMDAwMDAwCisKK3N0cnVjdCBpdmhkX2hlYWRlciB7CisJdTggdHlwZTsKKwl1OCBmbGFnczsKKwl1MTYgbGVuZ3RoOworCXUxNiBkZXZpZDsKKwl1MTYgY2FwX3B0cjsKKwl1NjQgbW1pb19waHlzOworCXUxNiBwY2lfc2VnOworCXUxNiBpbmZvOworCXUzMiByZXNlcnZlZDsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0cnVjdCBpdmhkX2VudHJ5IHsKKwl1OCB0eXBlOworCXUxNiBkZXZpZDsKKwl1OCBmbGFnczsKKwl1MzIgZXh0OworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IGl2bWRfaGVhZGVyIHsKKwl1OCB0eXBlOworCXU4IGZsYWdzOworCXUxNiBsZW5ndGg7CisJdTE2IGRldmlkOworCXUxNiBhdXg7CisJdTY0IHJlc3Y7CisJdTY0IHJhbmdlX3N0YXJ0OworCXU2NCByYW5nZV9sZW5ndGg7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdGF0aWMgaW50IF9faW5pdGRhdGEgYW1kX2lvbW11X2RldGVjdGVkOworCit1MTYgYW1kX2lvbW11X2xhc3RfYmRmOworc3RydWN0IGxpc3RfaGVhZCBhbWRfaW9tbXVfdW5pdHlfbWFwOwordW5zaWduZWQgYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyID0gMjY7CitpbnQgYW1kX2lvbW11X2lzb2xhdGU7CisKK3N0cnVjdCBsaXN0X2hlYWQgYW1kX2lvbW11X2xpc3Q7CitzdHJ1Y3QgZGV2X3RhYmxlX2VudHJ5ICphbWRfaW9tbXVfZGV2X3RhYmxlOwordTE2ICphbWRfaW9tbXVfYWxpYXNfdGFibGU7CitzdHJ1Y3QgYW1kX2lvbW11ICoqYW1kX2lvbW11X3Jsb29rdXBfdGFibGU7CitzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKiphbWRfaW9tbXVfcGRfdGFibGU7Cit1bnNpZ25lZCBsb25nICphbWRfaW9tbXVfcGRfYWxsb2NfYml0bWFwOworCitzdGF0aWMgdTMyIGRldl90YWJsZV9zaXplOworc3RhdGljIHUzMiBhbGlhc190YWJsZV9zaXplOworc3RhdGljIHUzMiBybG9va3VwX3RhYmxlX3NpemU7CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpb21tdV9zZXRfZXhjbHVzaW9uX3JhbmdlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCXU2NCBzdGFydCA9IGlvbW11LT5leGNsdXNpb25fc3RhcnQgJiBQQUdFX01BU0s7CisJdTY0IGxpbWl0ID0gKHN0YXJ0ICsgaW9tbXUtPmV4Y2x1c2lvbl9sZW5ndGgpICYgUEFHRV9NQVNLOworCXU2NCBlbnRyeTsKKworCWlmICghaW9tbXUtPmV4Y2x1c2lvbl9zdGFydCkKKwkJcmV0dXJuOworCisJZW50cnkgPSBzdGFydCB8IE1NSU9fRVhDTF9FTkFCTEVfTUFTSzsKKwltZW1jcHlfdG9pbyhpb21tdS0+bW1pb19iYXNlICsgTU1JT19FWENMX0JBU0VfT0ZGU0VULAorCQkJJmVudHJ5LCBzaXplb2YoZW50cnkpKTsKKworCWVudHJ5ID0gbGltaXQ7CisJbWVtY3B5X3RvaW8oaW9tbXUtPm1taW9fYmFzZSArIE1NSU9fRVhDTF9MSU1JVF9PRkZTRVQsCisJCQkmZW50cnksIHNpemVvZihlbnRyeSkpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW9tbXVfc2V0X2RldmljZV90YWJsZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwl1MzIgZW50cnk7CisKKwlCVUdfT04oaW9tbXUtPm1taW9fYmFzZSA9PSBOVUxMKTsKKworCWVudHJ5ID0gdmlydF90b19waHlzKGFtZF9pb21tdV9kZXZfdGFibGUpOworCWVudHJ5IHw9IChkZXZfdGFibGVfc2l6ZSA+PiAxMikgLSAxOworCW1lbWNweV90b2lvKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0RFVl9UQUJMRV9PRkZTRVQsCisJCQkmZW50cnksIHNpemVvZihlbnRyeSkpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW9tbXVfZmVhdHVyZV9lbmFibGUoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHU4IGJpdCkKK3sKKwl1MzIgY3RybDsKKworCWN0cmwgPSByZWFkbChpb21tdS0+bW1pb19iYXNlICsgTU1JT19DT05UUk9MX09GRlNFVCk7CisJY3RybCB8PSAoMSA8PCBiaXQpOworCXdyaXRlbChjdHJsLCBpb21tdS0+bW1pb19iYXNlICsgTU1JT19DT05UUk9MX09GRlNFVCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpb21tdV9mZWF0dXJlX2Rpc2FibGUoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHU4IGJpdCkKK3sKKwl1MzIgY3RybDsKKworCWN0cmwgPSAodTY0KXJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NPTlRST0xfT0ZGU0VUKTsKKwljdHJsICY9IH4oMSA8PCBiaXQpOworCXdyaXRlbChjdHJsLCBpb21tdS0+bW1pb19iYXNlICsgTU1JT19DT05UUk9MX09GRlNFVCk7Cit9CisKK3ZvaWQgX19pbml0IGlvbW11X2VuYWJsZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwlwcmludGsoS0VSTl9JTkZPICJBTUQgSU9NTVU6IEVuYWJsaW5nIElPTU1VIGF0ICIpOworCXByaW50X2RldmlkKGlvbW11LT5kZXZpZCwgMCk7CisJcHJpbnRrKCIgY2FwIDB4JWh4XG4iLCBpb21tdS0+Y2FwX3B0cik7CisKKwlpb21tdV9mZWF0dXJlX2VuYWJsZShpb21tdSwgQ09OVFJPTF9JT01NVV9FTik7Cit9CisKK3N0YXRpYyB1OCAqIF9faW5pdCBpb21tdV9tYXBfbW1pb19zcGFjZSh1NjQgYWRkcmVzcykKK3sKKwl1OCAqcmV0OworCisJaWYgKCFyZXF1ZXN0X21lbV9yZWdpb24oYWRkcmVzcywgTU1JT19SRUdJT05fTEVOR1RILCAiYW1kX2lvbW11IikpCisJCXJldHVybiBOVUxMOworCisJcmV0ID0gaW9yZW1hcF9ub2NhY2hlKGFkZHJlc3MsIE1NSU9fUkVHSU9OX0xFTkdUSCk7CisJaWYgKHJldCAhPSBOVUxMKQorCQlyZXR1cm4gcmV0OworCisJcmVsZWFzZV9tZW1fcmVnaW9uKGFkZHJlc3MsIE1NSU9fUkVHSU9OX0xFTkdUSCk7CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGlvbW11X3VubWFwX21taW9fc3BhY2Uoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJaWYgKGlvbW11LT5tbWlvX2Jhc2UpCisJCWlvdW5tYXAoaW9tbXUtPm1taW9fYmFzZSk7CisJcmVsZWFzZV9tZW1fcmVnaW9uKGlvbW11LT5tbWlvX3BoeXMsIE1NSU9fUkVHSU9OX0xFTkdUSCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGZpbmRfbGFzdF9kZXZpZF9vbl9wY2koaW50IGJ1cywgaW50IGRldiwgaW50IGZuLCBpbnQgY2FwX3B0cikKK3sKKwl1MzIgY2FwOworCisJY2FwID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgZGV2LCBmbiwgY2FwX3B0citNTUlPX1JBTkdFX09GRlNFVCk7CisJVVBEQVRFX0xBU1RfQkRGKERFVklEKE1NSU9fR0VUX0JVUyhjYXApLCBNTUlPX0dFVF9MRChjYXApKSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgZmluZF9sYXN0X2RldmlkX2Zyb21faXZoZChzdHJ1Y3QgaXZoZF9oZWFkZXIgKmgpCit7CisJdTggKnAgPSAodm9pZCAqKWgsICplbmQgPSAodm9pZCAqKWg7CisJc3RydWN0IGl2aGRfZW50cnkgKmRldjsKKworCXAgKz0gc2l6ZW9mKCpoKTsKKwllbmQgKz0gaC0+bGVuZ3RoOworCisJZmluZF9sYXN0X2RldmlkX29uX3BjaShQQ0lfQlVTKGgtPmRldmlkKSwKKwkJCVBDSV9TTE9UKGgtPmRldmlkKSwKKwkJCVBDSV9GVU5DKGgtPmRldmlkKSwKKwkJCWgtPmNhcF9wdHIpOworCisJd2hpbGUgKHAgPCBlbmQpIHsKKwkJZGV2ID0gKHN0cnVjdCBpdmhkX2VudHJ5ICopcDsKKwkJc3dpdGNoIChkZXYtPnR5cGUpIHsKKwkJY2FzZSBJVkhEX0RFVl9TRUxFQ1Q6CisJCWNhc2UgSVZIRF9ERVZfUkFOR0VfRU5EOgorCQljYXNlIElWSERfREVWX0FMSUFTOgorCQljYXNlIElWSERfREVWX0VYVF9TRUxFQ1Q6CisJCQlVUERBVEVfTEFTVF9CREYoZGV2LT5kZXZpZCk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJCXAgKz0gMHgwNCA8PCAoKnAgPj4gNik7CisJfQorCisJV0FSTl9PTihwICE9IGVuZCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgZmluZF9sYXN0X2RldmlkX2FjcGkoc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyICp0YWJsZSkKK3sKKwlpbnQgaTsKKwl1OCBjaGVja3N1bSA9IDAsICpwID0gKHU4ICopdGFibGUsICplbmQgPSAodTggKil0YWJsZTsKKwlzdHJ1Y3QgaXZoZF9oZWFkZXIgKmg7CisKKwkvKgorCSAqIFZhbGlkYXRlIGNoZWNrc3VtIGhlcmUgc28gd2UgZG9uJ3QgbmVlZCB0byBkbyBpdCB3aGVuCisJICogd2UgYWN0dWFsbHkgcGFyc2UgdGhlIHRhYmxlCisJICovCisJZm9yIChpID0gMDsgaSA8IHRhYmxlLT5sZW5ndGg7ICsraSkKKwkJY2hlY2tzdW0gKz0gcFtpXTsKKwlpZiAoY2hlY2tzdW0gIT0gMCkKKwkJLyogQUNQSSB0YWJsZSBjb3JydXB0ICovCisJCXJldHVybiAtRU5PREVWOworCisJcCArPSBJVlJTX0hFQURFUl9MRU5HVEg7CisKKwllbmQgKz0gdGFibGUtPmxlbmd0aDsKKwl3aGlsZSAocCA8IGVuZCkgeworCQloID0gKHN0cnVjdCBpdmhkX2hlYWRlciAqKXA7CisJCXN3aXRjaCAoaC0+dHlwZSkgeworCQljYXNlIEFDUElfSVZIRF9UWVBFOgorCQkJZmluZF9sYXN0X2RldmlkX2Zyb21faXZoZChoKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKwkJcCArPSBoLT5sZW5ndGg7CisJfQorCVdBUk5fT04ocCAhPSBlbmQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1OCAqIF9faW5pdCBhbGxvY19jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwl1OCAqY21kX2J1ZiA9ICh1OCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwKKwkJCWdldF9vcmRlcihDTURfQlVGRkVSX1NJWkUpKTsKKwl1NjQgZW50cnkgPSAwOworCisJaWYgKGNtZF9idWYgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwlpb21tdS0+Y21kX2J1Zl9zaXplID0gQ01EX0JVRkZFUl9TSVpFOworCisJbWVtc2V0KGNtZF9idWYsIDAsIENNRF9CVUZGRVJfU0laRSk7CisKKwllbnRyeSA9ICh1NjQpdmlydF90b19waHlzKGNtZF9idWYpOworCWVudHJ5IHw9IE1NSU9fQ01EX1NJWkVfNTEyOworCW1lbWNweV90b2lvKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NNRF9CVUZfT0ZGU0VULAorCQkJJmVudHJ5LCBzaXplb2YoZW50cnkpKTsKKworCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX0NNREJVRl9FTik7CisKKwlyZXR1cm4gY21kX2J1ZjsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGZyZWVfY29tbWFuZF9idWZmZXIoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJaWYgKGlvbW11LT5jbWRfYnVmKQorCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKWlvbW11LT5jbWRfYnVmLAorCQkJCWdldF9vcmRlcihDTURfQlVGRkVSX1NJWkUpKTsKK30KKworc3RhdGljIHZvaWQgc2V0X2Rldl9lbnRyeV9iaXQodTE2IGRldmlkLCB1OCBiaXQpCit7CisJaW50IGkgPSAoYml0ID4+IDUpICYgMHgwNzsKKwlpbnQgX2JpdCA9IGJpdCAmIDB4MWY7CisKKwlhbWRfaW9tbXVfZGV2X3RhYmxlW2RldmlkXS5kYXRhW2ldIHw9ICgxIDw8IF9iaXQpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0X2Rldl9lbnRyeV9mcm9tX2FjcGkodTE2IGRldmlkLCB1MzIgZmxhZ3MsIHUzMiBleHRfZmxhZ3MpCit7CisJaWYgKGZsYWdzICYgQUNQSV9ERVZGTEFHX0lOSVRQQVNTKQorCQlzZXRfZGV2X2VudHJ5X2JpdChkZXZpZCwgREVWX0VOVFJZX0lOSVRfUEFTUyk7CisJaWYgKGZsYWdzICYgQUNQSV9ERVZGTEFHX0VYVElOVCkKKwkJc2V0X2Rldl9lbnRyeV9iaXQoZGV2aWQsIERFVl9FTlRSWV9FSU5UX1BBU1MpOworCWlmIChmbGFncyAmIEFDUElfREVWRkxBR19OTUkpCisJCXNldF9kZXZfZW50cnlfYml0KGRldmlkLCBERVZfRU5UUllfTk1JX1BBU1MpOworCWlmIChmbGFncyAmIEFDUElfREVWRkxBR19TWVNNR1QxKQorCQlzZXRfZGV2X2VudHJ5X2JpdChkZXZpZCwgREVWX0VOVFJZX1NZU01HVDEpOworCWlmIChmbGFncyAmIEFDUElfREVWRkxBR19TWVNNR1QyKQorCQlzZXRfZGV2X2VudHJ5X2JpdChkZXZpZCwgREVWX0VOVFJZX1NZU01HVDIpOworCWlmIChmbGFncyAmIEFDUElfREVWRkxBR19MSU5UMCkKKwkJc2V0X2Rldl9lbnRyeV9iaXQoZGV2aWQsIERFVl9FTlRSWV9MSU5UMF9QQVNTKTsKKwlpZiAoZmxhZ3MgJiBBQ1BJX0RFVkZMQUdfTElOVDEpCisJCXNldF9kZXZfZW50cnlfYml0KGRldmlkLCBERVZfRU5UUllfTElOVDFfUEFTUyk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzZXRfaW9tbXVfZm9yX2RldmljZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdTE2IGRldmlkKQoreworCWFtZF9pb21tdV9ybG9va3VwX3RhYmxlW2RldmlkXSA9IGlvbW11OworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0X2RldmljZV9leGNsdXNpb25fcmFuZ2UodTE2IGRldmlkLCBzdHJ1Y3QgaXZtZF9oZWFkZXIgKm0pCit7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXUgPSBhbWRfaW9tbXVfcmxvb2t1cF90YWJsZVtkZXZpZF07CisKKwlpZiAoIShtLT5mbGFncyAmIElWTURfRkxBR19FWENMX1JBTkdFKSkKKwkJcmV0dXJuOworCisJaWYgKGlvbW11KSB7CisJCXNldF9kZXZfZW50cnlfYml0KG0tPmRldmlkLCBERVZfRU5UUllfRVgpOworCQlpb21tdS0+ZXhjbHVzaW9uX3N0YXJ0ID0gbS0+cmFuZ2Vfc3RhcnQ7CisJCWlvbW11LT5leGNsdXNpb25fbGVuZ3RoID0gbS0+cmFuZ2VfbGVuZ3RoOworCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IGluaXRfaW9tbXVfZnJvbV9wY2koc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJaW50IGJ1cyA9IFBDSV9CVVMoaW9tbXUtPmRldmlkKTsKKwlpbnQgZGV2ID0gUENJX1NMT1QoaW9tbXUtPmRldmlkKTsKKwlpbnQgZm4gID0gUENJX0ZVTkMoaW9tbXUtPmRldmlkKTsKKwlpbnQgY2FwX3B0ciA9IGlvbW11LT5jYXBfcHRyOworCXUzMiByYW5nZTsKKworCWlvbW11LT5jYXAgPSByZWFkX3BjaV9jb25maWcoYnVzLCBkZXYsIGZuLCBjYXBfcHRyK01NSU9fQ0FQX0hEUl9PRkZTRVQpOworCisJcmFuZ2UgPSByZWFkX3BjaV9jb25maWcoYnVzLCBkZXYsIGZuLCBjYXBfcHRyK01NSU9fUkFOR0VfT0ZGU0VUKTsKKwlpb21tdS0+Zmlyc3RfZGV2aWNlID0gREVWSUQoTU1JT19HRVRfQlVTKHJhbmdlKSwgTU1JT19HRVRfRkQocmFuZ2UpKTsKKwlpb21tdS0+bGFzdF9kZXZpY2UgPSBERVZJRChNTUlPX0dFVF9CVVMocmFuZ2UpLCBNTUlPX0dFVF9MRChyYW5nZSkpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9pb21tdV9mcm9tX2FjcGkoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisJCQkJCXN0cnVjdCBpdmhkX2hlYWRlciAqaCkKK3sKKwl1OCAqcCA9ICh1OCAqKWg7CisJdTggKmVuZCA9IHAsIGZsYWdzID0gMDsKKwl1MTYgZGV2X2ksIGRldmlkID0gMCwgZGV2aWRfc3RhcnQgPSAwLCBkZXZpZF90byA9IDA7CisJdTMyIGV4dF9mbGFncyA9IDA7CisJYm9vbCBhbGlhcyA9IDA7CisJc3RydWN0IGl2aGRfZW50cnkgKmU7CisKKwkvKgorCSAqIEZpcnN0IHNldCB0aGUgcmVjb21tZW5kZWQgZmVhdHVyZSBlbmFibGUgYml0cyBmcm9tIEFDUEkKKwkgKiBpbnRvIHRoZSBJT01NVSBjb250cm9sIHJlZ2lzdGVycworCSAqLworCWgtPmZsYWdzICYgSVZIRF9GTEFHX0hUX1RVTl9FTiA/CisJCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX0hUX1RVTl9FTikgOgorCQlpb21tdV9mZWF0dXJlX2Rpc2FibGUoaW9tbXUsIENPTlRST0xfSFRfVFVOX0VOKTsKKworCWgtPmZsYWdzICYgSVZIRF9GTEFHX1BBU1NQV19FTiA/CisJCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX1BBU1NQV19FTikgOgorCQlpb21tdV9mZWF0dXJlX2Rpc2FibGUoaW9tbXUsIENPTlRST0xfUEFTU1BXX0VOKTsKKworCWgtPmZsYWdzICYgSVZIRF9GTEFHX1JFU1BBU1NQV19FTiA/CisJCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX1JFU1BBU1NQV19FTikgOgorCQlpb21tdV9mZWF0dXJlX2Rpc2FibGUoaW9tbXUsIENPTlRST0xfUkVTUEFTU1BXX0VOKTsKKworCWgtPmZsYWdzICYgSVZIRF9GTEFHX0lTT0NfRU4gPworCQlpb21tdV9mZWF0dXJlX2VuYWJsZShpb21tdSwgQ09OVFJPTF9JU09DX0VOKSA6CisJCWlvbW11X2ZlYXR1cmVfZGlzYWJsZShpb21tdSwgQ09OVFJPTF9JU09DX0VOKTsKKworCS8qCisJICogbWFrZSBJT01NVSBtZW1vcnkgYWNjZXNzZXMgY2FjaGUgY29oZXJlbnQKKwkgKi8KKwlpb21tdV9mZWF0dXJlX2VuYWJsZShpb21tdSwgQ09OVFJPTF9DT0hFUkVOVF9FTik7CisKKwkvKgorCSAqIERvbmUuIE5vdyBwYXJzZSB0aGUgZGV2aWNlIGVudHJpZXMKKwkgKi8KKwlwICs9IHNpemVvZihzdHJ1Y3QgaXZoZF9oZWFkZXIpOworCWVuZCArPSBoLT5sZW5ndGg7CisKKwl3aGlsZSAocCA8IGVuZCkgeworCQllID0gKHN0cnVjdCBpdmhkX2VudHJ5ICopcDsKKwkJc3dpdGNoIChlLT50eXBlKSB7CisJCWNhc2UgSVZIRF9ERVZfQUxMOgorCQkJZm9yIChkZXZfaSA9IGlvbW11LT5maXJzdF9kZXZpY2U7CisJCQkJCWRldl9pIDw9IGlvbW11LT5sYXN0X2RldmljZTsgKytkZXZfaSkKKwkJCQlzZXRfZGV2X2VudHJ5X2Zyb21fYWNwaShkZXZfaSwgZS0+ZmxhZ3MsIDApOworCQkJYnJlYWs7CisJCWNhc2UgSVZIRF9ERVZfU0VMRUNUOgorCQkJZGV2aWQgPSBlLT5kZXZpZDsKKwkJCXNldF9kZXZfZW50cnlfZnJvbV9hY3BpKGRldmlkLCBlLT5mbGFncywgMCk7CisJCQlicmVhazsKKwkJY2FzZSBJVkhEX0RFVl9TRUxFQ1RfUkFOR0VfU1RBUlQ6CisJCQlkZXZpZF9zdGFydCA9IGUtPmRldmlkOworCQkJZmxhZ3MgPSBlLT5mbGFnczsKKwkJCWV4dF9mbGFncyA9IDA7CisJCQlhbGlhcyA9IDA7CisJCQlicmVhazsKKwkJY2FzZSBJVkhEX0RFVl9BTElBUzoKKwkJCWRldmlkID0gZS0+ZGV2aWQ7CisJCQlkZXZpZF90byA9IGUtPmV4dCA+PiA4OworCQkJc2V0X2Rldl9lbnRyeV9mcm9tX2FjcGkoZGV2aWQsIGUtPmZsYWdzLCAwKTsKKwkJCWFtZF9pb21tdV9hbGlhc190YWJsZVtkZXZpZF0gPSBkZXZpZF90bzsKKwkJCWJyZWFrOworCQljYXNlIElWSERfREVWX0FMSUFTX1JBTkdFOgorCQkJZGV2aWRfc3RhcnQgPSBlLT5kZXZpZDsKKwkJCWZsYWdzID0gZS0+ZmxhZ3M7CisJCQlkZXZpZF90byA9IGUtPmV4dCA+PiA4OworCQkJZXh0X2ZsYWdzID0gMDsKKwkJCWFsaWFzID0gMTsKKwkJCWJyZWFrOworCQljYXNlIElWSERfREVWX0VYVF9TRUxFQ1Q6CisJCQlkZXZpZCA9IGUtPmRldmlkOworCQkJc2V0X2Rldl9lbnRyeV9mcm9tX2FjcGkoZGV2aWQsIGUtPmZsYWdzLCBlLT5leHQpOworCQkJYnJlYWs7CisJCWNhc2UgSVZIRF9ERVZfRVhUX1NFTEVDVF9SQU5HRToKKwkJCWRldmlkX3N0YXJ0ID0gZS0+ZGV2aWQ7CisJCQlmbGFncyA9IGUtPmZsYWdzOworCQkJZXh0X2ZsYWdzID0gZS0+ZXh0OworCQkJYWxpYXMgPSAwOworCQkJYnJlYWs7CisJCWNhc2UgSVZIRF9ERVZfUkFOR0VfRU5EOgorCQkJZGV2aWQgPSBlLT5kZXZpZDsKKwkJCWZvciAoZGV2X2kgPSBkZXZpZF9zdGFydDsgZGV2X2kgPD0gZGV2aWQ7ICsrZGV2X2kpIHsKKwkJCQlpZiAoYWxpYXMpCisJCQkJCWFtZF9pb21tdV9hbGlhc190YWJsZVtkZXZfaV0gPSBkZXZpZF90bzsKKwkJCQlzZXRfZGV2X2VudHJ5X2Zyb21fYWNwaSgKKwkJCQkJCWFtZF9pb21tdV9hbGlhc190YWJsZVtkZXZfaV0sCisJCQkJCQlmbGFncywgZXh0X2ZsYWdzKTsKKwkJCX0KKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKworCQlwICs9IDB4MDQgPDwgKGUtPnR5cGUgPj4gNik7CisJfQorfQorCitzdGF0aWMgaW50IF9faW5pdCBpbml0X2lvbW11X2RldmljZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJdTE2IGk7CisKKwlmb3IgKGkgPSBpb21tdS0+Zmlyc3RfZGV2aWNlOyBpIDw9IGlvbW11LT5sYXN0X2RldmljZTsgKytpKQorCQlzZXRfaW9tbXVfZm9yX2RldmljZShpb21tdSwgaSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGZyZWVfaW9tbXVfb25lKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCWZyZWVfY29tbWFuZF9idWZmZXIoaW9tbXUpOworCWlvbW11X3VubWFwX21taW9fc3BhY2UoaW9tbXUpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZnJlZV9pb21tdV9hbGwodm9pZCkKK3sKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgKm5leHQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoaW9tbXUsIG5leHQsICZhbWRfaW9tbXVfbGlzdCwgbGlzdCkgeworCQlsaXN0X2RlbCgmaW9tbXUtPmxpc3QpOworCQlmcmVlX2lvbW11X29uZShpb21tdSk7CisJCWtmcmVlKGlvbW11KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXRfaW9tbXVfb25lKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBzdHJ1Y3QgaXZoZF9oZWFkZXIgKmgpCit7CisJc3Bpbl9sb2NrX2luaXQoJmlvbW11LT5sb2NrKTsKKwlsaXN0X2FkZF90YWlsKCZpb21tdS0+bGlzdCwgJmFtZF9pb21tdV9saXN0KTsKKworCS8qCisJICogQ29weSBkYXRhIGZyb20gQUNQSSB0YWJsZSBlbnRyeSB0byB0aGUgaW9tbXUgc3RydWN0CisJICovCisJaW9tbXUtPmRldmlkID0gaC0+ZGV2aWQ7CisJaW9tbXUtPmNhcF9wdHIgPSBoLT5jYXBfcHRyOworCWlvbW11LT5tbWlvX3BoeXMgPSBoLT5tbWlvX3BoeXM7CisJaW9tbXUtPm1taW9fYmFzZSA9IGlvbW11X21hcF9tbWlvX3NwYWNlKGgtPm1taW9fcGh5cyk7CisJaWYgKCFpb21tdS0+bW1pb19iYXNlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlvbW11X3NldF9kZXZpY2VfdGFibGUoaW9tbXUpOworCWlvbW11LT5jbWRfYnVmID0gYWxsb2NfY29tbWFuZF9idWZmZXIoaW9tbXUpOworCWlmICghaW9tbXUtPmNtZF9idWYpCisJCXJldHVybiAtRU5PTUVNOworCisJaW5pdF9pb21tdV9mcm9tX3BjaShpb21tdSk7CisJaW5pdF9pb21tdV9mcm9tX2FjcGkoaW9tbXUsIGgpOworCWluaXRfaW9tbXVfZGV2aWNlcyhpb21tdSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgaW5pdF9pb21tdV9hbGwoc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyICp0YWJsZSkKK3sKKwl1OCAqcCA9ICh1OCAqKXRhYmxlLCAqZW5kID0gKHU4ICopdGFibGU7CisJc3RydWN0IGl2aGRfaGVhZGVyICpoOworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCWludCByZXQ7CisKKwlJTklUX0xJU1RfSEVBRCgmYW1kX2lvbW11X2xpc3QpOworCisJZW5kICs9IHRhYmxlLT5sZW5ndGg7CisJcCArPSBJVlJTX0hFQURFUl9MRU5HVEg7CisKKwl3aGlsZSAocCA8IGVuZCkgeworCQloID0gKHN0cnVjdCBpdmhkX2hlYWRlciAqKXA7CisJCXN3aXRjaCAoKnApIHsKKwkJY2FzZSBBQ1BJX0lWSERfVFlQRToKKwkJCWlvbW11ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGFtZF9pb21tdSksIEdGUF9LRVJORUwpOworCQkJaWYgKGlvbW11ID09IE5VTEwpCisJCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyZXQgPSBpbml0X2lvbW11X29uZShpb21tdSwgaCk7CisJCQlpZiAocmV0KQorCQkJCXJldHVybiByZXQ7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJCXAgKz0gaC0+bGVuZ3RoOworCisJfQorCVdBUk5fT04ocCAhPSBlbmQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBmcmVlX3VuaXR5X21hcHModm9pZCkKK3sKKwlzdHJ1Y3QgdW5pdHlfbWFwX2VudHJ5ICplbnRyeSwgKm5leHQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50cnksIG5leHQsICZhbWRfaW9tbXVfdW5pdHlfbWFwLCBsaXN0KSB7CisJCWxpc3RfZGVsKCZlbnRyeS0+bGlzdCk7CisJCWtmcmVlKGVudHJ5KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXRfZXhjbHVzaW9uX3JhbmdlKHN0cnVjdCBpdm1kX2hlYWRlciAqbSkKK3sKKwlpbnQgaTsKKworCXN3aXRjaCAobS0+dHlwZSkgeworCWNhc2UgQUNQSV9JVk1EX1RZUEU6CisJCXNldF9kZXZpY2VfZXhjbHVzaW9uX3JhbmdlKG0tPmRldmlkLCBtKTsKKwkJYnJlYWs7CisJY2FzZSBBQ1BJX0lWTURfVFlQRV9BTEw6CisJCWZvciAoaSA9IDA7IGkgPCBhbWRfaW9tbXVfbGFzdF9iZGY7ICsraSkKKwkJCXNldF9kZXZpY2VfZXhjbHVzaW9uX3JhbmdlKGksIG0pOworCQlicmVhazsKKwljYXNlIEFDUElfSVZNRF9UWVBFX1JBTkdFOgorCQlmb3IgKGkgPSBtLT5kZXZpZDsgaSA8PSBtLT5hdXg7ICsraSkKKwkJCXNldF9kZXZpY2VfZXhjbHVzaW9uX3JhbmdlKGksIG0pOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgaW5pdF91bml0eV9tYXBfcmFuZ2Uoc3RydWN0IGl2bWRfaGVhZGVyICptKQoreworCXN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmUgPSAwOworCisJZSA9IGt6YWxsb2Moc2l6ZW9mKCplKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzd2l0Y2ggKG0tPnR5cGUpIHsKKwlkZWZhdWx0OgorCWNhc2UgQUNQSV9JVk1EX1RZUEU6CisJCWUtPmRldmlkX3N0YXJ0ID0gZS0+ZGV2aWRfZW5kID0gbS0+ZGV2aWQ7CisJCWJyZWFrOworCWNhc2UgQUNQSV9JVk1EX1RZUEVfQUxMOgorCQllLT5kZXZpZF9zdGFydCA9IDA7CisJCWUtPmRldmlkX2VuZCA9IGFtZF9pb21tdV9sYXN0X2JkZjsKKwkJYnJlYWs7CisJY2FzZSBBQ1BJX0lWTURfVFlQRV9SQU5HRToKKwkJZS0+ZGV2aWRfc3RhcnQgPSBtLT5kZXZpZDsKKwkJZS0+ZGV2aWRfZW5kID0gbS0+YXV4OworCQlicmVhazsKKwl9CisJZS0+YWRkcmVzc19zdGFydCA9IFBBR0VfQUxJR04obS0+cmFuZ2Vfc3RhcnQpOworCWUtPmFkZHJlc3NfZW5kID0gZS0+YWRkcmVzc19zdGFydCArIFBBR0VfQUxJR04obS0+cmFuZ2VfbGVuZ3RoKTsKKwllLT5wcm90ID0gbS0+ZmxhZ3MgPj4gMTsKKworCWxpc3RfYWRkX3RhaWwoJmUtPmxpc3QsICZhbWRfaW9tbXVfdW5pdHlfbWFwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCBpbml0X21lbW9yeV9kZWZpbml0aW9ucyhzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKnRhYmxlKQoreworCXU4ICpwID0gKHU4ICopdGFibGUsICplbmQgPSAodTggKil0YWJsZTsKKwlzdHJ1Y3QgaXZtZF9oZWFkZXIgKm07CisKKwlJTklUX0xJU1RfSEVBRCgmYW1kX2lvbW11X3VuaXR5X21hcCk7CisKKwllbmQgKz0gdGFibGUtPmxlbmd0aDsKKwlwICs9IElWUlNfSEVBREVSX0xFTkdUSDsKKworCXdoaWxlIChwIDwgZW5kKSB7CisJCW0gPSAoc3RydWN0IGl2bWRfaGVhZGVyICopcDsKKwkJaWYgKG0tPmZsYWdzICYgSVZNRF9GTEFHX0VYQ0xfUkFOR0UpCisJCQlpbml0X2V4Y2x1c2lvbl9yYW5nZShtKTsKKwkJZWxzZSBpZiAobS0+ZmxhZ3MgJiBJVk1EX0ZMQUdfVU5JVFlfTUFQKQorCQkJaW5pdF91bml0eV9tYXBfcmFuZ2UobSk7CisKKwkJcCArPSBtLT5sZW5ndGg7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBlbmFibGVfaW9tbXVzKHZvaWQpCit7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGlvbW11LCAmYW1kX2lvbW11X2xpc3QsIGxpc3QpIHsKKwkJaW9tbXVfc2V0X2V4Y2x1c2lvbl9yYW5nZShpb21tdSk7CisJCWlvbW11X2VuYWJsZShpb21tdSk7CisJfQorfQorCisvKgorICogU3VzcGVuZC9SZXN1bWUgc3VwcG9ydAorICogZGlzYWJsZSBzdXNwZW5kIHVudGlsIHJlYWwgcmVzdW1lIGltcGxlbWVudGVkCisgKi8KKworc3RhdGljIGludCBhbWRfaW9tbXVfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYW1kX2lvbW11X3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgc3RydWN0IHN5c2Rldl9jbGFzcyBhbWRfaW9tbXVfc3lzZGV2X2NsYXNzID0geworCS5uYW1lID0gImFtZF9pb21tdSIsCisJLnN1c3BlbmQgPSBhbWRfaW9tbXVfc3VzcGVuZCwKKwkucmVzdW1lID0gYW1kX2lvbW11X3Jlc3VtZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBkZXZpY2VfYW1kX2lvbW11ID0geworCS5pZCA9IDAsCisJLmNscyA9ICZhbWRfaW9tbXVfc3lzZGV2X2NsYXNzLAorfTsKKworaW50IF9faW5pdCBhbWRfaW9tbXVfaW5pdCh2b2lkKQoreworCWludCBpLCByZXQgPSAwOworCisKKwlpZiAobm9faW9tbXUpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQU1EIElPTU1VIGRpc2FibGVkIGJ5IGtlcm5lbCBjb21tYW5kIGxpbmVcbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoIWFtZF9pb21tdV9kZXRlY3RlZCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwkvKgorCSAqIEZpcnN0IHBhcnNlIEFDUEkgdGFibGVzIHRvIGZpbmQgdGhlIGxhcmdlc3QgQnVzL0Rldi9GdW5jCisJICogd2UgbmVlZCB0byBoYW5kbGUuIFVwb24gdGhpcyBpbmZvcm1hdGlvbiB0aGUgc2hhcmVkIGRhdGEKKwkgKiBzdHJ1Y3R1cmVzIGZvciB0aGUgSU9NTVVzIGluIHRoZSBzeXN0ZW0gd2lsbCBiZSBhbGxvY2F0ZWQKKwkgKi8KKwlpZiAoYWNwaV90YWJsZV9wYXJzZSgiSVZSUyIsIGZpbmRfbGFzdF9kZXZpZF9hY3BpKSAhPSAwKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWRldl90YWJsZV9zaXplICAgICA9IFRCTF9TSVpFKERFVl9UQUJMRV9FTlRSWV9TSVpFKTsKKwlhbGlhc190YWJsZV9zaXplICAgPSBUQkxfU0laRShBTElBU19UQUJMRV9FTlRSWV9TSVpFKTsKKwlybG9va3VwX3RhYmxlX3NpemUgPSBUQkxfU0laRShSTE9PS1VQX1RBQkxFX0VOVFJZX1NJWkUpOworCisJcmV0ID0gLUVOT01FTTsKKworCS8qIERldmljZSB0YWJsZSAtIGRpcmVjdGx5IHVzZWQgYnkgYWxsIElPTU1VcyAqLworCWFtZF9pb21tdV9kZXZfdGFibGUgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwKKwkJCQkgICAgICBnZXRfb3JkZXIoZGV2X3RhYmxlX3NpemUpKTsKKwlpZiAoYW1kX2lvbW11X2Rldl90YWJsZSA9PSBOVUxMKQorCQlnb3RvIG91dDsKKworCS8qCisJICogQWxpYXMgdGFibGUgLSBtYXAgUENJIEJ1cy9EZXYvRnVuYyB0byBCdXMvRGV2L0Z1bmMgdGhlCisJICogSU9NTVUgc2VlIGZvciB0aGF0IGRldmljZQorCSAqLworCWFtZF9pb21tdV9hbGlhc190YWJsZSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLAorCQkJZ2V0X29yZGVyKGFsaWFzX3RhYmxlX3NpemUpKTsKKwlpZiAoYW1kX2lvbW11X2FsaWFzX3RhYmxlID09IE5VTEwpCisJCWdvdG8gZnJlZTsKKworCS8qIElPTU1VIHJsb29rdXAgdGFibGUgLSBmaW5kIHRoZSBJT01NVSBmb3IgYSBzcGVjaWZpYyBkZXZpY2UgKi8KKwlhbWRfaW9tbXVfcmxvb2t1cF90YWJsZSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLAorCQkJZ2V0X29yZGVyKHJsb29rdXBfdGFibGVfc2l6ZSkpOworCWlmIChhbWRfaW9tbXVfcmxvb2t1cF90YWJsZSA9PSBOVUxMKQorCQlnb3RvIGZyZWU7CisKKwkvKgorCSAqIFByb3RlY3Rpb24gRG9tYWluIHRhYmxlIC0gbWFwcyBkZXZpY2VzIHRvIHByb3RlY3Rpb24gZG9tYWlucworCSAqIFRoaXMgdGFibGUgaGFzIHRoZSBzYW1lIHNpemUgYXMgdGhlIHJsb29rdXBfdGFibGUKKwkgKi8KKwlhbWRfaW9tbXVfcGRfdGFibGUgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwKKwkJCQkgICAgIGdldF9vcmRlcihybG9va3VwX3RhYmxlX3NpemUpKTsKKwlpZiAoYW1kX2lvbW11X3BkX3RhYmxlID09IE5VTEwpCisJCWdvdG8gZnJlZTsKKworCWFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXAgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwKKwkJCQkJICAgIGdldF9vcmRlcihNQVhfRE9NQUlOX0lELzgpKTsKKwlpZiAoYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCA9PSBOVUxMKQorCQlnb3RvIGZyZWU7CisKKwkvKgorCSAqIG1lbW9yeSBpcyBhbGxvY2F0ZWQgbm93OyBpbml0aWFsaXplIHRoZSBkZXZpY2UgdGFibGUgd2l0aCBhbGwgemVyb2VzCisJICogYW5kIGxldCBhbGwgYWxpYXMgZW50cmllcyBwb2ludCB0byBpdHNlbGYKKwkgKi8KKwltZW1zZXQoYW1kX2lvbW11X2Rldl90YWJsZSwgMCwgZGV2X3RhYmxlX3NpemUpOworCWZvciAoaSA9IDA7IGkgPCBhbWRfaW9tbXVfbGFzdF9iZGY7ICsraSkKKwkJYW1kX2lvbW11X2FsaWFzX3RhYmxlW2ldID0gaTsKKworCW1lbXNldChhbWRfaW9tbXVfcGRfdGFibGUsIDAsIHJsb29rdXBfdGFibGVfc2l6ZSk7CisJbWVtc2V0KGFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXAsIDAsIE1BWF9ET01BSU5fSUQgLyA4KTsKKworCS8qCisJICogbmV2ZXIgYWxsb2NhdGUgZG9tYWluIDAgYmVjYXVzZSBpdHMgdXNlZCBhcyB0aGUgbm9uLWFsbG9jYXRlZCBhbmQKKwkgKiBlcnJvciB2YWx1ZSBwbGFjZWhvbGRlcgorCSAqLworCWFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXBbMF0gPSAxOworCisJLyoKKwkgKiBub3cgdGhlIGRhdGEgc3RydWN0dXJlcyBhcmUgYWxsb2NhdGVkIGFuZCBiYXNpY2FsbHkgaW5pdGlhbGl6ZWQKKwkgKiBzdGFydCB0aGUgcmVhbCBhY3BpIHRhYmxlIHNjYW4KKwkgKi8KKwlyZXQgPSAtRU5PREVWOworCWlmIChhY3BpX3RhYmxlX3BhcnNlKCJJVlJTIiwgaW5pdF9pb21tdV9hbGwpICE9IDApCisJCWdvdG8gZnJlZTsKKworCWlmIChhY3BpX3RhYmxlX3BhcnNlKCJJVlJTIiwgaW5pdF9tZW1vcnlfZGVmaW5pdGlvbnMpICE9IDApCisJCWdvdG8gZnJlZTsKKworCXJldCA9IGFtZF9pb21tdV9pbml0X2RtYV9vcHMoKTsKKwlpZiAocmV0KQorCQlnb3RvIGZyZWU7CisKKwlyZXQgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmFtZF9pb21tdV9zeXNkZXZfY2xhc3MpOworCWlmIChyZXQpCisJCWdvdG8gZnJlZTsKKworCXJldCA9IHN5c2Rldl9yZWdpc3RlcigmZGV2aWNlX2FtZF9pb21tdSk7CisJaWYgKHJldCkKKwkJZ290byBmcmVlOworCisJZW5hYmxlX2lvbW11cygpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQU1EIElPTU1VOiBhcGVydHVyZSBzaXplIGlzICVkIE1CXG4iLAorCQkJKDEgPDwgKGFtZF9pb21tdV9hcGVydHVyZV9vcmRlci0yMCkpKTsKKworCXByaW50ayhLRVJOX0lORk8gIkFNRCBJT01NVTogZGV2aWNlIGlzb2xhdGlvbiAiKTsKKwlpZiAoYW1kX2lvbW11X2lzb2xhdGUpCisJCXByaW50aygiZW5hYmxlZFxuIik7CisJZWxzZQorCQlwcmludGsoImRpc2FibGVkXG4iKTsKKworb3V0OgorCXJldHVybiByZXQ7CisKK2ZyZWU6CisJaWYgKGFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXApCisJCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCwgMSk7CisKKwlpZiAoYW1kX2lvbW11X3BkX3RhYmxlKQorCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKWFtZF9pb21tdV9wZF90YWJsZSwKKwkJCQlnZXRfb3JkZXIocmxvb2t1cF90YWJsZV9zaXplKSk7CisKKwlpZiAoYW1kX2lvbW11X3Jsb29rdXBfdGFibGUpCisJCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpYW1kX2lvbW11X3Jsb29rdXBfdGFibGUsCisJCQkJZ2V0X29yZGVyKHJsb29rdXBfdGFibGVfc2l6ZSkpOworCisJaWYgKGFtZF9pb21tdV9hbGlhc190YWJsZSkKKwkJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZylhbWRfaW9tbXVfYWxpYXNfdGFibGUsCisJCQkJZ2V0X29yZGVyKGFsaWFzX3RhYmxlX3NpemUpKTsKKworCWlmIChhbWRfaW9tbXVfZGV2X3RhYmxlKQorCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKWFtZF9pb21tdV9kZXZfdGFibGUsCisJCQkJZ2V0X29yZGVyKGRldl90YWJsZV9zaXplKSk7CisKKwlmcmVlX2lvbW11X2FsbCgpOworCisJZnJlZV91bml0eV9tYXBzKCk7CisKKwlnb3RvIG91dDsKK30KKworc3RhdGljIGludCBfX2luaXQgZWFybHlfYW1kX2lvbW11X2RldGVjdChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKnRhYmxlKQoreworCXJldHVybiAwOworfQorCit2b2lkIF9faW5pdCBhbWRfaW9tbXVfZGV0ZWN0KHZvaWQpCit7CisJaWYgKHN3aW90bGIgfHwgbm9faW9tbXUgfHwgaW9tbXVfZGV0ZWN0ZWQpCisJCXJldHVybjsKKworCWlmIChhY3BpX3RhYmxlX3BhcnNlKCJJVlJTIiwgZWFybHlfYW1kX2lvbW11X2RldGVjdCkgPT0gMCkgeworCQlpb21tdV9kZXRlY3RlZCA9IDE7CisJCWFtZF9pb21tdV9kZXRlY3RlZCA9IDE7CisjaWZkZWYgQ09ORklHX0dBUlRfSU9NTVUKKwkJZ2FydF9pb21tdV9hcGVydHVyZV9kaXNhYmxlZCA9IDE7CisJCWdhcnRfaW9tbXVfYXBlcnR1cmUgPSAwOworI2VuZGlmCisJfQorfQorCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9hbWRfaW9tbXVfb3B0aW9ucyhjaGFyICpzdHIpCit7CisJZm9yICg7ICpzdHI7ICsrc3RyKSB7CisJCWlmIChzdHJjbXAoc3RyLCAiaXNvbGF0ZSIpID09IDApCisJCQlhbWRfaW9tbXVfaXNvbGF0ZSA9IDE7CisJfQorCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX2FtZF9pb21tdV9zaXplX29wdGlvbnMoY2hhciAqc3RyKQoreworCWZvciAoOyAqc3RyOyArK3N0cikgeworCQlpZiAoc3RyY21wKHN0ciwgIjMyTSIpID09IDApCisJCQlhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXIgPSAyNTsKKwkJaWYgKHN0cmNtcChzdHIsICI2NE0iKSA9PSAwKQorCQkJYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyID0gMjY7CisJCWlmIChzdHJjbXAoc3RyLCAiMTI4TSIpID09IDApCisJCQlhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXIgPSAyNzsKKwkJaWYgKHN0cmNtcChzdHIsICIyNTZNIikgPT0gMCkKKwkJCWFtZF9pb21tdV9hcGVydHVyZV9vcmRlciA9IDI4OworCQlpZiAoc3RyY21wKHN0ciwgIjUxMk0iKSA9PSAwKQorCQkJYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyID0gMjk7CisJCWlmIChzdHJjbXAoc3RyLCAiMUciKSA9PSAwKQorCQkJYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyID0gMzA7CisJfQorCisJcmV0dXJuIDE7Cit9CisKK19fc2V0dXAoImFtZF9pb21tdT0iLCBwYXJzZV9hbWRfaW9tbXVfb3B0aW9ucyk7CitfX3NldHVwKCJhbWRfaW9tbXVfc2l6ZT0iLCBwYXJzZV9hbWRfaW9tbXVfc2l6ZV9vcHRpb25zKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcGVydHVyZV82NC5jIGIvYXJjaC94ODYva2VybmVsL2FwZXJ0dXJlXzY0LmMKaW5kZXggNDc5OTI2ZC4uOWY5MDc4MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FwZXJ0dXJlXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FwZXJ0dXJlXzY0LmMKQEAgLTM1LDYgKzM1LDE4IEBACiAKIGludCBmaXhfYXBlcnR1cmUgX19pbml0ZGF0YSA9IDE7CiAKK3N0cnVjdCBidXNfZGV2X3JhbmdlIHsKKwlpbnQgYnVzOworCWludCBkZXZfYmFzZTsKKwlpbnQgZGV2X2xpbWl0OworfTsKKworc3RhdGljIHN0cnVjdCBidXNfZGV2X3JhbmdlIGJ1c19kZXZfcmFuZ2VzW10gX19pbml0ZGF0YSA9IHsKKwl7IDB4MDAsIDB4MTgsIDB4MjB9LAorCXsgMHhmZiwgMHgwMCwgMHgyMH0sCisJeyAweGZlLCAweDAwLCAweDIwfQorfTsKKwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBnYXJ0X3Jlc291cmNlID0gewogCS5uYW1lCT0gIkdBUlQiLAogCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLApAQCAtNTUsOCArNjcsOSBAQAogCXUzMiBhcGVyX3NpemU7CiAJdm9pZCAqcDsKIAotCWlmIChmYWxsYmFja19hcGVyX29yZGVyID4gNykKLQkJZmFsbGJhY2tfYXBlcl9vcmRlciA9IDc7CisJLyogYXBlcl9zaXplIHNob3VsZCA8PSAxRyAqLworCWlmIChmYWxsYmFja19hcGVyX29yZGVyID4gNSkKKwkJZmFsbGJhY2tfYXBlcl9vcmRlciA9IDU7CiAJYXBlcl9zaXplID0gKDMyICogMTAyNCAqIDEwMjQpIDw8IGZhbGxiYWNrX2FwZXJfb3JkZXI7CiAKIAkvKgpAQCAtNjUsNyArNzgsMjAgQEAKIAkgKiBtZW1vcnkuIFVuZm9ydHVuYXRlbHkgd2UgY2Fubm90IG1vdmUgaXQgdXAgYmVjYXVzZSB0aGF0IHdvdWxkCiAJICogbWFrZSB0aGUgSU9NTVUgdXNlbGVzcy4KIAkgKi8KLQlwID0gX19hbGxvY19ib290bWVtX25vcGFuaWMoYXBlcl9zaXplLCBhcGVyX3NpemUsIDApOworCS8qCisJICogdXNpbmcgNTEyTSBhcyBnb2FsLCBpbiBjYXNlIGtleGVjIHdpbGwgbG9hZCBrZXJuZWxfYmlnCisJICogdGhhdCB3aWxsIGRvIHRoZSBvbiBwb3NpdGlvbiBkZWNvbXByZXNzLCBhbmQgIGNvdWxkIG92ZXJsYXAgd2l0aAorCSAqIHRoYXQgcG9zaXRvbiB3aXRoIGdhcnQgdGhhdCBpcyB1c2VkLgorCSAqIHNlcXVlbmRlOgorCSAqIGtlcm5lbF9zbWFsbAorCSAqID09PiBrZXhlYyAod2l0aCBrZHVtcCB0cmlnZ2VyIHBhdGggb3IgcHJldmlvdXMgZG9lc24ndCBzaHV0ZG93biBnYXJ0KQorCSAqID09PiBrZXJuZWxfc21hbGwoZ2FydCBhcmVhIGJlY29tZSBlODIwX3Jlc2VydmVkKQorCSAqID09PiBrZXhlYyAod2l0aCBrZHVtcCB0cmlnZ2VyIHBhdGggb3IgcHJldmlvdXMgZG9lc24ndCBzaHV0ZG93biBnYXJ0KQorCSAqID09PiBrZXJuZV9iaWcgKHVuY29tcHJlc3NlZCBzaXplIHdpbGwgYmUgYmlnIHRoYW4gNjRNIG9yIDEyOE0pCisJICogc28gZG9uJ3QgdXNlIDUxMk0gYmVsb3cgYXMgZ2FydCBpb21tdSwgbGVhdmUgdGhlIHNwYWNlIGZvciBrZXJuZWwKKwkgKiBjb2RlIGZvciBzYWZlCisJICovCisJcCA9IF9fYWxsb2NfYm9vdG1lbV9ub3BhbmljKGFwZXJfc2l6ZSwgYXBlcl9zaXplLCA1MTJVTEw8PDIwKTsKIAlpZiAoIXAgfHwgX19wYShwKSthcGVyX3NpemUgPiAweGZmZmZmZmZmKSB7CiAJCXByaW50ayhLRVJOX0VSUgogCQkJIkNhbm5vdCBhbGxvY2F0ZSBhcGVydHVyZSBtZW1vcnkgaG9sZSAoJXAsJXVLKVxuIiwKQEAgLTgzLDY5ICsxMDksNTMgQEAKIAlyZXR1cm4gKHUzMilfX3BhKHApOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBhcGVydHVyZV92YWxpZCh1NjQgYXBlcl9iYXNlLCB1MzIgYXBlcl9zaXplKQotewotCWlmICghYXBlcl9iYXNlKQotCQlyZXR1cm4gMDsKLQotCWlmIChhcGVyX2Jhc2UgKyBhcGVyX3NpemUgPiAweDEwMDAwMDAwMFVMKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiQXBlcnR1cmUgYmV5b25kIDRHQi4gSWdub3JpbmcuXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWlmIChlODIwX2FueV9tYXBwZWQoYXBlcl9iYXNlLCBhcGVyX2Jhc2UgKyBhcGVyX3NpemUsIEU4MjBfUkFNKSkgewotCQlwcmludGsoS0VSTl9FUlIgIkFwZXJ0dXJlIHBvaW50aW5nIHRvIGU4MjAgUkFNLiBJZ25vcmluZy5cbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKGFwZXJfc2l6ZSA8IDY0KjEwMjQqMTAyNCkgewotCQlwcmludGsoS0VSTl9FUlIgIkFwZXJ0dXJlIHRvbyBzbWFsbCAoJWQgTUIpXG4iLCBhcGVyX3NpemU+PjIwKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JcmV0dXJuIDE7Ci19CiAKIC8qIEZpbmQgYSBQQ0kgY2FwYWJpbGl0eSAqLwotc3RhdGljIF9fdTMyIF9faW5pdCBmaW5kX2NhcChpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMsIGludCBjYXApCitzdGF0aWMgdTMyIF9faW5pdCBmaW5kX2NhcChpbnQgYnVzLCBpbnQgc2xvdCwgaW50IGZ1bmMsIGludCBjYXApCiB7CiAJaW50IGJ5dGVzOwogCXU4IHBvczsKIAotCWlmICghKHJlYWRfcGNpX2NvbmZpZ18xNihudW0sIHNsb3QsIGZ1bmMsIFBDSV9TVEFUVVMpICYKKwlpZiAoIShyZWFkX3BjaV9jb25maWdfMTYoYnVzLCBzbG90LCBmdW5jLCBQQ0lfU1RBVFVTKSAmCiAJCQkJCQlQQ0lfU1RBVFVTX0NBUF9MSVNUKSkKIAkJcmV0dXJuIDA7CiAKLQlwb3MgPSByZWFkX3BjaV9jb25maWdfYnl0ZShudW0sIHNsb3QsIGZ1bmMsIFBDSV9DQVBBQklMSVRZX0xJU1QpOworCXBvcyA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKGJ1cywgc2xvdCwgZnVuYywgUENJX0NBUEFCSUxJVFlfTElTVCk7CiAJZm9yIChieXRlcyA9IDA7IGJ5dGVzIDwgNDggJiYgcG9zID49IDB4NDA7IGJ5dGVzKyspIHsKIAkJdTggaWQ7CiAKIAkJcG9zICY9IH4zOwotCQlpZCA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKG51bSwgc2xvdCwgZnVuYywgcG9zK1BDSV9DQVBfTElTVF9JRCk7CisJCWlkID0gcmVhZF9wY2lfY29uZmlnX2J5dGUoYnVzLCBzbG90LCBmdW5jLCBwb3MrUENJX0NBUF9MSVNUX0lEKTsKIAkJaWYgKGlkID09IDB4ZmYpCiAJCQlicmVhazsKIAkJaWYgKGlkID09IGNhcCkKIAkJCXJldHVybiBwb3M7Ci0JCXBvcyA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKG51bSwgc2xvdCwgZnVuYywKKwkJcG9zID0gcmVhZF9wY2lfY29uZmlnX2J5dGUoYnVzLCBzbG90LCBmdW5jLAogCQkJCQkJcG9zK1BDSV9DQVBfTElTVF9ORVhUKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKIC8qIFJlYWQgYSBzdGFuZGFyZCBBR1B2MyBicmlkZ2UgaGVhZGVyICovCi1zdGF0aWMgX191MzIgX19pbml0IHJlYWRfYWdwKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYywgaW50IGNhcCwgdTMyICpvcmRlcikKK3N0YXRpYyB1MzIgX19pbml0IHJlYWRfYWdwKGludCBidXMsIGludCBzbG90LCBpbnQgZnVuYywgaW50IGNhcCwgdTMyICpvcmRlcikKIHsKIAl1MzIgYXBzaXplOwogCXUzMiBhcHNpemVyZWc7CiAJaW50IG5iaXRzOwogCXUzMiBhcGVyX2xvdywgYXBlcl9oaTsKIAl1NjQgYXBlcjsKKwl1MzIgb2xkX29yZGVyOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAiQUdQIGJyaWRnZSBhdCAlMDJ4OiUwMng6JTAyeFxuIiwgbnVtLCBzbG90LCBmdW5jKTsKLQlhcHNpemVyZWcgPSByZWFkX3BjaV9jb25maWdfMTYobnVtLCBzbG90LCBmdW5jLCBjYXAgKyAweDE0KTsKKwlwcmludGsoS0VSTl9JTkZPICJBR1AgYnJpZGdlIGF0ICUwMng6JTAyeDolMDJ4XG4iLCBidXMsIHNsb3QsIGZ1bmMpOworCWFwc2l6ZXJlZyA9IHJlYWRfcGNpX2NvbmZpZ18xNihidXMsIHNsb3QsIGZ1bmMsIGNhcCArIDB4MTQpOwogCWlmIChhcHNpemVyZWcgPT0gMHhmZmZmZmZmZikgewogCQlwcmludGsoS0VSTl9FUlIgIkFQU0laRSBpbiBBR1AgYnJpZGdlIHVucmVhZGFibGVcbiIpOwogCQlyZXR1cm4gMDsKIAl9CiAKKwkvKiBvbGRfb3JkZXIgY291bGQgYmUgdGhlIHZhbHVlIGZyb20gTkIgZ2FydCBzZXR0aW5nICovCisJb2xkX29yZGVyID0gKm9yZGVyOworCiAJYXBzaXplID0gYXBzaXplcmVnICYgMHhmZmY7CiAJLyogU29tZSBCSU9TIHVzZSB3ZWlyZCBlbmNvZGluZ3Mgbm90IGluIHRoZSBBR1B2MyB0YWJsZS4gKi8KIAlpZiAoYXBzaXplICYgMHhmZikKQEAgLTE1NSwxNCArMTY1LDI2IEBACiAJaWYgKChpbnQpKm9yZGVyIDwgMCkgLyogPCAzMk1CICovCiAJCSpvcmRlciA9IDA7CiAKLQlhcGVyX2xvdyA9IHJlYWRfcGNpX2NvbmZpZyhudW0sIHNsb3QsIGZ1bmMsIDB4MTApOwotCWFwZXJfaGkgPSByZWFkX3BjaV9jb25maWcobnVtLCBzbG90LCBmdW5jLCAweDE0KTsKKwlhcGVyX2xvdyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIGZ1bmMsIDB4MTApOworCWFwZXJfaGkgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCBmdW5jLCAweDE0KTsKIAlhcGVyID0gKGFwZXJfbG93ICYgfigoMTw8MjIpLTEpKSB8ICgodTY0KWFwZXJfaGkgPDwgMzIpOwogCisJLyoKKwkgKiBPbiBzb21lIHNpY2sgY2hpcHMsIEFQU0laRSBpcyAwLiBJdCBtZWFucyBpdCB3YW50cyA0RworCSAqIHNvIGxldCBkb3VibGUgY2hlY2sgdGhhdCBvcmRlciwgYW5kIGxldHMgdHJ1c3QgQU1EIE5CIHNldHRpbmdzOgorCSAqLworCXByaW50ayhLRVJOX0lORk8gIkFwZXJ0dXJlIGZyb20gQUdQIEAgJUx4IG9sZCBzaXplICV1IE1CXG4iLAorCQkJYXBlciwgMzIgPDwgb2xkX29yZGVyKTsKKwlpZiAoYXBlciArICgzMlVMTDw8KDIwICsgKm9yZGVyKSkgPiAweDEwMDAwMDAwMFVMTCkgeworCQlwcmludGsoS0VSTl9JTkZPICJBcGVydHVyZSBzaXplICV1IE1CIChBUFNJWkUgJXgpIGlzIG5vdCByaWdodCwgdXNpbmcgc2V0dGluZ3MgZnJvbSBOQlxuIiwKKwkJCQkzMiA8PCAqb3JkZXIsIGFwc2l6ZXJlZyk7CisJCSpvcmRlciA9IG9sZF9vcmRlcjsKKwl9CisKIAlwcmludGsoS0VSTl9JTkZPICJBcGVydHVyZSBmcm9tIEFHUCBAICVMeCBzaXplICV1IE1CIChBUFNJWkUgJXgpXG4iLAogCQkJYXBlciwgMzIgPDwgKm9yZGVyLCBhcHNpemVyZWcpOwogCi0JaWYgKCFhcGVydHVyZV92YWxpZChhcGVyLCAoMzIqMTAyNCoxMDI0KSA8PCAqb3JkZXIpKQorCWlmICghYXBlcnR1cmVfdmFsaWQoYXBlciwgKDMyKjEwMjQqMTAyNCkgPDwgKm9yZGVyLCAzMjw8MjApKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gKHUzMilhcGVyOwogfQpAQCAtMTgwLDE3ICsyMDIsMTcgQEAKICAqIHRoZSBBR1AgYnJpZGdlcyBzaG91bGQgYmUgYWx3YXlzIGFuIG93biBidXMgb24gdGhlIEhUIGhpZXJhcmNoeSwKICAqIGJ1dCBkbyBpdCBoZXJlIGZvciBmdXR1cmUgc2FmZXR5LgogICovCi1zdGF0aWMgX191MzIgX19pbml0IHNlYXJjaF9hZ3BfYnJpZGdlKHUzMiAqb3JkZXIsIGludCAqdmFsaWRfYWdwKQorc3RhdGljIHUzMiBfX2luaXQgc2VhcmNoX2FncF9icmlkZ2UodTMyICpvcmRlciwgaW50ICp2YWxpZF9hZ3ApCiB7Ci0JaW50IG51bSwgc2xvdCwgZnVuYzsKKwlpbnQgYnVzLCBzbG90LCBmdW5jOwogCiAJLyogUG9vciBtYW4ncyBQQ0kgZGlzY292ZXJ5ICovCi0JZm9yIChudW0gPSAwOyBudW0gPCAyNTY7IG51bSsrKSB7CisJZm9yIChidXMgPSAwOyBidXMgPCAyNTY7IGJ1cysrKSB7CiAJCWZvciAoc2xvdCA9IDA7IHNsb3QgPCAzMjsgc2xvdCsrKSB7CiAJCQlmb3IgKGZ1bmMgPSAwOyBmdW5jIDwgODsgZnVuYysrKSB7CiAJCQkJdTMyIGNsYXNzLCBjYXA7CiAJCQkJdTggdHlwZTsKLQkJCQljbGFzcyA9IHJlYWRfcGNpX2NvbmZpZyhudW0sIHNsb3QsIGZ1bmMsCisJCQkJY2xhc3MgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCBmdW5jLAogCQkJCQkJCVBDSV9DTEFTU19SRVZJU0lPTik7CiAJCQkJaWYgKGNsYXNzID09IDB4ZmZmZmZmZmYpCiAJCQkJCWJyZWFrOwpAQCAtMTk5LDE3ICsyMjEsMTcgQEAKIAkJCQljYXNlIFBDSV9DTEFTU19CUklER0VfSE9TVDoKIAkJCQljYXNlIFBDSV9DTEFTU19CUklER0VfT1RIRVI6IC8qIG5lZWRlZD8gKi8KIAkJCQkJLyogQUdQIGJyaWRnZT8gKi8KLQkJCQkJY2FwID0gZmluZF9jYXAobnVtLCBzbG90LCBmdW5jLAorCQkJCQljYXAgPSBmaW5kX2NhcChidXMsIHNsb3QsIGZ1bmMsCiAJCQkJCQkJUENJX0NBUF9JRF9BR1ApOwogCQkJCQlpZiAoIWNhcCkKIAkJCQkJCWJyZWFrOwogCQkJCQkqdmFsaWRfYWdwID0gMTsKLQkJCQkJcmV0dXJuIHJlYWRfYWdwKG51bSwgc2xvdCwgZnVuYywgY2FwLAorCQkJCQlyZXR1cm4gcmVhZF9hZ3AoYnVzLCBzbG90LCBmdW5jLCBjYXAsCiAJCQkJCQkJb3JkZXIpOwogCQkJCX0KIAogCQkJCS8qIE5vIG11bHRpLWZ1bmN0aW9uIGRldmljZT8gKi8KLQkJCQl0eXBlID0gcmVhZF9wY2lfY29uZmlnX2J5dGUobnVtLCBzbG90LCBmdW5jLAorCQkJCXR5cGUgPSByZWFkX3BjaV9jb25maWdfYnl0ZShidXMsIHNsb3QsIGZ1bmMsCiAJCQkJCQkJICAgICAgIFBDSV9IRUFERVJfVFlQRSk7CiAJCQkJaWYgKCEodHlwZSAmIDB4ODApKQogCQkJCQlicmVhazsKQEAgLTI0OSwzNiArMjcxLDUwIEBACiAJICogb3IgQklPUyBmb3JnZXQgdG8gcHV0IHRoYXQgaW4gcmVzZXJ2ZWQuCiAJICogdHJ5IHRvIHVwZGF0ZSBlODIwIHRvIG1ha2UgdGhhdCByZWdpb24gYXMgcmVzZXJ2ZWQuCiAJICovCi0JaW50IGZpeCwgbnVtOworCWludCBpLCBmaXgsIHNsb3Q7CiAJdTMyIGN0bDsKIAl1MzIgYXBlcl9zaXplID0gMCwgYXBlcl9vcmRlciA9IDAsIGxhc3RfYXBlcl9vcmRlciA9IDA7CiAJdTY0IGFwZXJfYmFzZSA9IDAsIGxhc3RfYXBlcl9iYXNlID0gMDsKLQlpbnQgYXBlcl9lbmFibGVkID0gMCwgbGFzdF9hcGVyX2VuYWJsZWQgPSAwOworCWludCBhcGVyX2VuYWJsZWQgPSAwLCBsYXN0X2FwZXJfZW5hYmxlZCA9IDAsIGxhc3RfdmFsaWQgPSAwOwogCiAJaWYgKCFlYXJseV9wY2lfYWxsb3dlZCgpKQogCQlyZXR1cm47CiAKKwkvKiBUaGlzIGlzIG1vc3RseSBkdXBsaWNhdGUgb2YgaW9tbXVfaG9sZV9pbml0ICovCiAJZml4ID0gMDsKLQlmb3IgKG51bSA9IDI0OyBudW0gPCAzMjsgbnVtKyspIHsKLQkJaWYgKCFlYXJseV9pc19rOF9uYihyZWFkX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDAwKSkpCi0JCQljb250aW51ZTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShidXNfZGV2X3Jhbmdlcyk7IGkrKykgeworCQlpbnQgYnVzOworCQlpbnQgZGV2X2Jhc2UsIGRldl9saW1pdDsKIAotCQljdGwgPSByZWFkX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDkwKTsKLQkJYXBlcl9lbmFibGVkID0gY3RsICYgMTsKLQkJYXBlcl9vcmRlciA9IChjdGwgPj4gMSkgJiA3OwotCQlhcGVyX3NpemUgPSAoMzIgKiAxMDI0ICogMTAyNCkgPDwgYXBlcl9vcmRlcjsKLQkJYXBlcl9iYXNlID0gcmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5NCkgJiAweDdmZmY7Ci0JCWFwZXJfYmFzZSA8PD0gMjU7CisJCWJ1cyA9IGJ1c19kZXZfcmFuZ2VzW2ldLmJ1czsKKwkJZGV2X2Jhc2UgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfYmFzZTsKKwkJZGV2X2xpbWl0ID0gYnVzX2Rldl9yYW5nZXNbaV0uZGV2X2xpbWl0OwogCi0JCWlmICgobGFzdF9hcGVyX29yZGVyICYmIGFwZXJfb3JkZXIgIT0gbGFzdF9hcGVyX29yZGVyKSB8fAotCQkgICAgKGxhc3RfYXBlcl9iYXNlICYmIGFwZXJfYmFzZSAhPSBsYXN0X2FwZXJfYmFzZSkgfHwKLQkJICAgIChsYXN0X2FwZXJfZW5hYmxlZCAmJiBhcGVyX2VuYWJsZWQgIT0gbGFzdF9hcGVyX2VuYWJsZWQpKSB7Ci0JCQlmaXggPSAxOwotCQkJYnJlYWs7CisJCWZvciAoc2xvdCA9IGRldl9iYXNlOyBzbG90IDwgZGV2X2xpbWl0OyBzbG90KyspIHsKKwkJCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgMHgwMCkpKQorCQkJCWNvbnRpbnVlOworCisJCQljdGwgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwpOworCQkJYXBlcl9lbmFibGVkID0gY3RsICYgQU1ENjRfR0FSVEVOOworCQkJYXBlcl9vcmRlciA9IChjdGwgPj4gMSkgJiA3OworCQkJYXBlcl9zaXplID0gKDMyICogMTAyNCAqIDEwMjQpIDw8IGFwZXJfb3JkZXI7CisJCQlhcGVyX2Jhc2UgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVCQVNFKSAmIDB4N2ZmZjsKKwkJCWFwZXJfYmFzZSA8PD0gMjU7CisKKwkJCWlmIChsYXN0X3ZhbGlkKSB7CisJCQkJaWYgKChhcGVyX29yZGVyICE9IGxhc3RfYXBlcl9vcmRlcikgfHwKKwkJCQkgICAgKGFwZXJfYmFzZSAhPSBsYXN0X2FwZXJfYmFzZSkgfHwKKwkJCQkgICAgKGFwZXJfZW5hYmxlZCAhPSBsYXN0X2FwZXJfZW5hYmxlZCkpIHsKKwkJCQkJZml4ID0gMTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCisJCQlsYXN0X2FwZXJfb3JkZXIgPSBhcGVyX29yZGVyOworCQkJbGFzdF9hcGVyX2Jhc2UgPSBhcGVyX2Jhc2U7CisJCQlsYXN0X2FwZXJfZW5hYmxlZCA9IGFwZXJfZW5hYmxlZDsKKwkJCWxhc3RfdmFsaWQgPSAxOwogCQl9Ci0JCWxhc3RfYXBlcl9vcmRlciA9IGFwZXJfb3JkZXI7Ci0JCWxhc3RfYXBlcl9iYXNlID0gYXBlcl9iYXNlOwotCQlsYXN0X2FwZXJfZW5hYmxlZCA9IGFwZXJfZW5hYmxlZDsKIAl9CiAKIAlpZiAoIWZpeCAmJiAhYXBlcl9lbmFibGVkKQpAQCAtMjkwLDMyICszMjYsNDYgQEAKIAlpZiAoZ2FydF9maXhfZTgyMCAmJiAhZml4ICYmIGFwZXJfZW5hYmxlZCkgewogCQlpZiAoZTgyMF9hbnlfbWFwcGVkKGFwZXJfYmFzZSwgYXBlcl9iYXNlICsgYXBlcl9zaXplLAogCQkJCSAgICBFODIwX1JBTSkpIHsKLQkJCS8qIHJlc2VydmVkIGl0LCBzbyB3ZSBjYW4gcmVzdXNlIGl0IGluIHNlY29uZCBrZXJuZWwgKi8KKwkJCS8qIHJlc2VydmUgaXQsIHNvIHdlIGNhbiByZXVzZSBpdCBpbiBzZWNvbmQga2VybmVsICovCiAJCQlwcmludGsoS0VSTl9JTkZPICJ1cGRhdGUgZTgyMCBmb3IgR0FSVFxuIik7Ci0JCQlhZGRfbWVtb3J5X3JlZ2lvbihhcGVyX2Jhc2UsIGFwZXJfc2l6ZSwgRTgyMF9SRVNFUlZFRCk7CisJCQllODIwX2FkZF9yZWdpb24oYXBlcl9iYXNlLCBhcGVyX3NpemUsIEU4MjBfUkVTRVJWRUQpOwogCQkJdXBkYXRlX2U4MjAoKTsKIAkJfQotCQlyZXR1cm47CiAJfQogCi0JLyogZGlmZmVyZW50IG5vZGVzIGhhdmUgZGlmZmVyZW50IHNldHRpbmcsIGRpc2FibGUgdGhlbSBhbGwgYXQgZmlyc3QqLwotCWZvciAobnVtID0gMjQ7IG51bSA8IDMyOyBudW0rKykgewotCQlpZiAoIWVhcmx5X2lzX2s4X25iKHJlYWRfcGNpX2NvbmZpZygwLCBudW0sIDMsIDB4MDApKSkKLQkJCWNvbnRpbnVlOworCWlmICghZml4KQorCQlyZXR1cm47CiAKLQkJY3RsID0gcmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5MCk7Ci0JCWN0bCAmPSB+MTsKLQkJd3JpdGVfcGNpX2NvbmZpZygwLCBudW0sIDMsIDB4OTAsIGN0bCk7CisJLyogZGlmZmVyZW50IG5vZGVzIGhhdmUgZGlmZmVyZW50IHNldHRpbmcsIGRpc2FibGUgdGhlbSBhbGwgYXQgZmlyc3QqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGJ1c19kZXZfcmFuZ2VzKTsgaSsrKSB7CisJCWludCBidXM7CisJCWludCBkZXZfYmFzZSwgZGV2X2xpbWl0OworCisJCWJ1cyA9IGJ1c19kZXZfcmFuZ2VzW2ldLmJ1czsKKwkJZGV2X2Jhc2UgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfYmFzZTsKKwkJZGV2X2xpbWl0ID0gYnVzX2Rldl9yYW5nZXNbaV0uZGV2X2xpbWl0OworCisJCWZvciAoc2xvdCA9IGRldl9iYXNlOyBzbG90IDwgZGV2X2xpbWl0OyBzbG90KyspIHsKKwkJCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgMHgwMCkpKQorCQkJCWNvbnRpbnVlOworCisJCQljdGwgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwpOworCQkJY3RsICY9IH5BTUQ2NF9HQVJURU47CisJCQl3cml0ZV9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCBjdGwpOworCQl9CiAJfQogCiB9CiAKK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBwcmludGVkX2dhcnRfc2l6ZV9tc2c7CisKIHZvaWQgX19pbml0IGdhcnRfaW9tbXVfaG9sZV9pbml0KHZvaWQpCiB7CisJdTMyIGFncF9hcGVyX2Jhc2UgPSAwLCBhZ3BfYXBlcl9vcmRlciA9IDA7CiAJdTMyIGFwZXJfc2l6ZSwgYXBlcl9hbGxvYyA9IDAsIGFwZXJfb3JkZXIgPSAwLCBsYXN0X2FwZXJfb3JkZXIgPSAwOwogCXU2NCBhcGVyX2Jhc2UsIGxhc3RfYXBlcl9iYXNlID0gMDsKLQlpbnQgZml4LCBudW0sIHZhbGlkX2FncCA9IDA7Ci0JaW50IG5vZGU7CisJaW50IGZpeCwgc2xvdCwgdmFsaWRfYWdwID0gMDsKKwlpbnQgaSwgbm9kZTsKIAogCWlmIChnYXJ0X2lvbW11X2FwZXJ0dXJlX2Rpc2FibGVkIHx8ICFmaXhfYXBlcnR1cmUgfHwKIAkgICAgIWVhcmx5X3BjaV9hbGxvd2VkKCkpCkBAIC0zMjMsMzggKzM3Myw2NSBAQAogCiAJcHJpbnRrKEtFUk5fSU5GTyAgIkNoZWNraW5nIGFwZXJ0dXJlLi4uXG4iKTsKIAorCWlmICghZmFsbGJhY2tfYXBlcl9mb3JjZSkKKwkJYWdwX2FwZXJfYmFzZSA9IHNlYXJjaF9hZ3BfYnJpZGdlKCZhZ3BfYXBlcl9vcmRlciwgJnZhbGlkX2FncCk7CisKIAlmaXggPSAwOwogCW5vZGUgPSAwOwotCWZvciAobnVtID0gMjQ7IG51bSA8IDMyOyBudW0rKykgewotCQlpZiAoIWVhcmx5X2lzX2s4X25iKHJlYWRfcGNpX2NvbmZpZygwLCBudW0sIDMsIDB4MDApKSkKLQkJCWNvbnRpbnVlOworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGJ1c19kZXZfcmFuZ2VzKTsgaSsrKSB7CisJCWludCBidXM7CisJCWludCBkZXZfYmFzZSwgZGV2X2xpbWl0OwogCi0JCWlvbW11X2RldGVjdGVkID0gMTsKLQkJZ2FydF9pb21tdV9hcGVydHVyZSA9IDE7CisJCWJ1cyA9IGJ1c19kZXZfcmFuZ2VzW2ldLmJ1czsKKwkJZGV2X2Jhc2UgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfYmFzZTsKKwkJZGV2X2xpbWl0ID0gYnVzX2Rldl9yYW5nZXNbaV0uZGV2X2xpbWl0OwogCi0JCWFwZXJfb3JkZXIgPSAocmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5MCkgPj4gMSkgJiA3OwotCQlhcGVyX3NpemUgPSAoMzIgKiAxMDI0ICogMTAyNCkgPDwgYXBlcl9vcmRlcjsKLQkJYXBlcl9iYXNlID0gcmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5NCkgJiAweDdmZmY7Ci0JCWFwZXJfYmFzZSA8PD0gMjU7CisJCWZvciAoc2xvdCA9IGRldl9iYXNlOyBzbG90IDwgZGV2X2xpbWl0OyBzbG90KyspIHsKKwkJCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgMHgwMCkpKQorCQkJCWNvbnRpbnVlOwogCi0JCXByaW50ayhLRVJOX0lORk8gIk5vZGUgJWQ6IGFwZXJ0dXJlIEAgJUx4IHNpemUgJXUgTUJcbiIsCi0JCQkJbm9kZSwgYXBlcl9iYXNlLCBhcGVyX3NpemUgPj4gMjApOwotCQlub2RlKys7CisJCQlpb21tdV9kZXRlY3RlZCA9IDE7CisJCQlnYXJ0X2lvbW11X2FwZXJ0dXJlID0gMTsKIAotCQlpZiAoIWFwZXJ0dXJlX3ZhbGlkKGFwZXJfYmFzZSwgYXBlcl9zaXplKSkgewotCQkJZml4ID0gMTsKLQkJCWJyZWFrOworCQkJYXBlcl9vcmRlciA9IChyZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwpID4+IDEpICYgNzsKKwkJCWFwZXJfc2l6ZSA9ICgzMiAqIDEwMjQgKiAxMDI0KSA8PCBhcGVyX29yZGVyOworCQkJYXBlcl9iYXNlID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSkgJiAweDdmZmY7CisJCQlhcGVyX2Jhc2UgPDw9IDI1OworCisJCQlwcmludGsoS0VSTl9JTkZPICJOb2RlICVkOiBhcGVydHVyZSBAICVMeCBzaXplICV1IE1CXG4iLAorCQkJCQlub2RlLCBhcGVyX2Jhc2UsIGFwZXJfc2l6ZSA+PiAyMCk7CisJCQlub2RlKys7CisKKwkJCWlmICghYXBlcnR1cmVfdmFsaWQoYXBlcl9iYXNlLCBhcGVyX3NpemUsIDY0PDwyMCkpIHsKKwkJCQlpZiAodmFsaWRfYWdwICYmIGFncF9hcGVyX2Jhc2UgJiYKKwkJCQkgICAgYWdwX2FwZXJfYmFzZSA9PSBhcGVyX2Jhc2UgJiYKKwkJCQkgICAgYWdwX2FwZXJfb3JkZXIgPT0gYXBlcl9vcmRlcikgeworCQkJCQkvKiB0aGUgc2FtZSBiZXR3ZWVuIHR3byBzZXR0aW5nIGZyb20gTkIgYW5kIGFncCAqLworCQkJCQlpZiAoIW5vX2lvbW11ICYmCisJCQkJCSAgICBtYXhfcGZuID4gTUFYX0RNQTMyX1BGTiAmJgorCQkJCQkgICAgIXByaW50ZWRfZ2FydF9zaXplX21zZykgeworCQkJCQkJcHJpbnRrKEtFUk5fRVJSICJ5b3UgYXJlIHVzaW5nIGlvbW11IHdpdGggYWdwLCBidXQgR0FSVCBzaXplIGlzIGxlc3MgdGhhbiA2NE1cbiIpOworCQkJCQkJcHJpbnRrKEtFUk5fRVJSICJwbGVhc2UgaW5jcmVhc2UgR0FSVCBzaXplIGluIHlvdXIgQklPUyBzZXR1cFxuIik7CisJCQkJCQlwcmludGsoS0VSTl9FUlIgImlmIEJJT1MgZG9lc24ndCBoYXZlIHRoYXQgb3B0aW9uLCBjb250YWN0IHlvdXIgSFcgdmVuZG9yIVxuIik7CisJCQkJCQlwcmludGVkX2dhcnRfc2l6ZV9tc2cgPSAxOworCQkJCQl9CisJCQkJfSBlbHNlIHsKKwkJCQkJZml4ID0gMTsKKwkJCQkJZ290byBvdXQ7CisJCQkJfQorCQkJfQorCisJCQlpZiAoKGxhc3RfYXBlcl9vcmRlciAmJiBhcGVyX29yZGVyICE9IGxhc3RfYXBlcl9vcmRlcikgfHwKKwkJCSAgICAobGFzdF9hcGVyX2Jhc2UgJiYgYXBlcl9iYXNlICE9IGxhc3RfYXBlcl9iYXNlKSkgeworCQkJCWZpeCA9IDE7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCQlsYXN0X2FwZXJfb3JkZXIgPSBhcGVyX29yZGVyOworCQkJbGFzdF9hcGVyX2Jhc2UgPSBhcGVyX2Jhc2U7CiAJCX0KLQotCQlpZiAoKGxhc3RfYXBlcl9vcmRlciAmJiBhcGVyX29yZGVyICE9IGxhc3RfYXBlcl9vcmRlcikgfHwKLQkJICAgIChsYXN0X2FwZXJfYmFzZSAmJiBhcGVyX2Jhc2UgIT0gbGFzdF9hcGVyX2Jhc2UpKSB7Ci0JCQlmaXggPSAxOwotCQkJYnJlYWs7Ci0JCX0KLQkJbGFzdF9hcGVyX29yZGVyID0gYXBlcl9vcmRlcjsKLQkJbGFzdF9hcGVyX2Jhc2UgPSBhcGVyX2Jhc2U7CiAJfQogCitvdXQ6CiAJaWYgKCFmaXggJiYgIWZhbGxiYWNrX2FwZXJfZm9yY2UpIHsKIAkJaWYgKGxhc3RfYXBlcl9iYXNlKSB7CiAJCQl1bnNpZ25lZCBsb25nIG4gPSAoMzIgKiAxMDI0ICogMTAyNCkgPDwgbGFzdF9hcGVyX29yZGVyOwpAQCAtMzY0LDE0ICs0NDEsMTYgQEAKIAkJcmV0dXJuOwogCX0KIAotCWlmICghZmFsbGJhY2tfYXBlcl9mb3JjZSkKLQkJYXBlcl9hbGxvYyA9IHNlYXJjaF9hZ3BfYnJpZGdlKCZhcGVyX29yZGVyLCAmdmFsaWRfYWdwKTsKKwlpZiAoIWZhbGxiYWNrX2FwZXJfZm9yY2UpIHsKKwkJYXBlcl9hbGxvYyA9IGFncF9hcGVyX2Jhc2U7CisJCWFwZXJfb3JkZXIgPSBhZ3BfYXBlcl9vcmRlcjsKKwl9CiAKIAlpZiAoYXBlcl9hbGxvYykgewogCQkvKiBHb3QgdGhlIGFwZXJ0dXJlIGZyb20gdGhlIEFHUCBicmlkZ2UgKi8KIAl9IGVsc2UgaWYgKHN3aW90bGIgJiYgIXZhbGlkX2FncCkgewogCQkvKiBEbyBub3RoaW5nICovCi0JfSBlbHNlIGlmICgoIW5vX2lvbW11ICYmIGVuZF9wZm4gPiBNQVhfRE1BMzJfUEZOKSB8fAorCX0gZWxzZSBpZiAoKCFub19pb21tdSAmJiBtYXhfcGZuID4gTUFYX0RNQTMyX1BGTikgfHwKIAkJICAgZm9yY2VfaW9tbXUgfHwKIAkJICAgdmFsaWRfYWdwIHx8CiAJCSAgIGZhbGxiYWNrX2FwZXJfZm9yY2UpIHsKQEAgLTQwMSwxNiArNDgwLDI0IEBACiAJfQogCiAJLyogRml4IHVwIHRoZSBub3J0aCBicmlkZ2VzICovCi0JZm9yIChudW0gPSAyNDsgbnVtIDwgMzI7IG51bSsrKSB7Ci0JCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHgwMCkpKQotCQkJY29udGludWU7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYnVzX2Rldl9yYW5nZXMpOyBpKyspIHsKKwkJaW50IGJ1czsKKwkJaW50IGRldl9iYXNlLCBkZXZfbGltaXQ7CiAKLQkJLyoKLQkJICogRG9uJ3QgZW5hYmxlIHRyYW5zbGF0aW9uIHlldC4gVGhhdCBpcyBkb25lIGxhdGVyLgotCQkgKiBBc3N1bWUgdGhpcyBCSU9TIGRpZG4ndCBpbml0aWFsaXNlIHRoZSBHQVJUIHNvCi0JCSAqIGp1c3Qgb3ZlcndyaXRlIGFsbCBwcmV2aW91cyBiaXRzCi0JCSAqLwotCQl3cml0ZV9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5MCwgYXBlcl9vcmRlcjw8MSk7Ci0JCXdyaXRlX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDk0LCBhcGVyX2FsbG9jPj4yNSk7CisJCWJ1cyA9IGJ1c19kZXZfcmFuZ2VzW2ldLmJ1czsKKwkJZGV2X2Jhc2UgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfYmFzZTsKKwkJZGV2X2xpbWl0ID0gYnVzX2Rldl9yYW5nZXNbaV0uZGV2X2xpbWl0OworCQlmb3IgKHNsb3QgPSBkZXZfYmFzZTsgc2xvdCA8IGRldl9saW1pdDsgc2xvdCsrKSB7CisJCQlpZiAoIWVhcmx5X2lzX2s4X25iKHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDMsIDB4MDApKSkKKwkJCQljb250aW51ZTsKKworCQkJLyogRG9uJ3QgZW5hYmxlIHRyYW5zbGF0aW9uIHlldC4gVGhhdCBpcyBkb25lIGxhdGVyLgorCQkJICAgQXNzdW1lIHRoaXMgQklPUyBkaWRuJ3QgaW5pdGlhbGlzZSB0aGUgR0FSVCBzbworCQkJICAganVzdCBvdmVyd3JpdGUgYWxsIHByZXZpb3VzIGJpdHMgKi8KKwkJCXdyaXRlX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsIGFwZXJfb3JkZXIgPDwgMSk7CisJCQl3cml0ZV9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgYXBlcl9hbGxvYyA+PiAyNSk7CisJCX0KIAl9CisKKwlzZXRfdXBfZ2FydF9yZXN1bWUoYXBlcl9vcmRlciwgYXBlcl9hbGxvYyk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYXBpY18zMi5jIGIvYXJjaC94ODYva2VybmVsL2FwaWNfMzIuYwppbmRleCA3MTAxN2Y3Li5hNDM3ZDAyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBpY18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hcGljXzMyLmMKQEAgLTUyLDMwICs1Miw0MSBAQAogCiB1bnNpZ25lZCBsb25nIG1wX2xhcGljX2FkZHI7CiAKLURFRklORV9QRVJfQ1BVKHUxNiwgeDg2X2Jpb3NfY3B1X2FwaWNpZCkgPSBCQURfQVBJQ0lEOwotRVhQT1JUX1BFUl9DUFVfU1lNQk9MKHg4Nl9iaW9zX2NwdV9hcGljaWQpOwotCiAvKgogICogS25vYiB0byBjb250cm9sIG91ciB3aWxsaW5nbmVzcyB0byBlbmFibGUgdGhlIGxvY2FsIEFQSUMuCiAgKgotICogLTE9Zm9yY2UtZGlzYWJsZSwgKzE9Zm9yY2UtZW5hYmxlCisgKiArMT1mb3JjZS1lbmFibGUKICAqLwotc3RhdGljIGludCBlbmFibGVfbG9jYWxfYXBpYyBfX2luaXRkYXRhOworc3RhdGljIGludCBmb3JjZV9lbmFibGVfbG9jYWxfYXBpYzsKK2ludCBkaXNhYmxlX2FwaWM7CiAKIC8qIExvY2FsIEFQSUMgdGltZXIgdmVyaWZpY2F0aW9uIG9rICovCiBzdGF0aWMgaW50IGxvY2FsX2FwaWNfdGltZXJfdmVyaWZ5X29rOwotLyogRGlzYWJsZSBsb2NhbCBBUElDIHRpbWVyIGZyb20gdGhlIGtlcm5lbCBjb21tYW5kbGluZSBvciB2aWEgZG1pIHF1aXJrCi0gICBvciB1c2luZyBDUFUgTVNSIGNoZWNrICovCi1pbnQgbG9jYWxfYXBpY190aW1lcl9kaXNhYmxlZDsKKy8qIERpc2FibGUgbG9jYWwgQVBJQyB0aW1lciBmcm9tIHRoZSBrZXJuZWwgY29tbWFuZGxpbmUgb3IgdmlhIGRtaSBxdWlyayAqLworc3RhdGljIGludCBsb2NhbF9hcGljX3RpbWVyX2Rpc2FibGVkOwogLyogTG9jYWwgQVBJQyB0aW1lciB3b3JrcyBpbiBDMiAqLwogaW50IGxvY2FsX2FwaWNfdGltZXJfYzJfb2s7CiBFWFBPUlRfU1lNQk9MX0dQTChsb2NhbF9hcGljX3RpbWVyX2MyX29rKTsKIAoraW50IGZpcnN0X3N5c3RlbV92ZWN0b3IgPSAweGZlOworCitjaGFyIHN5c3RlbV92ZWN0b3JzW05SX1ZFQ1RPUlNdID0geyBbMCAuLi4gTlJfVkVDVE9SUy0xXSA9IFNZU19WRUNUT1JfRlJFRX07CisKIC8qCiAgKiBEZWJ1ZyBsZXZlbCwgZXhwb3J0ZWQgZm9yIGlvX2FwaWMuYwogICovCiBpbnQgYXBpY192ZXJib3NpdHk7CiAKK2ludCBwaWNfbW9kZTsKKworLyogSGF2ZSB3ZSBmb3VuZCBhbiBNUCB0YWJsZSAqLworaW50IHNtcF9mb3VuZF9jb25maWc7CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbGFwaWNfcmVzb3VyY2UgPSB7CisJLm5hbWUgPSAiTG9jYWwgQVBJQyIsCisJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0gfCBJT1JFU09VUkNFX0JVU1ksCit9OworCiBzdGF0aWMgdW5zaWduZWQgaW50IGNhbGlicmF0aW9uX3Jlc3VsdDsKIAogc3RhdGljIGludCBsYXBpY19uZXh0X2V2ZW50KHVuc2lnbmVkIGxvbmcgZGVsdGEsCkBAIC01NDUsNyArNTU2LDcgQEAKIAkJCWxhcGljX2Nsb2NrZXZlbnQuZmVhdHVyZXMgJj0gfkNMT0NLX0VWVF9GRUFUX0RVTU1ZOwogCQllbHNlCiAJCQlwcmludGsoS0VSTl9XQVJOSU5HICJBUElDIHRpbWVyIHJlZ2lzdGVyZWQgYXMgZHVtbXksIgotCQkJICAgICAgICIgZHVlIHRvIG5taV93YXRjaGRvZz0xIVxuIik7CisJCQkJIiBkdWUgdG8gbm1pX3dhdGNoZG9nPSVkIVxuIiwgbm1pX3dhdGNoZG9nKTsKIAl9CiAKIAkvKiBTZXR1cCB0aGUgbGFwaWMgb3IgcmVxdWVzdCB0aGUgYnJvYWRjYXN0ICovCkBAIC05NjMsNyArOTc0LDcgQEAKIAkgKiBEb3VibGUtY2hlY2sgd2hldGhlciB0aGlzIEFQSUMgaXMgcmVhbGx5IHJlZ2lzdGVyZWQuCiAJICovCiAJaWYgKCFhcGljX2lkX3JlZ2lzdGVyZWQoKSkKLQkJQlVHKCk7CisJCVdBUk5fT05fT05DRSgxKTsKIAogCS8qCiAJICogSW50ZWwgcmVjb21tZW5kcyB0byBzZXQgREZSLCBMRFIgYW5kIFRQUiBiZWZvcmUgZW5hYmxpbmcKQEAgLTEwOTQsNyArMTEwNSw3IEBACiAJdTMyIGgsIGwsIGZlYXR1cmVzOwogCiAJLyogRGlzYWJsZWQgYnkga2VybmVsIG9wdGlvbj8gKi8KLQlpZiAoZW5hYmxlX2xvY2FsX2FwaWMgPCAwKQorCWlmIChkaXNhYmxlX2FwaWMpCiAJCXJldHVybiAtMTsKIAogCXN3aXRjaCAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yKSB7CkBAIC0xMTE3LDcgKzExMjgsNyBAQAogCQkgKiBPdmVyLXJpZGUgQklPUyBhbmQgdHJ5IHRvIGVuYWJsZSB0aGUgbG9jYWwgQVBJQyBvbmx5IGlmCiAJCSAqICJsYXBpYyIgc3BlY2lmaWVkLgogCQkgKi8KLQkJaWYgKGVuYWJsZV9sb2NhbF9hcGljIDw9IDApIHsKKwkJaWYgKCFmb3JjZV9lbmFibGVfbG9jYWxfYXBpYykgewogCQkJcHJpbnRrKEtFUk5fSU5GTyAiTG9jYWwgQVBJQyBkaXNhYmxlZCBieSBCSU9TIC0tICIKIAkJCSAgICAgICAieW91IGNhbiBlbmFibGUgaXQgd2l0aCBcImxhcGljXCJcbiIpOwogCQkJcmV0dXJuIC0xOwpAQCAtMTE1NCw5ICsxMTY1LDYgQEAKIAlpZiAobCAmIE1TUl9JQTMyX0FQSUNCQVNFX0VOQUJMRSkKIAkJbXBfbGFwaWNfYWRkciA9IGwgJiBNU1JfSUEzMl9BUElDQkFTRV9CQVNFOwogCi0JaWYgKG5taV93YXRjaGRvZyAhPSBOTUlfTk9ORSAmJiBubWlfd2F0Y2hkb2cgIT0gTk1JX0RJU0FCTEVEKQotCQlubWlfd2F0Y2hkb2cgPSBOTUlfTE9DQUxfQVBJQzsKLQogCXByaW50ayhLRVJOX0lORk8gIkZvdW5kIGFuZCBlbmFibGVkIGxvY2FsIEFQSUMhXG4iKTsKIAogCWFwaWNfcG1fYWN0aXZhdGUoKTsKQEAgLTExOTUsMzYgKzEyMDMsNiBAQAogCWlmIChib290X2NwdV9waHlzaWNhbF9hcGljaWQgPT0gLTFVKQogCQlib290X2NwdV9waHlzaWNhbF9hcGljaWQgPSBHRVRfQVBJQ19JRChyZWFkX2FwaWNfaWQoKSk7CiAKLSNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKLQl7Ci0JCXVuc2lnbmVkIGxvbmcgaW9hcGljX3BoeXMsIGlkeCA9IEZJWF9JT19BUElDX0JBU0VfMDsKLQkJaW50IGk7Ci0KLQkJZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkrKykgewotCQkJaWYgKHNtcF9mb3VuZF9jb25maWcpIHsKLQkJCQlpb2FwaWNfcGh5cyA9IG1wX2lvYXBpY3NbaV0ubXBjX2FwaWNhZGRyOwotCQkJCWlmICghaW9hcGljX3BoeXMpIHsKLQkJCQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkJCSAgICAgICAiV0FSTklORzogYm9ndXMgemVybyBJTy1BUElDICIKLQkJCQkJICAgICAgICJhZGRyZXNzIGZvdW5kIGluIE1QVEFCTEUsICIKLQkJCQkJICAgICAgICJkaXNhYmxpbmcgSU8vQVBJQyBzdXBwb3J0IVxuIik7Ci0JCQkJCXNtcF9mb3VuZF9jb25maWcgPSAwOwotCQkJCQlza2lwX2lvYXBpY19zZXR1cCA9IDE7Ci0JCQkJCWdvdG8gZmFrZV9pb2FwaWNfcGFnZTsKLQkJCQl9Ci0JCQl9IGVsc2UgewotZmFrZV9pb2FwaWNfcGFnZToKLQkJCQlpb2FwaWNfcGh5cyA9ICh1bnNpZ25lZCBsb25nKQotCQkJCQkgICAgICBhbGxvY19ib290bWVtX3BhZ2VzKFBBR0VfU0laRSk7Ci0JCQkJaW9hcGljX3BoeXMgPSBfX3BhKGlvYXBpY19waHlzKTsKLQkJCX0KLQkJCXNldF9maXhtYXBfbm9jYWNoZShpZHgsIGlvYXBpY19waHlzKTsKLQkJCXByaW50ayhLRVJOX0RFQlVHICJtYXBwZWQgSU9BUElDIHRvICUwOGx4ICglMDhseClcbiIsCi0JCQkgICAgICAgX19maXhfdG9fdmlydChpZHgpLCBpb2FwaWNfcGh5cyk7Ci0JCQlpZHgrKzsKLQkJfQotCX0KLSNlbmRpZgogfQogCiAvKgpAQCAtMTIzNiw3ICsxMjE0LDcgQEAKIAogaW50IF9faW5pdCBBUElDX2luaXRfdW5pcHJvY2Vzc29yKHZvaWQpCiB7Ci0JaWYgKGVuYWJsZV9sb2NhbF9hcGljIDwgMCkKKwlpZiAoZGlzYWJsZV9hcGljKQogCQljbGVhcl9jcHVfY2FwKCZib290X2NwdV9kYXRhLCBYODZfRkVBVFVSRV9BUElDKTsKIAogCWlmICghc21wX2ZvdW5kX2NvbmZpZyAmJiAhY3B1X2hhc19hcGljKQpAQCAtMTI2NSwxMCArMTI0MywxNCBAQAogI2lmZGVmIENPTkZJR19DUkFTSF9EVU1QCiAJYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkID0gR0VUX0FQSUNfSUQocmVhZF9hcGljX2lkKCkpOwogI2VuZGlmCi0JcGh5c19jcHVfcHJlc2VudF9tYXAgPSBwaHlzaWRfbWFza19vZl9waHlzaWQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKTsKKwlwaHlzaWRfc2V0X21hc2tfb2ZfcGh5c2lkKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCwgJnBoeXNfY3B1X3ByZXNlbnRfbWFwKTsKIAogCXNldHVwX2xvY2FsX0FQSUMoKTsKIAorI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQworCWlmICghc21wX2ZvdW5kX2NvbmZpZyB8fCBza2lwX2lvYXBpY19zZXR1cCB8fCAhbnJfaW9hcGljcykKKyNlbmRpZgorCQlsb2NhbGlzZV9ubWlfd2F0Y2hkb2coKTsKIAllbmRfbG9jYWxfQVBJQ19zZXR1cCgpOwogI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCWlmIChzbXBfZm91bmRfY29uZmlnKQpAQCAtMTM1MSwxMyArMTMzMywxMyBAQAogCSAqIFRoZSByZXNjaGVkdWxlIGludGVycnVwdCBpcyBhIENQVS10by1DUFUgcmVzY2hlZHVsZS1oZWxwZXIKIAkgKiBJUEksIGRyaXZlbiBieSB3YWtldXAuCiAJICovCi0Jc2V0X2ludHJfZ2F0ZShSRVNDSEVEVUxFX1ZFQ1RPUiwgcmVzY2hlZHVsZV9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShSRVNDSEVEVUxFX1ZFQ1RPUiwgcmVzY2hlZHVsZV9pbnRlcnJ1cHQpOwogCiAJLyogSVBJIGZvciBpbnZhbGlkYXRpb24gKi8KLQlzZXRfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUiwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1IsIGludmFsaWRhdGVfaW50ZXJydXB0KTsKIAogCS8qIElQSSBmb3IgZ2VuZXJpYyBmdW5jdGlvbiBjYWxsICovCi0Jc2V0X2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiwgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiwgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQpOwogCiAJLyogSVBJIGZvciBzaW5nbGUgY2FsbCBmdW5jdGlvbiAqLwogCXNldF9pbnRyX2dhdGUoQ0FMTF9GVU5DVElPTl9TSU5HTEVfVkVDVE9SLApAQCAtMTM3NCwxNSArMTM1NiwxNSBAQAogCXNtcF9pbnRyX2luaXQoKTsKICNlbmRpZgogCS8qIHNlbGYgZ2VuZXJhdGVkIElQSSBmb3IgbG9jYWwgQVBJQyB0aW1lciAqLwotCXNldF9pbnRyX2dhdGUoTE9DQUxfVElNRVJfVkVDVE9SLCBhcGljX3RpbWVyX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKExPQ0FMX1RJTUVSX1ZFQ1RPUiwgYXBpY190aW1lcl9pbnRlcnJ1cHQpOwogCiAJLyogSVBJIHZlY3RvcnMgZm9yIEFQSUMgc3B1cmlvdXMgYW5kIGVycm9yIGludGVycnVwdHMgKi8KLQlzZXRfaW50cl9nYXRlKFNQVVJJT1VTX0FQSUNfVkVDVE9SLCBzcHVyaW91c19pbnRlcnJ1cHQpOwotCXNldF9pbnRyX2dhdGUoRVJST1JfQVBJQ19WRUNUT1IsIGVycm9yX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKFNQVVJJT1VTX0FQSUNfVkVDVE9SLCBzcHVyaW91c19pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShFUlJPUl9BUElDX1ZFQ1RPUiwgZXJyb3JfaW50ZXJydXB0KTsKIAogCS8qIHRoZXJtYWwgbW9uaXRvciBMVlQgaW50ZXJydXB0ICovCiAjaWZkZWYgQ09ORklHX1g4Nl9NQ0VfUDRUSEVSTUFMCi0Jc2V0X2ludHJfZ2F0ZShUSEVSTUFMX0FQSUNfVkVDVE9SLCB0aGVybWFsX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKFRIRVJNQUxfQVBJQ19WRUNUT1IsIHRoZXJtYWxfaW50ZXJydXB0KTsKICNlbmRpZgogfQogCkBAIC0xNTE3LDYgKzE0OTksOSBAQAogCQkgKi8KIAkJY3B1ID0gMDsKIAorCWlmIChhcGljaWQgPiBtYXhfcGh5c2ljYWxfYXBpY2lkKQorCQltYXhfcGh5c2ljYWxfYXBpY2lkID0gYXBpY2lkOworCiAJLyoKIAkgKiBXb3VsZCBiZSBwcmVmZXJhYmxlIHRvIHN3aXRjaCB0byBiaWdzbXAgd2hlbiBDT05GSUdfSE9UUExVR19DUFU9eQogCSAqIGJ1dCB3ZSBuZWVkIHRvIHdvcmsgb3RoZXIgZGVwZW5kZW5jaWVzIGxpa2UgU01QX1NVU1BFTkQgZXRjCkBAIC0xNTI0LDcgKzE1MDksNyBAQAogCSAqIGlmIChDUFVfSE9UUExVR19FTkFCTEVEIHx8IG51bV9wcm9jZXNzb3JzID4gOCkKIAkgKiAgICAgICAtIEFzaG9rIFJhaiA8YXNob2sucmFqQGludGVsLmNvbT4KIAkgKi8KLQlpZiAobnVtX3Byb2Nlc3NvcnMgPiA4KSB7CisJaWYgKG1heF9waHlzaWNhbF9hcGljaWQgPj0gOCkgewogCQlzd2l0Y2ggKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvcikgewogCQljYXNlIFg4Nl9WRU5ET1JfSU5URUw6CiAJCQlpZiAoIUFQSUNfWEFQSUModmVyc2lvbikpIHsKQEAgLTE1MzgsOSArMTUyMyw5IEBACiAJfQogI2lmZGVmIENPTkZJR19TTVAKIAkvKiBhcmUgd2UgYmVpbmcgY2FsbGVkIGVhcmx5IGluIGtlcm5lbCBzdGFydHVwPyAqLwotCWlmICh4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHIpIHsKLQkJdTE2ICpjcHVfdG9fYXBpY2lkID0geDg2X2NwdV90b19hcGljaWRfZWFybHlfcHRyOwotCQl1MTYgKmJpb3NfY3B1X2FwaWNpZCA9IHg4Nl9iaW9zX2NwdV9hcGljaWRfZWFybHlfcHRyOworCWlmIChlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX2FwaWNpZCkpIHsKKwkJdTE2ICpjcHVfdG9fYXBpY2lkID0gZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19hcGljaWQpOworCQl1MTYgKmJpb3NfY3B1X2FwaWNpZCA9IGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9iaW9zX2NwdV9hcGljaWQpOwogCiAJCWNwdV90b19hcGljaWRbY3B1XSA9IGFwaWNpZDsKIAkJYmlvc19jcHVfYXBpY2lkW2NwdV0gPSBhcGljaWQ7CkBAIC0xNzA3LDE0ICsxNjkyLDE0IEBACiAgKi8KIHN0YXRpYyBpbnQgX19pbml0IHBhcnNlX2xhcGljKGNoYXIgKmFyZykKIHsKLQllbmFibGVfbG9jYWxfYXBpYyA9IDE7CisJZm9yY2VfZW5hYmxlX2xvY2FsX2FwaWMgPSAxOwogCXJldHVybiAwOwogfQogZWFybHlfcGFyYW0oImxhcGljIiwgcGFyc2VfbGFwaWMpOwogCiBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9ub2xhcGljKGNoYXIgKmFyZykKIHsKLQllbmFibGVfbG9jYWxfYXBpYyA9IC0xOworCWRpc2FibGVfYXBpYyA9IDE7CiAJY2xlYXJfY3B1X2NhcCgmYm9vdF9jcHVfZGF0YSwgWDg2X0ZFQVRVUkVfQVBJQyk7CiAJcmV0dXJuIDA7CiB9CkBAIC0xNzQ0LDMgKzE3MjksMjEgQEAKIH0KIF9fc2V0dXAoImFwaWM9IiwgYXBpY19zZXRfdmVyYm9zaXR5KTsKIAorc3RhdGljIGludCBfX2luaXQgbGFwaWNfaW5zZXJ0X3Jlc291cmNlKHZvaWQpCit7CisJaWYgKCFhcGljX3BoeXMpCisJCXJldHVybiAtMTsKKworCS8qIFB1dCBsb2NhbCBBUElDIGludG8gdGhlIHJlc291cmNlIG1hcC4gKi8KKwlsYXBpY19yZXNvdXJjZS5zdGFydCA9IGFwaWNfcGh5czsKKwlsYXBpY19yZXNvdXJjZS5lbmQgPSBsYXBpY19yZXNvdXJjZS5zdGFydCArIFBBR0VfU0laRSAtIDE7CisJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmxhcGljX3Jlc291cmNlKTsKKworCXJldHVybiAwOworfQorCisvKgorICogbmVlZCBjYWxsIGluc2VydCBhZnRlciBlODIwX3Jlc2VydmVfcmVzb3VyY2VzKCkKKyAqIHRoYXQgaXMgdXNpbmcgcmVxdWVzdF9yZXNvdXJjZQorICovCitsYXRlX2luaXRjYWxsKGxhcGljX2luc2VydF9yZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYXBpY182NC5jIGIvYXJjaC94ODYva2VybmVsL2FwaWNfNjQuYwppbmRleCAwNjMzY2ZkLi4xZTNkMzJlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBpY182NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hcGljXzY0LmMKQEAgLTQzLDcgKzQzLDcgQEAKICNpbmNsdWRlIDxtYWNoX2lwaS5oPgogI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgogCi1pbnQgZGlzYWJsZV9hcGljX3RpbWVyIF9fY3B1aW5pdGRhdGE7CitzdGF0aWMgaW50IGRpc2FibGVfYXBpY190aW1lciBfX2NwdWluaXRkYXRhOwogc3RhdGljIGludCBhcGljX2NhbGlicmF0ZV9wbXRtciBfX2luaXRkYXRhOwogaW50IGRpc2FibGVfYXBpYzsKIApAQCAtNTYsNiArNTYsOSBAQAogICovCiBpbnQgYXBpY192ZXJib3NpdHk7CiAKKy8qIEhhdmUgd2UgZm91bmQgYW4gTVAgdGFibGUgKi8KK2ludCBzbXBfZm91bmRfY29uZmlnOworCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGxhcGljX3Jlc291cmNlID0gewogCS5uYW1lID0gIkxvY2FsIEFQSUMiLAogCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNIHwgSU9SRVNPVVJDRV9CVVNZLApAQCAtODcsOSArOTAsNiBAQAogCiB1bnNpZ25lZCBsb25nIG1wX2xhcGljX2FkZHI7CiAKLURFRklORV9QRVJfQ1BVKHUxNiwgeDg2X2Jpb3NfY3B1X2FwaWNpZCkgPSBCQURfQVBJQ0lEOwotRVhQT1JUX1BFUl9DUFVfU1lNQk9MKHg4Nl9iaW9zX2NwdV9hcGljaWQpOwotCiB1bnNpZ25lZCBpbnQgX19jcHVpbml0ZGF0YSBtYXhjcHVzID0gTlJfQ1BVUzsKIC8qCiAgKiBHZXQgdGhlIExBUElDIHZlcnNpb24KQEAgLTQxNywzNyArNDE3LDEzIEBACiAJCWxhcGljX2Nsb2NrZXZlbnQuZmVhdHVyZXMgJj0gfkNMT0NLX0VWVF9GRUFUX0RVTU1ZOwogCWVsc2UKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiQVBJQyB0aW1lciByZWdpc3RlcmVkIGFzIGR1bW15LCIKLQkJICAgICAgICIgZHVlIHRvIG5taV93YXRjaGRvZz0xIVxuIik7CisJCQkiIGR1ZSB0byBubWlfd2F0Y2hkb2c9JWQhXG4iLCBubWlfd2F0Y2hkb2cpOwogCiAJc2V0dXBfQVBJQ190aW1lcigpOwogfQogCi0vKgotICogQU1EIEMxRSBlbmFibGVkIENQVXMgaGF2ZSBhIHJlYWwgbmFzdHkgcHJvYmxlbTogU29tZSBCSU9TZXMgc2V0IHRoZQotICogQzFFIGZsYWcgb25seSBpbiB0aGUgc2Vjb25kYXJ5IENQVSwgc28gd2hlbiB3ZSBkZXRlY3QgdGhlIHdyZWNrYWdlCi0gKiB3ZSBhbHJlYWR5IGhhdmUgZW5hYmxlZCB0aGUgYm9vdCBDUFUgbG9jYWwgYXBpYyB0aW1lci4gQ2hlY2ssIGlmCi0gKiBkaXNhYmxlX2FwaWNfdGltZXIgaXMgc2V0IGFuZCB0aGUgRFVNTVkgZmxhZyBpcyBjbGVhcmVkLiBJZiB5ZXMsCi0gKiBzZXQgdGhlIERVTU1ZIGZsYWcgYWdhaW4gYW5kIGZvcmNlIHRoZSBicm9hZGNhc3QgbW9kZSBpbiB0aGUKLSAqIGNsb2NrZXZlbnRzIGxheWVyLgotICovCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgY2hlY2tfYm9vdF9hcGljX3RpbWVyX2Jyb2FkY2FzdCh2b2lkKQotewotCWlmICghZGlzYWJsZV9hcGljX3RpbWVyIHx8Ci0JICAgIChsYXBpY19jbG9ja2V2ZW50LmZlYXR1cmVzICYgQ0xPQ0tfRVZUX0ZFQVRfRFVNTVkpKQotCQlyZXR1cm47Ci0KLQlwcmludGsoS0VSTl9JTkZPICJBTUQgQzFFIGRldGVjdGVkIGxhdGUuIEZvcmNlIHRpbWVyIGJyb2FkY2FzdC5cbiIpOwotCWxhcGljX2Nsb2NrZXZlbnQuZmVhdHVyZXMgfD0gQ0xPQ0tfRVZUX0ZFQVRfRFVNTVk7Ci0KLQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JY2xvY2tldmVudHNfbm90aWZ5KENMT0NLX0VWVF9OT1RJRllfQlJPQURDQVNUX0ZPUkNFLAotCQkJICAgJmJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCk7Ci0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKLX0KLQogdm9pZCBfX2NwdWluaXQgc2V0dXBfc2Vjb25kYXJ5X0FQSUNfY2xvY2sodm9pZCkKIHsKLQljaGVja19ib290X2FwaWNfdGltZXJfYnJvYWRjYXN0KCk7CiAJc2V0dXBfQVBJQ190aW1lcigpOwogfQogCkBAIC04NTAsNyArODI2LDYgQEAKIHZvaWQgX19jcHVpbml0IGVuZF9sb2NhbF9BUElDX3NldHVwKHZvaWQpCiB7CiAJbGFwaWNfc2V0dXBfZXNyKCk7Ci0Jbm1pX3dhdGNoZG9nX2RlZmF1bHQoKTsKIAlzZXR1cF9hcGljX25taV93YXRjaGRvZyhOVUxMKTsKIAlhcGljX3BtX2FjdGl2YXRlKCk7CiB9CkBAIC04NzUsNyArODUwLDcgQEAKIAogdm9pZCBfX2luaXQgZWFybHlfaW5pdF9sYXBpY19tYXBwaW5nKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBhcGljX3BoeXM7CisJdW5zaWduZWQgbG9uZyBwaHlzX2FkZHI7CiAKIAkvKgogCSAqIElmIG5vIGxvY2FsIEFQSUMgY2FuIGJlIGZvdW5kIHRoZW4gZ28gb3V0CkBAIC04ODQsMTEgKzg1OSwxMSBAQAogCWlmICghc21wX2ZvdW5kX2NvbmZpZykKIAkJcmV0dXJuOwogCi0JYXBpY19waHlzID0gbXBfbGFwaWNfYWRkcjsKKwlwaHlzX2FkZHIgPSBtcF9sYXBpY19hZGRyOwogCi0Jc2V0X2ZpeG1hcF9ub2NhY2hlKEZJWF9BUElDX0JBU0UsIGFwaWNfcGh5cyk7CisJc2V0X2ZpeG1hcF9ub2NhY2hlKEZJWF9BUElDX0JBU0UsIHBoeXNfYWRkcik7CiAJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCAibWFwcGVkIEFQSUMgdG8gJTE2bHggKCUxNmx4KVxuIiwKLQkJCQkgQVBJQ19CQVNFLCBhcGljX3BoeXMpOworCQkgICAgQVBJQ19CQVNFLCBwaHlzX2FkZHIpOwogCiAJLyoKIAkgKiBGZXRjaCB0aGUgQVBJQyBJRCBvZiB0aGUgQlNQIGluIGNhc2Ugd2UgaGF2ZSBhCkBAIC05NDIsNyArOTE3LDkgQEAKIAogCXZlcmlmeV9sb2NhbF9BUElDKCk7CiAKLQlwaHlzX2NwdV9wcmVzZW50X21hcCA9IHBoeXNpZF9tYXNrX29mX3BoeXNpZChib290X2NwdV9waHlzaWNhbF9hcGljaWQpOworCWNvbm5lY3RfYnNwX0FQSUMoKTsKKworCXBoeXNpZF9zZXRfbWFza19vZl9waHlzaWQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkLCAmcGh5c19jcHVfcHJlc2VudF9tYXApOwogCWFwaWNfd3JpdGUoQVBJQ19JRCwgU0VUX0FQSUNfSUQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKSk7CiAKIAlzZXR1cF9sb2NhbF9BUElDKCk7CkBAIC05NTQsNiArOTMxLDggQEAKIAlpZiAoIXNraXBfaW9hcGljX3NldHVwICYmIG5yX2lvYXBpY3MpCiAJCWVuYWJsZV9JT19BUElDKCk7CiAKKwlpZiAoIXNtcF9mb3VuZF9jb25maWcgfHwgc2tpcF9pb2FwaWNfc2V0dXAgfHwgIW5yX2lvYXBpY3MpCisJCWxvY2FsaXNlX25taV93YXRjaGRvZygpOwogCWVuZF9sb2NhbF9BUElDX3NldHVwKCk7CiAKIAlpZiAoc21wX2ZvdW5kX2NvbmZpZyAmJiAhc2tpcF9pb2FwaWNfc2V0dXAgJiYgbnJfaW9hcGljcykKQEAgLTEwMjEsNiArMTAwMCwxNCBAQAogCWlycV9leGl0KCk7CiB9CiAKKy8qKgorICogICogY29ubmVjdF9ic3BfQVBJQyAtIGF0dGFjaCB0aGUgQVBJQyB0byB0aGUgaW50ZXJydXB0IHN5c3RlbQorICogICAqLwordm9pZCBfX2luaXQgY29ubmVjdF9ic3BfQVBJQyh2b2lkKQoreworCWVuYWJsZV9hcGljX21vZGUoKTsKK30KKwogdm9pZCBkaXNjb25uZWN0X2JzcF9BUElDKGludCB2aXJ0X3dpcmVfc2V0dXApCiB7CiAJLyogR28gYmFjayB0byBWaXJ0dWFsIFdpcmUgY29tcGF0aWJpbGl0eSBtb2RlICovCkBAIC0xMDkwLDEwICsxMDc3LDEzIEBACiAJCSAqLwogCQljcHUgPSAwOwogCX0KKwlpZiAoYXBpY2lkID4gbWF4X3BoeXNpY2FsX2FwaWNpZCkKKwkJbWF4X3BoeXNpY2FsX2FwaWNpZCA9IGFwaWNpZDsKKwogCS8qIGFyZSB3ZSBiZWluZyBjYWxsZWQgZWFybHkgaW4ga2VybmVsIHN0YXJ0dXA/ICovCi0JaWYgKHg4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0cikgewotCQl1MTYgKmNwdV90b19hcGljaWQgPSB4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHI7Ci0JCXUxNiAqYmlvc19jcHVfYXBpY2lkID0geDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7CisJaWYgKGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fYXBpY2lkKSkgeworCQl1MTYgKmNwdV90b19hcGljaWQgPSBlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX2FwaWNpZCk7CisJCXUxNiAqYmlvc19jcHVfYXBpY2lkID0gZWFybHlfcGVyX2NwdV9wdHIoeDg2X2Jpb3NfY3B1X2FwaWNpZCk7CiAKIAkJY3B1X3RvX2FwaWNpZFtjcHVdID0gYXBpY2lkOwogCQliaW9zX2NwdV9hcGljaWRbY3B1XSA9IGFwaWNpZDsKQEAgLTEyNjksNyArMTI1OSw3IEBACiAJaWYgKChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQpICYmICFpc192c21wX2JveCgpKQogCQlyZXR1cm4gMDsKIAotCWJpb3NfY3B1X2FwaWNpZCA9IHg4Nl9iaW9zX2NwdV9hcGljaWRfZWFybHlfcHRyOworCWJpb3NfY3B1X2FwaWNpZCA9IGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9iaW9zX2NwdV9hcGljaWQpOwogCWJpdG1hcF96ZXJvKGNsdXN0ZXJtYXAsIE5VTV9BUElDX0NMVVNURVJTKTsKIAogCWZvciAoaSA9IDA7IGkgPCBOUl9DUFVTOyBpKyspIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcG1fMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9hcG1fMzIuYwppbmRleCBiZjkyOTBlLi43NWNiNWRhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBtXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FwbV8zMi5jCkBAIC0yMDQsNiArMjA0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KQEAgLTIyOCw2ICsyMjksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQuaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTExNDksNyArMTE1MSw3IEBACiAJCQkJYXMtPmV2ZW50X3RhaWwgPSAwOwogCQl9CiAJCWFzLT5ldmVudHNbYXMtPmV2ZW50X2hlYWRdID0gZXZlbnQ7Ci0JCWlmICgoIWFzLT5zdXNlcikgfHwgKCFhcy0+d3JpdGVyKSkKKwkJaWYgKCFhcy0+c3VzZXIgfHwgIWFzLT53cml0ZXIpCiAJCQljb250aW51ZTsKIAkJc3dpdGNoIChldmVudCkgewogCQljYXNlIEFQTV9TWVNfU1VTUEVORDoKQEAgLTEzOTYsNyArMTM5OCw3IEBACiAKIHN0YXRpYyBpbnQgY2hlY2tfYXBtX3VzZXIoc3RydWN0IGFwbV91c2VyICphcywgY29uc3QgY2hhciAqZnVuYykKIHsKLQlpZiAoKGFzID09IE5VTEwpIHx8IChhcy0+bWFnaWMgIT0gQVBNX0JJT1NfTUFHSUMpKSB7CisJaWYgKGFzID09IE5VTEwgfHwgYXMtPm1hZ2ljICE9IEFQTV9CSU9TX01BR0lDKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiYXBtOiAlcyBwYXNzZWQgYmFkIGZpbHBcbiIsIGZ1bmMpOwogCQlyZXR1cm4gMTsKIAl9CkBAIC0xNDU5LDE4ICsxNDYxLDE5IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9faW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCi0JCSAgICB1X2ludCBjbWQsIHVfbG9uZyBhcmcpCitzdGF0aWMgbG9uZyBkb19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdV9pbnQgY21kLCB1X2xvbmcgYXJnKQogewogCXN0cnVjdCBhcG1fdXNlciAqYXM7CisJaW50IHJldDsKIAogCWFzID0gZmlscC0+cHJpdmF0ZV9kYXRhOwogCWlmIChjaGVja19hcG1fdXNlcihhcywgImlvY3RsIikpCiAJCXJldHVybiAtRUlPOwotCWlmICgoIWFzLT5zdXNlcikgfHwgKCFhcy0+d3JpdGVyKSkKKwlpZiAoIWFzLT5zdXNlciB8fCAhYXMtPndyaXRlcikKIAkJcmV0dXJuIC1FUEVSTTsKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgQVBNX0lPQ19TVEFOREJZOgorCQlsb2NrX2tlcm5lbCgpOwogCQlpZiAoYXMtPnN0YW5kYnlzX3JlYWQgPiAwKSB7CiAJCQlhcy0+c3RhbmRieXNfcmVhZC0tOwogCQkJYXMtPnN0YW5kYnlzX3BlbmRpbmctLTsKQEAgLTE0NzksOCArMTQ4MiwxMCBAQAogCQkJcXVldWVfZXZlbnQoQVBNX1VTRVJfU1RBTkRCWSwgYXMpOwogCQlpZiAoc3RhbmRieXNfcGVuZGluZyA8PSAwKQogCQkJc3RhbmRieSgpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCWJyZWFrOwogCWNhc2UgQVBNX0lPQ19TVVNQRU5EOgorCQlsb2NrX2tlcm5lbCgpOwogCQlpZiAoYXMtPnN1c3BlbmRzX3JlYWQgPiAwKSB7CiAJCQlhcy0+c3VzcGVuZHNfcmVhZC0tOwogCQkJYXMtPnN1c3BlbmRzX3BlbmRpbmctLTsKQEAgLTE0ODgsMTYgKzE0OTMsMTcgQEAKIAkJfSBlbHNlCiAJCQlxdWV1ZV9ldmVudChBUE1fVVNFUl9TVVNQRU5ELCBhcyk7CiAJCWlmIChzdXNwZW5kc19wZW5kaW5nIDw9IDApIHsKLQkJCXJldHVybiBzdXNwZW5kKDEpOworCQkJcmV0ID0gc3VzcGVuZCgxKTsKIAkJfSBlbHNlIHsKIAkJCWFzLT5zdXNwZW5kX3dhaXQgPSAxOwogCQkJd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGFwbV9zdXNwZW5kX3dhaXRxdWV1ZSwKIAkJCQkJYXMtPnN1c3BlbmRfd2FpdCA9PSAwKTsKLQkJCXJldHVybiBhcy0+c3VzcGVuZF9yZXN1bHQ7CisJCQlyZXQgPSBhcy0+c3VzcGVuZF9yZXN1bHQ7CiAJCX0KLQkJYnJlYWs7CisJCXVubG9ja19rZXJuZWwoKTsKKwkJcmV0dXJuIHJldDsKIAlkZWZhdWx0OgotCQlyZXR1cm4gLUVJTlZBTDsKKwkJcmV0dXJuIC1FTk9UVFk7CiAJfQogCXJldHVybiAwOwogfQpAQCAtMTU0NCwxMCArMTU1MCwxMiBAQAogewogCXN0cnVjdCBhcG1fdXNlciAqYXM7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWFzID0ga21hbGxvYyhzaXplb2YoKmFzKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKGFzID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJhcG06IGNhbm5vdCBhbGxvY2F0ZSBzdHJ1Y3Qgb2Ygc2l6ZSAlZCBieXRlc1xuIiwKIAkJICAgICAgIHNpemVvZigqYXMpKTsKKwkJICAgICAgIHVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCWFzLT5tYWdpYyA9IEFQTV9CSU9TX01BR0lDOwpAQCAtMTU2OSw2ICsxNTc3LDcgQEAKIAl1c2VyX2xpc3QgPSBhczsKIAlzcGluX3VubG9jaygmdXNlcl9saXN0X2xvY2spOwogCWZpbHAtPnByaXZhdGVfZGF0YSA9IGFzOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTg2MCw3ICsxODY5LDcgQEAKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLnJlYWQJCT0gZG9fcmVhZCwKIAkucG9sbAkJPSBkb19wb2xsLAotCS5pb2N0bAkJPSBkb19pb2N0bCwKKwkudW5sb2NrZWRfaW9jdGwJPSBkb19pb2N0bCwKIAkub3BlbgkJPSBkb19vcGVuLAogCS5yZWxlYXNlCT0gZG9fcmVsZWFzZSwKIH07CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCmluZGV4IDkyNTg4MDguLjY2NDlkMDkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCkBAIC0xMTEsNyArMTExLDcgQEAKIAlPRkZTRVQoUFZfSVJRX2lycV9kaXNhYmxlLCBwdl9pcnFfb3BzLCBpcnFfZGlzYWJsZSk7CiAJT0ZGU0VUKFBWX0lSUV9pcnFfZW5hYmxlLCBwdl9pcnFfb3BzLCBpcnFfZW5hYmxlKTsKIAlPRkZTRVQoUFZfQ1BVX2lyZXQsIHB2X2NwdV9vcHMsIGlyZXQpOwotCU9GRlNFVChQVl9DUFVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCwgcHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNjYWxsX3JldCk7CisJT0ZGU0VUKFBWX0NQVV9pcnFfZW5hYmxlX3N5c2V4aXQsIHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzZXhpdCk7CiAJT0ZGU0VUKFBWX0NQVV9yZWFkX2NyMCwgcHZfY3B1X29wcywgcmVhZF9jcjApOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5jIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKaW5kZXggZjEyNmMwNS4uYmFjZjVkZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKQEAgLTM0LDcgKzM0LDcgQEAKIAlFTlRSWShwaWQpOwogCUJMQU5LKCk7CiAjdW5kZWYgRU5UUlkKLSNkZWZpbmUgRU5UUlkoZW50cnkpIERFRklORSh0aHJlYWRpbmZvXyAjIyBlbnRyeSwgb2Zmc2V0b2Yoc3RydWN0IHRocmVhZF9pbmZvLCBlbnRyeSkpCisjZGVmaW5lIEVOVFJZKGVudHJ5KSBERUZJTkUoVElfICMjIGVudHJ5LCBvZmZzZXRvZihzdHJ1Y3QgdGhyZWFkX2luZm8sIGVudHJ5KSkKIAlFTlRSWShmbGFncyk7CiAJRU5UUlkoYWRkcl9saW1pdCk7CiAJRU5UUlkocHJlZW1wdF9jb3VudCk7CkBAIC02MSw4ICs2MSwxMSBAQAogCU9GRlNFVChQQVJBVklSVF9QQVRDSF9wdl9pcnFfb3BzLCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgcHZfaXJxX29wcyk7CiAJT0ZGU0VUKFBWX0lSUV9pcnFfZGlzYWJsZSwgcHZfaXJxX29wcywgaXJxX2Rpc2FibGUpOwogCU9GRlNFVChQVl9JUlFfaXJxX2VuYWJsZSwgcHZfaXJxX29wcywgaXJxX2VuYWJsZSk7CisJT0ZGU0VUKFBWX0lSUV9hZGp1c3RfZXhjZXB0aW9uX2ZyYW1lLCBwdl9pcnFfb3BzLCBhZGp1c3RfZXhjZXB0aW9uX2ZyYW1lKTsKIAlPRkZTRVQoUFZfQ1BVX2lyZXQsIHB2X2NwdV9vcHMsIGlyZXQpOwotCU9GRlNFVChQVl9DUFVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCwgcHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNjYWxsX3JldCk7CisJT0ZGU0VUKFBWX0NQVV91c2VyZ3Nfc3lzcmV0MzIsIHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQzMik7CisJT0ZGU0VUKFBWX0NQVV91c2VyZ3Nfc3lzcmV0NjQsIHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQ2NCk7CisJT0ZGU0VUKFBWX0NQVV9pcnFfZW5hYmxlX3N5c2V4aXQsIHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzZXhpdCk7CiAJT0ZGU0VUKFBWX0NQVV9zd2FwZ3MsIHB2X2NwdV9vcHMsIHN3YXBncyk7CiAJT0ZGU0VUKFBWX01NVV9yZWFkX2NyMiwgcHZfbW11X29wcywgcmVhZF9jcjIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L01ha2VmaWxlIGIvYXJjaC94ODYva2VybmVsL2NwdS9NYWtlZmlsZQppbmRleCBhMGM2ZjgxLi5lZTc2ZWFhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L01ha2VmaWxlCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvTWFrZWZpbGUKQEAgLTYsMTEgKzYsMTUgQEAKIG9iai15CQkJKz0gcHJvYy5vIGZlYXR1cmVfbmFtZXMubwogCiBvYmotJChDT05GSUdfWDg2XzMyKQkrPSBjb21tb24ubyBidWdzLm8KK29iai0kKENPTkZJR19YODZfNjQpCSs9IGNvbW1vbl82NC5vIGJ1Z3NfNjQubwogb2JqLSQoQ09ORklHX1g4Nl8zMikJKz0gYW1kLm8KK29iai0kKENPTkZJR19YODZfNjQpCSs9IGFtZF82NC5vCiBvYmotJChDT05GSUdfWDg2XzMyKQkrPSBjeXJpeC5vCiBvYmotJChDT05GSUdfWDg2XzMyKQkrPSBjZW50YXVyLm8KK29iai0kKENPTkZJR19YODZfNjQpCSs9IGNlbnRhdXJfNjQubwogb2JqLSQoQ09ORklHX1g4Nl8zMikJKz0gdHJhbnNtZXRhLm8KIG9iai0kKENPTkZJR19YODZfMzIpCSs9IGludGVsLm8KK29iai0kKENPTkZJR19YODZfNjQpCSs9IGludGVsXzY0Lm8KIG9iai0kKENPTkZJR19YODZfMzIpCSs9IHVtYy5vCiAKIG9iai0kKENPTkZJR19YODZfTUNFKQkrPSBtY2hlY2svCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FkZG9uX2NwdWlkX2ZlYXR1cmVzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FkZG9uX2NwdWlkX2ZlYXR1cmVzLmMKaW5kZXggYzJlMWNlMy4uODRhODIyMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9hZGRvbl9jcHVpZF9mZWF0dXJlcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvYWRkb25fY3B1aWRfZmVhdHVyZXMuYwpAQCAtMSw5ICsxLDcgQEAKLQogLyoKICAqCVJvdXRpbmVzIHRvIGluZGVudGlmeSBhZGRpdGlvbmFsIGNwdSBmZWF0dXJlcyB0aGF0IGFyZSBzY2F0dGVyZWQgaW4KICAqCWNwdWlkIHNwYWNlLgogICovCi0KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KIAogI2luY2x1ZGUgPGFzbS9wYXQuaD4KQEAgLTUzLDE5ICs1MSwyMCBAQAogI2lmZGVmIENPTkZJR19YODZfUEFUCiB2b2lkIF9fY3B1aW5pdCB2YWxpZGF0ZV9wYXRfc3VwcG9ydChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CisJaWYgKCFjcHVfaGFzX3BhdCkKKwkJcGF0X2Rpc2FibGUoIlBBVCBub3Qgc3VwcG9ydGVkIGJ5IENQVS4iKTsKKwogCXN3aXRjaCAoYy0+eDg2X3ZlbmRvcikgewotCWNhc2UgWDg2X1ZFTkRPUl9BTUQ6Ci0JCWlmIChjLT54ODYgPj0gMHhmICYmIGMtPng4NiA8PSAweDExKQotCQkJcmV0dXJuOwotCQlicmVhazsKIAljYXNlIFg4Nl9WRU5ET1JfSU5URUw6CiAJCWlmIChjLT54ODYgPT0gMHhGIHx8IChjLT54ODYgPT0gNiAmJiBjLT54ODZfbW9kZWwgPj0gMTUpKQogCQkJcmV0dXJuOwogCQlicmVhazsKKwljYXNlIFg4Nl9WRU5ET1JfQU1EOgorCWNhc2UgWDg2X1ZFTkRPUl9DRU5UQVVSOgorCWNhc2UgWDg2X1ZFTkRPUl9UUkFOU01FVEE6CisJCXJldHVybjsKIAl9CiAKLQlwYXRfZGlzYWJsZShjcHVfaGFzX3BhdCA/Ci0JCSAgICAiUEFUIGRpc2FibGVkLiBOb3QgeWV0IHZlcmlmaWVkIG9uIHRoaXMgQ1BVIHR5cGUuIiA6Ci0JCSAgICAiUEFUIG5vdCBzdXBwb3J0ZWQgYnkgQ1BVLiIpOworCXBhdF9kaXNhYmxlKCJQQVQgZGlzYWJsZWQuIE5vdCB5ZXQgdmVyaWZpZWQgb24gdGhpcyBDUFUgdHlwZS4iKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kLmMKaW5kZXggMjQ1ODY2OC4uODFhMDdjYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FtZC5jCkBAIC0yNCw0MyArMjQsNiBAQAogZXh0ZXJuIHZvaWQgdmlkZSh2b2lkKTsKIF9fYXNtX18oIi5hbGlnbiA0XG52aWRlOiByZXQiKTsKIAotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotI2RlZmluZSBFTkFCTEVfQzFFX01BU0sgICAgICAgICAweDE4MDAwMDAwCi0jZGVmaW5lIENQVUlEX1BST0NFU1NPUl9TSUdOQVRVUkUgICAgICAgMQotI2RlZmluZSBDUFVJRF9YRkFNICAgICAgICAgICAgICAweDBmZjAwMDAwCi0jZGVmaW5lIENQVUlEX1hGQU1fSzggICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ1BVSURfWEZBTV8xMEggICAgICAgICAgMHgwMDEwMDAwMAotI2RlZmluZSBDUFVJRF9YRkFNXzExSCAgICAgICAgICAweDAwMjAwMDAwCi0jZGVmaW5lIENQVUlEX1hNT0QgICAgICAgICAgICAgIDB4MDAwZjAwMDAKLSNkZWZpbmUgQ1BVSURfWE1PRF9SRVZfRiAgICAgICAgMHgwMDA0MDAwMAotCi0vKiBBTUQgc3lzdGVtcyB3aXRoIEMxRSBkb24ndCBoYXZlIGEgd29ya2luZyBsQVBJQyB0aW1lci4gQ2hlY2sgZm9yIHRoYXQuICovCi1zdGF0aWMgX19jcHVpbml0IGludCBhbWRfYXBpY190aW1lcl9icm9rZW4odm9pZCkKLXsKLQl1MzIgbG8sIGhpOwotCXUzMiBlYXggPSBjcHVpZF9lYXgoQ1BVSURfUFJPQ0VTU09SX1NJR05BVFVSRSk7Ci0Jc3dpdGNoIChlYXggJiBDUFVJRF9YRkFNKSB7Ci0JY2FzZSBDUFVJRF9YRkFNX0s4OgotCQlpZiAoKGVheCAmIENQVUlEX1hNT0QpIDwgQ1BVSURfWE1PRF9SRVZfRikKLQkJCWJyZWFrOwotCWNhc2UgQ1BVSURfWEZBTV8xMEg6Ci0JY2FzZSBDUFVJRF9YRkFNXzExSDoKLQkJcmRtc3IoTVNSX0s4X0VOQUJMRV9DMUUsIGxvLCBoaSk7Ci0JCWlmIChsbyAmIEVOQUJMRV9DMUVfTUFTSykgewotCQkJaWYgKHNtcF9wcm9jZXNzb3JfaWQoKSAhPSBib290X2NwdV9waHlzaWNhbF9hcGljaWQpCi0JCQkJcHJpbnRrKEtFUk5fSU5GTyAiQU1EIEMxRSBkZXRlY3RlZCBsYXRlLiAiCi0JCQkJICAgICAgICIJRm9yY2UgdGltZXIgYnJvYWRjYXN0LlxuIik7Ci0JCQlyZXR1cm4gMTsKLQkJfQotCQlicmVhazsKLQlkZWZhdWx0OgotCQkvKiBlcnIgb24gdGhlIHNpZGUgb2YgY2F1dGlvbiAqLwotCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQogaW50IGZvcmNlX213YWl0IF9fY3B1aW5pdGRhdGE7CiAKIHN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCkBAIC0yOTcsMTEgKzI2MCw2IEBACiAJCQludW1fY2FjaGVfbGVhdmVzID0gMzsKIAl9CiAKLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLQlpZiAoYW1kX2FwaWNfdGltZXJfYnJva2VuKCkpCi0JCWxvY2FsX2FwaWNfdGltZXJfZGlzYWJsZWQgPSAxOwotI2VuZGlmCi0KIAkvKiBLNnMgcmVwb3J0cyBNQ0VzIGJ1dCBkb24ndCBhY3R1YWxseSBoYXZlIGFsbCB0aGUgTVNScyAqLwogCWlmIChjLT54ODYgPCA2KQogCQljbGVhcl9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX01DRSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FtZF82NC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9hbWRfNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzM2ZmI4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9hbWRfNjQuYwpAQCAtMCwwICsxLDIyMiBAQAorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorCisjaW5jbHVkZSA8YXNtL251bWFfNjQuaD4KKyNpbmNsdWRlIDxhc20vbW1jb25maWcuaD4KKyNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgorCisjaW5jbHVkZSA8bWFjaF9hcGljLmg+CisKKyNpbmNsdWRlICJjcHUuaCIKKworaW50IGZvcmNlX213YWl0IF9fY3B1aW5pdGRhdGE7CisKKyNpZmRlZiBDT05GSUdfTlVNQQorc3RhdGljIGludCBfX2NwdWluaXQgbmVhcmJ5X25vZGUoaW50IGFwaWNpZCkKK3sKKwlpbnQgaSwgbm9kZTsKKworCWZvciAoaSA9IGFwaWNpZCAtIDE7IGkgPj0gMDsgaS0tKSB7CisJCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtpXTsKKwkJaWYgKG5vZGUgIT0gTlVNQV9OT19OT0RFICYmIG5vZGVfb25saW5lKG5vZGUpKQorCQkJcmV0dXJuIG5vZGU7CisJfQorCWZvciAoaSA9IGFwaWNpZCArIDE7IGkgPCBNQVhfTE9DQUxfQVBJQzsgaSsrKSB7CisJCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtpXTsKKwkJaWYgKG5vZGUgIT0gTlVNQV9OT19OT0RFICYmIG5vZGVfb25saW5lKG5vZGUpKQorCQkJcmV0dXJuIG5vZGU7CisJfQorCXJldHVybiBmaXJzdF9ub2RlKG5vZGVfb25saW5lX21hcCk7IC8qIFNob3VsZG4ndCBoYXBwZW4gKi8KK30KKyNlbmRpZgorCisvKgorICogT24gYSBBTUQgZHVhbCBjb3JlIHNldHVwIHRoZSBsb3dlciBiaXRzIG9mIHRoZSBBUElDIGlkIGRpc3Rpbmd1c2ggdGhlIGNvcmVzLgorICogQXNzdW1lcyBudW1iZXIgb2YgY29yZXMgaXMgYSBwb3dlciBvZiB0d28uCisgKi8KK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBhbWRfZGV0ZWN0X2NtcChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisjaWZkZWYgQ09ORklHX1NNUAorCXVuc2lnbmVkIGJpdHM7CisjaWZkZWYgQ09ORklHX05VTUEKKwlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCWludCBub2RlID0gMDsKKwl1bnNpZ25lZCBhcGljaWQgPSBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKTsKKyNlbmRpZgorCWJpdHMgPSBjLT54ODZfY29yZWlkX2JpdHM7CisKKwkvKiBMb3cgb3JkZXIgYml0cyBkZWZpbmUgdGhlIGNvcmUgaWQgKGluZGV4IG9mIGNvcmUgaW4gc29ja2V0KSAqLworCWMtPmNwdV9jb3JlX2lkID0gYy0+aW5pdGlhbF9hcGljaWQgJiAoKDEgPDwgYml0cyktMSk7CisJLyogQ29udmVydCB0aGUgaW5pdGlhbCBBUElDIElEIGludG8gdGhlIHNvY2tldCBJRCAqLworCWMtPnBoeXNfcHJvY19pZCA9IGMtPmluaXRpYWxfYXBpY2lkID4+IGJpdHM7CisKKyNpZmRlZiBDT05GSUdfTlVNQQorCW5vZGUgPSBjLT5waHlzX3Byb2NfaWQ7CisJaWYgKGFwaWNpZF90b19ub2RlW2FwaWNpZF0gIT0gTlVNQV9OT19OT0RFKQorCQlub2RlID0gYXBpY2lkX3RvX25vZGVbYXBpY2lkXTsKKwlpZiAoIW5vZGVfb25saW5lKG5vZGUpKSB7CisJCS8qIFR3byBwb3NzaWJpbGl0aWVzIGhlcmU6CisJCSAgIC0gVGhlIENQVSBpcyBtaXNzaW5nIG1lbW9yeSBhbmQgbm8gbm9kZSB3YXMgY3JlYXRlZC4KKwkJICAgSW4gdGhhdCBjYXNlIHRyeSBwaWNraW5nIG9uZSBmcm9tIGEgbmVhcmJ5IENQVQorCQkgICAtIFRoZSBBUElDIElEcyBkaWZmZXIgZnJvbSB0aGUgSHlwZXJUcmFuc3BvcnQgbm9kZSBJRHMKKwkJICAgd2hpY2ggdGhlIEs4IG5vcnRoYnJpZGdlIHBhcnNpbmcgZmlsbHMgaW4uCisJCSAgIEFzc3VtZSB0aGV5IGFyZSBhbGwgaW5jcmVhc2VkIGJ5IGEgY29uc3RhbnQgb2Zmc2V0LAorCQkgICBidXQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIEhUIG5vZGVpZHMuCisJCSAgIElmIHRoYXQgZG9lc24ndCByZXN1bHQgaW4gYSB1c2FibGUgbm9kZSBmYWxsIGJhY2sgdG8gdGhlCisJCSAgIHBhdGggZm9yIHRoZSBwcmV2aW91cyBjYXNlLiAgKi8KKworCQlpbnQgaHRfbm9kZWlkID0gYy0+aW5pdGlhbF9hcGljaWQ7CisKKwkJaWYgKGh0X25vZGVpZCA+PSAwICYmCisJCSAgICBhcGljaWRfdG9fbm9kZVtodF9ub2RlaWRdICE9IE5VTUFfTk9fTk9ERSkKKwkJCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtodF9ub2RlaWRdOworCQkvKiBQaWNrIGEgbmVhcmJ5IG5vZGUgKi8KKwkJaWYgKCFub2RlX29ubGluZShub2RlKSkKKwkJCW5vZGUgPSBuZWFyYnlfbm9kZShhcGljaWQpOworCX0KKwludW1hX3NldF9ub2RlKGNwdSwgbm9kZSk7CisKKwlwcmludGsoS0VSTl9JTkZPICJDUFUgJWQvJXggLT4gTm9kZSAlZFxuIiwgY3B1LCBhcGljaWQsIG5vZGUpOworI2VuZGlmCisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2luaXRfYW1kX21jKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKyNpZmRlZiBDT05GSUdfU01QCisJdW5zaWduZWQgYml0cywgZWN4OworCisJLyogTXVsdGkgY29yZSBDUFU/ICovCisJaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsIDwgMHg4MDAwMDAwOCkKKwkJcmV0dXJuOworCisJZWN4ID0gY3B1aWRfZWN4KDB4ODAwMDAwMDgpOworCisJYy0+eDg2X21heF9jb3JlcyA9IChlY3ggJiAweGZmKSArIDE7CisKKwkvKiBDUFUgdGVsbGluZyB1cyB0aGUgY29yZSBpZCBiaXRzIHNoaWZ0PyAqLworCWJpdHMgPSAoZWN4ID4+IDEyKSAmIDB4RjsKKworCS8qIE90aGVyd2lzZSByZWNvbXB1dGUgKi8KKwlpZiAoYml0cyA9PSAwKSB7CisJCXdoaWxlICgoMSA8PCBiaXRzKSA8IGMtPng4Nl9tYXhfY29yZXMpCisJCQliaXRzKys7CisJfQorCisJYy0+eDg2X2NvcmVpZF9iaXRzID0gYml0czsKKworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJZWFybHlfaW5pdF9hbWRfbWMoYyk7CisKKwkvKiBjLT54ODZfcG93ZXIgaXMgODAwMF8wMDA3IGVkeC4gQml0IDggaXMgY29uc3RhbnQgVFNDICovCisJaWYgKGMtPng4Nl9wb3dlciAmICgxPDw4KSkKKwkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKTsKK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IGluaXRfYW1kKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwl1bnNpZ25lZCBsZXZlbDsKKworI2lmZGVmIENPTkZJR19TTVAKKwl1bnNpZ25lZCBsb25nIHZhbHVlOworCisJLyoKKwkgKiBEaXNhYmxlIFRMQiBmbHVzaCBmaWx0ZXIgYnkgc2V0dGluZyBIV0NSLkZGRElTIG9uIEs4CisJICogYml0IDYgb2YgbXNyIEMwMDFfMDAxNQorCSAqCisJICogRXJyYXRhIDYzIGZvciBTSC1CMyBzdGVwcGluZ3MKKwkgKiBFcnJhdGEgMTIyIGZvciBhbGwgc3RlcHBpbmdzIChGKyBoYXZlIGl0IGRpc2FibGVkIGJ5IGRlZmF1bHQpCisJICovCisJaWYgKGMtPng4NiA9PSAweGYpIHsKKwkJcmRtc3JsKE1TUl9LOF9IV0NSLCB2YWx1ZSk7CisJCXZhbHVlIHw9IDEgPDwgNjsKKwkJd3Jtc3JsKE1TUl9LOF9IV0NSLCB2YWx1ZSk7CisJfQorI2VuZGlmCisKKwkvKiBCaXQgMzEgaW4gbm9ybWFsIENQVUlEIHVzZWQgZm9yIG5vbnN0YW5kYXJkIDNETm93IElEOworCSAgIDNETm93IGlzIElEZCBieSBiaXQgMzEgaW4gZXh0ZW5kZWQgQ1BVSUQgKDEqMzIrMzEpIGFueXdheSAqLworCWNsZWFyX2NwdV9jYXAoYywgMCozMiszMSk7CisKKwkvKiBPbiBDKyBzdGVwcGluZyBLOCByZXAgbWljcm9jb2RlIHdvcmtzIHdlbGwgZm9yIGNvcHkvbWVtc2V0ICovCisJaWYgKGMtPng4NiA9PSAweGYpIHsKKwkJbGV2ZWwgPSBjcHVpZF9lYXgoMSk7CisJCWlmKChsZXZlbCA+PSAweDBmNDggJiYgbGV2ZWwgPCAweDBmNTApIHx8IGxldmVsID49IDB4MGY1OCkKKwkJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX1JFUF9HT09EKTsKKwl9CisJaWYgKGMtPng4NiA9PSAweDEwIHx8IGMtPng4NiA9PSAweDExKQorCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9SRVBfR09PRCk7CisKKwkvKiBFbmFibGUgd29ya2Fyb3VuZCBmb3IgRlhTQVZFIGxlYWsgKi8KKwlpZiAoYy0+eDg2ID49IDYpCisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0ZYU0FWRV9MRUFLKTsKKworCWxldmVsID0gZ2V0X21vZGVsX25hbWUoYyk7CisJaWYgKCFsZXZlbCkgeworCQlzd2l0Y2ggKGMtPng4NikgeworCQljYXNlIDB4ZjoKKwkJCS8qIFNob3VsZCBkaXN0aW5ndWlzaCBNb2RlbHMgaGVyZSwgYnV0IHRoaXMgaXMgb25seQorCQkJICAgYSBmYWxsYmFjayBhbnl3YXlzLiAqLworCQkJc3RyY3B5KGMtPng4Nl9tb2RlbF9pZCwgIkhhbW1lciIpOworCQkJYnJlYWs7CisJCX0KKwl9CisJZGlzcGxheV9jYWNoZWluZm8oYyk7CisKKwkvKiBNdWx0aSBjb3JlIENQVT8gKi8KKwlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKKwkJYW1kX2RldGVjdF9jbXAoYyk7CisKKwlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwNiAmJgorCQkoY3B1aWRfZWR4KDB4ODAwMDAwMDYpICYgMHhmMDAwKSkKKwkJbnVtX2NhY2hlX2xlYXZlcyA9IDQ7CisJZWxzZQorCQludW1fY2FjaGVfbGVhdmVzID0gMzsKKworCWlmIChjLT54ODYgPj0gMHhmICYmIGMtPng4NiA8PSAweDExKQorCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9LOCk7CisKKwkvKiBNRkVOQ0Ugc3RvcHMgUkRUU0Mgc3BlY3VsYXRpb24gKi8KKwlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9NRkVOQ0VfUkRUU0MpOworCisJaWYgKGMtPng4NiA9PSAweDEwKSB7CisJCS8qIGRvIHRoaXMgZm9yIGJvb3QgY3B1ICovCisJCWlmIChjID09ICZib290X2NwdV9kYXRhKQorCQkJY2hlY2tfZW5hYmxlX2FtZF9tbWNvbmZfZG1pKCk7CisKKwkJZmFtMTBoX2NoZWNrX2VuYWJsZV9tbWNmZygpOworCX0KKworCWlmIChjID09ICZib290X2NwdV9kYXRhICYmIGMtPng4NiA+PSAweGYgJiYgYy0+eDg2IDw9IDB4MTEpIHsKKwkJdW5zaWduZWQgbG9uZyBsb25nIHRzZWc7CisKKwkJLyoKKwkJICogU3BsaXQgdXAgZGlyZWN0IG1hcHBpbmcgYXJvdW5kIHRoZSBUU0VHIFNNTSBhcmVhLgorCQkgKiBEb24ndCBkbyBpdCBmb3IgZ2JwYWdlcyBiZWNhdXNlIHRoZXJlIHNlZW1zIHZlcnkgbGl0dGxlCisJCSAqIGJlbmVmaXQgaW4gZG9pbmcgc28uCisJCSAqLworCQlpZiAoIXJkbXNybF9zYWZlKE1TUl9LOF9UU0VHX0FERFIsICZ0c2VnKSkgeworCQkgICAgcHJpbnRrKEtFUk5fREVCVUcgInRzZWc6ICUwMTBsbHhcbiIsIHRzZWcpOworCQkgICAgaWYgKCh0c2VnPj5QTURfU0hJRlQpIDwKKwkJCQkobWF4X2xvd19wZm5fbWFwcGVkPj4oUE1EX1NISUZULVBBR0VfU0hJRlQpKSB8fAorCQkJKCh0c2VnPj5QTURfU0hJRlQpIDwKKwkJCQkobWF4X3Bmbl9tYXBwZWQ+PihQTURfU0hJRlQtUEFHRV9TSElGVCkpICYmCisJCQkgKHRzZWc+PlBNRF9TSElGVCkgPj0gKDFVTEw8PCgzMiAtIFBNRF9TSElGVCkpKSkKKwkJCXNldF9tZW1vcnlfNGsoKHVuc2lnbmVkIGxvbmcpX192YSh0c2VnKSwgMSk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3B1X2RldiBhbWRfY3B1X2RldiBfX2NwdWluaXRkYXRhID0geworCS5jX3ZlbmRvcgk9ICJBTUQiLAorCS5jX2lkZW50CT0geyAiQXV0aGVudGljQU1EIiB9LAorCS5jX2Vhcmx5X2luaXQgICA9IGVhcmx5X2luaXRfYW1kLAorCS5jX2luaXQJCT0gaW5pdF9hbWQsCit9OworCitjcHVfdmVuZG9yX2Rldl9yZWdpc3RlcihYODZfVkVORE9SX0FNRCwgJmFtZF9jcHVfZGV2KTsKKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3MuYwppbmRleCAxNzBkMmY1Li4xYjFjNTZiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3MuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3MuYwpAQCAtNTksOCArNTksMTIgQEAKIAkJcmV0dXJuOwogCX0KIAotLyogdHJhcF9pbml0KCkgZW5hYmxlZCBGWFNSIGFuZCBjb21wYW55IF9iZWZvcmVfIHRlc3RpbmcgZm9yIEZQIHByb2JsZW1zIGhlcmUuICovCi0JLyogVGVzdCBmb3IgdGhlIGRpdmwgYnVnLi4gKi8KKwkvKgorCSAqIHRyYXBfaW5pdCgpIGVuYWJsZWQgRlhTUiBhbmQgY29tcGFueSBfYmVmb3JlXyB0ZXN0aW5nIGZvciBGUAorCSAqIHByb2JsZW1zIGhlcmUuCisJICoKKwkgKiBUZXN0IGZvciB0aGUgZGl2bCBidWcuLgorCSAqLwogCV9fYXNtX18oImZuaW5pdFxuXHQiCiAJCSJmbGRsICUxXG5cdCIKIAkJImZkaXZsICUyXG5cdCIKQEAgLTEwOCwxMCArMTEyLDE1IEBACiAJICAibW92bCAkMTIzNDU2NzgsJSVlYXg7IG1vdmwgJDAsJSVlZGk7IHB1c2hhOyBwb3BhOyBtb3ZsICglJWVkeCwlJWVkaSksJSVlY3ggIgogCSAgOiAiPSZhIiAocmVzKQogCSAgOiAiZCIgKGlucCkKLQkgIDogImVjeCIsICJlZGkiICk7Ci0JLyogSWYgdGhpcyBmYWlscywgaXQgbWVhbnMgdGhhdCBhbnkgdXNlciBwcm9ncmFtIG1heSBsb2NrIHRoZSBDUFUgaGFyZC4gVG9vIGJhZC4gKi8KLQlpZiAocmVzICE9IDEyMzQ1Njc4KSBwcmludGsoICJCdWdneS5cbiIgKTsKLQkJICAgICAgICBlbHNlIHByaW50ayggIk9LLlxuIiApOworCSAgOiAiZWN4IiwgImVkaSIpOworCS8qCisJICogSWYgdGhpcyBmYWlscywgaXQgbWVhbnMgdGhhdCBhbnkgdXNlciBwcm9ncmFtIG1heSBsb2NrIHRoZQorCSAqIENQVSBoYXJkLiBUb28gYmFkLgorCSAqLworCWlmIChyZXMgIT0gMTIzNDU2NzgpCisJCXByaW50aygiQnVnZ3kuXG4iKTsKKwllbHNlCisJCXByaW50aygiT0suXG4iKTsKICNlbmRpZgogfQogCkBAIC0xMzcsNyArMTQ2LDggQEAKICAqIGk0ODYrIG9ubHkgZmVhdHVyZXMhIChXUCB3b3JrcyBpbiBzdXBlcnZpc29yIG1vZGUgYW5kIHRoZQogICogbmV3ICJpbnZscGciIGFuZCAiYnN3YXAiIGluc3RydWN0aW9ucykKICAqLwotI2lmIGRlZmluZWQoQ09ORklHX1g4Nl9XUF9XT1JLU19PSykgfHwgZGVmaW5lZChDT05GSUdfWDg2X0lOVkxQRykgfHwgZGVmaW5lZChDT05GSUdfWDg2X0JTV0FQKQorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl9XUF9XT1JLU19PSykgfHwgZGVmaW5lZChDT05GSUdfWDg2X0lOVkxQRykgfHwgXAorCWRlZmluZWQoQ09ORklHX1g4Nl9CU1dBUCkKIAlpZiAoYm9vdF9jcHVfZGF0YS54ODYgPT0gMykKIAkJcGFuaWMoIktlcm5lbCByZXF1aXJlcyBpNDg2KyBmb3IgJ2ludmxwZycgYW5kIG90aGVyIGZlYXR1cmVzIik7CiAjZW5kaWYKQEAgLTE3MCw2ICsxODAsNyBAQAogCWNoZWNrX2ZwdSgpOwogCWNoZWNrX2hsdCgpOwogCWNoZWNrX3BvcGFkKCk7Ci0JaW5pdF91dHNuYW1lKCktPm1hY2hpbmVbMV0gPSAnMCcgKyAoYm9vdF9jcHVfZGF0YS54ODYgPiA2ID8gNiA6IGJvb3RfY3B1X2RhdGEueDg2KTsKKwlpbml0X3V0c25hbWUoKS0+bWFjaGluZVsxXSA9CisJCScwJyArIChib290X2NwdV9kYXRhLng4NiA+IDYgPyA2IDogYm9vdF9jcHVfZGF0YS54ODYpOwogCWFsdGVybmF0aXZlX2luc3RydWN0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2J1Z3NfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvYnVnc182NC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBhcmNoL3g4Ni9rZXJuZWwvYnVnc182NC5jCnJlbmFtZSB0byBhcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3NfNjQuYwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9jZW50YXVyXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NlbnRhdXJfNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDE4MWM0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9jZW50YXVyXzY0LmMKQEAgLTAsMCArMSwzNSBAQAorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXAuaD4KKworI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgorCisjaW5jbHVkZSAiY3B1LmgiCisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2NlbnRhdXIoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWlmIChjLT54ODYgPT0gMHg2ICYmIGMtPng4Nl9tb2RlbCA+PSAweGYpCisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7CisKKwlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9TWVNFTlRFUjMyKTsKK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IGluaXRfY2VudGF1cihzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJaWYgKGMtPng4NiA9PSAweDYgJiYgYy0+eDg2X21vZGVsID49IDB4ZikgeworCQljLT54ODZfY2FjaGVfYWxpZ25tZW50ID0gYy0+eDg2X2NsZmx1c2hfc2l6ZSAqIDI7CisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7CisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX1JFUF9HT09EKTsKKwl9CisJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfTEZFTkNFX1JEVFNDKTsKK30KKworc3RhdGljIHN0cnVjdCBjcHVfZGV2IGNlbnRhdXJfY3B1X2RldiBfX2NwdWluaXRkYXRhID0geworCS5jX3ZlbmRvcgk9ICJDZW50YXVyIiwKKwkuY19pZGVudAk9IHsgIkNlbnRhdXJIYXVscyIgfSwKKwkuY19lYXJseV9pbml0CT0gZWFybHlfaW5pdF9jZW50YXVyLAorCS5jX2luaXQJCT0gaW5pdF9jZW50YXVyLAorfTsKKworY3B1X3ZlbmRvcl9kZXZfcmVnaXN0ZXIoWDg2X1ZFTkRPUl9DRU5UQVVSLCAmY2VudGF1cl9jcHVfZGV2KTsKKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMKaW5kZXggZDA0NjNhOS4uODBhYjIwZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCkBAIC00MjcsNyArNDI3LDcgQEAKIC8qCiAgKiBUaGlzIGRvZXMgdGhlIGhhcmQgd29yayBvZiBhY3R1YWxseSBwaWNraW5nIGFwYXJ0IHRoZSBDUFUgc3R1ZmYuLi4KICAqLwotdm9pZCBfX2NwdWluaXQgaWRlbnRpZnlfY3B1KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBpZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKQogewogCWludCBpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbl82NC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb25fNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjhjYzcyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb25fNjQuYwpAQCAtMCwwICsxLDY4MSBAQAorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZ2RiLmg+CisjaW5jbHVkZSA8bGludXgvdG9wb2xvZ3kuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKyNpbmNsdWRlIDxhc20vaTM4Ny5oPgorI2luY2x1ZGUgPGFzbS9tc3IuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KKyNpbmNsdWRlIDxhc20vbXRyci5oPgorI2luY2x1ZGUgPGFzbS9tY2UuaD4KKyNpbmNsdWRlIDxhc20vcGF0Lmg+CisjaW5jbHVkZSA8YXNtL251bWEuaD4KKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKyNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGFzbS9wZGEuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKyNpbmNsdWRlIDxhc20vZGVzYy5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxhc20vcHJvdG8uaD4KKyNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vZ2VuYXBpYy5oPgorCisjaW5jbHVkZSAiY3B1LmgiCisKKy8qIFdlIG5lZWQgdmFsaWQga2VybmVsIHNlZ21lbnRzIGZvciBkYXRhIGFuZCBjb2RlIGluIGxvbmcgbW9kZSB0b28KKyAqIElSRVQgd2lsbCBjaGVjayB0aGUgc2VnbWVudCB0eXBlcyAga2tlaWwgMjAwMC8xMC8yOAorICogQWxzbyBzeXNyZXQgbWFuZGF0ZXMgYSBzcGVjaWFsIEdEVCBsYXlvdXQKKyAqLworLyogVGhlIFRMUyBkZXNjcmlwdG9ycyBhcmUgY3VycmVudGx5IGF0IGEgZGlmZmVyZW50IHBsYWNlIGNvbXBhcmVkIHRvIGkzODYuCisgICBIb3BlZnVsbHkgbm9ib2R5IGV4cGVjdHMgdGhlbSBhdCBhIGZpeGVkIHBsYWNlIChXaW5lPykgKi8KK0RFRklORV9QRVJfQ1BVKHN0cnVjdCBnZHRfcGFnZSwgZ2R0X3BhZ2UpID0geyAuZ2R0ID0geworCVtHRFRfRU5UUllfS0VSTkVMMzJfQ1NdID0geyB7IHsgMHgwMDAwZmZmZiwgMHgwMGNmOWIwMCB9IH0gfSwKKwlbR0RUX0VOVFJZX0tFUk5FTF9DU10gPSB7IHsgeyAweDAwMDBmZmZmLCAweDAwYWY5YjAwIH0gfSB9LAorCVtHRFRfRU5UUllfS0VSTkVMX0RTXSA9IHsgeyB7IDB4MDAwMGZmZmYsIDB4MDBjZjkzMDAgfSB9IH0sCisJW0dEVF9FTlRSWV9ERUZBVUxUX1VTRVIzMl9DU10gPSB7IHsgeyAweDAwMDBmZmZmLCAweDAwY2ZmYjAwIH0gfSB9LAorCVtHRFRfRU5UUllfREVGQVVMVF9VU0VSX0RTXSA9IHsgeyB7IDB4MDAwMGZmZmYsIDB4MDBjZmYzMDAgfSB9IH0sCisJW0dEVF9FTlRSWV9ERUZBVUxUX1VTRVJfQ1NdID0geyB7IHsgMHgwMDAwZmZmZiwgMHgwMGFmZmIwMCB9IH0gfSwKK30gfTsKK0VYUE9SVF9QRVJfQ1BVX1NZTUJPTF9HUEwoZ2R0X3BhZ2UpOworCitfX3UzMiBjbGVhcmVkX2NwdV9jYXBzW05DQVBJTlRTXSBfX2NwdWluaXRkYXRhOworCisvKiBDdXJyZW50IGdkdCBwb2ludHMgJWZzIGF0IHRoZSAibWFzdGVyIiBwZXItY3B1IGFyZWE6IGFmdGVyIHRoaXMsCisgKiBpdCdzIG9uIHRoZSByZWFsIG9uZS4gKi8KK3ZvaWQgc3dpdGNoX3RvX25ld19nZHQodm9pZCkKK3sKKwlzdHJ1Y3QgZGVzY19wdHIgZ2R0X2Rlc2NyOworCisJZ2R0X2Rlc2NyLmFkZHJlc3MgPSAobG9uZylnZXRfY3B1X2dkdF90YWJsZShzbXBfcHJvY2Vzc29yX2lkKCkpOworCWdkdF9kZXNjci5zaXplID0gR0RUX1NJWkUgLSAxOworCWxvYWRfZ2R0KCZnZHRfZGVzY3IpOworfQorCitzdHJ1Y3QgY3B1X2RldiAqY3B1X2RldnNbWDg2X1ZFTkRPUl9OVU1dID0ge307CisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBkZWZhdWx0X2luaXQoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWRpc3BsYXlfY2FjaGVpbmZvKGMpOworfQorCitzdGF0aWMgc3RydWN0IGNwdV9kZXYgX19jcHVpbml0ZGF0YSBkZWZhdWx0X2NwdSA9IHsKKwkuY19pbml0CT0gZGVmYXVsdF9pbml0LAorCS5jX3ZlbmRvciA9ICJVbmtub3duIiwKK307CitzdGF0aWMgc3RydWN0IGNwdV9kZXYgKnRoaXNfY3B1IF9fY3B1aW5pdGRhdGEgPSAmZGVmYXVsdF9jcHU7CisKK2ludCBfX2NwdWluaXQgZ2V0X21vZGVsX25hbWUoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCXVuc2lnbmVkIGludCAqdjsKKworCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA8IDB4ODAwMDAwMDQpCisJCXJldHVybiAwOworCisJdiA9ICh1bnNpZ25lZCBpbnQgKikgYy0+eDg2X21vZGVsX2lkOworCWNwdWlkKDB4ODAwMDAwMDIsICZ2WzBdLCAmdlsxXSwgJnZbMl0sICZ2WzNdKTsKKwljcHVpZCgweDgwMDAwMDAzLCAmdls0XSwgJnZbNV0sICZ2WzZdLCAmdls3XSk7CisJY3B1aWQoMHg4MDAwMDAwNCwgJnZbOF0sICZ2WzldLCAmdlsxMF0sICZ2WzExXSk7CisJYy0+eDg2X21vZGVsX2lkWzQ4XSA9IDA7CisJcmV0dXJuIDE7Cit9CisKKwordm9pZCBfX2NwdWluaXQgZGlzcGxheV9jYWNoZWluZm8oc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCXVuc2lnbmVkIGludCBuLCBkdW1teSwgZWJ4LCBlY3gsIGVkeDsKKworCW4gPSBjLT5leHRlbmRlZF9jcHVpZF9sZXZlbDsKKworCWlmIChuID49IDB4ODAwMDAwMDUpIHsKKwkJY3B1aWQoMHg4MDAwMDAwNSwgJmR1bW15LCAmZWJ4LCAmZWN4LCAmZWR4KTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVOiBMMSBJIENhY2hlOiAlZEsgKCVkIGJ5dGVzL2xpbmUpLCAiCisJCSAgICAgICAiRCBjYWNoZSAlZEsgKCVkIGJ5dGVzL2xpbmUpXG4iLAorCQkgICAgICAgZWR4Pj4yNCwgZWR4JjB4RkYsIGVjeD4+MjQsIGVjeCYweEZGKTsKKwkJYy0+eDg2X2NhY2hlX3NpemUgPSAoZWN4Pj4yNCkgKyAoZWR4Pj4yNCk7CisJCS8qIE9uIEs4IEwxIFRMQiBpcyBpbmNsdXNpdmUsIHNvIGRvbid0IGNvdW50IGl0ICovCisJCWMtPng4Nl90bGJzaXplID0gMDsKKwl9CisKKwlpZiAobiA+PSAweDgwMDAwMDA2KSB7CisJCWNwdWlkKDB4ODAwMDAwMDYsICZkdW1teSwgJmVieCwgJmVjeCwgJmVkeCk7CisJCWVjeCA9IGNwdWlkX2VjeCgweDgwMDAwMDA2KTsKKwkJYy0+eDg2X2NhY2hlX3NpemUgPSBlY3ggPj4gMTY7CisJCWMtPng4Nl90bGJzaXplICs9ICgoZWJ4ID4+IDE2KSAmIDB4ZmZmKSArIChlYnggJiAweGZmZik7CisKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVOiBMMiBDYWNoZTogJWRLICglZCBieXRlcy9saW5lKVxuIiwKKwkJYy0+eDg2X2NhY2hlX3NpemUsIGVjeCAmIDB4RkYpOworCX0KK30KKwordm9pZCBfX2NwdWluaXQgZGV0ZWN0X2h0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKyNpZmRlZiBDT05GSUdfU01QCisJdTMyIGVheCwgZWJ4LCBlY3gsIGVkeDsKKwlpbnQgaW5kZXhfbXNiLCBjb3JlX2JpdHM7CisKKwljcHVpZCgxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKKworCisJaWYgKCFjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX0hUKSkKKwkJcmV0dXJuOworCWlmIChjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1kpKQorCQlnb3RvIG91dDsKKworCXNtcF9udW1fc2libGluZ3MgPSAoZWJ4ICYgMHhmZjAwMDApID4+IDE2OworCisJaWYgKHNtcF9udW1fc2libGluZ3MgPT0gMSkgeworCQlwcmludGsoS0VSTl9JTkZPICAiQ1BVOiBIeXBlci1UaHJlYWRpbmcgaXMgZGlzYWJsZWRcbiIpOworCX0gZWxzZSBpZiAoc21wX251bV9zaWJsaW5ncyA+IDEpIHsKKworCQlpZiAoc21wX251bV9zaWJsaW5ncyA+IE5SX0NQVVMpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgIkNQVTogVW5zdXBwb3J0ZWQgbnVtYmVyIG9mICIKKwkJCSAgICAgICAic2libGluZ3MgJWQiLCBzbXBfbnVtX3NpYmxpbmdzKTsKKwkJCXNtcF9udW1fc2libGluZ3MgPSAxOworCQkJcmV0dXJuOworCQl9CisKKwkJaW5kZXhfbXNiID0gZ2V0X2NvdW50X29yZGVyKHNtcF9udW1fc2libGluZ3MpOworCQljLT5waHlzX3Byb2NfaWQgPSBwaHlzX3BrZ19pZChpbmRleF9tc2IpOworCisJCXNtcF9udW1fc2libGluZ3MgPSBzbXBfbnVtX3NpYmxpbmdzIC8gYy0+eDg2X21heF9jb3JlczsKKworCQlpbmRleF9tc2IgPSBnZXRfY291bnRfb3JkZXIoc21wX251bV9zaWJsaW5ncyk7CisKKwkJY29yZV9iaXRzID0gZ2V0X2NvdW50X29yZGVyKGMtPng4Nl9tYXhfY29yZXMpOworCisJCWMtPmNwdV9jb3JlX2lkID0gcGh5c19wa2dfaWQoaW5kZXhfbXNiKSAmCisJCQkJCSAgICAgICAoKDEgPDwgY29yZV9iaXRzKSAtIDEpOworCX0KK291dDoKKwlpZiAoKGMtPng4Nl9tYXhfY29yZXMgKiBzbXBfbnVtX3NpYmxpbmdzKSA+IDEpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAgIkNQVTogUGh5c2ljYWwgUHJvY2Vzc29yIElEOiAlZFxuIiwKKwkJICAgICAgIGMtPnBoeXNfcHJvY19pZCk7CisJCXByaW50ayhLRVJOX0lORk8gICJDUFU6IFByb2Nlc3NvciBDb3JlIElEOiAlZFxuIiwKKwkJICAgICAgIGMtPmNwdV9jb3JlX2lkKTsKKwl9CisKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgZ2V0X2NwdV92ZW5kb3Ioc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWNoYXIgKnYgPSBjLT54ODZfdmVuZG9yX2lkOworCWludCBpOworCXN0YXRpYyBpbnQgcHJpbnRlZDsKKworCWZvciAoaSA9IDA7IGkgPCBYODZfVkVORE9SX05VTTsgaSsrKSB7CisJCWlmIChjcHVfZGV2c1tpXSkgeworCQkJaWYgKCFzdHJjbXAodiwgY3B1X2RldnNbaV0tPmNfaWRlbnRbMF0pIHx8CisJCQkgICAgKGNwdV9kZXZzW2ldLT5jX2lkZW50WzFdICYmCisJCQkgICAgIXN0cmNtcCh2LCBjcHVfZGV2c1tpXS0+Y19pZGVudFsxXSkpKSB7CisJCQkJYy0+eDg2X3ZlbmRvciA9IGk7CisJCQkJdGhpc19jcHUgPSBjcHVfZGV2c1tpXTsKKwkJCQlyZXR1cm47CisJCQl9CisJCX0KKwl9CisJaWYgKCFwcmludGVkKSB7CisJCXByaW50ZWQrKzsKKwkJcHJpbnRrKEtFUk5fRVJSICJDUFU6IFZlbmRvciB1bmtub3duLCB1c2luZyBnZW5lcmljIGluaXQuXG4iKTsKKwkJcHJpbnRrKEtFUk5fRVJSICJDUFU6IFlvdXIgc3lzdGVtIG1heSBiZSB1bnN0YWJsZS5cbiIpOworCX0KKwljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9VTktOT1dOOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZWFybHlfY3B1X3N1cHBvcnRfcHJpbnQodm9pZCkKK3sKKwlpbnQgaSxqOworCXN0cnVjdCBjcHVfZGV2ICpjcHVfZGV2eDsKKworCXByaW50aygiS0VSTkVMIHN1cHBvcnRlZCBjcHVzOlxuIik7CisJZm9yIChpID0gMDsgaSA8IFg4Nl9WRU5ET1JfTlVNOyBpKyspIHsKKwkJY3B1X2RldnggPSBjcHVfZGV2c1tpXTsKKwkJaWYgKCFjcHVfZGV2eCkKKwkJCWNvbnRpbnVlOworCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CisJCQlpZiAoIWNwdV9kZXZ4LT5jX2lkZW50W2pdKQorCQkJCWNvbnRpbnVlOworCQkJcHJpbnRrKCIgICVzICVzXG4iLCBjcHVfZGV2eC0+Y192ZW5kb3IsCisJCQkJY3B1X2RldngtPmNfaWRlbnRbal0pOworCQl9CisJfQorfQorCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaWRlbnRpZnlfY3B1KHN0cnVjdCBjcHVpbmZvX3g4NiAqYyk7CisKK3ZvaWQgX19pbml0IGVhcmx5X2NwdV9pbml0KHZvaWQpCit7CisgICAgICAgIHN0cnVjdCBjcHVfdmVuZG9yX2RldiAqY3ZkZXY7CisKKyAgICAgICAgZm9yIChjdmRldiA9IF9feDg2Y3B1dmVuZG9yX3N0YXJ0IDsKKyAgICAgICAgICAgICBjdmRldiA8IF9feDg2Y3B1dmVuZG9yX2VuZCAgIDsKKyAgICAgICAgICAgICBjdmRldisrKQorICAgICAgICAgICAgICAgIGNwdV9kZXZzW2N2ZGV2LT52ZW5kb3JdID0gY3ZkZXYtPmNwdV9kZXY7CisJZWFybHlfY3B1X3N1cHBvcnRfcHJpbnQoKTsKKwllYXJseV9pZGVudGlmeV9jcHUoJmJvb3RfY3B1X2RhdGEpOworfQorCisvKiBEbyBzb21lIGVhcmx5IGNwdWlkIG9uIHRoZSBib290IENQVSB0byBnZXQgc29tZSBwYXJhbWV0ZXIgdGhhdCBhcmUKKyAgIG5lZWRlZCBiZWZvcmUgY2hlY2tfYnVncy4gRXZlcnl0aGluZyBhZHZhbmNlZCBpcyBpbiBpZGVudGlmeV9jcHUKKyAgIGJlbG93LiAqLworc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2lkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJdTMyIHRmbXMsIHhsdmw7CisKKwljLT5sb29wc19wZXJfamlmZnkgPSBsb29wc19wZXJfamlmZnk7CisJYy0+eDg2X2NhY2hlX3NpemUgPSAtMTsKKwljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9VTktOT1dOOworCWMtPng4Nl9tb2RlbCA9IGMtPng4Nl9tYXNrID0gMDsJLyogU28gZmFyIHVua25vd24uLi4gKi8KKwljLT54ODZfdmVuZG9yX2lkWzBdID0gJ1wwJzsgLyogVW5zZXQgKi8KKwljLT54ODZfbW9kZWxfaWRbMF0gPSAnXDAnOyAgLyogVW5zZXQgKi8KKwljLT54ODZfY2xmbHVzaF9zaXplID0gNjQ7CisJYy0+eDg2X2NhY2hlX2FsaWdubWVudCA9IGMtPng4Nl9jbGZsdXNoX3NpemU7CisJYy0+eDg2X21heF9jb3JlcyA9IDE7CisJYy0+eDg2X2NvcmVpZF9iaXRzID0gMDsKKwljLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA9IDA7CisJbWVtc2V0KCZjLT54ODZfY2FwYWJpbGl0eSwgMCwgc2l6ZW9mIGMtPng4Nl9jYXBhYmlsaXR5KTsKKworCS8qIEdldCB2ZW5kb3IgbmFtZSAqLworCWNwdWlkKDB4MDAwMDAwMDAsICh1bnNpZ25lZCBpbnQgKikmYy0+Y3B1aWRfbGV2ZWwsCisJICAgICAgKHVuc2lnbmVkIGludCAqKSZjLT54ODZfdmVuZG9yX2lkWzBdLAorCSAgICAgICh1bnNpZ25lZCBpbnQgKikmYy0+eDg2X3ZlbmRvcl9pZFs4XSwKKwkgICAgICAodW5zaWduZWQgaW50ICopJmMtPng4Nl92ZW5kb3JfaWRbNF0pOworCisJZ2V0X2NwdV92ZW5kb3IoYyk7CisKKwkvKiBJbml0aWFsaXplIHRoZSBzdGFuZGFyZCBzZXQgb2YgY2FwYWJpbGl0aWVzICovCisJLyogTm90ZSB0aGF0IHRoZSB2ZW5kb3Itc3BlY2lmaWMgY29kZSBiZWxvdyBtaWdodCBvdmVycmlkZSAqLworCisJLyogSW50ZWwtZGVmaW5lZCBmbGFnczogbGV2ZWwgMHgwMDAwMDAwMSAqLworCWlmIChjLT5jcHVpZF9sZXZlbCA+PSAweDAwMDAwMDAxKSB7CisJCV9fdTMyIG1pc2M7CisJCWNwdWlkKDB4MDAwMDAwMDEsICZ0Zm1zLCAmbWlzYywgJmMtPng4Nl9jYXBhYmlsaXR5WzRdLAorCQkgICAgICAmYy0+eDg2X2NhcGFiaWxpdHlbMF0pOworCQljLT54ODYgPSAodGZtcyA+PiA4KSAmIDB4ZjsKKwkJYy0+eDg2X21vZGVsID0gKHRmbXMgPj4gNCkgJiAweGY7CisJCWMtPng4Nl9tYXNrID0gdGZtcyAmIDB4ZjsKKwkJaWYgKGMtPng4NiA9PSAweGYpCisJCQljLT54ODYgKz0gKHRmbXMgPj4gMjApICYgMHhmZjsKKwkJaWYgKGMtPng4NiA+PSAweDYpCisJCQljLT54ODZfbW9kZWwgKz0gKCh0Zm1zID4+IDE2KSAmIDB4RikgPDwgNDsKKwkJaWYgKHRlc3RfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9DTEZMU0gpKQorCQkJYy0+eDg2X2NsZmx1c2hfc2l6ZSA9ICgobWlzYyA+PiA4KSAmIDB4ZmYpICogODsKKwl9IGVsc2UgeworCQkvKiBIYXZlIENQVUlEIGxldmVsIDAgb25seSAtIHVuaGVhcmQgb2YgKi8KKwkJYy0+eDg2ID0gNDsKKwl9CisKKwljLT5pbml0aWFsX2FwaWNpZCA9IChjcHVpZF9lYngoMSkgPj4gMjQpICYgMHhmZjsKKyNpZmRlZiBDT05GSUdfU01QCisJYy0+cGh5c19wcm9jX2lkID0gYy0+aW5pdGlhbF9hcGljaWQ7CisjZW5kaWYKKwkvKiBBTUQtZGVmaW5lZCBmbGFnczogbGV2ZWwgMHg4MDAwMDAwMSAqLworCXhsdmwgPSBjcHVpZF9lYXgoMHg4MDAwMDAwMCk7CisJYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPSB4bHZsOworCWlmICgoeGx2bCAmIDB4ZmZmZjAwMDApID09IDB4ODAwMDAwMDApIHsKKwkJaWYgKHhsdmwgPj0gMHg4MDAwMDAwMSkgeworCQkJYy0+eDg2X2NhcGFiaWxpdHlbMV0gPSBjcHVpZF9lZHgoMHg4MDAwMDAwMSk7CisJCQljLT54ODZfY2FwYWJpbGl0eVs2XSA9IGNwdWlkX2VjeCgweDgwMDAwMDAxKTsKKwkJfQorCQlpZiAoeGx2bCA+PSAweDgwMDAwMDA0KQorCQkJZ2V0X21vZGVsX25hbWUoYyk7IC8qIERlZmF1bHQgbmFtZSAqLworCX0KKworCS8qIFRyYW5zbWV0YS1kZWZpbmVkIGZsYWdzOiBsZXZlbCAweDgwODYwMDAxICovCisJeGx2bCA9IGNwdWlkX2VheCgweDgwODYwMDAwKTsKKwlpZiAoKHhsdmwgJiAweGZmZmYwMDAwKSA9PSAweDgwODYwMDAwKSB7CisJCS8qIERvbid0IHNldCB4ODZfY3B1aWRfbGV2ZWwgaGVyZSBmb3Igbm93IHRvIG5vdCBjb25mdXNlLiAqLworCQlpZiAoeGx2bCA+PSAweDgwODYwMDAxKQorCQkJYy0+eDg2X2NhcGFiaWxpdHlbMl0gPSBjcHVpZF9lZHgoMHg4MDg2MDAwMSk7CisJfQorCisJYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPSBjcHVpZF9lYXgoMHg4MDAwMDAwMCk7CisJaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDcpCisJCWMtPng4Nl9wb3dlciA9IGNwdWlkX2VkeCgweDgwMDAwMDA3KTsKKworCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDA4KSB7CisJCXUzMiBlYXggPSBjcHVpZF9lYXgoMHg4MDAwMDAwOCk7CisKKwkJYy0+eDg2X3ZpcnRfYml0cyA9IChlYXggPj4gOCkgJiAweGZmOworCQljLT54ODZfcGh5c19iaXRzID0gZWF4ICYgMHhmZjsKKwl9CisKKwkvKiBBc3N1bWUgYWxsIDY0LWJpdCBDUFVzIHN1cHBvcnQgMzItYml0IHN5c2NhbGwgKi8KKwlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9TWVNDQUxMMzIpOworCisJaWYgKGMtPng4Nl92ZW5kb3IgIT0gWDg2X1ZFTkRPUl9VTktOT1dOICYmCisJICAgIGNwdV9kZXZzW2MtPng4Nl92ZW5kb3JdLT5jX2Vhcmx5X2luaXQpCisJCWNwdV9kZXZzW2MtPng4Nl92ZW5kb3JdLT5jX2Vhcmx5X2luaXQoYyk7CisKKwl2YWxpZGF0ZV9wYXRfc3VwcG9ydChjKTsKKworCS8qIGVhcmx5X3BhcmFtIGNvdWxkIGNsZWFyIHRoYXQsIGJ1dCByZWNhbGwgZ2V0IGl0IHNldCBhZ2FpbiAqLworCWlmIChkaXNhYmxlX2FwaWMpCisJCWNsZWFyX2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQVBJQyk7Cit9CisKKy8qCisgKiBUaGlzIGRvZXMgdGhlIGhhcmQgd29yayBvZiBhY3R1YWxseSBwaWNraW5nIGFwYXJ0IHRoZSBDUFUgc3R1ZmYuLi4KKyAqLworc3RhdGljIHZvaWQgX19jcHVpbml0IGlkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJaW50IGk7CisKKwllYXJseV9pZGVudGlmeV9jcHUoYyk7CisKKwlpbml0X3NjYXR0ZXJlZF9jcHVpZF9mZWF0dXJlcyhjKTsKKworCWMtPmFwaWNpZCA9IHBoeXNfcGtnX2lkKDApOworCisJLyoKKwkgKiBWZW5kb3Itc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24uICBJbiB0aGlzIHNlY3Rpb24gd2UKKwkgKiBjYW5vbmljYWxpemUgdGhlIGZlYXR1cmUgZmxhZ3MsIG1lYW5pbmcgaWYgdGhlcmUgYXJlCisJICogZmVhdHVyZXMgYSBjZXJ0YWluIENQVSBzdXBwb3J0cyB3aGljaCBDUFVJRCBkb2Vzbid0CisJICogdGVsbCB1cywgQ1BVSUQgY2xhaW1pbmcgaW5jb3JyZWN0IGZsYWdzLCBvciBvdGhlciBidWdzLAorCSAqIHdlIGhhbmRsZSB0aGVtIGhlcmUuCisJICoKKwkgKiBBdCB0aGUgZW5kIG9mIHRoaXMgc2VjdGlvbiwgYy0+eDg2X2NhcGFiaWxpdHkgYmV0dGVyCisJICogaW5kaWNhdGUgdGhlIGZlYXR1cmVzIHRoaXMgQ1BVIGdlbnVpbmVseSBzdXBwb3J0cyEKKwkgKi8KKwlpZiAodGhpc19jcHUtPmNfaW5pdCkKKwkJdGhpc19jcHUtPmNfaW5pdChjKTsKKworCWRldGVjdF9odChjKTsKKworCS8qCisJICogT24gU01QLCBib290X2NwdV9kYXRhIGhvbGRzIHRoZSBjb21tb24gZmVhdHVyZSBzZXQgYmV0d2VlbgorCSAqIGFsbCBDUFVzOyBzbyBtYWtlIHN1cmUgdGhhdCB3ZSBpbmRpY2F0ZSB3aGljaCBmZWF0dXJlcyBhcmUKKwkgKiBjb21tb24gYmV0d2VlbiB0aGUgQ1BVcy4gIFRoZSBmaXJzdCB0aW1lIHRoaXMgcm91dGluZSBnZXRzCisJICogZXhlY3V0ZWQsIGMgPT0gJmJvb3RfY3B1X2RhdGEuCisJICovCisJaWYgKGMgIT0gJmJvb3RfY3B1X2RhdGEpIHsKKwkJLyogQU5EIHRoZSBhbHJlYWR5IGFjY3VtdWxhdGVkIGZsYWdzIHdpdGggdGhlc2UgKi8KKwkJZm9yIChpID0gMDsgaSA8IE5DQVBJTlRTOyBpKyspCisJCQlib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5W2ldICY9IGMtPng4Nl9jYXBhYmlsaXR5W2ldOworCX0KKworCS8qIENsZWFyIGFsbCBmbGFncyBvdmVycmlkZW4gYnkgb3B0aW9ucyAqLworCWZvciAoaSA9IDA7IGkgPCBOQ0FQSU5UUzsgaSsrKQorCQljLT54ODZfY2FwYWJpbGl0eVtpXSAmPSB+Y2xlYXJlZF9jcHVfY2Fwc1tpXTsKKworI2lmZGVmIENPTkZJR19YODZfTUNFCisJbWNoZWNrX2luaXQoYyk7CisjZW5kaWYKKwlzZWxlY3RfaWRsZV9yb3V0aW5lKGMpOworCisjaWZkZWYgQ09ORklHX05VTUEKKwludW1hX2FkZF9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKyNlbmRpZgorCit9CisKK3ZvaWQgX19jcHVpbml0IGlkZW50aWZ5X2Jvb3RfY3B1KHZvaWQpCit7CisJaWRlbnRpZnlfY3B1KCZib290X2NwdV9kYXRhKTsKK30KKwordm9pZCBfX2NwdWluaXQgaWRlbnRpZnlfc2Vjb25kYXJ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJQlVHX09OKGMgPT0gJmJvb3RfY3B1X2RhdGEpOworCWlkZW50aWZ5X2NwdShjKTsKKwltdHJyX2FwX2luaXQoKTsKK30KKworc3RhdGljIF9faW5pdCBpbnQgc2V0dXBfbm9jbGZsdXNoKGNoYXIgKmFyZykKK3sKKwlzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX0NMRkxTSCk7CisJcmV0dXJuIDE7Cit9CitfX3NldHVwKCJub2NsZmx1c2giLCBzZXR1cF9ub2NsZmx1c2gpOworCit2b2lkIF9fY3B1aW5pdCBwcmludF9jcHVfaW5mbyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJaWYgKGMtPng4Nl9tb2RlbF9pZFswXSkKKwkJcHJpbnRrKEtFUk5fQ09OVCAiJXMiLCBjLT54ODZfbW9kZWxfaWQpOworCisJaWYgKGMtPng4Nl9tYXNrIHx8IGMtPmNwdWlkX2xldmVsID49IDApCisJCXByaW50ayhLRVJOX0NPTlQgIiBzdGVwcGluZyAlMDJ4XG4iLCBjLT54ODZfbWFzayk7CisJZWxzZQorCQlwcmludGsoS0VSTl9DT05UICJcbiIpOworfQorCitzdGF0aWMgX19pbml0IGludCBzZXR1cF9kaXNhYmxlY3B1aWQoY2hhciAqYXJnKQoreworCWludCBiaXQ7CisJaWYgKGdldF9vcHRpb24oJmFyZywgJmJpdCkgJiYgYml0IDwgTkNBUElOVFMqMzIpCisJCXNldHVwX2NsZWFyX2NwdV9jYXAoYml0KTsKKwllbHNlCisJCXJldHVybiAwOworCXJldHVybiAxOworfQorX19zZXR1cCgiY2xlYXJjcHVpZD0iLCBzZXR1cF9kaXNhYmxlY3B1aWQpOworCitjcHVtYXNrX3QgY3B1X2luaXRpYWxpemVkIF9fY3B1aW5pdGRhdGEgPSBDUFVfTUFTS19OT05FOworCitzdHJ1Y3QgeDg2NjRfcGRhICoqX2NwdV9wZGEgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woX2NwdV9wZGEpOworCitzdHJ1Y3QgZGVzY19wdHIgaWR0X2Rlc2NyID0geyAyNTYgKiAxNiAtIDEsICh1bnNpZ25lZCBsb25nKSBpZHRfdGFibGUgfTsKKworY2hhciBib290X2NwdV9zdGFja1tJUlFTVEFDS1NJWkVdIF9fcGFnZV9hbGlnbmVkX2JzczsKKwordW5zaWduZWQgbG9uZyBfX3N1cHBvcnRlZF9wdGVfbWFzayBfX3JlYWRfbW9zdGx5ID0gfjBVTDsKK0VYUE9SVF9TWU1CT0xfR1BMKF9fc3VwcG9ydGVkX3B0ZV9tYXNrKTsKKworc3RhdGljIGludCBkb19ub3RfbnggX19jcHVpbml0ZGF0YTsKKworLyogbm9leGVjPW9ufG9mZgorQ29udHJvbCBub24gZXhlY3V0YWJsZSBtYXBwaW5ncyBmb3IgNjRiaXQgcHJvY2Vzc2VzLgorCitvbglFbmFibGUoZGVmYXVsdCkKK29mZglEaXNhYmxlCisqLworc3RhdGljIGludCBfX2luaXQgbm9ueF9zZXR1cChjaGFyICpzdHIpCit7CisJaWYgKCFzdHIpCisJCXJldHVybiAtRUlOVkFMOworCWlmICghc3RybmNtcChzdHIsICJvbiIsIDIpKSB7CisJCV9fc3VwcG9ydGVkX3B0ZV9tYXNrIHw9IF9QQUdFX05YOworCQlkb19ub3RfbnggPSAwOworCX0gZWxzZSBpZiAoIXN0cm5jbXAoc3RyLCAib2ZmIiwgMykpIHsKKwkJZG9fbm90X254ID0gMTsKKwkJX19zdXBwb3J0ZWRfcHRlX21hc2sgJj0gfl9QQUdFX05YOworCX0KKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJub2V4ZWMiLCBub254X3NldHVwKTsKKworaW50IGZvcmNlX3BlcnNvbmFsaXR5MzI7CisKKy8qIG5vZXhlYzMyPW9ufG9mZgorQ29udHJvbCBub24gZXhlY3V0YWJsZSBoZWFwIGZvciAzMmJpdCBwcm9jZXNzZXMuCitUbyBjb250cm9sIHRoZSBzdGFjayB0b28gdXNlIG5vZXhlYz1vZmYKKworb24JUFJPVF9SRUFEIGRvZXMgbm90IGltcGx5IFBST1RfRVhFQyBmb3IgMzJiaXQgcHJvY2Vzc2VzIChkZWZhdWx0KQorb2ZmCVBST1RfUkVBRCBpbXBsaWVzIFBST1RfRVhFQworKi8KK3N0YXRpYyBpbnQgX19pbml0IG5vbngzMl9zZXR1cChjaGFyICpzdHIpCit7CisJaWYgKCFzdHJjbXAoc3RyLCAib24iKSkKKwkJZm9yY2VfcGVyc29uYWxpdHkzMiAmPSB+UkVBRF9JTVBMSUVTX0VYRUM7CisJZWxzZSBpZiAoIXN0cmNtcChzdHIsICJvZmYiKSkKKwkJZm9yY2VfcGVyc29uYWxpdHkzMiB8PSBSRUFEX0lNUExJRVNfRVhFQzsKKwlyZXR1cm4gMTsKK30KK19fc2V0dXAoIm5vZXhlYzMyPSIsIG5vbngzMl9zZXR1cCk7CisKK3ZvaWQgcGRhX2luaXQoaW50IGNwdSkKK3sKKwlzdHJ1Y3QgeDg2NjRfcGRhICpwZGEgPSBjcHVfcGRhKGNwdSk7CisKKwkvKiBTZXR1cCB1cCBkYXRhIHRoYXQgbWF5IGJlIG5lZWRlZCBpbiBfX2dldF9mcmVlX3BhZ2VzIGVhcmx5ICovCisJbG9hZHNlZ21lbnQoZnMsIDApOworCWxvYWRzZWdtZW50KGdzLCAwKTsKKwkvKiBNZW1vcnkgY2xvYmJlcnMgdXNlZCB0byBvcmRlciBQREEgYWNjZXNzZWQgKi8KKwltYigpOworCXdybXNybChNU1JfR1NfQkFTRSwgcGRhKTsKKwltYigpOworCisJcGRhLT5jcHVudW1iZXIgPSBjcHU7CisJcGRhLT5pcnFjb3VudCA9IC0xOworCXBkYS0+a2VybmVsc3RhY2sgPSAodW5zaWduZWQgbG9uZylzdGFja190aHJlYWRfaW5mbygpIC0KKwkJCQkgUERBX1NUQUNLT0ZGU0VUICsgVEhSRUFEX1NJWkU7CisJcGRhLT5hY3RpdmVfbW0gPSAmaW5pdF9tbTsKKwlwZGEtPm1tdV9zdGF0ZSA9IDA7CisKKwlpZiAoY3B1ID09IDApIHsKKwkJLyogb3RoZXJzIGFyZSBpbml0aWFsaXplZCBpbiBzbXBib290LmMgKi8KKwkJcGRhLT5wY3VycmVudCA9ICZpbml0X3Rhc2s7CisJCXBkYS0+aXJxc3RhY2twdHIgPSBib290X2NwdV9zdGFjazsKKwl9IGVsc2UgeworCQlwZGEtPmlycXN0YWNrcHRyID0gKGNoYXIgKikKKwkJCV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0FUT01JQywgSVJRU1RBQ0tfT1JERVIpOworCQlpZiAoIXBkYS0+aXJxc3RhY2twdHIpCisJCQlwYW5pYygiY2Fubm90IGFsbG9jYXRlIGlycXN0YWNrIGZvciBjcHUgJWQiLCBjcHUpOworCisJCWlmIChwZGEtPm5vZGVudW1iZXIgPT0gMCAmJiBjcHVfdG9fbm9kZShjcHUpICE9IE5VTUFfTk9fTk9ERSkKKwkJCXBkYS0+bm9kZW51bWJlciA9IGNwdV90b19ub2RlKGNwdSk7CisJfQorCisJcGRhLT5pcnFzdGFja3B0ciArPSBJUlFTVEFDS1NJWkUtNjQ7Cit9CisKK2NoYXIgYm9vdF9leGNlcHRpb25fc3RhY2tzWyhOX0VYQ0VQVElPTl9TVEFDS1MgLSAxKSAqIEVYQ0VQVElPTl9TVEtTWiArCisJCQkgICBERUJVR19TVEtTWl0KK19fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5ic3MucGFnZV9hbGlnbmVkIikpKTsKKworZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBpZ25vcmVfc3lzcmV0KHZvaWQpOworCisvKiBNYXkgbm90IGJlIG1hcmtlZCBfX2luaXQ6IHVzZWQgYnkgc29mdHdhcmUgc3VzcGVuZCAqLwordm9pZCBzeXNjYWxsX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIExTVEFSIGFuZCBTVEFSIGxpdmUgaW4gYSBiaXQgc3RyYW5nZSBzeW1iaW9zaXMuCisJICogVGhleSBib3RoIHdyaXRlIHRvIHRoZSBzYW1lIGludGVybmFsIHJlZ2lzdGVyLiBTVEFSIGFsbG93cyB0bworCSAqIHNldCBDUy9EUyBidXQgb25seSBhIDMyYml0IHRhcmdldC4gTFNUQVIgc2V0cyB0aGUgNjRiaXQgcmlwLgorCSAqLworCXdybXNybChNU1JfU1RBUiwgICgodTY0KV9fVVNFUjMyX0NTKTw8NDggIHwgKCh1NjQpX19LRVJORUxfQ1MpPDwzMik7CisJd3Jtc3JsKE1TUl9MU1RBUiwgc3lzdGVtX2NhbGwpOworCXdybXNybChNU1JfQ1NUQVIsIGlnbm9yZV9zeXNyZXQpOworCisjaWZkZWYgQ09ORklHX0lBMzJfRU1VTEFUSU9OCisJc3lzY2FsbDMyX2NwdV9pbml0KCk7CisjZW5kaWYKKworCS8qIEZsYWdzIHRvIGNsZWFyIG9uIHN5c2NhbGwgKi8KKwl3cm1zcmwoTVNSX1NZU0NBTExfTUFTSywKKwkgICAgICAgWDg2X0VGTEFHU19URnxYODZfRUZMQUdTX0RGfFg4Nl9FRkxBR1NfSUZ8WDg2X0VGTEFHU19JT1BMKTsKK30KKwordm9pZCBfX2NwdWluaXQgY2hlY2tfZWZlcih2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgZWZlcjsKKworCXJkbXNybChNU1JfRUZFUiwgZWZlcik7CisJaWYgKCEoZWZlciAmIEVGRVJfTlgpIHx8IGRvX25vdF9ueCkKKwkJX19zdXBwb3J0ZWRfcHRlX21hc2sgJj0gfl9QQUdFX05YOworfQorCit1bnNpZ25lZCBsb25nIGtlcm5lbF9lZmxhZ3M7CisKKy8qCisgKiBDb3BpZXMgb2YgdGhlIG9yaWdpbmFsIGlzdCB2YWx1ZXMgZnJvbSB0aGUgdHNzIGFyZSBvbmx5IGFjY2Vzc2VkIGR1cmluZworICogZGVidWdnaW5nLCBubyBzcGVjaWFsIGFsaWdubWVudCByZXF1aXJlZC4KKyAqLworREVGSU5FX1BFUl9DUFUoc3RydWN0IG9yaWdfaXN0LCBvcmlnX2lzdCk7CisKKy8qCisgKiBjcHVfaW5pdCgpIGluaXRpYWxpemVzIHN0YXRlIHRoYXQgaXMgcGVyLUNQVS4gU29tZSBkYXRhIGlzIGFscmVhZHkKKyAqIGluaXRpYWxpemVkIChuYXR1cmFsbHkpIGluIHRoZSBib290c3RyYXAgcHJvY2Vzcywgc3VjaCBhcyB0aGUgR0RUCisgKiBhbmQgSURULiBXZSByZWxvYWQgdGhlbSBuZXZlcnRoZWxlc3MsIHRoaXMgZnVuY3Rpb24gYWN0cyBhcyBhCisgKiAnQ1BVIHN0YXRlIGJhcnJpZXInLCBub3RoaW5nIHNob3VsZCBnZXQgYWNyb3NzLgorICogQSBsb3Qgb2Ygc3RhdGUgaXMgYWxyZWFkeSBzZXQgdXAgaW4gUERBIGluaXQuCisgKi8KK3ZvaWQgX19jcHVpbml0IGNwdV9pbml0KHZvaWQpCit7CisJaW50IGNwdSA9IHN0YWNrX3NtcF9wcm9jZXNzb3JfaWQoKTsKKwlzdHJ1Y3QgdHNzX3N0cnVjdCAqdCA9ICZwZXJfY3B1KGluaXRfdHNzLCBjcHUpOworCXN0cnVjdCBvcmlnX2lzdCAqb3JpZ19pc3QgPSAmcGVyX2NwdShvcmlnX2lzdCwgY3B1KTsKKwl1bnNpZ25lZCBsb25nIHY7CisJY2hhciAqZXN0YWNrcyA9IE5VTEw7CisJc3RydWN0IHRhc2tfc3RydWN0ICptZTsKKwlpbnQgaTsKKworCS8qIENQVSAwIGlzIGluaXRpYWxpc2VkIGluIGhlYWQ2NC5jICovCisJaWYgKGNwdSAhPSAwKQorCQlwZGFfaW5pdChjcHUpOworCWVsc2UKKwkJZXN0YWNrcyA9IGJvb3RfZXhjZXB0aW9uX3N0YWNrczsKKworCW1lID0gY3VycmVudDsKKworCWlmIChjcHVfdGVzdF9hbmRfc2V0KGNwdSwgY3B1X2luaXRpYWxpemVkKSkKKwkJcGFuaWMoIkNQVSMlZCBhbHJlYWR5IGluaXRpYWxpemVkIVxuIiwgY3B1KTsKKworCXByaW50ayhLRVJOX0lORk8gIkluaXRpYWxpemluZyBDUFUjJWRcbiIsIGNwdSk7CisKKwljbGVhcl9pbl9jcjQoWDg2X0NSNF9WTUV8WDg2X0NSNF9QVkl8WDg2X0NSNF9UU0R8WDg2X0NSNF9ERSk7CisKKwkvKgorCSAqIEluaXRpYWxpemUgdGhlIHBlci1DUFUgR0RUIHdpdGggdGhlIGJvb3QgR0RULAorCSAqIGFuZCBzZXQgdXAgdGhlIEdEVCBkZXNjcmlwdG9yOgorCSAqLworCisJc3dpdGNoX3RvX25ld19nZHQoKTsKKwlsb2FkX2lkdCgoY29uc3Qgc3RydWN0IGRlc2NfcHRyICopJmlkdF9kZXNjcik7CisKKwltZW1zZXQobWUtPnRocmVhZC50bHNfYXJyYXksIDAsIEdEVF9FTlRSWV9UTFNfRU5UUklFUyAqIDgpOworCXN5c2NhbGxfaW5pdCgpOworCisJd3Jtc3JsKE1TUl9GU19CQVNFLCAwKTsKKwl3cm1zcmwoTVNSX0tFUk5FTF9HU19CQVNFLCAwKTsKKwliYXJyaWVyKCk7CisKKwljaGVja19lZmVyKCk7CisKKwkvKgorCSAqIHNldCB1cCBhbmQgbG9hZCB0aGUgcGVyLUNQVSBUU1MKKwkgKi8KKwlmb3IgKHYgPSAwOyB2IDwgTl9FWENFUFRJT05fU1RBQ0tTOyB2KyspIHsKKwkJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBvcmRlcltOX0VYQ0VQVElPTl9TVEFDS1NdID0geworCQkJWzAgLi4uIE5fRVhDRVBUSU9OX1NUQUNLUyAtIDFdID0gRVhDRVBUSU9OX1NUQUNLX09SREVSLAorCQkJW0RFQlVHX1NUQUNLIC0gMV0gPSBERUJVR19TVEFDS19PUkRFUgorCQl9OworCQlpZiAoY3B1KSB7CisJCQllc3RhY2tzID0gKGNoYXIgKilfX2dldF9mcmVlX3BhZ2VzKEdGUF9BVE9NSUMsIG9yZGVyW3ZdKTsKKwkJCWlmICghZXN0YWNrcykKKwkJCQlwYW5pYygiQ2Fubm90IGFsbG9jYXRlIGV4Y2VwdGlvbiBzdGFjayAlbGQgJWRcbiIsCisJCQkJICAgICAgdiwgY3B1KTsKKwkJfQorCQllc3RhY2tzICs9IFBBR0VfU0laRSA8PCBvcmRlclt2XTsKKwkJb3JpZ19pc3QtPmlzdFt2XSA9IHQtPng4Nl90c3MuaXN0W3ZdID0gKHVuc2lnbmVkIGxvbmcpZXN0YWNrczsKKwl9CisKKwl0LT54ODZfdHNzLmlvX2JpdG1hcF9iYXNlID0gb2Zmc2V0b2Yoc3RydWN0IHRzc19zdHJ1Y3QsIGlvX2JpdG1hcCk7CisJLyoKKwkgKiA8PSBpcyByZXF1aXJlZCBiZWNhdXNlIHRoZSBDUFUgd2lsbCBhY2Nlc3MgdXAgdG8KKwkgKiA4IGJpdHMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIElPIHBlcm1pc3Npb24gYml0bWFwLgorCSAqLworCWZvciAoaSA9IDA7IGkgPD0gSU9fQklUTUFQX0xPTkdTOyBpKyspCisJCXQtPmlvX2JpdG1hcFtpXSA9IH4wVUw7CisKKwlhdG9taWNfaW5jKCZpbml0X21tLm1tX2NvdW50KTsKKwltZS0+YWN0aXZlX21tID0gJmluaXRfbW07CisJaWYgKG1lLT5tbSkKKwkJQlVHKCk7CisJZW50ZXJfbGF6eV90bGIoJmluaXRfbW0sIG1lKTsKKworCWxvYWRfc3AwKHQsICZjdXJyZW50LT50aHJlYWQpOworCXNldF90c3NfZGVzYyhjcHUsIHQpOworCWxvYWRfVFJfZGVzYygpOworCWxvYWRfTERUKCZpbml0X21tLmNvbnRleHQpOworCisjaWZkZWYgQ09ORklHX0tHREIKKwkvKgorCSAqIElmIHRoZSBrZ2RiIGlzIGNvbm5lY3RlZCBubyBkZWJ1ZyByZWdzIHNob3VsZCBiZSBhbHRlcmVkLiAgVGhpcworCSAqIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIEtHREIgYW5kIGEgS0dEQiBJL08gbW9kdWxlIGFyZSBidWlsdAorCSAqIGludG8gdGhlIGtlcm5lbCBhbmQgeW91IGFyZSB1c2luZyBlYXJseSBkZWJ1Z2dpbmcgd2l0aAorCSAqIGtnZGJ3YWl0LiBLR0RCIHdpbGwgY29udHJvbCB0aGUga2VybmVsIEhXIGJyZWFrcG9pbnQgcmVnaXN0ZXJzLgorCSAqLworCWlmIChrZ2RiX2Nvbm5lY3RlZCAmJiBhcmNoX2tnZGJfb3BzLmNvcnJlY3RfaHdfYnJlYWspCisJCWFyY2hfa2dkYl9vcHMuY29ycmVjdF9od19icmVhaygpOworCWVsc2UgeworI2VuZGlmCisJLyoKKwkgKiBDbGVhciBhbGwgNiBkZWJ1ZyByZWdpc3RlcnM6CisJICovCisKKwlzZXRfZGVidWdyZWcoMFVMLCAwKTsKKwlzZXRfZGVidWdyZWcoMFVMLCAxKTsKKwlzZXRfZGVidWdyZWcoMFVMLCAyKTsKKwlzZXRfZGVidWdyZWcoMFVMLCAzKTsKKwlzZXRfZGVidWdyZWcoMFVMLCA2KTsKKwlzZXRfZGVidWdyZWcoMFVMLCA3KTsKKyNpZmRlZiBDT05GSUdfS0dEQgorCS8qIElmIHRoZSBrZ2RiIGlzIGNvbm5lY3RlZCBubyBkZWJ1ZyByZWdzIHNob3VsZCBiZSBhbHRlcmVkLiAqLworCX0KKyNlbmRpZgorCisJZnB1X2luaXQoKTsKKworCXJhd19sb2NhbF9zYXZlX2ZsYWdzKGtlcm5lbF9lZmxhZ3MpOworCisJaWYgKGlzX3V2X3N5c3RlbSgpKQorCQl1dl9jcHVfaW5pdCgpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9jcHUuaCBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY3B1LmgKaW5kZXggNzgzNjkxYi4uNGQ4OTRlOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9jcHUuaAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdS5oCkBAIC0xLDMgKzEsNiBAQAorI2lmbmRlZiBBUkNIX1g4Nl9DUFVfSAorCisjZGVmaW5lIEFSQ0hfWDg2X0NQVV9ICiAKIHN0cnVjdCBjcHVfbW9kZWxfaW5mbyB7CiAJaW50IHZlbmRvcjsKQEAgLTM2LDMgKzM5LDUgQEAKIAogZXh0ZXJuIGludCBnZXRfbW9kZWxfbmFtZShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwogZXh0ZXJuIHZvaWQgZGlzcGxheV9jYWNoZWluZm8oc3RydWN0IGNwdWluZm9feDg2ICpjKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvY3B1ZnJlcS1uZm9yY2UyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvY3B1ZnJlcS1uZm9yY2UyLmMKaW5kZXggZjAzZTkxNTMuLjk2NWVhNTIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY3B1ZnJlcS9jcHVmcmVxLW5mb3JjZTIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvY3B1ZnJlcS1uZm9yY2UyLmMKQEAgLTI2LDkgKzI2LDEwIEBACiAjZGVmaW5lIE5GT1JDRTJfU0FGRV9ESVNUQU5DRSA1MAogCiAvKiBEZWxheSBpbiBtcyBiZXR3ZWVuIEZTQiBjaGFuZ2VzICovCi0vLyNkZWZpbmUgTkZPUkNFMl9ERUxBWSAxMAorLyogI2RlZmluZSBORk9SQ0UyX0RFTEFZIDEwICovCiAKLS8qIG5mb3JjZTJfY2hpcHNldDoKKy8qCisgKiBuZm9yY2UyX2NoaXBzZXQ6CiAgKiBGU0IgaXMgY2hhbmdlZCB1c2luZyB0aGUgY2hpcHNldAogICovCiBzdGF0aWMgc3RydWN0IHBjaV9kZXYgKm5mb3JjZTJfY2hpcHNldF9kZXY7CkBAIC0zNiwxMyArMzcsMTMgQEAKIC8qIGZpZDoKICAqIG11bHRpcGxpZXIgKiAxMAogICovCi1zdGF0aWMgaW50IGZpZCA9IDA7CitzdGF0aWMgaW50IGZpZDsKIAogLyogbWluX2ZzYiwgbWF4X2ZzYjoKICAqIG1pbmltdW0gYW5kIG1heGltdW0gRlNCICg9IEZTQiBhdCBib290IHRpbWUpCiAgKi8KLXN0YXRpYyBpbnQgbWluX2ZzYiA9IDA7Ci1zdGF0aWMgaW50IG1heF9mc2IgPSAwOworc3RhdGljIGludCBtaW5fZnNiOworc3RhdGljIGludCBtYXhfZnNiOwogCiBNT0RVTEVfQVVUSE9SKCJTZWJhc3RpYW4gV2l0dCA8c2Uud2l0dEBnbXgubmV0PiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJuRm9yY2UyIEZTQiBjaGFuZ2luZyBjcHVmcmVxIGRyaXZlciIpOwpAQCAtNTMsNyArNTQsNyBAQAogCiBNT0RVTEVfUEFSTV9ERVNDKGZpZCwgIkNQVSBtdWx0aXBsaWVyIHRvIHVzZSAoMTEuNSA9IDExNSkiKTsKIE1PRFVMRV9QQVJNX0RFU0MobWluX2ZzYiwKLSAgICAgICAgICAgICAgICAgIk1pbmltdW0gRlNCIHRvIHVzZSwgaWYgbm90IGRlZmluZWQ6IGN1cnJlbnQgRlNCIC0gNTAiKTsKKwkJIk1pbmltdW0gRlNCIHRvIHVzZSwgaWYgbm90IGRlZmluZWQ6IGN1cnJlbnQgRlNCIC0gNTAiKTsKIAogI2RlZmluZSBkcHJpbnRrKG1zZy4uLikgY3B1ZnJlcV9kZWJ1Z19wcmludGsoQ1BVRlJFUV9ERUJVR19EUklWRVIsICJjcHVmcmVxLW5mb3JjZTIiLCBtc2cpCiAKQEAgLTEzOSw3ICsxNDAsNyBAQAogCiAJLyogR2V0IGNoaXBzZXQgYm9vdCBGU0IgZnJvbSBzdWJkZXZpY2UgNSAoRlNCIGF0IGJvb3QtdGltZSkgKi8KIAluZm9yY2UyX3N1YjUgPSBwY2lfZ2V0X3N1YnN5cyhQQ0lfVkVORE9SX0lEX05WSURJQSwKLQkJCQkJCTB4MDFFRixQQ0lfQU5ZX0lELFBDSV9BTllfSUQsTlVMTCk7CisJCQkJCQkweDAxRUYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIE5VTEwpOwogCWlmICghbmZvcmNlMl9zdWI1KQogCQlyZXR1cm4gMDsKIApAQCAtMTQ3LDEzICsxNDgsMTMgQEAKIAlmc2IgLz0gMTAwMDAwMDsKIAogCS8qIENoZWNrIGlmIFBMTCByZWdpc3RlciBpcyBhbHJlYWR5IHNldCAqLwotCXBjaV9yZWFkX2NvbmZpZ19ieXRlKG5mb3JjZTJfY2hpcHNldF9kZXYsTkZPUkNFMl9QTExFTkFCTEUsICh1OCAqKSZ0ZW1wKTsKKwlwY2lfcmVhZF9jb25maWdfYnl0ZShuZm9yY2UyX2NoaXBzZXRfZGV2LCBORk9SQ0UyX1BMTEVOQUJMRSwgKHU4ICopJnRlbXApOwogCi0JaWYoYm9vdGZzYiB8fCAhdGVtcCkKKwlpZiAoYm9vdGZzYiB8fCAhdGVtcCkKIAkJcmV0dXJuIGZzYjsKLQkJCisKIAkvKiBVc2UgUExMIHJlZ2lzdGVyIEZTQiB2YWx1ZSAqLwotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChuZm9yY2UyX2NoaXBzZXRfZGV2LE5GT1JDRTJfUExMUkVHLCAmdGVtcCk7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKG5mb3JjZTJfY2hpcHNldF9kZXYsIE5GT1JDRTJfUExMUkVHLCAmdGVtcCk7CiAJZnNiID0gbmZvcmNlMl9jYWxjX2ZzYih0ZW1wKTsKIAogCXJldHVybiBmc2I7CkBAIC0xODQsNyArMTg1LDcgQEAKIAl9CiAKIAkvKiBGaXJzdCB3cml0ZT8gVGhlbiBzZXQgYWN0dWFsIHZhbHVlICovCi0JcGNpX3JlYWRfY29uZmlnX2J5dGUobmZvcmNlMl9jaGlwc2V0X2RldixORk9SQ0UyX1BMTEVOQUJMRSwgKHU4ICopJnRlbXApOworCXBjaV9yZWFkX2NvbmZpZ19ieXRlKG5mb3JjZTJfY2hpcHNldF9kZXYsIE5GT1JDRTJfUExMRU5BQkxFLCAodTggKikmdGVtcCk7CiAJaWYgKCF0ZW1wKSB7CiAJCXBsbCA9IG5mb3JjZTJfY2FsY19wbGwodGZzYik7CiAKQEAgLTIxMCw3ICsyMTEsOCBAQAogCQkJdGZzYi0tOwogCiAJCS8qIENhbGN1bGF0ZSB0aGUgUExMIHJlZy4gdmFsdWUgKi8KLQkJaWYgKChwbGwgPSBuZm9yY2UyX2NhbGNfcGxsKHRmc2IpKSA9PSAtMSkKKwkJcGxsID0gbmZvcmNlMl9jYWxjX3BsbCh0ZnNiKTsKKwkJaWYgKHBsbCA9PSAtMSkKIAkJCXJldHVybiAtRUlOVkFMOwogCiAJCW5mb3JjZTJfd3JpdGVfcGxsKHBsbCk7CkBAIC0yNDksNyArMjUxLDcgQEAKIHN0YXRpYyBpbnQgbmZvcmNlMl90YXJnZXQoc3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3ksCiAJCQkgIHVuc2lnbmVkIGludCB0YXJnZXRfZnJlcSwgdW5zaWduZWQgaW50IHJlbGF0aW9uKQogewotLy8gICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICBmbGFnczsKKy8qICAgICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgZmxhZ3M7ICovCiAJc3RydWN0IGNwdWZyZXFfZnJlcXMgZnJlcXM7CiAJdW5zaWduZWQgaW50IHRhcmdldF9mc2I7CiAKQEAgLTI3MSwxNyArMjczLDE3IEBACiAJY3B1ZnJlcV9ub3RpZnlfdHJhbnNpdGlvbigmZnJlcXMsIENQVUZSRVFfUFJFQ0hBTkdFKTsKIAogCS8qIERpc2FibGUgSVJRcyAqLwotCS8vbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCS8qIGxvY2FsX2lycV9zYXZlKGZsYWdzKTsgKi8KIAogCWlmIChuZm9yY2UyX3NldF9mc2IodGFyZ2V0X2ZzYikgPCAwKQogCQlwcmludGsoS0VSTl9FUlIgImNwdWZyZXE6IENoYW5naW5nIEZTQiB0byAlZCBmYWlsZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mc2IpOworCQkJdGFyZ2V0X2ZzYik7CiAJZWxzZQogCQlkcHJpbnRrKCJDaGFuZ2VkIEZTQiBzdWNjZXNzZnVsbHkgdG8gJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mc2IpOworCQkJdGFyZ2V0X2ZzYik7CiAKIAkvKiBFbmFibGUgSVJRcyAqLwotCS8vbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCS8qIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsgKi8KIAogCWNwdWZyZXFfbm90aWZ5X3RyYW5zaXRpb24oJmZyZXFzLCBDUFVGUkVRX1BPU1RDSEFOR0UpOwogCkBAIC0zMDIsOCArMzA0LDggQEAKIAkJcG9saWN5LT5tYXggPSAoZnNiX3BvbF9tYXggKyAxKSAqIGZpZCAqIDEwMDsKIAogCWNwdWZyZXFfdmVyaWZ5X3dpdGhpbl9saW1pdHMocG9saWN5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeS0+Y3B1aW5mby5taW5fZnJlcSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3ktPmNwdWluZm8ubWF4X2ZyZXEpOworCQkJCSAgICAgcG9saWN5LT5jcHVpbmZvLm1pbl9mcmVxLAorCQkJCSAgICAgcG9saWN5LT5jcHVpbmZvLm1heF9mcmVxKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzQ3LDcgKzM0OSw3IEBACiAJLyogU2V0IG1heGltdW0gRlNCIHRvIEZTQiBhdCBib290IHRpbWUgKi8KIAltYXhfZnNiID0gbmZvcmNlMl9mc2JfcmVhZCgxKTsKIAotCWlmKCFtYXhfZnNiKQorCWlmICghbWF4X2ZzYikKIAkJcmV0dXJuIC1FSU87CiAKIAlpZiAoIW1pbl9mc2IpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsLmMKaW5kZXggZmU5MjI0Yy4uNzA2MDllZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWwuYwpAQCAtMjI2LDYgKzIyNiwxMCBAQAogCiAJaWYgKGNwdV9oYXNfYnRzKQogCQlkc19pbml0X2ludGVsKGMpOworCisjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQorCW51bWFxX3RzY19kaXNhYmxlKCk7CisjZW5kaWYKIH0KIAogc3RhdGljIHVuc2lnbmVkIGludCBfX2NwdWluaXQgaW50ZWxfc2l6ZV9jYWNoZShzdHJ1Y3QgY3B1aW5mb194ODYgKmMsIHVuc2lnbmVkIGludCBzaXplKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbF82NC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbF82NC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMTljNTgKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsXzY0LmMKQEAgLTAsMCArMSw5NSBAQAorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXAuaD4KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CisjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgorI2luY2x1ZGUgPGFzbS9udW1hXzY0Lmg+CisKKyNpbmNsdWRlICJjcHUuaCIKKworc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2luaXRfaW50ZWwoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWlmICgoYy0+eDg2ID09IDB4ZiAmJiBjLT54ODZfbW9kZWwgPj0gMHgwMykgfHwKKwkgICAgKGMtPng4NiA9PSAweDYgJiYgYy0+eDg2X21vZGVsID49IDB4MGUpKQorCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpOworCisJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfU1lTRU5URVIzMik7Cit9CisKKy8qCisgKiBmaW5kIG91dCB0aGUgbnVtYmVyIG9mIHByb2Nlc3NvciBjb3JlcyBvbiB0aGUgZGllCisgKi8KK3N0YXRpYyBpbnQgX19jcHVpbml0IGludGVsX251bV9jcHVfY29yZXMoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCXVuc2lnbmVkIGludCBlYXgsIHQ7CisKKwlpZiAoYy0+Y3B1aWRfbGV2ZWwgPCA0KQorCQlyZXR1cm4gMTsKKworCWNwdWlkX2NvdW50KDQsIDAsICZlYXgsICZ0LCAmdCwgJnQpOworCisJaWYgKGVheCAmIDB4MWYpCisJCXJldHVybiAoKGVheCA+PiAyNikgKyAxKTsKKwllbHNlCisJCXJldHVybiAxOworfQorCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgc3JhdF9kZXRlY3Rfbm9kZSh2b2lkKQoreworI2lmZGVmIENPTkZJR19OVU1BCisJdW5zaWduZWQgbm9kZTsKKwlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCWludCBhcGljaWQgPSBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKTsKKworCS8qIERvbid0IGRvIHRoZSBmdW5reSBmYWxsYmFjayBoZXVyaXN0aWNzIHRoZSBBTUQgdmVyc2lvbiBlbXBsb3lzCisJICAgZm9yIG5vdy4gKi8KKwlub2RlID0gYXBpY2lkX3RvX25vZGVbYXBpY2lkXTsKKwlpZiAobm9kZSA9PSBOVU1BX05PX05PREUgfHwgIW5vZGVfb25saW5lKG5vZGUpKQorCQlub2RlID0gZmlyc3Rfbm9kZShub2RlX29ubGluZV9tYXApOworCW51bWFfc2V0X25vZGUoY3B1LCBub2RlKTsKKworCXByaW50ayhLRVJOX0lORk8gIkNQVSAlZC8leCAtPiBOb2RlICVkXG4iLCBjcHUsIGFwaWNpZCwgbm9kZSk7CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IGluaXRfaW50ZWwoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWluaXRfaW50ZWxfY2FjaGVpbmZvKGMpOworCWlmIChjLT5jcHVpZF9sZXZlbCA+IDkpIHsKKwkJdW5zaWduZWQgZWF4ID0gY3B1aWRfZWF4KDEwKTsKKwkJLyogQ2hlY2sgZm9yIHZlcnNpb24gYW5kIHRoZSBudW1iZXIgb2YgY291bnRlcnMgKi8KKwkJaWYgKChlYXggJiAweGZmKSAmJiAoKChlYXg+PjgpICYgMHhmZikgPiAxKSkKKwkJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0FSQ0hfUEVSRk1PTik7CisJfQorCisJaWYgKGNwdV9oYXNfZHMpIHsKKwkJdW5zaWduZWQgaW50IGwxLCBsMjsKKwkJcmRtc3IoTVNSX0lBMzJfTUlTQ19FTkFCTEUsIGwxLCBsMik7CisJCWlmICghKGwxICYgKDE8PDExKSkpCisJCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9CVFMpOworCQlpZiAoIShsMSAmICgxPDwxMikpKQorCQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUEVCUyk7CisJfQorCisKKwlpZiAoY3B1X2hhc19idHMpCisJCWRzX2luaXRfaW50ZWwoYyk7CisKKwlpZiAoYy0+eDg2ID09IDE1KQorCQljLT54ODZfY2FjaGVfYWxpZ25tZW50ID0gYy0+eDg2X2NsZmx1c2hfc2l6ZSAqIDI7CisJaWYgKGMtPng4NiA9PSA2KQorCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9SRVBfR09PRCk7CisJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfTEZFTkNFX1JEVFNDKTsKKwljLT54ODZfbWF4X2NvcmVzID0gaW50ZWxfbnVtX2NwdV9jb3JlcyhjKTsKKworCXNyYXRfZGV0ZWN0X25vZGUoKTsKK30KKworc3RhdGljIHN0cnVjdCBjcHVfZGV2IGludGVsX2NwdV9kZXYgX19jcHVpbml0ZGF0YSA9IHsKKwkuY192ZW5kb3IJPSAiSW50ZWwiLAorCS5jX2lkZW50CT0geyAiR2VudWluZUludGVsIiB9LAorCS5jX2Vhcmx5X2luaXQgICA9IGVhcmx5X2luaXRfaW50ZWwsCisJLmNfaW5pdAkJPSBpbml0X2ludGVsLAorfTsKK2NwdV92ZW5kb3JfZGV2X3JlZ2lzdGVyKFg4Nl9WRU5ET1JfSU5URUwsICZpbnRlbF9jcHVfZGV2KTsKKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbF9jYWNoZWluZm8uYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWxfY2FjaGVpbmZvLmMKaW5kZXggMjZkNjE1ZC4uMmM4YWZhZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbF9jYWNoZWluZm8uYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsX2NhY2hlaW5mby5jCkBAIC02Miw2ICs2Miw3IEBACiAJeyAweDRiLCBMVkxfMywgICAgICA4MTkyIH0sCS8qIDE2LXdheSBzZXQgYXNzb2MsIDY0IGJ5dGUgbGluZSBzaXplICovCiAJeyAweDRjLCBMVkxfMywgICAgIDEyMjg4IH0sCS8qIDEyLXdheSBzZXQgYXNzb2MsIDY0IGJ5dGUgbGluZSBzaXplICovCiAJeyAweDRkLCBMVkxfMywgICAgIDE2Mzg0IH0sCS8qIDE2LXdheSBzZXQgYXNzb2MsIDY0IGJ5dGUgbGluZSBzaXplICovCisJeyAweDRlLCBMVkxfMiwgICAgICA2MTQ0IH0sCS8qIDI0LXdheSBzZXQgYXNzb2MsIDY0IGJ5dGUgbGluZSBzaXplICovCiAJeyAweDYwLCBMVkxfMV9EQVRBLCAxNiB9LAkvKiA4LXdheSBzZXQgYXNzb2MsIHNlY3RvcmVkIGNhY2hlLCA2NCBieXRlIGxpbmUgc2l6ZSAqLwogCXsgMHg2NiwgTFZMXzFfREFUQSwgOCB9LAkvKiA0LXdheSBzZXQgYXNzb2MsIHNlY3RvcmVkIGNhY2hlLCA2NCBieXRlIGxpbmUgc2l6ZSAqLwogCXsgMHg2NywgTFZMXzFfREFUQSwgMTYgfSwJLyogNC13YXkgc2V0IGFzc29jLCBzZWN0b3JlZCBjYWNoZSwgNjQgYnl0ZSBsaW5lIHNpemUgKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL2s3LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9rNy5jCmluZGV4IGU2MzNjOWMuLmYzOTBjOWYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL2s3LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svazcuYwpAQCAtOSwyMyArOSwyMyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogCi0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPiAKKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KIAogI2luY2x1ZGUgIm1jZS5oIgogCiAvKiBNYWNoaW5lIENoZWNrIEhhbmRsZXIgRm9yIEFNRCBBdGhsb24vRHVyb24gKi8KLXN0YXRpYyB2b2lkIGs3X21hY2hpbmVfY2hlY2soc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBsb25nIGVycm9yX2NvZGUpCitzdGF0aWMgdm9pZCBrN19tYWNoaW5lX2NoZWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCiB7Ci0JaW50IHJlY292ZXI9MTsKKwlpbnQgcmVjb3ZlciA9IDE7CiAJdTMyIGFsb3csIGFoaWdoLCBoaWdoLCBsb3c7CiAJdTMyIG1jZ3N0bCwgbWNnc3RoOwogCWludCBpOwogCi0JcmRtc3IgKE1TUl9JQTMyX01DR19TVEFUVVMsIG1jZ3N0bCwgbWNnc3RoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfU1RBVFVTLCBtY2dzdGwsIG1jZ3N0aCk7CiAJaWYgKG1jZ3N0bCAmICgxPDwwKSkJLyogUmVjb3ZlcmFibGUgPyAqLwotCQlyZWNvdmVyPTA7CisJCXJlY292ZXIgPSAwOwogCiAJcHJpbnRrKEtFUk5fRU1FUkcgIkNQVSAlZDogTWFjaGluZSBDaGVjayBFeGNlcHRpb246ICUwOHglMDh4XG4iLAogCQlzbXBfcHJvY2Vzc29yX2lkKCksIG1jZ3N0aCwgbWNnc3RsKTsKQEAgLTYwLDEyICs2MCwxMiBAQAogCX0KIAogCWlmIChyZWNvdmVyJjIpCi0JCXBhbmljICgiQ1BVIGNvbnRleHQgY29ycnVwdCIpOworCQlwYW5pYygiQ1BVIGNvbnRleHQgY29ycnVwdCIpOwogCWlmIChyZWNvdmVyJjEpCi0JCXBhbmljICgiVW5hYmxlIHRvIGNvbnRpbnVlIik7Ci0JcHJpbnRrIChLRVJOX0VNRVJHICJBdHRlbXB0aW5nIHRvIGNvbnRpbnVlLlxuIik7CisJCXBhbmljKCJVbmFibGUgdG8gY29udGludWUiKTsKKwlwcmludGsoS0VSTl9FTUVSRyAiQXR0ZW1wdGluZyB0byBjb250aW51ZS5cbiIpOwogCW1jZ3N0bCAmPSB+KDE8PDIpOwotCXdybXNyIChNU1JfSUEzMl9NQ0dfU1RBVFVTLG1jZ3N0bCwgbWNnc3RoKTsKKwl3cm1zcihNU1JfSUEzMl9NQ0dfU1RBVFVTLCBtY2dzdGwsIG1jZ3N0aCk7CiB9CiAKIApAQCAtODEsMjUgKzgxLDI1IEBACiAJbWFjaGluZV9jaGVja192ZWN0b3IgPSBrN19tYWNoaW5lX2NoZWNrOwogCXdtYigpOwogCi0JcHJpbnRrIChLRVJOX0lORk8gIkludGVsIG1hY2hpbmUgY2hlY2sgYXJjaGl0ZWN0dXJlIHN1cHBvcnRlZC5cbiIpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfQ0FQLCBsLCBoKTsKKwlwcmludGsoS0VSTl9JTkZPICJJbnRlbCBtYWNoaW5lIGNoZWNrIGFyY2hpdGVjdHVyZSBzdXBwb3J0ZWQuXG4iKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfQ0FQLCBsLCBoKTsKIAlpZiAobCAmICgxPDw4KSkJLyogQ29udHJvbCByZWdpc3RlciBwcmVzZW50ID8gKi8KLQkJd3Jtc3IgKE1TUl9JQTMyX01DR19DVEwsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOworCQl3cm1zcihNU1JfSUEzMl9NQ0dfQ1RMLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKIAlucl9tY2VfYmFua3MgPSBsICYgMHhmZjsKIAogCS8qIENsZWFyIHN0YXR1cyBmb3IgTUMgaW5kZXggMCBzZXBhcmF0ZWx5LCB3ZSBkb24ndCB0b3VjaCBDVEwsCiAJICogYXMgc29tZSBLNyBBdGhsb25zIGNhdXNlIHNwdXJpb3VzIE1DRXMgd2hlbiBpdHMgZW5hYmxlZC4gKi8KIAlpZiAoYm9vdF9jcHVfZGF0YS54ODYgPT0gNikgewotCQl3cm1zciAoTVNSX0lBMzJfTUMwX1NUQVRVUywgMHgwLCAweDApOworCQl3cm1zcihNU1JfSUEzMl9NQzBfU1RBVFVTLCAweDAsIDB4MCk7CiAJCWkgPSAxOwogCX0gZWxzZQogCQlpID0gMDsKLQlmb3IgKDsgaTxucl9tY2VfYmFua3M7IGkrKykgewotCQl3cm1zciAoTVNSX0lBMzJfTUMwX0NUTCs0KmksIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOwotCQl3cm1zciAoTVNSX0lBMzJfTUMwX1NUQVRVUys0KmksIDB4MCwgMHgwKTsKKwlmb3IgKDsgaSA8IG5yX21jZV9iYW5rczsgaSsrKSB7CisJCXdybXNyKE1TUl9JQTMyX01DMF9DVEwrNCppLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKKwkJd3Jtc3IoTVNSX0lBMzJfTUMwX1NUQVRVUys0KmksIDB4MCwgMHgwKTsKIAl9CiAKLQlzZXRfaW5fY3I0IChYODZfQ1I0X01DRSk7Ci0JcHJpbnRrIChLRVJOX0lORk8gIkludGVsIG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGVuYWJsZWQgb24gQ1BVIyVkLlxuIiwKKwlzZXRfaW5fY3I0KFg4Nl9DUjRfTUNFKTsKKwlwcmludGsoS0VSTl9JTkZPICJJbnRlbCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFibGVkIG9uIENQVSMlZC5cbiIsCiAJCXNtcF9wcm9jZXNzb3JfaWQoKSk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9tY2VfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZV82NC5jCmluZGV4IDQzYjdjYjUuLmM0YTdlYzMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZV82NC5jCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+CiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KQEAgLTMxLDcgKzMyLDcgQEAKICNpbmNsdWRlIDxhc20vaWRsZS5oPgogCiAjZGVmaW5lIE1JU0NfTUNFTE9HX01JTk9SIDIyNwotI2RlZmluZSBOUl9CQU5LUyA2CisjZGVmaW5lIE5SX1NZU0ZTX0JBTktTIDYKIAogYXRvbWljX3QgbWNlX2VudHJ5OwogCkBAIC00Niw3ICs0Nyw3IEBACiAgKi8KIHN0YXRpYyBpbnQgdG9sZXJhbnQgPSAxOwogc3RhdGljIGludCBiYW5rczsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGJhbmtbTlJfQkFOS1NdID0geyBbMCAuLi4gTlJfQkFOS1MtMV0gPSB+MFVMIH07CitzdGF0aWMgdW5zaWduZWQgbG9uZyBiYW5rW05SX1NZU0ZTX0JBTktTXSA9IHsgWzAgLi4uIE5SX1NZU0ZTX0JBTktTLTFdID0gfjBVTCB9Owogc3RhdGljIHVuc2lnbmVkIGxvbmcgbm90aWZ5X3VzZXI7CiBzdGF0aWMgaW50IHJpcF9tc3I7CiBzdGF0aWMgaW50IG1jZV9ib290bG9nID0gLTE7CkBAIC0yMDksNyArMjEwLDcgQEAKIAliYXJyaWVyKCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYmFua3M7IGkrKykgewotCQlpZiAoIWJhbmtbaV0pCisJCWlmIChpIDwgTlJfU1lTRlNfQkFOS1MgJiYgIWJhbmtbaV0pCiAJCQljb250aW51ZTsKIAogCQltLm1pc2MgPSAwOwpAQCAtNDQ0LDkgKzQ0NSwxMCBAQAogCiAJcmRtc3JsKE1TUl9JQTMyX01DR19DQVAsIGNhcCk7CiAJYmFua3MgPSBjYXAgJiAweGZmOwotCWlmIChiYW5rcyA+IE5SX0JBTktTKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIk1DRTogd2FybmluZzogdXNpbmcgb25seSAlZCBiYW5rc1xuIiwgYmFua3MpOwotCQliYW5rcyA9IE5SX0JBTktTOworCWlmIChiYW5rcyA+IE1DRV9FWFRFTkRFRF9CQU5LKSB7CisJCWJhbmtzID0gTUNFX0VYVEVOREVEX0JBTks7CisJCXByaW50ayhLRVJOX0lORk8gIk1DRTogd2FybmluZzogdXNpbmcgb25seSAlZCBiYW5rc1xuIiwKKwkJICAgICAgIE1DRV9FWFRFTkRFRF9CQU5LKTsKIAl9CiAJLyogVXNlIGFjY3VyYXRlIFJJUCByZXBvcnRpbmcgaWYgYXZhaWxhYmxlLiAqLwogCWlmICgoY2FwICYgKDE8PDkpKSAmJiAoKGNhcCA+PiAxNikgJiAweGZmKSA+PSA5KQpAQCAtNDYyLDcgKzQ2NCwxMSBAQAogCQl3cm1zcihNU1JfSUEzMl9NQ0dfQ1RMLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKIAogCWZvciAoaSA9IDA7IGkgPCBiYW5rczsgaSsrKSB7Ci0JCXdybXNybChNU1JfSUEzMl9NQzBfQ1RMKzQqaSwgYmFua1tpXSk7CisJCWlmIChpIDwgTlJfU1lTRlNfQkFOS1MpCisJCQl3cm1zcmwoTVNSX0lBMzJfTUMwX0NUTCs0KmksIGJhbmtbaV0pOworCQllbHNlCisJCQl3cm1zcmwoTVNSX0lBMzJfTUMwX0NUTCs0KmksIH4wVUwpOworCiAJCXdybXNybChNU1JfSUEzMl9NQzBfU1RBVFVTKzQqaSwgMCk7CiAJfQogfQpAQCAtNTI3LDEwICs1MzMsMTIgQEAKIAogc3RhdGljIGludCBtY2Vfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9jaygmbWNlX3N0YXRlX2xvY2spOwogCiAJaWYgKG9wZW5fZXhjbHUgfHwgKG9wZW5fY291bnQgJiYgKGZpbGUtPmZfZmxhZ3MgJiBPX0VYQ0wpKSkgewogCQlzcGluX3VubG9jaygmbWNlX3N0YXRlX2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC01MzksNiArNTQ3LDcgQEAKIAlvcGVuX2NvdW50Kys7CiAKIAlzcGluX3VubG9jaygmbWNlX3N0YXRlX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKIH0KQEAgLTc2Niw3ICs3NzUsMTAgQEAKIAl9CQkJCQkJCQlcCiAJc3RhdGljIFNZU0RFVl9BVFRSKG5hbWUsIDA2NDQsIHNob3dfICMjIG5hbWUsIHNldF8gIyMgbmFtZSk7CiAKLS8qIFRCRCBzaG91bGQgZ2VuZXJhdGUgdGhlc2UgZHluYW1pY2FsbHkgYmFzZWQgb24gbnVtYmVyIG9mIGF2YWlsYWJsZSBiYW5rcyAqLworLyoKKyAqIFRCRCBzaG91bGQgZ2VuZXJhdGUgdGhlc2UgZHluYW1pY2FsbHkgYmFzZWQgb24gbnVtYmVyIG9mIGF2YWlsYWJsZSBiYW5rcy4KKyAqIEhhdmUgb25seSA2IGNvbnRvbCBiYW5rcyBpbiAvc3lzZnMgdW50aWwgdGhlbi4KKyAqLwogQUNDRVNTT1IoYmFuazBjdGwsYmFua1swXSxtY2VfcmVzdGFydCgpKQogQUNDRVNTT1IoYmFuazFjdGwsYmFua1sxXSxtY2VfcmVzdGFydCgpKQogQUNDRVNTT1IoYmFuazJjdGwsYmFua1syXSxtY2VfcmVzdGFydCgpKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svcDQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL3A0LmMKaW5kZXggY2IwMzM0NS4uZWVmMDAxYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svcDQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9wNC5jCkBAIC04LDcgKzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogCi0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPiAKKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KICNpbmNsdWRlIDxhc20vYXBpYy5oPgpAQCAtMzIsMTIgKzMyLDEyIEBACiAJLyogdTMyICpyZXNlcnZlZFtdOyAqLwogfTsKIAotc3RhdGljIGludCBtY2VfbnVtX2V4dGVuZGVkX21zcnMgPSAwOworc3RhdGljIGludCBtY2VfbnVtX2V4dGVuZGVkX21zcnM7CiAKIAogI2lmZGVmIENPTkZJR19YODZfTUNFX1A0VEhFUk1BTAogc3RhdGljIHZvaWQgdW5leHBlY3RlZF90aGVybWFsX2ludGVycnVwdChzdHJ1Y3QgcHRfcmVncyAqcmVncykKLXsJCit7CiAJcHJpbnRrKEtFUk5fRVJSICJDUFUlZDogVW5leHBlY3RlZCBMVlQgVE1SIGludGVycnVwdCFcbiIsCiAJCQlzbXBfcHJvY2Vzc29yX2lkKCkpOwogCWFkZF90YWludChUQUlOVF9NQUNISU5FX0NIRUNLKTsKQEAgLTgzLDcgKzgzLDcgQEAKIAkgKiBiZSBzb21lIFNNTSBnb28gd2hpY2ggaGFuZGxlcyBpdCwgc28gd2UgY2FuJ3QgZXZlbiBwdXQgYSBoYW5kbGVyCiAJICogc2luY2UgaXQgbWlnaHQgYmUgZGVsaXZlcmVkIHZpYSBTTUkgYWxyZWFkeSAtendhbmVtLgogCSAqLwotCXJkbXNyIChNU1JfSUEzMl9NSVNDX0VOQUJMRSwgbCwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUlTQ19FTkFCTEUsIGwsIGgpOwogCWggPSBhcGljX3JlYWQoQVBJQ19MVlRUSE1SKTsKIAlpZiAoKGwgJiAoMTw8MykpICYmIChoICYgQVBJQ19ETV9TTUkpKSB7CiAJCXByaW50ayhLRVJOX0RFQlVHICJDUFUlZDogVGhlcm1hbCBtb25pdG9yaW5nIGhhbmRsZWQgYnkgU01JXG4iLApAQCAtOTEsNyArOTEsNyBAQAogCQlyZXR1cm47IC8qIC1FQlVTWSAqLwogCX0KIAotCS8qIGNoZWNrIHdoZXRoZXIgYSB2ZWN0b3IgYWxyZWFkeSBleGlzdHMsIHRlbXBvcmFyaWx5IG1hc2tlZD8gKi8JCisJLyogY2hlY2sgd2hldGhlciBhIHZlY3RvciBhbHJlYWR5IGV4aXN0cywgdGVtcG9yYXJpbHkgbWFza2VkPyAqLwogCWlmIChoICYgQVBJQ19WRUNUT1JfTUFTSykgewogCQlwcmludGsoS0VSTl9ERUJVRyAiQ1BVJWQ6IFRoZXJtYWwgTFZUIHZlY3RvciAoJSN4KSBhbHJlYWR5ICIKIAkJCQkiaW5zdGFsbGVkXG4iLApAQCAtMTA0LDE4ICsxMDQsMTggQEAKIAloIHw9IChBUElDX0RNX0ZJWEVEIHwgQVBJQ19MVlRfTUFTS0VEKTsJLyogd2UnbGwgbWFzayB0aWxsIHdlJ3JlIHJlYWR5ICovCiAJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlRUSE1SLCBoKTsKIAotCXJkbXNyIChNU1JfSUEzMl9USEVSTV9JTlRFUlJVUFQsIGwsIGgpOwotCXdybXNyIChNU1JfSUEzMl9USEVSTV9JTlRFUlJVUFQsIGwgfCAweDAzICwgaCk7CisJcmRtc3IoTVNSX0lBMzJfVEhFUk1fSU5URVJSVVBULCBsLCBoKTsKKwl3cm1zcihNU1JfSUEzMl9USEVSTV9JTlRFUlJVUFQsIGwgfCAweDAzICwgaCk7CiAKIAkvKiBvayB3ZSdyZSBnb29kIHRvIGdvLi4uICovCiAJdmVuZG9yX3RoZXJtYWxfaW50ZXJydXB0ID0gaW50ZWxfdGhlcm1hbF9pbnRlcnJ1cHQ7Ci0JCi0JcmRtc3IgKE1TUl9JQTMyX01JU0NfRU5BQkxFLCBsLCBoKTsKLQl3cm1zciAoTVNSX0lBMzJfTUlTQ19FTkFCTEUsIGwgfCAoMTw8MyksIGgpOwogCi0JbCA9IGFwaWNfcmVhZCAoQVBJQ19MVlRUSE1SKTsKLQlhcGljX3dyaXRlX2Fyb3VuZCAoQVBJQ19MVlRUSE1SLCBsICYgfkFQSUNfTFZUX01BU0tFRCk7Ci0JcHJpbnRrIChLRVJOX0lORk8gIkNQVSVkOiBUaGVybWFsIG1vbml0b3JpbmcgZW5hYmxlZFxuIiwgY3B1KTsKKwlyZG1zcihNU1JfSUEzMl9NSVNDX0VOQUJMRSwgbCwgaCk7CisJd3Jtc3IoTVNSX0lBMzJfTUlTQ19FTkFCTEUsIGwgfCAoMTw8MyksIGgpOworCisJbCA9IGFwaWNfcmVhZChBUElDX0xWVFRITVIpOworCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUVEhNUiwgbCAmIH5BUElDX0xWVF9NQVNLRUQpOworCXByaW50ayhLRVJOX0lORk8gIkNQVSVkOiBUaGVybWFsIG1vbml0b3JpbmcgZW5hYmxlZFxuIiwgY3B1KTsKIAogCS8qIGVuYWJsZSB0aGVybWFsIHRocm90dGxlIHByb2Nlc3NpbmcgKi8KIAlhdG9taWNfc2V0KCZ0aGVybV90aHJvdF9lbiwgMSk7CkBAIC0xMjksMjggKzEyOSwyOCBAQAogewogCXUzMiBoOwogCi0JcmRtc3IgKE1TUl9JQTMyX01DR19FQVgsIHItPmVheCwgaCk7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19FQlgsIHItPmVieCwgaCk7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19FQ1gsIHItPmVjeCwgaCk7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19FRFgsIHItPmVkeCwgaCk7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19FU0ksIHItPmVzaSwgaCk7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19FREksIHItPmVkaSwgaCk7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19FQlAsIHItPmVicCwgaCk7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19FU1AsIHItPmVzcCwgaCk7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19FRkxBR1MsIHItPmVmbGFncywgaCk7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19FSVAsIHItPmVpcCwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VBWCwgci0+ZWF4LCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRUJYLCByLT5lYngsIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FQ1gsIHItPmVjeCwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VEWCwgci0+ZWR4LCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRVNJLCByLT5lc2ksIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FREksIHItPmVkaSwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VCUCwgci0+ZWJwLCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRVNQLCByLT5lc3AsIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FRkxBR1MsIHItPmVmbGFncywgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VJUCwgci0+ZWlwLCBoKTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfbWFjaGluZV9jaGVjayhzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKK3N0YXRpYyB2b2lkIGludGVsX21hY2hpbmVfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKIHsKLQlpbnQgcmVjb3Zlcj0xOworCWludCByZWNvdmVyID0gMTsKIAl1MzIgYWxvdywgYWhpZ2gsIGhpZ2gsIGxvdzsKIAl1MzIgbWNnc3RsLCBtY2dzdGg7CiAJaW50IGk7CiAKLQlyZG1zciAoTVNSX0lBMzJfTUNHX1NUQVRVUywgbWNnc3RsLCBtY2dzdGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19TVEFUVVMsIG1jZ3N0bCwgbWNnc3RoKTsKIAlpZiAobWNnc3RsICYgKDE8PDApKQkvKiBSZWNvdmVyYWJsZSA/ICovCi0JCXJlY292ZXI9MDsKKwkJcmVjb3ZlciA9IDA7CiAKIAlwcmludGsoS0VSTl9FTUVSRyAiQ1BVICVkOiBNYWNoaW5lIENoZWNrIEV4Y2VwdGlvbjogJTA4eCUwOHhcbiIsCiAJCXNtcF9wcm9jZXNzb3JfaWQoKSwgbWNnc3RoLCBtY2dzdGwpOwpAQCAtMTkxLDIwICsxOTEsMjAgQEAKIAl9CiAKIAlpZiAocmVjb3ZlciAmIDIpCi0JCXBhbmljICgiQ1BVIGNvbnRleHQgY29ycnVwdCIpOworCQlwYW5pYygiQ1BVIGNvbnRleHQgY29ycnVwdCIpOwogCWlmIChyZWNvdmVyICYgMSkKLQkJcGFuaWMgKCJVbmFibGUgdG8gY29udGludWUiKTsKKwkJcGFuaWMoIlVuYWJsZSB0byBjb250aW51ZSIpOwogCiAJcHJpbnRrKEtFUk5fRU1FUkcgIkF0dGVtcHRpbmcgdG8gY29udGludWUuXG4iKTsKLQkvKiAKLQkgKiBEbyBub3QgY2xlYXIgdGhlIE1TUl9JQTMyX01DaV9TVEFUVVMgaWYgdGhlIGVycm9yIGlzIG5vdCAKKwkvKgorCSAqIERvIG5vdCBjbGVhciB0aGUgTVNSX0lBMzJfTUNpX1NUQVRVUyBpZiB0aGUgZXJyb3IgaXMgbm90CiAJICogcmVjb3ZlcmFibGUvY29udGludWFibGUuVGhpcyB3aWxsIGFsbG93IEJJT1MgdG8gbG9vayBhdCB0aGUgTVNScwogCSAqIGZvciBlcnJvcnMgaWYgdGhlIE9TIGNvdWxkIG5vdCBsb2cgdGhlIGVycm9yLgogCSAqLwotCWZvciAoaT0wOyBpPG5yX21jZV9iYW5rczsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IG5yX21jZV9iYW5rczsgaSsrKSB7CiAJCXUzMiBtc3I7CiAJCW1zciA9IE1TUl9JQTMyX01DMF9TVEFUVVMraSo0OwotCQlyZG1zciAobXNyLCBsb3csIGhpZ2gpOworCQlyZG1zcihtc3IsIGxvdywgaGlnaCk7CiAJCWlmIChoaWdoJigxPDwzMSkpIHsKIAkJCS8qIENsZWFyIGl0ICovCiAJCQl3cm1zcihtc3IsIDBVTCwgMFVMKTsKQEAgLTIxNCw3ICsyMTQsNyBAQAogCQl9CiAJfQogCW1jZ3N0bCAmPSB+KDE8PDIpOwotCXdybXNyIChNU1JfSUEzMl9NQ0dfU1RBVFVTLG1jZ3N0bCwgbWNnc3RoKTsKKwl3cm1zcihNU1JfSUEzMl9NQ0dfU1RBVFVTLCBtY2dzdGwsIG1jZ3N0aCk7CiB9CiAKIApAQCAtMjIyLDMwICsyMjIsMzAgQEAKIHsKIAl1MzIgbCwgaDsKIAlpbnQgaTsKLQkKKwogCW1hY2hpbmVfY2hlY2tfdmVjdG9yID0gaW50ZWxfbWFjaGluZV9jaGVjazsKIAl3bWIoKTsKIAotCXByaW50ayAoS0VSTl9JTkZPICJJbnRlbCBtYWNoaW5lIGNoZWNrIGFyY2hpdGVjdHVyZSBzdXBwb3J0ZWQuXG4iKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0NBUCwgbCwgaCk7CisJcHJpbnRrKEtFUk5fSU5GTyAiSW50ZWwgbWFjaGluZSBjaGVjayBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLlxuIik7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0NBUCwgbCwgaCk7CiAJaWYgKGwgJiAoMTw8OCkpCS8qIENvbnRyb2wgcmVnaXN0ZXIgcHJlc2VudCA/ICovCi0JCXdybXNyIChNU1JfSUEzMl9NQ0dfQ1RMLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKKwkJd3Jtc3IoTVNSX0lBMzJfTUNHX0NUTCwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7CiAJbnJfbWNlX2JhbmtzID0gbCAmIDB4ZmY7CiAKLQlmb3IgKGk9MDsgaTxucl9tY2VfYmFua3M7IGkrKykgewotCQl3cm1zciAoTVNSX0lBMzJfTUMwX0NUTCs0KmksIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOwotCQl3cm1zciAoTVNSX0lBMzJfTUMwX1NUQVRVUys0KmksIDB4MCwgMHgwKTsKKwlmb3IgKGkgPSAwOyBpIDwgbnJfbWNlX2JhbmtzOyBpKyspIHsKKwkJd3Jtc3IoTVNSX0lBMzJfTUMwX0NUTCs0KmksIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOworCQl3cm1zcihNU1JfSUEzMl9NQzBfU1RBVFVTKzQqaSwgMHgwLCAweDApOwogCX0KIAotCXNldF9pbl9jcjQgKFg4Nl9DUjRfTUNFKTsKLQlwcmludGsgKEtFUk5fSU5GTyAiSW50ZWwgbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZCBvbiBDUFUjJWQuXG4iLAorCXNldF9pbl9jcjQoWDg2X0NSNF9NQ0UpOworCXByaW50ayhLRVJOX0lORk8gIkludGVsIG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGVuYWJsZWQgb24gQ1BVIyVkLlxuIiwKIAkJc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAogCS8qIENoZWNrIGZvciBQNC9YZW9uIGV4dGVuZGVkIE1DRSBNU1JzICovCi0JcmRtc3IgKE1TUl9JQTMyX01DR19DQVAsIGwsIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19DQVAsIGwsIGgpOwogCWlmIChsICYgKDE8PDkpKQl7LyogTUNHX0VYVF9QICovCiAJCW1jZV9udW1fZXh0ZW5kZWRfbXNycyA9IChsID4+IDE2KSAmIDB4ZmY7Ci0JCXByaW50ayAoS0VSTl9JTkZPICJDUFUlZDogSW50ZWwgUDQvWGVvbiBFeHRlbmRlZCBNQ0UgTVNScyAoJWQpIgorCQlwcmludGsoS0VSTl9JTkZPICJDUFUlZDogSW50ZWwgUDQvWGVvbiBFeHRlbmRlZCBNQ0UgTVNScyAoJWQpIgogCQkJCSIgYXZhaWxhYmxlXG4iLAogCQkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBtY2VfbnVtX2V4dGVuZGVkX21zcnMpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvZ2VuZXJpYy5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL2dlbmVyaWMuYwppbmRleCA1ZDI0MWNlLi41MDliZDNkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvZ2VuZXJpYy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9nZW5lcmljLmMKQEAgLTM3LDcgKzM3LDcgQEAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNtcF9jaGFuZ2VzX21hc2s7CiBzdGF0aWMgc3RydWN0IG10cnJfc3RhdGUgbXRycl9zdGF0ZSA9IHt9Owogc3RhdGljIGludCBtdHJyX3N0YXRlX3NldDsKLXN0YXRpYyB1NjQgdG9tMjsKK3U2NCBtdHJyX3RvbTI7CiAKICN1bmRlZiBNT0RVTEVfUEFSQU1fUFJFRklYCiAjZGVmaW5lIE1PRFVMRV9QQVJBTV9QUkVGSVggIm10cnIuIgpAQCAtMTM5LDggKzEzOSw4IEBACiAJCX0KIAl9CiAKLQlpZiAodG9tMikgewotCQlpZiAoc3RhcnQgPj0gKDFVTEw8PDMyKSAmJiAoZW5kIDwgdG9tMikpCisJaWYgKG10cnJfdG9tMikgeworCQlpZiAoc3RhcnQgPj0gKDFVTEw8PDMyKSAmJiAoZW5kIDwgbXRycl90b20yKSkKIAkJCXJldHVybiBNVFJSX1RZUEVfV1JCQUNLOwogCX0KIApAQCAtMTU4LDYgKzE1OCwyMCBAQAogCXJkbXNyKE1UUlJwaHlzTWFza19NU1IoaW5kZXgpLCB2ci0+bWFza19sbywgdnItPm1hc2tfaGkpOwogfQogCisvKiAgZmlsbCB0aGUgTVNSIHBhaXIgcmVsYXRpbmcgdG8gYSB2YXIgcmFuZ2UgICovCit2b2lkIGZpbGxfbXRycl92YXJfcmFuZ2UodW5zaWduZWQgaW50IGluZGV4LAorCQl1MzIgYmFzZV9sbywgdTMyIGJhc2VfaGksIHUzMiBtYXNrX2xvLCB1MzIgbWFza19oaSkKK3sKKwlzdHJ1Y3QgbXRycl92YXJfcmFuZ2UgKnZyOworCisJdnIgPSBtdHJyX3N0YXRlLnZhcl9yYW5nZXM7CisKKwl2cltpbmRleF0uYmFzZV9sbyA9IGJhc2VfbG87CisJdnJbaW5kZXhdLmJhc2VfaGkgPSBiYXNlX2hpOworCXZyW2luZGV4XS5tYXNrX2xvID0gbWFza19sbzsKKwl2cltpbmRleF0ubWFza19oaSA9IG1hc2tfaGk7Cit9CisKIHN0YXRpYyB2b2lkCiBnZXRfZml4ZWRfcmFuZ2VzKG10cnJfdHlwZSAqIGZycykKIHsKQEAgLTIxMywxMyArMjI3LDEzIEBACiAJbXRycl9zdGF0ZS5lbmFibGVkID0gKGxvICYgMHhjMDApID4+IDEwOwogCiAJaWYgKGFtZF9zcGVjaWFsX2RlZmF1bHRfbXRycigpKSB7Ci0JCXVuc2lnbmVkIGxvLCBoaTsKKwkJdW5zaWduZWQgbG93LCBoaWdoOwogCQkvKiBUT1BfTUVNMiAqLwotCQlyZG1zcihNU1JfSzhfVE9QX01FTTIsIGxvLCBoaSk7Ci0JCXRvbTIgPSBoaTsKLQkJdG9tMiA8PD0gMzI7Ci0JCXRvbTIgfD0gbG87Ci0JCXRvbTIgJj0gMHhmZmZmZmY4MDAwMDAwVUxMOworCQlyZG1zcihNU1JfSzhfVE9QX01FTTIsIGxvdywgaGlnaCk7CisJCW10cnJfdG9tMiA9IGhpZ2g7CisJCW10cnJfdG9tMiA8PD0gMzI7CisJCW10cnJfdG9tMiB8PSBsb3c7CisJCW10cnJfdG9tMiAmPSAweGZmZmZmZjgwMDAwMFVMTDsKIAl9CiAJaWYgKG10cnJfc2hvdykgewogCQlpbnQgaGlnaF93aWR0aDsKQEAgLTI1MSw5ICsyNjUsOSBAQAogCQkJZWxzZQogCQkJCXByaW50ayhLRVJOX0lORk8gIk1UUlIgJXUgZGlzYWJsZWRcbiIsIGkpOwogCQl9Ci0JCWlmICh0b20yKSB7CisJCWlmIChtdHJyX3RvbTIpIHsKIAkJCXByaW50ayhLRVJOX0lORk8gIlRPTTI6ICUwMTZsbHggYWthICVsbGRNXG4iLAotCQkJCQkgIHRvbTIsIHRvbTI+PjIwKTsKKwkJCQkJICBtdHJyX3RvbTIsIG10cnJfdG9tMj4+MjApOwogCQl9CiAJfQogCW10cnJfc3RhdGVfc2V0ID0gMTsKQEAgLTMyOCw3ICszNDIsNyBAQAogCiAJaWYgKGxvICE9IG1zcndvcmRzWzBdIHx8IGhpICE9IG1zcndvcmRzWzFdKSB7CiAJCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQgJiYKLQkJICAgIGJvb3RfY3B1X2RhdGEueDg2ID09IDE1ICYmCisJCSAgICAoYm9vdF9jcHVfZGF0YS54ODYgPj0gMHgwZiAmJiBib290X2NwdV9kYXRhLng4NiA8PSAweDExKSAmJgogCQkgICAgKChtc3J3b3Jkc1swXSB8IG1zcndvcmRzWzFdKSAmIEs4X01UUlJfUkRNRU1fV1JNRU1fTUFTSykpCiAJCQlrOF9lbmFibGVfZml4ZWRfaW9ycnMoKTsKIAkJbXRycl93cm1zcihtc3IsIG1zcndvcmRzWzBdLCBtc3J3b3Jkc1sxXSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvbWFpbi5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL21haW4uYwppbmRleCAyOTA2NTJjLi42ZjIzOTY5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvbWFpbi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9tYWluLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NvcnQuaD4KIAogI2luY2x1ZGUgPGFzbS9lODIwLmg+CiAjaW5jbHVkZSA8YXNtL210cnIuaD4KQEAgLTYwOSw2ICs2MTAsNzg3IEBACiAJLnJlc3VtZQkJPSBtdHJyX3Jlc3RvcmUsCiB9OwogCisvKiBzaG91bGQgYmUgcmVsYXRlZCB0byBNVFJSX1ZBUl9SQU5HRVMgbnVtcyAqLworI2RlZmluZSBSQU5HRV9OVU0gMjU2CisKK3N0cnVjdCByZXNfcmFuZ2UgeworCXVuc2lnbmVkIGxvbmcgc3RhcnQ7CisJdW5zaWduZWQgbG9uZyBlbmQ7Cit9OworCitzdGF0aWMgaW50IF9faW5pdAorYWRkX3JhbmdlKHN0cnVjdCByZXNfcmFuZ2UgKnJhbmdlLCBpbnQgbnJfcmFuZ2UsIHVuc2lnbmVkIGxvbmcgc3RhcnQsCisJCQkgICAgICB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwkvKiBvdXQgb2Ygc2xvdHMgKi8KKwlpZiAobnJfcmFuZ2UgPj0gUkFOR0VfTlVNKQorCQlyZXR1cm4gbnJfcmFuZ2U7CisKKwlyYW5nZVtucl9yYW5nZV0uc3RhcnQgPSBzdGFydDsKKwlyYW5nZVtucl9yYW5nZV0uZW5kID0gZW5kOworCisJbnJfcmFuZ2UrKzsKKworCXJldHVybiBucl9yYW5nZTsKK30KKworc3RhdGljIGludCBfX2luaXQKK2FkZF9yYW5nZV93aXRoX21lcmdlKHN0cnVjdCByZXNfcmFuZ2UgKnJhbmdlLCBpbnQgbnJfcmFuZ2UsIHVuc2lnbmVkIGxvbmcgc3RhcnQsCisJCQkgICAgICB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwlpbnQgaTsKKworCS8qIHRyeSB0byBtZXJnZSBpdCB3aXRoIG9sZCBvbmUgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykgeworCQl1bnNpZ25lZCBsb25nIGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQ7CisJCXVuc2lnbmVkIGxvbmcgY29tbW9uX3N0YXJ0LCBjb21tb25fZW5kOworCisJCWlmICghcmFuZ2VbaV0uZW5kKQorCQkJY29udGludWU7CisKKwkJY29tbW9uX3N0YXJ0ID0gbWF4KHJhbmdlW2ldLnN0YXJ0LCBzdGFydCk7CisJCWNvbW1vbl9lbmQgPSBtaW4ocmFuZ2VbaV0uZW5kLCBlbmQpOworCQlpZiAoY29tbW9uX3N0YXJ0ID4gY29tbW9uX2VuZCArIDEpCisJCQljb250aW51ZTsKKworCQlmaW5hbF9zdGFydCA9IG1pbihyYW5nZVtpXS5zdGFydCwgc3RhcnQpOworCQlmaW5hbF9lbmQgPSBtYXgocmFuZ2VbaV0uZW5kLCBlbmQpOworCisJCXJhbmdlW2ldLnN0YXJ0ID0gZmluYWxfc3RhcnQ7CisJCXJhbmdlW2ldLmVuZCA9ICBmaW5hbF9lbmQ7CisJCXJldHVybiBucl9yYW5nZTsKKwl9CisKKwkvKiBuZWVkIHRvIGFkZCB0aGF0ICovCisJcmV0dXJuIGFkZF9yYW5nZShyYW5nZSwgbnJfcmFuZ2UsIHN0YXJ0LCBlbmQpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQKK3N1YnRyYWN0X3JhbmdlKHN0cnVjdCByZXNfcmFuZ2UgKnJhbmdlLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwlpbnQgaSwgajsKKworCWZvciAoaiA9IDA7IGogPCBSQU5HRV9OVU07IGorKykgeworCQlpZiAoIXJhbmdlW2pdLmVuZCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChzdGFydCA8PSByYW5nZVtqXS5zdGFydCAmJiBlbmQgPj0gcmFuZ2Vbal0uZW5kKSB7CisJCQlyYW5nZVtqXS5zdGFydCA9IDA7CisJCQlyYW5nZVtqXS5lbmQgPSAwOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoc3RhcnQgPD0gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kIDwgcmFuZ2Vbal0uZW5kICYmCisJCSAgICByYW5nZVtqXS5zdGFydCA8IGVuZCArIDEpIHsKKwkJCXJhbmdlW2pdLnN0YXJ0ID0gZW5kICsgMTsKKwkJCWNvbnRpbnVlOworCQl9CisKKworCQlpZiAoc3RhcnQgPiByYW5nZVtqXS5zdGFydCAmJiBlbmQgPj0gcmFuZ2Vbal0uZW5kICYmCisJCSAgICByYW5nZVtqXS5lbmQgPiBzdGFydCAtIDEpIHsKKwkJCXJhbmdlW2pdLmVuZCA9IHN0YXJ0IC0gMTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKHN0YXJ0ID4gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kIDwgcmFuZ2Vbal0uZW5kKSB7CisJCQkvKiBmaW5kIHRoZSBuZXcgc3BhcmUgKi8KKwkJCWZvciAoaSA9IDA7IGkgPCBSQU5HRV9OVU07IGkrKykgeworCQkJCWlmIChyYW5nZVtpXS5lbmQgPT0gMCkKKwkJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoaSA8IFJBTkdFX05VTSkgeworCQkJCXJhbmdlW2ldLmVuZCA9IHJhbmdlW2pdLmVuZDsKKwkJCQlyYW5nZVtpXS5zdGFydCA9IGVuZCArIDE7CisJCQl9IGVsc2UgeworCQkJCXByaW50ayhLRVJOX0VSUiAicnVuIG9mIHNsb3QgaW4gcmFuZ2VzXG4iKTsKKwkJCX0KKwkJCXJhbmdlW2pdLmVuZCA9IHN0YXJ0IC0gMTsKKwkJCWNvbnRpbnVlOworCQl9CisJfQorfQorCitzdGF0aWMgaW50IF9faW5pdCBjbXBfcmFuZ2UoY29uc3Qgdm9pZCAqeDEsIGNvbnN0IHZvaWQgKngyKQoreworCWNvbnN0IHN0cnVjdCByZXNfcmFuZ2UgKnIxID0geDE7CisJY29uc3Qgc3RydWN0IHJlc19yYW5nZSAqcjIgPSB4MjsKKwlsb25nIHN0YXJ0MSwgc3RhcnQyOworCisJc3RhcnQxID0gcjEtPnN0YXJ0OworCXN0YXJ0MiA9IHIyLT5zdGFydDsKKworCXJldHVybiBzdGFydDEgLSBzdGFydDI7Cit9CisKK3N0cnVjdCB2YXJfbXRycl9yYW5nZV9zdGF0ZSB7CisJdW5zaWduZWQgbG9uZyBiYXNlX3BmbjsKKwl1bnNpZ25lZCBsb25nIHNpemVfcGZuOworCW10cnJfdHlwZSB0eXBlOworfTsKKworc3RydWN0IHZhcl9tdHJyX3JhbmdlX3N0YXRlIF9faW5pdGRhdGEgcmFuZ2Vfc3RhdGVbUkFOR0VfTlVNXTsKK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBkZWJ1Z19wcmludDsKKworc3RhdGljIGludCBfX2luaXQKK3g4Nl9nZXRfbXRycl9tZW1fcmFuZ2Uoc3RydWN0IHJlc19yYW5nZSAqcmFuZ2UsIGludCBucl9yYW5nZSwKKwkJICAgICAgIHVuc2lnbmVkIGxvbmcgZXh0cmFfcmVtb3ZlX2Jhc2UsCisJCSAgICAgICB1bnNpZ25lZCBsb25nIGV4dHJhX3JlbW92ZV9zaXplKQoreworCXVuc2lnbmVkIGxvbmcgaSwgYmFzZSwgc2l6ZTsKKwltdHJyX3R5cGUgdHlwZTsKKworCWZvciAoaSA9IDA7IGkgPCBudW1fdmFyX3JhbmdlczsgaSsrKSB7CisJCXR5cGUgPSByYW5nZV9zdGF0ZVtpXS50eXBlOworCQlpZiAodHlwZSAhPSBNVFJSX1RZUEVfV1JCQUNLKQorCQkJY29udGludWU7CisJCWJhc2UgPSByYW5nZV9zdGF0ZVtpXS5iYXNlX3BmbjsKKwkJc2l6ZSA9IHJhbmdlX3N0YXRlW2ldLnNpemVfcGZuOworCQlucl9yYW5nZSA9IGFkZF9yYW5nZV93aXRoX21lcmdlKHJhbmdlLCBucl9yYW5nZSwgYmFzZSwKKwkJCQkJCWJhc2UgKyBzaXplIC0gMSk7CisJfQorCWlmIChkZWJ1Z19wcmludCkgeworCQlwcmludGsoS0VSTl9ERUJVRyAiQWZ0ZXIgV0IgY2hlY2tpbmdcbiIpOworCQlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykKKwkJCXByaW50ayhLRVJOX0RFQlVHICJNVFJSIE1BUCBQRk46ICUwMTZseCAtICUwMTZseFxuIiwKKwkJCQkgcmFuZ2VbaV0uc3RhcnQsIHJhbmdlW2ldLmVuZCArIDEpOworCX0KKworCS8qIHRha2Ugb3V0IFVDIHJhbmdlcyAqLworCWZvciAoaSA9IDA7IGkgPCBudW1fdmFyX3JhbmdlczsgaSsrKSB7CisJCXR5cGUgPSByYW5nZV9zdGF0ZVtpXS50eXBlOworCQlpZiAodHlwZSAhPSBNVFJSX1RZUEVfVU5DQUNIQUJMRSkKKwkJCWNvbnRpbnVlOworCQlzaXplID0gcmFuZ2Vfc3RhdGVbaV0uc2l6ZV9wZm47CisJCWlmICghc2l6ZSkKKwkJCWNvbnRpbnVlOworCQliYXNlID0gcmFuZ2Vfc3RhdGVbaV0uYmFzZV9wZm47CisJCXN1YnRyYWN0X3JhbmdlKHJhbmdlLCBiYXNlLCBiYXNlICsgc2l6ZSAtIDEpOworCX0KKwlpZiAoZXh0cmFfcmVtb3ZlX3NpemUpCisJCXN1YnRyYWN0X3JhbmdlKHJhbmdlLCBleHRyYV9yZW1vdmVfYmFzZSwKKwkJCQkgZXh0cmFfcmVtb3ZlX2Jhc2UgKyBleHRyYV9yZW1vdmVfc2l6ZSAgLSAxKTsKKworCS8qIGdldCBuZXcgcmFuZ2UgbnVtICovCisJbnJfcmFuZ2UgPSAwOworCWZvciAoaSA9IDA7IGkgPCBSQU5HRV9OVU07IGkrKykgeworCQlpZiAoIXJhbmdlW2ldLmVuZCkKKwkJCWNvbnRpbnVlOworCQlucl9yYW5nZSsrOworCX0KKwlpZiAgKGRlYnVnX3ByaW50KSB7CisJCXByaW50ayhLRVJOX0RFQlVHICJBZnRlciBVQyBjaGVja2luZ1xuIik7CisJCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKQorCQkJcHJpbnRrKEtFUk5fREVCVUcgIk1UUlIgTUFQIFBGTjogJTAxNmx4IC0gJTAxNmx4XG4iLAorCQkJCSByYW5nZVtpXS5zdGFydCwgcmFuZ2VbaV0uZW5kICsgMSk7CisJfQorCisJLyogc29ydCB0aGUgcmFuZ2VzICovCisJc29ydChyYW5nZSwgbnJfcmFuZ2UsIHNpemVvZihzdHJ1Y3QgcmVzX3JhbmdlKSwgY21wX3JhbmdlLCBOVUxMKTsKKwlpZiAgKGRlYnVnX3ByaW50KSB7CisJCXByaW50ayhLRVJOX0RFQlVHICJBZnRlciBzb3J0aW5nXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IG5yX3JhbmdlOyBpKyspCisJCQlwcmludGsoS0VSTl9ERUJVRyAiTVRSUiBNQVAgUEZOOiAlMDE2bHggLSAlMDE2bHhcbiIsCisJCQkJIHJhbmdlW2ldLnN0YXJ0LCByYW5nZVtpXS5lbmQgKyAxKTsKKwl9CisKKwkvKiBjbGVhciB0aG9zZSBpcyBub3QgdXNlZCAqLworCWZvciAoaSA9IG5yX3JhbmdlOyBpIDwgUkFOR0VfTlVNOyBpKyspCisJCW1lbXNldCgmcmFuZ2VbaV0sIDAsIHNpemVvZihyYW5nZVtpXSkpOworCisJcmV0dXJuIG5yX3JhbmdlOworfQorCitzdGF0aWMgc3RydWN0IHJlc19yYW5nZSBfX2luaXRkYXRhIHJhbmdlW1JBTkdFX05VTV07CisKKyNpZmRlZiBDT05GSUdfTVRSUl9TQU5JVElaRVIKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IHN1bV9yYW5nZXMoc3RydWN0IHJlc19yYW5nZSAqcmFuZ2UsIGludCBucl9yYW5nZSkKK3sKKwl1bnNpZ25lZCBsb25nIHN1bTsKKwlpbnQgaTsKKworCXN1bSA9IDA7CisJZm9yIChpID0gMDsgaSA8IG5yX3JhbmdlOyBpKyspCisJCXN1bSArPSByYW5nZVtpXS5lbmQgKyAxIC0gcmFuZ2VbaV0uc3RhcnQ7CisKKwlyZXR1cm4gc3VtOworfQorCitzdGF0aWMgaW50IGVuYWJsZV9tdHJyX2NsZWFudXAgX19pbml0ZGF0YSA9CisJQ09ORklHX01UUlJfU0FOSVRJWkVSX0VOQUJMRV9ERUZBVUxUOworCitzdGF0aWMgaW50IF9faW5pdCBkaXNhYmxlX210cnJfY2xlYW51cF9zZXR1cChjaGFyICpzdHIpCit7CisJaWYgKGVuYWJsZV9tdHJyX2NsZWFudXAgIT0gLTEpCisJCWVuYWJsZV9tdHJyX2NsZWFudXAgPSAwOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oImRpc2FibGVfbXRycl9jbGVhbnVwIiwgZGlzYWJsZV9tdHJyX2NsZWFudXBfc2V0dXApOworCitzdGF0aWMgaW50IF9faW5pdCBlbmFibGVfbXRycl9jbGVhbnVwX3NldHVwKGNoYXIgKnN0cikKK3sKKwlpZiAoZW5hYmxlX210cnJfY2xlYW51cCAhPSAtMSkKKwkJZW5hYmxlX210cnJfY2xlYW51cCA9IDE7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgiZW5ibGVfbXRycl9jbGVhbnVwIiwgZW5hYmxlX210cnJfY2xlYW51cF9zZXR1cCk7CisKK3N0cnVjdCB2YXJfbXRycl9zdGF0ZSB7CisJdW5zaWduZWQgbG9uZwlyYW5nZV9zdGFydGs7CisJdW5zaWduZWQgbG9uZwlyYW5nZV9zaXplazsKKwl1bnNpZ25lZCBsb25nCWNodW5rX3NpemVrOworCXVuc2lnbmVkIGxvbmcJZ3Jhbl9zaXplazsKKwl1bnNpZ25lZCBpbnQJcmVnOworfTsKKworc3RhdGljIHZvaWQgX19pbml0CitzZXRfdmFyX210cnIodW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgbG9uZyBiYXNlaywgdW5zaWduZWQgbG9uZyBzaXplaywKKwkJdW5zaWduZWQgY2hhciB0eXBlLCB1bnNpZ25lZCBpbnQgYWRkcmVzc19iaXRzKQoreworCXUzMiBiYXNlX2xvLCBiYXNlX2hpLCBtYXNrX2xvLCBtYXNrX2hpOworCXU2NCBiYXNlLCBtYXNrOworCisJaWYgKCFzaXplaykgeworCQlmaWxsX210cnJfdmFyX3JhbmdlKHJlZywgMCwgMCwgMCwgMCk7CisJCXJldHVybjsKKwl9CisKKwltYXNrID0gKDFVTEwgPDwgYWRkcmVzc19iaXRzKSAtIDE7CisJbWFzayAmPSB+KCgoKHU2NClzaXplaykgPDwgMTApIC0gMSk7CisKKwliYXNlICA9ICgodTY0KWJhc2VrKSA8PCAxMDsKKworCWJhc2UgfD0gdHlwZTsKKwltYXNrIHw9IDB4ODAwOworCisJYmFzZV9sbyA9IGJhc2UgJiAoKDFVTEw8PDMyKSAtIDEpOworCWJhc2VfaGkgPSBiYXNlID4+IDMyOworCisJbWFza19sbyA9IG1hc2sgJiAoKDFVTEw8PDMyKSAtIDEpOworCW1hc2tfaGkgPSBtYXNrID4+IDMyOworCisJZmlsbF9tdHJyX3Zhcl9yYW5nZShyZWcsIGJhc2VfbG8sIGJhc2VfaGksIG1hc2tfbG8sIG1hc2tfaGkpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQKK3NhdmVfdmFyX210cnIodW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgbG9uZyBiYXNlaywgdW5zaWduZWQgbG9uZyBzaXplaywKKwkJdW5zaWduZWQgY2hhciB0eXBlKQoreworCXJhbmdlX3N0YXRlW3JlZ10uYmFzZV9wZm4gPSBiYXNlayA+PiAoUEFHRV9TSElGVCAtIDEwKTsKKwlyYW5nZV9zdGF0ZVtyZWddLnNpemVfcGZuID0gc2l6ZWsgPj4gKFBBR0VfU0hJRlQgLSAxMCk7CisJcmFuZ2Vfc3RhdGVbcmVnXS50eXBlID0gdHlwZTsKK30KKworc3RhdGljIHZvaWQgX19pbml0CitzZXRfdmFyX210cnJfYWxsKHVuc2lnbmVkIGludCBhZGRyZXNzX2JpdHMpCit7CisJdW5zaWduZWQgbG9uZyBiYXNlaywgc2l6ZWs7CisJdW5zaWduZWQgY2hhciB0eXBlOworCXVuc2lnbmVkIGludCByZWc7CisKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IG51bV92YXJfcmFuZ2VzOyByZWcrKykgeworCQliYXNlayA9IHJhbmdlX3N0YXRlW3JlZ10uYmFzZV9wZm4gPDwgKFBBR0VfU0hJRlQgLSAxMCk7CisJCXNpemVrID0gcmFuZ2Vfc3RhdGVbcmVnXS5zaXplX3BmbiA8PCAoUEFHRV9TSElGVCAtIDEwKTsKKwkJdHlwZSA9IHJhbmdlX3N0YXRlW3JlZ10udHlwZTsKKworCQlzZXRfdmFyX210cnIocmVnLCBiYXNlaywgc2l6ZWssIHR5cGUsIGFkZHJlc3NfYml0cyk7CisJfQorfQorCitzdGF0aWMgdW5zaWduZWQgaW50IF9faW5pdAorcmFuZ2VfdG9fbXRycih1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBsb25nIHJhbmdlX3N0YXJ0aywKKwkgICAgICB1bnNpZ25lZCBsb25nIHJhbmdlX3NpemVrLCB1bnNpZ25lZCBjaGFyIHR5cGUpCit7CisJaWYgKCFyYW5nZV9zaXplayB8fCAocmVnID49IG51bV92YXJfcmFuZ2VzKSkKKwkJcmV0dXJuIHJlZzsKKworCXdoaWxlIChyYW5nZV9zaXplaykgeworCQl1bnNpZ25lZCBsb25nIG1heF9hbGlnbiwgYWxpZ247CisJCXVuc2lnbmVkIGxvbmcgc2l6ZWs7CisKKwkJLyogQ29tcHV0ZSB0aGUgbWF4aW11bSBzaXplIEkgY2FuIG1ha2UgYSByYW5nZSAqLworCQlpZiAocmFuZ2Vfc3RhcnRrKQorCQkJbWF4X2FsaWduID0gZmZzKHJhbmdlX3N0YXJ0aykgLSAxOworCQllbHNlCisJCQltYXhfYWxpZ24gPSAzMjsKKwkJYWxpZ24gPSBmbHMocmFuZ2Vfc2l6ZWspIC0gMTsKKwkJaWYgKGFsaWduID4gbWF4X2FsaWduKQorCQkJYWxpZ24gPSBtYXhfYWxpZ247CisKKwkJc2l6ZWsgPSAxIDw8IGFsaWduOworCQlpZiAoZGVidWdfcHJpbnQpCisJCQlwcmludGsoS0VSTl9ERUJVRyAiU2V0dGluZyB2YXJpYWJsZSBNVFJSICVkLCAiCisJCQkJImJhc2U6ICVsZE1CLCByYW5nZTogJWxkTUIsIHR5cGUgJXNcbiIsCisJCQkJcmVnLCByYW5nZV9zdGFydGsgPj4gMTAsIHNpemVrID4+IDEwLAorCQkJCSh0eXBlID09IE1UUlJfVFlQRV9VTkNBQ0hBQkxFKT8iVUMiOgorCQkJCSAgICAoKHR5cGUgPT0gTVRSUl9UWVBFX1dSQkFDSyk/IldCIjoiT3RoZXIiKQorCQkJCSk7CisJCXNhdmVfdmFyX210cnIocmVnKyssIHJhbmdlX3N0YXJ0aywgc2l6ZWssIHR5cGUpOworCQlyYW5nZV9zdGFydGsgKz0gc2l6ZWs7CisJCXJhbmdlX3NpemVrIC09IHNpemVrOworCQlpZiAocmVnID49IG51bV92YXJfcmFuZ2VzKQorCQkJYnJlYWs7CisJfQorCXJldHVybiByZWc7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBfX2luaXQKK3JhbmdlX3RvX210cnJfd2l0aF9ob2xlKHN0cnVjdCB2YXJfbXRycl9zdGF0ZSAqc3RhdGUsIHVuc2lnbmVkIGxvbmcgYmFzZWssCisJCQl1bnNpZ25lZCBsb25nIHNpemVrKQoreworCXVuc2lnbmVkIGxvbmcgaG9sZV9iYXNlaywgaG9sZV9zaXplazsKKwl1bnNpZ25lZCBsb25nIHNlY29uZF9iYXNlaywgc2Vjb25kX3NpemVrOworCXVuc2lnbmVkIGxvbmcgcmFuZ2UwX2Jhc2VrLCByYW5nZTBfc2l6ZWs7CisJdW5zaWduZWQgbG9uZyByYW5nZV9iYXNlaywgcmFuZ2Vfc2l6ZWs7CisJdW5zaWduZWQgbG9uZyBjaHVua19zaXplazsKKwl1bnNpZ25lZCBsb25nIGdyYW5fc2l6ZWs7CisKKwlob2xlX2Jhc2VrID0gMDsKKwlob2xlX3NpemVrID0gMDsKKwlzZWNvbmRfYmFzZWsgPSAwOworCXNlY29uZF9zaXplayA9IDA7CisJY2h1bmtfc2l6ZWsgPSBzdGF0ZS0+Y2h1bmtfc2l6ZWs7CisJZ3Jhbl9zaXplayA9IHN0YXRlLT5ncmFuX3NpemVrOworCisJLyogYWxpZ24gd2l0aCBncmFuIHNpemUsIHByZXZlbnQgc21hbGwgYmxvY2sgdXNlZCB1cCBNVFJScyAqLworCXJhbmdlX2Jhc2VrID0gQUxJR04oc3RhdGUtPnJhbmdlX3N0YXJ0aywgZ3Jhbl9zaXplayk7CisJaWYgKChyYW5nZV9iYXNlayA+IGJhc2VrKSAmJiBiYXNlaykKKwkJcmV0dXJuIHNlY29uZF9zaXplazsKKwlzdGF0ZS0+cmFuZ2Vfc2l6ZWsgLT0gKHJhbmdlX2Jhc2VrIC0gc3RhdGUtPnJhbmdlX3N0YXJ0ayk7CisJcmFuZ2Vfc2l6ZWsgPSBBTElHTihzdGF0ZS0+cmFuZ2Vfc2l6ZWssIGdyYW5fc2l6ZWspOworCisJd2hpbGUgKHJhbmdlX3NpemVrID4gc3RhdGUtPnJhbmdlX3NpemVrKSB7CisJCXJhbmdlX3NpemVrIC09IGdyYW5fc2l6ZWs7CisJCWlmICghcmFuZ2Vfc2l6ZWspCisJCQlyZXR1cm4gMDsKKwl9CisJc3RhdGUtPnJhbmdlX3NpemVrID0gcmFuZ2Vfc2l6ZWs7CisKKwkvKiB0cnkgdG8gYXBwZW5kIHNvbWUgc21hbGwgaG9sZSAqLworCXJhbmdlMF9iYXNlayA9IHN0YXRlLT5yYW5nZV9zdGFydGs7CisJcmFuZ2UwX3NpemVrID0gQUxJR04oc3RhdGUtPnJhbmdlX3NpemVrLCBjaHVua19zaXplayk7CisJaWYgKHJhbmdlMF9zaXplayA9PSBzdGF0ZS0+cmFuZ2Vfc2l6ZWspIHsKKwkJaWYgKGRlYnVnX3ByaW50KQorCQkJcHJpbnRrKEtFUk5fREVCVUcgInJhbmdlWDogJTAxNmx4IC0gJTAxNmx4XG4iLAorCQkJCXJhbmdlMF9iYXNlazw8MTAsCisJCQkJKHJhbmdlMF9iYXNlayArIHN0YXRlLT5yYW5nZV9zaXplayk8PDEwKTsKKwkJc3RhdGUtPnJlZyA9IHJhbmdlX3RvX210cnIoc3RhdGUtPnJlZywgcmFuZ2UwX2Jhc2VrLAorCQkJCXN0YXRlLT5yYW5nZV9zaXplaywgTVRSUl9UWVBFX1dSQkFDSyk7CisJCXJldHVybiAwOworCX0KKworCXJhbmdlMF9zaXplayAtPSBjaHVua19zaXplazsKKwlpZiAocmFuZ2UwX3NpemVrICYmIHNpemVrKSB7CisJICAgIHdoaWxlIChyYW5nZTBfYmFzZWsgKyByYW5nZTBfc2l6ZWsgPiAoYmFzZWsgKyBzaXplaykpIHsKKwkJcmFuZ2UwX3NpemVrIC09IGNodW5rX3NpemVrOworCQlpZiAoIXJhbmdlMF9zaXplaykKKwkJCWJyZWFrOworCSAgICB9CisJfQorCisJaWYgKHJhbmdlMF9zaXplaykgeworCQlpZiAoZGVidWdfcHJpbnQpCisJCQlwcmludGsoS0VSTl9ERUJVRyAicmFuZ2UwOiAlMDE2bHggLSAlMDE2bHhcbiIsCisJCQkJcmFuZ2UwX2Jhc2VrPDwxMCwKKwkJCQkocmFuZ2UwX2Jhc2VrICsgcmFuZ2UwX3NpemVrKTw8MTApOworCQlzdGF0ZS0+cmVnID0gcmFuZ2VfdG9fbXRycihzdGF0ZS0+cmVnLCByYW5nZTBfYmFzZWssCisJCQkJcmFuZ2UwX3NpemVrLCBNVFJSX1RZUEVfV1JCQUNLKTsKKworCX0KKworCXJhbmdlX2Jhc2VrID0gcmFuZ2UwX2Jhc2VrICsgcmFuZ2UwX3NpemVrOworCXJhbmdlX3NpemVrID0gY2h1bmtfc2l6ZWs7CisKKwlpZiAocmFuZ2VfYmFzZWsgKyByYW5nZV9zaXplayA+IGJhc2VrICYmCisJICAgIHJhbmdlX2Jhc2VrICsgcmFuZ2Vfc2l6ZWsgPD0gKGJhc2VrICsgc2l6ZWspKSB7CisJCS8qIG9uZSBob2xlICovCisJCXNlY29uZF9iYXNlayA9IGJhc2VrOworCQlzZWNvbmRfc2l6ZWsgPSByYW5nZV9iYXNlayArIHJhbmdlX3NpemVrIC0gYmFzZWs7CisJfQorCisJLyogaWYgbGFzdCBwaWVjZSwgb25seSBjb3VsZCBvbmUgaG9sZSBuZWFyIGVuZCAqLworCWlmICgoc2Vjb25kX2Jhc2VrIHx8ICFiYXNlaykgJiYKKwkgICAgcmFuZ2Vfc2l6ZWsgLSAoc3RhdGUtPnJhbmdlX3NpemVrIC0gcmFuZ2UwX3NpemVrKSAtIHNlY29uZF9zaXplayA8CisJICAgIChjaHVua19zaXplayA+PiAxKSkgeworCQkvKgorCQkgKiBvbmUgaG9sZSBpbiBtaWRkbGUgKHNlY29uZF9zaXplayBpcyAwKSBvciBhdCBlbmQKKwkJICogKHNlY29uZF9zaXplayBpcyAwICkKKwkJICovCisJCWhvbGVfc2l6ZWsgPSByYW5nZV9zaXplayAtIChzdGF0ZS0+cmFuZ2Vfc2l6ZWsgLSByYW5nZTBfc2l6ZWspCisJCQkJIC0gc2Vjb25kX3NpemVrOworCQlob2xlX2Jhc2VrID0gcmFuZ2VfYmFzZWsgKyByYW5nZV9zaXplayAtIGhvbGVfc2l6ZWsKKwkJCQkgLSBzZWNvbmRfc2l6ZWs7CisJfSBlbHNlIHsKKwkJLyogZmFsbGJhY2sgZm9yIGJpZyBob2xlLCBvciBzZXZlcmFsIGhvbGVzICovCisJCXJhbmdlX3NpemVrID0gc3RhdGUtPnJhbmdlX3NpemVrIC0gcmFuZ2UwX3NpemVrOworCQlzZWNvbmRfYmFzZWsgPSAwOworCQlzZWNvbmRfc2l6ZWsgPSAwOworCX0KKworCWlmIChkZWJ1Z19wcmludCkKKwkJcHJpbnRrKEtFUk5fREVCVUcgInJhbmdlOiAlMDE2bHggLSAlMDE2bHhcbiIsIHJhbmdlX2Jhc2VrPDwxMCwKKwkJCSAocmFuZ2VfYmFzZWsgKyByYW5nZV9zaXplayk8PDEwKTsKKwlzdGF0ZS0+cmVnID0gcmFuZ2VfdG9fbXRycihzdGF0ZS0+cmVnLCByYW5nZV9iYXNlaywgcmFuZ2Vfc2l6ZWssCisJCQkJCSBNVFJSX1RZUEVfV1JCQUNLKTsKKwlpZiAoaG9sZV9zaXplaykgeworCQlpZiAoZGVidWdfcHJpbnQpCisJCQlwcmludGsoS0VSTl9ERUJVRyAiaG9sZTogJTAxNmx4IC0gJTAxNmx4XG4iLAorCQkJCSBob2xlX2Jhc2VrPDwxMCwgKGhvbGVfYmFzZWsgKyBob2xlX3NpemVrKTw8MTApOworCQlzdGF0ZS0+cmVnID0gcmFuZ2VfdG9fbXRycihzdGF0ZS0+cmVnLCBob2xlX2Jhc2VrLCBob2xlX3NpemVrLAorCQkJCQkJIE1UUlJfVFlQRV9VTkNBQ0hBQkxFKTsKKworCX0KKworCXJldHVybiBzZWNvbmRfc2l6ZWs7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdAorc2V0X3Zhcl9tdHJyX3JhbmdlKHN0cnVjdCB2YXJfbXRycl9zdGF0ZSAqc3RhdGUsIHVuc2lnbmVkIGxvbmcgYmFzZV9wZm4sCisJCSAgIHVuc2lnbmVkIGxvbmcgc2l6ZV9wZm4pCit7CisJdW5zaWduZWQgbG9uZyBiYXNlaywgc2l6ZWs7CisJdW5zaWduZWQgbG9uZyBzZWNvbmRfc2l6ZWsgPSAwOworCisJaWYgKHN0YXRlLT5yZWcgPj0gbnVtX3Zhcl9yYW5nZXMpCisJCXJldHVybjsKKworCWJhc2VrID0gYmFzZV9wZm4gPDwgKFBBR0VfU0hJRlQgLSAxMCk7CisJc2l6ZWsgPSBzaXplX3BmbiA8PCAoUEFHRV9TSElGVCAtIDEwKTsKKworCS8qIFNlZSBpZiBJIGNhbiBtZXJnZSB3aXRoIHRoZSBsYXN0IHJhbmdlICovCisJaWYgKChiYXNlayA8PSAxMDI0KSB8fAorCSAgICAoc3RhdGUtPnJhbmdlX3N0YXJ0ayArIHN0YXRlLT5yYW5nZV9zaXplayA9PSBiYXNlaykpIHsKKwkJdW5zaWduZWQgbG9uZyBlbmRrID0gYmFzZWsgKyBzaXplazsKKwkJc3RhdGUtPnJhbmdlX3NpemVrID0gZW5kayAtIHN0YXRlLT5yYW5nZV9zdGFydGs7CisJCXJldHVybjsKKwl9CisJLyogV3JpdGUgdGhlIHJhbmdlIG10cnJzICovCisJaWYgKHN0YXRlLT5yYW5nZV9zaXplayAhPSAwKQorCQlzZWNvbmRfc2l6ZWsgPSByYW5nZV90b19tdHJyX3dpdGhfaG9sZShzdGF0ZSwgYmFzZWssIHNpemVrKTsKKworCS8qIEFsbG9jYXRlIGFuIG1zciAqLworCXN0YXRlLT5yYW5nZV9zdGFydGsgPSBiYXNlayArIHNlY29uZF9zaXplazsKKwlzdGF0ZS0+cmFuZ2Vfc2l6ZWsgID0gc2l6ZWsgLSBzZWNvbmRfc2l6ZWs7Cit9CisKKy8qIG1pbmludW0gc2l6ZSBvZiBtdHJyIGJsb2NrIHRoYXQgY2FuIHRha2UgaG9sZSAqLworc3RhdGljIHU2NCBtdHJyX2NodW5rX3NpemUgX19pbml0ZGF0YSA9ICgyNTZVTEw8PDIwKTsKKworc3RhdGljIGludCBfX2luaXQgcGFyc2VfbXRycl9jaHVua19zaXplX29wdChjaGFyICpwKQoreworCWlmICghcCkKKwkJcmV0dXJuIC1FSU5WQUw7CisJbXRycl9jaHVua19zaXplID0gbWVtcGFyc2UocCwgJnApOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oIm10cnJfY2h1bmtfc2l6ZSIsIHBhcnNlX210cnJfY2h1bmtfc2l6ZV9vcHQpOworCisvKiBncmFuaXR5IG9mIG10cnIgb2YgYmxvY2sgKi8KK3N0YXRpYyB1NjQgbXRycl9ncmFuX3NpemUgX19pbml0ZGF0YTsKKworc3RhdGljIGludCBfX2luaXQgcGFyc2VfbXRycl9ncmFuX3NpemVfb3B0KGNoYXIgKnApCit7CisJaWYgKCFwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwltdHJyX2dyYW5fc2l6ZSA9IG1lbXBhcnNlKHAsICZwKTsKKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJtdHJyX2dyYW5fc2l6ZSIsIHBhcnNlX210cnJfZ3Jhbl9zaXplX29wdCk7CisKK3N0YXRpYyBpbnQgbnJfbXRycl9zcGFyZV9yZWcgX19pbml0ZGF0YSA9CisJCQkJIENPTkZJR19NVFJSX1NBTklUSVpFUl9TUEFSRV9SRUdfTlJfREVGQVVMVDsKKworc3RhdGljIGludCBfX2luaXQgcGFyc2VfbXRycl9zcGFyZV9yZWcoY2hhciAqYXJnKQoreworCWlmIChhcmcpCisJCW5yX210cnJfc3BhcmVfcmVnID0gc2ltcGxlX3N0cnRvdWwoYXJnLCBOVUxMLCAwKTsKKwlyZXR1cm4gMDsKK30KKworZWFybHlfcGFyYW0oIm10cnJfc3BhcmVfcmVnX25yIiwgcGFyc2VfbXRycl9zcGFyZV9yZWcpOworCitzdGF0aWMgaW50IF9faW5pdAoreDg2X3NldHVwX3Zhcl9tdHJycyhzdHJ1Y3QgcmVzX3JhbmdlICpyYW5nZSwgaW50IG5yX3JhbmdlLAorCQkgICAgdTY0IGNodW5rX3NpemUsIHU2NCBncmFuX3NpemUpCit7CisJc3RydWN0IHZhcl9tdHJyX3N0YXRlIHZhcl9zdGF0ZTsKKwlpbnQgaTsKKwlpbnQgbnVtX3JlZzsKKworCXZhcl9zdGF0ZS5yYW5nZV9zdGFydGsJPSAwOworCXZhcl9zdGF0ZS5yYW5nZV9zaXplawk9IDA7CisJdmFyX3N0YXRlLnJlZwkJPSAwOworCXZhcl9zdGF0ZS5jaHVua19zaXplawk9IGNodW5rX3NpemUgPj4gMTA7CisJdmFyX3N0YXRlLmdyYW5fc2l6ZWsJPSBncmFuX3NpemUgPj4gMTA7CisKKwltZW1zZXQocmFuZ2Vfc3RhdGUsIDAsIHNpemVvZihyYW5nZV9zdGF0ZSkpOworCisJLyogV3JpdGUgdGhlIHJhbmdlIGV0YyAqLworCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKQorCQlzZXRfdmFyX210cnJfcmFuZ2UoJnZhcl9zdGF0ZSwgcmFuZ2VbaV0uc3RhcnQsCisJCQkJICAgcmFuZ2VbaV0uZW5kIC0gcmFuZ2VbaV0uc3RhcnQgKyAxKTsKKworCS8qIFdyaXRlIHRoZSBsYXN0IHJhbmdlICovCisJaWYgKHZhcl9zdGF0ZS5yYW5nZV9zaXplayAhPSAwKQorCQlyYW5nZV90b19tdHJyX3dpdGhfaG9sZSgmdmFyX3N0YXRlLCAwLCAwKTsKKworCW51bV9yZWcgPSB2YXJfc3RhdGUucmVnOworCS8qIENsZWFyIG91dCB0aGUgZXh0cmEgTVRSUidzICovCisJd2hpbGUgKHZhcl9zdGF0ZS5yZWcgPCBudW1fdmFyX3JhbmdlcykgeworCQlzYXZlX3Zhcl9tdHJyKHZhcl9zdGF0ZS5yZWcsIDAsIDAsIDApOworCQl2YXJfc3RhdGUucmVnKys7CisJfQorCisJcmV0dXJuIG51bV9yZWc7Cit9CisKK3N0cnVjdCBtdHJyX2NsZWFudXBfcmVzdWx0IHsKKwl1bnNpZ25lZCBsb25nIGdyYW5fc2l6ZWs7CisJdW5zaWduZWQgbG9uZyBjaHVua19zaXplazsKKwl1bnNpZ25lZCBsb25nIGxvc2VfY292ZXJfc2l6ZWs7CisJdW5zaWduZWQgaW50IG51bV9yZWc7CisJaW50IGJhZDsKK307CisKKy8qCisgKiBncmFuX3NpemU6IDFNLCAyTSwgLi4uLCAyRworICogY2h1bmsgc2l6ZTogZ3Jhbl9zaXplLCAuLi4sIDRHCisgKiBzbyB3ZSBuZWVkICgyKzEzKSo2CisgKi8KKyNkZWZpbmUgTlVNX1JFU1VMVAk5MAorI2RlZmluZSBQU0hJRlQJCShQQUdFX1NISUZUIC0gMTApCisKK3N0YXRpYyBzdHJ1Y3QgbXRycl9jbGVhbnVwX3Jlc3VsdCBfX2luaXRkYXRhIHJlc3VsdFtOVU1fUkVTVUxUXTsKK3N0YXRpYyBzdHJ1Y3QgcmVzX3JhbmdlIF9faW5pdGRhdGEgcmFuZ2VfbmV3W1JBTkdFX05VTV07CitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXRkYXRhIG1pbl9sb3NzX3BmbltSQU5HRV9OVU1dOworCitzdGF0aWMgaW50IF9faW5pdCBtdHJyX2NsZWFudXAodW5zaWduZWQgYWRkcmVzc19iaXRzKQoreworCXVuc2lnbmVkIGxvbmcgZXh0cmFfcmVtb3ZlX2Jhc2UsIGV4dHJhX3JlbW92ZV9zaXplOworCXVuc2lnbmVkIGxvbmcgaSwgYmFzZSwgc2l6ZSwgZGVmLCBkdW1teTsKKwltdHJyX3R5cGUgdHlwZTsKKwlpbnQgbnJfcmFuZ2UsIG5yX3JhbmdlX25ldzsKKwl1NjQgY2h1bmtfc2l6ZSwgZ3Jhbl9zaXplOworCXVuc2lnbmVkIGxvbmcgcmFuZ2Vfc3VtcywgcmFuZ2Vfc3Vtc19uZXc7CisJaW50IGluZGV4X2dvb2Q7CisJaW50IG51bV9yZWdfZ29vZDsKKworCS8qIGV4dHJhIG9uZSBmb3IgYWxsIDAgKi8KKwlpbnQgbnVtW01UUlJfTlVNX1RZUEVTICsgMV07CisKKwlpZiAoIWlzX2NwdShJTlRFTCkgfHwgZW5hYmxlX210cnJfY2xlYW51cCA8IDEpCisJCXJldHVybiAwOworCXJkbXNyKE1UUlJkZWZUeXBlX01TUiwgZGVmLCBkdW1teSk7CisJZGVmICY9IDB4ZmY7CisJaWYgKGRlZiAhPSBNVFJSX1RZUEVfVU5DQUNIQUJMRSkKKwkJcmV0dXJuIDA7CisKKwkvKiBnZXQgaXQgYW5kIHN0b3JlIGl0IGFzaWRlICovCisJbWVtc2V0KHJhbmdlX3N0YXRlLCAwLCBzaXplb2YocmFuZ2Vfc3RhdGUpKTsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3Zhcl9yYW5nZXM7IGkrKykgeworCQltdHJyX2lmLT5nZXQoaSwgJmJhc2UsICZzaXplLCAmdHlwZSk7CisJCXJhbmdlX3N0YXRlW2ldLmJhc2VfcGZuID0gYmFzZTsKKwkJcmFuZ2Vfc3RhdGVbaV0uc2l6ZV9wZm4gPSBzaXplOworCQlyYW5nZV9zdGF0ZVtpXS50eXBlID0gdHlwZTsKKwl9CisKKwkvKiBjaGVjayBlbnRyaWVzIG51bWJlciAqLworCW1lbXNldChudW0sIDAsIHNpemVvZihudW0pKTsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3Zhcl9yYW5nZXM7IGkrKykgeworCQl0eXBlID0gcmFuZ2Vfc3RhdGVbaV0udHlwZTsKKwkJc2l6ZSA9IHJhbmdlX3N0YXRlW2ldLnNpemVfcGZuOworCQlpZiAodHlwZSA+PSBNVFJSX05VTV9UWVBFUykKKwkJCWNvbnRpbnVlOworCQlpZiAoIXNpemUpCisJCQl0eXBlID0gTVRSUl9OVU1fVFlQRVM7CisJCW51bVt0eXBlXSsrOworCX0KKworCS8qIGNoZWNrIGlmIHdlIGdvdCBVQyBlbnRyaWVzICovCisJaWYgKCFudW1bTVRSUl9UWVBFX1VOQ0FDSEFCTEVdKQorCQlyZXR1cm4gMDsKKworCS8qIGNoZWNrIGlmIHdlIG9ubHkgaGFkIFdCIGFuZCBVQyAqLworCWlmIChudW1bTVRSUl9UWVBFX1dSQkFDS10gKyBudW1bTVRSUl9UWVBFX1VOQ0FDSEFCTEVdICE9CisJCW51bV92YXJfcmFuZ2VzIC0gbnVtW01UUlJfTlVNX1RZUEVTXSkKKwkJcmV0dXJuIDA7CisKKwltZW1zZXQocmFuZ2UsIDAsIHNpemVvZihyYW5nZSkpOworCWV4dHJhX3JlbW92ZV9zaXplID0gMDsKKwlpZiAobXRycl90b20yKSB7CisJCWV4dHJhX3JlbW92ZV9iYXNlID0gMSA8PCAoMzIgLSBQQUdFX1NISUZUKTsKKwkJZXh0cmFfcmVtb3ZlX3NpemUgPQorCQkJKG10cnJfdG9tMiA+PiBQQUdFX1NISUZUKSAtIGV4dHJhX3JlbW92ZV9iYXNlOworCX0KKwlucl9yYW5nZSA9IHg4Nl9nZXRfbXRycl9tZW1fcmFuZ2UocmFuZ2UsIDAsIGV4dHJhX3JlbW92ZV9iYXNlLAorCQkJCQkgIGV4dHJhX3JlbW92ZV9zaXplKTsKKwlyYW5nZV9zdW1zID0gc3VtX3JhbmdlcyhyYW5nZSwgbnJfcmFuZ2UpOworCXByaW50ayhLRVJOX0lORk8gInRvdGFsIFJBTSBjb3ZlcnJlZDogJWxkTVxuIiwKKwkgICAgICAgcmFuZ2Vfc3VtcyA+PiAoMjAgLSBQQUdFX1NISUZUKSk7CisKKwlpZiAobXRycl9jaHVua19zaXplICYmIG10cnJfZ3Jhbl9zaXplKSB7CisJCWludCBudW1fcmVnOworCisJCWRlYnVnX3ByaW50ID0gMTsKKwkJLyogY29udmVydCByYW5nZXMgdG8gdmFyIHJhbmdlcyBzdGF0ZSAqLworCQludW1fcmVnID0geDg2X3NldHVwX3Zhcl9tdHJycyhyYW5nZSwgbnJfcmFuZ2UsIG10cnJfY2h1bmtfc2l6ZSwKKwkJCQkJICAgICAgbXRycl9ncmFuX3NpemUpOworCisJCS8qIHdlIGdvdCBuZXcgc2V0dGluZyBpbiByYW5nZV9zdGF0ZSwgY2hlY2sgaXQgKi8KKwkJbWVtc2V0KHJhbmdlX25ldywgMCwgc2l6ZW9mKHJhbmdlX25ldykpOworCQlucl9yYW5nZV9uZXcgPSB4ODZfZ2V0X210cnJfbWVtX3JhbmdlKHJhbmdlX25ldywgMCwKKwkJCQkJCSAgICAgIGV4dHJhX3JlbW92ZV9iYXNlLAorCQkJCQkJICAgICAgZXh0cmFfcmVtb3ZlX3NpemUpOworCQlyYW5nZV9zdW1zX25ldyA9IHN1bV9yYW5nZXMocmFuZ2VfbmV3LCBucl9yYW5nZV9uZXcpOworCisJCWkgPSAwOworCQlyZXN1bHRbaV0uY2h1bmtfc2l6ZWsgPSBtdHJyX2NodW5rX3NpemUgPj4gMTA7CisJCXJlc3VsdFtpXS5ncmFuX3NpemVrID0gbXRycl9ncmFuX3NpemUgPj4gMTA7CisJCXJlc3VsdFtpXS5udW1fcmVnID0gbnVtX3JlZzsKKwkJaWYgKHJhbmdlX3N1bXMgPCByYW5nZV9zdW1zX25ldykgeworCQkJcmVzdWx0W2ldLmxvc2VfY292ZXJfc2l6ZWsgPQorCQkJCShyYW5nZV9zdW1zX25ldyAtIHJhbmdlX3N1bXMpIDw8IFBTSElGVDsKKwkJCXJlc3VsdFtpXS5iYWQgPSAxOworCQl9IGVsc2UKKwkJCXJlc3VsdFtpXS5sb3NlX2NvdmVyX3NpemVrID0KKwkJCQkocmFuZ2Vfc3VtcyAtIHJhbmdlX3N1bXNfbmV3KSA8PCBQU0hJRlQ7CisKKwkJcHJpbnRrKEtFUk5fSU5GTyAiJXNncmFuX3NpemU6ICVsZE0gXHRjaHVua19zaXplOiAlbGRNIFx0IiwKKwkJCSByZXN1bHRbaV0uYmFkPyIqQkFEKiI6IiAiLCByZXN1bHRbaV0uZ3Jhbl9zaXplayA+PiAxMCwKKwkJCSByZXN1bHRbaV0uY2h1bmtfc2l6ZWsgPj4gMTApOworCQlwcmludGsoS0VSTl9DT05UICJudW1fcmVnOiAlZCAgXHRsb3NlIGNvdmVyIFJBTTogJXMlbGRNIFxuIiwKKwkJCSByZXN1bHRbaV0ubnVtX3JlZywgcmVzdWx0W2ldLmJhZD8iLSI6IiIsCisJCQkgcmVzdWx0W2ldLmxvc2VfY292ZXJfc2l6ZWsgPj4gMTApOworCQlpZiAoIXJlc3VsdFtpXS5iYWQpIHsKKwkJCXNldF92YXJfbXRycl9hbGwoYWRkcmVzc19iaXRzKTsKKwkJCXJldHVybiAxOworCQl9CisJCXByaW50ayhLRVJOX0lORk8gImludmFsaWQgbXRycl9ncmFuX3NpemUgb3IgbXRycl9jaHVua19zaXplLCAiCisJCSAgICAgICAid2lsbCBmaW5kIG9wdGltYWwgb25lXG4iKTsKKwkJZGVidWdfcHJpbnQgPSAwOworCQltZW1zZXQocmVzdWx0LCAwLCBzaXplb2YocmVzdWx0WzBdKSk7CisJfQorCisJaSA9IDA7CisJbWVtc2V0KG1pbl9sb3NzX3BmbiwgMHhmZiwgc2l6ZW9mKG1pbl9sb3NzX3BmbikpOworCW1lbXNldChyZXN1bHQsIDAsIHNpemVvZihyZXN1bHQpKTsKKwlmb3IgKGdyYW5fc2l6ZSA9ICgxVUxMPDwyMCk7IGdyYW5fc2l6ZSA8ICgxVUxMPDwzMik7IGdyYW5fc2l6ZSA8PD0gMSkgeworCQlmb3IgKGNodW5rX3NpemUgPSBncmFuX3NpemU7IGNodW5rX3NpemUgPCAoMVVMTDw8MzMpOworCQkgICAgIGNodW5rX3NpemUgPDw9IDEpIHsKKwkJCWludCBudW1fcmVnOworCisJCQlpZiAoZGVidWdfcHJpbnQpCisJCQkJcHJpbnRrKEtFUk5fSU5GTworCQkJICAgICAgICJcbmdyYW5fc2l6ZTogJWxsZE0gICBjaHVua19zaXplX3NpemU6ICVsbGRNXG4iLAorCQkJCSAgICAgICBncmFuX3NpemUgPj4gMjAsIGNodW5rX3NpemUgPj4gMjApOworCQkJaWYgKGkgPj0gTlVNX1JFU1VMVCkKKwkJCQljb250aW51ZTsKKworCQkJLyogY29udmVydCByYW5nZXMgdG8gdmFyIHJhbmdlcyBzdGF0ZSAqLworCQkJbnVtX3JlZyA9IHg4Nl9zZXR1cF92YXJfbXRycnMocmFuZ2UsIG5yX3JhbmdlLAorCQkJCQkJCSBjaHVua19zaXplLCBncmFuX3NpemUpOworCisJCQkvKiB3ZSBnb3QgbmV3IHNldHRpbmcgaW4gcmFuZ2Vfc3RhdGUsIGNoZWNrIGl0ICovCisJCQltZW1zZXQocmFuZ2VfbmV3LCAwLCBzaXplb2YocmFuZ2VfbmV3KSk7CisJCQlucl9yYW5nZV9uZXcgPSB4ODZfZ2V0X210cnJfbWVtX3JhbmdlKHJhbmdlX25ldywgMCwKKwkJCQkJIGV4dHJhX3JlbW92ZV9iYXNlLCBleHRyYV9yZW1vdmVfc2l6ZSk7CisJCQlyYW5nZV9zdW1zX25ldyA9IHN1bV9yYW5nZXMocmFuZ2VfbmV3LCBucl9yYW5nZV9uZXcpOworCisJCQlyZXN1bHRbaV0uY2h1bmtfc2l6ZWsgPSBjaHVua19zaXplID4+IDEwOworCQkJcmVzdWx0W2ldLmdyYW5fc2l6ZWsgPSBncmFuX3NpemUgPj4gMTA7CisJCQlyZXN1bHRbaV0ubnVtX3JlZyA9IG51bV9yZWc7CisJCQlpZiAocmFuZ2Vfc3VtcyA8IHJhbmdlX3N1bXNfbmV3KSB7CisJCQkJcmVzdWx0W2ldLmxvc2VfY292ZXJfc2l6ZWsgPQorCQkJCQkocmFuZ2Vfc3Vtc19uZXcgLSByYW5nZV9zdW1zKSA8PCBQU0hJRlQ7CisJCQkJcmVzdWx0W2ldLmJhZCA9IDE7CisJCQl9IGVsc2UKKwkJCQlyZXN1bHRbaV0ubG9zZV9jb3Zlcl9zaXplayA9CisJCQkJCShyYW5nZV9zdW1zIC0gcmFuZ2Vfc3Vtc19uZXcpIDw8IFBTSElGVDsKKworCQkJLyogZG91YmxlIGNoZWNrIGl0ICovCisJCQlpZiAoIXJlc3VsdFtpXS5iYWQgJiYgIXJlc3VsdFtpXS5sb3NlX2NvdmVyX3NpemVrKSB7CisJCQkJaWYgKG5yX3JhbmdlX25ldyAhPSBucl9yYW5nZSB8fAorCQkJCQltZW1jbXAocmFuZ2UsIHJhbmdlX25ldywgc2l6ZW9mKHJhbmdlKSkpCisJCQkJCQlyZXN1bHRbaV0uYmFkID0gMTsKKwkJCX0KKworCQkJaWYgKCFyZXN1bHRbaV0uYmFkICYmIChyYW5nZV9zdW1zIC0gcmFuZ2Vfc3Vtc19uZXcgPAorCQkJCQkgICAgICAgbWluX2xvc3NfcGZuW251bV9yZWddKSkgeworCQkJCW1pbl9sb3NzX3BmbltudW1fcmVnXSA9CisJCQkJCXJhbmdlX3N1bXMgLSByYW5nZV9zdW1zX25ldzsKKwkJCX0KKwkJCWkrKzsKKwkJfQorCX0KKworCS8qIHByaW50IG91dCBhbGwgKi8KKwlmb3IgKGkgPSAwOyBpIDwgTlVNX1JFU1VMVDsgaSsrKSB7CisJCXByaW50ayhLRVJOX0lORk8gIiVzZ3Jhbl9zaXplOiAlbGRNIFx0Y2h1bmtfc2l6ZTogJWxkTSBcdCIsCisJCSAgICAgICByZXN1bHRbaV0uYmFkPyIqQkFEKiAiOiIgIiwgcmVzdWx0W2ldLmdyYW5fc2l6ZWsgPj4gMTAsCisJCSAgICAgICByZXN1bHRbaV0uY2h1bmtfc2l6ZWsgPj4gMTApOworCQlwcmludGsoS0VSTl9DT05UICJudW1fcmVnOiAlZCBcdGxvc2UgUkFNOiAlcyVsZE1cbiIsCisJCSAgICAgICByZXN1bHRbaV0ubnVtX3JlZywgcmVzdWx0W2ldLmJhZD8iLSI6IiIsCisJCSAgICAgICByZXN1bHRbaV0ubG9zZV9jb3Zlcl9zaXplayA+PiAxMCk7CisJfQorCisJLyogdHJ5IHRvIGZpbmQgdGhlIG9wdGltYWwgaW5kZXggKi8KKwlpZiAobnJfbXRycl9zcGFyZV9yZWcgPj0gbnVtX3Zhcl9yYW5nZXMpCisJCW5yX210cnJfc3BhcmVfcmVnID0gbnVtX3Zhcl9yYW5nZXMgLSAxOworCW51bV9yZWdfZ29vZCA9IC0xOworCWZvciAoaSA9IG51bV92YXJfcmFuZ2VzIC0gbnJfbXRycl9zcGFyZV9yZWc7IGkgPiAwOyBpLS0pIHsKKwkJaWYgKCFtaW5fbG9zc19wZm5baV0pIHsKKwkJCW51bV9yZWdfZ29vZCA9IGk7CisJCQlicmVhazsKKwkJfQorCX0KKworCWluZGV4X2dvb2QgPSAtMTsKKwlpZiAobnVtX3JlZ19nb29kICE9IC0xKSB7CisJCWZvciAoaSA9IDA7IGkgPCBOVU1fUkVTVUxUOyBpKyspIHsKKwkJCWlmICghcmVzdWx0W2ldLmJhZCAmJgorCQkJICAgIHJlc3VsdFtpXS5udW1fcmVnID09IG51bV9yZWdfZ29vZCAmJgorCQkJICAgICFyZXN1bHRbaV0ubG9zZV9jb3Zlcl9zaXplaykgeworCQkJCWluZGV4X2dvb2QgPSBpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJaWYgKGluZGV4X2dvb2QgIT0gLTEpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiRm91bmQgb3B0aW1hbCBzZXR0aW5nIGZvciBtdHJyIGNsZWFuIHVwXG4iKTsKKwkJaSA9IGluZGV4X2dvb2Q7CisJCXByaW50ayhLRVJOX0lORk8gImdyYW5fc2l6ZTogJWxkTSBcdGNodW5rX3NpemU6ICVsZE0gXHQiLAorCQkJCXJlc3VsdFtpXS5ncmFuX3NpemVrID4+IDEwLAorCQkJCXJlc3VsdFtpXS5jaHVua19zaXplayA+PiAxMCk7CisJCXByaW50ayhLRVJOX0NPTlQgIm51bV9yZWc6ICVkIFx0bG9zZSBSQU06ICVsZE1cbiIsCisJCQkJcmVzdWx0W2ldLm51bV9yZWcsCisJCQkJcmVzdWx0W2ldLmxvc2VfY292ZXJfc2l6ZWsgPj4gMTApOworCQkvKiBjb252ZXJ0IHJhbmdlcyB0byB2YXIgcmFuZ2VzIHN0YXRlICovCisJCWNodW5rX3NpemUgPSByZXN1bHRbaV0uY2h1bmtfc2l6ZWs7CisJCWNodW5rX3NpemUgPDw9IDEwOworCQlncmFuX3NpemUgPSByZXN1bHRbaV0uZ3Jhbl9zaXplazsKKwkJZ3Jhbl9zaXplIDw8PSAxMDsKKwkJZGVidWdfcHJpbnQgPSAxOworCQl4ODZfc2V0dXBfdmFyX210cnJzKHJhbmdlLCBucl9yYW5nZSwgY2h1bmtfc2l6ZSwgZ3Jhbl9zaXplKTsKKwkJc2V0X3Zhcl9tdHJyX2FsbChhZGRyZXNzX2JpdHMpOworCQlyZXR1cm4gMTsKKwl9CisKKwlwcmludGsoS0VSTl9JTkZPICJtdHJyX2NsZWFudXA6IGNhbiBub3QgZmluZCBvcHRpbWFsIHZhbHVlXG4iKTsKKwlwcmludGsoS0VSTl9JTkZPICJwbGVhc2Ugc3BlY2lmeSBtdHJyX2dyYW5fc2l6ZS9tdHJyX2NodW5rX3NpemVcbiIpOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorc3RhdGljIGludCBfX2luaXQgbXRycl9jbGVhbnVwKHVuc2lnbmVkIGFkZHJlc3NfYml0cykKK3sKKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCitzdGF0aWMgaW50IF9faW5pdGRhdGEgY2hhbmdlZF9ieV9tdHJyX2NsZWFudXA7CisKIHN0YXRpYyBpbnQgZGlzYWJsZV9tdHJyX3RyaW07CiAKIHN0YXRpYyBpbnQgX19pbml0IGRpc2FibGVfbXRycl90cmltX3NldHVwKGNoYXIgKnN0cikKQEAgLTY0OCw2ICsxNDMwLDE5IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB1NjQgX19pbml0IHJlYWxfdHJpbV9tZW1vcnkodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJICAgdW5zaWduZWQgbG9uZyBsaW1pdF9wZm4pCit7CisJdTY0IHRyaW1fc3RhcnQsIHRyaW1fc2l6ZTsKKwl0cmltX3N0YXJ0ID0gc3RhcnRfcGZuOworCXRyaW1fc3RhcnQgPDw9IFBBR0VfU0hJRlQ7CisJdHJpbV9zaXplID0gbGltaXRfcGZuOworCXRyaW1fc2l6ZSA8PD0gUEFHRV9TSElGVDsKKwl0cmltX3NpemUgLT0gdHJpbV9zdGFydDsKKworCXJldHVybiBlODIwX3VwZGF0ZV9yYW5nZSh0cmltX3N0YXJ0LCB0cmltX3NpemUsIEU4MjBfUkFNLAorCQkJCUU4MjBfUkVTRVJWRUQpOworfQogLyoqCiAgKiBtdHJyX3RyaW1fdW5jYWNoZWRfbWVtb3J5IC0gdHJpbSBSQU0gbm90IGNvdmVyZWQgYnkgTVRSUnMKICAqIEBlbmRfcGZuOiBlbmRpbmcgcGFnZSBmcmFtZSBudW1iZXIKQEAgLTY2Myw4ICsxNDU4LDExIEBACiB7CiAJdW5zaWduZWQgbG9uZyBpLCBiYXNlLCBzaXplLCBoaWdoZXN0X3BmbiA9IDAsIGRlZiwgZHVtbXk7CiAJbXRycl90eXBlIHR5cGU7Ci0JdTY0IHRyaW1fc3RhcnQsIHRyaW1fc2l6ZTsKKwlpbnQgbnJfcmFuZ2U7CisJdTY0IHRvdGFsX3RyaW1fc2l6ZTsKIAorCS8qIGV4dHJhIG9uZSBmb3IgYWxsIDAgKi8KKwlpbnQgbnVtW01UUlJfTlVNX1RZUEVTICsgMV07CiAJLyoKIAkgKiBNYWtlIHN1cmUgd2Ugb25seSB0cmltIHVuY2FjaGFibGUgbWVtb3J5IG9uIG1hY2hpbmVzIHRoYXQKIAkgKiBzdXBwb3J0IHRoZSBJbnRlbCBNVFJSIGFyY2hpdGVjdHVyZToKQEAgLTY3NiwxNCArMTQ3NCwyMiBAQAogCWlmIChkZWYgIT0gTVRSUl9UWVBFX1VOQ0FDSEFCTEUpCiAJCXJldHVybiAwOwogCi0JaWYgKGFtZF9zcGVjaWFsX2RlZmF1bHRfbXRycigpKQotCQlyZXR1cm4gMDsKKwkvKiBnZXQgaXQgYW5kIHN0b3JlIGl0IGFzaWRlICovCisJbWVtc2V0KHJhbmdlX3N0YXRlLCAwLCBzaXplb2YocmFuZ2Vfc3RhdGUpKTsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3Zhcl9yYW5nZXM7IGkrKykgeworCQltdHJyX2lmLT5nZXQoaSwgJmJhc2UsICZzaXplLCAmdHlwZSk7CisJCXJhbmdlX3N0YXRlW2ldLmJhc2VfcGZuID0gYmFzZTsKKwkJcmFuZ2Vfc3RhdGVbaV0uc2l6ZV9wZm4gPSBzaXplOworCQlyYW5nZV9zdGF0ZVtpXS50eXBlID0gdHlwZTsKKwl9CiAKIAkvKiBGaW5kIGhpZ2hlc3QgY2FjaGVkIHBmbiAqLwogCWZvciAoaSA9IDA7IGkgPCBudW1fdmFyX3JhbmdlczsgaSsrKSB7Ci0JCW10cnJfaWYtPmdldChpLCAmYmFzZSwgJnNpemUsICZ0eXBlKTsKKwkJdHlwZSA9IHJhbmdlX3N0YXRlW2ldLnR5cGU7CiAJCWlmICh0eXBlICE9IE1UUlJfVFlQRV9XUkJBQ0spCiAJCQljb250aW51ZTsKKwkJYmFzZSA9IHJhbmdlX3N0YXRlW2ldLmJhc2VfcGZuOworCQlzaXplID0gcmFuZ2Vfc3RhdGVbaV0uc2l6ZV9wZm47CiAJCWlmIChoaWdoZXN0X3BmbiA8IGJhc2UgKyBzaXplKQogCQkJaGlnaGVzdF9wZm4gPSBiYXNlICsgc2l6ZTsKIAl9CkBAIC02OTgsMjIgKzE1MDQsNjUgQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKGhpZ2hlc3RfcGZuIDwgZW5kX3BmbikgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJXQVJOSU5HOiBCSU9TIGJ1ZzogQ1BVIE1UUlJzIGRvbid0IGNvdmVyIgotCQkJIiBhbGwgb2YgbWVtb3J5LCBsb3NpbmcgJWx1TUIgb2YgUkFNLlxuIiwKLQkJCShlbmRfcGZuIC0gaGlnaGVzdF9wZm4pID4+ICgyMCAtIFBBR0VfU0hJRlQpKTsKKwkvKiBjaGVjayBlbnRyaWVzIG51bWJlciAqLworCW1lbXNldChudW0sIDAsIHNpemVvZihudW0pKTsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3Zhcl9yYW5nZXM7IGkrKykgeworCQl0eXBlID0gcmFuZ2Vfc3RhdGVbaV0udHlwZTsKKwkJaWYgKHR5cGUgPj0gTVRSUl9OVU1fVFlQRVMpCisJCQljb250aW51ZTsKKwkJc2l6ZSA9IHJhbmdlX3N0YXRlW2ldLnNpemVfcGZuOworCQlpZiAoIXNpemUpCisJCQl0eXBlID0gTVRSUl9OVU1fVFlQRVM7CisJCW51bVt0eXBlXSsrOworCX0KIAotCQlXQVJOX09OKDEpOworCS8qIG5vIGVudHJ5IGZvciBXQj8gKi8KKwlpZiAoIW51bVtNVFJSX1RZUEVfV1JCQUNLXSkKKwkJcmV0dXJuIDA7CisKKwkvKiBjaGVjayBpZiB3ZSBvbmx5IGhhZCBXQiBhbmQgVUMgKi8KKwlpZiAobnVtW01UUlJfVFlQRV9XUkJBQ0tdICsgbnVtW01UUlJfVFlQRV9VTkNBQ0hBQkxFXSAhPQorCQludW1fdmFyX3JhbmdlcyAtIG51bVtNVFJSX05VTV9UWVBFU10pCisJCXJldHVybiAwOworCisJbWVtc2V0KHJhbmdlLCAwLCBzaXplb2YocmFuZ2UpKTsKKwlucl9yYW5nZSA9IDA7CisJaWYgKG10cnJfdG9tMikgeworCQlyYW5nZVtucl9yYW5nZV0uc3RhcnQgPSAoMVVMTDw8KDMyIC0gUEFHRV9TSElGVCkpOworCQlyYW5nZVtucl9yYW5nZV0uZW5kID0gKG10cnJfdG9tMiA+PiBQQUdFX1NISUZUKSAtIDE7CisJCWlmIChoaWdoZXN0X3BmbiA8IHJhbmdlW25yX3JhbmdlXS5lbmQgKyAxKQorCQkJaGlnaGVzdF9wZm4gPSByYW5nZVtucl9yYW5nZV0uZW5kICsgMTsKKwkJbnJfcmFuZ2UrKzsKKwl9CisJbnJfcmFuZ2UgPSB4ODZfZ2V0X210cnJfbWVtX3JhbmdlKHJhbmdlLCBucl9yYW5nZSwgMCwgMCk7CisKKwl0b3RhbF90cmltX3NpemUgPSAwOworCS8qIGNoZWNrIHRoZSBoZWFkICovCisJaWYgKHJhbmdlWzBdLnN0YXJ0KQorCQl0b3RhbF90cmltX3NpemUgKz0gcmVhbF90cmltX21lbW9yeSgwLCByYW5nZVswXS5zdGFydCk7CisJLyogY2hlY2sgdGhlIGhvbGVzICovCisJZm9yIChpID0gMDsgaSA8IG5yX3JhbmdlIC0gMTsgaSsrKSB7CisJCWlmIChyYW5nZVtpXS5lbmQgKyAxIDwgcmFuZ2VbaSsxXS5zdGFydCkKKwkJCXRvdGFsX3RyaW1fc2l6ZSArPSByZWFsX3RyaW1fbWVtb3J5KHJhbmdlW2ldLmVuZCArIDEsCisJCQkJCQkJICAgIHJhbmdlW2krMV0uc3RhcnQpOworCX0KKwkvKiBjaGVjayB0aGUgdG9wICovCisJaSA9IG5yX3JhbmdlIC0gMTsKKwlpZiAocmFuZ2VbaV0uZW5kICsgMSA8IGVuZF9wZm4pCisJCXRvdGFsX3RyaW1fc2l6ZSArPSByZWFsX3RyaW1fbWVtb3J5KHJhbmdlW2ldLmVuZCArIDEsCisJCQkJCQkJIGVuZF9wZm4pOworCisJaWYgKHRvdGFsX3RyaW1fc2l6ZSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJXQVJOSU5HOiBCSU9TIGJ1ZzogQ1BVIE1UUlJzIGRvbid0IGNvdmVyIgorCQkJIiBhbGwgb2YgbWVtb3J5LCBsb3NpbmcgJWxsdU1CIG9mIFJBTS5cbiIsCisJCQl0b3RhbF90cmltX3NpemUgPj4gMjApOworCisJCWlmICghY2hhbmdlZF9ieV9tdHJyX2NsZWFudXApCisJCQlXQVJOX09OKDEpOwogCiAJCXByaW50ayhLRVJOX0lORk8gInVwZGF0ZSBlODIwIGZvciBtdHJyXG4iKTsKLQkJdHJpbV9zdGFydCA9IGhpZ2hlc3RfcGZuOwotCQl0cmltX3N0YXJ0IDw8PSBQQUdFX1NISUZUOwotCQl0cmltX3NpemUgPSBlbmRfcGZuOwotCQl0cmltX3NpemUgPDw9IFBBR0VfU0hJRlQ7Ci0JCXRyaW1fc2l6ZSAtPSB0cmltX3N0YXJ0OwotCQl1cGRhdGVfbWVtb3J5X3JhbmdlKHRyaW1fc3RhcnQsIHRyaW1fc2l6ZSwgRTgyMF9SQU0sCi0JCQkJCUU4MjBfUkVTRVJWRUQpOwogCQl1cGRhdGVfZTgyMCgpOworCiAJCXJldHVybiAxOwogCX0KIApAQCAtNzI5LDE4ICsxNTc4LDIxIEBACiAgKi8KIHZvaWQgX19pbml0IG10cnJfYnBfaW5pdCh2b2lkKQogeworCXUzMiBwaHlzX2FkZHI7CiAJaW5pdF9pZnMoKTsKIAorCXBoeXNfYWRkciA9IDMyOworCiAJaWYgKGNwdV9oYXNfbXRycikgewogCQltdHJyX2lmID0gJmdlbmVyaWNfbXRycl9vcHM7CiAJCXNpemVfb3JfbWFzayA9IDB4ZmYwMDAwMDA7CS8qIDM2IGJpdHMgKi8KIAkJc2l6ZV9hbmRfbWFzayA9IDB4MDBmMDAwMDA7CisJCXBoeXNfYWRkciA9IDM2OwogCiAJCS8qIFRoaXMgaXMgYW4gQU1EIHNwZWNpZmljIE1TUiwgYnV0IHdlIGFzc3VtZShob3BlPykgdGhhdAogCQkgICBJbnRlbCB3aWxsIGltcGxlbWVudCBpdCB0byB3aGVuIHRoZXkgZXh0ZW5kIHRoZSBhZGRyZXNzCiAJCSAgIGJ1cyBvZiB0aGUgWGVvbi4gKi8KIAkJaWYgKGNwdWlkX2VheCgweDgwMDAwMDAwKSA+PSAweDgwMDAwMDA4KSB7Ci0JCQl1MzIgcGh5c19hZGRyOwogCQkJcGh5c19hZGRyID0gY3B1aWRfZWF4KDB4ODAwMDAwMDgpICYgMHhmZjsKIAkJCS8qIENQVUlEIHdvcmthcm91bmQgZm9yIEludGVsIDBGMzMvMEYzNCBDUFUgKi8KIAkJCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCAmJgpAQCAtNzU4LDYgKzE2MTAsNyBAQAogCQkJICAgZG9uJ3Qgc3VwcG9ydCBQQUUgKi8KIAkJCXNpemVfb3JfbWFzayA9IDB4ZmZmMDAwMDA7CS8qIDMyIGJpdHMgKi8KIAkJCXNpemVfYW5kX21hc2sgPSAwOworCQkJcGh5c19hZGRyID0gMzI7CiAJCX0KIAl9IGVsc2UgewogCQlzd2l0Y2ggKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvcikgewpAQCAtNzkxLDggKzE2NDQsMTUgQEAKIAlpZiAobXRycl9pZikgewogCQlzZXRfbnVtX3Zhcl9yYW5nZXMoKTsKIAkJaW5pdF90YWJsZSgpOwotCQlpZiAodXNlX2ludGVsKCkpCisJCWlmICh1c2VfaW50ZWwoKSkgewogCQkJZ2V0X210cnJfc3RhdGUoKTsKKworCQkJaWYgKG10cnJfY2xlYW51cChwaHlzX2FkZHIpKSB7CisJCQkJY2hhbmdlZF9ieV9tdHJyX2NsZWFudXAgPSAxOworCQkJCW10cnJfaWYtPnNldF9hbGwoKTsKKwkJCX0KKworCQl9CiAJfQogfQogCkBAIC04MjksOSArMTY4OSwxMCBAQAogewogCWlmICghbXRycl9pZikKIAkJcmV0dXJuIDA7Ci0JaWYgKHVzZV9pbnRlbCgpKQotCQltdHJyX3N0YXRlX3dhcm4oKTsKLQllbHNlIHsKKwlpZiAodXNlX2ludGVsKCkpIHsKKwkJaWYgKCFjaGFuZ2VkX2J5X210cnJfY2xlYW51cCkKKwkJCW10cnJfc3RhdGVfd2FybigpOworCX0gZWxzZSB7CiAJCS8qIFRoZSBDUFVzIGhhdmVuJ3QgTVRSUiBhbmQgc2VlbSB0byBub3Qgc3VwcG9ydCBTTVAuIFRoZXkgaGF2ZQogCQkgKiBzcGVjaWZpYyBkcml2ZXJzLCB3ZSB1c2UgYSB0cmlja3kgbWV0aG9kIHRvIHN1cHBvcnQKIAkJICogc3VzcGVuZC9yZXN1bWUgZm9yIHRoZW0uCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvbXRyci5oIGIvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL210cnIuaAppbmRleCAyY2M3N2ViLi4yZGM0ZWM2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvbXRyci5oCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9tdHJyLmgKQEAgLTgxLDYgKzgxLDggQEAKIHZvaWQgc2V0X210cnJfY2FjaGVfZGlzYWJsZShzdHJ1Y3Qgc2V0X210cnJfY29udGV4dCAqY3R4dCk7CiB2b2lkIHNldF9tdHJyX3ByZXBhcmVfc2F2ZShzdHJ1Y3Qgc2V0X210cnJfY29udGV4dCAqY3R4dCk7CiAKK3ZvaWQgZmlsbF9tdHJyX3Zhcl9yYW5nZSh1bnNpZ25lZCBpbnQgaW5kZXgsCisJCXUzMiBiYXNlX2xvLCB1MzIgYmFzZV9oaSwgdTMyIG1hc2tfbG8sIHUzMiBtYXNrX2hpKTsKIHZvaWQgZ2V0X210cnJfc3RhdGUodm9pZCk7CiAKIGV4dGVybiB2b2lkIHNldF9tdHJyX29wcyhzdHJ1Y3QgbXRycl9vcHMgKiBvcHMpOwpAQCAtOTIsNiArOTQsNyBAQAogI2RlZmluZSB1c2VfaW50ZWwoKQkobXRycl9pZiAmJiBtdHJyX2lmLT51c2VfaW50ZWxfaWYgPT0gMSkKIAogZXh0ZXJuIHVuc2lnbmVkIGludCBudW1fdmFyX3JhbmdlczsKK2V4dGVybiB1NjQgbXRycl90b20yOwogCiB2b2lkIG10cnJfc3RhdGVfd2Fybih2b2lkKTsKIGNvbnN0IGNoYXIgKm10cnJfYXR0cmliX3RvX3N0cihpbnQgeCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3BlcmZjdHItd2F0Y2hkb2cuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZmN0ci13YXRjaGRvZy5jCmluZGV4IDU4MDQzZjAuLjZkNGJkYzAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZmN0ci13YXRjaGRvZy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZmN0ci13YXRjaGRvZy5jCkBAIC0xLDExICsxLDE1IEBACi0vKiBsb2NhbCBhcGljIGJhc2VkIE5NSSB3YXRjaGRvZyBmb3IgdmFyaW91cyBDUFVzLgotICAgVGhpcyBmaWxlIGFsc28gaGFuZGxlcyByZXNlcnZhdGlvbiBvZiBwZXJmb3JtYW5jZSBjb3VudGVycyBmb3IgY29vcmRpbmF0aW9uCi0gICB3aXRoIG90aGVyIHVzZXJzIChsaWtlIG9wcm9maWxlKS4KLQotICAgTm90ZSB0aGF0IHRoZXNlIGV2ZW50cyBub3JtYWxseSBkb24ndCB0aWNrIHdoZW4gdGhlIENQVSBpZGxlcy4gVGhpcyBtZWFucwotICAgdGhlIGZyZXF1ZW5jeSB2YXJpZXMgd2l0aCBDUFUgbG9hZC4KLQotICAgT3JpZ2luYWwgY29kZSBmb3IgSzcvUDYgd3JpdHRlbiBieSBLZWl0aCBPd2VucyAqLworLyoKKyAqIGxvY2FsIGFwaWMgYmFzZWQgTk1JIHdhdGNoZG9nIGZvciB2YXJpb3VzIENQVXMuCisgKgorICogVGhpcyBmaWxlIGFsc28gaGFuZGxlcyByZXNlcnZhdGlvbiBvZiBwZXJmb3JtYW5jZSBjb3VudGVycyBmb3IgY29vcmRpbmF0aW9uCisgKiB3aXRoIG90aGVyIHVzZXJzIChsaWtlIG9wcm9maWxlKS4KKyAqCisgKiBOb3RlIHRoYXQgdGhlc2UgZXZlbnRzIG5vcm1hbGx5IGRvbid0IHRpY2sgd2hlbiB0aGUgQ1BVIGlkbGVzLiBUaGlzIG1lYW5zCisgKiB0aGUgZnJlcXVlbmN5IHZhcmllcyB3aXRoIENQVSBsb2FkLgorICoKKyAqIE9yaWdpbmFsIGNvZGUgZm9yIEs3L1A2IHdyaXR0ZW4gYnkgS2VpdGggT3dlbnMKKyAqCisgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtMzYsMTIgKzQwLDE2IEBACiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2Rfb3BzICp3ZF9vcHM7CiAKLS8qIHRoaXMgbnVtYmVyIGlzIGNhbGN1bGF0ZWQgZnJvbSBJbnRlbCdzIE1TUl9QNF9DUlVfRVNDUjUgcmVnaXN0ZXIgYW5kIGl0J3MKLSAqIG9mZnNldCBmcm9tIE1TUl9QNF9CU1VfRVNDUjAuICBJdCB3aWxsIGJlIHRoZSBtYXggZm9yIGFsbCBwbGF0Zm9ybXMgKGZvciBub3cpCisvKgorICogdGhpcyBudW1iZXIgaXMgY2FsY3VsYXRlZCBmcm9tIEludGVsJ3MgTVNSX1A0X0NSVV9FU0NSNSByZWdpc3RlciBhbmQgaXQncworICogb2Zmc2V0IGZyb20gTVNSX1A0X0JTVV9FU0NSMC4KKyAqCisgKiBJdCB3aWxsIGJlIHRoZSBtYXggZm9yIGFsbCBwbGF0Zm9ybXMgKGZvciBub3cpCiAgKi8KICNkZWZpbmUgTk1JX01BWF9DT1VOVEVSX0JJVFMgNjYKIAotLyogcGVyZmN0cl9ubWlfb3duZXIgdHJhY2tzIHRoZSBvd25lcnNoaXAgb2YgdGhlIHBlcmZjdHIgcmVnaXN0ZXJzOgorLyoKKyAqIHBlcmZjdHJfbm1pX293bmVyIHRyYWNrcyB0aGUgb3duZXJzaGlwIG9mIHRoZSBwZXJmY3RyIHJlZ2lzdGVyczoKICAqIGV2dHNlbF9ubWlfb3duZXIgdHJhY2tzIHRoZSBvd25lcnNoaXAgb2YgdGhlIGV2ZW50IHNlbGVjdGlvbgogICogLSBkaWZmZXJlbnQgcGVyZm9ybWFuY2UgY291bnRlcnMvIGV2ZW50IHNlbGVjdGlvbiBtYXkgYmUgcmVzZXJ2ZWQgZm9yCiAgKiAgIGRpZmZlcmVudCBzdWJzeXN0ZW1zIHRoaXMgcmVzZXJ2YXRpb24gc3lzdGVtIGp1c3QgdHJpZXMgdG8gY29vcmRpbmF0ZQpAQCAtNzMsOCArODEsMTAgQEAKIAlyZXR1cm4gMDsKIH0KIAotLyogY29udmVydHMgYW4gbXNyIHRvIGFuIGFwcHJvcHJpYXRlIHJlc2VydmF0aW9uIGJpdCAqLwotLyogcmV0dXJucyB0aGUgYml0IG9mZnNldCBvZiB0aGUgZXZlbnQgc2VsZWN0aW9uIHJlZ2lzdGVyICovCisvKgorICogY29udmVydHMgYW4gbXNyIHRvIGFuIGFwcHJvcHJpYXRlIHJlc2VydmF0aW9uIGJpdAorICogcmV0dXJucyB0aGUgYml0IG9mZnNldCBvZiB0aGUgZXZlbnQgc2VsZWN0aW9uIHJlZ2lzdGVyCisgKi8KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IG5taV9ldm50c2VsX21zcl90b19iaXQodW5zaWduZWQgaW50IG1zcikKIHsKIAkvKiByZXR1cm5zIHRoZSBiaXQgb2Zmc2V0IG9mIHRoZSBldmVudCBzZWxlY3Rpb24gcmVnaXN0ZXIgKi8KQEAgLTExNCw2ICsxMjQsNyBAQAogCiAJcmV0dXJuICghdGVzdF9iaXQoY291bnRlciwgcGVyZmN0cl9ubWlfb3duZXIpKTsKIH0KK0VYUE9SVF9TWU1CT0woYXZhaWxfdG9fcmVzcnZfcGVyZmN0cl9ubWlfYml0KTsKIAogaW50IHJlc2VydmVfcGVyZmN0cl9ubWkodW5zaWduZWQgaW50IG1zcikKIHsKQEAgLTEyOCw2ICsxMzksNyBAQAogCQlyZXR1cm4gMTsKIAlyZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0wocmVzZXJ2ZV9wZXJmY3RyX25taSk7CiAKIHZvaWQgcmVsZWFzZV9wZXJmY3RyX25taSh1bnNpZ25lZCBpbnQgbXNyKQogewpAQCAtMTQwLDYgKzE1Miw3IEBACiAKIAljbGVhcl9iaXQoY291bnRlciwgcGVyZmN0cl9ubWlfb3duZXIpOwogfQorRVhQT1JUX1NZTUJPTChyZWxlYXNlX3BlcmZjdHJfbm1pKTsKIAogaW50IHJlc2VydmVfZXZudHNlbF9ubWkodW5zaWduZWQgaW50IG1zcikKIHsKQEAgLTE1NCw2ICsxNjcsNyBAQAogCQlyZXR1cm4gMTsKIAlyZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0wocmVzZXJ2ZV9ldm50c2VsX25taSk7CiAKIHZvaWQgcmVsZWFzZV9ldm50c2VsX25taSh1bnNpZ25lZCBpbnQgbXNyKQogewpAQCAtMTY2LDExICsxODAsNiBAQAogCiAJY2xlYXJfYml0KGNvdW50ZXIsIGV2bnRzZWxfbm1pX293bmVyKTsKIH0KLQotRVhQT1JUX1NZTUJPTChhdmFpbF90b19yZXNydl9wZXJmY3RyX25taV9iaXQpOwotRVhQT1JUX1NZTUJPTChyZXNlcnZlX3BlcmZjdHJfbm1pKTsKLUVYUE9SVF9TWU1CT0wocmVsZWFzZV9wZXJmY3RyX25taSk7Ci1FWFBPUlRfU1lNQk9MKHJlc2VydmVfZXZudHNlbF9ubWkpOwogRVhQT1JUX1NZTUJPTChyZWxlYXNlX2V2bnRzZWxfbm1pKTsKIAogdm9pZCBkaXNhYmxlX2xhcGljX25taV93YXRjaGRvZyh2b2lkKQpAQCAtMTgxLDcgKzE5MCw5IEBACiAJCXJldHVybjsKIAogCW9uX2VhY2hfY3B1KHN0b3BfYXBpY19ubWlfd2F0Y2hkb2csIE5VTEwsIDEpOwotCXdkX29wcy0+dW5yZXNlcnZlKCk7CisKKwlpZiAod2Rfb3BzKQorCQl3ZF9vcHMtPnVucmVzZXJ2ZSgpOwogCiAJQlVHX09OKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSAhPSAwKTsKIH0KQEAgLTIzMiw4ICsyNDMsOCBAQAogCXJldHVybiByZXR2YWw7CiB9CiAKLXN0YXRpYyB2b2lkCi13cml0ZV93YXRjaGRvZ19jb3VudGVyKHVuc2lnbmVkIGludCBwZXJmY3RyX21zciwgY29uc3QgY2hhciAqZGVzY3IsIHVuc2lnbmVkIG5taV9oeikKK3N0YXRpYyB2b2lkIHdyaXRlX3dhdGNoZG9nX2NvdW50ZXIodW5zaWduZWQgaW50IHBlcmZjdHJfbXNyLAorCQkJCWNvbnN0IGNoYXIgKmRlc2NyLCB1bnNpZ25lZCBubWlfaHopCiB7CiAJdTY0IGNvdW50ID0gKHU2NCljcHVfa2h6ICogMTAwMDsKIApAQCAtMjQ0LDcgKzI1NSw3IEBACiB9CiAKIHN0YXRpYyB2b2lkIHdyaXRlX3dhdGNoZG9nX2NvdW50ZXIzMih1bnNpZ25lZCBpbnQgcGVyZmN0cl9tc3IsCi0JCWNvbnN0IGNoYXIgKmRlc2NyLCB1bnNpZ25lZCBubWlfaHopCisJCQkJY29uc3QgY2hhciAqZGVzY3IsIHVuc2lnbmVkIG5taV9oeikKIHsKIAl1NjQgY291bnQgPSAodTY0KWNwdV9raHogKiAxMDAwOwogCkBAIC0yNTQsOSArMjY1LDEwIEBACiAJd3Jtc3IocGVyZmN0cl9tc3IsICh1MzIpKC1jb3VudCksIDApOwogfQogCi0vKiBBTUQgSzcvSzgvRmFtaWx5MTBoL0ZhbWlseTExaCBzdXBwb3J0LiBBTUQga2VlcHMgdGhpcyBpbnRlcmZhY2UKLSAgIG5pY2VseSBzdGFibGUgc28gdGhlcmUgaXMgbm90IG11Y2ggdmFyaWV0eSAqLwotCisvKgorICogQU1EIEs3L0s4L0ZhbWlseTEwaC9GYW1pbHkxMWggc3VwcG9ydC4KKyAqIEFNRCBrZWVwcyB0aGlzIGludGVyZmFjZSBuaWNlbHkgc3RhYmxlIHNvIHRoZXJlIGlzIG5vdCBtdWNoIHZhcmlldHkKKyAqLwogI2RlZmluZSBLN19FVk5UU0VMX0VOQUJMRQkoMSA8PCAyMikKICNkZWZpbmUgSzdfRVZOVFNFTF9JTlQJCSgxIDw8IDIwKQogI2RlZmluZSBLN19FVk5UU0VMX09TCQkoMSA8PCAxNykKQEAgLTI4OSw3ICszMDEsNyBAQAogCiAJd2QtPnBlcmZjdHJfbXNyID0gcGVyZmN0cl9tc3I7CiAJd2QtPmV2bnRzZWxfbXNyID0gZXZudHNlbF9tc3I7Ci0Jd2QtPmNjY3JfbXNyID0gMDsgIC8vdW51c2VkCisJd2QtPmNjY3JfbXNyID0gMDsgIC8qIHVudXNlZCAqLwogCXJldHVybiAxOwogfQogCkBAIC0zMjUsMTggKzMzNywxOSBAQAogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHdkX29wcyBrN193ZF9vcHMgPSB7Ci0JLnJlc2VydmUgPSBzaW5nbGVfbXNyX3Jlc2VydmUsCi0JLnVucmVzZXJ2ZSA9IHNpbmdsZV9tc3JfdW5yZXNlcnZlLAotCS5zZXR1cCA9IHNldHVwX2s3X3dhdGNoZG9nLAotCS5yZWFybSA9IHNpbmdsZV9tc3JfcmVhcm0sCi0JLnN0b3AgPSBzaW5nbGVfbXNyX3N0b3Bfd2F0Y2hkb2csCi0JLnBlcmZjdHIgPSBNU1JfSzdfUEVSRkNUUjAsCi0JLmV2bnRzZWwgPSBNU1JfSzdfRVZOVFNFTDAsCi0JLmNoZWNrYml0ID0gMVVMTDw8NDcsCisJLnJlc2VydmUJPSBzaW5nbGVfbXNyX3Jlc2VydmUsCisJLnVucmVzZXJ2ZQk9IHNpbmdsZV9tc3JfdW5yZXNlcnZlLAorCS5zZXR1cAkJPSBzZXR1cF9rN193YXRjaGRvZywKKwkucmVhcm0JCT0gc2luZ2xlX21zcl9yZWFybSwKKwkuc3RvcAkJPSBzaW5nbGVfbXNyX3N0b3Bfd2F0Y2hkb2csCisJLnBlcmZjdHIJPSBNU1JfSzdfUEVSRkNUUjAsCisJLmV2bnRzZWwJPSBNU1JfSzdfRVZOVFNFTDAsCisJLmNoZWNrYml0CT0gMVVMTCA8PCA0NywKIH07CiAKLS8qIEludGVsIE1vZGVsIDYgKFBQcm8rLFAyLFAzLFAtTSxDb3JlMSkgKi8KLQorLyoKKyAqIEludGVsIE1vZGVsIDYgKFBQcm8rLFAyLFAzLFAtTSxDb3JlMSkKKyAqLwogI2RlZmluZSBQNl9FVk5UU0VMMF9FTkFCTEUJKDEgPDwgMjIpCiAjZGVmaW5lIFA2X0VWTlRTRUxfSU5UCQkoMSA8PCAyMCkKICNkZWZpbmUgUDZfRVZOVFNFTF9PUwkJKDEgPDwgMTcpCkBAIC0zNzIsNTIgKzM4NSw1OCBAQAogCiAJd2QtPnBlcmZjdHJfbXNyID0gcGVyZmN0cl9tc3I7CiAJd2QtPmV2bnRzZWxfbXNyID0gZXZudHNlbF9tc3I7Ci0Jd2QtPmNjY3JfbXNyID0gMDsgIC8vdW51c2VkCisJd2QtPmNjY3JfbXNyID0gMDsgIC8qIHVudXNlZCAqLwogCXJldHVybiAxOwogfQogCiBzdGF0aWMgdm9pZCBwNl9yZWFybShzdHJ1Y3Qgbm1pX3dhdGNoZG9nX2N0bGJsayAqd2QsIHVuc2lnbmVkIG5taV9oeikKIHsKLQkvKiBQNiBiYXNlZCBQZW50aXVtIE0gbmVlZCB0byByZS11bm1hc2sKKwkvKgorCSAqIFA2IGJhc2VkIFBlbnRpdW0gTSBuZWVkIHRvIHJlLXVubWFzawogCSAqIHRoZSBhcGljIHZlY3RvciBidXQgaXQgZG9lc24ndCBodXJ0CiAJICogb3RoZXIgUDYgdmFyaWFudC4KLQkgKiBBcmNoUGVyZm9tL0NvcmUgRHVvIGFsc28gbmVlZHMgdGhpcyAqLworCSAqIEFyY2hQZXJmb20vQ29yZSBEdW8gYWxzbyBuZWVkcyB0aGlzCisJICovCiAJYXBpY193cml0ZShBUElDX0xWVFBDLCBBUElDX0RNX05NSSk7CisKIAkvKiBQNi9BUkNIX1BFUkZNT04gaGFzIDMyIGJpdCBjb3VudGVyIHdyaXRlICovCiAJd3JpdGVfd2F0Y2hkb2dfY291bnRlcjMyKHdkLT5wZXJmY3RyX21zciwgTlVMTCxubWlfaHopOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHdkX29wcyBwNl93ZF9vcHMgPSB7Ci0JLnJlc2VydmUgPSBzaW5nbGVfbXNyX3Jlc2VydmUsCi0JLnVucmVzZXJ2ZSA9IHNpbmdsZV9tc3JfdW5yZXNlcnZlLAotCS5zZXR1cCA9IHNldHVwX3A2X3dhdGNoZG9nLAotCS5yZWFybSA9IHA2X3JlYXJtLAotCS5zdG9wID0gc2luZ2xlX21zcl9zdG9wX3dhdGNoZG9nLAotCS5wZXJmY3RyID0gTVNSX1A2X1BFUkZDVFIwLAotCS5ldm50c2VsID0gTVNSX1A2X0VWTlRTRUwwLAotCS5jaGVja2JpdCA9IDFVTEw8PDM5LAorCS5yZXNlcnZlCT0gc2luZ2xlX21zcl9yZXNlcnZlLAorCS51bnJlc2VydmUJPSBzaW5nbGVfbXNyX3VucmVzZXJ2ZSwKKwkuc2V0dXAJCT0gc2V0dXBfcDZfd2F0Y2hkb2csCisJLnJlYXJtCQk9IHA2X3JlYXJtLAorCS5zdG9wCQk9IHNpbmdsZV9tc3Jfc3RvcF93YXRjaGRvZywKKwkucGVyZmN0cgk9IE1TUl9QNl9QRVJGQ1RSMCwKKwkuZXZudHNlbAk9IE1TUl9QNl9FVk5UU0VMMCwKKwkuY2hlY2tiaXQJPSAxVUxMIDw8IDM5LAogfTsKIAotLyogSW50ZWwgUDQgcGVyZm9ybWFuY2UgY291bnRlcnMuIEJ5IGZhciB0aGUgbW9zdCBjb21wbGljYXRlZCBvZiBhbGwuICovCisvKgorICogSW50ZWwgUDQgcGVyZm9ybWFuY2UgY291bnRlcnMuCisgKiBCeSBmYXIgdGhlIG1vc3QgY29tcGxpY2F0ZWQgb2YgYWxsLgorICovCisjZGVmaW5lIE1TUl9QNF9NSVNDX0VOQUJMRV9QRVJGX0FWQUlMCSgxIDw8IDcpCisjZGVmaW5lIFA0X0VTQ1JfRVZFTlRfU0VMRUNUKE4pCSgoTikgPDwgMjUpCisjZGVmaW5lIFA0X0VTQ1JfT1MJCSgxIDw8IDMpCisjZGVmaW5lIFA0X0VTQ1JfVVNSCQkoMSA8PCAyKQorI2RlZmluZSBQNF9DQ0NSX09WRl9QTUkwCSgxIDw8IDI2KQorI2RlZmluZSBQNF9DQ0NSX09WRl9QTUkxCSgxIDw8IDI3KQorI2RlZmluZSBQNF9DQ0NSX1RIUkVTSE9MRChOKQkoKE4pIDw8IDIwKQorI2RlZmluZSBQNF9DQ0NSX0NPTVBMRU1FTlQJKDEgPDwgMTkpCisjZGVmaW5lIFA0X0NDQ1JfQ09NUEFSRQkJKDEgPDwgMTgpCisjZGVmaW5lIFA0X0NDQ1JfUkVRVUlSRUQJKDMgPDwgMTYpCisjZGVmaW5lIFA0X0NDQ1JfRVNDUl9TRUxFQ1QoTikJKChOKSA8PCAxMykKKyNkZWZpbmUgUDRfQ0NDUl9FTkFCTEUJCSgxIDw8IDEyKQorI2RlZmluZSBQNF9DQ0NSX09WRiAJCSgxIDw8IDMxKQogCi0jZGVmaW5lIE1TUl9QNF9NSVNDX0VOQUJMRV9QRVJGX0FWQUlMCSgxPDw3KQotI2RlZmluZSBQNF9FU0NSX0VWRU5UX1NFTEVDVChOKQkoKE4pPDwyNSkKLSNkZWZpbmUgUDRfRVNDUl9PUwkJKDE8PDMpCi0jZGVmaW5lIFA0X0VTQ1JfVVNSCQkoMTw8MikKLSNkZWZpbmUgUDRfQ0NDUl9PVkZfUE1JMAkoMTw8MjYpCi0jZGVmaW5lIFA0X0NDQ1JfT1ZGX1BNSTEJKDE8PDI3KQotI2RlZmluZSBQNF9DQ0NSX1RIUkVTSE9MRChOKQkoKE4pPDwyMCkKLSNkZWZpbmUgUDRfQ0NDUl9DT01QTEVNRU5UCSgxPDwxOSkKLSNkZWZpbmUgUDRfQ0NDUl9DT01QQVJFCQkoMTw8MTgpCi0jZGVmaW5lIFA0X0NDQ1JfUkVRVUlSRUQJKDM8PDE2KQotI2RlZmluZSBQNF9DQ0NSX0VTQ1JfU0VMRUNUKE4pCSgoTik8PDEzKQotI2RlZmluZSBQNF9DQ0NSX0VOQUJMRQkJKDE8PDEyKQotI2RlZmluZSBQNF9DQ0NSX09WRiAJCSgxPDwzMSkKLQotLyogU2V0IHVwIElRX0NPVU5URVIwIHRvIGJlaGF2ZSBsaWtlIGEgY2xvY2ssIGJ5IGhhdmluZyBJUV9DQ0NSMCBmaWx0ZXIKLSAgIENSVV9FU0NSMCAod2l0aCBhbnkgbm9uLW51bGwgZXZlbnQgc2VsZWN0b3IpIHRocm91Z2ggYSBjb21wbGVtZW50ZWQKLSAgIG1heCB0aHJlc2hvbGQuIFtJQTMyLVZvbDMsIFNlY3Rpb24gMTQuOS45XSAqLwotCisvKgorICogU2V0IHVwIElRX0NPVU5URVIwIHRvIGJlaGF2ZSBsaWtlIGEgY2xvY2ssIGJ5IGhhdmluZyBJUV9DQ0NSMCBmaWx0ZXIKKyAqIENSVV9FU0NSMCAod2l0aCBhbnkgbm9uLW51bGwgZXZlbnQgc2VsZWN0b3IpIHRocm91Z2ggYSBjb21wbGVtZW50ZWQKKyAqIG1heCB0aHJlc2hvbGQuIFtJQTMyLVZvbDMsIFNlY3Rpb24gMTQuOS45XQorICovCiBzdGF0aWMgaW50IHNldHVwX3A0X3dhdGNoZG9nKHVuc2lnbmVkIG5taV9oeikKIHsKIAl1bnNpZ25lZCBpbnQgcGVyZmN0cl9tc3IsIGV2bnRzZWxfbXNyLCBjY2NyX21zcjsKQEAgLTQ0Miw3ICs0NjEsOCBAQAogI2VuZGlmCiAJCWh0X251bSA9IDA7CiAKLQkvKiBwZXJmb3JtYW5jZSBjb3VudGVycyBhcmUgc2hhcmVkIHJlc291cmNlcworCS8qCisJICogcGVyZm9ybWFuY2UgY291bnRlcnMgYXJlIHNoYXJlZCByZXNvdXJjZXMKIAkgKiBhc3NpZ24gZWFjaCBoeXBlcnRocmVhZCBpdHMgb3duIHNldAogCSAqIChyZS11c2UgdGhlIEVTQ1IwIHJlZ2lzdGVyLCBzZWVtcyBzYWZlCiAJICogYW5kIGtlZXBzIHRoZSBjY2NyX3ZhbCB0aGUgc2FtZSkKQEAgLTU0MCwyMCArNTYwLDIxIEBACiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2Rfb3BzIHA0X3dkX29wcyA9IHsKLQkucmVzZXJ2ZSA9IHA0X3Jlc2VydmUsCi0JLnVucmVzZXJ2ZSA9IHA0X3VucmVzZXJ2ZSwKLQkuc2V0dXAgPSBzZXR1cF9wNF93YXRjaGRvZywKLQkucmVhcm0gPSBwNF9yZWFybSwKLQkuc3RvcCA9IHN0b3BfcDRfd2F0Y2hkb2csCisJLnJlc2VydmUJPSBwNF9yZXNlcnZlLAorCS51bnJlc2VydmUJPSBwNF91bnJlc2VydmUsCisJLnNldHVwCQk9IHNldHVwX3A0X3dhdGNoZG9nLAorCS5yZWFybQkJPSBwNF9yZWFybSwKKwkuc3RvcAkJPSBzdG9wX3A0X3dhdGNoZG9nLAogCS8qIFJFRC1QRU4gdGhpcyBpcyB3cm9uZyBmb3IgdGhlIG90aGVyIHNpYmxpbmcgKi8KLQkucGVyZmN0ciA9IE1TUl9QNF9CUFVfUEVSRkNUUjAsCi0JLmV2bnRzZWwgPSBNU1JfUDRfQlNVX0VTQ1IwLAotCS5jaGVja2JpdCA9IDFVTEw8PDM5LAorCS5wZXJmY3RyCT0gTVNSX1A0X0JQVV9QRVJGQ1RSMCwKKwkuZXZudHNlbAk9IE1TUl9QNF9CU1VfRVNDUjAsCisJLmNoZWNrYml0CT0gMVVMTCA8PCAzOSwKIH07CiAKLS8qIFdhdGNoZG9nIHVzaW5nIHRoZSBJbnRlbCBhcmNoaXRlY3RlZCBQZXJmTW9uLiBVc2VkIGZvciBDb3JlMiBhbmQgaG9wZWZ1bGx5Ci0gICBhbGwgZnV0dXJlIEludGVsIENQVXMuICovCi0KKy8qCisgKiBXYXRjaGRvZyB1c2luZyB0aGUgSW50ZWwgYXJjaGl0ZWN0ZWQgUGVyZk1vbi4KKyAqIFVzZWQgZm9yIENvcmUyIGFuZCBob3BlZnVsbHkgYWxsIGZ1dHVyZSBJbnRlbCBDUFVzLgorICovCiAjZGVmaW5lIEFSQ0hfUEVSRk1PTl9OTUlfRVZFTlRfU0VMCUFSQ0hfUEVSRk1PTl9VTkhBTFRFRF9DT1JFX0NZQ0xFU19TRUwKICNkZWZpbmUgQVJDSF9QRVJGTU9OX05NSV9FVkVOVF9VTUFTSwlBUkNIX1BFUkZNT05fVU5IQUxURURfQ09SRV9DWUNMRVNfVU1BU0sKIApAQCAtNTk5LDE5ICs2MjAsMTkgQEAKIAogCXdkLT5wZXJmY3RyX21zciA9IHBlcmZjdHJfbXNyOwogCXdkLT5ldm50c2VsX21zciA9IGV2bnRzZWxfbXNyOwotCXdkLT5jY2NyX21zciA9IDA7ICAvL3VudXNlZAorCXdkLT5jY2NyX21zciA9IDA7ICAvKiB1bnVzZWQgKi8KIAlpbnRlbF9hcmNoX3dkX29wcy5jaGVja2JpdCA9IDFVTEwgPDwgKGVheC5zcGxpdC5iaXRfd2lkdGggLSAxKTsKIAlyZXR1cm4gMTsKIH0KIAogc3RhdGljIHN0cnVjdCB3ZF9vcHMgaW50ZWxfYXJjaF93ZF9vcHMgX19yZWFkX21vc3RseSA9IHsKLQkucmVzZXJ2ZSA9IHNpbmdsZV9tc3JfcmVzZXJ2ZSwKLQkudW5yZXNlcnZlID0gc2luZ2xlX21zcl91bnJlc2VydmUsCi0JLnNldHVwID0gc2V0dXBfaW50ZWxfYXJjaF93YXRjaGRvZywKLQkucmVhcm0gPSBwNl9yZWFybSwKLQkuc3RvcCA9IHNpbmdsZV9tc3Jfc3RvcF93YXRjaGRvZywKLQkucGVyZmN0ciA9IE1TUl9BUkNIX1BFUkZNT05fUEVSRkNUUjEsCi0JLmV2bnRzZWwgPSBNU1JfQVJDSF9QRVJGTU9OX0VWRU5UU0VMMSwKKwkucmVzZXJ2ZQk9IHNpbmdsZV9tc3JfcmVzZXJ2ZSwKKwkudW5yZXNlcnZlCT0gc2luZ2xlX21zcl91bnJlc2VydmUsCisJLnNldHVwCQk9IHNldHVwX2ludGVsX2FyY2hfd2F0Y2hkb2csCisJLnJlYXJtCQk9IHA2X3JlYXJtLAorCS5zdG9wCQk9IHNpbmdsZV9tc3Jfc3RvcF93YXRjaGRvZywKKwkucGVyZmN0cgk9IE1TUl9BUkNIX1BFUkZNT05fUEVSRkNUUjEsCisJLmV2bnRzZWwJPSBNU1JfQVJDSF9QRVJGTU9OX0VWRU5UU0VMMSwKIH07CiAKIHN0YXRpYyB2b2lkIHByb2JlX25taV93YXRjaGRvZyh2b2lkKQpAQCAtNjI0LDggKzY0NSwxMCBAQAogCQl3ZF9vcHMgPSAmazdfd2Rfb3BzOwogCQlicmVhazsKIAljYXNlIFg4Nl9WRU5ET1JfSU5URUw6Ci0JCS8qIFdvcmsgYXJvdW5kIENvcmUgRHVvIChZb25haCkgZXJyYXRhIEFFNDkgd2hlcmUgcGVyZmN0cjEKLQkJICAgZG9lc24ndCBoYXZlIGEgd29ya2luZyBlbmFibGUgYml0LiAqLworCQkvKgorCQkgKiBXb3JrIGFyb3VuZCBDb3JlIER1byAoWW9uYWgpIGVycmF0YSBBRTQ5IHdoZXJlIHBlcmZjdHIxCisJCSAqIGRvZXNuJ3QgaGF2ZSBhIHdvcmtpbmcgZW5hYmxlIGJpdC4KKwkJICovCiAJCWlmIChib290X2NwdV9kYXRhLng4NiA9PSA2ICYmIGJvb3RfY3B1X2RhdGEueDg2X21vZGVsID09IDE0KSB7CiAJCQlpbnRlbF9hcmNoX3dkX29wcy5wZXJmY3RyID0gTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMDsKIAkJCWludGVsX2FyY2hfd2Rfb3BzLmV2bnRzZWwgPSBNU1JfQVJDSF9QRVJGTU9OX0VWRU5UU0VMMDsKQEAgLTYzNiw3ICs2NTksNyBAQAogCQl9CiAJCXN3aXRjaCAoYm9vdF9jcHVfZGF0YS54ODYpIHsKIAkJY2FzZSA2OgotCQkJaWYgKGJvb3RfY3B1X2RhdGEueDg2X21vZGVsID4gMHhkKQorCQkJaWYgKGJvb3RfY3B1X2RhdGEueDg2X21vZGVsID4gMTMpCiAJCQkJcmV0dXJuOwogCiAJCQl3ZF9vcHMgPSAmcDZfd2Rfb3BzOwpAQCAtNjk3LDEwICs3MjAsMTEgQEAKIHsKIAlzdHJ1Y3Qgbm1pX3dhdGNoZG9nX2N0bGJsayAqd2QgPSAmX19nZXRfY3B1X3ZhcihubWlfd2F0Y2hkb2dfY3RsYmxrKTsKIAl1NjQgY3RyOworCiAJcmRtc3JsKHdkLT5wZXJmY3RyX21zciwgY3RyKTsKLQlpZiAoY3RyICYgd2Rfb3BzLT5jaGVja2JpdCkgeyAvKiBwZXJmY3RyIHN0aWxsIHJ1bm5pbmc/ICovCisJaWYgKGN0ciAmIHdkX29wcy0+Y2hlY2tiaXQpIC8qIHBlcmZjdHIgc3RpbGwgcnVubmluZz8gKi8KIAkJcmV0dXJuIDA7Ci0JfQorCiAJd2Rfb3BzLT5yZWFybSh3ZCwgbm1pX2h6KTsKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHVpZC5jIGIvYXJjaC94ODYva2VybmVsL2NwdWlkLmMKaW5kZXggMzM2ZGQ0My4uMmRlNWZhMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdWlkLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdWlkLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CkBAIC0xMDcsMTUgKzEwOCwyMyBAQAogCiBzdGF0aWMgaW50IGNwdWlkX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JdW5zaWduZWQgaW50IGNwdSA9IGltaW5vcihmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKTsKLQlzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmY3B1X2RhdGEoY3B1KTsKKwl1bnNpZ25lZCBpbnQgY3B1OworCXN0cnVjdCBjcHVpbmZvX3g4NiAqYzsKKwlpbnQgcmV0ID0gMDsKKwkKKwlsb2NrX2tlcm5lbCgpOwogCi0JaWYgKGNwdSA+PSBOUl9DUFVTIHx8ICFjcHVfb25saW5lKGNwdSkpCi0JCXJldHVybiAtRU5YSU87CS8qIE5vIHN1Y2ggQ1BVICovCisJY3B1ID0gaW1pbm9yKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpOworCWlmIChjcHUgPj0gTlJfQ1BVUyB8fCAhY3B1X29ubGluZShjcHUpKSB7CisJCXJldCA9IC1FTlhJTzsJLyogTm8gc3VjaCBDUFUgKi8KKwkJZ290byBvdXQ7CisJfQorCWMgPSAmY3B1X2RhdGEoY3B1KTsKIAlpZiAoYy0+Y3B1aWRfbGV2ZWwgPCAwKQotCQlyZXR1cm4gLUVJTzsJLyogQ1BVSUQgbm90IHN1cHBvcnRlZCAqLwotCi0JcmV0dXJuIDA7CisJCXJldCA9IC1FSU87CS8qIENQVUlEIG5vdCBzdXBwb3J0ZWQgKi8KK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lODIwLmMgYi9hcmNoL3g4Ni9rZXJuZWwvZTgyMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4YzI5MTgKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvZTgyMC5jCkBAIC0wLDAgKzEsMTM5MCBAQAorLyoKKyAqIEhhbmRsZSB0aGUgbWVtb3J5IG1hcC4KKyAqIFRoZSBmdW5jdGlvbnMgaGVyZSBkbyB0aGUgam9iIHVudGlsIGJvb3RtZW0gdGFrZXMgb3Zlci4KKyAqCisgKiAgR2V0dGluZyBzYW5pdGl6ZV9lODIwX21hcCgpIGluIHN5bmMgd2l0aCBpMzg2IHZlcnNpb24gYnkgYXBwbHlpbmcgY2hhbmdlOgorICogIC0gIFByb3Zpc2lvbnMgZm9yIGVtcHR5IEU4MjAgbWVtb3J5IHJlZ2lvbnMgKHJlcG9ydGVkIGJ5IGNlcnRhaW4gQklPU2VzKS4KKyAqICAgICBBbGV4IEFjaGVuYmFjaCA8eGVsYUBzbGl0LmRlPiwgRGVjZW1iZXIgMjAwMi4KKyAqICBWZW5rYXRlc2ggUGFsbGlwYWRpIDx2ZW5rYXRlc2gucGFsbGlwYWRpQGludGVsLmNvbT4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3Bmbi5oPgorI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS1tYXAuaD4KKworI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorI2luY2x1ZGUgPGFzbS9wcm90by5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS90cmFtcG9saW5lLmg+CisKKy8qCisgKiBUaGUgZTgyMCBtYXAgaXMgdGhlIG1hcCB0aGF0IGdldHMgbW9kaWZpZWQgZS5nLiB3aXRoIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzCisgKiBhbmQgdGhhdCBpcyBhbHNvIHJlZ2lzdGVyZWQgd2l0aCBtb2RpZmljYXRpb25zIGluIHRoZSBrZXJuZWwgcmVzb3VyY2UgdHJlZQorICogd2l0aCB0aGUgaW9tZW1fcmVzb3VyY2UgYXMgcGFyZW50LgorICoKKyAqIFRoZSBlODIwX3NhdmVkIGlzIGRpcmVjdGx5IHNhdmVkIGFmdGVyIHRoZSBCSU9TLXByb3ZpZGVkIG1lbW9yeSBtYXAgaXMKKyAqIGNvcGllZC4gSXQgZG9lc24ndCBnZXQgbW9kaWZpZWQgYWZ0ZXJ3YXJkcy4gSXQncyByZWdpc3RlcmVkIGZvciB0aGUKKyAqIC9zeXMvZmlybXdhcmUvbWVtbWFwIGludGVyZmFjZS4KKyAqCisgKiBUaGF0IG1lbW9yeSBtYXAgaXMgbm90IG1vZGlmaWVkIGFuZCBpcyB1c2VkIGFzIGJhc2UgZm9yIGtleGVjLiBUaGUga2V4ZWMnZAorICoga2VybmVsIHNob3VsZCBnZXQgdGhlIHNhbWUgbWVtb3J5IG1hcCBhcyB0aGUgZmlybXdhcmUgcHJvdmlkZXMuIFRoZW4gdGhlCisgKiB1c2VyIGNhbiBlLmcuIGJvb3QgdGhlIG9yaWdpbmFsIGtlcm5lbCB3aXRoIG1lbT0xRyB3aGlsZSBzdGlsbCBib290aW5nIHRoZQorICogbmV4dCBrZXJuZWwgd2l0aCBmdWxsIG1lbW9yeS4KKyAqLworc3RydWN0IGU4MjBtYXAgZTgyMDsKK3N0cnVjdCBlODIwbWFwIGU4MjBfc2F2ZWQ7CisKKy8qIEZvciBQQ0kgb3Igb3RoZXIgbWVtb3J5LW1hcHBlZCByZXNvdXJjZXMgKi8KK3Vuc2lnbmVkIGxvbmcgcGNpX21lbV9zdGFydCA9IDB4YWVlZGJhYmU7CisjaWZkZWYgQ09ORklHX1BDSQorRVhQT1JUX1NZTUJPTChwY2lfbWVtX3N0YXJ0KTsKKyNlbmRpZgorCisvKgorICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgYW55IHBhcnQgb2YgdGhlIHJhbmdlIDxzdGFydCxlbmQ+IGlzIG1hcHBlZAorICogd2l0aCB0eXBlLgorICovCitpbnQKK2U4MjBfYW55X21hcHBlZCh1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIHR5cGUpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKKworCQlpZiAodHlwZSAmJiBlaS0+dHlwZSAhPSB0eXBlKQorCQkJY29udGludWU7CisJCWlmIChlaS0+YWRkciA+PSBlbmQgfHwgZWktPmFkZHIgKyBlaS0+c2l6ZSA8PSBzdGFydCkKKwkJCWNvbnRpbnVlOworCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChlODIwX2FueV9tYXBwZWQpOworCisvKgorICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGVudGlyZSByYW5nZSA8c3RhcnQsZW5kPiBpcyBtYXBwZWQgd2l0aCB0eXBlLgorICoKKyAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gb25seSB3b3JrcyBjb3JyZWN0IGlmIHRoZSBlODIwIHRhYmxlIGlzIHNvcnRlZCBhbmQKKyAqIG5vdC1vdmVybGFwcGluZywgd2hpY2ggaXMgdGhlIGNhc2UKKyAqLworaW50IF9faW5pdCBlODIwX2FsbF9tYXBwZWQodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCB0eXBlKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07CisKKwkJaWYgKHR5cGUgJiYgZWktPnR5cGUgIT0gdHlwZSkKKwkJCWNvbnRpbnVlOworCQkvKiBpcyB0aGUgcmVnaW9uIChwYXJ0KSBpbiBvdmVybGFwIHdpdGggdGhlIGN1cnJlbnQgcmVnaW9uID8qLworCQlpZiAoZWktPmFkZHIgPj0gZW5kIHx8IGVpLT5hZGRyICsgZWktPnNpemUgPD0gc3RhcnQpCisJCQljb250aW51ZTsKKworCQkvKiBpZiB0aGUgcmVnaW9uIGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgPHN0YXJ0LGVuZD4gd2UgbW92ZQorCQkgKiBzdGFydCB0byB0aGUgZW5kIG9mIHRoZSByZWdpb24gc2luY2UgaXQncyBvayB1bnRpbCB0aGVyZQorCQkgKi8KKwkJaWYgKGVpLT5hZGRyIDw9IHN0YXJ0KQorCQkJc3RhcnQgPSBlaS0+YWRkciArIGVpLT5zaXplOworCQkvKgorCQkgKiBpZiBzdGFydCBpcyBub3cgYXQgb3IgYmV5b25kIGVuZCwgd2UncmUgZG9uZSwgZnVsbAorCQkgKiBjb3ZlcmFnZQorCQkgKi8KKwkJaWYgKHN0YXJ0ID49IGVuZCkKKwkJCXJldHVybiAxOworCX0KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEFkZCBhIG1lbW9yeSByZWdpb24gdG8gdGhlIGtlcm5lbCBlODIwIG1hcC4KKyAqLwordm9pZCBfX2luaXQgZTgyMF9hZGRfcmVnaW9uKHU2NCBzdGFydCwgdTY0IHNpemUsIGludCB0eXBlKQoreworCWludCB4ID0gZTgyMC5ucl9tYXA7CisKKwlpZiAoeCA9PSBBUlJBWV9TSVpFKGU4MjAubWFwKSkgeworCQlwcmludGsoS0VSTl9FUlIgIk9vb3BzISBUb28gbWFueSBlbnRyaWVzIGluIHRoZSBtZW1vcnkgbWFwIVxuIik7CisJCXJldHVybjsKKwl9CisKKwllODIwLm1hcFt4XS5hZGRyID0gc3RhcnQ7CisJZTgyMC5tYXBbeF0uc2l6ZSA9IHNpemU7CisJZTgyMC5tYXBbeF0udHlwZSA9IHR5cGU7CisJZTgyMC5ucl9tYXArKzsKK30KKwordm9pZCBfX2luaXQgZTgyMF9wcmludF9tYXAoY2hhciAqd2hvKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiICVzOiAlMDE2THggLSAlMDE2THggIiwgd2hvLAorCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgZTgyMC5tYXBbaV0uYWRkciwKKwkJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpCisJCSAgICAgICAoZTgyMC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemUpKTsKKwkJc3dpdGNoIChlODIwLm1hcFtpXS50eXBlKSB7CisJCWNhc2UgRTgyMF9SQU06CisJCWNhc2UgRTgyMF9SRVNFUlZFRF9LRVJOOgorCQkJcHJpbnRrKEtFUk5fQ09OVCAiKHVzYWJsZSlcbiIpOworCQkJYnJlYWs7CisJCWNhc2UgRTgyMF9SRVNFUlZFRDoKKwkJCXByaW50ayhLRVJOX0NPTlQgIihyZXNlcnZlZClcbiIpOworCQkJYnJlYWs7CisJCWNhc2UgRTgyMF9BQ1BJOgorCQkJcHJpbnRrKEtFUk5fQ09OVCAiKEFDUEkgZGF0YSlcbiIpOworCQkJYnJlYWs7CisJCWNhc2UgRTgyMF9OVlM6CisJCQlwcmludGsoS0VSTl9DT05UICIoQUNQSSBOVlMpXG4iKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcHJpbnRrKEtFUk5fQ09OVCAidHlwZSAldVxuIiwgZTgyMC5tYXBbaV0udHlwZSk7CisJCQlicmVhazsKKwkJfQorCX0KK30KKworLyoKKyAqIFNhbml0aXplIHRoZSBCSU9TIGU4MjAgbWFwLgorICoKKyAqIFNvbWUgZTgyMCByZXNwb25zZXMgaW5jbHVkZSBvdmVybGFwcGluZyBlbnRyaWVzLiBUaGUgZm9sbG93aW5nCisgKiByZXBsYWNlcyB0aGUgb3JpZ2luYWwgZTgyMCBtYXAgd2l0aCBhIG5ldyBvbmUsIHJlbW92aW5nIG92ZXJsYXBzLAorICogYW5kIHJlc29sdmluZyBjb25mbGljdGluZyBtZW1vcnkgdHlwZXMgaW4gZmF2b3Igb2YgaGlnaGVzdAorICogbnVtYmVyZWQgdHlwZS4KKyAqCisgKiBUaGUgaW5wdXQgcGFyYW1ldGVyIGJpb3NtYXAgcG9pbnRzIHRvIGFuIGFycmF5IG9mICdzdHJ1Y3QKKyAqIGU4MjBlbnRyeScgd2hpY2ggb24gZW50cnkgaGFzIGVsZW1lbnRzIGluIHRoZSByYW5nZSBbMCwgKnBucl9tYXApCisgKiB2YWxpZCwgYW5kIHdoaWNoIGhhcyBzcGFjZSBmb3IgdXAgdG8gbWF4X25yX21hcCBlbnRyaWVzLgorICogT24gcmV0dXJuLCB0aGUgcmVzdWx0aW5nIHNhbml0aXplZCBlODIwIG1hcCBlbnRyaWVzIHdpbGwgYmUgaW4KKyAqIG92ZXJ3cml0dGVuIGluIHRoZSBzYW1lIGxvY2F0aW9uLCBzdGFydGluZyBhdCBiaW9zbWFwLgorICoKKyAqIFRoZSBpbnRlZ2VyIHBvaW50ZWQgdG8gYnkgcG5yX21hcCBtdXN0IGJlIHZhbGlkIG9uIGVudHJ5ICh0aGUKKyAqIGN1cnJlbnQgbnVtYmVyIG9mIHZhbGlkIGVudHJpZXMgbG9jYXRlZCBhdCBiaW9zbWFwKSBhbmQgd2lsbAorICogYmUgdXBkYXRlZCBvbiByZXR1cm4sIHdpdGggdGhlIG5ldyBudW1iZXIgb2YgdmFsaWQgZW50cmllcworICogKHNvbWV0aGluZyBubyBtb3JlIHRoYW4gbWF4X25yX21hcC4pCisgKgorICogVGhlIHJldHVybiB2YWx1ZSBmcm9tIHNhbml0aXplX2U4MjBfbWFwKCkgaXMgemVybyBpZiBpdAorICogc3VjY2Vzc2Z1bGx5ICdzYW5pdGl6ZWQnIHRoZSBtYXAgZW50cmllcyBwYXNzZWQgaW4sIGFuZCBpcyAtMQorICogaWYgaXQgZGlkIG5vdGhpbmcsIHdoaWNoIGNhbiBoYXBwZW4gaWYgZWl0aGVyIG9mICgxKSBpdCB3YXMKKyAqIG9ubHkgcGFzc2VkIG9uZSBtYXAgZW50cnksIG9yICgyKSBhbnkgb2YgdGhlIGlucHV0IG1hcCBlbnRyaWVzCisgKiB3ZXJlIGludmFsaWQgKHN0YXJ0ICsgc2l6ZSA8IHN0YXJ0LCBtZWFuaW5nIHRoYXQgdGhlIHNpemUgd2FzCisgKiBzbyBiaWcgdGhlIGRlc2NyaWJlZCBtZW1vcnkgcmFuZ2Ugd3JhcHBlZCBhcm91bmQgdGhyb3VnaCB6ZXJvLikKKyAqCisgKglWaXN1YWxseSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcKKyAqCSgxLDIsMyw0ID0gbWVtb3J5IHR5cGVzKS4uLgorICoKKyAqCVNhbXBsZSBtZW1vcnkgbWFwICh3L292ZXJsYXBzKToKKyAqCSAgIF9fX18yMl9fX19fX19fX19fX19fX19fXworICoJICAgX19fX19fX19fX19fX19fX19fX19fXzRfCisgKgkgICBfX19fMTExMV9fX19fX19fX19fX19fX18KKyAqCSAgIF80NF9fX19fX19fX19fX19fX19fX19fXworICoJICAgMTExMTExMTFfX19fX19fX19fX19fX19fCisgKgkgICBfX19fX19fX19fX19fX19fX19fXzMzX18KKyAqCSAgIF9fX19fX19fX19fNDRfX19fX19fX19fXworICoJICAgX19fX19fX19fXzMzMzMzX19fX19fX19fCisgKgkgICBfX19fX19fX19fX19fXzIyX19fX19fX18KKyAqCSAgIF9fX19fX19fX19fX19fX19fX18yMjIyXworICoJICAgX19fX19fX19fMTExMTExMTExX19fX19fCisgKgkgICBfX19fX19fX19fX19fX19fX19fX18xMV8KKyAqCSAgIF9fX19fX19fX19fX19fX19fNF9fX19fXworICoKKyAqCVNhbml0aXplZCBlcXVpdmFsZW50IChubyBvdmVybGFwKToKKyAqCSAgIDFfX19fX19fX19fX19fX19fX19fX19fXworICoJICAgXzQ0X19fX19fX19fX19fX19fX19fX19fCisgKgkgICBfX18xX19fX19fX19fX19fX19fX19fX18KKyAqCSAgIF9fX18yMl9fX19fX19fX19fX19fX19fXworICoJICAgX19fX19fMTFfX19fX19fX19fX19fX19fCisgKgkgICBfX19fX19fX18xX19fX19fX19fX19fX18KKyAqCSAgIF9fX19fX19fX18zX19fX19fX19fX19fXworICoJICAgX19fX19fX19fX180NF9fX19fX19fX19fCisgKgkgICBfX19fX19fX19fX19fMzNfX19fX19fX18KKyAqCSAgIF9fX19fX19fX19fX19fXzJfX19fX19fXworICoJICAgX19fX19fX19fX19fX19fXzFfX19fX19fCisgKgkgICBfX19fX19fX19fX19fX19fXzRfX19fX18KKyAqCSAgIF9fX19fX19fX19fX19fX19fX18yX19fXworICoJICAgX19fX19fX19fX19fX19fX19fX18zM19fCisgKgkgICBfX19fX19fX19fX19fX19fX19fX19fNF8KKyAqLworCitpbnQgX19pbml0IHNhbml0aXplX2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGludCBtYXhfbnJfbWFwLAorCQkJCWludCAqcG5yX21hcCkKK3sKKwlzdHJ1Y3QgY2hhbmdlX21lbWJlciB7CisJCXN0cnVjdCBlODIwZW50cnkgKnBiaW9zOyAvKiBwb2ludGVyIHRvIG9yaWdpbmFsIGJpb3MgZW50cnkgKi8KKwkJdW5zaWduZWQgbG9uZyBsb25nIGFkZHI7IC8qIGFkZHJlc3MgZm9yIHRoaXMgY2hhbmdlIHBvaW50ICovCisJfTsKKwlzdGF0aWMgc3RydWN0IGNoYW5nZV9tZW1iZXIgY2hhbmdlX3BvaW50X2xpc3RbMipFODIwX1hfTUFYXSBfX2luaXRkYXRhOworCXN0YXRpYyBzdHJ1Y3QgY2hhbmdlX21lbWJlciAqY2hhbmdlX3BvaW50WzIqRTgyMF9YX01BWF0gX19pbml0ZGF0YTsKKwlzdGF0aWMgc3RydWN0IGU4MjBlbnRyeSAqb3ZlcmxhcF9saXN0W0U4MjBfWF9NQVhdIF9faW5pdGRhdGE7CisJc3RhdGljIHN0cnVjdCBlODIwZW50cnkgbmV3X2Jpb3NbRTgyMF9YX01BWF0gX19pbml0ZGF0YTsKKwlzdHJ1Y3QgY2hhbmdlX21lbWJlciAqY2hhbmdlX3RtcDsKKwl1bnNpZ25lZCBsb25nIGN1cnJlbnRfdHlwZSwgbGFzdF90eXBlOworCXVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0X2FkZHI7CisJaW50IGNoZ2lkeCwgc3RpbGxfY2hhbmdpbmc7CisJaW50IG92ZXJsYXBfZW50cmllczsKKwlpbnQgbmV3X2Jpb3NfZW50cnk7CisJaW50IG9sZF9uciwgbmV3X25yLCBjaGdfbnI7CisJaW50IGk7CisKKwkvKiBpZiB0aGVyZSdzIG9ubHkgb25lIG1lbW9yeSByZWdpb24sIGRvbid0IGJvdGhlciAqLworCWlmICgqcG5yX21hcCA8IDIpCisJCXJldHVybiAtMTsKKworCW9sZF9uciA9ICpwbnJfbWFwOworCUJVR19PTihvbGRfbnIgPiBtYXhfbnJfbWFwKTsKKworCS8qIGJhaWwgb3V0IGlmIHdlIGZpbmQgYW55IHVucmVhc29uYWJsZSBhZGRyZXNzZXMgaW4gYmlvcyBtYXAgKi8KKwlmb3IgKGkgPSAwOyBpIDwgb2xkX25yOyBpKyspCisJCWlmIChiaW9zbWFwW2ldLmFkZHIgKyBiaW9zbWFwW2ldLnNpemUgPCBiaW9zbWFwW2ldLmFkZHIpCisJCQlyZXR1cm4gLTE7CisKKwkvKiBjcmVhdGUgcG9pbnRlcnMgZm9yIGluaXRpYWwgY2hhbmdlLXBvaW50IGluZm9ybWF0aW9uIChmb3Igc29ydGluZykgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMiAqIG9sZF9ucjsgaSsrKQorCQljaGFuZ2VfcG9pbnRbaV0gPSAmY2hhbmdlX3BvaW50X2xpc3RbaV07CisKKwkvKiByZWNvcmQgYWxsIGtub3duIGNoYW5nZS1wb2ludHMgKHN0YXJ0aW5nIGFuZCBlbmRpbmcgYWRkcmVzc2VzKSwKKwkgICBvbWl0dGluZyB0aG9zZSB0aGF0IGFyZSBmb3IgZW1wdHkgbWVtb3J5IHJlZ2lvbnMgKi8KKwljaGdpZHggPSAwOworCWZvciAoaSA9IDA7IGkgPCBvbGRfbnI7IGkrKykJeworCQlpZiAoYmlvc21hcFtpXS5zaXplICE9IDApIHsKKwkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyID0gYmlvc21hcFtpXS5hZGRyOworCQkJY2hhbmdlX3BvaW50W2NoZ2lkeCsrXS0+cGJpb3MgPSAmYmlvc21hcFtpXTsKKwkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyID0gYmlvc21hcFtpXS5hZGRyICsKKwkJCQliaW9zbWFwW2ldLnNpemU7CisJCQljaGFuZ2VfcG9pbnRbY2hnaWR4KytdLT5wYmlvcyA9ICZiaW9zbWFwW2ldOworCQl9CisJfQorCWNoZ19uciA9IGNoZ2lkeDsKKworCS8qIHNvcnQgY2hhbmdlLXBvaW50IGxpc3QgYnkgbWVtb3J5IGFkZHJlc3NlcyAobG93IC0+IGhpZ2gpICovCisJc3RpbGxfY2hhbmdpbmcgPSAxOworCXdoaWxlIChzdGlsbF9jaGFuZ2luZykJeworCQlzdGlsbF9jaGFuZ2luZyA9IDA7CisJCWZvciAoaSA9IDE7IGkgPCBjaGdfbnI7IGkrKykgIHsKKwkJCXVuc2lnbmVkIGxvbmcgbG9uZyBjdXJhZGRyLCBsYXN0YWRkcjsKKwkJCXVuc2lnbmVkIGxvbmcgbG9uZyBjdXJwYmFkZHIsIGxhc3RwYmFkZHI7CisKKwkJCWN1cmFkZHIgPSBjaGFuZ2VfcG9pbnRbaV0tPmFkZHI7CisJCQlsYXN0YWRkciA9IGNoYW5nZV9wb2ludFtpIC0gMV0tPmFkZHI7CisJCQljdXJwYmFkZHIgPSBjaGFuZ2VfcG9pbnRbaV0tPnBiaW9zLT5hZGRyOworCQkJbGFzdHBiYWRkciA9IGNoYW5nZV9wb2ludFtpIC0gMV0tPnBiaW9zLT5hZGRyOworCisJCQkvKgorCQkJICogc3dhcCBlbnRyaWVzLCB3aGVuOgorCQkJICoKKwkJCSAqIGN1cmFkZHIgPiBsYXN0YWRkciBvcgorCQkJICogY3VyYWRkciA9PSBsYXN0YWRkciBhbmQgY3VyYWRkciA9PSBjdXJwYmFkZHIgYW5kCisJCQkgKiBsYXN0YWRkciAhPSBsYXN0cGJhZGRyCisJCQkgKi8KKwkJCWlmIChjdXJhZGRyIDwgbGFzdGFkZHIgfHwKKwkJCSAgICAoY3VyYWRkciA9PSBsYXN0YWRkciAmJiBjdXJhZGRyID09IGN1cnBiYWRkciAmJgorCQkJICAgICBsYXN0YWRkciAhPSBsYXN0cGJhZGRyKSkgeworCQkJCWNoYW5nZV90bXAgPSBjaGFuZ2VfcG9pbnRbaV07CisJCQkJY2hhbmdlX3BvaW50W2ldID0gY2hhbmdlX3BvaW50W2ktMV07CisJCQkJY2hhbmdlX3BvaW50W2ktMV0gPSBjaGFuZ2VfdG1wOworCQkJCXN0aWxsX2NoYW5naW5nID0gMTsKKwkJCX0KKwkJfQorCX0KKworCS8qIGNyZWF0ZSBhIG5ldyBiaW9zIG1lbW9yeSBtYXAsIHJlbW92aW5nIG92ZXJsYXBzICovCisJb3ZlcmxhcF9lbnRyaWVzID0gMDsJIC8qIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBvdmVybGFwIHRhYmxlICovCisJbmV3X2Jpb3NfZW50cnkgPSAwOwkgLyogaW5kZXggZm9yIGNyZWF0aW5nIG5ldyBiaW9zIG1hcCBlbnRyaWVzICovCisJbGFzdF90eXBlID0gMDsJCSAvKiBzdGFydCB3aXRoIHVuZGVmaW5lZCBtZW1vcnkgdHlwZSAqLworCWxhc3RfYWRkciA9IDA7CQkgLyogc3RhcnQgd2l0aCAwIGFzIGxhc3Qgc3RhcnRpbmcgYWRkcmVzcyAqLworCisJLyogbG9vcCB0aHJvdWdoIGNoYW5nZS1wb2ludHMsIGRldGVybWluaW5nIGFmZmVjdCBvbiB0aGUgbmV3IGJpb3MgbWFwICovCisJZm9yIChjaGdpZHggPSAwOyBjaGdpZHggPCBjaGdfbnI7IGNoZ2lkeCsrKSB7CisJCS8qIGtlZXAgdHJhY2sgb2YgYWxsIG92ZXJsYXBwaW5nIGJpb3MgZW50cmllcyAqLworCQlpZiAoY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgPT0KKwkJICAgIGNoYW5nZV9wb2ludFtjaGdpZHhdLT5wYmlvcy0+YWRkcikgeworCQkJLyoKKwkJCSAqIGFkZCBtYXAgZW50cnkgdG8gb3ZlcmxhcCBsaXN0ICg+IDEgZW50cnkKKwkJCSAqIGltcGxpZXMgYW4gb3ZlcmxhcCkKKwkJCSAqLworCQkJb3ZlcmxhcF9saXN0W292ZXJsYXBfZW50cmllcysrXSA9CisJCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPnBiaW9zOworCQl9IGVsc2UgeworCQkJLyoKKwkJCSAqIHJlbW92ZSBlbnRyeSBmcm9tIGxpc3QgKG9yZGVyIGluZGVwZW5kZW50LAorCQkJICogc28gc3dhcCB3aXRoIGxhc3QpCisJCQkgKi8KKwkJCWZvciAoaSA9IDA7IGkgPCBvdmVybGFwX2VudHJpZXM7IGkrKykgeworCQkJCWlmIChvdmVybGFwX2xpc3RbaV0gPT0KKwkJCQkgICAgY2hhbmdlX3BvaW50W2NoZ2lkeF0tPnBiaW9zKQorCQkJCQlvdmVybGFwX2xpc3RbaV0gPQorCQkJCQkJb3ZlcmxhcF9saXN0W292ZXJsYXBfZW50cmllcy0xXTsKKwkJCX0KKwkJCW92ZXJsYXBfZW50cmllcy0tOworCQl9CisJCS8qCisJCSAqIGlmIHRoZXJlIGFyZSBvdmVybGFwcGluZyBlbnRyaWVzLCBkZWNpZGUgd2hpY2gKKwkJICogInR5cGUiIHRvIHVzZSAobGFyZ2VyIHZhbHVlIHRha2VzIHByZWNlZGVuY2UgLS0KKwkJICogMT11c2FibGUsIDIsMyw0LDQrPXVudXNhYmxlKQorCQkgKi8KKwkJY3VycmVudF90eXBlID0gMDsKKwkJZm9yIChpID0gMDsgaSA8IG92ZXJsYXBfZW50cmllczsgaSsrKQorCQkJaWYgKG92ZXJsYXBfbGlzdFtpXS0+dHlwZSA+IGN1cnJlbnRfdHlwZSkKKwkJCQljdXJyZW50X3R5cGUgPSBvdmVybGFwX2xpc3RbaV0tPnR5cGU7CisJCS8qCisJCSAqIGNvbnRpbnVlIGJ1aWxkaW5nIHVwIG5ldyBiaW9zIG1hcCBiYXNlZCBvbiB0aGlzCisJCSAqIGluZm9ybWF0aW9uCisJCSAqLworCQlpZiAoY3VycmVudF90eXBlICE9IGxhc3RfdHlwZSkJeworCQkJaWYgKGxhc3RfdHlwZSAhPSAwKQkgeworCQkJCW5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5zaXplID0KKwkJCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgLSBsYXN0X2FkZHI7CisJCQkJLyoKKwkJCQkgKiBtb3ZlIGZvcndhcmQgb25seSBpZiB0aGUgbmV3IHNpemUKKwkJCQkgKiB3YXMgbm9uLXplcm8KKwkJCQkgKi8KKwkJCQlpZiAobmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLnNpemUgIT0gMCkKKwkJCQkJLyoKKwkJCQkJICogbm8gbW9yZSBzcGFjZSBsZWZ0IGZvciBuZXcKKwkJCQkJICogYmlvcyBlbnRyaWVzID8KKwkJCQkJICovCisJCQkJCWlmICgrK25ld19iaW9zX2VudHJ5ID49IG1heF9ucl9tYXApCisJCQkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChjdXJyZW50X3R5cGUgIT0gMCkJeworCQkJCW5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5hZGRyID0KKwkJCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHI7CisJCQkJbmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLnR5cGUgPSBjdXJyZW50X3R5cGU7CisJCQkJbGFzdF9hZGRyID0gY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHI7CisJCQl9CisJCQlsYXN0X3R5cGUgPSBjdXJyZW50X3R5cGU7CisJCX0KKwl9CisJLyogcmV0YWluIGNvdW50IGZvciBuZXcgYmlvcyBlbnRyaWVzICovCisJbmV3X25yID0gbmV3X2Jpb3NfZW50cnk7CisKKwkvKiBjb3B5IG5ldyBiaW9zIG1hcHBpbmcgaW50byBvcmlnaW5hbCBsb2NhdGlvbiAqLworCW1lbWNweShiaW9zbWFwLCBuZXdfYmlvcywgbmV3X25yICogc2l6ZW9mKHN0cnVjdCBlODIwZW50cnkpKTsKKwkqcG5yX21hcCA9IG5ld19ucjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCBfX2FwcGVuZF9lODIwX21hcChzdHJ1Y3QgZTgyMGVudHJ5ICpiaW9zbWFwLCBpbnQgbnJfbWFwKQoreworCXdoaWxlIChucl9tYXApIHsKKwkJdTY0IHN0YXJ0ID0gYmlvc21hcC0+YWRkcjsKKwkJdTY0IHNpemUgPSBiaW9zbWFwLT5zaXplOworCQl1NjQgZW5kID0gc3RhcnQgKyBzaXplOworCQl1MzIgdHlwZSA9IGJpb3NtYXAtPnR5cGU7CisKKwkJLyogT3ZlcmZsb3cgaW4gNjQgYml0cz8gSWdub3JlIHRoZSBtZW1vcnkgbWFwLiAqLworCQlpZiAoc3RhcnQgPiBlbmQpCisJCQlyZXR1cm4gLTE7CisKKwkJZTgyMF9hZGRfcmVnaW9uKHN0YXJ0LCBzaXplLCB0eXBlKTsKKworCQliaW9zbWFwKys7CisJCW5yX21hcC0tOworCX0KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIENvcHkgdGhlIEJJT1MgZTgyMCBtYXAgaW50byBhIHNhZmUgcGxhY2UuCisgKgorICogU2FuaXR5LWNoZWNrIGl0IHdoaWxlIHdlJ3JlIGF0IGl0Li4KKyAqCisgKiBJZiB3ZSdyZSBsdWNreSBhbmQgbGl2ZSBvbiBhIG1vZGVybiBzeXN0ZW0sIHRoZSBzZXR1cCBjb2RlCisgKiB3aWxsIGhhdmUgZ2l2ZW4gdXMgYSBtZW1vcnkgbWFwIHRoYXQgd2UgY2FuIHVzZSB0byBwcm9wZXJseQorICogc2V0IHVwIG1lbW9yeS4gIElmIHdlIGFyZW4ndCwgd2UnbGwgZmFrZSBhIG1lbW9yeSBtYXAuCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IGFwcGVuZF9lODIwX21hcChzdHJ1Y3QgZTgyMGVudHJ5ICpiaW9zbWFwLCBpbnQgbnJfbWFwKQoreworCS8qIE9ubHkgb25lIG1lbW9yeSByZWdpb24gKG9yIG5lZ2F0aXZlKT8gSWdub3JlIGl0ICovCisJaWYgKG5yX21hcCA8IDIpCisJCXJldHVybiAtMTsKKworCXJldHVybiBfX2FwcGVuZF9lODIwX21hcChiaW9zbWFwLCBucl9tYXApOworfQorCitzdGF0aWMgdTY0IF9faW5pdCBlODIwX3VwZGF0ZV9yYW5nZV9tYXAoc3RydWN0IGU4MjBtYXAgKmU4MjB4LCB1NjQgc3RhcnQsCisJCQkJCXU2NCBzaXplLCB1bnNpZ25lZCBvbGRfdHlwZSwKKwkJCQkJdW5zaWduZWQgbmV3X3R5cGUpCit7CisJaW50IGk7CisJdTY0IHJlYWxfdXBkYXRlZF9zaXplID0gMDsKKworCUJVR19PTihvbGRfdHlwZSA9PSBuZXdfdHlwZSk7CisKKwlpZiAoc2l6ZSA+IChVTExPTkdfTUFYIC0gc3RhcnQpKQorCQlzaXplID0gVUxMT05HX01BWCAtIHN0YXJ0OworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMHgtPm1hcFtpXTsKKwkJdTY0IGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQ7CisJCWlmIChlaS0+dHlwZSAhPSBvbGRfdHlwZSkKKwkJCWNvbnRpbnVlOworCQkvKiB0b3RhbGx5IGNvdmVyZWQ/ICovCisJCWlmIChlaS0+YWRkciA+PSBzdGFydCAmJgorCQkgICAgKGVpLT5hZGRyICsgZWktPnNpemUpIDw9IChzdGFydCArIHNpemUpKSB7CisJCQllaS0+dHlwZSA9IG5ld190eXBlOworCQkJcmVhbF91cGRhdGVkX3NpemUgKz0gZWktPnNpemU7CisJCQljb250aW51ZTsKKwkJfQorCQkvKiBwYXJ0aWFsbHkgY292ZXJlZCAqLworCQlmaW5hbF9zdGFydCA9IG1heChzdGFydCwgZWktPmFkZHIpOworCQlmaW5hbF9lbmQgPSBtaW4oc3RhcnQgKyBzaXplLCBlaS0+YWRkciArIGVpLT5zaXplKTsKKwkJaWYgKGZpbmFsX3N0YXJ0ID49IGZpbmFsX2VuZCkKKwkJCWNvbnRpbnVlOworCQllODIwX2FkZF9yZWdpb24oZmluYWxfc3RhcnQsIGZpbmFsX2VuZCAtIGZpbmFsX3N0YXJ0LAorCQkJCQkgbmV3X3R5cGUpOworCQlyZWFsX3VwZGF0ZWRfc2l6ZSArPSBmaW5hbF9lbmQgLSBmaW5hbF9zdGFydDsKKworCQllaS0+c2l6ZSAtPSBmaW5hbF9lbmQgLSBmaW5hbF9zdGFydDsKKwkJaWYgKGVpLT5hZGRyIDwgZmluYWxfc3RhcnQpCisJCQljb250aW51ZTsKKwkJZWktPmFkZHIgPSBmaW5hbF9lbmQ7CisJfQorCXJldHVybiByZWFsX3VwZGF0ZWRfc2l6ZTsKK30KKwordTY0IF9faW5pdCBlODIwX3VwZGF0ZV9yYW5nZSh1NjQgc3RhcnQsIHU2NCBzaXplLCB1bnNpZ25lZCBvbGRfdHlwZSwKKwkJCSAgICAgdW5zaWduZWQgbmV3X3R5cGUpCit7CisJcmV0dXJuIGU4MjBfdXBkYXRlX3JhbmdlX21hcCgmZTgyMCwgc3RhcnQsIHNpemUsIG9sZF90eXBlLCBuZXdfdHlwZSk7Cit9CisKK3N0YXRpYyB1NjQgX19pbml0IGU4MjBfdXBkYXRlX3JhbmdlX3NhdmVkKHU2NCBzdGFydCwgdTY0IHNpemUsCisJCQkJCSAgdW5zaWduZWQgb2xkX3R5cGUsIHVuc2lnbmVkIG5ld190eXBlKQoreworCXJldHVybiBlODIwX3VwZGF0ZV9yYW5nZV9tYXAoJmU4MjBfc2F2ZWQsIHN0YXJ0LCBzaXplLCBvbGRfdHlwZSwKKwkJCQkgICAgIG5ld190eXBlKTsKK30KKworLyogbWFrZSBlODIwIG5vdCBjb3ZlciB0aGUgcmFuZ2UgKi8KK3U2NCBfX2luaXQgZTgyMF9yZW1vdmVfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgc2l6ZSwgdW5zaWduZWQgb2xkX3R5cGUsCisJCQkgICAgIGludCBjaGVja3R5cGUpCit7CisJaW50IGk7CisJdTY0IHJlYWxfcmVtb3ZlZF9zaXplID0gMDsKKworCWlmIChzaXplID4gKFVMTE9OR19NQVggLSBzdGFydCkpCisJCXNpemUgPSBVTExPTkdfTUFYIC0gc3RhcnQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKKwkJdTY0IGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQ7CisKKwkJaWYgKGNoZWNrdHlwZSAmJiBlaS0+dHlwZSAhPSBvbGRfdHlwZSkKKwkJCWNvbnRpbnVlOworCQkvKiB0b3RhbGx5IGNvdmVyZWQ/ICovCisJCWlmIChlaS0+YWRkciA+PSBzdGFydCAmJgorCQkgICAgKGVpLT5hZGRyICsgZWktPnNpemUpIDw9IChzdGFydCArIHNpemUpKSB7CisJCQlyZWFsX3JlbW92ZWRfc2l6ZSArPSBlaS0+c2l6ZTsKKwkJCW1lbXNldChlaSwgMCwgc2l6ZW9mKHN0cnVjdCBlODIwZW50cnkpKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCS8qIHBhcnRpYWxseSBjb3ZlcmVkICovCisJCWZpbmFsX3N0YXJ0ID0gbWF4KHN0YXJ0LCBlaS0+YWRkcik7CisJCWZpbmFsX2VuZCA9IG1pbihzdGFydCArIHNpemUsIGVpLT5hZGRyICsgZWktPnNpemUpOworCQlpZiAoZmluYWxfc3RhcnQgPj0gZmluYWxfZW5kKQorCQkJY29udGludWU7CisJCXJlYWxfcmVtb3ZlZF9zaXplICs9IGZpbmFsX2VuZCAtIGZpbmFsX3N0YXJ0OworCisJCWVpLT5zaXplIC09IGZpbmFsX2VuZCAtIGZpbmFsX3N0YXJ0OworCQlpZiAoZWktPmFkZHIgPCBmaW5hbF9zdGFydCkKKwkJCWNvbnRpbnVlOworCQllaS0+YWRkciA9IGZpbmFsX2VuZDsKKwl9CisJcmV0dXJuIHJlYWxfcmVtb3ZlZF9zaXplOworfQorCit2b2lkIF9faW5pdCB1cGRhdGVfZTgyMCh2b2lkKQoreworCWludCBucl9tYXA7CisKKwlucl9tYXAgPSBlODIwLm5yX21hcDsKKwlpZiAoc2FuaXRpemVfZTgyMF9tYXAoZTgyMC5tYXAsIEFSUkFZX1NJWkUoZTgyMC5tYXApLCAmbnJfbWFwKSkKKwkJcmV0dXJuOworCWU4MjAubnJfbWFwID0gbnJfbWFwOworCXByaW50ayhLRVJOX0lORk8gIm1vZGlmaWVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKKwllODIwX3ByaW50X21hcCgibW9kaWZpZWQiKTsKK30KK3N0YXRpYyB2b2lkIF9faW5pdCB1cGRhdGVfZTgyMF9zYXZlZCh2b2lkKQoreworCWludCBucl9tYXA7CisKKwlucl9tYXAgPSBlODIwX3NhdmVkLm5yX21hcDsKKwlpZiAoc2FuaXRpemVfZTgyMF9tYXAoZTgyMF9zYXZlZC5tYXAsIEFSUkFZX1NJWkUoZTgyMF9zYXZlZC5tYXApLCAmbnJfbWFwKSkKKwkJcmV0dXJuOworCWU4MjBfc2F2ZWQubnJfbWFwID0gbnJfbWFwOworfQorI2RlZmluZSBNQVhfR0FQX0VORCAweDEwMDAwMDAwMHVsbAorLyoKKyAqIFNlYXJjaCBmb3IgYSBnYXAgaW4gdGhlIGU4MjAgbWVtb3J5IHNwYWNlIGZyb20gc3RhcnRfYWRkciB0byBlbmRfYWRkci4KKyAqLworX19pbml0IGludCBlODIwX3NlYXJjaF9nYXAodW5zaWduZWQgbG9uZyAqZ2Fwc3RhcnQsIHVuc2lnbmVkIGxvbmcgKmdhcHNpemUsCisJCXVuc2lnbmVkIGxvbmcgc3RhcnRfYWRkciwgdW5zaWduZWQgbG9uZyBsb25nIGVuZF9hZGRyKQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0OworCWludCBpID0gZTgyMC5ucl9tYXA7CisJaW50IGZvdW5kID0gMDsKKworCWxhc3QgPSAoZW5kX2FkZHIgJiYgZW5kX2FkZHIgPCBNQVhfR0FQX0VORCkgPyBlbmRfYWRkciA6IE1BWF9HQVBfRU5EOworCisJd2hpbGUgKC0taSA+PSAwKSB7CisJCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCA9IGU4MjAubWFwW2ldLmFkZHI7CisJCXVuc2lnbmVkIGxvbmcgbG9uZyBlbmQgPSBzdGFydCArIGU4MjAubWFwW2ldLnNpemU7CisKKwkJaWYgKGVuZCA8IHN0YXJ0X2FkZHIpCisJCQljb250aW51ZTsKKworCQkvKgorCQkgKiBTaW5jZSAibGFzdCIgaXMgYXQgbW9zdCA0R0IsIHdlIGtub3cgd2UnbGwKKwkJICogZml0IGluIDMyIGJpdHMgaWYgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZQorCQkgKi8KKwkJaWYgKGxhc3QgPiBlbmQpIHsKKwkJCXVuc2lnbmVkIGxvbmcgZ2FwID0gbGFzdCAtIGVuZDsKKworCQkJaWYgKGdhcCA+PSAqZ2Fwc2l6ZSkgeworCQkJCSpnYXBzaXplID0gZ2FwOworCQkJCSpnYXBzdGFydCA9IGVuZDsKKwkJCQlmb3VuZCA9IDE7CisJCQl9CisJCX0KKwkJaWYgKHN0YXJ0IDwgbGFzdCkKKwkJCWxhc3QgPSBzdGFydDsKKwl9CisJcmV0dXJuIGZvdW5kOworfQorCisvKgorICogU2VhcmNoIGZvciB0aGUgYmlnZ2VzdCBnYXAgaW4gdGhlIGxvdyAzMiBiaXRzIG9mIHRoZSBlODIwCisgKiBtZW1vcnkgc3BhY2UuICBXZSBwYXNzIHRoaXMgc3BhY2UgdG8gUENJIHRvIGFzc2lnbiBNTUlPIHJlc291cmNlcworICogZm9yIGhvdHBsdWcgb3IgdW5jb25maWd1cmVkIGRldmljZXMgaW4uCisgKiBIb3BlZnVsbHkgdGhlIEJJT1MgbGV0IGVub3VnaCBzcGFjZSBsZWZ0LgorICovCitfX2luaXQgdm9pZCBlODIwX3NldHVwX2dhcCh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgZ2Fwc3RhcnQsIGdhcHNpemUsIHJvdW5kOworCWludCBmb3VuZDsKKworCWdhcHN0YXJ0ID0gMHgxMDAwMDAwMDsKKwlnYXBzaXplID0gMHg0MDAwMDA7CisJZm91bmQgID0gZTgyMF9zZWFyY2hfZ2FwKCZnYXBzdGFydCwgJmdhcHNpemUsIDAsIE1BWF9HQVBfRU5EKTsKKworI2lmZGVmIENPTkZJR19YODZfNjQKKwlpZiAoIWZvdW5kKSB7CisJCWdhcHN0YXJ0ID0gKG1heF9wZm4gPDwgUEFHRV9TSElGVCkgKyAxMDI0KjEwMjQ7CisJCXByaW50ayhLRVJOX0VSUiAiUENJOiBXYXJuaW5nOiBDYW5ub3QgZmluZCBhIGdhcCBpbiB0aGUgMzJiaXQgIgorCQkgICAgICAgImFkZHJlc3MgcmFuZ2VcbiIKKwkJICAgICAgIEtFUk5fRVJSICJQQ0k6IFVuYXNzaWduZWQgZGV2aWNlcyB3aXRoIDMyYml0IHJlc291cmNlICIKKwkJICAgICAgICJyZWdpc3RlcnMgbWF5IGJyZWFrIVxuIik7CisJfQorI2VuZGlmCisKKwkvKgorCSAqIFNlZSBob3cgbXVjaCB3ZSB3YW50IHRvIHJvdW5kIHVwOiBzdGFydCBvZmYgd2l0aAorCSAqIHJvdW5kaW5nIHRvIHRoZSBuZXh0IDFNQiBhcmVhLgorCSAqLworCXJvdW5kID0gMHgxMDAwMDA7CisJd2hpbGUgKChnYXBzaXplID4+IDQpID4gcm91bmQpCisJCXJvdW5kICs9IHJvdW5kOworCS8qIEZ1biB3aXRoIHR3bydzIGNvbXBsZW1lbnQgKi8KKwlwY2lfbWVtX3N0YXJ0ID0gKGdhcHN0YXJ0ICsgcm91bmQpICYgLXJvdW5kOworCisJcHJpbnRrKEtFUk5fSU5GTworCSAgICAgICAiQWxsb2NhdGluZyBQQ0kgcmVzb3VyY2VzIHN0YXJ0aW5nIGF0ICVseCAoZ2FwOiAlbHg6JWx4KVxuIiwKKwkgICAgICAgcGNpX21lbV9zdGFydCwgZ2Fwc3RhcnQsIGdhcHNpemUpOworfQorCisvKioKKyAqIEJlY2F1c2Ugb2YgdGhlIHNpemUgbGltaXRhdGlvbiBvZiBzdHJ1Y3QgYm9vdF9wYXJhbXMsIG9ubHkgZmlyc3QKKyAqIDEyOCBFODIwIG1lbW9yeSBlbnRyaWVzIGFyZSBwYXNzZWQgdG8ga2VybmVsIHZpYQorICogYm9vdF9wYXJhbXMuZTgyMF9tYXAsIG90aGVycyBhcmUgcGFzc2VkIHZpYSBTRVRVUF9FODIwX0VYVCBub2RlIG9mCisgKiBsaW5rZWQgbGlzdCBvZiBzdHJ1Y3Qgc2V0dXBfZGF0YSwgd2hpY2ggaXMgcGFyc2VkIGhlcmUuCisgKi8KK3ZvaWQgX19pbml0IHBhcnNlX2U4MjBfZXh0KHN0cnVjdCBzZXR1cF9kYXRhICpzZGF0YSwgdW5zaWduZWQgbG9uZyBwYV9kYXRhKQoreworCXUzMiBtYXBfbGVuOworCWludCBlbnRyaWVzOworCXN0cnVjdCBlODIwZW50cnkgKmV4dG1hcDsKKworCWVudHJpZXMgPSBzZGF0YS0+bGVuIC8gc2l6ZW9mKHN0cnVjdCBlODIwZW50cnkpOworCW1hcF9sZW4gPSBzZGF0YS0+bGVuICsgc2l6ZW9mKHN0cnVjdCBzZXR1cF9kYXRhKTsKKwlpZiAobWFwX2xlbiA+IFBBR0VfU0laRSkKKwkJc2RhdGEgPSBlYXJseV9pb3JlbWFwKHBhX2RhdGEsIG1hcF9sZW4pOworCWV4dG1hcCA9IChzdHJ1Y3QgZTgyMGVudHJ5ICopKHNkYXRhLT5kYXRhKTsKKwlfX2FwcGVuZF9lODIwX21hcChleHRtYXAsIGVudHJpZXMpOworCXNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCBBUlJBWV9TSVpFKGU4MjAubWFwKSwgJmU4MjAubnJfbWFwKTsKKwlpZiAobWFwX2xlbiA+IFBBR0VfU0laRSkKKwkJZWFybHlfaW91bm1hcChzZGF0YSwgbWFwX2xlbik7CisJcHJpbnRrKEtFUk5fSU5GTyAiZXh0ZW5kZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOworCWU4MjBfcHJpbnRfbWFwKCJleHRlbmRlZCIpOworfQorCisjaWYgZGVmaW5lZChDT05GSUdfWDg2XzY0KSB8fCBcCisJKGRlZmluZWQoQ09ORklHX1g4Nl8zMikgJiYgZGVmaW5lZChDT05GSUdfSElCRVJOQVRJT04pKQorLyoqCisgKiBGaW5kIHRoZSByYW5nZXMgb2YgcGh5c2ljYWwgYWRkcmVzc2VzIHRoYXQgZG8gbm90IGNvcnJlc3BvbmQgdG8KKyAqIGU4MjAgUkFNIGFyZWFzIGFuZCBtYXJrIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2VzIGFzIG5vc2F2ZSBmb3IKKyAqIGhpYmVybmF0aW9uICgzMiBiaXQpIG9yIHNvZnR3YXJlIHN1c3BlbmQgYW5kIHN1c3BlbmQgdG8gUkFNICg2NCBiaXQpLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgdGhlIGU4MjAgbWFwIHRvIGJlIHNvcnRlZCBhbmQgd2l0aG91dCBhbnkKKyAqIG92ZXJsYXBwaW5nIGVudHJpZXMgYW5kIGFzc3VtZXMgdGhlIGZpcnN0IGU4MjAgYXJlYSB0byBiZSBSQU0uCisgKi8KK3ZvaWQgX19pbml0IGU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyh1bnNpZ25lZCBsb25nIGxpbWl0X3BmbikKK3sKKwlpbnQgaTsKKwl1bnNpZ25lZCBsb25nIHBmbjsKKworCXBmbiA9IFBGTl9ET1dOKGU4MjAubWFwWzBdLmFkZHIgKyBlODIwLm1hcFswXS5zaXplKTsKKwlmb3IgKGkgPSAxOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKKworCQlpZiAocGZuIDwgUEZOX1VQKGVpLT5hZGRyKSkKKwkJCXJlZ2lzdGVyX25vc2F2ZV9yZWdpb24ocGZuLCBQRk5fVVAoZWktPmFkZHIpKTsKKworCQlwZm4gPSBQRk5fRE9XTihlaS0+YWRkciArIGVpLT5zaXplKTsKKwkJaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNICYmIGVpLT50eXBlICE9IEU4MjBfUkVTRVJWRURfS0VSTikKKwkJCXJlZ2lzdGVyX25vc2F2ZV9yZWdpb24oUEZOX1VQKGVpLT5hZGRyKSwgcGZuKTsKKworCQlpZiAocGZuID49IGxpbWl0X3BmbikKKwkJCWJyZWFrOworCX0KK30KKyNlbmRpZgorCisvKgorICogRWFybHkgcmVzZXJ2ZWQgbWVtb3J5IGFyZWFzLgorICovCisjZGVmaW5lIE1BWF9FQVJMWV9SRVMgMjAKKworc3RydWN0IGVhcmx5X3JlcyB7CisJdTY0IHN0YXJ0LCBlbmQ7CisJY2hhciBuYW1lWzE2XTsKKwljaGFyIG92ZXJsYXBfb2s7Cit9Oworc3RhdGljIHN0cnVjdCBlYXJseV9yZXMgZWFybHlfcmVzW01BWF9FQVJMWV9SRVNdIF9faW5pdGRhdGEgPSB7CisJeyAwLCBQQUdFX1NJWkUsICJCSU9TIGRhdGEgcGFnZSIgfSwJLyogQklPUyBkYXRhIHBhZ2UgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpICYmIGRlZmluZWQoQ09ORklHX1g4Nl9UUkFNUE9MSU5FKQorCXsgVFJBTVBPTElORV9CQVNFLCBUUkFNUE9MSU5FX0JBU0UgKyAyICogUEFHRV9TSVpFLCAiVFJBTVBPTElORSIgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl8zMikgJiYgZGVmaW5lZChDT05GSUdfU01QKQorCS8qCisJICogQnV0IGZpcnN0IHBpbmNoIGEgZmV3IGZvciB0aGUgc3RhY2svdHJhbXBvbGluZSBzdHVmZgorCSAqIEZJWE1FOiBEb24ndCBuZWVkIHRoZSBleHRyYSBwYWdlIGF0IDRLLCBidXQgbmVlZCB0byBmaXgKKwkgKiB0cmFtcG9saW5lIGJlZm9yZSByZW1vdmluZyBpdC4gKHNlZSB0aGUgR0RUIHN0dWZmKQorCSAqLworCXsgUEFHRV9TSVpFLCBQQUdFX1NJWkUgKyBQQUdFX1NJWkUsICJFWCBUUkFNUE9MSU5FIiB9LAorCS8qCisJICogSGFzIHRvIGJlIGluIHZlcnkgbG93IG1lbW9yeSBzbyB3ZSBjYW4gZXhlY3V0ZQorCSAqIHJlYWwtbW9kZSBBUCBjb2RlLgorCSAqLworCXsgVFJBTVBPTElORV9CQVNFLCBUUkFNUE9MSU5FX0JBU0UgKyBQQUdFX1NJWkUsICJUUkFNUE9MSU5FIiB9LAorI2VuZGlmCisJe30KK307CisKK3N0YXRpYyBpbnQgX19pbml0IGZpbmRfb3ZlcmxhcHBlZF9lYXJseSh1NjQgc3RhcnQsIHU2NCBlbmQpCit7CisJaW50IGk7CisJc3RydWN0IGVhcmx5X3JlcyAqcjsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tpXS5lbmQ7IGkrKykgeworCQlyID0gJmVhcmx5X3Jlc1tpXTsKKwkJaWYgKGVuZCA+IHItPnN0YXJ0ICYmIHN0YXJ0IDwgci0+ZW5kKQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIGk7Cit9CisKKy8qCisgKiBEcm9wIHRoZSBpLXRoIHJhbmdlIGZyb20gdGhlIGVhcmx5IHJlc2VydmF0aW9uIG1hcCwKKyAqIGJ5IGNvcHlpbmcgYW55IGhpZ2hlciByYW5nZXMgZG93biBvbmUgb3ZlciBpdCwgYW5kCisgKiBjbGVhcmluZyB3aGF0IGhhZCBiZWVuIHRoZSBsYXN0IHNsb3QuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBkcm9wX3JhbmdlKGludCBpKQoreworCWludCBqOworCisJZm9yIChqID0gaSArIDE7IGogPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tqXS5lbmQ7IGorKykKKwkJOworCisJbWVtbW92ZSgmZWFybHlfcmVzW2ldLCAmZWFybHlfcmVzW2kgKyAxXSwKKwkgICAgICAgKGogLSAxIC0gaSkgKiBzaXplb2Yoc3RydWN0IGVhcmx5X3JlcykpOworCisJZWFybHlfcmVzW2ogLSAxXS5lbmQgPSAwOworfQorCisvKgorICogU3BsaXQgYW55IGV4aXN0aW5nIHJhbmdlcyB0aGF0OgorICogIDEpIGFyZSBtYXJrZWQgJ292ZXJsYXBfb2snLCBhbmQKKyAqICAyKSBvdmVybGFwIHdpdGggdGhlIHN0YXRlZCByYW5nZSBbc3RhcnQsIGVuZCkKKyAqIGludG8gd2hhdGV2ZXIgcG9ydGlvbiAoaWYgYW55KSBvZiB0aGUgZXhpc3RpbmcgcmFuZ2UgaXMgZW50aXJlbHkKKyAqIGJlbG93IG9yIGVudGlyZWx5IGFib3ZlIHRoZSBzdGF0ZWQgcmFuZ2UuICBEcm9wIHRoZSBwb3J0aW9uCisgKiBvZiB0aGUgZXhpc3RpbmcgcmFuZ2UgdGhhdCBvdmVybGFwcyB3aXRoIHRoZSBzdGF0ZWQgcmFuZ2UsCisgKiB3aGljaCB3aWxsIGFsbG93IHRoZSBjYWxsZXIgb2YgdGhpcyByb3V0aW5lIHRvIHRoZW4gYWRkIHRoYXQKKyAqIHN0YXRlZCByYW5nZSB3aXRob3V0IGNvbmZsaWN0aW5nIHdpdGggYW55IGV4aXN0aW5nIHJhbmdlLgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgZHJvcF9vdmVybGFwc190aGF0X2FyZV9vayh1NjQgc3RhcnQsIHU2NCBlbmQpCit7CisJaW50IGk7CisJc3RydWN0IGVhcmx5X3JlcyAqcjsKKwl1NjQgbG93ZXJfc3RhcnQsIGxvd2VyX2VuZDsKKwl1NjQgdXBwZXJfc3RhcnQsIHVwcGVyX2VuZDsKKwljaGFyIG5hbWVbMTZdOworCisJZm9yIChpID0gMDsgaSA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2ldLmVuZDsgaSsrKSB7CisJCXIgPSAmZWFybHlfcmVzW2ldOworCisJCS8qIENvbnRpbnVlIHBhc3Qgbm9uLW92ZXJsYXBwaW5nIHJhbmdlcyAqLworCQlpZiAoZW5kIDw9IHItPnN0YXJ0IHx8IHN0YXJ0ID49IHItPmVuZCkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIExlYXZlIG5vbi1vayBvdmVybGFwcyBhcyBpczsgbGV0IGNhbGxlcgorCQkgKiBwYW5pYyAiT3ZlcmxhcHBpbmcgZWFybHkgcmVzZXJ2YXRpb25zIgorCQkgKiB3aGVuIGl0IGhpdHMgdGhpcyBvdmVybGFwLgorCQkgKi8KKwkJaWYgKCFyLT5vdmVybGFwX29rKQorCQkJcmV0dXJuOworCisJCS8qCisJCSAqIFdlIGhhdmUgYW4gb2sgb3ZlcmxhcC4gIFdlIHdpbGwgZHJvcCBpdCBmcm9tIHRoZSBlYXJseQorCQkgKiByZXNlcnZhdGlvbiBtYXAsIGFuZCBhZGQgYmFjayBpbiBhbnkgbm9uLW92ZXJsYXBwaW5nCisJCSAqIHBvcnRpb25zIChsb3dlciBvciB1cHBlcikgYXMgc2VwYXJhdGUsIG92ZXJsYXBfb2ssCisJCSAqIG5vbi1vdmVybGFwcGluZyByYW5nZXMuCisJCSAqLworCisJCS8qIDEuIE5vdGUgYW55IG5vbi1vdmVybGFwcGluZyAobG93ZXIgb3IgdXBwZXIpIHJhbmdlcy4gKi8KKwkJc3RybmNweShuYW1lLCByLT5uYW1lLCBzaXplb2YobmFtZSkgLSAxKTsKKworCQlsb3dlcl9zdGFydCA9IGxvd2VyX2VuZCA9IDA7CisJCXVwcGVyX3N0YXJ0ID0gdXBwZXJfZW5kID0gMDsKKwkJaWYgKHItPnN0YXJ0IDwgc3RhcnQpIHsKKwkJIAlsb3dlcl9zdGFydCA9IHItPnN0YXJ0OworCQkJbG93ZXJfZW5kID0gc3RhcnQ7CisJCX0KKwkJaWYgKHItPmVuZCA+IGVuZCkgeworCQkJdXBwZXJfc3RhcnQgPSBlbmQ7CisJCQl1cHBlcl9lbmQgPSByLT5lbmQ7CisJCX0KKworCQkvKiAyLiBEcm9wIHRoZSBvcmlnaW5hbCBvayBvdmVybGFwcGluZyByYW5nZSAqLworCQlkcm9wX3JhbmdlKGkpOworCisJCWktLTsJCS8qIHJlc3VtZSBmb3ItbG9vcCBvbiBjb3BpZWQgZG93biBlbnRyeSAqLworCisJCS8qIDMuIEFkZCBiYWNrIGluIGFueSBub24tb3ZlcmxhcHBpbmcgcmFuZ2VzLiAqLworCQlpZiAobG93ZXJfZW5kKQorCQkJcmVzZXJ2ZV9lYXJseV9vdmVybGFwX29rKGxvd2VyX3N0YXJ0LCBsb3dlcl9lbmQsIG5hbWUpOworCQlpZiAodXBwZXJfZW5kKQorCQkJcmVzZXJ2ZV9lYXJseV9vdmVybGFwX29rKHVwcGVyX3N0YXJ0LCB1cHBlcl9lbmQsIG5hbWUpOworCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IF9fcmVzZXJ2ZV9lYXJseSh1NjQgc3RhcnQsIHU2NCBlbmQsIGNoYXIgKm5hbWUsCisJCQkJCQlpbnQgb3ZlcmxhcF9vaykKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgZWFybHlfcmVzICpyOworCisJaSA9IGZpbmRfb3ZlcmxhcHBlZF9lYXJseShzdGFydCwgZW5kKTsKKwlpZiAoaSA+PSBNQVhfRUFSTFlfUkVTKQorCQlwYW5pYygiVG9vIG1hbnkgZWFybHkgcmVzZXJ2YXRpb25zIik7CisJciA9ICZlYXJseV9yZXNbaV07CisJaWYgKHItPmVuZCkKKwkJcGFuaWMoIk92ZXJsYXBwaW5nIGVhcmx5IHJlc2VydmF0aW9ucyAiCisJCSAgICAgICIlbGx4LSVsbHggJXMgdG8gJWxseC0lbGx4ICVzXG4iLAorCQkgICAgICBzdGFydCwgZW5kIC0gMSwgbmFtZT9uYW1lOiIiLCByLT5zdGFydCwKKwkJICAgICAgci0+ZW5kIC0gMSwgci0+bmFtZSk7CisJci0+c3RhcnQgPSBzdGFydDsKKwlyLT5lbmQgPSBlbmQ7CisJci0+b3ZlcmxhcF9vayA9IG92ZXJsYXBfb2s7CisJaWYgKG5hbWUpCisJCXN0cm5jcHkoci0+bmFtZSwgbmFtZSwgc2l6ZW9mKHItPm5hbWUpIC0gMSk7Cit9CisKKy8qCisgKiBBIGZldyBlYXJseSByZXNlcnZ0YXRpb25zIGNvbWUgaGVyZS4KKyAqCisgKiBUaGUgJ292ZXJsYXBfb2snIGluIHRoZSBuYW1lIG9mIHRoaXMgcm91dGluZSBkb2VzIC1ub3QtIG1lYW4gaXQKKyAqIGlzIG9rIGZvciB0aGVzZSByZXNlcnZhdGlvbnMgdG8gb3ZlcmxhcCBhbiBlYXJsaWVyIHJlc2VydmF0aW9uLgorICogUmF0aGVyIGl0IG1lYW5zIHRoYXQgaXQgaXMgb2sgZm9yIHN1YnNlcXVlbnQgcmVzZXJ2YXRpb25zIHRvCisgKiBvdmVybGFwIHRoaXMgb25lLgorICoKKyAqIFVzZSB0aGlzIGVudHJ5IHBvaW50IHRvIHJlc2VydmUgZWFybHkgcmFuZ2VzIHdoZW4geW91IGFyZSBkb2luZworICogc28gb3V0IG9mICJQYXJhbm9pYSIsIHJlc2VydmluZyBwZXJoYXBzIG1vcmUgbWVtb3J5IHRoYW4geW91IG5lZWQsCisgKiBqdXN0IGluIGNhc2UsIGFuZCBkb24ndCBtaW5kIGEgc3Vic2VxdWVudCBvdmVybGFwcGluZyByZXNlcnZhdGlvbgorICogdGhhdCBpcyBrbm93biB0byBiZSBuZWVkZWQuCisgKgorICogVGhlIGRyb3Bfb3ZlcmxhcHNfdGhhdF9hcmVfb2soKSBjYWxsIGhlcmUgaXNuJ3QgcmVhbGx5IG5lZWRlZC4KKyAqIEl0IHdvdWxkIGJlIG5lZWRlZCBpZiB3ZSBoYWQgdHdvIGNvbGxpZGluZyAnb3ZlcmxhcF9vaycKKyAqIHJlc2VydmF0aW9ucywgc28gdGhhdCB0aGUgc2Vjb25kIHN1Y2ggd291bGQgbm90IHBhbmljIG9uIHRoZQorICogb3ZlcmxhcCB3aXRoIHRoZSBmaXJzdC4gIFdlIGRvbid0IGhhdmUgYW55IHN1Y2ggYXMgb2YgdGhpcworICogd3JpdGluZywgYnV0IG1pZ2h0IGFzIHdlbGwgdG9sZXJhdGUgc3VjaCBpZiBpdCBoYXBwZW5zIGluCisgKiB0aGUgZnV0dXJlLgorICovCit2b2lkIF9faW5pdCByZXNlcnZlX2Vhcmx5X292ZXJsYXBfb2sodTY0IHN0YXJ0LCB1NjQgZW5kLCBjaGFyICpuYW1lKQoreworCWRyb3Bfb3ZlcmxhcHNfdGhhdF9hcmVfb2soc3RhcnQsIGVuZCk7CisJX19yZXNlcnZlX2Vhcmx5KHN0YXJ0LCBlbmQsIG5hbWUsIDEpOworfQorCisvKgorICogTW9zdCBlYXJseSByZXNlcnZhdGlvbnMgY29tZSBoZXJlLgorICoKKyAqIFdlIGZpcnN0IGhhdmUgZHJvcF9vdmVybGFwc190aGF0X2FyZV9vaygpIGRyb3AgYW55IHByZS1leGlzdGluZworICogJ292ZXJsYXBfb2snIHJhbmdlcywgc28gdGhhdCB3ZSBjYW4gdGhlbiByZXNlcnZlIHRoaXMgbWVtb3J5CisgKiByYW5nZSB3aXRob3V0IHJpc2sgb2YgcGFuaWMnaW5nIG9uIGFuIG92ZXJsYXBwaW5nIG92ZXJsYXBfb2sKKyAqIGVhcmx5IHJlc2VydmF0aW9uLgorICovCit2b2lkIF9faW5pdCByZXNlcnZlX2Vhcmx5KHU2NCBzdGFydCwgdTY0IGVuZCwgY2hhciAqbmFtZSkKK3sKKwlkcm9wX292ZXJsYXBzX3RoYXRfYXJlX29rKHN0YXJ0LCBlbmQpOworCV9fcmVzZXJ2ZV9lYXJseShzdGFydCwgZW5kLCBuYW1lLCAwKTsKK30KKwordm9pZCBfX2luaXQgZnJlZV9lYXJseSh1NjQgc3RhcnQsIHU2NCBlbmQpCit7CisJc3RydWN0IGVhcmx5X3JlcyAqcjsKKwlpbnQgaTsKKworCWkgPSBmaW5kX292ZXJsYXBwZWRfZWFybHkoc3RhcnQsIGVuZCk7CisJciA9ICZlYXJseV9yZXNbaV07CisJaWYgKGkgPj0gTUFYX0VBUkxZX1JFUyB8fCByLT5lbmQgIT0gZW5kIHx8IHItPnN0YXJ0ICE9IHN0YXJ0KQorCQlwYW5pYygiZnJlZV9lYXJseSBvbiBub3QgcmVzZXJ2ZWQgYXJlYTogJWxseC0lbGx4ISIsCisJCQkgc3RhcnQsIGVuZCAtIDEpOworCisJZHJvcF9yYW5nZShpKTsKK30KKwordm9pZCBfX2luaXQgZWFybHlfcmVzX3RvX2Jvb3RtZW0odTY0IHN0YXJ0LCB1NjQgZW5kKQoreworCWludCBpLCBjb3VudDsKKwl1NjQgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKKworCWNvdW50ICA9IDA7CisJZm9yIChpID0gMDsgaSA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2ldLmVuZDsgaSsrKQorCQljb3VudCsrOworCisJcHJpbnRrKEtFUk5fSU5GTyAiKCVkIGVhcmx5IHJlc2VydmF0aW9ucykgPT0+IGJvb3RtZW1cbiIsIGNvdW50KTsKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworCQlzdHJ1Y3QgZWFybHlfcmVzICpyID0gJmVhcmx5X3Jlc1tpXTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiICAjJWQgWyUwMTBsbHggLSAlMDEwbGx4XSAlMTZzIiwgaSwKKwkJCXItPnN0YXJ0LCByLT5lbmQsIHItPm5hbWUpOworCQlmaW5hbF9zdGFydCA9IG1heChzdGFydCwgci0+c3RhcnQpOworCQlmaW5hbF9lbmQgPSBtaW4oZW5kLCByLT5lbmQpOworCQlpZiAoZmluYWxfc3RhcnQgPj0gZmluYWxfZW5kKSB7CisJCQlwcmludGsoS0VSTl9DT05UICJcbiIpOworCQkJY29udGludWU7CisJCX0KKwkJcHJpbnRrKEtFUk5fQ09OVCAiID09PiBbJTAxMGxseCAtICUwMTBsbHhdXG4iLAorCQkJZmluYWxfc3RhcnQsIGZpbmFsX2VuZCk7CisJCXJlc2VydmVfYm9vdG1lbV9nZW5lcmljKGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQgLSBmaW5hbF9zdGFydCwKKwkJCQlCT09UTUVNX0RFRkFVTFQpOworCX0KK30KKworLyogQ2hlY2sgZm9yIGFscmVhZHkgcmVzZXJ2ZWQgYXJlYXMgKi8KK3N0YXRpYyBpbmxpbmUgaW50IF9faW5pdCBiYWRfYWRkcih1NjQgKmFkZHJwLCB1NjQgc2l6ZSwgdTY0IGFsaWduKQoreworCWludCBpOworCXU2NCBhZGRyID0gKmFkZHJwOworCWludCBjaGFuZ2VkID0gMDsKKwlzdHJ1Y3QgZWFybHlfcmVzICpyOworYWdhaW46CisJaSA9IGZpbmRfb3ZlcmxhcHBlZF9lYXJseShhZGRyLCBhZGRyICsgc2l6ZSk7CisJciA9ICZlYXJseV9yZXNbaV07CisJaWYgKGkgPCBNQVhfRUFSTFlfUkVTICYmIHItPmVuZCkgeworCQkqYWRkcnAgPSBhZGRyID0gcm91bmRfdXAoci0+ZW5kLCBhbGlnbik7CisJCWNoYW5nZWQgPSAxOworCQlnb3RvIGFnYWluOworCX0KKwlyZXR1cm4gY2hhbmdlZDsKK30KKworLyogQ2hlY2sgZm9yIGFscmVhZHkgcmVzZXJ2ZWQgYXJlYXMgKi8KK3N0YXRpYyBpbmxpbmUgaW50IF9faW5pdCBiYWRfYWRkcl9zaXplKHU2NCAqYWRkcnAsIHU2NCAqc2l6ZXAsIHU2NCBhbGlnbikKK3sKKwlpbnQgaTsKKwl1NjQgYWRkciA9ICphZGRycCwgbGFzdDsKKwl1NjQgc2l6ZSA9ICpzaXplcDsKKwlpbnQgY2hhbmdlZCA9IDA7CithZ2FpbjoKKwlsYXN0ID0gYWRkciArIHNpemU7CisJZm9yIChpID0gMDsgaSA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2ldLmVuZDsgaSsrKSB7CisJCXN0cnVjdCBlYXJseV9yZXMgKnIgPSAmZWFybHlfcmVzW2ldOworCQlpZiAobGFzdCA+IHItPnN0YXJ0ICYmIGFkZHIgPCByLT5zdGFydCkgeworCQkJc2l6ZSA9IHItPnN0YXJ0IC0gYWRkcjsKKwkJCWNoYW5nZWQgPSAxOworCQkJZ290byBhZ2FpbjsKKwkJfQorCQlpZiAobGFzdCA+IHItPmVuZCAmJiBhZGRyIDwgci0+ZW5kKSB7CisJCQlhZGRyID0gcm91bmRfdXAoci0+ZW5kLCBhbGlnbik7CisJCQlzaXplID0gbGFzdCAtIGFkZHI7CisJCQljaGFuZ2VkID0gMTsKKwkJCWdvdG8gYWdhaW47CisJCX0KKwkJaWYgKGxhc3QgPD0gci0+ZW5kICYmIGFkZHIgPj0gci0+c3RhcnQpIHsKKwkJCSgqc2l6ZXApKys7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKwlpZiAoY2hhbmdlZCkgeworCQkqYWRkcnAgPSBhZGRyOworCQkqc2l6ZXAgPSBzaXplOworCX0KKwlyZXR1cm4gY2hhbmdlZDsKK30KKworLyoKKyAqIEZpbmQgYSBmcmVlIGFyZWEgd2l0aCBzcGVjaWZpZWQgYWxpZ25tZW50IGluIGEgc3BlY2lmaWMgcmFuZ2UuCisgKi8KK3U2NCBfX2luaXQgZmluZF9lODIwX2FyZWEodTY0IHN0YXJ0LCB1NjQgZW5kLCB1NjQgc2l6ZSwgdTY0IGFsaWduKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07CisJCXU2NCBhZGRyLCBsYXN0OworCQl1NjQgZWlfbGFzdDsKKworCQlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0pCisJCQljb250aW51ZTsKKwkJYWRkciA9IHJvdW5kX3VwKGVpLT5hZGRyLCBhbGlnbik7CisJCWVpX2xhc3QgPSBlaS0+YWRkciArIGVpLT5zaXplOworCQlpZiAoYWRkciA8IHN0YXJ0KQorCQkJYWRkciA9IHJvdW5kX3VwKHN0YXJ0LCBhbGlnbik7CisJCWlmIChhZGRyID49IGVpX2xhc3QpCisJCQljb250aW51ZTsKKwkJd2hpbGUgKGJhZF9hZGRyKCZhZGRyLCBzaXplLCBhbGlnbikgJiYgYWRkcitzaXplIDw9IGVpX2xhc3QpCisJCQk7CisJCWxhc3QgPSBhZGRyICsgc2l6ZTsKKwkJaWYgKGxhc3QgPiBlaV9sYXN0KQorCQkJY29udGludWU7CisJCWlmIChsYXN0ID4gZW5kKQorCQkJY29udGludWU7CisJCXJldHVybiBhZGRyOworCX0KKwlyZXR1cm4gLTFVTEw7Cit9CisKKy8qCisgKiBGaW5kIG5leHQgZnJlZSByYW5nZSBhZnRlciAqc3RhcnQKKyAqLwordTY0IF9faW5pdCBmaW5kX2U4MjBfYXJlYV9zaXplKHU2NCBzdGFydCwgdTY0ICpzaXplcCwgdTY0IGFsaWduKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07CisJCXU2NCBhZGRyLCBsYXN0OworCQl1NjQgZWlfbGFzdDsKKworCQlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0pCisJCQljb250aW51ZTsKKwkJYWRkciA9IHJvdW5kX3VwKGVpLT5hZGRyLCBhbGlnbik7CisJCWVpX2xhc3QgPSBlaS0+YWRkciArIGVpLT5zaXplOworCQlpZiAoYWRkciA8IHN0YXJ0KQorCQkJYWRkciA9IHJvdW5kX3VwKHN0YXJ0LCBhbGlnbik7CisJCWlmIChhZGRyID49IGVpX2xhc3QpCisJCQljb250aW51ZTsKKwkJKnNpemVwID0gZWlfbGFzdCAtIGFkZHI7CisJCXdoaWxlIChiYWRfYWRkcl9zaXplKCZhZGRyLCBzaXplcCwgYWxpZ24pICYmCisJCQlhZGRyICsgKnNpemVwIDw9IGVpX2xhc3QpCisJCQk7CisJCWxhc3QgPSBhZGRyICsgKnNpemVwOworCQlpZiAobGFzdCA+IGVpX2xhc3QpCisJCQljb250aW51ZTsKKwkJcmV0dXJuIGFkZHI7CisJfQorCXJldHVybiAtMVVMOworCit9CisKKy8qCisgKiBwcmUgYWxsb2NhdGVkIDRrIGFuZCByZXNlcnZlZCBpdCBpbiBlODIwCisgKi8KK3U2NCBfX2luaXQgZWFybHlfcmVzZXJ2ZV9lODIwKHU2NCBzdGFydHQsIHU2NCBzaXpldCwgdTY0IGFsaWduKQoreworCXU2NCBzaXplID0gMDsKKwl1NjQgYWRkcjsKKwl1NjQgc3RhcnQ7CisKKwlzdGFydCA9IHN0YXJ0dDsKKwl3aGlsZSAoc2l6ZSA8IHNpemV0KQorCQlzdGFydCA9IGZpbmRfZTgyMF9hcmVhX3NpemUoc3RhcnQsICZzaXplLCBhbGlnbik7CisKKwlpZiAoc2l6ZSA8IHNpemV0KQorCQlyZXR1cm4gMDsKKworCWFkZHIgPSByb3VuZF9kb3duKHN0YXJ0ICsgc2l6ZSAtIHNpemV0LCBhbGlnbik7CisJZTgyMF91cGRhdGVfcmFuZ2UoYWRkciwgc2l6ZXQsIEU4MjBfUkFNLCBFODIwX1JFU0VSVkVEKTsKKwllODIwX3VwZGF0ZV9yYW5nZV9zYXZlZChhZGRyLCBzaXpldCwgRTgyMF9SQU0sIEU4MjBfUkVTRVJWRUQpOworCXByaW50ayhLRVJOX0lORk8gInVwZGF0ZSBlODIwIGZvciBlYXJseV9yZXNlcnZlX2U4MjBcbiIpOworCXVwZGF0ZV9lODIwKCk7CisJdXBkYXRlX2U4MjBfc2F2ZWQoKTsKKworCXJldHVybiBhZGRyOworfQorCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorIyBpZmRlZiBDT05GSUdfWDg2X1BBRQorIyAgZGVmaW5lIE1BWF9BUkNIX1BGTgkJKDFVTEw8PCgzNi1QQUdFX1NISUZUKSkKKyMgZWxzZQorIyAgZGVmaW5lIE1BWF9BUkNIX1BGTgkJKDFVTEw8PCgzMi1QQUdFX1NISUZUKSkKKyMgZW5kaWYKKyNlbHNlIC8qIENPTkZJR19YODZfMzIgKi8KKyMgZGVmaW5lIE1BWF9BUkNIX1BGTiBNQVhNRU0+PlBBR0VfU0hJRlQKKyNlbmRpZgorCisvKgorICogRmluZCB0aGUgaGlnaGVzdCBwYWdlIGZyYW1lIG51bWJlciB3ZSBoYXZlIGF2YWlsYWJsZQorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgZTgyMF9lbmRfcGZuKHVuc2lnbmVkIGxvbmcgbGltaXRfcGZuLCB1bnNpZ25lZCB0eXBlKQoreworCWludCBpOworCXVuc2lnbmVkIGxvbmcgbGFzdF9wZm4gPSAwOworCXVuc2lnbmVkIGxvbmcgbWF4X2FyY2hfcGZuID0gTUFYX0FSQ0hfUEZOOworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07CisJCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuOworCQl1bnNpZ25lZCBsb25nIGVuZF9wZm47CisKKwkJaWYgKGVpLT50eXBlICE9IHR5cGUpCisJCQljb250aW51ZTsKKworCQlzdGFydF9wZm4gPSBlaS0+YWRkciA+PiBQQUdFX1NISUZUOworCQllbmRfcGZuID0gKGVpLT5hZGRyICsgZWktPnNpemUpID4+IFBBR0VfU0hJRlQ7CisKKwkJaWYgKHN0YXJ0X3BmbiA+PSBsaW1pdF9wZm4pCisJCQljb250aW51ZTsKKwkJaWYgKGVuZF9wZm4gPiBsaW1pdF9wZm4pIHsKKwkJCWxhc3RfcGZuID0gbGltaXRfcGZuOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKGVuZF9wZm4gPiBsYXN0X3BmbikKKwkJCWxhc3RfcGZuID0gZW5kX3BmbjsKKwl9CisKKwlpZiAobGFzdF9wZm4gPiBtYXhfYXJjaF9wZm4pCisJCWxhc3RfcGZuID0gbWF4X2FyY2hfcGZuOworCisJcHJpbnRrKEtFUk5fSU5GTyAibGFzdF9wZm4gPSAlI2x4IG1heF9hcmNoX3BmbiA9ICUjbHhcbiIsCisJCQkgbGFzdF9wZm4sIG1heF9hcmNoX3Bmbik7CisJcmV0dXJuIGxhc3RfcGZuOworfQordW5zaWduZWQgbG9uZyBfX2luaXQgZTgyMF9lbmRfb2ZfcmFtX3Bmbih2b2lkKQoreworCXJldHVybiBlODIwX2VuZF9wZm4oTUFYX0FSQ0hfUEZOLCBFODIwX1JBTSk7Cit9CisKK3Vuc2lnbmVkIGxvbmcgX19pbml0IGU4MjBfZW5kX29mX2xvd19yYW1fcGZuKHZvaWQpCit7CisJcmV0dXJuIGU4MjBfZW5kX3BmbigxVUw8PCgzMiAtIFBBR0VfU0hJRlQpLCBFODIwX1JBTSk7Cit9CisvKgorICogRmluZHMgYW4gYWN0aXZlIHJlZ2lvbiBpbiB0aGUgYWRkcmVzcyByYW5nZSBmcm9tIHN0YXJ0X3BmbiB0byBsYXN0X3BmbiBhbmQKKyAqIHJldHVybnMgaXRzIHJhbmdlIGluIGVpX3N0YXJ0cGZuIGFuZCBlaV9lbmRwZm4gZm9yIHRoZSBlODIwIGVudHJ5LgorICovCitpbnQgX19pbml0IGU4MjBfZmluZF9hY3RpdmVfcmVnaW9uKGNvbnN0IHN0cnVjdCBlODIwZW50cnkgKmVpLAorCQkJCSAgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJICB1bnNpZ25lZCBsb25nIGxhc3RfcGZuLAorCQkJCSAgdW5zaWduZWQgbG9uZyAqZWlfc3RhcnRwZm4sCisJCQkJICB1bnNpZ25lZCBsb25nICplaV9lbmRwZm4pCit7CisJdTY0IGFsaWduID0gUEFHRV9TSVpFOworCisJKmVpX3N0YXJ0cGZuID0gcm91bmRfdXAoZWktPmFkZHIsIGFsaWduKSA+PiBQQUdFX1NISUZUOworCSplaV9lbmRwZm4gPSByb3VuZF9kb3duKGVpLT5hZGRyICsgZWktPnNpemUsIGFsaWduKSA+PiBQQUdFX1NISUZUOworCisJLyogU2tpcCBtYXAgZW50cmllcyBzbWFsbGVyIHRoYW4gYSBwYWdlICovCisJaWYgKCplaV9zdGFydHBmbiA+PSAqZWlfZW5kcGZuKQorCQlyZXR1cm4gMDsKKworCS8qIFNraXAgaWYgbWFwIGlzIG91dHNpZGUgdGhlIG5vZGUgKi8KKwlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0gfHwgKmVpX2VuZHBmbiA8PSBzdGFydF9wZm4gfHwKKwkJCQkgICAgKmVpX3N0YXJ0cGZuID49IGxhc3RfcGZuKQorCQlyZXR1cm4gMDsKKworCS8qIENoZWNrIGZvciBvdmVybGFwcyAqLworCWlmICgqZWlfc3RhcnRwZm4gPCBzdGFydF9wZm4pCisJCSplaV9zdGFydHBmbiA9IHN0YXJ0X3BmbjsKKwlpZiAoKmVpX2VuZHBmbiA+IGxhc3RfcGZuKQorCQkqZWlfZW5kcGZuID0gbGFzdF9wZm47CisKKwlyZXR1cm4gMTsKK30KKworLyogV2FsayB0aGUgZTgyMCBtYXAgYW5kIHJlZ2lzdGVyIGFjdGl2ZSByZWdpb25zIHdpdGhpbiBhIG5vZGUgKi8KK3ZvaWQgX19pbml0IGU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJCSB1bnNpZ25lZCBsb25nIGxhc3RfcGZuKQoreworCXVuc2lnbmVkIGxvbmcgZWlfc3RhcnRwZm47CisJdW5zaWduZWQgbG9uZyBlaV9lbmRwZm47CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykKKwkJaWYgKGU4MjBfZmluZF9hY3RpdmVfcmVnaW9uKCZlODIwLm1hcFtpXSwKKwkJCQkJICAgIHN0YXJ0X3BmbiwgbGFzdF9wZm4sCisJCQkJCSAgICAmZWlfc3RhcnRwZm4sICZlaV9lbmRwZm4pKQorCQkJYWRkX2FjdGl2ZV9yYW5nZShuaWQsIGVpX3N0YXJ0cGZuLCBlaV9lbmRwZm4pOworfQorCisvKgorICogRmluZCB0aGUgaG9sZSBzaXplIChpbiBieXRlcykgaW4gdGhlIG1lbW9yeSByYW5nZS4KKyAqIEBzdGFydDogc3RhcnRpbmcgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IHJhbmdlIHRvIHNjYW4KKyAqIEBlbmQ6IGVuZGluZyBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgcmFuZ2UgdG8gc2NhbgorICovCit1NjQgX19pbml0IGU4MjBfaG9sZV9zaXplKHU2NCBzdGFydCwgdTY0IGVuZCkKK3sKKwl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7CisJdW5zaWduZWQgbG9uZyBsYXN0X3BmbiA9IGVuZCA+PiBQQUdFX1NISUZUOworCXVuc2lnbmVkIGxvbmcgZWlfc3RhcnRwZm4sIGVpX2VuZHBmbiwgcmFtID0gMDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCWlmIChlODIwX2ZpbmRfYWN0aXZlX3JlZ2lvbigmZTgyMC5tYXBbaV0sCisJCQkJCSAgICBzdGFydF9wZm4sIGxhc3RfcGZuLAorCQkJCQkgICAgJmVpX3N0YXJ0cGZuLCAmZWlfZW5kcGZuKSkKKwkJCXJhbSArPSBlaV9lbmRwZm4gLSBlaV9zdGFydHBmbjsKKwl9CisJcmV0dXJuIGVuZCAtIHN0YXJ0IC0gKCh1NjQpcmFtIDw8IFBBR0VfU0hJRlQpOworfQorCitzdGF0aWMgdm9pZCBlYXJseV9wYW5pYyhjaGFyICptc2cpCit7CisJZWFybHlfcHJpbnRrKG1zZyk7CisJcGFuaWMobXNnKTsKK30KKworc3RhdGljIGludCB1c2VyZGVmIF9faW5pdGRhdGE7CisKKy8qICJtZW09bm9wZW50aXVtIiBkaXNhYmxlcyB0aGUgNE1CIHBhZ2UgdGFibGVzLiAqLworc3RhdGljIGludCBfX2luaXQgcGFyc2VfbWVtb3B0KGNoYXIgKnApCit7CisJdTY0IG1lbV9zaXplOworCisJaWYgKCFwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworI2lmZGVmIENPTkZJR19YODZfMzIKKwlpZiAoIXN0cmNtcChwLCAibm9wZW50aXVtIikpIHsKKwkJc2V0dXBfY2xlYXJfY3B1X2NhcChYODZfRkVBVFVSRV9QU0UpOworCQlyZXR1cm4gMDsKKwl9CisjZW5kaWYKKworCXVzZXJkZWYgPSAxOworCW1lbV9zaXplID0gbWVtcGFyc2UocCwgJnApOworCWU4MjBfcmVtb3ZlX3JhbmdlKG1lbV9zaXplLCBVTExPTkdfTUFYIC0gbWVtX3NpemUsIEU4MjBfUkFNLCAxKTsKKworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oIm1lbSIsIHBhcnNlX21lbW9wdCk7CisKK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX21lbW1hcF9vcHQoY2hhciAqcCkKK3sKKwljaGFyICpvbGRwOworCXU2NCBzdGFydF9hdCwgbWVtX3NpemU7CisKKwlpZiAoIXApCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFzdHJjbXAocCwgImV4YWN0bWFwIikpIHsKKyNpZmRlZiBDT05GSUdfQ1JBU0hfRFVNUAorCQkvKgorCQkgKiBJZiB3ZSBhcmUgZG9pbmcgYSBjcmFzaCBkdW1wLCB3ZSBzdGlsbCBuZWVkIHRvIGtub3cKKwkJICogdGhlIHJlYWwgbWVtIHNpemUgYmVmb3JlIG9yaWdpbmFsIG1lbW9yeSBtYXAgaXMKKwkJICogcmVzZXQuCisJCSAqLworCQlzYXZlZF9tYXhfcGZuID0gZTgyMF9lbmRfb2ZfcmFtX3BmbigpOworI2VuZGlmCisJCWU4MjAubnJfbWFwID0gMDsKKwkJdXNlcmRlZiA9IDE7CisJCXJldHVybiAwOworCX0KKworCW9sZHAgPSBwOworCW1lbV9zaXplID0gbWVtcGFyc2UocCwgJnApOworCWlmIChwID09IG9sZHApCisJCXJldHVybiAtRUlOVkFMOworCisJdXNlcmRlZiA9IDE7CisJaWYgKCpwID09ICdAJykgeworCQlzdGFydF9hdCA9IG1lbXBhcnNlKHArMSwgJnApOworCQllODIwX2FkZF9yZWdpb24oc3RhcnRfYXQsIG1lbV9zaXplLCBFODIwX1JBTSk7CisJfSBlbHNlIGlmICgqcCA9PSAnIycpIHsKKwkJc3RhcnRfYXQgPSBtZW1wYXJzZShwKzEsICZwKTsKKwkJZTgyMF9hZGRfcmVnaW9uKHN0YXJ0X2F0LCBtZW1fc2l6ZSwgRTgyMF9BQ1BJKTsKKwl9IGVsc2UgaWYgKCpwID09ICckJykgeworCQlzdGFydF9hdCA9IG1lbXBhcnNlKHArMSwgJnApOworCQllODIwX2FkZF9yZWdpb24oc3RhcnRfYXQsIG1lbV9zaXplLCBFODIwX1JFU0VSVkVEKTsKKwl9IGVsc2UKKwkJZTgyMF9yZW1vdmVfcmFuZ2UobWVtX3NpemUsIFVMTE9OR19NQVggLSBtZW1fc2l6ZSwgRTgyMF9SQU0sIDEpOworCisJcmV0dXJuICpwID09ICdcMCcgPyAwIDogLUVJTlZBTDsKK30KK2Vhcmx5X3BhcmFtKCJtZW1tYXAiLCBwYXJzZV9tZW1tYXBfb3B0KTsKKwordm9pZCBfX2luaXQgZmluaXNoX2U4MjBfcGFyc2luZyh2b2lkKQoreworCWlmICh1c2VyZGVmKSB7CisJCWludCBuciA9IGU4MjAubnJfbWFwOworCisJCWlmIChzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgQVJSQVlfU0laRShlODIwLm1hcCksICZucikgPCAwKQorCQkJZWFybHlfcGFuaWMoIkludmFsaWQgdXNlciBzdXBwbGllZCBtZW1vcnkgbWFwIik7CisJCWU4MjAubnJfbWFwID0gbnI7CisKKwkJcHJpbnRrKEtFUk5fSU5GTyAidXNlci1kZWZpbmVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKKwkJZTgyMF9wcmludF9tYXAoInVzZXIiKTsKKwl9Cit9CisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqZTgyMF90eXBlX3RvX3N0cmluZyhpbnQgZTgyMF90eXBlKQoreworCXN3aXRjaCAoZTgyMF90eXBlKSB7CisJY2FzZSBFODIwX1JFU0VSVkVEX0tFUk46CisJY2FzZSBFODIwX1JBTToJcmV0dXJuICJTeXN0ZW0gUkFNIjsKKwljYXNlIEU4MjBfQUNQSToJcmV0dXJuICJBQ1BJIFRhYmxlcyI7CisJY2FzZSBFODIwX05WUzoJcmV0dXJuICJBQ1BJIE5vbi12b2xhdGlsZSBTdG9yYWdlIjsKKwlkZWZhdWx0OglyZXR1cm4gInJlc2VydmVkIjsKKwl9Cit9CisKKy8qCisgKiBNYXJrIGU4MjAgcmVzZXJ2ZWQgYXJlYXMgYXMgYnVzeSBmb3IgdGhlIHJlc291cmNlIG1hbmFnZXIuCisgKi8KK3ZvaWQgX19pbml0IGU4MjBfcmVzZXJ2ZV9yZXNvdXJjZXModm9pZCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKwl1NjQgZW5kOworCisJcmVzID0gYWxsb2NfYm9vdG1lbV9sb3coc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSkgKiBlODIwLm5yX21hcCk7CisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJZW5kID0gZTgyMC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemUgLSAxOworI2lmbmRlZiBDT05GSUdfUkVTT1VSQ0VTXzY0QklUCisJCWlmIChlbmQgPiAweDEwMDAwMDAwMFVMTCkgeworCQkJcmVzKys7CisJCQljb250aW51ZTsKKwkJfQorI2VuZGlmCisJCXJlcy0+bmFtZSA9IGU4MjBfdHlwZV90b19zdHJpbmcoZTgyMC5tYXBbaV0udHlwZSk7CisJCXJlcy0+c3RhcnQgPSBlODIwLm1hcFtpXS5hZGRyOworCQlyZXMtPmVuZCA9IGVuZDsKKworCQlyZXMtPmZsYWdzID0gSU9SRVNPVVJDRV9NRU0gfCBJT1JFU09VUkNFX0JVU1k7CisJCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsIHJlcyk7CisJCXJlcysrOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBlODIwX3NhdmVkLm5yX21hcDsgaSsrKSB7CisJCXN0cnVjdCBlODIwZW50cnkgKmVudHJ5ID0gJmU4MjBfc2F2ZWQubWFwW2ldOworCQlmaXJtd2FyZV9tYXBfYWRkX2Vhcmx5KGVudHJ5LT5hZGRyLAorCQkJZW50cnktPmFkZHIgKyBlbnRyeS0+c2l6ZSAtIDEsCisJCQllODIwX3R5cGVfdG9fc3RyaW5nKGVudHJ5LT50eXBlKSk7CisJfQorfQorCisvKgorICogTm9uLXN0YW5kYXJkIG1lbW9yeSBzZXR1cCBjYW4gYmUgc3BlY2lmaWVkIHZpYSB0aGlzIHF1aXJrOgorICovCitjaGFyICogKCphcmNoX21lbW9yeV9zZXR1cF9xdWlyaykodm9pZCk7CisKK2NoYXIgKl9faW5pdCBkZWZhdWx0X21hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpCit7CisJY2hhciAqd2hvID0gIkJJT1MtZTgyMCI7CisJaW50IG5ld19ucjsKKwkvKgorCSAqIFRyeSB0byBjb3B5IHRoZSBCSU9TLXN1cHBsaWVkIEU4MjAtbWFwLgorCSAqCisJICogT3RoZXJ3aXNlIGZha2UgYSBtZW1vcnkgbWFwOyBvbmUgc2VjdGlvbiBmcm9tIDBrLT42NDBrLAorCSAqIHRoZSBuZXh0IHNlY3Rpb24gZnJvbSAxbWItPmFwcHJvcHJpYXRlX21lbV9rCisJICovCisJbmV3X25yID0gYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzOworCXNhbml0aXplX2U4MjBfbWFwKGJvb3RfcGFyYW1zLmU4MjBfbWFwLAorCQkJQVJSQVlfU0laRShib290X3BhcmFtcy5lODIwX21hcCksCisJCQkmbmV3X25yKTsKKwlib290X3BhcmFtcy5lODIwX2VudHJpZXMgPSBuZXdfbnI7CisJaWYgKGFwcGVuZF9lODIwX21hcChib290X3BhcmFtcy5lODIwX21hcCwgYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzKQorCSAgPCAwKSB7CisJCXU2NCBtZW1fc2l6ZTsKKworCQkvKiBjb21wYXJlIHJlc3VsdHMgZnJvbSBvdGhlciBtZXRob2RzIGFuZCB0YWtlIHRoZSBncmVhdGVyICovCisJCWlmIChib290X3BhcmFtcy5hbHRfbWVtX2sKKwkJICAgIDwgYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8uZXh0X21lbV9rKSB7CisJCQltZW1fc2l6ZSA9IGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvLmV4dF9tZW1fazsKKwkJCXdobyA9ICJCSU9TLTg4IjsKKwkJfSBlbHNlIHsKKwkJCW1lbV9zaXplID0gYm9vdF9wYXJhbXMuYWx0X21lbV9rOworCQkJd2hvID0gIkJJT1MtZTgwMSI7CisJCX0KKworCQllODIwLm5yX21hcCA9IDA7CisJCWU4MjBfYWRkX3JlZ2lvbigwLCBMT1dNRU1TSVpFKCksIEU4MjBfUkFNKTsKKwkJZTgyMF9hZGRfcmVnaW9uKEhJR0hfTUVNT1JZLCBtZW1fc2l6ZSA8PCAxMCwgRTgyMF9SQU0pOworCX0KKworCS8qIEluIGNhc2Ugc29tZW9uZSBjYXJlcy4uLiAqLworCXJldHVybiB3aG87Cit9CisKK2NoYXIgKl9faW5pdCBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCkKK3sKKwlpZiAoYXJjaF9tZW1vcnlfc2V0dXBfcXVpcmspIHsKKwkJY2hhciAqd2hvID0gYXJjaF9tZW1vcnlfc2V0dXBfcXVpcmsoKTsKKworCQlpZiAod2hvKQorCQkJcmV0dXJuIHdobzsKKwl9CisJcmV0dXJuIGRlZmF1bHRfbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAoKTsKK30KKworLyogT3ZlcnJpZGRlbiBpbiBwYXJhdmlydC5jIGlmIENPTkZJR19QQVJBVklSVCAqLworY2hhciAqIF9faW5pdCBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgbWVtb3J5X3NldHVwKHZvaWQpCit7CisJcmV0dXJuIG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKCk7Cit9CisKK3ZvaWQgX19pbml0IHNldHVwX21lbW9yeV9tYXAodm9pZCkKK3sKKwljaGFyICp3aG87CisKKwl3aG8gPSBtZW1vcnlfc2V0dXAoKTsKKwltZW1jcHkoJmU4MjBfc2F2ZWQsICZlODIwLCBzaXplb2Yoc3RydWN0IGU4MjBtYXApKTsKKwlwcmludGsoS0VSTl9JTkZPICJCSU9TLXByb3ZpZGVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKKwllODIwX3ByaW50X21hcCh3aG8pOworfQorCisjaWZkZWYgQ09ORklHX1g4Nl82NAoraW50IF9faW5pdCBhcmNoX2dldF9yYW1fcmFuZ2UoaW50IHNsb3QsIHU2NCAqYWRkciwgdTY0ICpzaXplKQoreworCWludCBpOworCisJaWYgKHNsb3QgPCAwIHx8IHNsb3QgPj0gZTgyMC5ucl9tYXApCisJCXJldHVybiAtMTsKKwlmb3IgKGkgPSBzbG90OyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlpZiAoZTgyMC5tYXBbaV0udHlwZSAhPSBFODIwX1JBTSkKKwkJCWNvbnRpbnVlOworCQlicmVhazsKKwl9CisJaWYgKGkgPT0gZTgyMC5ucl9tYXAgfHwgZTgyMC5tYXBbaV0uYWRkciA+IChtYXhfcGZuIDw8IFBBR0VfU0hJRlQpKQorCQlyZXR1cm4gLTE7CisJKmFkZHIgPSBlODIwLm1hcFtpXS5hZGRyOworCSpzaXplID0gbWluX3QodTY0LCBlODIwLm1hcFtpXS5zaXplICsgZTgyMC5tYXBbaV0uYWRkciwKKwkJbWF4X3BmbiA8PCBQQUdFX1NISUZUKSAtICphZGRyOworCXJldHVybiBpICsgMTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2U4MjBfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9lODIwXzMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkNzMzZTcuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL2U4MjBfMzIuYworKysgL2Rldi9udWxsCkBAIC0xLDc3NSArMCwwIEBACi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgotI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgotI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9wZm4uaD4KLSNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgotCi0jaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS9lODIwLmg+Ci0jaW5jbHVkZSA8YXNtL3NldHVwLmg+Ci0KLXN0cnVjdCBlODIwbWFwIGU4MjA7Ci1zdHJ1Y3QgY2hhbmdlX21lbWJlciB7Ci0Jc3RydWN0IGU4MjBlbnRyeSAqcGJpb3M7IC8qIHBvaW50ZXIgdG8gb3JpZ2luYWwgYmlvcyBlbnRyeSAqLwotCXVuc2lnbmVkIGxvbmcgbG9uZyBhZGRyOyAvKiBhZGRyZXNzIGZvciB0aGlzIGNoYW5nZSBwb2ludCAqLwotfTsKLXN0YXRpYyBzdHJ1Y3QgY2hhbmdlX21lbWJlciBjaGFuZ2VfcG9pbnRfbGlzdFsyKkU4MjBNQVhdIF9faW5pdGRhdGE7Ci1zdGF0aWMgc3RydWN0IGNoYW5nZV9tZW1iZXIgKmNoYW5nZV9wb2ludFsyKkU4MjBNQVhdIF9faW5pdGRhdGE7Ci1zdGF0aWMgc3RydWN0IGU4MjBlbnRyeSAqb3ZlcmxhcF9saXN0W0U4MjBNQVhdIF9faW5pdGRhdGE7Ci1zdGF0aWMgc3RydWN0IGU4MjBlbnRyeSBuZXdfYmlvc1tFODIwTUFYXSBfX2luaXRkYXRhOwotLyogRm9yIFBDSSBvciBvdGhlciBtZW1vcnktbWFwcGVkIHJlc291cmNlcyAqLwotdW5zaWduZWQgbG9uZyBwY2lfbWVtX3N0YXJ0ID0gMHgxMDAwMDAwMDsKLSNpZmRlZiBDT05GSUdfUENJCi1FWFBPUlRfU1lNQk9MKHBjaV9tZW1fc3RhcnQpOwotI2VuZGlmCi1leHRlcm4gaW50IHVzZXJfZGVmaW5lZF9tZW1tYXA7Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugc3lzdGVtX3JvbV9yZXNvdXJjZSA9IHsKLQkubmFtZQk9ICJTeXN0ZW0gUk9NIiwKLQkuc3RhcnQJPSAweGYwMDAwLAotCS5lbmQJPSAweGZmZmZmLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQotfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBleHRlbnNpb25fcm9tX3Jlc291cmNlID0gewotCS5uYW1lCT0gIkV4dGVuc2lvbiBST00iLAotCS5zdGFydAk9IDB4ZTAwMDAsCi0JLmVuZAk9IDB4ZWZmZmYsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCi19OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGFkYXB0ZXJfcm9tX3Jlc291cmNlc1tdID0geyB7Ci0JLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKLQkuc3RhcnQJPSAweGM4MDAwLAotCS5lbmQJPSAwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQotfSwgewotCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCi0JLnN0YXJ0CT0gMCwKLQkuZW5kCT0gMCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KLX0sIHsKLQkubmFtZSAJPSAiQWRhcHRlciBST00iLAotCS5zdGFydAk9IDAsCi0JLmVuZAk9IDAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCi19LCB7Ci0JLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKLQkuc3RhcnQJPSAwLAotCS5lbmQJPSAwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQotfSwgewotCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCi0JLnN0YXJ0CT0gMCwKLQkuZW5kCT0gMCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KLX0sIHsKLQkubmFtZSAJPSAiQWRhcHRlciBST00iLAotCS5zdGFydAk9IDAsCi0JLmVuZAk9IDAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCi19IH07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdmlkZW9fcm9tX3Jlc291cmNlID0gewotCS5uYW1lIAk9ICJWaWRlbyBST00iLAotCS5zdGFydAk9IDB4YzAwMDAsCi0JLmVuZAk9IDB4YzdmZmYsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCi19OwotCi0jZGVmaW5lIFJPTVNJR05BVFVSRSAweGFhNTUKLQotc3RhdGljIGludCBfX2luaXQgcm9tc2lnbmF0dXJlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnJvbSkKLXsKLQljb25zdCB1bnNpZ25lZCBzaG9ydCAqIGNvbnN0IHB0ciA9IChjb25zdCB1bnNpZ25lZCBzaG9ydCAqKXJvbTsKLQl1bnNpZ25lZCBzaG9ydCBzaWc7Ci0KLQlyZXR1cm4gcHJvYmVfa2VybmVsX2FkZHJlc3MocHRyLCBzaWcpID09IDAgJiYgc2lnID09IFJPTVNJR05BVFVSRTsKLX0KLQotc3RhdGljIGludCBfX2luaXQgcm9tY2hlY2tzdW0oY29uc3QgdW5zaWduZWQgY2hhciAqcm9tLCB1bnNpZ25lZCBsb25nIGxlbmd0aCkKLXsKLQl1bnNpZ25lZCBjaGFyIHN1bSwgYzsKLQotCWZvciAoc3VtID0gMDsgbGVuZ3RoICYmIHByb2JlX2tlcm5lbF9hZGRyZXNzKHJvbSsrLCBjKSA9PSAwOyBsZW5ndGgtLSkKLQkJc3VtICs9IGM7Ci0JcmV0dXJuICFsZW5ndGggJiYgIXN1bTsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0IHByb2JlX3JvbXModm9pZCkKLXsKLQljb25zdCB1bnNpZ25lZCBjaGFyICpyb207Ci0JdW5zaWduZWQgbG9uZyBzdGFydCwgbGVuZ3RoLCB1cHBlcjsKLQl1bnNpZ25lZCBjaGFyIGM7Ci0JaW50IGk7Ci0KLQkvKiB2aWRlbyByb20gKi8KLQl1cHBlciA9IGFkYXB0ZXJfcm9tX3Jlc291cmNlc1swXS5zdGFydDsKLQlmb3IgKHN0YXJ0ID0gdmlkZW9fcm9tX3Jlc291cmNlLnN0YXJ0OyBzdGFydCA8IHVwcGVyOyBzdGFydCArPSAyMDQ4KSB7Ci0JCXJvbSA9IGlzYV9idXNfdG9fdmlydChzdGFydCk7Ci0JCWlmICghcm9tc2lnbmF0dXJlKHJvbSkpCi0JCQljb250aW51ZTsKLQotCQl2aWRlb19yb21fcmVzb3VyY2Uuc3RhcnQgPSBzdGFydDsKLQotCQlpZiAocHJvYmVfa2VybmVsX2FkZHJlc3Mocm9tICsgMiwgYykgIT0gMCkKLQkJCWNvbnRpbnVlOwotCi0JCS8qIDAgPCBsZW5ndGggPD0gMHg3ZiAqIDUxMiwgaGlzdG9yaWNhbGx5ICovCi0JCWxlbmd0aCA9IGMgKiA1MTI7Ci0KLQkJLyogaWYgY2hlY2tzdW0gb2theSwgdHJ1c3QgbGVuZ3RoIGJ5dGUgKi8KLQkJaWYgKGxlbmd0aCAmJiByb21jaGVja3N1bShyb20sIGxlbmd0aCkpCi0JCQl2aWRlb19yb21fcmVzb3VyY2UuZW5kID0gc3RhcnQgKyBsZW5ndGggLSAxOwotCi0JCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmdmlkZW9fcm9tX3Jlc291cmNlKTsKLQkJYnJlYWs7Ci0JfQotCi0Jc3RhcnQgPSAodmlkZW9fcm9tX3Jlc291cmNlLmVuZCArIDEgKyAyMDQ3KSAmIH4yMDQ3VUw7Ci0JaWYgKHN0YXJ0IDwgdXBwZXIpCi0JCXN0YXJ0ID0gdXBwZXI7Ci0KLQkvKiBzeXN0ZW0gcm9tICovCi0JcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZzeXN0ZW1fcm9tX3Jlc291cmNlKTsKLQl1cHBlciA9IHN5c3RlbV9yb21fcmVzb3VyY2Uuc3RhcnQ7Ci0KLQkvKiBjaGVjayBmb3IgZXh0ZW5zaW9uIHJvbSAoaWdub3JlIGxlbmd0aCBieXRlISkgKi8KLQlyb20gPSBpc2FfYnVzX3RvX3ZpcnQoZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZS5zdGFydCk7Ci0JaWYgKHJvbXNpZ25hdHVyZShyb20pKSB7Ci0JCWxlbmd0aCA9IGV4dGVuc2lvbl9yb21fcmVzb3VyY2UuZW5kIC0gZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZS5zdGFydCArIDE7Ci0JCWlmIChyb21jaGVja3N1bShyb20sIGxlbmd0aCkpIHsKLQkJCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZSk7Ci0JCQl1cHBlciA9IGV4dGVuc2lvbl9yb21fcmVzb3VyY2Uuc3RhcnQ7Ci0JCX0KLQl9Ci0KLQkvKiBjaGVjayBmb3IgYWRhcHRlciByb21zIG9uIDJrIGJvdW5kYXJpZXMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhZGFwdGVyX3JvbV9yZXNvdXJjZXMpICYmIHN0YXJ0IDwgdXBwZXI7IHN0YXJ0ICs9IDIwNDgpIHsKLQkJcm9tID0gaXNhX2J1c190b192aXJ0KHN0YXJ0KTsKLQkJaWYgKCFyb21zaWduYXR1cmUocm9tKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChwcm9iZV9rZXJuZWxfYWRkcmVzcyhyb20gKyAyLCBjKSAhPSAwKQotCQkJY29udGludWU7Ci0KLQkJLyogMCA8IGxlbmd0aCA8PSAweDdmICogNTEyLCBoaXN0b3JpY2FsbHkgKi8KLQkJbGVuZ3RoID0gYyAqIDUxMjsKLQotCQkvKiBidXQgYWNjZXB0IGFueSBsZW5ndGggdGhhdCBmaXRzIGlmIGNoZWNrc3VtIG9rYXkgKi8KLQkJaWYgKCFsZW5ndGggfHwgc3RhcnQgKyBsZW5ndGggPiB1cHBlciB8fCAhcm9tY2hlY2tzdW0ocm9tLCBsZW5ndGgpKQotCQkJY29udGludWU7Ci0KLQkJYWRhcHRlcl9yb21fcmVzb3VyY2VzW2ldLnN0YXJ0ID0gc3RhcnQ7Ci0JCWFkYXB0ZXJfcm9tX3Jlc291cmNlc1tpXS5lbmQgPSBzdGFydCArIGxlbmd0aCAtIDE7Ci0JCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmYWRhcHRlcl9yb21fcmVzb3VyY2VzW2ldKTsKLQotCQlzdGFydCA9IGFkYXB0ZXJfcm9tX3Jlc291cmNlc1tpKytdLmVuZCAmIH4yMDQ3VUw7Ci0JfQotfQotCi0vKgotICogUmVxdWVzdCBhZGRyZXNzIHNwYWNlIGZvciBhbGwgc3RhbmRhcmQgUkFNIGFuZCBST00gcmVzb3VyY2VzCi0gKiBhbmQgYWxzbyBmb3IgcmVnaW9ucyByZXBvcnRlZCBhcyByZXNlcnZlZCBieSB0aGUgZTgyMC4KLSAqLwotdm9pZCBfX2luaXQgaW5pdF9pb21lbV9yZXNvdXJjZXMoc3RydWN0IHJlc291cmNlICpjb2RlX3Jlc291cmNlLAotCQlzdHJ1Y3QgcmVzb3VyY2UgKmRhdGFfcmVzb3VyY2UsCi0JCXN0cnVjdCByZXNvdXJjZSAqYnNzX3Jlc291cmNlKQotewotCWludCBpOwotCi0JcHJvYmVfcm9tcygpOwotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotI2lmbmRlZiBDT05GSUdfUkVTT1VSQ0VTXzY0QklUCi0JCWlmIChlODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBbaV0uc2l6ZSA+IDB4MTAwMDAwMDAwVUxMKQotCQkJY29udGludWU7Ci0jZW5kaWYKLQkJcmVzID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHJlc291cmNlKSwgR0ZQX0FUT01JQyk7Ci0JCXN3aXRjaCAoZTgyMC5tYXBbaV0udHlwZSkgewotCQljYXNlIEU4MjBfUkFNOglyZXMtPm5hbWUgPSAiU3lzdGVtIFJBTSI7IGJyZWFrOwotCQljYXNlIEU4MjBfQUNQSToJcmVzLT5uYW1lID0gIkFDUEkgVGFibGVzIjsgYnJlYWs7Ci0JCWNhc2UgRTgyMF9OVlM6CXJlcy0+bmFtZSA9ICJBQ1BJIE5vbi12b2xhdGlsZSBTdG9yYWdlIjsgYnJlYWs7Ci0JCWRlZmF1bHQ6CXJlcy0+bmFtZSA9ICJyZXNlcnZlZCI7Ci0JCX0KLQkJcmVzLT5zdGFydCA9IGU4MjAubWFwW2ldLmFkZHI7Ci0JCXJlcy0+ZW5kID0gcmVzLT5zdGFydCArIGU4MjAubWFwW2ldLnNpemUgLSAxOwotCQlyZXMtPmZsYWdzID0gSU9SRVNPVVJDRV9NRU0gfCBJT1JFU09VUkNFX0JVU1k7Ci0JCWlmIChyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgcmVzKSkgewotCQkJa2ZyZWUocmVzKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCWlmIChlODIwLm1hcFtpXS50eXBlID09IEU4MjBfUkFNKSB7Ci0JCQkvKgotCQkJICogIFdlIGRvbid0IGtub3cgd2hpY2ggUkFNIHJlZ2lvbiBjb250YWlucyBrZXJuZWwgZGF0YSwKLQkJCSAqICBzbyB3ZSB0cnkgaXQgcmVwZWF0ZWRseSBhbmQgbGV0IHRoZSByZXNvdXJjZSBtYW5hZ2VyCi0JCQkgKiAgdGVzdCBpdC4KLQkJCSAqLwotCQkJcmVxdWVzdF9yZXNvdXJjZShyZXMsIGNvZGVfcmVzb3VyY2UpOwotCQkJcmVxdWVzdF9yZXNvdXJjZShyZXMsIGRhdGFfcmVzb3VyY2UpOwotCQkJcmVxdWVzdF9yZXNvdXJjZShyZXMsIGJzc19yZXNvdXJjZSk7Ci0jaWZkZWYgQ09ORklHX0tFWEVDCi0JCQlpZiAoY3Jhc2hrX3Jlcy5zdGFydCAhPSBjcmFzaGtfcmVzLmVuZCkKLQkJCQlyZXF1ZXN0X3Jlc291cmNlKHJlcywgJmNyYXNoa19yZXMpOwotI2VuZGlmCi0JCX0KLQl9Ci19Ci0KLSNpZiBkZWZpbmVkKENPTkZJR19QTSkgJiYgZGVmaW5lZChDT05GSUdfSElCRVJOQVRJT04pCi0vKioKLSAqIGU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyAtIEZpbmQgdGhlIHJhbmdlcyBvZiBwaHlzaWNhbCBhZGRyZXNzZXMgdGhhdCBkbyBub3QKLSAqIGNvcnJlc3BvbmQgdG8gZTgyMCBSQU0gYXJlYXMgYW5kIG1hcmsgdGhlIGNvcnJlc3BvbmRpbmcgcGFnZXMgYXMgbm9zYXZlIGZvcgotICogaGliZXJuYXRpb24uCi0gKgotICogVGhpcyBmdW5jdGlvbiByZXF1aXJlcyB0aGUgZTgyMCBtYXAgdG8gYmUgc29ydGVkIGFuZCB3aXRob3V0IGFueQotICogb3ZlcmxhcHBpbmcgZW50cmllcyBhbmQgYXNzdW1lcyB0aGUgZmlyc3QgZTgyMCBhcmVhIHRvIGJlIFJBTS4KLSAqLwotdm9pZCBfX2luaXQgZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKHZvaWQpCi17Ci0JaW50IGk7Ci0JdW5zaWduZWQgbG9uZyBwZm47Ci0KLQlwZm4gPSBQRk5fRE9XTihlODIwLm1hcFswXS5hZGRyICsgZTgyMC5tYXBbMF0uc2l6ZSk7Ci0JZm9yIChpID0gMTsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0KLQkJaWYgKHBmbiA8IFBGTl9VUChlaS0+YWRkcikpCi0JCQlyZWdpc3Rlcl9ub3NhdmVfcmVnaW9uKHBmbiwgUEZOX1VQKGVpLT5hZGRyKSk7Ci0KLQkJcGZuID0gUEZOX0RPV04oZWktPmFkZHIgKyBlaS0+c2l6ZSk7Ci0JCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSkKLQkJCXJlZ2lzdGVyX25vc2F2ZV9yZWdpb24oUEZOX1VQKGVpLT5hZGRyKSwgcGZuKTsKLQotCQlpZiAocGZuID49IG1heF9sb3dfcGZuKQotCQkJYnJlYWs7Ci0JfQotfQotI2VuZGlmCi0KLXZvaWQgX19pbml0IGFkZF9tZW1vcnlfcmVnaW9uKHVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCwKLQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBpbnQgdHlwZSkKLXsKLQlpbnQgeDsKLQotCXggPSBlODIwLm5yX21hcDsKLQotCWlmICh4ID09IEU4MjBNQVgpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJPb29wcyEgVG9vIG1hbnkgZW50cmllcyBpbiB0aGUgbWVtb3J5IG1hcCFcbiIpOwotCQlyZXR1cm47Ci0JfQotCi0JZTgyMC5tYXBbeF0uYWRkciA9IHN0YXJ0OwotCWU4MjAubWFwW3hdLnNpemUgPSBzaXplOwotCWU4MjAubWFwW3hdLnR5cGUgPSB0eXBlOwotCWU4MjAubnJfbWFwKys7Ci19IC8qIGFkZF9tZW1vcnlfcmVnaW9uICovCi0KLS8qCi0gKiBTYW5pdGl6ZSB0aGUgQklPUyBlODIwIG1hcC4KLSAqCi0gKiBTb21lIGU4MjAgcmVzcG9uc2VzIGluY2x1ZGUgb3ZlcmxhcHBpbmcgZW50cmllcy4gIFRoZSBmb2xsb3dpbmcKLSAqIHJlcGxhY2VzIHRoZSBvcmlnaW5hbCBlODIwIG1hcCB3aXRoIGEgbmV3IG9uZSwgcmVtb3Zpbmcgb3ZlcmxhcHMuCi0gKgotICovCi1pbnQgX19pbml0IHNhbml0aXplX2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKiBiaW9zbWFwLCBjaGFyICogcG5yX21hcCkKLXsKLQlzdHJ1Y3QgY2hhbmdlX21lbWJlciAqY2hhbmdlX3RtcDsKLQl1bnNpZ25lZCBsb25nIGN1cnJlbnRfdHlwZSwgbGFzdF90eXBlOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0X2FkZHI7Ci0JaW50IGNoZ2lkeCwgc3RpbGxfY2hhbmdpbmc7Ci0JaW50IG92ZXJsYXBfZW50cmllczsKLQlpbnQgbmV3X2Jpb3NfZW50cnk7Ci0JaW50IG9sZF9uciwgbmV3X25yLCBjaGdfbnI7Ci0JaW50IGk7Ci0KLQkvKgotCQlWaXN1YWxseSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcgKDEsMiwzLDQgPSBtZW1vcnkgdHlwZXMpLi4uCi0KLQkJU2FtcGxlIG1lbW9yeSBtYXAgKHcvb3ZlcmxhcHMpOgotCQkgICBfX19fMjJfX19fX19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fX19fXzRfCi0JCSAgIF9fX18xMTExX19fX19fX19fX19fX19fXwotCQkgICBfNDRfX19fX19fX19fX19fX19fX19fX18KLQkJICAgMTExMTExMTFfX19fX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fMzNfXwotCQkgICBfX19fX19fX19fXzQ0X19fX19fX19fX18KLQkJICAgX19fX19fX19fXzMzMzMzX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fMjJfX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fMjIyMl8KLQkJICAgX19fX19fX19fMTExMTExMTExX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fXzExXwotCQkgICBfX19fX19fX19fX19fX19fXzRfX19fX18KLQotCQlTYW5pdGl6ZWQgZXF1aXZhbGVudCAobm8gb3ZlcmxhcCk6Ci0JCSAgIDFfX19fX19fX19fX19fX19fX19fX19fXwotCQkgICBfNDRfX19fX19fX19fX19fX19fX19fX18KLQkJICAgX19fMV9fX19fX19fX19fX19fX19fX19fCi0JCSAgIF9fX18yMl9fX19fX19fX19fX19fX19fXwotCQkgICBfX19fX18xMV9fX19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fMV9fX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fX18zX19fX19fX19fX19fXwotCQkgICBfX19fX19fX19fXzQ0X19fX19fX19fX18KLQkJICAgX19fX19fX19fX19fXzMzX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fXzJfX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fMV9fX19fX18KLQkJICAgX19fX19fX19fX19fX19fX180X19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX18yX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fXzMzX18KLQkJICAgX19fX19fX19fX19fX19fX19fX19fXzRfCi0JKi8KLQkvKiBpZiB0aGVyZSdzIG9ubHkgb25lIG1lbW9yeSByZWdpb24sIGRvbid0IGJvdGhlciAqLwotCWlmICgqcG5yX21hcCA8IDIpIHsKLQkJcmV0dXJuIC0xOwotCX0KLQotCW9sZF9uciA9ICpwbnJfbWFwOwotCi0JLyogYmFpbCBvdXQgaWYgd2UgZmluZCBhbnkgdW5yZWFzb25hYmxlIGFkZHJlc3NlcyBpbiBiaW9zIG1hcCAqLwotCWZvciAoaT0wOyBpPG9sZF9ucjsgaSsrKQotCQlpZiAoYmlvc21hcFtpXS5hZGRyICsgYmlvc21hcFtpXS5zaXplIDwgYmlvc21hcFtpXS5hZGRyKSB7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQotCS8qIGNyZWF0ZSBwb2ludGVycyBmb3IgaW5pdGlhbCBjaGFuZ2UtcG9pbnQgaW5mb3JtYXRpb24gKGZvciBzb3J0aW5nKSAqLwotCWZvciAoaT0wOyBpIDwgMipvbGRfbnI7IGkrKykKLQkJY2hhbmdlX3BvaW50W2ldID0gJmNoYW5nZV9wb2ludF9saXN0W2ldOwotCi0JLyogcmVjb3JkIGFsbCBrbm93biBjaGFuZ2UtcG9pbnRzIChzdGFydGluZyBhbmQgZW5kaW5nIGFkZHJlc3NlcyksCi0JICAgb21pdHRpbmcgdGhvc2UgdGhhdCBhcmUgZm9yIGVtcHR5IG1lbW9yeSByZWdpb25zICovCi0JY2hnaWR4ID0gMDsKLQlmb3IgKGk9MDsgaSA8IG9sZF9ucjsgaSsrKQl7Ci0JCWlmIChiaW9zbWFwW2ldLnNpemUgIT0gMCkgewotCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgPSBiaW9zbWFwW2ldLmFkZHI7Ci0JCQljaGFuZ2VfcG9pbnRbY2hnaWR4KytdLT5wYmlvcyA9ICZiaW9zbWFwW2ldOwotCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgPSBiaW9zbWFwW2ldLmFkZHIgKyBiaW9zbWFwW2ldLnNpemU7Ci0JCQljaGFuZ2VfcG9pbnRbY2hnaWR4KytdLT5wYmlvcyA9ICZiaW9zbWFwW2ldOwotCQl9Ci0JfQotCWNoZ19uciA9IGNoZ2lkeDsgICAgCS8qIHRydWUgbnVtYmVyIG9mIGNoYW5nZS1wb2ludHMgKi8KLQotCS8qIHNvcnQgY2hhbmdlLXBvaW50IGxpc3QgYnkgbWVtb3J5IGFkZHJlc3NlcyAobG93IC0+IGhpZ2gpICovCi0Jc3RpbGxfY2hhbmdpbmcgPSAxOwotCXdoaWxlIChzdGlsbF9jaGFuZ2luZykJewotCQlzdGlsbF9jaGFuZ2luZyA9IDA7Ci0JCWZvciAoaT0xOyBpIDwgY2hnX25yOyBpKyspICB7Ci0JCQkvKiBpZiA8Y3VycmVudF9hZGRyPiA+IDxsYXN0X2FkZHI+LCBzd2FwICovCi0JCQkvKiBvciwgaWYgY3VycmVudD08c3RhcnRfYWRkcj4gJiBsYXN0PTxlbmRfYWRkcj4sIHN3YXAgKi8KLQkJCWlmICgoY2hhbmdlX3BvaW50W2ldLT5hZGRyIDwgY2hhbmdlX3BvaW50W2ktMV0tPmFkZHIpIHx8Ci0JCQkJKChjaGFuZ2VfcG9pbnRbaV0tPmFkZHIgPT0gY2hhbmdlX3BvaW50W2ktMV0tPmFkZHIpICYmCi0JCQkJIChjaGFuZ2VfcG9pbnRbaV0tPmFkZHIgPT0gY2hhbmdlX3BvaW50W2ldLT5wYmlvcy0+YWRkcikgJiYKLQkJCQkgKGNoYW5nZV9wb2ludFtpLTFdLT5hZGRyICE9IGNoYW5nZV9wb2ludFtpLTFdLT5wYmlvcy0+YWRkcikpCi0JCQkgICApCi0JCQl7Ci0JCQkJY2hhbmdlX3RtcCA9IGNoYW5nZV9wb2ludFtpXTsKLQkJCQljaGFuZ2VfcG9pbnRbaV0gPSBjaGFuZ2VfcG9pbnRbaS0xXTsKLQkJCQljaGFuZ2VfcG9pbnRbaS0xXSA9IGNoYW5nZV90bXA7Ci0JCQkJc3RpbGxfY2hhbmdpbmc9MTsKLQkJCX0KLQkJfQotCX0KLQotCS8qIGNyZWF0ZSBhIG5ldyBiaW9zIG1lbW9yeSBtYXAsIHJlbW92aW5nIG92ZXJsYXBzICovCi0Jb3ZlcmxhcF9lbnRyaWVzPTA7CSAvKiBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgb3ZlcmxhcCB0YWJsZSAqLwotCW5ld19iaW9zX2VudHJ5PTA7CSAvKiBpbmRleCBmb3IgY3JlYXRpbmcgbmV3IGJpb3MgbWFwIGVudHJpZXMgKi8KLQlsYXN0X3R5cGUgPSAwOwkJIC8qIHN0YXJ0IHdpdGggdW5kZWZpbmVkIG1lbW9yeSB0eXBlICovCi0JbGFzdF9hZGRyID0gMDsJCSAvKiBzdGFydCB3aXRoIDAgYXMgbGFzdCBzdGFydGluZyBhZGRyZXNzICovCi0JLyogbG9vcCB0aHJvdWdoIGNoYW5nZS1wb2ludHMsIGRldGVybWluaW5nIGFmZmVjdCBvbiB0aGUgbmV3IGJpb3MgbWFwICovCi0JZm9yIChjaGdpZHg9MDsgY2hnaWR4IDwgY2hnX25yOyBjaGdpZHgrKykKLQl7Ci0JCS8qIGtlZXAgdHJhY2sgb2YgYWxsIG92ZXJsYXBwaW5nIGJpb3MgZW50cmllcyAqLwotCQlpZiAoY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgPT0gY2hhbmdlX3BvaW50W2NoZ2lkeF0tPnBiaW9zLT5hZGRyKQotCQl7Ci0JCQkvKiBhZGQgbWFwIGVudHJ5IHRvIG92ZXJsYXAgbGlzdCAoPiAxIGVudHJ5IGltcGxpZXMgYW4gb3ZlcmxhcCkgKi8KLQkJCW92ZXJsYXBfbGlzdFtvdmVybGFwX2VudHJpZXMrK109Y2hhbmdlX3BvaW50W2NoZ2lkeF0tPnBiaW9zOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJLyogcmVtb3ZlIGVudHJ5IGZyb20gbGlzdCAob3JkZXIgaW5kZXBlbmRlbnQsIHNvIHN3YXAgd2l0aCBsYXN0KSAqLwotCQkJZm9yIChpPTA7IGk8b3ZlcmxhcF9lbnRyaWVzOyBpKyspCi0JCQl7Ci0JCQkJaWYgKG92ZXJsYXBfbGlzdFtpXSA9PSBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+cGJpb3MpCi0JCQkJCW92ZXJsYXBfbGlzdFtpXSA9IG92ZXJsYXBfbGlzdFtvdmVybGFwX2VudHJpZXMtMV07Ci0JCQl9Ci0JCQlvdmVybGFwX2VudHJpZXMtLTsKLQkJfQotCQkvKiBpZiB0aGVyZSBhcmUgb3ZlcmxhcHBpbmcgZW50cmllcywgZGVjaWRlIHdoaWNoICJ0eXBlIiB0byB1c2UgKi8KLQkJLyogKGxhcmdlciB2YWx1ZSB0YWtlcyBwcmVjZWRlbmNlIC0tIDE9dXNhYmxlLCAyLDMsNCw0Kz11bnVzYWJsZSkgKi8KLQkJY3VycmVudF90eXBlID0gMDsKLQkJZm9yIChpPTA7IGk8b3ZlcmxhcF9lbnRyaWVzOyBpKyspCi0JCQlpZiAob3ZlcmxhcF9saXN0W2ldLT50eXBlID4gY3VycmVudF90eXBlKQotCQkJCWN1cnJlbnRfdHlwZSA9IG92ZXJsYXBfbGlzdFtpXS0+dHlwZTsKLQkJLyogY29udGludWUgYnVpbGRpbmcgdXAgbmV3IGJpb3MgbWFwIGJhc2VkIG9uIHRoaXMgaW5mb3JtYXRpb24gKi8KLQkJaWYgKGN1cnJlbnRfdHlwZSAhPSBsYXN0X3R5cGUpCXsKLQkJCWlmIChsYXN0X3R5cGUgIT0gMCkJIHsKLQkJCQluZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0uc2l6ZSA9Ci0JCQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyIC0gbGFzdF9hZGRyOwotCQkJCS8qIG1vdmUgZm9yd2FyZCBvbmx5IGlmIHRoZSBuZXcgc2l6ZSB3YXMgbm9uLXplcm8gKi8KLQkJCQlpZiAobmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLnNpemUgIT0gMCkKLQkJCQkJaWYgKCsrbmV3X2Jpb3NfZW50cnkgPj0gRTgyME1BWCkKLQkJCQkJCWJyZWFrOyAJLyogbm8gbW9yZSBzcGFjZSBsZWZ0IGZvciBuZXcgYmlvcyBlbnRyaWVzICovCi0JCQl9Ci0JCQlpZiAoY3VycmVudF90eXBlICE9IDApCXsKLQkJCQluZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0uYWRkciA9IGNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyOwotCQkJCW5ld19iaW9zW25ld19iaW9zX2VudHJ5XS50eXBlID0gY3VycmVudF90eXBlOwotCQkJCWxhc3RfYWRkcj1jaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkcjsKLQkJCX0KLQkJCWxhc3RfdHlwZSA9IGN1cnJlbnRfdHlwZTsKLQkJfQotCX0KLQluZXdfbnIgPSBuZXdfYmlvc19lbnRyeTsgICAvKiByZXRhaW4gY291bnQgZm9yIG5ldyBiaW9zIGVudHJpZXMgKi8KLQotCS8qIGNvcHkgbmV3IGJpb3MgbWFwcGluZyBpbnRvIG9yaWdpbmFsIGxvY2F0aW9uICovCi0JbWVtY3B5KGJpb3NtYXAsIG5ld19iaW9zLCBuZXdfbnIqc2l6ZW9mKHN0cnVjdCBlODIwZW50cnkpKTsKLQkqcG5yX21hcCA9IG5ld19ucjsKLQotCXJldHVybiAwOwotfQotCi0vKgotICogQ29weSB0aGUgQklPUyBlODIwIG1hcCBpbnRvIGEgc2FmZSBwbGFjZS4KLSAqCi0gKiBTYW5pdHktY2hlY2sgaXQgd2hpbGUgd2UncmUgYXQgaXQuLgotICoKLSAqIElmIHdlJ3JlIGx1Y2t5IGFuZCBsaXZlIG9uIGEgbW9kZXJuIHN5c3RlbSwgdGhlIHNldHVwIGNvZGUKLSAqIHdpbGwgaGF2ZSBnaXZlbiB1cyBhIG1lbW9yeSBtYXAgdGhhdCB3ZSBjYW4gdXNlIHRvIHByb3Blcmx5Ci0gKiBzZXQgdXAgbWVtb3J5LiAgSWYgd2UgYXJlbid0LCB3ZSdsbCBmYWtlIGEgbWVtb3J5IG1hcC4KLSAqCi0gKiBXZSBjaGVjayB0byBzZWUgdGhhdCB0aGUgbWVtb3J5IG1hcCBjb250YWlucyBhdCBsZWFzdCAyIGVsZW1lbnRzCi0gKiBiZWZvcmUgd2UnbGwgdXNlIGl0LCBiZWNhdXNlIHRoZSBkZXRlY3Rpb24gY29kZSBpbiBzZXR1cC5TIG1heQotICogbm90IGJlIHBlcmZlY3QgYW5kIG1vc3QgZXZlcnkgUEMga25vd24gdG8gbWFuIGhhcyB0d28gbWVtb3J5Ci0gKiByZWdpb25zOiBvbmUgZnJvbSAwIHRvIDY0MGssIGFuZCBvbmUgZnJvbSAxbWIgdXAuICAoVGhlIElCTQotICogdGhpbmtwYWQgNTYweCwgZm9yIGV4YW1wbGUsIGRvZXMgbm90IGNvb3BlcmF0ZSB3aXRoIHRoZSBtZW1vcnkKLSAqIGRldGVjdGlvbiBjb2RlLikKLSAqLwotaW50IF9faW5pdCBjb3B5X2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGludCBucl9tYXApCi17Ci0JLyogT25seSBvbmUgbWVtb3J5IHJlZ2lvbiAob3IgbmVnYXRpdmUpPyBJZ25vcmUgaXQgKi8KLQlpZiAobnJfbWFwIDwgMikKLQkJcmV0dXJuIC0xOwotCi0JZG8gewotCQl1NjQgc3RhcnQgPSBiaW9zbWFwLT5hZGRyOwotCQl1NjQgc2l6ZSA9IGJpb3NtYXAtPnNpemU7Ci0JCXU2NCBlbmQgPSBzdGFydCArIHNpemU7Ci0JCXUzMiB0eXBlID0gYmlvc21hcC0+dHlwZTsKLQotCQkvKiBPdmVyZmxvdyBpbiA2NCBiaXRzPyBJZ25vcmUgdGhlIG1lbW9yeSBtYXAuICovCi0JCWlmIChzdGFydCA+IGVuZCkKLQkJCXJldHVybiAtMTsKLQotCQlhZGRfbWVtb3J5X3JlZ2lvbihzdGFydCwgc2l6ZSwgdHlwZSk7Ci0JfSB3aGlsZSAoYmlvc21hcCsrLCAtLW5yX21hcCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIEZpbmQgdGhlIGhpZ2hlc3QgcGFnZSBmcmFtZSBudW1iZXIgd2UgaGF2ZSBhdmFpbGFibGUKLSAqLwotdm9pZCBfX2luaXQgcHJvcGFnYXRlX2U4MjBfbWFwKHZvaWQpCi17Ci0JaW50IGk7Ci0KLQltYXhfcGZuID0gMDsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsKLQkJLyogUkFNPyAqLwotCQlpZiAoZTgyMC5tYXBbaV0udHlwZSAhPSBFODIwX1JBTSkKLQkJCWNvbnRpbnVlOwotCQlzdGFydCA9IFBGTl9VUChlODIwLm1hcFtpXS5hZGRyKTsKLQkJZW5kID0gUEZOX0RPV04oZTgyMC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemUpOwotCQlpZiAoc3RhcnQgPj0gZW5kKQotCQkJY29udGludWU7Ci0JCWlmIChlbmQgPiBtYXhfcGZuKQotCQkJbWF4X3BmbiA9IGVuZDsKLQkJbWVtb3J5X3ByZXNlbnQoMCwgc3RhcnQsIGVuZCk7Ci0JfQotfQotCi0vKgotICogUmVnaXN0ZXIgZnVsbHkgYXZhaWxhYmxlIGxvdyBSQU0gcGFnZXMgd2l0aCB0aGUgYm9vdG1lbSBhbGxvY2F0b3IuCi0gKi8KLXZvaWQgX19pbml0IHJlZ2lzdGVyX2Jvb3RtZW1fbG93X3BhZ2VzKHVuc2lnbmVkIGxvbmcgbWF4X2xvd19wZm4pCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQl1bnNpZ25lZCBsb25nIGN1cnJfcGZuLCBsYXN0X3Bmbiwgc2l6ZTsKLQkJLyoKLQkJICogUmVzZXJ2ZSB1c2FibGUgbG93IG1lbW9yeQotCQkgKi8KLQkJaWYgKGU4MjAubWFwW2ldLnR5cGUgIT0gRTgyMF9SQU0pCi0JCQljb250aW51ZTsKLQkJLyoKLQkJICogV2UgYXJlIHJvdW5kaW5nIHVwIHRoZSBzdGFydCBhZGRyZXNzIG9mIHVzYWJsZSBtZW1vcnk6Ci0JCSAqLwotCQljdXJyX3BmbiA9IFBGTl9VUChlODIwLm1hcFtpXS5hZGRyKTsKLQkJaWYgKGN1cnJfcGZuID49IG1heF9sb3dfcGZuKQotCQkJY29udGludWU7Ci0JCS8qCi0JCSAqIC4uLiBhbmQgYXQgdGhlIGVuZCBvZiB0aGUgdXNhYmxlIHJhbmdlIGRvd253YXJkczoKLQkJICovCi0JCWxhc3RfcGZuID0gUEZOX0RPV04oZTgyMC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemUpOwotCi0JCWlmIChsYXN0X3BmbiA+IG1heF9sb3dfcGZuKQotCQkJbGFzdF9wZm4gPSBtYXhfbG93X3BmbjsKLQotCQkvKgotCQkgKiAuLiBmaW5hbGx5LCBkaWQgYWxsIHRoZSByb3VuZGluZyBhbmQgcGxheWluZwotCQkgKiBhcm91bmQganVzdCBtYWtlIHRoZSBhcmVhIGdvIGF3YXk/Ci0JCSAqLwotCQlpZiAobGFzdF9wZm4gPD0gY3Vycl9wZm4pCi0JCQljb250aW51ZTsKLQotCQlzaXplID0gbGFzdF9wZm4gLSBjdXJyX3BmbjsKLQkJZnJlZV9ib290bWVtKFBGTl9QSFlTKGN1cnJfcGZuKSwgUEZOX1BIWVMoc2l6ZSkpOwotCX0KLX0KLQotdm9pZCBfX2luaXQgZTgyMF9yZWdpc3Rlcl9tZW1vcnkodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGdhcHN0YXJ0LCBnYXBzaXplLCByb3VuZDsKLQl1bnNpZ25lZCBsb25nIGxvbmcgbGFzdDsKLQlpbnQgaTsKLQotCS8qCi0JICogU2VhcmNoIGZvciB0aGUgYmlnZ2VzdCBnYXAgaW4gdGhlIGxvdyAzMiBiaXRzIG9mIHRoZSBlODIwCi0JICogbWVtb3J5IHNwYWNlLgotCSAqLwotCWxhc3QgPSAweDEwMDAwMDAwMHVsbDsKLQlnYXBzdGFydCA9IDB4MTAwMDAwMDA7Ci0JZ2Fwc2l6ZSA9IDB4NDAwMDAwOwotCWkgPSBlODIwLm5yX21hcDsKLQl3aGlsZSAoLS1pID49IDApIHsKLQkJdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0ID0gZTgyMC5tYXBbaV0uYWRkcjsKLQkJdW5zaWduZWQgbG9uZyBsb25nIGVuZCA9IHN0YXJ0ICsgZTgyMC5tYXBbaV0uc2l6ZTsKLQotCQkvKgotCQkgKiBTaW5jZSAibGFzdCIgaXMgYXQgbW9zdCA0R0IsIHdlIGtub3cgd2UnbGwKLQkJICogZml0IGluIDMyIGJpdHMgaWYgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZQotCQkgKi8KLQkJaWYgKGxhc3QgPiBlbmQpIHsKLQkJCXVuc2lnbmVkIGxvbmcgZ2FwID0gbGFzdCAtIGVuZDsKLQotCQkJaWYgKGdhcCA+IGdhcHNpemUpIHsKLQkJCQlnYXBzaXplID0gZ2FwOwotCQkJCWdhcHN0YXJ0ID0gZW5kOwotCQkJfQotCQl9Ci0JCWlmIChzdGFydCA8IGxhc3QpCi0JCQlsYXN0ID0gc3RhcnQ7Ci0JfQotCi0JLyoKLQkgKiBTZWUgaG93IG11Y2ggd2Ugd2FudCB0byByb3VuZCB1cDogc3RhcnQgb2ZmIHdpdGgKLQkgKiByb3VuZGluZyB0byB0aGUgbmV4dCAxTUIgYXJlYS4KLQkgKi8KLQlyb3VuZCA9IDB4MTAwMDAwOwotCXdoaWxlICgoZ2Fwc2l6ZSA+PiA0KSA+IHJvdW5kKQotCQlyb3VuZCArPSByb3VuZDsKLQkvKiBGdW4gd2l0aCB0d28ncyBjb21wbGVtZW50ICovCi0JcGNpX21lbV9zdGFydCA9IChnYXBzdGFydCArIHJvdW5kKSAmIC1yb3VuZDsKLQotCXByaW50aygiQWxsb2NhdGluZyBQQ0kgcmVzb3VyY2VzIHN0YXJ0aW5nIGF0ICUwOGx4IChnYXA6ICUwOGx4OiUwOGx4KVxuIiwKLQkJcGNpX21lbV9zdGFydCwgZ2Fwc3RhcnQsIGdhcHNpemUpOwotfQotCi12b2lkIF9faW5pdCBwcmludF9tZW1vcnlfbWFwKGNoYXIgKndobykKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXByaW50aygiICVzOiAlMDE2THggLSAlMDE2THggIiwgd2hvLAotCQkJZTgyMC5tYXBbaV0uYWRkciwKLQkJCWU4MjAubWFwW2ldLmFkZHIgKyBlODIwLm1hcFtpXS5zaXplKTsKLQkJc3dpdGNoIChlODIwLm1hcFtpXS50eXBlKSB7Ci0JCWNhc2UgRTgyMF9SQU06CXByaW50aygiKHVzYWJsZSlcbiIpOwotCQkJCWJyZWFrOwotCQljYXNlIEU4MjBfUkVTRVJWRUQ6Ci0JCQkJcHJpbnRrKCIocmVzZXJ2ZWQpXG4iKTsKLQkJCQlicmVhazsKLQkJY2FzZSBFODIwX0FDUEk6Ci0JCQkJcHJpbnRrKCIoQUNQSSBkYXRhKVxuIik7Ci0JCQkJYnJlYWs7Ci0JCWNhc2UgRTgyMF9OVlM6Ci0JCQkJcHJpbnRrKCIoQUNQSSBOVlMpXG4iKTsKLQkJCQlicmVhazsKLQkJZGVmYXVsdDoJcHJpbnRrKCJ0eXBlICV1XG4iLCBlODIwLm1hcFtpXS50eXBlKTsKLQkJCQlicmVhazsKLQkJfQotCX0KLX0KLQotdm9pZCBfX2luaXQgbGltaXRfcmVnaW9ucyh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudF9hZGRyOwotCWludCBpOwotCi0JcHJpbnRfbWVtb3J5X21hcCgibGltaXRfcmVnaW9ucyBzdGFydCIpOwotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCWN1cnJlbnRfYWRkciA9IGU4MjAubWFwW2ldLmFkZHIgKyBlODIwLm1hcFtpXS5zaXplOwotCQlpZiAoY3VycmVudF9hZGRyIDwgc2l6ZSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChlODIwLm1hcFtpXS50eXBlICE9IEU4MjBfUkFNKQotCQkJY29udGludWU7Ci0KLQkJaWYgKGU4MjAubWFwW2ldLmFkZHIgPj0gc2l6ZSkgewotCQkJLyoKLQkJCSAqIFRoaXMgcmVnaW9uIHN0YXJ0cyBwYXN0IHRoZSBlbmQgb2YgdGhlCi0JCQkgKiByZXF1ZXN0ZWQgc2l6ZSwgc2tpcCBpdCBjb21wbGV0ZWx5LgotCQkJICovCi0JCQllODIwLm5yX21hcCA9IGk7Ci0JCX0gZWxzZSB7Ci0JCQllODIwLm5yX21hcCA9IGkgKyAxOwotCQkJZTgyMC5tYXBbaV0uc2l6ZSAtPSBjdXJyZW50X2FkZHIgLSBzaXplOwotCQl9Ci0JCXByaW50X21lbW9yeV9tYXAoImxpbWl0X3JlZ2lvbnMgZW5kZm9yIik7Ci0JCXJldHVybjsKLQl9Ci0JcHJpbnRfbWVtb3J5X21hcCgibGltaXRfcmVnaW9ucyBlbmRmdW5jIik7Ci19Ci0KLS8qCi0gKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBhbnkgcGFydCBvZiB0aGUgcmFuZ2UgPHN0YXJ0LGVuZD4gaXMgbWFwcGVkCi0gKiB3aXRoIHR5cGUuCi0gKi8KLWludAotZTgyMF9hbnlfbWFwcGVkKHU2NCBzdGFydCwgdTY0IGVuZCwgdW5zaWduZWQgdHlwZSkKLXsKLQlpbnQgaTsKLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQljb25zdCBzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQkJaWYgKHR5cGUgJiYgZWktPnR5cGUgIT0gdHlwZSkKLQkJCWNvbnRpbnVlOwotCQlpZiAoZWktPmFkZHIgPj0gZW5kIHx8IGVpLT5hZGRyICsgZWktPnNpemUgPD0gc3RhcnQpCi0JCQljb250aW51ZTsKLQkJcmV0dXJuIDE7Ci0JfQotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoZTgyMF9hbnlfbWFwcGVkKTsKLQotIC8qCi0gICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGVudGlyZSByYW5nZSA8c3RhcnQsZW5kPiBpcyBtYXBwZWQgd2l0aCB0eXBlLgotICAqCi0gICogTm90ZTogdGhpcyBmdW5jdGlvbiBvbmx5IHdvcmtzIGNvcnJlY3QgaWYgdGhlIGU4MjAgdGFibGUgaXMgc29ydGVkIGFuZAotICAqIG5vdC1vdmVybGFwcGluZywgd2hpY2ggaXMgdGhlIGNhc2UKLSAgKi8KLWludCBfX2luaXQKLWU4MjBfYWxsX21hcHBlZCh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSwgdW5zaWduZWQgdHlwZSkKLXsKLQl1NjQgc3RhcnQgPSBzOwotCXU2NCBlbmQgPSBlOwotCWludCBpOwotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCQlpZiAodHlwZSAmJiBlaS0+dHlwZSAhPSB0eXBlKQotCQkJY29udGludWU7Ci0JCS8qIGlzIHRoZSByZWdpb24gKHBhcnQpIGluIG92ZXJsYXAgd2l0aCB0aGUgY3VycmVudCByZWdpb24gPyovCi0JCWlmIChlaS0+YWRkciA+PSBlbmQgfHwgZWktPmFkZHIgKyBlaS0+c2l6ZSA8PSBzdGFydCkKLQkJCWNvbnRpbnVlOwotCQkvKiBpZiB0aGUgcmVnaW9uIGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgPHN0YXJ0LGVuZD4gd2UgbW92ZQotCQkgKiBzdGFydCB0byB0aGUgZW5kIG9mIHRoZSByZWdpb24gc2luY2UgaXQncyBvayB1bnRpbCB0aGVyZQotCQkgKi8KLQkJaWYgKGVpLT5hZGRyIDw9IHN0YXJ0KQotCQkJc3RhcnQgPSBlaS0+YWRkciArIGVpLT5zaXplOwotCQkvKiBpZiBzdGFydCBpcyBub3cgYXQgb3IgYmV5b25kIGVuZCwgd2UncmUgZG9uZSwgZnVsbAotCQkgKiBjb3ZlcmFnZSAqLwotCQlpZiAoc3RhcnQgPj0gZW5kKQotCQkJcmV0dXJuIDE7IC8qIHdlJ3JlIGRvbmUgKi8KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX21lbW1hcChjaGFyICphcmcpCi17Ci0JaWYgKCFhcmcpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JaWYgKHN0cmNtcChhcmcsICJleGFjdG1hcCIpID09IDApIHsKLSNpZmRlZiBDT05GSUdfQ1JBU0hfRFVNUAotCQkvKiBJZiB3ZSBhcmUgZG9pbmcgYSBjcmFzaCBkdW1wLCB3ZQotCQkgKiBzdGlsbCBuZWVkIHRvIGtub3cgdGhlIHJlYWwgbWVtCi0JCSAqIHNpemUgYmVmb3JlIG9yaWdpbmFsIG1lbW9yeSBtYXAgaXMKLQkJICogcmVzZXQuCi0JCSAqLwotCQlwcm9wYWdhdGVfZTgyMF9tYXAoKTsKLQkJc2F2ZWRfbWF4X3BmbiA9IG1heF9wZm47Ci0jZW5kaWYKLQkJZTgyMC5ucl9tYXAgPSAwOwotCQl1c2VyX2RlZmluZWRfbWVtbWFwID0gMTsKLQl9IGVsc2UgewotCQkvKiBJZiB0aGUgdXNlciBzcGVjaWZpZXMgbWVtb3J5IHNpemUsIHdlCi0JCSAqIGxpbWl0IHRoZSBCSU9TLXByb3ZpZGVkIG1lbW9yeSBtYXAgdG8KLQkJICogdGhhdCBzaXplLiBleGFjdG1hcCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5Ci0JCSAqIHRoZSBleGFjdCBtYXAuIG1lbT1udW1iZXIgY2FuIGJlIHVzZWQgdG8KLQkJICogdHJpbSB0aGUgZXhpc3RpbmcgbWVtb3J5IG1hcC4KLQkJICovCi0JCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydF9hdCwgbWVtX3NpemU7Ci0KLQkJbWVtX3NpemUgPSBtZW1wYXJzZShhcmcsICZhcmcpOwotCQlpZiAoKmFyZyA9PSAnQCcpIHsKLQkJCXN0YXJ0X2F0ID0gbWVtcGFyc2UoYXJnKzEsICZhcmcpOwotCQkJYWRkX21lbW9yeV9yZWdpb24oc3RhcnRfYXQsIG1lbV9zaXplLCBFODIwX1JBTSk7Ci0JCX0gZWxzZSBpZiAoKmFyZyA9PSAnIycpIHsKLQkJCXN0YXJ0X2F0ID0gbWVtcGFyc2UoYXJnKzEsICZhcmcpOwotCQkJYWRkX21lbW9yeV9yZWdpb24oc3RhcnRfYXQsIG1lbV9zaXplLCBFODIwX0FDUEkpOwotCQl9IGVsc2UgaWYgKCphcmcgPT0gJyQnKSB7Ci0JCQlzdGFydF9hdCA9IG1lbXBhcnNlKGFyZysxLCAmYXJnKTsKLQkJCWFkZF9tZW1vcnlfcmVnaW9uKHN0YXJ0X2F0LCBtZW1fc2l6ZSwgRTgyMF9SRVNFUlZFRCk7Ci0JCX0gZWxzZSB7Ci0JCQlsaW1pdF9yZWdpb25zKG1lbV9zaXplKTsKLQkJCXVzZXJfZGVmaW5lZF9tZW1tYXAgPSAxOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotZWFybHlfcGFyYW0oIm1lbW1hcCIsIHBhcnNlX21lbW1hcCk7Ci12b2lkIF9faW5pdCB1cGRhdGVfbWVtb3J5X3JhbmdlKHU2NCBzdGFydCwgdTY0IHNpemUsIHVuc2lnbmVkIG9sZF90eXBlLAotCQkJCXVuc2lnbmVkIG5ld190eXBlKQotewotCWludCBpOwotCi0JQlVHX09OKG9sZF90eXBlID09IG5ld190eXBlKTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCQl1NjQgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKLQkJaWYgKGVpLT50eXBlICE9IG9sZF90eXBlKQotCQkJY29udGludWU7Ci0JCS8qIHRvdGFsbHkgY292ZXJlZD8gKi8KLQkJaWYgKGVpLT5hZGRyID49IHN0YXJ0ICYmIGVpLT5zaXplIDw9IHNpemUpIHsKLQkJCWVpLT50eXBlID0gbmV3X3R5cGU7Ci0JCQljb250aW51ZTsKLQkJfQotCQkvKiBwYXJ0aWFsbHkgY292ZXJlZCAqLwotCQlmaW5hbF9zdGFydCA9IG1heChzdGFydCwgZWktPmFkZHIpOwotCQlmaW5hbF9lbmQgPSBtaW4oc3RhcnQgKyBzaXplLCBlaS0+YWRkciArIGVpLT5zaXplKTsKLQkJaWYgKGZpbmFsX3N0YXJ0ID49IGZpbmFsX2VuZCkKLQkJCWNvbnRpbnVlOwotCQlhZGRfbWVtb3J5X3JlZ2lvbihmaW5hbF9zdGFydCwgZmluYWxfZW5kIC0gZmluYWxfc3RhcnQsCi0JCQkJCSBuZXdfdHlwZSk7Ci0JfQotfQotdm9pZCBfX2luaXQgdXBkYXRlX2U4MjAodm9pZCkKLXsKLQl1OCBucl9tYXA7Ci0KLQlucl9tYXAgPSBlODIwLm5yX21hcDsKLQlpZiAoc2FuaXRpemVfZTgyMF9tYXAoZTgyMC5tYXAsICZucl9tYXApKQotCQlyZXR1cm47Ci0JZTgyMC5ucl9tYXAgPSBucl9tYXA7Ci0JcHJpbnRrKEtFUk5fSU5GTyAibW9kaWZpZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOwotCXByaW50X21lbW9yeV9tYXAoIm1vZGlmaWVkIik7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZTgyMF82NC5jIGIvYXJjaC94ODYva2VybmVsL2U4MjBfNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI0NDgwYy4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZTgyMF82NC5jCisrKyAvZGV2L251bGwKQEAgLTEsOTUyICswLDAgQEAKLS8qCi0gKiBIYW5kbGUgdGhlIG1lbW9yeSBtYXAuCi0gKiBUaGUgZnVuY3Rpb25zIGhlcmUgZG8gdGhlIGpvYiB1bnRpbCBib290bWVtIHRha2VzIG92ZXIuCi0gKgotICogIEdldHRpbmcgc2FuaXRpemVfZTgyMF9tYXAoKSBpbiBzeW5jIHdpdGggaTM4NiB2ZXJzaW9uIGJ5IGFwcGx5aW5nIGNoYW5nZToKLSAqICAtICBQcm92aXNpb25zIGZvciBlbXB0eSBFODIwIG1lbW9yeSByZWdpb25zIChyZXBvcnRlZCBieSBjZXJ0YWluIEJJT1NlcykuCi0gKiAgICAgQWxleCBBY2hlbmJhY2ggPHhlbGFAc2xpdC5kZT4sIERlY2VtYmVyIDIwMDIuCi0gKiAgVmVua2F0ZXNoIFBhbGxpcGFkaSA8dmVua2F0ZXNoLnBhbGxpcGFkaUBpbnRlbC5jb20+Ci0gKgotICovCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgotI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgotI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+Ci0jaW5jbHVkZSA8bGludXgvcGZuLmg+Ci0KLSNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgotI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2U4MjAuaD4KLSNpbmNsdWRlIDxhc20vcHJvdG8uaD4KLSNpbmNsdWRlIDxhc20vc2V0dXAuaD4KLSNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KLSNpbmNsdWRlIDxhc20va2RlYnVnLmg+Ci0jaW5jbHVkZSA8YXNtL3RyYW1wb2xpbmUuaD4KLQotc3RydWN0IGU4MjBtYXAgZTgyMDsKLQotLyoKLSAqIFBGTiBvZiBsYXN0IG1lbW9yeSBwYWdlLgotICovCi11bnNpZ25lZCBsb25nIGVuZF9wZm47Ci0KLS8qCi0gKiBlbmRfcGZuIG9ubHkgaW5jbHVkZXMgUkFNLCB3aGlsZSBtYXhfcGZuX21hcHBlZCBpbmNsdWRlcyBhbGwgZTgyMCBlbnRyaWVzLgotICogVGhlIGRpcmVjdCBtYXBwaW5nIGV4dGVuZHMgdG8gbWF4X3Bmbl9tYXBwZWQsIHNvIHRoYXQgd2UgY2FuIGRpcmVjdGx5IGFjY2VzcwotICogYXBlcnR1cmVzLCBBQ1BJIGFuZCBvdGhlciB0YWJsZXMgd2l0aG91dCBoYXZpbmcgdG8gcGxheSB3aXRoIGZpeG1hcHMuCi0gKi8KLXVuc2lnbmVkIGxvbmcgbWF4X3Bmbl9tYXBwZWQ7Ci0KLS8qCi0gKiBMYXN0IHBmbiB3aGljaCB0aGUgdXNlciB3YW50cyB0byB1c2UuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgZW5kX3VzZXJfcGZuID0gTUFYTUVNPj5QQUdFX1NISUZUOwotCi0vKgotICogRWFybHkgcmVzZXJ2ZWQgbWVtb3J5IGFyZWFzLgotICovCi0jZGVmaW5lIE1BWF9FQVJMWV9SRVMgMjAKLQotc3RydWN0IGVhcmx5X3JlcyB7Ci0JdW5zaWduZWQgbG9uZyBzdGFydCwgZW5kOwotCWNoYXIgbmFtZVsxNl07Ci19Owotc3RhdGljIHN0cnVjdCBlYXJseV9yZXMgZWFybHlfcmVzW01BWF9FQVJMWV9SRVNdIF9faW5pdGRhdGEgPSB7Ci0JeyAwLCBQQUdFX1NJWkUsICJCSU9TIGRhdGEgcGFnZSIgfSwJCQkvKiBCSU9TIGRhdGEgcGFnZSAqLwotI2lmZGVmIENPTkZJR19YODZfVFJBTVBPTElORQotCXsgVFJBTVBPTElORV9CQVNFLCBUUkFNUE9MSU5FX0JBU0UgKyAyICogUEFHRV9TSVpFLCAiVFJBTVBPTElORSIgfSwKLSNlbmRpZgotCXt9Ci19OwotCi12b2lkIF9faW5pdCByZXNlcnZlX2Vhcmx5KHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLCBjaGFyICpuYW1lKQotewotCWludCBpOwotCXN0cnVjdCBlYXJseV9yZXMgKnI7Ci0JZm9yIChpID0gMDsgaSA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2ldLmVuZDsgaSsrKSB7Ci0JCXIgPSAmZWFybHlfcmVzW2ldOwotCQlpZiAoZW5kID4gci0+c3RhcnQgJiYgc3RhcnQgPCByLT5lbmQpCi0JCQlwYW5pYygiT3ZlcmxhcHBpbmcgZWFybHkgcmVzZXJ2YXRpb25zICVseC0lbHggJXMgdG8gJWx4LSVseCAlc1xuIiwKLQkJCSAgICAgIHN0YXJ0LCBlbmQgLSAxLCBuYW1lP25hbWU6IiIsIHItPnN0YXJ0LCByLT5lbmQgLSAxLCByLT5uYW1lKTsKLQl9Ci0JaWYgKGkgPj0gTUFYX0VBUkxZX1JFUykKLQkJcGFuaWMoIlRvbyBtYW55IGVhcmx5IHJlc2VydmF0aW9ucyIpOwotCXIgPSAmZWFybHlfcmVzW2ldOwotCXItPnN0YXJ0ID0gc3RhcnQ7Ci0Jci0+ZW5kID0gZW5kOwotCWlmIChuYW1lKQotCQlzdHJuY3B5KHItPm5hbWUsIG5hbWUsIHNpemVvZihyLT5uYW1lKSAtIDEpOwotfQotCi12b2lkIF9faW5pdCBmcmVlX2Vhcmx5KHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQotewotCXN0cnVjdCBlYXJseV9yZXMgKnI7Ci0JaW50IGksIGo7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbaV0uZW5kOyBpKyspIHsKLQkJciA9ICZlYXJseV9yZXNbaV07Ci0JCWlmIChzdGFydCA9PSByLT5zdGFydCAmJiBlbmQgPT0gci0+ZW5kKQotCQkJYnJlYWs7Ci0JfQotCWlmIChpID49IE1BWF9FQVJMWV9SRVMgfHwgIWVhcmx5X3Jlc1tpXS5lbmQpCi0JCXBhbmljKCJmcmVlX2Vhcmx5IG9uIG5vdCByZXNlcnZlZCBhcmVhOiAlbHgtJWx4ISIsIHN0YXJ0LCBlbmQpOwotCi0JZm9yIChqID0gaSArIDE7IGogPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tqXS5lbmQ7IGorKykKLQkJOwotCi0JbWVtbW92ZSgmZWFybHlfcmVzW2ldLCAmZWFybHlfcmVzW2kgKyAxXSwKLQkgICAgICAgKGogLSAxIC0gaSkgKiBzaXplb2Yoc3RydWN0IGVhcmx5X3JlcykpOwotCi0JZWFybHlfcmVzW2ogLSAxXS5lbmQgPSAwOwotfQotCi12b2lkIF9faW5pdCBlYXJseV9yZXNfdG9fYm9vdG1lbSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKLXsKLQlpbnQgaTsKLQl1bnNpZ25lZCBsb25nIGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQ7Ci0JZm9yIChpID0gMDsgaSA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2ldLmVuZDsgaSsrKSB7Ci0JCXN0cnVjdCBlYXJseV9yZXMgKnIgPSAmZWFybHlfcmVzW2ldOwotCQlmaW5hbF9zdGFydCA9IG1heChzdGFydCwgci0+c3RhcnQpOwotCQlmaW5hbF9lbmQgPSBtaW4oZW5kLCByLT5lbmQpOwotCQlpZiAoZmluYWxfc3RhcnQgPj0gZmluYWxfZW5kKQotCQkJY29udGludWU7Ci0JCXByaW50ayhLRVJOX0lORk8gIiAgZWFybHkgcmVzOiAlZCBbJWx4LSVseF0gJXNcbiIsIGksCi0JCQlmaW5hbF9zdGFydCwgZmluYWxfZW5kIC0gMSwgci0+bmFtZSk7Ci0JCXJlc2VydmVfYm9vdG1lbV9nZW5lcmljKGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQgLSBmaW5hbF9zdGFydCk7Ci0JfQotfQotCi0vKiBDaGVjayBmb3IgYWxyZWFkeSByZXNlcnZlZCBhcmVhcyAqLwotc3RhdGljIGlubGluZSBpbnQgX19pbml0Ci1iYWRfYWRkcih1bnNpZ25lZCBsb25nICphZGRycCwgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduKQotewotCWludCBpOwotCXVuc2lnbmVkIGxvbmcgYWRkciA9ICphZGRycCwgbGFzdDsKLQlpbnQgY2hhbmdlZCA9IDA7Ci1hZ2FpbjoKLQlsYXN0ID0gYWRkciArIHNpemU7Ci0JZm9yIChpID0gMDsgaSA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2ldLmVuZDsgaSsrKSB7Ci0JCXN0cnVjdCBlYXJseV9yZXMgKnIgPSAmZWFybHlfcmVzW2ldOwotCQlpZiAobGFzdCA+PSByLT5zdGFydCAmJiBhZGRyIDwgci0+ZW5kKSB7Ci0JCQkqYWRkcnAgPSBhZGRyID0gcm91bmRfdXAoci0+ZW5kLCBhbGlnbik7Ci0JCQljaGFuZ2VkID0gMTsKLQkJCWdvdG8gYWdhaW47Ci0JCX0KLQl9Ci0JcmV0dXJuIGNoYW5nZWQ7Ci19Ci0KLS8qIENoZWNrIGZvciBhbHJlYWR5IHJlc2VydmVkIGFyZWFzICovCi1zdGF0aWMgaW5saW5lIGludCBfX2luaXQKLWJhZF9hZGRyX3NpemUodW5zaWduZWQgbG9uZyAqYWRkcnAsIHVuc2lnbmVkIGxvbmcgKnNpemVwLCB1bnNpZ25lZCBsb25nIGFsaWduKQotewotCWludCBpOwotCXVuc2lnbmVkIGxvbmcgYWRkciA9ICphZGRycCwgbGFzdDsKLQl1bnNpZ25lZCBsb25nIHNpemUgPSAqc2l6ZXA7Ci0JaW50IGNoYW5nZWQgPSAwOwotYWdhaW46Ci0JbGFzdCA9IGFkZHIgKyBzaXplOwotCWZvciAoaSA9IDA7IGkgPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tpXS5lbmQ7IGkrKykgewotCQlzdHJ1Y3QgZWFybHlfcmVzICpyID0gJmVhcmx5X3Jlc1tpXTsKLQkJaWYgKGxhc3QgPiByLT5zdGFydCAmJiBhZGRyIDwgci0+c3RhcnQpIHsKLQkJCXNpemUgPSByLT5zdGFydCAtIGFkZHI7Ci0JCQljaGFuZ2VkID0gMTsKLQkJCWdvdG8gYWdhaW47Ci0JCX0KLQkJaWYgKGxhc3QgPiByLT5lbmQgJiYgYWRkciA8IHItPmVuZCkgewotCQkJYWRkciA9IHJvdW5kX3VwKHItPmVuZCwgYWxpZ24pOwotCQkJc2l6ZSA9IGxhc3QgLSBhZGRyOwotCQkJY2hhbmdlZCA9IDE7Ci0JCQlnb3RvIGFnYWluOwotCQl9Ci0JCWlmIChsYXN0IDw9IHItPmVuZCAmJiBhZGRyID49IHItPnN0YXJ0KSB7Ci0JCQkoKnNpemVwKSsrOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQl9Ci0JaWYgKGNoYW5nZWQpIHsKLQkJKmFkZHJwID0gYWRkcjsKLQkJKnNpemVwID0gc2l6ZTsKLQl9Ci0JcmV0dXJuIGNoYW5nZWQ7Ci19Ci0vKgotICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgYW55IHBhcnQgb2YgdGhlIHJhbmdlIDxzdGFydCxlbmQ+IGlzIG1hcHBlZAotICogd2l0aCB0eXBlLgotICovCi1pbnQKLWU4MjBfYW55X21hcHBlZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwgdW5zaWduZWQgdHlwZSkKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCi0JCWlmICh0eXBlICYmIGVpLT50eXBlICE9IHR5cGUpCi0JCQljb250aW51ZTsKLQkJaWYgKGVpLT5hZGRyID49IGVuZCB8fCBlaS0+YWRkciArIGVpLT5zaXplIDw9IHN0YXJ0KQotCQkJY29udGludWU7Ci0JCXJldHVybiAxOwotCX0KLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKGU4MjBfYW55X21hcHBlZCk7Ci0KLS8qCi0gKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGUgZW50aXJlIHJhbmdlIDxzdGFydCxlbmQ+IGlzIG1hcHBlZCB3aXRoIHR5cGUuCi0gKgotICogTm90ZTogdGhpcyBmdW5jdGlvbiBvbmx5IHdvcmtzIGNvcnJlY3QgaWYgdGhlIGU4MjAgdGFibGUgaXMgc29ydGVkIGFuZAotICogbm90LW92ZXJsYXBwaW5nLCB3aGljaCBpcyB0aGUgY2FzZQotICovCi1pbnQgX19pbml0IGU4MjBfYWxsX21hcHBlZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgIHVuc2lnbmVkIHR5cGUpCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQotCQlpZiAodHlwZSAmJiBlaS0+dHlwZSAhPSB0eXBlKQotCQkJY29udGludWU7Ci0JCS8qIGlzIHRoZSByZWdpb24gKHBhcnQpIGluIG92ZXJsYXAgd2l0aCB0aGUgY3VycmVudCByZWdpb24gPyovCi0JCWlmIChlaS0+YWRkciA+PSBlbmQgfHwgZWktPmFkZHIgKyBlaS0+c2l6ZSA8PSBzdGFydCkKLQkJCWNvbnRpbnVlOwotCi0JCS8qIGlmIHRoZSByZWdpb24gaXMgYXQgdGhlIGJlZ2lubmluZyBvZiA8c3RhcnQsZW5kPiB3ZSBtb3ZlCi0JCSAqIHN0YXJ0IHRvIHRoZSBlbmQgb2YgdGhlIHJlZ2lvbiBzaW5jZSBpdCdzIG9rIHVudGlsIHRoZXJlCi0JCSAqLwotCQlpZiAoZWktPmFkZHIgPD0gc3RhcnQpCi0JCQlzdGFydCA9IGVpLT5hZGRyICsgZWktPnNpemU7Ci0JCS8qCi0JCSAqIGlmIHN0YXJ0IGlzIG5vdyBhdCBvciBiZXlvbmQgZW5kLCB3ZSdyZSBkb25lLCBmdWxsCi0JCSAqIGNvdmVyYWdlCi0JCSAqLwotCQlpZiAoc3RhcnQgPj0gZW5kKQotCQkJcmV0dXJuIDE7Ci0JfQotCXJldHVybiAwOwotfQotCi0vKgotICogRmluZCBhIGZyZWUgYXJlYSB3aXRoIHNwZWNpZmllZCBhbGlnbm1lbnQgaW4gYSBzcGVjaWZpYyByYW5nZS4KLSAqLwotdW5zaWduZWQgbG9uZyBfX2luaXQgZmluZF9lODIwX2FyZWEodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkJICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBhbGlnbikKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCQl1bnNpZ25lZCBsb25nIGFkZHIsIGxhc3Q7Ci0JCXVuc2lnbmVkIGxvbmcgZWlfbGFzdDsKLQotCQlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0pCi0JCQljb250aW51ZTsKLQkJYWRkciA9IHJvdW5kX3VwKGVpLT5hZGRyLCBhbGlnbik7Ci0JCWVpX2xhc3QgPSBlaS0+YWRkciArIGVpLT5zaXplOwotCQlpZiAoYWRkciA8IHN0YXJ0KQotCQkJYWRkciA9IHJvdW5kX3VwKHN0YXJ0LCBhbGlnbik7Ci0JCWlmIChhZGRyID49IGVpX2xhc3QpCi0JCQljb250aW51ZTsKLQkJd2hpbGUgKGJhZF9hZGRyKCZhZGRyLCBzaXplLCBhbGlnbikgJiYgYWRkcitzaXplIDw9IGVpX2xhc3QpCi0JCQk7Ci0JCWxhc3QgPSBhZGRyICsgc2l6ZTsKLQkJaWYgKGxhc3QgPiBlaV9sYXN0KQotCQkJY29udGludWU7Ci0JCWlmIChsYXN0ID4gZW5kKQotCQkJY29udGludWU7Ci0JCXJldHVybiBhZGRyOwotCX0KLQlyZXR1cm4gLTFVTDsKLX0KLQotLyoKLSAqIEZpbmQgbmV4dCBmcmVlIHJhbmdlIGFmdGVyICpzdGFydAotICovCi11bnNpZ25lZCBsb25nIF9faW5pdCBmaW5kX2U4MjBfYXJlYV9zaXplKHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCQkJCSB1bnNpZ25lZCBsb25nICpzaXplcCwKLQkJCQkJIHVuc2lnbmVkIGxvbmcgYWxpZ24pCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQkJdW5zaWduZWQgbG9uZyBhZGRyLCBsYXN0OwotCQl1bnNpZ25lZCBsb25nIGVpX2xhc3Q7Ci0KLQkJaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNKQotCQkJY29udGludWU7Ci0JCWFkZHIgPSByb3VuZF91cChlaS0+YWRkciwgYWxpZ24pOwotCQllaV9sYXN0ID0gZWktPmFkZHIgKyBlaS0+c2l6ZTsKLQkJaWYgKGFkZHIgPCBzdGFydCkKLQkJCWFkZHIgPSByb3VuZF91cChzdGFydCwgYWxpZ24pOwotCQlpZiAoYWRkciA+PSBlaV9sYXN0KQotCQkJY29udGludWU7Ci0JCSpzaXplcCA9IGVpX2xhc3QgLSBhZGRyOwotCQl3aGlsZSAoYmFkX2FkZHJfc2l6ZSgmYWRkciwgc2l6ZXAsIGFsaWduKSAmJgotCQkJYWRkciArICpzaXplcCA8PSBlaV9sYXN0KQotCQkJOwotCQlsYXN0ID0gYWRkciArICpzaXplcDsKLQkJaWYgKGxhc3QgPiBlaV9sYXN0KQotCQkJY29udGludWU7Ci0JCXJldHVybiBhZGRyOwotCX0KLQlyZXR1cm4gLTFVTDsKLQotfQotLyoKLSAqIEZpbmQgdGhlIGhpZ2hlc3QgcGFnZSBmcmFtZSBudW1iZXIgd2UgaGF2ZSBhdmFpbGFibGUKLSAqLwotdW5zaWduZWQgbG9uZyBfX2luaXQgZTgyMF9lbmRfb2ZfcmFtKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBlbmRfcGZuOwotCi0JZW5kX3BmbiA9IGZpbmRfbWF4X3Bmbl93aXRoX2FjdGl2ZV9yZWdpb25zKCk7Ci0KLQlpZiAoZW5kX3BmbiA+IG1heF9wZm5fbWFwcGVkKQotCQltYXhfcGZuX21hcHBlZCA9IGVuZF9wZm47Ci0JaWYgKG1heF9wZm5fbWFwcGVkID4gTUFYTUVNPj5QQUdFX1NISUZUKQotCQltYXhfcGZuX21hcHBlZCA9IE1BWE1FTT4+UEFHRV9TSElGVDsKLQlpZiAoZW5kX3BmbiA+IGVuZF91c2VyX3BmbikKLQkJZW5kX3BmbiA9IGVuZF91c2VyX3BmbjsKLQlpZiAoZW5kX3BmbiA+IG1heF9wZm5fbWFwcGVkKQotCQllbmRfcGZuID0gbWF4X3Bmbl9tYXBwZWQ7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJtYXhfcGZuX21hcHBlZCA9ICVsdVxuIiwgbWF4X3Bmbl9tYXBwZWQpOwotCXJldHVybiBlbmRfcGZuOwotfQotCi0vKgotICogTWFyayBlODIwIHJlc2VydmVkIGFyZWFzIGFzIGJ1c3kgZm9yIHRoZSByZXNvdXJjZSBtYW5hZ2VyLgotICovCi12b2lkIF9faW5pdCBlODIwX3Jlc2VydmVfcmVzb3VyY2VzKHZvaWQpCi17Ci0JaW50IGk7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0KLQlyZXMgPSBhbGxvY19ib290bWVtX2xvdyhzaXplb2Yoc3RydWN0IHJlc291cmNlKSAqIGU4MjAubnJfbWFwKTsKLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzd2l0Y2ggKGU4MjAubWFwW2ldLnR5cGUpIHsKLQkJY2FzZSBFODIwX1JBTToJcmVzLT5uYW1lID0gIlN5c3RlbSBSQU0iOyBicmVhazsKLQkJY2FzZSBFODIwX0FDUEk6CXJlcy0+bmFtZSA9ICJBQ1BJIFRhYmxlcyI7IGJyZWFrOwotCQljYXNlIEU4MjBfTlZTOglyZXMtPm5hbWUgPSAiQUNQSSBOb24tdm9sYXRpbGUgU3RvcmFnZSI7IGJyZWFrOwotCQlkZWZhdWx0OglyZXMtPm5hbWUgPSAicmVzZXJ2ZWQiOwotCQl9Ci0JCXJlcy0+c3RhcnQgPSBlODIwLm1hcFtpXS5hZGRyOwotCQlyZXMtPmVuZCA9IHJlcy0+c3RhcnQgKyBlODIwLm1hcFtpXS5zaXplIC0gMTsKLQkJcmVzLT5mbGFncyA9IElPUkVTT1VSQ0VfTUVNIHwgSU9SRVNPVVJDRV9CVVNZOwotCQlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCByZXMpOwotCQlyZXMrKzsKLQl9Ci19Ci0KLS8qCi0gKiBGaW5kIHRoZSByYW5nZXMgb2YgcGh5c2ljYWwgYWRkcmVzc2VzIHRoYXQgZG8gbm90IGNvcnJlc3BvbmQgdG8KLSAqIGU4MjAgUkFNIGFyZWFzIGFuZCBtYXJrIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2VzIGFzIG5vc2F2ZSBmb3Igc29mdHdhcmUKLSAqIHN1c3BlbmQgYW5kIHN1c3BlbmQgdG8gUkFNLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgdGhlIGU4MjAgbWFwIHRvIGJlIHNvcnRlZCBhbmQgd2l0aG91dCBhbnkKLSAqIG92ZXJsYXBwaW5nIGVudHJpZXMgYW5kIGFzc3VtZXMgdGhlIGZpcnN0IGU4MjAgYXJlYSB0byBiZSBSQU0uCi0gKi8KLXZvaWQgX19pbml0IGU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyh2b2lkKQotewotCWludCBpOwotCXVuc2lnbmVkIGxvbmcgcGFkZHI7Ci0KLQlwYWRkciA9IHJvdW5kX2Rvd24oZTgyMC5tYXBbMF0uYWRkciArIGU4MjAubWFwWzBdLnNpemUsIFBBR0VfU0laRSk7Ci0JZm9yIChpID0gMTsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0KLQkJaWYgKHBhZGRyIDwgZWktPmFkZHIpCi0JCQlyZWdpc3Rlcl9ub3NhdmVfcmVnaW9uKFBGTl9ET1dOKHBhZGRyKSwKLQkJCQkJCVBGTl9VUChlaS0+YWRkcikpOwotCi0JCXBhZGRyID0gcm91bmRfZG93bihlaS0+YWRkciArIGVpLT5zaXplLCBQQUdFX1NJWkUpOwotCQlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0pCi0JCQlyZWdpc3Rlcl9ub3NhdmVfcmVnaW9uKFBGTl9VUChlaS0+YWRkciksCi0JCQkJCQlQRk5fRE9XTihwYWRkcikpOwotCi0JCWlmIChwYWRkciA+PSAoZW5kX3BmbiA8PCBQQUdFX1NISUZUKSkKLQkJCWJyZWFrOwotCX0KLX0KLQotLyoKLSAqIEZpbmRzIGFuIGFjdGl2ZSByZWdpb24gaW4gdGhlIGFkZHJlc3MgcmFuZ2UgZnJvbSBzdGFydF9wZm4gdG8gZW5kX3BmbiBhbmQKLSAqIHJldHVybnMgaXRzIHJhbmdlIGluIGVpX3N0YXJ0cGZuIGFuZCBlaV9lbmRwZm4gZm9yIHRoZSBlODIwIGVudHJ5LgotICovCi1zdGF0aWMgaW50IF9faW5pdCBlODIwX2ZpbmRfYWN0aXZlX3JlZ2lvbihjb25zdCBzdHJ1Y3QgZTgyMGVudHJ5ICplaSwKLQkJCQkJICB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKLQkJCQkJICB1bnNpZ25lZCBsb25nIGVuZF9wZm4sCi0JCQkJCSAgdW5zaWduZWQgbG9uZyAqZWlfc3RhcnRwZm4sCi0JCQkJCSAgdW5zaWduZWQgbG9uZyAqZWlfZW5kcGZuKQotewotCSplaV9zdGFydHBmbiA9IHJvdW5kX3VwKGVpLT5hZGRyLCBQQUdFX1NJWkUpID4+IFBBR0VfU0hJRlQ7Ci0JKmVpX2VuZHBmbiA9IHJvdW5kX2Rvd24oZWktPmFkZHIgKyBlaS0+c2l6ZSwgUEFHRV9TSVpFKSA+PiBQQUdFX1NISUZUOwotCi0JLyogU2tpcCBtYXAgZW50cmllcyBzbWFsbGVyIHRoYW4gYSBwYWdlICovCi0JaWYgKCplaV9zdGFydHBmbiA+PSAqZWlfZW5kcGZuKQotCQlyZXR1cm4gMDsKLQotCS8qIENoZWNrIGlmIG1heF9wZm5fbWFwcGVkIHNob3VsZCBiZSB1cGRhdGVkICovCi0JaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNICYmICplaV9lbmRwZm4gPiBtYXhfcGZuX21hcHBlZCkKLQkJbWF4X3Bmbl9tYXBwZWQgPSAqZWlfZW5kcGZuOwotCi0JLyogU2tpcCBpZiBtYXAgaXMgb3V0c2lkZSB0aGUgbm9kZSAqLwotCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSB8fCAqZWlfZW5kcGZuIDw9IHN0YXJ0X3BmbiB8fAotCQkJCSAgICAqZWlfc3RhcnRwZm4gPj0gZW5kX3BmbikKLQkJcmV0dXJuIDA7Ci0KLQkvKiBDaGVjayBmb3Igb3ZlcmxhcHMgKi8KLQlpZiAoKmVpX3N0YXJ0cGZuIDwgc3RhcnRfcGZuKQotCQkqZWlfc3RhcnRwZm4gPSBzdGFydF9wZm47Ci0JaWYgKCplaV9lbmRwZm4gPiBlbmRfcGZuKQotCQkqZWlfZW5kcGZuID0gZW5kX3BmbjsKLQotCS8qIE9iZXkgZW5kX3VzZXJfcGZuIHRvIHNhdmUgb24gbWVtbWFwICovCi0JaWYgKCplaV9zdGFydHBmbiA+PSBlbmRfdXNlcl9wZm4pCi0JCXJldHVybiAwOwotCWlmICgqZWlfZW5kcGZuID4gZW5kX3VzZXJfcGZuKQotCQkqZWlfZW5kcGZuID0gZW5kX3VzZXJfcGZuOwotCi0JcmV0dXJuIDE7Ci19Ci0KLS8qIFdhbGsgdGhlIGU4MjAgbWFwIGFuZCByZWdpc3RlciBhY3RpdmUgcmVnaW9ucyB3aXRoaW4gYSBub2RlICovCi12b2lkIF9faW5pdAotZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKLQkJCQkJCQl1bnNpZ25lZCBsb25nIGVuZF9wZm4pCi17Ci0JdW5zaWduZWQgbG9uZyBlaV9zdGFydHBmbjsKLQl1bnNpZ25lZCBsb25nIGVpX2VuZHBmbjsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKQotCQlpZiAoZTgyMF9maW5kX2FjdGl2ZV9yZWdpb24oJmU4MjAubWFwW2ldLAotCQkJCQkgICAgc3RhcnRfcGZuLCBlbmRfcGZuLAotCQkJCQkgICAgJmVpX3N0YXJ0cGZuLCAmZWlfZW5kcGZuKSkKLQkJCWFkZF9hY3RpdmVfcmFuZ2UobmlkLCBlaV9zdGFydHBmbiwgZWlfZW5kcGZuKTsKLX0KLQotLyoKLSAqIEFkZCBhIG1lbW9yeSByZWdpb24gdG8gdGhlIGtlcm5lbCBlODIwIG1hcC4KLSAqLwotdm9pZCBfX2luaXQgYWRkX21lbW9yeV9yZWdpb24odW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBzaXplLCBpbnQgdHlwZSkKLXsKLQlpbnQgeCA9IGU4MjAubnJfbWFwOwotCi0JaWYgKHggPT0gRTgyME1BWCkgewotCQlwcmludGsoS0VSTl9FUlIgIk9vb3BzISBUb28gbWFueSBlbnRyaWVzIGluIHRoZSBtZW1vcnkgbWFwIVxuIik7Ci0JCXJldHVybjsKLQl9Ci0KLQllODIwLm1hcFt4XS5hZGRyID0gc3RhcnQ7Ci0JZTgyMC5tYXBbeF0uc2l6ZSA9IHNpemU7Ci0JZTgyMC5tYXBbeF0udHlwZSA9IHR5cGU7Ci0JZTgyMC5ucl9tYXArKzsKLX0KLQotLyoKLSAqIEZpbmQgdGhlIGhvbGUgc2l6ZSAoaW4gYnl0ZXMpIGluIHRoZSBtZW1vcnkgcmFuZ2UuCi0gKiBAc3RhcnQ6IHN0YXJ0aW5nIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSByYW5nZSB0byBzY2FuCi0gKiBAZW5kOiBlbmRpbmcgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IHJhbmdlIHRvIHNjYW4KLSAqLwotdW5zaWduZWQgbG9uZyBfX2luaXQgZTgyMF9ob2xlX3NpemUodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCi17Ci0JdW5zaWduZWQgbG9uZyBzdGFydF9wZm4gPSBzdGFydCA+PiBQQUdFX1NISUZUOwotCXVuc2lnbmVkIGxvbmcgZW5kX3BmbiA9IGVuZCA+PiBQQUdFX1NISUZUOwotCXVuc2lnbmVkIGxvbmcgZWlfc3RhcnRwZm4sIGVpX2VuZHBmbiwgcmFtID0gMDsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCWlmIChlODIwX2ZpbmRfYWN0aXZlX3JlZ2lvbigmZTgyMC5tYXBbaV0sCi0JCQkJCSAgICBzdGFydF9wZm4sIGVuZF9wZm4sCi0JCQkJCSAgICAmZWlfc3RhcnRwZm4sICZlaV9lbmRwZm4pKQotCQkJcmFtICs9IGVpX2VuZHBmbiAtIGVpX3N0YXJ0cGZuOwotCX0KLQlyZXR1cm4gZW5kIC0gc3RhcnQgLSAocmFtIDw8IFBBR0VfU0hJRlQpOwotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQgZTgyMF9wcmludF9tYXAoY2hhciAqd2hvKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiICVzOiAlMDE2THggLSAlMDE2THggIiwgd2hvLAotCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgZTgyMC5tYXBbaV0uYWRkciwKLQkJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpCi0JCSAgICAgICAoZTgyMC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemUpKTsKLQkJc3dpdGNoIChlODIwLm1hcFtpXS50eXBlKSB7Ci0JCWNhc2UgRTgyMF9SQU06Ci0JCQlwcmludGsoS0VSTl9DT05UICIodXNhYmxlKVxuIik7Ci0JCQlicmVhazsKLQkJY2FzZSBFODIwX1JFU0VSVkVEOgotCQkJcHJpbnRrKEtFUk5fQ09OVCAiKHJlc2VydmVkKVxuIik7Ci0JCQlicmVhazsKLQkJY2FzZSBFODIwX0FDUEk6Ci0JCQlwcmludGsoS0VSTl9DT05UICIoQUNQSSBkYXRhKVxuIik7Ci0JCQlicmVhazsKLQkJY2FzZSBFODIwX05WUzoKLQkJCXByaW50ayhLRVJOX0NPTlQgIihBQ1BJIE5WUylcbiIpOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlwcmludGsoS0VSTl9DT05UICJ0eXBlICV1XG4iLCBlODIwLm1hcFtpXS50eXBlKTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotfQotCi0vKgotICogU2FuaXRpemUgdGhlIEJJT1MgZTgyMCBtYXAuCi0gKgotICogU29tZSBlODIwIHJlc3BvbnNlcyBpbmNsdWRlIG92ZXJsYXBwaW5nIGVudHJpZXMuIFRoZSBmb2xsb3dpbmcKLSAqIHJlcGxhY2VzIHRoZSBvcmlnaW5hbCBlODIwIG1hcCB3aXRoIGEgbmV3IG9uZSwgcmVtb3Zpbmcgb3ZlcmxhcHMuCi0gKgotICovCi1zdGF0aWMgaW50IF9faW5pdCBzYW5pdGl6ZV9lODIwX21hcChzdHJ1Y3QgZTgyMGVudHJ5ICpiaW9zbWFwLCBjaGFyICpwbnJfbWFwKQotewotCXN0cnVjdCBjaGFuZ2VfbWVtYmVyIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqcGJpb3M7IC8qIHBvaW50ZXIgdG8gb3JpZ2luYWwgYmlvcyBlbnRyeSAqLwotCQl1bnNpZ25lZCBsb25nIGxvbmcgYWRkcjsgLyogYWRkcmVzcyBmb3IgdGhpcyBjaGFuZ2UgcG9pbnQgKi8KLQl9OwotCXN0YXRpYyBzdHJ1Y3QgY2hhbmdlX21lbWJlciBjaGFuZ2VfcG9pbnRfbGlzdFsyKkU4MjBNQVhdIF9faW5pdGRhdGE7Ci0Jc3RhdGljIHN0cnVjdCBjaGFuZ2VfbWVtYmVyICpjaGFuZ2VfcG9pbnRbMipFODIwTUFYXSBfX2luaXRkYXRhOwotCXN0YXRpYyBzdHJ1Y3QgZTgyMGVudHJ5ICpvdmVybGFwX2xpc3RbRTgyME1BWF0gX19pbml0ZGF0YTsKLQlzdGF0aWMgc3RydWN0IGU4MjBlbnRyeSBuZXdfYmlvc1tFODIwTUFYXSBfX2luaXRkYXRhOwotCXN0cnVjdCBjaGFuZ2VfbWVtYmVyICpjaGFuZ2VfdG1wOwotCXVuc2lnbmVkIGxvbmcgY3VycmVudF90eXBlLCBsYXN0X3R5cGU7Ci0JdW5zaWduZWQgbG9uZyBsb25nIGxhc3RfYWRkcjsKLQlpbnQgY2hnaWR4LCBzdGlsbF9jaGFuZ2luZzsKLQlpbnQgb3ZlcmxhcF9lbnRyaWVzOwotCWludCBuZXdfYmlvc19lbnRyeTsKLQlpbnQgb2xkX25yLCBuZXdfbnIsIGNoZ19ucjsKLQlpbnQgaTsKLQotCS8qCi0JCVZpc3VhbGx5IHdlJ3JlIHBlcmZvcm1pbmcgdGhlIGZvbGxvd2luZwotCQkoMSwyLDMsNCA9IG1lbW9yeSB0eXBlcykuLi4KLQotCQlTYW1wbGUgbWVtb3J5IG1hcCAody9vdmVybGFwcyk6Ci0JCSAgIF9fX18yMl9fX19fX19fX19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fX19fNF8KLQkJICAgX19fXzExMTFfX19fX19fX19fX19fX19fCi0JCSAgIF80NF9fX19fX19fX19fX19fX19fX19fXwotCQkgICAxMTExMTExMV9fX19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fX18zM19fCi0JCSAgIF9fX19fX19fX19fNDRfX19fX19fX19fXwotCQkgICBfX19fX19fX19fMzMzMzNfX19fX19fX18KLQkJICAgX19fX19fX19fX19fX18yMl9fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX18yMjIyXwotCQkgICBfX19fX19fX18xMTExMTExMTFfX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fX19fMTFfCi0JCSAgIF9fX19fX19fX19fX19fX19fNF9fX19fXwotCi0JCVNhbml0aXplZCBlcXVpdmFsZW50IChubyBvdmVybGFwKToKLQkJICAgMV9fX19fX19fX19fX19fX19fX19fX19fCi0JCSAgIF80NF9fX19fX19fX19fX19fX19fX19fXwotCQkgICBfX18xX19fX19fX19fX19fX19fX19fX18KLQkJICAgX19fXzIyX19fX19fX19fX19fX19fX19fCi0JCSAgIF9fX19fXzExX19fX19fX19fX19fX19fXwotCQkgICBfX19fX19fX18xX19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fXzNfX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fNDRfX19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fMzNfX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fMl9fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX18xX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fXzRfX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fXzJfX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fMzNfXwotCQkgICBfX19fX19fX19fX19fX19fX19fX19fNF8KLQkqLwotCi0JLyogaWYgdGhlcmUncyBvbmx5IG9uZSBtZW1vcnkgcmVnaW9uLCBkb24ndCBib3RoZXIgKi8KLQlpZiAoKnBucl9tYXAgPCAyKQotCQlyZXR1cm4gLTE7Ci0KLQlvbGRfbnIgPSAqcG5yX21hcDsKLQotCS8qIGJhaWwgb3V0IGlmIHdlIGZpbmQgYW55IHVucmVhc29uYWJsZSBhZGRyZXNzZXMgaW4gYmlvcyBtYXAgKi8KLQlmb3IgKGkgPSAwOyBpIDwgb2xkX25yOyBpKyspCi0JCWlmIChiaW9zbWFwW2ldLmFkZHIgKyBiaW9zbWFwW2ldLnNpemUgPCBiaW9zbWFwW2ldLmFkZHIpCi0JCQlyZXR1cm4gLTE7Ci0KLQkvKiBjcmVhdGUgcG9pbnRlcnMgZm9yIGluaXRpYWwgY2hhbmdlLXBvaW50IGluZm9ybWF0aW9uIChmb3Igc29ydGluZykgKi8KLQlmb3IgKGkgPSAwOyBpIDwgMiAqIG9sZF9ucjsgaSsrKQotCQljaGFuZ2VfcG9pbnRbaV0gPSAmY2hhbmdlX3BvaW50X2xpc3RbaV07Ci0KLQkvKiByZWNvcmQgYWxsIGtub3duIGNoYW5nZS1wb2ludHMgKHN0YXJ0aW5nIGFuZCBlbmRpbmcgYWRkcmVzc2VzKSwKLQkgICBvbWl0dGluZyB0aG9zZSB0aGF0IGFyZSBmb3IgZW1wdHkgbWVtb3J5IHJlZ2lvbnMgKi8KLQljaGdpZHggPSAwOwotCWZvciAoaSA9IDA7IGkgPCBvbGRfbnI7IGkrKykJewotCQlpZiAoYmlvc21hcFtpXS5zaXplICE9IDApIHsKLQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyID0gYmlvc21hcFtpXS5hZGRyOwotCQkJY2hhbmdlX3BvaW50W2NoZ2lkeCsrXS0+cGJpb3MgPSAmYmlvc21hcFtpXTsKLQkJCWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyID0gYmlvc21hcFtpXS5hZGRyICsKLQkJCQliaW9zbWFwW2ldLnNpemU7Ci0JCQljaGFuZ2VfcG9pbnRbY2hnaWR4KytdLT5wYmlvcyA9ICZiaW9zbWFwW2ldOwotCQl9Ci0JfQotCWNoZ19uciA9IGNoZ2lkeDsKLQotCS8qIHNvcnQgY2hhbmdlLXBvaW50IGxpc3QgYnkgbWVtb3J5IGFkZHJlc3NlcyAobG93IC0+IGhpZ2gpICovCi0Jc3RpbGxfY2hhbmdpbmcgPSAxOwotCXdoaWxlIChzdGlsbF9jaGFuZ2luZykJewotCQlzdGlsbF9jaGFuZ2luZyA9IDA7Ci0JCWZvciAoaSA9IDE7IGkgPCBjaGdfbnI7IGkrKykgIHsKLQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBjdXJhZGRyLCBsYXN0YWRkcjsKLQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBjdXJwYmFkZHIsIGxhc3RwYmFkZHI7Ci0KLQkJCWN1cmFkZHIgPSBjaGFuZ2VfcG9pbnRbaV0tPmFkZHI7Ci0JCQlsYXN0YWRkciA9IGNoYW5nZV9wb2ludFtpIC0gMV0tPmFkZHI7Ci0JCQljdXJwYmFkZHIgPSBjaGFuZ2VfcG9pbnRbaV0tPnBiaW9zLT5hZGRyOwotCQkJbGFzdHBiYWRkciA9IGNoYW5nZV9wb2ludFtpIC0gMV0tPnBiaW9zLT5hZGRyOwotCi0JCQkvKgotCQkJICogc3dhcCBlbnRyaWVzLCB3aGVuOgotCQkJICoKLQkJCSAqIGN1cmFkZHIgPiBsYXN0YWRkciBvcgotCQkJICogY3VyYWRkciA9PSBsYXN0YWRkciBhbmQgY3VyYWRkciA9PSBjdXJwYmFkZHIgYW5kCi0JCQkgKiBsYXN0YWRkciAhPSBsYXN0cGJhZGRyCi0JCQkgKi8KLQkJCWlmIChjdXJhZGRyIDwgbGFzdGFkZHIgfHwKLQkJCSAgICAoY3VyYWRkciA9PSBsYXN0YWRkciAmJiBjdXJhZGRyID09IGN1cnBiYWRkciAmJgotCQkJICAgICBsYXN0YWRkciAhPSBsYXN0cGJhZGRyKSkgewotCQkJCWNoYW5nZV90bXAgPSBjaGFuZ2VfcG9pbnRbaV07Ci0JCQkJY2hhbmdlX3BvaW50W2ldID0gY2hhbmdlX3BvaW50W2ktMV07Ci0JCQkJY2hhbmdlX3BvaW50W2ktMV0gPSBjaGFuZ2VfdG1wOwotCQkJCXN0aWxsX2NoYW5naW5nID0gMTsKLQkJCX0KLQkJfQotCX0KLQotCS8qIGNyZWF0ZSBhIG5ldyBiaW9zIG1lbW9yeSBtYXAsIHJlbW92aW5nIG92ZXJsYXBzICovCi0Jb3ZlcmxhcF9lbnRyaWVzID0gMDsJIC8qIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBvdmVybGFwIHRhYmxlICovCi0JbmV3X2Jpb3NfZW50cnkgPSAwOwkgLyogaW5kZXggZm9yIGNyZWF0aW5nIG5ldyBiaW9zIG1hcCBlbnRyaWVzICovCi0JbGFzdF90eXBlID0gMDsJCSAvKiBzdGFydCB3aXRoIHVuZGVmaW5lZCBtZW1vcnkgdHlwZSAqLwotCWxhc3RfYWRkciA9IDA7CQkgLyogc3RhcnQgd2l0aCAwIGFzIGxhc3Qgc3RhcnRpbmcgYWRkcmVzcyAqLwotCi0JLyogbG9vcCB0aHJvdWdoIGNoYW5nZS1wb2ludHMsIGRldGVybWluaW5nIGFmZmVjdCBvbiB0aGUgbmV3IGJpb3MgbWFwICovCi0JZm9yIChjaGdpZHggPSAwOyBjaGdpZHggPCBjaGdfbnI7IGNoZ2lkeCsrKSB7Ci0JCS8qIGtlZXAgdHJhY2sgb2YgYWxsIG92ZXJsYXBwaW5nIGJpb3MgZW50cmllcyAqLwotCQlpZiAoY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgPT0KLQkJICAgIGNoYW5nZV9wb2ludFtjaGdpZHhdLT5wYmlvcy0+YWRkcikgewotCQkJLyoKLQkJCSAqIGFkZCBtYXAgZW50cnkgdG8gb3ZlcmxhcCBsaXN0ICg+IDEgZW50cnkKLQkJCSAqIGltcGxpZXMgYW4gb3ZlcmxhcCkKLQkJCSAqLwotCQkJb3ZlcmxhcF9saXN0W292ZXJsYXBfZW50cmllcysrXSA9Ci0JCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPnBiaW9zOwotCQl9IGVsc2UgewotCQkJLyoKLQkJCSAqIHJlbW92ZSBlbnRyeSBmcm9tIGxpc3QgKG9yZGVyIGluZGVwZW5kZW50LAotCQkJICogc28gc3dhcCB3aXRoIGxhc3QpCi0JCQkgKi8KLQkJCWZvciAoaSA9IDA7IGkgPCBvdmVybGFwX2VudHJpZXM7IGkrKykgewotCQkJCWlmIChvdmVybGFwX2xpc3RbaV0gPT0KLQkJCQkgICAgY2hhbmdlX3BvaW50W2NoZ2lkeF0tPnBiaW9zKQotCQkJCQlvdmVybGFwX2xpc3RbaV0gPQotCQkJCQkJb3ZlcmxhcF9saXN0W292ZXJsYXBfZW50cmllcy0xXTsKLQkJCX0KLQkJCW92ZXJsYXBfZW50cmllcy0tOwotCQl9Ci0JCS8qCi0JCSAqIGlmIHRoZXJlIGFyZSBvdmVybGFwcGluZyBlbnRyaWVzLCBkZWNpZGUgd2hpY2gKLQkJICogInR5cGUiIHRvIHVzZSAobGFyZ2VyIHZhbHVlIHRha2VzIHByZWNlZGVuY2UgLS0KLQkJICogMT11c2FibGUsIDIsMyw0LDQrPXVudXNhYmxlKQotCQkgKi8KLQkJY3VycmVudF90eXBlID0gMDsKLQkJZm9yIChpID0gMDsgaSA8IG92ZXJsYXBfZW50cmllczsgaSsrKQotCQkJaWYgKG92ZXJsYXBfbGlzdFtpXS0+dHlwZSA+IGN1cnJlbnRfdHlwZSkKLQkJCQljdXJyZW50X3R5cGUgPSBvdmVybGFwX2xpc3RbaV0tPnR5cGU7Ci0JCS8qCi0JCSAqIGNvbnRpbnVlIGJ1aWxkaW5nIHVwIG5ldyBiaW9zIG1hcCBiYXNlZCBvbiB0aGlzCi0JCSAqIGluZm9ybWF0aW9uCi0JCSAqLwotCQlpZiAoY3VycmVudF90eXBlICE9IGxhc3RfdHlwZSkJewotCQkJaWYgKGxhc3RfdHlwZSAhPSAwKQkgewotCQkJCW5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5zaXplID0KLQkJCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgLSBsYXN0X2FkZHI7Ci0JCQkJLyoKLQkJCQkgKiBtb3ZlIGZvcndhcmQgb25seSBpZiB0aGUgbmV3IHNpemUKLQkJCQkgKiB3YXMgbm9uLXplcm8KLQkJCQkgKi8KLQkJCQlpZiAobmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLnNpemUgIT0gMCkKLQkJCQkJLyoKLQkJCQkJICogbm8gbW9yZSBzcGFjZSBsZWZ0IGZvciBuZXcKLQkJCQkJICogYmlvcyBlbnRyaWVzID8KLQkJCQkJICovCi0JCQkJCWlmICgrK25ld19iaW9zX2VudHJ5ID49IEU4MjBNQVgpCi0JCQkJCQlicmVhazsKLQkJCX0KLQkJCWlmIChjdXJyZW50X3R5cGUgIT0gMCkJewotCQkJCW5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5hZGRyID0KLQkJCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHI7Ci0JCQkJbmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLnR5cGUgPSBjdXJyZW50X3R5cGU7Ci0JCQkJbGFzdF9hZGRyID0gY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHI7Ci0JCQl9Ci0JCQlsYXN0X3R5cGUgPSBjdXJyZW50X3R5cGU7Ci0JCX0KLQl9Ci0JLyogcmV0YWluIGNvdW50IGZvciBuZXcgYmlvcyBlbnRyaWVzICovCi0JbmV3X25yID0gbmV3X2Jpb3NfZW50cnk7Ci0KLQkvKiBjb3B5IG5ldyBiaW9zIG1hcHBpbmcgaW50byBvcmlnaW5hbCBsb2NhdGlvbiAqLwotCW1lbWNweShiaW9zbWFwLCBuZXdfYmlvcywgbmV3X25yICogc2l6ZW9mKHN0cnVjdCBlODIwZW50cnkpKTsKLQkqcG5yX21hcCA9IG5ld19ucjsKLQotCXJldHVybiAwOwotfQotCi0vKgotICogQ29weSB0aGUgQklPUyBlODIwIG1hcCBpbnRvIGEgc2FmZSBwbGFjZS4KLSAqCi0gKiBTYW5pdHktY2hlY2sgaXQgd2hpbGUgd2UncmUgYXQgaXQuLgotICoKLSAqIElmIHdlJ3JlIGx1Y2t5IGFuZCBsaXZlIG9uIGEgbW9kZXJuIHN5c3RlbSwgdGhlIHNldHVwIGNvZGUKLSAqIHdpbGwgaGF2ZSBnaXZlbiB1cyBhIG1lbW9yeSBtYXAgdGhhdCB3ZSBjYW4gdXNlIHRvIHByb3Blcmx5Ci0gKiBzZXQgdXAgbWVtb3J5LiAgSWYgd2UgYXJlbid0LCB3ZSdsbCBmYWtlIGEgbWVtb3J5IG1hcC4KLSAqLwotc3RhdGljIGludCBfX2luaXQgY29weV9lODIwX21hcChzdHJ1Y3QgZTgyMGVudHJ5ICpiaW9zbWFwLCBpbnQgbnJfbWFwKQotewotCS8qIE9ubHkgb25lIG1lbW9yeSByZWdpb24gKG9yIG5lZ2F0aXZlKT8gSWdub3JlIGl0ICovCi0JaWYgKG5yX21hcCA8IDIpCi0JCXJldHVybiAtMTsKLQotCWRvIHsKLQkJdTY0IHN0YXJ0ID0gYmlvc21hcC0+YWRkcjsKLQkJdTY0IHNpemUgPSBiaW9zbWFwLT5zaXplOwotCQl1NjQgZW5kID0gc3RhcnQgKyBzaXplOwotCQl1MzIgdHlwZSA9IGJpb3NtYXAtPnR5cGU7Ci0KLQkJLyogT3ZlcmZsb3cgaW4gNjQgYml0cz8gSWdub3JlIHRoZSBtZW1vcnkgbWFwLiAqLwotCQlpZiAoc3RhcnQgPiBlbmQpCi0JCQlyZXR1cm4gLTE7Ci0KLQkJYWRkX21lbW9yeV9yZWdpb24oc3RhcnQsIHNpemUsIHR5cGUpOwotCX0gd2hpbGUgKGJpb3NtYXArKywgLS1ucl9tYXApOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBlYXJseV9wYW5pYyhjaGFyICptc2cpCi17Ci0JZWFybHlfcHJpbnRrKG1zZyk7Ci0JcGFuaWMobXNnKTsKLX0KLQotLyogV2UncmUgbm90IHZvaWQgb25seSBmb3IgeDg2IDMyLWJpdCBjb21wYXQgKi8KLWNoYXIgKiBfX2luaXQgbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCkKLXsKLQljaGFyICp3aG8gPSAiQklPUy1lODIwIjsKLQkvKgotCSAqIFRyeSB0byBjb3B5IHRoZSBCSU9TLXN1cHBsaWVkIEU4MjAtbWFwLgotCSAqCi0JICogT3RoZXJ3aXNlIGZha2UgYSBtZW1vcnkgbWFwOyBvbmUgc2VjdGlvbiBmcm9tIDBrLT42NDBrLAotCSAqIHRoZSBuZXh0IHNlY3Rpb24gZnJvbSAxbWItPmFwcHJvcHJpYXRlX21lbV9rCi0JICovCi0Jc2FuaXRpemVfZTgyMF9tYXAoYm9vdF9wYXJhbXMuZTgyMF9tYXAsICZib290X3BhcmFtcy5lODIwX2VudHJpZXMpOwotCWlmIChjb3B5X2U4MjBfbWFwKGJvb3RfcGFyYW1zLmU4MjBfbWFwLCBib290X3BhcmFtcy5lODIwX2VudHJpZXMpIDwgMCkKLQkJZWFybHlfcGFuaWMoIkNhbm5vdCBmaW5kIGEgdmFsaWQgbWVtb3J5IG1hcCIpOwotCXByaW50ayhLRVJOX0lORk8gIkJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOwotCWU4MjBfcHJpbnRfbWFwKHdobyk7Ci0KLQkvKiBJbiBjYXNlIHNvbWVvbmUgY2FyZXMuLi4gKi8KLQlyZXR1cm4gd2hvOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tZW1vcHQoY2hhciAqcCkKLXsKLQlpZiAoIXApCi0JCXJldHVybiAtRUlOVkFMOwotCWVuZF91c2VyX3BmbiA9IG1lbXBhcnNlKHAsICZwKTsKLQllbmRfdXNlcl9wZm4gPj49IFBBR0VfU0hJRlQ7Ci0JcmV0dXJuIDA7Ci19Ci1lYXJseV9wYXJhbSgibWVtIiwgcGFyc2VfbWVtb3B0KTsKLQotc3RhdGljIGludCB1c2VyZGVmIF9faW5pdGRhdGE7Ci0KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX21lbW1hcF9vcHQoY2hhciAqcCkKLXsKLQljaGFyICpvbGRwOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydF9hdCwgbWVtX3NpemU7Ci0KLQlpZiAoIXN0cmNtcChwLCAiZXhhY3RtYXAiKSkgewotI2lmZGVmIENPTkZJR19DUkFTSF9EVU1QCi0JCS8qCi0JCSAqIElmIHdlIGFyZSBkb2luZyBhIGNyYXNoIGR1bXAsIHdlIHN0aWxsIG5lZWQgdG8ga25vdwotCQkgKiB0aGUgcmVhbCBtZW0gc2l6ZSBiZWZvcmUgb3JpZ2luYWwgbWVtb3J5IG1hcCBpcwotCQkgKiByZXNldC4KLQkJICovCi0JCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgLTFVTCk7Ci0JCXNhdmVkX21heF9wZm4gPSBlODIwX2VuZF9vZl9yYW0oKTsKLQkJcmVtb3ZlX2FsbF9hY3RpdmVfcmFuZ2VzKCk7Ci0jZW5kaWYKLQkJbWF4X3Bmbl9tYXBwZWQgPSAwOwotCQllODIwLm5yX21hcCA9IDA7Ci0JCXVzZXJkZWYgPSAxOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlvbGRwID0gcDsKLQltZW1fc2l6ZSA9IG1lbXBhcnNlKHAsICZwKTsKLQlpZiAocCA9PSBvbGRwKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXVzZXJkZWYgPSAxOwotCWlmICgqcCA9PSAnQCcpIHsKLQkJc3RhcnRfYXQgPSBtZW1wYXJzZShwKzEsICZwKTsKLQkJYWRkX21lbW9yeV9yZWdpb24oc3RhcnRfYXQsIG1lbV9zaXplLCBFODIwX1JBTSk7Ci0JfSBlbHNlIGlmICgqcCA9PSAnIycpIHsKLQkJc3RhcnRfYXQgPSBtZW1wYXJzZShwKzEsICZwKTsKLQkJYWRkX21lbW9yeV9yZWdpb24oc3RhcnRfYXQsIG1lbV9zaXplLCBFODIwX0FDUEkpOwotCX0gZWxzZSBpZiAoKnAgPT0gJyQnKSB7Ci0JCXN0YXJ0X2F0ID0gbWVtcGFyc2UocCsxLCAmcCk7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKHN0YXJ0X2F0LCBtZW1fc2l6ZSwgRTgyMF9SRVNFUlZFRCk7Ci0JfSBlbHNlIHsKLQkJZW5kX3VzZXJfcGZuID0gKG1lbV9zaXplID4+IFBBR0VfU0hJRlQpOwotCX0KLQlyZXR1cm4gKnAgPT0gJ1wwJyA/IDAgOiAtRUlOVkFMOwotfQotZWFybHlfcGFyYW0oIm1lbW1hcCIsIHBhcnNlX21lbW1hcF9vcHQpOwotCi12b2lkIF9faW5pdCBmaW5pc2hfZTgyMF9wYXJzaW5nKHZvaWQpCi17Ci0JaWYgKHVzZXJkZWYpIHsKLQkJY2hhciBuciA9IGU4MjAubnJfbWFwOwotCi0JCWlmIChzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgJm5yKSA8IDApCi0JCQllYXJseV9wYW5pYygiSW52YWxpZCB1c2VyIHN1cHBsaWVkIG1lbW9yeSBtYXAiKTsKLQkJZTgyMC5ucl9tYXAgPSBucjsKLQotCQlwcmludGsoS0VSTl9JTkZPICJ1c2VyLWRlZmluZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOwotCQllODIwX3ByaW50X21hcCgidXNlciIpOwotCX0KLX0KLQotdm9pZCBfX2luaXQgdXBkYXRlX21lbW9yeV9yYW5nZSh1NjQgc3RhcnQsIHU2NCBzaXplLCB1bnNpZ25lZCBvbGRfdHlwZSwKLQkJCQl1bnNpZ25lZCBuZXdfdHlwZSkKLXsKLQlpbnQgaTsKLQotCUJVR19PTihvbGRfdHlwZSA9PSBuZXdfdHlwZSk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQkJdTY0IGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQ7Ci0JCWlmIChlaS0+dHlwZSAhPSBvbGRfdHlwZSkKLQkJCWNvbnRpbnVlOwotCQkvKiB0b3RhbGx5IGNvdmVyZWQ/ICovCi0JCWlmIChlaS0+YWRkciA+PSBzdGFydCAmJiBlaS0+c2l6ZSA8PSBzaXplKSB7Ci0JCQllaS0+dHlwZSA9IG5ld190eXBlOwotCQkJY29udGludWU7Ci0JCX0KLQkJLyogcGFydGlhbGx5IGNvdmVyZWQgKi8KLQkJZmluYWxfc3RhcnQgPSBtYXgoc3RhcnQsIGVpLT5hZGRyKTsKLQkJZmluYWxfZW5kID0gbWluKHN0YXJ0ICsgc2l6ZSwgZWktPmFkZHIgKyBlaS0+c2l6ZSk7Ci0JCWlmIChmaW5hbF9zdGFydCA+PSBmaW5hbF9lbmQpCi0JCQljb250aW51ZTsKLQkJYWRkX21lbW9yeV9yZWdpb24oZmluYWxfc3RhcnQsIGZpbmFsX2VuZCAtIGZpbmFsX3N0YXJ0LAotCQkJCQkgbmV3X3R5cGUpOwotCX0KLX0KLQotdm9pZCBfX2luaXQgdXBkYXRlX2U4MjAodm9pZCkKLXsKLQl1OCBucl9tYXA7Ci0KLQlucl9tYXAgPSBlODIwLm5yX21hcDsKLQlpZiAoc2FuaXRpemVfZTgyMF9tYXAoZTgyMC5tYXAsICZucl9tYXApKQotCQlyZXR1cm47Ci0JZTgyMC5ucl9tYXAgPSBucl9tYXA7Ci0JcHJpbnRrKEtFUk5fSU5GTyAibW9kaWZpZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOwotCWU4MjBfcHJpbnRfbWFwKCJtb2RpZmllZCIpOwotfQotCi11bnNpZ25lZCBsb25nIHBjaV9tZW1fc3RhcnQgPSAweGFlZWRiYWJlOwotRVhQT1JUX1NZTUJPTChwY2lfbWVtX3N0YXJ0KTsKLQotLyoKLSAqIFNlYXJjaCBmb3IgdGhlIGJpZ2dlc3QgZ2FwIGluIHRoZSBsb3cgMzIgYml0cyBvZiB0aGUgZTgyMAotICogbWVtb3J5IHNwYWNlLiAgV2UgcGFzcyB0aGlzIHNwYWNlIHRvIFBDSSB0byBhc3NpZ24gTU1JTyByZXNvdXJjZXMKLSAqIGZvciBob3RwbHVnIG9yIHVuY29uZmlndXJlZCBkZXZpY2VzIGluLgotICogSG9wZWZ1bGx5IHRoZSBCSU9TIGxldCBlbm91Z2ggc3BhY2UgbGVmdC4KLSAqLwotX19pbml0IHZvaWQgZTgyMF9zZXR1cF9nYXAodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGdhcHN0YXJ0LCBnYXBzaXplLCByb3VuZDsKLQl1bnNpZ25lZCBsb25nIGxhc3Q7Ci0JaW50IGk7Ci0JaW50IGZvdW5kID0gMDsKLQotCWxhc3QgPSAweDEwMDAwMDAwMHVsbDsKLQlnYXBzdGFydCA9IDB4MTAwMDAwMDA7Ci0JZ2Fwc2l6ZSA9IDB4NDAwMDAwOwotCWkgPSBlODIwLm5yX21hcDsKLQl3aGlsZSAoLS1pID49IDApIHsKLQkJdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0ID0gZTgyMC5tYXBbaV0uYWRkcjsKLQkJdW5zaWduZWQgbG9uZyBsb25nIGVuZCA9IHN0YXJ0ICsgZTgyMC5tYXBbaV0uc2l6ZTsKLQotCQkvKgotCQkgKiBTaW5jZSAibGFzdCIgaXMgYXQgbW9zdCA0R0IsIHdlIGtub3cgd2UnbGwKLQkJICogZml0IGluIDMyIGJpdHMgaWYgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZQotCQkgKi8KLQkJaWYgKGxhc3QgPiBlbmQpIHsKLQkJCXVuc2lnbmVkIGxvbmcgZ2FwID0gbGFzdCAtIGVuZDsKLQotCQkJaWYgKGdhcCA+IGdhcHNpemUpIHsKLQkJCQlnYXBzaXplID0gZ2FwOwotCQkJCWdhcHN0YXJ0ID0gZW5kOwotCQkJCWZvdW5kID0gMTsKLQkJCX0KLQkJfQotCQlpZiAoc3RhcnQgPCBsYXN0KQotCQkJbGFzdCA9IHN0YXJ0OwotCX0KLQotCWlmICghZm91bmQpIHsKLQkJZ2Fwc3RhcnQgPSAoZW5kX3BmbiA8PCBQQUdFX1NISUZUKSArIDEwMjQqMTAyNDsKLQkJcHJpbnRrKEtFUk5fRVJSICJQQ0k6IFdhcm5pbmc6IENhbm5vdCBmaW5kIGEgZ2FwIGluIHRoZSAzMmJpdCAiCi0JCSAgICAgICAiYWRkcmVzcyByYW5nZVxuIgotCQkgICAgICAgS0VSTl9FUlIgIlBDSTogVW5hc3NpZ25lZCBkZXZpY2VzIHdpdGggMzJiaXQgcmVzb3VyY2UgIgotCQkgICAgICAgInJlZ2lzdGVycyBtYXkgYnJlYWshXG4iKTsKLQl9Ci0KLQkvKgotCSAqIFNlZSBob3cgbXVjaCB3ZSB3YW50IHRvIHJvdW5kIHVwOiBzdGFydCBvZmYgd2l0aAotCSAqIHJvdW5kaW5nIHRvIHRoZSBuZXh0IDFNQiBhcmVhLgotCSAqLwotCXJvdW5kID0gMHgxMDAwMDA7Ci0Jd2hpbGUgKChnYXBzaXplID4+IDQpID4gcm91bmQpCi0JCXJvdW5kICs9IHJvdW5kOwotCS8qIEZ1biB3aXRoIHR3bydzIGNvbXBsZW1lbnQgKi8KLQlwY2lfbWVtX3N0YXJ0ID0gKGdhcHN0YXJ0ICsgcm91bmQpICYgLXJvdW5kOwotCi0JcHJpbnRrKEtFUk5fSU5GTwotCSAgICAgICAiQWxsb2NhdGluZyBQQ0kgcmVzb3VyY2VzIHN0YXJ0aW5nIGF0ICVseCAoZ2FwOiAlbHg6JWx4KVxuIiwKLQkgICAgICAgcGNpX21lbV9zdGFydCwgZ2Fwc3RhcnQsIGdhcHNpemUpOwotfQotCi1pbnQgX19pbml0IGFyY2hfZ2V0X3JhbV9yYW5nZShpbnQgc2xvdCwgdTY0ICphZGRyLCB1NjQgKnNpemUpCi17Ci0JaW50IGk7Ci0KLQlpZiAoc2xvdCA8IDAgfHwgc2xvdCA+PSBlODIwLm5yX21hcCkKLQkJcmV0dXJuIC0xOwotCWZvciAoaSA9IHNsb3Q7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCWlmIChlODIwLm1hcFtpXS50eXBlICE9IEU4MjBfUkFNKQotCQkJY29udGludWU7Ci0JCWJyZWFrOwotCX0KLQlpZiAoaSA9PSBlODIwLm5yX21hcCB8fCBlODIwLm1hcFtpXS5hZGRyID4gKG1heF9wZm4gPDwgUEFHRV9TSElGVCkpCi0JCXJldHVybiAtMTsKLQkqYWRkciA9IGU4MjAubWFwW2ldLmFkZHI7Ci0JKnNpemUgPSBtaW5fdCh1NjQsIGU4MjAubWFwW2ldLnNpemUgKyBlODIwLm1hcFtpXS5hZGRyLAotCQltYXhfcGZuIDw8IFBBR0VfU0hJRlQpIC0gKmFkZHI7Ci0JcmV0dXJuIGkgKyAxOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jIGIvYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jCmluZGV4IDlmNTFlMWUuLmE0NjY1ZjMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lYXJseS1xdWlya3MuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMKQEAgLTUwLDcgKzUwLDcgQEAKIHN0YXRpYyB2b2lkIF9faW5pdCB2aWFfYnVncyhpbnQgIG51bSwgaW50IHNsb3QsIGludCBmdW5jKQogewogI2lmZGVmIENPTkZJR19HQVJUX0lPTU1VCi0JaWYgKChlbmRfcGZuID4gTUFYX0RNQTMyX1BGTiB8fCAgZm9yY2VfaW9tbXUpICYmCisJaWYgKChtYXhfcGZuID4gTUFYX0RNQTMyX1BGTiB8fCAgZm9yY2VfaW9tbXUpICYmCiAJICAgICFnYXJ0X2lvbW11X2FwZXJ0dXJlX2FsbG93ZWQpIHsKIAkJcHJpbnRrKEtFUk5fSU5GTwogCQkgICAgICAgIkxvb2tzIGxpa2UgYSBWSUEgY2hpcHNldC4gRGlzYWJsaW5nIElPTU1VLiIKQEAgLTk4LDE3ICs5OCw2IEBACiAKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IGF0aV9idWdzKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKLXsKLSNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKLQlpZiAodGltZXJfb3Zlcl84MjU0ID09IDEpIHsKLQkJdGltZXJfb3Zlcl84MjU0ID0gMDsKLQkJcHJpbnRrKEtFUk5fSU5GTwotCQkiQVRJIGJvYXJkIGRldGVjdGVkLiBEaXNhYmxpbmcgdGltZXIgcm91dGluZyBvdmVyIDgyNTQuXG4iKTsKLQl9Ci0jZW5kaWYKLX0KLQogI2RlZmluZSBRRkxBR19BUFBMWV9PTkNFIAkweDEKICNkZWZpbmUgUUZMQUdfQVBQTElFRAkJMHgyCiAjZGVmaW5lIFFGTEFHX0RPTkUJCShRRkxBR19BUFBMWV9PTkNFfFFGTEFHX0FQUExJRUQpCkBAIC0xMjYsOCArMTE1LDYgQEAKIAkgIFBDSV9DTEFTU19CUklER0VfUENJLCBQQ0lfQU5ZX0lELCBRRkxBR19BUFBMWV9PTkNFLCBudmlkaWFfYnVncyB9LAogCXsgUENJX1ZFTkRPUl9JRF9WSUEsIFBDSV9BTllfSUQsCiAJICBQQ0lfQ0xBU1NfQlJJREdFX1BDSSwgUENJX0FOWV9JRCwgUUZMQUdfQVBQTFlfT05DRSwgdmlhX2J1Z3MgfSwKLQl7IFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfQU5ZX0lELAotCSAgUENJX0NMQVNTX0JSSURHRV9QQ0ksIFBDSV9BTllfSUQsIFFGTEFHX0FQUExZX09OQ0UsIGF0aV9idWdzIH0sCiAJeyBQQ0lfVkVORE9SX0lEX0FNRCwgUENJX0RFVklDRV9JRF9BTURfSzhfTkIsCiAJICBQQ0lfQ0xBU1NfQlJJREdFX0hPU1QsIFBDSV9BTllfSUQsIDAsIGZpeF9oeXBlcnRyYW5zcG9ydF9jb25maWcgfSwKIAl7fQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2Vhcmx5X3ByaW50ay5jIGIvYXJjaC94ODYva2VybmVsL2Vhcmx5X3ByaW50ay5jCmluZGV4IDY0M2ZkODYuLmZmOWU3MzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lYXJseV9wcmludGsuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZWFybHlfcHJpbnRrLmMKQEAgLTE5Niw3ICsxOTYsNyBAQAogc3RhdGljIHN0cnVjdCBjb25zb2xlICplYXJseV9jb25zb2xlID0gJmVhcmx5X3ZnYV9jb25zb2xlOwogc3RhdGljIGludCBlYXJseV9jb25zb2xlX2luaXRpYWxpemVkOwogCi12b2lkIGVhcmx5X3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLikKK2FzbWxpbmthZ2Ugdm9pZCBlYXJseV9wcmludGsoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJY2hhciBidWZbNTEyXTsKIAlpbnQgbjsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lZmkuYyBiL2FyY2gveDg2L2tlcm5lbC9lZmkuYwppbmRleCA3N2Q0MjRjLi4wNmNjOGQ0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZWZpLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2VmaS5jCkBAIC02NCw2ICs2NCwxNyBAQAogfQogZWFybHlfcGFyYW0oIm5vZWZpIiwgc2V0dXBfbm9lZmkpOwogCitpbnQgYWRkX2VmaV9tZW1tYXA7CitFWFBPUlRfU1lNQk9MKGFkZF9lZmlfbWVtbWFwKTsKKworc3RhdGljIGludCBfX2luaXQgc2V0dXBfYWRkX2VmaV9tZW1tYXAoY2hhciAqYXJnKQoreworCWFkZF9lZmlfbWVtbWFwID0gMTsKKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJhZGRfZWZpX21lbW1hcCIsIHNldHVwX2FkZF9lZmlfbWVtbWFwKTsKKworCiBzdGF0aWMgZWZpX3N0YXR1c190IHZpcnRfZWZpX2dldF90aW1lKGVmaV90aW1lX3QgKnRtLCBlZmlfdGltZV9jYXBfdCAqdGMpCiB7CiAJcmV0dXJuIGVmaV9jYWxsX3ZpcnQyKGdldF90aW1lLCB0bSwgdGMpOwpAQCAtMjEzLDYgKzIyNCw1MCBAQAogCQkgICAgICBlZnQubWludXRlLCBlZnQuc2Vjb25kKTsKIH0KIAorLyoKKyAqIFRlbGwgdGhlIGtlcm5lbCBhYm91dCB0aGUgRUZJIG1lbW9yeSBtYXAuICBUaGlzIG1pZ2h0IGluY2x1ZGUKKyAqIG1vcmUgdGhhbiB0aGUgbWF4IDEyOCBlbnRyaWVzIHRoYXQgY2FuIGZpdCBpbiB0aGUgZTgyMCBsZWdhY3kKKyAqICh6ZXJvcGFnZSkgbWVtb3J5IG1hcC4KKyAqLworCitzdGF0aWMgdm9pZCBfX2luaXQgZG9fYWRkX2VmaV9tZW1tYXAodm9pZCkKK3sKKwl2b2lkICpwOworCisJZm9yIChwID0gbWVtbWFwLm1hcDsgcCA8IG1lbW1hcC5tYXBfZW5kOyBwICs9IG1lbW1hcC5kZXNjX3NpemUpIHsKKwkJZWZpX21lbW9yeV9kZXNjX3QgKm1kID0gcDsKKwkJdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0ID0gbWQtPnBoeXNfYWRkcjsKKwkJdW5zaWduZWQgbG9uZyBsb25nIHNpemUgPSBtZC0+bnVtX3BhZ2VzIDw8IEVGSV9QQUdFX1NISUZUOworCQlpbnQgZTgyMF90eXBlOworCisJCWlmIChtZC0+YXR0cmlidXRlICYgRUZJX01FTU9SWV9XQikKKwkJCWU4MjBfdHlwZSA9IEU4MjBfUkFNOworCQllbHNlCisJCQllODIwX3R5cGUgPSBFODIwX1JFU0VSVkVEOworCQllODIwX2FkZF9yZWdpb24oc3RhcnQsIHNpemUsIGU4MjBfdHlwZSk7CisJfQorCXNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCBBUlJBWV9TSVpFKGU4MjAubWFwKSwgJmU4MjAubnJfbWFwKTsKK30KKwordm9pZCBfX2luaXQgZWZpX3Jlc2VydmVfZWFybHkodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIHBtYXA7CisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJcG1hcCA9IGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1tYXA7CisjZWxzZQorCXBtYXAgPSAoYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbW1hcCB8CisJCSgoX191NjQpYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbW1hcF9oaTw8MzIpKTsKKyNlbmRpZgorCW1lbW1hcC5waHlzX21hcCA9ICh2b2lkICopcG1hcDsKKwltZW1tYXAubnJfbWFwID0gYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbW1hcF9zaXplIC8KKwkJYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbWRlc2Nfc2l6ZTsKKwltZW1tYXAuZGVzY192ZXJzaW9uID0gYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbWRlc2NfdmVyc2lvbjsKKwltZW1tYXAuZGVzY19zaXplID0gYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbWRlc2Nfc2l6ZTsKKwlyZXNlcnZlX2Vhcmx5KHBtYXAsIHBtYXAgKyBtZW1tYXAubnJfbWFwICogbWVtbWFwLmRlc2Nfc2l6ZSwKKwkJICAgICAgIkVGSSBtZW1tYXAiKTsKK30KKwogI2lmIEVGSV9ERUJVRwogc3RhdGljIHZvaWQgX19pbml0IHByaW50X2VmaV9tZW1tYXAodm9pZCkKIHsKQEAgLTI0NCwxOSArMjk5LDExIEBACiAKICNpZmRlZiBDT05GSUdfWDg2XzMyCiAJZWZpX3BoeXMuc3lzdGFiID0gKGVmaV9zeXN0ZW1fdGFibGVfdCAqKWJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9zeXN0YWI7Ci0JbWVtbWFwLnBoeXNfbWFwID0gKHZvaWQgKilib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtbWFwOwogI2Vsc2UKIAllZmlfcGh5cy5zeXN0YWIgPSAoZWZpX3N5c3RlbV90YWJsZV90ICopCiAJCShib290X3BhcmFtcy5lZmlfaW5mby5lZmlfc3lzdGFiIHwKIAkJICgoX191NjQpYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX3N5c3RhYl9oaTw8MzIpKTsKLQltZW1tYXAucGh5c19tYXAgPSAodm9pZCAqKQotCQkoYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbW1hcCB8Ci0JCSAoKF9fdTY0KWJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1tYXBfaGk8PDMyKSk7CiAjZW5kaWYKLQltZW1tYXAubnJfbWFwID0gYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbW1hcF9zaXplIC8KLQkJYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbWRlc2Nfc2l6ZTsKLQltZW1tYXAuZGVzY192ZXJzaW9uID0gYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbWRlc2NfdmVyc2lvbjsKLQltZW1tYXAuZGVzY19zaXplID0gYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbWRlc2Nfc2l6ZTsKIAogCWVmaS5zeXN0YWIgPSBlYXJseV9pb3JlbWFwKCh1bnNpZ25lZCBsb25nKWVmaV9waHlzLnN5c3RhYiwKIAkJCQkgICBzaXplb2YoZWZpX3N5c3RlbV90YWJsZV90KSk7CkBAIC0zNzAsNiArNDE3LDggQEAKIAlpZiAobWVtbWFwLmRlc2Nfc2l6ZSAhPSBzaXplb2YoZWZpX21lbW9yeV9kZXNjX3QpKQogCQlwcmludGsoS0VSTl9XQVJOSU5HICJLZXJuZWwtZGVmaW5lZCBtZW1kZXNjIgogCQkgICAgICAgImRvZXNuJ3QgbWF0Y2ggdGhlIG9uZSBmcm9tIEVGSSFcbiIpOworCWlmIChhZGRfZWZpX21lbW1hcCkKKwkJZG9fYWRkX2VmaV9tZW1tYXAoKTsKIAogCS8qIFNldHVwIGZvciBFRkkgcnVudGltZSBzZXJ2aWNlICovCiAJcmVib290X3R5cGUgPSBCT09UX0VGSTsKQEAgLTQyNCw3ICs0NzMsNyBAQAogCQlzaXplID0gbWQtPm51bV9wYWdlcyA8PCBFRklfUEFHRV9TSElGVDsKIAkJZW5kID0gbWQtPnBoeXNfYWRkciArIHNpemU7CiAKLQkJaWYgKFBGTl9VUChlbmQpIDw9IG1heF9wZm5fbWFwcGVkKQorCQlpZiAoUEZOX1VQKGVuZCkgPD0gbWF4X2xvd19wZm5fbWFwcGVkKQogCQkJdmEgPSBfX3ZhKG1kLT5waHlzX2FkZHIpOwogCQllbHNlCiAJCQl2YSA9IGVmaV9pb3JlbWFwKG1kLT5waHlzX2FkZHIsIHNpemUpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2VmaV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2VmaV8zMi5jCmluZGV4IDVkMjNkODUuLjRiNjNjOGUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lZmlfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZWZpXzMyLmMKQEAgLTQ5LDEzICs0OSwxMyBAQAogCWxvY2FsX2lycV9zYXZlKGVmaV9ydF9lZmxhZ3MpOwogCiAJLyoKLQkgKiBJZiBJIGRvbid0IGhhdmUgUFNFLCBJIHNob3VsZCBqdXN0IGR1cGxpY2F0ZSB0d28gZW50cmllcyBpbiBwYWdlCi0JICogZGlyZWN0b3J5LiBJZiBJIGhhdmUgUFNFLCBJIGp1c3QgbmVlZCB0byBkdXBsaWNhdGUgb25lIGVudHJ5IGluCisJICogSWYgSSBkb24ndCBoYXZlIFBBRSwgSSBzaG91bGQganVzdCBkdXBsaWNhdGUgdHdvIGVudHJpZXMgaW4gcGFnZQorCSAqIGRpcmVjdG9yeS4gSWYgSSBoYXZlIFBBRSwgSSBqdXN0IG5lZWQgdG8gZHVwbGljYXRlIG9uZSBlbnRyeSBpbgogCSAqIHBhZ2UgZGlyZWN0b3J5LgogCSAqLwogCWNyNCA9IHJlYWRfY3I0KCk7CiAKLQlpZiAoY3I0ICYgWDg2X0NSNF9QU0UpIHsKKwlpZiAoY3I0ICYgWDg2X0NSNF9QQUUpIHsKIAkJZWZpX2Jha19wZ19kaXJfcG9pbnRlclswXS5wZ2QgPQogCQkgICAgc3dhcHBlcl9wZ19kaXJbcGdkX2luZGV4KDApXS5wZ2Q7CiAJCXN3YXBwZXJfcGdfZGlyWzBdLnBnZCA9CkBAIC05Myw3ICs5Myw3IEBACiAKIAljcjQgPSByZWFkX2NyNCgpOwogCi0JaWYgKGNyNCAmIFg4Nl9DUjRfUFNFKSB7CisJaWYgKGNyNCAmIFg4Nl9DUjRfUEFFKSB7CiAJCXN3YXBwZXJfcGdfZGlyW3BnZF9pbmRleCgwKV0ucGdkID0KIAkJICAgIGVmaV9iYWtfcGdfZGlyX3BvaW50ZXJbMF0ucGdkOwogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZWZpXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvZWZpXzY0LmMKaW5kZXggZDAwNjBmZC4uNjUyYzUyOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2VmaV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lZmlfNjQuYwpAQCAtOTcsMTMgKzk3LDcgQEAKIAllYXJseV9ydW50aW1lX2NvZGVfbWFwcGluZ19zZXRfZXhlYygwKTsKIH0KIAotdm9pZCBfX2luaXQgZWZpX3Jlc2VydmVfYm9vdG1lbSh2b2lkKQotewotCXJlc2VydmVfYm9vdG1lbV9nZW5lcmljKCh1bnNpZ25lZCBsb25nKW1lbW1hcC5waHlzX21hcCwKLQkJCQltZW1tYXAubnJfbWFwICogbWVtbWFwLmRlc2Nfc2l6ZSk7Ci19Ci0KLXZvaWQgX19pb21lbSAqIF9faW5pdCBlZmlfaW9yZW1hcCh1bnNpZ25lZCBsb25nIHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQordm9pZCBfX2lvbWVtICpfX2luaXQgZWZpX2lvcmVtYXAodW5zaWduZWQgbG9uZyBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKIAlzdGF0aWMgdW5zaWduZWQgcGFnZXNfbWFwcGVkIF9faW5pdGRhdGE7CiAJdW5zaWduZWQgaSwgcGFnZXM7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfMzIuUyBiL2FyY2gveDg2L2tlcm5lbC9lbnRyeV8zMi5TCmluZGV4IGM3NzhlNGYuLjZiYzA3ZjAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lbnRyeV8zMi5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lbnRyeV8zMi5TCkBAIC01MSwxNCArNTEsMTUgQEAKICNpbmNsdWRlIDxhc20vcGVyY3B1Lmg+CiAjaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3ItZmxhZ3MuaD4KLSNpbmNsdWRlICJpcnFfdmVjdG9ycy5oIgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KKyNpbmNsdWRlIDxhc20vaXJxX3ZlY3RvcnMuaD4KIAogLyoKICAqIFdlIHVzZSBtYWNyb3MgZm9yIGxvdy1sZXZlbCBvcGVyYXRpb25zIHdoaWNoIG5lZWQgdG8gYmUgb3ZlcnJpZGRlbgogICogZm9yIHBhcmF2aXJ0dWFsaXphdGlvbi4gIFRoZSBmb2xsb3dpbmcgd2lsbCBuZXZlciBjbG9iYmVyIGFueSByZWdpc3RlcnM6CiAgKiAgIElOVEVSUlVQVF9SRVRVUk4gKGFrYS4gImlyZXQiKQogICogICBHRVRfQ1IwX0lOVE9fRUFYIChha2EuICJtb3ZsICVjcjAsICVlYXgiKQotICogICBFTkFCTEVfSU5URVJSVVBUU19TWVNDQUxMX1JFVCAoYWthICJzdGk7IHN5c2V4aXQiKS4KKyAqICAgRU5BQkxFX0lOVEVSUlVQVFNfU1lTRVhJVCAoYWthICJzdGk7IHN5c2V4aXQiKS4KICAqCiAgKiBGb3IgRElTQUJMRV9JTlRFUlJVUFRTL0VOQUJMRV9JTlRFUlJVUFRTIChha2EgImNsaSIvInN0aSIpLCB5b3UgbXVzdAogICogc3BlY2lmeSB3aGF0IHJlZ2lzdGVycyBjYW4gYmUgb3ZlcndyaXR0ZW4gKENMQlJfTk9ORSwgQ0xCUl9FQVgvRURYL0VDWC9BTlkpLgpAQCAtMzQ5LDcgKzM1MCw3IEBACiAJeG9ybCAlZWJwLCVlYnAKIAlUUkFDRV9JUlFTX09OCiAxOgltb3YgIFBUX0ZTKCVlc3ApLCAlZnMKLQlFTkFCTEVfSU5URVJSVVBUU19TWVNDQUxMX1JFVAorCUVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQKIAlDRklfRU5EUFJPQwogLnB1c2hzZWN0aW9uIC5maXh1cCwiYXgiCiAyOgltb3ZsICQwLFBUX0ZTKCVlc3ApCkBAIC04NzQsMTAgKzg3NSwxMCBAQAogLnByZXZpb3VzCiBFTkQobmF0aXZlX2lyZXQpCiAKLUVOVFJZKG5hdGl2ZV9pcnFfZW5hYmxlX3N5c2NhbGxfcmV0KQorRU5UUlkobmF0aXZlX2lycV9lbmFibGVfc3lzZXhpdCkKIAlzdGkKIAlzeXNleGl0Ci1FTkQobmF0aXZlX2lycV9lbmFibGVfc3lzY2FsbF9yZXQpCitFTkQobmF0aXZlX2lycV9lbmFibGVfc3lzZXhpdCkKICNlbmRpZgogCiBLUFJPQkVfRU5UUlkoaW50MykKQEAgLTEwMjQsNiArMTAyNSw3IEBACiAJUklORzBfSU5UX0ZSQU1FCiAJYWRkbCAkNSo0LCAlZXNwCQkvKiByZW1vdmUgeGVuLXByb3ZpZGVkIGZyYW1lICovCiAJam1wIHN5c2VudGVyX3Bhc3RfZXNwCisJQ0ZJX0VORFBST0MKIAogRU5UUlkoeGVuX2h5cGVydmlzb3JfY2FsbGJhY2spCiAJQ0ZJX1NUQVJUUFJPQwpAQCAtMTExMCw2ICsxMTEyLDc3IEBACiAKICNlbmRpZgkvKiBDT05GSUdfWEVOICovCiAKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisKK0VOVFJZKG1jb3VudCkKKwlwdXNobCAlZWF4CisJcHVzaGwgJWVjeAorCXB1c2hsICVlZHgKKwltb3ZsIDB4YyglZXNwKSwgJWVheAorCXN1YmwgJE1DT1VOVF9JTlNOX1NJWkUsICVlYXgKKworLmdsb2JsIG1jb3VudF9jYWxsCittY291bnRfY2FsbDoKKwljYWxsIGZ0cmFjZV9zdHViCisKKwlwb3BsICVlZHgKKwlwb3BsICVlY3gKKwlwb3BsICVlYXgKKworCXJldAorRU5EKG1jb3VudCkKKworRU5UUlkoZnRyYWNlX2NhbGxlcikKKwlwdXNobCAlZWF4CisJcHVzaGwgJWVjeAorCXB1c2hsICVlZHgKKwltb3ZsIDB4YyglZXNwKSwgJWVheAorCW1vdmwgMHg0KCVlYnApLCAlZWR4CisJc3VibCAkTUNPVU5UX0lOU05fU0laRSwgJWVheAorCisuZ2xvYmwgZnRyYWNlX2NhbGwKK2Z0cmFjZV9jYWxsOgorCWNhbGwgZnRyYWNlX3N0dWIKKworCXBvcGwgJWVkeAorCXBvcGwgJWVjeAorCXBvcGwgJWVheAorCisuZ2xvYmwgZnRyYWNlX3N0dWIKK2Z0cmFjZV9zdHViOgorCXJldAorRU5EKGZ0cmFjZV9jYWxsZXIpCisKKyNlbHNlIC8qICEgQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisKK0VOVFJZKG1jb3VudCkKKwljbXBsICRmdHJhY2Vfc3R1YiwgZnRyYWNlX3RyYWNlX2Z1bmN0aW9uCisJam56IHRyYWNlCisuZ2xvYmwgZnRyYWNlX3N0dWIKK2Z0cmFjZV9zdHViOgorCXJldAorCisJLyogdGFrZW4gZnJvbSBnbGliYyAqLwordHJhY2U6CisJcHVzaGwgJWVheAorCXB1c2hsICVlY3gKKwlwdXNobCAlZWR4CisJbW92bCAweGMoJWVzcCksICVlYXgKKwltb3ZsIDB4NCglZWJwKSwgJWVkeAorCXN1YmwgJE1DT1VOVF9JTlNOX1NJWkUsICVlYXgKKworCWNhbGwgKmZ0cmFjZV90cmFjZV9mdW5jdGlvbgorCisJcG9wbCAlZWR4CisJcG9wbCAlZWN4CisJcG9wbCAlZWF4CisKKwlqbXAgZnRyYWNlX3N0dWIKK0VORChtY291bnQpCisjZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCiAuc2VjdGlvbiAucm9kYXRhLCJhIgogI2luY2x1ZGUgInN5c2NhbGxfdGFibGVfMzIuUyIKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfNjQuUwppbmRleCA2ZDFmZTI3Li5hZTYzZTU4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfNjQuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfNjQuUwpAQCAtNTEsMTYgKzUxLDEyMSBAQAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2lycWZsYWdzLmg+CiAjaW5jbHVkZSA8YXNtL3BhcmF2aXJ0Lmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgogCiAJLmNvZGU2NAogCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorRU5UUlkobWNvdW50KQorCisJc3VicSAkMHgzOCwgJXJzcAorCW1vdnEgJXJheCwgKCVyc3ApCisJbW92cSAlcmN4LCA4KCVyc3ApCisJbW92cSAlcmR4LCAxNiglcnNwKQorCW1vdnEgJXJzaSwgMjQoJXJzcCkKKwltb3ZxICVyZGksIDMyKCVyc3ApCisJbW92cSAlcjgsIDQwKCVyc3ApCisJbW92cSAlcjksIDQ4KCVyc3ApCisKKwltb3ZxIDB4MzgoJXJzcCksICVyZGkKKwlzdWJxICRNQ09VTlRfSU5TTl9TSVpFLCAlcmRpCisKKy5nbG9ibCBtY291bnRfY2FsbAorbWNvdW50X2NhbGw6CisJY2FsbCBmdHJhY2Vfc3R1YgorCisJbW92cSA0OCglcnNwKSwgJXI5CisJbW92cSA0MCglcnNwKSwgJXI4CisJbW92cSAzMiglcnNwKSwgJXJkaQorCW1vdnEgMjQoJXJzcCksICVyc2kKKwltb3ZxIDE2KCVyc3ApLCAlcmR4CisJbW92cSA4KCVyc3ApLCAlcmN4CisJbW92cSAoJXJzcCksICVyYXgKKwlhZGRxICQweDM4LCAlcnNwCisKKwlyZXRxCitFTkQobWNvdW50KQorCitFTlRSWShmdHJhY2VfY2FsbGVyKQorCisJLyogdGFrZW4gZnJvbSBnbGliYyAqLworCXN1YnEgJDB4MzgsICVyc3AKKwltb3ZxICVyYXgsICglcnNwKQorCW1vdnEgJXJjeCwgOCglcnNwKQorCW1vdnEgJXJkeCwgMTYoJXJzcCkKKwltb3ZxICVyc2ksIDI0KCVyc3ApCisJbW92cSAlcmRpLCAzMiglcnNwKQorCW1vdnEgJXI4LCA0MCglcnNwKQorCW1vdnEgJXI5LCA0OCglcnNwKQorCisJbW92cSAweDM4KCVyc3ApLCAlcmRpCisJbW92cSA4KCVyYnApLCAlcnNpCisJc3VicSAkTUNPVU5UX0lOU05fU0laRSwgJXJkaQorCisuZ2xvYmwgZnRyYWNlX2NhbGwKK2Z0cmFjZV9jYWxsOgorCWNhbGwgZnRyYWNlX3N0dWIKKworCW1vdnEgNDgoJXJzcCksICVyOQorCW1vdnEgNDAoJXJzcCksICVyOAorCW1vdnEgMzIoJXJzcCksICVyZGkKKwltb3ZxIDI0KCVyc3ApLCAlcnNpCisJbW92cSAxNiglcnNwKSwgJXJkeAorCW1vdnEgOCglcnNwKSwgJXJjeAorCW1vdnEgKCVyc3ApLCAlcmF4CisJYWRkcSAkMHgzOCwgJXJzcAorCisuZ2xvYmwgZnRyYWNlX3N0dWIKK2Z0cmFjZV9zdHViOgorCXJldHEKK0VORChmdHJhY2VfY2FsbGVyKQorCisjZWxzZSAvKiAhIENPTkZJR19EWU5BTUlDX0ZUUkFDRSAqLworRU5UUlkobWNvdW50KQorCWNtcHEgJGZ0cmFjZV9zdHViLCBmdHJhY2VfdHJhY2VfZnVuY3Rpb24KKwlqbnogdHJhY2UKKy5nbG9ibCBmdHJhY2Vfc3R1YgorZnRyYWNlX3N0dWI6CisJcmV0cQorCit0cmFjZToKKwkvKiB0YWtlbiBmcm9tIGdsaWJjICovCisJc3VicSAkMHgzOCwgJXJzcAorCW1vdnEgJXJheCwgKCVyc3ApCisJbW92cSAlcmN4LCA4KCVyc3ApCisJbW92cSAlcmR4LCAxNiglcnNwKQorCW1vdnEgJXJzaSwgMjQoJXJzcCkKKwltb3ZxICVyZGksIDMyKCVyc3ApCisJbW92cSAlcjgsIDQwKCVyc3ApCisJbW92cSAlcjksIDQ4KCVyc3ApCisKKwltb3ZxIDB4MzgoJXJzcCksICVyZGkKKwltb3ZxIDgoJXJicCksICVyc2kKKwlzdWJxICRNQ09VTlRfSU5TTl9TSVpFLCAlcmRpCisKKwljYWxsICAgKmZ0cmFjZV90cmFjZV9mdW5jdGlvbgorCisJbW92cSA0OCglcnNwKSwgJXI5CisJbW92cSA0MCglcnNwKSwgJXI4CisJbW92cSAzMiglcnNwKSwgJXJkaQorCW1vdnEgMjQoJXJzcCksICVyc2kKKwltb3ZxIDE2KCVyc3ApLCAlcmR4CisJbW92cSA4KCVyc3ApLCAlcmN4CisJbW92cSAoJXJzcCksICVyYXgKKwlhZGRxICQweDM4LCAlcnNwCisKKwlqbXAgZnRyYWNlX3N0dWIKK0VORChtY291bnQpCisjZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCiAjaWZuZGVmIENPTkZJR19QUkVFTVBUCiAjZGVmaW5lIHJldGludF9rZXJuZWwgcmV0aW50X3Jlc3RvcmVfYXJncwogI2VuZGlmCQogCiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUCi1FTlRSWShuYXRpdmVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCkKLQltb3ZxCSVnczpwZGFfb2xkcnNwLCVyc3AKK0VOVFJZKG5hdGl2ZV91c2VyZ3Nfc3lzcmV0NjQpCiAJc3dhcGdzCiAJc3lzcmV0cQogI2VuZGlmIC8qIENPTkZJR19QQVJBVklSVCAqLwpAQCAtMTA0LDcgKzIwOSw3IEBACiAJLm1hY3JvIEZBS0VfU1RBQ0tfRlJBTUUgY2hpbGRfcmlwCiAJLyogcHVzaCBpbiBvcmRlciBzcywgcnNwLCBlZmxhZ3MsIGNzLCByaXAgKi8KIAl4b3JsICVlYXgsICVlYXgKLQlwdXNocSAlcmF4IC8qIHNzICovCisJcHVzaHEgJF9fS0VSTkVMX0RTIC8qIHNzICovCiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUCTgKIAkvKkNGSV9SRUxfT0ZGU0VUCXNzLDAqLwogCXB1c2hxICVyYXggLyogcnNwICovCkBAIC0xNjksMTMgKzI3NCwxMyBAQAogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtNAogCWNhbGwgc2NoZWR1bGVfdGFpbAogCUdFVF9USFJFQURfSU5GTyglcmN4KQotCXRlc3RsICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVCksdGhyZWFkaW5mb19mbGFncyglcmN4KQorCXRlc3RsICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVCksVElfZmxhZ3MoJXJjeCkKIAlqbnogcmZmX3RyYWNlCiByZmZfYWN0aW9uOgkKIAlSRVNUT1JFX1JFU1QKIAl0ZXN0bCAkMyxDUy1BUkdPRkZTRVQoJXJzcCkJIyBmcm9tIGtlcm5lbF90aHJlYWQ/CiAJamUgICBpbnRfcmV0X2Zyb21fc3lzX2NhbGwKLQl0ZXN0bCAkX1RJRl9JQTMyLHRocmVhZGluZm9fZmxhZ3MoJXJjeCkKKwl0ZXN0bCAkX1RJRl9JQTMyLFRJX2ZsYWdzKCVyY3gpCiAJam56ICBpbnRfcmV0X2Zyb21fc3lzX2NhbGwKIAlSRVNUT1JFX1RPUF9PRl9TVEFDSyAlcmRpLEFSR09GRlNFVAogCWptcCByZXRfZnJvbV9zeXNfY2FsbApAQCAtMjQ0LDcgKzM0OSw4IEBACiAJbW92cSAgJXJjeCxSSVAtQVJHT0ZGU0VUKCVyc3ApCiAJQ0ZJX1JFTF9PRkZTRVQgcmlwLFJJUC1BUkdPRkZTRVQKIAlHRVRfVEhSRUFEX0lORk8oJXJjeCkKLQl0ZXN0bCAkKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElGX1NZU0NBTExfQVVESVR8X1RJRl9TRUNDT01QKSx0aHJlYWRpbmZvX2ZsYWdzKCVyY3gpCisJdGVzdGwgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0VDQ09NUCksIFwKKwkJVElfZmxhZ3MoJXJjeCkKIAlqbnogdHJhY2VzeXMKIAljbXBxICRfX05SX3N5c2NhbGxfbWF4LCVyYXgKIAlqYSBiYWRzeXMKQEAgLTI2Myw3ICszNjksNyBAQAogCUdFVF9USFJFQURfSU5GTyglcmN4KQogCURJU0FCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCiAJVFJBQ0VfSVJRU19PRkYKLQltb3ZsIHRocmVhZGluZm9fZmxhZ3MoJXJjeCksJWVkeAorCW1vdmwgVElfZmxhZ3MoJXJjeCksJWVkeAogCWFuZGwgJWVkaSwlZWR4CiAJam56ICBzeXNyZXRfY2FyZWZ1bCAKIAlDRklfUkVNRU1CRVJfU1RBVEUKQEAgLTI3NSw3ICszODEsOCBAQAogCUNGSV9SRUdJU1RFUglyaXAscmN4CiAJUkVTVE9SRV9BUkdTIDAsLUFSR19TS0lQLDEKIAkvKkNGSV9SRUdJU1RFUglyZmxhZ3MscjExKi8KLQlFTkFCTEVfSU5URVJSVVBUU19TWVNDQUxMX1JFVAorCW1vdnEJJWdzOnBkYV9vbGRyc3AsICVyc3AKKwlVU0VSR1NfU1lTUkVUNjQKIAogCUNGSV9SRVNUT1JFX1NUQVRFCiAJLyogSGFuZGxlIHJlc2NoZWR1bGVzICovCkBAIC0zMDUsNyArNDEyLDcgQEAKIAlsZWFxIC1BUkdPRkZTRVQoJXJzcCksJXJkaSAjICZwdF9yZWdzIC0+IGFyZzEKIAl4b3JsICVlc2ksJWVzaSAjIG9sZHNldCAtPiBhcmcyCiAJY2FsbCBwdHJlZ3NjYWxsX2NvbW1vbgotMToJbW92bCAkX1RJRl9ORUVEX1JFU0NIRUQsJWVkaQorMToJbW92bCAkX1RJRl9XT1JLX01BU0ssJWVkaQogCS8qIFVzZSBJUkVUIGJlY2F1c2UgdXNlciBjb3VsZCBoYXZlIGNoYW5nZWQgZnJhbWUuIFRoaXMKIAkgICB3b3JrcyBiZWNhdXNlIHB0cmVnc2NhbGxfY29tbW9uIGhhcyBjYWxsZWQgRklYVVBfVE9QX09GX1NUQUNLLiAqLwogCURJU0FCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCkBAIC0zNDcsMTAgKzQ1NCwxMCBAQAogaW50X3dpdGhfY2hlY2s6CiAJTE9DS0RFUF9TWVNfRVhJVF9JUlEKIAlHRVRfVEhSRUFEX0lORk8oJXJjeCkKLQltb3ZsIHRocmVhZGluZm9fZmxhZ3MoJXJjeCksJWVkeAorCW1vdmwgVElfZmxhZ3MoJXJjeCksJWVkeAogCWFuZGwgJWVkaSwlZWR4CiAJam56ICAgaW50X2NhcmVmdWwKLQlhbmRsICAgICR+VFNfQ09NUEFULHRocmVhZGluZm9fc3RhdHVzKCVyY3gpCisJYW5kbCAgICAkflRTX0NPTVBBVCxUSV9zdGF0dXMoJXJjeCkKIAlqbXAgICByZXRpbnRfc3dhcGdzCiAKIAkvKiBFaXRoZXIgcmVzY2hlZHVsZSBvciBzaWduYWwgb3Igc3lzY2FsbCBleGl0IHRyYWNraW5nIG5lZWRlZC4gKi8KQEAgLTM5Myw3ICs1MDAsNyBAQAogCW1vdnEgJXJzcCwlcmRpCQkjICZwdHJlZ3MgLT4gYXJnMQogCXhvcmwgJWVzaSwlZXNpCQkjIG9sZHNldCAtPiBhcmcyCiAJY2FsbCBkb19ub3RpZnlfcmVzdW1lCi0xOgltb3ZsICRfVElGX05FRURfUkVTQ0hFRCwlZWRpCQorMToJbW92bCAkX1RJRl9XT1JLX01BU0ssJWVkaQogaW50X3Jlc3RvcmVfcmVzdDoKIAlSRVNUT1JFX1JFU1QKIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQpAQCAtNDIwLDcgKzUyNyw2IEBACiAJUFRSRUdTQ0FMTCBzdHViX2Nsb25lLCBzeXNfY2xvbmUsICVyOAogCVBUUkVHU0NBTEwgc3R1Yl9mb3JrLCBzeXNfZm9yaywgJXJkaQogCVBUUkVHU0NBTEwgc3R1Yl92Zm9yaywgc3lzX3Zmb3JrLCAlcmRpCi0JUFRSRUdTQ0FMTCBzdHViX3J0X3NpZ3N1c3BlbmQsIHN5c19ydF9zaWdzdXNwZW5kLCAlcmR4CiAJUFRSRUdTQ0FMTCBzdHViX3NpZ2FsdHN0YWNrLCBzeXNfc2lnYWx0c3RhY2ssICVyZHgKIAlQVFJFR1NDQUxMIHN0dWJfaW9wbCwgc3lzX2lvcGwsICVyc2kKIApAQCAtNTU5LDcgKzY2NSw3IEBACiAJbW92bCAkX1RJRl9XT1JLX01BU0ssJWVkaQogcmV0aW50X2NoZWNrOgogCUxPQ0tERVBfU1lTX0VYSVRfSVJRCi0JbW92bCB0aHJlYWRpbmZvX2ZsYWdzKCVyY3gpLCVlZHgKKwltb3ZsIFRJX2ZsYWdzKCVyY3gpLCVlZHgKIAlhbmRsICVlZGksJWVkeAogCUNGSV9SRU1FTUJFUl9TVEFURQogCWpueiAgcmV0aW50X2NhcmVmdWwKQEAgLTY0NywxNyArNzUzLDE2IEBACiAJUkVTVE9SRV9SRVNUCiAJRElTQUJMRV9JTlRFUlJVUFRTKENMQlJfTk9ORSkKIAlUUkFDRV9JUlFTX09GRgotCW1vdmwgJF9USUZfTkVFRF9SRVNDSEVELCVlZGkKIAlHRVRfVEhSRUFEX0lORk8oJXJjeCkKLQlqbXAgcmV0aW50X2NoZWNrCisJam1wIHJldGludF93aXRoX3Jlc2NoZWR1bGUKIAogI2lmZGVmIENPTkZJR19QUkVFTVBUCiAJLyogUmV0dXJuaW5nIHRvIGtlcm5lbCBzcGFjZS4gQ2hlY2sgaWYgd2UgbmVlZCBwcmVlbXB0aW9uICovCiAJLyogcmN4OgkgdGhyZWFkaW5mby4gaW50ZXJydXB0cyBvZmYuICovCiBFTlRSWShyZXRpbnRfa2VybmVsKQotCWNtcGwgJDAsdGhyZWFkaW5mb19wcmVlbXB0X2NvdW50KCVyY3gpCisJY21wbCAkMCxUSV9wcmVlbXB0X2NvdW50KCVyY3gpCiAJam56ICByZXRpbnRfcmVzdG9yZV9hcmdzCi0JYnQgICRUSUZfTkVFRF9SRVNDSEVELHRocmVhZGluZm9fZmxhZ3MoJXJjeCkKKwlidCAgJFRJRl9ORUVEX1JFU0NIRUQsVElfZmxhZ3MoJXJjeCkKIAlqbmMgIHJldGludF9yZXN0b3JlX2FyZ3MKIAlidCAgICQ5LEVGTEFHUy1BUkdPRkZTRVQoJXJzcCkJLyogaW50ZXJydXB0cyBvZmY/ICovCiAJam5jICByZXRpbnRfcmVzdG9yZV9hcmdzCkBAIC03MjMsNiArODI4LDEwIEBACiAJYXBpY2ludGVycnVwdCBMT0NBTF9USU1FUl9WRUNUT1Isc21wX2FwaWNfdGltZXJfaW50ZXJydXB0CiBFTkQoYXBpY190aW1lcl9pbnRlcnJ1cHQpCiAKK0VOVFJZKHV2X2JhdV9tZXNzYWdlX2ludHIxKQorCWFwaWNpbnRlcnJ1cHQgMjIwLHV2X2JhdV9tZXNzYWdlX2ludGVycnVwdAorRU5EKHV2X2JhdV9tZXNzYWdlX2ludHIxKQorCiBFTlRSWShlcnJvcl9pbnRlcnJ1cHQpCiAJYXBpY2ludGVycnVwdCBFUlJPUl9BUElDX1ZFQ1RPUixzbXBfZXJyb3JfaW50ZXJydXB0CiBFTkQoZXJyb3JfaW50ZXJydXB0KQpAQCAtNzM2LDYgKzg0NSw3IEBACiAgKi8gCQkKIAkubWFjcm8gemVyb2VudHJ5IHN5bQogCUlOVFJfRlJBTUUKKwlQQVJBVklSVF9BREpVU1RfRVhDRVBUSU9OX0ZSQU1FCiAJcHVzaHEgJDAJLyogcHVzaCBlcnJvciBjb2RlL29sZHJheCAqLyAKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAogCXB1c2hxICVyYXgJLyogcHVzaCByZWFsIG9sZHJheCB0byB0aGUgcmRpIHNsb3QgKi8gCkBAIC03NDgsNiArODU4LDcgQEAKIAogCS5tYWNybyBlcnJvcmVudHJ5IHN5bQogCVhDUFRfRlJBTUUKKwlQQVJBVklSVF9BREpVU1RfRVhDRVBUSU9OX0ZSQU1FCiAJcHVzaHEgJXJheAogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4CiAJQ0ZJX1JFTF9PRkZTRVQgcmF4LDAKQEAgLTgxNyw3ICs5MjgsNyBAQAogCWptcCBpcnFfcmV0dXJuCiBwYXJhbm9pZF91c2Vyc3BhY2VcdHJhY2U6CiAJR0VUX1RIUkVBRF9JTkZPKCVyY3gpCi0JbW92bCB0aHJlYWRpbmZvX2ZsYWdzKCVyY3gpLCVlYngKKwltb3ZsIFRJX2ZsYWdzKCVyY3gpLCVlYngKIAlhbmRsICRfVElGX1dPUktfTUFTSywlZWJ4CiAJanogcGFyYW5vaWRfc3dhcGdzXHRyYWNlCiAJbW92cSAlcnNwLCVyZGkJCQkvKiAmcHRfcmVncyAqLwpAQCAtOTE1LDcgKzEwMjYsNyBAQAogCXRlc3RsICVlYXgsJWVheAogCWpuZSAgcmV0aW50X2tlcm5lbAogCUxPQ0tERVBfU1lTX0VYSVRfSVJRCi0JbW92bCAgdGhyZWFkaW5mb19mbGFncyglcmN4KSwlZWR4CisJbW92bCAgVElfZmxhZ3MoJXJjeCksJWVkeAogCW1vdmwgICRfVElGX1dPUktfTUFTSywlZWRpCiAJYW5kbCAgJWVkaSwlZWR4CiAJam56ICByZXRpbnRfY2FyZWZ1bApAQCAtOTI5LDExICsxMDQwLDExIEBACiAJICAgaXJldCBydW4gd2l0aCBrZXJuZWwgZ3MgYWdhaW4sIHNvIGRvbid0IHNldCB0aGUgdXNlciBzcGFjZSBmbGFnLgogCSAgIEIgc3RlcHBpbmcgSzhzIHNvbWV0aW1lcyByZXBvcnQgYW4gdHJ1bmNhdGVkIFJJUCBmb3IgSVJFVCAKIAkgICBleGNlcHRpb25zIHJldHVybmluZyB0byBjb21wYXQgbW9kZS4gQ2hlY2sgZm9yIHRoZXNlIGhlcmUgdG9vLiAqLwotCWxlYXEgaXJxX3JldHVybiglcmlwKSwlcmJwCi0JY21wcSAlcmJwLFJJUCglcnNwKSAKKwlsZWFxIGlycV9yZXR1cm4oJXJpcCksJXJjeAorCWNtcHEgJXJjeCxSSVAoJXJzcCkKIAlqZSAgIGVycm9yX3N3YXBncwotCW1vdmwgJWVicCwlZWJwCS8qIHplcm8gZXh0ZW5kICovCi0JY21wcSAlcmJwLFJJUCglcnNwKSAKKwltb3ZsICVlY3gsJWVjeAkvKiB6ZXJvIGV4dGVuZCAqLworCWNtcHEgJXJjeCxSSVAoJXJzcCkKIAlqZSAgIGVycm9yX3N3YXBncwogCWNtcHEgJGdzX2NoYW5nZSxSSVAoJXJzcCkKICAgICAgICAgamUgICBlcnJvcl9zd2FwZ3MKQEAgLTk0Miw3ICsxMDUzLDcgQEAKIAkKICAgICAgICAvKiBSZWxvYWQgZ3Mgc2VsZWN0b3Igd2l0aCBleGNlcHRpb24gaGFuZGxpbmcgKi8KICAgICAgICAvKiBlZGk6ICBuZXcgc2VsZWN0b3IgKi8gCi1FTlRSWShsb2FkX2dzX2luZGV4KQorRU5UUlkobmF0aXZlX2xvYWRfZ3NfaW5kZXgpCiAJQ0ZJX1NUQVJUUFJPQwogCXB1c2hmCiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIDgKQEAgLTk1Niw3ICsxMDY3LDcgQEAKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgLTgKICAgICAgICAgcmV0CiAJQ0ZJX0VORFBST0MKLUVORFBST0MobG9hZF9nc19pbmRleCkKK0VORFBST0MobmF0aXZlX2xvYWRfZ3NfaW5kZXgpCiAgICAgICAgCiAgICAgICAgIC5zZWN0aW9uIF9fZXhfdGFibGUsImEiCiAgICAgICAgIC5hbGlnbiA4CkBAIC0xMTIzLDEwICsxMjM0LDYgQEAKIAl6ZXJvZW50cnkgZG9fY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuCiBFTkQoY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQogCi1FTlRSWShyZXNlcnZlZCkKLQl6ZXJvZW50cnkgZG9fcmVzZXJ2ZWQKLUVORChyZXNlcnZlZCkKLQogCS8qIHJ1bnMgb24gZXhjZXB0aW9uIHN0YWNrICovCiBFTlRSWShkb3VibGVfZmF1bHQpCiAJWENQVF9GUkFNRQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2Z0cmFjZS5jIGIvYXJjaC94ODYva2VybmVsL2Z0cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMTE1Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvZnRyYWNlLmMKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb2RlIGZvciByZXBsYWNpbmcgZnRyYWNlIGNhbGxzIHdpdGgganVtcHMuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CisgKgorICogVGhhbmtzIGdvZXMgdG8gSW5nbyBNb2xuYXIsIGZvciBzdWdnZXN0aW5nIHRoZSBpZGVhLgorICogTWF0aGlldSBEZXNub3llcnMsIGZvciBzdWdnZXN0aW5nIHBvc3Rwb25pbmcgdGhlIG1vZGlmaWNhdGlvbnMuCisgKiBBcmphbiB2YW4gZGUgVmVuLCBmb3Iga2VlcGluZyBtZSBzdHJhaWdodCwgYW5kIGV4cGxhaW5pbmcgdG8gbWUKKyAqIHRoZSBkYW5nZXJzIG9mIG1vZGlmeWluZyBjb2RlIG9uIHRoZSBydW4uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvaGFyZGlycS5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKKyNpbmNsdWRlIDxhc20vYWx0ZXJuYXRpdmUuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisKKworLyogTG9uZyBpcyBmaW5lLCBldmVuIGlmIGl0IGlzIG9ubHkgNCBieXRlcyA7LSkgKi8KK3N0YXRpYyBsb25nICpmdHJhY2Vfbm9wOworCit1bmlvbiBmdHJhY2VfY29kZV91bmlvbiB7CisJY2hhciBjb2RlW01DT1VOVF9JTlNOX1NJWkVdOworCXN0cnVjdCB7CisJCWNoYXIgZTg7CisJCWludCBvZmZzZXQ7CisJfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKK307CisKKworc3RhdGljIGludCBub3RyYWNlIGZ0cmFjZV9jYWxjX29mZnNldChsb25nIGlwLCBsb25nIGFkZHIpCit7CisJcmV0dXJuIChpbnQpKGFkZHIgLSBpcCk7Cit9CisKK25vdHJhY2UgdW5zaWduZWQgY2hhciAqZnRyYWNlX25vcF9yZXBsYWNlKHZvaWQpCit7CisJcmV0dXJuIChjaGFyICopZnRyYWNlX25vcDsKK30KKworbm90cmFjZSB1bnNpZ25lZCBjaGFyICpmdHJhY2VfY2FsbF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlzdGF0aWMgdW5pb24gZnRyYWNlX2NvZGVfdW5pb24gY2FsYzsKKworCWNhbGMuZTgJCT0gMHhlODsKKwljYWxjLm9mZnNldAk9IGZ0cmFjZV9jYWxjX29mZnNldChpcCArIE1DT1VOVF9JTlNOX1NJWkUsIGFkZHIpOworCisJLyoKKwkgKiBObyBsb2NraW5nIG5lZWRlZCwgdGhpcyBtdXN0IGJlIGNhbGxlZCB2aWEga3N0b3BfbWFjaGluZQorCSAqIHdoaWNoIGluIGVzc2VuY2UgaXMgbGlrZSBydW5uaW5nIG9uIGEgdW5pcHJvY2Vzc29yIG1hY2hpbmUuCisJICovCisJcmV0dXJuIGNhbGMuY29kZTsKK30KKworbm90cmFjZSBpbnQKK2Z0cmFjZV9tb2RpZnlfY29kZSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBjaGFyICpvbGRfY29kZSwKKwkJICAgdW5zaWduZWQgY2hhciAqbmV3X2NvZGUpCit7CisJdW5zaWduZWQgcmVwbGFjZWQ7CisJdW5zaWduZWQgb2xkID0gKih1bnNpZ25lZCAqKW9sZF9jb2RlOyAvKiA0IGJ5dGVzICovCisJdW5zaWduZWQgbmV3ID0gKih1bnNpZ25lZCAqKW5ld19jb2RlOyAvKiA0IGJ5dGVzICovCisJdW5zaWduZWQgY2hhciBuZXdjaCA9IG5ld19jb2RlWzRdOworCWludCBmYXVsdGVkID0gMDsKKworCS8qCisJICogTm90ZTogRHVlIHRvIG1vZHVsZXMgYW5kIF9faW5pdCwgY29kZSBjYW4KKwkgKiAgZGlzYXBwZWFyIGFuZCBjaGFuZ2UsIHdlIG5lZWQgdG8gcHJvdGVjdCBhZ2FpbnN0IGZhdWx0aW5nCisJICogIGFzIHdlbGwgYXMgY29kZSBjaGFuZ2luZy4KKwkgKgorCSAqIE5vIHJlYWwgbG9ja2luZyBuZWVkZWQsIHRoaXMgY29kZSBpcyBydW4gdGhyb3VnaAorCSAqIGtzdG9wX21hY2hpbmUuCisJICovCisJYXNtIHZvbGF0aWxlICgKKwkJIjE6IGxvY2tcbiIKKwkJIiAgIGNtcHhjaGcgJTMsICglMilcbiIKKwkJIiAgIGpueiAyZlxuIgorCQkiICAgbW92YiAlYjQsIDQoJTIpXG4iCisJCSIyOlxuIgorCQkiLnNlY3Rpb24gLmZpeHVwLCBcImF4XCJcbiIKKwkJIjM6CW1vdmwgJDEsICUwXG4iCisJCSIJam1wIDJiXG4iCisJCSIucHJldmlvdXNcbiIKKwkJX0FTTV9FWFRBQkxFKDFiLCAzYikKKwkJOiAiPXIiKGZhdWx0ZWQpLCAiPWEiKHJlcGxhY2VkKQorCQk6ICJyIihpcCksICJyIihuZXcpLCAiYyIobmV3Y2gpLAorCQkgICIwIihmYXVsdGVkKSwgImEiKG9sZCkKKwkJOiAibWVtb3J5Iik7CisJc3luY19jb3JlKCk7CisKKwlpZiAocmVwbGFjZWQgIT0gb2xkICYmIHJlcGxhY2VkICE9IG5ldykKKwkJZmF1bHRlZCA9IDI7CisKKwlyZXR1cm4gZmF1bHRlZDsKK30KKworbm90cmFjZSBpbnQgZnRyYWNlX3VwZGF0ZV9mdHJhY2VfZnVuYyhmdHJhY2VfZnVuY190IGZ1bmMpCit7CisJdW5zaWduZWQgbG9uZyBpcCA9ICh1bnNpZ25lZCBsb25nKSgmZnRyYWNlX2NhbGwpOworCXVuc2lnbmVkIGNoYXIgb2xkW01DT1VOVF9JTlNOX1NJWkVdLCAqbmV3OworCWludCByZXQ7CisKKwltZW1jcHkob2xkLCAmZnRyYWNlX2NhbGwsIE1DT1VOVF9JTlNOX1NJWkUpOworCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsICh1bnNpZ25lZCBsb25nKWZ1bmMpOworCXJldCA9IGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgb2xkLCBuZXcpOworCisJcmV0dXJuIHJldDsKK30KKworbm90cmFjZSBpbnQgZnRyYWNlX21jb3VudF9zZXQodW5zaWduZWQgbG9uZyAqZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIGlwID0gKGxvbmcpKCZtY291bnRfY2FsbCk7CisJdW5zaWduZWQgbG9uZyAqYWRkciA9IGRhdGE7CisJdW5zaWduZWQgY2hhciBvbGRbTUNPVU5UX0lOU05fU0laRV0sICpuZXc7CisKKwkvKgorCSAqIFJlcGxhY2UgdGhlIG1jb3VudCBzdHViIHdpdGggYSBwb2ludGVyIHRvIHRoZQorCSAqIGlwIHJlY29yZGVyIGZ1bmN0aW9uLgorCSAqLworCW1lbWNweShvbGQsICZtY291bnRfY2FsbCwgTUNPVU5UX0lOU05fU0laRSk7CisJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgKmFkZHIpOworCSphZGRyID0gZnRyYWNlX21vZGlmeV9jb2RlKGlwLCBvbGQsIG5ldyk7CisKKwlyZXR1cm4gMDsKK30KKworaW50IF9faW5pdCBmdHJhY2VfZHluX2FyY2hfaW5pdCh2b2lkICpkYXRhKQoreworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmNvbnN0ICpub3B0YWJsZSA9IGZpbmRfbm9wX3RhYmxlKCk7CisKKwkvKiBUaGlzIGlzIHJ1bm5pbmcgaW4ga3N0b3BfbWFjaGluZSAqLworCisJZnRyYWNlX21jb3VudF9zZXQoZGF0YSk7CisKKwlmdHJhY2Vfbm9wID0gKHVuc2lnbmVkIGxvbmcgKilub3B0YWJsZVtNQ09VTlRfSU5TTl9TSVpFXTsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2dlbmFwaWNfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9nZW5hcGljXzY0LmMKaW5kZXggY2JhYWY2OS4uMWZhOGJlNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2dlbmFwaWNfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZ2VuYXBpY182NC5jCkBAIC01MSw3ICs1MSw3IEBACiAJZWxzZQogI2VuZGlmCiAKLQlpZiAobnVtX3Bvc3NpYmxlX2NwdXMoKSA8PSA4KQorCWlmIChtYXhfcGh5c2ljYWxfYXBpY2lkIDwgOCkKIAkJZ2VuYXBpYyA9ICZhcGljX2ZsYXQ7CiAJZWxzZQogCQlnZW5hcGljID0gJmFwaWNfcGh5c2ZsYXQ7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZ2VueDJhcGljX3V2X3guYyBiL2FyY2gveDg2L2tlcm5lbC9nZW54MmFwaWNfdXZfeC5jCmluZGV4IGViZjEzOTAuLjcxMWYxMWMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9nZW54MmFwaWNfdXZfeC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9nZW54MmFwaWNfdXZfeC5jCkBAIC01LDkgKzUsMTAgQEAKICAqCiAgKiBTR0kgVVYgQVBJQyBmdW5jdGlvbnMgKG5vdGU6IG5vdCBhbiBJbnRlbCBjb21wYXRpYmxlIEFQSUMpCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDA3IFNpbGljb24gR3JhcGhpY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFNpbGljb24gR3JhcGhpY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqLwogCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvdGhyZWFkcy5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KQEAgLTIwLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxhc20vc21wLmg+CiAjaW5jbHVkZSA8YXNtL2lwaS5oPgogI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+CisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlIDxhc20vdXYvdXZfbW1ycy5oPgogI2luY2x1ZGUgPGFzbS91di91dl9odWIuaD4KIApAQCAtNTUsMzcgKzU3LDM3IEBACiBpbnQgdXZfd2FrZXVwX3NlY29uZGFyeShpbnQgcGh5c19hcGljaWQsIHVuc2lnbmVkIGludCBzdGFydF9yaXApCiB7CiAJdW5zaWduZWQgbG9uZyB2YWw7Ci0JaW50IG5hc2lkOworCWludCBwbm9kZTsKIAotCW5hc2lkID0gdXZfYXBpY2lkX3RvX25hc2lkKHBoeXNfYXBpY2lkKTsKKwlwbm9kZSA9IHV2X2FwaWNpZF90b19wbm9kZShwaHlzX2FwaWNpZCk7CiAJdmFsID0gKDFVTCA8PCBVVkhfSVBJX0lOVF9TRU5EX1NIRlQpIHwKIAkgICAgKHBoeXNfYXBpY2lkIDw8IFVWSF9JUElfSU5UX0FQSUNfSURfU0hGVCkgfAogCSAgICAoKChsb25nKXN0YXJ0X3JpcCA8PCBVVkhfSVBJX0lOVF9WRUNUT1JfU0hGVCkgPj4gMTIpIHwKIAkgICAgQVBJQ19ETV9JTklUOwotCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChuYXNpZCwgVVZIX0lQSV9JTlQsIHZhbCk7CisJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfSVBJX0lOVCwgdmFsKTsKIAltZGVsYXkoMTApOwogCiAJdmFsID0gKDFVTCA8PCBVVkhfSVBJX0lOVF9TRU5EX1NIRlQpIHwKIAkgICAgKHBoeXNfYXBpY2lkIDw8IFVWSF9JUElfSU5UX0FQSUNfSURfU0hGVCkgfAogCSAgICAoKChsb25nKXN0YXJ0X3JpcCA8PCBVVkhfSVBJX0lOVF9WRUNUT1JfU0hGVCkgPj4gMTIpIHwKIAkgICAgQVBJQ19ETV9TVEFSVFVQOwotCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChuYXNpZCwgVVZIX0lQSV9JTlQsIHZhbCk7CisJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfSVBJX0lOVCwgdmFsKTsKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgdXZfc2VuZF9JUElfb25lKGludCBjcHUsIGludCB2ZWN0b3IpCiB7CiAJdW5zaWduZWQgbG9uZyB2YWwsIGFwaWNpZCwgbGFwaWNpZDsKLQlpbnQgbmFzaWQ7CisJaW50IHBub2RlOwogCiAJYXBpY2lkID0gcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KTsgLyogWlpaIC0gY2FjaGUgbm9kZS1sb2NhbCA/ICovCiAJbGFwaWNpZCA9IGFwaWNpZCAmIDB4M2Y7CQkvKiBaWlogbWFjcm8gbmVlZGVkICovCi0JbmFzaWQgPSB1dl9hcGljaWRfdG9fbmFzaWQoYXBpY2lkKTsKKwlwbm9kZSA9IHV2X2FwaWNpZF90b19wbm9kZShhcGljaWQpOwogCXZhbCA9CiAJICAgICgxVUwgPDwgVVZIX0lQSV9JTlRfU0VORF9TSEZUKSB8IChsYXBpY2lkIDw8CiAJCQkJCSAgICAgIFVWSF9JUElfSU5UX0FQSUNfSURfU0hGVCkgfAogCSAgICAodmVjdG9yIDw8IFVWSF9JUElfSU5UX1ZFQ1RPUl9TSEZUKTsKLQl1dl93cml0ZV9nbG9iYWxfbW1yNjQobmFzaWQsIFVWSF9JUElfSU5ULCB2YWwpOworCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChwbm9kZSwgVVZIX0lQSV9JTlQsIHZhbCk7CiB9CiAKIHN0YXRpYyB2b2lkIHV2X3NlbmRfSVBJX21hc2soY3B1bWFza190IG1hc2ssIGludCB2ZWN0b3IpCkBAIC0xNTksMzkgKzE2MSwxNDYgQEAKIAkucGh5c19wa2dfaWQgPSBwaHlzX3BrZ19pZCwJLyogRml4bWUgWlpaICovCiB9OwogCi1zdGF0aWMgX19jcHVpbml0IHZvaWQgc2V0X3gyYXBpY19leHRyYV9iaXRzKGludCBuYXNpZCkKK3N0YXRpYyBfX2NwdWluaXQgdm9pZCBzZXRfeDJhcGljX2V4dHJhX2JpdHMoaW50IHBub2RlKQogewotCV9fZ2V0X2NwdV92YXIoeDJhcGljX2V4dHJhX2JpdHMpID0gKChuYXNpZCA+PiAxKSA8PCA2KTsKKwlfX2dldF9jcHVfdmFyKHgyYXBpY19leHRyYV9iaXRzKSA9IChwbm9kZSA8PCA2KTsKIH0KIAogLyoKICAqIENhbGxlZCBvbiBib290IGNwdS4KICAqLworc3RhdGljIF9faW5pdCBpbnQgYm9vdF9wbm9kZV90b19ibGFkZShpbnQgcG5vZGUpCit7CisJaW50IGJsYWRlOworCisJZm9yIChibGFkZSA9IDA7IGJsYWRlIDwgdXZfbnVtX3Bvc3NpYmxlX2JsYWRlcygpOyBibGFkZSsrKQorCQlpZiAocG5vZGUgPT0gdXZfYmxhZGVfaW5mb1tibGFkZV0ucG5vZGUpCisJCQlyZXR1cm4gYmxhZGU7CisJQlVHKCk7Cit9CisKK3N0cnVjdCByZWRpcl9hZGRyIHsKKwl1bnNpZ25lZCBsb25nIHJlZGlyZWN0OworCXVuc2lnbmVkIGxvbmcgYWxpYXM7Cit9OworCisjZGVmaW5lIERFU1RfU0hJRlQgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMF9NTVJfREVTVF9CQVNFX1NIRlQKKworc3RhdGljIF9faW5pdGRhdGEgc3RydWN0IHJlZGlyX2FkZHIgcmVkaXJfYWRkcnNbXSA9IHsKKwl7VVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMF9NTVIsIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUd9LAorCXtVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18xX01NUiwgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR30sCisJe1VWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzJfTU1SLCBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHfSwKK307CisKK3N0YXRpYyBfX2luaXQgdm9pZCBnZXRfbG93bWVtX3JlZGlyZWN0KHVuc2lnbmVkIGxvbmcgKmJhc2UsIHVuc2lnbmVkIGxvbmcgKnNpemUpCit7CisJdW5pb24gdXZoX3NpX2FsaWFzMF9vdmVybGF5X2NvbmZpZ191IGFsaWFzOworCXVuaW9uIHV2aF9yaF9nYW1fYWxpYXMyMTBfcmVkaXJlY3RfY29uZmlnXzJfbW1yX3UgcmVkaXJlY3Q7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShyZWRpcl9hZGRycyk7IGkrKykgeworCQlhbGlhcy52ID0gdXZfcmVhZF9sb2NhbF9tbXIocmVkaXJfYWRkcnNbaV0uYWxpYXMpOworCQlpZiAoYWxpYXMucy5iYXNlID09IDApIHsKKwkJCSpzaXplID0gKDFVTCA8PCBhbGlhcy5zLm1fYWxpYXMpOworCQkJcmVkaXJlY3QudiA9IHV2X3JlYWRfbG9jYWxfbW1yKHJlZGlyX2FkZHJzW2ldLnJlZGlyZWN0KTsKKwkJCSpiYXNlID0gKHVuc2lnbmVkIGxvbmcpcmVkaXJlY3Qucy5kZXN0X2Jhc2UgPDwgREVTVF9TSElGVDsKKwkJCXJldHVybjsKKwkJfQorCX0KKwlCVUcoKTsKK30KKworc3RhdGljIF9faW5pdCB2b2lkIG1hcF9sb3dfbW1ycyh2b2lkKQoreworCWluaXRfZXh0cmFfbWFwcGluZ191YyhVVl9HTE9CQUxfTU1SMzJfQkFTRSwgVVZfR0xPQkFMX01NUjMyX1NJWkUpOworCWluaXRfZXh0cmFfbWFwcGluZ191YyhVVl9MT0NBTF9NTVJfQkFTRSwgVVZfTE9DQUxfTU1SX1NJWkUpOworfQorCitlbnVtIG1hcF90eXBlIHttYXBfd2IsIG1hcF91Y307CisKK3N0YXRpYyB2b2lkIG1hcF9oaWdoKGNoYXIgKmlkLCB1bnNpZ25lZCBsb25nIGJhc2UsIGludCBzaGlmdCwgZW51bSBtYXBfdHlwZSBtYXBfdHlwZSkKK3sKKwl1bnNpZ25lZCBsb25nIGJ5dGVzLCBwYWRkcjsKKworCXBhZGRyID0gYmFzZSA8PCBzaGlmdDsKKwlieXRlcyA9ICgxVUwgPDwgc2hpZnQpOworCXByaW50ayhLRVJOX0lORk8gIlVWOiBNYXAgJXNfSEkgMHglbHggLSAweCVseFxuIiwgaWQsIHBhZGRyLAorCSAgICAgICAJCQkJCXBhZGRyICsgYnl0ZXMpOworCWlmIChtYXBfdHlwZSA9PSBtYXBfdWMpCisJCWluaXRfZXh0cmFfbWFwcGluZ191YyhwYWRkciwgYnl0ZXMpOworCWVsc2UKKwkJaW5pdF9leHRyYV9tYXBwaW5nX3diKHBhZGRyLCBieXRlcyk7CisKK30KK3N0YXRpYyBfX2luaXQgdm9pZCBtYXBfZ3J1X2hpZ2goaW50IG1heF9wbm9kZSkKK3sKKwl1bmlvbiB1dmhfcmhfZ2FtX2dydV9vdmVybGF5X2NvbmZpZ19tbXJfdSBncnU7CisJaW50IHNoaWZ0ID0gVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfU0hGVDsKKworCWdydS52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SKTsKKwlpZiAoZ3J1LnMuZW5hYmxlKQorCQltYXBfaGlnaCgiR1JVIiwgZ3J1LnMuYmFzZSwgc2hpZnQsIG1hcF93Yik7Cit9CisKK3N0YXRpYyBfX2luaXQgdm9pZCBtYXBfY29uZmlnX2hpZ2goaW50IG1heF9wbm9kZSkKK3sKKwl1bmlvbiB1dmhfcmhfZ2FtX2NmZ19vdmVybGF5X2NvbmZpZ19tbXJfdSBjZmc7CisJaW50IHNoaWZ0ID0gVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfU0hGVDsKKworCWNmZy52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SKTsKKwlpZiAoY2ZnLnMuZW5hYmxlKQorCQltYXBfaGlnaCgiQ09ORklHIiwgY2ZnLnMuYmFzZSwgc2hpZnQsIG1hcF91Yyk7Cit9CisKK3N0YXRpYyBfX2luaXQgdm9pZCBtYXBfbW1yX2hpZ2goaW50IG1heF9wbm9kZSkKK3sKKwl1bmlvbiB1dmhfcmhfZ2FtX21tcl9vdmVybGF5X2NvbmZpZ19tbXJfdSBtbXI7CisJaW50IHNoaWZ0ID0gVVZIX1JIX0dBTV9NTVJfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfU0hGVDsKKworCW1tci52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX1JIX0dBTV9NTVJfT1ZFUkxBWV9DT05GSUdfTU1SKTsKKwlpZiAobW1yLnMuZW5hYmxlKQorCQltYXBfaGlnaCgiTU1SIiwgbW1yLnMuYmFzZSwgc2hpZnQsIG1hcF91Yyk7Cit9CisKK3N0YXRpYyBfX2luaXQgdm9pZCBtYXBfbW1pb2hfaGlnaChpbnQgbWF4X3Bub2RlKQoreworCXVuaW9uIHV2aF9yaF9nYW1fbW1pb2hfb3ZlcmxheV9jb25maWdfbW1yX3UgbW1pb2g7CisJaW50IHNoaWZ0ID0gVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9TSEZUOworCisJbW1pb2gudiA9IHV2X3JlYWRfbG9jYWxfbW1yKFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SKTsKKwlpZiAobW1pb2gucy5lbmFibGUpCisJCW1hcF9oaWdoKCJNTUlPSCIsIG1taW9oLnMuYmFzZSwgc2hpZnQsIG1hcF91Yyk7Cit9CisKIHN0YXRpYyBfX2luaXQgdm9pZCB1dl9zeXN0ZW1faW5pdCh2b2lkKQogewogCXVuaW9uIHV2aF9zaV9hZGRyX21hcF9jb25maWdfdSBtX25fY29uZmlnOwotCWludCBieXRlcywgbmlkLCBjcHUsIGxjcHUsIG5hc2lkLCBsYXN0X25hc2lkLCBibGFkZTsKLQl1bnNpZ25lZCBsb25nIG1tcl9iYXNlOworCXVuaW9uIHV2aF9ub2RlX2lkX3Ugbm9kZV9pZDsKKwl1bnNpZ25lZCBsb25nIGdub2RlX3VwcGVyLCBsb3dtZW1fcmVkaXJfYmFzZSwgbG93bWVtX3JlZGlyX3NpemU7CisJaW50IGJ5dGVzLCBuaWQsIGNwdSwgbGNwdSwgcG5vZGUsIGJsYWRlLCBpLCBqLCBtX3ZhbCwgbl92YWw7CisJaW50IG1heF9wbm9kZSA9IDA7CisJdW5zaWduZWQgbG9uZyBtbXJfYmFzZSwgcHJlc2VudDsKKworCW1hcF9sb3dfbW1ycygpOwogCiAJbV9uX2NvbmZpZy52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX1NJX0FERFJfTUFQX0NPTkZJRyk7CisJbV92YWwgPSBtX25fY29uZmlnLnMubV9za3Q7CisJbl92YWwgPSBtX25fY29uZmlnLnMubl9za3Q7CiAJbW1yX2Jhc2UgPQogCSAgICB1dl9yZWFkX2xvY2FsX21tcihVVkhfUkhfR0FNX01NUl9PVkVSTEFZX0NPTkZJR19NTVIpICYKIAkgICAgflVWX01NUl9FTkFCTEU7CiAJcHJpbnRrKEtFUk5fREVCVUcgIlVWOiBnbG9iYWwgTU1SIGJhc2UgMHglbHhcbiIsIG1tcl9iYXNlKTsKIAotCWxhc3RfbmFzaWQgPSAtMTsKLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7Ci0JCW5pZCA9IGNwdV90b19ub2RlKGNwdSk7Ci0JCW5hc2lkID0gdXZfYXBpY2lkX3RvX25hc2lkKHBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSkpOwotCQlpZiAobmFzaWQgIT0gbGFzdF9uYXNpZCkKLQkJCXV2X3Bvc3NpYmxlX2JsYWRlcysrOwotCQlsYXN0X25hc2lkID0gbmFzaWQ7Ci0JfQorCWZvcihpID0gMDsgaSA8IFVWSF9OT0RFX1BSRVNFTlRfVEFCTEVfREVQVEg7IGkrKykKKwkJdXZfcG9zc2libGVfYmxhZGVzICs9CisJCSAgaHdlaWdodDY0KHV2X3JlYWRfbG9jYWxfbW1yKCBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFICsgaSAqIDgpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiVVY6IEZvdW5kICVkIGJsYWRlc1xuIiwgdXZfbnVtX3Bvc3NpYmxlX2JsYWRlcygpKTsKIAogCWJ5dGVzID0gc2l6ZW9mKHN0cnVjdCB1dl9ibGFkZV9pbmZvKSAqIHV2X251bV9wb3NzaWJsZV9ibGFkZXMoKTsKIAl1dl9ibGFkZV9pbmZvID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhieXRlcyk7CiAKKwlnZXRfbG93bWVtX3JlZGlyZWN0KCZsb3dtZW1fcmVkaXJfYmFzZSwgJmxvd21lbV9yZWRpcl9zaXplKTsKKwogCWJ5dGVzID0gc2l6ZW9mKHV2X25vZGVfdG9fYmxhZGVbMF0pICogbnVtX3Bvc3NpYmxlX25vZGVzKCk7CiAJdXZfbm9kZV90b19ibGFkZSA9IGFsbG9jX2Jvb3RtZW1fcGFnZXMoYnl0ZXMpOwogCW1lbXNldCh1dl9ub2RlX3RvX2JsYWRlLCAyNTUsIGJ5dGVzKTsKQEAgLTIwMCw0MyArMzA5LDYyIEBACiAJdXZfY3B1X3RvX2JsYWRlID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhieXRlcyk7CiAJbWVtc2V0KHV2X2NwdV90b19ibGFkZSwgMjU1LCBieXRlcyk7CiAKLQlsYXN0X25hc2lkID0gLTE7Ci0JYmxhZGUgPSAtMTsKLQlsY3B1ID0gLTE7Ci0JZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgewotCQluaWQgPSBjcHVfdG9fbm9kZShjcHUpOwotCQluYXNpZCA9IHV2X2FwaWNpZF90b19uYXNpZChwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpKTsKLQkJaWYgKG5hc2lkICE9IGxhc3RfbmFzaWQpIHsKLQkJCWJsYWRlKys7Ci0JCQlsY3B1ID0gLTE7Ci0JCQl1dl9ibGFkZV9pbmZvW2JsYWRlXS5ucl9wb3NpYmxlX2NwdXMgPSAwOworCWJsYWRlID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgVVZIX05PREVfUFJFU0VOVF9UQUJMRV9ERVBUSDsgaSsrKSB7CisJCXByZXNlbnQgPSB1dl9yZWFkX2xvY2FsX21tcihVVkhfTk9ERV9QUkVTRU5UX1RBQkxFICsgaSAqIDgpOworCQlmb3IgKGogPSAwOyBqIDwgNjQ7IGorKykgeworCQkJaWYgKCF0ZXN0X2JpdChqLCAmcHJlc2VudCkpCisJCQkJY29udGludWU7CisJCQl1dl9ibGFkZV9pbmZvW2JsYWRlXS5wbm9kZSA9IChpICogNjQgKyBqKTsKKwkJCXV2X2JsYWRlX2luZm9bYmxhZGVdLm5yX3Bvc3NpYmxlX2NwdXMgPSAwOwogCQkJdXZfYmxhZGVfaW5mb1tibGFkZV0ubnJfb25saW5lX2NwdXMgPSAwOworCQkJYmxhZGUrKzsKIAkJfQotCQlsYXN0X25hc2lkID0gbmFzaWQ7Ci0JCWxjcHUrKzsKKwl9CiAKLQkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPm1fdmFsID0gbV9uX2NvbmZpZy5zLm1fc2t0OwotCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+bl92YWwgPSBtX25fY29uZmlnLnMubl9za3Q7CisJbm9kZV9pZC52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX05PREVfSUQpOworCWdub2RlX3VwcGVyID0gKCgodW5zaWduZWQgbG9uZylub2RlX2lkLnMubm9kZV9pZCkgJgorCQkgICAgICAgfigoMSA8PCBuX3ZhbCkgLSAxKSkgPDwgbV92YWw7CisKKwlmb3JfZWFjaF9wcmVzZW50X2NwdShjcHUpIHsKKwkJbmlkID0gY3B1X3RvX25vZGUoY3B1KTsKKwkJcG5vZGUgPSB1dl9hcGljaWRfdG9fcG5vZGUocGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KSk7CisJCWJsYWRlID0gYm9vdF9wbm9kZV90b19ibGFkZShwbm9kZSk7CisJCWxjcHUgPSB1dl9ibGFkZV9pbmZvW2JsYWRlXS5ucl9wb3NzaWJsZV9jcHVzOworCQl1dl9ibGFkZV9pbmZvW2JsYWRlXS5ucl9wb3NzaWJsZV9jcHVzKys7CisKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmxvd21lbV9yZW1hcF9iYXNlID0gbG93bWVtX3JlZGlyX2Jhc2U7CisJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5sb3dtZW1fcmVtYXBfdG9wID0KKwkJCQkJbG93bWVtX3JlZGlyX2Jhc2UgKyBsb3dtZW1fcmVkaXJfc2l6ZTsKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPm1fdmFsID0gbV92YWw7CisJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5uX3ZhbCA9IG1fdmFsOwogCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+bnVtYV9ibGFkZV9pZCA9IGJsYWRlOwogCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+YmxhZGVfcHJvY2Vzc29yX2lkID0gbGNwdTsKLQkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmxvY2FsX25hc2lkID0gbmFzaWQ7Ci0JCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5nbm9kZV91cHBlciA9Ci0JCSAgICBuYXNpZCAmIH4oKDEgPDwgdXZfaHViX2luZm8tPm5fdmFsKSAtIDEpOworCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+cG5vZGUgPSBwbm9kZTsKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPnBub2RlX21hc2sgPSAoMSA8PCBuX3ZhbCkgLSAxOworCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+Z3BhX21hc2sgPSAoMSA8PCAobV92YWwgKyBuX3ZhbCkpIC0gMTsKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmdub2RlX3VwcGVyID0gZ25vZGVfdXBwZXI7CiAJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5nbG9iYWxfbW1yX2Jhc2UgPSBtbXJfYmFzZTsKIAkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmNvaGVyZW5jeV9kb21haW5fbnVtYmVyID0gMDsvKiBaWlogKi8KLQkJdXZfYmxhZGVfaW5mb1tibGFkZV0ubmFzaWQgPSBuYXNpZDsKLQkJdXZfYmxhZGVfaW5mb1tibGFkZV0ubnJfcG9zaWJsZV9jcHVzKys7CiAJCXV2X25vZGVfdG9fYmxhZGVbbmlkXSA9IGJsYWRlOwogCQl1dl9jcHVfdG9fYmxhZGVbY3B1XSA9IGJsYWRlOworCQltYXhfcG5vZGUgPSBtYXgocG5vZGUsIG1heF9wbm9kZSk7CiAKLQkJcHJpbnRrKEtFUk5fREVCVUcgIlVWIGNwdSAlZCwgYXBpY2lkIDB4JXgsIG5hc2lkICVkLCBuaWQgJWRcbiIsCi0JCSAgICAgICBjcHUsIHBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSksIG5hc2lkLCBuaWQpOwotCQlwcmludGsoS0VSTl9ERUJVRyAiVVYgICBsY3B1ICVkLCBibGFkZSAlZFxuIiwgbGNwdSwgYmxhZGUpOworCQlwcmludGsoS0VSTl9ERUJVRyAiVVY6IGNwdSAlZCwgYXBpY2lkIDB4JXgsIHBub2RlICVkLCBuaWQgJWQsICIKKwkJCSJsY3B1ICVkLCBibGFkZSAlZFxuIiwKKwkJCWNwdSwgcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KSwgcG5vZGUsIG5pZCwKKwkJCWxjcHUsIGJsYWRlKTsKIAl9CisKKwltYXBfZ3J1X2hpZ2gobWF4X3Bub2RlKTsKKwltYXBfbW1yX2hpZ2gobWF4X3Bub2RlKTsKKwltYXBfY29uZmlnX2hpZ2gobWF4X3Bub2RlKTsKKwltYXBfbW1pb2hfaGlnaChtYXhfcG5vZGUpOwogfQogCiAvKgogICogQ2FsbGVkIG9uIGVhY2ggY3B1IHRvIGluaXRpYWxpemUgdGhlIHBlcl9jcHUgVVYgZGF0YSBhcmVhLgorICogCVpaWiBob3RwbHVnIG5vdCBzdXBwb3J0ZWQgeWV0CiAgKi8KIHZvaWQgX19jcHVpbml0IHV2X2NwdV9pbml0KHZvaWQpCiB7CkBAIC0yNDYsNSArMzc0LDUgQEAKIAl1dl9ibGFkZV9pbmZvW3V2X251bWFfYmxhZGVfaWQoKV0ubnJfb25saW5lX2NwdXMrKzsKIAogCWlmIChnZXRfdXZfc3lzdGVtX3R5cGUoKSA9PSBVVl9OT05fVU5JUVVFX0FQSUMpCi0JCXNldF94MmFwaWNfZXh0cmFfYml0cyh1dl9odWJfaW5mby0+bG9jYWxfbmFzaWQpOworCQlzZXRfeDJhcGljX2V4dHJhX2JpdHModXZfaHViX2luZm8tPnBub2RlKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9oZWFkLmMgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNjZiZDMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZC5jCkBAIC0wLDAgKzEsNTUgQEAKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisKKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vYmlvc19lYmRhLmg+CisKKyNkZWZpbmUgQklPU19MT1dNRU1fS0lMT0JZVEVTIDB4NDEzCisKKy8qCisgKiBUaGUgQklPUyBwbGFjZXMgdGhlIEVCREEvWEJEQSBhdCB0aGUgdG9wIG9mIGNvbnZlbnRpb25hbAorICogbWVtb3J5LCBhbmQgdXN1YWxseSBkZWNyZWFzZXMgdGhlIHJlcG9ydGVkIGFtb3VudCBvZgorICogY29udmVudGlvbmFsIG1lbW9yeSAoaW50IDB4MTIpIHRvby4gVGhpcyBhbHNvIGNvbnRhaW5zIGEKKyAqIHdvcmthcm91bmQgZm9yIERlbGwgc3lzdGVtcyB0aGF0IG5lZ2xlY3QgdG8gcmVzZXJ2ZSBFQkRBLgorICogVGhlIHNhbWUgd29ya2Fyb3VuZCBhbHNvIGF2b2lkcyBhIHByb2JsZW0gd2l0aCB0aGUgQU1ENzY4TVBYCisgKiBjaGlwc2V0OiByZXNlcnZlIGEgcGFnZSBiZWZvcmUgVkdBIHRvIHByZXZlbnQgUENJIHByZWZldGNoCisgKiBpbnRvIGl0IChlcnJhdGEgIzU2KS4gVXN1YWxseSB0aGUgcGFnZSBpcyByZXNlcnZlZCBhbnl3YXlzLAorICogdW5sZXNzIHlvdSBoYXZlIG5vIFBTLzIgbW91c2UgcGx1Z2dlZCBpbi4KKyAqLwordm9pZCBfX2luaXQgcmVzZXJ2ZV9lYmRhX3JlZ2lvbih2b2lkKQoreworCXVuc2lnbmVkIGludCBsb3dtZW0sIGViZGFfYWRkcjsKKworCS8qIFRvIGRldGVybWluZSB0aGUgcG9zaXRpb24gb2YgdGhlIEVCREEgYW5kIHRoZSAqLworCS8qIGVuZCBvZiBjb252ZW50aW9uYWwgbWVtb3J5LCB3ZSBuZWVkIHRvIGxvb2sgYXQgKi8KKwkvKiB0aGUgQklPUyBkYXRhIGFyZWEuIEluIGEgcGFyYXZpcnR1YWwgZW52aXJvbm1lbnQgKi8KKwkvKiB0aGF0IGFyZWEgaXMgYWJzZW50LiBXZSdsbCBqdXN0IGhhdmUgdG8gYXNzdW1lICovCisJLyogdGhhdCB0aGUgcGFyYXZpcnQgY2FzZSBjYW4gaGFuZGxlIG1lbW9yeSBzZXR1cCAqLworCS8qIGNvcnJlY3RseSwgd2l0aG91dCBvdXIgaGVscC4gKi8KKwlpZiAocGFyYXZpcnRfZW5hYmxlZCgpKQorCQlyZXR1cm47CisKKwkvKiBlbmQgb2YgbG93IChjb252ZW50aW9uYWwpIG1lbW9yeSAqLworCWxvd21lbSA9ICoodW5zaWduZWQgc2hvcnQgKilfX3ZhKEJJT1NfTE9XTUVNX0tJTE9CWVRFUyk7CisJbG93bWVtIDw8PSAxMDsKKworCS8qIHN0YXJ0IG9mIEVCREEgYXJlYSAqLworCWViZGFfYWRkciA9IGdldF9iaW9zX2ViZGEoKTsKKworCS8qIEZpeHVwOiBiaW9zIHB1dHMgYW4gRUJEQSBpbiB0aGUgdG9wIDY0SyBzZWdtZW50ICovCisJLyogb2YgY29udmVudGlvbmFsIG1lbW9yeSwgYnV0IGRvZXMgbm90IGFkanVzdCBsb3dtZW0uICovCisJaWYgKChsb3dtZW0gLSBlYmRhX2FkZHIpIDw9IDB4MTAwMDApCisJCWxvd21lbSA9IGViZGFfYWRkcjsKKworCS8qIEZpeHVwOiBiaW9zIGRvZXMgbm90IHJlcG9ydCBhbiBFQkRBIGF0IGFsbC4gKi8KKwkvKiBTb21lIG9sZCBEZWxscyBzZWVtIHRvIG5lZWQgNGsgYW55aG93IChidWd6aWxsYSAyOTkwKSAqLworCWlmICgoZWJkYV9hZGRyID09IDApICYmIChsb3dtZW0gPj0gMHg5ZjAwMCkpCisJCWxvd21lbSA9IDB4OWYwMDA7CisKKwkvKiBQYXJhbm9pYTogc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0Li4uICovCisJaWYgKChsb3dtZW0gPT0gMCkgfHwgKGxvd21lbSA+PSAweDEwMDAwMCkpCisJCWxvd21lbSA9IDB4OWYwMDA7CisKKwkvKiByZXNlcnZlIGFsbCBtZW1vcnkgYmV0d2VlbiBsb3dtZW0gYW5kIHRoZSAxTUIgbWFyayAqLworCXJlc2VydmVfZWFybHlfb3ZlcmxhcF9vayhsb3dtZW0sIDB4MTAwMDAwLCAiQklPUyByZXNlcnZlZCIpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2hlYWQzMi5jIGIvYXJjaC94ODYva2VybmVsL2hlYWQzMi5jCmluZGV4IDNkYjA1OTAuLmZhMWQyNWQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9oZWFkMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZDMyLmMKQEAgLTgsNyArOCwzNCBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zdGFydF9rZXJuZWwuaD4KIAorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgorI2luY2x1ZGUgPGFzbS9lODIwLmg+CisjaW5jbHVkZSA8YXNtL2Jpb3NfZWJkYS5oPgorCiB2b2lkIF9faW5pdCBpMzg2X3N0YXJ0X2tlcm5lbCh2b2lkKQogeworCXJlc2VydmVfZWFybHkoX19wYV9zeW1ib2woJl90ZXh0KSwgX19wYV9zeW1ib2woJl9lbmQpLCAiVEVYVCBEQVRBIEJTUyIpOworCisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECisJLyogUmVzZXJ2ZSBJTklUUkQgKi8KKwlpZiAoYm9vdF9wYXJhbXMuaGRyLnR5cGVfb2ZfbG9hZGVyICYmIGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlKSB7CisJCXU2NCByYW1kaXNrX2ltYWdlID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfaW1hZ2U7CisJCXU2NCByYW1kaXNrX3NpemUgID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfc2l6ZTsKKwkJdTY0IHJhbWRpc2tfZW5kICAgPSByYW1kaXNrX2ltYWdlICsgcmFtZGlza19zaXplOworCQlyZXNlcnZlX2Vhcmx5KHJhbWRpc2tfaW1hZ2UsIHJhbWRpc2tfZW5kLCAiUkFNRElTSyIpOworCX0KKyNlbmRpZgorCXJlc2VydmVfZWFybHkoaW5pdF9wZ190YWJsZXNfc3RhcnQsIGluaXRfcGdfdGFibGVzX2VuZCwKKwkJCSJJTklUX1BHX1RBQkxFIik7CisKKwlyZXNlcnZlX2ViZGFfcmVnaW9uKCk7CisKKwkvKgorCSAqIEF0IHRoaXMgcG9pbnQgZXZlcnl0aGluZyBzdGlsbCBuZWVkZWQgZnJvbSB0aGUgYm9vdCBsb2FkZXIKKwkgKiBvciBCSU9TIG9yIGtlcm5lbCB0ZXh0IHNob3VsZCBiZSBlYXJseSByZXNlcnZlZCBvciBtYXJrZWQgbm90CisJICogUkFNIGluIGU4MjAuIEFsbCBvdGhlciBtZW1vcnkgaXMgZnJlZSBnYW1lLgorCSAqLworCiAJc3RhcnRfa2VybmVsKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMKaW5kZXggZTI1YzU3Yi4uYzk3ODE5OCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkNjQuYwpAQCAtMjUsNiArMjUsMjAgQEAKICNpbmNsdWRlIDxhc20vZTgyMC5oPgogI2luY2x1ZGUgPGFzbS9iaW9zX2ViZGEuaD4KIAorLyogYm9vdCBjcHUgcGRhICovCitzdGF0aWMgc3RydWN0IHg4NjY0X3BkYSBfYm9vdF9jcHVfcGRhIF9fcmVhZF9tb3N0bHk7CisKKyNpZmRlZiBDT05GSUdfU01QCisvKgorICogV2UgaW5zdGFsbCBhbiBlbXB0eSBjcHVfcGRhIHBvaW50ZXIgdGFibGUgdG8gaW5kaWNhdGUgdG8gZWFybHkgdXNlcnMKKyAqIChudW1hX3NldF9ub2RlKSB0aGF0IHRoZSBjcHVfcGRhIHBvaW50ZXIgdGFibGUgZm9yIGNwdXMgb3RoZXIgdGhhbgorICogdGhlIGJvb3QgY3B1IGlzIG5vdCB5ZXQgc2V0dXAuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgeDg2NjRfcGRhICpfX2NwdV9wZGFbTlJfQ1BVU10gX19pbml0ZGF0YTsKKyNlbHNlCitzdGF0aWMgc3RydWN0IHg4NjY0X3BkYSAqX19jcHVfcGRhW05SX0NQVVNdIF9fcmVhZF9tb3N0bHk7CisjZW5kaWYKKwogc3RhdGljIHZvaWQgX19pbml0IHphcF9pZGVudGl0eV9tYXBwaW5ncyh2b2lkKQogewogCXBnZF90ICpwZ2QgPSBwZ2Rfb2Zmc2V0X2soMFVMKTsKQEAgLTUxLDc0ICs2NSw2IEBACiAJfQogfQogCi0jZGVmaW5lIEJJT1NfTE9XTUVNX0tJTE9CWVRFUyAweDQxMwotCi0vKgotICogVGhlIEJJT1MgcGxhY2VzIHRoZSBFQkRBL1hCREEgYXQgdGhlIHRvcCBvZiBjb252ZW50aW9uYWwKLSAqIG1lbW9yeSwgYW5kIHVzdWFsbHkgZGVjcmVhc2VzIHRoZSByZXBvcnRlZCBhbW91bnQgb2YKLSAqIGNvbnZlbnRpb25hbCBtZW1vcnkgKGludCAweDEyKSB0b28uIFRoaXMgYWxzbyBjb250YWlucyBhCi0gKiB3b3JrYXJvdW5kIGZvciBEZWxsIHN5c3RlbXMgdGhhdCBuZWdsZWN0IHRvIHJlc2VydmUgRUJEQS4KLSAqIFRoZSBzYW1lIHdvcmthcm91bmQgYWxzbyBhdm9pZHMgYSBwcm9ibGVtIHdpdGggdGhlIEFNRDc2OE1QWAotICogY2hpcHNldDogcmVzZXJ2ZSBhIHBhZ2UgYmVmb3JlIFZHQSB0byBwcmV2ZW50IFBDSSBwcmVmZXRjaAotICogaW50byBpdCAoZXJyYXRhICM1NikuIFVzdWFsbHkgdGhlIHBhZ2UgaXMgcmVzZXJ2ZWQgYW55d2F5cywKLSAqIHVubGVzcyB5b3UgaGF2ZSBubyBQUy8yIG1vdXNlIHBsdWdnZWQgaW4uCi0gKi8KLXN0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX2ViZGFfcmVnaW9uKHZvaWQpCi17Ci0JdW5zaWduZWQgaW50IGxvd21lbSwgZWJkYV9hZGRyOwotCi0JLyogVG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiB0aGUgRUJEQSBhbmQgdGhlICovCi0JLyogZW5kIG9mIGNvbnZlbnRpb25hbCBtZW1vcnksIHdlIG5lZWQgdG8gbG9vayBhdCAqLwotCS8qIHRoZSBCSU9TIGRhdGEgYXJlYS4gSW4gYSBwYXJhdmlydHVhbCBlbnZpcm9ubWVudCAqLwotCS8qIHRoYXQgYXJlYSBpcyBhYnNlbnQuIFdlJ2xsIGp1c3QgaGF2ZSB0byBhc3N1bWUgKi8KLQkvKiB0aGF0IHRoZSBwYXJhdmlydCBjYXNlIGNhbiBoYW5kbGUgbWVtb3J5IHNldHVwICovCi0JLyogY29ycmVjdGx5LCB3aXRob3V0IG91ciBoZWxwLiAqLwotCWlmIChwYXJhdmlydF9lbmFibGVkKCkpCi0JCXJldHVybjsKLQotCS8qIGVuZCBvZiBsb3cgKGNvbnZlbnRpb25hbCkgbWVtb3J5ICovCi0JbG93bWVtID0gKih1bnNpZ25lZCBzaG9ydCAqKV9fdmEoQklPU19MT1dNRU1fS0lMT0JZVEVTKTsKLQlsb3dtZW0gPDw9IDEwOwotCi0JLyogc3RhcnQgb2YgRUJEQSBhcmVhICovCi0JZWJkYV9hZGRyID0gZ2V0X2Jpb3NfZWJkYSgpOwotCi0JLyogRml4dXA6IGJpb3MgcHV0cyBhbiBFQkRBIGluIHRoZSB0b3AgNjRLIHNlZ21lbnQgKi8KLQkvKiBvZiBjb252ZW50aW9uYWwgbWVtb3J5LCBidXQgZG9lcyBub3QgYWRqdXN0IGxvd21lbS4gKi8KLQlpZiAoKGxvd21lbSAtIGViZGFfYWRkcikgPD0gMHgxMDAwMCkKLQkJbG93bWVtID0gZWJkYV9hZGRyOwotCi0JLyogRml4dXA6IGJpb3MgZG9lcyBub3QgcmVwb3J0IGFuIEVCREEgYXQgYWxsLiAqLwotCS8qIFNvbWUgb2xkIERlbGxzIHNlZW0gdG8gbmVlZCA0ayBhbnlob3cgKGJ1Z3ppbGxhIDI5OTApICovCi0JaWYgKChlYmRhX2FkZHIgPT0gMCkgJiYgKGxvd21lbSA+PSAweDlmMDAwKSkKLQkJbG93bWVtID0gMHg5ZjAwMDsKLQotCS8qIFBhcmFub2lhOiBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQuLi4gKi8KLQlpZiAoKGxvd21lbSA9PSAwKSB8fCAobG93bWVtID49IDB4MTAwMDAwKSkKLQkJbG93bWVtID0gMHg5ZjAwMDsKLQotCS8qIHJlc2VydmUgYWxsIG1lbW9yeSBiZXR3ZWVuIGxvd21lbSBhbmQgdGhlIDFNQiBtYXJrICovCi0JcmVzZXJ2ZV9lYXJseShsb3dtZW0sIDB4MTAwMDAwLCAiQklPUyByZXNlcnZlZCIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9zZXR1cF9kYXRhKHZvaWQpCi17Ci0Jc3RydWN0IHNldHVwX2RhdGEgKmRhdGE7Ci0JdW5zaWduZWQgbG9uZyBwYV9kYXRhOwotCWNoYXIgYnVmWzMyXTsKLQotCWlmIChib290X3BhcmFtcy5oZHIudmVyc2lvbiA8IDB4MDIwOSkKLQkJcmV0dXJuOwotCXBhX2RhdGEgPSBib290X3BhcmFtcy5oZHIuc2V0dXBfZGF0YTsKLQl3aGlsZSAocGFfZGF0YSkgewotCQlkYXRhID0gZWFybHlfaW9yZW1hcChwYV9kYXRhLCBzaXplb2YoKmRhdGEpKTsKLQkJc3ByaW50ZihidWYsICJzZXR1cCBkYXRhICV4IiwgZGF0YS0+dHlwZSk7Ci0JCXJlc2VydmVfZWFybHkocGFfZGF0YSwgcGFfZGF0YStzaXplb2YoKmRhdGEpK2RhdGEtPmxlbiwgYnVmKTsKLQkJcGFfZGF0YSA9IGRhdGEtPm5leHQ7Ci0JCWVhcmx5X2lvdW5tYXAoZGF0YSwgc2l6ZW9mKCpkYXRhKSk7Ci0JfQotfQotCiB2b2lkIF9faW5pdCB4ODZfNjRfc3RhcnRfa2VybmVsKGNoYXIgKiByZWFsX21vZGVfZGF0YSkKIHsKIAlpbnQgaTsKQEAgLTE1NiwxMCArMTAyLDE3IEBACiAKIAllYXJseV9wcmludGsoIktlcm5lbCBhbGl2ZVxuIik7CiAKLSAJZm9yIChpID0gMDsgaSA8IE5SX0NQVVM7IGkrKykKLSAJCWNwdV9wZGEoaSkgPSAmYm9vdF9jcHVfcGRhW2ldOwotCisJX2NwdV9wZGEgPSBfX2NwdV9wZGE7CisJY3B1X3BkYSgwKSA9ICZfYm9vdF9jcHVfcGRhOwogCXBkYV9pbml0KDApOworCisJZWFybHlfcHJpbnRrKCJLZXJuZWwgcmVhbGx5IGFsaXZlXG4iKTsKKworCXg4Nl82NF9zdGFydF9yZXNlcnZhdGlvbnMocmVhbF9tb2RlX2RhdGEpOworfQorCit2b2lkIF9faW5pdCB4ODZfNjRfc3RhcnRfcmVzZXJ2YXRpb25zKGNoYXIgKnJlYWxfbW9kZV9kYXRhKQorewogCWNvcHlfYm9vdGRhdGEoX192YShyZWFsX21vZGVfZGF0YSkpOwogCiAJcmVzZXJ2ZV9lYXJseShfX3BhX3N5bWJvbCgmX3RleHQpLCBfX3BhX3N5bWJvbCgmX2VuZCksICJURVhUIERBVEEgQlNTIik7CkBAIC0xNzUsNyArMTI4LDYgQEAKICNlbmRpZgogCiAJcmVzZXJ2ZV9lYmRhX3JlZ2lvbigpOwotCXJlc2VydmVfc2V0dXBfZGF0YSgpOwogCiAJLyoKIAkgKiBBdCB0aGlzIHBvaW50IGV2ZXJ5dGhpbmcgc3RpbGwgbmVlZGVkIGZyb20gdGhlIGJvb3QgbG9hZGVyCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TIGIvYXJjaC94ODYva2VybmVsL2hlYWRfMzIuUwppbmRleCBmNzM1N2NjLi5mNjdlOTM0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkXzMyLlMKQEAgLTE5NCw2ICsxOTQsNyBAQAogCXhvcmwgJWVieCwlZWJ4CQkJCS8qICVlYnggaXMga2VwdCBhdCB6ZXJvICovCiAKIAltb3ZsICRwYShwZzApLCAlZWRpCisJbW92bCAlZWRpLCBwYShpbml0X3BnX3RhYmxlc19zdGFydCkKIAltb3ZsICRwYShzd2FwcGVyX3BnX3BtZCksICVlZHgKIAltb3ZsICRQVEVfQVRUUiwgJWVheAogMTA6CkBAIC0yMTksNiArMjIwLDggQEAKIAlqYiAxMGIKIDE6CiAJbW92bCAlZWRpLHBhKGluaXRfcGdfdGFibGVzX2VuZCkKKwlzaHJsICQxMiwgJWVheAorCW1vdmwgJWVheCwgcGEobWF4X3Bmbl9tYXBwZWQpCiAKIAkvKiBEbyBlYXJseSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZml4bWFwIGFyZWEgKi8KIAltb3ZsICRwYShzd2FwcGVyX3BnX2ZpeG1hcCkrUERFX0FUVFIsJWVheApAQCAtMjI4LDYgKzIzMSw3IEBACiBwYWdlX3BkZV9vZmZzZXQgPSAoX19QQUdFX09GRlNFVCA+PiAyMCk7CiAKIAltb3ZsICRwYShwZzApLCAlZWRpCisJbW92bCAlZWRpLCBwYShpbml0X3BnX3RhYmxlc19zdGFydCkKIAltb3ZsICRwYShzd2FwcGVyX3BnX2RpciksICVlZHgKIAltb3ZsICRQVEVfQVRUUiwgJWVheAogMTA6CkBAIC0yNDksNiArMjUzLDggQEAKIAljbXBsICVlYnAsJWVheAogCWpiIDEwYgogCW1vdmwgJWVkaSxwYShpbml0X3BnX3RhYmxlc19lbmQpCisJc2hybCAkMTIsICVlYXgKKwltb3ZsICVlYXgsIHBhKG1heF9wZm5fbWFwcGVkKQogCiAJLyogRG8gZWFybHkgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGZpeG1hcCBhcmVhICovCiAJbW92bCAkcGEoc3dhcHBlcl9wZ19maXhtYXApK1BERV9BVFRSLCVlYXgKQEAgLTQ0NiwxMCArNDUyLDEzIEBACiAJamUgICAxZgogCW1vdmwgJChfX0tFUk5FTF9QRVJDUFUpLCAlZWF4CiAJbW92bCAlZWF4LCVmcwkJIyBzZXQgdGhpcyBjcHUncyBwZXJjcHUKLQlqbXAgaW5pdGlhbGl6ZV9zZWNvbmRhcnkgIyBhbGwgb3RoZXIgQ1BVcyBjYWxsIGluaXRpYWxpemVfc2Vjb25kYXJ5CisJbW92bCAoc3RhY2tfc3RhcnQpLCAlZXNwCiAxOgogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KLQlqbXAgaTM4Nl9zdGFydF9rZXJuZWwKKwlqbXAgKihpbml0aWFsX2NvZGUpCisuYWxpZ24gNAorRU5UUlkoaW5pdGlhbF9jb2RlKQorCS5sb25nIGkzODZfc3RhcnRfa2VybmVsCiAKIC8qCiAgKiBXZSBkZXBlbmQgb24gRVQgdG8gYmUgY29ycmVjdC4gVGhpcyBjaGVja3MgZm9yIDI4Ny8zODcuCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TIGIvYXJjaC94ODYva2VybmVsL2hlYWRfNjQuUwppbmRleCAxMGExOTU1Li5iMDdhYzdiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkXzY0LlMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLWZsYWdzLmg+CiAKICNpZmRlZiBDT05GSUdfUEFSQVZJUlQKICNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KQEAgLTMxLDYgKzMyLDEzIEBACiAgKgogICovCiAKKyNkZWZpbmUgcHVkX2luZGV4KHgpCSgoKHgpID4+IFBVRF9TSElGVCkgJiAoUFRSU19QRVJfUFVELTEpKQorCitMNF9QQUdFX09GRlNFVCA9IHBnZF9pbmRleChfX1BBR0VfT0ZGU0VUKQorTDNfUEFHRV9PRkZTRVQgPSBwdWRfaW5kZXgoX19QQUdFX09GRlNFVCkKK0w0X1NUQVJUX0tFUk5FTCA9IHBnZF9pbmRleChfX1NUQVJUX0tFUk5FTF9tYXApCitMM19TVEFSVF9LRVJORUwgPSBwdWRfaW5kZXgoX19TVEFSVF9LRVJORUxfbWFwKQorCiAJLnRleHQKIAkuc2VjdGlvbiAudGV4dC5oZWFkCiAJLmNvZGU2NApAQCAtNzYsOCArODQsOCBAQAogCS8qIEZpeHVwIHRoZSBwaHlzaWNhbCBhZGRyZXNzZXMgaW4gdGhlIHBhZ2UgdGFibGUKIAkgKi8KIAlhZGRxCSVyYnAsIGluaXRfbGV2ZWw0X3BndCArIDAoJXJpcCkKLQlhZGRxCSVyYnAsIGluaXRfbGV2ZWw0X3BndCArICgyNTgqOCkoJXJpcCkKLQlhZGRxCSVyYnAsIGluaXRfbGV2ZWw0X3BndCArICg1MTEqOCkoJXJpcCkKKwlhZGRxCSVyYnAsIGluaXRfbGV2ZWw0X3BndCArIChMNF9QQUdFX09GRlNFVCo4KSglcmlwKQorCWFkZHEJJXJicCwgaW5pdF9sZXZlbDRfcGd0ICsgKEw0X1NUQVJUX0tFUk5FTCo4KSglcmlwKQogCiAJYWRkcQklcmJwLCBsZXZlbDNfaWRlbnRfcGd0ICsgMCglcmlwKQogCkBAIC0xMjgsNyArMTM2LDcgQEAKIAkvKiBGaXh1cCBwaHlzX2Jhc2UgKi8KIAlhZGRxCSVyYnAsIHBoeXNfYmFzZSglcmlwKQogCi0jaWZkZWYgQ09ORklHX1NNUAorI2lmZGVmIENPTkZJR19YODZfVFJBTVBPTElORQogCWFkZHEJJXJicCwgdHJhbXBvbGluZV9sZXZlbDRfcGd0ICsgMCglcmlwKQogCWFkZHEJJXJicCwgdHJhbXBvbGluZV9sZXZlbDRfcGd0ICsgKDUxMSo4KSglcmlwKQogI2VuZGlmCkBAIC0xNTQsOSArMTYyLDcgQEAKIAkgKi8KIAogCS8qIEVuYWJsZSBQQUUgbW9kZSBhbmQgUEdFICovCi0JeG9ycQklcmF4LCAlcmF4Ci0JYnRzcQkkNSwgJXJheAotCWJ0c3EJJDcsICVyYXgKKwltb3ZsCSQoWDg2X0NSNF9QQUUgfCBYODZfQ1I0X1BHRSksICVlYXgKIAltb3ZxCSVyYXgsICVjcjQKIAogCS8qIFNldHVwIGVhcmx5IGJvb3Qgc3RhZ2UgNCBsZXZlbCBwYWdldGFibGVzLiAqLwpAQCAtMTg0LDE5ICsxOTAsMTUgQEAKIDE6CXdybXNyCQkJCS8qIE1ha2UgY2hhbmdlcyBlZmZlY3RpdmUgKi8KIAogCS8qIFNldHVwIGNyMCAqLwotI2RlZmluZSBDUjBfUE0JCQkJMQkJLyogcHJvdGVjdGVkIG1vZGUgKi8KLSNkZWZpbmUgQ1IwX01QCQkJCSgxPDwxKQotI2RlZmluZSBDUjBfRVQJCQkJKDE8PDQpCi0jZGVmaW5lIENSMF9ORQkJCQkoMTw8NSkKLSNkZWZpbmUgQ1IwX1dQCQkJCSgxPDwxNikKLSNkZWZpbmUgQ1IwX0FNCQkJCSgxPDwxOCkKLSNkZWZpbmUgQ1IwX1BBR0lORyAJCQkoMTw8MzEpCi0JbW92bCAkQ1IwX1BNfENSMF9NUHxDUjBfRVR8Q1IwX05FfENSMF9XUHxDUjBfQU18Q1IwX1BBR0lORywlZWF4CisjZGVmaW5lIENSMF9TVEFURQkoWDg2X0NSMF9QRSB8IFg4Nl9DUjBfTVAgfCBYODZfQ1IwX0VUIHwgXAorCQkJIFg4Nl9DUjBfTkUgfCBYODZfQ1IwX1dQIHwgWDg2X0NSMF9BTSB8IFwKKwkJCSBYODZfQ1IwX1BHKQorCW1vdmwJJENSMF9TVEFURSwgJWVheAogCS8qIE1ha2UgY2hhbmdlcyBlZmZlY3RpdmUgKi8KIAltb3ZxCSVyYXgsICVjcjAKIAogCS8qIFNldHVwIGEgYm9vdCB0aW1lIHN0YWNrICovCi0JbW92cSBpbml0X3JzcCglcmlwKSwlcnNwCisJbW92cSBzdGFja19zdGFydCglcmlwKSwlcnNwCiAKIAkvKiB6ZXJvIEVGTEFHUyBhZnRlciBzZXR0aW5nIHJzcCAqLwogCXB1c2hxICQwCkBAIC0yMDgsNyArMjEwLDcgQEAKIAkgKiBhZGRyZXNzZXMgd2hlcmUgd2UncmUgY3VycmVudGx5IHJ1bm5pbmcgb24uIFdlIGhhdmUgdG8gZG8gdGhhdCBoZXJlCiAJICogYmVjYXVzZSBpbiAzMmJpdCB3ZSBjb3VsZG4ndCBsb2FkIGEgNjRiaXQgbGluZWFyIGFkZHJlc3MuCiAJICovCi0JbGdkdAljcHVfZ2R0X2Rlc2NyKCVyaXApCisJbGdkdAllYXJseV9nZHRfZGVzY3IoJXJpcCkKIAogCS8qIHNldCB1cCBkYXRhIHNlZ21lbnRzLiBhY3R1YWxseSAwIHdvdWxkIGRvIHRvbyAqLwogCW1vdmwgJF9fS0VSTkVMX0RTLCVlYXgKQEAgLTI1Nyw4ICsyNTksOSBAQAogCS5xdWFkCXg4Nl82NF9zdGFydF9rZXJuZWwKIAlfX0ZJTklUREFUQQogCi0JRU5UUlkoaW5pdF9yc3ApCisJRU5UUlkoc3RhY2tfc3RhcnQpCiAJLnF1YWQgIGluaXRfdGhyZWFkX3VuaW9uK1RIUkVBRF9TSVpFLTgKKwkud29yZCAgMAogCiBiYWRfYWRkcmVzczoKIAlqbXAgYmFkX2FkZHJlc3MKQEAgLTMyNywxMSArMzMwLDExIEBACiBFTlRSWShuYW1lKQogCiAvKiBBdXRvbWF0ZSB0aGUgY3JlYXRpb24gb2YgMSB0byAxIG1hcHBpbmcgcG1kIGVudHJpZXMgKi8KLSNkZWZpbmUgUE1EUyhTVEFSVCwgUEVSTSwgQ09VTlQpCQlcCi0JaSA9IDAgOwkJCQkJXAotCS5yZXB0IChDT1VOVCkgOwkJCQlcCi0JLnF1YWQJKFNUQVJUKSArIChpIDw8IDIxKSArIChQRVJNKSA7CVwKLQlpID0gaSArIDEgOwkJCQlcCisjZGVmaW5lIFBNRFMoU1RBUlQsIFBFUk0sIENPVU5UKQkJCVwKKwlpID0gMCA7CQkJCQkJXAorCS5yZXB0IChDT1VOVCkgOwkJCQkJXAorCS5xdWFkCShTVEFSVCkgKyAoaSA8PCBQTURfU0hJRlQpICsgKFBFUk0pIDsJXAorCWkgPSBpICsgMSA7CQkJCQlcCiAJLmVuZHIKIAogCS8qCkBAIC0zNDIsOSArMzQ1LDkgQEAKIAkgKi8KIE5FWFRfUEFHRShpbml0X2xldmVsNF9wZ3QpCiAJLnF1YWQJbGV2ZWwzX2lkZW50X3BndCAtIF9fU1RBUlRfS0VSTkVMX21hcCArIF9LRVJOUEdfVEFCTEUKLQkuZmlsbAkyNTcsOCwwCisJLm9yZwlpbml0X2xldmVsNF9wZ3QgKyBMNF9QQUdFX09GRlNFVCo4LCAwCiAJLnF1YWQJbGV2ZWwzX2lkZW50X3BndCAtIF9fU1RBUlRfS0VSTkVMX21hcCArIF9LRVJOUEdfVEFCTEUKLQkuZmlsbAkyNTIsOCwwCisJLm9yZwlpbml0X2xldmVsNF9wZ3QgKyBMNF9TVEFSVF9LRVJORUwqOCwgMAogCS8qICgyXjQ4LSgyKjEwMjQqMTAyNCoxMDI0KSkvKDJeMzkpID0gNTExICovCiAJLnF1YWQJbGV2ZWwzX2tlcm5lbF9wZ3QgLSBfX1NUQVJUX0tFUk5FTF9tYXAgKyBfUEFHRV9UQUJMRQogCkBAIC0zNTMsNyArMzU2LDcgQEAKIAkuZmlsbAk1MTEsOCwwCiAKIE5FWFRfUEFHRShsZXZlbDNfa2VybmVsX3BndCkKLQkuZmlsbAk1MTAsOCwwCisJLmZpbGwJTDNfU1RBUlRfS0VSTkVMLDgsMAogCS8qICgyXjQ4LSgyKjEwMjQqMTAyNCoxMDI0KS0oKDJeMzkpKjUxMSkpLygyXjMwKSA9IDUxMCAqLwogCS5xdWFkCWxldmVsMl9rZXJuZWxfcGd0IC0gX19TVEFSVF9LRVJORUxfbWFwICsgX0tFUk5QR19UQUJMRQogCS5xdWFkCWxldmVsMl9maXhtYXBfcGd0IC0gX19TVEFSVF9LRVJORUxfbWFwICsgX1BBR0VfVEFCTEUKQEAgLTM4NCw3ICszODcsNyBAQAogCSAqICBJZiB5b3Ugd2FudCB0byBpbmNyZWFzZSB0aGlzIHRoZW4gaW5jcmVhc2UgTU9EVUxFU19WQUREUgogCSAqICB0b28uKQogCSAqLwotCVBNRFMoMCwgX19QQUdFX0tFUk5FTF9MQVJHRV9FWEVDfF9QQUdFX0dMT0JBTCwKKwlQTURTKDAsIF9fUEFHRV9LRVJORUxfTEFSR0VfRVhFQywKIAkJS0VSTkVMX0lNQUdFX1NJWkUvUE1EX1NJWkUpCiAKIE5FWFRfUEFHRShsZXZlbDJfc3BhcmVfcGd0KQpAQCAtMzk1LDU0ICszOTgsMTYgQEAKIAogCS5kYXRhCiAJLmFsaWduIDE2Ci0JLmdsb2JsIGNwdV9nZHRfZGVzY3IKLWNwdV9nZHRfZGVzY3I6Ci0JLndvcmQJZ2R0X2VuZC1jcHVfZ2R0X3RhYmxlLTEKLWdkdDoKLQkucXVhZAljcHVfZ2R0X3RhYmxlCi0jaWZkZWYgQ09ORklHX1NNUAotCS5yZXB0CU5SX0NQVVMtMQotCS53b3JkCTAKLQkucXVhZAkwCi0JLmVuZHIKLSNlbmRpZgorCS5nbG9ibCBlYXJseV9nZHRfZGVzY3IKK2Vhcmx5X2dkdF9kZXNjcjoKKwkud29yZAlHRFRfRU5UUklFUyo4LTEKKwkucXVhZCAgIHBlcl9jcHVfX2dkdF9wYWdlCiAKIEVOVFJZKHBoeXNfYmFzZSkKIAkvKiBUaGlzIG11c3QgbWF0Y2ggdGhlIGZpcnN0IGVudHJ5IGluIGxldmVsMl9rZXJuZWxfcGd0ICovCiAJLnF1YWQgICAweDAwMDAwMDAwMDAwMDAwMDAKIAotLyogV2UgbmVlZCB2YWxpZCBrZXJuZWwgc2VnbWVudHMgZm9yIGRhdGEgYW5kIGNvZGUgaW4gbG9uZyBtb2RlIHRvbwotICogSVJFVCB3aWxsIGNoZWNrIHRoZSBzZWdtZW50IHR5cGVzICBra2VpbCAyMDAwLzEwLzI4Ci0gKiBBbHNvIHN5c3JldCBtYW5kYXRlcyBhIHNwZWNpYWwgR0RUIGxheW91dCAKLSAqLwotCQkgCQkKLQkuc2VjdGlvbiAuZGF0YS5wYWdlX2FsaWduZWQsICJhdyIKLQkuYWxpZ24gUEFHRV9TSVpFCi0KLS8qIFRoZSBUTFMgZGVzY3JpcHRvcnMgYXJlIGN1cnJlbnRseSBhdCBhIGRpZmZlcmVudCBwbGFjZSBjb21wYXJlZCB0byBpMzg2LgotICAgSG9wZWZ1bGx5IG5vYm9keSBleHBlY3RzIHRoZW0gYXQgYSBmaXhlZCBwbGFjZSAoV2luZT8pICovCiAJCi1FTlRSWShjcHVfZ2R0X3RhYmxlKQotCS5xdWFkCTB4MDAwMDAwMDAwMDAwMDAwMAkvKiBOVUxMIGRlc2NyaXB0b3IgKi8KLQkucXVhZAkweDAwY2Y5YjAwMDAwMGZmZmYJLyogX19LRVJORUwzMl9DUyAqLwotCS5xdWFkCTB4MDBhZjliMDAwMDAwZmZmZgkvKiBfX0tFUk5FTF9DUyAqLwotCS5xdWFkCTB4MDBjZjkzMDAwMDAwZmZmZgkvKiBfX0tFUk5FTF9EUyAqLwotCS5xdWFkCTB4MDBjZmZiMDAwMDAwZmZmZgkvKiBfX1VTRVIzMl9DUyAqLwotCS5xdWFkCTB4MDBjZmYzMDAwMDAwZmZmZgkvKiBfX1VTRVJfRFMsIF9fVVNFUjMyX0RTICAqLwotCS5xdWFkCTB4MDBhZmZiMDAwMDAwZmZmZgkvKiBfX1VTRVJfQ1MgKi8KLQkucXVhZAkweDAJCQkvKiB1bnVzZWQgKi8KLQkucXVhZAkwLDAJCQkvKiBUU1MgKi8KLQkucXVhZAkwLDAJCQkvKiBMRFQgKi8KLQkucXVhZCAgIDAsMCwwCQkJLyogdGhyZWUgVExTIGRlc2NyaXB0b3JzICovIAotCS5xdWFkCTB4MDAwMGY0MDAwMDAwMDAwMAkvKiBub2RlL0NQVSBzdG9yZWQgaW4gbGltaXQgKi8KLWdkdF9lbmQ6CQotCS8qIGFzbS9zZWdtZW50Lmg6R0RUX0VOVFJJRVMgbXVzdCBtYXRjaCB0aGlzICovCQotCS8qIFRoaXMgc2hvdWxkIGJlIGEgbXVsdGlwbGUgb2YgdGhlIGNhY2hlIGxpbmUgc2l6ZSAqLwotCS8qIEdEVHMgb2Ygb3RoZXIgQ1BVcyBhcmUgbm93IGR5bmFtaWNhbGx5IGFsbG9jYXRlZCAqLwotCi0JLyogemVybyB0aGUgcmVtYWluaW5nIHBhZ2UgKi8KLQkuZmlsbCBQQUdFX1NJWkUgLyA4IC0gR0RUX0VOVFJJRVMsOCwwCi0KIAkuc2VjdGlvbiAuYnNzLCAiYXciLCBAbm9iaXRzCiAJLmFsaWduIEwxX0NBQ0hFX0JZVEVTCiBFTlRSWShpZHRfdGFibGUpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaHBldC5jIGIvYXJjaC94ODYva2VybmVsL2hwZXQuYwppbmRleCA5YjVjZmNkLi4wZWE2YTE5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaHBldC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9ocGV0LmMKQEAgLTE3LDcgKzE3LDcgQEAKIAogLyogRlNFQyA9IDEwXi0xNQogICAgTlNFQyA9IDEwXi05ICovCi0jZGVmaW5lIEZTRUNfUEVSX05TRUMJMTAwMDAwMAorI2RlZmluZSBGU0VDX1BFUl9OU0VDCTEwMDAwMDBMCiAKIC8qCiAgKiBIUEVUIGFkZHJlc3MgaXMgc2V0IGluIGFjcGkvYm9vdC5jLCB3aGVuIGFuIEFDUEkgZW50cnkgZXhpc3RzCkBAIC0zNiwyNiArMzYsMTUgQEAKIH0KIAogI2lmZGVmIENPTkZJR19YODZfNjQKLQogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBocGV0X3NldF9tYXBwaW5nKHZvaWQpCi17Ci0Jc2V0X2ZpeG1hcF9ub2NhY2hlKEZJWF9IUEVUX0JBU0UsIGhwZXRfYWRkcmVzcyk7Ci0JX19zZXRfZml4bWFwKFZTWVNDQUxMX0hQRVQsIGhwZXRfYWRkcmVzcywgUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRSk7Ci0JaHBldF92aXJ0X2FkZHJlc3MgPSAodm9pZCBfX2lvbWVtICopZml4X3RvX3ZpcnQoRklYX0hQRVRfQkFTRSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBocGV0X2NsZWFyX21hcHBpbmcodm9pZCkKLXsKLQlocGV0X3ZpcnRfYWRkcmVzcyA9IE5VTEw7Ci19Ci0KLSNlbHNlCisjZW5kaWYKIAogc3RhdGljIGlubGluZSB2b2lkIGhwZXRfc2V0X21hcHBpbmcodm9pZCkKIHsKIAlocGV0X3ZpcnRfYWRkcmVzcyA9IGlvcmVtYXBfbm9jYWNoZShocGV0X2FkZHJlc3MsIEhQRVRfTU1BUF9TSVpFKTsKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJX19zZXRfZml4bWFwKFZTWVNDQUxMX0hQRVQsIGhwZXRfYWRkcmVzcywgUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRSk7CisjZW5kaWYKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGhwZXRfY2xlYXJfbWFwcGluZyh2b2lkKQpAQCAtNjMsNyArNTIsNiBAQAogCWlvdW5tYXAoaHBldF92aXJ0X2FkZHJlc3MpOwogCWhwZXRfdmlydF9hZGRyZXNzID0gTlVMTDsKIH0KLSNlbmRpZgogCiAvKgogICogSFBFVCBjb21tYW5kIGxpbmUgZW5hYmxlIC8gZGlzYWJsZQpAQCAtMjA2LDIwICsxOTQsMTkgQEAKIAogc3RhdGljIHZvaWQgaHBldF9sZWdhY3lfY2xvY2tldmVudF9yZWdpc3Rlcih2b2lkKQogewotCXVpbnQ2NF90IGhwZXRfZnJlcTsKLQogCS8qIFN0YXJ0IEhQRVQgbGVnYWN5IGludGVycnVwdHMgKi8KIAlocGV0X2VuYWJsZV9sZWdhY3lfaW50KCk7CiAKIAkvKgotCSAqIFRoZSBwZXJpb2QgaXMgYSBmZW10byBzZWNvbmRzIHZhbHVlLiBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUKLQkgKiBzY2FsZWQgbWF0aCBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgZm9yIG5hbm9zZWNvbmQgdG8gaHBldCB0aWNrCi0JICogY29udmVyc2lvbi4KKwkgKiBUaGUgbXVsdCBmYWN0b3IgaXMgZGVmaW5lZCBhcyAoaW5jbHVkZS9saW51eC9jbG9ja2NoaXBzLmgpCisJICogIG11bHQvMl5zaGlmdCA9IGN5Yy9ucyAoaW4gY29udHJhc3QgdG8gbnMvY3ljIGluIGNsb2Nrc291cmNlLmgpCisJICogaHBldF9wZXJpb2QgaXMgaW4gdW5pdHMgb2YgZmVtdG9zZWNvbmRzIChwZXIgY3ljbGUpLCBzbworCSAqICBtdWx0LzJec2hpZnQgPSBjeWMvbnMgPSAxMF42L2hwZXRfcGVyaW9kCisJICogIG11bHQgPSAoMTBeNiAqIDJec2hpZnQpL2hwZXRfcGVyaW9kCisJICogIG11bHQgPSAoRlNFQ19QRVJfTlNFQyA8PCBocGV0X2Nsb2NrZXZlbnQuc2hpZnQpL2hwZXRfcGVyaW9kCiAJICovCi0JaHBldF9mcmVxID0gMTAwMDAwMDAwMDAwMDAwMFVMTDsKLQlkb19kaXYoaHBldF9mcmVxLCBocGV0X3BlcmlvZCk7Ci0JaHBldF9jbG9ja2V2ZW50Lm11bHQgPSBkaXZfc2MoKHVuc2lnbmVkIGxvbmcpIGhwZXRfZnJlcSwKLQkJCQkgICAgICBOU0VDX1BFUl9TRUMsIGhwZXRfY2xvY2tldmVudC5zaGlmdCk7CisJaHBldF9jbG9ja2V2ZW50Lm11bHQgPSBkaXZfc2MoKHVuc2lnbmVkIGxvbmcpIEZTRUNfUEVSX05TRUMsCisJCQkJICAgICAgaHBldF9wZXJpb2QsIGhwZXRfY2xvY2tldmVudC5zaGlmdCk7CiAJLyogQ2FsY3VsYXRlIHRoZSBtaW4gLyBtYXggZGVsdGEgKi8KIAlocGV0X2Nsb2NrZXZlbnQubWF4X2RlbHRhX25zID0gY2xvY2tldmVudF9kZWx0YTJucygweDdGRkZGRkZGLAogCQkJCQkJCSAgICZocGV0X2Nsb2NrZXZlbnQpOwpAQCAtMzI0LDcgKzMxMSw3IEBACiAKIHN0YXRpYyBpbnQgaHBldF9jbG9ja3NvdXJjZV9yZWdpc3Rlcih2b2lkKQogewotCXU2NCB0bXAsIHN0YXJ0LCBub3c7CisJdTY0IHN0YXJ0LCBub3c7CiAJY3ljbGVfdCB0MTsKIAogCS8qIFN0YXJ0IHRoZSBjb3VudGVyICovCkBAIC0zNTEsMjEgKzMzOCwxNSBAQAogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKLQkvKiBJbml0aWFsaXplIGFuZCByZWdpc3RlciBIUEVUIGNsb2Nrc291cmNlCi0JICoKLQkgKiBocGV0IHBlcmlvZCBpcyBpbiBmZW10byBzZWNvbmRzIHBlciBjeWNsZQotCSAqIHNvIHdlIG5lZWQgdG8gY29udmVydCB0aGlzIHRvIG5zL2N5YyB1bml0cwotCSAqIGFwcHJveGltYXRlZCBieSBtdWx0LzJec2hpZnQKLQkgKgotCSAqICBmc2VjL2N5YyAqIDFuc2VjLzEwMDAwMDBmc2VjID0gbnNlYy9jeWMgPSBtdWx0LzJec2hpZnQKLQkgKiAgZnNlYy9jeWMgKiAxbnMvMTAwMDAwMGZzZWMgKiAyXnNoaWZ0ID0gbXVsdAotCSAqICBmc2VjL2N5YyAqIDJec2hpZnQgKiAxbnNlYy8xMDAwMDAwZnNlYyA9IG11bHQKLQkgKiAgKGZzZWMvY3ljIDw8IHNoaWZ0KS8xMDAwMDAwID0gbXVsdAotCSAqICAoaHBldF9wZXJpb2QgPDwgc2hpZnQpL0ZTRUNfUEVSX05TRUMgPSBtdWx0CisJLyoKKwkgKiBUaGUgZGVmaW5pdGlvbiBvZiBtdWx0IGlzIChpbmNsdWRlL2xpbnV4L2Nsb2Nrc291cmNlLmgpCisJICogbXVsdC8yXnNoaWZ0ID0gbnMvY3ljIGFuZCBocGV0X3BlcmlvZCBpcyBpbiB1bml0cyBvZiBmc2VjL2N5YworCSAqIHNvIHdlIGZpcnN0IG5lZWQgdG8gY29udmVydCBocGV0X3BlcmlvZCB0byBucy9jeWMgdW5pdHM6CisJICogIG11bHQvMl5zaGlmdCA9IG5zL2N5YyA9IGhwZXRfcGVyaW9kLzEwXjYKKwkgKiAgbXVsdCA9IChocGV0X3BlcmlvZCAqIDJec2hpZnQpLzEwXjYKKwkgKiAgbXVsdCA9IChocGV0X3BlcmlvZCA8PCBzaGlmdCkvRlNFQ19QRVJfTlNFQwogCSAqLwotCXRtcCA9ICh1NjQpaHBldF9wZXJpb2QgPDwgSFBFVF9TSElGVDsKLQlkb19kaXYodG1wLCBGU0VDX1BFUl9OU0VDKTsKLQljbG9ja3NvdXJjZV9ocGV0Lm11bHQgPSAodTMyKXRtcDsKKwljbG9ja3NvdXJjZV9ocGV0Lm11bHQgPSBkaXZfc2MoaHBldF9wZXJpb2QsIEZTRUNfUEVSX05TRUMsIEhQRVRfU0hJRlQpOwogCiAJY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX2hwZXQpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaTM4Nl9rc3ltc18zMi5jIGIvYXJjaC94ODYva2VybmVsL2kzODZfa3N5bXNfMzIuYwppbmRleCBkZWI0Mzc4Li5kZDdlYmVlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaTM4Nl9rc3ltc18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pMzg2X2tzeW1zXzMyLmMKQEAgLTEsNyArMSwxNCBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorCiAjaW5jbHVkZSA8YXNtL2NoZWNrc3VtLmg+Ci0jaW5jbHVkZSA8YXNtL2Rlc2MuaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgorCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorLyogbWNvdW50IGlzIGRlZmluZWQgaW4gYXNzZW1ibHkgKi8KK0VYUE9SVF9TWU1CT0wobWNvdW50KTsKKyNlbmRpZgogCiAvKiBOZXR3b3JraW5nIGhlbHBlciByb3V0aW5lcy4gKi8KIEVYUE9SVF9TWU1CT0woY3N1bV9wYXJ0aWFsX2NvcHlfZ2VuZXJpYyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaTgyNTkuYyBiL2FyY2gveDg2L2tlcm5lbC9pODI1OS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjOTJiNDkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvaTgyNTkuYwpAQCAtMCwwICsxLDMzNyBAQAorI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisKKyNpbmNsdWRlIDxhc20vYWNwaS5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CisjaW5jbHVkZSA8YXNtL2h3X2lycS5oPgorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CisjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KKyNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CisjaW5jbHVkZSA8YXNtL2k4MjU5Lmg+CisKKy8qCisgKiBUaGlzIGlzIHRoZSAnbGVnYWN5JyA4MjU5QSBQcm9ncmFtbWFibGUgSW50ZXJydXB0IENvbnRyb2xsZXIsCisgKiBwcmVzZW50IGluIHRoZSBtYWpvcml0eSBvZiBQQy9BVCBib3hlcy4KKyAqIHBsdXMgc29tZSBnZW5lcmljIHg4NiBzcGVjaWZpYyB0aGluZ3MgaWYgZ2VuZXJpYyBzcGVjaWZpY3MgbWFrZXMKKyAqIGFueSBzZW5zZSBhdCBhbGwuCisgKi8KKworc3RhdGljIGludCBpODI1OUFfYXV0b19lb2k7CitERUZJTkVfU1BJTkxPQ0soaTgyNTlBX2xvY2spOworc3RhdGljIHZvaWQgbWFza19hbmRfYWNrXzgyNTlBKHVuc2lnbmVkIGludCk7CisKK3N0cnVjdCBpcnFfY2hpcCBpODI1OUFfY2hpcCA9IHsKKwkubmFtZQkJPSAiWFQtUElDIiwKKwkubWFzawkJPSBkaXNhYmxlXzgyNTlBX2lycSwKKwkuZGlzYWJsZQk9IGRpc2FibGVfODI1OUFfaXJxLAorCS51bm1hc2sJCT0gZW5hYmxlXzgyNTlBX2lycSwKKwkubWFza19hY2sJPSBtYXNrX2FuZF9hY2tfODI1OUEsCit9OworCisvKgorICogODI1OUEgUElDIGZ1bmN0aW9ucyB0byBoYW5kbGUgSVNBIGRldmljZXM6CisgKi8KKworLyoKKyAqIFRoaXMgY29udGFpbnMgdGhlIGlycSBtYXNrIGZvciBib3RoIDgyNTlBIGlycSBjb250cm9sbGVycywKKyAqLwordW5zaWduZWQgaW50IGNhY2hlZF9pcnFfbWFzayA9IDB4ZmZmZjsKKworLyoKKyAqIE5vdCBhbGwgSVJRcyBjYW4gYmUgcm91dGVkIHRocm91Z2ggdGhlIElPLUFQSUMsIGVnLiBvbiBjZXJ0YWluIChvbGRlcikKKyAqIGJvYXJkcyB0aGUgdGltZXIgaW50ZXJydXB0IGlzIG5vdCByZWFsbHkgY29ubmVjdGVkIHRvIGFueSBJTy1BUElDIHBpbiwKKyAqIGl0J3MgZmVkIHRvIHRoZSBtYXN0ZXIgODI1OUEncyBJUjAgbGluZSBvbmx5LgorICoKKyAqIEFueSAnMScgYml0IGluIHRoaXMgbWFzayBtZWFucyB0aGUgSVJRIGlzIHJvdXRlZCB0aHJvdWdoIHRoZSBJTy1BUElDLgorICogdGhpcyAnbWl4ZWQgbW9kZScgSVJRIGhhbmRsaW5nIGNvc3RzIG5vdGhpbmcgYmVjYXVzZSBpdCdzIG9ubHkgdXNlZAorICogYXQgSVJRIHNldHVwIHRpbWUuCisgKi8KK3Vuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOworCit2b2lkIGRpc2FibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpCit7CisJdW5zaWduZWQgaW50IG1hc2sgPSAxIDw8IGlycTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CisJY2FjaGVkX2lycV9tYXNrIHw9IG1hc2s7CisJaWYgKGlycSAmIDgpCisJCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOworCWVsc2UKKwkJb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIFBJQ19NQVNURVJfSU1SKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworfQorCit2b2lkIGVuYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBpbnQgbWFzayA9IH4oMSA8PCBpcnEpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKwljYWNoZWRfaXJxX21hc2sgJj0gbWFzazsKKwlpZiAoaXJxICYgOCkKKwkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7CisJZWxzZQorCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Cit9CisKK2ludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBpbnQgbWFzayA9IDE8PGlycTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKwlpZiAoaXJxIDwgOCkKKwkJcmV0ID0gaW5iKFBJQ19NQVNURVJfQ01EKSAmIG1hc2s7CisJZWxzZQorCQlyZXQgPSBpbmIoUElDX1NMQVZFX0NNRCkgJiAobWFzayA+PiA4KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJldDsKK30KKwordm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCWRpc2FibGVfaXJxX25vc3luYyhpcnEpOworCWlvX2FwaWNfaXJxcyAmPSB+KDE8PGlycSk7CisJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmaTgyNTlBX2NoaXAsIGhhbmRsZV9sZXZlbF9pcnEsCisJCQkJICAgICAgIlhUIik7CisJZW5hYmxlX2lycShpcnEpOworfQorCisvKgorICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRvIGJlIGNhbGxlZCByYXJlbHkuIFN3aXRjaGluZyBiZXR3ZWVuCisgKiA4MjU5QSByZWdpc3RlcnMgaXMgc2xvdy4KKyAqIFRoaXMgaGFzIHRvIGJlIHByb3RlY3RlZCBieSB0aGUgaXJxIGNvbnRyb2xsZXIgc3BpbmxvY2sKKyAqIGJlZm9yZSBiZWluZyBjYWxsZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IGk4MjU5QV9pcnFfcmVhbCh1bnNpZ25lZCBpbnQgaXJxKQoreworCWludCB2YWx1ZTsKKwlpbnQgaXJxbWFzayA9IDE8PGlycTsKKworCWlmIChpcnEgPCA4KSB7CisJCW91dGIoMHgwQiwgUElDX01BU1RFUl9DTUQpOwkvKiBJU1IgcmVnaXN0ZXIgKi8KKwkJdmFsdWUgPSBpbmIoUElDX01BU1RFUl9DTUQpICYgaXJxbWFzazsKKwkJb3V0YigweDBBLCBQSUNfTUFTVEVSX0NNRCk7CS8qIGJhY2sgdG8gdGhlIElSUiByZWdpc3RlciAqLworCQlyZXR1cm4gdmFsdWU7CisJfQorCW91dGIoMHgwQiwgUElDX1NMQVZFX0NNRCk7CS8qIElTUiByZWdpc3RlciAqLworCXZhbHVlID0gaW5iKFBJQ19TTEFWRV9DTUQpICYgKGlycW1hc2sgPj4gOCk7CisJb3V0YigweDBBLCBQSUNfU0xBVkVfQ01EKTsJLyogYmFjayB0byB0aGUgSVJSIHJlZ2lzdGVyICovCisJcmV0dXJuIHZhbHVlOworfQorCisvKgorICogQ2FyZWZ1bCEgVGhlIDgyNTlBIGlzIGEgZnJhZ2lsZSBiZWFzdCwgaXQgcHJldHR5CisgKiBtdWNoIF9oYXNfIHRvIGJlIGRvbmUgZXhhY3RseSBsaWtlIHRoaXMgKG1hc2sgaXQKKyAqIGZpcnN0LCBfdGhlbl8gc2VuZCB0aGUgRU9JLCBhbmQgdGhlIG9yZGVyIG9mIEVPSQorICogdG8gdGhlIHR3byA4MjU5cyBpcyBpbXBvcnRhbnQhCisgKi8KK3N0YXRpYyB2b2lkIG1hc2tfYW5kX2Fja184MjU5QSh1bnNpZ25lZCBpbnQgaXJxKQoreworCXVuc2lnbmVkIGludCBpcnFtYXNrID0gMSA8PCBpcnE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCS8qCisJICogTGlnaHR3ZWlnaHQgc3B1cmlvdXMgSVJRIGRldGVjdGlvbi4gV2UgZG8gbm90IHdhbnQKKwkgKiB0byBvdmVyZG8gc3B1cmlvdXMgSVJRIGhhbmRsaW5nIC0gaXQncyB1c3VhbGx5IGEgc2lnbgorCSAqIG9mIGhhcmR3YXJlIHByb2JsZW1zLCBzbyB3ZSBvbmx5IGRvIHRoZSBjaGVja3Mgd2UgY2FuCisJICogZG8gd2l0aG91dCBzbG93aW5nIGRvd24gZ29vZCBoYXJkd2FyZSB1bm5lY2Vzc2FyaWx5LgorCSAqCisJICogTm90ZSB0aGF0IElSUTcgYW5kIElSUTE1ICh0aGUgdHdvIHNwdXJpb3VzIElSUXMKKwkgKiB1c3VhbGx5IHJlc3VsdGluZyBmcm9tIHRoZSA4MjU5QS0xfDIgUElDcykgb2NjdXIKKwkgKiBldmVuIGlmIHRoZSBJUlEgaXMgbWFza2VkIGluIHRoZSA4MjU5QS4gVGh1cyB3ZQorCSAqIGNhbiBjaGVjayBzcHVyaW91cyA4MjU5QSBJUlFzIHdpdGhvdXQgZG9pbmcgdGhlCisJICogcXVpdGUgc2xvdyBpODI1OUFfaXJxX3JlYWwoKSBjYWxsIGZvciBldmVyeSBJUlEuCisJICogVGhpcyBkb2VzIG5vdCBjb3ZlciAxMDAlIG9mIHNwdXJpb3VzIGludGVycnVwdHMsCisJICogYnV0IHNob3VsZCBiZSBlbm91Z2ggdG8gd2FybiB0aGUgdXNlciB0aGF0IHRoZXJlCisJICogaXMgc29tZXRoaW5nIGJhZCBnb2luZyBvbiAuLi4KKwkgKi8KKwlpZiAoY2FjaGVkX2lycV9tYXNrICYgaXJxbWFzaykKKwkJZ290byBzcHVyaW91c184MjU5QV9pcnE7CisJY2FjaGVkX2lycV9tYXNrIHw9IGlycW1hc2s7CisKK2hhbmRsZV9yZWFsX2lycToKKwlpZiAoaXJxICYgOCkgeworCQlpbmIoUElDX1NMQVZFX0lNUik7CS8qIERVTU1ZIC0gKGRvIHdlIG5lZWQgdGhpcz8pICovCisJCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOworCQkvKiAnU3BlY2lmaWMgRU9JJyB0byBzbGF2ZSAqLworCQlvdXRiKDB4NjArKGlycSY3KSwgUElDX1NMQVZFX0NNRCk7CisJCSAvKiAnU3BlY2lmaWMgRU9JJyB0byBtYXN0ZXItSVJRMiAqLworCQlvdXRiKDB4NjArUElDX0NBU0NBREVfSVIsIFBJQ19NQVNURVJfQ01EKTsKKwl9IGVsc2UgeworCQlpbmIoUElDX01BU1RFUl9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLworCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOworCQlvdXRiKDB4NjAraXJxLCBQSUNfTUFTVEVSX0NNRCk7CS8qICdTcGVjaWZpYyBFT0kgdG8gbWFzdGVyICovCisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CisJcmV0dXJuOworCitzcHVyaW91c184MjU5QV9pcnE6CisJLyoKKwkgKiB0aGlzIGlzIHRoZSBzbG93IHBhdGggLSBzaG91bGQgaGFwcGVuIHJhcmVseS4KKwkgKi8KKwlpZiAoaTgyNTlBX2lycV9yZWFsKGlycSkpCisJCS8qCisJCSAqIG9vcHMsIHRoZSBJUlEgX2lzXyBpbiBzZXJ2aWNlIGFjY29yZGluZyB0byB0aGUKKwkJICogODI1OUEgLSBub3Qgc3B1cmlvdXMsIGdvIGhhbmRsZSBpdC4KKwkJICovCisJCWdvdG8gaGFuZGxlX3JlYWxfaXJxOworCisJeworCQlzdGF0aWMgaW50IHNwdXJpb3VzX2lycV9tYXNrOworCQkvKgorCQkgKiBBdCB0aGlzIHBvaW50IHdlIGNhbiBiZSBzdXJlIHRoZSBJUlEgaXMgc3B1cmlvdXMsCisJCSAqIGxldHMgQUNLIGFuZCByZXBvcnQgaXQuIFtvbmNlIHBlciBJUlFdCisJCSAqLworCQlpZiAoIShzcHVyaW91c19pcnFfbWFzayAmIGlycW1hc2spKSB7CisJCQlwcmludGsoS0VSTl9ERUJVRworCQkJICAgICAgICJzcHVyaW91cyA4MjU5QSBpbnRlcnJ1cHQ6IElSUSVkLlxuIiwgaXJxKTsKKwkJCXNwdXJpb3VzX2lycV9tYXNrIHw9IGlycW1hc2s7CisJCX0KKwkJYXRvbWljX2luYygmaXJxX2Vycl9jb3VudCk7CisJCS8qCisJCSAqIFRoZW9yZXRpY2FsbHkgd2UgZG8gbm90IGhhdmUgdG8gaGFuZGxlIHRoaXMgSVJRLAorCQkgKiBidXQgaW4gTGludXggdGhpcyBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcyBhbmQgaXMKKwkJICogc2ltcGxlciBmb3IgdXMuCisJCSAqLworCQlnb3RvIGhhbmRsZV9yZWFsX2lycTsKKwl9Cit9CisKK3N0YXRpYyBjaGFyIGlycV90cmlnZ2VyWzJdOworLyoqCisgKiBFTENSIHJlZ2lzdGVycyAoMHg0ZDAsIDB4NGQxKSBjb250cm9sIGVkZ2UvbGV2ZWwgb2YgSVJRCisgKi8KK3N0YXRpYyB2b2lkIHJlc3RvcmVfRUxDUihjaGFyICp0cmlnZ2VyKQoreworCW91dGIodHJpZ2dlclswXSwgMHg0ZDApOworCW91dGIodHJpZ2dlclsxXSwgMHg0ZDEpOworfQorCitzdGF0aWMgdm9pZCBzYXZlX0VMQ1IoY2hhciAqdHJpZ2dlcikKK3sKKwkvKiBJUlEgMCwxLDIsOCwxMyBhcmUgbWFya2VkIGFzIHJlc2VydmVkICovCisJdHJpZ2dlclswXSA9IGluYigweDRkMCkgJiAweEY4OworCXRyaWdnZXJbMV0gPSBpbmIoMHg0ZDEpICYgMHhERTsKK30KKworc3RhdGljIGludCBpODI1OUFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJaW5pdF84MjU5QShpODI1OUFfYXV0b19lb2kpOworCXJlc3RvcmVfRUxDUihpcnFfdHJpZ2dlcik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTgyNTlBX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXNhdmVfRUxDUihpcnFfdHJpZ2dlcik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTgyNTlBX3NodXRkb3duKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJLyogUHV0IHRoZSBpODI1OUEgaW50byBhIHF1aWVzY2VudCBzdGF0ZSB0aGF0CisJICogdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBnZXQgaXQKKwkgKiBvdXQgb2YuCisJICovCisJb3V0YigweGZmLCBQSUNfTUFTVEVSX0lNUik7CS8qIG1hc2sgYWxsIG9mIDgyNTlBLTEgKi8KKwlvdXRiKDB4ZmYsIFBJQ19TTEFWRV9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGk4MjU5X3N5c2Rldl9jbGFzcyA9IHsKKwkubmFtZSA9ICJpODI1OSIsCisJLnN1c3BlbmQgPSBpODI1OUFfc3VzcGVuZCwKKwkucmVzdW1lID0gaTgyNTlBX3Jlc3VtZSwKKwkuc2h1dGRvd24gPSBpODI1OUFfc2h1dGRvd24sCit9OworCitzdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2k4MjU5QSA9IHsKKwkuaWQJPSAwLAorCS5jbHMJPSAmaTgyNTlfc3lzZGV2X2NsYXNzLAorfTsKKworc3RhdGljIGludCBfX2luaXQgaTgyNTlBX2luaXRfc3lzZnModm9pZCkKK3sKKwlpbnQgZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmk4MjU5X3N5c2Rldl9jbGFzcyk7CisJaWYgKCFlcnJvcikKKwkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9pODI1OUEpOworCXJldHVybiBlcnJvcjsKK30KKworZGV2aWNlX2luaXRjYWxsKGk4MjU5QV9pbml0X3N5c2ZzKTsKKwordm9pZCBpbml0XzgyNTlBKGludCBhdXRvX2VvaSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJaTgyNTlBX2F1dG9fZW9pID0gYXV0b19lb2k7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKworCW91dGIoMHhmZiwgUElDX01BU1RFUl9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCisJb3V0YigweGZmLCBQSUNfU0xBVkVfSU1SKTsJLyogbWFzayBhbGwgb2YgODI1OUEtMiAqLworCisJLyoKKwkgKiBvdXRiX3BpYyAtIHRoaXMgaGFzIHRvIHdvcmsgb24gYSB3aWRlIHJhbmdlIG9mIFBDIGhhcmR3YXJlLgorCSAqLworCW91dGJfcGljKDB4MTEsIFBJQ19NQVNURVJfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTEgaW5pdCAqLworCisJLyogSUNXMjogODI1OUEtMSBJUjAtNyBtYXBwZWQgdG8gMHgzMC0weDM3IG9uIHg4Ni02NCwKKwkgICAgICAgICAgICAgICAgICAgICAgIHRvIDB4MjAtMHgyNyBvbiBpMzg2ICovCisJb3V0Yl9waWMoSVJRMF9WRUNUT1IsIFBJQ19NQVNURVJfSU1SKTsKKworCS8qIDgyNTlBLTEgKHRoZSBtYXN0ZXIpIGhhcyBhIHNsYXZlIG9uIElSMiAqLworCW91dGJfcGljKDFVIDw8IFBJQ19DQVNDQURFX0lSLCBQSUNfTUFTVEVSX0lNUik7CisKKwlpZiAoYXV0b19lb2kpCS8qIG1hc3RlciBkb2VzIEF1dG8gRU9JICovCisJCW91dGJfcGljKE1BU1RFUl9JQ1c0X0RFRkFVTFQgfCBQSUNfSUNXNF9BRU9JLCBQSUNfTUFTVEVSX0lNUik7CisJZWxzZQkJLyogbWFzdGVyIGV4cGVjdHMgbm9ybWFsIEVPSSAqLworCQlvdXRiX3BpYyhNQVNURVJfSUNXNF9ERUZBVUxULCBQSUNfTUFTVEVSX0lNUik7CisKKwlvdXRiX3BpYygweDExLCBQSUNfU0xBVkVfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTIgaW5pdCAqLworCisJLyogSUNXMjogODI1OUEtMiBJUjAtNyBtYXBwZWQgdG8gSVJROF9WRUNUT1IgKi8KKwlvdXRiX3BpYyhJUlE4X1ZFQ1RPUiwgUElDX1NMQVZFX0lNUik7CisJLyogODI1OUEtMiBpcyBhIHNsYXZlIG9uIG1hc3RlcidzIElSMiAqLworCW91dGJfcGljKFBJQ19DQVNDQURFX0lSLCBQSUNfU0xBVkVfSU1SKTsKKwkvKiAoc2xhdmUncyBzdXBwb3J0IGZvciBBRU9JIGluIGZsYXQgbW9kZSBpcyB0byBiZSBpbnZlc3RpZ2F0ZWQpICovCisJb3V0Yl9waWMoU0xBVkVfSUNXNF9ERUZBVUxULCBQSUNfU0xBVkVfSU1SKTsKKworCWlmIChhdXRvX2VvaSkKKwkJLyoKKwkJICogSW4gQUVPSSBtb2RlIHdlIGp1c3QgaGF2ZSB0byBtYXNrIHRoZSBpbnRlcnJ1cHQKKwkJICogd2hlbiBhY2tpbmcuCisJCSAqLworCQlpODI1OUFfY2hpcC5tYXNrX2FjayA9IGRpc2FibGVfODI1OUFfaXJxOworCWVsc2UKKwkJaTgyNTlBX2NoaXAubWFza19hY2sgPSBtYXNrX2FuZF9hY2tfODI1OUE7CisKKwl1ZGVsYXkoMTAwKTsJCS8qIHdhaXQgZm9yIDgyNTlBIHRvIGluaXRpYWxpemUgKi8KKworCW91dGIoY2FjaGVkX21hc3Rlcl9tYXNrLCBQSUNfTUFTVEVSX0lNUik7IC8qIHJlc3RvcmUgbWFzdGVyIElSUSBtYXNrICovCisJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7CSAgLyogcmVzdG9yZSBzbGF2ZSBJUlEgbWFzayAqLworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pODI1OV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2k4MjU5XzMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlNjMxOTY3Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9pODI1OV8zMi5jCisrKyAvZGV2L251bGwKQEAgLTEsNDA5ICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgotCi0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vdGltZXIuaD4KLSNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgotI2luY2x1ZGUgPGFzbS9kZWxheS5oPgotI2luY2x1ZGUgPGFzbS9kZXNjLmg+Ci0jaW5jbHVkZSA8YXNtL2FwaWMuaD4KLSNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgotI2luY2x1ZGUgPGFzbS9pODI1OS5oPgotCi0vKgotICogVGhpcyBpcyB0aGUgJ2xlZ2FjeScgODI1OUEgUHJvZ3JhbW1hYmxlIEludGVycnVwdCBDb250cm9sbGVyLAotICogcHJlc2VudCBpbiB0aGUgbWFqb3JpdHkgb2YgUEMvQVQgYm94ZXMuCi0gKiBwbHVzIHNvbWUgZ2VuZXJpYyB4ODYgc3BlY2lmaWMgdGhpbmdzIGlmIGdlbmVyaWMgc3BlY2lmaWNzIG1ha2VzCi0gKiBhbnkgc2Vuc2UgYXQgYWxsLgotICovCi0KLXN0YXRpYyBpbnQgaTgyNTlBX2F1dG9fZW9pOwotREVGSU5FX1NQSU5MT0NLKGk4MjU5QV9sb2NrKTsKLXN0YXRpYyB2b2lkIG1hc2tfYW5kX2Fja184MjU5QSh1bnNpZ25lZCBpbnQpOwotCi1zdGF0aWMgc3RydWN0IGlycV9jaGlwIGk4MjU5QV9jaGlwID0gewotCS5uYW1lCQk9ICJYVC1QSUMiLAotCS5tYXNrCQk9IGRpc2FibGVfODI1OUFfaXJxLAotCS5kaXNhYmxlCT0gZGlzYWJsZV84MjU5QV9pcnEsCi0JLnVubWFzawkJPSBlbmFibGVfODI1OUFfaXJxLAotCS5tYXNrX2Fjawk9IG1hc2tfYW5kX2Fja184MjU5QSwKLX07Ci0KLS8qCi0gKiA4MjU5QSBQSUMgZnVuY3Rpb25zIHRvIGhhbmRsZSBJU0EgZGV2aWNlczoKLSAqLwotCi0vKgotICogVGhpcyBjb250YWlucyB0aGUgaXJxIG1hc2sgZm9yIGJvdGggODI1OUEgaXJxIGNvbnRyb2xsZXJzLAotICovCi11bnNpZ25lZCBpbnQgY2FjaGVkX2lycV9tYXNrID0gMHhmZmZmOwotCi0vKgotICogTm90IGFsbCBJUlFzIGNhbiBiZSByb3V0ZWQgdGhyb3VnaCB0aGUgSU8tQVBJQywgZWcuIG9uIGNlcnRhaW4gKG9sZGVyKQotICogYm9hcmRzIHRoZSB0aW1lciBpbnRlcnJ1cHQgaXMgbm90IHJlYWxseSBjb25uZWN0ZWQgdG8gYW55IElPLUFQSUMgcGluLAotICogaXQncyBmZWQgdG8gdGhlIG1hc3RlciA4MjU5QSdzIElSMCBsaW5lIG9ubHkuCi0gKgotICogQW55ICcxJyBiaXQgaW4gdGhpcyBtYXNrIG1lYW5zIHRoZSBJUlEgaXMgcm91dGVkIHRocm91Z2ggdGhlIElPLUFQSUMuCi0gKiB0aGlzICdtaXhlZCBtb2RlJyBJUlEgaGFuZGxpbmcgY29zdHMgbm90aGluZyBiZWNhdXNlIGl0J3Mgb25seSB1c2VkCi0gKiBhdCBJUlEgc2V0dXAgdGltZS4KLSAqLwotdW5zaWduZWQgbG9uZyBpb19hcGljX2lycXM7Ci0KLXZvaWQgZGlzYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgbWFzayA9IDEgPDwgaXJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQljYWNoZWRfaXJxX21hc2sgfD0gbWFzazsKLQlpZiAoaXJxICYgOCkKLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7Ci0JZWxzZQotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci19Ci0KLXZvaWQgZW5hYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGludCBtYXNrID0gfigxIDw8IGlycSk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCWNhY2hlZF9pcnFfbWFzayAmPSBtYXNrOwotCWlmIChpcnEgJiA4KQotCQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCBQSUNfU0xBVkVfSU1SKTsKLQllbHNlCi0JCW91dGIoY2FjaGVkX21hc3Rlcl9tYXNrLCBQSUNfTUFTVEVSX0lNUik7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLX0KLQotaW50IGk4MjU5QV9pcnFfcGVuZGluZyh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGludCBtYXNrID0gMTw8aXJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCWlmIChpcnEgPCA4KQotCQlyZXQgPSBpbmIoUElDX01BU1RFUl9DTUQpICYgbWFzazsKLQllbHNlCi0JCXJldCA9IGluYihQSUNfU0xBVkVfQ01EKSAmIChtYXNrID4+IDgpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIG1ha2VfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JZGlzYWJsZV9pcnFfbm9zeW5jKGlycSk7Ci0JaW9fYXBpY19pcnFzICY9IH4oMTw8aXJxKTsKLQlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZShpcnEsICZpODI1OUFfY2hpcCwgaGFuZGxlX2xldmVsX2lycSwKLQkJCQkgICAgICAiWFQiKTsKLQllbmFibGVfaXJxKGlycSk7Ci19Ci0KLS8qCi0gKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdG8gYmUgY2FsbGVkIHJhcmVseS4gU3dpdGNoaW5nIGJldHdlZW4KLSAqIDgyNTlBIHJlZ2lzdGVycyBpcyBzbG93LgotICogVGhpcyBoYXMgdG8gYmUgcHJvdGVjdGVkIGJ5IHRoZSBpcnEgY29udHJvbGxlciBzcGlubG9jawotICogYmVmb3JlIGJlaW5nIGNhbGxlZC4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgaTgyNTlBX2lycV9yZWFsKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JaW50IHZhbHVlOwotCWludCBpcnFtYXNrID0gMTw8aXJxOwotCi0JaWYgKGlycSA8IDgpIHsKLQkJb3V0YigweDBCLFBJQ19NQVNURVJfQ01EKTsJLyogSVNSIHJlZ2lzdGVyICovCi0JCXZhbHVlID0gaW5iKFBJQ19NQVNURVJfQ01EKSAmIGlycW1hc2s7Ci0JCW91dGIoMHgwQSxQSUNfTUFTVEVSX0NNRCk7CS8qIGJhY2sgdG8gdGhlIElSUiByZWdpc3RlciAqLwotCQlyZXR1cm4gdmFsdWU7Ci0JfQotCW91dGIoMHgwQixQSUNfU0xBVkVfQ01EKTsJLyogSVNSIHJlZ2lzdGVyICovCi0JdmFsdWUgPSBpbmIoUElDX1NMQVZFX0NNRCkgJiAoaXJxbWFzayA+PiA4KTsKLQlvdXRiKDB4MEEsUElDX1NMQVZFX0NNRCk7CS8qIGJhY2sgdG8gdGhlIElSUiByZWdpc3RlciAqLwotCXJldHVybiB2YWx1ZTsKLX0KLQotLyoKLSAqIENhcmVmdWwhIFRoZSA4MjU5QSBpcyBhIGZyYWdpbGUgYmVhc3QsIGl0IHByZXR0eQotICogbXVjaCBfaGFzXyB0byBiZSBkb25lIGV4YWN0bHkgbGlrZSB0aGlzIChtYXNrIGl0Ci0gKiBmaXJzdCwgX3RoZW5fIHNlbmQgdGhlIEVPSSwgYW5kIHRoZSBvcmRlciBvZiBFT0kKLSAqIHRvIHRoZSB0d28gODI1OXMgaXMgaW1wb3J0YW50IQotICovCi1zdGF0aWMgdm9pZCBtYXNrX2FuZF9hY2tfODI1OUEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgaXJxbWFzayA9IDEgPDwgaXJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQkvKgotCSAqIExpZ2h0d2VpZ2h0IHNwdXJpb3VzIElSUSBkZXRlY3Rpb24uIFdlIGRvIG5vdCB3YW50Ci0JICogdG8gb3ZlcmRvIHNwdXJpb3VzIElSUSBoYW5kbGluZyAtIGl0J3MgdXN1YWxseSBhIHNpZ24KLQkgKiBvZiBoYXJkd2FyZSBwcm9ibGVtcywgc28gd2Ugb25seSBkbyB0aGUgY2hlY2tzIHdlIGNhbgotCSAqIGRvIHdpdGhvdXQgc2xvd2luZyBkb3duIGdvb2QgaGFyZHdhcmUgdW5uZWNlc3NhcmlseS4KLQkgKgotCSAqIE5vdGUgdGhhdCBJUlE3IGFuZCBJUlExNSAodGhlIHR3byBzcHVyaW91cyBJUlFzCi0JICogdXN1YWxseSByZXN1bHRpbmcgZnJvbSB0aGUgODI1OUEtMXwyIFBJQ3MpIG9jY3VyCi0JICogZXZlbiBpZiB0aGUgSVJRIGlzIG1hc2tlZCBpbiB0aGUgODI1OUEuIFRodXMgd2UKLQkgKiBjYW4gY2hlY2sgc3B1cmlvdXMgODI1OUEgSVJRcyB3aXRob3V0IGRvaW5nIHRoZQotCSAqIHF1aXRlIHNsb3cgaTgyNTlBX2lycV9yZWFsKCkgY2FsbCBmb3IgZXZlcnkgSVJRLgotCSAqIFRoaXMgZG9lcyBub3QgY292ZXIgMTAwJSBvZiBzcHVyaW91cyBpbnRlcnJ1cHRzLAotCSAqIGJ1dCBzaG91bGQgYmUgZW5vdWdoIHRvIHdhcm4gdGhlIHVzZXIgdGhhdCB0aGVyZQotCSAqIGlzIHNvbWV0aGluZyBiYWQgZ29pbmcgb24gLi4uCi0JICovCi0JaWYgKGNhY2hlZF9pcnFfbWFzayAmIGlycW1hc2spCi0JCWdvdG8gc3B1cmlvdXNfODI1OUFfaXJxOwotCWNhY2hlZF9pcnFfbWFzayB8PSBpcnFtYXNrOwotCi1oYW5kbGVfcmVhbF9pcnE6Ci0JaWYgKGlycSAmIDgpIHsKLQkJaW5iKFBJQ19TTEFWRV9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLwotCQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCBQSUNfU0xBVkVfSU1SKTsKLQkJb3V0YigweDYwKyhpcnEmNyksUElDX1NMQVZFX0NNRCk7LyogJ1NwZWNpZmljIEVPSScgdG8gc2xhdmUgKi8KLQkJb3V0YigweDYwK1BJQ19DQVNDQURFX0lSLFBJQ19NQVNURVJfQ01EKTsgLyogJ1NwZWNpZmljIEVPSScgdG8gbWFzdGVyLUlSUTIgKi8KLQl9IGVsc2UgewotCQlpbmIoUElDX01BU1RFUl9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLwotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCQlvdXRiKDB4NjAraXJxLFBJQ19NQVNURVJfQ01EKTsJLyogJ1NwZWNpZmljIEVPSSB0byBtYXN0ZXIgKi8KLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQlyZXR1cm47Ci0KLXNwdXJpb3VzXzgyNTlBX2lycToKLQkvKgotCSAqIHRoaXMgaXMgdGhlIHNsb3cgcGF0aCAtIHNob3VsZCBoYXBwZW4gcmFyZWx5LgotCSAqLwotCWlmIChpODI1OUFfaXJxX3JlYWwoaXJxKSkKLQkJLyoKLQkJICogb29wcywgdGhlIElSUSBfaXNfIGluIHNlcnZpY2UgYWNjb3JkaW5nIHRvIHRoZQotCQkgKiA4MjU5QSAtIG5vdCBzcHVyaW91cywgZ28gaGFuZGxlIGl0LgotCQkgKi8KLQkJZ290byBoYW5kbGVfcmVhbF9pcnE7Ci0KLQl7Ci0JCXN0YXRpYyBpbnQgc3B1cmlvdXNfaXJxX21hc2s7Ci0JCS8qCi0JCSAqIEF0IHRoaXMgcG9pbnQgd2UgY2FuIGJlIHN1cmUgdGhlIElSUSBpcyBzcHVyaW91cywKLQkJICogbGV0cyBBQ0sgYW5kIHJlcG9ydCBpdC4gW29uY2UgcGVyIElSUV0KLQkJICovCi0JCWlmICghKHNwdXJpb3VzX2lycV9tYXNrICYgaXJxbWFzaykpIHsKLQkJCXByaW50ayhLRVJOX0RFQlVHICJzcHVyaW91cyA4MjU5QSBpbnRlcnJ1cHQ6IElSUSVkLlxuIiwgaXJxKTsKLQkJCXNwdXJpb3VzX2lycV9tYXNrIHw9IGlycW1hc2s7Ci0JCX0KLQkJYXRvbWljX2luYygmaXJxX2Vycl9jb3VudCk7Ci0JCS8qCi0JCSAqIFRoZW9yZXRpY2FsbHkgd2UgZG8gbm90IGhhdmUgdG8gaGFuZGxlIHRoaXMgSVJRLAotCQkgKiBidXQgaW4gTGludXggdGhpcyBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcyBhbmQgaXMKLQkJICogc2ltcGxlciBmb3IgdXMuCi0JCSAqLwotCQlnb3RvIGhhbmRsZV9yZWFsX2lycTsKLQl9Ci19Ci0KLXN0YXRpYyBjaGFyIGlycV90cmlnZ2VyWzJdOwotLyoqCi0gKiBFTENSIHJlZ2lzdGVycyAoMHg0ZDAsIDB4NGQxKSBjb250cm9sIGVkZ2UvbGV2ZWwgb2YgSVJRCi0gKi8KLXN0YXRpYyB2b2lkIHJlc3RvcmVfRUxDUihjaGFyICp0cmlnZ2VyKQotewotCW91dGIodHJpZ2dlclswXSwgMHg0ZDApOwotCW91dGIodHJpZ2dlclsxXSwgMHg0ZDEpOwotfQotCi1zdGF0aWMgdm9pZCBzYXZlX0VMQ1IoY2hhciAqdHJpZ2dlcikKLXsKLQkvKiBJUlEgMCwxLDIsOCwxMyBhcmUgbWFya2VkIGFzIHJlc2VydmVkICovCi0JdHJpZ2dlclswXSA9IGluYigweDRkMCkgJiAweEY4OwotCXRyaWdnZXJbMV0gPSBpbmIoMHg0ZDEpICYgMHhERTsKLX0KLQotc3RhdGljIGludCBpODI1OUFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JaW5pdF84MjU5QShpODI1OUFfYXV0b19lb2kpOwotCXJlc3RvcmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQotewotCXNhdmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3NodXRkb3duKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JLyogUHV0IHRoZSBpODI1OUEgaW50byBhIHF1aWVzY2VudCBzdGF0ZSB0aGF0Ci0JICogdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBnZXQgaXQKLQkgKiBvdXQgb2YuCi0JICovCi0Jb3V0YigweGZmLCBQSUNfTUFTVEVSX0lNUik7CS8qIG1hc2sgYWxsIG9mIDgyNTlBLTEgKi8KLQlvdXRiKDB4ZmYsIFBJQ19TTEFWRV9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGk4MjU5X3N5c2Rldl9jbGFzcyA9IHsKLQkubmFtZSA9ICJpODI1OSIsCi0JLnN1c3BlbmQgPSBpODI1OUFfc3VzcGVuZCwKLQkucmVzdW1lID0gaTgyNTlBX3Jlc3VtZSwKLQkuc2h1dGRvd24gPSBpODI1OUFfc2h1dGRvd24sCi19OwotCi1zdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2k4MjU5QSA9IHsKLQkuaWQJPSAwLAotCS5jbHMJPSAmaTgyNTlfc3lzZGV2X2NsYXNzLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgaTgyNTlBX2luaXRfc3lzZnModm9pZCkKLXsKLQlpbnQgZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmk4MjU5X3N5c2Rldl9jbGFzcyk7Ci0JaWYgKCFlcnJvcikKLQkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9pODI1OUEpOwotCXJldHVybiBlcnJvcjsKLX0KLQotZGV2aWNlX2luaXRjYWxsKGk4MjU5QV9pbml0X3N5c2ZzKTsKLQotdm9pZCBpbml0XzgyNTlBKGludCBhdXRvX2VvaSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JaTgyNTlBX2F1dG9fZW9pID0gYXV0b19lb2k7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQotCW91dGIoMHhmZiwgUElDX01BU1RFUl9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0Jb3V0YigweGZmLCBQSUNfU0xBVkVfSU1SKTsJLyogbWFzayBhbGwgb2YgODI1OUEtMiAqLwotCi0JLyoKLQkgKiBvdXRiX3BpYyAtIHRoaXMgaGFzIHRvIHdvcmsgb24gYSB3aWRlIHJhbmdlIG9mIFBDIGhhcmR3YXJlLgotCSAqLwotCW91dGJfcGljKDB4MTEsIFBJQ19NQVNURVJfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTEgaW5pdCAqLwotCW91dGJfcGljKDB4MjAgKyAwLCBQSUNfTUFTVEVSX0lNUik7CS8qIElDVzI6IDgyNTlBLTEgSVIwLTcgbWFwcGVkIHRvIDB4MjAtMHgyNyAqLwotCW91dGJfcGljKDFVIDw8IFBJQ19DQVNDQURFX0lSLCBQSUNfTUFTVEVSX0lNUik7CS8qIDgyNTlBLTEgKHRoZSBtYXN0ZXIpIGhhcyBhIHNsYXZlIG9uIElSMiAqLwotCWlmIChhdXRvX2VvaSkJLyogbWFzdGVyIGRvZXMgQXV0byBFT0kgKi8KLQkJb3V0Yl9waWMoTUFTVEVSX0lDVzRfREVGQVVMVCB8IFBJQ19JQ1c0X0FFT0ksIFBJQ19NQVNURVJfSU1SKTsKLQllbHNlCQkvKiBtYXN0ZXIgZXhwZWN0cyBub3JtYWwgRU9JICovCi0JCW91dGJfcGljKE1BU1RFUl9JQ1c0X0RFRkFVTFQsIFBJQ19NQVNURVJfSU1SKTsKLQotCW91dGJfcGljKDB4MTEsIFBJQ19TTEFWRV9DTUQpOwkvKiBJQ1cxOiBzZWxlY3QgODI1OUEtMiBpbml0ICovCi0Jb3V0Yl9waWMoMHgyMCArIDgsIFBJQ19TTEFWRV9JTVIpOwkvKiBJQ1cyOiA4MjU5QS0yIElSMC03IG1hcHBlZCB0byAweDI4LTB4MmYgKi8KLQlvdXRiX3BpYyhQSUNfQ0FTQ0FERV9JUiwgUElDX1NMQVZFX0lNUik7CS8qIDgyNTlBLTIgaXMgYSBzbGF2ZSBvbiBtYXN0ZXIncyBJUjIgKi8KLQlvdXRiX3BpYyhTTEFWRV9JQ1c0X0RFRkFVTFQsIFBJQ19TTEFWRV9JTVIpOyAvKiAoc2xhdmUncyBzdXBwb3J0IGZvciBBRU9JIGluIGZsYXQgbW9kZSBpcyB0byBiZSBpbnZlc3RpZ2F0ZWQpICovCi0JaWYgKGF1dG9fZW9pKQotCQkvKgotCQkgKiBJbiBBRU9JIG1vZGUgd2UganVzdCBoYXZlIHRvIG1hc2sgdGhlIGludGVycnVwdAotCQkgKiB3aGVuIGFja2luZy4KLQkJICovCi0JCWk4MjU5QV9jaGlwLm1hc2tfYWNrID0gZGlzYWJsZV84MjU5QV9pcnE7Ci0JZWxzZQotCQlpODI1OUFfY2hpcC5tYXNrX2FjayA9IG1hc2tfYW5kX2Fja184MjU5QTsKLQotCXVkZWxheSgxMDApOwkJLyogd2FpdCBmb3IgODI1OUEgdG8gaW5pdGlhbGl6ZSAqLwotCi0Jb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIFBJQ19NQVNURVJfSU1SKTsgLyogcmVzdG9yZSBtYXN0ZXIgSVJRIG1hc2sgKi8KLQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCBQSUNfU0xBVkVfSU1SKTsJICAvKiByZXN0b3JlIHNsYXZlIElSUSBtYXNrICovCi0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotfQotCi0vKgotICogTm90ZSB0aGF0IG9uIGEgNDg2LCB3ZSBkb24ndCB3YW50IHRvIGRvIGEgU0lHRlBFIG9uIGFuIGlycTEzCi0gKiBhcyB0aGUgaXJxIGlzIHVucmVsaWFibGUsIGFuZCBleGNlcHRpb24gMTYgd29ya3MgY29ycmVjdGx5Ci0gKiAoaWUgYXMgZXhwbGFpbmVkIGluIHRoZSBpbnRlbCBsaXRlcmF0dXJlKS4gT24gYSAzODYsIHlvdQotICogY2FuJ3QgdXNlIGV4Y2VwdGlvbiAxNiBkdWUgdG8gYmFkIElCTSBkZXNpZ24sIHNvIHdlIGhhdmUgdG8KLSAqIHJlbHkgb24gdGhlIGxlc3MgZXhhY3QgaXJxMTMuCi0gKgotICogQ2FyZWZ1bC4uIE5vdCBvbmx5IGlzIElSUTEzIHVucmVsaWFibGUsIGJ1dCBpdCBpcyBhbHNvCi0gKiBsZWFkcyB0byByYWNlcy4gSUJNIGRlc2lnbmVycyB3aG8gY2FtZSB1cCB3aXRoIGl0IHNob3VsZAotICogYmUgc2hvdC4KLSAqLwotIAotCi1zdGF0aWMgaXJxcmV0dXJuX3QgbWF0aF9lcnJvcl9pcnEoaW50IGNwbCwgdm9pZCAqZGV2X2lkKQotewotCWV4dGVybiB2b2lkIG1hdGhfZXJyb3Iodm9pZCBfX3VzZXIgKik7Ci0Jb3V0YigwLDB4RjApOwotCWlmIChpZ25vcmVfZnB1X2lycSB8fCAhYm9vdF9jcHVfZGF0YS5oYXJkX21hdGgpCi0JCXJldHVybiBJUlFfTk9ORTsKLQltYXRoX2Vycm9yKCh2b2lkIF9fdXNlciAqKWdldF9pcnFfcmVncygpLT5pcCk7Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi0vKgotICogTmV3IG1vdGhlcmJvYXJkcyBzb21ldGltZXMgbWFrZSBJUlEgMTMgYmUgYSBQQ0kgaW50ZXJydXB0LAotICogc28gYWxsb3cgaW50ZXJydXB0IHNoYXJpbmcuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGZwdV9pcnEgPSB7Ci0JLmhhbmRsZXIgPSBtYXRoX2Vycm9yX2lycSwKLQkubWFzayA9IENQVV9NQVNLX05PTkUsCi0JLm5hbWUgPSAiZnB1IiwKLX07Ci0KLXZvaWQgX19pbml0IGluaXRfSVNBX2lycXMgKHZvaWQpCi17Ci0JaW50IGk7Ci0KLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLQlpbml0X2JzcF9BUElDKCk7Ci0jZW5kaWYKLQlpbml0XzgyNTlBKDApOwotCi0JLyoKLQkgKiAxNiBvbGQtc3R5bGUgSU5UQS1jeWNsZSBpbnRlcnJ1cHRzOgotCSAqLwotCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0JCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGksICZpODI1OUFfY2hpcCwKLQkJCQkJICAgICAgaGFuZGxlX2xldmVsX2lycSwgIlhUIik7Ci0JfQotfQotCi0vKiBPdmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgKi8KLXZvaWQgaW5pdF9JUlEodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIm5hdGl2ZV9pbml0X0lSUSIpKSk7Ci0KLXZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKQotewotCWludCBpOwotCi0JLyogYWxsIHRoZSBzZXQgdXAgYmVmb3JlIHRoZSBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAqLwotCXByZV9pbnRyX2luaXRfaG9vaygpOwotCi0JLyoKLQkgKiBDb3ZlciB0aGUgd2hvbGUgdmVjdG9yIHNwYWNlLCBubyB2ZWN0b3IgY2FuIGVzY2FwZQotCSAqIHVzLiAoc29tZSBvZiB0aGVzZSB3aWxsIGJlIG92ZXJyaWRkZW4gYW5kIGJlY29tZQotCSAqICdzcGVjaWFsJyBTTVAgaW50ZXJydXB0cykKLQkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgKE5SX1ZFQ1RPUlMgLSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IpOyBpKyspIHsKLQkJaW50IHZlY3RvciA9IEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUiArIGk7Ci0JCWlmIChpID49IE5SX0lSUVMpCi0JCQlicmVhazsKLQkJLyogU1lTQ0FMTF9WRUNUT1Igd2FzIHJlc2VydmVkIGluIHRyYXBfaW5pdC4gKi8KLQkJaWYgKCF0ZXN0X2JpdCh2ZWN0b3IsIHVzZWRfdmVjdG9ycykpCi0JCQlzZXRfaW50cl9nYXRlKHZlY3RvciwgaW50ZXJydXB0W2ldKTsKLQl9Ci0KLQkvKiBzZXR1cCBhZnRlciBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAodXN1YWxseSBhZGQgaW4KLQkgKiB0aGUgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGdhdGVzKQotCSAqLwotCWludHJfaW5pdF9ob29rKCk7Ci0KLQkvKgotCSAqIEV4dGVybmFsIEZQVT8gU2V0IHVwIGlycTEzIGlmIHNvLCBmb3IKLQkgKiBvcmlnaW5hbCBicmFpbmRhbWFnZWQgSUJNIEZFUlIgY291cGxpbmcuCi0JICovCi0JaWYgKGJvb3RfY3B1X2RhdGEuaGFyZF9tYXRoICYmICFjcHVfaGFzX2ZwdSkKLQkJc2V0dXBfaXJxKEZQVV9JUlEsICZmcHVfaXJxKTsKLQotCWlycV9jdHhfaW5pdChzbXBfcHJvY2Vzc29yX2lkKCkpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2k4MjU5XzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaTgyNTlfNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBkMmNjZC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaTgyNTlfNjQuYworKysgL2Rldi9udWxsCkBAIC0xLDUxNiArMCwwIEBACi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvc2lnbmFsLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1leC5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KLSNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KLQotI2luY2x1ZGUgPGFzbS9hY3BpLmg+Ci0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vaHdfaXJxLmg+Ci0jaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KLSNpbmNsdWRlIDxhc20vZGVsYXkuaD4KLSNpbmNsdWRlIDxhc20vZGVzYy5oPgotI2luY2x1ZGUgPGFzbS9hcGljLmg+Ci0jaW5jbHVkZSA8YXNtL2k4MjU5Lmg+Ci0KLS8qCi0gKiBDb21tb24gcGxhY2UgdG8gZGVmaW5lIGFsbCB4ODYgSVJRIHZlY3RvcnMKLSAqCi0gKiBUaGlzIGJ1aWxkcyB1cCB0aGUgSVJRIGhhbmRsZXIgc3R1YnMgdXNpbmcgc29tZSB1Z2x5IG1hY3JvcyBpbiBpcnEuaAotICoKLSAqIFRoZXNlIG1hY3JvcyBjcmVhdGUgdGhlIGxvdy1sZXZlbCBhc3NlbWJseSBJUlEgcm91dGluZXMgdGhhdCBzYXZlCi0gKiByZWdpc3RlciBjb250ZXh0IGFuZCBjYWxsIGRvX0lSUSgpLiBkb19JUlEoKSB0aGVuIGRvZXMgYWxsIHRoZQotICogb3BlcmF0aW9ucyB0aGF0IGFyZSBuZWVkZWQgdG8ga2VlcCB0aGUgQVQgKG9yIFNNUCBJT0FQSUMpCi0gKiBpbnRlcnJ1cHQtY29udHJvbGxlciBoYXBweS4KLSAqLwotCi0jZGVmaW5lIEJJKHgseSkgXAotCUJVSUxEX0lSUSh4IyN5KQotCi0jZGVmaW5lIEJVSUxEXzE2X0lSUVMoeCkgXAotCUJJKHgsMCkgQkkoeCwxKSBCSSh4LDIpIEJJKHgsMykgXAotCUJJKHgsNCkgQkkoeCw1KSBCSSh4LDYpIEJJKHgsNykgXAotCUJJKHgsOCkgQkkoeCw5KSBCSSh4LGEpIEJJKHgsYikgXAotCUJJKHgsYykgQkkoeCxkKSBCSSh4LGUpIEJJKHgsZikKLQotLyoKLSAqIElTQSBQSUMgb3IgbG93IElPLUFQSUMgdHJpZ2dlcmVkIChJTlRBLWN5Y2xlIG9yIEFQSUMpIGludGVycnVwdHM6Ci0gKiAodGhlc2UgYXJlIHVzdWFsbHkgbWFwcGVkIHRvIHZlY3RvcnMgMHgzMC0weDNmKQotICovCi0KLS8qCi0gKiBUaGUgSU8tQVBJQyBnaXZlcyB1cyBtYW55IG1vcmUgaW50ZXJydXB0IHNvdXJjZXMuIE1vc3Qgb2YgdGhlc2UKLSAqIGFyZSB1bnVzZWQgYnV0IGFuIFNNUCBzeXN0ZW0gaXMgc3VwcG9zZWQgdG8gaGF2ZSBlbm91Z2ggbWVtb3J5IC4uLgotICogc29tZXRpbWVzIChtb3N0bHkgd3J0LiBodyBidWdzKSB3ZSBnZXQgY29ycnVwdGVkIHZlY3RvcnMgYWxsCi0gKiBhY3Jvc3MgdGhlIHNwZWN0cnVtLCBzbyB3ZSByZWFsbHkgd2FudCB0byBiZSBwcmVwYXJlZCB0byBnZXQgYWxsCi0gKiBvZiB0aGVzZS4gUGx1cywgbW9yZSBwb3dlcmZ1bCBzeXN0ZW1zIG1pZ2h0IGhhdmUgbW9yZSB0aGFuIDY0Ci0gKiBJTy1BUElDIHJlZ2lzdGVycy4KLSAqCi0gKiAodGhlc2UgYXJlIHVzdWFsbHkgbWFwcGVkIGludG8gdGhlIDB4MzAtMHhmZiB2ZWN0b3IgcmFuZ2UpCi0gKi8KLQkJCQkgICAgICBCVUlMRF8xNl9JUlFTKDB4MikgQlVJTERfMTZfSVJRUygweDMpCi1CVUlMRF8xNl9JUlFTKDB4NCkgQlVJTERfMTZfSVJRUygweDUpIEJVSUxEXzE2X0lSUVMoMHg2KSBCVUlMRF8xNl9JUlFTKDB4NykKLUJVSUxEXzE2X0lSUVMoMHg4KSBCVUlMRF8xNl9JUlFTKDB4OSkgQlVJTERfMTZfSVJRUygweGEpIEJVSUxEXzE2X0lSUVMoMHhiKQotQlVJTERfMTZfSVJRUygweGMpIEJVSUxEXzE2X0lSUVMoMHhkKSBCVUlMRF8xNl9JUlFTKDB4ZSkgQlVJTERfMTZfSVJRUygweGYpCi0KLSN1bmRlZiBCVUlMRF8xNl9JUlFTCi0jdW5kZWYgQkkKLQotCi0jZGVmaW5lIElSUSh4LHkpIFwKLQlJUlEjI3gjI3kjI19pbnRlcnJ1cHQKLQotI2RlZmluZSBJUlFMSVNUXzE2KHgpIFwKLQlJUlEoeCwwKSwgSVJRKHgsMSksIElSUSh4LDIpLCBJUlEoeCwzKSwgXAotCUlSUSh4LDQpLCBJUlEoeCw1KSwgSVJRKHgsNiksIElSUSh4LDcpLCBcCi0JSVJRKHgsOCksIElSUSh4LDkpLCBJUlEoeCxhKSwgSVJRKHgsYiksIFwKLQlJUlEoeCxjKSwgSVJRKHgsZCksIElSUSh4LGUpLCBJUlEoeCxmKQotCi0vKiBmb3IgdGhlIGlycSB2ZWN0b3JzICovCi1zdGF0aWMgdm9pZCAoKl9faW5pdGRhdGEgaW50ZXJydXB0W05SX1ZFQ1RPUlMgLSBGSVJTVF9FWFRFUk5BTF9WRUNUT1JdKSh2b2lkKSA9IHsKLQkJCQkJICBJUlFMSVNUXzE2KDB4MiksIElSUUxJU1RfMTYoMHgzKSwKLQlJUlFMSVNUXzE2KDB4NCksIElSUUxJU1RfMTYoMHg1KSwgSVJRTElTVF8xNigweDYpLCBJUlFMSVNUXzE2KDB4NyksCi0JSVJRTElTVF8xNigweDgpLCBJUlFMSVNUXzE2KDB4OSksIElSUUxJU1RfMTYoMHhhKSwgSVJRTElTVF8xNigweGIpLAotCUlSUUxJU1RfMTYoMHhjKSwgSVJRTElTVF8xNigweGQpLCBJUlFMSVNUXzE2KDB4ZSksIElSUUxJU1RfMTYoMHhmKQotfTsKLQotI3VuZGVmIElSUQotI3VuZGVmIElSUUxJU1RfMTYKLQotLyoKLSAqIFRoaXMgaXMgdGhlICdsZWdhY3knIDgyNTlBIFByb2dyYW1tYWJsZSBJbnRlcnJ1cHQgQ29udHJvbGxlciwKLSAqIHByZXNlbnQgaW4gdGhlIG1ham9yaXR5IG9mIFBDL0FUIGJveGVzLgotICogcGx1cyBzb21lIGdlbmVyaWMgeDg2IHNwZWNpZmljIHRoaW5ncyBpZiBnZW5lcmljIHNwZWNpZmljcyBtYWtlcwotICogYW55IHNlbnNlIGF0IGFsbC4KLSAqIHRoaXMgZmlsZSBzaG91bGQgYmVjb21lIGFyY2gvaTM4Ni9rZXJuZWwvaXJxLmMgd2hlbiB0aGUgb2xkIGlycS5jCi0gKiBtb3ZlcyB0byBhcmNoIGluZGVwZW5kZW50IGxhbmQKLSAqLwotCi1zdGF0aWMgaW50IGk4MjU5QV9hdXRvX2VvaTsKLURFRklORV9TUElOTE9DSyhpODI1OUFfbG9jayk7Ci1zdGF0aWMgdm9pZCBtYXNrX2FuZF9hY2tfODI1OUEodW5zaWduZWQgaW50KTsKLQotc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBpODI1OUFfY2hpcCA9IHsKLQkubmFtZQkJPSAiWFQtUElDIiwKLQkubWFzawkJPSBkaXNhYmxlXzgyNTlBX2lycSwKLQkuZGlzYWJsZQk9IGRpc2FibGVfODI1OUFfaXJxLAotCS51bm1hc2sJCT0gZW5hYmxlXzgyNTlBX2lycSwKLQkubWFza19hY2sJPSBtYXNrX2FuZF9hY2tfODI1OUEsCi19OwotCi0vKgotICogODI1OUEgUElDIGZ1bmN0aW9ucyB0byBoYW5kbGUgSVNBIGRldmljZXM6Ci0gKi8KLQotLyoKLSAqIFRoaXMgY29udGFpbnMgdGhlIGlycSBtYXNrIGZvciBib3RoIDgyNTlBIGlycSBjb250cm9sbGVycywKLSAqLwotdW5zaWduZWQgaW50IGNhY2hlZF9pcnFfbWFzayA9IDB4ZmZmZjsKLQotLyoKLSAqIE5vdCBhbGwgSVJRcyBjYW4gYmUgcm91dGVkIHRocm91Z2ggdGhlIElPLUFQSUMsIGVnLiBvbiBjZXJ0YWluIChvbGRlcikKLSAqIGJvYXJkcyB0aGUgdGltZXIgaW50ZXJydXB0IGlzIG5vdCByZWFsbHkgY29ubmVjdGVkIHRvIGFueSBJTy1BUElDIHBpbiwKLSAqIGl0J3MgZmVkIHRvIHRoZSBtYXN0ZXIgODI1OUEncyBJUjAgbGluZSBvbmx5LgotICoKLSAqIEFueSAnMScgYml0IGluIHRoaXMgbWFzayBtZWFucyB0aGUgSVJRIGlzIHJvdXRlZCB0aHJvdWdoIHRoZSBJTy1BUElDLgotICogdGhpcyAnbWl4ZWQgbW9kZScgSVJRIGhhbmRsaW5nIGNvc3RzIG5vdGhpbmcgYmVjYXVzZSBpdCdzIG9ubHkgdXNlZAotICogYXQgSVJRIHNldHVwIHRpbWUuCi0gKi8KLXVuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOwotCi12b2lkIGRpc2FibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgaW50IG1hc2sgPSAxIDw8IGlycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JY2FjaGVkX2lycV9tYXNrIHw9IG1hc2s7Ci0JaWYgKGlycSAmIDgpCi0JCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOwotCWVsc2UKLQkJb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIFBJQ19NQVNURVJfSU1SKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotfQotCi12b2lkIGVuYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgbWFzayA9IH4oMSA8PCBpcnEpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQljYWNoZWRfaXJxX21hc2sgJj0gbWFzazsKLQlpZiAoaXJxICYgOCkKLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7Ci0JZWxzZQotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci19Ci0KLWludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgbWFzayA9IDE8PGlycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXQ7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQlpZiAoaXJxIDwgOCkKLQkJcmV0ID0gaW5iKFBJQ19NQVNURVJfQ01EKSAmIG1hc2s7Ci0JZWxzZQotCQlyZXQgPSBpbmIoUElDX1NMQVZFX0NNRCkgJiAobWFzayA+PiA4KTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotdm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCWRpc2FibGVfaXJxX25vc3luYyhpcnEpOwotCWlvX2FwaWNfaXJxcyAmPSB+KDE8PGlycSk7Ci0Jc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmaTgyNTlBX2NoaXAsIGhhbmRsZV9sZXZlbF9pcnEsCi0JCQkJICAgICAgIlhUIik7Ci0JZW5hYmxlX2lycShpcnEpOwotfQotCi0vKgotICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRvIGJlIGNhbGxlZCByYXJlbHkuIFN3aXRjaGluZyBiZXR3ZWVuCi0gKiA4MjU5QSByZWdpc3RlcnMgaXMgc2xvdy4KLSAqIFRoaXMgaGFzIHRvIGJlIHByb3RlY3RlZCBieSB0aGUgaXJxIGNvbnRyb2xsZXIgc3BpbmxvY2sKLSAqIGJlZm9yZSBiZWluZyBjYWxsZWQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50IGk4MjU5QV9pcnFfcmVhbCh1bnNpZ25lZCBpbnQgaXJxKQotewotCWludCB2YWx1ZTsKLQlpbnQgaXJxbWFzayA9IDE8PGlycTsKLQotCWlmIChpcnEgPCA4KSB7Ci0JCW91dGIoMHgwQixQSUNfTUFTVEVSX0NNRCk7CS8qIElTUiByZWdpc3RlciAqLwotCQl2YWx1ZSA9IGluYihQSUNfTUFTVEVSX0NNRCkgJiBpcnFtYXNrOwotCQlvdXRiKDB4MEEsUElDX01BU1RFUl9DTUQpOwkvKiBiYWNrIHRvIHRoZSBJUlIgcmVnaXN0ZXIgKi8KLQkJcmV0dXJuIHZhbHVlOwotCX0KLQlvdXRiKDB4MEIsUElDX1NMQVZFX0NNRCk7CS8qIElTUiByZWdpc3RlciAqLwotCXZhbHVlID0gaW5iKFBJQ19TTEFWRV9DTUQpICYgKGlycW1hc2sgPj4gOCk7Ci0Jb3V0YigweDBBLFBJQ19TTEFWRV9DTUQpOwkvKiBiYWNrIHRvIHRoZSBJUlIgcmVnaXN0ZXIgKi8KLQlyZXR1cm4gdmFsdWU7Ci19Ci0KLS8qCi0gKiBDYXJlZnVsISBUaGUgODI1OUEgaXMgYSBmcmFnaWxlIGJlYXN0LCBpdCBwcmV0dHkKLSAqIG11Y2ggX2hhc18gdG8gYmUgZG9uZSBleGFjdGx5IGxpa2UgdGhpcyAobWFzayBpdAotICogZmlyc3QsIF90aGVuXyBzZW5kIHRoZSBFT0ksIGFuZCB0aGUgb3JkZXIgb2YgRU9JCi0gKiB0byB0aGUgdHdvIDgyNTlzIGlzIGltcG9ydGFudCEKLSAqLwotc3RhdGljIHZvaWQgbWFza19hbmRfYWNrXzgyNTlBKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgaW50IGlycW1hc2sgPSAxIDw8IGlycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JLyoKLQkgKiBMaWdodHdlaWdodCBzcHVyaW91cyBJUlEgZGV0ZWN0aW9uLiBXZSBkbyBub3Qgd2FudAotCSAqIHRvIG92ZXJkbyBzcHVyaW91cyBJUlEgaGFuZGxpbmcgLSBpdCdzIHVzdWFsbHkgYSBzaWduCi0JICogb2YgaGFyZHdhcmUgcHJvYmxlbXMsIHNvIHdlIG9ubHkgZG8gdGhlIGNoZWNrcyB3ZSBjYW4KLQkgKiBkbyB3aXRob3V0IHNsb3dpbmcgZG93biBnb29kIGhhcmR3YXJlIHVubmVjZXNzYXJpbHkuCi0JICoKLQkgKiBOb3RlIHRoYXQgSVJRNyBhbmQgSVJRMTUgKHRoZSB0d28gc3B1cmlvdXMgSVJRcwotCSAqIHVzdWFsbHkgcmVzdWx0aW5nIGZyb20gdGhlIDgyNTlBLTF8MiBQSUNzKSBvY2N1cgotCSAqIGV2ZW4gaWYgdGhlIElSUSBpcyBtYXNrZWQgaW4gdGhlIDgyNTlBLiBUaHVzIHdlCi0JICogY2FuIGNoZWNrIHNwdXJpb3VzIDgyNTlBIElSUXMgd2l0aG91dCBkb2luZyB0aGUKLQkgKiBxdWl0ZSBzbG93IGk4MjU5QV9pcnFfcmVhbCgpIGNhbGwgZm9yIGV2ZXJ5IElSUS4KLQkgKiBUaGlzIGRvZXMgbm90IGNvdmVyIDEwMCUgb2Ygc3B1cmlvdXMgaW50ZXJydXB0cywKLQkgKiBidXQgc2hvdWxkIGJlIGVub3VnaCB0byB3YXJuIHRoZSB1c2VyIHRoYXQgdGhlcmUKLQkgKiBpcyBzb21ldGhpbmcgYmFkIGdvaW5nIG9uIC4uLgotCSAqLwotCWlmIChjYWNoZWRfaXJxX21hc2sgJiBpcnFtYXNrKQotCQlnb3RvIHNwdXJpb3VzXzgyNTlBX2lycTsKLQljYWNoZWRfaXJxX21hc2sgfD0gaXJxbWFzazsKLQotaGFuZGxlX3JlYWxfaXJxOgotCWlmIChpcnEgJiA4KSB7Ci0JCWluYihQSUNfU0xBVkVfSU1SKTsJLyogRFVNTVkgLSAoZG8gd2UgbmVlZCB0aGlzPykgKi8KLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7Ci0JCS8qICdTcGVjaWZpYyBFT0knIHRvIHNsYXZlICovCi0JCW91dGIoMHg2MCsoaXJxJjcpLFBJQ19TTEFWRV9DTUQpOwotCQkgLyogJ1NwZWNpZmljIEVPSScgdG8gbWFzdGVyLUlSUTIgKi8KLQkJb3V0YigweDYwK1BJQ19DQVNDQURFX0lSLFBJQ19NQVNURVJfQ01EKTsKLQl9IGVsc2UgewotCQlpbmIoUElDX01BU1RFUl9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLwotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCQkvKiAnU3BlY2lmaWMgRU9JJyB0byBtYXN0ZXIgKi8KLQkJb3V0YigweDYwK2lycSxQSUNfTUFTVEVSX0NNRCk7Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JcmV0dXJuOwotCi1zcHVyaW91c184MjU5QV9pcnE6Ci0JLyoKLQkgKiB0aGlzIGlzIHRoZSBzbG93IHBhdGggLSBzaG91bGQgaGFwcGVuIHJhcmVseS4KLQkgKi8KLQlpZiAoaTgyNTlBX2lycV9yZWFsKGlycSkpCi0JCS8qCi0JCSAqIG9vcHMsIHRoZSBJUlEgX2lzXyBpbiBzZXJ2aWNlIGFjY29yZGluZyB0byB0aGUKLQkJICogODI1OUEgLSBub3Qgc3B1cmlvdXMsIGdvIGhhbmRsZSBpdC4KLQkJICovCi0JCWdvdG8gaGFuZGxlX3JlYWxfaXJxOwotCi0JewotCQlzdGF0aWMgaW50IHNwdXJpb3VzX2lycV9tYXNrOwotCQkvKgotCQkgKiBBdCB0aGlzIHBvaW50IHdlIGNhbiBiZSBzdXJlIHRoZSBJUlEgaXMgc3B1cmlvdXMsCi0JCSAqIGxldHMgQUNLIGFuZCByZXBvcnQgaXQuIFtvbmNlIHBlciBJUlFdCi0JCSAqLwotCQlpZiAoIShzcHVyaW91c19pcnFfbWFzayAmIGlycW1hc2spKSB7Ci0JCQlwcmludGsoS0VSTl9ERUJVRwotCQkJICAgICAgICJzcHVyaW91cyA4MjU5QSBpbnRlcnJ1cHQ6IElSUSVkLlxuIiwgaXJxKTsKLQkJCXNwdXJpb3VzX2lycV9tYXNrIHw9IGlycW1hc2s7Ci0JCX0KLQkJYXRvbWljX2luYygmaXJxX2Vycl9jb3VudCk7Ci0JCS8qCi0JCSAqIFRoZW9yZXRpY2FsbHkgd2UgZG8gbm90IGhhdmUgdG8gaGFuZGxlIHRoaXMgSVJRLAotCQkgKiBidXQgaW4gTGludXggdGhpcyBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcyBhbmQgaXMKLQkJICogc2ltcGxlciBmb3IgdXMuCi0JCSAqLwotCQlnb3RvIGhhbmRsZV9yZWFsX2lycTsKLQl9Ci19Ci0KLXN0YXRpYyBjaGFyIGlycV90cmlnZ2VyWzJdOwotLyoqCi0gKiBFTENSIHJlZ2lzdGVycyAoMHg0ZDAsIDB4NGQxKSBjb250cm9sIGVkZ2UvbGV2ZWwgb2YgSVJRCi0gKi8KLXN0YXRpYyB2b2lkIHJlc3RvcmVfRUxDUihjaGFyICp0cmlnZ2VyKQotewotCW91dGIodHJpZ2dlclswXSwgMHg0ZDApOwotCW91dGIodHJpZ2dlclsxXSwgMHg0ZDEpOwotfQotCi1zdGF0aWMgdm9pZCBzYXZlX0VMQ1IoY2hhciAqdHJpZ2dlcikKLXsKLQkvKiBJUlEgMCwxLDIsOCwxMyBhcmUgbWFya2VkIGFzIHJlc2VydmVkICovCi0JdHJpZ2dlclswXSA9IGluYigweDRkMCkgJiAweEY4OwotCXRyaWdnZXJbMV0gPSBpbmIoMHg0ZDEpICYgMHhERTsKLX0KLQotc3RhdGljIGludCBpODI1OUFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JaW5pdF84MjU5QShpODI1OUFfYXV0b19lb2kpOwotCXJlc3RvcmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQotewotCXNhdmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3NodXRkb3duKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JLyogUHV0IHRoZSBpODI1OUEgaW50byBhIHF1aWVzY2VudCBzdGF0ZSB0aGF0Ci0JICogdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBnZXQgaXQKLQkgKiBvdXQgb2YuCi0JICovCi0Jb3V0YigweGZmLCBQSUNfTUFTVEVSX0lNUik7CS8qIG1hc2sgYWxsIG9mIDgyNTlBLTEgKi8KLQlvdXRiKDB4ZmYsIFBJQ19TTEFWRV9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGk4MjU5X3N5c2Rldl9jbGFzcyA9IHsKLQkubmFtZSA9ICJpODI1OSIsCi0JLnN1c3BlbmQgPSBpODI1OUFfc3VzcGVuZCwKLQkucmVzdW1lID0gaTgyNTlBX3Jlc3VtZSwKLQkuc2h1dGRvd24gPSBpODI1OUFfc2h1dGRvd24sCi19OwotCi1zdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2k4MjU5QSA9IHsKLQkuaWQJPSAwLAotCS5jbHMJPSAmaTgyNTlfc3lzZGV2X2NsYXNzLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgaTgyNTlBX2luaXRfc3lzZnModm9pZCkKLXsKLQlpbnQgZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmk4MjU5X3N5c2Rldl9jbGFzcyk7Ci0JaWYgKCFlcnJvcikKLQkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9pODI1OUEpOwotCXJldHVybiBlcnJvcjsKLX0KLQotZGV2aWNlX2luaXRjYWxsKGk4MjU5QV9pbml0X3N5c2ZzKTsKLQotdm9pZCBpbml0XzgyNTlBKGludCBhdXRvX2VvaSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JaTgyNTlBX2F1dG9fZW9pID0gYXV0b19lb2k7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQotCW91dGIoMHhmZiwgUElDX01BU1RFUl9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0Jb3V0YigweGZmLCBQSUNfU0xBVkVfSU1SKTsJLyogbWFzayBhbGwgb2YgODI1OUEtMiAqLwotCi0JLyoKLQkgKiBvdXRiX3BpYyAtIHRoaXMgaGFzIHRvIHdvcmsgb24gYSB3aWRlIHJhbmdlIG9mIFBDIGhhcmR3YXJlLgotCSAqLwotCW91dGJfcGljKDB4MTEsIFBJQ19NQVNURVJfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTEgaW5pdCAqLwotCS8qIElDVzI6IDgyNTlBLTEgSVIwLTcgbWFwcGVkIHRvIDB4MzAtMHgzNyAqLwotCW91dGJfcGljKElSUTBfVkVDVE9SLCBQSUNfTUFTVEVSX0lNUik7Ci0JLyogODI1OUEtMSAodGhlIG1hc3RlcikgaGFzIGEgc2xhdmUgb24gSVIyICovCi0Jb3V0Yl9waWMoMHgwNCwgUElDX01BU1RFUl9JTVIpOwotCWlmIChhdXRvX2VvaSkJLyogbWFzdGVyIGRvZXMgQXV0byBFT0kgKi8KLQkJb3V0Yl9waWMoTUFTVEVSX0lDVzRfREVGQVVMVCB8IFBJQ19JQ1c0X0FFT0ksIFBJQ19NQVNURVJfSU1SKTsKLQllbHNlCQkvKiBtYXN0ZXIgZXhwZWN0cyBub3JtYWwgRU9JICovCi0JCW91dGJfcGljKE1BU1RFUl9JQ1c0X0RFRkFVTFQsIFBJQ19NQVNURVJfSU1SKTsKLQotCW91dGJfcGljKDB4MTEsIFBJQ19TTEFWRV9DTUQpOwkvKiBJQ1cxOiBzZWxlY3QgODI1OUEtMiBpbml0ICovCi0JLyogSUNXMjogODI1OUEtMiBJUjAtNyBtYXBwZWQgdG8gMHgzOC0weDNmICovCi0Jb3V0Yl9waWMoSVJROF9WRUNUT1IsIFBJQ19TTEFWRV9JTVIpOwotCS8qIDgyNTlBLTIgaXMgYSBzbGF2ZSBvbiBtYXN0ZXIncyBJUjIgKi8KLQlvdXRiX3BpYyhQSUNfQ0FTQ0FERV9JUiwgUElDX1NMQVZFX0lNUik7Ci0JLyogKHNsYXZlJ3Mgc3VwcG9ydCBmb3IgQUVPSSBpbiBmbGF0IG1vZGUgaXMgdG8gYmUgaW52ZXN0aWdhdGVkKSAqLwotCW91dGJfcGljKFNMQVZFX0lDVzRfREVGQVVMVCwgUElDX1NMQVZFX0lNUik7Ci0KLQlpZiAoYXV0b19lb2kpCi0JCS8qCi0JCSAqIEluIEFFT0kgbW9kZSB3ZSBqdXN0IGhhdmUgdG8gbWFzayB0aGUgaW50ZXJydXB0Ci0JCSAqIHdoZW4gYWNraW5nLgotCQkgKi8KLQkJaTgyNTlBX2NoaXAubWFza19hY2sgPSBkaXNhYmxlXzgyNTlBX2lycTsKLQllbHNlCi0JCWk4MjU5QV9jaGlwLm1hc2tfYWNrID0gbWFza19hbmRfYWNrXzgyNTlBOwotCi0JdWRlbGF5KDEwMCk7CQkvKiB3YWl0IGZvciA4MjU5QSB0byBpbml0aWFsaXplICovCi0KLQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOyAvKiByZXN0b3JlIG1hc3RlciBJUlEgbWFzayAqLwotCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOwkgIC8qIHJlc3RvcmUgc2xhdmUgSVJRIG1hc2sgKi8KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci19Ci0KLQotCi0KLS8qCi0gKiBJUlEyIGlzIGNhc2NhZGUgaW50ZXJydXB0IHRvIHNlY29uZCBpbnRlcnJ1cHQgY29udHJvbGxlcgotICovCi0KLXN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGlycTIgPSB7Ci0JLmhhbmRsZXIgPSBub19hY3Rpb24sCi0JLm1hc2sgPSBDUFVfTUFTS19OT05FLAotCS5uYW1lID0gImNhc2NhZGUiLAotfTsKLURFRklORV9QRVJfQ1BVKHZlY3Rvcl9pcnFfdCwgdmVjdG9yX2lycSkgPSB7Ci0JWzAgLi4uIElSUTBfVkVDVE9SIC0gMV0gPSAtMSwKLQlbSVJRMF9WRUNUT1JdID0gMCwKLQlbSVJRMV9WRUNUT1JdID0gMSwKLQlbSVJRMl9WRUNUT1JdID0gMiwKLQlbSVJRM19WRUNUT1JdID0gMywKLQlbSVJRNF9WRUNUT1JdID0gNCwKLQlbSVJRNV9WRUNUT1JdID0gNSwKLQlbSVJRNl9WRUNUT1JdID0gNiwKLQlbSVJRN19WRUNUT1JdID0gNywKLQlbSVJROF9WRUNUT1JdID0gOCwKLQlbSVJROV9WRUNUT1JdID0gOSwKLQlbSVJRMTBfVkVDVE9SXSA9IDEwLAotCVtJUlExMV9WRUNUT1JdID0gMTEsCi0JW0lSUTEyX1ZFQ1RPUl0gPSAxMiwKLQlbSVJRMTNfVkVDVE9SXSA9IDEzLAotCVtJUlExNF9WRUNUT1JdID0gMTQsCi0JW0lSUTE1X1ZFQ1RPUl0gPSAxNSwKLQlbSVJRMTVfVkVDVE9SICsgMSAuLi4gTlJfVkVDVE9SUyAtIDFdID0gLTEKLX07Ci0KLXZvaWQgX19pbml0IGluaXRfSVNBX2lycXMgKHZvaWQpCi17Ci0JaW50IGk7Ci0KLQlpbml0X2JzcF9BUElDKCk7Ci0JaW5pdF84MjU5QSgwKTsKLQotCWZvciAoaSA9IDA7IGkgPCBOUl9JUlFTOyBpKyspIHsKLQkJaXJxX2Rlc2NbaV0uc3RhdHVzID0gSVJRX0RJU0FCTEVEOwotCQlpcnFfZGVzY1tpXS5hY3Rpb24gPSBOVUxMOwotCQlpcnFfZGVzY1tpXS5kZXB0aCA9IDE7Ci0KLQkJaWYgKGkgPCAxNikgewotCQkJLyoKLQkJCSAqIDE2IG9sZC1zdHlsZSBJTlRBLWN5Y2xlIGludGVycnVwdHM6Ci0JCQkgKi8KLQkJCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGksICZpODI1OUFfY2hpcCwKLQkJCQkJCSAgICAgIGhhbmRsZV9sZXZlbF9pcnEsICJYVCIpOwotCQl9IGVsc2UgewotCQkJLyoKLQkJCSAqICdoaWdoJyBQQ0kgSVJRcyBmaWxsZWQgaW4gb24gZGVtYW5kCi0JCQkgKi8KLQkJCWlycV9kZXNjW2ldLmNoaXAgPSAmbm9faXJxX2NoaXA7Ci0JCX0KLQl9Ci19Ci0KLXZvaWQgaW5pdF9JUlEodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIm5hdGl2ZV9pbml0X0lSUSIpKSk7Ci0KLXZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKQotewotCWludCBpOwotCi0JaW5pdF9JU0FfaXJxcygpOwotCS8qCi0JICogQ292ZXIgdGhlIHdob2xlIHZlY3RvciBzcGFjZSwgbm8gdmVjdG9yIGNhbiBlc2NhcGUKLQkgKiB1cy4gKHNvbWUgb2YgdGhlc2Ugd2lsbCBiZSBvdmVycmlkZGVuIGFuZCBiZWNvbWUKLQkgKiAnc3BlY2lhbCcgU01QIGludGVycnVwdHMpCi0JICovCi0JZm9yIChpID0gMDsgaSA8IChOUl9WRUNUT1JTIC0gRklSU1RfRVhURVJOQUxfVkVDVE9SKTsgaSsrKSB7Ci0JCWludCB2ZWN0b3IgPSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IgKyBpOwotCQlpZiAodmVjdG9yICE9IElBMzJfU1lTQ0FMTF9WRUNUT1IpCi0JCQlzZXRfaW50cl9nYXRlKHZlY3RvciwgaW50ZXJydXB0W2ldKTsKLQl9Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0JLyoKLQkgKiBUaGUgcmVzY2hlZHVsZSBpbnRlcnJ1cHQgaXMgYSBDUFUtdG8tQ1BVIHJlc2NoZWR1bGUtaGVscGVyCi0JICogSVBJLCBkcml2ZW4gYnkgd2FrZXVwLgotCSAqLwotCXNldF9pbnRyX2dhdGUoUkVTQ0hFRFVMRV9WRUNUT1IsIHJlc2NoZWR1bGVfaW50ZXJydXB0KTsKLQotCS8qIElQSXMgZm9yIGludmFsaWRhdGlvbiAqLwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzAsIGludmFsaWRhdGVfaW50ZXJydXB0MCk7Ci0Jc2V0X2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrMSwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQxKTsKLQlzZXRfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCsyLCBpbnZhbGlkYXRlX2ludGVycnVwdDIpOwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzMsIGludmFsaWRhdGVfaW50ZXJydXB0Myk7Ci0Jc2V0X2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrNCwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ0KTsKLQlzZXRfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCs1LCBpbnZhbGlkYXRlX2ludGVycnVwdDUpOwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzYsIGludmFsaWRhdGVfaW50ZXJydXB0Nik7Ci0Jc2V0X2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrNywgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ3KTsKLQotCS8qIElQSSBmb3IgZ2VuZXJpYyBmdW5jdGlvbiBjYWxsICovCi0Jc2V0X2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiwgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQpOwotCi0JLyogSVBJIGZvciBnZW5lcmljIHNpbmdsZSBmdW5jdGlvbiBjYWxsICovCi0Jc2V0X2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1NJTkdMRV9WRUNUT1IsCi0JCQkJY2FsbF9mdW5jdGlvbl9zaW5nbGVfaW50ZXJydXB0KTsKLQotCS8qIExvdyBwcmlvcml0eSBJUEkgdG8gY2xlYW51cCBhZnRlciBtb3ZpbmcgYW4gaXJxICovCi0Jc2V0X2ludHJfZ2F0ZShJUlFfTU9WRV9DTEVBTlVQX1ZFQ1RPUiwgaXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQpOwotI2VuZGlmCi0Jc2V0X2ludHJfZ2F0ZShUSEVSTUFMX0FQSUNfVkVDVE9SLCB0aGVybWFsX2ludGVycnVwdCk7Ci0Jc2V0X2ludHJfZ2F0ZShUSFJFU0hPTERfQVBJQ19WRUNUT1IsIHRocmVzaG9sZF9pbnRlcnJ1cHQpOwotCi0JLyogc2VsZiBnZW5lcmF0ZWQgSVBJIGZvciBsb2NhbCBBUElDIHRpbWVyICovCi0Jc2V0X2ludHJfZ2F0ZShMT0NBTF9USU1FUl9WRUNUT1IsIGFwaWNfdGltZXJfaW50ZXJydXB0KTsKLQotCS8qIElQSSB2ZWN0b3JzIGZvciBBUElDIHNwdXJpb3VzIGFuZCBlcnJvciBpbnRlcnJ1cHRzICovCi0Jc2V0X2ludHJfZ2F0ZShTUFVSSU9VU19BUElDX1ZFQ1RPUiwgc3B1cmlvdXNfaW50ZXJydXB0KTsKLQlzZXRfaW50cl9nYXRlKEVSUk9SX0FQSUNfVkVDVE9SLCBlcnJvcl9pbnRlcnJ1cHQpOwotCi0JaWYgKCFhY3BpX2lvYXBpYykKLQkJc2V0dXBfaXJxKDIsICZpcnEyKTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pb19hcGljXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvaW9fYXBpY18zMi5jCmluZGV4IDcyMDY0MGYuLjU1OGFiZjQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9pb19hcGljXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2lvX2FwaWNfMzIuYwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CkBAIC01OCw3ICs1OSw3IEBACiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGlvYXBpY19sb2NrKTsKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sodmVjdG9yX2xvY2spOwogCi1pbnQgdGltZXJfb3Zlcl84MjU0IF9faW5pdGRhdGEgPSAxOworaW50IHRpbWVyX3Rocm91Z2hfODI1OSBfX2luaXRkYXRhOwogCiAvKgogICoJSXMgdGhlIFNpUyBBUElDIHJtdyBidWcgcHJlc2VudCA/CkBAIC03MiwxNSArNzMsMjEgQEAKIGludCBucl9pb2FwaWNfcmVnaXN0ZXJzW01BWF9JT19BUElDU107CiAKIC8qIEkvTyBBUElDIGVudHJpZXMgKi8KLXN0cnVjdCBtcGNfY29uZmlnX2lvYXBpYyBtcF9pb2FwaWNzW01BWF9JT19BUElDU107CitzdHJ1Y3QgbXBfY29uZmlnX2lvYXBpYyBtcF9pb2FwaWNzW01BWF9JT19BUElDU107CiBpbnQgbnJfaW9hcGljczsKIAogLyogTVAgSVJRIHNvdXJjZSBlbnRyaWVzICovCi1zdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgbXBfaXJxc1tNQVhfSVJRX1NPVVJDRVNdOworc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgbXBfaXJxc1tNQVhfSVJRX1NPVVJDRVNdOwogCiAvKiAjIG9mIE1QIElSUSBzb3VyY2UgZW50cmllcyAqLwogaW50IG1wX2lycV9lbnRyaWVzOwogCisjaWYgZGVmaW5lZCAoQ09ORklHX01DQSkgfHwgZGVmaW5lZCAoQ09ORklHX0VJU0EpCitpbnQgbXBfYnVzX2lkX3RvX3R5cGVbTUFYX01QX0JVU1NFU107CisjZW5kaWYKKworREVDTEFSRV9CSVRNQVAobXBfYnVzX25vdF9wY2ksIE1BWF9NUF9CVVNTRVMpOworCiBzdGF0aWMgaW50IGRpc2FibGVfdGltZXJfcGluXzEgX19pbml0ZGF0YTsKIAogLyoKQEAgLTExMCw3ICsxMTcsNyBAQAogc3RhdGljIF9fYXR0cmlidXRlX2NvbnN0X18gc3RydWN0IGlvX2FwaWMgX19pb21lbSAqaW9fYXBpY19iYXNlKGludCBpZHgpCiB7CiAJcmV0dXJuICh2b2lkIF9faW9tZW0gKikgX19maXhfdG9fdmlydChGSVhfSU9fQVBJQ19CQVNFXzAgKyBpZHgpCi0JCSsgKG1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2FkZHIgJiB+UEFHRV9NQVNLKTsKKwkJKyAobXBfaW9hcGljc1tpZHhdLm1wX2FwaWNhZGRyICYgflBBR0VfTUFTSyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGlvX2FwaWNfcmVhZCh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZykKQEAgLTIzOSw3ICsyNDYsNyBAQAogCX0KIH0KIAotc3RhdGljIHZvaWQgX19tb2RpZnlfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEsIHVuc2lnbmVkIGxvbmcgZW5hYmxlLCB1bnNpZ25lZCBsb25nIGRpc2FibGUpCitzdGF0aWMgdm9pZCBfX21vZGlmeV9JT19BUElDX2lycSh1bnNpZ25lZCBpbnQgaXJxLCB1bnNpZ25lZCBsb25nIGVuYWJsZSwgdW5zaWduZWQgbG9uZyBkaXNhYmxlKQogewogCXN0cnVjdCBpcnFfcGluX2xpc3QgKmVudHJ5ID0gaXJxXzJfcGluICsgaXJxOwogCXVuc2lnbmVkIGludCBwaW4sIHJlZzsKQEAgLTI1OSwzMCArMjY2LDMyIEBACiB9CiAKIC8qIG1hc2sgPSAxICovCi1zdGF0aWMgdm9pZCBfX21hc2tfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBfX21hc2tfSU9fQVBJQ19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKLQlfX21vZGlmeV9JT19BUElDX2lycShpcnEsIDB4MDAwMTAwMDAsIDApOworCV9fbW9kaWZ5X0lPX0FQSUNfaXJxKGlycSwgSU9fQVBJQ19SRURJUl9NQVNLRUQsIDApOwogfQogCiAvKiBtYXNrID0gMCAqLwotc3RhdGljIHZvaWQgX191bm1hc2tfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBfX3VubWFza19JT19BUElDX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewotCV9fbW9kaWZ5X0lPX0FQSUNfaXJxKGlycSwgMCwgMHgwMDAxMDAwMCk7CisJX19tb2RpZnlfSU9fQVBJQ19pcnEoaXJxLCAwLCBJT19BUElDX1JFRElSX01BU0tFRCk7CiB9CiAKIC8qIG1hc2sgPSAxLCB0cmlnZ2VyID0gMCAqLwotc3RhdGljIHZvaWQgX19tYXNrX2FuZF9lZGdlX0lPX0FQSUNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQorc3RhdGljIHZvaWQgX19tYXNrX2FuZF9lZGdlX0lPX0FQSUNfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7Ci0JX19tb2RpZnlfSU9fQVBJQ19pcnEoaXJxLCAweDAwMDEwMDAwLCAweDAwMDA4MDAwKTsKKwlfX21vZGlmeV9JT19BUElDX2lycShpcnEsIElPX0FQSUNfUkVESVJfTUFTS0VELAorCQkJCUlPX0FQSUNfUkVESVJfTEVWRUxfVFJJR0dFUik7CiB9CiAKIC8qIG1hc2sgPSAwLCB0cmlnZ2VyID0gMSAqLwotc3RhdGljIHZvaWQgX191bm1hc2tfYW5kX2xldmVsX0lPX0FQSUNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQorc3RhdGljIHZvaWQgX191bm1hc2tfYW5kX2xldmVsX0lPX0FQSUNfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7Ci0JX19tb2RpZnlfSU9fQVBJQ19pcnEoaXJxLCAweDAwMDA4MDAwLCAweDAwMDEwMDAwKTsKKwlfX21vZGlmeV9JT19BUElDX2lycShpcnEsIElPX0FQSUNfUkVESVJfTEVWRUxfVFJJR0dFUiwKKwkJCQlJT19BUElDX1JFRElSX01BU0tFRCk7CiB9CiAKLXN0YXRpYyB2b2lkIG1hc2tfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBtYXNrX0lPX0FQSUNfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIApAQCAtMjkxLDcgKzMwMCw3IEBACiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIH0KIAotc3RhdGljIHZvaWQgdW5tYXNrX0lPX0FQSUNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQorc3RhdGljIHZvaWQgdW5tYXNrX0lPX0FQSUNfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIApAQCAtMzAzLDcgKzMxMiw3IEBACiBzdGF0aWMgdm9pZCBjbGVhcl9JT19BUElDX3Bpbih1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHBpbikKIHsKIAlzdHJ1Y3QgSU9fQVBJQ19yb3V0ZV9lbnRyeSBlbnRyeTsKLQkKKwogCS8qIENoZWNrIGRlbGl2ZXJ5X21vZGUgdG8gYmUgc3VyZSB3ZSdyZSBub3QgY2xlYXJpbmcgYW4gU01JIHBpbiAqLwogCWVudHJ5ID0gaW9hcGljX3JlYWRfZW50cnkoYXBpYywgcGluKTsKIAlpZiAoZW50cnkuZGVsaXZlcnlfbW9kZSA9PSBkZXN0X1NNSSkKQEAgLTMxNSw3ICszMjQsNyBAQAogCWlvYXBpY19tYXNrX2VudHJ5KGFwaWMsIHBpbik7CiB9CiAKLXN0YXRpYyB2b2lkIGNsZWFyX0lPX0FQSUMgKHZvaWQpCitzdGF0aWMgdm9pZCBjbGVhcl9JT19BUElDKHZvaWQpCiB7CiAJaW50IGFwaWMsIHBpbjsKIApAQCAtMzMyLDcgKzM0MSw3IEBACiAJc3RydWN0IGlycV9waW5fbGlzdCAqZW50cnkgPSBpcnFfMl9waW4gKyBpcnE7CiAJdW5zaWduZWQgaW50IGFwaWNpZF92YWx1ZTsKIAljcHVtYXNrX3QgdG1wOwotCQorCiAJY3B1c19hbmQodG1wLCBjcHVtYXNrLCBjcHVfb25saW5lX21hcCk7CiAJaWYgKGNwdXNfZW1wdHkodG1wKSkKIAkJdG1wID0gVEFSR0VUX0NQVVM7CkBAIC0zNjEsNyArMzcwLDcgQEAKICMgaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4JLyoga3N0YXQgKi8KICMgaW5jbHVkZSA8bGludXgvc2xhYi5oPgkJLyoga21hbGxvYygpICovCiAjIGluY2x1ZGUgPGxpbnV4L3RpbWVyLmg+Ci0gCisKICNkZWZpbmUgSVJRQkFMQU5DRV9DSEVDS19BUkNIIC05OTkKICNkZWZpbmUgTUFYX0JBTEFOQ0VEX0lSUV9JTlRFUlZBTAkoNSpIWikKICNkZWZpbmUgTUlOX0JBTEFOQ0VEX0lSUV9JTlRFUlZBTAkoSFovMikKQEAgLTM3MywxNCArMzgyLDE0IEBACiBzdGF0aWMgbG9uZyBiYWxhbmNlZF9pcnFfaW50ZXJ2YWwgX19yZWFkX21vc3RseSA9IE1BWF9CQUxBTkNFRF9JUlFfSU5URVJWQUw7CiAKIHN0YXRpYyBzdHJ1Y3QgaXJxX2NwdV9pbmZvIHsKLQl1bnNpZ25lZCBsb25nICogbGFzdF9pcnE7Ci0JdW5zaWduZWQgbG9uZyAqIGlycV9kZWx0YTsKKwl1bnNpZ25lZCBsb25nICpsYXN0X2lycTsKKwl1bnNpZ25lZCBsb25nICppcnFfZGVsdGE7CiAJdW5zaWduZWQgbG9uZyBpcnE7CiB9IGlycV9jcHVfZGF0YVtOUl9DUFVTXTsKIAogI2RlZmluZSBDUFVfSVJRKGNwdSkJCShpcnFfY3B1X2RhdGFbY3B1XS5pcnEpCi0jZGVmaW5lIExBU1RfQ1BVX0lSUShjcHUsaXJxKSAgIChpcnFfY3B1X2RhdGFbY3B1XS5sYXN0X2lycVtpcnFdKQotI2RlZmluZSBJUlFfREVMVEEoY3B1LGlycSkgCShpcnFfY3B1X2RhdGFbY3B1XS5pcnFfZGVsdGFbaXJxXSkKKyNkZWZpbmUgTEFTVF9DUFVfSVJRKGNwdSwgaXJxKSAgIChpcnFfY3B1X2RhdGFbY3B1XS5sYXN0X2lycVtpcnFdKQorI2RlZmluZSBJUlFfREVMVEEoY3B1LCBpcnEpIAkoaXJxX2NwdV9kYXRhW2NwdV0uaXJxX2RlbHRhW2lycV0pCiAKICNkZWZpbmUgSURMRV9FTk9VR0goY3B1LG5vdykgXAogCShpZGxlX2NwdShjcHUpICYmICgobm93KSAtIHBlcl9jcHUoaXJxX3N0YXQsIChjcHUpKS5pZGxlX3RpbWVzdGFtcCA+IDEpKQpAQCAtNDE5LDggKzQyOCw4IEBACiAJCQlpZiAoY3B1ID09IC0xKQogCQkJCWNwdSA9IE5SX0NQVVMtMTsKIAkJfQotCX0gd2hpbGUgKCFjcHVfb25saW5lKGNwdSkgfHwgIUlSUV9BTExPV0VEKGNwdSxhbGxvd2VkX21hc2spIHx8Ci0JCQkoc2VhcmNoX2lkbGUgJiYgIUlETEVfRU5PVUdIKGNwdSxub3cpKSk7CisJfSB3aGlsZSAoIWNwdV9vbmxpbmUoY3B1KSB8fCAhSVJRX0FMTE9XRUQoY3B1LCBhbGxvd2VkX21hc2spIHx8CisJCQkoc2VhcmNoX2lkbGUgJiYgIUlETEVfRU5PVUdIKGNwdSwgbm93KSkpOwogCiAJcmV0dXJuIGNwdTsKIH0KQEAgLTQzMCwxNSArNDM5LDE0IEBACiAJdW5zaWduZWQgbG9uZyBub3cgPSBqaWZmaWVzOwogCWNwdW1hc2tfdCBhbGxvd2VkX21hc2s7CiAJdW5zaWduZWQgaW50IG5ld19jcHU7Ci0JCQorCiAJaWYgKGlycWJhbGFuY2VfZGlzYWJsZWQpCi0JCXJldHVybjsgCisJCXJldHVybjsKIAogCWNwdXNfYW5kKGFsbG93ZWRfbWFzaywgY3B1X29ubGluZV9tYXAsIGJhbGFuY2VfaXJxX2FmZmluaXR5W2lycV0pOwogCW5ld19jcHUgPSBtb3ZlKGNwdSwgYWxsb3dlZF9tYXNrLCBub3csIDEpOwotCWlmIChjcHUgIT0gbmV3X2NwdSkgeworCWlmIChjcHUgIT0gbmV3X2NwdSkKIAkJc2V0X3BlbmRpbmdfaXJxKGlycSwgY3B1bWFza19vZl9jcHUobmV3X2NwdSkpOwotCX0KIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHJvdGF0ZV9pcnFzX2Ftb25nX2NwdXModW5zaWduZWQgbG9uZyB1c2VmdWxfbG9hZF90aHJlc2hvbGQpCkBAIC00NTAsMTQgKzQ1OCwxNCBAQAogCQkJaWYgKCFpcnFfZGVzY1tqXS5hY3Rpb24pCiAJCQkJY29udGludWU7CiAJCQkvKiBJcyBpdCBhIHNpZ25pZmljYW50IGxvYWQgPyAgKi8KLQkJCWlmIChJUlFfREVMVEEoQ1BVX1RPX1BBQ0tBR0VJTkRFWChpKSxqKSA8CisJCQlpZiAoSVJRX0RFTFRBKENQVV9UT19QQUNLQUdFSU5ERVgoaSksIGopIDwKIAkJCQkJCXVzZWZ1bF9sb2FkX3RocmVzaG9sZCkKIAkJCQljb250aW51ZTsKIAkJCWJhbGFuY2VfaXJxKGksIGopOwogCQl9CiAJfQogCWJhbGFuY2VkX2lycV9pbnRlcnZhbCA9IG1heCgobG9uZylNSU5fQkFMQU5DRURfSVJRX0lOVEVSVkFMLAotCQliYWxhbmNlZF9pcnFfaW50ZXJ2YWwgLSBCQUxBTkNFRF9JUlFfTEVTU19ERUxUQSk7CQorCQliYWxhbmNlZF9pcnFfaW50ZXJ2YWwgLSBCQUxBTkNFRF9JUlFfTEVTU19ERUxUQSk7CiAJcmV0dXJuOwogfQogCkBAIC00ODYsMjIgKzQ5NCwyMiBAQAogCQkJLyogSXMgdGhpcyBhbiBhY3RpdmUgSVJRIG9yIGJhbGFuY2luZyBkaXNhYmxlZCA/ICovCiAJCQlpZiAoIWlycV9kZXNjW2pdLmFjdGlvbiB8fCBpcnFfYmFsYW5jaW5nX2Rpc2FibGVkKGopKQogCQkJCWNvbnRpbnVlOwotCQkJaWYgKCBwYWNrYWdlX2luZGV4ID09IGkgKQotCQkJCUlSUV9ERUxUQShwYWNrYWdlX2luZGV4LGopID0gMDsKKwkJCWlmIChwYWNrYWdlX2luZGV4ID09IGkpCisJCQkJSVJRX0RFTFRBKHBhY2thZ2VfaW5kZXgsIGopID0gMDsKIAkJCS8qIERldGVybWluZSB0aGUgdG90YWwgY291bnQgcGVyIHByb2Nlc3NvciBwZXIgSVJRICovCiAJCQl2YWx1ZV9ub3cgPSAodW5zaWduZWQgbG9uZykga3N0YXRfY3B1KGkpLmlycXNbal07CiAKIAkJCS8qIERldGVybWluZSB0aGUgYWN0aXZpdHkgcGVyIHByb2Nlc3NvciBwZXIgSVJRICovCi0JCQlkZWx0YSA9IHZhbHVlX25vdyAtIExBU1RfQ1BVX0lSUShpLGopOworCQkJZGVsdGEgPSB2YWx1ZV9ub3cgLSBMQVNUX0NQVV9JUlEoaSwgaik7CiAKIAkJCS8qIFVwZGF0ZSBsYXN0X2NwdV9pcnFbXVtdIGZvciB0aGUgbmV4dCB0aW1lICovCi0JCQlMQVNUX0NQVV9JUlEoaSxqKSA9IHZhbHVlX25vdzsKKwkJCUxBU1RfQ1BVX0lSUShpLCBqKSA9IHZhbHVlX25vdzsKIAogCQkJLyogSWdub3JlIElSUXMgd2hvc2UgcmF0ZSBpcyBsZXNzIHRoYW4gdGhlIGNsb2NrICovCiAJCQlpZiAoZGVsdGEgPCB1c2VmdWxfbG9hZF90aHJlc2hvbGQpCiAJCQkJY29udGludWU7CiAJCQkvKiB1cGRhdGUgdGhlIGxvYWQgZm9yIHRoZSBwcm9jZXNzb3Igb3IgcGFja2FnZSB0b3RhbCAqLwotCQkJSVJRX0RFTFRBKHBhY2thZ2VfaW5kZXgsaikgKz0gZGVsdGE7CisJCQlJUlFfREVMVEEocGFja2FnZV9pbmRleCwgaikgKz0gZGVsdGE7CiAKIAkJCS8qIEtlZXAgdHJhY2sgb2YgdGhlIGhpZ2hlciBudW1iZXJlZCBzaWJsaW5nIGFzIHdlbGwgKi8KIAkJCWlmIChpICE9IHBhY2thZ2VfaW5kZXgpCkBAIC01MjcsNyArNTM1LDggQEAKIAltYXhfY3B1X2lycSA9IFVMT05HX01BWDsKIAogdHJ5YW5vdGhlcmNwdToKLQkvKiBMb29rIGZvciBoZWF2aWVzdCBsb2FkZWQgcHJvY2Vzc29yLgorCS8qCisJICogTG9vayBmb3IgaGVhdmllc3QgbG9hZGVkIHByb2Nlc3Nvci4KIAkgKiBXZSBtYXkgY29tZSBiYWNrIHRvIGdldCB0aGUgbmV4dCBoZWF2aWVzdCBsb2FkZWQgcHJvY2Vzc29yLgogCSAqIFNraXAgcHJvY2Vzc29ycyB3aXRoIHRyaXZpYWwgbG9hZHMuCiAJICovCkBAIC01MzYsNyArNTQ1LDcgQEAKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGkpIHsKIAkJaWYgKGkgIT0gQ1BVX1RPX1BBQ0tBR0VJTkRFWChpKSkKIAkJCWNvbnRpbnVlOwotCQlpZiAobWF4X2NwdV9pcnEgPD0gQ1BVX0lSUShpKSkgCisJCWlmIChtYXhfY3B1X2lycSA8PSBDUFVfSVJRKGkpKQogCQkJY29udGludWU7CiAJCWlmICh0bXBfY3B1X2lycSA8IENQVV9JUlEoaSkpIHsKIAkJCXRtcF9jcHVfaXJxID0gQ1BVX0lSUShpKTsKQEAgLTU0NSw4ICs1NTQsOSBAQAogCX0KIAogCWlmICh0bXBfbG9hZGVkID09IC0xKSB7Ci0gCSAvKiBJbiB0aGUgY2FzZSBvZiBzbWFsbCBudW1iZXIgb2YgaGVhdnkgaW50ZXJydXB0IHNvdXJjZXMsIAotCSAgKiBsb2FkaW5nIHNvbWUgb2YgdGhlIGNwdXMgdG9vIG11Y2guIFdlIHVzZSBJbmdvJ3Mgb3JpZ2luYWwgCisJIC8qCisJICAqIEluIHRoZSBjYXNlIG9mIHNtYWxsIG51bWJlciBvZiBoZWF2eSBpbnRlcnJ1cHQgc291cmNlcywKKwkgICogbG9hZGluZyBzb21lIG9mIHRoZSBjcHVzIHRvbyBtdWNoLiBXZSB1c2UgSW5nbydzIG9yaWdpbmFsCiAJICAqIGFwcHJvYWNoIHRvIHJvdGF0ZSB0aGVtIGFyb3VuZC4KIAkgICovCiAJCWlmICghZmlyc3RfYXR0ZW1wdCAmJiBpbWJhbGFuY2UgPj0gdXNlZnVsX2xvYWRfdGhyZXNob2xkKSB7CkBAIC01NTUsMTMgKzU2NSwxNCBAQAogCQl9CiAJCWdvdG8gbm90X3dvcnRoX3RoZV9lZmZvcnQ7CiAJfQotCQorCiAJZmlyc3RfYXR0ZW1wdCA9IDA7CQkvKiBoZWF2aWVzdCBzZWFyY2ggKi8KIAltYXhfY3B1X2lycSA9IHRtcF9jcHVfaXJxOwkvKiBsb2FkICovCiAJbWF4X2xvYWRlZCA9IHRtcF9sb2FkZWQ7CS8qIHByb2Nlc3NvciAqLwogCWltYmFsYW5jZSA9IChtYXhfY3B1X2lycSAtIG1pbl9jcHVfaXJxKSAvIDI7Ci0JCi0JLyogaWYgaW1iYWxhbmNlIGlzIGxlc3MgdGhhbiBhcHByb3ggMTAlIG9mIG1heCBsb2FkLCB0aGVuCisKKwkvKgorCSAqIGlmIGltYmFsYW5jZSBpcyBsZXNzIHRoYW4gYXBwcm94IDEwJSBvZiBtYXggbG9hZCwgdGhlbgogCSAqIG9ic2VydmUgZGltaW5pc2hpbmcgcmV0dXJucyBhY3Rpb24uIC0gcXVpdAogCSAqLwogCWlmIChpbWJhbGFuY2UgPCAobWF4X2NwdV9pcnEgPj4gMykpCkBAIC01NzcsMjYgKzU4OCwyNSBAQAogCQkvKiBJcyB0aGlzIGFuIGFjdGl2ZSBJUlE/ICovCiAJCWlmICghaXJxX2Rlc2Nbal0uYWN0aW9uKQogCQkJY29udGludWU7Ci0JCWlmIChpbWJhbGFuY2UgPD0gSVJRX0RFTFRBKG1heF9sb2FkZWQsaikpCisJCWlmIChpbWJhbGFuY2UgPD0gSVJRX0RFTFRBKG1heF9sb2FkZWQsIGopKQogCQkJY29udGludWU7CiAJCS8qIFRyeSB0byBmaW5kIHRoZSBJUlEgdGhhdCBpcyBjbG9zZXN0IHRvIHRoZSBpbWJhbGFuY2UKIAkJICogd2l0aG91dCBnb2luZyBvdmVyLgogCQkgKi8KLQkJaWYgKG1vdmVfdGhpc19sb2FkIDwgSVJRX0RFTFRBKG1heF9sb2FkZWQsaikpIHsKLQkJCW1vdmVfdGhpc19sb2FkID0gSVJRX0RFTFRBKG1heF9sb2FkZWQsaik7CisJCWlmIChtb3ZlX3RoaXNfbG9hZCA8IElSUV9ERUxUQShtYXhfbG9hZGVkLCBqKSkgeworCQkJbW92ZV90aGlzX2xvYWQgPSBJUlFfREVMVEEobWF4X2xvYWRlZCwgaik7CiAJCQlzZWxlY3RlZF9pcnEgPSBqOwogCQl9CiAJfQotCWlmIChzZWxlY3RlZF9pcnEgPT0gLTEpIHsKKwlpZiAoc2VsZWN0ZWRfaXJxID09IC0xKQogCQlnb3RvIHRyeWFub3RoZXJjcHU7Ci0JfQogCiAJaW1iYWxhbmNlID0gbW92ZV90aGlzX2xvYWQ7Ci0JCisKIAkvKiBGb3IgcGh5c2ljYWxfYmFsYW5jZSBjYXNlLCB3ZSBhY2N1bXVsYXRlZCBib3RoIGxvYWQKIAkgKiB2YWx1ZXMgaW4gdGhlIG9uZSBvZiB0aGUgc2libGluZ3MgY3B1X2lycVtdLAogCSAqIHRvIHVzZSB0aGUgc2FtZSBjb2RlIGZvciBwaHlzaWNhbCBhbmQgbG9naWNhbCBwcm9jZXNzb3JzCi0JICogYXMgbXVjaCBhcyBwb3NzaWJsZS4gCisJICogYXMgbXVjaCBhcyBwb3NzaWJsZS4KIAkgKgogCSAqIE5PVEU6IHRoZSBjcHVfaXJxW10gYXJyYXkgaG9sZHMgdGhlIHN1bSBvZiB0aGUgbG9hZCBmb3IKIAkgKiBzaWJsaW5nIEEgYW5kIHNpYmxpbmcgQiBpbiB0aGUgc2xvdCBmb3IgdGhlIGxvd2VzdCBudW1iZXJlZApAQCAtNjI1LDExICs2MzUsMTEgQEAKIAkJLyogbWFyayBmb3IgY2hhbmdlIGRlc3RpbmF0aW9uICovCiAJCXNldF9wZW5kaW5nX2lycShzZWxlY3RlZF9pcnEsIGNwdW1hc2tfb2ZfY3B1KG1pbl9sb2FkZWQpKTsKIAotCQkvKiBTaW5jZSB3ZSBtYWRlIGEgY2hhbmdlLCBjb21lIGJhY2sgc29vbmVyIHRvIAorCQkvKiBTaW5jZSB3ZSBtYWRlIGEgY2hhbmdlLCBjb21lIGJhY2sgc29vbmVyIHRvCiAJCSAqIGNoZWNrIGZvciBtb3JlIHZhcmlhdGlvbi4KIAkJICovCiAJCWJhbGFuY2VkX2lycV9pbnRlcnZhbCA9IG1heCgobG9uZylNSU5fQkFMQU5DRURfSVJRX0lOVEVSVkFMLAotCQkJYmFsYW5jZWRfaXJxX2ludGVydmFsIC0gQkFMQU5DRURfSVJRX0xFU1NfREVMVEEpOwkKKwkJCWJhbGFuY2VkX2lycV9pbnRlcnZhbCAtIEJBTEFOQ0VEX0lSUV9MRVNTX0RFTFRBKTsKIAkJcmV0dXJuOwogCX0KIAlnb3RvIHRyeWFub3RoZXJpcnE7CkBAIC02NDAsNyArNjUwLDcgQEAKIAkgKiB1cHdhcmQKIAkgKi8KIAliYWxhbmNlZF9pcnFfaW50ZXJ2YWwgPSBtaW4oKGxvbmcpTUFYX0JBTEFOQ0VEX0lSUV9JTlRFUlZBTCwKLQkJYmFsYW5jZWRfaXJxX2ludGVydmFsICsgQkFMQU5DRURfSVJRX01PUkVfREVMVEEpOwkKKwkJYmFsYW5jZWRfaXJxX2ludGVydmFsICsgQkFMQU5DRURfSVJRX01PUkVfREVMVEEpOwogCXJldHVybjsKIH0KIApAQCAtNjc5LDEzICs2ODksMTMgQEAKIAljcHVtYXNrX3QgdG1wOwogCiAJY3B1c19zaGlmdF9yaWdodCh0bXAsIGNwdV9vbmxpbmVfbWFwLCAyKTsKLSAgICAgICAgYyA9ICZib290X2NwdV9kYXRhOworCWMgPSAmYm9vdF9jcHVfZGF0YTsKIAkvKiBXaGVuIG5vdCBvdmVyd3JpdHRlbiBieSB0aGUgY29tbWFuZCBsaW5lIGFzayBzdWJhcmNoaXRlY3R1cmUuICovCiAJaWYgKGlycWJhbGFuY2VfZGlzYWJsZWQgPT0gSVJRQkFMQU5DRV9DSEVDS19BUkNIKQogCQlpcnFiYWxhbmNlX2Rpc2FibGVkID0gTk9fQkFMQU5DRV9JUlE7CiAJaWYgKGlycWJhbGFuY2VfZGlzYWJsZWQpCiAJCXJldHVybiAwOwotCQorCiAJIC8qIGRpc2FibGUgaXJxYmFsYW5jZSBjb21wbGV0ZWx5IGlmIHRoZXJlIGlzIG9ubHkgb25lIHByb2Nlc3NvciBvbmxpbmUgKi8KIAlpZiAobnVtX29ubGluZV9jcHVzKCkgPCAyKSB7CiAJCWlycWJhbGFuY2VfZGlzYWJsZWQgPSAxOwpAQCAtNjk5LDE2ICs3MDksMTQgQEAKIAkJcGh5c2ljYWxfYmFsYW5jZSA9IDE7CiAKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGkpIHsKLQkJaXJxX2NwdV9kYXRhW2ldLmlycV9kZWx0YSA9IGttYWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUywgR0ZQX0tFUk5FTCk7Ci0JCWlycV9jcHVfZGF0YVtpXS5sYXN0X2lycSA9IGttYWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUywgR0ZQX0tFUk5FTCk7CisJCWlycV9jcHVfZGF0YVtpXS5pcnFfZGVsdGEgPSBremFsbG9jKHNpemVvZih1bnNpZ25lZCBsb25nKSAqIE5SX0lSUVMsIEdGUF9LRVJORUwpOworCQlpcnFfY3B1X2RhdGFbaV0ubGFzdF9pcnEgPSBremFsbG9jKHNpemVvZih1bnNpZ25lZCBsb25nKSAqIE5SX0lSUVMsIEdGUF9LRVJORUwpOwogCQlpZiAoaXJxX2NwdV9kYXRhW2ldLmlycV9kZWx0YSA9PSBOVUxMIHx8IGlycV9jcHVfZGF0YVtpXS5sYXN0X2lycSA9PSBOVUxMKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgImJhbGFuY2VkX2lycV9pbml0OiBvdXQgb2YgbWVtb3J5Iik7CiAJCQlnb3RvIGZhaWxlZDsKIAkJfQotCQltZW1zZXQoaXJxX2NwdV9kYXRhW2ldLmlycV9kZWx0YSwwLHNpemVvZih1bnNpZ25lZCBsb25nKSAqIE5SX0lSUVMpOwotCQltZW1zZXQoaXJxX2NwdV9kYXRhW2ldLmxhc3RfaXJxLDAsc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUyk7CiAJfQotCQorCiAJcHJpbnRrKEtFUk5fSU5GTyAiU3RhcnRpbmcgYmFsYW5jZWRfaXJxXG4iKTsKIAlpZiAoIUlTX0VSUihrdGhyZWFkX3J1bihiYWxhbmNlZF9pcnEsIE5VTEwsICJraXJxZCIpKSkKIAkJcmV0dXJuIDA7CkBAIC04MDEsMTAgKzgwOSwxMCBAQAogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspCi0JCWlmIChtcF9pcnFzW2ldLm1wY19pcnF0eXBlID09IHR5cGUgJiYKLQkJICAgIChtcF9pcnFzW2ldLm1wY19kc3RhcGljID09IG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCB8fAotCQkgICAgIG1wX2lycXNbaV0ubXBjX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpICYmCi0JCSAgICBtcF9pcnFzW2ldLm1wY19kc3RpcnEgPT0gcGluKQorCQlpZiAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IHR5cGUgJiYKKwkJICAgIChtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQgfHwKKwkJICAgICBtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpICYmCisJCSAgICBtcF9pcnFzW2ldLm1wX2RzdGlycSA9PSBwaW4pCiAJCQlyZXR1cm4gaTsKIAogCXJldHVybiAtMTsKQEAgLTgxOCwxMyArODI2LDEzIEBACiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgewotCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBjX3NyY2J1czsKKwkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wX3NyY2J1czsKIAogCQlpZiAodGVzdF9iaXQobGJ1cywgbXBfYnVzX25vdF9wY2kpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSB0eXBlKSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA9PSBpcnEpKQorCQkgICAgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSA9PSB0eXBlKSAmJgorCQkgICAgKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxID09IGlycSkpCiAKLQkJCXJldHVybiBtcF9pcnFzW2ldLm1wY19kc3RpcnE7CisJCQlyZXR1cm4gbXBfaXJxc1tpXS5tcF9kc3RpcnE7CiAJfQogCXJldHVybiAtMTsKIH0KQEAgLTgzNCwxNyArODQyLDE3IEBACiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgewotCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBjX3NyY2J1czsKKwkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wX3NyY2J1czsKIAogCQlpZiAodGVzdF9iaXQobGJ1cywgbXBfYnVzX25vdF9wY2kpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSB0eXBlKSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA9PSBpcnEpKQorCQkgICAgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSA9PSB0eXBlKSAmJgorCQkgICAgKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxID09IGlycSkpCiAJCQlicmVhazsKIAl9CiAJaWYgKGkgPCBtcF9pcnFfZW50cmllcykgewogCQlpbnQgYXBpYzsKLQkJZm9yKGFwaWMgPSAwOyBhcGljIDwgbnJfaW9hcGljczsgYXBpYysrKSB7Ci0JCQlpZiAobXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID09IG1wX2lycXNbaV0ubXBjX2RzdGFwaWMpCisJCWZvciAoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspIHsKKwkJCWlmIChtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCA9PSBtcF9pcnFzW2ldLm1wX2RzdGFwaWMpCiAJCQkJcmV0dXJuIGFwaWM7CiAJCX0KIAl9CkBAIC04NjQsMjggKzg3MiwyOCBAQAogCiAJYXBpY19wcmludGsoQVBJQ19ERUJVRywgInF1ZXJ5aW5nIFBDSSAtPiBJUlEgbWFwcGluZyBidXM6JWQsICIKIAkJInNsb3Q6JWQsIHBpbjolZC5cbiIsIGJ1cywgc2xvdCwgcGluKTsKLQlpZiAobXBfYnVzX2lkX3RvX3BjaV9idXNbYnVzXSA9PSAtMSkgeworCWlmICh0ZXN0X2JpdChidXMsIG1wX2J1c19ub3RfcGNpKSkgewogCQlwcmludGsoS0VSTl9XQVJOSU5HICJQQ0kgQklPUyBwYXNzZWQgbm9uZXhpc3RlbnQgUENJIGJ1cyAlZCFcbiIsIGJ1cyk7CiAJCXJldHVybiAtMTsKIAl9CiAJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKLQkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wY19zcmNidXM7CisJCWludCBsYnVzID0gbXBfaXJxc1tpXS5tcF9zcmNidXM7CiAKIAkJZm9yIChhcGljID0gMDsgYXBpYyA8IG5yX2lvYXBpY3M7IGFwaWMrKykKLQkJCWlmIChtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQgPT0gbXBfaXJxc1tpXS5tcGNfZHN0YXBpYyB8fAotCQkJICAgIG1wX2lycXNbaV0ubXBjX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpCisJCQlpZiAobXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQgPT0gbXBfaXJxc1tpXS5tcF9kc3RhcGljIHx8CisJCQkgICAgbXBfaXJxc1tpXS5tcF9kc3RhcGljID09IE1QX0FQSUNfQUxMKQogCQkJCWJyZWFrOwogCiAJCWlmICghdGVzdF9iaXQobGJ1cywgbXBfYnVzX25vdF9wY2kpICYmCi0JCSAgICAhbXBfaXJxc1tpXS5tcGNfaXJxdHlwZSAmJgorCQkgICAgIW1wX2lycXNbaV0ubXBfaXJxdHlwZSAmJgogCQkgICAgKGJ1cyA9PSBsYnVzKSAmJgotCQkgICAgKHNsb3QgPT0gKChtcF9pcnFzW2ldLm1wY19zcmNidXNpcnEgPj4gMikgJiAweDFmKSkpIHsKLQkJCWludCBpcnEgPSBwaW5fMl9pcnEoaSxhcGljLG1wX2lycXNbaV0ubXBjX2RzdGlycSk7CisJCSAgICAoc2xvdCA9PSAoKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxID4+IDIpICYgMHgxZikpKSB7CisJCQlpbnQgaXJxID0gcGluXzJfaXJxKGksIGFwaWMsIG1wX2lycXNbaV0ubXBfZHN0aXJxKTsKIAogCQkJaWYgKCEoYXBpYyB8fCBJT19BUElDX0lSUShpcnEpKSkKIAkJCQljb250aW51ZTsKIAotCQkJaWYgKHBpbiA9PSAobXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxICYgMykpCisJCQlpZiAocGluID09IChtcF9pcnFzW2ldLm1wX3NyY2J1c2lycSAmIDMpKQogCQkJCXJldHVybiBpcnE7CiAJCQkvKgogCQkJICogVXNlIHRoZSBmaXJzdCBhbGwtYnV0LXBpbiBtYXRjaGluZyBlbnRyeSBhcyBhCkBAIC05MDAsNyArOTA4LDcgQEAKIEVYUE9SVF9TWU1CT0woSU9fQVBJQ19nZXRfUENJX2lycV92ZWN0b3IpOwogCiAvKgotICogVGhpcyBmdW5jdGlvbiBjdXJyZW50bHkgaXMgb25seSBhIGhlbHBlciBmb3IgdGhlIGkzODYgc21wIGJvb3QgcHJvY2VzcyB3aGVyZSAKKyAqIFRoaXMgZnVuY3Rpb24gY3VycmVudGx5IGlzIG9ubHkgYSBoZWxwZXIgZm9yIHRoZSBpMzg2IHNtcCBib290IHByb2Nlc3Mgd2hlcmUKICAqIHdlIG5lZWQgdG8gcmVwcm9ncmFtIHRoZSBpb3JlZHRibHMgdG8gY2F0ZXIgZm9yIHRoZSBjcHVzIHdoaWNoIGhhdmUgY29tZSBvbmxpbmUKICAqIHNvIG1hc2sgaW4gYWxsIGNhc2VzIHNob3VsZCBzaW1wbHkgYmUgVEFSR0VUX0NQVVMKICAqLwpAQCAtOTUyLDcgKzk2MCw3IEBACiAgKiBFSVNBIGNvbmZvcm1pbmcgaW4gdGhlIE1QIHRhYmxlLCB0aGF0IG1lYW5zIGl0cyB0cmlnZ2VyIHR5cGUgbXVzdAogICogYmUgcmVhZCBpbiBmcm9tIHRoZSBFTENSICovCiAKLSNkZWZpbmUgZGVmYXVsdF9FSVNBX3RyaWdnZXIoaWR4KQkoRUlTQV9FTENSKG1wX2lycXNbaWR4XS5tcGNfc3JjYnVzaXJxKSkKKyNkZWZpbmUgZGVmYXVsdF9FSVNBX3RyaWdnZXIoaWR4KQkoRUlTQV9FTENSKG1wX2lycXNbaWR4XS5tcF9zcmNidXNpcnEpKQogI2RlZmluZSBkZWZhdWx0X0VJU0FfcG9sYXJpdHkoaWR4KQlkZWZhdWx0X0lTQV9wb2xhcml0eShpZHgpCiAKIC8qIFBDSSBpbnRlcnJ1cHRzIGFyZSBhbHdheXMgcG9sYXJpdHkgb25lIGxldmVsIHRyaWdnZXJlZCwKQEAgLTk2OSwxMTcgKzk3NywxMTQgQEAKIAogc3RhdGljIGludCBNUEJJT1NfcG9sYXJpdHkoaW50IGlkeCkKIHsKLQlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wY19zcmNidXM7CisJaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcF9zcmNidXM7CiAJaW50IHBvbGFyaXR5OwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgSVJRIGxpbmUgcG9sYXJpdHkgKGhpZ2ggYWN0aXZlIG9yIGxvdyBhY3RpdmUpOgogCSAqLwotCXN3aXRjaCAobXBfaXJxc1tpZHhdLm1wY19pcnFmbGFnICYgMykKKwlzd2l0Y2ggKG1wX2lycXNbaWR4XS5tcF9pcnFmbGFnICYgMykgeworCWNhc2UgMDogLyogY29uZm9ybXMsIGllLiBidXMtdHlwZSBkZXBlbmRlbnQgcG9sYXJpdHkgKi8KIAl7Ci0JCWNhc2UgMDogLyogY29uZm9ybXMsIGllLiBidXMtdHlwZSBkZXBlbmRlbnQgcG9sYXJpdHkgKi8KLQkJewotCQkJcG9sYXJpdHkgPSB0ZXN0X2JpdChidXMsIG1wX2J1c19ub3RfcGNpKT8KLQkJCQlkZWZhdWx0X0lTQV9wb2xhcml0eShpZHgpOgotCQkJCWRlZmF1bHRfUENJX3BvbGFyaXR5KGlkeCk7Ci0JCQlicmVhazsKLQkJfQotCQljYXNlIDE6IC8qIGhpZ2ggYWN0aXZlICovCi0JCXsKLQkJCXBvbGFyaXR5ID0gMDsKLQkJCWJyZWFrOwotCQl9Ci0JCWNhc2UgMjogLyogcmVzZXJ2ZWQgKi8KLQkJewotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7Ci0JCQlwb2xhcml0eSA9IDE7Ci0JCQlicmVhazsKLQkJfQotCQljYXNlIDM6IC8qIGxvdyBhY3RpdmUgKi8KLQkJewotCQkJcG9sYXJpdHkgPSAxOwotCQkJYnJlYWs7Ci0JCX0KLQkJZGVmYXVsdDogLyogaW52YWxpZCAqLwotCQl7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJicm9rZW4gQklPUyEhXG4iKTsKLQkJCXBvbGFyaXR5ID0gMTsKLQkJCWJyZWFrOwotCQl9CisJCXBvbGFyaXR5ID0gdGVzdF9iaXQoYnVzLCBtcF9idXNfbm90X3BjaSk/CisJCQlkZWZhdWx0X0lTQV9wb2xhcml0eShpZHgpOgorCQkJZGVmYXVsdF9QQ0lfcG9sYXJpdHkoaWR4KTsKKwkJYnJlYWs7CisJfQorCWNhc2UgMTogLyogaGlnaCBhY3RpdmUgKi8KKwl7CisJCXBvbGFyaXR5ID0gMDsKKwkJYnJlYWs7CisJfQorCWNhc2UgMjogLyogcmVzZXJ2ZWQgKi8KKwl7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOworCQlwb2xhcml0eSA9IDE7CisJCWJyZWFrOworCX0KKwljYXNlIDM6IC8qIGxvdyBhY3RpdmUgKi8KKwl7CisJCXBvbGFyaXR5ID0gMTsKKwkJYnJlYWs7CisJfQorCWRlZmF1bHQ6IC8qIGludmFsaWQgKi8KKwl7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOworCQlwb2xhcml0eSA9IDE7CisJCWJyZWFrOworCX0KIAl9CiAJcmV0dXJuIHBvbGFyaXR5OwogfQogCiBzdGF0aWMgaW50IE1QQklPU190cmlnZ2VyKGludCBpZHgpCiB7Ci0JaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcGNfc3JjYnVzOworCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBfc3JjYnVzOwogCWludCB0cmlnZ2VyOwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgSVJRIHRyaWdnZXIgbW9kZSAoZWRnZSBvciBsZXZlbCBzZW5zaXRpdmUpOgogCSAqLwotCXN3aXRjaCAoKG1wX2lycXNbaWR4XS5tcGNfaXJxZmxhZz4+MikgJiAzKQorCXN3aXRjaCAoKG1wX2lycXNbaWR4XS5tcF9pcnFmbGFnPj4yKSAmIDMpIHsKKwljYXNlIDA6IC8qIGNvbmZvcm1zLCBpZS4gYnVzLXR5cGUgZGVwZW5kZW50ICovCiAJewotCQljYXNlIDA6IC8qIGNvbmZvcm1zLCBpZS4gYnVzLXR5cGUgZGVwZW5kZW50ICovCi0JCXsKLQkJCXRyaWdnZXIgPSB0ZXN0X2JpdChidXMsIG1wX2J1c19ub3RfcGNpKT8KLQkJCQkJZGVmYXVsdF9JU0FfdHJpZ2dlcihpZHgpOgotCQkJCQlkZWZhdWx0X1BDSV90cmlnZ2VyKGlkeCk7CisJCXRyaWdnZXIgPSB0ZXN0X2JpdChidXMsIG1wX2J1c19ub3RfcGNpKT8KKwkJCQlkZWZhdWx0X0lTQV90cmlnZ2VyKGlkeCk6CisJCQkJZGVmYXVsdF9QQ0lfdHJpZ2dlcihpZHgpOwogI2lmIGRlZmluZWQoQ09ORklHX0VJU0EpIHx8IGRlZmluZWQoQ09ORklHX01DQSkKLQkJCXN3aXRjaCAobXBfYnVzX2lkX3RvX3R5cGVbYnVzXSkKLQkJCXsKLQkJCQljYXNlIE1QX0JVU19JU0E6IC8qIElTQSBwaW4gKi8KLQkJCQl7Ci0JCQkJCS8qIHNldCBiZWZvcmUgdGhlIHN3aXRjaCAqLwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJY2FzZSBNUF9CVVNfRUlTQTogLyogRUlTQSBwaW4gKi8KLQkJCQl7Ci0JCQkJCXRyaWdnZXIgPSBkZWZhdWx0X0VJU0FfdHJpZ2dlcihpZHgpOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJY2FzZSBNUF9CVVNfUENJOiAvKiBQQ0kgcGluICovCi0JCQkJewotCQkJCQkvKiBzZXQgYmVmb3JlIHRoZSBzd2l0Y2ggKi8KLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJCWNhc2UgTVBfQlVTX01DQTogLyogTUNBIHBpbiAqLwotCQkJCXsKLQkJCQkJdHJpZ2dlciA9IGRlZmF1bHRfTUNBX3RyaWdnZXIoaWR4KTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJCWRlZmF1bHQ6Ci0JCQkJewotCQkJCQlwcmludGsoS0VSTl9XQVJOSU5HICJicm9rZW4gQklPUyEhXG4iKTsKLQkJCQkJdHJpZ2dlciA9IDE7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KKwkJc3dpdGNoIChtcF9idXNfaWRfdG9fdHlwZVtidXNdKSB7CisJCWNhc2UgTVBfQlVTX0lTQTogLyogSVNBIHBpbiAqLworCQl7CisJCQkvKiBzZXQgYmVmb3JlIHRoZSBzd2l0Y2ggKi8KKwkJCWJyZWFrOworCQl9CisJCWNhc2UgTVBfQlVTX0VJU0E6IC8qIEVJU0EgcGluICovCisJCXsKKwkJCXRyaWdnZXIgPSBkZWZhdWx0X0VJU0FfdHJpZ2dlcihpZHgpOworCQkJYnJlYWs7CisJCX0KKwkJY2FzZSBNUF9CVVNfUENJOiAvKiBQQ0kgcGluICovCisJCXsKKwkJCS8qIHNldCBiZWZvcmUgdGhlIHN3aXRjaCAqLworCQkJYnJlYWs7CisJCX0KKwkJY2FzZSBNUF9CVVNfTUNBOiAvKiBNQ0EgcGluICovCisJCXsKKwkJCXRyaWdnZXIgPSBkZWZhdWx0X01DQV90cmlnZ2VyKGlkeCk7CisJCQlicmVhazsKKwkJfQorCQlkZWZhdWx0OgorCQl7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJicm9rZW4gQklPUyEhXG4iKTsKKwkJCXRyaWdnZXIgPSAxOworCQkJYnJlYWs7CisJCX0KKwl9CiAjZW5kaWYKLQkJCWJyZWFrOwotCQl9Ci0JCWNhc2UgMTogLyogZWRnZSAqLwotCQl7Ci0JCQl0cmlnZ2VyID0gMDsKLQkJCWJyZWFrOwotCQl9Ci0JCWNhc2UgMjogLyogcmVzZXJ2ZWQgKi8KLQkJewotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7Ci0JCQl0cmlnZ2VyID0gMTsKLQkJCWJyZWFrOwotCQl9Ci0JCWNhc2UgMzogLyogbGV2ZWwgKi8KLQkJewotCQkJdHJpZ2dlciA9IDE7Ci0JCQlicmVhazsKLQkJfQotCQlkZWZhdWx0OiAvKiBpbnZhbGlkICovCi0JCXsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOwotCQkJdHJpZ2dlciA9IDA7Ci0JCQlicmVhazsKLQkJfQorCQlicmVhazsKKwl9CisJY2FzZSAxOiAvKiBlZGdlICovCisJeworCQl0cmlnZ2VyID0gMDsKKwkJYnJlYWs7CisJfQorCWNhc2UgMjogLyogcmVzZXJ2ZWQgKi8KKwl7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOworCQl0cmlnZ2VyID0gMTsKKwkJYnJlYWs7CisJfQorCWNhc2UgMzogLyogbGV2ZWwgKi8KKwl7CisJCXRyaWdnZXIgPSAxOworCQlicmVhazsKKwl9CisJZGVmYXVsdDogLyogaW52YWxpZCAqLworCXsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7CisJCXRyaWdnZXIgPSAwOworCQlicmVhazsKKwl9CiAJfQogCXJldHVybiB0cmlnZ2VyOwogfQpAQCAtMTA5NywxNiArMTEwMiwxNiBAQAogc3RhdGljIGludCBwaW5fMl9pcnEoaW50IGlkeCwgaW50IGFwaWMsIGludCBwaW4pCiB7CiAJaW50IGlycSwgaTsKLQlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wY19zcmNidXM7CisJaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcF9zcmNidXM7CiAKIAkvKgogCSAqIERlYnVnZ2luZyBjaGVjaywgd2UgYXJlIGluIGJpZyB0cm91YmxlIGlmIHRoaXMgbWVzc2FnZSBwb3BzIHVwIQogCSAqLwotCWlmIChtcF9pcnFzW2lkeF0ubXBjX2RzdGlycSAhPSBwaW4pCisJaWYgKG1wX2lycXNbaWR4XS5tcF9kc3RpcnEgIT0gcGluKQogCQlwcmludGsoS0VSTl9FUlIgImJyb2tlbiBCSU9TIG9yIE1QVEFCTEUgcGFyc2VyLCBheWllZSEhXG4iKTsKIAogCWlmICh0ZXN0X2JpdChidXMsIG1wX2J1c19ub3RfcGNpKSkKLQkJaXJxID0gbXBfaXJxc1tpZHhdLm1wY19zcmNidXNpcnE7CisJCWlycSA9IG1wX2lycXNbaWR4XS5tcF9zcmNidXNpcnE7CiAJZWxzZSB7CiAJCS8qCiAJCSAqIFBDSSBJUlFzIGFyZSBtYXBwZWQgaW4gb3JkZXIKQEAgLTExNDgsOCArMTE1Myw4IEBACiAKIAlmb3IgKGFwaWMgPSAwOyBhcGljIDwgbnJfaW9hcGljczsgYXBpYysrKSB7CiAJCWZvciAocGluID0gMDsgcGluIDwgbnJfaW9hcGljX3JlZ2lzdGVyc1thcGljXTsgcGluKyspIHsKLQkJCWlkeCA9IGZpbmRfaXJxX2VudHJ5KGFwaWMscGluLG1wX0lOVCk7Ci0JCQlpZiAoKGlkeCAhPSAtMSkgJiYgKGlycSA9PSBwaW5fMl9pcnEoaWR4LGFwaWMscGluKSkpCisJCQlpZHggPSBmaW5kX2lycV9lbnRyeShhcGljLCBwaW4sIG1wX0lOVCk7CisJCQlpZiAoKGlkeCAhPSAtMSkgJiYgKGlycSA9PSBwaW5fMl9pcnEoaWR4LCBhcGljLCBwaW4pKSkKIAkJCQlyZXR1cm4gaXJxX3RyaWdnZXIoaWR4KTsKIAkJfQogCX0KQEAgLTExNjQsNyArMTE2OSw3IEBACiAKIHN0YXRpYyBpbnQgX19hc3NpZ25faXJxX3ZlY3RvcihpbnQgaXJxKQogewotCXN0YXRpYyBpbnQgY3VycmVudF92ZWN0b3IgPSBGSVJTVF9ERVZJQ0VfVkVDVE9SLCBjdXJyZW50X29mZnNldCA9IDA7CisJc3RhdGljIGludCBjdXJyZW50X3ZlY3RvciA9IEZJUlNUX0RFVklDRV9WRUNUT1IsIGN1cnJlbnRfb2Zmc2V0OwogCWludCB2ZWN0b3IsIG9mZnNldDsKIAogCUJVR19PTigodW5zaWduZWQpaXJxID49IE5SX0lSUV9WRUNUT1JTKTsKQEAgLTExNzYsNyArMTE4MSw3IEBACiAJb2Zmc2V0ID0gY3VycmVudF9vZmZzZXQ7CiBuZXh0OgogCXZlY3RvciArPSA4OwotCWlmICh2ZWN0b3IgPj0gRklSU1RfU1lTVEVNX1ZFQ1RPUikgeworCWlmICh2ZWN0b3IgPj0gZmlyc3Rfc3lzdGVtX3ZlY3RvcikgewogCQlvZmZzZXQgPSAob2Zmc2V0ICsgMSkgJSA4OwogCQl2ZWN0b3IgPSBGSVJTVF9ERVZJQ0VfVkVDVE9SICsgb2Zmc2V0OwogCX0KQEAgLTEyMDMsNiArMTIwOCwxMSBAQAogCiAJcmV0dXJuIHZlY3RvcjsKIH0KKwordm9pZCBzZXR1cF92ZWN0b3JfaXJxKGludCBjcHUpCit7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgaW9hcGljX2NoaXA7CiAKICNkZWZpbmUgSU9BUElDX0FVVE8JLTEKQEAgLTEyMzcsMjUgKzEyNDcsMjUgQEAKIAkJLyoKIAkJICogYWRkIGl0IHRvIHRoZSBJTy1BUElDIGlycS1yb3V0aW5nIHRhYmxlOgogCQkgKi8KLQkJbWVtc2V0KCZlbnRyeSwwLHNpemVvZihlbnRyeSkpOworCQltZW1zZXQoJmVudHJ5LCAwLCBzaXplb2YoZW50cnkpKTsKIAogCQllbnRyeS5kZWxpdmVyeV9tb2RlID0gSU5UX0RFTElWRVJZX01PREU7CiAJCWVudHJ5LmRlc3RfbW9kZSA9IElOVF9ERVNUX01PREU7CiAJCWVudHJ5Lm1hc2sgPSAwOwkJCQkvKiBlbmFibGUgSVJRICovCi0JCWVudHJ5LmRlc3QubG9naWNhbC5sb2dpY2FsX2Rlc3QgPSAKKwkJZW50cnkuZGVzdC5sb2dpY2FsLmxvZ2ljYWxfZGVzdCA9CiAJCQkJCWNwdV9tYXNrX3RvX2FwaWNpZChUQVJHRVRfQ1BVUyk7CiAKLQkJaWR4ID0gZmluZF9pcnFfZW50cnkoYXBpYyxwaW4sbXBfSU5UKTsKKwkJaWR4ID0gZmluZF9pcnFfZW50cnkoYXBpYywgcGluLCBtcF9JTlQpOwogCQlpZiAoaWR4ID09IC0xKSB7CiAJCQlpZiAoZmlyc3Rfbm90Y29uKSB7CiAJCQkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCBLRVJOX0RFQlVHCiAJCQkJCQkiIElPLUFQSUMgKGFwaWNpZC1waW4pICVkLSVkIiwKLQkJCQkJCW1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCwKKwkJCQkJCW1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkLAogCQkJCQkJcGluKTsKIAkJCQlmaXJzdF9ub3Rjb24gPSAwOwogCQkJfSBlbHNlCiAJCQkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCAiLCAlZC0lZCIsCi0JCQkJCW1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCwgcGluKTsKKwkJCQkJbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQsIHBpbik7CiAJCQljb250aW51ZTsKIAkJfQogCkBAIC0xMjg5LDcgKzEyOTksNyBAQAogCQkJdmVjdG9yID0gYXNzaWduX2lycV92ZWN0b3IoaXJxKTsKIAkJCWVudHJ5LnZlY3RvciA9IHZlY3RvcjsKIAkJCWlvYXBpY19yZWdpc3Rlcl9pbnRyKGlycSwgdmVjdG9yLCBJT0FQSUNfQVVUTyk7Ci0JCQorCiAJCQlpZiAoIWFwaWMgJiYgKGlycSA8IDE2KSkKIAkJCQlkaXNhYmxlXzgyNTlBX2lycShpcnEpOwogCQl9CkBAIC0xMzAyLDI1ICsxMzEyLDIxIEBACiB9CiAKIC8qCi0gKiBTZXQgdXAgdGhlIDgyNTlBLW1hc3RlciBvdXRwdXQgcGluOgorICogU2V0IHVwIHRoZSB0aW1lciBwaW4sIHBvc3NpYmx5IHdpdGggdGhlIDgyNTlBLW1hc3RlciBiZWhpbmQuCiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9FeHRJTlRfSVJRMF9waW4odW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCBwaW4sIGludCB2ZWN0b3IpCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfdGltZXJfSVJRMF9waW4odW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCBwaW4sCisJCQkJCWludCB2ZWN0b3IpCiB7CiAJc3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkgZW50cnk7CiAKLQltZW1zZXQoJmVudHJ5LDAsc2l6ZW9mKGVudHJ5KSk7Ci0KLQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKLQotCS8qIG1hc2sgTFZUMCAqLwotCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19MVlRfTUFTS0VEIHwgQVBJQ19ETV9FWFRJTlQpOworCW1lbXNldCgmZW50cnksIDAsIHNpemVvZihlbnRyeSkpOwogCiAJLyoKIAkgKiBXZSB1c2UgbG9naWNhbCBkZWxpdmVyeSB0byBnZXQgdGhlIHRpbWVyIElSUQogCSAqIHRvIHRoZSBmaXJzdCBDUFUuCiAJICovCiAJZW50cnkuZGVzdF9tb2RlID0gSU5UX0RFU1RfTU9ERTsKLQllbnRyeS5tYXNrID0gMDsJCQkJCS8qIHVubWFzayBJUlEgbm93ICovCisJZW50cnkubWFzayA9IDE7CQkJCQkvKiBtYXNrIElSUSBub3cgKi8KIAllbnRyeS5kZXN0LmxvZ2ljYWwubG9naWNhbF9kZXN0ID0gY3B1X21hc2tfdG9fYXBpY2lkKFRBUkdFVF9DUFVTKTsKIAllbnRyeS5kZWxpdmVyeV9tb2RlID0gSU5UX0RFTElWRVJZX01PREU7CiAJZW50cnkucG9sYXJpdHkgPSAwOwpAQCAtMTMyOSwxNyArMTMzNSwxNCBAQAogCiAJLyoKIAkgKiBUaGUgdGltZXIgSVJRIGRvZXNuJ3QgaGF2ZSB0byBrbm93IHRoYXQgYmVoaW5kIHRoZQotCSAqIHNjZW5lIHdlIGhhdmUgYSA4MjU5QS1tYXN0ZXIgaW4gQUVPSSBtb2RlIC4uLgorCSAqIHNjZW5lIHdlIG1heSBoYXZlIGEgODI1OUEtbWFzdGVyIGluIEFFT0kgbW9kZSAuLi4KIAkgKi8KLQlpcnFfZGVzY1swXS5jaGlwID0gJmlvYXBpY19jaGlwOwotCXNldF9pcnFfaGFuZGxlcigwLCBoYW5kbGVfZWRnZV9pcnEpOworCWlvYXBpY19yZWdpc3Rlcl9pbnRyKDAsIHZlY3RvciwgSU9BUElDX0VER0UpOwogCiAJLyoKIAkgKiBBZGQgaXQgdG8gdGhlIElPLUFQSUMgaXJxLXJvdXRpbmcgdGFibGU6CiAJICovCiAJaW9hcGljX3dyaXRlX2VudHJ5KGFwaWMsIHBpbiwgZW50cnkpOwotCi0JZW5hYmxlXzgyNTlBX2lycSgwKTsKIH0KIAogdm9pZCBfX2luaXQgcHJpbnRfSU9fQVBJQyh2b2lkKQpAQCAtMTM1NCwxMCArMTM1NywxMCBAQAogCWlmIChhcGljX3ZlcmJvc2l0eSA9PSBBUElDX1FVSUVUKQogCQlyZXR1cm47CiAKLSAJcHJpbnRrKEtFUk5fREVCVUcgIm51bWJlciBvZiBNUCBJUlEgc291cmNlczogJWQuXG4iLCBtcF9pcnFfZW50cmllcyk7CisJcHJpbnRrKEtFUk5fREVCVUcgIm51bWJlciBvZiBNUCBJUlEgc291cmNlczogJWQuXG4iLCBtcF9pcnFfZW50cmllcyk7CiAJZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkrKykKIAkJcHJpbnRrKEtFUk5fREVCVUcgIm51bWJlciBvZiBJTy1BUElDICMlZCByZWdpc3RlcnM6ICVkLlxuIiwKLQkJICAgICAgIG1wX2lvYXBpY3NbaV0ubXBjX2FwaWNpZCwgbnJfaW9hcGljX3JlZ2lzdGVyc1tpXSk7CisJCSAgICAgICBtcF9pb2FwaWNzW2ldLm1wX2FwaWNpZCwgbnJfaW9hcGljX3JlZ2lzdGVyc1tpXSk7CiAKIAkvKgogCSAqIFdlIGFyZSBhIGJpdCBjb25zZXJ2YXRpdmUgYWJvdXQgd2hhdCB3ZSBleHBlY3QuICBXZSBoYXZlIHRvCkBAIC0xMzc2LDcgKzEzNzksNyBAQAogCQlyZWdfMDMucmF3ID0gaW9fYXBpY19yZWFkKGFwaWMsIDMpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAKLQlwcmludGsoS0VSTl9ERUJVRyAiSU8gQVBJQyAjJWQuLi4uLi5cbiIsIG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJcHJpbnRrKEtFUk5fREVCVUcgIklPIEFQSUMgIyVkLi4uLi4uXG4iLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIi4uLi4gcmVnaXN0ZXIgIzAwOiAlMDhYXG4iLCByZWdfMDAucmF3KTsKIAlwcmludGsoS0VSTl9ERUJVRyAiLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6ICUwMlhcbiIsIHJlZ18wMC5iaXRzLklEKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiLi4uLi4uLiAgICA6IERlbGl2ZXJ5IFR5cGU6ICVYXG4iLCByZWdfMDAuYml0cy5kZWxpdmVyeV90eXBlKTsKQEAgLTE0NTksNyArMTQ2Miw3IEBACiAKICNpZiAwCiAKLXN0YXRpYyB2b2lkIHByaW50X0FQSUNfYml0ZmllbGQgKGludCBiYXNlKQorc3RhdGljIHZvaWQgcHJpbnRfQVBJQ19iaXRmaWVsZChpbnQgYmFzZSkKIHsKIAl1bnNpZ25lZCBpbnQgdjsKIAlpbnQgaSwgajsKQEAgLTE0ODAsNyArMTQ4Myw3IEBACiAJfQogfQogCi12b2lkIC8qX19pbml0Ki8gcHJpbnRfbG9jYWxfQVBJQyh2b2lkICogZHVtbXkpCit2b2lkIC8qX19pbml0Ki8gcHJpbnRfbG9jYWxfQVBJQyh2b2lkICpkdW1teSkKIHsKIAl1bnNpZ25lZCBpbnQgdiwgdmVyLCBtYXhsdnQ7CiAKQEAgLTE0ODksNiArMTQ5Miw3IEBACiAKIAlwcmludGsoIlxuIiBLRVJOX0RFQlVHICJwcmludGluZyBsb2NhbCBBUElDIGNvbnRlbnRzIG9uIENQVSMlZC8lZDpcbiIsCiAJCXNtcF9wcm9jZXNzb3JfaWQoKSwgaGFyZF9zbXBfcHJvY2Vzc29yX2lkKCkpOworCXYgPSBhcGljX3JlYWQoQVBJQ19JRCk7CiAJcHJpbnRrKEtFUk5fSU5GTyAiLi4uIEFQSUMgSUQ6ICAgICAgJTA4eCAoJTAxeClcbiIsIHYsCiAJCQlHRVRfQVBJQ19JRChyZWFkX2FwaWNfaWQoKSkpOwogCXYgPSBhcGljX3JlYWQoQVBJQ19MVlIpOwpAQCAtMTU2Myw3ICsxNTY3LDcgQEAKIAlwcmludGsoIlxuIik7CiB9CiAKLXZvaWQgcHJpbnRfYWxsX2xvY2FsX0FQSUNzICh2b2lkKQordm9pZCBwcmludF9hbGxfbG9jYWxfQVBJQ3Modm9pZCkKIHsKIAlvbl9lYWNoX2NwdShwcmludF9sb2NhbF9BUElDLCBOVUxMLCAxKTsKIH0KQEAgLTE1ODYsMTEgKzE1OTAsMTEgQEAKIAl2ID0gaW5iKDB4YTApIDw8IDggfCBpbmIoMHgyMCk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIi4uLiBQSUMgIElSUjogJTA0eFxuIiwgdik7CiAKLQlvdXRiKDB4MGIsMHhhMCk7Ci0Jb3V0YigweDBiLDB4MjApOworCW91dGIoMHgwYiwgMHhhMCk7CisJb3V0YigweDBiLCAweDIwKTsKIAl2ID0gaW5iKDB4YTApIDw8IDggfCBpbmIoMHgyMCk7Ci0Jb3V0YigweDBhLDB4YTApOwotCW91dGIoMHgwYSwweDIwKTsKKwlvdXRiKDB4MGEsIDB4YTApOworCW91dGIoMHgwYSwgMHgyMCk7CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwogCkBAIC0xNjI2LDcgKzE2MzAsNyBAQAogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwogCQlucl9pb2FwaWNfcmVnaXN0ZXJzW2FwaWNdID0gcmVnXzAxLmJpdHMuZW50cmllcysxOwogCX0KLQlmb3IoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspIHsKKwlmb3IgKGFwaWMgPSAwOyBhcGljIDwgbnJfaW9hcGljczsgYXBpYysrKSB7CiAJCWludCBwaW47CiAJCS8qIFNlZSBpZiBhbnkgb2YgdGhlIHBpbnMgaXMgaW4gRXh0SU5UIG1vZGUgKi8KIAkJZm9yIChwaW4gPSAwOyBwaW4gPCBucl9pb2FwaWNfcmVnaXN0ZXJzW2FwaWNdOyBwaW4rKykgewpAQCAtMTcxNiw3ICsxNzIwLDYgQEAKICAqIGJ5IE1hdHQgRG9tc2NoIDxNYXR0X0RvbXNjaEBkZWxsLmNvbT4gIFR1ZSBEZWMgMjEgMTI6MjU6MDUgQ1NUIDE5OTkKICAqLwogCi0jaWZuZGVmIENPTkZJR19YODZfTlVNQVEKIHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9pb2FwaWNfaWRzX2Zyb21fbXBjKHZvaWQpCiB7CiAJdW5pb24gSU9fQVBJQ19yZWdfMDAgcmVnXzAwOwpAQCAtMTcyNiw2ICsxNzI5LDExIEBACiAJdW5zaWduZWQgY2hhciBvbGRfaWQ7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAorI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwlpZiAoZm91bmRfbnVtYXEpCisJCXJldHVybjsKKyNlbmRpZgorCiAJLyoKIAkgKiBEb24ndCBjaGVjayBJL08gQVBJQyBJRHMgZm9yIHhBUElDIHN5c3RlbXMuICBUaGV5IGhhdmUKIAkgKiBubyBtZWFuaW5nIHdpdGhvdXQgdGhlIHNlcmlhbCBBUElDIGJ1cy4KQEAgLTE3NDgsMTUgKzE3NTYsMTUgQEAKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAJCXJlZ18wMC5yYXcgPSBpb19hcGljX3JlYWQoYXBpYywgMCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7Ci0JCQotCQlvbGRfaWQgPSBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQ7CiAKLQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCA+PSBnZXRfcGh5c2ljYWxfYnJvYWRjYXN0KCkpIHsKKwkJb2xkX2lkID0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQ7CisKKwkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkID49IGdldF9waHlzaWNhbF9icm9hZGNhc3QoKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJCSU9TIGJ1ZywgSU8tQVBJQyMlZCBJRCBpcyAlZCBpbiB0aGUgTVBDIHRhYmxlIS4uLlxuIiwKLQkJCQlhcGljLCBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQpOworCQkJCWFwaWMsIG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkKTsKIAkJCXByaW50ayhLRVJOX0VSUiAiLi4uIGZpeGluZyB1cCB0byAlZC4gKHRlbGwgeW91ciBodyB2ZW5kb3IpXG4iLAogCQkJCXJlZ18wMC5iaXRzLklEKTsKLQkJCW1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCA9IHJlZ18wMC5iaXRzLklEOworCQkJbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQgPSByZWdfMDAuYml0cy5JRDsKIAkJfQogCiAJCS8qCkBAIC0xNzY1LDkgKzE3NzMsOSBAQAogCQkgKiAnc3R1Y2sgb24gc21wX2ludmFsaWRhdGVfbmVlZGVkIElQSSB3YWl0JyBtZXNzYWdlcy4KIAkJICovCiAJCWlmIChjaGVja19hcGljaWRfdXNlZChwaHlzX2lkX3ByZXNlbnRfbWFwLAotCQkJCQltcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQpKSB7CisJCQkJCW1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJCSU9TIGJ1ZywgSU8tQVBJQyMlZCBJRCAlZCBpcyBhbHJlYWR5IHVzZWQhLi4uXG4iLAotCQkJCWFwaWMsIG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJCQkJYXBpYywgbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpOwogCQkJZm9yIChpID0gMDsgaSA8IGdldF9waHlzaWNhbF9icm9hZGNhc3QoKTsgaSsrKQogCQkJCWlmICghcGh5c2lkX2lzc2V0KGksIHBoeXNfaWRfcHJlc2VudF9tYXApKQogCQkJCQlicmVhazsKQEAgLTE3NzYsMTMgKzE3ODQsMTMgQEAKIAkJCXByaW50ayhLRVJOX0VSUiAiLi4uIGZpeGluZyB1cCB0byAlZC4gKHRlbGwgeW91ciBodyB2ZW5kb3IpXG4iLAogCQkJCWkpOwogCQkJcGh5c2lkX3NldChpLCBwaHlzX2lkX3ByZXNlbnRfbWFwKTsKLQkJCW1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCA9IGk7CisJCQltcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCA9IGk7CiAJCX0gZWxzZSB7CiAJCQlwaHlzaWRfbWFza190IHRtcDsKLQkJCXRtcCA9IGFwaWNpZF90b19jcHVfcHJlc2VudChtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQpOworCQkJdG1wID0gYXBpY2lkX3RvX2NwdV9wcmVzZW50KG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkKTsKIAkJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgIlNldHRpbmcgJWQgaW4gdGhlICIKIAkJCQkJInBoeXNfaWRfcHJlc2VudF9tYXBcbiIsCi0JCQkJCW1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJCQkJCW1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkKTsKIAkJCXBoeXNpZHNfb3IocGh5c19pZF9wcmVzZW50X21hcCwgcGh5c19pZF9wcmVzZW50X21hcCwgdG1wKTsKIAkJfQogCkBAIC0xNzkxLDIxICsxNzk5LDIxIEBACiAJCSAqIFdlIG5lZWQgdG8gYWRqdXN0IHRoZSBJUlEgcm91dGluZyB0YWJsZQogCQkgKiBpZiB0aGUgSUQgY2hhbmdlZC4KIAkJICovCi0JCWlmIChvbGRfaWQgIT0gbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkKQorCQlpZiAob2xkX2lkICE9IG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkKQogCQkJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspCi0JCQkJaWYgKG1wX2lycXNbaV0ubXBjX2RzdGFwaWMgPT0gb2xkX2lkKQotCQkJCQltcF9pcnFzW2ldLm1wY19kc3RhcGljCi0JCQkJCQk9IG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZDsKKwkJCQlpZiAobXBfaXJxc1tpXS5tcF9kc3RhcGljID09IG9sZF9pZCkKKwkJCQkJbXBfaXJxc1tpXS5tcF9kc3RhcGljCisJCQkJCQk9IG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkOwogCiAJCS8qCiAJCSAqIFJlYWQgdGhlIHJpZ2h0IHZhbHVlIGZyb20gdGhlIE1QQyB0YWJsZSBhbmQKIAkJICogd3JpdGUgaXQgaW50byB0aGUgSUQgcmVnaXN0ZXIuCi0JIAkgKi8KKwkJICovCiAJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgS0VSTl9JTkZPCiAJCQkiLi4uY2hhbmdpbmcgSU8tQVBJQyBwaHlzaWNhbCBBUElDIElEIHRvICVkIC4uLiIsCi0JCQltcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQpOworCQkJbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpOwogCi0JCXJlZ18wMC5iaXRzLklEID0gbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkOworCQlyZWdfMDAuYml0cy5JRCA9IG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkOwogCQlzcGluX2xvY2tfaXJxc2F2ZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAkJaW9fYXBpY193cml0ZShhcGljLCAwLCByZWdfMDAucmF3KTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKQEAgLTE4MTYsMTUgKzE4MjQsMTIgQEAKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAJCXJlZ18wMC5yYXcgPSBpb19hcGljX3JlYWQoYXBpYywgMCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7Ci0JCWlmIChyZWdfMDAuYml0cy5JRCAhPSBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQpCisJCWlmIChyZWdfMDAuYml0cy5JRCAhPSBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCkKIAkJCXByaW50aygiY291bGQgbm90IHNldCBJRCFcbiIpOwogCQllbHNlCiAJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsICIgb2suXG4iKTsKIAl9CiB9Ci0jZWxzZQotc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2lvYXBpY19pZHNfZnJvbV9tcGModm9pZCkgeyB9Ci0jZW5kaWYKIAogaW50IG5vX3RpbWVyX2NoZWNrIF9faW5pdGRhdGE7CiAKQEAgLTIwMTUsMTIgKzIwMjAsMTIgQEAKICAqIFRoZSBsb2NhbCBBUElDIGlycS1jaGlwIGltcGxlbWVudGF0aW9uOgogICovCiAKLXN0YXRpYyB2b2lkIGFja19hcGljKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBhY2tfbGFwaWNfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7CiAJYWNrX0FQSUNfaXJxKCk7CiB9CiAKLXN0YXRpYyB2b2lkIG1hc2tfbGFwaWNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQorc3RhdGljIHZvaWQgbWFza19sYXBpY19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKIAl1bnNpZ25lZCBsb25nIHY7CiAKQEAgLTIwMjgsNyArMjAzMyw3IEBACiAJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCB2IHwgQVBJQ19MVlRfTUFTS0VEKTsKIH0KIAotc3RhdGljIHZvaWQgdW5tYXNrX2xhcGljX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIHVubWFza19sYXBpY19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKIAl1bnNpZ25lZCBsb25nIHY7CiAKQEAgLTIwMzcsMjMgKzIwNDIsMzEgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBsYXBpY19jaGlwIF9fcmVhZF9tb3N0bHkgPSB7Ci0JLm5hbWUJCT0gImxvY2FsLUFQSUMtZWRnZSIsCisJLm5hbWUJCT0gImxvY2FsLUFQSUMiLAogCS5tYXNrCQk9IG1hc2tfbGFwaWNfaXJxLAogCS51bm1hc2sJCT0gdW5tYXNrX2xhcGljX2lycSwKLQkuZW9pCQk9IGFja19hcGljLAorCS5hY2sJCT0gYWNrX2xhcGljX2lycSwKIH07CiAKK3N0YXRpYyB2b2lkIGxhcGljX3JlZ2lzdGVyX2ludHIoaW50IGlycSwgaW50IHZlY3RvcikKK3sKKwlpcnFfZGVzY1tpcnFdLnN0YXR1cyAmPSB+SVJRX0xFVkVMOworCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGlycSwgJmxhcGljX2NoaXAsIGhhbmRsZV9lZGdlX2lycSwKKwkJCQkgICAgICAiZWRnZSIpOworCXNldF9pbnRyX2dhdGUodmVjdG9yLCBpbnRlcnJ1cHRbaXJxXSk7Cit9CisKIHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9ubWkodm9pZCkKIHsKIAkvKgotIAkgKiBEaXJ0eSB0cmljayB0byBlbmFibGUgdGhlIE5NSSB3YXRjaGRvZyAuLi4KKwkgKiBEaXJ0eSB0cmljayB0byBlbmFibGUgdGhlIE5NSSB3YXRjaGRvZyAuLi4KIAkgKiBXZSBwdXQgdGhlIDgyNTlBIG1hc3RlciBpbnRvIEFFT0kgbW9kZSBhbmQKIAkgKiB1bm1hc2sgb24gYWxsIGxvY2FsIEFQSUNzIExWVDAgYXMgTk1JLgogCSAqCiAJICogVGhlIGlkZWEgdG8gdXNlIHRoZSA4MjU5QSBpbiBBRU9JIG1vZGUgKCc4MjU5QSBWaXJ0dWFsIFdpcmUnKQogCSAqIGlzIGZyb20gTWFjaWVqIFcuIFJvenlja2kgLSBzbyB3ZSBkbyBub3QgaGF2ZSB0byBFT0kgZnJvbQogCSAqIHRoZSBOTUkgaGFuZGxlciBvciB0aGUgdGltZXIgaW50ZXJydXB0LgotCSAqLyAKKwkgKi8KIAlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIEtFUk5fSU5GTyAiYWN0aXZhdGluZyBOTUkgV2F0Y2hkb2cgLi4uIik7CiAKIAllbmFibGVfTk1JX3Rocm91Z2hfTFZUMCgpOwpAQCAtMjEyOSwxMSArMjE0MiwxNiBAQAogc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCBjaGVja190aW1lcih2b2lkKQogewogCWludCBhcGljMSwgcGluMSwgYXBpYzIsIHBpbjI7CisJaW50IG5vX3BpbjEgPSAwOwogCWludCB2ZWN0b3I7CisJdW5zaWduZWQgaW50IHZlcjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCisJdmVyID0gYXBpY19yZWFkKEFQSUNfTFZSKTsKKwl2ZXIgPSBHRVRfQVBJQ19WRVJTSU9OKHZlcik7CisKIAkvKgogCSAqIGdldC9zZXQgdGhlIHRpbWVyIElSUSB2ZWN0b3I6CiAJICovCkBAIC0yMTQyLDE3ICsyMTYwLDE3IEBACiAJc2V0X2ludHJfZ2F0ZSh2ZWN0b3IsIGludGVycnVwdFswXSk7CiAKIAkvKgotCSAqIFN1YnRsZSwgY29kZSBpbiBkb190aW1lcl9pbnRlcnJ1cHQoKSBleHBlY3RzIGFuIEFFT0kKLQkgKiBtb2RlIGZvciB0aGUgODI1OUEgd2hlbmV2ZXIgaW50ZXJydXB0cyBhcmUgcm91dGVkCi0JICogdGhyb3VnaCBJL08gQVBJQ3MuICBBbHNvIElSUTAgaGFzIHRvIGJlIGVuYWJsZWQgaW4KLQkgKiB0aGUgODI1OUEgd2hpY2ggaW1wbGllcyB0aGUgdmlydHVhbCB3aXJlIGhhcyB0byBiZQotCSAqIGRpc2FibGVkIGluIHRoZSBsb2NhbCBBUElDLgorCSAqIEFzIElSUTAgaXMgdG8gYmUgZW5hYmxlZCBpbiB0aGUgODI1OUEsIHRoZSB2aXJ0dWFsCisJICogd2lyZSBoYXMgdG8gYmUgZGlzYWJsZWQgaW4gdGhlIGxvY2FsIEFQSUMuICBBbHNvCisJICogdGltZXIgaW50ZXJydXB0cyBuZWVkIHRvIGJlIGFja25vd2xlZGdlZCBtYW51YWxseSBpbgorCSAqIHRoZSA4MjU5QSBmb3IgdGhlIGk4MjQ4OURYIHdoZW4gdXNpbmcgdGhlIE5NSQorCSAqIHdhdGNoZG9nIGFzIHRoYXQgQVBJQyB0cmVhdHMgTk1JcyBhcyBsZXZlbC10cmlnZ2VyZWQuCisJICogVGhlIEFFT0kgbW9kZSB3aWxsIGZpbmlzaCB0aGVtIGluIHRoZSA4MjU5QQorCSAqIGF1dG9tYXRpY2FsbHkuCiAJICovCiAJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RNX0VYVElOVCk7CiAJaW5pdF84MjU5QSgxKTsKLQl0aW1lcl9hY2sgPSAxOwotCWlmICh0aW1lcl9vdmVyXzgyNTQgPiAwKQotCQllbmFibGVfODI1OUFfaXJxKDApOworCXRpbWVyX2FjayA9IChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMgJiYgIUFQSUNfSU5URUdSQVRFRCh2ZXIpKTsKIAogCXBpbjEgID0gZmluZF9pc2FfaXJxX3BpbigwLCBtcF9JTlQpOwogCWFwaWMxID0gZmluZF9pc2FfaXJxX2FwaWMoMCwgbXBfSU5UKTsKQEAgLTIxNjIsMTQgKzIxODAsMzMgQEAKIAlwcmludGsoS0VSTl9JTkZPICIuLlRJTUVSOiB2ZWN0b3I9MHglMDJYIGFwaWMxPSVkIHBpbjE9JWQgYXBpYzI9JWQgcGluMj0lZFxuIiwKIAkJdmVjdG9yLCBhcGljMSwgcGluMSwgYXBpYzIsIHBpbjIpOwogCisJLyoKKwkgKiBTb21lIEJJT1Mgd3JpdGVycyBhcmUgY2x1ZWxlc3MgYW5kIHJlcG9ydCB0aGUgRXh0SU5UQQorCSAqIEkvTyBBUElDIGlucHV0IGZyb20gdGhlIGNhc2NhZGVkIDgyNTlBIGFzIHRoZSB0aW1lcgorCSAqIGludGVycnVwdCBpbnB1dC4gIFNvIGp1c3QgaW4gY2FzZSwgaWYgb25seSBvbmUgcGluCisJICogd2FzIGZvdW5kIGFib3ZlLCB0cnkgaXQgYm90aCBkaXJlY3RseSBhbmQgdGhyb3VnaCB0aGUKKwkgKiA4MjU5QS4KKwkgKi8KKwlpZiAocGluMSA9PSAtMSkgeworCQlwaW4xID0gcGluMjsKKwkJYXBpYzEgPSBhcGljMjsKKwkJbm9fcGluMSA9IDE7CisJfSBlbHNlIGlmIChwaW4yID09IC0xKSB7CisJCXBpbjIgPSBwaW4xOworCQlhcGljMiA9IGFwaWMxOworCX0KKwogCWlmIChwaW4xICE9IC0xKSB7CiAJCS8qCiAJCSAqIE9rLCBkb2VzIElSUTAgdGhyb3VnaCB0aGUgSU9BUElDIHdvcms/CiAJCSAqLworCQlpZiAobm9fcGluMSkgeworCQkJYWRkX3Bpbl90b19pcnEoMCwgYXBpYzEsIHBpbjEpOworCQkJc2V0dXBfdGltZXJfSVJRMF9waW4oYXBpYzEsIHBpbjEsIHZlY3Rvcik7CisJCX0KIAkJdW5tYXNrX0lPX0FQSUNfaXJxKDApOwogCQlpZiAodGltZXJfaXJxX3dvcmtzKCkpIHsKIAkJCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpIHsKLQkJCQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKIAkJCQlzZXR1cF9ubWkoKTsKIAkJCQllbmFibGVfODI1OUFfaXJxKDApOwogCQkJfQpAQCAtMjE3OCw0NSArMjIxNSw0NyBAQAogCQkJZ290byBvdXQ7CiAJCX0KIAkJY2xlYXJfSU9fQVBJQ19waW4oYXBpYzEsIHBpbjEpOwotCQlwcmludGsoS0VSTl9FUlIgIi4uTVAtQklPUyBidWc6IDgyNTQgdGltZXIgbm90IGNvbm5lY3RlZCB0byAiCi0JCQkJIklPLUFQSUNcbiIpOwotCX0KKwkJaWYgKCFub19waW4xKQorCQkJcHJpbnRrKEtFUk5fRVJSICIuLk1QLUJJT1MgYnVnOiAiCisJCQkgICAgICAgIjgyNTQgdGltZXIgbm90IGNvbm5lY3RlZCB0byBJTy1BUElDXG4iKTsKIAotCXByaW50ayhLRVJOX0lORk8gIi4uLnRyeWluZyB0byBzZXQgdXAgdGltZXIgKElSUTApIHRocm91Z2ggdGhlIDgyNTlBIC4uLiAiKTsKLQlpZiAocGluMiAhPSAtMSkgeworCQlwcmludGsoS0VSTl9JTkZPICIuLi50cnlpbmcgdG8gc2V0IHVwIHRpbWVyIChJUlEwKSAiCisJCSAgICAgICAidGhyb3VnaCB0aGUgODI1OUEgLi4uICIpOwogCQlwcmludGsoIlxuLi4uLi4gKGZvdW5kIHBpbiAlZCkgLi4uIiwgcGluMik7CiAJCS8qCiAJCSAqIGxlZ2FjeSBkZXZpY2VzIHNob3VsZCBiZSBjb25uZWN0ZWQgdG8gSU8gQVBJQyAjMAogCQkgKi8KLQkJc2V0dXBfRXh0SU5UX0lSUTBfcGluKGFwaWMyLCBwaW4yLCB2ZWN0b3IpOworCQlyZXBsYWNlX3Bpbl9hdF9pcnEoMCwgYXBpYzEsIHBpbjEsIGFwaWMyLCBwaW4yKTsKKwkJc2V0dXBfdGltZXJfSVJRMF9waW4oYXBpYzIsIHBpbjIsIHZlY3Rvcik7CisJCXVubWFza19JT19BUElDX2lycSgwKTsKKwkJZW5hYmxlXzgyNTlBX2lycSgwKTsKIAkJaWYgKHRpbWVyX2lycV93b3JrcygpKSB7CiAJCQlwcmludGsoIndvcmtzLlxuIik7Ci0JCQlpZiAocGluMSAhPSAtMSkKLQkJCQlyZXBsYWNlX3Bpbl9hdF9pcnEoMCwgYXBpYzEsIHBpbjEsIGFwaWMyLCBwaW4yKTsKLQkJCWVsc2UKLQkJCQlhZGRfcGluX3RvX2lycSgwLCBhcGljMiwgcGluMik7CisJCQl0aW1lcl90aHJvdWdoXzgyNTkgPSAxOwogCQkJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykgeworCQkJCWRpc2FibGVfODI1OUFfaXJxKDApOwogCQkJCXNldHVwX25taSgpOworCQkJCWVuYWJsZV84MjU5QV9pcnEoMCk7CiAJCQl9CiAJCQlnb3RvIG91dDsKIAkJfQogCQkvKgogCQkgKiBDbGVhbnVwLCBqdXN0IGluIGNhc2UgLi4uCiAJCSAqLworCQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKIAkJY2xlYXJfSU9fQVBJQ19waW4oYXBpYzIsIHBpbjIpOworCQlwcmludGsoIiBmYWlsZWQuXG4iKTsKIAl9Ci0JcHJpbnRrKCIgZmFpbGVkLlxuIik7CiAKIAlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgInRpbWVyIGRvZXNuJ3Qgd29yayB0aHJvdWdoIHRoZSBJTy1BUElDIC0gZGlzYWJsaW5nIE5NSSBXYXRjaGRvZyFcbiIpOwotCQlubWlfd2F0Y2hkb2cgPSAwOworCQlubWlfd2F0Y2hkb2cgPSBOTUlfTk9ORTsKIAl9CisJdGltZXJfYWNrID0gMDsKIAogCXByaW50ayhLRVJOX0lORk8gIi4uLnRyeWluZyB0byBzZXQgdXAgdGltZXIgYXMgVmlydHVhbCBXaXJlIElSUS4uLiIpOwogCi0JZGlzYWJsZV84MjU5QV9pcnEoMCk7Ci0Jc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoMCwgJmxhcGljX2NoaXAsIGhhbmRsZV9mYXN0ZW9pX2lycSwKLQkJCQkgICAgICAiZmFzdGVvaSIpOworCWxhcGljX3JlZ2lzdGVyX2ludHIoMCwgdmVjdG9yKTsKIAlhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIEFQSUNfRE1fRklYRUQgfCB2ZWN0b3IpOwkvKiBGaXhlZCBtb2RlICovCiAJZW5hYmxlXzgyNTlBX2lycSgwKTsKIApAQCAtMjIyNCwxMiArMjI2MywxMiBAQAogCQlwcmludGsoIiB3b3Jrcy5cbiIpOwogCQlnb3RvIG91dDsKIAl9CisJZGlzYWJsZV84MjU5QV9pcnEoMCk7CiAJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RNX0ZJWEVEIHwgdmVjdG9yKTsKIAlwcmludGsoIiBmYWlsZWQuXG4iKTsKIAogCXByaW50ayhLRVJOX0lORk8gIi4uLnRyeWluZyB0byBzZXQgdXAgdGltZXIgYXMgRXh0SU5UIElSUS4uLiIpOwogCi0JdGltZXJfYWNrID0gMDsKIAlpbml0XzgyNTlBKDApOwogCW1ha2VfODI1OUFfaXJxKDApOwogCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19ETV9FWFRJTlQpOwpAQCAtMjI0OCwxMSArMjI4NywyMSBAQAogfQogCiAvKgotICoKLSAqIElSUSdzIHRoYXQgYXJlIGhhbmRsZWQgYnkgdGhlIFBJQyBpbiB0aGUgTVBTIElPQVBJQyBjYXNlLgotICogLSBJUlEyIGlzIHRoZSBjYXNjYWRlIElSUSwgYW5kIGNhbm5vdCBiZSBhIGlvLWFwaWMgSVJRLgotICogICBMaW51eCBkb2Vzbid0IHJlYWxseSBjYXJlLCBhcyBpdCdzIG5vdCBhY3R1YWxseSB1c2VkCi0gKiAgIGZvciBhbnkgaW50ZXJydXB0IGhhbmRsaW5nIGFueXdheS4KKyAqIFRyYWRpdGlvbmFsbHkgSVNBIElSUTIgaXMgdGhlIGNhc2NhZGUgSVJRLCBhbmQgaXMgbm90IGF2YWlsYWJsZQorICogdG8gZGV2aWNlcy4gIEhvd2V2ZXIgdGhlcmUgbWF5IGJlIGFuIEkvTyBBUElDIHBpbiBhdmFpbGFibGUgZm9yCisgKiB0aGlzIGludGVycnVwdCByZWdhcmRsZXNzLiAgVGhlIHBpbiBtYXkgYmUgbGVmdCB1bmNvbm5lY3RlZCwgYnV0CisgKiB0eXBpY2FsbHkgaXQgd2lsbCBiZSByZXVzZWQgYXMgYW4gRXh0SU5UIGNhc2NhZGUgaW50ZXJydXB0IGZvcgorICogdGhlIG1hc3RlciA4MjU5QS4gIEluIHRoZSBNUFMgY2FzZSBzdWNoIGEgcGluIHdpbGwgbm9ybWFsbHkgYmUKKyAqIHJlcG9ydGVkIGFzIGFuIEV4dElOVCBpbnRlcnJ1cHQgaW4gdGhlIE1QIHRhYmxlLiAgV2l0aCBBQ1BJCisgKiB0aGVyZSBpcyBubyBwcm92aXNpb24gZm9yIEV4dElOVCBpbnRlcnJ1cHRzLCBhbmQgaW4gdGhlIGFic2VuY2UKKyAqIG9mIGFuIG92ZXJyaWRlIGl0IHdvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gb3JkaW5hcnkgSVNBIEkvTyBBUElDCisgKiBpbnRlcnJ1cHQsIHRoYXQgaXMgZWRnZS10cmlnZ2VyZWQgYW5kIHVubWFza2VkIGJ5IGRlZmF1bHQuICBXZQorICogdXNlZCB0byBkbyB0aGlzLCBidXQgaXQgY2F1c2VkIHByb2JsZW1zIG9uIHNvbWUgc3lzdGVtcyBiZWNhdXNlCisgKiBvZiB0aGUgTk1JIHdhdGNoZG9nIGFuZCBzb21ldGltZXMgSVJRMCBvZiB0aGUgODI1NCB0aW1lciB1c2luZworICogdGhlIHNhbWUgRXh0SU5UIGNhc2NhZGUgaW50ZXJydXB0IHRvIGRyaXZlIHRoZSBsb2NhbCBBUElDIG9mIHRoZQorICogYm9vdHN0cmFwIHByb2Nlc3Nvci4gIFRoZXJlZm9yZSB3ZSByZWZyYWluIGZyb20gcm91dGluZyBJUlEyIHRvCisgKiB0aGUgSS9PIEFQSUMgaW4gYWxsIGNhc2VzIG5vdy4gIE5vIGFjdHVhbCBkZXZpY2Ugc2hvdWxkIHJlcXVlc3QKKyAqIGl0IGFueXdheS4gIC0tbWFjcm8KICAqLwogI2RlZmluZSBQSUNfSVJRUwkoMSA8PCBQSUNfQ0FTQ0FERV9JUikKIApAQCAtMjI2MSwxNSArMjMxMCwxMiBAQAogCWludCBpOwogCiAJLyogUmVzZXJ2ZSBhbGwgdGhlIHN5c3RlbSB2ZWN0b3JzLiAqLwotCWZvciAoaSA9IEZJUlNUX1NZU1RFTV9WRUNUT1I7IGkgPCBOUl9WRUNUT1JTOyBpKyspCisJZm9yIChpID0gZmlyc3Rfc3lzdGVtX3ZlY3RvcjsgaSA8IE5SX1ZFQ1RPUlM7IGkrKykKIAkJc2V0X2JpdChpLCB1c2VkX3ZlY3RvcnMpOwogCiAJZW5hYmxlX0lPX0FQSUMoKTsKIAotCWlmIChhY3BpX2lvYXBpYykKLQkJaW9fYXBpY19pcnFzID0gfjA7CS8qIGFsbCBJUlFzIGdvIHRocm91Z2ggSU9BUElDICovCi0JZWxzZQotCQlpb19hcGljX2lycXMgPSB+UElDX0lSUVM7CisJaW9fYXBpY19pcnFzID0gflBJQ19JUlFTOwogCiAJcHJpbnRrKCJFTkFCTElORyBJTy1BUElDIElSUXNcbiIpOwogCkBAIC0yMjg2LDI4ICsyMzMyLDE0IEBACiAJCXByaW50X0lPX0FQSUMoKTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgc2V0dXBfZGlzYWJsZV84MjU0X3RpbWVyKGNoYXIgKnMpCi17Ci0JdGltZXJfb3Zlcl84MjU0ID0gLTE7Ci0JcmV0dXJuIDE7Ci19Ci1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9lbmFibGVfODI1NF90aW1lcihjaGFyICpzKQotewotCXRpbWVyX292ZXJfODI1NCA9IDI7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9fc2V0dXAoImRpc2FibGVfODI1NF90aW1lciIsIHNldHVwX2Rpc2FibGVfODI1NF90aW1lcik7Ci1fX3NldHVwKCJlbmFibGVfODI1NF90aW1lciIsIHNldHVwX2VuYWJsZV84MjU0X3RpbWVyKTsKLQogLyoKICAqCUNhbGxlZCBhZnRlciBhbGwgdGhlIGluaXRpYWxpemF0aW9uIGlzIGRvbmUuIElmIHdlIGRpZG50IGZpbmQgYW55CiAgKglBUElDIGJ1Z3MgdGhlbiB3ZSBjYW4gYWxsb3cgdGhlIG1vZGlmeSBmYXN0IHBhdGgKICAqLwotIAorCiBzdGF0aWMgaW50IF9faW5pdCBpb19hcGljX2J1Z19maW5hbGl6ZSh2b2lkKQogewotCWlmKHNpc19hcGljX2J1ZyA9PSAtMSkKKwlpZiAoc2lzX2FwaWNfYnVnID09IC0xKQogCQlzaXNfYXBpY19idWcgPSAwOwogCXJldHVybiAwOwogfQpAQCAtMjMxOCwxNyArMjM1MCwxNyBAQAogCXN0cnVjdCBzeXNfZGV2aWNlIGRldjsKIAlzdHJ1Y3QgSU9fQVBJQ19yb3V0ZV9lbnRyeSBlbnRyeVswXTsKIH07Ci1zdGF0aWMgc3RydWN0IHN5c2ZzX2lvYXBpY19kYXRhICogbXBfaW9hcGljX2RhdGFbTUFYX0lPX0FQSUNTXTsKK3N0YXRpYyBzdHJ1Y3Qgc3lzZnNfaW9hcGljX2RhdGEgKm1wX2lvYXBpY19kYXRhW01BWF9JT19BUElDU107CiAKIHN0YXRpYyBpbnQgaW9hcGljX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQogewogCXN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5ICplbnRyeTsKIAlzdHJ1Y3Qgc3lzZnNfaW9hcGljX2RhdGEgKmRhdGE7CiAJaW50IGk7Ci0JCisKIAlkYXRhID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHN5c2ZzX2lvYXBpY19kYXRhLCBkZXYpOwogCWVudHJ5ID0gZGF0YS0+ZW50cnk7Ci0JZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY19yZWdpc3RlcnNbZGV2LT5pZF07IGkgKyspCisJZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY19yZWdpc3RlcnNbZGV2LT5pZF07IGkrKykKIAkJZW50cnlbaV0gPSBpb2FwaWNfcmVhZF9lbnRyeShkZXYtPmlkLCBpKTsKIAogCXJldHVybiAwOwpAQCAtMjM0MSwxOCArMjM3MywxOCBAQAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdW5pb24gSU9fQVBJQ19yZWdfMDAgcmVnXzAwOwogCWludCBpOwotCQorCiAJZGF0YSA9IGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBzeXNmc19pb2FwaWNfZGF0YSwgZGV2KTsKIAllbnRyeSA9IGRhdGEtPmVudHJ5OwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAJcmVnXzAwLnJhdyA9IGlvX2FwaWNfcmVhZChkZXYtPmlkLCAwKTsKLQlpZiAocmVnXzAwLmJpdHMuSUQgIT0gbXBfaW9hcGljc1tkZXYtPmlkXS5tcGNfYXBpY2lkKSB7Ci0JCXJlZ18wMC5iaXRzLklEID0gbXBfaW9hcGljc1tkZXYtPmlkXS5tcGNfYXBpY2lkOworCWlmIChyZWdfMDAuYml0cy5JRCAhPSBtcF9pb2FwaWNzW2Rldi0+aWRdLm1wX2FwaWNpZCkgeworCQlyZWdfMDAuYml0cy5JRCA9IG1wX2lvYXBpY3NbZGV2LT5pZF0ubXBfYXBpY2lkOwogCQlpb19hcGljX3dyaXRlKGRldi0+aWQsIDAsIHJlZ18wMC5yYXcpOwogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwotCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNfcmVnaXN0ZXJzW2Rldi0+aWRdOyBpICsrKQorCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNfcmVnaXN0ZXJzW2Rldi0+aWRdOyBpKyspCiAJCWlvYXBpY193cml0ZV9lbnRyeShkZXYtPmlkLCBpLCBlbnRyeVtpXSk7CiAKIAlyZXR1cm4gMDsKQEAgLTIzNjYsMjQgKzIzOTgsMjMgQEAKIAogc3RhdGljIGludCBfX2luaXQgaW9hcGljX2luaXRfc3lzZnModm9pZCkKIHsKLQlzdHJ1Y3Qgc3lzX2RldmljZSAqIGRldjsKKwlzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2OwogCWludCBpLCBzaXplLCBlcnJvciA9IDA7CiAKIAllcnJvciA9IHN5c2Rldl9jbGFzc19yZWdpc3RlcigmaW9hcGljX3N5c2Rldl9jbGFzcyk7CiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKLQlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrICkgewotCQlzaXplID0gc2l6ZW9mKHN0cnVjdCBzeXNfZGV2aWNlKSArIG5yX2lvYXBpY19yZWdpc3RlcnNbaV0gCisJZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkrKykgeworCQlzaXplID0gc2l6ZW9mKHN0cnVjdCBzeXNfZGV2aWNlKSArIG5yX2lvYXBpY19yZWdpc3RlcnNbaV0KIAkJCSogc2l6ZW9mKHN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5KTsKLQkJbXBfaW9hcGljX2RhdGFbaV0gPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworCQltcF9pb2FwaWNfZGF0YVtpXSA9IGt6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7CiAJCWlmICghbXBfaW9hcGljX2RhdGFbaV0pIHsKIAkJCXByaW50ayhLRVJOX0VSUiAiQ2FuJ3Qgc3VzcGVuZC9yZXN1bWUgSU9BUElDICVkXG4iLCBpKTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCW1lbXNldChtcF9pb2FwaWNfZGF0YVtpXSwgMCwgc2l6ZSk7CiAJCWRldiA9ICZtcF9pb2FwaWNfZGF0YVtpXS0+ZGV2OwotCQlkZXYtPmlkID0gaTsgCisJCWRldi0+aWQgPSBpOwogCQlkZXYtPmNscyA9ICZpb2FwaWNfc3lzZGV2X2NsYXNzOwogCQllcnJvciA9IHN5c2Rldl9yZWdpc3RlcihkZXYpOwogCQlpZiAoZXJyb3IpIHsKQEAgLTI0NTgsNyArMjQ4OSw3IEBACiAJCW1zZy0+YWRkcmVzc19sbyA9CiAJCQlNU0lfQUREUl9CQVNFX0xPIHwKIAkJCSgoSU5UX0RFU1RfTU9ERSA9PSAwKSA/Ci0JCQkJTVNJX0FERFJfREVTVF9NT0RFX1BIWVNJQ0FMOgorTVNJX0FERFJfREVTVF9NT0RFX1BIWVNJQ0FMOgogCQkJCU1TSV9BRERSX0RFU1RfTU9ERV9MT0dJQ0FMKSB8CiAJCQkoKElOVF9ERUxJVkVSWV9NT0RFICE9IGRlc3RfTG93ZXN0UHJpbykgPwogCQkJCU1TSV9BRERSX1JFRElSRUNUSU9OX0NQVToKQEAgLTI0NjksNyArMjUwMCw3IEBACiAJCQlNU0lfREFUQV9UUklHR0VSX0VER0UgfAogCQkJTVNJX0RBVEFfTEVWRUxfQVNTRVJUIHwKIAkJCSgoSU5UX0RFTElWRVJZX01PREUgIT0gZGVzdF9Mb3dlc3RQcmlvKSA/Ci0JCQkJTVNJX0RBVEFfREVMSVZFUllfRklYRUQ6CitNU0lfREFUQV9ERUxJVkVSWV9GSVhFRDoKIAkJCQlNU0lfREFUQV9ERUxJVkVSWV9MT1dQUkkpIHwKIAkJCU1TSV9EQVRBX1ZFQ1RPUih2ZWN0b3IpOwogCX0KQEAgLTI2NDAsMTIgKzI2NzEsMTIgQEAKICNlbmRpZiAvKiBDT05GSUdfSFRfSVJRICovCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEFDUEktYmFzZWQgSU9BUElDIENvbmZpZ3VyYXRpb24KKwkJCUFDUEktYmFzZWQgSU9BUElDIENvbmZpZ3VyYXRpb24KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKICNpZmRlZiBDT05GSUdfQUNQSQogCi1pbnQgX19pbml0IGlvX2FwaWNfZ2V0X3VuaXF1ZV9pZCAoaW50IGlvYXBpYywgaW50IGFwaWNfaWQpCitpbnQgX19pbml0IGlvX2FwaWNfZ2V0X3VuaXF1ZV9pZChpbnQgaW9hcGljLCBpbnQgYXBpY19pZCkKIHsKIAl1bmlvbiBJT19BUElDX3JlZ18wMCByZWdfMDA7CiAJc3RhdGljIHBoeXNpZF9tYXNrX3QgYXBpY19pZF9tYXAgPSBQSFlTSURfTUFTS19OT05FOwpAQCAtMjY1NCwxMCArMjY4NSwxMCBAQAogCWludCBpID0gMDsKIAogCS8qCi0JICogVGhlIFA0IHBsYXRmb3JtIHN1cHBvcnRzIHVwIHRvIDI1NiBBUElDIElEcyBvbiB0d28gc2VwYXJhdGUgQVBJQyAKLQkgKiBidXNlcyAob25lIGZvciBMQVBJQ3MsIG9uZSBmb3IgSU9BUElDcyksIHdoZXJlIHByZWRlY2Vzc29ycyBvbmx5IAorCSAqIFRoZSBQNCBwbGF0Zm9ybSBzdXBwb3J0cyB1cCB0byAyNTYgQVBJQyBJRHMgb24gdHdvIHNlcGFyYXRlIEFQSUMKKwkgKiBidXNlcyAob25lIGZvciBMQVBJQ3MsIG9uZSBmb3IgSU9BUElDcyksIHdoZXJlIHByZWRlY2Vzc29ycyBvbmx5CiAJICogc3VwcG9ydHMgdXAgdG8gMTYgb24gb25lIHNoYXJlZCBBUElDIGJ1cy4KLQkgKiAKKwkgKgogCSAqIFRCRDogRXhwYW5kIExBUElDL0lPQVBJQyBzdXBwb3J0IG9uIFA0LWNsYXNzIHN5c3RlbXMgdG8gdGFrZSBmdWxsCiAJICogICAgICBhZHZhbnRhZ2Ugb2YgbmV3IEFQSUMgYnVzIGFyY2hpdGVjdHVyZS4KIAkgKi8KQEAgLTI2NzYsNyArMjcwNyw3IEBACiAJfQogCiAJLyoKLQkgKiBFdmVyeSBBUElDIGluIGEgc3lzdGVtIG11c3QgaGF2ZSBhIHVuaXF1ZSBJRCBvciB3ZSBnZXQgbG90cyBvZiBuaWNlIAorCSAqIEV2ZXJ5IEFQSUMgaW4gYSBzeXN0ZW0gbXVzdCBoYXZlIGEgdW5pcXVlIElEIG9yIHdlIGdldCBsb3RzIG9mIG5pY2UKIAkgKiAnc3R1Y2sgb24gc21wX2ludmFsaWRhdGVfbmVlZGVkIElQSSB3YWl0JyBtZXNzYWdlcy4KIAkgKi8KIAlpZiAoY2hlY2tfYXBpY2lkX3VzZWQoYXBpY19pZF9tYXAsIGFwaWNfaWQpKSB7CkBAIC0yNjkzLDcgKzI3MjQsNyBAQAogCQkJInRyeWluZyAlZFxuIiwgaW9hcGljLCBhcGljX2lkLCBpKTsKIAogCQlhcGljX2lkID0gaTsKLQl9IAorCX0KIAogCXRtcCA9IGFwaWNpZF90b19jcHVfcHJlc2VudChhcGljX2lkKTsKIAlwaHlzaWRzX29yKGFwaWNfaWRfbWFwLCBhcGljX2lkX21hcCwgdG1wKTsKQEAgLTI3MjAsNyArMjc1MSw3IEBACiB9CiAKIAotaW50IF9faW5pdCBpb19hcGljX2dldF92ZXJzaW9uIChpbnQgaW9hcGljKQoraW50IF9faW5pdCBpb19hcGljX2dldF92ZXJzaW9uKGludCBpb2FwaWMpCiB7CiAJdW5pb24gSU9fQVBJQ19yZWdfMDEJcmVnXzAxOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC0yNzMzLDcgKzI3NjQsNyBAQAogfQogCiAKLWludCBfX2luaXQgaW9fYXBpY19nZXRfcmVkaXJfZW50cmllcyAoaW50IGlvYXBpYykKK2ludCBfX2luaXQgaW9fYXBpY19nZXRfcmVkaXJfZW50cmllcyhpbnQgaW9hcGljKQogewogCXVuaW9uIElPX0FQSUNfcmVnXzAxCXJlZ18wMTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMjc0Niw3ICsyNzc3LDcgQEAKIH0KIAogCi1pbnQgaW9fYXBpY19zZXRfcGNpX3JvdXRpbmcgKGludCBpb2FwaWMsIGludCBwaW4sIGludCBpcnEsIGludCBlZGdlX2xldmVsLCBpbnQgYWN0aXZlX2hpZ2hfbG93KQoraW50IGlvX2FwaWNfc2V0X3BjaV9yb3V0aW5nKGludCBpb2FwaWMsIGludCBwaW4sIGludCBpcnEsIGludCBlZGdlX2xldmVsLCBpbnQgYWN0aXZlX2hpZ2hfbG93KQogewogCXN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5IGVudHJ5OwogCkBAIC0yNzYyLDcgKzI3OTMsNyBAQAogCSAqIGNvcnJlc3BvbmRpbmcgZGV2aWNlIGRyaXZlciByZWdpc3RlcnMgZm9yIHRoaXMgSVJRLgogCSAqLwogCi0JbWVtc2V0KCZlbnRyeSwwLHNpemVvZihlbnRyeSkpOworCW1lbXNldCgmZW50cnksIDAsIHNpemVvZihlbnRyeSkpOwogCiAJZW50cnkuZGVsaXZlcnlfbW9kZSA9IElOVF9ERUxJVkVSWV9NT0RFOwogCWVudHJ5LmRlc3RfbW9kZSA9IElOVF9ERVNUX01PREU7CkBAIC0yNzgxLDcgKzI4MTIsNyBAQAogCiAJYXBpY19wcmludGsoQVBJQ19ERUJVRywgS0VSTl9ERUJVRyAiSU9BUElDWyVkXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICIKIAkJIiglZC0lZCAtPiAweCV4IC0+IElSUSAlZCBNb2RlOiVpIEFjdGl2ZTolaSlcbiIsIGlvYXBpYywKLQkJbXBfaW9hcGljc1tpb2FwaWNdLm1wY19hcGljaWQsIHBpbiwgZW50cnkudmVjdG9yLCBpcnEsCisJCW1wX2lvYXBpY3NbaW9hcGljXS5tcF9hcGljaWQsIHBpbiwgZW50cnkudmVjdG9yLCBpcnEsCiAJCWVkZ2VfbGV2ZWwsIGFjdGl2ZV9oaWdoX2xvdyk7CiAKIAlpb2FwaWNfcmVnaXN0ZXJfaW50cihpcnEsIGVudHJ5LnZlY3RvciwgZWRnZV9sZXZlbCk7CkBAIC0yODAyLDggKzI4MzMsOCBAQAogCQlyZXR1cm4gLTE7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykKLQkJaWYgKG1wX2lycXNbaV0ubXBjX2lycXR5cGUgPT0gbXBfSU5UICYmCi0JCSAgICBtcF9pcnFzW2ldLm1wY19zcmNidXNpcnEgPT0gYnVzX2lycSkKKwkJaWYgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSA9PSBtcF9JTlQgJiYKKwkJICAgIG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxID09IGJ1c19pcnEpCiAJCQlicmVhazsKIAlpZiAoaSA+PSBtcF9pcnFfZW50cmllcykKIAkJcmV0dXJuIC0xOwpAQCAtMjgzNiwzICsyODY3LDM0IEBACiAJcmV0dXJuIDA7CiB9CiBlYXJseV9wYXJhbSgibm9hcGljIiwgcGFyc2Vfbm9hcGljKTsKKwordm9pZCBfX2luaXQgaW9hcGljX2luaXRfbWFwcGluZ3Modm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGlvYXBpY19waHlzLCBpZHggPSBGSVhfSU9fQVBJQ19CQVNFXzA7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7CisJCWlmIChzbXBfZm91bmRfY29uZmlnKSB7CisJCQlpb2FwaWNfcGh5cyA9IG1wX2lvYXBpY3NbaV0ubXBfYXBpY2FkZHI7CisJCQlpZiAoIWlvYXBpY19waHlzKSB7CisJCQkJcHJpbnRrKEtFUk5fRVJSCisJCQkJICAgICAgICJXQVJOSU5HOiBib2d1cyB6ZXJvIElPLUFQSUMgIgorCQkJCSAgICAgICAiYWRkcmVzcyBmb3VuZCBpbiBNUFRBQkxFLCAiCisJCQkJICAgICAgICJkaXNhYmxpbmcgSU8vQVBJQyBzdXBwb3J0IVxuIik7CisJCQkJc21wX2ZvdW5kX2NvbmZpZyA9IDA7CisJCQkJc2tpcF9pb2FwaWNfc2V0dXAgPSAxOworCQkJCWdvdG8gZmFrZV9pb2FwaWNfcGFnZTsKKwkJCX0KKwkJfSBlbHNlIHsKK2Zha2VfaW9hcGljX3BhZ2U6CisJCQlpb2FwaWNfcGh5cyA9ICh1bnNpZ25lZCBsb25nKQorCQkJCSAgICAgIGFsbG9jX2Jvb3RtZW1fcGFnZXMoUEFHRV9TSVpFKTsKKwkJCWlvYXBpY19waHlzID0gX19wYShpb2FwaWNfcGh5cyk7CisJCX0KKwkJc2V0X2ZpeG1hcF9ub2NhY2hlKGlkeCwgaW9hcGljX3BoeXMpOworCQlwcmludGsoS0VSTl9ERUJVRyAibWFwcGVkIElPQVBJQyB0byAlMDhseCAoJTA4bHgpXG4iLAorCQkgICAgICAgX19maXhfdG9fdmlydChpZHgpLCBpb2FwaWNfcGh5cyk7CisJCWlkeCsrOworCX0KK30KKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lvX2FwaWNfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9pb19hcGljXzY0LmMKaW5kZXggNDUwNGM3Zi4uNjUxMGNkZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lvX2FwaWNfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaW9fYXBpY182NC5jCkBAIC02MSw3ICs2MSw3IEBACiB9OwogCiAvKiBpcnFfY2ZnIGlzIGluZGV4ZWQgYnkgdGhlIHN1bSBvZiBhbGwgUlRFcyBpbiBhbGwgSS9PIEFQSUNzLiAqLwotc3RydWN0IGlycV9jZmcgaXJxX2NmZ1tOUl9JUlFTXSBfX3JlYWRfbW9zdGx5ID0geworc3RhdGljIHN0cnVjdCBpcnFfY2ZnIGlycV9jZmdbTlJfSVJRU10gX19yZWFkX21vc3RseSA9IHsKIAlbMF0gID0geyAuZG9tYWluID0gQ1BVX01BU0tfQUxMLCAudmVjdG9yID0gSVJRMF9WRUNUT1IsICB9LAogCVsxXSAgPSB7IC5kb21haW4gPSBDUFVfTUFTS19BTEwsIC52ZWN0b3IgPSBJUlExX1ZFQ1RPUiwgIH0sCiAJWzJdICA9IHsgLmRvbWFpbiA9IENQVV9NQVNLX0FMTCwgLnZlY3RvciA9IElSUTJfVkVDVE9SLCAgfSwKQEAgLTgyLDYgKzgyLDEwIEBACiAKIHN0YXRpYyBpbnQgYXNzaWduX2lycV92ZWN0b3IoaW50IGlycSwgY3B1bWFza190IG1hc2spOwogCitpbnQgZmlyc3Rfc3lzdGVtX3ZlY3RvciA9IDB4ZmU7CisKK2NoYXIgc3lzdGVtX3ZlY3RvcnNbTlJfVkVDVE9SU10gPSB7IFswIC4uLiBOUl9WRUNUT1JTLTFdID0gU1lTX1ZFQ1RPUl9GUkVFfTsKKwogI2RlZmluZSBfX2FwaWNkZWJ1Z2luaXQgIF9faW5pdAogCiBpbnQgc2lzX2FwaWNfYnVnOyAvKiBub3QgYWN0dWFsbHkgc3VwcG9ydGVkLCBkdW1teSBmb3IgY29tcGlsZSAqLwpAQCAtOTAsNyArOTQsNyBAQAogCiBzdGF0aWMgaW50IGRpc2FibGVfdGltZXJfcGluXzEgX19pbml0ZGF0YTsKIAotaW50IHRpbWVyX292ZXJfODI1NCBfX2luaXRkYXRhID0gMTsKK2ludCB0aW1lcl90aHJvdWdoXzgyNTkgX19pbml0ZGF0YTsKIAogLyogV2hlcmUgaWYgYW55d2hlcmUgaXMgdGhlIGk4MjU5IGNvbm5lY3QgaW4gZXh0ZXJuYWwgaW50IG1vZGUgKi8KIHN0YXRpYyBzdHJ1Y3QgeyBpbnQgcGluLCBhcGljOyB9IGlvYXBpY19pODI1OSA9IHsgLTEsIC0xIH07CkBAIC0xMDQsMTUgKzEwOCwxNyBAQAogaW50IG5yX2lvYXBpY19yZWdpc3RlcnNbTUFYX0lPX0FQSUNTXTsKIAogLyogSS9PIEFQSUMgZW50cmllcyAqLwotc3RydWN0IG1wY19jb25maWdfaW9hcGljIG1wX2lvYXBpY3NbTUFYX0lPX0FQSUNTXTsKK3N0cnVjdCBtcF9jb25maWdfaW9hcGljIG1wX2lvYXBpY3NbTUFYX0lPX0FQSUNTXTsKIGludCBucl9pb2FwaWNzOwogCiAvKiBNUCBJUlEgc291cmNlIGVudHJpZXMgKi8KLXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyBtcF9pcnFzW01BWF9JUlFfU09VUkNFU107CitzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyBtcF9pcnFzW01BWF9JUlFfU09VUkNFU107CiAKIC8qICMgb2YgTVAgSVJRIHNvdXJjZSBlbnRyaWVzICovCiBpbnQgbXBfaXJxX2VudHJpZXM7CiAKK0RFQ0xBUkVfQklUTUFQKG1wX2J1c19ub3RfcGNpLCBNQVhfTVBfQlVTU0VTKTsKKwogLyoKICAqIFJvdWdoIGVzdGltYXRpb24gb2YgaG93IG1hbnkgc2hhcmVkIElSUXMgdGhlcmUgYXJlLCBjYW4KICAqIGJlIGNoYW5nZWQgYW55dGltZS4KQEAgLTE0MCw3ICsxNDYsNyBAQAogc3RhdGljIF9fYXR0cmlidXRlX2NvbnN0X18gc3RydWN0IGlvX2FwaWMgX19pb21lbSAqaW9fYXBpY19iYXNlKGludCBpZHgpCiB7CiAJcmV0dXJuICh2b2lkIF9faW9tZW0gKikgX19maXhfdG9fdmlydChGSVhfSU9fQVBJQ19CQVNFXzAgKyBpZHgpCi0JCSsgKG1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2FkZHIgJiB+UEFHRV9NQVNLKTsKKwkJKyAobXBfaW9hcGljc1tpZHhdLm1wX2FwaWNhZGRyICYgflBBR0VfTUFTSyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGlvX2FwaWNfcmVhZCh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZykKQEAgLTE4Myw3ICsxODksNyBAQAogCQkJYnJlYWs7CiAJCXJlZyA9IGlvX2FwaWNfcmVhZChlbnRyeS0+YXBpYywgMHgxMCArIHBpbioyKTsKIAkJLyogSXMgdGhlIHJlbW90ZSBJUlIgYml0IHNldD8gKi8KLQkJaWYgKChyZWcgPj4gMTQpICYgMSkgeworCQlpZiAocmVnICYgSU9fQVBJQ19SRURJUl9SRU1PVEVfSVJSKSB7CiAJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwogCQkJcmV0dXJuIHRydWU7CiAJCX0KQEAgLTI5OCw3ICszMDQsNyBAQAogCQkJYnJlYWs7CiAJCWlvX2FwaWNfd3JpdGUoYXBpYywgMHgxMSArIHBpbioyLCBkZXN0KTsKIAkJcmVnID0gaW9fYXBpY19yZWFkKGFwaWMsIDB4MTAgKyBwaW4qMik7Ci0JCXJlZyAmPSB+MHgwMDAwMDBmZjsKKwkJcmVnICY9IH5JT19BUElDX1JFRElSX1ZFQ1RPUl9NQVNLOwogCQlyZWcgfD0gdmVjdG9yOwogCQlpb19hcGljX21vZGlmeShhcGljLCByZWcpOwogCQlpZiAoIWVudHJ5LT5uZXh0KQpAQCAtMzYwLDE2ICszNjYsMzcgQEAKIAllbnRyeS0+cGluID0gcGluOwogfQogCisvKgorICogUmVyb3V0ZSBhbiBJUlEgdG8gYSBkaWZmZXJlbnQgcGluLgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgcmVwbGFjZV9waW5fYXRfaXJxKHVuc2lnbmVkIGludCBpcnEsCisJCQkJICAgICAgaW50IG9sZGFwaWMsIGludCBvbGRwaW4sCisJCQkJICAgICAgaW50IG5ld2FwaWMsIGludCBuZXdwaW4pCit7CisJc3RydWN0IGlycV9waW5fbGlzdCAqZW50cnkgPSBpcnFfMl9waW4gKyBpcnE7CisKKwl3aGlsZSAoMSkgeworCQlpZiAoZW50cnktPmFwaWMgPT0gb2xkYXBpYyAmJiBlbnRyeS0+cGluID09IG9sZHBpbikgeworCQkJZW50cnktPmFwaWMgPSBuZXdhcGljOworCQkJZW50cnktPnBpbiA9IG5ld3BpbjsKKwkJfQorCQlpZiAoIWVudHJ5LT5uZXh0KQorCQkJYnJlYWs7CisJCWVudHJ5ID0gaXJxXzJfcGluICsgZW50cnktPm5leHQ7CisJfQorfQorCiAKICNkZWZpbmUgRE9fQUNUSU9OKG5hbWUsUixBQ1RJT04sIEZJTkFMKQkJCQkJXAogCQkJCQkJCQkJXAogCXN0YXRpYyB2b2lkIG5hbWUjI19JT19BUElDX2lycSAodW5zaWduZWQgaW50IGlycSkJCVwKIAlfX0RPX0FDVElPTihSLCBBQ1RJT04sIEZJTkFMKQogCi1ET19BQ1RJT04oIF9fbWFzaywgICAgICAgICAgICAgMCwgfD0gMHgwMDAxMDAwMCwgaW9fYXBpY19zeW5jKGVudHJ5LT5hcGljKSApCi0JCQkJCQkvKiBtYXNrID0gMSAqLwotRE9fQUNUSU9OKCBfX3VubWFzaywgICAgICAgICAgIDAsICY9IDB4ZmZmZWZmZmYsICkKLQkJCQkJCS8qIG1hc2sgPSAwICovCisvKiBtYXNrID0gMSAqLworRE9fQUNUSU9OKF9fbWFzaywJMCwgfD0gSU9fQVBJQ19SRURJUl9NQVNLRUQsIGlvX2FwaWNfc3luYyhlbnRyeS0+YXBpYykpCisKKy8qIG1hc2sgPSAwICovCitET19BQ1RJT04oX191bm1hc2ssCTAsICY9IH5JT19BUElDX1JFRElSX01BU0tFRCwgKQogCiBzdGF0aWMgdm9pZCBtYXNrX0lPX0FQSUNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQogewpAQCAtNDMwLDIwICs0NTcsNiBAQAogfQogX19zZXR1cCgiZGlzYWJsZV90aW1lcl9waW5fMSIsIGRpc2FibGVfdGltZXJfcGluX3NldHVwKTsKIAotc3RhdGljIGludCBfX2luaXQgc2V0dXBfZGlzYWJsZV84MjU0X3RpbWVyKGNoYXIgKnMpCi17Ci0JdGltZXJfb3Zlcl84MjU0ID0gLTE7Ci0JcmV0dXJuIDE7Ci19Ci1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9lbmFibGVfODI1NF90aW1lcihjaGFyICpzKQotewotCXRpbWVyX292ZXJfODI1NCA9IDI7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9fc2V0dXAoImRpc2FibGVfODI1NF90aW1lciIsIHNldHVwX2Rpc2FibGVfODI1NF90aW1lcik7Ci1fX3NldHVwKCJlbmFibGVfODI1NF90aW1lciIsIHNldHVwX2VuYWJsZV84MjU0X3RpbWVyKTsKLQogCiAvKgogICogRmluZCB0aGUgSVJRIGVudHJ5IG51bWJlciBvZiBhIGNlcnRhaW4gcGluLgpAQCAtNDUzLDEwICs0NjYsMTAgQEAKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKQotCQlpZiAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSB0eXBlICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfZHN0YXBpYyA9PSBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQgfHwKLQkJICAgICBtcF9pcnFzW2ldLm1wY19kc3RhcGljID09IE1QX0FQSUNfQUxMKSAmJgotCQkgICAgbXBfaXJxc1tpXS5tcGNfZHN0aXJxID09IHBpbikKKwkJaWYgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSA9PSB0eXBlICYmCisJCSAgICAobXBfaXJxc1tpXS5tcF9kc3RhcGljID09IG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkIHx8CisJCSAgICAgbXBfaXJxc1tpXS5tcF9kc3RhcGljID09IE1QX0FQSUNfQUxMKSAmJgorCQkgICAgbXBfaXJxc1tpXS5tcF9kc3RpcnEgPT0gcGluKQogCQkJcmV0dXJuIGk7CiAKIAlyZXR1cm4gLTE7CkBAIC00NzAsMTMgKzQ4MywxMyBAQAogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKLQkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wY19zcmNidXM7CisJCWludCBsYnVzID0gbXBfaXJxc1tpXS5tcF9zcmNidXM7CiAKIAkJaWYgKHRlc3RfYml0KGxidXMsIG1wX2J1c19ub3RfcGNpKSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX2lycXR5cGUgPT0gdHlwZSkgJiYKLQkJICAgIChtcF9pcnFzW2ldLm1wY19zcmNidXNpcnEgPT0gaXJxKSkKKwkJICAgIChtcF9pcnFzW2ldLm1wX2lycXR5cGUgPT0gdHlwZSkgJiYKKwkJICAgIChtcF9pcnFzW2ldLm1wX3NyY2J1c2lycSA9PSBpcnEpKQogCi0JCQlyZXR1cm4gbXBfaXJxc1tpXS5tcGNfZHN0aXJxOworCQkJcmV0dXJuIG1wX2lycXNbaV0ubXBfZHN0aXJxOwogCX0KIAlyZXR1cm4gLTE7CiB9CkBAIC00ODYsMTcgKzQ5OSwxNyBAQAogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKLQkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wY19zcmNidXM7CisJCWludCBsYnVzID0gbXBfaXJxc1tpXS5tcF9zcmNidXM7CiAKIAkJaWYgKHRlc3RfYml0KGxidXMsIG1wX2J1c19ub3RfcGNpKSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX2lycXR5cGUgPT0gdHlwZSkgJiYKLQkJICAgIChtcF9pcnFzW2ldLm1wY19zcmNidXNpcnEgPT0gaXJxKSkKKwkJICAgIChtcF9pcnFzW2ldLm1wX2lycXR5cGUgPT0gdHlwZSkgJiYKKwkJICAgIChtcF9pcnFzW2ldLm1wX3NyY2J1c2lycSA9PSBpcnEpKQogCQkJYnJlYWs7CiAJfQogCWlmIChpIDwgbXBfaXJxX2VudHJpZXMpIHsKIAkJaW50IGFwaWM7CiAJCWZvcihhcGljID0gMDsgYXBpYyA8IG5yX2lvYXBpY3M7IGFwaWMrKykgewotCQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCA9PSBtcF9pcnFzW2ldLm1wY19kc3RhcGljKQorCQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkID09IG1wX2lycXNbaV0ubXBfZHN0YXBpYykKIAkJCQlyZXR1cm4gYXBpYzsKIAkJfQogCX0KQEAgLTUxNiwyOCArNTI5LDI4IEBACiAKIAlhcGljX3ByaW50ayhBUElDX0RFQlVHLCAicXVlcnlpbmcgUENJIC0+IElSUSBtYXBwaW5nIGJ1czolZCwgc2xvdDolZCwgcGluOiVkLlxuIiwKIAkJYnVzLCBzbG90LCBwaW4pOwotCWlmIChtcF9idXNfaWRfdG9fcGNpX2J1c1tidXNdID09IC0xKSB7CisJaWYgKHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpKSB7CiAJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgIlBDSSBCSU9TIHBhc3NlZCBub25leGlzdGVudCBQQ0kgYnVzICVkIVxuIiwgYnVzKTsKIAkJcmV0dXJuIC0xOwogCX0KIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgewotCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBjX3NyY2J1czsKKwkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wX3NyY2J1czsKIAogCQlmb3IgKGFwaWMgPSAwOyBhcGljIDwgbnJfaW9hcGljczsgYXBpYysrKQotCQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCA9PSBtcF9pcnFzW2ldLm1wY19kc3RhcGljIHx8Ci0JCQkgICAgbXBfaXJxc1tpXS5tcGNfZHN0YXBpYyA9PSBNUF9BUElDX0FMTCkKKwkJCWlmIChtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCA9PSBtcF9pcnFzW2ldLm1wX2RzdGFwaWMgfHwKKwkJCSAgICBtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpCiAJCQkJYnJlYWs7CiAKIAkJaWYgKCF0ZXN0X2JpdChsYnVzLCBtcF9idXNfbm90X3BjaSkgJiYKLQkJICAgICFtcF9pcnFzW2ldLm1wY19pcnF0eXBlICYmCisJCSAgICAhbXBfaXJxc1tpXS5tcF9pcnF0eXBlICYmCiAJCSAgICAoYnVzID09IGxidXMpICYmCi0JCSAgICAoc2xvdCA9PSAoKG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA+PiAyKSAmIDB4MWYpKSkgewotCQkJaW50IGlycSA9IHBpbl8yX2lycShpLGFwaWMsbXBfaXJxc1tpXS5tcGNfZHN0aXJxKTsKKwkJICAgIChzbG90ID09ICgobXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPj4gMikgJiAweDFmKSkpIHsKKwkJCWludCBpcnEgPSBwaW5fMl9pcnEoaSxhcGljLG1wX2lycXNbaV0ubXBfZHN0aXJxKTsKIAogCQkJaWYgKCEoYXBpYyB8fCBJT19BUElDX0lSUShpcnEpKSkKIAkJCQljb250aW51ZTsKIAotCQkJaWYgKHBpbiA9PSAobXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxICYgMykpCisJCQlpZiAocGluID09IChtcF9pcnFzW2ldLm1wX3NyY2J1c2lycSAmIDMpKQogCQkJCXJldHVybiBpcnE7CiAJCQkvKgogCQkJICogVXNlIHRoZSBmaXJzdCBhbGwtYnV0LXBpbiBtYXRjaGluZyBlbnRyeSBhcyBhCkBAIC01NjUsMTMgKzU3OCwxMyBAQAogCiBzdGF0aWMgaW50IE1QQklPU19wb2xhcml0eShpbnQgaWR4KQogewotCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1czsKKwlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1czsKIAlpbnQgcG9sYXJpdHk7CiAKIAkvKgogCSAqIERldGVybWluZSBJUlEgbGluZSBwb2xhcml0eSAoaGlnaCBhY3RpdmUgb3IgbG93IGFjdGl2ZSk6CiAJICovCi0Jc3dpdGNoIChtcF9pcnFzW2lkeF0ubXBjX2lycWZsYWcgJiAzKQorCXN3aXRjaCAobXBfaXJxc1tpZHhdLm1wX2lycWZsYWcgJiAzKQogCXsKIAkJY2FzZSAwOiAvKiBjb25mb3JtcywgaWUuIGJ1cy10eXBlIGRlcGVuZGVudCBwb2xhcml0eSAqLwogCQkJaWYgKHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpKQpAQCAtNjA3LDEzICs2MjAsMTMgQEAKIAogc3RhdGljIGludCBNUEJJT1NfdHJpZ2dlcihpbnQgaWR4KQogewotCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1czsKKwlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1czsKIAlpbnQgdHJpZ2dlcjsKIAogCS8qCiAJICogRGV0ZXJtaW5lIElSUSB0cmlnZ2VyIG1vZGUgKGVkZ2Ugb3IgbGV2ZWwgc2Vuc2l0aXZlKToKIAkgKi8KLQlzd2l0Y2ggKChtcF9pcnFzW2lkeF0ubXBjX2lycWZsYWc+PjIpICYgMykKKwlzd2l0Y2ggKChtcF9pcnFzW2lkeF0ubXBfaXJxZmxhZz4+MikgJiAzKQogCXsKIAkJY2FzZSAwOiAvKiBjb25mb3JtcywgaWUuIGJ1cy10eXBlIGRlcGVuZGVudCAqLwogCQkJaWYgKHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpKQpAQCAtNjYwLDE2ICs2NzMsMTYgQEAKIHN0YXRpYyBpbnQgcGluXzJfaXJxKGludCBpZHgsIGludCBhcGljLCBpbnQgcGluKQogewogCWludCBpcnEsIGk7Ci0JaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcGNfc3JjYnVzOworCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBfc3JjYnVzOwogCiAJLyoKIAkgKiBEZWJ1Z2dpbmcgY2hlY2ssIHdlIGFyZSBpbiBiaWcgdHJvdWJsZSBpZiB0aGlzIG1lc3NhZ2UgcG9wcyB1cCEKIAkgKi8KLQlpZiAobXBfaXJxc1tpZHhdLm1wY19kc3RpcnEgIT0gcGluKQorCWlmIChtcF9pcnFzW2lkeF0ubXBfZHN0aXJxICE9IHBpbikKIAkJcHJpbnRrKEtFUk5fRVJSICJicm9rZW4gQklPUyBvciBNUFRBQkxFIHBhcnNlciwgYXlpZWUhIVxuIik7CiAKIAlpZiAodGVzdF9iaXQoYnVzLCBtcF9idXNfbm90X3BjaSkpIHsKLQkJaXJxID0gbXBfaXJxc1tpZHhdLm1wY19zcmNidXNpcnE7CisJCWlycSA9IG1wX2lycXNbaWR4XS5tcF9zcmNidXNpcnE7CiAJfSBlbHNlIHsKIAkJLyoKIAkJICogUENJIElSUXMgYXJlIG1hcHBlZCBpbiBvcmRlcgpAQCAtNzMwLDcgKzc0Myw3IEBACiAJCW9mZnNldCA9IGN1cnJlbnRfb2Zmc2V0OwogbmV4dDoKIAkJdmVjdG9yICs9IDg7Ci0JCWlmICh2ZWN0b3IgPj0gRklSU1RfU1lTVEVNX1ZFQ1RPUikgeworCQlpZiAodmVjdG9yID49IGZpcnN0X3N5c3RlbV92ZWN0b3IpIHsKIAkJCS8qIElmIHdlIHJ1biBvdXQgb2YgdmVjdG9ycyBvbiBsYXJnZSBib3hlbiwgbXVzdCBzaGFyZSB0aGVtLiAqLwogCQkJb2Zmc2V0ID0gKG9mZnNldCArIDEpICUgODsKIAkJCXZlY3RvciA9IEZJUlNUX0RFVklDRV9WRUNUT1IgKyBvZmZzZXQ7CkBAIC03ODgsNyArODAxLDcgQEAKIAljcHVzX2NsZWFyKGNmZy0+ZG9tYWluKTsKIH0KIAotdm9pZCBfX3NldHVwX3ZlY3Rvcl9pcnEoaW50IGNwdSkKK3N0YXRpYyB2b2lkIF9fc2V0dXBfdmVjdG9yX2lycShpbnQgY3B1KQogewogCS8qIEluaXRpYWxpemUgdmVjdG9yX2lycSBvbiBhIG5ldyBjcHUgKi8KIAkvKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdpdGggdmVjdG9yX2xvY2sgaGVsZCAqLwpAQCAtODExLDYgKzgyNCwxMyBAQAogCX0KIH0KIAordm9pZCBzZXR1cF92ZWN0b3JfaXJxKGludCBjcHUpCit7CisJc3Bpbl9sb2NrKCZ2ZWN0b3JfbG9jayk7CisJX19zZXR1cF92ZWN0b3JfaXJxKHNtcF9wcm9jZXNzb3JfaWQoKSk7CisJc3Bpbl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKK30KKwogCiBzdGF0aWMgc3RydWN0IGlycV9jaGlwIGlvYXBpY19jaGlwOwogCkBAIC04NDYsNyArODY2LDcgQEAKIAlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsS0VSTl9ERUJVRwogCQkgICAgIklPQVBJQ1slZF06IFNldCByb3V0aW5nIGVudHJ5ICglZC0lZCAtPiAweCV4IC0+ICIKIAkJICAgICJJUlEgJWQgTW9kZTolaSBBY3RpdmU6JWkpXG4iLAotCQkgICAgYXBpYywgbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkLCBwaW4sIGNmZy0+dmVjdG9yLAorCQkgICAgYXBpYywgbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQsIHBpbiwgY2ZnLT52ZWN0b3IsCiAJCSAgICBpcnEsIHRyaWdnZXIsIHBvbGFyaXR5KTsKIAogCS8qCkBAIC04ODcsMTAgKzkwNywxMCBAQAogCQlpZHggPSBmaW5kX2lycV9lbnRyeShhcGljLHBpbixtcF9JTlQpOwogCQlpZiAoaWR4ID09IC0xKSB7CiAJCQlpZiAoZmlyc3Rfbm90Y29uKSB7Ci0JCQkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCBLRVJOX0RFQlVHICIgSU8tQVBJQyAoYXBpY2lkLXBpbikgJWQtJWQiLCBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQsIHBpbik7CisJCQkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCBLRVJOX0RFQlVHICIgSU8tQVBJQyAoYXBpY2lkLXBpbikgJWQtJWQiLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCwgcGluKTsKIAkJCQlmaXJzdF9ub3Rjb24gPSAwOwogCQkJfSBlbHNlCi0JCQkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCAiLCAlZC0lZCIsIG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCwgcGluKTsKKwkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsICIsICVkLSVkIiwgbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQsIHBpbik7CiAJCQljb250aW51ZTsKIAkJfQogCQlpZiAoIWZpcnN0X25vdGNvbikgewpAQCAtOTExLDI2ICs5MzEsMjEgQEAKIH0KIAogLyoKLSAqIFNldCB1cCB0aGUgODI1OUEtbWFzdGVyIG91dHB1dCBwaW4gYXMgYnJvYWRjYXN0IHRvIGFsbAotICogQ1BVcy4KKyAqIFNldCB1cCB0aGUgdGltZXIgcGluLCBwb3NzaWJseSB3aXRoIHRoZSA4MjU5QS1tYXN0ZXIgYmVoaW5kLgogICovCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfRXh0SU5UX0lSUTBfcGluKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcGluLCBpbnQgdmVjdG9yKQorc3RhdGljIHZvaWQgX19pbml0IHNldHVwX3RpbWVyX0lSUTBfcGluKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcGluLAorCQkJCQlpbnQgdmVjdG9yKQogewogCXN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5IGVudHJ5OwogCiAJbWVtc2V0KCZlbnRyeSwgMCwgc2l6ZW9mKGVudHJ5KSk7CiAKLQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKLQotCS8qIG1hc2sgTFZUMCAqLwotCWFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RNX0VYVElOVCk7Ci0KIAkvKgogCSAqIFdlIHVzZSBsb2dpY2FsIGRlbGl2ZXJ5IHRvIGdldCB0aGUgdGltZXIgSVJRCiAJICogdG8gdGhlIGZpcnN0IENQVS4KIAkgKi8KIAllbnRyeS5kZXN0X21vZGUgPSBJTlRfREVTVF9NT0RFOwotCWVudHJ5Lm1hc2sgPSAwOwkJCQkJLyogdW5tYXNrIElSUSBub3cgKi8KKwllbnRyeS5tYXNrID0gMTsJCQkJCS8qIG1hc2sgSVJRIG5vdyAqLwogCWVudHJ5LmRlc3QgPSBjcHVfbWFza190b19hcGljaWQoVEFSR0VUX0NQVVMpOwogCWVudHJ5LmRlbGl2ZXJ5X21vZGUgPSBJTlRfREVMSVZFUllfTU9ERTsKIAllbnRyeS5wb2xhcml0eSA9IDA7CkBAIC05MzksNyArOTU0LDcgQEAKIAogCS8qCiAJICogVGhlIHRpbWVyIElSUSBkb2Vzbid0IGhhdmUgdG8ga25vdyB0aGF0IGJlaGluZCB0aGUKLQkgKiBzY2VuZSB3ZSBoYXZlIGEgODI1OUEtbWFzdGVyIGluIEFFT0kgbW9kZSAuLi4KKwkgKiBzY2VuZSB3ZSBtYXkgaGF2ZSBhIDgyNTlBLW1hc3RlciBpbiBBRU9JIG1vZGUgLi4uCiAJICovCiAJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoMCwgJmlvYXBpY19jaGlwLCBoYW5kbGVfZWRnZV9pcnEsICJlZGdlIik7CiAKQEAgLTk0Nyw4ICs5NjIsNiBAQAogCSAqIEFkZCBpdCB0byB0aGUgSU8tQVBJQyBpcnEtcm91dGluZyB0YWJsZToKIAkgKi8KIAlpb2FwaWNfd3JpdGVfZW50cnkoYXBpYywgcGluLCBlbnRyeSk7Ci0KLQllbmFibGVfODI1OUFfaXJxKDApOwogfQogCiB2b2lkIF9fYXBpY2RlYnVnaW5pdCBwcmludF9JT19BUElDKHZvaWQpCkBAIC05NjUsNyArOTc4LDcgQEAKIAlwcmludGsoS0VSTl9ERUJVRyAibnVtYmVyIG9mIE1QIElSUSBzb3VyY2VzOiAlZC5cbiIsIG1wX2lycV9lbnRyaWVzKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKQogCQlwcmludGsoS0VSTl9ERUJVRyAibnVtYmVyIG9mIElPLUFQSUMgIyVkIHJlZ2lzdGVyczogJWQuXG4iLAotCQkgICAgICAgbXBfaW9hcGljc1tpXS5tcGNfYXBpY2lkLCBucl9pb2FwaWNfcmVnaXN0ZXJzW2ldKTsKKwkJICAgICAgIG1wX2lvYXBpY3NbaV0ubXBfYXBpY2lkLCBucl9pb2FwaWNfcmVnaXN0ZXJzW2ldKTsKIAogCS8qCiAJICogV2UgYXJlIGEgYml0IGNvbnNlcnZhdGl2ZSBhYm91dCB3aGF0IHdlIGV4cGVjdC4gIFdlIGhhdmUgdG8KQEAgLTk4Myw3ICs5OTYsNyBAQAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAKIAlwcmludGsoIlxuIik7Ci0JcHJpbnRrKEtFUk5fREVCVUcgIklPIEFQSUMgIyVkLi4uLi4uXG4iLCBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQpOworCXByaW50ayhLRVJOX0RFQlVHICJJTyBBUElDICMlZC4uLi4uLlxuIiwgbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpOwogCXByaW50ayhLRVJOX0RFQlVHICIuLi4uIHJlZ2lzdGVyICMwMDogJTA4WFxuIiwgcmVnXzAwLnJhdyk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIi4uLi4uLi4gICAgOiBwaHlzaWNhbCBBUElDIGlkOiAlMDJYXG4iLCByZWdfMDAuYml0cy5JRCk7CiAKQEAgLTEwNzcsNiArMTA5MCw3IEBACiAKIAlwcmludGsoIlxuIiBLRVJOX0RFQlVHICJwcmludGluZyBsb2NhbCBBUElDIGNvbnRlbnRzIG9uIENQVSMlZC8lZDpcbiIsCiAJCXNtcF9wcm9jZXNzb3JfaWQoKSwgaGFyZF9zbXBfcHJvY2Vzc29yX2lkKCkpOworCXYgPSBhcGljX3JlYWQoQVBJQ19JRCk7CiAJcHJpbnRrKEtFUk5fSU5GTyAiLi4uIEFQSUMgSUQ6ICAgICAgJTA4eCAoJTAxeClcbiIsIHYsIEdFVF9BUElDX0lEKHJlYWRfYXBpY19pZCgpKSk7CiAJdiA9IGFwaWNfcmVhZChBUElDX0xWUik7CiAJcHJpbnRrKEtFUk5fSU5GTyAiLi4uIEFQSUMgVkVSU0lPTjogJTA4eFxuIiwgdik7CkBAIC0xNTQwLDcgKzE1NTQsNyBAQAogCX0KIH0KIAotc3RhdGljIHZvaWQgZW5hYmxlX2xhcGljX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIHVubWFza19sYXBpY19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKIAl1bnNpZ25lZCBsb25nIHY7CiAKQEAgLTE1NDgsNyArMTU2Miw3IEBACiAJYXBpY193cml0ZShBUElDX0xWVDAsIHYgJiB+QVBJQ19MVlRfTUFTS0VEKTsKIH0KIAotc3RhdGljIHZvaWQgZGlzYWJsZV9sYXBpY19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBtYXNrX2xhcGljX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewogCXVuc2lnbmVkIGxvbmcgdjsKIApAQCAtMTU2MSwxOSArMTU3NSwyMCBAQAogCWFja19BUElDX2lycSgpOwogfQogCi1zdGF0aWMgdm9pZCBlbmRfbGFwaWNfaXJxICh1bnNpZ25lZCBpbnQgaSkgeyAvKiBub3RoaW5nICovIH0KLQotc3RhdGljIHN0cnVjdCBod19pbnRlcnJ1cHRfdHlwZSBsYXBpY19pcnFfdHlwZSBfX3JlYWRfbW9zdGx5ID0gewotCS5uYW1lID0gImxvY2FsLUFQSUMiLAotCS50eXBlbmFtZSA9ICJsb2NhbC1BUElDLWVkZ2UiLAotCS5zdGFydHVwID0gTlVMTCwgLyogc3RhcnR1cF9pcnEoKSBub3QgdXNlZCBmb3IgSVJRMCAqLwotCS5zaHV0ZG93biA9IE5VTEwsIC8qIHNodXRkb3duX2lycSgpIG5vdCB1c2VkIGZvciBJUlEwICovCi0JLmVuYWJsZSA9IGVuYWJsZV9sYXBpY19pcnEsCi0JLmRpc2FibGUgPSBkaXNhYmxlX2xhcGljX2lycSwKLQkuYWNrID0gYWNrX2xhcGljX2lycSwKLQkuZW5kID0gZW5kX2xhcGljX2lycSwKK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgbGFwaWNfY2hpcCBfX3JlYWRfbW9zdGx5ID0geworCS5uYW1lCQk9ICJsb2NhbC1BUElDIiwKKwkubWFzawkJPSBtYXNrX2xhcGljX2lycSwKKwkudW5tYXNrCQk9IHVubWFza19sYXBpY19pcnEsCisJLmFjawkJPSBhY2tfbGFwaWNfaXJxLAogfTsKIAorc3RhdGljIHZvaWQgbGFwaWNfcmVnaXN0ZXJfaW50cihpbnQgaXJxKQoreworCWlycV9kZXNjW2lycV0uc3RhdHVzICY9IH5JUlFfTEVWRUw7CisJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmbGFwaWNfY2hpcCwgaGFuZGxlX2VkZ2VfaXJxLAorCQkJCSAgICAgICJlZGdlIik7Cit9CisKIHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9ubWkodm9pZCkKIHsKIAkvKgpAQCAtMTY1OSw2ICsxNjc0LDcgQEAKIAlzdHJ1Y3QgaXJxX2NmZyAqY2ZnID0gaXJxX2NmZyArIDA7CiAJaW50IGFwaWMxLCBwaW4xLCBhcGljMiwgcGluMjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCBub19waW4xID0gMDsKIAogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIApAQCAtMTY2OSwxNiArMTY4NSwxMSBAQAogCWFzc2lnbl9pcnFfdmVjdG9yKDAsIFRBUkdFVF9DUFVTKTsKIAogCS8qCi0JICogU3VidGxlLCBjb2RlIGluIGRvX3RpbWVyX2ludGVycnVwdCgpIGV4cGVjdHMgYW4gQUVPSQotCSAqIG1vZGUgZm9yIHRoZSA4MjU5QSB3aGVuZXZlciBpbnRlcnJ1cHRzIGFyZSByb3V0ZWQKLQkgKiB0aHJvdWdoIEkvTyBBUElDcy4gIEFsc28gSVJRMCBoYXMgdG8gYmUgZW5hYmxlZCBpbgotCSAqIHRoZSA4MjU5QSB3aGljaCBpbXBsaWVzIHRoZSB2aXJ0dWFsIHdpcmUgaGFzIHRvIGJlCi0JICogZGlzYWJsZWQgaW4gdGhlIGxvY2FsIEFQSUMuCisJICogQXMgSVJRMCBpcyB0byBiZSBlbmFibGVkIGluIHRoZSA4MjU5QSwgdGhlIHZpcnR1YWwKKwkgKiB3aXJlIGhhcyB0byBiZSBkaXNhYmxlZCBpbiB0aGUgbG9jYWwgQVBJQy4KIAkgKi8KIAlhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19MVlRfTUFTS0VEIHwgQVBJQ19ETV9FWFRJTlQpOwogCWluaXRfODI1OUEoMSk7Ci0JaWYgKHRpbWVyX292ZXJfODI1NCA+IDApCi0JCWVuYWJsZV84MjU5QV9pcnEoMCk7CiAKIAlwaW4xICA9IGZpbmRfaXNhX2lycV9waW4oMCwgbXBfSU5UKTsKIAlhcGljMSA9IGZpbmRfaXNhX2lycV9hcGljKDAsIG1wX0lOVCk7CkBAIC0xNjg4LDE1ICsxNjk5LDMzIEBACiAJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLEtFUk5fSU5GTyAiLi5USU1FUjogdmVjdG9yPTB4JTAyWCBhcGljMT0lZCBwaW4xPSVkIGFwaWMyPSVkIHBpbjI9JWRcbiIsCiAJCWNmZy0+dmVjdG9yLCBhcGljMSwgcGluMSwgYXBpYzIsIHBpbjIpOwogCisJLyoKKwkgKiBTb21lIEJJT1Mgd3JpdGVycyBhcmUgY2x1ZWxlc3MgYW5kIHJlcG9ydCB0aGUgRXh0SU5UQQorCSAqIEkvTyBBUElDIGlucHV0IGZyb20gdGhlIGNhc2NhZGVkIDgyNTlBIGFzIHRoZSB0aW1lcgorCSAqIGludGVycnVwdCBpbnB1dC4gIFNvIGp1c3QgaW4gY2FzZSwgaWYgb25seSBvbmUgcGluCisJICogd2FzIGZvdW5kIGFib3ZlLCB0cnkgaXQgYm90aCBkaXJlY3RseSBhbmQgdGhyb3VnaCB0aGUKKwkgKiA4MjU5QS4KKwkgKi8KKwlpZiAocGluMSA9PSAtMSkgeworCQlwaW4xID0gcGluMjsKKwkJYXBpYzEgPSBhcGljMjsKKwkJbm9fcGluMSA9IDE7CisJfSBlbHNlIGlmIChwaW4yID09IC0xKSB7CisJCXBpbjIgPSBwaW4xOworCQlhcGljMiA9IGFwaWMxOworCX0KKwogCWlmIChwaW4xICE9IC0xKSB7CiAJCS8qCiAJCSAqIE9rLCBkb2VzIElSUTAgdGhyb3VnaCB0aGUgSU9BUElDIHdvcms/CiAJCSAqLworCQlpZiAobm9fcGluMSkgeworCQkJYWRkX3Bpbl90b19pcnEoMCwgYXBpYzEsIHBpbjEpOworCQkJc2V0dXBfdGltZXJfSVJRMF9waW4oYXBpYzEsIHBpbjEsIGNmZy0+dmVjdG9yKTsKKwkJfQogCQl1bm1hc2tfSU9fQVBJQ19pcnEoMCk7CiAJCWlmICghbm9fdGltZXJfY2hlY2sgJiYgdGltZXJfaXJxX3dvcmtzKCkpIHsKLQkJCW5taV93YXRjaGRvZ19kZWZhdWx0KCk7CiAJCQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKSB7Ci0JCQkJZGlzYWJsZV84MjU5QV9pcnEoMCk7CiAJCQkJc2V0dXBfbm1pKCk7CiAJCQkJZW5hYmxlXzgyNTlBX2lycSgwKTsKIAkJCX0KQEAgLTE3MDUsNDMgKzE3MzQsNDggQEAKIAkJCWdvdG8gb3V0OwogCQl9CiAJCWNsZWFyX0lPX0FQSUNfcGluKGFwaWMxLCBwaW4xKTsKLQkJYXBpY19wcmludGsoQVBJQ19RVUlFVCxLRVJOX0VSUiAiLi5NUC1CSU9TIGJ1ZzogODI1NCB0aW1lciBub3QgIgotCQkJCSJjb25uZWN0ZWQgdG8gSU8tQVBJQ1xuIik7Ci0JfQorCQlpZiAoIW5vX3BpbjEpCisJCQlhcGljX3ByaW50ayhBUElDX1FVSUVULEtFUk5fRVJSICIuLk1QLUJJT1MgYnVnOiAiCisJCQkJICAgICI4MjU0IHRpbWVyIG5vdCBjb25uZWN0ZWQgdG8gSU8tQVBJQ1xuIik7CiAKLQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsS0VSTl9JTkZPICIuLi50cnlpbmcgdG8gc2V0IHVwIHRpbWVyIChJUlEwKSAiCi0JCQkJInRocm91Z2ggdGhlIDgyNTlBIC4uLiAiKTsKLQlpZiAocGluMiAhPSAtMSkgeworCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsS0VSTl9JTkZPCisJCQkiLi4udHJ5aW5nIHRvIHNldCB1cCB0aW1lciAoSVJRMCkgIgorCQkJInRocm91Z2ggdGhlIDgyNTlBIC4uLiAiKTsKIAkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCJcbi4uLi4uIChmb3VuZCBhcGljICVkIHBpbiAlZCkgLi4uIiwKIAkJCWFwaWMyLCBwaW4yKTsKIAkJLyoKIAkJICogbGVnYWN5IGRldmljZXMgc2hvdWxkIGJlIGNvbm5lY3RlZCB0byBJTyBBUElDICMwCiAJCSAqLwotCQlzZXR1cF9FeHRJTlRfSVJRMF9waW4oYXBpYzIsIHBpbjIsIGNmZy0+dmVjdG9yKTsKKwkJcmVwbGFjZV9waW5fYXRfaXJxKDAsIGFwaWMxLCBwaW4xLCBhcGljMiwgcGluMik7CisJCXNldHVwX3RpbWVyX0lSUTBfcGluKGFwaWMyLCBwaW4yLCBjZmctPnZlY3Rvcik7CisJCXVubWFza19JT19BUElDX2lycSgwKTsKKwkJZW5hYmxlXzgyNTlBX2lycSgwKTsKIAkJaWYgKHRpbWVyX2lycV93b3JrcygpKSB7CiAJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIiB3b3Jrcy5cbiIpOwotCQkJbm1pX3dhdGNoZG9nX2RlZmF1bHQoKTsKKwkJCXRpbWVyX3Rocm91Z2hfODI1OSA9IDE7CiAJCQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKSB7CisJCQkJZGlzYWJsZV84MjU5QV9pcnEoMCk7CiAJCQkJc2V0dXBfbm1pKCk7CisJCQkJZW5hYmxlXzgyNTlBX2lycSgwKTsKIAkJCX0KIAkJCWdvdG8gb3V0OwogCQl9CiAJCS8qCiAJCSAqIENsZWFudXAsIGp1c3QgaW4gY2FzZSAuLi4KIAkJICovCisJCWRpc2FibGVfODI1OUFfaXJxKDApOwogCQljbGVhcl9JT19BUElDX3BpbihhcGljMiwgcGluMik7CisJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwiIGZhaWxlZC5cbiIpOwogCX0KLQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIiBmYWlsZWQuXG4iKTsKIAogCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAidGltZXIgZG9lc24ndCB3b3JrIHRocm91Z2ggdGhlIElPLUFQSUMgLSBkaXNhYmxpbmcgTk1JIFdhdGNoZG9nIVxuIik7Ci0JCW5taV93YXRjaGRvZyA9IDA7CisJCW5taV93YXRjaGRvZyA9IE5NSV9OT05FOwogCX0KIAogCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgS0VSTl9JTkZPICIuLi50cnlpbmcgdG8gc2V0IHVwIHRpbWVyIGFzIFZpcnR1YWwgV2lyZSBJUlEuLi4iKTsKIAotCWRpc2FibGVfODI1OUFfaXJxKDApOwotCWlycV9kZXNjWzBdLmNoaXAgPSAmbGFwaWNfaXJxX3R5cGU7CisJbGFwaWNfcmVnaXN0ZXJfaW50cigwKTsKIAlhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19ETV9GSVhFRCB8IGNmZy0+dmVjdG9yKTsJLyogRml4ZWQgbW9kZSAqLwogCWVuYWJsZV84MjU5QV9pcnEoMCk7CiAKQEAgLTE3NDksNiArMTc4Myw3IEBACiAJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwiIHdvcmtzLlxuIik7CiAJCWdvdG8gb3V0OwogCX0KKwlkaXNhYmxlXzgyNTlBX2lycSgwKTsKIAlhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19MVlRfTUFTS0VEIHwgQVBJQ19ETV9GSVhFRCB8IGNmZy0+dmVjdG9yKTsKIAlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIiBmYWlsZWQuXG4iKTsKIApAQCAtMTc3OCwxMSArMTgxMywyMSBAQAogX19zZXR1cCgibm9fdGltZXJfY2hlY2siLCBub3RpbWVyY2hlY2spOwogCiAvKgotICoKLSAqIElSUXMgdGhhdCBhcmUgaGFuZGxlZCBieSB0aGUgUElDIGluIHRoZSBNUFMgSU9BUElDIGNhc2UuCi0gKiAtIElSUTIgaXMgdGhlIGNhc2NhZGUgSVJRLCBhbmQgY2Fubm90IGJlIGEgaW8tYXBpYyBJUlEuCi0gKiAgIExpbnV4IGRvZXNuJ3QgcmVhbGx5IGNhcmUsIGFzIGl0J3Mgbm90IGFjdHVhbGx5IHVzZWQKLSAqICAgZm9yIGFueSBpbnRlcnJ1cHQgaGFuZGxpbmcgYW55d2F5LgorICogVHJhZGl0aW9uYWxseSBJU0EgSVJRMiBpcyB0aGUgY2FzY2FkZSBJUlEsIGFuZCBpcyBub3QgYXZhaWxhYmxlCisgKiB0byBkZXZpY2VzLiAgSG93ZXZlciB0aGVyZSBtYXkgYmUgYW4gSS9PIEFQSUMgcGluIGF2YWlsYWJsZSBmb3IKKyAqIHRoaXMgaW50ZXJydXB0IHJlZ2FyZGxlc3MuICBUaGUgcGluIG1heSBiZSBsZWZ0IHVuY29ubmVjdGVkLCBidXQKKyAqIHR5cGljYWxseSBpdCB3aWxsIGJlIHJldXNlZCBhcyBhbiBFeHRJTlQgY2FzY2FkZSBpbnRlcnJ1cHQgZm9yCisgKiB0aGUgbWFzdGVyIDgyNTlBLiAgSW4gdGhlIE1QUyBjYXNlIHN1Y2ggYSBwaW4gd2lsbCBub3JtYWxseSBiZQorICogcmVwb3J0ZWQgYXMgYW4gRXh0SU5UIGludGVycnVwdCBpbiB0aGUgTVAgdGFibGUuICBXaXRoIEFDUEkKKyAqIHRoZXJlIGlzIG5vIHByb3Zpc2lvbiBmb3IgRXh0SU5UIGludGVycnVwdHMsIGFuZCBpbiB0aGUgYWJzZW5jZQorICogb2YgYW4gb3ZlcnJpZGUgaXQgd291bGQgYmUgdHJlYXRlZCBhcyBhbiBvcmRpbmFyeSBJU0EgSS9PIEFQSUMKKyAqIGludGVycnVwdCwgdGhhdCBpcyBlZGdlLXRyaWdnZXJlZCBhbmQgdW5tYXNrZWQgYnkgZGVmYXVsdC4gIFdlCisgKiB1c2VkIHRvIGRvIHRoaXMsIGJ1dCBpdCBjYXVzZWQgcHJvYmxlbXMgb24gc29tZSBzeXN0ZW1zIGJlY2F1c2UKKyAqIG9mIHRoZSBOTUkgd2F0Y2hkb2cgYW5kIHNvbWV0aW1lcyBJUlEwIG9mIHRoZSA4MjU0IHRpbWVyIHVzaW5nCisgKiB0aGUgc2FtZSBFeHRJTlQgY2FzY2FkZSBpbnRlcnJ1cHQgdG8gZHJpdmUgdGhlIGxvY2FsIEFQSUMgb2YgdGhlCisgKiBib290c3RyYXAgcHJvY2Vzc29yLiAgVGhlcmVmb3JlIHdlIHJlZnJhaW4gZnJvbSByb3V0aW5nIElSUTIgdG8KKyAqIHRoZSBJL08gQVBJQyBpbiBhbGwgY2FzZXMgbm93LiAgTm8gYWN0dWFsIGRldmljZSBzaG91bGQgcmVxdWVzdAorICogaXQgYW55d2F5LiAgLS1tYWNybwogICovCiAjZGVmaW5lIFBJQ19JUlFTCSgxPDwyKQogCkBAIC0xNzkzLDEwICsxODM4LDcgQEAKIAkgKiBjYWxsaW5nIGVuYWJsZV9JT19BUElDKCkgaXMgbW92ZWQgdG8gc2V0dXBfbG9jYWxfQVBJQyBmb3IgQlAKIAkgKi8KIAotCWlmIChhY3BpX2lvYXBpYykKLQkJaW9fYXBpY19pcnFzID0gfjA7CS8qIGFsbCBJUlFzIGdvIHRocm91Z2ggSU9BUElDICovCi0JZWxzZQotCQlpb19hcGljX2lycXMgPSB+UElDX0lSUVM7CisJaW9fYXBpY19pcnFzID0gflBJQ19JUlFTOwogCiAJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCAiRU5BQkxJTkcgSU8tQVBJQyBJUlFzXG4iKTsKIApAQCAtMTg0MSw4ICsxODgzLDggQEAKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwogCXJlZ18wMC5yYXcgPSBpb19hcGljX3JlYWQoZGV2LT5pZCwgMCk7Ci0JaWYgKHJlZ18wMC5iaXRzLklEICE9IG1wX2lvYXBpY3NbZGV2LT5pZF0ubXBjX2FwaWNpZCkgewotCQlyZWdfMDAuYml0cy5JRCA9IG1wX2lvYXBpY3NbZGV2LT5pZF0ubXBjX2FwaWNpZDsKKwlpZiAocmVnXzAwLmJpdHMuSUQgIT0gbXBfaW9hcGljc1tkZXYtPmlkXS5tcF9hcGljaWQpIHsKKwkJcmVnXzAwLmJpdHMuSUQgPSBtcF9pb2FwaWNzW2Rldi0+aWRdLm1wX2FwaWNpZDsKIAkJaW9fYXBpY193cml0ZShkZXYtPmlkLCAwLCByZWdfMDAucmF3KTsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKQEAgLTIyNDIsOCArMjI4NCw4IEBACiAJCXJldHVybiAtMTsKIAogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKQotCQlpZiAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSBtcF9JTlQgJiYKLQkJICAgIG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA9PSBidXNfaXJxKQorCQlpZiAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IG1wX0lOVCAmJgorCQkgICAgbXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPT0gYnVzX2lycSkKIAkJCWJyZWFrOwogCWlmIChpID49IG1wX2lycV9lbnRyaWVzKQogCQlyZXR1cm4gLTE7CkBAIC0yMzM2LDcgKzIzNzgsNyBAQAogCWlvYXBpY19yZXMgPSBpb2FwaWNfc2V0dXBfcmVzb3VyY2VzKCk7CiAJZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkrKykgewogCQlpZiAoc21wX2ZvdW5kX2NvbmZpZykgewotCQkJaW9hcGljX3BoeXMgPSBtcF9pb2FwaWNzW2ldLm1wY19hcGljYWRkcjsKKwkJCWlvYXBpY19waHlzID0gbXBfaW9hcGljc1tpXS5tcF9hcGljYWRkcjsKIAkJfSBlbHNlIHsKIAkJCWlvYXBpY19waHlzID0gKHVuc2lnbmVkIGxvbmcpCiAJCQkJYWxsb2NfYm9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lwaS5jIGIvYXJjaC94ODYva2VybmVsL2lwaS5jCmluZGV4IGMwZGY3YjguLjlkOThjZGEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9pcGkuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaXBpLmMKQEAgLTgsNyArOCw2IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KICNpbmNsdWRlIDxsaW51eC9tYzE0NjgxOHJ0Yy5oPgogI2luY2x1ZGUgPGxpbnV4L2NhY2hlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvY3B1Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pcnFfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfMzIuYwppbmRleCAxNDczNTJkLi40N2E2ZjZmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaXJxXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2lycV8zMi5jCkBAIC00OCw2ICs0OCwyOSBAQAogI2VuZGlmCiB9CiAKKyNpZmRlZiBDT05GSUdfREVCVUdfU1RBQ0tPVkVSRkxPVworLyogRGVidWdnaW5nIGNoZWNrIGZvciBzdGFjayBvdmVyZmxvdzogaXMgdGhlcmUgbGVzcyB0aGFuIDFLQiBmcmVlPyAqLworc3RhdGljIGludCBjaGVja19zdGFja19vdmVyZmxvdyh2b2lkKQoreworCWxvbmcgc3A7CisKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXygiYW5kbCAlJWVzcCwlMCIgOgorCQkJICAgICAiPXIiIChzcCkgOiAiMCIgKFRIUkVBRF9TSVpFIC0gMSkpOworCisJcmV0dXJuIHNwIDwgKHNpemVvZihzdHJ1Y3QgdGhyZWFkX2luZm8pICsgU1RBQ0tfV0FSTik7Cit9CisKK3N0YXRpYyB2b2lkIHByaW50X3N0YWNrX292ZXJmbG93KHZvaWQpCit7CisJcHJpbnRrKEtFUk5fV0FSTklORyAibG93IHN0YWNrIGRldGVjdGVkIGJ5IGlycSBoYW5kbGVyXG4iKTsKKwlkdW1wX3N0YWNrKCk7Cit9CisKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBjaGVja19zdGFja19vdmVyZmxvdyh2b2lkKSB7IHJldHVybiAwOyB9CitzdGF0aWMgaW5saW5lIHZvaWQgcHJpbnRfc3RhY2tfb3ZlcmZsb3codm9pZCkgeyB9CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR180S1NUQUNLUwogLyoKICAqIHBlci1DUFUgSVJRIGhhbmRsaW5nIGNvbnRleHRzICh0aHJlYWQgaW5mb3JtYXRpb24gYW5kIHN0YWNrKQpAQCAtNTksNDggKzgyLDI5IEBACiAKIHN0YXRpYyB1bmlvbiBpcnFfY3R4ICpoYXJkaXJxX2N0eFtOUl9DUFVTXSBfX3JlYWRfbW9zdGx5Owogc3RhdGljIHVuaW9uIGlycV9jdHggKnNvZnRpcnFfY3R4W05SX0NQVVNdIF9fcmVhZF9tb3N0bHk7Ci0jZW5kaWYKIAotLyoKLSAqIGRvX0lSUSBoYW5kbGVzIGFsbCBub3JtYWwgZGV2aWNlIElSUSdzICh0aGUgc3BlY2lhbAotICogU01QIGNyb3NzLUNQVSBpbnRlcnJ1cHRzIGhhdmUgdGhlaXIgb3duIHNwZWNpZmljCi0gKiBoYW5kbGVycykuCi0gKi8KLXVuc2lnbmVkIGludCBkb19JUlEoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCi17CQotCXN0cnVjdCBwdF9yZWdzICpvbGRfcmVnczsKLQkvKiBoaWdoIGJpdCB1c2VkIGluIHJldF9mcm9tXyBjb2RlICovCi0JaW50IGlycSA9IH5yZWdzLT5vcmlnX2F4OwotCXN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV9kZXNjICsgaXJxOwotI2lmZGVmIENPTkZJR180S1NUQUNLUworc3RhdGljIGNoYXIgc29mdGlycV9zdGFja1tOUl9DUFVTICogVEhSRUFEX1NJWkVdCisJCV9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7CisKK3N0YXRpYyBjaGFyIGhhcmRpcnFfc3RhY2tbTlJfQ1BVUyAqIFRIUkVBRF9TSVpFXQorCQlfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmJzcy5wYWdlX2FsaWduZWQiKSkpOworCitzdGF0aWMgdm9pZCBjYWxsX29uX3N0YWNrKHZvaWQgKmZ1bmMsIHZvaWQgKnN0YWNrKQoreworCWFzbSB2b2xhdGlsZSgieGNoZ2wJJSVlYngsJSVlc3AJXG4iCisJCSAgICAgImNhbGwJKiUlZWRpCQlcbiIKKwkJICAgICAibW92bAklJWVieCwlJWVzcAlcbiIKKwkJICAgICA6ICI9YiIgKHN0YWNrKQorCQkgICAgIDogIjAiIChzdGFjayksCisJCSAgICAgICAiRCIoZnVuYykKKwkJICAgICA6ICJtZW1vcnkiLCAiY2MiLCAiZWR4IiwgImVjeCIsICJlYXgiKTsKK30KKworc3RhdGljIGlubGluZSBpbnQKK2V4ZWN1dGVfb25faXJxX3N0YWNrKGludCBvdmVyZmxvdywgc3RydWN0IGlycV9kZXNjICpkZXNjLCBpbnQgaXJxKQorewogCXVuaW9uIGlycV9jdHggKmN1cmN0eCwgKmlycWN0eDsKLQl1MzIgKmlzcDsKLSNlbmRpZgotCi0JaWYgKHVubGlrZWx5KCh1bnNpZ25lZClpcnEgPj0gTlJfSVJRUykpIHsKLQkJcHJpbnRrKEtFUk5fRU1FUkcgIiVzOiBjYW5ub3QgaGFuZGxlIElSUSAlZFxuIiwKLQkJCQkJX19mdW5jX18sIGlycSk7Ci0JCUJVRygpOwotCX0KLQotCW9sZF9yZWdzID0gc2V0X2lycV9yZWdzKHJlZ3MpOwotCWlycV9lbnRlcigpOwotI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS09WRVJGTE9XCi0JLyogRGVidWdnaW5nIGNoZWNrIGZvciBzdGFjayBvdmVyZmxvdzogaXMgdGhlcmUgbGVzcyB0aGFuIDFLQiBmcmVlPyAqLwotCXsKLQkJbG9uZyBzcDsKLQotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiYW5kbCAlJWVzcCwlMCIgOgotCQkJCQkiPXIiIChzcCkgOiAiMCIgKFRIUkVBRF9TSVpFIC0gMSkpOwotCQlpZiAodW5saWtlbHkoc3AgPCAoc2l6ZW9mKHN0cnVjdCB0aHJlYWRfaW5mbykgKyBTVEFDS19XQVJOKSkpIHsKLQkJCXByaW50aygiZG9fSVJROiBzdGFjayBvdmVyZmxvdzogJWxkXG4iLAotCQkJCXNwIC0gc2l6ZW9mKHN0cnVjdCB0aHJlYWRfaW5mbykpOwotCQkJZHVtcF9zdGFjaygpOwotCQl9Ci0JfQotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfNEtTVEFDS1MKKwl1MzIgKmlzcCwgYXJnMSwgYXJnMjsKIAogCWN1cmN0eCA9ICh1bmlvbiBpcnFfY3R4ICopIGN1cnJlbnRfdGhyZWFkX2luZm8oKTsKIAlpcnFjdHggPSBoYXJkaXJxX2N0eFtzbXBfcHJvY2Vzc29yX2lkKCldOwpAQCAtMTExLDUyICsxMTUsMzkgQEAKIAkgKiBoYW5kbGVyKSB3ZSBjYW4ndCBkbyB0aGF0IGFuZCBqdXN0IGhhdmUgdG8ga2VlcCB1c2luZyB0aGUKIAkgKiBjdXJyZW50IHN0YWNrICh3aGljaCBpcyB0aGUgaXJxIHN0YWNrIGFscmVhZHkgYWZ0ZXIgYWxsKQogCSAqLwotCWlmIChjdXJjdHggIT0gaXJxY3R4KSB7Ci0JCWludCBhcmcxLCBhcmcyLCBieDsKKwlpZiAodW5saWtlbHkoY3VyY3R4ID09IGlycWN0eCkpCisJCXJldHVybiAwOwogCi0JCS8qIGJ1aWxkIHRoZSBzdGFjayBmcmFtZSBvbiB0aGUgSVJRIHN0YWNrICovCi0JCWlzcCA9ICh1MzIqKSAoKGNoYXIqKWlycWN0eCArIHNpemVvZigqaXJxY3R4KSk7Ci0JCWlycWN0eC0+dGluZm8udGFzayA9IGN1cmN0eC0+dGluZm8udGFzazsKLQkJaXJxY3R4LT50aW5mby5wcmV2aW91c19lc3AgPSBjdXJyZW50X3N0YWNrX3BvaW50ZXI7CisJLyogYnVpbGQgdGhlIHN0YWNrIGZyYW1lIG9uIHRoZSBJUlEgc3RhY2sgKi8KKwlpc3AgPSAodTMyICopICgoY2hhciopaXJxY3R4ICsgc2l6ZW9mKCppcnFjdHgpKTsKKwlpcnFjdHgtPnRpbmZvLnRhc2sgPSBjdXJjdHgtPnRpbmZvLnRhc2s7CisJaXJxY3R4LT50aW5mby5wcmV2aW91c19lc3AgPSBjdXJyZW50X3N0YWNrX3BvaW50ZXI7CiAKLQkJLyoKLQkJICogQ29weSB0aGUgc29mdGlycSBiaXRzIGluIHByZWVtcHRfY291bnQgc28gdGhhdCB0aGUKLQkJICogc29mdGlycSBjaGVja3Mgd29yayBpbiB0aGUgaGFyZGlycSBjb250ZXh0LgotCQkgKi8KLQkJaXJxY3R4LT50aW5mby5wcmVlbXB0X2NvdW50ID0KLQkJCShpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgJiB+U09GVElSUV9NQVNLKSB8Ci0JCQkoY3VyY3R4LT50aW5mby5wcmVlbXB0X2NvdW50ICYgU09GVElSUV9NQVNLKTsKKwkvKgorCSAqIENvcHkgdGhlIHNvZnRpcnEgYml0cyBpbiBwcmVlbXB0X2NvdW50IHNvIHRoYXQgdGhlCisJICogc29mdGlycSBjaGVja3Mgd29yayBpbiB0aGUgaGFyZGlycSBjb250ZXh0LgorCSAqLworCWlycWN0eC0+dGluZm8ucHJlZW1wdF9jb3VudCA9CisJCShpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgJiB+U09GVElSUV9NQVNLKSB8CisJCShjdXJjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgJiBTT0ZUSVJRX01BU0spOwogCi0JCWFzbSB2b2xhdGlsZSgKLQkJCSIgICAgICAgeGNoZ2wgICUlZWJ4LCUlZXNwICAgIFxuIgotCQkJIiAgICAgICBjYWxsICAgKiUlZWRpICAgICAgICAgXG4iCi0JCQkiICAgICAgIG1vdmwgICAlJWVieCwlJWVzcCAgICBcbiIKLQkJCTogIj1hIiAoYXJnMSksICI9ZCIgKGFyZzIpLCAiPWIiIChieCkKLQkJCTogICIwIiAoaXJxKSwgICAiMSIgKGRlc2MpLCAgIjIiIChpc3ApLAotCQkJICAgIkQiIChkZXNjLT5oYW5kbGVfaXJxKQotCQkJOiAibWVtb3J5IiwgImNjIiwgImVjeCIKLQkJKTsKLQl9IGVsc2UKLSNlbmRpZgotCQlkZXNjLT5oYW5kbGVfaXJxKGlycSwgZGVzYyk7CisJaWYgKHVubGlrZWx5KG92ZXJmbG93KSkKKwkJY2FsbF9vbl9zdGFjayhwcmludF9zdGFja19vdmVyZmxvdywgaXNwKTsKIAotCWlycV9leGl0KCk7Ci0Jc2V0X2lycV9yZWdzKG9sZF9yZWdzKTsKKwlhc20gdm9sYXRpbGUoInhjaGdsCSUlZWJ4LCUlZXNwCVxuIgorCQkgICAgICJjYWxsCSolJWVkaQkJXG4iCisJCSAgICAgIm1vdmwJJSVlYngsJSVlc3AJXG4iCisJCSAgICAgOiAiPWEiIChhcmcxKSwgIj1kIiAoYXJnMiksICI9YiIgKGlzcCkKKwkJICAgICA6ICAiMCIgKGlycSksICAgIjEiIChkZXNjKSwgICIyIiAoaXNwKSwKKwkJCSJEIiAoZGVzYy0+aGFuZGxlX2lycSkKKwkJICAgICA6ICJtZW1vcnkiLCAiY2MiLCAiZWN4Iik7CiAJcmV0dXJuIDE7CiB9CiAKLSNpZmRlZiBDT05GSUdfNEtTVEFDS1MKLQotc3RhdGljIGNoYXIgc29mdGlycV9zdGFja1tOUl9DUFVTICogVEhSRUFEX1NJWkVdCi0JCV9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7Ci0KLXN0YXRpYyBjaGFyIGhhcmRpcnFfc3RhY2tbTlJfQ1BVUyAqIFRIUkVBRF9TSVpFXQotCQlfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmJzcy5wYWdlX2FsaWduZWQiKSkpOwotCiAvKgogICogYWxsb2NhdGUgcGVyLWNwdSBzdGFja3MgZm9yIGhhcmRpcnEgYW5kIGZvciBzb2Z0aXJxIHByb2Nlc3NpbmcKICAqLwotdm9pZCBpcnFfY3R4X2luaXQoaW50IGNwdSkKK3ZvaWQgX19jcHVpbml0IGlycV9jdHhfaW5pdChpbnQgY3B1KQogewogCXVuaW9uIGlycV9jdHggKmlycWN0eDsKIApAQCAtMTY0LDI1ICsxNTUsMjUgQEAKIAkJcmV0dXJuOwogCiAJaXJxY3R4ID0gKHVuaW9uIGlycV9jdHgqKSAmaGFyZGlycV9zdGFja1tjcHUqVEhSRUFEX1NJWkVdOwotCWlycWN0eC0+dGluZm8udGFzayAgICAgICAgICAgICAgPSBOVUxMOwotCWlycWN0eC0+dGluZm8uZXhlY19kb21haW4gICAgICAgPSBOVUxMOwotCWlycWN0eC0+dGluZm8uY3B1ICAgICAgICAgICAgICAgPSBjcHU7Ci0JaXJxY3R4LT50aW5mby5wcmVlbXB0X2NvdW50ICAgICA9IEhBUkRJUlFfT0ZGU0VUOwotCWlycWN0eC0+dGluZm8uYWRkcl9saW1pdCAgICAgICAgPSBNQUtFX01NX1NFRygwKTsKKwlpcnFjdHgtPnRpbmZvLnRhc2sJCT0gTlVMTDsKKwlpcnFjdHgtPnRpbmZvLmV4ZWNfZG9tYWluCT0gTlVMTDsKKwlpcnFjdHgtPnRpbmZvLmNwdQkJPSBjcHU7CisJaXJxY3R4LT50aW5mby5wcmVlbXB0X2NvdW50CT0gSEFSRElSUV9PRkZTRVQ7CisJaXJxY3R4LT50aW5mby5hZGRyX2xpbWl0CT0gTUFLRV9NTV9TRUcoMCk7CiAKIAloYXJkaXJxX2N0eFtjcHVdID0gaXJxY3R4OwogCiAJaXJxY3R4ID0gKHVuaW9uIGlycV9jdHgqKSAmc29mdGlycV9zdGFja1tjcHUqVEhSRUFEX1NJWkVdOwotCWlycWN0eC0+dGluZm8udGFzayAgICAgICAgICAgICAgPSBOVUxMOwotCWlycWN0eC0+dGluZm8uZXhlY19kb21haW4gICAgICAgPSBOVUxMOwotCWlycWN0eC0+dGluZm8uY3B1ICAgICAgICAgICAgICAgPSBjcHU7Ci0JaXJxY3R4LT50aW5mby5wcmVlbXB0X2NvdW50ICAgICA9IDA7Ci0JaXJxY3R4LT50aW5mby5hZGRyX2xpbWl0ICAgICAgICA9IE1BS0VfTU1fU0VHKDApOworCWlycWN0eC0+dGluZm8udGFzawkJPSBOVUxMOworCWlycWN0eC0+dGluZm8uZXhlY19kb21haW4JPSBOVUxMOworCWlycWN0eC0+dGluZm8uY3B1CQk9IGNwdTsKKwlpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQJPSAwOworCWlycWN0eC0+dGluZm8uYWRkcl9saW1pdAk9IE1BS0VfTU1fU0VHKDApOwogCiAJc29mdGlycV9jdHhbY3B1XSA9IGlycWN0eDsKIAotCXByaW50aygiQ1BVICV1IGlycXN0YWNrcywgaGFyZD0lcCBzb2Z0PSVwXG4iLAotCQljcHUsaGFyZGlycV9jdHhbY3B1XSxzb2Z0aXJxX2N0eFtjcHVdKTsKKwlwcmludGsoS0VSTl9ERUJVRyAiQ1BVICV1IGlycXN0YWNrcywgaGFyZD0lcCBzb2Z0PSVwXG4iLAorCSAgICAgICBjcHUsaGFyZGlycV9jdHhbY3B1XSxzb2Z0aXJxX2N0eFtjcHVdKTsKIH0KIAogdm9pZCBpcnFfY3R4X2V4aXQoaW50IGNwdSkKQEAgLTIxMSwyNSArMjAyLDU2IEBACiAJCS8qIGJ1aWxkIHRoZSBzdGFjayBmcmFtZSBvbiB0aGUgc29mdGlycSBzdGFjayAqLwogCQlpc3AgPSAodTMyKikgKChjaGFyKilpcnFjdHggKyBzaXplb2YoKmlycWN0eCkpOwogCi0JCWFzbSB2b2xhdGlsZSgKLQkJCSIgICAgICAgeGNoZ2wgICAlJWVieCwlJWVzcCAgICAgXG4iCi0JCQkiICAgICAgIGNhbGwgICAgX19kb19zb2Z0aXJxICAgIFxuIgotCQkJIiAgICAgICBtb3ZsICAgICUlZWJ4LCUlZXNwICAgICBcbiIKLQkJCTogIj1iIihpc3ApCi0JCQk6ICIwIihpc3ApCi0JCQk6ICJtZW1vcnkiLCAiY2MiLCAiZWR4IiwgImVjeCIsICJlYXgiCi0JCSk7CisJCWNhbGxfb25fc3RhY2soX19kb19zb2Z0aXJxLCBpc3ApOwogCQkvKgogCQkgKiBTaG91bGRudCBoYXBwZW4sIHdlIHJldHVybmVkIGFib3ZlIGlmIGluX2ludGVycnVwdCgpOgotCSAJICovCisJCSAqLwogCQlXQVJOX09OX09OQ0Uoc29mdGlycV9jb3VudCgpKTsKIAl9CiAKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CisKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludAorZXhlY3V0ZV9vbl9pcnFfc3RhY2soaW50IG92ZXJmbG93LCBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIGludCBpcnEpIHsgcmV0dXJuIDA7IH0KICNlbmRpZgogCiAvKgorICogZG9fSVJRIGhhbmRsZXMgYWxsIG5vcm1hbCBkZXZpY2UgSVJRJ3MgKHRoZSBzcGVjaWFsCisgKiBTTVAgY3Jvc3MtQ1BVIGludGVycnVwdHMgaGF2ZSB0aGVpciBvd24gc3BlY2lmaWMKKyAqIGhhbmRsZXJzKS4KKyAqLwordW5zaWduZWQgaW50IGRvX0lSUShzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlzdHJ1Y3QgcHRfcmVncyAqb2xkX3JlZ3M7CisJLyogaGlnaCBiaXQgdXNlZCBpbiByZXRfZnJvbV8gY29kZSAqLworCWludCBvdmVyZmxvdywgaXJxID0gfnJlZ3MtPm9yaWdfYXg7CisJc3RydWN0IGlycV9kZXNjICpkZXNjID0gaXJxX2Rlc2MgKyBpcnE7CisKKwlpZiAodW5saWtlbHkoKHVuc2lnbmVkKWlycSA+PSBOUl9JUlFTKSkgeworCQlwcmludGsoS0VSTl9FTUVSRyAiJXM6IGNhbm5vdCBoYW5kbGUgSVJRICVkXG4iLAorCQkJCQlfX2Z1bmNfXywgaXJxKTsKKwkJQlVHKCk7CisJfQorCisJb2xkX3JlZ3MgPSBzZXRfaXJxX3JlZ3MocmVncyk7CisJaXJxX2VudGVyKCk7CisKKwlvdmVyZmxvdyA9IGNoZWNrX3N0YWNrX292ZXJmbG93KCk7CisKKwlpZiAoIWV4ZWN1dGVfb25faXJxX3N0YWNrKG92ZXJmbG93LCBkZXNjLCBpcnEpKSB7CisJCWlmICh1bmxpa2VseShvdmVyZmxvdykpCisJCQlwcmludF9zdGFja19vdmVyZmxvdygpOworCQlkZXNjLT5oYW5kbGVfaXJxKGlycSwgZGVzYyk7CisJfQorCisJaXJxX2V4aXQoKTsKKwlzZXRfaXJxX3JlZ3Mob2xkX3JlZ3MpOworCXJldHVybiAxOworfQorCisvKgogICogSW50ZXJydXB0IHN0YXRpc3RpY3M6CiAgKi8KIApAQCAtMzEzLDE2ICszMzUsMjAgQEAKIAkJCQlwZXJfY3B1KGlycV9zdGF0LGopLmlycV90bGJfY291bnQpOwogCQlzZXFfcHJpbnRmKHAsICIgIFRMQiBzaG9vdGRvd25zXG4iKTsKICNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfTUNFCiAJCXNlcV9wcmludGYocCwgIlRSTTogIik7CiAJCWZvcl9lYWNoX29ubGluZV9jcHUoaikKIAkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwKIAkJCQlwZXJfY3B1KGlycV9zdGF0LGopLmlycV90aGVybWFsX2NvdW50KTsKIAkJc2VxX3ByaW50ZihwLCAiICBUaGVybWFsIGV2ZW50IGludGVycnVwdHNcbiIpOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCiAJCXNlcV9wcmludGYocCwgIlNQVTogIik7CiAJCWZvcl9lYWNoX29ubGluZV9jcHUoaikKIAkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwKIAkJCQlwZXJfY3B1KGlycV9zdGF0LGopLmlycV9zcHVyaW91c19jb3VudCk7CiAJCXNlcV9wcmludGYocCwgIiAgU3B1cmlvdXMgaW50ZXJydXB0c1xuIik7CisjZW5kaWYKIAkJc2VxX3ByaW50ZihwLCAiRVJSOiAlMTB1XG4iLCBhdG9taWNfcmVhZCgmaXJxX2Vycl9jb3VudCkpOwogI2lmIGRlZmluZWQoQ09ORklHX1g4Nl9JT19BUElDKQogCQlzZXFfcHJpbnRmKHAsICJNSVM6ICUxMHVcbiIsIGF0b21pY19yZWFkKCZpcnFfbWlzX2NvdW50KSk7CkBAIC0zMzEsNiArMzU3LDQwIEBACiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiAvcHJvYy9zdGF0IGhlbHBlcnMKKyAqLwordTY0IGFyY2hfaXJxX3N0YXRfY3B1KHVuc2lnbmVkIGludCBjcHUpCit7CisJdTY0IHN1bSA9IG5taV9jb3VudChjcHUpOworCisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuYXBpY190aW1lcl9pcnFzOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1NNUAorCXN1bSArPSBwZXJfY3B1KGlycV9zdGF0LCBjcHUpLmlycV9yZXNjaGVkX2NvdW50OworCXN1bSArPSBwZXJfY3B1KGlycV9zdGF0LCBjcHUpLmlycV9jYWxsX2NvdW50OworCXN1bSArPSBwZXJfY3B1KGlycV9zdGF0LCBjcHUpLmlycV90bGJfY291bnQ7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X01DRQorCXN1bSArPSBwZXJfY3B1KGlycV9zdGF0LCBjcHUpLmlycV90aGVybWFsX2NvdW50OworI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxX3NwdXJpb3VzX2NvdW50OworI2VuZGlmCisJcmV0dXJuIHN1bTsKK30KKwordTY0IGFyY2hfaXJxX3N0YXQodm9pZCkKK3sKKwl1NjQgc3VtID0gYXRvbWljX3JlYWQoJmlycV9lcnJfY291bnQpOworCisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCisJc3VtICs9IGF0b21pY19yZWFkKCZpcnFfbWlzX2NvdW50KTsKKyNlbmRpZgorCXJldHVybiBzdW07Cit9CisKICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKICNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lycV82NC5jIGIvYXJjaC94ODYva2VybmVsL2lycV82NC5jCmluZGV4IDNhYWMxNTQuLjFmNzhiMjMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaXJxXzY0LmMKQEAgLTEzNSw2ICsxMzUsNyBAQAogCQkJc2VxX3ByaW50ZihwLCAiJTEwdSAiLCBjcHVfcGRhKGopLT5pcnFfdGxiX2NvdW50KTsKIAkJc2VxX3ByaW50ZihwLCAiICBUTEIgc2hvb3Rkb3duc1xuIik7CiAjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X01DRQogCQlzZXFfcHJpbnRmKHAsICJUUk06ICIpOwogCQlmb3JfZWFjaF9vbmxpbmVfY3B1KGopCiAJCQlzZXFfcHJpbnRmKHAsICIlMTB1ICIsIGNwdV9wZGEoaiktPmlycV90aGVybWFsX2NvdW50KTsKQEAgLTE0Myw2ICsxNDQsNyBAQAogCQlmb3JfZWFjaF9vbmxpbmVfY3B1KGopCiAJCQlzZXFfcHJpbnRmKHAsICIlMTB1ICIsIGNwdV9wZGEoaiktPmlycV90aHJlc2hvbGRfY291bnQpOwogCQlzZXFfcHJpbnRmKHAsICIgIFRocmVzaG9sZCBBUElDIGludGVycnVwdHNcbiIpOworI2VuZGlmCiAJCXNlcV9wcmludGYocCwgIlNQVTogIik7CiAJCWZvcl9lYWNoX29ubGluZV9jcHUoaikKIAkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwgY3B1X3BkYShqKS0+aXJxX3NwdXJpb3VzX2NvdW50KTsKQEAgLTE1Myw2ICsxNTUsMzIgQEAKIH0KIAogLyoKKyAqIC9wcm9jL3N0YXQgaGVscGVycworICovCit1NjQgYXJjaF9pcnFfc3RhdF9jcHUodW5zaWduZWQgaW50IGNwdSkKK3sKKwl1NjQgc3VtID0gY3B1X3BkYShjcHUpLT5fX25taV9jb3VudDsKKworCXN1bSArPSBjcHVfcGRhKGNwdSktPmFwaWNfdGltZXJfaXJxczsKKyNpZmRlZiBDT05GSUdfU01QCisJc3VtICs9IGNwdV9wZGEoY3B1KS0+aXJxX3Jlc2NoZWRfY291bnQ7CisJc3VtICs9IGNwdV9wZGEoY3B1KS0+aXJxX2NhbGxfY291bnQ7CisJc3VtICs9IGNwdV9wZGEoY3B1KS0+aXJxX3RsYl9jb3VudDsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfTUNFCisJc3VtICs9IGNwdV9wZGEoY3B1KS0+aXJxX3RoZXJtYWxfY291bnQ7CisJc3VtICs9IGNwdV9wZGEoY3B1KS0+aXJxX3RocmVzaG9sZF9jb3VudDsKKyNlbmRpZgorCXN1bSArPSBjcHVfcGRhKGNwdSktPmlycV9zcHVyaW91c19jb3VudDsKKwlyZXR1cm4gc3VtOworfQorCit1NjQgYXJjaF9pcnFfc3RhdCh2b2lkKQoreworCXJldHVybiBhdG9taWNfcmVhZCgmaXJxX2Vycl9jb3VudCk7Cit9CisKKy8qCiAgKiBkb19JUlEgaGFuZGxlcyBhbGwgbm9ybWFsIGRldmljZSBJUlEncyAodGhlIHNwZWNpYWwKICAqIFNNUCBjcm9zcy1DUFUgaW50ZXJydXB0cyBoYXZlIHRoZWlyIG93biBzcGVjaWZpYwogICogaGFuZGxlcnMpLgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lycWluaXRfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFpbml0XzMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY2OTE0MgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFpbml0XzMyLmMKQEAgLTAsMCArMSwxMTQgQEAKKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorCisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vdGltZXIuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9kZWxheS5oPgorI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgorI2luY2x1ZGUgPGFzbS9pODI1OS5oPgorCisKKworLyoKKyAqIE5vdGUgdGhhdCBvbiBhIDQ4Niwgd2UgZG9uJ3Qgd2FudCB0byBkbyBhIFNJR0ZQRSBvbiBhbiBpcnExMworICogYXMgdGhlIGlycSBpcyB1bnJlbGlhYmxlLCBhbmQgZXhjZXB0aW9uIDE2IHdvcmtzIGNvcnJlY3RseQorICogKGllIGFzIGV4cGxhaW5lZCBpbiB0aGUgaW50ZWwgbGl0ZXJhdHVyZSkuIE9uIGEgMzg2LCB5b3UKKyAqIGNhbid0IHVzZSBleGNlcHRpb24gMTYgZHVlIHRvIGJhZCBJQk0gZGVzaWduLCBzbyB3ZSBoYXZlIHRvCisgKiByZWx5IG9uIHRoZSBsZXNzIGV4YWN0IGlycTEzLgorICoKKyAqIENhcmVmdWwuLiBOb3Qgb25seSBpcyBJUlExMyB1bnJlbGlhYmxlLCBidXQgaXQgaXMgYWxzbworICogbGVhZHMgdG8gcmFjZXMuIElCTSBkZXNpZ25lcnMgd2hvIGNhbWUgdXAgd2l0aCBpdCBzaG91bGQKKyAqIGJlIHNob3QuCisgKi8KKyAKKworc3RhdGljIGlycXJldHVybl90IG1hdGhfZXJyb3JfaXJxKGludCBjcGwsIHZvaWQgKmRldl9pZCkKK3sKKwlleHRlcm4gdm9pZCBtYXRoX2Vycm9yKHZvaWQgX191c2VyICopOworCW91dGIoMCwweEYwKTsKKwlpZiAoaWdub3JlX2ZwdV9pcnEgfHwgIWJvb3RfY3B1X2RhdGEuaGFyZF9tYXRoKQorCQlyZXR1cm4gSVJRX05PTkU7CisJbWF0aF9lcnJvcigodm9pZCBfX3VzZXIgKilnZXRfaXJxX3JlZ3MoKS0+aXApOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworLyoKKyAqIE5ldyBtb3RoZXJib2FyZHMgc29tZXRpbWVzIG1ha2UgSVJRIDEzIGJlIGEgUENJIGludGVycnVwdCwKKyAqIHNvIGFsbG93IGludGVycnVwdCBzaGFyaW5nLgorICovCitzdGF0aWMgc3RydWN0IGlycWFjdGlvbiBmcHVfaXJxID0geworCS5oYW5kbGVyID0gbWF0aF9lcnJvcl9pcnEsCisJLm1hc2sgPSBDUFVfTUFTS19OT05FLAorCS5uYW1lID0gImZwdSIsCit9OworCit2b2lkIF9faW5pdCBpbml0X0lTQV9pcnFzICh2b2lkKQoreworCWludCBpOworCisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCisJaW5pdF9ic3BfQVBJQygpOworI2VuZGlmCisJaW5pdF84MjU5QSgwKTsKKworCS8qCisJICogMTYgb2xkLXN0eWxlIElOVEEtY3ljbGUgaW50ZXJydXB0czoKKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgeworCQlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZShpLCAmaTgyNTlBX2NoaXAsCisJCQkJCSAgICAgIGhhbmRsZV9sZXZlbF9pcnEsICJYVCIpOworCX0KK30KKworLyogT3ZlcnJpZGRlbiBpbiBwYXJhdmlydC5jICovCit2b2lkIGluaXRfSVJRKHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssIGFsaWFzKCJuYXRpdmVfaW5pdF9JUlEiKSkpOworCit2b2lkIF9faW5pdCBuYXRpdmVfaW5pdF9JUlEodm9pZCkKK3sKKwlpbnQgaTsKKworCS8qIGFsbCB0aGUgc2V0IHVwIGJlZm9yZSB0aGUgY2FsbCBnYXRlcyBhcmUgaW5pdGlhbGlzZWQgKi8KKwlwcmVfaW50cl9pbml0X2hvb2soKTsKKworCS8qCisJICogQ292ZXIgdGhlIHdob2xlIHZlY3RvciBzcGFjZSwgbm8gdmVjdG9yIGNhbiBlc2NhcGUKKwkgKiB1cy4gKHNvbWUgb2YgdGhlc2Ugd2lsbCBiZSBvdmVycmlkZGVuIGFuZCBiZWNvbWUKKwkgKiAnc3BlY2lhbCcgU01QIGludGVycnVwdHMpCisJICovCisJZm9yIChpID0gMDsgaSA8IChOUl9WRUNUT1JTIC0gRklSU1RfRVhURVJOQUxfVkVDVE9SKTsgaSsrKSB7CisJCWludCB2ZWN0b3IgPSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IgKyBpOworCQlpZiAoaSA+PSBOUl9JUlFTKQorCQkJYnJlYWs7CisJCS8qIFNZU0NBTExfVkVDVE9SIHdhcyByZXNlcnZlZCBpbiB0cmFwX2luaXQuICovCisJCWlmICghdGVzdF9iaXQodmVjdG9yLCB1c2VkX3ZlY3RvcnMpKQorCQkJc2V0X2ludHJfZ2F0ZSh2ZWN0b3IsIGludGVycnVwdFtpXSk7CisJfQorCisJLyogc2V0dXAgYWZ0ZXIgY2FsbCBnYXRlcyBhcmUgaW5pdGlhbGlzZWQgKHVzdWFsbHkgYWRkIGluCisJICogdGhlIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBnYXRlcykKKwkgKi8KKwlpbnRyX2luaXRfaG9vaygpOworCisJLyoKKwkgKiBFeHRlcm5hbCBGUFU/IFNldCB1cCBpcnExMyBpZiBzbywgZm9yCisJICogb3JpZ2luYWwgYnJhaW5kYW1hZ2VkIElCTSBGRVJSIGNvdXBsaW5nLgorCSAqLworCWlmIChib290X2NwdV9kYXRhLmhhcmRfbWF0aCAmJiAhY3B1X2hhc19mcHUpCisJCXNldHVwX2lycShGUFVfSVJRLCAmZnB1X2lycSk7CisKKwlpcnFfY3R4X2luaXQoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pcnFpbml0XzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaXJxaW5pdF82NC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzNzNlODgKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvaXJxaW5pdF82NC5jCkBAIC0wLDAgKzEsMjIxIEBACisjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvc2lnbmFsLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1leC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKworI2luY2x1ZGUgPGFzbS9hY3BpLmg+CisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vaHdfaXJxLmg+CisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vZGVsYXkuaD4KKyNpbmNsdWRlIDxhc20vZGVzYy5oPgorI2luY2x1ZGUgPGFzbS9hcGljLmg+CisjaW5jbHVkZSA8YXNtL2k4MjU5Lmg+CisKKy8qCisgKiBDb21tb24gcGxhY2UgdG8gZGVmaW5lIGFsbCB4ODYgSVJRIHZlY3RvcnMKKyAqCisgKiBUaGlzIGJ1aWxkcyB1cCB0aGUgSVJRIGhhbmRsZXIgc3R1YnMgdXNpbmcgc29tZSB1Z2x5IG1hY3JvcyBpbiBpcnEuaAorICoKKyAqIFRoZXNlIG1hY3JvcyBjcmVhdGUgdGhlIGxvdy1sZXZlbCBhc3NlbWJseSBJUlEgcm91dGluZXMgdGhhdCBzYXZlCisgKiByZWdpc3RlciBjb250ZXh0IGFuZCBjYWxsIGRvX0lSUSgpLiBkb19JUlEoKSB0aGVuIGRvZXMgYWxsIHRoZQorICogb3BlcmF0aW9ucyB0aGF0IGFyZSBuZWVkZWQgdG8ga2VlcCB0aGUgQVQgKG9yIFNNUCBJT0FQSUMpCisgKiBpbnRlcnJ1cHQtY29udHJvbGxlciBoYXBweS4KKyAqLworCisjZGVmaW5lIElSUV9OQU1FMihucikgbnIjI19pbnRlcnJ1cHQodm9pZCkKKyNkZWZpbmUgSVJRX05BTUUobnIpIElSUV9OQU1FMihJUlEjI25yKQorCisvKgorICoJU01QIGhhcyBhIGZldyBzcGVjaWFsIGludGVycnVwdHMgZm9yIElQSSBtZXNzYWdlcworICovCisKKyNkZWZpbmUgQlVJTERfSVJRKG5yKQkJCQlcCisJYXNtbGlua2FnZSB2b2lkIElSUV9OQU1FKG5yKTsJCVwKKwlhc20oIlxuLnAyYWxpZ25cbiIJCQlcCisJICAgICJJUlEiICNuciAiX2ludGVycnVwdDpcblx0IgkJXAorCSAgICAicHVzaCAkfigiICNuciAiKSA7ICIJCVwKKwkgICAgImptcCBjb21tb25faW50ZXJydXB0Iik7CisKKyNkZWZpbmUgQkkoeCx5KSBcCisJQlVJTERfSVJRKHgjI3kpCisKKyNkZWZpbmUgQlVJTERfMTZfSVJRUyh4KSBcCisJQkkoeCwwKSBCSSh4LDEpIEJJKHgsMikgQkkoeCwzKSBcCisJQkkoeCw0KSBCSSh4LDUpIEJJKHgsNikgQkkoeCw3KSBcCisJQkkoeCw4KSBCSSh4LDkpIEJJKHgsYSkgQkkoeCxiKSBcCisJQkkoeCxjKSBCSSh4LGQpIEJJKHgsZSkgQkkoeCxmKQorCisvKgorICogSVNBIFBJQyBvciBsb3cgSU8tQVBJQyB0cmlnZ2VyZWQgKElOVEEtY3ljbGUgb3IgQVBJQykgaW50ZXJydXB0czoKKyAqICh0aGVzZSBhcmUgdXN1YWxseSBtYXBwZWQgdG8gdmVjdG9ycyAweDMwLTB4M2YpCisgKi8KKworLyoKKyAqIFRoZSBJTy1BUElDIGdpdmVzIHVzIG1hbnkgbW9yZSBpbnRlcnJ1cHQgc291cmNlcy4gTW9zdCBvZiB0aGVzZQorICogYXJlIHVudXNlZCBidXQgYW4gU01QIHN5c3RlbSBpcyBzdXBwb3NlZCB0byBoYXZlIGVub3VnaCBtZW1vcnkgLi4uCisgKiBzb21ldGltZXMgKG1vc3RseSB3cnQuIGh3IGJ1Z3MpIHdlIGdldCBjb3JydXB0ZWQgdmVjdG9ycyBhbGwKKyAqIGFjcm9zcyB0aGUgc3BlY3RydW0sIHNvIHdlIHJlYWxseSB3YW50IHRvIGJlIHByZXBhcmVkIHRvIGdldCBhbGwKKyAqIG9mIHRoZXNlLiBQbHVzLCBtb3JlIHBvd2VyZnVsIHN5c3RlbXMgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gNjQKKyAqIElPLUFQSUMgcmVnaXN0ZXJzLgorICoKKyAqICh0aGVzZSBhcmUgdXN1YWxseSBtYXBwZWQgaW50byB0aGUgMHgzMC0weGZmIHZlY3RvciByYW5nZSkKKyAqLworCQkJCSAgICAgIEJVSUxEXzE2X0lSUVMoMHgyKSBCVUlMRF8xNl9JUlFTKDB4MykKK0JVSUxEXzE2X0lSUVMoMHg0KSBCVUlMRF8xNl9JUlFTKDB4NSkgQlVJTERfMTZfSVJRUygweDYpIEJVSUxEXzE2X0lSUVMoMHg3KQorQlVJTERfMTZfSVJRUygweDgpIEJVSUxEXzE2X0lSUVMoMHg5KSBCVUlMRF8xNl9JUlFTKDB4YSkgQlVJTERfMTZfSVJRUygweGIpCitCVUlMRF8xNl9JUlFTKDB4YykgQlVJTERfMTZfSVJRUygweGQpIEJVSUxEXzE2X0lSUVMoMHhlKSBCVUlMRF8xNl9JUlFTKDB4ZikKKworI3VuZGVmIEJVSUxEXzE2X0lSUVMKKyN1bmRlZiBCSQorCisKKyNkZWZpbmUgSVJRKHgseSkgXAorCUlSUSMjeCMjeSMjX2ludGVycnVwdAorCisjZGVmaW5lIElSUUxJU1RfMTYoeCkgXAorCUlSUSh4LDApLCBJUlEoeCwxKSwgSVJRKHgsMiksIElSUSh4LDMpLCBcCisJSVJRKHgsNCksIElSUSh4LDUpLCBJUlEoeCw2KSwgSVJRKHgsNyksIFwKKwlJUlEoeCw4KSwgSVJRKHgsOSksIElSUSh4LGEpLCBJUlEoeCxiKSwgXAorCUlSUSh4LGMpLCBJUlEoeCxkKSwgSVJRKHgsZSksIElSUSh4LGYpCisKKy8qIGZvciB0aGUgaXJxIHZlY3RvcnMgKi8KK3N0YXRpYyB2b2lkICgqX19pbml0ZGF0YSBpbnRlcnJ1cHRbTlJfVkVDVE9SUyAtIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUl0pKHZvaWQpID0geworCQkJCQkgIElSUUxJU1RfMTYoMHgyKSwgSVJRTElTVF8xNigweDMpLAorCUlSUUxJU1RfMTYoMHg0KSwgSVJRTElTVF8xNigweDUpLCBJUlFMSVNUXzE2KDB4NiksIElSUUxJU1RfMTYoMHg3KSwKKwlJUlFMSVNUXzE2KDB4OCksIElSUUxJU1RfMTYoMHg5KSwgSVJRTElTVF8xNigweGEpLCBJUlFMSVNUXzE2KDB4YiksCisJSVJRTElTVF8xNigweGMpLCBJUlFMSVNUXzE2KDB4ZCksIElSUUxJU1RfMTYoMHhlKSwgSVJRTElTVF8xNigweGYpCit9OworCisjdW5kZWYgSVJRCisjdW5kZWYgSVJRTElTVF8xNgorCisKKworCisvKgorICogSVJRMiBpcyBjYXNjYWRlIGludGVycnVwdCB0byBzZWNvbmQgaW50ZXJydXB0IGNvbnRyb2xsZXIKKyAqLworCitzdGF0aWMgc3RydWN0IGlycWFjdGlvbiBpcnEyID0geworCS5oYW5kbGVyID0gbm9fYWN0aW9uLAorCS5tYXNrID0gQ1BVX01BU0tfTk9ORSwKKwkubmFtZSA9ICJjYXNjYWRlIiwKK307CitERUZJTkVfUEVSX0NQVSh2ZWN0b3JfaXJxX3QsIHZlY3Rvcl9pcnEpID0geworCVswIC4uLiBJUlEwX1ZFQ1RPUiAtIDFdID0gLTEsCisJW0lSUTBfVkVDVE9SXSA9IDAsCisJW0lSUTFfVkVDVE9SXSA9IDEsCisJW0lSUTJfVkVDVE9SXSA9IDIsCisJW0lSUTNfVkVDVE9SXSA9IDMsCisJW0lSUTRfVkVDVE9SXSA9IDQsCisJW0lSUTVfVkVDVE9SXSA9IDUsCisJW0lSUTZfVkVDVE9SXSA9IDYsCisJW0lSUTdfVkVDVE9SXSA9IDcsCisJW0lSUThfVkVDVE9SXSA9IDgsCisJW0lSUTlfVkVDVE9SXSA9IDksCisJW0lSUTEwX1ZFQ1RPUl0gPSAxMCwKKwlbSVJRMTFfVkVDVE9SXSA9IDExLAorCVtJUlExMl9WRUNUT1JdID0gMTIsCisJW0lSUTEzX1ZFQ1RPUl0gPSAxMywKKwlbSVJRMTRfVkVDVE9SXSA9IDE0LAorCVtJUlExNV9WRUNUT1JdID0gMTUsCisJW0lSUTE1X1ZFQ1RPUiArIDEgLi4uIE5SX1ZFQ1RPUlMgLSAxXSA9IC0xCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9JU0FfaXJxcyAodm9pZCkKK3sKKwlpbnQgaTsKKworCWluaXRfYnNwX0FQSUMoKTsKKwlpbml0XzgyNTlBKDApOworCisJZm9yIChpID0gMDsgaSA8IE5SX0lSUVM7IGkrKykgeworCQlpcnFfZGVzY1tpXS5zdGF0dXMgPSBJUlFfRElTQUJMRUQ7CisJCWlycV9kZXNjW2ldLmFjdGlvbiA9IE5VTEw7CisJCWlycV9kZXNjW2ldLmRlcHRoID0gMTsKKworCQlpZiAoaSA8IDE2KSB7CisJCQkvKgorCQkJICogMTYgb2xkLXN0eWxlIElOVEEtY3ljbGUgaW50ZXJydXB0czoKKwkJCSAqLworCQkJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaSwgJmk4MjU5QV9jaGlwLAorCQkJCQkJICAgICAgaGFuZGxlX2xldmVsX2lycSwgIlhUIik7CisJCX0gZWxzZSB7CisJCQkvKgorCQkJICogJ2hpZ2gnIFBDSSBJUlFzIGZpbGxlZCBpbiBvbiBkZW1hbmQKKwkJCSAqLworCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZub19pcnFfY2hpcDsKKwkJfQorCX0KK30KKwordm9pZCBpbml0X0lSUSh2b2lkKSBfX2F0dHJpYnV0ZV9fKCh3ZWFrLCBhbGlhcygibmF0aXZlX2luaXRfSVJRIikpKTsKKwordm9pZCBfX2luaXQgbmF0aXZlX2luaXRfSVJRKHZvaWQpCit7CisJaW50IGk7CisKKwlpbml0X0lTQV9pcnFzKCk7CisJLyoKKwkgKiBDb3ZlciB0aGUgd2hvbGUgdmVjdG9yIHNwYWNlLCBubyB2ZWN0b3IgY2FuIGVzY2FwZQorCSAqIHVzLiAoc29tZSBvZiB0aGVzZSB3aWxsIGJlIG92ZXJyaWRkZW4gYW5kIGJlY29tZQorCSAqICdzcGVjaWFsJyBTTVAgaW50ZXJydXB0cykKKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgKE5SX1ZFQ1RPUlMgLSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IpOyBpKyspIHsKKwkJaW50IHZlY3RvciA9IEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUiArIGk7CisJCWlmICh2ZWN0b3IgIT0gSUEzMl9TWVNDQUxMX1ZFQ1RPUikKKwkJCXNldF9pbnRyX2dhdGUodmVjdG9yLCBpbnRlcnJ1cHRbaV0pOworCX0KKworI2lmZGVmIENPTkZJR19TTVAKKwkvKgorCSAqIFRoZSByZXNjaGVkdWxlIGludGVycnVwdCBpcyBhIENQVS10by1DUFUgcmVzY2hlZHVsZS1oZWxwZXIKKwkgKiBJUEksIGRyaXZlbiBieSB3YWtldXAuCisJICovCisJYWxsb2NfaW50cl9nYXRlKFJFU0NIRURVTEVfVkVDVE9SLCByZXNjaGVkdWxlX2ludGVycnVwdCk7CisKKwkvKiBJUElzIGZvciBpbnZhbGlkYXRpb24gKi8KKwlhbGxvY19pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzAsIGludmFsaWRhdGVfaW50ZXJydXB0MCk7CisJYWxsb2NfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCsxLCBpbnZhbGlkYXRlX2ludGVycnVwdDEpOworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrMiwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQyKTsKKwlhbGxvY19pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzMsIGludmFsaWRhdGVfaW50ZXJydXB0Myk7CisJYWxsb2NfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCs0LCBpbnZhbGlkYXRlX2ludGVycnVwdDQpOworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrNSwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ1KTsKKwlhbGxvY19pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzYsIGludmFsaWRhdGVfaW50ZXJydXB0Nik7CisJYWxsb2NfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCs3LCBpbnZhbGlkYXRlX2ludGVycnVwdDcpOworCisJLyogSVBJIGZvciBnZW5lcmljIGZ1bmN0aW9uIGNhbGwgKi8KKwlhbGxvY19pbnRyX2dhdGUoQ0FMTF9GVU5DVElPTl9WRUNUT1IsIGNhbGxfZnVuY3Rpb25faW50ZXJydXB0KTsKKworCS8qIElQSSBmb3IgZ2VuZXJpYyBzaW5nbGUgZnVuY3Rpb24gY2FsbCAqLworCWFsbG9jX2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1NJTkdMRV9WRUNUT1IsCisJCQljYWxsX2Z1bmN0aW9uX3NpbmdsZV9pbnRlcnJ1cHQpOworCisJLyogTG93IHByaW9yaXR5IElQSSB0byBjbGVhbnVwIGFmdGVyIG1vdmluZyBhbiBpcnEgKi8KKwlzZXRfaW50cl9nYXRlKElSUV9NT1ZFX0NMRUFOVVBfVkVDVE9SLCBpcnFfbW92ZV9jbGVhbnVwX2ludGVycnVwdCk7CisjZW5kaWYKKwlhbGxvY19pbnRyX2dhdGUoVEhFUk1BTF9BUElDX1ZFQ1RPUiwgdGhlcm1hbF9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShUSFJFU0hPTERfQVBJQ19WRUNUT1IsIHRocmVzaG9sZF9pbnRlcnJ1cHQpOworCisJLyogc2VsZiBnZW5lcmF0ZWQgSVBJIGZvciBsb2NhbCBBUElDIHRpbWVyICovCisJYWxsb2NfaW50cl9nYXRlKExPQ0FMX1RJTUVSX1ZFQ1RPUiwgYXBpY190aW1lcl9pbnRlcnJ1cHQpOworCisJLyogSVBJIHZlY3RvcnMgZm9yIEFQSUMgc3B1cmlvdXMgYW5kIGVycm9yIGludGVycnVwdHMgKi8KKwlhbGxvY19pbnRyX2dhdGUoU1BVUklPVVNfQVBJQ19WRUNUT1IsIHNwdXJpb3VzX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKEVSUk9SX0FQSUNfVkVDVE9SLCBlcnJvcl9pbnRlcnJ1cHQpOworCisJaWYgKCFhY3BpX2lvYXBpYykKKwkJc2V0dXBfaXJxKDIsICZpcnEyKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9sZHQuYyBiL2FyY2gveDg2L2tlcm5lbC9sZHQuYwppbmRleCBjYjBhNjM5OC4uYTg0NDk1NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2xkdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9sZHQuYwpAQCAtMjAsOSArMjAsOSBAQAogI2luY2x1ZGUgPGFzbS9tbXVfY29udGV4dC5oPgogCiAjaWZkZWYgQ09ORklHX1NNUAotc3RhdGljIHZvaWQgZmx1c2hfbGR0KHZvaWQgKm51bGwpCitzdGF0aWMgdm9pZCBmbHVzaF9sZHQodm9pZCAqY3VycmVudF9tbSkKIHsKLQlpZiAoY3VycmVudC0+YWN0aXZlX21tKQorCWlmIChjdXJyZW50LT5hY3RpdmVfbW0gPT0gY3VycmVudF9tbSkKIAkJbG9hZF9MRFQoJmN1cnJlbnQtPmFjdGl2ZV9tbS0+Y29udGV4dCk7CiB9CiAjZW5kaWYKQEAgLTY4LDcgKzY4LDcgQEAKIAkJbG9hZF9MRFQocGMpOwogCQltYXNrID0gY3B1bWFza19vZl9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAkJaWYgKCFjcHVzX2VxdWFsKGN1cnJlbnQtPm1tLT5jcHVfdm1fbWFzaywgbWFzaykpCi0JCQlzbXBfY2FsbF9mdW5jdGlvbihmbHVzaF9sZHQsIE5VTEwsIDEpOworCQkJc21wX2NhbGxfZnVuY3Rpb24oZmx1c2hfbGR0LCBjdXJyZW50LT5tbSwgMSk7CiAJCXByZWVtcHRfZW5hYmxlKCk7CiAjZWxzZQogCQlsb2FkX0xEVChwYyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY18zMi5jIGIvYXJjaC94ODYva2VybmVsL21hY2hpbmVfa2V4ZWNfMzIuYwppbmRleCBkMGIyMzRjLi44ODY0MjMwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzMyLmMKQEAgLTExLDYgKzExLDggQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9udW1hLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisKICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CkBAIC0zOSw3ICs0MSw3IEBACiAJY3VyaWR0LmFkZHJlc3MgPSAodW5zaWduZWQgbG9uZyluZXdpZHQ7CiAKIAlsb2FkX2lkdCgmY3VyaWR0KTsKLX07Cit9CiAKIAogc3RhdGljIHZvaWQgc2V0X2dkdCh2b2lkICpuZXdnZHQsIF9fdTE2IGxpbWl0KQpAQCAtNTEsNyArNTMsNyBAQAogCWN1cmdkdC5hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpbmV3Z2R0OwogCiAJbG9hZF9nZHQoJmN1cmdkdCk7Ci19OworfQogCiBzdGF0aWMgdm9pZCBsb2FkX3NlZ21lbnRzKHZvaWQpCiB7CkBAIC0xMDcsNiArMTA5LDggQEAKIAl1bnNpZ25lZCBsb25nIHBhZ2VfbGlzdFtQQUdFU19OUl07CiAJdm9pZCAqY29udHJvbF9wYWdlOwogCisJdHJhY2VyX2Rpc2FibGUoKTsKKwogCS8qIEludGVycnVwdHMgYXJlbid0IGFjY2VwdGFibGUgd2hpbGUgd2UgcmVib290ICovCiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL21hY2hpbmVfa2V4ZWNfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzY0LmMKaW5kZXggNTc2YTAzZC4uOWRkOTI2MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL21hY2hpbmVfa2V4ZWNfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY182NC5jCkBAIC0xMSw2ICsxMSw4IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CiAjaW5jbHVkZSA8bGludXgvbnVtYS5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorCiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlIDxhc20vdGxiZmx1c2guaD4KICNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KQEAgLTExMCw3ICsxMTIsNyBAQAogewogCXBnZF90ICpsZXZlbDRwOwogCWxldmVsNHAgPSAocGdkX3QgKilfX3ZhKHN0YXJ0X3BndGFibGUpOwotIAlyZXR1cm4gaW5pdF9sZXZlbDRfcGFnZShpbWFnZSwgbGV2ZWw0cCwgMCwgZW5kX3BmbiA8PCBQQUdFX1NISUZUKTsKKwlyZXR1cm4gaW5pdF9sZXZlbDRfcGFnZShpbWFnZSwgbGV2ZWw0cCwgMCwgbWF4X3BmbiA8PCBQQUdFX1NISUZUKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0X2lkdCh2b2lkICpuZXdpZHQsIHUxNiBsaW1pdCkKQEAgLTE4NCw2ICsxODYsOCBAQAogCXVuc2lnbmVkIGxvbmcgcGFnZV9saXN0W1BBR0VTX05SXTsKIAl2b2lkICpjb250cm9sX3BhZ2U7CiAKKwl0cmFjZXJfZGlzYWJsZSgpOworCiAJLyogSW50ZXJydXB0cyBhcmVuJ3QgYWNjZXB0YWJsZSB3aGlsZSB3ZSByZWJvb3QgKi8KIAlsb2NhbF9pcnFfZGlzYWJsZSgpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbWljcm9jb2RlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvbWljcm9jb2RlLmMKaW5kZXggNjk3MjllMy4uNTZiOTMzMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL21pY3JvY29kZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9taWNyb2NvZGUuYwpAQCAtNSwxMyArNSwxNCBAQAogICoJCSAgICAgIDIwMDYJU2hhb2h1YSBMaSA8c2hhb2h1YS5saUBpbnRlbC5jb20+CiAgKgogICoJVGhpcyBkcml2ZXIgYWxsb3dzIHRvIHVwZ3JhZGUgbWljcm9jb2RlIG9uIEludGVsIHByb2Nlc3NvcnMKLSAqCWJlbG9uZ2luZyB0byBJQS0zMiBmYW1pbHkgLSBQZW50aXVtUHJvLCBQZW50aXVtIElJLCAKKyAqCWJlbG9uZ2luZyB0byBJQS0zMiBmYW1pbHkgLSBQZW50aXVtUHJvLCBQZW50aXVtIElJLAogICoJUGVudGl1bSBJSUksIFhlb24sIFBlbnRpdW0gNCwgZXRjLgogICoKLSAqCVJlZmVyZW5jZTogU2VjdGlvbiA4LjEwIG9mIFZvbHVtZSBJSUksIEludGVsIFBlbnRpdW0gNCBNYW51YWwsIAotICoJT3JkZXIgTnVtYmVyIDI0NTQ3MiBvciBmcmVlIGRvd25sb2FkIGZyb206Ci0gKgkJCi0gKglodHRwOi8vZGV2ZWxvcGVyLmludGVsLmNvbS9kZXNpZ24vcGVudGl1bTQvbWFudWFscy8yNDU0NzIuaHRtCisgKglSZWZlcmVuY2U6IFNlY3Rpb24gOC4xMSBvZiBWb2x1bWUgM2EsIElBLTMyIEludGVsPyBBcmNoaXRlY3R1cmUKKyAqCVNvZnR3YXJlIERldmVsb3BlcidzIE1hbnVhbAorICoJT3JkZXIgTnVtYmVyIDI1MzY2OCBvciBmcmVlIGRvd25sb2FkIGZyb206CisgKgorICoJaHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL3BlbnRpdW00L21hbnVhbHMvMjUzNjY4Lmh0bQogICoKICAqCUZvciBtb3JlIGluZm9ybWF0aW9uLCBnbyB0byBodHRwOi8vd3d3LnVyYmFubXl0aC5vcmcvbWljcm9jb2RlCiAgKgpAQCAtNTgsMTIgKzU5LDEyIEBACiAgKgkJbmF0dXJlIG9mIGltcGxlbWVudGF0aW9uLgogICoJMS4xMQkyMiBNYXIgMjAwMiBUaWdyYW4gQWl2YXppYW4gPHRpZ3JhbkB2ZXJpdGFzLmNvbT4KICAqCQlGaXggdGhlIHBhbmljIHdoZW4gd3JpdGluZyB6ZXJvLWxlbmd0aCBtaWNyb2NvZGUgY2h1bmsuCi0gKgkxLjEyCTI5IFNlcCAyMDAzIE5pdGluIEthbWJsZSA8bml0aW4uYS5rYW1ibGVAaW50ZWwuY29tPiwgCisgKgkxLjEyCTI5IFNlcCAyMDAzIE5pdGluIEthbWJsZSA8bml0aW4uYS5rYW1ibGVAaW50ZWwuY29tPiwKICAqCQlKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CiAgKgkJU3VwcG9ydCBmb3IgdGhlIG1pY3JvY29kZSB1cGRhdGVzIGluIHRoZSBuZXcgZm9ybWF0LgogICoJMS4xMwkxMCBPY3QgMjAwMyBUaWdyYW4gQWl2YXppYW4gPHRpZ3JhbkB2ZXJpdGFzLmNvbT4KICAqCQlSZW1vdmVkIC0+cmVhZCgpIG1ldGhvZCBhbmQgb2Jzb2xldGVkIE1JQ1JPQ09ERV9JT0NGUkVFIGlvY3RsCi0gKgkJYmVjYXVzZSB3ZSBubyBsb25nZXIgaG9sZCBhIGNvcHkgb2YgYXBwbGllZCBtaWNyb2NvZGUgCisgKgkJYmVjYXVzZSB3ZSBubyBsb25nZXIgaG9sZCBhIGNvcHkgb2YgYXBwbGllZCBtaWNyb2NvZGUKICAqCQlpbiBrZXJuZWwgbWVtb3J5LgogICoJMS4xNAkyNSBKdW4gMjAwNCBUaWdyYW4gQWl2YXppYW4gPHRpZ3JhbkB2ZXJpdGFzLmNvbT4KICAqCQlGaXggc2lnbWF0Y2goKSBtYWNybyB0byBoYW5kbGUgb2xkIENQVXMgd2l0aCBwZiA9PSAwLgpAQCAtNzUsNiArNzYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KQEAgLTMyMCwxMSArMzIyLDExIEBACiAJCXJldHVybjsKIAogCS8qIHNlcmlhbGl6ZSBhY2Nlc3MgdG8gdGhlIHBoeXNpY2FsIHdyaXRlIHRvIE1TUiAweDc5ICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJm1pY3JvY29kZV91cGRhdGVfbG9jaywgZmxhZ3MpOyAgICAgICAgICAKKwlzcGluX2xvY2tfaXJxc2F2ZSgmbWljcm9jb2RlX3VwZGF0ZV9sb2NrLCBmbGFncyk7CiAKIAkvKiB3cml0ZSBtaWNyb2NvZGUgdmlhIE1TUiAweDc5ICovCiAJd3Jtc3IoTVNSX0lBMzJfVUNPREVfV1JJVEUsCi0JCSh1bnNpZ25lZCBsb25nKSB1Y2ktPm1jLT5iaXRzLCAKKwkJKHVuc2lnbmVkIGxvbmcpIHVjaS0+bWMtPmJpdHMsCiAJCSh1bnNpZ25lZCBsb25nKSB1Y2ktPm1jLT5iaXRzID4+IDE2ID4+IDE2KTsKIAl3cm1zcihNU1JfSUEzMl9VQ09ERV9SRVYsIDAsIDApOwogCkBAIC0zNDEsNyArMzQzLDcgQEAKIAkJcmV0dXJuOwogCX0KIAlwcmludGsoS0VSTl9JTkZPICJtaWNyb2NvZGU6IENQVSVkIHVwZGF0ZWQgZnJvbSByZXZpc2lvbiAiCi0JICAgICAgICIweCV4IHRvIDB4JXgsIGRhdGUgPSAlMDh4IFxuIiwgCisJICAgICAgICIweCV4IHRvIDB4JXgsIGRhdGUgPSAlMDh4IFxuIiwKIAkgICAgICAgY3B1X251bSwgdWNpLT5yZXYsIHZhbFsxXSwgdWNpLT5tYy0+aGRyLmRhdGUpOwogCXVjaS0+cmV2ID0gdmFsWzFdOwogfQpAQCAtNDIyLDYgKzQyNCw3IEBACiAKIHN0YXRpYyBpbnQgbWljcm9jb2RlX29wZW4gKHN0cnVjdCBpbm9kZSAqdW51c2VkMSwgc3RydWN0IGZpbGUgKnVudXNlZDIpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gY2FwYWJsZShDQVBfU1lTX1JBV0lPKSA/IDAgOiAtRVBFUk07CiB9CiAKQEAgLTQ4OCw3ICs0OTEsNyBAQAogI2RlZmluZSBtaWNyb2NvZGVfZGV2X2V4aXQoKSBkbyB7IH0gd2hpbGUoMCkKICNlbmRpZgogCi1zdGF0aWMgbG9uZyBnZXRfbmV4dF91Y29kZV9mcm9tX2J1ZmZlcih2b2lkICoqbWMsIHZvaWQgKmJ1ZiwKK3N0YXRpYyBsb25nIGdldF9uZXh0X3Vjb2RlX2Zyb21fYnVmZmVyKHZvaWQgKiptYywgY29uc3QgdTggKmJ1ZiwKIAl1bnNpZ25lZCBsb25nIHNpemUsIGxvbmcgb2Zmc2V0KQogewogCW1pY3JvY29kZV9oZWFkZXJfdCAqbWNfaGVhZGVyOwpAQCAtNTIyLDcgKzUyNSw3IEBACiAJY2hhciBuYW1lWzMwXTsKIAlzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmY3B1X2RhdGEoY3B1KTsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZpcm13YXJlOwotCXZvaWQgKmJ1ZjsKKwljb25zdCB1OCAqYnVmOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAlsb25nIG9mZnNldCA9IDA7CiAJaW50IGVycm9yOwpAQCAtNTM0LDcgKzUzNyw3IEBACiAJCWMtPng4NiwgYy0+eDg2X21vZGVsLCBjLT54ODZfbWFzayk7CiAJZXJyb3IgPSByZXF1ZXN0X2Zpcm13YXJlKCZmaXJtd2FyZSwgbmFtZSwgJm1pY3JvY29kZV9wZGV2LT5kZXYpOwogCWlmIChlcnJvcikgewotCQlwcl9kZWJ1ZygibWljcm9jb2RlOiB1Y29kZSBkYXRhIGZpbGUgJXMgbG9hZCBmYWlsZWRcbiIsIG5hbWUpOworCQlwcl9kZWJ1ZygibWljcm9jb2RlOiBkYXRhIGZpbGUgJXMgbG9hZCBmYWlsZWRcbiIsIG5hbWUpOwogCQlyZXR1cm4gZXJyb3I7CiAJfQogCWJ1ZiA9IGZpcm13YXJlLT5kYXRhOwpAQCAtODA1LDYgKzgwOCw5IEBACiB7CiAJaW50IGVycm9yOwogCisJcHJpbnRrKEtFUk5fSU5GTworCQkiSUEtMzIgTWljcm9jb2RlIFVwZGF0ZSBEcml2ZXI6IHYiIE1JQ1JPQ09ERV9WRVJTSU9OICIgPHRpZ3JhbkBhaXZhemlhbi5mc25ldC5jby51az5cbiIpOworCiAJZXJyb3IgPSBtaWNyb2NvZGVfZGV2X2luaXQoKTsKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKQEAgLTgyNSw5ICs4MzEsNiBAQAogCX0KIAogCXJlZ2lzdGVyX2hvdGNwdV9ub3RpZmllcigmbWNfY3B1X25vdGlmaWVyKTsKLQotCXByaW50ayhLRVJOX0lORk8gCi0JCSJJQS0zMiBNaWNyb2NvZGUgVXBkYXRlIERyaXZlcjogdiIgTUlDUk9DT0RFX1ZFUlNJT04gIiA8dGlncmFuQGFpdmF6aWFuLmZzbmV0LmNvLnVrPlxuIik7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9tbWNvbmYtZmFtMTBoXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvbW1jb25mLWZhbTEwaF82NC5jCmluZGV4IGVkYzVmYmYuLmZkZmRjNTUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9tbWNvbmYtZmFtMTBoXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL21tY29uZi1mYW0xMGhfNjQuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KICNpbmNsdWRlIDxhc20vYWNwaS5oPgorI2luY2x1ZGUgPGFzbS9tbWNvbmZpZy5oPgogCiAjaW5jbHVkZSAiLi4vcGNpL3BjaS5oIgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbXBwYXJzZS5jIGIvYXJjaC94ODYva2VybmVsL21wcGFyc2UuYwppbmRleCA0MDQ2ODNiLi4zYjI1ZTQ5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbXBwYXJzZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9tcHBhcnNlLmMKQEAgLTI1LDYgKzI1LDggQEAKICNpbmNsdWRlIDxhc20vcHJvdG8uaD4KICNpbmNsdWRlIDxhc20vYWNwaS5oPgogI2luY2x1ZGUgPGFzbS9iaW9zX2ViZGEuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorI2luY2x1ZGUgPGFzbS90cmFtcG9saW5lLmg+CiAKICNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KICNpZmRlZiBDT05GSUdfWDg2XzMyCkBAIC0zMiwyOCArMzQsNiBAQAogI2luY2x1ZGUgPG1hY2hfbXBwYXJzZS5oPgogI2VuZGlmCiAKLS8qIEhhdmUgd2UgZm91bmQgYW4gTVAgdGFibGUgKi8KLWludCBzbXBfZm91bmRfY29uZmlnOwotCi0vKgotICogVmFyaW91cyBMaW51eC1pbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMgY3JlYXRlZCBmcm9tIHRoZQotICogTVAtdGFibGUuCi0gKi8KLSNpZiBkZWZpbmVkIChDT05GSUdfTUNBKSB8fCBkZWZpbmVkIChDT05GSUdfRUlTQSkKLWludCBtcF9idXNfaWRfdG9fdHlwZVtNQVhfTVBfQlVTU0VTXTsKLSNlbmRpZgotCi1ERUNMQVJFX0JJVE1BUChtcF9idXNfbm90X3BjaSwgTUFYX01QX0JVU1NFUyk7Ci1pbnQgbXBfYnVzX2lkX3RvX3BjaV9idXNbTUFYX01QX0JVU1NFU10gPSB7WzAgLi4uIE1BWF9NUF9CVVNTRVMgLSAxXSA9IC0xIH07Ci0KLXN0YXRpYyBpbnQgbXBfY3VycmVudF9wY2lfaWQ7Ci0KLWludCBwaWNfbW9kZTsKLQotLyoKLSAqIEludGVsIE1QIEJJT1MgdGFibGUgcGFyc2luZyByb3V0aW5lczoKLSAqLwotCiAvKgogICogQ2hlY2tzdW0gYW4gTVAgY29uZmlndXJhdGlvbiBibG9jay4KICAqLwpAQCAtNjksMTUgKzQ5LDczIEBACiB9CiAKICNpZmRlZiBDT05GSUdfWDg2X05VTUFRCitpbnQgZm91bmRfbnVtYXE7CiAvKgogICogSGF2ZSB0byBtYXRjaCB0cmFuc2xhdGlvbiB0YWJsZSBlbnRyaWVzIHRvIG1haW4gdGFibGUgZW50cmllcyBieSBjb3VudGVyCiAgKiBoZW5jZSB0aGUgbXBjX3JlY29yZCB2YXJpYWJsZSAuLi4uIGNhbid0IHNlZSBhIGxlc3MgZGlzZ3VzdGluZyB3YXkgb2YKICAqIGRvaW5nIHRoaXMgLi4uLgogICovCitzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiB7CisJdW5zaWduZWQgY2hhciBtcGNfdHlwZTsKKwl1bnNpZ25lZCBjaGFyIHRyYW5zX2xlbjsKKwl1bnNpZ25lZCBjaGFyIHRyYW5zX3R5cGU7CisJdW5zaWduZWQgY2hhciB0cmFuc19xdWFkOworCXVuc2lnbmVkIGNoYXIgdHJhbnNfZ2xvYmFsOworCXVuc2lnbmVkIGNoYXIgdHJhbnNfbG9jYWw7CisJdW5zaWduZWQgc2hvcnQgdHJhbnNfcmVzZXJ2ZWQ7Cit9OworCiAKIHN0YXRpYyBpbnQgbXBjX3JlY29yZDsKIHN0YXRpYyBzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb25fdGFibGVbTUFYX01QQ19FTlRSWV0KICAgICBfX2NwdWluaXRkYXRhOworCitzdGF0aWMgaW5saW5lIGludCBnZW5lcmF0ZV9sb2dpY2FsX2FwaWNpZChpbnQgcXVhZCwgaW50IHBoeXNfYXBpY2lkKQoreworCXJldHVybiAocXVhZCA8PCA0KSArIChwaHlzX2FwaWNpZCA/IHBoeXNfYXBpY2lkIDw8IDEgOiAxKTsKK30KKworCitzdGF0aWMgaW5saW5lIGludCBtcGNfYXBpY19pZChzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgKm0sCisJCQlzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb25fcmVjb3JkKQoreworCWludCBxdWFkID0gdHJhbnNsYXRpb25fcmVjb3JkLT50cmFuc19xdWFkOworCWludCBsb2dpY2FsX2FwaWNpZCA9IGdlbmVyYXRlX2xvZ2ljYWxfYXBpY2lkKHF1YWQsIG0tPm1wY19hcGljaWQpOworCisJcHJpbnRrKEtFUk5fREVCVUcgIlByb2Nlc3NvciAjJWQgJXU6JXUgQVBJQyB2ZXJzaW9uICVkIChxdWFkICVkLCBhcGljICVkKVxuIiwKKwkgICAgICAgbS0+bXBjX2FwaWNpZCwKKwkgICAgICAgKG0tPm1wY19jcHVmZWF0dXJlICYgQ1BVX0ZBTUlMWV9NQVNLKSA+PiA4LAorCSAgICAgICAobS0+bXBjX2NwdWZlYXR1cmUgJiBDUFVfTU9ERUxfTUFTSykgPj4gNCwKKwkgICAgICAgbS0+bXBjX2FwaWN2ZXIsIHF1YWQsIGxvZ2ljYWxfYXBpY2lkKTsKKwlyZXR1cm4gbG9naWNhbF9hcGljaWQ7Cit9CisKK2ludCBtcF9idXNfaWRfdG9fbm9kZVtNQVhfTVBfQlVTU0VTXTsKKworaW50IG1wX2J1c19pZF90b19sb2NhbFtNQVhfTVBfQlVTU0VTXTsKKworc3RhdGljIHZvaWQgbXBjX29lbV9idXNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKm0sIGNoYXIgKm5hbWUsCisJc3RydWN0IG1wY19jb25maWdfdHJhbnNsYXRpb24gKnRyYW5zbGF0aW9uKQoreworCWludCBxdWFkID0gdHJhbnNsYXRpb24tPnRyYW5zX3F1YWQ7CisJaW50IGxvY2FsID0gdHJhbnNsYXRpb24tPnRyYW5zX2xvY2FsOworCisJbXBfYnVzX2lkX3RvX25vZGVbbS0+bXBjX2J1c2lkXSA9IHF1YWQ7CisJbXBfYnVzX2lkX3RvX2xvY2FsW20tPm1wY19idXNpZF0gPSBsb2NhbDsKKwlwcmludGsoS0VSTl9JTkZPICJCdXMgIyVkIGlzICVzIChub2RlICVkKVxuIiwKKwkgICAgICAgbS0+bXBjX2J1c2lkLCBuYW1lLCBxdWFkKTsKK30KKworaW50IHF1YWRfbG9jYWxfdG9fbXBfYnVzX2lkIFtOUl9DUFVTLzRdWzRdOworc3RhdGljIHZvaWQgbXBjX29lbV9wY2lfYnVzKHN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSwKKwlzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb24pCit7CisJaW50IHF1YWQgPSB0cmFuc2xhdGlvbi0+dHJhbnNfcXVhZDsKKwlpbnQgbG9jYWwgPSB0cmFuc2xhdGlvbi0+dHJhbnNfbG9jYWw7CisKKwlxdWFkX2xvY2FsX3RvX21wX2J1c19pZFtxdWFkXVtsb2NhbF0gPSBtLT5tcGNfYnVzaWQ7Cit9CisKICNlbmRpZgogCiBzdGF0aWMgdm9pZCBfX2NwdWluaXQgTVBfcHJvY2Vzc29yX2luZm8oc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICptKQpAQCAtOTAsNyArMTI4LDEwIEBACiAJCXJldHVybjsKIAl9CiAjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQotCWFwaWNpZCA9IG1wY19hcGljX2lkKG0sIHRyYW5zbGF0aW9uX3RhYmxlW21wY19yZWNvcmRdKTsKKwlpZiAoZm91bmRfbnVtYXEpCisJCWFwaWNpZCA9IG1wY19hcGljX2lkKG0sIHRyYW5zbGF0aW9uX3RhYmxlW21wY19yZWNvcmRdKTsKKwllbHNlCisJCWFwaWNpZCA9IG0tPm1wY19hcGljaWQ7CiAjZWxzZQogCWFwaWNpZCA9IG0tPm1wY19hcGljaWQ7CiAjZW5kaWYKQEAgLTEwMywxNyArMTQ0LDE4IEBACiAJZ2VuZXJpY19wcm9jZXNzb3JfaW5mbyhhcGljaWQsIG0tPm1wY19hcGljdmVyKTsKIH0KIAorI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogc3RhdGljIHZvaWQgX19pbml0IE1QX2J1c19pbmZvKHN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSkKIHsKIAljaGFyIHN0cls3XTsKLQogCW1lbWNweShzdHIsIG0tPm1wY19idXN0eXBlLCA2KTsKIAlzdHJbNl0gPSAwOwogCiAjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQotCW1wY19vZW1fYnVzX2luZm8obSwgc3RyLCB0cmFuc2xhdGlvbl90YWJsZVttcGNfcmVjb3JkXSk7CisJaWYgKGZvdW5kX251bWFxKQorCQltcGNfb2VtX2J1c19pbmZvKG0sIHN0ciwgdHJhbnNsYXRpb25fdGFibGVbbXBjX3JlY29yZF0pOwogI2Vsc2UKLQlEcHJpbnRrKCJCdXMgIyVkIGlzICVzXG4iLCBtLT5tcGNfYnVzaWQsIHN0cik7CisJcHJpbnRrKEtFUk5fSU5GTyAiQnVzICMlZCBpcyAlc1xuIiwgbS0+bXBjX2J1c2lkLCBzdHIpOwogI2VuZGlmCiAKICNpZiBNQVhfTVBfQlVTU0VTIDwgMjU2CkBAIC0xMzIsMTEgKzE3NCwxMCBAQAogI2VuZGlmCiAJfSBlbHNlIGlmIChzdHJuY21wKHN0ciwgQlVTVFlQRV9QQ0ksIHNpemVvZihCVVNUWVBFX1BDSSkgLSAxKSA9PSAwKSB7CiAjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQotCQltcGNfb2VtX3BjaV9idXMobSwgdHJhbnNsYXRpb25fdGFibGVbbXBjX3JlY29yZF0pOworCQlpZiAoZm91bmRfbnVtYXEpCisJCQltcGNfb2VtX3BjaV9idXMobSwgdHJhbnNsYXRpb25fdGFibGVbbXBjX3JlY29yZF0pOwogI2VuZGlmCiAJCWNsZWFyX2JpdChtLT5tcGNfYnVzaWQsIG1wX2J1c19ub3RfcGNpKTsKLQkJbXBfYnVzX2lkX3RvX3BjaV9idXNbbS0+bXBjX2J1c2lkXSA9IG1wX2N1cnJlbnRfcGNpX2lkOwotCQltcF9jdXJyZW50X3BjaV9pZCsrOwogI2lmIGRlZmluZWQoQ09ORklHX0VJU0EpIHx8IGRlZmluZWQgKENPTkZJR19NQ0EpCiAJCW1wX2J1c19pZF90b190eXBlW20tPm1wY19idXNpZF0gPSBNUF9CVVNfUENJOwogCX0gZWxzZSBpZiAoc3RybmNtcChzdHIsIEJVU1RZUEVfRUlTQSwgc2l6ZW9mKEJVU1RZUEVfRUlTQSkgLSAxKSA9PSAwKSB7CkBAIC0xNDcsNiArMTg4LDcgQEAKIAl9IGVsc2UKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiVW5rbm93biBidXN0eXBlICVzIC0gaWdub3JpbmdcbiIsIHN0cik7CiB9CisjZW5kaWYKIAogI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCkBAIC0xNzYsMTggKzIxOCw4OSBAQAogCWlmIChiYWRfaW9hcGljKG0tPm1wY19hcGljYWRkcikpCiAJCXJldHVybjsKIAotCW1wX2lvYXBpY3NbbnJfaW9hcGljc10gPSAqbTsKKwltcF9pb2FwaWNzW25yX2lvYXBpY3NdLm1wX2FwaWNhZGRyID0gbS0+bXBjX2FwaWNhZGRyOworCW1wX2lvYXBpY3NbbnJfaW9hcGljc10ubXBfYXBpY2lkID0gbS0+bXBjX2FwaWNpZDsKKwltcF9pb2FwaWNzW25yX2lvYXBpY3NdLm1wX3R5cGUgPSBtLT5tcGNfdHlwZTsKKwltcF9pb2FwaWNzW25yX2lvYXBpY3NdLm1wX2FwaWN2ZXIgPSBtLT5tcGNfYXBpY3ZlcjsKKwltcF9pb2FwaWNzW25yX2lvYXBpY3NdLm1wX2ZsYWdzID0gbS0+bXBjX2ZsYWdzOwogCW5yX2lvYXBpY3MrKzsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IE1QX2ludHNyY19pbmZvKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSkKK3N0YXRpYyB2b2lkIHByaW50X01QX2ludHNyY19pbmZvKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSkKIHsKLQltcF9pcnFzW21wX2lycV9lbnRyaWVzXSA9ICptOwotCURwcmludGsoIkludDogdHlwZSAlZCwgcG9sICVkLCB0cmlnICVkLCBidXMgJWQsIgorCXByaW50ayhLRVJOX0NPTlQgIkludDogdHlwZSAlZCwgcG9sICVkLCB0cmlnICVkLCBidXMgJTAyeCwiCiAJCSIgSVJRICUwMngsIEFQSUMgSUQgJXgsIEFQSUMgSU5UICUwMnhcbiIsCiAJCW0tPm1wY19pcnF0eXBlLCBtLT5tcGNfaXJxZmxhZyAmIDMsCiAJCShtLT5tcGNfaXJxZmxhZyA+PiAyKSAmIDMsIG0tPm1wY19zcmNidXMsCiAJCW0tPm1wY19zcmNidXNpcnEsIG0tPm1wY19kc3RhcGljLCBtLT5tcGNfZHN0aXJxKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHByaW50X21wX2lycV9pbmZvKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptcF9pcnEpCit7CisJcHJpbnRrKEtFUk5fQ09OVCAiSW50OiB0eXBlICVkLCBwb2wgJWQsIHRyaWcgJWQsIGJ1cyAlMDJ4LCIKKwkJIiBJUlEgJTAyeCwgQVBJQyBJRCAleCwgQVBJQyBJTlQgJTAyeFxuIiwKKwkJbXBfaXJxLT5tcF9pcnF0eXBlLCBtcF9pcnEtPm1wX2lycWZsYWcgJiAzLAorCQkobXBfaXJxLT5tcF9pcnFmbGFnID4+IDIpICYgMywgbXBfaXJxLT5tcF9zcmNidXMsCisJCW1wX2lycS0+bXBfc3JjYnVzaXJxLCBtcF9pcnEtPm1wX2RzdGFwaWMsIG1wX2lycS0+bXBfZHN0aXJxKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGFzc2lnbl90b19tcF9pcnEoc3RydWN0IG1wY19jb25maWdfaW50c3JjICptLAorCQkJCSAgICBzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqbXBfaXJxKQoreworCW1wX2lycS0+bXBfZHN0YXBpYyA9IG0tPm1wY19kc3RhcGljOworCW1wX2lycS0+bXBfdHlwZSA9IG0tPm1wY190eXBlOworCW1wX2lycS0+bXBfaXJxdHlwZSA9IG0tPm1wY19pcnF0eXBlOworCW1wX2lycS0+bXBfaXJxZmxhZyA9IG0tPm1wY19pcnFmbGFnOworCW1wX2lycS0+bXBfc3JjYnVzID0gbS0+bXBjX3NyY2J1czsKKwltcF9pcnEtPm1wX3NyY2J1c2lycSA9IG0tPm1wY19zcmNidXNpcnE7CisJbXBfaXJxLT5tcF9kc3RpcnEgPSBtLT5tcGNfZHN0aXJxOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgYXNzaWduX3RvX21wY19pbnRzcmMoc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgKm1wX2lycSwKKwkJCQkJc3RydWN0IG1wY19jb25maWdfaW50c3JjICptKQoreworCW0tPm1wY19kc3RhcGljID0gbXBfaXJxLT5tcF9kc3RhcGljOworCW0tPm1wY190eXBlID0gbXBfaXJxLT5tcF90eXBlOworCW0tPm1wY19pcnF0eXBlID0gbXBfaXJxLT5tcF9pcnF0eXBlOworCW0tPm1wY19pcnFmbGFnID0gbXBfaXJxLT5tcF9pcnFmbGFnOworCW0tPm1wY19zcmNidXMgPSBtcF9pcnEtPm1wX3NyY2J1czsKKwltLT5tcGNfc3JjYnVzaXJxID0gbXBfaXJxLT5tcF9zcmNidXNpcnE7CisJbS0+bXBjX2RzdGlycSA9IG1wX2lycS0+bXBfZHN0aXJxOworfQorCitzdGF0aWMgaW50IF9faW5pdCBtcF9pcnFfbXBjX2ludHNyY19jbXAoc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgKm1wX2lycSwKKwkJCQkJc3RydWN0IG1wY19jb25maWdfaW50c3JjICptKQoreworCWlmIChtcF9pcnEtPm1wX2RzdGFwaWMgIT0gbS0+bXBjX2RzdGFwaWMpCisJCXJldHVybiAxOworCWlmIChtcF9pcnEtPm1wX3R5cGUgIT0gbS0+bXBjX3R5cGUpCisJCXJldHVybiAyOworCWlmIChtcF9pcnEtPm1wX2lycXR5cGUgIT0gbS0+bXBjX2lycXR5cGUpCisJCXJldHVybiAzOworCWlmIChtcF9pcnEtPm1wX2lycWZsYWcgIT0gbS0+bXBjX2lycWZsYWcpCisJCXJldHVybiA0OworCWlmIChtcF9pcnEtPm1wX3NyY2J1cyAhPSBtLT5tcGNfc3JjYnVzKQorCQlyZXR1cm4gNTsKKwlpZiAobXBfaXJxLT5tcF9zcmNidXNpcnEgIT0gbS0+bXBjX3NyY2J1c2lycSkKKwkJcmV0dXJuIDY7CisJaWYgKG1wX2lycS0+bXBfZHN0aXJxICE9IG0tPm1wY19kc3RpcnEpCisJCXJldHVybiA3OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBNUF9pbnRzcmNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKm0pCit7CisJaW50IGk7CisKKwlwcmludF9NUF9pbnRzcmNfaW5mbyhtKTsKKworCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7CisJCWlmICghbXBfaXJxX21wY19pbnRzcmNfY21wKCZtcF9pcnFzW2ldLCBtKSkKKwkJCXJldHVybjsKKwl9CisKKwlhc3NpZ25fdG9fbXBfaXJxKG0sICZtcF9pcnFzW21wX2lycV9lbnRyaWVzXSk7CiAJaWYgKCsrbXBfaXJxX2VudHJpZXMgPT0gTUFYX0lSUV9TT1VSQ0VTKQogCQlwYW5pYygiTWF4ICMgb2YgaXJxIHNvdXJjZXMgZXhjZWVkZWQhIVxuIik7CiB9CkBAIC0xOTYsNyArMzA5LDcgQEAKIAogc3RhdGljIHZvaWQgX19pbml0IE1QX2xpbnRzcmNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19saW50c3JjICptKQogewotCURwcmludGsoIkxpbnQ6IHR5cGUgJWQsIHBvbCAlZCwgdHJpZyAlZCwgYnVzICVkLCIKKwlwcmludGsoS0VSTl9JTkZPICJMaW50OiB0eXBlICVkLCBwb2wgJWQsIHRyaWcgJWQsIGJ1cyAlMDJ4LCIKIAkJIiBJUlEgJTAyeCwgQVBJQyBJRCAleCwgQVBJQyBMSU5UICUwMnhcbiIsCiAJCW0tPm1wY19pcnF0eXBlLCBtLT5tcGNfaXJxZmxhZyAmIDMsCiAJCShtLT5tcGNfaXJxZmxhZyA+PiAyKSAmIDMsIG0tPm1wY19zcmNidXNpZCwKQEAgLTI2NiwxMSArMzc5LDE0IEBACiAJfQogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKK3ZvaWQgbnVtYXFfbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKIAkJCQkgY2hhciAqcHJvZHVjdGlkKQogewogCWlmIChzdHJuY21wKG9lbSwgIklCTSBOVU1BIiwgOCkpCi0JCXByaW50aygiV2FybmluZyEgIE1heSBub3QgYmUgYSBOVU1BLVEgc3lzdGVtIVxuIik7CisJCXByaW50aygiV2FybmluZyEgIE5vdCBhIE5VTUEtUSBzeXN0ZW0hXG4iKTsKKwllbHNlCisJCWZvdW5kX251bWFxID0gMTsKKwogCWlmIChtcGMtPm1wY19vZW1wdHIpCiAJCXNtcF9yZWFkX21wY19vZW0oKHN0cnVjdCBtcF9jb25maWdfb2VtdGFibGUgKiltcGMtPm1wY19vZW1wdHIsCiAJCQkJIG1wYy0+bXBjX29lbXNpemUpOwpAQCAtMjgxLDEyICszOTcsOSBAQAogICogUmVhZC9wYXJzZSB0aGUgTVBDCiAgKi8KIAotc3RhdGljIGludCBfX2luaXQgc21wX3JlYWRfbXBjKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywgdW5zaWduZWQgZWFybHkpCitzdGF0aWMgaW50IF9faW5pdCBzbXBfY2hlY2tfbXBjKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywgY2hhciAqb2VtLAorCQkJCWNoYXIgKnN0cikKIHsKLQljaGFyIHN0clsxNl07Ci0JY2hhciBvZW1bMTBdOwotCWludCBjb3VudCA9IHNpemVvZigqbXBjKTsKLQl1bnNpZ25lZCBjaGFyICptcHQgPSAoKHVuc2lnbmVkIGNoYXIgKiltcGMpICsgY291bnQ7CiAKIAlpZiAobWVtY21wKG1wYy0+bXBjX3NpZ25hdHVyZSwgTVBDX1NJR05BVFVSRSwgNCkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJNUFRBQkxFOiBiYWQgc2lnbmF0dXJlIFslYyVjJWMlY10hXG4iLApAQCAtMzA5LDE5ICs0MjIsNDIgQEAKIAl9CiAJbWVtY3B5KG9lbSwgbXBjLT5tcGNfb2VtLCA4KTsKIAlvZW1bOF0gPSAwOwotCXByaW50ayhLRVJOX0lORk8gIk1QVEFCTEU6IE9FTSBJRDogJXMgIiwgb2VtKTsKKwlwcmludGsoS0VSTl9JTkZPICJNUFRBQkxFOiBPRU0gSUQ6ICVzXG4iLCBvZW0pOwogCiAJbWVtY3B5KHN0ciwgbXBjLT5tcGNfcHJvZHVjdGlkLCAxMik7CiAJc3RyWzEyXSA9IDA7Ci0JcHJpbnRrKCJQcm9kdWN0IElEOiAlcyAiLCBzdHIpOwogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCW1wc19vZW1fY2hlY2sobXBjLCBvZW0sIHN0cik7Ci0jZW5kaWYKLQlwcmludGsoS0VSTl9JTkZPICJNUFRBQkxFOiBQcm9kdWN0IElEOiAlcyAiLCBzdHIpOworCXByaW50ayhLRVJOX0lORk8gIk1QVEFCTEU6IFByb2R1Y3QgSUQ6ICVzXG4iLCBzdHIpOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiTVBUQUJMRTogQVBJQyBhdDogMHglWFxuIiwgbXBjLT5tcGNfbGFwaWMpOwogCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHNtcF9yZWFkX21wYyhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIHVuc2lnbmVkIGVhcmx5KQoreworCWNoYXIgc3RyWzE2XTsKKwljaGFyIG9lbVsxMF07CisKKwlpbnQgY291bnQgPSBzaXplb2YoKm1wYyk7CisJdW5zaWduZWQgY2hhciAqbXB0ID0gKCh1bnNpZ25lZCBjaGFyICopbXBjKSArIGNvdW50OworCisJaWYgKCFzbXBfY2hlY2tfbXBjKG1wYywgb2VtLCBzdHIpKQorCQlyZXR1cm4gMDsKKworI2lmZGVmIENPTkZJR19YODZfMzIKKwkvKgorCSAqIG5lZWQgdG8gbWFrZSBzdXJlIHN1bW1pdCBhbmQgZXM3MDAwJ3MgbXBzX29lbV9jaGVjayBpcyBzYWZlIHRvIGJlCisJICogY2FsbGVkIGVhcmx5IHZpYSBnZW5lcmljYXJjaCAncyBtcHNfb2VtX2NoZWNrCisJICovCisJaWYgKGVhcmx5KSB7CisjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQorCQludW1hcV9tcHNfb2VtX2NoZWNrKG1wYywgb2VtLCBzdHIpOworI2VuZGlmCisJfSBlbHNlCisJCW1wc19vZW1fY2hlY2sobXBjLCBvZW0sIHN0cik7CisjZW5kaWYKKwogCS8qIHNhdmUgdGhlIGxvY2FsIEFQSUMgYWRkcmVzcywgaXQgbWlnaHQgYmUgbm9uLWRlZmF1bHQgKi8KIAlpZiAoIWFjcGlfbGFwaWMpCiAJCW1wX2xhcGljX2FkZHIgPSBtcGMtPm1wY19sYXBpYzsKQEAgLTM1Miw3ICs0ODgsOSBAQAogCQkJewogCQkJCXN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSA9CiAJCQkJICAgIChzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKiltcHQ7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCiAJCQkJTVBfYnVzX2luZm8obSk7CisjZW5kaWYKIAkJCQltcHQgKz0gc2l6ZW9mKCptKTsKIAkJCQljb3VudCArPSBzaXplb2YoKm0pOwogCQkJCWJyZWFrOwpAQCAtNDAyLDYgKzU0MCwxMSBAQAogCQkrK21wY19yZWNvcmQ7CiAjZW5kaWYKIAl9CisKKyNpZmRlZiBDT05GSUdfWDg2X0dFTkVSSUNBUkNICisgICAgICAgZ2VuZXJpY19iaWdzbXBfcHJvYmUoKTsKKyNlbmRpZgorCiAJc2V0dXBfYXBpY19yb3V0aW5nKCk7CiAJaWYgKCFudW1fcHJvY2Vzc29ycykKIAkJcHJpbnRrKEtFUk5fRVJSICJNUFRBQkxFOiBubyBwcm9jZXNzb3JzIHJlZ2lzdGVyZWQhXG4iKTsKQEAgLTQyNyw3ICs1NzAsNyBAQAogCWludHNyYy5tcGNfdHlwZSA9IE1QX0lOVFNSQzsKIAlpbnRzcmMubXBjX2lycWZsYWcgPSAwOwkvKiBjb25mb3JtaW5nICovCiAJaW50c3JjLm1wY19zcmNidXMgPSAwOwotCWludHNyYy5tcGNfZHN0YXBpYyA9IG1wX2lvYXBpY3NbMF0ubXBjX2FwaWNpZDsKKwlpbnRzcmMubXBjX2RzdGFwaWMgPSBtcF9pb2FwaWNzWzBdLm1wX2FwaWNpZDsKIAogCWludHNyYy5tcGNfaXJxdHlwZSA9IG1wX0lOVDsKIApAQCAtNDg4LDQwICs2MzEsMTEgQEAKIAlNUF9pbnRzcmNfaW5mbygmaW50c3JjKTsKIH0KIAotI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgY29uc3RydWN0X2RlZmF1bHRfSVNBX21wdGFibGUoaW50IG1wY19kZWZhdWx0X3R5cGUpCitzdGF0aWMgdm9pZCBjb25zdHJ1Y3RfaW9hcGljX3RhYmxlKGludCBtcGNfZGVmYXVsdF90eXBlKQogewotCXN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciBwcm9jZXNzb3I7Ci0Jc3RydWN0IG1wY19jb25maWdfYnVzIGJ1czsKLSNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIAlzdHJ1Y3QgbXBjX2NvbmZpZ19pb2FwaWMgaW9hcGljOwotI2VuZGlmCi0Jc3RydWN0IG1wY19jb25maWdfbGludHNyYyBsaW50c3JjOwotCWludCBsaW50dHlwZXNbMl0gPSB7IG1wX0V4dElOVCwgbXBfTk1JIH07Ci0JaW50IGk7Ci0KLQkvKgotCSAqIGxvY2FsIEFQSUMgaGFzIGRlZmF1bHQgYWRkcmVzcwotCSAqLwotCW1wX2xhcGljX2FkZHIgPSBBUElDX0RFRkFVTFRfUEhZU19CQVNFOwotCi0JLyoKLQkgKiAyIENQVXMsIG51bWJlcmVkIDAgJiAxLgotCSAqLwotCXByb2Nlc3Nvci5tcGNfdHlwZSA9IE1QX1BST0NFU1NPUjsKLQkvKiBFaXRoZXIgYW4gaW50ZWdyYXRlZCBBUElDIG9yIGEgZGlzY3JldGUgODI0ODlEWC4gKi8KLQlwcm9jZXNzb3IubXBjX2FwaWN2ZXIgPSBtcGNfZGVmYXVsdF90eXBlID4gNCA/IDB4MTAgOiAweDAxOwotCXByb2Nlc3Nvci5tcGNfY3B1ZmxhZyA9IENQVV9FTkFCTEVEOwotCXByb2Nlc3Nvci5tcGNfY3B1ZmVhdHVyZSA9IChib290X2NwdV9kYXRhLng4NiA8PCA4KSB8Ci0JICAgIChib290X2NwdV9kYXRhLng4Nl9tb2RlbCA8PCA0KSB8IGJvb3RfY3B1X2RhdGEueDg2X21hc2s7Ci0JcHJvY2Vzc29yLm1wY19mZWF0dXJlZmxhZyA9IGJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHlbMF07Ci0JcHJvY2Vzc29yLm1wY19yZXNlcnZlZFswXSA9IDA7Ci0JcHJvY2Vzc29yLm1wY19yZXNlcnZlZFsxXSA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IDI7IGkrKykgewotCQlwcm9jZXNzb3IubXBjX2FwaWNpZCA9IGk7Ci0JCU1QX3Byb2Nlc3Nvcl9pbmZvKCZwcm9jZXNzb3IpOwotCX0KKwlzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgYnVzOwogCiAJYnVzLm1wY190eXBlID0gTVBfQlVTOwogCWJ1cy5tcGNfYnVzaWQgPSAwOwpAQCAtNTUwLDcgKzY2NCw2IEBACiAJCU1QX2J1c19pbmZvKCZidXMpOwogCX0KIAotI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCWlvYXBpYy5tcGNfdHlwZSA9IE1QX0lPQVBJQzsKIAlpb2FwaWMubXBjX2FwaWNpZCA9IDI7CiAJaW9hcGljLm1wY19hcGljdmVyID0gbXBjX2RlZmF1bHRfdHlwZSA+IDQgPyAweDEwIDogMHgwMTsKQEAgLTU2Miw3ICs2NzUsNDIgQEAKIAkgKiBXZSBzZXQgdXAgbW9zdCBvZiB0aGUgbG93IDE2IElPLUFQSUMgcGlucyBhY2NvcmRpbmcgdG8gTVBTIHJ1bGVzLgogCSAqLwogCWNvbnN0cnVjdF9kZWZhdWx0X2lvaXJxX21wdGFibGUobXBjX2RlZmF1bHRfdHlwZSk7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGNvbnN0cnVjdF9pb2FwaWNfdGFibGUoaW50IG1wY19kZWZhdWx0X3R5cGUpIHsgfQogI2VuZGlmCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgY29uc3RydWN0X2RlZmF1bHRfSVNBX21wdGFibGUoaW50IG1wY19kZWZhdWx0X3R5cGUpCit7CisJc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yIHByb2Nlc3NvcjsKKwlzdHJ1Y3QgbXBjX2NvbmZpZ19saW50c3JjIGxpbnRzcmM7CisJaW50IGxpbnR0eXBlc1syXSA9IHsgbXBfRXh0SU5ULCBtcF9OTUkgfTsKKwlpbnQgaTsKKworCS8qCisJICogbG9jYWwgQVBJQyBoYXMgZGVmYXVsdCBhZGRyZXNzCisJICovCisJbXBfbGFwaWNfYWRkciA9IEFQSUNfREVGQVVMVF9QSFlTX0JBU0U7CisKKwkvKgorCSAqIDIgQ1BVcywgbnVtYmVyZWQgMCAmIDEuCisJICovCisJcHJvY2Vzc29yLm1wY190eXBlID0gTVBfUFJPQ0VTU09SOworCS8qIEVpdGhlciBhbiBpbnRlZ3JhdGVkIEFQSUMgb3IgYSBkaXNjcmV0ZSA4MjQ4OURYLiAqLworCXByb2Nlc3Nvci5tcGNfYXBpY3ZlciA9IG1wY19kZWZhdWx0X3R5cGUgPiA0ID8gMHgxMCA6IDB4MDE7CisJcHJvY2Vzc29yLm1wY19jcHVmbGFnID0gQ1BVX0VOQUJMRUQ7CisJcHJvY2Vzc29yLm1wY19jcHVmZWF0dXJlID0gKGJvb3RfY3B1X2RhdGEueDg2IDw8IDgpIHwKKwkgICAgKGJvb3RfY3B1X2RhdGEueDg2X21vZGVsIDw8IDQpIHwgYm9vdF9jcHVfZGF0YS54ODZfbWFzazsKKwlwcm9jZXNzb3IubXBjX2ZlYXR1cmVmbGFnID0gYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eVswXTsKKwlwcm9jZXNzb3IubXBjX3Jlc2VydmVkWzBdID0gMDsKKwlwcm9jZXNzb3IubXBjX3Jlc2VydmVkWzFdID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7CisJCXByb2Nlc3Nvci5tcGNfYXBpY2lkID0gaTsKKwkJTVBfcHJvY2Vzc29yX2luZm8oJnByb2Nlc3Nvcik7CisJfQorCisJY29uc3RydWN0X2lvYXBpY190YWJsZShtcGNfZGVmYXVsdF90eXBlKTsKKwogCWxpbnRzcmMubXBjX3R5cGUgPSBNUF9MSU5UU1JDOwogCWxpbnRzcmMubXBjX2lycWZsYWcgPSAwOwkvKiBjb25mb3JtaW5nICovCiAJbGludHNyYy5tcGNfc3JjYnVzaWQgPSAwOwpAQCAtNTc4LDEyICs3MjYsMjIgQEAKIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfbXBfZmxvYXRpbmcgKm1wZl9mb3VuZDsKIAogLyoKKyAqIE1hY2hpbmUgc3BlY2lmaWMgcXVpcmsgZm9yIGZpbmRpbmcgdGhlIFNNUCBjb25maWcgYmVmb3JlIG90aGVyIHNldHVwCisgKiBhY3Rpdml0aWVzIGRlc3Ryb3kgdGhlIHRhYmxlOgorICovCitpbnQgKCptYWNoX2dldF9zbXBfY29uZmlnX3F1aXJrKSh1bnNpZ25lZCBpbnQgZWFybHkpOworCisvKgogICogU2NhbiB0aGUgbWVtb3J5IGJsb2NrcyBmb3IgYW4gU01QIGNvbmZpZ3VyYXRpb24gYmxvY2suCiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBfX2dldF9zbXBfY29uZmlnKHVuc2lnbmVkIGVhcmx5KQorc3RhdGljIHZvaWQgX19pbml0IF9fZ2V0X3NtcF9jb25maWcodW5zaWduZWQgaW50IGVhcmx5KQogewogCXN0cnVjdCBpbnRlbF9tcF9mbG9hdGluZyAqbXBmID0gbXBmX2ZvdW5kOwogCisJaWYgKG1hY2hfZ2V0X3NtcF9jb25maWdfcXVpcmspIHsKKwkJaWYgKG1hY2hfZ2V0X3NtcF9jb25maWdfcXVpcmsoZWFybHkpKQorCQkJcmV0dXJuOworCX0KIAlpZiAoYWNwaV9sYXBpYyAmJiBlYXJseSkKIAkJcmV0dXJuOwogCS8qCkBAIC02MDAsNyArNzU4LDcgQEAKIAogCXByaW50ayhLRVJOX0lORk8gIkludGVsIE11bHRpUHJvY2Vzc29yIFNwZWNpZmljYXRpb24gdjEuJWRcbiIsCiAJICAgICAgIG1wZi0+bXBmX3NwZWNpZmljYXRpb24pOwotI2lmZGVmIENPTkZJR19YODZfMzIKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfTE9DQUxfQVBJQykgJiYgZGVmaW5lZChDT05GSUdfWDg2XzMyKQogCWlmIChtcGYtPm1wZl9mZWF0dXJlMiAmICgxIDw8IDcpKSB7CiAJCXByaW50ayhLRVJOX0lORk8gIiAgICBJTUNSIGFuZCBQSUMgY29tcGF0aWJpbGl0eSBtb2RlLlxuIik7CiAJCXBpY19tb2RlID0gMTsKQEAgLTYzMiw3ICs3OTAsOSBAQAogCQkgKiBvdmVycmlkZSB0aGUgZGVmYXVsdHMuCiAJCSAqLwogCQlpZiAoIXNtcF9yZWFkX21wYyhwaHlzX3RvX3ZpcnQobXBmLT5tcGZfcGh5c3B0ciksIGVhcmx5KSkgeworI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwogCQkJc21wX2ZvdW5kX2NvbmZpZyA9IDA7CisjZW5kaWYKIAkJCXByaW50ayhLRVJOX0VSUgogCQkJICAgICAgICJCSU9TIGJ1ZywgTVAgdGFibGUgZXJyb3JzIGRldGVjdGVkIS4uLlxuIik7CiAJCQlwcmludGsoS0VSTl9FUlIgIi4uLiBkaXNhYmxpbmcgU01QIHN1cHBvcnQuICIKQEAgLTY4OSw3ICs4NDksNyBAQAogCXVuc2lnbmVkIGludCAqYnAgPSBwaHlzX3RvX3ZpcnQoYmFzZSk7CiAJc3RydWN0IGludGVsX21wX2Zsb2F0aW5nICptcGY7CiAKLQlEcHJpbnRrKCJTY2FuIFNNUCBmcm9tICVwIGZvciAlbGQgYnl0ZXMuXG4iLCBicCwgbGVuZ3RoKTsKKwlwcmludGsoS0VSTl9ERUJVRyAiU2NhbiBTTVAgZnJvbSAlcCBmb3IgJWxkIGJ5dGVzLlxuIiwgYnAsIGxlbmd0aCk7CiAJQlVJTERfQlVHX09OKHNpemVvZigqbXBmKSAhPSAxNik7CiAKIAl3aGlsZSAobGVuZ3RoID4gMCkgewpAQCAtNjk5LDE1ICs4NTksMjEgQEAKIAkJICAgICFtcGZfY2hlY2tzdW0oKHVuc2lnbmVkIGNoYXIgKilicCwgMTYpICYmCiAJCSAgICAoKG1wZi0+bXBmX3NwZWNpZmljYXRpb24gPT0gMSkKIAkJICAgICB8fCAobXBmLT5tcGZfc3BlY2lmaWNhdGlvbiA9PSA0KSkpIHsKLQorI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwogCQkJc21wX2ZvdW5kX2NvbmZpZyA9IDE7CisjZW5kaWYKIAkJCW1wZl9mb3VuZCA9IG1wZjsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCisKIAkJCXByaW50ayhLRVJOX0lORk8gImZvdW5kIFNNUCBNUC10YWJsZSBhdCBbJXBdICUwOGx4XG4iLAogCQkJICAgICAgIG1wZiwgdmlydF90b19waHlzKG1wZikpOwotCQkJcmVzZXJ2ZV9ib290bWVtKHZpcnRfdG9fcGh5cyhtcGYpLCBQQUdFX1NJWkUsCisKKwkJCWlmICghcmVzZXJ2ZSkKKwkJCQlyZXR1cm4gMTsKKwkJCXJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHZpcnRfdG9fcGh5cyhtcGYpLCBQQUdFX1NJWkUsCiAJCQkJCUJPT1RNRU1fREVGQVVMVCk7CiAJCQlpZiAobXBmLT5tcGZfcGh5c3B0cikgeworCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IFBBR0VfU0laRTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCiAJCQkJLyoKIAkJCQkgKiBXZSBjYW5ub3QgYWNjZXNzIHRvIE1QQyB0YWJsZSB0byBjb21wdXRlCiAJCQkJICogdGFibGUgc2l6ZSB5ZXQsIGFzIG9ubHkgZmV3IG1lZ2FieXRlcyBmcm9tCkBAIC03MTcsMjQgKzg4MywxNSBAQAogCQkJCSAqIFBBR0VfU0laRSBmcm9tIG1wZy0+bXBmX3BoeXNwdHIgeWllbGRzIEJVRygpCiAJCQkJICogaW4gcmVzZXJ2ZV9ib290bWVtLgogCQkJCSAqLwotCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IFBBR0VfU0laRTsKIAkJCQl1bnNpZ25lZCBsb25nIGVuZCA9IG1heF9sb3dfcGZuICogUEFHRV9TSVpFOwogCQkJCWlmIChtcGYtPm1wZl9waHlzcHRyICsgc2l6ZSA+IGVuZCkKIAkJCQkJc2l6ZSA9IGVuZCAtIG1wZi0+bXBmX3BoeXNwdHI7Ci0JCQkJcmVzZXJ2ZV9ib290bWVtKG1wZi0+bXBmX3BoeXNwdHIsIHNpemUsCisjZW5kaWYKKwkJCQlyZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyhtcGYtPm1wZl9waHlzcHRyLCBzaXplLAogCQkJCQkJQk9PVE1FTV9ERUZBVUxUKTsKIAkJCX0KIAotI2Vsc2UKLQkJCWlmICghcmVzZXJ2ZSkKLQkJCQlyZXR1cm4gMTsKLQotCQkJcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWModmlydF90b19waHlzKG1wZiksIFBBR0VfU0laRSk7Ci0JCQlpZiAobXBmLT5tcGZfcGh5c3B0cikKLQkJCQlyZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyhtcGYtPm1wZl9waHlzcHRyLAotCQkJCQkJCVBBR0VfU0laRSk7Ci0jZW5kaWYKLQkJcmV0dXJuIDE7CisJCQlyZXR1cm4gMTsKIAkJfQogCQlicCArPSA0OwogCQlsZW5ndGggLT0gMTY7CkBAIC03NDIsMTAgKzg5OSwxNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBfX2luaXQgX19maW5kX3NtcF9jb25maWcodW5zaWduZWQgcmVzZXJ2ZSkKK2ludCAoKm1hY2hfZmluZF9zbXBfY29uZmlnX3F1aXJrKSh1bnNpZ25lZCBpbnQgcmVzZXJ2ZSk7CisKK3N0YXRpYyB2b2lkIF9faW5pdCBfX2ZpbmRfc21wX2NvbmZpZyh1bnNpZ25lZCBpbnQgcmVzZXJ2ZSkKIHsKIAl1bnNpZ25lZCBpbnQgYWRkcmVzczsKIAorCWlmIChtYWNoX2ZpbmRfc21wX2NvbmZpZ19xdWlyaykgeworCQlpZiAobWFjaF9maW5kX3NtcF9jb25maWdfcXVpcmsocmVzZXJ2ZSkpCisJCQlyZXR1cm47CisJfQogCS8qCiAJICogRklYTUU6IExpbnV4IGFzc3VtZXMgeW91IGhhdmUgNjQwSyBvZiBiYXNlIHJhbS4uCiAJICogdGhpcyBjb250aW51ZXMgdGhlIGVycm9yLi4uCkBAIC03OTAsMjk4ICs5NTMsMjk0IEBACiAJX19maW5kX3NtcF9jb25maWcoMSk7CiB9CiAKLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNQSS1iYXNlZCBNUCBDb25maWd1cmF0aW9uCi0gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQworc3RhdGljIHU4IF9faW5pdGRhdGEgaXJxX3VzZWRbTUFYX0lSUV9TT1VSQ0VTXTsKIAotLyoKLSAqIEtlZXAgdGhpcyBvdXRzaWRlIGFuZCBpbml0aWFsaXplZCB0byAwLCBmb3IgIUNPTkZJR19BQ1BJIGJ1aWxkczoKLSAqLwotaW50IGVzNzAwMF9wbGF0OwotCi0jaWZkZWYgQ09ORklHX0FDUEkKLQotI2lmZGVmCUNPTkZJR19YODZfSU9fQVBJQwotCi0jZGVmaW5lIE1QX0lTQV9CVVMJCTAKLQotZXh0ZXJuIHN0cnVjdCBtcF9pb2FwaWNfcm91dGluZyBtcF9pb2FwaWNfcm91dGluZ1tNQVhfSU9fQVBJQ1NdOwotCi1zdGF0aWMgaW50IG1wX2ZpbmRfaW9hcGljKGludCBnc2kpCitzdGF0aWMgaW50ICBfX2luaXQgZ2V0X01QX2ludHNyY19pbmRleChzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKm0pCiB7Ci0JaW50IGkgPSAwOworCWludCBpOwogCi0JLyogRmluZCB0aGUgSU9BUElDIHRoYXQgbWFuYWdlcyB0aGlzIEdTSS4gKi8KLQlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7Ci0JCWlmICgoZ3NpID49IG1wX2lvYXBpY19yb3V0aW5nW2ldLmdzaV9iYXNlKQotCQkgICAgJiYgKGdzaSA8PSBtcF9pb2FwaWNfcm91dGluZ1tpXS5nc2lfZW5kKSkKLQkJCXJldHVybiBpOworCWlmIChtLT5tcGNfaXJxdHlwZSAhPSBtcF9JTlQpCisJCXJldHVybiAwOworCisJaWYgKG0tPm1wY19pcnFmbGFnICE9IDB4MGYpCisJCXJldHVybiAwOworCisJLyogbm90IGxlZ2FjeSAqLworCisJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKKwkJaWYgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSAhPSBtcF9JTlQpCisJCQljb250aW51ZTsKKworCQlpZiAobXBfaXJxc1tpXS5tcF9pcnFmbGFnICE9IDB4MGYpCisJCQljb250aW51ZTsKKworCQlpZiAobXBfaXJxc1tpXS5tcF9zcmNidXMgIT0gbS0+bXBjX3NyY2J1cykKKwkJCWNvbnRpbnVlOworCQlpZiAobXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgIT0gbS0+bXBjX3NyY2J1c2lycSkKKwkJCWNvbnRpbnVlOworCQlpZiAoaXJxX3VzZWRbaV0pIHsKKwkJCS8qIGFscmVhZHkgY2xhaW1lZCAqLworCQkJcmV0dXJuIC0yOworCQl9CisJCWlycV91c2VkW2ldID0gMTsKKwkJcmV0dXJuIGk7CiAJfQogCi0JcHJpbnRrKEtFUk5fRVJSICJFUlJPUjogVW5hYmxlIHRvIGxvY2F0ZSBJT0FQSUMgZm9yIEdTSSAlZFxuIiwgZ3NpKTsKKwkvKiBub3QgZm91bmQgKi8KIAlyZXR1cm4gLTE7CiB9CiAKLXN0YXRpYyB1OCBfX2luaXQgdW5pcV9pb2FwaWNfaWQodTggaWQpCi17Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCWlmICgoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwpICYmCi0JICAgICFBUElDX1hBUElDKGFwaWNfdmVyc2lvbltib290X2NwdV9waHlzaWNhbF9hcGljaWRdKSkKLQkJcmV0dXJuIGlvX2FwaWNfZ2V0X3VuaXF1ZV9pZChucl9pb2FwaWNzLCBpZCk7Ci0JZWxzZQotCQlyZXR1cm4gaWQ7Ci0jZWxzZQotCWludCBpOwotCURFQ0xBUkVfQklUTUFQKHVzZWQsIDI1Nik7Ci0JYml0bWFwX3plcm8odXNlZCwgMjU2KTsKLQlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7Ci0JCXN0cnVjdCBtcGNfY29uZmlnX2lvYXBpYyAqaWEgPSAmbXBfaW9hcGljc1tpXTsKLQkJX19zZXRfYml0KGlhLT5tcGNfYXBpY2lkLCB1c2VkKTsKLQl9Ci0JaWYgKCF0ZXN0X2JpdChpZCwgdXNlZCkpCi0JCXJldHVybiBpZDsKLQlyZXR1cm4gZmluZF9maXJzdF96ZXJvX2JpdCh1c2VkLCAyNTYpOworI2RlZmluZSBTUEFSRV9TTE9UX05VTSAyMAorCitzdGF0aWMgc3RydWN0IG1wY19jb25maWdfaW50c3JjIF9faW5pdGRhdGEgKm1fc3BhcmVbU1BBUkVfU0xPVF9OVU1dOwogI2VuZGlmCi19CiAKLXZvaWQgX19pbml0IG1wX3JlZ2lzdGVyX2lvYXBpYyhpbnQgaWQsIHUzMiBhZGRyZXNzLCB1MzIgZ3NpX2Jhc2UpCitzdGF0aWMgaW50ICBfX2luaXQgcmVwbGFjZV9pbnRzcmNfYWxsKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywKKwkJCQkJdW5zaWduZWQgbG9uZyBtcGNfbmV3X3BoeXMsCisJCQkJCXVuc2lnbmVkIGxvbmcgbXBjX25ld19sZW5ndGgpCiB7Ci0JaW50IGlkeCA9IDA7Ci0KLQlpZiAoYmFkX2lvYXBpYyhhZGRyZXNzKSkKLQkJcmV0dXJuOwotCi0JaWR4ID0gbnJfaW9hcGljczsKLQotCW1wX2lvYXBpY3NbaWR4XS5tcGNfdHlwZSA9IE1QX0lPQVBJQzsKLQltcF9pb2FwaWNzW2lkeF0ubXBjX2ZsYWdzID0gTVBDX0FQSUNfVVNBQkxFOwotCW1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2FkZHIgPSBhZGRyZXNzOwotCi0Jc2V0X2ZpeG1hcF9ub2NhY2hlKEZJWF9JT19BUElDX0JBU0VfMCArIGlkeCwgYWRkcmVzcyk7Ci0JbXBfaW9hcGljc1tpZHhdLm1wY19hcGljaWQgPSB1bmlxX2lvYXBpY19pZChpZCk7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCW1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY3ZlciA9IGlvX2FwaWNfZ2V0X3ZlcnNpb24oaWR4KTsKLSNlbHNlCi0JbXBfaW9hcGljc1tpZHhdLm1wY19hcGljdmVyID0gMDsKLSNlbmRpZgotCS8qCi0JICogQnVpbGQgYmFzaWMgR1NJIGxvb2t1cCB0YWJsZSB0byBmYWNpbGl0YXRlIGdzaS0+aW9fYXBpYyBsb29rdXBzCi0JICogYW5kIHRvIHByZXZlbnQgcmVwcm9ncmFtbWluZyBvZiBJT0FQSUMgcGlucyAoUENJIEdTSXMpLgotCSAqLwotCW1wX2lvYXBpY19yb3V0aW5nW2lkeF0uYXBpY19pZCA9IG1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2lkOwotCW1wX2lvYXBpY19yb3V0aW5nW2lkeF0uZ3NpX2Jhc2UgPSBnc2lfYmFzZTsKLQltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9lbmQgPSBnc2lfYmFzZSArCi0JICAgIGlvX2FwaWNfZ2V0X3JlZGlyX2VudHJpZXMoaWR4KTsKLQotCXByaW50ayhLRVJOX0lORk8gIklPQVBJQ1slZF06IGFwaWNfaWQgJWQsIHZlcnNpb24gJWQsIGFkZHJlc3MgMHgleCwgIgotCSAgICAgICAiR1NJICVkLSVkXG4iLCBpZHgsIG1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2lkLAotCSAgICAgICBtcF9pb2FwaWNzW2lkeF0ubXBjX2FwaWN2ZXIsIG1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2FkZHIsCi0JICAgICAgIG1wX2lvYXBpY19yb3V0aW5nW2lkeF0uZ3NpX2Jhc2UsIG1wX2lvYXBpY19yb3V0aW5nW2lkeF0uZ3NpX2VuZCk7Ci0KLQlucl9pb2FwaWNzKys7Ci19Ci0KLXZvaWQgX19pbml0IG1wX292ZXJyaWRlX2xlZ2FjeV9pcnEodTggYnVzX2lycSwgdTggcG9sYXJpdHksIHU4IHRyaWdnZXIsIHUzMiBnc2kpCi17Ci0Jc3RydWN0IG1wY19jb25maWdfaW50c3JjIGludHNyYzsKLQlpbnQgaW9hcGljID0gLTE7Ci0JaW50IHBpbiA9IC0xOwotCi0JLyoKLQkgKiBDb252ZXJ0ICdnc2knIHRvICdpb2FwaWMucGluJy4KLQkgKi8KLQlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYyhnc2kpOwotCWlmIChpb2FwaWMgPCAwKQotCQlyZXR1cm47Ci0JcGluID0gZ3NpIC0gbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5nc2lfYmFzZTsKLQotCS8qCi0JICogVEJEOiBUaGlzIGNoZWNrIGlzIGZvciBmYXVsdHkgdGltZXIgZW50cmllcywgd2hlcmUgdGhlIG92ZXJyaWRlCi0JICogICAgICBlcnJvbmVvdXNseSBzZXRzIHRoZSB0cmlnZ2VyIHRvIGxldmVsLCByZXN1bHRpbmcgaW4gYSBIVUdFCi0JICogICAgICBpbmNyZWFzZSBvZiB0aW1lciBpbnRlcnJ1cHRzIQotCSAqLwotCWlmICgoYnVzX2lycSA9PSAwKSAmJiAodHJpZ2dlciA9PSAzKSkKLQkJdHJpZ2dlciA9IDE7Ci0KLQlpbnRzcmMubXBjX3R5cGUgPSBNUF9JTlRTUkM7Ci0JaW50c3JjLm1wY19pcnF0eXBlID0gbXBfSU5UOwotCWludHNyYy5tcGNfaXJxZmxhZyA9ICh0cmlnZ2VyIDw8IDIpIHwgcG9sYXJpdHk7Ci0JaW50c3JjLm1wY19zcmNidXMgPSBNUF9JU0FfQlVTOwotCWludHNyYy5tcGNfc3JjYnVzaXJxID0gYnVzX2lycTsJLyogSVJRICovCi0JaW50c3JjLm1wY19kc3RhcGljID0gbXBfaW9hcGljc1tpb2FwaWNdLm1wY19hcGljaWQ7CS8qIEFQSUMgSUQgKi8KLQlpbnRzcmMubXBjX2RzdGlycSA9IHBpbjsJLyogSU5USU4jICovCi0KLQlNUF9pbnRzcmNfaW5mbygmaW50c3JjKTsKLX0KLQotdm9pZCBfX2luaXQgbXBfY29uZmlnX2FjcGlfbGVnYWN5X2lycXModm9pZCkKLXsKLQlzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgaW50c3JjOwotCWludCBpID0gMDsKLQlpbnQgaW9hcGljID0gLTE7Ci0KLSNpZiBkZWZpbmVkIChDT05GSUdfTUNBKSB8fCBkZWZpbmVkIChDT05GSUdfRUlTQSkKLQkvKgotCSAqIEZhYnJpY2F0ZSB0aGUgbGVnYWN5IElTQSBidXMgKGJ1cyAjMzEpLgotCSAqLwotCW1wX2J1c19pZF90b190eXBlW01QX0lTQV9CVVNdID0gTVBfQlVTX0lTQTsKLSNlbmRpZgotCXNldF9iaXQoTVBfSVNBX0JVUywgbXBfYnVzX25vdF9wY2kpOwotCURwcmludGsoIkJ1cyAjJWQgaXMgSVNBXG4iLCBNUF9JU0FfQlVTKTsKLQotCS8qCi0JICogT2xkZXIgZ2VuZXJhdGlvbnMgb2YgRVM3MDAwIGhhdmUgbm8gbGVnYWN5IGlkZW50aXR5IG1hcHBpbmdzCi0JICovCi0JaWYgKGVzNzAwMF9wbGF0ID09IDEpCi0JCXJldHVybjsKLQotCS8qCi0JICogTG9jYXRlIHRoZSBJT0FQSUMgdGhhdCBtYW5hZ2VzIHRoZSBJU0EgSVJRcyAoMC0xNSkuCi0JICovCi0JaW9hcGljID0gbXBfZmluZF9pb2FwaWMoMCk7Ci0JaWYgKGlvYXBpYyA8IDApCi0JCXJldHVybjsKLQotCWludHNyYy5tcGNfdHlwZSA9IE1QX0lOVFNSQzsKLQlpbnRzcmMubXBjX2lycWZsYWcgPSAwOwkvKiBDb25mb3JtaW5nICovCi0JaW50c3JjLm1wY19zcmNidXMgPSBNUF9JU0FfQlVTOwogI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwotCWludHNyYy5tcGNfZHN0YXBpYyA9IG1wX2lvYXBpY3NbaW9hcGljXS5tcGNfYXBpY2lkOworCWludCBpOworCWludCBucl9tX3NwYXJlID0gMDsKICNlbmRpZgotCS8qCi0JICogVXNlIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBJUlFzIDAtMTUuICBVbmxlc3MKLQkgKiBvdmVycmlkZGVuIGJ5IChNQURUKSBpbnRlcnJ1cHQgc291cmNlIG92ZXJyaWRlIGVudHJpZXMuCi0JICovCi0JZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKLQkJaW50IGlkeDsKIAotCQlmb3IgKGlkeCA9IDA7IGlkeCA8IG1wX2lycV9lbnRyaWVzOyBpZHgrKykgewotCQkJc3RydWN0IG1wY19jb25maWdfaW50c3JjICppcnEgPSBtcF9pcnFzICsgaWR4OworCWludCBjb3VudCA9IHNpemVvZigqbXBjKTsKKwl1bnNpZ25lZCBjaGFyICptcHQgPSAoKHVuc2lnbmVkIGNoYXIgKiltcGMpICsgY291bnQ7CiAKLQkJCS8qIERvIHdlIGFscmVhZHkgaGF2ZSBhIG1hcHBpbmcgZm9yIHRoaXMgSVNBIElSUT8gKi8KLQkJCWlmIChpcnEtPm1wY19zcmNidXMgPT0gTVBfSVNBX0JVUwotCQkJICAgICYmIGlycS0+bXBjX3NyY2J1c2lycSA9PSBpKQorCXByaW50ayhLRVJOX0lORk8gIm1wY19sZW5ndGggJXhcbiIsIG1wYy0+bXBjX2xlbmd0aCk7CisJd2hpbGUgKGNvdW50IDwgbXBjLT5tcGNfbGVuZ3RoKSB7CisJCXN3aXRjaCAoKm1wdCkgeworCQljYXNlIE1QX1BST0NFU1NPUjoKKwkJCXsKKwkJCQlzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgKm0gPQorCQkJCSAgICAoc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICopbXB0OworCQkJCW1wdCArPSBzaXplb2YoKm0pOworCQkJCWNvdW50ICs9IHNpemVvZigqbSk7CiAJCQkJYnJlYWs7Ci0KLQkJCS8qIERvIHdlIGFscmVhZHkgaGF2ZSBhIG1hcHBpbmcgZm9yIHRoaXMgSU9BUElDIHBpbiAqLwotCQkJaWYgKChpcnEtPm1wY19kc3RhcGljID09IGludHNyYy5tcGNfZHN0YXBpYykgJiYKLQkJCSAgICAoaXJxLT5tcGNfZHN0aXJxID09IGkpKQorCQkJfQorCQljYXNlIE1QX0JVUzoKKwkJCXsKKwkJCQlzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKm0gPQorCQkJCSAgICAoc3RydWN0IG1wY19jb25maWdfYnVzICopbXB0OworCQkJCW1wdCArPSBzaXplb2YoKm0pOworCQkJCWNvdW50ICs9IHNpemVvZigqbSk7CiAJCQkJYnJlYWs7CisJCQl9CisJCWNhc2UgTVBfSU9BUElDOgorCQkJeworCQkJCW1wdCArPSBzaXplb2Yoc3RydWN0IG1wY19jb25maWdfaW9hcGljKTsKKwkJCQljb3VudCArPSBzaXplb2Yoc3RydWN0IG1wY19jb25maWdfaW9hcGljKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJY2FzZSBNUF9JTlRTUkM6CisJCQl7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCisJCQkJc3RydWN0IG1wY19jb25maWdfaW50c3JjICptID0KKwkJCQkgICAgKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqKW1wdDsKKworCQkJCXByaW50ayhLRVJOX0lORk8gIk9MRCAiKTsKKwkJCQlwcmludF9NUF9pbnRzcmNfaW5mbyhtKTsKKwkJCQlpID0gZ2V0X01QX2ludHNyY19pbmRleChtKTsKKwkJCQlpZiAoaSA+IDApIHsKKwkJCQkJYXNzaWduX3RvX21wY19pbnRzcmMoJm1wX2lycXNbaV0sIG0pOworCQkJCQlwcmludGsoS0VSTl9JTkZPICJORVcgIik7CisJCQkJCXByaW50X21wX2lycV9pbmZvKCZtcF9pcnFzW2ldKTsKKwkJCQl9IGVsc2UgaWYgKCFpKSB7CisJCQkJCS8qIGxlZ2FjeSwgZG8gbm90aGluZyAqLworCQkJCX0gZWxzZSBpZiAobnJfbV9zcGFyZSA8IFNQQVJFX1NMT1RfTlVNKSB7CisJCQkJCS8qCisJCQkJCSAqIG5vdCBmb3VuZCAoLTEpLCBvciBkdXBsaWNhdGVkICgtMikKKwkJCQkJICogYXJlIGludmFsaWQgZW50cmllcywKKwkJCQkJICogd2UgbmVlZCB0byB1c2UgdGhlIHNsb3QgIGxhdGVyCisJCQkJCSAqLworCQkJCQltX3NwYXJlW25yX21fc3BhcmVdID0gbTsKKwkJCQkJbnJfbV9zcGFyZSsrOworCQkJCX0KKyNlbmRpZgorCQkJCW1wdCArPSBzaXplb2Yoc3RydWN0IG1wY19jb25maWdfaW50c3JjKTsKKwkJCQljb3VudCArPSBzaXplb2Yoc3RydWN0IG1wY19jb25maWdfaW50c3JjKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJY2FzZSBNUF9MSU5UU1JDOgorCQkJeworCQkJCXN0cnVjdCBtcGNfY29uZmlnX2xpbnRzcmMgKm0gPQorCQkJCSAgICAoc3RydWN0IG1wY19jb25maWdfbGludHNyYyAqKW1wdDsKKwkJCQltcHQgKz0gc2l6ZW9mKCptKTsKKwkJCQljb3VudCArPSBzaXplb2YoKm0pOworCQkJCWJyZWFrOworCQkJfQorCQlkZWZhdWx0OgorCQkJLyogd3JvbmcgbXB0YWJsZSAqLworCQkJcHJpbnRrKEtFUk5fRVJSICJZb3VyIG1wdGFibGUgaXMgd3JvbmcsIGNvbnRhY3QgeW91ciBIVyB2ZW5kb3IhXG4iKTsKKwkJCXByaW50ayhLRVJOX0VSUiAidHlwZSAleFxuIiwgKm1wdCk7CisJCQlwcmludF9oZXhfZHVtcChLRVJOX0VSUiwgIiAgIiwgRFVNUF9QUkVGSVhfQUREUkVTUywgMTYsCisJCQkJCTEsIG1wYywgbXBjLT5tcGNfbGVuZ3RoLCAxKTsKKwkJCWdvdG8gb3V0OwogCQl9Ci0KLQkJaWYgKGlkeCAhPSBtcF9pcnFfZW50cmllcykgewotCQkJcHJpbnRrKEtFUk5fREVCVUcgIkFDUEk6IElSUSVkIHVzZWQgYnkgb3ZlcnJpZGUuXG4iLCBpKTsKLQkJCWNvbnRpbnVlOwkvKiBJUlEgYWxyZWFkeSB1c2VkICovCi0JCX0KLQotCQlpbnRzcmMubXBjX2lycXR5cGUgPSBtcF9JTlQ7Ci0JCWludHNyYy5tcGNfc3JjYnVzaXJxID0gaTsJLyogSWRlbnRpdHkgbWFwcGVkICovCi0JCWludHNyYy5tcGNfZHN0aXJxID0gaTsKLQotCQlNUF9pbnRzcmNfaW5mbygmaW50c3JjKTsKLQl9Ci19Ci0KLWludCBtcF9yZWdpc3Rlcl9nc2kodTMyIGdzaSwgaW50IHRyaWdnZXJpbmcsIGludCBwb2xhcml0eSkKLXsKLQlpbnQgaW9hcGljOwotCWludCBpb2FwaWNfcGluOwotI2lmZGVmIENPTkZJR19YODZfMzIKLSNkZWZpbmUgTUFYX0dTSV9OVU0JNDA5NgotI2RlZmluZSBJUlFfQ09NUFJFU1NJT05fU1RBUlQJNjQKLQotCXN0YXRpYyBpbnQgcGNpX2lycSA9IElSUV9DT01QUkVTU0lPTl9TVEFSVDsKLQkvKgotCSAqIE1hcHBpbmcgYmV0d2VlbiBHbG9iYWwgU3lzdGVtIEludGVycnVwdHMsIHdoaWNoCi0JICogcmVwcmVzZW50IGFsbCBwb3NzaWJsZSBpbnRlcnJ1cHRzLCBhbmQgSVJRcwotCSAqIGFzc2lnbmVkIHRvIGFjdHVhbCBkZXZpY2VzLgotCSAqLwotCXN0YXRpYyBpbnQgZ3NpX3RvX2lycVtNQVhfR1NJX05VTV07Ci0jZWxzZQotCi0JaWYgKGFjcGlfaXJxX21vZGVsICE9IEFDUElfSVJRX01PREVMX0lPQVBJQykKLQkJcmV0dXJuIGdzaTsKLSNlbmRpZgotCi0JLyogRG9uJ3Qgc2V0IHVwIHRoZSBBQ1BJIFNDSSBiZWNhdXNlIGl0J3MgYWxyZWFkeSBzZXQgdXAgKi8KLQlpZiAoYWNwaV9nYmxfRkFEVC5zY2lfaW50ZXJydXB0ID09IGdzaSkKLQkJcmV0dXJuIGdzaTsKLQotCWlvYXBpYyA9IG1wX2ZpbmRfaW9hcGljKGdzaSk7Ci0JaWYgKGlvYXBpYyA8IDApIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiTm8gSU9BUElDIGZvciBHU0kgJXVcbiIsIGdzaSk7Ci0JCXJldHVybiBnc2k7CiAJfQogCi0JaW9hcGljX3BpbiA9IGdzaSAtIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uZ3NpX2Jhc2U7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCisJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKKwkJaWYgKGlycV91c2VkW2ldKQorCQkJY29udGludWU7CiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0JaWYgKGlvYXBpY19yZW51bWJlcl9pcnEpCi0JCWdzaSA9IGlvYXBpY19yZW51bWJlcl9pcnEoaW9hcGljLCBnc2kpOwotI2VuZGlmCisJCWlmIChtcF9pcnFzW2ldLm1wX2lycXR5cGUgIT0gbXBfSU5UKQorCQkJY29udGludWU7CiAKLQkvKgotCSAqIEF2b2lkIHBpbiByZXByb2dyYW1taW5nLiAgUFJUcyB0eXBpY2FsbHkgaW5jbHVkZSBlbnRyaWVzCi0JICogd2l0aCByZWR1bmRhbnQgcGluLT5nc2kgbWFwcGluZ3MgKGJ1dCB1bmlxdWUgUENJIGRldmljZXMpOwotCSAqIHdlIG9ubHkgcHJvZ3JhbSB0aGUgSU9BUElDIG9uIHRoZSBmaXJzdC4KLQkgKi8KLQlpZiAoaW9hcGljX3BpbiA+IE1QX01BWF9JT0FQSUNfUElOKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCByZWZlcmVuY2UgdG8gSU9BUElDIHBpbiAiCi0JCSAgICAgICAiJWQtJWRcbiIsIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uYXBpY19pZCwKLQkJICAgICAgIGlvYXBpY19waW4pOwotCQlyZXR1cm4gZ3NpOwotCX0KLQlpZiAodGVzdF9iaXQoaW9hcGljX3BpbiwgbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5waW5fcHJvZ3JhbW1lZCkpIHsKLQkJRHByaW50ayhLRVJOX0RFQlVHICJQaW4gJWQtJWQgYWxyZWFkeSBwcm9ncmFtbWVkXG4iLAotCQkJbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5hcGljX2lkLCBpb2FwaWNfcGluKTsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0JCXJldHVybiAoZ3NpIDwgSVJRX0NPTVBSRVNTSU9OX1NUQVJUID8gZ3NpIDogZ3NpX3RvX2lycVtnc2ldKTsKLSNlbHNlCi0JCXJldHVybiBnc2k7Ci0jZW5kaWYKLQl9CisJCWlmIChtcF9pcnFzW2ldLm1wX2lycWZsYWcgIT0gMHgwZikKKwkJCWNvbnRpbnVlOwogCi0Jc2V0X2JpdChpb2FwaWNfcGluLCBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLnBpbl9wcm9ncmFtbWVkKTsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0JLyoKLQkgKiBGb3IgR1NJID49IDY0LCB1c2UgSVJRIGNvbXByZXNzaW9uCi0JICovCi0JaWYgKChnc2kgPj0gSVJRX0NPTVBSRVNTSU9OX1NUQVJUKQotCSAgICAmJiAodHJpZ2dlcmluZyA9PSBBQ1BJX0xFVkVMX1NFTlNJVElWRSkpIHsKLQkJLyoKLQkJICogRm9yIFBDSSBkZXZpY2VzIGFzc2lnbiBJUlFzIGluIG9yZGVyLCBhdm9pZGluZyBnYXBzCi0JCSAqIGR1ZSB0byB1bnVzZWQgSS9PIEFQSUMgcGlucy4KLQkJICovCi0JCWludCBpcnEgPSBnc2k7Ci0JCWlmIChnc2kgPCBNQVhfR1NJX05VTSkgewotCQkJLyoKLQkJCSAqIFJldGFpbiB0aGUgVklBIGNoaXBzZXQgd29yay1hcm91bmQgKGdzaSA+IDE1KSwgYnV0Ci0JCQkgKiBhdm9pZCBhIHByb2JsZW0gd2hlcmUgdGhlIDgyNTQgdGltZXIgKElSUTApIGlzIHNldHVwCi0JCQkgKiB2aWEgYW4gb3ZlcnJpZGUgKHNvIGl0J3Mgbm90IG9uIHBpbiAwIG9mIHRoZSBpb2FwaWMpLAotCQkJICogYW5kIGF0IHRoZSBzYW1lIHRpbWUsIHRoZSBwaW4gMCBpbnRlcnJ1cHQgaXMgYSBQQ0kKLQkJCSAqIHR5cGUuICBUaGUgZ3NpID4gMTUgdGVzdCBjb3VsZCBjYXVzZSB0aGVzZSB0d28gcGlucwotCQkJICogdG8gYmUgc2hhcmVkIGFzIElSUTAsIGFuZCB0aGV5IGFyZSBub3Qgc2hhcmVhYmxlLgotCQkJICogU28gdGVzdCBmb3IgdGhpcyBjb25kaXRpb24sIGFuZCBpZiBuZWNlc3NhcnksIGF2b2lkCi0JCQkgKiB0aGUgcGluIGNvbGxpc2lvbi4KLQkJCSAqLwotCQkJZ3NpID0gcGNpX2lycSsrOwotCQkJLyoKLQkJCSAqIERvbid0IGFzc2lnbiBJUlEgdXNlZCBieSBBQ1BJIFNDSQotCQkJICovCi0JCQlpZiAoZ3NpID09IGFjcGlfZ2JsX0ZBRFQuc2NpX2ludGVycnVwdCkKLQkJCQlnc2kgPSBwY2lfaXJxKys7Ci0JCQlnc2lfdG9faXJxW2lycV0gPSBnc2k7CisJCWlmIChucl9tX3NwYXJlID4gMCkgeworCQkJcHJpbnRrKEtFUk5fSU5GTyAiKk5FVyogZm91bmQgIik7CisJCQlucl9tX3NwYXJlLS07CisJCQlhc3NpZ25fdG9fbXBjX2ludHNyYygmbXBfaXJxc1tpXSwgbV9zcGFyZVtucl9tX3NwYXJlXSk7CisJCQltX3NwYXJlW25yX21fc3BhcmVdID0gTlVMTDsKIAkJfSBlbHNlIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiR1NJICV1IGlzIHRvbyBoaWdoXG4iLCBnc2kpOwotCQkJcmV0dXJuIGdzaTsKKwkJCXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSA9CisJCQkgICAgKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqKW1wdDsKKwkJCWNvdW50ICs9IHNpemVvZihzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMpOworCQkJaWYgKCFtcGNfbmV3X3BoeXMpIHsKKwkJCQlwcmludGsoS0VSTl9JTkZPICJObyBzcGFyZSBzbG90cywgdHJ5IHRvIGFwcGVuZC4uLnRha2UgeW91ciByaXNrLCBuZXcgbXBjX2xlbmd0aCAleFxuIiwgY291bnQpOworCQkJfSBlbHNlIHsKKwkJCQlpZiAoY291bnQgPD0gbXBjX25ld19sZW5ndGgpCisJCQkJCXByaW50ayhLRVJOX0lORk8gIk5vIHNwYXJlIHNsb3RzLCB0cnkgdG8gYXBwZW5kLi4uLCBuZXcgbXBjX2xlbmd0aCAleFxuIiwgY291bnQpOworCQkJCWVsc2UgeworCQkJCQlwcmludGsoS0VSTl9FUlIgIm1wY19uZXdfbGVuZ3RoICVseCBpcyB0b28gc21hbGxcbiIsIG1wY19uZXdfbGVuZ3RoKTsKKwkJCQkJZ290byBvdXQ7CisJCQkJfQorCQkJfQorCQkJYXNzaWduX3RvX21wY19pbnRzcmMoJm1wX2lycXNbaV0sIG0pOworCQkJbXBjLT5tcGNfbGVuZ3RoID0gY291bnQ7CisJCQltcHQgKz0gc2l6ZW9mKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyk7CiAJCX0KKwkJcHJpbnRfbXBfaXJxX2luZm8oJm1wX2lycXNbaV0pOwogCX0KICNlbmRpZgotCWlvX2FwaWNfc2V0X3BjaV9yb3V0aW5nKGlvYXBpYywgaW9hcGljX3BpbiwgZ3NpLAotCQkJCXRyaWdnZXJpbmcgPT0gQUNQSV9FREdFX1NFTlNJVElWRSA/IDAgOiAxLAotCQkJCXBvbGFyaXR5ID09IEFDUElfQUNUSVZFX0hJR0ggPyAwIDogMSk7Ci0JcmV0dXJuIGdzaTsKK291dDoKKwkvKiB1cGRhdGUgY2hlY2tzdW0gKi8KKwltcGMtPm1wY19jaGVja3N1bSA9IDA7CisJbXBjLT5tcGNfY2hlY2tzdW0gLT0gbXBmX2NoZWNrc3VtKCh1bnNpZ25lZCBjaGFyICopbXBjLAorCQkJCQkgICBtcGMtPm1wY19sZW5ndGgpOworCisJcmV0dXJuIDA7CiB9CiAKLSNlbmRpZiAvKiBDT05GSUdfWDg2X0lPX0FQSUMgKi8KLSNlbmRpZiAvKiBDT05GSUdfQUNQSSAqLworc3RhdGljIGludCBfX2luaXRkYXRhIGVuYWJsZV91cGRhdGVfbXB0YWJsZTsKKworc3RhdGljIGludCBfX2luaXQgdXBkYXRlX21wdGFibGVfc2V0dXAoY2hhciAqc3RyKQoreworCWVuYWJsZV91cGRhdGVfbXB0YWJsZSA9IDE7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgidXBkYXRlX21wdGFibGUiLCB1cGRhdGVfbXB0YWJsZV9zZXR1cCk7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgbXBjX25ld19waHlzOworc3RhdGljIHVuc2lnbmVkIGxvbmcgbXBjX25ld19sZW5ndGggX19pbml0ZGF0YSA9IDQwOTY7CisKKy8qIGFsbG9jX21wdGFibGUgb3IgYWxsb2NfbXB0YWJsZT00ayAqLworc3RhdGljIGludCBfX2luaXRkYXRhIGFsbG9jX21wdGFibGU7CitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9hbGxvY19tcHRhYmxlX29wdChjaGFyICpwKQoreworCWVuYWJsZV91cGRhdGVfbXB0YWJsZSA9IDE7CisJYWxsb2NfbXB0YWJsZSA9IDE7CisJaWYgKCFwKQorCQlyZXR1cm4gMDsKKwltcGNfbmV3X2xlbmd0aCA9IG1lbXBhcnNlKHAsICZwKTsKKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJhbGxvY19tcHRhYmxlIiwgcGFyc2VfYWxsb2NfbXB0YWJsZV9vcHQpOworCit2b2lkIF9faW5pdCBlYXJseV9yZXNlcnZlX2U4MjBfbXBjX25ldyh2b2lkKQoreworCWlmIChlbmFibGVfdXBkYXRlX21wdGFibGUgJiYgYWxsb2NfbXB0YWJsZSkgeworCQl1NjQgc3RhcnR0ID0gMDsKKyNpZmRlZiBDT05GSUdfWDg2X1RSQU1QT0xJTkUKKwkJc3RhcnR0ID0gVFJBTVBPTElORV9CQVNFOworI2VuZGlmCisJCW1wY19uZXdfcGh5cyA9IGVhcmx5X3Jlc2VydmVfZTgyMChzdGFydHQsIG1wY19uZXdfbGVuZ3RoLCA0KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHVwZGF0ZV9tcF90YWJsZSh2b2lkKQoreworCWNoYXIgc3RyWzE2XTsKKwljaGFyIG9lbVsxMF07CisJc3RydWN0IGludGVsX21wX2Zsb2F0aW5nICptcGY7CisJc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjOworCXN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wY19uZXc7CisKKwlpZiAoIWVuYWJsZV91cGRhdGVfbXB0YWJsZSkKKwkJcmV0dXJuIDA7CisKKwltcGYgPSBtcGZfZm91bmQ7CisJaWYgKCFtcGYpCisJCXJldHVybiAwOworCisJLyoKKwkgKiBOb3cgc2VlIGlmIHdlIG5lZWQgdG8gZ28gZnVydGhlci4KKwkgKi8KKwlpZiAobXBmLT5tcGZfZmVhdHVyZTEgIT0gMCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIW1wZi0+bXBmX3BoeXNwdHIpCisJCXJldHVybiAwOworCisJbXBjID0gcGh5c190b192aXJ0KG1wZi0+bXBmX3BoeXNwdHIpOworCisJaWYgKCFzbXBfY2hlY2tfbXBjKG1wYywgb2VtLCBzdHIpKQorCQlyZXR1cm4gMDsKKworCXByaW50ayhLRVJOX0lORk8gIm1wZjogJWx4XG4iLCB2aXJ0X3RvX3BoeXMobXBmKSk7CisJcHJpbnRrKEtFUk5fSU5GTyAibXBmX3BoeXNwdHI6ICV4XG4iLCBtcGYtPm1wZl9waHlzcHRyKTsKKworCWlmIChtcGNfbmV3X3BoeXMgJiYgbXBjLT5tcGNfbGVuZ3RoID4gbXBjX25ld19sZW5ndGgpIHsKKwkJbXBjX25ld19waHlzID0gMDsKKwkJcHJpbnRrKEtFUk5fSU5GTyAibXBjX25ld19sZW5ndGggaXMgJWxkLCBwbGVhc2UgdXNlIGFsbG9jX21wdGFibGU9OGtcbiIsCisJCQkgbXBjX25ld19sZW5ndGgpOworCX0KKworCWlmICghbXBjX25ld19waHlzKSB7CisJCXVuc2lnbmVkIGNoYXIgb2xkLCBuZXc7CisJCS8qIGNoZWNrIGlmIHdlIGNhbiBjaGFuZ2UgdGhlIHBvc3Rpb24gKi8KKwkJbXBjLT5tcGNfY2hlY2tzdW0gPSAwOworCQlvbGQgPSBtcGZfY2hlY2tzdW0oKHVuc2lnbmVkIGNoYXIgKiltcGMsIG1wYy0+bXBjX2xlbmd0aCk7CisJCW1wYy0+bXBjX2NoZWNrc3VtID0gMHhmZjsKKwkJbmV3ID0gbXBmX2NoZWNrc3VtKCh1bnNpZ25lZCBjaGFyICopbXBjLCBtcGMtPm1wY19sZW5ndGgpOworCQlpZiAob2xkID09IG5ldykgeworCQkJcHJpbnRrKEtFUk5fSU5GTyAibXBjIGlzIHJlYWRvbmx5LCBwbGVhc2UgdHJ5IGFsbG9jX21wdGFibGUgaW5zdGVhZFxuIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlwcmludGsoS0VSTl9JTkZPICJ1c2UgaW4tcG9zaXRvbiByZXBsYWNpbmdcbiIpOworCX0gZWxzZSB7CisJCW1wZi0+bXBmX3BoeXNwdHIgPSBtcGNfbmV3X3BoeXM7CisJCW1wY19uZXcgPSBwaHlzX3RvX3ZpcnQobXBjX25ld19waHlzKTsKKwkJbWVtY3B5KG1wY19uZXcsIG1wYywgbXBjLT5tcGNfbGVuZ3RoKTsKKwkJbXBjID0gbXBjX25ldzsKKwkJLyogY2hlY2sgaWYgd2UgY2FuIG1vZGlmeSB0aGF0ICovCisJCWlmIChtcGNfbmV3X3BoeXMgLSBtcGYtPm1wZl9waHlzcHRyKSB7CisJCQlzdHJ1Y3QgaW50ZWxfbXBfZmxvYXRpbmcgKm1wZl9uZXc7CisJCQkvKiBzdGVhbCAxNiBieXRlcyBmcm9tIFswLCAxaykgKi8KKwkJCXByaW50ayhLRVJOX0lORk8gIm1wZiBuZXc6ICV4XG4iLCAweDQwMCAtIDE2KTsKKwkJCW1wZl9uZXcgPSBwaHlzX3RvX3ZpcnQoMHg0MDAgLSAxNik7CisJCQltZW1jcHkobXBmX25ldywgbXBmLCAxNik7CisJCQltcGYgPSBtcGZfbmV3OworCQkJbXBmLT5tcGZfcGh5c3B0ciA9IG1wY19uZXdfcGh5czsKKwkJfQorCQltcGYtPm1wZl9jaGVja3N1bSA9IDA7CisJCW1wZi0+bXBmX2NoZWNrc3VtIC09IG1wZl9jaGVja3N1bSgodW5zaWduZWQgY2hhciAqKW1wZiwgMTYpOworCQlwcmludGsoS0VSTl9JTkZPICJtcGZfcGh5c3B0ciBuZXc6ICV4XG4iLCBtcGYtPm1wZl9waHlzcHRyKTsKKwl9CisKKwkvKgorCSAqIG9ubHkgcmVwbGFjZSB0aGUgb25lIHdpdGggbXBfSU5UIGFuZAorCSAqCSBNUF9JUlFfVFJJR0dFUl9MRVZFTHxNUF9JUlFfUE9MQVJJVFlfTE9XLAorCSAqIGFscmVhZHkgaW4gbXBfaXJxcyAsIHN0b3JlZCBieSAuLi4gYW5kIG1wX2NvbmZpZ19hY3BpX2dzaSwKKwkgKiBtYXkgbmVlZCBwY2k9cm91dGVpcnEgZm9yIGFsbCBjb3ZlcmFnZQorCSAqLworCXJlcGxhY2VfaW50c3JjX2FsbChtcGMsIG1wY19uZXdfcGh5cywgbXBjX25ld19sZW5ndGgpOworCisJcmV0dXJuIDA7Cit9CisKK2xhdGVfaW5pdGNhbGwodXBkYXRlX21wX3RhYmxlKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9tc3IuYyBiL2FyY2gveDg2L2tlcm5lbC9tc3IuYwppbmRleCAxZjNhYmUwLi5hMTUzYjM5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbXNyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL21zci5jCkBAIC0xMTcsMTIgKzExNywyMCBAQAogewogCXVuc2lnbmVkIGludCBjcHUgPSBpbWlub3IoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSk7CiAJc3RydWN0IGNwdWluZm9feDg2ICpjID0gJmNwdV9kYXRhKGNwdSk7CisJaW50IHJldCA9IDA7CiAKLQlpZiAoY3B1ID49IE5SX0NQVVMgfHwgIWNwdV9vbmxpbmUoY3B1KSkKLQkJcmV0dXJuIC1FTlhJTzsJLyogTm8gc3VjaCBDUFUgKi8KKwlsb2NrX2tlcm5lbCgpOworCWNwdSA9IGltaW5vcihmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKTsKKworCWlmIChjcHUgPj0gTlJfQ1BVUyB8fCAhY3B1X29ubGluZShjcHUpKSB7CisJCXJldCA9IC1FTlhJTzsJLyogTm8gc3VjaCBDUFUgKi8KKwkJZ290byBvdXQ7CisJfQorCWMgPSAmY3B1X2RhdGEoY3B1KTsKIAlpZiAoIWNwdV9oYXMoYywgWDg2X0ZFQVRVUkVfTVNSKSkKLQkJcmV0dXJuIC1FSU87CS8qIE1TUiBub3Qgc3VwcG9ydGVkICovCi0KKwkJcmV0ID0gLUVJTzsJLyogTVNSIG5vdCBzdXBwb3J0ZWQgKi8KK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9ubWkuYyBiL2FyY2gveDg2L2tlcm5lbC9ubWkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzAyNGIzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL25taS5jCkBAIC0wLDAgKzEsNTE2IEBACisvKgorICogIE5NSSB3YXRjaGRvZyBzdXBwb3J0IG9uIEFQSUMgc3lzdGVtcworICoKKyAqICBTdGFydGVkIGJ5IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgorICoKKyAqICBGaXhlczoKKyAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IEFNRCBLNyBzdXBwb3J0IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KKyAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBvd2VyIE1hbmFnZW1lbnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgorICogIE1pa2FlbCBQZXR0ZXJzc29uCTogUGVudGl1bSA0IHN1cHBvcnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgorICogIFBhdmVsIE1hY2hlayBhbmQKKyAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBNIGNvbnZlcnRlZCB0byBkcml2ZXIgbW9kZWwuIERpc2FibGUvZW5hYmxlIEFQSS4KKyAqLworCisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKworI2luY2x1ZGUgPGxpbnV4L25taS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNjdGwuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9rcHJvYmVzLmg+CisjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgva2RlYnVnLmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CisKKyNpbmNsdWRlIDxhc20vaTgyNTkuaD4KKyNpbmNsdWRlIDxhc20vaW9fYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxhc20vbm1pLmg+CisjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CisKKyNpbmNsdWRlIDxhc20vbWNlLmg+CisKKyNpbmNsdWRlIDxtYWNoX3RyYXBzLmg+CisKK2ludCB1bmtub3duX25taV9wYW5pYzsKK2ludCBubWlfd2F0Y2hkb2dfZW5hYmxlZDsKKworc3RhdGljIGNwdW1hc2tfdCBiYWNrdHJhY2VfbWFzayA9IENQVV9NQVNLX05PTkU7CisKKy8qIG5taV9hY3RpdmU6CisgKiA+MDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBhY3RpdmUsIGJ1dCBjYW4gYmUgZGlzYWJsZWQKKyAqIDwwOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGhhcyBub3QgYmVlbiBzZXQgdXAsIGFuZCBjYW5ub3QKKyAqICAgICBiZSBlbmFibGVkCisgKiAgMDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBkaXNhYmxlZCwgYnV0IGNhbiBiZSBlbmFibGVkCisgKi8KK2F0b21pY190IG5taV9hY3RpdmUgPSBBVE9NSUNfSU5JVCgwKTsJCS8qIG9wcm9maWxlIHVzZXMgdGhpcyAqLworRVhQT1JUX1NZTUJPTChubWlfYWN0aXZlKTsKKwordW5zaWduZWQgaW50IG5taV93YXRjaGRvZyA9IE5NSV9OT05FOworRVhQT1JUX1NZTUJPTChubWlfd2F0Y2hkb2cpOworCitzdGF0aWMgaW50IHBhbmljX29uX3RpbWVvdXQ7CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbm1pX2h6ID0gSFo7CitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc2hvcnQsIHdkX2VuYWJsZWQpOworc3RhdGljIGludCBlbmRmbGFnIF9faW5pdGRhdGE7CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGdldF9ubWlfY291bnQoaW50IGNwdSkKK3sKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJcmV0dXJuIGNwdV9wZGEoY3B1KS0+X19ubWlfY291bnQ7CisjZWxzZQorCXJldHVybiBubWlfY291bnQoY3B1KTsKKyNlbmRpZgorfQorCitzdGF0aWMgaW5saW5lIGludCBtY2VfaW5fcHJvZ3Jlc3Modm9pZCkKK3sKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpICYmIGRlZmluZWQoQ09ORklHX1g4Nl9NQ0UpCisJcmV0dXJuIGF0b21pY19yZWFkKCZtY2VfZW50cnkpID4gMDsKKyNlbmRpZgorCXJldHVybiAwOworfQorCisvKgorICogVGFrZSB0aGUgbG9jYWwgYXBpYyB0aW1lciBhbmQgUElUL0hQRVQgaW50byBhY2NvdW50LiBXZSBkb24ndAorICoga25vdyB3aGljaCBvbmUgaXMgYWN0aXZlLCB3aGVuIHdlIGhhdmUgaGlnaHJlcy9keW50aWNrIG9uCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGdldF90aW1lcl9pcnFzKGludCBjcHUpCit7CisjaWZkZWYgQ09ORklHX1g4Nl82NAorCXJldHVybiByZWFkX3BkYShhcGljX3RpbWVyX2lycXMpICsgcmVhZF9wZGEoaXJxMF9pcnFzKTsKKyNlbHNlCisJcmV0dXJuIHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuYXBpY190aW1lcl9pcnFzICsKKwkJcGVyX2NwdShpcnFfc3RhdCwgY3B1KS5pcnEwX2lycXM7CisjZW5kaWYKK30KKworI2lmZGVmIENPTkZJR19TTVAKKy8qCisgKiBUaGUgcGVyZm9ybWFuY2UgY291bnRlcnMgdXNlZCBieSBOTUlfTE9DQUxfQVBJQyBkb24ndCB0cmlnZ2VyIHdoZW4KKyAqIHRoZSBDUFUgaXMgaWRsZS4gVG8gbWFrZSBzdXJlIHRoZSBOTUkgd2F0Y2hkb2cgcmVhbGx5IHRpY2tzIG9uIGFsbAorICogQ1BVcyBkdXJpbmcgdGhlIHRlc3QgbWFrZSB0aGVtIGJ1c3kuCisgKi8KK3N0YXRpYyBfX2luaXQgdm9pZCBubWlfY3B1X2J1c3kodm9pZCAqZGF0YSkKK3sKKwlsb2NhbF9pcnFfZW5hYmxlX2luX2hhcmRpcnEoKTsKKwkvKgorCSAqIEludGVudGlvbmFsbHkgZG9uJ3QgdXNlIGNwdV9yZWxheCBoZXJlLiBUaGlzIGlzCisJICogdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVhbGx5IHRpY2tzLAorCSAqIGV2ZW4gaWYgdGhlcmUgaXMgYSBzaW11bGF0b3Igb3Igc2ltaWxhciB0aGF0IGNhdGNoZXMgdGhlCisJICogcGF1c2UgaW5zdHJ1Y3Rpb24uIE9uIGEgcmVhbCBIVCBtYWNoaW5lIHRoaXMgaXMgZmluZSBiZWNhdXNlCisJICogYWxsIG90aGVyIENQVXMgYXJlIGJ1c3kgd2l0aCAidXNlbGVzcyIgZGVsYXkgbG9vcHMgYW5kIGRvbid0CisJICogY2FyZSBpZiB0aGV5IGdldCBzb21ld2hhdCBsZXNzIGN5Y2xlcy4KKwkgKi8KKwl3aGlsZSAoZW5kZmxhZyA9PSAwKQorCQltYigpOworfQorI2VuZGlmCisKK2ludCBfX2luaXQgY2hlY2tfbm1pX3dhdGNoZG9nKHZvaWQpCit7CisJdW5zaWduZWQgaW50ICpwcmV2X25taV9jb3VudDsKKwlpbnQgY3B1OworCisJaWYgKCFubWlfd2F0Y2hkb2dfYWN0aXZlKCkgfHwgIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkKKwkJcmV0dXJuIDA7CisKKwlwcmV2X25taV9jb3VudCA9IGttYWxsb2MobnJfY3B1X2lkcyAqIHNpemVvZihpbnQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByZXZfbm1pX2NvdW50KQorCQlnb3RvIGVycm9yOworCisJcHJpbnRrKEtFUk5fSU5GTyAiVGVzdGluZyBOTUkgd2F0Y2hkb2cgLi4uICIpOworCisjaWZkZWYgQ09ORklHX1NNUAorCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpCisJCXNtcF9jYWxsX2Z1bmN0aW9uKG5taV9jcHVfYnVzeSwgKHZvaWQgKikmZW5kZmxhZywgMCk7CisjZW5kaWYKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpCisJCXByZXZfbm1pX2NvdW50W2NwdV0gPSBnZXRfbm1pX2NvdW50KGNwdSk7CisJbG9jYWxfaXJxX2VuYWJsZSgpOworCW1kZWxheSgoMjAgKiAxMDAwKSAvIG5taV9oeik7IC8qIHdhaXQgMjAgdGlja3MgKi8KKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CisJCWlmICghcGVyX2NwdSh3ZF9lbmFibGVkLCBjcHUpKQorCQkJY29udGludWU7CisJCWlmIChnZXRfbm1pX2NvdW50KGNwdSkgLSBwcmV2X25taV9jb3VudFtjcHVdIDw9IDUpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6IENQVSMlZDogTk1JICIKKwkJCQkiYXBwZWFycyB0byBiZSBzdHVjayAoJWQtPiVkKSFcbiIsCisJCQkJY3B1LAorCQkJCXByZXZfbm1pX2NvdW50W2NwdV0sCisJCQkJZ2V0X25taV9jb3VudChjcHUpKTsKKwkJCXBlcl9jcHUod2RfZW5hYmxlZCwgY3B1KSA9IDA7CisJCQlhdG9taWNfZGVjKCZubWlfYWN0aXZlKTsKKwkJfQorCX0KKwllbmRmbGFnID0gMTsKKwlpZiAoIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkgeworCQlrZnJlZShwcmV2X25taV9jb3VudCk7CisJCWF0b21pY19zZXQoJm5taV9hY3RpdmUsIC0xKTsKKwkJZ290byBlcnJvcjsKKwl9CisJcHJpbnRrKCJPSy5cbiIpOworCisJLyoKKwkgKiBub3cgdGhhdCB3ZSBrbm93IGl0IHdvcmtzIHdlIGNhbiByZWR1Y2UgTk1JIGZyZXF1ZW5jeSB0bworCSAqIHNvbWV0aGluZyBtb3JlIHJlYXNvbmFibGU7IG1ha2VzIGEgZGlmZmVyZW5jZSBpbiBzb21lIGNvbmZpZ3MKKwkgKi8KKwlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQorCQlubWlfaHogPSBsYXBpY19hZGp1c3Rfbm1pX2h6KDEpOworCisJa2ZyZWUocHJldl9ubWlfY291bnQpOworCXJldHVybiAwOworZXJyb3I6CisJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQyAmJiAhdGltZXJfdGhyb3VnaF84MjU5KQorCQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJdGltZXJfYWNrID0gMDsKKyNlbmRpZgorCXJldHVybiAtMTsKK30KKworc3RhdGljIGludCBfX2luaXQgc2V0dXBfbm1pX3dhdGNoZG9nKGNoYXIgKnN0cikKK3sKKwl1bnNpZ25lZCBpbnQgbm1pOworCisJaWYgKCFzdHJuY21wKHN0ciwgInBhbmljIiwgNSkpIHsKKwkJcGFuaWNfb25fdGltZW91dCA9IDE7CisJCXN0ciA9IHN0cmNocihzdHIsICcsJyk7CisJCWlmICghc3RyKQorCQkJcmV0dXJuIDE7CisJCSsrc3RyOworCX0KKworCWdldF9vcHRpb24oJnN0ciwgJm5taSk7CisKKwlpZiAobm1pID49IE5NSV9JTlZBTElEKQorCQlyZXR1cm4gMDsKKworCW5taV93YXRjaGRvZyA9IG5taTsKKwlyZXR1cm4gMTsKK30KK19fc2V0dXAoIm5taV93YXRjaGRvZz0iLCBzZXR1cF9ubWlfd2F0Y2hkb2cpOworCisvKgorICogU3VzcGVuZC9yZXN1bWUgc3VwcG9ydAorICovCisjaWZkZWYgQ09ORklHX1BNCisKK3N0YXRpYyBpbnQgbm1pX3BtX2FjdGl2ZTsgLyogbm1pX2FjdGl2ZSBiZWZvcmUgc3VzcGVuZCAqLworCitzdGF0aWMgaW50IGxhcGljX25taV9zdXNwZW5kKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwkvKiBvbmx5IENQVTAgZ29lcyBoZXJlLCBvdGhlciBDUFVzIHNob3VsZCBiZSBvZmZsaW5lICovCisJbm1pX3BtX2FjdGl2ZSA9IGF0b21pY19yZWFkKCZubWlfYWN0aXZlKTsKKwlzdG9wX2FwaWNfbm1pX3dhdGNoZG9nKE5VTEwpOworCUJVR19PTihhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgIT0gMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbGFwaWNfbm1pX3Jlc3VtZShzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2KQoreworCS8qIG9ubHkgQ1BVMCBnb2VzIGhlcmUsIG90aGVyIENQVXMgc2hvdWxkIGJlIG9mZmxpbmUgKi8KKwlpZiAobm1pX3BtX2FjdGl2ZSA+IDApIHsKKwkJc2V0dXBfYXBpY19ubWlfd2F0Y2hkb2coTlVMTCk7CisJCXRvdWNoX25taV93YXRjaGRvZygpOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3Mgbm1pX3N5c2NsYXNzID0geworCS5uYW1lCQk9ICJsYXBpY19ubWkiLAorCS5yZXN1bWUJCT0gbGFwaWNfbm1pX3Jlc3VtZSwKKwkuc3VzcGVuZAk9IGxhcGljX25taV9zdXNwZW5kLAorfTsKKworc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIGRldmljZV9sYXBpY19ubWkgPSB7CisJLmlkCT0gMCwKKwkuY2xzCT0gJm5taV9zeXNjbGFzcywKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXRfbGFwaWNfbm1pX3N5c2ZzKHZvaWQpCit7CisJaW50IGVycm9yOworCisJLyoKKwkgKiBzaG91bGQgcmVhbGx5IGJlIGEgQlVHX09OIGJ1dCBiL2MgdGhpcyBpcyBhbgorCSAqIGluaXQgY2FsbCwgaXQganVzdCBkb2Vzbid0IHdvcmsuICAtZGN6CisJICovCisJaWYgKG5taV93YXRjaGRvZyAhPSBOTUlfTE9DQUxfQVBJQykKKwkJcmV0dXJuIDA7CisKKwlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpIDwgMCkKKwkJcmV0dXJuIDA7CisKKwllcnJvciA9IHN5c2Rldl9jbGFzc19yZWdpc3Rlcigmbm1pX3N5c2NsYXNzKTsKKwlpZiAoIWVycm9yKQorCQllcnJvciA9IHN5c2Rldl9yZWdpc3RlcigmZGV2aWNlX2xhcGljX25taSk7CisJcmV0dXJuIGVycm9yOworfQorCisvKiBtdXN0IGNvbWUgYWZ0ZXIgdGhlIGxvY2FsIEFQSUMncyBkZXZpY2VfaW5pdGNhbGwoKSAqLworbGF0ZV9pbml0Y2FsbChpbml0X2xhcGljX25taV9zeXNmcyk7CisKKyNlbmRpZgkvKiBDT05GSUdfUE0gKi8KKworc3RhdGljIHZvaWQgX19hY3BpX25taV9lbmFibGUodm9pZCAqX191bnVzZWQpCit7CisJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0RNX05NSSk7Cit9CisKKy8qCisgKiBFbmFibGUgdGltZXIgYmFzZWQgTk1JcyBvbiBhbGwgQ1BVczoKKyAqLwordm9pZCBhY3BpX25taV9lbmFibGUodm9pZCkKK3sKKwlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICYmIG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykKKwkJb25fZWFjaF9jcHUoX19hY3BpX25taV9lbmFibGUsIE5VTEwsIDEpOworfQorCitzdGF0aWMgdm9pZCBfX2FjcGlfbm1pX2Rpc2FibGUodm9pZCAqX191bnVzZWQpCit7CisJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0RNX05NSSB8IEFQSUNfTFZUX01BU0tFRCk7Cit9CisKKy8qCisgKiBEaXNhYmxlIHRpbWVyIGJhc2VkIE5NSXMgb24gYWxsIENQVXM6CisgKi8KK3ZvaWQgYWNwaV9ubWlfZGlzYWJsZSh2b2lkKQoreworCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgJiYgbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQorCQlvbl9lYWNoX2NwdShfX2FjcGlfbm1pX2Rpc2FibGUsIE5VTEwsIDEpOworfQorCit2b2lkIHNldHVwX2FwaWNfbm1pX3dhdGNoZG9nKHZvaWQgKnVudXNlZCkKK3sKKwlpZiAoX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSkKKwkJcmV0dXJuOworCisJLyogY2hlYXAgaGFjayB0byBzdXBwb3J0IHN1c3BlbmQvcmVzdW1lICovCisJLyogaWYgY3B1MCBpcyBub3QgYWN0aXZlIG5laXRoZXIgc2hvdWxkIHRoZSBvdGhlciBjcHVzICovCisJaWYgKHNtcF9wcm9jZXNzb3JfaWQoKSAhPSAwICYmIGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8PSAwKQorCQlyZXR1cm47CisKKwlzd2l0Y2ggKG5taV93YXRjaGRvZykgeworCWNhc2UgTk1JX0xPQ0FMX0FQSUM6CisJCSAvKiBlbmFibGUgaXQgYmVmb3JlIHRvIGF2b2lkIHJhY2Ugd2l0aCBoYW5kbGVyICovCisJCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAxOworCQlpZiAobGFwaWNfd2F0Y2hkb2dfaW5pdChubWlfaHopIDwgMCkgeworCQkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDA7CisJCQlyZXR1cm47CisJCX0KKwkJLyogRkFMTCBUSFJPVUdIICovCisJY2FzZSBOTUlfSU9fQVBJQzoKKwkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDE7CisJCWF0b21pY19pbmMoJm5taV9hY3RpdmUpOworCX0KK30KKwordm9pZCBzdG9wX2FwaWNfbm1pX3dhdGNoZG9nKHZvaWQgKnVudXNlZCkKK3sKKwkvKiBvbmx5IHN1cHBvcnQgTE9DQUwgYW5kIElPIEFQSUNzIGZvciBub3cgKi8KKwlpZiAoIW5taV93YXRjaGRvZ19hY3RpdmUoKSkKKwkJcmV0dXJuOworCWlmIChfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID09IDApCisJCXJldHVybjsKKwlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQorCQlsYXBpY193YXRjaGRvZ19zdG9wKCk7CisJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDA7CisJYXRvbWljX2RlYygmbm1pX2FjdGl2ZSk7Cit9CisKKy8qCisgKiB0aGUgYmVzdCB3YXkgdG8gZGV0ZWN0IHdoZXRoZXIgYSBDUFUgaGFzIGEgJ2hhcmQgbG9ja3VwJyBwcm9ibGVtCisgKiBpcyB0byBjaGVjayBpdCdzIGxvY2FsIEFQSUMgdGltZXIgSVJRIGNvdW50cy4gSWYgdGhleSBhcmUgbm90CisgKiBjaGFuZ2luZyB0aGVuIHRoYXQgQ1BVIGhhcyBzb21lIHByb2JsZW0uCisgKgorICogYXMgdGhlc2Ugd2F0Y2hkb2cgTk1JIElSUXMgYXJlIGdlbmVyYXRlZCBvbiBldmVyeSBDUFUsIHdlIG9ubHkKKyAqIGhhdmUgdG8gY2hlY2sgdGhlIGN1cnJlbnQgcHJvY2Vzc29yLgorICoKKyAqIHNpbmNlIE5NSXMgZG9uJ3QgbGlzdGVuIHRvIF9hbnlfIGxvY2tzLCB3ZSBoYXZlIHRvIGJlIGV4dHJlbWVseQorICogY2FyZWZ1bCBub3QgdG8gcmVseSBvbiB1bnNhZmUgdmFyaWFibGVzLiBUaGUgcHJpbnRrIG1pZ2h0IGxvY2sKKyAqIHVwIHRob3VnaCwgc28gd2UgaGF2ZSB0byBicmVhayB1cCBhbnkgY29uc29sZSBsb2NrcyBmaXJzdCAuLi4KKyAqIFt3aGVuIHRoZXJlIHdpbGwgYmUgbW9yZSB0dHktcmVsYXRlZCBsb2NrcywgYnJlYWsgdGhlbSB1cCBoZXJlIHRvbyFdCisgKi8KKworc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkLCBsYXN0X2lycV9zdW0pOworc3RhdGljIERFRklORV9QRVJfQ1BVKGxvY2FsX3QsIGFsZXJ0X2NvdW50ZXIpOworc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgbm1pX3RvdWNoKTsKKwordm9pZCB0b3VjaF9ubWlfd2F0Y2hkb2codm9pZCkKK3sKKwlpZiAobm1pX3dhdGNoZG9nX2FjdGl2ZSgpKSB7CisJCXVuc2lnbmVkIGNwdTsKKworCQkvKgorCQkgKiBUZWxsIG90aGVyIENQVXMgdG8gcmVzZXQgdGhlaXIgYWxlcnQgY291bnRlcnMuIFdlIGNhbm5vdAorCQkgKiBkbyBpdCBvdXJzZWx2ZXMgYmVjYXVzZSB0aGUgYWxlcnQgY291bnQgaW5jcmVhc2UgaXMgbm90CisJCSAqIGF0b21pYy4KKwkJICovCisJCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkgeworCQkJaWYgKHBlcl9jcHUobm1pX3RvdWNoLCBjcHUpICE9IDEpCisJCQkJcGVyX2NwdShubWlfdG91Y2gsIGNwdSkgPSAxOworCQl9CisJfQorCisJLyoKKwkgKiBUaWNrbGUgdGhlIHNvZnRsb2NrdXAgZGV0ZWN0b3IgdG9vOgorCSAqLworCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKK30KK0VYUE9SVF9TWU1CT0wodG91Y2hfbm1pX3dhdGNoZG9nKTsKKworbm90cmFjZSBfX2twcm9iZXMgaW50CitubWlfd2F0Y2hkb2dfdGljayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgcmVhc29uKQoreworCS8qCisJICogU2luY2UgY3VycmVudF90aHJlYWRfaW5mbygpLT4gaXMgYWx3YXlzIG9uIHRoZSBzdGFjaywgYW5kIHdlCisJICogYWx3YXlzIHN3aXRjaCB0aGUgc3RhY2sgTk1JLWF0b21pY2FsbHksIGl0J3Mgc2FmZSB0byB1c2UKKwkgKiBzbXBfcHJvY2Vzc29yX2lkKCkuCisJICovCisJdW5zaWduZWQgaW50IHN1bTsKKwlpbnQgdG91Y2hlZCA9IDA7CisJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwlpbnQgcmMgPSAwOworCisJLyogY2hlY2sgZm9yIG90aGVyIHVzZXJzIGZpcnN0ICovCisJaWYgKG5vdGlmeV9kaWUoRElFX05NSSwgIm5taSIsIHJlZ3MsIHJlYXNvbiwgMiwgU0lHSU5UKQorCQkJPT0gTk9USUZZX1NUT1ApIHsKKwkJcmMgPSAxOworCQl0b3VjaGVkID0gMTsKKwl9CisKKwlzdW0gPSBnZXRfdGltZXJfaXJxcyhjcHUpOworCisJaWYgKF9fZ2V0X2NwdV92YXIobm1pX3RvdWNoKSkgeworCQlfX2dldF9jcHVfdmFyKG5taV90b3VjaCkgPSAwOworCQl0b3VjaGVkID0gMTsKKwl9CisKKwlpZiAoY3B1X2lzc2V0KGNwdSwgYmFja3RyYWNlX21hc2spKSB7CisJCXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobG9jayk7CS8qIFNlcmlhbGlzZSB0aGUgcHJpbnRrcyAqLworCisJCXNwaW5fbG9jaygmbG9jayk7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIk5NSSBiYWNrdHJhY2UgZm9yIGNwdSAlZFxuIiwgY3B1KTsKKwkJZHVtcF9zdGFjaygpOworCQlzcGluX3VubG9jaygmbG9jayk7CisJCWNwdV9jbGVhcihjcHUsIGJhY2t0cmFjZV9tYXNrKTsKKwl9CisKKwkvKiBDb3VsZCBjaGVjayBvb3BzX2luX3Byb2dyZXNzIGhlcmUgdG9vLCBidXQgaXQncyBzYWZlciBub3QgdG8gKi8KKwlpZiAobWNlX2luX3Byb2dyZXNzKCkpCisJCXRvdWNoZWQgPSAxOworCisJLyogaWYgdGhlIG5vbmUgb2YgdGhlIHRpbWVycyBpc24ndCBmaXJpbmcsIHRoaXMgY3B1IGlzbid0IGRvaW5nIG11Y2ggKi8KKwlpZiAoIXRvdWNoZWQgJiYgX19nZXRfY3B1X3ZhcihsYXN0X2lycV9zdW0pID09IHN1bSkgeworCQkvKgorCQkgKiBBeWllZSwgbG9va3MgbGlrZSB0aGlzIENQVSBpcyBzdHVjayAuLi4KKwkJICogd2FpdCBhIGZldyBJUlFzICg1IHNlY29uZHMpIGJlZm9yZSBkb2luZyB0aGUgb29wcyAuLi4KKwkJICovCisJCWxvY2FsX2luYygmX19nZXRfY3B1X3ZhcihhbGVydF9jb3VudGVyKSk7CisJCWlmIChsb2NhbF9yZWFkKCZfX2dldF9jcHVfdmFyKGFsZXJ0X2NvdW50ZXIpKSA9PSA1ICogbm1pX2h6KQorCQkJLyoKKwkJCSAqIGRpZV9ubWkgd2lsbCByZXR1cm4gT05MWSBpZiBOT1RJRllfU1RPUCBoYXBwZW5zLi4KKwkJCSAqLworCQkJZGllX25taSgiQlVHOiBOTUkgV2F0Y2hkb2cgZGV0ZWN0ZWQgTE9DS1VQIiwKKwkJCQlyZWdzLCBwYW5pY19vbl90aW1lb3V0KTsKKwl9IGVsc2UgeworCQlfX2dldF9jcHVfdmFyKGxhc3RfaXJxX3N1bSkgPSBzdW07CisJCWxvY2FsX3NldCgmX19nZXRfY3B1X3ZhcihhbGVydF9jb3VudGVyKSwgMCk7CisJfQorCisJLyogc2VlIGlmIHRoZSBubWkgd2F0Y2hkb2cgd2VudCBvZmYgKi8KKwlpZiAoIV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkpCisJCXJldHVybiByYzsKKwlzd2l0Y2ggKG5taV93YXRjaGRvZykgeworCWNhc2UgTk1JX0xPQ0FMX0FQSUM6CisJCXJjIHw9IGxhcGljX3dkX2V2ZW50KG5taV9oeik7CisJCWJyZWFrOworCWNhc2UgTk1JX0lPX0FQSUM6CisJCS8qCisJCSAqIGRvbid0IGtub3cgaG93IHRvIGFjY3VyYXRlbHkgY2hlY2sgZm9yIHRoaXMuCisJCSAqIGp1c3QgYXNzdW1lIGl0IHdhcyBhIHdhdGNoZG9nIHRpbWVyIGludGVycnVwdAorCQkgKiBUaGlzIG1hdGNoZXMgdGhlIG9sZCBiZWhhdmlvdXIuCisJCSAqLworCQlyYyA9IDE7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gcmM7Cit9CisKKyNpZmRlZiBDT05GSUdfU1lTQ1RMCisKK3N0YXRpYyBpbnQgdW5rbm93bl9ubWlfcGFuaWNfY2FsbGJhY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGludCBjcHUpCit7CisJdW5zaWduZWQgY2hhciByZWFzb24gPSBnZXRfbm1pX3JlYXNvbigpOworCWNoYXIgYnVmWzY0XTsKKworCXNwcmludGYoYnVmLCAiTk1JIHJlY2VpdmVkIGZvciB1bmtub3duIHJlYXNvbiAlMDJ4XG4iLCByZWFzb24pOworCWRpZV9ubWkoYnVmLCByZWdzLCAxKTsgLyogQWx3YXlzIHBhbmljIGhlcmUgKi8KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIHByb2MgaGFuZGxlciBmb3IgL3Byb2Mvc3lzL2tlcm5lbC9ubWkKKyAqLworaW50IHByb2Nfbm1pX2VuYWJsZWQoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwgc3RydWN0IGZpbGUgKmZpbGUsCisJCQl2b2lkIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgKmxlbmd0aCwgbG9mZl90ICpwcG9zKQoreworCWludCBvbGRfc3RhdGU7CisKKwlubWlfd2F0Y2hkb2dfZW5hYmxlZCA9IChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPiAwKSA/IDEgOiAwOworCW9sZF9zdGF0ZSA9IG5taV93YXRjaGRvZ19lbmFibGVkOworCXByb2NfZG9pbnR2ZWModGFibGUsIHdyaXRlLCBmaWxlLCBidWZmZXIsIGxlbmd0aCwgcHBvcyk7CisJaWYgKCEhb2xkX3N0YXRlID09ICEhbm1pX3dhdGNoZG9nX2VuYWJsZWQpCisJCXJldHVybiAwOworCisJaWYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8IDAgfHwgIW5taV93YXRjaGRvZ19hY3RpdmUoKSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiTk1JIHdhdGNoZG9nIGlzIHBlcm1hbmVudGx5IGRpc2FibGVkXG4iKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykgeworCQlpZiAobm1pX3dhdGNoZG9nX2VuYWJsZWQpCisJCQllbmFibGVfbGFwaWNfbm1pX3dhdGNoZG9nKCk7CisJCWVsc2UKKwkJCWRpc2FibGVfbGFwaWNfbm1pX3dhdGNoZG9nKCk7CisJfSBlbHNlIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIk5NSSB3YXRjaGRvZyBkb2Vzbid0IGtub3cgd2hhdCBoYXJkd2FyZSB0byB0b3VjaFxuIik7CisJCXJldHVybiAtRUlPOworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIENPTkZJR19TWVNDVEwgKi8KKworaW50IGRvX25taV9jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKK3sKKyNpZmRlZiBDT05GSUdfU1lTQ1RMCisJaWYgKHVua25vd25fbm1pX3BhbmljKQorCQlyZXR1cm4gdW5rbm93bl9ubWlfcGFuaWNfY2FsbGJhY2socmVncywgY3B1KTsKKyNlbmRpZgorCXJldHVybiAwOworfQorCit2b2lkIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSh2b2lkKQoreworCWludCBpOworCisJYmFja3RyYWNlX21hc2sgPSBjcHVfb25saW5lX21hcDsKKwkvKiBXYWl0IGZvciB1cCB0byAxMCBzZWNvbmRzIGZvciBhbGwgQ1BVcyB0byBkbyB0aGUgYmFja3RyYWNlICovCisJZm9yIChpID0gMDsgaSA8IDEwICogMTAwMDsgaSsrKSB7CisJCWlmIChjcHVzX2VtcHR5KGJhY2t0cmFjZV9tYXNrKSkKKwkJCWJyZWFrOworCQltZGVsYXkoMSk7CisJfQorfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL25taV8zMi5jIGIvYXJjaC94ODYva2VybmVsL25taV8zMi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTAwOGUwLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9ubWlfMzIuYworKysgL2Rldi9udWxsCkBAIC0xLDQ2NyArMCwwIEBACi0vKgotICogIE5NSSB3YXRjaGRvZyBzdXBwb3J0IG9uIEFQSUMgc3lzdGVtcwotICoKLSAqICBTdGFydGVkIGJ5IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgotICoKLSAqICBGaXhlczoKLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IEFNRCBLNyBzdXBwb3J0IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBvd2VyIE1hbmFnZW1lbnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgotICogIE1pa2FlbCBQZXR0ZXJzc29uCTogUGVudGl1bSA0IHN1cHBvcnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgotICogIFBhdmVsIE1hY2hlayBhbmQKLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBNIGNvbnZlcnRlZCB0byBkcml2ZXIgbW9kZWwuIERpc2FibGUvZW5hYmxlIEFQSS4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9ubWkuaD4KLSNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9zeXNjdGwuaD4KLSNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KLSNpbmNsdWRlIDxsaW51eC9rcHJvYmVzLmg+Ci0jaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+Ci0jaW5jbHVkZSA8bGludXgva2RlYnVnLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotCi0jaW5jbHVkZSA8YXNtL3NtcC5oPgotI2luY2x1ZGUgPGFzbS9ubWkuaD4KLQotI2luY2x1ZGUgIm1hY2hfdHJhcHMuaCIKLQotaW50IHVua25vd25fbm1pX3BhbmljOwotaW50IG5taV93YXRjaGRvZ19lbmFibGVkOwotCi1zdGF0aWMgY3B1bWFza190IGJhY2t0cmFjZV9tYXNrID0gQ1BVX01BU0tfTk9ORTsKLQotLyogbm1pX2FjdGl2ZToKLSAqID4wOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGlzIGFjdGl2ZSwgYnV0IGNhbiBiZSBkaXNhYmxlZAotICogPDA6IHRoZSBsYXBpYyBOTUkgd2F0Y2hkb2cgaGFzIG5vdCBiZWVuIHNldCB1cCwgYW5kIGNhbm5vdAotICogICAgIGJlIGVuYWJsZWQKLSAqICAwOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGlzIGRpc2FibGVkLCBidXQgY2FuIGJlIGVuYWJsZWQKLSAqLwotYXRvbWljX3Qgbm1pX2FjdGl2ZSA9IEFUT01JQ19JTklUKDApOwkJLyogb3Byb2ZpbGUgdXNlcyB0aGlzICovCi0KLXVuc2lnbmVkIGludCBubWlfd2F0Y2hkb2cgPSBOTUlfREVGQVVMVDsKLXN0YXRpYyB1bnNpZ25lZCBpbnQgbm1pX2h6ID0gSFo7Ci0KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzaG9ydCwgd2RfZW5hYmxlZCk7Ci0KLXN0YXRpYyBpbnQgZW5kZmxhZyBfX2luaXRkYXRhID0gMDsKLQotI2lmZGVmIENPTkZJR19TTVAKLS8qIFRoZSBwZXJmb3JtYW5jZSBjb3VudGVycyB1c2VkIGJ5IE5NSV9MT0NBTF9BUElDIGRvbid0IHRyaWdnZXIgd2hlbgotICogdGhlIENQVSBpcyBpZGxlLiBUbyBtYWtlIHN1cmUgdGhlIE5NSSB3YXRjaGRvZyByZWFsbHkgdGlja3Mgb24gYWxsCi0gKiBDUFVzIGR1cmluZyB0aGUgdGVzdCBtYWtlIHRoZW0gYnVzeS4KLSAqLwotc3RhdGljIF9faW5pdCB2b2lkIG5taV9jcHVfYnVzeSh2b2lkICpkYXRhKQotewotCWxvY2FsX2lycV9lbmFibGVfaW5faGFyZGlycSgpOwotCS8qIEludGVudGlvbmFsbHkgZG9uJ3QgdXNlIGNwdV9yZWxheCBoZXJlLiBUaGlzIGlzCi0JICAgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVhbGx5IHRpY2tzLAotCSAgIGV2ZW4gaWYgdGhlcmUgaXMgYSBzaW11bGF0b3Igb3Igc2ltaWxhciB0aGF0IGNhdGNoZXMgdGhlCi0JICAgcGF1c2UgaW5zdHJ1Y3Rpb24uIE9uIGEgcmVhbCBIVCBtYWNoaW5lIHRoaXMgaXMgZmluZSBiZWNhdXNlCi0JICAgYWxsIG90aGVyIENQVXMgYXJlIGJ1c3kgd2l0aCAidXNlbGVzcyIgZGVsYXkgbG9vcHMgYW5kIGRvbid0Ci0JICAgY2FyZSBpZiB0aGV5IGdldCBzb21ld2hhdCBsZXNzIGN5Y2xlcy4gKi8KLQl3aGlsZSAoZW5kZmxhZyA9PSAwKQotCQltYigpOwotfQotI2VuZGlmCi0KLWludCBfX2luaXQgY2hlY2tfbm1pX3dhdGNoZG9nKHZvaWQpCi17Ci0JdW5zaWduZWQgaW50ICpwcmV2X25taV9jb3VudDsKLQlpbnQgY3B1OwotCi0JaWYgKChubWlfd2F0Y2hkb2cgPT0gTk1JX05PTkUpIHx8IChubWlfd2F0Y2hkb2cgPT0gTk1JX0RJU0FCTEVEKSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkKLQkJcmV0dXJuIDA7Ci0KLQlwcmV2X25taV9jb3VudCA9IGttYWxsb2MoTlJfQ1BVUyAqIHNpemVvZihpbnQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXByZXZfbm1pX2NvdW50KQotCQlyZXR1cm4gLTE7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJUZXN0aW5nIE5NSSB3YXRjaGRvZyAuLi4gIik7Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKLQkJc21wX2NhbGxfZnVuY3Rpb24obm1pX2NwdV9idXN5LCAodm9pZCAqKSZlbmRmbGFnLCAwKTsKLSNlbmRpZgotCi0JZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkKLQkJcHJldl9ubWlfY291bnRbY3B1XSA9IG5taV9jb3VudChjcHUpOwotCWxvY2FsX2lycV9lbmFibGUoKTsKLQltZGVsYXkoKDIwKjEwMDApL25taV9oeik7IC8vIHdhaXQgMjAgdGlja3MKLQotCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKLSNpZmRlZiBDT05GSUdfU01QCi0JCS8qIENoZWNrIGNwdV9jYWxsaW5fbWFwIGhlcmUgYmVjYXVzZSB0aGF0IGlzIHNldAotCQkgICBhZnRlciB0aGUgdGltZXIgaXMgc3RhcnRlZC4gKi8KLQkJaWYgKCFjcHVfaXNzZXQoY3B1LCBjcHVfY2FsbGluX21hcCkpCi0JCQljb250aW51ZTsKLSNlbmRpZgotCQlpZiAoIXBlcl9jcHUod2RfZW5hYmxlZCwgY3B1KSkKLQkJCWNvbnRpbnVlOwotCQlpZiAobm1pX2NvdW50KGNwdSkgLSBwcmV2X25taV9jb3VudFtjcHVdIDw9IDUpIHsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6IENQVSMlZDogTk1JICIKLQkJCQkiYXBwZWFycyB0byBiZSBzdHVjayAoJWQtPiVkKSFcbiIsCi0JCQkJY3B1LAotCQkJCXByZXZfbm1pX2NvdW50W2NwdV0sCi0JCQkJbm1pX2NvdW50KGNwdSkpOwotCQkJcGVyX2NwdSh3ZF9lbmFibGVkLCBjcHUpID0gMDsKLQkJCWF0b21pY19kZWMoJm5taV9hY3RpdmUpOwotCQl9Ci0JfQotCWVuZGZsYWcgPSAxOwotCWlmICghYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpKSB7Ci0JCWtmcmVlKHByZXZfbm1pX2NvdW50KTsKLQkJYXRvbWljX3NldCgmbm1pX2FjdGl2ZSwgLTEpOwotCQlyZXR1cm4gLTE7Ci0JfQotCXByaW50aygiT0suXG4iKTsKLQotCS8qIG5vdyB0aGF0IHdlIGtub3cgaXQgd29ya3Mgd2UgY2FuIHJlZHVjZSBOTUkgZnJlcXVlbmN5IHRvCi0JICAgc29tZXRoaW5nIG1vcmUgcmVhc29uYWJsZTsgbWFrZXMgYSBkaWZmZXJlbmNlIGluIHNvbWUgY29uZmlncyAqLwotCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpCi0JCW5taV9oeiA9IGxhcGljX2FkanVzdF9ubWlfaHooMSk7Ci0KLQlrZnJlZShwcmV2X25taV9jb3VudCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IHNldHVwX25taV93YXRjaGRvZyhjaGFyICpzdHIpCi17Ci0JaW50IG5taTsKLQotCWdldF9vcHRpb24oJnN0ciwgJm5taSk7Ci0KLQlpZiAoKG5taSA+PSBOTUlfSU5WQUxJRCkgfHwgKG5taSA8IE5NSV9OT05FKSkKLQkJcmV0dXJuIDA7Ci0KLQlubWlfd2F0Y2hkb2cgPSBubWk7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9fc2V0dXAoIm5taV93YXRjaGRvZz0iLCBzZXR1cF9ubWlfd2F0Y2hkb2cpOwotCi0KLS8qIFN1c3BlbmQvcmVzdW1lIHN1cHBvcnQgKi8KLQotI2lmZGVmIENPTkZJR19QTQotCi1zdGF0aWMgaW50IG5taV9wbV9hY3RpdmU7IC8qIG5taV9hY3RpdmUgYmVmb3JlIHN1c3BlbmQgKi8KLQotc3RhdGljIGludCBsYXBpY19ubWlfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCi17Ci0JLyogb25seSBDUFUwIGdvZXMgaGVyZSwgb3RoZXIgQ1BVcyBzaG91bGQgYmUgb2ZmbGluZSAqLwotCW5taV9wbV9hY3RpdmUgPSBhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSk7Ci0Jc3RvcF9hcGljX25taV93YXRjaGRvZyhOVUxMKTsKLQlCVUdfT04oYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICE9IDApOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGxhcGljX25taV9yZXN1bWUoc3RydWN0IHN5c19kZXZpY2UgKmRldikKLXsKLQkvKiBvbmx5IENQVTAgZ29lcyBoZXJlLCBvdGhlciBDUFVzIHNob3VsZCBiZSBvZmZsaW5lICovCi0JaWYgKG5taV9wbV9hY3RpdmUgPiAwKSB7Ci0JCXNldHVwX2FwaWNfbm1pX3dhdGNoZG9nKE5VTEwpOwotCQl0b3VjaF9ubWlfd2F0Y2hkb2coKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLQotc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3Mgbm1pX3N5c2NsYXNzID0gewotCS5uYW1lCQk9ICJsYXBpY19ubWkiLAotCS5yZXN1bWUJCT0gbGFwaWNfbm1pX3Jlc3VtZSwKLQkuc3VzcGVuZAk9IGxhcGljX25taV9zdXNwZW5kLAotfTsKLQotc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIGRldmljZV9sYXBpY19ubWkgPSB7Ci0JLmlkCT0gMCwKLQkuY2xzCT0gJm5taV9zeXNjbGFzcywKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGluaXRfbGFwaWNfbm1pX3N5c2ZzKHZvaWQpCi17Ci0JaW50IGVycm9yOwotCi0JLyogc2hvdWxkIHJlYWxseSBiZSBhIEJVR19PTiBidXQgYi9jIHRoaXMgaXMgYW4KLQkgKiBpbml0IGNhbGwsIGl0IGp1c3QgZG9lc24ndCB3b3JrLiAgLWRjegotCSAqLwotCWlmIChubWlfd2F0Y2hkb2cgIT0gTk1JX0xPQ0FMX0FQSUMpCi0JCXJldHVybiAwOwotCi0JaWYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8IDApCi0JCXJldHVybiAwOwotCi0JZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJm5taV9zeXNjbGFzcyk7Ci0JaWYgKCFlcnJvcikKLQkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9sYXBpY19ubWkpOwotCXJldHVybiBlcnJvcjsKLX0KLS8qIG11c3QgY29tZSBhZnRlciB0aGUgbG9jYWwgQVBJQydzIGRldmljZV9pbml0Y2FsbCgpICovCi1sYXRlX2luaXRjYWxsKGluaXRfbGFwaWNfbm1pX3N5c2ZzKTsKLQotI2VuZGlmCS8qIENPTkZJR19QTSAqLwotCi1zdGF0aWMgdm9pZCBfX2FjcGlfbm1pX2VuYWJsZSh2b2lkICpfX3VudXNlZCkKLXsKLQlhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIEFQSUNfRE1fTk1JKTsKLX0KLQotLyoKLSAqIEVuYWJsZSB0aW1lciBiYXNlZCBOTUlzIG9uIGFsbCBDUFVzOgotICovCi12b2lkIGFjcGlfbm1pX2VuYWJsZSh2b2lkKQotewotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgJiYgbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQotCQlvbl9lYWNoX2NwdShfX2FjcGlfbm1pX2VuYWJsZSwgTlVMTCwgMSk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fYWNwaV9ubWlfZGlzYWJsZSh2b2lkICpfX3VudXNlZCkKLXsKLQlhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19ETV9OTUkgfCBBUElDX0xWVF9NQVNLRUQpOwotfQotCi0vKgotICogRGlzYWJsZSB0aW1lciBiYXNlZCBOTUlzIG9uIGFsbCBDUFVzOgotICovCi12b2lkIGFjcGlfbm1pX2Rpc2FibGUodm9pZCkKLXsKLQlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICYmIG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykKLQkJb25fZWFjaF9jcHUoX19hY3BpX25taV9kaXNhYmxlLCBOVUxMLCAxKTsKLX0KLQotdm9pZCBzZXR1cF9hcGljX25taV93YXRjaGRvZyh2b2lkICp1bnVzZWQpCi17Ci0JaWYgKF9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkpCi0JCXJldHVybjsKLQotCS8qIGNoZWFwIGhhY2sgdG8gc3VwcG9ydCBzdXNwZW5kL3Jlc3VtZSAqLwotCS8qIGlmIGNwdTAgaXMgbm90IGFjdGl2ZSBuZWl0aGVyIHNob3VsZCB0aGUgb3RoZXIgY3B1cyAqLwotCWlmICgoc21wX3Byb2Nlc3Nvcl9pZCgpICE9IDApICYmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPD0gMCkpCi0JCXJldHVybjsKLQotCXN3aXRjaCAobm1pX3dhdGNoZG9nKSB7Ci0JY2FzZSBOTUlfTE9DQUxfQVBJQzoKLQkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDE7IC8qIGVuYWJsZSBpdCBiZWZvcmUgdG8gYXZvaWQgcmFjZSB3aXRoIGhhbmRsZXIgKi8KLQkJaWYgKGxhcGljX3dhdGNoZG9nX2luaXQobm1pX2h6KSA8IDApIHsKLQkJCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAwOwotCQkJcmV0dXJuOwotCQl9Ci0JCS8qIEZBTEwgVEhST1VHSCAqLwotCWNhc2UgTk1JX0lPX0FQSUM6Ci0JCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAxOwotCQlhdG9taWNfaW5jKCZubWlfYWN0aXZlKTsKLQl9Ci19Ci0KLXZvaWQgc3RvcF9hcGljX25taV93YXRjaGRvZyh2b2lkICp1bnVzZWQpCi17Ci0JLyogb25seSBzdXBwb3J0IExPQ0FMIGFuZCBJTyBBUElDcyBmb3Igbm93ICovCi0JaWYgKChubWlfd2F0Y2hkb2cgIT0gTk1JX0xPQ0FMX0FQSUMpICYmCi0JICAgIChubWlfd2F0Y2hkb2cgIT0gTk1JX0lPX0FQSUMpKQotCSAgICAJcmV0dXJuOwotCWlmIChfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID09IDApCi0JCXJldHVybjsKLQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQotCQlsYXBpY193YXRjaGRvZ19zdG9wKCk7Ci0JX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDA7Ci0JYXRvbWljX2RlYygmbm1pX2FjdGl2ZSk7Ci19Ci0KLS8qCi0gKiB0aGUgYmVzdCB3YXkgdG8gZGV0ZWN0IHdoZXRoZXIgYSBDUFUgaGFzIGEgJ2hhcmQgbG9ja3VwJyBwcm9ibGVtCi0gKiBpcyB0byBjaGVjayBpdCdzIGxvY2FsIEFQSUMgdGltZXIgSVJRIGNvdW50cy4gSWYgdGhleSBhcmUgbm90Ci0gKiBjaGFuZ2luZyB0aGVuIHRoYXQgQ1BVIGhhcyBzb21lIHByb2JsZW0uCi0gKgotICogYXMgdGhlc2Ugd2F0Y2hkb2cgTk1JIElSUXMgYXJlIGdlbmVyYXRlZCBvbiBldmVyeSBDUFUsIHdlIG9ubHkKLSAqIGhhdmUgdG8gY2hlY2sgdGhlIGN1cnJlbnQgcHJvY2Vzc29yLgotICoKLSAqIHNpbmNlIE5NSXMgZG9uJ3QgbGlzdGVuIHRvIF9hbnlfIGxvY2tzLCB3ZSBoYXZlIHRvIGJlIGV4dHJlbWVseQotICogY2FyZWZ1bCBub3QgdG8gcmVseSBvbiB1bnNhZmUgdmFyaWFibGVzLiBUaGUgcHJpbnRrIG1pZ2h0IGxvY2sKLSAqIHVwIHRob3VnaCwgc28gd2UgaGF2ZSB0byBicmVhayB1cCBhbnkgY29uc29sZSBsb2NrcyBmaXJzdCAuLi4KLSAqIFt3aGVuIHRoZXJlIHdpbGwgYmUgbW9yZSB0dHktcmVsYXRlZCBsb2NrcywgYnJlYWsgdGhlbSB1cAotICogIGhlcmUgdG9vIV0KLSAqLwotCi1zdGF0aWMgdW5zaWduZWQgaW50Ci0JbGFzdF9pcnFfc3VtcyBbTlJfQ1BVU10sCi0JYWxlcnRfY291bnRlciBbTlJfQ1BVU107Ci0KLXZvaWQgdG91Y2hfbm1pX3dhdGNoZG9nKHZvaWQpCi17Ci0JaWYgKG5taV93YXRjaGRvZyA+IDApIHsKLQkJdW5zaWduZWQgY3B1OwotCi0JCS8qCi0JCSAqIEp1c3QgcmVzZXQgdGhlIGFsZXJ0IGNvdW50ZXJzLCAob3RoZXIgQ1BVcyBtaWdodCBiZQotCQkgKiBzcGlubmluZyBvbiBsb2NrcyB3ZSBob2xkKToKLQkJICovCi0JCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkgewotCQkJaWYgKGFsZXJ0X2NvdW50ZXJbY3B1XSkKLQkJCQlhbGVydF9jb3VudGVyW2NwdV0gPSAwOwotCQl9Ci0JfQotCi0JLyoKLQkgKiBUaWNrbGUgdGhlIHNvZnRsb2NrdXAgZGV0ZWN0b3IgdG9vOgotCSAqLwotCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKLX0KLUVYUE9SVF9TWU1CT0wodG91Y2hfbm1pX3dhdGNoZG9nKTsKLQotZXh0ZXJuIHZvaWQgZGllX25taShzdHJ1Y3QgcHRfcmVncyAqLCBjb25zdCBjaGFyICptc2cpOwotCi1ub3RyYWNlIF9fa3Byb2JlcyBpbnQKLW5taV93YXRjaGRvZ190aWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCByZWFzb24pCi17Ci0KLQkvKgotCSAqIFNpbmNlIGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+IGlzIGFsd2F5cyBvbiB0aGUgc3RhY2ssIGFuZCB3ZQotCSAqIGFsd2F5cyBzd2l0Y2ggdGhlIHN0YWNrIE5NSS1hdG9taWNhbGx5LCBpdCdzIHNhZmUgdG8gdXNlCi0JICogc21wX3Byb2Nlc3Nvcl9pZCgpLgotCSAqLwotCXVuc2lnbmVkIGludCBzdW07Ci0JaW50IHRvdWNoZWQgPSAwOwotCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JaW50IHJjID0gMDsKLQotCS8qIGNoZWNrIGZvciBvdGhlciB1c2VycyBmaXJzdCAqLwotCWlmIChub3RpZnlfZGllKERJRV9OTUksICJubWkiLCByZWdzLCByZWFzb24sIDIsIFNJR0lOVCkKLQkJCT09IE5PVElGWV9TVE9QKSB7Ci0JCXJjID0gMTsKLQkJdG91Y2hlZCA9IDE7Ci0JfQotCi0JaWYgKGNwdV9pc3NldChjcHUsIGJhY2t0cmFjZV9tYXNrKSkgewotCQlzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGxvY2spOwkvKiBTZXJpYWxpc2UgdGhlIHByaW50a3MgKi8KLQotCQlzcGluX2xvY2soJmxvY2spOwotCQlwcmludGsoIk5NSSBiYWNrdHJhY2UgZm9yIGNwdSAlZFxuIiwgY3B1KTsKLQkJZHVtcF9zdGFjaygpOwotCQlzcGluX3VubG9jaygmbG9jayk7Ci0JCWNwdV9jbGVhcihjcHUsIGJhY2t0cmFjZV9tYXNrKTsKLQl9Ci0KLQkvKgotCSAqIFRha2UgdGhlIGxvY2FsIGFwaWMgdGltZXIgYW5kIFBJVC9IUEVUIGludG8gYWNjb3VudC4gV2UgZG9uJ3QKLQkgKiBrbm93IHdoaWNoIG9uZSBpcyBhY3RpdmUsIHdoZW4gd2UgaGF2ZSBoaWdocmVzL2R5bnRpY2sgb24KLQkgKi8KLQlzdW0gPSBwZXJfY3B1KGlycV9zdGF0LCBjcHUpLmFwaWNfdGltZXJfaXJxcyArCi0JCXBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxMF9pcnFzOwotCi0JLyogaWYgdGhlIG5vbmUgb2YgdGhlIHRpbWVycyBpc24ndCBmaXJpbmcsIHRoaXMgY3B1IGlzbid0IGRvaW5nIG11Y2ggKi8KLQlpZiAoIXRvdWNoZWQgJiYgbGFzdF9pcnFfc3Vtc1tjcHVdID09IHN1bSkgewotCQkvKgotCQkgKiBBeWllZSwgbG9va3MgbGlrZSB0aGlzIENQVSBpcyBzdHVjayAuLi4KLQkJICogd2FpdCBhIGZldyBJUlFzICg1IHNlY29uZHMpIGJlZm9yZSBkb2luZyB0aGUgb29wcyAuLi4KLQkJICovCi0JCWFsZXJ0X2NvdW50ZXJbY3B1XSsrOwotCQlpZiAoYWxlcnRfY291bnRlcltjcHVdID09IDUqbm1pX2h6KQotCQkJLyoKLQkJCSAqIGRpZV9ubWkgd2lsbCByZXR1cm4gT05MWSBpZiBOT1RJRllfU1RPUCBoYXBwZW5zLi4KLQkJCSAqLwotCQkJZGllX25taShyZWdzLCAiQlVHOiBOTUkgV2F0Y2hkb2cgZGV0ZWN0ZWQgTE9DS1VQIik7Ci0JfSBlbHNlIHsKLQkJbGFzdF9pcnFfc3Vtc1tjcHVdID0gc3VtOwotCQlhbGVydF9jb3VudGVyW2NwdV0gPSAwOwotCX0KLQkvKiBzZWUgaWYgdGhlIG5taSB3YXRjaGRvZyB3ZW50IG9mZiAqLwotCWlmICghX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSkKLQkJcmV0dXJuIHJjOwotCXN3aXRjaCAobm1pX3dhdGNoZG9nKSB7Ci0JY2FzZSBOTUlfTE9DQUxfQVBJQzoKLQkJcmMgfD0gbGFwaWNfd2RfZXZlbnQobm1pX2h6KTsKLQkJYnJlYWs7Ci0JY2FzZSBOTUlfSU9fQVBJQzoKLQkJLyogZG9uJ3Qga25vdyBob3cgdG8gYWNjdXJhdGVseSBjaGVjayBmb3IgdGhpcy4KLQkJICoganVzdCBhc3N1bWUgaXQgd2FzIGEgd2F0Y2hkb2cgdGltZXIgaW50ZXJydXB0Ci0JCSAqIFRoaXMgbWF0Y2hlcyB0aGUgb2xkIGJlaGF2aW91ci4KLQkJICovCi0JCXJjID0gMTsKLQkJYnJlYWs7Ci0JfQotCXJldHVybiByYzsKLX0KLQotI2lmZGVmIENPTkZJR19TWVNDVEwKLQotc3RhdGljIGludCB1bmtub3duX25taV9wYW5pY19jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKLXsKLQl1bnNpZ25lZCBjaGFyIHJlYXNvbiA9IGdldF9ubWlfcmVhc29uKCk7Ci0JY2hhciBidWZbNjRdOwotCi0Jc3ByaW50ZihidWYsICJOTUkgcmVjZWl2ZWQgZm9yIHVua25vd24gcmVhc29uICUwMnhcbiIsIHJlYXNvbik7Ci0JZGllX25taShyZWdzLCBidWYpOwotCXJldHVybiAwOwotfQotCi0vKgotICogcHJvYyBoYW5kbGVyIGZvciAvcHJvYy9zeXMva2VybmVsL25taQotICovCi1pbnQgcHJvY19ubWlfZW5hYmxlZChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkJCXZvaWQgX191c2VyICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCi17Ci0JaW50IG9sZF9zdGF0ZTsKLQotCW5taV93YXRjaGRvZ19lbmFibGVkID0gKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA+IDApID8gMSA6IDA7Ci0Jb2xkX3N0YXRlID0gbm1pX3dhdGNoZG9nX2VuYWJsZWQ7Ci0JcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGZpbGUsIGJ1ZmZlciwgbGVuZ3RoLCBwcG9zKTsKLQlpZiAoISFvbGRfc3RhdGUgPT0gISFubWlfd2F0Y2hkb2dfZW5hYmxlZCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpIDwgMCB8fCBubWlfd2F0Y2hkb2cgPT0gTk1JX0RJU0FCTEVEKSB7Ci0JCXByaW50ayggS0VSTl9XQVJOSU5HICJOTUkgd2F0Y2hkb2cgaXMgcGVybWFuZW50bHkgZGlzYWJsZWRcbiIpOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9ERUZBVUxUKSB7Ci0JCWlmIChsYXBpY193YXRjaGRvZ19vaygpKQotCQkJbm1pX3dhdGNoZG9nID0gTk1JX0xPQ0FMX0FQSUM7Ci0JCWVsc2UKLQkJCW5taV93YXRjaGRvZyA9IE5NSV9JT19BUElDOwotCX0KLQotCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpIHsKLQkJaWYgKG5taV93YXRjaGRvZ19lbmFibGVkKQotCQkJZW5hYmxlX2xhcGljX25taV93YXRjaGRvZygpOwotCQllbHNlCi0JCQlkaXNhYmxlX2xhcGljX25taV93YXRjaGRvZygpOwotCX0gZWxzZSB7Ci0JCXByaW50ayggS0VSTl9XQVJOSU5HCi0JCQkiTk1JIHdhdGNoZG9nIGRvZXNuJ3Qga25vdyB3aGF0IGhhcmR3YXJlIHRvIHRvdWNoXG4iKTsKLQkJcmV0dXJuIC1FSU87Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYKLQotaW50IGRvX25taV9jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKLXsKLSNpZmRlZiBDT05GSUdfU1lTQ1RMCi0JaWYgKHVua25vd25fbm1pX3BhbmljKQotCQlyZXR1cm4gdW5rbm93bl9ubWlfcGFuaWNfY2FsbGJhY2socmVncywgY3B1KTsKLSNlbmRpZgotCXJldHVybiAwOwotfQotCi12b2lkIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSh2b2lkKQotewotCWludCBpOwotCi0JYmFja3RyYWNlX21hc2sgPSBjcHVfb25saW5lX21hcDsKLQkvKiBXYWl0IGZvciB1cCB0byAxMCBzZWNvbmRzIGZvciBhbGwgQ1BVcyB0byBkbyB0aGUgYmFja3RyYWNlICovCi0JZm9yIChpID0gMDsgaSA8IDEwICogMTAwMDsgaSsrKSB7Ci0JCWlmIChjcHVzX2VtcHR5KGJhY2t0cmFjZV9tYXNrKSkKLQkJCWJyZWFrOwotCQltZGVsYXkoMSk7Ci0JfQotfQotCi1FWFBPUlRfU1lNQk9MKG5taV9hY3RpdmUpOwotRVhQT1JUX1NZTUJPTChubWlfd2F0Y2hkb2cpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL25taV82NC5jIGIvYXJjaC94ODYva2VybmVsL25taV82NC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmRjYjE3Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9ubWlfNjQuYworKysgL2Rldi9udWxsCkBAIC0xLDQ4MiArMCwwIEBACi0vKgotICogIE5NSSB3YXRjaGRvZyBzdXBwb3J0IG9uIEFQSUMgc3lzdGVtcwotICoKLSAqICBTdGFydGVkIGJ5IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgotICoKLSAqICBGaXhlczoKLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IEFNRCBLNyBzdXBwb3J0IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBvd2VyIE1hbmFnZW1lbnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgotICogIFBhdmVsIE1hY2hlayBhbmQKLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBNIGNvbnZlcnRlZCB0byBkcml2ZXIgbW9kZWwuIERpc2FibGUvZW5hYmxlIEFQSS4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvbm1pLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgotI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Ci0jaW5jbHVkZSA8bGludXgva2RlYnVnLmg+Ci0KLSNpbmNsdWRlIDxhc20vc21wLmg+Ci0jaW5jbHVkZSA8YXNtL25taS5oPgotI2luY2x1ZGUgPGFzbS9wcm90by5oPgotI2luY2x1ZGUgPGFzbS9tY2UuaD4KLQotI2luY2x1ZGUgPG1hY2hfdHJhcHMuaD4KLQotaW50IHVua25vd25fbm1pX3BhbmljOwotaW50IG5taV93YXRjaGRvZ19lbmFibGVkOwotaW50IHBhbmljX29uX3VucmVjb3ZlcmVkX25taTsKLQotc3RhdGljIGNwdW1hc2tfdCBiYWNrdHJhY2VfbWFzayA9IENQVV9NQVNLX05PTkU7Ci0KLS8qIG5taV9hY3RpdmU6Ci0gKiA+MDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBhY3RpdmUsIGJ1dCBjYW4gYmUgZGlzYWJsZWQKLSAqIDwwOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGhhcyBub3QgYmVlbiBzZXQgdXAsIGFuZCBjYW5ub3QKLSAqICAgICBiZSBlbmFibGVkCi0gKiAgMDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBkaXNhYmxlZCwgYnV0IGNhbiBiZSBlbmFibGVkCi0gKi8KLWF0b21pY190IG5taV9hY3RpdmUgPSBBVE9NSUNfSU5JVCgwKTsJCS8qIG9wcm9maWxlIHVzZXMgdGhpcyAqLwotc3RhdGljIGludCBwYW5pY19vbl90aW1lb3V0OwotCi11bnNpZ25lZCBpbnQgbm1pX3dhdGNoZG9nID0gTk1JX0RFRkFVTFQ7Ci1zdGF0aWMgdW5zaWduZWQgaW50IG5taV9oeiA9IEhaOwotCi1zdGF0aWMgREVGSU5FX1BFUl9DUFUoc2hvcnQsIHdkX2VuYWJsZWQpOwotCi0vKiBSdW4gYWZ0ZXIgY29tbWFuZCBsaW5lIGFuZCBjcHVfaW5pdCBpbml0LCBidXQgYmVmb3JlIGFsbCBvdGhlciBjaGVja3MgKi8KLXZvaWQgbm1pX3dhdGNoZG9nX2RlZmF1bHQodm9pZCkKLXsKLQlpZiAobm1pX3dhdGNoZG9nICE9IE5NSV9ERUZBVUxUKQotCQlyZXR1cm47Ci0Jbm1pX3dhdGNoZG9nID0gTk1JX05PTkU7Ci19Ci0KLXN0YXRpYyBpbnQgZW5kZmxhZyBfX2luaXRkYXRhID0gMDsKLQotI2lmZGVmIENPTkZJR19TTVAKLS8qIFRoZSBwZXJmb3JtYW5jZSBjb3VudGVycyB1c2VkIGJ5IE5NSV9MT0NBTF9BUElDIGRvbid0IHRyaWdnZXIgd2hlbgotICogdGhlIENQVSBpcyBpZGxlLiBUbyBtYWtlIHN1cmUgdGhlIE5NSSB3YXRjaGRvZyByZWFsbHkgdGlja3Mgb24gYWxsCi0gKiBDUFVzIGR1cmluZyB0aGUgdGVzdCBtYWtlIHRoZW0gYnVzeS4KLSAqLwotc3RhdGljIF9faW5pdCB2b2lkIG5taV9jcHVfYnVzeSh2b2lkICpkYXRhKQotewotCWxvY2FsX2lycV9lbmFibGVfaW5faGFyZGlycSgpOwotCS8qIEludGVudGlvbmFsbHkgZG9uJ3QgdXNlIGNwdV9yZWxheCBoZXJlLiBUaGlzIGlzCi0JICAgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVhbGx5IHRpY2tzLAotCSAgIGV2ZW4gaWYgdGhlcmUgaXMgYSBzaW11bGF0b3Igb3Igc2ltaWxhciB0aGF0IGNhdGNoZXMgdGhlCi0JICAgcGF1c2UgaW5zdHJ1Y3Rpb24uIE9uIGEgcmVhbCBIVCBtYWNoaW5lIHRoaXMgaXMgZmluZSBiZWNhdXNlCi0JICAgYWxsIG90aGVyIENQVXMgYXJlIGJ1c3kgd2l0aCAidXNlbGVzcyIgZGVsYXkgbG9vcHMgYW5kIGRvbid0Ci0JICAgY2FyZSBpZiB0aGV5IGdldCBzb21ld2hhdCBsZXNzIGN5Y2xlcy4gKi8KLQl3aGlsZSAoZW5kZmxhZyA9PSAwKQotCQltYigpOwotfQotI2VuZGlmCi0KLWludCBfX2luaXQgY2hlY2tfbm1pX3dhdGNoZG9nKHZvaWQpCi17Ci0JaW50ICpwcmV2X25taV9jb3VudDsKLQlpbnQgY3B1OwotCi0JaWYgKChubWlfd2F0Y2hkb2cgPT0gTk1JX05PTkUpIHx8IChubWlfd2F0Y2hkb2cgPT0gTk1JX0RJU0FCTEVEKSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkKLQkJcmV0dXJuIDA7Ci0KLQlwcmV2X25taV9jb3VudCA9IGttYWxsb2MoTlJfQ1BVUyAqIHNpemVvZihpbnQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXByZXZfbm1pX2NvdW50KQotCQlyZXR1cm4gLTE7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJUZXN0aW5nIE5NSSB3YXRjaGRvZyAuLi4gIik7Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKLQkJc21wX2NhbGxfZnVuY3Rpb24obm1pX2NwdV9idXN5LCAodm9pZCAqKSZlbmRmbGFnLCAwKTsKLSNlbmRpZgotCi0JZm9yIChjcHUgPSAwOyBjcHUgPCBOUl9DUFVTOyBjcHUrKykKLQkJcHJldl9ubWlfY291bnRbY3B1XSA9IGNwdV9wZGEoY3B1KS0+X19ubWlfY291bnQ7Ci0JbG9jYWxfaXJxX2VuYWJsZSgpOwotCW1kZWxheSgoMjAqMTAwMCkvbm1pX2h6KTsgLy8gd2FpdCAyMCB0aWNrcwotCi0JZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKLQkJaWYgKCFwZXJfY3B1KHdkX2VuYWJsZWQsIGNwdSkpCi0JCQljb250aW51ZTsKLQkJaWYgKGNwdV9wZGEoY3B1KS0+X19ubWlfY291bnQgLSBwcmV2X25taV9jb3VudFtjcHVdIDw9IDUpIHsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6IENQVSMlZDogTk1JICIKLQkJCSAgICAgICAiYXBwZWFycyB0byBiZSBzdHVjayAoJWQtPiVkKSFcbiIsCi0JCQkJY3B1LAotCQkJCXByZXZfbm1pX2NvdW50W2NwdV0sCi0JCQkJY3B1X3BkYShjcHUpLT5fX25taV9jb3VudCk7Ci0JCQlwZXJfY3B1KHdkX2VuYWJsZWQsIGNwdSkgPSAwOwotCQkJYXRvbWljX2RlYygmbm1pX2FjdGl2ZSk7Ci0JCX0KLQl9Ci0JZW5kZmxhZyA9IDE7Ci0JaWYgKCFhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkpIHsKLQkJa2ZyZWUocHJldl9ubWlfY291bnQpOwotCQlhdG9taWNfc2V0KCZubWlfYWN0aXZlLCAtMSk7Ci0JCXJldHVybiAtMTsKLQl9Ci0JcHJpbnRrKCJPSy5cbiIpOwotCi0JLyogbm93IHRoYXQgd2Uga25vdyBpdCB3b3JrcyB3ZSBjYW4gcmVkdWNlIE5NSSBmcmVxdWVuY3kgdG8KLQkgICBzb21ldGhpbmcgbW9yZSByZWFzb25hYmxlOyBtYWtlcyBhIGRpZmZlcmVuY2UgaW4gc29tZSBjb25maWdzICovCi0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKLQkJbm1pX2h6ID0gbGFwaWNfYWRqdXN0X25taV9oeigxKTsKLQotCWtmcmVlKHByZXZfbm1pX2NvdW50KTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBfX2luaXQgc2V0dXBfbm1pX3dhdGNoZG9nKGNoYXIgKnN0cikKLXsKLQlpbnQgbm1pOwotCi0JaWYgKCFzdHJuY21wKHN0ciwicGFuaWMiLDUpKSB7Ci0JCXBhbmljX29uX3RpbWVvdXQgPSAxOwotCQlzdHIgPSBzdHJjaHIoc3RyLCAnLCcpOwotCQlpZiAoIXN0cikKLQkJCXJldHVybiAxOwotCQkrK3N0cjsKLQl9Ci0KLQlnZXRfb3B0aW9uKCZzdHIsICZubWkpOwotCi0JaWYgKChubWkgPj0gTk1JX0lOVkFMSUQpIHx8IChubWkgPCBOTUlfTk9ORSkpCi0JCXJldHVybiAwOwotCi0Jbm1pX3dhdGNoZG9nID0gbm1pOwotCXJldHVybiAxOwotfQotCi1fX3NldHVwKCJubWlfd2F0Y2hkb2c9Iiwgc2V0dXBfbm1pX3dhdGNoZG9nKTsKLQotI2lmZGVmIENPTkZJR19QTQotCi1zdGF0aWMgaW50IG5taV9wbV9hY3RpdmU7IC8qIG5taV9hY3RpdmUgYmVmb3JlIHN1c3BlbmQgKi8KLQotc3RhdGljIGludCBsYXBpY19ubWlfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCi17Ci0JLyogb25seSBDUFUwIGdvZXMgaGVyZSwgb3RoZXIgQ1BVcyBzaG91bGQgYmUgb2ZmbGluZSAqLwotCW5taV9wbV9hY3RpdmUgPSBhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSk7Ci0Jc3RvcF9hcGljX25taV93YXRjaGRvZyhOVUxMKTsKLQlCVUdfT04oYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICE9IDApOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGxhcGljX25taV9yZXN1bWUoc3RydWN0IHN5c19kZXZpY2UgKmRldikKLXsKLQkvKiBvbmx5IENQVTAgZ29lcyBoZXJlLCBvdGhlciBDUFVzIHNob3VsZCBiZSBvZmZsaW5lICovCi0JaWYgKG5taV9wbV9hY3RpdmUgPiAwKSB7Ci0JCXNldHVwX2FwaWNfbm1pX3dhdGNoZG9nKE5VTEwpOwotCQl0b3VjaF9ubWlfd2F0Y2hkb2coKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIG5taV9zeXNjbGFzcyA9IHsKLQkubmFtZQkJPSAibGFwaWNfbm1pIiwKLQkucmVzdW1lCQk9IGxhcGljX25taV9yZXN1bWUsCi0JLnN1c3BlbmQJPSBsYXBpY19ubWlfc3VzcGVuZCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBkZXZpY2VfbGFwaWNfbm1pID0gewotCS5pZAk9IDAsCi0JLmNscwk9ICZubWlfc3lzY2xhc3MsCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBpbml0X2xhcGljX25taV9zeXNmcyh2b2lkKQotewotCWludCBlcnJvcjsKLQotCS8qIHNob3VsZCByZWFsbHkgYmUgYSBCVUdfT04gYnV0IGIvYyB0aGlzIGlzIGFuCi0JICogaW5pdCBjYWxsLCBpdCBqdXN0IGRvZXNuJ3Qgd29yay4gIC1kY3oKLQkgKi8KLQlpZiAobm1pX3dhdGNoZG9nICE9IE5NSV9MT0NBTF9BUElDKQotCQlyZXR1cm4gMDsKLQotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPCAwKQotCQlyZXR1cm4gMDsKLQotCWVycm9yID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZubWlfc3lzY2xhc3MpOwotCWlmICghZXJyb3IpCi0JCWVycm9yID0gc3lzZGV2X3JlZ2lzdGVyKCZkZXZpY2VfbGFwaWNfbm1pKTsKLQlyZXR1cm4gZXJyb3I7Ci19Ci0vKiBtdXN0IGNvbWUgYWZ0ZXIgdGhlIGxvY2FsIEFQSUMncyBkZXZpY2VfaW5pdGNhbGwoKSAqLwotbGF0ZV9pbml0Y2FsbChpbml0X2xhcGljX25taV9zeXNmcyk7Ci0KLSNlbmRpZgkvKiBDT05GSUdfUE0gKi8KLQotc3RhdGljIHZvaWQgX19hY3BpX25taV9lbmFibGUodm9pZCAqX191bnVzZWQpCi17Ci0JYXBpY193cml0ZShBUElDX0xWVDAsIEFQSUNfRE1fTk1JKTsKLX0KLQotLyoKLSAqIEVuYWJsZSB0aW1lciBiYXNlZCBOTUlzIG9uIGFsbCBDUFVzOgotICovCi12b2lkIGFjcGlfbm1pX2VuYWJsZSh2b2lkKQotewotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgJiYgbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQotCQlvbl9lYWNoX2NwdShfX2FjcGlfbm1pX2VuYWJsZSwgTlVMTCwgMSk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fYWNwaV9ubWlfZGlzYWJsZSh2b2lkICpfX3VudXNlZCkKLXsKLQlhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19ETV9OTUkgfCBBUElDX0xWVF9NQVNLRUQpOwotfQotCi0vKgotICogRGlzYWJsZSB0aW1lciBiYXNlZCBOTUlzIG9uIGFsbCBDUFVzOgotICovCi12b2lkIGFjcGlfbm1pX2Rpc2FibGUodm9pZCkKLXsKLQlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICYmIG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykKLQkJb25fZWFjaF9jcHUoX19hY3BpX25taV9kaXNhYmxlLCBOVUxMLCAxKTsKLX0KLQotdm9pZCBzZXR1cF9hcGljX25taV93YXRjaGRvZyh2b2lkICp1bnVzZWQpCi17Ci0JaWYgKF9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkpCi0JCXJldHVybjsKLQotCS8qIGNoZWFwIGhhY2sgdG8gc3VwcG9ydCBzdXNwZW5kL3Jlc3VtZSAqLwotCS8qIGlmIGNwdTAgaXMgbm90IGFjdGl2ZSBuZWl0aGVyIHNob3VsZCB0aGUgb3RoZXIgY3B1cyAqLwotCWlmICgoc21wX3Byb2Nlc3Nvcl9pZCgpICE9IDApICYmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPD0gMCkpCi0JCXJldHVybjsKLQotCXN3aXRjaCAobm1pX3dhdGNoZG9nKSB7Ci0JY2FzZSBOTUlfTE9DQUxfQVBJQzoKLQkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDE7Ci0JCWlmIChsYXBpY193YXRjaGRvZ19pbml0KG5taV9oeikgPCAwKSB7Ci0JCQlfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID0gMDsKLQkJCXJldHVybjsKLQkJfQotCQkvKiBGQUxMIFRIUk9VR0ggKi8KLQljYXNlIE5NSV9JT19BUElDOgotCQlfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID0gMTsKLQkJYXRvbWljX2luYygmbm1pX2FjdGl2ZSk7Ci0JfQotfQotCi12b2lkIHN0b3BfYXBpY19ubWlfd2F0Y2hkb2codm9pZCAqdW51c2VkKQotewotCS8qIG9ubHkgc3VwcG9ydCBMT0NBTCBhbmQgSU8gQVBJQ3MgZm9yIG5vdyAqLwotCWlmICgobm1pX3dhdGNoZG9nICE9IE5NSV9MT0NBTF9BUElDKSAmJgotCSAgICAobm1pX3dhdGNoZG9nICE9IE5NSV9JT19BUElDKSkKLQkgICAgCXJldHVybjsKLQlpZiAoX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9PSAwKQotCQlyZXR1cm47Ci0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKLQkJbGFwaWNfd2F0Y2hkb2dfc3RvcCgpOwotCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAwOwotCWF0b21pY19kZWMoJm5taV9hY3RpdmUpOwotfQotCi0vKgotICogdGhlIGJlc3Qgd2F5IHRvIGRldGVjdCB3aGV0aGVyIGEgQ1BVIGhhcyBhICdoYXJkIGxvY2t1cCcgcHJvYmxlbQotICogaXMgdG8gY2hlY2sgaXQncyBsb2NhbCBBUElDIHRpbWVyIElSUSBjb3VudHMuIElmIHRoZXkgYXJlIG5vdAotICogY2hhbmdpbmcgdGhlbiB0aGF0IENQVSBoYXMgc29tZSBwcm9ibGVtLgotICoKLSAqIGFzIHRoZXNlIHdhdGNoZG9nIE5NSSBJUlFzIGFyZSBnZW5lcmF0ZWQgb24gZXZlcnkgQ1BVLCB3ZSBvbmx5Ci0gKiBoYXZlIHRvIGNoZWNrIHRoZSBjdXJyZW50IHByb2Nlc3Nvci4KLSAqLwotCi1zdGF0aWMgREVGSU5FX1BFUl9DUFUodW5zaWduZWQsIGxhc3RfaXJxX3N1bSk7Ci1zdGF0aWMgREVGSU5FX1BFUl9DUFUobG9jYWxfdCwgYWxlcnRfY291bnRlcik7Ci1zdGF0aWMgREVGSU5FX1BFUl9DUFUoaW50LCBubWlfdG91Y2gpOwotCi12b2lkIHRvdWNoX25taV93YXRjaGRvZyh2b2lkKQotewotCWlmIChubWlfd2F0Y2hkb2cgPiAwKSB7Ci0JCXVuc2lnbmVkIGNwdTsKLQotCQkvKgotIAkJICogVGVsbCBvdGhlciBDUFVzIHRvIHJlc2V0IHRoZWlyIGFsZXJ0IGNvdW50ZXJzLiBXZSBjYW5ub3QKLQkJICogZG8gaXQgb3Vyc2VsdmVzIGJlY2F1c2UgdGhlIGFsZXJ0IGNvdW50IGluY3JlYXNlIGlzIG5vdAotCQkgKiBhdG9taWMuCi0JCSAqLwotCQlmb3JfZWFjaF9wcmVzZW50X2NwdShjcHUpIHsKLQkJCWlmIChwZXJfY3B1KG5taV90b3VjaCwgY3B1KSAhPSAxKQotCQkJCXBlcl9jcHUobm1pX3RvdWNoLCBjcHUpID0gMTsKLQkJfQotCX0KLQotCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKLX0KLUVYUE9SVF9TWU1CT0wodG91Y2hfbm1pX3dhdGNoZG9nKTsKLQotbm90cmFjZSBfX2twcm9iZXMgaW50Ci1ubWlfd2F0Y2hkb2dfdGljayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgcmVhc29uKQotewotCWludCBzdW07Ci0JaW50IHRvdWNoZWQgPSAwOwotCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JaW50IHJjID0gMDsKLQotCS8qIGNoZWNrIGZvciBvdGhlciB1c2VycyBmaXJzdCAqLwotCWlmIChub3RpZnlfZGllKERJRV9OTUksICJubWkiLCByZWdzLCByZWFzb24sIDIsIFNJR0lOVCkKLQkJCT09IE5PVElGWV9TVE9QKSB7Ci0JCXJjID0gMTsKLQkJdG91Y2hlZCA9IDE7Ci0JfQotCi0Jc3VtID0gcmVhZF9wZGEoYXBpY190aW1lcl9pcnFzKSArIHJlYWRfcGRhKGlycTBfaXJxcyk7Ci0JaWYgKF9fZ2V0X2NwdV92YXIobm1pX3RvdWNoKSkgewotCQlfX2dldF9jcHVfdmFyKG5taV90b3VjaCkgPSAwOwotCQl0b3VjaGVkID0gMTsKLQl9Ci0KLQlpZiAoY3B1X2lzc2V0KGNwdSwgYmFja3RyYWNlX21hc2spKSB7Ci0JCXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobG9jayk7CS8qIFNlcmlhbGlzZSB0aGUgcHJpbnRrcyAqLwotCi0JCXNwaW5fbG9jaygmbG9jayk7Ci0JCXByaW50aygiTk1JIGJhY2t0cmFjZSBmb3IgY3B1ICVkXG4iLCBjcHUpOwotCQlkdW1wX3N0YWNrKCk7Ci0JCXNwaW5fdW5sb2NrKCZsb2NrKTsKLQkJY3B1X2NsZWFyKGNwdSwgYmFja3RyYWNlX21hc2spOwotCX0KLQotI2lmZGVmIENPTkZJR19YODZfTUNFCi0JLyogQ291bGQgY2hlY2sgb29wc19pbl9wcm9ncmVzcyBoZXJlIHRvbywgYnV0IGl0J3Mgc2FmZXIKLQkgICBub3QgdG9vICovCi0JaWYgKGF0b21pY19yZWFkKCZtY2VfZW50cnkpID4gMCkKLQkJdG91Y2hlZCA9IDE7Ci0jZW5kaWYKLQkvKiBpZiB0aGUgYXBpYyB0aW1lciBpc24ndCBmaXJpbmcsIHRoaXMgY3B1IGlzbid0IGRvaW5nIG11Y2ggKi8KLQlpZiAoIXRvdWNoZWQgJiYgX19nZXRfY3B1X3ZhcihsYXN0X2lycV9zdW0pID09IHN1bSkgewotCQkvKgotCQkgKiBBeWllZSwgbG9va3MgbGlrZSB0aGlzIENQVSBpcyBzdHVjayAuLi4KLQkJICogd2FpdCBhIGZldyBJUlFzICg1IHNlY29uZHMpIGJlZm9yZSBkb2luZyB0aGUgb29wcyAuLi4KLQkJICovCi0JCWxvY2FsX2luYygmX19nZXRfY3B1X3ZhcihhbGVydF9jb3VudGVyKSk7Ci0JCWlmIChsb2NhbF9yZWFkKCZfX2dldF9jcHVfdmFyKGFsZXJ0X2NvdW50ZXIpKSA9PSA1Km5taV9oeikKLQkJCWRpZV9ubWkoIk5NSSBXYXRjaGRvZyBkZXRlY3RlZCBMT0NLVVAgb24gQ1BVICVkXG4iLCByZWdzLAotCQkJCXBhbmljX29uX3RpbWVvdXQpOwotCX0gZWxzZSB7Ci0JCV9fZ2V0X2NwdV92YXIobGFzdF9pcnFfc3VtKSA9IHN1bTsKLQkJbG9jYWxfc2V0KCZfX2dldF9jcHVfdmFyKGFsZXJ0X2NvdW50ZXIpLCAwKTsKLQl9Ci0KLQkvKiBzZWUgaWYgdGhlIG5taSB3YXRjaGRvZyB3ZW50IG9mZiAqLwotCWlmICghX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSkKLQkJcmV0dXJuIHJjOwotCXN3aXRjaCAobm1pX3dhdGNoZG9nKSB7Ci0JY2FzZSBOTUlfTE9DQUxfQVBJQzoKLQkJcmMgfD0gbGFwaWNfd2RfZXZlbnQobm1pX2h6KTsKLQkJYnJlYWs7Ci0JY2FzZSBOTUlfSU9fQVBJQzoKLQkJLyogZG9uJ3Qga25vdyBob3cgdG8gYWNjdXJhdGVseSBjaGVjayBmb3IgdGhpcy4KLQkJICoganVzdCBhc3N1bWUgaXQgd2FzIGEgd2F0Y2hkb2cgdGltZXIgaW50ZXJydXB0Ci0JCSAqIFRoaXMgbWF0Y2hlcyB0aGUgb2xkIGJlaGF2aW91ci4KLQkJICovCi0JCXJjID0gMTsKLQkJYnJlYWs7Ci0JfQotCXJldHVybiByYzsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGlnbm9yZV9ubWlzOwotCi1hc21saW5rYWdlIG5vdHJhY2UgX19rcHJvYmVzIHZvaWQKLWRvX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQotewotCW5taV9lbnRlcigpOwotCWFkZF9wZGEoX19ubWlfY291bnQsMSk7Ci0JaWYgKCFpZ25vcmVfbm1pcykKLQkJZGVmYXVsdF9kb19ubWkocmVncyk7Ci0Jbm1pX2V4aXQoKTsKLX0KLQotdm9pZCBzdG9wX25taSh2b2lkKQotewotCWFjcGlfbm1pX2Rpc2FibGUoKTsKLQlpZ25vcmVfbm1pcysrOwotfQotCi12b2lkIHJlc3RhcnRfbm1pKHZvaWQpCi17Ci0JaWdub3JlX25taXMtLTsKLQlhY3BpX25taV9lbmFibGUoKTsKLX0KLQotI2lmZGVmIENPTkZJR19TWVNDVEwKLQotc3RhdGljIGludCB1bmtub3duX25taV9wYW5pY19jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKLXsKLQl1bnNpZ25lZCBjaGFyIHJlYXNvbiA9IGdldF9ubWlfcmVhc29uKCk7Ci0JY2hhciBidWZbNjRdOwotCi0Jc3ByaW50ZihidWYsICJOTUkgcmVjZWl2ZWQgZm9yIHVua25vd24gcmVhc29uICUwMnhcbiIsIHJlYXNvbik7Ci0JZGllX25taShidWYsIHJlZ3MsIDEpOwkvKiBBbHdheXMgcGFuaWMgaGVyZSAqLwotCXJldHVybiAwOwotfQotCi0vKgotICogcHJvYyBoYW5kbGVyIGZvciAvcHJvYy9zeXMva2VybmVsL25taQotICovCi1pbnQgcHJvY19ubWlfZW5hYmxlZChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkJCXZvaWQgX191c2VyICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCi17Ci0JaW50IG9sZF9zdGF0ZTsKLQotCW5taV93YXRjaGRvZ19lbmFibGVkID0gKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA+IDApID8gMSA6IDA7Ci0Jb2xkX3N0YXRlID0gbm1pX3dhdGNoZG9nX2VuYWJsZWQ7Ci0JcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGZpbGUsIGJ1ZmZlciwgbGVuZ3RoLCBwcG9zKTsKLQlpZiAoISFvbGRfc3RhdGUgPT0gISFubWlfd2F0Y2hkb2dfZW5hYmxlZCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpIDwgMCB8fCBubWlfd2F0Y2hkb2cgPT0gTk1JX0RJU0FCTEVEKSB7Ci0JCXByaW50ayggS0VSTl9XQVJOSU5HICJOTUkgd2F0Y2hkb2cgaXMgcGVybWFuZW50bHkgZGlzYWJsZWRcbiIpOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQkvKiBpZiBubWlfd2F0Y2hkb2cgaXMgbm90IHNldCB5ZXQsIHRoZW4gc2V0IGl0ICovCi0Jbm1pX3dhdGNoZG9nX2RlZmF1bHQoKTsKLQotCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpIHsKLQkJaWYgKG5taV93YXRjaGRvZ19lbmFibGVkKQotCQkJZW5hYmxlX2xhcGljX25taV93YXRjaGRvZygpOwotCQllbHNlCi0JCQlkaXNhYmxlX2xhcGljX25taV93YXRjaGRvZygpOwotCX0gZWxzZSB7Ci0JCXByaW50ayggS0VSTl9XQVJOSU5HCi0JCQkiTk1JIHdhdGNoZG9nIGRvZXNuJ3Qga25vdyB3aGF0IGhhcmR3YXJlIHRvIHRvdWNoXG4iKTsKLQkJcmV0dXJuIC1FSU87Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYKLQotaW50IGRvX25taV9jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKLXsKLSNpZmRlZiBDT05GSUdfU1lTQ1RMCi0JaWYgKHVua25vd25fbm1pX3BhbmljKQotCQlyZXR1cm4gdW5rbm93bl9ubWlfcGFuaWNfY2FsbGJhY2socmVncywgY3B1KTsKLSNlbmRpZgotCXJldHVybiAwOwotfQotCi12b2lkIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSh2b2lkKQotewotCWludCBpOwotCi0JYmFja3RyYWNlX21hc2sgPSBjcHVfb25saW5lX21hcDsKLQkvKiBXYWl0IGZvciB1cCB0byAxMCBzZWNvbmRzIGZvciBhbGwgQ1BVcyB0byBkbyB0aGUgYmFja3RyYWNlICovCi0JZm9yIChpID0gMDsgaSA8IDEwICogMTAwMDsgaSsrKSB7Ci0JCWlmIChjcHVzX2VtcHR5KGJhY2t0cmFjZV9tYXNrKSkKLQkJCWJyZWFrOwotCQltZGVsYXkoMSk7Ci0JfQotfQotCi1FWFBPUlRfU1lNQk9MKG5taV9hY3RpdmUpOwotRVhQT1JUX1NZTUJPTChubWlfd2F0Y2hkb2cpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL251bWFxXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvbnVtYXFfMzIuYwppbmRleCBlNjUyODFiLi41YjIwYTVlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbnVtYXFfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbnVtYXFfMzIuYwpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgPGFzbS9udW1hcS5oPgogI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8YXNtL2U4MjAuaD4KIAogI2RlZmluZQlNQl9UT19QQUdFUyhhZGRyKSAoKGFkZHIpIDw8ICgyMCAtIFBBR0VfU0hJRlQpKQogCkBAIC01OCw2ICs2MCw4IEBACiAJCQlub2RlX2VuZF9wZm5bbm9kZV0gPSBNQl9UT19QQUdFUygKIAkJCQllcS0+aGlfc2hyZF9tZW1fc3RhcnQgKyBlcS0+aGlfc2hyZF9tZW1fc2l6ZSk7CiAKKwkJCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMobm9kZSwgbm9kZV9zdGFydF9wZm5bbm9kZV0sCisJCQkJCQkJbm9kZV9lbmRfcGZuW25vZGVdKTsKIAkJCW1lbW9yeV9wcmVzZW50KG5vZGUsCiAJCQkJbm9kZV9zdGFydF9wZm5bbm9kZV0sIG5vZGVfZW5kX3Bmbltub2RlXSk7CiAJCQlub2RlX3JlbWFwX3NpemVbbm9kZV0gPSBub2RlX21lbW1hcF9zaXplX2J5dGVzKG5vZGUsCkBAIC02NywyMyArNzEsMzUgQEAKIAl9CiB9CiAKLS8qCi0gKiBVbmxpa2UgU3VtbWl0LCB3ZSBkb24ndCByZWFsbHkgY2FyZSB0byBsZXQgdGhlIE5VTUEtUQotICogZmFsbCBiYWNrIHRvIGZsYXQgbW9kZS4gIERvbid0IGNvbXBpbGUgZm9yIE5VTUEtUQotICogdW5sZXNzIHlvdSByZWFsbHkgbmVlZCBpdCEKLSAqLworc3RhdGljIF9faW5pdCB2b2lkIGVhcmx5X2NoZWNrX251bWFxKHZvaWQpCit7CisJLyoKKwkgKiBGaW5kIHBvc3NpYmxlIGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbjoKKwkgKi8KKwllYXJseV9maW5kX3NtcF9jb25maWcoKTsKKwkvKgorCSAqIGdldCBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246CisJICovCisJaWYgKHNtcF9mb3VuZF9jb25maWcpCisJCWVhcmx5X2dldF9zbXBfY29uZmlnKCk7Cit9CisKIGludCBfX2luaXQgZ2V0X21lbWNmZ19udW1hcSh2b2lkKQogeworCWVhcmx5X2NoZWNrX251bWFxKCk7CisJaWYgKCFmb3VuZF9udW1hcSkKKwkJcmV0dXJuIDA7CiAJc21wX2R1bXBfcWN0KCk7CiAJcmV0dXJuIDE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IG51bWFxX3RzY19kaXNhYmxlKHZvaWQpCit2b2lkIF9faW5pdCBudW1hcV90c2NfZGlzYWJsZSh2b2lkKQogeworCWlmICghZm91bmRfbnVtYXEpCisJCXJldHVybiAtMTsKKwogCWlmIChudW1fb25saW5lX25vZGVzKCkgPiAxKSB7CiAJCXByaW50ayhLRVJOX0RFQlVHICJOVU1BUTogZGlzYWJsaW5nIFRTQ1xuIik7CiAJCXNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfVFNDKTsKIAl9Ci0JcmV0dXJuIDA7CiB9Ci1hcmNoX2luaXRjYWxsKG51bWFxX3RzY19kaXNhYmxlKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wYXJhdmlydC5jIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMKaW5kZXggNzRmMGM1ZS4uZTBmNTcxZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KICNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgogI2luY2x1ZGUgPGFzbS90aW1lLmg+CisjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgpAQCAtMTM5LDcgKzE0MCw5IEBACiAJCS8qIElmIHRoZSBvcGVyYXRpb24gaXMgYSBub3AsIHRoZW4gbm9wIHRoZSBjYWxsc2l0ZSAqLwogCQlyZXQgPSBwYXJhdmlydF9wYXRjaF9ub3AoKTsKIAllbHNlIGlmICh0eXBlID09IFBBUkFWSVJUX1BBVENIKHB2X2NwdV9vcHMuaXJldCkgfHwKLQkJIHR5cGUgPT0gUEFSQVZJUlRfUEFUQ0gocHZfY3B1X29wcy5pcnFfZW5hYmxlX3N5c2NhbGxfcmV0KSkKKwkJIHR5cGUgPT0gUEFSQVZJUlRfUEFUQ0gocHZfY3B1X29wcy5pcnFfZW5hYmxlX3N5c2V4aXQpIHx8CisJCSB0eXBlID09IFBBUkFWSVJUX1BBVENIKHB2X2NwdV9vcHMudXNlcmdzX3N5c3JldDMyKSB8fAorCQkgdHlwZSA9PSBQQVJBVklSVF9QQVRDSChwdl9jcHVfb3BzLnVzZXJnc19zeXNyZXQ2NCkpCiAJCS8qIElmIG9wZXJhdGlvbiByZXF1aXJlcyBhIGptcCwgdGhlbiBqbXAgKi8KIAkJcmV0ID0gcGFyYXZpcnRfcGF0Y2hfam1wKGluc25idWYsIG9wZnVuYywgYWRkciwgbGVuKTsKIAllbHNlCkBAIC0xOTAsNyArMTkzLDkgQEAKIAogLyogVGhlc2UgYXJlIGluIGVudHJ5LlMgKi8KIGV4dGVybiB2b2lkIG5hdGl2ZV9pcmV0KHZvaWQpOwotZXh0ZXJuIHZvaWQgbmF0aXZlX2lycV9lbmFibGVfc3lzY2FsbF9yZXQodm9pZCk7CitleHRlcm4gdm9pZCBuYXRpdmVfaXJxX2VuYWJsZV9zeXNleGl0KHZvaWQpOworZXh0ZXJuIHZvaWQgbmF0aXZlX3VzZXJnc19zeXNyZXQzMih2b2lkKTsKK2V4dGVybiB2b2lkIG5hdGl2ZV91c2VyZ3Nfc3lzcmV0NjQodm9pZCk7CiAKIHN0YXRpYyBpbnQgX19pbml0IHByaW50X2Jhbm5lcih2b2lkKQogewpAQCAtMjgwLDcgKzI4NSw3IEBACiAJLmdldF93YWxsY2xvY2sgPSBuYXRpdmVfZ2V0X3dhbGxjbG9jaywKIAkuc2V0X3dhbGxjbG9jayA9IG5hdGl2ZV9zZXRfd2FsbGNsb2NrLAogCS5zY2hlZF9jbG9jayA9IG5hdGl2ZV9zY2hlZF9jbG9jaywKLQkuZ2V0X2NwdV9raHogPSBuYXRpdmVfY2FsY3VsYXRlX2NwdV9raHosCisJLmdldF90c2Nfa2h6ID0gbmF0aXZlX2NhbGlicmF0ZV90c2MsCiB9OwogCiBzdHJ1Y3QgcHZfaXJxX29wcyBwdl9pcnFfb3BzID0gewpAQCAtMjkxLDYgKzI5Niw5IEBACiAJLmlycV9lbmFibGUgPSBuYXRpdmVfaXJxX2VuYWJsZSwKIAkuc2FmZV9oYWx0ID0gbmF0aXZlX3NhZmVfaGFsdCwKIAkuaGFsdCA9IG5hdGl2ZV9oYWx0LAorI2lmZGVmIENPTkZJR19YODZfNjQKKwkuYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSA9IHBhcmF2aXJ0X25vcCwKKyNlbmRpZgogfTsKIAogc3RydWN0IHB2X2NwdV9vcHMgcHZfY3B1X29wcyA9IHsKQEAgLTMyMSwxMiArMzI5LDIzIEBACiAJLnN0b3JlX2lkdCA9IG5hdGl2ZV9zdG9yZV9pZHQsCiAJLnN0b3JlX3RyID0gbmF0aXZlX3N0b3JlX3RyLAogCS5sb2FkX3RscyA9IG5hdGl2ZV9sb2FkX3RscywKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJLmxvYWRfZ3NfaW5kZXggPSBuYXRpdmVfbG9hZF9nc19pbmRleCwKKyNlbmRpZgogCS53cml0ZV9sZHRfZW50cnkgPSBuYXRpdmVfd3JpdGVfbGR0X2VudHJ5LAogCS53cml0ZV9nZHRfZW50cnkgPSBuYXRpdmVfd3JpdGVfZ2R0X2VudHJ5LAogCS53cml0ZV9pZHRfZW50cnkgPSBuYXRpdmVfd3JpdGVfaWR0X2VudHJ5LAogCS5sb2FkX3NwMCA9IG5hdGl2ZV9sb2FkX3NwMCwKIAotCS5pcnFfZW5hYmxlX3N5c2NhbGxfcmV0ID0gbmF0aXZlX2lycV9lbmFibGVfc3lzY2FsbF9yZXQsCisjaWYgZGVmaW5lZChDT05GSUdfWDg2XzMyKSB8fCBkZWZpbmVkKENPTkZJR19JQTMyX0VNVUxBVElPTikKKwkuaXJxX2VuYWJsZV9zeXNleGl0ID0gbmF0aXZlX2lycV9lbmFibGVfc3lzZXhpdCwKKyNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfNjQKKyNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT04KKwkudXNlcmdzX3N5c3JldDMyID0gbmF0aXZlX3VzZXJnc19zeXNyZXQzMiwKKyNlbmRpZgorCS51c2VyZ3Nfc3lzcmV0NjQgPSBuYXRpdmVfdXNlcmdzX3N5c3JldDY0LAorI2VuZGlmCiAJLmlyZXQgPSBuYXRpdmVfaXJldCwKIAkuc3dhcGdzID0gbmF0aXZlX3N3YXBncywKIApAQCAtMzY2LDYgKzM4NSw5IEBACiAJLmZsdXNoX3RsYl9zaW5nbGUgPSBuYXRpdmVfZmx1c2hfdGxiX3NpbmdsZSwKIAkuZmx1c2hfdGxiX290aGVycyA9IG5hdGl2ZV9mbHVzaF90bGJfb3RoZXJzLAogCisJLnBnZF9hbGxvYyA9IF9fcGFyYXZpcnRfcGdkX2FsbG9jLAorCS5wZ2RfZnJlZSA9IHBhcmF2aXJ0X25vcCwKKwogCS5hbGxvY19wdGUgPSBwYXJhdmlydF9ub3AsCiAJLmFsbG9jX3BtZCA9IHBhcmF2aXJ0X25vcCwKIAkuYWxsb2NfcG1kX2Nsb25lID0gcGFyYXZpcnRfbm9wLApAQCAtMzgwLDYgKzQwMiw5IEBACiAJLnB0ZV91cGRhdGUgPSBwYXJhdmlydF9ub3AsCiAJLnB0ZV91cGRhdGVfZGVmZXIgPSBwYXJhdmlydF9ub3AsCiAKKwkucHRlcF9tb2RpZnlfcHJvdF9zdGFydCA9IF9fcHRlcF9tb2RpZnlfcHJvdF9zdGFydCwKKwkucHRlcF9tb2RpZnlfcHJvdF9jb21taXQgPSBfX3B0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0LAorCiAjaWZkZWYgQ09ORklHX0hJR0hQVEUKIAkua21hcF9hdG9taWNfcHRlID0ga21hcF9hdG9taWMsCiAjZW5kaWYKQEAgLTQwMyw2ICs0MjgsNyBAQAogI2VuZGlmIC8qIFBBR0VUQUJMRV9MRVZFTFMgPj0gMyAqLwogCiAJLnB0ZV92YWwgPSBuYXRpdmVfcHRlX3ZhbCwKKwkucHRlX2ZsYWdzID0gbmF0aXZlX3B0ZV92YWwsCiAJLnBnZF92YWwgPSBuYXRpdmVfcGdkX3ZhbCwKIAogCS5tYWtlX3B0ZSA9IG5hdGl2ZV9tYWtlX3B0ZSwKQEAgLTQxNiw2ICs0NDIsOCBAQAogCQkuZW50ZXIgPSBwYXJhdmlydF9ub3AsCiAJCS5sZWF2ZSA9IHBhcmF2aXJ0X25vcCwKIAl9LAorCisJLnNldF9maXhtYXAgPSBuYXRpdmVfc2V0X2ZpeG1hcCwKIH07CiAKIEVYUE9SVF9TWU1CT0xfR1BMKHB2X3RpbWVfb3BzKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wYXJhdmlydF9wYXRjaF8zMi5jIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzMyLmMKaW5kZXggODJmYzVmYy4uNTgyNjIyMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzMyLmMKQEAgLTUsNyArNSw3IEBACiBERUZfTkFUSVZFKHB2X2lycV9vcHMsIHJlc3RvcmVfZmwsICJwdXNoICVlYXg7IHBvcGYiKTsKIERFRl9OQVRJVkUocHZfaXJxX29wcywgc2F2ZV9mbCwgInB1c2hmOyBwb3AgJWVheCIpOwogREVGX05BVElWRShwdl9jcHVfb3BzLCBpcmV0LCAiaXJldCIpOwotREVGX05BVElWRShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2NhbGxfcmV0LCAic3RpOyBzeXNleGl0Iik7CitERUZfTkFUSVZFKHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzZXhpdCwgInN0aTsgc3lzZXhpdCIpOwogREVGX05BVElWRShwdl9tbXVfb3BzLCByZWFkX2NyMiwgIm1vdiAlY3IyLCAlZWF4Iik7CiBERUZfTkFUSVZFKHB2X21tdV9vcHMsIHdyaXRlX2NyMywgIm1vdiAlZWF4LCAlY3IzIik7CiBERUZfTkFUSVZFKHB2X21tdV9vcHMsIHJlYWRfY3IzLCAibW92ICVjcjMsICVlYXgiKTsKQEAgLTI5LDcgKzI5LDcgQEAKIAkJUEFUQ0hfU0lURShwdl9pcnFfb3BzLCByZXN0b3JlX2ZsKTsKIAkJUEFUQ0hfU0lURShwdl9pcnFfb3BzLCBzYXZlX2ZsKTsKIAkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcmV0KTsKLQkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2NhbGxfcmV0KTsKKwkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2V4aXQpOwogCQlQQVRDSF9TSVRFKHB2X21tdV9vcHMsIHJlYWRfY3IyKTsKIAkJUEFUQ0hfU0lURShwdl9tbXVfb3BzLCByZWFkX2NyMyk7CiAJCVBBVENIX1NJVEUocHZfbW11X29wcywgd3JpdGVfY3IzKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wYXJhdmlydF9wYXRjaF82NC5jIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzY0LmMKaW5kZXggN2Q5MDRlMS4uMDYxZDAxZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzY0LmMKQEAgLTE0LDggKzE0LDkgQEAKIERFRl9OQVRJVkUocHZfY3B1X29wcywgY2x0cywgImNsdHMiKTsKIERFRl9OQVRJVkUocHZfY3B1X29wcywgd2JpbnZkLCAid2JpbnZkIik7CiAKLS8qIHRoZSB0aHJlZSBjb21tYW5kcyBnaXZlIHVzIG1vcmUgY29udHJvbCB0byBob3cgdG8gcmV0dXJuIGZyb20gYSBzeXNjYWxsICovCi1ERUZfTkFUSVZFKHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzY2FsbF9yZXQsICJtb3ZxICVnczoiIF9fc3RyaW5naWZ5KHBkYV9vbGRyc3ApICIsICVyc3A7IHN3YXBnczsgc3lzcmV0cTsiKTsKK0RFRl9OQVRJVkUocHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNleGl0LCAic3dhcGdzOyBzdGk7IHN5c2V4aXQiKTsKK0RFRl9OQVRJVkUocHZfY3B1X29wcywgdXNlcmdzX3N5c3JldDY0LCAic3dhcGdzOyBzeXNyZXRxIik7CitERUZfTkFUSVZFKHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQzMiwgInN3YXBnczsgc3lzcmV0bCIpOwogREVGX05BVElWRShwdl9jcHVfb3BzLCBzd2FwZ3MsICJzd2FwZ3MiKTsKIAogdW5zaWduZWQgbmF0aXZlX3BhdGNoKHU4IHR5cGUsIHUxNiBjbG9iYmVycywgdm9pZCAqaWJ1ZiwKQEAgLTM1LDcgKzM2LDkgQEAKIAkJUEFUQ0hfU0lURShwdl9pcnFfb3BzLCBpcnFfZW5hYmxlKTsKIAkJUEFUQ0hfU0lURShwdl9pcnFfb3BzLCBpcnFfZGlzYWJsZSk7CiAJCVBBVENIX1NJVEUocHZfY3B1X29wcywgaXJldCk7Ci0JCVBBVENIX1NJVEUocHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNjYWxsX3JldCk7CisJCVBBVENIX1NJVEUocHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNleGl0KTsKKwkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCB1c2VyZ3Nfc3lzcmV0MzIpOworCQlQQVRDSF9TSVRFKHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQ2NCk7CiAJCVBBVENIX1NJVEUocHZfY3B1X29wcywgc3dhcGdzKTsKIAkJUEFUQ0hfU0lURShwdl9tbXVfb3BzLCByZWFkX2NyMik7CiAJCVBBVENIX1NJVEUocHZfbW11X29wcywgcmVhZF9jcjMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BjaS1jYWxnYXJ5XzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWNhbGdhcnlfNjQuYwppbmRleCBlMjhlYzQ5Li42OTU5YjVjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLWNhbGdhcnlfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWNhbGdhcnlfNjQuYwpAQCAtMTM5NCw3ICsxMzk0LDcgQEAKIAkJcmV0dXJuOwogCX0KIAotCXNwZWNpZmllZF90YWJsZV9zaXplID0gZGV0ZXJtaW5lX3RjZV90YWJsZV9zaXplKGVuZF9wZm4gKiBQQUdFX1NJWkUpOworCXNwZWNpZmllZF90YWJsZV9zaXplID0gZGV0ZXJtaW5lX3RjZV90YWJsZV9zaXplKG1heF9wZm4gKiBQQUdFX1NJWkUpOwogCiAJZm9yIChidXMgPSAwOyBidXMgPCBNQVhfUEhCX0JVU19OVU07IGJ1cysrKSB7CiAJCXN0cnVjdCBjYWxnYXJ5X2J1c19pbmZvICppbmZvID0gJmJ1c19pbmZvW2J1c107CkBAIC0xNDU5LDcgKzE0NTksNyBAQAogCWlmIChyZXQpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJQQ0ktRE1BOiBDYWxnYXJ5IGluaXQgZmFpbGVkICVkLCAiCiAJCSAgICAgICAiZmFsbGluZyBiYWNrIHRvIG5vX2lvbW11XG4iLCByZXQpOwotCQlpZiAoZW5kX3BmbiA+IE1BWF9ETUEzMl9QRk4pCisJCWlmIChtYXhfcGZuID4gTUFYX0RNQTMyX1BGTikKIAkJCXByaW50ayhLRVJOX0VSUiAiV0FSTklORyBtb3JlIHRoYW4gNEdCIG9mIG1lbW9yeSwgIgogCQkJCQkiMzJiaXQgUENJIG1heSBtYWxmdW5jdGlvbi5cbiIpOwogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BjaS1kbWEuYyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktZG1hLmMKaW5kZXggZGMwMGExMy4uODQ2N2VjMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BjaS1kbWEuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWRtYS5jCkBAIC03LDYgKzcsNyBAQAogI2luY2x1ZGUgPGFzbS9kbWEuaD4KICNpbmNsdWRlIDxhc20vZ2FydC5oPgogI2luY2x1ZGUgPGFzbS9jYWxnYXJ5Lmg+CisjaW5jbHVkZSA8YXNtL2FtZF9pb21tdS5oPgogCiBpbnQgZm9yYmlkX2RhYyBfX3JlYWRfbW9zdGx5OwogRVhQT1JUX1NZTUJPTChmb3JiaWRfZGFjKTsKQEAgLTc0LDEzICs3NSwxNyBAQAogdm9pZCBfX2luaXQgZG1hMzJfcmVzZXJ2ZV9ib290bWVtKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBzaXplLCBhbGlnbjsKLQlpZiAoZW5kX3BmbiA8PSBNQVhfRE1BMzJfUEZOKQorCWlmIChtYXhfcGZuIDw9IE1BWF9ETUEzMl9QRk4pCiAJCXJldHVybjsKIAorCS8qCisJICogY2hlY2sgYXBlcnR1cmVfNjQuYyBhbGxvY2F0ZV9hcGVydHVyZSgpIGZvciByZWFzb24gYWJvdXQKKwkgKiB1c2luZyA1MTJNIGFzIGdvYWwKKwkgKi8KIAlhbGlnbiA9IDY0VUxMPDwyMDsKIAlzaXplID0gcm91bmRfdXAoZG1hMzJfYm9vdG1lbV9zaXplLCBhbGlnbik7CiAJZG1hMzJfYm9vdG1lbV9wdHIgPSBfX2FsbG9jX2Jvb3RtZW1fbm9wYW5pYyhzaXplLCBhbGlnbiwKLQkJCQkgX19wYShNQVhfRE1BX0FERFJFU1MpKTsKKwkJCQkgNTEyVUxMPDwyMCk7CiAJaWYgKGRtYTMyX2Jvb3RtZW1fcHRyKQogCQlkbWEzMl9ib290bWVtX3NpemUgPSBzaXplOwogCWVsc2UKQEAgLTg4LDE3ICs5MywxNCBAQAogfQogc3RhdGljIHZvaWQgX19pbml0IGRtYTMyX2ZyZWVfYm9vdG1lbSh2b2lkKQogewotCWludCBub2RlOwogCi0JaWYgKGVuZF9wZm4gPD0gTUFYX0RNQTMyX1BGTikKKwlpZiAobWF4X3BmbiA8PSBNQVhfRE1BMzJfUEZOKQogCQlyZXR1cm47CiAKIAlpZiAoIWRtYTMyX2Jvb3RtZW1fcHRyKQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9vbmxpbmVfbm9kZShub2RlKQotCQlmcmVlX2Jvb3RtZW1fbm9kZShOT0RFX0RBVEEobm9kZSksIF9fcGEoZG1hMzJfYm9vdG1lbV9wdHIpLAotCQkJCSAgZG1hMzJfYm9vdG1lbV9zaXplKTsKKwlmcmVlX2Jvb3RtZW0oX19wYShkbWEzMl9ib290bWVtX3B0ciksIGRtYTMyX2Jvb3RtZW1fc2l6ZSk7CiAKIAlkbWEzMl9ib290bWVtX3B0ciA9IE5VTEw7CiAJZG1hMzJfYm9vdG1lbV9zaXplID0gMDsKQEAgLTEyMiw2ICsxMjQsOCBAQAogCiAJZGV0ZWN0X2ludGVsX2lvbW11KCk7CiAKKwlhbWRfaW9tbXVfZGV0ZWN0KCk7CisKICNpZmRlZiBDT05GSUdfU1dJT1RMQgogCXBjaV9zd2lvdGxiX2luaXQoKTsKICNlbmRpZgpAQCAtMzU3LDcgKzM2MSw3IEBACiBFWFBPUlRfU1lNQk9MKGRtYV9zdXBwb3J0ZWQpOwogCiAvKiBBbGxvY2F0ZSBETUEgbWVtb3J5IG9uIG5vZGUgbmVhciBkZXZpY2UgKi8KLW5vaW5saW5lIHN0cnVjdCBwYWdlICoKK3N0YXRpYyBub2lubGluZSBzdHJ1Y3QgcGFnZSAqCiBkbWFfYWxsb2NfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBnZnBfdCBnZnAsIHVuc2lnbmVkIG9yZGVyKQogewogCWludCBub2RlOwpAQCAtNTAyLDYgKzUwNiw4IEBACiAKIAlpbnRlbF9pb21tdV9pbml0KCk7CiAKKwlhbWRfaW9tbXVfaW5pdCgpOworCiAjaWZkZWYgQ09ORklHX0dBUlRfSU9NTVUKIAlnYXJ0X2lvbW11X2luaXQoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BjaS1nYXJ0XzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWdhcnRfNjQuYwppbmRleCBhYThlYzkyLi5jM2ZlNzg0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLWdhcnRfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWdhcnRfNjQuYwpAQCAtMTA0LDcgKzEwNCw2IEBACiAJCQkJCSAgc2l6ZSwgYmFzZV9pbmRleCwgYm91bmRhcnlfc2l6ZSwgMCk7CiAJfQogCWlmIChvZmZzZXQgIT0gLTEpIHsKLQkJc2V0X2JpdF9zdHJpbmcoaW9tbXVfZ2FydF9iaXRtYXAsIG9mZnNldCwgc2l6ZSk7CiAJCW5leHRfYml0ID0gb2Zmc2V0K3NpemU7CiAJCWlmIChuZXh0X2JpdCA+PSBpb21tdV9wYWdlcykgewogCQkJbmV4dF9iaXQgPSAwOwpAQCAtNTM0LDggKzUzMyw4IEBACiAJdW5zaWduZWQgYXBlcl9zaXplID0gMCwgYXBlcl9iYXNlXzMyLCBhcGVyX29yZGVyOwogCXU2NCBhcGVyX2Jhc2U7CiAKLQlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCAweDk0LCAmYXBlcl9iYXNlXzMyKTsKLQlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCAweDkwLCAmYXBlcl9vcmRlcik7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJmFwZXJfYmFzZV8zMik7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCAmYXBlcl9vcmRlcik7CiAJYXBlcl9vcmRlciA9IChhcGVyX29yZGVyID4+IDEpICYgNzsKIAogCWFwZXJfYmFzZSA9IGFwZXJfYmFzZV8zMiAmIDB4N2ZmZjsKQEAgLTU0OSwxNCArNTQ4LDYzIEBACiAJcmV0dXJuIGFwZXJfYmFzZTsKIH0KIAorc3RhdGljIHZvaWQgZW5hYmxlX2dhcnRfdHJhbnNsYXRpb25zKHZvaWQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2s4X25vcnRoYnJpZGdlczsgaSsrKSB7CisJCXN0cnVjdCBwY2lfZGV2ICpkZXYgPSBrOF9ub3J0aGJyaWRnZXNbaV07CisKKwkJZW5hYmxlX2dhcnRfdHJhbnNsYXRpb24oZGV2LCBfX3BhKGFncF9nYXR0X3RhYmxlKSk7CisJfQorfQorCisvKgorICogSWYgZml4X3VwX25vcnRoX2JyaWRnZXMgaXMgc2V0LCB0aGUgbm9ydGggYnJpZGdlcyBoYXZlIHRvIGJlIGZpeGVkIHVwIG9uCisgKiByZXN1bWUgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZXkgYXJlIGhhbmRsZWQgaW4gZ2FydF9pb21tdV9ob2xlX2luaXQoKS4KKyAqLworc3RhdGljIGJvb2wgZml4X3VwX25vcnRoX2JyaWRnZXM7CitzdGF0aWMgdTMyIGFwZXJ0dXJlX29yZGVyOworc3RhdGljIHUzMiBhcGVydHVyZV9hbGxvYzsKKwordm9pZCBzZXRfdXBfZ2FydF9yZXN1bWUodTMyIGFwZXJfb3JkZXIsIHUzMiBhcGVyX2FsbG9jKQoreworCWZpeF91cF9ub3J0aF9icmlkZ2VzID0gdHJ1ZTsKKwlhcGVydHVyZV9vcmRlciA9IGFwZXJfb3JkZXI7CisJYXBlcnR1cmVfYWxsb2MgPSBhcGVyX2FsbG9jOworfQorCiBzdGF0aWMgaW50IGdhcnRfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCiB7CisJcHJpbnRrKEtFUk5fSU5GTyAiUENJLURNQTogUmVzdW1pbmcgR0FSVCBJT01NVVxuIik7CisKKwlpZiAoZml4X3VwX25vcnRoX2JyaWRnZXMpIHsKKwkJaW50IGk7CisKKwkJcHJpbnRrKEtFUk5fSU5GTyAiUENJLURNQTogUmVzdG9yaW5nIEdBUlQgYXBlcnR1cmUgc2V0dGluZ3NcbiIpOworCisJCWZvciAoaSA9IDA7IGkgPCBudW1fazhfbm9ydGhicmlkZ2VzOyBpKyspIHsKKwkJCXN0cnVjdCBwY2lfZGV2ICpkZXYgPSBrOF9ub3J0aGJyaWRnZXNbaV07CisKKwkJCS8qCisJCQkgKiBEb24ndCBlbmFibGUgdHJhbnNsYXRpb25zIGp1c3QgeWV0LiAgVGhhdCBpcyB0aGUgbmV4dAorCQkJICogc3RlcC4gIFJlc3RvcmUgdGhlIHByZS1zdXNwZW5kIGFwZXJ0dXJlIHNldHRpbmdzLgorCQkJICovCisJCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLAorCQkJCQkJYXBlcnR1cmVfb3JkZXIgPDwgMSk7CisJCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwKKwkJCQkJCWFwZXJ0dXJlX2FsbG9jID4+IDI1KTsKKwkJfQorCX0KKworCWVuYWJsZV9nYXJ0X3RyYW5zbGF0aW9ucygpOworCiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZ2FydF9zdXNwZW5kKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKLQlyZXR1cm4gLUVJTlZBTDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3MgZ2FydF9zeXNkZXZfY2xhc3MgPSB7CkBAIC01ODIsNiArNjMwLDcgQEAKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2OwogCXZvaWQgKmdhdHQ7CiAJaW50IGksIGVycm9yOworCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBlbmRfcGZuOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiUENJLURNQTogRGlzYWJsaW5nIEFHUC5cbiIpOwogCWFwZXJfc2l6ZSA9IGFwZXJfYmFzZSA9IGluZm8tPmFwZXJfc2l6ZSA9IDA7CkBAIC02MTQsMzEgKzY2MywyNSBAQAogCW1lbXNldChnYXR0LCAwLCBnYXR0X3NpemUpOwogCWFncF9nYXR0X3RhYmxlID0gZ2F0dDsKIAotCWZvciAoaSA9IDA7IGkgPCBudW1fazhfbm9ydGhicmlkZ2VzOyBpKyspIHsKLQkJdTMyIGdhdHRfcmVnOwotCQl1MzIgY3RsOwotCi0JCWRldiA9IGs4X25vcnRoYnJpZGdlc1tpXTsKLQkJZ2F0dF9yZWcgPSBfX3BhKGdhdHQpID4+IDEyOwotCQlnYXR0X3JlZyA8PD0gNDsKLQkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIDB4OTgsIGdhdHRfcmVnKTsKLQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg5MCwgJmN0bCk7Ci0KLQkJY3RsIHw9IDE7Ci0JCWN0bCAmPSB+KCgxPDw0KSB8ICgxPDw1KSk7Ci0KLQkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIDB4OTAsIGN0bCk7Ci0JfQorCWVuYWJsZV9nYXJ0X3RyYW5zbGF0aW9ucygpOwogCiAJZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmdhcnRfc3lzZGV2X2NsYXNzKTsKIAlpZiAoIWVycm9yKQogCQllcnJvciA9IHN5c2Rldl9yZWdpc3RlcigmZGV2aWNlX2dhcnQpOwogCWlmIChlcnJvcikKIAkJcGFuaWMoIkNvdWxkIG5vdCByZWdpc3RlciBnYXJ0X3N5c2RldiAtLSB3b3VsZCBjb3JydXB0IGRhdGEgb24gbmV4dCBzdXNwZW5kIik7CisKIAlmbHVzaF9nYXJ0KCk7CiAKIAlwcmludGsoS0VSTl9JTkZPICJQQ0ktRE1BOiBhcGVydHVyZSBiYXNlIEAgJXggc2l6ZSAldSBLQlxuIiwKIAkgICAgICAgYXBlcl9iYXNlLCBhcGVyX3NpemU+PjEwKTsKKworCS8qIG5lZWQgdG8gbWFwIHRoYXQgcmFuZ2UgKi8KKwllbmRfcGZuID0gKGFwZXJfYmFzZT4+UEFHRV9TSElGVCkgKyAoYXBlcl9zaXplPj5QQUdFX1NISUZUKTsKKwlpZiAoZW5kX3BmbiA+IG1heF9sb3dfcGZuX21hcHBlZCkgeworCQlzdGFydF9wZm4gPSAoYXBlcl9iYXNlPj5QQUdFX1NISUZUKTsKKwkJaW5pdF9tZW1vcnlfbWFwcGluZyhzdGFydF9wZm48PFBBR0VfU0hJRlQsIGVuZF9wZm48PFBBR0VfU0hJRlQpOworCX0KIAlyZXR1cm4gMDsKIAogIG5vbW11OgpAQCAtNjc3LDExICs3MjAsMTEgQEAKIAkJdTMyIGN0bDsKIAogCQlkZXYgPSBrOF9ub3J0aGJyaWRnZXNbaV07Ci0JCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIDB4OTAsICZjdGwpOworCQlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsICZjdGwpOwogCi0JCWN0bCAmPSB+MTsKKwkJY3RsICY9IH5HQVJURU47CiAKLQkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIDB4OTAsIGN0bCk7CisJCXBjaV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsIGN0bCk7CiAJfQogfQogCkBAIC03MTYsMTAgKzc1OSwxMCBAQAogCQlyZXR1cm47CiAKIAlpZiAobm9faW9tbXUgfHwKLQkgICAgKCFmb3JjZV9pb21tdSAmJiBlbmRfcGZuIDw9IE1BWF9ETUEzMl9QRk4pIHx8CisJICAgICghZm9yY2VfaW9tbXUgJiYgbWF4X3BmbiA8PSBNQVhfRE1BMzJfUEZOKSB8fAogCSAgICAhZ2FydF9pb21tdV9hcGVydHVyZSB8fAogCSAgICAobm9fYWdwICYmIGluaXRfazhfZ2F0dCgmaW5mbykgPCAwKSkgewotCQlpZiAoZW5kX3BmbiA+IE1BWF9ETUEzMl9QRk4pIHsKKwkJaWYgKG1heF9wZm4gPiBNQVhfRE1BMzJfUEZOKSB7CiAJCQlwcmludGsoS0VSTl9XQVJOSU5HICJNb3JlIHRoYW4gNEdCIG9mIG1lbW9yeSAiCiAJCQkgICAgICAgCSAgICAgICAgICAiYnV0IEdBUlQgSU9NTVUgbm90IGF2YWlsYWJsZS5cbiIKIAkJCSAgICAgICBLRVJOX1dBUk5JTkcgImZhbGxpbmcgYmFjayB0byBpb21tdT1zb2Z0LlxuIik7CkBAIC03ODgsMTAgKzgzMSwxMCBAQAogCXdiaW52ZCgpOwogCiAJLyoKLQkgKiBUcnkgdG8gd29ya2Fyb3VuZCBhIGJ1ZyAodGhhbmtzIHRvIEJlbkgpCisJICogVHJ5IHRvIHdvcmthcm91bmQgYSBidWcgKHRoYW5rcyB0byBCZW5IKToKIAkgKiBTZXQgdW5tYXBwZWQgZW50cmllcyB0byBhIHNjcmF0Y2ggcGFnZSBpbnN0ZWFkIG9mIDAuCiAJICogQW55IHByZWZldGNoZXMgdGhhdCBoaXQgdW5tYXBwZWQgZW50cmllcyB3b24ndCBnZXQgYW4gYnVzIGFib3J0Ci0JICogdGhlbi4KKwkgKiB0aGVuLiAoUDJQIGJyaWRnZSBtYXkgYmUgcHJlZmV0Y2hpbmcgb24gRE1BIHJlYWRzKS4KIAkgKi8KIAlzY3JhdGNoID0gZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOwogCWlmICghc2NyYXRjaCkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wY2ktc3dpb3RsYl82NC5jIGIvYXJjaC94ODYva2VybmVsL3BjaS1zd2lvdGxiXzY0LmMKaW5kZXggNDkwZGE3Zi4uODIyOTljZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BjaS1zd2lvdGxiXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3BjaS1zd2lvdGxiXzY0LmMKQEAgLTM4LDcgKzM4LDcgQEAKIHZvaWQgX19pbml0IHBjaV9zd2lvdGxiX2luaXQodm9pZCkKIHsKIAkvKiBkb24ndCBpbml0aWFsaXplIHN3aW90bGIgaWYgaW9tbXU9b2ZmIChub19pb21tdT0xKSAqLwotCWlmICghaW9tbXVfZGV0ZWN0ZWQgJiYgIW5vX2lvbW11ICYmIGVuZF9wZm4gPiBNQVhfRE1BMzJfUEZOKQorCWlmICghaW9tbXVfZGV0ZWN0ZWQgJiYgIW5vX2lvbW11ICYmIG1heF9wZm4gPiBNQVhfRE1BMzJfUEZOKQogCSAgICAgICBzd2lvdGxiID0gMTsKIAlpZiAoc3dpb3RsYl9mb3JjZSkKIAkJc3dpb3RsYiA9IDE7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcHJvYmVfcm9tc18zMi5jIGIvYXJjaC94ODYva2VybmVsL3Byb2JlX3JvbXNfMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzVhNDhjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL3Byb2JlX3JvbXNfMzIuYwpAQCAtMCwwICsxLDE2NiBAQAorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvbW16b25lLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2VkZC5oPgorI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgorI2luY2x1ZGUgPGxpbnV4L3Bmbi5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGFzbS9wY2ktZGlyZWN0Lmg+CisKKworI2luY2x1ZGUgPGFzbS9lODIwLmg+CisjaW5jbHVkZSA8YXNtL21tem9uZS5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPHNldHVwX2FyY2guaD4KKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzeXN0ZW1fcm9tX3Jlc291cmNlID0geworCS5uYW1lCT0gIlN5c3RlbSBST00iLAorCS5zdGFydAk9IDB4ZjAwMDAsCisJLmVuZAk9IDB4ZmZmZmYsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGV4dGVuc2lvbl9yb21fcmVzb3VyY2UgPSB7CisJLm5hbWUJPSAiRXh0ZW5zaW9uIFJPTSIsCisJLnN0YXJ0CT0gMHhlMDAwMCwKKwkuZW5kCT0gMHhlZmZmZiwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYWRhcHRlcl9yb21fcmVzb3VyY2VzW10gPSB7IHsKKwkubmFtZSAJPSAiQWRhcHRlciBST00iLAorCS5zdGFydAk9IDB4YzgwMDAsCisJLmVuZAk9IDAsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCit9LCB7CisJLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKKwkuc3RhcnQJPSAwLAorCS5lbmQJPSAwLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQorfSwgeworCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCisJLnN0YXJ0CT0gMCwKKwkuZW5kCT0gMCwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KK30sIHsKKwkubmFtZSAJPSAiQWRhcHRlciBST00iLAorCS5zdGFydAk9IDAsCisJLmVuZAk9IDAsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCit9LCB7CisJLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKKwkuc3RhcnQJPSAwLAorCS5lbmQJPSAwLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQorfSwgeworCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCisJLnN0YXJ0CT0gMCwKKwkuZW5kCT0gMCwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KK30gfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB2aWRlb19yb21fcmVzb3VyY2UgPSB7CisJLm5hbWUgCT0gIlZpZGVvIFJPTSIsCisJLnN0YXJ0CT0gMHhjMDAwMCwKKwkuZW5kCT0gMHhjN2ZmZiwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KK307CisKKyNkZWZpbmUgUk9NU0lHTkFUVVJFIDB4YWE1NQorCitzdGF0aWMgaW50IF9faW5pdCByb21zaWduYXR1cmUoY29uc3QgdW5zaWduZWQgY2hhciAqcm9tKQoreworCWNvbnN0IHVuc2lnbmVkIHNob3J0ICogY29uc3QgcHRyID0gKGNvbnN0IHVuc2lnbmVkIHNob3J0ICopcm9tOworCXVuc2lnbmVkIHNob3J0IHNpZzsKKworCXJldHVybiBwcm9iZV9rZXJuZWxfYWRkcmVzcyhwdHIsIHNpZykgPT0gMCAmJiBzaWcgPT0gUk9NU0lHTkFUVVJFOworfQorCitzdGF0aWMgaW50IF9faW5pdCByb21jaGVja3N1bShjb25zdCB1bnNpZ25lZCBjaGFyICpyb20sIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKQoreworCXVuc2lnbmVkIGNoYXIgc3VtLCBjOworCisJZm9yIChzdW0gPSAwOyBsZW5ndGggJiYgcHJvYmVfa2VybmVsX2FkZHJlc3Mocm9tKyssIGMpID09IDA7IGxlbmd0aC0tKQorCQlzdW0gKz0gYzsKKwlyZXR1cm4gIWxlbmd0aCAmJiAhc3VtOworfQorCit2b2lkIF9faW5pdCBwcm9iZV9yb21zKHZvaWQpCit7CisJY29uc3QgdW5zaWduZWQgY2hhciAqcm9tOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGxlbmd0aCwgdXBwZXI7CisJdW5zaWduZWQgY2hhciBjOworCWludCBpOworCisJLyogdmlkZW8gcm9tICovCisJdXBwZXIgPSBhZGFwdGVyX3JvbV9yZXNvdXJjZXNbMF0uc3RhcnQ7CisJZm9yIChzdGFydCA9IHZpZGVvX3JvbV9yZXNvdXJjZS5zdGFydDsgc3RhcnQgPCB1cHBlcjsgc3RhcnQgKz0gMjA0OCkgeworCQlyb20gPSBpc2FfYnVzX3RvX3ZpcnQoc3RhcnQpOworCQlpZiAoIXJvbXNpZ25hdHVyZShyb20pKQorCQkJY29udGludWU7CisKKwkJdmlkZW9fcm9tX3Jlc291cmNlLnN0YXJ0ID0gc3RhcnQ7CisKKwkJaWYgKHByb2JlX2tlcm5lbF9hZGRyZXNzKHJvbSArIDIsIGMpICE9IDApCisJCQljb250aW51ZTsKKworCQkvKiAwIDwgbGVuZ3RoIDw9IDB4N2YgKiA1MTIsIGhpc3RvcmljYWxseSAqLworCQlsZW5ndGggPSBjICogNTEyOworCisJCS8qIGlmIGNoZWNrc3VtIG9rYXksIHRydXN0IGxlbmd0aCBieXRlICovCisJCWlmIChsZW5ndGggJiYgcm9tY2hlY2tzdW0ocm9tLCBsZW5ndGgpKQorCQkJdmlkZW9fcm9tX3Jlc291cmNlLmVuZCA9IHN0YXJ0ICsgbGVuZ3RoIC0gMTsKKworCQlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJnZpZGVvX3JvbV9yZXNvdXJjZSk7CisJCWJyZWFrOworCX0KKworCXN0YXJ0ID0gKHZpZGVvX3JvbV9yZXNvdXJjZS5lbmQgKyAxICsgMjA0NykgJiB+MjA0N1VMOworCWlmIChzdGFydCA8IHVwcGVyKQorCQlzdGFydCA9IHVwcGVyOworCisJLyogc3lzdGVtIHJvbSAqLworCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmc3lzdGVtX3JvbV9yZXNvdXJjZSk7CisJdXBwZXIgPSBzeXN0ZW1fcm9tX3Jlc291cmNlLnN0YXJ0OworCisJLyogY2hlY2sgZm9yIGV4dGVuc2lvbiByb20gKGlnbm9yZSBsZW5ndGggYnl0ZSEpICovCisJcm9tID0gaXNhX2J1c190b192aXJ0KGV4dGVuc2lvbl9yb21fcmVzb3VyY2Uuc3RhcnQpOworCWlmIChyb21zaWduYXR1cmUocm9tKSkgeworCQlsZW5ndGggPSBleHRlbnNpb25fcm9tX3Jlc291cmNlLmVuZCAtIGV4dGVuc2lvbl9yb21fcmVzb3VyY2Uuc3RhcnQgKyAxOworCQlpZiAocm9tY2hlY2tzdW0ocm9tLCBsZW5ndGgpKSB7CisJCQlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmV4dGVuc2lvbl9yb21fcmVzb3VyY2UpOworCQkJdXBwZXIgPSBleHRlbnNpb25fcm9tX3Jlc291cmNlLnN0YXJ0OworCQl9CisJfQorCisJLyogY2hlY2sgZm9yIGFkYXB0ZXIgcm9tcyBvbiAyayBib3VuZGFyaWVzICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYWRhcHRlcl9yb21fcmVzb3VyY2VzKSAmJiBzdGFydCA8IHVwcGVyOyBzdGFydCArPSAyMDQ4KSB7CisJCXJvbSA9IGlzYV9idXNfdG9fdmlydChzdGFydCk7CisJCWlmICghcm9tc2lnbmF0dXJlKHJvbSkpCisJCQljb250aW51ZTsKKworCQlpZiAocHJvYmVfa2VybmVsX2FkZHJlc3Mocm9tICsgMiwgYykgIT0gMCkKKwkJCWNvbnRpbnVlOworCisJCS8qIDAgPCBsZW5ndGggPD0gMHg3ZiAqIDUxMiwgaGlzdG9yaWNhbGx5ICovCisJCWxlbmd0aCA9IGMgKiA1MTI7CisKKwkJLyogYnV0IGFjY2VwdCBhbnkgbGVuZ3RoIHRoYXQgZml0cyBpZiBjaGVja3N1bSBva2F5ICovCisJCWlmICghbGVuZ3RoIHx8IHN0YXJ0ICsgbGVuZ3RoID4gdXBwZXIgfHwgIXJvbWNoZWNrc3VtKHJvbSwgbGVuZ3RoKSkKKwkJCWNvbnRpbnVlOworCisJCWFkYXB0ZXJfcm9tX3Jlc291cmNlc1tpXS5zdGFydCA9IHN0YXJ0OworCQlhZGFwdGVyX3JvbV9yZXNvdXJjZXNbaV0uZW5kID0gc3RhcnQgKyBsZW5ndGggLSAxOworCQlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmFkYXB0ZXJfcm9tX3Jlc291cmNlc1tpXSk7CisKKwkJc3RhcnQgPSBhZGFwdGVyX3JvbV9yZXNvdXJjZXNbaSsrXS5lbmQgJiB+MjA0N1VMOworCX0KK30KKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggMmRhZDhmZWYuLjdkY2VlYTkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYwpAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtLmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgogCiBzdHJ1Y3Qga21lbV9jYWNoZSAqdGFza194c3RhdGVfY2FjaGVwOwogCkBAIC00NSw2ICs0Niw3NiBAQAogCQkJCSAgU0xBQl9QQU5JQywgTlVMTCk7CiB9CiAKKy8qCisgKiBJZGxlIHJlbGF0ZWQgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMKKyAqLwordW5zaWduZWQgbG9uZyBib290X29wdGlvbl9pZGxlX292ZXJyaWRlID0gMDsKK0VYUE9SVF9TWU1CT0woYm9vdF9vcHRpb25faWRsZV9vdmVycmlkZSk7CisKKy8qCisgKiBQb3dlcm1hbmFnZW1lbnQgaWRsZSBmdW5jdGlvbiwgaWYgYW55Li4KKyAqLwordm9pZCAoKnBtX2lkbGUpKHZvaWQpOworRVhQT1JUX1NZTUJPTChwbV9pZGxlKTsKKworI2lmZGVmIENPTkZJR19YODZfMzIKKy8qCisgKiBUaGlzIGhhbHQgbWFnaWMgd2FzIGEgd29ya2Fyb3VuZCBmb3IgYW5jaWVudCBmbG9wcHkgRE1BCisgKiB3cmVja2FnZS4gSXQgc2hvdWxkIGJlIHNhZmUgdG8gcmVtb3ZlLgorICovCitzdGF0aWMgaW50IGhsdF9jb3VudGVyOwordm9pZCBkaXNhYmxlX2hsdCh2b2lkKQoreworCWhsdF9jb3VudGVyKys7Cit9CitFWFBPUlRfU1lNQk9MKGRpc2FibGVfaGx0KTsKKwordm9pZCBlbmFibGVfaGx0KHZvaWQpCit7CisJaGx0X2NvdW50ZXItLTsKK30KK0VYUE9SVF9TWU1CT0woZW5hYmxlX2hsdCk7CisKK3N0YXRpYyBpbmxpbmUgaW50IGhsdF91c2VfaGFsdCh2b2lkKQoreworCXJldHVybiAoIWhsdF9jb3VudGVyICYmIGJvb3RfY3B1X2RhdGEuaGx0X3dvcmtzX29rKTsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBobHRfdXNlX2hhbHQodm9pZCkKK3sKKwlyZXR1cm4gMTsKK30KKyNlbmRpZgorCisvKgorICogV2UgdXNlIHRoaXMgaWYgd2UgZG9uJ3QgaGF2ZSBhbnkgYmV0dGVyCisgKiBpZGxlIHJvdXRpbmUuLgorICovCit2b2lkIGRlZmF1bHRfaWRsZSh2b2lkKQoreworCWlmIChobHRfdXNlX2hhbHQoKSkgeworCQljdXJyZW50X3RocmVhZF9pbmZvKCktPnN0YXR1cyAmPSB+VFNfUE9MTElORzsKKwkJLyoKKwkJICogVFNfUE9MTElORy1jbGVhcmVkIHN0YXRlIG11c3QgYmUgdmlzaWJsZSBiZWZvcmUgd2UKKwkJICogdGVzdCBORUVEX1JFU0NIRUQ6CisJCSAqLworCQlzbXBfbWIoKTsKKworCQlpZiAoIW5lZWRfcmVzY2hlZCgpKQorCQkJc2FmZV9oYWx0KCk7CS8qIGVuYWJsZXMgaW50ZXJydXB0cyByYWNlbGVzc2x5ICovCisJCWVsc2UKKwkJCWxvY2FsX2lycV9lbmFibGUoKTsKKwkJY3VycmVudF90aHJlYWRfaW5mbygpLT5zdGF0dXMgfD0gVFNfUE9MTElORzsKKwl9IGVsc2UgeworCQlsb2NhbF9pcnFfZW5hYmxlKCk7CisJCS8qIGxvb3AgaXMgZG9uZSBieSB0aGUgY2FsbGVyICovCisJCWNwdV9yZWxheCgpOworCX0KK30KKyNpZmRlZiBDT05GSUdfQVBNX01PRFVMRQorRVhQT1JUX1NZTUJPTChkZWZhdWx0X2lkbGUpOworI2VuZGlmCisKIHN0YXRpYyB2b2lkIGRvX25vdGhpbmcodm9pZCAqdW51c2VkKQogewogfQpAQCAtMTIyLDQ0ICsxOTMsMTI5IEBACiAgKgogICogaWRsZT1td2FpdCBvdmVycmlkZXMgdGhpcyBkZWNpc2lvbiBhbmQgZm9yY2VzIHRoZSB1c2FnZSBvZiBtd2FpdC4KICAqLworCisjZGVmaW5lIE1XQUlUX0lORk8JCQkweDA1CisjZGVmaW5lIE1XQUlUX0VDWF9FWFRFTkRFRF9JTkZPCQkweDAxCisjZGVmaW5lIE1XQUlUX0VEWF9DMQkJCTB4ZjAKKwogc3RhdGljIGludCBfX2NwdWluaXQgbXdhaXRfdXNhYmxlKGNvbnN0IHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIHsKKwl1MzIgZWF4LCBlYngsIGVjeCwgZWR4OworCiAJaWYgKGZvcmNlX213YWl0KQogCQlyZXR1cm4gMTsKIAotCWlmIChjLT54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EKSB7Ci0JCXN3aXRjaChjLT54ODYpIHsKLQkJY2FzZSAweDEwOgotCQljYXNlIDB4MTE6Ci0JCQlyZXR1cm4gMDsKKwlpZiAoYy0+Y3B1aWRfbGV2ZWwgPCBNV0FJVF9JTkZPKQorCQlyZXR1cm4gMDsKKworCWNwdWlkKE1XQUlUX0lORk8sICZlYXgsICZlYngsICZlY3gsICZlZHgpOworCS8qIENoZWNrLCB3aGV0aGVyIEVEWCBoYXMgZXh0ZW5kZWQgaW5mbyBhYm91dCBNV0FJVCAqLworCWlmICghKGVjeCAmIE1XQUlUX0VDWF9FWFRFTkRFRF9JTkZPKSkKKwkJcmV0dXJuIDE7CisKKwkvKgorCSAqIGVkeCBlbnVtZXJhdGlvcyBNT05JVE9SL01XQUlUIGV4dGVuc2lvbnMuIENoZWNrLCB3aGV0aGVyCisJICogQzEgIHN1cHBvcnRzIE1XQUlUCisJICovCisJcmV0dXJuIChlZHggJiBNV0FJVF9FRFhfQzEpOworfQorCisvKgorICogQ2hlY2sgZm9yIEFNRCBDUFVzLCB3aGljaCBoYXZlIHBvdGVudGlhbGx5IEMxRSBzdXBwb3J0CisgKi8KK3N0YXRpYyBpbnQgX19jcHVpbml0IGNoZWNrX2MxZV9pZGxlKGNvbnN0IHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwlpZiAoYy0+eDg2X3ZlbmRvciAhPSBYODZfVkVORE9SX0FNRCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoYy0+eDg2IDwgMHgwRikKKwkJcmV0dXJuIDA7CisKKwkvKiBGYW1pbHkgMHgwZiBtb2RlbHMgPCByZXYgRiBkbyBub3QgaGF2ZSBDMUUgKi8KKwlpZiAoYy0+eDg2ID09IDB4MGYgJiYgYy0+eDg2X21vZGVsIDwgMHg0MCkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIEMxRSBhd2FyZSBpZGxlIHJvdXRpbmUuIFdlIGNoZWNrIGZvciBDMUUgYWN0aXZlIGluIHRoZSBpbnRlcnJ1cHQKKyAqIHBlbmRpbmcgbWVzc2FnZSBNU1IuIElmIHdlIGRldGVjdCBDMUUsIHRoZW4gd2UgaGFuZGxlIGl0IHRoZSBzYW1lCisgKiB3YXkgYXMgQzMgcG93ZXIgc3RhdGVzIChsb2NhbCBhcGljIHRpbWVyIGFuZCBUU0Mgc3RvcCkKKyAqLworc3RhdGljIHZvaWQgYzFlX2lkbGUodm9pZCkKK3sKKwlzdGF0aWMgY3B1bWFza190IGMxZV9tYXNrID0gQ1BVX01BU0tfTk9ORTsKKwlzdGF0aWMgaW50IGMxZV9kZXRlY3RlZDsKKworCWlmIChuZWVkX3Jlc2NoZWQoKSkKKwkJcmV0dXJuOworCisJaWYgKCFjMWVfZGV0ZWN0ZWQpIHsKKwkJdTMyIGxvLCBoaTsKKworCQlyZG1zcihNU1JfSzhfSU5UX1BFTkRJTkdfTVNHLCBsbywgaGkpOworCQlpZiAobG8gJiBLOF9JTlRQX0MxRV9BQ1RJVkVfTUFTSykgeworCQkJYzFlX2RldGVjdGVkID0gMTsKKwkJCW1hcmtfdHNjX3Vuc3RhYmxlKCJUU0MgaGFsdCBpbiBDMUUiKTsKKwkJCXByaW50ayhLRVJOX0lORk8gIlN5c3RlbSBoYXMgQzFFIGVuYWJsZWRcbiIpOwogCQl9CiAJfQotCXJldHVybiAxOworCisJaWYgKGMxZV9kZXRlY3RlZCkgeworCQlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCisJCWlmICghY3B1X2lzc2V0KGNwdSwgYzFlX21hc2spKSB7CisJCQljcHVfc2V0KGNwdSwgYzFlX21hc2spOworCQkJLyoKKwkJCSAqIEZvcmNlIGJyb2FkY2FzdCBzbyBBQ1BJIGNhbiBub3QgaW50ZXJmZXJlLiBOZWVkcworCQkJICogdG8gcnVuIHdpdGggaW50ZXJydXB0cyBlbmFibGVkIGFzIGl0IHVzZXMKKwkJCSAqIHNtcF9mdW5jdGlvbl9jYWxsLgorCQkJICovCisJCQlsb2NhbF9pcnFfZW5hYmxlKCk7CisJCQljbG9ja2V2ZW50c19ub3RpZnkoQ0xPQ0tfRVZUX05PVElGWV9CUk9BRENBU1RfRk9SQ0UsCisJCQkJCSAgICZjcHUpOworCQkJcHJpbnRrKEtFUk5fSU5GTyAiU3dpdGNoIHRvIGJyb2FkY2FzdCBtb2RlIG9uIENQVSVkXG4iLAorCQkJICAgICAgIGNwdSk7CisJCQlsb2NhbF9pcnFfZGlzYWJsZSgpOworCQl9CisJCWNsb2NrZXZlbnRzX25vdGlmeShDTE9DS19FVlRfTk9USUZZX0JST0FEQ0FTVF9FTlRFUiwgJmNwdSk7CisKKwkJZGVmYXVsdF9pZGxlKCk7CisKKwkJLyoKKwkJICogVGhlIHN3aXRjaCBiYWNrIGZyb20gYnJvYWRjYXN0IG1vZGUgbmVlZHMgdG8gYmUKKwkJICogY2FsbGVkIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZC4KKwkJICovCisJCSBsb2NhbF9pcnFfZGlzYWJsZSgpOworCQkgY2xvY2tldmVudHNfbm90aWZ5KENMT0NLX0VWVF9OT1RJRllfQlJPQURDQVNUX0VYSVQsICZjcHUpOworCQkgbG9jYWxfaXJxX2VuYWJsZSgpOworCX0gZWxzZQorCQlkZWZhdWx0X2lkbGUoKTsKIH0KIAogdm9pZCBfX2NwdWluaXQgc2VsZWN0X2lkbGVfcm91dGluZShjb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7Ci0Jc3RhdGljIGludCBzZWxlY3RlZDsKLQotCWlmIChzZWxlY3RlZCkKLQkJcmV0dXJuOwogI2lmZGVmIENPTkZJR19YODZfU01QCiAJaWYgKHBtX2lkbGUgPT0gcG9sbF9pZGxlICYmIHNtcF9udW1fc2libGluZ3MgPiAxKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6IHBvbGxpbmcgaWRsZSBhbmQgSFQgZW5hYmxlZCwiCiAJCQkiIHBlcmZvcm1hbmNlIG1heSBkZWdyYWRlLlxuIik7CiAJfQogI2VuZGlmCisJaWYgKHBtX2lkbGUpCisJCXJldHVybjsKKwogCWlmIChjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX01XQUlUKSAmJiBtd2FpdF91c2FibGUoYykpIHsKIAkJLyoKLQkJICogU2tpcCwgaWYgc2V0dXAgaGFzIG92ZXJyaWRkZW4gaWRsZS4KIAkJICogT25lIENQVSBzdXBwb3J0cyBtd2FpdCA9PiBBbGwgQ1BVcyBzdXBwb3J0cyBtd2FpdAogCQkgKi8KLQkJaWYgKCFwbV9pZGxlKSB7Ci0JCQlwcmludGsoS0VSTl9JTkZPICJ1c2luZyBtd2FpdCBpbiBpZGxlIHRocmVhZHMuXG4iKTsKLQkJCXBtX2lkbGUgPSBtd2FpdF9pZGxlOwotCQl9Ci0JfQotCXNlbGVjdGVkID0gMTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAidXNpbmcgbXdhaXQgaW4gaWRsZSB0aHJlYWRzLlxuIik7CisJCXBtX2lkbGUgPSBtd2FpdF9pZGxlOworCX0gZWxzZSBpZiAoY2hlY2tfYzFlX2lkbGUoYykpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAidXNpbmcgQzFFIGF3YXJlIGlkbGUgcm91dGluZVxuIik7CisJCXBtX2lkbGUgPSBjMWVfaWRsZTsKKwl9IGVsc2UKKwkJcG1faWRsZSA9IGRlZmF1bHRfaWRsZTsKIH0KIAogc3RhdGljIGludCBfX2luaXQgaWRsZV9zZXR1cChjaGFyICpzdHIpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc18zMi5jIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfMzIuYwppbmRleCBlMmRiOWFjLi4wYzM5MjdhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzMyLmMKQEAgLTU4LDExICs1OCw2IEBACiAKIGFzbWxpbmthZ2Ugdm9pZCByZXRfZnJvbV9mb3JrKHZvaWQpIF9fYXNtX18oInJldF9mcm9tX2ZvcmsiKTsKIAotc3RhdGljIGludCBobHRfY291bnRlcjsKLQotdW5zaWduZWQgbG9uZyBib290X29wdGlvbl9pZGxlX292ZXJyaWRlID0gMDsKLUVYUE9SVF9TWU1CT0woYm9vdF9vcHRpb25faWRsZV9vdmVycmlkZSk7Ci0KIERFRklORV9QRVJfQ1BVKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBjdXJyZW50X3Rhc2spID0gJmluaXRfdGFzazsKIEVYUE9SVF9QRVJfQ1BVX1NZTUJPTChjdXJyZW50X3Rhc2spOwogCkBAIC03Nyw1NyArNzIsMjQgQEAKIAlyZXR1cm4gKCh1bnNpZ25lZCBsb25nICopdHNrLT50aHJlYWQuc3ApWzNdOwogfQogCi0vKgotICogUG93ZXJtYW5hZ2VtZW50IGlkbGUgZnVuY3Rpb24sIGlmIGFueS4uCi0gKi8KLXZvaWQgKCpwbV9pZGxlKSh2b2lkKTsKLUVYUE9SVF9TWU1CT0wocG1faWRsZSk7Ci0KLXZvaWQgZGlzYWJsZV9obHQodm9pZCkKLXsKLQlobHRfY291bnRlcisrOwotfQotCi1FWFBPUlRfU1lNQk9MKGRpc2FibGVfaGx0KTsKLQotdm9pZCBlbmFibGVfaGx0KHZvaWQpCi17Ci0JaGx0X2NvdW50ZXItLTsKLX0KLQotRVhQT1JUX1NZTUJPTChlbmFibGVfaGx0KTsKLQotLyoKLSAqIFdlIHVzZSB0aGlzIGlmIHdlIGRvbid0IGhhdmUgYW55IGJldHRlcgotICogaWRsZSByb3V0aW5lLi4KLSAqLwotdm9pZCBkZWZhdWx0X2lkbGUodm9pZCkKLXsKLQlpZiAoIWhsdF9jb3VudGVyICYmIGJvb3RfY3B1X2RhdGEuaGx0X3dvcmtzX29rKSB7Ci0JCWN1cnJlbnRfdGhyZWFkX2luZm8oKS0+c3RhdHVzICY9IH5UU19QT0xMSU5HOwotCQkvKgotCQkgKiBUU19QT0xMSU5HLWNsZWFyZWQgc3RhdGUgbXVzdCBiZSB2aXNpYmxlIGJlZm9yZSB3ZQotCQkgKiB0ZXN0IE5FRURfUkVTQ0hFRDoKLQkJICovCi0JCXNtcF9tYigpOwotCi0JCWlmICghbmVlZF9yZXNjaGVkKCkpCi0JCQlzYWZlX2hhbHQoKTsJLyogZW5hYmxlcyBpbnRlcnJ1cHRzIHJhY2VsZXNzbHkgKi8KLQkJZWxzZQotCQkJbG9jYWxfaXJxX2VuYWJsZSgpOwotCQljdXJyZW50X3RocmVhZF9pbmZvKCktPnN0YXR1cyB8PSBUU19QT0xMSU5HOwotCX0gZWxzZSB7Ci0JCWxvY2FsX2lycV9lbmFibGUoKTsKLQkJLyogbG9vcCBpcyBkb25lIGJ5IHRoZSBjYWxsZXIgKi8KLQkJY3B1X3JlbGF4KCk7Ci0JfQotfQotI2lmZGVmIENPTkZJR19BUE1fTU9EVUxFCi1FWFBPUlRfU1lNQk9MKGRlZmF1bHRfaWRsZSk7Ci0jZW5kaWYKLQogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQogI2luY2x1ZGUgPGFzbS9ubWkuaD4KKworc3RhdGljIHZvaWQgY3B1X2V4aXRfY2xlYXIodm9pZCkKK3sKKwlpbnQgY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKworCWlkbGVfdGFza19leGl0KCk7CisKKwljcHVfdW5pbml0KCk7CisJaXJxX2N0eF9leGl0KGNwdSk7CisKKwljcHVfY2xlYXIoY3B1LCBjcHVfY2FsbG91dF9tYXApOworCWNwdV9jbGVhcihjcHUsIGNwdV9jYWxsaW5fbWFwKTsKKworCW51bWFfcmVtb3ZlX2NwdShjcHUpOworfQorCiAvKiBXZSBkb24ndCBhY3R1YWxseSB0YWtlIENQVSBkb3duLCBqdXN0IHNwaW4gd2l0aG91dCBpbnRlcnJ1cHRzLiAqLwogc3RhdGljIGlubGluZSB2b2lkIHBsYXlfZGVhZCh2b2lkKQogewpAQCAtMTY4LDI0ICsxMzAsMjIgQEAKIAl3aGlsZSAoMSkgewogCQl0aWNrX25vaHpfc3RvcF9zY2hlZF90aWNrKCk7CiAJCXdoaWxlICghbmVlZF9yZXNjaGVkKCkpIHsKLQkJCXZvaWQgKCppZGxlKSh2b2lkKTsKIAogCQkJY2hlY2tfcGd0X2NhY2hlKCk7CiAJCQlybWIoKTsKLQkJCWlkbGUgPSBwbV9pZGxlOwogCiAJCQlpZiAocmN1X3BlbmRpbmcoY3B1KSkKIAkJCQlyY3VfY2hlY2tfY2FsbGJhY2tzKGNwdSwgMCk7CiAKLQkJCWlmICghaWRsZSkKLQkJCQlpZGxlID0gZGVmYXVsdF9pZGxlOwotCiAJCQlpZiAoY3B1X2lzX29mZmxpbmUoY3B1KSkKIAkJCQlwbGF5X2RlYWQoKTsKIAogCQkJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIAkJCV9fZ2V0X2NwdV92YXIoaXJxX3N0YXQpLmlkbGVfdGltZXN0YW1wID0gamlmZmllczsKLQkJCWlkbGUoKTsKKwkJCS8qIERvbid0IHRyYWNlIGlycXMgb2ZmIGZvciBpZGxlICovCisJCQlzdG9wX2NyaXRpY2FsX3RpbWluZ3MoKTsKKwkJCXBtX2lkbGUoKTsKKwkJCXN0YXJ0X2NyaXRpY2FsX3RpbWluZ3MoKTsKIAkJfQogCQl0aWNrX25vaHpfcmVzdGFydF9zY2hlZF90aWNrKCk7CiAJCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWQoKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc182NC5jCmluZGV4IGM2ZWI1YzkuLmE4ZTUzNjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYwpAQCAtNTYsMTUgKzU2LDYgQEAKIAogdW5zaWduZWQgbG9uZyBrZXJuZWxfdGhyZWFkX2ZsYWdzID0gQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRDsKIAotdW5zaWduZWQgbG9uZyBib290X29wdGlvbl9pZGxlX292ZXJyaWRlID0gMDsKLUVYUE9SVF9TWU1CT0woYm9vdF9vcHRpb25faWRsZV9vdmVycmlkZSk7Ci0KLS8qCi0gKiBQb3dlcm1hbmFnZW1lbnQgaWRsZSBmdW5jdGlvbiwgaWYgYW55Li4KLSAqLwotdm9pZCAoKnBtX2lkbGUpKHZvaWQpOwotRVhQT1JUX1NZTUJPTChwbV9pZGxlKTsKLQogc3RhdGljIEFUT01JQ19OT1RJRklFUl9IRUFEKGlkbGVfbm90aWZpZXIpOwogCiB2b2lkIGlkbGVfbm90aWZpZXJfcmVnaXN0ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuKQpAQCAtOTQsMjUgKzg1LDYgQEAKIAlfX2V4aXRfaWRsZSgpOwogfQogCi0vKgotICogV2UgdXNlIHRoaXMgaWYgd2UgZG9uJ3QgaGF2ZSBhbnkgYmV0dGVyCi0gKiBpZGxlIHJvdXRpbmUuLgotICovCi12b2lkIGRlZmF1bHRfaWRsZSh2b2lkKQotewotCWN1cnJlbnRfdGhyZWFkX2luZm8oKS0+c3RhdHVzICY9IH5UU19QT0xMSU5HOwotCS8qCi0JICogVFNfUE9MTElORy1jbGVhcmVkIHN0YXRlIG11c3QgYmUgdmlzaWJsZSBiZWZvcmUgd2UKLQkgKiB0ZXN0IE5FRURfUkVTQ0hFRDoKLQkgKi8KLQlzbXBfbWIoKTsKLQlpZiAoIW5lZWRfcmVzY2hlZCgpKQotCQlzYWZlX2hhbHQoKTsJLyogZW5hYmxlcyBpbnRlcnJ1cHRzIHJhY2VsZXNzbHkgKi8KLQllbHNlCi0JCWxvY2FsX2lycV9lbmFibGUoKTsKLQljdXJyZW50X3RocmVhZF9pbmZvKCktPnN0YXR1cyB8PSBUU19QT0xMSU5HOwotfQotCiAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCiBERUNMQVJFX1BFUl9DUFUoaW50LCBjcHVfc3RhdGUpOwogCkBAIC0xNTAsMTIgKzEyMiw5IEBACiAJd2hpbGUgKDEpIHsKIAkJdGlja19ub2h6X3N0b3Bfc2NoZWRfdGljaygpOwogCQl3aGlsZSAoIW5lZWRfcmVzY2hlZCgpKSB7Ci0JCQl2b2lkICgqaWRsZSkodm9pZCk7CiAKIAkJCXJtYigpOwotCQkJaWRsZSA9IHBtX2lkbGU7Ci0JCQlpZiAoIWlkbGUpCi0JCQkJaWRsZSA9IGRlZmF1bHRfaWRsZTsKKwogCQkJaWYgKGNwdV9pc19vZmZsaW5lKHNtcF9wcm9jZXNzb3JfaWQoKSkpCiAJCQkJcGxheV9kZWFkKCk7CiAJCQkvKgpAQCAtMTY1LDcgKzEzNCwxMCBAQAogCQkJICovCiAJCQlsb2NhbF9pcnFfZGlzYWJsZSgpOwogCQkJZW50ZXJfaWRsZSgpOwotCQkJaWRsZSgpOworCQkJLyogRG9uJ3QgdHJhY2UgaXJxcyBvZmYgZm9yIGlkbGUgKi8KKwkJCXN0b3BfY3JpdGljYWxfdGltaW5ncygpOworCQkJcG1faWRsZSgpOworCQkJc3RhcnRfY3JpdGljYWxfdGltaW5ncygpOwogCQkJLyogSW4gbWFueSBjYXNlcyB0aGUgaW50ZXJydXB0IHRoYXQgZW5kZWQgaWRsZQogCQkJICAgaGFzIGFscmVhZHkgY2FsbGVkIGV4aXRfaWRsZS4gQnV0IHNvbWUgaWRsZQogCQkJICAgbG9vcHMgY2FuIGJlIHdva2VuIHVwIHdpdGhvdXQgaW50ZXJydXB0LiAqLwpAQCAtMzY2LDEwICszMzgsMTAgQEAKIAlwLT50aHJlYWQuZnMgPSBtZS0+dGhyZWFkLmZzOwogCXAtPnRocmVhZC5ncyA9IG1lLT50aHJlYWQuZ3M7CiAKLQlhc20oIm1vdiAlJWdzLCUwIiA6ICI9bSIgKHAtPnRocmVhZC5nc2luZGV4KSk7Ci0JYXNtKCJtb3YgJSVmcywlMCIgOiAiPW0iIChwLT50aHJlYWQuZnNpbmRleCkpOwotCWFzbSgibW92ICUlZXMsJTAiIDogIj1tIiAocC0+dGhyZWFkLmVzKSk7Ci0JYXNtKCJtb3YgJSVkcywlMCIgOiAiPW0iIChwLT50aHJlYWQuZHMpKTsKKwlzYXZlc2VnbWVudChncywgcC0+dGhyZWFkLmdzaW5kZXgpOworCXNhdmVzZWdtZW50KGZzLCBwLT50aHJlYWQuZnNpbmRleCk7CisJc2F2ZXNlZ21lbnQoZXMsIHAtPnRocmVhZC5lcyk7CisJc2F2ZXNlZ21lbnQoZHMsIHAtPnRocmVhZC5kcyk7CiAKIAlpZiAodW5saWtlbHkodGVzdF90c2tfdGhyZWFkX2ZsYWcobWUsIFRJRl9JT19CSVRNQVApKSkgewogCQlwLT50aHJlYWQuaW9fYml0bWFwX3B0ciA9IGttYWxsb2MoSU9fQklUTUFQX0JZVEVTLCBHRlBfS0VSTkVMKTsKQEAgLTQwOCw3ICszODAsOSBAQAogdm9pZAogc3RhcnRfdGhyZWFkKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIG5ld19pcCwgdW5zaWduZWQgbG9uZyBuZXdfc3ApCiB7Ci0JYXNtIHZvbGF0aWxlKCJtb3ZsICUwLCAlJWZzOyBtb3ZsICUwLCAlJWVzOyBtb3ZsICUwLCAlJWRzIiA6OiAiciIoMCkpOworCWxvYWRzZWdtZW50KGZzLCAwKTsKKwlsb2Fkc2VnbWVudChlcywgMCk7CisJbG9hZHNlZ21lbnQoZHMsIDApOwogCWxvYWRfZ3NfaW5kZXgoMCk7CiAJcmVncy0+aXAJCT0gbmV3X2lwOwogCXJlZ3MtPnNwCQk9IG5ld19zcDsKQEAgLTU2Nyw2ICs1NDEsNyBAQAogCQkJCSAqbmV4dCA9ICZuZXh0X3AtPnRocmVhZDsKIAlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCXN0cnVjdCB0c3Nfc3RydWN0ICp0c3MgPSAmcGVyX2NwdShpbml0X3RzcywgY3B1KTsKKwl1bnNpZ25lZCBmc2luZGV4LCBnc2luZGV4OwogCiAJLyogd2UncmUgZ29pbmcgdG8gdXNlIHRoaXMgc29vbiwgYWZ0ZXIgYSBmZXcgZXhwZW5zaXZlIHRoaW5ncyAqLwogCWlmIChuZXh0X3AtPmZwdV9jb3VudGVyPjUpCkBAIC01ODEsMjIgKzU1NiwzOCBAQAogCSAqIFN3aXRjaCBEUyBhbmQgRVMuCiAJICogVGhpcyB3b24ndCBwaWNrIHVwIHRocmVhZCBzZWxlY3RvciBjaGFuZ2VzLCBidXQgSSBndWVzcyB0aGF0IGlzIG9rLgogCSAqLwotCWFzbSB2b2xhdGlsZSgibW92ICUlZXMsJTAiIDogIj1tIiAocHJldi0+ZXMpKTsKKwlzYXZlc2VnbWVudChlcywgcHJldi0+ZXMpOwogCWlmICh1bmxpa2VseShuZXh0LT5lcyB8IHByZXYtPmVzKSkKIAkJbG9hZHNlZ21lbnQoZXMsIG5leHQtPmVzKTsgCi0JCi0JYXNtIHZvbGF0aWxlICgibW92ICUlZHMsJTAiIDogIj1tIiAocHJldi0+ZHMpKTsKKworCXNhdmVzZWdtZW50KGRzLCBwcmV2LT5kcyk7CiAJaWYgKHVubGlrZWx5KG5leHQtPmRzIHwgcHJldi0+ZHMpKQogCQlsb2Fkc2VnbWVudChkcywgbmV4dC0+ZHMpOwogCisKKwkvKiBXZSBtdXN0IHNhdmUgJWZzIGFuZCAlZ3MgYmVmb3JlIGxvYWRfVExTKCkgYmVjYXVzZQorCSAqICVmcyBhbmQgJWdzIG1heSBiZSBjbGVhcmVkIGJ5IGxvYWRfVExTKCkuCisJICoKKwkgKiAoZS5nLiB4ZW5fbG9hZF90bHMoKSkKKwkgKi8KKwlzYXZlc2VnbWVudChmcywgZnNpbmRleCk7CisJc2F2ZXNlZ21lbnQoZ3MsIGdzaW5kZXgpOworCiAJbG9hZF9UTFMobmV4dCwgY3B1KTsKIAorCS8qCisJICogTGVhdmUgbGF6eSBtb2RlLCBmbHVzaGluZyBhbnkgaHlwZXJjYWxscyBtYWRlIGhlcmUuCisJICogVGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIHJlc3RvcmluZyBUTFMgc2VnbWVudHMgc28KKwkgKiB0aGUgR0RUIGFuZCBMRFQgYXJlIHByb3Blcmx5IHVwZGF0ZWQsIGFuZCBtdXN0IGJlCisJICogZG9uZSBiZWZvcmUgbWF0aF9zdGF0ZV9yZXN0b3JlLCBzbyB0aGUgVFMgYml0IGlzIHVwCisJICogdG8gZGF0ZS4KKwkgKi8KKwlhcmNoX2xlYXZlX2xhenlfY3B1X21vZGUoKTsKKwogCS8qIAogCSAqIFN3aXRjaCBGUyBhbmQgR1MuCiAJICovCiAJeyAKLQkJdW5zaWduZWQgZnNpbmRleDsKLQkJYXNtIHZvbGF0aWxlKCJtb3ZsICUlZnMsJTAiIDogIj1yIiAoZnNpbmRleCkpOyAKIAkJLyogc2VnbWVudCByZWdpc3RlciAhPSAwIGFsd2F5cyByZXF1aXJlcyBhIHJlbG9hZC4gCiAJCSAgIGFsc28gcmVsb2FkIHdoZW4gaXQgaGFzIGNoYW5nZWQuIAogCQkgICB3aGVuIHByZXYgcHJvY2VzcyB1c2VkIDY0Yml0IGJhc2UgYWx3YXlzIHJlbG9hZApAQCAtNjE0LDEwICs2MDUsNyBAQAogCQlpZiAobmV4dC0+ZnMpIAogCQkJd3Jtc3JsKE1TUl9GU19CQVNFLCBuZXh0LT5mcyk7IAogCQlwcmV2LT5mc2luZGV4ID0gZnNpbmRleDsKLQl9Ci0JeyAKLQkJdW5zaWduZWQgZ3NpbmRleDsKLQkJYXNtIHZvbGF0aWxlKCJtb3ZsICUlZ3MsJTAiIDogIj1yIiAoZ3NpbmRleCkpOyAKKwogCQlpZiAodW5saWtlbHkoZ3NpbmRleCB8IG5leHQtPmdzaW5kZXggfCBwcmV2LT5ncykpIHsKIAkJCWxvYWRfZ3NfaW5kZXgobmV4dC0+Z3NpbmRleCk7CiAJCQlpZiAoZ3NpbmRleCkKQEAgLTc5OCw3ICs3ODYsNyBAQAogCQkJc2V0XzMyYml0X3Rscyh0YXNrLCBGU19UTFMsIGFkZHIpOwogCQkJaWYgKGRvaXQpIHsKIAkJCQlsb2FkX1RMUygmdGFzay0+dGhyZWFkLCBjcHUpOwotCQkJCWFzbSB2b2xhdGlsZSgibW92bCAlMCwlJWZzIiA6OiAiciIoRlNfVExTX1NFTCkpOworCQkJCWxvYWRzZWdtZW50KGZzLCBGU19UTFNfU0VMKTsKIAkJCX0KIAkJCXRhc2stPnRocmVhZC5mc2luZGV4ID0gRlNfVExTX1NFTDsKIAkJCXRhc2stPnRocmVhZC5mcyA9IDA7CkBAIC04MDgsNyArNzk2LDcgQEAKIAkJCWlmIChkb2l0KSB7CiAJCQkJLyogc2V0IHRoZSBzZWxlY3RvciB0byAwIHRvIG5vdCBjb25mdXNlCiAJCQkJICAgX19zd2l0Y2hfdG8gKi8KLQkJCQlhc20gdm9sYXRpbGUoIm1vdmwgJTAsJSVmcyIgOjogInIiICgwKSk7CisJCQkJbG9hZHNlZ21lbnQoZnMsIDApOwogCQkJCXJldCA9IGNoZWNraW5nX3dybXNybChNU1JfRlNfQkFTRSwgYWRkcik7CiAJCQl9CiAJCX0KQEAgLTgzMSw3ICs4MTksNyBAQAogCQlpZiAodGFzay0+dGhyZWFkLmdzaW5kZXggPT0gR1NfVExTX1NFTCkKIAkJCWJhc2UgPSByZWFkXzMyYml0X3Rscyh0YXNrLCBHU19UTFMpOwogCQllbHNlIGlmIChkb2l0KSB7Ci0JCQlhc20oIm1vdmwgJSVncywlMCIgOiAiPXIiIChnc2luZGV4KSk7CisJCQlzYXZlc2VnbWVudChncywgZ3NpbmRleCk7CiAJCQlpZiAoZ3NpbmRleCkKIAkJCQlyZG1zcmwoTVNSX0tFUk5FTF9HU19CQVNFLCBiYXNlKTsKIAkJCWVsc2UKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wdHJhY2UuYyBiL2FyY2gveDg2L2tlcm5lbC9wdHJhY2UuYwppbmRleCBhNzgzNWYyLi43NzA0MGI2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcHRyYWNlLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3B0cmFjZS5jCkBAIC05NDMsMTMgKzk0MywxMyBAQAogCQlyZXR1cm4gY29weV9yZWdzZXRfdG9fdXNlcihjaGlsZCwgJnVzZXJfeDg2XzMyX3ZpZXcsCiAJCQkJCSAgIFJFR1NFVF9YRlAsCiAJCQkJCSAgIDAsIHNpemVvZihzdHJ1Y3QgdXNlcl9meHNyX3N0cnVjdCksCi0JCQkJCSAgIGRhdGFwKTsKKwkJCQkJICAgZGF0YXApID8gLUVJTyA6IDA7CiAKIAljYXNlIFBUUkFDRV9TRVRGUFhSRUdTOgkvKiBTZXQgdGhlIGNoaWxkIGV4dGVuZGVkIEZQVSBzdGF0ZS4gKi8KIAkJcmV0dXJuIGNvcHlfcmVnc2V0X2Zyb21fdXNlcihjaGlsZCwgJnVzZXJfeDg2XzMyX3ZpZXcsCiAJCQkJCSAgICAgUkVHU0VUX1hGUCwKIAkJCQkJICAgICAwLCBzaXplb2Yoc3RydWN0IHVzZXJfZnhzcl9zdHJ1Y3QpLAotCQkJCQkgICAgIGRhdGFwKTsKKwkJCQkJICAgICBkYXRhcCkgPyAtRUlPIDogMDsKICNlbmRpZgogCiAjaWYgZGVmaW5lZCBDT05GSUdfWDg2XzMyIHx8IGRlZmluZWQgQ09ORklHX0lBMzJfRU1VTEFUSU9OCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcXVpcmtzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcXVpcmtzLmMKaW5kZXggZDg5YTY0OC4uZDEzODU4OCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3F1aXJrcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9xdWlya3MuYwpAQCAtNjUsNiArNjUsNyBAQAogCUlDSF9GT1JDRV9IUEVUX1JFU1VNRSwKIAlWVDgyMzdfRk9SQ0VfSFBFVF9SRVNVTUUsCiAJTlZJRElBX0ZPUkNFX0hQRVRfUkVTVU1FLAorCUFUSV9GT1JDRV9IUEVUX1JFU1VNRSwKIH0gZm9yY2VfaHBldF9yZXN1bWVfdHlwZTsKIAogc3RhdGljIHZvaWQgX19pb21lbSAqcmNiYV9iYXNlOwpAQCAtMTU4LDYgKzE1OSw4IEBACiAKIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0VTQjJfMCwKIAkJCSBpY2hfZm9yY2VfZW5hYmxlX2hwZXQpOworREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNINl8wLAorCQkJIGljaF9mb3JjZV9lbmFibGVfaHBldCk7CiBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g2XzEsCiAJCQkgaWNoX2ZvcmNlX2VuYWJsZV9ocGV0KTsKIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDdfMCwKQEAgLTE3NCw2ICsxNzcsMTIgQEAKIAogc3RhdGljIHN0cnVjdCBwY2lfZGV2ICpjYWNoZWRfZGV2OwogCitzdGF0aWMgdm9pZCBocGV0X3ByaW50X2ZvcmNlX2luZm8odm9pZCkKK3sKKwlwcmludGsoS0VSTl9JTkZPICJIUEVUIG5vdCBlbmFibGVkIGluIEJJT1MuICIKKwkgICAgICAgIllvdSBtaWdodCB0cnkgaHBldD1mb3JjZSBib290IG9wdGlvblxuIik7Cit9CisKIHN0YXRpYyB2b2lkIG9sZF9pY2hfZm9yY2VfaHBldF9yZXN1bWUodm9pZCkKIHsKIAl1MzIgdmFsOwpAQCAtMjUzLDggKzI2MiwxMiBAQAogewogCWlmIChocGV0X2ZvcmNlX3VzZXIpCiAJCW9sZF9pY2hfZm9yY2VfZW5hYmxlX2hwZXQoZGV2KTsKKwllbHNlCisJCWhwZXRfcHJpbnRfZm9yY2VfaW5mbygpOwogfQogCitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9FU0JfMSwKKwkJCSBvbGRfaWNoX2ZvcmNlX2VuYWJsZV9ocGV0X3VzZXIpOwogREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFDQV8wLAogCQkJIG9sZF9pY2hfZm9yY2VfZW5hYmxlX2hwZXRfdXNlcik7CiBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUNBXzEyLApAQCAtMjkwLDkgKzMwMywxNCBAQAogewogCXUzMiB1bmluaXRpYWxpemVkX3Zhcih2YWwpOwogCi0JaWYgKCFocGV0X2ZvcmNlX3VzZXIgfHwgaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKKwlpZiAoaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKIAkJcmV0dXJuOwogCisJaWYgKCFocGV0X2ZvcmNlX3VzZXIpIHsKKwkJaHBldF9wcmludF9mb3JjZV9pbmZvKCk7CisJCXJldHVybjsKKwl9CisKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCAweDY4LCAmdmFsKTsKIAkvKgogCSAqIEJpdCA3IGlzIEhQRVQgZW5hYmxlIGJpdC4KQEAgLTMzMCw2ICszNDgsMzYgQEAKIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX1ZJQSwgUENJX0RFVklDRV9JRF9WSUFfODIzNywKIAkJCSB2dDgyMzdfZm9yY2VfZW5hYmxlX2hwZXQpOwogCitzdGF0aWMgdm9pZCBhdGlfZm9yY2VfaHBldF9yZXN1bWUodm9pZCkKK3sKKwlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGNhY2hlZF9kZXYsIDB4MTQsIDB4ZmVkMDAwMDApOworCXByaW50ayhLRVJOX0RFQlVHICJGb3JjZSBlbmFibGVkIEhQRVQgYXQgcmVzdW1lXG4iKTsKK30KKworc3RhdGljIHZvaWQgYXRpX2ZvcmNlX2VuYWJsZV9ocGV0KHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJdTMyIHVuaW5pdGlhbGl6ZWRfdmFyKHZhbCk7CisKKwlpZiAoaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKKwkJcmV0dXJuOworCisJaWYgKCFocGV0X2ZvcmNlX3VzZXIpIHsKKwkJaHBldF9wcmludF9mb3JjZV9pbmZvKCk7CisJCXJldHVybjsKKwl9CisKKwlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgMHgxNCwgMHhmZWQwMDAwMCk7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHgxNCwgJnZhbCk7CisJZm9yY2VfaHBldF9hZGRyZXNzID0gdmFsOworCWZvcmNlX2hwZXRfcmVzdW1lX3R5cGUgPSBBVElfRk9SQ0VfSFBFVF9SRVNVTUU7CisJZGV2X3ByaW50ayhLRVJOX0RFQlVHLCAmZGV2LT5kZXYsICJGb3JjZSBlbmFibGVkIEhQRVQgYXQgMHglbHhcbiIsCisJCSAgIGZvcmNlX2hwZXRfYWRkcmVzcyk7CisJY2FjaGVkX2RldiA9IGRldjsKKwlyZXR1cm47Cit9CitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX0lYUDQwMF9TTUJVUywKKwkJCSBhdGlfZm9yY2VfZW5hYmxlX2hwZXQpOworCiAvKgogICogVW5kb2N1bWVudGVkIGNoaXBzZXQgZmVhdHVyZSB0YWtlbiBmcm9tIExpbnV4QklPUy4KICAqLwpAQCAtMzQzLDkgKzM5MSwxNCBAQAogewogCXUzMiB1bmluaXRpYWxpemVkX3Zhcih2YWwpOwogCi0JaWYgKCFocGV0X2ZvcmNlX3VzZXIgfHwgaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKKwlpZiAoaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKIAkJcmV0dXJuOwogCisJaWYgKCFocGV0X2ZvcmNlX3VzZXIpIHsKKwkJaHBldF9wcmludF9mb3JjZV9pbmZvKCk7CisJCXJldHVybjsKKwl9CisKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgMHg0NCwgMHhmZWQwMDAwMSk7CiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg0NCwgJnZhbCk7CiAJZm9yY2VfaHBldF9hZGRyZXNzID0gdmFsICYgMHhmZmZmZmZmZTsKQEAgLTM5Nyw2ICs0NTAsOSBAQAogCWNhc2UgTlZJRElBX0ZPUkNFX0hQRVRfUkVTVU1FOgogCQludmlkaWFfZm9yY2VfaHBldF9yZXN1bWUoKTsKIAkJcmV0dXJuOworCWNhc2UgQVRJX0ZPUkNFX0hQRVRfUkVTVU1FOgorCQlhdGlfZm9yY2VfaHBldF9yZXN1bWUoKTsKKwkJcmV0dXJuOwogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYyBiL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYwppbmRleCBmNmJlN2Q1Li5mOGE2MjE2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3JlYm9vdC5jCkBAIC0yNyw3ICsyNyw3IEBACiB2b2lkICgqcG1fcG93ZXJfb2ZmKSh2b2lkKTsKIEVYUE9SVF9TWU1CT0wocG1fcG93ZXJfb2ZmKTsKIAotc3RhdGljIGxvbmcgbm9faWR0WzNdOworc3RhdGljIGNvbnN0IHN0cnVjdCBkZXNjX3B0ciBub19pZHQgPSB7fTsKIHN0YXRpYyBpbnQgcmVib290X21vZGU7CiBlbnVtIHJlYm9vdF90eXBlIHJlYm9vdF90eXBlID0gQk9PVF9LQkQ7CiBpbnQgcmVib290X2ZvcmNlOwpAQCAtMjAxLDE1ICsyMDEsMTUgQEAKICAgIGNvbnRyb2xsZXIgdG8gcHVsc2UgdGhlIENQVSByZXNldCBsaW5lLCB3aGljaCBpcyBtb3JlIHRob3JvdWdoLCBidXQKICAgIGRvZXNuJ3Qgd29yayB3aXRoIGF0IGxlYXN0IG9uZSB0eXBlIG9mIDQ4NiBtb3RoZXJib2FyZC4gIEl0IGlzIGVhc3kKICAgIHRvIHN0b3AgdGhpcyBjb2RlIHdvcmtpbmc7IGhlbmNlIHRoZSBjb3Bpb3VzIGNvbW1lbnRzLiAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZwogcmVhbF9tb2RlX2dkdF9lbnRyaWVzIFszXSA9CiB7CiAJMHgwMDAwMDAwMDAwMDAwMDAwVUxMLAkvKiBOdWxsIGRlc2NyaXB0b3IgKi8KLQkweDAwMDA5YTAwMDAwMGZmZmZVTEwsCS8qIDE2LWJpdCByZWFsLW1vZGUgNjRrIGNvZGUgYXQgMHgwMDAwMDAwMCAqLwotCTB4MDAwMDkyMDAwMTAwZmZmZlVMTAkvKiAxNi1iaXQgcmVhbC1tb2RlIDY0ayBkYXRhIGF0IDB4MDAwMDAxMDAgKi8KKwkweDAwMDA5YjAwMDAwMGZmZmZVTEwsCS8qIDE2LWJpdCByZWFsLW1vZGUgNjRrIGNvZGUgYXQgMHgwMDAwMDAwMCAqLworCTB4MDAwMDkzMDAwMTAwZmZmZlVMTAkvKiAxNi1iaXQgcmVhbC1tb2RlIDY0ayBkYXRhIGF0IDB4MDAwMDAxMDAgKi8KIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZGVzY19wdHIKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGVzY19wdHIKIHJlYWxfbW9kZV9nZHQgPSB7IHNpemVvZiAocmVhbF9tb2RlX2dkdF9lbnRyaWVzKSAtIDEsIChsb25nKXJlYWxfbW9kZV9nZHRfZW50cmllcyB9LAogcmVhbF9tb2RlX2lkdCA9IHsgMHgzZmYsIDAgfTsKIApAQCAtMjMxLDcgKzIzMSw3IEBACiAKICAgIE1vcmUgY291bGQgYmUgZG9uZSBoZXJlIHRvIHNldCB1cCB0aGUgcmVnaXN0ZXJzIGFzIGlmIGEgQ1BVIHJlc2V0IGhhZAogICAgb2NjdXJyZWQ7IGhvcGVmdWxseSByZWFsIEJJT1NzIGRvbid0IGFzc3VtZSBtdWNoLiAqLwotc3RhdGljIHVuc2lnbmVkIGNoYXIgcmVhbF9tb2RlX3N3aXRjaCBbXSA9CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciByZWFsX21vZGVfc3dpdGNoIFtdID0KIHsKIAkweDY2LCAweDBmLCAweDIwLCAweGMwLAkJCS8qICAgIG1vdmwgICVjcjAsJWVheCAgICAgICAgKi8KIAkweDY2LCAweDgzLCAweGUwLCAweDExLAkJCS8qICAgIGFuZGwgICQweDAwMDAwMDExLCVlYXggKi8KQEAgLTI0NSw3ICsyNDUsNyBAQAogCTB4MjQsIDB4MTAsCQkJCS8qIGY6IGFuZGIgICQweDEwLGFsICAgICAgICAgKi8KIAkweDY2LCAweDBmLCAweDIyLCAweGMwCQkJLyogICAgbW92bCAgJWVheCwlY3IwICAgICAgICAqLwogfTsKLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGp1bXBfdG9fYmlvcyBbXSA9CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBqdW1wX3RvX2Jpb3MgW10gPQogewogCTB4ZWEsIDB4MDAsIDB4MDAsIDB4ZmYsIDB4ZmYJCS8qICAgIGxqbXAgICQweGZmZmYsJDB4MDAwMCAgKi8KIH07CkBAIC0yNTUsNyArMjU1LDcgQEAKICAqIHNwZWNpZmllZCBieSB0aGUgY29kZSBhbmQgbGVuZ3RoIHBhcmFtZXRlcnMuCiAgKiBXZSBhc3N1bWUgdGhhdCBsZW5ndGggd2lsbCBhd2F5cyBiZSBsZXNzIHRoYXQgMTAwIQogICovCi12b2lkIG1hY2hpbmVfcmVhbF9yZXN0YXJ0KHVuc2lnbmVkIGNoYXIgKmNvZGUsIGludCBsZW5ndGgpCit2b2lkIG1hY2hpbmVfcmVhbF9yZXN0YXJ0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNvZGUsIGludCBsZW5ndGgpCiB7CiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIApAQCAtMzY4LDcgKzM2OCw3IEBACiAJCQl9CiAKIAkJY2FzZSBCT09UX1RSSVBMRToKLQkJCWxvYWRfaWR0KChjb25zdCBzdHJ1Y3QgZGVzY19wdHIgKikmbm9faWR0KTsKKwkJCWxvYWRfaWR0KCZub19pZHQpOwogCQkJX19hc21fXyBfX3ZvbGF0aWxlX18oImludDMiKTsKIAogCQkJcmVib290X3R5cGUgPSBCT09UX0tCRDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9yZWJvb3RfZml4dXBzXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcmVib290X2ZpeHVwc18zMi5jCmluZGV4IGRlYzBiNWUuLjYxYTgzNzcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9yZWJvb3RfZml4dXBzXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3JlYm9vdF9maXh1cHNfMzIuYwpAQCAtNDksNyArNDksNyBAQAogCXZvaWQgKCpyZWJvb3RfZml4dXApKHN0cnVjdCBwY2lfZGV2ICopOwogfTsKIAotc3RhdGljIHN0cnVjdCBkZXZpY2VfZml4dXAgZml4dXBzX3RhYmxlW10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRldmljZV9maXh1cCBmaXh1cHNfdGFibGVbXSA9IHsKIHsgUENJX1ZFTkRPUl9JRF9DWVJJWCwgUENJX0RFVklDRV9JRF9DWVJJWF81NTMwX0xFR0FDWSwgY3M1NTMwYV93YXJtX3Jlc2V0IH0sCiB7IFBDSV9WRU5ET1JfSURfQU1ELCBQQ0lfREVWSUNFX0lEX0FNRF9DUzU1MzZfSVNBLCBjczU1MzZfd2FybV9yZXNldCB9LAogeyBQQ0lfVkVORE9SX0lEX05TLCBQQ0lfREVWSUNFX0lEX05TX1NDMTEwMF9CUklER0UsIGNzNTUzMGFfd2FybV9yZXNldCB9LApAQCAtNjQsNyArNjQsNyBAQAogICovCiB2b2lkIG1hY2hfcmVib290X2ZpeHVwcyh2b2lkKQogewotCXN0cnVjdCBkZXZpY2VfZml4dXAgKmN1cjsKKwljb25zdCBzdHJ1Y3QgZGV2aWNlX2ZpeHVwICpjdXI7CiAJc3RydWN0IHBjaV9kZXYgKmRldjsKIAlpbnQgaTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NldHVwLmMgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXAuYwppbmRleCA2ZjgwYjg1Li4zNmM1NDBkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXAuYwpAQCAtMSwxMzkgKzEsODg5IEBACi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTUgIExpbnVzIFRvcnZhbGRzCisgKgorICogIFN1cHBvcnQgb2YgQklHTUVNIGFkZGVkIGJ5IEdlcmhhcmQgV2ljaGVydCwgU2llbWVucyBBRywgSnVseSAxOTk5CisgKgorICogIE1lbW9yeSByZWdpb24gc3VwcG9ydAorICoJRGF2aWQgUGFyc29ucyA8b3JjQHBlbGwuY2hpLmlsLnVzPiwgSnVseS1BdWd1c3QgMTk5OQorICoKKyAqICBBZGRlZCBFODIwIHNhbml0aXphdGlvbiByb3V0aW5lIChyZW1vdmVzIG92ZXJsYXBwaW5nIG1lbW9yeSByZWdpb25zKTsKKyAqICBCcmlhbiBNb3lsZSA8Ym1veWxlQG12aXN0YS5jb20+LCBGZWJydWFyeSAyMDAxCisgKgorICogTW92ZWQgQ1BVIGRldGVjdGlvbiBjb2RlIHRvIGNwdS8ke2NwdX0uYworICogICAgUGF0cmljayBNb2NoZWwgPG1vY2hlbEBvc2RsLm9yZz4sIE1hcmNoIDIwMDIKKyAqCisgKiAgUHJvdmlzaW9ucyBmb3IgZW1wdHkgRTgyMCBtZW1vcnkgcmVnaW9ucyAocmVwb3J0ZWQgYnkgY2VydGFpbiBCSU9TZXMpLgorICogIEFsZXggQWNoZW5iYWNoIDx4ZWxhQHNsaXQuZGU+LCBEZWNlbWJlciAyMDAyLgorICoKKyAqLworCisvKgorICogVGhpcyBmaWxlIGhhbmRsZXMgdGhlIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgcGFydHMgb2YgaW5pdGlhbGl6YXRpb24KKyAqLworCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NjcmVlbl9pbmZvLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgorI2luY2x1ZGUgPGxpbnV4L2FwbV9iaW9zLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdHJkLmg+CiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgorI2luY2x1ZGUgPGxpbnV4L21jYS5oPgorI2luY2x1ZGUgPGxpbnV4L3Jvb3RfZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2VmaS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9lZGQuaD4KKyNpbmNsdWRlIDxsaW51eC9pc2NzaV9pYmZ0Lmg+CisjaW5jbHVkZSA8bGludXgvbm9kZW1hc2suaD4KKyNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgorI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgorI2luY2x1ZGUgPGxpbnV4L3Bmbi5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGFzbS9wY2ktZGlyZWN0Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdF9vaGNpMTM5NF9kbWEuaD4KKyNpbmNsdWRlIDxsaW51eC9rdm1fcGFyYS5oPgorCisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KKyNpbmNsdWRlIDxsaW51eC91bmlzdGQuaD4KKyNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvdXNlci5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgorCisjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KKyNpbmNsdWRlIDxsaW51eC9lZGQuaD4KKyNpbmNsdWRlIDxsaW51eC9pc2NzaV9pYmZ0Lmg+CisjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9jcHVmcmVxLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKwogI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2NyYXNoX2R1bXAuaD4KKworI2luY2x1ZGUgPHZpZGVvL2VkaWQuaD4KKworI2luY2x1ZGUgPGFzbS9tdHJyLmg+CisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgorI2luY2x1ZGUgPGFzbS9lZmkuaD4KKyNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KKyNpbmNsdWRlIDxhc20vZG1pLmg+CisjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vaXN0Lmg+CisjaW5jbHVkZSA8YXNtL3ZtaS5oPgorI2luY2x1ZGUgPHNldHVwX2FyY2guaD4KKyNpbmNsdWRlIDxhc20vYmlvc19lYmRhLmg+CisjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CisjaW5jbHVkZSA8YXNtL2J1Z3MuaD4KKworI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKyNpbmNsdWRlIDxhc20vdnN5c2NhbGwuaD4KICNpbmNsdWRlIDxhc20vc21wLmg+CisjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KKyNpbmNsdWRlIDxhc20vZG1hLmg+CisjaW5jbHVkZSA8YXNtL2dhcnQuaD4KKyNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KKyNpbmNsdWRlIDxhc20vcHJvdG8uaD4KKworI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9wYXJhdmlydC5oPgorCiAjaW5jbHVkZSA8YXNtL3BlcmNwdS5oPgogI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgotI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KLSNpbmNsdWRlIDxhc20vc2V0dXAuaD4KICNpbmNsdWRlIDxhc20vdG9wb2xvZ3kuaD4KLSNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CiAjaW5jbHVkZSA8YXNtL2FwaWNkZWYuaD4KLQotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotdW5zaWduZWQgaW50IG51bV9wcm9jZXNzb3JzOwotdW5zaWduZWQgZGlzYWJsZWRfY3B1cyBfX2NwdWluaXRkYXRhOwotLyogUHJvY2Vzc29yIHRoYXQgaXMgZG9pbmcgdGhlIGJvb3QgdXAgKi8KLXVuc2lnbmVkIGludCBib290X2NwdV9waHlzaWNhbF9hcGljaWQgPSAtMVU7Ci1FWFBPUlRfU1lNQk9MKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCk7Ci0KLURFRklORV9QRVJfQ1BVKHUxNiwgeDg2X2NwdV90b19hcGljaWQpID0gQkFEX0FQSUNJRDsKLUVYUE9SVF9QRVJfQ1BVX1NZTUJPTCh4ODZfY3B1X3RvX2FwaWNpZCk7Ci0KLS8qIEJpdG1hc2sgb2YgcGh5c2ljYWxseSBleGlzdGluZyBDUFVzICovCi1waHlzaWRfbWFza190IHBoeXNfY3B1X3ByZXNlbnRfbWFwOworI2lmZGVmIENPTkZJR19YODZfNjQKKyNpbmNsdWRlIDxhc20vbnVtYV82NC5oPgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSkgJiYgZGVmaW5lZChDT05GSUdfWDg2X1NNUCkKKyNpZm5kZWYgQVJDSF9TRVRVUAorI2RlZmluZSBBUkNIX1NFVFVQCisjZW5kaWYKKworI2lmbmRlZiBDT05GSUdfREVCVUdfQk9PVF9QQVJBTVMKK3N0cnVjdCBib290X3BhcmFtcyBfX2luaXRkYXRhIGJvb3RfcGFyYW1zOworI2Vsc2UKK3N0cnVjdCBib290X3BhcmFtcyBib290X3BhcmFtczsKKyNlbmRpZgorCiAvKgotICogQ29weSBkYXRhIHVzZWQgaW4gZWFybHkgaW5pdCByb3V0aW5lcyBmcm9tIHRoZSBpbml0aWFsIGFycmF5cyB0byB0aGUKLSAqIHBlciBjcHUgZGF0YSBhcmVhcy4gIFRoZXNlIGFycmF5cyB0aGVuIGJlY29tZSBleHBlbmRhYmxlIGFuZCB0aGUKLSAqICpfZWFybHlfcHRyJ3MgYXJlIHplcm9lZCBpbmRpY2F0aW5nIHRoYXQgdGhlIHN0YXRpYyBhcnJheXMgYXJlIGdvbmUuCisgKiBNYWNoaW5lIHNldHVwLi4KICAqLwotc3RhdGljIHZvaWQgX19pbml0IHNldHVwX3Blcl9jcHVfbWFwcyh2b2lkKQorc3RhdGljIHN0cnVjdCByZXNvdXJjZSBkYXRhX3Jlc291cmNlID0geworCS5uYW1lCT0gIktlcm5lbCBkYXRhIiwKKwkuc3RhcnQJPSAwLAorCS5lbmQJPSAwLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfTUVNCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGNvZGVfcmVzb3VyY2UgPSB7CisJLm5hbWUJPSAiS2VybmVsIGNvZGUiLAorCS5zdGFydAk9IDAsCisJLmVuZAk9IDAsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYnNzX3Jlc291cmNlID0geworCS5uYW1lCT0gIktlcm5lbCBic3MiLAorCS5zdGFydAk9IDAsCisJLmVuZAk9IDAsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0KK307CisKKworI2lmZGVmIENPTkZJR19YODZfMzIKKy8qIFRoaXMgdmFsdWUgaXMgc2V0IHVwIGJ5IHRoZSBlYXJseSBib290IGNvZGUgdG8gcG9pbnQgdG8gdGhlIHZhbHVlCisgICBpbW1lZGlhdGVseSBhZnRlciB0aGUgYm9vdCB0aW1lIHBhZ2UgdGFibGVzLiAgSXQgY29udGFpbnMgYSAqcGh5c2ljYWwqCisgICBhZGRyZXNzLCBhbmQgbXVzdCBub3QgYmUgaW4gdGhlIC5ic3Mgc2VnbWVudCEgKi8KK3Vuc2lnbmVkIGxvbmcgaW5pdF9wZ190YWJsZXNfc3RhcnQgX19pbml0ZGF0YSA9IH4wVUw7Cit1bnNpZ25lZCBsb25nIGluaXRfcGdfdGFibGVzX2VuZCBfX2luaXRkYXRhID0gfjBVTDsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB2aWRlb19yYW1fcmVzb3VyY2UgPSB7CisJLm5hbWUJPSAiVmlkZW8gUkFNIGFyZWEiLAorCS5zdGFydAk9IDB4YTAwMDAsCisJLmVuZAk9IDB4YmZmZmYsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0KK307CisKKy8qIGNwdSBkYXRhIGFzIGRldGVjdGVkIGJ5IHRoZSBhc3NlbWJseSBjb2RlIGluIGhlYWQuUyAqLworc3RydWN0IGNwdWluZm9feDg2IG5ld19jcHVfZGF0YSBfX2NwdWluaXRkYXRhID0gezAsIDAsIDAsIDAsIC0xLCAxLCAwLCAwLCAtMX07CisvKiBjb21tb24gY3B1IGRhdGEgZm9yIGFsbCBjcHVzICovCitzdHJ1Y3QgY3B1aW5mb194ODYgYm9vdF9jcHVfZGF0YSBfX3JlYWRfbW9zdGx5ID0gezAsIDAsIDAsIDAsIC0xLCAxLCAwLCAwLCAtMX07CitFWFBPUlRfU1lNQk9MKGJvb3RfY3B1X2RhdGEpOworc3RhdGljIHZvaWQgc2V0X21jYV9idXMoaW50IHgpCiB7Ci0JaW50IGNwdTsKLQotCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKLQkJcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KSA9IHg4Nl9jcHVfdG9fYXBpY2lkX2luaXRbY3B1XTsKLQkJcGVyX2NwdSh4ODZfYmlvc19jcHVfYXBpY2lkLCBjcHUpID0KLQkJCQkJCXg4Nl9iaW9zX2NwdV9hcGljaWRfaW5pdFtjcHVdOwotI2lmZGVmIENPTkZJR19OVU1BCi0JCXBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KSA9Ci0JCQkJCQl4ODZfY3B1X3RvX25vZGVfbWFwX2luaXRbY3B1XTsKLSNlbmRpZgotCX0KLQotCS8qIGluZGljYXRlIHRoZSBlYXJseSBzdGF0aWMgYXJyYXlzIHdpbGwgc29vbiBiZSBnb25lICovCi0JeDg2X2NwdV90b19hcGljaWRfZWFybHlfcHRyID0gTlVMTDsKLQl4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0ciA9IE5VTEw7Ci0jaWZkZWYgQ09ORklHX05VTUEKLQl4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0ciA9IE5VTEw7CisjaWZkZWYgQ09ORklHX01DQQorCU1DQV9idXMgPSB4OwogI2VuZGlmCiB9CiAKLSNpZmRlZiBDT05GSUdfSEFWRV9DUFVNQVNLX09GX0NQVV9NQVAKLWNwdW1hc2tfdCAqY3B1bWFza19vZl9jcHVfbWFwIF9fcmVhZF9tb3N0bHk7Ci1FWFBPUlRfU1lNQk9MKGNwdW1hc2tfb2ZfY3B1X21hcCk7Cit1bnNpZ25lZCBpbnQgZGVmX3RvX2JpZ3NtcDsKIAotLyogcmVxdWlyZXMgbnJfY3B1X2lkcyB0byBiZSBpbml0aWFsaXplZCAqLwotc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2NwdW1hc2tfb2ZfY3B1KHZvaWQpCisvKiBmb3IgTUNBLCBidXQgYW55b25lIGVsc2UgY2FuIHVzZSBpdCBpZiB0aGV5IHdhbnQgKi8KK3Vuc2lnbmVkIGludCBtYWNoaW5lX2lkOwordW5zaWduZWQgaW50IG1hY2hpbmVfc3VibW9kZWxfaWQ7Cit1bnNpZ25lZCBpbnQgQklPU19yZXZpc2lvbjsKKworc3RydWN0IGFwbV9pbmZvIGFwbV9pbmZvOworRVhQT1JUX1NZTUJPTChhcG1faW5mbyk7CisKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfU1BFRURTVEVQX1NNSSkgfHwgXAorCWRlZmluZWQoQ09ORklHX1g4Nl9TUEVFRFNURVBfU01JX01PRFVMRSkKK3N0cnVjdCBpc3RfaW5mbyBpc3RfaW5mbzsKK0VYUE9SVF9TWU1CT0woaXN0X2luZm8pOworI2Vsc2UKK3N0cnVjdCBpc3RfaW5mbyBpc3RfaW5mbzsKKyNlbmRpZgorCisjZWxzZQorc3RydWN0IGNwdWluZm9feDg2IGJvb3RfY3B1X2RhdGEgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woYm9vdF9jcHVfZGF0YSk7CisjZW5kaWYKKworCisjaWYgIWRlZmluZWQoQ09ORklHX1g4Nl9QQUUpIHx8IGRlZmluZWQoQ09ORklHX1g4Nl82NCkKK3Vuc2lnbmVkIGxvbmcgbW11X2NyNF9mZWF0dXJlczsKKyNlbHNlCit1bnNpZ25lZCBsb25nIG1tdV9jcjRfZmVhdHVyZXMgPSBYODZfQ1I0X1BBRTsKKyNlbmRpZgorCisvKiBCb290IGxvYWRlciBJRCBhcyBhbiBpbnRlZ2VyLCBmb3IgdGhlIGJlbmVmaXQgb2YgcHJvY19kb2ludHZlYyAqLworaW50IGJvb3Rsb2FkZXJfdHlwZTsKKworLyoKKyAqIEVhcmx5IERNSSBtZW1vcnkKKyAqLworaW50IGRtaV9hbGxvY19pbmRleDsKK2NoYXIgZG1pX2FsbG9jX2RhdGFbRE1JX01BWF9EQVRBXTsKKworLyoKKyAqIFNldHVwIG9wdGlvbnMKKyAqLworc3RydWN0IHNjcmVlbl9pbmZvIHNjcmVlbl9pbmZvOworRVhQT1JUX1NZTUJPTChzY3JlZW5faW5mbyk7CitzdHJ1Y3QgZWRpZF9pbmZvIGVkaWRfaW5mbzsKK0VYUE9SVF9TWU1CT0xfR1BMKGVkaWRfaW5mbyk7CisKK2V4dGVybiBpbnQgcm9vdF9tb3VudGZsYWdzOworCit1bnNpZ25lZCBsb25nIHNhdmVkX3ZpZGVvX21vZGU7CisKKyNkZWZpbmUgUkFNRElTS19JTUFHRV9TVEFSVF9NQVNLCTB4MDdGRgorI2RlZmluZSBSQU1ESVNLX1BST01QVF9GTEFHCQkweDgwMDAKKyNkZWZpbmUgUkFNRElTS19MT0FEX0ZMQUcJCTB4NDAwMAorCitzdGF0aWMgY2hhciBfX2luaXRkYXRhIGNvbW1hbmRfbGluZVtDT01NQU5EX0xJTkVfU0laRV07CisKKyNpZiBkZWZpbmVkKENPTkZJR19FREQpIHx8IGRlZmluZWQoQ09ORklHX0VERF9NT0RVTEUpCitzdHJ1Y3QgZWRkIGVkZDsKKyNpZmRlZiBDT05GSUdfRUREX01PRFVMRQorRVhQT1JUX1NZTUJPTChlZGQpOworI2VuZGlmCisvKioKKyAqIGNvcHlfZWRkKCkgLSBDb3B5IHRoZSBCSU9TIEVERCBpbmZvcm1hdGlvbgorICogICAgICAgICAgICAgIGZyb20gYm9vdF9wYXJhbXMgaW50byBhIHNhZmUgcGxhY2UuCisgKgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgY29weV9lZGQodm9pZCkKK3sKKyAgICAgbWVtY3B5KGVkZC5tYnJfc2lnbmF0dXJlLCBib290X3BhcmFtcy5lZGRfbWJyX3NpZ19idWZmZXIsCisJICAgIHNpemVvZihlZGQubWJyX3NpZ25hdHVyZSkpOworICAgICBtZW1jcHkoZWRkLmVkZF9pbmZvLCBib290X3BhcmFtcy5lZGRidWYsIHNpemVvZihlZGQuZWRkX2luZm8pKTsKKyAgICAgZWRkLm1icl9zaWduYXR1cmVfbnIgPSBib290X3BhcmFtcy5lZGRfbWJyX3NpZ19idWZfZW50cmllczsKKyAgICAgZWRkLmVkZF9pbmZvX25yID0gYm9vdF9wYXJhbXMuZWRkYnVmX2VudHJpZXM7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGNvcHlfZWRkKHZvaWQpCit7Cit9CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19CTEtfREVWX0lOSVRSRAorCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCisjZGVmaW5lIE1BWF9NQVBfQ0hVTksJKE5SX0ZJWF9CVE1BUFMgPDwgUEFHRV9TSElGVCkKK3N0YXRpYyB2b2lkIF9faW5pdCByZWxvY2F0ZV9pbml0cmQodm9pZCkKK3sKKworCXU2NCByYW1kaXNrX2ltYWdlID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfaW1hZ2U7CisJdTY0IHJhbWRpc2tfc2l6ZSAgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplOworCXU2NCBlbmRfb2ZfbG93bWVtID0gbWF4X2xvd19wZm4gPDwgUEFHRV9TSElGVDsKKwl1NjQgcmFtZGlza19oZXJlOworCXVuc2lnbmVkIGxvbmcgc2xvcCwgY2xlbiwgbWFwYWRkcjsKKwljaGFyICpwLCAqcTsKKworCS8qIFdlIG5lZWQgdG8gbW92ZSB0aGUgaW5pdHJkIGRvd24gaW50byBsb3dtZW0gKi8KKwlyYW1kaXNrX2hlcmUgPSBmaW5kX2U4MjBfYXJlYSgwLCBlbmRfb2ZfbG93bWVtLCByYW1kaXNrX3NpemUsCisJCQkJCSBQQUdFX1NJWkUpOworCisJaWYgKHJhbWRpc2tfaGVyZSA9PSAtMVVMTCkKKwkJcGFuaWMoIkNhbm5vdCBmaW5kIHBsYWNlIGZvciBuZXcgUkFNRElTSyBvZiBzaXplICVsbGRcbiIsCisJCQkgcmFtZGlza19zaXplKTsKKworCS8qIE5vdGU6IHRoaXMgaW5jbHVkZXMgYWxsIHRoZSBsb3dtZW0gY3VycmVudGx5IG9jY3VwaWVkIGJ5CisJICAgdGhlIGluaXRyZCwgd2UgcmVseSBvbiB0aGF0IGZhY3QgdG8ga2VlcCB0aGUgZGF0YSBpbnRhY3QuICovCisJcmVzZXJ2ZV9lYXJseShyYW1kaXNrX2hlcmUsIHJhbWRpc2tfaGVyZSArIHJhbWRpc2tfc2l6ZSwKKwkJCSAiTkVXIFJBTURJU0siKTsKKwlpbml0cmRfc3RhcnQgPSByYW1kaXNrX2hlcmUgKyBQQUdFX09GRlNFVDsKKwlpbml0cmRfZW5kICAgPSBpbml0cmRfc3RhcnQgKyByYW1kaXNrX3NpemU7CisJcHJpbnRrKEtFUk5fSU5GTyAiQWxsb2NhdGVkIG5ldyBSQU1ESVNLOiAlMDhsbHggLSAlMDhsbHhcbiIsCisJCQkgcmFtZGlza19oZXJlLCByYW1kaXNrX2hlcmUgKyByYW1kaXNrX3NpemUpOworCisJcSA9IChjaGFyICopaW5pdHJkX3N0YXJ0OworCisJLyogQ29weSBhbnkgbG93bWVtIHBvcnRpb24gb2YgdGhlIGluaXRyZCAqLworCWlmIChyYW1kaXNrX2ltYWdlIDwgZW5kX29mX2xvd21lbSkgeworCQljbGVuID0gZW5kX29mX2xvd21lbSAtIHJhbWRpc2tfaW1hZ2U7CisJCXAgPSAoY2hhciAqKV9fdmEocmFtZGlza19pbWFnZSk7CisJCW1lbWNweShxLCBwLCBjbGVuKTsKKwkJcSArPSBjbGVuOworCQlyYW1kaXNrX2ltYWdlICs9IGNsZW47CisJCXJhbWRpc2tfc2l6ZSAgLT0gY2xlbjsKKwl9CisKKwkvKiBDb3B5IHRoZSBoaWdobWVtIHBvcnRpb24gb2YgdGhlIGluaXRyZCAqLworCXdoaWxlIChyYW1kaXNrX3NpemUpIHsKKwkJc2xvcCA9IHJhbWRpc2tfaW1hZ2UgJiB+UEFHRV9NQVNLOworCQljbGVuID0gcmFtZGlza19zaXplOworCQlpZiAoY2xlbiA+IE1BWF9NQVBfQ0hVTkstc2xvcCkKKwkJCWNsZW4gPSBNQVhfTUFQX0NIVU5LLXNsb3A7CisJCW1hcGFkZHIgPSByYW1kaXNrX2ltYWdlICYgUEFHRV9NQVNLOworCQlwID0gZWFybHlfaW9yZW1hcChtYXBhZGRyLCBjbGVuK3Nsb3ApOworCQltZW1jcHkocSwgcCtzbG9wLCBjbGVuKTsKKwkJZWFybHlfaW91bm1hcChwLCBjbGVuK3Nsb3ApOworCQlxICs9IGNsZW47CisJCXJhbWRpc2tfaW1hZ2UgKz0gY2xlbjsKKwkJcmFtZGlza19zaXplICAtPSBjbGVuOworCX0KKwkvKiBoaWdoIHBhZ2VzIGlzIG5vdCBjb252ZXJ0ZWQgYnkgZWFybHlfcmVzX3RvX2Jvb3RtZW0gKi8KKwlyYW1kaXNrX2ltYWdlID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfaW1hZ2U7CisJcmFtZGlza19zaXplICA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX3NpemU7CisJcHJpbnRrKEtFUk5fSU5GTyAiTW92ZSBSQU1ESVNLIGZyb20gJTAxNmxseCAtICUwMTZsbHggdG8iCisJCSIgJTA4bGx4IC0gJTA4bGx4XG4iLAorCQlyYW1kaXNrX2ltYWdlLCByYW1kaXNrX2ltYWdlICsgcmFtZGlza19zaXplIC0gMSwKKwkJcmFtZGlza19oZXJlLCByYW1kaXNrX2hlcmUgKyByYW1kaXNrX3NpemUgLSAxKTsKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9pbml0cmQodm9pZCkKK3sKKwl1NjQgcmFtZGlza19pbWFnZSA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlOworCXU2NCByYW1kaXNrX3NpemUgID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfc2l6ZTsKKwl1NjQgcmFtZGlza19lbmQgICA9IHJhbWRpc2tfaW1hZ2UgKyByYW1kaXNrX3NpemU7CisJdTY0IGVuZF9vZl9sb3dtZW0gPSBtYXhfbG93X3BmbiA8PCBQQUdFX1NISUZUOworCisJaWYgKCFib290X3BhcmFtcy5oZHIudHlwZV9vZl9sb2FkZXIgfHwKKwkgICAgIXJhbWRpc2tfaW1hZ2UgfHwgIXJhbWRpc2tfc2l6ZSkKKwkJcmV0dXJuOwkJLyogTm8gaW5pdHJkIHByb3ZpZGVkIGJ5IGJvb3Rsb2FkZXIgKi8KKworCWluaXRyZF9zdGFydCA9IDA7CisKKwlpZiAocmFtZGlza19zaXplID49IChlbmRfb2ZfbG93bWVtPj4xKSkgeworCQlmcmVlX2Vhcmx5KHJhbWRpc2tfaW1hZ2UsIHJhbWRpc2tfZW5kKTsKKwkJcHJpbnRrKEtFUk5fRVJSICJpbml0cmQgdG9vIGxhcmdlIHRvIGhhbmRsZSwgIgorCQkgICAgICAgImRpc2FibGluZyBpbml0cmRcbiIpOworCQlyZXR1cm47CisJfQorCisJcHJpbnRrKEtFUk5fSU5GTyAiUkFNRElTSzogJTA4bGx4IC0gJTA4bGx4XG4iLCByYW1kaXNrX2ltYWdlLAorCQkJcmFtZGlza19lbmQpOworCisKKwlpZiAocmFtZGlza19lbmQgPD0gZW5kX29mX2xvd21lbSkgeworCQkvKiBBbGwgaW4gbG93bWVtLCBlYXN5IGNhc2UgKi8KKwkJLyoKKwkJICogZG9uJ3QgbmVlZCB0byByZXNlcnZlIGFnYWluLCBhbHJlYWR5IHJlc2VydmVkIGVhcmx5CisJCSAqIGluIGkzODZfc3RhcnRfa2VybmVsCisJCSAqLworCQlpbml0cmRfc3RhcnQgPSByYW1kaXNrX2ltYWdlICsgUEFHRV9PRkZTRVQ7CisJCWluaXRyZF9lbmQgPSBpbml0cmRfc3RhcnQgKyByYW1kaXNrX3NpemU7CisJCXJldHVybjsKKwl9CisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJcmVsb2NhdGVfaW5pdHJkKCk7CisjZWxzZQorCXByaW50ayhLRVJOX0VSUiAiaW5pdHJkIGV4dGVuZHMgYmV5b25kIGVuZCBvZiBtZW1vcnkgIgorCSAgICAgICAiKDB4JTA4bGx4ID4gMHglMDhsbHgpXG5kaXNhYmxpbmcgaW5pdHJkXG4iLAorCSAgICAgICByYW1kaXNrX2VuZCwgZW5kX29mX2xvd21lbSk7CisJaW5pdHJkX3N0YXJ0ID0gMDsKKyNlbmRpZgorCWZyZWVfZWFybHkocmFtZGlza19pbWFnZSwgcmFtZGlza19lbmQpOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX2luaXRyZCh2b2lkKQoreworfQorI2VuZGlmIC8qIENPTkZJR19CTEtfREVWX0lOSVRSRCAqLworCitzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2Vfc2V0dXBfZGF0YSh2b2lkKQoreworCXN0cnVjdCBzZXR1cF9kYXRhICpkYXRhOworCXU2NCBwYV9kYXRhOworCisJaWYgKGJvb3RfcGFyYW1zLmhkci52ZXJzaW9uIDwgMHgwMjA5KQorCQlyZXR1cm47CisJcGFfZGF0YSA9IGJvb3RfcGFyYW1zLmhkci5zZXR1cF9kYXRhOworCXdoaWxlIChwYV9kYXRhKSB7CisJCWRhdGEgPSBlYXJseV9pb3JlbWFwKHBhX2RhdGEsIFBBR0VfU0laRSk7CisJCXN3aXRjaCAoZGF0YS0+dHlwZSkgeworCQljYXNlIFNFVFVQX0U4MjBfRVhUOgorCQkJcGFyc2VfZTgyMF9leHQoZGF0YSwgcGFfZGF0YSk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisJCXBhX2RhdGEgPSBkYXRhLT5uZXh0OworCQllYXJseV9pb3VubWFwKGRhdGEsIFBBR0VfU0laRSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZTgyMF9yZXNlcnZlX3NldHVwX2RhdGEodm9pZCkKK3sKKwlzdHJ1Y3Qgc2V0dXBfZGF0YSAqZGF0YTsKKwl1NjQgcGFfZGF0YTsKKwlpbnQgZm91bmQgPSAwOworCisJaWYgKGJvb3RfcGFyYW1zLmhkci52ZXJzaW9uIDwgMHgwMjA5KQorCQlyZXR1cm47CisJcGFfZGF0YSA9IGJvb3RfcGFyYW1zLmhkci5zZXR1cF9kYXRhOworCXdoaWxlIChwYV9kYXRhKSB7CisJCWRhdGEgPSBlYXJseV9pb3JlbWFwKHBhX2RhdGEsIHNpemVvZigqZGF0YSkpOworCQllODIwX3VwZGF0ZV9yYW5nZShwYV9kYXRhLCBzaXplb2YoKmRhdGEpK2RhdGEtPmxlbiwKKwkJCSBFODIwX1JBTSwgRTgyMF9SRVNFUlZFRF9LRVJOKTsKKwkJZm91bmQgPSAxOworCQlwYV9kYXRhID0gZGF0YS0+bmV4dDsKKwkJZWFybHlfaW91bm1hcChkYXRhLCBzaXplb2YoKmRhdGEpKTsKKwl9CisJaWYgKCFmb3VuZCkKKwkJcmV0dXJuOworCisJc2FuaXRpemVfZTgyMF9tYXAoZTgyMC5tYXAsIEFSUkFZX1NJWkUoZTgyMC5tYXApLCAmZTgyMC5ucl9tYXApOworCW1lbWNweSgmZTgyMF9zYXZlZCwgJmU4MjAsIHNpemVvZihzdHJ1Y3QgZTgyMG1hcCkpOworCXByaW50ayhLRVJOX0lORk8gImV4dGVuZGVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKKwllODIwX3ByaW50X21hcCgicmVzZXJ2ZSBzZXR1cF9kYXRhIik7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX2Vhcmx5X3NldHVwX2RhdGEodm9pZCkKK3sKKwlzdHJ1Y3Qgc2V0dXBfZGF0YSAqZGF0YTsKKwl1NjQgcGFfZGF0YTsKKwljaGFyIGJ1ZlszMl07CisKKwlpZiAoYm9vdF9wYXJhbXMuaGRyLnZlcnNpb24gPCAweDAyMDkpCisJCXJldHVybjsKKwlwYV9kYXRhID0gYm9vdF9wYXJhbXMuaGRyLnNldHVwX2RhdGE7CisJd2hpbGUgKHBhX2RhdGEpIHsKKwkJZGF0YSA9IGVhcmx5X2lvcmVtYXAocGFfZGF0YSwgc2l6ZW9mKCpkYXRhKSk7CisJCXNwcmludGYoYnVmLCAic2V0dXAgZGF0YSAleCIsIGRhdGEtPnR5cGUpOworCQlyZXNlcnZlX2Vhcmx5KHBhX2RhdGEsIHBhX2RhdGErc2l6ZW9mKCpkYXRhKStkYXRhLT5sZW4sIGJ1Zik7CisJCXBhX2RhdGEgPSBkYXRhLT5uZXh0OworCQllYXJseV9pb3VubWFwKGRhdGEsIHNpemVvZigqZGF0YSkpOworCX0KK30KKworLyoKKyAqIC0tLS0tLS0tLSBDcmFzaGtlcm5lbCByZXNlcnZhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZkZWYgQ09ORklHX0tFWEVDCisKKy8qKgorICogUmVzZXJ2ZSBAc2l6ZSBieXRlcyBvZiBjcmFzaGtlcm5lbCBtZW1vcnkgYXQgYW55IHN1aXRhYmxlIG9mZnNldC4KKyAqCisgKiBAc2l6ZTogU2l6ZSBvZiB0aGUgY3Jhc2hrZXJuZWwgbWVtb3J5IHRvIHJlc2VydmUuCisgKiBSZXR1cm5zIHRoZSBiYXNlIGFkZHJlc3Mgb24gc3VjY2VzcywgYW5kIC0xVUxMIG9uIGZhaWx1cmUuCisgKi8KK3Vuc2lnbmVkIGxvbmcgbG9uZyBmaW5kX2FuZF9yZXNlcnZlX2NyYXNoa2VybmVsKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQoreworCWNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyBhbGlnbm1lbnQgPSAxNjw8MjA7IAkvKiAxNk0gKi8KKwl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQgPSAwTEw7CisKKwl3aGlsZSAoMSkgeworCQlpbnQgcmV0OworCisJCXN0YXJ0ID0gZmluZF9lODIwX2FyZWEoc3RhcnQsIFVMT05HX01BWCwgc2l6ZSwgYWxpZ25tZW50KTsKKwkJaWYgKHN0YXJ0ID09IC0xVUxMKQorCQkJcmV0dXJuIHN0YXJ0OworCisJCS8qIHRyeSB0byByZXNlcnZlIGl0ICovCisJCXJldCA9IHJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHN0YXJ0LCBzaXplLCBCT09UTUVNX0VYQ0xVU0lWRSk7CisJCWlmIChyZXQgPj0gMCkKKwkJCXJldHVybiBzdGFydDsKKworCQlzdGFydCArPSBhbGlnbm1lbnQ7CisJfQorfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZyBnZXRfdG90YWxfbWVtKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsOworCisJdG90YWwgPSBtYXhfbG93X3BmbiAtIG1pbl9sb3dfcGZuOworI2lmZGVmIENPTkZJR19ISUdITUVNCisJdG90YWwgKz0gaGlnaGVuZF9wZm4gLSBoaWdoc3RhcnRfcGZuOworI2VuZGlmCisKKwlyZXR1cm4gdG90YWwgPDwgUEFHRV9TSElGVDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfY3Jhc2hrZXJuZWwodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxfbWVtOworCXVuc2lnbmVkIGxvbmcgbG9uZyBjcmFzaF9zaXplLCBjcmFzaF9iYXNlOworCWludCByZXQ7CisKKwl0b3RhbF9tZW0gPSBnZXRfdG90YWxfbWVtKCk7CisKKwlyZXQgPSBwYXJzZV9jcmFzaGtlcm5lbChib290X2NvbW1hbmRfbGluZSwgdG90YWxfbWVtLAorCQkJJmNyYXNoX3NpemUsICZjcmFzaF9iYXNlKTsKKwlpZiAocmV0ICE9IDAgfHwgY3Jhc2hfc2l6ZSA8PSAwKQorCQlyZXR1cm47CisKKwkvKiAwIG1lYW5zOiBmaW5kIHRoZSBhZGRyZXNzIGF1dG9tYXRpY2FsbHkgKi8KKwlpZiAoY3Jhc2hfYmFzZSA8PSAwKSB7CisJCWNyYXNoX2Jhc2UgPSBmaW5kX2FuZF9yZXNlcnZlX2NyYXNoa2VybmVsKGNyYXNoX3NpemUpOworCQlpZiAoY3Jhc2hfYmFzZSA9PSAtMVVMTCkgeworCQkJcHJfaW5mbygiY3Jhc2hrZXJuZWwgcmVzZXJ2YXRpb24gZmFpbGVkLiAiCisJCQkJIk5vIHN1aXRhYmxlIGFyZWEgZm91bmQuXG4iKTsKKwkJCXJldHVybjsKKwkJfQorCX0gZWxzZSB7CisJCXJldCA9IHJlc2VydmVfYm9vdG1lbV9nZW5lcmljKGNyYXNoX2Jhc2UsIGNyYXNoX3NpemUsCisJCQkJCUJPT1RNRU1fRVhDTFVTSVZFKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByX2luZm8oImNyYXNoa2VybmVsIHJlc2VydmF0aW9uIGZhaWxlZCAtICIKKwkJCQkibWVtb3J5IGlzIGluIHVzZVxuIik7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwlwcmludGsoS0VSTl9JTkZPICJSZXNlcnZpbmcgJWxkTUIgb2YgbWVtb3J5IGF0ICVsZE1CICIKKwkJCSJmb3IgY3Jhc2hrZXJuZWwgKFN5c3RlbSBSQU06ICVsZE1CKVxuIiwKKwkJCSh1bnNpZ25lZCBsb25nKShjcmFzaF9zaXplID4+IDIwKSwKKwkJCSh1bnNpZ25lZCBsb25nKShjcmFzaF9iYXNlID4+IDIwKSwKKwkJCSh1bnNpZ25lZCBsb25nKSh0b3RhbF9tZW0gPj4gMjApKTsKKworCWNyYXNoa19yZXMuc3RhcnQgPSBjcmFzaF9iYXNlOworCWNyYXNoa19yZXMuZW5kICAgPSBjcmFzaF9iYXNlICsgY3Jhc2hfc2l6ZSAtIDE7CisJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmNyYXNoa19yZXMpOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX2NyYXNoa2VybmVsKHZvaWQpCit7Cit9CisjZW5kaWYKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzdGFuZGFyZF9pb19yZXNvdXJjZXNbXSA9IHsKKwl7IC5uYW1lID0gImRtYTEiLCAuc3RhcnQgPSAweDAwLCAuZW5kID0gMHgxZiwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAorCXsgLm5hbWUgPSAicGljMSIsIC5zdGFydCA9IDB4MjAsIC5lbmQgPSAweDIxLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCisJeyAubmFtZSA9ICJ0aW1lcjAiLCAuc3RhcnQgPSAweDQwLCAuZW5kID0gMHg0MywKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAorCXsgLm5hbWUgPSAidGltZXIxIiwgLnN0YXJ0ID0gMHg1MCwgLmVuZCA9IDB4NTMsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKKwl7IC5uYW1lID0gImtleWJvYXJkIiwgLnN0YXJ0ID0gMHg2MCwgLmVuZCA9IDB4NjAsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKKwl7IC5uYW1lID0gImtleWJvYXJkIiwgLnN0YXJ0ID0gMHg2NCwgLmVuZCA9IDB4NjQsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKKwl7IC5uYW1lID0gImRtYSBwYWdlIHJlZyIsIC5zdGFydCA9IDB4ODAsIC5lbmQgPSAweDhmLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCisJeyAubmFtZSA9ICJwaWMyIiwgLnN0YXJ0ID0gMHhhMCwgLmVuZCA9IDB4YTEsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKKwl7IC5uYW1lID0gImRtYTIiLCAuc3RhcnQgPSAweGMwLCAuZW5kID0gMHhkZiwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAorCXsgLm5hbWUgPSAiZnB1IiwgLnN0YXJ0ID0gMHhmMCwgLmVuZCA9IDB4ZmYsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfc3RhbmRhcmRfaW9fcmVzb3VyY2VzKHZvaWQpCiB7CiAJaW50IGk7CiAKLQkvKiBhbGxvY19ib290bWVtIHplcm9lcyBtZW1vcnkgKi8KLQljcHVtYXNrX29mX2NwdV9tYXAgPSBhbGxvY19ib290bWVtX2xvdyhzaXplb2YoY3B1bWFza190KSAqIG5yX2NwdV9pZHMpOwotCWZvciAoaSA9IDA7IGkgPCBucl9jcHVfaWRzOyBpKyspCi0JCWNwdV9zZXQoaSwgY3B1bWFza19vZl9jcHVfbWFwW2ldKTsKKwkvKiByZXF1ZXN0IEkvTyBzcGFjZSBmb3IgZGV2aWNlcyB1c2VkIG9uIGFsbCBpWzM0NV04NiBQQ3MgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzdGFuZGFyZF9pb19yZXNvdXJjZXMpOyBpKyspCisJCXJlcXVlc3RfcmVzb3VyY2UoJmlvcG9ydF9yZXNvdXJjZSwgJnN0YW5kYXJkX2lvX3Jlc291cmNlc1tpXSk7CisKIH0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfY3B1bWFza19vZl9jcHUodm9pZCkgeyB9Ci0jZW5kaWYKIAotI2lmZGVmIENPTkZJR19YODZfMzIKLS8qCi0gKiBHcmVhdCBmdXR1cmUgbm90LXNvLWZ1dHVyaXN0aWMgcGxhbjogbWFrZSBpMzg2IGFuZCB4ODZfNjQgZG8gaXQKLSAqIHRoZSBzYW1lIHdheQorI2lmZGVmIENPTkZJR19QUk9DX1ZNQ09SRQorLyogZWxmY29yZWhkcj0gc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBvZiBlbGYgY29yZSBoZWFkZXIKKyAqIHN0b3JlZCBieSB0aGUgY3Jhc2hlZCBrZXJuZWwuIFRoaXMgb3B0aW9uIHdpbGwgYmUgcGFzc2VkCisgKiBieSBrZXhlYyBsb2FkZXIgdG8gdGhlIGNhcHR1cmUga2VybmVsLgogICovCi11bnNpZ25lZCBsb25nIF9fcGVyX2NwdV9vZmZzZXRbTlJfQ1BVU10gX19yZWFkX21vc3RseTsKLUVYUE9SVF9TWU1CT0woX19wZXJfY3B1X29mZnNldCk7Ci0jZW5kaWYKLQotLyoKLSAqIEdyZWF0IGZ1dHVyZSBwbGFuOgotICogRGVjbGFyZSBQREEgaXRzZWxmIGFuZCBzdXBwb3J0IChpcnFzdGFjayx0c3MscGdkKSBhcyBwZXIgY3B1IGRhdGEuCi0gKiBBbHdheXMgcG9pbnQgJWdzIHRvIGl0cyBiZWdpbm5pbmcKLSAqLwotdm9pZCBfX2luaXQgc2V0dXBfcGVyX2NwdV9hcmVhcyh2b2lkKQorc3RhdGljIGludCBfX2luaXQgc2V0dXBfZWxmY29yZWhkcihjaGFyICphcmcpCiB7Ci0JaW50IGksIGhpZ2hlc3RfY3B1ID0gMDsKLQl1bnNpZ25lZCBsb25nIHNpemU7Ci0KLSNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKLQlwcmVmaWxsX3Bvc3NpYmxlX21hcCgpOworCWNoYXIgKmVuZDsKKwlpZiAoIWFyZykKKwkJcmV0dXJuIC1FSU5WQUw7CisJZWxmY29yZWhkcl9hZGRyID0gbWVtcGFyc2UoYXJnLCAmZW5kKTsKKwlyZXR1cm4gZW5kID4gYXJnID8gMCA6IC1FSU5WQUw7Cit9CitlYXJseV9wYXJhbSgiZWxmY29yZWhkciIsIHNldHVwX2VsZmNvcmVoZHIpOwogI2VuZGlmCiAKLQkvKiBDb3B5IHNlY3Rpb24gZm9yIGVhY2ggQ1BVICh3ZSBkaXNjYXJkIHRoZSBvcmlnaW5hbCkgKi8KLQlzaXplID0gUEVSQ1BVX0VOT1VHSF9ST09NOwotCXByaW50ayhLRVJOX0lORk8gIlBFUkNQVTogQWxsb2NhdGluZyAlbHUgYnl0ZXMgb2YgcGVyIGNwdSBkYXRhXG4iLAotCQkJICBzaXplKTsKKy8qCisgKiBEZXRlcm1pbmUgaWYgd2Ugd2VyZSBsb2FkZWQgYnkgYW4gRUZJIGxvYWRlci4gIElmIHNvLCB0aGVuIHdlIGhhdmUgYWxzbyBiZWVuCisgKiBwYXNzZWQgdGhlIGVmaSBtZW1tYXAsIHN5c3RhYiwgZXRjLiwgc28gd2Ugc2hvdWxkIHVzZSB0aGVzZSBkYXRhIHN0cnVjdHVyZXMKKyAqIGZvciBpbml0aWFsaXphdGlvbi4gIE5vdGUsIHRoZSBlZmkgaW5pdCBjb2RlIHBhdGggaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIGdsb2JhbCBlZmlfZW5hYmxlZC4gVGhpcyBhbGxvd3MgdGhlIHNhbWUga2VybmVsIGltYWdlIHRvIGJlIHVzZWQgb24gZXhpc3RpbmcKKyAqIHN5c3RlbXMgKHdpdGggYSB0cmFkaXRpb25hbCBCSU9TKSBhcyB3ZWxsIGFzIG9uIEVGSSBzeXN0ZW1zLgorICovCisvKgorICogc2V0dXBfYXJjaCAtIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBib290LXRpbWUgaW5pdGlhbGl6YXRpb25zCisgKgorICogTm90ZTogT24geDg2XzY0LCBmaXhtYXBzIGFyZSByZWFkeSBmb3IgdXNlIGV2ZW4gYmVmb3JlIHRoaXMgaXMgY2FsbGVkLgorICovCiAKLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkgewotCQljaGFyICpwdHI7Ci0jaWZuZGVmIENPTkZJR19ORUVEX01VTFRJUExFX05PREVTCi0JCXB0ciA9IGFsbG9jX2Jvb3RtZW1fcGFnZXMoc2l6ZSk7Cit2b2lkIF9faW5pdCBzZXR1cF9hcmNoKGNoYXIgKipjbWRsaW5lX3ApCit7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCW1lbWNweSgmYm9vdF9jcHVfZGF0YSwgJm5ld19jcHVfZGF0YSwgc2l6ZW9mKG5ld19jcHVfZGF0YSkpOworCXZpc3dzX2Vhcmx5X2RldGVjdCgpOworCXByZV9zZXR1cF9hcmNoX2hvb2soKTsKKwllYXJseV9jcHVfaW5pdCgpOwogI2Vsc2UKLQkJaW50IG5vZGUgPSBlYXJseV9jcHVfdG9fbm9kZShpKTsKLQkJaWYgKCFub2RlX29ubGluZShub2RlKSB8fCAhTk9ERV9EQVRBKG5vZGUpKSB7Ci0JCQlwdHIgPSBhbGxvY19ib290bWVtX3BhZ2VzKHNpemUpOwotCQkJcHJpbnRrKEtFUk5fSU5GTwotCQkJICAgICAgICJjcHUgJWQgaGFzIG5vIG5vZGUgb3Igbm9kZS1sb2NhbCBtZW1vcnlcbiIsIGkpOwotCQl9Ci0JCWVsc2UKLQkJCXB0ciA9IGFsbG9jX2Jvb3RtZW1fcGFnZXNfbm9kZShOT0RFX0RBVEEobm9kZSksIHNpemUpOworCXByaW50ayhLRVJOX0lORk8gIkNvbW1hbmQgbGluZTogJXNcbiIsIGJvb3RfY29tbWFuZF9saW5lKTsKICNlbmRpZgotCQlpZiAoIXB0cikKLQkJCXBhbmljKCJDYW5ub3QgYWxsb2NhdGUgY3B1IGRhdGEgZm9yIENQVSAlZFxuIiwgaSk7CisKKwllYXJseV9pb3JlbWFwX2luaXQoKTsKKworCVJPT1RfREVWID0gb2xkX2RlY29kZV9kZXYoYm9vdF9wYXJhbXMuaGRyLnJvb3RfZGV2KTsKKwlzY3JlZW5faW5mbyA9IGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvOworCWVkaWRfaW5mbyA9IGJvb3RfcGFyYW1zLmVkaWRfaW5mbzsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJYXBtX2luZm8uYmlvcyA9IGJvb3RfcGFyYW1zLmFwbV9iaW9zX2luZm87CisJaXN0X2luZm8gPSBib290X3BhcmFtcy5pc3RfaW5mbzsKKwlpZiAoYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUubGVuZ3RoICE9IDApIHsKKwkJc2V0X21jYV9idXMoYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUudGFibGVbM10gJiAweDIpOworCQltYWNoaW5lX2lkID0gYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUudGFibGVbMF07CisJCW1hY2hpbmVfc3VibW9kZWxfaWQgPSBib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS50YWJsZVsxXTsKKwkJQklPU19yZXZpc2lvbiA9IGJvb3RfcGFyYW1zLnN5c19kZXNjX3RhYmxlLnRhYmxlWzJdOworCX0KKyNlbmRpZgorCXNhdmVkX3ZpZGVvX21vZGUgPSBib290X3BhcmFtcy5oZHIudmlkX21vZGU7CisJYm9vdGxvYWRlcl90eXBlID0gYm9vdF9wYXJhbXMuaGRyLnR5cGVfb2ZfbG9hZGVyOworCisjaWZkZWYgQ09ORklHX0JMS19ERVZfUkFNCisJcmRfaW1hZ2Vfc3RhcnQgPSBib290X3BhcmFtcy5oZHIucmFtX3NpemUgJiBSQU1ESVNLX0lNQUdFX1NUQVJUX01BU0s7CisJcmRfcHJvbXB0ID0gKChib290X3BhcmFtcy5oZHIucmFtX3NpemUgJiBSQU1ESVNLX1BST01QVF9GTEFHKSAhPSAwKTsKKwlyZF9kb2xvYWQgPSAoKGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfTE9BRF9GTEFHKSAhPSAwKTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19FRkkKKwlpZiAoIXN0cm5jbXAoKGNoYXIgKikmYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX2xvYWRlcl9zaWduYXR1cmUsCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCQkgICAgICJFTDMyIiwKKyNlbHNlCisJCSAgICAgIkVMNjQiLAorI2VuZGlmCisJIDQpKSB7CisJCWVmaV9lbmFibGVkID0gMTsKKwkJZWZpX3Jlc2VydmVfZWFybHkoKTsKKwl9CisjZW5kaWYKKworCUFSQ0hfU0VUVVAKKworCXNldHVwX21lbW9yeV9tYXAoKTsKKwlwYXJzZV9zZXR1cF9kYXRhKCk7CisJLyogdXBkYXRlIHRoZSBlODIwX3NhdmVkIHRvbyAqLworCWU4MjBfcmVzZXJ2ZV9zZXR1cF9kYXRhKCk7CisKKwljb3B5X2VkZCgpOworCisJaWYgKCFib290X3BhcmFtcy5oZHIucm9vdF9mbGFncykKKwkJcm9vdF9tb3VudGZsYWdzICY9IH5NU19SRE9OTFk7CisJaW5pdF9tbS5zdGFydF9jb2RlID0gKHVuc2lnbmVkIGxvbmcpIF90ZXh0OworCWluaXRfbW0uZW5kX2NvZGUgPSAodW5zaWduZWQgbG9uZykgX2V0ZXh0OworCWluaXRfbW0uZW5kX2RhdGEgPSAodW5zaWduZWQgbG9uZykgX2VkYXRhOworI2lmZGVmIENPTkZJR19YODZfMzIKKwlpbml0X21tLmJyayA9IGluaXRfcGdfdGFibGVzX2VuZCArIFBBR0VfT0ZGU0VUOworI2Vsc2UKKwlpbml0X21tLmJyayA9ICh1bnNpZ25lZCBsb25nKSAmX2VuZDsKKyNlbmRpZgorCisJY29kZV9yZXNvdXJjZS5zdGFydCA9IHZpcnRfdG9fcGh5cyhfdGV4dCk7CisJY29kZV9yZXNvdXJjZS5lbmQgPSB2aXJ0X3RvX3BoeXMoX2V0ZXh0KS0xOworCWRhdGFfcmVzb3VyY2Uuc3RhcnQgPSB2aXJ0X3RvX3BoeXMoX2V0ZXh0KTsKKwlkYXRhX3Jlc291cmNlLmVuZCA9IHZpcnRfdG9fcGh5cyhfZWRhdGEpLTE7CisJYnNzX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKCZfX2Jzc19zdGFydCk7CisJYnNzX3Jlc291cmNlLmVuZCA9IHZpcnRfdG9fcGh5cygmX19ic3Nfc3RvcCktMTsKKwogI2lmZGVmIENPTkZJR19YODZfNjQKLQkJY3B1X3BkYShpKS0+ZGF0YV9vZmZzZXQgPSBwdHIgLSBfX3Blcl9jcHVfc3RhcnQ7Ci0jZWxzZQotCQlfX3Blcl9jcHVfb2Zmc2V0W2ldID0gcHRyIC0gX19wZXJfY3B1X3N0YXJ0OworCWVhcmx5X2NwdV9pbml0KCk7CiAjZW5kaWYKLQkJbWVtY3B5KHB0ciwgX19wZXJfY3B1X3N0YXJ0LCBfX3Blcl9jcHVfZW5kIC0gX19wZXJfY3B1X3N0YXJ0KTsKKwlzdHJsY3B5KGNvbW1hbmRfbGluZSwgYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORV9TSVpFKTsKKwkqY21kbGluZV9wID0gY29tbWFuZF9saW5lOwogCi0JCWhpZ2hlc3RfY3B1ID0gaTsKKwlwYXJzZV9lYXJseV9wYXJhbSgpOworCisJLyogYWZ0ZXIgZWFybHkgcGFyYW0sIHNvIGNvdWxkIGdldCBwYW5pYyBmcm9tIHNlcmlhbCAqLworCXJlc2VydmVfZWFybHlfc2V0dXBfZGF0YSgpOworCisJaWYgKGFjcGlfbXBzX2NoZWNrKCkpIHsKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwkJZGlzYWJsZV9hcGljID0gMTsKKyNlbmRpZgorCQljbGVhcl9jcHVfY2FwKCZib290X2NwdV9kYXRhLCBYODZfRkVBVFVSRV9BUElDKTsKIAl9CiAKLQlucl9jcHVfaWRzID0gaGlnaGVzdF9jcHUgKyAxOwotCXByaW50ayhLRVJOX0RFQlVHICJOUl9DUFVTOiAlZCwgbnJfY3B1X2lkczogJWRcbiIsIE5SX0NQVVMsIG5yX2NwdV9pZHMpOworCWZpbmlzaF9lODIwX3BhcnNpbmcoKTsKIAotCS8qIFNldHVwIHBlcmNwdSBkYXRhIG1hcHMgKi8KLQlzZXR1cF9wZXJfY3B1X21hcHMoKTsKLQotCS8qIFNldHVwIGNwdW1hc2tfb2ZfY3B1IG1hcCAqLwotCXNldHVwX2NwdW1hc2tfb2ZfY3B1KCk7Ci19Ci0KKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJcHJvYmVfcm9tcygpOwogI2VuZGlmCisKKwkvKiBhZnRlciBwYXJzZV9lYXJseV9wYXJhbSwgc28gY291bGQgZGVidWcgaXQgKi8KKwlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmY29kZV9yZXNvdXJjZSk7CisJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmRhdGFfcmVzb3VyY2UpOworCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZic3NfcmVzb3VyY2UpOworCisJaWYgKGVmaV9lbmFibGVkKQorCQllZmlfaW5pdCgpOworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWlmIChwcHJvX3dpdGhfcmFtX2J1ZygpKSB7CisJCWU4MjBfdXBkYXRlX3JhbmdlKDB4NzAwMDAwMDBVTEwsIDB4NDAwMDBVTEwsIEU4MjBfUkFNLAorCQkJCSAgRTgyMF9SRVNFUlZFRCk7CisJCXNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCBBUlJBWV9TSVpFKGU4MjAubWFwKSwgJmU4MjAubnJfbWFwKTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiZml4ZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOworCQllODIwX3ByaW50X21hcCgiYmFkX3Bwcm8iKTsKKwl9CisjZWxzZQorCWVhcmx5X2dhcnRfaW9tbXVfY2hlY2soKTsKKyNlbmRpZgorCisJLyoKKwkgKiBwYXJ0aWFsbHkgdXNlZCBwYWdlcyBhcmUgbm90IHVzYWJsZSAtIHRodXMKKwkgKiB3ZSBhcmUgcm91bmRpbmcgdXB3YXJkczoKKwkgKi8KKwltYXhfcGZuID0gZTgyMF9lbmRfb2ZfcmFtX3BmbigpOworCisJLyogcHJlYWxsb2NhdGUgNGsgZm9yIG1wdGFibGUgbXBjICovCisJZWFybHlfcmVzZXJ2ZV9lODIwX21wY19uZXcoKTsKKwkvKiB1cGRhdGUgZTgyMCBmb3IgbWVtb3J5IG5vdCBjb3ZlcmVkIGJ5IFdCIE1UUlJzICovCisJbXRycl9icF9pbml0KCk7CisJaWYgKG10cnJfdHJpbV91bmNhY2hlZF9tZW1vcnkobWF4X3BmbikpCisJCW1heF9wZm4gPSBlODIwX2VuZF9vZl9yYW1fcGZuKCk7CisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJLyogbWF4X2xvd19wZm4gZ2V0IHVwZGF0ZWQgaGVyZSAqLworCWZpbmRfbG93X3Bmbl9yYW5nZSgpOworI2Vsc2UKKwludW1fcGh5c3BhZ2VzID0gbWF4X3BmbjsKKworCWNoZWNrX2VmZXIoKTsKKworCS8qIEhvdyBtYW55IGVuZC1vZi1tZW1vcnkgdmFyaWFibGVzIHlvdSBoYXZlLCBncmFuZG1hISAqLworCS8qIG5lZWQgdGhpcyBiZWZvcmUgY2FsbGluZyByZXNlcnZlX2luaXRyZCAqLworCWlmIChtYXhfcGZuID4gKDFVTDw8KDMyIC0gUEFHRV9TSElGVCkpKQorCQltYXhfbG93X3BmbiA9IGU4MjBfZW5kX29mX2xvd19yYW1fcGZuKCk7CisJZWxzZQorCQltYXhfbG93X3BmbiA9IG1heF9wZm47CisKKwloaWdoX21lbW9yeSA9ICh2b2lkICopX192YShtYXhfcGZuICogUEFHRV9TSVpFIC0gMSkgKyAxOworI2VuZGlmCisKKwkvKiBtYXhfcGZuX21hcHBlZCBpcyB1cGRhdGVkIGhlcmUgKi8KKwltYXhfbG93X3Bmbl9tYXBwZWQgPSBpbml0X21lbW9yeV9tYXBwaW5nKDAsIG1heF9sb3dfcGZuPDxQQUdFX1NISUZUKTsKKwltYXhfcGZuX21hcHBlZCA9IG1heF9sb3dfcGZuX21hcHBlZDsKKworI2lmZGVmIENPTkZJR19YODZfNjQKKwlpZiAobWF4X3BmbiA+IG1heF9sb3dfcGZuKSB7CisJCW1heF9wZm5fbWFwcGVkID0gaW5pdF9tZW1vcnlfbWFwcGluZygxVUw8PDMyLAorCQkJCQkJICAgICBtYXhfcGZuPDxQQUdFX1NISUZUKTsKKwkJLyogY2FuIHdlIHByZXNldmUgbWF4X2xvd19wZm4gPyovCisJCW1heF9sb3dfcGZuID0gbWF4X3BmbjsKKwl9CisjZW5kaWYKKworCS8qCisJICogTk9URTogT24geDg2LTMyLCBvbmx5IGZyb20gdGhpcyBwb2ludCBvbiwgZml4bWFwcyBhcmUgcmVhZHkgZm9yIHVzZS4KKwkgKi8KKworI2lmZGVmIENPTkZJR19QUk9WSURFX09IQ0kxMzk0X0RNQV9JTklUCisJaWYgKGluaXRfb2hjaTEzOTRfZG1hX2Vhcmx5KQorCQlpbml0X29oY2kxMzk0X2RtYV9vbl9hbGxfY29udHJvbGxlcnMoKTsKKyNlbmRpZgorCisJcmVzZXJ2ZV9pbml0cmQoKTsKKworI2lmZGVmIENPTkZJR19YODZfNjQKKwl2c21wX2luaXQoKTsKKyNlbmRpZgorCisJZG1pX3NjYW5fbWFjaGluZSgpOworCisJaW9fZGVsYXlfaW5pdCgpOworCisJLyoKKwkgKiBQYXJzZSB0aGUgQUNQSSB0YWJsZXMgZm9yIHBvc3NpYmxlIGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbi4KKwkgKi8KKwlhY3BpX2Jvb3RfdGFibGVfaW5pdCgpOworCisjaWZkZWYgQ09ORklHX0FDUElfTlVNQQorCS8qCisJICogUGFyc2UgU1JBVCB0byBkaXNjb3ZlciBub2Rlcy4KKwkgKi8KKwlhY3BpX251bWFfaW5pdCgpOworI2VuZGlmCisKKwlpbml0bWVtX2luaXQoMCwgbWF4X3Bmbik7CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJZG1hMzJfcmVzZXJ2ZV9ib290bWVtKCk7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BQ1BJX1NMRUVQCisJLyoKKwkgKiBSZXNlcnZlIGxvdyBtZW1vcnkgcmVnaW9uIGZvciBzbGVlcCBzdXBwb3J0LgorCSAqLworCWFjcGlfcmVzZXJ2ZV9ib290bWVtKCk7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X0ZJTkRfU01QX0NPTkZJRworCS8qCisJICogRmluZCBhbmQgcmVzZXJ2ZSBwb3NzaWJsZSBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246CisJICovCisJZmluZF9zbXBfY29uZmlnKCk7CisjZW5kaWYKKwlyZXNlcnZlX2NyYXNoa2VybmVsKCk7CisKKwlyZXNlcnZlX2liZnRfcmVnaW9uKCk7CisKKyNpZmRlZiBDT05GSUdfS1ZNX0NMT0NLCisJa3ZtY2xvY2tfaW5pdCgpOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKENPTkZJR19WTUkpICYmIGRlZmluZWQoQ09ORklHX1g4Nl8zMikKKwkvKgorCSAqIE11c3QgYmUgYWZ0ZXIgbWF4X2xvd19wZm4gaXMgZGV0ZXJtaW5lZCwgYW5kIGJlZm9yZSBrZXJuZWwKKwkgKiBwYWdldGFibGVzIGFyZSBzZXR1cC4KKwkgKi8KKwl2bWlfaW5pdCgpOworI2VuZGlmCisKKwlwYWdpbmdfaW5pdCgpOworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCW1hcF92c3lzY2FsbCgpOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfWDg2X0dFTkVSSUNBUkNICisJZ2VuZXJpY19hcGljX3Byb2JlKCk7CisjZW5kaWYKKworCWVhcmx5X3F1aXJrcygpOworCisJLyoKKwkgKiBSZWFkIEFQSUMgYW5kIHNvbWUgb3RoZXIgZWFybHkgaW5mb3JtYXRpb24gZnJvbSBBQ1BJIHRhYmxlcy4KKwkgKi8KKwlhY3BpX2Jvb3RfaW5pdCgpOworCisjaWYgZGVmaW5lZChDT05GSUdfWDg2X01QUEFSU0UpIHx8IGRlZmluZWQoQ09ORklHX1g4Nl9WSVNXUykKKwkvKgorCSAqIGdldCBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246CisJICovCisJaWYgKHNtcF9mb3VuZF9jb25maWcpCisJCWdldF9zbXBfY29uZmlnKCk7CisjZW5kaWYKKworCXByZWZpbGxfcG9zc2libGVfbWFwKCk7CisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWluaXRfY3B1X3RvX25vZGUoKTsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQorCS8qCisJICogbmVlZCB0byBjaGVjayBvbmxpbmUgbm9kZXMgbnVtLCBjYWxsIGl0CisJICogaGVyZSBiZWZvcmUgdGltZV9pbml0L3RzY19pbml0CisJICovCisJbnVtYXFfdHNjX2Rpc2FibGUoKTsKKyNlbmRpZgorCisJaW5pdF9hcGljX21hcHBpbmdzKCk7CisJaW9hcGljX2luaXRfbWFwcGluZ3MoKTsKKworI2lmIGRlZmluZWQoQ09ORklHX1NNUCkgJiYgZGVmaW5lZChDT05GSUdfWDg2X1BDKSAmJiBkZWZpbmVkKENPTkZJR19YODZfMzIpCisJaWYgKGRlZl90b19iaWdzbXApCisJCXByaW50ayhLRVJOX1dBUk5JTkcgIk1vcmUgdGhhbiA4IENQVXMgZGV0ZWN0ZWQgYW5kICIKKwkJCSJDT05GSUdfWDg2X1BDIGNhbm5vdCBoYW5kbGUgaXQuXG5Vc2UgIgorCQkJIkNPTkZJR19YODZfR0VORVJJQ0FSQ0ggb3IgQ09ORklHX1g4Nl9CSUdTTVAuXG4iKTsKKyNlbmRpZgorCWt2bV9ndWVzdF9pbml0KCk7CisKKwllODIwX3Jlc2VydmVfcmVzb3VyY2VzKCk7CisJZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKG1heF9sb3dfcGZuKTsKKworI2lmZGVmIENPTkZJR19YODZfMzIKKwlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJnZpZGVvX3JhbV9yZXNvdXJjZSk7CisjZW5kaWYKKwlyZXNlcnZlX3N0YW5kYXJkX2lvX3Jlc291cmNlcygpOworCisJZTgyMF9zZXR1cF9nYXAoKTsKKworI2lmZGVmIENPTkZJR19WVAorI2lmIGRlZmluZWQoQ09ORklHX1ZHQV9DT05TT0xFKQorCWlmICghZWZpX2VuYWJsZWQgfHwgKGVmaV9tZW1fdHlwZSgweGEwMDAwKSAhPSBFRklfQ09OVkVOVElPTkFMX01FTU9SWSkpCisJCWNvbnN3aXRjaHAgPSAmdmdhX2NvbjsKKyNlbGlmIGRlZmluZWQoQ09ORklHX0RVTU1ZX0NPTlNPTEUpCisJY29uc3dpdGNocCA9ICZkdW1teV9jb247CisjZW5kaWYKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NldHVwNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cDY0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlZTBlODIuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL3NldHVwNjQuYworKysgL2Rldi9udWxsCkBAIC0xLDI4NyArMCwwIEBACi0vKiAKLSAqIFg4Ni02NCBzcGVjaWZpYyBDUFUgc2V0dXAuCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTUgIExpbnVzIFRvcnZhbGRzCi0gKiBDb3B5cmlnaHQgMjAwMSwgMjAwMiwgMjAwMyBTdVNFIExhYnMgLyBBbmRpIEtsZWVuLgotICogU2VlIHNldHVwLmMgZm9yIG9sZGVyIGNoYW5nZWxvZy4KLSAqLyAKLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvYml0b3BzLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2dkYi5oPgotI2luY2x1ZGUgPGFzbS9wZGEuaD4KLSNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgotI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KLSNpbmNsdWRlIDxhc20vZGVzYy5oPgotI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KLSNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KLSNpbmNsdWRlIDxhc20vc21wLmg+Ci0jaW5jbHVkZSA8YXNtL2kzODcuaD4KLSNpbmNsdWRlIDxhc20vcGVyY3B1Lmg+Ci0jaW5jbHVkZSA8YXNtL3Byb3RvLmg+Ci0jaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+Ci0jaW5jbHVkZSA8YXNtL3NldHVwLmg+Ci0jaW5jbHVkZSA8YXNtL2dlbmFwaWMuaD4KLQotI2lmbmRlZiBDT05GSUdfREVCVUdfQk9PVF9QQVJBTVMKLXN0cnVjdCBib290X3BhcmFtcyBfX2luaXRkYXRhIGJvb3RfcGFyYW1zOwotI2Vsc2UKLXN0cnVjdCBib290X3BhcmFtcyBib290X3BhcmFtczsKLSNlbmRpZgotCi1jcHVtYXNrX3QgY3B1X2luaXRpYWxpemVkIF9fY3B1aW5pdGRhdGEgPSBDUFVfTUFTS19OT05FOwotCi1zdHJ1Y3QgeDg2NjRfcGRhICpfY3B1X3BkYVtOUl9DUFVTXSBfX3JlYWRfbW9zdGx5OwotRVhQT1JUX1NZTUJPTChfY3B1X3BkYSk7Ci1zdHJ1Y3QgeDg2NjRfcGRhIGJvb3RfY3B1X3BkYVtOUl9DUFVTXSBfX2NhY2hlbGluZV9hbGlnbmVkOwotCi1zdHJ1Y3QgZGVzY19wdHIgaWR0X2Rlc2NyID0geyAyNTYgKiAxNiAtIDEsICh1bnNpZ25lZCBsb25nKSBpZHRfdGFibGUgfTsKLQotY2hhciBib290X2NwdV9zdGFja1tJUlFTVEFDS1NJWkVdIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5ic3MucGFnZV9hbGlnbmVkIikpKTsKLQotdW5zaWduZWQgbG9uZyBfX3N1cHBvcnRlZF9wdGVfbWFzayBfX3JlYWRfbW9zdGx5ID0gfjBVTDsKLUVYUE9SVF9TWU1CT0xfR1BMKF9fc3VwcG9ydGVkX3B0ZV9tYXNrKTsKLQotc3RhdGljIGludCBkb19ub3RfbnggX19jcHVpbml0ZGF0YSA9IDA7Ci0KLS8qIG5vZXhlYz1vbnxvZmYKLUNvbnRyb2wgbm9uIGV4ZWN1dGFibGUgbWFwcGluZ3MgZm9yIDY0Yml0IHByb2Nlc3Nlcy4KLQotb24JRW5hYmxlKGRlZmF1bHQpCi1vZmYJRGlzYWJsZQotKi8gCi1zdGF0aWMgaW50IF9faW5pdCBub254X3NldHVwKGNoYXIgKnN0cikKLXsKLQlpZiAoIXN0cikKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JaWYgKCFzdHJuY21wKHN0ciwgIm9uIiwgMikpIHsKLSAgICAgICAgICAgICAgICBfX3N1cHBvcnRlZF9wdGVfbWFzayB8PSBfUEFHRV9OWDsgCi0gCQlkb19ub3RfbnggPSAwOyAKLQl9IGVsc2UgaWYgKCFzdHJuY21wKHN0ciwgIm9mZiIsIDMpKSB7Ci0JCWRvX25vdF9ueCA9IDE7Ci0JCV9fc3VwcG9ydGVkX3B0ZV9tYXNrICY9IH5fUEFHRV9OWDsKLSAgICAgICAgfQotCXJldHVybiAwOwotfSAKLWVhcmx5X3BhcmFtKCJub2V4ZWMiLCBub254X3NldHVwKTsKLQotaW50IGZvcmNlX3BlcnNvbmFsaXR5MzIgPSAwOyAKLQotLyogbm9leGVjMzI9b258b2ZmCi1Db250cm9sIG5vbiBleGVjdXRhYmxlIGhlYXAgZm9yIDMyYml0IHByb2Nlc3Nlcy4KLVRvIGNvbnRyb2wgdGhlIHN0YWNrIHRvbyB1c2Ugbm9leGVjPW9mZgotCi1vbglQUk9UX1JFQUQgZG9lcyBub3QgaW1wbHkgUFJPVF9FWEVDIGZvciAzMmJpdCBwcm9jZXNzZXMgKGRlZmF1bHQpCi1vZmYJUFJPVF9SRUFEIGltcGxpZXMgUFJPVF9FWEVDCi0qLwotc3RhdGljIGludCBfX2luaXQgbm9ueDMyX3NldHVwKGNoYXIgKnN0cikKLXsKLQlpZiAoIXN0cmNtcChzdHIsICJvbiIpKQotCQlmb3JjZV9wZXJzb25hbGl0eTMyICY9IH5SRUFEX0lNUExJRVNfRVhFQzsKLQllbHNlIGlmICghc3RyY21wKHN0ciwgIm9mZiIpKQotCQlmb3JjZV9wZXJzb25hbGl0eTMyIHw9IFJFQURfSU1QTElFU19FWEVDOwotCXJldHVybiAxOwotfQotX19zZXR1cCgibm9leGVjMzI9Iiwgbm9ueDMyX3NldHVwKTsKLQotdm9pZCBwZGFfaW5pdChpbnQgY3B1KQoteyAKLQlzdHJ1Y3QgeDg2NjRfcGRhICpwZGEgPSBjcHVfcGRhKGNwdSk7Ci0KLQkvKiBTZXR1cCB1cCBkYXRhIHRoYXQgbWF5IGJlIG5lZWRlZCBpbiBfX2dldF9mcmVlX3BhZ2VzIGVhcmx5ICovCi0JYXNtIHZvbGF0aWxlKCJtb3ZsICUwLCUlZnMgOyBtb3ZsICUwLCUlZ3MiIDo6ICJyIiAoMCkpOyAKLQkvKiBNZW1vcnkgY2xvYmJlcnMgdXNlZCB0byBvcmRlciBQREEgYWNjZXNzZWQgKi8KLQltYigpOwotCXdybXNybChNU1JfR1NfQkFTRSwgcGRhKTsKLQltYigpOwotCi0JcGRhLT5jcHVudW1iZXIgPSBjcHU7IAotCXBkYS0+aXJxY291bnQgPSAtMTsKLQlwZGEtPmtlcm5lbHN0YWNrID0gCi0JCSh1bnNpZ25lZCBsb25nKXN0YWNrX3RocmVhZF9pbmZvKCkgLSBQREFfU1RBQ0tPRkZTRVQgKyBUSFJFQURfU0laRTsgCi0JcGRhLT5hY3RpdmVfbW0gPSAmaW5pdF9tbTsKLQlwZGEtPm1tdV9zdGF0ZSA9IDA7Ci0KLQlpZiAoY3B1ID09IDApIHsKLQkJLyogb3RoZXJzIGFyZSBpbml0aWFsaXplZCBpbiBzbXBib290LmMgKi8KLQkJcGRhLT5wY3VycmVudCA9ICZpbml0X3Rhc2s7Ci0JCXBkYS0+aXJxc3RhY2twdHIgPSBib290X2NwdV9zdGFjazsgCi0JfSBlbHNlIHsKLQkJcGRhLT5pcnFzdGFja3B0ciA9IChjaGFyICopCi0JCQlfX2dldF9mcmVlX3BhZ2VzKEdGUF9BVE9NSUMsIElSUVNUQUNLX09SREVSKTsKLQkJaWYgKCFwZGEtPmlycXN0YWNrcHRyKQotCQkJcGFuaWMoImNhbm5vdCBhbGxvY2F0ZSBpcnFzdGFjayBmb3IgY3B1ICVkIiwgY3B1KTsgCi0JfQotCi0KLQlwZGEtPmlycXN0YWNrcHRyICs9IElSUVNUQUNLU0laRS02NDsKLX0gCi0KLWNoYXIgYm9vdF9leGNlcHRpb25fc3RhY2tzWyhOX0VYQ0VQVElPTl9TVEFDS1MgLSAxKSAqIEVYQ0VQVElPTl9TVEtTWiArIERFQlVHX1NUS1NaXQotX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmJzcy5wYWdlX2FsaWduZWQiKSkpOwotCi1leHRlcm4gYXNtbGlua2FnZSB2b2lkIGlnbm9yZV9zeXNyZXQodm9pZCk7Ci0KLS8qIE1heSBub3QgYmUgbWFya2VkIF9faW5pdDogdXNlZCBieSBzb2Z0d2FyZSBzdXNwZW5kICovCi12b2lkIHN5c2NhbGxfaW5pdCh2b2lkKQotewotCS8qIAotCSAqIExTVEFSIGFuZCBTVEFSIGxpdmUgaW4gYSBiaXQgc3RyYW5nZSBzeW1iaW9zaXMuCi0JICogVGhleSBib3RoIHdyaXRlIHRvIHRoZSBzYW1lIGludGVybmFsIHJlZ2lzdGVyLiBTVEFSIGFsbG93cyB0byBzZXQgQ1MvRFMKLQkgKiBidXQgb25seSBhIDMyYml0IHRhcmdldC4gTFNUQVIgc2V0cyB0aGUgNjRiaXQgcmlwLiAJIAotCSAqLyAKLQl3cm1zcmwoTVNSX1NUQVIsICAoKHU2NClfX1VTRVIzMl9DUyk8PDQ4ICB8ICgodTY0KV9fS0VSTkVMX0NTKTw8MzIpOyAKLQl3cm1zcmwoTVNSX0xTVEFSLCBzeXN0ZW1fY2FsbCk7IAotCXdybXNybChNU1JfQ1NUQVIsIGlnbm9yZV9zeXNyZXQpOwotCi0jaWZkZWYgQ09ORklHX0lBMzJfRU1VTEFUSU9OICAgCQkKLQlzeXNjYWxsMzJfY3B1X2luaXQgKCk7Ci0jZW5kaWYKLQotCS8qIEZsYWdzIHRvIGNsZWFyIG9uIHN5c2NhbGwgKi8KLQl3cm1zcmwoTVNSX1NZU0NBTExfTUFTSywKLQkgICAgICAgWDg2X0VGTEFHU19URnxYODZfRUZMQUdTX0RGfFg4Nl9FRkxBR1NfSUZ8WDg2X0VGTEFHU19JT1BMKTsKLX0KLQotdm9pZCBfX2NwdWluaXQgY2hlY2tfZWZlcih2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgZWZlcjsKLQotCXJkbXNybChNU1JfRUZFUiwgZWZlcik7IAotICAgICAgICBpZiAoIShlZmVyICYgRUZFUl9OWCkgfHwgZG9fbm90X254KSB7IAotICAgICAgICAgICAgICAgIF9fc3VwcG9ydGVkX3B0ZV9tYXNrICY9IH5fUEFHRV9OWDsgCi0gICAgICAgIH0gICAgICAgCi19Ci0KLXVuc2lnbmVkIGxvbmcga2VybmVsX2VmbGFnczsKLQotLyoKLSAqIENvcGllcyBvZiB0aGUgb3JpZ2luYWwgaXN0IHZhbHVlcyBmcm9tIHRoZSB0c3MgYXJlIG9ubHkgYWNjZXNzZWQgZHVyaW5nCi0gKiBkZWJ1Z2dpbmcsIG5vIHNwZWNpYWwgYWxpZ25tZW50IHJlcXVpcmVkLgotICovCi1ERUZJTkVfUEVSX0NQVShzdHJ1Y3Qgb3JpZ19pc3QsIG9yaWdfaXN0KTsKLQotLyoKLSAqIGNwdV9pbml0KCkgaW5pdGlhbGl6ZXMgc3RhdGUgdGhhdCBpcyBwZXItQ1BVLiBTb21lIGRhdGEgaXMgYWxyZWFkeQotICogaW5pdGlhbGl6ZWQgKG5hdHVyYWxseSkgaW4gdGhlIGJvb3RzdHJhcCBwcm9jZXNzLCBzdWNoIGFzIHRoZSBHRFQKLSAqIGFuZCBJRFQuIFdlIHJlbG9hZCB0aGVtIG5ldmVydGhlbGVzcywgdGhpcyBmdW5jdGlvbiBhY3RzIGFzIGEKLSAqICdDUFUgc3RhdGUgYmFycmllcicsIG5vdGhpbmcgc2hvdWxkIGdldCBhY3Jvc3MuCi0gKiBBIGxvdCBvZiBzdGF0ZSBpcyBhbHJlYWR5IHNldCB1cCBpbiBQREEgaW5pdC4KLSAqLwotdm9pZCBfX2NwdWluaXQgY3B1X2luaXQgKHZvaWQpCi17Ci0JaW50IGNwdSA9IHN0YWNrX3NtcF9wcm9jZXNzb3JfaWQoKTsKLQlzdHJ1Y3QgdHNzX3N0cnVjdCAqdCA9ICZwZXJfY3B1KGluaXRfdHNzLCBjcHUpOwotCXN0cnVjdCBvcmlnX2lzdCAqb3JpZ19pc3QgPSAmcGVyX2NwdShvcmlnX2lzdCwgY3B1KTsKLQl1bnNpZ25lZCBsb25nIHY7IAotCWNoYXIgKmVzdGFja3MgPSBOVUxMOyAKLQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm1lOwotCWludCBpOwotCi0JLyogQ1BVIDAgaXMgaW5pdGlhbGlzZWQgaW4gaGVhZDY0LmMgKi8KLQlpZiAoY3B1ICE9IDApIHsKLQkJcGRhX2luaXQoY3B1KTsKLQl9IGVsc2UgCi0JCWVzdGFja3MgPSBib290X2V4Y2VwdGlvbl9zdGFja3M7IAotCi0JbWUgPSBjdXJyZW50OwotCi0JaWYgKGNwdV90ZXN0X2FuZF9zZXQoY3B1LCBjcHVfaW5pdGlhbGl6ZWQpKQotCQlwYW5pYygiQ1BVIyVkIGFscmVhZHkgaW5pdGlhbGl6ZWQhXG4iLCBjcHUpOwotCi0JcHJpbnRrKCJJbml0aWFsaXppbmcgQ1BVIyVkXG4iLCBjcHUpOwotCi0JY2xlYXJfaW5fY3I0KFg4Nl9DUjRfVk1FfFg4Nl9DUjRfUFZJfFg4Nl9DUjRfVFNEfFg4Nl9DUjRfREUpOwotCi0JLyoKLQkgKiBJbml0aWFsaXplIHRoZSBwZXItQ1BVIEdEVCB3aXRoIHRoZSBib290IEdEVCwKLQkgKiBhbmQgc2V0IHVwIHRoZSBHRFQgZGVzY3JpcHRvcjoKLQkgKi8KLQlpZiAoY3B1KQotCQltZW1jcHkoZ2V0X2NwdV9nZHRfdGFibGUoY3B1KSwgY3B1X2dkdF90YWJsZSwgR0RUX1NJWkUpOwotCi0JY3B1X2dkdF9kZXNjcltjcHVdLnNpemUgPSBHRFRfU0laRTsKLQlsb2FkX2dkdCgoY29uc3Qgc3RydWN0IGRlc2NfcHRyICopJmNwdV9nZHRfZGVzY3JbY3B1XSk7Ci0JbG9hZF9pZHQoKGNvbnN0IHN0cnVjdCBkZXNjX3B0ciAqKSZpZHRfZGVzY3IpOwotCi0JbWVtc2V0KG1lLT50aHJlYWQudGxzX2FycmF5LCAwLCBHRFRfRU5UUllfVExTX0VOVFJJRVMgKiA4KTsKLQlzeXNjYWxsX2luaXQoKTsKLQotCXdybXNybChNU1JfRlNfQkFTRSwgMCk7Ci0Jd3Jtc3JsKE1TUl9LRVJORUxfR1NfQkFTRSwgMCk7Ci0JYmFycmllcigpOyAKLQotCWNoZWNrX2VmZXIoKTsKLQotCS8qCi0JICogc2V0IHVwIGFuZCBsb2FkIHRoZSBwZXItQ1BVIFRTUwotCSAqLwotCWZvciAodiA9IDA7IHYgPCBOX0VYQ0VQVElPTl9TVEFDS1M7IHYrKykgewotCQlzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG9yZGVyW05fRVhDRVBUSU9OX1NUQUNLU10gPSB7Ci0JCQlbMCAuLi4gTl9FWENFUFRJT05fU1RBQ0tTIC0gMV0gPSBFWENFUFRJT05fU1RBQ0tfT1JERVIsCi0JCQlbREVCVUdfU1RBQ0sgLSAxXSA9IERFQlVHX1NUQUNLX09SREVSCi0JCX07Ci0JCWlmIChjcHUpIHsKLQkJCWVzdGFja3MgPSAoY2hhciAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0FUT01JQywgb3JkZXJbdl0pOwotCQkJaWYgKCFlc3RhY2tzKQotCQkJCXBhbmljKCJDYW5ub3QgYWxsb2NhdGUgZXhjZXB0aW9uIHN0YWNrICVsZCAlZFxuIiwKLQkJCQkgICAgICB2LCBjcHUpOyAKLQkJfQotCQllc3RhY2tzICs9IFBBR0VfU0laRSA8PCBvcmRlclt2XTsKLQkJb3JpZ19pc3QtPmlzdFt2XSA9IHQtPng4Nl90c3MuaXN0W3ZdID0gKHVuc2lnbmVkIGxvbmcpZXN0YWNrczsKLQl9Ci0KLQl0LT54ODZfdHNzLmlvX2JpdG1hcF9iYXNlID0gb2Zmc2V0b2Yoc3RydWN0IHRzc19zdHJ1Y3QsIGlvX2JpdG1hcCk7Ci0JLyoKLQkgKiA8PSBpcyByZXF1aXJlZCBiZWNhdXNlIHRoZSBDUFUgd2lsbCBhY2Nlc3MgdXAgdG8KLQkgKiA4IGJpdHMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIElPIHBlcm1pc3Npb24gYml0bWFwLgotCSAqLwotCWZvciAoaSA9IDA7IGkgPD0gSU9fQklUTUFQX0xPTkdTOyBpKyspCi0JCXQtPmlvX2JpdG1hcFtpXSA9IH4wVUw7Ci0KLQlhdG9taWNfaW5jKCZpbml0X21tLm1tX2NvdW50KTsKLQltZS0+YWN0aXZlX21tID0gJmluaXRfbW07Ci0JaWYgKG1lLT5tbSkKLQkJQlVHKCk7Ci0JZW50ZXJfbGF6eV90bGIoJmluaXRfbW0sIG1lKTsKLQotCXNldF90c3NfZGVzYyhjcHUsIHQpOwotCWxvYWRfVFJfZGVzYygpOwotCWxvYWRfTERUKCZpbml0X21tLmNvbnRleHQpOwotCi0jaWZkZWYgQ09ORklHX0tHREIKLQkvKgotCSAqIElmIHRoZSBrZ2RiIGlzIGNvbm5lY3RlZCBubyBkZWJ1ZyByZWdzIHNob3VsZCBiZSBhbHRlcmVkLiAgVGhpcwotCSAqIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIEtHREIgYW5kIGEgS0dEQiBJL08gbW9kdWxlIGFyZSBidWlsdAotCSAqIGludG8gdGhlIGtlcm5lbCBhbmQgeW91IGFyZSB1c2luZyBlYXJseSBkZWJ1Z2dpbmcgd2l0aAotCSAqIGtnZGJ3YWl0LiBLR0RCIHdpbGwgY29udHJvbCB0aGUga2VybmVsIEhXIGJyZWFrcG9pbnQgcmVnaXN0ZXJzLgotCSAqLwotCWlmIChrZ2RiX2Nvbm5lY3RlZCAmJiBhcmNoX2tnZGJfb3BzLmNvcnJlY3RfaHdfYnJlYWspCi0JCWFyY2hfa2dkYl9vcHMuY29ycmVjdF9od19icmVhaygpOwotCWVsc2UgewotI2VuZGlmCi0JLyoKLQkgKiBDbGVhciBhbGwgNiBkZWJ1ZyByZWdpc3RlcnM6Ci0JICovCi0KLQlzZXRfZGVidWdyZWcoMFVMLCAwKTsKLQlzZXRfZGVidWdyZWcoMFVMLCAxKTsKLQlzZXRfZGVidWdyZWcoMFVMLCAyKTsKLQlzZXRfZGVidWdyZWcoMFVMLCAzKTsKLQlzZXRfZGVidWdyZWcoMFVMLCA2KTsKLQlzZXRfZGVidWdyZWcoMFVMLCA3KTsKLSNpZmRlZiBDT05GSUdfS0dEQgotCS8qIElmIHRoZSBrZ2RiIGlzIGNvbm5lY3RlZCBubyBkZWJ1ZyByZWdzIHNob3VsZCBiZSBhbHRlcmVkLiAqLwotCX0KLSNlbmRpZgotCi0JZnB1X2luaXQoKTsgCi0KLQlyYXdfbG9jYWxfc2F2ZV9mbGFncyhrZXJuZWxfZWZsYWdzKTsKLQotCWlmIChpc191dl9zeXN0ZW0oKSkKLQkJdXZfY3B1X2luaXQoKTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cF8zMi5jIGIvYXJjaC94ODYva2VybmVsL3NldHVwXzMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhMmY4ZTAuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL3NldHVwXzMyLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5NjQgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDE5OTUgIExpbnVzIFRvcnZhbGRzCi0gKgotICogIFN1cHBvcnQgb2YgQklHTUVNIGFkZGVkIGJ5IEdlcmhhcmQgV2ljaGVydCwgU2llbWVucyBBRywgSnVseSAxOTk5Ci0gKgotICogIE1lbW9yeSByZWdpb24gc3VwcG9ydAotICoJRGF2aWQgUGFyc29ucyA8b3JjQHBlbGwuY2hpLmlsLnVzPiwgSnVseS1BdWd1c3QgMTk5OQotICoKLSAqICBBZGRlZCBFODIwIHNhbml0aXphdGlvbiByb3V0aW5lIChyZW1vdmVzIG92ZXJsYXBwaW5nIG1lbW9yeSByZWdpb25zKTsKLSAqICBCcmlhbiBNb3lsZSA8Ym1veWxlQG12aXN0YS5jb20+LCBGZWJydWFyeSAyMDAxCi0gKgotICogTW92ZWQgQ1BVIGRldGVjdGlvbiBjb2RlIHRvIGNwdS8ke2NwdX0uYwotICogICAgUGF0cmljayBNb2NoZWwgPG1vY2hlbEBvc2RsLm9yZz4sIE1hcmNoIDIwMDIKLSAqCi0gKiAgUHJvdmlzaW9ucyBmb3IgZW1wdHkgRTgyMCBtZW1vcnkgcmVnaW9ucyAocmVwb3J0ZWQgYnkgY2VydGFpbiBCSU9TZXMpLgotICogIEFsZXggQWNoZW5iYWNoIDx4ZWxhQHNsaXQuZGU+LCBEZWNlbWJlciAyMDAyLgotICoKLSAqLwotCi0vKgotICogVGhpcyBmaWxlIGhhbmRsZXMgdGhlIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgcGFydHMgb2YgaW5pdGlhbGl6YXRpb24KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NjcmVlbl9pbmZvLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvYWNwaS5oPgotI2luY2x1ZGUgPGxpbnV4L2FwbV9iaW9zLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdHJkLmg+Ci0jaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgotI2luY2x1ZGUgPGxpbnV4L21jYS5oPgotI2luY2x1ZGUgPGxpbnV4L3Jvb3RfZGV2Lmg+Ci0jaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2VmaS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9lZGQuaD4KLSNpbmNsdWRlIDxsaW51eC9pc2NzaV9pYmZ0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbm9kZW1hc2suaD4KLSNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgotI2luY2x1ZGUgPGxpbnV4L2NyYXNoX2R1bXAuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWkuaD4KLSNpbmNsdWRlIDxsaW51eC9wZm4uaD4KLSNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0X29oY2kxMzk0X2RtYS5oPgotI2luY2x1ZGUgPGxpbnV4L2t2bV9wYXJhLmg+Ci0KLSNpbmNsdWRlIDx2aWRlby9lZGlkLmg+Ci0KLSNpbmNsdWRlIDxhc20vbXRyci5oPgotI2luY2x1ZGUgPGFzbS9hcGljLmg+Ci0jaW5jbHVkZSA8YXNtL2U4MjAuaD4KLSNpbmNsdWRlIDxhc20vbXBzcGVjLmg+Ci0jaW5jbHVkZSA8YXNtL21tem9uZS5oPgotI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgotI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+Ci0jaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+Ci0jaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KLSNpbmNsdWRlIDxhc20vaXN0Lmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL3ZtaS5oPgotI2luY2x1ZGUgPHNldHVwX2FyY2guaD4KLSNpbmNsdWRlIDxhc20vYmlvc19lYmRhLmg+Ci0jaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0KLS8qIFRoaXMgdmFsdWUgaXMgc2V0IHVwIGJ5IHRoZSBlYXJseSBib290IGNvZGUgdG8gcG9pbnQgdG8gdGhlIHZhbHVlCi0gICBpbW1lZGlhdGVseSBhZnRlciB0aGUgYm9vdCB0aW1lIHBhZ2UgdGFibGVzLiAgSXQgY29udGFpbnMgYSAqcGh5c2ljYWwqCi0gICBhZGRyZXNzLCBhbmQgbXVzdCBub3QgYmUgaW4gdGhlIC5ic3Mgc2VnbWVudCEgKi8KLXVuc2lnbmVkIGxvbmcgaW5pdF9wZ190YWJsZXNfZW5kIF9faW5pdGRhdGEgPSB+MFVMOwotCi0vKgotICogTWFjaGluZSBzZXR1cC4uCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgZGF0YV9yZXNvdXJjZSA9IHsKLQkubmFtZQk9ICJLZXJuZWwgZGF0YSIsCi0JLnN0YXJ0CT0gMCwKLQkuZW5kCT0gMCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX01FTQotfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBjb2RlX3Jlc291cmNlID0gewotCS5uYW1lCT0gIktlcm5lbCBjb2RlIiwKLQkuc3RhcnQJPSAwLAotCS5lbmQJPSAwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfTUVNCi19OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGJzc19yZXNvdXJjZSA9IHsKLQkubmFtZQk9ICJLZXJuZWwgYnNzIiwKLQkuc3RhcnQJPSAwLAotCS5lbmQJPSAwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfTUVNCi19OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHZpZGVvX3JhbV9yZXNvdXJjZSA9IHsKLQkubmFtZQk9ICJWaWRlbyBSQU0gYXJlYSIsCi0JLnN0YXJ0CT0gMHhhMDAwMCwKLQkuZW5kCT0gMHhiZmZmZiwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX01FTQotfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzdGFuZGFyZF9pb19yZXNvdXJjZXNbXSA9IHsgewotCS5uYW1lCT0gImRtYTEiLAotCS5zdGFydAk9IDB4MDAwMCwKLQkuZW5kCT0gMHgwMDFmLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0sIHsKLQkubmFtZQk9ICJwaWMxIiwKLQkuc3RhcnQJPSAweDAwMjAsCi0JLmVuZAk9IDB4MDAyMSwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19LCB7Ci0JLm5hbWUgICA9ICJ0aW1lcjAiLAotCS5zdGFydAk9IDB4MDA0MCwKLQkuZW5kICAgID0gMHgwMDQzLAotCS5mbGFncyAgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19LCB7Ci0JLm5hbWUgICA9ICJ0aW1lcjEiLAotCS5zdGFydCAgPSAweDAwNTAsCi0JLmVuZCAgICA9IDB4MDA1MywKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19LCB7Ci0JLm5hbWUJPSAia2V5Ym9hcmQiLAotCS5zdGFydAk9IDB4MDA2MCwKLQkuZW5kCT0gMHgwMDYwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0sIHsKLQkubmFtZQk9ICJrZXlib2FyZCIsCi0JLnN0YXJ0CT0gMHgwMDY0LAotCS5lbmQJPSAweDAwNjQsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSwgewotCS5uYW1lCT0gImRtYSBwYWdlIHJlZyIsCi0JLnN0YXJ0CT0gMHgwMDgwLAotCS5lbmQJPSAweDAwOGYsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSwgewotCS5uYW1lCT0gInBpYzIiLAotCS5zdGFydAk9IDB4MDBhMCwKLQkuZW5kCT0gMHgwMGExLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0sIHsKLQkubmFtZQk9ICJkbWEyIiwKLQkuc3RhcnQJPSAweDAwYzAsCi0JLmVuZAk9IDB4MDBkZiwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19LCB7Ci0JLm5hbWUJPSAiZnB1IiwKLQkuc3RhcnQJPSAweDAwZjAsCi0JLmVuZAk9IDB4MDBmZiwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19IH07Ci0KLS8qIGNwdSBkYXRhIGFzIGRldGVjdGVkIGJ5IHRoZSBhc3NlbWJseSBjb2RlIGluIGhlYWQuUyAqLwotc3RydWN0IGNwdWluZm9feDg2IG5ld19jcHVfZGF0YSBfX2NwdWluaXRkYXRhID0geyAwLCAwLCAwLCAwLCAtMSwgMSwgMCwgMCwgLTEgfTsKLS8qIGNvbW1vbiBjcHUgZGF0YSBmb3IgYWxsIGNwdXMgKi8KLXN0cnVjdCBjcHVpbmZvX3g4NiBib290X2NwdV9kYXRhIF9fcmVhZF9tb3N0bHkgPSB7IDAsIDAsIDAsIDAsIC0xLCAxLCAwLCAwLCAtMSB9OwotRVhQT1JUX1NZTUJPTChib290X2NwdV9kYXRhKTsKLQotdW5zaWduZWQgaW50IGRlZl90b19iaWdzbXA7Ci0KLSNpZm5kZWYgQ09ORklHX1g4Nl9QQUUKLXVuc2lnbmVkIGxvbmcgbW11X2NyNF9mZWF0dXJlczsKLSNlbHNlCi11bnNpZ25lZCBsb25nIG1tdV9jcjRfZmVhdHVyZXMgPSBYODZfQ1I0X1BBRTsKLSNlbmRpZgotCi0vKiBmb3IgTUNBLCBidXQgYW55b25lIGVsc2UgY2FuIHVzZSBpdCBpZiB0aGV5IHdhbnQgKi8KLXVuc2lnbmVkIGludCBtYWNoaW5lX2lkOwotdW5zaWduZWQgaW50IG1hY2hpbmVfc3VibW9kZWxfaWQ7Ci11bnNpZ25lZCBpbnQgQklPU19yZXZpc2lvbjsKLQotLyogQm9vdCBsb2FkZXIgSUQgYXMgYW4gaW50ZWdlciwgZm9yIHRoZSBiZW5lZml0IG9mIHByb2NfZG9pbnR2ZWMgKi8KLWludCBib290bG9hZGVyX3R5cGU7Ci0KLS8qIHVzZXItZGVmaW5lZCBoaWdobWVtIHNpemUgKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgaGlnaG1lbV9wYWdlcyA9IC0xOwotCi0vKgotICogU2V0dXAgb3B0aW9ucwotICovCi1zdHJ1Y3Qgc2NyZWVuX2luZm8gc2NyZWVuX2luZm87Ci1FWFBPUlRfU1lNQk9MKHNjcmVlbl9pbmZvKTsKLXN0cnVjdCBhcG1faW5mbyBhcG1faW5mbzsKLUVYUE9SVF9TWU1CT0woYXBtX2luZm8pOwotc3RydWN0IGVkaWRfaW5mbyBlZGlkX2luZm87Ci1FWFBPUlRfU1lNQk9MX0dQTChlZGlkX2luZm8pOwotc3RydWN0IGlzdF9pbmZvIGlzdF9pbmZvOwotI2lmIGRlZmluZWQoQ09ORklHX1g4Nl9TUEVFRFNURVBfU01JKSB8fCBcCi0JZGVmaW5lZChDT05GSUdfWDg2X1NQRUVEU1RFUF9TTUlfTU9EVUxFKQotRVhQT1JUX1NZTUJPTChpc3RfaW5mbyk7Ci0jZW5kaWYKLQotZXh0ZXJuIHZvaWQgZWFybHlfY3B1X2luaXQodm9pZCk7Ci1leHRlcm4gaW50IHJvb3RfbW91bnRmbGFnczsKLQotdW5zaWduZWQgbG9uZyBzYXZlZF92aWRlb19tb2RlOwotCi0jZGVmaW5lIFJBTURJU0tfSU1BR0VfU1RBUlRfTUFTSwkweDA3RkYKLSNkZWZpbmUgUkFNRElTS19QUk9NUFRfRkxBRwkJMHg4MDAwCi0jZGVmaW5lIFJBTURJU0tfTE9BRF9GTEFHCQkweDQwMDAKLQotc3RhdGljIGNoYXIgX19pbml0ZGF0YSBjb21tYW5kX2xpbmVbQ09NTUFORF9MSU5FX1NJWkVdOwotCi0jaWZuZGVmIENPTkZJR19ERUJVR19CT09UX1BBUkFNUwotc3RydWN0IGJvb3RfcGFyYW1zIF9faW5pdGRhdGEgYm9vdF9wYXJhbXM7Ci0jZWxzZQotc3RydWN0IGJvb3RfcGFyYW1zIGJvb3RfcGFyYW1zOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKENPTkZJR19FREQpIHx8IGRlZmluZWQoQ09ORklHX0VERF9NT0RVTEUpCi1zdHJ1Y3QgZWRkIGVkZDsKLSNpZmRlZiBDT05GSUdfRUREX01PRFVMRQotRVhQT1JUX1NZTUJPTChlZGQpOwotI2VuZGlmCi0vKioKLSAqIGNvcHlfZWRkKCkgLSBDb3B5IHRoZSBCSU9TIEVERCBpbmZvcm1hdGlvbgotICogICAgICAgICAgICAgIGZyb20gYm9vdF9wYXJhbXMgaW50byBhIHNhZmUgcGxhY2UuCi0gKgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgY29weV9lZGQodm9pZCkKLXsKLSAgICAgbWVtY3B5KGVkZC5tYnJfc2lnbmF0dXJlLCBib290X3BhcmFtcy5lZGRfbWJyX3NpZ19idWZmZXIsCi0JICAgIHNpemVvZihlZGQubWJyX3NpZ25hdHVyZSkpOwotICAgICBtZW1jcHkoZWRkLmVkZF9pbmZvLCBib290X3BhcmFtcy5lZGRidWYsIHNpemVvZihlZGQuZWRkX2luZm8pKTsKLSAgICAgZWRkLm1icl9zaWduYXR1cmVfbnIgPSBib290X3BhcmFtcy5lZGRfbWJyX3NpZ19idWZfZW50cmllczsKLSAgICAgZWRkLmVkZF9pbmZvX25yID0gYm9vdF9wYXJhbXMuZWRkYnVmX2VudHJpZXM7Ci19Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIGNvcHlfZWRkKHZvaWQpCi17Ci19Ci0jZW5kaWYKLQotaW50IF9faW5pdGRhdGEgdXNlcl9kZWZpbmVkX21lbW1hcDsKLQotLyoKLSAqICJtZW09bm9wZW50aXVtIiBkaXNhYmxlcyB0aGUgNE1CIHBhZ2UgdGFibGVzLgotICogIm1lbT1YWFhba0ttTV0iIGRlZmluZXMgYSBtZW1vcnkgcmVnaW9uIGZyb20gSElHSF9NRU0KLSAqIHRvIDxtZW0+LCBvdmVycmlkaW5nIHRoZSBiaW9zIHNpemUuCi0gKiAibWVtbWFwPVhYWFtLa21NXUBYWFhbS2ttTV0iIGRlZmluZXMgYSBtZW1vcnkgcmVnaW9uIGZyb20KLSAqIDxzdGFydD4gdG8gPHN0YXJ0Pis8bWVtPiwgb3ZlcnJpZGluZyB0aGUgYmlvcyBzaXplLgotICoKLSAqIEhQQSB0ZWxscyBtZSBib290bG9hZGVycyBuZWVkIHRvIHBhcnNlIG1lbT0sIHNvIG5vIG5ldwotICogb3B0aW9uIHNob3VsZCBiZSBtZW09ICBbYWxzbyBzZWUgRG9jdW1lbnRhdGlvbi9pMzg2L2Jvb3QudHh0XQotICovCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tZW0oY2hhciAqYXJnKQotewotCWlmICghYXJnKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmIChzdHJjbXAoYXJnLCAibm9wZW50aXVtIikgPT0gMCkgewotCQlzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX1BTRSk7Ci0JfSBlbHNlIHsKLQkJLyogSWYgdGhlIHVzZXIgc3BlY2lmaWVzIG1lbW9yeSBzaXplLCB3ZQotCQkgKiBsaW1pdCB0aGUgQklPUy1wcm92aWRlZCBtZW1vcnkgbWFwIHRvCi0JCSAqIHRoYXQgc2l6ZS4gZXhhY3RtYXAgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQotCQkgKiB0aGUgZXhhY3QgbWFwLiBtZW09bnVtYmVyIGNhbiBiZSB1c2VkIHRvCi0JCSAqIHRyaW0gdGhlIGV4aXN0aW5nIG1lbW9yeSBtYXAuCi0JCSAqLwotCQl1bnNpZ25lZCBsb25nIGxvbmcgbWVtX3NpemU7Ci0KLQkJbWVtX3NpemUgPSBtZW1wYXJzZShhcmcsICZhcmcpOwotCQlsaW1pdF9yZWdpb25zKG1lbV9zaXplKTsKLQkJdXNlcl9kZWZpbmVkX21lbW1hcCA9IDE7Ci0JfQotCXJldHVybiAwOwotfQotZWFybHlfcGFyYW0oIm1lbSIsIHBhcnNlX21lbSk7Ci0KLSNpZmRlZiBDT05GSUdfUFJPQ19WTUNPUkUKLS8qIGVsZmNvcmVoZHI9IHNwZWNpZmllcyB0aGUgbG9jYXRpb24gb2YgZWxmIGNvcmUgaGVhZGVyCi0gKiBzdG9yZWQgYnkgdGhlIGNyYXNoZWQga2VybmVsLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV9lbGZjb3JlaGRyKGNoYXIgKmFyZykKLXsKLQlpZiAoIWFyZykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQllbGZjb3JlaGRyX2FkZHIgPSBtZW1wYXJzZShhcmcsICZhcmcpOwotCXJldHVybiAwOwotfQotZWFybHlfcGFyYW0oImVsZmNvcmVoZHIiLCBwYXJzZV9lbGZjb3JlaGRyKTsKLSNlbmRpZiAvKiBDT05GSUdfUFJPQ19WTUNPUkUgKi8KLQotLyoKLSAqIGhpZ2htZW09c2l6ZSBmb3JjZXMgaGlnaG1lbSB0byBiZSBleGFjdGx5ICdzaXplJyBieXRlcy4KLSAqIFRoaXMgd29ya3MgZXZlbiBvbiBib3hlcyB0aGF0IGhhdmUgbm8gaGlnaG1lbSBvdGhlcndpc2UuCi0gKiBUaGlzIGFsc28gd29ya3MgdG8gcmVkdWNlIGhpZ2htZW0gc2l6ZSBvbiBiaWdnZXIgYm94ZXMuCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX2hpZ2htZW0oY2hhciAqYXJnKQotewotCWlmICghYXJnKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWhpZ2htZW1fcGFnZXMgPSBtZW1wYXJzZShhcmcsICZhcmcpID4+IFBBR0VfU0hJRlQ7Ci0JcmV0dXJuIDA7Ci19Ci1lYXJseV9wYXJhbSgiaGlnaG1lbSIsIHBhcnNlX2hpZ2htZW0pOwotCi0vKgotICogdm1hbGxvYz1zaXplIGZvcmNlcyB0aGUgdm1hbGxvYyBhcmVhIHRvIGJlIGV4YWN0bHkgJ3NpemUnCi0gKiBieXRlcy4gVGhpcyBjYW4gYmUgdXNlZCB0byBpbmNyZWFzZSAob3IgZGVjcmVhc2UpIHRoZQotICogdm1hbGxvYyBhcmVhIC0gdGhlIGRlZmF1bHQgaXMgMTI4bS4KLSAqLwotc3RhdGljIGludCBfX2luaXQgcGFyc2Vfdm1hbGxvYyhjaGFyICphcmcpCi17Ci0JaWYgKCFhcmcpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JX19WTUFMTE9DX1JFU0VSVkUgPSBtZW1wYXJzZShhcmcsICZhcmcpOwotCXJldHVybiAwOwotfQotZWFybHlfcGFyYW0oInZtYWxsb2MiLCBwYXJzZV92bWFsbG9jKTsKLQotLyoKLSAqIHJlc2VydmV0b3A9c2l6ZSByZXNlcnZlcyBhIGhvbGUgYXQgdGhlIHRvcCBvZiB0aGUga2VybmVsIGFkZHJlc3Mgc3BhY2Ugd2hpY2gKLSAqIGEgaHlwZXJ2aXNvciBjYW4gbG9hZCBpbnRvIGxhdGVyLiAgTmVlZGVkIGZvciBkeW5hbWljYWxseSBsb2FkZWQgaHlwZXJ2aXNvcnMsCi0gKiBzbyByZWxvY2F0aW5nIHRoZSBmaXhtYXAgY2FuIGJlIGRvbmUgYmVmb3JlIHBhZ2luZyBpbml0aWFsaXphdGlvbi4KLSAqLwotc3RhdGljIGludCBfX2luaXQgcGFyc2VfcmVzZXJ2ZXRvcChjaGFyICphcmcpCi17Ci0JdW5zaWduZWQgbG9uZyBhZGRyZXNzOwotCi0JaWYgKCFhcmcpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JYWRkcmVzcyA9IG1lbXBhcnNlKGFyZywgJmFyZyk7Ci0JcmVzZXJ2ZV90b3BfYWRkcmVzcyhhZGRyZXNzKTsKLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJyZXNlcnZldG9wIiwgcGFyc2VfcmVzZXJ2ZXRvcCk7Ci0KLS8qCi0gKiBEZXRlcm1pbmUgbG93IGFuZCBoaWdoIG1lbW9yeSByYW5nZXM6Ci0gKi8KLXVuc2lnbmVkIGxvbmcgX19pbml0IGZpbmRfbWF4X2xvd19wZm4odm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuOwotCi0JbWF4X2xvd19wZm4gPSBtYXhfcGZuOwotCWlmIChtYXhfbG93X3BmbiA+IE1BWE1FTV9QRk4pIHsKLQkJaWYgKGhpZ2htZW1fcGFnZXMgPT0gLTEpCi0JCQloaWdobWVtX3BhZ2VzID0gbWF4X3BmbiAtIE1BWE1FTV9QRk47Ci0JCWlmIChoaWdobWVtX3BhZ2VzICsgTUFYTUVNX1BGTiA8IG1heF9wZm4pCi0JCQltYXhfcGZuID0gTUFYTUVNX1BGTiArIGhpZ2htZW1fcGFnZXM7Ci0JCWlmIChoaWdobWVtX3BhZ2VzICsgTUFYTUVNX1BGTiA+IG1heF9wZm4pIHsKLQkJCXByaW50aygib25seSAlbHVNQiBoaWdobWVtIHBhZ2VzIGF2YWlsYWJsZSwgaWdub3JpbmcgaGlnaG1lbSBzaXplIG9mICV1TUIuXG4iLCBwYWdlc190b19tYihtYXhfcGZuIC0gTUFYTUVNX1BGTiksIHBhZ2VzX3RvX21iKGhpZ2htZW1fcGFnZXMpKTsKLQkJCWhpZ2htZW1fcGFnZXMgPSAwOwotCQl9Ci0JCW1heF9sb3dfcGZuID0gTUFYTUVNX1BGTjsKLSNpZm5kZWYgQ09ORklHX0hJR0hNRU0KLQkJLyogTWF4aW11bSBtZW1vcnkgdXNhYmxlIGlzIHdoYXQgaXMgZGlyZWN0bHkgYWRkcmVzc2FibGUgKi8KLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiV2FybmluZyBvbmx5ICVsZE1CIHdpbGwgYmUgdXNlZC5cbiIsCi0JCQkJCU1BWE1FTT4+MjApOwotCQlpZiAobWF4X3BmbiA+IE1BWF9OT05QQUVfUEZOKQotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiVXNlIGEgSElHSE1FTTY0RyBlbmFibGVkIGtlcm5lbC5cbiIpOwotCQllbHNlCi0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJVc2UgYSBISUdITUVNIGVuYWJsZWQga2VybmVsLlxuIik7Ci0JCW1heF9wZm4gPSBNQVhNRU1fUEZOOwotI2Vsc2UgLyogIUNPTkZJR19ISUdITUVNICovCi0jaWZuZGVmIENPTkZJR19ISUdITUVNNjRHCi0JCWlmIChtYXhfcGZuID4gTUFYX05PTlBBRV9QRk4pIHsKLQkJCW1heF9wZm4gPSBNQVhfTk9OUEFFX1BGTjsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIldhcm5pbmcgb25seSA0R0Igd2lsbCBiZSB1c2VkLlxuIik7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJVc2UgYSBISUdITUVNNjRHIGVuYWJsZWQga2VybmVsLlxuIik7Ci0JCX0KLSNlbmRpZiAvKiAhQ09ORklHX0hJR0hNRU02NEcgKi8KLSNlbmRpZiAvKiAhQ09ORklHX0hJR0hNRU0gKi8KLQl9IGVsc2UgewotCQlpZiAoaGlnaG1lbV9wYWdlcyA9PSAtMSkKLQkJCWhpZ2htZW1fcGFnZXMgPSAwOwotI2lmZGVmIENPTkZJR19ISUdITUVNCi0JCWlmIChoaWdobWVtX3BhZ2VzID49IG1heF9wZm4pIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiaGlnaG1lbSBzaXplIHNwZWNpZmllZCAoJXVNQikgaXMgYmlnZ2VyIHRoYW4gcGFnZXMgYXZhaWxhYmxlICglbHVNQikhLlxuIiwgcGFnZXNfdG9fbWIoaGlnaG1lbV9wYWdlcyksIHBhZ2VzX3RvX21iKG1heF9wZm4pKTsKLQkJCWhpZ2htZW1fcGFnZXMgPSAwOwotCQl9Ci0JCWlmIChoaWdobWVtX3BhZ2VzKSB7Ci0JCQlpZiAobWF4X2xvd19wZm4taGlnaG1lbV9wYWdlcyA8IDY0KjEwMjQqMTAyNC9QQUdFX1NJWkUpewotCQkJCXByaW50ayhLRVJOX0VSUiAiaGlnaG1lbSBzaXplICV1TUIgcmVzdWx0cyBpbiBzbWFsbGVyIHRoYW4gNjRNQiBsb3dtZW0sIGlnbm9yaW5nIGl0LlxuIiwgcGFnZXNfdG9fbWIoaGlnaG1lbV9wYWdlcykpOwotCQkJCWhpZ2htZW1fcGFnZXMgPSAwOwotCQkJfQotCQkJbWF4X2xvd19wZm4gLT0gaGlnaG1lbV9wYWdlczsKLQkJfQotI2Vsc2UKLQkJaWYgKGhpZ2htZW1fcGFnZXMpCi0JCQlwcmludGsoS0VSTl9FUlIgImlnbm9yaW5nIGhpZ2htZW0gc2l6ZSBvbiBub24taGlnaG1lbSBrZXJuZWwhXG4iKTsKLSNlbmRpZgotCX0KLQlyZXR1cm4gbWF4X2xvd19wZm47Ci19Ci0KLSNkZWZpbmUgQklPU19MT1dNRU1fS0lMT0JZVEVTIDB4NDEzCi0KLS8qCi0gKiBUaGUgQklPUyBwbGFjZXMgdGhlIEVCREEvWEJEQSBhdCB0aGUgdG9wIG9mIGNvbnZlbnRpb25hbAotICogbWVtb3J5LCBhbmQgdXN1YWxseSBkZWNyZWFzZXMgdGhlIHJlcG9ydGVkIGFtb3VudCBvZgotICogY29udmVudGlvbmFsIG1lbW9yeSAoaW50IDB4MTIpIHRvby4gVGhpcyBhbHNvIGNvbnRhaW5zIGEKLSAqIHdvcmthcm91bmQgZm9yIERlbGwgc3lzdGVtcyB0aGF0IG5lZ2xlY3QgdG8gcmVzZXJ2ZSBFQkRBLgotICogVGhlIHNhbWUgd29ya2Fyb3VuZCBhbHNvIGF2b2lkcyBhIHByb2JsZW0gd2l0aCB0aGUgQU1ENzY4TVBYCi0gKiBjaGlwc2V0OiByZXNlcnZlIGEgcGFnZSBiZWZvcmUgVkdBIHRvIHByZXZlbnQgUENJIHByZWZldGNoCi0gKiBpbnRvIGl0IChlcnJhdGEgIzU2KS4gVXN1YWxseSB0aGUgcGFnZSBpcyByZXNlcnZlZCBhbnl3YXlzLAotICogdW5sZXNzIHlvdSBoYXZlIG5vIFBTLzIgbW91c2UgcGx1Z2dlZCBpbi4KLSAqLwotc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfZWJkYV9yZWdpb24odm9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgbG93bWVtLCBlYmRhX2FkZHI7Ci0KLQkvKiBUbyBkZXRlcm1pbmUgdGhlIHBvc2l0aW9uIG9mIHRoZSBFQkRBIGFuZCB0aGUgKi8KLQkvKiBlbmQgb2YgY29udmVudGlvbmFsIG1lbW9yeSwgd2UgbmVlZCB0byBsb29rIGF0ICovCi0JLyogdGhlIEJJT1MgZGF0YSBhcmVhLiBJbiBhIHBhcmF2aXJ0dWFsIGVudmlyb25tZW50ICovCi0JLyogdGhhdCBhcmVhIGlzIGFic2VudC4gV2UnbGwganVzdCBoYXZlIHRvIGFzc3VtZSAqLwotCS8qIHRoYXQgdGhlIHBhcmF2aXJ0IGNhc2UgY2FuIGhhbmRsZSBtZW1vcnkgc2V0dXAgKi8KLQkvKiBjb3JyZWN0bHksIHdpdGhvdXQgb3VyIGhlbHAuICovCi0JaWYgKHBhcmF2aXJ0X2VuYWJsZWQoKSkKLQkJcmV0dXJuOwotCi0JLyogZW5kIG9mIGxvdyAoY29udmVudGlvbmFsKSBtZW1vcnkgKi8KLQlsb3dtZW0gPSAqKHVuc2lnbmVkIHNob3J0ICopX192YShCSU9TX0xPV01FTV9LSUxPQllURVMpOwotCWxvd21lbSA8PD0gMTA7Ci0KLQkvKiBzdGFydCBvZiBFQkRBIGFyZWEgKi8KLQllYmRhX2FkZHIgPSBnZXRfYmlvc19lYmRhKCk7Ci0KLQkvKiBGaXh1cDogYmlvcyBwdXRzIGFuIEVCREEgaW4gdGhlIHRvcCA2NEsgc2VnbWVudCAqLwotCS8qIG9mIGNvbnZlbnRpb25hbCBtZW1vcnksIGJ1dCBkb2VzIG5vdCBhZGp1c3QgbG93bWVtLiAqLwotCWlmICgobG93bWVtIC0gZWJkYV9hZGRyKSA8PSAweDEwMDAwKQotCQlsb3dtZW0gPSBlYmRhX2FkZHI7Ci0KLQkvKiBGaXh1cDogYmlvcyBkb2VzIG5vdCByZXBvcnQgYW4gRUJEQSBhdCBhbGwuICovCi0JLyogU29tZSBvbGQgRGVsbHMgc2VlbSB0byBuZWVkIDRrIGFueWhvdyAoYnVnemlsbGEgMjk5MCkgKi8KLQlpZiAoKGViZGFfYWRkciA9PSAwKSAmJiAobG93bWVtID49IDB4OWYwMDApKQotCQlsb3dtZW0gPSAweDlmMDAwOwotCi0JLyogUGFyYW5vaWE6IHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dC4uLiAqLwotCWlmICgobG93bWVtID09IDApIHx8IChsb3dtZW0gPj0gMHgxMDAwMDApKQotCQlsb3dtZW0gPSAweDlmMDAwOwotCi0JLyogcmVzZXJ2ZSBhbGwgbWVtb3J5IGJldHdlZW4gbG93bWVtIGFuZCB0aGUgMU1CIG1hcmsgKi8KLQlyZXNlcnZlX2Jvb3RtZW0obG93bWVtLCAweDEwMDAwMCAtIGxvd21lbSwgQk9PVE1FTV9ERUZBVUxUKTsKLX0KLQotI2lmbmRlZiBDT05GSUdfTkVFRF9NVUxUSVBMRV9OT0RFUwotc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2Jvb3RtZW1fYWxsb2NhdG9yKHZvaWQpOwotc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IHNldHVwX21lbW9yeSh2b2lkKQotewotCS8qCi0JICogcGFydGlhbGx5IHVzZWQgcGFnZXMgYXJlIG5vdCB1c2FibGUgLSB0aHVzCi0JICogd2UgYXJlIHJvdW5kaW5nIHVwd2FyZHM6Ci0JICovCi0JbWluX2xvd19wZm4gPSBQRk5fVVAoaW5pdF9wZ190YWJsZXNfZW5kKTsKLQotCW1heF9sb3dfcGZuID0gZmluZF9tYXhfbG93X3BmbigpOwotCi0jaWZkZWYgQ09ORklHX0hJR0hNRU0KLQloaWdoc3RhcnRfcGZuID0gaGlnaGVuZF9wZm4gPSBtYXhfcGZuOwotCWlmIChtYXhfcGZuID4gbWF4X2xvd19wZm4pIHsKLQkJaGlnaHN0YXJ0X3BmbiA9IG1heF9sb3dfcGZuOwotCX0KLQlwcmludGsoS0VSTl9OT1RJQ0UgIiVsZE1CIEhJR0hNRU0gYXZhaWxhYmxlLlxuIiwKLQkJcGFnZXNfdG9fbWIoaGlnaGVuZF9wZm4gLSBoaWdoc3RhcnRfcGZuKSk7Ci0JbnVtX3BoeXNwYWdlcyA9IGhpZ2hlbmRfcGZuOwotCWhpZ2hfbWVtb3J5ID0gKHZvaWQgKikgX192YShoaWdoc3RhcnRfcGZuICogUEFHRV9TSVpFIC0gMSkgKyAxOwotI2Vsc2UKLQludW1fcGh5c3BhZ2VzID0gbWF4X2xvd19wZm47Ci0JaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKG1heF9sb3dfcGZuICogUEFHRV9TSVpFIC0gMSkgKyAxOwotI2VuZGlmCi0jaWZkZWYgQ09ORklHX0ZMQVRNRU0KLQltYXhfbWFwbnIgPSBudW1fcGh5c3BhZ2VzOwotI2VuZGlmCi0JcHJpbnRrKEtFUk5fTk9USUNFICIlbGRNQiBMT1dNRU0gYXZhaWxhYmxlLlxuIiwKLQkJCXBhZ2VzX3RvX21iKG1heF9sb3dfcGZuKSk7Ci0KLQlzZXR1cF9ib290bWVtX2FsbG9jYXRvcigpOwotCi0JcmV0dXJuIG1heF9sb3dfcGZuOwotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQgem9uZV9zaXplc19pbml0KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBtYXhfem9uZV9wZm5zW01BWF9OUl9aT05FU107Ci0JbWVtc2V0KG1heF96b25lX3BmbnMsIDAsIHNpemVvZihtYXhfem9uZV9wZm5zKSk7Ci0JbWF4X3pvbmVfcGZuc1taT05FX0RNQV0gPQotCQl2aXJ0X3RvX3BoeXMoKGNoYXIgKilNQVhfRE1BX0FERFJFU1MpID4+IFBBR0VfU0hJRlQ7Ci0JbWF4X3pvbmVfcGZuc1taT05FX05PUk1BTF0gPSBtYXhfbG93X3BmbjsKLSNpZmRlZiBDT05GSUdfSElHSE1FTQotCW1heF96b25lX3BmbnNbWk9ORV9ISUdITUVNXSA9IGhpZ2hlbmRfcGZuOwotCWFkZF9hY3RpdmVfcmFuZ2UoMCwgMCwgaGlnaGVuZF9wZm4pOwotI2Vsc2UKLQlhZGRfYWN0aXZlX3JhbmdlKDAsIDAsIG1heF9sb3dfcGZuKTsKLSNlbmRpZgotCi0JZnJlZV9hcmVhX2luaXRfbm9kZXMobWF4X3pvbmVfcGZucyk7Ci19Ci0jZWxzZQotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19pbml0IHNldHVwX21lbW9yeSh2b2lkKTsKLWV4dGVybiB2b2lkIHpvbmVfc2l6ZXNfaW5pdCh2b2lkKTsKLSNlbmRpZiAvKiAhQ09ORklHX05FRURfTVVMVElQTEVfTk9ERVMgKi8KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGxvbmcgZ2V0X3RvdGFsX21lbSh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbDsKLQotCXRvdGFsID0gbWF4X2xvd19wZm4gLSBtaW5fbG93X3BmbjsKLSNpZmRlZiBDT05GSUdfSElHSE1FTQotCXRvdGFsICs9IGhpZ2hlbmRfcGZuIC0gaGlnaHN0YXJ0X3BmbjsKLSNlbmRpZgotCi0JcmV0dXJuIHRvdGFsIDw8IFBBR0VfU0hJRlQ7Ci19Ci0KLSNpZmRlZiBDT05GSUdfS0VYRUMKLXN0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX2NyYXNoa2VybmVsKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsX21lbTsKLQl1bnNpZ25lZCBsb25nIGxvbmcgY3Jhc2hfc2l6ZSwgY3Jhc2hfYmFzZTsKLQlpbnQgcmV0OwotCi0JdG90YWxfbWVtID0gZ2V0X3RvdGFsX21lbSgpOwotCi0JcmV0ID0gcGFyc2VfY3Jhc2hrZXJuZWwoYm9vdF9jb21tYW5kX2xpbmUsIHRvdGFsX21lbSwKLQkJCSZjcmFzaF9zaXplLCAmY3Jhc2hfYmFzZSk7Ci0JaWYgKHJldCA9PSAwICYmIGNyYXNoX3NpemUgPiAwKSB7Ci0JCWlmIChjcmFzaF9iYXNlID4gMCkgewotCQkJcHJpbnRrKEtFUk5fSU5GTyAiUmVzZXJ2aW5nICVsZE1CIG9mIG1lbW9yeSBhdCAlbGRNQiAiCi0JCQkJCSJmb3IgY3Jhc2hrZXJuZWwgKFN5c3RlbSBSQU06ICVsZE1CKVxuIiwKLQkJCQkJKHVuc2lnbmVkIGxvbmcpKGNyYXNoX3NpemUgPj4gMjApLAotCQkJCQkodW5zaWduZWQgbG9uZykoY3Jhc2hfYmFzZSA+PiAyMCksCi0JCQkJCSh1bnNpZ25lZCBsb25nKSh0b3RhbF9tZW0gPj4gMjApKTsKLQotCQkJaWYgKHJlc2VydmVfYm9vdG1lbShjcmFzaF9iYXNlLCBjcmFzaF9zaXplLAotCQkJCQlCT09UTUVNX0VYQ0xVU0lWRSkgPCAwKSB7Ci0JCQkJcHJpbnRrKEtFUk5fSU5GTyAiY3Jhc2hrZXJuZWwgcmVzZXJ2YXRpb24gIgotCQkJCQkiZmFpbGVkIC0gbWVtb3J5IGlzIGluIHVzZVxuIik7Ci0JCQkJcmV0dXJuOwotCQkJfQotCi0JCQljcmFzaGtfcmVzLnN0YXJ0ID0gY3Jhc2hfYmFzZTsKLQkJCWNyYXNoa19yZXMuZW5kICAgPSBjcmFzaF9iYXNlICsgY3Jhc2hfc2l6ZSAtIDE7Ci0JCX0gZWxzZQotCQkJcHJpbnRrKEtFUk5fSU5GTyAiY3Jhc2hrZXJuZWwgcmVzZXJ2YXRpb24gZmFpbGVkIC0gIgotCQkJCQkieW91IGhhdmUgdG8gc3BlY2lmeSBhIGJhc2UgYWRkcmVzc1xuIik7Ci0JfQotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgcmVzZXJ2ZV9jcmFzaGtlcm5lbCh2b2lkKQote30KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECi0KLXN0YXRpYyBib29sIGRvX3JlbG9jYXRlX2luaXRyZCA9IGZhbHNlOwotCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9pbml0cmQodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfaW1hZ2UgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19pbWFnZTsKLQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfc2l6ZSAgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplOwotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19lbmQgICA9IHJhbWRpc2tfaW1hZ2UgKyByYW1kaXNrX3NpemU7Ci0JdW5zaWduZWQgbG9uZyBlbmRfb2ZfbG93bWVtID0gbWF4X2xvd19wZm4gPDwgUEFHRV9TSElGVDsKLQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfaGVyZTsKLQotCWluaXRyZF9zdGFydCA9IDA7Ci0KLQlpZiAoIWJvb3RfcGFyYW1zLmhkci50eXBlX29mX2xvYWRlciB8fAotCSAgICAhcmFtZGlza19pbWFnZSB8fCAhcmFtZGlza19zaXplKQotCQlyZXR1cm47CQkvKiBObyBpbml0cmQgcHJvdmlkZWQgYnkgYm9vdGxvYWRlciAqLwotCi0JaWYgKHJhbWRpc2tfZW5kIDwgcmFtZGlza19pbWFnZSkgewotCQlwcmludGsoS0VSTl9FUlIgImluaXRyZCB3cmFwcyBhcm91bmQgZW5kIG9mIG1lbW9yeSwgIgotCQkgICAgICAgImRpc2FibGluZyBpbml0cmRcbiIpOwotCQlyZXR1cm47Ci0JfQotCWlmIChyYW1kaXNrX3NpemUgPj0gZW5kX29mX2xvd21lbS8yKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiaW5pdHJkIHRvbyBsYXJnZSB0byBoYW5kbGUsICIKLQkJICAgICAgICJkaXNhYmxpbmcgaW5pdHJkXG4iKTsKLQkJcmV0dXJuOwotCX0KLQlpZiAocmFtZGlza19lbmQgPD0gZW5kX29mX2xvd21lbSkgewotCQkvKiBBbGwgaW4gbG93bWVtLCBlYXN5IGNhc2UgKi8KLQkJcmVzZXJ2ZV9ib290bWVtKHJhbWRpc2tfaW1hZ2UsIHJhbWRpc2tfc2l6ZSwgQk9PVE1FTV9ERUZBVUxUKTsKLQkJaW5pdHJkX3N0YXJ0ID0gcmFtZGlza19pbWFnZSArIFBBR0VfT0ZGU0VUOwotCQlpbml0cmRfZW5kID0gaW5pdHJkX3N0YXJ0K3JhbWRpc2tfc2l6ZTsKLQkJcmV0dXJuOwotCX0KLQotCS8qIFdlIG5lZWQgdG8gbW92ZSB0aGUgaW5pdHJkIGRvd24gaW50byBsb3dtZW0gKi8KLQlyYW1kaXNrX2hlcmUgPSAoZW5kX29mX2xvd21lbSAtIHJhbWRpc2tfc2l6ZSkgJiBQQUdFX01BU0s7Ci0KLQkvKiBOb3RlOiB0aGlzIGluY2x1ZGVzIGFsbCB0aGUgbG93bWVtIGN1cnJlbnRseSBvY2N1cGllZCBieQotCSAgIHRoZSBpbml0cmQsIHdlIHJlbHkgb24gdGhhdCBmYWN0IHRvIGtlZXAgdGhlIGRhdGEgaW50YWN0LiAqLwotCXJlc2VydmVfYm9vdG1lbShyYW1kaXNrX2hlcmUsIHJhbWRpc2tfc2l6ZSwgQk9PVE1FTV9ERUZBVUxUKTsKLQlpbml0cmRfc3RhcnQgPSByYW1kaXNrX2hlcmUgKyBQQUdFX09GRlNFVDsKLQlpbml0cmRfZW5kICAgPSBpbml0cmRfc3RhcnQgKyByYW1kaXNrX3NpemU7Ci0KLQlkb19yZWxvY2F0ZV9pbml0cmQgPSB0cnVlOwotfQotCi0jZGVmaW5lIE1BWF9NQVBfQ0hVTksJKE5SX0ZJWF9CVE1BUFMgPDwgUEFHRV9TSElGVCkKLQotc3RhdGljIHZvaWQgX19pbml0IHJlbG9jYXRlX2luaXRyZCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19pbWFnZSA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlOwotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19zaXplICA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX3NpemU7Ci0JdW5zaWduZWQgbG9uZyBlbmRfb2ZfbG93bWVtID0gbWF4X2xvd19wZm4gPDwgUEFHRV9TSElGVDsKLQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfaGVyZTsKLQl1bnNpZ25lZCBsb25nIHNsb3AsIGNsZW4sIG1hcGFkZHI7Ci0JY2hhciAqcCwgKnE7Ci0KLQlpZiAoIWRvX3JlbG9jYXRlX2luaXRyZCkKLQkJcmV0dXJuOwotCi0JcmFtZGlza19oZXJlID0gaW5pdHJkX3N0YXJ0IC0gUEFHRV9PRkZTRVQ7Ci0KLQlxID0gKGNoYXIgKilpbml0cmRfc3RhcnQ7Ci0KLQkvKiBDb3B5IGFueSBsb3dtZW0gcG9ydGlvbiBvZiB0aGUgaW5pdHJkICovCi0JaWYgKHJhbWRpc2tfaW1hZ2UgPCBlbmRfb2ZfbG93bWVtKSB7Ci0JCWNsZW4gPSBlbmRfb2ZfbG93bWVtIC0gcmFtZGlza19pbWFnZTsKLQkJcCA9IChjaGFyICopX192YShyYW1kaXNrX2ltYWdlKTsKLQkJbWVtY3B5KHEsIHAsIGNsZW4pOwotCQlxICs9IGNsZW47Ci0JCXJhbWRpc2tfaW1hZ2UgKz0gY2xlbjsKLQkJcmFtZGlza19zaXplICAtPSBjbGVuOwotCX0KLQotCS8qIENvcHkgdGhlIGhpZ2htZW0gcG9ydGlvbiBvZiB0aGUgaW5pdHJkICovCi0Jd2hpbGUgKHJhbWRpc2tfc2l6ZSkgewotCQlzbG9wID0gcmFtZGlza19pbWFnZSAmIH5QQUdFX01BU0s7Ci0JCWNsZW4gPSByYW1kaXNrX3NpemU7Ci0JCWlmIChjbGVuID4gTUFYX01BUF9DSFVOSy1zbG9wKQotCQkJY2xlbiA9IE1BWF9NQVBfQ0hVTkstc2xvcDsKLQkJbWFwYWRkciA9IHJhbWRpc2tfaW1hZ2UgJiBQQUdFX01BU0s7Ci0JCXAgPSBlYXJseV9pb3JlbWFwKG1hcGFkZHIsIGNsZW4rc2xvcCk7Ci0JCW1lbWNweShxLCBwK3Nsb3AsIGNsZW4pOwotCQllYXJseV9pb3VubWFwKHAsIGNsZW4rc2xvcCk7Ci0JCXEgKz0gY2xlbjsKLQkJcmFtZGlza19pbWFnZSArPSBjbGVuOwotCQlyYW1kaXNrX3NpemUgIC09IGNsZW47Ci0JfQotfQotCi0jZW5kaWYgLyogQ09ORklHX0JMS19ERVZfSU5JVFJEICovCi0KLXZvaWQgX19pbml0IHNldHVwX2Jvb3RtZW1fYWxsb2NhdG9yKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBib290bWFwX3NpemU7Ci0JLyoKLQkgKiBJbml0aWFsaXplIHRoZSBib290LXRpbWUgYWxsb2NhdG9yICh3aXRoIGxvdyBtZW1vcnkgb25seSk6Ci0JICovCi0JYm9vdG1hcF9zaXplID0gaW5pdF9ib290bWVtKG1pbl9sb3dfcGZuLCBtYXhfbG93X3Bmbik7Ci0KLQlyZWdpc3Rlcl9ib290bWVtX2xvd19wYWdlcyhtYXhfbG93X3Bmbik7Ci0KLQkvKgotCSAqIFJlc2VydmUgdGhlIGJvb3RtZW0gYml0bWFwIGl0c2VsZiBhcyB3ZWxsLiBXZSBkbyB0aGlzIGluIHR3bwotCSAqIHN0ZXBzIChmaXJzdCBzdGVwIHdhcyBpbml0X2Jvb3RtZW0oKSkgYmVjYXVzZSB0aGlzIGNhdGNoZXMKLQkgKiB0aGUgKHZlcnkgdW5saWtlbHkpIGNhc2Ugb2YgdXMgYWNjaWRlbnRhbGx5IGluaXRpYWxpemluZyB0aGUKLQkgKiBib290bWVtIGFsbG9jYXRvciB3aXRoIGFuIGludmFsaWQgUkFNIGFyZWEuCi0JICovCi0JcmVzZXJ2ZV9ib290bWVtKF9fcGFfc3ltYm9sKF90ZXh0KSwgKFBGTl9QSFlTKG1pbl9sb3dfcGZuKSArCi0JCQkgYm9vdG1hcF9zaXplICsgUEFHRV9TSVpFLTEpIC0gX19wYV9zeW1ib2woX3RleHQpLAotCQkJIEJPT1RNRU1fREVGQVVMVCk7Ci0KLQkvKgotCSAqIHJlc2VydmUgcGh5c2ljYWwgcGFnZSAwIC0gaXQncyBhIHNwZWNpYWwgQklPUyBwYWdlIG9uIG1hbnkgYm94ZXMsCi0JICogZW5hYmxpbmcgY2xlYW4gcmVib290cywgU01QIG9wZXJhdGlvbiwgbGFwdG9wIGZ1bmN0aW9ucy4KLQkgKi8KLQlyZXNlcnZlX2Jvb3RtZW0oMCwgUEFHRV9TSVpFLCBCT09UTUVNX0RFRkFVTFQpOwotCi0JLyogcmVzZXJ2ZSBFQkRBIHJlZ2lvbiAqLwotCXJlc2VydmVfZWJkYV9yZWdpb24oKTsKLQotI2lmZGVmIENPTkZJR19TTVAKLQkvKgotCSAqIEJ1dCBmaXJzdCBwaW5jaCBhIGZldyBmb3IgdGhlIHN0YWNrL3RyYW1wb2xpbmUgc3R1ZmYKLQkgKiBGSVhNRTogRG9uJ3QgbmVlZCB0aGUgZXh0cmEgcGFnZSBhdCA0SywgYnV0IG5lZWQgdG8gZml4Ci0JICogdHJhbXBvbGluZSBiZWZvcmUgcmVtb3ZpbmcgaXQuIChzZWUgdGhlIEdEVCBzdHVmZikKLQkgKi8KLQlyZXNlcnZlX2Jvb3RtZW0oUEFHRV9TSVpFLCBQQUdFX1NJWkUsIEJPT1RNRU1fREVGQVVMVCk7Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfQUNQSV9TTEVFUAotCS8qCi0JICogUmVzZXJ2ZSBsb3cgbWVtb3J5IHJlZ2lvbiBmb3Igc2xlZXAgc3VwcG9ydC4KLQkgKi8KLQlhY3BpX3Jlc2VydmVfYm9vdG1lbSgpOwotI2VuZGlmCi0jaWZkZWYgQ09ORklHX1g4Nl9GSU5EX1NNUF9DT05GSUcKLQkvKgotCSAqIEZpbmQgYW5kIHJlc2VydmUgcG9zc2libGUgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uOgotCSAqLwotCWZpbmRfc21wX2NvbmZpZygpOwotI2VuZGlmCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECi0JcmVzZXJ2ZV9pbml0cmQoKTsKLSNlbmRpZgotCW51bWFfa3ZhX3Jlc2VydmUoKTsKLQlyZXNlcnZlX2NyYXNoa2VybmVsKCk7Ci0KLQlyZXNlcnZlX2liZnRfcmVnaW9uKCk7Ci19Ci0KLS8qCi0gKiBUaGUgbm9kZSAwIHBnZGF0IGlzIGluaXRpYWxpemVkIGJlZm9yZSBhbGwgb2YgdGhlc2UgYmVjYXVzZQotICogaXQncyBuZWVkZWQgZm9yIGJvb3RtZW0uICBub2RlPjAgcGdkYXRzIGhhdmUgdGhlaXIgdmlydHVhbAotICogc3BhY2UgYWxsb2NhdGVkIGJlZm9yZSB0aGUgcGFnZXRhYmxlcyBhcmUgaW4gcGxhY2UgdG8gYWNjZXNzCi0gKiB0aGVtLCBzbyB0aGV5IGNhbid0IGJlIGNsZWFyZWQgdGhlbi4KLSAqCi0gKiBUaGlzIHNob3VsZCBhbGwgY29tcGlsZSBkb3duIHRvIG5vdGhpbmcgd2hlbiBOVU1BIGlzIG9mZi4KLSAqLwotc3RhdGljIHZvaWQgX19pbml0IHJlbWFwcGVkX3BnZGF0X2luaXQodm9pZCkKLXsKLQlpbnQgbmlkOwotCi0JZm9yX2VhY2hfb25saW5lX25vZGUobmlkKSB7Ci0JCWlmIChuaWQgIT0gMCkKLQkJCW1lbXNldChOT0RFX0RBVEEobmlkKSwgMCwgc2l6ZW9mKHN0cnVjdCBwZ2xpc3RfZGF0YSkpOwotCX0KLX0KLQotI2lmZGVmIENPTkZJR19NQ0EKLXN0YXRpYyB2b2lkIHNldF9tY2FfYnVzKGludCB4KQotewotCU1DQV9idXMgPSB4OwotfQotI2Vsc2UKLXN0YXRpYyB2b2lkIHNldF9tY2FfYnVzKGludCB4KSB7IH0KLSNlbmRpZgotCi0vKiBPdmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgaWYgQ09ORklHX1BBUkFWSVJUICovCi1jaGFyICogX19pbml0IF9fYXR0cmlidXRlX18oKHdlYWspKSBtZW1vcnlfc2V0dXAodm9pZCkKLXsKLQlyZXR1cm4gbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAoKTsKLX0KLQotI2lmZGVmIENPTkZJR19OVU1BCi0vKgotICogSW4gdGhlIGdvbGRlbiBkYXksIHdoZW4gZXZlcnl0aGluZyBhbW9uZyBpMzg2IGFuZCB4ODZfNjQgd2lsbCBiZQotICogaW50ZWdyYXRlZCwgdGhpcyB3aWxsIG5vdCBsaXZlIGhlcmUKLSAqLwotdm9pZCAqeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHI7Ci1pbnQgeDg2X2NwdV90b19ub2RlX21hcF9pbml0W05SX0NQVVNdID0gewotCVswIC4uLiBOUl9DUFVTLTFdID0gTlVNQV9OT19OT0RFCi19OwotREVGSU5FX1BFUl9DUFUoaW50LCB4ODZfY3B1X3RvX25vZGVfbWFwKSA9IE5VTUFfTk9fTk9ERTsKLSNlbmRpZgotCi0vKgotICogRGV0ZXJtaW5lIGlmIHdlIHdlcmUgbG9hZGVkIGJ5IGFuIEVGSSBsb2FkZXIuICBJZiBzbywgdGhlbiB3ZSBoYXZlIGFsc28gYmVlbgotICogcGFzc2VkIHRoZSBlZmkgbWVtbWFwLCBzeXN0YWIsIGV0Yy4sIHNvIHdlIHNob3VsZCB1c2UgdGhlc2UgZGF0YSBzdHJ1Y3R1cmVzCi0gKiBmb3IgaW5pdGlhbGl6YXRpb24uICBOb3RlLCB0aGUgZWZpIGluaXQgY29kZSBwYXRoIGlzIGRldGVybWluZWQgYnkgdGhlCi0gKiBnbG9iYWwgZWZpX2VuYWJsZWQuIFRoaXMgYWxsb3dzIHRoZSBzYW1lIGtlcm5lbCBpbWFnZSB0byBiZSB1c2VkIG9uIGV4aXN0aW5nCi0gKiBzeXN0ZW1zICh3aXRoIGEgdHJhZGl0aW9uYWwgQklPUykgYXMgd2VsbCBhcyBvbiBFRkkgc3lzdGVtcy4KLSAqLwotdm9pZCBfX2luaXQgc2V0dXBfYXJjaChjaGFyICoqY21kbGluZV9wKQotewotCXVuc2lnbmVkIGxvbmcgbWF4X2xvd19wZm47Ci0KLQltZW1jcHkoJmJvb3RfY3B1X2RhdGEsICZuZXdfY3B1X2RhdGEsIHNpemVvZihuZXdfY3B1X2RhdGEpKTsKLQlwcmVfc2V0dXBfYXJjaF9ob29rKCk7Ci0JZWFybHlfY3B1X2luaXQoKTsKLQllYXJseV9pb3JlbWFwX2luaXQoKTsKLQotI2lmZGVmIENPTkZJR19FRkkKLQlpZiAoIXN0cm5jbXAoKGNoYXIgKikmYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX2xvYWRlcl9zaWduYXR1cmUsCi0JCSAgICAgIkVMMzIiLCA0KSkKLQkJZWZpX2VuYWJsZWQgPSAxOwotI2VuZGlmCi0KLQlST09UX0RFViA9IG9sZF9kZWNvZGVfZGV2KGJvb3RfcGFyYW1zLmhkci5yb290X2Rldik7Ci0Jc2NyZWVuX2luZm8gPSBib290X3BhcmFtcy5zY3JlZW5faW5mbzsKLQllZGlkX2luZm8gPSBib290X3BhcmFtcy5lZGlkX2luZm87Ci0JYXBtX2luZm8uYmlvcyA9IGJvb3RfcGFyYW1zLmFwbV9iaW9zX2luZm87Ci0JaXN0X2luZm8gPSBib290X3BhcmFtcy5pc3RfaW5mbzsKLQlzYXZlZF92aWRlb19tb2RlID0gYm9vdF9wYXJhbXMuaGRyLnZpZF9tb2RlOwotCWlmKCBib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS5sZW5ndGggIT0gMCApIHsKLQkJc2V0X21jYV9idXMoYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUudGFibGVbM10gJiAweDIpOwotCQltYWNoaW5lX2lkID0gYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUudGFibGVbMF07Ci0JCW1hY2hpbmVfc3VibW9kZWxfaWQgPSBib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS50YWJsZVsxXTsKLQkJQklPU19yZXZpc2lvbiA9IGJvb3RfcGFyYW1zLnN5c19kZXNjX3RhYmxlLnRhYmxlWzJdOwotCX0KLQlib290bG9hZGVyX3R5cGUgPSBib290X3BhcmFtcy5oZHIudHlwZV9vZl9sb2FkZXI7Ci0KLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9SQU0KLQlyZF9pbWFnZV9zdGFydCA9IGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfSU1BR0VfU1RBUlRfTUFTSzsKLQlyZF9wcm9tcHQgPSAoKGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfUFJPTVBUX0ZMQUcpICE9IDApOwotCXJkX2RvbG9hZCA9ICgoYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19MT0FEX0ZMQUcpICE9IDApOwotI2VuZGlmCi0JQVJDSF9TRVRVUAotCi0JcHJpbnRrKEtFUk5fSU5GTyAiQklPUy1wcm92aWRlZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7Ci0JcHJpbnRfbWVtb3J5X21hcChtZW1vcnlfc2V0dXAoKSk7Ci0KLQljb3B5X2VkZCgpOwotCi0JaWYgKCFib290X3BhcmFtcy5oZHIucm9vdF9mbGFncykKLQkJcm9vdF9tb3VudGZsYWdzICY9IH5NU19SRE9OTFk7Ci0JaW5pdF9tbS5zdGFydF9jb2RlID0gKHVuc2lnbmVkIGxvbmcpIF90ZXh0OwotCWluaXRfbW0uZW5kX2NvZGUgPSAodW5zaWduZWQgbG9uZykgX2V0ZXh0OwotCWluaXRfbW0uZW5kX2RhdGEgPSAodW5zaWduZWQgbG9uZykgX2VkYXRhOwotCWluaXRfbW0uYnJrID0gaW5pdF9wZ190YWJsZXNfZW5kICsgUEFHRV9PRkZTRVQ7Ci0KLQljb2RlX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKF90ZXh0KTsKLQljb2RlX3Jlc291cmNlLmVuZCA9IHZpcnRfdG9fcGh5cyhfZXRleHQpLTE7Ci0JZGF0YV9yZXNvdXJjZS5zdGFydCA9IHZpcnRfdG9fcGh5cyhfZXRleHQpOwotCWRhdGFfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKF9lZGF0YSktMTsKLQlic3NfcmVzb3VyY2Uuc3RhcnQgPSB2aXJ0X3RvX3BoeXMoJl9fYnNzX3N0YXJ0KTsKLQlic3NfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKCZfX2Jzc19zdG9wKS0xOwotCi0JcGFyc2VfZWFybHlfcGFyYW0oKTsKLQotCWlmICh1c2VyX2RlZmluZWRfbWVtbWFwKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gInVzZXItZGVmaW5lZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7Ci0JCXByaW50X21lbW9yeV9tYXAoInVzZXIiKTsKLQl9Ci0KLQlzdHJsY3B5KGNvbW1hbmRfbGluZSwgYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORV9TSVpFKTsKLQkqY21kbGluZV9wID0gY29tbWFuZF9saW5lOwotCi0JaWYgKGVmaV9lbmFibGVkKQotCQllZmlfaW5pdCgpOwotCi0JLyogdXBkYXRlIGU4MjAgZm9yIG1lbW9yeSBub3QgY292ZXJlZCBieSBXQiBNVFJScyAqLwotCXByb3BhZ2F0ZV9lODIwX21hcCgpOwotCW10cnJfYnBfaW5pdCgpOwotCWlmIChtdHJyX3RyaW1fdW5jYWNoZWRfbWVtb3J5KG1heF9wZm4pKQotCQlwcm9wYWdhdGVfZTgyMF9tYXAoKTsKLQotCW1heF9sb3dfcGZuID0gc2V0dXBfbWVtb3J5KCk7Ci0KLSNpZmRlZiBDT05GSUdfS1ZNX0NMT0NLCi0Ja3ZtY2xvY2tfaW5pdCgpOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVk1JCi0JLyoKLQkgKiBNdXN0IGJlIGFmdGVyIG1heF9sb3dfcGZuIGlzIGRldGVybWluZWQsIGFuZCBiZWZvcmUga2VybmVsCi0JICogcGFnZXRhYmxlcyBhcmUgc2V0dXAuCi0JICovCi0Jdm1pX2luaXQoKTsKLSNlbmRpZgotCWt2bV9ndWVzdF9pbml0KCk7Ci0KLQkvKgotCSAqIE5PVEU6IGJlZm9yZSB0aGlzIHBvaW50IF9ub2JvZHlfIGlzIGFsbG93ZWQgdG8gYWxsb2NhdGUKLQkgKiBhbnkgbWVtb3J5IHVzaW5nIHRoZSBib290bWVtIGFsbG9jYXRvci4gIEFsdGhvdWdoIHRoZQotCSAqIGFsbG9jYXRvciBpcyBub3cgaW5pdGlhbGlzZWQgb25seSB0aGUgZmlyc3QgOE1iIG9mIHRoZSBrZXJuZWwKLQkgKiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgaGFzIGJlZW4gbWFwcGVkLiAgQWxsIGFsbG9jYXRpb25zIGJlZm9yZQotCSAqIHBhZ2luZ19pbml0KCkgaGFzIGNvbXBsZXRlZCBtdXN0IHVzZSB0aGUgYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoKQotCSAqIHZhcmlhbnQgKHdoaWNoIGFsbG9jYXRlcyBETUEnYWJsZSBtZW1vcnkpIGFuZCBjYXJlIG11c3QgYmUgdGFrZW4KLQkgKiBub3QgdG8gZXhjZWVkIHRoZSA4TWIgbGltaXQuCi0JICovCi0KLSNpZmRlZiBDT05GSUdfU01QCi0Jc21wX2FsbG9jX21lbW9yeSgpOyAvKiBBUCBwcm9jZXNzb3IgcmVhbG1vZGUgc3RhY2tzIGluIGxvdyBtZW1vcnkqLwotI2VuZGlmCi0JcGFnaW5nX2luaXQoKTsKLQotCS8qCi0JICogTk9URTogT24geDg2LTMyLCBvbmx5IGZyb20gdGhpcyBwb2ludCBvbiwgZml4bWFwcyBhcmUgcmVhZHkgZm9yIHVzZS4KLQkgKi8KLQotI2lmZGVmIENPTkZJR19QUk9WSURFX09IQ0kxMzk0X0RNQV9JTklUCi0JaWYgKGluaXRfb2hjaTEzOTRfZG1hX2Vhcmx5KQotCQlpbml0X29oY2kxMzk0X2RtYV9vbl9hbGxfY29udHJvbGxlcnMoKTsKLSNlbmRpZgotCi0JcmVtYXBwZWRfcGdkYXRfaW5pdCgpOwotCXNwYXJzZV9pbml0KCk7Ci0Jem9uZV9zaXplc19pbml0KCk7Ci0KLQkvKgotCSAqIE5PVEU6IGF0IHRoaXMgcG9pbnQgdGhlIGJvb3RtZW0gYWxsb2NhdG9yIGlzIGZ1bGx5IGF2YWlsYWJsZS4KLQkgKi8KLQotI2lmZGVmIENPTkZJR19CTEtfREVWX0lOSVRSRAotCXJlbG9jYXRlX2luaXRyZCgpOwotI2VuZGlmCi0KLQlwYXJhdmlydF9wb3N0X2FsbG9jYXRvcl9pbml0KCk7Ci0KLQlkbWlfc2Nhbl9tYWNoaW5lKCk7Ci0KLQlpb19kZWxheV9pbml0KCk7Ci0KLSNpZmRlZiBDT05GSUdfWDg2X1NNUAotCS8qCi0JICogc2V0dXAgdG8gdXNlIHRoZSBlYXJseSBzdGF0aWMgaW5pdCB0YWJsZXMgZHVyaW5nIGtlcm5lbCBzdGFydHVwCi0JICogWDg2X1NNUCB3aWxsIGV4Y2x1ZGUgc3ViLWFyY2hlcyB0aGF0IGRvbid0IGRlYWwgd2VsbCB3aXRoIGl0LgotCSAqLwotCXg4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2NwdV90b19hcGljaWRfaW5pdDsKLQl4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2Jpb3NfY3B1X2FwaWNpZF9pbml0OwotI2lmZGVmIENPTkZJR19OVU1BCi0JeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHIgPSAodm9pZCAqKXg4Nl9jcHVfdG9fbm9kZV9tYXBfaW5pdDsKLSNlbmRpZgotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfWDg2X0dFTkVSSUNBUkNICi0JZ2VuZXJpY19hcGljX3Byb2JlKCk7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19BQ1BJCi0JLyoKLQkgKiBQYXJzZSB0aGUgQUNQSSB0YWJsZXMgZm9yIHBvc3NpYmxlIGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbi4KLQkgKi8KLQlhY3BpX2Jvb3RfdGFibGVfaW5pdCgpOwotI2VuZGlmCi0KLQllYXJseV9xdWlya3MoKTsKLQotI2lmZGVmIENPTkZJR19BQ1BJCi0JYWNwaV9ib290X2luaXQoKTsKLQotI2lmIGRlZmluZWQoQ09ORklHX1NNUCkgJiYgZGVmaW5lZChDT05GSUdfWDg2X1BDKQotCWlmIChkZWZfdG9fYmlnc21wKQotCQlwcmludGsoS0VSTl9XQVJOSU5HICJNb3JlIHRoYW4gOCBDUFVzIGRldGVjdGVkIGFuZCAiCi0JCQkiQ09ORklHX1g4Nl9QQyBjYW5ub3QgaGFuZGxlIGl0LlxuVXNlICIKLQkJCSJDT05GSUdfWDg2X0dFTkVSSUNBUkNIIG9yIENPTkZJR19YODZfQklHU01QLlxuIik7Ci0jZW5kaWYKLSNlbmRpZgotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotCWlmIChzbXBfZm91bmRfY29uZmlnKQotCQlnZXRfc21wX2NvbmZpZygpOwotI2VuZGlmCi0KLQllODIwX3JlZ2lzdGVyX21lbW9yeSgpOwotCWU4MjBfbWFya19ub3NhdmVfcmVnaW9ucygpOwotCi0jaWZkZWYgQ09ORklHX1ZUCi0jaWYgZGVmaW5lZChDT05GSUdfVkdBX0NPTlNPTEUpCi0JaWYgKCFlZmlfZW5hYmxlZCB8fCAoZWZpX21lbV90eXBlKDB4YTAwMDApICE9IEVGSV9DT05WRU5USU9OQUxfTUVNT1JZKSkKLQkJY29uc3dpdGNocCA9ICZ2Z2FfY29uOwotI2VsaWYgZGVmaW5lZChDT05GSUdfRFVNTVlfQ09OU09MRSkKLQljb25zd2l0Y2hwID0gJmR1bW15X2NvbjsKLSNlbmRpZgotI2VuZGlmCi19Ci0KLS8qCi0gKiBSZXF1ZXN0IGFkZHJlc3Mgc3BhY2UgZm9yIGFsbCBzdGFuZGFyZCByZXNvdXJjZXMKLSAqCi0gKiBUaGlzIGlzIGNhbGxlZCBqdXN0IGJlZm9yZSBwY2liaW9zX2luaXQoKSwgd2hpY2ggaXMgYWxzbyBhCi0gKiBzdWJzeXNfaW5pdGNhbGwsIGJ1dCBpcyBsaW5rZWQgaW4gbGF0ZXIgKGluIGFyY2gvaTM4Ni9wY2kvY29tbW9uLmMpLgotICovCi1zdGF0aWMgaW50IF9faW5pdCByZXF1ZXN0X3N0YW5kYXJkX3Jlc291cmNlcyh2b2lkKQotewotCWludCBpOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiU2V0dGluZyB1cCBzdGFuZGFyZCBQQ0kgcmVzb3VyY2VzXG4iKTsKLQlpbml0X2lvbWVtX3Jlc291cmNlcygmY29kZV9yZXNvdXJjZSwgJmRhdGFfcmVzb3VyY2UsICZic3NfcmVzb3VyY2UpOwotCi0JcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZ2aWRlb19yYW1fcmVzb3VyY2UpOwotCi0JLyogcmVxdWVzdCBJL08gc3BhY2UgZm9yIGRldmljZXMgdXNlZCBvbiBhbGwgaVszNDVdODYgUENzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc3RhbmRhcmRfaW9fcmVzb3VyY2VzKTsgaSsrKQotCQlyZXF1ZXN0X3Jlc291cmNlKCZpb3BvcnRfcmVzb3VyY2UsICZzdGFuZGFyZF9pb19yZXNvdXJjZXNbaV0pOwotCXJldHVybiAwOwotfQotCi1zdWJzeXNfaW5pdGNhbGwocmVxdWVzdF9zdGFuZGFyZF9yZXNvdXJjZXMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NldHVwXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmRmZjEyOC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfNjQuYworKysgL2Rldi9udWxsCkBAIC0xLDExOTQgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDE5OTUgIExpbnVzIFRvcnZhbGRzCi0gKi8KLQotLyoKLSAqIFRoaXMgZmlsZSBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IHBhcnRzIG9mIGluaXRpYWxpemF0aW9uCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L3N0ZGRlZi5oPgotI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC91c2VyLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NyZWVuX2luZm8uaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0cmQuaD4KLSNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KLSNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+Ci0jaW5jbHVkZSA8bGludXgvcm9vdF9kZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgotI2luY2x1ZGUgPGxpbnV4L2VmaS5oPgotI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KLSNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgotI2luY2x1ZGUgPGxpbnV4L2VkZC5oPgotI2luY2x1ZGUgPGxpbnV4L2lzY3NpX2liZnQuaD4KLSNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgotI2luY2x1ZGUgPGxpbnV4L2NwdWZyZXEuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWkuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgotI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+Ci0jaW5jbHVkZSA8bGludXgvc29ydC5oPgotI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0X29oY2kxMzk0X2RtYS5oPgotI2luY2x1ZGUgPGxpbnV4L2t2bV9wYXJhLmg+Ci0KLSNpbmNsdWRlIDxhc20vbXRyci5oPgotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgotI2luY2x1ZGUgPGFzbS92c3lzY2FsbC5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLSNpbmNsdWRlIDxhc20vbXNyLmg+Ci0jaW5jbHVkZSA8YXNtL2Rlc2MuaD4KLSNpbmNsdWRlIDx2aWRlby9lZGlkLmg+Ci0jaW5jbHVkZSA8YXNtL2U4MjAuaD4KLSNpbmNsdWRlIDxhc20vZG1hLmg+Ci0jaW5jbHVkZSA8YXNtL2dhcnQuaD4KLSNpbmNsdWRlIDxhc20vbXBzcGVjLmg+Ci0jaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+Ci0jaW5jbHVkZSA8YXNtL3Byb3RvLmg+Ci0jaW5jbHVkZSA8YXNtL3NldHVwLmg+Ci0jaW5jbHVkZSA8YXNtL251bWEuaD4KLSNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KLSNpbmNsdWRlIDxhc20vZG1pLmg+Ci0jaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KLSNpbmNsdWRlIDxhc20vbWNlLmg+Ci0jaW5jbHVkZSA8YXNtL2RzLmg+Ci0jaW5jbHVkZSA8YXNtL3RvcG9sb2d5Lmg+Ci0jaW5jbHVkZSA8YXNtL3RyYW1wb2xpbmUuaD4KLSNpbmNsdWRlIDxhc20vcGF0Lmg+Ci0KLSNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KLSNpZmRlZiBDT05GSUdfUEFSQVZJUlQKLSNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KLSNlbHNlCi0jZGVmaW5lIEFSQ0hfU0VUVVAKLSNlbmRpZgotCi0vKgotICogTWFjaGluZSBzZXR1cC4uCi0gKi8KLQotc3RydWN0IGNwdWluZm9feDg2IGJvb3RfY3B1X2RhdGEgX19yZWFkX21vc3RseTsKLUVYUE9SVF9TWU1CT0woYm9vdF9jcHVfZGF0YSk7Ci0KLV9fdTMyIGNsZWFyZWRfY3B1X2NhcHNbTkNBUElOVFNdIF9fY3B1aW5pdGRhdGE7Ci0KLXVuc2lnbmVkIGxvbmcgbW11X2NyNF9mZWF0dXJlczsKLQotLyogQm9vdCBsb2FkZXIgSUQgYXMgYW4gaW50ZWdlciwgZm9yIHRoZSBiZW5lZml0IG9mIHByb2NfZG9pbnR2ZWMgKi8KLWludCBib290bG9hZGVyX3R5cGU7Ci0KLXVuc2lnbmVkIGxvbmcgc2F2ZWRfdmlkZW9fbW9kZTsKLQotaW50IGZvcmNlX213YWl0IF9fY3B1aW5pdGRhdGE7Ci0KLS8qCi0gKiBFYXJseSBETUkgbWVtb3J5Ci0gKi8KLWludCBkbWlfYWxsb2NfaW5kZXg7Ci1jaGFyIGRtaV9hbGxvY19kYXRhW0RNSV9NQVhfREFUQV07Ci0KLS8qCi0gKiBTZXR1cCBvcHRpb25zCi0gKi8KLXN0cnVjdCBzY3JlZW5faW5mbyBzY3JlZW5faW5mbzsKLUVYUE9SVF9TWU1CT0woc2NyZWVuX2luZm8pOwotc3RydWN0IHN5c19kZXNjX3RhYmxlX3N0cnVjdCB7Ci0JdW5zaWduZWQgc2hvcnQgbGVuZ3RoOwotCXVuc2lnbmVkIGNoYXIgdGFibGVbMF07Ci19OwotCi1zdHJ1Y3QgZWRpZF9pbmZvIGVkaWRfaW5mbzsKLUVYUE9SVF9TWU1CT0xfR1BMKGVkaWRfaW5mbyk7Ci0KLWV4dGVybiBpbnQgcm9vdF9tb3VudGZsYWdzOwotCi1jaGFyIF9faW5pdGRhdGEgY29tbWFuZF9saW5lW0NPTU1BTkRfTElORV9TSVpFXTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzdGFuZGFyZF9pb19yZXNvdXJjZXNbXSA9IHsKLQl7IC5uYW1lID0gImRtYTEiLCAuc3RhcnQgPSAweDAwLCAuZW5kID0gMHgxZiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAicGljMSIsIC5zdGFydCA9IDB4MjAsIC5lbmQgPSAweDIxLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCi0JeyAubmFtZSA9ICJ0aW1lcjAiLCAuc3RhcnQgPSAweDQwLCAuZW5kID0gMHg0MywKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAidGltZXIxIiwgLnN0YXJ0ID0gMHg1MCwgLmVuZCA9IDB4NTMsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gImtleWJvYXJkIiwgLnN0YXJ0ID0gMHg2MCwgLmVuZCA9IDB4NjAsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gImtleWJvYXJkIiwgLnN0YXJ0ID0gMHg2NCwgLmVuZCA9IDB4NjQsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gImRtYSBwYWdlIHJlZyIsIC5zdGFydCA9IDB4ODAsIC5lbmQgPSAweDhmLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCi0JeyAubmFtZSA9ICJwaWMyIiwgLnN0YXJ0ID0gMHhhMCwgLmVuZCA9IDB4YTEsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gImRtYTIiLCAuc3RhcnQgPSAweGMwLCAuZW5kID0gMHhkZiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAiZnB1IiwgLnN0YXJ0ID0gMHhmMCwgLmVuZCA9IDB4ZmYsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfQotfTsKLQotI2RlZmluZSBJT1JFU09VUkNFX1JBTSAoSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0pCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgZGF0YV9yZXNvdXJjZSA9IHsKLQkubmFtZSA9ICJLZXJuZWwgZGF0YSIsCi0JLnN0YXJ0ID0gMCwKLQkuZW5kID0gMCwKLQkuZmxhZ3MgPSBJT1JFU09VUkNFX1JBTSwKLX07Ci1zdGF0aWMgc3RydWN0IHJlc291cmNlIGNvZGVfcmVzb3VyY2UgPSB7Ci0JLm5hbWUgPSAiS2VybmVsIGNvZGUiLAotCS5zdGFydCA9IDAsCi0JLmVuZCA9IDAsCi0JLmZsYWdzID0gSU9SRVNPVVJDRV9SQU0sCi19Owotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBic3NfcmVzb3VyY2UgPSB7Ci0JLm5hbWUgPSAiS2VybmVsIGJzcyIsCi0JLnN0YXJ0ID0gMCwKLQkuZW5kID0gMCwKLQkuZmxhZ3MgPSBJT1JFU09VUkNFX1JBTSwKLX07Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKTsKLQotI2lmZGVmIENPTkZJR19QUk9DX1ZNQ09SRQotLyogZWxmY29yZWhkcj0gc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBvZiBlbGYgY29yZSBoZWFkZXIKLSAqIHN0b3JlZCBieSB0aGUgY3Jhc2hlZCBrZXJuZWwuIFRoaXMgb3B0aW9uIHdpbGwgYmUgcGFzc2VkCi0gKiBieSBrZXhlYyBsb2FkZXIgdG8gdGhlIGNhcHR1cmUga2VybmVsLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9lbGZjb3JlaGRyKGNoYXIgKmFyZykKLXsKLQljaGFyICplbmQ7Ci0JaWYgKCFhcmcpCi0JCXJldHVybiAtRUlOVkFMOwotCWVsZmNvcmVoZHJfYWRkciA9IG1lbXBhcnNlKGFyZywgJmVuZCk7Ci0JcmV0dXJuIGVuZCA+IGFyZyA/IDAgOiAtRUlOVkFMOwotfQotZWFybHlfcGFyYW0oImVsZmNvcmVoZHIiLCBzZXR1cF9lbGZjb3JlaGRyKTsKLSNlbmRpZgotCi0jaWZuZGVmIENPTkZJR19OVU1BCi1zdGF0aWMgdm9pZCBfX2luaXQKLWNvbnRpZ19pbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3BmbikKLXsKLQl1bnNpZ25lZCBsb25nIGJvb3RtYXBfc2l6ZSwgYm9vdG1hcDsKLQotCWJvb3RtYXBfc2l6ZSA9IGJvb3RtZW1fYm9vdG1hcF9wYWdlcyhlbmRfcGZuKTw8UEFHRV9TSElGVDsKLQlib290bWFwID0gZmluZF9lODIwX2FyZWEoMCwgZW5kX3Bmbjw8UEFHRV9TSElGVCwgYm9vdG1hcF9zaXplLAotCQkJCSBQQUdFX1NJWkUpOwotCWlmIChib290bWFwID09IC0xTCkKLQkJcGFuaWMoIkNhbm5vdCBmaW5kIGJvb3RtZW0gbWFwIG9mIHNpemUgJWxkXG4iLCBib290bWFwX3NpemUpOwotCWJvb3RtYXBfc2l6ZSA9IGluaXRfYm9vdG1lbShib290bWFwID4+IFBBR0VfU0hJRlQsIGVuZF9wZm4pOwotCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgc3RhcnRfcGZuLCBlbmRfcGZuKTsKLQlmcmVlX2Jvb3RtZW1fd2l0aF9hY3RpdmVfcmVnaW9ucygwLCBlbmRfcGZuKTsKLQllYXJseV9yZXNfdG9fYm9vdG1lbSgwLCBlbmRfcGZuPDxQQUdFX1NISUZUKTsKLQlyZXNlcnZlX2Jvb3RtZW0oYm9vdG1hcCwgYm9vdG1hcF9zaXplLCBCT09UTUVNX0RFRkFVTFQpOwotfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKENPTkZJR19FREQpIHx8IGRlZmluZWQoQ09ORklHX0VERF9NT0RVTEUpCi1zdHJ1Y3QgZWRkIGVkZDsKLSNpZmRlZiBDT05GSUdfRUREX01PRFVMRQotRVhQT1JUX1NZTUJPTChlZGQpOwotI2VuZGlmCi0vKioKLSAqIGNvcHlfZWRkKCkgLSBDb3B5IHRoZSBCSU9TIEVERCBpbmZvcm1hdGlvbgotICogICAgICAgICAgICAgIGZyb20gYm9vdF9wYXJhbXMgaW50byBhIHNhZmUgcGxhY2UuCi0gKgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgY29weV9lZGQodm9pZCkKLXsKLSAgICAgbWVtY3B5KGVkZC5tYnJfc2lnbmF0dXJlLCBib290X3BhcmFtcy5lZGRfbWJyX3NpZ19idWZmZXIsCi0JICAgIHNpemVvZihlZGQubWJyX3NpZ25hdHVyZSkpOwotICAgICBtZW1jcHkoZWRkLmVkZF9pbmZvLCBib290X3BhcmFtcy5lZGRidWYsIHNpemVvZihlZGQuZWRkX2luZm8pKTsKLSAgICAgZWRkLm1icl9zaWduYXR1cmVfbnIgPSBib290X3BhcmFtcy5lZGRfbWJyX3NpZ19idWZfZW50cmllczsKLSAgICAgZWRkLmVkZF9pbmZvX25yID0gYm9vdF9wYXJhbXMuZWRkYnVmX2VudHJpZXM7Ci19Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIGNvcHlfZWRkKHZvaWQpCi17Ci19Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19LRVhFQwotc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfY3Jhc2hrZXJuZWwodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxfbWVtOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBjcmFzaF9zaXplLCBjcmFzaF9iYXNlOwotCWludCByZXQ7Ci0KLQl0b3RhbF9tZW0gPSAoKHVuc2lnbmVkIGxvbmcgbG9uZyltYXhfbG93X3BmbiAtIG1pbl9sb3dfcGZuKSA8PCBQQUdFX1NISUZUOwotCi0JcmV0ID0gcGFyc2VfY3Jhc2hrZXJuZWwoYm9vdF9jb21tYW5kX2xpbmUsIHRvdGFsX21lbSwKLQkJCSZjcmFzaF9zaXplLCAmY3Jhc2hfYmFzZSk7Ci0JaWYgKHJldCA9PSAwICYmIGNyYXNoX3NpemUpIHsKLQkJaWYgKGNyYXNoX2Jhc2UgPD0gMCkgewotCQkJcHJpbnRrKEtFUk5fSU5GTyAiY3Jhc2hrZXJuZWwgcmVzZXJ2YXRpb24gZmFpbGVkIC0gIgotCQkJCQkieW91IGhhdmUgdG8gc3BlY2lmeSBhIGJhc2UgYWRkcmVzc1xuIik7Ci0JCQlyZXR1cm47Ci0JCX0KLQotCQlpZiAocmVzZXJ2ZV9ib290bWVtKGNyYXNoX2Jhc2UsIGNyYXNoX3NpemUsCi0JCQkJCUJPT1RNRU1fRVhDTFVTSVZFKSA8IDApIHsKLQkJCXByaW50ayhLRVJOX0lORk8gImNyYXNoa2VybmVsIHJlc2VydmF0aW9uIGZhaWxlZCAtICIKLQkJCQkJIm1lbW9yeSBpcyBpbiB1c2VcbiIpOwotCQkJcmV0dXJuOwotCQl9Ci0KLQkJcHJpbnRrKEtFUk5fSU5GTyAiUmVzZXJ2aW5nICVsZE1CIG9mIG1lbW9yeSBhdCAlbGRNQiAiCi0JCQkJImZvciBjcmFzaGtlcm5lbCAoU3lzdGVtIFJBTTogJWxkTUIpXG4iLAotCQkJCSh1bnNpZ25lZCBsb25nKShjcmFzaF9zaXplID4+IDIwKSwKLQkJCQkodW5zaWduZWQgbG9uZykoY3Jhc2hfYmFzZSA+PiAyMCksCi0JCQkJKHVuc2lnbmVkIGxvbmcpKHRvdGFsX21lbSA+PiAyMCkpOwotCQljcmFzaGtfcmVzLnN0YXJ0ID0gY3Jhc2hfYmFzZTsKLQkJY3Jhc2hrX3Jlcy5lbmQgICA9IGNyYXNoX2Jhc2UgKyBjcmFzaF9zaXplIC0gMTsKLQkJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmNyYXNoa19yZXMpOwotCX0KLX0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IHJlc2VydmVfY3Jhc2hrZXJuZWwodm9pZCkKLXt9Ci0jZW5kaWYKLQotLyogT3ZlcnJpZGRlbiBpbiBwYXJhdmlydC5jIGlmIENPTkZJR19QQVJBVklSVCAqLwotdm9pZCBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgX19pbml0IG1lbW9yeV9zZXR1cCh2b2lkKQotewotICAgICAgIG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9zZXR1cF9kYXRhKHZvaWQpCi17Ci0Jc3RydWN0IHNldHVwX2RhdGEgKmRhdGE7Ci0JdW5zaWduZWQgbG9uZyBwYV9kYXRhOwotCi0JaWYgKGJvb3RfcGFyYW1zLmhkci52ZXJzaW9uIDwgMHgwMjA5KQotCQlyZXR1cm47Ci0JcGFfZGF0YSA9IGJvb3RfcGFyYW1zLmhkci5zZXR1cF9kYXRhOwotCXdoaWxlIChwYV9kYXRhKSB7Ci0JCWRhdGEgPSBlYXJseV9pb3JlbWFwKHBhX2RhdGEsIFBBR0VfU0laRSk7Ci0JCXN3aXRjaCAoZGF0YS0+dHlwZSkgewotCQlkZWZhdWx0OgotCQkJYnJlYWs7Ci0JCX0KLSNpZm5kZWYgQ09ORklHX0RFQlVHX0JPT1RfUEFSQU1TCi0JCWZyZWVfZWFybHkocGFfZGF0YSwgcGFfZGF0YStzaXplb2YoKmRhdGEpK2RhdGEtPmxlbik7Ci0jZW5kaWYKLQkJcGFfZGF0YSA9IGRhdGEtPm5leHQ7Ci0JCWVhcmx5X2lvdW5tYXAoZGF0YSwgUEFHRV9TSVpFKTsKLQl9Ci19Ci0KLSNpZmRlZiBDT05GSUdfUENJX01NQ09ORklHCi1leHRlcm4gdm9pZCBfX2NwdWluaXQgZmFtMTBoX2NoZWNrX2VuYWJsZV9tbWNmZyh2b2lkKTsKLWV4dGVybiB2b2lkIF9faW5pdCBjaGVja19lbmFibGVfYW1kX21tY29uZl9kbWkodm9pZCk7Ci0jZWxzZQotdm9pZCBfX2NwdWluaXQgZmFtMTBoX2NoZWNrX2VuYWJsZV9tbWNmZyh2b2lkKQotewotfQotdm9pZCBfX2luaXQgY2hlY2tfZW5hYmxlX2FtZF9tbWNvbmZfZG1pKHZvaWQpCi17Ci19Ci0jZW5kaWYKLQotLyoKLSAqIHNldHVwX2FyY2ggLSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYm9vdC10aW1lIGluaXRpYWxpemF0aW9ucwotICoKLSAqIE5vdGU6IE9uIHg4Nl82NCwgZml4bWFwcyBhcmUgcmVhZHkgZm9yIHVzZSBldmVuIGJlZm9yZSB0aGlzIGlzIGNhbGxlZC4KLSAqLwotdm9pZCBfX2luaXQgc2V0dXBfYXJjaChjaGFyICoqY21kbGluZV9wKQotewotCXVuc2lnbmVkIGk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJDb21tYW5kIGxpbmU6ICVzXG4iLCBib290X2NvbW1hbmRfbGluZSk7Ci0KLQlST09UX0RFViA9IG9sZF9kZWNvZGVfZGV2KGJvb3RfcGFyYW1zLmhkci5yb290X2Rldik7Ci0Jc2NyZWVuX2luZm8gPSBib290X3BhcmFtcy5zY3JlZW5faW5mbzsKLQllZGlkX2luZm8gPSBib290X3BhcmFtcy5lZGlkX2luZm87Ci0Jc2F2ZWRfdmlkZW9fbW9kZSA9IGJvb3RfcGFyYW1zLmhkci52aWRfbW9kZTsKLQlib290bG9hZGVyX3R5cGUgPSBib290X3BhcmFtcy5oZHIudHlwZV9vZl9sb2FkZXI7Ci0KLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9SQU0KLQlyZF9pbWFnZV9zdGFydCA9IGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfSU1BR0VfU1RBUlRfTUFTSzsKLQlyZF9wcm9tcHQgPSAoKGJvb3RfcGFyYW1zLmhkci5yYW1fc2l6ZSAmIFJBTURJU0tfUFJPTVBUX0ZMQUcpICE9IDApOwotCXJkX2RvbG9hZCA9ICgoYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19MT0FEX0ZMQUcpICE9IDApOwotI2VuZGlmCi0jaWZkZWYgQ09ORklHX0VGSQotCWlmICghc3RybmNtcCgoY2hhciAqKSZib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbG9hZGVyX3NpZ25hdHVyZSwKLQkJICAgICAiRUw2NCIsIDQpKQotCQllZmlfZW5hYmxlZCA9IDE7Ci0jZW5kaWYKLQotCUFSQ0hfU0VUVVAKLQotCW1lbW9yeV9zZXR1cCgpOwotCWNvcHlfZWRkKCk7Ci0KLQlpZiAoIWJvb3RfcGFyYW1zLmhkci5yb290X2ZsYWdzKQotCQlyb290X21vdW50ZmxhZ3MgJj0gfk1TX1JET05MWTsKLQlpbml0X21tLnN0YXJ0X2NvZGUgPSAodW5zaWduZWQgbG9uZykgJl90ZXh0OwotCWluaXRfbW0uZW5kX2NvZGUgPSAodW5zaWduZWQgbG9uZykgJl9ldGV4dDsKLQlpbml0X21tLmVuZF9kYXRhID0gKHVuc2lnbmVkIGxvbmcpICZfZWRhdGE7Ci0JaW5pdF9tbS5icmsgPSAodW5zaWduZWQgbG9uZykgJl9lbmQ7Ci0KLQljb2RlX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKCZfdGV4dCk7Ci0JY29kZV9yZXNvdXJjZS5lbmQgPSB2aXJ0X3RvX3BoeXMoJl9ldGV4dCktMTsKLQlkYXRhX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKCZfZXRleHQpOwotCWRhdGFfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKCZfZWRhdGEpLTE7Ci0JYnNzX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKCZfX2Jzc19zdGFydCk7Ci0JYnNzX3Jlc291cmNlLmVuZCA9IHZpcnRfdG9fcGh5cygmX19ic3Nfc3RvcCktMTsKLQotCWVhcmx5X2lkZW50aWZ5X2NwdSgmYm9vdF9jcHVfZGF0YSk7Ci0KLQlzdHJsY3B5KGNvbW1hbmRfbGluZSwgYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORV9TSVpFKTsKLQkqY21kbGluZV9wID0gY29tbWFuZF9saW5lOwotCi0JcGFyc2Vfc2V0dXBfZGF0YSgpOwotCi0JcGFyc2VfZWFybHlfcGFyYW0oKTsKLQotI2lmZGVmIENPTkZJR19QUk9WSURFX09IQ0kxMzk0X0RNQV9JTklUCi0JaWYgKGluaXRfb2hjaTEzOTRfZG1hX2Vhcmx5KQotCQlpbml0X29oY2kxMzk0X2RtYV9vbl9hbGxfY29udHJvbGxlcnMoKTsKLSNlbmRpZgotCi0JZmluaXNoX2U4MjBfcGFyc2luZygpOwotCi0JLyogYWZ0ZXIgcGFyc2VfZWFybHlfcGFyYW0sIHNvIGNvdWxkIGRlYnVnIGl0ICovCi0JaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmNvZGVfcmVzb3VyY2UpOwotCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZkYXRhX3Jlc291cmNlKTsKLQlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmYnNzX3Jlc291cmNlKTsKLQotCWVhcmx5X2dhcnRfaW9tbXVfY2hlY2soKTsKLQotCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgLTFVTCk7Ci0JLyoKLQkgKiBwYXJ0aWFsbHkgdXNlZCBwYWdlcyBhcmUgbm90IHVzYWJsZSAtIHRodXMKLQkgKiB3ZSBhcmUgcm91bmRpbmcgdXB3YXJkczoKLQkgKi8KLQllbmRfcGZuID0gZTgyMF9lbmRfb2ZfcmFtKCk7Ci0JLyogdXBkYXRlIGU4MjAgZm9yIG1lbW9yeSBub3QgY292ZXJlZCBieSBXQiBNVFJScyAqLwotCW10cnJfYnBfaW5pdCgpOwotCWlmIChtdHJyX3RyaW1fdW5jYWNoZWRfbWVtb3J5KGVuZF9wZm4pKSB7Ci0JCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgLTFVTCk7Ci0JCWVuZF9wZm4gPSBlODIwX2VuZF9vZl9yYW0oKTsKLQl9Ci0KLQludW1fcGh5c3BhZ2VzID0gZW5kX3BmbjsKLQotCWNoZWNrX2VmZXIoKTsKLQotCW1heF9wZm5fbWFwcGVkID0gaW5pdF9tZW1vcnlfbWFwcGluZygwLCAobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpOwotCWlmIChlZmlfZW5hYmxlZCkKLQkJZWZpX2luaXQoKTsKLQotCXZzbXBfaW5pdCgpOwotCi0JZG1pX3NjYW5fbWFjaGluZSgpOwotCi0JaW9fZGVsYXlfaW5pdCgpOwotCi0jaWZkZWYgQ09ORklHX0tWTV9DTE9DSwotCWt2bWNsb2NrX2luaXQoKTsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1NNUAotCS8qIHNldHVwIHRvIHVzZSB0aGUgZWFybHkgc3RhdGljIGluaXQgdGFibGVzIGR1cmluZyBrZXJuZWwgc3RhcnR1cCAqLwotCXg4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2NwdV90b19hcGljaWRfaW5pdDsKLQl4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2Jpb3NfY3B1X2FwaWNpZF9pbml0OwotI2lmZGVmIENPTkZJR19OVU1BCi0JeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHIgPSAodm9pZCAqKXg4Nl9jcHVfdG9fbm9kZV9tYXBfaW5pdDsKLSNlbmRpZgotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfQUNQSQotCS8qCi0JICogSW5pdGlhbGl6ZSB0aGUgQUNQSSBib290LXRpbWUgdGFibGUgcGFyc2VyIChnZXRzIHRoZSBSU0RQIGFuZCBTRFQpLgotCSAqIENhbGwgdGhpcyBlYXJseSBmb3IgU1JBVCBub2RlIHNldHVwLgotCSAqLwotCWFjcGlfYm9vdF90YWJsZV9pbml0KCk7Ci0jZW5kaWYKLQotCS8qIEhvdyBtYW55IGVuZC1vZi1tZW1vcnkgdmFyaWFibGVzIHlvdSBoYXZlLCBncmFuZG1hISAqLwotCW1heF9sb3dfcGZuID0gZW5kX3BmbjsKLQltYXhfcGZuID0gZW5kX3BmbjsKLQloaWdoX21lbW9yeSA9ICh2b2lkICopX192YShlbmRfcGZuICogUEFHRV9TSVpFIC0gMSkgKyAxOwotCi0JLyogUmVtb3ZlIGFjdGl2ZSByYW5nZXMgc28gcmVkaXNjb3Zlcnkgd2l0aCBOVU1BLWF3YXJlbmVzcyBoYXBwZW5zICovCi0JcmVtb3ZlX2FsbF9hY3RpdmVfcmFuZ2VzKCk7Ci0KLSNpZmRlZiBDT05GSUdfQUNQSV9OVU1BCi0JLyoKLQkgKiBQYXJzZSBTUkFUIHRvIGRpc2NvdmVyIG5vZGVzLgotCSAqLwotCWFjcGlfbnVtYV9pbml0KCk7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19OVU1BCi0JbnVtYV9pbml0bWVtX2luaXQoMCwgZW5kX3Bmbik7Ci0jZWxzZQotCWNvbnRpZ19pbml0bWVtX2luaXQoMCwgZW5kX3Bmbik7Ci0jZW5kaWYKLQotCWRtYTMyX3Jlc2VydmVfYm9vdG1lbSgpOwotCi0jaWZkZWYgQ09ORklHX0FDUElfU0xFRVAKLQkvKgotCSAqIFJlc2VydmUgbG93IG1lbW9yeSByZWdpb24gZm9yIHNsZWVwIHN1cHBvcnQuCi0JICovCi0gICAgICAgYWNwaV9yZXNlcnZlX2Jvb3RtZW0oKTsKLSNlbmRpZgotCi0JaWYgKGVmaV9lbmFibGVkKQotCQllZmlfcmVzZXJ2ZV9ib290bWVtKCk7Ci0KLSAgICAgICAvKgotCSogRmluZCBhbmQgcmVzZXJ2ZSBwb3NzaWJsZSBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246Ci0JKi8KLQlmaW5kX3NtcF9jb25maWcoKTsKLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklUUkQKLQlpZiAoYm9vdF9wYXJhbXMuaGRyLnR5cGVfb2ZfbG9hZGVyICYmIGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlKSB7Ci0JCXVuc2lnbmVkIGxvbmcgcmFtZGlza19pbWFnZSA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlOwotCQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfc2l6ZSAgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplOwotCQl1bnNpZ25lZCBsb25nIHJhbWRpc2tfZW5kICAgPSByYW1kaXNrX2ltYWdlICsgcmFtZGlza19zaXplOwotCQl1bnNpZ25lZCBsb25nIGVuZF9vZl9tZW0gICAgPSBlbmRfcGZuIDw8IFBBR0VfU0hJRlQ7Ci0KLQkJaWYgKHJhbWRpc2tfZW5kIDw9IGVuZF9vZl9tZW0pIHsKLQkJCS8qCi0JCQkgKiBkb24ndCBuZWVkIHRvIHJlc2VydmUgYWdhaW4sIGFscmVhZHkgcmVzZXJ2ZWQgZWFybHkKLQkJCSAqIGluIHg4Nl82NF9zdGFydF9rZXJuZWwsIGFuZCBlYXJseV9yZXNfdG9fYm9vdG1lbQotCQkJICogY29udmVydCB0aGF0IHRvIHJlc2VydmVkIGluIGJvb3RtZW0KLQkJCSAqLwotCQkJaW5pdHJkX3N0YXJ0ID0gcmFtZGlza19pbWFnZSArIFBBR0VfT0ZGU0VUOwotCQkJaW5pdHJkX2VuZCA9IGluaXRyZF9zdGFydCtyYW1kaXNrX3NpemU7Ci0JCX0gZWxzZSB7Ci0JCQlmcmVlX2Jvb3RtZW0ocmFtZGlza19pbWFnZSwgcmFtZGlza19zaXplKTsKLQkJCXByaW50ayhLRVJOX0VSUiAiaW5pdHJkIGV4dGVuZHMgYmV5b25kIGVuZCBvZiBtZW1vcnkgIgotCQkJICAgICAgICIoMHglMDhseCA+IDB4JTA4bHgpXG5kaXNhYmxpbmcgaW5pdHJkXG4iLAotCQkJICAgICAgIHJhbWRpc2tfZW5kLCBlbmRfb2ZfbWVtKTsKLQkJCWluaXRyZF9zdGFydCA9IDA7Ci0JCX0KLQl9Ci0jZW5kaWYKLQlyZXNlcnZlX2NyYXNoa2VybmVsKCk7Ci0KLQlyZXNlcnZlX2liZnRfcmVnaW9uKCk7Ci0KLQlwYWdpbmdfaW5pdCgpOwotCW1hcF92c3lzY2FsbCgpOwotCi0JZWFybHlfcXVpcmtzKCk7Ci0KLSNpZmRlZiBDT05GSUdfQUNQSQotCS8qCi0JICogUmVhZCBBUElDIGFuZCBzb21lIG90aGVyIGVhcmx5IGluZm9ybWF0aW9uIGZyb20gQUNQSSB0YWJsZXMuCi0JICovCi0JYWNwaV9ib290X2luaXQoKTsKLSNlbmRpZgotCi0JaW5pdF9jcHVfdG9fbm9kZSgpOwotCi0JLyoKLQkgKiBnZXQgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uOgotCSAqLwotCWlmIChzbXBfZm91bmRfY29uZmlnKQotCQlnZXRfc21wX2NvbmZpZygpOwotCWluaXRfYXBpY19tYXBwaW5ncygpOwotCWlvYXBpY19pbml0X21hcHBpbmdzKCk7Ci0KLQlrdm1fZ3Vlc3RfaW5pdCgpOwotCi0JLyoKLQkgKiBXZSB0cnVzdCBlODIwIGNvbXBsZXRlbHkuIE5vIGV4cGxpY2l0IFJPTSBwcm9iaW5nIGluIG1lbW9yeS4KLQkgKi8KLQllODIwX3Jlc2VydmVfcmVzb3VyY2VzKCk7Ci0JZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKCk7Ci0KLQkvKiByZXF1ZXN0IEkvTyBzcGFjZSBmb3IgZGV2aWNlcyB1c2VkIG9uIGFsbCBpWzM0NV04NiBQQ3MgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzdGFuZGFyZF9pb19yZXNvdXJjZXMpOyBpKyspCi0JCXJlcXVlc3RfcmVzb3VyY2UoJmlvcG9ydF9yZXNvdXJjZSwgJnN0YW5kYXJkX2lvX3Jlc291cmNlc1tpXSk7Ci0KLQllODIwX3NldHVwX2dhcCgpOwotCi0jaWZkZWYgQ09ORklHX1ZUCi0jaWYgZGVmaW5lZChDT05GSUdfVkdBX0NPTlNPTEUpCi0JaWYgKCFlZmlfZW5hYmxlZCB8fCAoZWZpX21lbV90eXBlKDB4YTAwMDApICE9IEVGSV9DT05WRU5USU9OQUxfTUVNT1JZKSkKLQkJY29uc3dpdGNocCA9ICZ2Z2FfY29uOwotI2VsaWYgZGVmaW5lZChDT05GSUdfRFVNTVlfQ09OU09MRSkKLQljb25zd2l0Y2hwID0gJmR1bW15X2NvbjsKLSNlbmRpZgotI2VuZGlmCi0KLQkvKiBkbyB0aGlzIGJlZm9yZSBpZGVudGlmeV9jcHUgZm9yIGJvb3QgY3B1ICovCi0JY2hlY2tfZW5hYmxlX2FtZF9tbWNvbmZfZG1pKCk7Ci19Ci0KLXN0YXRpYyBpbnQgX19jcHVpbml0IGdldF9tb2RlbF9uYW1lKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLQl1bnNpZ25lZCBpbnQgKnY7Ci0KLQlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPCAweDgwMDAwMDA0KQotCQlyZXR1cm4gMDsKLQotCXYgPSAodW5zaWduZWQgaW50ICopIGMtPng4Nl9tb2RlbF9pZDsKLQljcHVpZCgweDgwMDAwMDAyLCAmdlswXSwgJnZbMV0sICZ2WzJdLCAmdlszXSk7Ci0JY3B1aWQoMHg4MDAwMDAwMywgJnZbNF0sICZ2WzVdLCAmdls2XSwgJnZbN10pOwotCWNwdWlkKDB4ODAwMDAwMDQsICZ2WzhdLCAmdls5XSwgJnZbMTBdLCAmdlsxMV0pOwotCWMtPng4Nl9tb2RlbF9pZFs0OF0gPSAwOwotCXJldHVybiAxOwotfQotCi0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBkaXNwbGF5X2NhY2hlaW5mbyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JdW5zaWduZWQgaW50IG4sIGR1bW15LCBlYXgsIGVieCwgZWN4LCBlZHg7Ci0KLQluID0gYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWw7Ci0KLQlpZiAobiA+PSAweDgwMDAwMDA1KSB7Ci0JCWNwdWlkKDB4ODAwMDAwMDUsICZkdW1teSwgJmVieCwgJmVjeCwgJmVkeCk7Ci0JCXByaW50ayhLRVJOX0lORk8gIkNQVTogTDEgSSBDYWNoZTogJWRLICglZCBieXRlcy9saW5lKSwgIgotCQkgICAgICAgIkQgY2FjaGUgJWRLICglZCBieXRlcy9saW5lKVxuIiwKLQkJICAgICAgIGVkeD4+MjQsIGVkeCYweEZGLCBlY3g+PjI0LCBlY3gmMHhGRik7Ci0JCWMtPng4Nl9jYWNoZV9zaXplID0gKGVjeD4+MjQpICsgKGVkeD4+MjQpOwotCQkvKiBPbiBLOCBMMSBUTEIgaXMgaW5jbHVzaXZlLCBzbyBkb24ndCBjb3VudCBpdCAqLwotCQljLT54ODZfdGxic2l6ZSA9IDA7Ci0JfQotCi0JaWYgKG4gPj0gMHg4MDAwMDAwNikgewotCQljcHVpZCgweDgwMDAwMDA2LCAmZHVtbXksICZlYngsICZlY3gsICZlZHgpOwotCQllY3ggPSBjcHVpZF9lY3goMHg4MDAwMDAwNik7Ci0JCWMtPng4Nl9jYWNoZV9zaXplID0gZWN4ID4+IDE2OwotCQljLT54ODZfdGxic2l6ZSArPSAoKGVieCA+PiAxNikgJiAweGZmZikgKyAoZWJ4ICYgMHhmZmYpOwotCi0JCXByaW50ayhLRVJOX0lORk8gIkNQVTogTDIgQ2FjaGU6ICVkSyAoJWQgYnl0ZXMvbGluZSlcbiIsCi0JCWMtPng4Nl9jYWNoZV9zaXplLCBlY3ggJiAweEZGKTsKLQl9Ci0JaWYgKG4gPj0gMHg4MDAwMDAwOCkgewotCQljcHVpZCgweDgwMDAwMDA4LCAmZWF4LCAmZHVtbXksICZkdW1teSwgJmR1bW15KTsKLQkJYy0+eDg2X3ZpcnRfYml0cyA9IChlYXggPj4gOCkgJiAweGZmOwotCQljLT54ODZfcGh5c19iaXRzID0gZWF4ICYgMHhmZjsKLQl9Ci19Ci0KLSNpZmRlZiBDT05GSUdfTlVNQQotc3RhdGljIGludCBfX2NwdWluaXQgbmVhcmJ5X25vZGUoaW50IGFwaWNpZCkKLXsKLQlpbnQgaSwgbm9kZTsKLQotCWZvciAoaSA9IGFwaWNpZCAtIDE7IGkgPj0gMDsgaS0tKSB7Ci0JCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtpXTsKLQkJaWYgKG5vZGUgIT0gTlVNQV9OT19OT0RFICYmIG5vZGVfb25saW5lKG5vZGUpKQotCQkJcmV0dXJuIG5vZGU7Ci0JfQotCWZvciAoaSA9IGFwaWNpZCArIDE7IGkgPCBNQVhfTE9DQUxfQVBJQzsgaSsrKSB7Ci0JCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtpXTsKLQkJaWYgKG5vZGUgIT0gTlVNQV9OT19OT0RFICYmIG5vZGVfb25saW5lKG5vZGUpKQotCQkJcmV0dXJuIG5vZGU7Ci0JfQotCXJldHVybiBmaXJzdF9ub2RlKG5vZGVfb25saW5lX21hcCk7IC8qIFNob3VsZG4ndCBoYXBwZW4gKi8KLX0KLSNlbmRpZgotCi0vKgotICogT24gYSBBTUQgZHVhbCBjb3JlIHNldHVwIHRoZSBsb3dlciBiaXRzIG9mIHRoZSBBUElDIGlkIGRpc3Rpbmd1c2ggdGhlIGNvcmVzLgotICogQXNzdW1lcyBudW1iZXIgb2YgY29yZXMgaXMgYSBwb3dlciBvZiB0d28uCi0gKi8KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBhbWRfZGV0ZWN0X2NtcChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0jaWZkZWYgQ09ORklHX1NNUAotCXVuc2lnbmVkIGJpdHM7Ci0jaWZkZWYgQ09ORklHX05VTUEKLQlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCWludCBub2RlID0gMDsKLQl1bnNpZ25lZCBhcGljaWQgPSBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKTsKLSNlbmRpZgotCWJpdHMgPSBjLT54ODZfY29yZWlkX2JpdHM7Ci0KLQkvKiBMb3cgb3JkZXIgYml0cyBkZWZpbmUgdGhlIGNvcmUgaWQgKGluZGV4IG9mIGNvcmUgaW4gc29ja2V0KSAqLwotCWMtPmNwdV9jb3JlX2lkID0gYy0+aW5pdGlhbF9hcGljaWQgJiAoKDEgPDwgYml0cyktMSk7Ci0JLyogQ29udmVydCB0aGUgaW5pdGlhbCBBUElDIElEIGludG8gdGhlIHNvY2tldCBJRCAqLwotCWMtPnBoeXNfcHJvY19pZCA9IGMtPmluaXRpYWxfYXBpY2lkID4+IGJpdHM7Ci0KLSNpZmRlZiBDT05GSUdfTlVNQQotCW5vZGUgPSBjLT5waHlzX3Byb2NfaWQ7Ci0JaWYgKGFwaWNpZF90b19ub2RlW2FwaWNpZF0gIT0gTlVNQV9OT19OT0RFKQotCQlub2RlID0gYXBpY2lkX3RvX25vZGVbYXBpY2lkXTsKLQlpZiAoIW5vZGVfb25saW5lKG5vZGUpKSB7Ci0JCS8qIFR3byBwb3NzaWJpbGl0aWVzIGhlcmU6Ci0JCSAgIC0gVGhlIENQVSBpcyBtaXNzaW5nIG1lbW9yeSBhbmQgbm8gbm9kZSB3YXMgY3JlYXRlZC4KLQkJICAgSW4gdGhhdCBjYXNlIHRyeSBwaWNraW5nIG9uZSBmcm9tIGEgbmVhcmJ5IENQVQotCQkgICAtIFRoZSBBUElDIElEcyBkaWZmZXIgZnJvbSB0aGUgSHlwZXJUcmFuc3BvcnQgbm9kZSBJRHMKLQkJICAgd2hpY2ggdGhlIEs4IG5vcnRoYnJpZGdlIHBhcnNpbmcgZmlsbHMgaW4uCi0JCSAgIEFzc3VtZSB0aGV5IGFyZSBhbGwgaW5jcmVhc2VkIGJ5IGEgY29uc3RhbnQgb2Zmc2V0LAotCQkgICBidXQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIEhUIG5vZGVpZHMuCi0JCSAgIElmIHRoYXQgZG9lc24ndCByZXN1bHQgaW4gYSB1c2FibGUgbm9kZSBmYWxsIGJhY2sgdG8gdGhlCi0JCSAgIHBhdGggZm9yIHRoZSBwcmV2aW91cyBjYXNlLiAgKi8KLQotCQlpbnQgaHRfbm9kZWlkID0gYy0+aW5pdGlhbF9hcGljaWQ7Ci0KLQkJaWYgKGh0X25vZGVpZCA+PSAwICYmCi0JCSAgICBhcGljaWRfdG9fbm9kZVtodF9ub2RlaWRdICE9IE5VTUFfTk9fTk9ERSkKLQkJCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtodF9ub2RlaWRdOwotCQkvKiBQaWNrIGEgbmVhcmJ5IG5vZGUgKi8KLQkJaWYgKCFub2RlX29ubGluZShub2RlKSkKLQkJCW5vZGUgPSBuZWFyYnlfbm9kZShhcGljaWQpOwotCX0KLQludW1hX3NldF9ub2RlKGNwdSwgbm9kZSk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJDUFUgJWQvJXggLT4gTm9kZSAlZFxuIiwgY3B1LCBhcGljaWQsIG5vZGUpOwotI2VuZGlmCi0jZW5kaWYKLX0KLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2luaXRfYW1kX21jKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLSNpZmRlZiBDT05GSUdfU01QCi0JdW5zaWduZWQgYml0cywgZWN4OwotCi0JLyogTXVsdGkgY29yZSBDUFU/ICovCi0JaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsIDwgMHg4MDAwMDAwOCkKLQkJcmV0dXJuOwotCi0JZWN4ID0gY3B1aWRfZWN4KDB4ODAwMDAwMDgpOwotCi0JYy0+eDg2X21heF9jb3JlcyA9IChlY3ggJiAweGZmKSArIDE7Ci0KLQkvKiBDUFUgdGVsbGluZyB1cyB0aGUgY29yZSBpZCBiaXRzIHNoaWZ0PyAqLwotCWJpdHMgPSAoZWN4ID4+IDEyKSAmIDB4RjsKLQotCS8qIE90aGVyd2lzZSByZWNvbXB1dGUgKi8KLQlpZiAoYml0cyA9PSAwKSB7Ci0JCXdoaWxlICgoMSA8PCBiaXRzKSA8IGMtPng4Nl9tYXhfY29yZXMpCi0JCQliaXRzKys7Ci0JfQotCi0JYy0+eDg2X2NvcmVpZF9iaXRzID0gYml0czsKLQotI2VuZGlmCi19Ci0KLSNkZWZpbmUgRU5BQkxFX0MxRV9NQVNLCQkweDE4MDAwMDAwCi0jZGVmaW5lIENQVUlEX1BST0NFU1NPUl9TSUdOQVRVUkUJMQotI2RlZmluZSBDUFVJRF9YRkFNCQkweDBmZjAwMDAwCi0jZGVmaW5lIENQVUlEX1hGQU1fSzgJCTB4MDAwMDAwMDAKLSNkZWZpbmUgQ1BVSURfWEZBTV8xMEgJCTB4MDAxMDAwMDAKLSNkZWZpbmUgQ1BVSURfWEZBTV8xMUgJCTB4MDAyMDAwMDAKLSNkZWZpbmUgQ1BVSURfWE1PRAkJMHgwMDBmMDAwMAotI2RlZmluZSBDUFVJRF9YTU9EX1JFVl9GCTB4MDAwNDAwMDAKLQotLyogQU1EIHN5c3RlbXMgd2l0aCBDMUUgZG9uJ3QgaGF2ZSBhIHdvcmtpbmcgbEFQSUMgdGltZXIuIENoZWNrIGZvciB0aGF0LiAqLwotc3RhdGljIF9fY3B1aW5pdCBpbnQgYW1kX2FwaWNfdGltZXJfYnJva2VuKHZvaWQpCi17Ci0JdTMyIGxvLCBoaSwgZWF4ID0gY3B1aWRfZWF4KENQVUlEX1BST0NFU1NPUl9TSUdOQVRVUkUpOwotCi0Jc3dpdGNoIChlYXggJiBDUFVJRF9YRkFNKSB7Ci0JY2FzZSBDUFVJRF9YRkFNX0s4OgotCQlpZiAoKGVheCAmIENQVUlEX1hNT0QpIDwgQ1BVSURfWE1PRF9SRVZfRikKLQkJCWJyZWFrOwotCWNhc2UgQ1BVSURfWEZBTV8xMEg6Ci0JY2FzZSBDUFVJRF9YRkFNXzExSDoKLQkJcmRtc3IoTVNSX0s4X0VOQUJMRV9DMUUsIGxvLCBoaSk7Ci0JCWlmIChsbyAmIEVOQUJMRV9DMUVfTUFTSykKLQkJCXJldHVybiAxOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQkvKiBlcnIgb24gdGhlIHNpZGUgb2YgY2F1dGlvbiAqLwotCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JZWFybHlfaW5pdF9hbWRfbWMoYyk7Ci0KLSAJLyogYy0+eDg2X3Bvd2VyIGlzIDgwMDBfMDAwNyBlZHguIEJpdCA4IGlzIGNvbnN0YW50IFRTQyAqLwotCWlmIChjLT54ODZfcG93ZXIgJiAoMTw8OCkpCi0JCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBpbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JdW5zaWduZWQgbGV2ZWw7Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0JdW5zaWduZWQgbG9uZyB2YWx1ZTsKLQotCS8qCi0JICogRGlzYWJsZSBUTEIgZmx1c2ggZmlsdGVyIGJ5IHNldHRpbmcgSFdDUi5GRkRJUyBvbiBLOAotCSAqIGJpdCA2IG9mIG1zciBDMDAxXzAwMTUKLQkgKgotCSAqIEVycmF0YSA2MyBmb3IgU0gtQjMgc3RlcHBpbmdzCi0JICogRXJyYXRhIDEyMiBmb3IgYWxsIHN0ZXBwaW5ncyAoRisgaGF2ZSBpdCBkaXNhYmxlZCBieSBkZWZhdWx0KQotCSAqLwotCWlmIChjLT54ODYgPT0gMTUpIHsKLQkJcmRtc3JsKE1TUl9LOF9IV0NSLCB2YWx1ZSk7Ci0JCXZhbHVlIHw9IDEgPDwgNjsKLQkJd3Jtc3JsKE1TUl9LOF9IV0NSLCB2YWx1ZSk7Ci0JfQotI2VuZGlmCi0KLQkvKiBCaXQgMzEgaW4gbm9ybWFsIENQVUlEIHVzZWQgZm9yIG5vbnN0YW5kYXJkIDNETm93IElEOwotCSAgIDNETm93IGlzIElEZCBieSBiaXQgMzEgaW4gZXh0ZW5kZWQgQ1BVSUQgKDEqMzIrMzEpIGFueXdheSAqLwotCWNsZWFyX2NwdV9jYXAoYywgMCozMiszMSk7Ci0KLQkvKiBPbiBDKyBzdGVwcGluZyBLOCByZXAgbWljcm9jb2RlIHdvcmtzIHdlbGwgZm9yIGNvcHkvbWVtc2V0ICovCi0JbGV2ZWwgPSBjcHVpZF9lYXgoMSk7Ci0JaWYgKGMtPng4NiA9PSAxNSAmJiAoKGxldmVsID49IDB4MGY0OCAmJiBsZXZlbCA8IDB4MGY1MCkgfHwKLQkJCSAgICAgbGV2ZWwgPj0gMHgwZjU4KSkKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOwotCWlmIChjLT54ODYgPT0gMHgxMCB8fCBjLT54ODYgPT0gMHgxMSkKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOwotCi0JLyogRW5hYmxlIHdvcmthcm91bmQgZm9yIEZYU0FWRSBsZWFrICovCi0JaWYgKGMtPng4NiA+PSA2KQotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9GWFNBVkVfTEVBSyk7Ci0KLQlsZXZlbCA9IGdldF9tb2RlbF9uYW1lKGMpOwotCWlmICghbGV2ZWwpIHsKLQkJc3dpdGNoIChjLT54ODYpIHsKLQkJY2FzZSAxNToKLQkJCS8qIFNob3VsZCBkaXN0aW5ndWlzaCBNb2RlbHMgaGVyZSwgYnV0IHRoaXMgaXMgb25seQotCQkJICAgYSBmYWxsYmFjayBhbnl3YXlzLiAqLwotCQkJc3RyY3B5KGMtPng4Nl9tb2RlbF9pZCwgIkhhbW1lciIpOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0JZGlzcGxheV9jYWNoZWluZm8oYyk7Ci0KLQkvKiBNdWx0aSBjb3JlIENQVT8gKi8KLQlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKLQkJYW1kX2RldGVjdF9jbXAoYyk7Ci0KLQlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwNiAmJgotCQkoY3B1aWRfZWR4KDB4ODAwMDAwMDYpICYgMHhmMDAwKSkKLQkJbnVtX2NhY2hlX2xlYXZlcyA9IDQ7Ci0JZWxzZQotCQludW1fY2FjaGVfbGVhdmVzID0gMzsKLQotCWlmIChjLT54ODYgPT0gMHhmIHx8IGMtPng4NiA9PSAweDEwIHx8IGMtPng4NiA9PSAweDExKQotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9LOCk7Ci0KLQkvKiBNRkVOQ0Ugc3RvcHMgUkRUU0Mgc3BlY3VsYXRpb24gKi8KLQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9NRkVOQ0VfUkRUU0MpOwotCi0JaWYgKGMtPng4NiA9PSAweDEwKQotCQlmYW0xMGhfY2hlY2tfZW5hYmxlX21tY2ZnKCk7Ci0KLQlpZiAoYW1kX2FwaWNfdGltZXJfYnJva2VuKCkpCi0JCWRpc2FibGVfYXBpY190aW1lciA9IDE7Ci0KLQlpZiAoYyA9PSAmYm9vdF9jcHVfZGF0YSAmJiBjLT54ODYgPj0gMHhmICYmIGMtPng4NiA8PSAweDExKSB7Ci0JCXVuc2lnbmVkIGxvbmcgbG9uZyB0c2VnOwotCi0JCS8qCi0JCSAqIFNwbGl0IHVwIGRpcmVjdCBtYXBwaW5nIGFyb3VuZCB0aGUgVFNFRyBTTU0gYXJlYS4KLQkJICogRG9uJ3QgZG8gaXQgZm9yIGdicGFnZXMgYmVjYXVzZSB0aGVyZSBzZWVtcyB2ZXJ5IGxpdHRsZQotCQkgKiBiZW5lZml0IGluIGRvaW5nIHNvLgotCQkgKi8KLQkJaWYgKCFyZG1zcmxfc2FmZShNU1JfSzhfVFNFR19BRERSLCAmdHNlZykgJiYKLQkJKHRzZWcgPj4gUE1EX1NISUZUKSA8IChtYXhfcGZuX21hcHBlZCA+PiAoUE1EX1NISUZULVBBR0VfU0hJRlQpKSkKLQkJCXNldF9tZW1vcnlfNGsoKHVuc2lnbmVkIGxvbmcpX192YSh0c2VnKSwgMSk7Ci0JfQotfQotCi12b2lkIF9fY3B1aW5pdCBkZXRlY3RfaHQoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotI2lmZGVmIENPTkZJR19TTVAKLQl1MzIgZWF4LCBlYngsIGVjeCwgZWR4OwotCWludCBpbmRleF9tc2IsIGNvcmVfYml0czsKLQotCWNwdWlkKDEsICZlYXgsICZlYngsICZlY3gsICZlZHgpOwotCi0KLQlpZiAoIWNwdV9oYXMoYywgWDg2X0ZFQVRVUkVfSFQpKQotCQlyZXR1cm47Ci0JaWYgKGNwdV9oYXMoYywgWDg2X0ZFQVRVUkVfQ01QX0xFR0FDWSkpCi0JCWdvdG8gb3V0OwotCi0Jc21wX251bV9zaWJsaW5ncyA9IChlYnggJiAweGZmMDAwMCkgPj4gMTY7Ci0KLQlpZiAoc21wX251bV9zaWJsaW5ncyA9PSAxKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gICJDUFU6IEh5cGVyLVRocmVhZGluZyBpcyBkaXNhYmxlZFxuIik7Ci0JfSBlbHNlIGlmIChzbXBfbnVtX3NpYmxpbmdzID4gMSkgewotCi0JCWlmIChzbXBfbnVtX3NpYmxpbmdzID4gTlJfQ1BVUykgewotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiQ1BVOiBVbnN1cHBvcnRlZCBudW1iZXIgb2YgIgotCQkJICAgICAgICJzaWJsaW5ncyAlZCIsIHNtcF9udW1fc2libGluZ3MpOwotCQkJc21wX251bV9zaWJsaW5ncyA9IDE7Ci0JCQlyZXR1cm47Ci0JCX0KLQotCQlpbmRleF9tc2IgPSBnZXRfY291bnRfb3JkZXIoc21wX251bV9zaWJsaW5ncyk7Ci0JCWMtPnBoeXNfcHJvY19pZCA9IHBoeXNfcGtnX2lkKGluZGV4X21zYik7Ci0KLQkJc21wX251bV9zaWJsaW5ncyA9IHNtcF9udW1fc2libGluZ3MgLyBjLT54ODZfbWF4X2NvcmVzOwotCi0JCWluZGV4X21zYiA9IGdldF9jb3VudF9vcmRlcihzbXBfbnVtX3NpYmxpbmdzKTsKLQotCQljb3JlX2JpdHMgPSBnZXRfY291bnRfb3JkZXIoYy0+eDg2X21heF9jb3Jlcyk7Ci0KLQkJYy0+Y3B1X2NvcmVfaWQgPSBwaHlzX3BrZ19pZChpbmRleF9tc2IpICYKLQkJCQkJICAgICAgICgoMSA8PCBjb3JlX2JpdHMpIC0gMSk7Ci0JfQotb3V0OgotCWlmICgoYy0+eDg2X21heF9jb3JlcyAqIHNtcF9udW1fc2libGluZ3MpID4gMSkgewotCQlwcmludGsoS0VSTl9JTkZPICAiQ1BVOiBQaHlzaWNhbCBQcm9jZXNzb3IgSUQ6ICVkXG4iLAotCQkgICAgICAgYy0+cGh5c19wcm9jX2lkKTsKLQkJcHJpbnRrKEtFUk5fSU5GTyAgIkNQVTogUHJvY2Vzc29yIENvcmUgSUQ6ICVkXG4iLAotCQkgICAgICAgYy0+Y3B1X2NvcmVfaWQpOwotCX0KLQotI2VuZGlmCi19Ci0KLS8qCi0gKiBmaW5kIG91dCB0aGUgbnVtYmVyIG9mIHByb2Nlc3NvciBjb3JlcyBvbiB0aGUgZGllCi0gKi8KLXN0YXRpYyBpbnQgX19jcHVpbml0IGludGVsX251bV9jcHVfY29yZXMoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCXVuc2lnbmVkIGludCBlYXgsIHQ7Ci0KLQlpZiAoYy0+Y3B1aWRfbGV2ZWwgPCA0KQotCQlyZXR1cm4gMTsKLQotCWNwdWlkX2NvdW50KDQsIDAsICZlYXgsICZ0LCAmdCwgJnQpOwotCi0JaWYgKGVheCAmIDB4MWYpCi0JCXJldHVybiAoKGVheCA+PiAyNikgKyAxKTsKLQllbHNlCi0JCXJldHVybiAxOwotfQotCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgc3JhdF9kZXRlY3Rfbm9kZSh2b2lkKQotewotI2lmZGVmIENPTkZJR19OVU1BCi0JdW5zaWduZWQgbm9kZTsKLQlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCWludCBhcGljaWQgPSBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKTsKLQotCS8qIERvbid0IGRvIHRoZSBmdW5reSBmYWxsYmFjayBoZXVyaXN0aWNzIHRoZSBBTUQgdmVyc2lvbiBlbXBsb3lzCi0JICAgZm9yIG5vdy4gKi8KLQlub2RlID0gYXBpY2lkX3RvX25vZGVbYXBpY2lkXTsKLQlpZiAobm9kZSA9PSBOVU1BX05PX05PREUgfHwgIW5vZGVfb25saW5lKG5vZGUpKQotCQlub2RlID0gZmlyc3Rfbm9kZShub2RlX29ubGluZV9tYXApOwotCW51bWFfc2V0X25vZGUoY3B1LCBub2RlKTsKLQotCXByaW50ayhLRVJOX0lORk8gIkNQVSAlZC8leCAtPiBOb2RlICVkXG4iLCBjcHUsIGFwaWNpZCwgbm9kZSk7Ci0jZW5kaWYKLX0KLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2luaXRfaW50ZWwoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCWlmICgoYy0+eDg2ID09IDB4ZiAmJiBjLT54ODZfbW9kZWwgPj0gMHgwMykgfHwKLQkgICAgKGMtPng4NiA9PSAweDYgJiYgYy0+eDg2X21vZGVsID49IDB4MGUpKQotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpOwotfQotCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgaW5pdF9pbnRlbChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JLyogQ2FjaGUgc2l6ZXMgKi8KLQl1bnNpZ25lZCBuOwotCi0JaW5pdF9pbnRlbF9jYWNoZWluZm8oYyk7Ci0JaWYgKGMtPmNwdWlkX2xldmVsID4gOSkgewotCQl1bnNpZ25lZCBlYXggPSBjcHVpZF9lYXgoMTApOwotCQkvKiBDaGVjayBmb3IgdmVyc2lvbiBhbmQgdGhlIG51bWJlciBvZiBjb3VudGVycyAqLwotCQlpZiAoKGVheCAmIDB4ZmYpICYmICgoKGVheD4+OCkgJiAweGZmKSA+IDEpKQotCQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQVJDSF9QRVJGTU9OKTsKLQl9Ci0KLQlpZiAoY3B1X2hhc19kcykgewotCQl1bnNpZ25lZCBpbnQgbDEsIGwyOwotCQlyZG1zcihNU1JfSUEzMl9NSVNDX0VOQUJMRSwgbDEsIGwyKTsKLQkJaWYgKCEobDEgJiAoMTw8MTEpKSkKLQkJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0JUUyk7Ci0JCWlmICghKGwxICYgKDE8PDEyKSkpCi0JCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9QRUJTKTsKLQl9Ci0KLQotCWlmIChjcHVfaGFzX2J0cykKLQkJZHNfaW5pdF9pbnRlbChjKTsKLQotCW4gPSBjLT5leHRlbmRlZF9jcHVpZF9sZXZlbDsKLQlpZiAobiA+PSAweDgwMDAwMDA4KSB7Ci0JCXVuc2lnbmVkIGVheCA9IGNwdWlkX2VheCgweDgwMDAwMDA4KTsKLQkJYy0+eDg2X3ZpcnRfYml0cyA9IChlYXggPj4gOCkgJiAweGZmOwotCQljLT54ODZfcGh5c19iaXRzID0gZWF4ICYgMHhmZjsKLQkJLyogQ1BVSUQgd29ya2Fyb3VuZCBmb3IgSW50ZWwgMEYzNCBDUFUgKi8KLQkJaWYgKGMtPng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCAmJgotCQkgICAgYy0+eDg2ID09IDB4RiAmJiBjLT54ODZfbW9kZWwgPT0gMHgzICYmCi0JCSAgICBjLT54ODZfbWFzayA9PSAweDQpCi0JCQljLT54ODZfcGh5c19iaXRzID0gMzY7Ci0JfQotCi0JaWYgKGMtPng4NiA9PSAxNSkKLQkJYy0+eDg2X2NhY2hlX2FsaWdubWVudCA9IGMtPng4Nl9jbGZsdXNoX3NpemUgKiAyOwotCWlmIChjLT54ODYgPT0gNikKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOwotCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0xGRU5DRV9SRFRTQyk7Ci0JYy0+eDg2X21heF9jb3JlcyA9IGludGVsX251bV9jcHVfY29yZXMoYyk7Ci0KLQlzcmF0X2RldGVjdF9ub2RlKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2NlbnRhdXIoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCWlmIChjLT54ODYgPT0gMHg2ICYmIGMtPng4Nl9tb2RlbCA+PSAweGYpCi0JCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBpbml0X2NlbnRhdXIoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCS8qIENhY2hlIHNpemVzICovCi0JdW5zaWduZWQgbjsKLQotCW4gPSBjLT5leHRlbmRlZF9jcHVpZF9sZXZlbDsKLQlpZiAobiA+PSAweDgwMDAwMDA4KSB7Ci0JCXVuc2lnbmVkIGVheCA9IGNwdWlkX2VheCgweDgwMDAwMDA4KTsKLQkJYy0+eDg2X3ZpcnRfYml0cyA9IChlYXggPj4gOCkgJiAweGZmOwotCQljLT54ODZfcGh5c19iaXRzID0gZWF4ICYgMHhmZjsKLQl9Ci0KLQlpZiAoYy0+eDg2ID09IDB4NiAmJiBjLT54ODZfbW9kZWwgPj0gMHhmKSB7Ci0JCWMtPng4Nl9jYWNoZV9hbGlnbm1lbnQgPSBjLT54ODZfY2xmbHVzaF9zaXplICogMjsKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKTsKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfUkVQX0dPT0QpOwotCX0KLQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9MRkVOQ0VfUkRUU0MpOwotfQotCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgZ2V0X2NwdV92ZW5kb3Ioc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCWNoYXIgKnYgPSBjLT54ODZfdmVuZG9yX2lkOwotCi0JaWYgKCFzdHJjbXAodiwgIkF1dGhlbnRpY0FNRCIpKQotCQljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9BTUQ7Ci0JZWxzZSBpZiAoIXN0cmNtcCh2LCAiR2VudWluZUludGVsIikpCi0JCWMtPng4Nl92ZW5kb3IgPSBYODZfVkVORE9SX0lOVEVMOwotCWVsc2UgaWYgKCFzdHJjbXAodiwgIkNlbnRhdXJIYXVscyIpKQotCQljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9DRU5UQVVSOwotCWVsc2UKLQkJYy0+eDg2X3ZlbmRvciA9IFg4Nl9WRU5ET1JfVU5LTk9XTjsKLX0KLQotLyogRG8gc29tZSBlYXJseSBjcHVpZCBvbiB0aGUgYm9vdCBDUFUgdG8gZ2V0IHNvbWUgcGFyYW1ldGVyIHRoYXQgYXJlCi0gICBuZWVkZWQgYmVmb3JlIGNoZWNrX2J1Z3MuIEV2ZXJ5dGhpbmcgYWR2YW5jZWQgaXMgaW4gaWRlbnRpZnlfY3B1Ci0gICBiZWxvdy4gKi8KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCXUzMiB0Zm1zLCB4bHZsOwotCi0JYy0+bG9vcHNfcGVyX2ppZmZ5ID0gbG9vcHNfcGVyX2ppZmZ5OwotCWMtPng4Nl9jYWNoZV9zaXplID0gLTE7Ci0JYy0+eDg2X3ZlbmRvciA9IFg4Nl9WRU5ET1JfVU5LTk9XTjsKLQljLT54ODZfbW9kZWwgPSBjLT54ODZfbWFzayA9IDA7CS8qIFNvIGZhciB1bmtub3duLi4uICovCi0JYy0+eDg2X3ZlbmRvcl9pZFswXSA9ICdcMCc7IC8qIFVuc2V0ICovCi0JYy0+eDg2X21vZGVsX2lkWzBdID0gJ1wwJzsgIC8qIFVuc2V0ICovCi0JYy0+eDg2X2NsZmx1c2hfc2l6ZSA9IDY0OwotCWMtPng4Nl9jYWNoZV9hbGlnbm1lbnQgPSBjLT54ODZfY2xmbHVzaF9zaXplOwotCWMtPng4Nl9tYXhfY29yZXMgPSAxOwotCWMtPng4Nl9jb3JlaWRfYml0cyA9IDA7Ci0JYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPSAwOwotCW1lbXNldCgmYy0+eDg2X2NhcGFiaWxpdHksIDAsIHNpemVvZiBjLT54ODZfY2FwYWJpbGl0eSk7Ci0KLQkvKiBHZXQgdmVuZG9yIG5hbWUgKi8KLQljcHVpZCgweDAwMDAwMDAwLCAodW5zaWduZWQgaW50ICopJmMtPmNwdWlkX2xldmVsLAotCSAgICAgICh1bnNpZ25lZCBpbnQgKikmYy0+eDg2X3ZlbmRvcl9pZFswXSwKLQkgICAgICAodW5zaWduZWQgaW50ICopJmMtPng4Nl92ZW5kb3JfaWRbOF0sCi0JICAgICAgKHVuc2lnbmVkIGludCAqKSZjLT54ODZfdmVuZG9yX2lkWzRdKTsKLQotCWdldF9jcHVfdmVuZG9yKGMpOwotCi0JLyogSW5pdGlhbGl6ZSB0aGUgc3RhbmRhcmQgc2V0IG9mIGNhcGFiaWxpdGllcyAqLwotCS8qIE5vdGUgdGhhdCB0aGUgdmVuZG9yLXNwZWNpZmljIGNvZGUgYmVsb3cgbWlnaHQgb3ZlcnJpZGUgKi8KLQotCS8qIEludGVsLWRlZmluZWQgZmxhZ3M6IGxldmVsIDB4MDAwMDAwMDEgKi8KLQlpZiAoYy0+Y3B1aWRfbGV2ZWwgPj0gMHgwMDAwMDAwMSkgewotCQlfX3UzMiBtaXNjOwotCQljcHVpZCgweDAwMDAwMDAxLCAmdGZtcywgJm1pc2MsICZjLT54ODZfY2FwYWJpbGl0eVs0XSwKLQkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5WzBdKTsKLQkJYy0+eDg2ID0gKHRmbXMgPj4gOCkgJiAweGY7Ci0JCWMtPng4Nl9tb2RlbCA9ICh0Zm1zID4+IDQpICYgMHhmOwotCQljLT54ODZfbWFzayA9IHRmbXMgJiAweGY7Ci0JCWlmIChjLT54ODYgPT0gMHhmKQotCQkJYy0+eDg2ICs9ICh0Zm1zID4+IDIwKSAmIDB4ZmY7Ci0JCWlmIChjLT54ODYgPj0gMHg2KQotCQkJYy0+eDg2X21vZGVsICs9ICgodGZtcyA+PiAxNikgJiAweEYpIDw8IDQ7Ci0JCWlmICh0ZXN0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ0xGTFNIKSkKLQkJCWMtPng4Nl9jbGZsdXNoX3NpemUgPSAoKG1pc2MgPj4gOCkgJiAweGZmKSAqIDg7Ci0JfSBlbHNlIHsKLQkJLyogSGF2ZSBDUFVJRCBsZXZlbCAwIG9ubHkgLSB1bmhlYXJkIG9mICovCi0JCWMtPng4NiA9IDQ7Ci0JfQotCi0JYy0+aW5pdGlhbF9hcGljaWQgPSAoY3B1aWRfZWJ4KDEpID4+IDI0KSAmIDB4ZmY7Ci0jaWZkZWYgQ09ORklHX1NNUAotCWMtPnBoeXNfcHJvY19pZCA9IGMtPmluaXRpYWxfYXBpY2lkOwotI2VuZGlmCi0JLyogQU1ELWRlZmluZWQgZmxhZ3M6IGxldmVsIDB4ODAwMDAwMDEgKi8KLQl4bHZsID0gY3B1aWRfZWF4KDB4ODAwMDAwMDApOwotCWMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID0geGx2bDsKLQlpZiAoKHhsdmwgJiAweGZmZmYwMDAwKSA9PSAweDgwMDAwMDAwKSB7Ci0JCWlmICh4bHZsID49IDB4ODAwMDAwMDEpIHsKLQkJCWMtPng4Nl9jYXBhYmlsaXR5WzFdID0gY3B1aWRfZWR4KDB4ODAwMDAwMDEpOwotCQkJYy0+eDg2X2NhcGFiaWxpdHlbNl0gPSBjcHVpZF9lY3goMHg4MDAwMDAwMSk7Ci0JCX0KLQkJaWYgKHhsdmwgPj0gMHg4MDAwMDAwNCkKLQkJCWdldF9tb2RlbF9uYW1lKGMpOyAvKiBEZWZhdWx0IG5hbWUgKi8KLQl9Ci0KLQkvKiBUcmFuc21ldGEtZGVmaW5lZCBmbGFnczogbGV2ZWwgMHg4MDg2MDAwMSAqLwotCXhsdmwgPSBjcHVpZF9lYXgoMHg4MDg2MDAwMCk7Ci0JaWYgKCh4bHZsICYgMHhmZmZmMDAwMCkgPT0gMHg4MDg2MDAwMCkgewotCQkvKiBEb24ndCBzZXQgeDg2X2NwdWlkX2xldmVsIGhlcmUgZm9yIG5vdyB0byBub3QgY29uZnVzZS4gKi8KLQkJaWYgKHhsdmwgPj0gMHg4MDg2MDAwMSkKLQkJCWMtPng4Nl9jYXBhYmlsaXR5WzJdID0gY3B1aWRfZWR4KDB4ODA4NjAwMDEpOwotCX0KLQotCWMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID0gY3B1aWRfZWF4KDB4ODAwMDAwMDApOwotCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDA3KQotCQljLT54ODZfcG93ZXIgPSBjcHVpZF9lZHgoMHg4MDAwMDAwNyk7Ci0KLQlzd2l0Y2ggKGMtPng4Nl92ZW5kb3IpIHsKLQljYXNlIFg4Nl9WRU5ET1JfQU1EOgotCQllYXJseV9pbml0X2FtZChjKTsKLQkJYnJlYWs7Ci0JY2FzZSBYODZfVkVORE9SX0lOVEVMOgotCQllYXJseV9pbml0X2ludGVsKGMpOwotCQlicmVhazsKLQljYXNlIFg4Nl9WRU5ET1JfQ0VOVEFVUjoKLQkJZWFybHlfaW5pdF9jZW50YXVyKGMpOwotCQlicmVhazsKLQl9Ci0KLQl2YWxpZGF0ZV9wYXRfc3VwcG9ydChjKTsKLX0KLQotLyoKLSAqIFRoaXMgZG9lcyB0aGUgaGFyZCB3b3JrIG9mIGFjdHVhbGx5IHBpY2tpbmcgYXBhcnQgdGhlIENQVSBzdHVmZi4uLgotICovCi12b2lkIF9fY3B1aW5pdCBpZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCWludCBpOwotCi0JZWFybHlfaWRlbnRpZnlfY3B1KGMpOwotCi0JaW5pdF9zY2F0dGVyZWRfY3B1aWRfZmVhdHVyZXMoYyk7Ci0KLQljLT5hcGljaWQgPSBwaHlzX3BrZ19pZCgwKTsKLQotCS8qCi0JICogVmVuZG9yLXNwZWNpZmljIGluaXRpYWxpemF0aW9uLiAgSW4gdGhpcyBzZWN0aW9uIHdlCi0JICogY2Fub25pY2FsaXplIHRoZSBmZWF0dXJlIGZsYWdzLCBtZWFuaW5nIGlmIHRoZXJlIGFyZQotCSAqIGZlYXR1cmVzIGEgY2VydGFpbiBDUFUgc3VwcG9ydHMgd2hpY2ggQ1BVSUQgZG9lc24ndAotCSAqIHRlbGwgdXMsIENQVUlEIGNsYWltaW5nIGluY29ycmVjdCBmbGFncywgb3Igb3RoZXIgYnVncywKLQkgKiB3ZSBoYW5kbGUgdGhlbSBoZXJlLgotCSAqCi0JICogQXQgdGhlIGVuZCBvZiB0aGlzIHNlY3Rpb24sIGMtPng4Nl9jYXBhYmlsaXR5IGJldHRlcgotCSAqIGluZGljYXRlIHRoZSBmZWF0dXJlcyB0aGlzIENQVSBnZW51aW5lbHkgc3VwcG9ydHMhCi0JICovCi0Jc3dpdGNoIChjLT54ODZfdmVuZG9yKSB7Ci0JY2FzZSBYODZfVkVORE9SX0FNRDoKLQkJaW5pdF9hbWQoYyk7Ci0JCWJyZWFrOwotCi0JY2FzZSBYODZfVkVORE9SX0lOVEVMOgotCQlpbml0X2ludGVsKGMpOwotCQlicmVhazsKLQotCWNhc2UgWDg2X1ZFTkRPUl9DRU5UQVVSOgotCQlpbml0X2NlbnRhdXIoYyk7Ci0JCWJyZWFrOwotCi0JY2FzZSBYODZfVkVORE9SX1VOS05PV046Ci0JZGVmYXVsdDoKLQkJZGlzcGxheV9jYWNoZWluZm8oYyk7Ci0JCWJyZWFrOwotCX0KLQotCWRldGVjdF9odChjKTsKLQotCS8qCi0JICogT24gU01QLCBib290X2NwdV9kYXRhIGhvbGRzIHRoZSBjb21tb24gZmVhdHVyZSBzZXQgYmV0d2VlbgotCSAqIGFsbCBDUFVzOyBzbyBtYWtlIHN1cmUgdGhhdCB3ZSBpbmRpY2F0ZSB3aGljaCBmZWF0dXJlcyBhcmUKLQkgKiBjb21tb24gYmV0d2VlbiB0aGUgQ1BVcy4gIFRoZSBmaXJzdCB0aW1lIHRoaXMgcm91dGluZSBnZXRzCi0JICogZXhlY3V0ZWQsIGMgPT0gJmJvb3RfY3B1X2RhdGEuCi0JICovCi0JaWYgKGMgIT0gJmJvb3RfY3B1X2RhdGEpIHsKLQkJLyogQU5EIHRoZSBhbHJlYWR5IGFjY3VtdWxhdGVkIGZsYWdzIHdpdGggdGhlc2UgKi8KLQkJZm9yIChpID0gMDsgaSA8IE5DQVBJTlRTOyBpKyspCi0JCQlib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5W2ldICY9IGMtPng4Nl9jYXBhYmlsaXR5W2ldOwotCX0KLQotCS8qIENsZWFyIGFsbCBmbGFncyBvdmVycmlkZW4gYnkgb3B0aW9ucyAqLwotCWZvciAoaSA9IDA7IGkgPCBOQ0FQSU5UUzsgaSsrKQotCQljLT54ODZfY2FwYWJpbGl0eVtpXSAmPSB+Y2xlYXJlZF9jcHVfY2Fwc1tpXTsKLQotI2lmZGVmIENPTkZJR19YODZfTUNFCi0JbWNoZWNrX2luaXQoYyk7Ci0jZW5kaWYKLQlzZWxlY3RfaWRsZV9yb3V0aW5lKGMpOwotCi0jaWZkZWYgQ09ORklHX05VTUEKLQludW1hX2FkZF9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKLSNlbmRpZgotCi19Ci0KLXZvaWQgX19jcHVpbml0IGlkZW50aWZ5X2Jvb3RfY3B1KHZvaWQpCi17Ci0JaWRlbnRpZnlfY3B1KCZib290X2NwdV9kYXRhKTsKLX0KLQotdm9pZCBfX2NwdWluaXQgaWRlbnRpZnlfc2Vjb25kYXJ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JQlVHX09OKGMgPT0gJmJvb3RfY3B1X2RhdGEpOwotCWlkZW50aWZ5X2NwdShjKTsKLQltdHJyX2FwX2luaXQoKTsKLX0KLQotc3RhdGljIF9faW5pdCBpbnQgc2V0dXBfbm9jbGZsdXNoKGNoYXIgKmFyZykKLXsKLQlzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX0NMRkxTSCk7Ci0JcmV0dXJuIDE7Ci19Ci1fX3NldHVwKCJub2NsZmx1c2giLCBzZXR1cF9ub2NsZmx1c2gpOwotCi12b2lkIF9fY3B1aW5pdCBwcmludF9jcHVfaW5mbyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JaWYgKGMtPng4Nl9tb2RlbF9pZFswXSkKLQkJcHJpbnRrKEtFUk5fQ09OVCAiJXMiLCBjLT54ODZfbW9kZWxfaWQpOwotCi0JaWYgKGMtPng4Nl9tYXNrIHx8IGMtPmNwdWlkX2xldmVsID49IDApCi0JCXByaW50ayhLRVJOX0NPTlQgIiBzdGVwcGluZyAlMDJ4XG4iLCBjLT54ODZfbWFzayk7Ci0JZWxzZQotCQlwcmludGsoS0VSTl9DT05UICJcbiIpOwotfQotCi1zdGF0aWMgX19pbml0IGludCBzZXR1cF9kaXNhYmxlY3B1aWQoY2hhciAqYXJnKQotewotCWludCBiaXQ7Ci0JaWYgKGdldF9vcHRpb24oJmFyZywgJmJpdCkgJiYgYml0IDwgTkNBUElOVFMqMzIpCi0JCXNldHVwX2NsZWFyX2NwdV9jYXAoYml0KTsKLQllbHNlCi0JCXJldHVybiAwOwotCXJldHVybiAxOwotfQotX19zZXR1cCgiY2xlYXJjcHVpZD0iLCBzZXR1cF9kaXNhYmxlY3B1aWQpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NldHVwX3BlcmNwdS5jIGIvYXJjaC94ODYva2VybmVsL3NldHVwX3BlcmNwdS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhYzY4NDMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfcGVyY3B1LmMKQEAgLTAsMCArMSwzOTkgQEAKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+CisjaW5jbHVkZSA8bGludXgvY3Jhc2hfZHVtcC5oPgorI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxhc20vcGVyY3B1Lmg+CisjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgorI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KKyNpbmNsdWRlIDxhc20vYXBpY2RlZi5oPgorI2luY2x1ZGUgPGFzbS9oaWdobWVtLmg+CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKK3Vuc2lnbmVkIGludCBudW1fcHJvY2Vzc29yczsKK3Vuc2lnbmVkIGRpc2FibGVkX2NwdXMgX19jcHVpbml0ZGF0YTsKKy8qIFByb2Nlc3NvciB0aGF0IGlzIGRvaW5nIHRoZSBib290IHVwICovCit1bnNpZ25lZCBpbnQgYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkID0gLTFVOwordW5zaWduZWQgaW50IG1heF9waHlzaWNhbF9hcGljaWQ7CitFWFBPUlRfU1lNQk9MKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCk7CisKKy8qIEJpdG1hc2sgb2YgcGh5c2ljYWxseSBleGlzdGluZyBDUFVzICovCitwaHlzaWRfbWFza190IHBoeXNfY3B1X3ByZXNlbnRfbWFwOworI2VuZGlmCisKKy8qIG1hcCBjcHUgaW5kZXggdG8gcGh5c2ljYWwgQVBJQyBJRCAqLworREVGSU5FX0VBUkxZX1BFUl9DUFUodTE2LCB4ODZfY3B1X3RvX2FwaWNpZCwgQkFEX0FQSUNJRCk7CitERUZJTkVfRUFSTFlfUEVSX0NQVSh1MTYsIHg4Nl9iaW9zX2NwdV9hcGljaWQsIEJBRF9BUElDSUQpOworRVhQT1JUX0VBUkxZX1BFUl9DUFVfU1lNQk9MKHg4Nl9jcHVfdG9fYXBpY2lkKTsKK0VYUE9SVF9FQVJMWV9QRVJfQ1BVX1NZTUJPTCh4ODZfYmlvc19jcHVfYXBpY2lkKTsKKworI2lmIGRlZmluZWQoQ09ORklHX05VTUEpICYmIGRlZmluZWQoQ09ORklHX1g4Nl82NCkKKyNkZWZpbmUJWDg2XzY0X05VTUEJMQorCisvKiBtYXAgY3B1IGluZGV4IHRvIG5vZGUgaW5kZXggKi8KK0RFRklORV9FQVJMWV9QRVJfQ1BVKGludCwgeDg2X2NwdV90b19ub2RlX21hcCwgTlVNQV9OT19OT0RFKTsKK0VYUE9SVF9FQVJMWV9QRVJfQ1BVX1NZTUJPTCh4ODZfY3B1X3RvX25vZGVfbWFwKTsKKworLyogd2hpY2ggbG9naWNhbCBDUFVzIGFyZSBvbiB3aGljaCBub2RlcyAqLworY3B1bWFza190ICpub2RlX3RvX2NwdW1hc2tfbWFwOworRVhQT1JUX1NZTUJPTChub2RlX3RvX2NwdW1hc2tfbWFwKTsKKworLyogc2V0dXAgbm9kZV90b19jcHVtYXNrX21hcCAqLworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX25vZGVfdG9fY3B1bWFza19tYXAodm9pZCk7CisKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfbm9kZV90b19jcHVtYXNrX21hcCh2b2lkKSB7IH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEpICYmIGRlZmluZWQoQ09ORklHX1g4Nl9TTVApCisvKgorICogQ29weSBkYXRhIHVzZWQgaW4gZWFybHkgaW5pdCByb3V0aW5lcyBmcm9tIHRoZSBpbml0aWFsIGFycmF5cyB0byB0aGUKKyAqIHBlciBjcHUgZGF0YSBhcmVhcy4gIFRoZXNlIGFycmF5cyB0aGVuIGJlY29tZSBleHBlbmRhYmxlIGFuZCB0aGUKKyAqICpfZWFybHlfcHRyJ3MgYXJlIHplcm9lZCBpbmRpY2F0aW5nIHRoYXQgdGhlIHN0YXRpYyBhcnJheXMgYXJlIGdvbmUuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9wZXJfY3B1X21hcHModm9pZCkKK3sKKwlpbnQgY3B1OworCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgeworCQlwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpID0KKwkJCQllYXJseV9wZXJfY3B1X21hcCh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KTsKKwkJcGVyX2NwdSh4ODZfYmlvc19jcHVfYXBpY2lkLCBjcHUpID0KKwkJCQllYXJseV9wZXJfY3B1X21hcCh4ODZfYmlvc19jcHVfYXBpY2lkLCBjcHUpOworI2lmZGVmIFg4Nl82NF9OVU1BCisJCXBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KSA9CisJCQkJZWFybHlfcGVyX2NwdV9tYXAoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KTsKKyNlbmRpZgorCX0KKworCS8qIGluZGljYXRlIHRoZSBlYXJseSBzdGF0aWMgYXJyYXlzIHdpbGwgc29vbiBiZSBnb25lICovCisJZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19hcGljaWQpID0gTlVMTDsKKwllYXJseV9wZXJfY3B1X3B0cih4ODZfYmlvc19jcHVfYXBpY2lkKSA9IE5VTEw7CisjaWZkZWYgWDg2XzY0X05VTUEKKwllYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKSA9IE5VTEw7CisjZW5kaWYKK30KKworI2lmZGVmIENPTkZJR19IQVZFX0NQVU1BU0tfT0ZfQ1BVX01BUAorY3B1bWFza190ICpjcHVtYXNrX29mX2NwdV9tYXAgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woY3B1bWFza19vZl9jcHVfbWFwKTsKKworLyogcmVxdWlyZXMgbnJfY3B1X2lkcyB0byBiZSBpbml0aWFsaXplZCAqLworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2NwdW1hc2tfb2ZfY3B1KHZvaWQpCit7CisJaW50IGk7CisKKwkvKiBhbGxvY19ib290bWVtIHplcm9lcyBtZW1vcnkgKi8KKwljcHVtYXNrX29mX2NwdV9tYXAgPSBhbGxvY19ib290bWVtX2xvdyhzaXplb2YoY3B1bWFza190KSAqIG5yX2NwdV9pZHMpOworCWZvciAoaSA9IDA7IGkgPCBucl9jcHVfaWRzOyBpKyspCisJCWNwdV9zZXQoaSwgY3B1bWFza19vZl9jcHVfbWFwW2ldKTsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfY3B1bWFza19vZl9jcHUodm9pZCkgeyB9CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19YODZfMzIKKy8qCisgKiBHcmVhdCBmdXR1cmUgbm90LXNvLWZ1dHVyaXN0aWMgcGxhbjogbWFrZSBpMzg2IGFuZCB4ODZfNjQgZG8gaXQKKyAqIHRoZSBzYW1lIHdheQorICovCit1bnNpZ25lZCBsb25nIF9fcGVyX2NwdV9vZmZzZXRbTlJfQ1BVU10gX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woX19wZXJfY3B1X29mZnNldCk7CitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfY3B1X3BkYV9tYXAodm9pZCkgeyB9CisKKyNlbGlmICFkZWZpbmVkKENPTkZJR19TTVApCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfY3B1X3BkYV9tYXAodm9pZCkgeyB9CisKKyNlbHNlIC8qIENPTkZJR19TTVAgJiYgQ09ORklHX1g4Nl82NCAqLworCisvKgorICogQWxsb2NhdGUgY3B1X3BkYSBwb2ludGVyIHRhYmxlIGFuZCBhcnJheSB2aWEgYWxsb2NfYm9vdG1lbS4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2NwdV9wZGFfbWFwKHZvaWQpCit7CisJY2hhciAqcGRhOworCXN0cnVjdCB4ODY2NF9wZGEgKipuZXdfY3B1X3BkYTsKKwl1bnNpZ25lZCBsb25nIHNpemU7CisJaW50IGNwdTsKKworCXNpemUgPSByb3VuZHVwKHNpemVvZihzdHJ1Y3QgeDg2NjRfcGRhKSwgY2FjaGVfbGluZV9zaXplKCkpOworCisJLyogYWxsb2NhdGUgY3B1X3BkYSBhcnJheSBhbmQgcG9pbnRlciB0YWJsZSAqLworCXsKKwkJdW5zaWduZWQgbG9uZyB0c2l6ZSA9IG5yX2NwdV9pZHMgKiBzaXplb2Yodm9pZCAqKTsKKwkJdW5zaWduZWQgbG9uZyBhc2l6ZSA9IHNpemUgKiAobnJfY3B1X2lkcyAtIDEpOworCisJCXRzaXplID0gcm91bmR1cCh0c2l6ZSwgY2FjaGVfbGluZV9zaXplKCkpOworCQluZXdfY3B1X3BkYSA9IGFsbG9jX2Jvb3RtZW0odHNpemUgKyBhc2l6ZSk7CisJCXBkYSA9IChjaGFyICopbmV3X2NwdV9wZGEgKyB0c2l6ZTsKKwl9CisKKwkvKiBpbml0aWFsaXplIHBvaW50ZXIgdGFibGUgdG8gc3RhdGljIHBkYSdzICovCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgeworCQlpZiAoY3B1ID09IDApIHsKKwkJCS8qIGxlYXZlIGJvb3QgY3B1IHBkYSBpbiBwbGFjZSAqLworCQkJbmV3X2NwdV9wZGFbMF0gPSBjcHVfcGRhKDApOworCQkJY29udGludWU7CisJCX0KKwkJbmV3X2NwdV9wZGFbY3B1XSA9IChzdHJ1Y3QgeDg2NjRfcGRhICopcGRhOworCQluZXdfY3B1X3BkYVtjcHVdLT5pbl9ib290bWVtID0gMTsKKwkJcGRhICs9IHNpemU7CisJfQorCisJLyogcG9pbnQgdG8gbmV3IHBvaW50ZXIgdGFibGUgKi8KKwlfY3B1X3BkYSA9IG5ld19jcHVfcGRhOworfQorI2VuZGlmCisKKy8qCisgKiBHcmVhdCBmdXR1cmUgcGxhbjoKKyAqIERlY2xhcmUgUERBIGl0c2VsZiBhbmQgc3VwcG9ydCAoaXJxc3RhY2ssdHNzLHBnZCkgYXMgcGVyIGNwdSBkYXRhLgorICogQWx3YXlzIHBvaW50ICVncyB0byBpdHMgYmVnaW5uaW5nCisgKi8KK3ZvaWQgX19pbml0IHNldHVwX3Blcl9jcHVfYXJlYXModm9pZCkKK3sKKwlzc2l6ZV90IHNpemUgPSBQRVJDUFVfRU5PVUdIX1JPT007CisJY2hhciAqcHRyOworCWludCBjcHU7CisKKwkvKiBTZXR1cCBjcHVfcGRhIG1hcCAqLworCXNldHVwX2NwdV9wZGFfbWFwKCk7CisKKwkvKiBDb3B5IHNlY3Rpb24gZm9yIGVhY2ggQ1BVICh3ZSBkaXNjYXJkIHRoZSBvcmlnaW5hbCkgKi8KKwlzaXplID0gUEVSQ1BVX0VOT1VHSF9ST09NOworCXByaW50ayhLRVJOX0lORk8gIlBFUkNQVTogQWxsb2NhdGluZyAlemQgYnl0ZXMgb2YgcGVyIGNwdSBkYXRhXG4iLAorCQkJICBzaXplKTsKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKKyNpZm5kZWYgQ09ORklHX05FRURfTVVMVElQTEVfTk9ERVMKKwkJcHRyID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhzaXplKTsKKyNlbHNlCisJCWludCBub2RlID0gZWFybHlfY3B1X3RvX25vZGUoY3B1KTsKKwkJaWYgKCFub2RlX29ubGluZShub2RlKSB8fCAhTk9ERV9EQVRBKG5vZGUpKSB7CisJCQlwdHIgPSBhbGxvY19ib290bWVtX3BhZ2VzKHNpemUpOworCQkJcHJpbnRrKEtFUk5fSU5GTworCQkJICAgICAgICJjcHUgJWQgaGFzIG5vIG5vZGUgJWQgb3Igbm9kZS1sb2NhbCBtZW1vcnlcbiIsCisJCQkJY3B1LCBub2RlKTsKKwkJfQorCQllbHNlCisJCQlwdHIgPSBhbGxvY19ib290bWVtX3BhZ2VzX25vZGUoTk9ERV9EQVRBKG5vZGUpLCBzaXplKTsKKyNlbmRpZgorCQlwZXJfY3B1X29mZnNldChjcHUpID0gcHRyIC0gX19wZXJfY3B1X3N0YXJ0OworCQltZW1jcHkocHRyLCBfX3Blcl9jcHVfc3RhcnQsIF9fcGVyX2NwdV9lbmQgLSBfX3Blcl9jcHVfc3RhcnQpOworCisJfQorCisJcHJpbnRrKEtFUk5fREVCVUcgIk5SX0NQVVM6ICVkLCBucl9jcHVfaWRzOiAlZCwgbnJfbm9kZV9pZHMgJWRcbiIsCisJCU5SX0NQVVMsIG5yX2NwdV9pZHMsIG5yX25vZGVfaWRzKTsKKworCS8qIFNldHVwIHBlcmNwdSBkYXRhIG1hcHMgKi8KKwlzZXR1cF9wZXJfY3B1X21hcHMoKTsKKworCS8qIFNldHVwIG5vZGUgdG8gY3B1bWFzayBtYXAgKi8KKwlzZXR1cF9ub2RlX3RvX2NwdW1hc2tfbWFwKCk7CisKKwkvKiBTZXR1cCBjcHVtYXNrX29mX2NwdSBtYXAgKi8KKwlzZXR1cF9jcHVtYXNrX29mX2NwdSgpOworfQorCisjZW5kaWYKKworI2lmZGVmIFg4Nl82NF9OVU1BCisKKy8qCisgKiBBbGxvY2F0ZSBub2RlX3RvX2NwdW1hc2tfbWFwIGJhc2VkIG9uIG51bWJlciBvZiBhdmFpbGFibGUgbm9kZXMKKyAqIFJlcXVpcmVzIG5vZGVfcG9zc2libGVfbWFwIHRvIGJlIHZhbGlkLgorICoKKyAqIE5vdGU6IG5vZGVfdG9fY3B1bWFzaygpIGlzIG5vdCB2YWxpZCB1bnRpbCBhZnRlciB0aGlzIGlzIGRvbmUuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9ub2RlX3RvX2NwdW1hc2tfbWFwKHZvaWQpCit7CisJdW5zaWduZWQgaW50IG5vZGUsIG51bSA9IDA7CisJY3B1bWFza190ICptYXA7CisKKwkvKiBzZXR1cCBucl9ub2RlX2lkcyBpZiBub3QgZG9uZSB5ZXQgKi8KKwlpZiAobnJfbm9kZV9pZHMgPT0gTUFYX05VTU5PREVTKSB7CisJCWZvcl9lYWNoX25vZGVfbWFzayhub2RlLCBub2RlX3Bvc3NpYmxlX21hcCkKKwkJCW51bSA9IG5vZGU7CisJCW5yX25vZGVfaWRzID0gbnVtICsgMTsKKwl9CisKKwkvKiBhbGxvY2F0ZSB0aGUgbWFwICovCisJbWFwID0gYWxsb2NfYm9vdG1lbV9sb3cobnJfbm9kZV9pZHMgKiBzaXplb2YoY3B1bWFza190KSk7CisKKwlEcHJpbnRrKEtFUk5fREVCVUcgIk5vZGUgdG8gY3B1bWFzayBtYXAgYXQgJXAgZm9yICVkIG5vZGVzXG4iLAorCQltYXAsIG5yX25vZGVfaWRzKTsKKworCS8qIG5vZGVfdG9fY3B1bWFzaygpIHdpbGwgbm93IHdvcmsgKi8KKwlub2RlX3RvX2NwdW1hc2tfbWFwID0gbWFwOworfQorCit2b2lkIF9fY3B1aW5pdCBudW1hX3NldF9ub2RlKGludCBjcHUsIGludCBub2RlKQoreworCWludCAqY3B1X3RvX25vZGVfbWFwID0gZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19ub2RlX21hcCk7CisKKwlpZiAoY3B1X3BkYShjcHUpICYmIG5vZGUgIT0gTlVNQV9OT19OT0RFKQorCQljcHVfcGRhKGNwdSktPm5vZGVudW1iZXIgPSBub2RlOworCisJaWYgKGNwdV90b19ub2RlX21hcCkKKwkJY3B1X3RvX25vZGVfbWFwW2NwdV0gPSBub2RlOworCisJZWxzZSBpZiAocGVyX2NwdV9vZmZzZXQoY3B1KSkKKwkJcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpID0gbm9kZTsKKworCWVsc2UKKwkJRHByaW50ayhLRVJOX0lORk8gIlNldHRpbmcgbm9kZSBmb3Igbm9uLXByZXNlbnQgY3B1ICVkXG4iLCBjcHUpOworfQorCit2b2lkIF9fY3B1aW5pdCBudW1hX2NsZWFyX25vZGUoaW50IGNwdSkKK3sKKwludW1hX3NldF9ub2RlKGNwdSwgTlVNQV9OT19OT0RFKTsKK30KKworI2lmbmRlZiBDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTCisKK3ZvaWQgX19jcHVpbml0IG51bWFfYWRkX2NwdShpbnQgY3B1KQoreworCWNwdV9zZXQoY3B1LCBub2RlX3RvX2NwdW1hc2tfbWFwW2Vhcmx5X2NwdV90b19ub2RlKGNwdSldKTsKK30KKwordm9pZCBfX2NwdWluaXQgbnVtYV9yZW1vdmVfY3B1KGludCBjcHUpCit7CisJY3B1X2NsZWFyKGNwdSwgbm9kZV90b19jcHVtYXNrX21hcFtjcHVfdG9fbm9kZShjcHUpXSk7Cit9CisKKyNlbHNlIC8qIENPTkZJR19ERUJVR19QRVJfQ1BVX01BUFMgKi8KKworLyoKKyAqIC0tLS0tLS0tLSBkZWJ1ZyB2ZXJzaW9ucyBvZiB0aGUgbnVtYSBmdW5jdGlvbnMgLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBudW1hX3NldF9jcHVtYXNrKGludCBjcHUsIGludCBlbmFibGUpCit7CisJaW50IG5vZGUgPSBjcHVfdG9fbm9kZShjcHUpOworCWNwdW1hc2tfdCAqbWFzazsKKwljaGFyIGJ1Zls2NF07CisKKwlpZiAobm9kZV90b19jcHVtYXNrX21hcCA9PSBOVUxMKSB7CisJCXByaW50ayhLRVJOX0VSUiAibm9kZV90b19jcHVtYXNrX21hcCBOVUxMXG4iKTsKKwkJZHVtcF9zdGFjaygpOworCQlyZXR1cm47CisJfQorCisJbWFzayA9ICZub2RlX3RvX2NwdW1hc2tfbWFwW25vZGVdOworCWlmIChlbmFibGUpCisJCWNwdV9zZXQoY3B1LCAqbWFzayk7CisJZWxzZQorCQljcHVfY2xlYXIoY3B1LCAqbWFzayk7CisKKwljcHVsaXN0X3NjbnByaW50ZihidWYsIHNpemVvZihidWYpLCAqbWFzayk7CisJcHJpbnRrKEtFUk5fREVCVUcgIiVzIGNwdSAlZCBub2RlICVkOiBtYXNrIG5vdyAlc1xuIiwKKwkJZW5hYmxlPyAibnVtYV9hZGRfY3B1IjoibnVtYV9yZW1vdmVfY3B1IiwgY3B1LCBub2RlLCBidWYpOworIH0KKwordm9pZCBfX2NwdWluaXQgbnVtYV9hZGRfY3B1KGludCBjcHUpCit7CisJbnVtYV9zZXRfY3B1bWFzayhjcHUsIDEpOworfQorCit2b2lkIF9fY3B1aW5pdCBudW1hX3JlbW92ZV9jcHUoaW50IGNwdSkKK3sKKwludW1hX3NldF9jcHVtYXNrKGNwdSwgMCk7Cit9CisKK2ludCBjcHVfdG9fbm9kZShpbnQgY3B1KQoreworCWlmIChlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiY3B1X3RvX25vZGUoJWQpOiB1c2FnZSB0b28gZWFybHkhXG4iLCBjcHUpOworCQlkdW1wX3N0YWNrKCk7CisJCXJldHVybiBlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKVtjcHVdOworCX0KKwlyZXR1cm4gcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpOworfQorRVhQT1JUX1NZTUJPTChjcHVfdG9fbm9kZSk7CisKKy8qCisgKiBTYW1lIGZ1bmN0aW9uIGFzIGNwdV90b19ub2RlKCkgYnV0IHVzZWQgaWYgY2FsbGVkIGJlZm9yZSB0aGUKKyAqIHBlcl9jcHUgYXJlYXMgYXJlIHNldHVwLgorICovCitpbnQgZWFybHlfY3B1X3RvX25vZGUoaW50IGNwdSkKK3sKKwlpZiAoZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19ub2RlX21hcCkpCisJCXJldHVybiBlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKVtjcHVdOworCisJaWYgKCFwZXJfY3B1X29mZnNldChjcHUpKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJlYXJseV9jcHVfdG9fbm9kZSglZCk6IG5vIHBlcl9jcHUgYXJlYSFcbiIsIGNwdSk7CisJCWR1bXBfc3RhY2soKTsKKwkJcmV0dXJuIE5VTUFfTk9fTk9ERTsKKwl9CisJcmV0dXJuIHBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KTsKK30KKworCisvKiBlbXB0eSBjcHVtYXNrICovCitzdGF0aWMgY29uc3QgY3B1bWFza190IGNwdV9tYXNrX25vbmU7CisKKy8qCisgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgYml0bWFzayBvZiBDUFVzIG9uIE5vZGUgJ25vZGUnLgorICovCitjb25zdCBjcHVtYXNrX3QgKl9ub2RlX3RvX2NwdW1hc2tfcHRyKGludCBub2RlKQoreworCWlmIChub2RlX3RvX2NwdW1hc2tfbWFwID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIl9ub2RlX3RvX2NwdW1hc2tfcHRyKCVkKTogbm8gbm9kZV90b19jcHVtYXNrX21hcCFcbiIsCisJCQlub2RlKTsKKwkJZHVtcF9zdGFjaygpOworCQlyZXR1cm4gKGNvbnN0IGNwdW1hc2tfdCAqKSZjcHVfb25saW5lX21hcDsKKwl9CisJaWYgKG5vZGUgPj0gbnJfbm9kZV9pZHMpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIl9ub2RlX3RvX2NwdW1hc2tfcHRyKCVkKTogbm9kZSA+IG5yX25vZGVfaWRzKCVkKVxuIiwKKwkJCW5vZGUsIG5yX25vZGVfaWRzKTsKKwkJZHVtcF9zdGFjaygpOworCQlyZXR1cm4gJmNwdV9tYXNrX25vbmU7CisJfQorCXJldHVybiAmbm9kZV90b19jcHVtYXNrX21hcFtub2RlXTsKK30KK0VYUE9SVF9TWU1CT0woX25vZGVfdG9fY3B1bWFza19wdHIpOworCisvKgorICogUmV0dXJucyBhIGJpdG1hc2sgb2YgQ1BVcyBvbiBOb2RlICdub2RlJy4KKyAqCisgKiBTaWRlIG5vdGU6IHRoaXMgZnVuY3Rpb24gY3JlYXRlcyB0aGUgcmV0dXJuZWQgY3B1bWFzayBvbiB0aGUgc3RhY2sKKyAqIHNvIHdpdGggYSBoaWdoIE5SX0NQVVMgY291bnQsIGV4Y2Vzc2l2ZSBzdGFjayBzcGFjZSBpcyB1c2VkLiAgVGhlCisgKiBub2RlX3RvX2NwdW1hc2tfcHRyIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHdoZW5ldmVyIHBvc3NpYmxlLgorICovCitjcHVtYXNrX3Qgbm9kZV90b19jcHVtYXNrKGludCBub2RlKQoreworCWlmIChub2RlX3RvX2NwdW1hc2tfbWFwID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIm5vZGVfdG9fY3B1bWFzayglZCk6IG5vIG5vZGVfdG9fY3B1bWFza19tYXAhXG4iLCBub2RlKTsKKwkJZHVtcF9zdGFjaygpOworCQlyZXR1cm4gY3B1X29ubGluZV9tYXA7CisJfQorCWlmIChub2RlID49IG5yX25vZGVfaWRzKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJub2RlX3RvX2NwdW1hc2soJWQpOiBub2RlID4gbnJfbm9kZV9pZHMoJWQpXG4iLAorCQkJbm9kZSwgbnJfbm9kZV9pZHMpOworCQlkdW1wX3N0YWNrKCk7CisJCXJldHVybiBjcHVfbWFza19ub25lOworCX0KKwlyZXR1cm4gbm9kZV90b19jcHVtYXNrX21hcFtub2RlXTsKK30KK0VYUE9SVF9TWU1CT0wobm9kZV90b19jcHVtYXNrKTsKKworLyoKKyAqIC0tLS0tLS0tLSBlbmQgb2YgZGVidWcgdmVyc2lvbnMgb2YgdGhlIG51bWEgZnVuY3Rpb25zIC0tLS0tLS0tLQorICovCisKKyNlbmRpZiAvKiBDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTICovCisKKyNlbmRpZiAvKiBYODZfNjRfTlVNQSAqLworCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jIGIvYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYwppbmRleCA4OTY0Nzg5Li42ODczNzZhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKQEAgLTU5LDcgKzU5LDYgQEAKICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS9tdHJyLmg+Ci0jaW5jbHVkZSA8YXNtL25taS5oPgogI2luY2x1ZGUgPGFzbS92bWkuaD4KICNpbmNsdWRlIDxhc20vZ2VuYXBpYy5oPgogI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CkBAIC02OCwyMiArNjcsNiBAQAogI2luY2x1ZGUgPG1hY2hfd2FrZWNwdS5oPgogI2luY2x1ZGUgPHNtcGJvb3RfaG9va3MuaD4KIAotLyoKLSAqIEZJWE1FOiBGb3IgeDg2XzY0LCB0aG9zZSBhcmUgZGVmaW5lZCBpbiBvdGhlciBmaWxlcy4gQnV0IG1vdmluZyB0aGVtIGhlcmUsCi0gKiB3b3VsZCBtYWtlIHRoZSBzZXR1cCBhcmVhcyBkZXBlbmRlbnQgb24gc21wLCB3aGljaCBpcyBhIGxvc3MuIFdoZW4gd2UKLSAqIGludGVncmF0ZSBhcGljIGJldHdlZW4gYXJjaGVzLCB3ZSBjYW4gcHJvYmFibHkgZG8gYSBiZXR0ZXIgam9iLCBidXQKLSAqIHJpZ2h0IG5vdywgdGhleSdsbCBzdGF5IGhlcmUgLS0gZ2xvbW1lcgotICovCi0KLS8qIHdoaWNoIGxvZ2ljYWwgQ1BVIG51bWJlciBtYXBzIHRvIHdoaWNoIENQVSAocGh5c2ljYWwgQVBJQyBJRCkgKi8KLXUxNiB4ODZfY3B1X3RvX2FwaWNpZF9pbml0W05SX0NQVVNdIF9faW5pdGRhdGEgPQotCQkJeyBbMCAuLi4gTlJfQ1BVUy0xXSA9IEJBRF9BUElDSUQgfTsKLXZvaWQgKng4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0cjsKLQotdTE2IHg4Nl9iaW9zX2NwdV9hcGljaWRfaW5pdFtOUl9DUFVTXSBfX2luaXRkYXRhCi0JCQkJPSB7IFswIC4uLiBOUl9DUFVTLTFdID0gQkFEX0FQSUNJRCB9Owotdm9pZCAqeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7Ci0KICNpZmRlZiBDT05GSUdfWDg2XzMyCiB1OCBhcGljaWRfMl9ub2RlW01BWF9BUElDSURdOwogc3RhdGljIGludCBsb3dfbWFwcGluZ3M7CkBAIC0xOTgsMTMgKzE4MSwxMiBAQAogCW1hcF9jcHVfdG9fbm9kZShjcHUsIG5vZGUpOwogfQogCi1zdGF0aWMgdm9pZCB1bm1hcF9jcHVfdG9fbG9naWNhbF9hcGljaWQoaW50IGNwdSkKK3ZvaWQgbnVtYV9yZW1vdmVfY3B1KGludCBjcHUpCiB7CiAJY3B1XzJfbG9naWNhbF9hcGljaWRbY3B1XSA9IEJBRF9BUElDSUQ7CiAJdW5tYXBfY3B1X3RvX25vZGUoY3B1KTsKIH0KICNlbHNlCi0jZGVmaW5lIHVubWFwX2NwdV90b19sb2dpY2FsX2FwaWNpZChjcHUpIGRvIHt9IHdoaWxlICgwKQogI2RlZmluZSBtYXBfY3B1X3RvX2xvZ2ljYWxfYXBpY2lkKCkgIGRvIHt9IHdoaWxlICgwKQogI2VuZGlmCiAKQEAgLTM0NiwxNSArMzI4LDggQEAKIAkgKiBzbXBfY2FsbF9mdW5jdGlvbigpLgogCSAqLwogCWlwaV9jYWxsX2xvY2tfaXJxKCk7Ci0jaWZkZWYgQ09ORklHX1g4Nl82NAotCXNwaW5fbG9jaygmdmVjdG9yX2xvY2spOwotCi0JLyogU2V0dXAgdGhlIHBlciBjcHUgaXJxIGhhbmRsaW5nIGRhdGEgc3RydWN0dXJlcyAqLwotCV9fc2V0dXBfdmVjdG9yX2lycShzbXBfcHJvY2Vzc29yX2lkKCkpOwotCS8qCi0JICogQWxsb3cgdGhlIG1hc3RlciB0byBjb250aW51ZS4KLQkgKi8KLQlzcGluX3VubG9jaygmdmVjdG9yX2xvY2spOworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQworCXNldHVwX3ZlY3Rvcl9pcnEoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKICNlbmRpZgogCWNwdV9zZXQoc21wX3Byb2Nlc3Nvcl9pZCgpLCBjcHVfb25saW5lX21hcCk7CiAJaXBpX2NhbGxfdW5sb2NrX2lycSgpOwpAQCAtMzY2LDMxICszNDEsOCBAQAogCWNwdV9pZGxlKCk7CiB9CiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0vKgotICogRXZlcnl0aGluZyBoYXMgYmVlbiBzZXQgdXAgZm9yIHRoZSBzZWNvbmRhcnkKLSAqIENQVXMgLSB0aGV5IGp1c3QgbmVlZCB0byByZWxvYWQgZXZlcnl0aGluZwotICogZnJvbSB0aGUgdGFzayBzdHJ1Y3R1cmUKLSAqIFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgcmV0dXJuLgotICovCi12b2lkIF9fZGV2aW5pdCBpbml0aWFsaXplX3NlY29uZGFyeSh2b2lkKQotewotCS8qCi0JICogV2UgZG9uJ3QgYWN0dWFsbHkgbmVlZCB0byBsb2FkIHRoZSBmdWxsIFRTUywKLQkgKiBiYXNpY2FsbHkganVzdCB0aGUgc3RhY2sgcG9pbnRlciBhbmQgdGhlIGlwLgotCSAqLwotCi0JYXNtIHZvbGF0aWxlKAotCQkibW92bCAlMCwlJWVzcFxuXHQiCi0JCSJqbXAgKiUxIgotCQk6Ci0JCToibSIgKGN1cnJlbnQtPnRocmVhZC5zcCksICJtIiAoY3VycmVudC0+dGhyZWFkLmlwKSk7Ci19Ci0jZW5kaWYKLQogc3RhdGljIHZvaWQgX19jcHVpbml0IHNtcF9hcHBseV9xdWlya3Moc3RydWN0IGNwdWluZm9feDg2ICpjKQogewotI2lmZGVmIENPTkZJR19YODZfMzIKIAkvKgogCSAqIE1hc2sgQiwgUGVudGl1bSwgYnV0IG5vdCBQZW50aXVtIE1NWAogCSAqLwpAQCAtNDQwLDcgKzM5Miw2IEBACiAKIHZhbGlkX2s3OgogCTsKLSNlbmRpZgogfQogCiBzdGF0aWMgdm9pZCBfX2NwdWluaXQgc21wX2NoZWNrcyh2b2lkKQpAQCAtNTU1LDIzICs1MDYsNiBAQAogCQlyZXR1cm4gYy0+bGxjX3NoYXJlZF9tYXA7CiB9CiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0vKgotICogV2UgYXJlIGNhbGxlZCB2ZXJ5IGVhcmx5IHRvIGdldCB0aGUgbG93IG1lbW9yeSBmb3IgdGhlCi0gKiBTTVAgYm9vdHVwIHRyYW1wb2xpbmUgcGFnZS4KLSAqLwotdm9pZCBfX2luaXQgc21wX2FsbG9jX21lbW9yeSh2b2lkKQotewotCXRyYW1wb2xpbmVfYmFzZSA9IGFsbG9jX2Jvb3RtZW1fbG93X3BhZ2VzKFBBR0VfU0laRSk7Ci0JLyoKLQkgKiBIYXMgdG8gYmUgaW4gdmVyeSBsb3cgbWVtb3J5IHNvIHdlIGNhbiBleGVjdXRlCi0JICogcmVhbC1tb2RlIEFQIGNvZGUuCi0JICovCi0JaWYgKF9fcGEodHJhbXBvbGluZV9iYXNlKSA+PSAweDlGMDAwKQotCQlCVUcoKTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgdm9pZCBpbXByZXNzX2ZyaWVuZHModm9pZCkKIHsKIAlpbnQgY3B1OwpAQCAtNzQ4LDExICs2ODIsNyBAQAogCSAqIHRhcmdldCBwcm9jZXNzb3Igc3RhdGUuCiAJICovCiAJc3RhcnR1cF9pcGlfaG9vayhwaHlzX2FwaWNpZCwgKHVuc2lnbmVkIGxvbmcpIHN0YXJ0X3NlY29uZGFyeSwKLSNpZmRlZiBDT05GSUdfWDg2XzY0Ci0JCQkgKHVuc2lnbmVkIGxvbmcpaW5pdF9yc3ApOwotI2Vsc2UKIAkJCSAodW5zaWduZWQgbG9uZylzdGFja19zdGFydC5zcCk7Ci0jZW5kaWYKIAogCS8qCiAJICogUnVuIFNUQVJUVVAgSVBJIGxvb3AuCkBAIC04MzIsNiArNzYyLDQ1IEBACiAJY29tcGxldGUoJmNfaWRsZS0+ZG9uZSk7CiB9CiAKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisvKgorICogQWxsb2NhdGUgbm9kZSBsb2NhbCBtZW1vcnkgZm9yIHRoZSBBUCBwZGEuCisgKgorICogTXVzdCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIF9jcHVfcGRhIHBvaW50ZXIgdGFibGUgaXMgaW5pdGlhbGl6ZWQuCisgKi8KK3N0YXRpYyBpbnQgX19jcHVpbml0IGdldF9sb2NhbF9wZGEoaW50IGNwdSkKK3sKKwlzdHJ1Y3QgeDg2NjRfcGRhICpvbGRwZGEsICpuZXdwZGE7CisJdW5zaWduZWQgbG9uZyBzaXplID0gc2l6ZW9mKHN0cnVjdCB4ODY2NF9wZGEpOworCWludCBub2RlID0gY3B1X3RvX25vZGUoY3B1KTsKKworCWlmIChjcHVfcGRhKGNwdSkgJiYgIWNwdV9wZGEoY3B1KS0+aW5fYm9vdG1lbSkKKwkJcmV0dXJuIDA7CisKKwlvbGRwZGEgPSBjcHVfcGRhKGNwdSk7CisJbmV3cGRhID0ga21hbGxvY19ub2RlKHNpemUsIEdGUF9BVE9NSUMsIG5vZGUpOworCWlmICghbmV3cGRhKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ291bGQgbm90IGFsbG9jYXRlIG5vZGUgbG9jYWwgUERBICIKKwkJCSJmb3IgQ1BVICVkIG9uIG5vZGUgJWRcbiIsIGNwdSwgbm9kZSk7CisKKwkJaWYgKG9sZHBkYSkKKwkJCXJldHVybiAwOwkvKiBoYXZlIGEgdXNhYmxlIHBkYSAqLworCQllbHNlCisJCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKG9sZHBkYSkgeworCQltZW1jcHkobmV3cGRhLCBvbGRwZGEsIHNpemUpOworCQlpZiAoIWFmdGVyX2Jvb3RtZW0pCisJCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpb2xkcGRhLCBzaXplKTsKKwl9CisKKwluZXdwZGEtPmluX2Jvb3RtZW0gPSAwOworCWNwdV9wZGEoY3B1KSA9IG5ld3BkYTsKKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBDT05GSUdfWDg2XzY0ICovCisKIHN0YXRpYyBpbnQgX19jcHVpbml0IGRvX2Jvb3RfY3B1KGludCBhcGljaWQsIGludCBjcHUpCiAvKgogICogTk9URSAtIG9uIG1vc3Qgc3lzdGVtcyB0aGlzIGlzIGEgUEhZU0lDQUwgYXBpYyBJRCwgYnV0IG9uIG11bHRpcXVhZApAQCAtODQ4LDI4ICs4MTcsMTQgQEAKIAkJLmRvbmUgPSBDT01QTEVUSU9OX0lOSVRJQUxJWkVSX09OU1RBQ0soY19pZGxlLmRvbmUpLAogCX07CiAJSU5JVF9XT1JLKCZjX2lkbGUud29yaywgZG9fZm9ya19pZGxlKTsKLSNpZmRlZiBDT05GSUdfWDg2XzY0Ci0JLyogYWxsb2NhdGUgbWVtb3J5IGZvciBnZHRzIG9mIHNlY29uZGFyeSBjcHVzLiBIb3RwbHVnIGlzIGNvbnNpZGVyZWQgKi8KLQlpZiAoIWNwdV9nZHRfZGVzY3JbY3B1XS5hZGRyZXNzICYmCi0JCSEoY3B1X2dkdF9kZXNjcltjcHVdLmFkZHJlc3MgPSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCkpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGFsbG9jYXRlIEdEVCBmb3IgQ1BVICVkXG4iLCBjcHUpOwotCQlyZXR1cm4gLTE7Ci0JfQogCisjaWZkZWYgQ09ORklHX1g4Nl82NAogCS8qIEFsbG9jYXRlIG5vZGUgbG9jYWwgbWVtb3J5IGZvciBBUCBwZGFzICovCi0JaWYgKGNwdV9wZGEoY3B1KSA9PSAmYm9vdF9jcHVfcGRhW2NwdV0pIHsKLQkJc3RydWN0IHg4NjY0X3BkYSAqbmV3cGRhLCAqcGRhOwotCQlpbnQgbm9kZSA9IGNwdV90b19ub2RlKGNwdSk7Ci0JCXBkYSA9IGNwdV9wZGEoY3B1KTsKLQkJbmV3cGRhID0ga21hbGxvY19ub2RlKHNpemVvZihzdHJ1Y3QgeDg2NjRfcGRhKSwgR0ZQX0FUT01JQywKLQkJCQkgICAgICBub2RlKTsKLQkJaWYgKG5ld3BkYSkgewotCQkJbWVtY3B5KG5ld3BkYSwgcGRhLCBzaXplb2Yoc3RydWN0IHg4NjY0X3BkYSkpOwotCQkJY3B1X3BkYShjcHUpID0gbmV3cGRhOwotCQl9IGVsc2UKLQkJCXByaW50ayhLRVJOX0VSUgotCQkiQ291bGQgbm90IGFsbG9jYXRlIG5vZGUgbG9jYWwgUERBIGZvciBDUFUgJWQgb24gbm9kZSAlZFxuIiwKLQkJCQljcHUsIG5vZGUpOworCWlmIChjcHUgPiAwKSB7CisJCWJvb3RfZXJyb3IgPSBnZXRfbG9jYWxfcGRhKGNwdSk7CisJCWlmIChib290X2Vycm9yKQorCQkJZ290byByZXN0b3JlX3N0YXRlOworCQkJLyogaWYgY2FuJ3QgZ2V0IHBkYSBtZW1vcnksIGNhbid0IHN0YXJ0IGNwdSAqLwogCX0KICNlbmRpZgogCkBAIC05MDUsMTggKzg2MCwxNSBAQAogI2lmZGVmIENPTkZJR19YODZfMzIKIAlwZXJfY3B1KGN1cnJlbnRfdGFzaywgY3B1KSA9IGNfaWRsZS5pZGxlOwogCWluaXRfZ2R0KGNwdSk7Ci0JZWFybHlfZ2R0X2Rlc2NyLmFkZHJlc3MgPSAodW5zaWduZWQgbG9uZylnZXRfY3B1X2dkdF90YWJsZShjcHUpOwotCWNfaWRsZS5pZGxlLT50aHJlYWQuaXAgPSAodW5zaWduZWQgbG9uZykgc3RhcnRfc2Vjb25kYXJ5OwogCS8qIFN0YWNrIGZvciBzdGFydHVwXzMyIGNhbiBiZSBqdXN0IGFzIGZvciBzdGFydF9zZWNvbmRhcnkgb253YXJkcyAqLwotCXN0YWNrX3N0YXJ0LnNwID0gKHZvaWQgKikgY19pZGxlLmlkbGUtPnRocmVhZC5zcDsKIAlpcnFfY3R4X2luaXQoY3B1KTsKICNlbHNlCiAJY3B1X3BkYShjcHUpLT5wY3VycmVudCA9IGNfaWRsZS5pZGxlOwotCWluaXRfcnNwID0gY19pZGxlLmlkbGUtPnRocmVhZC5zcDsKLQlsb2FkX3NwMCgmcGVyX2NwdShpbml0X3RzcywgY3B1KSwgJmNfaWRsZS5pZGxlLT50aHJlYWQpOwotCWluaXRpYWxfY29kZSA9ICh1bnNpZ25lZCBsb25nKXN0YXJ0X3NlY29uZGFyeTsKIAljbGVhcl90c2tfdGhyZWFkX2ZsYWcoY19pZGxlLmlkbGUsIFRJRl9GT1JLKTsKICNlbmRpZgorCWVhcmx5X2dkdF9kZXNjci5hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpZ2V0X2NwdV9nZHRfdGFibGUoY3B1KTsKKwlpbml0aWFsX2NvZGUgPSAodW5zaWduZWQgbG9uZylzdGFydF9zZWNvbmRhcnk7CisJc3RhY2tfc3RhcnQuc3AgPSAodm9pZCAqKSBjX2lkbGUuaWRsZS0+dGhyZWFkLnNwOwogCiAJLyogc3RhcnRfaXAgaGFkIGJldHRlciBiZSBwYWdlLWFsaWduZWQhICovCiAJc3RhcnRfaXAgPSBzZXR1cF90cmFtcG9saW5lKCk7CkBAIC05ODcsMTYgKzkzOSwxNCBAQAogCQkJCWlucXVpcmVfcmVtb3RlX2FwaWMoYXBpY2lkKTsKIAkJfQogCX0KLQorI2lmZGVmIENPTkZJR19YODZfNjQKK3Jlc3RvcmVfc3RhdGU6CisjZW5kaWYKIAlpZiAoYm9vdF9lcnJvcikgewogCQkvKiBUcnkgdG8gcHV0IHRoaW5ncyBiYWNrIHRoZSB3YXkgdGhleSB3ZXJlIGJlZm9yZSAuLi4gKi8KLQkJdW5tYXBfY3B1X3RvX2xvZ2ljYWxfYXBpY2lkKGNwdSk7Ci0jaWZkZWYgQ09ORklHX1g4Nl82NAotCQljbGVhcl9ub2RlX2NwdW1hc2soY3B1KTsgLyogd2FzIHNldCBieSBudW1hX2FkZF9jcHUgKi8KLSNlbmRpZgorCQludW1hX3JlbW92ZV9jcHUoY3B1KTsgLyogd2FzIHNldCBieSBudW1hX2FkZF9jcHUgKi8KIAkJY3B1X2NsZWFyKGNwdSwgY3B1X2NhbGxvdXRfbWFwKTsgLyogd2FzIHNldCBieSBkb19ib290X2NwdSgpICovCiAJCWNwdV9jbGVhcihjcHUsIGNwdV9pbml0aWFsaXplZCk7IC8qIHdhcyBzZXQgYnkgY3B1X2luaXQoKSAqLwotCQljcHVfY2xlYXIoY3B1LCBjcHVfcG9zc2libGVfbWFwKTsKIAkJY3B1X2NsZWFyKGNwdSwgY3B1X3ByZXNlbnRfbWFwKTsKIAkJcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KSA9IEJBRF9BUElDSUQ7CiAJfQpAQCAtMTA4OCwxNCArMTAzOCwxMiBAQAogewogCWNwdV9wcmVzZW50X21hcCA9IGNwdW1hc2tfb2ZfY3B1KDApOwogCWNwdV9wb3NzaWJsZV9tYXAgPSBjcHVtYXNrX29mX2NwdSgwKTsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCiAJc21wYm9vdF9jbGVhcl9pb19hcGljX2lycXMoKTsKLSNlbmRpZgorCiAJaWYgKHNtcF9mb3VuZF9jb25maWcpCi0JCXBoeXNfY3B1X3ByZXNlbnRfbWFwID0KLQkJCQlwaHlzaWRfbWFza19vZl9waHlzaWQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKTsKKwkJcGh5c2lkX3NldF9tYXNrX29mX3BoeXNpZChib290X2NwdV9waHlzaWNhbF9hcGljaWQsICZwaHlzX2NwdV9wcmVzZW50X21hcCk7CiAJZWxzZQotCQlwaHlzX2NwdV9wcmVzZW50X21hcCA9IHBoeXNpZF9tYXNrX29mX3BoeXNpZCgwKTsKKwkJcGh5c2lkX3NldF9tYXNrX29mX3BoeXNpZCgwLCAmcGh5c19jcHVfcHJlc2VudF9tYXApOwogCW1hcF9jcHVfdG9fbG9naWNhbF9hcGljaWQoKTsKIAljcHVfc2V0KDAsIHBlcl9jcHUoY3B1X3NpYmxpbmdfbWFwLCAwKSk7CiAJY3B1X3NldCgwLCBwZXJfY3B1KGNwdV9jb3JlX21hcCwgMCkpOwpAQCAtMTE1OCwxMiArMTEwNiwxMiBAQAogCSAqIElmIFNNUCBzaG91bGQgYmUgZGlzYWJsZWQsIHRoZW4gcmVhbGx5IGRpc2FibGUgaXQhCiAJICovCiAJaWYgKCFtYXhfY3B1cykgewotCQlwcmludGsoS0VSTl9JTkZPICJTTVAgbW9kZSBkZWFjdGl2YXRlZCwiCi0JCQkJICJmb3JjaW5nIHVzZSBvZiBkdW1teSBBUElDIGVtdWxhdGlvbi5cbiIpOworCQlwcmludGsoS0VSTl9JTkZPICJTTVAgbW9kZSBkZWFjdGl2YXRlZC5cbiIpOwogCQlzbXBib290X2NsZWFyX2lvX2FwaWMoKTsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCisKKwkJbG9jYWxpc2Vfbm1pX3dhdGNoZG9nKCk7CisKIAkJY29ubmVjdF9ic3BfQVBJQygpOwotI2VuZGlmCiAJCXNldHVwX2xvY2FsX0FQSUMoKTsKIAkJZW5kX2xvY2FsX0FQSUNfc2V0dXAoKTsKIAkJcmV0dXJuIC0xOwpAQCAtMTE5MSw3ICsxMTM5LDYgQEAKIHZvaWQgX19pbml0IG5hdGl2ZV9zbXBfcHJlcGFyZV9jcHVzKHVuc2lnbmVkIGludCBtYXhfY3B1cykKIHsKIAlwcmVlbXB0X2Rpc2FibGUoKTsKLQlubWlfd2F0Y2hkb2dfZGVmYXVsdCgpOwogCXNtcF9jcHVfaW5kZXhfZGVmYXVsdCgpOwogCWN1cnJlbnRfY3B1X2RhdGEgPSBib290X2NwdV9kYXRhOwogCWNwdV9jYWxsaW5fbWFwID0gY3B1bWFza19vZl9jcHUoMCk7CkBAIC0xMjE4LDkgKzExNjUsOCBAQAogCX0KIAlwcmVlbXB0X2VuYWJsZSgpOwogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgogCWNvbm5lY3RfYnNwX0FQSUMoKTsKLSNlbmRpZgorCiAJLyoKIAkgKiBTd2l0Y2ggZnJvbSBQSUMgdG8gQVBJQyBtb2RlLgogCSAqLwpAQCAtMTI1OCw4ICsxMjA0LDggQEAKIAlpbnQgbWUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogCWluaXRfZ2R0KG1lKTsKLQlzd2l0Y2hfdG9fbmV3X2dkdCgpOwogI2VuZGlmCisJc3dpdGNoX3RvX25ld19nZHQoKTsKIAkvKiBhbHJlYWR5IHNldCBtZSBpbiBjcHVfb25saW5lX21hcCBpbiBib290X2NwdV9pbml0KCkgKi8KIAljcHVfc2V0KG1lLCBjcHVfY2FsbG91dF9tYXApOwogCXBlcl9jcHUoY3B1X3N0YXRlLCBtZSkgPSBDUFVfT05MSU5FOwpAQCAtMTI3OSwyMyArMTIyNSw2IEBACiAKICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKIAotIyAgaWZkZWYgQ09ORklHX1g4Nl8zMgotdm9pZCBjcHVfZXhpdF9jbGVhcih2b2lkKQotewotCWludCBjcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOwotCi0JaWRsZV90YXNrX2V4aXQoKTsKLQotCWNwdV91bmluaXQoKTsKLQlpcnFfY3R4X2V4aXQoY3B1KTsKLQotCWNwdV9jbGVhcihjcHUsIGNwdV9jYWxsb3V0X21hcCk7Ci0JY3B1X2NsZWFyKGNwdSwgY3B1X2NhbGxpbl9tYXApOwotCi0JdW5tYXBfY3B1X3RvX2xvZ2ljYWxfYXBpY2lkKGNwdSk7Ci19Ci0jICBlbmRpZiAvKiBDT05GSUdfWDg2XzMyICovCi0KIHN0YXRpYyB2b2lkIHJlbW92ZV9zaWJsaW5naW5mbyhpbnQgY3B1KQogewogCWludCBzaWJsaW5nOwpAQCAtMTM0OSwxMiArMTI3OCwyMCBAQAogCWludCBpOwogCWludCBwb3NzaWJsZTsKIAorCS8qIG5vIHByb2Nlc3NvciBmcm9tIG1wdGFibGUgb3IgbWFkdCAqLworCWlmICghbnVtX3Byb2Nlc3NvcnMpCisJCW51bV9wcm9jZXNzb3JzID0gMTsKKworI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQogCWlmIChhZGRpdGlvbmFsX2NwdXMgPT0gLTEpIHsKIAkJaWYgKGRpc2FibGVkX2NwdXMgPiAwKQogCQkJYWRkaXRpb25hbF9jcHVzID0gZGlzYWJsZWRfY3B1czsKIAkJZWxzZQogCQkJYWRkaXRpb25hbF9jcHVzID0gMDsKIAl9CisjZWxzZQorCWFkZGl0aW9uYWxfY3B1cyA9IDA7CisjZW5kaWYKIAlwb3NzaWJsZSA9IG51bV9wcm9jZXNzb3JzICsgYWRkaXRpb25hbF9jcHVzOwogCWlmIChwb3NzaWJsZSA+IE5SX0NQVVMpCiAJCXBvc3NpYmxlID0gTlJfQ1BVUzsKQEAgLTEzNjQsMTggKzEzMDEsMTggQEAKIAogCWZvciAoaSA9IDA7IGkgPCBwb3NzaWJsZTsgaSsrKQogCQljcHVfc2V0KGksIGNwdV9wb3NzaWJsZV9tYXApOworCisJbnJfY3B1X2lkcyA9IHBvc3NpYmxlOwogfQogCiBzdGF0aWMgdm9pZCBfX3JlZiByZW1vdmVfY3B1X2Zyb21fbWFwcyhpbnQgY3B1KQogewogCWNwdV9jbGVhcihjcHUsIGNwdV9vbmxpbmVfbWFwKTsKLSNpZmRlZiBDT05GSUdfWDg2XzY0CiAJY3B1X2NsZWFyKGNwdSwgY3B1X2NhbGxvdXRfbWFwKTsKIAljcHVfY2xlYXIoY3B1LCBjcHVfY2FsbGluX21hcCk7CiAJLyogd2FzIHNldCBieSBjcHVfaW5pdCgpICovCiAJY2xlYXJfYml0KGNwdSwgKHVuc2lnbmVkIGxvbmcgKikmY3B1X2luaXRpYWxpemVkKTsKLQljbGVhcl9ub2RlX2NwdW1hc2soY3B1KTsKLSNlbmRpZgorCW51bWFfcmVtb3ZlX2NwdShjcHUpOwogfQogCiBpbnQgX19jcHVfZGlzYWJsZSh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NyYXRfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9zcmF0XzMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwZTRhMzcuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL3NyYXRfMzIuYworKysgL2Rldi9udWxsCkBAIC0xLDM1OCArMCwwIEBACi0vKgotICogU29tZSBvZiB0aGUgY29kZSBpbiB0aGlzIGZpbGUgaGFzIGJlZW4gZ2xlYW5lZCBmcm9tIHRoZSA2NCBiaXQgCi0gKiBkaXNjb250aWdtZW0gc3VwcG9ydCBjb2RlIGJhc2UuCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAyLCBJQk0gQ29ycC4KLSAqCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgR09PRCBUSVRMRSBvcgotICogTk9OIElORlJJTkdFTUVOVC4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUKLSAqIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KLSAqCi0gKiBTZW5kIGZlZWRiYWNrIHRvIFBhdCBHYXVnaGVuIDxnb25lQHVzLmlibS5jb20+Ci0gKi8KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KLSNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Ci0jaW5jbHVkZSA8bGludXgvbm9kZW1hc2suaD4KLSNpbmNsdWRlIDxhc20vc3JhdC5oPgotI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLQotLyoKLSAqIHByb3hpbWl0eSBtYWNyb3MgYW5kIGRlZmluaXRpb25zCi0gKi8KLSNkZWZpbmUgTk9ERV9BUlJBWV9JTkRFWCh4KQkoKHgpIC8gOCkJLyogOCBiaXRzL2NoYXIgKi8KLSNkZWZpbmUgTk9ERV9BUlJBWV9PRkZTRVQoeCkJKCh4KSAlIDgpCS8qIDggYml0cy9jaGFyICovCi0jZGVmaW5lIEJNQVBfU0VUKGJtYXAsIGJpdCkJKChibWFwKVtOT0RFX0FSUkFZX0lOREVYKGJpdCldIHw9IDEgPDwgTk9ERV9BUlJBWV9PRkZTRVQoYml0KSkKLSNkZWZpbmUgQk1BUF9URVNUKGJtYXAsIGJpdCkJKChibWFwKVtOT0RFX0FSUkFZX0lOREVYKGJpdCldICYgKDEgPDwgTk9ERV9BUlJBWV9PRkZTRVQoYml0KSkpCi0vKiBiaXRtYXAgbGVuZ3RoOyBfUFhNIGlzIGF0IG1vc3QgMjU1ICovCi0jZGVmaW5lIFBYTV9CSVRNQVBfTEVOIChNQVhfUFhNX0RPTUFJTlMgLyA4KSAKLXN0YXRpYyB1OCBweG1fYml0bWFwW1BYTV9CSVRNQVBfTEVOXTsJLyogYml0bWFwIG9mIHByb3hpbWl0eSBkb21haW5zICovCi0KLSNkZWZpbmUgTUFYX0NIVU5LU19QRVJfTk9ERQkzCi0jZGVmaW5lIE1BWENIVU5LUwkJKE1BWF9DSFVOS1NfUEVSX05PREUgKiBNQVhfTlVNTk9ERVMpCi1zdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyB7Ci0JdW5zaWduZWQgbG9uZwlzdGFydF9wZm47Ci0JdW5zaWduZWQgbG9uZwllbmRfcGZuOwotCXU4CXB4bTsJCS8vIHByb3hpbWl0eSBkb21haW4gb2Ygbm9kZQotCXU4CW5pZDsJCS8vIHdoaWNoIGNub2RlIGNvbnRhaW5zIHRoaXMgY2h1bms/Ci0JdTgJYmFuazsJCS8vIHdoaWNoIG1lbSBiYW5rIG9uIHRoaXMgbm9kZQotfTsKLXN0YXRpYyBzdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyBub2RlX21lbW9yeV9jaHVua1tNQVhDSFVOS1NdOwotCi1zdGF0aWMgaW50IG51bV9tZW1vcnlfY2h1bmtzOwkJLyogdG90YWwgbnVtYmVyIG9mIG1lbW9yeSBjaHVua3MgKi8KLXN0YXRpYyB1OCBfX2luaXRkYXRhIGFwaWNpZF90b19weG1bTUFYX0FQSUNJRF07Ci0KLS8qIElkZW50aWZ5IENQVSBwcm94aW1pdHkgZG9tYWlucyAqLwotc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX2NwdV9hZmZpbml0eV9zdHJ1Y3R1cmUoY2hhciAqcCkKLXsKLQlzdHJ1Y3QgYWNwaV9zcmF0X2NwdV9hZmZpbml0eSAqY3B1X2FmZmluaXR5ID0KLQkJCQkoc3RydWN0IGFjcGlfc3JhdF9jcHVfYWZmaW5pdHkgKikgcDsKLQotCWlmICgoY3B1X2FmZmluaXR5LT5mbGFncyAmIEFDUElfU1JBVF9DUFVfRU5BQkxFRCkgPT0gMCkKLQkJcmV0dXJuOwkJLyogZW1wdHkgZW50cnkgKi8KLQotCS8qIG1hcmsgdGhpcyBub2RlIGFzICJzZWVuIiBpbiBub2RlIGJpdG1hcCAqLwotCUJNQVBfU0VUKHB4bV9iaXRtYXAsIGNwdV9hZmZpbml0eS0+cHJveGltaXR5X2RvbWFpbl9sbyk7Ci0KLQlhcGljaWRfdG9fcHhtW2NwdV9hZmZpbml0eS0+YXBpY19pZF0gPSBjcHVfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW5fbG87Ci0KLQlwcmludGsoIkNQVSAweCUwMlggaW4gcHJveGltaXR5IGRvbWFpbiAweCUwMlhcbiIsCi0JCWNwdV9hZmZpbml0eS0+YXBpY19pZCwgY3B1X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluX2xvKTsKLX0KLQotLyoKLSAqIElkZW50aWZ5IG1lbW9yeSBwcm94aW1pdHkgZG9tYWlucyBhbmQgaG90LXJlbW92ZSBjYXBhYmlsaXRpZXMuCi0gKiBGaWxsIG5vZGUgbWVtb3J5IGNodW5rIGxpc3Qgc3RydWN0dXJlLgotICovCi1zdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfbWVtb3J5X2FmZmluaXR5X3N0cnVjdHVyZSAoY2hhciAqc3JhdHApCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHBhZGRyLCBzaXplOwotCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBlbmRfcGZuOwotCXU4IHB4bTsKLQlzdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyAqcCwgKnEsICpwZW5kOwotCXN0cnVjdCBhY3BpX3NyYXRfbWVtX2FmZmluaXR5ICptZW1vcnlfYWZmaW5pdHkgPQotCQkJKHN0cnVjdCBhY3BpX3NyYXRfbWVtX2FmZmluaXR5ICopIHNyYXRwOwotCi0JaWYgKChtZW1vcnlfYWZmaW5pdHktPmZsYWdzICYgQUNQSV9TUkFUX01FTV9FTkFCTEVEKSA9PSAwKQotCQlyZXR1cm47CQkvKiBlbXB0eSBlbnRyeSAqLwotCi0JcHhtID0gbWVtb3J5X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluICYgMHhmZjsKLQotCS8qIG1hcmsgdGhpcyBub2RlIGFzICJzZWVuIiBpbiBub2RlIGJpdG1hcCAqLwotCUJNQVBfU0VUKHB4bV9iaXRtYXAsIHB4bSk7Ci0KLQkvKiBjYWxjdWxhdGUgaW5mbyBmb3IgbWVtb3J5IGNodW5rIHN0cnVjdHVyZSAqLwotCXBhZGRyID0gbWVtb3J5X2FmZmluaXR5LT5iYXNlX2FkZHJlc3M7Ci0Jc2l6ZSA9IG1lbW9yeV9hZmZpbml0eS0+bGVuZ3RoOwotCi0Jc3RhcnRfcGZuID0gcGFkZHIgPj4gUEFHRV9TSElGVDsKLQllbmRfcGZuID0gKHBhZGRyICsgc2l6ZSkgPj4gUEFHRV9TSElGVDsKLQotCi0JaWYgKG51bV9tZW1vcnlfY2h1bmtzID49IE1BWENIVU5LUykgewotCQlwcmludGsoIlRvbyBtYW55IG1lbSBjaHVua3MgaW4gU1JBVC4gSWdub3JpbmcgJWxsZCBNQnl0ZXMgYXQgJWxseFxuIiwKLQkJCXNpemUvKDEwMjQqMTAyNCksIHBhZGRyKTsKLQkJcmV0dXJuOwotCX0KLQotCS8qIEluc2VydGlvbiBzb3J0IGJhc2VkIG9uIGJhc2UgYWRkcmVzcyAqLwotCXBlbmQgPSAmbm9kZV9tZW1vcnlfY2h1bmtbbnVtX21lbW9yeV9jaHVua3NdOwotCWZvciAocCA9ICZub2RlX21lbW9yeV9jaHVua1swXTsgcCA8IHBlbmQ7IHArKykgewotCQlpZiAoc3RhcnRfcGZuIDwgcC0+c3RhcnRfcGZuKQotCQkJYnJlYWs7Ci0JfQotCWlmIChwIDwgcGVuZCkgewotCQlmb3IgKHEgPSBwZW5kOyBxID49IHA7IHEtLSkKLQkJCSoocSArIDEpID0gKnE7Ci0JfQotCXAtPnN0YXJ0X3BmbiA9IHN0YXJ0X3BmbjsKLQlwLT5lbmRfcGZuID0gZW5kX3BmbjsKLQlwLT5weG0gPSBweG07Ci0KLQludW1fbWVtb3J5X2NodW5rcysrOwotCi0JcHJpbnRrKCJNZW1vcnkgcmFuZ2UgMHglbFggdG8gMHglbFggKHR5cGUgMHglWCkgaW4gcHJveGltaXR5IGRvbWFpbiAweCUwMlggJXNcbiIsCi0JCXN0YXJ0X3BmbiwgZW5kX3BmbiwKLQkJbWVtb3J5X2FmZmluaXR5LT5tZW1vcnlfdHlwZSwKLQkJcHhtLAotCQkoKG1lbW9yeV9hZmZpbml0eS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfTUVNX0hPVF9QTFVHR0FCTEUpID8KLQkJICJlbmFibGVkIGFuZCByZW1vdmFibGUiIDogImVuYWJsZWQiICkgKTsKLX0KLQotLyoKLSAqIFRoZSBTUkFUIHRhYmxlIGFsd2F5cyBsaXN0cyBhc2NlbmRpbmcgYWRkcmVzc2VzLCBzbyBjYW4gYWx3YXlzCi0gKiBhc3N1bWUgdGhhdCB0aGUgZmlyc3QgInN0YXJ0IiBhZGRyZXNzIHRoYXQgeW91IHNlZSBpcyB0aGUgcmVhbAotICogc3RhcnQgb2YgdGhlIG5vZGUsIGFuZCB0aGF0IHRoZSBjdXJyZW50ICJlbmQiIGFkZHJlc3MgaXMgYWZ0ZXIKLSAqIHRoZSBwcmV2aW91cyBvbmUuCi0gKi8KLXN0YXRpYyBfX2luaXQgdm9pZCBub2RlX3JlYWRfY2h1bmsoaW50IG5pZCwgc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgKm1lbW9yeV9jaHVuaykKLXsKLQkvKgotCSAqIE9ubHkgYWRkIHByZXNlbnQgbWVtb3J5IGFzIHRvbGQgYnkgdGhlIGU4MjAuCi0JICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIGZyb20gdGhlIFNSQVQgdGhhdCB0aGUgbWVtb3J5IGl0Ci0JICogZW51bWVyYXRlcyBpcyBwcmVzZW50IGF0IGJvb3QgdGltZSBiZWNhdXNlIGl0IHJlcHJlc2VudHMKLQkgKiAqcG9zc2libGUqIG1lbW9yeSBob3RwbHVnIGFyZWFzIHRoZSBzYW1lIGFzIG5vcm1hbCBSQU0uCi0JICovCi0JaWYgKG1lbW9yeV9jaHVuay0+c3RhcnRfcGZuID49IG1heF9wZm4pIHsKLQkJcHJpbnRrIChLRVJOX0lORk8gIklnbm9yaW5nIFNSQVQgcGZuczogMHglMDhseCAtPiAlMDhseFxuIiwKLQkJCW1lbW9yeV9jaHVuay0+c3RhcnRfcGZuLCBtZW1vcnlfY2h1bmstPmVuZF9wZm4pOwotCQlyZXR1cm47Ci0JfQotCWlmIChtZW1vcnlfY2h1bmstPm5pZCAhPSBuaWQpCi0JCXJldHVybjsKLQotCWlmICghbm9kZV9oYXNfb25saW5lX21lbShuaWQpKQotCQlub2RlX3N0YXJ0X3BmbltuaWRdID0gbWVtb3J5X2NodW5rLT5zdGFydF9wZm47Ci0KLQlpZiAobm9kZV9zdGFydF9wZm5bbmlkXSA+IG1lbW9yeV9jaHVuay0+c3RhcnRfcGZuKQotCQlub2RlX3N0YXJ0X3BmbltuaWRdID0gbWVtb3J5X2NodW5rLT5zdGFydF9wZm47Ci0KLQlpZiAobm9kZV9lbmRfcGZuW25pZF0gPCBtZW1vcnlfY2h1bmstPmVuZF9wZm4pCi0JCW5vZGVfZW5kX3BmbltuaWRdID0gbWVtb3J5X2NodW5rLT5lbmRfcGZuOwotfQotCi0vKiBQYXJzZSB0aGUgQUNQSSBTdGF0aWMgUmVzb3VyY2UgQWZmaW5pdHkgVGFibGUgKi8KLXN0YXRpYyBpbnQgX19pbml0IGFjcGkyMF9wYXJzZV9zcmF0KHN0cnVjdCBhY3BpX3RhYmxlX3NyYXQgKnNyYXRwKQotewotCXU4ICpzdGFydCwgKmVuZCwgKnA7Ci0JaW50IGksIGosIG5pZDsKLQotCXN0YXJ0ID0gKHU4ICopKCYoc3JhdHAtPnJlc2VydmVkKSArIDEpOwkvKiBza2lwIGhlYWRlciAqLwotCXAgPSBzdGFydDsKLQllbmQgPSAodTggKilzcmF0cCArIHNyYXRwLT5oZWFkZXIubGVuZ3RoOwotCi0JbWVtc2V0KHB4bV9iaXRtYXAsIDAsIHNpemVvZihweG1fYml0bWFwKSk7CS8qIGluaXQgcHJveGltaXR5IGRvbWFpbiBiaXRtYXAgKi8KLQltZW1zZXQobm9kZV9tZW1vcnlfY2h1bmssIDAsIHNpemVvZihub2RlX21lbW9yeV9jaHVuaykpOwotCi0JbnVtX21lbW9yeV9jaHVua3MgPSAwOwotCXdoaWxlIChwIDwgZW5kKSB7Ci0JCXN3aXRjaCAoKnApIHsKLQkJY2FzZSBBQ1BJX1NSQVRfVFlQRV9DUFVfQUZGSU5JVFk6Ci0JCQlwYXJzZV9jcHVfYWZmaW5pdHlfc3RydWN0dXJlKHApOwotCQkJYnJlYWs7Ci0JCWNhc2UgQUNQSV9TUkFUX1RZUEVfTUVNT1JZX0FGRklOSVRZOgotCQkJcGFyc2VfbWVtb3J5X2FmZmluaXR5X3N0cnVjdHVyZShwKTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJcHJpbnRrKCJBQ1BJIDIuMCBTUkFUOiB1bmtub3duIGVudHJ5IHNraXBwZWQ6IHR5cGU9MHglMDJYLCBsZW49JWRcbiIsIHBbMF0sIHBbMV0pOwotCQkJYnJlYWs7Ci0JCX0KLQkJcCArPSBwWzFdOwotCQlpZiAocFsxXSA9PSAwKSB7Ci0JCQlwcmludGsoImFjcGkyMF9wYXJzZV9zcmF0OiBFbnRyeSBsZW5ndGggdmFsdWUgaXMgemVybzsiCi0JCQkJIiBjYW4ndCBwYXJzZSBhbnkgZnVydGhlciFcbiIpOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0KLQlpZiAobnVtX21lbW9yeV9jaHVua3MgPT0gMCkgewotCQlwcmludGsoImNvdWxkIG5vdCBmaW55IGFueSBBQ1BJIFNSQVQgbWVtb3J5IGFyZWFzLlxuIik7Ci0JCWdvdG8gb3V0X2ZhaWw7Ci0JfQotCi0JLyogQ2FsY3VsYXRlIHRvdGFsIG51bWJlciBvZiBub2RlcyBpbiBzeXN0ZW0gZnJvbSBQWE0gYml0bWFwIGFuZCBjcmVhdGUKLQkgKiBhIHNldCBvZiBzZXF1ZW50aWFsIG5vZGUgSURzIHN0YXJ0aW5nIGF0IHplcm8uICAoQUNQSSBkb2Vzbid0IHNlZW0KLQkgKiB0byBzcGVjaWZ5IHRoZSByYW5nZSBvZiBfUFhNIHZhbHVlcy4pCi0JICovCi0JLyoKLQkgKiBNQ0QgLSB3ZSBubyBsb25nZXIgSEFWRSB0byBudW1iZXIgbm9kZXMgc2VxdWVudGlhbGx5LiAgUFhNIGRvbWFpbgotCSAqIG51bWJlcnMgY291bGQgZ28gYXMgaGlnaCBhcyAyNTYsIGFuZCBNQVhfTlVNTk9ERVMgZm9yIGkzODYgaXMgdHlwaWNhbGx5Ci0JICogMzIsIHNvIHdlIHdpbGwgY29udGludWUgbnVtYmVyaW5nIHRoZW0gaW4gdGhpcyBtYW5uZXIgdW50aWwgTUFYX05VTU5PREVTCi0JICogYXBwcm9hY2hlcyBNQVhfUFhNX0RPTUFJTlMgZm9yIGkzODYuCi0JICovCi0Jbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX1BYTV9ET01BSU5TOyBpKyspIHsKLQkJaWYgKEJNQVBfVEVTVChweG1fYml0bWFwLCBpKSkgewotCQkJaW50IG5pZCA9IGFjcGlfbWFwX3B4bV90b19ub2RlKGkpOwotCQkJbm9kZV9zZXRfb25saW5lKG5pZCk7Ci0JCX0KLQl9Ci0JQlVHX09OKG51bV9vbmxpbmVfbm9kZXMoKSA9PSAwKTsKLQotCS8qIHNldCBjbm9kZSBpZCBpbiBtZW1vcnkgY2h1bmsgc3RydWN0dXJlICovCi0JZm9yIChpID0gMDsgaSA8IG51bV9tZW1vcnlfY2h1bmtzOyBpKyspCi0JCW5vZGVfbWVtb3J5X2NodW5rW2ldLm5pZCA9IHB4bV90b19ub2RlKG5vZGVfbWVtb3J5X2NodW5rW2ldLnB4bSk7Ci0KLQlwcmludGsoInB4bSBiaXRtYXA6ICIpOwotCWZvciAoaSA9IDA7IGkgPCBzaXplb2YocHhtX2JpdG1hcCk7IGkrKykgewotCQlwcmludGsoIiUwMlggIiwgcHhtX2JpdG1hcFtpXSk7Ci0JfQotCXByaW50aygiXG4iKTsKLQlwcmludGsoIk51bWJlciBvZiBsb2dpY2FsIG5vZGVzIGluIHN5c3RlbSA9ICVkXG4iLCBudW1fb25saW5lX25vZGVzKCkpOwotCXByaW50aygiTnVtYmVyIG9mIG1lbW9yeSBjaHVua3MgaW4gc3lzdGVtID0gJWRcbiIsIG51bV9tZW1vcnlfY2h1bmtzKTsKLQotCWZvciAoaSA9IDA7IGkgPCBNQVhfQVBJQ0lEOyBpKyspCi0JCWFwaWNpZF8yX25vZGVbaV0gPSBweG1fdG9fbm9kZShhcGljaWRfdG9fcHhtW2ldKTsKLQotCWZvciAoaiA9IDA7IGogPCBudW1fbWVtb3J5X2NodW5rczsgaisrKXsKLQkJc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgKiBjaHVuayA9ICZub2RlX21lbW9yeV9jaHVua1tqXTsKLQkJcHJpbnRrKCJjaHVuayAlZCBuaWQgJWQgc3RhcnRfcGZuICUwOGx4IGVuZF9wZm4gJTA4bHhcbiIsCi0JCSAgICAgICBqLCBjaHVuay0+bmlkLCBjaHVuay0+c3RhcnRfcGZuLCBjaHVuay0+ZW5kX3Bmbik7Ci0JCW5vZGVfcmVhZF9jaHVuayhjaHVuay0+bmlkLCBjaHVuayk7Ci0JCWFkZF9hY3RpdmVfcmFuZ2UoY2h1bmstPm5pZCwgY2h1bmstPnN0YXJ0X3BmbiwgY2h1bmstPmVuZF9wZm4pOwotCX0KLSAKLQlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpIHsKLQkJdW5zaWduZWQgbG9uZyBzdGFydCA9IG5vZGVfc3RhcnRfcGZuW25pZF07Ci0JCXVuc2lnbmVkIGxvbmcgZW5kID0gbm9kZV9lbmRfcGZuW25pZF07Ci0KLQkJbWVtb3J5X3ByZXNlbnQobmlkLCBzdGFydCwgZW5kKTsKLQkJbm9kZV9yZW1hcF9zaXplW25pZF0gPSBub2RlX21lbW1hcF9zaXplX2J5dGVzKG5pZCwgc3RhcnQsIGVuZCk7Ci0JfQotCXJldHVybiAxOwotb3V0X2ZhaWw6Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0cnVjdCBhY3BpX3N0YXRpY19yc2R0IHsKLQlzdHJ1Y3QgYWNwaV90YWJsZV9yc2R0IHRhYmxlOwotCXUzMiBwYWRkaW5nWzddOyAvKiBBbGxvdyBmb3IgNyBtb3JlIHRhYmxlIGVudHJpZXMgKi8KLX07Ci0KLWludCBfX2luaXQgZ2V0X21lbWNmZ19mcm9tX3NyYXQodm9pZCkKLXsKLQlzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKmhlYWRlciA9IE5VTEw7Ci0Jc3RydWN0IGFjcGlfdGFibGVfcnNkcCAqcnNkcCA9IE5VTEw7Ci0Jc3RydWN0IGFjcGlfdGFibGVfcnNkdCAqcnNkdCA9IE5VTEw7Ci0JYWNwaV9uYXRpdmVfdWludCByc2RwX2FkZHJlc3MgPSAwOwotCXN0cnVjdCBhY3BpX3N0YXRpY19yc2R0IHNhdmVkX3JzZHQ7Ci0JaW50IHRhYmxlcyA9IDA7Ci0JaW50IGkgPSAwOwotCi0JcnNkcF9hZGRyZXNzID0gYWNwaV9vc19nZXRfcm9vdF9wb2ludGVyKCk7Ci0JaWYgKCFyc2RwX2FkZHJlc3MpIHsKLQkJcHJpbnRrKCIlczogU3lzdGVtIGRlc2NyaXB0aW9uIHRhYmxlcyBub3QgZm91bmRcbiIsCi0JCSAgICAgICBfX2Z1bmNfXyk7Ci0JCWdvdG8gb3V0X2VycjsKLQl9Ci0KLQlwcmludGsoIiVzOiBhc3NpZ25pbmcgYWRkcmVzcyB0byByc2RwXG4iLCBfX2Z1bmNfXyk7Ci0JcnNkcCA9IChzdHJ1Y3QgYWNwaV90YWJsZV9yc2RwICopKHUzMilyc2RwX2FkZHJlc3M7Ci0JaWYgKCFyc2RwKSB7Ci0JCXByaW50aygiJXM6IERpZG4ndCBmaW5kIEFDUEkgcm9vdCFcbiIsIF9fZnVuY19fKTsKLQkJZ290byBvdXRfZXJyOwotCX0KLQotCXByaW50ayhLRVJOX0lORk8gIiUuOHMgdiVkIFslLjZzXVxuIiwgcnNkcC0+c2lnbmF0dXJlLCByc2RwLT5yZXZpc2lvbiwKLQkJcnNkcC0+b2VtX2lkKTsKLQotCWlmIChzdHJuY21wKHJzZHAtPnNpZ25hdHVyZSwgQUNQSV9TSUdfUlNEUCxzdHJsZW4oQUNQSV9TSUdfUlNEUCkpKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiBSU0RQIHRhYmxlIHNpZ25hdHVyZSBpbmNvcnJlY3RcbiIsIF9fZnVuY19fKTsKLQkJZ290byBvdXRfZXJyOwotCX0KLQotCXJzZHQgPSAoc3RydWN0IGFjcGlfdGFibGVfcnNkdCAqKQotCSAgICBlYXJseV9pb3JlbWFwKHJzZHAtPnJzZHRfcGh5c2ljYWxfYWRkcmVzcywgc2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX3JzZHQpKTsKLQotCWlmICghcnNkdCkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HCi0JCSAgICAgICAiJXM6IEFDUEk6IEludmFsaWQgcm9vdCBzeXN0ZW0gZGVzY3JpcHRpb24gdGFibGVzIChSU0RUKVxuIiwKLQkJICAgICAgIF9fZnVuY19fKTsKLQkJZ290byBvdXRfZXJyOwotCX0KLQotCWhlYWRlciA9ICZyc2R0LT5oZWFkZXI7Ci0KLQlpZiAoc3RybmNtcChoZWFkZXItPnNpZ25hdHVyZSwgQUNQSV9TSUdfUlNEVCwgc3RybGVuKEFDUElfU0lHX1JTRFQpKSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJBQ1BJOiBSU0RUIHNpZ25hdHVyZSBpbmNvcnJlY3RcbiIpOwotCQlnb3RvIG91dF9lcnI7Ci0JfQotCi0JLyogCi0JICogVGhlIG51bWJlciBvZiB0YWJsZXMgaXMgY29tcHV0ZWQgYnkgdGFraW5nIHRoZSAKLQkgKiBzaXplIG9mIGFsbCBlbnRyaWVzIChoZWFkZXIgc2l6ZSBtaW51cyB0b3RhbCAKLQkgKiBzaXplIG9mIFJTRFQpIGRpdmlkZWQgYnkgdGhlIHNpemUgb2YgZWFjaCBlbnRyeQotCSAqICg0LWJ5dGUgdGFibGUgcG9pbnRlcnMpLgotCSAqLwotCXRhYmxlcyA9IChoZWFkZXItPmxlbmd0aCAtIHNpemVvZihzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIpKSAvIDQ7Ci0KLQlpZiAoIXRhYmxlcykKLQkJZ290byBvdXRfZXJyOwotCi0JbWVtY3B5KCZzYXZlZF9yc2R0LCByc2R0LCBzaXplb2Yoc2F2ZWRfcnNkdCkpOwotCi0JaWYgKHNhdmVkX3JzZHQudGFibGUuaGVhZGVyLmxlbmd0aCA+IHNpemVvZihzYXZlZF9yc2R0KSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJBQ1BJOiBUb28gYmlnIGxlbmd0aCBpbiBSU0RUOiAlZFxuIiwKLQkJICAgICAgIHNhdmVkX3JzZHQudGFibGUuaGVhZGVyLmxlbmd0aCk7Ci0JCWdvdG8gb3V0X2VycjsKLQl9Ci0KLQlwcmludGsoIkJlZ2luIFNSQVQgdGFibGUgc2Nhbi4uLi5cbiIpOwotCi0JZm9yIChpID0gMDsgaSA8IHRhYmxlczsgaSsrKSB7Ci0JCS8qIE1hcCBpbiBoZWFkZXIsIHRoZW4gbWFwIGluIGZ1bGwgdGFibGUgbGVuZ3RoLiAqLwotCQloZWFkZXIgPSAoc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyICopCi0JCQllYXJseV9pb3JlbWFwKHNhdmVkX3JzZHQudGFibGUudGFibGVfb2Zmc2V0X2VudHJ5W2ldLCBzaXplb2Yoc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyKSk7Ci0JCWlmICghaGVhZGVyKQotCQkJYnJlYWs7Ci0JCWhlYWRlciA9IChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKikKLQkJCWVhcmx5X2lvcmVtYXAoc2F2ZWRfcnNkdC50YWJsZS50YWJsZV9vZmZzZXRfZW50cnlbaV0sIGhlYWRlci0+bGVuZ3RoKTsKLQkJaWYgKCFoZWFkZXIpCi0JCQlicmVhazsKLQotCQlpZiAoc3RybmNtcCgoY2hhciAqKSAmaGVhZGVyLT5zaWduYXR1cmUsIEFDUElfU0lHX1NSQVQsIDQpKQotCQkJY29udGludWU7Ci0KLQkJLyogd2UndmUgZm91bmQgdGhlIHNyYXQgdGFibGUuIGRvbid0IG5lZWQgdG8gbG9vayBhdCBhbnkgbW9yZSB0YWJsZXMgKi8KLQkJcmV0dXJuIGFjcGkyMF9wYXJzZV9zcmF0KChzdHJ1Y3QgYWNwaV90YWJsZV9zcmF0ICopaGVhZGVyKTsKLQl9Ci1vdXRfZXJyOgotCXJlbW92ZV9hbGxfYWN0aXZlX3JhbmdlcygpOwotCXByaW50aygiZmFpbGVkIHRvIGdldCBOVU1BIG1lbW9yeSBpbmZvcm1hdGlvbiBmcm9tIFNSQVQgdGFibGVcbiIpOwotCXJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3N0YWNrdHJhY2UuYyBiL2FyY2gveDg2L2tlcm5lbC9zdGFja3RyYWNlLmMKaW5kZXggYzI4YzM0Mi4uYTAzZTdmNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3N0YWNrdHJhY2UuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvc3RhY2t0cmFjZS5jCkBAIC03NCw2ICs3NCw3IEBACiAJaWYgKHRyYWNlLT5ucl9lbnRyaWVzIDwgdHJhY2UtPm1heF9lbnRyaWVzKQogCQl0cmFjZS0+ZW50cmllc1t0cmFjZS0+bnJfZW50cmllcysrXSA9IFVMT05HX01BWDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKHNhdmVfc3RhY2tfdHJhY2UpOwogCiB2b2lkIHNhdmVfc3RhY2tfdHJhY2VfdHNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3Qgc3RhY2tfdHJhY2UgKnRyYWNlKQogewpAQCAtODEsMyArODIsNCBAQAogCWlmICh0cmFjZS0+bnJfZW50cmllcyA8IHRyYWNlLT5tYXhfZW50cmllcykKIAkJdHJhY2UtPmVudHJpZXNbdHJhY2UtPm5yX2VudHJpZXMrK10gPSBVTE9OR19NQVg7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChzYXZlX3N0YWNrX3RyYWNlX3Rzayk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc3VtbWl0XzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvc3VtbWl0XzMyLmMKaW5kZXggYWU3NTEwOS4uZDY3Y2U1ZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3N1bW1pdF8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zdW1taXRfMzIuYwpAQCAtMzYsNyArMzYsOSBAQAogc3RhdGljIHN0cnVjdCBzY2FsX2RldGFpbCAgICpzY2FsX2RldnNbTUFYX05VTU5PREVTXSBfX2luaXRkYXRhOwogc3RhdGljIHN0cnVjdCByaW9fZGV0YWlsICAgICpyaW9fZGV2c1tNQVhfTlVNTk9ERVMqNF0gX19pbml0ZGF0YTsKIAorI2lmbmRlZiBDT05GSUdfWDg2X05VTUFRCiBzdGF0aWMgaW50IG1wX2J1c19pZF90b19ub2RlW01BWF9NUF9CVVNTRVNdIF9faW5pdGRhdGE7CisjZW5kaWYKIAogc3RhdGljIGludCBfX2luaXQgc2V0dXBfcGNpX25vZGVfbWFwX2Zvcl93cGVnKGludCB3cGVnX251bSwgaW50IGxhc3RfYnVzKQogewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3N5c19pMzg2XzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvc3lzX2kzODZfMzIuYwppbmRleCBkMmFiNTJjLi43MDY2Y2I4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc3lzX2kzODZfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvc3lzX2kzODZfMzIuYwpAQCAtMTksOCArMTksOCBAQAogI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KICNpbmNsdWRlIDxsaW51eC9pcGMuaD4KIAotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91bmlzdGQuaD4KIAogYXNtbGlua2FnZSBsb25nIHN5c19tbWFwMih1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbGVuLAogCQkJICB1bnNpZ25lZCBsb25nIHByb3QsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCkBAIC0xMDMsNyArMTAzLDcgQEAKICAqCiAgKiBUaGlzIGlzIHJlYWxseSBob3JyaWJseSB1Z2x5LgogICovCi1hc21saW5rYWdlIGludCBzeXNfaXBjICh1aW50IGNhbGwsIGludCBmaXJzdCwgaW50IHNlY29uZCwKK2FzbWxpbmthZ2UgaW50IHN5c19pcGModWludCBjYWxsLCBpbnQgZmlyc3QsIGludCBzZWNvbmQsCiAJCQlpbnQgdGhpcmQsIHZvaWQgX191c2VyICpwdHIsIGxvbmcgZmlmdGgpCiB7CiAJaW50IHZlcnNpb24sIHJldDsKQEAgLTExMywyNCArMTEzLDI0IEBACiAKIAlzd2l0Y2ggKGNhbGwpIHsKIAljYXNlIFNFTU9QOgotCQlyZXR1cm4gc3lzX3NlbXRpbWVkb3AgKGZpcnN0LCAoc3RydWN0IHNlbWJ1ZiBfX3VzZXIgKilwdHIsIHNlY29uZCwgTlVMTCk7CisJCXJldHVybiBzeXNfc2VtdGltZWRvcChmaXJzdCwgKHN0cnVjdCBzZW1idWYgX191c2VyICopcHRyLCBzZWNvbmQsIE5VTEwpOwogCWNhc2UgU0VNVElNRURPUDoKIAkJcmV0dXJuIHN5c19zZW10aW1lZG9wKGZpcnN0LCAoc3RydWN0IHNlbWJ1ZiBfX3VzZXIgKilwdHIsIHNlY29uZCwKIAkJCQkJKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyBfX3VzZXIgKilmaWZ0aCk7CiAKIAljYXNlIFNFTUdFVDoKLQkJcmV0dXJuIHN5c19zZW1nZXQgKGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKKwkJcmV0dXJuIHN5c19zZW1nZXQoZmlyc3QsIHNlY29uZCwgdGhpcmQpOwogCWNhc2UgU0VNQ1RMOiB7CiAJCXVuaW9uIHNlbXVuIGZvdXJ0aDsKIAkJaWYgKCFwdHIpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJaWYgKGdldF91c2VyKGZvdXJ0aC5fX3BhZCwgKHZvaWQgX191c2VyICogX191c2VyICopIHB0cikpCiAJCQlyZXR1cm4gLUVGQVVMVDsKLQkJcmV0dXJuIHN5c19zZW1jdGwgKGZpcnN0LCBzZWNvbmQsIHRoaXJkLCBmb3VydGgpOworCQlyZXR1cm4gc3lzX3NlbWN0bChmaXJzdCwgc2Vjb25kLCB0aGlyZCwgZm91cnRoKTsKIAl9CiAKIAljYXNlIE1TR1NORDoKLQkJcmV0dXJuIHN5c19tc2dzbmQgKGZpcnN0LCAoc3RydWN0IG1zZ2J1ZiBfX3VzZXIgKikgcHRyLCAKKwkJcmV0dXJuIHN5c19tc2dzbmQoZmlyc3QsIChzdHJ1Y3QgbXNnYnVmIF9fdXNlciAqKSBwdHIsCiAJCQkJICAgc2Vjb25kLCB0aGlyZCk7CiAJY2FzZSBNU0dSQ1Y6CiAJCXN3aXRjaCAodmVyc2lvbikgewpAQCAtMTM4LDQ1ICsxMzgsNDUgQEAKIAkJCXN0cnVjdCBpcGNfa2x1ZGdlIHRtcDsKIAkJCWlmICghcHRyKQogCQkJCXJldHVybiAtRUlOVkFMOwotCQkJCisKIAkJCWlmIChjb3B5X2Zyb21fdXNlcigmdG1wLAotCQkJCQkgICAoc3RydWN0IGlwY19rbHVkZ2UgX191c2VyICopIHB0ciwgCi0JCQkJCSAgIHNpemVvZiAodG1wKSkpCisJCQkJCSAgIChzdHJ1Y3QgaXBjX2tsdWRnZSBfX3VzZXIgKikgcHRyLAorCQkJCQkgICBzaXplb2YodG1wKSkpCiAJCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCQlyZXR1cm4gc3lzX21zZ3JjdiAoZmlyc3QsIHRtcC5tc2dwLCBzZWNvbmQsCisJCQlyZXR1cm4gc3lzX21zZ3JjdihmaXJzdCwgdG1wLm1zZ3AsIHNlY29uZCwKIAkJCQkJICAgdG1wLm1zZ3R5cCwgdGhpcmQpOwogCQl9CiAJCWRlZmF1bHQ6Ci0JCQlyZXR1cm4gc3lzX21zZ3JjdiAoZmlyc3QsCisJCQlyZXR1cm4gc3lzX21zZ3JjdihmaXJzdCwKIAkJCQkJICAgKHN0cnVjdCBtc2didWYgX191c2VyICopIHB0ciwKIAkJCQkJICAgc2Vjb25kLCBmaWZ0aCwgdGhpcmQpOwogCQl9CiAJY2FzZSBNU0dHRVQ6Ci0JCXJldHVybiBzeXNfbXNnZ2V0ICgoa2V5X3QpIGZpcnN0LCBzZWNvbmQpOworCQlyZXR1cm4gc3lzX21zZ2dldCgoa2V5X3QpIGZpcnN0LCBzZWNvbmQpOwogCWNhc2UgTVNHQ1RMOgotCQlyZXR1cm4gc3lzX21zZ2N0bCAoZmlyc3QsIHNlY29uZCwgKHN0cnVjdCBtc3FpZF9kcyBfX3VzZXIgKikgcHRyKTsKKwkJcmV0dXJuIHN5c19tc2djdGwoZmlyc3QsIHNlY29uZCwgKHN0cnVjdCBtc3FpZF9kcyBfX3VzZXIgKikgcHRyKTsKIAogCWNhc2UgU0hNQVQ6CiAJCXN3aXRjaCAodmVyc2lvbikgewogCQlkZWZhdWx0OiB7CiAJCQl1bG9uZyByYWRkcjsKLQkJCXJldCA9IGRvX3NobWF0IChmaXJzdCwgKGNoYXIgX191c2VyICopIHB0ciwgc2Vjb25kLCAmcmFkZHIpOworCQkJcmV0ID0gZG9fc2htYXQoZmlyc3QsIChjaGFyIF9fdXNlciAqKSBwdHIsIHNlY29uZCwgJnJhZGRyKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKLQkJCXJldHVybiBwdXRfdXNlciAocmFkZHIsICh1bG9uZyBfX3VzZXIgKikgdGhpcmQpOworCQkJcmV0dXJuIHB1dF91c2VyKHJhZGRyLCAodWxvbmcgX191c2VyICopIHRoaXJkKTsKIAkJfQogCQljYXNlIDE6CS8qIGlCQ1MyIGVtdWxhdG9yIGVudHJ5IHBvaW50ICovCiAJCQlpZiAoIXNlZ21lbnRfZXEoZ2V0X2ZzKCksIGdldF9kcygpKSkKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCS8qIFRoZSAiKHVsb25nICopIHRoaXJkIiBpcyB2YWxpZCBfb25seV8gYmVjYXVzZSBvZiB0aGUga2VybmVsIHNlZ21lbnQgdGhpbmcgKi8KLQkJCXJldHVybiBkb19zaG1hdCAoZmlyc3QsIChjaGFyIF9fdXNlciAqKSBwdHIsIHNlY29uZCwgKHVsb25nICopIHRoaXJkKTsKKwkJCXJldHVybiBkb19zaG1hdChmaXJzdCwgKGNoYXIgX191c2VyICopIHB0ciwgc2Vjb25kLCAodWxvbmcgKikgdGhpcmQpOwogCQl9Ci0JY2FzZSBTSE1EVDogCi0JCXJldHVybiBzeXNfc2htZHQgKChjaGFyIF9fdXNlciAqKXB0cik7CisJY2FzZSBTSE1EVDoKKwkJcmV0dXJuIHN5c19zaG1kdCgoY2hhciBfX3VzZXIgKilwdHIpOwogCWNhc2UgU0hNR0VUOgotCQlyZXR1cm4gc3lzX3NobWdldCAoZmlyc3QsIHNlY29uZCwgdGhpcmQpOworCQlyZXR1cm4gc3lzX3NobWdldChmaXJzdCwgc2Vjb25kLCB0aGlyZCk7CiAJY2FzZSBTSE1DVEw6Ci0JCXJldHVybiBzeXNfc2htY3RsIChmaXJzdCwgc2Vjb25kLAorCQlyZXR1cm4gc3lzX3NobWN0bChmaXJzdCwgc2Vjb25kLAogCQkJCSAgIChzdHJ1Y3Qgc2htaWRfZHMgX191c2VyICopIHB0cik7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FTk9TWVM7CkBAIC0xODYsMjggKzE4NiwyOCBAQAogLyoKICAqIE9sZCBjcnVmdAogICovCi1hc21saW5rYWdlIGludCBzeXNfdW5hbWUoc3RydWN0IG9sZF91dHNuYW1lIF9fdXNlciAqIG5hbWUpCithc21saW5rYWdlIGludCBzeXNfdW5hbWUoc3RydWN0IG9sZF91dHNuYW1lIF9fdXNlciAqbmFtZSkKIHsKIAlpbnQgZXJyOwogCWlmICghbmFtZSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJZG93bl9yZWFkKCZ1dHNfc2VtKTsKLQllcnIgPSBjb3B5X3RvX3VzZXIobmFtZSwgdXRzbmFtZSgpLCBzaXplb2YgKCpuYW1lKSk7CisJZXJyID0gY29weV90b191c2VyKG5hbWUsIHV0c25hbWUoKSwgc2l6ZW9mKCpuYW1lKSk7CiAJdXBfcmVhZCgmdXRzX3NlbSk7Ci0JcmV0dXJuIGVycj8tRUZBVUxUOjA7CisJcmV0dXJuIGVycj8gLUVGQVVMVDowOwogfQogCi1hc21saW5rYWdlIGludCBzeXNfb2xkdW5hbWUoc3RydWN0IG9sZG9sZF91dHNuYW1lIF9fdXNlciAqIG5hbWUpCithc21saW5rYWdlIGludCBzeXNfb2xkdW5hbWUoc3RydWN0IG9sZG9sZF91dHNuYW1lIF9fdXNlciAqbmFtZSkKIHsKIAlpbnQgZXJyb3I7CiAKIAlpZiAoIW5hbWUpCiAJCXJldHVybiAtRUZBVUxUOwotCWlmICghYWNjZXNzX29rKFZFUklGWV9XUklURSxuYW1lLHNpemVvZihzdHJ1Y3Qgb2xkb2xkX3V0c25hbWUpKSkKKwlpZiAoIWFjY2Vzc19vayhWRVJJRllfV1JJVEUsIG5hbWUsIHNpemVvZihzdHJ1Y3Qgb2xkb2xkX3V0c25hbWUpKSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0gIAotICAJZG93bl9yZWFkKCZ1dHNfc2VtKTsKLQkKKworCWRvd25fcmVhZCgmdXRzX3NlbSk7CisKIAllcnJvciA9IF9fY29weV90b191c2VyKCZuYW1lLT5zeXNuYW1lLCAmdXRzbmFtZSgpLT5zeXNuYW1lLAogCQkJICAgICAgIF9fT0xEX1VUU19MRU4pOwogCWVycm9yIHw9IF9fcHV0X3VzZXIoMCwgbmFtZS0+c3lzbmFtZSArIF9fT0xEX1VUU19MRU4pOwpAQCAtMjIzLDkgKzIyMyw5IEBACiAJZXJyb3IgfD0gX19jb3B5X3RvX3VzZXIoJm5hbWUtPm1hY2hpbmUsICZ1dHNuYW1lKCktPm1hY2hpbmUsCiAJCQkJX19PTERfVVRTX0xFTik7CiAJZXJyb3IgfD0gX19wdXRfdXNlcigwLCBuYW1lLT5tYWNoaW5lICsgX19PTERfVVRTX0xFTik7Ci0JCisKIAl1cF9yZWFkKCZ1dHNfc2VtKTsKLQkKKwogCWVycm9yID0gZXJyb3IgPyAtRUZBVUxUIDogMDsKIAogCXJldHVybiBlcnJvcjsKQEAgLTI0MSw2ICsyNDEsNiBAQAogCWxvbmcgX19yZXM7CiAJYXNtIHZvbGF0aWxlICgicHVzaCAlJWVieCA7IG1vdmwgJTIsJSVlYnggOyBpbnQgJDB4ODAgOyBwb3AgJSVlYngiCiAJOiAiPWEiIChfX3JlcykKLQk6ICIwIiAoX19OUl9leGVjdmUpLCJyaSIgKGZpbGVuYW1lKSwiYyIgKGFyZ3YpLCAiZCIgKGVudnApIDogIm1lbW9yeSIpOworCTogIjAiIChfX05SX2V4ZWN2ZSksICJyaSIgKGZpbGVuYW1lKSwgImMiIChhcmd2KSwgImQiIChlbnZwKSA6ICJtZW1vcnkiKTsKIAlyZXR1cm4gX19yZXM7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdGltZV8zMi5jIGIvYXJjaC94ODYva2VybmVsL3RpbWVfMzIuYwppbmRleCAyZmYyMWYzLi4wNTljYTZlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdGltZV8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90aW1lXzMyLmMKQEAgLTM5LDkgKzM5LDYgQEAKIAogI2luY2x1ZGUgImRvX3RpbWVyLmgiCiAKLXVuc2lnbmVkIGludCBjcHVfa2h6OwkvKiBEZXRlY3RlZCBhcyB3ZSBjYWxpYnJhdGUgdGhlIFRTQyAqLwotRVhQT1JUX1NZTUJPTChjcHVfa2h6KTsKLQogaW50IHRpbWVyX2FjazsKIAogdW5zaWduZWQgbG9uZyBwcm9maWxlX3BjKHN0cnVjdCBwdF9yZWdzICpyZWdzKQpAQCAtODQsOCArODEsNyBAQAogCWlmICh0aW1lcl9hY2spIHsKIAkJLyoKIAkJICogU3VidGxlLCB3aGVuIEkvTyBBUElDcyBhcmUgdXNlZCB3ZSBoYXZlIHRvIGFjayB0aW1lciBJUlEKLQkJICogbWFudWFsbHkgdG8gcmVzZXQgdGhlIElSUiBiaXQgZm9yIGRvX3Nsb3dfZ2V0dGltZW9mZnNldCgpLgotCQkgKiBUaGlzIHdpbGwgYWxzbyBkZWFzc2VydCBOTUkgbGluZXMgZm9yIHRoZSB3YXRjaGRvZyBpZiBydW4KKwkJICogbWFudWFsbHkgdG8gZGVhc3NlcnQgTk1JIGxpbmVzIGZvciB0aGUgd2F0Y2hkb2cgaWYgcnVuCiAJCSAqIG9uIGFuIDgyNDg5RFgtYmFzZWQgc3lzdGVtLgogCQkgKi8KIAkJc3Bpbl9sb2NrKCZpODI1OUFfbG9jayk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdGltZV82NC5jIGIvYXJjaC94ODYva2VybmVsL3RpbWVfNjQuYwppbmRleCBjNzM3ODQ5Li5lM2Q0OWM1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdGltZV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90aW1lXzY0LmMKQEAgLTU2LDcgKzU2LDcgQEAKIC8qIGNhbGlicmF0ZV9jcHUgaXMgdXNlZCBvbiBzeXN0ZW1zIHdpdGggZml4ZWQgcmF0ZSBUU0NzIHRvIGRldGVybWluZQogICogcHJvY2Vzc29yIGZyZXF1ZW5jeSAqLwogI2RlZmluZSBUSUNLX0NPVU5UIDEwMDAwMDAwMAotdW5zaWduZWQgbG9uZyBfX2luaXQgbmF0aXZlX2NhbGN1bGF0ZV9jcHVfa2h6KHZvaWQpCit1bnNpZ25lZCBsb25nIF9faW5pdCBjYWxpYnJhdGVfY3B1KHZvaWQpCiB7CiAJaW50IHRzY19zdGFydCwgdHNjX25vdzsKIAlpbnQgaSwgbm9fY3RyX2ZyZWU7CkBAIC0xMTYsMjMgKzExNiwxMSBAQAogCiB2b2lkIF9faW5pdCB0aW1lX2luaXQodm9pZCkKIHsKLQl0c2NfY2FsaWJyYXRlKCk7Ci0KLQljcHVfa2h6ID0gdHNjX2toejsKLQlpZiAoY3B1X2hhcygmYm9vdF9jcHVfZGF0YSwgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKSAmJgotCQkoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EKSkKLQkJY3B1X2toeiA9IGNhbGN1bGF0ZV9jcHVfa2h6KCk7Ci0KLQlpZiAodW5zeW5jaHJvbml6ZWRfdHNjKCkpCi0JCW1hcmtfdHNjX3Vuc3RhYmxlKCJUU0NzIHVuc3luY2hyb25pemVkIik7Ci0KKwl0c2NfaW5pdCgpOwogCWlmIChjcHVfaGFzKCZib290X2NwdV9kYXRhLCBYODZfRkVBVFVSRV9SRFRTQ1ApKQogCQl2Z2V0Y3B1X21vZGUgPSBWR0VUQ1BVX1JEVFNDUDsKIAllbHNlCiAJCXZnZXRjcHVfbW9kZSA9IFZHRVRDUFVfTFNMOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAidGltZS5jOiBEZXRlY3RlZCAlZC4lMDNkIE1IeiBwcm9jZXNzb3IuXG4iLAotCQljcHVfa2h6IC8gMTAwMCwgY3B1X2toeiAlIDEwMDApOwotCWluaXRfdHNjX2Nsb2Nrc291cmNlKCk7CiAJbGF0ZV90aW1lX2luaXQgPSBjaG9vc2VfdGltZV9pbml0KCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdGxiXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdGxiXzY0LmMKaW5kZXggMTg0YTM2Ny4uZGNiZjdhMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3RsYl82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90bGJfNjQuYwpAQCAtMTUsNiArMTUsOCBAQAogI2luY2x1ZGUgPGFzbS9wcm90by5oPgogI2luY2x1ZGUgPGFzbS9hcGljZGVmLmg+CiAjaW5jbHVkZSA8YXNtL2lkbGUuaD4KKyNpbmNsdWRlIDxhc20vdXYvdXZfaHViLmg+CisjaW5jbHVkZSA8YXNtL3V2L3V2X2JhdS5oPgogCiAjaW5jbHVkZSA8bWFjaF9pcGkuaD4KIC8qCkBAIC0xNjIsNiArMTY0LDkgQEAKIAl1bmlvbiBzbXBfZmx1c2hfc3RhdGUgKmY7CiAJY3B1bWFza190IGNwdW1hc2sgPSAqY3B1bWFza3A7CiAKKwlpZiAoaXNfdXZfc3lzdGVtKCkgJiYgdXZfZmx1c2hfdGxiX290aGVycygmY3B1bWFzaywgbW0sIHZhKSkKKwkJcmV0dXJuOworCiAJLyogQ2FsbGVyIGhhcyBkaXNhYmxlZCBwcmVlbXB0aW9uICovCiAJc2VuZGVyID0gc21wX3Byb2Nlc3Nvcl9pZCgpICUgTlVNX0lOVkFMSURBVEVfVExCX1ZFQ1RPUlM7CiAJZiA9ICZwZXJfY3B1KGZsdXNoX3N0YXRlLCBzZW5kZXIpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3RsYl91di5jIGIvYXJjaC94ODYva2VybmVsL3RsYl91di5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZmJiNzcKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvdGxiX3V2LmMKQEAgLTAsMCArMSw3OTIgQEAKKy8qCisgKglTR0kgVWx0cmFWaW9sZXQgVExCIGZsdXNoIHJvdXRpbmVzLgorICoKKyAqCShjKSAyMDA4IENsaWZmIFdpY2ttYW4gPGNwd0BzZ2kuY29tPiwgU0dJLgorICoKKyAqCVRoaXMgY29kZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIG9yCisgKglsYXRlci4KKyAqLworI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CisjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorCisjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CisjaW5jbHVkZSA8YXNtL3V2L3V2X21tcnMuaD4KKyNpbmNsdWRlIDxhc20vdXYvdXZfaHViLmg+CisjaW5jbHVkZSA8YXNtL3V2L3V2X2JhdS5oPgorI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+CisjaW5jbHVkZSA8YXNtL2lkbGUuaD4KKyNpbmNsdWRlIDxhc20vdHNjLmg+CisKKyNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KKworc3RhdGljIHN0cnVjdCBiYXVfY29udHJvbAkqKnV2X2JhdV90YWJsZV9iYXNlcyBfX3JlYWRfbW9zdGx5Oworc3RhdGljIGludAkJCXV2X2JhdV9yZXRyeV9saW1pdCBfX3JlYWRfbW9zdGx5OworCisvKiBwb3NpdGlvbiBvZiBwbm9kZSAod2hpY2ggaXMgbmFzaWQ+PjEpOiAqLworc3RhdGljIGludAkJCXV2X25zaGlmdCBfX3JlYWRfbW9zdGx5OworCitzdGF0aWMgdW5zaWduZWQgbG9uZwkJdXZfbW1hc2sgX19yZWFkX21vc3RseTsKKworc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBwdGNfc3RhdHMsIHB0Y3N0YXRzKTsKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgYmF1X2NvbnRyb2wsIGJhdV9jb250cm9sKTsKKworLyoKKyAqIEZyZWUgYSBzb2Z0d2FyZSBhY2tub3dsZWRnZSBoYXJkd2FyZSByZXNvdXJjZSBieSBjbGVhcmluZyBpdHMgUGVuZGluZworICogYml0LiBUaGlzIHdpbGwgcmV0dXJuIGEgcmVwbHkgdG8gdGhlIHNlbmRlci4KKyAqIElmIHRoZSBtZXNzYWdlIGhhcyB0aW1lZCBvdXQsIGEgcmVwbHkgaGFzIGFscmVhZHkgYmVlbiBzZW50IGJ5IHRoZQorICogaGFyZHdhcmUgYnV0IHRoZSByZXNvdXJjZSBoYXMgbm90IGJlZW4gcmVsZWFzZWQuIEluIHRoYXQgY2FzZSBvdXIKKyAqIGNsZWFyIG9mIHRoZSBUaW1lb3V0IGJpdCAoYXMgd2VsbCkgd2lsbCBmcmVlIHRoZSByZXNvdXJjZS4gTm8gcmVwbHkgd2lsbAorICogYmUgc2VudCAodGhlIGhhcmR3YXJlIHdpbGwgb25seSBkbyBvbmUgcmVwbHkgcGVyIG1lc3NhZ2UpLgorICovCitzdGF0aWMgdm9pZCB1dl9yZXBseV90b19tZXNzYWdlKGludCByZXNvdXJjZSwKKwkJCQlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKm1zZywKKwkJCQlzdHJ1Y3QgYmF1X21zZ19zdGF0dXMgKm1zcCkKK3sKKwl1bnNpZ25lZCBsb25nIGR3OworCisJZHcgPSAoMSA8PCAocmVzb3VyY2UgKyBVVl9TV19BQ0tfTlBFTkRJTkcpKSB8ICgxIDw8IHJlc291cmNlKTsKKwltc2ctPnJlcGxpZWRfdG8gPSAxOworCW1zZy0+c3dfYWNrX3ZlY3RvciA9IDA7CisJaWYgKG1zcCkKKwkJbXNwLT5zZWVuX2J5LmJpdHMgPSAwOworCXV2X3dyaXRlX2xvY2FsX21tcihVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfQUxJQVMsIGR3KTsKK30KKworLyoKKyAqIERvIGFsbCB0aGUgdGhpbmdzIGEgY3B1IHNob3VsZCBkbyBmb3IgYSBUTEIgc2hvb3Rkb3duIG1lc3NhZ2UuCisgKiBPdGhlciBjcHUncyBtYXkgY29tZSBoZXJlIGF0IHRoZSBzYW1lIHRpbWUgZm9yIHRoaXMgbWVzc2FnZS4KKyAqLworc3RhdGljIHZvaWQgdXZfYmF1X3Byb2Nlc3NfbWVzc2FnZShzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKm1zZywKKwkJCQkgICBpbnQgbXNnX3Nsb3QsIGludCBzd19hY2tfc2xvdCkKK3sKKwl1bnNpZ25lZCBsb25nIHRoaXNfY3B1X21hc2s7CisJc3RydWN0IGJhdV9tc2dfc3RhdHVzICptc3A7CisJaW50IGNwdTsKKworCW1zcCA9IF9fZ2V0X2NwdV92YXIoYmF1X2NvbnRyb2wpLm1zZ19zdGF0dXNlcyArIG1zZ19zbG90OworCWNwdSA9IHV2X2JsYWRlX3Byb2Nlc3Nvcl9pZCgpOworCW1zZy0+bnVtYmVyX29mX2NwdXMgPQorCSAgICB1dl9ibGFkZV9ucl9vbmxpbmVfY3B1cyh1dl9ub2RlX3RvX2JsYWRlX2lkKG51bWFfbm9kZV9pZCgpKSk7CisJdGhpc19jcHVfbWFzayA9IDFVTCA8PCBjcHU7CisJaWYgKG1zcC0+c2Vlbl9ieS5iaXRzICYgdGhpc19jcHVfbWFzaykKKwkJcmV0dXJuOworCWF0b21pY19vcl9sb25nKCZtc3AtPnNlZW5fYnkuYml0cywgdGhpc19jcHVfbWFzayk7CisKKwlpZiAobXNnLT5yZXBsaWVkX3RvID09IDEpCisJCXJldHVybjsKKworCWlmIChtc2ctPmFkZHJlc3MgPT0gVExCX0ZMVVNIX0FMTCkgeworCQlsb2NhbF9mbHVzaF90bGIoKTsKKwkJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykuYWxsdGxiKys7CisJfSBlbHNlIHsKKwkJX19mbHVzaF90bGJfb25lKG1zZy0+YWRkcmVzcyk7CisJCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLm9uZXRsYisrOworCX0KKworCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLnJlcXVlc3RlZSsrOworCisJYXRvbWljX2luY19zaG9ydCgmbXNnLT5hY2tub3dsZWRnZV9jb3VudCk7CisJaWYgKG1zZy0+bnVtYmVyX29mX2NwdXMgPT0gbXNnLT5hY2tub3dsZWRnZV9jb3VudCkKKwkJdXZfcmVwbHlfdG9fbWVzc2FnZShzd19hY2tfc2xvdCwgbXNnLCBtc3ApOworfQorCisvKgorICogRXhhbWluZSB0aGUgcGF5bG9hZCBxdWV1ZSBvbiBvbmUgZGlzdHJpYnV0aW9uIG5vZGUgdG8gc2VlCisgKiB3aGljaCBtZXNzYWdlcyBoYXZlIG5vdCBiZWVuIHNlZW4sIGFuZCB3aGljaCBjcHUocykgaGF2ZSBub3Qgc2VlbiB0aGVtLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjcHUncyB0aGF0IGhhdmUgbm90IHJlc3BvbmRlZC4KKyAqLworc3RhdGljIGludCB1dl9leGFtaW5lX2Rlc3RpbmF0aW9uKHN0cnVjdCBiYXVfY29udHJvbCAqYmF1X3RhYmxlc3AsIGludCBzZW5kZXIpCit7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICptc2c7CisJc3RydWN0IGJhdV9tc2dfc3RhdHVzICptc3A7CisJaW50IGNvdW50ID0gMDsKKwlpbnQgaTsKKwlpbnQgajsKKworCWZvciAobXNnID0gYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2ZpcnN0LCBpID0gMDsgaSA8IERFU1RfUV9TSVpFOworCSAgICAgbXNnKyssIGkrKykgeworCQlpZiAoKG1zZy0+c2VuZGluZ19jcHUgPT0gc2VuZGVyKSAmJiAoIW1zZy0+cmVwbGllZF90bykpIHsKKwkJCW1zcCA9IGJhdV90YWJsZXNwLT5tc2dfc3RhdHVzZXMgKyBpOworCQkJcHJpbnRrKEtFUk5fREVCVUcKKwkJCSAgICAgICAiYmxhZGUgJWQ6IGFkZHJlc3M6JSNseCAlZCBvZiAlZCwgbm90IGNwdShzKTogIiwKKwkJCSAgICAgICBpLCBtc2ctPmFkZHJlc3MsIG1zZy0+YWNrbm93bGVkZ2VfY291bnQsCisJCQkgICAgICAgbXNnLT5udW1iZXJfb2ZfY3B1cyk7CisJCQlmb3IgKGogPSAwOyBqIDwgbXNnLT5udW1iZXJfb2ZfY3B1czsgaisrKSB7CisJCQkJaWYgKCEoKDFMIDw8IGopICYgbXNwLT5zZWVuX2J5LmJpdHMpKSB7CisJCQkJCWNvdW50Kys7CisJCQkJCXByaW50aygiJWQgIiwgaik7CisJCQkJfQorCQkJfQorCQkJcHJpbnRrKCJcbiIpOworCQl9CisJfQorCXJldHVybiBjb3VudDsKK30KKworLyoKKyAqIEV4YW1pbmUgdGhlIHBheWxvYWQgcXVldWUgb24gYWxsIHRoZSBkaXN0cmlidXRpb24gbm9kZXMgdG8gc2VlCisgKiB3aGljaCBtZXNzYWdlcyBoYXZlIG5vdCBiZWVuIHNlZW4sIGFuZCB3aGljaCBjcHUocykgaGF2ZSBub3Qgc2VlbiB0aGVtLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjcHUncyB0aGF0IGhhdmUgbm90IHJlc3BvbmRlZC4KKyAqLworc3RhdGljIGludCB1dl9leGFtaW5lX2Rlc3RpbmF0aW9ucyhzdHJ1Y3QgYmF1X3RhcmdldF9ub2RlbWFzayAqZGlzdHJpYnV0aW9uKQoreworCWludCBzZW5kZXI7CisJaW50IGk7CisJaW50IGNvdW50ID0gMDsKKworCXNlbmRlciA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHN0cnVjdCBiYXVfdGFyZ2V0X25vZGVtYXNrKSAqIEJJVFNQRVJCWVRFOyBpKyspIHsKKwkJaWYgKCFiYXVfbm9kZV9pc3NldChpLCBkaXN0cmlidXRpb24pKQorCQkJY29udGludWU7CisJCWNvdW50ICs9IHV2X2V4YW1pbmVfZGVzdGluYXRpb24odXZfYmF1X3RhYmxlX2Jhc2VzW2ldLCBzZW5kZXIpOworCX0KKwlyZXR1cm4gY291bnQ7Cit9CisKKy8qCisgKiB3YWl0IGZvciBjb21wbGV0aW9uIG9mIGEgYnJvYWRjYXN0IG1lc3NhZ2UKKyAqCisgKiByZXR1cm4gQ09NUExFVEUsIFJFVFJZIG9yIEdJVkVVUAorICovCitzdGF0aWMgaW50IHV2X3dhaXRfY29tcGxldGlvbihzdHJ1Y3QgYmF1X2Rlc2MgKmJhdV9kZXNjLAorCQkJICAgICAgdW5zaWduZWQgbG9uZyBtbXJfb2Zmc2V0LCBpbnQgcmlnaHRfc2hpZnQpCit7CisJaW50IGV4YW1zID0gMDsKKwlsb25nIGRlc3RpbmF0aW9uX3RpbWVvdXRzID0gMDsKKwlsb25nIHNvdXJjZV90aW1lb3V0cyA9IDA7CisJdW5zaWduZWQgbG9uZyBkZXNjcmlwdG9yX3N0YXR1czsKKworCXdoaWxlICgoZGVzY3JpcHRvcl9zdGF0dXMgPSAoKCh1bnNpZ25lZCBsb25nKQorCQl1dl9yZWFkX2xvY2FsX21tcihtbXJfb2Zmc2V0KSA+PgorCQkJcmlnaHRfc2hpZnQpICYgVVZfQUNUX1NUQVRVU19NQVNLKSkgIT0KKwkJCURFU0NfU1RBVFVTX0lETEUpIHsKKwkJaWYgKGRlc2NyaXB0b3Jfc3RhdHVzID09IERFU0NfU1RBVFVTX1NPVVJDRV9USU1FT1VUKSB7CisJCQlzb3VyY2VfdGltZW91dHMrKzsKKwkJCWlmIChzb3VyY2VfdGltZW91dHMgPiBTT1VSQ0VfVElNRU9VVF9MSU1JVCkKKwkJCQlzb3VyY2VfdGltZW91dHMgPSAwOworCQkJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykuc19yZXRyeSsrOworCQkJcmV0dXJuIEZMVVNIX1JFVFJZOworCQl9CisJCS8qCisJCSAqIHNwaW4gaGVyZSBsb29raW5nIGZvciBwcm9ncmVzcyBhdCB0aGUgZGVzdGluYXRpb25zCisJCSAqLworCQlpZiAoZGVzY3JpcHRvcl9zdGF0dXMgPT0gREVTQ19TVEFUVVNfREVTVElOQVRJT05fVElNRU9VVCkgeworCQkJZGVzdGluYXRpb25fdGltZW91dHMrKzsKKwkJCWlmIChkZXN0aW5hdGlvbl90aW1lb3V0cyA+IERFU1RJTkFUSU9OX1RJTUVPVVRfTElNSVQpIHsKKwkJCQkvKgorCQkJCSAqIHJldHVybnMgbnVtYmVyIG9mIGNwdXMgbm90IHJlc3BvbmRpbmcKKwkJCQkgKi8KKwkJCQlpZiAodXZfZXhhbWluZV9kZXN0aW5hdGlvbnMKKwkJCQkgICAgKCZiYXVfZGVzYy0+ZGlzdHJpYnV0aW9uKSA9PSAwKSB7CisJCQkJCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLmRfcmV0cnkrKzsKKwkJCQkJcmV0dXJuIEZMVVNIX1JFVFJZOworCQkJCX0KKwkJCQlleGFtcysrOworCQkJCWlmIChleGFtcyA+PSB1dl9iYXVfcmV0cnlfbGltaXQpIHsKKwkJCQkJcHJpbnRrKEtFUk5fREVCVUcKKwkJCQkJICAgICAgICJ1dl9mbHVzaF90bGJfb3RoZXJzIik7CisJCQkJCXByaW50aygiZ2l2aW5nIHVwIG9uIGNwdSAlZFxuIiwKKwkJCQkJICAgICAgIHNtcF9wcm9jZXNzb3JfaWQoKSk7CisJCQkJCXJldHVybiBGTFVTSF9HSVZFVVA7CisJCQkJfQorCQkJCS8qCisJCQkJICogZGVsYXlzIGNhbiBoYW5nIHRoZSBzaW11bGF0b3IKKwkJCQkgICB1ZGVsYXkoMTAwMCk7CisJCQkJICovCisJCQkJZGVzdGluYXRpb25fdGltZW91dHMgPSAwOworCQkJfQorCQl9CisJfQorCXJldHVybiBGTFVTSF9DT01QTEVURTsKK30KKworLyoqCisgKiB1dl9mbHVzaF9zZW5kX2FuZF93YWl0CisgKgorICogU2VuZCBhIGJyb2FkY2FzdCBhbmQgd2FpdCBmb3IgYSBicm9hZGNhc3QgbWVzc2FnZSB0byBjb21wbGV0ZS4KKyAqCisgKiBUaGUgY3B1bWFza3AgbWFzayBjb250YWlucyB0aGUgY3B1cyB0aGUgYnJvYWRjYXN0IHdhcyBzZW50IHRvLgorICoKKyAqIFJldHVybnMgMSBpZiBhbGwgcmVtb3RlIGZsdXNoaW5nIHdhcyBkb25lLiBUaGUgbWFzayBpcyB6ZXJvZWQuCisgKiBSZXR1cm5zIDAgaWYgc29tZSByZW1vdGUgZmx1c2hpbmcgcmVtYWlucyB0byBiZSBkb25lLiBUaGUgbWFzayBpcyBsZWZ0CisgKiB1bmNoYW5nZWQuCisgKi8KK2ludCB1dl9mbHVzaF9zZW5kX2FuZF93YWl0KGludCBjcHUsIGludCB0aGlzX2JsYWRlLCBzdHJ1Y3QgYmF1X2Rlc2MgKmJhdV9kZXNjLAorCQkJICAgY3B1bWFza190ICpjcHVtYXNrcCkKK3sKKwlpbnQgY29tcGxldGlvbl9zdGF0dXMgPSAwOworCWludCByaWdodF9zaGlmdDsKKwlpbnQgdHJpZXMgPSAwOworCWludCBibGFkZTsKKwlpbnQgYml0OworCXVuc2lnbmVkIGxvbmcgbW1yX29mZnNldDsKKwl1bnNpZ25lZCBsb25nIGluZGV4OworCWN5Y2xlc190IHRpbWUxOworCWN5Y2xlc190IHRpbWUyOworCisJaWYgKGNwdSA8IFVWX0NQVVNfUEVSX0FDVF9TVEFUVVMpIHsKKwkJbW1yX29mZnNldCA9IFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMDsKKwkJcmlnaHRfc2hpZnQgPSBjcHUgKiBVVl9BQ1RfU1RBVFVTX1NJWkU7CisJfSBlbHNlIHsKKwkJbW1yX29mZnNldCA9IFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMTsKKwkJcmlnaHRfc2hpZnQgPQorCQkgICAgKChjcHUgLSBVVl9DUFVTX1BFUl9BQ1RfU1RBVFVTKSAqIFVWX0FDVF9TVEFUVVNfU0laRSk7CisJfQorCXRpbWUxID0gZ2V0X2N5Y2xlcygpOworCWRvIHsKKwkJdHJpZXMrKzsKKwkJaW5kZXggPSAoMVVMIDw8IFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9DT05UUk9MX1BVU0hfU0hGVCkgfAorCQkJY3B1OworCQl1dl93cml0ZV9sb2NhbF9tbXIoVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0wsIGluZGV4KTsKKwkJY29tcGxldGlvbl9zdGF0dXMgPSB1dl93YWl0X2NvbXBsZXRpb24oYmF1X2Rlc2MsIG1tcl9vZmZzZXQsCisJCQkJCXJpZ2h0X3NoaWZ0KTsKKwl9IHdoaWxlIChjb21wbGV0aW9uX3N0YXR1cyA9PSBGTFVTSF9SRVRSWSk7CisJdGltZTIgPSBnZXRfY3ljbGVzKCk7CisJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykuc2ZsdXNoICs9ICh0aW1lMiAtIHRpbWUxKTsKKwlpZiAodHJpZXMgPiAxKQorCQlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5yZXRyaWVzb2srKzsKKworCWlmIChjb21wbGV0aW9uX3N0YXR1cyA9PSBGTFVTSF9HSVZFVVApIHsKKwkJLyoKKwkJICogQ2F1c2UgdGhlIGNhbGxlciB0byBkbyBhbiBJUEktc3R5bGUgVExCIHNob290ZG93biBvbgorCQkgKiB0aGUgY3B1J3MsIGFsbCBvZiB3aGljaCBhcmUgc3RpbGwgaW4gdGhlIG1hc2suCisJCSAqLworCQlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5wdGNfaSsrOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKgorCSAqIFN1Y2Nlc3MsIHNvIGNsZWFyIHRoZSByZW1vdGUgY3B1J3MgZnJvbSB0aGUgbWFzayBzbyB3ZSBkb24ndAorCSAqIHVzZSB0aGUgSVBJIG1ldGhvZCBvZiBzaG9vdGRvd24gb24gdGhlbS4KKwkgKi8KKwlmb3JfZWFjaF9jcHVfbWFzayhiaXQsICpjcHVtYXNrcCkgeworCQlibGFkZSA9IHV2X2NwdV90b19ibGFkZV9pZChiaXQpOworCQlpZiAoYmxhZGUgPT0gdGhpc19ibGFkZSkKKwkJCWNvbnRpbnVlOworCQljcHVfY2xlYXIoYml0LCAqY3B1bWFza3ApOworCX0KKwlpZiAoIWNwdXNfZW1wdHkoKmNwdW1hc2twKSkKKwkJcmV0dXJuIDA7CisJcmV0dXJuIDE7Cit9CisKKy8qKgorICogdXZfZmx1c2hfdGxiX290aGVycyAtIGdsb2JhbGx5IHB1cmdlIHRyYW5zbGF0aW9uIGNhY2hlIG9mIGEgdmlydHVhbAorICogYWRkcmVzcyBvciBhbGwgVExCJ3MKKyAqIEBjcHVtYXNrcDogbWFzayBvZiBhbGwgY3B1J3MgaW4gd2hpY2ggdGhlIGFkZHJlc3MgaXMgdG8gYmUgcmVtb3ZlZAorICogQG1tOiBtbV9zdHJ1Y3QgY29udGFpbmluZyB2aXJ0dWFsIGFkZHJlc3MgcmFuZ2UKKyAqIEB2YTogdmlydHVhbCBhZGRyZXNzIHRvIGJlIHJlbW92ZWQgKG9yIFRMQl9GTFVTSF9BTEwgZm9yIGFsbCBUTEIncyBvbiBjcHUpCisgKgorICogVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIGluaXRpYXRpbmcgYW55IFVWIGdsb2JhbCBUTEIgc2hvb3Rkb3duLgorICoKKyAqIFB1cmdlcyB0aGUgdHJhbnNsYXRpb24gY2FjaGVzIG9mIGFsbCBzcGVjaWZpZWQgcHJvY2Vzc29ycyBvZiB0aGUgZ2l2ZW4KKyAqIHZpcnR1YWwgYWRkcmVzcywgb3IgcHVyZ2VzIGFsbCBUTEIncyBvbiBzcGVjaWZpZWQgcHJvY2Vzc29ycy4KKyAqCisgKiBUaGUgY2FsbGVyIGhhcyBkZXJpdmVkIHRoZSBjcHVtYXNrcCBmcm9tIHRoZSBtbV9zdHJ1Y3QgYW5kIGhhcyBzdWJ0cmFjdGVkCisgKiB0aGUgbG9jYWwgY3B1IGZyb20gdGhlIG1hc2suICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbmx5IGlmIHRoZXJlCisgKiBhcmUgYml0cyBzZXQgaW4gdGhlIG1hc2suIChlLmcuIGZsdXNoX3RsYl9wYWdlKCkpCisgKgorICogVGhlIGNwdW1hc2twIGlzIGNvbnZlcnRlZCBpbnRvIGEgbm9kZW1hc2sgb2YgdGhlIG5vZGVzIGNvbnRhaW5pbmcKKyAqIHRoZSBjcHVzLgorICoKKyAqIFJldHVybnMgMSBpZiBhbGwgcmVtb3RlIGZsdXNoaW5nIHdhcyBkb25lLgorICogUmV0dXJucyAwIGlmIHNvbWUgcmVtb3RlIGZsdXNoaW5nIHJlbWFpbnMgdG8gYmUgZG9uZS4KKyAqLworaW50IHV2X2ZsdXNoX3RsYl9vdGhlcnMoY3B1bWFza190ICpjcHVtYXNrcCwgc3RydWN0IG1tX3N0cnVjdCAqbW0sCisJCQl1bnNpZ25lZCBsb25nIHZhKQoreworCWludCBpOworCWludCBiaXQ7CisJaW50IGJsYWRlOworCWludCBjcHU7CisJaW50IHRoaXNfYmxhZGU7CisJaW50IGxvY2FscyA9IDA7CisJc3RydWN0IGJhdV9kZXNjICpiYXVfZGVzYzsKKworCWNwdSA9IHV2X2JsYWRlX3Byb2Nlc3Nvcl9pZCgpOworCXRoaXNfYmxhZGUgPSB1dl9udW1hX2JsYWRlX2lkKCk7CisJYmF1X2Rlc2MgPSBfX2dldF9jcHVfdmFyKGJhdV9jb250cm9sKS5kZXNjcmlwdG9yX2Jhc2U7CisJYmF1X2Rlc2MgKz0gVVZfSVRFTVNfUEVSX0RFU0NSSVBUT1IgKiBjcHU7CisKKwliYXVfbm9kZXNfY2xlYXIoJmJhdV9kZXNjLT5kaXN0cmlidXRpb24sIFVWX0RJU1RSSUJVVElPTl9TSVpFKTsKKworCWkgPSAwOworCWZvcl9lYWNoX2NwdV9tYXNrKGJpdCwgKmNwdW1hc2twKSB7CisJCWJsYWRlID0gdXZfY3B1X3RvX2JsYWRlX2lkKGJpdCk7CisJCUJVR19PTihibGFkZSA+IChVVl9ESVNUUklCVVRJT05fU0laRSAtIDEpKTsKKwkJaWYgKGJsYWRlID09IHRoaXNfYmxhZGUpIHsKKwkJCWxvY2FscysrOworCQkJY29udGludWU7CisJCX0KKwkJYmF1X25vZGVfc2V0KGJsYWRlLCAmYmF1X2Rlc2MtPmRpc3RyaWJ1dGlvbik7CisJCWkrKzsKKwl9CisJaWYgKGkgPT0gMCkgeworCQkvKgorCQkgKiBubyBvZmZfbm9kZSBmbHVzaGluZzsgcmV0dXJuIHN0YXR1cyBmb3IgbG9jYWwgbm9kZQorCQkgKi8KKwkJaWYgKGxvY2FscykKKwkJCXJldHVybiAwOworCQllbHNlCisJCQlyZXR1cm4gMTsKKwl9CisJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykucmVxdWVzdG9yKys7CisJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykubnRhcmdldGVkICs9IGk7CisKKwliYXVfZGVzYy0+cGF5bG9hZC5hZGRyZXNzID0gdmE7CisJYmF1X2Rlc2MtPnBheWxvYWQuc2VuZGluZ19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisKKwlyZXR1cm4gdXZfZmx1c2hfc2VuZF9hbmRfd2FpdChjcHUsIHRoaXNfYmxhZGUsIGJhdV9kZXNjLCBjcHVtYXNrcCk7Cit9CisKKy8qCisgKiBUaGUgQkFVIG1lc3NhZ2UgaW50ZXJydXB0IGNvbWVzIGhlcmUuIChyZWdpc3RlcmVkIGJ5IHNldF9pbnRyX2dhdGUpCisgKiBTZWUgZW50cnlfNjQuUworICoKKyAqIFdlIHJlY2VpdmVkIGEgYnJvYWRjYXN0IGFzc2lzdCBtZXNzYWdlLgorICoKKyAqIEludGVycnVwdHMgbWF5IGhhdmUgYmVlbiBkaXNhYmxlZDsgdGhpcyBpbnRlcnJ1cHQgY291bGQgcmVwcmVzZW50CisgKiB0aGUgcmVjZWlwdCBvZiBzZXZlcmFsIG1lc3NhZ2VzLgorICoKKyAqIEFsbCBjb3Jlcy90aHJlYWRzIG9uIHRoaXMgbm9kZSBnZXQgdGhpcyBpbnRlcnJ1cHQuCisgKiBUaGUgbGFzdCBvbmUgdG8gc2VlIGl0IGRvZXMgdGhlIHMvdyBhY2suCisgKiAodGhlIHJlc291cmNlIHdpbGwgbm90IGJlIGZyZWVkIHVudGlsIG5vbmludGVycnVwdGFibGUgY3B1cyBzZWUgdGhpcworICogIGludGVycnVwdDsgaGFyZHdhcmUgd2lsbCB0aW1lb3V0IHRoZSBzL3cgYWNrIGFuZCByZXBseSBFUlJPUikKKyAqLwordm9pZCB1dl9iYXVfbWVzc2FnZV9pbnRlcnJ1cHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICp2YV9xdWV1ZV9maXJzdDsKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKnZhX3F1ZXVlX2xhc3Q7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICptc2c7CisJc3RydWN0IHB0X3JlZ3MgKm9sZF9yZWdzID0gc2V0X2lycV9yZWdzKHJlZ3MpOworCWN5Y2xlc190IHRpbWUxOworCWN5Y2xlc190IHRpbWUyOworCWludCBtc2dfc2xvdDsKKwlpbnQgc3dfYWNrX3Nsb3Q7CisJaW50IGZ3OworCWludCBjb3VudCA9IDA7CisJdW5zaWduZWQgbG9uZyBsb2NhbF9wbm9kZTsKKworCWFja19BUElDX2lycSgpOworCWV4aXRfaWRsZSgpOworCWlycV9lbnRlcigpOworCisJdGltZTEgPSBnZXRfY3ljbGVzKCk7CisKKwlsb2NhbF9wbm9kZSA9IHV2X2JsYWRlX3RvX3Bub2RlKHV2X251bWFfYmxhZGVfaWQoKSk7CisKKwl2YV9xdWV1ZV9maXJzdCA9IF9fZ2V0X2NwdV92YXIoYmF1X2NvbnRyb2wpLnZhX3F1ZXVlX2ZpcnN0OworCXZhX3F1ZXVlX2xhc3QgPSBfX2dldF9jcHVfdmFyKGJhdV9jb250cm9sKS52YV9xdWV1ZV9sYXN0OworCisJbXNnID0gX19nZXRfY3B1X3ZhcihiYXVfY29udHJvbCkuYmF1X21zZ19oZWFkOworCXdoaWxlIChtc2ctPnN3X2Fja192ZWN0b3IpIHsKKwkJY291bnQrKzsKKwkJZncgPSBtc2ctPnN3X2Fja192ZWN0b3I7CisJCW1zZ19zbG90ID0gbXNnIC0gdmFfcXVldWVfZmlyc3Q7CisJCXN3X2Fja19zbG90ID0gZmZzKGZ3KSAtIDE7CisKKwkJdXZfYmF1X3Byb2Nlc3NfbWVzc2FnZShtc2csIG1zZ19zbG90LCBzd19hY2tfc2xvdCk7CisKKwkJbXNnKys7CisJCWlmIChtc2cgPiB2YV9xdWV1ZV9sYXN0KQorCQkJbXNnID0gdmFfcXVldWVfZmlyc3Q7CisJCV9fZ2V0X2NwdV92YXIoYmF1X2NvbnRyb2wpLmJhdV9tc2dfaGVhZCA9IG1zZzsKKwl9CisJaWYgKCFjb3VudCkKKwkJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykubm9tc2crKzsKKwllbHNlIGlmIChjb3VudCA+IDEpCisJCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLm11bHRtc2crKzsKKworCXRpbWUyID0gZ2V0X2N5Y2xlcygpOworCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLmRmbHVzaCArPSAodGltZTIgLSB0aW1lMSk7CisKKwlpcnFfZXhpdCgpOworCXNldF9pcnFfcmVncyhvbGRfcmVncyk7Cit9CisKK3N0YXRpYyB2b2lkIHV2X2VuYWJsZV90aW1lb3V0cyh2b2lkKQoreworCWludCBpOworCWludCBibGFkZTsKKwlpbnQgbGFzdF9ibGFkZTsKKwlpbnQgcG5vZGU7CisJaW50IGN1cl9jcHUgPSAwOworCXVuc2lnbmVkIGxvbmcgYXBpY2lkOworCisJbGFzdF9ibGFkZSA9IC0xOworCWZvcl9lYWNoX29ubGluZV9ub2RlKGkpIHsKKwkJYmxhZGUgPSB1dl9ub2RlX3RvX2JsYWRlX2lkKGkpOworCQlpZiAoYmxhZGUgPT0gbGFzdF9ibGFkZSkKKwkJCWNvbnRpbnVlOworCQlsYXN0X2JsYWRlID0gYmxhZGU7CisJCWFwaWNpZCA9IHBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGN1cl9jcHUpOworCQlwbm9kZSA9IHV2X2JsYWRlX3RvX3Bub2RlKGJsYWRlKTsKKwkJY3VyX2NwdSArPSB1dl9ibGFkZV9ucl9wb3NzaWJsZV9jcHVzKGkpOworCX0KK30KKworc3RhdGljIHZvaWQgKnV2X3B0Y19zZXFfc3RhcnQoc3RydWN0IHNlcV9maWxlICpmaWxlLCBsb2ZmX3QgKm9mZnNldCkKK3sKKwlpZiAoKm9mZnNldCA8IG51bV9wb3NzaWJsZV9jcHVzKCkpCisJCXJldHVybiBvZmZzZXQ7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkICp1dl9wdGNfc2VxX25leHQoc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhLCBsb2ZmX3QgKm9mZnNldCkKK3sKKwkoKm9mZnNldCkrKzsKKwlpZiAoKm9mZnNldCA8IG51bV9wb3NzaWJsZV9jcHVzKCkpCisJCXJldHVybiBvZmZzZXQ7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIHV2X3B0Y19zZXFfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpCit7Cit9CisKKy8qCisgKiBEaXNwbGF5IHRoZSBzdGF0aXN0aWNzIHRocnUgL3Byb2MKKyAqIGRhdGEgcG9pbnRzIHRvIHRoZSBjcHUgbnVtYmVyCisgKi8KK3N0YXRpYyBpbnQgdXZfcHRjX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgcHRjX3N0YXRzICpzdGF0OworCWludCBjcHU7CisKKwljcHUgPSAqKGxvZmZfdCAqKWRhdGE7CisKKwlpZiAoIWNwdSkgeworCQlzZXFfcHJpbnRmKGZpbGUsCisJCSIjIGNwdSByZXF1ZXN0b3IgcmVxdWVzdGVlIG9uZSBhbGwgc3JldHJ5IGRyZXRyeSBwdGNfaSAiKTsKKwkJc2VxX3ByaW50ZihmaWxlLAorCQkic3dfYWNrIHNmbHVzaCBkZmx1c2ggc29rIGRub21zZyBkbXVsdCBzdGFyZ2V0XG4iKTsKKwl9CisJaWYgKGNwdSA8IG51bV9wb3NzaWJsZV9jcHVzKCkgJiYgY3B1X29ubGluZShjcHUpKSB7CisJCXN0YXQgPSAmcGVyX2NwdShwdGNzdGF0cywgY3B1KTsKKwkJc2VxX3ByaW50ZihmaWxlLCAiY3B1ICVkICVsZCAlbGQgJWxkICVsZCAlbGQgJWxkICVsZCAiLAorCQkJICAgY3B1LCBzdGF0LT5yZXF1ZXN0b3IsCisJCQkgICBzdGF0LT5yZXF1ZXN0ZWUsIHN0YXQtPm9uZXRsYiwgc3RhdC0+YWxsdGxiLAorCQkJICAgc3RhdC0+c19yZXRyeSwgc3RhdC0+ZF9yZXRyeSwgc3RhdC0+cHRjX2kpOworCQlzZXFfcHJpbnRmKGZpbGUsICIlbHggJWxkICVsZCAlbGQgJWxkICVsZCAlbGRcbiIsCisJCQkgICB1dl9yZWFkX2dsb2JhbF9tbXI2NCh1dl9ibGFkZV90b19wbm9kZQorCQkJCQkodXZfY3B1X3RvX2JsYWRlX2lkKGNwdSkpLAorCQkJCQlVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0UpLAorCQkJICAgc3RhdC0+c2ZsdXNoLCBzdGF0LT5kZmx1c2gsCisJCQkgICBzdGF0LT5yZXRyaWVzb2ssIHN0YXQtPm5vbXNnLAorCQkJICAgc3RhdC0+bXVsdG1zZywgc3RhdC0+bnRhcmdldGVkKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqICAwOiBkaXNwbGF5IG1lYW5pbmcgb2YgdGhlIHN0YXRpc3RpY3MKKyAqID4wOiByZXRyeSBsaW1pdAorICovCitzdGF0aWMgc3NpemVfdCB1dl9wdGNfcHJvY193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKnVzZXIsCisJCQkJIHNpemVfdCBjb3VudCwgbG9mZl90ICpkYXRhKQoreworCWxvbmcgbmV3bW9kZTsKKwljaGFyIG9wdHN0cls2NF07CisKKwlpZiAoY291bnQgPT0gMCB8fCBjb3VudCA+IHNpemVvZihvcHRzdHIpKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoY29weV9mcm9tX3VzZXIob3B0c3RyLCB1c2VyLCBjb3VudCkpCisJCXJldHVybiAtRUZBVUxUOworCW9wdHN0cltjb3VudCAtIDFdID0gJ1wwJzsKKwlpZiAoc3RyaWN0X3N0cnRvdWwob3B0c3RyLCAxMCwgJm5ld21vZGUpIDwgMCkgeworCQlwcmludGsoS0VSTl9ERUJVRyAiJXMgaXMgaW52YWxpZFxuIiwgb3B0c3RyKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKG5ld21vZGUgPT0gMCkgeworCQlwcmludGsoS0VSTl9ERUJVRyAiIyBjcHU6ICAgICAgY3B1IG51bWJlclxuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJyZXF1ZXN0b3I6ICB0aW1lcyB0aGlzIGNwdSB3YXMgdGhlIGZsdXNoIHJlcXVlc3RvclxuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJyZXF1ZXN0ZWU6ICB0aW1lcyB0aGlzIGNwdSB3YXMgcmVxdWVzdGVkIHRvIGZsdXNoIGl0cyBUTEJzXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJIm9uZTogICAgICAgIHRpbWVzIHJlcXVlc3RlZCB0byBmbHVzaCBhIHNpbmdsZSBhZGRyZXNzXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJImFsbDogICAgICAgIHRpbWVzIHJlcXVlc3RlZCB0byBmbHVzaCBhbGwgVExCJ3NcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkic3JldHJ5OiAgICAgbnVtYmVyIG9mIHJldHJpZXMgb2Ygc291cmNlLXNpZGUgdGltZW91dHNcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkiZHJldHJ5OiAgICAgbnVtYmVyIG9mIHJldHJpZXMgb2YgZGVzdGluYXRpb24tc2lkZSB0aW1lb3V0c1xuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJwdGNfaTogICAgICB0aW1lcyBVViBmZWxsIHRocm91Z2ggdG8gSVBJLXN0eWxlIGZsdXNoZXNcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkic3dfYWNrOiAgICAgaW1hZ2Ugb2YgVVZIX0xCX0JBVV9JTlREX1NPRlRXQVJFX0FDS05PV0xFREdFXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJInNmbHVzaF91czogIGN5Y2xlcyBzcGVudCBpbiB1dl9mbHVzaF90bGJfb3RoZXJzKClcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkiZGZsdXNoX3VzOiAgY3ljbGVzIHNwZW50IGluIGhhbmRsaW5nIGZsdXNoIHJlcXVlc3RzXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcgInNvazogICAgICAgIHN1Y2Nlc3NlcyBvbiByZXRyeVxuIik7CisJCXByaW50ayhLRVJOX0RFQlVHICJkbm9tc2c6ICAgICBpbnRlcnJ1cHRzIHdpdGggbm8gbWVzc2FnZVxuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJkbXVsdDogICAgICBpbnRlcnJ1cHRzIHdpdGggbXVsdGlwbGUgbWVzc2FnZXNcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRyAic3RhcmdldDogICAgbm9kZXMgdGFyZ2V0ZWRcbiIpOworCX0gZWxzZSB7CisJCXV2X2JhdV9yZXRyeV9saW1pdCA9IG5ld21vZGU7CisJCXByaW50ayhLRVJOX0RFQlVHICJ0aW1lb3V0IHJldHJ5IGxpbWl0OiVkXG4iLAorCQkgICAgICAgdXZfYmF1X3JldHJ5X2xpbWl0KTsKKwl9CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgdXZfcHRjX3NlcV9vcHMgPSB7CisJLnN0YXJ0CQk9IHV2X3B0Y19zZXFfc3RhcnQsCisJLm5leHQJCT0gdXZfcHRjX3NlcV9uZXh0LAorCS5zdG9wCQk9IHV2X3B0Y19zZXFfc3RvcCwKKwkuc2hvdwkJPSB1dl9wdGNfc2VxX3Nob3cKK307CisKK3N0YXRpYyBpbnQgdXZfcHRjX3Byb2Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gc2VxX29wZW4oZmlsZSwgJnV2X3B0Y19zZXFfb3BzKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJvY191dl9wdGNfb3BlcmF0aW9ucyA9IHsKKwkub3BlbgkJPSB1dl9wdGNfcHJvY19vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS53cml0ZQkJPSB1dl9wdGNfcHJvY193cml0ZSwKKwkubGxzZWVrCQk9IHNlcV9sc2VlaywKKwkucmVsZWFzZQk9IHNlcV9yZWxlYXNlLAorfTsKKworc3RhdGljIGludCBfX2luaXQgdXZfcHRjX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnByb2NfdXZfcHRjOworCisJaWYgKCFpc191dl9zeXN0ZW0oKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIXByb2NfbWtkaXIoInNnaV91diIsIE5VTEwpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXByb2NfdXZfcHRjID0gY3JlYXRlX3Byb2NfZW50cnkoVVZfUFRDX0JBU0VOQU1FLCAwNDQ0LCBOVUxMKTsKKwlpZiAoIXByb2NfdXZfcHRjKSB7CisJCXByaW50ayhLRVJOX0VSUiAidW5hYmxlIHRvIGNyZWF0ZSAlcyBwcm9jIGVudHJ5XG4iLAorCQkgICAgICAgVVZfUFRDX0JBU0VOQU1FKTsKKwkJcmVtb3ZlX3Byb2NfZW50cnkoInNnaV91diIsIE5VTEwpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJcHJvY191dl9wdGMtPnByb2NfZm9wcyA9ICZwcm9jX3V2X3B0Y19vcGVyYXRpb25zOworCXJldHVybiAwOworfQorCisvKgorICogYmVnaW4gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBwZXItYmxhZGUgY29udHJvbCBzdHJ1Y3R1cmVzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYmF1X2NvbnRyb2wgKiBfX2luaXQgdXZfdGFibGVfYmFzZXNfaW5pdChpbnQgYmxhZGUsIGludCBub2RlKQoreworCWludCBpOworCWludCAqaXA7CisJc3RydWN0IGJhdV9tc2dfc3RhdHVzICptc3A7CisJc3RydWN0IGJhdV9jb250cm9sICpiYXVfdGFicDsKKworCWJhdV90YWJwID0KKwkgICAga21hbGxvY19ub2RlKHNpemVvZihzdHJ1Y3QgYmF1X2NvbnRyb2wpLCBHRlBfS0VSTkVMLCBub2RlKTsKKwlCVUdfT04oIWJhdV90YWJwKTsKKworCWJhdV90YWJwLT5tc2dfc3RhdHVzZXMgPQorCSAgICBrbWFsbG9jX25vZGUoc2l6ZW9mKHN0cnVjdCBiYXVfbXNnX3N0YXR1cykgKgorCQkJIERFU1RfUV9TSVpFLCBHRlBfS0VSTkVMLCBub2RlKTsKKwlCVUdfT04oIWJhdV90YWJwLT5tc2dfc3RhdHVzZXMpOworCisJZm9yIChpID0gMCwgbXNwID0gYmF1X3RhYnAtPm1zZ19zdGF0dXNlczsgaSA8IERFU1RfUV9TSVpFOyBpKyssIG1zcCsrKQorCQliYXVfY3B1Yml0c19jbGVhcigmbXNwLT5zZWVuX2J5LCAoaW50KQorCQkJCSAgdXZfYmxhZGVfbnJfcG9zc2libGVfY3B1cyhibGFkZSkpOworCisJYmF1X3RhYnAtPndhdGNoaW5nID0KKwkgICAga21hbGxvY19ub2RlKHNpemVvZihpbnQpICogREVTVF9OVU1fUkVTT1VSQ0VTLCBHRlBfS0VSTkVMLCBub2RlKTsKKwlCVUdfT04oIWJhdV90YWJwLT53YXRjaGluZyk7CisKKwlmb3IgKGkgPSAwLCBpcCA9IGJhdV90YWJwLT53YXRjaGluZzsgaSA8IERFU1RfUV9TSVpFOyBpKyssIGlwKyspCisJCSppcCA9IDA7CisKKwl1dl9iYXVfdGFibGVfYmFzZXNbYmxhZGVdID0gYmF1X3RhYnA7CisKKwlyZXR1cm4gYmF1X3RhYnA7Cit9CisKKy8qCisgKiBmaW5pc2ggdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBwZXItYmxhZGUgY29udHJvbCBzdHJ1Y3R1cmVzCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdAordXZfdGFibGVfYmFzZXNfZmluaXNoKGludCBibGFkZSwgaW50IG5vZGUsIGludCBjdXJfY3B1LAorCQkgICAgICBzdHJ1Y3QgYmF1X2NvbnRyb2wgKmJhdV90YWJsZXNwLAorCQkgICAgICBzdHJ1Y3QgYmF1X2Rlc2MgKmFkcCkKK3sKKwlzdHJ1Y3QgYmF1X2NvbnRyb2wgKmJjcDsKKwlpbnQgaTsKKworCWZvciAoaSA9IGN1cl9jcHU7IGkgPCBjdXJfY3B1ICsgdXZfYmxhZGVfbnJfcG9zc2libGVfY3B1cyhibGFkZSk7IGkrKykgeworCQliY3AgPSAoc3RydWN0IGJhdV9jb250cm9sICopJnBlcl9jcHUoYmF1X2NvbnRyb2wsIGkpOworCisJCWJjcC0+YmF1X21zZ19oZWFkCT0gYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2ZpcnN0OworCQliY3AtPnZhX3F1ZXVlX2ZpcnN0CT0gYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2ZpcnN0OworCQliY3AtPnZhX3F1ZXVlX2xhc3QJPSBiYXVfdGFibGVzcC0+dmFfcXVldWVfbGFzdDsKKwkJYmNwLT53YXRjaGluZwkJPSBiYXVfdGFibGVzcC0+d2F0Y2hpbmc7CisJCWJjcC0+bXNnX3N0YXR1c2VzCT0gYmF1X3RhYmxlc3AtPm1zZ19zdGF0dXNlczsKKwkJYmNwLT5kZXNjcmlwdG9yX2Jhc2UJPSBhZHA7CisJfQorfQorCisvKgorICogaW5pdGlhbGl6ZSB0aGUgc2VuZGluZyBzaWRlJ3Mgc2VuZGluZyBidWZmZXJzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYmF1X2Rlc2MgKiBfX2luaXQKK3V2X2FjdGl2YXRpb25fZGVzY3JpcHRvcl9pbml0KGludCBub2RlLCBpbnQgcG5vZGUpCit7CisJaW50IGk7CisJdW5zaWduZWQgbG9uZyBwYTsKKwl1bnNpZ25lZCBsb25nIG07CisJdW5zaWduZWQgbG9uZyBuOworCXVuc2lnbmVkIGxvbmcgbW1yX2ltYWdlOworCXN0cnVjdCBiYXVfZGVzYyAqYWRwOworCXN0cnVjdCBiYXVfZGVzYyAqYWQyOworCisJYWRwID0gKHN0cnVjdCBiYXVfZGVzYyAqKQorCSAgICBrbWFsbG9jX25vZGUoMTYzODQsIEdGUF9LRVJORUwsIG5vZGUpOworCUJVR19PTighYWRwKTsKKworCXBhID0gX19wYSgodW5zaWduZWQgbG9uZylhZHApOworCW4gPSBwYSA+PiB1dl9uc2hpZnQ7CisJbSA9IHBhICYgdXZfbW1hc2s7CisKKwltbXJfaW1hZ2UgPSB1dl9yZWFkX2dsb2JhbF9tbXI2NChwbm9kZSwgVVZIX0xCX0JBVV9TQl9ERVNDUklQVE9SX0JBU0UpOworCWlmIChtbXJfaW1hZ2UpIHsKKwkJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCAodW5zaWduZWQgbG9uZykKKwkJCQkgICAgICBVVkhfTEJfQkFVX1NCX0RFU0NSSVBUT1JfQkFTRSwKKwkJCQkgICAgICAobiA8PCBVVl9ERVNDX0JBU0VfUE5PREVfU0hJRlQgfCBtKSk7CisJfQorCisJZm9yIChpID0gMCwgYWQyID0gYWRwOyBpIDwgVVZfQUNUSVZBVElPTl9ERVNDUklQVE9SX1NJWkU7IGkrKywgYWQyKyspIHsKKwkJbWVtc2V0KGFkMiwgMCwgc2l6ZW9mKHN0cnVjdCBiYXVfZGVzYykpOworCQlhZDItPmhlYWRlci5zd19hY2tfZmxhZyA9IDE7CisJCWFkMi0+aGVhZGVyLmJhc2VfZGVzdF9ub2RlaWQgPQorCQkgICAgdXZfYmxhZGVfdG9fcG5vZGUodXZfY3B1X3RvX2JsYWRlX2lkKDApKTsKKwkJYWQyLT5oZWFkZXIuY29tbWFuZCA9IFVWX05FVF9FTkRQT0lOVF9JTlREOworCQlhZDItPmhlYWRlci5pbnRfYm90aCA9IDE7CisJCS8qCisJCSAqIGFsbCBvdGhlcnMgbmVlZCB0byBiZSBzZXQgdG8gemVybzoKKwkJICogICBmYWlybmVzcyBjaGFpbmluZyBtdWx0aWxldmVsIGNvdW50IHJlcGxpZWRfdG8KKwkJICovCisJfQorCXJldHVybiBhZHA7Cit9CisKKy8qCisgKiBpbml0aWFsaXplIHRoZSBkZXN0aW5hdGlvbiBzaWRlJ3MgcmVjZWl2aW5nIGJ1ZmZlcnMKKyAqLworc3RhdGljIHN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqIF9faW5pdAordXZfcGF5bG9hZF9xdWV1ZV9pbml0KGludCBub2RlLCBpbnQgcG5vZGUsIHN0cnVjdCBiYXVfY29udHJvbCAqYmF1X3RhYmxlc3ApCit7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICpwcXA7CisJY2hhciAqY3A7CisKKwlwcXAgPSAoc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICopIGttYWxsb2Nfbm9kZSgKKwkJKERFU1RfUV9TSVpFICsgMSkgKiBzaXplb2Yoc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5KSwKKwkJR0ZQX0tFUk5FTCwgbm9kZSk7CisJQlVHX09OKCFwcXApOworCisJY3AgPSAoY2hhciAqKXBxcCArIDMxOworCXBxcCA9IChzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKikoKCh1bnNpZ25lZCBsb25nKWNwID4+IDUpIDw8IDUpOworCWJhdV90YWJsZXNwLT52YV9xdWV1ZV9maXJzdCA9IHBxcDsKKwl1dl93cml0ZV9nbG9iYWxfbW1yNjQocG5vZGUsCisJCQkgICAgICBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9GSVJTVCwKKwkJCSAgICAgICgodW5zaWduZWQgbG9uZylwbm9kZSA8PAorCQkJICAgICAgIFVWX1BBWUxPQURRX1BOT0RFX1NISUZUKSB8CisJCQkgICAgICB1dl9waHlzbm9kZWFkZHIocHFwKSk7CisJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9UQUlMLAorCQkJICAgICAgdXZfcGh5c25vZGVhZGRyKHBxcCkpOworCWJhdV90YWJsZXNwLT52YV9xdWV1ZV9sYXN0ID0gcHFwICsgKERFU1RfUV9TSVpFIC0gMSk7CisJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9MQVNULAorCQkJICAgICAgKHVuc2lnbmVkIGxvbmcpCisJCQkgICAgICB1dl9waHlzbm9kZWFkZHIoYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2xhc3QpKTsKKwltZW1zZXQocHFwLCAwLCBzaXplb2Yoc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5KSAqIERFU1RfUV9TSVpFKTsKKworCXJldHVybiBwcXA7Cit9CisKKy8qCisgKiBJbml0aWFsaXphdGlvbiBvZiBlYWNoIFVWIGJsYWRlJ3Mgc3RydWN0dXJlcworICovCitzdGF0aWMgaW50IF9faW5pdCB1dl9pbml0X2JsYWRlKGludCBibGFkZSwgaW50IG5vZGUsIGludCBjdXJfY3B1KQoreworCWludCBwbm9kZTsKKwl1bnNpZ25lZCBsb25nIHBhOworCXVuc2lnbmVkIGxvbmcgYXBpY2lkOworCXN0cnVjdCBiYXVfZGVzYyAqYWRwOworCXN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqcHFwOworCXN0cnVjdCBiYXVfY29udHJvbCAqYmF1X3RhYmxlc3A7CisKKwliYXVfdGFibGVzcCA9IHV2X3RhYmxlX2Jhc2VzX2luaXQoYmxhZGUsIG5vZGUpOworCXBub2RlID0gdXZfYmxhZGVfdG9fcG5vZGUoYmxhZGUpOworCWFkcCA9IHV2X2FjdGl2YXRpb25fZGVzY3JpcHRvcl9pbml0KG5vZGUsIHBub2RlKTsKKwlwcXAgPSB1dl9wYXlsb2FkX3F1ZXVlX2luaXQobm9kZSwgcG5vZGUsIGJhdV90YWJsZXNwKTsKKwl1dl90YWJsZV9iYXNlc19maW5pc2goYmxhZGUsIG5vZGUsIGN1cl9jcHUsIGJhdV90YWJsZXNwLCBhZHApOworCS8qCisJICogdGhlIGJlbG93IGluaXRpYWxpemF0aW9uIGNhbid0IGJlIGluIGZpcm13YXJlIGJlY2F1c2UgdGhlCisJICogbWVzc2FnaW5nIElSUSB3aWxsIGJlIGRldGVybWluZWQgYnkgdGhlIE9TCisJICovCisJYXBpY2lkID0gcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3VyX2NwdSk7CisJcGEgPSB1dl9yZWFkX2dsb2JhbF9tbXI2NChwbm9kZSwgVVZIX0JBVV9EQVRBX0NPTkZJRyk7CisJaWYgKChwYSAmIDB4ZmYpICE9IFVWX0JBVV9NRVNTQUdFKSB7CisJCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChwbm9kZSwgVVZIX0JBVV9EQVRBX0NPTkZJRywKKwkJCQkgICAgICAoKGFwaWNpZCA8PCAzMikgfCBVVl9CQVVfTUVTU0FHRSkpOworCX0KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEluaXRpYWxpemF0aW9uIG9mIEJBVS1yZWxhdGVkIHN0cnVjdHVyZXMKKyAqLworc3RhdGljIGludCBfX2luaXQgdXZfYmF1X2luaXQodm9pZCkKK3sKKwlpbnQgYmxhZGU7CisJaW50IG5vZGU7CisJaW50IG5ibGFkZXM7CisJaW50IGxhc3RfYmxhZGU7CisJaW50IGN1cl9jcHUgPSAwOworCisJaWYgKCFpc191dl9zeXN0ZW0oKSkKKwkJcmV0dXJuIDA7CisKKwl1dl9iYXVfcmV0cnlfbGltaXQgPSAxOworCXV2X25zaGlmdCA9IHV2X2h1Yl9pbmZvLT5uX3ZhbDsKKwl1dl9tbWFzayA9ICgxVUwgPDwgdXZfaHViX2luZm8tPm5fdmFsKSAtIDE7CisJbmJsYWRlcyA9IDA7CisJbGFzdF9ibGFkZSA9IC0xOworCWZvcl9lYWNoX29ubGluZV9ub2RlKG5vZGUpIHsKKwkJYmxhZGUgPSB1dl9ub2RlX3RvX2JsYWRlX2lkKG5vZGUpOworCQlpZiAoYmxhZGUgPT0gbGFzdF9ibGFkZSkKKwkJCWNvbnRpbnVlOworCQlsYXN0X2JsYWRlID0gYmxhZGU7CisJCW5ibGFkZXMrKzsKKwl9CisJdXZfYmF1X3RhYmxlX2Jhc2VzID0gKHN0cnVjdCBiYXVfY29udHJvbCAqKikKKwkgICAga21hbGxvYyhuYmxhZGVzICogc2l6ZW9mKHN0cnVjdCBiYXVfY29udHJvbCAqKSwgR0ZQX0tFUk5FTCk7CisJQlVHX09OKCF1dl9iYXVfdGFibGVfYmFzZXMpOworCisJbGFzdF9ibGFkZSA9IC0xOworCWZvcl9lYWNoX29ubGluZV9ub2RlKG5vZGUpIHsKKwkJYmxhZGUgPSB1dl9ub2RlX3RvX2JsYWRlX2lkKG5vZGUpOworCQlpZiAoYmxhZGUgPT0gbGFzdF9ibGFkZSkKKwkJCWNvbnRpbnVlOworCQlsYXN0X2JsYWRlID0gYmxhZGU7CisJCXV2X2luaXRfYmxhZGUoYmxhZGUsIG5vZGUsIGN1cl9jcHUpOworCQljdXJfY3B1ICs9IHV2X2JsYWRlX25yX3Bvc3NpYmxlX2NwdXMoYmxhZGUpOworCX0KKwlzZXRfaW50cl9nYXRlKFVWX0JBVV9NRVNTQUdFLCB1dl9iYXVfbWVzc2FnZV9pbnRyMSk7CisJdXZfZW5hYmxlX3RpbWVvdXRzKCk7CisKKwlyZXR1cm4gMDsKK30KK19faW5pdGNhbGwodXZfYmF1X2luaXQpOworX19pbml0Y2FsbCh1dl9wdGNfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdHJhbXBvbGluZS5jIGIvYXJjaC94ODYva2VybmVsL3RyYW1wb2xpbmUuYwppbmRleCBhYmJmMTk5Li4xMTA2ZmFjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHJhbXBvbGluZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90cmFtcG9saW5lLmMKQEAgLTIsNyArMiw3IEBACiAKICNpbmNsdWRlIDxhc20vdHJhbXBvbGluZS5oPgogCi0vKiByZWFkeSBmb3IgeDg2XzY0LCBubyBoYXJtIGZvciB4ODYsIHNpbmNlIGl0IHdpbGwgb3ZlcndyaXRlIGFmdGVyIGFsbG9jICovCisvKiByZWFkeSBmb3IgeDg2XzY0IGFuZCB4ODYgKi8KIHVuc2lnbmVkIGNoYXIgKnRyYW1wb2xpbmVfYmFzZSA9IF9fdmEoVFJBTVBPTElORV9CQVNFKTsKIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90cmFwc18zMi5jIGIvYXJjaC94ODYva2VybmVsL3RyYXBzXzMyLmMKaW5kZXggMDhkNzUyZC4uOGE3Njg5NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3RyYXBzXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3RyYXBzXzMyLmMKQEAgLTEsNSArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5MSwgMTk5MiAgTGludXMgVG9ydmFsZHMKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEsIDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzCiAgKgogICogIFBlbnRpdW0gSUlJIEZYU1IsIFNTRSBzdXBwb3J0CiAgKglHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+LCBNYXkgMjAwMApAQCAtNjAsOCArNjEsNiBAQAogCiAjaW5jbHVkZSAibWFjaF90cmFwcy5oIgogCi1pbnQgcGFuaWNfb25fdW5yZWNvdmVyZWRfbm1pOwotCiBERUNMQVJFX0JJVE1BUCh1c2VkX3ZlY3RvcnMsIE5SX1ZFQ1RPUlMpOwogRVhQT1JUX1NZTUJPTF9HUEwodXNlZF92ZWN0b3JzKTsKIApAQCAtOTgsMTkgKzk3LDIyIEBACiBhc21saW5rYWdlIHZvaWQgc3B1cmlvdXNfaW50ZXJydXB0X2J1Zyh2b2lkKTsKIGFzbWxpbmthZ2Ugdm9pZCBtYWNoaW5lX2NoZWNrKHZvaWQpOwogCitpbnQgcGFuaWNfb25fdW5yZWNvdmVyZWRfbm1pOwogaW50IGtzdGFja19kZXB0aF90b19wcmludCA9IDI0Owogc3RhdGljIHVuc2lnbmVkIGludCBjb2RlX2J5dGVzID0gNjQ7CitzdGF0aWMgaW50IGlnbm9yZV9ubWlzOworc3RhdGljIGludCBkaWVfY291bnRlcjsKIAogdm9pZCBwcmludGtfYWRkcmVzcyh1bnNpZ25lZCBsb25nIGFkZHJlc3MsIGludCByZWxpYWJsZSkKIHsKICNpZmRlZiBDT05GSUdfS0FMTFNZTVMKLQljaGFyIG5hbWVidWZbS1NZTV9OQU1FX0xFTl07CiAJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSAwOwogCXVuc2lnbmVkIGxvbmcgc3ltc2l6ZTsKIAljb25zdCBjaGFyICpzeW1uYW1lOwotCWNoYXIgcmVsaWFiWzRdID0gIiI7Ci0JY2hhciAqZGVsaW0gPSAiOiI7CiAJY2hhciAqbW9kbmFtZTsKKwljaGFyICpkZWxpbSA9ICI6IjsKKwljaGFyIG5hbWVidWZbS1NZTV9OQU1FX0xFTl07CisJY2hhciByZWxpYWJbNF0gPSAiIjsKIAogCXN5bW5hbWUgPSBrYWxsc3ltc19sb29rdXAoYWRkcmVzcywgJnN5bXNpemUsICZvZmZzZXQsCiAJCQkJCSZtb2RuYW1lLCBuYW1lYnVmKTsKQEAgLTEzMCwyMiArMTMyLDIzIEBACiAjZW5kaWYKIH0KIAotc3RhdGljIGlubGluZSBpbnQgdmFsaWRfc3RhY2tfcHRyKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGluZm8sIHZvaWQgKnAsIHVuc2lnbmVkIHNpemUpCitzdGF0aWMgaW5saW5lIGludCB2YWxpZF9zdGFja19wdHIoc3RydWN0IHRocmVhZF9pbmZvICp0aW5mbywKKwkJCXZvaWQgKnAsIHVuc2lnbmVkIGludCBzaXplKQogewotCXJldHVybglwID4gKHZvaWQgKil0aW5mbyAmJgotCQlwIDw9ICh2b2lkICopdGluZm8gKyBUSFJFQURfU0laRSAtIHNpemU7CisJdm9pZCAqdCA9IHRpbmZvOworCXJldHVybglwID4gdCAmJiBwIDw9IHQgKyBUSFJFQURfU0laRSAtIHNpemU7CiB9CiAKIC8qIFRoZSBmb3JtIG9mIHRoZSB0b3Agb2YgdGhlIGZyYW1lIG9uIHRoZSBzdGFjayAqLwogc3RydWN0IHN0YWNrX2ZyYW1lIHsKLQlzdHJ1Y3Qgc3RhY2tfZnJhbWUJKm5leHRfZnJhbWU7Ci0JdW5zaWduZWQgbG9uZwkJcmV0dXJuX2FkZHJlc3M7CisJc3RydWN0IHN0YWNrX2ZyYW1lICpuZXh0X2ZyYW1lOworCXVuc2lnbmVkIGxvbmcgcmV0dXJuX2FkZHJlc3M7CiB9OwogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKIHByaW50X2NvbnRleHRfc3RhY2soc3RydWN0IHRocmVhZF9pbmZvICp0aW5mbywKLQkJICAgIHVuc2lnbmVkIGxvbmcgKnN0YWNrLCB1bnNpZ25lZCBsb25nIGJwLAotCQkgICAgY29uc3Qgc3RydWN0IHN0YWNrdHJhY2Vfb3BzICpvcHMsIHZvaWQgKmRhdGEpCisJCXVuc2lnbmVkIGxvbmcgKnN0YWNrLCB1bnNpZ25lZCBsb25nIGJwLAorCQljb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgKm9wcywgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3Qgc3RhY2tfZnJhbWUgKmZyYW1lID0gKHN0cnVjdCBzdGFja19mcmFtZSAqKWJwOwogCkBAIC0xNjcsOCArMTcwLDYgQEAKIAlyZXR1cm4gYnA7CiB9CiAKLSNkZWZpbmUgTVNHKG1zZykJCW9wcy0+d2FybmluZyhkYXRhLCBtc2cpCi0KIHZvaWQgZHVtcF90cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLAogCQl1bnNpZ25lZCBsb25nICpzdGFjaywgdW5zaWduZWQgbG9uZyBicCwKIAkJY29uc3Qgc3RydWN0IHN0YWNrdHJhY2Vfb3BzICpvcHMsIHZvaWQgKmRhdGEpCkBAIC0xNzgsNyArMTc5LDYgQEAKIAogCWlmICghc3RhY2spIHsKIAkJdW5zaWduZWQgbG9uZyBkdW1teTsKLQogCQlzdGFjayA9ICZkdW1teTsKIAkJaWYgKHRhc2sgIT0gY3VycmVudCkKIAkJCXN0YWNrID0gKHVuc2lnbmVkIGxvbmcgKil0YXNrLT50aHJlYWQuc3A7CkBAIC0xOTYsNyArMTk2LDcgQEAKIAl9CiAjZW5kaWYKIAotCXdoaWxlICgxKSB7CisJZm9yICg7OykgewogCQlzdHJ1Y3QgdGhyZWFkX2luZm8gKmNvbnRleHQ7CiAKIAkJY29udGV4dCA9IChzdHJ1Y3QgdGhyZWFkX2luZm8gKikKQEAgLTI0OCwxMCArMjQ4LDEwIEBACiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgcHJpbnRfdHJhY2Vfb3BzID0gewotCS53YXJuaW5nCQk9IHByaW50X3RyYWNlX3dhcm5pbmcsCi0JLndhcm5pbmdfc3ltYm9sCQk9IHByaW50X3RyYWNlX3dhcm5pbmdfc3ltYm9sLAotCS5zdGFjawkJCT0gcHJpbnRfdHJhY2Vfc3RhY2ssCi0JLmFkZHJlc3MJCT0gcHJpbnRfdHJhY2VfYWRkcmVzcywKKwkud2FybmluZyA9IHByaW50X3RyYWNlX3dhcm5pbmcsCisJLndhcm5pbmdfc3ltYm9sID0gcHJpbnRfdHJhY2Vfd2FybmluZ19zeW1ib2wsCisJLnN0YWNrID0gcHJpbnRfdHJhY2Vfc3RhY2ssCisJLmFkZHJlc3MgPSBwcmludF90cmFjZV9hZGRyZXNzLAogfTsKIAogc3RhdGljIHZvaWQKQEAgLTM1MSwxNSArMzUxLDE0IEBACiAJCXByaW50ayhLRVJOX0VNRVJHICJDb2RlOiAiKTsKIAogCQlpcCA9ICh1OCAqKXJlZ3MtPmlwIC0gY29kZV9wcm9sb2d1ZTsKLQkJaWYgKGlwIDwgKHU4ICopUEFHRV9PRkZTRVQgfHwKLQkJCXByb2JlX2tlcm5lbF9hZGRyZXNzKGlwLCBjKSkgeworCQlpZiAoaXAgPCAodTggKilQQUdFX09GRlNFVCB8fCBwcm9iZV9rZXJuZWxfYWRkcmVzcyhpcCwgYykpIHsKIAkJCS8qIHRyeSBzdGFydGluZyBhdCBFSVAgKi8KIAkJCWlwID0gKHU4ICopcmVncy0+aXA7CiAJCQljb2RlX2xlbiA9IGNvZGVfbGVuIC0gY29kZV9wcm9sb2d1ZSArIDE7CiAJCX0KIAkJZm9yIChpID0gMDsgaSA8IGNvZGVfbGVuOyBpKyssIGlwKyspIHsKIAkJCWlmIChpcCA8ICh1OCAqKVBBR0VfT0ZGU0VUIHx8Ci0JCQkJcHJvYmVfa2VybmVsX2FkZHJlc3MoaXAsIGMpKSB7CisJCQkJCXByb2JlX2tlcm5lbF9hZGRyZXNzKGlwLCBjKSkgewogCQkJCXByaW50aygiIEJhZCBFSVAgdmFsdWUuIik7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0zODQsOCArMzgzLDYgQEAKIAlyZXR1cm4gdWQyID09IDB4MGIwZjsKIH0KIAotc3RhdGljIGludCBkaWVfY291bnRlcjsKLQogaW50IF9fa3Byb2JlcyBfX2RpZShjb25zdCBjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycikKIHsKIAl1bnNpZ25lZCBzaG9ydCBzczsKQEAgLTQwMiwyNiArMzk5LDIyIEBACiAJcHJpbnRrKCJERUJVR19QQUdFQUxMT0MiKTsKICNlbmRpZgogCXByaW50aygiXG4iKTsKLQogCWlmIChub3RpZnlfZGllKERJRV9PT1BTLCBzdHIsIHJlZ3MsIGVyciwKLQkJCWN1cnJlbnQtPnRocmVhZC50cmFwX25vLCBTSUdTRUdWKSAhPSBOT1RJRllfU1RPUCkgeworCQkJY3VycmVudC0+dGhyZWFkLnRyYXBfbm8sIFNJR1NFR1YpID09IE5PVElGWV9TVE9QKQorCQlyZXR1cm4gMTsKIAotCQlzaG93X3JlZ2lzdGVycyhyZWdzKTsKLQkJLyogRXhlY3V0aXZlIHN1bW1hcnkgaW4gY2FzZSB0aGUgb29wcyBzY3JvbGxlZCBhd2F5ICovCi0JCXNwID0gKHVuc2lnbmVkIGxvbmcpICgmcmVncy0+c3ApOwotCQlzYXZlc2VnbWVudChzcywgc3MpOwotCQlpZiAodXNlcl9tb2RlKHJlZ3MpKSB7Ci0JCQlzcCA9IHJlZ3MtPnNwOwotCQkJc3MgPSByZWdzLT5zcyAmIDB4ZmZmZjsKLQkJfQotCQlwcmludGsoS0VSTl9FTUVSRyAiRUlQOiBbPCUwOGx4Pl0gIiwgcmVncy0+aXApOwotCQlwcmludF9zeW1ib2woIiVzIiwgcmVncy0+aXApOwotCQlwcmludGsoIiBTUzpFU1AgJTA0eDolMDhseFxuIiwgc3MsIHNwKTsKLQotCQlyZXR1cm4gMDsKKwlzaG93X3JlZ2lzdGVycyhyZWdzKTsKKwkvKiBFeGVjdXRpdmUgc3VtbWFyeSBpbiBjYXNlIHRoZSBvb3BzIHNjcm9sbGVkIGF3YXkgKi8KKwlzcCA9ICh1bnNpZ25lZCBsb25nKSAoJnJlZ3MtPnNwKTsKKwlzYXZlc2VnbWVudChzcywgc3MpOworCWlmICh1c2VyX21vZGUocmVncykpIHsKKwkJc3AgPSByZWdzLT5zcDsKKwkJc3MgPSByZWdzLT5zcyAmIDB4ZmZmZjsKIAl9Ci0KLQlyZXR1cm4gMTsKKwlwcmludGsoS0VSTl9FTUVSRyAiRUlQOiBbPCUwOGx4Pl0gIiwgcmVncy0+aXApOworCXByaW50X3N5bWJvbCgiJXMiLCByZWdzLT5pcCk7CisJcHJpbnRrKCIgU1M6RVNQICUwNHg6JTA4bHhcbiIsIHNzLCBzcCk7CisJcmV0dXJuIDA7CiB9CiAKIC8qCkBAIC01NDYsNyArNTM5LDcgQEAKIHsJCQkJCQkJCQlcCiAJdHJhY2VfaGFyZGlycXNfZml4dXAoKTsJCQkJCQlcCiAJaWYgKG5vdGlmeV9kaWUoRElFX1RSQVAsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgdHJhcG5yLCBzaWducikJXAotCQkJCQkJPT0gTk9USUZZX1NUT1ApCQlcCisJCQkJCQkJPT0gTk9USUZZX1NUT1ApCVwKIAkJcmV0dXJuOwkJCQkJCQlcCiAJZG9fdHJhcCh0cmFwbnIsIHNpZ25yLCBzdHIsIDAsIHJlZ3MsIGVycm9yX2NvZGUsIE5VTEwpOwkJXAogfQpAQCAtNTYyLDcgKzU1NSw3IEBACiAJaW5mby5zaV9jb2RlID0gc2ljb2RlOwkJCQkJCVwKIAlpbmZvLnNpX2FkZHIgPSAodm9pZCBfX3VzZXIgKilzaWFkZHI7CQkJCVwKIAlpZiAobm90aWZ5X2RpZShESUVfVFJBUCwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCB0cmFwbnIsIHNpZ25yKQlcCi0JCQkJCQk9PSBOT1RJRllfU1RPUCkJCVwKKwkJCQkJCQk9PSBOT1RJRllfU1RPUCkJXAogCQlyZXR1cm47CQkJCQkJCVwKIAlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgMCwgcmVncywgZXJyb3JfY29kZSwgJmluZm8pOwlcCiB9CkBAIC01NzEsNyArNTY0LDcgQEAKIHZvaWQgZG9fIyNuYW1lKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCQkJXAogewkJCQkJCQkJCVwKIAlpZiAobm90aWZ5X2RpZShESUVfVFJBUCwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCB0cmFwbnIsIHNpZ25yKQlcCi0JCQkJCQk9PSBOT1RJRllfU1RPUCkJCVwKKwkJCQkJCQk9PSBOT1RJRllfU1RPUCkJXAogCQlyZXR1cm47CQkJCQkJCVwKIAlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgMSwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7CQlcCiB9CkBAIC01ODYsMjcgKzU3OSwyOSBAQAogCWluZm8uc2lfYWRkciA9ICh2b2lkIF9fdXNlciAqKXNpYWRkcjsJCQkJXAogCXRyYWNlX2hhcmRpcnFzX2ZpeHVwKCk7CQkJCQkJXAogCWlmIChub3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIHRyYXBuciwgc2lnbnIpCVwKLQkJCQkJCT09IE5PVElGWV9TVE9QKQkJXAorCQkJCQkJCT09IE5PVElGWV9TVE9QKQlcCiAJCXJldHVybjsJCQkJCQkJXAogCWRvX3RyYXAodHJhcG5yLCBzaWduciwgc3RyLCAxLCByZWdzLCBlcnJvcl9jb2RlLCAmaW5mbyk7CVwKIH0KIAotRE9fVk04Nl9FUlJPUl9JTkZPKDAsIFNJR0ZQRSwgICJkaXZpZGUgZXJyb3IiLCBkaXZpZGVfZXJyb3IsIEZQRV9JTlRESVYsIHJlZ3MtPmlwKQorRE9fVk04Nl9FUlJPUl9JTkZPKDAsIFNJR0ZQRSwgImRpdmlkZSBlcnJvciIsIGRpdmlkZV9lcnJvciwgRlBFX0lOVERJViwgcmVncy0+aXApCiAjaWZuZGVmIENPTkZJR19LUFJPQkVTCiBET19WTTg2X0VSUk9SKDMsIFNJR1RSQVAsICJpbnQzIiwgaW50MykKICNlbmRpZgogRE9fVk04Nl9FUlJPUig0LCBTSUdTRUdWLCAib3ZlcmZsb3ciLCBvdmVyZmxvdykKIERPX1ZNODZfRVJST1IoNSwgU0lHU0VHViwgImJvdW5kcyIsIGJvdW5kcykKLURPX0VSUk9SX0lORk8oNiwgU0lHSUxMLCAgImludmFsaWQgb3Bjb2RlIiwgaW52YWxpZF9vcCwgSUxMX0lMTE9QTiwgcmVncy0+aXAsIDApCi1ET19FUlJPUig5LCBTSUdGUEUsICAiY29wcm9jZXNzb3Igc2VnbWVudCBvdmVycnVuIiwgY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQorRE9fRVJST1JfSU5GTyg2LCBTSUdJTEwsICJpbnZhbGlkIG9wY29kZSIsIGludmFsaWRfb3AsIElMTF9JTExPUE4sIHJlZ3MtPmlwLCAwKQorRE9fRVJST1IoOSwgU0lHRlBFLCAiY29wcm9jZXNzb3Igc2VnbWVudCBvdmVycnVuIiwgY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQogRE9fRVJST1IoMTAsIFNJR1NFR1YsICJpbnZhbGlkIFRTUyIsIGludmFsaWRfVFNTKQotRE9fRVJST1IoMTEsIFNJR0JVUywgICJzZWdtZW50IG5vdCBwcmVzZW50Iiwgc2VnbWVudF9ub3RfcHJlc2VudCkKLURPX0VSUk9SKDEyLCBTSUdCVVMsICAic3RhY2sgc2VnbWVudCIsIHN0YWNrX3NlZ21lbnQpCitET19FUlJPUigxMSwgU0lHQlVTLCAic2VnbWVudCBub3QgcHJlc2VudCIsIHNlZ21lbnRfbm90X3ByZXNlbnQpCitET19FUlJPUigxMiwgU0lHQlVTLCAic3RhY2sgc2VnbWVudCIsIHN0YWNrX3NlZ21lbnQpCiBET19FUlJPUl9JTkZPKDE3LCBTSUdCVVMsICJhbGlnbm1lbnQgY2hlY2siLCBhbGlnbm1lbnRfY2hlY2ssIEJVU19BRFJBTE4sIDAsIDApCiBET19FUlJPUl9JTkZPKDMyLCBTSUdJTEwsICJpcmV0IGV4Y2VwdGlvbiIsIGlyZXRfZXJyb3IsIElMTF9CQURTVEssIDAsIDEpCiAKLXZvaWQgX19rcHJvYmVzIGRvX2dlbmVyYWxfcHJvdGVjdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQordm9pZCBfX2twcm9iZXMKK2RvX2dlbmVyYWxfcHJvdGVjdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQogeworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrOwogCXN0cnVjdCB0aHJlYWRfc3RydWN0ICp0aHJlYWQ7CiAJc3RydWN0IHRzc19zdHJ1Y3QgKnRzczsKIAlpbnQgY3B1OwpAQCAtNjQ3LDIzICs2NDIsMjQgQEAKIAlpZiAocmVncy0+ZmxhZ3MgJiBYODZfVk1fTUFTSykKIAkJZ290byBncF9pbl92bTg2OwogCisJdHNrID0gY3VycmVudDsKIAlpZiAoIXVzZXJfbW9kZShyZWdzKSkKIAkJZ290byBncF9pbl9rZXJuZWw7CiAKLQljdXJyZW50LT50aHJlYWQuZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7Ci0JY3VycmVudC0+dGhyZWFkLnRyYXBfbm8gPSAxMzsKKwl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKKwl0c2stPnRocmVhZC50cmFwX25vID0gMTM7CiAKLQlpZiAoc2hvd191bmhhbmRsZWRfc2lnbmFscyAmJiB1bmhhbmRsZWRfc2lnbmFsKGN1cnJlbnQsIFNJR1NFR1YpICYmCi0JICAgIHByaW50a19yYXRlbGltaXQoKSkgeworCWlmIChzaG93X3VuaGFuZGxlZF9zaWduYWxzICYmIHVuaGFuZGxlZF9zaWduYWwodHNrLCBTSUdTRUdWKSAmJgorCQkJcHJpbnRrX3JhdGVsaW1pdCgpKSB7CiAJCXByaW50ayhLRVJOX0lORk8KLQkJICAgICIlc1slZF0gZ2VuZXJhbCBwcm90ZWN0aW9uIGlwOiVseCBzcDolbHggZXJyb3I6JWx4IiwKLQkJICAgIGN1cnJlbnQtPmNvbW0sIHRhc2tfcGlkX25yKGN1cnJlbnQpLAotCQkgICAgcmVncy0+aXAsIHJlZ3MtPnNwLCBlcnJvcl9jb2RlKTsKKwkJCSIlc1slZF0gZ2VuZXJhbCBwcm90ZWN0aW9uIGlwOiVseCBzcDolbHggZXJyb3I6JWx4IiwKKwkJCXRzay0+Y29tbSwgdGFza19waWRfbnIodHNrKSwKKwkJCXJlZ3MtPmlwLCByZWdzLT5zcCwgZXJyb3JfY29kZSk7CiAJCXByaW50X3ZtYV9hZGRyKCIgaW4gIiwgcmVncy0+aXApOwogCQlwcmludGsoIlxuIik7CiAJfQogCi0JZm9yY2Vfc2lnKFNJR1NFR1YsIGN1cnJlbnQpOworCWZvcmNlX3NpZyhTSUdTRUdWLCB0c2spOwogCXJldHVybjsKIAogZ3BfaW5fdm04NjoKQEAgLTY3MiwxNCArNjY4LDE1IEBACiAJcmV0dXJuOwogCiBncF9pbl9rZXJuZWw6Ci0JaWYgKCFmaXh1cF9leGNlcHRpb24ocmVncykpIHsKLQkJY3VycmVudC0+dGhyZWFkLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlOwotCQljdXJyZW50LT50aHJlYWQudHJhcF9ubyA9IDEzOwotCQlpZiAobm90aWZ5X2RpZShESUVfR1BGLCAiZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0IiwgcmVncywKKwlpZiAoZml4dXBfZXhjZXB0aW9uKHJlZ3MpKQorCQlyZXR1cm47CisKKwl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKKwl0c2stPnRocmVhZC50cmFwX25vID0gMTM7CisJaWYgKG5vdGlmeV9kaWUoRElFX0dQRiwgImdlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdCIsIHJlZ3MsCiAJCQkJZXJyb3JfY29kZSwgMTMsIFNJR1NFR1YpID09IE5PVElGWV9TVE9QKQotCQkJcmV0dXJuOwotCQlkaWUoImdlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdCIsIHJlZ3MsIGVycm9yX2NvZGUpOwotCX0KKwkJcmV0dXJuOworCWRpZSgiZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0IiwgcmVncywgZXJyb3JfY29kZSk7CiB9CiAKIHN0YXRpYyBub3RyYWNlIF9fa3Byb2JlcyB2b2lkCkBAIC03NTYsOSArNzUzLDkgQEAKIAogc3RhdGljIERFRklORV9TUElOTE9DSyhubWlfcHJpbnRfbG9jayk7CiAKLXZvaWQgbm90cmFjZSBfX2twcm9iZXMgZGllX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncywgY29uc3QgY2hhciAqbXNnKQordm9pZCBub3RyYWNlIF9fa3Byb2JlcyBkaWVfbm1pKGNoYXIgKnN0ciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGludCBkb19wYW5pYykKIHsKLQlpZiAobm90aWZ5X2RpZShESUVfTk1JV0FUQ0hET0csIG1zZywgcmVncywgMCwgMiwgU0lHSU5UKSA9PSBOT1RJRllfU1RPUCkKKwlpZiAobm90aWZ5X2RpZShESUVfTk1JV0FUQ0hET0csIHN0ciwgcmVncywgMCwgMiwgU0lHSU5UKSA9PSBOT1RJRllfU1RPUCkKIAkJcmV0dXJuOwogCiAJc3Bpbl9sb2NrKCZubWlfcHJpbnRfbG9jayk7CkBAIC03NjcsMTAgKzc2NCwxMiBAQAogCSogdG8gZ2V0IGEgbWVzc2FnZSBvdXQ6CiAJKi8KIAlidXN0X3NwaW5sb2NrcygxKTsKLQlwcmludGsoS0VSTl9FTUVSRyAiJXMiLCBtc2cpOworCXByaW50ayhLRVJOX0VNRVJHICIlcyIsIHN0cik7CiAJcHJpbnRrKCIgb24gQ1BVJWQsIGlwICUwOGx4LCByZWdpc3RlcnM6XG4iLAogCQlzbXBfcHJvY2Vzc29yX2lkKCksIHJlZ3MtPmlwKTsKIAlzaG93X3JlZ2lzdGVycyhyZWdzKTsKKwlpZiAoZG9fcGFuaWMpCisJCXBhbmljKCJOb24gbWFza2FibGUgaW50ZXJydXB0Iik7CiAJY29uc29sZV9zaWxlbnQoKTsKIAlzcGluX3VubG9jaygmbm1pX3ByaW50X2xvY2spOwogCWJ1c3Rfc3BpbmxvY2tzKDApOwpAQCAtNzkwLDE0ICs3ODksMTcgQEAKIHN0YXRpYyBub3RyYWNlIF9fa3Byb2JlcyB2b2lkIGRlZmF1bHRfZG9fbm1pKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXVuc2lnbmVkIGNoYXIgcmVhc29uID0gMDsKKwlpbnQgY3B1OwogCi0JLyogT25seSB0aGUgQlNQIGdldHMgZXh0ZXJuYWwgTk1JcyBmcm9tIHRoZSBzeXN0ZW06ICovCi0JaWYgKCFzbXBfcHJvY2Vzc29yX2lkKCkpCisJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCisJLyogT25seSB0aGUgQlNQIGdldHMgZXh0ZXJuYWwgTk1JcyBmcm9tIHRoZSBzeXN0ZW0uICovCisJaWYgKCFjcHUpCiAJCXJlYXNvbiA9IGdldF9ubWlfcmVhc29uKCk7CiAKIAlpZiAoIShyZWFzb24gJiAweGMwKSkgewogCQlpZiAobm90aWZ5X2RpZShESUVfTk1JX0lQSSwgIm5taV9pcGkiLCByZWdzLCByZWFzb24sIDIsIFNJR0lOVCkKLQkJCQkJCQk9PSBOT1RJRllfU1RPUCkKKwkJCQkJCQkJPT0gTk9USUZZX1NUT1ApCiAJCQlyZXR1cm47CiAjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCiAJCS8qCkBAIC04MDYsNyArODA4LDcgQEAKIAkJICovCiAJCWlmIChubWlfd2F0Y2hkb2dfdGljayhyZWdzLCByZWFzb24pKQogCQkJcmV0dXJuOwotCQlpZiAoIWRvX25taV9jYWxsYmFjayhyZWdzLCBzbXBfcHJvY2Vzc29yX2lkKCkpKQorCQlpZiAoIWRvX25taV9jYWxsYmFjayhyZWdzLCBjcHUpKQogCQkJdW5rbm93bl9ubWlfZXJyb3IocmVhc29uLCByZWdzKTsKICNlbHNlCiAJCXVua25vd25fbm1pX2Vycm9yKHJlYXNvbiwgcmVncyk7CkBAIC04MTYsNiArODE4LDggQEAKIAl9CiAJaWYgKG5vdGlmeV9kaWUoRElFX05NSSwgIm5taSIsIHJlZ3MsIHJlYXNvbiwgMiwgU0lHSU5UKSA9PSBOT1RJRllfU1RPUCkKIAkJcmV0dXJuOworCisJLyogQUs6IGZvbGxvd2luZyBjaGVja3Mgc2VlbSB0byBiZSBicm9rZW4gb24gbW9kZXJuIGNoaXBzZXRzLiBGSVhNRSAqLwogCWlmIChyZWFzb24gJiAweDgwKQogCQltZW1fcGFyaXR5X2Vycm9yKHJlYXNvbiwgcmVncyk7CiAJaWYgKHJlYXNvbiAmIDB4NDApCkBAIC04MjcsOCArODMxLDYgQEAKIAlyZWFzc2VydF9ubWkoKTsKIH0KIAotc3RhdGljIGludCBpZ25vcmVfbm1pczsKLQogbm90cmFjZSBfX2twcm9iZXMgdm9pZCBkb19ubWkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKIHsKIAlpbnQgY3B1OwpAQCAtOTEzLDcgKzkxNSw3IEBACiAJdHNrLT50aHJlYWQuZGVidWdjdGxtc3IgPSAwOwogCiAJaWYgKG5vdGlmeV9kaWUoRElFX0RFQlVHLCAiZGVidWciLCByZWdzLCBjb25kaXRpb24sIGVycm9yX2NvZGUsCi0JCQkJCVNJR1RSQVApID09IE5PVElGWV9TVE9QKQorCQkJCQkJU0lHVFJBUCkgPT0gTk9USUZZX1NUT1ApCiAJCXJldHVybjsKIAkvKiBJdCdzIHNhZmUgdG8gYWxsb3cgaXJxJ3MgYWZ0ZXIgRFI2IGhhcyBiZWVuIHNhdmVkICovCiAJaWYgKHJlZ3MtPmZsYWdzICYgWDg2X0VGTEFHU19JRikKQEAgLTk3NCw5ICs5NzYsOCBAQAogdm9pZCBtYXRoX2Vycm9yKHZvaWQgX191c2VyICppcCkKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7Ci0JdW5zaWduZWQgc2hvcnQgY3dkOwotCXVuc2lnbmVkIHNob3J0IHN3ZDsKIAlzaWdpbmZvX3QgaW5mbzsKKwl1bnNpZ25lZCBzaG9ydCBjd2QsIHN3ZDsKIAogCS8qCiAJICogU2F2ZSB0aGUgaW5mbyBmb3IgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIGFuZCBjbGVhciB0aGUgZXJyb3IuCkBAIC05OTUsNyArOTk2LDcgQEAKIAkgKiBDMSByZWcgeW91IG5lZWQgaW4gY2FzZSBvZiBhIHN0YWNrIGZhdWx0LCAweDA0MCBpcyB0aGUgc3RhY2sKIAkgKiBmYXVsdCBiaXQuICBXZSBzaG91bGQgb25seSBiZSB0YWtpbmcgb25lIGV4Y2VwdGlvbiBhdCBhIHRpbWUsCiAJICogc28gaWYgdGhpcyBjb21iaW5hdGlvbiBkb2Vzbid0IHByb2R1Y2UgYW55IHNpbmdsZSBleGNlcHRpb24sCi0JICogdGhlbiB3ZSBoYXZlIGEgYmFkIHByb2dyYW0gdGhhdCBpc24ndCBzeW5jcm9uaXppbmcgaXRzIEZQVSB1c2FnZQorCSAqIHRoZW4gd2UgaGF2ZSBhIGJhZCBwcm9ncmFtIHRoYXQgaXNuJ3Qgc3luY2hyb25pemluZyBpdHMgRlBVIHVzYWdlCiAJICogYW5kIGl0IHdpbGwgc3VmZmVyIHRoZSBjb25zZXF1ZW5jZXMgc2luY2Ugd2Ugd29uJ3QgYmUgYWJsZSB0bwogCSAqIGZ1bGx5IHJlcHJvZHVjZSB0aGUgY29udGV4dCBvZiB0aGUgZXhjZXB0aW9uCiAJICovCkBAIC0xMDA0LDcgKzEwMDUsNyBAQAogCXN3aXRjaCAoc3dkICYgfmN3ZCAmIDB4M2YpIHsKIAljYXNlIDB4MDAwOiAvKiBObyB1bm1hc2tlZCBleGNlcHRpb24gKi8KIAkJcmV0dXJuOwotCWRlZmF1bHQ6ICAgIC8qIE11bHRpcGxlIGV4Y2VwdGlvbnMgKi8KKwlkZWZhdWx0OiAvKiBNdWx0aXBsZSBleGNlcHRpb25zICovCiAJCWJyZWFrOwogCWNhc2UgMHgwMDE6IC8qIEludmFsaWQgT3AgKi8KIAkJLyoKQEAgLTEwNDAsOCArMTA0MSw4IEBACiBzdGF0aWMgdm9pZCBzaW1kX21hdGhfZXJyb3Iodm9pZCBfX3VzZXIgKmlwKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKLQl1bnNpZ25lZCBzaG9ydCBteGNzcjsKIAlzaWdpbmZvX3QgaW5mbzsKKwl1bnNpZ25lZCBzaG9ydCBteGNzcjsKIAogCS8qCiAJICogU2F2ZSB0aGUgaW5mbyBmb3IgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIGFuZCBjbGVhciB0aGUgZXJyb3IuCkBAIC0xMTE3LDcgKzExMTgsNyBAQAogCiB1bnNpZ25lZCBsb25nIHBhdGNoX2VzcGZpeF9kZXNjKHVuc2lnbmVkIGxvbmcgdWVzcCwgdW5zaWduZWQgbG9uZyBrZXNwKQogewotCXN0cnVjdCBkZXNjX3N0cnVjdCAqZ2R0ID0gX19nZXRfY3B1X3ZhcihnZHRfcGFnZSkuZ2R0OworCXN0cnVjdCBkZXNjX3N0cnVjdCAqZ2R0ID0gZ2V0X2NwdV9nZHRfdGFibGUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAl1bnNpZ25lZCBsb25nIGJhc2UgPSAoa2VzcCAtIHVlc3ApICYgLVRIUkVBRF9TSVpFOwogCXVuc2lnbmVkIGxvbmcgbmV3X2tlc3AgPSBrZXNwIC0gYmFzZTsKIAl1bnNpZ25lZCBsb25nIGxpbV9wYWdlcyA9IChuZXdfa2VzcCB8IChUSFJFQURfU0laRSAtIDEpKSA+PiBQQUdFX1NISUZUOwpAQCAtMTE5NiwxOSArMTE5NywxNiBAQAogCWVhcmx5X2lvdW5tYXAocCwgNCk7CiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotCWluaXRfYXBpY19tYXBwaW5ncygpOwotI2VuZGlmCi0Jc2V0X3RyYXBfZ2F0ZSgwLCAgJmRpdmlkZV9lcnJvcik7Ci0Jc2V0X2ludHJfZ2F0ZSgxLCAgJmRlYnVnKTsKLQlzZXRfaW50cl9nYXRlKDIsICAmbm1pKTsKLQlzZXRfc3lzdGVtX2ludHJfZ2F0ZSgzLCAmaW50Myk7IC8qIGludDMvNCBjYW4gYmUgY2FsbGVkIGZyb20gYWxsICovCi0Jc2V0X3N5c3RlbV9nYXRlKDQsICZvdmVyZmxvdyk7Ci0Jc2V0X3RyYXBfZ2F0ZSg1LCAgJmJvdW5kcyk7Ci0Jc2V0X3RyYXBfZ2F0ZSg2LCAgJmludmFsaWRfb3ApOwotCXNldF90cmFwX2dhdGUoNywgICZkZXZpY2Vfbm90X2F2YWlsYWJsZSk7Ci0Jc2V0X3Rhc2tfZ2F0ZSg4LCAgR0RUX0VOVFJZX0RPVUJMRUZBVUxUX1RTUyk7Ci0Jc2V0X3RyYXBfZ2F0ZSg5LCAgJmNvcHJvY2Vzc29yX3NlZ21lbnRfb3ZlcnJ1bik7CisJc2V0X3RyYXBfZ2F0ZSgwLCAmZGl2aWRlX2Vycm9yKTsKKwlzZXRfaW50cl9nYXRlKDEsICZkZWJ1Zyk7CisJc2V0X2ludHJfZ2F0ZSgyLCAmbm1pKTsKKwlzZXRfc3lzdGVtX2ludHJfZ2F0ZSgzLCAmaW50Myk7IC8qIGludDMgY2FuIGJlIGNhbGxlZCBmcm9tIGFsbCAqLworCXNldF9zeXN0ZW1fZ2F0ZSg0LCAmb3ZlcmZsb3cpOyAvKiBpbnQ0IGNhbiBiZSBjYWxsZWQgZnJvbSBhbGwgKi8KKwlzZXRfdHJhcF9nYXRlKDUsICZib3VuZHMpOworCXNldF90cmFwX2dhdGUoNiwgJmludmFsaWRfb3ApOworCXNldF90cmFwX2dhdGUoNywgJmRldmljZV9ub3RfYXZhaWxhYmxlKTsKKwlzZXRfdGFza19nYXRlKDgsIEdEVF9FTlRSWV9ET1VCTEVGQVVMVF9UU1MpOworCXNldF90cmFwX2dhdGUoOSwgJmNvcHJvY2Vzc29yX3NlZ21lbnRfb3ZlcnJ1bik7CiAJc2V0X3RyYXBfZ2F0ZSgxMCwgJmludmFsaWRfVFNTKTsKIAlzZXRfdHJhcF9nYXRlKDExLCAmc2VnbWVudF9ub3RfcHJlc2VudCk7CiAJc2V0X3RyYXBfZ2F0ZSgxMiwgJnN0YWNrX3NlZ21lbnQpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3RyYXBzXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfNjQuYwppbmRleCBhZGZmNzZlLi4yNjk2YTY4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfNjQuYwpAQCAtMTAsNDkgKzEwLDQ5IEBACiAgKiAnVHJhcHMuYycgaGFuZGxlcyBoYXJkd2FyZSB0cmFwcyBhbmQgZmF1bHRzIGFmdGVyIHdlIGhhdmUgc2F2ZWQgc29tZQogICogc3RhdGUgaW4gJ2VudHJ5LlMnLgogICovCi0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgotI2luY2x1ZGUgPGxpbnV4L25taS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgva3Byb2Jlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+Ci0jaW5jbHVkZSA8bGludXgvdW53aW5kLmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGxpbnV4L2J1Zy5oPgotI2luY2x1ZGUgPGxpbnV4L2tkZWJ1Zy5oPgogI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KLQotI2luY2x1ZGUgPG1hY2hfdHJhcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9rZGVidWcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC91bndpbmQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2J1Zy5oPgorI2luY2x1ZGUgPGxpbnV4L25taS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAKICNpZiBkZWZpbmVkKENPTkZJR19FREFDKQogI2luY2x1ZGUgPGxpbnV4L2VkYWMuaD4KICNlbmRpZgogCi0jaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxhc20vc3RhY2t0cmFjZS5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vZGVidWdyZWcuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgorI2luY2x1ZGUgPGFzbS91bndpbmQuaD4KICNpbmNsdWRlIDxhc20vZGVzYy5oPgogI2luY2x1ZGUgPGFzbS9pMzg3Lmg+Ci0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2luY2x1ZGUgPGFzbS91bndpbmQuaD4KLSNpbmNsdWRlIDxhc20vc21wLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KLSNpbmNsdWRlIDxhc20vcGRhLmg+Ci0jaW5jbHVkZSA8YXNtL3Byb3RvLmg+CiAjaW5jbHVkZSA8YXNtL25taS5oPgotI2luY2x1ZGUgPGFzbS9zdGFja3RyYWNlLmg+CisjaW5jbHVkZSA8YXNtL3NtcC5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CisjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CisjaW5jbHVkZSA8YXNtL3BkYS5oPgorCisjaW5jbHVkZSA8bWFjaF90cmFwcy5oPgogCiBhc21saW5rYWdlIHZvaWQgZGl2aWRlX2Vycm9yKHZvaWQpOwogYXNtbGlua2FnZSB2b2lkIGRlYnVnKHZvaWQpOwpAQCAtNzEsMTIgKzcxLDE1IEBACiBhc21saW5rYWdlIHZvaWQgcGFnZV9mYXVsdCh2b2lkKTsKIGFzbWxpbmthZ2Ugdm9pZCBjb3Byb2Nlc3Nvcl9lcnJvcih2b2lkKTsKIGFzbWxpbmthZ2Ugdm9pZCBzaW1kX2NvcHJvY2Vzc29yX2Vycm9yKHZvaWQpOwotYXNtbGlua2FnZSB2b2lkIHJlc2VydmVkKHZvaWQpOwogYXNtbGlua2FnZSB2b2lkIGFsaWdubWVudF9jaGVjayh2b2lkKTsKLWFzbWxpbmthZ2Ugdm9pZCBtYWNoaW5lX2NoZWNrKHZvaWQpOwogYXNtbGlua2FnZSB2b2lkIHNwdXJpb3VzX2ludGVycnVwdF9idWcodm9pZCk7Cithc21saW5rYWdlIHZvaWQgbWFjaGluZV9jaGVjayh2b2lkKTsKIAoraW50IHBhbmljX29uX3VucmVjb3ZlcmVkX25taTsKK2ludCBrc3RhY2tfZGVwdGhfdG9fcHJpbnQgPSAxMjsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgY29kZV9ieXRlcyA9IDY0Oworc3RhdGljIGludCBpZ25vcmVfbm1pczsKK3N0YXRpYyBpbnQgZGllX2NvdW50ZXI7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjb25kaXRpb25hbF9zdGkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CkBAIC0xMDAsMzQgKzEwMyw5IEBACiAJZGVjX3ByZWVtcHRfY291bnQoKTsKIH0KIAotaW50IGtzdGFja19kZXB0aF90b19wcmludCA9IDEyOwotCiB2b2lkIHByaW50a19hZGRyZXNzKHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgaW50IHJlbGlhYmxlKQogewotI2lmZGVmIENPTkZJR19LQUxMU1lNUwotCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gMCwgc3ltc2l6ZTsKLQljb25zdCBjaGFyICpzeW1uYW1lOwotCWNoYXIgKm1vZG5hbWU7Ci0JY2hhciAqZGVsaW0gPSAiOiI7Ci0JY2hhciBuYW1lYnVmW0tTWU1fTkFNRV9MRU5dOwotCWNoYXIgcmVsaWFiWzRdID0gIiI7Ci0KLQlzeW1uYW1lID0ga2FsbHN5bXNfbG9va3VwKGFkZHJlc3MsICZzeW1zaXplLCAmb2Zmc2V0LAotCQkJCQkmbW9kbmFtZSwgbmFtZWJ1Zik7Ci0JaWYgKCFzeW1uYW1lKSB7Ci0JCXByaW50aygiIFs8JTAxNmx4Pl1cbiIsIGFkZHJlc3MpOwotCQlyZXR1cm47Ci0JfQotCWlmICghcmVsaWFibGUpCi0JCXN0cmNweShyZWxpYWIsICI/ICIpOwotCi0JaWYgKCFtb2RuYW1lKQotCQltb2RuYW1lID0gZGVsaW0gPSAiIjsKLQlwcmludGsoIiBbPCUwMTZseD5dICVzJXMlcyVzJXMrMHglbHgvMHglbHhcbiIsCi0JCWFkZHJlc3MsIHJlbGlhYiwgZGVsaW0sIG1vZG5hbWUsIGRlbGltLCBzeW1uYW1lLCBvZmZzZXQsIHN5bXNpemUpOwotI2Vsc2UKLQlwcmludGsoIiBbPCUwMTZseD5dXG4iLCBhZGRyZXNzKTsKLSNlbmRpZgorCXByaW50aygiIFs8JTAxNmx4Pl0gJXMlcFNcbiIsIGFkZHJlc3MsIHJlbGlhYmxlID8gIiI6ICI/ICIsICh2b2lkICopIGFkZHJlc3MpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyAqaW5fZXhjZXB0aW9uX3N0YWNrKHVuc2lnbmVkIGNwdSwgdW5zaWduZWQgbG9uZyBzdGFjaywKQEAgLTIwNCw4ICsxODIsNiBAQAogCXJldHVybiBOVUxMOwogfQogCi0jZGVmaW5lIE1TRyh0eHQpIG9wcy0+d2FybmluZyhkYXRhLCB0eHQpCi0KIC8qCiAgKiB4ODYtNjQgY2FuIGhhdmUgdXAgdG8gdGhyZWUga2VybmVsIHN0YWNrczogCiAgKiBwcm9jZXNzIHN0YWNrCkBAIC0yMzIsMTEgKzIwOCwxMSBAQAogCXVuc2lnbmVkIGxvbmcgcmV0dXJuX2FkZHJlc3M7CiB9OwogCi0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBwcmludF9jb250ZXh0X3N0YWNrKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGluZm8sCi0JCQkJdW5zaWduZWQgbG9uZyAqc3RhY2ssIHVuc2lnbmVkIGxvbmcgYnAsCi0JCQkJY29uc3Qgc3RydWN0IHN0YWNrdHJhY2Vfb3BzICpvcHMsIHZvaWQgKmRhdGEsCi0JCQkJdW5zaWduZWQgbG9uZyAqZW5kKQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCitwcmludF9jb250ZXh0X3N0YWNrKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGluZm8sCisJCXVuc2lnbmVkIGxvbmcgKnN0YWNrLCB1bnNpZ25lZCBsb25nIGJwLAorCQljb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgKm9wcywgdm9pZCAqZGF0YSwKKwkJdW5zaWduZWQgbG9uZyAqZW5kKQogewogCXN0cnVjdCBzdGFja19mcmFtZSAqZnJhbWUgPSAoc3RydWN0IHN0YWNrX2ZyYW1lICopYnA7CiAKQEAgLTI1OCw3ICsyMzQsNyBAQAogCXJldHVybiBicDsKIH0KIAotdm9pZCBkdW1wX3RyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywKK3ZvaWQgZHVtcF90cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLAogCQl1bnNpZ25lZCBsb25nICpzdGFjaywgdW5zaWduZWQgbG9uZyBicCwKIAkJY29uc3Qgc3RydWN0IHN0YWNrdHJhY2Vfb3BzICpvcHMsIHZvaWQgKmRhdGEpCiB7CkBAIC0yNjcsMzYgKzI0MywzNCBAQAogCXVuc2lnbmVkIHVzZWQgPSAwOwogCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGluZm87CiAKLQlpZiAoIXRzaykKLQkJdHNrID0gY3VycmVudDsKLQl0aW5mbyA9IHRhc2tfdGhyZWFkX2luZm8odHNrKTsKKwlpZiAoIXRhc2spCisJCXRhc2sgPSBjdXJyZW50OwogCiAJaWYgKCFzdGFjaykgewogCQl1bnNpZ25lZCBsb25nIGR1bW15OwogCQlzdGFjayA9ICZkdW1teTsKLQkJaWYgKHRzayAmJiB0c2sgIT0gY3VycmVudCkKLQkJCXN0YWNrID0gKHVuc2lnbmVkIGxvbmcgKil0c2stPnRocmVhZC5zcDsKKwkJaWYgKHRhc2sgJiYgdGFzayAhPSBjdXJyZW50KQorCQkJc3RhY2sgPSAodW5zaWduZWQgbG9uZyAqKXRhc2stPnRocmVhZC5zcDsKIAl9CiAKICNpZmRlZiBDT05GSUdfRlJBTUVfUE9JTlRFUgogCWlmICghYnApIHsKLQkJaWYgKHRzayA9PSBjdXJyZW50KSB7CisJCWlmICh0YXNrID09IGN1cnJlbnQpIHsKIAkJCS8qIEdyYWIgYnAgcmlnaHQgZnJvbSBvdXIgcmVncyAqLwotCQkJYXNtKCJtb3ZxICUlcmJwLCAlMCIgOiAiPXIiIChicCk6KTsKKwkJCWFzbSgibW92cSAlJXJicCwgJTAiIDogIj1yIiAoYnApIDopOwogCQl9IGVsc2UgewogCQkJLyogYnAgaXMgdGhlIGxhc3QgcmVnIHB1c2hlZCBieSBzd2l0Y2hfdG8gKi8KLQkJCWJwID0gKih1bnNpZ25lZCBsb25nICopIHRzay0+dGhyZWFkLnNwOworCQkJYnAgPSAqKHVuc2lnbmVkIGxvbmcgKikgdGFzay0+dGhyZWFkLnNwOwogCQl9CiAJfQogI2VuZGlmCiAKLQotCiAJLyoKIAkgKiBQcmludCBmdW5jdGlvbiBjYWxsIGVudHJpZXMgaW4gYWxsIHN0YWNrcywgc3RhcnRpbmcgYXQgdGhlCiAJICogY3VycmVudCBzdGFjayBhZGRyZXNzLiBJZiB0aGUgc3RhY2tzIGNvbnNpc3Qgb2YgbmVzdGVkCiAJICogZXhjZXB0aW9ucwogCSAqLworCXRpbmZvID0gdGFza190aHJlYWRfaW5mbyh0YXNrKTsKIAlmb3IgKDs7KSB7CiAJCWNoYXIgKmlkOwogCQl1bnNpZ25lZCBsb25nICplc3RhY2tfZW5kOwpAQCAtMzgxLDE4ICszNTUsMTcgQEAKIAkuYWRkcmVzcyA9IHByaW50X3RyYWNlX2FkZHJlc3MsCiB9OwogCi12b2lkCi1zaG93X3RyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyAqc3RhY2ssCi0JCXVuc2lnbmVkIGxvbmcgYnApCit2b2lkIHNob3dfdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywKKwkJdW5zaWduZWQgbG9uZyAqc3RhY2ssIHVuc2lnbmVkIGxvbmcgYnApCiB7CiAJcHJpbnRrKCJcbkNhbGwgVHJhY2U6XG4iKTsKLQlkdW1wX3RyYWNlKHRzaywgcmVncywgc3RhY2ssIGJwLCAmcHJpbnRfdHJhY2Vfb3BzLCBOVUxMKTsKKwlkdW1wX3RyYWNlKHRhc2ssIHJlZ3MsIHN0YWNrLCBicCwgJnByaW50X3RyYWNlX29wcywgTlVMTCk7CiAJcHJpbnRrKCJcbiIpOwogfQogCiBzdGF0aWMgdm9pZAotX3Nob3dfc3RhY2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nICpzcCwKLQkJCQkJCQl1bnNpZ25lZCBsb25nIGJwKQorX3Nob3dfc3RhY2soc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywKKwkJdW5zaWduZWQgbG9uZyAqc3AsIHVuc2lnbmVkIGxvbmcgYnApCiB7CiAJdW5zaWduZWQgbG9uZyAqc3RhY2s7CiAJaW50IGk7CkBAIC00MDQsMTQgKzM3NywxNCBAQAogCS8vIGJhY2sgdHJhY2UgZm9yIHRoaXMgY3B1LgogCiAJaWYgKHNwID09IE5VTEwpIHsKLQkJaWYgKHRzaykKLQkJCXNwID0gKHVuc2lnbmVkIGxvbmcgKil0c2stPnRocmVhZC5zcDsKKwkJaWYgKHRhc2spCisJCQlzcCA9ICh1bnNpZ25lZCBsb25nICopdGFzay0+dGhyZWFkLnNwOwogCQllbHNlCiAJCQlzcCA9ICh1bnNpZ25lZCBsb25nICopJnNwOwogCX0KIAogCXN0YWNrID0gc3A7Ci0JZm9yKGk9MDsgaSA8IGtzdGFja19kZXB0aF90b19wcmludDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGtzdGFja19kZXB0aF90b19wcmludDsgaSsrKSB7CiAJCWlmIChzdGFjayA+PSBpcnFzdGFjayAmJiBzdGFjayA8PSBpcnFzdGFja19lbmQpIHsKIAkJCWlmIChzdGFjayA9PSBpcnFzdGFja19lbmQpIHsKIAkJCQlzdGFjayA9ICh1bnNpZ25lZCBsb25nICopIChpcnFzdGFja19lbmRbLTFdKTsKQEAgLTQyNiwxMiArMzk5LDEyIEBACiAJCXByaW50aygiICUwMTZseCIsICpzdGFjaysrKTsKIAkJdG91Y2hfbm1pX3dhdGNoZG9nKCk7CiAJfQotCXNob3dfdHJhY2UodHNrLCByZWdzLCBzcCwgYnApOworCXNob3dfdHJhY2UodGFzaywgcmVncywgc3AsIGJwKTsKIH0KIAotdm9pZCBzaG93X3N0YWNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1bnNpZ25lZCBsb25nICogc3ApCit2b2lkIHNob3dfc3RhY2soc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCB1bnNpZ25lZCBsb25nICpzcCkKIHsKLQlfc2hvd19zdGFjayh0c2ssIE5VTEwsIHNwLCAwKTsKKwlfc2hvd19zdGFjayh0YXNrLCBOVUxMLCBzcCwgMCk7CiB9CiAKIC8qCkBAIC00MzksOCArNDEyLDggQEAKICAqLwogdm9pZCBkdW1wX3N0YWNrKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBkdW1teTsKIAl1bnNpZ25lZCBsb25nIGJwID0gMDsKKwl1bnNpZ25lZCBsb25nIHN0YWNrOwogCiAjaWZkZWYgQ09ORklHX0ZSQU1FX1BPSU5URVIKIAlpZiAoIWJwKQpAQCAtNDUyLDcgKzQyNSw3IEBACiAJCWluaXRfdXRzbmFtZSgpLT5yZWxlYXNlLAogCQkoaW50KXN0cmNzcG4oaW5pdF91dHNuYW1lKCktPnZlcnNpb24sICIgIiksCiAJCWluaXRfdXRzbmFtZSgpLT52ZXJzaW9uKTsKLQlzaG93X3RyYWNlKE5VTEwsIE5VTEwsICZkdW1teSwgYnApOworCXNob3dfdHJhY2UoTlVMTCwgTlVMTCwgJnN0YWNrLCBicCk7CiB9CiAKIEVYUE9SVF9TWU1CT0woZHVtcF9zdGFjayk7CkBAIC00NjMsMTIgKzQzNiw4IEBACiAJdW5zaWduZWQgbG9uZyBzcDsKIAljb25zdCBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqY3VyID0gY3B1X3BkYShjcHUpLT5wY3VycmVudDsKLQl1OCAqaXA7Ci0JdW5zaWduZWQgaW50IGNvZGVfcHJvbG9ndWUgPSBjb2RlX2J5dGVzICogNDMgLyA2NDsKLQl1bnNpZ25lZCBpbnQgY29kZV9sZW4gPSBjb2RlX2J5dGVzOwogCiAJc3AgPSByZWdzLT5zcDsKLQlpcCA9ICh1OCAqKSByZWdzLT5pcCAtIGNvZGVfcHJvbG9ndWU7CiAJcHJpbnRrKCJDUFUgJWQgIiwgY3B1KTsKIAlfX3Nob3dfcmVncyhyZWdzKTsKIAlwcmludGsoIlByb2Nlc3MgJXMgKHBpZDogJWQsIHRocmVhZGluZm8gJXAsIHRhc2sgJXApXG4iLApAQCAtNDc5LDE1ICs0NDgsMjEgQEAKIAkgKiB0aW1lIG9mIHRoZSBmYXVsdC4uCiAJICovCiAJaWYgKCF1c2VyX21vZGUocmVncykpIHsKKwkJdW5zaWduZWQgaW50IGNvZGVfcHJvbG9ndWUgPSBjb2RlX2J5dGVzICogNDMgLyA2NDsKKwkJdW5zaWduZWQgaW50IGNvZGVfbGVuID0gY29kZV9ieXRlczsKIAkJdW5zaWduZWQgY2hhciBjOworCQl1OCAqaXA7CisKIAkJcHJpbnRrKCJTdGFjazogIik7CiAJCV9zaG93X3N0YWNrKE5VTEwsIHJlZ3MsICh1bnNpZ25lZCBsb25nICopc3AsIHJlZ3MtPmJwKTsKIAkJcHJpbnRrKCJcbiIpOwogCiAJCXByaW50ayhLRVJOX0VNRVJHICJDb2RlOiAiKTsKKworCQlpcCA9ICh1OCAqKXJlZ3MtPmlwIC0gY29kZV9wcm9sb2d1ZTsKIAkJaWYgKGlwIDwgKHU4ICopUEFHRV9PRkZTRVQgfHwgcHJvYmVfa2VybmVsX2FkZHJlc3MoaXAsIGMpKSB7CiAJCQkvKiB0cnkgc3RhcnRpbmcgYXQgUklQICovCi0JCQlpcCA9ICh1OCAqKSByZWdzLT5pcDsKKwkJCWlwID0gKHU4ICopcmVncy0+aXA7CiAJCQljb2RlX2xlbiA9IGNvZGVfbGVuIC0gY29kZV9wcm9sb2d1ZSArIDE7CiAJCX0KIAkJZm9yIChpID0gMDsgaSA8IGNvZGVfbGVuOyBpKyssIGlwKyspIHsKQEAgLTUwMyw3ICs0NzgsNyBAQAogCQl9CiAJfQogCXByaW50aygiXG4iKTsKLX0JCit9CiAKIGludCBpc192YWxpZF9idWdhZGRyKHVuc2lnbmVkIGxvbmcgaXApCiB7CkBAIC01NjEsMTAgKzUzNiw5IEBACiAJZG9fZXhpdChzaWducik7CiB9CiAKLWludCBfX2twcm9iZXMgX19kaWUoY29uc3QgY2hhciAqIHN0ciwgc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBsb25nIGVycikKK2ludCBfX2twcm9iZXMgX19kaWUoY29uc3QgY2hhciAqc3RyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnIpCiB7Ci0Jc3RhdGljIGludCBkaWVfY291bnRlcjsKLQlwcmludGsoS0VSTl9FTUVSRyAiJXM6ICUwNGx4IFsldV0gIiwgc3RyLCBlcnIgJiAweGZmZmYsKytkaWVfY291bnRlcik7CisJcHJpbnRrKEtFUk5fRU1FUkcgIiVzOiAlMDRseCBbJXVdICIsIHN0ciwgZXJyICYgMHhmZmZmLCArK2RpZV9jb3VudGVyKTsKICNpZmRlZiBDT05GSUdfUFJFRU1QVAogCXByaW50aygiUFJFRU1QVCAiKTsKICNlbmRpZgpAQCAtNTc1LDggKzU0OSwxMCBAQAogCXByaW50aygiREVCVUdfUEFHRUFMTE9DIik7CiAjZW5kaWYKIAlwcmludGsoIlxuIik7Ci0JaWYgKG5vdGlmeV9kaWUoRElFX09PUFMsIHN0ciwgcmVncywgZXJyLCBjdXJyZW50LT50aHJlYWQudHJhcF9ubywgU0lHU0VHVikgPT0gTk9USUZZX1NUT1ApCisJaWYgKG5vdGlmeV9kaWUoRElFX09PUFMsIHN0ciwgcmVncywgZXJyLAorCQkJY3VycmVudC0+dGhyZWFkLnRyYXBfbm8sIFNJR1NFR1YpID09IE5PVElGWV9TVE9QKQogCQlyZXR1cm4gMTsKKwogCXNob3dfcmVnaXN0ZXJzKHJlZ3MpOwogCWFkZF90YWludChUQUlOVF9ESUUpOwogCS8qIEV4ZWN1dGl2ZSBzdW1tYXJ5IGluIGNhc2UgdGhlIG9vcHMgc2Nyb2xsZWQgYXdheSAqLwpAQCAtNTg4LDcgKzU2NCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgZGllKGNvbnN0IGNoYXIgKiBzdHIsIHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnIpCit2b2lkIGRpZShjb25zdCBjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycikKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzID0gb29wc19iZWdpbigpOwogCkBAIC02MDUsOCArNTgxLDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JaWYgKG5vdGlmeV9kaWUoRElFX05NSVdBVENIRE9HLCBzdHIsIHJlZ3MsIDAsIDIsIFNJR0lOVCkgPT0KLQkgICAgTk9USUZZX1NUT1ApCisJaWYgKG5vdGlmeV9kaWUoRElFX05NSVdBVENIRE9HLCBzdHIsIHJlZ3MsIDAsIDIsIFNJR0lOVCkgPT0gTk9USUZZX1NUT1ApCiAJCXJldHVybjsKIAogCWZsYWdzID0gb29wc19iZWdpbigpOwpAQCAtNjE0LDcgKzU4OSw5IEBACiAJICogV2UgYXJlIGluIHRyb3VibGUgYW55d2F5LCBsZXRzIGF0IGxlYXN0IHRyeQogCSAqIHRvIGdldCBhIG1lc3NhZ2Ugb3V0LgogCSAqLwotCXByaW50ayhzdHIsIHNtcF9wcm9jZXNzb3JfaWQoKSk7CisJcHJpbnRrKEtFUk5fRU1FUkcgIiVzIiwgc3RyKTsKKwlwcmludGsoIiBvbiBDUFUlZCwgaXAgJTA4bHgsIHJlZ2lzdGVyczpcbiIsCisJCXNtcF9wcm9jZXNzb3JfaWQoKSwgcmVncy0+aXApOwogCXNob3dfcmVnaXN0ZXJzKHJlZ3MpOwogCWlmIChrZXhlY19zaG91bGRfY3Jhc2goY3VycmVudCkpCiAJCWNyYXNoX2tleGVjKHJlZ3MpOwpAQCAtNjI2LDQ0ICs2MDMsNDQgQEAKIAlkb19leGl0KFNJR0JVUyk7CiB9CiAKLXN0YXRpYyB2b2lkIF9fa3Byb2JlcyBkb190cmFwKGludCB0cmFwbnIsIGludCBzaWduciwgY2hhciAqc3RyLAotCQkJICAgICAgc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBsb25nIGVycm9yX2NvZGUsCi0JCQkgICAgICBzaWdpbmZvX3QgKmluZm8pCitzdGF0aWMgdm9pZCBfX2twcm9iZXMKK2RvX3RyYXAoaW50IHRyYXBuciwgaW50IHNpZ25yLCBjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLAorCWxvbmcgZXJyb3JfY29kZSwgc2lnaW5mb190ICppbmZvKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrID0gY3VycmVudDsKIAotCWlmICh1c2VyX21vZGUocmVncykpIHsKLQkJLyoKLQkJICogV2Ugd2FudCBlcnJvcl9jb2RlIGFuZCB0cmFwX25vIHNldCBmb3IgdXNlcnNwYWNlCi0JCSAqIGZhdWx0cyBhbmQga2VybmVsc3BhY2UgZmF1bHRzIHdoaWNoIHJlc3VsdCBpbgotCQkgKiBkaWUoKSwgYnV0IG5vdCBrZXJuZWxzcGFjZSBmYXVsdHMgd2hpY2ggYXJlIGZpeGVkCi0JCSAqIHVwLiAgZGllKCkgZ2l2ZXMgdGhlIHByb2Nlc3Mgbm8gY2hhbmNlIHRvIGhhbmRsZQotCQkgKiB0aGUgc2lnbmFsIGFuZCBub3RpY2UgdGhlIGtlcm5lbCBmYXVsdCBpbmZvcm1hdGlvbiwKLQkJICogc28gdGhhdCB3b24ndCByZXN1bHQgaW4gcG9sbHV0aW5nIHRoZSBpbmZvcm1hdGlvbgotCQkgKiBhYm91dCBwcmV2aW91c2x5IHF1ZXVlZCwgYnV0IG5vdCB5ZXQgZGVsaXZlcmVkLAotCQkgKiBmYXVsdHMuICBTZWUgYWxzbyBkb19nZW5lcmFsX3Byb3RlY3Rpb24gYmVsb3cuCi0JCSAqLwotCQl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKLQkJdHNrLT50aHJlYWQudHJhcF9ubyA9IHRyYXBucjsKKwlpZiAoIXVzZXJfbW9kZShyZWdzKSkKKwkJZ290byBrZXJuZWxfdHJhcDsKIAotCQlpZiAoc2hvd191bmhhbmRsZWRfc2lnbmFscyAmJiB1bmhhbmRsZWRfc2lnbmFsKHRzaywgc2lnbnIpICYmCi0JCSAgICBwcmludGtfcmF0ZWxpbWl0KCkpIHsKLQkJCXByaW50ayhLRVJOX0lORk8KLQkJCSAgICAgICAiJXNbJWRdIHRyYXAgJXMgaXA6JWx4IHNwOiVseCBlcnJvcjolbHgiLAotCQkJICAgICAgIHRzay0+Y29tbSwgdHNrLT5waWQsIHN0ciwKLQkJCSAgICAgICByZWdzLT5pcCwgcmVncy0+c3AsIGVycm9yX2NvZGUpOwotCQkJcHJpbnRfdm1hX2FkZHIoIiBpbiAiLCByZWdzLT5pcCk7Ci0JCQlwcmludGsoIlxuIik7Ci0JCX0KKwkvKgorCSAqIFdlIHdhbnQgZXJyb3JfY29kZSBhbmQgdHJhcF9ubyBzZXQgZm9yIHVzZXJzcGFjZSBmYXVsdHMgYW5kCisJICoga2VybmVsc3BhY2UgZmF1bHRzIHdoaWNoIHJlc3VsdCBpbiBkaWUoKSwgYnV0IG5vdAorCSAqIGtlcm5lbHNwYWNlIGZhdWx0cyB3aGljaCBhcmUgZml4ZWQgdXAuICBkaWUoKSBnaXZlcyB0aGUKKwkgKiBwcm9jZXNzIG5vIGNoYW5jZSB0byBoYW5kbGUgdGhlIHNpZ25hbCBhbmQgbm90aWNlIHRoZQorCSAqIGtlcm5lbCBmYXVsdCBpbmZvcm1hdGlvbiwgc28gdGhhdCB3b24ndCByZXN1bHQgaW4gcG9sbHV0aW5nCisJICogdGhlIGluZm9ybWF0aW9uIGFib3V0IHByZXZpb3VzbHkgcXVldWVkLCBidXQgbm90IHlldAorCSAqIGRlbGl2ZXJlZCwgZmF1bHRzLiAgU2VlIGFsc28gZG9fZ2VuZXJhbF9wcm90ZWN0aW9uIGJlbG93LgorCSAqLworCXRzay0+dGhyZWFkLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlOworCXRzay0+dGhyZWFkLnRyYXBfbm8gPSB0cmFwbnI7CiAKLQkJaWYgKGluZm8pCi0JCQlmb3JjZV9zaWdfaW5mbyhzaWduciwgaW5mbywgdHNrKTsKLQkJZWxzZQotCQkJZm9yY2Vfc2lnKHNpZ25yLCB0c2spOwotCQlyZXR1cm47CisJaWYgKHNob3dfdW5oYW5kbGVkX3NpZ25hbHMgJiYgdW5oYW5kbGVkX3NpZ25hbCh0c2ssIHNpZ25yKSAmJgorCSAgICBwcmludGtfcmF0ZWxpbWl0KCkpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTworCQkgICAgICAgIiVzWyVkXSB0cmFwICVzIGlwOiVseCBzcDolbHggZXJyb3I6JWx4IiwKKwkJICAgICAgIHRzay0+Y29tbSwgdHNrLT5waWQsIHN0ciwKKwkJICAgICAgIHJlZ3MtPmlwLCByZWdzLT5zcCwgZXJyb3JfY29kZSk7CisJCXByaW50X3ZtYV9hZGRyKCIgaW4gIiwgcmVncy0+aXApOworCQlwcmludGsoIlxuIik7CiAJfQogCisJaWYgKGluZm8pCisJCWZvcmNlX3NpZ19pbmZvKHNpZ25yLCBpbmZvLCB0c2spOworCWVsc2UKKwkJZm9yY2Vfc2lnKHNpZ25yLCB0c2spOworCXJldHVybjsKIAora2VybmVsX3RyYXA6CiAJaWYgKCFmaXh1cF9leGNlcHRpb24ocmVncykpIHsKIAkJdHNrLT50aHJlYWQuZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7CiAJCXRzay0+dGhyZWFkLnRyYXBfbm8gPSB0cmFwbnI7CkBAIC02NzMsNDEgKzY1MCwzOSBAQAogfQogCiAjZGVmaW5lIERPX0VSUk9SKHRyYXBuciwgc2lnbnIsIHN0ciwgbmFtZSkgXAotYXNtbGlua2FnZSB2b2lkIGRvXyMjbmFtZShzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyb3JfY29kZSkgXAoteyBcCi0JaWYgKG5vdGlmeV9kaWUoRElFX1RSQVAsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgdHJhcG5yLCBzaWducikgXAotCQkJCQkJCT09IE5PVElGWV9TVE9QKSBcCi0JCXJldHVybjsgXAorYXNtbGlua2FnZSB2b2lkIGRvXyMjbmFtZShzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyb3JfY29kZSkJXAorewkJCQkJCQkJCVwKKwlpZiAobm90aWZ5X2RpZShESUVfVFJBUCwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCB0cmFwbnIsIHNpZ25yKQlcCisJCQkJCQkJPT0gTk9USUZZX1NUT1ApCVwKKwkJcmV0dXJuOwkJCQkJCQlcCiAJY29uZGl0aW9uYWxfc3RpKHJlZ3MpOwkJCQkJCVwKLQlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7IFwKKwlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7CQlcCiB9CiAKLSNkZWZpbmUgRE9fRVJST1JfSU5GTyh0cmFwbnIsIHNpZ25yLCBzdHIsIG5hbWUsIHNpY29kZSwgc2lhZGRyKSBcCi1hc21saW5rYWdlIHZvaWQgZG9fIyNuYW1lKHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnJvcl9jb2RlKSBcCi17IFwKLQlzaWdpbmZvX3QgaW5mbzsgXAotCWluZm8uc2lfc2lnbm8gPSBzaWducjsgXAotCWluZm8uc2lfZXJybm8gPSAwOyBcCi0JaW5mby5zaV9jb2RlID0gc2ljb2RlOyBcCi0JaW5mby5zaV9hZGRyID0gKHZvaWQgX191c2VyICopc2lhZGRyOyBcCi0JdHJhY2VfaGFyZGlycXNfZml4dXAoKTsgXAotCWlmIChub3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIHRyYXBuciwgc2lnbnIpIFwKLQkJCQkJCQk9PSBOT1RJRllfU1RPUCkgXAotCQlyZXR1cm47IFwKKyNkZWZpbmUgRE9fRVJST1JfSU5GTyh0cmFwbnIsIHNpZ25yLCBzdHIsIG5hbWUsIHNpY29kZSwgc2lhZGRyKQkJXAorYXNtbGlua2FnZSB2b2lkIGRvXyMjbmFtZShzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyb3JfY29kZSkJXAorewkJCQkJCQkJCVwKKwlzaWdpbmZvX3QgaW5mbzsJCQkJCQkJXAorCWluZm8uc2lfc2lnbm8gPSBzaWducjsJCQkJCQlcCisJaW5mby5zaV9lcnJubyA9IDA7CQkJCQkJXAorCWluZm8uc2lfY29kZSA9IHNpY29kZTsJCQkJCQlcCisJaW5mby5zaV9hZGRyID0gKHZvaWQgX191c2VyICopc2lhZGRyOwkJCQlcCisJdHJhY2VfaGFyZGlycXNfZml4dXAoKTsJCQkJCQlcCisJaWYgKG5vdGlmeV9kaWUoRElFX1RSQVAsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgdHJhcG5yLCBzaWducikJXAorCQkJCQkJCT09IE5PVElGWV9TVE9QKQlcCisJCXJldHVybjsJCQkJCQkJXAogCWNvbmRpdGlvbmFsX3N0aShyZWdzKTsJCQkJCQlcCi0JZG9fdHJhcCh0cmFwbnIsIHNpZ25yLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsICZpbmZvKTsgXAorCWRvX3RyYXAodHJhcG5yLCBzaWduciwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCAmaW5mbyk7CQlcCiB9CiAKLURPX0VSUk9SX0lORk8oIDAsIFNJR0ZQRSwgICJkaXZpZGUgZXJyb3IiLCBkaXZpZGVfZXJyb3IsIEZQRV9JTlRESVYsIHJlZ3MtPmlwKQotRE9fRVJST1IoIDQsIFNJR1NFR1YsICJvdmVyZmxvdyIsIG92ZXJmbG93KQotRE9fRVJST1IoIDUsIFNJR1NFR1YsICJib3VuZHMiLCBib3VuZHMpCi1ET19FUlJPUl9JTkZPKCA2LCBTSUdJTEwsICAiaW52YWxpZCBvcGNvZGUiLCBpbnZhbGlkX29wLCBJTExfSUxMT1BOLCByZWdzLT5pcCkKLURPX0VSUk9SKCA3LCBTSUdTRUdWLCAiZGV2aWNlIG5vdCBhdmFpbGFibGUiLCBkZXZpY2Vfbm90X2F2YWlsYWJsZSkKLURPX0VSUk9SKCA5LCBTSUdGUEUsICAiY29wcm9jZXNzb3Igc2VnbWVudCBvdmVycnVuIiwgY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQorRE9fRVJST1JfSU5GTygwLCBTSUdGUEUsICJkaXZpZGUgZXJyb3IiLCBkaXZpZGVfZXJyb3IsIEZQRV9JTlRESVYsIHJlZ3MtPmlwKQorRE9fRVJST1IoNCwgU0lHU0VHViwgIm92ZXJmbG93Iiwgb3ZlcmZsb3cpCitET19FUlJPUig1LCBTSUdTRUdWLCAiYm91bmRzIiwgYm91bmRzKQorRE9fRVJST1JfSU5GTyg2LCBTSUdJTEwsICJpbnZhbGlkIG9wY29kZSIsIGludmFsaWRfb3AsIElMTF9JTExPUE4sIHJlZ3MtPmlwKQorRE9fRVJST1IoOSwgU0lHRlBFLCAiY29wcm9jZXNzb3Igc2VnbWVudCBvdmVycnVuIiwgY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQogRE9fRVJST1IoMTAsIFNJR1NFR1YsICJpbnZhbGlkIFRTUyIsIGludmFsaWRfVFNTKQotRE9fRVJST1IoMTEsIFNJR0JVUywgICJzZWdtZW50IG5vdCBwcmVzZW50Iiwgc2VnbWVudF9ub3RfcHJlc2VudCkKK0RPX0VSUk9SKDExLCBTSUdCVVMsICJzZWdtZW50IG5vdCBwcmVzZW50Iiwgc2VnbWVudF9ub3RfcHJlc2VudCkKIERPX0VSUk9SX0lORk8oMTcsIFNJR0JVUywgImFsaWdubWVudCBjaGVjayIsIGFsaWdubWVudF9jaGVjaywgQlVTX0FEUkFMTiwgMCkKLURPX0VSUk9SKDE4LCBTSUdTRUdWLCAicmVzZXJ2ZWQiLCByZXNlcnZlZCkKIAogLyogUnVucyBvbiBJU1Qgc3RhY2sgKi8KIGFzbWxpbmthZ2Ugdm9pZCBkb19zdGFja19zZWdtZW50KHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCkBAIC03MzcsMzEgKzcxMiwzNCBAQAogCQlkaWUoc3RyLCByZWdzLCBlcnJvcl9jb2RlKTsKIH0KIAotYXNtbGlua2FnZSB2b2lkIF9fa3Byb2JlcyBkb19nZW5lcmFsX3Byb3RlY3Rpb24oc3RydWN0IHB0X3JlZ3MgKiByZWdzLAotCQkJCQkJbG9uZyBlcnJvcl9jb2RlKQorYXNtbGlua2FnZSB2b2lkIF9fa3Byb2JlcworZG9fZ2VuZXJhbF9wcm90ZWN0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCiB7Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrOwogCiAJY29uZGl0aW9uYWxfc3RpKHJlZ3MpOwogCi0JaWYgKHVzZXJfbW9kZShyZWdzKSkgewotCQl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKLQkJdHNrLT50aHJlYWQudHJhcF9ubyA9IDEzOworCXRzayA9IGN1cnJlbnQ7CisJaWYgKCF1c2VyX21vZGUocmVncykpCisJCWdvdG8gZ3BfaW5fa2VybmVsOwogCi0JCWlmIChzaG93X3VuaGFuZGxlZF9zaWduYWxzICYmIHVuaGFuZGxlZF9zaWduYWwodHNrLCBTSUdTRUdWKSAmJgotCQkgICAgcHJpbnRrX3JhdGVsaW1pdCgpKSB7Ci0JCQlwcmludGsoS0VSTl9JTkZPCi0JCSAgICAgICAiJXNbJWRdIGdlbmVyYWwgcHJvdGVjdGlvbiBpcDolbHggc3A6JWx4IGVycm9yOiVseCIsCi0JCQkgICAgICAgdHNrLT5jb21tLCB0c2stPnBpZCwKLQkJCSAgICAgICByZWdzLT5pcCwgcmVncy0+c3AsIGVycm9yX2NvZGUpOwotCQkJcHJpbnRfdm1hX2FkZHIoIiBpbiAiLCByZWdzLT5pcCk7Ci0JCQlwcmludGsoIlxuIik7Ci0JCX0KKwl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKKwl0c2stPnRocmVhZC50cmFwX25vID0gMTM7CiAKLQkJZm9yY2Vfc2lnKFNJR1NFR1YsIHRzayk7Ci0JCXJldHVybjsKLQl9IAorCWlmIChzaG93X3VuaGFuZGxlZF9zaWduYWxzICYmIHVuaGFuZGxlZF9zaWduYWwodHNrLCBTSUdTRUdWKSAmJgorCQkJcHJpbnRrX3JhdGVsaW1pdCgpKSB7CisJCXByaW50ayhLRVJOX0lORk8KKwkJCSIlc1slZF0gZ2VuZXJhbCBwcm90ZWN0aW9uIGlwOiVseCBzcDolbHggZXJyb3I6JWx4IiwKKwkJCXRzay0+Y29tbSwgdHNrLT5waWQsCisJCQlyZWdzLT5pcCwgcmVncy0+c3AsIGVycm9yX2NvZGUpOworCQlwcmludF92bWFfYWRkcigiIGluICIsIHJlZ3MtPmlwKTsKKwkJcHJpbnRrKCJcbiIpOworCX0KIAorCWZvcmNlX3NpZyhTSUdTRUdWLCB0c2spOworCXJldHVybjsKKworZ3BfaW5fa2VybmVsOgogCWlmIChmaXh1cF9leGNlcHRpb24ocmVncykpCiAJCXJldHVybjsKIApAQCAtNzc0LDE0ICs3NTIsMTQgQEAKIH0KIAogc3RhdGljIG5vdHJhY2UgX19rcHJvYmVzIHZvaWQKLW1lbV9wYXJpdHlfZXJyb3IodW5zaWduZWQgY2hhciByZWFzb24sIHN0cnVjdCBwdF9yZWdzICogcmVncykKK21lbV9wYXJpdHlfZXJyb3IodW5zaWduZWQgY2hhciByZWFzb24sIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXByaW50ayhLRVJOX0VNRVJHICJVaGh1aC4gTk1JIHJlY2VpdmVkIGZvciB1bmtub3duIHJlYXNvbiAlMDJ4LlxuIiwKIAkJcmVhc29uKTsKIAlwcmludGsoS0VSTl9FTUVSRyAiWW91IGhhdmUgc29tZSBoYXJkd2FyZSBwcm9ibGVtLCBsaWtlbHkgb24gdGhlIFBDSSBidXMuXG4iKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0VEQUMpCi0JaWYoZWRhY19oYW5kbGVyX3NldCgpKSB7CisJaWYgKGVkYWNfaGFuZGxlcl9zZXQoKSkgewogCQllZGFjX2F0b21pY19hc3NlcnRfZXJyb3IoKTsKIAkJcmV0dXJuOwogCX0KQEAgLTc5OCw3ICs3NzYsNyBAQAogfQogCiBzdGF0aWMgbm90cmFjZSBfX2twcm9iZXMgdm9pZAotaW9fY2hlY2tfZXJyb3IodW5zaWduZWQgY2hhciByZWFzb24sIHN0cnVjdCBwdF9yZWdzICogcmVncykKK2lvX2NoZWNrX2Vycm9yKHVuc2lnbmVkIGNoYXIgcmVhc29uLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKIAlwcmludGsoIk5NSTogSU9DSyBlcnJvciAoZGVidWcgaW50ZXJydXB0PylcbiIpOwogCXNob3dfcmVnaXN0ZXJzKHJlZ3MpOwpAQCAtODI4LDE0ICs4MDYsMTQgQEAKIAogLyogUnVucyBvbiBJU1Qgc3RhY2suIFRoaXMgY29kZSBtdXN0IGtlZXAgaW50ZXJydXB0cyBvZmYgYWxsIHRoZSB0aW1lLgogICAgTmVzdGVkIE5NSXMgYXJlIHByZXZlbnRlZCBieSB0aGUgQ1BVLiAqLwotYXNtbGlua2FnZSBub3RyYWNlICBfX2twcm9iZXMgdm9pZCBkZWZhdWx0X2RvX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncykKK2FzbWxpbmthZ2Ugbm90cmFjZSBfX2twcm9iZXMgdm9pZCBkZWZhdWx0X2RvX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKIAl1bnNpZ25lZCBjaGFyIHJlYXNvbiA9IDA7CiAJaW50IGNwdTsKIAogCWNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAotCS8qIE9ubHkgdGhlIEJTUCBnZXRzIGV4dGVybmFsIE5NSXMgZnJvbSB0aGUgc3lzdGVtLiAgKi8KKwkvKiBPbmx5IHRoZSBCU1AgZ2V0cyBleHRlcm5hbCBOTUlzIGZyb20gdGhlIHN5c3RlbS4gKi8KIAlpZiAoIWNwdSkKIAkJcmVhc29uID0gZ2V0X25taV9yZWFzb24oKTsKIApAQCAtODQ3LDMyICs4MjUsNTcgQEAKIAkJICogT2ssIHNvIHRoaXMgaXMgbm9uZSBvZiB0aGUgZG9jdW1lbnRlZCBOTUkgc291cmNlcywKIAkJICogc28gaXQgbXVzdCBiZSB0aGUgTk1JIHdhdGNoZG9nLgogCQkgKi8KLQkJaWYgKG5taV93YXRjaGRvZ190aWNrKHJlZ3MscmVhc29uKSkKKwkJaWYgKG5taV93YXRjaGRvZ190aWNrKHJlZ3MsIHJlYXNvbikpCiAJCQlyZXR1cm47Ci0JCWlmICghZG9fbm1pX2NhbGxiYWNrKHJlZ3MsY3B1KSkKKwkJaWYgKCFkb19ubWlfY2FsbGJhY2socmVncywgY3B1KSkKIAkJCXVua25vd25fbm1pX2Vycm9yKHJlYXNvbiwgcmVncyk7CiAKIAkJcmV0dXJuOwogCX0KIAlpZiAobm90aWZ5X2RpZShESUVfTk1JLCAibm1pIiwgcmVncywgcmVhc29uLCAyLCBTSUdJTlQpID09IE5PVElGWV9TVE9QKQotCQlyZXR1cm47IAorCQlyZXR1cm47CiAKIAkvKiBBSzogZm9sbG93aW5nIGNoZWNrcyBzZWVtIHRvIGJlIGJyb2tlbiBvbiBtb2Rlcm4gY2hpcHNldHMuIEZJWE1FICovCi0KIAlpZiAocmVhc29uICYgMHg4MCkKIAkJbWVtX3Bhcml0eV9lcnJvcihyZWFzb24sIHJlZ3MpOwogCWlmIChyZWFzb24gJiAweDQwKQogCQlpb19jaGVja19lcnJvcihyZWFzb24sIHJlZ3MpOwogfQogCithc21saW5rYWdlIG5vdHJhY2UgX19rcHJvYmVzIHZvaWQKK2RvX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQoreworCW5taV9lbnRlcigpOworCisJYWRkX3BkYShfX25taV9jb3VudCwgMSk7CisKKwlpZiAoIWlnbm9yZV9ubWlzKQorCQlkZWZhdWx0X2RvX25taShyZWdzKTsKKworCW5taV9leGl0KCk7Cit9CisKK3ZvaWQgc3RvcF9ubWkodm9pZCkKK3sKKwlhY3BpX25taV9kaXNhYmxlKCk7CisJaWdub3JlX25taXMrKzsKK30KKwordm9pZCByZXN0YXJ0X25taSh2b2lkKQoreworCWlnbm9yZV9ubWlzLS07CisJYWNwaV9ubWlfZW5hYmxlKCk7Cit9CisKIC8qIHJ1bnMgb24gSVNUIHN0YWNrLiAqLwotYXNtbGlua2FnZSB2b2lkIF9fa3Byb2JlcyBkb19pbnQzKHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnJvcl9jb2RlKQorYXNtbGlua2FnZSB2b2lkIF9fa3Byb2JlcyBkb19pbnQzKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCiB7CiAJdHJhY2VfaGFyZGlycXNfZml4dXAoKTsKIAotCWlmIChub3RpZnlfZGllKERJRV9JTlQzLCAiaW50MyIsIHJlZ3MsIGVycm9yX2NvZGUsIDMsIFNJR1RSQVApID09IE5PVElGWV9TVE9QKSB7CisJaWYgKG5vdGlmeV9kaWUoRElFX0lOVDMsICJpbnQzIiwgcmVncywgZXJyb3JfY29kZSwgMywgU0lHVFJBUCkKKwkJCT09IE5PVElGWV9TVE9QKQogCQlyZXR1cm47Ci0JfQorCiAJcHJlZW1wdF9jb25kaXRpb25hbF9zdGkocmVncyk7CiAJZG9fdHJhcCgzLCBTSUdUUkFQLCAiaW50MyIsIHJlZ3MsIGVycm9yX2NvZGUsIE5VTEwpOwogCXByZWVtcHRfY29uZGl0aW9uYWxfY2xpKHJlZ3MpOwpAQCAtOTAzLDggKzkwNiw4IEBACiBhc21saW5rYWdlIHZvaWQgX19rcHJvYmVzIGRvX2RlYnVnKHN0cnVjdCBwdF9yZWdzICogcmVncywKIAkJCQkgICB1bnNpZ25lZCBsb25nIGVycm9yX2NvZGUpCiB7Ci0JdW5zaWduZWQgbG9uZyBjb25kaXRpb247CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OworCXVuc2lnbmVkIGxvbmcgY29uZGl0aW9uOwogCXNpZ2luZm9fdCBpbmZvOwogCiAJdHJhY2VfaGFyZGlycXNfZml4dXAoKTsKQEAgLTkyNSwyMSArOTI4LDE5IEBACiAKIAkvKiBNYXNrIG91dCBzcHVyaW91cyBkZWJ1ZyB0cmFwcyBkdWUgdG8gbGF6eSBEUjcgc2V0dGluZyAqLwogCWlmIChjb25kaXRpb24gJiAoRFJfVFJBUDB8RFJfVFJBUDF8RFJfVFJBUDJ8RFJfVFJBUDMpKSB7Ci0JCWlmICghdHNrLT50aHJlYWQuZGVidWdyZWc3KSB7IAorCQlpZiAoIXRzay0+dGhyZWFkLmRlYnVncmVnNykKIAkJCWdvdG8gY2xlYXJfZHI3OwotCQl9CiAJfQogCiAJdHNrLT50aHJlYWQuZGVidWdyZWc2ID0gY29uZGl0aW9uOwogCi0KIAkvKgogCSAqIFNpbmdsZS1zdGVwcGluZyB0aHJvdWdoIFRGOiBtYWtlIHN1cmUgd2UgaWdub3JlIGFueSBldmVudHMgaW4KIAkgKiBrZXJuZWwgc3BhY2UgKGJ1dCByZS1lbmFibGUgVEYgd2hlbiByZXR1cm5pbmcgdG8gdXNlciBtb2RlKS4KIAkgKi8KIAlpZiAoY29uZGl0aW9uICYgRFJfU1RFUCkgewotICAgICAgICAgICAgICAgIGlmICghdXNlcl9tb2RlKHJlZ3MpKQotICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGNsZWFyX1RGX3JlZW5hYmxlOworCQlpZiAoIXVzZXJfbW9kZShyZWdzKSkKKwkJCWdvdG8gY2xlYXJfVEZfcmVlbmFibGU7CiAJfQogCiAJLyogT2ssIGZpbmFsbHkgc29tZXRoaW5nIHdlIGNhbiBoYW5kbGUgKi8KQEAgLTk1Miw3ICs5NTMsNyBAQAogCWZvcmNlX3NpZ19pbmZvKFNJR1RSQVAsICZpbmZvLCB0c2spOwogCiBjbGVhcl9kcjc6Ci0Jc2V0X2RlYnVncmVnKDBVTCwgNyk7CisJc2V0X2RlYnVncmVnKDAsIDcpOwogCXByZWVtcHRfY29uZGl0aW9uYWxfY2xpKHJlZ3MpOwogCXJldHVybjsKIApAQCAtOTYwLDYgKzk2MSw3IEBACiAJc2V0X3Rza190aHJlYWRfZmxhZyh0c2ssIFRJRl9TSU5HTEVTVEVQKTsKIAlyZWdzLT5mbGFncyAmPSB+WDg2X0VGTEFHU19URjsKIAlwcmVlbXB0X2NvbmRpdGlvbmFsX2NsaShyZWdzKTsKKwlyZXR1cm47CiB9CiAKIHN0YXRpYyBpbnQga2VybmVsX21hdGhfZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGNvbnN0IGNoYXIgKnN0ciwgaW50IHRyYXBucikKQEAgLTk4Miw3ICs5ODQsNyBAQAogYXNtbGlua2FnZSB2b2lkIGRvX2NvcHJvY2Vzc29yX2Vycm9yKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXZvaWQgX191c2VyICppcCA9ICh2b2lkIF9fdXNlciAqKShyZWdzLT5pcCk7Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICogdGFzazsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiAJc2lnaW5mb190IGluZm87CiAJdW5zaWduZWQgc2hvcnQgY3dkLCBzd2Q7CiAKQEAgLTEwMTUsMzAgKzEwMTcsMzAgQEAKIAljd2QgPSBnZXRfZnB1X2N3ZCh0YXNrKTsKIAlzd2QgPSBnZXRfZnB1X3N3ZCh0YXNrKTsKIAlzd2l0Y2ggKHN3ZCAmIH5jd2QgJiAweDNmKSB7Ci0JCWNhc2UgMHgwMDA6Ci0JCWRlZmF1bHQ6Ci0JCQlicmVhazsKLQkJY2FzZSAweDAwMTogLyogSW52YWxpZCBPcCAqLwotCQkJLyoKLQkJCSAqIHN3ZCAmIDB4MjQwID09IDB4MDQwOiBTdGFjayBVbmRlcmZsb3cKLQkJCSAqIHN3ZCAmIDB4MjQwID09IDB4MjQwOiBTdGFjayBPdmVyZmxvdwotCQkJICogVXNlciBtdXN0IGNsZWFyIHRoZSBTRiBiaXQgKDB4NDApIGlmIHNldAotCQkJICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUSU5WOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMDI6IC8qIERlbm9ybWFsaXplICovCi0JCWNhc2UgMHgwMTA6IC8qIFVuZGVyZmxvdyAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFVORDsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDA0OiAvKiBaZXJvIERpdmlkZSAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVERJVjsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDA4OiAvKiBPdmVyZmxvdyAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVE9WRjsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDIwOiAvKiBQcmVjaXNpb24gKi8KLQkJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRSRVM7Ci0JCQlicmVhazsKKwljYXNlIDB4MDAwOiAvKiBObyB1bm1hc2tlZCBleGNlcHRpb24gKi8KKwlkZWZhdWx0OiAvKiBNdWx0aXBsZSBleGNlcHRpb25zICovCisJCWJyZWFrOworCWNhc2UgMHgwMDE6IC8qIEludmFsaWQgT3AgKi8KKwkJLyoKKwkJICogc3dkICYgMHgyNDAgPT0gMHgwNDA6IFN0YWNrIFVuZGVyZmxvdworCQkgKiBzd2QgJiAweDI0MCA9PSAweDI0MDogU3RhY2sgT3ZlcmZsb3cKKwkJICogVXNlciBtdXN0IGNsZWFyIHRoZSBTRiBiaXQgKDB4NDApIGlmIHNldAorCQkgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVElOVjsKKwkJYnJlYWs7CisJY2FzZSAweDAwMjogLyogRGVub3JtYWxpemUgKi8KKwljYXNlIDB4MDEwOiAvKiBVbmRlcmZsb3cgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFVORDsKKwkJYnJlYWs7CisJY2FzZSAweDAwNDogLyogWmVybyBEaXZpZGUgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVERJVjsKKwkJYnJlYWs7CisJY2FzZSAweDAwODogLyogT3ZlcmZsb3cgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVE9WRjsKKwkJYnJlYWs7CisJY2FzZSAweDAyMDogLyogUHJlY2lzaW9uICovCisJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRSRVM7CisJCWJyZWFrOwogCX0KIAlmb3JjZV9zaWdfaW5mbyhTSUdGUEUsICZpbmZvLCB0YXNrKTsKIH0KQEAgLTEwNTEsNyArMTA1Myw3IEBACiBhc21saW5rYWdlIHZvaWQgZG9fc2ltZF9jb3Byb2Nlc3Nvcl9lcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKIAl2b2lkIF9fdXNlciAqaXAgPSAodm9pZCBfX3VzZXIgKikocmVncy0+aXApOwotCXN0cnVjdCB0YXNrX3N0cnVjdCAqIHRhc2s7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwogCXNpZ2luZm9fdCBpbmZvOwogCXVuc2lnbmVkIHNob3J0IG14Y3NyOwogCkBAIC0xMDc5LDI1ICsxMDgxLDI1IEBACiAJICovCiAJbXhjc3IgPSBnZXRfZnB1X214Y3NyKHRhc2spOwogCXN3aXRjaCAofigobXhjc3IgJiAweDFmODApID4+IDcpICYgKG14Y3NyICYgMHgzZikpIHsKLQkJY2FzZSAweDAwMDoKLQkJZGVmYXVsdDoKLQkJCWJyZWFrOwotCQljYXNlIDB4MDAxOiAvKiBJbnZhbGlkIE9wICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUSU5WOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMDI6IC8qIERlbm9ybWFsaXplICovCi0JCWNhc2UgMHgwMTA6IC8qIFVuZGVyZmxvdyAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFVORDsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDA0OiAvKiBaZXJvIERpdmlkZSAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVERJVjsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDA4OiAvKiBPdmVyZmxvdyAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVE9WRjsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDIwOiAvKiBQcmVjaXNpb24gKi8KLQkJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRSRVM7Ci0JCQlicmVhazsKKwljYXNlIDB4MDAwOgorCWRlZmF1bHQ6CisJCWJyZWFrOworCWNhc2UgMHgwMDE6IC8qIEludmFsaWQgT3AgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVElOVjsKKwkJYnJlYWs7CisJY2FzZSAweDAwMjogLyogRGVub3JtYWxpemUgKi8KKwljYXNlIDB4MDEwOiAvKiBVbmRlcmZsb3cgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFVORDsKKwkJYnJlYWs7CisJY2FzZSAweDAwNDogLyogWmVybyBEaXZpZGUgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVERJVjsKKwkJYnJlYWs7CisJY2FzZSAweDAwODogLyogT3ZlcmZsb3cgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVE9WRjsKKwkJYnJlYWs7CisJY2FzZSAweDAyMDogLyogUHJlY2lzaW9uICovCisJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRSRVM7CisJCWJyZWFrOwogCX0KIAlmb3JjZV9zaWdfaW5mbyhTSUdGUEUsICZpbmZvLCB0YXNrKTsKIH0KQEAgLTExMTUsNyArMTExNyw3IEBACiB9CiAKIC8qCi0gKiAgJ21hdGhfc3RhdGVfcmVzdG9yZSgpJyBzYXZlcyB0aGUgY3VycmVudCBtYXRoIGluZm9ybWF0aW9uIGluIHRoZQorICogJ21hdGhfc3RhdGVfcmVzdG9yZSgpJyBzYXZlcyB0aGUgY3VycmVudCBtYXRoIGluZm9ybWF0aW9uIGluIHRoZQogICogb2xkIG1hdGggc3RhdGUgYXJyYXksIGFuZCBnZXRzIHRoZSBuZXcgb25lcyBmcm9tIHRoZSBjdXJyZW50IHRhc2sKICAqCiAgKiBDYXJlZnVsLi4gVGhlcmUgYXJlIHByb2JsZW1zIHdpdGggSUJNLWRlc2lnbmVkIElSUTEzIGJlaGF2aW91ci4KQEAgLTExNDAsNyArMTE0Miw3IEBACiAJCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAJfQogCi0JY2x0cygpOwkJCS8qIEFsbG93IG1hdGhzIG9wcyAob3Igd2UgcmVjdXJzZSkgKi8KKwljbHRzKCk7CQkJCS8qIEFsbG93IG1hdGhzIG9wcyAob3Igd2UgcmVjdXJzZSkgKi8KIAlyZXN0b3JlX2ZwdV9jaGVja2luZygmbWUtPnRocmVhZC54c3RhdGUtPmZ4c2F2ZSk7CiAJdGFza190aHJlYWRfaW5mbyhtZSktPnN0YXR1cyB8PSBUU19VU0VERlBVOwogCW1lLT5mcHVfY291bnRlcisrOwpAQCAtMTE0OSw2NCArMTE1MSw2MSBAQAogCiB2b2lkIF9faW5pdCB0cmFwX2luaXQodm9pZCkKIHsKLQlzZXRfaW50cl9nYXRlKDAsJmRpdmlkZV9lcnJvcik7Ci0Jc2V0X2ludHJfZ2F0ZV9pc3QoMSwmZGVidWcsREVCVUdfU1RBQ0spOwotCXNldF9pbnRyX2dhdGVfaXN0KDIsJm5taSxOTUlfU1RBQ0spOwotIAlzZXRfc3lzdGVtX2dhdGVfaXN0KDMsJmludDMsREVCVUdfU1RBQ0spOyAvKiBpbnQzIGNhbiBiZSBjYWxsZWQgZnJvbSBhbGwgKi8KLQlzZXRfc3lzdGVtX2dhdGUoNCwmb3ZlcmZsb3cpOwkvKiBpbnQ0IGNhbiBiZSBjYWxsZWQgZnJvbSBhbGwgKi8KLQlzZXRfaW50cl9nYXRlKDUsJmJvdW5kcyk7Ci0Jc2V0X2ludHJfZ2F0ZSg2LCZpbnZhbGlkX29wKTsKLQlzZXRfaW50cl9nYXRlKDcsJmRldmljZV9ub3RfYXZhaWxhYmxlKTsKLQlzZXRfaW50cl9nYXRlX2lzdCg4LCZkb3VibGVfZmF1bHQsIERPVUJMRUZBVUxUX1NUQUNLKTsKLQlzZXRfaW50cl9nYXRlKDksJmNvcHJvY2Vzc29yX3NlZ21lbnRfb3ZlcnJ1bik7Ci0Jc2V0X2ludHJfZ2F0ZSgxMCwmaW52YWxpZF9UU1MpOwotCXNldF9pbnRyX2dhdGUoMTEsJnNlZ21lbnRfbm90X3ByZXNlbnQpOwotCXNldF9pbnRyX2dhdGVfaXN0KDEyLCZzdGFja19zZWdtZW50LFNUQUNLRkFVTFRfU1RBQ0spOwotCXNldF9pbnRyX2dhdGUoMTMsJmdlbmVyYWxfcHJvdGVjdGlvbik7Ci0Jc2V0X2ludHJfZ2F0ZSgxNCwmcGFnZV9mYXVsdCk7Ci0Jc2V0X2ludHJfZ2F0ZSgxNSwmc3B1cmlvdXNfaW50ZXJydXB0X2J1Zyk7Ci0Jc2V0X2ludHJfZ2F0ZSgxNiwmY29wcm9jZXNzb3JfZXJyb3IpOwotCXNldF9pbnRyX2dhdGUoMTcsJmFsaWdubWVudF9jaGVjayk7CisJc2V0X2ludHJfZ2F0ZSgwLCAmZGl2aWRlX2Vycm9yKTsKKwlzZXRfaW50cl9nYXRlX2lzdCgxLCAmZGVidWcsIERFQlVHX1NUQUNLKTsKKwlzZXRfaW50cl9nYXRlX2lzdCgyLCAmbm1pLCBOTUlfU1RBQ0spOworIAlzZXRfc3lzdGVtX2dhdGVfaXN0KDMsICZpbnQzLCBERUJVR19TVEFDSyk7IC8qIGludDMgY2FuIGJlIGNhbGxlZCBmcm9tIGFsbCAqLworCXNldF9zeXN0ZW1fZ2F0ZSg0LCAmb3ZlcmZsb3cpOyAvKiBpbnQ0IGNhbiBiZSBjYWxsZWQgZnJvbSBhbGwgKi8KKwlzZXRfaW50cl9nYXRlKDUsICZib3VuZHMpOworCXNldF9pbnRyX2dhdGUoNiwgJmludmFsaWRfb3ApOworCXNldF9pbnRyX2dhdGUoNywgJmRldmljZV9ub3RfYXZhaWxhYmxlKTsKKwlzZXRfaW50cl9nYXRlX2lzdCg4LCAmZG91YmxlX2ZhdWx0LCBET1VCTEVGQVVMVF9TVEFDSyk7CisJc2V0X2ludHJfZ2F0ZSg5LCAmY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKTsKKwlzZXRfaW50cl9nYXRlKDEwLCAmaW52YWxpZF9UU1MpOworCXNldF9pbnRyX2dhdGUoMTEsICZzZWdtZW50X25vdF9wcmVzZW50KTsKKwlzZXRfaW50cl9nYXRlX2lzdCgxMiwgJnN0YWNrX3NlZ21lbnQsIFNUQUNLRkFVTFRfU1RBQ0spOworCXNldF9pbnRyX2dhdGUoMTMsICZnZW5lcmFsX3Byb3RlY3Rpb24pOworCXNldF9pbnRyX2dhdGUoMTQsICZwYWdlX2ZhdWx0KTsKKwlzZXRfaW50cl9nYXRlKDE1LCAmc3B1cmlvdXNfaW50ZXJydXB0X2J1Zyk7CisJc2V0X2ludHJfZ2F0ZSgxNiwgJmNvcHJvY2Vzc29yX2Vycm9yKTsKKwlzZXRfaW50cl9nYXRlKDE3LCAmYWxpZ25tZW50X2NoZWNrKTsKICNpZmRlZiBDT05GSUdfWDg2X01DRQotCXNldF9pbnRyX2dhdGVfaXN0KDE4LCZtYWNoaW5lX2NoZWNrLCBNQ0VfU1RBQ0spOyAKKwlzZXRfaW50cl9nYXRlX2lzdCgxOCwgJm1hY2hpbmVfY2hlY2ssIE1DRV9TVEFDSyk7CiAjZW5kaWYKLQlzZXRfaW50cl9nYXRlKDE5LCZzaW1kX2NvcHJvY2Vzc29yX2Vycm9yKTsKKwlzZXRfaW50cl9nYXRlKDE5LCAmc2ltZF9jb3Byb2Nlc3Nvcl9lcnJvcik7CiAKICNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT04KIAlzZXRfc3lzdGVtX2dhdGUoSUEzMl9TWVNDQUxMX1ZFQ1RPUiwgaWEzMl9zeXNjYWxsKTsKICNlbmRpZgotICAgICAgIAogCS8qCiAJICogaW5pdGlhbGl6ZSB0aGUgcGVyIHRocmVhZCBleHRlbmRlZCBzdGF0ZToKIAkgKi8KLSAgICAgICAgaW5pdF90aHJlYWRfeHN0YXRlKCk7CisJaW5pdF90aHJlYWRfeHN0YXRlKCk7CiAJLyoKLQkgKiBTaG91bGQgYmUgYSBiYXJyaWVyIGZvciBhbnkgZXh0ZXJuYWwgQ1BVIHN0YXRlLgorCSAqIFNob3VsZCBiZSBhIGJhcnJpZXIgZm9yIGFueSBleHRlcm5hbCBDUFUgc3RhdGU6CiAJICovCiAJY3B1X2luaXQoKTsKIH0KIAotCiBzdGF0aWMgaW50IF9faW5pdCBvb3BzX3NldHVwKGNoYXIgKnMpCi17IAorewogCWlmICghcykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJaWYgKCFzdHJjbXAocywgInBhbmljIikpCiAJCXBhbmljX29uX29vcHMgPSAxOwogCXJldHVybiAwOwotfSAKK30KIGVhcmx5X3BhcmFtKCJvb3BzIiwgb29wc19zZXR1cCk7CiAKIHN0YXRpYyBpbnQgX19pbml0IGtzdGFja19zZXR1cChjaGFyICpzKQogewogCWlmICghcykKIAkJcmV0dXJuIC1FSU5WQUw7Ci0Ja3N0YWNrX2RlcHRoX3RvX3ByaW50ID0gc2ltcGxlX3N0cnRvdWwocyxOVUxMLDApOworCWtzdGFja19kZXB0aF90b19wcmludCA9IHNpbXBsZV9zdHJ0b3VsKHMsIE5VTEwsIDApOwogCXJldHVybiAwOwogfQogZWFybHlfcGFyYW0oImtzdGFjayIsIGtzdGFja19zZXR1cCk7CiAKLQogc3RhdGljIGludCBfX2luaXQgY29kZV9ieXRlc19zZXR1cChjaGFyICpzKQogewogCWNvZGVfYnl0ZXMgPSBzaW1wbGVfc3RydG91bChzLCBOVUxMLCAwKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90c2MuYyBiL2FyY2gveDg2L2tlcm5lbC90c2MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzM2ZjkyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL3RzYy5jCkBAIC0wLDAgKzEsNTMzIEBACisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpX3BtdG1yLmg+CisjaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKworI2luY2x1ZGUgPGFzbS9ocGV0Lmg+CisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CisjaW5jbHVkZSA8YXNtL3ZndG9kLmg+CisjaW5jbHVkZSA8YXNtL3RpbWUuaD4KKyNpbmNsdWRlIDxhc20vZGVsYXkuaD4KKwordW5zaWduZWQgaW50IGNwdV9raHo7ICAgICAgICAgICAvKiBUU0MgY2xvY2tzIC8gdXNlYywgbm90IHVzZWQgaGVyZSAqLworRVhQT1JUX1NZTUJPTChjcHVfa2h6KTsKK3Vuc2lnbmVkIGludCB0c2Nfa2h6OworRVhQT1JUX1NZTUJPTCh0c2Nfa2h6KTsKKworLyoKKyAqIFRTQyBjYW4gYmUgdW5zdGFibGUgZHVlIHRvIGNwdWZyZXEgb3IgZHVlIHRvIHVuc3luY2VkIFRTQ3MKKyAqLworc3RhdGljIGludCB0c2NfdW5zdGFibGU7CisKKy8qIG5hdGl2ZV9zY2hlZF9jbG9jaygpIGlzIGNhbGxlZCBiZWZvcmUgdHNjX2luaXQoKSwgc28KKyAgIHdlIG11c3Qgc3RhcnQgd2l0aCB0aGUgVFNDIHNvZnQgZGlzYWJsZWQgdG8gcHJldmVudAorICAgZXJyb25lb3VzIHJkdHNjIHVzYWdlIG9uICFjcHVfaGFzX3RzYyBwcm9jZXNzb3JzICovCitzdGF0aWMgaW50IHRzY19kaXNhYmxlZCA9IC0xOworCisvKgorICogU2NoZWR1bGVyIGNsb2NrIC0gcmV0dXJucyBjdXJyZW50IHRpbWUgaW4gbmFub3NlYyB1bml0cy4KKyAqLwordTY0IG5hdGl2ZV9zY2hlZF9jbG9jayh2b2lkKQoreworCXU2NCB0aGlzX29mZnNldDsKKworCS8qCisJICogRmFsbCBiYWNrIHRvIGppZmZpZXMgaWYgdGhlcmUncyBubyBUU0MgYXZhaWxhYmxlOgorCSAqICggQnV0IG5vdGUgdGhhdCB3ZSBzdGlsbCB1c2UgaXQgaWYgdGhlIFRTQyBpcyBtYXJrZWQKKwkgKiAgIHVuc3RhYmxlLiBXZSBkbyB0aGlzIGJlY2F1c2UgdW5saWtlIFRpbWUgT2YgRGF5LAorCSAqICAgdGhlIHNjaGVkdWxlciBjbG9jayB0b2xlcmF0ZXMgc21hbGwgZXJyb3JzIGFuZCBpdCdzCisJICogICB2ZXJ5IGltcG9ydGFudCBmb3IgaXQgdG8gYmUgYXMgZmFzdCBhcyB0aGUgcGxhdGZvcm0KKwkgKiAgIGNhbiBhY2hpdmUgaXQuICkKKwkgKi8KKwlpZiAodW5saWtlbHkodHNjX2Rpc2FibGVkKSkgeworCQkvKiBObyBsb2NraW5nIGJ1dCBhIHJhcmUgd3JvbmcgdmFsdWUgaXMgbm90IGEgYmlnIGRlYWw6ICovCisJCXJldHVybiAoamlmZmllc182NCAtIElOSVRJQUxfSklGRklFUykgKiAoMTAwMDAwMDAwMCAvIEhaKTsKKwl9CisKKwkvKiByZWFkIHRoZSBUaW1lIFN0YW1wIENvdW50ZXI6ICovCisJcmR0c2NsbCh0aGlzX29mZnNldCk7CisKKwkvKiByZXR1cm4gdGhlIHZhbHVlIGluIG5zICovCisJcmV0dXJuIGN5Y2xlc18yX25zKHRoaXNfb2Zmc2V0KTsKK30KKworLyogV2UgbmVlZCB0byBkZWZpbmUgYSByZWFsIGZ1bmN0aW9uIGZvciBzY2hlZF9jbG9jaywgdG8gb3ZlcnJpZGUgdGhlCisgICB3ZWFrIGRlZmF1bHQgdmVyc2lvbiAqLworI2lmZGVmIENPTkZJR19QQVJBVklSVAordW5zaWduZWQgbG9uZyBsb25nIHNjaGVkX2Nsb2NrKHZvaWQpCit7CisJcmV0dXJuIHBhcmF2aXJ0X3NjaGVkX2Nsb2NrKCk7Cit9CisjZWxzZQordW5zaWduZWQgbG9uZyBsb25nCitzY2hlZF9jbG9jayh2b2lkKSBfX2F0dHJpYnV0ZV9fKChhbGlhcygibmF0aXZlX3NjaGVkX2Nsb2NrIikpKTsKKyNlbmRpZgorCitpbnQgY2hlY2tfdHNjX3Vuc3RhYmxlKHZvaWQpCit7CisJcmV0dXJuIHRzY191bnN0YWJsZTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGNoZWNrX3RzY191bnN0YWJsZSk7CisKKyNpZmRlZiBDT05GSUdfWDg2X1RTQworaW50IF9faW5pdCBub3RzY19zZXR1cChjaGFyICpzdHIpCit7CisJcHJpbnRrKEtFUk5fV0FSTklORyAibm90c2M6IEtlcm5lbCBjb21waWxlZCB3aXRoIENPTkZJR19YODZfVFNDLCAiCisJCQkiY2Fubm90IGRpc2FibGUgVFNDIGNvbXBsZXRlbHkuXG4iKTsKKwl0c2NfZGlzYWJsZWQgPSAxOworCXJldHVybiAxOworfQorI2Vsc2UKKy8qCisgKiBkaXNhYmxlIGZsYWcgZm9yIHRzYy4gVGFrZXMgZWZmZWN0IGJ5IGNsZWFyaW5nIHRoZSBUU0MgY3B1IGZsYWcKKyAqIGluIGNwdS9jb21tb24uYworICovCitpbnQgX19pbml0IG5vdHNjX3NldHVwKGNoYXIgKnN0cikKK3sKKwlzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX1RTQyk7CisJcmV0dXJuIDE7Cit9CisjZW5kaWYKKworX19zZXR1cCgibm90c2MiLCBub3RzY19zZXR1cCk7CisKKyNkZWZpbmUgTUFYX1JFVFJJRVMgICAgIDUKKyNkZWZpbmUgU01JX1RSRVNIT0xEICAgIDUwMDAwCisKKy8qCisgKiBSZWFkIFRTQyBhbmQgdGhlIHJlZmVyZW5jZSBjb3VudGVycy4gVGFrZSBjYXJlIG9mIFNNSSBkaXN0dXJiYW5jZQorICovCitzdGF0aWMgdTY0IF9faW5pdCB0c2NfcmVhZF9yZWZzKHU2NCAqcG0sIHU2NCAqaHBldCkKK3sKKwl1NjQgdDEsIHQyOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IE1BWF9SRVRSSUVTOyBpKyspIHsKKwkJdDEgPSBnZXRfY3ljbGVzKCk7CisJCWlmIChocGV0KQorCQkJKmhwZXQgPSBocGV0X3JlYWRsKEhQRVRfQ09VTlRFUikgJiAweEZGRkZGRkZGOworCQllbHNlCisJCQkqcG0gPSBhY3BpX3BtX3JlYWRfZWFybHkoKTsKKwkJdDIgPSBnZXRfY3ljbGVzKCk7CisJCWlmICgodDIgLSB0MSkgPCBTTUlfVFJFU0hPTEQpCisJCQlyZXR1cm4gdDI7CisJfQorCXJldHVybiBVTExPTkdfTUFYOworfQorCisvKioKKyAqIG5hdGl2ZV9jYWxpYnJhdGVfdHNjIC0gY2FsaWJyYXRlIHRoZSB0c2Mgb24gYm9vdAorICovCit1bnNpZ25lZCBsb25nIG5hdGl2ZV9jYWxpYnJhdGVfdHNjKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1NjQgdHNjMSwgdHNjMiwgdHIxLCB0cjIsIGRlbHRhLCBwbTEsIHBtMiwgaHBldDEsIGhwZXQyOworCWludCBocGV0ID0gaXNfaHBldF9lbmFibGVkKCk7CisJdW5zaWduZWQgaW50IHRzY19raHpfdmFsID0gMDsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCXRzYzEgPSB0c2NfcmVhZF9yZWZzKCZwbTEsIGhwZXQgPyAmaHBldDEgOiBOVUxMKTsKKworCW91dGIoKGluYigweDYxKSAmIH4weDAyKSB8IDB4MDEsIDB4NjEpOworCisJb3V0YigweGIwLCAweDQzKTsKKwlvdXRiKChDTE9DS19USUNLX1JBVEUgLyAoMTAwMCAvIDUwKSkgJiAweGZmLCAweDQyKTsKKwlvdXRiKChDTE9DS19USUNLX1JBVEUgLyAoMTAwMCAvIDUwKSkgPj4gOCwgMHg0Mik7CisJdHIxID0gZ2V0X2N5Y2xlcygpOworCXdoaWxlICgoaW5iKDB4NjEpICYgMHgyMCkgPT0gMCk7CisJdHIyID0gZ2V0X2N5Y2xlcygpOworCisJdHNjMiA9IHRzY19yZWFkX3JlZnMoJnBtMiwgaHBldCA/ICZocGV0MiA6IE5VTEwpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJLyoKKwkgKiBQcmVzZXQgdGhlIHJlc3VsdCB3aXRoIHRoZSByYXcgYW5kIGluYWNjdXJhdGUgUElUCisJICogY2FsaWJyYXRpb24gdmFsdWUKKwkgKi8KKwlkZWx0YSA9ICh0cjIgLSB0cjEpOworCWRvX2RpdihkZWx0YSwgNTApOworCXRzY19raHpfdmFsID0gZGVsdGE7CisKKwkvKiBocGV0IG9yIHBtdGltZXIgYXZhaWxhYmxlID8gKi8KKwlpZiAoIWhwZXQgJiYgIXBtMSAmJiAhcG0yKSB7CisJCXByaW50ayhLRVJOX0lORk8gIlRTQyBjYWxpYnJhdGVkIGFnYWluc3QgUElUXG4iKTsKKwkJZ290byBvdXQ7CisJfQorCisJLyogQ2hlY2ssIHdoZXRoZXIgdGhlIHNhbXBsaW5nIHdhcyBkaXN0dXJiZWQgYnkgYW4gU01JICovCisJaWYgKHRzYzEgPT0gVUxMT05HX01BWCB8fCB0c2MyID09IFVMTE9OR19NQVgpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiVFNDIGNhbGlicmF0aW9uIGRpc3R1cmJlZCBieSBTTUksICIKKwkJCQkidXNpbmcgUElUIGNhbGlicmF0aW9uIHJlc3VsdFxuIik7CisJCWdvdG8gb3V0OworCX0KKworCXRzYzIgPSAodHNjMiAtIHRzYzEpICogMTAwMDAwMExMOworCisJaWYgKGhwZXQpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiVFNDIGNhbGlicmF0ZWQgYWdhaW5zdCBIUEVUXG4iKTsKKwkJaWYgKGhwZXQyIDwgaHBldDEpCisJCQlocGV0MiArPSAweDEwMDAwMDAwMFVMTDsKKwkJaHBldDIgLT0gaHBldDE7CisJCXRzYzEgPSAoKHU2NClocGV0MiAqIGhwZXRfcmVhZGwoSFBFVF9QRVJJT0QpKTsKKwkJZG9fZGl2KHRzYzEsIDEwMDAwMDApOworCX0gZWxzZSB7CisJCXByaW50ayhLRVJOX0lORk8gIlRTQyBjYWxpYnJhdGVkIGFnYWluc3QgUE1fVElNRVJcbiIpOworCQlpZiAocG0yIDwgcG0xKQorCQkJcG0yICs9ICh1NjQpQUNQSV9QTV9PVlJSVU47CisJCXBtMiAtPSBwbTE7CisJCXRzYzEgPSBwbTIgKiAxMDAwMDAwMDAwTEw7CisJCWRvX2Rpdih0c2MxLCBQTVRNUl9USUNLU19QRVJfU0VDKTsKKwl9CisKKwlkb19kaXYodHNjMiwgdHNjMSk7CisJdHNjX2toel92YWwgPSB0c2MyOworCitvdXQ6CisJcmV0dXJuIHRzY19raHpfdmFsOworfQorCisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisvKiBPbmx5IGNhbGxlZCBmcm9tIHRoZSBQb3dlcm5vdyBLNyBjcHUgZnJlcSBkcml2ZXIgKi8KK2ludCByZWNhbGlicmF0ZV9jcHVfa2h6KHZvaWQpCit7CisjaWZuZGVmIENPTkZJR19TTVAKKwl1bnNpZ25lZCBsb25nIGNwdV9raHpfb2xkID0gY3B1X2toejsKKworCWlmIChjcHVfaGFzX3RzYykgeworCQl0c2Nfa2h6ID0gY2FsaWJyYXRlX3RzYygpOworCQljcHVfa2h6ID0gdHNjX2toejsKKwkJY3B1X2RhdGEoMCkubG9vcHNfcGVyX2ppZmZ5ID0KKwkJCWNwdWZyZXFfc2NhbGUoY3B1X2RhdGEoMCkubG9vcHNfcGVyX2ppZmZ5LAorCQkJCQljcHVfa2h6X29sZCwgY3B1X2toeik7CisJCXJldHVybiAwOworCX0gZWxzZQorCQlyZXR1cm4gLUVOT0RFVjsKKyNlbHNlCisJcmV0dXJuIC1FTk9ERVY7CisjZW5kaWYKK30KKworRVhQT1JUX1NZTUJPTChyZWNhbGlicmF0ZV9jcHVfa2h6KTsKKworI2VuZGlmIC8qIENPTkZJR19YODZfMzIgKi8KKworLyogQWNjZWxlcmF0b3JzIGZvciBzY2hlZF9jbG9jaygpCisgKiBjb252ZXJ0IGZyb20gY3ljbGVzKDY0Yml0cykgPT4gbmFub3NlY29uZHMgKDY0Yml0cykKKyAqICBiYXNpYyBlcXVhdGlvbjoKKyAqICAgICAgICAgICAgICBucyA9IGN5Y2xlcyAvIChmcmVxIC8gbnNfcGVyX3NlYykKKyAqICAgICAgICAgICAgICBucyA9IGN5Y2xlcyAqIChuc19wZXJfc2VjIC8gZnJlcSkKKyAqICAgICAgICAgICAgICBucyA9IGN5Y2xlcyAqICgxMF45IC8gKGNwdV9raHogKiAxMF4zKSkKKyAqICAgICAgICAgICAgICBucyA9IGN5Y2xlcyAqICgxMF42IC8gY3B1X2toeikKKyAqCisgKiAgICAgIFRoZW4gd2UgdXNlIHNjYWxpbmcgbWF0aCAoc3VnZ2VzdGVkIGJ5IGdlb3JnZUBtdmlzdGEuY29tKSB0byBnZXQ6CisgKiAgICAgICAgICAgICAgbnMgPSBjeWNsZXMgKiAoMTBeNiAqIFNDIC8gY3B1X2toeikgLyBTQworICogICAgICAgICAgICAgIG5zID0gY3ljbGVzICogY3ljMm5zX3NjYWxlIC8gU0MKKyAqCisgKiAgICAgIEFuZCBzaW5jZSBTQyBpcyBhIGNvbnN0YW50IHBvd2VyIG9mIHR3bywgd2UgY2FuIGNvbnZlcnQgdGhlIGRpdgorICogIGludG8gYSBzaGlmdC4KKyAqCisgKiAgV2UgY2FuIHVzZSBraHogZGl2aXNvciBpbnN0ZWFkIG9mIG1oeiB0byBrZWVwIGEgYmV0dGVyIHByZWNpc2lvbiwgc2luY2UKKyAqICBjeWMybnNfc2NhbGUgaXMgbGltaXRlZCB0byAxMF42ICogMl4xMCwgd2hpY2ggZml0cyBpbiAzMiBiaXRzLgorICogIChtYXRoaWV1LmRlc25veWVyc0Bwb2x5bXRsLmNhKQorICoKKyAqICAgICAgICAgICAgICAgICAgICAgIC1qb2huc3R1bEB1cy5pYm0uY29tICJtYXRoIGlzIGhhcmQsIGxldHMgZ28gc2hvcHBpbmchIgorICovCisKK0RFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIGN5YzJucyk7CisKK3N0YXRpYyB2b2lkIHNldF9jeWMybnNfc2NhbGUodW5zaWduZWQgbG9uZyBjcHVfa2h6LCBpbnQgY3B1KQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyB0c2Nfbm93LCBuc19ub3c7CisJdW5zaWduZWQgbG9uZyBmbGFncywgKnNjYWxlOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCXNjaGVkX2Nsb2NrX2lkbGVfc2xlZXBfZXZlbnQoKTsKKworCXNjYWxlID0gJnBlcl9jcHUoY3ljMm5zLCBjcHUpOworCisJcmR0c2NsbCh0c2Nfbm93KTsKKwluc19ub3cgPSBfX2N5Y2xlc18yX25zKHRzY19ub3cpOworCisJaWYgKGNwdV9raHopCisJCSpzY2FsZSA9IChOU0VDX1BFUl9NU0VDIDw8IENZQzJOU19TQ0FMRV9GQUNUT1IpL2NwdV9raHo7CisKKwlzY2hlZF9jbG9ja19pZGxlX3dha2V1cF9ldmVudCgwKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKKyNpZmRlZiBDT05GSUdfQ1BVX0ZSRVEKKworLyogRnJlcXVlbmN5IHNjYWxpbmcgc3VwcG9ydC4gQWRqdXN0IHRoZSBUU0MgYmFzZWQgdGltZXIgd2hlbiB0aGUgY3B1IGZyZXF1ZW5jeQorICogY2hhbmdlcy4KKyAqCisgKiBSRUQtUEVOOiBPbiBTTVAgd2UgYXNzdW1lIGFsbCBDUFVzIHJ1biB3aXRoIHRoZSBzYW1lIGZyZXF1ZW5jeS4gIEl0J3MKKyAqIG5vdCB0aGF0IGltcG9ydGFudCBiZWNhdXNlIGN1cnJlbnQgT3B0ZXJvbiBzZXR1cHMgZG8gbm90IHN1cHBvcnQKKyAqIHNjYWxpbmcgb24gU01QIGFueXJvYWRzLgorICoKKyAqIFNob3VsZCBmaXggdXAgbGFzdF90c2MgdG9vLiBDdXJyZW50bHkgZ2V0dGltZW9mZGF5IGluIHRoZQorICogZmlyc3QgdGljayBhZnRlciB0aGUgY2hhbmdlIHdpbGwgYmUgc2xpZ2h0bHkgd3JvbmcuCisgKi8KKworc3RhdGljIHVuc2lnbmVkIGludCAgcmVmX2ZyZXE7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb29wc19wZXJfamlmZnlfcmVmOworc3RhdGljIHVuc2lnbmVkIGxvbmcgdHNjX2toel9yZWY7CisKK3N0YXRpYyBpbnQgdGltZV9jcHVmcmVxX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgdmFsLAorCQkJCXZvaWQgKmRhdGEpCit7CisJc3RydWN0IGNwdWZyZXFfZnJlcXMgKmZyZXEgPSBkYXRhOworCXVuc2lnbmVkIGxvbmcgKmxwaiwgZHVtbXk7CisKKwlpZiAoY3B1X2hhcygmY3B1X2RhdGEoZnJlcS0+Y3B1KSwgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKSkKKwkJcmV0dXJuIDA7CisKKwlscGogPSAmZHVtbXk7CisJaWYgKCEoZnJlcS0+ZmxhZ3MgJiBDUFVGUkVRX0NPTlNUX0xPT1BTKSkKKyNpZmRlZiBDT05GSUdfU01QCisJCWxwaiA9ICZjcHVfZGF0YShmcmVxLT5jcHUpLmxvb3BzX3Blcl9qaWZmeTsKKyNlbHNlCisJbHBqID0gJmJvb3RfY3B1X2RhdGEubG9vcHNfcGVyX2ppZmZ5OworI2VuZGlmCisKKwlpZiAoIXJlZl9mcmVxKSB7CisJCXJlZl9mcmVxID0gZnJlcS0+b2xkOworCQlsb29wc19wZXJfamlmZnlfcmVmID0gKmxwajsKKwkJdHNjX2toel9yZWYgPSB0c2Nfa2h6OworCX0KKwlpZiAoKHZhbCA9PSBDUFVGUkVRX1BSRUNIQU5HRSAgJiYgZnJlcS0+b2xkIDwgZnJlcS0+bmV3KSB8fAorCQkJKHZhbCA9PSBDUFVGUkVRX1BPU1RDSEFOR0UgJiYgZnJlcS0+b2xkID4gZnJlcS0+bmV3KSB8fAorCQkJKHZhbCA9PSBDUFVGUkVRX1JFU1VNRUNIQU5HRSkpIHsKKwkJKmxwaiA9IAljcHVmcmVxX3NjYWxlKGxvb3BzX3Blcl9qaWZmeV9yZWYsIHJlZl9mcmVxLCBmcmVxLT5uZXcpOworCisJCXRzY19raHogPSBjcHVmcmVxX3NjYWxlKHRzY19raHpfcmVmLCByZWZfZnJlcSwgZnJlcS0+bmV3KTsKKwkJaWYgKCEoZnJlcS0+ZmxhZ3MgJiBDUFVGUkVRX0NPTlNUX0xPT1BTKSkKKwkJCW1hcmtfdHNjX3Vuc3RhYmxlKCJjcHVmcmVxIGNoYW5nZXMiKTsKKwl9CisKKwlzZXRfY3ljMm5zX3NjYWxlKHRzY19raHpfcmVmLCBmcmVxLT5jcHUpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgdGltZV9jcHVmcmVxX25vdGlmaWVyX2Jsb2NrID0geworCS5ub3RpZmllcl9jYWxsICA9IHRpbWVfY3B1ZnJlcV9ub3RpZmllcgorfTsKKworc3RhdGljIGludCBfX2luaXQgY3B1ZnJlcV90c2Modm9pZCkKK3sKKwljcHVmcmVxX3JlZ2lzdGVyX25vdGlmaWVyKCZ0aW1lX2NwdWZyZXFfbm90aWZpZXJfYmxvY2ssCisJCQkJQ1BVRlJFUV9UUkFOU0lUSU9OX05PVElGSUVSKTsKKwlyZXR1cm4gMDsKK30KKworY29yZV9pbml0Y2FsbChjcHVmcmVxX3RzYyk7CisKKyNlbmRpZiAvKiBDT05GSUdfQ1BVX0ZSRVEgKi8KKworLyogY2xvY2tzb3VyY2UgY29kZSAqLworCitzdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGNsb2Nrc291cmNlX3RzYzsKKworLyoKKyAqIFdlIGNvbXBhcmUgdGhlIFRTQyB0byB0aGUgY3ljbGVfbGFzdCB2YWx1ZSBpbiB0aGUgY2xvY2tzb3VyY2UKKyAqIHN0cnVjdHVyZSB0byBhdm9pZCBhIG5hc3R5IHRpbWUtd2FycC4gVGhpcyBjYW4gYmUgb2JzZXJ2ZWQgaW4gYQorICogdmVyeSBzbWFsbCB3aW5kb3cgcmlnaHQgYWZ0ZXIgb25lIENQVSB1cGRhdGVkIGN5Y2xlX2xhc3QgdW5kZXIKKyAqIHh0aW1lL3ZzeXNjYWxsX2d0b2QgbG9jayBhbmQgdGhlIG90aGVyIENQVSByZWFkcyBhIFRTQyB2YWx1ZSB3aGljaAorICogaXMgc21hbGxlciB0aGFuIHRoZSBjeWNsZV9sYXN0IHJlZmVyZW5jZSB2YWx1ZSBkdWUgdG8gYSBUU0Mgd2hpY2gKKyAqIGlzIHNsaWdodHkgYmVoaW5kLiBUaGlzIGRlbHRhIGlzIG5vd2hlcmUgZWxzZSBvYnNlcnZhYmxlLCBidXQgaW4KKyAqIHRoYXQgY2FzZSBpdCByZXN1bHRzIGluIGEgZm9yd2FyZCB0aW1lIGp1bXAgaW4gdGhlIHJhbmdlIG9mIGhvdXJzCisgKiBkdWUgdG8gdGhlIHVuc2lnbmVkIGRlbHRhIGNhbGN1bGF0aW9uIG9mIHRoZSB0aW1lIGtlZXBpbmcgY29yZQorICogY29kZSwgd2hpY2ggaXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgd3JhcHBpbmcgY2xvY2tzb3VyY2VzIGxpa2UgcG0KKyAqIHRpbWVyLgorICovCitzdGF0aWMgY3ljbGVfdCByZWFkX3RzYyh2b2lkKQoreworCWN5Y2xlX3QgcmV0ID0gKGN5Y2xlX3QpZ2V0X2N5Y2xlcygpOworCisJcmV0dXJuIHJldCA+PSBjbG9ja3NvdXJjZV90c2MuY3ljbGVfbGFzdCA/CisJCXJldCA6IGNsb2Nrc291cmNlX3RzYy5jeWNsZV9sYXN0OworfQorCitzdGF0aWMgY3ljbGVfdCBfX3ZzeXNjYWxsX2ZuIHZyZWFkX3RzYyh2b2lkKQoreworCWN5Y2xlX3QgcmV0ID0gKGN5Y2xlX3QpdmdldF9jeWNsZXMoKTsKKworCXJldHVybiByZXQgPj0gX192c3lzY2FsbF9ndG9kX2RhdGEuY2xvY2suY3ljbGVfbGFzdCA/CisJCXJldCA6IF9fdnN5c2NhbGxfZ3RvZF9kYXRhLmNsb2NrLmN5Y2xlX2xhc3Q7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2UgY2xvY2tzb3VyY2VfdHNjID0geworCS5uYW1lICAgICAgICAgICAgICAgICAgID0gInRzYyIsCisJLnJhdGluZyAgICAgICAgICAgICAgICAgPSAzMDAsCisJLnJlYWQgICAgICAgICAgICAgICAgICAgPSByZWFkX3RzYywKKwkubWFzayAgICAgICAgICAgICAgICAgICA9IENMT0NLU09VUkNFX01BU0soNjQpLAorCS5zaGlmdCAgICAgICAgICAgICAgICAgID0gMjIsCisJLmZsYWdzICAgICAgICAgICAgICAgICAgPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUyB8CisJCQkJICBDTE9DS19TT1VSQ0VfTVVTVF9WRVJJRlksCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCS52cmVhZCAgICAgICAgICAgICAgICAgID0gdnJlYWRfdHNjLAorI2VuZGlmCit9OworCit2b2lkIG1hcmtfdHNjX3Vuc3RhYmxlKGNoYXIgKnJlYXNvbikKK3sKKwlpZiAoIXRzY191bnN0YWJsZSkgeworCQl0c2NfdW5zdGFibGUgPSAxOworCQlwcmludGsoIk1hcmtpbmcgVFNDIHVuc3RhYmxlIGR1ZSB0byAlc1xuIiwgcmVhc29uKTsKKwkJLyogQ2hhbmdlIG9ubHkgdGhlIHJhdGluZywgd2hlbiBub3QgcmVnaXN0ZXJlZCAqLworCQlpZiAoY2xvY2tzb3VyY2VfdHNjLm11bHQpCisJCQljbG9ja3NvdXJjZV9jaGFuZ2VfcmF0aW5nKCZjbG9ja3NvdXJjZV90c2MsIDApOworCQllbHNlCisJCQljbG9ja3NvdXJjZV90c2MucmF0aW5nID0gMDsKKwl9Cit9CisKK0VYUE9SVF9TWU1CT0xfR1BMKG1hcmtfdHNjX3Vuc3RhYmxlKTsKKworc3RhdGljIGludCBfX2luaXQgZG1pX21hcmtfdHNjX3Vuc3RhYmxlKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQoreworCXByaW50ayhLRVJOX05PVElDRSAiJXMgZGV0ZWN0ZWQ6IG1hcmtpbmcgVFNDIHVuc3RhYmxlLlxuIiwKKwkJCWQtPmlkZW50KTsKKwl0c2NfdW5zdGFibGUgPSAxOworCXJldHVybiAwOworfQorCisvKiBMaXN0IG9mIHN5c3RlbXMgdGhhdCBoYXZlIGtub3duIFRTQyBwcm9ibGVtcyAqLworc3RhdGljIHN0cnVjdCBkbWlfc3lzdGVtX2lkIF9faW5pdGRhdGEgYmFkX3RzY19kbWlfdGFibGVbXSA9IHsKKwl7CisJCS5jYWxsYmFjayA9IGRtaV9tYXJrX3RzY191bnN0YWJsZSwKKwkJLmlkZW50ID0gIklCTSBUaGlua3BhZCAzODBYRCIsCisJCS5tYXRjaGVzID0geworCQkJRE1JX01BVENIKERNSV9CT0FSRF9WRU5ET1IsICJJQk0iKSwKKwkJCURNSV9NQVRDSChETUlfQk9BUkRfTkFNRSwgIjI2MzVGQTAiKSwKKwkJfSwKKwl9LAorCXt9Cit9OworCisvKgorICogR2VvZGVfTFggLSB0aGUgT0xQQyBDUFUgaGFzIGEgcG9zc2libHkgYSB2ZXJ5IHJlbGlhYmxlIFRTQworICovCisjaWZkZWYgQ09ORklHX01HRU9ERV9MWAorLyogUlRTQyBjb3VudHMgZHVyaW5nIHN1c3BlbmQgKi8KKyNkZWZpbmUgUlRTQ19TVVNQIDB4MTAwCisKK3N0YXRpYyB2b2lkIF9faW5pdCBjaGVja19nZW9kZV90c2NfcmVsaWFibGUodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIHJlc19sb3csIHJlc19oaWdoOworCisJcmRtc3Jfc2FmZShNU1JfR0VPREVfQlVTQ09OVF9DT05GMCwgJnJlc19sb3csICZyZXNfaGlnaCk7CisJaWYgKHJlc19sb3cgJiBSVFNDX1NVU1ApCisJCWNsb2Nrc291cmNlX3RzYy5mbGFncyAmPSB+Q0xPQ0tfU09VUkNFX01VU1RfVkVSSUZZOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19nZW9kZV90c2NfcmVsaWFibGUodm9pZCkgeyB9CisjZW5kaWYKKworLyoKKyAqIE1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MgaWYgdGhlIFRTQyBpcyB0cnVzdHdvcnRoeSBhbmQgc3luY2hyb25pemVkCisgKiBvdmVyIGFsbCBDUFVzLgorICovCitfX2NwdWluaXQgaW50IHVuc3luY2hyb25pemVkX3RzYyh2b2lkKQoreworCWlmICghY3B1X2hhc190c2MgfHwgdHNjX3Vuc3RhYmxlKQorCQlyZXR1cm4gMTsKKworI2lmZGVmIENPTkZJR19TTVAKKwlpZiAoYXBpY19pc19jbHVzdGVyZWRfYm94KCkpCisJCXJldHVybiAxOworI2VuZGlmCisKKwlpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQykpCisJCXJldHVybiAwOworCS8qCisJICogSW50ZWwgc3lzdGVtcyBhcmUgbm9ybWFsbHkgYWxsIHN5bmNocm9uaXplZC4KKwkgKiBFeGNlcHRpb25zIG11c3QgbWFyayBUU0MgYXMgdW5zdGFibGU6CisJICovCisJaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciAhPSBYODZfVkVORE9SX0lOVEVMKSB7CisJCS8qIGFzc3VtZSBtdWx0aSBzb2NrZXQgc3lzdGVtcyBhcmUgbm90IHN5bmNocm9uaXplZDogKi8KKwkJaWYgKG51bV9wb3NzaWJsZV9jcHVzKCkgPiAxKQorCQkJdHNjX3Vuc3RhYmxlID0gMTsKKwl9CisKKwlyZXR1cm4gdHNjX3Vuc3RhYmxlOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF90c2NfY2xvY2tzb3VyY2Uodm9pZCkKK3sKKwljbG9ja3NvdXJjZV90c2MubXVsdCA9IGNsb2Nrc291cmNlX2toejJtdWx0KHRzY19raHosCisJCQljbG9ja3NvdXJjZV90c2Muc2hpZnQpOworCS8qIGxvd2VyIHRoZSByYXRpbmcgaWYgd2UgYWxyZWFkeSBrbm93IGl0cyB1bnN0YWJsZTogKi8KKwlpZiAoY2hlY2tfdHNjX3Vuc3RhYmxlKCkpIHsKKwkJY2xvY2tzb3VyY2VfdHNjLnJhdGluZyA9IDA7CisJCWNsb2Nrc291cmNlX3RzYy5mbGFncyAmPSB+Q0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVM7CisJfQorCWNsb2Nrc291cmNlX3JlZ2lzdGVyKCZjbG9ja3NvdXJjZV90c2MpOworfQorCit2b2lkIF9faW5pdCB0c2NfaW5pdCh2b2lkKQoreworCXU2NCBscGo7CisJaW50IGNwdTsKKworCWlmICghY3B1X2hhc190c2MpCisJCXJldHVybjsKKworCXRzY19raHogPSBjYWxpYnJhdGVfdHNjKCk7CisJY3B1X2toeiA9IHRzY19raHo7CisKKwlpZiAoIXRzY19raHopIHsKKwkJbWFya190c2NfdW5zdGFibGUoImNvdWxkIG5vdCBjYWxjdWxhdGUgVFNDIGtoeiIpOworCQlyZXR1cm47CisJfQorCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWlmIChjcHVfaGFzKCZib290X2NwdV9kYXRhLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpICYmCisJCQkoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EKSkKKwkJY3B1X2toeiA9IGNhbGlicmF0ZV9jcHUoKTsKKyNlbmRpZgorCisJbHBqID0gKCh1NjQpdHNjX2toeiAqIDEwMDApOworCWRvX2RpdihscGosIEhaKTsKKwlscGpfZmluZSA9IGxwajsKKworCXByaW50aygiRGV0ZWN0ZWQgJWx1LiUwM2x1IE1IeiBwcm9jZXNzb3IuXG4iLAorCQkJKHVuc2lnbmVkIGxvbmcpY3B1X2toeiAvIDEwMDAsCisJCQkodW5zaWduZWQgbG9uZyljcHVfa2h6ICUgMTAwMCk7CisKKwkvKgorCSAqIFNlY29uZGFyeSBDUFVzIGRvIG5vdCBydW4gdGhyb3VnaCB0c2NfaW5pdCgpLCBzbyBzZXQgdXAKKwkgKiBhbGwgdGhlIHNjYWxlIGZhY3RvcnMgZm9yIGFsbCBDUFVzLCBhc3N1bWluZyB0aGUgc2FtZQorCSAqIHNwZWVkIGFzIHRoZSBib290dXAgQ1BVLiAoY3B1ZnJlcSBub3RpZmllcnMgd2lsbCBmaXggdGhpcworCSAqIHVwIGlmIHRoZWlyIHNwZWVkIGRpdmVyZ2VzKQorCSAqLworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpCisJCXNldF9jeWMybnNfc2NhbGUoY3B1X2toeiwgY3B1KTsKKworCWlmICh0c2NfZGlzYWJsZWQgPiAwKQorCQlyZXR1cm47CisKKwkvKiBub3cgYWxsb3cgbmF0aXZlX3NjaGVkX2Nsb2NrKCkgdG8gdXNlIHJkdHNjICovCisJdHNjX2Rpc2FibGVkID0gMDsKKworCXVzZV90c2NfZGVsYXkoKTsKKwkvKiBDaGVjayBhbmQgaW5zdGFsbCB0aGUgVFNDIGNsb2Nrc291cmNlICovCisJZG1pX2NoZWNrX3N5c3RlbShiYWRfdHNjX2RtaV90YWJsZSk7CisKKwlpZiAodW5zeW5jaHJvbml6ZWRfdHNjKCkpCisJCW1hcmtfdHNjX3Vuc3RhYmxlKCJUU0NzIHVuc3luY2hyb25pemVkIik7CisKKwljaGVja19nZW9kZV90c2NfcmVsaWFibGUoKTsKKwlpbml0X3RzY19jbG9ja3NvdXJjZSgpOworfQorCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdHNjXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvdHNjXzMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1YjcwNjMuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL3RzY18zMi5jCisrKyAvZGV2L251bGwKQEAgLTEsNDUxICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+Ci0jaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+Ci0jaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgotI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZG1pLmg+Ci0jaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+Ci0KLSNpbmNsdWRlIDxhc20vZGVsYXkuaD4KLSNpbmNsdWRlIDxhc20vdHNjLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL3RpbWVyLmg+Ci0KLSNpbmNsdWRlICJtYWNoX3RpbWVyLmgiCi0KLS8qIG5hdGl2ZV9zY2hlZF9jbG9jaygpIGlzIGNhbGxlZCBiZWZvcmUgdHNjX2luaXQoKSwgc28KLSAgIHdlIG11c3Qgc3RhcnQgd2l0aCB0aGUgVFNDIHNvZnQgZGlzYWJsZWQgdG8gcHJldmVudAotICAgZXJyb25lb3VzIHJkdHNjIHVzYWdlIG9uICFjcHVfaGFzX3RzYyBwcm9jZXNzb3JzICovCi1zdGF0aWMgaW50IHRzY19kaXNhYmxlZCA9IC0xOwotCi0vKgotICogT24gc29tZSBzeXN0ZW1zIHRoZSBUU0MgZnJlcXVlbmN5IGRvZXMgbm90Ci0gKiBjaGFuZ2Ugd2l0aCB0aGUgY3B1IGZyZXF1ZW5jeS4gU28gd2UgbmVlZAotICogYW4gZXh0cmEgdmFsdWUgdG8gc3RvcmUgdGhlIFRTQyBmcmVxCi0gKi8KLXVuc2lnbmVkIGludCB0c2Nfa2h6OwotRVhQT1JUX1NZTUJPTF9HUEwodHNjX2toeik7Ci0KLSNpZmRlZiBDT05GSUdfWDg2X1RTQwotc3RhdGljIGludCBfX2luaXQgdHNjX3NldHVwKGNoYXIgKnN0cikKLXsKLQlwcmludGsoS0VSTl9XQVJOSU5HICJub3RzYzogS2VybmVsIGNvbXBpbGVkIHdpdGggQ09ORklHX1g4Nl9UU0MsICIKLQkgICAgICAgImNhbm5vdCBkaXNhYmxlIFRTQyBjb21wbGV0ZWx5LlxuIik7Ci0JdHNjX2Rpc2FibGVkID0gMTsKLQlyZXR1cm4gMTsKLX0KLSNlbHNlCi0vKgotICogZGlzYWJsZSBmbGFnIGZvciB0c2MuIFRha2VzIGVmZmVjdCBieSBjbGVhcmluZyB0aGUgVFNDIGNwdSBmbGFnCi0gKiBpbiBjcHUvY29tbW9uLmMKLSAqLwotc3RhdGljIGludCBfX2luaXQgdHNjX3NldHVwKGNoYXIgKnN0cikKLXsKLQlzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX1RTQyk7Ci0JcmV0dXJuIDE7Ci19Ci0jZW5kaWYKLQotX19zZXR1cCgibm90c2MiLCB0c2Nfc2V0dXApOwotCi0vKgotICogY29kZSB0byBtYXJrIGFuZCBjaGVjayBpZiB0aGUgVFNDIGlzIHVuc3RhYmxlCi0gKiBkdWUgdG8gY3B1ZnJlcSBvciBkdWUgdG8gdW5zeW5jZWQgVFNDcwotICovCi1zdGF0aWMgaW50IHRzY191bnN0YWJsZTsKLQotaW50IGNoZWNrX3RzY191bnN0YWJsZSh2b2lkKQotewotCXJldHVybiB0c2NfdW5zdGFibGU7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChjaGVja190c2NfdW5zdGFibGUpOwotCi0vKiBBY2NlbGVyYXRvcnMgZm9yIHNjaGVkX2Nsb2NrKCkKLSAqIGNvbnZlcnQgZnJvbSBjeWNsZXMoNjRiaXRzKSA9PiBuYW5vc2Vjb25kcyAoNjRiaXRzKQotICogIGJhc2ljIGVxdWF0aW9uOgotICoJCW5zID0gY3ljbGVzIC8gKGZyZXEgLyBuc19wZXJfc2VjKQotICoJCW5zID0gY3ljbGVzICogKG5zX3Blcl9zZWMgLyBmcmVxKQotICoJCW5zID0gY3ljbGVzICogKDEwXjkgLyAoY3B1X2toeiAqIDEwXjMpKQotICoJCW5zID0gY3ljbGVzICogKDEwXjYgLyBjcHVfa2h6KQotICoKLSAqCVRoZW4gd2UgdXNlIHNjYWxpbmcgbWF0aCAoc3VnZ2VzdGVkIGJ5IGdlb3JnZUBtdmlzdGEuY29tKSB0byBnZXQ6Ci0gKgkJbnMgPSBjeWNsZXMgKiAoMTBeNiAqIFNDIC8gY3B1X2toeikgLyBTQwotICoJCW5zID0gY3ljbGVzICogY3ljMm5zX3NjYWxlIC8gU0MKLSAqCi0gKglBbmQgc2luY2UgU0MgaXMgYSBjb25zdGFudCBwb3dlciBvZiB0d28sIHdlIGNhbiBjb252ZXJ0IHRoZSBkaXYKLSAqICBpbnRvIGEgc2hpZnQuCi0gKgotICogIFdlIGNhbiB1c2Uga2h6IGRpdmlzb3IgaW5zdGVhZCBvZiBtaHogdG8ga2VlcCBhIGJldHRlciBwcmVjaXNpb24sIHNpbmNlCi0gKiAgY3ljMm5zX3NjYWxlIGlzIGxpbWl0ZWQgdG8gMTBeNiAqIDJeMTAsIHdoaWNoIGZpdHMgaW4gMzIgYml0cy4KLSAqICAobWF0aGlldS5kZXNub3llcnNAcG9seW10bC5jYSkKLSAqCi0gKgkJCS1qb2huc3R1bEB1cy5pYm0uY29tICJtYXRoIGlzIGhhcmQsIGxldHMgZ28gc2hvcHBpbmchIgotICovCi0KLURFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIGN5YzJucyk7Ci0KLXN0YXRpYyB2b2lkIHNldF9jeWMybnNfc2NhbGUodW5zaWduZWQgbG9uZyBjcHVfa2h6LCBpbnQgY3B1KQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyB0c2Nfbm93LCBuc19ub3c7Ci0JdW5zaWduZWQgbG9uZyBmbGFncywgKnNjYWxlOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCXNjaGVkX2Nsb2NrX2lkbGVfc2xlZXBfZXZlbnQoKTsKLQotCXNjYWxlID0gJnBlcl9jcHUoY3ljMm5zLCBjcHUpOwotCi0JcmR0c2NsbCh0c2Nfbm93KTsKLQluc19ub3cgPSBfX2N5Y2xlc18yX25zKHRzY19ub3cpOwotCi0JaWYgKGNwdV9raHopCi0JCSpzY2FsZSA9IChOU0VDX1BFUl9NU0VDIDw8IENZQzJOU19TQ0FMRV9GQUNUT1IpL2NwdV9raHo7Ci0KLQkvKgotCSAqIFN0YXJ0IHNtb290aGx5IHdpdGggdGhlIG5ldyBmcmVxdWVuY3k6Ci0JICovCi0Jc2NoZWRfY2xvY2tfaWRsZV93YWtldXBfZXZlbnQoMCk7Ci0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotfQotCi0vKgotICogU2NoZWR1bGVyIGNsb2NrIC0gcmV0dXJucyBjdXJyZW50IHRpbWUgaW4gbmFub3NlYyB1bml0cy4KLSAqLwotdW5zaWduZWQgbG9uZyBsb25nIG5hdGl2ZV9zY2hlZF9jbG9jayh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyB0aGlzX29mZnNldDsKLQotCS8qCi0JICogRmFsbCBiYWNrIHRvIGppZmZpZXMgaWYgdGhlcmUncyBubyBUU0MgYXZhaWxhYmxlOgotCSAqICggQnV0IG5vdGUgdGhhdCB3ZSBzdGlsbCB1c2UgaXQgaWYgdGhlIFRTQyBpcyBtYXJrZWQKLQkgKiAgIHVuc3RhYmxlLiBXZSBkbyB0aGlzIGJlY2F1c2UgdW5saWtlIFRpbWUgT2YgRGF5LAotCSAqICAgdGhlIHNjaGVkdWxlciBjbG9jayB0b2xlcmF0ZXMgc21hbGwgZXJyb3JzIGFuZCBpdCdzCi0JICogICB2ZXJ5IGltcG9ydGFudCBmb3IgaXQgdG8gYmUgYXMgZmFzdCBhcyB0aGUgcGxhdGZvcm0KLQkgKiAgIGNhbiBhY2hpdmUgaXQuICkKLQkgKi8KLQlpZiAodW5saWtlbHkodHNjX2Rpc2FibGVkKSkKLQkJLyogTm8gbG9ja2luZyBidXQgYSByYXJlIHdyb25nIHZhbHVlIGlzIG5vdCBhIGJpZyBkZWFsOiAqLwotCQlyZXR1cm4gKGppZmZpZXNfNjQgLSBJTklUSUFMX0pJRkZJRVMpICogKDEwMDAwMDAwMDAgLyBIWik7Ci0KLQkvKiByZWFkIHRoZSBUaW1lIFN0YW1wIENvdW50ZXI6ICovCi0JcmR0c2NsbCh0aGlzX29mZnNldCk7Ci0KLQkvKiByZXR1cm4gdGhlIHZhbHVlIGluIG5zICovCi0JcmV0dXJuIGN5Y2xlc18yX25zKHRoaXNfb2Zmc2V0KTsKLX0KLQotLyogV2UgbmVlZCB0byBkZWZpbmUgYSByZWFsIGZ1bmN0aW9uIGZvciBzY2hlZF9jbG9jaywgdG8gb3ZlcnJpZGUgdGhlCi0gICB3ZWFrIGRlZmF1bHQgdmVyc2lvbiAqLwotI2lmZGVmIENPTkZJR19QQVJBVklSVAotdW5zaWduZWQgbG9uZyBsb25nIHNjaGVkX2Nsb2NrKHZvaWQpCi17Ci0JcmV0dXJuIHBhcmF2aXJ0X3NjaGVkX2Nsb2NrKCk7Ci19Ci0jZWxzZQotdW5zaWduZWQgbG9uZyBsb25nIHNjaGVkX2Nsb2NrKHZvaWQpCi0JX19hdHRyaWJ1dGVfXygoYWxpYXMoIm5hdGl2ZV9zY2hlZF9jbG9jayIpKSk7Ci0jZW5kaWYKLQotdW5zaWduZWQgbG9uZyBuYXRpdmVfY2FsY3VsYXRlX2NwdV9raHoodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQsIGVuZDsKLQl1bnNpZ25lZCBsb25nIGNvdW50OwotCXU2NCBkZWx0YTY0ID0gKHU2NClVTExPTkdfTUFYOwotCWludCBpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0KLQkvKiBydW4gMyB0aW1lcyB0byBlbnN1cmUgdGhlIGNhY2hlIGlzIHdhcm0gYW5kIHRvIGdldCBhbiBhY2N1cmF0ZSByZWFkaW5nICovCi0JZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewotCQltYWNoX3ByZXBhcmVfY291bnRlcigpOwotCQlyZHRzY2xsKHN0YXJ0KTsKLQkJbWFjaF9jb3VudHVwKCZjb3VudCk7Ci0JCXJkdHNjbGwoZW5kKTsKLQotCQkvKgotCQkgKiBFcnJvcjogRUNUQ05FVkVSU0VUCi0JCSAqIFRoZSBDVEMgd2Fzbid0IHJlbGlhYmxlOiB3ZSBnb3QgYSBoaXQgb24gdGhlIHZlcnkgZmlyc3QgcmVhZCwKLQkJICogb3IgdGhlIENQVSB3YXMgc28gZmFzdC9zbG93IHRoYXQgdGhlIHF1b3RpZW50IHdvdWxkbid0IGZpdCBpbgotCQkgKiAzMiBiaXRzLi4KLQkJICovCi0JCWlmIChjb3VudCA8PSAxKQotCQkJY29udGludWU7Ci0KLQkJLyogY3B1IGZyZXEgdG9vIHNsb3c6ICovCi0JCWlmICgoZW5kIC0gc3RhcnQpIDw9IENBTElCUkFURV9USU1FX01TRUMpCi0JCQljb250aW51ZTsKLQotCQkvKgotCQkgKiBXZSB3YW50IHRoZSBtaW5pbXVtIHRpbWUgb2YgYWxsIHJ1bnMgaW4gY2FzZSBvbmUgb2YgdGhlbQotCQkgKiBpcyBpbmFjY3VyYXRlIGR1ZSB0byBTTUkgb3Igb3RoZXIgZGVsYXkKLQkJICovCi0JCWRlbHRhNjQgPSBtaW4oZGVsdGE2NCwgKGVuZCAtIHN0YXJ0KSk7Ci0JfQotCi0JLyogY3B1IGZyZXEgdG9vIGZhc3QgKG9yIGV2ZXJ5IHJ1biB3YXMgYmFkKTogKi8KLQlpZiAoZGVsdGE2NCA+ICgxVUxMPDwzMikpCi0JCWdvdG8gZXJyOwotCi0JZGVsdGE2NCArPSBDQUxJQlJBVEVfVElNRV9NU0VDLzI7IC8qIHJvdW5kIGZvciBkb19kaXYgKi8KLQlkb19kaXYoZGVsdGE2NCxDQUxJQlJBVEVfVElNRV9NU0VDKTsKLQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpZGVsdGE2NDsKLWVycjoKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCByZWNhbGlicmF0ZV9jcHVfa2h6KHZvaWQpCi17Ci0jaWZuZGVmIENPTkZJR19TTVAKLQl1bnNpZ25lZCBsb25nIGNwdV9raHpfb2xkID0gY3B1X2toejsKLQotCWlmIChjcHVfaGFzX3RzYykgewotCQljcHVfa2h6ID0gY2FsY3VsYXRlX2NwdV9raHooKTsKLQkJdHNjX2toeiA9IGNwdV9raHo7Ci0JCWNwdV9kYXRhKDApLmxvb3BzX3Blcl9qaWZmeSA9Ci0JCQljcHVmcmVxX3NjYWxlKGNwdV9kYXRhKDApLmxvb3BzX3Blcl9qaWZmeSwKLQkJCQkJY3B1X2toel9vbGQsIGNwdV9raHopOwotCQlyZXR1cm4gMDsKLQl9IGVsc2UKLQkJcmV0dXJuIC1FTk9ERVY7Ci0jZWxzZQotCXJldHVybiAtRU5PREVWOwotI2VuZGlmCi19Ci0KLUVYUE9SVF9TWU1CT0wocmVjYWxpYnJhdGVfY3B1X2toeik7Ci0KLSNpZmRlZiBDT05GSUdfQ1BVX0ZSRVEKLQotLyoKLSAqIGlmIHRoZSBDUFUgZnJlcXVlbmN5IGlzIHNjYWxlZCwgVFNDLWJhc2VkIGRlbGF5cyB3aWxsIG5lZWQgYSBkaWZmZXJlbnQKLSAqIGxvb3BzX3Blcl9qaWZmeSB2YWx1ZSB0byBmdW5jdGlvbiBwcm9wZXJseS4KLSAqLwotc3RhdGljIHVuc2lnbmVkIGludCByZWZfZnJlcTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvb3BzX3Blcl9qaWZmeV9yZWY7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBjcHVfa2h6X3JlZjsKLQotc3RhdGljIGludAotdGltZV9jcHVmcmVxX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lkICpkYXRhKQotewotCXN0cnVjdCBjcHVmcmVxX2ZyZXFzICpmcmVxID0gZGF0YTsKLQotCWlmICghcmVmX2ZyZXEpIHsKLQkJaWYgKCFmcmVxLT5vbGQpewotCQkJcmVmX2ZyZXEgPSBmcmVxLT5uZXc7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlyZWZfZnJlcSA9IGZyZXEtPm9sZDsKLQkJbG9vcHNfcGVyX2ppZmZ5X3JlZiA9IGNwdV9kYXRhKGZyZXEtPmNwdSkubG9vcHNfcGVyX2ppZmZ5OwotCQljcHVfa2h6X3JlZiA9IGNwdV9raHo7Ci0JfQotCi0JaWYgKCh2YWwgPT0gQ1BVRlJFUV9QUkVDSEFOR0UgICYmIGZyZXEtPm9sZCA8IGZyZXEtPm5ldykgfHwKLQkgICAgKHZhbCA9PSBDUFVGUkVRX1BPU1RDSEFOR0UgJiYgZnJlcS0+b2xkID4gZnJlcS0+bmV3KSB8fAotCSAgICAodmFsID09IENQVUZSRVFfUkVTVU1FQ0hBTkdFKSkgewotCQlpZiAoIShmcmVxLT5mbGFncyAmIENQVUZSRVFfQ09OU1RfTE9PUFMpKQotCQkJY3B1X2RhdGEoZnJlcS0+Y3B1KS5sb29wc19wZXJfamlmZnkgPQotCQkJCWNwdWZyZXFfc2NhbGUobG9vcHNfcGVyX2ppZmZ5X3JlZiwKLQkJCQkJCXJlZl9mcmVxLCBmcmVxLT5uZXcpOwotCi0JCWlmIChjcHVfa2h6KSB7Ci0KLQkJCWlmIChudW1fb25saW5lX2NwdXMoKSA9PSAxKQotCQkJCWNwdV9raHogPSBjcHVmcmVxX3NjYWxlKGNwdV9raHpfcmVmLAotCQkJCQkJcmVmX2ZyZXEsIGZyZXEtPm5ldyk7Ci0JCQlpZiAoIShmcmVxLT5mbGFncyAmIENQVUZSRVFfQ09OU1RfTE9PUFMpKSB7Ci0JCQkJdHNjX2toeiA9IGNwdV9raHo7Ci0JCQkJc2V0X2N5YzJuc19zY2FsZShjcHVfa2h6LCBmcmVxLT5jcHUpOwotCQkJCS8qCi0JCQkJICogVFNDIGJhc2VkIHNjaGVkX2Nsb2NrIHR1cm5zCi0JCQkJICogdG8ganVuayB3LyBjcHVmcmVxCi0JCQkJICovCi0JCQkJbWFya190c2NfdW5zdGFibGUoImNwdWZyZXEgY2hhbmdlcyIpOwotCQkJfQotCQl9Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgdGltZV9jcHVmcmVxX25vdGlmaWVyX2Jsb2NrID0gewotCS5ub3RpZmllcl9jYWxsCT0gdGltZV9jcHVmcmVxX25vdGlmaWVyCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBjcHVmcmVxX3RzYyh2b2lkKQotewotCXJldHVybiBjcHVmcmVxX3JlZ2lzdGVyX25vdGlmaWVyKCZ0aW1lX2NwdWZyZXFfbm90aWZpZXJfYmxvY2ssCi0JCQkJCSBDUFVGUkVRX1RSQU5TSVRJT05fTk9USUZJRVIpOwotfQotY29yZV9pbml0Y2FsbChjcHVmcmVxX3RzYyk7Ci0KLSNlbmRpZgotCi0vKiBjbG9jayBzb3VyY2UgY29kZSAqLwotCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBjdXJyZW50X3RzY19raHo7Ci1zdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGNsb2Nrc291cmNlX3RzYzsKLQotLyoKLSAqIFdlIGNvbXBhcmUgdGhlIFRTQyB0byB0aGUgY3ljbGVfbGFzdCB2YWx1ZSBpbiB0aGUgY2xvY2tzb3VyY2UKLSAqIHN0cnVjdHVyZSB0byBhdm9pZCBhIG5hc3R5IHRpbWUtd2FycCBpc3N1ZS4gVGhpcyBjYW4gYmUgb2JzZXJ2ZWQgaW4KLSAqIGEgdmVyeSBzbWFsbCB3aW5kb3cgcmlnaHQgYWZ0ZXIgb25lIENQVSB1cGRhdGVkIGN5Y2xlX2xhc3QgdW5kZXIKLSAqIHh0aW1lIGxvY2sgYW5kIHRoZSBvdGhlciBDUFUgcmVhZHMgYSBUU0MgdmFsdWUgd2hpY2ggaXMgc21hbGxlcgotICogdGhhbiB0aGUgY3ljbGVfbGFzdCByZWZlcmVuY2UgdmFsdWUgZHVlIHRvIGEgVFNDIHdoaWNoIGlzIHNsaWdodHkKLSAqIGJlaGluZC4gVGhpcyBkZWx0YSBpcyBub3doZXJlIGVsc2Ugb2JzZXJ2YWJsZSwgYnV0IGluIHRoYXQgY2FzZSBpdAotICogcmVzdWx0cyBpbiBhIGZvcndhcmQgdGltZSBqdW1wIGluIHRoZSByYW5nZSBvZiBob3VycyBkdWUgdG8gdGhlCi0gKiB1bnNpZ25lZCBkZWx0YSBjYWxjdWxhdGlvbiBvZiB0aGUgdGltZSBrZWVwaW5nIGNvcmUgY29kZSwgd2hpY2ggaXMKLSAqIG5lY2Vzc2FyeSB0byBzdXBwb3J0IHdyYXBwaW5nIGNsb2Nrc291cmNlcyBsaWtlIHBtIHRpbWVyLgotICovCi1zdGF0aWMgY3ljbGVfdCByZWFkX3RzYyh2b2lkKQotewotCWN5Y2xlX3QgcmV0OwotCi0JcmR0c2NsbChyZXQpOwotCi0JcmV0dXJuIHJldCA+PSBjbG9ja3NvdXJjZV90c2MuY3ljbGVfbGFzdCA/Ci0JCXJldCA6IGNsb2Nrc291cmNlX3RzYy5jeWNsZV9sYXN0OwotfQotCi1zdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGNsb2Nrc291cmNlX3RzYyA9IHsKLQkubmFtZQkJCT0gInRzYyIsCi0JLnJhdGluZwkJCT0gMzAwLAotCS5yZWFkCQkJPSByZWFkX3RzYywKLQkubWFzawkJCT0gQ0xPQ0tTT1VSQ0VfTUFTSyg2NCksCi0JLm11bHQJCQk9IDAsIC8qIHRvIGJlIHNldCAqLwotCS5zaGlmdAkJCT0gMjIsCi0JLmZsYWdzCQkJPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUyB8Ci0JCQkJICBDTE9DS19TT1VSQ0VfTVVTVF9WRVJJRlksCi19OwotCi12b2lkIG1hcmtfdHNjX3Vuc3RhYmxlKGNoYXIgKnJlYXNvbikKLXsKLQlpZiAoIXRzY191bnN0YWJsZSkgewotCQl0c2NfdW5zdGFibGUgPSAxOwotCQlwcmludGsoIk1hcmtpbmcgVFNDIHVuc3RhYmxlIGR1ZSB0bzogJXMuXG4iLCByZWFzb24pOwotCQkvKiBDYW4gYmUgY2FsbGVkIGJlZm9yZSByZWdpc3RyYXRpb24gKi8KLQkJaWYgKGNsb2Nrc291cmNlX3RzYy5tdWx0KQotCQkJY2xvY2tzb3VyY2VfY2hhbmdlX3JhdGluZygmY2xvY2tzb3VyY2VfdHNjLCAwKTsKLQkJZWxzZQotCQkJY2xvY2tzb3VyY2VfdHNjLnJhdGluZyA9IDA7Ci0JfQotfQotRVhQT1JUX1NZTUJPTF9HUEwobWFya190c2NfdW5zdGFibGUpOwotCi1zdGF0aWMgaW50IF9faW5pdCBkbWlfbWFya190c2NfdW5zdGFibGUoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmQpCi17Ci0JcHJpbnRrKEtFUk5fTk9USUNFICIlcyBkZXRlY3RlZDogbWFya2luZyBUU0MgdW5zdGFibGUuXG4iLAotCSAgICAgICBkLT5pZGVudCk7Ci0JdHNjX3Vuc3RhYmxlID0gMTsKLQlyZXR1cm4gMDsKLX0KLQotLyogTGlzdCBvZiBzeXN0ZW1zIHRoYXQgaGF2ZSBrbm93biBUU0MgcHJvYmxlbXMgKi8KLXN0YXRpYyBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBfX2luaXRkYXRhIGJhZF90c2NfZG1pX3RhYmxlW10gPSB7Ci0JewotCSAuY2FsbGJhY2sgPSBkbWlfbWFya190c2NfdW5zdGFibGUsCi0JIC5pZGVudCA9ICJJQk0gVGhpbmtwYWQgMzgwWEQiLAotCSAubWF0Y2hlcyA9IHsKLQkJICAgICBETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwgIklCTSIpLAotCQkgICAgIERNSV9NQVRDSChETUlfQk9BUkRfTkFNRSwgIjI2MzVGQTAiKSwKLQkJICAgICB9LAotCSB9LAotCSB7fQotfTsKLQotLyoKLSAqIE1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MgaWYgdGhlIFRTQyBpcyB0cnVzdHdvcnRoeSBhbmQgc3luY2hyb25pemVkCi0gKiBvdmVyIGFsbCBDUFVzLgotICovCi1fX2NwdWluaXQgaW50IHVuc3luY2hyb25pemVkX3RzYyh2b2lkKQotewotCWlmICghY3B1X2hhc190c2MgfHwgdHNjX3Vuc3RhYmxlKQotCQlyZXR1cm4gMTsKLQotCS8qIEFueXRoaW5nIHdpdGggY29uc3RhbnQgVFNDIHNob3VsZCBiZSBzeW5jaHJvbml6ZWQgKi8KLQlpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQykpCi0JCXJldHVybiAwOwotCi0JLyoKLQkgKiBJbnRlbCBzeXN0ZW1zIGFyZSBub3JtYWxseSBhbGwgc3luY2hyb25pemVkLgotCSAqIEV4Y2VwdGlvbnMgbXVzdCBtYXJrIFRTQyBhcyB1bnN0YWJsZToKLQkgKi8KLQlpZiAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICE9IFg4Nl9WRU5ET1JfSU5URUwpIHsKLQkJLyogYXNzdW1lIG11bHRpIHNvY2tldCBzeXN0ZW1zIGFyZSBub3Qgc3luY2hyb25pemVkOiAqLwotCQlpZiAobnVtX3Bvc3NpYmxlX2NwdXMoKSA+IDEpCi0JCQl0c2NfdW5zdGFibGUgPSAxOwotCX0KLQlyZXR1cm4gdHNjX3Vuc3RhYmxlOwotfQotCi0vKgotICogR2VvZGVfTFggLSB0aGUgT0xQQyBDUFUgaGFzIGEgcG9zc2libHkgYSB2ZXJ5IHJlbGlhYmxlIFRTQwotICovCi0jaWZkZWYgQ09ORklHX01HRU9ERV9MWAotLyogUlRTQyBjb3VudHMgZHVyaW5nIHN1c3BlbmQgKi8KLSNkZWZpbmUgUlRTQ19TVVNQIDB4MTAwCi0KLXN0YXRpYyB2b2lkIF9faW5pdCBjaGVja19nZW9kZV90c2NfcmVsaWFibGUodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIHJlc19sb3csIHJlc19oaWdoOwotCi0JcmRtc3Jfc2FmZShNU1JfR0VPREVfQlVTQ09OVF9DT05GMCwgJnJlc19sb3csICZyZXNfaGlnaCk7Ci0JaWYgKHJlc19sb3cgJiBSVFNDX1NVU1ApCi0JCWNsb2Nrc291cmNlX3RzYy5mbGFncyAmPSB+Q0xPQ0tfU09VUkNFX01VU1RfVkVSSUZZOwotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19nZW9kZV90c2NfcmVsaWFibGUodm9pZCkgeyB9Ci0jZW5kaWYKLQotCi12b2lkIF9faW5pdCB0c2NfaW5pdCh2b2lkKQotewotCWludCBjcHU7Ci0KLQlpZiAoIWNwdV9oYXNfdHNjIHx8IHRzY19kaXNhYmxlZCA+IDApCi0JCXJldHVybjsKLQotCWNwdV9raHogPSBjYWxjdWxhdGVfY3B1X2toeigpOwotCXRzY19raHogPSBjcHVfa2h6OwotCi0JaWYgKCFjcHVfa2h6KSB7Ci0JCW1hcmtfdHNjX3Vuc3RhYmxlKCJjb3VsZCBub3QgY2FsY3VsYXRlIFRTQyBraHoiKTsKLQkJcmV0dXJuOwotCX0KLQotCS8qIG5vdyBhbGxvdyBuYXRpdmVfc2NoZWRfY2xvY2soKSB0byB1c2UgcmR0c2MgKi8KLQl0c2NfZGlzYWJsZWQgPSAwOwotCi0JcHJpbnRrKCJEZXRlY3RlZCAlbHUuJTAzbHUgTUh6IHByb2Nlc3Nvci5cbiIsCi0JCQkJKHVuc2lnbmVkIGxvbmcpY3B1X2toeiAvIDEwMDAsCi0JCQkJKHVuc2lnbmVkIGxvbmcpY3B1X2toeiAlIDEwMDApOwotCi0JLyoKLQkgKiBTZWNvbmRhcnkgQ1BVcyBkbyBub3QgcnVuIHRocm91Z2ggdHNjX2luaXQoKSwgc28gc2V0IHVwCi0JICogYWxsIHRoZSBzY2FsZSBmYWN0b3JzIGZvciBhbGwgQ1BVcywgYXNzdW1pbmcgdGhlIHNhbWUKLQkgKiBzcGVlZCBhcyB0aGUgYm9vdHVwIENQVS4gKGNwdWZyZXEgbm90aWZpZXJzIHdpbGwgZml4IHRoaXMKLQkgKiB1cCBpZiB0aGVpciBzcGVlZCBkaXZlcmdlcykKLQkgKi8KLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KQotCQlzZXRfY3ljMm5zX3NjYWxlKGNwdV9raHosIGNwdSk7Ci0KLQl1c2VfdHNjX2RlbGF5KCk7Ci0KLQkvKiBDaGVjayBhbmQgaW5zdGFsbCB0aGUgVFNDIGNsb2Nrc291cmNlICovCi0JZG1pX2NoZWNrX3N5c3RlbShiYWRfdHNjX2RtaV90YWJsZSk7Ci0KLQl1bnN5bmNocm9uaXplZF90c2MoKTsKLQljaGVja19nZW9kZV90c2NfcmVsaWFibGUoKTsKLQljdXJyZW50X3RzY19raHogPSB0c2Nfa2h6OwotCWNsb2Nrc291cmNlX3RzYy5tdWx0ID0gY2xvY2tzb3VyY2Vfa2h6Mm11bHQoY3VycmVudF90c2Nfa2h6LAotCQkJCQkJCWNsb2Nrc291cmNlX3RzYy5zaGlmdCk7Ci0JLyogbG93ZXIgdGhlIHJhdGluZyBpZiB3ZSBhbHJlYWR5IGtub3cgaXRzIHVuc3RhYmxlOiAqLwotCWlmIChjaGVja190c2NfdW5zdGFibGUoKSkgewotCQljbG9ja3NvdXJjZV90c2MucmF0aW5nID0gMDsKLQkJY2xvY2tzb3VyY2VfdHNjLmZsYWdzICY9IH5DTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUzsKLQl9Ci0JY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX3RzYyk7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdHNjXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdHNjXzY0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3ODRiODAuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL3RzY182NC5jCisrKyAvZGV2L251bGwKQEAgLTEsMzU3ICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9jbG9ja3NvdXJjZS5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KLSNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Ci0jaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgotI2luY2x1ZGUgPGxpbnV4L2FjcGlfcG10bXIuaD4KLQotI2luY2x1ZGUgPGFzbS9ocGV0Lmg+Ci0jaW5jbHVkZSA8YXNtL3RpbWV4Lmg+Ci0jaW5jbHVkZSA8YXNtL3RpbWVyLmg+Ci0jaW5jbHVkZSA8YXNtL3ZndG9kLmg+Ci0KLXN0YXRpYyBpbnQgbm90c2MgX19pbml0ZGF0YSA9IDA7Ci0KLXVuc2lnbmVkIGludCBjcHVfa2h6OwkJLyogVFNDIGNsb2NrcyAvIHVzZWMsIG5vdCB1c2VkIGhlcmUgKi8KLUVYUE9SVF9TWU1CT0woY3B1X2toeik7Ci11bnNpZ25lZCBpbnQgdHNjX2toejsKLUVYUE9SVF9TWU1CT0wodHNjX2toeik7Ci0KLS8qIEFjY2VsZXJhdG9ycyBmb3Igc2NoZWRfY2xvY2soKQotICogY29udmVydCBmcm9tIGN5Y2xlcyg2NGJpdHMpID0+IG5hbm9zZWNvbmRzICg2NGJpdHMpCi0gKiAgYmFzaWMgZXF1YXRpb246Ci0gKgkJbnMgPSBjeWNsZXMgLyAoZnJlcSAvIG5zX3Blcl9zZWMpCi0gKgkJbnMgPSBjeWNsZXMgKiAobnNfcGVyX3NlYyAvIGZyZXEpCi0gKgkJbnMgPSBjeWNsZXMgKiAoMTBeOSAvIChjcHVfa2h6ICogMTBeMykpCi0gKgkJbnMgPSBjeWNsZXMgKiAoMTBeNiAvIGNwdV9raHopCi0gKgotICoJVGhlbiB3ZSB1c2Ugc2NhbGluZyBtYXRoIChzdWdnZXN0ZWQgYnkgZ2VvcmdlQG12aXN0YS5jb20pIHRvIGdldDoKLSAqCQlucyA9IGN5Y2xlcyAqICgxMF42ICogU0MgLyBjcHVfa2h6KSAvIFNDCi0gKgkJbnMgPSBjeWNsZXMgKiBjeWMybnNfc2NhbGUgLyBTQwotICoKLSAqCUFuZCBzaW5jZSBTQyBpcyBhIGNvbnN0YW50IHBvd2VyIG9mIHR3bywgd2UgY2FuIGNvbnZlcnQgdGhlIGRpdgotICogIGludG8gYSBzaGlmdC4KLSAqCi0gKiAgV2UgY2FuIHVzZSBraHogZGl2aXNvciBpbnN0ZWFkIG9mIG1oeiB0byBrZWVwIGEgYmV0dGVyIHByZWNpc2lvbiwgc2luY2UKLSAqICBjeWMybnNfc2NhbGUgaXMgbGltaXRlZCB0byAxMF42ICogMl4xMCwgd2hpY2ggZml0cyBpbiAzMiBiaXRzLgotICogIChtYXRoaWV1LmRlc25veWVyc0Bwb2x5bXRsLmNhKQotICoKLSAqCQkJLWpvaG5zdHVsQHVzLmlibS5jb20gIm1hdGggaXMgaGFyZCwgbGV0cyBnbyBzaG9wcGluZyEiCi0gKi8KLURFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIGN5YzJucyk7Ci0KLXN0YXRpYyB2b2lkIHNldF9jeWMybnNfc2NhbGUodW5zaWduZWQgbG9uZyBjcHVfa2h6LCBpbnQgY3B1KQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyB0c2Nfbm93LCBuc19ub3c7Ci0JdW5zaWduZWQgbG9uZyBmbGFncywgKnNjYWxlOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCXNjaGVkX2Nsb2NrX2lkbGVfc2xlZXBfZXZlbnQoKTsKLQotCXNjYWxlID0gJnBlcl9jcHUoY3ljMm5zLCBjcHUpOwotCi0JcmR0c2NsbCh0c2Nfbm93KTsKLQluc19ub3cgPSBfX2N5Y2xlc18yX25zKHRzY19ub3cpOwotCi0JaWYgKGNwdV9raHopCi0JCSpzY2FsZSA9IChOU0VDX1BFUl9NU0VDIDw8IENZQzJOU19TQ0FMRV9GQUNUT1IpL2NwdV9raHo7Ci0KLQlzY2hlZF9jbG9ja19pZGxlX3dha2V1cF9ldmVudCgwKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci19Ci0KLXVuc2lnbmVkIGxvbmcgbG9uZyBuYXRpdmVfc2NoZWRfY2xvY2sodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGEgPSAwOwotCi0JLyogQ291bGQgZG8gQ1BVIGNvcmUgc3luYyBoZXJlLiBPcHRlcm9uIGNhbiBleGVjdXRlIHJkdHNjIHNwZWN1bGF0aXZlbHksCi0JICogd2hpY2ggbWVhbnMgaXQgaXMgbm90IGNvbXBsZXRlbHkgZXhhY3QgYW5kIG1heSBub3QgYmUgbW9ub3Rvbm91cwotCSAqIGJldHdlZW4gQ1BVcy4gQnV0IHRoZSBlcnJvcnMgc2hvdWxkIGJlIHRvbyBzbWFsbCB0byBtYXR0ZXIgZm9yCi0JICogc2NoZWR1bGluZyBwdXJwb3Nlcy4KLQkgKi8KLQotCXJkdHNjbGwoYSk7Ci0JcmV0dXJuIGN5Y2xlc18yX25zKGEpOwotfQotCi0vKiBXZSBuZWVkIHRvIGRlZmluZSBhIHJlYWwgZnVuY3Rpb24gZm9yIHNjaGVkX2Nsb2NrLCB0byBvdmVycmlkZSB0aGUKLSAgIHdlYWsgZGVmYXVsdCB2ZXJzaW9uICovCi0jaWZkZWYgQ09ORklHX1BBUkFWSVJUCi11bnNpZ25lZCBsb25nIGxvbmcgc2NoZWRfY2xvY2sodm9pZCkKLXsKLQlyZXR1cm4gcGFyYXZpcnRfc2NoZWRfY2xvY2soKTsKLX0KLSNlbHNlCi11bnNpZ25lZCBsb25nIGxvbmcKLXNjaGVkX2Nsb2NrKHZvaWQpIF9fYXR0cmlidXRlX18oKGFsaWFzKCJuYXRpdmVfc2NoZWRfY2xvY2siKSkpOwotI2VuZGlmCi0KLQotc3RhdGljIGludCB0c2NfdW5zdGFibGU7Ci0KLWludCBjaGVja190c2NfdW5zdGFibGUodm9pZCkKLXsKLQlyZXR1cm4gdHNjX3Vuc3RhYmxlOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoY2hlY2tfdHNjX3Vuc3RhYmxlKTsKLQotI2lmZGVmIENPTkZJR19DUFVfRlJFUQotCi0vKiBGcmVxdWVuY3kgc2NhbGluZyBzdXBwb3J0LiBBZGp1c3QgdGhlIFRTQyBiYXNlZCB0aW1lciB3aGVuIHRoZSBjcHUgZnJlcXVlbmN5Ci0gKiBjaGFuZ2VzLgotICoKLSAqIFJFRC1QRU46IE9uIFNNUCB3ZSBhc3N1bWUgYWxsIENQVXMgcnVuIHdpdGggdGhlIHNhbWUgZnJlcXVlbmN5LiAgSXQncwotICogbm90IHRoYXQgaW1wb3J0YW50IGJlY2F1c2UgY3VycmVudCBPcHRlcm9uIHNldHVwcyBkbyBub3Qgc3VwcG9ydAotICogc2NhbGluZyBvbiBTTVAgYW55cm9hZHMuCi0gKgotICogU2hvdWxkIGZpeCB1cCBsYXN0X3RzYyB0b28uIEN1cnJlbnRseSBnZXR0aW1lb2ZkYXkgaW4gdGhlCi0gKiBmaXJzdCB0aWNrIGFmdGVyIHRoZSBjaGFuZ2Ugd2lsbCBiZSBzbGlnaHRseSB3cm9uZy4KLSAqLwotCi1zdGF0aWMgdW5zaWduZWQgaW50ICByZWZfZnJlcTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvb3BzX3Blcl9qaWZmeV9yZWY7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyB0c2Nfa2h6X3JlZjsKLQotc3RhdGljIGludCB0aW1lX2NwdWZyZXFfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyB2YWwsCi0JCQkJIHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IGNwdWZyZXFfZnJlcXMgKmZyZXEgPSBkYXRhOwotCXVuc2lnbmVkIGxvbmcgKmxwaiwgZHVtbXk7Ci0KLQlpZiAoY3B1X2hhcygmY3B1X2RhdGEoZnJlcS0+Y3B1KSwgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKSkKLQkJcmV0dXJuIDA7Ci0KLQlscGogPSAmZHVtbXk7Ci0JaWYgKCEoZnJlcS0+ZmxhZ3MgJiBDUFVGUkVRX0NPTlNUX0xPT1BTKSkKLSNpZmRlZiBDT05GSUdfU01QCi0JCWxwaiA9ICZjcHVfZGF0YShmcmVxLT5jcHUpLmxvb3BzX3Blcl9qaWZmeTsKLSNlbHNlCi0JCWxwaiA9ICZib290X2NwdV9kYXRhLmxvb3BzX3Blcl9qaWZmeTsKLSNlbmRpZgotCi0JaWYgKCFyZWZfZnJlcSkgewotCQlyZWZfZnJlcSA9IGZyZXEtPm9sZDsKLQkJbG9vcHNfcGVyX2ppZmZ5X3JlZiA9ICpscGo7Ci0JCXRzY19raHpfcmVmID0gdHNjX2toejsKLQl9Ci0JaWYgKCh2YWwgPT0gQ1BVRlJFUV9QUkVDSEFOR0UgICYmIGZyZXEtPm9sZCA8IGZyZXEtPm5ldykgfHwKLQkJKHZhbCA9PSBDUFVGUkVRX1BPU1RDSEFOR0UgJiYgZnJlcS0+b2xkID4gZnJlcS0+bmV3KSB8fAotCQkodmFsID09IENQVUZSRVFfUkVTVU1FQ0hBTkdFKSkgewotCQkqbHBqID0KLQkJY3B1ZnJlcV9zY2FsZShsb29wc19wZXJfamlmZnlfcmVmLCByZWZfZnJlcSwgZnJlcS0+bmV3KTsKLQotCQl0c2Nfa2h6ID0gY3B1ZnJlcV9zY2FsZSh0c2Nfa2h6X3JlZiwgcmVmX2ZyZXEsIGZyZXEtPm5ldyk7Ci0JCWlmICghKGZyZXEtPmZsYWdzICYgQ1BVRlJFUV9DT05TVF9MT09QUykpCi0JCQltYXJrX3RzY191bnN0YWJsZSgiY3B1ZnJlcSBjaGFuZ2VzIik7Ci0JfQotCi0Jc2V0X2N5YzJuc19zY2FsZSh0c2Nfa2h6X3JlZiwgZnJlcS0+Y3B1KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHRpbWVfY3B1ZnJlcV9ub3RpZmllcl9ibG9jayA9IHsKLQkubm90aWZpZXJfY2FsbCAgPSB0aW1lX2NwdWZyZXFfbm90aWZpZXIKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGNwdWZyZXFfdHNjKHZvaWQpCi17Ci0JY3B1ZnJlcV9yZWdpc3Rlcl9ub3RpZmllcigmdGltZV9jcHVmcmVxX25vdGlmaWVyX2Jsb2NrLAotCQkJCSAgQ1BVRlJFUV9UUkFOU0lUSU9OX05PVElGSUVSKTsKLQlyZXR1cm4gMDsKLX0KLQotY29yZV9pbml0Y2FsbChjcHVmcmVxX3RzYyk7Ci0KLSNlbmRpZgotCi0jZGVmaW5lIE1BWF9SRVRSSUVTCTUKLSNkZWZpbmUgU01JX1RSRVNIT0xECTUwMDAwCi0KLS8qCi0gKiBSZWFkIFRTQyBhbmQgdGhlIHJlZmVyZW5jZSBjb3VudGVycy4gVGFrZSBjYXJlIG9mIFNNSSBkaXN0dXJiYW5jZQotICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgdHNjX3JlYWRfcmVmcyh1bnNpZ25lZCBsb25nICpwbSwKLQkJCQkJICB1bnNpZ25lZCBsb25nICpocGV0KQotewotCXVuc2lnbmVkIGxvbmcgdDEsIHQyOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IE1BWF9SRVRSSUVTOyBpKyspIHsKLQkJdDEgPSBnZXRfY3ljbGVzKCk7Ci0JCWlmIChocGV0KQotCQkJKmhwZXQgPSBocGV0X3JlYWRsKEhQRVRfQ09VTlRFUikgJiAweEZGRkZGRkZGOwotCQllbHNlCi0JCQkqcG0gPSBhY3BpX3BtX3JlYWRfZWFybHkoKTsKLQkJdDIgPSBnZXRfY3ljbGVzKCk7Ci0JCWlmICgodDIgLSB0MSkgPCBTTUlfVFJFU0hPTEQpCi0JCQlyZXR1cm4gdDI7Ci0JfQotCXJldHVybiBVTE9OR19NQVg7Ci19Ci0KLS8qKgotICogdHNjX2NhbGlicmF0ZSAtIGNhbGlicmF0ZSB0aGUgdHNjIG9uIGJvb3QKLSAqLwotdm9pZCBfX2luaXQgdHNjX2NhbGlicmF0ZSh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHRzYzEsIHRzYzIsIHRyMSwgdHIyLCBwbTEsIHBtMiwgaHBldDEsIGhwZXQyOwotCWludCBocGV0ID0gaXNfaHBldF9lbmFibGVkKCksIGNwdTsKLQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQotCXRzYzEgPSB0c2NfcmVhZF9yZWZzKCZwbTEsIGhwZXQgPyAmaHBldDEgOiBOVUxMKTsKLQotCW91dGIoKGluYigweDYxKSAmIH4weDAyKSB8IDB4MDEsIDB4NjEpOwotCi0Jb3V0YigweGIwLCAweDQzKTsKLQlvdXRiKChDTE9DS19USUNLX1JBVEUgLyAoMTAwMCAvIDUwKSkgJiAweGZmLCAweDQyKTsKLQlvdXRiKChDTE9DS19USUNLX1JBVEUgLyAoMTAwMCAvIDUwKSkgPj4gOCwgMHg0Mik7Ci0JdHIxID0gZ2V0X2N5Y2xlcygpOwotCXdoaWxlICgoaW5iKDB4NjEpICYgMHgyMCkgPT0gMCk7Ci0JdHIyID0gZ2V0X2N5Y2xlcygpOwotCi0JdHNjMiA9IHRzY19yZWFkX3JlZnMoJnBtMiwgaHBldCA/ICZocGV0MiA6IE5VTEwpOwotCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCi0JLyoKLQkgKiBQcmVzZXQgdGhlIHJlc3VsdCB3aXRoIHRoZSByYXcgYW5kIGluYWNjdXJhdGUgUElUCi0JICogY2FsaWJyYXRpb24gdmFsdWUKLQkgKi8KLQl0c2Nfa2h6ID0gKHRyMiAtIHRyMSkgLyA1MDsKLQotCS8qIGhwZXQgb3IgcG10aW1lciBhdmFpbGFibGUgPyAqLwotCWlmICghaHBldCAmJiAhcG0xICYmICFwbTIpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiVFNDIGNhbGlicmF0ZWQgYWdhaW5zdCBQSVRcbiIpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQkvKiBDaGVjaywgd2hldGhlciB0aGUgc2FtcGxpbmcgd2FzIGRpc3R1cmJlZCBieSBhbiBTTUkgKi8KLQlpZiAodHNjMSA9PSBVTE9OR19NQVggfHwgdHNjMiA9PSBVTE9OR19NQVgpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiVFNDIGNhbGlicmF0aW9uIGRpc3R1cmJlZCBieSBTTUksICIKLQkJICAgICAgICJ1c2luZyBQSVQgY2FsaWJyYXRpb24gcmVzdWx0XG4iKTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JdHNjMiA9ICh0c2MyIC0gdHNjMSkgKiAxMDAwMDAwTDsKLQotCWlmIChocGV0KSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIlRTQyBjYWxpYnJhdGVkIGFnYWluc3QgSFBFVFxuIik7Ci0JCWlmIChocGV0MiA8IGhwZXQxKQotCQkJaHBldDIgKz0gMHgxMDAwMDAwMDA7Ci0JCWhwZXQyIC09IGhwZXQxOwotCQl0c2MxID0gKGhwZXQyICogaHBldF9yZWFkbChIUEVUX1BFUklPRCkpIC8gMTAwMDAwMDsKLQl9IGVsc2UgewotCQlwcmludGsoS0VSTl9JTkZPICJUU0MgY2FsaWJyYXRlZCBhZ2FpbnN0IFBNX1RJTUVSXG4iKTsKLQkJaWYgKHBtMiA8IHBtMSkKLQkJCXBtMiArPSBBQ1BJX1BNX09WUlJVTjsKLQkJcG0yIC09IHBtMTsKLQkJdHNjMSA9IChwbTIgKiAxMDAwMDAwMDAwKSAvIFBNVE1SX1RJQ0tTX1BFUl9TRUM7Ci0JfQotCi0JdHNjX2toeiA9IHRzYzIgLyB0c2MxOwotCi1vdXQ6Ci0JZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkKLQkJc2V0X2N5YzJuc19zY2FsZSh0c2Nfa2h6LCBjcHUpOwotfQotCi0vKgotICogTWFrZSBhbiBlZHVjYXRlZCBndWVzcyBpZiB0aGUgVFNDIGlzIHRydXN0d29ydGh5IGFuZCBzeW5jaHJvbml6ZWQKLSAqIG92ZXIgYWxsIENQVXMuCi0gKi8KLV9fY3B1aW5pdCBpbnQgdW5zeW5jaHJvbml6ZWRfdHNjKHZvaWQpCi17Ci0JaWYgKHRzY191bnN0YWJsZSkKLQkJcmV0dXJuIDE7Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0JaWYgKGFwaWNfaXNfY2x1c3RlcmVkX2JveCgpKQotCQlyZXR1cm4gMTsKLSNlbmRpZgotCi0JaWYgKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpKQotCQlyZXR1cm4gMDsKLQotCS8qIEFzc3VtZSBtdWx0aSBzb2NrZXQgc3lzdGVtcyBhcmUgbm90IHN5bmNocm9uaXplZCAqLwotCXJldHVybiBudW1fcHJlc2VudF9jcHVzKCkgPiAxOwotfQotCi1pbnQgX19pbml0IG5vdHNjX3NldHVwKGNoYXIgKnMpCi17Ci0Jbm90c2MgPSAxOwotCXJldHVybiAxOwotfQotCi1fX3NldHVwKCJub3RzYyIsIG5vdHNjX3NldHVwKTsKLQotc3RhdGljIHN0cnVjdCBjbG9ja3NvdXJjZSBjbG9ja3NvdXJjZV90c2M7Ci0KLS8qCi0gKiBXZSBjb21wYXJlIHRoZSBUU0MgdG8gdGhlIGN5Y2xlX2xhc3QgdmFsdWUgaW4gdGhlIGNsb2Nrc291cmNlCi0gKiBzdHJ1Y3R1cmUgdG8gYXZvaWQgYSBuYXN0eSB0aW1lLXdhcnAuIFRoaXMgY2FuIGJlIG9ic2VydmVkIGluIGEKLSAqIHZlcnkgc21hbGwgd2luZG93IHJpZ2h0IGFmdGVyIG9uZSBDUFUgdXBkYXRlZCBjeWNsZV9sYXN0IHVuZGVyCi0gKiB4dGltZS92c3lzY2FsbF9ndG9kIGxvY2sgYW5kIHRoZSBvdGhlciBDUFUgcmVhZHMgYSBUU0MgdmFsdWUgd2hpY2gKLSAqIGlzIHNtYWxsZXIgdGhhbiB0aGUgY3ljbGVfbGFzdCByZWZlcmVuY2UgdmFsdWUgZHVlIHRvIGEgVFNDIHdoaWNoCi0gKiBpcyBzbGlnaHR5IGJlaGluZC4gVGhpcyBkZWx0YSBpcyBub3doZXJlIGVsc2Ugb2JzZXJ2YWJsZSwgYnV0IGluCi0gKiB0aGF0IGNhc2UgaXQgcmVzdWx0cyBpbiBhIGZvcndhcmQgdGltZSBqdW1wIGluIHRoZSByYW5nZSBvZiBob3VycwotICogZHVlIHRvIHRoZSB1bnNpZ25lZCBkZWx0YSBjYWxjdWxhdGlvbiBvZiB0aGUgdGltZSBrZWVwaW5nIGNvcmUKLSAqIGNvZGUsIHdoaWNoIGlzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IHdyYXBwaW5nIGNsb2Nrc291cmNlcyBsaWtlIHBtCi0gKiB0aW1lci4KLSAqLwotc3RhdGljIGN5Y2xlX3QgcmVhZF90c2Modm9pZCkKLXsKLQljeWNsZV90IHJldCA9IChjeWNsZV90KWdldF9jeWNsZXMoKTsKLQotCXJldHVybiByZXQgPj0gY2xvY2tzb3VyY2VfdHNjLmN5Y2xlX2xhc3QgPwotCQlyZXQgOiBjbG9ja3NvdXJjZV90c2MuY3ljbGVfbGFzdDsKLX0KLQotc3RhdGljIGN5Y2xlX3QgX192c3lzY2FsbF9mbiB2cmVhZF90c2Modm9pZCkKLXsKLQljeWNsZV90IHJldCA9IChjeWNsZV90KXZnZXRfY3ljbGVzKCk7Ci0KLQlyZXR1cm4gcmV0ID49IF9fdnN5c2NhbGxfZ3RvZF9kYXRhLmNsb2NrLmN5Y2xlX2xhc3QgPwotCQlyZXQgOiBfX3ZzeXNjYWxsX2d0b2RfZGF0YS5jbG9jay5jeWNsZV9sYXN0OwotfQotCi1zdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGNsb2Nrc291cmNlX3RzYyA9IHsKLQkubmFtZQkJCT0gInRzYyIsCi0JLnJhdGluZwkJCT0gMzAwLAotCS5yZWFkCQkJPSByZWFkX3RzYywKLQkubWFzawkJCT0gQ0xPQ0tTT1VSQ0VfTUFTSyg2NCksCi0JLnNoaWZ0CQkJPSAyMiwKLQkuZmxhZ3MJCQk9IENMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTIHwKLQkJCQkgIENMT0NLX1NPVVJDRV9NVVNUX1ZFUklGWSwKLQkudnJlYWQJCQk9IHZyZWFkX3RzYywKLX07Ci0KLXZvaWQgbWFya190c2NfdW5zdGFibGUoY2hhciAqcmVhc29uKQotewotCWlmICghdHNjX3Vuc3RhYmxlKSB7Ci0JCXRzY191bnN0YWJsZSA9IDE7Ci0JCXByaW50aygiTWFya2luZyBUU0MgdW5zdGFibGUgZHVlIHRvICVzXG4iLCByZWFzb24pOwotCQkvKiBDaGFuZ2Ugb25seSB0aGUgcmF0aW5nLCB3aGVuIG5vdCByZWdpc3RlcmVkICovCi0JCWlmIChjbG9ja3NvdXJjZV90c2MubXVsdCkKLQkJCWNsb2Nrc291cmNlX2NoYW5nZV9yYXRpbmcoJmNsb2Nrc291cmNlX3RzYywgMCk7Ci0JCWVsc2UKLQkJCWNsb2Nrc291cmNlX3RzYy5yYXRpbmcgPSAwOwotCX0KLX0KLUVYUE9SVF9TWU1CT0xfR1BMKG1hcmtfdHNjX3Vuc3RhYmxlKTsKLQotdm9pZCBfX2luaXQgaW5pdF90c2NfY2xvY2tzb3VyY2Uodm9pZCkKLXsKLQlpZiAoIW5vdHNjKSB7Ci0JCWNsb2Nrc291cmNlX3RzYy5tdWx0ID0gY2xvY2tzb3VyY2Vfa2h6Mm11bHQodHNjX2toeiwKLQkJCQkJCQljbG9ja3NvdXJjZV90c2Muc2hpZnQpOwotCQlpZiAoY2hlY2tfdHNjX3Vuc3RhYmxlKCkpCi0JCQljbG9ja3NvdXJjZV90c2MucmF0aW5nID0gMDsKLQotCQljbG9ja3NvdXJjZV9yZWdpc3RlcigmY2xvY2tzb3VyY2VfdHNjKTsKLQl9Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdmlzd3NfcXVpcmtzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvdmlzd3NfcXVpcmtzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk0YmRiNgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC92aXN3c19xdWlya3MuYwpAQCAtMCwwICsxLDcwOSBAQAorLyoKKyAqICBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIHN1cHBvcnQgYW5kIHF1aXJrcywgdW5tYWludGFpbmVkLgorICoKKyAqICBTcGxpdCBvdXQgZnJvbSBzZXR1cC5jIGJ5IGRhdmVqQHN1c2UuZGUKKyAqCisgKglDb3B5cmlnaHQgKEMpIDE5OTkgQmVudCBIYWdlbWFyaywgSW5nbyBNb2xuYXIKKyAqCisgKiAgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiBpbnRlcnJ1cHQgY29udHJvbGxlcgorICoKKyAqICBUaGUgQ29iYWx0IHN5c3RlbSBBU0lDIGluIHRoZSBWaXN1YWwgV29ya3N0YXRpb24gY29udGFpbnMgYSAiQ29iYWx0IiBBUElDCisgKiAgd2hpY2ggc2VydmVzIGFzIHRoZSBtYWluIGludGVycnVwdCBjb250cm9sbGVyIGluIHRoZSBzeXN0ZW0uICBOb24tbGVnYWN5CisgKiAgaGFyZHdhcmUgaW4gdGhlIHN5c3RlbSB1c2VzIHRoaXMgY29udHJvbGxlciBkaXJlY3RseS4gIExlZ2FjeSBkZXZpY2VzCisgKiAgYXJlIGNvbm5lY3RlZCB0byB0aGUgUElJWDQgd2hpY2ggaW4gdHVybiBoYXMgaXRzIDgyNTkocykgY29ubmVjdGVkIHRvCisgKiAgYSBvZiB0aGUgQ29iYWx0IEFQSUMgZW50cnkuCisgKgorICogIDA5LzAyLzIwMDAgLSBVcGRhdGVkIGZvciAyLjQgYnkgamJhcm5lc0BzZ2kuY29tCisgKgorICogIDI1LzExLzIwMDIgLSBVcGRhdGVkIGZvciAyLjUgYnkgQW5kcmV5IFBhbmluIDxwYXprZUBvcmJpdGExLnJ1PgorICovCisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorCisjaW5jbHVkZSA8YXNtL3Zpc3dzL2NvYmFsdC5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9waWl4NC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CisjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgorI2luY2x1ZGUgPGFzbS9yZWJvb3QuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKworI2luY2x1ZGUgPG1hY2hfaXBpLmg+CisKKyNpbmNsdWRlICJtYWNoX2FwaWMuaCIKKworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXAuaD4KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorCisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vaTgyNTkuaD4KKyNpbmNsdWRlIDxhc20vaXJxX3ZlY3RvcnMuaD4KKyNpbmNsdWRlIDxhc20vdmlzd3MvY29iYWx0Lmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL2xpdGhpdW0uaD4KKyNpbmNsdWRlIDxhc20vdmlzd3MvcGlpeDQuaD4KKworI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaV9pZHMuaD4KKworZXh0ZXJuIGludCBub19icm9hZGNhc3Q7CisKKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL2NvYmFsdC5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9saXRoaXVtLmg+CisKK2NoYXIgdmlzd3NfYm9hcmRfdHlwZQk9IC0xOworY2hhciB2aXN3c19ib2FyZF9yZXYJPSAtMTsKKworaW50IGlzX3Zpc3dzX2JveCh2b2lkKQoreworCXJldHVybiB2aXN3c19ib2FyZF90eXBlID49IDA7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHZpc3dzX3RpbWVfaW5pdF9xdWlyayh2b2lkKQoreworCXByaW50ayhLRVJOX0lORk8gIlN0YXJ0aW5nIENvYmFsdCBUaW1lciBzeXN0ZW0gY2xvY2tcbiIpOworCisJLyogU2V0IHRoZSBjb3VudGRvd24gdmFsdWUgKi8KKwljb19jcHVfd3JpdGUoQ09fQ1BVX1RJTUVWQUwsIENPX1RJTUVfSFovSFopOworCisJLyogU3RhcnQgdGhlIHRpbWVyICovCisJY29fY3B1X3dyaXRlKENPX0NQVV9DVFJMLCBjb19jcHVfcmVhZChDT19DUFVfQ1RSTCkgfCBDT19DVFJMX1RJTUVSVU4pOworCisJLyogRW5hYmxlICh1bm1hc2spIHRoZSB0aW1lciBpbnRlcnJ1cHQgKi8KKwljb19jcHVfd3JpdGUoQ09fQ1BVX0NUUkwsIGNvX2NwdV9yZWFkKENPX0NQVV9DVFJMKSAmIH5DT19DVFJMX1RJTUVNQVNLKTsKKworCS8qCisJICogWmVybyByZXR1cm4gbWVhbnMgdGhlIGdlbmVyaWMgdGltZXIgc2V0dXAgY29kZSB3aWxsIHNldCB1cAorCSAqIHRoZSBzdGFuZGFyZCB2ZWN0b3I6CisJICovCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHZpc3dzX3ByZV9pbnRyX2luaXRfcXVpcmsodm9pZCkKK3sKKwlpbml0X1ZJU1dTX0FQSUNfaXJxcygpOworCisJLyoKKwkgKiBXZSBkb250IHdhbnQgSVNBIGlycXMgdG8gYmUgc2V0IHVwIGJ5IHRoZSBnZW5lcmljIGNvZGU6CisJICovCisJcmV0dXJuIDE7Cit9CisKKy8qIFF1aXJrIGZvciBtYWNoaW5lIHNwZWNpZmljIG1lbW9yeSBzZXR1cC4gKi8KKworI2RlZmluZSBNQiAoMTAyNCAqIDEwMjQpCisKK3Vuc2lnbmVkIGxvbmcgc2dpdndmYl9tZW1fcGh5czsKK3Vuc2lnbmVkIGxvbmcgc2dpdndmYl9tZW1fc2l6ZTsKK0VYUE9SVF9TWU1CT0woc2dpdndmYl9tZW1fcGh5cyk7CitFWFBPUlRfU1lNQk9MKHNnaXZ3ZmJfbWVtX3NpemUpOworCitsb25nIGxvbmcgbWVtX3NpemUgX19pbml0ZGF0YSA9IDA7CisKK3N0YXRpYyBjaGFyICogX19pbml0IHZpc3dzX21lbW9yeV9zZXR1cF9xdWlyayh2b2lkKQoreworCWxvbmcgbG9uZyBnZnhfbWVtX3NpemUgPSA4ICogTUI7CisKKwltZW1fc2l6ZSA9IGJvb3RfcGFyYW1zLmFsdF9tZW1fazsKKworCWlmICghbWVtX3NpemUpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiQm9vdGxvYWRlciBkaWRuJ3Qgc2V0IG1lbW9yeSBzaXplLCB1cGdyYWRlIGl0ICFcbiIpOworCQltZW1fc2l6ZSA9IDEyOCAqIE1COworCX0KKworCS8qCisJICogdGhpcyBoYXJkY29kZXMgdGhlIGdyYXBoaWNzIG1lbW9yeSB0byA4IE1CCisJICogaXQgcmVhbGx5IHNob3VsZCBiZSBzaXplZCBkeW5hbWljYWxseSAob3IgYXQgbGVhc3QKKwkgKiBzZXQgYXMgYSBib290IHBhcmFtKQorCSAqLworCWlmICghc2dpdndmYl9tZW1fc2l6ZSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJEZWZhdWx0aW5nIHRvIDggTUIgZnJhbWVidWZmZXIgc2l6ZVxuIik7CisJCXNnaXZ3ZmJfbWVtX3NpemUgPSA4ICogTUI7CisJfQorCisJLyoKKwkgKiBUcmltIHRvIG5lYXJlc3QgTUIKKwkgKi8KKwlzZ2l2d2ZiX21lbV9zaXplICY9IH4oKDEgPDwgMjApIC0gMSk7CisJc2dpdndmYl9tZW1fcGh5cyA9IG1lbV9zaXplIC0gZ2Z4X21lbV9zaXplOworCisJZTgyMF9hZGRfcmVnaW9uKDAsIExPV01FTVNJWkUoKSwgRTgyMF9SQU0pOworCWU4MjBfYWRkX3JlZ2lvbihISUdIX01FTU9SWSwgbWVtX3NpemUgLSBzZ2l2d2ZiX21lbV9zaXplIC0gSElHSF9NRU1PUlksIEU4MjBfUkFNKTsKKwllODIwX2FkZF9yZWdpb24oc2dpdndmYl9tZW1fcGh5cywgc2dpdndmYl9tZW1fc2l6ZSwgRTgyMF9SRVNFUlZFRCk7CisKKwlyZXR1cm4gIlBST00iOworfQorCitzdGF0aWMgdm9pZCB2aXN3c19tYWNoaW5lX2VtZXJnZW5jeV9yZXN0YXJ0KHZvaWQpCit7CisJLyoKKwkgKiBWaXN1YWwgV29ya3N0YXRpb25zIHJlc3RhcnQgYWZ0ZXIgdGhpcworCSAqIHJlZ2lzdGVyIGlzIHBva2VkIG9uIHRoZSBQSUlYNAorCSAqLworCW91dGIoUElJWDRfUkVTRVRfVkFMLCBQSUlYNF9SRVNFVF9QT1JUKTsKK30KKworc3RhdGljIHZvaWQgdmlzd3NfbWFjaGluZV9wb3dlcl9vZmYodm9pZCkKK3sKKwl1bnNpZ25lZCBzaG9ydCBwbV9zdGF0dXM7CisvKglleHRlcm4gdW5zaWduZWQgaW50IHBjaV9idXMwOyAqLworCisJd2hpbGUgKChwbV9zdGF0dXMgPSBpbncoUE1TVFNfUE9SVCkpICYgMHgxMDApCisJCW91dHcocG1fc3RhdHVzLCBQTVNUU19QT1JUKTsKKworCW91dHcoUE1fU1VTUEVORF9FTkFCTEUsIFBNQ05UUkxfUE9SVCk7CisKKwltZGVsYXkoMTApOworCisjZGVmaW5lIFBDSV9DT05GMV9BRERSRVNTKGJ1cywgZGV2Zm4sIHJlZykgXAorCSgweDgwMDAwMDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2Zm4gPDwgOCkgfCAocmVnICYgfjMpKQorCisvKglvdXRsKFBDSV9DT05GMV9BRERSRVNTKHBjaV9idXMwLCBTUEVDSUFMX0RFViwgU1BFQ0lBTF9SRUcpLCAweENGOCk7ICovCisJb3V0bChQSUlYX1NQRUNJQUxfU1RPUCwgMHhDRkMpOworfQorCitzdGF0aWMgaW50IF9faW5pdCB2aXN3c19nZXRfc21wX2NvbmZpZ19xdWlyayh1bnNpZ25lZCBpbnQgZWFybHkpCit7CisJLyoKKwkgKiBQcmV2ZW50IE1QLXRhYmxlIHBhcnNpbmcgYnkgdGhlIGdlbmVyaWMgY29kZToKKwkgKi8KKwlyZXR1cm4gMTsKK30KKworZXh0ZXJuIHVuc2lnbmVkIGludCBfX2NwdWluaXRkYXRhIG1heGNwdXM7CisKKy8qCisgKiBUaGUgVmlzdWFsIFdvcmtzdGF0aW9uIGlzIEludGVsIE1QIGNvbXBsaWFudCBpbiB0aGUgaGFyZHdhcmUKKyAqIHNlbnNlLCBidXQgaXQgZG9lc24ndCBoYXZlIGEgQklPUygtY29uZmlndXJhdGlvbiB0YWJsZSkuCisgKiBObyBwcm9ibGVtIGZvciBMaW51eC4KKyAqLworCitzdGF0aWMgdm9pZCBfX2luaXQgTVBfcHJvY2Vzc29yX2luZm8gKHN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciAqbSkKK3sKKwlpbnQgdmVyLCBsb2dpY2FsX2FwaWNpZDsKKwlwaHlzaWRfbWFza190IGFwaWNfY3B1czsKKworCWlmICghKG0tPm1wY19jcHVmbGFnICYgQ1BVX0VOQUJMRUQpKQorCQlyZXR1cm47CisKKwlsb2dpY2FsX2FwaWNpZCA9IG0tPm1wY19hcGljaWQ7CisJcHJpbnRrKEtFUk5fSU5GTyAiJXNDUFUgIyVkICV1OiV1IEFQSUMgdmVyc2lvbiAlZFxuIiwKKwkgICAgICAgbS0+bXBjX2NwdWZsYWcgJiBDUFVfQk9PVFBST0NFU1NPUiA/ICJCb290dXAgIiA6ICIiLAorCSAgICAgICBtLT5tcGNfYXBpY2lkLAorCSAgICAgICAobS0+bXBjX2NwdWZlYXR1cmUgJiBDUFVfRkFNSUxZX01BU0spID4+IDgsCisJICAgICAgIChtLT5tcGNfY3B1ZmVhdHVyZSAmIENQVV9NT0RFTF9NQVNLKSA+PiA0LAorCSAgICAgICBtLT5tcGNfYXBpY3Zlcik7CisKKwlpZiAobS0+bXBjX2NwdWZsYWcgJiBDUFVfQk9PVFBST0NFU1NPUikKKwkJYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkID0gbS0+bXBjX2FwaWNpZDsKKworCXZlciA9IG0tPm1wY19hcGljdmVyOworCWlmICgodmVyID49IDB4MTQgJiYgbS0+bXBjX2FwaWNpZCA+PSAweGZmKSB8fCBtLT5tcGNfYXBpY2lkID49IDB4ZikgeworCQlwcmludGsoS0VSTl9FUlIgIlByb2Nlc3NvciAjJWQgSU5WQUxJRC4gKE1heCBJRDogJWQpLlxuIiwKKwkJCW0tPm1wY19hcGljaWQsIE1BWF9BUElDUyk7CisJCXJldHVybjsKKwl9CisKKwlhcGljX2NwdXMgPSBhcGljaWRfdG9fY3B1X3ByZXNlbnQobS0+bXBjX2FwaWNpZCk7CisJcGh5c2lkc19vcihwaHlzX2NwdV9wcmVzZW50X21hcCwgcGh5c19jcHVfcHJlc2VudF9tYXAsIGFwaWNfY3B1cyk7CisJLyoKKwkgKiBWYWxpZGF0ZSB2ZXJzaW9uCisJICovCisJaWYgKHZlciA9PSAweDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJCSU9TIGJ1ZywgQVBJQyB2ZXJzaW9uIGlzIDAgZm9yIENQVSMlZCEgIgorCQkJImZpeGluZyB1cCB0byAweDEwLiAodGVsbCB5b3VyIGh3IHZlbmRvcilcbiIsCisJCQltLT5tcGNfYXBpY2lkKTsKKwkJdmVyID0gMHgxMDsKKwl9CisJYXBpY192ZXJzaW9uW20tPm1wY19hcGljaWRdID0gdmVyOworfQorCitpbnQgX19pbml0IHZpc3dzX2ZpbmRfc21wX2NvbmZpZ19xdWlyayh1bnNpZ25lZCBpbnQgcmVzZXJ2ZSkKK3sKKwlzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgKm1wID0gcGh5c190b192aXJ0KENPX0NQVV9UQUJfUEhZUyk7CisJdW5zaWduZWQgc2hvcnQgbmNwdXMgPSByZWFkdyhwaHlzX3RvX3ZpcnQoQ09fQ1BVX05VTV9QSFlTKSk7CisKKwlpZiAobmNwdXMgPiBDT19DUFVfTUFYKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgImZpbmRfdmlzd3Nfc21wOiBnb3QgY3B1IGNvdW50IG9mICVkIGF0ICVwXG4iLAorCQkJbmNwdXMsIG1wKTsKKworCQluY3B1cyA9IENPX0NQVV9NQVg7CisJfQorCisJaWYgKG5jcHVzID4gbWF4Y3B1cykKKwkJbmNwdXMgPSBtYXhjcHVzOworCisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCisJc21wX2ZvdW5kX2NvbmZpZyA9IDE7CisjZW5kaWYKKwl3aGlsZSAobmNwdXMtLSkKKwkJTVBfcHJvY2Vzc29yX2luZm8obXArKyk7CisKKwltcF9sYXBpY19hZGRyID0gQVBJQ19ERUZBVUxUX1BIWVNfQkFTRTsKKworCXJldHVybiAxOworfQorCitleHRlcm4gaW50IHZpc3dzX3RyYXBfaW5pdF9xdWlyayh2b2lkKTsKKwordm9pZCBfX2luaXQgdmlzd3NfZWFybHlfZGV0ZWN0KHZvaWQpCit7CisJaW50IHJhdzsKKworCXZpc3dzX2JvYXJkX3R5cGUgPSAoY2hhcikoaW5iX3AoUElJWF9HUElfQkRfUkVHKSAmIFBJSVhfR1BJX0JEX1JFRykKKwkJCQkJCQkgPj4gUElJWF9HUElfQkRfU0hJRlQ7CisKKwlpZiAodmlzd3NfYm9hcmRfdHlwZSA8IDApCisJCXJldHVybjsKKworCS8qCisJICogSW5zdGFsbCBzcGVjaWFsIHF1aXJrcyBmb3IgdGltZXIsIGludGVycnVwdCBhbmQgbWVtb3J5IHNldHVwOgorCSAqLworCWFyY2hfdGltZV9pbml0X3F1aXJrCQk9IHZpc3dzX3RpbWVfaW5pdF9xdWlyazsKKwlhcmNoX3ByZV9pbnRyX2luaXRfcXVpcmsJPSB2aXN3c19wcmVfaW50cl9pbml0X3F1aXJrOworCWFyY2hfbWVtb3J5X3NldHVwX3F1aXJrCQk9IHZpc3dzX21lbW9yeV9zZXR1cF9xdWlyazsKKworCS8qCisJICogRmFsbCBiYWNrIHRvIGdlbmVyaWMgYmVoYXZpb3IgZm9yIHRyYXBzOgorCSAqLworCWFyY2hfaW50cl9pbml0X3F1aXJrCQk9IE5VTEw7CisJYXJjaF90cmFwX2luaXRfcXVpcmsJCT0gdmlzd3NfdHJhcF9pbml0X3F1aXJrOworCisJLyoKKwkgKiBJbnN0YWxsIHJlYm9vdCBxdWlya3M6CisJICovCisJcG1fcG93ZXJfb2ZmCQkJPSB2aXN3c19tYWNoaW5lX3Bvd2VyX29mZjsKKwltYWNoaW5lX29wcy5lbWVyZ2VuY3lfcmVzdGFydAk9IHZpc3dzX21hY2hpbmVfZW1lcmdlbmN5X3Jlc3RhcnQ7CisKKwkvKgorCSAqIERvIG5vdCB1c2UgYnJvYWRjYXN0IElQSXM6CisJICovCisJbm9fYnJvYWRjYXN0ID0gMDsKKworCS8qCisJICogT3ZlcnJpZGUgZ2VuZXJpYyBNUC10YWJsZSBwYXJzaW5nOgorCSAqLworCW1hY2hfZ2V0X3NtcF9jb25maWdfcXVpcmsJPSB2aXN3c19nZXRfc21wX2NvbmZpZ19xdWlyazsKKwltYWNoX2ZpbmRfc21wX2NvbmZpZ19xdWlyawk9IHZpc3dzX2ZpbmRfc21wX2NvbmZpZ19xdWlyazsKKworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQworCS8qCisJICogVHVybiBvZmYgSU8tQVBJQyBkZXRlY3Rpb24gYW5kIGluaXRpYWxpemF0aW9uOgorCSAqLworCXNraXBfaW9hcGljX3NldHVwCQk9IDE7CisjZW5kaWYKKworCS8qCisJICogR2V0IEJvYXJkIHJldi4KKwkgKiBGaXJzdCwgd2UgaGF2ZSB0byBpbml0aWFsaXplIHRoZSAzMDcgcGFydCB0byBhbGxvdyB1cyBhY2Nlc3MKKwkgKiB0byB0aGUgR1BJTyByZWdpc3RlcnMuICBMZXQncyBtYXAgdGhlbSBhdCAweDBmYzAgd2hpY2ggaXMgcmlnaHQKKwkgKiBhZnRlciB0aGUgUElJWDQgUE0gc2VjdGlvbi4KKwkgKi8KKwlvdXRiX3AoU0lPX0RFVl9TRUwsIFNJT19JTkRFWCk7CisJb3V0Yl9wKFNJT19HUF9ERVYsIFNJT19EQVRBKTsJLyogVGFsayB0byBHUElPIHJlZ3MuICovCisKKwlvdXRiX3AoU0lPX0RFVl9NU0IsIFNJT19JTkRFWCk7CisJb3V0Yl9wKFNJT19HUF9NU0IsIFNJT19EQVRBKTsJLyogTVNCIG9mIEdQSU8gYmFzZSBhZGRyZXNzICovCisKKwlvdXRiX3AoU0lPX0RFVl9MU0IsIFNJT19JTkRFWCk7CisJb3V0Yl9wKFNJT19HUF9MU0IsIFNJT19EQVRBKTsJLyogTFNCIG9mIEdQSU8gYmFzZSBhZGRyZXNzICovCisKKwlvdXRiX3AoU0lPX0RFVl9FTkIsIFNJT19JTkRFWCk7CisJb3V0Yl9wKDEsIFNJT19EQVRBKTsJCS8qIEVuYWJsZSBHUElPIHJlZ2lzdGVycy4gKi8KKworCS8qCisJICogTm93LCB3ZSBoYXZlIHRvIG1hcCB0aGUgcG93ZXIgbWFuYWdlbWVudCBzZWN0aW9uIHRvIHdyaXRlCisJICogYSBiaXQgd2hpY2ggZW5hYmxlcyBhY2Nlc3MgdG8gdGhlIEdQSU8gcmVnaXN0ZXJzLgorCSAqIFdoYXQgbHVuYXRpYyBjYW1lIHVwIHdpdGggdGhpcyBzaGl0PworCSAqLworCW91dGJfcChTSU9fREVWX1NFTCwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX1BNX0RFViwgU0lPX0RBVEEpOwkvKiBUYWxrIHRvIEdQSU8gcmVncy4gKi8KKworCW91dGJfcChTSU9fREVWX01TQiwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX1BNX01TQiwgU0lPX0RBVEEpOwkvKiBNU0Igb2YgUE0gYmFzZSBhZGRyZXNzICovCisKKwlvdXRiX3AoU0lPX0RFVl9MU0IsIFNJT19JTkRFWCk7CisJb3V0Yl9wKFNJT19QTV9MU0IsIFNJT19EQVRBKTsJLyogTFNCIG9mIFBNIGJhc2UgYWRkcmVzcyAqLworCisJb3V0Yl9wKFNJT19ERVZfRU5CLCBTSU9fSU5ERVgpOworCW91dGJfcCgxLCBTSU9fREFUQSk7CQkvKiBFbmFibGUgUE0gcmVnaXN0ZXJzLiAqLworCisJLyoKKwkgKiBOb3csIHdyaXRlIHRoZSBQTSByZWdpc3RlciB3aGljaCBlbmFibGVzIHRoZSBHUElPIHJlZ2lzdGVycy4KKwkgKi8KKwlvdXRiX3AoU0lPX1BNX0ZFUjIsIFNJT19QTV9JTkRFWCk7CisJb3V0Yl9wKFNJT19QTV9HUF9FTiwgU0lPX1BNX0RBVEEpOworCisJLyoKKwkgKiBOb3csIGluaXRpYWxpemUgdGhlIEdQSU8gcmVnaXN0ZXJzLgorCSAqIFdlIHdhbnQgdGhlbSBhbGwgdG8gYmUgaW5wdXRzIHdoaWNoIGlzIHRoZQorCSAqIHBvd2VyIG9uIGRlZmF1bHQsIHNvIGxldCdzIGxlYXZlIHRoZW0gYWxvbmUuCisJICogU28sIGxldCdzIGp1c3QgcmVhZCB0aGUgYm9hcmQgcmV2IQorCSAqLworCXJhdyA9IGluYl9wKFNJT19HUF9EQVRBMSk7CisJcmF3ICY9IDB4N2Y7CS8qIDcgYml0cyBvZiB2YWxpZCBib2FyZCByZXZpc2lvbiBJRC4gKi8KKworCWlmICh2aXN3c19ib2FyZF90eXBlID09IFZJU1dTXzMyMCkgeworCQlpZiAocmF3IDwgMHg2KSB7CisJCQl2aXN3c19ib2FyZF9yZXYgPSA0OworCQl9IGVsc2UgaWYgKHJhdyA8IDB4YykgeworCQkJdmlzd3NfYm9hcmRfcmV2ID0gNTsKKwkJfSBlbHNlIHsKKwkJCXZpc3dzX2JvYXJkX3JldiA9IDY7CisJCX0KKwl9IGVsc2UgaWYgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfNTQwKSB7CisJCQl2aXN3c19ib2FyZF9yZXYgPSAyOworCQl9IGVsc2UgeworCQkJdmlzd3NfYm9hcmRfcmV2ID0gcmF3OworCQl9CisKKwlwcmludGsoS0VSTl9JTkZPICJTaWxpY29uIEdyYXBoaWNzIFZpc3VhbCBXb3Jrc3RhdGlvbiAlcyAocmV2ICVkKSBkZXRlY3RlZFxuIiwKKwkgICAgICAgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfMzIwID8gIjMyMCIgOgorCSAgICAgICAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU181NDAgPyAiNTQwIiA6CisJCSJ1bmtub3duIikpLCB2aXN3c19ib2FyZF9yZXYpOworfQorCisjZGVmaW5lIEEwMTIzNCAoTElfSU5UQV8wIHwgTElfSU5UQV8xIHwgTElfSU5UQV8yIHwgTElfSU5UQV8zIHwgTElfSU5UQV80KQorI2RlZmluZSBCQ0QgKExJX0lOVEIgfCBMSV9JTlRDIHwgTElfSU5URCkKKyNkZWZpbmUgQUxMREVWUyAoQTAxMjM0IHwgQkNEKQorCitzdGF0aWMgX19pbml0IHZvaWQgbGl0aGl1bV9pbml0KHZvaWQpCit7CisJc2V0X2ZpeG1hcChGSVhfTElfUENJQSwgTElfUENJX0FfUEhZUyk7CisJc2V0X2ZpeG1hcChGSVhfTElfUENJQiwgTElfUENJX0JfUEhZUyk7CisKKwlpZiAoKGxpX3BjaWFfcmVhZDE2KFBDSV9WRU5ET1JfSUQpICE9IFBDSV9WRU5ET1JfSURfU0dJKSB8fAorCSAgICAobGlfcGNpYV9yZWFkMTYoUENJX0RFVklDRV9JRCkgIT0gUENJX0RFVklDRV9JRF9TR0lfTElUSElVTSkpIHsKKwkJcHJpbnRrKEtFUk5fRU1FUkcgIkxpdGhpdW0gaG9zdGJyaWRnZSAlYyBub3QgZm91bmRcbiIsICdBJyk7CisvKgkJcGFuaWMoIlRoaXMgbWFjaGluZSBpcyBub3QgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiAzMjAvNTQwIik7ICovCisJfQorCisJaWYgKChsaV9wY2liX3JlYWQxNihQQ0lfVkVORE9SX0lEKSAhPSBQQ0lfVkVORE9SX0lEX1NHSSkgfHwKKwkgICAgKGxpX3BjaWJfcmVhZDE2KFBDSV9ERVZJQ0VfSUQpICE9IFBDSV9ERVZJQ0VfSURfU0dJX0xJVEhJVU0pKSB7CisJCXByaW50ayhLRVJOX0VNRVJHICJMaXRoaXVtIGhvc3RicmlkZ2UgJWMgbm90IGZvdW5kXG4iLCAnQicpOworLyoJCXBhbmljKCJUaGlzIG1hY2hpbmUgaXMgbm90IFNHSSBWaXN1YWwgV29ya3N0YXRpb24gMzIwLzU0MCIpOyAqLworCX0KKworCWxpX3BjaWFfd3JpdGUxNihMSV9QQ0lfSU5URU4sIEFMTERFVlMpOworCWxpX3BjaWJfd3JpdGUxNihMSV9QQ0lfSU5URU4sIEFMTERFVlMpOworfQorCitzdGF0aWMgX19pbml0IHZvaWQgY29iYWx0X2luaXQodm9pZCkKK3sKKwkvKgorCSAqIE9uIG5vcm1hbCBTTVAgUEMgdGhpcyBpcyB1c2VkIG9ubHkgd2l0aCBTTVAsIGJ1dCB3ZSBoYXZlIHRvCisJICogdXNlIGl0IGFuZCBzZXQgaXQgdXAgaGVyZSB0byBzdGFydCB0aGUgQ29iYWx0IGNsb2NrCisJICovCisJc2V0X2ZpeG1hcChGSVhfQVBJQ19CQVNFLCBBUElDX0RFRkFVTFRfUEhZU19CQVNFKTsKKwlzZXR1cF9sb2NhbF9BUElDKCk7CisJcHJpbnRrKEtFUk5fSU5GTyAiTG9jYWwgQVBJQyBWZXJzaW9uICUjeCwgSUQgJSN4XG4iLAorCQkodW5zaWduZWQgaW50KWFwaWNfcmVhZChBUElDX0xWUiksCisJCSh1bnNpZ25lZCBpbnQpYXBpY19yZWFkKEFQSUNfSUQpKTsKKworCXNldF9maXhtYXAoRklYX0NPX0NQVSwgQ09fQ1BVX1BIWVMpOworCXNldF9maXhtYXAoRklYX0NPX0FQSUMsIENPX0FQSUNfUEhZUyk7CisJcHJpbnRrKEtFUk5fSU5GTyAiQ29iYWx0IFJldmlzaW9uICUjbHgsIEFQSUMgSUQgJSNseFxuIiwKKwkJY29fY3B1X3JlYWQoQ09fQ1BVX1JFViksIGNvX2FwaWNfcmVhZChDT19BUElDX0lEKSk7CisKKwkvKiBFbmFibGUgQ29iYWx0IEFQSUMgYmVpbmcgY2FyZWZ1bCB0byBOT1QgY2hhbmdlIHRoZSBJRCEgKi8KKwljb19hcGljX3dyaXRlKENPX0FQSUNfSUQsIGNvX2FwaWNfcmVhZChDT19BUElDX0lEKSB8IENPX0FQSUNfRU5BQkxFKTsKKworCXByaW50ayhLRVJOX0lORk8gIkNvYmFsdCBBUElDIGVuYWJsZWQ6IElEIHJlZyAlI2x4XG4iLAorCQljb19hcGljX3JlYWQoQ09fQVBJQ19JRCkpOworfQorCitpbnQgX19pbml0IHZpc3dzX3RyYXBfaW5pdF9xdWlyayh2b2lkKQoreworCWxpdGhpdW1faW5pdCgpOworCWNvYmFsdF9pbml0KCk7CisKKwlyZXR1cm4gMTsKK30KKworLyoKKyAqIElSUSBjb250cm9sbGVyIC8gQVBJQyBzdXBwb3J0OgorICovCisKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soY29iYWx0X2xvY2spOworCisvKgorICogU2V0IHRoZSBnaXZlbiBDb2JhbHQgQVBJQyBSZWRpcmVjdGlvbiBUYWJsZSBlbnRyeSB0byBwb2ludAorICogdG8gdGhlIGdpdmVuIElEVCB2ZWN0b3IvaW5kZXguCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBjb19hcGljX3NldChpbnQgZW50cnksIGludCBpcnEpCit7CisJY29fYXBpY193cml0ZShDT19BUElDX0xPKGVudHJ5KSwgQ09fQVBJQ19MRVZFTCB8IChpcnEgKyBGSVJTVF9FWFRFUk5BTF9WRUNUT1IpKTsKKwljb19hcGljX3dyaXRlKENPX0FQSUNfSEkoZW50cnkpLCAwKTsKK30KKworLyoKKyAqIENvYmFsdCAoSU8pLUFQSUMgZnVuY3Rpb25zIHRvIGhhbmRsZSBQQ0kgZGV2aWNlcy4KKyAqLworc3RhdGljIGlubGluZSBpbnQgY29fYXBpY19pZGUwX2hhY2sodm9pZCkKK3sKKwlleHRlcm4gY2hhciB2aXN3c19ib2FyZF90eXBlOworCWV4dGVybiBjaGFyIHZpc3dzX2JvYXJkX3JldjsKKworCWlmICh2aXN3c19ib2FyZF90eXBlID09IFZJU1dTXzMyMCAmJiB2aXN3c19ib2FyZF9yZXYgPT0gNSkKKwkJcmV0dXJuIDU7CisJcmV0dXJuIENPX0FQSUNfSURFMDsKK30KKworc3RhdGljIGludCBpc19jb19hcGljKHVuc2lnbmVkIGludCBpcnEpCit7CisJaWYgKElTX0NPX0FQSUMoaXJxKSkKKwkJcmV0dXJuIENPX0FQSUMoaXJxKTsKKworCXN3aXRjaCAoaXJxKSB7CisJCWNhc2UgMDogcmV0dXJuIENPX0FQSUNfQ1BVOworCQljYXNlIENPX0lSUV9JREUwOiByZXR1cm4gY29fYXBpY19pZGUwX2hhY2soKTsKKwkJY2FzZSBDT19JUlFfSURFMTogcmV0dXJuIENPX0FQSUNfSURFMTsKKwkJZGVmYXVsdDogcmV0dXJuIC0xOworCX0KK30KKworCisvKgorICogVGhpcyBpcyB0aGUgU0dJIENvYmFsdCAoSU8tKUFQSUM6CisgKi8KKworc3RhdGljIHZvaWQgZW5hYmxlX2NvYmFsdF9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwljb19hcGljX3NldChpc19jb19hcGljKGlycSksIGlycSk7Cit9CisKK3N0YXRpYyB2b2lkIGRpc2FibGVfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCWludCBlbnRyeSA9IGlzX2NvX2FwaWMoaXJxKTsKKworCWNvX2FwaWNfd3JpdGUoQ09fQVBJQ19MTyhlbnRyeSksIENPX0FQSUNfTUFTSyk7CisJY29fYXBpY19yZWFkKENPX0FQSUNfTE8oZW50cnkpKTsKK30KKworLyoKKyAqICJpcnEiIHJlYWxseSBqdXN0IHNlcnZlcyB0byBpZGVudGlmeSB0aGUgZGV2aWNlLiAgSGVyZSBpcyB3aGVyZSB3ZQorICogbWFwIHRoaXMgdG8gdGhlIENvYmFsdCBBUElDIGVudHJ5IHdoZXJlIGl0J3MgcGh5c2ljYWxseSB3aXJlZC4KKyAqIFRoaXMgaXMgY2FsbGVkIHZpYSByZXF1ZXN0X2lycSAtPiBzZXR1cF9pcnEgLT4gaXJxX2Rlc2MtPnN0YXJ0dXAoKQorICovCitzdGF0aWMgdW5zaWduZWQgaW50IHN0YXJ0dXBfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKKwlpZiAoKGlycV9kZXNjW2lycV0uc3RhdHVzICYgKElSUV9ESVNBQkxFRCB8IElSUV9JTlBST0dSRVNTIHwgSVJRX1dBSVRJTkcpKSkKKwkJaXJxX2Rlc2NbaXJxXS5zdGF0dXMgJj0gfihJUlFfRElTQUJMRUQgfCBJUlFfSU5QUk9HUkVTUyB8IElSUV9XQUlUSU5HKTsKKwllbmFibGVfY29iYWx0X2lycShpcnEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGFja19jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOworCWRpc2FibGVfY29iYWx0X2lycShpcnEpOworCWFwaWNfd3JpdGUoQVBJQ19FT0ksIEFQSUNfRUlPX0FDSyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgZW5kX2NvYmFsdF9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7CisJaWYgKCEoaXJxX2Rlc2NbaXJxXS5zdGF0dXMgJiAoSVJRX0RJU0FCTEVEIHwgSVJRX0lOUFJPR1JFU1MpKSkKKwkJZW5hYmxlX2NvYmFsdF9pcnEoaXJxKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgc3RydWN0IGlycV9jaGlwIGNvYmFsdF9pcnFfdHlwZSA9IHsKKwkudHlwZW5hbWUgPQkiQ29iYWx0LUFQSUMiLAorCS5zdGFydHVwID0Jc3RhcnR1cF9jb2JhbHRfaXJxLAorCS5zaHV0ZG93biA9CWRpc2FibGVfY29iYWx0X2lycSwKKwkuZW5hYmxlID0JZW5hYmxlX2NvYmFsdF9pcnEsCisJLmRpc2FibGUgPQlkaXNhYmxlX2NvYmFsdF9pcnEsCisJLmFjayA9CQlhY2tfY29iYWx0X2lycSwKKwkuZW5kID0JCWVuZF9jb2JhbHRfaXJxLAorfTsKKworCisvKgorICogVGhpcyBpcyB0aGUgUElJWDQtYmFzZWQgODI1OSB0aGF0IGlzIHdpcmVkIHVwIGluZGlyZWN0bHkgdG8gQ29iYWx0CisgKiAtLSBub3QgdGhlIG1hbm5lciBleHBlY3RlZCBieSB0aGUgY29kZSBpbiBpODI1OS5jLgorICoKKyAqIHRoZXJlIGlzIGEgJ21hc3RlcicgcGh5c2ljYWwgaW50ZXJydXB0IHNvdXJjZSB0aGF0IGdldHMgc2VudCB0bworICogdGhlIENQVS4gQnV0IGluIHRoZSBjaGlwc2V0IHRoZXJlIGFyZSB2YXJpb3VzICd2aXJ0dWFsJyBpbnRlcnJ1cHRzCisgKiB3YWl0aW5nIHRvIGJlIGhhbmRsZWQuIFdlIHJlcHJlc2VudCB0aGlzIHRvIExpbnV4IHRocm91Z2ggYSAnbWFzdGVyJworICogaW50ZXJydXB0IGNvbnRyb2xsZXIgdHlwZSwgYW5kIHRocm91Z2ggYSBzcGVjaWFsIHZpcnR1YWwgaW50ZXJydXB0LQorICogY29udHJvbGxlci4gRGV2aWNlIGRyaXZlcnMgb25seSBzZWUgdGhlIHZpcnR1YWwgaW50ZXJydXB0IHNvdXJjZXMuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgc3RhcnR1cF9waWl4NF9tYXN0ZXJfaXJxKHVuc2lnbmVkIGludCBpcnEpCit7CisJaW5pdF84MjU5QSgwKTsKKworCXJldHVybiBzdGFydHVwX2NvYmFsdF9pcnEoaXJxKTsKK30KKworc3RhdGljIHZvaWQgZW5kX3BpaXg0X21hc3Rlcl9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7CisJZW5hYmxlX2NvYmFsdF9pcnEoaXJxKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgc3RydWN0IGlycV9jaGlwIHBpaXg0X21hc3Rlcl9pcnFfdHlwZSA9IHsKKwkudHlwZW5hbWUgPQkiUElJWDQtbWFzdGVyIiwKKwkuc3RhcnR1cCA9CXN0YXJ0dXBfcGlpeDRfbWFzdGVyX2lycSwKKwkuYWNrID0JCWFja19jb2JhbHRfaXJxLAorCS5lbmQgPQkJZW5kX3BpaXg0X21hc3Rlcl9pcnEsCit9OworCisKK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgcGlpeDRfdmlydHVhbF9pcnFfdHlwZSA9IHsKKwkudHlwZW5hbWUgPQkiUElJWDQtdmlydHVhbCIsCisJLnNodXRkb3duID0JZGlzYWJsZV84MjU5QV9pcnEsCisJLmVuYWJsZSA9CWVuYWJsZV84MjU5QV9pcnEsCisJLmRpc2FibGUgPQlkaXNhYmxlXzgyNTlBX2lycSwKK307CisKKworLyoKKyAqIFBJSVg0LTgyNTkgbWFzdGVyL3ZpcnR1YWwgZnVuY3Rpb25zIHRvIGhhbmRsZSBpbnRlcnJ1cHQgcmVxdWVzdHMKKyAqIGZyb20gbGVnYWN5IGRldmljZXM6IGZsb3BweSwgcGFyYWxsZWwsIHNlcmlhbCwgcnRjLgorICoKKyAqIE5vbmUgb2YgdGhlc2UgZ2V0IENvYmFsdCBBUElDIGVudHJpZXMsIG5laXRoZXIgZG8gdGhleSBoYXZlIElEVAorICogZW50cmllcy4gVGhlc2UgaW50ZXJydXB0cyBhcmUgcHVyZWx5IHZpcnR1YWwgYW5kIGRpc3RyaWJ1dGVkIGZyb20KKyAqIHRoZSAnbWFzdGVyJyBpbnRlcnJ1cHQgc291cmNlOiBDT19JUlFfODI1OS4KKyAqCisgKiBXaGVuIHRoZSA4MjU5IGludGVycnVwdHMgaXRzIGhhbmRsZXIgZmlndXJlcyBvdXQgd2hpY2ggb2YgdGhlc2UKKyAqIGRldmljZXMgaXMgaW50ZXJydXB0aW5nIGFuZCBkaXNwYXRjaGVzIHRvIGl0cyBoYW5kbGVyLgorICoKKyAqIENBUkVGVUw6IGRldmljZXMgc2VlIHRoZSAndmlydHVhbCcgaW50ZXJydXB0IG9ubHkuIFRodXMgZGlzYWJsZS8KKyAqIGVuYWJsZV9pcnEgZ2V0cyB0aGUgcmlnaHQgaXJxLiBUaGlzICdtYXN0ZXInIGlycSBpcyBuZXZlciBkaXJlY3RseQorICogbWFuaXB1bGF0ZWQgYnkgYW55IGRyaXZlci4KKyAqLworc3RhdGljIGlycXJldHVybl90IHBpaXg0X21hc3Rlcl9pbnRyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlpbnQgcmVhbGlycTsKKwlpcnFfZGVzY190ICpkZXNjOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKworCS8qIEZpbmQgb3V0IHdoYXQncyBpbnRlcnJ1cHRpbmcgaW4gdGhlIFBJSVg0IG1hc3RlciA4MjU5ICovCisJb3V0YigweDBjLCAweDIwKTsJCS8qIE9DVzMgUG9sbCBjb21tYW5kICovCisJcmVhbGlycSA9IGluYigweDIwKTsKKworCS8qCisJICogQml0IDcgPT0gMCBtZWFucyBpbnZhbGlkL3NwdXJpb3VzCisJICovCisJaWYgKHVubGlrZWx5KCEocmVhbGlycSAmIDB4ODApKSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJcmVhbGlycSAmPSA3OworCisJaWYgKHVubGlrZWx5KHJlYWxpcnEgPT0gMikpIHsKKwkJb3V0YigweDBjLCAweGEwKTsKKwkJcmVhbGlycSA9IGluYigweGEwKTsKKworCQlpZiAodW5saWtlbHkoIShyZWFsaXJxICYgMHg4MCkpKQorCQkJZ290byBvdXRfdW5sb2NrOworCisJCXJlYWxpcnEgPSAocmVhbGlycSAmIDcpICsgODsKKwl9CisKKwkvKiBtYXNrIGFuZCBhY2sgaW50ZXJydXB0ICovCisJY2FjaGVkX2lycV9tYXNrIHw9IDEgPDwgcmVhbGlycTsKKwlpZiAodW5saWtlbHkocmVhbGlycSA+IDcpKSB7CisJCWluYigweGExKTsKKwkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgMHhhMSk7CisJCW91dGIoMHg2MCArIChyZWFsaXJxICYgNyksIDB4YTApOworCQlvdXRiKDB4NjAgKyAyLCAweDIwKTsKKwl9IGVsc2UgeworCQlpbmIoMHgyMSk7CisJCW91dGIoY2FjaGVkX21hc3Rlcl9tYXNrLCAweDIxKTsKKwkJb3V0YigweDYwICsgcmVhbGlycSwgMHgyMCk7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKworCWRlc2MgPSBpcnFfZGVzYyArIHJlYWxpcnE7CisKKwkvKgorCSAqIGhhbmRsZSB0aGlzICd2aXJ0dWFsIGludGVycnVwdCcgYXMgYSBDb2JhbHQgb25lIG5vdy4KKwkgKi8KKwlrc3RhdF9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpKS5pcnFzW3JlYWxpcnFdKys7CisKKwlpZiAobGlrZWx5KGRlc2MtPmFjdGlvbiAhPSBOVUxMKSkKKwkJaGFuZGxlX0lSUV9ldmVudChyZWFsaXJxLCBkZXNjLT5hY3Rpb24pOworCisJaWYgKCEoZGVzYy0+c3RhdHVzICYgSVJRX0RJU0FCTEVEKSkKKwkJZW5hYmxlXzgyNTlBX2lycShyZWFsaXJxKTsKKworCXJldHVybiBJUlFfSEFORExFRDsKKworb3V0X3VubG9jazoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCXJldHVybiBJUlFfTk9ORTsKK30KKworc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gbWFzdGVyX2FjdGlvbiA9IHsKKwkuaGFuZGxlciA9CXBpaXg0X21hc3Rlcl9pbnRyLAorCS5uYW1lID0JCSJQSUlYNC04MjU5IiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGNhc2NhZGVfYWN0aW9uID0geworCS5oYW5kbGVyID0gCW5vX2FjdGlvbiwKKwkubmFtZSA9CQkiY2FzY2FkZSIsCit9OworCisKK3ZvaWQgaW5pdF9WSVNXU19BUElDX2lycXModm9pZCkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBDT19JUlFfQVBJQzAgKyBDT19BUElDX0xBU1QgKyAxOyBpKyspIHsKKwkJaXJxX2Rlc2NbaV0uc3RhdHVzID0gSVJRX0RJU0FCTEVEOworCQlpcnFfZGVzY1tpXS5hY3Rpb24gPSAwOworCQlpcnFfZGVzY1tpXS5kZXB0aCA9IDE7CisKKwkJaWYgKGkgPT0gMCkgeworCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZjb2JhbHRfaXJxX3R5cGU7CisJCX0KKwkJZWxzZSBpZiAoaSA9PSBDT19JUlFfSURFMCkgeworCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZjb2JhbHRfaXJxX3R5cGU7CisJCX0KKwkJZWxzZSBpZiAoaSA9PSBDT19JUlFfSURFMSkgeworCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZjb2JhbHRfaXJxX3R5cGU7CisJCX0KKwkJZWxzZSBpZiAoaSA9PSBDT19JUlFfODI1OSkgeworCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZwaWl4NF9tYXN0ZXJfaXJxX3R5cGU7CisJCX0KKwkJZWxzZSBpZiAoaSA8IENPX0lSUV9BUElDMCkgeworCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZwaWl4NF92aXJ0dWFsX2lycV90eXBlOworCQl9CisJCWVsc2UgaWYgKElTX0NPX0FQSUMoaSkpIHsKKwkJCWlycV9kZXNjW2ldLmNoaXAgPSAmY29iYWx0X2lycV90eXBlOworCQl9CisJfQorCisJc2V0dXBfaXJxKENPX0lSUV84MjU5LCAmbWFzdGVyX2FjdGlvbik7CisJc2V0dXBfaXJxKDIsICZjYXNjYWRlX2FjdGlvbik7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdm1pXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvdm1pXzMyLmMKaW5kZXggOTU2ZjM4OS4uYjE1MzQ2MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3ZtaV8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC92bWlfMzIuYwpAQCAtMTUxLDcgKzE1MSw3IEBACiAJCQkJCSAgICAgIGluc25zLCBpcCk7CiAJCWNhc2UgUEFSQVZJUlRfUEFUQ0gocHZfY3B1X29wcy5pcmV0KToKIAkJCXJldHVybiBwYXRjaF9pbnRlcm5hbChWTUlfQ0FMTF9JUkVULCBsZW4sIGluc25zLCBpcCk7Ci0JCWNhc2UgUEFSQVZJUlRfUEFUQ0gocHZfY3B1X29wcy5pcnFfZW5hYmxlX3N5c2NhbGxfcmV0KToKKwkJY2FzZSBQQVJBVklSVF9QQVRDSChwdl9jcHVfb3BzLmlycV9lbmFibGVfc3lzZXhpdCk6CiAJCQlyZXR1cm4gcGF0Y2hfaW50ZXJuYWwoVk1JX0NBTExfU1lTRVhJVCwgbGVuLCBpbnNucywgaXApOwogCQlkZWZhdWx0OgogCQkJYnJlYWs7CkBAIC04OTYsNyArODk2LDcgQEAKIAkgKiB0aGUgYmFja2VuZC4gIFRoZXkgYXJlIHBlcmZvcm1hbmNlIGNyaXRpY2FsIGFueXdheSwgc28gcmVxdWlyaW5nCiAJICogYSBwYXRjaCBpcyBub3QgYSBiaWcgcHJvYmxlbS4KIAkgKi8KLQlwdl9jcHVfb3BzLmlycV9lbmFibGVfc3lzY2FsbF9yZXQgPSAodm9pZCAqKTB4ZmVlZGJhYjA7CisJcHZfY3B1X29wcy5pcnFfZW5hYmxlX3N5c2V4aXQgPSAodm9pZCAqKTB4ZmVlZGJhYjA7CiAJcHZfY3B1X29wcy5pcmV0ID0gKHZvaWQgKikweGJhZGJhYjA7CiAKICNpZmRlZiBDT05GSUdfU01QCkBAIC05MzIsNyArOTMyLDcgQEAKIAkJcHZfYXBpY19vcHMuc2V0dXBfc2Vjb25kYXJ5X2Nsb2NrID0gdm1pX3RpbWVfYXBfaW5pdDsKICNlbmRpZgogCQlwdl90aW1lX29wcy5zY2hlZF9jbG9jayA9IHZtaV9zY2hlZF9jbG9jazsKLSAJCXB2X3RpbWVfb3BzLmdldF9jcHVfa2h6ID0gdm1pX2NwdV9raHo7CisJCXB2X3RpbWVfb3BzLmdldF90c2Nfa2h6ID0gdm1pX3RzY19raHo7CiAKIAkJLyogV2UgaGF2ZSB0cnVlIHdhbGxjbG9jayBmdW5jdGlvbnM7IGRpc2FibGUgQ01PUyBjbG9jayBzeW5jICovCiAJCW5vX3N5bmNfY21vc19jbG9jayA9IDE7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdm1pY2xvY2tfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC92bWljbG9ja18zMi5jCmluZGV4IGEyYjAzMDcuLjY5NTM4NTkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC92bWljbG9ja18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC92bWljbG9ja18zMi5jCkBAIC0zMyw4ICszMyw3IEBACiAjaW5jbHVkZSA8YXNtL2FwaWMuaD4KICNpbmNsdWRlIDxhc20vdGltZXIuaD4KICNpbmNsdWRlIDxhc20vaTgyNTMuaD4KLQotI2luY2x1ZGUgPGlycV92ZWN0b3JzLmg+CisjaW5jbHVkZSA8YXNtL2lycV92ZWN0b3JzLmg+CiAKICNkZWZpbmUgVk1JX09ORVNIT1QgIChWTUlfQUxBUk1fSVNfT05FU0hPVCAgfCBWTUlfQ1lDTEVTX1JFQUwgfCB2bWlfZ2V0X2FsYXJtX3dpcmluZygpKQogI2RlZmluZSBWTUlfUEVSSU9ESUMgKFZNSV9BTEFSTV9JU19QRVJJT0RJQyB8IFZNSV9DWUNMRVNfUkVBTCB8IHZtaV9nZXRfYWxhcm1fd2lyaW5nKCkpCkBAIC03MCw4ICs2OSw4IEBACiAJcmV0dXJuIGN5Y2xlc18yX25zKHZtaV90aW1lcl9vcHMuZ2V0X2N5Y2xlX2NvdW50ZXIoVk1JX0NZQ0xFU19BVkFJTEFCTEUpKTsKIH0KIAotLyogcGFyYXZpcnRfb3BzLmdldF9jcHVfa2h6ID0gdm1pX2NwdV9raHogKi8KLXVuc2lnbmVkIGxvbmcgdm1pX2NwdV9raHoodm9pZCkKKy8qIHBhcmF2aXJ0X29wcy5nZXRfdHNjX2toeiA9IHZtaV90c2Nfa2h6ICovCit1bnNpZ25lZCBsb25nIHZtaV90c2Nfa2h6KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBsb25nIGtoejsKIAlraHogPSB2bWlfdGltZXJfb3BzLmdldF9jeWNsZV9mcmVxdWVuY3koKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC92bWxpbnV4XzMyLmxkcy5TIGIvYXJjaC94ODYva2VybmVsL3ZtbGludXhfMzIubGRzLlMKaW5kZXggY2U1ZWQwOC4uY2RiMjM2MyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3ZtbGludXhfMzIubGRzLlMKKysrIGIvYXJjaC94ODYva2VybmVsL3ZtbGludXhfMzIubGRzLlMKQEAgLTQ5LDIzICs0OSwxNCBAQAogICAJX2V0ZXh0ID0gLjsJCQkvKiBFbmQgb2YgdGV4dCBzZWN0aW9uICovCiAgIH0gOnRleHQgPSAweDkwOTAKIAorICBOT1RFUyA6dGV4dCA6bm90ZQorCiAgIC4gPSBBTElHTigxNik7CQkvKiBFeGNlcHRpb24gdGFibGUgKi8KICAgX19leF90YWJsZSA6IEFUKEFERFIoX19leF90YWJsZSkgLSBMT0FEX09GRlNFVCkgewogICAJX19zdGFydF9fX2V4X3RhYmxlID0gLjsKIAkgKihfX2V4X3RhYmxlKQogICAJX19zdG9wX19fZXhfdGFibGUgPSAuOwotICB9Ci0KLSAgTk9URVMgOnRleHQgOm5vdGUKLQotICBCVUdfVEFCTEUgOnRleHQKLQotICAuID0gQUxJR04oNCk7Ci0gIC50cmFjZWRhdGEgOiBBVChBRERSKC50cmFjZWRhdGEpIC0gTE9BRF9PRkZTRVQpIHsKLSAgCV9fdHJhY2VkYXRhX3N0YXJ0ID0gLjsKLQkqKC50cmFjZWRhdGEpCi0gIAlfX3RyYWNlZGF0YV9lbmQgPSAuOwotICB9CisgIH0gOnRleHQgPSAweDkwOTAKIAogICBST0RBVEEKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3ZtbGludXhfNjQubGRzLlMgYi9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF82NC5sZHMuUwppbmRleCBmYWQzNjc0Li42M2U1YzFhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF82NC5sZHMuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF82NC5sZHMuUwpAQCAtMTksNyArMTksNyBAQAogCWRhdGEgUFRfTE9BRCBGTEFHUyg3KTsJLyogUldFICovCiAJdXNlciBQVF9MT0FEIEZMQUdTKDcpOwkvKiBSV0UgKi8KIAlkYXRhLmluaXQgUFRfTE9BRCBGTEFHUyg3KTsJLyogUldFICovCi0Jbm90ZSBQVF9OT1RFIEZMQUdTKDQpOwkvKiBSX18gKi8KKwlub3RlIFBUX05PVEUgRkxBR1MoMCk7CS8qIF9fXyAqLwogfQogU0VDVElPTlMKIHsKQEAgLTQwLDI2ICs0MCwxNyBAQAogCV9ldGV4dCA9IC47CQkvKiBFbmQgb2YgdGV4dCBzZWN0aW9uICovCiAgIH0gOnRleHQgPSAweDkwOTAKIAorICBOT1RFUyA6dGV4dCA6bm90ZQorCiAgIC4gPSBBTElHTigxNik7CQkvKiBFeGNlcHRpb24gdGFibGUgKi8KICAgX19leF90YWJsZSA6IEFUKEFERFIoX19leF90YWJsZSkgLSBMT0FEX09GRlNFVCkgewogICAJX19zdGFydF9fX2V4X3RhYmxlID0gLjsKIAkgKihfX2V4X3RhYmxlKQogICAJX19zdG9wX19fZXhfdGFibGUgPSAuOwotICB9Ci0KLSAgTk9URVMgOnRleHQgOm5vdGUKLQotICBCVUdfVEFCTEUgOnRleHQKKyAgfSA6dGV4dCA9IDB4OTA5MAogCiAgIFJPREFUQQogCi0gIC4gPSBBTElHTig0KTsKLSAgLnRyYWNlZGF0YSA6IEFUKEFERFIoLnRyYWNlZGF0YSkgLSBMT0FEX09GRlNFVCkgewotICAJX190cmFjZWRhdGFfc3RhcnQgPSAuOwotCSooLnRyYWNlZGF0YSkKLSAgCV9fdHJhY2VkYXRhX2VuZCA9IC47Ci0gIH0KLQogICAuID0gQUxJR04oUEFHRV9TSVpFKTsJCS8qIEFsaWduIGRhdGEgc2VnbWVudCB0byBwYWdlIHNpemUgYm91bmRhcnkgKi8KIAkJCQkvKiBEYXRhICovCiAgIC5kYXRhIDogQVQoQUREUiguZGF0YSkgLSBMT0FEX09GRlNFVCkgewpAQCAtMTc3LDYgKzE2OCw3IEBACiAJKiguY29uX2luaXRjYWxsLmluaXQpCiAgIH0KICAgX19jb25faW5pdGNhbGxfZW5kID0gLjsKKyAgLiA9IEFMSUdOKDE2KTsKICAgX194ODZjcHV2ZW5kb3Jfc3RhcnQgPSAuOwogICAueDg2Y3B1dmVuZG9yLmluaXQgOiBBVChBRERSKC54ODZjcHV2ZW5kb3IuaW5pdCkgLSBMT0FEX09GRlNFVCkgewogCSooLng4NmNwdXZlbmRvci5pbml0KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3ZzbXBfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC92c21wXzY0LmMKaW5kZXggYmE4YzBiNy4uMGMwMjllOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3ZzbXBfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdnNtcF82NC5jCkBAIC0xNSw5ICsxNSwxMiBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wY2lfaWRzLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpX3JlZ3MuaD4KKworI2luY2x1ZGUgPGFzbS9hcGljLmg+CiAjaW5jbHVkZSA8YXNtL3BjaS1kaXJlY3QuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAogI2lmIGRlZmluZWQgQ09ORklHX1BDSSAmJiBkZWZpbmVkIENPTkZJR19QQVJBVklSVAogLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC92c3lzY2FsbF82NC5jIGIvYXJjaC94ODYva2VybmVsL3ZzeXNjYWxsXzY0LmMKaW5kZXggMGRjYWUxOS4uMGI4YjY2OTAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC92c3lzY2FsbF82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC92c3lzY2FsbF82NC5jCkBAIC00Miw3ICs0Miw4IEBACiAjaW5jbHVkZSA8YXNtL3RvcG9sb2d5Lmg+CiAjaW5jbHVkZSA8YXNtL3ZndG9kLmg+CiAKLSNkZWZpbmUgX192c3lzY2FsbChucikgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCxfX3NlY3Rpb25fXygiLnZzeXNjYWxsXyIgI25yKSkpCisjZGVmaW5lIF9fdnN5c2NhbGwobnIpIFwKKwkJX19hdHRyaWJ1dGVfXyAoKHVudXNlZCwgX19zZWN0aW9uX18oIi52c3lzY2FsbF8iICNucikpKSBub3RyYWNlCiAjZGVmaW5lIF9fc3lzY2FsbF9jbG9iYmVyICJyMTEiLCJjeCIsIm1lbW9yeSIKIAogLyoKQEAgLTI0OSw3ICsyNTAsNyBAQAogICAgZG9lc24ndCB2aW9sYXRlIHRoYXQuIFdlJ2xsIGZpbmQgb3V0IGlmIGl0IGRvZXMuICovCiBzdGF0aWMgdm9pZCBfX2NwdWluaXQgdnN5c2NhbGxfc2V0X2NwdShpbnQgY3B1KQogewotCXVuc2lnbmVkIGxvbmcgKmQ7CisJdW5zaWduZWQgbG9uZyBkOwogCXVuc2lnbmVkIGxvbmcgbm9kZSA9IDA7CiAjaWZkZWYgQ09ORklHX05VTUEKIAlub2RlID0gY3B1X3RvX25vZGUoY3B1KTsKQEAgLTI2MCwxMSArMjYxLDExIEBACiAJLyogU3RvcmUgY3B1IG51bWJlciBpbiBsaW1pdCBzbyB0aGF0IGl0IGNhbiBiZSBsb2FkZWQgcXVpY2tseQogCSAgIGluIHVzZXIgc3BhY2UgaW4gdmdldGNwdS4KIAkgICAxMiBiaXRzIGZvciB0aGUgQ1BVIGFuZCA4IGJpdHMgZm9yIHRoZSBub2RlLiAqLwotCWQgPSAodW5zaWduZWQgbG9uZyAqKShnZXRfY3B1X2dkdF90YWJsZShjcHUpICsgR0RUX0VOVFJZX1BFUl9DUFUpOwotCSpkID0gMHgwZjQwMDAwMDAwMDAwVUxMOwotCSpkIHw9IGNwdTsKLQkqZCB8PSAobm9kZSAmIDB4ZikgPDwgMTI7Ci0JKmQgfD0gKG5vZGUgPj4gNCkgPDwgNDg7CisJZCA9IDB4MGY0MDAwMDAwMDAwMFVMTDsKKwlkIHw9IGNwdTsKKwlkIHw9IChub2RlICYgMHhmKSA8PCAxMjsKKwlkIHw9IChub2RlID4+IDQpIDw8IDQ4OworCXdyaXRlX2dkdF9lbnRyeShnZXRfY3B1X2dkdF90YWJsZShjcHUpLCBHRFRfRU5UUllfUEVSX0NQVSwgJmQsIERFU0NUWVBFX1MpOwogfQogCiBzdGF0aWMgdm9pZCBfX2NwdWluaXQgY3B1X3ZzeXNjYWxsX2luaXQodm9pZCAqYXJnKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3g4NjY0X2tzeW1zXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwveDg2NjRfa3N5bXNfNjQuYwppbmRleCBmNmMwNWQwLi5iNTQ1ZjM3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwveDg2NjRfa3N5bXNfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwveDg2NjRfa3N5bXNfNjQuYwpAQCAtMiwxMyArMiwyMCBAQAogICAgQWxsIEMgZXhwb3J0cyBzaG91bGQgZ28gaW4gdGhlIHJlc3BlY3RpdmUgQyBmaWxlcy4gKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPG5ldC9jaGVja3N1bS5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogCisjaW5jbHVkZSA8bmV0L2NoZWNrc3VtLmg+CisKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0jaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisvKiBtY291bnQgaXMgZGVmaW5lZCBpbiBhc3NlbWJseSAqLworRVhQT1JUX1NZTUJPTChtY291bnQpOworI2VuZGlmCiAKIEVYUE9SVF9TWU1CT0woa2VybmVsX3RocmVhZCk7CiAKQEAgLTUzLDggKzYwLDMgQEAKIEVYUE9SVF9TWU1CT0wobG9hZF9nc19pbmRleCk7CiAKIEVYUE9SVF9TWU1CT0woX3Byb3h5X3BkYSk7Ci0KLSNpZmRlZiBDT05GSUdfUEFSQVZJUlQKLS8qIFZpcnR1YWxpemVkIGd1ZXN0cyBtYXkgd2FudCB0byB1c2UgaXQgKi8KLUVYUE9SVF9TWU1CT0xfR1BMKGNwdV9nZHRfZGVzY3IpOwotI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9sZ3Vlc3QvS2NvbmZpZyBiL2FyY2gveDg2L2xndWVzdC9LY29uZmlnCmluZGV4IDk2NGRmYTMuLmM3MGUxMmIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xndWVzdC9LY29uZmlnCisrKyBiL2FyY2gveDg2L2xndWVzdC9LY29uZmlnCkBAIC0zLDcgKzMsNyBAQAogCXNlbGVjdCBQQVJBVklSVAogCWRlcGVuZHMgb24gWDg2XzMyCiAJZGVwZW5kcyBvbiAhWDg2X1BBRQotCWRlcGVuZHMgb24gIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAlzZWxlY3QgVklSVElPCiAJc2VsZWN0IFZJUlRJT19SSU5HCiAJc2VsZWN0IFZJUlRJT19DT05TT0xFCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9sZ3Vlc3QvYm9vdC5jIGIvYXJjaC94ODYvbGd1ZXN0L2Jvb3QuYwppbmRleCA1YzdlMmZkLi41MGRhZDQ0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9sZ3Vlc3QvYm9vdC5jCisrKyBiL2FyY2gveDg2L2xndWVzdC9ib290LmMKQEAgLTYwNyw3ICs2MDcsNyBAQAogICogd2hhdCBzcGVlZCBpdCBydW5zIGF0LCBvciAwIGlmIGl0J3MgdW51c2FibGUgYXMgYSByZWxpYWJsZSBjbG9jayBzb3VyY2UuCiAgKiBUaGlzIG1hdGNoZXMgd2hhdCB3ZSB3YW50IGhlcmU6IGlmIHdlIHJldHVybiAwIGZyb20gdGhpcyBmdW5jdGlvbiwgdGhlIHg4NgogICogVFNDIGNsb2NrIHdpbGwgZ2l2ZSB1cCBhbmQgbm90IHJlZ2lzdGVyIGl0c2VsZi4gKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxndWVzdF9jcHVfa2h6KHZvaWQpCitzdGF0aWMgdW5zaWduZWQgbG9uZyBsZ3Vlc3RfdHNjX2toeih2b2lkKQogewogCXJldHVybiBsZ3Vlc3RfZGF0YS50c2Nfa2h6OwogfQpAQCAtODM1LDcgKzgzNSw3IEBACiAKIAkvKiBUaGUgTGludXggYm9vdGxvYWRlciBoZWFkZXIgY29udGFpbnMgYW4gImU4MjAiIG1lbW9yeSBtYXA6IHRoZQogCSAqIExhdW5jaGVyIHBvcHVsYXRlZCB0aGUgZmlyc3QgZW50cnkgd2l0aCBvdXIgbWVtb3J5IGxpbWl0LiAqLwotCWFkZF9tZW1vcnlfcmVnaW9uKGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLmFkZHIsCisJZTgyMF9hZGRfcmVnaW9uKGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLmFkZHIsCiAJCQkgIGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLnNpemUsCiAJCQkgIGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLnR5cGUpOwogCkBAIC05OTgsNyArOTk4LDcgQEAKIAkvKiB0aW1lIG9wZXJhdGlvbnMgKi8KIAlwdl90aW1lX29wcy5nZXRfd2FsbGNsb2NrID0gbGd1ZXN0X2dldF93YWxsY2xvY2s7CiAJcHZfdGltZV9vcHMudGltZV9pbml0ID0gbGd1ZXN0X3RpbWVfaW5pdDsKLQlwdl90aW1lX29wcy5nZXRfY3B1X2toeiA9IGxndWVzdF9jcHVfa2h6OworCXB2X3RpbWVfb3BzLmdldF90c2Nfa2h6ID0gbGd1ZXN0X3RzY19raHo7CiAKIAkvKiBOb3cgaXMgYSBnb29kIHRpbWUgdG8gbG9vayBhdCB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZXNlIGZ1bmN0aW9ucwogCSAqIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIHJlc3Qgb2YgbGd1ZXN0X2luaXQoKS4gKi8KQEAgLTEwMTIsNiArMTAxMiw3IEBACiAJICogY2xvYmJlcmVkLiAgVGhlIExhdW5jaGVyIHBsYWNlcyBvdXIgaW5pdGlhbCBwYWdldGFibGVzIHNvbWV3aGVyZSBhdAogCSAqIHRoZSB0b3Agb2Ygb3VyIHBoeXNpY2FsIG1lbW9yeSwgc28gd2UgZG9uJ3QgbmVlZCBleHRyYSBzcGFjZTogc2V0CiAJICogaW5pdF9wZ190YWJsZXNfZW5kIHRvIHRoZSBlbmQgb2YgdGhlIGtlcm5lbC4gKi8KKwlpbml0X3BnX3RhYmxlc19zdGFydCA9IF9fcGEocGcwKTsKIAlpbml0X3BnX3RhYmxlc19lbmQgPSBfX3BhKHBnMCk7CiAKIAkvKiBMb2FkIHRoZSAlZnMgc2VnbWVudCByZWdpc3RlciAodGhlIHBlci1jcHUgc2VnbWVudCByZWdpc3Rlcikgd2l0aApAQCAtMTA2NSw5ICsxMDY2LDkgQEAKIAlwbV9wb3dlcl9vZmYgPSBsZ3Vlc3RfcG93ZXJfb2ZmOwogCW1hY2hpbmVfb3BzLnJlc3RhcnQgPSBsZ3Vlc3RfcmVzdGFydDsKIAotCS8qIE5vdyB3ZSdyZSBzZXQgdXAsIGNhbGwgc3RhcnRfa2VybmVsKCkgaW4gaW5pdC9tYWluLmMgYW5kIHdlIHByb2NlZWQKKwkvKiBOb3cgd2UncmUgc2V0IHVwLCBjYWxsIGkzODZfc3RhcnRfa2VybmVsKCkgaW4gaGVhZDMyLmMgYW5kIHdlIHByb2NlZWQKIAkgKiB0byBib290IGFzIG5vcm1hbC4gIEl0IG5ldmVyIHJldHVybnMuICovCi0Jc3RhcnRfa2VybmVsKCk7CisJaTM4Nl9zdGFydF9rZXJuZWwoKTsKIH0KIC8qCiAgKiBUaGlzIG1hcmtzIHRoZSBlbmQgb2Ygc3RhZ2UgSUkgb2Ygb3VyIGpvdXJuZXksIFRoZSBHdWVzdC4KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9NYWtlZmlsZSBiL2FyY2gveDg2L2xpYi9NYWtlZmlsZQppbmRleCA3NmY2MGY1Li5hYTNmYTQxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9saWIvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvbGliL01ha2VmaWxlCkBAIC00LDggKzQsOSBAQAogCiBvYmotJChDT05GSUdfU01QKSA6PSBtc3Itb24tY3B1Lm8KIAotbGliLXkgOj0gZGVsYXlfJChCSVRTKS5vCi1saWIteSArPSB1c2VyY29weV8kKEJJVFMpLm8gZ2V0dXNlcl8kKEJJVFMpLm8gcHV0dXNlcl8kKEJJVFMpLm8KK2xpYi15IDo9IGRlbGF5Lm8KK2xpYi15ICs9IHRodW5rXyQoQklUUykubworbGliLXkgKz0gdXNlcmNvcHlfJChCSVRTKS5vIGdldHVzZXIubyBwdXR1c2VyLm8KIGxpYi15ICs9IG1lbWNweV8kKEJJVFMpLm8KIAogaWZlcSAoJChDT05GSUdfWDg2XzMyKSx5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2NvcHlfdXNlcl82NC5TIGIvYXJjaC94ODYvbGliL2NvcHlfdXNlcl82NC5TCmluZGV4IGVlMWMzZjYuLmRmZGY0MjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfNjQuUworKysgYi9hcmNoL3g4Ni9saWIvY29weV91c2VyXzY0LlMKQEAgLTEsOCArMSwxMCBAQAotLyogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgorLyoKKyAqIENvcHlyaWdodCAyMDA4IFZpdGFseSBNYXlhdHNraWtoIDx2bWF5YXRza0ByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgogICogU3ViamVjdCB0byB0aGUgR05VIFB1YmxpYyBMaWNlbnNlIHYyLgotICogCi0gKiBGdW5jdGlvbnMgdG8gY29weSBmcm9tIGFuZCB0byB1c2VyIHNwYWNlLgkJCi0gKi8JCSAKKyAqCisgKiBGdW5jdGlvbnMgdG8gY29weSBmcm9tIGFuZCB0byB1c2VyIHNwYWNlLgorICovCiAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgpAQCAtMjAsNjAgKzIyLDg4IEBACiAJLmxvbmcgXG9yaWctMWYJLyogYnkgZGVmYXVsdCBqdW1wIHRvIG9yaWcgKi8KIDE6CiAJLnNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCJheCIKLTI6CS5ieXRlIDB4ZTkJICAgICAgICAgICAgIC8qIG5lYXIganVtcCB3aXRoIDMyYml0IGltbWVkaWF0ZSAqLworMjoJLmJ5dGUgMHhlOQkJCS8qIG5lYXIganVtcCB3aXRoIDMyYml0IGltbWVkaWF0ZSAqLwogCS5sb25nIFxhbHQtMWIgLyogb2Zmc2V0ICovICAgLyogb3IgYWx0ZXJuYXRpdmVseSB0byBhbHQgKi8KIAkucHJldmlvdXMKIAkuc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLCJhIgogCS5hbGlnbiA4CiAJLnF1YWQgIDBiCiAJLnF1YWQgIDJiCi0JLmJ5dGUgIFxmZWF0dXJlCQkgICAgIC8qIHdoZW4gZmVhdHVyZSBpcyBzZXQgKi8KKwkuYnl0ZSAgXGZlYXR1cmUJCQkvKiB3aGVuIGZlYXR1cmUgaXMgc2V0ICovCiAJLmJ5dGUgIDUKIAkuYnl0ZSAgNQogCS5wcmV2aW91cwogCS5lbmRtCiAKLS8qIFN0YW5kYXJkIGNvcHlfdG9fdXNlciB3aXRoIHNlZ21lbnQgbGltaXQgY2hlY2tpbmcgKi8JCQorCS5tYWNybyBBTElHTl9ERVNUSU5BVElPTgorI2lmZGVmIEZJWF9BTElHTk1FTlQKKwkvKiBjaGVjayBmb3IgYmFkIGFsaWdubWVudCBvZiBkZXN0aW5hdGlvbiAqLworCW1vdmwgJWVkaSwlZWN4CisJYW5kbCAkNywlZWN4CisJanogMTAyZgkJCQkvKiBhbHJlYWR5IGFsaWduZWQgKi8KKwlzdWJsICQ4LCVlY3gKKwluZWdsICVlY3gKKwlzdWJsICVlY3gsJWVkeAorMTAwOgltb3ZiICglcnNpKSwlYWwKKzEwMToJbW92YiAlYWwsKCVyZGkpCisJaW5jcSAlcnNpCisJaW5jcSAlcmRpCisJZGVjbCAlZWN4CisJam56IDEwMGIKKzEwMjoKKwkuc2VjdGlvbiAuZml4dXAsImF4IgorMTAzOglhZGRsICVyOGQsJWVkeAkJCS8qIGVjeCBpcyB6ZXJvcmVzdCBhbHNvICovCisJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbAorCS5wcmV2aW91cworCisJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKKwkuYWxpZ24gOAorCS5xdWFkIDEwMGIsMTAzYgorCS5xdWFkIDEwMWIsMTAzYgorCS5wcmV2aW91cworI2VuZGlmCisJLmVuZG0KKworLyogU3RhbmRhcmQgY29weV90b191c2VyIHdpdGggc2VnbWVudCBsaW1pdCBjaGVja2luZyAqLwogRU5UUlkoY29weV90b191c2VyKQogCUNGSV9TVEFSVFBST0MKIAlHRVRfVEhSRUFEX0lORk8oJXJheCkKIAltb3ZxICVyZGksJXJjeAogCWFkZHEgJXJkeCwlcmN4Ci0JamMgIGJhZF90b191c2VyCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXJheCksJXJjeAorCWpjIGJhZF90b191c2VyCisJY21wcSBUSV9hZGRyX2xpbWl0KCVyYXgpLCVyY3gKIAlqYWUgYmFkX3RvX3VzZXIKLQl4b3JsICVlYXgsJWVheAkvKiBjbGVhciB6ZXJvIGZsYWcgKi8KIAlBTFRFUk5BVElWRV9KVU1QIFg4Nl9GRUFUVVJFX1JFUF9HT09ELGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkLGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZwogCUNGSV9FTkRQUk9DCiAKLUVOVFJZKGNvcHlfdXNlcl9nZW5lcmljKQotCUNGSV9TVEFSVFBST0MKLQltb3ZsICQxLCVlY3gJLyogc2V0IHplcm8gZmxhZyAqLwotCUFMVEVSTkFUSVZFX0pVTVAgWDg2X0ZFQVRVUkVfUkVQX0dPT0QsY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQsY29weV91c2VyX2dlbmVyaWNfc3RyaW5nCi0JQ0ZJX0VORFBST0MKLQotRU5UUlkoX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pYykKLQlDRklfU1RBUlRQUk9DCi0JeG9ybCAlZWN4LCVlY3gJLyogY2xlYXIgemVybyBmbGFnICovCi0JQUxURVJOQVRJVkVfSlVNUCBYODZfRkVBVFVSRV9SRVBfR09PRCxjb3B5X3VzZXJfZ2VuZXJpY191bnJvbGxlZCxjb3B5X3VzZXJfZ2VuZXJpY19zdHJpbmcKLQlDRklfRU5EUFJPQwotCi0vKiBTdGFuZGFyZCBjb3B5X2Zyb21fdXNlciB3aXRoIHNlZ21lbnQgbGltaXQgY2hlY2tpbmcgKi8JCisvKiBTdGFuZGFyZCBjb3B5X2Zyb21fdXNlciB3aXRoIHNlZ21lbnQgbGltaXQgY2hlY2tpbmcgKi8KIEVOVFJZKGNvcHlfZnJvbV91c2VyKQogCUNGSV9TVEFSVFBST0MKIAlHRVRfVEhSRUFEX0lORk8oJXJheCkKIAltb3ZxICVyc2ksJXJjeAogCWFkZHEgJXJkeCwlcmN4Ci0JamMgIGJhZF9mcm9tX3VzZXIKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcmF4KSwlcmN4Ci0JamFlICBiYWRfZnJvbV91c2VyCi0JbW92bCAkMSwlZWN4CS8qIHNldCB6ZXJvIGZsYWcgKi8KKwlqYyBiYWRfZnJvbV91c2VyCisJY21wcSBUSV9hZGRyX2xpbWl0KCVyYXgpLCVyY3gKKwlqYWUgYmFkX2Zyb21fdXNlcgogCUFMVEVSTkFUSVZFX0pVTVAgWDg2X0ZFQVRVUkVfUkVQX0dPT0QsY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQsY29weV91c2VyX2dlbmVyaWNfc3RyaW5nCiAJQ0ZJX0VORFBST0MKIEVORFBST0MoY29weV9mcm9tX3VzZXIpCi0JCisKK0VOVFJZKGNvcHlfdXNlcl9nZW5lcmljKQorCUNGSV9TVEFSVFBST0MKKwlBTFRFUk5BVElWRV9KVU1QIFg4Nl9GRUFUVVJFX1JFUF9HT09ELGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkLGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZworCUNGSV9FTkRQUk9DCitFTkRQUk9DKGNvcHlfdXNlcl9nZW5lcmljKQorCitFTlRSWShfX2NvcHlfZnJvbV91c2VyX2luYXRvbWljKQorCUNGSV9TVEFSVFBST0MKKwlBTFRFUk5BVElWRV9KVU1QIFg4Nl9GRUFUVVJFX1JFUF9HT09ELGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkLGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZworCUNGSV9FTkRQUk9DCitFTkRQUk9DKF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMpCisKIAkuc2VjdGlvbiAuZml4dXAsImF4IgogCS8qIG11c3QgemVybyBkZXN0ICovCitFTlRSWShiYWRfZnJvbV91c2VyKQogYmFkX2Zyb21fdXNlcjoKIAlDRklfU1RBUlRQUk9DCiAJbW92bCAlZWR4LCVlY3gKQEAgLTgxLDI3MSArMTExLDE1OCBAQAogCXJlcAogCXN0b3NiCiBiYWRfdG9fdXNlcjoKLQltb3ZsCSVlZHgsJWVheAorCW1vdmwgJWVkeCwlZWF4CiAJcmV0CiAJQ0ZJX0VORFBST0MKLUVORChiYWRfZnJvbV91c2VyKQorRU5EUFJPQyhiYWRfZnJvbV91c2VyKQogCS5wcmV2aW91cwotCQotCQkKKwogLyoKICAqIGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkIC0gbWVtb3J5IGNvcHkgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcuCi0gKiBUaGlzIHZlcnNpb24gaXMgZm9yIENQVXMgbGlrZSBQNCB0aGF0IGRvbid0IGhhdmUgZWZmaWNpZW50IG1pY3JvIGNvZGUgZm9yIHJlcCBtb3ZzcQotICogCQotICogSW5wdXQ6CQorICogVGhpcyB2ZXJzaW9uIGlzIGZvciBDUFVzIGxpa2UgUDQgdGhhdCBkb24ndCBoYXZlIGVmZmljaWVudCBtaWNybworICogY29kZSBmb3IgcmVwIG1vdnNxCisgKgorICogSW5wdXQ6CiAgKiByZGkgZGVzdGluYXRpb24KICAqIHJzaSBzb3VyY2UKICAqIHJkeCBjb3VudAotICogZWN4IHplcm8gZmxhZyAtLSBpZiB0cnVlIHplcm8gZGVzdGluYXRpb24gb24gZXJyb3IKICAqCi0gKiBPdXRwdXQ6CQkKLSAqIGVheCB1bmNvcGllZCBieXRlcyBvciAwIGlmIHN1Y2Nlc3NmdWwuCisgKiBPdXRwdXQ6CisgKiBlYXggdW5jb3BpZWQgYnl0ZXMgb3IgMCBpZiBzdWNjZXNzZnVsbC4KICAqLwogRU5UUlkoY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQpCiAJQ0ZJX1NUQVJUUFJPQwotCXB1c2hxICVyYngKLQlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAotCUNGSV9SRUxfT0ZGU0VUIHJieCwgMAotCXB1c2hxICVyY3gKLQlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAotCUNGSV9SRUxfT0ZGU0VUIHJjeCwgMAotCXhvcmwgJWVheCwlZWF4CQkvKnplcm8gZm9yIHRoZSBleGNlcHRpb24gaGFuZGxlciAqLwotCi0jaWZkZWYgRklYX0FMSUdOTUVOVAotCS8qIGNoZWNrIGZvciBiYWQgYWxpZ25tZW50IG9mIGRlc3RpbmF0aW9uICovCi0JbW92bCAlZWRpLCVlY3gKLQlhbmRsICQ3LCVlY3gKLQlqbnogIC5MYmFkX2FsaWdubWVudAotLkxhZnRlcl9iYWRfYWxpZ25tZW50OgotI2VuZGlmCi0KLQltb3ZxICVyZHgsJXJjeAotCi0JbW92bCAkNjQsJWVieAotCXNocnEgJDYsJXJkeAotCWRlY3EgJXJkeAotCWpzICAgLkxoYW5kbGVfdGFpbAotCi0JLnAyYWxpZ24gNAotLkxsb29wOgotLkxzMToJbW92cSAoJXJzaSksJXIxMQotLkxzMjoJbW92cSAxKjgoJXJzaSksJXI4Ci0uTHMzOgltb3ZxIDIqOCglcnNpKSwlcjkKLS5MczQ6CW1vdnEgMyo4KCVyc2kpLCVyMTAKLS5MZDE6CW1vdnEgJXIxMSwoJXJkaSkKLS5MZDI6CW1vdnEgJXI4LDEqOCglcmRpKQotLkxkMzoJbW92cSAlcjksMio4KCVyZGkpCi0uTGQ0Ogltb3ZxICVyMTAsMyo4KCVyZGkpCi0KLS5MczU6CW1vdnEgNCo4KCVyc2kpLCVyMTEKLS5MczY6CW1vdnEgNSo4KCVyc2kpLCVyOAotLkxzNzoJbW92cSA2KjgoJXJzaSksJXI5Ci0uTHM4Ogltb3ZxIDcqOCglcnNpKSwlcjEwCi0uTGQ1Ogltb3ZxICVyMTEsNCo4KCVyZGkpCi0uTGQ2Ogltb3ZxICVyOCw1KjgoJXJkaSkKLS5MZDc6CW1vdnEgJXI5LDYqOCglcmRpKQotLkxkODoJbW92cSAlcjEwLDcqOCglcmRpKQotCi0JZGVjcSAlcmR4Ci0KKwljbXBsICQ4LCVlZHgKKwlqYiAyMGYJCS8qIGxlc3MgdGhlbiA4IGJ5dGVzLCBnbyB0byBieXRlIGNvcHkgbG9vcCAqLworCUFMSUdOX0RFU1RJTkFUSU9OCisJbW92bCAlZWR4LCVlY3gKKwlhbmRsICQ2MywlZWR4CisJc2hybCAkNiwlZWN4CisJanogMTdmCisxOgltb3ZxICglcnNpKSwlcjgKKzI6CW1vdnEgMSo4KCVyc2kpLCVyOQorMzoJbW92cSAyKjgoJXJzaSksJXIxMAorNDoJbW92cSAzKjgoJXJzaSksJXIxMQorNToJbW92cSAlcjgsKCVyZGkpCis2Ogltb3ZxICVyOSwxKjgoJXJkaSkKKzc6CW1vdnEgJXIxMCwyKjgoJXJkaSkKKzg6CW1vdnEgJXIxMSwzKjgoJXJkaSkKKzk6CW1vdnEgNCo4KCVyc2kpLCVyOAorMTA6CW1vdnEgNSo4KCVyc2kpLCVyOQorMTE6CW1vdnEgNio4KCVyc2kpLCVyMTAKKzEyOgltb3ZxIDcqOCglcnNpKSwlcjExCisxMzoJbW92cSAlcjgsNCo4KCVyZGkpCisxNDoJbW92cSAlcjksNSo4KCVyZGkpCisxNToJbW92cSAlcjEwLDYqOCglcmRpKQorMTY6CW1vdnEgJXIxMSw3KjgoJXJkaSkKIAlsZWFxIDY0KCVyc2kpLCVyc2kKIAlsZWFxIDY0KCVyZGkpLCVyZGkKLQotCWpucyAgLkxsb29wCi0KLQkucDJhbGlnbiA0Ci0uTGhhbmRsZV90YWlsOgotCW1vdmwgJWVjeCwlZWR4Ci0JYW5kbCAkNjMsJWVjeAorCWRlY2wgJWVjeAorCWpueiAxYgorMTc6CW1vdmwgJWVkeCwlZWN4CisJYW5kbCAkNywlZWR4CiAJc2hybCAkMywlZWN4Ci0JanogICAuTGhhbmRsZV83Ci0JbW92bCAkOCwlZWJ4Ci0JLnAyYWxpZ24gNAotLkxsb29wXzg6Ci0uTHM5Ogltb3ZxICglcnNpKSwlcjgKLS5MZDk6CW1vdnEgJXI4LCglcmRpKQotCWRlY2wgJWVjeAotCWxlYXEgOCglcmRpKSwlcmRpCisJanogMjBmCisxODoJbW92cSAoJXJzaSksJXI4CisxOToJbW92cSAlcjgsKCVyZGkpCiAJbGVhcSA4KCVyc2kpLCVyc2kKLQlqbnogLkxsb29wXzgKLQotLkxoYW5kbGVfNzoKKwlsZWFxIDgoJXJkaSksJXJkaQorCWRlY2wgJWVjeAorCWpueiAxOGIKKzIwOglhbmRsICVlZHgsJWVkeAorCWp6IDIzZgogCW1vdmwgJWVkeCwlZWN4Ci0JYW5kbCAkNywlZWN4Ci0JanogICAuTGVuZGUKLQkucDJhbGlnbiA0Ci0uTGxvb3BfMToKLS5MczEwOgltb3ZiICglcnNpKSwlYmwKLS5MZDEwOgltb3ZiICVibCwoJXJkaSkKLQlpbmNxICVyZGkKKzIxOgltb3ZiICglcnNpKSwlYWwKKzIyOgltb3ZiICVhbCwoJXJkaSkKIAlpbmNxICVyc2kKKwlpbmNxICVyZGkKIAlkZWNsICVlY3gKLQlqbnogLkxsb29wXzEKLQotCUNGSV9SRU1FTUJFUl9TVEFURQotLkxlbmRlOgotCXBvcHEgJXJjeAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAotCUNGSV9SRVNUT1JFIHJjeAotCXBvcHEgJXJieAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAotCUNGSV9SRVNUT1JFIHJieAorCWpueiAyMWIKKzIzOgl4b3IgJWVheCwlZWF4CiAJcmV0Ci0JQ0ZJX1JFU1RPUkVfU1RBVEUKIAotI2lmZGVmIEZJWF9BTElHTk1FTlQKLQkvKiBhbGlnbiBkZXN0aW5hdGlvbiAqLwotCS5wMmFsaWduIDQKLS5MYmFkX2FsaWdubWVudDoKLQltb3ZsICQ4LCVyOWQKLQlzdWJsICVlY3gsJXI5ZAotCW1vdmwgJXI5ZCwlZWN4Ci0JY21wcSAlcjksJXJkeAotCWp6ICAgLkxoYW5kbGVfNwotCWpzICAgLkxoYW5kbGVfNwotLkxhbGlnbl8xOgotLkxzMTE6CW1vdmIgKCVyc2kpLCVibAotLkxkMTE6CW1vdmIgJWJsLCglcmRpKQotCWluY3EgJXJzaQotCWluY3EgJXJkaQotCWRlY2wgJWVjeAotCWpueiAuTGFsaWduXzEKLQlzdWJxICVyOSwlcmR4Ci0Jam1wIC5MYWZ0ZXJfYmFkX2FsaWdubWVudAotI2VuZGlmCisJLnNlY3Rpb24gLmZpeHVwLCJheCIKKzMwOglzaGxsICQ2LCVlY3gKKwlhZGRsICVlY3gsJWVkeAorCWptcCA2MGYKKzQwOglsZWEgKCVyZHgsJXJjeCw4KSwlcmR4CisJam1wIDYwZgorNTA6CW1vdmwgJWVjeCwlZWR4Cis2MDoJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbCAvKiBlY3ggaXMgemVyb3Jlc3QgYWxzbyAqLworCS5wcmV2aW91cwogCi0JLyogdGFibGUgc29ydGVkIGJ5IGV4Y2VwdGlvbiBhZGRyZXNzICovCiAJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKIAkuYWxpZ24gOAotCS5xdWFkIC5MczEsLkxzMWUJLyogTHMxLUxzNCBoYXZlIGNvcGllZCB6ZXJvIGJ5dGVzICovCi0JLnF1YWQgLkxzMiwuTHMxZQotCS5xdWFkIC5MczMsLkxzMWUKLQkucXVhZCAuTHM0LC5MczFlCi0JLnF1YWQgLkxkMSwuTHMxZQkvKiBMZDEtTGQ0IGhhdmUgY29waWVkIDAtMjQgYnl0ZXMgKi8KLQkucXVhZCAuTGQyLC5MczJlCi0JLnF1YWQgLkxkMywuTHMzZQotCS5xdWFkIC5MZDQsLkxzNGUKLQkucXVhZCAuTHM1LC5MczVlCS8qIExzNS1MczggaGF2ZSBjb3BpZWQgMzIgYnl0ZXMgKi8KLQkucXVhZCAuTHM2LC5MczVlCi0JLnF1YWQgLkxzNywuTHM1ZQotCS5xdWFkIC5MczgsLkxzNWUKLQkucXVhZCAuTGQ1LC5MczVlCS8qIExkNS1MZDggaGF2ZSBjb3BpZWQgMzItNTYgYnl0ZXMgKi8KLQkucXVhZCAuTGQ2LC5MczZlCi0JLnF1YWQgLkxkNywuTHM3ZQotCS5xdWFkIC5MZDgsLkxzOGUKLQkucXVhZCAuTHM5LC5MZV9xdWFkCi0JLnF1YWQgLkxkOSwuTGVfcXVhZAotCS5xdWFkIC5MczEwLC5MZV9ieXRlCi0JLnF1YWQgLkxkMTAsLkxlX2J5dGUKLSNpZmRlZiBGSVhfQUxJR05NRU5UCi0JLnF1YWQgLkxzMTEsLkx6ZXJvX3Jlc3QKLQkucXVhZCAuTGQxMSwuTHplcm9fcmVzdAotI2VuZGlmCi0JLnF1YWQgLkxlNSwuTGVfemVybworCS5xdWFkIDFiLDMwYgorCS5xdWFkIDJiLDMwYgorCS5xdWFkIDNiLDMwYgorCS5xdWFkIDRiLDMwYgorCS5xdWFkIDViLDMwYgorCS5xdWFkIDZiLDMwYgorCS5xdWFkIDdiLDMwYgorCS5xdWFkIDhiLDMwYgorCS5xdWFkIDliLDMwYgorCS5xdWFkIDEwYiwzMGIKKwkucXVhZCAxMWIsMzBiCisJLnF1YWQgMTJiLDMwYgorCS5xdWFkIDEzYiwzMGIKKwkucXVhZCAxNGIsMzBiCisJLnF1YWQgMTViLDMwYgorCS5xdWFkIDE2YiwzMGIKKwkucXVhZCAxOGIsNDBiCisJLnF1YWQgMTliLDQwYgorCS5xdWFkIDIxYiw1MGIKKwkucXVhZCAyMmIsNTBiCiAJLnByZXZpb3VzCi0KLQkvKiBlYXg6IHplcm8sIGVieDogNjQgKi8KLS5MczFlOiAJYWRkbCAkOCwlZWF4CQkvKiBlYXggaXMgYnl0ZXMgbGVmdCB1bmNvcGllZCB3aXRoaW4gdGhlIGxvb3AgKExzMWU6IDY0IC4uIExzOGU6IDgpICovCi0uTHMyZTogCWFkZGwgJDgsJWVheAotLkxzM2U6IAlhZGRsICQ4LCVlYXgKLS5MczRlOiAJYWRkbCAkOCwlZWF4Ci0uTHM1ZTogCWFkZGwgJDgsJWVheAotLkxzNmU6IAlhZGRsICQ4LCVlYXgKLS5MczdlOiAJYWRkbCAkOCwlZWF4Ci0uTHM4ZTogCWFkZGwgJDgsJWVheAotCWFkZHEgJXJieCwlcmRpCS8qICs2NCAqLwotCXN1YnEgJXJheCwlcmRpICAvKiBjb3JyZWN0IGRlc3RpbmF0aW9uIHdpdGggY29tcHV0ZWQgb2Zmc2V0ICovCi0KLQlzaGxxICQ2LCVyZHgJLyogbG9vcCBjb3VudGVyICogNjQgKHN0cmlkZSBsZW5ndGgpICovCi0JYWRkcSAlcmF4LCVyZHgJLyogYWRkIG9mZnNldCB0byBsb29wY250ICovCi0JYW5kbCAkNjMsJWVjeAkvKiByZW1haW5pbmcgYnl0ZXMgKi8KLQlhZGRxICVyY3gsJXJkeAkvKiBhZGQgdGhlbSAqLwotCWptcCAuTHplcm9fcmVzdAotCi0JLyogZXhjZXB0aW9uIG9uIHF1YWQgd29yZCBsb29wIGluIHRhaWwgaGFuZGxpbmcgKi8KLQkvKiBlY3g6CWxvb3BjbnQvOCwgJWVkeDogbGVuZ3RoLCByZGk6IGNvcnJlY3QgKi8KLS5MZV9xdWFkOgotCXNobGwgJDMsJWVjeAotCWFuZGwgJDcsJWVkeAotCWFkZGwgJWVjeCwlZWR4Ci0JLyogZWR4OiBieXRlcyB0byB6ZXJvLCByZGk6IGRlc3QsIGVheDp6ZXJvICovCi0uTHplcm9fcmVzdDoKLQljbXBsICQwLCglcnNwKQotCWp6ICAgLkxlX3plcm8KLQltb3ZxICVyZHgsJXJjeAotLkxlX2J5dGU6Ci0JeG9ybCAlZWF4LCVlYXgKLS5MZTU6CXJlcAotCXN0b3NiCi0JLyogd2hlbiB0aGVyZSBpcyBhbm90aGVyIGV4Y2VwdGlvbiB3aGlsZSB6ZXJvaW5nIHRoZSByZXN0IGp1c3QgcmV0dXJuICovCi0uTGVfemVybzoKLQltb3ZxICVyZHgsJXJheAotCWptcCAuTGVuZGUKIAlDRklfRU5EUFJPQwotRU5EUFJPQyhjb3B5X3VzZXJfZ2VuZXJpYykKK0VORFBST0MoY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQpCiAKLQotCS8qIFNvbWUgQ1BVcyBydW4gZmFzdGVyIHVzaW5nIHRoZSBzdHJpbmcgY29weSBpbnN0cnVjdGlvbnMuCi0JICAgVGhpcyBpcyBhbHNvIGEgbG90IHNpbXBsZXIuIFVzZSB0aGVtIHdoZW4gcG9zc2libGUuCi0JICAgUGF0Y2ggaW4gam1wcyB0byB0aGlzIGNvZGUgaW5zdGVhZCBvZiBjb3B5aW5nIGl0IGZ1bGx5Ci0JICAgdG8gYXZvaWQgdW53YW50ZWQgYWxpYXNpbmcgaW4gdGhlIGV4Y2VwdGlvbiB0YWJsZXMuICovCi0KLSAvKiByZGkJZGVzdGluYXRpb24KLSAgKiByc2kgc291cmNlCi0gICogcmR4IGNvdW50Ci0gICogZWN4IHplcm8gZmxhZwotICAqCi0gICogT3V0cHV0OgotICAqIGVheCB1bmNvcGllZCBieXRlcyBvciAwIGlmIHN1Y2Nlc3NmdWxsLgotICAqCi0gICogT25seSA0R0Igb2YgY29weSBpcyBzdXBwb3J0ZWQuIFRoaXMgc2hvdWxkbid0IGJlIGEgcHJvYmxlbQotICAqIGJlY2F1c2UgdGhlIGtlcm5lbCBub3JtYWxseSBvbmx5IHdyaXRlcyBmcm9tL3RvIHBhZ2Ugc2l6ZWQgY2h1bmtzCi0gICogZXZlbiBpZiB1c2VyIHNwYWNlIHBhc3NlZCBhIGxvbmdlciBidWZmZXIuCi0gICogQW5kIG1vcmUgd291bGQgYmUgZGFuZ2Vyb3VzIGJlY2F1c2UgYm90aCBJbnRlbCBhbmQgQU1EIGhhdmUKLSAgKiBlcnJhdGEgd2l0aCByZXAgbW92c3EgPiA0R0IuIElmIHNvbWVvbmUgZmVlbHMgdGhlIG5lZWQgdG8gZml4Ci0gICogdGhpcyBwbGVhc2UgY29uc2lkZXIgdGhpcy4KLSAgKi8KKy8qIFNvbWUgQ1BVcyBydW4gZmFzdGVyIHVzaW5nIHRoZSBzdHJpbmcgY29weSBpbnN0cnVjdGlvbnMuCisgKiBUaGlzIGlzIGFsc28gYSBsb3Qgc2ltcGxlci4gVXNlIHRoZW0gd2hlbiBwb3NzaWJsZS4KKyAqCisgKiBPbmx5IDRHQiBvZiBjb3B5IGlzIHN1cHBvcnRlZC4gVGhpcyBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtCisgKiBiZWNhdXNlIHRoZSBrZXJuZWwgbm9ybWFsbHkgb25seSB3cml0ZXMgZnJvbS90byBwYWdlIHNpemVkIGNodW5rcworICogZXZlbiBpZiB1c2VyIHNwYWNlIHBhc3NlZCBhIGxvbmdlciBidWZmZXIuCisgKiBBbmQgbW9yZSB3b3VsZCBiZSBkYW5nZXJvdXMgYmVjYXVzZSBib3RoIEludGVsIGFuZCBBTUQgaGF2ZQorICogZXJyYXRhIHdpdGggcmVwIG1vdnNxID4gNEdCLiBJZiBzb21lb25lIGZlZWxzIHRoZSBuZWVkIHRvIGZpeAorICogdGhpcyBwbGVhc2UgY29uc2lkZXIgdGhpcy4KKyAqCisgKiBJbnB1dDoKKyAqIHJkaSBkZXN0aW5hdGlvbgorICogcnNpIHNvdXJjZQorICogcmR4IGNvdW50CisgKgorICogT3V0cHV0OgorICogZWF4IHVuY29waWVkIGJ5dGVzIG9yIDAgaWYgc3VjY2Vzc2Z1bC4KKyAqLwogRU5UUlkoY29weV91c2VyX2dlbmVyaWNfc3RyaW5nKQogCUNGSV9TVEFSVFBST0MKLQltb3ZsICVlY3gsJXI4ZAkJLyogc2F2ZSB6ZXJvIGZsYWcgKi8KKwlhbmRsICVlZHgsJWVkeAorCWp6IDRmCisJY21wbCAkOCwlZWR4CisJamIgMmYJCS8qIGxlc3MgdGhhbiA4IGJ5dGVzLCBnbyB0byBieXRlIGNvcHkgbG9vcCAqLworCUFMSUdOX0RFU1RJTkFUSU9OCiAJbW92bCAlZWR4LCVlY3gKIAlzaHJsICQzLCVlY3gKLQlhbmRsICQ3LCVlZHgJCi0JanogICAxMGYKLTE6CXJlcCAKLQltb3ZzcSAKLQltb3ZsICVlZHgsJWVjeAotMjoJcmVwCi0JbW92c2IKLTk6CW1vdmwgJWVjeCwlZWF4Ci0JcmV0Ci0KLQkvKiBtdWx0aXBsZSBvZiA4IGJ5dGUgKi8KLTEwOglyZXAKKwlhbmRsICQ3LCVlZHgKKzE6CXJlcAogCW1vdnNxCi0JeG9yICVlYXgsJWVheAorMjoJbW92bCAlZWR4LCVlY3gKKzM6CXJlcAorCW1vdnNiCis0Ogl4b3JsICVlYXgsJWVheAogCXJldAogCi0JLyogZXhjZXB0aW9uIGhhbmRsaW5nICovCi0zOiAgICAgIGxlYSAoJXJkeCwlcmN4LDgpLCVyYXgJLyogZXhjZXB0aW9uIG9uIHF1YWQgbG9vcCAqLwotCWptcCA2ZgotNToJbW92bCAlZWN4LCVlYXgJCS8qIGV4Y2VwdGlvbiBvbiBieXRlIGxvb3AgKi8KLQkvKiBlYXg6IGxlZnQgb3ZlciBieXRlcyAqLwotNjoJdGVzdGwgJXI4ZCwlcjhkCQkvKiB6ZXJvIGZsYWcgc2V0PyAqLwotCWp6IDdmCi0JbW92bCAlZWF4LCVlY3gJCS8qIGluaXRpYWxpemUgeDg2IGxvb3AgY291bnRlciAqLwotCXB1c2ggJXJheAotCXhvcmwgJWVheCwlZWF4Ci04OglyZXAKLQlzdG9zYiAJCQkvKiB6ZXJvIHRoZSByZXN0ICovCi0xMToJcG9wICVyYXgKLTc6CXJldAotCUNGSV9FTkRQUk9DCi1FTkQoY29weV91c2VyX2dlbmVyaWNfYykKKwkuc2VjdGlvbiAuZml4dXAsImF4IgorMTE6CWxlYSAoJXJkeCwlcmN4LDgpLCVyY3gKKzEyOgltb3ZsICVlY3gsJWVkeAkJLyogZWN4IGlzIHplcm9yZXN0IGFsc28gKi8KKwlqbXAgY29weV91c2VyX2hhbmRsZV90YWlsCisJLnByZXZpb3VzCiAKIAkuc2VjdGlvbiBfX2V4X3RhYmxlLCJhIgotCS5xdWFkIDFiLDNiCi0JLnF1YWQgMmIsNWIKLQkucXVhZCA4YiwxMWIKLQkucXVhZCAxMGIsM2IKKwkuYWxpZ24gOAorCS5xdWFkIDFiLDExYgorCS5xdWFkIDNiLDEyYgogCS5wcmV2aW91cworCUNGSV9FTkRQUk9DCitFTkRQUk9DKGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZykKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfbm9jYWNoZV82NC5TIGIvYXJjaC94ODYvbGliL2NvcHlfdXNlcl9ub2NhY2hlXzY0LlMKaW5kZXggOWQzZDFhYi4uNDBlMGUzMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NvcHlfdXNlcl9ub2NhY2hlXzY0LlMKKysrIGIvYXJjaC94ODYvbGliL2NvcHlfdXNlcl9ub2NhY2hlXzY0LlMKQEAgLTEsNCArMSw2IEBACi0vKiBDb3B5cmlnaHQgMjAwMiBBbmRpIEtsZWVuLCBTdVNFIExhYnMuCisvKgorICogQ29weXJpZ2h0IDIwMDggVml0YWx5IE1heWF0c2tpa2ggPHZtYXlhdHNrQHJlZGhhdC5jb20+CisgKiBDb3B5cmlnaHQgMjAwMiBBbmRpIEtsZWVuLCBTdVNFIExhYnMuCiAgKiBTdWJqZWN0IHRvIHRoZSBHTlUgUHVibGljIExpY2Vuc2UgdjIuCiAgKgogICogRnVuY3Rpb25zIHRvIGNvcHkgZnJvbSBhbmQgdG8gdXNlciBzcGFjZS4KQEAgLTEyLDIwNCArMTQsMTI1IEBACiAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4KICNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KICNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4KLSNpbmNsdWRlIDxhc20vY3B1ZmVhdHVyZS5oPgogCi0vKgotICogY29weV91c2VyX25vY2FjaGUgLSBVbmNhY2hlZCBtZW1vcnkgY29weSB3aXRoIGV4Y2VwdGlvbiBoYW5kbGluZwotICogVGhpcyB3aWxsIGZvcmNlIGRlc3RpbmF0aW9uL3NvdXJjZSBvdXQgb2YgY2FjaGUgZm9yIG1vcmUgcGVyZm9ybWFuY2UuCi0gKgotICogSW5wdXQ6Ci0gKiByZGkgZGVzdGluYXRpb24KLSAqIHJzaSBzb3VyY2UKLSAqIHJkeCBjb3VudAotICogcmN4IHplcm8gZmxhZwl3aGVuIDEgemVybyBvbiBleGNlcHRpb24KLSAqCi0gKiBPdXRwdXQ6Ci0gKiBlYXggdW5jb3BpZWQgYnl0ZXMgb3IgMCBpZiBzdWNjZXNzZnVsLgotICovCi1FTlRSWShfX2NvcHlfdXNlcl9ub2NhY2hlKQotCUNGSV9TVEFSVFBST0MKLQlwdXNocSAlcmJ4Ci0JQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIDgKLQlDRklfUkVMX09GRlNFVCByYngsIDAKLQlwdXNocSAlcmN4CQkvKiBzYXZlIHplcm8gZmxhZyAqLwotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4Ci0JQ0ZJX1JFTF9PRkZTRVQgcmN4LCAwCi0KLQl4b3JsICVlYXgsJWVheAkJLyogemVybyBmb3IgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyICovCi0KKwkubWFjcm8gQUxJR05fREVTVElOQVRJT04KICNpZmRlZiBGSVhfQUxJR05NRU5UCiAJLyogY2hlY2sgZm9yIGJhZCBhbGlnbm1lbnQgb2YgZGVzdGluYXRpb24gKi8KIAltb3ZsICVlZGksJWVjeAogCWFuZGwgJDcsJWVjeAotCWpueiAgLkxiYWRfYWxpZ25tZW50Ci0uTGFmdGVyX2JhZF9hbGlnbm1lbnQ6Ci0jZW5kaWYKLQotCW1vdnEgJXJkeCwlcmN4Ci0KLQltb3ZsICQ2NCwlZWJ4Ci0Jc2hycSAkNiwlcmR4Ci0JZGVjcSAlcmR4Ci0JanMgICAuTGhhbmRsZV90YWlsCi0KLQkucDJhbGlnbiA0Ci0uTGxvb3A6Ci0uTHMxOgltb3ZxICglcnNpKSwlcjExCi0uTHMyOgltb3ZxIDEqOCglcnNpKSwlcjgKLS5MczM6CW1vdnEgMio4KCVyc2kpLCVyOQotLkxzNDoJbW92cSAzKjgoJXJzaSksJXIxMAotLkxkMToJbW92bnRpICVyMTEsKCVyZGkpCi0uTGQyOgltb3ZudGkgJXI4LDEqOCglcmRpKQotLkxkMzoJbW92bnRpICVyOSwyKjgoJXJkaSkKLS5MZDQ6CW1vdm50aSAlcjEwLDMqOCglcmRpKQotCi0uTHM1Ogltb3ZxIDQqOCglcnNpKSwlcjExCi0uTHM2Ogltb3ZxIDUqOCglcnNpKSwlcjgKLS5Mczc6CW1vdnEgNio4KCVyc2kpLCVyOQotLkxzODoJbW92cSA3KjgoJXJzaSksJXIxMAotLkxkNToJbW92bnRpICVyMTEsNCo4KCVyZGkpCi0uTGQ2Ogltb3ZudGkgJXI4LDUqOCglcmRpKQotLkxkNzoJbW92bnRpICVyOSw2KjgoJXJkaSkKLS5MZDg6CW1vdm50aSAlcjEwLDcqOCglcmRpKQotCi0JZGVjICAlcmR4Ci0KLQlsZWFxIDY0KCVyc2kpLCVyc2kKLQlsZWFxIDY0KCVyZGkpLCVyZGkKLQotCWpucyAgLkxsb29wCi0KLQkucDJhbGlnbiA0Ci0uTGhhbmRsZV90YWlsOgotCW1vdmwgJWVjeCwlZWR4Ci0JYW5kbCAkNjMsJWVjeAotCXNocmwgJDMsJWVjeAotCWp6ICAgLkxoYW5kbGVfNwotCW1vdmwgJDgsJWVieAotCS5wMmFsaWduIDQKLS5MbG9vcF84OgotLkxzOToJbW92cSAoJXJzaSksJXI4Ci0uTGQ5Ogltb3ZudGkgJXI4LCglcmRpKQotCWRlY2wgJWVjeAotCWxlYXEgOCglcmRpKSwlcmRpCi0JbGVhcSA4KCVyc2kpLCVyc2kKLQlqbnogLkxsb29wXzgKLQotLkxoYW5kbGVfNzoKLQltb3ZsICVlZHgsJWVjeAotCWFuZGwgJDcsJWVjeAotCWp6ICAgLkxlbmRlCi0JLnAyYWxpZ24gNAotLkxsb29wXzE6Ci0uTHMxMDoJbW92YiAoJXJzaSksJWJsCi0uTGQxMDoJbW92YiAlYmwsKCVyZGkpCi0JaW5jcSAlcmRpCi0JaW5jcSAlcnNpCi0JZGVjbCAlZWN4Ci0Jam56IC5MbG9vcF8xCi0KLQlDRklfUkVNRU1CRVJfU1RBVEUKLS5MZW5kZToKLQlwb3BxICVyY3gKLQlDRklfQURKVVNUX0NGQV9PRkZTRVQgLTgKLQlDRklfUkVTVE9SRSAlcmN4Ci0JcG9wcSAlcmJ4Ci0JQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIC04Ci0JQ0ZJX1JFU1RPUkUgcmJ4Ci0Jc2ZlbmNlCi0JcmV0Ci0JQ0ZJX1JFU1RPUkVfU1RBVEUKLQotI2lmZGVmIEZJWF9BTElHTk1FTlQKLQkvKiBhbGlnbiBkZXN0aW5hdGlvbiAqLwotCS5wMmFsaWduIDQKLS5MYmFkX2FsaWdubWVudDoKLQltb3ZsICQ4LCVyOWQKLQlzdWJsICVlY3gsJXI5ZAotCW1vdmwgJXI5ZCwlZWN4Ci0JY21wcSAlcjksJXJkeAotCWp6ICAgLkxoYW5kbGVfNwotCWpzICAgLkxoYW5kbGVfNwotLkxhbGlnbl8xOgotLkxzMTE6CW1vdmIgKCVyc2kpLCVibAotLkxkMTE6CW1vdmIgJWJsLCglcmRpKQorCWp6IDEwMmYJCQkJLyogYWxyZWFkeSBhbGlnbmVkICovCisJc3VibCAkOCwlZWN4CisJbmVnbCAlZWN4CisJc3VibCAlZWN4LCVlZHgKKzEwMDoJbW92YiAoJXJzaSksJWFsCisxMDE6CW1vdmIgJWFsLCglcmRpKQogCWluY3EgJXJzaQogCWluY3EgJXJkaQogCWRlY2wgJWVjeAotCWpueiAuTGFsaWduXzEKLQlzdWJxICVyOSwlcmR4Ci0Jam1wIC5MYWZ0ZXJfYmFkX2FsaWdubWVudAotI2VuZGlmCi0KLQkvKiB0YWJsZSBzb3J0ZWQgYnkgZXhjZXB0aW9uIGFkZHJlc3MgKi8KLQkuc2VjdGlvbiBfX2V4X3RhYmxlLCJhIgotCS5hbGlnbiA4Ci0JLnF1YWQgLkxzMSwuTHMxZQkvKiAuTHNbMS00XSAtIDAgYnl0ZXMgY29waWVkICovCi0JLnF1YWQgLkxzMiwuTHMxZQotCS5xdWFkIC5MczMsLkxzMWUKLQkucXVhZCAuTHM0LC5MczFlCi0JLnF1YWQgLkxkMSwuTHMxZQkvKiAuTGRbMS00XSAtIDAuLjI0IGJ5dGVzIGNvcGVkICovCi0JLnF1YWQgLkxkMiwuTHMyZQotCS5xdWFkIC5MZDMsLkxzM2UKLQkucXVhZCAuTGQ0LC5MczRlCi0JLnF1YWQgLkxzNSwuTHM1ZQkvKiAuTHNbNS04XSAtIDMyIGJ5dGVzIGNvcGllZCAqLwotCS5xdWFkIC5MczYsLkxzNWUKLQkucXVhZCAuTHM3LC5MczVlCi0JLnF1YWQgLkxzOCwuTHM1ZQotCS5xdWFkIC5MZDUsLkxzNWUJLyogLkxkWzUtOF0gLSAzMi4uNTYgYnl0ZXMgY29waWVkICovCi0JLnF1YWQgLkxkNiwuTHM2ZQotCS5xdWFkIC5MZDcsLkxzN2UKLQkucXVhZCAuTGQ4LC5MczhlCi0JLnF1YWQgLkxzOSwuTGVfcXVhZAotCS5xdWFkIC5MZDksLkxlX3F1YWQKLQkucXVhZCAuTHMxMCwuTGVfYnl0ZQotCS5xdWFkIC5MZDEwLC5MZV9ieXRlCi0jaWZkZWYgRklYX0FMSUdOTUVOVAotCS5xdWFkIC5MczExLC5MemVyb19yZXN0Ci0JLnF1YWQgLkxkMTEsLkx6ZXJvX3Jlc3QKLSNlbmRpZgotCS5xdWFkIC5MZTUsLkxlX3plcm8KKwlqbnogMTAwYgorMTAyOgorCS5zZWN0aW9uIC5maXh1cCwiYXgiCisxMDM6CWFkZGwgJXI4ZCwlZWR4CQkJLyogZWN4IGlzIHplcm9yZXN0IGFsc28gKi8KKwlqbXAgY29weV91c2VyX2hhbmRsZV90YWlsCiAJLnByZXZpb3VzCiAKLQkvKiBlYXg6IHplcm8sIGVieDogNjQgKi8KLS5MczFlOiAJYWRkbCAkOCwlZWF4CS8qIGVheDogYnl0ZXMgbGVmdCB1bmNvcGllZDogTHMxZTogNjQgLi4gTHM4ZTogOCAqLwotLkxzMmU6IAlhZGRsICQ4LCVlYXgKLS5MczNlOiAJYWRkbCAkOCwlZWF4Ci0uTHM0ZTogCWFkZGwgJDgsJWVheAotLkxzNWU6IAlhZGRsICQ4LCVlYXgKLS5MczZlOiAJYWRkbCAkOCwlZWF4Ci0uTHM3ZTogCWFkZGwgJDgsJWVheAotLkxzOGU6IAlhZGRsICQ4LCVlYXgKLQlhZGRxICVyYngsJXJkaQkvKiArNjQgKi8KLQlzdWJxICVyYXgsJXJkaSAgLyogY29ycmVjdCBkZXN0aW5hdGlvbiB3aXRoIGNvbXB1dGVkIG9mZnNldCAqLworCS5zZWN0aW9uIF9fZXhfdGFibGUsImEiCisJLmFsaWduIDgKKwkucXVhZCAxMDBiLDEwM2IKKwkucXVhZCAxMDFiLDEwM2IKKwkucHJldmlvdXMKKyNlbmRpZgorCS5lbmRtCiAKLQlzaGxxICQ2LCVyZHgJLyogbG9vcCBjb3VudGVyICogNjQgKHN0cmlkZSBsZW5ndGgpICovCi0JYWRkcSAlcmF4LCVyZHgJLyogYWRkIG9mZnNldCB0byBsb29wY250ICovCi0JYW5kbCAkNjMsJWVjeAkvKiByZW1haW5pbmcgYnl0ZXMgKi8KLQlhZGRxICVyY3gsJXJkeAkvKiBhZGQgdGhlbSAqLwotCWptcCAuTHplcm9fcmVzdAotCi0JLyogZXhjZXB0aW9uIG9uIHF1YWQgd29yZCBsb29wIGluIHRhaWwgaGFuZGxpbmcgKi8KLQkvKiBlY3g6CWxvb3BjbnQvOCwgJWVkeDogbGVuZ3RoLCByZGk6IGNvcnJlY3QgKi8KLS5MZV9xdWFkOgotCXNobGwgJDMsJWVjeAorLyoKKyAqIGNvcHlfdXNlcl9ub2NhY2hlIC0gVW5jYWNoZWQgbWVtb3J5IGNvcHkgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcKKyAqIFRoaXMgd2lsbCBmb3JjZSBkZXN0aW5hdGlvbi9zb3VyY2Ugb3V0IG9mIGNhY2hlIGZvciBtb3JlIHBlcmZvcm1hbmNlLgorICovCitFTlRSWShfX2NvcHlfdXNlcl9ub2NhY2hlKQorCUNGSV9TVEFSVFBST0MKKwljbXBsICQ4LCVlZHgKKwlqYiAyMGYJCS8qIGxlc3MgdGhlbiA4IGJ5dGVzLCBnbyB0byBieXRlIGNvcHkgbG9vcCAqLworCUFMSUdOX0RFU1RJTkFUSU9OCisJbW92bCAlZWR4LCVlY3gKKwlhbmRsICQ2MywlZWR4CisJc2hybCAkNiwlZWN4CisJanogMTdmCisxOgltb3ZxICglcnNpKSwlcjgKKzI6CW1vdnEgMSo4KCVyc2kpLCVyOQorMzoJbW92cSAyKjgoJXJzaSksJXIxMAorNDoJbW92cSAzKjgoJXJzaSksJXIxMQorNToJbW92bnRpICVyOCwoJXJkaSkKKzY6CW1vdm50aSAlcjksMSo4KCVyZGkpCis3Ogltb3ZudGkgJXIxMCwyKjgoJXJkaSkKKzg6CW1vdm50aSAlcjExLDMqOCglcmRpKQorOToJbW92cSA0KjgoJXJzaSksJXI4CisxMDoJbW92cSA1KjgoJXJzaSksJXI5CisxMToJbW92cSA2KjgoJXJzaSksJXIxMAorMTI6CW1vdnEgNyo4KCVyc2kpLCVyMTEKKzEzOgltb3ZudGkgJXI4LDQqOCglcmRpKQorMTQ6CW1vdm50aSAlcjksNSo4KCVyZGkpCisxNToJbW92bnRpICVyMTAsNio4KCVyZGkpCisxNjoJbW92bnRpICVyMTEsNyo4KCVyZGkpCisJbGVhcSA2NCglcnNpKSwlcnNpCisJbGVhcSA2NCglcmRpKSwlcmRpCisJZGVjbCAlZWN4CisJam56IDFiCisxNzoJbW92bCAlZWR4LCVlY3gKIAlhbmRsICQ3LCVlZHgKKwlzaHJsICQzLCVlY3gKKwlqeiAyMGYKKzE4Ogltb3ZxICglcnNpKSwlcjgKKzE5Ogltb3ZudGkgJXI4LCglcmRpKQorCWxlYXEgOCglcnNpKSwlcnNpCisJbGVhcSA4KCVyZGkpLCVyZGkKKwlkZWNsICVlY3gKKwlqbnogMThiCisyMDoJYW5kbCAlZWR4LCVlZHgKKwlqeiAyM2YKKwltb3ZsICVlZHgsJWVjeAorMjE6CW1vdmIgKCVyc2kpLCVhbAorMjI6CW1vdmIgJWFsLCglcmRpKQorCWluY3EgJXJzaQorCWluY3EgJXJkaQorCWRlY2wgJWVjeAorCWpueiAyMWIKKzIzOgl4b3JsICVlYXgsJWVheAorCXNmZW5jZQorCXJldAorCisJLnNlY3Rpb24gLmZpeHVwLCJheCIKKzMwOglzaGxsICQ2LCVlY3gKIAlhZGRsICVlY3gsJWVkeAotCS8qIGVkeDogYnl0ZXMgdG8gemVybywgcmRpOiBkZXN0LCBlYXg6emVybyAqLwotLkx6ZXJvX3Jlc3Q6Ci0JY21wbCAkMCwoJXJzcCkJLyogemVybyBmbGFnIHNldD8gKi8KLQlqeiAgIC5MZV96ZXJvCi0JbW92cSAlcmR4LCVyY3gKLS5MZV9ieXRlOgotCXhvcmwgJWVheCwlZWF4Ci0uTGU1OglyZXAKLQlzdG9zYgotCS8qIHdoZW4gdGhlcmUgaXMgYW5vdGhlciBleGNlcHRpb24gd2hpbGUgemVyb2luZyB0aGUgcmVzdCBqdXN0IHJldHVybiAqLwotLkxlX3plcm86Ci0JbW92cSAlcmR4LCVyYXgKLQlqbXAgLkxlbmRlCisJam1wIDYwZgorNDA6CWxlYSAoJXJkeCwlcmN4LDgpLCVyZHgKKwlqbXAgNjBmCis1MDoJbW92bCAlZWN4LCVlZHgKKzYwOglzZmVuY2UKKwltb3ZsICVyOGQsJWVjeAorCWptcCBjb3B5X3VzZXJfaGFuZGxlX3RhaWwKKwkucHJldmlvdXMKKworCS5zZWN0aW9uIF9fZXhfdGFibGUsImEiCisJLnF1YWQgMWIsMzBiCisJLnF1YWQgMmIsMzBiCisJLnF1YWQgM2IsMzBiCisJLnF1YWQgNGIsMzBiCisJLnF1YWQgNWIsMzBiCisJLnF1YWQgNmIsMzBiCisJLnF1YWQgN2IsMzBiCisJLnF1YWQgOGIsMzBiCisJLnF1YWQgOWIsMzBiCisJLnF1YWQgMTBiLDMwYgorCS5xdWFkIDExYiwzMGIKKwkucXVhZCAxMmIsMzBiCisJLnF1YWQgMTNiLDMwYgorCS5xdWFkIDE0YiwzMGIKKwkucXVhZCAxNWIsMzBiCisJLnF1YWQgMTZiLDMwYgorCS5xdWFkIDE4Yiw0MGIKKwkucXVhZCAxOWIsNDBiCisJLnF1YWQgMjFiLDUwYgorCS5xdWFkIDIyYiw1MGIKKwkucHJldmlvdXMKIAlDRklfRU5EUFJPQwogRU5EUFJPQyhfX2NvcHlfdXNlcl9ub2NhY2hlKQotCi0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9kZWxheS5jIGIvYXJjaC94ODYvbGliL2RlbGF5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ1Njg2MAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2xpYi9kZWxheS5jCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICoJUHJlY2lzZSBEZWxheSBMb29wcyBmb3IgaTM4NgorICoKKyAqCUNvcHlyaWdodCAoQykgMTk5MyBMaW51cyBUb3J2YWxkcworICoJQ29weXJpZ2h0IChDKSAxOTk3IE1hcnRpbiBNYXJlcyA8bWpAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgorICoJQ29weXJpZ2h0IChDKSAyMDA4IEppcmkgSGxhZGt5IDxobGFka3kgX2RvdF8gamlyaSBfYXRfIGdtYWlsIF9kb3RfIGNvbT4KKyAqCisgKglUaGUgX19kZWxheSBmdW5jdGlvbiBtdXN0IF9OT1RfIGJlIGlubGluZWQgYXMgaXRzIGV4ZWN1dGlvbiB0aW1lCisgKglkZXBlbmRzIHdpbGRseSBvbiBhbGlnbm1lbnQgb24gbWFueSB4ODYgcHJvY2Vzc29ycy4gVGhlIGFkZGl0aW9uYWwKKyAqCWp1bXAgbWFnaWMgaXMgbmVlZGVkIHRvIGdldCB0aGUgdGltaW5nIHN0YWJsZSBvbiBhbGwgdGhlIENQVSdzCisgKgl3ZSBoYXZlIHRvIHdvcnJ5IGFib3V0LgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWV4Lmg+CisjaW5jbHVkZSA8bGludXgvcHJlZW1wdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorCisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPGFzbS9kZWxheS5oPgorI2luY2x1ZGUgPGFzbS90aW1lci5oPgorCisjaWZkZWYgQ09ORklHX1NNUAorIyBpbmNsdWRlIDxhc20vc21wLmg+CisjZW5kaWYKKworLyogc2ltcGxlIGxvb3AgYmFzZWQgZGVsYXk6ICovCitzdGF0aWMgdm9pZCBkZWxheV9sb29wKHVuc2lnbmVkIGxvbmcgbG9vcHMpCit7CisJYXNtIHZvbGF0aWxlKAorCQkiCXRlc3QgJTAsJTAJXG4iCisJCSIJanogM2YJCVxuIgorCQkiCWptcCAxZgkJXG4iCisKKwkJIi5hbGlnbiAxNgkJXG4iCisJCSIxOglqbXAgMmYJCVxuIgorCisJCSIuYWxpZ24gMTYJCVxuIgorCQkiMjoJZGVjICUwCQlcbiIKKwkJIglqbnogMmIJCVxuIgorCQkiMzoJZGVjICUwCQlcbiIKKworCQk6IC8qIHdlIGRvbid0IG5lZWQgb3V0cHV0ICovCisJCToiYSIgKGxvb3BzKQorCSk7Cit9CisKKy8qIFRTQyBiYXNlZCBkZWxheTogKi8KK3N0YXRpYyB2b2lkIGRlbGF5X3RzYyh1bnNpZ25lZCBsb25nIGxvb3BzKQoreworCXVuc2lnbmVkIGxvbmcgYmNsb2NrLCBub3c7CisJaW50IGNwdTsKKworCXByZWVtcHRfZGlzYWJsZSgpOworCWNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwlyZHRzY2woYmNsb2NrKTsKKwlmb3IgKDs7KSB7CisJCXJkdHNjbChub3cpOworCQlpZiAoKG5vdyAtIGJjbG9jaykgPj0gbG9vcHMpCisJCQlicmVhazsKKworCQkvKiBBbGxvdyBSVCB0YXNrcyB0byBydW4gKi8KKwkJcHJlZW1wdF9lbmFibGUoKTsKKwkJcmVwX25vcCgpOworCQlwcmVlbXB0X2Rpc2FibGUoKTsKKworCQkvKgorCQkgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIG1vdmVkIHRvIGFub3RoZXIgQ1BVLCBhbmQKKwkJICogc2luY2UgVFNDJ3MgYXJlIHBlci1jcHUgd2UgbmVlZCB0byBjYWxjdWxhdGUKKwkJICogdGhhdC4gVGhlIGRlbGF5IG11c3QgZ3VhcmFudGVlIHRoYXQgd2Ugd2FpdCAiYXQKKwkJICogbGVhc3QiIHRoZSBhbW91bnQgb2YgdGltZS4gQmVpbmcgbW92ZWQgdG8gYW5vdGhlcgorCQkgKiBDUFUgY291bGQgbWFrZSB0aGUgd2FpdCBsb25nZXIgYnV0IHdlIGp1c3QgbmVlZCB0bworCQkgKiBtYWtlIHN1cmUgd2Ugd2FpdGVkIGxvbmcgZW5vdWdoLiBSZWJhbGFuY2UgdGhlCisJCSAqIGNvdW50ZXIgZm9yIHRoaXMgQ1BVLgorCQkgKi8KKwkJaWYgKHVubGlrZWx5KGNwdSAhPSBzbXBfcHJvY2Vzc29yX2lkKCkpKSB7CisJCQlsb29wcyAtPSAobm93IC0gYmNsb2NrKTsKKwkJCWNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwkJCXJkdHNjbChiY2xvY2spOworCQl9CisJfQorCXByZWVtcHRfZW5hYmxlKCk7Cit9CisKKy8qCisgKiBTaW5jZSB3ZSBjYWxpYnJhdGUgb25seSBvbmNlIGF0IGJvb3QsIHRoaXMKKyAqIGZ1bmN0aW9uIHNob3VsZCBiZSBzZXQgb25jZSBhdCBib290IGFuZCBub3QgY2hhbmdlZAorICovCitzdGF0aWMgdm9pZCAoKmRlbGF5X2ZuKSh1bnNpZ25lZCBsb25nKSA9IGRlbGF5X2xvb3A7CisKK3ZvaWQgdXNlX3RzY19kZWxheSh2b2lkKQoreworCWRlbGF5X2ZuID0gZGVsYXlfdHNjOworfQorCitpbnQgX19kZXZpbml0IHJlYWRfY3VycmVudF90aW1lcih1bnNpZ25lZCBsb25nICp0aW1lcl92YWwpCit7CisJaWYgKGRlbGF5X2ZuID09IGRlbGF5X3RzYykgeworCQlyZHRzY2xsKCp0aW1lcl92YWwpOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIC0xOworfQorCit2b2lkIF9fZGVsYXkodW5zaWduZWQgbG9uZyBsb29wcykKK3sKKwlkZWxheV9mbihsb29wcyk7Cit9CitFWFBPUlRfU1lNQk9MKF9fZGVsYXkpOworCitpbmxpbmUgdm9pZCBfX2NvbnN0X3VkZWxheSh1bnNpZ25lZCBsb25nIHhsb29wcykKK3sKKwlpbnQgZDA7CisKKwl4bG9vcHMgKj0gNDsKKwlhc20oIm11bGwgJSVlZHgiCisJCToiPWQiICh4bG9vcHMpLCAiPSZhIiAoZDApCisJCToiMSIgKHhsb29wcyksICIwIgorCQkoY3B1X2RhdGEocmF3X3NtcF9wcm9jZXNzb3JfaWQoKSkubG9vcHNfcGVyX2ppZmZ5ICogKEhaLzQpKSk7CisKKwlfX2RlbGF5KCsreGxvb3BzKTsKK30KK0VYUE9SVF9TWU1CT0woX19jb25zdF91ZGVsYXkpOworCit2b2lkIF9fdWRlbGF5KHVuc2lnbmVkIGxvbmcgdXNlY3MpCit7CisJX19jb25zdF91ZGVsYXkodXNlY3MgKiAweDAwMDAxMGM3KTsgLyogMioqMzIgLyAxMDAwMDAwIChyb3VuZGVkIHVwKSAqLworfQorRVhQT1JUX1NZTUJPTChfX3VkZWxheSk7CisKK3ZvaWQgX19uZGVsYXkodW5zaWduZWQgbG9uZyBuc2VjcykKK3sKKwlfX2NvbnN0X3VkZWxheShuc2VjcyAqIDB4MDAwMDUpOyAvKiAyKiozMiAvIDEwMDAwMDAwMDAgKHJvdW5kZWQgdXApICovCit9CitFWFBPUlRfU1lNQk9MKF9fbmRlbGF5KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9kZWxheV8zMi5jIGIvYXJjaC94ODYvbGliL2RlbGF5XzMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3MTBmMmQuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbGliL2RlbGF5XzMyLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotLyoKLSAqCVByZWNpc2UgRGVsYXkgTG9vcHMgZm9yIGkzODYKLSAqCi0gKglDb3B5cmlnaHQgKEMpIDE5OTMgTGludXMgVG9ydmFsZHMKLSAqCUNvcHlyaWdodCAoQykgMTk5NyBNYXJ0aW4gTWFyZXMgPG1qQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KLSAqCi0gKglUaGUgX19kZWxheSBmdW5jdGlvbiBtdXN0IF9OT1RfIGJlIGlubGluZWQgYXMgaXRzIGV4ZWN1dGlvbiB0aW1lCi0gKglkZXBlbmRzIHdpbGRseSBvbiBhbGlnbm1lbnQgb24gbWFueSB4ODYgcHJvY2Vzc29ycy4gVGhlIGFkZGl0aW9uYWwKLSAqCWp1bXAgbWFnaWMgaXMgbmVlZGVkIHRvIGdldCB0aGUgdGltaW5nIHN0YWJsZSBvbiBhbGwgdGhlIENQVSdzCi0gKgl3ZSBoYXZlIHRvIHdvcnJ5IGFib3V0LgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWV4Lmg+Ci0jaW5jbHVkZSA8bGludXgvcHJlZW1wdC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotCi0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2luY2x1ZGUgPGFzbS9kZWxheS5oPgotI2luY2x1ZGUgPGFzbS90aW1lci5oPgotCi0jaWZkZWYgQ09ORklHX1NNUAotIyBpbmNsdWRlIDxhc20vc21wLmg+Ci0jZW5kaWYKLQotLyogc2ltcGxlIGxvb3AgYmFzZWQgZGVsYXk6ICovCi1zdGF0aWMgdm9pZCBkZWxheV9sb29wKHVuc2lnbmVkIGxvbmcgbG9vcHMpCi17Ci0JaW50IGQwOwotCi0JX19hc21fXyBfX3ZvbGF0aWxlX18oCi0JCSJcdGptcCAxZlxuIgotCQkiLmFsaWduIDE2XG4iCi0JCSIxOlx0am1wIDJmXG4iCi0JCSIuYWxpZ24gMTZcbiIKLQkJIjI6XHRkZWNsICUwXG5cdGpucyAyYiIKLQkJOiI9JmEiIChkMCkKLQkJOiIwIiAobG9vcHMpKTsKLX0KLQotLyogVFNDIGJhc2VkIGRlbGF5OiAqLwotc3RhdGljIHZvaWQgZGVsYXlfdHNjKHVuc2lnbmVkIGxvbmcgbG9vcHMpCi17Ci0JdW5zaWduZWQgbG9uZyBiY2xvY2ssIG5vdzsKLQlpbnQgY3B1OwotCi0JcHJlZW1wdF9kaXNhYmxlKCk7Ci0JY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCXJkdHNjbChiY2xvY2spOwotCWZvciAoOzspIHsKLQkJcmR0c2NsKG5vdyk7Ci0JCWlmICgobm93IC0gYmNsb2NrKSA+PSBsb29wcykKLQkJCWJyZWFrOwotCi0JCS8qIEFsbG93IFJUIHRhc2tzIHRvIHJ1biAqLwotCQlwcmVlbXB0X2VuYWJsZSgpOwotCQlyZXBfbm9wKCk7Ci0JCXByZWVtcHRfZGlzYWJsZSgpOwotCi0JCS8qCi0JCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgbW92ZWQgdG8gYW5vdGhlciBDUFUsIGFuZAotCQkgKiBzaW5jZSBUU0MncyBhcmUgcGVyLWNwdSB3ZSBuZWVkIHRvIGNhbGN1bGF0ZQotCQkgKiB0aGF0LiBUaGUgZGVsYXkgbXVzdCBndWFyYW50ZWUgdGhhdCB3ZSB3YWl0ICJhdAotCQkgKiBsZWFzdCIgdGhlIGFtb3VudCBvZiB0aW1lLiBCZWluZyBtb3ZlZCB0byBhbm90aGVyCi0JCSAqIENQVSBjb3VsZCBtYWtlIHRoZSB3YWl0IGxvbmdlciBidXQgd2UganVzdCBuZWVkIHRvCi0JCSAqIG1ha2Ugc3VyZSB3ZSB3YWl0ZWQgbG9uZyBlbm91Z2guIFJlYmFsYW5jZSB0aGUKLQkJICogY291bnRlciBmb3IgdGhpcyBDUFUuCi0JCSAqLwotCQlpZiAodW5saWtlbHkoY3B1ICE9IHNtcF9wcm9jZXNzb3JfaWQoKSkpIHsKLQkJCWxvb3BzIC09IChub3cgLSBiY2xvY2spOwotCQkJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCQkJcmR0c2NsKGJjbG9jayk7Ci0JCX0KLQl9Ci0JcHJlZW1wdF9lbmFibGUoKTsKLX0KLQotLyoKLSAqIFNpbmNlIHdlIGNhbGlicmF0ZSBvbmx5IG9uY2UgYXQgYm9vdCwgdGhpcwotICogZnVuY3Rpb24gc2hvdWxkIGJlIHNldCBvbmNlIGF0IGJvb3QgYW5kIG5vdCBjaGFuZ2VkCi0gKi8KLXN0YXRpYyB2b2lkICgqZGVsYXlfZm4pKHVuc2lnbmVkIGxvbmcpID0gZGVsYXlfbG9vcDsKLQotdm9pZCB1c2VfdHNjX2RlbGF5KHZvaWQpCi17Ci0JZGVsYXlfZm4gPSBkZWxheV90c2M7Ci19Ci0KLWludCBfX2RldmluaXQgcmVhZF9jdXJyZW50X3RpbWVyKHVuc2lnbmVkIGxvbmcgKnRpbWVyX3ZhbCkKLXsKLQlpZiAoZGVsYXlfZm4gPT0gZGVsYXlfdHNjKSB7Ci0JCXJkdHNjbCgqdGltZXJfdmFsKTsKLQkJcmV0dXJuIDA7Ci0JfQotCXJldHVybiAtMTsKLX0KLQotdm9pZCBfX2RlbGF5KHVuc2lnbmVkIGxvbmcgbG9vcHMpCi17Ci0JZGVsYXlfZm4obG9vcHMpOwotfQotCi1pbmxpbmUgdm9pZCBfX2NvbnN0X3VkZWxheSh1bnNpZ25lZCBsb25nIHhsb29wcykKLXsKLQlpbnQgZDA7Ci0KLQl4bG9vcHMgKj0gNDsKLQlfX2FzbV9fKCJtdWxsICUwIgotCQk6Ij1kIiAoeGxvb3BzKSwgIj0mYSIgKGQwKQotCQk6IjEiICh4bG9vcHMpLCAiMCIKLQkJKGNwdV9kYXRhKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpLmxvb3BzX3Blcl9qaWZmeSAqIChIWi80KSkpOwotCi0JX19kZWxheSgrK3hsb29wcyk7Ci19Ci0KLXZvaWQgX191ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjcykKLXsKLQlfX2NvbnN0X3VkZWxheSh1c2VjcyAqIDB4MDAwMDEwYzcpOyAvKiAyKiozMiAvIDEwMDAwMDAgKHJvdW5kZWQgdXApICovCi19Ci0KLXZvaWQgX19uZGVsYXkodW5zaWduZWQgbG9uZyBuc2VjcykKLXsKLQlfX2NvbnN0X3VkZWxheShuc2VjcyAqIDB4MDAwMDUpOyAvKiAyKiozMiAvIDEwMDAwMDAwMDAgKHJvdW5kZWQgdXApICovCi19Ci0KLUVYUE9SVF9TWU1CT0woX19kZWxheSk7Ci1FWFBPUlRfU1lNQk9MKF9fY29uc3RfdWRlbGF5KTsKLUVYUE9SVF9TWU1CT0woX191ZGVsYXkpOwotRVhQT1JUX1NZTUJPTChfX25kZWxheSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvZGVsYXlfNjQuYyBiL2FyY2gveDg2L2xpYi9kZWxheV82NC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzQ0MWJlLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2xpYi9kZWxheV82NC5jCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAqCVByZWNpc2UgRGVsYXkgTG9vcHMgZm9yIHg4Ni02NAotICoKLSAqCUNvcHlyaWdodCAoQykgMTk5MyBMaW51cyBUb3J2YWxkcwotICoJQ29weXJpZ2h0IChDKSAxOTk3IE1hcnRpbiBNYXJlcyA8bWpAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgotICoKLSAqCVRoZSBfX2RlbGF5IGZ1bmN0aW9uIG11c3QgX05PVF8gYmUgaW5saW5lZCBhcyBpdHMgZXhlY3V0aW9uIHRpbWUKLSAqCWRlcGVuZHMgd2lsZGx5IG9uIGFsaWdubWVudCBvbiBtYW55IHg4NiBwcm9jZXNzb3JzLiAKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1leC5oPgotI2luY2x1ZGUgPGxpbnV4L3ByZWVtcHQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLQotI2luY2x1ZGUgPGFzbS9kZWxheS5oPgotI2luY2x1ZGUgPGFzbS9tc3IuaD4KLQotI2lmZGVmIENPTkZJR19TTVAKLSNpbmNsdWRlIDxhc20vc21wLmg+Ci0jZW5kaWYKLQotaW50IF9fZGV2aW5pdCByZWFkX2N1cnJlbnRfdGltZXIodW5zaWduZWQgbG9uZyAqdGltZXJfdmFsdWUpCi17Ci0JcmR0c2NsbCgqdGltZXJfdmFsdWUpOwotCXJldHVybiAwOwotfQotCi12b2lkIF9fZGVsYXkodW5zaWduZWQgbG9uZyBsb29wcykKLXsKLQl1bnNpZ25lZCBiY2xvY2ssIG5vdzsKLQlpbnQgY3B1OwotCi0JcHJlZW1wdF9kaXNhYmxlKCk7Ci0JY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCXJkdHNjbChiY2xvY2spOwotCWZvciAoOzspIHsKLQkJcmR0c2NsKG5vdyk7Ci0JCWlmICgobm93IC0gYmNsb2NrKSA+PSBsb29wcykKLQkJCWJyZWFrOwotCi0JCS8qIEFsbG93IFJUIHRhc2tzIHRvIHJ1biAqLwotCQlwcmVlbXB0X2VuYWJsZSgpOwotCQlyZXBfbm9wKCk7Ci0JCXByZWVtcHRfZGlzYWJsZSgpOwotCi0JCS8qCi0JCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgbW92ZWQgdG8gYW5vdGhlciBDUFUsIGFuZAotCQkgKiBzaW5jZSBUU0MncyBhcmUgcGVyLWNwdSB3ZSBuZWVkIHRvIGNhbGN1bGF0ZQotCQkgKiB0aGF0LiBUaGUgZGVsYXkgbXVzdCBndWFyYW50ZWUgdGhhdCB3ZSB3YWl0ICJhdAotCQkgKiBsZWFzdCIgdGhlIGFtb3VudCBvZiB0aW1lLiBCZWluZyBtb3ZlZCB0byBhbm90aGVyCi0JCSAqIENQVSBjb3VsZCBtYWtlIHRoZSB3YWl0IGxvbmdlciBidXQgd2UganVzdCBuZWVkIHRvCi0JCSAqIG1ha2Ugc3VyZSB3ZSB3YWl0ZWQgbG9uZyBlbm91Z2guIFJlYmFsYW5jZSB0aGUKLQkJICogY291bnRlciBmb3IgdGhpcyBDUFUuCi0JCSAqLwotCQlpZiAodW5saWtlbHkoY3B1ICE9IHNtcF9wcm9jZXNzb3JfaWQoKSkpIHsKLQkJCWxvb3BzIC09IChub3cgLSBiY2xvY2spOwotCQkJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotCQkJcmR0c2NsKGJjbG9jayk7Ci0JCX0KLQl9Ci0JcHJlZW1wdF9lbmFibGUoKTsKLX0KLUVYUE9SVF9TWU1CT0woX19kZWxheSk7Ci0KLWlubGluZSB2b2lkIF9fY29uc3RfdWRlbGF5KHVuc2lnbmVkIGxvbmcgeGxvb3BzKQotewotCV9fZGVsYXkoKCh4bG9vcHMgKiBIWiAqCi0JCWNwdV9kYXRhKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpLmxvb3BzX3Blcl9qaWZmeSkgPj4gMzIpICsgMSk7Ci19Ci1FWFBPUlRfU1lNQk9MKF9fY29uc3RfdWRlbGF5KTsKLQotdm9pZCBfX3VkZWxheSh1bnNpZ25lZCBsb25nIHVzZWNzKQotewotCV9fY29uc3RfdWRlbGF5KHVzZWNzICogMHgwMDAwMTBjNyk7ICAvKiAyKiozMiAvIDEwMDAwMDAgKHJvdW5kZWQgdXApICovCi19Ci1FWFBPUlRfU1lNQk9MKF9fdWRlbGF5KTsKLQotdm9pZCBfX25kZWxheSh1bnNpZ25lZCBsb25nIG5zZWNzKQotewotCV9fY29uc3RfdWRlbGF5KG5zZWNzICogMHgwMDAwNSk7ICAvKiAyKiozMiAvIDEwMDAwMDAwMDAgKHJvdW5kZWQgdXApICovCi19Ci1FWFBPUlRfU1lNQk9MKF9fbmRlbGF5KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9nZXR1c2VyLlMgYi9hcmNoL3g4Ni9saWIvZ2V0dXNlci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkMzc0MDAKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9saWIvZ2V0dXNlci5TCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogX19nZXRfdXNlciBmdW5jdGlvbnMuCisgKgorICogKEMpIENvcHlyaWdodCAxOTk4IExpbnVzIFRvcnZhbGRzCisgKiAoQykgQ29weXJpZ2h0IDIwMDUgQW5kaSBLbGVlbgorICogKEMpIENvcHlyaWdodCAyMDA4IEdsYXViZXIgQ29zdGEKKyAqCisgKiBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIG5vbi1zdGFuZGFyZCBjYWxsIGludGVyZmFjZQorICogdG8gbWFrZSB0aGVtIG1vcmUgZWZmaWNpZW50LCBlc3BlY2lhbGx5IGFzIHRoZXkKKyAqIHJldHVybiBhbiBlcnJvciB2YWx1ZSBpbiBhZGRpdGlvbiB0byB0aGUgInJlYWwiCisgKiByZXR1cm4gdmFsdWUuCisgKi8KKworLyoKKyAqIF9fZ2V0X3VzZXJfWAorICoKKyAqIElucHV0czoJJVtyfGVdYXggY29udGFpbnMgdGhlIGFkZHJlc3MuCisgKgkJVGhlIHJlZ2lzdGVyIGlzIG1vZGlmaWVkLCBidXQgYWxsIGNoYW5nZXMgYXJlIHVuZG9uZQorICoJCWJlZm9yZSByZXR1cm5pbmcgYmVjYXVzZSB0aGUgQyBjb2RlIGRvZXNuJ3Qga25vdyBhYm91dCBpdC4KKyAqCisgKiBPdXRwdXRzOgklW3J8ZV1heCBpcyBlcnJvciBjb2RlICgwIG9yIC1FRkFVTFQpCisgKgkJJVtyfGVdZHggY29udGFpbnMgemVyby1leHRlbmRlZCB2YWx1ZQorICoKKyAqCisgKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBtb2RpZnkgYW55IG90aGVyIHJlZ2lzdGVycywKKyAqIGFzIHRoZXkgZ2V0IGNhbGxlZCBmcm9tIHdpdGhpbiBpbmxpbmUgYXNzZW1ibHkuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxhc20vZHdhcmYyLmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vZXJybm8uaD4KKyNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KKyNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4KKyNpbmNsdWRlIDxhc20vYXNtLmg+CisKKwkudGV4dAorRU5UUlkoX19nZXRfdXNlcl8xKQorCUNGSV9TVEFSVFBST0MKKwlHRVRfVEhSRUFEX0lORk8oJV9BU01fRFgpCisJY21wIFRJX2FkZHJfbGltaXQoJV9BU01fRFgpLCVfQVNNX0FYCisJamFlIGJhZF9nZXRfdXNlcgorMToJbW92emIgKCVfQVNNX0FYKSwlZWR4CisJeG9yICVlYXgsJWVheAorCXJldAorCUNGSV9FTkRQUk9DCitFTkRQUk9DKF9fZ2V0X3VzZXJfMSkKKworRU5UUlkoX19nZXRfdXNlcl8yKQorCUNGSV9TVEFSVFBST0MKKwlhZGQgJDEsJV9BU01fQVgKKwlqYyBiYWRfZ2V0X3VzZXIKKwlHRVRfVEhSRUFEX0lORk8oJV9BU01fRFgpCisJY21wIFRJX2FkZHJfbGltaXQoJV9BU01fRFgpLCVfQVNNX0FYCisJamFlIGJhZF9nZXRfdXNlcgorMjoJbW92endsIC0xKCVfQVNNX0FYKSwlZWR4CisJeG9yICVlYXgsJWVheAorCXJldAorCUNGSV9FTkRQUk9DCitFTkRQUk9DKF9fZ2V0X3VzZXJfMikKKworRU5UUlkoX19nZXRfdXNlcl80KQorCUNGSV9TVEFSVFBST0MKKwlhZGQgJDMsJV9BU01fQVgKKwlqYyBiYWRfZ2V0X3VzZXIKKwlHRVRfVEhSRUFEX0lORk8oJV9BU01fRFgpCisJY21wIFRJX2FkZHJfbGltaXQoJV9BU01fRFgpLCVfQVNNX0FYCisJamFlIGJhZF9nZXRfdXNlcgorMzoJbW92IC0zKCVfQVNNX0FYKSwlZWR4CisJeG9yICVlYXgsJWVheAorCXJldAorCUNGSV9FTkRQUk9DCitFTkRQUk9DKF9fZ2V0X3VzZXJfNCkKKworI2lmZGVmIENPTkZJR19YODZfNjQKK0VOVFJZKF9fZ2V0X3VzZXJfOCkKKwlDRklfU1RBUlRQUk9DCisJYWRkICQ3LCVfQVNNX0FYCisJamMgYmFkX2dldF91c2VyCisJR0VUX1RIUkVBRF9JTkZPKCVfQVNNX0RYKQorCWNtcCBUSV9hZGRyX2xpbWl0KCVfQVNNX0RYKSwlX0FTTV9BWAorCWphZQliYWRfZ2V0X3VzZXIKKzQ6CW1vdnEgLTcoJV9BU01fQVgpLCVfQVNNX0RYCisJeG9yICVlYXgsJWVheAorCXJldAorCUNGSV9FTkRQUk9DCitFTkRQUk9DKF9fZ2V0X3VzZXJfOCkKKyNlbmRpZgorCitiYWRfZ2V0X3VzZXI6CisJQ0ZJX1NUQVJUUFJPQworCXhvciAlZWR4LCVlZHgKKwltb3YgJCgtRUZBVUxUKSwlX0FTTV9BWAorCXJldAorCUNGSV9FTkRQUk9DCitFTkQoYmFkX2dldF91c2VyKQorCisuc2VjdGlvbiBfX2V4X3RhYmxlLCJhIgorCV9BU01fUFRSIDFiLGJhZF9nZXRfdXNlcgorCV9BU01fUFRSIDJiLGJhZF9nZXRfdXNlcgorCV9BU01fUFRSIDNiLGJhZF9nZXRfdXNlcgorI2lmZGVmIENPTkZJR19YODZfNjQKKwlfQVNNX1BUUiA0YixiYWRfZ2V0X3VzZXIKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2dldHVzZXJfMzIuUyBiL2FyY2gveDg2L2xpYi9nZXR1c2VyXzMyLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkODRiNTMuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbGliL2dldHVzZXJfMzIuUworKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8qCi0gKiBfX2dldF91c2VyIGZ1bmN0aW9ucy4KLSAqCi0gKiAoQykgQ29weXJpZ2h0IDE5OTggTGludXMgVG9ydmFsZHMKLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIG5vbi1zdGFuZGFyZCBjYWxsIGludGVyZmFjZQotICogdG8gbWFrZSB0aGVtIG1vcmUgZWZmaWNpZW50LCBlc3BlY2lhbGx5IGFzIHRoZXkKLSAqIHJldHVybiBhbiBlcnJvciB2YWx1ZSBpbiBhZGRpdGlvbiB0byB0aGUgInJlYWwiCi0gKiByZXR1cm4gdmFsdWUuCi0gKi8KLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgotI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgotCi0KLS8qCi0gKiBfX2dldF91c2VyX1gKLSAqCi0gKiBJbnB1dHM6CSVlYXggY29udGFpbnMgdGhlIGFkZHJlc3MKLSAqCi0gKiBPdXRwdXRzOgklZWF4IGlzIGVycm9yIGNvZGUgKDAgb3IgLUVGQVVMVCkKLSAqCQklZWR4IGNvbnRhaW5zIHplcm8tZXh0ZW5kZWQgdmFsdWUKLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBtb2RpZnkgYW55IG90aGVyIHJlZ2lzdGVycywKLSAqIGFzIHRoZXkgZ2V0IGNhbGxlZCBmcm9tIHdpdGhpbiBpbmxpbmUgYXNzZW1ibHkuCi0gKi8KLQotLnRleHQKLUVOVFJZKF9fZ2V0X3VzZXJfMSkKLQlDRklfU1RBUlRQUk9DCi0JR0VUX1RIUkVBRF9JTkZPKCVlZHgpCi0JY21wbCBUSV9hZGRyX2xpbWl0KCVlZHgpLCVlYXgKLQlqYWUgYmFkX2dldF91c2VyCi0xOgltb3Z6YmwgKCVlYXgpLCVlZHgKLQl4b3JsICVlYXgsJWVheAotCXJldAotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fZ2V0X3VzZXJfMSkKLQotRU5UUlkoX19nZXRfdXNlcl8yKQotCUNGSV9TVEFSVFBST0MKLQlhZGRsICQxLCVlYXgKLQlqYyBiYWRfZ2V0X3VzZXIKLQlHRVRfVEhSRUFEX0lORk8oJWVkeCkKLQljbXBsIFRJX2FkZHJfbGltaXQoJWVkeCksJWVheAotCWphZSBiYWRfZ2V0X3VzZXIKLTI6CW1vdnp3bCAtMSglZWF4KSwlZWR4Ci0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX2dldF91c2VyXzIpCi0KLUVOVFJZKF9fZ2V0X3VzZXJfNCkKLQlDRklfU1RBUlRQUk9DCi0JYWRkbCAkMywlZWF4Ci0JamMgYmFkX2dldF91c2VyCi0JR0VUX1RIUkVBRF9JTkZPKCVlZHgpCi0JY21wbCBUSV9hZGRyX2xpbWl0KCVlZHgpLCVlYXgKLQlqYWUgYmFkX2dldF91c2VyCi0zOgltb3ZsIC0zKCVlYXgpLCVlZHgKLQl4b3JsICVlYXgsJWVheAotCXJldAotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fZ2V0X3VzZXJfNCkKLQotYmFkX2dldF91c2VyOgotCUNGSV9TVEFSVFBST0MKLQl4b3JsICVlZHgsJWVkeAotCW1vdmwgJC0xNCwlZWF4Ci0JcmV0Ci0JQ0ZJX0VORFBST0MKLUVORChiYWRfZ2V0X3VzZXIpCi0KLS5zZWN0aW9uIF9fZXhfdGFibGUsImEiCi0JLmxvbmcgMWIsYmFkX2dldF91c2VyCi0JLmxvbmcgMmIsYmFkX2dldF91c2VyCi0JLmxvbmcgM2IsYmFkX2dldF91c2VyCi0ucHJldmlvdXMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9nZXR1c2VyXzY0LlMgYi9hcmNoL3g4Ni9saWIvZ2V0dXNlcl82NC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDQ4ODc2Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2xpYi9nZXR1c2VyXzY0LlMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDkgKzAsMCBAQAotLyoKLSAqIF9fZ2V0X3VzZXIgZnVuY3Rpb25zLgotICoKLSAqIChDKSBDb3B5cmlnaHQgMTk5OCBMaW51cyBUb3J2YWxkcwotICogKEMpIENvcHlyaWdodCAyMDA1IEFuZGkgS2xlZW4KLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIG5vbi1zdGFuZGFyZCBjYWxsIGludGVyZmFjZQotICogdG8gbWFrZSB0aGVtIG1vcmUgZWZmaWNpZW50LCBlc3BlY2lhbGx5IGFzIHRoZXkKLSAqIHJldHVybiBhbiBlcnJvciB2YWx1ZSBpbiBhZGRpdGlvbiB0byB0aGUgInJlYWwiCi0gKiByZXR1cm4gdmFsdWUuCi0gKi8KLQotLyoKLSAqIF9fZ2V0X3VzZXJfWAotICoKLSAqIElucHV0czoJJXJjeCBjb250YWlucyB0aGUgYWRkcmVzcy4KLSAqCQlUaGUgcmVnaXN0ZXIgaXMgbW9kaWZpZWQsIGJ1dCBhbGwgY2hhbmdlcyBhcmUgdW5kb25lCi0gKgkJYmVmb3JlIHJldHVybmluZyBiZWNhdXNlIHRoZSBDIGNvZGUgZG9lc24ndCBrbm93IGFib3V0IGl0LgotICoKLSAqIE91dHB1dHM6CSVyYXggaXMgZXJyb3IgY29kZSAoMCBvciAtRUZBVUxUKQotICoJCSVyZHggY29udGFpbnMgemVyby1leHRlbmRlZCB2YWx1ZQotICogCi0gKiAlcjggaXMgZGVzdHJveWVkLgotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgbm90IG1vZGlmeSBhbnkgb3RoZXIgcmVnaXN0ZXJzLAotICogYXMgdGhleSBnZXQgY2FsbGVkIGZyb20gd2l0aGluIGlubGluZSBhc3NlbWJseS4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGFzbS9kd2FyZjIuaD4KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS9lcnJuby5oPgotI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgotI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgotCi0JLnRleHQKLUVOVFJZKF9fZ2V0X3VzZXJfMSkKLQlDRklfU1RBUlRQUk9DCi0JR0VUX1RIUkVBRF9JTkZPKCVyOCkKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcjgpLCVyY3gKLQlqYWUgYmFkX2dldF91c2VyCi0xOgltb3Z6YiAoJXJjeCksJWVkeAotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19nZXRfdXNlcl8xKQotCi1FTlRSWShfX2dldF91c2VyXzIpCi0JQ0ZJX1NUQVJUUFJPQwotCUdFVF9USFJFQURfSU5GTyglcjgpCi0JYWRkcSAkMSwlcmN4Ci0JamMgMjBmCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXI4KSwlcmN4Ci0JamFlIDIwZgotCWRlY3EgICAlcmN4Ci0yOgltb3Z6d2wgKCVyY3gpLCVlZHgKLQl4b3JsICVlYXgsJWVheAotCXJldAotMjA6CWRlY3EgICAgJXJjeAotCWptcAliYWRfZ2V0X3VzZXIKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX2dldF91c2VyXzIpCi0KLUVOVFJZKF9fZ2V0X3VzZXJfNCkKLQlDRklfU1RBUlRQUk9DCi0JR0VUX1RIUkVBRF9JTkZPKCVyOCkKLQlhZGRxICQzLCVyY3gKLQlqYyAzMGYKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcjgpLCVyY3gKLQlqYWUgMzBmCi0Jc3VicSAkMywlcmN4Ci0zOgltb3ZsICglcmN4KSwlZWR4Ci0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLTMwOglzdWJxICQzLCVyY3gKLQlqbXAgYmFkX2dldF91c2VyCi0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19nZXRfdXNlcl80KQotCi1FTlRSWShfX2dldF91c2VyXzgpCi0JQ0ZJX1NUQVJUUFJPQwotCUdFVF9USFJFQURfSU5GTyglcjgpCi0JYWRkcSAkNywlcmN4Ci0JamMgNDBmCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXI4KSwlcmN4Ci0JamFlCTQwZgotCXN1YnEJJDcsJXJjeAotNDoJbW92cSAoJXJjeCksJXJkeAotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci00MDoJc3VicSAkNywlcmN4Ci0Jam1wIGJhZF9nZXRfdXNlcgotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fZ2V0X3VzZXJfOCkKLQotYmFkX2dldF91c2VyOgotCUNGSV9TVEFSVFBST0MKLQl4b3JsICVlZHgsJWVkeAotCW1vdnEgJCgtRUZBVUxUKSwlcmF4Ci0JcmV0Ci0JQ0ZJX0VORFBST0MKLUVORChiYWRfZ2V0X3VzZXIpCi0KLS5zZWN0aW9uIF9fZXhfdGFibGUsImEiCi0JLnF1YWQgMWIsYmFkX2dldF91c2VyCi0JLnF1YWQgMmIsYmFkX2dldF91c2VyCi0JLnF1YWQgM2IsYmFkX2dldF91c2VyCi0JLnF1YWQgNGIsYmFkX2dldF91c2VyCi0ucHJldmlvdXMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9wdXR1c2VyLlMgYi9hcmNoL3g4Ni9saWIvcHV0dXNlci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2YjBkMTUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9saWIvcHV0dXNlci5TCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBfX3B1dF91c2VyIGZ1bmN0aW9ucy4KKyAqCisgKiAoQykgQ29weXJpZ2h0IDIwMDUgTGludXMgVG9ydmFsZHMKKyAqIChDKSBDb3B5cmlnaHQgMjAwNSBBbmRpIEtsZWVuCisgKiAoQykgQ29weXJpZ2h0IDIwMDggR2xhdWJlciBDb3N0YQorICoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgbm9uLXN0YW5kYXJkIGNhbGwgaW50ZXJmYWNlCisgKiB0byBtYWtlIHRoZW0gbW9yZSBlZmZpY2llbnQsIGVzcGVjaWFsbHkgYXMgdGhleQorICogcmV0dXJuIGFuIGVycm9yIHZhbHVlIGluIGFkZGl0aW9uIHRvIHRoZSAicmVhbCIKKyAqIHJldHVybiB2YWx1ZS4KKyAqLworI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxhc20vZHdhcmYyLmg+CisjaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+CisjaW5jbHVkZSA8YXNtL2Vycm5vLmg+CisjaW5jbHVkZSA8YXNtL2FzbS5oPgorCisKKy8qCisgKiBfX3B1dF91c2VyX1gKKyAqCisgKiBJbnB1dHM6CSVlYXhbOiVlZHhdIGNvbnRhaW5zIHRoZSBkYXRhCisgKgkJJWVjeCBjb250YWlucyB0aGUgYWRkcmVzcworICoKKyAqIE91dHB1dHM6CSVlYXggaXMgZXJyb3IgY29kZSAoMCBvciAtRUZBVUxUKQorICoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgbm90IG1vZGlmeSBhbnkgb3RoZXIgcmVnaXN0ZXJzLAorICogYXMgdGhleSBnZXQgY2FsbGVkIGZyb20gd2l0aGluIGlubGluZSBhc3NlbWJseS4KKyAqLworCisjZGVmaW5lIEVOVEVSCUNGSV9TVEFSVFBST0MgOyBcCisJCUdFVF9USFJFQURfSU5GTyglX0FTTV9CWCkKKyNkZWZpbmUgRVhJVAlyZXQgOyBcCisJCUNGSV9FTkRQUk9DCisKKy50ZXh0CitFTlRSWShfX3B1dF91c2VyXzEpCisJRU5URVIKKwljbXAgVElfYWRkcl9saW1pdCglX0FTTV9CWCksJV9BU01fQ1gKKwlqYWUgYmFkX3B1dF91c2VyCisxOgltb3ZiICVhbCwoJV9BU01fQ1gpCisJeG9yICVlYXgsJWVheAorCUVYSVQKK0VORFBST0MoX19wdXRfdXNlcl8xKQorCitFTlRSWShfX3B1dF91c2VyXzIpCisJRU5URVIKKwltb3YgVElfYWRkcl9saW1pdCglX0FTTV9CWCksJV9BU01fQlgKKwlzdWIgJDEsJV9BU01fQlgKKwljbXAgJV9BU01fQlgsJV9BU01fQ1gKKwlqYWUgYmFkX3B1dF91c2VyCisyOgltb3Z3ICVheCwoJV9BU01fQ1gpCisJeG9yICVlYXgsJWVheAorCUVYSVQKK0VORFBST0MoX19wdXRfdXNlcl8yKQorCitFTlRSWShfX3B1dF91c2VyXzQpCisJRU5URVIKKwltb3YgVElfYWRkcl9saW1pdCglX0FTTV9CWCksJV9BU01fQlgKKwlzdWIgJDMsJV9BU01fQlgKKwljbXAgJV9BU01fQlgsJV9BU01fQ1gKKwlqYWUgYmFkX3B1dF91c2VyCiszOgltb3ZsICVlYXgsKCVfQVNNX0NYKQorCXhvciAlZWF4LCVlYXgKKwlFWElUCitFTkRQUk9DKF9fcHV0X3VzZXJfNCkKKworRU5UUlkoX19wdXRfdXNlcl84KQorCUVOVEVSCisJbW92IFRJX2FkZHJfbGltaXQoJV9BU01fQlgpLCVfQVNNX0JYCisJc3ViICQ3LCVfQVNNX0JYCisJY21wICVfQVNNX0JYLCVfQVNNX0NYCisJamFlIGJhZF9wdXRfdXNlcgorNDoJbW92ICVfQVNNX0FYLCglX0FTTV9DWCkKKyNpZmRlZiBDT05GSUdfWDg2XzMyCis1Ogltb3ZsICVlZHgsNCglX0FTTV9DWCkKKyNlbmRpZgorCXhvciAlZWF4LCVlYXgKKwlFWElUCitFTkRQUk9DKF9fcHV0X3VzZXJfOCkKKworYmFkX3B1dF91c2VyOgorCUNGSV9TVEFSVFBST0MKKwltb3ZsICQtRUZBVUxULCVlYXgKKwlFWElUCitFTkQoYmFkX3B1dF91c2VyKQorCisuc2VjdGlvbiBfX2V4X3RhYmxlLCJhIgorCV9BU01fUFRSIDFiLGJhZF9wdXRfdXNlcgorCV9BU01fUFRSIDJiLGJhZF9wdXRfdXNlcgorCV9BU01fUFRSIDNiLGJhZF9wdXRfdXNlcgorCV9BU01fUFRSIDRiLGJhZF9wdXRfdXNlcgorI2lmZGVmIENPTkZJR19YODZfMzIKKwlfQVNNX1BUUiA1YixiYWRfcHV0X3VzZXIKKyNlbmRpZgorLnByZXZpb3VzCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvcHV0dXNlcl8zMi5TIGIvYXJjaC94ODYvbGliL3B1dHVzZXJfMzIuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjU4ZmJhMS4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9saWIvcHV0dXNlcl8zMi5TCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAqIF9fcHV0X3VzZXIgZnVuY3Rpb25zLgotICoKLSAqIChDKSBDb3B5cmlnaHQgMjAwNSBMaW51cyBUb3J2YWxkcwotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgbm9uLXN0YW5kYXJkIGNhbGwgaW50ZXJmYWNlCi0gKiB0byBtYWtlIHRoZW0gbW9yZSBlZmZpY2llbnQsIGVzcGVjaWFsbHkgYXMgdGhleQotICogcmV0dXJuIGFuIGVycm9yIHZhbHVlIGluIGFkZGl0aW9uIHRvIHRoZSAicmVhbCIKLSAqIHJldHVybiB2YWx1ZS4KLSAqLwotI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KLSNpbmNsdWRlIDxhc20vZHdhcmYyLmg+Ci0jaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+Ci0KLQotLyoKLSAqIF9fcHV0X3VzZXJfWAotICoKLSAqIElucHV0czoJJWVheFs6JWVkeF0gY29udGFpbnMgdGhlIGRhdGEKLSAqCQklZWN4IGNvbnRhaW5zIHRoZSBhZGRyZXNzCi0gKgotICogT3V0cHV0czoJJWVheCBpcyBlcnJvciBjb2RlICgwIG9yIC1FRkFVTFQpCi0gKgotICogVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBub3QgbW9kaWZ5IGFueSBvdGhlciByZWdpc3RlcnMsCi0gKiBhcyB0aGV5IGdldCBjYWxsZWQgZnJvbSB3aXRoaW4gaW5saW5lIGFzc2VtYmx5LgotICovCi0KLSNkZWZpbmUgRU5URVIJQ0ZJX1NUQVJUUFJPQyA7IFwKLQkJcHVzaGwgJWVieCA7IFwKLQkJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIDQgOyBcCi0JCUNGSV9SRUxfT0ZGU0VUIGVieCwgMCA7IFwKLQkJR0VUX1RIUkVBRF9JTkZPKCVlYngpCi0jZGVmaW5lIEVYSVQJcG9wbCAlZWJ4IDsgXAotCQlDRklfQURKVVNUX0NGQV9PRkZTRVQgLTQgOyBcCi0JCUNGSV9SRVNUT1JFIGVieCA7IFwKLQkJcmV0IDsgXAotCQlDRklfRU5EUFJPQwotCi0udGV4dAotRU5UUlkoX19wdXRfdXNlcl8xKQotCUVOVEVSCi0JY21wbCBUSV9hZGRyX2xpbWl0KCVlYngpLCVlY3gKLQlqYWUgYmFkX3B1dF91c2VyCi0xOgltb3ZiICVhbCwoJWVjeCkKLQl4b3JsICVlYXgsJWVheAotCUVYSVQKLUVORFBST0MoX19wdXRfdXNlcl8xKQotCi1FTlRSWShfX3B1dF91c2VyXzIpCi0JRU5URVIKLQltb3ZsIFRJX2FkZHJfbGltaXQoJWVieCksJWVieAotCXN1YmwgJDEsJWVieAotCWNtcGwgJWVieCwlZWN4Ci0JamFlIGJhZF9wdXRfdXNlcgotMjoJbW92dyAlYXgsKCVlY3gpCi0JeG9ybCAlZWF4LCVlYXgKLQlFWElUCi1FTkRQUk9DKF9fcHV0X3VzZXJfMikKLQotRU5UUlkoX19wdXRfdXNlcl80KQotCUVOVEVSCi0JbW92bCBUSV9hZGRyX2xpbWl0KCVlYngpLCVlYngKLQlzdWJsICQzLCVlYngKLQljbXBsICVlYngsJWVjeAotCWphZSBiYWRfcHV0X3VzZXIKLTM6CW1vdmwgJWVheCwoJWVjeCkKLQl4b3JsICVlYXgsJWVheAotCUVYSVQKLUVORFBST0MoX19wdXRfdXNlcl80KQotCi1FTlRSWShfX3B1dF91c2VyXzgpCi0JRU5URVIKLQltb3ZsIFRJX2FkZHJfbGltaXQoJWVieCksJWVieAotCXN1YmwgJDcsJWVieAotCWNtcGwgJWVieCwlZWN4Ci0JamFlIGJhZF9wdXRfdXNlcgotNDoJbW92bCAlZWF4LCglZWN4KQotNToJbW92bCAlZWR4LDQoJWVjeCkKLQl4b3JsICVlYXgsJWVheAotCUVYSVQKLUVORFBST0MoX19wdXRfdXNlcl84KQotCi1iYWRfcHV0X3VzZXI6Ci0JQ0ZJX1NUQVJUUFJPQyBzaW1wbGUKLQlDRklfREVGX0NGQSBlc3AsIDIqNAotCUNGSV9PRkZTRVQgZWlwLCAtMSo0Ci0JQ0ZJX09GRlNFVCBlYngsIC0yKjQKLQltb3ZsICQtMTQsJWVheAotCUVYSVQKLUVORChiYWRfcHV0X3VzZXIpCi0KLS5zZWN0aW9uIF9fZXhfdGFibGUsImEiCi0JLmxvbmcgMWIsYmFkX3B1dF91c2VyCi0JLmxvbmcgMmIsYmFkX3B1dF91c2VyCi0JLmxvbmcgM2IsYmFkX3B1dF91c2VyCi0JLmxvbmcgNGIsYmFkX3B1dF91c2VyCi0JLmxvbmcgNWIsYmFkX3B1dF91c2VyCi0ucHJldmlvdXMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9wdXR1c2VyXzY0LlMgYi9hcmNoL3g4Ni9saWIvcHV0dXNlcl82NC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTg5ZjVhLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2xpYi9wdXR1c2VyXzY0LlMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAqIF9fcHV0X3VzZXIgZnVuY3Rpb25zLgotICoKLSAqIChDKSBDb3B5cmlnaHQgMTk5OCBMaW51cyBUb3J2YWxkcwotICogKEMpIENvcHlyaWdodCAyMDA1IEFuZGkgS2xlZW4KLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIG5vbi1zdGFuZGFyZCBjYWxsIGludGVyZmFjZQotICogdG8gbWFrZSB0aGVtIG1vcmUgZWZmaWNpZW50LCBlc3BlY2lhbGx5IGFzIHRoZXkKLSAqIHJldHVybiBhbiBlcnJvciB2YWx1ZSBpbiBhZGRpdGlvbiB0byB0aGUgInJlYWwiCi0gKiByZXR1cm4gdmFsdWUuCi0gKi8KLQotLyoKLSAqIF9fcHV0X3VzZXJfWAotICoKLSAqIElucHV0czoJJXJjeCBjb250YWlucyB0aGUgYWRkcmVzcwotICoJCSVyZHggY29udGFpbnMgbmV3IHZhbHVlCi0gKgotICogT3V0cHV0czoJJXJheCBpcyBlcnJvciBjb2RlICgwIG9yIC1FRkFVTFQpCi0gKgotICogJXI4IGlzIGRlc3Ryb3llZC4KLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBtb2RpZnkgYW55IG90aGVyIHJlZ2lzdGVycywKLSAqIGFzIHRoZXkgZ2V0IGNhbGxlZCBmcm9tIHdpdGhpbiBpbmxpbmUgYXNzZW1ibHkuCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KLSNpbmNsdWRlIDxhc20vZHdhcmYyLmg+Ci0jaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLSNpbmNsdWRlIDxhc20vZXJybm8uaD4KLSNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KLSNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4KLQotCS50ZXh0Ci1FTlRSWShfX3B1dF91c2VyXzEpCi0JQ0ZJX1NUQVJUUFJPQwotCUdFVF9USFJFQURfSU5GTyglcjgpCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXI4KSwlcmN4Ci0JamFlIGJhZF9wdXRfdXNlcgotMToJbW92YiAlZGwsKCVyY3gpCi0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX3B1dF91c2VyXzEpCi0KLUVOVFJZKF9fcHV0X3VzZXJfMikKLQlDRklfU1RBUlRQUk9DCi0JR0VUX1RIUkVBRF9JTkZPKCVyOCkKLQlhZGRxICQxLCVyY3gKLQlqYyAyMGYKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcjgpLCVyY3gKLQlqYWUgMjBmCi0JZGVjcSAlcmN4Ci0yOgltb3Z3ICVkeCwoJXJjeCkKLQl4b3JsICVlYXgsJWVheAotCXJldAotMjA6CWRlY3EgJXJjeAotCWptcCBiYWRfcHV0X3VzZXIKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX3B1dF91c2VyXzIpCi0KLUVOVFJZKF9fcHV0X3VzZXJfNCkKLQlDRklfU1RBUlRQUk9DCi0JR0VUX1RIUkVBRF9JTkZPKCVyOCkKLQlhZGRxICQzLCVyY3gKLQlqYyAzMGYKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcjgpLCVyY3gKLQlqYWUgMzBmCi0Jc3VicSAkMywlcmN4Ci0zOgltb3ZsICVlZHgsKCVyY3gpCi0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLTMwOglzdWJxICQzLCVyY3gKLQlqbXAgYmFkX3B1dF91c2VyCi0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19wdXRfdXNlcl80KQotCi1FTlRSWShfX3B1dF91c2VyXzgpCi0JQ0ZJX1NUQVJUUFJPQwotCUdFVF9USFJFQURfSU5GTyglcjgpCi0JYWRkcSAkNywlcmN4Ci0JamMgNDBmCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXI4KSwlcmN4Ci0JamFlIDQwZgotCXN1YnEgJDcsJXJjeAotNDoJbW92cSAlcmR4LCglcmN4KQotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci00MDoJc3VicSAkNywlcmN4Ci0Jam1wIGJhZF9wdXRfdXNlcgotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fcHV0X3VzZXJfOCkKLQotYmFkX3B1dF91c2VyOgotCUNGSV9TVEFSVFBST0MKLQltb3ZxICQoLUVGQVVMVCksJXJheAotCXJldAotCUNGSV9FTkRQUk9DCi1FTkQoYmFkX3B1dF91c2VyKQotCi0uc2VjdGlvbiBfX2V4X3RhYmxlLCJhIgotCS5xdWFkIDFiLGJhZF9wdXRfdXNlcgotCS5xdWFkIDJiLGJhZF9wdXRfdXNlcgotCS5xdWFkIDNiLGJhZF9wdXRfdXNlcgotCS5xdWFkIDRiLGJhZF9wdXRfdXNlcgotLnByZXZpb3VzCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvdGh1bmtfMzIuUyBiL2FyY2gveDg2L2xpYi90aHVua18zMi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MGIxMWUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9saWIvdGh1bmtfMzIuUwpAQCAtMCwwICsxLDQ3IEBACisvKgorICogVHJhbXBvbGluZSB0byB0cmFjZSBpcnFzIG9mZi4gKG90aGVyd2lzZSBDQUxMRVJfQUREUjEgbWlnaHQgY3Jhc2gpCisgKiBDb3B5cmlnaHQgMjAwOCBieSBTdGV2ZW4gUm9zdGVkdCwgUmVkIEhhdCwgSW5jCisgKiAgKGluc3BpcmVkIGJ5IEFuZGkgS2xlZW4ncyB0aHVua182NC5TKQorICogU3ViamVjdCB0byB0aGUgR05VIHB1YmxpYyBsaWNlbnNlLCB2LjIuIE5vIHdhcnJhbnR5IG9mIGFueSBraW5kLgorICovCisKKwkjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgorCisjZGVmaW5lIEFSQ0hfVFJBQ0VfSVJRU19PTgkJCVwKKwlwdXNobCAlZWF4OwkJCQlcCisJcHVzaGwgJWVjeDsJCQkJXAorCXB1c2hsICVlZHg7CQkJCVwKKwljYWxsIHRyYWNlX2hhcmRpcnFzX29uOwkJCVwKKwlwb3BsICVlZHg7CQkJCVwKKwlwb3BsICVlY3g7CQkJCVwKKwlwb3BsICVlYXg7CisKKyNkZWZpbmUgQVJDSF9UUkFDRV9JUlFTX09GRgkJCVwKKwlwdXNobCAlZWF4OwkJCQlcCisJcHVzaGwgJWVjeDsJCQkJXAorCXB1c2hsICVlZHg7CQkJCVwKKwljYWxsIHRyYWNlX2hhcmRpcnFzX29mZjsJCVwKKwlwb3BsICVlZHg7CQkJCVwKKwlwb3BsICVlY3g7CQkJCVwKKwlwb3BsICVlYXg7CisKKyNpZmRlZiBDT05GSUdfVFJBQ0VfSVJRRkxBR1MKKwkvKiBwdXQgcmV0dXJuIGFkZHJlc3MgaW4gZWF4IChhcmcxKSAqLworCS5tYWNybyB0aHVua19yYSBuYW1lLGZ1bmMKKwkuZ2xvYmwgXG5hbWUKK1xuYW1lOgorCXB1c2hsICVlYXgKKwlwdXNobCAlZWN4CisJcHVzaGwgJWVkeAorCS8qIFBsYWNlIEVJUCBpbiB0aGUgYXJnMSAqLworCW1vdmwgMyo0KCVlc3ApLCAlZWF4CisJY2FsbCBcZnVuYworCXBvcGwgJWVkeAorCXBvcGwgJWVjeAorCXBvcGwgJWVheAorCXJldAorCS5lbmRtCisKKwl0aHVua19yYSB0cmFjZV9oYXJkaXJxc19vbl90aHVuayx0cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIKKwl0aHVua19yYSB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bmssdHJhY2VfaGFyZGlycXNfb2ZmX2NhbGxlcgorI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvdGh1bmtfNjQuUyBiL2FyY2gveDg2L2xpYi90aHVua182NC5TCmluZGV4IGUwMDkyNTEuLmJmOWE3ZDUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi90aHVua182NC5TCisrKyBiL2FyY2gveDg2L2xpYi90aHVua182NC5TCkBAIC0yLDYgKzIsNyBAQAogICogU2F2ZSByZWdpc3RlcnMgYmVmb3JlIGNhbGxpbmcgYXNzZW1ibHkgZnVuY3Rpb25zLiBUaGlzIGF2b2lkcwogICogZGlzdHVyYmFuY2Ugb2YgcmVnaXN0ZXIgYWxsb2NhdGlvbiBpbiBzb21lIGlubGluZSBhc3NlbWJseSBjb25zdHJ1Y3RzLgogICogQ29weXJpZ2h0IDIwMDEsMjAwMiBieSBBbmRpIEtsZWVuLCBTdVNFIExhYnMuCisgKiBBZGRlZCB0cmFjZV9oYXJkaXJxcyBjYWxsZXJzIC0gQ29weXJpZ2h0IDIwMDcgU3RldmVuIFJvc3RlZHQsIFJlZCBIYXQsIEluYy4KICAqIFN1YmplY3QgdG8gdGhlIEdOVSBwdWJsaWMgbGljZW5zZSwgdi4yLiBObyB3YXJyYW50eSBvZiBhbnkga2luZC4KICAqLwogCkBAIC00Miw4ICs0MywyMiBAQAogI2VuZGlmCQogCQogI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCXRodW5rIHRyYWNlX2hhcmRpcnFzX29uX3RodW5rLHRyYWNlX2hhcmRpcnFzX29uCi0JdGh1bmsgdHJhY2VfaGFyZGlycXNfb2ZmX3RodW5rLHRyYWNlX2hhcmRpcnFzX29mZgorCS8qIHB1dCByZXR1cm4gYWRkcmVzcyBpbiByZGkgKGFyZzEpICovCisJLm1hY3JvIHRodW5rX3JhIG5hbWUsZnVuYworCS5nbG9ibCBcbmFtZQorXG5hbWU6CisJQ0ZJX1NUQVJUUFJPQworCVNBVkVfQVJHUworCS8qIFNBVkVfQVJHUyBwdXNocyA5IGVsZW1lbnRzICovCisJLyogdGhlIG5leHQgZWxlbWVudCB3b3VsZCBiZSB0aGUgcmlwICovCisJbW92cSA5KjgoJXJzcCksICVyZGkKKwljYWxsIFxmdW5jCisJam1wICByZXN0b3JlCisJQ0ZJX0VORFBST0MKKwkuZW5kbQorCisJdGh1bmtfcmEgdHJhY2VfaGFyZGlycXNfb25fdGh1bmssdHJhY2VfaGFyZGlycXNfb25fY2FsbGVyCisJdGh1bmtfcmEgdHJhY2VfaGFyZGlycXNfb2ZmX3RodW5rLHRyYWNlX2hhcmRpcnFzX29mZl9jYWxsZXIKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi91c2VyY29weV82NC5jIGIvYXJjaC94ODYvbGliL3VzZXJjb3B5XzY0LmMKaW5kZXggMGM4OWQxYi4uZjRkZjZlNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL3VzZXJjb3B5XzY0LmMKKysrIGIvYXJjaC94ODYvbGliL3VzZXJjb3B5XzY0LmMKQEAgLTE1OCwzICsxNTgsMjYgQEAKIH0KIEVYUE9SVF9TWU1CT0woY29weV9pbl91c2VyKTsKIAorLyoKKyAqIFRyeSB0byBjb3B5IGxhc3QgYnl0ZXMgYW5kIGNsZWFyIHRoZSByZXN0IGlmIG5lZWRlZC4KKyAqIFNpbmNlIHByb3RlY3Rpb24gZmF1bHQgaW4gY29weV9mcm9tL3RvX3VzZXIgaXMgbm90IGEgbm9ybWFsIHNpdHVhdGlvbiwKKyAqIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gb3B0aW1pemUgdGFpbCBoYW5kbGluZy4KKyAqLwordW5zaWduZWQgbG9uZworY29weV91c2VyX2hhbmRsZV90YWlsKGNoYXIgKnRvLCBjaGFyICpmcm9tLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIHplcm9yZXN0KQoreworCWNoYXIgYzsKKwl1bnNpZ25lZCB6ZXJvX2xlbjsKKworCWZvciAoOyBsZW47IC0tbGVuKSB7CisJCWlmIChfX2dldF91c2VyX25vY2hlY2soYywgZnJvbSsrLCBzaXplb2YoY2hhcikpKQorCQkJYnJlYWs7CisJCWlmIChfX3B1dF91c2VyX25vY2hlY2soYywgdG8rKywgc2l6ZW9mKGNoYXIpKSkKKwkJCWJyZWFrOworCX0KKworCWZvciAoYyA9IDAsIHplcm9fbGVuID0gbGVuOyB6ZXJvcmVzdCAmJiB6ZXJvX2xlbjsgLS16ZXJvX2xlbikKKwkJaWYgKF9fcHV0X3VzZXJfbm9jaGVjayhjLCB0bysrLCBzaXplb2YoY2hhcikpKQorCQkJYnJlYWs7CisJcmV0dXJuIGxlbjsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtZGVmYXVsdC9zZXR1cC5jIGIvYXJjaC94ODYvbWFjaC1kZWZhdWx0L3NldHVwLmMKaW5kZXggMGMyOGEwNy4uNDgyNzhmYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWFjaC1kZWZhdWx0L3NldHVwLmMKKysrIGIvYXJjaC94ODYvbWFjaC1kZWZhdWx0L3NldHVwLmMKQEAgLTEwLDYgKzEwLDE0IEBACiAjaW5jbHVkZSA8YXNtL2U4MjAuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAorLyoKKyAqIEFueSBxdWlya3MgdG8gYmUgcGVyZm9ybWVkIHRvIGluaXRpYWxpemUgdGltZXJzL2lycXMvZXRjPworICovCitpbnQgKCphcmNoX3RpbWVfaW5pdF9xdWlyaykodm9pZCk7CitpbnQgKCphcmNoX3ByZV9pbnRyX2luaXRfcXVpcmspKHZvaWQpOworaW50ICgqYXJjaF9pbnRyX2luaXRfcXVpcmspKHZvaWQpOworaW50ICgqYXJjaF90cmFwX2luaXRfcXVpcmspKHZvaWQpOworCiAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCiAjZGVmaW5lIERFRkFVTFRfU0VORF9JUEkJKDEpCiAjZWxzZQpAQCAtMjksNiArMzcsMTAgQEAKICAqKi8KIHZvaWQgX19pbml0IHByZV9pbnRyX2luaXRfaG9vayh2b2lkKQogeworCWlmIChhcmNoX3ByZV9pbnRyX2luaXRfcXVpcmspIHsKKwkJaWYgKGFyY2hfcHJlX2ludHJfaW5pdF9xdWlyaygpKQorCQkJcmV0dXJuOworCX0KIAlpbml0X0lTQV9pcnFzKCk7CiB9CiAKQEAgLTUyLDYgKzY0LDEwIEBACiAgKiovCiB2b2lkIF9faW5pdCBpbnRyX2luaXRfaG9vayh2b2lkKQogeworCWlmIChhcmNoX2ludHJfaW5pdF9xdWlyaykgeworCQlpZiAoYXJjaF9pbnRyX2luaXRfcXVpcmsoKSkKKwkJCXJldHVybjsKKwl9CiAjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCiAJYXBpY19pbnRyX2luaXQoKTsKICNlbmRpZgpAQCAtNjUsNyArODEsNyBAQAogICoKICAqIERlc2NyaXB0aW9uOgogICoJZ2VuZXJhbGx5IHVzZWQgdG8gYWN0aXZhdGUgYW55IG1hY2hpbmUgc3BlY2lmaWMgaWRlbnRpZmljYXRpb24KLSAqCXJvdXRpbmVzIHRoYXQgbWF5IGJlIG5lZWRlZCBiZWZvcmUgc2V0dXBfYXJjaCgpIHJ1bnMuICBPbiBWSVNXUworICoJcm91dGluZXMgdGhhdCBtYXkgYmUgbmVlZGVkIGJlZm9yZSBzZXR1cF9hcmNoKCkgcnVucy4gIE9uIFZveWFnZXIKICAqCXRoaXMgaXMgdXNlZCB0byBnZXQgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0eXBlLgogICoqLwogdm9pZCBfX2luaXQgcHJlX3NldHVwX2FyY2hfaG9vayh2b2lkKQpAQCAtODEsNiArOTcsMTAgQEAKICAqKi8KIHZvaWQgX19pbml0IHRyYXBfaW5pdF9ob29rKHZvaWQpCiB7CisJaWYgKGFyY2hfdHJhcF9pbml0X3F1aXJrKSB7CisJCWlmIChhcmNoX3RyYXBfaW5pdF9xdWlyaygpKQorCQkJcmV0dXJuOworCX0KIH0KIAogc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gaXJxMCAgPSB7CkBAIC05OSw2ICsxMTksMTYgQEAKICAqKi8KIHZvaWQgX19pbml0IHRpbWVfaW5pdF9ob29rKHZvaWQpCiB7CisJaWYgKGFyY2hfdGltZV9pbml0X3F1aXJrKSB7CisJCS8qCisJCSAqIEEgbm9uemVybyByZXR1cm4gY29kZSBkb2VzIG5vdCBtZWFuIGZhaWx1cmUsIGl0IG1lYW5zCisJCSAqIHRoYXQgdGhlIGFyY2hpdGVjdHVyZSBxdWlyayBkb2VzIG5vdCB3YW50IGFueQorCQkgKiBnZW5lcmljICh0aW1lcikgc2V0dXAgdG8gYmUgcGVyZm9ybWVkIGFmdGVyIHRoaXM6CisJCSAqLworCQlpZiAoYXJjaF90aW1lX2luaXRfcXVpcmsoKSkKKwkJCXJldHVybjsKKwl9CisKIAlpcnEwLm1hc2sgPSBjcHVtYXNrX29mX2NwdSgwKTsKIAlzZXR1cF9pcnEoMCwgJmlycTApOwogfQpAQCAtMTQyLDQ1ICsxNzIsMyBAQAogCiBsYXRlX2luaXRjYWxsKHByaW50X2lwaV9tb2RlKTsKIAotLyoqCi0gKiBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCAtIEhvb2sgZm9yIG1hY2hpbmUgc3BlY2lmaWMgbWVtb3J5IHNldHVwLgotICoKLSAqIERlc2NyaXB0aW9uOgotICoJVGhpcyBpcyBpbmNsdWRlZCBsYXRlIGluIGtlcm5lbC9zZXR1cC5jIHNvIHRoYXQgaXQgY2FuIG1ha2UKLSAqCXVzZSBvZiBhbGwgb2YgdGhlIHN0YXRpYyBmdW5jdGlvbnMuCi0gKiovCi0KLWNoYXIgKiBfX2luaXQgbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCkKLXsKLQljaGFyICp3aG87Ci0KLQotCXdobyA9ICJCSU9TLWU4MjAiOwotCi0JLyoKLQkgKiBUcnkgdG8gY29weSB0aGUgQklPUy1zdXBwbGllZCBFODIwLW1hcC4KLQkgKgotCSAqIE90aGVyd2lzZSBmYWtlIGEgbWVtb3J5IG1hcDsgb25lIHNlY3Rpb24gZnJvbSAway0+NjQwaywKLQkgKiB0aGUgbmV4dCBzZWN0aW9uIGZyb20gMW1iLT5hcHByb3ByaWF0ZV9tZW1fawotCSAqLwotCXNhbml0aXplX2U4MjBfbWFwKGJvb3RfcGFyYW1zLmU4MjBfbWFwLCAmYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzKTsKLQlpZiAoY29weV9lODIwX21hcChib290X3BhcmFtcy5lODIwX21hcCwgYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzKQotCSAgICA8IDApIHsKLQkJdW5zaWduZWQgbG9uZyBtZW1fc2l6ZTsKLQotCQkvKiBjb21wYXJlIHJlc3VsdHMgZnJvbSBvdGhlciBtZXRob2RzIGFuZCB0YWtlIHRoZSBncmVhdGVyICovCi0JCWlmIChib290X3BhcmFtcy5hbHRfbWVtX2sKLQkJICAgIDwgYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8uZXh0X21lbV9rKSB7Ci0JCQltZW1fc2l6ZSA9IGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvLmV4dF9tZW1fazsKLQkJCXdobyA9ICJCSU9TLTg4IjsKLQkJfSBlbHNlIHsKLQkJCW1lbV9zaXplID0gYm9vdF9wYXJhbXMuYWx0X21lbV9rOwotCQkJd2hvID0gIkJJT1MtZTgwMSI7Ci0JCX0KLQotCQllODIwLm5yX21hcCA9IDA7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKDAsIExPV01FTVNJWkUoKSwgRTgyMF9SQU0pOwotCQlhZGRfbWVtb3J5X3JlZ2lvbihISUdIX01FTU9SWSwgbWVtX3NpemUgPDwgMTAsIEU4MjBfUkFNKTsKLSAgCX0KLQlyZXR1cm4gd2hvOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC1lczcwMDAvTWFrZWZpbGUgYi9hcmNoL3g4Ni9tYWNoLWVzNzAwMC9NYWtlZmlsZQppbmRleCA2OWRkNGRhLi4zZWY4YjQzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tYWNoLWVzNzAwMC9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9tYWNoLWVzNzAwMC9NYWtlZmlsZQpAQCAtMyw0ICszLDMgQEAKICMKIAogb2JqLSQoQ09ORklHX1g4Nl9FUzcwMDApCTo9IGVzNzAwMHBsYXQubwotb2JqLSQoQ09ORklHX1g4Nl9HRU5FUklDQVJDSCkJOj0gZXM3MDAwcGxhdC5vCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLWVzNzAwMC9lczcwMDBwbGF0LmMgYi9hcmNoL3g4Ni9tYWNoLWVzNzAwMC9lczcwMDBwbGF0LmMKaW5kZXggZjVkNmY3ZC4uNDM1NGNlOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWFjaC1lczcwMDAvZXM3MDAwcGxhdC5jCisrKyBiL2FyY2gveDg2L21hY2gtZXM3MDAwL2VzNzAwMHBsYXQuYwpAQCAtNTIsNiArNTIsOCBAQAogc3RhdGljIGludCAJCQltaXBfcG9ydDsKIHN0YXRpYyB1bnNpZ25lZCBsb25nCQltaXBfYWRkciwgaG9zdF9hZGRyOwogCitpbnQgZXM3MDAwX3BsYXQ7CisKIC8qCiAgKiBHU0kgb3ZlcnJpZGUgZm9yIEVTNzAwMCBwbGF0Zm9ybXMuCiAgKi8KQEAgLTE3NSw1MyArMTc3LDYgQEAKIH0KICNlbmRpZgogCi0vKgotICogVGhpcyBmaWxlIGFsc28gZ2V0cyBjb21waWxlZCBpZiBDT05GSUdfWDg2X0dFTkVSSUNBUkNIIGlzIHNldC4gR2VuZXJpYwotICogYXJjaCBhbHJlYWR5IGhhcyBnb3QgZm9sbG93aW5nIGZ1bmN0aW9uIGRlZmluaXRpb25zIChhc20tZ2VuZXJpYy9lczcwMDAuYykKLSAqIGhlbmNlIG5vIG5lZWQgdG8gZGVmaW5lIHRoZXNlIGZvciB0aGF0IGNhc2UuCi0gKi8KLSNpZm5kZWYgQ09ORklHX1g4Nl9HRU5FUklDQVJDSAotdm9pZCBlczcwMDBfc3dfYXBpYyh2b2lkKTsKLXZvaWQgX19pbml0IGVuYWJsZV9hcGljX21vZGUodm9pZCkKLXsKLQllczcwMDBfc3dfYXBpYygpOwotCXJldHVybjsKLX0KLQotX19pbml0IGludCBtcHNfb2VtX2NoZWNrKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywgY2hhciAqb2VtLAotCQljaGFyICpwcm9kdWN0aWQpCi17Ci0JaWYgKG1wYy0+bXBjX29lbXB0cikgewotCQlzdHJ1Y3QgbXBfY29uZmlnX29lbXRhYmxlICpvZW1fdGFibGUgPQotCQkJKHN0cnVjdCBtcF9jb25maWdfb2VtdGFibGUgKiltcGMtPm1wY19vZW1wdHI7Ci0JCWlmICghc3RybmNtcChvZW0sICJVTklTWVMiLCA2KSkKLQkJCXJldHVybiBwYXJzZV91bmlzeXNfb2VtKChjaGFyICopb2VtX3RhYmxlKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jaWZkZWYgQ09ORklHX0FDUEkKLS8qIEhvb2sgZnJvbSBnZW5lcmljIEFDUEkgdGFibGVzLmMgKi8KLWludCBfX2luaXQgYWNwaV9tYWR0X29lbV9jaGVjayhjaGFyICpvZW1faWQsIGNoYXIgKm9lbV90YWJsZV9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIG9lbV9hZGRyOwotCWlmICghZmluZF91bmlzeXNfYWNwaV9vZW1fdGFibGUoJm9lbV9hZGRyKSkgewotCQlpZiAoZXM3MDAwX2NoZWNrX2RzZHQoKSkKLQkJCXJldHVybiBwYXJzZV91bmlzeXNfb2VtKChjaGFyICopb2VtX2FkZHIpOwotCQllbHNlIHsKLQkJCXNldHVwX3VuaXN5cygpOwotCQkJcmV0dXJuIDE7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jZWxzZQotaW50IF9faW5pdCBhY3BpX21hZHRfb2VtX2NoZWNrKGNoYXIgKm9lbV9pZCwgY2hhciAqb2VtX3RhYmxlX2lkKQotewotCXJldHVybiAwOwotfQotI2VuZGlmCi0jZW5kaWYgLyogQ09GSUdfWDg2X0dFTkVSSUNBUkNIICovCi0KIHN0YXRpYyB2b2lkCiBlczcwMDBfc3BpbihpbnQgbikKIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9NYWtlZmlsZSBiL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9NYWtlZmlsZQppbmRleCAxOWQ2ZDQwLi4wZGJkNzgwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvbWFjaC1nZW5lcmljL01ha2VmaWxlCkBAIC0yLDcgKzIsMTEgQEAKICMgTWFrZWZpbGUgZm9yIHRoZSBnZW5lcmljIGFyY2hpdGVjdHVyZQogIwogCi1FWFRSQV9DRkxBR1MJOj0gLUlhcmNoL3g4Ni9rZXJuZWwKK0VYVFJBX0NGTEFHUwkJCTo9IC1JYXJjaC94ODYva2VybmVsCiAKLW9iai15CQk6PSBwcm9iZS5vIHN1bW1pdC5vIGJpZ3NtcC5vIGVzNzAwMC5vIGRlZmF1bHQubyAKLW9iai15CQkrPSAuLi8uLi94ODYvbWFjaC1lczcwMDAvCitvYmoteQkJCQk6PSBwcm9iZS5vIGRlZmF1bHQubworb2JqLSQoQ09ORklHX1g4Nl9OVU1BUSkJCSs9IG51bWFxLm8KK29iai0kKENPTkZJR19YODZfU1VNTUlUKQkrPSBzdW1taXQubworb2JqLSQoQ09ORklHX1g4Nl9CSUdTTVApCSs9IGJpZ3NtcC5vCitvYmotJChDT05GSUdfWDg2X0VTNzAwMCkJKz0gZXM3MDAwLm8KK29iai0kKENPTkZJR19YODZfRVM3MDAwKQkrPSAuLi8uLi94ODYvbWFjaC1lczcwMDAvCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvYmlnc21wLmMgYi9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvYmlnc21wLmMKaW5kZXggOTVmYzQ2My4uNTlkNzcxNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWFjaC1nZW5lcmljL2JpZ3NtcC5jCisrKyBiL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9iaWdzbXAuYwpAQCAtMjMsMTAgKzIzLDggQEAKIAogc3RhdGljIGludCBocF9odF9iaWdzbXAoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmQpCiB7Ci0jaWZkZWYgQ09ORklHX1g4Nl9HRU5FUklDQVJDSAogCXByaW50ayhLRVJOX05PVElDRSAiJXMgZGV0ZWN0ZWQ6IGZvcmNlIHVzZSBvZiBhcGljPWJpZ3NtcFxuIiwgZC0+aWRlbnQpOwogCWRtaV9iaWdzbXAgPSAxOwotI2VuZGlmCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTQ4LDcgKzQ2LDcgQEAKIHN0YXRpYyBpbnQgcHJvYmVfYmlnc21wKHZvaWQpCiB7CiAJaWYgKGRlZl90b19iaWdzbXApCi0JZG1pX2JpZ3NtcCA9IDE7CisJCWRtaV9iaWdzbXAgPSAxOwogCWVsc2UKIAkJZG1pX2NoZWNrX3N5c3RlbShiaWdzbXBfZG1pX3RhYmxlKTsKIAlyZXR1cm4gZG1pX2JpZ3NtcDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9udW1hcS5jIGIvYXJjaC94ODYvbWFjaC1nZW5lcmljL251bWFxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA5MWU2OAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9udW1hcS5jCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBBUElDIGRyaXZlciBmb3IgdGhlIElCTSBOVU1BUSBjaGlwc2V0LgorICovCisjZGVmaW5lIEFQSUNfREVGSU5JVElPTiAxCisjaW5jbHVkZSA8bGludXgvdGhyZWFkcy5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXAuaD4KKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8YXNtL2dlbmFwaWMuaD4KKyNpbmNsdWRlIDxhc20vZml4bWFwLmg+CisjaW5jbHVkZSA8YXNtL2FwaWNkZWYuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8YXNtL21hY2gtbnVtYXEvbWFjaF9hcGljLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtbnVtYXEvbWFjaF9hcGljZGVmLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtbnVtYXEvbWFjaF9pcGkuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1udW1hcS9tYWNoX21wcGFyc2UuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1udW1hcS9tYWNoX3dha2VjcHUuaD4KKyNpbmNsdWRlIDxhc20vbnVtYXEuaD4KKworc3RhdGljIGludCBtcHNfb2VtX2NoZWNrKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywgY2hhciAqb2VtLAorCQljaGFyICpwcm9kdWN0aWQpCit7CisJbnVtYXFfbXBzX29lbV9jaGVjayhtcGMsIG9lbSwgcHJvZHVjdGlkKTsKKwlyZXR1cm4gZm91bmRfbnVtYXE7Cit9CisKK3N0YXRpYyBpbnQgcHJvYmVfbnVtYXEodm9pZCkKK3sKKwkvKiBhbHJlYWR5IGtub3cgZnJvbSBnZXRfbWVtY2ZnX251bWFxKCkgKi8KKwlyZXR1cm4gZm91bmRfbnVtYXE7Cit9CisKKy8qIEhvb2sgZnJvbSBnZW5lcmljIEFDUEkgdGFibGVzLmMgKi8KK3N0YXRpYyBpbnQgYWNwaV9tYWR0X29lbV9jaGVjayhjaGFyICpvZW1faWQsIGNoYXIgKm9lbV90YWJsZV9pZCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RydWN0IGdlbmFwaWMgYXBpY19udW1hcSA9IEFQSUNfSU5JVCgiTlVNQVEiLCBwcm9iZV9udW1hcSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvcHJvYmUuYyBiL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9wcm9iZS5jCmluZGV4IGM1YWU3NTEuLjVhN2U0NjEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9wcm9iZS5jCisrKyBiL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9wcm9iZS5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8YXNtL2FwaWNkZWYuaD4KICNpbmNsdWRlIDxhc20vZ2VuYXBpYy5oPgogCitleHRlcm4gc3RydWN0IGdlbmFwaWMgYXBpY19udW1hcTsKIGV4dGVybiBzdHJ1Y3QgZ2VuYXBpYyBhcGljX3N1bW1pdDsKIGV4dGVybiBzdHJ1Y3QgZ2VuYXBpYyBhcGljX2JpZ3NtcDsKIGV4dGVybiBzdHJ1Y3QgZ2VuYXBpYyBhcGljX2VzNzAwMDsKQEAgLTI0LDkgKzI1LDE4IEBACiBzdHJ1Y3QgZ2VuYXBpYyAqZ2VuYXBpYyA9ICZhcGljX2RlZmF1bHQ7CiAKIHN0YXRpYyBzdHJ1Y3QgZ2VuYXBpYyAqYXBpY19wcm9iZVtdIF9faW5pdGRhdGEgPSB7CisjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQorCSZhcGljX251bWFxLAorI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9TVU1NSVQKIAkmYXBpY19zdW1taXQsCisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X0JJR1NNUAogCSZhcGljX2JpZ3NtcCwKKyNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfRVM3MDAwCiAJJmFwaWNfZXM3MDAwLAorI2VuZGlmCiAJJmFwaWNfZGVmYXVsdCwJLyogbXVzdCBiZSBsYXN0ICovCiAJTlVMTCwKIH07CkBAIC01NCw2ICs2NCw3IEBACiAKIHZvaWQgX19pbml0IGdlbmVyaWNfYmlnc21wX3Byb2JlKHZvaWQpCiB7CisjaWZkZWYgQ09ORklHX1g4Nl9CSUdTTVAKIAkvKgogCSAqIFRoaXMgcm91dGluZSBpcyB1c2VkIHRvIHN3aXRjaCB0byBiaWdzbXAgbW9kZSB3aGVuCiAJICogLSBUaGVyZSBpcyBubyBhcGljPSBvcHRpb24gc3BlY2lmaWVkIGJ5IHRoZSB1c2VyCkBAIC02Nyw2ICs3OCw3IEBACiAJCQlwcmludGsoS0VSTl9JTkZPICJPdmVycmlkaW5nIEFQSUMgZHJpdmVyIHdpdGggJXNcbiIsCiAJCQkgICAgICAgZ2VuYXBpYy0+bmFtZSk7CiAJCX0KKyNlbmRpZgogfQogCiB2b2lkIF9faW5pdCBnZW5lcmljX2FwaWNfcHJvYmUodm9pZCkKQEAgLTg4LDcgKzEwMCw4IEBACiAKIC8qIFRoZXNlIGZ1bmN0aW9ucyBjYW4gc3dpdGNoIHRoZSBBUElDIGV2ZW4gYWZ0ZXIgdGhlIGluaXRpYWwgLT5wcm9iZSgpICovCiAKLWludCBfX2luaXQgbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwgY2hhciAqcHJvZHVjdGlkKQoraW50IF9faW5pdCBtcHNfb2VtX2NoZWNrKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywgY2hhciAqb2VtLAorCQkJCSBjaGFyICpwcm9kdWN0aWQpCiB7CiAJaW50IGk7CiAJZm9yIChpID0gMDsgYXBpY19wcm9iZVtpXTsgKytpKSB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL01ha2VmaWxlIGIvYXJjaC94ODYvbWFjaC12aXN3cy9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODM1ZmQ5Ni4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0jCi0jIE1ha2VmaWxlIGZvciB0aGUgbGludXgga2VybmVsLgotIwotCi1vYmoteQkJCQk6PSBzZXR1cC5vIHRyYXBzLm8gcmVib290Lm8KLQotb2JqLSQoQ09ORklHX1g4Nl9WSVNXU19BUElDKQkrPSB2aXN3c19hcGljLm8KLW9iai0kKENPTkZJR19YODZfTE9DQUxfQVBJQykJKz0gbXBwYXJzZS5vCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL21wcGFyc2UuYyBiL2FyY2gveDg2L21hY2gtdmlzd3MvbXBwYXJzZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzQ4NGU5Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L21hY2gtdmlzd3MvbXBwYXJzZS5jCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotCi0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgotCi0jaW5jbHVkZSA8YXNtL3NtcC5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotCi0jaW5jbHVkZSAiY29iYWx0LmgiCi0jaW5jbHVkZSAibWFjaF9hcGljLmgiCi0KLS8qIEhhdmUgd2UgZm91bmQgYW4gTVAgdGFibGUgKi8KLWludCBzbXBfZm91bmRfY29uZmlnOwotCi1pbnQgcGljX21vZGU7Ci0KLWV4dGVybiB1bnNpZ25lZCBpbnQgX19jcHVpbml0ZGF0YSBtYXhjcHVzOwotCi0vKgotICogVGhlIFZpc3VhbCBXb3Jrc3RhdGlvbiBpcyBJbnRlbCBNUCBjb21wbGlhbnQgaW4gdGhlIGhhcmR3YXJlCi0gKiBzZW5zZSwgYnV0IGl0IGRvZXNuJ3QgaGF2ZSBhIEJJT1MoLWNvbmZpZ3VyYXRpb24gdGFibGUpLgotICogTm8gcHJvYmxlbSBmb3IgTGludXguCi0gKi8KLQotc3RhdGljIHZvaWQgX19pbml0IE1QX3Byb2Nlc3Nvcl9pbmZvIChzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgKm0pCi17Ci0JaW50IHZlciwgbG9naWNhbF9hcGljaWQ7Ci0JcGh5c2lkX21hc2tfdCBhcGljX2NwdXM7Ci0KLQlpZiAoIShtLT5tcGNfY3B1ZmxhZyAmIENQVV9FTkFCTEVEKSkKLQkJcmV0dXJuOwotCi0JbG9naWNhbF9hcGljaWQgPSBtLT5tcGNfYXBpY2lkOwotCXByaW50ayhLRVJOX0lORk8gIiVzQ1BVICMlZCAldToldSBBUElDIHZlcnNpb24gJWRcbiIsCi0JICAgICAgIG0tPm1wY19jcHVmbGFnICYgQ1BVX0JPT1RQUk9DRVNTT1IgPyAiQm9vdHVwICIgOiAiIiwKLQkgICAgICAgbS0+bXBjX2FwaWNpZCwKLQkgICAgICAgKG0tPm1wY19jcHVmZWF0dXJlICYgQ1BVX0ZBTUlMWV9NQVNLKSA+PiA4LAotCSAgICAgICAobS0+bXBjX2NwdWZlYXR1cmUgJiBDUFVfTU9ERUxfTUFTSykgPj4gNCwKLQkgICAgICAgbS0+bXBjX2FwaWN2ZXIpOwotCi0JaWYgKG0tPm1wY19jcHVmbGFnICYgQ1BVX0JPT1RQUk9DRVNTT1IpCi0JCWJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCA9IG0tPm1wY19hcGljaWQ7Ci0KLQl2ZXIgPSBtLT5tcGNfYXBpY3ZlcjsKLQlpZiAoKHZlciA+PSAweDE0ICYmIG0tPm1wY19hcGljaWQgPj0gMHhmZikgfHwgbS0+bXBjX2FwaWNpZCA+PSAweGYpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJQcm9jZXNzb3IgIyVkIElOVkFMSUQuIChNYXggSUQ6ICVkKS5cbiIsCi0JCQltLT5tcGNfYXBpY2lkLCBNQVhfQVBJQ1MpOwotCQlyZXR1cm47Ci0JfQotCi0JYXBpY19jcHVzID0gYXBpY2lkX3RvX2NwdV9wcmVzZW50KG0tPm1wY19hcGljaWQpOwotCXBoeXNpZHNfb3IocGh5c19jcHVfcHJlc2VudF9tYXAsIHBoeXNfY3B1X3ByZXNlbnRfbWFwLCBhcGljX2NwdXMpOwotCS8qCi0JICogVmFsaWRhdGUgdmVyc2lvbgotCSAqLwotCWlmICh2ZXIgPT0gMHgwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiQklPUyBidWcsIEFQSUMgdmVyc2lvbiBpcyAwIGZvciBDUFUjJWQhICIKLQkJCSJmaXhpbmcgdXAgdG8gMHgxMC4gKHRlbGwgeW91ciBodyB2ZW5kb3IpXG4iLAotCQkJbS0+bXBjX2FwaWNpZCk7Ci0JCXZlciA9IDB4MTA7Ci0JfQotCWFwaWNfdmVyc2lvblttLT5tcGNfYXBpY2lkXSA9IHZlcjsKLX0KLQotdm9pZCBfX2luaXQgZmluZF9zbXBfY29uZmlnKHZvaWQpCi17Ci0Jc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICptcCA9IHBoeXNfdG9fdmlydChDT19DUFVfVEFCX1BIWVMpOwotCXVuc2lnbmVkIHNob3J0IG5jcHVzID0gcmVhZHcocGh5c190b192aXJ0KENPX0NQVV9OVU1fUEhZUykpOwotCi0JaWYgKG5jcHVzID4gQ09fQ1BVX01BWCkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJmaW5kX3Zpc3dzX3NtcDogZ290IGNwdSBjb3VudCBvZiAlZCBhdCAlcFxuIiwKLQkJCW5jcHVzLCBtcCk7Ci0KLQkJbmNwdXMgPSBDT19DUFVfTUFYOwotCX0KLQotCWlmIChuY3B1cyA+IG1heGNwdXMpCi0JCW5jcHVzID0gbWF4Y3B1czsKLQotCXNtcF9mb3VuZF9jb25maWcgPSAxOwotCXdoaWxlIChuY3B1cy0tKQotCQlNUF9wcm9jZXNzb3JfaW5mbyhtcCsrKTsKLQotCW1wX2xhcGljX2FkZHIgPSBBUElDX0RFRkFVTFRfUEhZU19CQVNFOwotfQotCi12b2lkIF9faW5pdCBnZXRfc21wX2NvbmZpZyAodm9pZCkKLXsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtdmlzd3MvcmVib290LmMgYi9hcmNoL3g4Ni9tYWNoLXZpc3dzL3JlYm9vdC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTMzMmFiLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L21hY2gtdmlzd3MvcmVib290LmMKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc21wLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLQotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgInBpaXg0LmgiCi0KLXZvaWQgKCpwbV9wb3dlcl9vZmYpKHZvaWQpOwotRVhQT1JUX1NZTUJPTChwbV9wb3dlcl9vZmYpOwotCi12b2lkIG1hY2hpbmVfc2h1dGRvd24odm9pZCkKLXsKLSNpZmRlZiBDT05GSUdfU01QCi0Jc21wX3NlbmRfc3RvcCgpOwotI2VuZGlmCi19Ci0KLXZvaWQgbWFjaGluZV9lbWVyZ2VuY3lfcmVzdGFydCh2b2lkKQotewotCS8qCi0JICogVmlzdWFsIFdvcmtzdGF0aW9ucyByZXN0YXJ0IGFmdGVyIHRoaXMKLQkgKiByZWdpc3RlciBpcyBwb2tlZCBvbiB0aGUgUElJWDQKLQkgKi8KLQlvdXRiKFBJSVg0X1JFU0VUX1ZBTCwgUElJWDRfUkVTRVRfUE9SVCk7Ci19Ci0KLXZvaWQgbWFjaGluZV9yZXN0YXJ0KGNoYXIgKiBfX3VudXNlZCkKLXsKLQltYWNoaW5lX3NodXRkb3duKCk7Ci0JbWFjaGluZV9lbWVyZ2VuY3lfcmVzdGFydCgpOwotfQotCi12b2lkIG1hY2hpbmVfcG93ZXJfb2ZmKHZvaWQpCi17Ci0JdW5zaWduZWQgc2hvcnQgcG1fc3RhdHVzOwotCWV4dGVybiB1bnNpZ25lZCBpbnQgcGNpX2J1czA7Ci0KLQl3aGlsZSAoKHBtX3N0YXR1cyA9IGludyhQTVNUU19QT1JUKSkgJiAweDEwMCkKLQkJb3V0dyhwbV9zdGF0dXMsIFBNU1RTX1BPUlQpOwotCi0Jb3V0dyhQTV9TVVNQRU5EX0VOQUJMRSwgUE1DTlRSTF9QT1JUKTsKLQotCW1kZWxheSgxMCk7Ci0KLSNkZWZpbmUgUENJX0NPTkYxX0FERFJFU1MoYnVzLCBkZXZmbiwgcmVnKSBcCi0JKDB4ODAwMDAwMDAgfCAoYnVzIDw8IDE2KSB8IChkZXZmbiA8PCA4KSB8IChyZWcgJiB+MykpCi0KLQlvdXRsKFBDSV9DT05GMV9BRERSRVNTKHBjaV9idXMwLCBTUEVDSUFMX0RFViwgU1BFQ0lBTF9SRUcpLCAweENGOCk7Ci0Jb3V0bChQSUlYX1NQRUNJQUxfU1RPUCwgMHhDRkMpOwotfQotCi12b2lkIG1hY2hpbmVfaGFsdCh2b2lkKQotewotfQotCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL3NldHVwLmMgYi9hcmNoL3g4Ni9tYWNoLXZpc3dzL3NldHVwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNGM5ZGIuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbWFjaC12aXN3cy9zZXR1cC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTgzICswLDAgQEAKLS8qCi0gKiAgVW5tYWludGFpbmVkIFNHSSBWaXN1YWwgV29ya3N0YXRpb24gc3VwcG9ydC4KLSAqICBTcGxpdCBvdXQgZnJvbSBzZXR1cC5jIGJ5IGRhdmVqQHN1c2UuZGUKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvc21wLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotCi0jaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgotI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2U4MjAuaD4KLSNpbmNsdWRlIDxhc20vc2V0dXAuaD4KLSNpbmNsdWRlICJjb2JhbHQuaCIKLSNpbmNsdWRlICJwaWl4NC5oIgotCi1pbnQgbm9fYnJvYWRjYXN0OwotCi1jaGFyIHZpc3dzX2JvYXJkX3R5cGUgPSAtMTsKLWNoYXIgdmlzd3NfYm9hcmRfcmV2ID0gLTE7Ci0KLXZvaWQgX19pbml0IHZpc3dzX2dldF9ib2FyZF90eXBlX2FuZF9yZXYodm9pZCkKLXsKLQlpbnQgcmF3OwotCi0Jdmlzd3NfYm9hcmRfdHlwZSA9IChjaGFyKShpbmJfcChQSUlYX0dQSV9CRF9SRUcpICYgUElJWF9HUElfQkRfUkVHKQotCQkJCQkJCSA+PiBQSUlYX0dQSV9CRF9TSElGVDsKLQkvKgotCSAqIEdldCBCb2FyZCByZXYuCi0JICogRmlyc3QsIHdlIGhhdmUgdG8gaW5pdGlhbGl6ZSB0aGUgMzA3IHBhcnQgdG8gYWxsb3cgdXMgYWNjZXNzCi0JICogdG8gdGhlIEdQSU8gcmVnaXN0ZXJzLiAgTGV0J3MgbWFwIHRoZW0gYXQgMHgwZmMwIHdoaWNoIGlzIHJpZ2h0Ci0JICogYWZ0ZXIgdGhlIFBJSVg0IFBNIHNlY3Rpb24uCi0JICovCi0Jb3V0Yl9wKFNJT19ERVZfU0VMLCBTSU9fSU5ERVgpOwotCW91dGJfcChTSU9fR1BfREVWLCBTSU9fREFUQSk7CS8qIFRhbGsgdG8gR1BJTyByZWdzLiAqLwotCi0Jb3V0Yl9wKFNJT19ERVZfTVNCLCBTSU9fSU5ERVgpOwotCW91dGJfcChTSU9fR1BfTVNCLCBTSU9fREFUQSk7CS8qIE1TQiBvZiBHUElPIGJhc2UgYWRkcmVzcyAqLwotCi0Jb3V0Yl9wKFNJT19ERVZfTFNCLCBTSU9fSU5ERVgpOwotCW91dGJfcChTSU9fR1BfTFNCLCBTSU9fREFUQSk7CS8qIExTQiBvZiBHUElPIGJhc2UgYWRkcmVzcyAqLwotCi0Jb3V0Yl9wKFNJT19ERVZfRU5CLCBTSU9fSU5ERVgpOwotCW91dGJfcCgxLCBTSU9fREFUQSk7CQkvKiBFbmFibGUgR1BJTyByZWdpc3RlcnMuICovCi0KLQkvKgotCSAqIE5vdywgd2UgaGF2ZSB0byBtYXAgdGhlIHBvd2VyIG1hbmFnZW1lbnQgc2VjdGlvbiB0byB3cml0ZQotCSAqIGEgYml0IHdoaWNoIGVuYWJsZXMgYWNjZXNzIHRvIHRoZSBHUElPIHJlZ2lzdGVycy4KLQkgKiBXaGF0IGx1bmF0aWMgY2FtZSB1cCB3aXRoIHRoaXMgc2hpdD8KLQkgKi8KLQlvdXRiX3AoU0lPX0RFVl9TRUwsIFNJT19JTkRFWCk7Ci0Jb3V0Yl9wKFNJT19QTV9ERVYsIFNJT19EQVRBKTsJLyogVGFsayB0byBHUElPIHJlZ3MuICovCi0KLQlvdXRiX3AoU0lPX0RFVl9NU0IsIFNJT19JTkRFWCk7Ci0Jb3V0Yl9wKFNJT19QTV9NU0IsIFNJT19EQVRBKTsJLyogTVNCIG9mIFBNIGJhc2UgYWRkcmVzcyAqLwotCi0Jb3V0Yl9wKFNJT19ERVZfTFNCLCBTSU9fSU5ERVgpOwotCW91dGJfcChTSU9fUE1fTFNCLCBTSU9fREFUQSk7CS8qIExTQiBvZiBQTSBiYXNlIGFkZHJlc3MgKi8KLQotCW91dGJfcChTSU9fREVWX0VOQiwgU0lPX0lOREVYKTsKLQlvdXRiX3AoMSwgU0lPX0RBVEEpOwkJLyogRW5hYmxlIFBNIHJlZ2lzdGVycy4gKi8KLQotCS8qCi0JICogTm93LCB3cml0ZSB0aGUgUE0gcmVnaXN0ZXIgd2hpY2ggZW5hYmxlcyB0aGUgR1BJTyByZWdpc3RlcnMuCi0JICovCi0Jb3V0Yl9wKFNJT19QTV9GRVIyLCBTSU9fUE1fSU5ERVgpOwotCW91dGJfcChTSU9fUE1fR1BfRU4sIFNJT19QTV9EQVRBKTsKLQotCS8qCi0JICogTm93LCBpbml0aWFsaXplIHRoZSBHUElPIHJlZ2lzdGVycy4KLQkgKiBXZSB3YW50IHRoZW0gYWxsIHRvIGJlIGlucHV0cyB3aGljaCBpcyB0aGUKLQkgKiBwb3dlciBvbiBkZWZhdWx0LCBzbyBsZXQncyBsZWF2ZSB0aGVtIGFsb25lLgotCSAqIFNvLCBsZXQncyBqdXN0IHJlYWQgdGhlIGJvYXJkIHJldiEKLQkgKi8KLQlyYXcgPSBpbmJfcChTSU9fR1BfREFUQTEpOwotCXJhdyAmPSAweDdmOwkvKiA3IGJpdHMgb2YgdmFsaWQgYm9hcmQgcmV2aXNpb24gSUQuICovCi0KLQlpZiAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU18zMjApIHsKLQkJaWYgKHJhdyA8IDB4NikgewotCQkJdmlzd3NfYm9hcmRfcmV2ID0gNDsKLQkJfSBlbHNlIGlmIChyYXcgPCAweGMpIHsKLQkJCXZpc3dzX2JvYXJkX3JldiA9IDU7Ci0JCX0gZWxzZSB7Ci0JCQl2aXN3c19ib2FyZF9yZXYgPSA2OwotCQl9Ci0JfSBlbHNlIGlmICh2aXN3c19ib2FyZF90eXBlID09IFZJU1dTXzU0MCkgewotCQkJdmlzd3NfYm9hcmRfcmV2ID0gMjsKLQkJfSBlbHNlIHsKLQkJCXZpc3dzX2JvYXJkX3JldiA9IHJhdzsKLQkJfQotCi0JcHJpbnRrKEtFUk5fSU5GTyAiU2lsaWNvbiBHcmFwaGljcyBWaXN1YWwgV29ya3N0YXRpb24gJXMgKHJldiAlZCkgZGV0ZWN0ZWRcbiIsCi0JICAgICAgICh2aXN3c19ib2FyZF90eXBlID09IFZJU1dTXzMyMCA/ICIzMjAiIDoKLQkgICAgICAgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfNTQwID8gIjU0MCIgOgotCQkidW5rbm93biIpKSwgdmlzd3NfYm9hcmRfcmV2KTsKLX0KLQotdm9pZCBfX2luaXQgcHJlX2ludHJfaW5pdF9ob29rKHZvaWQpCi17Ci0JaW5pdF9WSVNXU19BUElDX2lycXMoKTsKLX0KLQotdm9pZCBfX2luaXQgaW50cl9pbml0X2hvb2sodm9pZCkKLXsKLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLQlhcGljX2ludHJfaW5pdCgpOwotI2VuZGlmCi19Ci0KLXZvaWQgX19pbml0IHByZV9zZXR1cF9hcmNoX2hvb2soKQotewotCXZpc3dzX2dldF9ib2FyZF90eXBlX2FuZF9yZXYoKTsKLX0KLQotc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gaXJxMCA9IHsKLQkuaGFuZGxlciA9CXRpbWVyX2ludGVycnVwdCwKLQkuZmxhZ3MgPQlJUlFGX0RJU0FCTEVEIHwgSVJRRl9JUlFQT0xMLAotCS5uYW1lID0JCSJ0aW1lciIsCi19OwotCi12b2lkIF9faW5pdCB0aW1lX2luaXRfaG9vayh2b2lkKQotewotCXByaW50ayhLRVJOX0lORk8gIlN0YXJ0aW5nIENvYmFsdCBUaW1lciBzeXN0ZW0gY2xvY2tcbiIpOwotCi0JLyogU2V0IHRoZSBjb3VudGRvd24gdmFsdWUgKi8KLQljb19jcHVfd3JpdGUoQ09fQ1BVX1RJTUVWQUwsIENPX1RJTUVfSFovSFopOwotCi0JLyogU3RhcnQgdGhlIHRpbWVyICovCi0JY29fY3B1X3dyaXRlKENPX0NQVV9DVFJMLCBjb19jcHVfcmVhZChDT19DUFVfQ1RSTCkgfCBDT19DVFJMX1RJTUVSVU4pOwotCi0JLyogRW5hYmxlICh1bm1hc2spIHRoZSB0aW1lciBpbnRlcnJ1cHQgKi8KLQljb19jcHVfd3JpdGUoQ09fQ1BVX0NUUkwsIGNvX2NwdV9yZWFkKENPX0NQVV9DVFJMKSAmIH5DT19DVFJMX1RJTUVNQVNLKTsKLQotCS8qIFdpcmUgY3B1IElEVCBlbnRyeSB0byBzL3cgaGFuZGxlciAoYW5kIENvYmFsdCBBUElDIHRvIElEVCkgKi8KLQlzZXR1cF9pcnEoMCwgJmlycTApOwotfQotCi0vKiBIb29rIGZvciBtYWNoaW5lIHNwZWNpZmljIG1lbW9yeSBzZXR1cC4gKi8KLQotI2RlZmluZSBNQiAoMTAyNCAqIDEwMjQpCi0KLXVuc2lnbmVkIGxvbmcgc2dpdndmYl9tZW1fcGh5czsKLXVuc2lnbmVkIGxvbmcgc2dpdndmYl9tZW1fc2l6ZTsKLUVYUE9SVF9TWU1CT0woc2dpdndmYl9tZW1fcGh5cyk7Ci1FWFBPUlRfU1lNQk9MKHNnaXZ3ZmJfbWVtX3NpemUpOwotCi1sb25nIGxvbmcgbWVtX3NpemUgX19pbml0ZGF0YSA9IDA7Ci0KLWNoYXIgKiBfX2luaXQgbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCkKLXsKLQlsb25nIGxvbmcgZ2Z4X21lbV9zaXplID0gOCAqIE1COwotCi0JbWVtX3NpemUgPSBib290X3BhcmFtcy5hbHRfbWVtX2s7Ci0KLQlpZiAoIW1lbV9zaXplKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkJvb3Rsb2FkZXIgZGlkbid0IHNldCBtZW1vcnkgc2l6ZSwgdXBncmFkZSBpdCAhXG4iKTsKLQkJbWVtX3NpemUgPSAxMjggKiBNQjsKLQl9Ci0KLQkvKgotCSAqIHRoaXMgaGFyZGNvZGVzIHRoZSBncmFwaGljcyBtZW1vcnkgdG8gOCBNQgotCSAqIGl0IHJlYWxseSBzaG91bGQgYmUgc2l6ZWQgZHluYW1pY2FsbHkgKG9yIGF0IGxlYXN0Ci0JICogc2V0IGFzIGEgYm9vdCBwYXJhbSkKLQkgKi8KLQlpZiAoIXNnaXZ3ZmJfbWVtX3NpemUpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiRGVmYXVsdGluZyB0byA4IE1CIGZyYW1lYnVmZmVyIHNpemVcbiIpOwotCQlzZ2l2d2ZiX21lbV9zaXplID0gOCAqIE1COwotCX0KLQotCS8qCi0JICogVHJpbSB0byBuZWFyZXN0IE1CCi0JICovCi0Jc2dpdndmYl9tZW1fc2l6ZSAmPSB+KCgxIDw8IDIwKSAtIDEpOwotCXNnaXZ3ZmJfbWVtX3BoeXMgPSBtZW1fc2l6ZSAtIGdmeF9tZW1fc2l6ZTsKLQotCWFkZF9tZW1vcnlfcmVnaW9uKDAsIExPV01FTVNJWkUoKSwgRTgyMF9SQU0pOwotCWFkZF9tZW1vcnlfcmVnaW9uKEhJR0hfTUVNT1JZLCBtZW1fc2l6ZSAtIHNnaXZ3ZmJfbWVtX3NpemUgLSBISUdIX01FTU9SWSwgRTgyMF9SQU0pOwotCWFkZF9tZW1vcnlfcmVnaW9uKHNnaXZ3ZmJfbWVtX3BoeXMsIHNnaXZ3ZmJfbWVtX3NpemUsIEU4MjBfUkVTRVJWRUQpOwotCi0JcmV0dXJuICJQUk9NIjsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtdmlzd3MvdHJhcHMuYyBiL2FyY2gveDg2L21hY2gtdmlzd3MvdHJhcHMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmZhYzZiYS4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL3RyYXBzLmMKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKiBWSVNXUyB0cmFwcyAqLwotCi0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpX2lkcy5oPgotCi0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2hfaG9va3MuaD4KLSNpbmNsdWRlIDxhc20vYXBpYy5oPgotI2luY2x1ZGUgImNvYmFsdC5oIgotI2luY2x1ZGUgImxpdGhpdW0uaCIKLQotCi0jZGVmaW5lIEEwMTIzNCAoTElfSU5UQV8wIHwgTElfSU5UQV8xIHwgTElfSU5UQV8yIHwgTElfSU5UQV8zIHwgTElfSU5UQV80KQotI2RlZmluZSBCQ0QgKExJX0lOVEIgfCBMSV9JTlRDIHwgTElfSU5URCkKLSNkZWZpbmUgQUxMREVWUyAoQTAxMjM0IHwgQkNEKQotCi1zdGF0aWMgX19pbml0IHZvaWQgbGl0aGl1bV9pbml0KHZvaWQpCi17Ci0Jc2V0X2ZpeG1hcChGSVhfTElfUENJQSwgTElfUENJX0FfUEhZUyk7Ci0Jc2V0X2ZpeG1hcChGSVhfTElfUENJQiwgTElfUENJX0JfUEhZUyk7Ci0KLQlpZiAoKGxpX3BjaWFfcmVhZDE2KFBDSV9WRU5ET1JfSUQpICE9IFBDSV9WRU5ET1JfSURfU0dJKSB8fAotCSAgICAobGlfcGNpYV9yZWFkMTYoUENJX0RFVklDRV9JRCkgIT0gUENJX0RFVklDRV9JRF9TR0lfTElUSElVTSkpIHsKLQkJcHJpbnRrKEtFUk5fRU1FUkcgIkxpdGhpdW0gaG9zdGJyaWRnZSAlYyBub3QgZm91bmRcbiIsICdBJyk7Ci0JCXBhbmljKCJUaGlzIG1hY2hpbmUgaXMgbm90IFNHSSBWaXN1YWwgV29ya3N0YXRpb24gMzIwLzU0MCIpOwotCX0KLQotCWlmICgobGlfcGNpYl9yZWFkMTYoUENJX1ZFTkRPUl9JRCkgIT0gUENJX1ZFTkRPUl9JRF9TR0kpIHx8Ci0JICAgIChsaV9wY2liX3JlYWQxNihQQ0lfREVWSUNFX0lEKSAhPSBQQ0lfREVWSUNFX0lEX1NHSV9MSVRISVVNKSkgewotCQlwcmludGsoS0VSTl9FTUVSRyAiTGl0aGl1bSBob3N0YnJpZGdlICVjIG5vdCBmb3VuZFxuIiwgJ0InKTsKLQkJcGFuaWMoIlRoaXMgbWFjaGluZSBpcyBub3QgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiAzMjAvNTQwIik7Ci0JfQotCi0JbGlfcGNpYV93cml0ZTE2KExJX1BDSV9JTlRFTiwgQUxMREVWUyk7Ci0JbGlfcGNpYl93cml0ZTE2KExJX1BDSV9JTlRFTiwgQUxMREVWUyk7Ci19Ci0KLXN0YXRpYyBfX2luaXQgdm9pZCBjb2JhbHRfaW5pdCh2b2lkKQotewotCS8qCi0JICogT24gbm9ybWFsIFNNUCBQQyB0aGlzIGlzIHVzZWQgb25seSB3aXRoIFNNUCwgYnV0IHdlIGhhdmUgdG8KLQkgKiB1c2UgaXQgYW5kIHNldCBpdCB1cCBoZXJlIHRvIHN0YXJ0IHRoZSBDb2JhbHQgY2xvY2sKLQkgKi8KLQlzZXRfZml4bWFwKEZJWF9BUElDX0JBU0UsIEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpOwotCXNldHVwX2xvY2FsX0FQSUMoKTsKLQlwcmludGsoS0VSTl9JTkZPICJMb2NhbCBBUElDIFZlcnNpb24gJSN4LCBJRCAlI3hcbiIsCi0JCSh1bnNpZ25lZCBpbnQpYXBpY19yZWFkKEFQSUNfTFZSKSwKLQkJKHVuc2lnbmVkIGludClhcGljX3JlYWQoQVBJQ19JRCkpOwotCi0Jc2V0X2ZpeG1hcChGSVhfQ09fQ1BVLCBDT19DUFVfUEhZUyk7Ci0Jc2V0X2ZpeG1hcChGSVhfQ09fQVBJQywgQ09fQVBJQ19QSFlTKTsKLQlwcmludGsoS0VSTl9JTkZPICJDb2JhbHQgUmV2aXNpb24gJSNseCwgQVBJQyBJRCAlI2x4XG4iLAotCQljb19jcHVfcmVhZChDT19DUFVfUkVWKSwgY29fYXBpY19yZWFkKENPX0FQSUNfSUQpKTsKLQotCS8qIEVuYWJsZSBDb2JhbHQgQVBJQyBiZWluZyBjYXJlZnVsIHRvIE5PVCBjaGFuZ2UgdGhlIElEISAqLwotCWNvX2FwaWNfd3JpdGUoQ09fQVBJQ19JRCwgY29fYXBpY19yZWFkKENPX0FQSUNfSUQpIHwgQ09fQVBJQ19FTkFCTEUpOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiQ29iYWx0IEFQSUMgZW5hYmxlZDogSUQgcmVnICUjbHhcbiIsCi0JCWNvX2FwaWNfcmVhZChDT19BUElDX0lEKSk7Ci19Ci0KLXZvaWQgX19pbml0IHRyYXBfaW5pdF9ob29rKHZvaWQpCi17Ci0JbGl0aGl1bV9pbml0KCk7Ci0JY29iYWx0X2luaXQoKTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtdmlzd3Mvdmlzd3NfYXBpYy5jIGIvYXJjaC94ODYvbWFjaC12aXN3cy92aXN3c19hcGljLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlZjljYjEuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbWFjaC12aXN3cy92aXN3c19hcGljLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyOTcgKzAsMCBAQAotLyoKLSAqCUNvcHlyaWdodCAoQykgMTk5OSBCZW50IEhhZ2VtYXJrLCBJbmdvIE1vbG5hcgotICoKLSAqICBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIGludGVycnVwdCBjb250cm9sbGVyCi0gKgotICogIFRoZSBDb2JhbHQgc3lzdGVtIEFTSUMgaW4gdGhlIFZpc3VhbCBXb3Jrc3RhdGlvbiBjb250YWlucyBhICJDb2JhbHQiIEFQSUMKLSAqICB3aGljaCBzZXJ2ZXMgYXMgdGhlIG1haW4gaW50ZXJydXB0IGNvbnRyb2xsZXIgaW4gdGhlIHN5c3RlbS4gIE5vbi1sZWdhY3kKLSAqICBoYXJkd2FyZSBpbiB0aGUgc3lzdGVtIHVzZXMgdGhpcyBjb250cm9sbGVyIGRpcmVjdGx5LiAgTGVnYWN5IGRldmljZXMKLSAqICBhcmUgY29ubmVjdGVkIHRvIHRoZSBQSUlYNCB3aGljaCBpbiB0dXJuIGhhcyBpdHMgODI1OShzKSBjb25uZWN0ZWQgdG8KLSAqICBhIG9mIHRoZSBDb2JhbHQgQVBJQyBlbnRyeS4KLSAqCi0gKiAgMDkvMDIvMjAwMCAtIFVwZGF0ZWQgZm9yIDIuNCBieSBqYmFybmVzQHNnaS5jb20KLSAqCi0gKiAgMjUvMTEvMjAwMiAtIFVwZGF0ZWQgZm9yIDIuNSBieSBBbmRyZXkgUGFuaW4gPHBhemtlQG9yYml0YTEucnU+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotCi0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2FwaWMuaD4KLSNpbmNsdWRlIDxhc20vaTgyNTkuaD4KLQotI2luY2x1ZGUgImNvYmFsdC5oIgotI2luY2x1ZGUgImlycV92ZWN0b3JzLmgiCi0KLQotc3RhdGljIERFRklORV9TUElOTE9DSyhjb2JhbHRfbG9jayk7Ci0KLS8qCi0gKiBTZXQgdGhlIGdpdmVuIENvYmFsdCBBUElDIFJlZGlyZWN0aW9uIFRhYmxlIGVudHJ5IHRvIHBvaW50Ci0gKiB0byB0aGUgZ2l2ZW4gSURUIHZlY3Rvci9pbmRleC4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIGNvX2FwaWNfc2V0KGludCBlbnRyeSwgaW50IGlycSkKLXsKLQljb19hcGljX3dyaXRlKENPX0FQSUNfTE8oZW50cnkpLCBDT19BUElDX0xFVkVMIHwgKGlycSArIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUikpOwotCWNvX2FwaWNfd3JpdGUoQ09fQVBJQ19ISShlbnRyeSksIDApOwotfQotCi0vKgotICogQ29iYWx0IChJTyktQVBJQyBmdW5jdGlvbnMgdG8gaGFuZGxlIFBDSSBkZXZpY2VzLgotICovCi1zdGF0aWMgaW5saW5lIGludCBjb19hcGljX2lkZTBfaGFjayh2b2lkKQotewotCWV4dGVybiBjaGFyIHZpc3dzX2JvYXJkX3R5cGU7Ci0JZXh0ZXJuIGNoYXIgdmlzd3NfYm9hcmRfcmV2OwotCi0JaWYgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfMzIwICYmIHZpc3dzX2JvYXJkX3JldiA9PSA1KQotCQlyZXR1cm4gNTsKLQlyZXR1cm4gQ09fQVBJQ19JREUwOwotfQotCi1zdGF0aWMgaW50IGlzX2NvX2FwaWModW5zaWduZWQgaW50IGlycSkKLXsKLQlpZiAoSVNfQ09fQVBJQyhpcnEpKQotCQlyZXR1cm4gQ09fQVBJQyhpcnEpOwotCi0Jc3dpdGNoIChpcnEpIHsKLQkJY2FzZSAwOiByZXR1cm4gQ09fQVBJQ19DUFU7Ci0JCWNhc2UgQ09fSVJRX0lERTA6IHJldHVybiBjb19hcGljX2lkZTBfaGFjaygpOwotCQljYXNlIENPX0lSUV9JREUxOiByZXR1cm4gQ09fQVBJQ19JREUxOwotCQlkZWZhdWx0OiByZXR1cm4gLTE7Ci0JfQotfQotCi0KLS8qCi0gKiBUaGlzIGlzIHRoZSBTR0kgQ29iYWx0IChJTy0pQVBJQzoKLSAqLwotCi1zdGF0aWMgdm9pZCBlbmFibGVfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCWNvX2FwaWNfc2V0KGlzX2NvX2FwaWMoaXJxKSwgaXJxKTsKLX0KLQotc3RhdGljIHZvaWQgZGlzYWJsZV9jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JaW50IGVudHJ5ID0gaXNfY29fYXBpYyhpcnEpOwotCi0JY29fYXBpY193cml0ZShDT19BUElDX0xPKGVudHJ5KSwgQ09fQVBJQ19NQVNLKTsKLQljb19hcGljX3JlYWQoQ09fQVBJQ19MTyhlbnRyeSkpOwotfQotCi0vKgotICogImlycSIgcmVhbGx5IGp1c3Qgc2VydmVzIHRvIGlkZW50aWZ5IHRoZSBkZXZpY2UuICBIZXJlIGlzIHdoZXJlIHdlCi0gKiBtYXAgdGhpcyB0byB0aGUgQ29iYWx0IEFQSUMgZW50cnkgd2hlcmUgaXQncyBwaHlzaWNhbGx5IHdpcmVkLgotICogVGhpcyBpcyBjYWxsZWQgdmlhIHJlcXVlc3RfaXJxIC0+IHNldHVwX2lycSAtPiBpcnFfZGVzYy0+c3RhcnR1cCgpCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgc3RhcnR1cF9jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOwotCWlmICgoaXJxX2Rlc2NbaXJxXS5zdGF0dXMgJiAoSVJRX0RJU0FCTEVEIHwgSVJRX0lOUFJPR1JFU1MgfCBJUlFfV0FJVElORykpKQotCQlpcnFfZGVzY1tpcnFdLnN0YXR1cyAmPSB+KElSUV9ESVNBQkxFRCB8IElSUV9JTlBST0dSRVNTIHwgSVJRX1dBSVRJTkcpOwotCWVuYWJsZV9jb2JhbHRfaXJxKGlycSk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgYWNrX2NvYmFsdF9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Ci0JZGlzYWJsZV9jb2JhbHRfaXJxKGlycSk7Ci0JYXBpY193cml0ZShBUElDX0VPSSwgQVBJQ19FSU9fQUNLKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgdm9pZCBlbmRfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKLQlpZiAoIShpcnFfZGVzY1tpcnFdLnN0YXR1cyAmIChJUlFfRElTQUJMRUQgfCBJUlFfSU5QUk9HUkVTUykpKQotCQllbmFibGVfY29iYWx0X2lycShpcnEpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgY29iYWx0X2lycV90eXBlID0gewotCS50eXBlbmFtZSA9CSJDb2JhbHQtQVBJQyIsCi0JLnN0YXJ0dXAgPQlzdGFydHVwX2NvYmFsdF9pcnEsCi0JLnNodXRkb3duID0JZGlzYWJsZV9jb2JhbHRfaXJxLAotCS5lbmFibGUgPQllbmFibGVfY29iYWx0X2lycSwKLQkuZGlzYWJsZSA9CWRpc2FibGVfY29iYWx0X2lycSwKLQkuYWNrID0JCWFja19jb2JhbHRfaXJxLAotCS5lbmQgPQkJZW5kX2NvYmFsdF9pcnEsCi19OwotCi0KLS8qCi0gKiBUaGlzIGlzIHRoZSBQSUlYNC1iYXNlZCA4MjU5IHRoYXQgaXMgd2lyZWQgdXAgaW5kaXJlY3RseSB0byBDb2JhbHQKLSAqIC0tIG5vdCB0aGUgbWFubmVyIGV4cGVjdGVkIGJ5IHRoZSBjb2RlIGluIGk4MjU5LmMuCi0gKgotICogdGhlcmUgaXMgYSAnbWFzdGVyJyBwaHlzaWNhbCBpbnRlcnJ1cHQgc291cmNlIHRoYXQgZ2V0cyBzZW50IHRvCi0gKiB0aGUgQ1BVLiBCdXQgaW4gdGhlIGNoaXBzZXQgdGhlcmUgYXJlIHZhcmlvdXMgJ3ZpcnR1YWwnIGludGVycnVwdHMKLSAqIHdhaXRpbmcgdG8gYmUgaGFuZGxlZC4gV2UgcmVwcmVzZW50IHRoaXMgdG8gTGludXggdGhyb3VnaCBhICdtYXN0ZXInCi0gKiBpbnRlcnJ1cHQgY29udHJvbGxlciB0eXBlLCBhbmQgdGhyb3VnaCBhIHNwZWNpYWwgdmlydHVhbCBpbnRlcnJ1cHQtCi0gKiBjb250cm9sbGVyLiBEZXZpY2UgZHJpdmVycyBvbmx5IHNlZSB0aGUgdmlydHVhbCBpbnRlcnJ1cHQgc291cmNlcy4KLSAqLwotc3RhdGljIHVuc2lnbmVkIGludCBzdGFydHVwX3BpaXg0X21hc3Rlcl9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQlpbml0XzgyNTlBKDApOwotCi0JcmV0dXJuIHN0YXJ0dXBfY29iYWx0X2lycShpcnEpOwotfQotCi1zdGF0aWMgdm9pZCBlbmRfcGlpeDRfbWFzdGVyX2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKLQllbmFibGVfY29iYWx0X2lycShpcnEpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgcGlpeDRfbWFzdGVyX2lycV90eXBlID0gewotCS50eXBlbmFtZSA9CSJQSUlYNC1tYXN0ZXIiLAotCS5zdGFydHVwID0Jc3RhcnR1cF9waWl4NF9tYXN0ZXJfaXJxLAotCS5hY2sgPQkJYWNrX2NvYmFsdF9pcnEsCi0JLmVuZCA9CQllbmRfcGlpeDRfbWFzdGVyX2lycSwKLX07Ci0KLQotc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBwaWl4NF92aXJ0dWFsX2lycV90eXBlID0gewotCS50eXBlbmFtZSA9CSJQSUlYNC12aXJ0dWFsIiwKLQkuc2h1dGRvd24gPQlkaXNhYmxlXzgyNTlBX2lycSwKLQkuZW5hYmxlID0JZW5hYmxlXzgyNTlBX2lycSwKLQkuZGlzYWJsZSA9CWRpc2FibGVfODI1OUFfaXJxLAotfTsKLQotCi0vKgotICogUElJWDQtODI1OSBtYXN0ZXIvdmlydHVhbCBmdW5jdGlvbnMgdG8gaGFuZGxlIGludGVycnVwdCByZXF1ZXN0cwotICogZnJvbSBsZWdhY3kgZGV2aWNlczogZmxvcHB5LCBwYXJhbGxlbCwgc2VyaWFsLCBydGMuCi0gKgotICogTm9uZSBvZiB0aGVzZSBnZXQgQ29iYWx0IEFQSUMgZW50cmllcywgbmVpdGhlciBkbyB0aGV5IGhhdmUgSURUCi0gKiBlbnRyaWVzLiBUaGVzZSBpbnRlcnJ1cHRzIGFyZSBwdXJlbHkgdmlydHVhbCBhbmQgZGlzdHJpYnV0ZWQgZnJvbQotICogdGhlICdtYXN0ZXInIGludGVycnVwdCBzb3VyY2U6IENPX0lSUV84MjU5LgotICoKLSAqIFdoZW4gdGhlIDgyNTkgaW50ZXJydXB0cyBpdHMgaGFuZGxlciBmaWd1cmVzIG91dCB3aGljaCBvZiB0aGVzZQotICogZGV2aWNlcyBpcyBpbnRlcnJ1cHRpbmcgYW5kIGRpc3BhdGNoZXMgdG8gaXRzIGhhbmRsZXIuCi0gKgotICogQ0FSRUZVTDogZGV2aWNlcyBzZWUgdGhlICd2aXJ0dWFsJyBpbnRlcnJ1cHQgb25seS4gVGh1cyBkaXNhYmxlLwotICogZW5hYmxlX2lycSBnZXRzIHRoZSByaWdodCBpcnEuIFRoaXMgJ21hc3RlcicgaXJxIGlzIG5ldmVyIGRpcmVjdGx5Ci0gKiBtYW5pcHVsYXRlZCBieSBhbnkgZHJpdmVyLgotICovCi1zdGF0aWMgaXJxcmV0dXJuX3QgcGlpeDRfbWFzdGVyX2ludHIoaW50IGlycSwgdm9pZCAqZGV2X2lkKQotewotCWludCByZWFsaXJxOwotCWlycV9kZXNjX3QgKmRlc2M7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCi0JLyogRmluZCBvdXQgd2hhdCdzIGludGVycnVwdGluZyBpbiB0aGUgUElJWDQgbWFzdGVyIDgyNTkgKi8KLQlvdXRiKDB4MGMsIDB4MjApOwkJLyogT0NXMyBQb2xsIGNvbW1hbmQgKi8KLQlyZWFsaXJxID0gaW5iKDB4MjApOwotCi0JLyoKLQkgKiBCaXQgNyA9PSAwIG1lYW5zIGludmFsaWQvc3B1cmlvdXMKLQkgKi8KLQlpZiAodW5saWtlbHkoIShyZWFsaXJxICYgMHg4MCkpKQotCQlnb3RvIG91dF91bmxvY2s7Ci0KLQlyZWFsaXJxICY9IDc7Ci0KLQlpZiAodW5saWtlbHkocmVhbGlycSA9PSAyKSkgewotCQlvdXRiKDB4MGMsIDB4YTApOwotCQlyZWFsaXJxID0gaW5iKDB4YTApOwotCi0JCWlmICh1bmxpa2VseSghKHJlYWxpcnEgJiAweDgwKSkpCi0JCQlnb3RvIG91dF91bmxvY2s7Ci0KLQkJcmVhbGlycSA9IChyZWFsaXJxICYgNykgKyA4OwotCX0KLQotCS8qIG1hc2sgYW5kIGFjayBpbnRlcnJ1cHQgKi8KLQljYWNoZWRfaXJxX21hc2sgfD0gMSA8PCByZWFsaXJxOwotCWlmICh1bmxpa2VseShyZWFsaXJxID4gNykpIHsKLQkJaW5iKDB4YTEpOwotCQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCAweGExKTsKLQkJb3V0YigweDYwICsgKHJlYWxpcnEgJiA3KSwgMHhhMCk7Ci0JCW91dGIoMHg2MCArIDIsIDB4MjApOwotCX0gZWxzZSB7Ci0JCWluYigweDIxKTsKLQkJb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIDB4MjEpOwotCQlvdXRiKDB4NjAgKyByZWFsaXJxLCAweDIwKTsKLQl9Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCi0JZGVzYyA9IGlycV9kZXNjICsgcmVhbGlycTsKLQotCS8qCi0JICogaGFuZGxlIHRoaXMgJ3ZpcnR1YWwgaW50ZXJydXB0JyBhcyBhIENvYmFsdCBvbmUgbm93LgotCSAqLwotCWtzdGF0X2NwdShzbXBfcHJvY2Vzc29yX2lkKCkpLmlycXNbcmVhbGlycV0rKzsKLQotCWlmIChsaWtlbHkoZGVzYy0+YWN0aW9uICE9IE5VTEwpKQotCQloYW5kbGVfSVJRX2V2ZW50KHJlYWxpcnEsIGRlc2MtPmFjdGlvbik7Ci0KLQlpZiAoIShkZXNjLT5zdGF0dXMgJiBJUlFfRElTQUJMRUQpKQotCQllbmFibGVfODI1OUFfaXJxKHJlYWxpcnEpOwotCi0JcmV0dXJuIElSUV9IQU5ETEVEOwotCi1vdXRfdW5sb2NrOgotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIElSUV9OT05FOwotfQotCi1zdGF0aWMgc3RydWN0IGlycWFjdGlvbiBtYXN0ZXJfYWN0aW9uID0gewotCS5oYW5kbGVyID0JcGlpeDRfbWFzdGVyX2ludHIsCi0JLm5hbWUgPQkJIlBJSVg0LTgyNTkiLAotfTsKLQotc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gY2FzY2FkZV9hY3Rpb24gPSB7Ci0JLmhhbmRsZXIgPSAJbm9fYWN0aW9uLAotCS5uYW1lID0JCSJjYXNjYWRlIiwKLX07Ci0KLQotdm9pZCBpbml0X1ZJU1dTX0FQSUNfaXJxcyh2b2lkKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IENPX0lSUV9BUElDMCArIENPX0FQSUNfTEFTVCArIDE7IGkrKykgewotCQlpcnFfZGVzY1tpXS5zdGF0dXMgPSBJUlFfRElTQUJMRUQ7Ci0JCWlycV9kZXNjW2ldLmFjdGlvbiA9IDA7Ci0JCWlycV9kZXNjW2ldLmRlcHRoID0gMTsKLQotCQlpZiAoaSA9PSAwKSB7Ci0JCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKLQkJfQotCQllbHNlIGlmIChpID09IENPX0lSUV9JREUwKSB7Ci0JCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKLQkJfQotCQllbHNlIGlmIChpID09IENPX0lSUV9JREUxKSB7Ci0JCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKLQkJfQotCQllbHNlIGlmIChpID09IENPX0lSUV84MjU5KSB7Ci0JCQlpcnFfZGVzY1tpXS5jaGlwID0gJnBpaXg0X21hc3Rlcl9pcnFfdHlwZTsKLQkJfQotCQllbHNlIGlmIChpIDwgQ09fSVJRX0FQSUMwKSB7Ci0JCQlpcnFfZGVzY1tpXS5jaGlwID0gJnBpaXg0X3ZpcnR1YWxfaXJxX3R5cGU7Ci0JCX0KLQkJZWxzZSBpZiAoSVNfQ09fQVBJQyhpKSkgewotCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZjb2JhbHRfaXJxX3R5cGU7Ci0JCX0KLQl9Ci0KLQlzZXR1cF9pcnEoQ09fSVJRXzgyNTksICZtYXN0ZXJfYWN0aW9uKTsKLQlzZXR1cF9pcnEoMiwgJmNhc2NhZGVfYWN0aW9uKTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtdm95YWdlci9zZXR1cC5jIGIvYXJjaC94ODYvbWFjaC12b3lhZ2VyL3NldHVwLmMKaW5kZXggNWFlNTQ2Ni4uNmJiZGQ2MyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWFjaC12b3lhZ2VyL3NldHVwLmMKKysrIGIvYXJjaC94ODYvbWFjaC12b3lhZ2VyL3NldHVwLmMKQEAgLTYyLDYgKzYyLDcgQEAKIGNoYXIgKl9faW5pdCBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCh2b2lkKQogewogCWNoYXIgKndobzsKKwlpbnQgbmV3X25yOwogCiAJd2hvID0gIk5PVCBWT1lBR0VSIjsKIApAQCAtNzMsNyArNzQsNyBAQAogCiAJCWU4MjAubnJfbWFwID0gMDsKIAkJZm9yIChpID0gMDsgdm95YWdlcl9tZW1vcnlfZGV0ZWN0KGksICZhZGRyLCAmbGVuZ3RoKTsgaSsrKSB7Ci0JCQlhZGRfbWVtb3J5X3JlZ2lvbihhZGRyLCBsZW5ndGgsIEU4MjBfUkFNKTsKKwkJCWU4MjBfYWRkX3JlZ2lvbihhZGRyLCBsZW5ndGgsIEU4MjBfUkFNKTsKIAkJfQogCQlyZXR1cm4gd2hvOwogCX0gZWxzZSBpZiAodm95YWdlcl9sZXZlbCA9PSA0KSB7CkBAIC05MSw0MyArOTIsMTcgQEAKIAkJCXRvbSA9IChib290X3BhcmFtcy5zY3JlZW5faW5mby5leHRfbWVtX2spIDw8IDEwOwogCQl9CiAJCXdobyA9ICJWb3lhZ2VyLVRPTSI7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKDAsIDB4OWYwMDAsIEU4MjBfUkFNKTsKKwkJZTgyMF9hZGRfcmVnaW9uKDAsIDB4OWYwMDAsIEU4MjBfUkFNKTsKIAkJLyogbWFwIGZyb20gMU0gdG8gdG9wIG9mIG1lbW9yeSAqLwotCQlhZGRfbWVtb3J5X3JlZ2lvbigxICogMTAyNCAqIDEwMjQsIHRvbSAtIDEgKiAxMDI0ICogMTAyNCwKKwkJZTgyMF9hZGRfcmVnaW9uKDEgKiAxMDI0ICogMTAyNCwgdG9tIC0gMSAqIDEwMjQgKiAxMDI0LAogCQkJCSAgRTgyMF9SQU0pOwogCQkvKiBGSVhNRTogU2hvdWxkIGNoZWNrIHRoZSBBU0lDcyB0byBzZWUgaWYgSSBuZWVkIHRvCiAJCSAqIHRha2Ugb3V0IHRoZSA4TSB3aW5kb3cuICBKdXN0IGRvIGl0IGF0IHRoZSBtb21lbnQKIAkJICogKi8KLQkJYWRkX21lbW9yeV9yZWdpb24oOCAqIDEwMjQgKiAxMDI0LCA4ICogMTAyNCAqIDEwMjQsCisJCWU4MjBfYWRkX3JlZ2lvbig4ICogMTAyNCAqIDEwMjQsIDggKiAxMDI0ICogMTAyNCwKIAkJCQkgIEU4MjBfUkVTRVJWRUQpOwogCQlyZXR1cm4gd2hvOwogCX0KIAotCXdobyA9ICJCSU9TLWU4MjAiOwotCi0JLyoKLQkgKiBUcnkgdG8gY29weSB0aGUgQklPUy1zdXBwbGllZCBFODIwLW1hcC4KLQkgKgotCSAqIE90aGVyd2lzZSBmYWtlIGEgbWVtb3J5IG1hcDsgb25lIHNlY3Rpb24gZnJvbSAway0+NjQwaywKLQkgKiB0aGUgbmV4dCBzZWN0aW9uIGZyb20gMW1iLT5hcHByb3ByaWF0ZV9tZW1fawotCSAqLwotCXNhbml0aXplX2U4MjBfbWFwKGJvb3RfcGFyYW1zLmU4MjBfbWFwLCAmYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzKTsKLQlpZiAoY29weV9lODIwX21hcChib290X3BhcmFtcy5lODIwX21hcCwgYm9vdF9wYXJhbXMuZTgyMF9lbnRyaWVzKQotCSAgICA8IDApIHsKLQkJdW5zaWduZWQgbG9uZyBtZW1fc2l6ZTsKLQotCQkvKiBjb21wYXJlIHJlc3VsdHMgZnJvbSBvdGhlciBtZXRob2RzIGFuZCB0YWtlIHRoZSBncmVhdGVyICovCi0JCWlmIChib290X3BhcmFtcy5hbHRfbWVtX2sgPCBib290X3BhcmFtcy5zY3JlZW5faW5mby5leHRfbWVtX2spIHsKLQkJCW1lbV9zaXplID0gYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8uZXh0X21lbV9rOwotCQkJd2hvID0gIkJJT1MtODgiOwotCQl9IGVsc2UgewotCQkJbWVtX3NpemUgPSBib290X3BhcmFtcy5hbHRfbWVtX2s7Ci0JCQl3aG8gPSAiQklPUy1lODAxIjsKLQkJfQotCi0JCWU4MjAubnJfbWFwID0gMDsKLQkJYWRkX21lbW9yeV9yZWdpb24oMCwgTE9XTUVNU0laRSgpLCBFODIwX1JBTSk7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKEhJR0hfTUVNT1JZLCBtZW1fc2l6ZSA8PCAxMCwgRTgyMF9SQU0pOwotCX0KLQlyZXR1cm4gd2hvOworCXJldHVybiBkZWZhdWx0X21hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLXZveWFnZXIvdm95YWdlcl9zbXAuYyBiL2FyY2gveDg2L21hY2gtdm95YWdlci92b3lhZ2VyX3NtcC5jCmluZGV4IGFiZWEwODQuLmVlMGZiYTAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hY2gtdm95YWdlci92b3lhZ2VyX3NtcC5jCisrKyBiL2FyY2gveDg2L21hY2gtdm95YWdlci92b3lhZ2VyX3NtcC5jCkBAIC01OSwxMSArNTksNiBAQAogICogYWN0aXZpdHkgY291bnQuICBGaW5hbGx5IGV4cG9ydGVkIGJ5IGkzODZfa3N5bXMuYyAqLwogc3RhdGljIGludCB2b3lhZ2VyX2V4dGVuZGVkX2NwdXMgPSAxOwogCi0vKiBIYXZlIHdlIGZvdW5kIGFuIFNNUCBib3ggLSB1c2VkIGJ5IHRpbWUuYyB0byBkbyB0aGUgcHJvZmlsaW5nCi0gICBpbnRlcnJ1cHQgZm9yIHRpbWVzbGljaW5nOyBkbyBub3Qgc2V0IHRvIDEgdW50aWwgdGhlIHBlciBDUFUgdGltZXIKLSAgIGludGVycnVwdCBpcyBhY3RpdmUgKi8KLWludCBzbXBfZm91bmRfY29uZmlnID0gMDsKLQogLyogVXNlZCBmb3IgdGhlIGludmFsaWRhdGUgbWFwIHRoYXQncyBhbHNvIGNoZWNrZWQgaW4gdGhlIHNwaW5sb2NrICovCiBzdGF0aWMgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyBzbXBfaW52YWxpZGF0ZV9uZWVkZWQ7CiAKQEAgLTEwNzUsMTUgKzEwNzAsNiBAQAogCW9uX2VhY2hfY3B1KGRvX2ZsdXNoX3RsYl9hbGwsIDAsIDEpOwogfQogCi0vKiB1c2VkIHRvIHNldCB1cCB0aGUgdHJhbXBvbGluZSBmb3Igb3RoZXIgQ1BVcyB3aGVuIHRoZSBtZW1vcnkgbWFuYWdlcgotICogaXMgc29ydGVkIG91dCAqLwotdm9pZCBfX2luaXQgc21wX2FsbG9jX21lbW9yeSh2b2lkKQotewotCXRyYW1wb2xpbmVfYmFzZSA9IGFsbG9jX2Jvb3RtZW1fbG93X3BhZ2VzKFBBR0VfU0laRSk7Ci0JaWYgKF9fcGEodHJhbXBvbGluZV9iYXNlKSA+PSAweDkzMDAwKQotCQlCVUcoKTsKLX0KLQogLyogc2VuZCBhIHJlc2NoZWR1bGUgQ1BJIHRvIG9uZSBDUFUgYnkgcGh5c2ljYWwgQ1BVIG51bWJlciovCiBzdGF0aWMgdm9pZCB2b3lhZ2VyX3NtcF9zZW5kX3Jlc2NoZWR1bGUoaW50IGNwdSkKIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hdGgtZW11L3JlZ19jb25zdGFudC5jIGIvYXJjaC94ODYvbWF0aC1lbXUvcmVnX2NvbnN0YW50LmMKaW5kZXggMDQ4NjllNi4uMDA1NDgzNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWF0aC1lbXUvcmVnX2NvbnN0YW50LmMKKysrIGIvYXJjaC94ODYvbWF0aC1lbXUvcmVnX2NvbnN0YW50LmMKQEAgLTE2LDggKzE2LDggQEAKICNpbmNsdWRlICJyZWdfY29uc3RhbnQuaCIKICNpbmNsdWRlICJjb250cm9sX3cuaCIKIAotI2RlZmluZSBNQUtFX1JFRyhzLGUsbCxoKSB7IGwsIGgsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEVYVEVOREVEX0ViaWFzKyhlKSkgfCAoKFNJR05fIyNzICE9IDApKjB4ODAwMCkpIH0KKyNkZWZpbmUgTUFLRV9SRUcocywgZSwgbCwgaCkgeyBsLCBoLCBcCisJCSgoRVhURU5ERURfRWJpYXMrKGUpKSB8ICgoU0lHTl8jI3MgIT0gMCkqMHg4MDAwKSkgfQogCiBGUFVfUkVHIGNvbnN0IENPTlNUXzEgPSBNQUtFX1JFRyhQT1MsIDAsIDB4MDAwMDAwMDAsIDB4ODAwMDAwMDApOwogI2lmIDAKQEAgLTQwLDcgKzQwLDcgQEAKIEZQVV9SRUcgY29uc3QgQ09OU1RfWiA9IE1BS0VfUkVHKFBPUywgRVhQX1VOREVSLCAweDAsIDB4MCk7CiAKIC8qIE9ubHkgdGhlIHNpZ24gYW5kIHNpZ25pZmljYW5kIChhbmQgdGFnKSBhcmUgdXNlZCBpbiBpbnRlcm5hbCBOYU5zICovCi0vKiBUaGUgODA0ODYgbmV2ZXIgZ2VuZXJhdGVzIG9uZSBvZiB0aGVzZSAKKy8qIFRoZSA4MDQ4NiBuZXZlciBnZW5lcmF0ZXMgb25lIG9mIHRoZXNlCiBGUFVfUkVHIGNvbnN0IENPTlNUX1NOQU4gPSBNQUtFX1JFRyhQT1MsIEVYUF9PVkVSLCAweDAwMDAwMDAxLCAweDgwMDAwMDAwKTsKICAqLwogLyogVGhpcyBpcyB0aGUgcmVhbCBpbmRlZmluaXRlIFFOYU4gKi8KQEAgLTQ5LDcgKzQ5LDcgQEAKIC8qIE9ubHkgdGhlIHNpZ24gKGFuZCB0YWcpIGlzIHVzZWQgaW4gaW50ZXJuYWwgaW5maW5pdGllcyAqLwogRlBVX1JFRyBjb25zdCBDT05TVF9JTkYgPSBNQUtFX1JFRyhQT1MsIEVYUF9PVkVSLCAweDAwMDAwMDAwLCAweDgwMDAwMDAwKTsKIAotc3RhdGljIHZvaWQgZmxkX2NvbnN0KEZQVV9SRUcgY29uc3QgKmMsIGludCBhZGosIHVfY2hhciB0YWcpCitzdGF0aWMgdm9pZCBmbGRfY29uc3QoRlBVX1JFRyBjb25zdCAqIGMsIGludCBhZGosIHVfY2hhciB0YWcpCiB7CiAJRlBVX1JFRyAqc3RfbmV3X3B0cjsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vTWFrZWZpbGUgYi9hcmNoL3g4Ni9tbS9NYWtlZmlsZQppbmRleCBiN2IzZTRjLi45ODczNzE2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9tbS9NYWtlZmlsZQpAQCAtOCwxMCArOCwxNiBAQAogCiBvYmotJChDT05GSUdfSElHSE1FTSkJCSs9IGhpZ2htZW1fMzIubwogCitvYmotJChDT05GSUdfTU1JT1RSQUNFX0hPT0tTKQkrPSBrbW1pby5vCitvYmotJChDT05GSUdfTU1JT1RSQUNFKQkJKz0gbW1pb3RyYWNlLm8KK21taW90cmFjZS15CQkJOj0gcGZfaW4ubyBtbWlvLW1vZC5vCitvYmotJChDT05GSUdfTU1JT1RSQUNFX1RFU1QpCSs9IHRlc3RtbWlvdHJhY2UubworCiBpZmVxICgkKENPTkZJR19YODZfMzIpLHkpCiBvYmotJChDT05GSUdfTlVNQSkJCSs9IGRpc2NvbnRpZ18zMi5vCiBlbHNlCiBvYmotJChDT05GSUdfTlVNQSkJCSs9IG51bWFfNjQubwogb2JqLSQoQ09ORklHX0s4X05VTUEpCQkrPSBrOHRvcG9sb2d5XzY0Lm8KLW9iai0kKENPTkZJR19BQ1BJX05VTUEpCQkrPSBzcmF0XzY0Lm8KIGVuZGlmCitvYmotJChDT05GSUdfQUNQSV9OVU1BKQkJKz0gc3JhdF8kKEJJVFMpLm8KKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vZGlzY29udGlnXzMyLmMgYi9hcmNoL3g4Ni9tbS9kaXNjb250aWdfMzIuYwppbmRleCA5MTRjY2Y5Li41ZGZlZjlmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9kaXNjb250aWdfMzIuYworKysgYi9hcmNoL3g4Ni9tbS9kaXNjb250aWdfMzIuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9tbXpvbmUuaD4KICNpbmNsdWRlIDxhc20vYmlvc19lYmRhLmg+CisjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CiAKIHN0cnVjdCBwZ2xpc3RfZGF0YSAqbm9kZV9kYXRhW01BWF9OVU1OT0RFU10gX19yZWFkX21vc3RseTsKIEVYUE9SVF9TWU1CT0wobm9kZV9kYXRhKTsKQEAgLTU5LDE0ICs2MCwxNCBAQAogLyoKICAqIDQpIHBoeXNub2RlX21hcCAgICAgLSB0aGUgbWFwcGluZyBiZXR3ZWVuIGEgcGZuIGFuZCBvd25pbmcgbm9kZQogICogcGh5c25vZGVfbWFwIGtlZXBzIHRyYWNrIG9mIHRoZSBwaHlzaWNhbCBtZW1vcnkgbGF5b3V0IG9mIGEgZ2VuZXJpYwotICogbnVtYSBub2RlIG9uIGEgMjU2TWIgYnJlYWsgKGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXkgd2lsbAotICogcmVwcmVzZW50IDI1Nk1iIG9mIG1lbW9yeSBhbmQgd2lsbCBiZSBtYXJrZWQgYnkgdGhlIG5vZGUgaWQuICBzbywKKyAqIG51bWEgbm9kZSBvbiBhIDY0TWIgYnJlYWsgKGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXkgd2lsbAorICogcmVwcmVzZW50IDY0TWIgb2YgbWVtb3J5IGFuZCB3aWxsIGJlIG1hcmtlZCBieSB0aGUgbm9kZSBpZC4gIHNvLAogICogaWYgdGhlIGZpcnN0IGdpZyBpcyBvbiBub2RlIDAsIGFuZCB0aGUgc2Vjb25kIGdpZyBpcyBvbiBub2RlIDEKICAqIHBoeXNub2RlX21hcCB3aWxsIGNvbnRhaW46CiAgKgotICogICAgIHBoeXNub2RlX21hcFswLTNdID0gMDsKLSAqICAgICBwaHlzbm9kZV9tYXBbNC03XSA9IDE7Ci0gKiAgICAgcGh5c25vZGVfbWFwWzgtIF0gPSAtMTsKKyAqICAgICBwaHlzbm9kZV9tYXBbMC0xNV0gPSAwOworICogICAgIHBoeXNub2RlX21hcFsxNi0zMV0gPSAxOworICogICAgIHBoeXNub2RlX21hcFszMi0gXSA9IC0xOwogICovCiBzOCBwaHlzbm9kZV9tYXBbTUFYX0VMRU1FTlRTXSBfX3JlYWRfbW9zdGx5ID0geyBbMCAuLi4gKE1BWF9FTEVNRU5UUyAtIDEpXSA9IC0xfTsKIEVYUE9SVF9TWU1CT0wocGh5c25vZGVfbWFwKTsKQEAgLTc1LDE1ICs3NiwxNSBAQAogewogCXVuc2lnbmVkIGxvbmcgcGZuOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAiTm9kZTogJWQsIHN0YXJ0X3BmbjogJWxkLCBlbmRfcGZuOiAlbGRcbiIsCisJcHJpbnRrKEtFUk5fSU5GTyAiTm9kZTogJWQsIHN0YXJ0X3BmbjogJWx4LCBlbmRfcGZuOiAlbHhcbiIsCiAJCQluaWQsIHN0YXJ0LCBlbmQpOwogCXByaW50ayhLRVJOX0RFQlVHICIgIFNldHRpbmcgcGh5c25vZGVfbWFwIGFycmF5IHRvIG5vZGUgJWQgZm9yIHBmbnM6XG4iLCBuaWQpOwogCXByaW50ayhLRVJOX0RFQlVHICIgICIpOwogCWZvciAocGZuID0gc3RhcnQ7IHBmbiA8IGVuZDsgcGZuICs9IFBBR0VTX1BFUl9FTEVNRU5UKSB7CiAJCXBoeXNub2RlX21hcFtwZm4gLyBQQUdFU19QRVJfRUxFTUVOVF0gPSBuaWQ7Ci0JCXByaW50aygiJWxkICIsIHBmbik7CisJCXByaW50ayhLRVJOX0NPTlQgIiVseCAiLCBwZm4pOwogCX0KLQlwcmludGsoIlxuIik7CisJcHJpbnRrKEtFUk5fQ09OVCAiXG4iKTsKIH0KIAogdW5zaWduZWQgbG9uZyBub2RlX21lbW1hcF9zaXplX2J5dGVzKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLApAQCAtOTksNyArMTAwLDYgQEAKICNlbmRpZgogCiBleHRlcm4gdW5zaWduZWQgbG9uZyBmaW5kX21heF9sb3dfcGZuKHZvaWQpOwotZXh0ZXJuIHZvaWQgYWRkX29uZV9oaWdocGFnZV9pbml0KHN0cnVjdCBwYWdlICosIGludCwgaW50KTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIGhpZ2hlbmRfcGZuLCBoaWdoc3RhcnRfcGZuOwogCiAjZGVmaW5lIExBUkdFX1BBR0VfQllURVMgKFBUUlNfUEVSX1BURSAqIFBBR0VfU0laRSkKQEAgLTExNywxMyArMTE3LDEzIEBACiAgKi8KIGludCBfX2luaXQgZ2V0X21lbWNmZ19udW1hX2ZsYXQodm9pZCkKIHsKLQlwcmludGsoIk5VTUEgLSBzaW5nbGUgbm9kZSwgZmxhdCBtZW1vcnkgbW9kZVxuIik7CisJcHJpbnRrKEtFUk5fREVCVUcgIk5VTUEgLSBzaW5nbGUgbm9kZSwgZmxhdCBtZW1vcnkgbW9kZVxuIik7CiAKLQkvKiBSdW4gdGhlIG1lbW9yeSBjb25maWd1cmF0aW9uIGFuZCBmaW5kIHRoZSB0b3Agb2YgbWVtb3J5LiAqLwotCXByb3BhZ2F0ZV9lODIwX21hcCgpOwogCW5vZGVfc3RhcnRfcGZuWzBdID0gMDsKIAlub2RlX2VuZF9wZm5bMF0gPSBtYXhfcGZuOworCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgbWF4X3Bmbik7CiAJbWVtb3J5X3ByZXNlbnQoMCwgMCwgbWF4X3Bmbik7CisJbm9kZV9yZW1hcF9zaXplWzBdID0gbm9kZV9tZW1tYXBfc2l6ZV9ieXRlcygwLCAwLCBtYXhfcGZuKTsKIAogICAgICAgICAvKiBJbmRpY2F0ZSB0aGVyZSBpcyBvbmUgbm9kZSBhdmFpbGFibGUuICovCiAJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKQEAgLTE1NiwyNCArMTU2LDMyIEBACiAgKi8KIHN0YXRpYyB2b2lkIF9faW5pdCBhbGxvY2F0ZV9wZ2RhdChpbnQgbmlkKQogewotCWlmIChuaWQgJiYgbm9kZV9oYXNfb25saW5lX21lbShuaWQpKQorCWNoYXIgYnVmWzE2XTsKKworCWlmIChub2RlX2hhc19vbmxpbmVfbWVtKG5pZCkgJiYgbm9kZV9yZW1hcF9zdGFydF92YWRkcltuaWRdKQogCQlOT0RFX0RBVEEobmlkKSA9IChwZ19kYXRhX3QgKilub2RlX3JlbWFwX3N0YXJ0X3ZhZGRyW25pZF07CiAJZWxzZSB7Ci0JCU5PREVfREFUQShuaWQpID0gKHBnX2RhdGFfdCAqKShwZm5fdG9fa2FkZHIobWluX2xvd19wZm4pKTsKLQkJbWluX2xvd19wZm4gKz0gUEZOX1VQKHNpemVvZihwZ19kYXRhX3QpKTsKKwkJdW5zaWduZWQgbG9uZyBwZ2RhdF9waHlzOworCQlwZ2RhdF9waHlzID0gZmluZF9lODIwX2FyZWEobWluX2xvd19wZm48PFBBR0VfU0hJRlQsCisJCQkJIG1heF9wZm5fbWFwcGVkPDxQQUdFX1NISUZULAorCQkJCSBzaXplb2YocGdfZGF0YV90KSwKKwkJCQkgUEFHRV9TSVpFKTsKKwkJTk9ERV9EQVRBKG5pZCkgPSAocGdfZGF0YV90ICopKHBmbl90b19rYWRkcihwZ2RhdF9waHlzPj5QQUdFX1NISUZUKSk7CisJCW1lbXNldChidWYsIDAsIHNpemVvZihidWYpKTsKKwkJc3ByaW50ZihidWYsICJOT0RFX0RBVEEgJWQiLCAgbmlkKTsKKwkJcmVzZXJ2ZV9lYXJseShwZ2RhdF9waHlzLCBwZ2RhdF9waHlzICsgc2l6ZW9mKHBnX2RhdGFfdCksIGJ1Zik7CiAJfQorCXByaW50ayhLRVJOX0RFQlVHICJhbGxvY2F0ZV9wZ2RhdDogbm9kZSAlZCBOT0RFX0RBVEEgJTA4bHhcbiIsCisJCW5pZCwgKHVuc2lnbmVkIGxvbmcpTk9ERV9EQVRBKG5pZCkpOwogfQogCi0jaWZkZWYgQ09ORklHX0RJU0NPTlRJR01FTQogLyoKLSAqIEluIHRoZSBkaXNjb250aWcgbWVtb3J5IG1vZGVsLCBhIHBvcnRpb24gb2YgdGhlIGtlcm5lbCB2aXJ0dWFsIGFyZWEgKEtWQSkKLSAqIGlzIHJlc2VydmVkIGFuZCBwb3J0aW9ucyBvZiBub2RlcyBhcmUgbWFwcGVkIHVzaW5nIGl0LiBUaGlzIGlzIHRvIGFsbG93Ci0gKiBub2RlLWxvY2FsIG1lbW9yeSB0byBiZSBhbGxvY2F0ZWQgZm9yIHN0cnVjdHVyZXMgdGhhdCB3b3VsZCBub3JtYWxseSByZXF1aXJlCi0gKiBaT05FX05PUk1BTC4gVGhlIG1lbW9yeSBpcyBhbGxvY2F0ZWQgd2l0aCBhbGxvY19yZW1hcCgpIGFuZCBjYWxsZXJzCi0gKiBzaG91bGQgYmUgcHJlcGFyZWQgdG8gYWxsb2NhdGUgZnJvbSB0aGUgYm9vdG1lbSBhbGxvY2F0b3IgaW5zdGVhZC4gVGhpcyBLVkEKLSAqIG1lY2hhbmlzbSBpcyBpbmNvbXBhdGlibGUgd2l0aCBTUEFSU0VNRU0gYXMgaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlCi0gKiBsYXlvdXQgb2YgbWVtb3J5IHRoYXQgYXJlIGJyb2tlbiBpZiBhbGxvY19yZW1hcCgpIHN1Y2NlZWRzIGZvciBzb21lIG9mIHRoZQotICogbWFwIGFuZCBmYWlscyBmb3Igb3RoZXJzCisgKiBJbiB0aGUgRElTQ09OVElHTUVNIGFuZCBTUEFSU0VNRU0gbWVtb3J5IG1vZGVsLCBhIHBvcnRpb24gb2YgdGhlIGtlcm5lbAorICogdmlydHVhbCBhZGRyZXNzIHNwYWNlIChLVkEpIGlzIHJlc2VydmVkIGFuZCBwb3J0aW9ucyBvZiBub2RlcyBhcmUgbWFwcGVkCisgKiB1c2luZyBpdC4gVGhpcyBpcyB0byBhbGxvdyBub2RlLWxvY2FsIG1lbW9yeSB0byBiZSBhbGxvY2F0ZWQgZm9yCisgKiBzdHJ1Y3R1cmVzIHRoYXQgd291bGQgbm9ybWFsbHkgcmVxdWlyZSBaT05FX05PUk1BTC4gVGhlIG1lbW9yeSBpcworICogYWxsb2NhdGVkIHdpdGggYWxsb2NfcmVtYXAoKSBhbmQgY2FsbGVycyBzaG91bGQgYmUgcHJlcGFyZWQgdG8gYWxsb2NhdGUKKyAqIGZyb20gdGhlIGJvb3RtZW0gYWxsb2NhdG9yIGluc3RlYWQuCiAgKi8KIHN0YXRpYyB1bnNpZ25lZCBsb25nIG5vZGVfcmVtYXBfc3RhcnRfcGZuW01BWF9OVU1OT0RFU107CiBzdGF0aWMgdm9pZCAqbm9kZV9yZW1hcF9lbmRfdmFkZHJbTUFYX05VTU5PREVTXTsKQEAgLTE5NSwxNSArMjAzLDE5IEBACiAJcmV0dXJuIGFsbG9jYXRpb247CiB9CiAKLXZvaWQgX19pbml0IHJlbWFwX251bWFfa3ZhKHZvaWQpCitzdGF0aWMgdm9pZCBfX2luaXQgcmVtYXBfbnVtYV9rdmEodm9pZCkKIHsKIAl2b2lkICp2YWRkcjsKIAl1bnNpZ25lZCBsb25nIHBmbjsKIAlpbnQgbm9kZTsKIAogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5vZGUpIHsKKwkJcHJpbnRrKEtFUk5fREVCVUcgInJlbWFwX251bWFfa3ZhOiBub2RlICVkXG4iLCBub2RlKTsKIAkJZm9yIChwZm49MDsgcGZuIDwgbm9kZV9yZW1hcF9zaXplW25vZGVdOyBwZm4gKz0gUFRSU19QRVJfUFRFKSB7CiAJCQl2YWRkciA9IG5vZGVfcmVtYXBfc3RhcnRfdmFkZHJbbm9kZV0rKHBmbjw8UEFHRV9TSElGVCk7CisJCQlwcmludGsoS0VSTl9ERUJVRyAicmVtYXBfbnVtYV9rdmE6ICUwOGx4IHRvIHBmbiAlMDhseFxuIiwKKwkJCQkodW5zaWduZWQgbG9uZyl2YWRkciwKKwkJCQlub2RlX3JlbWFwX3N0YXJ0X3Bmbltub2RlXSArIHBmbik7CiAJCQlzZXRfcG1kX3BmbigodWxvbmcpIHZhZGRyLCAKIAkJCQlub2RlX3JlbWFwX3N0YXJ0X3Bmbltub2RlXSArIHBmbiwgCiAJCQkJUEFHRV9LRVJORUxfTEFSR0UpOwpAQCAtMjE1LDE3ICsyMjcsMjEgQEAKIHsKIAlpbnQgbmlkOwogCXVuc2lnbmVkIGxvbmcgc2l6ZSwgcmVzZXJ2ZV9wYWdlcyA9IDA7Ci0JdW5zaWduZWQgbG9uZyBwZm47CiAKIAlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpIHsKLQkJdW5zaWduZWQgb2xkX2VuZF9wZm4gPSBub2RlX2VuZF9wZm5bbmlkXTsKKwkJdTY0IG5vZGVfa3ZhX3RhcmdldDsKKwkJdTY0IG5vZGVfa3ZhX2ZpbmFsOwogCiAJCS8qCiAJCSAqIFRoZSBhY3BpL3NyYXQgbm9kZSBpbmZvIGNhbiBzaG93IGhvdC1hZGQgbWVtcm95IHpvbmVzCiAJCSAqIHdoZXJlIG1lbW9yeSBjb3VsZCBiZSBhZGRlZCBidXQgbm90IGN1cnJlbnRseSBwcmVzZW50LgogCQkgKi8KKwkJcHJpbnRrKEtFUk5fREVCVUcgIm5vZGUgJWQgcGZuOiBbJWx4IC0gJWx4XVxuIiwKKwkJCW5pZCwgbm9kZV9zdGFydF9wZm5bbmlkXSwgbm9kZV9lbmRfcGZuW25pZF0pOwogCQlpZiAobm9kZV9zdGFydF9wZm5bbmlkXSA+IG1heF9wZm4pCiAJCQljb250aW51ZTsKKwkJaWYgKCFub2RlX2VuZF9wZm5bbmlkXSkKKwkJCWNvbnRpbnVlOwogCQlpZiAobm9kZV9lbmRfcGZuW25pZF0gPiBtYXhfcGZuKQogCQkJbm9kZV9lbmRfcGZuW25pZF0gPSBtYXhfcGZuOwogCkBAIC0yMzcsNDEgKzI1Myw0OCBAQAogCQkvKiBub3cgdGhlIHJvdW5kdXAgaXMgY29ycmVjdCwgY29udmVydCB0byBQQUdFX1NJWkUgcGFnZXMgKi8KIAkJc2l6ZSA9IHNpemUgKiBQVFJTX1BFUl9QVEU7CiAKLQkJLyoKLQkJICogVmFsaWRhdGUgdGhlIHJlZ2lvbiB3ZSBhcmUgYWxsb2NhdGluZyBvbmx5IGNvbnRhaW5zIHZhbGlkCi0JCSAqIHBhZ2VzLgotCQkgKi8KLQkJZm9yIChwZm4gPSBub2RlX2VuZF9wZm5bbmlkXSAtIHNpemU7Ci0JCSAgICAgcGZuIDwgbm9kZV9lbmRfcGZuW25pZF07IHBmbisrKQotCQkJaWYgKCFwYWdlX2lzX3JhbShwZm4pKQotCQkJCWJyZWFrOworCQlub2RlX2t2YV90YXJnZXQgPSByb3VuZF9kb3duKG5vZGVfZW5kX3BmbltuaWRdIC0gc2l6ZSwKKwkJCQkJCSBQVFJTX1BFUl9QVEUpOworCQlub2RlX2t2YV90YXJnZXQgPDw9IFBBR0VfU0hJRlQ7CisJCWRvIHsKKwkJCW5vZGVfa3ZhX2ZpbmFsID0gZmluZF9lODIwX2FyZWEobm9kZV9rdmFfdGFyZ2V0LAorCQkJCQkoKHU2NClub2RlX2VuZF9wZm5bbmlkXSk8PFBBR0VfU0hJRlQsCisJCQkJCQkoKHU2NClzaXplKTw8UEFHRV9TSElGVCwKKwkJCQkJCUxBUkdFX1BBR0VfQllURVMpOworCQkJbm9kZV9rdmFfdGFyZ2V0IC09IExBUkdFX1BBR0VfQllURVM7CisJCX0gd2hpbGUgKG5vZGVfa3ZhX2ZpbmFsID09IC0xVUxMICYmCisJCQkgKG5vZGVfa3ZhX3RhcmdldD4+UEFHRV9TSElGVCkgPiAobm9kZV9zdGFydF9wZm5bbmlkXSkpOwogCi0JCWlmIChwZm4gIT0gbm9kZV9lbmRfcGZuW25pZF0pCi0JCQlzaXplID0gMDsKKwkJaWYgKG5vZGVfa3ZhX2ZpbmFsID09IC0xVUxMKQorCQkJcGFuaWMoIkNhbiBub3QgZ2V0IGt2YSByYW1cbiIpOwogCi0JCXByaW50aygiUmVzZXJ2aW5nICVsZCBwYWdlcyBvZiBLVkEgZm9yIGxtZW1fbWFwIG9mIG5vZGUgJWRcbiIsCi0JCQkJc2l6ZSwgbmlkKTsKIAkJbm9kZV9yZW1hcF9zaXplW25pZF0gPSBzaXplOwogCQlub2RlX3JlbWFwX29mZnNldFtuaWRdID0gcmVzZXJ2ZV9wYWdlczsKIAkJcmVzZXJ2ZV9wYWdlcyArPSBzaXplOwotCQlwcmludGsoIlNocmlua2luZyBub2RlICVkIGZyb20gJWxkIHBhZ2VzIHRvICVsZCBwYWdlc1xuIiwKLQkJCW5pZCwgbm9kZV9lbmRfcGZuW25pZF0sIG5vZGVfZW5kX3BmbltuaWRdIC0gc2l6ZSk7CisJCXByaW50ayhLRVJOX0RFQlVHICJSZXNlcnZpbmcgJWxkIHBhZ2VzIG9mIEtWQSBmb3IgbG1lbV9tYXAgb2YiCisJCQkJICAiIG5vZGUgJWQgYXQgJWxseFxuIiwKKwkJCQlzaXplLCBuaWQsIG5vZGVfa3ZhX2ZpbmFsPj5QQUdFX1NISUZUKTsKIAotCQlpZiAobm9kZV9lbmRfcGZuW25pZF0gJiAoUFRSU19QRVJfUFRFLTEpKSB7Ci0JCQkvKgotCQkJICogQWxpZ24gbm9kZV9lbmRfcGZuW10gYW5kIG5vZGVfcmVtYXBfc3RhcnRfcGZuW10gdG8KLQkJCSAqIHBtZCBib3VuZGFyeS4gcmVtYXBfbnVtYV9rdmEgd2lsbCBiYXJmIG90aGVyd2lzZS4KLQkJCSAqLwotCQkJcHJpbnRrKCJTaHJpbmtpbmcgbm9kZSAlZCBmdXJ0aGVyIGJ5ICVsZCBwYWdlcyBmb3IgcHJvcGVyIGFsaWdubWVudFxuIiwKLQkJCQluaWQsIG5vZGVfZW5kX3BmbltuaWRdICYgKFBUUlNfUEVSX1BURS0xKSk7Ci0JCQlzaXplICs9ICBub2RlX2VuZF9wZm5bbmlkXSAmIChQVFJTX1BFUl9QVEUtMSk7Ci0JCX0KKwkJLyoKKwkJICogIHByZXZlbnQga3ZhIGFkZHJlc3MgYmVsb3cgbWF4X2xvd19wZm4gd2FudCBpdCBvbiBzeXN0ZW0KKwkJICogIHdpdGggbGVzcyBtZW1vcnkgbGF0ZXIuCisJCSAqICBsYXlvdXQgd2lsbCBiZTogS1ZBIGFkZHJlc3MgLCBLVkEgUkFNCisJCSAqCisJCSAqICB3ZSBhcmUgc3VwcG9zZWQgdG8gb25seSByZWNvcmQgdGhlIG9uZSBsZXNzIHRoZW4gbWF4X2xvd19wZm4KKwkJICogIGJ1dCB3ZSBjb3VsZCBoYXZlIHNvbWUgaG9sZSBpbiBoaWdoIG1lbW9yeSwgYW5kIGl0IHdpbGwgb25seQorCQkgKiAgY2hlY2sgcGFnZV9pc19yYW0ocGZuKSAmJiAhcGFnZV9pc19yZXNlcnZlZF9lYXJseShwZm4pIHRvIGRlY2lkZQorCQkgKiAgdG8gdXNlIGl0IGFzIGZyZWUuCisJCSAqICBTbyByZXNlcnZlX2Vhcmx5IGhlcmUsIGhvcGUgd2UgZG9uJ3QgcnVuIG91dCBvZiB0aGF0IGFycmF5CisJCSAqLworCQlyZXNlcnZlX2Vhcmx5KG5vZGVfa3ZhX2ZpbmFsLAorCQkJICAgICAgbm9kZV9rdmFfZmluYWwrKCgodTY0KXNpemUpPDxQQUdFX1NISUZUKSwKKwkJCSAgICAgICJLVkEgUkFNIik7CiAKLQkJbm9kZV9lbmRfcGZuW25pZF0gLT0gc2l6ZTsKLQkJbm9kZV9yZW1hcF9zdGFydF9wZm5bbmlkXSA9IG5vZGVfZW5kX3BmbltuaWRdOwotCQlzaHJpbmtfYWN0aXZlX3JhbmdlKG5pZCwgb2xkX2VuZF9wZm4sIG5vZGVfZW5kX3BmbltuaWRdKTsKKwkJbm9kZV9yZW1hcF9zdGFydF9wZm5bbmlkXSA9IG5vZGVfa3ZhX2ZpbmFsPj5QQUdFX1NISUZUOworCQlyZW1vdmVfYWN0aXZlX3JhbmdlKG5pZCwgbm9kZV9yZW1hcF9zdGFydF9wZm5bbmlkXSwKKwkJCQkJIG5vZGVfcmVtYXBfc3RhcnRfcGZuW25pZF0gKyBzaXplKTsKIAl9Ci0JcHJpbnRrKCJSZXNlcnZpbmcgdG90YWwgb2YgJWxkIHBhZ2VzIGZvciBudW1hIEtWQSByZW1hcFxuIiwKKwlwcmludGsoS0VSTl9JTkZPICJSZXNlcnZpbmcgdG90YWwgb2YgJWx4IHBhZ2VzIGZvciBudW1hIEtWQSByZW1hcFxuIiwKIAkJCXJlc2VydmVfcGFnZXMpOwogCXJldHVybiByZXNlcnZlX3BhZ2VzOwogfQpAQCAtMjg1LDM3ICszMDgsMTYgQEAKIAlub2RlX3JlbWFwX2FsbG9jX3ZhZGRyW25pZF0gPSBub2RlX3JlbWFwX3N0YXJ0X3ZhZGRyW25pZF0gKwogCQlBTElHTihzaXplb2YocGdfZGF0YV90KSwgUEFHRV9TSVpFKTsKIAotCXByaW50ayAoIm5vZGUgJWQgd2lsbCByZW1hcCB0byB2YWRkciAlMDhseCAtICUwOGx4XG4iLCBuaWQsCisJcHJpbnRrKEtFUk5fREVCVUcgIm5vZGUgJWQgd2lsbCByZW1hcCB0byB2YWRkciAlMDhseCAtICUwOGx4XG4iLCBuaWQsCiAJCSh1bG9uZykgbm9kZV9yZW1hcF9zdGFydF92YWRkcltuaWRdLAotCQkodWxvbmcpIHBmbl90b19rYWRkcihoaWdoc3RhcnRfcGZuCi0JCSAgICsgbm9kZV9yZW1hcF9vZmZzZXRbbmlkXSArIG5vZGVfcmVtYXBfc2l6ZVtuaWRdKSk7Ci19Ci0jZWxzZQotdm9pZCAqYWxsb2NfcmVtYXAoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzaXplKQotewotCXJldHVybiBOVUxMOworCQkodWxvbmcpIG5vZGVfcmVtYXBfZW5kX3ZhZGRyW25pZF0pOwogfQogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBjYWxjdWxhdGVfbnVtYV9yZW1hcF9wYWdlcyh2b2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBpbml0X3JlbWFwX2FsbG9jYXRvcihpbnQgbmlkKQotewotfQotCi12b2lkIF9faW5pdCByZW1hcF9udW1hX2t2YSh2b2lkKQotewotfQotI2VuZGlmIC8qIENPTkZJR19ESVNDT05USUdNRU0gKi8KLQotZXh0ZXJuIHZvaWQgc2V0dXBfYm9vdG1lbV9hbGxvY2F0b3Iodm9pZCk7Ci11bnNpZ25lZCBsb25nIF9faW5pdCBzZXR1cF9tZW1vcnkodm9pZCkKK3ZvaWQgX19pbml0IGluaXRtZW1faW5pdCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgZW5kX3BmbikKIHsKIAlpbnQgbmlkOwotCXVuc2lnbmVkIGxvbmcgc3lzdGVtX3N0YXJ0X3Bmbiwgc3lzdGVtX21heF9sb3dfcGZuOwotCXVuc2lnbmVkIGxvbmcgd2FzdGVkX3BhZ2VzOworCWxvbmcga3ZhX3RhcmdldF9wZm47CiAKIAkvKgogCSAqIFdoZW4gbWFwcGluZyBhIE5VTUEgbWFjaGluZSB3ZSBhbGxvY2F0ZSB0aGUgbm9kZV9tZW1fbWFwIGFycmF5cwpAQCAtMzI0LDEwOSArMzI2LDc3IEBACiAJICogdGhpcyBzcGFjZSBhbmQgdXNlIGl0IHRvIGFkanVzdCB0aGUgYm91bmRhcnkgYmV0d2VlbiBaT05FX05PUk1BTAogCSAqIGFuZCBaT05FX0hJR0hNRU0uCiAJICovCisKIAlnZXRfbWVtY2ZnX251bWEoKTsKIAotCWt2YV9wYWdlcyA9IGNhbGN1bGF0ZV9udW1hX3JlbWFwX3BhZ2VzKCk7CisJa3ZhX3BhZ2VzID0gcm91bmRfdXAoY2FsY3VsYXRlX251bWFfcmVtYXBfcGFnZXMoKSwgUFRSU19QRVJfUFRFKTsKIAotCS8qIHBhcnRpYWxseSB1c2VkIHBhZ2VzIGFyZSBub3QgdXNhYmxlIC0gdGh1cyByb3VuZCB1cHdhcmRzICovCi0Jc3lzdGVtX3N0YXJ0X3BmbiA9IG1pbl9sb3dfcGZuID0gUEZOX1VQKGluaXRfcGdfdGFibGVzX2VuZCk7CisJa3ZhX3RhcmdldF9wZm4gPSByb3VuZF9kb3duKG1heF9sb3dfcGZuIC0ga3ZhX3BhZ2VzLCBQVFJTX1BFUl9QVEUpOworCWRvIHsKKwkJa3ZhX3N0YXJ0X3BmbiA9IGZpbmRfZTgyMF9hcmVhKGt2YV90YXJnZXRfcGZuPDxQQUdFX1NISUZULAorCQkJCQltYXhfbG93X3Bmbjw8UEFHRV9TSElGVCwKKwkJCQkJa3ZhX3BhZ2VzPDxQQUdFX1NISUZULAorCQkJCQlQVFJTX1BFUl9QVEU8PFBBR0VfU0hJRlQpID4+IFBBR0VfU0hJRlQ7CisJCWt2YV90YXJnZXRfcGZuIC09IFBUUlNfUEVSX1BURTsKKwl9IHdoaWxlIChrdmFfc3RhcnRfcGZuID09IC0xVUwgJiYga3ZhX3RhcmdldF9wZm4gPiBtaW5fbG93X3Bmbik7CiAKLQlrdmFfc3RhcnRfcGZuID0gZmluZF9tYXhfbG93X3BmbigpIC0ga3ZhX3BhZ2VzOworCWlmIChrdmFfc3RhcnRfcGZuID09IC0xVUwpCisJCXBhbmljKCJDYW4gbm90IGdldCBrdmEgc3BhY2VcbiIpOwogCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECi0JLyogTnVtYSBrdmEgYXJlYSBpcyBiZWxvdyB0aGUgaW5pdHJkICovCi0JaWYgKGluaXRyZF9zdGFydCkKLQkJa3ZhX3N0YXJ0X3BmbiA9IFBGTl9ET1dOKGluaXRyZF9zdGFydCAtIFBBR0VfT0ZGU0VUKQotCQkJLSBrdmFfcGFnZXM7Ci0jZW5kaWYKLQotCS8qCi0JICogV2Ugd2FzdGUgcGFnZXMgcGFzdCBhdCB0aGUgZW5kIG9mIHRoZSBLVkEgZm9yIG5vIGdvb2QgcmVhc29uIG90aGVyCi0JICogdGhhbiBob3cgaXQgaXMgbG9jYXRlZC4gVGhpcyBpcyBiYWQuCi0JICovCi0Jd2FzdGVkX3BhZ2VzID0ga3ZhX3N0YXJ0X3BmbiAmIChQVFJTX1BFUl9QVEUtMSk7Ci0Ja3ZhX3N0YXJ0X3BmbiAtPSB3YXN0ZWRfcGFnZXM7Ci0Ja3ZhX3BhZ2VzICs9IHdhc3RlZF9wYWdlczsKLQotCXN5c3RlbV9tYXhfbG93X3BmbiA9IG1heF9sb3dfcGZuID0gZmluZF9tYXhfbG93X3BmbigpOwotCXByaW50aygia3ZhX3N0YXJ0X3BmbiB+ICVsZCBmaW5kX21heF9sb3dfcGZuKCkgfiAlbGRcbiIsCisJcHJpbnRrKEtFUk5fSU5GTyAia3ZhX3N0YXJ0X3BmbiB+ICVseCBtYXhfbG93X3BmbiB+ICVseFxuIiwKIAkJa3ZhX3N0YXJ0X3BmbiwgbWF4X2xvd19wZm4pOwotCXByaW50aygibWF4X3BmbiA9ICVsZFxuIiwgbWF4X3Bmbik7CisJcHJpbnRrKEtFUk5fSU5GTyAibWF4X3BmbiA9ICVseFxuIiwgbWF4X3Bmbik7CisKKwkvKiBhdm9pZCBjbGFzaCB3aXRoIGluaXRyZCAqLworCXJlc2VydmVfZWFybHkoa3ZhX3N0YXJ0X3Bmbjw8UEFHRV9TSElGVCwKKwkJICAgICAgKGt2YV9zdGFydF9wZm4gKyBrdmFfcGFnZXMpPDxQQUdFX1NISUZULAorCQkgICAgICJLVkEgUEciKTsKICNpZmRlZiBDT05GSUdfSElHSE1FTQogCWhpZ2hzdGFydF9wZm4gPSBoaWdoZW5kX3BmbiA9IG1heF9wZm47Ci0JaWYgKG1heF9wZm4gPiBzeXN0ZW1fbWF4X2xvd19wZm4pCi0JCWhpZ2hzdGFydF9wZm4gPSBzeXN0ZW1fbWF4X2xvd19wZm47CisJaWYgKG1heF9wZm4gPiBtYXhfbG93X3BmbikKKwkJaGlnaHN0YXJ0X3BmbiA9IG1heF9sb3dfcGZuOwogCXByaW50ayhLRVJOX05PVElDRSAiJWxkTUIgSElHSE1FTSBhdmFpbGFibGUuXG4iLAogCSAgICAgICBwYWdlc190b19tYihoaWdoZW5kX3BmbiAtIGhpZ2hzdGFydF9wZm4pKTsKIAludW1fcGh5c3BhZ2VzID0gaGlnaGVuZF9wZm47CiAJaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKGhpZ2hzdGFydF9wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7CiAjZWxzZQotCW51bV9waHlzcGFnZXMgPSBzeXN0ZW1fbWF4X2xvd19wZm47Ci0JaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKHN5c3RlbV9tYXhfbG93X3BmbiAqIFBBR0VfU0laRSAtIDEpICsgMTsKKwludW1fcGh5c3BhZ2VzID0gbWF4X2xvd19wZm47CisJaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKG1heF9sb3dfcGZuICogUEFHRV9TSVpFIC0gMSkgKyAxOwogI2VuZGlmCiAJcHJpbnRrKEtFUk5fTk9USUNFICIlbGRNQiBMT1dNRU0gYXZhaWxhYmxlLlxuIiwKLQkJCXBhZ2VzX3RvX21iKHN5c3RlbV9tYXhfbG93X3BmbikpOwotCXByaW50aygibWluX2xvd19wZm4gPSAlbGQsIG1heF9sb3dfcGZuID0gJWxkLCBoaWdoc3RhcnRfcGZuID0gJWxkXG4iLCAKLQkJCW1pbl9sb3dfcGZuLCBtYXhfbG93X3BmbiwgaGlnaHN0YXJ0X3Bmbik7CisJCQlwYWdlc190b19tYihtYXhfbG93X3BmbikpOworCXByaW50ayhLRVJOX0RFQlVHICJtYXhfbG93X3BmbiA9ICVseCwgaGlnaHN0YXJ0X3BmbiA9ICVseFxuIiwKKwkJCW1heF9sb3dfcGZuLCBoaWdoc3RhcnRfcGZuKTsKIAotCXByaW50aygiTG93IG1lbW9yeSBlbmRzIGF0IHZhZGRyICUwOGx4XG4iLAorCXByaW50ayhLRVJOX0RFQlVHICJMb3cgbWVtb3J5IGVuZHMgYXQgdmFkZHIgJTA4bHhcbiIsCiAJCQkodWxvbmcpIHBmbl90b19rYWRkcihtYXhfbG93X3BmbikpOwogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgewogCQlpbml0X3JlbWFwX2FsbG9jYXRvcihuaWQpOwogCiAJCWFsbG9jYXRlX3BnZGF0KG5pZCk7CiAJfQotCXByaW50aygiSGlnaCBtZW1vcnkgc3RhcnRzIGF0IHZhZGRyICUwOGx4XG4iLAorCXJlbWFwX251bWFfa3ZhKCk7CisKKwlwcmludGsoS0VSTl9ERUJVRyAiSGlnaCBtZW1vcnkgc3RhcnRzIGF0IHZhZGRyICUwOGx4XG4iLAogCQkJKHVsb25nKSBwZm5fdG9fa2FkZHIoaGlnaHN0YXJ0X3BmbikpOwogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkKIAkJcHJvcGFnYXRlX2U4MjBfbWFwX25vZGUobmlkKTsKIAotCW1lbXNldChOT0RFX0RBVEEoMCksIDAsIHNpemVvZihzdHJ1Y3QgcGdsaXN0X2RhdGEpKTsKKwlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpCisJCW1lbXNldChOT0RFX0RBVEEobmlkKSwgMCwgc2l6ZW9mKHN0cnVjdCBwZ2xpc3RfZGF0YSkpOworCiAJTk9ERV9EQVRBKDApLT5iZGF0YSA9ICZub2RlMF9iZGF0YTsKIAlzZXR1cF9ib290bWVtX2FsbG9jYXRvcigpOwotCXJldHVybiBtYXhfbG93X3BmbjsKIH0KIAotdm9pZCBfX2luaXQgbnVtYV9rdmFfcmVzZXJ2ZSh2b2lkKQotewotCWlmIChrdmFfcGFnZXMpCi0JCXJlc2VydmVfYm9vdG1lbShQRk5fUEhZUyhrdmFfc3RhcnRfcGZuKSwgUEZOX1BIWVMoa3ZhX3BhZ2VzKSwKLQkJCQlCT09UTUVNX0RFRkFVTFQpOwotfQotCi12b2lkIF9faW5pdCB6b25lX3NpemVzX2luaXQodm9pZCkKLXsKLQlpbnQgbmlkOwotCXVuc2lnbmVkIGxvbmcgbWF4X3pvbmVfcGZuc1tNQVhfTlJfWk9ORVNdOwotCW1lbXNldChtYXhfem9uZV9wZm5zLCAwLCBzaXplb2YobWF4X3pvbmVfcGZucykpOwotCW1heF96b25lX3BmbnNbWk9ORV9ETUFdID0KLQkJdmlydF90b19waHlzKChjaGFyICopTUFYX0RNQV9BRERSRVNTKSA+PiBQQUdFX1NISUZUOwotCW1heF96b25lX3BmbnNbWk9ORV9OT1JNQUxdID0gbWF4X2xvd19wZm47Ci0jaWZkZWYgQ09ORklHX0hJR0hNRU0KLQltYXhfem9uZV9wZm5zW1pPTkVfSElHSE1FTV0gPSBoaWdoZW5kX3BmbjsKLSNlbmRpZgotCi0JLyogSWYgU1JBVCBoYXMgbm90IHJlZ2lzdGVyZWQgbWVtb3J5LCByZWdpc3RlciBpdCBub3cgKi8KLQlpZiAoZmluZF9tYXhfcGZuX3dpdGhfYWN0aXZlX3JlZ2lvbnMoKSA9PSAwKSB7Ci0JCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgewotCQkJaWYgKG5vZGVfaGFzX29ubGluZV9tZW0obmlkKSkKLQkJCQlhZGRfYWN0aXZlX3JhbmdlKG5pZCwgbm9kZV9zdGFydF9wZm5bbmlkXSwKLQkJCQkJCQlub2RlX2VuZF9wZm5bbmlkXSk7Ci0JCX0KLQl9Ci0KLQlmcmVlX2FyZWFfaW5pdF9ub2RlcyhtYXhfem9uZV9wZm5zKTsKLQlyZXR1cm47Ci19Ci0KLXZvaWQgX19pbml0IHNldF9oaWdobWVtX3BhZ2VzX2luaXQoaW50IGJhZF9wcHJvKSAKK3ZvaWQgX19pbml0IHNldF9oaWdobWVtX3BhZ2VzX2luaXQodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfSElHSE1FTQogCXN0cnVjdCB6b25lICp6b25lOwotCXN0cnVjdCBwYWdlICpwYWdlOworCWludCBuaWQ7CiAKIAlmb3JfZWFjaF96b25lKHpvbmUpIHsKLQkJdW5zaWduZWQgbG9uZyBub2RlX3Bmbiwgem9uZV9zdGFydF9wZm4sIHpvbmVfZW5kX3BmbjsKKwkJdW5zaWduZWQgbG9uZyB6b25lX3N0YXJ0X3Bmbiwgem9uZV9lbmRfcGZuOwogCiAJCWlmICghaXNfaGlnaG1lbSh6b25lKSkKIAkJCWNvbnRpbnVlOwpAQCAtNDM0LDE2ICs0MDQsMTIgQEAKIAkJem9uZV9zdGFydF9wZm4gPSB6b25lLT56b25lX3N0YXJ0X3BmbjsKIAkJem9uZV9lbmRfcGZuID0gem9uZV9zdGFydF9wZm4gKyB6b25lLT5zcGFubmVkX3BhZ2VzOwogCi0JCXByaW50aygiSW5pdGlhbGl6aW5nICVzIGZvciBub2RlICVkICglMDhseDolMDhseClcbiIsCi0JCQkJem9uZS0+bmFtZSwgem9uZV90b19uaWQoem9uZSksCi0JCQkJem9uZV9zdGFydF9wZm4sIHpvbmVfZW5kX3Bmbik7CisJCW5pZCA9IHpvbmVfdG9fbmlkKHpvbmUpOworCQlwcmludGsoS0VSTl9JTkZPICJJbml0aWFsaXppbmcgJXMgZm9yIG5vZGUgJWQgKCUwOGx4OiUwOGx4KVxuIiwKKwkJCQl6b25lLT5uYW1lLCBuaWQsIHpvbmVfc3RhcnRfcGZuLCB6b25lX2VuZF9wZm4pOwogCi0JCWZvciAobm9kZV9wZm4gPSB6b25lX3N0YXJ0X3Bmbjsgbm9kZV9wZm4gPCB6b25lX2VuZF9wZm47IG5vZGVfcGZuKyspIHsKLQkJCWlmICghcGZuX3ZhbGlkKG5vZGVfcGZuKSkKLQkJCQljb250aW51ZTsKLQkJCXBhZ2UgPSBwZm5fdG9fcGFnZShub2RlX3Bmbik7Ci0JCQlhZGRfb25lX2hpZ2hwYWdlX2luaXQocGFnZSwgbm9kZV9wZm4sIGJhZF9wcHJvKTsKLQkJfQorCQlhZGRfaGlnaHBhZ2VzX3dpdGhfYWN0aXZlX3JlZ2lvbnMobmlkLCB6b25lX3N0YXJ0X3BmbiwKKwkJCQkgem9uZV9lbmRfcGZuKTsKIAl9CiAJdG90YWxyYW1fcGFnZXMgKz0gdG90YWxoaWdoX3BhZ2VzOwogI2VuZGlmCkBAIC00NzYsMyArNDQyLDQgQEAKIAogRVhQT1JUX1NZTUJPTF9HUEwobWVtb3J5X2FkZF9waHlzYWRkcl90b19uaWQpOwogI2VuZGlmCisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2R1bXBfcGFnZXRhYmxlcy5jIGIvYXJjaC94ODYvbW0vZHVtcF9wYWdldGFibGVzLmMKaW5kZXggMmMyNGJlYS4uMGJiMGNhZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vZHVtcF9wYWdldGFibGVzLmMKKysrIGIvYXJjaC94ODYvbW0vZHVtcF9wYWdldGFibGVzLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAl7IDAsICJVc2VyIFNwYWNlIiB9LAogI2lmZGVmIENPTkZJR19YODZfNjQKIAl7IDB4ODAwMDAwMDAwMDAwMDAwMFVMLCAiS2VybmVsIFNwYWNlIiB9LAotCXsgMHhmZmZmODEwMDAwMDAwMDAwVUwsICJMb3cgS2VybmVsIE1hcHBpbmciIH0sCisJeyBQQUdFX09GRlNFVCwJCSJMb3cgS2VybmVsIE1hcHBpbmciIH0sCiAJeyBWTUFMTE9DX1NUQVJULCAgICAgICAgInZtYWxsb2MoKSBBcmVhIiB9LAogCXsgVk1FTU1BUF9TVEFSVCwgICAgICAgICJWbWVtbWFwIiB9LAogCXsgX19TVEFSVF9LRVJORUxfbWFwLCAgICJIaWdoIEtlcm5lbCBNYXBwaW5nIiB9LApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vZmF1bHQuYyBiL2FyY2gveDg2L21tL2ZhdWx0LmMKaW5kZXggOGJjYjZmNC4uNDU1ZjNmZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vZmF1bHQuYworKysgYi9hcmNoL3g4Ni9tbS9mYXVsdC5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tbWlvdHJhY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tbWFuLmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KQEAgLTQ5LDE3ICs1MCwyMyBAQAogI2RlZmluZSBQRl9SU1ZECQkoMTw8MykKICNkZWZpbmUgUEZfSU5TVFIJKDE8PDQpCiAKK3N0YXRpYyBpbmxpbmUgaW50IGttbWlvX2ZhdWx0KHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisjaWZkZWYgQ09ORklHX01NSU9UUkFDRV9IT09LUworCWlmICh1bmxpa2VseShpc19rbW1pb19hY3RpdmUoKSkpCisJCWlmIChrbW1pb19oYW5kbGVyKHJlZ3MsIGFkZHIpID09IDEpCisJCQlyZXR1cm4gLTE7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGlubGluZSBpbnQgbm90aWZ5X3BhZ2VfZmF1bHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CiAjaWZkZWYgQ09ORklHX0tQUk9CRVMKIAlpbnQgcmV0ID0gMDsKIAogCS8qIGtwcm9iZV9ydW5uaW5nKCkgbmVlZHMgc21wX3Byb2Nlc3Nvcl9pZCgpICovCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgogCWlmICghdXNlcl9tb2RlX3ZtKHJlZ3MpKSB7Ci0jZWxzZQotCWlmICghdXNlcl9tb2RlKHJlZ3MpKSB7Ci0jZW5kaWYKIAkJcHJlZW1wdF9kaXNhYmxlKCk7CiAJCWlmIChrcHJvYmVfcnVubmluZygpICYmIGtwcm9iZV9mYXVsdF9oYW5kbGVyKHJlZ3MsIDE0KSkKIAkJCXJldCA9IDE7CkBAIC0zOTYsMTEgKzQwMyw3IEBACiAJCXByaW50ayhLRVJOX0NPTlQgIk5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSIpOwogCWVsc2UKIAkJcHJpbnRrKEtFUk5fQ09OVCAicGFnaW5nIHJlcXVlc3QiKTsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0JcHJpbnRrKEtFUk5fQ09OVCAiIGF0ICUwOGx4XG4iLCBhZGRyZXNzKTsKLSNlbHNlCi0JcHJpbnRrKEtFUk5fQ09OVCAiIGF0ICUwMTZseFxuIiwgYWRkcmVzcyk7Ci0jZW5kaWYKKwlwcmludGsoS0VSTl9DT05UICIgYXQgJXBcbiIsICh2b2lkICopIGFkZHJlc3MpOwogCXByaW50ayhLRVJOX0FMRVJUICJJUDoiKTsKIAlwcmludGtfYWRkcmVzcyhyZWdzLT5pcCwgMSk7CiAJZHVtcF9wYWdldGFibGUoYWRkcmVzcyk7CkBAIC02MDYsNiArNjA5LDggQEAKIAogCWlmIChub3RpZnlfcGFnZV9mYXVsdChyZWdzKSkKIAkJcmV0dXJuOworCWlmICh1bmxpa2VseShrbW1pb19mYXVsdChyZWdzLCBhZGRyZXNzKSkpCisJCXJldHVybjsKIAogCS8qCiAJICogV2UgZmF1bHQtaW4ga2VybmVsLXNwYWNlIHZpcnR1YWwgbWVtb3J5IG9uLWRlbWFuZC4gVGhlCkBAIC04MDAsMTQgKzgwNSwxMCBAQAogCQlpZiAoc2hvd191bmhhbmRsZWRfc2lnbmFscyAmJiB1bmhhbmRsZWRfc2lnbmFsKHRzaywgU0lHU0VHVikgJiYKIAkJICAgIHByaW50a19yYXRlbGltaXQoKSkgewogCQkJcHJpbnRrKAotI2lmZGVmIENPTkZJR19YODZfMzIKLQkJCSIlcyVzWyVkXTogc2VnZmF1bHQgYXQgJWx4IGlwICUwOGx4IHNwICUwOGx4IGVycm9yICVseCIsCi0jZWxzZQotCQkJIiVzJXNbJWRdOiBzZWdmYXVsdCBhdCAlbHggaXAgJWx4IHNwICVseCBlcnJvciAlbHgiLAotI2VuZGlmCisJCQkiJXMlc1slZF06IHNlZ2ZhdWx0IGF0ICVseCBpcCAlcCBzcCAlcCBlcnJvciAlbHgiLAogCQkJdGFza19waWRfbnIodHNrKSA+IDEgPyBLRVJOX0lORk8gOiBLRVJOX0VNRVJHLAotCQkJdHNrLT5jb21tLCB0YXNrX3BpZF9ucih0c2spLCBhZGRyZXNzLCByZWdzLT5pcCwKLQkJCXJlZ3MtPnNwLCBlcnJvcl9jb2RlKTsKKwkJCXRzay0+Y29tbSwgdGFza19waWRfbnIodHNrKSwgYWRkcmVzcywKKwkJCSh2b2lkICopIHJlZ3MtPmlwLCAodm9pZCAqKSByZWdzLT5zcCwgZXJyb3JfY29kZSk7CiAJCQlwcmludF92bWFfYWRkcigiIGluICIsIHJlZ3MtPmlwKTsKIAkJCXByaW50aygiXG4iKTsKIAkJfQpAQCAtOTE1LDE0ICs5MTYsNyBAQAogdm9pZCB2bWFsbG9jX3N5bmNfYWxsKHZvaWQpCiB7CiAjaWZkZWYgQ09ORklHX1g4Nl8zMgotCS8qCi0JICogTm90ZSB0aGF0IHJhY2VzIGluIHRoZSB1cGRhdGVzIG9mIGluc3luYyBhbmQgc3RhcnQgYXJlbid0Ci0JICogcHJvYmxlbWF0aWM6IGluc3luYyBjYW4gb25seSBnZXQgc2V0IGJpdHMgYWRkZWQsIGFuZCB1cGRhdGVzIHRvCi0JICogc3RhcnQgYXJlIG9ubHkgaW1wcm92aW5nIHBlcmZvcm1hbmNlICh3aXRob3V0IGFmZmVjdGluZyBjb3JyZWN0bmVzcwotCSAqIGlmIHVuZG9uZSkuCi0JICovCi0Jc3RhdGljIERFQ0xBUkVfQklUTUFQKGluc3luYywgUFRSU19QRVJfUEdEKTsKLQlzdGF0aWMgdW5zaWduZWQgbG9uZyBzdGFydCA9IFRBU0tfU0laRTsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gVk1BTExPQ19TVEFSVCAmIFBHRElSX01BU0s7CiAJdW5zaWduZWQgbG9uZyBhZGRyZXNzOwogCiAJaWYgKFNIQVJFRF9LRVJORUxfUE1EKQpAQCAtOTMwLDU2ICs5MjQsMzggQEAKIAogCUJVSUxEX0JVR19PTihUQVNLX1NJWkUgJiB+UEdESVJfTUFTSyk7CiAJZm9yIChhZGRyZXNzID0gc3RhcnQ7IGFkZHJlc3MgPj0gVEFTS19TSVpFOyBhZGRyZXNzICs9IFBHRElSX1NJWkUpIHsKLQkJaWYgKCF0ZXN0X2JpdChwZ2RfaW5kZXgoYWRkcmVzcyksIGluc3luYykpIHsKLQkJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKwkJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZwZ2RfbG9jaywgZmxhZ3MpOwotCQkJbGlzdF9mb3JfZWFjaF9lbnRyeShwYWdlLCAmcGdkX2xpc3QsIGxydSkgewotCQkJCWlmICghdm1hbGxvY19zeW5jX29uZShwYWdlX2FkZHJlc3MocGFnZSksCi0JCQkJCQkgICAgICBhZGRyZXNzKSkKLQkJCQkJYnJlYWs7Ci0JCQl9Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RfbG9jaywgZmxhZ3MpOwotCQkJaWYgKCFwYWdlKQotCQkJCXNldF9iaXQocGdkX2luZGV4KGFkZHJlc3MpLCBpbnN5bmMpOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShwYWdlLCAmcGdkX2xpc3QsIGxydSkgeworCQkJaWYgKCF2bWFsbG9jX3N5bmNfb25lKHBhZ2VfYWRkcmVzcyhwYWdlKSwKKwkJCQkJICAgICAgYWRkcmVzcykpCisJCQkJYnJlYWs7CiAJCX0KLQkJaWYgKGFkZHJlc3MgPT0gc3RhcnQgJiYgdGVzdF9iaXQocGdkX2luZGV4KGFkZHJlc3MpLCBpbnN5bmMpKQotCQkJc3RhcnQgPSBhZGRyZXNzICsgUEdESVJfU0laRTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAl9CiAjZWxzZSAvKiBDT05GSUdfWDg2XzY0ICovCi0JLyoKLQkgKiBOb3RlIHRoYXQgcmFjZXMgaW4gdGhlIHVwZGF0ZXMgb2YgaW5zeW5jIGFuZCBzdGFydCBhcmVuJ3QKLQkgKiBwcm9ibGVtYXRpYzogaW5zeW5jIGNhbiBvbmx5IGdldCBzZXQgYml0cyBhZGRlZCwgYW5kIHVwZGF0ZXMgdG8KLQkgKiBzdGFydCBhcmUgb25seSBpbXByb3ZpbmcgcGVyZm9ybWFuY2UgKHdpdGhvdXQgYWZmZWN0aW5nIGNvcnJlY3RuZXNzCi0JICogaWYgdW5kb25lKS4KLQkgKi8KLQlzdGF0aWMgREVDTEFSRV9CSVRNQVAoaW5zeW5jLCBQVFJTX1BFUl9QR0QpOwotCXN0YXRpYyB1bnNpZ25lZCBsb25nIHN0YXJ0ID0gVk1BTExPQ19TVEFSVCAmIFBHRElSX01BU0s7CisJdW5zaWduZWQgbG9uZyBzdGFydCA9IFZNQUxMT0NfU1RBUlQgJiBQR0RJUl9NQVNLOwogCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsKIAogCWZvciAoYWRkcmVzcyA9IHN0YXJ0OyBhZGRyZXNzIDw9IFZNQUxMT0NfRU5EOyBhZGRyZXNzICs9IFBHRElSX1NJWkUpIHsKLQkJaWYgKCF0ZXN0X2JpdChwZ2RfaW5kZXgoYWRkcmVzcyksIGluc3luYykpIHsKLQkJCWNvbnN0IHBnZF90ICpwZ2RfcmVmID0gcGdkX29mZnNldF9rKGFkZHJlc3MpOwotCQkJdW5zaWduZWQgbG9uZyBmbGFnczsKLQkJCXN0cnVjdCBwYWdlICpwYWdlOworCQljb25zdCBwZ2RfdCAqcGdkX3JlZiA9IHBnZF9vZmZzZXRfayhhZGRyZXNzKTsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKwkJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKLQkJCWlmIChwZ2Rfbm9uZSgqcGdkX3JlZikpCi0JCQkJY29udGludWU7Ci0JCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKLQkJCWxpc3RfZm9yX2VhY2hfZW50cnkocGFnZSwgJnBnZF9saXN0LCBscnUpIHsKLQkJCQlwZ2RfdCAqcGdkOwotCQkJCXBnZCA9IChwZ2RfdCAqKXBhZ2VfYWRkcmVzcyhwYWdlKSArIHBnZF9pbmRleChhZGRyZXNzKTsKLQkJCQlpZiAocGdkX25vbmUoKnBnZCkpCi0JCQkJCXNldF9wZ2QocGdkLCAqcGdkX3JlZik7Ci0JCQkJZWxzZQotCQkJCQlCVUdfT04ocGdkX3BhZ2VfdmFkZHIoKnBnZCkgIT0gcGdkX3BhZ2VfdmFkZHIoKnBnZF9yZWYpKTsKLQkJCX0KLQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZF9sb2NrLCBmbGFncyk7Ci0JCQlzZXRfYml0KHBnZF9pbmRleChhZGRyZXNzKSwgaW5zeW5jKTsKKwkJaWYgKHBnZF9ub25lKCpwZ2RfcmVmKSkKKwkJCWNvbnRpbnVlOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShwYWdlLCAmcGdkX2xpc3QsIGxydSkgeworCQkJcGdkX3QgKnBnZDsKKwkJCXBnZCA9IChwZ2RfdCAqKXBhZ2VfYWRkcmVzcyhwYWdlKSArIHBnZF9pbmRleChhZGRyZXNzKTsKKwkJCWlmIChwZ2Rfbm9uZSgqcGdkKSkKKwkJCQlzZXRfcGdkKHBnZCwgKnBnZF9yZWYpOworCQkJZWxzZQorCQkJCUJVR19PTihwZ2RfcGFnZV92YWRkcigqcGdkKSAhPSBwZ2RfcGFnZV92YWRkcigqcGdkX3JlZikpOwogCQl9Ci0JCWlmIChhZGRyZXNzID09IHN0YXJ0KQotCQkJc3RhcnQgPSBhZGRyZXNzICsgUEdESVJfU0laRTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAl9CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2luaXRfMzIuYyBiL2FyY2gveDg2L21tL2luaXRfMzIuYwppbmRleCBlYzMwZDEwLi45Njg5YTUxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9pbml0XzMyLmMKKysrIGIvYXJjaC94ODYvbW0vaW5pdF8zMi5jCkBAIC01MCw2ICs1MCw3IEBACiAKIHVuc2lnbmVkIGludCBfX1ZNQUxMT0NfUkVTRVJWRSA9IDEyOCA8PCAyMDsKIAordW5zaWduZWQgbG9uZyBtYXhfbG93X3Bmbl9tYXBwZWQ7CiB1bnNpZ25lZCBsb25nIG1heF9wZm5fbWFwcGVkOwogCiBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgbW11X2dhdGhlciwgbW11X2dhdGhlcnMpOwpAQCAtNTcsNiArNTgsMjcgQEAKIAogc3RhdGljIG5vaW5saW5lIGludCBkb190ZXN0X3dwX2JpdCh2b2lkKTsKIAorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXRkYXRhIHRhYmxlX3N0YXJ0Oworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0ZGF0YSB0YWJsZV9lbmQ7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX21lbWluaXRkYXRhIHRhYmxlX3RvcDsKKworc3RhdGljIGludCBfX2luaXRkYXRhIGFmdGVyX2luaXRfYm9vdG1lbTsKKworc3RhdGljIF9faW5pdCB2b2lkICphbGxvY19sb3dfcGFnZSh1bnNpZ25lZCBsb25nICpwaHlzKQoreworCXVuc2lnbmVkIGxvbmcgcGZuID0gdGFibGVfZW5kKys7CisJdm9pZCAqYWRyOworCisJaWYgKHBmbiA+PSB0YWJsZV90b3ApCisJCXBhbmljKCJhbGxvY19sb3dfcGFnZTogcmFuIG91dCBvZiBtZW1vcnkiKTsKKworCWFkciA9IF9fdmEocGZuICogUEFHRV9TSVpFKTsKKwltZW1zZXQoYWRyLCAwLCBQQUdFX1NJWkUpOworCSpwaHlzICA9IHBmbiAqIFBBR0VfU0laRTsKKwlyZXR1cm4gYWRyOworfQorCiAvKgogICogQ3JlYXRlcyBhIG1pZGRsZSBwYWdlIHRhYmxlIGFuZCBwdXRzIGEgcG9pbnRlciB0byBpdCBpbiB0aGUKICAqIGdpdmVuIGdsb2JhbCBkaXJlY3RvcnkgZW50cnkuIFRoaXMgb25seSByZXR1cm5zIHRoZSBnZCBlbnRyeQpAQCAtNjgsOSArOTAsMTIgQEAKIAlwbWRfdCAqcG1kX3RhYmxlOwogCiAjaWZkZWYgQ09ORklHX1g4Nl9QQUUKKwl1bnNpZ25lZCBsb25nIHBoeXM7CiAJaWYgKCEocGdkX3ZhbCgqcGdkKSAmIF9QQUdFX1BSRVNFTlQpKSB7Ci0JCXBtZF90YWJsZSA9IChwbWRfdCAqKSBhbGxvY19ib290bWVtX2xvd19wYWdlcyhQQUdFX1NJWkUpOwotCisJCWlmIChhZnRlcl9pbml0X2Jvb3RtZW0pCisJCQlwbWRfdGFibGUgPSAocG1kX3QgKilhbGxvY19ib290bWVtX2xvd19wYWdlcyhQQUdFX1NJWkUpOworCQllbHNlCisJCQlwbWRfdGFibGUgPSAocG1kX3QgKilhbGxvY19sb3dfcGFnZSgmcGh5cyk7CiAJCXBhcmF2aXJ0X2FsbG9jX3BtZCgmaW5pdF9tbSwgX19wYShwbWRfdGFibGUpID4+IFBBR0VfU0hJRlQpOwogCQlzZXRfcGdkKHBnZCwgX19wZ2QoX19wYShwbWRfdGFibGUpIHwgX1BBR0VfUFJFU0VOVCkpOwogCQlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgMCk7CkBAIC05MiwxMiArMTE3LDE2IEBACiAJaWYgKCEocG1kX3ZhbCgqcG1kKSAmIF9QQUdFX1BSRVNFTlQpKSB7CiAJCXB0ZV90ICpwYWdlX3RhYmxlID0gTlVMTDsKIAorCQlpZiAoYWZ0ZXJfaW5pdF9ib290bWVtKSB7CiAjaWZkZWYgQ09ORklHX0RFQlVHX1BBR0VBTExPQwotCQlwYWdlX3RhYmxlID0gKHB0ZV90ICopIGFsbG9jX2Jvb3RtZW1fcGFnZXMoUEFHRV9TSVpFKTsKKwkJCXBhZ2VfdGFibGUgPSAocHRlX3QgKikgYWxsb2NfYm9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOwogI2VuZGlmCi0JCWlmICghcGFnZV90YWJsZSkgewotCQkJcGFnZV90YWJsZSA9CisJCQlpZiAoIXBhZ2VfdGFibGUpCisJCQkJcGFnZV90YWJsZSA9CiAJCQkJKHB0ZV90ICopYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKKwkJfSBlbHNlIHsKKwkJCXVuc2lnbmVkIGxvbmcgcGh5czsKKwkJCXBhZ2VfdGFibGUgPSAocHRlX3QgKilhbGxvY19sb3dfcGFnZSgmcGh5cyk7CiAJCX0KIAogCQlwYXJhdmlydF9hbGxvY19wdGUoJmluaXRfbW0sIF9fcGEocGFnZV90YWJsZSkgPj4gUEFHRV9TSElGVCk7CkBAIC0xNTUsMzggKzE4NCw0NCBAQAogICogb2YgbWF4X2xvd19wZm4gcGFnZXMsIGJ5IGNyZWF0aW5nIHBhZ2UgdGFibGVzIHN0YXJ0aW5nIGZyb20gYWRkcmVzcwogICogUEFHRV9PRkZTRVQ6CiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBrZXJuZWxfcGh5c2ljYWxfbWFwcGluZ19pbml0KHBnZF90ICpwZ2RfYmFzZSkKK3N0YXRpYyB2b2lkIF9faW5pdCBrZXJuZWxfcGh5c2ljYWxfbWFwcGluZ19pbml0KHBnZF90ICpwZ2RfYmFzZSwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkJdW5zaWduZWQgbG9uZyBlbmRfcGZuLAorCQkJCQkJaW50IHVzZV9wc2UpCiB7CiAJaW50IHBnZF9pZHgsIHBtZF9pZHgsIHB0ZV9vZnM7CiAJdW5zaWduZWQgbG9uZyBwZm47CiAJcGdkX3QgKnBnZDsKIAlwbWRfdCAqcG1kOwogCXB0ZV90ICpwdGU7CisJdW5zaWduZWQgcGFnZXNfMm0gPSAwLCBwYWdlc180ayA9IDA7CiAKLQlwZ2RfaWR4ID0gcGdkX2luZGV4KFBBR0VfT0ZGU0VUKTsKKwlpZiAoIWNwdV9oYXNfcHNlKQorCQl1c2VfcHNlID0gMDsKKworCXBmbiA9IHN0YXJ0X3BmbjsKKwlwZ2RfaWR4ID0gcGdkX2luZGV4KChwZm48PFBBR0VfU0hJRlQpICsgUEFHRV9PRkZTRVQpOwogCXBnZCA9IHBnZF9iYXNlICsgcGdkX2lkeDsKLQlwZm4gPSAwOwotCiAJZm9yICg7IHBnZF9pZHggPCBQVFJTX1BFUl9QR0Q7IHBnZCsrLCBwZ2RfaWR4KyspIHsKIAkJcG1kID0gb25lX21kX3RhYmxlX2luaXQocGdkKTsKLQkJaWYgKHBmbiA+PSBtYXhfbG93X3BmbikKLQkJCWNvbnRpbnVlOwogCi0JCWZvciAocG1kX2lkeCA9IDA7Ci0JCSAgICAgcG1kX2lkeCA8IFBUUlNfUEVSX1BNRCAmJiBwZm4gPCBtYXhfbG93X3BmbjsKKwkJaWYgKHBmbiA+PSBlbmRfcGZuKQorCQkJY29udGludWU7CisjaWZkZWYgQ09ORklHX1g4Nl9QQUUKKwkJcG1kX2lkeCA9IHBtZF9pbmRleCgocGZuPDxQQUdFX1NISUZUKSArIFBBR0VfT0ZGU0VUKTsKKwkJcG1kICs9IHBtZF9pZHg7CisjZWxzZQorCQlwbWRfaWR4ID0gMDsKKyNlbmRpZgorCQlmb3IgKDsgcG1kX2lkeCA8IFBUUlNfUEVSX1BNRCAmJiBwZm4gPCBlbmRfcGZuOwogCQkgICAgIHBtZCsrLCBwbWRfaWR4KyspIHsKIAkJCXVuc2lnbmVkIGludCBhZGRyID0gcGZuICogUEFHRV9TSVpFICsgUEFHRV9PRkZTRVQ7CiAKIAkJCS8qCiAJCQkgKiBNYXAgd2l0aCBiaWcgcGFnZXMgaWYgcG9zc2libGUsIG90aGVyd2lzZQogCQkJICogY3JlYXRlIG5vcm1hbCBwYWdlIHRhYmxlczoKLQkJCSAqCi0JCQkgKiBEb24ndCB1c2UgYSBsYXJnZSBwYWdlIGZvciB0aGUgZmlyc3QgMi80TUIgb2YgbWVtb3J5Ci0JCQkgKiBiZWNhdXNlIHRoZXJlIGFyZSBvZnRlbiBmaXhlZCBzaXplIE1UUlJzIGluIHRoZXJlCi0JCQkgKiBhbmQgb3ZlcmxhcHBpbmcgTVRSUnMgaW50byBsYXJnZSBwYWdlcyBjYW4gY2F1c2UKLQkJCSAqIHNsb3dkb3ducy4KIAkJCSAqLwotCQkJaWYgKGNwdV9oYXNfcHNlICYmICEocGdkX2lkeCA9PSAwICYmIHBtZF9pZHggPT0gMCkpIHsKKwkJCWlmICh1c2VfcHNlKSB7CiAJCQkJdW5zaWduZWQgaW50IGFkZHIyOwogCQkJCXBncHJvdF90IHByb3QgPSBQQUdFX0tFUk5FTF9MQVJHRTsKIApAQCAtMTk3LDM0ICsyMzIsMzAgQEAKIAkJCQkgICAgaXNfa2VybmVsX3RleHQoYWRkcjIpKQogCQkJCQlwcm90ID0gUEFHRV9LRVJORUxfTEFSR0VfRVhFQzsKIAorCQkJCXBhZ2VzXzJtKys7CiAJCQkJc2V0X3BtZChwbWQsIHBmbl9wbWQocGZuLCBwcm90KSk7CiAKIAkJCQlwZm4gKz0gUFRSU19QRVJfUFRFOwotCQkJCW1heF9wZm5fbWFwcGVkID0gcGZuOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJcHRlID0gb25lX3BhZ2VfdGFibGVfaW5pdChwbWQpOwogCi0JCQlmb3IgKHB0ZV9vZnMgPSAwOwotCQkJICAgICBwdGVfb2ZzIDwgUFRSU19QRVJfUFRFICYmIHBmbiA8IG1heF9sb3dfcGZuOworCQkJcHRlX29mcyA9IHB0ZV9pbmRleCgocGZuPDxQQUdFX1NISUZUKSArIFBBR0VfT0ZGU0VUKTsKKwkJCXB0ZSArPSBwdGVfb2ZzOworCQkJZm9yICg7IHB0ZV9vZnMgPCBQVFJTX1BFUl9QVEUgJiYgcGZuIDwgZW5kX3BmbjsKIAkJCSAgICAgcHRlKyssIHBmbisrLCBwdGVfb2ZzKyssIGFkZHIgKz0gUEFHRV9TSVpFKSB7CiAJCQkJcGdwcm90X3QgcHJvdCA9IFBBR0VfS0VSTkVMOwogCiAJCQkJaWYgKGlzX2tlcm5lbF90ZXh0KGFkZHIpKQogCQkJCQlwcm90ID0gUEFHRV9LRVJORUxfRVhFQzsKIAorCQkJCXBhZ2VzXzRrKys7CiAJCQkJc2V0X3B0ZShwdGUsIHBmbl9wdGUocGZuLCBwcm90KSk7CiAJCQl9Ci0JCQltYXhfcGZuX21hcHBlZCA9IHBmbjsKIAkJfQogCX0KLX0KLQotc3RhdGljIGlubGluZSBpbnQgcGFnZV9raWxsc19wcHJvKHVuc2lnbmVkIGxvbmcgcGFnZW5yKQotewotCWlmIChwYWdlbnIgPj0gMHg3MDAwMCAmJiBwYWdlbnIgPD0gMHg3MDAzRikKLQkJcmV0dXJuIDE7Ci0JcmV0dXJuIDA7CisJdXBkYXRlX3BhZ2VfY291bnQoUEdfTEVWRUxfMk0sIHBhZ2VzXzJtKTsKKwl1cGRhdGVfcGFnZV9jb3VudChQR19MRVZFTF80SywgcGFnZXNfNGspOwogfQogCiAvKgpAQCAtMjg3LDI5ICszMTgsNjIgQEAKIAlwa21hcF9wYWdlX3RhYmxlID0gcHRlOwogfQogCi12b2lkIF9faW5pdCBhZGRfb25lX2hpZ2hwYWdlX2luaXQoc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBwZm4sIGludCBiYWRfcHBybykKK3N0YXRpYyB2b2lkIF9faW5pdCBhZGRfb25lX2hpZ2hwYWdlX2luaXQoc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBwZm4pCiB7Ci0JaWYgKHBhZ2VfaXNfcmFtKHBmbikgJiYgIShiYWRfcHBybyAmJiBwYWdlX2tpbGxzX3Bwcm8ocGZuKSkpIHsKLQkJQ2xlYXJQYWdlUmVzZXJ2ZWQocGFnZSk7Ci0JCWluaXRfcGFnZV9jb3VudChwYWdlKTsKLQkJX19mcmVlX3BhZ2UocGFnZSk7Ci0JCXRvdGFsaGlnaF9wYWdlcysrOwotCX0gZWxzZQotCQlTZXRQYWdlUmVzZXJ2ZWQocGFnZSk7CisJQ2xlYXJQYWdlUmVzZXJ2ZWQocGFnZSk7CisJaW5pdF9wYWdlX2NvdW50KHBhZ2UpOworCV9fZnJlZV9wYWdlKHBhZ2UpOworCXRvdGFsaGlnaF9wYWdlcysrOworfQorCitzdHJ1Y3QgYWRkX2hpZ2hwYWdlc19kYXRhIHsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbjsKKwl1bnNpZ25lZCBsb25nIGVuZF9wZm47Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBhZGRfaGlnaHBhZ2VzX3dvcmtfZm4odW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJCSB1bnNpZ25lZCBsb25nIGVuZF9wZm4sIHZvaWQgKmRhdGF4KQoreworCWludCBub2RlX3BmbjsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwl1bnNpZ25lZCBsb25nIGZpbmFsX3N0YXJ0X3BmbiwgZmluYWxfZW5kX3BmbjsKKwlzdHJ1Y3QgYWRkX2hpZ2hwYWdlc19kYXRhICpkYXRhOworCisJZGF0YSA9IChzdHJ1Y3QgYWRkX2hpZ2hwYWdlc19kYXRhICopZGF0YXg7CisKKwlmaW5hbF9zdGFydF9wZm4gPSBtYXgoc3RhcnRfcGZuLCBkYXRhLT5zdGFydF9wZm4pOworCWZpbmFsX2VuZF9wZm4gPSBtaW4oZW5kX3BmbiwgZGF0YS0+ZW5kX3Bmbik7CisJaWYgKGZpbmFsX3N0YXJ0X3BmbiA+PSBmaW5hbF9lbmRfcGZuKQorCQlyZXR1cm4gMDsKKworCWZvciAobm9kZV9wZm4gPSBmaW5hbF9zdGFydF9wZm47IG5vZGVfcGZuIDwgZmluYWxfZW5kX3BmbjsKKwkgICAgIG5vZGVfcGZuKyspIHsKKwkJaWYgKCFwZm5fdmFsaWQobm9kZV9wZm4pKQorCQkJY29udGludWU7CisJCXBhZ2UgPSBwZm5fdG9fcGFnZShub2RlX3Bmbik7CisJCWFkZF9vbmVfaGlnaHBhZ2VfaW5pdChwYWdlLCBub2RlX3Bmbik7CisJfQorCisJcmV0dXJuIDA7CisKK30KKwordm9pZCBfX2luaXQgYWRkX2hpZ2hwYWdlc193aXRoX2FjdGl2ZV9yZWdpb25zKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkgICAgICB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCit7CisJc3RydWN0IGFkZF9oaWdocGFnZXNfZGF0YSBkYXRhOworCisJZGF0YS5zdGFydF9wZm4gPSBzdGFydF9wZm47CisJZGF0YS5lbmRfcGZuID0gZW5kX3BmbjsKKworCXdvcmtfd2l0aF9hY3RpdmVfcmVnaW9ucyhuaWQsIGFkZF9oaWdocGFnZXNfd29ya19mbiwgJmRhdGEpOwogfQogCiAjaWZuZGVmIENPTkZJR19OVU1BCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0X2hpZ2htZW1fcGFnZXNfaW5pdChpbnQgYmFkX3Bwcm8pCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0X2hpZ2htZW1fcGFnZXNfaW5pdCh2b2lkKQogewotCWludCBwZm47CisJYWRkX2hpZ2hwYWdlc193aXRoX2FjdGl2ZV9yZWdpb25zKDAsIGhpZ2hzdGFydF9wZm4sIGhpZ2hlbmRfcGZuKTsKIAotCWZvciAocGZuID0gaGlnaHN0YXJ0X3BmbjsgcGZuIDwgaGlnaGVuZF9wZm47IHBmbisrKSB7Ci0JCS8qCi0JCSAqIEhvbGVzIHVuZGVyIHNwYXJzZW1lbSBtaWdodCBub3QgaGF2ZSBubyBtZW1fbWFwW106Ci0JCSAqLwotCQlpZiAocGZuX3ZhbGlkKHBmbikpCi0JCQlhZGRfb25lX2hpZ2hwYWdlX2luaXQocGZuX3RvX3BhZ2UocGZuKSwgcGZuLCBiYWRfcHBybyk7Ci0JfQogCXRvdGFscmFtX3BhZ2VzICs9IHRvdGFsaGlnaF9wYWdlczsKIH0KICNlbmRpZiAvKiAhQ09ORklHX05VTUEgKi8KQEAgLTMxNywxNCArMzgxLDkgQEAKICNlbHNlCiAjIGRlZmluZSBrbWFwX2luaXQoKQkJCQlkbyB7IH0gd2hpbGUgKDApCiAjIGRlZmluZSBwZXJtYW5lbnRfa21hcHNfaW5pdChwZ2RfYmFzZSkJCWRvIHsgfSB3aGlsZSAoMCkKLSMgZGVmaW5lIHNldF9oaWdobWVtX3BhZ2VzX2luaXQoYmFkX3Bwcm8pCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIHNldF9oaWdobWVtX3BhZ2VzX2luaXQoKQlkbyB7IH0gd2hpbGUgKDApCiAjZW5kaWYgLyogQ09ORklHX0hJR0hNRU0gKi8KIAotcHRldmFsX3QgX19QQUdFX0tFUk5FTCA9IF9QQUdFX0tFUk5FTDsKLUVYUE9SVF9TWU1CT0woX19QQUdFX0tFUk5FTCk7Ci0KLXB0ZXZhbF90IF9fUEFHRV9LRVJORUxfRVhFQyA9IF9QQUdFX0tFUk5FTF9FWEVDOwotCiB2b2lkIF9faW5pdCBuYXRpdmVfcGFnZXRhYmxlX3NldHVwX3N0YXJ0KHBnZF90ICpiYXNlKQogewogCXVuc2lnbmVkIGxvbmcgcGZuLCB2YTsKQEAgLTM4MCwyNyArNDM5LDEwIEBACiAgKiBiZSBwYXJ0aWFsbHkgcG9wdWxhdGVkLCBhbmQgc28gaXQgYXZvaWRzIHN0b21waW5nIG9uIGFueSBleGlzdGluZwogICogbWFwcGluZ3MuCiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBwYWdldGFibGVfaW5pdCh2b2lkKQorc3RhdGljIHZvaWQgX19pbml0IGVhcmx5X2lvcmVtYXBfcGFnZV90YWJsZV9yYW5nZV9pbml0KHBnZF90ICpwZ2RfYmFzZSkKIHsKLQlwZ2RfdCAqcGdkX2Jhc2UgPSBzd2FwcGVyX3BnX2RpcjsKIAl1bnNpZ25lZCBsb25nIHZhZGRyLCBlbmQ7CiAKLQlwYXJhdmlydF9wYWdldGFibGVfc2V0dXBfc3RhcnQocGdkX2Jhc2UpOwotCi0JLyogRW5hYmxlIFBTRSBpZiBhdmFpbGFibGUgKi8KLQlpZiAoY3B1X2hhc19wc2UpCi0JCXNldF9pbl9jcjQoWDg2X0NSNF9QU0UpOwotCi0JLyogRW5hYmxlIFBHRSBpZiBhdmFpbGFibGUgKi8KLQlpZiAoY3B1X2hhc19wZ2UpIHsKLQkJc2V0X2luX2NyNChYODZfQ1I0X1BHRSk7Ci0JCV9fUEFHRV9LRVJORUwgfD0gX1BBR0VfR0xPQkFMOwotCQlfX1BBR0VfS0VSTkVMX0VYRUMgfD0gX1BBR0VfR0xPQkFMOwotCX0KLQotCWtlcm5lbF9waHlzaWNhbF9tYXBwaW5nX2luaXQocGdkX2Jhc2UpOwotCXJlbWFwX251bWFfa3ZhKCk7Ci0KIAkvKgogCSAqIEZpeGVkIG1hcHBpbmdzLCBvbmx5IHRoZSBwYWdlIHRhYmxlIHN0cnVjdHVyZSBoYXMgdG8gYmUKIAkgKiBjcmVhdGVkIC0gbWFwcGluZ3Mgd2lsbCBiZSBzZXQgYnkgc2V0X2ZpeG1hcCgpOgpAQCAtNDEwLDYgKzQ1MiwxMyBAQAogCWVuZCA9IChGSVhBRERSX1RPUCArIFBNRF9TSVpFIC0gMSkgJiBQTURfTUFTSzsKIAlwYWdlX3RhYmxlX3JhbmdlX2luaXQodmFkZHIsIGVuZCwgcGdkX2Jhc2UpOwogCWVhcmx5X2lvcmVtYXBfcmVzZXQoKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHBhZ2V0YWJsZV9pbml0KHZvaWQpCit7CisJcGdkX3QgKnBnZF9iYXNlID0gc3dhcHBlcl9wZ19kaXI7CisKKwlwYXJhdmlydF9wYWdldGFibGVfc2V0dXBfc3RhcnQocGdkX2Jhc2UpOwogCiAJcGVybWFuZW50X2ttYXBzX2luaXQocGdkX2Jhc2UpOwogCkBAIC00NTYsNyArNTA1LDcgQEAKIAogaW50IG54X2VuYWJsZWQ7CiAKLXB0ZXZhbF90IF9fc3VwcG9ydGVkX3B0ZV9tYXNrIF9fcmVhZF9tb3N0bHkgPSB+X1BBR0VfTlg7CitwdGV2YWxfdCBfX3N1cHBvcnRlZF9wdGVfbWFzayBfX3JlYWRfbW9zdGx5ID0gfihfUEFHRV9OWCB8IF9QQUdFX0dMT0JBTCk7CiBFWFBPUlRfU1lNQk9MX0dQTChfX3N1cHBvcnRlZF9wdGVfbWFzayk7CiAKICNpZmRlZiBDT05GSUdfWDg2X1BBRQpAQCAtNTA5LDYgKzU1OCwyOTYgQEAKIH0KICNlbmRpZgogCisvKiB1c2VyLWRlZmluZWQgaGlnaG1lbSBzaXplICovCitzdGF0aWMgdW5zaWduZWQgaW50IGhpZ2htZW1fcGFnZXMgPSAtMTsKKworLyoKKyAqIGhpZ2htZW09c2l6ZSBmb3JjZXMgaGlnaG1lbSB0byBiZSBleGFjdGx5ICdzaXplJyBieXRlcy4KKyAqIFRoaXMgd29ya3MgZXZlbiBvbiBib3hlcyB0aGF0IGhhdmUgbm8gaGlnaG1lbSBvdGhlcndpc2UuCisgKiBUaGlzIGFsc28gd29ya3MgdG8gcmVkdWNlIGhpZ2htZW0gc2l6ZSBvbiBiaWdnZXIgYm94ZXMuCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX2hpZ2htZW0oY2hhciAqYXJnKQoreworCWlmICghYXJnKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWhpZ2htZW1fcGFnZXMgPSBtZW1wYXJzZShhcmcsICZhcmcpID4+IFBBR0VfU0hJRlQ7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgiaGlnaG1lbSIsIHBhcnNlX2hpZ2htZW0pOworCisvKgorICogRGV0ZXJtaW5lIGxvdyBhbmQgaGlnaCBtZW1vcnkgcmFuZ2VzOgorICovCit2b2lkIF9faW5pdCBmaW5kX2xvd19wZm5fcmFuZ2Uodm9pZCkKK3sKKwkvKiBpdCBjb3VsZCB1cGRhdGUgbWF4X3BmbiAqLworCisJLyogbWF4X2xvd19wZm4gaXMgMCwgd2UgYWxyZWFkeSBoYXZlIGVhcmx5X3JlcyBzdXBwb3J0ICovCisKKwltYXhfbG93X3BmbiA9IG1heF9wZm47CisJaWYgKG1heF9sb3dfcGZuID4gTUFYTUVNX1BGTikgeworCQlpZiAoaGlnaG1lbV9wYWdlcyA9PSAtMSkKKwkJCWhpZ2htZW1fcGFnZXMgPSBtYXhfcGZuIC0gTUFYTUVNX1BGTjsKKwkJaWYgKGhpZ2htZW1fcGFnZXMgKyBNQVhNRU1fUEZOIDwgbWF4X3BmbikKKwkJCW1heF9wZm4gPSBNQVhNRU1fUEZOICsgaGlnaG1lbV9wYWdlczsKKwkJaWYgKGhpZ2htZW1fcGFnZXMgKyBNQVhNRU1fUEZOID4gbWF4X3BmbikgeworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAib25seSAlbHVNQiBoaWdobWVtIHBhZ2VzICIKKwkJCQkiYXZhaWxhYmxlLCBpZ25vcmluZyBoaWdobWVtIHNpemUgb2YgJXVNQi5cbiIsCisJCQkJcGFnZXNfdG9fbWIobWF4X3BmbiAtIE1BWE1FTV9QRk4pLAorCQkJCXBhZ2VzX3RvX21iKGhpZ2htZW1fcGFnZXMpKTsKKwkJCWhpZ2htZW1fcGFnZXMgPSAwOworCQl9CisJCW1heF9sb3dfcGZuID0gTUFYTUVNX1BGTjsKKyNpZm5kZWYgQ09ORklHX0hJR0hNRU0KKwkJLyogTWF4aW11bSBtZW1vcnkgdXNhYmxlIGlzIHdoYXQgaXMgZGlyZWN0bHkgYWRkcmVzc2FibGUgKi8KKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiV2FybmluZyBvbmx5ICVsZE1CIHdpbGwgYmUgdXNlZC5cbiIsCisJCQkJCU1BWE1FTT4+MjApOworCQlpZiAobWF4X3BmbiA+IE1BWF9OT05QQUVfUEZOKQorCQkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJCSAiVXNlIGEgSElHSE1FTTY0RyBlbmFibGVkIGtlcm5lbC5cbiIpOworCQllbHNlCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJVc2UgYSBISUdITUVNIGVuYWJsZWQga2VybmVsLlxuIik7CisJCW1heF9wZm4gPSBNQVhNRU1fUEZOOworI2Vsc2UgLyogIUNPTkZJR19ISUdITUVNICovCisjaWZuZGVmIENPTkZJR19ISUdITUVNNjRHCisJCWlmIChtYXhfcGZuID4gTUFYX05PTlBBRV9QRk4pIHsKKwkJCW1heF9wZm4gPSBNQVhfTk9OUEFFX1BGTjsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgIldhcm5pbmcgb25seSA0R0Igd2lsbCBiZSB1c2VkLiIKKwkJCQkiVXNlIGEgSElHSE1FTTY0RyBlbmFibGVkIGtlcm5lbC5cbiIpOworCQl9CisjZW5kaWYgLyogIUNPTkZJR19ISUdITUVNNjRHICovCisjZW5kaWYgLyogIUNPTkZJR19ISUdITUVNICovCisJfSBlbHNlIHsKKwkJaWYgKGhpZ2htZW1fcGFnZXMgPT0gLTEpCisJCQloaWdobWVtX3BhZ2VzID0gMDsKKyNpZmRlZiBDT05GSUdfSElHSE1FTQorCQlpZiAoaGlnaG1lbV9wYWdlcyA+PSBtYXhfcGZuKSB7CisJCQlwcmludGsoS0VSTl9FUlIgImhpZ2htZW0gc2l6ZSBzcGVjaWZpZWQgKCV1TUIpIGlzICIKKwkJCQkiYmlnZ2VyIHRoYW4gcGFnZXMgYXZhaWxhYmxlICglbHVNQikhLlxuIiwKKwkJCQlwYWdlc190b19tYihoaWdobWVtX3BhZ2VzKSwKKwkJCQlwYWdlc190b19tYihtYXhfcGZuKSk7CisJCQloaWdobWVtX3BhZ2VzID0gMDsKKwkJfQorCQlpZiAoaGlnaG1lbV9wYWdlcykgeworCQkJaWYgKG1heF9sb3dfcGZuIC0gaGlnaG1lbV9wYWdlcyA8CisJCQkgICAgNjQqMTAyNCoxMDI0L1BBR0VfU0laRSl7CisJCQkJcHJpbnRrKEtFUk5fRVJSICJoaWdobWVtIHNpemUgJXVNQiByZXN1bHRzIGluICIKKwkJCQkic21hbGxlciB0aGFuIDY0TUIgbG93bWVtLCBpZ25vcmluZyBpdC5cbiIKKwkJCQkJLCBwYWdlc190b19tYihoaWdobWVtX3BhZ2VzKSk7CisJCQkJaGlnaG1lbV9wYWdlcyA9IDA7CisJCQl9CisJCQltYXhfbG93X3BmbiAtPSBoaWdobWVtX3BhZ2VzOworCQl9CisjZWxzZQorCQlpZiAoaGlnaG1lbV9wYWdlcykKKwkJCXByaW50ayhLRVJOX0VSUiAiaWdub3JpbmcgaGlnaG1lbSBzaXplIG9uIG5vbi1oaWdobWVtIgorCQkJCQkiIGtlcm5lbCFcbiIpOworI2VuZGlmCisJfQorfQorCisjaWZuZGVmIENPTkZJR19ORUVEX01VTFRJUExFX05PREVTCit2b2lkIF9faW5pdCBpbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJICB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCit7CisjaWZkZWYgQ09ORklHX0hJR0hNRU0KKwloaWdoc3RhcnRfcGZuID0gaGlnaGVuZF9wZm4gPSBtYXhfcGZuOworCWlmIChtYXhfcGZuID4gbWF4X2xvd19wZm4pCisJCWhpZ2hzdGFydF9wZm4gPSBtYXhfbG93X3BmbjsKKwltZW1vcnlfcHJlc2VudCgwLCAwLCBoaWdoZW5kX3Bmbik7CisJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCAwLCBoaWdoZW5kX3Bmbik7CisJcHJpbnRrKEtFUk5fTk9USUNFICIlbGRNQiBISUdITUVNIGF2YWlsYWJsZS5cbiIsCisJCXBhZ2VzX3RvX21iKGhpZ2hlbmRfcGZuIC0gaGlnaHN0YXJ0X3BmbikpOworCW51bV9waHlzcGFnZXMgPSBoaWdoZW5kX3BmbjsKKwloaWdoX21lbW9yeSA9ICh2b2lkICopIF9fdmEoaGlnaHN0YXJ0X3BmbiAqIFBBR0VfU0laRSAtIDEpICsgMTsKKyNlbHNlCisJbWVtb3J5X3ByZXNlbnQoMCwgMCwgbWF4X2xvd19wZm4pOworCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgbWF4X2xvd19wZm4pOworCW51bV9waHlzcGFnZXMgPSBtYXhfbG93X3BmbjsKKwloaWdoX21lbW9yeSA9ICh2b2lkICopIF9fdmEobWF4X2xvd19wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfRkxBVE1FTQorCW1heF9tYXBuciA9IG51bV9waHlzcGFnZXM7CisjZW5kaWYKKwlwcmludGsoS0VSTl9OT1RJQ0UgIiVsZE1CIExPV01FTSBhdmFpbGFibGUuXG4iLAorCQkJcGFnZXNfdG9fbWIobWF4X2xvd19wZm4pKTsKKworCXNldHVwX2Jvb3RtZW1fYWxsb2NhdG9yKCk7Cit9CisjZW5kaWYgLyogIUNPTkZJR19ORUVEX01VTFRJUExFX05PREVTICovCisKK3N0YXRpYyB2b2lkIF9faW5pdCB6b25lX3NpemVzX2luaXQodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIG1heF96b25lX3BmbnNbTUFYX05SX1pPTkVTXTsKKwltZW1zZXQobWF4X3pvbmVfcGZucywgMCwgc2l6ZW9mKG1heF96b25lX3BmbnMpKTsKKwltYXhfem9uZV9wZm5zW1pPTkVfRE1BXSA9CisJCXZpcnRfdG9fcGh5cygoY2hhciAqKU1BWF9ETUFfQUREUkVTUykgPj4gUEFHRV9TSElGVDsKKwltYXhfem9uZV9wZm5zW1pPTkVfTk9STUFMXSA9IG1heF9sb3dfcGZuOworI2lmZGVmIENPTkZJR19ISUdITUVNCisJbWF4X3pvbmVfcGZuc1taT05FX0hJR0hNRU1dID0gaGlnaGVuZF9wZm47CisjZW5kaWYKKworCWZyZWVfYXJlYV9pbml0X25vZGVzKG1heF96b25lX3BmbnMpOworfQorCit2b2lkIF9faW5pdCBzZXR1cF9ib290bWVtX2FsbG9jYXRvcih2b2lkKQoreworCWludCBpOworCXVuc2lnbmVkIGxvbmcgYm9vdG1hcF9zaXplLCBib290bWFwOworCS8qCisJICogSW5pdGlhbGl6ZSB0aGUgYm9vdC10aW1lIGFsbG9jYXRvciAod2l0aCBsb3cgbWVtb3J5IG9ubHkpOgorCSAqLworCWJvb3RtYXBfc2l6ZSA9IGJvb3RtZW1fYm9vdG1hcF9wYWdlcyhtYXhfbG93X3Bmbik8PFBBR0VfU0hJRlQ7CisJYm9vdG1hcCA9IGZpbmRfZTgyMF9hcmVhKG1pbl9sb3dfcGZuPDxQQUdFX1NISUZULAorCQkJCSBtYXhfcGZuX21hcHBlZDw8UEFHRV9TSElGVCwgYm9vdG1hcF9zaXplLAorCQkJCSBQQUdFX1NJWkUpOworCWlmIChib290bWFwID09IC0xTCkKKwkJcGFuaWMoIkNhbm5vdCBmaW5kIGJvb3RtZW0gbWFwIG9mIHNpemUgJWxkXG4iLCBib290bWFwX3NpemUpOworCXJlc2VydmVfZWFybHkoYm9vdG1hcCwgYm9vdG1hcCArIGJvb3RtYXBfc2l6ZSwgIkJPT1RNQVAiKTsKKworCS8qIGRvbid0IHRvdWNoIG1pbl9sb3dfcGZuICovCisJYm9vdG1hcF9zaXplID0gaW5pdF9ib290bWVtX25vZGUoTk9ERV9EQVRBKDApLCBib290bWFwID4+IFBBR0VfU0hJRlQsCisJCQkJCSBtaW5fbG93X3BmbiwgbWF4X2xvd19wZm4pOworCXByaW50ayhLRVJOX0lORk8gIiAgbWFwcGVkIGxvdyByYW06IDAgLSAlMDhseFxuIiwKKwkJIG1heF9wZm5fbWFwcGVkPDxQQUdFX1NISUZUKTsKKwlwcmludGsoS0VSTl9JTkZPICIgIGxvdyByYW06ICUwOGx4IC0gJTA4bHhcbiIsCisJCSBtaW5fbG93X3Bmbjw8UEFHRV9TSElGVCwgbWF4X2xvd19wZm48PFBBR0VfU0hJRlQpOworCXByaW50ayhLRVJOX0lORk8gIiAgYm9vdG1hcCAlMDhseCAtICUwOGx4XG4iLAorCQkgYm9vdG1hcCwgYm9vdG1hcCArIGJvb3RtYXBfc2l6ZSk7CisJZm9yX2VhY2hfb25saW5lX25vZGUoaSkKKwkJZnJlZV9ib290bWVtX3dpdGhfYWN0aXZlX3JlZ2lvbnMoaSwgbWF4X2xvd19wZm4pOworCWVhcmx5X3Jlc190b19ib290bWVtKDAsIG1heF9sb3dfcGZuPDxQQUdFX1NISUZUKTsKKworCWFmdGVyX2luaXRfYm9vdG1lbSA9IDE7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBmaW5kX2Vhcmx5X3RhYmxlX3NwYWNlKHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXVuc2lnbmVkIGxvbmcgcHVkcywgcG1kcywgcHRlcywgdGFibGVzLCBzdGFydDsKKworCXB1ZHMgPSAoZW5kICsgUFVEX1NJWkUgLSAxKSA+PiBQVURfU0hJRlQ7CisJdGFibGVzID0gUEFHRV9BTElHTihwdWRzICogc2l6ZW9mKHB1ZF90KSk7CisKKwlwbWRzID0gKGVuZCArIFBNRF9TSVpFIC0gMSkgPj4gUE1EX1NISUZUOworCXRhYmxlcyArPSBQQUdFX0FMSUdOKHBtZHMgKiBzaXplb2YocG1kX3QpKTsKKworCWlmIChjcHVfaGFzX3BzZSkgeworCQl1bnNpZ25lZCBsb25nIGV4dHJhOworCisJCWV4dHJhID0gZW5kIC0gKChlbmQ+PlBNRF9TSElGVCkgPDwgUE1EX1NISUZUKTsKKwkJZXh0cmEgKz0gUE1EX1NJWkU7CisJCXB0ZXMgPSAoZXh0cmEgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOworCX0gZWxzZQorCQlwdGVzID0gKGVuZCArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7CisKKwl0YWJsZXMgKz0gUEFHRV9BTElHTihwdGVzICogc2l6ZW9mKHB0ZV90KSk7CisKKwkvKiBmb3IgZml4bWFwICovCisJdGFibGVzICs9IFBBR0VfU0laRSAqIDI7CisKKwkvKgorCSAqIFJFRC1QRU4gcHV0dGluZyBwYWdlIHRhYmxlcyBvbmx5IG9uIG5vZGUgMCBjb3VsZAorCSAqIGNhdXNlIGEgaG90c3BvdCBhbmQgZmlsbCB1cCBaT05FX0RNQS4gVGhlIHBhZ2UgdGFibGVzCisJICogbmVlZCByb3VnaGx5IDAuNUtCIHBlciBHQi4KKwkgKi8KKwlzdGFydCA9IDB4NzAwMDsKKwl0YWJsZV9zdGFydCA9IGZpbmRfZTgyMF9hcmVhKHN0YXJ0LCBtYXhfcGZuX21hcHBlZDw8UEFHRV9TSElGVCwKKwkJCQkJdGFibGVzLCBQQUdFX1NJWkUpOworCWlmICh0YWJsZV9zdGFydCA9PSAtMVVMKQorCQlwYW5pYygiQ2Fubm90IGZpbmQgc3BhY2UgZm9yIHRoZSBrZXJuZWwgcGFnZSB0YWJsZXMiKTsKKworCXRhYmxlX3N0YXJ0ID4+PSBQQUdFX1NISUZUOworCXRhYmxlX2VuZCA9IHRhYmxlX3N0YXJ0OworCXRhYmxlX3RvcCA9IHRhYmxlX3N0YXJ0ICsgKHRhYmxlcz4+UEFHRV9TSElGVCk7CisKKwlwcmludGsoS0VSTl9ERUJVRyAia2VybmVsIGRpcmVjdCBtYXBwaW5nIHRhYmxlcyB1cCB0byAlbHggQCAlbHgtJWx4XG4iLAorCQllbmQsIHRhYmxlX3N0YXJ0IDw8IFBBR0VfU0hJRlQsCisJCSh0YWJsZV9zdGFydCA8PCBQQUdFX1NISUZUKSArIHRhYmxlcyk7Cit9CisKK3Vuc2lnbmVkIGxvbmcgX19pbml0X3JlZm9rIGluaXRfbWVtb3J5X21hcHBpbmcodW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgZW5kKQoreworCXBnZF90ICpwZ2RfYmFzZSA9IHN3YXBwZXJfcGdfZGlyOworCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBlbmRfcGZuOworCXVuc2lnbmVkIGxvbmcgYmlnX3BhZ2Vfc3RhcnQ7CisKKwkvKgorCSAqIEZpbmQgc3BhY2UgZm9yIHRoZSBrZXJuZWwgZGlyZWN0IG1hcHBpbmcgdGFibGVzLgorCSAqLworCWlmICghYWZ0ZXJfaW5pdF9ib290bWVtKQorCQlmaW5kX2Vhcmx5X3RhYmxlX3NwYWNlKGVuZCk7CisKKyNpZmRlZiBDT05GSUdfWDg2X1BBRQorCXNldF9ueCgpOworCWlmIChueF9lbmFibGVkKQorCQlwcmludGsoS0VSTl9JTkZPICJOWCAoRXhlY3V0ZSBEaXNhYmxlKSBwcm90ZWN0aW9uOiBhY3RpdmVcbiIpOworI2VuZGlmCisKKwkvKiBFbmFibGUgUFNFIGlmIGF2YWlsYWJsZSAqLworCWlmIChjcHVfaGFzX3BzZSkKKwkJc2V0X2luX2NyNChYODZfQ1I0X1BTRSk7CisKKwkvKiBFbmFibGUgUEdFIGlmIGF2YWlsYWJsZSAqLworCWlmIChjcHVfaGFzX3BnZSkgeworCQlzZXRfaW5fY3I0KFg4Nl9DUjRfUEdFKTsKKwkJX19zdXBwb3J0ZWRfcHRlX21hc2sgfD0gX1BBR0VfR0xPQkFMOworCX0KKworCS8qCisJICogRG9uJ3QgdXNlIGEgbGFyZ2UgcGFnZSBmb3IgdGhlIGZpcnN0IDIvNE1CIG9mIG1lbW9yeQorCSAqIGJlY2F1c2UgdGhlcmUgYXJlIG9mdGVuIGZpeGVkIHNpemUgTVRSUnMgaW4gdGhlcmUKKwkgKiBhbmQgb3ZlcmxhcHBpbmcgTVRSUnMgaW50byBsYXJnZSBwYWdlcyBjYW4gY2F1c2UKKwkgKiBzbG93ZG93bnMuCisJICovCisJYmlnX3BhZ2Vfc3RhcnQgPSBQTURfU0laRTsKKworCWlmIChzdGFydCA8IGJpZ19wYWdlX3N0YXJ0KSB7CisJCXN0YXJ0X3BmbiA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7CisJCWVuZF9wZm4gPSBtaW4oYmlnX3BhZ2Vfc3RhcnQ+PlBBR0VfU0hJRlQsIGVuZD4+UEFHRV9TSElGVCk7CisJfSBlbHNlIHsKKwkJLyogaGVhZCBpcyBub3QgYmlnIHBhZ2UgYWxpZ25tZW50ID8gKi8KKwkJc3RhcnRfcGZuID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKKwkJZW5kX3BmbiA9ICgoc3RhcnQgKyAoUE1EX1NJWkUgLSAxKSk+PlBNRF9TSElGVCkKKwkJCQkgPDwgKFBNRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCX0KKwlpZiAoc3RhcnRfcGZuIDwgZW5kX3BmbikKKwkJa2VybmVsX3BoeXNpY2FsX21hcHBpbmdfaW5pdChwZ2RfYmFzZSwgc3RhcnRfcGZuLCBlbmRfcGZuLCAwKTsKKworCS8qIGJpZyBwYWdlIHJhbmdlICovCisJc3RhcnRfcGZuID0gKChzdGFydCArIChQTURfU0laRSAtIDEpKT4+UE1EX1NISUZUKQorCQkJIDw8IChQTURfU0hJRlQgLSBQQUdFX1NISUZUKTsKKwlpZiAoc3RhcnRfcGZuIDwgKGJpZ19wYWdlX3N0YXJ0ID4+IFBBR0VfU0hJRlQpKQorCQlzdGFydF9wZm4gPSAgYmlnX3BhZ2Vfc3RhcnQgPj4gUEFHRV9TSElGVDsKKwllbmRfcGZuID0gKGVuZD4+UE1EX1NISUZUKSA8PCAoUE1EX1NISUZUIC0gUEFHRV9TSElGVCk7CisJaWYgKHN0YXJ0X3BmbiA8IGVuZF9wZm4pCisJCWtlcm5lbF9waHlzaWNhbF9tYXBwaW5nX2luaXQocGdkX2Jhc2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwKKwkJCQkJCWNwdV9oYXNfcHNlKTsKKworCS8qIHRhaWwgaXMgbm90IGJpZyBwYWdlIGFsaWdubWVudCA/ICovCisJc3RhcnRfcGZuID0gZW5kX3BmbjsKKwlpZiAoc3RhcnRfcGZuID4gKGJpZ19wYWdlX3N0YXJ0Pj5QQUdFX1NISUZUKSkgeworCQllbmRfcGZuID0gZW5kID4+IFBBR0VfU0hJRlQ7CisJCWlmIChzdGFydF9wZm4gPCBlbmRfcGZuKQorCQkJa2VybmVsX3BoeXNpY2FsX21hcHBpbmdfaW5pdChwZ2RfYmFzZSwgc3RhcnRfcGZuLAorCQkJCQkJCSBlbmRfcGZuLCAwKTsKKwl9CisKKwllYXJseV9pb3JlbWFwX3BhZ2VfdGFibGVfcmFuZ2VfaW5pdChwZ2RfYmFzZSk7CisKKwlsb2FkX2NyMyhzd2FwcGVyX3BnX2Rpcik7CisKKwlfX2ZsdXNoX3RsYl9hbGwoKTsKKworCWlmICghYWZ0ZXJfaW5pdF9ib290bWVtKQorCQlyZXNlcnZlX2Vhcmx5KHRhYmxlX3N0YXJ0IDw8IFBBR0VfU0hJRlQsCisJCQkJIHRhYmxlX2VuZCA8PCBQQUdFX1NISUZULCAiUEdUQUJMRSIpOworCisJcmV0dXJuIGVuZCA+PiBQQUdFX1NISUZUOworfQorCisKIC8qCiAgKiBwYWdpbmdfaW5pdCgpIHNldHMgdXAgdGhlIHBhZ2UgdGFibGVzIC0gbm90ZSB0aGF0IHRoZSBmaXJzdCA4TUIgYXJlCiAgKiBhbHJlYWR5IG1hcHBlZCBieSBoZWFkLlMuCkBAIC01MTgsMTggKzg1NywxOSBAQAogICovCiB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQogewotI2lmZGVmIENPTkZJR19YODZfUEFFCi0Jc2V0X254KCk7Ci0JaWYgKG54X2VuYWJsZWQpCi0JCXByaW50ayhLRVJOX0lORk8gIk5YIChFeGVjdXRlIERpc2FibGUpIHByb3RlY3Rpb246IGFjdGl2ZVxuIik7Ci0jZW5kaWYKIAlwYWdldGFibGVfaW5pdCgpOwogCi0JbG9hZF9jcjMoc3dhcHBlcl9wZ19kaXIpOwotCiAJX19mbHVzaF90bGJfYWxsKCk7CiAKIAlrbWFwX2luaXQoKTsKKworCS8qCisJICogTk9URTogYXQgdGhpcyBwb2ludCB0aGUgYm9vdG1lbSBhbGxvY2F0b3IgaXMgZnVsbHkgYXZhaWxhYmxlLgorCSAqLworCXNwYXJzZV9pbml0KCk7CisJem9uZV9zaXplc19pbml0KCk7CisKKwlwYXJhdmlydF9wb3N0X2FsbG9jYXRvcl9pbml0KCk7CiB9CiAKIC8qCkBAIC01NjQsMjQgKzkwNCwxMSBAQAogdm9pZCBfX2luaXQgbWVtX2luaXQodm9pZCkKIHsKIAlpbnQgY29kZXNpemUsIHJlc2VydmVkcGFnZXMsIGRhdGFzaXplLCBpbml0c2l6ZTsKLQlpbnQgdG1wLCBiYWRfcHBybzsKKwlpbnQgdG1wOwogCiAjaWZkZWYgQ09ORklHX0ZMQVRNRU0KIAlCVUdfT04oIW1lbV9tYXApOwogI2VuZGlmCi0JYmFkX3Bwcm8gPSBwcHJvX3dpdGhfcmFtX2J1ZygpOwotCi0jaWZkZWYgQ09ORklHX0hJR0hNRU0KLQkvKiBjaGVjayB0aGF0IGZpeG1hcCBhbmQgcGttYXAgZG8gbm90IG92ZXJsYXAgKi8KLQlpZiAoUEtNQVBfQkFTRSArIExBU1RfUEtNQVAqUEFHRV9TSVpFID49IEZJWEFERFJfU1RBUlQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkiZml4bWFwIGFuZCBrbWFwIGFyZWFzIG92ZXJsYXAgLSB0aGlzIHdpbGwgY3Jhc2hcbiIpOwotCQlwcmludGsoS0VSTl9FUlIgInBrc3RhcnQ6ICVseGggcGtlbmQ6ICVseGggZml4c3RhcnQgJWx4aFxuIiwKLQkJCQlQS01BUF9CQVNFLCBQS01BUF9CQVNFICsgTEFTVF9QS01BUCpQQUdFX1NJWkUsCi0JCQkJRklYQUREUl9TVEFSVCk7Ci0JCUJVRygpOwotCX0KLSNlbmRpZgogCS8qIHRoaXMgd2lsbCBwdXQgYWxsIGxvdyBtZW1vcnkgb250byB0aGUgZnJlZWxpc3RzICovCiAJdG90YWxyYW1fcGFnZXMgKz0gZnJlZV9hbGxfYm9vdG1lbSgpOwogCkBAIC01OTMsNyArOTIwLDcgQEAKIAkJaWYgKHBhZ2VfaXNfcmFtKHRtcCkgJiYgUGFnZVJlc2VydmVkKHBmbl90b19wYWdlKHRtcCkpKQogCQkJcmVzZXJ2ZWRwYWdlcysrOwogCi0Jc2V0X2hpZ2htZW1fcGFnZXNfaW5pdChiYWRfcHBybyk7CisJc2V0X2hpZ2htZW1fcGFnZXNfaW5pdCgpOwogCiAJY29kZXNpemUgPSAgKHVuc2lnbmVkIGxvbmcpICZfZXRleHQgLSAodW5zaWduZWQgbG9uZykgJl90ZXh0OwogCWRhdGFzaXplID0gICh1bnNpZ25lZCBsb25nKSAmX2VkYXRhIC0gKHVuc2lnbmVkIGxvbmcpICZfZXRleHQ7CkBAIC02MTQsNyArOTQxLDYgQEAKIAkJKHVuc2lnbmVkIGxvbmcpICh0b3RhbGhpZ2hfcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApKQogCSAgICAgICApOwogCi0jaWYgMSAvKiBkb3VibGUtc2FuaXR5LWNoZWNrIHBhcmFub2lhICovCiAJcHJpbnRrKEtFUk5fSU5GTyAidmlydHVhbCBrZXJuZWwgbWVtb3J5IGxheW91dDpcbiIKIAkJIiAgICBmaXhtYXAgIDogMHglMDhseCAtIDB4JTA4bHggICAoJTRsZCBrQilcbiIKICNpZmRlZiBDT05GSUdfSElHSE1FTQpAQCAtNjU1LDcgKzk4MSw2IEBACiAjZW5kaWYKIAlCVUdfT04oVk1BTExPQ19TVEFSVAkJCQk+IFZNQUxMT0NfRU5EKTsKIAlCVUdfT04oKHVuc2lnbmVkIGxvbmcpaGlnaF9tZW1vcnkJCT4gVk1BTExPQ19TVEFSVCk7Ci0jZW5kaWYgLyogZG91YmxlLXNhbml0eS1jaGVjayBwYXJhbm9pYSAqLwogCiAJaWYgKGJvb3RfY3B1X2RhdGEud3Bfd29ya3Nfb2sgPCAwKQogCQl0ZXN0X3dwX2JpdCgpOwpAQCAtNzEwLDYgKzEwMzUsOCBAQAogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSBQRk5fQUxJR04oX3RleHQpOwogCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IFBGTl9BTElHTihfZXRleHQpIC0gc3RhcnQ7CiAKKyNpZm5kZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisJLyogRHluYW1pYyB0cmFjaW5nIG1vZGlmaWVzIHRoZSBrZXJuZWwgdGV4dCBzZWN0aW9uICovCiAJc2V0X3BhZ2VzX3JvKHZpcnRfdG9fcGFnZShzdGFydCksIHNpemUgPj4gUEFHRV9TSElGVCk7CiAJcHJpbnRrKEtFUk5fSU5GTyAiV3JpdGUgcHJvdGVjdGluZyB0aGUga2VybmVsIHRleHQ6ICVsdWtcbiIsCiAJCXNpemUgPj4gMTApOwpAQCAtNzIyLDYgKzEwNDksOCBAQAogCXByaW50ayhLRVJOX0lORk8gIlRlc3RpbmcgQ1BBOiB3cml0ZSBwcm90ZWN0aW5nIGFnYWluXG4iKTsKIAlzZXRfcGFnZXNfcm8odmlydF90b19wYWdlKHN0YXJ0KSwgc2l6ZT4+UEFHRV9TSElGVCk7CiAjZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KKwogCXN0YXJ0ICs9IHNpemU7CiAJc2l6ZSA9ICh1bnNpZ25lZCBsb25nKV9fZW5kX3JvZGF0YSAtIHN0YXJ0OwogCXNldF9wYWdlc19ybyh2aXJ0X3RvX3BhZ2Uoc3RhcnQpLCBzaXplID4+IFBBR0VfU0hJRlQpOwpAQCAtNzg0LDMgKzExMTMsOSBAQAogCWZyZWVfaW5pdF9wYWdlcygiaW5pdHJkIG1lbW9yeSIsIHN0YXJ0LCBlbmQpOwogfQogI2VuZGlmCisKK2ludCBfX2luaXQgcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWModW5zaWduZWQgbG9uZyBwaHlzLCB1bnNpZ25lZCBsb25nIGxlbiwKKwkJCQkgICBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIHJlc2VydmVfYm9vdG1lbShwaHlzLCBsZW4sIGZsYWdzKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2luaXRfNjQuYyBiL2FyY2gveDg2L21tL2luaXRfNjQuYwppbmRleCAxNTZlNmQ3Li4yN2RlMjQzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9pbml0XzY0LmMKKysrIGIvYXJjaC94ODYvbW0vaW5pdF82NC5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvc3dhcC5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0cmQuaD4KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KQEAgLTQ3LDYgKzQ4LDE0IEBACiAjaW5jbHVkZSA8YXNtL251bWEuaD4KICNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgogCisvKgorICogZW5kX3BmbiBvbmx5IGluY2x1ZGVzIFJBTSwgd2hpbGUgbWF4X3Bmbl9tYXBwZWQgaW5jbHVkZXMgYWxsIGU4MjAgZW50cmllcy4KKyAqIFRoZSBkaXJlY3QgbWFwcGluZyBleHRlbmRzIHRvIG1heF9wZm5fbWFwcGVkLCBzbyB0aGF0IHdlIGNhbiBkaXJlY3RseSBhY2Nlc3MKKyAqIGFwZXJ0dXJlcywgQUNQSSBhbmQgb3RoZXIgdGFibGVzIHdpdGhvdXQgaGF2aW5nIHRvIHBsYXkgd2l0aCBmaXhtYXBzLgorICovCit1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuX21hcHBlZDsKK3Vuc2lnbmVkIGxvbmcgbWF4X3Bmbl9tYXBwZWQ7CisKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGRtYV9yZXNlcnZlIF9faW5pdGRhdGE7CiAKIERFRklORV9QRVJfQ1BVKHN0cnVjdCBtbXVfZ2F0aGVyLCBtbXVfZ2F0aGVycyk7CkBAIC0xMzUsMjYgKzE0NCwxNyBAQAogCXJldHVybiBwdHI7CiB9CiAKLXN0YXRpYyB2b2lkCi1zZXRfcHRlX3BoeXModW5zaWduZWQgbG9uZyB2YWRkciwgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBwcm90KQordm9pZAorc2V0X3B0ZV92YWRkcl9wdWQocHVkX3QgKnB1ZF9wYWdlLCB1bnNpZ25lZCBsb25nIHZhZGRyLCBwdGVfdCBuZXdfcHRlKQogewotCXBnZF90ICpwZ2Q7CiAJcHVkX3QgKnB1ZDsKIAlwbWRfdCAqcG1kOwotCXB0ZV90ICpwdGUsIG5ld19wdGU7CisJcHRlX3QgKnB0ZTsKIAotCXByX2RlYnVnKCJzZXRfcHRlX3BoeXMgJWx4IHRvICVseFxuIiwgdmFkZHIsIHBoeXMpOwotCi0JcGdkID0gcGdkX29mZnNldF9rKHZhZGRyKTsKLQlpZiAocGdkX25vbmUoKnBnZCkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkiUEdEIEZJWE1BUCBNSVNTSU5HLCBpdCBzaG91bGQgYmUgc2V0dXAgaW4gaGVhZC5TIVxuIik7Ci0JCXJldHVybjsKLQl9Ci0JcHVkID0gcHVkX29mZnNldChwZ2QsIHZhZGRyKTsKKwlwdWQgPSBwdWRfcGFnZSArIHB1ZF9pbmRleCh2YWRkcik7CiAJaWYgKHB1ZF9ub25lKCpwdWQpKSB7CiAJCXBtZCA9IChwbWRfdCAqKSBzcHBfZ2V0cGFnZSgpOwotCQlzZXRfcHVkKHB1ZCwgX19wdWQoX19wYShwbWQpIHwgX0tFUk5QR19UQUJMRSB8IF9QQUdFX1VTRVIpKTsKKwkJcHVkX3BvcHVsYXRlKCZpbml0X21tLCBwdWQsIHBtZCk7CiAJCWlmIChwbWQgIT0gcG1kX29mZnNldChwdWQsIDApKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIlBBR0VUQUJMRSBCVUcgIzAxISAlcCA8LT4gJXBcbiIsCiAJCQkJcG1kLCBwbWRfb2Zmc2V0KHB1ZCwgMCkpOwpAQCAtMTY0LDEzICsxNjQsMTIgQEAKIAlwbWQgPSBwbWRfb2Zmc2V0KHB1ZCwgdmFkZHIpOwogCWlmIChwbWRfbm9uZSgqcG1kKSkgewogCQlwdGUgPSAocHRlX3QgKikgc3BwX2dldHBhZ2UoKTsKLQkJc2V0X3BtZChwbWQsIF9fcG1kKF9fcGEocHRlKSB8IF9LRVJOUEdfVEFCTEUgfCBfUEFHRV9VU0VSKSk7CisJCXBtZF9wb3B1bGF0ZV9rZXJuZWwoJmluaXRfbW0sIHBtZCwgcHRlKTsKIAkJaWYgKHB0ZSAhPSBwdGVfb2Zmc2V0X2tlcm5lbChwbWQsIDApKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIlBBR0VUQUJMRSBCVUcgIzAyIVxuIik7CiAJCQlyZXR1cm47CiAJCX0KIAl9Ci0JbmV3X3B0ZSA9IHBmbl9wdGUocGh5cyA+PiBQQUdFX1NISUZULCBwcm90KTsKIAogCXB0ZSA9IHB0ZV9vZmZzZXRfa2VybmVsKHBtZCwgdmFkZHIpOwogCWlmICghcHRlX25vbmUoKnB0ZSkgJiYgcHRlX3ZhbChuZXdfcHRlKSAmJgpAQCAtMTg1LDYgKzE4NCw2NCBAQAogCV9fZmx1c2hfdGxiX29uZSh2YWRkcik7CiB9CiAKK3ZvaWQKK3NldF9wdGVfdmFkZHIodW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3QgcHRldmFsKQoreworCXBnZF90ICpwZ2Q7CisJcHVkX3QgKnB1ZF9wYWdlOworCisJcHJfZGVidWcoInNldF9wdGVfdmFkZHIgJWx4IHRvICVseFxuIiwgdmFkZHIsIG5hdGl2ZV9wdGVfdmFsKHB0ZXZhbCkpOworCisJcGdkID0gcGdkX29mZnNldF9rKHZhZGRyKTsKKwlpZiAocGdkX25vbmUoKnBnZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSCisJCQkiUEdEIEZJWE1BUCBNSVNTSU5HLCBpdCBzaG91bGQgYmUgc2V0dXAgaW4gaGVhZC5TIVxuIik7CisJCXJldHVybjsKKwl9CisJcHVkX3BhZ2UgPSAocHVkX3QqKXBnZF9wYWdlX3ZhZGRyKCpwZ2QpOworCXNldF9wdGVfdmFkZHJfcHVkKHB1ZF9wYWdlLCB2YWRkciwgcHRldmFsKTsKK30KKworLyoKKyAqIENyZWF0ZSBsYXJnZSBwYWdlIHRhYmxlIG1hcHBpbmdzIGZvciBhIHJhbmdlIG9mIHBoeXNpY2FsIGFkZHJlc3Nlcy4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IF9faW5pdF9leHRyYV9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCQkJcGdwcm90X3QgcHJvdCkKK3sKKwlwZ2RfdCAqcGdkOworCXB1ZF90ICpwdWQ7CisJcG1kX3QgKnBtZDsKKworCUJVR19PTigocGh5cyAmIH5QTURfTUFTSykgfHwgKHNpemUgJiB+UE1EX01BU0spKTsKKwlmb3IgKDsgc2l6ZTsgcGh5cyArPSBQTURfU0laRSwgc2l6ZSAtPSBQTURfU0laRSkgeworCQlwZ2QgPSBwZ2Rfb2Zmc2V0X2soKHVuc2lnbmVkIGxvbmcpX192YShwaHlzKSk7CisJCWlmIChwZ2Rfbm9uZSgqcGdkKSkgeworCQkJcHVkID0gKHB1ZF90ICopIHNwcF9nZXRwYWdlKCk7CisJCQlzZXRfcGdkKHBnZCwgX19wZ2QoX19wYShwdWQpIHwgX0tFUk5QR19UQUJMRSB8CisJCQkJCQlfUEFHRV9VU0VSKSk7CisJCX0KKwkJcHVkID0gcHVkX29mZnNldChwZ2QsICh1bnNpZ25lZCBsb25nKV9fdmEocGh5cykpOworCQlpZiAocHVkX25vbmUoKnB1ZCkpIHsKKwkJCXBtZCA9IChwbWRfdCAqKSBzcHBfZ2V0cGFnZSgpOworCQkJc2V0X3B1ZChwdWQsIF9fcHVkKF9fcGEocG1kKSB8IF9LRVJOUEdfVEFCTEUgfAorCQkJCQkJX1BBR0VfVVNFUikpOworCQl9CisJCXBtZCA9IHBtZF9vZmZzZXQocHVkLCBwaHlzKTsKKwkJQlVHX09OKCFwbWRfbm9uZSgqcG1kKSk7CisJCXNldF9wbWQocG1kLCBfX3BtZChwaHlzIHwgcGdwcm90X3ZhbChwcm90KSkpOworCX0KK30KKwordm9pZCBfX2luaXQgaW5pdF9leHRyYV9tYXBwaW5nX3diKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBzaXplKQoreworCV9faW5pdF9leHRyYV9tYXBwaW5nKHBoeXMsIHNpemUsIFBBR0VfS0VSTkVMX0xBUkdFKTsKK30KKwordm9pZCBfX2luaXQgaW5pdF9leHRyYV9tYXBwaW5nX3VjKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBzaXplKQoreworCV9faW5pdF9leHRyYV9tYXBwaW5nKHBoeXMsIHNpemUsIFBBR0VfS0VSTkVMX0xBUkdFX05PQ0FDSEUpOworfQorCiAvKgogICogVGhlIGhlYWQuUyBjb2RlIHNldHMgdXAgdGhlIGtlcm5lbCBoaWdoIG1hcHBpbmc6CiAgKgpAQCAtMjEzLDIwICsyNzAsOSBAQAogCX0KIH0KIAotLyogTk9URTogdGhpcyBpcyBtZWFudCB0byBiZSBydW4gb25seSBhdCBib290ICovCi12b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgcHJvdCkKLXsKLQl1bnNpZ25lZCBsb25nIGFkZHJlc3MgPSBfX2ZpeF90b192aXJ0KGlkeCk7Ci0KLQlpZiAoaWR4ID49IF9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcykgewotCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgX19zZXRfZml4bWFwXG4iKTsKLQkJcmV0dXJuOwotCX0KLQlzZXRfcHRlX3BoeXMoYWRkcmVzcywgcGh5cywgcHJvdCk7Ci19Ci0KIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgdGFibGVfc3RhcnQ7CiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX21lbWluaXRkYXRhIHRhYmxlX2VuZDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdGRhdGEgdGFibGVfdG9wOwogCiBzdGF0aWMgX19tZW1pbml0IHZvaWQgKmFsbG9jX2xvd19wYWdlKHVuc2lnbmVkIGxvbmcgKnBoeXMpCiB7CkBAIC0yNDAsNyArMjg2LDcgQEAKIAkJcmV0dXJuIGFkcjsKIAl9CiAKLQlpZiAocGZuID49IGVuZF9wZm4pCisJaWYgKHBmbiA+PSB0YWJsZV90b3ApCiAJCXBhbmljKCJhbGxvY19sb3dfcGFnZTogcmFuIG91dCBvZiBtZW1vcnkiKTsKIAogCWFkciA9IGVhcmx5X2lvcmVtYXAocGZuICogUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwpAQCAtMjU3LDY1ICszMDMsNjEgQEAKIAllYXJseV9pb3VubWFwKGFkciwgUEFHRV9TSVpFKTsKIH0KIAotLyogTXVzdCBydW4gYmVmb3JlIHphcF9sb3dfbWFwcGluZ3MgKi8KLV9fbWVtaW5pdCB2b2lkICplYXJseV9pb3JlbWFwKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQorc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0CitwaHlzX3B0ZV9pbml0KHB0ZV90ICpwdGVfcGFnZSwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCkKIHsKLQlwbWRfdCAqcG1kLCAqbGFzdF9wbWQ7Ci0JdW5zaWduZWQgbG9uZyB2YWRkcjsKLQlpbnQgaSwgcG1kczsKKwl1bnNpZ25lZCBwYWdlcyA9IDA7CisJdW5zaWduZWQgbG9uZyBsYXN0X21hcF9hZGRyID0gZW5kOworCWludCBpOwogCi0JcG1kcyA9ICgoYWRkciAmIH5QTURfTUFTSykgKyBzaXplICsgflBNRF9NQVNLKSAvIFBNRF9TSVpFOwotCXZhZGRyID0gX19TVEFSVF9LRVJORUxfbWFwOwotCXBtZCA9IGxldmVsMl9rZXJuZWxfcGd0OwotCWxhc3RfcG1kID0gbGV2ZWwyX2tlcm5lbF9wZ3QgKyBQVFJTX1BFUl9QTUQgLSAxOworCXB0ZV90ICpwdGUgPSBwdGVfcGFnZSArIHB0ZV9pbmRleChhZGRyKTsKIAotCWZvciAoOyBwbWQgPD0gbGFzdF9wbWQ7IHBtZCsrLCB2YWRkciArPSBQTURfU0laRSkgewotCQlmb3IgKGkgPSAwOyBpIDwgcG1kczsgaSsrKSB7Ci0JCQlpZiAocG1kX3ByZXNlbnQocG1kW2ldKSkKLQkJCQlnb3RvIGNvbnRpbnVlX291dGVyX2xvb3A7CisJZm9yKGkgPSBwdGVfaW5kZXgoYWRkcik7IGkgPCBQVFJTX1BFUl9QVEU7IGkrKywgYWRkciArPSBQQUdFX1NJWkUsIHB0ZSsrKSB7CisKKwkJaWYgKGFkZHIgPj0gZW5kKSB7CisJCQlpZiAoIWFmdGVyX2Jvb3RtZW0pIHsKKwkJCQlmb3IoOyBpIDwgUFRSU19QRVJfUFRFOyBpKyssIHB0ZSsrKQorCQkJCQlzZXRfcHRlKHB0ZSwgX19wdGUoMCkpOworCQkJfQorCQkJYnJlYWs7CiAJCX0KLQkJdmFkZHIgKz0gYWRkciAmIH5QTURfTUFTSzsKLQkJYWRkciAmPSBQTURfTUFTSzsKIAotCQlmb3IgKGkgPSAwOyBpIDwgcG1kczsgaSsrLCBhZGRyICs9IFBNRF9TSVpFKQotCQkJc2V0X3BtZChwbWQraSwgX19wbWQoYWRkciB8IF9fUEFHRV9LRVJORUxfTEFSR0VfRVhFQykpOwotCQlfX2ZsdXNoX3RsYl9hbGwoKTsKKwkJaWYgKHB0ZV92YWwoKnB0ZSkpCisJCQljb250aW51ZTsKIAotCQlyZXR1cm4gKHZvaWQgKil2YWRkcjsKLWNvbnRpbnVlX291dGVyX2xvb3A6Ci0JCTsKKwkJaWYgKDApCisJCQlwcmludGsoIiAgIHB0ZT0lcCBhZGRyPSVseCBwdGU9JTAxNmx4XG4iLAorCQkJICAgICAgIHB0ZSwgYWRkciwgcGZuX3B0ZShhZGRyID4+IFBBR0VfU0hJRlQsIFBBR0VfS0VSTkVMKS5wdGUpOworCQlzZXRfcHRlKHB0ZSwgcGZuX3B0ZShhZGRyID4+IFBBR0VfU0hJRlQsIFBBR0VfS0VSTkVMKSk7CisJCWxhc3RfbWFwX2FkZHIgPSAoYWRkciAmIFBBR0VfTUFTSykgKyBQQUdFX1NJWkU7CisJCXBhZ2VzKys7CiAJfQotCXByaW50ayhLRVJOX0VSUiAiZWFybHlfaW9yZW1hcCgweCVseCwgJWx1KSBmYWlsZWRcbiIsIGFkZHIsIHNpemUpOworCXVwZGF0ZV9wYWdlX2NvdW50KFBHX0xFVkVMXzRLLCBwYWdlcyk7CiAKLQlyZXR1cm4gTlVMTDsKLX0KLQotLyoKLSAqIFRvIGF2b2lkIHZpcnR1YWwgYWxpYXNlcyBsYXRlcjoKLSAqLwotX19tZW1pbml0IHZvaWQgZWFybHlfaW91bm1hcCh2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCi17Ci0JdW5zaWduZWQgbG9uZyB2YWRkcjsKLQlwbWRfdCAqcG1kOwotCWludCBpLCBwbWRzOwotCi0JdmFkZHIgPSAodW5zaWduZWQgbG9uZylhZGRyOwotCXBtZHMgPSAoKHZhZGRyICYgflBNRF9NQVNLKSArIHNpemUgKyB+UE1EX01BU0spIC8gUE1EX1NJWkU7Ci0JcG1kID0gbGV2ZWwyX2tlcm5lbF9wZ3QgKyBwbWRfaW5kZXgodmFkZHIpOwotCi0JZm9yIChpID0gMDsgaSA8IHBtZHM7IGkrKykKLQkJcG1kX2NsZWFyKHBtZCArIGkpOwotCi0JX19mbHVzaF90bGJfYWxsKCk7CisJcmV0dXJuIGxhc3RfbWFwX2FkZHI7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdAotcGh5c19wbWRfaW5pdChwbWRfdCAqcG1kX3BhZ2UsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdW5zaWduZWQgbG9uZyBlbmQpCitwaHlzX3B0ZV91cGRhdGUocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBsb25nIGVuZCkKIHsKKwlwdGVfdCAqcHRlID0gKHB0ZV90ICopcG1kX3BhZ2VfdmFkZHIoKnBtZCk7CisKKwlyZXR1cm4gcGh5c19wdGVfaW5pdChwdGUsIGFkZHJlc3MsIGVuZCk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdAorcGh5c19wbWRfaW5pdChwbWRfdCAqcG1kX3BhZ2UsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdW5zaWduZWQgbG9uZyBlbmQsCisJCQkgdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzaykKK3sKKwl1bnNpZ25lZCBsb25nIHBhZ2VzID0gMDsKKwl1bnNpZ25lZCBsb25nIGxhc3RfbWFwX2FkZHIgPSBlbmQ7CisKIAlpbnQgaSA9IHBtZF9pbmRleChhZGRyZXNzKTsKIAogCWZvciAoOyBpIDwgUFRSU19QRVJfUE1EOyBpKyssIGFkZHJlc3MgKz0gUE1EX1NJWkUpIHsKKwkJdW5zaWduZWQgbG9uZyBwdGVfcGh5czsKIAkJcG1kX3QgKnBtZCA9IHBtZF9wYWdlICsgcG1kX2luZGV4KGFkZHJlc3MpOworCQlwdGVfdCAqcHRlOwogCiAJCWlmIChhZGRyZXNzID49IGVuZCkgewogCQkJaWYgKCFhZnRlcl9ib290bWVtKSB7CkBAIC0zMjUsMzEgKzM2Nyw1MCBAQAogCQkJYnJlYWs7CiAJCX0KIAotCQlpZiAocG1kX3ZhbCgqcG1kKSkKKwkJaWYgKHBtZF92YWwoKnBtZCkpIHsKKwkJCWlmICghcG1kX2xhcmdlKCpwbWQpKQorCQkJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3B0ZV91cGRhdGUocG1kLCBhZGRyZXNzLAorCQkJCQkJCQkgZW5kKTsKIAkJCWNvbnRpbnVlOworCQl9CiAKLQkJc2V0X3B0ZSgocHRlX3QgKilwbWQsCi0JCQlwZm5fcHRlKGFkZHJlc3MgPj4gUEFHRV9TSElGVCwgUEFHRV9LRVJORUxfTEFSR0UpKTsKKwkJaWYgKHBhZ2Vfc2l6ZV9tYXNrICYgKDE8PFBHX0xFVkVMXzJNKSkgeworCQkJcGFnZXMrKzsKKwkJCXNldF9wdGUoKHB0ZV90ICopcG1kLAorCQkJCXBmbl9wdGUoYWRkcmVzcyA+PiBQQUdFX1NISUZULCBQQUdFX0tFUk5FTF9MQVJHRSkpOworCQkJbGFzdF9tYXBfYWRkciA9IChhZGRyZXNzICYgUE1EX01BU0spICsgUE1EX1NJWkU7CisJCQljb250aW51ZTsKKwkJfQorCisJCXB0ZSA9IGFsbG9jX2xvd19wYWdlKCZwdGVfcGh5cyk7CisJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3B0ZV9pbml0KHB0ZSwgYWRkcmVzcywgZW5kKTsKKwkJdW5tYXBfbG93X3BhZ2UocHRlKTsKKworCQlwbWRfcG9wdWxhdGVfa2VybmVsKCZpbml0X21tLCBwbWQsIF9fdmEocHRlX3BoeXMpKTsKIAl9Ci0JcmV0dXJuIGFkZHJlc3M7CisJdXBkYXRlX3BhZ2VfY291bnQoUEdfTEVWRUxfMk0sIHBhZ2VzKTsKKwlyZXR1cm4gbGFzdF9tYXBfYWRkcjsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0Ci1waHlzX3BtZF91cGRhdGUocHVkX3QgKnB1ZCwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBsb25nIGVuZCkKK3BoeXNfcG1kX3VwZGF0ZShwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgZW5kLAorCQkJIHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplX21hc2spCiB7CiAJcG1kX3QgKnBtZCA9IHBtZF9vZmZzZXQocHVkLCAwKTsKIAl1bnNpZ25lZCBsb25nIGxhc3RfbWFwX2FkZHI7CiAKIAlzcGluX2xvY2soJmluaXRfbW0ucGFnZV90YWJsZV9sb2NrKTsKLQlsYXN0X21hcF9hZGRyID0gcGh5c19wbWRfaW5pdChwbWQsIGFkZHJlc3MsIGVuZCk7CisJbGFzdF9tYXBfYWRkciA9IHBoeXNfcG1kX2luaXQocG1kLCBhZGRyZXNzLCBlbmQsIHBhZ2Vfc2l6ZV9tYXNrKTsKIAlzcGluX3VubG9jaygmaW5pdF9tbS5wYWdlX3RhYmxlX2xvY2spOwogCV9fZmx1c2hfdGxiX2FsbCgpOwogCXJldHVybiBsYXN0X21hcF9hZGRyOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX21lbWluaXQKLXBoeXNfcHVkX2luaXQocHVkX3QgKnB1ZF9wYWdlLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kKQorcGh5c19wdWRfaW5pdChwdWRfdCAqcHVkX3BhZ2UsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCisJCQkgdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzaykKIHsKKwl1bnNpZ25lZCBsb25nIHBhZ2VzID0gMDsKIAl1bnNpZ25lZCBsb25nIGxhc3RfbWFwX2FkZHIgPSBlbmQ7CiAJaW50IGkgPSBwdWRfaW5kZXgoYWRkcik7CiAKQEAgLTM2OSwxMSArNDMwLDEzIEBACiAKIAkJaWYgKHB1ZF92YWwoKnB1ZCkpIHsKIAkJCWlmICghcHVkX2xhcmdlKCpwdWQpKQotCQkJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3BtZF91cGRhdGUocHVkLCBhZGRyLCBlbmQpOworCQkJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3BtZF91cGRhdGUocHVkLCBhZGRyLCBlbmQsCisJCQkJCQkJIHBhZ2Vfc2l6ZV9tYXNrKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJaWYgKGRpcmVjdF9nYnBhZ2VzKSB7CisJCWlmIChwYWdlX3NpemVfbWFzayAmICgxPDxQR19MRVZFTF8xRykpIHsKKwkJCXBhZ2VzKys7CiAJCQlzZXRfcHRlKChwdGVfdCAqKXB1ZCwKIAkJCQlwZm5fcHRlKGFkZHIgPj4gUEFHRV9TSElGVCwgUEFHRV9LRVJORUxfTEFSR0UpKTsKIAkJCWxhc3RfbWFwX2FkZHIgPSAoYWRkciAmIFBVRF9NQVNLKSArIFBVRF9TSVpFOwpAQCAtMzgzLDI3ICs0NDYsNTAgQEAKIAkJcG1kID0gYWxsb2NfbG93X3BhZ2UoJnBtZF9waHlzKTsKIAogCQlzcGluX2xvY2soJmluaXRfbW0ucGFnZV90YWJsZV9sb2NrKTsKLQkJc2V0X3B1ZChwdWQsIF9fcHVkKHBtZF9waHlzIHwgX0tFUk5QR19UQUJMRSkpOwotCQlsYXN0X21hcF9hZGRyID0gcGh5c19wbWRfaW5pdChwbWQsIGFkZHIsIGVuZCk7CisJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3BtZF9pbml0KHBtZCwgYWRkciwgZW5kLCBwYWdlX3NpemVfbWFzayk7CisJCXVubWFwX2xvd19wYWdlKHBtZCk7CisJCXB1ZF9wb3B1bGF0ZSgmaW5pdF9tbSwgcHVkLCBfX3ZhKHBtZF9waHlzKSk7CiAJCXNwaW5fdW5sb2NrKCZpbml0X21tLnBhZ2VfdGFibGVfbG9jayk7CiAKLQkJdW5tYXBfbG93X3BhZ2UocG1kKTsKIAl9CiAJX19mbHVzaF90bGJfYWxsKCk7CisJdXBkYXRlX3BhZ2VfY291bnQoUEdfTEVWRUxfMUcsIHBhZ2VzKTsKIAotCXJldHVybiBsYXN0X21hcF9hZGRyID4+IFBBR0VfU0hJRlQ7CisJcmV0dXJuIGxhc3RfbWFwX2FkZHI7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdAorcGh5c19wdWRfdXBkYXRlKHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCisJCSB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZV9tYXNrKQoreworCXB1ZF90ICpwdWQ7CisKKwlwdWQgPSAocHVkX3QgKilwZ2RfcGFnZV92YWRkcigqcGdkKTsKKworCXJldHVybiBwaHlzX3B1ZF9pbml0KHB1ZCwgYWRkciwgZW5kLCBwYWdlX3NpemVfbWFzayk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBmaW5kX2Vhcmx5X3RhYmxlX3NwYWNlKHVuc2lnbmVkIGxvbmcgZW5kKQogewotCXVuc2lnbmVkIGxvbmcgcHVkcywgcG1kcywgdGFibGVzLCBzdGFydDsKKwl1bnNpZ25lZCBsb25nIHB1ZHMsIHBtZHMsIHB0ZXMsIHRhYmxlcywgc3RhcnQ7CiAKIAlwdWRzID0gKGVuZCArIFBVRF9TSVpFIC0gMSkgPj4gUFVEX1NISUZUOwogCXRhYmxlcyA9IHJvdW5kX3VwKHB1ZHMgKiBzaXplb2YocHVkX3QpLCBQQUdFX1NJWkUpOwotCWlmICghZGlyZWN0X2dicGFnZXMpIHsKKwlpZiAoZGlyZWN0X2dicGFnZXMpIHsKKwkJdW5zaWduZWQgbG9uZyBleHRyYTsKKwkJZXh0cmEgPSBlbmQgLSAoKGVuZD4+UFVEX1NISUZUKSA8PCBQVURfU0hJRlQpOworCQlwbWRzID0gKGV4dHJhICsgUE1EX1NJWkUgLSAxKSA+PiBQTURfU0hJRlQ7CisJfSBlbHNlCiAJCXBtZHMgPSAoZW5kICsgUE1EX1NJWkUgLSAxKSA+PiBQTURfU0hJRlQ7Ci0JCXRhYmxlcyArPSByb3VuZF91cChwbWRzICogc2l6ZW9mKHBtZF90KSwgUEFHRV9TSVpFKTsKLQl9CisJdGFibGVzICs9IHJvdW5kX3VwKHBtZHMgKiBzaXplb2YocG1kX3QpLCBQQUdFX1NJWkUpOworCisJaWYgKGNwdV9oYXNfcHNlKSB7CisJCXVuc2lnbmVkIGxvbmcgZXh0cmE7CisJCWV4dHJhID0gZW5kIC0gKChlbmQ+PlBNRF9TSElGVCkgPDwgUE1EX1NISUZUKTsKKwkJcHRlcyA9IChleHRyYSArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7CisJfSBlbHNlCisJCXB0ZXMgPSAoZW5kICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKKwl0YWJsZXMgKz0gcm91bmRfdXAocHRlcyAqIHNpemVvZihwdGVfdCksIFBBR0VfU0laRSk7CiAKIAkvKgogCSAqIFJFRC1QRU4gcHV0dGluZyBwYWdlIHRhYmxlcyBvbmx5IG9uIG5vZGUgMCBjb3VsZApAQCAtNDE3LDEwICs1MDMsMTAgQEAKIAogCXRhYmxlX3N0YXJ0ID4+PSBQQUdFX1NISUZUOwogCXRhYmxlX2VuZCA9IHRhYmxlX3N0YXJ0OworCXRhYmxlX3RvcCA9IHRhYmxlX3N0YXJ0ICsgKHRhYmxlcyA+PiBQQUdFX1NISUZUKTsKIAotCWVhcmx5X3ByaW50aygia2VybmVsIGRpcmVjdCBtYXBwaW5nIHRhYmxlcyB1cCB0byAlbHggQCAlbHgtJWx4XG4iLAotCQllbmQsIHRhYmxlX3N0YXJ0IDw8IFBBR0VfU0hJRlQsCi0JCSh0YWJsZV9zdGFydCA8PCBQQUdFX1NISUZUKSArIHRhYmxlcyk7CisJcHJpbnRrKEtFUk5fREVCVUcgImtlcm5lbCBkaXJlY3QgbWFwcGluZyB0YWJsZXMgdXAgdG8gJWx4IEAgJWx4LSVseFxuIiwKKwkJZW5kLCB0YWJsZV9zdGFydCA8PCBQQUdFX1NISUZULCB0YWJsZV90b3AgPDwgUEFHRV9TSElGVCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBpbml0X2dicGFnZXModm9pZCkKQEAgLTQzMSw3ICs1MTcsNyBAQAogCQlkaXJlY3RfZ2JwYWdlcyA9IDA7CiB9CiAKLSNpZmRlZiBDT05GSUdfTUVNVEVTVF9CT09UUEFSQU0KKyNpZmRlZiBDT05GSUdfTUVNVEVTVAogCiBzdGF0aWMgdm9pZCBfX2luaXQgbWVtdGVzdCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BoeXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAkJCQkgdW5zaWduZWQgcGF0dGVybikKQEAgLTQ5Myw3ICs1NzksOCBAQAogCiB9CiAKLXN0YXRpYyBpbnQgbWVtdGVzdF9wYXR0ZXJuIF9faW5pdGRhdGEgPSBDT05GSUdfTUVNVEVTVF9CT09UUEFSQU1fVkFMVUU7CisvKiBkZWZhdWx0IGlzIGRpc2FibGVkICovCitzdGF0aWMgaW50IG1lbXRlc3RfcGF0dGVybiBfX2luaXRkYXRhOwogCiBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tZW10ZXN0KGNoYXIgKmFyZykKIHsKQEAgLTUyNiw3ICs2MTMsOCBAQAogCQkJCXRfc2l6ZSA9IGVuZCAtIHRfc3RhcnQ7CiAKIAkJCXByaW50ayhLRVJOX0NPTlQgIlxuICAlMDE2bGx4IC0gJTAxNmxseCBwYXR0ZXJuICVkIiwKLQkJCQl0X3N0YXJ0LCB0X3N0YXJ0ICsgdF9zaXplLCBwYXR0ZXJuKTsKKwkJCQkodW5zaWduZWQgbG9uZyBsb25nKXRfc3RhcnQsCisJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZyl0X3N0YXJ0ICsgdF9zaXplLCBwYXR0ZXJuKTsKIAogCQkJbWVtdGVzdCh0X3N0YXJ0LCB0X3NpemUsIHBhdHRlcm4pOwogCkBAIC01NDEsMTUgKzYyOSw4NSBAQAogfQogI2VuZGlmCiAKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBrZXJuZWxfcGh5c2ljYWxfbWFwcGluZ19pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnQsCisJCQkJCQl1bnNpZ25lZCBsb25nIGVuZCwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgcGFnZV9zaXplX21hc2spCit7CisKKwl1bnNpZ25lZCBsb25nIG5leHQsIGxhc3RfbWFwX2FkZHIgPSBlbmQ7CisKKwlzdGFydCA9ICh1bnNpZ25lZCBsb25nKV9fdmEoc3RhcnQpOworCWVuZCA9ICh1bnNpZ25lZCBsb25nKV9fdmEoZW5kKTsKKworCWZvciAoOyBzdGFydCA8IGVuZDsgc3RhcnQgPSBuZXh0KSB7CisJCXBnZF90ICpwZ2QgPSBwZ2Rfb2Zmc2V0X2soc3RhcnQpOworCQl1bnNpZ25lZCBsb25nIHB1ZF9waHlzOworCQlwdWRfdCAqcHVkOworCisJCW5leHQgPSBzdGFydCArIFBHRElSX1NJWkU7CisJCWlmIChuZXh0ID4gZW5kKQorCQkJbmV4dCA9IGVuZDsKKworCQlpZiAocGdkX3ZhbCgqcGdkKSkgeworCQkJbGFzdF9tYXBfYWRkciA9IHBoeXNfcHVkX3VwZGF0ZShwZ2QsIF9fcGEoc3RhcnQpLAorCQkJCQkJIF9fcGEoZW5kKSwgcGFnZV9zaXplX21hc2spOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoYWZ0ZXJfYm9vdG1lbSkKKwkJCXB1ZCA9IHB1ZF9vZmZzZXQocGdkLCBzdGFydCAmIFBHRElSX01BU0spOworCQllbHNlCisJCQlwdWQgPSBhbGxvY19sb3dfcGFnZSgmcHVkX3BoeXMpOworCisJCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3B1ZF9pbml0KHB1ZCwgX19wYShzdGFydCksIF9fcGEobmV4dCksCisJCQkJCQkgcGFnZV9zaXplX21hc2spOworCQl1bm1hcF9sb3dfcGFnZShwdWQpOworCQlwZ2RfcG9wdWxhdGUoJmluaXRfbW0sIHBnZF9vZmZzZXRfayhzdGFydCksCisJCQkgICAgIF9fdmEocHVkX3BoeXMpKTsKKwl9CisKKwlyZXR1cm4gbGFzdF9tYXBfYWRkcjsKK30KKworc3RydWN0IG1hcF9yYW5nZSB7CisJdW5zaWduZWQgbG9uZyBzdGFydDsKKwl1bnNpZ25lZCBsb25nIGVuZDsKKwl1bnNpZ25lZCBwYWdlX3NpemVfbWFzazsKK307CisKKyNkZWZpbmUgTlJfUkFOR0VfTVIgNQorCitzdGF0aWMgaW50IHNhdmVfbXIoc3RydWN0IG1hcF9yYW5nZSAqbXIsIGludCBucl9yYW5nZSwKKwkJICAgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3BmbiwKKwkJICAgdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzaykKK3sKKworCWlmIChzdGFydF9wZm4gPCBlbmRfcGZuKSB7CisJCWlmIChucl9yYW5nZSA+PSBOUl9SQU5HRV9NUikKKwkJCXBhbmljKCJydW4gb3V0IG9mIHJhbmdlIGZvciBpbml0X21lbW9yeV9tYXBwaW5nXG4iKTsKKwkJbXJbbnJfcmFuZ2VdLnN0YXJ0ID0gc3RhcnRfcGZuPDxQQUdFX1NISUZUOworCQltcltucl9yYW5nZV0uZW5kICAgPSBlbmRfcGZuPDxQQUdFX1NISUZUOworCQltcltucl9yYW5nZV0ucGFnZV9zaXplX21hc2sgPSBwYWdlX3NpemVfbWFzazsKKwkJbnJfcmFuZ2UrKzsKKwl9CisKKwlyZXR1cm4gbnJfcmFuZ2U7Cit9CisKIC8qCiAgKiBTZXR1cCB0aGUgZGlyZWN0IG1hcHBpbmcgb2YgdGhlIHBoeXNpY2FsIG1lbW9yeSBhdCBQQUdFX09GRlNFVC4KICAqIFRoaXMgcnVucyBiZWZvcmUgYm9vdG1lbSBpcyBpbml0aWFsaXplZCBhbmQgZ2V0cyBwYWdlcyBkaXJlY3RseSBmcm9tCiAgKiB0aGUgcGh5c2ljYWwgbWVtb3J5LiBUbyBhY2Nlc3MgdGhlbSB0aGV5IGFyZSB0ZW1wb3JhcmlseSBtYXBwZWQuCiAgKi8KLXVuc2lnbmVkIGxvbmcgX19pbml0X3JlZm9rIGluaXRfbWVtb3J5X21hcHBpbmcodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit1bnNpZ25lZCBsb25nIF9faW5pdF9yZWZvayBpbml0X21lbW9yeV9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgc3RhcnQsCisJCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGVuZCkKIHsKLQl1bnNpZ25lZCBsb25nIG5leHQsIGxhc3RfbWFwX2FkZHIgPSBlbmQ7Ci0JdW5zaWduZWQgbG9uZyBzdGFydF9waHlzID0gc3RhcnQsIGVuZF9waHlzID0gZW5kOworCXVuc2lnbmVkIGxvbmcgbGFzdF9tYXBfYWRkciA9IDA7CisJdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzayA9IDA7CisJdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIGVuZF9wZm47CisKKwlzdHJ1Y3QgbWFwX3JhbmdlIG1yW05SX1JBTkdFX01SXTsKKwlpbnQgbnJfcmFuZ2UsIGk7CiAKIAlwcmludGsoS0VSTl9JTkZPICJpbml0X21lbW9yeV9tYXBwaW5nXG4iKTsKIApAQCAtNTYwLDQ4ICs3MTgsMTE1IEBACiAJICogbWVtb3J5IG1hcHBlZC4gVW5mb3J0dW5hdGVseSB0aGlzIGlzIGRvbmUgY3VycmVudGx5IGJlZm9yZSB0aGUKIAkgKiBub2RlcyBhcmUgZGlzY292ZXJlZC4KIAkgKi8KLQlpZiAoIWFmdGVyX2Jvb3RtZW0pIHsKKwlpZiAoIWFmdGVyX2Jvb3RtZW0pCiAJCWluaXRfZ2JwYWdlcygpOworCisJaWYgKGRpcmVjdF9nYnBhZ2VzKQorCQlwYWdlX3NpemVfbWFzayB8PSAxIDw8IFBHX0xFVkVMXzFHOworCWlmIChjcHVfaGFzX3BzZSkKKwkJcGFnZV9zaXplX21hc2sgfD0gMSA8PCBQR19MRVZFTF8yTTsKKworCW1lbXNldChtciwgMCwgc2l6ZW9mKG1yKSk7CisJbnJfcmFuZ2UgPSAwOworCisJLyogaGVhZCBpZiBub3QgYmlnIHBhZ2UgYWxpZ25tZW50ID8qLworCXN0YXJ0X3BmbiA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7CisJZW5kX3BmbiA9ICgoc3RhcnQgKyAoUE1EX1NJWkUgLSAxKSkgPj4gUE1EX1NISUZUKQorCQkJPDwgKFBNRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCW5yX3JhbmdlID0gc2F2ZV9tcihtciwgbnJfcmFuZ2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwgMCk7CisKKwkvKiBiaWcgcGFnZSAoMk0pIHJhbmdlKi8KKwlzdGFydF9wZm4gPSAoKHN0YXJ0ICsgKFBNRF9TSVpFIC0gMSkpPj5QTURfU0hJRlQpCisJCQkgPDwgKFBNRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCWVuZF9wZm4gPSAoKHN0YXJ0ICsgKFBVRF9TSVpFIC0gMSkpPj5QVURfU0hJRlQpCisJCQkgPDwgKFBVRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCWlmIChlbmRfcGZuID4gKChlbmQ+PlBVRF9TSElGVCk8PChQVURfU0hJRlQgLSBQQUdFX1NISUZUKSkpCisJCWVuZF9wZm4gPSAoKGVuZD4+UFVEX1NISUZUKTw8KFBVRF9TSElGVCAtIFBBR0VfU0hJRlQpKTsKKwlucl9yYW5nZSA9IHNhdmVfbXIobXIsIG5yX3JhbmdlLCBzdGFydF9wZm4sIGVuZF9wZm4sCisJCQlwYWdlX3NpemVfbWFzayAmICgxPDxQR19MRVZFTF8yTSkpOworCisJLyogYmlnIHBhZ2UgKDFHKSByYW5nZSAqLworCXN0YXJ0X3BmbiA9IGVuZF9wZm47CisJZW5kX3BmbiA9IChlbmQ+PlBVRF9TSElGVCkgPDwgKFBVRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCW5yX3JhbmdlID0gc2F2ZV9tcihtciwgbnJfcmFuZ2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwKKwkJCQlwYWdlX3NpemVfbWFzayAmCisJCQkJICgoMTw8UEdfTEVWRUxfMk0pfCgxPDxQR19MRVZFTF8xRykpKTsKKworCS8qIHRhaWwgaXMgbm90IGJpZyBwYWdlICgxRykgYWxpZ25tZW50ICovCisJc3RhcnRfcGZuID0gZW5kX3BmbjsKKwllbmRfcGZuID0gKGVuZD4+UE1EX1NISUZUKSA8PCAoUE1EX1NISUZUIC0gUEFHRV9TSElGVCk7CisJbnJfcmFuZ2UgPSBzYXZlX21yKG1yLCBucl9yYW5nZSwgc3RhcnRfcGZuLCBlbmRfcGZuLAorCQkJcGFnZV9zaXplX21hc2sgJiAoMTw8UEdfTEVWRUxfMk0pKTsKKworCS8qIHRhaWwgaXMgbm90IGJpZyBwYWdlICgyTSkgYWxpZ25tZW50ICovCisJc3RhcnRfcGZuID0gZW5kX3BmbjsKKwllbmRfcGZuID0gZW5kPj5QQUdFX1NISUZUOworCW5yX3JhbmdlID0gc2F2ZV9tcihtciwgbnJfcmFuZ2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwgMCk7CisKKwkvKiB0cnkgdG8gbWVyZ2Ugc2FtZSBwYWdlIHNpemUgYW5kIGNvbnRpbnVvdXMgKi8KKwlmb3IgKGkgPSAwOyBucl9yYW5nZSA+IDEgJiYgaSA8IG5yX3JhbmdlIC0gMTsgaSsrKSB7CisJCXVuc2lnbmVkIGxvbmcgb2xkX3N0YXJ0OworCQlpZiAobXJbaV0uZW5kICE9IG1yW2krMV0uc3RhcnQgfHwKKwkJICAgIG1yW2ldLnBhZ2Vfc2l6ZV9tYXNrICE9IG1yW2krMV0ucGFnZV9zaXplX21hc2spCisJCQljb250aW51ZTsKKwkJLyogbW92ZSBpdCAqLworCQlvbGRfc3RhcnQgPSBtcltpXS5zdGFydDsKKwkJbWVtbW92ZSgmbXJbaV0sICZtcltpKzFdLAorCQkJIChucl9yYW5nZSAtIDEgLSBpKSAqIHNpemVvZiAoc3RydWN0IG1hcF9yYW5nZSkpOworCQltcltpXS5zdGFydCA9IG9sZF9zdGFydDsKKwkJbnJfcmFuZ2UtLTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykKKwkJcHJpbnRrKEtFUk5fREVCVUcgIiAlMDEwbHggLSAlMDEwbHggcGFnZSAlc1xuIiwKKwkJCQltcltpXS5zdGFydCwgbXJbaV0uZW5kLAorCQkJKG1yW2ldLnBhZ2Vfc2l6ZV9tYXNrICYgKDE8PFBHX0xFVkVMXzFHKSk/IjFHIjooCisJCQkgKG1yW2ldLnBhZ2Vfc2l6ZV9tYXNrICYgKDE8PFBHX0xFVkVMXzJNKSk/IjJNIjoiNGsiKSk7CisKKwlpZiAoIWFmdGVyX2Jvb3RtZW0pCiAJCWZpbmRfZWFybHlfdGFibGVfc3BhY2UoZW5kKTsKLQl9CiAKLQlzdGFydCA9ICh1bnNpZ25lZCBsb25nKV9fdmEoc3RhcnQpOwotCWVuZCA9ICh1bnNpZ25lZCBsb25nKV9fdmEoZW5kKTsKLQotCWZvciAoOyBzdGFydCA8IGVuZDsgc3RhcnQgPSBuZXh0KSB7Ci0JCXBnZF90ICpwZ2QgPSBwZ2Rfb2Zmc2V0X2soc3RhcnQpOwotCQl1bnNpZ25lZCBsb25nIHB1ZF9waHlzOwotCQlwdWRfdCAqcHVkOwotCi0JCWlmIChhZnRlcl9ib290bWVtKQotCQkJcHVkID0gcHVkX29mZnNldChwZ2QsIHN0YXJ0ICYgUEdESVJfTUFTSyk7Ci0JCWVsc2UKLQkJCXB1ZCA9IGFsbG9jX2xvd19wYWdlKCZwdWRfcGh5cyk7Ci0KLQkJbmV4dCA9IHN0YXJ0ICsgUEdESVJfU0laRTsKLQkJaWYgKG5leHQgPiBlbmQpCi0JCQluZXh0ID0gZW5kOwotCQlsYXN0X21hcF9hZGRyID0gcGh5c19wdWRfaW5pdChwdWQsIF9fcGEoc3RhcnQpLCBfX3BhKG5leHQpKTsKLQkJaWYgKCFhZnRlcl9ib290bWVtKQotCQkJc2V0X3BnZChwZ2Rfb2Zmc2V0X2soc3RhcnQpLCBta19rZXJuZWxfcGdkKHB1ZF9waHlzKSk7Ci0JCXVubWFwX2xvd19wYWdlKHB1ZCk7Ci0JfQorCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKQorCQlsYXN0X21hcF9hZGRyID0ga2VybmVsX3BoeXNpY2FsX21hcHBpbmdfaW5pdCgKKwkJCQkJbXJbaV0uc3RhcnQsIG1yW2ldLmVuZCwKKwkJCQkJbXJbaV0ucGFnZV9zaXplX21hc2spOwogCiAJaWYgKCFhZnRlcl9ib290bWVtKQogCQltbXVfY3I0X2ZlYXR1cmVzID0gcmVhZF9jcjQoKTsKIAlfX2ZsdXNoX3RsYl9hbGwoKTsKIAotCWlmICghYWZ0ZXJfYm9vdG1lbSkKKwlpZiAoIWFmdGVyX2Jvb3RtZW0gJiYgdGFibGVfZW5kID4gdGFibGVfc3RhcnQpCiAJCXJlc2VydmVfZWFybHkodGFibGVfc3RhcnQgPDwgUEFHRV9TSElGVCwKIAkJCQkgdGFibGVfZW5kIDw8IFBBR0VfU0hJRlQsICJQR1RBQkxFIik7CiAKLQlpZiAoIWFmdGVyX2Jvb3RtZW0pCi0JCWVhcmx5X21lbXRlc3Qoc3RhcnRfcGh5cywgZW5kX3BoeXMpOworCXByaW50ayhLRVJOX0lORk8gImxhc3RfbWFwX2FkZHI6ICVseCBlbmQ6ICVseFxuIiwKKwkJCSBsYXN0X21hcF9hZGRyLCBlbmQpOwogCi0JcmV0dXJuIGxhc3RfbWFwX2FkZHI7CisJaWYgKCFhZnRlcl9ib290bWVtKQorCQllYXJseV9tZW10ZXN0KHN0YXJ0LCBlbmQpOworCisJcmV0dXJuIGxhc3RfbWFwX2FkZHIgPj4gUEFHRV9TSElGVDsKIH0KIAogI2lmbmRlZiBDT05GSUdfTlVNQQordm9pZCBfX2luaXQgaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCit7CisJdW5zaWduZWQgbG9uZyBib290bWFwX3NpemUsIGJvb3RtYXA7CisKKwlib290bWFwX3NpemUgPSBib290bWVtX2Jvb3RtYXBfcGFnZXMoZW5kX3Bmbik8PFBBR0VfU0hJRlQ7CisJYm9vdG1hcCA9IGZpbmRfZTgyMF9hcmVhKDAsIGVuZF9wZm48PFBBR0VfU0hJRlQsIGJvb3RtYXBfc2l6ZSwKKwkJCQkgUEFHRV9TSVpFKTsKKwlpZiAoYm9vdG1hcCA9PSAtMUwpCisJCXBhbmljKCJDYW5ub3QgZmluZCBib290bWVtIG1hcCBvZiBzaXplICVsZFxuIiwgYm9vdG1hcF9zaXplKTsKKwkvKiBkb24ndCB0b3VjaCBtaW5fbG93X3BmbiAqLworCWJvb3RtYXBfc2l6ZSA9IGluaXRfYm9vdG1lbV9ub2RlKE5PREVfREFUQSgwKSwgYm9vdG1hcCA+PiBQQUdFX1NISUZULAorCQkJCQkgMCwgZW5kX3Bmbik7CisJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCBzdGFydF9wZm4sIGVuZF9wZm4pOworCWZyZWVfYm9vdG1lbV93aXRoX2FjdGl2ZV9yZWdpb25zKDAsIGVuZF9wZm4pOworCWVhcmx5X3Jlc190b19ib290bWVtKDAsIGVuZF9wZm48PFBBR0VfU0hJRlQpOworCXJlc2VydmVfYm9vdG1lbShib290bWFwLCBib290bWFwX3NpemUsIEJPT1RNRU1fREVGQVVMVCk7Cit9CisKIHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBtYXhfem9uZV9wZm5zW01BWF9OUl9aT05FU107CkBAIC02MDksOSArODM0LDkgQEAKIAltZW1zZXQobWF4X3pvbmVfcGZucywgMCwgc2l6ZW9mKG1heF96b25lX3BmbnMpKTsKIAltYXhfem9uZV9wZm5zW1pPTkVfRE1BXSA9IE1BWF9ETUFfUEZOOwogCW1heF96b25lX3BmbnNbWk9ORV9ETUEzMl0gPSBNQVhfRE1BMzJfUEZOOwotCW1heF96b25lX3BmbnNbWk9ORV9OT1JNQUxdID0gZW5kX3BmbjsKKwltYXhfem9uZV9wZm5zW1pPTkVfTk9STUFMXSA9IG1heF9wZm47CiAKLQltZW1vcnlfcHJlc2VudCgwLCAwLCBlbmRfcGZuKTsKKwltZW1vcnlfcHJlc2VudCgwLCAwLCBtYXhfcGZuKTsKIAlzcGFyc2VfaW5pdCgpOwogCWZyZWVfYXJlYV9pbml0X25vZGVzKG1heF96b25lX3BmbnMpOwogfQpAQCAtNjkzLDggKzkxOCw4IEBACiAjZWxzZQogCXRvdGFscmFtX3BhZ2VzID0gZnJlZV9hbGxfYm9vdG1lbSgpOwogI2VuZGlmCi0JcmVzZXJ2ZWRwYWdlcyA9IGVuZF9wZm4gLSB0b3RhbHJhbV9wYWdlcyAtCi0JCQkJCWFic2VudF9wYWdlc19pbl9yYW5nZSgwLCBlbmRfcGZuKTsKKwlyZXNlcnZlZHBhZ2VzID0gbWF4X3BmbiAtIHRvdGFscmFtX3BhZ2VzIC0KKwkJCQkJYWJzZW50X3BhZ2VzX2luX3JhbmdlKDAsIG1heF9wZm4pOwogCWFmdGVyX2Jvb3RtZW0gPSAxOwogCiAJY29kZXNpemUgPSAgKHVuc2lnbmVkIGxvbmcpICZfZXRleHQgLSAodW5zaWduZWQgbG9uZykgJl90ZXh0OwpAQCAtNzEzLDcgKzkzOCw3IEBACiAJcHJpbnRrKEtFUk5fSU5GTyAiTWVtb3J5OiAlbHVrLyVsdWsgYXZhaWxhYmxlICglbGRrIGtlcm5lbCBjb2RlLCAiCiAJCQkJIiVsZGsgcmVzZXJ2ZWQsICVsZGsgZGF0YSwgJWxkayBpbml0KVxuIiwKIAkJKHVuc2lnbmVkIGxvbmcpIG5yX2ZyZWVfcGFnZXMoKSA8PCAoUEFHRV9TSElGVC0xMCksCi0JCWVuZF9wZm4gPDwgKFBBR0VfU0hJRlQtMTApLAorCQltYXhfcGZuIDw8IChQQUdFX1NISUZULTEwKSwKIAkJY29kZXNpemUgPj4gMTAsCiAJCXJlc2VydmVkcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApLAogCQlkYXRhc2l6ZSA+PiAxMCwKQEAgLTc2Niw2ICs5OTEsMTMgQEAKIHZvaWQgbWFya19yb2RhdGFfcm8odm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gUEZOX0FMSUdOKF9zdGV4dCksIGVuZCA9IFBGTl9BTElHTihfX2VuZF9yb2RhdGEpOworCXVuc2lnbmVkIGxvbmcgcm9kYXRhX3N0YXJ0ID0KKwkJKCh1bnNpZ25lZCBsb25nKV9fc3RhcnRfcm9kYXRhICsgUEFHRV9TSVpFIC0gMSkgJiBQQUdFX01BU0s7CisKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKwkvKiBEeW5hbWljIHRyYWNpbmcgbW9kaWZpZXMgdGhlIGtlcm5lbCB0ZXh0IHNlY3Rpb24gKi8KKwlzdGFydCA9IHJvZGF0YV9zdGFydDsKKyNlbmRpZgogCiAJcHJpbnRrKEtFUk5fSU5GTyAiV3JpdGUgcHJvdGVjdGluZyB0aGUga2VybmVsIHJlYWQtb25seSBkYXRhOiAlbHVrXG4iLAogCSAgICAgICAoZW5kIC0gc3RhcnQpID4+IDEwKTsKQEAgLTc3NSw4ICsxMDA3LDcgQEAKIAkgKiBUaGUgcm9kYXRhIHNlY3Rpb24gKGJ1dCBub3QgdGhlIGtlcm5lbCB0ZXh0ISkgc2hvdWxkIGFsc28gYmUKIAkgKiBub3QtZXhlY3V0YWJsZS4KIAkgKi8KLQlzdGFydCA9ICgodW5zaWduZWQgbG9uZylfX3N0YXJ0X3JvZGF0YSArIFBBR0VfU0laRSAtIDEpICYgUEFHRV9NQVNLOwotCXNldF9tZW1vcnlfbngoc3RhcnQsIChlbmQgLSBzdGFydCkgPj4gUEFHRV9TSElGVCk7CisJc2V0X21lbW9yeV9ueChyb2RhdGFfc3RhcnQsIChlbmQgLSByb2RhdGFfc3RhcnQpID4+IFBBR0VfU0hJRlQpOwogCiAJcm9kYXRhX3Rlc3QoKTsKIApAQCAtNzk4LDI0ICsxMDI5LDI2IEBACiB9CiAjZW5kaWYKIAotdm9pZCBfX2luaXQgcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWModW5zaWduZWQgbG9uZyBwaHlzLCB1bnNpZ25lZCBsZW4pCitpbnQgX19pbml0IHJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBsZW4sCisJCQkJICAgaW50IGZsYWdzKQogewogI2lmZGVmIENPTkZJR19OVU1BCiAJaW50IG5pZCwgbmV4dF9uaWQ7CisJaW50IHJldDsKICNlbmRpZgogCXVuc2lnbmVkIGxvbmcgcGZuID0gcGh5cyA+PiBQQUdFX1NISUZUOwogCi0JaWYgKHBmbiA+PSBlbmRfcGZuKSB7CisJaWYgKHBmbiA+PSBtYXhfcGZuKSB7CiAJCS8qCiAJCSAqIFRoaXMgY2FuIGhhcHBlbiB3aXRoIGtkdW1wIGtlcm5lbHMgd2hlbiBhY2Nlc3NpbmcKIAkJICogZmlybXdhcmUgdGFibGVzOgogCQkgKi8KIAkJaWYgKHBmbiA8IG1heF9wZm5fbWFwcGVkKQotCQkJcmV0dXJuOworCQkJcmV0dXJuIC1FRkFVTFQ7CiAKLQkJcHJpbnRrKEtFUk5fRVJSICJyZXNlcnZlX2Jvb3RtZW06IGlsbGVnYWwgcmVzZXJ2ZSAlbHggJXVcbiIsCisJCXByaW50ayhLRVJOX0VSUiAicmVzZXJ2ZV9ib290bWVtOiBpbGxlZ2FsIHJlc2VydmUgJWx4ICVsdVxuIiwKIAkJCQlwaHlzLCBsZW4pOwotCQlyZXR1cm47CisJCXJldHVybiAtRUZBVUxUOwogCX0KIAogCS8qIFNob3VsZCBjaGVjayBoZXJlIGFnYWluc3QgdGhlIGU4MjAgbWFwIHRvIGF2b2lkIGRvdWJsZSBmcmVlICovCkBAIC04MjMsOSArMTA1NiwxMyBAQAogCW5pZCA9IHBoeXNfdG9fbmlkKHBoeXMpOwogCW5leHRfbmlkID0gcGh5c190b19uaWQocGh5cyArIGxlbiAtIDEpOwogCWlmIChuaWQgPT0gbmV4dF9uaWQpCi0JCXJlc2VydmVfYm9vdG1lbV9ub2RlKE5PREVfREFUQShuaWQpLCBwaHlzLCBsZW4sIEJPT1RNRU1fREVGQVVMVCk7CisJCXJldCA9IHJlc2VydmVfYm9vdG1lbV9ub2RlKE5PREVfREFUQShuaWQpLCBwaHlzLCBsZW4sIGZsYWdzKTsKIAllbHNlCi0JCXJlc2VydmVfYm9vdG1lbShwaHlzLCBsZW4sIEJPT1RNRU1fREVGQVVMVCk7CisJCXJldCA9IHJlc2VydmVfYm9vdG1lbShwaHlzLCBsZW4sIGZsYWdzKTsKKworCWlmIChyZXQgIT0gMCkKKwkJcmV0dXJuIHJldDsKKwogI2Vsc2UKIAlyZXNlcnZlX2Jvb3RtZW0ocGh5cywgbGVuLCBCT09UTUVNX0RFRkFVTFQpOwogI2VuZGlmCkBAIC04MzQsNiArMTA3MSw4IEBACiAJCWRtYV9yZXNlcnZlICs9IGxlbiAvIFBBR0VfU0laRTsKIAkJc2V0X2RtYV9yZXNlcnZlKGRtYV9yZXNlcnZlKTsKIAl9CisKKwlyZXR1cm4gMDsKIH0KIAogaW50IGtlcm5fYWRkcl92YWxpZCh1bnNpZ25lZCBsb25nIGFkZHIpCkBAIC05MzgsNyArMTE3Nyw3IEBACiAJcG1kX3QgKnBtZDsKIAogCWZvciAoOyBhZGRyIDwgZW5kOyBhZGRyID0gbmV4dCkgewotCQluZXh0ID0gcG1kX2FkZHJfZW5kKGFkZHIsIGVuZCk7CisJCXZvaWQgKnAgPSBOVUxMOwogCiAJCXBnZCA9IHZtZW1tYXBfcGdkX3BvcHVsYXRlKGFkZHIsIG5vZGUpOwogCQlpZiAoIXBnZCkKQEAgLTk0OCwzMyArMTE4Nyw1MSBAQAogCQlpZiAoIXB1ZCkKIAkJCXJldHVybiAtRU5PTUVNOwogCi0JCXBtZCA9IHBtZF9vZmZzZXQocHVkLCBhZGRyKTsKLQkJaWYgKHBtZF9ub25lKCpwbWQpKSB7Ci0JCQlwdGVfdCBlbnRyeTsKLQkJCXZvaWQgKnA7CisJCWlmICghY3B1X2hhc19wc2UpIHsKKwkJCW5leHQgPSAoYWRkciArIFBBR0VfU0laRSkgJiBQQUdFX01BU0s7CisJCQlwbWQgPSB2bWVtbWFwX3BtZF9wb3B1bGF0ZShwdWQsIGFkZHIsIG5vZGUpOwogCi0JCQlwID0gdm1lbW1hcF9hbGxvY19ibG9jayhQTURfU0laRSwgbm9kZSk7CisJCQlpZiAoIXBtZCkKKwkJCQlyZXR1cm4gLUVOT01FTTsKKworCQkJcCA9IHZtZW1tYXBfcHRlX3BvcHVsYXRlKHBtZCwgYWRkciwgbm9kZSk7CisKIAkJCWlmICghcCkKIAkJCQlyZXR1cm4gLUVOT01FTTsKIAotCQkJZW50cnkgPSBwZm5fcHRlKF9fcGEocCkgPj4gUEFHRV9TSElGVCwKLQkJCQkJCQlQQUdFX0tFUk5FTF9MQVJHRSk7Ci0JCQlzZXRfcG1kKHBtZCwgX19wbWQocHRlX3ZhbChlbnRyeSkpKTsKLQotCQkJLyogY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgY29udGlndW91cyBibG9ja3MgKi8KLQkJCWlmIChwX2VuZCAhPSBwIHx8IG5vZGVfc3RhcnQgIT0gbm9kZSkgewotCQkJCWlmIChwX3N0YXJ0KQotCQkJCQlwcmludGsoS0VSTl9ERUJVRyAiIFslbHgtJWx4XSBQTUQgLT4gWyVwLSVwXSBvbiBub2RlICVkXG4iLAotCQkJCQkJYWRkcl9zdGFydCwgYWRkcl9lbmQtMSwgcF9zdGFydCwgcF9lbmQtMSwgbm9kZV9zdGFydCk7Ci0JCQkJYWRkcl9zdGFydCA9IGFkZHI7Ci0JCQkJbm9kZV9zdGFydCA9IG5vZGU7Ci0JCQkJcF9zdGFydCA9IHA7Ci0JCQl9Ci0JCQlhZGRyX2VuZCA9IGFkZHIgKyBQTURfU0laRTsKLQkJCXBfZW5kID0gcCArIFBNRF9TSVpFOworCQkJYWRkcl9lbmQgPSBhZGRyICsgUEFHRV9TSVpFOworCQkJcF9lbmQgPSBwICsgUEFHRV9TSVpFOwogCQl9IGVsc2UgewotCQkJdm1lbW1hcF92ZXJpZnkoKHB0ZV90ICopcG1kLCBub2RlLCBhZGRyLCBuZXh0KTsKKwkJCW5leHQgPSBwbWRfYWRkcl9lbmQoYWRkciwgZW5kKTsKKworCQkJcG1kID0gcG1kX29mZnNldChwdWQsIGFkZHIpOworCQkJaWYgKHBtZF9ub25lKCpwbWQpKSB7CisJCQkJcHRlX3QgZW50cnk7CisKKwkJCQlwID0gdm1lbW1hcF9hbGxvY19ibG9jayhQTURfU0laRSwgbm9kZSk7CisJCQkJaWYgKCFwKQorCQkJCQlyZXR1cm4gLUVOT01FTTsKKworCQkJCWVudHJ5ID0gcGZuX3B0ZShfX3BhKHApID4+IFBBR0VfU0hJRlQsCisJCQkJCQlQQUdFX0tFUk5FTF9MQVJHRSk7CisJCQkJc2V0X3BtZChwbWQsIF9fcG1kKHB0ZV92YWwoZW50cnkpKSk7CisKKwkJCQkvKiBjaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBjb250aWd1b3VzIGJsb2NrcyAqLworCQkJCWlmIChwX2VuZCAhPSBwIHx8IG5vZGVfc3RhcnQgIT0gbm9kZSkgeworCQkJCQlpZiAocF9zdGFydCkKKwkJCQkJCXByaW50ayhLRVJOX0RFQlVHICIgWyVseC0lbHhdIFBNRCAtPiBbJXAtJXBdIG9uIG5vZGUgJWRcbiIsCisJCQkJCQkgICAgICAgYWRkcl9zdGFydCwgYWRkcl9lbmQtMSwgcF9zdGFydCwgcF9lbmQtMSwgbm9kZV9zdGFydCk7CisJCQkJCWFkZHJfc3RhcnQgPSBhZGRyOworCQkJCQlub2RlX3N0YXJ0ID0gbm9kZTsKKwkJCQkJcF9zdGFydCA9IHA7CisJCQkJfQorCisJCQkJYWRkcl9lbmQgPSBhZGRyICsgUE1EX1NJWkU7CisJCQkJcF9lbmQgPSBwICsgUE1EX1NJWkU7CisJCQl9IGVsc2UKKwkJCQl2bWVtbWFwX3ZlcmlmeSgocHRlX3QgKilwbWQsIG5vZGUsIGFkZHIsIG5leHQpOwogCQl9CisKIAl9CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9pb3JlbWFwLmMgYi9hcmNoL3g4Ni9tbS9pb3JlbWFwLmMKaW5kZXggMmIyYmIzZi4uMjRjMWQzYyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vaW9yZW1hcC5jCisrKyBiL2FyY2gveDg2L21tL2lvcmVtYXAuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvbW1pb3RyYWNlLmg+CiAKICNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS9lODIwLmg+CkBAIC0xMjIsMTAgKzEyMywxMyBAQAogewogCXVuc2lnbmVkIGxvbmcgcGZuLCBvZmZzZXQsIHZhZGRyOwogCXJlc291cmNlX3NpemVfdCBsYXN0X2FkZHI7CisJY29uc3QgcmVzb3VyY2Vfc2l6ZV90IHVuYWxpZ25lZF9waHlzX2FkZHIgPSBwaHlzX2FkZHI7CisJY29uc3QgdW5zaWduZWQgbG9uZyB1bmFsaWduZWRfc2l6ZSA9IHNpemU7CiAJc3RydWN0IHZtX3N0cnVjdCAqYXJlYTsKIAl1bnNpZ25lZCBsb25nIG5ld19wcm90X3ZhbDsKIAlwZ3Byb3RfdCBwcm90OwogCWludCByZXR2YWw7CisJdm9pZCBfX2lvbWVtICpyZXRfYWRkcjsKIAogCS8qIERvbid0IGFsbG93IHdyYXBhcm91bmQgb3IgemVybyBzaXplICovCiAJbGFzdF9hZGRyID0gcGh5c19hZGRyICsgc2l6ZSAtIDE7CkBAIC0xNDIsNyArMTQ2LDcgQEAKIAkvKgogCSAqIERvbid0IHJlbWFwIHRoZSBsb3cgUENJL0lTQSBhcmVhLCBpdCdzIGFsd2F5cyBtYXBwZWQuLgogCSAqLwotCWlmIChwaHlzX2FkZHIgPj0gSVNBX1NUQVJUX0FERFJFU1MgJiYgbGFzdF9hZGRyIDwgSVNBX0VORF9BRERSRVNTKQorCWlmIChpc19JU0FfcmFuZ2UocGh5c19hZGRyLCBsYXN0X2FkZHIpKQogCQlyZXR1cm4gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopcGh5c190b192aXJ0KHBoeXNfYWRkcik7CiAKIAkvKgpAQCAtMjMzLDcgKzIzNywxMCBAQAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSAodmFkZHIgKyBvZmZzZXQpOworCXJldF9hZGRyID0gKHZvaWQgX19pb21lbSAqKSAodmFkZHIgKyBvZmZzZXQpOworCW1taW90cmFjZV9pb3JlbWFwKHVuYWxpZ25lZF9waHlzX2FkZHIsIHVuYWxpZ25lZF9zaXplLCByZXRfYWRkcik7CisKKwlyZXR1cm4gcmV0X2FkZHI7CiB9CiAKIC8qKgpAQCAtMjYxLDcgKzI2OCw3IEBACiB7CiAJLyoKIAkgKiBJZGVhbGx5LCB0aGlzIHNob3VsZCBiZToKLQkgKglwYXRfd2NfZW5hYmxlZCA/IF9QQUdFX0NBQ0hFX1VDIDogX1BBR0VfQ0FDSEVfVUNfTUlOVVM7CisJICoJcGF0X2VuYWJsZWQgPyBfUEFHRV9DQUNIRV9VQyA6IF9QQUdFX0NBQ0hFX1VDX01JTlVTOwogCSAqCiAJICogVGlsbCB3ZSBmaXggYWxsIFggZHJpdmVycyB0byB1c2UgaW9yZW1hcF93YygpLCB3ZSB3aWxsIHVzZQogCSAqIFVDIE1JTlVTLgpAQCAtMjg1LDcgKzI5Miw3IEBACiAgKi8KIHZvaWQgX19pb21lbSAqaW9yZW1hcF93Yyh1bnNpZ25lZCBsb25nIHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQogewotCWlmIChwYXRfd2NfZW5hYmxlZCkKKwlpZiAocGF0X2VuYWJsZWQpCiAJCXJldHVybiBfX2lvcmVtYXBfY2FsbGVyKHBoeXNfYWRkciwgc2l6ZSwgX1BBR0VfQ0FDSEVfV0MsCiAJCQkJCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7CiAJZWxzZQpAQCAtMzAwLDYgKzMwNywyOSBAQAogfQogRVhQT1JUX1NZTUJPTChpb3JlbWFwX2NhY2hlKTsKIAorc3RhdGljIHZvaWQgX19pb21lbSAqaW9yZW1hcF9kZWZhdWx0KHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsCisJCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXZvaWQgKnJldDsKKwlpbnQgZXJyOworCisJLyoKKwkgKiAtIFdCIGZvciBXQi1hYmxlIG1lbW9yeSBhbmQgbm8gb3RoZXIgY29uZmxpY3RpbmcgbWFwcGluZ3MKKwkgKiAtIFVDX01JTlVTIGZvciBub24tV0ItYWJsZSBtZW1vcnkgd2l0aCBubyBvdGhlciBjb25mbGljdGluZyBtYXBwaW5ncworCSAqIC0gSW5oZXJpdCBmcm9tIGNvbmZsaXRpbmcgbWFwcGluZ3Mgb3RoZXJ3aXNlCisJICovCisJZXJyID0gcmVzZXJ2ZV9tZW10eXBlKHBoeXNfYWRkciwgcGh5c19hZGRyICsgc2l6ZSwgLTEsICZmbGFncyk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBOVUxMOworCisJcmV0ID0gKHZvaWQgKikgX19pb3JlbWFwX2NhbGxlcihwaHlzX2FkZHIsIHNpemUsIGZsYWdzLAorCQkJCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkpOworCisJZnJlZV9tZW10eXBlKHBoeXNfYWRkciwgcGh5c19hZGRyICsgc2l6ZSk7CisJcmV0dXJuICh2b2lkIF9faW9tZW0gKilyZXQ7Cit9CisKIC8qKgogICogaW91bm1hcCAtIEZyZWUgYSBJTyByZW1hcHBpbmcKICAqIEBhZGRyOiB2aXJ0dWFsIGFkZHJlc3MgZnJvbSBpb3JlbWFwXyoKQEAgLTMxOCwxMyArMzQ4LDE1IEBACiAJICogdm1fYXJlYSBhbmQgYnkgc2ltcGx5IHJldHVybmluZyBhbiBhZGRyZXNzIGludG8gdGhlIGtlcm5lbCBtYXBwaW5nCiAJICogb2YgSVNBIHNwYWNlLiAgIFNvIGhhbmRsZSB0aGF0IGhlcmUuCiAJICovCi0JaWYgKGFkZHIgPj0gcGh5c190b192aXJ0KElTQV9TVEFSVF9BRERSRVNTKSAmJgotCSAgICBhZGRyIDwgcGh5c190b192aXJ0KElTQV9FTkRfQUREUkVTUykpCisJaWYgKCh2b2lkIF9fZm9yY2UgKilhZGRyID49IHBoeXNfdG9fdmlydChJU0FfU1RBUlRfQUREUkVTUykgJiYKKwkgICAgKHZvaWQgX19mb3JjZSAqKWFkZHIgPCBwaHlzX3RvX3ZpcnQoSVNBX0VORF9BRERSRVNTKSkKIAkJcmV0dXJuOwogCiAJYWRkciA9ICh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKikKIAkJKFBBR0VfTUFTSyAmICh1bnNpZ25lZCBsb25nIF9fZm9yY2UpYWRkcik7CiAKKwltbWlvdHJhY2VfaW91bm1hcChhZGRyKTsKKwogCS8qIFVzZSB0aGUgdm0gYXJlYSB1bmxvY2tlZCwgYXNzdW1pbmcgdGhlIGNhbGxlcgogCSAgIGVuc3VyZXMgdGhlcmUgaXNuJ3QgYW5vdGhlciBpb3VubWFwIGZvciB0aGUgc2FtZSBhZGRyZXNzCiAJICAgaW4gcGFyYWxsZWwuIFJldXNlIG9mIHRoZSB2aXJ0dWFsIGFkZHJlc3MgaXMgcHJldmVudGVkIGJ5CkBAIC0zMzIsNyArMzY0LDcgQEAKIAkgICBjcGEgdGFrZXMgY2FyZSBvZiB0aGUgZGlyZWN0IG1hcHBpbmdzLiAqLwogCXJlYWRfbG9jaygmdm1saXN0X2xvY2spOwogCWZvciAocCA9IHZtbGlzdDsgcDsgcCA9IHAtPm5leHQpIHsKLQkJaWYgKHAtPmFkZHIgPT0gYWRkcikKKwkJaWYgKHAtPmFkZHIgPT0gKHZvaWQgX19mb3JjZSAqKWFkZHIpCiAJCQlicmVhazsKIAl9CiAJcmVhZF91bmxvY2soJnZtbGlzdF9sb2NrKTsKQEAgLTM0Niw3ICszNzgsNyBAQAogCWZyZWVfbWVtdHlwZShwLT5waHlzX2FkZHIsIHAtPnBoeXNfYWRkciArIGdldF92bV9hcmVhX3NpemUocCkpOwogCiAJLyogRmluYWxseSByZW1vdmUgaXQgKi8KLQlvID0gcmVtb3ZlX3ZtX2FyZWEoKHZvaWQgKilhZGRyKTsKKwlvID0gcmVtb3ZlX3ZtX2FyZWEoKHZvaWQgX19mb3JjZSAqKWFkZHIpOwogCUJVR19PTihwICE9IG8gfHwgbyA9PSBOVUxMKTsKIAlrZnJlZShwKTsKIH0KQEAgLTM2NSw3ICszOTcsNyBAQAogCWlmIChwYWdlX2lzX3JhbShzdGFydCA+PiBQQUdFX1NISUZUKSkKIAkJcmV0dXJuIF9fdmEocGh5cyk7CiAKLQlhZGRyID0gKHZvaWQgKilpb3JlbWFwKHN0YXJ0LCBQQUdFX1NJWkUpOworCWFkZHIgPSAodm9pZCBfX2ZvcmNlICopaW9yZW1hcF9kZWZhdWx0KHN0YXJ0LCBQQUdFX1NJWkUpOwogCWlmIChhZGRyKQogCQlhZGRyID0gKHZvaWQgKikoKHVuc2lnbmVkIGxvbmcpYWRkciB8IChwaHlzICYgflBBR0VfTUFTSykpOwogCkBAIC0zODEsOCArNDEzLDYgQEAKIAlyZXR1cm47CiB9CiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0KIGludCBfX2luaXRkYXRhIGVhcmx5X2lvcmVtYXBfZGVidWc7CiAKIHN0YXRpYyBpbnQgX19pbml0IGVhcmx5X2lvcmVtYXBfZGVidWdfc2V0dXAoY2hhciAqc3RyKQpAQCAtMzk0LDggKzQyNCw3IEBACiBlYXJseV9wYXJhbSgiZWFybHlfaW9yZW1hcF9kZWJ1ZyIsIGVhcmx5X2lvcmVtYXBfZGVidWdfc2V0dXApOwogCiBzdGF0aWMgX19pbml0ZGF0YSBpbnQgYWZ0ZXJfcGFnaW5nX2luaXQ7Ci1zdGF0aWMgcHRlX3QgYm1fcHRlW1BBR0VfU0laRS9zaXplb2YocHRlX3QpXQotCQlfX3NlY3Rpb24oLmJzcy5wYWdlX2FsaWduZWQpOworc3RhdGljIHB0ZV90IGJtX3B0ZVtQQUdFX1NJWkUvc2l6ZW9mKHB0ZV90KV0gX19wYWdlX2FsaWduZWRfYnNzOwogCiBzdGF0aWMgaW5saW5lIHBtZF90ICogX19pbml0IGVhcmx5X2lvcmVtYXBfcG1kKHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKQEAgLTQ4NCwxMCArNTEzLDExIEBACiAJCXJldHVybjsKIAl9CiAJcHRlID0gZWFybHlfaW9yZW1hcF9wdGUoYWRkcik7CisKIAlpZiAocGdwcm90X3ZhbChmbGFncykpCiAJCXNldF9wdGUocHRlLCBwZm5fcHRlKHBoeXMgPj4gUEFHRV9TSElGVCwgZmxhZ3MpKTsKIAllbHNlCi0JCXB0ZV9jbGVhcihOVUxMLCBhZGRyLCBwdGUpOworCQlwdGVfY2xlYXIoJmluaXRfbW0sIGFkZHIsIHB0ZSk7CiAJX19mbHVzaF90bGJfb25lKGFkZHIpOwogfQogCkBAIC02MjUsNSArNjU1LDMgQEAKIHsKIAlXQVJOX09OKDEpOwogfQotCi0jZW5kaWYgLyogQ09ORklHX1g4Nl8zMiAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vazh0b3BvbG9neV82NC5jIGIvYXJjaC94ODYvbW0vazh0b3BvbG9neV82NC5jCmluZGV4IDFmNDc2ZTQuLjQxZjFiNWMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL2s4dG9wb2xvZ3lfNjQuYworKysgYi9hcmNoL3g4Ni9tbS9rOHRvcG9sb2d5XzY0LmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxhc20vbnVtYS5oPgogI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KICNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9rOC5oPgogCiBzdGF0aWMgX19pbml0IGludCBmaW5kX25vcnRoYnJpZGdlKHZvaWQpCiB7CkBAIC01NiwzNCArNTcsMzMgQEAKIAkvKgogCSAqIEZpbmQgcG9zc2libGUgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uOgogCSAqLworI2lmZGVmIENPTkZJR19YODZfTVBQQVJTRQogCWVhcmx5X2ZpbmRfc21wX2NvbmZpZygpOworI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FDUEkKIAkvKgogCSAqIFJlYWQgQVBJQyBpbmZvcm1hdGlvbiBmcm9tIEFDUEkgdGFibGVzLgogCSAqLwogCWVhcmx5X2FjcGlfYm9vdF9pbml0KCk7CiAjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X01QUEFSU0UKIAkvKgogCSAqIGdldCBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246CiAJICovCiAJaWYgKHNtcF9mb3VuZF9jb25maWcpCiAJCWVhcmx5X2dldF9zbXBfY29uZmlnKCk7CisjZW5kaWYKIAllYXJseV9pbml0X2xhcGljX21hcHBpbmcoKTsKIH0KIAogaW50IF9faW5pdCBrOF9zY2FuX25vZGVzKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQogeworCXVuc2lnbmVkIG51bW5vZGVzLCBjb3JlcywgYml0cywgYXBpY2lkX2Jhc2U7CiAJdW5zaWduZWQgbG9uZyBwcmV2YmFzZTsKIAlzdHJ1Y3QgYm9vdG5vZGUgbm9kZXNbOF07Ci0JaW50IG5vZGVpZCwgaSwgbmI7CiAJdW5zaWduZWQgY2hhciBub2RlaWRzWzhdOwotCWludCBmb3VuZCA9IDA7Ci0JdTMyIHJlZzsKLQl1bnNpZ25lZCBudW1ub2RlczsKLQl1bnNpZ25lZCBjb3JlczsKLQl1bnNpZ25lZCBiaXRzOwotCWludCBqOwotCXVuc2lnbmVkIGFwaWNpZF9iYXNlOworCWludCBpLCBqLCBuYiwgZm91bmQgPSAwOworCXUzMiBub2RlaWQsIHJlZzsKIAogCWlmICghZWFybHlfcGNpX2FsbG93ZWQoKSkKIAkJcmV0dXJuIC0xOwpAQCAtMTA1LDcgKzEwNSw2IEBACiAJcHJldmJhc2UgPSAwOwogCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKIAkJdW5zaWduZWQgbG9uZyBiYXNlLCBsaW1pdDsKLQkJdTMyIG5vZGVpZDsKIAogCQliYXNlID0gcmVhZF9wY2lfY29uZmlnKDAsIG5iLCAxLCAweDQwICsgaSo4KTsKIAkJbGltaXQgPSByZWFkX3BjaV9jb25maWcoMCwgbmIsIDEsIDB4NDQgKyBpKjgpOwpAQCAtMTQ0LDggKzE0Myw4IEBACiAJCWxpbWl0IHw9ICgxPDwyNCktMTsKIAkJbGltaXQrKzsKIAotCQlpZiAobGltaXQgPiBlbmRfcGZuIDw8IFBBR0VfU0hJRlQpCi0JCQlsaW1pdCA9IGVuZF9wZm4gPDwgUEFHRV9TSElGVDsKKwkJaWYgKGxpbWl0ID4gbWF4X3BmbiA8PCBQQUdFX1NISUZUKQorCQkJbGltaXQgPSBtYXhfcGZuIDw8IFBBR0VfU0hJRlQ7CiAJCWlmIChsaW1pdCA8PSBiYXNlKQogCQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2ttbWlvLmMgYi9hcmNoL3g4Ni9tbS9rbW1pby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzZDgyMDMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9tbS9rbW1pby5jCkBAIC0wLDAgKzEsNTEwIEBACisvKiBTdXBwb3J0IGZvciBNTUlPIHByb2Jlcy4KKyAqIEJlbmZpdCBtYW55IGNvZGUgZnJvbSBrcHJvYmVzCisgKiAoQykgMjAwMiBMb3VpcyBaaHVhbmcgPGxvdWlzLnpodWFuZ0BpbnRlbC5jb20+LgorICogICAgIDIwMDcgQWxleGFuZGVyIEVpY2huZXIKKyAqICAgICAyMDA4IFBla2thIFBhYWxhbmVuIDxwcUBpa2kuZmk+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9yY3VsaXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9oYXNoLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wcmVlbXB0Lmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgva2RlYnVnLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxhc20vZGVidWdyZWcuaD4KKyNpbmNsdWRlIDxsaW51eC9tbWlvdHJhY2UuaD4KKworI2RlZmluZSBLTU1JT19QQUdFX0hBU0hfQklUUyA0CisjZGVmaW5lIEtNTUlPX1BBR0VfVEFCTEVfU0laRSAoMSA8PCBLTU1JT19QQUdFX0hBU0hfQklUUykKKworc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqcmVsZWFzZV9uZXh0OworCXVuc2lnbmVkIGxvbmcgcGFnZTsgLyogbG9jYXRpb24gb2YgdGhlIGZhdWx0IHBhZ2UgKi8KKworCS8qCisJICogTnVtYmVyIG9mIHRpbWVzIHRoaXMgcGFnZSBoYXMgYmVlbiByZWdpc3RlcmVkIGFzIGEgcGFydAorCSAqIG9mIGEgcHJvYmUuIElmIHplcm8sIHBhZ2UgaXMgZGlzYXJtZWQgYW5kIHRoaXMgbWF5IGJlIGZyZWVkLgorCSAqIFVzZWQgb25seSBieSB3cml0ZXJzIChSQ1UpLgorCSAqLworCWludCBjb3VudDsKK307CisKK3N0cnVjdCBrbW1pb19kZWxheWVkX3JlbGVhc2UgeworCXN0cnVjdCByY3VfaGVhZCByY3U7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKnJlbGVhc2VfbGlzdDsKK307CisKK3N0cnVjdCBrbW1pb19jb250ZXh0IHsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqZnBhZ2U7CisJc3RydWN0IGttbWlvX3Byb2JlICpwcm9iZTsKKwl1bnNpZ25lZCBsb25nIHNhdmVkX2ZsYWdzOworCXVuc2lnbmVkIGxvbmcgYWRkcjsKKwlpbnQgYWN0aXZlOworfTsKKworc3RhdGljIERFRklORV9TUElOTE9DSyhrbW1pb19sb2NrKTsKKworLyogUHJvdGVjdGVkIGJ5IGttbWlvX2xvY2sgKi8KK3Vuc2lnbmVkIGludCBrbW1pb19jb3VudDsKKworLyogUmVhZC1wcm90ZWN0ZWQgYnkgUkNVLCB3cml0ZS1wcm90ZWN0ZWQgYnkga21taW9fbG9jay4gKi8KK3N0YXRpYyBzdHJ1Y3QgbGlzdF9oZWFkIGttbWlvX3BhZ2VfdGFibGVbS01NSU9fUEFHRV9UQUJMRV9TSVpFXTsKK3N0YXRpYyBMSVNUX0hFQUQoa21taW9fcHJvYmVzKTsKKworc3RhdGljIHN0cnVjdCBsaXN0X2hlYWQgKmttbWlvX3BhZ2VfbGlzdCh1bnNpZ25lZCBsb25nIHBhZ2UpCit7CisJcmV0dXJuICZrbW1pb19wYWdlX3RhYmxlW2hhc2hfbG9uZyhwYWdlLCBLTU1JT19QQUdFX0hBU0hfQklUUyldOworfQorCisvKiBBY2Nlc3NlZCBwZXItY3B1ICovCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IGttbWlvX2NvbnRleHQsIGttbWlvX2N0eCk7CisKKy8qCisgKiB0aGlzIGlzIGJhc2ljYWxseSBhIGR5bmFtaWMgc3RhYmJpbmcgcHJvYmxlbToKKyAqIENvdWxkIHVzZSB0aGUgZXhpc3RpbmcgcHJpbyB0cmVlIGNvZGUgb3IKKyAqIFBvc3NpYmxlIGJldHRlciBpbXBsZW1lbnRhdGlvbnM6CisgKiBUaGUgSW50ZXJ2YWwgU2tpcCBMaXN0OiBBIERhdGEgU3RydWN0dXJlIGZvciBGaW5kaW5nIEFsbCBJbnRlcnZhbHMgVGhhdAorICogT3ZlcmxhcCBhIFBvaW50IChtaWdodCBiZSBzaW1wbGUpCisgKiBTcGFjZSBFZmZpY2llbnQgRHluYW1pYyBTdGFiYmluZyB3aXRoIEZhc3QgUXVlcmllcyAtIE1pa2tlbCBUaG9ydXAKKyAqLworLyogR2V0IHRoZSBrbW1pbyBhdCB0aGlzIGFkZHIgKGlmIGFueSkuIFlvdSBtdXN0IGJlIGhvbGRpbmcgUkNVIHJlYWQgbG9jay4gKi8KK3N0YXRpYyBzdHJ1Y3Qga21taW9fcHJvYmUgKmdldF9rbW1pb19wcm9iZSh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJc3RydWN0IGttbWlvX3Byb2JlICpwOworCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHAsICZrbW1pb19wcm9iZXMsIGxpc3QpIHsKKwkJaWYgKGFkZHIgPj0gcC0+YWRkciAmJiBhZGRyIDw9IChwLT5hZGRyICsgcC0+bGVuKSkKKwkJCXJldHVybiBwOworCX0KKwlyZXR1cm4gTlVMTDsKK30KKworLyogWW91IG11c3QgYmUgaG9sZGluZyBSQ1UgcmVhZCBsb2NrLiAqLworc3RhdGljIHN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpnZXRfa21taW9fZmF1bHRfcGFnZSh1bnNpZ25lZCBsb25nIHBhZ2UpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqaGVhZDsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqcDsKKworCXBhZ2UgJj0gUEFHRV9NQVNLOworCWhlYWQgPSBrbW1pb19wYWdlX2xpc3QocGFnZSk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocCwgaGVhZCwgbGlzdCkgeworCQlpZiAocC0+cGFnZSA9PSBwYWdlKQorCQkJcmV0dXJuIHA7CisJfQorCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBzZXRfcGFnZV9wcmVzZW50KHVuc2lnbmVkIGxvbmcgYWRkciwgYm9vbCBwcmVzZW50LAorCQkJCQkJCXVuc2lnbmVkIGludCAqcGdsZXZlbCkKK3sKKwlwdGV2YWxfdCBwdGV2YWw7CisJcG1kdmFsX3QgcG1kdmFsOworCXVuc2lnbmVkIGludCBsZXZlbDsKKwlwbWRfdCAqcG1kOworCXB0ZV90ICpwdGUgPSBsb29rdXBfYWRkcmVzcyhhZGRyLCAmbGV2ZWwpOworCisJaWYgKCFwdGUpIHsKKwkJcHJfZXJyKCJrbW1pbzogbm8gcHRlIGZvciBwYWdlIDB4JTA4bHhcbiIsIGFkZHIpOworCQlyZXR1cm47CisJfQorCisJaWYgKHBnbGV2ZWwpCisJCSpwZ2xldmVsID0gbGV2ZWw7CisKKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBQR19MRVZFTF8yTToKKwkJcG1kID0gKHBtZF90ICopcHRlOworCQlwbWR2YWwgPSBwbWRfdmFsKCpwbWQpICYgfl9QQUdFX1BSRVNFTlQ7CisJCWlmIChwcmVzZW50KQorCQkJcG1kdmFsIHw9IF9QQUdFX1BSRVNFTlQ7CisJCXNldF9wbWQocG1kLCBfX3BtZChwbWR2YWwpKTsKKwkJYnJlYWs7CisKKwljYXNlIFBHX0xFVkVMXzRLOgorCQlwdGV2YWwgPSBwdGVfdmFsKCpwdGUpICYgfl9QQUdFX1BSRVNFTlQ7CisJCWlmIChwcmVzZW50KQorCQkJcHRldmFsIHw9IF9QQUdFX1BSRVNFTlQ7CisJCXNldF9wdGVfYXRvbWljKHB0ZSwgX19wdGUocHRldmFsKSk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcHJfZXJyKCJrbW1pbzogdW5leHBlY3RlZCBwYWdlIGxldmVsIDB4JXguXG4iLCBsZXZlbCk7CisJCXJldHVybjsKKwl9CisKKwlfX2ZsdXNoX3RsYl9vbmUoYWRkcik7Cit9CisKKy8qKiBNYXJrIHRoZSBnaXZlbiBwYWdlIGFzIG5vdCBwcmVzZW50LiBBY2Nlc3MgdG8gaXQgd2lsbCB0cmlnZ2VyIGEgZmF1bHQuICovCitzdGF0aWMgdm9pZCBhcm1fa21taW9fZmF1bHRfcGFnZSh1bnNpZ25lZCBsb25nIHBhZ2UsIHVuc2lnbmVkIGludCAqcGdsZXZlbCkKK3sKKwlzZXRfcGFnZV9wcmVzZW50KHBhZ2UgJiBQQUdFX01BU0ssIGZhbHNlLCBwZ2xldmVsKTsKK30KKworLyoqIE1hcmsgdGhlIGdpdmVuIHBhZ2UgYXMgcHJlc2VudC4gKi8KK3N0YXRpYyB2b2lkIGRpc2FybV9rbW1pb19mYXVsdF9wYWdlKHVuc2lnbmVkIGxvbmcgcGFnZSwgdW5zaWduZWQgaW50ICpwZ2xldmVsKQoreworCXNldF9wYWdlX3ByZXNlbnQocGFnZSAmIFBBR0VfTUFTSywgdHJ1ZSwgcGdsZXZlbCk7Cit9CisKKy8qCisgKiBUaGlzIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGRvX3BhZ2VfZmF1bHQoKS4KKyAqCisgKiBXZSBtYXkgYmUgaW4gYW4gaW50ZXJydXB0IG9yIGEgY3JpdGljYWwgc2VjdGlvbi4gQWxzbyBwcmVmZWN0aGluZyBtYXkKKyAqIHRyaWdnZXIgYSBwYWdlIGZhdWx0LiBXZSBtYXkgYmUgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzIHN3aXRjaC4KKyAqIFdlIGNhbm5vdCB0YWtlIGFueSBsb2NrcywgYmVjYXVzZSB3ZSBjb3VsZCBiZSBleGVjdXRpbmcgZXNwZWNpYWxseQorICogd2l0aGluIGEga21taW8gY3JpdGljYWwgc2VjdGlvbi4KKyAqCisgKiBMb2NhbCBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCwgc28gcHJlZW1wdGlvbiBjYW5ub3QgaGFwcGVuLgorICogRG8gbm90IGVuYWJsZSBpbnRlcnJ1cHRzLCBkbyBub3Qgc2xlZXAsIGFuZCB3YXRjaCBvdXQgZm9yIG90aGVyIENQVXMuCisgKi8KKy8qCisgKiBJbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBvbiBlbnRyeSBhcyB0cmFwMyBpcyBhbiBpbnRlcnJ1cHQgZ2F0ZQorICogYW5kIHRoZXkgcmVtYWluIGRpc2FibGVkIHRob3JvdWdoIG91dCB0aGlzIGZ1bmN0aW9uLgorICovCitpbnQga21taW9faGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyBhZGRyKQoreworCXN0cnVjdCBrbW1pb19jb250ZXh0ICpjdHg7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKmZhdWx0cGFnZTsKKwlpbnQgcmV0ID0gMDsgLyogZGVmYXVsdCB0byBmYXVsdCBub3QgaGFuZGxlZCAqLworCisJLyoKKwkgKiBQcmVlbXB0aW9uIGlzIG5vdyBkaXNhYmxlZCB0byBwcmV2ZW50IHByb2Nlc3Mgc3dpdGNoIGR1cmluZworCSAqIHNpbmdsZSBzdGVwcGluZy4gV2UgY2FuIG9ubHkgaGFuZGxlIG9uZSBhY3RpdmUga21taW8gdHJhY2UKKwkgKiBwZXIgY3B1LCBzbyBlbnN1cmUgdGhhdCB3ZSBmaW5pc2ggaXQgYmVmb3JlIHNvbWV0aGluZyBlbHNlCisJICogZ2V0cyB0byBydW4uIFdlIGFsc28gaG9sZCB0aGUgUkNVIHJlYWQgbG9jayBvdmVyIHNpbmdsZQorCSAqIHN0ZXBwaW5nIHRvIGF2b2lkIGxvb2tpbmcgdXAgdGhlIHByb2JlIGFuZCBrbW1pb19mYXVsdF9wYWdlCisJICogYWdhaW4uCisJICovCisJcHJlZW1wdF9kaXNhYmxlKCk7CisJcmN1X3JlYWRfbG9jaygpOworCisJZmF1bHRwYWdlID0gZ2V0X2ttbWlvX2ZhdWx0X3BhZ2UoYWRkcik7CisJaWYgKCFmYXVsdHBhZ2UpIHsKKwkJLyoKKwkJICogRWl0aGVyIHRoaXMgcGFnZSBmYXVsdCBpcyBub3QgY2F1c2VkIGJ5IGttbWlvLCBvcgorCQkgKiBhbm90aGVyIENQVSBqdXN0IHB1bGxlZCB0aGUga21taW8gcHJvYmUgZnJvbSB1bmRlcgorCQkgKiBvdXIgZmVldC4gVGhlIGxhdHRlciBjYXNlIHNob3VsZCBub3QgYmUgcG9zc2libGUuCisJCSAqLworCQlnb3RvIG5vX2ttbWlvOworCX0KKworCWN0eCA9ICZnZXRfY3B1X3ZhcihrbW1pb19jdHgpOworCWlmIChjdHgtPmFjdGl2ZSkgeworCQlkaXNhcm1fa21taW9fZmF1bHRfcGFnZShmYXVsdHBhZ2UtPnBhZ2UsIE5VTEwpOworCQlpZiAoYWRkciA9PSBjdHgtPmFkZHIpIHsKKwkJCS8qCisJCQkgKiBPbiBTTVAgd2Ugc29tZXRpbWVzIGdldCByZWN1cnNpdmUgcHJvYmUgaGl0cyBvbiB0aGUKKwkJCSAqIHNhbWUgYWRkcmVzcy4gQ29udGV4dCBpcyBhbHJlYWR5IHNhdmVkLCBmYWxsIG91dC4KKwkJCSAqLworCQkJcHJfZGVidWcoImttbWlvOiBkdXBsaWNhdGUgcHJvYmUgaGl0IG9uIENQVSAlZCwgZm9yICIKKwkJCQkJCSJhZGRyZXNzIDB4JTA4bHguXG4iLAorCQkJCQkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBhZGRyKTsKKwkJCXJldCA9IDE7CisJCQlnb3RvIG5vX2ttbWlvX2N0eDsKKwkJfQorCQkvKgorCQkgKiBQcmV2ZW50IG92ZXJ3cml0aW5nIGFscmVhZHkgaW4tZmxpZ2h0IGNvbnRleHQuCisJCSAqIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4sIGxldCdzIGhvcGUgZGlzYXJtaW5nIGF0IGxlYXN0CisJCSAqIHByZXZlbnRzIGEgcGFuaWMuCisJCSAqLworCQlwcl9lbWVyZygia21taW86IHJlY3Vyc2l2ZSBwcm9iZSBoaXQgb24gQ1BVICVkLCAiCisJCQkJCSJmb3IgYWRkcmVzcyAweCUwOGx4LiBJZ25vcmluZy5cbiIsCisJCQkJCXNtcF9wcm9jZXNzb3JfaWQoKSwgYWRkcik7CisJCXByX2VtZXJnKCJrbW1pbzogcHJldmlvdXMgaGl0IHdhcyBhdCAweCUwOGx4LlxuIiwKKwkJCQkJY3R4LT5hZGRyKTsKKwkJZ290byBub19rbW1pb19jdHg7CisJfQorCWN0eC0+YWN0aXZlKys7CisKKwljdHgtPmZwYWdlID0gZmF1bHRwYWdlOworCWN0eC0+cHJvYmUgPSBnZXRfa21taW9fcHJvYmUoYWRkcik7CisJY3R4LT5zYXZlZF9mbGFncyA9IChyZWdzLT5mbGFncyAmIChYODZfRUZMQUdTX1RGIHwgWDg2X0VGTEFHU19JRikpOworCWN0eC0+YWRkciA9IGFkZHI7CisKKwlpZiAoY3R4LT5wcm9iZSAmJiBjdHgtPnByb2JlLT5wcmVfaGFuZGxlcikKKwkJY3R4LT5wcm9iZS0+cHJlX2hhbmRsZXIoY3R4LT5wcm9iZSwgcmVncywgYWRkcik7CisKKwkvKgorCSAqIEVuYWJsZSBzaW5nbGUtc3RlcHBpbmcgYW5kIGRpc2FibGUgaW50ZXJydXB0cyBmb3IgdGhlIGZhdWx0aW5nCisJICogY29udGV4dC4gTG9jYWwgaW50ZXJydXB0cyBtdXN0IG5vdCBnZXQgZW5hYmxlZCBkdXJpbmcgc3RlcHBpbmcuCisJICovCisJcmVncy0+ZmxhZ3MgfD0gWDg2X0VGTEFHU19URjsKKwlyZWdzLT5mbGFncyAmPSB+WDg2X0VGTEFHU19JRjsKKworCS8qIE5vdyB3ZSBzZXQgcHJlc2VudCBiaXQgaW4gUFRFIGFuZCBzaW5nbGUgc3RlcC4gKi8KKwlkaXNhcm1fa21taW9fZmF1bHRfcGFnZShjdHgtPmZwYWdlLT5wYWdlLCBOVUxMKTsKKworCS8qCisJICogSWYgYW5vdGhlciBjcHUgYWNjZXNzZXMgdGhlIHNhbWUgcGFnZSB3aGlsZSB3ZSBhcmUgc3RlcHBpbmcsCisJICogdGhlIGFjY2VzcyB3aWxsIG5vdCBiZSBjYXVnaHQuIEl0IHdpbGwgc2ltcGx5IHN1Y2NlZWQgYW5kIHRoZQorCSAqIG9ubHkgZG93bnNpZGUgaXMgd2UgbG9zZSB0aGUgZXZlbnQuIElmIHRoaXMgYmVjb21lcyBhIHByb2JsZW0sCisJICogdGhlIHVzZXIgc2hvdWxkIGRyb3AgdG8gc2luZ2xlIGNwdSBiZWZvcmUgdHJhY2luZy4KKwkgKi8KKworCXB1dF9jcHVfdmFyKGttbWlvX2N0eCk7CisJcmV0dXJuIDE7IC8qIGZhdWx0IGhhbmRsZWQgKi8KKworbm9fa21taW9fY3R4OgorCXB1dF9jcHVfdmFyKGttbWlvX2N0eCk7Citub19rbW1pbzoKKwlyY3VfcmVhZF91bmxvY2soKTsKKwlwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkKCk7CisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEludGVycnVwdHMgYXJlIGRpc2FibGVkIG9uIGVudHJ5IGFzIHRyYXAxIGlzIGFuIGludGVycnVwdCBnYXRlCisgKiBhbmQgdGhleSByZW1haW4gZGlzYWJsZWQgdGhvcm91Z2ggb3V0IHRoaXMgZnVuY3Rpb24uCisgKiBUaGlzIG11c3QgYWx3YXlzIGdldCBjYWxsZWQgYXMgdGhlIHBhaXIgdG8ga21taW9faGFuZGxlcigpLgorICovCitzdGF0aWMgaW50IHBvc3Rfa21taW9faGFuZGxlcih1bnNpZ25lZCBsb25nIGNvbmRpdGlvbiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJaW50IHJldCA9IDA7CisJc3RydWN0IGttbWlvX2NvbnRleHQgKmN0eCA9ICZnZXRfY3B1X3ZhcihrbW1pb19jdHgpOworCisJaWYgKCFjdHgtPmFjdGl2ZSkgeworCQlwcl9kZWJ1Zygia21taW86IHNwdXJpb3VzIGRlYnVnIHRyYXAgb24gQ1BVICVkLlxuIiwKKwkJCQkJCQlzbXBfcHJvY2Vzc29yX2lkKCkpOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoY3R4LT5wcm9iZSAmJiBjdHgtPnByb2JlLT5wb3N0X2hhbmRsZXIpCisJCWN0eC0+cHJvYmUtPnBvc3RfaGFuZGxlcihjdHgtPnByb2JlLCBjb25kaXRpb24sIHJlZ3MpOworCisJYXJtX2ttbWlvX2ZhdWx0X3BhZ2UoY3R4LT5mcGFnZS0+cGFnZSwgTlVMTCk7CisKKwlyZWdzLT5mbGFncyAmPSB+WDg2X0VGTEFHU19URjsKKwlyZWdzLT5mbGFncyB8PSBjdHgtPnNhdmVkX2ZsYWdzOworCisJLyogVGhlc2Ugd2VyZSBhY3F1aXJlZCBpbiBrbW1pb19oYW5kbGVyKCkuICovCisJY3R4LT5hY3RpdmUtLTsKKwlCVUdfT04oY3R4LT5hY3RpdmUpOworCXJjdV9yZWFkX3VubG9jaygpOworCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWQoKTsKKworCS8qCisJICogaWYgc29tZWJvZHkgZWxzZSBpcyBzaW5nbGVzdGVwcGluZyBhY3Jvc3MgYSBwcm9iZSBwb2ludCwgZmxhZ3MKKwkgKiB3aWxsIGhhdmUgVEYgc2V0LCBpbiB3aGljaCBjYXNlLCBjb250aW51ZSB0aGUgcmVtYWluaW5nIHByb2Nlc3NpbmcKKwkgKiBvZiBkb19kZWJ1ZywgYXMgaWYgdGhpcyBpcyBub3QgYSBwcm9iZSBoaXQuCisJICovCisJaWYgKCEocmVncy0+ZmxhZ3MgJiBYODZfRUZMQUdTX1RGKSkKKwkJcmV0ID0gMTsKK291dDoKKwlwdXRfY3B1X3ZhcihrbW1pb19jdHgpOworCXJldHVybiByZXQ7Cit9CisKKy8qIFlvdSBtdXN0IGJlIGhvbGRpbmcga21taW9fbG9jay4gKi8KK3N0YXRpYyBpbnQgYWRkX2ttbWlvX2ZhdWx0X3BhZ2UodW5zaWduZWQgbG9uZyBwYWdlKQoreworCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpmOworCisJcGFnZSAmPSBQQUdFX01BU0s7CisJZiA9IGdldF9rbW1pb19mYXVsdF9wYWdlKHBhZ2UpOworCWlmIChmKSB7CisJCWlmICghZi0+Y291bnQpCisJCQlhcm1fa21taW9fZmF1bHRfcGFnZShmLT5wYWdlLCBOVUxMKTsKKwkJZi0+Y291bnQrKzsKKwkJcmV0dXJuIDA7CisJfQorCisJZiA9IGttYWxsb2Moc2l6ZW9mKCpmKSwgR0ZQX0FUT01JQyk7CisJaWYgKCFmKQorCQlyZXR1cm4gLTE7CisKKwlmLT5jb3VudCA9IDE7CisJZi0+cGFnZSA9IHBhZ2U7CisJbGlzdF9hZGRfcmN1KCZmLT5saXN0LCBrbW1pb19wYWdlX2xpc3QoZi0+cGFnZSkpOworCisJYXJtX2ttbWlvX2ZhdWx0X3BhZ2UoZi0+cGFnZSwgTlVMTCk7CisKKwlyZXR1cm4gMDsKK30KKworLyogWW91IG11c3QgYmUgaG9sZGluZyBrbW1pb19sb2NrLiAqLworc3RhdGljIHZvaWQgcmVsZWFzZV9rbW1pb19mYXVsdF9wYWdlKHVuc2lnbmVkIGxvbmcgcGFnZSwKKwkJCQlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqKnJlbGVhc2VfbGlzdCkKK3sKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqZjsKKworCXBhZ2UgJj0gUEFHRV9NQVNLOworCWYgPSBnZXRfa21taW9fZmF1bHRfcGFnZShwYWdlKTsKKwlpZiAoIWYpCisJCXJldHVybjsKKworCWYtPmNvdW50LS07CisJQlVHX09OKGYtPmNvdW50IDwgMCk7CisJaWYgKCFmLT5jb3VudCkgeworCQlkaXNhcm1fa21taW9fZmF1bHRfcGFnZShmLT5wYWdlLCBOVUxMKTsKKwkJZi0+cmVsZWFzZV9uZXh0ID0gKnJlbGVhc2VfbGlzdDsKKwkJKnJlbGVhc2VfbGlzdCA9IGY7CisJfQorfQorCisvKgorICogV2l0aCBwYWdlLXVuYWxpZ25lZCBpb3JlbWFwcywgb25lIG9yIHR3byBhcm1lZCBwYWdlcyBtYXkgY29udGFpbgorICogYWRkcmVzc2VzIGZyb20gb3V0c2lkZSB0aGUgaW50ZW5kZWQgbWFwcGluZy4gRXZlbnRzIGZvciB0aGVzZSBhZGRyZXNzZXMKKyAqIGFyZSBjdXJyZW50bHkgc2lsZW50bHkgZHJvcHBlZC4gVGhlIGV2ZW50cyBtYXkgcmVzdWx0IG9ubHkgZnJvbSBwcm9ncmFtbWluZworICogbWlzdGFrZXMgYnkgYWNjZXNzaW5nIGFkZHJlc3NlcyBiZWZvcmUgdGhlIGJlZ2lubmluZyBvciBwYXN0IHRoZSBlbmQgb2YgYQorICogbWFwcGluZy4KKyAqLworaW50IHJlZ2lzdGVyX2ttbWlvX3Byb2JlKHN0cnVjdCBrbW1pb19wcm9iZSAqcCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQgPSAwOworCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7CisJY29uc3QgdW5zaWduZWQgbG9uZyBzaXplX2xpbSA9IHAtPmxlbiArIChwLT5hZGRyICYgflBBR0VfTUFTSyk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgma21taW9fbG9jaywgZmxhZ3MpOworCWlmIChnZXRfa21taW9fcHJvYmUocC0+YWRkcikpIHsKKwkJcmV0ID0gLUVFWElTVDsKKwkJZ290byBvdXQ7CisJfQorCWttbWlvX2NvdW50Kys7CisJbGlzdF9hZGRfcmN1KCZwLT5saXN0LCAma21taW9fcHJvYmVzKTsKKwl3aGlsZSAoc2l6ZSA8IHNpemVfbGltKSB7CisJCWlmIChhZGRfa21taW9fZmF1bHRfcGFnZShwLT5hZGRyICsgc2l6ZSkpCisJCQlwcl9lcnIoImttbWlvOiBVbmFibGUgdG8gc2V0IHBhZ2UgZmF1bHQuXG4iKTsKKwkJc2l6ZSArPSBQQUdFX1NJWkU7CisJfQorb3V0OgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmttbWlvX2xvY2ssIGZsYWdzKTsKKwkvKgorCSAqIFhYWDogV2hhdCBzaG91bGQgSSBkbyBoZXJlPworCSAqIEhlcmUgd2FzIGEgY2FsbCB0byBnbG9iYWxfZmx1c2hfdGxiKCksIGJ1dCBpdCBkb2VzIG5vdCBleGlzdAorCSAqIGFueW1vcmUuIEl0IHNlZW1zIGl0J3Mgbm90IG5lZWRlZCBhZnRlciBhbGwuCisJICovCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0wocmVnaXN0ZXJfa21taW9fcHJvYmUpOworCitzdGF0aWMgdm9pZCByY3VfZnJlZV9rbW1pb19mYXVsdF9wYWdlcyhzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCit7CisJc3RydWN0IGttbWlvX2RlbGF5ZWRfcmVsZWFzZSAqZHIgPSBjb250YWluZXJfb2YoCisJCQkJCQloZWFkLAorCQkJCQkJc3RydWN0IGttbWlvX2RlbGF5ZWRfcmVsZWFzZSwKKwkJCQkJCXJjdSk7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKnAgPSBkci0+cmVsZWFzZV9saXN0OworCXdoaWxlIChwKSB7CisJCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpuZXh0ID0gcC0+cmVsZWFzZV9uZXh0OworCQlCVUdfT04ocC0+Y291bnQpOworCQlrZnJlZShwKTsKKwkJcCA9IG5leHQ7CisJfQorCWtmcmVlKGRyKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlX2ttbWlvX2ZhdWx0X3BhZ2VzKHN0cnVjdCByY3VfaGVhZCAqaGVhZCkKK3sKKwlzdHJ1Y3Qga21taW9fZGVsYXllZF9yZWxlYXNlICpkciA9IGNvbnRhaW5lcl9vZigKKwkJCQkJCWhlYWQsCisJCQkJCQlzdHJ1Y3Qga21taW9fZGVsYXllZF9yZWxlYXNlLAorCQkJCQkJcmN1KTsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqcCA9IGRyLT5yZWxlYXNlX2xpc3Q7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKipwcmV2cCA9ICZkci0+cmVsZWFzZV9saXN0OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmttbWlvX2xvY2ssIGZsYWdzKTsKKwl3aGlsZSAocCkgeworCQlpZiAoIXAtPmNvdW50KQorCQkJbGlzdF9kZWxfcmN1KCZwLT5saXN0KTsKKwkJZWxzZQorCQkJKnByZXZwID0gcC0+cmVsZWFzZV9uZXh0OworCQlwcmV2cCA9ICZwLT5yZWxlYXNlX25leHQ7CisJCXAgPSBwLT5yZWxlYXNlX25leHQ7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmttbWlvX2xvY2ssIGZsYWdzKTsKKwkvKiBUaGlzIGlzIHRoZSByZWFsIFJDVSBkZXN0cm95IGNhbGwuICovCisJY2FsbF9yY3UoJmRyLT5yY3UsIHJjdV9mcmVlX2ttbWlvX2ZhdWx0X3BhZ2VzKTsKK30KKworLyoKKyAqIFJlbW92ZSBhIGttbWlvIHByb2JlLiBZb3UgaGF2ZSB0byBzeW5jaHJvbml6ZV9yY3UoKSBiZWZvcmUgeW91IGNhbiBiZQorICogc3VyZSB0aGF0IHRoZSBjYWxsYmFja3Mgd2lsbCBub3QgYmUgY2FsbGVkIGFueW1vcmUuIE9ubHkgYWZ0ZXIgdGhhdAorICogeW91IG1heSBhY3R1YWxseSByZWxlYXNlIHlvdXIgc3RydWN0IGttbWlvX3Byb2JlLgorICoKKyAqIFVucmVnaXN0ZXJpbmcgYSBrbW1pbyBmYXVsdCBwYWdlIGhhcyB0aHJlZSBzdGVwczoKKyAqIDEuIHJlbGVhc2Vfa21taW9fZmF1bHRfcGFnZSgpCisgKiAgICBEaXNhcm0gdGhlIHBhZ2UsIHdhaXQgYSBncmFjZSBwZXJpb2QgdG8gbGV0IGFsbCBmYXVsdHMgZmluaXNoLgorICogMi4gcmVtb3ZlX2ttbWlvX2ZhdWx0X3BhZ2VzKCkKKyAqICAgIFJlbW92ZSB0aGUgcGFnZXMgZnJvbSBrbW1pb19wYWdlX3RhYmxlLgorICogMy4gcmN1X2ZyZWVfa21taW9fZmF1bHRfcGFnZXMoKQorICogICAgQWN0YWxseSBmcmVlIHRoZSBrbW1pb19mYXVsdF9wYWdlIHN0cnVjdHMgYXMgd2l0aCBSQ1UuCisgKi8KK3ZvaWQgdW5yZWdpc3Rlcl9rbW1pb19wcm9iZShzdHJ1Y3Qga21taW9fcHJvYmUgKnApCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIHNpemUgPSAwOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgc2l6ZV9saW0gPSBwLT5sZW4gKyAocC0+YWRkciAmIH5QQUdFX01BU0spOworCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpyZWxlYXNlX2xpc3QgPSBOVUxMOworCXN0cnVjdCBrbW1pb19kZWxheWVkX3JlbGVhc2UgKmRyZWxlYXNlOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmttbWlvX2xvY2ssIGZsYWdzKTsKKwl3aGlsZSAoc2l6ZSA8IHNpemVfbGltKSB7CisJCXJlbGVhc2Vfa21taW9fZmF1bHRfcGFnZShwLT5hZGRyICsgc2l6ZSwgJnJlbGVhc2VfbGlzdCk7CisJCXNpemUgKz0gUEFHRV9TSVpFOworCX0KKwlsaXN0X2RlbF9yY3UoJnAtPmxpc3QpOworCWttbWlvX2NvdW50LS07CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgma21taW9fbG9jaywgZmxhZ3MpOworCisJZHJlbGVhc2UgPSBrbWFsbG9jKHNpemVvZigqZHJlbGVhc2UpLCBHRlBfQVRPTUlDKTsKKwlpZiAoIWRyZWxlYXNlKSB7CisJCXByX2NyaXQoImttbWlvOiBsZWFraW5nIGttbWlvX2ZhdWx0X3BhZ2Ugb2JqZWN0cy5cbiIpOworCQlyZXR1cm47CisJfQorCWRyZWxlYXNlLT5yZWxlYXNlX2xpc3QgPSByZWxlYXNlX2xpc3Q7CisKKwkvKgorCSAqIFRoaXMgaXMgbm90IHJlYWxseSBSQ1UgaGVyZS4gV2UgaGF2ZSBqdXN0IGRpc2FybWVkIGEgc2V0IG9mCisJICogcGFnZXMgc28gdGhhdCB0aGV5IGNhbm5vdCB0cmlnZ2VyIHBhZ2UgZmF1bHRzIGFueW1vcmUuIEhvd2V2ZXIsCisJICogd2UgY2Fubm90IHJlbW92ZSB0aGUgcGFnZXMgZnJvbSBrbW1pb19wYWdlX3RhYmxlLAorCSAqIGJlY2F1c2UgYSBwcm9iZSBoaXQgbWlnaHQgYmUgaW4gZmxpZ2h0IG9uIGFub3RoZXIgQ1BVLiBUaGUKKwkgKiBwYWdlcyBhcmUgY29sbGVjdGVkIGludG8gYSBsaXN0LCBhbmQgdGhleSB3aWxsIGJlIHJlbW92ZWQgZnJvbQorCSAqIGttbWlvX3BhZ2VfdGFibGUgd2hlbiBpdCBpcyBjZXJ0YWluIHRoYXQgbm8gcHJvYmUgaGl0IHJlbGF0ZWQgdG8KKwkgKiB0aGVzZSBwYWdlcyBjYW4gYmUgaW4gZmxpZ2h0LiBSQ1UgZ3JhY2UgcGVyaW9kIHNvdW5kcyBsaWtlIGEKKwkgKiBnb29kIGNob2ljZS4KKwkgKgorCSAqIElmIHdlIHJlbW92ZWQgdGhlIHBhZ2VzIHRvbyBlYXJseSwga21taW8gcGFnZSBmYXVsdCBoYW5kbGVyIG1pZ2h0CisJICogbm90IGZpbmQgdGhlIHJlc3BlY3RpdmUga21taW9fZmF1bHRfcGFnZSBhbmQgZGV0ZXJtaW5lIGl0J3Mgbm90CisJICogYSBrbW1pbyBmYXVsdCwgd2hlbiBpdCBhY3R1YWxseSBpcy4gVGhpcyB3b3VsZCBsZWFkIHRvIG1hZG5lc3MuCisJICovCisJY2FsbF9yY3UoJmRyZWxlYXNlLT5yY3UsIHJlbW92ZV9rbW1pb19mYXVsdF9wYWdlcyk7Cit9CitFWFBPUlRfU1lNQk9MKHVucmVnaXN0ZXJfa21taW9fcHJvYmUpOworCitzdGF0aWMgaW50IGttbWlvX2RpZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIHZhbCwKKwkJCQkJCQkJdm9pZCAqYXJncykKK3sKKwlzdHJ1Y3QgZGllX2FyZ3MgKmFyZyA9IGFyZ3M7CisKKwlpZiAodmFsID09IERJRV9ERUJVRyAmJiAoYXJnLT5lcnIgJiBEUl9TVEVQKSkKKwkJaWYgKHBvc3Rfa21taW9faGFuZGxlcihhcmctPmVyciwgYXJnLT5yZWdzKSA9PSAxKQorCQkJcmV0dXJuIE5PVElGWV9TVE9QOworCisJcmV0dXJuIE5PVElGWV9ET05FOworfQorCitzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIG5iX2RpZSA9IHsKKwkubm90aWZpZXJfY2FsbCA9IGttbWlvX2RpZV9ub3RpZmllcgorfTsKKworc3RhdGljIGludCBfX2luaXQgaW5pdF9rbW1pbyh2b2lkKQoreworCWludCBpOworCWZvciAoaSA9IDA7IGkgPCBLTU1JT19QQUdFX1RBQkxFX1NJWkU7IGkrKykKKwkJSU5JVF9MSVNUX0hFQUQoJmttbWlvX3BhZ2VfdGFibGVbaV0pOworCXJldHVybiByZWdpc3Rlcl9kaWVfbm90aWZpZXIoJm5iX2RpZSk7Cit9Citmc19pbml0Y2FsbChpbml0X2ttbWlvKTsgLyogc2hvdWxkIGJlIGJlZm9yZSBkZXZpY2VfaW5pdGNhbGwoKSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vbW1pby1tb2QuYyBiL2FyY2gveDg2L21tL21taW8tbW9kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTczOTdlMQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L21tL21taW8tbW9kLmMKQEAgLTAsMCArMSw1MTUgQEAKKy8qCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICoKKyAqIENvcHlyaWdodCAoQykgSUJNIENvcnBvcmF0aW9uLCAyMDA1CisgKiAgICAgICAgICAgICAgIEplZmYgTXVpemVsYWFyLCAyMDA2LCAyMDA3CisgKiAgICAgICAgICAgICAgIFBla2thIFBhYWxhbmVuLCAyMDA4IDxwcUBpa2kuZmk+CisgKgorICogRGVyaXZlZCBmcm9tIHRoZSByZWFkLW1vZCBleGFtcGxlIGZyb20gcmVsYXktZXhhbXBsZXMgYnkgVG9tIFphbnVzc2kuCisgKi8KKyNkZWZpbmUgREVCVUcgMQorCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8bGludXgvbW1pb3RyYWNlLmg+CisjaW5jbHVkZSA8YXNtL2U4MjAuaD4gLyogZm9yIElTQV9TVEFSVF9BRERSRVNTICovCisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdS5oPgorCisjaW5jbHVkZSAicGZfaW4uaCIKKworI2RlZmluZSBOQU1FICJtbWlvdHJhY2U6ICIKKworc3RydWN0IHRyYXBfcmVhc29uIHsKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJdW5zaWduZWQgbG9uZyBpcDsKKwllbnVtIHJlYXNvbl90eXBlIHR5cGU7CisJaW50IGFjdGl2ZV90cmFjZXM7Cit9OworCitzdHJ1Y3QgcmVtYXBfdHJhY2UgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKwlzdHJ1Y3Qga21taW9fcHJvYmUgcHJvYmU7CisJcmVzb3VyY2Vfc2l6ZV90IHBoeXM7CisJdW5zaWduZWQgbG9uZyBpZDsKK307CisKKy8qIEFjY2Vzc2VkIHBlci1jcHUuICovCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRyYXBfcmVhc29uLCBwZl9yZWFzb24pOworc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBtbWlvdHJhY2VfcncsIGNwdV90cmFjZSk7CisKKyNpZiAwIC8qIFhYWDogbm8gd2F5IGdhdGhlciB0aGlzIGluZm8gYW55bW9yZSAqLworLyogQWNjZXNzIHRvIHRoaXMgaXMgbm90IHBlci1jcHUuICovCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoYXRvbWljX3QsIGRyb3BwZWQpOworI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICptYXJrZXJfZmlsZTsKKworc3RhdGljIERFRklORV9NVVRFWChtbWlvdHJhY2VfbXV0ZXgpOworc3RhdGljIERFRklORV9TUElOTE9DSyh0cmFjZV9sb2NrKTsKK3N0YXRpYyBhdG9taWNfdCBtbWlvdHJhY2VfZW5hYmxlZDsKK3N0YXRpYyBMSVNUX0hFQUQodHJhY2VfbGlzdCk7CQkvKiBzdHJ1Y3QgcmVtYXBfdHJhY2UgKi8KKworLyoKKyAqIExvY2tpbmcgaW4gdGhpcyBmaWxlOgorICogLSBtbWlvdHJhY2VfbXV0ZXggZW5mb3JjZXMgZW5hYmxlL2Rpc2FibGVfbW1pb3RyYWNlKCkgY3JpdGljYWwgc2VjdGlvbnMuCisgKiAtIG1taW90cmFjZV9lbmFibGVkIG1heSBiZSBtb2RpZmllZCBvbmx5IHdoZW4gaG9sZGluZyBtbWlvdHJhY2VfbXV0ZXgKKyAqICAgYW5kIHRyYWNlX2xvY2suCisgKiAtIFJvdXRpbmVzIGRlcGVuZGluZyBvbiBpc19lbmFibGVkKCkgbXVzdCB0YWtlIHRyYWNlX2xvY2suCisgKiAtIHRyYWNlX2xpc3QgdXNlcnMgbXVzdCBob2xkIHRyYWNlX2xvY2suCisgKiAtIGlzX2VuYWJsZWQoKSBndWFyYW50ZWVzIHRoYXQgbW1pb190cmFjZV9yZWNvcmQgaXMgYWxsb3dlZC4KKyAqIC0gcHJlL3Bvc3QgY2FsbGJhY2tzIGFzc3VtZSB0aGUgZWZmZWN0IG9mIGlzX2VuYWJsZWQoKSBiZWluZyB0cnVlLgorICovCisKKy8qIG1vZHVsZSBwYXJhbWV0ZXJzICovCitzdGF0aWMgdW5zaWduZWQgbG9uZwlmaWx0ZXJfb2Zmc2V0Oworc3RhdGljIGludAkJbm9tbWlvdHJhY2U7CitzdGF0aWMgaW50CQl0cmFjZV9wYzsKKworbW9kdWxlX3BhcmFtKGZpbHRlcl9vZmZzZXQsIHVsb25nLCAwKTsKK21vZHVsZV9wYXJhbShub21taW90cmFjZSwgYm9vbCwgMCk7Cittb2R1bGVfcGFyYW0odHJhY2VfcGMsIGJvb2wsIDApOworCitNT0RVTEVfUEFSTV9ERVNDKGZpbHRlcl9vZmZzZXQsICJTdGFydCBhZGRyZXNzIG9mIHRyYWNlZCBtYXBwaW5ncy4iKTsKK01PRFVMRV9QQVJNX0RFU0Mobm9tbWlvdHJhY2UsICJEaXNhYmxlIGFjdHVhbCBNTUlPIHRyYWNpbmcuIik7CitNT0RVTEVfUEFSTV9ERVNDKHRyYWNlX3BjLCAiUmVjb3JkIGFkZHJlc3Mgb2YgZmF1bHRpbmcgaW5zdHJ1Y3Rpb25zLiIpOworCitzdGF0aWMgYm9vbCBpc19lbmFibGVkKHZvaWQpCit7CisJcmV0dXJuIGF0b21pY19yZWFkKCZtbWlvdHJhY2VfZW5hYmxlZCk7Cit9CisKKyNpZiAwIC8qIFhYWDogbmVlZHMgcmV3cml0ZSAqLworLyoKKyAqIFdyaXRlIGNhbGxiYWNrIGZvciB0aGUgZGVidWdmcyBlbnRyeToKKyAqIFJlYWQgYSBtYXJrZXIgYW5kIHdyaXRlIGl0IHRvIHRoZSBtbWlvIHRyYWNlIGxvZworICovCitzdGF0aWMgc3NpemVfdCB3cml0ZV9tYXJrZXIoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCisJCQkJCQlzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKK3sKKwljaGFyICpldmVudCA9IE5VTEw7CisJc3RydWN0IG1tX2lvX2hlYWRlciAqaGVhZHA7CisJc3NpemVfdCBsZW4gPSAoY291bnQgPiA2NTUzNSkgPyA2NTUzNSA6IGNvdW50OworCisJZXZlbnQgPSBremFsbG9jKHNpemVvZigqaGVhZHApICsgbGVuLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWV2ZW50KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWhlYWRwID0gKHN0cnVjdCBtbV9pb19oZWFkZXIgKilldmVudDsKKwloZWFkcC0+dHlwZSA9IE1NSU9fTUFHSUMgfCAoTU1JT19NQVJLRVIgPDwgTU1JT19PUENPREVfU0hJRlQpOworCWhlYWRwLT5kYXRhX2xlbiA9IGxlbjsKKworCWlmIChjb3B5X2Zyb21fdXNlcihldmVudCArIHNpemVvZigqaGVhZHApLCBidWZmZXIsIGxlbikpIHsKKwkJa2ZyZWUoZXZlbnQpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlzcGluX2xvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKyNpZiAwIC8qIFhYWDogY29udmVydCB0aGlzIHRvIHVzZSB0cmFjaW5nICovCisJaWYgKGlzX2VuYWJsZWQoKSkKKwkJcmVsYXlfd3JpdGUoY2hhbiwgZXZlbnQsIHNpemVvZigqaGVhZHApICsgbGVuKTsKKwllbHNlCisjZW5kaWYKKwkJbGVuID0gLUVJTlZBTDsKKwlzcGluX3VubG9ja19pcnEoJnRyYWNlX2xvY2spOworCWtmcmVlKGV2ZW50KTsKKwlyZXR1cm4gbGVuOworfQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHByaW50X3B0ZSh1bnNpZ25lZCBsb25nIGFkZHJlc3MpCit7CisJdW5zaWduZWQgaW50IGxldmVsOworCXB0ZV90ICpwdGUgPSBsb29rdXBfYWRkcmVzcyhhZGRyZXNzLCAmbGV2ZWwpOworCisJaWYgKCFwdGUpIHsKKwkJcHJfZXJyKE5BTUUgIkVycm9yIGluICVzOiBubyBwdGUgZm9yIHBhZ2UgMHglMDhseFxuIiwKKwkJCQkJCQlfX2Z1bmNfXywgYWRkcmVzcyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAobGV2ZWwgPT0gUEdfTEVWRUxfMk0pIHsKKwkJcHJfZW1lcmcoTkFNRSAiNE1CIHBhZ2VzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZDogIgorCQkJCQkJCSIweCUwOGx4XG4iLCBhZGRyZXNzKTsKKwkJQlVHKCk7CisJfQorCXByX2luZm8oTkFNRSAicHRlIGZvciAweCVseDogMHglbGx4IDB4JWxseFxuIiwgYWRkcmVzcywKKwkJKHVuc2lnbmVkIGxvbmcgbG9uZylwdGVfdmFsKCpwdGUpLAorCQkodW5zaWduZWQgbG9uZyBsb25nKXB0ZV92YWwoKnB0ZSkgJiBfUEFHRV9QUkVTRU5UKTsKK30KKworLyoKKyAqIEZvciBzb21lIHJlYXNvbiB0aGUgcHJlL3Bvc3QgcGFpcnMgaGF2ZSBiZWVuIGNhbGxlZCBpbiBhbgorICogdW5tYXRjaGVkIG9yZGVyLiBSZXBvcnQgYW5kIGRpZS4KKyAqLworc3RhdGljIHZvaWQgZGllX2ttbWlvX25lc3RpbmdfZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwljb25zdCBzdHJ1Y3QgdHJhcF9yZWFzb24gKm15X3JlYXNvbiA9ICZnZXRfY3B1X3ZhcihwZl9yZWFzb24pOworCXByX2VtZXJnKE5BTUUgInVuZXhwZWN0ZWQgZmF1bHQgZm9yIGFkZHJlc3M6IDB4JTA4bHgsICIKKwkJCQkJImxhc3QgZmF1bHQgZm9yIGFkZHJlc3M6IDB4JTA4bHhcbiIsCisJCQkJCWFkZHIsIG15X3JlYXNvbi0+YWRkcik7CisJcHJpbnRfcHRlKGFkZHIpOworCXByaW50X3N5bWJvbChLRVJOX0VNRVJHICJmYXVsdGluZyBJUCBpcyBhdCAlc1xuIiwgcmVncy0+aXApOworCXByaW50X3N5bWJvbChLRVJOX0VNRVJHICJsYXN0IGZhdWx0aW5nIElQIHdhcyBhdCAlc1xuIiwgbXlfcmVhc29uLT5pcCk7CisjaWZkZWYgX19pMzg2X18KKwlwcl9lbWVyZygiZWF4OiAlMDhseCAgIGVieDogJTA4bHggICBlY3g6ICUwOGx4ICAgZWR4OiAlMDhseFxuIiwKKwkJCXJlZ3MtPmF4LCByZWdzLT5ieCwgcmVncy0+Y3gsIHJlZ3MtPmR4KTsKKwlwcl9lbWVyZygiZXNpOiAlMDhseCAgIGVkaTogJTA4bHggICBlYnA6ICUwOGx4ICAgZXNwOiAlMDhseFxuIiwKKwkJCXJlZ3MtPnNpLCByZWdzLT5kaSwgcmVncy0+YnAsIHJlZ3MtPnNwKTsKKyNlbHNlCisJcHJfZW1lcmcoInJheDogJTAxNmx4ICAgcmN4OiAlMDE2bHggICByZHg6ICUwMTZseFxuIiwKKwkJCQkJcmVncy0+YXgsIHJlZ3MtPmN4LCByZWdzLT5keCk7CisJcHJfZW1lcmcoInJzaTogJTAxNmx4ICAgcmRpOiAlMDE2bHggICByYnA6ICUwMTZseCAgIHJzcDogJTAxNmx4XG4iLAorCQkJCXJlZ3MtPnNpLCByZWdzLT5kaSwgcmVncy0+YnAsIHJlZ3MtPnNwKTsKKyNlbmRpZgorCXB1dF9jcHVfdmFyKHBmX3JlYXNvbik7CisJQlVHKCk7Cit9CisKK3N0YXRpYyB2b2lkIHByZShzdHJ1Y3Qga21taW9fcHJvYmUgKnAsIHN0cnVjdCBwdF9yZWdzICpyZWdzLAorCQkJCQkJdW5zaWduZWQgbG9uZyBhZGRyKQoreworCXN0cnVjdCB0cmFwX3JlYXNvbiAqbXlfcmVhc29uID0gJmdldF9jcHVfdmFyKHBmX3JlYXNvbik7CisJc3RydWN0IG1taW90cmFjZV9ydyAqbXlfdHJhY2UgPSAmZ2V0X2NwdV92YXIoY3B1X3RyYWNlKTsKKwljb25zdCB1bnNpZ25lZCBsb25nIGluc3RwdHIgPSBpbnN0cnVjdGlvbl9wb2ludGVyKHJlZ3MpOworCWNvbnN0IGVudW0gcmVhc29uX3R5cGUgdHlwZSA9IGdldF9pbnNfdHlwZShpbnN0cHRyKTsKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKnRyYWNlID0gcC0+cHJpdmF0ZTsKKworCS8qIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBoYXZlIG1vcmUgdGhhbiBvbmUgYWN0aXZlIHRyYWNlIHBlciBjcHUgKi8KKwlpZiAobXlfcmVhc29uLT5hY3RpdmVfdHJhY2VzKQorCQlkaWVfa21taW9fbmVzdGluZ19lcnJvcihyZWdzLCBhZGRyKTsKKwllbHNlCisJCW15X3JlYXNvbi0+YWN0aXZlX3RyYWNlcysrOworCisJbXlfcmVhc29uLT50eXBlID0gdHlwZTsKKwlteV9yZWFzb24tPmFkZHIgPSBhZGRyOworCW15X3JlYXNvbi0+aXAgPSBpbnN0cHRyOworCisJbXlfdHJhY2UtPnBoeXMgPSBhZGRyIC0gdHJhY2UtPnByb2JlLmFkZHIgKyB0cmFjZS0+cGh5czsKKwlteV90cmFjZS0+bWFwX2lkID0gdHJhY2UtPmlkOworCisJLyoKKwkgKiBPbmx5IHJlY29yZCB0aGUgcHJvZ3JhbSBjb3VudGVyIHdoZW4gcmVxdWVzdGVkLgorCSAqIEl0IG1heSB0YWludCBjbGVhbi1yb29tIHJldmVyc2UgZW5naW5lZXJpbmcuCisJICovCisJaWYgKHRyYWNlX3BjKQorCQlteV90cmFjZS0+cGMgPSBpbnN0cHRyOworCWVsc2UKKwkJbXlfdHJhY2UtPnBjID0gMDsKKworCS8qCisJICogWFhYOiB0aGUgdGltZXN0YW1wIHJlY29yZGVkIHdpbGwgYmUgKmFmdGVyKiB0aGUgdHJhY2luZyBoYXMgYmVlbgorCSAqIGRvbmUsIG5vdCBhdCB0aGUgdGltZSB3ZSBoaXQgdGhlIGluc3RydWN0aW9uLiBTTVAgaW1wbGljYXRpb25zCisJICogb24gZXZlbnQgb3JkZXJpbmc/CisJICovCisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIFJFR19SRUFEOgorCQlteV90cmFjZS0+b3Bjb2RlID0gTU1JT19SRUFEOworCQlteV90cmFjZS0+d2lkdGggPSBnZXRfaW5zX21lbV93aWR0aChpbnN0cHRyKTsKKwkJYnJlYWs7CisJY2FzZSBSRUdfV1JJVEU6CisJCW15X3RyYWNlLT5vcGNvZGUgPSBNTUlPX1dSSVRFOworCQlteV90cmFjZS0+d2lkdGggPSBnZXRfaW5zX21lbV93aWR0aChpbnN0cHRyKTsKKwkJbXlfdHJhY2UtPnZhbHVlID0gZ2V0X2luc19yZWdfdmFsKGluc3RwdHIsIHJlZ3MpOworCQlicmVhazsKKwljYXNlIElNTV9XUklURToKKwkJbXlfdHJhY2UtPm9wY29kZSA9IE1NSU9fV1JJVEU7CisJCW15X3RyYWNlLT53aWR0aCA9IGdldF9pbnNfbWVtX3dpZHRoKGluc3RwdHIpOworCQlteV90cmFjZS0+dmFsdWUgPSBnZXRfaW5zX2ltbV92YWwoaW5zdHB0cik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXsKKwkJCXVuc2lnbmVkIGNoYXIgKmlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnN0cHRyOworCQkJbXlfdHJhY2UtPm9wY29kZSA9IE1NSU9fVU5LTk9XTl9PUDsKKwkJCW15X3RyYWNlLT53aWR0aCA9IDA7CisJCQlteV90cmFjZS0+dmFsdWUgPSAoKmlwKSA8PCAxNiB8ICooaXAgKyAxKSA8PCA4IHwKKwkJCQkJCQkJKihpcCArIDIpOworCQl9CisJfQorCXB1dF9jcHVfdmFyKGNwdV90cmFjZSk7CisJcHV0X2NwdV92YXIocGZfcmVhc29uKTsKK30KKworc3RhdGljIHZvaWQgcG9zdChzdHJ1Y3Qga21taW9fcHJvYmUgKnAsIHVuc2lnbmVkIGxvbmcgY29uZGl0aW9uLAorCQkJCQkJCXN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCB0cmFwX3JlYXNvbiAqbXlfcmVhc29uID0gJmdldF9jcHVfdmFyKHBmX3JlYXNvbik7CisJc3RydWN0IG1taW90cmFjZV9ydyAqbXlfdHJhY2UgPSAmZ2V0X2NwdV92YXIoY3B1X3RyYWNlKTsKKworCS8qIHRoaXMgc2hvdWxkIGFsd2F5cyByZXR1cm4gdGhlIGFjdGl2ZV90cmFjZSBjb3VudCB0byAwICovCisJbXlfcmVhc29uLT5hY3RpdmVfdHJhY2VzLS07CisJaWYgKG15X3JlYXNvbi0+YWN0aXZlX3RyYWNlcykgeworCQlwcl9lbWVyZyhOQU1FICJ1bmV4cGVjdGVkIHBvc3QgaGFuZGxlciIpOworCQlCVUcoKTsKKwl9CisKKwlzd2l0Y2ggKG15X3JlYXNvbi0+dHlwZSkgeworCWNhc2UgUkVHX1JFQUQ6CisJCW15X3RyYWNlLT52YWx1ZSA9IGdldF9pbnNfcmVnX3ZhbChteV9yZWFzb24tPmlwLCByZWdzKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJbW1pb190cmFjZV9ydyhteV90cmFjZSk7CisJcHV0X2NwdV92YXIoY3B1X3RyYWNlKTsKKwlwdXRfY3B1X3ZhcihwZl9yZWFzb24pOworfQorCitzdGF0aWMgdm9pZCBpb3JlbWFwX3RyYWNlX2NvcmUocmVzb3VyY2Vfc2l6ZV90IG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCQkJCXZvaWQgX19pb21lbSAqYWRkcikKK3sKKwlzdGF0aWMgYXRvbWljX3QgbmV4dF9pZDsKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKnRyYWNlID0ga21hbGxvYyhzaXplb2YoKnRyYWNlKSwgR0ZQX0tFUk5FTCk7CisJLyogVGhlc2UgYXJlIHBhZ2UtdW5hbGlnbmVkLiAqLworCXN0cnVjdCBtbWlvdHJhY2VfbWFwIG1hcCA9IHsKKwkJLnBoeXMgPSBvZmZzZXQsCisJCS52aXJ0ID0gKHVuc2lnbmVkIGxvbmcpYWRkciwKKwkJLmxlbiA9IHNpemUsCisJCS5vcGNvZGUgPSBNTUlPX1BST0JFCisJfTsKKworCWlmICghdHJhY2UpIHsKKwkJcHJfZXJyKE5BTUUgImttYWxsb2MgZmFpbGVkIGluIGlvcmVtYXBcbiIpOworCQlyZXR1cm47CisJfQorCisJKnRyYWNlID0gKHN0cnVjdCByZW1hcF90cmFjZSkgeworCQkucHJvYmUgPSB7CisJCQkuYWRkciA9ICh1bnNpZ25lZCBsb25nKWFkZHIsCisJCQkubGVuID0gc2l6ZSwKKwkJCS5wcmVfaGFuZGxlciA9IHByZSwKKwkJCS5wb3N0X2hhbmRsZXIgPSBwb3N0LAorCQkJLnByaXZhdGUgPSB0cmFjZQorCQl9LAorCQkucGh5cyA9IG9mZnNldCwKKwkJLmlkID0gYXRvbWljX2luY19yZXR1cm4oJm5leHRfaWQpCisJfTsKKwltYXAubWFwX2lkID0gdHJhY2UtPmlkOworCisJc3Bpbl9sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJaWYgKCFpc19lbmFibGVkKCkpCisJCWdvdG8gbm90X2VuYWJsZWQ7CisKKwltbWlvX3RyYWNlX21hcHBpbmcoJm1hcCk7CisJbGlzdF9hZGRfdGFpbCgmdHJhY2UtPmxpc3QsICZ0cmFjZV9saXN0KTsKKwlpZiAoIW5vbW1pb3RyYWNlKQorCQlyZWdpc3Rlcl9rbW1pb19wcm9iZSgmdHJhY2UtPnByb2JlKTsKKworbm90X2VuYWJsZWQ6CisJc3Bpbl91bmxvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKK30KKwordm9pZCBtbWlvdHJhY2VfaW9yZW1hcChyZXNvdXJjZV9zaXplX3Qgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkJCQl2b2lkIF9faW9tZW0gKmFkZHIpCit7CisJaWYgKCFpc19lbmFibGVkKCkpIC8qIHJlY2hlY2sgYW5kIHByb3BlciBsb2NraW5nIGluICpfY29yZSgpICovCisJCXJldHVybjsKKworCXByX2RlYnVnKE5BTUUgImlvcmVtYXBfKigweCVsbHgsIDB4JWx4KSA9ICVwXG4iLAorCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpb2Zmc2V0LCBzaXplLCBhZGRyKTsKKwlpZiAoKGZpbHRlcl9vZmZzZXQpICYmIChvZmZzZXQgIT0gZmlsdGVyX29mZnNldCkpCisJCXJldHVybjsKKwlpb3JlbWFwX3RyYWNlX2NvcmUob2Zmc2V0LCBzaXplLCBhZGRyKTsKK30KKworc3RhdGljIHZvaWQgaW91bm1hcF90cmFjZV9jb3JlKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKK3sKKwlzdHJ1Y3QgbW1pb3RyYWNlX21hcCBtYXAgPSB7CisJCS5waHlzID0gMCwKKwkJLnZpcnQgPSAodW5zaWduZWQgbG9uZylhZGRyLAorCQkubGVuID0gMCwKKwkJLm9wY29kZSA9IE1NSU9fVU5QUk9CRQorCX07CisJc3RydWN0IHJlbWFwX3RyYWNlICp0cmFjZTsKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKnRtcDsKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKmZvdW5kX3RyYWNlID0gTlVMTDsKKworCXByX2RlYnVnKE5BTUUgIlVubWFwcGluZyAlcC5cbiIsIGFkZHIpOworCisJc3Bpbl9sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJaWYgKCFpc19lbmFibGVkKCkpCisJCWdvdG8gbm90X2VuYWJsZWQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodHJhY2UsIHRtcCwgJnRyYWNlX2xpc3QsIGxpc3QpIHsKKwkJaWYgKCh1bnNpZ25lZCBsb25nKWFkZHIgPT0gdHJhY2UtPnByb2JlLmFkZHIpIHsKKwkJCWlmICghbm9tbWlvdHJhY2UpCisJCQkJdW5yZWdpc3Rlcl9rbW1pb19wcm9iZSgmdHJhY2UtPnByb2JlKTsKKwkJCWxpc3RfZGVsKCZ0cmFjZS0+bGlzdCk7CisJCQlmb3VuZF90cmFjZSA9IHRyYWNlOworCQkJYnJlYWs7CisJCX0KKwl9CisJbWFwLm1hcF9pZCA9IChmb3VuZF90cmFjZSkgPyBmb3VuZF90cmFjZS0+aWQgOiAtMTsKKwltbWlvX3RyYWNlX21hcHBpbmcoJm1hcCk7CisKK25vdF9lbmFibGVkOgorCXNwaW5fdW5sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJaWYgKGZvdW5kX3RyYWNlKSB7CisJCXN5bmNocm9uaXplX3JjdSgpOyAvKiB1bnJlZ2lzdGVyX2ttbWlvX3Byb2JlKCkgcmVxdWlyZW1lbnQgKi8KKwkJa2ZyZWUoZm91bmRfdHJhY2UpOworCX0KK30KKwordm9pZCBtbWlvdHJhY2VfaW91bm1hcCh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCit7CisJbWlnaHRfc2xlZXAoKTsKKwlpZiAoaXNfZW5hYmxlZCgpKSAvKiByZWNoZWNrIGFuZCBwcm9wZXIgbG9ja2luZyBpbiAqX2NvcmUoKSAqLworCQlpb3VubWFwX3RyYWNlX2NvcmUoYWRkcik7Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFyX3RyYWNlX2xpc3Qodm9pZCkKK3sKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKnRyYWNlOworCXN0cnVjdCByZW1hcF90cmFjZSAqdG1wOworCisJLyoKKwkgKiBObyBsb2NraW5nIHJlcXVpcmVkLCBiZWNhdXNlIHRoZSBjYWxsZXIgZW5zdXJlcyB3ZSBhcmUgaW4gYQorCSAqIGNyaXRpY2FsIHNlY3Rpb24gdmlhIG11dGV4LCBhbmQgaXNfZW5hYmxlZCgpIGlzIGZhbHNlLAorCSAqIGkuZS4gbm90aGluZyBjYW4gdHJhdmVyc2Ugb3IgbW9kaWZ5IHRoaXMgbGlzdC4KKwkgKiBDYWxsZXIgYWxzbyBlbnN1cmVzIGlzX2VuYWJsZWQoKSBjYW5ub3QgY2hhbmdlLgorCSAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkodHJhY2UsICZ0cmFjZV9saXN0LCBsaXN0KSB7CisJCXByX25vdGljZShOQU1FICJwdXJnaW5nIG5vbi1pb3VubWFwcGVkICIKKwkJCQkJInRyYWNlIEAweCUwOGx4LCBzaXplIDB4JWx4LlxuIiwKKwkJCQkJdHJhY2UtPnByb2JlLmFkZHIsIHRyYWNlLT5wcm9iZS5sZW4pOworCQlpZiAoIW5vbW1pb3RyYWNlKQorCQkJdW5yZWdpc3Rlcl9rbW1pb19wcm9iZSgmdHJhY2UtPnByb2JlKTsKKwl9CisJc3luY2hyb25pemVfcmN1KCk7IC8qIHVucmVnaXN0ZXJfa21taW9fcHJvYmUoKSByZXF1aXJlbWVudCAqLworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHRyYWNlLCB0bXAsICZ0cmFjZV9saXN0LCBsaXN0KSB7CisJCWxpc3RfZGVsKCZ0cmFjZS0+bGlzdCk7CisJCWtmcmVlKHRyYWNlKTsKKwl9Cit9CisKKyNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKK3N0YXRpYyBjcHVtYXNrX3QgZG93bmVkX2NwdXM7CisKK3N0YXRpYyB2b2lkIGVudGVyX3VuaXByb2Nlc3Nvcih2b2lkKQoreworCWludCBjcHU7CisJaW50IGVycjsKKworCWdldF9vbmxpbmVfY3B1cygpOworCWRvd25lZF9jcHVzID0gY3B1X29ubGluZV9tYXA7CisJY3B1X2NsZWFyKGZpcnN0X2NwdShjcHVfb25saW5lX21hcCksIGRvd25lZF9jcHVzKTsKKwlpZiAobnVtX29ubGluZV9jcHVzKCkgPiAxKQorCQlwcl9ub3RpY2UoTkFNRSAiRGlzYWJsaW5nIG5vbi1ib290IENQVXMuLi5cbiIpOworCXB1dF9vbmxpbmVfY3B1cygpOworCisJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBkb3duZWRfY3B1cykgeworCQllcnIgPSBjcHVfZG93bihjcHUpOworCQlpZiAoIWVycikKKwkJCXByX2luZm8oTkFNRSAiQ1BVJWQgaXMgZG93bi5cbiIsIGNwdSk7CisJCWVsc2UKKwkJCXByX2VycihOQU1FICJFcnJvciB0YWtpbmcgQ1BVJWQgZG93bjogJWRcbiIsIGNwdSwgZXJyKTsKKwl9CisJaWYgKG51bV9vbmxpbmVfY3B1cygpID4gMSkKKwkJcHJfd2FybmluZyhOQU1FICJtdWx0aXBsZSBDUFVzIHN0aWxsIG9ubGluZSwgIgorCQkJCQkJIm1heSBtaXNzIGV2ZW50cy5cbiIpOworfQorCitzdGF0aWMgdm9pZCBsZWF2ZV91bmlwcm9jZXNzb3Iodm9pZCkKK3sKKwlpbnQgY3B1OworCWludCBlcnI7CisKKwlpZiAoY3B1c193ZWlnaHQoZG93bmVkX2NwdXMpID09IDApCisJCXJldHVybjsKKwlwcl9ub3RpY2UoTkFNRSAiUmUtZW5hYmxpbmcgQ1BVcy4uLlxuIik7CisJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBkb3duZWRfY3B1cykgeworCQllcnIgPSBjcHVfdXAoY3B1KTsKKwkJaWYgKCFlcnIpCisJCQlwcl9pbmZvKE5BTUUgImVuYWJsZWQgQ1BVJWQuXG4iLCBjcHUpOworCQllbHNlCisJCQlwcl9lcnIoTkFNRSAiY2Fubm90IHJlLWVuYWJsZSBDUFUlZDogJWRcbiIsIGNwdSwgZXJyKTsKKwl9Cit9CisKKyNlbHNlIC8qICFDT05GSUdfSE9UUExVR19DUFUgKi8KK3N0YXRpYyB2b2lkIGVudGVyX3VuaXByb2Nlc3Nvcih2b2lkKQoreworCWlmIChudW1fb25saW5lX2NwdXMoKSA+IDEpCisJCXByX3dhcm5pbmcoTkFNRSAibXVsdGlwbGUgQ1BVcyBhcmUgb25saW5lLCBtYXkgbWlzcyBldmVudHMuICIKKwkJCSJTdWdnZXN0IGJvb3Rpbmcgd2l0aCBtYXhjcHVzPTEga2VybmVsIGFyZ3VtZW50LlxuIik7Cit9CisKK3N0YXRpYyB2b2lkIGxlYXZlX3VuaXByb2Nlc3Nvcih2b2lkKQoreworfQorI2VuZGlmCisKKyNpZiAwIC8qIFhYWDogb3V0IG9mIG9yZGVyICovCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzX21hcmtlciA9IHsKKwkub3duZXIgPQlUSElTX01PRFVMRSwKKwkud3JpdGUgPQl3cml0ZV9tYXJrZXIKK307CisjZW5kaWYKKwordm9pZCBlbmFibGVfbW1pb3RyYWNlKHZvaWQpCit7CisJbXV0ZXhfbG9jaygmbW1pb3RyYWNlX211dGV4KTsKKwlpZiAoaXNfZW5hYmxlZCgpKQorCQlnb3RvIG91dDsKKworI2lmIDAgLyogWFhYOiB0cmFjaW5nIGRvZXMgbm90IHN1cHBvcnQgdGV4dCBlbnRyaWVzICovCisJbWFya2VyX2ZpbGUgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJtYXJrZXIiLCAwNjYwLCBkaXIsIE5VTEwsCisJCQkJCQkJCSZmb3BzX21hcmtlcik7CisJaWYgKCFtYXJrZXJfZmlsZSkKKwkJcHJfZXJyKE5BTUUgIm1hcmtlciBmaWxlIGNyZWF0aW9uIGZhaWxlZC5cbiIpOworI2VuZGlmCisKKwlpZiAobm9tbWlvdHJhY2UpCisJCXByX2luZm8oTkFNRSAiTU1JTyB0cmFjaW5nIGRpc2FibGVkLlxuIik7CisJZW50ZXJfdW5pcHJvY2Vzc29yKCk7CisJc3Bpbl9sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJYXRvbWljX2luYygmbW1pb3RyYWNlX2VuYWJsZWQpOworCXNwaW5fdW5sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJcHJfaW5mbyhOQU1FICJlbmFibGVkLlxuIik7CitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZtbWlvdHJhY2VfbXV0ZXgpOworfQorCit2b2lkIGRpc2FibGVfbW1pb3RyYWNlKHZvaWQpCit7CisJbXV0ZXhfbG9jaygmbW1pb3RyYWNlX211dGV4KTsKKwlpZiAoIWlzX2VuYWJsZWQoKSkKKwkJZ290byBvdXQ7CisKKwlzcGluX2xvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKwlhdG9taWNfZGVjKCZtbWlvdHJhY2VfZW5hYmxlZCk7CisJQlVHX09OKGlzX2VuYWJsZWQoKSk7CisJc3Bpbl91bmxvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKworCWNsZWFyX3RyYWNlX2xpc3QoKTsgLyogZ3VhcmFudGVlczogbm8gbW9yZSBrbW1pbyBjYWxsYmFja3MgKi8KKwlsZWF2ZV91bmlwcm9jZXNzb3IoKTsKKwlpZiAobWFya2VyX2ZpbGUpIHsKKwkJZGVidWdmc19yZW1vdmUobWFya2VyX2ZpbGUpOworCQltYXJrZXJfZmlsZSA9IE5VTEw7CisJfQorCisJcHJfaW5mbyhOQU1FICJkaXNhYmxlZC5cbiIpOworb3V0OgorCW11dGV4X3VubG9jaygmbW1pb3RyYWNlX211dGV4KTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL251bWFfNjQuYyBiL2FyY2gveDg2L21tL251bWFfNjQuYwppbmRleCBjNTA2NmQ1Li5iNDMyZDU3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9udW1hXzY0LmMKKysrIGIvYXJjaC94ODYvbW0vbnVtYV82NC5jCkBAIC0yNywzMCArMjcsMTcgQEAKIHN0cnVjdCBwZ2xpc3RfZGF0YSAqbm9kZV9kYXRhW01BWF9OVU1OT0RFU10gX19yZWFkX21vc3RseTsKIEVYUE9SVF9TWU1CT0wobm9kZV9kYXRhKTsKIAotYm9vdG1lbV9kYXRhX3QgcGxhdF9ub2RlX2JkYXRhW01BWF9OVU1OT0RFU107CitzdGF0aWMgYm9vdG1lbV9kYXRhX3QgcGxhdF9ub2RlX2JkYXRhW01BWF9OVU1OT0RFU107CiAKIHN0cnVjdCBtZW1ub2RlIG1lbW5vZGU7CiAKLSNpZmRlZiBDT05GSUdfU01QCi1pbnQgeDg2X2NwdV90b19ub2RlX21hcF9pbml0W05SX0NQVVNdID0gewotCVswIC4uLiBOUl9DUFVTLTFdID0gTlVNQV9OT19OT0RFCi19Owotdm9pZCAqeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHI7Ci1FWFBPUlRfU1lNQk9MKHg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyKTsKLSNlbmRpZgotREVGSU5FX1BFUl9DUFUoaW50LCB4ODZfY3B1X3RvX25vZGVfbWFwKSA9IE5VTUFfTk9fTk9ERTsKLUVYUE9SVF9QRVJfQ1BVX1NZTUJPTCh4ODZfY3B1X3RvX25vZGVfbWFwKTsKLQogczE2IGFwaWNpZF90b19ub2RlW01BWF9MT0NBTF9BUElDXSBfX2NwdWluaXRkYXRhID0gewogCVswIC4uLiBNQVhfTE9DQUxfQVBJQy0xXSA9IE5VTUFfTk9fTk9ERQogfTsKIAotY3B1bWFza190IG5vZGVfdG9fY3B1bWFza19tYXBbTUFYX05VTU5PREVTXSBfX3JlYWRfbW9zdGx5OwotRVhQT1JUX1NZTUJPTChub2RlX3RvX2NwdW1hc2tfbWFwKTsKLQogaW50IG51bWFfb2ZmIF9faW5pdGRhdGE7Ci11bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgbm9kZW1hcF9hZGRyOwotdW5zaWduZWQgbG9uZyBfX2luaXRkYXRhIG5vZGVtYXBfc2l6ZTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgbm9kZW1hcF9hZGRyOworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSBub2RlbWFwX3NpemU7CiAKIC8qCiAgKiBHaXZlbiBhIHNoaWZ0IHZhbHVlLCB0cnkgdG8gcG9wdWxhdGUgbWVtbm9kZW1hcFtdCkBAIC05OSw3ICs4Niw3IEBACiAKIAlhZGRyID0gMHg4MDAwOwogCW5vZGVtYXBfc2l6ZSA9IHJvdW5kX3VwKHNpemVvZihzMTYpICogbWVtbm9kZW1hcHNpemUsIEwxX0NBQ0hFX0JZVEVTKTsKLQlub2RlbWFwX2FkZHIgPSBmaW5kX2U4MjBfYXJlYShhZGRyLCBlbmRfcGZuPDxQQUdFX1NISUZULAorCW5vZGVtYXBfYWRkciA9IGZpbmRfZTgyMF9hcmVhKGFkZHIsIG1heF9wZm48PFBBR0VfU0hJRlQsCiAJCQkJICAgICAgbm9kZW1hcF9zaXplLCBMMV9DQUNIRV9CWVRFUyk7CiAJaWYgKG5vZGVtYXBfYWRkciA9PSAtMVVMKSB7CiAJCXByaW50ayhLRVJOX0VSUgpAQCAtMTkyLDcgKzE3OSw3IEBACiB2b2lkIF9faW5pdCBzZXR1cF9ub2RlX2Jvb3RtZW0oaW50IG5vZGVpZCwgdW5zaWduZWQgbG9uZyBzdGFydCwKIAkJCSAgICAgICB1bnNpZ25lZCBsb25nIGVuZCkKIHsKLQl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgZW5kX3BmbiwgYm9vdG1hcF9wYWdlcywgYm9vdG1hcF9zaXplOworCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBsYXN0X3BmbiwgYm9vdG1hcF9wYWdlcywgYm9vdG1hcF9zaXplOwogCXVuc2lnbmVkIGxvbmcgYm9vdG1hcF9zdGFydCwgbm9kZWRhdGFfcGh5czsKIAl2b2lkICpib290bWFwOwogCWNvbnN0IGludCBwZ2RhdF9zaXplID0gcm91bmRfdXAoc2l6ZW9mKHBnX2RhdGFfdCksIFBBR0VfU0laRSk7CkBAIC0yMDQsNyArMTkxLDcgQEAKIAkgICAgICAgc3RhcnQsIGVuZCk7CiAKIAlzdGFydF9wZm4gPSBzdGFydCA+PiBQQUdFX1NISUZUOwotCWVuZF9wZm4gPSBlbmQgPj4gUEFHRV9TSElGVDsKKwlsYXN0X3BmbiA9IGVuZCA+PiBQQUdFX1NISUZUOwogCiAJbm9kZV9kYXRhW25vZGVpZF0gPSBlYXJseV9ub2RlX21lbShub2RlaWQsIHN0YXJ0LCBlbmQsIHBnZGF0X3NpemUsCiAJCQkJCSAgIFNNUF9DQUNIRV9CWVRFUyk7CkBAIC0yMTcsNyArMjA0LDcgQEAKIAltZW1zZXQoTk9ERV9EQVRBKG5vZGVpZCksIDAsIHNpemVvZihwZ19kYXRhX3QpKTsKIAlOT0RFX0RBVEEobm9kZWlkKS0+YmRhdGEgPSAmcGxhdF9ub2RlX2JkYXRhW25vZGVpZF07CiAJTk9ERV9EQVRBKG5vZGVpZCktPm5vZGVfc3RhcnRfcGZuID0gc3RhcnRfcGZuOwotCU5PREVfREFUQShub2RlaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMgPSBlbmRfcGZuIC0gc3RhcnRfcGZuOworCU5PREVfREFUQShub2RlaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMgPSBsYXN0X3BmbiAtIHN0YXJ0X3BmbjsKIAogCS8qCiAJICogRmluZCBhIHBsYWNlIGZvciB0aGUgYm9vdG1lbSBtYXAKQEAgLTIyNiwxNCArMjEzLDE0IEBACiAJICogZWFybHlfbm9kZV9tZW0gd2lsbCBnZXQgdGhhdCB3aXRoIGZpbmRfZTgyMF9hcmVhIGluc3RlYWQKIAkgKiBvZiBhbGxvY19ib290bWVtLCB0aGF0IGNvdWxkIGNsYXNoIHdpdGggcmVzZXJ2ZWQgcmFuZ2UKIAkgKi8KLQlib290bWFwX3BhZ2VzID0gYm9vdG1lbV9ib290bWFwX3BhZ2VzKGVuZF9wZm4gLSBzdGFydF9wZm4pOworCWJvb3RtYXBfcGFnZXMgPSBib290bWVtX2Jvb3RtYXBfcGFnZXMobGFzdF9wZm4gLSBzdGFydF9wZm4pOwogCW5pZCA9IHBoeXNfdG9fbmlkKG5vZGVkYXRhX3BoeXMpOwogCWlmIChuaWQgPT0gbm9kZWlkKQogCQlib290bWFwX3N0YXJ0ID0gcm91bmRfdXAobm9kZWRhdGFfcGh5cyArIHBnZGF0X3NpemUsIFBBR0VfU0laRSk7CiAJZWxzZQogCQlib290bWFwX3N0YXJ0ID0gcm91bmRfdXAoc3RhcnQsIFBBR0VfU0laRSk7CiAJLyoKLQkgKiBTTVBfQ0FIQ0VfQllURVMgY291bGQgYmUgZW5vdWdoLCBidXQgaW5pdF9ib290bWVtX25vZGUgbGlrZQorCSAqIFNNUF9DQUNIRV9CWVRFUyBjb3VsZCBiZSBlbm91Z2gsIGJ1dCBpbml0X2Jvb3RtZW1fbm9kZSBsaWtlCiAJICogdG8gdXNlIHRoYXQgdG8gYWxpZ24gdG8gUEFHRV9TSVpFCiAJICovCiAJYm9vdG1hcCA9IGVhcmx5X25vZGVfbWVtKG5vZGVpZCwgYm9vdG1hcF9zdGFydCwgZW5kLApAQCAtMjQ4LDcgKzIzNSw3IEBACiAKIAlib290bWFwX3NpemUgPSBpbml0X2Jvb3RtZW1fbm9kZShOT0RFX0RBVEEobm9kZWlkKSwKIAkJCQkJIGJvb3RtYXBfc3RhcnQgPj4gUEFHRV9TSElGVCwKLQkJCQkJIHN0YXJ0X3BmbiwgZW5kX3Bmbik7CisJCQkJCSBzdGFydF9wZm4sIGxhc3RfcGZuKTsKIAogCXByaW50ayhLRVJOX0lORk8gIiAgYm9vdG1hcCBbJTAxNmx4IC0gICUwMTZseF0gcGFnZXMgJWx4XG4iLAogCQkgYm9vdG1hcF9zdGFydCwgYm9vdG1hcF9zdGFydCArIGJvb3RtYXBfc2l6ZSAtIDEsCkBAIC0zMDksNyArMjk2LDcgQEAKIAogI2lmZGVmIENPTkZJR19OVU1BX0VNVQogLyogTnVtYSBlbXVsYXRpb24gKi8KLWNoYXIgKmNtZGxpbmUgX19pbml0ZGF0YTsKK3N0YXRpYyBjaGFyICpjbWRsaW5lIF9faW5pdGRhdGE7CiAKIC8qCiAgKiBTZXR1cHMgdXAgbmlkIHRvIHJhbmdlIGZyb20gYWRkciB0byBhZGRyICsgc2l6ZS4gIElmIHRoZSBlbmQKQEAgLTQxMywxNSArNDAwLDE1IEBACiB9CiAKIC8qCi0gKiBTZXRzIHVwIHRoZSBzeXN0ZW0gUkFNIGFyZWEgZnJvbSBzdGFydF9wZm4gdG8gZW5kX3BmbiBhY2NvcmRpbmcgdG8gdGhlCisgKiBTZXRzIHVwIHRoZSBzeXN0ZW0gUkFNIGFyZWEgZnJvbSBzdGFydF9wZm4gdG8gbGFzdF9wZm4gYWNjb3JkaW5nIHRvIHRoZQogICogbnVtYT1mYWtlIGNvbW1hbmQtbGluZSBvcHRpb24uCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgYm9vdG5vZGUgbm9kZXNbTUFYX05VTU5PREVTXSBfX2luaXRkYXRhOwogCi1zdGF0aWMgaW50IF9faW5pdCBudW1hX2VtdWxhdGlvbih1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuKQorc3RhdGljIGludCBfX2luaXQgbnVtYV9lbXVsYXRpb24odW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgbGFzdF9wZm4pCiB7CiAJdTY0IHNpemUsIGFkZHIgPSBzdGFydF9wZm4gPDwgUEFHRV9TSElGVDsKLQl1NjQgbWF4X2FkZHIgPSBlbmRfcGZuIDw8IFBBR0VfU0hJRlQ7CisJdTY0IG1heF9hZGRyID0gbGFzdF9wZm4gPDwgUEFHRV9TSElGVDsKIAlpbnQgbnVtX25vZGVzID0gMCwgbnVtID0gMCwgY29lZmZfZmxhZywgY29lZmYgPSAtMSwgaTsKIAogCW1lbXNldCgmbm9kZXMsIDAsIHNpemVvZihub2RlcykpOwpAQCAtNTI3LDcgKzUxNCw3IEBACiB9CiAjZW5kaWYgLyogQ09ORklHX05VTUFfRU1VICovCiAKLXZvaWQgX19pbml0IG51bWFfaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCit2b2lkIF9faW5pdCBpbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgbGFzdF9wZm4pCiB7CiAJaW50IGk7CiAKQEAgLTUzNSw3ICs1MjIsNyBAQAogCW5vZGVzX2NsZWFyKG5vZGVfb25saW5lX21hcCk7CiAKICNpZmRlZiBDT05GSUdfTlVNQV9FTVUKLQlpZiAoY21kbGluZSAmJiAhbnVtYV9lbXVsYXRpb24oc3RhcnRfcGZuLCBlbmRfcGZuKSkKKwlpZiAoY21kbGluZSAmJiAhbnVtYV9lbXVsYXRpb24oc3RhcnRfcGZuLCBsYXN0X3BmbikpCiAJCXJldHVybjsKIAlub2Rlc19jbGVhcihub2RlX3Bvc3NpYmxlX21hcCk7CiAJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKQEAgLTU0Myw3ICs1MzAsNyBAQAogCiAjaWZkZWYgQ09ORklHX0FDUElfTlVNQQogCWlmICghbnVtYV9vZmYgJiYgIWFjcGlfc2Nhbl9ub2RlcyhzdGFydF9wZm4gPDwgUEFHRV9TSElGVCwKLQkJCQkJICBlbmRfcGZuIDw8IFBBR0VfU0hJRlQpKQorCQkJCQkgIGxhc3RfcGZuIDw8IFBBR0VfU0hJRlQpKQogCQlyZXR1cm47CiAJbm9kZXNfY2xlYXIobm9kZV9wb3NzaWJsZV9tYXApOwogCW5vZGVzX2NsZWFyKG5vZGVfb25saW5lX21hcCk7CkBAIC01NTEsNyArNTM4LDcgQEAKIAogI2lmZGVmIENPTkZJR19LOF9OVU1BCiAJaWYgKCFudW1hX29mZiAmJiAhazhfc2Nhbl9ub2RlcyhzdGFydF9wZm48PFBBR0VfU0hJRlQsCi0JCQkJCWVuZF9wZm48PFBBR0VfU0hJRlQpKQorCQkJCQlsYXN0X3Bmbjw8UEFHRV9TSElGVCkpCiAJCXJldHVybjsKIAlub2Rlc19jbGVhcihub2RlX3Bvc3NpYmxlX21hcCk7CiAJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKQEAgLTU2MSw3ICs1NDgsNyBAQAogCiAJcHJpbnRrKEtFUk5fSU5GTyAiRmFraW5nIGEgbm9kZSBhdCAlMDE2bHgtJTAxNmx4XG4iLAogCSAgICAgICBzdGFydF9wZm4gPDwgUEFHRV9TSElGVCwKLQkgICAgICAgZW5kX3BmbiA8PCBQQUdFX1NISUZUKTsKKwkgICAgICAgbGFzdF9wZm4gPDwgUEFHRV9TSElGVCk7CiAJLyogc2V0dXAgZHVtbXkgbm9kZSBjb3ZlcmluZyBhbGwgbWVtb3J5ICovCiAJbWVtbm9kZV9zaGlmdCA9IDYzOwogCW1lbW5vZGVtYXAgPSBtZW1ub2RlLmVtYmVkZGVkX21hcDsKQEAgLTU3MCwyOSArNTU3LDggQEAKIAlub2RlX3NldCgwLCBub2RlX3Bvc3NpYmxlX21hcCk7CiAJZm9yIChpID0gMDsgaSA8IE5SX0NQVVM7IGkrKykKIAkJbnVtYV9zZXRfbm9kZShpLCAwKTsKLQkvKiBjcHVtYXNrX29mX2NwdSgpIG1heSBub3QgYmUgYXZhaWxhYmxlIGR1cmluZyBlYXJseSBzdGFydHVwICovCi0JbWVtc2V0KCZub2RlX3RvX2NwdW1hc2tfbWFwWzBdLCAwLCBzaXplb2Yobm9kZV90b19jcHVtYXNrX21hcFswXSkpOwotCWNwdV9zZXQoMCwgbm9kZV90b19jcHVtYXNrX21hcFswXSk7Ci0JZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCBzdGFydF9wZm4sIGVuZF9wZm4pOwotCXNldHVwX25vZGVfYm9vdG1lbSgwLCBzdGFydF9wZm4gPDwgUEFHRV9TSElGVCwgZW5kX3BmbiA8PCBQQUdFX1NISUZUKTsKLX0KLQotX19jcHVpbml0IHZvaWQgbnVtYV9hZGRfY3B1KGludCBjcHUpCi17Ci0Jc2V0X2JpdChjcHUsCi0JCSh1bnNpZ25lZCBsb25nICopJm5vZGVfdG9fY3B1bWFza19tYXBbZWFybHlfY3B1X3RvX25vZGUoY3B1KV0pOwotfQotCi12b2lkIF9fY3B1aW5pdCBudW1hX3NldF9ub2RlKGludCBjcHUsIGludCBub2RlKQotewotCWludCAqY3B1X3RvX25vZGVfbWFwID0geDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHI7Ci0KLQlpZihjcHVfdG9fbm9kZV9tYXApCi0JCWNwdV90b19ub2RlX21hcFtjcHVdID0gbm9kZTsKLQllbHNlIGlmKHBlcl9jcHVfb2Zmc2V0KGNwdSkpCi0JCXBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KSA9IG5vZGU7Ci0JZWxzZQotCQlEcHJpbnRrKEtFUk5fSU5GTyAiU2V0dGluZyBub2RlIGZvciBub24tcHJlc2VudCBjcHUgJWRcbiIsIGNwdSk7CisJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCBzdGFydF9wZm4sIGxhc3RfcGZuKTsKKwlzZXR1cF9ub2RlX2Jvb3RtZW0oMCwgc3RhcnRfcGZuIDw8IFBBR0VfU0hJRlQsIGxhc3RfcGZuIDw8IFBBR0VfU0hJRlQpOwogfQogCiB1bnNpZ25lZCBsb25nIF9faW5pdCBudW1hX2ZyZWVfYWxsX2Jvb3RtZW0odm9pZCkKQEAgLTYxMyw3ICs1NzksNyBAQAogCW1lbXNldChtYXhfem9uZV9wZm5zLCAwLCBzaXplb2YobWF4X3pvbmVfcGZucykpOwogCW1heF96b25lX3BmbnNbWk9ORV9ETUFdID0gTUFYX0RNQV9QRk47CiAJbWF4X3pvbmVfcGZuc1taT05FX0RNQTMyXSA9IE1BWF9ETUEzMl9QRk47Ci0JbWF4X3pvbmVfcGZuc1taT05FX05PUk1BTF0gPSBlbmRfcGZuOworCW1heF96b25lX3BmbnNbWk9ORV9OT1JNQUxdID0gbWF4X3BmbjsKIAogCXNwYXJzZV9tZW1vcnlfcHJlc2VudF93aXRoX2FjdGl2ZV9yZWdpb25zKE1BWF9OVU1OT0RFUyk7CiAJc3BhcnNlX2luaXQoKTsKQEAgLTY0MSw2ICs2MDcsNyBAQAogfQogZWFybHlfcGFyYW0oIm51bWEiLCBudW1hX3NldHVwKTsKIAorI2lmZGVmIENPTkZJR19OVU1BCiAvKgogICogU2V0dXAgZWFybHkgY3B1X3RvX25vZGUuCiAgKgpAQCAtNjUyLDE0ICs2MTksMTkgQEAKICAqIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQgaW4gYSByb3VuZCByb2JpbiBtYW5uZXIgYXQgbnVtYV9pbml0X2FycmF5LAogICogcHJpb3IgdG8gdGhpcyBjYWxsLCBhbmQgdGhpcyBpbml0aWFsaXphdGlvbiBpcyBnb29kIGVub3VnaAogICogZm9yIHRoZSBmYWtlIE5VTUEgY2FzZXMuCisgKgorICogQ2FsbGVkIGJlZm9yZSB0aGUgcGVyX2NwdSBhcmVhcyBhcmUgc2V0dXAuCiAgKi8KIHZvaWQgX19pbml0IGluaXRfY3B1X3RvX25vZGUodm9pZCkKIHsKLQlpbnQgaTsKKwlpbnQgY3B1OworCXUxNiAqY3B1X3RvX2FwaWNpZCA9IGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fYXBpY2lkKTsKIAotCWZvciAoaSA9IDA7IGkgPCBOUl9DUFVTOyBpKyspIHsKKwlCVUdfT04oY3B1X3RvX2FwaWNpZCA9PSBOVUxMKTsKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKIAkJaW50IG5vZGU7Ci0JCXUxNiBhcGljaWQgPSB4ODZfY3B1X3RvX2FwaWNpZF9pbml0W2ldOworCQl1MTYgYXBpY2lkID0gY3B1X3RvX2FwaWNpZFtjcHVdOwogCiAJCWlmIChhcGljaWQgPT0gQkFEX0FQSUNJRCkKIAkJCWNvbnRpbnVlOwpAQCAtNjY4LDggKzY0MCw5IEBACiAJCQljb250aW51ZTsKIAkJaWYgKCFub2RlX29ubGluZShub2RlKSkKIAkJCWNvbnRpbnVlOwotCQludW1hX3NldF9ub2RlKGksIG5vZGUpOworCQludW1hX3NldF9ub2RlKGNwdSwgbm9kZSk7CiAJfQogfQorI2VuZGlmCiAKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGFnZWF0dHItdGVzdC5jIGIvYXJjaC94ODYvbW0vcGFnZWF0dHItdGVzdC5jCmluZGV4IDc1ZjFiMTAuLjBkY2Q0MmUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BhZ2VhdHRyLXRlc3QuYworKysgYi9hcmNoL3g4Ni9tbS9wYWdlYXR0ci10ZXN0LmMKQEAgLTEsOCArMSw4IEBACiAvKgogICogc2VsZiB0ZXN0IGZvciBjaGFuZ2VfcGFnZV9hdHRyLgogICoKLSAqIENsZWFycyB0aGUgZ2xvYmFsIGJpdCBvbiByYW5kb20gcGFnZXMgaW4gdGhlIGRpcmVjdCBtYXBwaW5nLCB0aGVuIHJldmVydHMKLSAqIGFuZCBjb21wYXJlcyBwYWdlIHRhYmxlcyBmb3J3YXJkcyBhbmQgYWZ0ZXJ3YXJkcy4KKyAqIENsZWFycyB0aGUgYSB0ZXN0IHB0ZSBiaXQgb24gcmFuZG9tIHBhZ2VzIGluIHRoZSBkaXJlY3QgbWFwcGluZywKKyAqIHRoZW4gcmV2ZXJ0cyBhbmQgY29tcGFyZXMgcGFnZSB0YWJsZXMgZm9yd2FyZHMgYW5kIGFmdGVyd2FyZHMuCiAgKi8KICNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgpAQCAtMzIsNiArMzIsMTMgQEAKIAlHUFMJCQk9ICgxPDwzMCkKIH07CiAKKyNkZWZpbmUgUEFHRV9URVNUQklUCV9fcGdwcm90KF9QQUdFX1VOVVNFRDEpCisKK3N0YXRpYyBpbnQgcHRlX3Rlc3RiaXQocHRlX3QgcHRlKQoreworCXJldHVybiBwdGVfZmxhZ3MocHRlKSAmIF9QQUdFX1VOVVNFRDE7Cit9CisKIHN0cnVjdCBzcGxpdF9zdGF0ZSB7CiAJbG9uZyBscGcsIGdwZywgc3BnLCBleGVjOwogCWxvbmcgbWluX2V4ZWMsIG1heF9leGVjOwpAQCAtMTY1LDE1ICsxNzIsMTQgQEAKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJZXJyID0gY2hhbmdlX3BhZ2VfYXR0cl9jbGVhcihhZGRyW2ldLCBsZW5baV0sCi0JCQkJCSAgICAgICBfX3BncHJvdChfUEFHRV9HTE9CQUwpKTsKKwkJZXJyID0gY2hhbmdlX3BhZ2VfYXR0cl9zZXQoYWRkcltpXSwgbGVuW2ldLCBQQUdFX1RFU1RCSVQpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJDUEEgJWQgZmFpbGVkICVkXG4iLCBpLCBlcnIpOwogCQkJZmFpbGVkKys7CiAJCX0KIAogCQlwdGUgPSBsb29rdXBfYWRkcmVzcyhhZGRyW2ldLCAmbGV2ZWwpOwotCQlpZiAoIXB0ZSB8fCBwdGVfZ2xvYmFsKCpwdGUpIHx8IHB0ZV9odWdlKCpwdGUpKSB7CisJCWlmICghcHRlIHx8ICFwdGVfdGVzdGJpdCgqcHRlKSB8fCBwdGVfaHVnZSgqcHRlKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJDUEEgJWx4OiBiYWQgcHRlICVMeFxuIiwgYWRkcltpXSwKIAkJCQlwdGUgPyAodTY0KXB0ZV92YWwoKnB0ZSkgOiAwVUxMKTsKIAkJCWZhaWxlZCsrOwpAQCAtMTk4LDE0ICsyMDQsMTMgQEAKIAkJCWZhaWxlZCsrOwogCQkJY29udGludWU7CiAJCX0KLQkJZXJyID0gY2hhbmdlX3BhZ2VfYXR0cl9zZXQoYWRkcltpXSwgbGVuW2ldLAotCQkJCQkgICAgIF9fcGdwcm90KF9QQUdFX0dMT0JBTCkpOworCQllcnIgPSBjaGFuZ2VfcGFnZV9hdHRyX2NsZWFyKGFkZHJbaV0sIGxlbltpXSwgUEFHRV9URVNUQklUKTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCXByaW50ayhLRVJOX0VSUiAiQ1BBIHJldmVydGluZyBmYWlsZWQ6ICVkXG4iLCBlcnIpOwogCQkJZmFpbGVkKys7CiAJCX0KIAkJcHRlID0gbG9va3VwX2FkZHJlc3MoYWRkcltpXSwgJmxldmVsKTsKLQkJaWYgKCFwdGUgfHwgIXB0ZV9nbG9iYWwoKnB0ZSkpIHsKKwkJaWYgKCFwdGUgfHwgcHRlX3Rlc3RiaXQoKnB0ZSkpIHsKIAkJCXByaW50ayhLRVJOX0VSUiAiQ1BBICVseDogYmFkIHB0ZSBhZnRlciByZXZlcnQgJUx4XG4iLAogCQkJCWFkZHJbaV0sIHB0ZSA/ICh1NjQpcHRlX3ZhbCgqcHRlKSA6IDBVTEwpOwogCQkJZmFpbGVkKys7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYWdlYXR0ci5jIGIvYXJjaC94ODYvbW0vcGFnZWF0dHIuYwppbmRleCA5YjgzNmJhLi42NWM2ZTQ2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9wYWdlYXR0ci5jCisrKyBiL2FyY2gveDg2L21tL3BhZ2VhdHRyLmMKQEAgLTM0LDYgKzM0LDQxIEBACiAJdW5zaWduZWQJZm9yY2Vfc3BsaXQgOiAxOwogfTsKIAorI2lmZGVmIENPTkZJR19QUk9DX0ZTCitzdGF0aWMgdW5zaWduZWQgbG9uZyBkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfTlVNXTsKKwordm9pZCB1cGRhdGVfcGFnZV9jb3VudChpbnQgbGV2ZWwsIHVuc2lnbmVkIGxvbmcgcGFnZXMpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCS8qIFByb3RlY3QgYWdhaW5zdCBDUEEgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKKwlkaXJlY3RfcGFnZXNfY291bnRbbGV2ZWxdICs9IHBhZ2VzOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZF9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIHNwbGl0X3BhZ2VfY291bnQoaW50IGxldmVsKQoreworCWRpcmVjdF9wYWdlc19jb3VudFtsZXZlbF0tLTsKKwlkaXJlY3RfcGFnZXNfY291bnRbbGV2ZWwgLSAxXSArPSBQVFJTX1BFUl9QVEU7Cit9CisKK2ludCBhcmNoX3JlcG9ydF9tZW1pbmZvKGNoYXIgKnBhZ2UpCit7CisJaW50IG4gPSBzcHJpbnRmKHBhZ2UsICJEaXJlY3RNYXA0azogICU4bHVcbiIKKwkJCSJEaXJlY3RNYXAyTTogICU4bHVcbiIsCisJCQlkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfNEtdLAorCQkJZGlyZWN0X3BhZ2VzX2NvdW50W1BHX0xFVkVMXzJNXSk7CisjaWZkZWYgQ09ORklHX1g4Nl82NAorCW4gKz0gc3ByaW50ZihwYWdlICsgbiwgIkRpcmVjdE1hcDFHOiAgJThsdVxuIiwKKwkJICAgICBkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfMUddKTsKKyNlbmRpZgorCXJldHVybiBuOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBzcGxpdF9wYWdlX2NvdW50KGludCBsZXZlbCkgeyB9CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19YODZfNjQKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGhpZ2htYXBfc3RhcnRfcGZuKHZvaWQpCkBAIC0yMjcsNiArMjYyLDcgQEAKIAogCXJldHVybiBwdGVfb2Zmc2V0X2tlcm5lbChwbWQsIGFkZHJlc3MpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwobG9va3VwX2FkZHJlc3MpOwogCiAvKgogICogU2V0IHRoZSBuZXcgcG1kIGluIGFsbCB0aGUgcGdkcyB3ZSBrbm93IGFib3V0OgpAQCAtNTAwLDYgKzUzNiwxNiBAQAogCWZvciAoaSA9IDA7IGkgPCBQVFJTX1BFUl9QVEU7IGkrKywgcGZuICs9IHBmbmluYykKIAkJc2V0X3B0ZSgmcGJhc2VbaV0sIHBmbl9wdGUocGZuLCByZWZfcHJvdCkpOwogCisJaWYgKGFkZHJlc3MgPj0gKHVuc2lnbmVkIGxvbmcpX192YSgwKSAmJgorCQlhZGRyZXNzIDwgKHVuc2lnbmVkIGxvbmcpX192YShtYXhfbG93X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpCisJCXNwbGl0X3BhZ2VfY291bnQobGV2ZWwpOworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWlmIChhZGRyZXNzID49ICh1bnNpZ25lZCBsb25nKV9fdmEoMVVMPDwzMikgJiYKKwkJYWRkcmVzcyA8ICh1bnNpZ25lZCBsb25nKV9fdmEobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpCisJCXNwbGl0X3BhZ2VfY291bnQobGV2ZWwpOworI2VuZGlmCisKIAkvKgogCSAqIEluc3RhbGwgdGhlIG5ldywgc3BsaXQgdXAgcGFnZXRhYmxlLiBJbXBvcnRhbnQgZGV0YWlscyBoZXJlOgogCSAqCkBAIC02MTMsMTUgKzY1OSwyNCBAQAogCXN0cnVjdCBjcGFfZGF0YSBhbGlhc19jcGE7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoY3BhLT5wZm4gPiBtYXhfcGZuX21hcHBlZCkKKwlpZiAoY3BhLT5wZm4gPj0gbWF4X3Bmbl9tYXBwZWQpCiAJCXJldHVybiAwOwogCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWlmIChjcGEtPnBmbiA+PSBtYXhfbG93X3Bmbl9tYXBwZWQgJiYgY3BhLT5wZm4gPCAoMVVMPDwoMzItUEFHRV9TSElGVCkpKQorCQlyZXR1cm4gMDsKKyNlbmRpZgogCS8qCiAJICogTm8gbmVlZCB0byByZWRvLCB3aGVuIHRoZSBwcmltYXJ5IGNhbGwgdG91Y2hlZCB0aGUgZGlyZWN0CiAJICogbWFwcGluZyBhbHJlYWR5OgogCSAqLwotCWlmICghd2l0aGluKGNwYS0+dmFkZHIsIFBBR0VfT0ZGU0VULAotCQkgICAgUEFHRV9PRkZTRVQgKyAobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpKSB7CisJaWYgKCEod2l0aGluKGNwYS0+dmFkZHIsIFBBR0VfT0ZGU0VULAorCQkgICAgUEFHRV9PRkZTRVQgKyAobWF4X2xvd19wZm5fbWFwcGVkIDw8IFBBR0VfU0hJRlQpKQorI2lmZGVmIENPTkZJR19YODZfNjQKKwkJfHwgd2l0aGluKGNwYS0+dmFkZHIsIFBBR0VfT0ZGU0VUICsgKDFVTDw8MzIpLAorCQkgICAgUEFHRV9PRkZTRVQgKyAobWF4X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpCisjZW5kaWYKKwkpKSB7CiAKIAkJYWxpYXNfY3BhID0gKmNwYTsKIAkJYWxpYXNfY3BhLnZhZGRyID0gKHVuc2lnbmVkIGxvbmcpIF9fdmEoY3BhLT5wZm4gPDwgUEFHRV9TSElGVCk7CkBAIC04MDUsNyArODYwLDcgQEAKIAogaW50IHNldF9tZW1vcnlfd2ModW5zaWduZWQgbG9uZyBhZGRyLCBpbnQgbnVtcGFnZXMpCiB7Ci0JaWYgKCFwYXRfd2NfZW5hYmxlZCkKKwlpZiAoIXBhdF9lbmFibGVkKQogCQlyZXR1cm4gc2V0X21lbW9yeV91YyhhZGRyLCBudW1wYWdlcyk7CiAKIAlpZiAocmVzZXJ2ZV9tZW10eXBlKGFkZHIsIGFkZHIgKyBudW1wYWdlcyAqIFBBR0VfU0laRSwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3BhdC5jIGIvYXJjaC94ODYvbW0vcGF0LmMKaW5kZXggMDZiN2ExYy4uZDQ1ODUwNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vcGF0LmMKKysrIGIvYXJjaC94ODYvbW0vcGF0LmMKQEAgLTI2LDExICsyNiwxMSBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaWZkZWYgQ09ORklHX1g4Nl9QQVQKLWludCBfX3JlYWRfbW9zdGx5IHBhdF93Y19lbmFibGVkID0gMTsKK2ludCBfX3JlYWRfbW9zdGx5IHBhdF9lbmFibGVkID0gMTsKIAogdm9pZCBfX2NwdWluaXQgcGF0X2Rpc2FibGUoY2hhciAqcmVhc29uKQogewotCXBhdF93Y19lbmFibGVkID0gMDsKKwlwYXRfZW5hYmxlZCA9IDA7CiAJcHJpbnRrKEtFUk5fSU5GTyAiJXNcbiIsIHJlYXNvbik7CiB9CiAKQEAgLTQyLDYgKzQyLDE5IEBACiBlYXJseV9wYXJhbSgibm9wYXQiLCBub3BhdCk7CiAjZW5kaWYKIAorCitzdGF0aWMgaW50IGRlYnVnX2VuYWJsZTsKK3N0YXRpYyBpbnQgX19pbml0IHBhdF9kZWJ1Z19zZXR1cChjaGFyICpzdHIpCit7CisJZGVidWdfZW5hYmxlID0gMTsKKwlyZXR1cm4gMDsKK30KK19fc2V0dXAoImRlYnVncGF0IiwgcGF0X2RlYnVnX3NldHVwKTsKKworI2RlZmluZSBkcHJpbnRrKGZtdCwgYXJnLi4uKSBcCisJZG8geyBpZiAoZGVidWdfZW5hYmxlKSBwcmludGsoS0VSTl9JTkZPIGZtdCwgIyNhcmcpOyB9IHdoaWxlICgwKQorCisKIHN0YXRpYyB1NjQgX19yZWFkX21vc3RseSBib290X3BhdF9zdGF0ZTsKIAogZW51bSB7CkBAIC01MywyNCArNjYsMjUgQEAKIAlQQVRfVUNfTUlOVVMgPSA3LAkvKiBVQywgYnV0IGNhbiBiZSBvdmVycmlkZW4gYnkgTVRSUiAqLwogfTsKIAotI2RlZmluZSBQQVQoeCx5KQkoKHU2NClQQVRfICMjIHkgPDwgKCh4KSo4KSkKKyNkZWZpbmUgUEFUKHgsIHkpCSgodTY0KVBBVF8gIyMgeSA8PCAoKHgpKjgpKQogCiB2b2lkIHBhdF9pbml0KHZvaWQpCiB7CiAJdTY0IHBhdDsKIAotCWlmICghcGF0X3djX2VuYWJsZWQpCisJaWYgKCFwYXRfZW5hYmxlZCkKIAkJcmV0dXJuOwogCiAJLyogUGFyYW5vaWEgY2hlY2suICovCi0JaWYgKCFjcHVfaGFzX3BhdCkgewotCQlwcmludGsoS0VSTl9FUlIgIlBBVCBlbmFibGVkLCBidXQgQ1BVIGZlYXR1cmUgY2xlYXJlZFxuIik7CisJaWYgKCFjcHVfaGFzX3BhdCAmJiBib290X3BhdF9zdGF0ZSkgewogCQkvKgotCQkgKiBQYW5pYyBpZiB0aGlzIGhhcHBlbnMgb24gdGhlIHNlY29uZGFyeSBDUFUsIGFuZCB3ZQorCQkgKiBJZiB0aGlzIGhhcHBlbnMgd2UgYXJlIG9uIGEgc2Vjb25kYXJ5IENQVSwgYnV0CiAJCSAqIHN3aXRjaGVkIHRvIFBBVCBvbiB0aGUgYm9vdCBDUFUuIFdlIGhhdmUgbm8gd2F5IHRvCiAJCSAqIHVuZG8gUEFULgotCQkqLwotCQlCVUdfT04oYm9vdF9wYXRfc3RhdGUpOworCQkgKi8KKwkJcHJpbnRrKEtFUk5fRVJSICJQQVQgZW5hYmxlZCwgIgorCQkgICAgICAgImJ1dCBub3Qgc3VwcG9ydGVkIGJ5IHNlY29uZGFyeSBDUFVcbiIpOworCQlCVUcoKTsKIAl9CiAKIAkvKiBTZXQgUFdUIHRvIFdyaXRlLUNvbWJpbmluZy4gQWxsIG90aGVyIGJpdHMgc3RheSB0aGUgc2FtZSAqLwpAQCAtODYsOCArMTAwLDggQEAKIAkgKiAgICAgIDAxMSBVQwkJX1BBR0VfQ0FDSEVfVUMKIAkgKiBQQVQgYml0IHVudXNlZAogCSAqLwotCXBhdCA9IFBBVCgwLFdCKSB8IFBBVCgxLFdDKSB8IFBBVCgyLFVDX01JTlVTKSB8IFBBVCgzLFVDKSB8Ci0JICAgICAgUEFUKDQsV0IpIHwgUEFUKDUsV0MpIHwgUEFUKDYsVUNfTUlOVVMpIHwgUEFUKDcsVUMpOworCXBhdCA9IFBBVCgwLCBXQikgfCBQQVQoMSwgV0MpIHwgUEFUKDIsIFVDX01JTlVTKSB8IFBBVCgzLCBVQykgfAorCSAgICAgIFBBVCg0LCBXQikgfCBQQVQoNSwgV0MpIHwgUEFUKDYsIFVDX01JTlVTKSB8IFBBVCg3LCBVQyk7CiAKIAkvKiBCb290IENQVSBjaGVjayAqLwogCWlmICghYm9vdF9wYXRfc3RhdGUpCkBAIC0xMDMsMTEgKzExNywxMSBAQAogc3RhdGljIGNoYXIgKmNhdHRyX25hbWUodW5zaWduZWQgbG9uZyBmbGFncykKIHsKIAlzd2l0Y2ggKGZsYWdzICYgX1BBR0VfQ0FDSEVfTUFTSykgewotCQljYXNlIF9QQUdFX0NBQ0hFX1VDOgkJcmV0dXJuICJ1bmNhY2hlZCI7Ci0JCWNhc2UgX1BBR0VfQ0FDSEVfVUNfTUlOVVM6CXJldHVybiAidW5jYWNoZWQtbWludXMiOwotCQljYXNlIF9QQUdFX0NBQ0hFX1dCOgkJcmV0dXJuICJ3cml0ZS1iYWNrIjsKLQkJY2FzZSBfUEFHRV9DQUNIRV9XQzoJCXJldHVybiAid3JpdGUtY29tYmluaW5nIjsKLQkJZGVmYXVsdDoJCQlyZXR1cm4gImJyb2tlbiI7CisJY2FzZSBfUEFHRV9DQUNIRV9VQzoJCXJldHVybiAidW5jYWNoZWQiOworCWNhc2UgX1BBR0VfQ0FDSEVfVUNfTUlOVVM6CXJldHVybiAidW5jYWNoZWQtbWludXMiOworCWNhc2UgX1BBR0VfQ0FDSEVfV0I6CQlyZXR1cm4gIndyaXRlLWJhY2siOworCWNhc2UgX1BBR0VfQ0FDSEVfV0M6CQlyZXR1cm4gIndyaXRlLWNvbWJpbmluZyI7CisJZGVmYXVsdDoJCQlyZXR1cm4gImJyb2tlbiI7CiAJfQogfQogCkBAIC0xNDUsNDcgKzE1OSw1MCBAQAogICogVGhlIGludGVyc2VjdGlvbiBpcyBiYXNlZCBvbiAiRWZmZWN0aXZlIE1lbW9yeSBUeXBlIiB0YWJsZXMgaW4gSUEtMzIKICAqIFNETSB2b2wgM2EKICAqLwotc3RhdGljIGludCBwYXRfeF9tdHJyX3R5cGUodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCBsb25nIHByb3QsCi0JCQkJdW5zaWduZWQgbG9uZyAqcmV0X3Byb3QpCitzdGF0aWMgdW5zaWduZWQgbG9uZyBwYXRfeF9tdHJyX3R5cGUodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCBsb25nIHJlcV90eXBlKQogewotCXVuc2lnbmVkIGxvbmcgcGF0X3R5cGU7Ci0JdTggbXRycl90eXBlOwotCi0JcGF0X3R5cGUgPSBwcm90ICYgX1BBR0VfQ0FDSEVfTUFTSzsKLQlwcm90ICY9ICh+X1BBR0VfQ0FDSEVfTUFTSyk7Ci0KLQkvKgotCSAqIFdlIHJldHVybiB0aGUgUEFUIHJlcXVlc3QgZGlyZWN0bHkgZm9yIHR5cGVzIHdoZXJlIFBBVCB0YWtlcwotCSAqIHByZWNlZGVuY2Ugd2l0aCByZXNwZWN0IHRvIE1UUlIgYW5kIGZvciBVQ19NSU5VUy4KLQkgKiBDb25zaXN0ZW5jeSBjaGVja3Mgd2l0aCBvdGhlciBQQVQgcmVxdWVzdHMgaXMgZG9uZSBsYXRlcgotCSAqIHdoaWxlIGdvaW5nIHRocm91Z2ggbWVtdHlwZSBsaXN0LgotCSAqLwotCWlmIChwYXRfdHlwZSA9PSBfUEFHRV9DQUNIRV9XQykgewotCQkqcmV0X3Byb3QgPSBwcm90IHwgX1BBR0VfQ0FDSEVfV0M7Ci0JCXJldHVybiAwOwotCX0gZWxzZSBpZiAocGF0X3R5cGUgPT0gX1BBR0VfQ0FDSEVfVUNfTUlOVVMpIHsKLQkJKnJldF9wcm90ID0gcHJvdCB8IF9QQUdFX0NBQ0hFX1VDX01JTlVTOwotCQlyZXR1cm4gMDsKLQl9IGVsc2UgaWYgKHBhdF90eXBlID09IF9QQUdFX0NBQ0hFX1VDKSB7Ci0JCSpyZXRfcHJvdCA9IHByb3QgfCBfUEFHRV9DQUNIRV9VQzsKLQkJcmV0dXJuIDA7Ci0JfQotCiAJLyoKIAkgKiBMb29rIGZvciBNVFJSIGhpbnQgdG8gZ2V0IHRoZSBlZmZlY3RpdmUgdHlwZSBpbiBjYXNlIHdoZXJlIFBBVAogCSAqIHJlcXVlc3QgaXMgZm9yIFdCLgogCSAqLwotCW10cnJfdHlwZSA9IG10cnJfdHlwZV9sb29rdXAoc3RhcnQsIGVuZCk7CisJaWYgKHJlcV90eXBlID09IF9QQUdFX0NBQ0hFX1dCKSB7CisJCXU4IG10cnJfdHlwZTsKIAotCWlmIChtdHJyX3R5cGUgPT0gTVRSUl9UWVBFX1VOQ0FDSEFCTEUpIHsKLQkJKnJldF9wcm90ID0gcHJvdCB8IF9QQUdFX0NBQ0hFX1VDOwotCX0gZWxzZSBpZiAobXRycl90eXBlID09IE1UUlJfVFlQRV9XUkNPTUIpIHsKLQkJKnJldF9wcm90ID0gcHJvdCB8IF9QQUdFX0NBQ0hFX1dDOwotCX0gZWxzZSB7Ci0JCSpyZXRfcHJvdCA9IHByb3QgfCBfUEFHRV9DQUNIRV9XQjsKKwkJbXRycl90eXBlID0gbXRycl90eXBlX2xvb2t1cChzdGFydCwgZW5kKTsKKwkJaWYgKG10cnJfdHlwZSA9PSBNVFJSX1RZUEVfVU5DQUNIQUJMRSkKKwkJCXJldHVybiBfUEFHRV9DQUNIRV9VQzsKKwkJaWYgKG10cnJfdHlwZSA9PSBNVFJSX1RZUEVfV1JDT01CKQorCQkJcmV0dXJuIF9QQUdFX0NBQ0hFX1dDOwogCX0KIAorCXJldHVybiByZXFfdHlwZTsKK30KKworc3RhdGljIGludCBjaGtfY29uZmxpY3Qoc3RydWN0IG1lbXR5cGUgKm5ldywgc3RydWN0IG1lbXR5cGUgKmVudHJ5LAorCQkJdW5zaWduZWQgbG9uZyAqdHlwZSkKK3sKKwlpZiAobmV3LT50eXBlICE9IGVudHJ5LT50eXBlKSB7CisJCWlmICh0eXBlKSB7CisJCQluZXctPnR5cGUgPSBlbnRyeS0+dHlwZTsKKwkJCSp0eXBlID0gZW50cnktPnR5cGU7CisJCX0gZWxzZQorCQkJZ290byBjb25mbGljdDsKKwl9CisKKwkgLyogY2hlY2sgb3ZlcmxhcHMgd2l0aCBtb3JlIHRoYW4gb25lIGVudHJ5IGluIHRoZSBsaXN0ICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9jb250aW51ZShlbnRyeSwgJm1lbXR5cGVfbGlzdCwgbmQpIHsKKwkJaWYgKG5ldy0+ZW5kIDw9IGVudHJ5LT5zdGFydCkKKwkJCWJyZWFrOworCQllbHNlIGlmIChuZXctPnR5cGUgIT0gZW50cnktPnR5cGUpCisJCQlnb3RvIGNvbmZsaWN0OworCX0KIAlyZXR1cm4gMDsKKworIGNvbmZsaWN0OgorCXByaW50ayhLRVJOX0lORk8gIiVzOiVkIGNvbmZsaWN0aW5nIG1lbW9yeSB0eXBlcyAiCisJICAgICAgICIlTHgtJUx4ICVzPC0+JXNcbiIsIGN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwgbmV3LT5zdGFydCwKKwkgICAgICAgbmV3LT5lbmQsIGNhdHRyX25hbWUobmV3LT50eXBlKSwgY2F0dHJfbmFtZShlbnRyeS0+dHlwZSkpOworCXJldHVybiAtRUJVU1k7CiB9CiAKIC8qCkBAIC0xOTgsMzcgKzIxNSwzNiBAQAogICogcmVxX3R5cGUgd2lsbCBoYXZlIGEgc3BlY2lhbCBjYXNlIHZhbHVlICctMScsIHdoZW4gcmVxdWVzdGVyIHdhbnQgdG8gaW5oZXJpdAogICogdGhlIG1lbW9yeSB0eXBlIGZyb20gbXRyciAoaWYgV0IpLCBleGlzdGluZyBQQVQsIGRlZmF1bHRpbmcgdG8gVUNfTUlOVVMuCiAgKgotICogSWYgcmV0X3R5cGUgaXMgTlVMTCwgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gZXJyb3IgaWYgaXQgY2Fubm90IHJlc2VydmUgdGhlCi0gKiByZWdpb24gd2l0aCByZXFfdHlwZS4gSWYgcmV0X3R5cGUgaXMgbm9uLW51bGwsIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCi0gKiBhdmFpbGFibGUgdHlwZSBpbiByZXRfdHlwZSBpbiBjYXNlIG9mIG5vIGVycm9yLiBJbiBjYXNlIG9mIGFueSBlcnJvcgorICogSWYgbmV3X3R5cGUgaXMgTlVMTCwgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gZXJyb3IgaWYgaXQgY2Fubm90IHJlc2VydmUgdGhlCisgKiByZWdpb24gd2l0aCByZXFfdHlwZS4gSWYgbmV3X3R5cGUgaXMgbm9uLU5VTEwsIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCisgKiBhdmFpbGFibGUgdHlwZSBpbiBuZXdfdHlwZSBpbiBjYXNlIG9mIG5vIGVycm9yLiBJbiBjYXNlIG9mIGFueSBlcnJvcgogICogaXQgd2lsbCByZXR1cm4gYSBuZWdhdGl2ZSByZXR1cm4gdmFsdWUuCiAgKi8KIGludCByZXNlcnZlX21lbXR5cGUodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCBsb25nIHJlcV90eXBlLAotCQkJdW5zaWduZWQgbG9uZyAqcmV0X3R5cGUpCisJCQl1bnNpZ25lZCBsb25nICpuZXdfdHlwZSkKIHsKLQlzdHJ1Y3QgbWVtdHlwZSAqbmV3X2VudHJ5ID0gTlVMTDsKLQlzdHJ1Y3QgbWVtdHlwZSAqcGFyc2U7CisJc3RydWN0IG1lbXR5cGUgKm5ldywgKmVudHJ5OwogCXVuc2lnbmVkIGxvbmcgYWN0dWFsX3R5cGU7CisJc3RydWN0IGxpc3RfaGVhZCAqd2hlcmU7CiAJaW50IGVyciA9IDA7CiAKLQkvKiBPbmx5IHRyYWNrIHdoZW4gcGF0X3djX2VuYWJsZWQgKi8KLQlpZiAoIXBhdF93Y19lbmFibGVkKSB7CisgCUJVR19PTihzdGFydCA+PSBlbmQpOyAvKiBlbmQgaXMgZXhjbHVzaXZlICovCisKKwlpZiAoIXBhdF9lbmFibGVkKSB7CiAJCS8qIFRoaXMgaXMgaWRlbnRpY2FsIHRvIHBhZ2UgdGFibGUgc2V0dGluZyB3aXRob3V0IFBBVCAqLwotCQlpZiAocmV0X3R5cGUpIHsKLQkJCWlmIChyZXFfdHlwZSA9PSAtMSkgewotCQkJCSpyZXRfdHlwZSA9IF9QQUdFX0NBQ0hFX1dCOwotCQkJfSBlbHNlIHsKLQkJCQkqcmV0X3R5cGUgPSByZXFfdHlwZTsKLQkJCX0KKwkJaWYgKG5ld190eXBlKSB7CisJCQlpZiAocmVxX3R5cGUgPT0gLTEpCisJCQkJKm5ld190eXBlID0gX1BBR0VfQ0FDSEVfV0I7CisJCQllbHNlCisJCQkJKm5ld190eXBlID0gcmVxX3R5cGUgJiBfUEFHRV9DQUNIRV9NQVNLOwogCQl9CiAJCXJldHVybiAwOwogCX0KIAogCS8qIExvdyBJU0EgcmVnaW9uIGlzIGFsd2F5cyBtYXBwZWQgV0IgaW4gcGFnZSB0YWJsZS4gTm8gbmVlZCB0byB0cmFjayAqLwotCWlmIChzdGFydCA+PSBJU0FfU1RBUlRfQUREUkVTUyAmJiAoZW5kIC0gMSkgPD0gSVNBX0VORF9BRERSRVNTKSB7Ci0JCWlmIChyZXRfdHlwZSkKLQkJCSpyZXRfdHlwZSA9IF9QQUdFX0NBQ0hFX1dCOwotCisJaWYgKGlzX0lTQV9yYW5nZShzdGFydCwgZW5kIC0gMSkpIHsKKwkJaWYgKG5ld190eXBlKQorCQkJKm5ld190eXBlID0gX1BBR0VfQ0FDSEVfV0I7CiAJCXJldHVybiAwOwogCX0KIApAQCAtMjQxLDIwNiArMjU3LDkyIEBACiAJCSAqLwogCQl1OCBtdHJyX3R5cGUgPSBtdHJyX3R5cGVfbG9va3VwKHN0YXJ0LCBlbmQpOwogCi0JCWlmIChtdHJyX3R5cGUgPT0gTVRSUl9UWVBFX1dSQkFDSykgewotCQkJcmVxX3R5cGUgPSBfUEFHRV9DQUNIRV9XQjsKKwkJaWYgKG10cnJfdHlwZSA9PSBNVFJSX1RZUEVfV1JCQUNLKQogCQkJYWN0dWFsX3R5cGUgPSBfUEFHRV9DQUNIRV9XQjsKLQkJfSBlbHNlIHsKLQkJCXJlcV90eXBlID0gX1BBR0VfQ0FDSEVfVUNfTUlOVVM7CisJCWVsc2UKIAkJCWFjdHVhbF90eXBlID0gX1BBR0VfQ0FDSEVfVUNfTUlOVVM7Ci0JCX0KLQl9IGVsc2UgewotCQlyZXFfdHlwZSAmPSBfUEFHRV9DQUNIRV9NQVNLOwotCQllcnIgPSBwYXRfeF9tdHJyX3R5cGUoc3RhcnQsIGVuZCwgcmVxX3R5cGUsICZhY3R1YWxfdHlwZSk7Ci0JfQorCX0gZWxzZQorCQlhY3R1YWxfdHlwZSA9IHBhdF94X210cnJfdHlwZShzdGFydCwgZW5kLAorCQkJCQkgICAgICByZXFfdHlwZSAmIF9QQUdFX0NBQ0hFX01BU0spOwogCi0JaWYgKGVycikgewotCQlpZiAocmV0X3R5cGUpCi0JCQkqcmV0X3R5cGUgPSBhY3R1YWxfdHlwZTsKLQotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQluZXdfZW50cnkgID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IG1lbXR5cGUpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW5ld19lbnRyeSkKKwluZXcgID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IG1lbXR5cGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW5ldykKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQluZXdfZW50cnktPnN0YXJ0ID0gc3RhcnQ7Ci0JbmV3X2VudHJ5LT5lbmQgPSBlbmQ7Ci0JbmV3X2VudHJ5LT50eXBlID0gYWN0dWFsX3R5cGU7CisJbmV3LT5zdGFydCA9IHN0YXJ0OworCW5ldy0+ZW5kID0gZW5kOworCW5ldy0+dHlwZSA9IGFjdHVhbF90eXBlOwogCi0JaWYgKHJldF90eXBlKQotCQkqcmV0X3R5cGUgPSBhY3R1YWxfdHlwZTsKKwlpZiAobmV3X3R5cGUpCisJCSpuZXdfdHlwZSA9IGFjdHVhbF90eXBlOwogCiAJc3Bpbl9sb2NrKCZtZW10eXBlX2xvY2spOwogCiAJLyogU2VhcmNoIGZvciBleGlzdGluZyBtYXBwaW5nIHRoYXQgb3ZlcmxhcHMgdGhlIGN1cnJlbnQgcmFuZ2UgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcnNlLCAmbWVtdHlwZV9saXN0LCBuZCkgewotCQlzdHJ1Y3QgbWVtdHlwZSAqc2F2ZWRfcHRyOwotCi0JCWlmIChwYXJzZS0+c3RhcnQgPj0gZW5kKSB7Ci0JCQlwcl9kZWJ1ZygiTmV3IEVudHJ5XG4iKTsKLQkJCWxpc3RfYWRkKCZuZXdfZW50cnktPm5kLCBwYXJzZS0+bmQucHJldik7Ci0JCQluZXdfZW50cnkgPSBOVUxMOworCXdoZXJlID0gTlVMTDsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmbWVtdHlwZV9saXN0LCBuZCkgeworCQlpZiAoZW5kIDw9IGVudHJ5LT5zdGFydCkgeworCQkJd2hlcmUgPSBlbnRyeS0+bmQucHJldjsKIAkJCWJyZWFrOwotCQl9Ci0KLQkJaWYgKHN0YXJ0IDw9IHBhcnNlLT5zdGFydCAmJiBlbmQgPj0gcGFyc2UtPnN0YXJ0KSB7Ci0JCQlpZiAoYWN0dWFsX3R5cGUgIT0gcGFyc2UtPnR5cGUgJiYgcmV0X3R5cGUpIHsKLQkJCQlhY3R1YWxfdHlwZSA9IHBhcnNlLT50eXBlOwotCQkJCSpyZXRfdHlwZSA9IGFjdHVhbF90eXBlOwotCQkJCW5ld19lbnRyeS0+dHlwZSA9IGFjdHVhbF90eXBlOworCQl9IGVsc2UgaWYgKHN0YXJ0IDw9IGVudHJ5LT5zdGFydCkgeyAvKiBlbmQgPiBlbnRyeS0+c3RhcnQgKi8KKwkJCWVyciA9IGNoa19jb25mbGljdChuZXcsIGVudHJ5LCBuZXdfdHlwZSk7CisJCQlpZiAoIWVycikgeworCQkJCWRwcmludGsoIk92ZXJsYXAgYXQgMHglTHgtMHglTHhcbiIsCisJCQkJCWVudHJ5LT5zdGFydCwgZW50cnktPmVuZCk7CisJCQkJd2hlcmUgPSBlbnRyeS0+bmQucHJldjsKIAkJCX0KLQotCQkJaWYgKGFjdHVhbF90eXBlICE9IHBhcnNlLT50eXBlKSB7Ci0JCQkJcHJpbnRrKAotCQlLRVJOX0lORk8gIiVzOiVkIGNvbmZsaWN0aW5nIG1lbW9yeSB0eXBlcyAlTHgtJUx4ICVzPC0+JXNcbiIsCi0JCQkJCWN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwKLQkJCQkJc3RhcnQsIGVuZCwKLQkJCQkJY2F0dHJfbmFtZShhY3R1YWxfdHlwZSksCi0JCQkJCWNhdHRyX25hbWUocGFyc2UtPnR5cGUpKTsKLQkJCQllcnIgPSAtRUJVU1k7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0KLQkJCXNhdmVkX3B0ciA9IHBhcnNlOwotCQkJLyoKLQkJCSAqIENoZWNrIHRvIHNlZSB3aGV0aGVyIHRoZSByZXF1ZXN0IG92ZXJsYXBzIG1vcmUKLQkJCSAqIHRoYW4gb25lIGVudHJ5IGluIHRoZSBsaXN0Ci0JCQkgKi8KLQkJCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGludWUocGFyc2UsICZtZW10eXBlX2xpc3QsIG5kKSB7Ci0JCQkJaWYgKGVuZCA8PSBwYXJzZS0+c3RhcnQpIHsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCi0JCQkJaWYgKGFjdHVhbF90eXBlICE9IHBhcnNlLT50eXBlKSB7Ci0JCQkJCXByaW50aygKLQkJS0VSTl9JTkZPICIlczolZCBjb25mbGljdGluZyBtZW1vcnkgdHlwZXMgJUx4LSVMeCAlczwtPiVzXG4iLAotCQkJCQkJY3VycmVudC0+Y29tbSwgY3VycmVudC0+cGlkLAotCQkJCQkJc3RhcnQsIGVuZCwKLQkJCQkJCWNhdHRyX25hbWUoYWN0dWFsX3R5cGUpLAotCQkJCQkJY2F0dHJfbmFtZShwYXJzZS0+dHlwZSkpOwotCQkJCQllcnIgPSAtRUJVU1k7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQotCQkJaWYgKGVycikgewotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlwcl9kZWJ1ZygiT3ZlcmxhcCBhdCAweCVMeC0weCVMeFxuIiwKLQkJCSAgICAgICBzYXZlZF9wdHItPnN0YXJ0LCBzYXZlZF9wdHItPmVuZCk7Ci0JCQkvKiBObyBjb25mbGljdC4gR28gYWhlYWQgYW5kIGFkZCB0aGlzIG5ldyBlbnRyeSAqLwotCQkJbGlzdF9hZGQoJm5ld19lbnRyeS0+bmQsIHNhdmVkX3B0ci0+bmQucHJldik7Ci0JCQluZXdfZW50cnkgPSBOVUxMOwogCQkJYnJlYWs7Ci0JCX0KLQotCQlpZiAoc3RhcnQgPCBwYXJzZS0+ZW5kKSB7Ci0JCQlpZiAoYWN0dWFsX3R5cGUgIT0gcGFyc2UtPnR5cGUgJiYgcmV0X3R5cGUpIHsKLQkJCQlhY3R1YWxfdHlwZSA9IHBhcnNlLT50eXBlOwotCQkJCSpyZXRfdHlwZSA9IGFjdHVhbF90eXBlOwotCQkJCW5ld19lbnRyeS0+dHlwZSA9IGFjdHVhbF90eXBlOworCQl9IGVsc2UgaWYgKHN0YXJ0IDwgZW50cnktPmVuZCkgeyAvKiBzdGFydCA+IGVudHJ5LT5zdGFydCAqLworCQkJZXJyID0gY2hrX2NvbmZsaWN0KG5ldywgZW50cnksIG5ld190eXBlKTsKKwkJCWlmICghZXJyKSB7CisJCQkJZHByaW50aygiT3ZlcmxhcCBhdCAweCVMeC0weCVMeFxuIiwKKwkJCQkJZW50cnktPnN0YXJ0LCBlbnRyeS0+ZW5kKTsKKwkJCQl3aGVyZSA9ICZlbnRyeS0+bmQ7CiAJCQl9Ci0KLQkJCWlmIChhY3R1YWxfdHlwZSAhPSBwYXJzZS0+dHlwZSkgewotCQkJCXByaW50aygKLQkJS0VSTl9JTkZPICIlczolZCBjb25mbGljdGluZyBtZW1vcnkgdHlwZXMgJUx4LSVMeCAlczwtPiVzXG4iLAotCQkJCQljdXJyZW50LT5jb21tLCBjdXJyZW50LT5waWQsCi0JCQkJCXN0YXJ0LCBlbmQsCi0JCQkJCWNhdHRyX25hbWUoYWN0dWFsX3R5cGUpLAotCQkJCQljYXR0cl9uYW1lKHBhcnNlLT50eXBlKSk7Ci0JCQkJZXJyID0gLUVCVVNZOwotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlzYXZlZF9wdHIgPSBwYXJzZTsKLQkJCS8qCi0JCQkgKiBDaGVjayB0byBzZWUgd2hldGhlciB0aGUgcmVxdWVzdCBvdmVybGFwcyBtb3JlCi0JCQkgKiB0aGFuIG9uZSBlbnRyeSBpbiB0aGUgbGlzdAotCQkJICovCi0JCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X2NvbnRpbnVlKHBhcnNlLCAmbWVtdHlwZV9saXN0LCBuZCkgewotCQkJCWlmIChlbmQgPD0gcGFyc2UtPnN0YXJ0KSB7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQotCQkJCWlmIChhY3R1YWxfdHlwZSAhPSBwYXJzZS0+dHlwZSkgewotCQkJCQlwcmludGsoCi0JCUtFUk5fSU5GTyAiJXM6JWQgY29uZmxpY3RpbmcgbWVtb3J5IHR5cGVzICVMeC0lTHggJXM8LT4lc1xuIiwKLQkJCQkJCWN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwKLQkJCQkJCXN0YXJ0LCBlbmQsCi0JCQkJCQljYXR0cl9uYW1lKGFjdHVhbF90eXBlKSwKLQkJCQkJCWNhdHRyX25hbWUocGFyc2UtPnR5cGUpKTsKLQkJCQkJZXJyID0gLUVCVVNZOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQl9Ci0KLQkJCWlmIChlcnIpIHsKLQkJCQlicmVhazsKLQkJCX0KLQotCQkJcHJfZGVidWcoS0VSTl9JTkZPICJPdmVybGFwIGF0IDB4JUx4LTB4JUx4XG4iLAotCQkJCSBzYXZlZF9wdHItPnN0YXJ0LCBzYXZlZF9wdHItPmVuZCk7Ci0JCQkvKiBObyBjb25mbGljdC4gR28gYWhlYWQgYW5kIGFkZCB0aGlzIG5ldyBlbnRyeSAqLwotCQkJbGlzdF9hZGQoJm5ld19lbnRyeS0+bmQsICZzYXZlZF9wdHItPm5kKTsKLQkJCW5ld19lbnRyeSA9IE5VTEw7CiAJCQlicmVhazsKIAkJfQogCX0KIAogCWlmIChlcnIpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTwotCSJyZXNlcnZlX21lbXR5cGUgZmFpbGVkIDB4JUx4LTB4JUx4LCB0cmFjayAlcywgcmVxICVzXG4iLAotCQkJc3RhcnQsIGVuZCwgY2F0dHJfbmFtZShuZXdfZW50cnktPnR5cGUpLAotCQkJY2F0dHJfbmFtZShyZXFfdHlwZSkpOwotCQlrZnJlZShuZXdfZW50cnkpOworCQlwcmludGsoS0VSTl9JTkZPICJyZXNlcnZlX21lbXR5cGUgZmFpbGVkIDB4JUx4LTB4JUx4LCAiCisJCSAgICAgICAidHJhY2sgJXMsIHJlcSAlc1xuIiwKKwkJICAgICAgIHN0YXJ0LCBlbmQsIGNhdHRyX25hbWUobmV3LT50eXBlKSwgY2F0dHJfbmFtZShyZXFfdHlwZSkpOworCQlrZnJlZShuZXcpOwogCQlzcGluX3VubG9jaygmbWVtdHlwZV9sb2NrKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKLQlpZiAobmV3X2VudHJ5KSB7Ci0JCS8qIE5vIGNvbmZsaWN0LiBOb3QgeWV0IGFkZGVkIHRvIHRoZSBsaXN0LiBBZGQgdG8gdGhlIHRhaWwgKi8KLQkJbGlzdF9hZGRfdGFpbCgmbmV3X2VudHJ5LT5uZCwgJm1lbXR5cGVfbGlzdCk7Ci0JCXByX2RlYnVnKCJOZXcgRW50cnlcbiIpOwotCX0KLQotCWlmIChyZXRfdHlwZSkgewotCQlwcl9kZWJ1ZygKLQkicmVzZXJ2ZV9tZW10eXBlIGFkZGVkIDB4JUx4LTB4JUx4LCB0cmFjayAlcywgcmVxICVzLCByZXQgJXNcbiIsCi0JCQlzdGFydCwgZW5kLCBjYXR0cl9uYW1lKGFjdHVhbF90eXBlKSwKLQkJCWNhdHRyX25hbWUocmVxX3R5cGUpLCBjYXR0cl9uYW1lKCpyZXRfdHlwZSkpOwotCX0gZWxzZSB7Ci0JCXByX2RlYnVnKAotCSJyZXNlcnZlX21lbXR5cGUgYWRkZWQgMHglTHgtMHglTHgsIHRyYWNrICVzLCByZXEgJXNcbiIsCi0JCQlzdGFydCwgZW5kLCBjYXR0cl9uYW1lKGFjdHVhbF90eXBlKSwKLQkJCWNhdHRyX25hbWUocmVxX3R5cGUpKTsKLQl9CisJaWYgKHdoZXJlKQorCQlsaXN0X2FkZCgmbmV3LT5uZCwgd2hlcmUpOworCWVsc2UKKwkJbGlzdF9hZGRfdGFpbCgmbmV3LT5uZCwgJm1lbXR5cGVfbGlzdCk7CiAKIAlzcGluX3VubG9jaygmbWVtdHlwZV9sb2NrKTsKKworCWRwcmludGsoInJlc2VydmVfbWVtdHlwZSBhZGRlZCAweCVMeC0weCVMeCwgdHJhY2sgJXMsIHJlcSAlcywgcmV0ICVzXG4iLAorCQlzdGFydCwgZW5kLCBjYXR0cl9uYW1lKG5ldy0+dHlwZSksIGNhdHRyX25hbWUocmVxX3R5cGUpLAorCQluZXdfdHlwZSA/IGNhdHRyX25hbWUoKm5ld190eXBlKSA6ICItIik7CisKIAlyZXR1cm4gZXJyOwogfQogCiBpbnQgZnJlZV9tZW10eXBlKHU2NCBzdGFydCwgdTY0IGVuZCkKIHsKLQlzdHJ1Y3QgbWVtdHlwZSAqbWw7CisJc3RydWN0IG1lbXR5cGUgKmVudHJ5OwogCWludCBlcnIgPSAtRUlOVkFMOwogCi0JLyogT25seSB0cmFjayB3aGVuIHBhdF93Y19lbmFibGVkICovCi0JaWYgKCFwYXRfd2NfZW5hYmxlZCkgeworCWlmICghcGF0X2VuYWJsZWQpCiAJCXJldHVybiAwOwotCX0KIAogCS8qIExvdyBJU0EgcmVnaW9uIGlzIGFsd2F5cyBtYXBwZWQgV0IuIE5vIG5lZWQgdG8gdHJhY2sgKi8KLQlpZiAoc3RhcnQgPj0gSVNBX1NUQVJUX0FERFJFU1MgJiYgZW5kIDw9IElTQV9FTkRfQUREUkVTUykgeworCWlmIChpc19JU0FfcmFuZ2Uoc3RhcnQsIGVuZCAtIDEpKQogCQlyZXR1cm4gMDsKLQl9CiAKIAlzcGluX2xvY2soJm1lbXR5cGVfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShtbCwgJm1lbXR5cGVfbGlzdCwgbmQpIHsKLQkJaWYgKG1sLT5zdGFydCA9PSBzdGFydCAmJiBtbC0+ZW5kID09IGVuZCkgewotCQkJbGlzdF9kZWwoJm1sLT5uZCk7Ci0JCQlrZnJlZShtbCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJm1lbXR5cGVfbGlzdCwgbmQpIHsKKwkJaWYgKGVudHJ5LT5zdGFydCA9PSBzdGFydCAmJiBlbnRyeS0+ZW5kID09IGVuZCkgeworCQkJbGlzdF9kZWwoJmVudHJ5LT5uZCk7CisJCQlrZnJlZShlbnRyeSk7CiAJCQllcnIgPSAwOwogCQkJYnJlYWs7CiAJCX0KQEAgLTQ1Miw3ICszNTQsNyBAQAogCQkJY3VycmVudC0+Y29tbSwgY3VycmVudC0+cGlkLCBzdGFydCwgZW5kKTsKIAl9CiAKLQlwcl9kZWJ1ZygiZnJlZV9tZW10eXBlIHJlcXVlc3QgMHglTHgtMHglTHhcbiIsIHN0YXJ0LCBlbmQpOworCWRwcmludGsoImZyZWVfbWVtdHlwZSByZXF1ZXN0IDB4JUx4LTB4JUx4XG4iLCBzdGFydCwgZW5kKTsKIAlyZXR1cm4gZXJyOwogfQogCkBAIC01MjEsMTIgKzQyMywxMiBAQAogCSAqIGNhY2hpbmcgZm9yIHRoZSBoaWdoIGFkZHJlc3NlcyB0aHJvdWdoIHRoZSBLRU4gcGluLCBidXQKIAkgKiB3ZSBtYWludGFpbiB0aGUgdHJhZGl0aW9uIG9mIHBhcmFub2lhIGluIHRoaXMgY29kZS4KIAkgKi8KLQlpZiAoIXBhdF93Y19lbmFibGVkICYmCi0JICAgICEgKCB0ZXN0X2JpdChYODZfRkVBVFVSRV9NVFJSLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5KSB8fAotCQl0ZXN0X2JpdChYODZfRkVBVFVSRV9LNl9NVFJSLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5KSB8fAotCQl0ZXN0X2JpdChYODZfRkVBVFVSRV9DWVJJWF9BUlIsIGJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHkpIHx8Ci0JCXRlc3RfYml0KFg4Nl9GRUFUVVJFX0NFTlRBVVJfTUNSLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5KSkgJiYKLQkgICAocGZuIDw8IFBBR0VfU0hJRlQpID49IF9fcGEoaGlnaF9tZW1vcnkpKSB7CisJaWYgKCFwYXRfZW5hYmxlZCAmJgorCSAgICAhKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9NVFJSKSB8fAorCSAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9LNl9NVFJSKSB8fAorCSAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DWVJJWF9BUlIpIHx8CisJICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NFTlRBVVJfTUNSKSkgJiYKKwkgICAgKHBmbiA8PCBQQUdFX1NISUZUKSA+PSBfX3BhKGhpZ2hfbWVtb3J5KSkgewogCQlmbGFncyA9IF9QQUdFX0NBQ0hFX1VDOwogCX0KICNlbmRpZgpAQCAtNTQ3LDggKzQ0OSw5IEBACiAJaWYgKHJldHZhbCA8IDApCiAJCXJldHVybiAwOwogCi0JaWYgKHBmbiA8PSBtYXhfcGZuX21hcHBlZCAmJgotICAgICAgICAgICAgaW9yZW1hcF9jaGFuZ2VfYXR0cigodW5zaWduZWQgbG9uZylfX3ZhKG9mZnNldCksIHNpemUsIGZsYWdzKSA8IDApIHsKKwlpZiAoKChwZm4gPCBtYXhfbG93X3Bmbl9tYXBwZWQpIHx8CisJICAgICAocGZuID49ICgxVUw8PCgzMiAtIFBBR0VfU0hJRlQpKSAmJiBwZm4gPCBtYXhfcGZuX21hcHBlZCkpICYmCisJICAgIGlvcmVtYXBfY2hhbmdlX2F0dHIoKHVuc2lnbmVkIGxvbmcpX192YShvZmZzZXQpLCBzaXplLCBmbGFncykgPCAwKSB7CiAJCWZyZWVfbWVtdHlwZShvZmZzZXQsIG9mZnNldCArIHNpemUpOwogCQlwcmludGsoS0VSTl9JTkZPCiAJCSIlczolZCAvZGV2L21lbSBpb3JlbWFwX2NoYW5nZV9hdHRyIGZhaWxlZCAlcyBmb3IgJUx4LSVMeFxuIiwKQEAgLTU4Niw0ICs0ODksMyBAQAogCiAJZnJlZV9tZW10eXBlKGFkZHIsIGFkZHIgKyBzaXplKTsKIH0KLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGZfaW4uYyBiL2FyY2gveDg2L21tL3BmX2luLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhMTkxMQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L21tL3BmX2luLmMKQEAgLTAsMCArMSw0ODkgQEAKKy8qCisgKiAgRmF1bHQgSW5qZWN0aW9uIFRlc3QgaGFybmVzcyAoRkkpCisgKiAgQ29weXJpZ2h0IChDKSBJbnRlbCBDcm9wLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3LAorICogIFVTQS4KKyAqCisgKi8KKworLyogIElkOiBwZl9pbi5jLHYgMS4xLjEuMSAyMDAyLzExLzEyIDA1OjU2OjMyIGJybG9jayBFeHAKKyAqICBDb3B5cmlnaHQgYnkgSW50ZWwgQ3JvcC4sIDIwMDIKKyAqICBMb3VpcyBaaHVhbmcgKGxvdWlzLnpodWFuZ0BpbnRlbC5jb20pCisgKgorICogIEJqb3JuIFN0ZWluYnJpbmsgKEIuU3RlaW5icmlua0BnbXguZGUpLCAyMDA3CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPiAvKiBzdHJ1Y3QgcHRfcmVncyAqLworI2luY2x1ZGUgInBmX2luLmgiCisKKyNpZmRlZiBfX2kzODZfXworLyogSUEzMiBNYW51YWwgMywgMi0xICovCitzdGF0aWMgdW5zaWduZWQgY2hhciBwcmVmaXhfY29kZXNbXSA9IHsKKwkweEYwLCAweEYyLCAweEYzLCAweDJFLCAweDM2LCAweDNFLCAweDI2LCAweDY0LAorCTB4NjUsIDB4MkUsIDB4M0UsIDB4NjYsIDB4NjcKK307CisvKiBJQTMyIE1hbnVhbCAzLCAzLTQzMiovCitzdGF0aWMgdW5zaWduZWQgaW50IHJlZ19yb3BbXSA9IHsKKwkweDhBLCAweDhCLCAweEI2MEYsIDB4QjcwRiwgMHhCRTBGLCAweEJGMEYKK307CitzdGF0aWMgdW5zaWduZWQgaW50IHJlZ193b3BbXSA9IHsgMHg4OCwgMHg4OSB9Oworc3RhdGljIHVuc2lnbmVkIGludCBpbW1fd29wW10gPSB7IDB4QzYsIDB4QzcgfTsKKy8qIElBMzIgTWFudWFsIDMsIDMtNDMyKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgcnc4W10gPSB7IDB4ODgsIDB4OEEsIDB4QzYgfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcnczMltdID0geworCTB4ODksIDB4OEIsIDB4QzcsIDB4QjYwRiwgMHhCNzBGLCAweEJFMEYsIDB4QkYwRgorfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXc4W10gPSB7IDB4ODgsIDB4OEEsIDB4QzYsIDB4QjYwRiwgMHhCRTBGIH07CitzdGF0aWMgdW5zaWduZWQgaW50IG13MTZbXSA9IHsgMHhCNzBGLCAweEJGMEYgfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXczMltdID0geyAweDg5LCAweDhCLCAweEM3IH07CitzdGF0aWMgdW5zaWduZWQgaW50IG13NjRbXSA9IHt9OworI2Vsc2UgLyogbm90IF9faTM4Nl9fICovCitzdGF0aWMgdW5zaWduZWQgY2hhciBwcmVmaXhfY29kZXNbXSA9IHsKKwkweDY2LCAweDY3LCAweDJFLCAweDNFLCAweDI2LCAweDY0LCAweDY1LCAweDM2LAorCTB4RjAsIDB4RjMsIDB4RjIsCisJLyogUkVYIFByZWZpeGVzICovCisJMHg0MCwgMHg0MSwgMHg0MiwgMHg0MywgMHg0NCwgMHg0NSwgMHg0NiwgMHg0NywKKwkweDQ4LCAweDQ5LCAweDRhLCAweDRiLCAweDRjLCAweDRkLCAweDRlLCAweDRmCit9OworLyogQU1ENjQgTWFudWFsIDMsIEFwcGVuZGl4IEEqLworc3RhdGljIHVuc2lnbmVkIGludCByZWdfcm9wW10gPSB7CisJMHg4QSwgMHg4QiwgMHhCNjBGLCAweEI3MEYsIDB4QkUwRiwgMHhCRjBGCit9Oworc3RhdGljIHVuc2lnbmVkIGludCByZWdfd29wW10gPSB7IDB4ODgsIDB4ODkgfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgaW1tX3dvcFtdID0geyAweEM2LCAweEM3IH07CitzdGF0aWMgdW5zaWduZWQgaW50IHJ3OFtdID0geyAweEM2LCAweDg4LCAweDhBIH07CitzdGF0aWMgdW5zaWduZWQgaW50IHJ3MzJbXSA9IHsKKwkweEM3LCAweDg5LCAweDhCLCAweEI2MEYsIDB4QjcwRiwgMHhCRTBGLCAweEJGMEYKK307CisvKiA4IGJpdCBvbmx5ICovCitzdGF0aWMgdW5zaWduZWQgaW50IG13OFtdID0geyAweEM2LCAweDg4LCAweDhBLCAweEI2MEYsIDB4QkUwRiB9OworLyogMTYgYml0IG9ubHkgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXcxNltdID0geyAweEI3MEYsIDB4QkYwRiB9OworLyogMTYgb3IgMzIgYml0ICovCitzdGF0aWMgdW5zaWduZWQgaW50IG13MzJbXSA9IHsgMHhDNyB9OworLyogMTYsIDMyIG9yIDY0IGJpdCAqLworc3RhdGljIHVuc2lnbmVkIGludCBtdzY0W10gPSB7IDB4ODksIDB4OEIgfTsKKyNlbmRpZiAvKiBub3QgX19pMzg2X18gKi8KKworc3RhdGljIGludCBza2lwX3ByZWZpeCh1bnNpZ25lZCBjaGFyICphZGRyLCBpbnQgKnNob3J0ZWQsIGludCAqZW5sYXJnZWQsCisJCQkJCQkJCWludCAqcmV4cikKK3sKKwlpbnQgaTsKKwl1bnNpZ25lZCBjaGFyICpwID0gYWRkcjsKKwkqc2hvcnRlZCA9IDA7CisJKmVubGFyZ2VkID0gMDsKKwkqcmV4ciA9IDA7CisKK3Jlc3RhcnQ6CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocHJlZml4X2NvZGVzKTsgaSsrKSB7CisJCWlmICgqcCA9PSBwcmVmaXhfY29kZXNbaV0pIHsKKwkJCWlmICgqcCA9PSAweDY2KQorCQkJCSpzaG9ydGVkID0gMTsKKyNpZmRlZiBfX2FtZDY0X18KKwkJCWlmICgoKnAgJiAweGY4KSA9PSAweDQ4KQorCQkJCSplbmxhcmdlZCA9IDE7CisJCQlpZiAoKCpwICYgMHhmNCkgPT0gMHg0NCkKKwkJCQkqcmV4ciA9IDE7CisjZW5kaWYKKwkJCXArKzsKKwkJCWdvdG8gcmVzdGFydDsKKwkJfQorCX0KKworCXJldHVybiAocCAtIGFkZHIpOworfQorCitzdGF0aWMgaW50IGdldF9vcGNvZGUodW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50ICpvcGNvZGUpCit7CisJaW50IGxlbjsKKworCWlmICgqYWRkciA9PSAweDBGKSB7CisJCS8qIDB4MEYgaXMgZXh0ZW5zaW9uIGluc3RydWN0aW9uICovCisJCSpvcGNvZGUgPSAqKHVuc2lnbmVkIHNob3J0ICopYWRkcjsKKwkJbGVuID0gMjsKKwl9IGVsc2UgeworCQkqb3Bjb2RlID0gKmFkZHI7CisJCWxlbiA9IDE7CisJfQorCisJcmV0dXJuIGxlbjsKK30KKworI2RlZmluZSBDSEVDS19PUF9UWVBFKG9wY29kZSwgYXJyYXksIHR5cGUpIFwKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhcnJheSk7IGkrKykgeyBcCisJCWlmIChhcnJheVtpXSA9PSBvcGNvZGUpIHsgXAorCQkJcnYgPSB0eXBlOyBcCisJCQlnb3RvIGV4aXQ7IFwKKwkJfSBcCisJfQorCitlbnVtIHJlYXNvbl90eXBlIGdldF9pbnNfdHlwZSh1bnNpZ25lZCBsb25nIGluc19hZGRyKQoreworCXVuc2lnbmVkIGludCBvcGNvZGU7CisJdW5zaWduZWQgY2hhciAqcDsKKwlpbnQgc2hvcnRlZCwgZW5sYXJnZWQsIHJleHI7CisJaW50IGk7CisJZW51bSByZWFzb25fdHlwZSBydiA9IE9USEVSUzsKKworCXAgPSAodW5zaWduZWQgY2hhciAqKWluc19hZGRyOworCXAgKz0gc2tpcF9wcmVmaXgocCwgJnNob3J0ZWQsICZlbmxhcmdlZCwgJnJleHIpOworCXAgKz0gZ2V0X29wY29kZShwLCAmb3Bjb2RlKTsKKworCUNIRUNLX09QX1RZUEUob3Bjb2RlLCByZWdfcm9wLCBSRUdfUkVBRCk7CisJQ0hFQ0tfT1BfVFlQRShvcGNvZGUsIHJlZ193b3AsIFJFR19XUklURSk7CisJQ0hFQ0tfT1BfVFlQRShvcGNvZGUsIGltbV93b3AsIElNTV9XUklURSk7CisKK2V4aXQ6CisJcmV0dXJuIHJ2OworfQorI3VuZGVmIENIRUNLX09QX1RZUEUKKworc3RhdGljIHVuc2lnbmVkIGludCBnZXRfaW5zX3JlZ193aWR0aCh1bnNpZ25lZCBsb25nIGluc19hZGRyKQoreworCXVuc2lnbmVkIGludCBvcGNvZGU7CisJdW5zaWduZWQgY2hhciAqcDsKKwlpbnQgaSwgc2hvcnRlZCwgZW5sYXJnZWQsIHJleHI7CisKKwlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnNfYWRkcjsKKwlwICs9IHNraXBfcHJlZml4KHAsICZzaG9ydGVkLCAmZW5sYXJnZWQsICZyZXhyKTsKKwlwICs9IGdldF9vcGNvZGUocCwgJm9wY29kZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShydzgpOyBpKyspCisJCWlmIChydzhbaV0gPT0gb3Bjb2RlKQorCQkJcmV0dXJuIDE7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShydzMyKTsgaSsrKQorCQlpZiAocnczMltpXSA9PSBvcGNvZGUpCisJCQlyZXR1cm4gKHNob3J0ZWQgPyAyIDogKGVubGFyZ2VkID8gOCA6IDQpKTsKKworCXByaW50ayhLRVJOX0VSUiAibW1pb3RyYWNlOiBVbmtub3duIG9wY29kZSAweCUwMnhcbiIsIG9wY29kZSk7CisJcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIGludCBnZXRfaW5zX21lbV93aWR0aCh1bnNpZ25lZCBsb25nIGluc19hZGRyKQoreworCXVuc2lnbmVkIGludCBvcGNvZGU7CisJdW5zaWduZWQgY2hhciAqcDsKKwlpbnQgaSwgc2hvcnRlZCwgZW5sYXJnZWQsIHJleHI7CisKKwlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnNfYWRkcjsKKwlwICs9IHNraXBfcHJlZml4KHAsICZzaG9ydGVkLCAmZW5sYXJnZWQsICZyZXhyKTsKKwlwICs9IGdldF9vcGNvZGUocCwgJm9wY29kZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtdzgpOyBpKyspCisJCWlmIChtdzhbaV0gPT0gb3Bjb2RlKQorCQkJcmV0dXJuIDE7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtdzE2KTsgaSsrKQorCQlpZiAobXcxNltpXSA9PSBvcGNvZGUpCisJCQlyZXR1cm4gMjsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG13MzIpOyBpKyspCisJCWlmIChtdzMyW2ldID09IG9wY29kZSkKKwkJCXJldHVybiBzaG9ydGVkID8gMiA6IDQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtdzY0KTsgaSsrKQorCQlpZiAobXc2NFtpXSA9PSBvcGNvZGUpCisJCQlyZXR1cm4gc2hvcnRlZCA/IDIgOiAoZW5sYXJnZWQgPyA4IDogNCk7CisKKwlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogVW5rbm93biBvcGNvZGUgMHglMDJ4XG4iLCBvcGNvZGUpOworCXJldHVybiAwOworfQorCisvKgorICogRGVmaW5lIHJlZ2lzdGVyIGlkZW50IGluIG1vZC9ybSBieXRlLgorICogTm90ZTogdGhlc2UgYXJlIE5PVCB0aGUgc2FtZSBhcyBpbiBwdHJhY2UtYWJpLmguCisgKi8KK2VudW0geworCWFyZ19BTCA9IDAsCisJYXJnX0NMID0gMSwKKwlhcmdfREwgPSAyLAorCWFyZ19CTCA9IDMsCisJYXJnX0FIID0gNCwKKwlhcmdfQ0ggPSA1LAorCWFyZ19ESCA9IDYsCisJYXJnX0JIID0gNywKKworCWFyZ19BWCA9IDAsCisJYXJnX0NYID0gMSwKKwlhcmdfRFggPSAyLAorCWFyZ19CWCA9IDMsCisJYXJnX1NQID0gNCwKKwlhcmdfQlAgPSA1LAorCWFyZ19TSSA9IDYsCisJYXJnX0RJID0gNywKKyNpZmRlZiBfX2FtZDY0X18KKwlhcmdfUjggID0gOCwKKwlhcmdfUjkgID0gOSwKKwlhcmdfUjEwID0gMTAsCisJYXJnX1IxMSA9IDExLAorCWFyZ19SMTIgPSAxMiwKKwlhcmdfUjEzID0gMTMsCisJYXJnX1IxNCA9IDE0LAorCWFyZ19SMTUgPSAxNQorI2VuZGlmCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciAqZ2V0X3JlZ193OChpbnQgbm8sIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXVuc2lnbmVkIGNoYXIgKnJ2ID0gTlVMTDsKKworCXN3aXRjaCAobm8pIHsKKwljYXNlIGFyZ19BTDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5heDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfQkw6CisJCXJ2ID0gKHVuc2lnbmVkIGNoYXIgKikmcmVncy0+Yng7CisJCWJyZWFrOworCWNhc2UgYXJnX0NMOgorCQlydiA9ICh1bnNpZ25lZCBjaGFyICopJnJlZ3MtPmN4OworCQlicmVhazsKKwljYXNlIGFyZ19ETDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5keDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfQUg6CisJCXJ2ID0gMSArICh1bnNpZ25lZCBjaGFyICopJnJlZ3MtPmF4OworCQlicmVhazsKKwljYXNlIGFyZ19CSDoKKwkJcnYgPSAxICsgKHVuc2lnbmVkIGNoYXIgKikmcmVncy0+Yng7CisJCWJyZWFrOworCWNhc2UgYXJnX0NIOgorCQlydiA9IDEgKyAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5jeDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfREg6CisJCXJ2ID0gMSArICh1bnNpZ25lZCBjaGFyICopJnJlZ3MtPmR4OworCQlicmVhazsKKyNpZmRlZiBfX2FtZDY0X18KKwljYXNlIGFyZ19SODoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yODsKKwkJYnJlYWs7CisJY2FzZSBhcmdfUjk6CisJCXJ2ID0gKHVuc2lnbmVkIGNoYXIgKikmcmVncy0+cjk7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTA7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMToKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTE7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMjoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTI7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMzoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTM7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxNDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTQ7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxNToKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTU7CisJCWJyZWFrOworI2VuZGlmCisJZGVmYXVsdDoKKwkJcHJpbnRrKEtFUk5fRVJSICJtbWlvdHJhY2U6IEVycm9yIHJlZyBubyMgJWRcbiIsIG5vKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiBydjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgKmdldF9yZWdfdzMyKGludCBubywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJdW5zaWduZWQgbG9uZyAqcnYgPSBOVUxMOworCisJc3dpdGNoIChubykgeworCWNhc2UgYXJnX0FYOgorCQlydiA9ICZyZWdzLT5heDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfQlg6CisJCXJ2ID0gJnJlZ3MtPmJ4OworCQlicmVhazsKKwljYXNlIGFyZ19DWDoKKwkJcnYgPSAmcmVncy0+Y3g7CisJCWJyZWFrOworCWNhc2UgYXJnX0RYOgorCQlydiA9ICZyZWdzLT5keDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfU1A6CisJCXJ2ID0gJnJlZ3MtPnNwOworCQlicmVhazsKKwljYXNlIGFyZ19CUDoKKwkJcnYgPSAmcmVncy0+YnA7CisJCWJyZWFrOworCWNhc2UgYXJnX1NJOgorCQlydiA9ICZyZWdzLT5zaTsKKwkJYnJlYWs7CisJY2FzZSBhcmdfREk6CisJCXJ2ID0gJnJlZ3MtPmRpOworCQlicmVhazsKKyNpZmRlZiBfX2FtZDY0X18KKwljYXNlIGFyZ19SODoKKwkJcnYgPSAmcmVncy0+cjg7CisJCWJyZWFrOworCWNhc2UgYXJnX1I5OgorCQlydiA9ICZyZWdzLT5yOTsKKwkJYnJlYWs7CisJY2FzZSBhcmdfUjEwOgorCQlydiA9ICZyZWdzLT5yMTA7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMToKKwkJcnYgPSAmcmVncy0+cjExOworCQlicmVhazsKKwljYXNlIGFyZ19SMTI6CisJCXJ2ID0gJnJlZ3MtPnIxMjsKKwkJYnJlYWs7CisJY2FzZSBhcmdfUjEzOgorCQlydiA9ICZyZWdzLT5yMTM7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxNDoKKwkJcnYgPSAmcmVncy0+cjE0OworCQlicmVhazsKKwljYXNlIGFyZ19SMTU6CisJCXJ2ID0gJnJlZ3MtPnIxNTsKKwkJYnJlYWs7CisjZW5kaWYKKwlkZWZhdWx0OgorCQlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogRXJyb3IgcmVnIG5vIyAlZFxuIiwgbm8pOworCX0KKworCXJldHVybiBydjsKK30KKwordW5zaWduZWQgbG9uZyBnZXRfaW5zX3JlZ192YWwodW5zaWduZWQgbG9uZyBpbnNfYWRkciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJdW5zaWduZWQgaW50IG9wY29kZTsKKwl1bnNpZ25lZCBjaGFyIG1vZF9ybTsKKwlpbnQgcmVnOworCXVuc2lnbmVkIGNoYXIgKnA7CisJaW50IGksIHNob3J0ZWQsIGVubGFyZ2VkLCByZXhyOworCXVuc2lnbmVkIGxvbmcgcnY7CisKKwlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnNfYWRkcjsKKwlwICs9IHNraXBfcHJlZml4KHAsICZzaG9ydGVkLCAmZW5sYXJnZWQsICZyZXhyKTsKKwlwICs9IGdldF9vcGNvZGUocCwgJm9wY29kZSk7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocmVnX3JvcCk7IGkrKykKKwkJaWYgKHJlZ19yb3BbaV0gPT0gb3Bjb2RlKSB7CisJCQlydiA9IFJFR19SRUFEOworCQkJZ290byBkb193b3JrOworCQl9CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShyZWdfd29wKTsgaSsrKQorCQlpZiAocmVnX3dvcFtpXSA9PSBvcGNvZGUpIHsKKwkJCXJ2ID0gUkVHX1dSSVRFOworCQkJZ290byBkb193b3JrOworCQl9CisKKwlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogTm90IGEgcmVnaXN0ZXIgaW5zdHJ1Y3Rpb24sIG9wY29kZSAiCisJCQkJCQkJIjB4JTAyeFxuIiwgb3Bjb2RlKTsKKwlnb3RvIGVycjsKKworZG9fd29yazoKKwltb2Rfcm0gPSAqcDsKKwlyZWcgPSAoKG1vZF9ybSA+PiAzKSAmIDB4NykgfCAocmV4ciA8PCAzKTsKKwlzd2l0Y2ggKGdldF9pbnNfcmVnX3dpZHRoKGluc19hZGRyKSkgeworCWNhc2UgMToKKwkJcmV0dXJuICpnZXRfcmVnX3c4KHJlZywgcmVncyk7CisKKwljYXNlIDI6CisJCXJldHVybiAqKHVuc2lnbmVkIHNob3J0ICopZ2V0X3JlZ193MzIocmVnLCByZWdzKTsKKworCWNhc2UgNDoKKwkJcmV0dXJuICoodW5zaWduZWQgaW50ICopZ2V0X3JlZ193MzIocmVnLCByZWdzKTsKKworI2lmZGVmIF9fYW1kNjRfXworCWNhc2UgODoKKwkJcmV0dXJuICoodW5zaWduZWQgbG9uZyAqKWdldF9yZWdfdzMyKHJlZywgcmVncyk7CisjZW5kaWYKKworCWRlZmF1bHQ6CisJCXByaW50ayhLRVJOX0VSUiAibW1pb3RyYWNlOiBFcnJvciB3aWR0aCMgJWRcbiIsIHJlZyk7CisJfQorCitlcnI6CisJcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIGxvbmcgZ2V0X2luc19pbW1fdmFsKHVuc2lnbmVkIGxvbmcgaW5zX2FkZHIpCit7CisJdW5zaWduZWQgaW50IG9wY29kZTsKKwl1bnNpZ25lZCBjaGFyIG1vZF9ybTsKKwl1bnNpZ25lZCBjaGFyIG1vZDsKKwl1bnNpZ25lZCBjaGFyICpwOworCWludCBpLCBzaG9ydGVkLCBlbmxhcmdlZCwgcmV4cjsKKwl1bnNpZ25lZCBsb25nIHJ2OworCisJcCA9ICh1bnNpZ25lZCBjaGFyICopaW5zX2FkZHI7CisJcCArPSBza2lwX3ByZWZpeChwLCAmc2hvcnRlZCwgJmVubGFyZ2VkLCAmcmV4cik7CisJcCArPSBnZXRfb3Bjb2RlKHAsICZvcGNvZGUpOworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGltbV93b3ApOyBpKyspCisJCWlmIChpbW1fd29wW2ldID09IG9wY29kZSkgeworCQkJcnYgPSBJTU1fV1JJVEU7CisJCQlnb3RvIGRvX3dvcms7CisJCX0KKworCXByaW50ayhLRVJOX0VSUiAibW1pb3RyYWNlOiBOb3QgYW4gaW1tZWRpYXRlIGluc3RydWN0aW9uLCBvcGNvZGUgIgorCQkJCQkJCSIweCUwMnhcbiIsIG9wY29kZSk7CisJZ290byBlcnI7CisKK2RvX3dvcms6CisJbW9kX3JtID0gKnA7CisJbW9kID0gbW9kX3JtID4+IDY7CisJcCsrOworCXN3aXRjaCAobW9kKSB7CisJY2FzZSAwOgorCQkvKiBpZiByL20gaXMgNSB3ZSBoYXZlIGEgMzIgZGlzcCAoSUEzMiBNYW51YWwgMywgVGFibGUgMi0yKSAgKi8KKwkJLyogQU1ENjQ6IFhYWCBDaGVjayBmb3IgYWRkcmVzcyBzaXplIHByZWZpeD8gKi8KKwkJaWYgKChtb2Rfcm0gJiAweDcpID09IDB4NSkKKwkJCXAgKz0gNDsKKwkJYnJlYWs7CisKKwljYXNlIDE6CisJCXAgKz0gMTsKKwkJYnJlYWs7CisKKwljYXNlIDI6CisJCXAgKz0gNDsKKwkJYnJlYWs7CisKKwljYXNlIDM6CisJZGVmYXVsdDoKKwkJcHJpbnRrKEtFUk5fRVJSICJtbWlvdHJhY2U6IG5vdCBhIG1lbW9yeSBhY2Nlc3MgaW5zdHJ1Y3Rpb24gIgorCQkJCQkJImF0IDB4JWx4LCBybV9tb2Q9MHglMDJ4XG4iLAorCQkJCQkJaW5zX2FkZHIsIG1vZF9ybSk7CisJfQorCisJc3dpdGNoIChnZXRfaW5zX3JlZ193aWR0aChpbnNfYWRkcikpIHsKKwljYXNlIDE6CisJCXJldHVybiAqKHVuc2lnbmVkIGNoYXIgKilwOworCisJY2FzZSAyOgorCQlyZXR1cm4gKih1bnNpZ25lZCBzaG9ydCAqKXA7CisKKwljYXNlIDQ6CisJCXJldHVybiAqKHVuc2lnbmVkIGludCAqKXA7CisKKyNpZmRlZiBfX2FtZDY0X18KKwljYXNlIDg6CisJCXJldHVybiAqKHVuc2lnbmVkIGxvbmcgKilwOworI2VuZGlmCisKKwlkZWZhdWx0OgorCQlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogRXJyb3I6IHdpZHRoLlxuIik7CisJfQorCitlcnI6CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wZl9pbi5oIGIvYXJjaC94ODYvbW0vcGZfaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDUzNDFhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vcGZfaW4uaApAQCAtMCwwICsxLDM5IEBACisvKgorICogIEZhdWx0IEluamVjdGlvbiBUZXN0IGhhcm5lc3MgKEZJKQorICogIENvcHlyaWdodCAoQykgSW50ZWwgQ3JvcC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqICBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNywKKyAqICBVU0EuCisgKgorICovCisKKyNpZm5kZWYgX19QRl9IXworI2RlZmluZSBfX1BGX0hfCisKK2VudW0gcmVhc29uX3R5cGUgeworCU5PVF9NRSwJLyogcGFnZSBmYXVsdCBpcyBub3QgaW4gcmVnaW9ucyAqLworCU5PVEhJTkcsCS8qIGFjY2VzcyBvdGhlcnMgcG9pbnQgaW4gcmVnaW9ucyAqLworCVJFR19SRUFELAkvKiByZWFkIGZyb20gYWRkciB0byByZWcgKi8KKwlSRUdfV1JJVEUsCS8qIHdyaXRlIGZyb20gcmVnIHRvIGFkZHIgKi8KKwlJTU1fV1JJVEUsCS8qIHdyaXRlIGZyb20gaW1tIHRvIGFkZHIgKi8KKwlPVEhFUlMJLyogT3RoZXIgaW5zdHJ1Y3Rpb25zIGNhbiBub3QgaW50ZXJjZXB0ICovCit9OworCitlbnVtIHJlYXNvbl90eXBlIGdldF9pbnNfdHlwZSh1bnNpZ25lZCBsb25nIGluc19hZGRyKTsKK3Vuc2lnbmVkIGludCBnZXRfaW5zX21lbV93aWR0aCh1bnNpZ25lZCBsb25nIGluc19hZGRyKTsKK3Vuc2lnbmVkIGxvbmcgZ2V0X2luc19yZWdfdmFsKHVuc2lnbmVkIGxvbmcgaW5zX2FkZHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3Vuc2lnbmVkIGxvbmcgZ2V0X2luc19pbW1fdmFsKHVuc2lnbmVkIGxvbmcgaW5zX2FkZHIpOworCisjZW5kaWYgLyogX19QRl9IXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGd0YWJsZS5jIGIvYXJjaC94ODYvbW0vcGd0YWJsZS5jCmluZGV4IDUwMTU5NzYuLjU1N2IyYWIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BndGFibGUuYworKysgYi9hcmNoL3g4Ni9tbS9wZ3RhYmxlLmMKQEAgLTIsNiArMiw3IEBACiAjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS90bGIuaD4KKyNpbmNsdWRlIDxhc20vZml4bWFwLmg+CiAKIHB0ZV90ICpwdGVfYWxsb2Nfb25lX2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQogewpAQCAtNjUsMTIgKzY2LDYgQEAKIHN0YXRpYyB2b2lkIHBnZF9jdG9yKHZvaWQgKnApCiB7CiAJcGdkX3QgKnBnZCA9IHA7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCS8qIENsZWFyIHVzZXJtb2RlIHBhcnRzIG9mIFBHRCAqLwotCW1lbXNldChwZ2QsIDAsIEtFUk5FTF9QR0RfQk9VTkRBUlkqc2l6ZW9mKHBnZF90KSk7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAogCS8qIElmIHRoZSBwZ2QgcG9pbnRzIHRvIGEgc2hhcmVkIHBhZ2V0YWJsZSBsZXZlbCAoZWl0aGVyIHRoZQogCSAgIHB0ZXMgaW4gbm9uLVBBRSwgb3Igc2hhcmVkIFBNRCBpbiBQQUUpLCB0aGVuIGp1c3QgY29weSB0aGUKQEAgLTkwLDggKzg1LDYgQEAKIAkvKiBsaXN0IHJlcXVpcmVkIHRvIHN5bmMga2VybmVsIG1hcHBpbmcgdXBkYXRlcyAqLwogCWlmICghU0hBUkVEX0tFUk5FTF9QTUQpCiAJCXBnZF9saXN0X2FkZChwZ2QpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIH0KIAogc3RhdGljIHZvaWQgcGdkX2R0b3Iodm9pZCAqcGdkKQpAQCAtMTE5LDMwICsxMTIsNiBAQAogCiAjaWZkZWYgQ09ORklHX1g4Nl9QQUUKIC8qCi0gKiBNb3AgdXAgYW55IHBtZCBwYWdlcyB3aGljaCBtYXkgc3RpbGwgYmUgYXR0YWNoZWQgdG8gdGhlIHBnZC4KLSAqIE5vcm1hbGx5IHRoZXkgd2lsbCBiZSBmcmVlZCBieSBtdW5tYXAvZXhpdF9tbWFwLCBidXQgYW55IHBtZCB3ZQotICogcHJlYWxsb2NhdGUgd2hpY2ggbmV2ZXIgZ290IGEgY29ycmVzcG9uZGluZyB2bWEgd2lsbCBuZWVkIHRvIGJlCi0gKiBmcmVlZCBtYW51YWxseS4KLSAqLwotc3RhdGljIHZvaWQgcGdkX21vcF91cF9wbWRzKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkcCkKLXsKLQlpbnQgaTsKLQotCWZvcihpID0gMDsgaSA8IFVOU0hBUkVEX1BUUlNfUEVSX1BHRDsgaSsrKSB7Ci0JCXBnZF90IHBnZCA9IHBnZHBbaV07Ci0KLQkJaWYgKHBnZF92YWwocGdkKSAhPSAwKSB7Ci0JCQlwbWRfdCAqcG1kID0gKHBtZF90ICopcGdkX3BhZ2VfdmFkZHIocGdkKTsKLQotCQkJcGdkcFtpXSA9IG5hdGl2ZV9tYWtlX3BnZCgwKTsKLQotCQkJcGFyYXZpcnRfcmVsZWFzZV9wbWQocGdkX3ZhbChwZ2QpID4+IFBBR0VfU0hJRlQpOwotCQkJcG1kX2ZyZWUobW0sIHBtZCk7Ci0JCX0KLQl9Ci19Ci0KLS8qCiAgKiBJbiBQQUUgbW9kZSwgd2UgbmVlZCB0byBkbyBhIGNyMyByZWxvYWQgKD10bGIgZmx1c2gpIHdoZW4KICAqIHVwZGF0aW5nIHRoZSB0b3AtbGV2ZWwgcGFnZXRhYmxlIGVudHJpZXMgdG8gZ3VhcmFudGVlIHRoZQogICogcHJvY2Vzc29yIG5vdGljZXMgdGhlIHVwZGF0ZS4gIFNpbmNlIHRoaXMgaXMgZXhwZW5zaXZlLCBhbmQKQEAgLTE1MywzMSArMTIyLDcgQEAKICAqIG5vdCBzaGFyZWQgYmV0d2VlbiBwYWdldGFibGVzICghU0hBUkVEX0tFUk5FTF9QTURTKSwgd2UgYWxsb2NhdGUKICAqIGFuZCBpbml0aWFsaXplIHRoZSBrZXJuZWwgcG1kcyBoZXJlLgogICovCi1zdGF0aWMgaW50IHBnZF9wcmVwb3B1bGF0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCi17Ci0JcHVkX3QgKnB1ZDsKLQl1bnNpZ25lZCBsb25nIGFkZHI7Ci0JaW50IGk7Ci0KLQlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgMCk7Ci0gCWZvciAoYWRkciA9IGkgPSAwOyBpIDwgVU5TSEFSRURfUFRSU19QRVJfUEdEOwotCSAgICAgaSsrLCBwdWQrKywgYWRkciArPSBQVURfU0laRSkgewotCQlwbWRfdCAqcG1kID0gcG1kX2FsbG9jX29uZShtbSwgYWRkcik7Ci0KLQkJaWYgKCFwbWQpIHsKLQkJCXBnZF9tb3BfdXBfcG1kcyhtbSwgcGdkKTsKLQkJCXJldHVybiAwOwotCQl9Ci0KLQkJaWYgKGkgPj0gS0VSTkVMX1BHRF9CT1VOREFSWSkKLQkJCW1lbWNweShwbWQsIChwbWRfdCAqKXBnZF9wYWdlX3ZhZGRyKHN3YXBwZXJfcGdfZGlyW2ldKSwKLQkJCSAgICAgICBzaXplb2YocG1kX3QpICogUFRSU19QRVJfUE1EKTsKLQotCQlwdWRfcG9wdWxhdGUobW0sIHB1ZCwgcG1kKTsKLQl9Ci0KLQlyZXR1cm4gMTsKLX0KKyNkZWZpbmUgUFJFQUxMT0NBVEVEX1BNRFMJVU5TSEFSRURfUFRSU19QRVJfUEdECiAKIHZvaWQgcHVkX3BvcHVsYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwdWRfdCAqcHVkcCwgcG1kX3QgKnBtZCkKIHsKQEAgLTE5NywzOSArMTQyLDEzMSBAQAogCQl3cml0ZV9jcjMocmVhZF9jcjMoKSk7CiB9CiAjZWxzZSAgLyogIUNPTkZJR19YODZfUEFFICovCisKIC8qIE5vIG5lZWQgdG8gcHJlcG9wdWxhdGUgYW55IHBhZ2V0YWJsZSBlbnRyaWVzIGluIG5vbi1QQUUgbW9kZXMuICovCi1zdGF0aWMgaW50IHBnZF9wcmVwb3B1bGF0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCisjZGVmaW5lIFBSRUFMTE9DQVRFRF9QTURTCTAKKworI2VuZGlmCS8qIENPTkZJR19YODZfUEFFICovCisKK3N0YXRpYyB2b2lkIGZyZWVfcG1kcyhwbWRfdCAqcG1kc1tdKQogewotCXJldHVybiAxOworCWludCBpOworCisJZm9yKGkgPSAwOyBpIDwgUFJFQUxMT0NBVEVEX1BNRFM7IGkrKykKKwkJaWYgKHBtZHNbaV0pCisJCQlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpcG1kc1tpXSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBnZF9tb3BfdXBfcG1kcyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCkKK3N0YXRpYyBpbnQgcHJlYWxsb2NhdGVfcG1kcyhwbWRfdCAqcG1kc1tdKQogeworCWludCBpOworCWJvb2wgZmFpbGVkID0gZmFsc2U7CisKKwlmb3IoaSA9IDA7IGkgPCBQUkVBTExPQ0FURURfUE1EUzsgaSsrKSB7CisJCXBtZF90ICpwbWQgPSAocG1kX3QgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTHxfX0dGUF9SRVBFQVQpOworCQlpZiAocG1kID09IE5VTEwpCisJCQlmYWlsZWQgPSB0cnVlOworCQlwbWRzW2ldID0gcG1kOworCX0KKworCWlmIChmYWlsZWQpIHsKKwkJZnJlZV9wbWRzKHBtZHMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlyZXR1cm4gMDsKIH0KLSNlbmRpZgkvKiBDT05GSUdfWDg2X1BBRSAqLworCisvKgorICogTW9wIHVwIGFueSBwbWQgcGFnZXMgd2hpY2ggbWF5IHN0aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBwZ2QuCisgKiBOb3JtYWxseSB0aGV5IHdpbGwgYmUgZnJlZWQgYnkgbXVubWFwL2V4aXRfbW1hcCwgYnV0IGFueSBwbWQgd2UKKyAqIHByZWFsbG9jYXRlIHdoaWNoIG5ldmVyIGdvdCBhIGNvcnJlc3BvbmRpbmcgdm1hIHdpbGwgbmVlZCB0byBiZQorICogZnJlZWQgbWFudWFsbHkuCisgKi8KK3N0YXRpYyB2b2lkIHBnZF9tb3BfdXBfcG1kcyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZHApCit7CisJaW50IGk7CisKKwlmb3IoaSA9IDA7IGkgPCBQUkVBTExPQ0FURURfUE1EUzsgaSsrKSB7CisJCXBnZF90IHBnZCA9IHBnZHBbaV07CisKKwkJaWYgKHBnZF92YWwocGdkKSAhPSAwKSB7CisJCQlwbWRfdCAqcG1kID0gKHBtZF90ICopcGdkX3BhZ2VfdmFkZHIocGdkKTsKKworCQkJcGdkcFtpXSA9IG5hdGl2ZV9tYWtlX3BnZCgwKTsKKworCQkJcGFyYXZpcnRfcmVsZWFzZV9wbWQocGdkX3ZhbChwZ2QpID4+IFBBR0VfU0hJRlQpOworCQkJcG1kX2ZyZWUobW0sIHBtZCk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIHBnZF9wcmVwb3B1bGF0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QsIHBtZF90ICpwbWRzW10pCit7CisJcHVkX3QgKnB1ZDsKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJaW50IGk7CisKKwlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgMCk7CisKKyAJZm9yIChhZGRyID0gaSA9IDA7IGkgPCBQUkVBTExPQ0FURURfUE1EUzsKKwkgICAgIGkrKywgcHVkKyssIGFkZHIgKz0gUFVEX1NJWkUpIHsKKwkJcG1kX3QgKnBtZCA9IHBtZHNbaV07CisKKwkJaWYgKGkgPj0gS0VSTkVMX1BHRF9CT1VOREFSWSkKKwkJCW1lbWNweShwbWQsIChwbWRfdCAqKXBnZF9wYWdlX3ZhZGRyKHN3YXBwZXJfcGdfZGlyW2ldKSwKKwkJCSAgICAgICBzaXplb2YocG1kX3QpICogUFRSU19QRVJfUE1EKTsKKworCQlwdWRfcG9wdWxhdGUobW0sIHB1ZCwgcG1kKTsKKwl9Cit9CiAKIHBnZF90ICpwZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0JcGdkX3QgKnBnZCA9IChwZ2RfdCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CisJcGdkX3QgKnBnZDsKKwlwbWRfdCAqcG1kc1tQUkVBTExPQ0FURURfUE1EU107CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCS8qIHNvIHRoYXQgYWxsb2NfcG1kIGNhbiB1c2UgaXQgKi8KKwlwZ2QgPSAocGdkX3QgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOworCisJaWYgKHBnZCA9PSBOVUxMKQorCQlnb3RvIG91dDsKKwogCW1tLT5wZ2QgPSBwZ2Q7Ci0JaWYgKHBnZCkKLQkJcGdkX2N0b3IocGdkKTsKIAotCWlmIChwZ2QgJiYgIXBnZF9wcmVwb3B1bGF0ZV9wbWQobW0sIHBnZCkpIHsKLQkJcGdkX2R0b3IocGdkKTsKLQkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXBnZCk7Ci0JCXBnZCA9IE5VTEw7Ci0JfQorCWlmIChwcmVhbGxvY2F0ZV9wbWRzKHBtZHMpICE9IDApCisJCWdvdG8gb3V0X2ZyZWVfcGdkOworCisJaWYgKHBhcmF2aXJ0X3BnZF9hbGxvYyhtbSkgIT0gMCkKKwkJZ290byBvdXRfZnJlZV9wbWRzOworCisJLyoKKwkgKiBNYWtlIHN1cmUgdGhhdCBwcmUtcG9wdWxhdGluZyB0aGUgcG1kcyBpcyBhdG9taWMgd2l0aAorCSAqIHJlc3BlY3QgdG8gYW55dGhpbmcgd2Fsa2luZyB0aGUgcGdkX2xpc3QsIHNvIHRoYXQgdGhleQorCSAqIG5ldmVyIHNlZSBhIHBhcnRpYWxseSBwb3B1bGF0ZWQgcGdkLgorCSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwZ2RfbG9jaywgZmxhZ3MpOworCisJcGdkX2N0b3IocGdkKTsKKwlwZ2RfcHJlcG9wdWxhdGVfcG1kKG1tLCBwZ2QsIHBtZHMpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAogCXJldHVybiBwZ2Q7CisKK291dF9mcmVlX3BtZHM6CisJZnJlZV9wbWRzKHBtZHMpOworb3V0X2ZyZWVfcGdkOgorCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwZ2QpOworb3V0OgorCXJldHVybiBOVUxMOwogfQogCiB2b2lkIHBnZF9mcmVlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkKQogewogCXBnZF9tb3BfdXBfcG1kcyhtbSwgcGdkKTsKIAlwZ2RfZHRvcihwZ2QpOworCXBhcmF2aXJ0X3BnZF9mcmVlKG1tLCBwZ2QpOwogCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwZ2QpOwogfQogCkBAIC0yNTUsNyArMjkyLDcgQEAKIAogCWlmIChwdGVfeW91bmcoKnB0ZXApKQogCQlyZXQgPSB0ZXN0X2FuZF9jbGVhcl9iaXQoX1BBR0VfQklUX0FDQ0VTU0VELAotCQkJCQkgJnB0ZXAtPnB0ZSk7CisJCQkJCSAodW5zaWduZWQgbG9uZyAqKSAmcHRlcC0+cHRlKTsKIAogCWlmIChyZXQpCiAJCXB0ZV91cGRhdGUodm1hLT52bV9tbSwgYWRkciwgcHRlcCk7CkBAIC0yNzQsMyArMzExLDIyIEBACiAKIAlyZXR1cm4geW91bmc7CiB9CisKK2ludCBmaXhtYXBzX3NldDsKKwordm9pZCBfX25hdGl2ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwgcHRlX3QgcHRlKQoreworCXVuc2lnbmVkIGxvbmcgYWRkcmVzcyA9IF9fZml4X3RvX3ZpcnQoaWR4KTsKKworCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKSB7CisJCUJVRygpOworCQlyZXR1cm47CisJfQorCXNldF9wdGVfdmFkZHIoYWRkcmVzcywgcHRlKTsKKwlmaXhtYXBzX3NldCsrOworfQorCit2b2lkIG5hdGl2ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncykKK3sKKwlfX25hdGl2ZV9zZXRfZml4bWFwKGlkeCwgcGZuX3B0ZShwaHlzID4+IFBBR0VfU0hJRlQsIGZsYWdzKSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wZ3RhYmxlXzMyLmMgYi9hcmNoL3g4Ni9tbS9wZ3RhYmxlXzMyLmMKaW5kZXggMzY5Y2YwNi4uYjRiZWNiZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vcGd0YWJsZV8zMi5jCisrKyBiL2FyY2gveDg2L21tL3BndGFibGVfMzIuYwpAQCAtNzEsNyArNzEsNyBAQAogICogQXNzb2NpYXRlIGEgdmlydHVhbCBwYWdlIGZyYW1lIHdpdGggYSBnaXZlbiBwaHlzaWNhbCBwYWdlIGZyYW1lIAogICogYW5kIHByb3RlY3Rpb24gZmxhZ3MgZm9yIHRoYXQgZnJhbWUuCiAgKi8gCi1zdGF0aWMgdm9pZCBzZXRfcHRlX3Bmbih1bnNpZ25lZCBsb25nIHZhZGRyLCB1bnNpZ25lZCBsb25nIHBmbiwgcGdwcm90X3QgZmxhZ3MpCit2b2lkIHNldF9wdGVfdmFkZHIodW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3QgcHRldmFsKQogewogCXBnZF90ICpwZ2Q7CiAJcHVkX3QgKnB1ZDsKQEAgLTk0LDggKzk0LDggQEAKIAkJcmV0dXJuOwogCX0KIAlwdGUgPSBwdGVfb2Zmc2V0X2tlcm5lbChwbWQsIHZhZGRyKTsKLQlpZiAocGdwcm90X3ZhbChmbGFncykpCi0JCXNldF9wdGVfcHJlc2VudCgmaW5pdF9tbSwgdmFkZHIsIHB0ZSwgcGZuX3B0ZShwZm4sIGZsYWdzKSk7CisJaWYgKHB0ZV92YWwocHRldmFsKSkKKwkJc2V0X3B0ZV9wcmVzZW50KCZpbml0X21tLCB2YWRkciwgcHRlLCBwdGV2YWwpOwogCWVsc2UKIAkJcHRlX2NsZWFyKCZpbml0X21tLCB2YWRkciwgcHRlKTsKIApAQCAtMTQxLDIyICsxNDEsOSBAQAogCV9fZmx1c2hfdGxiX29uZSh2YWRkcik7CiB9CiAKLXN0YXRpYyBpbnQgZml4bWFwczsKIHVuc2lnbmVkIGxvbmcgX19GSVhBRERSX1RPUCA9IDB4ZmZmZmYwMDA7CiBFWFBPUlRfU1lNQk9MKF9fRklYQUREUl9UT1ApOwogCi12b2lkIF9fc2V0X2ZpeG1hcCAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCB1bnNpZ25lZCBsb25nIHBoeXMsIHBncHJvdF90IGZsYWdzKQotewotCXVuc2lnbmVkIGxvbmcgYWRkcmVzcyA9IF9fZml4X3RvX3ZpcnQoaWR4KTsKLQotCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKSB7Ci0JCUJVRygpOwotCQlyZXR1cm47Ci0JfQotCXNldF9wdGVfcGZuKGFkZHJlc3MsIHBoeXMgPj4gUEFHRV9TSElGVCwgZmxhZ3MpOwotCWZpeG1hcHMrKzsKLX0KLQogLyoqCiAgKiByZXNlcnZlX3RvcF9hZGRyZXNzIC0gcmVzZXJ2ZXMgYSBob2xlIGluIHRoZSB0b3Agb2Yga2VybmVsIGFkZHJlc3Mgc3BhY2UKICAqIEByZXNlcnZlIC0gc2l6ZSBvZiBob2xlIHRvIHJlc2VydmUKQEAgLTE2NCwxMSArMTUxLDQ0IEBACiAgKiBDYW4gYmUgdXNlZCB0byByZWxvY2F0ZSB0aGUgZml4bWFwIGFyZWEgYW5kIHBva2UgYSBob2xlIGluIHRoZSB0b3AKICAqIG9mIGtlcm5lbCBhZGRyZXNzIHNwYWNlIHRvIG1ha2Ugcm9vbSBmb3IgYSBoeXBlcnZpc29yLgogICovCi12b2lkIHJlc2VydmVfdG9wX2FkZHJlc3ModW5zaWduZWQgbG9uZyByZXNlcnZlKQordm9pZCBfX2luaXQgcmVzZXJ2ZV90b3BfYWRkcmVzcyh1bnNpZ25lZCBsb25nIHJlc2VydmUpCiB7Ci0JQlVHX09OKGZpeG1hcHMgPiAwKTsKKwlCVUdfT04oZml4bWFwc19zZXQgPiAwKTsKIAlwcmludGsoS0VSTl9JTkZPICJSZXNlcnZpbmcgdmlydHVhbCBhZGRyZXNzIHNwYWNlIGFib3ZlIDB4JTA4eFxuIiwKIAkgICAgICAgKGludCktcmVzZXJ2ZSk7CiAJX19GSVhBRERSX1RPUCA9IC1yZXNlcnZlIC0gUEFHRV9TSVpFOwogCV9fVk1BTExPQ19SRVNFUlZFICs9IHJlc2VydmU7CiB9CisKKy8qCisgKiB2bWFsbG9jPXNpemUgZm9yY2VzIHRoZSB2bWFsbG9jIGFyZWEgdG8gYmUgZXhhY3RseSAnc2l6ZScKKyAqIGJ5dGVzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGluY3JlYXNlIChvciBkZWNyZWFzZSkgdGhlCisgKiB2bWFsbG9jIGFyZWEgLSB0aGUgZGVmYXVsdCBpcyAxMjhtLgorICovCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV92bWFsbG9jKGNoYXIgKmFyZykKK3sKKwlpZiAoIWFyZykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlfX1ZNQUxMT0NfUkVTRVJWRSA9IG1lbXBhcnNlKGFyZywgJmFyZyk7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgidm1hbGxvYyIsIHBhcnNlX3ZtYWxsb2MpOworCisvKgorICogcmVzZXJ2ZXRvcD1zaXplIHJlc2VydmVzIGEgaG9sZSBhdCB0aGUgdG9wIG9mIHRoZSBrZXJuZWwgYWRkcmVzcyBzcGFjZSB3aGljaAorICogYSBoeXBlcnZpc29yIGNhbiBsb2FkIGludG8gbGF0ZXIuICBOZWVkZWQgZm9yIGR5bmFtaWNhbGx5IGxvYWRlZCBoeXBlcnZpc29ycywKKyAqIHNvIHJlbG9jYXRpbmcgdGhlIGZpeG1hcCBjYW4gYmUgZG9uZSBiZWZvcmUgcGFnaW5nIGluaXRpYWxpemF0aW9uLgorICovCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9yZXNlcnZldG9wKGNoYXIgKmFyZykKK3sKKwl1bnNpZ25lZCBsb25nIGFkZHJlc3M7CisKKwlpZiAoIWFyZykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlhZGRyZXNzID0gbWVtcGFyc2UoYXJnLCAmYXJnKTsKKwlyZXNlcnZlX3RvcF9hZGRyZXNzKGFkZHJlc3MpOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oInJlc2VydmV0b3AiLCBwYXJzZV9yZXNlcnZldG9wKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3NyYXRfMzIuYyBiL2FyY2gveDg2L21tL3NyYXRfMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDFkNjdmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vc3JhdF8zMi5jCkBAIC0wLDAgKzEsMjgwIEBACisvKgorICogU29tZSBvZiB0aGUgY29kZSBpbiB0aGlzIGZpbGUgaGFzIGJlZW4gZ2xlYW5lZCBmcm9tIHRoZSA2NCBiaXQgCisgKiBkaXNjb250aWdtZW0gc3VwcG9ydCBjb2RlIGJhc2UuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJQk0gQ29ycC4KKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgR09PRCBUSVRMRSBvcgorICogTk9OIElORlJJTkdFTUVOVC4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUKKyAqIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKiBTZW5kIGZlZWRiYWNrIHRvIFBhdCBHYXVnaGVuIDxnb25lQHVzLmlibS5jb20+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CisjaW5jbHVkZSA8bGludXgvbm9kZW1hc2suaD4KKyNpbmNsdWRlIDxhc20vc3JhdC5oPgorI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgorI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorCisvKgorICogcHJveGltaXR5IG1hY3JvcyBhbmQgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBOT0RFX0FSUkFZX0lOREVYKHgpCSgoeCkgLyA4KQkvKiA4IGJpdHMvY2hhciAqLworI2RlZmluZSBOT0RFX0FSUkFZX09GRlNFVCh4KQkoKHgpICUgOCkJLyogOCBiaXRzL2NoYXIgKi8KKyNkZWZpbmUgQk1BUF9TRVQoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gfD0gMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKQorI2RlZmluZSBCTUFQX1RFU1QoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gJiAoMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKSkKKy8qIGJpdG1hcCBsZW5ndGg7IF9QWE0gaXMgYXQgbW9zdCAyNTUgKi8KKyNkZWZpbmUgUFhNX0JJVE1BUF9MRU4gKE1BWF9QWE1fRE9NQUlOUyAvIDgpIAorc3RhdGljIHU4IF9faW5pdGRhdGEgcHhtX2JpdG1hcFtQWE1fQklUTUFQX0xFTl07CS8qIGJpdG1hcCBvZiBwcm94aW1pdHkgZG9tYWlucyAqLworCisjZGVmaW5lIE1BWF9DSFVOS1NfUEVSX05PREUJMworI2RlZmluZSBNQVhDSFVOS1MJCShNQVhfQ0hVTktTX1BFUl9OT0RFICogTUFYX05VTU5PREVTKQorc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgeworCXVuc2lnbmVkIGxvbmcJc3RhcnRfcGZuOworCXVuc2lnbmVkIGxvbmcJZW5kX3BmbjsKKwl1OAlweG07CQkvLyBwcm94aW1pdHkgZG9tYWluIG9mIG5vZGUKKwl1OAluaWQ7CQkvLyB3aGljaCBjbm9kZSBjb250YWlucyB0aGlzIGNodW5rPworCXU4CWJhbms7CQkvLyB3aGljaCBtZW0gYmFuayBvbiB0aGlzIG5vZGUKK307CitzdGF0aWMgc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgX19pbml0ZGF0YSBub2RlX21lbW9yeV9jaHVua1tNQVhDSFVOS1NdOworCitzdGF0aWMgaW50IF9faW5pdGRhdGEgbnVtX21lbW9yeV9jaHVua3M7IC8qIHRvdGFsIG51bWJlciBvZiBtZW1vcnkgY2h1bmtzICovCitzdGF0aWMgdTggX19pbml0ZGF0YSBhcGljaWRfdG9fcHhtW01BWF9BUElDSURdOworCitpbnQgbnVtYV9vZmYgX19pbml0ZGF0YTsKK2ludCBhY3BpX251bWEgX19pbml0ZGF0YTsKKworc3RhdGljIF9faW5pdCB2b2lkIGJhZF9zcmF0KHZvaWQpCit7CisgICAgICAgIHByaW50ayhLRVJOX0VSUiAiU1JBVDogU1JBVCBub3QgdXNlZC5cbiIpOworICAgICAgICBhY3BpX251bWEgPSAtMTsKKwludW1fbWVtb3J5X2NodW5rcyA9IDA7Cit9CisKK3N0YXRpYyBfX2luaXQgaW5saW5lIGludCBzcmF0X2Rpc2FibGVkKHZvaWQpCit7CisJcmV0dXJuIG51bWFfb2ZmIHx8IGFjcGlfbnVtYSA8IDA7Cit9CisKKy8qIElkZW50aWZ5IENQVSBwcm94aW1pdHkgZG9tYWlucyAqLwordm9pZCBfX2luaXQKK2FjcGlfbnVtYV9wcm9jZXNzb3JfYWZmaW5pdHlfaW5pdChzdHJ1Y3QgYWNwaV9zcmF0X2NwdV9hZmZpbml0eSAqY3B1X2FmZmluaXR5KQoreworCWlmIChzcmF0X2Rpc2FibGVkKCkpCisJCXJldHVybjsKKwlpZiAoY3B1X2FmZmluaXR5LT5oZWFkZXIubGVuZ3RoICE9CisJICAgICBzaXplb2Yoc3RydWN0IGFjcGlfc3JhdF9jcHVfYWZmaW5pdHkpKSB7CisJCWJhZF9zcmF0KCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoKGNwdV9hZmZpbml0eS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfQ1BVX0VOQUJMRUQpID09IDApCisJCXJldHVybjsJCS8qIGVtcHR5IGVudHJ5ICovCisKKwkvKiBtYXJrIHRoaXMgbm9kZSBhcyAic2VlbiIgaW4gbm9kZSBiaXRtYXAgKi8KKwlCTUFQX1NFVChweG1fYml0bWFwLCBjcHVfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW5fbG8pOworCisJYXBpY2lkX3RvX3B4bVtjcHVfYWZmaW5pdHktPmFwaWNfaWRdID0gY3B1X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluX2xvOworCisJcHJpbnRrKEtFUk5fREVCVUcgIkNQVSAlMDJ4IGluIHByb3hpbWl0eSBkb21haW4gJTAyeFxuIiwKKwkJY3B1X2FmZmluaXR5LT5hcGljX2lkLCBjcHVfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW5fbG8pOworfQorCisvKgorICogSWRlbnRpZnkgbWVtb3J5IHByb3hpbWl0eSBkb21haW5zIGFuZCBob3QtcmVtb3ZlIGNhcGFiaWxpdGllcy4KKyAqIEZpbGwgbm9kZSBtZW1vcnkgY2h1bmsgbGlzdCBzdHJ1Y3R1cmUuCisgKi8KK3ZvaWQgX19pbml0CithY3BpX251bWFfbWVtb3J5X2FmZmluaXR5X2luaXQoc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKm1lbW9yeV9hZmZpbml0eSkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgcGFkZHIsIHNpemU7CisJdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIGVuZF9wZm47CisJdTggcHhtOworCXN0cnVjdCBub2RlX21lbW9yeV9jaHVua19zICpwLCAqcSwgKnBlbmQ7CisKKwlpZiAoc3JhdF9kaXNhYmxlZCgpKQorCQlyZXR1cm47CisJaWYgKG1lbW9yeV9hZmZpbml0eS0+aGVhZGVyLmxlbmd0aCAhPQorCSAgICAgc2l6ZW9mKHN0cnVjdCBhY3BpX3NyYXRfbWVtX2FmZmluaXR5KSkgeworCQliYWRfc3JhdCgpOworCQlyZXR1cm47CisJfQorCisJaWYgKChtZW1vcnlfYWZmaW5pdHktPmZsYWdzICYgQUNQSV9TUkFUX01FTV9FTkFCTEVEKSA9PSAwKQorCQlyZXR1cm47CQkvKiBlbXB0eSBlbnRyeSAqLworCisJcHhtID0gbWVtb3J5X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluICYgMHhmZjsKKworCS8qIG1hcmsgdGhpcyBub2RlIGFzICJzZWVuIiBpbiBub2RlIGJpdG1hcCAqLworCUJNQVBfU0VUKHB4bV9iaXRtYXAsIHB4bSk7CisKKwkvKiBjYWxjdWxhdGUgaW5mbyBmb3IgbWVtb3J5IGNodW5rIHN0cnVjdHVyZSAqLworCXBhZGRyID0gbWVtb3J5X2FmZmluaXR5LT5iYXNlX2FkZHJlc3M7CisJc2l6ZSA9IG1lbW9yeV9hZmZpbml0eS0+bGVuZ3RoOworCisJc3RhcnRfcGZuID0gcGFkZHIgPj4gUEFHRV9TSElGVDsKKwllbmRfcGZuID0gKHBhZGRyICsgc2l6ZSkgPj4gUEFHRV9TSElGVDsKKworCisJaWYgKG51bV9tZW1vcnlfY2h1bmtzID49IE1BWENIVU5LUykgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJUb28gbWFueSBtZW0gY2h1bmtzIGluIFNSQVQuIgorCQkJIiBJZ25vcmluZyAlbGxkIE1CeXRlcyBhdCAlbGx4XG4iLAorCQkJc2l6ZS8oMTAyNCoxMDI0KSwgcGFkZHIpOworCQlyZXR1cm47CisJfQorCisJLyogSW5zZXJ0aW9uIHNvcnQgYmFzZWQgb24gYmFzZSBhZGRyZXNzICovCisJcGVuZCA9ICZub2RlX21lbW9yeV9jaHVua1tudW1fbWVtb3J5X2NodW5rc107CisJZm9yIChwID0gJm5vZGVfbWVtb3J5X2NodW5rWzBdOyBwIDwgcGVuZDsgcCsrKSB7CisJCWlmIChzdGFydF9wZm4gPCBwLT5zdGFydF9wZm4pCisJCQlicmVhazsKKwl9CisJaWYgKHAgPCBwZW5kKSB7CisJCWZvciAocSA9IHBlbmQ7IHEgPj0gcDsgcS0tKQorCQkJKihxICsgMSkgPSAqcTsKKwl9CisJcC0+c3RhcnRfcGZuID0gc3RhcnRfcGZuOworCXAtPmVuZF9wZm4gPSBlbmRfcGZuOworCXAtPnB4bSA9IHB4bTsKKworCW51bV9tZW1vcnlfY2h1bmtzKys7CisKKwlwcmludGsoS0VSTl9ERUJVRyAiTWVtb3J5IHJhbmdlICUwOGx4IHRvICUwOGx4ICh0eXBlICV4KSIKKwkJCSAgIiBpbiBwcm94aW1pdHkgZG9tYWluICUwMnggJXNcbiIsCisJCXN0YXJ0X3BmbiwgZW5kX3BmbiwKKwkJbWVtb3J5X2FmZmluaXR5LT5tZW1vcnlfdHlwZSwKKwkJcHhtLAorCQkoKG1lbW9yeV9hZmZpbml0eS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfTUVNX0hPVF9QTFVHR0FCTEUpID8KKwkJICJlbmFibGVkIGFuZCByZW1vdmFibGUiIDogImVuYWJsZWQiICkgKTsKK30KKworLyogQ2FsbGJhY2sgZm9yIFNMSVQgcGFyc2luZyAqLwordm9pZCBfX2luaXQgYWNwaV9udW1hX3NsaXRfaW5pdChzdHJ1Y3QgYWNwaV90YWJsZV9zbGl0ICpzbGl0KQoreworfQorCit2b2lkIGFjcGlfbnVtYV9hcmNoX2ZpeHVwKHZvaWQpCit7Cit9CisvKgorICogVGhlIFNSQVQgdGFibGUgYWx3YXlzIGxpc3RzIGFzY2VuZGluZyBhZGRyZXNzZXMsIHNvIGNhbiBhbHdheXMKKyAqIGFzc3VtZSB0aGF0IHRoZSBmaXJzdCAic3RhcnQiIGFkZHJlc3MgdGhhdCB5b3Ugc2VlIGlzIHRoZSByZWFsCisgKiBzdGFydCBvZiB0aGUgbm9kZSwgYW5kIHRoYXQgdGhlIGN1cnJlbnQgImVuZCIgYWRkcmVzcyBpcyBhZnRlcgorICogdGhlIHByZXZpb3VzIG9uZS4KKyAqLworc3RhdGljIF9faW5pdCB2b2lkIG5vZGVfcmVhZF9jaHVuayhpbnQgbmlkLCBzdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyAqbWVtb3J5X2NodW5rKQoreworCS8qCisJICogT25seSBhZGQgcHJlc2VudCBtZW1vcnkgYXMgdG9sZCBieSB0aGUgZTgyMC4KKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgZnJvbSB0aGUgU1JBVCB0aGF0IHRoZSBtZW1vcnkgaXQKKwkgKiBlbnVtZXJhdGVzIGlzIHByZXNlbnQgYXQgYm9vdCB0aW1lIGJlY2F1c2UgaXQgcmVwcmVzZW50cworCSAqICpwb3NzaWJsZSogbWVtb3J5IGhvdHBsdWcgYXJlYXMgdGhlIHNhbWUgYXMgbm9ybWFsIFJBTS4KKwkgKi8KKwlpZiAobWVtb3J5X2NodW5rLT5zdGFydF9wZm4gPj0gbWF4X3BmbikgeworCQlwcmludGsoS0VSTl9JTkZPICJJZ25vcmluZyBTUkFUIHBmbnM6ICUwOGx4IC0gJTA4bHhcbiIsCisJCQltZW1vcnlfY2h1bmstPnN0YXJ0X3BmbiwgbWVtb3J5X2NodW5rLT5lbmRfcGZuKTsKKwkJcmV0dXJuOworCX0KKwlpZiAobWVtb3J5X2NodW5rLT5uaWQgIT0gbmlkKQorCQlyZXR1cm47CisKKwlpZiAoIW5vZGVfaGFzX29ubGluZV9tZW0obmlkKSkKKwkJbm9kZV9zdGFydF9wZm5bbmlkXSA9IG1lbW9yeV9jaHVuay0+c3RhcnRfcGZuOworCisJaWYgKG5vZGVfc3RhcnRfcGZuW25pZF0gPiBtZW1vcnlfY2h1bmstPnN0YXJ0X3BmbikKKwkJbm9kZV9zdGFydF9wZm5bbmlkXSA9IG1lbW9yeV9jaHVuay0+c3RhcnRfcGZuOworCisJaWYgKG5vZGVfZW5kX3BmbltuaWRdIDwgbWVtb3J5X2NodW5rLT5lbmRfcGZuKQorCQlub2RlX2VuZF9wZm5bbmlkXSA9IG1lbW9yeV9jaHVuay0+ZW5kX3BmbjsKK30KKworaW50IF9faW5pdCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKQoreworCWludCBpLCBqLCBuaWQ7CisKKworCWlmIChzcmF0X2Rpc2FibGVkKCkpCisJCWdvdG8gb3V0X2ZhaWw7CisKKwlpZiAobnVtX21lbW9yeV9jaHVua3MgPT0gMCkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkgImNvdWxkIG5vdCBmaW55IGFueSBBQ1BJIFNSQVQgbWVtb3J5IGFyZWFzLlxuIik7CisJCWdvdG8gb3V0X2ZhaWw7CisJfQorCisJLyogQ2FsY3VsYXRlIHRvdGFsIG51bWJlciBvZiBub2RlcyBpbiBzeXN0ZW0gZnJvbSBQWE0gYml0bWFwIGFuZCBjcmVhdGUKKwkgKiBhIHNldCBvZiBzZXF1ZW50aWFsIG5vZGUgSURzIHN0YXJ0aW5nIGF0IHplcm8uICAoQUNQSSBkb2Vzbid0IHNlZW0KKwkgKiB0byBzcGVjaWZ5IHRoZSByYW5nZSBvZiBfUFhNIHZhbHVlcy4pCisJICovCisJLyoKKwkgKiBNQ0QgLSB3ZSBubyBsb25nZXIgSEFWRSB0byBudW1iZXIgbm9kZXMgc2VxdWVudGlhbGx5LiAgUFhNIGRvbWFpbgorCSAqIG51bWJlcnMgY291bGQgZ28gYXMgaGlnaCBhcyAyNTYsIGFuZCBNQVhfTlVNTk9ERVMgZm9yIGkzODYgaXMgdHlwaWNhbGx5CisJICogMzIsIHNvIHdlIHdpbGwgY29udGludWUgbnVtYmVyaW5nIHRoZW0gaW4gdGhpcyBtYW5uZXIgdW50aWwgTUFYX05VTU5PREVTCisJICogYXBwcm9hY2hlcyBNQVhfUFhNX0RPTUFJTlMgZm9yIGkzODYuCisJICovCisJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX1BYTV9ET01BSU5TOyBpKyspIHsKKwkJaWYgKEJNQVBfVEVTVChweG1fYml0bWFwLCBpKSkgeworCQkJaW50IG5pZCA9IGFjcGlfbWFwX3B4bV90b19ub2RlKGkpOworCQkJbm9kZV9zZXRfb25saW5lKG5pZCk7CisJCX0KKwl9CisJQlVHX09OKG51bV9vbmxpbmVfbm9kZXMoKSA9PSAwKTsKKworCS8qIHNldCBjbm9kZSBpZCBpbiBtZW1vcnkgY2h1bmsgc3RydWN0dXJlICovCisJZm9yIChpID0gMDsgaSA8IG51bV9tZW1vcnlfY2h1bmtzOyBpKyspCisJCW5vZGVfbWVtb3J5X2NodW5rW2ldLm5pZCA9IHB4bV90b19ub2RlKG5vZGVfbWVtb3J5X2NodW5rW2ldLnB4bSk7CisKKwlwcmludGsoS0VSTl9ERUJVRyAicHhtIGJpdG1hcDogIik7CisJZm9yIChpID0gMDsgaSA8IHNpemVvZihweG1fYml0bWFwKTsgaSsrKSB7CisJCXByaW50ayhLRVJOX0NPTlQgIiUwMnggIiwgcHhtX2JpdG1hcFtpXSk7CisJfQorCXByaW50ayhLRVJOX0NPTlQgIlxuIik7CisJcHJpbnRrKEtFUk5fREVCVUcgIk51bWJlciBvZiBsb2dpY2FsIG5vZGVzIGluIHN5c3RlbSA9ICVkXG4iLAorCQkJIG51bV9vbmxpbmVfbm9kZXMoKSk7CisJcHJpbnRrKEtFUk5fREVCVUcgIk51bWJlciBvZiBtZW1vcnkgY2h1bmtzIGluIHN5c3RlbSA9ICVkXG4iLAorCQkJIG51bV9tZW1vcnlfY2h1bmtzKTsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfQVBJQ0lEOyBpKyspCisJCWFwaWNpZF8yX25vZGVbaV0gPSBweG1fdG9fbm9kZShhcGljaWRfdG9fcHhtW2ldKTsKKworCWZvciAoaiA9IDA7IGogPCBudW1fbWVtb3J5X2NodW5rczsgaisrKXsKKwkJc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgKiBjaHVuayA9ICZub2RlX21lbW9yeV9jaHVua1tqXTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJCSJjaHVuayAlZCBuaWQgJWQgc3RhcnRfcGZuICUwOGx4IGVuZF9wZm4gJTA4bHhcbiIsCisJCSAgICAgICBqLCBjaHVuay0+bmlkLCBjaHVuay0+c3RhcnRfcGZuLCBjaHVuay0+ZW5kX3Bmbik7CisJCW5vZGVfcmVhZF9jaHVuayhjaHVuay0+bmlkLCBjaHVuayk7CisJCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoY2h1bmstPm5pZCwgY2h1bmstPnN0YXJ0X3BmbiwKKwkJCQkJICAgICBtaW4oY2h1bmstPmVuZF9wZm4sIG1heF9wZm4pKTsKKwl9CisKKwlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpIHsKKwkJdW5zaWduZWQgbG9uZyBzdGFydCA9IG5vZGVfc3RhcnRfcGZuW25pZF07CisJCXVuc2lnbmVkIGxvbmcgZW5kID0gbWluKG5vZGVfZW5kX3BmbltuaWRdLCBtYXhfcGZuKTsKKworCQltZW1vcnlfcHJlc2VudChuaWQsIHN0YXJ0LCBlbmQpOworCQlub2RlX3JlbWFwX3NpemVbbmlkXSA9IG5vZGVfbWVtbWFwX3NpemVfYnl0ZXMobmlkLCBzdGFydCwgZW5kKTsKKwl9CisJcmV0dXJuIDE7CitvdXRfZmFpbDoKKwlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBnZXQgTlVNQSBtZW1vcnkgaW5mb3JtYXRpb24gZnJvbSBTUkFUIgorCQkJIiB0YWJsZVxuIik7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9zcmF0XzY0LmMgYi9hcmNoL3g4Ni9tbS9zcmF0XzY0LmMKaW5kZXggOTk2NDlkYy4uMWI0NzYzZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vc3JhdF82NC5jCisrKyBiL2FyY2gveDg2L21tL3NyYXRfNjQuYwpAQCAtMTAwLDcgKzEwMCwxOSBAQAogLyogQ2FsbGJhY2sgZm9yIFNMSVQgcGFyc2luZyAqLwogdm9pZCBfX2luaXQgYWNwaV9udW1hX3NsaXRfaW5pdChzdHJ1Y3QgYWNwaV90YWJsZV9zbGl0ICpzbGl0KQogewotCWFjcGlfc2xpdCA9IHNsaXQ7CisJdW5zaWduZWQgbGVuZ3RoOworCXVuc2lnbmVkIGxvbmcgcGh5czsKKworCWxlbmd0aCA9IHNsaXQtPmhlYWRlci5sZW5ndGg7CisJcGh5cyA9IGZpbmRfZTgyMF9hcmVhKDAsIG1heF9wZm5fbWFwcGVkPDxQQUdFX1NISUZULCBsZW5ndGgsCisJCSBQQUdFX1NJWkUpOworCisJaWYgKHBoeXMgPT0gLTFMKQorCQlwYW5pYygiIENhbiBub3Qgc2F2ZSBzbGl0IVxuIik7CisKKwlhY3BpX3NsaXQgPSBfX3ZhKHBoeXMpOworCW1lbWNweShhY3BpX3NsaXQsIHNsaXQsIGxlbmd0aCk7CisJcmVzZXJ2ZV9lYXJseShwaHlzLCBwaHlzICsgbGVuZ3RoLCAiQUNQSSBTTElUIik7CiB9CiAKIC8qIENhbGxiYWNrIGZvciBQcm94aW1pdHkgRG9tYWluIC0+IExBUElDIG1hcHBpbmcgKi8KQEAgLTI5OSw3ICszMTEsNyBAQAogCQkJcHhtcmFtID0gMDsKIAl9CiAKLQllODIwcmFtID0gZW5kX3BmbiAtIGFic2VudF9wYWdlc19pbl9yYW5nZSgwLCBlbmRfcGZuKTsKKwllODIwcmFtID0gbWF4X3BmbiAtIGFic2VudF9wYWdlc19pbl9yYW5nZSgwLCBtYXhfcGZuKTsKIAkvKiBXZSBzZWVtIHRvIGxvc2UgMyBwYWdlcyBzb21ld2hlcmUuIEFsbG93IGEgYml0IG9mIHNsYWNrLiAqLwogCWlmICgobG9uZykoZTgyMHJhbSAtIHB4bXJhbSkgPj0gMSoxMDI0KjEwMjQpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCkBAIC0zNzYsNyArMzg4LDcgQEAKIAkJaWYgKG5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQkJY29udGludWU7CiAJCWlmICghbm9kZV9pc3NldChub2RlLCBub2RlX3Bvc3NpYmxlX21hcCkpCi0JCQludW1hX3NldF9ub2RlKGksIE5VTUFfTk9fTk9ERSk7CisJCQludW1hX2NsZWFyX25vZGUoaSk7CiAJfQogCW51bWFfaW5pdF9hcnJheSgpOwogCXJldHVybiAwOwpAQCAtNDk1LDYgKzUwNyw3IEBACiAKIEVYUE9SVF9TWU1CT0woX19ub2RlX2Rpc3RhbmNlKTsKIAorI2lmIGRlZmluZWQoQ09ORklHX01FTU9SWV9IT1RQTFVHX1NQQVJTRSkgfHwgZGVmaW5lZChDT05GSUdfQUNQSV9IT1RQTFVHX01FTU9SWSkKIGludCBtZW1vcnlfYWRkX3BoeXNhZGRyX3RvX25pZCh1NjQgc3RhcnQpCiB7CiAJaW50IGksIHJldCA9IDA7CkBAIC01MDYsNCArNTE5LDQgQEAKIAlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTF9HUEwobWVtb3J5X2FkZF9waHlzYWRkcl90b19uaWQpOwotCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3Rlc3RtbWlvdHJhY2UuYyBiL2FyY2gveDg2L21tL3Rlc3RtbWlvdHJhY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODc3YzViCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vdGVzdG1taW90cmFjZS5jCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBXcml0dGVuIGJ5IFBla2thIFBhYWxhbmVuLCAyMDA4IDxwcUBpa2kuZmk+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjZGVmaW5lIE1PRFVMRV9OQU1FICJ0ZXN0bW1pb3RyYWNlIgorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBtbWlvX2FkZHJlc3M7Cittb2R1bGVfcGFyYW0obW1pb19hZGRyZXNzLCB1bG9uZywgMCk7CitNT0RVTEVfUEFSTV9ERVNDKG1taW9fYWRkcmVzcywgIlN0YXJ0IGFkZHJlc3Mgb2YgdGhlIG1hcHBpbmcgb2YgMTYga0IuIik7CisKK3N0YXRpYyB2b2lkIGRvX3dyaXRlX3Rlc3Qodm9pZCBfX2lvbWVtICpwKQoreworCXVuc2lnbmVkIGludCBpOworCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKKwkJaW93cml0ZTgoaSwgcCArIGkpOworCWZvciAoaSA9IDEwMjQ7IGkgPCAoNSAqIDEwMjQpOyBpICs9IDIpCisJCWlvd3JpdGUxNihpICogMTIgKyA3LCBwICsgaSk7CisJZm9yIChpID0gKDUgKiAxMDI0KTsgaSA8ICgxNiAqIDEwMjQpOyBpICs9IDQpCisJCWlvd3JpdGUzMihpICogMjEyMzcxICsgMTMsIHAgKyBpKTsKK30KKworc3RhdGljIHZvaWQgZG9fcmVhZF90ZXN0KHZvaWQgX19pb21lbSAqcCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCisJCWlvcmVhZDgocCArIGkpOworCWZvciAoaSA9IDEwMjQ7IGkgPCAoNSAqIDEwMjQpOyBpICs9IDIpCisJCWlvcmVhZDE2KHAgKyBpKTsKKwlmb3IgKGkgPSAoNSAqIDEwMjQpOyBpIDwgKDE2ICogMTAyNCk7IGkgKz0gNCkKKwkJaW9yZWFkMzIocCArIGkpOworfQorCitzdGF0aWMgdm9pZCBkb190ZXN0KHZvaWQpCit7CisJdm9pZCBfX2lvbWVtICpwID0gaW9yZW1hcF9ub2NhY2hlKG1taW9fYWRkcmVzcywgMHg0MDAwKTsKKwlpZiAoIXApIHsKKwkJcHJfZXJyKE1PRFVMRV9OQU1FICI6IGNvdWxkIG5vdCBpb3JlbWFwLCBhYm9ydGluZy5cbiIpOworCQlyZXR1cm47CisJfQorCWRvX3dyaXRlX3Rlc3QocCk7CisJZG9fcmVhZF90ZXN0KHApOworCWlvdW5tYXAocCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXQodm9pZCkKK3sKKwlpZiAobW1pb19hZGRyZXNzID09IDApIHsKKwkJcHJfZXJyKE1PRFVMRV9OQU1FICI6IHlvdSBoYXZlIHRvIHVzZSB0aGUgbW9kdWxlIGFyZ3VtZW50ICIKKwkJCQkJCQkibW1pb19hZGRyZXNzLlxuIik7CisJCXByX2VycihNT0RVTEVfTkFNRSAiOiBETyBOT1QgTE9BRCBUSElTIE1PRFVMRSBVTkxFU1MiCisJCQkJIiBZT1UgUkVBTExZIEtOT1cgV0hBVCBZT1UgQVJFIERPSU5HIVxuIik7CisJCXJldHVybiAtRU5YSU87CisJfQorCisJcHJfd2FybmluZyhNT0RVTEVfTkFNRSAiOiBXQVJOSU5HOiBtYXBwaW5nIDE2IGtCIEAgMHglMDhseCAiCisJCQkJCSJpbiBQQ0kgYWRkcmVzcyBzcGFjZSwgYW5kIHdyaXRpbmcgIgorCQkJCQkicnViYmlzaCBpbiB0aGVyZS5cbiIsIG1taW9fYWRkcmVzcyk7CisJZG9fdGVzdCgpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgY2xlYW51cCh2b2lkKQoreworCXByX2RlYnVnKE1PRFVMRV9OQU1FICI6IHVubG9hZGVkLlxuIik7Cit9CisKK21vZHVsZV9pbml0KGluaXQpOworbW9kdWxlX2V4aXQoY2xlYW51cCk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9vcHJvZmlsZS9ubWlfaW50LmMgYi9hcmNoL3g4Ni9vcHJvZmlsZS9ubWlfaW50LmMKaW5kZXggMzIzOGFkMy4uN2YzMzI5YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvb3Byb2ZpbGUvbm1pX2ludC5jCisrKyBiL2FyY2gveDg2L29wcm9maWxlL25taV9pbnQuYwpAQCAtMjY5LDEyICsyNjksMTMgQEAKIAogc3RhdGljIHZvaWQgbm1pX3NodXRkb3duKHZvaWQpCiB7Ci0Jc3RydWN0IG9wX21zcnMgKm1zcnMgPSAmX19nZXRfY3B1X3ZhcihjcHVfbXNycyk7CisJc3RydWN0IG9wX21zcnMgKm1zcnMgPSAmZ2V0X2NwdV92YXIoY3B1X21zcnMpOwogCW5taV9lbmFibGVkID0gMDsKIAlvbl9lYWNoX2NwdShubWlfY3B1X3NodXRkb3duLCBOVUxMLCAxKTsKIAl1bnJlZ2lzdGVyX2RpZV9ub3RpZmllcigmcHJvZmlsZV9leGNlcHRpb25zX25iKTsKIAltb2RlbC0+c2h1dGRvd24obXNycyk7CiAJZnJlZV9tc3JzKCk7CisJcHV0X2NwdV92YXIoY3B1X21zcnMpOwogfQogCiBzdGF0aWMgdm9pZCBubWlfY3B1X3N0YXJ0KHZvaWQgKmR1bW15KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL01ha2VmaWxlIGIvYXJjaC94ODYvcGNpL01ha2VmaWxlCmluZGV4IGM1YzhlNDguLmU1MTVlOGQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9wY2kvTWFrZWZpbGUKQEAgLTEsNSArMSwxNyBAQAotaWZlcSAoJChDT05GSUdfWDg2XzMyKSx5KQotaW5jbHVkZSAke3NyY3RyZWV9L2FyY2gveDg2L3BjaS9NYWtlZmlsZV8zMgotZWxzZQotaW5jbHVkZSAke3NyY3RyZWV9L2FyY2gveDg2L3BjaS9NYWtlZmlsZV82NAotZW5kaWYKK29iai15CQkJCTo9IGkzODYubyBpbml0Lm8KKworb2JqLSQoQ09ORklHX1BDSV9CSU9TKQkJKz0gcGNiaW9zLm8KK29iai0kKENPTkZJR19QQ0lfTU1DT05GSUcpCSs9IG1tY29uZmlnXyQoQklUUykubyBkaXJlY3QubyBtbWNvbmZpZy1zaGFyZWQubworb2JqLSQoQ09ORklHX1BDSV9ESVJFQ1QpCSs9IGRpcmVjdC5vCitvYmotJChDT05GSUdfUENJX09MUEMpCQkrPSBvbHBjLm8KKworcGNpLXkJCQkJOj0gZml4dXAubworcGNpLSQoQ09ORklHX0FDUEkpCQkrPSBhY3BpLm8KK3BjaS15CQkJCSs9IGxlZ2FjeS5vIGlycS5vCisKK3BjaS0kKENPTkZJR19YODZfVklTV1MpCQkrPSB2aXN3cy5vCisKK3BjaS0kKENPTkZJR19YODZfTlVNQVEpCQkrPSBudW1hLm8KKworb2JqLXkJCQkJKz0gJChwY2kteSkgY29tbW9uLm8gZWFybHkubworb2JqLXkJCQkJKz0gYW1kX2J1cy5vCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvTWFrZWZpbGVfMzIgYi9hcmNoL3g4Ni9wY2kvTWFrZWZpbGVfMzIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5ZWMzNWQuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvcGNpL01ha2VmaWxlXzMyCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotb2JqLXkJCQkJOj0gaTM4Ni5vIGluaXQubwotCi1vYmotJChDT05GSUdfUENJX0JJT1MpCQkrPSBwY2Jpb3Mubwotb2JqLSQoQ09ORklHX1BDSV9NTUNPTkZJRykJKz0gbW1jb25maWdfMzIubyBkaXJlY3QubyBtbWNvbmZpZy1zaGFyZWQubwotb2JqLSQoQ09ORklHX1BDSV9ESVJFQ1QpCSs9IGRpcmVjdC5vCi1vYmotJChDT05GSUdfUENJX09MUEMpCQkrPSBvbHBjLm8KLQotcGNpLXkJCQkJOj0gZml4dXAubwotCi0jIERvIG5vdCBjaGFuZ2UgdGhlIG9yZGVyaW5nIGhlcmUuIFRoZXJlIGlzIGEgbmFzdHkgaW5pdCBmdW5jdGlvbgotIyBvcmRlcmluZyBkZXBlbmRlbmN5IHdoaWNoIGJyZWFrcyB3aGVuIHlvdSBtb3ZlIGFjcGkubyBiZWxvdwotIyBsZWdhY3kvaXJxLm8KLXBjaS0kKENPTkZJR19BQ1BJKQkJKz0gYWNwaS5vCi1wY2kteQkJCQkrPSBsZWdhY3kubyBpcnEubwotCi0jIENhcmVmdWw6IFZJU1dTIGFuZCBOVU1BUSBvdmVycnVsZSB0aGUgcGNpLXkgYWJvdmUuIFRoZSBjb2xvbnMgYXJlCi0jIHRoZXJlZm9yIGNvcnJlY3QuIFRoaXMgbmVlZHMgYSBwcm9wZXIgZml4IGJ5IGRpc3RhbmdsaW5nIHRoZSBjb2RlLgotcGNpLSQoQ09ORklHX1g4Nl9WSVNXUykJCTo9IHZpc3dzLm8gZml4dXAubwotcGNpLSQoQ09ORklHX1g4Nl9OVU1BUSkJCTo9IG51bWEubyBpcnEubwotCi0jIE5lY2Vzc2FyeSBmb3IgTlVNQVEgYXMgd2VsbAotcGNpLSQoQ09ORklHX05VTUEpCQkrPSBtcF9idXNfdG9fbm9kZS5vCi0KLW9iai15CQkJCSs9ICQocGNpLXkpIGNvbW1vbi5vIGVhcmx5Lm8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9NYWtlZmlsZV82NCBiL2FyY2gveDg2L3BjaS9NYWtlZmlsZV82NApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZiZDE5OC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9wY2kvTWFrZWZpbGVfNjQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0jCi0jIE1ha2VmaWxlIGZvciBYODZfNjQgc3BlY2lmaWMgUENJIHJvdXRpbmVzCi0jCi0jIFJldXNlIHRoZSBpMzg2IFBDSSBzdWJzeXN0ZW0KLSMKLUVYVFJBX0NGTEFHUyArPSAtSWFyY2gveDg2L3BjaQotCi1vYmoteQkJOj0gaTM4Ni5vCi1vYmotJChDT05GSUdfUENJX0RJUkVDVCkrPSBkaXJlY3Qubwotb2JqLXkJCSs9IGZpeHVwLm8gaW5pdC5vCi1vYmotJChDT05GSUdfQUNQSSkJKz0gYWNwaS5vCi1vYmoteQkJCSs9IGxlZ2FjeS5vIGlycS5vIGNvbW1vbi5vIGVhcmx5Lm8KLSMgbW1jb25maWcgaGFzIGEgNjRiaXQgc3BlY2lhbAotb2JqLSQoQ09ORklHX1BDSV9NTUNPTkZJRykgKz0gbW1jb25maWdfNjQubyBkaXJlY3QubyBtbWNvbmZpZy1zaGFyZWQubwotCi1vYmoteQkJKz0gazgtYnVzXzY0Lm8KLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL2FjcGkuYyBiL2FyY2gveDg2L3BjaS9hY3BpLmMKaW5kZXggZDk1ZGUyZi4uMTlhZjA2OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2FjcGkuYworKysgYi9hcmNoL3g4Ni9wY2kvYWNwaS5jCkBAIC0xNzEsOCArMTcxLDExIEBACiAJaWYgKG5vZGUgIT0gLTEpCiAJCXNldF9tcF9idXNfdG9fbm9kZShidXNudW0sIG5vZGUpOwogCWVsc2UKLQkJbm9kZSA9IGdldF9tcF9idXNfdG9fbm9kZShidXNudW0pOwogI2VuZGlmCisJCW5vZGUgPSBnZXRfbXBfYnVzX3RvX25vZGUoYnVzbnVtKTsKKworCWlmIChub2RlICE9IC0xICYmICFub2RlX29ubGluZShub2RlKSkKKwkJbm9kZSA9IC0xOwogCiAJLyogQWxsb2NhdGUgcGVyLXJvb3QtYnVzIChub3QgcGVyIGJ1cykgYXJjaC1zcGVjaWZpYyBkYXRhLgogCSAqIFRPRE86IGxlYWs7IHRoaXMgbWVtb3J5IGlzIG5ldmVyIGZyZWVkLgpAQCAtMjA0LDIyICsyMDcsMjMgQEAKIAlpZiAoIWJ1cykKIAkJa2ZyZWUoc2QpOwogCisJaWYgKGJ1cyAmJiBub2RlICE9IC0xKSB7CiAjaWZkZWYgQ09ORklHX0FDUElfTlVNQQotCWlmIChidXMpIHsKLQkJaWYgKHB4bSA+PSAwKSB7CisJCWlmIChweG0gPj0gMCkKIAkJCXByaW50ayhLRVJOX0RFQlVHICJidXMgJTAyeCAtPiBweG0gJWQgLT4gbm9kZSAlZFxuIiwKLQkJCQlidXNudW0sIHB4bSwgcHhtX3RvX25vZGUocHhtKSk7Ci0JCX0KLQl9CisJCQkJYnVzbnVtLCBweG0sIG5vZGUpOworI2Vsc2UKKwkJcHJpbnRrKEtFUk5fREVCVUcgImJ1cyAlMDJ4IC0+IG5vZGUgJWRcbiIsCisJCQlidXNudW0sIG5vZGUpOwogI2VuZGlmCisJfQogCiAJaWYgKGJ1cyAmJiAocGNpX3Byb2JlICYgUENJX1VTRV9fQ1JTKSkKIAkJZ2V0X2N1cnJlbnRfcmVzb3VyY2VzKGRldmljZSwgYnVzbnVtLCBkb21haW4sIGJ1cyk7CiAJcmV0dXJuIGJ1czsKIH0KIAotZXh0ZXJuIGludCBwY2lfcm91dGVpcnE7Ci1zdGF0aWMgaW50IF9faW5pdCBwY2lfYWNwaV9pbml0KHZvaWQpCitpbnQgX19pbml0IHBjaV9hY3BpX2luaXQodm9pZCkKIHsKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gTlVMTDsKIApAQCAtMjUzLDQgKzI1NywzIEBACiAKIAlyZXR1cm4gMDsKIH0KLXN1YnN5c19pbml0Y2FsbChwY2lfYWNwaV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9hbWRfYnVzLmMgYi9hcmNoL3g4Ni9wY2kvYW1kX2J1cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExODE0MWEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9wY2kvYW1kX2J1cy5jCkBAIC0wLDAgKzEsNTg2IEBACisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3RvcG9sb2d5Lmg+CisjaW5jbHVkZSAicGNpLmgiCisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisjaW5jbHVkZSA8YXNtL3BjaS1kaXJlY3QuaD4KKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgorI2VuZGlmCisKKy8qCisgKiBUaGlzIGRpc2NvdmVycyB0aGUgcGNpYnVzIDwtPiBub2RlIG1hcHBpbmcgb24gQU1EIEs4LgorICogYWxzbyBnZXQgcGVlciByb290IGJ1cyByZXNvdXJjZSBmb3IgaW8sbW1pbworICovCisKKyNpZmRlZiBDT05GSUdfTlVNQQorCisjZGVmaW5lIEJVU19OUiAyNTYKKworI2lmZGVmIENPTkZJR19YODZfNjQKKworc3RhdGljIGludCBtcF9idXNfdG9fbm9kZVtCVVNfTlJdOworCit2b2lkIHNldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtLCBpbnQgbm9kZSkKK3sKKwlpZiAoYnVzbnVtID49IDAgJiYgIGJ1c251bSA8IEJVU19OUikKKwkJbXBfYnVzX3RvX25vZGVbYnVzbnVtXSA9IG5vZGU7Cit9CisKK2ludCBnZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSkKK3sKKwlpbnQgbm9kZSA9IC0xOworCisJaWYgKGJ1c251bSA8IDAgfHwgYnVzbnVtID4gKEJVU19OUiAtIDEpKQorCQlyZXR1cm4gbm9kZTsKKworCW5vZGUgPSBtcF9idXNfdG9fbm9kZVtidXNudW1dOworCisJLyoKKwkgKiBsZXQgbnVtYV9ub2RlX2lkIHRvIGRlY2lkZSBpdCBsYXRlciBpbiBkbWFfYWxsb2NfcGFnZXMKKwkgKiBpZiB0aGVyZSBpcyBubyByYW0gb24gdGhhdCBub2RlCisJICovCisJaWYgKG5vZGUgIT0gLTEgJiYgIW5vZGVfb25saW5lKG5vZGUpKQorCQlub2RlID0gLTE7CisKKwlyZXR1cm4gbm9kZTsKK30KKworI2Vsc2UgLyogQ09ORklHX1g4Nl8zMiAqLworCitzdGF0aWMgdW5zaWduZWQgY2hhciBtcF9idXNfdG9fbm9kZVtCVVNfTlJdOworCit2b2lkIHNldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtLCBpbnQgbm9kZSkKK3sKKwlpZiAoYnVzbnVtID49IDAgJiYgIGJ1c251bSA8IEJVU19OUikKKwltcF9idXNfdG9fbm9kZVtidXNudW1dID0gKHVuc2lnbmVkIGNoYXIpIG5vZGU7Cit9CisKK2ludCBnZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSkKK3sKKwlpbnQgbm9kZTsKKworCWlmIChidXNudW0gPCAwIHx8IGJ1c251bSA+IChCVVNfTlIgLSAxKSkKKwkJcmV0dXJuIDA7CisJbm9kZSA9IG1wX2J1c190b19ub2RlW2J1c251bV07CisJcmV0dXJuIG5vZGU7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfWDg2XzMyICovCisKKyNlbmRpZiAvKiBDT05GSUdfTlVNQSAqLworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCisvKgorICogc3ViIGJ1cyAodHJhbnNwYXJlbnQpIHdpbGwgdXNlIGVudHJlcyBmcm9tIDMgdG8gc3RvcmUgZXh0cmEgZnJvbSByb290LAorICogc28gbmVlZCB0byBtYWtlIHN1cmUgaGF2ZSBlbm91Z2h0IHNsb3QgdGhlcmUsIGluY3JlYXNlIFBDSV9CVVNfTlVNX1JFU09VUkNFUz8KKyAqLworI2RlZmluZSBSRVNfTlVNIDE2CitzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyB7CisJY2hhciBuYW1lWzEyXTsKKwl1bnNpZ25lZCBpbnQgcmVzX251bTsKKwlzdHJ1Y3QgcmVzb3VyY2UgcmVzW1JFU19OVU1dOworCWludCBidXNfbWluOworCWludCBidXNfbWF4OworCWludCBub2RlOworCWludCBsaW5rOworfTsKKworLyogNCBhdCB0aGlzIHRpbWUsIGl0IG1heSBiZWNvbWUgdG8gMzIgKi8KKyNkZWZpbmUgUENJX1JPT1RfTlIgNAorc3RhdGljIGludCBwY2lfcm9vdF9udW07CitzdGF0aWMgc3RydWN0IHBjaV9yb290X2luZm8gcGNpX3Jvb3RfaW5mb1tQQ0lfUk9PVF9OUl07CisKK3ZvaWQgc2V0X3BjaV9idXNfcmVzb3VyY2VzX2FyY2hfZGVmYXVsdChzdHJ1Y3QgcGNpX2J1cyAqYikKK3sKKwlpbnQgaTsKKwlpbnQgajsKKwlzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyAqaW5mbzsKKworCS8qIGlmIG9ubHkgb25lIHJvb3QgYnVzLCBkb24ndCBuZWVkIHRvIGFueXRoaW5nICovCisJaWYgKHBjaV9yb290X251bSA8IDIpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCBwY2lfcm9vdF9udW07IGkrKykgeworCQlpZiAocGNpX3Jvb3RfaW5mb1tpXS5idXNfbWluID09IGItPm51bWJlcikKKwkJCWJyZWFrOworCX0KKworCWlmIChpID09IHBjaV9yb290X251bSkKKwkJcmV0dXJuOworCisJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2ldOworCWZvciAoaiA9IDA7IGogPCBpbmZvLT5yZXNfbnVtOyBqKyspIHsKKwkJc3RydWN0IHJlc291cmNlICpyZXM7CisJCXN0cnVjdCByZXNvdXJjZSAqcm9vdDsKKworCQlyZXMgPSAmaW5mby0+cmVzW2pdOworCQliLT5yZXNvdXJjZVtqXSA9IHJlczsKKwkJaWYgKHJlcy0+ZmxhZ3MgJiBJT1JFU09VUkNFX0lPKQorCQkJcm9vdCA9ICZpb3BvcnRfcmVzb3VyY2U7CisJCWVsc2UKKwkJCXJvb3QgPSAmaW9tZW1fcmVzb3VyY2U7CisJCWluc2VydF9yZXNvdXJjZShyb290LCByZXMpOworCX0KK30KKworI2RlZmluZSBSQU5HRV9OVU0gMTYKKworc3RydWN0IHJlc19yYW5nZSB7CisJc2l6ZV90IHN0YXJ0OworCXNpemVfdCBlbmQ7Cit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgdXBkYXRlX3JhbmdlKHN0cnVjdCByZXNfcmFuZ2UgKnJhbmdlLCBzaXplX3Qgc3RhcnQsCisJCQkJc2l6ZV90IGVuZCkKK3sKKwlpbnQgaTsKKwlpbnQgajsKKworCWZvciAoaiA9IDA7IGogPCBSQU5HRV9OVU07IGorKykgeworCQlpZiAoIXJhbmdlW2pdLmVuZCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChzdGFydCA8PSByYW5nZVtqXS5zdGFydCAmJiBlbmQgPj0gcmFuZ2Vbal0uZW5kKSB7CisJCQlyYW5nZVtqXS5zdGFydCA9IDA7CisJCQlyYW5nZVtqXS5lbmQgPSAwOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoc3RhcnQgPD0gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kIDwgcmFuZ2Vbal0uZW5kICYmIHJhbmdlW2pdLnN0YXJ0IDwgZW5kICsgMSkgeworCQkJcmFuZ2Vbal0uc3RhcnQgPSBlbmQgKyAxOworCQkJY29udGludWU7CisJCX0KKworCisJCWlmIChzdGFydCA+IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA+PSByYW5nZVtqXS5lbmQgJiYgcmFuZ2Vbal0uZW5kID4gc3RhcnQgLSAxKSB7CisJCQlyYW5nZVtqXS5lbmQgPSBzdGFydCAtIDE7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmIChzdGFydCA+IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA8IHJhbmdlW2pdLmVuZCkgeworCQkJLyogZmluZCB0aGUgbmV3IHNwYXJlICovCisJCQlmb3IgKGkgPSAwOyBpIDwgUkFOR0VfTlVNOyBpKyspIHsKKwkJCQlpZiAocmFuZ2VbaV0uZW5kID09IDApCisJCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKGkgPCBSQU5HRV9OVU0pIHsKKwkJCQlyYW5nZVtpXS5lbmQgPSByYW5nZVtqXS5lbmQ7CisJCQkJcmFuZ2VbaV0uc3RhcnQgPSBlbmQgKyAxOworCQkJfSBlbHNlIHsKKwkJCQlwcmludGsoS0VSTl9FUlIgInJ1biBvZiBzbG90IGluIHJhbmdlc1xuIik7CisJCQl9CisJCQlyYW5nZVtqXS5lbmQgPSBzdGFydCAtIDE7CisJCQljb250aW51ZTsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IHVwZGF0ZV9yZXMoc3RydWN0IHBjaV9yb290X2luZm8gKmluZm8sIHNpemVfdCBzdGFydCwKKwkJCSAgICAgIHNpemVfdCBlbmQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIGludCBtZXJnZSkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKworCWlmICghbWVyZ2UpCisJCWdvdG8gYWRkaXQ7CisKKwkvKiB0cnkgdG8gbWVyZ2UgaXQgd2l0aCBvbGQgb25lICovCisJZm9yIChpID0gMDsgaSA8IGluZm8tPnJlc19udW07IGkrKykgeworCQlzaXplX3QgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKKwkJc2l6ZV90IGNvbW1vbl9zdGFydCwgY29tbW9uX2VuZDsKKworCQlyZXMgPSAmaW5mby0+cmVzW2ldOworCQlpZiAocmVzLT5mbGFncyAhPSBmbGFncykKKwkJCWNvbnRpbnVlOworCisJCWNvbW1vbl9zdGFydCA9IG1heCgoc2l6ZV90KXJlcy0+c3RhcnQsIHN0YXJ0KTsKKwkJY29tbW9uX2VuZCA9IG1pbigoc2l6ZV90KXJlcy0+ZW5kLCBlbmQpOworCQlpZiAoY29tbW9uX3N0YXJ0ID4gY29tbW9uX2VuZCArIDEpCisJCQljb250aW51ZTsKKworCQlmaW5hbF9zdGFydCA9IG1pbigoc2l6ZV90KXJlcy0+c3RhcnQsIHN0YXJ0KTsKKwkJZmluYWxfZW5kID0gbWF4KChzaXplX3QpcmVzLT5lbmQsIGVuZCk7CisKKwkJcmVzLT5zdGFydCA9IGZpbmFsX3N0YXJ0OworCQlyZXMtPmVuZCA9IGZpbmFsX2VuZDsKKwkJcmV0dXJuOworCX0KKworYWRkaXQ6CisKKwkvKiBuZWVkIHRvIGFkZCB0aGF0ICovCisJaWYgKGluZm8tPnJlc19udW0gPj0gUkVTX05VTSkKKwkJcmV0dXJuOworCisJcmVzID0gJmluZm8tPnJlc1tpbmZvLT5yZXNfbnVtXTsKKwlyZXMtPm5hbWUgPSBpbmZvLT5uYW1lOworCXJlcy0+ZmxhZ3MgPSBmbGFnczsKKwlyZXMtPnN0YXJ0ID0gc3RhcnQ7CisJcmVzLT5lbmQgPSBlbmQ7CisJcmVzLT5jaGlsZCA9IE5VTEw7CisJaW5mby0+cmVzX251bSsrOworfQorCitzdHJ1Y3QgcGNpX2hvc3RicmlkZ2VfcHJvYmUgeworCXUzMiBidXM7CisJdTMyIHNsb3Q7CisJdTMyIHZlbmRvcjsKKwl1MzIgZGV2aWNlOworfTsKKworc3RhdGljIHN0cnVjdCBwY2lfaG9zdGJyaWRnZV9wcm9iZSBwY2lfcHJvYmVzW10gX19pbml0ZGF0YSA9IHsKKwl7IDAsIDB4MTgsIFBDSV9WRU5ET1JfSURfQU1ELCAweDExMDAgfSwKKwl7IDAsIDB4MTgsIFBDSV9WRU5ET1JfSURfQU1ELCAweDEyMDAgfSwKKwl7IDB4ZmYsIDAsIFBDSV9WRU5ET1JfSURfQU1ELCAweDEyMDAgfSwKKwl7IDAsIDB4MTgsIFBDSV9WRU5ET1JfSURfQU1ELCAweDEzMDAgfSwKK307CisKK3N0YXRpYyB1NjQgX19pbml0ZGF0YSBmYW0xMGhfbW1jb25mX3N0YXJ0Oworc3RhdGljIHU2NCBfX2luaXRkYXRhIGZhbTEwaF9tbWNvbmZfZW5kOworc3RhdGljIHZvaWQgX19pbml0IGdldF9wY2lfbW1jZmdfYW1kX2ZhbTEwaF9yYW5nZSh2b2lkKQoreworCXUzMiBhZGRyZXNzOworCXU2NCBiYXNlLCBtc3I7CisJdW5zaWduZWQgc2Vnbl9idXNuX2JpdHM7CisKKwkvKiBhc3N1bWUgYWxsIGNwdXMgZnJvbSBmYW0xMGggaGF2ZSBtbWNvbmYgKi8KKyAgICAgICAgaWYgKGJvb3RfY3B1X2RhdGEueDg2IDwgMHgxMCkKKwkJcmV0dXJuOworCisJYWRkcmVzcyA9IE1TUl9GQU0xMEhfTU1JT19DT05GX0JBU0U7CisJcmRtc3JsKGFkZHJlc3MsIG1zcik7CisKKwkvKiBtbWNvbmZpZyBpcyBub3QgZW5hYmxlICovCisJaWYgKCEobXNyICYgRkFNMTBIX01NSU9fQ09ORl9FTkFCTEUpKQorCQlyZXR1cm47CisKKwliYXNlID0gbXNyICYgKEZBTTEwSF9NTUlPX0NPTkZfQkFTRV9NQVNLPDxGQU0xMEhfTU1JT19DT05GX0JBU0VfU0hJRlQpOworCisJc2Vnbl9idXNuX2JpdHMgPSAobXNyID4+IEZBTTEwSF9NTUlPX0NPTkZfQlVTUkFOR0VfU0hJRlQpICYKKwkJCSBGQU0xMEhfTU1JT19DT05GX0JVU1JBTkdFX01BU0s7CisKKwlmYW0xMGhfbW1jb25mX3N0YXJ0ID0gYmFzZTsKKwlmYW0xMGhfbW1jb25mX2VuZCA9IGJhc2UgKyAoMVVMTDw8KHNlZ25fYnVzbl9iaXRzICsgMjApKSAtIDE7Cit9CisKKy8qKgorICogZWFybHlfZmlsbF9tcF9idXNfdG9fbm9kZSgpCisgKiBjYWxsZWQgYmVmb3JlIHBjaWJpb3Nfc2Nhbl9yb290IGFuZCBwY2lfc2Nhbl9idXMKKyAqIGZpbGxzIHRoZSBtcF9idXNfdG9fY3B1bWFzayBhcnJheSBiYXNlZCBhY2NvcmRpbmcgdG8gdGhlIExEVCBCdXMgTnVtYmVyCisgKiBSZWdpc3RlcnMgZm91bmQgaW4gdGhlIEs4IG5vcnRoYnJpZGdlCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IGVhcmx5X2ZpbGxfbXBfYnVzX2luZm8odm9pZCkKK3sKKwlpbnQgaTsKKwlpbnQgajsKKwl1bnNpZ25lZCBidXM7CisJdW5zaWduZWQgc2xvdDsKKwlpbnQgZm91bmQ7CisJaW50IG5vZGU7CisJaW50IGxpbms7CisJaW50IGRlZl9ub2RlOworCWludCBkZWZfbGluazsKKwlzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyAqaW5mbzsKKwl1MzIgcmVnOworCXN0cnVjdCByZXNvdXJjZSAqcmVzOworCXNpemVfdCBzdGFydDsKKwlzaXplX3QgZW5kOworCXN0cnVjdCByZXNfcmFuZ2UgcmFuZ2VbUkFOR0VfTlVNXTsKKwl1NjQgdmFsOworCXUzMiBhZGRyZXNzOworCisjaWZkZWYgQ09ORklHX05VTUEKKwlmb3IgKGkgPSAwOyBpIDwgQlVTX05SOyBpKyspCisJCW1wX2J1c190b19ub2RlW2ldID0gLTE7CisjZW5kaWYKKworCWlmICghZWFybHlfcGNpX2FsbG93ZWQoKSkKKwkJcmV0dXJuIC0xOworCisJZm91bmQgPSAwOworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBjaV9wcm9iZXMpOyBpKyspIHsKKwkJdTMyIGlkOworCQl1MTYgZGV2aWNlOworCQl1MTYgdmVuZG9yOworCisJCWJ1cyA9IHBjaV9wcm9iZXNbaV0uYnVzOworCQlzbG90ID0gcGNpX3Byb2Jlc1tpXS5zbG90OworCQlpZCA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDAsIFBDSV9WRU5ET1JfSUQpOworCisJCXZlbmRvciA9IGlkICYgMHhmZmZmOworCQlkZXZpY2UgPSAoaWQ+PjE2KSAmIDB4ZmZmZjsKKwkJaWYgKHBjaV9wcm9iZXNbaV0udmVuZG9yID09IHZlbmRvciAmJgorCQkgICAgcGNpX3Byb2Jlc1tpXS5kZXZpY2UgPT0gZGV2aWNlKSB7CisJCQlmb3VuZCA9IDE7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghZm91bmQpCisJCXJldHVybiAwOworCisJcGNpX3Jvb3RfbnVtID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisJCWludCBtaW5fYnVzOworCQlpbnQgbWF4X2J1czsKKwkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHhlMCArIChpIDw8IDIpKTsKKworCQkvKiBDaGVjayBpZiB0aGF0IHJlZ2lzdGVyIGlzIGVuYWJsZWQgZm9yIGJ1cyByYW5nZSAqLworCQlpZiAoKHJlZyAmIDcpICE9IDMpCisJCQljb250aW51ZTsKKworCQltaW5fYnVzID0gKHJlZyA+PiAxNikgJiAweGZmOworCQltYXhfYnVzID0gKHJlZyA+PiAyNCkgJiAweGZmOworCQlub2RlID0gKHJlZyA+PiA0KSAmIDB4MDc7CisjaWZkZWYgQ09ORklHX05VTUEKKwkJZm9yIChqID0gbWluX2J1czsgaiA8PSBtYXhfYnVzOyBqKyspCisJCQltcF9idXNfdG9fbm9kZVtqXSA9ICh1bnNpZ25lZCBjaGFyKSBub2RlOworI2VuZGlmCisJCWxpbmsgPSAocmVnID4+IDgpICYgMHgwMzsKKworCQlpbmZvID0gJnBjaV9yb290X2luZm9bcGNpX3Jvb3RfbnVtXTsKKwkJaW5mby0+YnVzX21pbiA9IG1pbl9idXM7CisJCWluZm8tPmJ1c19tYXggPSBtYXhfYnVzOworCQlpbmZvLT5ub2RlID0gbm9kZTsKKwkJaW5mby0+bGluayA9IGxpbms7CisJCXNwcmludGYoaW5mby0+bmFtZSwgIlBDSSBCdXMgIyUwMngiLCBtaW5fYnVzKTsKKwkJcGNpX3Jvb3RfbnVtKys7CisJfQorCisJLyogZ2V0IHRoZSBkZWZhdWx0IG5vZGUgYW5kIGxpbmsgZm9yIGxlZnQgb3ZlciByZXMgKi8KKwlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAwLCAweDYwKTsKKwlkZWZfbm9kZSA9IChyZWcgPj4gOCkgJiAweDA3OworCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDAsIDB4NjQpOworCWRlZl9saW5rID0gKHJlZyA+PiA4KSAmIDB4MDM7CisKKwltZW1zZXQocmFuZ2UsIDAsIHNpemVvZihyYW5nZSkpOworCXJhbmdlWzBdLmVuZCA9IDB4ZmZmZjsKKwkvKiBpbyBwb3J0IHJlc291cmNlICovCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweGMwICsgKGkgPDwgMykpOworCQlpZiAoIShyZWcgJiAzKSkKKwkJCWNvbnRpbnVlOworCisJCXN0YXJ0ID0gcmVnICYgMHhmZmYwMDA7CisJCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDEsIDB4YzQgKyAoaSA8PCAzKSk7CisJCW5vZGUgPSByZWcgJiAweDA3OworCQlsaW5rID0gKHJlZyA+PiA0KSAmIDB4MDM7CisJCWVuZCA9IChyZWcgJiAweGZmZjAwMCkgfCAweGZmZjsKKworCQkvKiBmaW5kIHRoZSBwb3NpdGlvbiAqLworCQlmb3IgKGogPSAwOyBqIDwgcGNpX3Jvb3RfbnVtOyBqKyspIHsKKwkJCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKKwkJCWlmIChpbmZvLT5ub2RlID09IG5vZGUgJiYgaW5mby0+bGluayA9PSBsaW5rKQorCQkJCWJyZWFrOworCQl9CisJCWlmIChqID09IHBjaV9yb290X251bSkKKwkJCWNvbnRpbnVlOyAvKiBub3QgZm91bmQgKi8KKworCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCXByaW50ayhLRVJOX0RFQlVHICJub2RlICVkIGxpbmsgJWQ6IGlvIHBvcnQgWyVsbHgsICVsbHhdXG4iLAorCQkgICAgICAgbm9kZSwgbGluaywgKHU2NClzdGFydCwgKHU2NCllbmQpOworCisJCS8qIGtlcm5lbCBvbmx5IGhhbmRsZSAxNiBiaXQgb25seSAqLworCQlpZiAoZW5kID4gMHhmZmZmKQorCQkJZW5kID0gMHhmZmZmOworCQl1cGRhdGVfcmVzKGluZm8sIHN0YXJ0LCBlbmQsIElPUkVTT1VSQ0VfSU8sIDEpOworCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIHN0YXJ0LCBlbmQpOworCX0KKwkvKiBhZGQgbGVmdCBvdmVyIGlvIHBvcnQgcmFuZ2UgdG8gZGVmIG5vZGUvbGluaywgWzAsIDB4ZmZmZl0gKi8KKwkvKiBmaW5kIHRoZSBwb3NpdGlvbiAqLworCWZvciAoaiA9IDA7IGogPCBwY2lfcm9vdF9udW07IGorKykgeworCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCWlmIChpbmZvLT5ub2RlID09IGRlZl9ub2RlICYmIGluZm8tPmxpbmsgPT0gZGVmX2xpbmspCisJCQlicmVhazsKKwl9CisJaWYgKGogPCBwY2lfcm9vdF9udW0pIHsKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOworCQlmb3IgKGkgPSAwOyBpIDwgUkFOR0VfTlVNOyBpKyspIHsKKwkJCWlmICghcmFuZ2VbaV0uZW5kKQorCQkJCWNvbnRpbnVlOworCisJCQl1cGRhdGVfcmVzKGluZm8sIHJhbmdlW2ldLnN0YXJ0LCByYW5nZVtpXS5lbmQsCisJCQkJICAgSU9SRVNPVVJDRV9JTywgMSk7CisJCX0KKwl9CisKKwltZW1zZXQocmFuZ2UsIDAsIHNpemVvZihyYW5nZSkpOworCS8qIDB4ZmQwMDAwMDAwMC0weGZmZmZmZmZmZmYgZm9yIEhUICovCisJcmFuZ2VbMF0uZW5kID0gKDB4ZmRVTEw8PDMyKSAtIDE7CisKKwkvKiBuZWVkIHRvIHRha2Ugb3V0IFswLCBUT00pIGZvciBSQU0qLworCWFkZHJlc3MgPSBNU1JfSzhfVE9QX01FTTE7CisJcmRtc3JsKGFkZHJlc3MsIHZhbCk7CisJZW5kID0gKHZhbCAmIDB4ZmZmZmZmODAwMDAwVUxMKTsKKwlwcmludGsoS0VSTl9JTkZPICJUT006ICUwMTZseCBha2EgJWxkTVxuIiwgZW5kLCBlbmQ+PjIwKTsKKwlpZiAoZW5kIDwgKDFVTEw8PDMyKSkKKwkJdXBkYXRlX3JhbmdlKHJhbmdlLCAwLCBlbmQgLSAxKTsKKworCS8qIGdldCBtbWNvbmZpZyAqLworCWdldF9wY2lfbW1jZmdfYW1kX2ZhbTEwaF9yYW5nZSgpOworCS8qIG5lZWQgdG8gdGFrZSBvdXQgbW1jb25mIHJhbmdlICovCisJaWYgKGZhbTEwaF9tbWNvbmZfZW5kKSB7CisJCXByaW50ayhLRVJOX0RFQlVHICJGYW0gMTBoIG1tY29uZiBbJWxseCwgJWxseF1cbiIsIGZhbTEwaF9tbWNvbmZfc3RhcnQsIGZhbTEwaF9tbWNvbmZfZW5kKTsKKwkJdXBkYXRlX3JhbmdlKHJhbmdlLCBmYW0xMGhfbW1jb25mX3N0YXJ0LCBmYW0xMGhfbW1jb25mX2VuZCk7CisJfQorCisJLyogbW1pbyByZXNvdXJjZSAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHg4MCArIChpIDw8IDMpKTsKKwkJaWYgKCEocmVnICYgMykpCisJCQljb250aW51ZTsKKworCQlzdGFydCA9IHJlZyAmIDB4ZmZmZmZmMDA7IC8qIDM5OjE2IG9uIDMxOjgqLworCQlzdGFydCA8PD0gODsKKwkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHg4NCArIChpIDw8IDMpKTsKKwkJbm9kZSA9IHJlZyAmIDB4MDc7CisJCWxpbmsgPSAocmVnID4+IDQpICYgMHgwMzsKKwkJZW5kID0gKHJlZyAmIDB4ZmZmZmZmMDApOworCQllbmQgPDw9IDg7CisJCWVuZCB8PSAweGZmZmY7CisKKwkJLyogZmluZCB0aGUgcG9zaXRpb24gKi8KKwkJZm9yIChqID0gMDsgaiA8IHBjaV9yb290X251bTsgaisrKSB7CisJCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCQlpZiAoaW5mby0+bm9kZSA9PSBub2RlICYmIGluZm8tPmxpbmsgPT0gbGluaykKKwkJCQlicmVhazsKKwkJfQorCQlpZiAoaiA9PSBwY2lfcm9vdF9udW0pCisJCQljb250aW51ZTsgLyogbm90IGZvdW5kICovCisKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOworCisJCXByaW50ayhLRVJOX0RFQlVHICJub2RlICVkIGxpbmsgJWQ6IG1taW8gWyVsbHgsICVsbHhdIiwKKwkJICAgICAgIG5vZGUsIGxpbmssICh1NjQpc3RhcnQsICh1NjQpZW5kKTsKKwkJLyoKKwkJICogc29tZSBzaWNrIGFsbG9jYXRpb24gd291bGQgaGF2ZSByYW5nZSBvdmVybGFwIHdpdGggZmFtMTBoCisJCSAqIG1tY29uZiByYW5nZSwgc28gbmVlZCB0byB1cGRhdGUgc3RhcnQgYW5kIGVuZC4KKwkJICovCisJCWlmIChmYW0xMGhfbW1jb25mX2VuZCkgeworCQkJaW50IGNoYW5nZWQgPSAwOworCQkJdTY0IGVuZHggPSAwOworCQkJaWYgKHN0YXJ0ID49IGZhbTEwaF9tbWNvbmZfc3RhcnQgJiYKKwkJCSAgICBzdGFydCA8PSBmYW0xMGhfbW1jb25mX2VuZCkgeworCQkJCXN0YXJ0ID0gZmFtMTBoX21tY29uZl9lbmQgKyAxOworCQkJCWNoYW5nZWQgPSAxOworCQkJfQorCisJCQlpZiAoZW5kID49IGZhbTEwaF9tbWNvbmZfc3RhcnQgJiYKKwkJCSAgICBlbmQgPD0gZmFtMTBoX21tY29uZl9lbmQpIHsKKwkJCQllbmQgPSBmYW0xMGhfbW1jb25mX3N0YXJ0IC0gMTsKKwkJCQljaGFuZ2VkID0gMTsKKwkJCX0KKworCQkJaWYgKHN0YXJ0IDwgZmFtMTBoX21tY29uZl9zdGFydCAmJgorCQkJICAgIGVuZCA+IGZhbTEwaF9tbWNvbmZfZW5kKSB7CisJCQkJLyogd2UgZ290IGEgaG9sZSAqLworCQkJCWVuZHggPSBmYW0xMGhfbW1jb25mX3N0YXJ0IC0gMTsKKwkJCQl1cGRhdGVfcmVzKGluZm8sIHN0YXJ0LCBlbmR4LCBJT1JFU09VUkNFX01FTSwgMCk7CisJCQkJdXBkYXRlX3JhbmdlKHJhbmdlLCBzdGFydCwgZW5keCk7CisJCQkJcHJpbnRrKEtFUk5fQ09OVCAiID09PiBbJWxseCwgJWxseF0iLCAodTY0KXN0YXJ0LCBlbmR4KTsKKwkJCQlzdGFydCA9IGZhbTEwaF9tbWNvbmZfZW5kICsgMTsKKwkJCQljaGFuZ2VkID0gMTsKKwkJCX0KKwkJCWlmIChjaGFuZ2VkKSB7CisJCQkJaWYgKHN0YXJ0IDw9IGVuZCkgeworCQkJCQlwcmludGsoS0VSTl9DT05UICIgJXMgWyVsbHgsICVsbHhdIiwgZW5keD8iYW5kIjoiPT0+IiwgKHU2NClzdGFydCwgKHU2NCllbmQpOworCQkJCX0gZWxzZSB7CisJCQkJCXByaW50ayhLRVJOX0NPTlQgIiVzXG4iLCBlbmR4PyIiOiIgPT0+IG5vbmUiKTsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJfQorCQl9CisKKwkJdXBkYXRlX3JlcyhpbmZvLCBzdGFydCwgZW5kLCBJT1JFU09VUkNFX01FTSwgMSk7CisJCXVwZGF0ZV9yYW5nZShyYW5nZSwgc3RhcnQsIGVuZCk7CisJCXByaW50ayhLRVJOX0NPTlQgIlxuIik7CisJfQorCisJLyogbmVlZCB0byB0YWtlIG91dCBbNEcsIFRPTTIpIGZvciBSQU0qLworCS8qIFNZU19DRkcgKi8KKwlhZGRyZXNzID0gTVNSX0s4X1NZU0NGRzsKKwlyZG1zcmwoYWRkcmVzcywgdmFsKTsKKwkvKiBUT1BfTUVNMiBpcyBlbmFibGVkPyAqLworCWlmICh2YWwgJiAoMTw8MjEpKSB7CisJCS8qIFRPUF9NRU0yICovCisJCWFkZHJlc3MgPSBNU1JfSzhfVE9QX01FTTI7CisJCXJkbXNybChhZGRyZXNzLCB2YWwpOworCQllbmQgPSAodmFsICYgMHhmZmZmZmY4MDAwMDBVTEwpOworCQlwcmludGsoS0VSTl9JTkZPICJUT00yOiAlMDE2bHggYWthICVsZE1cbiIsIGVuZCwgZW5kPj4yMCk7CisJCXVwZGF0ZV9yYW5nZShyYW5nZSwgMVVMTDw8MzIsIGVuZCAtIDEpOworCX0KKworCS8qCisJICogYWRkIGxlZnQgb3ZlciBtbWlvIHJhbmdlIHRvIGRlZiBub2RlL2xpbmsgPworCSAqIHRoYXQgaXMgdHJpY2t5LCBqdXN0IHJlY29yZCByYW5nZSBpbiBmcm9tIHN0YXJ0X21pbiB0byA0RworCSAqLworCWZvciAoaiA9IDA7IGogPCBwY2lfcm9vdF9udW07IGorKykgeworCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCWlmIChpbmZvLT5ub2RlID09IGRlZl9ub2RlICYmIGluZm8tPmxpbmsgPT0gZGVmX2xpbmspCisJCQlicmVhazsKKwl9CisJaWYgKGogPCBwY2lfcm9vdF9udW0pIHsKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOworCisJCWZvciAoaSA9IDA7IGkgPCBSQU5HRV9OVU07IGkrKykgeworCQkJaWYgKCFyYW5nZVtpXS5lbmQpCisJCQkJY29udGludWU7CisKKwkJCXVwZGF0ZV9yZXMoaW5mbywgcmFuZ2VbaV0uc3RhcnQsIHJhbmdlW2ldLmVuZCwKKwkJCQkgICBJT1JFU09VUkNFX01FTSwgMSk7CisJCX0KKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgcGNpX3Jvb3RfbnVtOyBpKyspIHsKKwkJaW50IHJlc19udW07CisJCWludCBidXNudW07CisKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2ldOworCQlyZXNfbnVtID0gaW5mby0+cmVzX251bTsKKwkJYnVzbnVtID0gaW5mby0+YnVzX21pbjsKKwkJcHJpbnRrKEtFUk5fREVCVUcgImJ1czogWyUwMngsJTAyeF0gb24gbm9kZSAleCBsaW5rICV4XG4iLAorCQkgICAgICAgaW5mby0+YnVzX21pbiwgaW5mby0+YnVzX21heCwgaW5mby0+bm9kZSwgaW5mby0+bGluayk7CisJCWZvciAoaiA9IDA7IGogPCByZXNfbnVtOyBqKyspIHsKKwkJCXJlcyA9ICZpbmZvLT5yZXNbal07CisJCQlwcmludGsoS0VSTl9ERUJVRyAiYnVzOiAlMDJ4IGluZGV4ICV4ICVzOiBbJWxseCwgJWxseF1cbiIsCisJCQkgICAgICAgYnVzbnVtLCBqLAorCQkJICAgICAgIChyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9JTyk/ImlvIHBvcnQiOiJtbWlvIiwKKwkJCSAgICAgICByZXMtPnN0YXJ0LCByZXMtPmVuZCk7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworcG9zdGNvcmVfaW5pdGNhbGwoZWFybHlfZmlsbF9tcF9idXNfaW5mbyk7CisKKyNlbmRpZgorCisvKiBjb21tb24gMzIvNjQgYml0IGNvZGUgKi8KKworI2RlZmluZSBFTkFCTEVfQ0Y4X0VYVF9DRkcgICAgICAoMVVMTCA8PCA0NikKKworc3RhdGljIHZvaWQgZW5hYmxlX3BjaV9pb19lY3NfcGVyX2NwdSh2b2lkICp1bnVzZWQpCit7CisJdTY0IHJlZzsKKwlyZG1zcmwoTVNSX0FNRDY0X05CX0NGRywgcmVnKTsKKwlpZiAoIShyZWcgJiBFTkFCTEVfQ0Y4X0VYVF9DRkcpKSB7CisJCXJlZyB8PSBFTkFCTEVfQ0Y4X0VYVF9DRkc7CisJCXdybXNybChNU1JfQU1ENjRfTkJfQ0ZHLCByZWcpOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgZW5hYmxlX3BjaV9pb19lY3Modm9pZCkKK3sKKwkvKiBhc3N1bWUgYWxsIGNwdXMgZnJvbSBmYW0xMGggaGF2ZSBJTyBFQ1MgKi8KKyAgICAgICAgaWYgKGJvb3RfY3B1X2RhdGEueDg2IDwgMHgxMCkKKwkJcmV0dXJuIDA7CisJb25fZWFjaF9jcHUoZW5hYmxlX3BjaV9pb19lY3NfcGVyX2NwdSwgTlVMTCwgMSwgMSk7CisJcGNpX3Byb2JlIHw9IFBDSV9IQVNfSU9fRUNTOworCXJldHVybiAwOworfQorCitwb3N0Y29yZV9pbml0Y2FsbChlbmFibGVfcGNpX2lvX2Vjcyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvY29tbW9uLmMgYi9hcmNoL3g4Ni9wY2kvY29tbW9uLmMKaW5kZXggOTQwMTg1ZS4uMjBiOWY1OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L3BjaS9jb21tb24uYwpAQCAtMzI4LDE4ICszMjgsMTggQEAKICNlbmRpZgogCXsKIAkJLmNhbGxiYWNrID0gc2V0X2JmX3NvcnQsCi0JCS5pZGVudCA9ICJIUCBQcm9MaWFudCBETDM2MCIsCisJCS5pZGVudCA9ICJIUCBQcm9MaWFudCBETDM4NSBHMiIsCiAJCS5tYXRjaGVzID0gewogCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiSFAiKSwKLQkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiUHJvTGlhbnQgREwzNjAiKSwKKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiUHJvTGlhbnQgREwzODUgRzIiKSwKIAkJfSwKIAl9LAogCXsKIAkJLmNhbGxiYWNrID0gc2V0X2JmX3NvcnQsCi0JCS5pZGVudCA9ICJIUCBQcm9MaWFudCBETDM4MCIsCisJCS5pZGVudCA9ICJIUCBQcm9MaWFudCBETDU4NSBHMiIsCiAJCS5tYXRjaGVzID0gewogCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiSFAiKSwKLQkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiUHJvTGlhbnQgREwzODAiKSwKKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiUHJvTGlhbnQgREw1ODUgRzIiKSwKIAkJfSwKIAl9LAogCXt9CkBAIC0zODQsNyArMzg0LDcgQEAKIAogZXh0ZXJuIHU4IHBjaV9jYWNoZV9saW5lX3NpemU7CiAKLXN0YXRpYyBpbnQgX19pbml0IHBjaWJpb3NfaW5pdCh2b2lkKQoraW50IF9faW5pdCBwY2liaW9zX2luaXQodm9pZCkKIHsKIAlzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmYm9vdF9jcHVfZGF0YTsKIApAQCAtNDExLDggKzQxMSw2IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN1YnN5c19pbml0Y2FsbChwY2liaW9zX2luaXQpOwotCiBjaGFyICogX19kZXZpbml0ICBwY2liaW9zX3NldHVwKGNoYXIgKnN0cikKIHsKIAlpZiAoIXN0cmNtcChzdHIsICJvZmYiKSkgewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL2RpcmVjdC5jIGIvYXJjaC94ODYvcGNpL2RpcmVjdC5jCmluZGV4IDIxZDFlMGUuLjk5MTUyOTMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9kaXJlY3QuYworKysgYi9hcmNoL3g4Ni9wY2kvZGlyZWN0LmMKQEAgLTgsMTggKzgsMjEgQEAKICNpbmNsdWRlICJwY2kuaCIKIAogLyoKLSAqIEZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIHdpdGggdHlwZSAxIGFjY2Vzc2VzCisgKiBGdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyBQQ0kgYmFzZSAoZmlyc3QgMjU2IGJ5dGVzKSBhbmQgZXh0ZW5kZWQKKyAqICg0MDk2IGJ5dGVzIHBlciBQQ0kgZnVuY3Rpb24pIGNvbmZpZ3VyYXRpb24gc3BhY2Ugd2l0aCB0eXBlIDEKKyAqIGFjY2Vzc2VzLgogICovCiAKICNkZWZpbmUgUENJX0NPTkYxX0FERFJFU1MoYnVzLCBkZXZmbiwgcmVnKSBcCi0JKDB4ODAwMDAwMDAgfCAoYnVzIDw8IDE2KSB8IChkZXZmbiA8PCA4KSB8IChyZWcgJiB+MykpCisJKDB4ODAwMDAwMDAgfCAoKHJlZyAmIDB4RjAwKSA8PCAxNikgfCAoYnVzIDw8IDE2KSBcCisJfCAoZGV2Zm4gPDwgOCkgfCAocmVnICYgMHhGQykpCiAKIHN0YXRpYyBpbnQgcGNpX2NvbmYxX3JlYWQodW5zaWduZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJ1cywKIAkJCSAgdW5zaWduZWQgaW50IGRldmZuLCBpbnQgcmVnLCBpbnQgbGVuLCB1MzIgKnZhbHVlKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlpZiAoKGJ1cyA+IDI1NSkgfHwgKGRldmZuID4gMjU1KSB8fCAocmVnID4gMjU1KSkgeworCWlmICgoYnVzID4gMjU1KSB8fCAoZGV2Zm4gPiAyNTUpIHx8IChyZWcgPiA0MDk1KSkgewogCQkqdmFsdWUgPSAtMTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtNTAsNyArNTMsNyBAQAogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlpZiAoKGJ1cyA+IDI1NSkgfHwgKGRldmZuID4gMjU1KSB8fCAocmVnID4gMjU1KSkgCisJaWYgKChidXMgPiAyNTUpIHx8IChkZXZmbiA+IDI1NSkgfHwgKHJlZyA+IDQwOTUpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZwY2lfY29uZmlnX2xvY2ssIGZsYWdzKTsKQEAgLTI2MCwxMCArMjYzLDE4IEBACiAJCXJldHVybjsKIAlwcmludGsoS0VSTl9JTkZPICJQQ0k6IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSAlZCBmb3IgYmFzZSBhY2Nlc3NcbiIsCiAJCSB0eXBlKTsKLQlpZiAodHlwZSA9PSAxKQorCWlmICh0eXBlID09IDEpIHsKIAkJcmF3X3BjaV9vcHMgPSAmcGNpX2RpcmVjdF9jb25mMTsKLQllbHNlCi0JCXJhd19wY2lfb3BzID0gJnBjaV9kaXJlY3RfY29uZjI7CisJCWlmIChyYXdfcGNpX2V4dF9vcHMpCisJCQlyZXR1cm47CisJCWlmICghKHBjaV9wcm9iZSAmIFBDSV9IQVNfSU9fRUNTKSkKKwkJCXJldHVybjsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiUENJOiBVc2luZyBjb25maWd1cmF0aW9uIHR5cGUgMSAiCisJCSAgICAgICAiZm9yIGV4dGVuZGVkIGFjY2Vzc1xuIik7CisJCXJhd19wY2lfZXh0X29wcyA9ICZwY2lfZGlyZWN0X2NvbmYxOworCQlyZXR1cm47CisJfQorCXJhd19wY2lfb3BzID0gJnBjaV9kaXJlY3RfY29uZjI7CiB9CiAKIGludCBfX2luaXQgcGNpX2RpcmVjdF9wcm9iZSh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL2kzODYuYyBiL2FyY2gveDg2L3BjaS9pMzg2LmMKaW5kZXggMTBmYjMwOC4uMmFhZmI2NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2kzODYuYworKysgYi9hcmNoL3g4Ni9wY2kvaTM4Ni5jCkBAIC0yOTksOSArMjk5LDkgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlwcm90ID0gcGdwcm90X3ZhbCh2bWEtPnZtX3BhZ2VfcHJvdCk7Ci0JaWYgKHBhdF93Y19lbmFibGVkICYmIHdyaXRlX2NvbWJpbmUpCisJaWYgKHBhdF9lbmFibGVkICYmIHdyaXRlX2NvbWJpbmUpCiAJCXByb3QgfD0gX1BBR0VfQ0FDSEVfV0M7Ci0JZWxzZSBpZiAocGF0X3djX2VuYWJsZWQgfHwgYm9vdF9jcHVfZGF0YS54ODYgPiAzKQorCWVsc2UgaWYgKHBhdF9lbmFibGVkIHx8IGJvb3RfY3B1X2RhdGEueDg2ID4gMykKIAkJLyoKIAkJICogaW9yZW1hcCgpIGFuZCBpb3JlbWFwX25vY2FjaGUoKSBkZWZhdWx0cyB0byBVQyBNSU5VUyBmb3Igbm93LgogCQkgKiBUbyBhdm9pZCBhdHRyaWJ1dGUgY29uZmxpY3RzLCByZXF1ZXN0IFVDIE1JTlVTIGhlcmUKQEAgLTMzNCw3ICszMzQsOSBAQAogCQlmbGFncyA9IG5ld19mbGFnczsKIAl9CiAKLQlpZiAodm1hLT52bV9wZ29mZiA8PSBtYXhfcGZuX21hcHBlZCAmJgorCWlmICgoKHZtYS0+dm1fcGdvZmYgPCBtYXhfbG93X3Bmbl9tYXBwZWQpIHx8CisJICAgICAodm1hLT52bV9wZ29mZiA+PSAoMVVMPDwoMzIgLSBQQUdFX1NISUZUKSkgJiYKKwkgICAgICB2bWEtPnZtX3Bnb2ZmIDwgbWF4X3Bmbl9tYXBwZWQpKSAmJgogCSAgICBpb3JlbWFwX2NoYW5nZV9hdHRyKCh1bnNpZ25lZCBsb25nKV9fdmEoYWRkciksIGxlbiwgZmxhZ3MpKSB7CiAJCWZyZWVfbWVtdHlwZShhZGRyLCBhZGRyICsgbGVuKTsKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvaW5pdC5jIGIvYXJjaC94ODYvcGNpL2luaXQuYwppbmRleCBiODIxZjQ0Li5kNmM5NTBmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wY2kvaW5pdC5jCisrKyBiL2FyY2gveDg2L3BjaS9pbml0LmMKQEAgLTQsNyArNCw3IEBACiAKIC8qIGFyY2hfaW5pdGNhbGwgaGFzIHRvbyByYW5kb20gb3JkZXJpbmcsIHNvIGNhbGwgdGhlIGluaXRpYWxpemVycwogICAgaW4gdGhlIHJpZ2h0IHNlcXVlbmNlIGZyb20gaGVyZS4gKi8KLXN0YXRpYyBfX2luaXQgaW50IHBjaV9hY2Nlc3NfaW5pdCh2b2lkKQorc3RhdGljIF9faW5pdCBpbnQgcGNpX2FyY2hfaW5pdCh2b2lkKQogewogI2lmZGVmIENPTkZJR19QQ0lfRElSRUNUCiAJaW50IHR5cGUgPSAwOwpAQCAtNDAsNCArNDAsNCBAQAogCiAJcmV0dXJuIDA7CiB9Ci1hcmNoX2luaXRjYWxsKHBjaV9hY2Nlc3NfaW5pdCk7CithcmNoX2luaXRjYWxsKHBjaV9hcmNoX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL2lycS5jIGIvYXJjaC94ODYvcGNpL2lycS5jCmluZGV4IGNhOGRmOWMuLmRjNTY4YzYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9pcnEuYworKysgYi9hcmNoL3g4Ni9wY2kvaXJxLmMKQEAgLTExLDggKzExLDggQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvZG1pLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL3NtcC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CiAjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CkBAIC02MSw3ICs2MSw3IEBACiAgKiAgYW5kIHBlcmZvcm0gY2hlY2tzdW0gdmVyaWZpY2F0aW9uLgogICovCiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlICogcGlycV9jaGVja19yb3V0aW5nX3RhYmxlKHU4ICphZGRyKQorc3RhdGljIGlubGluZSBzdHJ1Y3QgaXJxX3JvdXRpbmdfdGFibGUgKnBpcnFfY2hlY2tfcm91dGluZ190YWJsZSh1OCAqYWRkcikKIHsKIAlzdHJ1Y3QgaXJxX3JvdXRpbmdfdGFibGUgKnJ0OwogCWludCBpOwpAQCAtNzQsNyArNzQsNyBAQAogCSAgICBydC0+c2l6ZSA8IHNpemVvZihzdHJ1Y3QgaXJxX3JvdXRpbmdfdGFibGUpKQogCQlyZXR1cm4gTlVMTDsKIAlzdW0gPSAwOwotCWZvciAoaT0wOyBpIDwgcnQtPnNpemU7IGkrKykKKwlmb3IgKGkgPSAwOyBpIDwgcnQtPnNpemU7IGkrKykKIAkJc3VtICs9IGFkZHJbaV07CiAJaWYgKCFzdW0pIHsKIAkJREJHKEtFUk5fREVCVUcgIlBDSTogSW50ZXJydXB0IFJvdXRpbmcgVGFibGUgZm91bmQgYXQgMHglcFxuIiwgcnQpOwpAQCAtMTAwLDcgKzEwMCw3IEBACiAJCQlyZXR1cm4gcnQ7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIlBDSTogUElSUSB0YWJsZSBOT1QgZm91bmQgYXQgcGlycWFkZHJcbiIpOwogCX0KLQlmb3IoYWRkciA9ICh1OCAqKSBfX3ZhKDB4ZjAwMDApOyBhZGRyIDwgKHU4ICopIF9fdmEoMHgxMDAwMDApOyBhZGRyICs9IDE2KSB7CisJZm9yIChhZGRyID0gKHU4ICopIF9fdmEoMHhmMDAwMCk7IGFkZHIgPCAodTggKikgX192YSgweDEwMDAwMCk7IGFkZHIgKz0gMTYpIHsKIAkJcnQgPSBwaXJxX2NoZWNrX3JvdXRpbmdfdGFibGUoYWRkcik7CiAJCWlmIChydCkKIAkJCXJldHVybiBydDsKQEAgLTEyMiwyMCArMTIyLDIwIEBACiAJc3RydWN0IGlycV9pbmZvICplOwogCiAJbWVtc2V0KGJ1c21hcCwgMCwgc2l6ZW9mKGJ1c21hcCkpOwotCWZvcihpPTA7IGkgPCAocnQtPnNpemUgLSBzaXplb2Yoc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlKSkgLyBzaXplb2Yoc3RydWN0IGlycV9pbmZvKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IChydC0+c2l6ZSAtIHNpemVvZihzdHJ1Y3QgaXJxX3JvdXRpbmdfdGFibGUpKSAvIHNpemVvZihzdHJ1Y3QgaXJxX2luZm8pOyBpKyspIHsKIAkJZSA9ICZydC0+c2xvdHNbaV07CiAjaWZkZWYgREVCVUcKIAkJewogCQkJaW50IGo7CiAJCQlEQkcoS0VSTl9ERUJVRyAiJTAyeDolMDJ4IHNsb3Q9JTAyeCIsIGUtPmJ1cywgZS0+ZGV2Zm4vOCwgZS0+c2xvdCk7Ci0JCQlmb3Ioaj0wOyBqPDQ7IGorKykKKwkJCWZvciAoaiA9IDA7IGogPCA0OyBqKyspCiAJCQkJREJHKCIgJWQ6JTAyeC8lMDR4IiwgaiwgZS0+aXJxW2pdLmxpbmssIGUtPmlycVtqXS5iaXRtYXApOwogCQkJREJHKCJcbiIpOwogCQl9CiAjZW5kaWYKIAkJYnVzbWFwW2UtPmJ1c10gPSAxOwogCX0KLQlmb3IoaSA9IDE7IGkgPCAyNTY7IGkrKykgeworCWZvciAoaSA9IDE7IGkgPCAyNTY7IGkrKykgewogCQlpbnQgbm9kZTsKIAkJaWYgKCFidXNtYXBbaV0gfHwgcGNpX2ZpbmRfYnVzKDAsIGkpKQogCQkJY29udGludWU7CkBAIC0yODUsNyArMjg1LDcgQEAKIAlzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwaXJxbWFwWzRdID0geyAxLCAwLCAyLCAzIH07CiAKIAlXQVJOX09OX09OQ0UocGlycSA+IDQpOwotCXJldHVybiByZWFkX2NvbmZpZ19ueWJibGUocm91dGVyLDB4NDMsIHBpcnFtYXBbcGlycS0xXSk7CisJcmV0dXJuIHJlYWRfY29uZmlnX255YmJsZShyb3V0ZXIsIDB4NDMsIHBpcnFtYXBbcGlycS0xXSk7CiB9CiAKIHN0YXRpYyBpbnQgcGlycV9pdGVfc2V0KHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwaXJxLCBpbnQgaXJxKQpAQCAtMzE0LDcgKzMxNCw3IEBACiAKIC8qCiAgKiBDeXJpeDogbmliYmxlIG9mZnNldCAweDVDCi0gKiAweDVDIGJpdHMgNzo0IGlzIElOVEIgYml0cyAzOjAgaXMgSU5UQSAKKyAqIDB4NUMgYml0cyA3OjQgaXMgSU5UQiBiaXRzIDM6MCBpcyBJTlRBCiAgKiAweDVEIGJpdHMgNzo0IGlzIElOVEQgYml0cyAzOjAgaXMgSU5UQwogICovCiBzdGF0aWMgaW50IHBpcnFfY3lyaXhfZ2V0KHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwaXJxKQpAQCAtMzUwLDcgKzM1MCw3IEBACiAgKglBcHBhcmVudGx5IHRoZXJlIGFyZSBzeXN0ZW1zIGltcGxlbWVudGluZyBQQ0kgcm91dGluZyB0YWJsZSB1c2luZwogICoJbGluayB2YWx1ZXMgMHgwMS0weDA0IGFuZCBvdGhlcnMgdXNpbmcgMHg0MS0weDQ0IGZvciBQQ0kgSU5UQS4uRC4KICAqCVdlIHRyeSBvdXIgYmVzdCB0byBoYW5kbGUgYm90aCBsaW5rIG1hcHBpbmdzLgotICoJCisgKgogICoJQ3VycmVudGx5ICgyMDAzLTA1LTIxKSBpdCBhcHBlYXJzIG1vc3QgU2lTIGNoaXBzZXRzIGZvbGxvdyB0aGUKICAqCWRlZmluaXRpb24gb2Ygcm91dGluZyByZWdpc3RlcnMgZnJvbSB0aGUgU2lTLTU1OTUgc291dGhicmlkZ2UuCiAgKglBY2NvcmRpbmcgdG8gdGhlIFNpUyA1NTk1IGRhdGFzaGVldHMgdGhlIHJldmlzaW9uIGlkJ3Mgb2YgdGhlCkBAIC0zNzAsNyArMzcwLDcgQEAKICAqCiAgKgkweDYyOglVU0JJUlE6CiAgKgkJYml0IDYgT0hDSSBmdW5jdGlvbiBkaXNhYmxlZCAoMCksIGVuYWJsZWQgKDEpCi0gKgkKKyAqCiAgKgkweDZhOglBQ1BJL1NDSSBJUlE6IGJpdHMgNC02IHJlc2VydmVkCiAgKgogICoJMHg3ZToJRGF0YSBBY3EuIE1vZHVsZSBJUlEgLSBiaXRzIDQtNiByZXNlcnZlZApAQCAtNDg3LDkgKzQ4Nyw3IEBACiAJdTggaXJxOwogCWlycSA9IDA7CiAJaWYgKHBpcnEgPD0gNCkKLQl7CiAJCWlycSA9IHJlYWRfY29uZmlnX255YmJsZShyb3V0ZXIsIDB4NTYsIHBpcnEgLSAxKTsKLQl9CiAJcHJpbnRrKEtFUk5fSU5GTyAiQU1ENzU2OiBkZXYgJTA0eDolMDR4LCByb3V0ZXIgcGlycSA6ICVkIGdldCBpcnEgOiAlMmRcbiIsCiAJCWRldi0+dmVuZG9yLCBkZXYtPmRldmljZSwgcGlycSwgaXJxKTsKIAlyZXR1cm4gaXJxOwpAQCAtNDk3LDEyICs0OTUsMTAgQEAKIAogc3RhdGljIGludCBwaXJxX2FtZDc1Nl9zZXQoc3RydWN0IHBjaV9kZXYgKnJvdXRlciwgc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHBpcnEsIGludCBpcnEpCiB7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiQU1ENzU2OiBkZXYgJTA0eDolMDR4LCByb3V0ZXIgcGlycSA6ICVkIFNFVCBpcnEgOiAlMmRcbiIsIAorCXByaW50ayhLRVJOX0lORk8gIkFNRDc1NjogZGV2ICUwNHg6JTA0eCwgcm91dGVyIHBpcnEgOiAlZCBTRVQgaXJxIDogJTJkXG4iLAogCQlkZXYtPnZlbmRvciwgZGV2LT5kZXZpY2UsIHBpcnEsIGlycSk7CiAJaWYgKHBpcnEgPD0gNCkKLQl7CiAJCXdyaXRlX2NvbmZpZ19ueWJibGUocm91dGVyLCAweDU2LCBwaXJxIC0gMSwgaXJxKTsKLQl9CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTU0OSw1MCArNTQ1LDQ5IEBACiAJaWYgKHBjaV9kZXZfcHJlc2VudChwaXJxXzQ0MGd4KSkKIAkJcmV0dXJuIDA7CiAKLQlzd2l0Y2goZGV2aWNlKQotCXsKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyMzcxRkJfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyMzcxU0JfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyMzcxQUJfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyMzcxTVg6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjQ0M01YXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUFBXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUFCXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUJBXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUJBXzEwOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFDQV8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFDQV8xMjoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxREJfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxRV8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFFQl8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfRVNCXzE6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g2XzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g2XzE6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g3XzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g3XzE6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g3XzMwOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18zMToKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0VTQjJfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDhfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDhfMToKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDhfMjoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDhfMzoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDhfNDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMToKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMjoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMzoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfNDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfNToKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1RPTEFQQUlfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDEwXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF8xOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMjoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDEwXzM6Ci0JCQlyLT5uYW1lID0gIlBJSVgvSUNIIjsKLQkJCXItPmdldCA9IHBpcnFfcGlpeF9nZXQ7Ci0JCQlyLT5zZXQgPSBwaXJxX3BpaXhfc2V0OwotCQkJcmV0dXJuIDE7CisJc3dpdGNoIChkZXZpY2UpIHsKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODIzNzFGQl8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MVNCXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyMzcxQUJfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODIzNzFNWDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI0NDNNWF8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUFBXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxQUJfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFCQV8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUJBXzEwOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUNBXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxQ0FfMTI6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxREJfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFFXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxRUJfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfRVNCXzE6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDZfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNINl8xOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g3XzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDdfMToKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18zMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18zMToKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfRVNCMl8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDhfMToKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOF8yOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzM6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDhfNDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOV8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzE6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMjoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOV8zOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzQ6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfNToKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfVE9MQVBBSV8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF8xOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF8yOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF8zOgorCQlyLT5uYW1lID0gIlBJSVgvSUNIIjsKKwkJci0+Z2V0ID0gcGlycV9waWl4X2dldDsKKwkJci0+c2V0ID0gcGlycV9waWl4X3NldDsKKwkJcmV0dXJuIDE7CiAJfQogCXJldHVybiAwOwogfQpAQCAtNjA2LDcgKzYwMSw3IEBACiAJICogd29ya2Fyb3VuZHMgZm9yIHNvbWUgYnVnZ3kgQklPU2VzCiAJICovCiAJaWYgKGRldmljZSA9PSBQQ0lfREVWSUNFX0lEX1ZJQV84MkM1ODZfMCkgewotCQlzd2l0Y2gocm91dGVyLT5kZXZpY2UpIHsKKwkJc3dpdGNoIChyb3V0ZXItPmRldmljZSkgewogCQljYXNlIFBDSV9ERVZJQ0VfSURfVklBXzgyQzY4NjoKIAkJCS8qCiAJCQkgKiBBc3VzIGs3bSBiaW9zIHdyb25nbHkgcmVwb3J0cyA4MkM2ODZBCkBAIC02MzEsNyArNjI2LDcgQEAKIAkJfQogCX0KIAotCXN3aXRjaChkZXZpY2UpIHsKKwlzd2l0Y2ggKGRldmljZSkgewogCWNhc2UgUENJX0RFVklDRV9JRF9WSUFfODJDNTg2XzA6CiAJCXItPm5hbWUgPSAiVklBIjsKIAkJci0+Z2V0ID0gcGlycV92aWE1ODZfZ2V0OwpAQCAtNjU0LDEzICs2NDksMTIgQEAKIAogc3RhdGljIF9faW5pdCBpbnQgdmxzaV9yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9WTFNJXzgyQzUzNDoKLQkJCXItPm5hbWUgPSAiVkxTSSA4MkM1MzQiOwotCQkJci0+Z2V0ID0gcGlycV92bHNpX2dldDsKLQkJCXItPnNldCA9IHBpcnFfdmxzaV9zZXQ7Ci0JCQlyZXR1cm4gMTsKKwlzd2l0Y2ggKGRldmljZSkgeworCWNhc2UgUENJX0RFVklDRV9JRF9WTFNJXzgyQzUzNDoKKwkJci0+bmFtZSA9ICJWTFNJIDgyQzUzNCI7CisJCXItPmdldCA9IHBpcnFfdmxzaV9nZXQ7CisJCXItPnNldCA9IHBpcnFfdmxzaV9zZXQ7CisJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTY2OCwxNCArNjYyLDEzIEBACiAKIHN0YXRpYyBfX2luaXQgaW50IHNlcnZlcndvcmtzX3JvdXRlcl9wcm9iZShzdHJ1Y3QgaXJxX3JvdXRlciAqciwgc3RydWN0IHBjaV9kZXYgKnJvdXRlciwgdTE2IGRldmljZSkKIHsKLQlzd2l0Y2goZGV2aWNlKQotCXsKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX1NFUlZFUldPUktTX09TQjQ6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9TRVJWRVJXT1JLU19DU0I1OgotCQkJci0+bmFtZSA9ICJTZXJ2ZXJXb3JrcyI7Ci0JCQlyLT5nZXQgPSBwaXJxX3NlcnZlcndvcmtzX2dldDsKLQkJCXItPnNldCA9IHBpcnFfc2VydmVyd29ya3Nfc2V0OwotCQkJcmV0dXJuIDE7CisJc3dpdGNoIChkZXZpY2UpIHsKKwljYXNlIFBDSV9ERVZJQ0VfSURfU0VSVkVSV09SS1NfT1NCNDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfU0VSVkVSV09SS1NfQ1NCNToKKwkJci0+bmFtZSA9ICJTZXJ2ZXJXb3JrcyI7CisJCXItPmdldCA9IHBpcnFfc2VydmVyd29ya3NfZ2V0OworCQlyLT5zZXQgPSBwaXJxX3NlcnZlcndvcmtzX3NldDsKKwkJcmV0dXJuIDE7CiAJfQogCXJldHVybiAwOwogfQpAQCAtNjg0LDcgKzY3Nyw3IEBACiB7CiAJaWYgKGRldmljZSAhPSBQQ0lfREVWSUNFX0lEX1NJXzUwMykKIAkJcmV0dXJuIDA7Ci0JCQorCiAJci0+bmFtZSA9ICJTSVMiOwogCXItPmdldCA9IHBpcnFfc2lzX2dldDsKIAlyLT5zZXQgPSBwaXJxX3Npc19zZXQ7CkBAIC02OTMsNDcgKzY4Niw0MyBAQAogCiBzdGF0aWMgX19pbml0IGludCBjeXJpeF9yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9DWVJJWF81NTIwOgotCQkJci0+bmFtZSA9ICJOYXRTZW1pIjsKLQkJCXItPmdldCA9IHBpcnFfY3lyaXhfZ2V0OwotCQkJci0+c2V0ID0gcGlycV9jeXJpeF9zZXQ7Ci0JCQlyZXR1cm4gMTsKKwlzd2l0Y2ggKGRldmljZSkgeworCWNhc2UgUENJX0RFVklDRV9JRF9DWVJJWF81NTIwOgorCQlyLT5uYW1lID0gIk5hdFNlbWkiOworCQlyLT5nZXQgPSBwaXJxX2N5cml4X2dldDsKKwkJci0+c2V0ID0gcGlycV9jeXJpeF9zZXQ7CisJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIF9faW5pdCBpbnQgb3B0aV9yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9PUFRJXzgyQzcwMDoKLQkJCXItPm5hbWUgPSAiT1BUSSI7Ci0JCQlyLT5nZXQgPSBwaXJxX29wdGlfZ2V0OwotCQkJci0+c2V0ID0gcGlycV9vcHRpX3NldDsKLQkJCXJldHVybiAxOworCXN3aXRjaCAoZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX09QVElfODJDNzAwOgorCQlyLT5uYW1lID0gIk9QVEkiOworCQlyLT5nZXQgPSBwaXJxX29wdGlfZ2V0OworCQlyLT5zZXQgPSBwaXJxX29wdGlfc2V0OworCQlyZXR1cm4gMTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBfX2luaXQgaW50IGl0ZV9yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JVEVfSVQ4MzMwR18wOgotCQkJci0+bmFtZSA9ICJJVEUiOwotCQkJci0+Z2V0ID0gcGlycV9pdGVfZ2V0OwotCQkJci0+c2V0ID0gcGlycV9pdGVfc2V0OwotCQkJcmV0dXJuIDE7CisJc3dpdGNoIChkZXZpY2UpIHsKKwljYXNlIFBDSV9ERVZJQ0VfSURfSVRFX0lUODMzMEdfMDoKKwkJci0+bmFtZSA9ICJJVEUiOworCQlyLT5nZXQgPSBwaXJxX2l0ZV9nZXQ7CisJCXItPnNldCA9IHBpcnFfaXRlX3NldDsKKwkJcmV0dXJuIDE7CiAJfQogCXJldHVybiAwOwogfQogCiBzdGF0aWMgX19pbml0IGludCBhbGlfcm91dGVyX3Byb2JlKHN0cnVjdCBpcnFfcm91dGVyICpyLCBzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCB1MTYgZGV2aWNlKQogewotCXN3aXRjaChkZXZpY2UpCi0JeworCXN3aXRjaCAoZGV2aWNlKSB7CiAJY2FzZSBQQ0lfREVWSUNFX0lEX0FMX00xNTMzOgogCWNhc2UgUENJX0RFVklDRV9JRF9BTF9NMTU2MzoKIAkJcHJpbnRrKEtFUk5fREVCVUcgIlBDSTogVXNpbmcgQUxJIElSUSBSb3V0ZXJcbiIpOwpAQCAtNzQ3LDI1ICs3MzYsMjQgQEAKIAogc3RhdGljIF9faW5pdCBpbnQgYW1kX3JvdXRlcl9wcm9iZShzdHJ1Y3QgaXJxX3JvdXRlciAqciwgc3RydWN0IHBjaV9kZXYgKnJvdXRlciwgdTE2IGRldmljZSkKIHsKLQlzd2l0Y2goZGV2aWNlKQotCXsKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0FNRF9WSVBFUl83NDBCOgotCQkJci0+bmFtZSA9ICJBTUQ3NTYiOwotCQkJYnJlYWs7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9BTURfVklQRVJfNzQxMzoKLQkJCXItPm5hbWUgPSAiQU1ENzY2IjsKLQkJCWJyZWFrOwotCQljYXNlIFBDSV9ERVZJQ0VfSURfQU1EX1ZJUEVSXzc0NDM6Ci0JCQlyLT5uYW1lID0gIkFNRDc2OCI7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXJldHVybiAwOworCXN3aXRjaCAoZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0FNRF9WSVBFUl83NDBCOgorCQlyLT5uYW1lID0gIkFNRDc1NiI7CisJCWJyZWFrOworCWNhc2UgUENJX0RFVklDRV9JRF9BTURfVklQRVJfNzQxMzoKKwkJci0+bmFtZSA9ICJBTUQ3NjYiOworCQlicmVhazsKKwljYXNlIFBDSV9ERVZJQ0VfSURfQU1EX1ZJUEVSXzc0NDM6CisJCXItPm5hbWUgPSAiQU1ENzY4IjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CiAJfQogCXItPmdldCA9IHBpcnFfYW1kNzU2X2dldDsKIAlyLT5zZXQgPSBwaXJxX2FtZDc1Nl9zZXQ7CiAJcmV0dXJuIDE7CiB9Ci0JCQorCiBzdGF0aWMgX19pbml0IGludCBwaWNvX3JvdXRlcl9wcm9iZShzdHJ1Y3QgaXJxX3JvdXRlciAqciwgc3RydWN0IHBjaV9kZXYgKnJvdXRlciwgdTE2IGRldmljZSkKIHsKIAlzd2l0Y2ggKGRldmljZSkgewpAQCAtODA3LDcgKzc5NSw3IEBACiAgKglGSVhNRTogc2hvdWxkIHdlIGhhdmUgYW4gb3B0aW9uIHRvIHNheSAiZ2VuZXJpYyBmb3IKICAqCWNoaXBzZXQiID8KICAqLwotIAorCiBzdGF0aWMgdm9pZCBfX2luaXQgcGlycV9maW5kX3JvdXRlcihzdHJ1Y3QgaXJxX3JvdXRlciAqcikKIHsKIAlzdHJ1Y3QgaXJxX3JvdXRpbmdfdGFibGUgKnJ0ID0gcGlycV90YWJsZTsKQEAgLTgyNiw3ICs4MTQsNyBAQAogCXItPm5hbWUgPSAiZGVmYXVsdCI7CiAJci0+Z2V0ID0gTlVMTDsKIAlyLT5zZXQgPSBOVUxMOwotCQorCiAJREJHKEtFUk5fREVCVUcgIlBDSTogQXR0ZW1wdGluZyB0byBmaW5kIElSUSByb3V0ZXIgZm9yICUwNHg6JTA0eFxuIiwKIAkgICAgcnQtPnJ0cl92ZW5kb3IsIHJ0LT5ydHJfZGV2aWNlKTsKIApAQCAtODM3LDcgKzgyNSw3IEBACiAJCXJldHVybjsKIAl9CiAKLQlmb3IoIGggPSBwaXJxX3JvdXRlcnM7IGgtPnZlbmRvcjsgaCsrKSB7CisJZm9yIChoID0gcGlycV9yb3V0ZXJzOyBoLT52ZW5kb3I7IGgrKykgewogCQkvKiBGaXJzdCBsb29rIGZvciBhIHJvdXRlciBtYXRjaCAqLwogCQlpZiAocnQtPnJ0cl92ZW5kb3IgPT0gaC0+dmVuZG9yICYmIGgtPnByb2JlKHIsIHBpcnFfcm91dGVyX2RldiwgcnQtPnJ0cl9kZXZpY2UpKQogCQkJYnJlYWs7CkBAIC04ODksNyArODc3LDcgQEAKIAogCWlmICghcGlycV90YWJsZSkKIAkJcmV0dXJuIDA7Ci0JCisKIAlEQkcoS0VSTl9ERUJVRyAiSVJRIGZvciAlc1slY10iLCBwY2lfbmFtZShkZXYpLCAnQScgKyBwaW4pOwogCWluZm8gPSBwaXJxX2dldF9pbmZvKGRldik7CiAJaWYgKCFpbmZvKSB7CkBAIC05MjgsOCArOTE2LDEwIEBACiAJICovCiAJbmV3aXJxID0gZGV2LT5pcnE7CiAJaWYgKG5ld2lycSAmJiAhKCgxIDw8IG5ld2lycSkgJiBtYXNrKSkgewotCQlpZiAoIHBjaV9wcm9iZSAmIFBDSV9VU0VfUElSUV9NQVNLKSBuZXdpcnEgPSAwOwotCQllbHNlIHByaW50aygiXG4iIEtFUk5fV0FSTklORworCQlpZiAocGNpX3Byb2JlICYgUENJX1VTRV9QSVJRX01BU0spCisJCQluZXdpcnEgPSAwOworCQllbHNlCisJCQlwcmludGsoIlxuIiBLRVJOX1dBUk5JTkcKIAkJCSJQQ0k6IElSUSAlaSBmb3IgZGV2aWNlICVzIGRvZXNuJ3QgbWF0Y2ggUElSUSBtYXNrICIKIAkJCSItIHRyeSBwY2k9dXNlcGlycW1hc2tcbiIgS0VSTl9ERUJVRywgbmV3aXJxLAogCQkJcGNpX25hbWUoZGV2KSk7CkBAIC05NDksOCArOTM5LDggQEAKIAkJaXJxID0gcGlycSAmIDB4ZjsKIAkJREJHKCIgLT4gaGFyZGNvZGVkIElSUSAlZFxuIiwgaXJxKTsKIAkJbXNnID0gIkhhcmRjb2RlZCI7Ci0JfSBlbHNlIGlmICggci0+Z2V0ICYmIChpcnEgPSByLT5nZXQocGlycV9yb3V0ZXJfZGV2LCBkZXYsIHBpcnEpKSAmJiBcCi0JKCghKHBjaV9wcm9iZSAmIFBDSV9VU0VfUElSUV9NQVNLKSkgfHwgKCgxIDw8IGlycSkgJiBtYXNrKSkgKSB7CisJfSBlbHNlIGlmIChyLT5nZXQgJiYgKGlycSA9IHItPmdldChwaXJxX3JvdXRlcl9kZXYsIGRldiwgcGlycSkpICYmIFwKKwkoKCEocGNpX3Byb2JlICYgUENJX1VTRV9QSVJRX01BU0spKSB8fCAoKDEgPDwgaXJxKSAmIG1hc2spKSkgewogCQlEQkcoIiAtPiBnb3QgSVJRICVkXG4iLCBpcnEpOwogCQltc2cgPSAiRm91bmQiOwogCQllaXNhX3NldF9sZXZlbF9pcnEoaXJxKTsKQEAgLTk4NSwxNSArOTc1LDE1IEBACiAJCQljb250aW51ZTsKIAkJaWYgKGluZm8tPmlycVtwaW5dLmxpbmsgPT0gcGlycSkgewogCQkJLyogV2UgcmVmdXNlIHRvIG92ZXJyaWRlIHRoZSBkZXYtPmlycSBpbmZvcm1hdGlvbi4gR2l2ZSBhIHdhcm5pbmchICovCi0JCSAgICAJaWYgKCBkZXYyLT5pcnEgJiYgZGV2Mi0+aXJxICE9IGlycSAmJiBcCisJCQlpZiAoZGV2Mi0+aXJxICYmIGRldjItPmlycSAhPSBpcnEgJiYgXAogCQkJKCEocGNpX3Byb2JlICYgUENJX1VTRV9QSVJRX01BU0spIHx8IFwKLQkJCSgoMSA8PCBkZXYyLT5pcnEpICYgbWFzaykpICkgeworCQkJKCgxIDw8IGRldjItPmlycSkgJiBtYXNrKSkpIHsKICNpZm5kZWYgQ09ORklHX1BDSV9NU0kKLQkJICAgIAkJcHJpbnRrKEtFUk5fSU5GTyAiSVJRIHJvdXRpbmcgY29uZmxpY3QgZm9yICVzLCBoYXZlIGlycSAlZCwgd2FudCBpcnEgJWRcbiIsCisJCQkJcHJpbnRrKEtFUk5fSU5GTyAiSVJRIHJvdXRpbmcgY29uZmxpY3QgZm9yICVzLCBoYXZlIGlycSAlZCwgd2FudCBpcnEgJWRcbiIsCiAJCQkJICAgICAgIHBjaV9uYW1lKGRldjIpLCBkZXYyLT5pcnEsIGlycSk7CiAjZW5kaWYKLQkJICAgIAkJY29udGludWU7Ci0JCSAgICAJfQorCQkJCWNvbnRpbnVlOworCQkJfQogCQkJZGV2Mi0+aXJxID0gaXJxOwogCQkJcGlycV9wZW5hbHR5W2lycV0rKzsKIAkJCWlmIChkZXYgIT0gZGV2MikKQEAgLTEwMzEsOCArMTAyMSw3IEBACiAJCS8qCiAJCSAqIFJlY2FsY3VsYXRlIElSUSBudW1iZXJzIGlmIHdlIHVzZSB0aGUgSS9PIEFQSUMuCiAJCSAqLwotCQlpZiAoaW9fYXBpY19hc3NpZ25fcGNpX2lycXMpCi0JCXsKKwkJaWYgKGlvX2FwaWNfYXNzaWduX3BjaV9pcnFzKSB7CiAJCQlpbnQgaXJxOwogCiAJCQlpZiAocGluKSB7CkBAIC0xMDQ1LDEwICsxMDM0LDEwIEBACiAJICogYnVzc2VzIGl0c2VsZiBzbyB3ZSBzaG91bGQgZ2V0IGludG8gdGhpcyBicmFuY2ggcmVsaWFibHkuCiAJICovCiAJCQkJaWYgKGlycSA8IDAgJiYgZGV2LT5idXMtPnBhcmVudCkgeyAvKiBnbyBiYWNrIHRvIHRoZSBicmlkZ2UgKi8KLQkJCQkJc3RydWN0IHBjaV9kZXYgKiBicmlkZ2UgPSBkZXYtPmJ1cy0+c2VsZjsKKwkJCQkJc3RydWN0IHBjaV9kZXYgKmJyaWRnZSA9IGRldi0+YnVzLT5zZWxmOwogCiAJCQkJCXBpbiA9IChwaW4gKyBQQ0lfU0xPVChkZXYtPmRldmZuKSkgJSA0OwotCQkJCQlpcnEgPSBJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3RvcihicmlkZ2UtPmJ1cy0+bnVtYmVyLCAKKwkJCQkJaXJxID0gSU9fQVBJQ19nZXRfUENJX2lycV92ZWN0b3IoYnJpZGdlLT5idXMtPm51bWJlciwKIAkJCQkJCQlQQ0lfU0xPVChicmlkZ2UtPmRldmZuKSwgcGluKTsKIAkJCQkJaWYgKGlycSA+PSAwKQogCQkJCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiUENJOiB1c2luZyBQUEIgJXNbJWNdIHRvIGdldCBpcnEgJWRcbiIsCkBAIC0xMTE4LDcgKzExMDcsNyBAQAogCXsgfQogfTsKIAotc3RhdGljIGludCBfX2luaXQgcGNpYmlvc19pcnFfaW5pdCh2b2lkKQoraW50IF9faW5pdCBwY2liaW9zX2lycV9pbml0KHZvaWQpCiB7CiAJREJHKEtFUk5fREVCVUcgIlBDSTogSVJRIGluaXRcbiIpOwogCkBAIC0xMTM4LDcgKzExMjcsNyBAQAogCQlwaXJxX2ZpbmRfcm91dGVyKCZwaXJxX3JvdXRlcik7CiAJCWlmIChwaXJxX3RhYmxlLT5leGNsdXNpdmVfaXJxcykgewogCQkJaW50IGk7Ci0JCQlmb3IgKGk9MDsgaTwxNjsgaSsrKQorCQkJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspCiAJCQkJaWYgKCEocGlycV90YWJsZS0+ZXhjbHVzaXZlX2lycXMgJiAoMSA8PCBpKSkpCiAJCQkJCXBpcnFfcGVuYWx0eVtpXSArPSAxMDA7CiAJCX0KQEAgLTExNTMsOSArMTE0Miw2IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN1YnN5c19pbml0Y2FsbChwY2liaW9zX2lycV9pbml0KTsKLQotCiBzdGF0aWMgdm9pZCBwaXJxX3BlbmFsaXplX2lzYV9pcnEoaW50IGlycSwgaW50IGFjdGl2ZSkKIHsKIAkvKgpAQCAtMTIwMywxMCArMTE4OSwxMCBAQAogCQkJICovCiAJCQl0ZW1wX2RldiA9IGRldjsKIAkJCXdoaWxlIChpcnEgPCAwICYmIGRldi0+YnVzLT5wYXJlbnQpIHsgLyogZ28gYmFjayB0byB0aGUgYnJpZGdlICovCi0JCQkJc3RydWN0IHBjaV9kZXYgKiBicmlkZ2UgPSBkZXYtPmJ1cy0+c2VsZjsKKwkJCQlzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlID0gZGV2LT5idXMtPnNlbGY7CiAKIAkJCQlwaW4gPSAocGluICsgUENJX1NMT1QoZGV2LT5kZXZmbikpICUgNDsKLQkJCQlpcnEgPSBJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3RvcihicmlkZ2UtPmJ1cy0+bnVtYmVyLCAKKwkJCQlpcnEgPSBJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3RvcihicmlkZ2UtPmJ1cy0+bnVtYmVyLAogCQkJCQkJUENJX1NMT1QoYnJpZGdlLT5kZXZmbiksIHBpbik7CiAJCQkJaWYgKGlycSA+PSAwKQogCQkJCQlwcmludGsoS0VSTl9XQVJOSU5HICJQQ0k6IHVzaW5nIFBQQiAlc1slY10gdG8gZ2V0IGlycSAlZFxuIiwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9rOC1idXNfNjQuYyBiL2FyY2gveDg2L3BjaS9rOC1idXNfNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWMyNzk5Yy4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9wY2kvazgtYnVzXzY0LmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MjggKzAsMCBAQAotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgotI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Ci0jaW5jbHVkZSA8bGludXgvdG9wb2xvZ3kuaD4KLQotLyoKLSAqIFRoaXMgZGlzY292ZXJzIHRoZSBwY2lidXMgPC0+IG5vZGUgbWFwcGluZyBvbiBBTUQgSzguCi0gKiBhbHNvIGdldCBwZWVyIHJvb3QgYnVzIHJlc291cmNlIGZvciBpbyxtbWlvCi0gKi8KLQotCi0vKgotICogc3ViIGJ1cyAodHJhbnNwYXJlbnQpIHdpbGwgdXNlIGVudHJlcyBmcm9tIDMgdG8gc3RvcmUgZXh0cmEgZnJvbSByb290LAotICogc28gbmVlZCB0byBtYWtlIHN1cmUgaGF2ZSBlbm91Z2h0IHNsb3QgdGhlcmUsIGluY3JlYXNlIFBDSV9CVVNfTlVNX1JFU09VUkNFUz8KLSAqLwotI2RlZmluZSBSRVNfTlVNIDE2Ci1zdHJ1Y3QgcGNpX3Jvb3RfaW5mbyB7Ci0JY2hhciBuYW1lWzEyXTsKLQl1bnNpZ25lZCBpbnQgcmVzX251bTsKLQlzdHJ1Y3QgcmVzb3VyY2UgcmVzW1JFU19OVU1dOwotCWludCBidXNfbWluOwotCWludCBidXNfbWF4OwotCWludCBub2RlOwotCWludCBsaW5rOwotfTsKLQotLyogNCBhdCB0aGlzIHRpbWUsIGl0IG1heSBiZWNvbWUgdG8gMzIgKi8KLSNkZWZpbmUgUENJX1JPT1RfTlIgNAotc3RhdGljIGludCBwY2lfcm9vdF9udW07Ci1zdGF0aWMgc3RydWN0IHBjaV9yb290X2luZm8gcGNpX3Jvb3RfaW5mb1tQQ0lfUk9PVF9OUl07Ci0KLSNpZmRlZiBDT05GSUdfTlVNQQotCi0jZGVmaW5lIEJVU19OUiAyNTYKLQotc3RhdGljIGludCBtcF9idXNfdG9fbm9kZVtCVVNfTlJdOwotCi12b2lkIHNldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtLCBpbnQgbm9kZSkKLXsKLQlpZiAoYnVzbnVtID49IDAgJiYgIGJ1c251bSA8IEJVU19OUikKLQkJbXBfYnVzX3RvX25vZGVbYnVzbnVtXSA9IG5vZGU7Ci19Ci0KLWludCBnZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSkKLXsKLQlpbnQgbm9kZSA9IC0xOwotCi0JaWYgKGJ1c251bSA8IDAgfHwgYnVzbnVtID4gKEJVU19OUiAtIDEpKQotCQlyZXR1cm4gbm9kZTsKLQotCW5vZGUgPSBtcF9idXNfdG9fbm9kZVtidXNudW1dOwotCi0JLyoKLQkgKiBsZXQgbnVtYV9ub2RlX2lkIHRvIGRlY2lkZSBpdCBsYXRlciBpbiBkbWFfYWxsb2NfcGFnZXMKLQkgKiBpZiB0aGVyZSBpcyBubyByYW0gb24gdGhhdCBub2RlCi0JICovCi0JaWYgKG5vZGUgIT0gLTEgJiYgIW5vZGVfb25saW5lKG5vZGUpKQotCQlub2RlID0gLTE7Ci0KLQlyZXR1cm4gbm9kZTsKLX0KLSNlbmRpZgotCi12b2lkIHNldF9wY2lfYnVzX3Jlc291cmNlc19hcmNoX2RlZmF1bHQoc3RydWN0IHBjaV9idXMgKmIpCi17Ci0JaW50IGk7Ci0JaW50IGo7Ci0Jc3RydWN0IHBjaV9yb290X2luZm8gKmluZm87Ci0KLQkvKiBpZiBvbmx5IG9uZSByb290IGJ1cywgZG9uJ3QgbmVlZCB0byBhbnl0aGluZyAqLwotCWlmIChwY2lfcm9vdF9udW0gPCAyKQotCQlyZXR1cm47Ci0KLQlmb3IgKGkgPSAwOyBpIDwgcGNpX3Jvb3RfbnVtOyBpKyspIHsKLQkJaWYgKHBjaV9yb290X2luZm9baV0uYnVzX21pbiA9PSBiLT5udW1iZXIpCi0JCQlicmVhazsKLQl9Ci0KLQlpZiAoaSA9PSBwY2lfcm9vdF9udW0pCi0JCXJldHVybjsKLQotCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tpXTsKLQlmb3IgKGogPSAwOyBqIDwgaW5mby0+cmVzX251bTsgaisrKSB7Ci0JCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotCQlzdHJ1Y3QgcmVzb3VyY2UgKnJvb3Q7Ci0KLQkJcmVzID0gJmluZm8tPnJlc1tqXTsKLQkJYi0+cmVzb3VyY2Vbal0gPSByZXM7Ci0JCWlmIChyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9JTykKLQkJCXJvb3QgPSAmaW9wb3J0X3Jlc291cmNlOwotCQllbHNlCi0JCQlyb290ID0gJmlvbWVtX3Jlc291cmNlOwotCQlpbnNlcnRfcmVzb3VyY2Uocm9vdCwgcmVzKTsKLQl9Ci19Ci0KLSNkZWZpbmUgUkFOR0VfTlVNIDE2Ci0KLXN0cnVjdCByZXNfcmFuZ2UgewotCXNpemVfdCBzdGFydDsKLQlzaXplX3QgZW5kOwotfTsKLQotc3RhdGljIHZvaWQgX19pbml0IHVwZGF0ZV9yYW5nZShzdHJ1Y3QgcmVzX3JhbmdlICpyYW5nZSwgc2l6ZV90IHN0YXJ0LAotCQkJCXNpemVfdCBlbmQpCi17Ci0JaW50IGk7Ci0JaW50IGo7Ci0KLQlmb3IgKGogPSAwOyBqIDwgUkFOR0VfTlVNOyBqKyspIHsKLQkJaWYgKCFyYW5nZVtqXS5lbmQpCi0JCQljb250aW51ZTsKLQotCQlpZiAoc3RhcnQgPD0gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kID49IHJhbmdlW2pdLmVuZCkgewotCQkJcmFuZ2Vbal0uc3RhcnQgPSAwOwotCQkJcmFuZ2Vbal0uZW5kID0gMDsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KLQkJaWYgKHN0YXJ0IDw9IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA8IHJhbmdlW2pdLmVuZCAmJiByYW5nZVtqXS5zdGFydCA8IGVuZCArIDEpIHsKLQkJCXJhbmdlW2pdLnN0YXJ0ID0gZW5kICsgMTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KLQotCQlpZiAoc3RhcnQgPiByYW5nZVtqXS5zdGFydCAmJiBlbmQgPj0gcmFuZ2Vbal0uZW5kICYmIHJhbmdlW2pdLmVuZCA+IHN0YXJ0IC0gMSkgewotCQkJcmFuZ2Vbal0uZW5kID0gc3RhcnQgLSAxOwotCQkJY29udGludWU7Ci0JCX0KLQotCQlpZiAoc3RhcnQgPiByYW5nZVtqXS5zdGFydCAmJiBlbmQgPCByYW5nZVtqXS5lbmQpIHsKLQkJCS8qIGZpbmQgdGhlIG5ldyBzcGFyZSAqLwotCQkJZm9yIChpID0gMDsgaSA8IFJBTkdFX05VTTsgaSsrKSB7Ci0JCQkJaWYgKHJhbmdlW2ldLmVuZCA9PSAwKQotCQkJCQlicmVhazsKLQkJCX0KLQkJCWlmIChpIDwgUkFOR0VfTlVNKSB7Ci0JCQkJcmFuZ2VbaV0uZW5kID0gcmFuZ2Vbal0uZW5kOwotCQkJCXJhbmdlW2ldLnN0YXJ0ID0gZW5kICsgMTsKLQkJCX0gZWxzZSB7Ci0JCQkJcHJpbnRrKEtFUk5fRVJSICJydW4gb2Ygc2xvdCBpbiByYW5nZXNcbiIpOwotCQkJfQotCQkJcmFuZ2Vbal0uZW5kID0gc3RhcnQgLSAxOwotCQkJY29udGludWU7Ci0JCX0KLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCB1cGRhdGVfcmVzKHN0cnVjdCBwY2lfcm9vdF9pbmZvICppbmZvLCBzaXplX3Qgc3RhcnQsCi0JCQkgICAgICBzaXplX3QgZW5kLCB1bnNpZ25lZCBsb25nIGZsYWdzLCBpbnQgbWVyZ2UpCi17Ci0JaW50IGk7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0KLQlpZiAoIW1lcmdlKQotCQlnb3RvIGFkZGl0OwotCi0JLyogdHJ5IHRvIG1lcmdlIGl0IHdpdGggb2xkIG9uZSAqLwotCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5yZXNfbnVtOyBpKyspIHsKLQkJc2l6ZV90IGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQ7Ci0JCXNpemVfdCBjb21tb25fc3RhcnQsIGNvbW1vbl9lbmQ7Ci0KLQkJcmVzID0gJmluZm8tPnJlc1tpXTsKLQkJaWYgKHJlcy0+ZmxhZ3MgIT0gZmxhZ3MpCi0JCQljb250aW51ZTsKLQotCQljb21tb25fc3RhcnQgPSBtYXgoKHNpemVfdClyZXMtPnN0YXJ0LCBzdGFydCk7Ci0JCWNvbW1vbl9lbmQgPSBtaW4oKHNpemVfdClyZXMtPmVuZCwgZW5kKTsKLQkJaWYgKGNvbW1vbl9zdGFydCA+IGNvbW1vbl9lbmQgKyAxKQotCQkJY29udGludWU7Ci0KLQkJZmluYWxfc3RhcnQgPSBtaW4oKHNpemVfdClyZXMtPnN0YXJ0LCBzdGFydCk7Ci0JCWZpbmFsX2VuZCA9IG1heCgoc2l6ZV90KXJlcy0+ZW5kLCBlbmQpOwotCi0JCXJlcy0+c3RhcnQgPSBmaW5hbF9zdGFydDsKLQkJcmVzLT5lbmQgPSBmaW5hbF9lbmQ7Ci0JCXJldHVybjsKLQl9Ci0KLWFkZGl0OgotCi0JLyogbmVlZCB0byBhZGQgdGhhdCAqLwotCWlmIChpbmZvLT5yZXNfbnVtID49IFJFU19OVU0pCi0JCXJldHVybjsKLQotCXJlcyA9ICZpbmZvLT5yZXNbaW5mby0+cmVzX251bV07Ci0JcmVzLT5uYW1lID0gaW5mby0+bmFtZTsKLQlyZXMtPmZsYWdzID0gZmxhZ3M7Ci0JcmVzLT5zdGFydCA9IHN0YXJ0OwotCXJlcy0+ZW5kID0gZW5kOwotCXJlcy0+Y2hpbGQgPSBOVUxMOwotCWluZm8tPnJlc19udW0rKzsKLX0KLQotc3RydWN0IHBjaV9ob3N0YnJpZGdlX3Byb2JlIHsKLQl1MzIgYnVzOwotCXUzMiBzbG90OwotCXUzMiB2ZW5kb3I7Ci0JdTMyIGRldmljZTsKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGNpX2hvc3RicmlkZ2VfcHJvYmUgcGNpX3Byb2Jlc1tdIF9faW5pdGRhdGEgPSB7Ci0JeyAwLCAweDE4LCBQQ0lfVkVORE9SX0lEX0FNRCwgMHgxMTAwIH0sCi0JeyAwLCAweDE4LCBQQ0lfVkVORE9SX0lEX0FNRCwgMHgxMjAwIH0sCi0JeyAweGZmLCAwLCBQQ0lfVkVORE9SX0lEX0FNRCwgMHgxMjAwIH0sCi0JeyAwLCAweDE4LCBQQ0lfVkVORE9SX0lEX0FNRCwgMHgxMzAwIH0sCi19OwotCi1zdGF0aWMgdTY0IF9faW5pdGRhdGEgZmFtMTBoX21tY29uZl9zdGFydDsKLXN0YXRpYyB1NjQgX19pbml0ZGF0YSBmYW0xMGhfbW1jb25mX2VuZDsKLXN0YXRpYyB2b2lkIF9faW5pdCBnZXRfcGNpX21tY2ZnX2FtZF9mYW0xMGhfcmFuZ2Uodm9pZCkKLXsKLQl1MzIgYWRkcmVzczsKLQl1NjQgYmFzZSwgbXNyOwotCXVuc2lnbmVkIHNlZ25fYnVzbl9iaXRzOwotCi0JLyogYXNzdW1lIGFsbCBjcHVzIGZyb20gZmFtMTBoIGhhdmUgbW1jb25mICovCi0gICAgICAgIGlmIChib290X2NwdV9kYXRhLng4NiA8IDB4MTApCi0JCXJldHVybjsKLQotCWFkZHJlc3MgPSBNU1JfRkFNMTBIX01NSU9fQ09ORl9CQVNFOwotCXJkbXNybChhZGRyZXNzLCBtc3IpOwotCi0JLyogbW1jb25maWcgaXMgbm90IGVuYWJsZSAqLwotCWlmICghKG1zciAmIEZBTTEwSF9NTUlPX0NPTkZfRU5BQkxFKSkKLQkJcmV0dXJuOwotCi0JYmFzZSA9IG1zciAmIChGQU0xMEhfTU1JT19DT05GX0JBU0VfTUFTSzw8RkFNMTBIX01NSU9fQ09ORl9CQVNFX1NISUZUKTsKLQotCXNlZ25fYnVzbl9iaXRzID0gKG1zciA+PiBGQU0xMEhfTU1JT19DT05GX0JVU1JBTkdFX1NISUZUKSAmCi0JCQkgRkFNMTBIX01NSU9fQ09ORl9CVVNSQU5HRV9NQVNLOwotCi0JZmFtMTBoX21tY29uZl9zdGFydCA9IGJhc2U7Ci0JZmFtMTBoX21tY29uZl9lbmQgPSBiYXNlICsgKDFVTEw8PChzZWduX2J1c25fYml0cyArIDIwKSkgLSAxOwotfQotCi0vKioKLSAqIGVhcmx5X2ZpbGxfbXBfYnVzX3RvX25vZGUoKQotICogY2FsbGVkIGJlZm9yZSBwY2liaW9zX3NjYW5fcm9vdCBhbmQgcGNpX3NjYW5fYnVzCi0gKiBmaWxscyB0aGUgbXBfYnVzX3RvX2NwdW1hc2sgYXJyYXkgYmFzZWQgYWNjb3JkaW5nIHRvIHRoZSBMRFQgQnVzIE51bWJlcgotICogUmVnaXN0ZXJzIGZvdW5kIGluIHRoZSBLOCBub3J0aGJyaWRnZQotICovCi1zdGF0aWMgaW50IF9faW5pdCBlYXJseV9maWxsX21wX2J1c19pbmZvKHZvaWQpCi17Ci0JaW50IGk7Ci0JaW50IGo7Ci0JdW5zaWduZWQgYnVzOwotCXVuc2lnbmVkIHNsb3Q7Ci0JaW50IGZvdW5kOwotCWludCBub2RlOwotCWludCBsaW5rOwotCWludCBkZWZfbm9kZTsKLQlpbnQgZGVmX2xpbms7Ci0Jc3RydWN0IHBjaV9yb290X2luZm8gKmluZm87Ci0JdTMyIHJlZzsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQlzaXplX3Qgc3RhcnQ7Ci0Jc2l6ZV90IGVuZDsKLQlzdHJ1Y3QgcmVzX3JhbmdlIHJhbmdlW1JBTkdFX05VTV07Ci0JdTY0IHZhbDsKLQl1MzIgYWRkcmVzczsKLQotI2lmZGVmIENPTkZJR19OVU1BCi0JZm9yIChpID0gMDsgaSA8IEJVU19OUjsgaSsrKQotCQltcF9idXNfdG9fbm9kZVtpXSA9IC0xOwotI2VuZGlmCi0KLQlpZiAoIWVhcmx5X3BjaV9hbGxvd2VkKCkpCi0JCXJldHVybiAtMTsKLQotCWZvdW5kID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwY2lfcHJvYmVzKTsgaSsrKSB7Ci0JCXUzMiBpZDsKLQkJdTE2IGRldmljZTsKLQkJdTE2IHZlbmRvcjsKLQotCQlidXMgPSBwY2lfcHJvYmVzW2ldLmJ1czsKLQkJc2xvdCA9IHBjaV9wcm9iZXNbaV0uc2xvdDsKLQkJaWQgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAwLCBQQ0lfVkVORE9SX0lEKTsKLQotCQl2ZW5kb3IgPSBpZCAmIDB4ZmZmZjsKLQkJZGV2aWNlID0gKGlkPj4xNikgJiAweGZmZmY7Ci0JCWlmIChwY2lfcHJvYmVzW2ldLnZlbmRvciA9PSB2ZW5kb3IgJiYKLQkJICAgIHBjaV9wcm9iZXNbaV0uZGV2aWNlID09IGRldmljZSkgewotCQkJZm91bmQgPSAxOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0KLQlpZiAoIWZvdW5kKQotCQlyZXR1cm4gMDsKLQotCXBjaV9yb290X251bSA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewotCQlpbnQgbWluX2J1czsKLQkJaW50IG1heF9idXM7Ci0JCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDEsIDB4ZTAgKyAoaSA8PCAyKSk7Ci0KLQkJLyogQ2hlY2sgaWYgdGhhdCByZWdpc3RlciBpcyBlbmFibGVkIGZvciBidXMgcmFuZ2UgKi8KLQkJaWYgKChyZWcgJiA3KSAhPSAzKQotCQkJY29udGludWU7Ci0KLQkJbWluX2J1cyA9IChyZWcgPj4gMTYpICYgMHhmZjsKLQkJbWF4X2J1cyA9IChyZWcgPj4gMjQpICYgMHhmZjsKLQkJbm9kZSA9IChyZWcgPj4gNCkgJiAweDA3OwotI2lmZGVmIENPTkZJR19OVU1BCi0JCWZvciAoaiA9IG1pbl9idXM7IGogPD0gbWF4X2J1czsgaisrKQotCQkJbXBfYnVzX3RvX25vZGVbal0gPSAodW5zaWduZWQgY2hhcikgbm9kZTsKLSNlbmRpZgotCQlsaW5rID0gKHJlZyA+PiA4KSAmIDB4MDM7Ci0KLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW3BjaV9yb290X251bV07Ci0JCWluZm8tPmJ1c19taW4gPSBtaW5fYnVzOwotCQlpbmZvLT5idXNfbWF4ID0gbWF4X2J1czsKLQkJaW5mby0+bm9kZSA9IG5vZGU7Ci0JCWluZm8tPmxpbmsgPSBsaW5rOwotCQlzcHJpbnRmKGluZm8tPm5hbWUsICJQQ0kgQnVzICMlMDJ4IiwgbWluX2J1cyk7Ci0JCXBjaV9yb290X251bSsrOwotCX0KLQotCS8qIGdldCB0aGUgZGVmYXVsdCBub2RlIGFuZCBsaW5rIGZvciBsZWZ0IG92ZXIgcmVzICovCi0JcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMCwgMHg2MCk7Ci0JZGVmX25vZGUgPSAocmVnID4+IDgpICYgMHgwNzsKLQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAwLCAweDY0KTsKLQlkZWZfbGluayA9IChyZWcgPj4gOCkgJiAweDAzOwotCi0JbWVtc2V0KHJhbmdlLCAwLCBzaXplb2YocmFuZ2UpKTsKLQlyYW5nZVswXS5lbmQgPSAweGZmZmY7Ci0JLyogaW8gcG9ydCByZXNvdXJjZSAqLwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHhjMCArIChpIDw8IDMpKTsKLQkJaWYgKCEocmVnICYgMykpCi0JCQljb250aW51ZTsKLQotCQlzdGFydCA9IHJlZyAmIDB4ZmZmMDAwOwotCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweGM0ICsgKGkgPDwgMykpOwotCQlub2RlID0gcmVnICYgMHgwNzsKLQkJbGluayA9IChyZWcgPj4gNCkgJiAweDAzOwotCQllbmQgPSAocmVnICYgMHhmZmYwMDApIHwgMHhmZmY7Ci0KLQkJLyogZmluZCB0aGUgcG9zaXRpb24gKi8KLQkJZm9yIChqID0gMDsgaiA8IHBjaV9yb290X251bTsgaisrKSB7Ci0JCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07Ci0JCQlpZiAoaW5mby0+bm9kZSA9PSBub2RlICYmIGluZm8tPmxpbmsgPT0gbGluaykKLQkJCQlicmVhazsKLQkJfQotCQlpZiAoaiA9PSBwY2lfcm9vdF9udW0pCi0JCQljb250aW51ZTsgLyogbm90IGZvdW5kICovCi0KLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOwotCQlwcmludGsoS0VSTl9ERUJVRyAibm9kZSAlZCBsaW5rICVkOiBpbyBwb3J0IFslbGx4LCAlbGx4XVxuIiwKLQkJICAgICAgIG5vZGUsIGxpbmssICh1NjQpc3RhcnQsICh1NjQpZW5kKTsKLQotCQkvKiBrZXJuZWwgb25seSBoYW5kbGUgMTYgYml0IG9ubHkgKi8KLQkJaWYgKGVuZCA+IDB4ZmZmZikKLQkJCWVuZCA9IDB4ZmZmZjsKLQkJdXBkYXRlX3JlcyhpbmZvLCBzdGFydCwgZW5kLCBJT1JFU09VUkNFX0lPLCAxKTsKLQkJdXBkYXRlX3JhbmdlKHJhbmdlLCBzdGFydCwgZW5kKTsKLQl9Ci0JLyogYWRkIGxlZnQgb3ZlciBpbyBwb3J0IHJhbmdlIHRvIGRlZiBub2RlL2xpbmssIFswLCAweGZmZmZdICovCi0JLyogZmluZCB0aGUgcG9zaXRpb24gKi8KLQlmb3IgKGogPSAwOyBqIDwgcGNpX3Jvb3RfbnVtOyBqKyspIHsKLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOwotCQlpZiAoaW5mby0+bm9kZSA9PSBkZWZfbm9kZSAmJiBpbmZvLT5saW5rID09IGRlZl9saW5rKQotCQkJYnJlYWs7Ci0JfQotCWlmIChqIDwgcGNpX3Jvb3RfbnVtKSB7Ci0JCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKLQkJZm9yIChpID0gMDsgaSA8IFJBTkdFX05VTTsgaSsrKSB7Ci0JCQlpZiAoIXJhbmdlW2ldLmVuZCkKLQkJCQljb250aW51ZTsKLQotCQkJdXBkYXRlX3JlcyhpbmZvLCByYW5nZVtpXS5zdGFydCwgcmFuZ2VbaV0uZW5kLAotCQkJCSAgIElPUkVTT1VSQ0VfSU8sIDEpOwotCQl9Ci0JfQotCi0JbWVtc2V0KHJhbmdlLCAwLCBzaXplb2YocmFuZ2UpKTsKLQkvKiAweGZkMDAwMDAwMDAtMHhmZmZmZmZmZmZmIGZvciBIVCAqLwotCXJhbmdlWzBdLmVuZCA9ICgweGZkVUxMPDwzMikgLSAxOwotCi0JLyogbmVlZCB0byB0YWtlIG91dCBbMCwgVE9NKSBmb3IgUkFNKi8KLQlhZGRyZXNzID0gTVNSX0s4X1RPUF9NRU0xOwotCXJkbXNybChhZGRyZXNzLCB2YWwpOwotCWVuZCA9ICh2YWwgJiAweGZmZmZmZjgwMDAwMDBVTEwpOwotCXByaW50ayhLRVJOX0lORk8gIlRPTTogJTAxNmx4IGFrYSAlbGRNXG4iLCBlbmQsIGVuZD4+MjApOwotCWlmIChlbmQgPCAoMVVMTDw8MzIpKQotCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIDAsIGVuZCAtIDEpOwotCi0JLyogZ2V0IG1tY29uZmlnICovCi0JZ2V0X3BjaV9tbWNmZ19hbWRfZmFtMTBoX3JhbmdlKCk7Ci0JLyogbmVlZCB0byB0YWtlIG91dCBtbWNvbmYgcmFuZ2UgKi8KLQlpZiAoZmFtMTBoX21tY29uZl9lbmQpIHsKLQkJcHJpbnRrKEtFUk5fREVCVUcgIkZhbSAxMGggbW1jb25mIFslbGx4LCAlbGx4XVxuIiwgZmFtMTBoX21tY29uZl9zdGFydCwgZmFtMTBoX21tY29uZl9lbmQpOwotCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIGZhbTEwaF9tbWNvbmZfc3RhcnQsIGZhbTEwaF9tbWNvbmZfZW5kKTsKLQl9Ci0KLQkvKiBtbWlvIHJlc291cmNlICovCi0JZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweDgwICsgKGkgPDwgMykpOwotCQlpZiAoIShyZWcgJiAzKSkKLQkJCWNvbnRpbnVlOwotCi0JCXN0YXJ0ID0gcmVnICYgMHhmZmZmZmYwMDsgLyogMzk6MTYgb24gMzE6OCovCi0JCXN0YXJ0IDw8PSA4OwotCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweDg0ICsgKGkgPDwgMykpOwotCQlub2RlID0gcmVnICYgMHgwNzsKLQkJbGluayA9IChyZWcgPj4gNCkgJiAweDAzOwotCQllbmQgPSAocmVnICYgMHhmZmZmZmYwMCk7Ci0JCWVuZCA8PD0gODsKLQkJZW5kIHw9IDB4ZmZmZjsKLQotCQkvKiBmaW5kIHRoZSBwb3NpdGlvbiAqLwotCQlmb3IgKGogPSAwOyBqIDwgcGNpX3Jvb3RfbnVtOyBqKyspIHsKLQkJCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKLQkJCWlmIChpbmZvLT5ub2RlID09IG5vZGUgJiYgaW5mby0+bGluayA9PSBsaW5rKQotCQkJCWJyZWFrOwotCQl9Ci0JCWlmIChqID09IHBjaV9yb290X251bSkKLQkJCWNvbnRpbnVlOyAvKiBub3QgZm91bmQgKi8KLQotCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07Ci0KLQkJcHJpbnRrKEtFUk5fREVCVUcgIm5vZGUgJWQgbGluayAlZDogbW1pbyBbJWxseCwgJWxseF0iLAotCQkgICAgICAgbm9kZSwgbGluaywgKHU2NClzdGFydCwgKHU2NCllbmQpOwotCQkvKgotCQkgKiBzb21lIHNpY2sgYWxsb2NhdGlvbiB3b3VsZCBoYXZlIHJhbmdlIG92ZXJsYXAgd2l0aCBmYW0xMGgKLQkJICogbW1jb25mIHJhbmdlLCBzbyBuZWVkIHRvIHVwZGF0ZSBzdGFydCBhbmQgZW5kLgotCQkgKi8KLQkJaWYgKGZhbTEwaF9tbWNvbmZfZW5kKSB7Ci0JCQlpbnQgY2hhbmdlZCA9IDA7Ci0JCQl1NjQgZW5keCA9IDA7Ci0JCQlpZiAoc3RhcnQgPj0gZmFtMTBoX21tY29uZl9zdGFydCAmJgotCQkJICAgIHN0YXJ0IDw9IGZhbTEwaF9tbWNvbmZfZW5kKSB7Ci0JCQkJc3RhcnQgPSBmYW0xMGhfbW1jb25mX2VuZCArIDE7Ci0JCQkJY2hhbmdlZCA9IDE7Ci0JCQl9Ci0KLQkJCWlmIChlbmQgPj0gZmFtMTBoX21tY29uZl9zdGFydCAmJgotCQkJICAgIGVuZCA8PSBmYW0xMGhfbW1jb25mX2VuZCkgewotCQkJCWVuZCA9IGZhbTEwaF9tbWNvbmZfc3RhcnQgLSAxOwotCQkJCWNoYW5nZWQgPSAxOwotCQkJfQotCi0JCQlpZiAoc3RhcnQgPCBmYW0xMGhfbW1jb25mX3N0YXJ0ICYmCi0JCQkgICAgZW5kID4gZmFtMTBoX21tY29uZl9lbmQpIHsKLQkJCQkvKiB3ZSBnb3QgYSBob2xlICovCi0JCQkJZW5keCA9IGZhbTEwaF9tbWNvbmZfc3RhcnQgLSAxOwotCQkJCXVwZGF0ZV9yZXMoaW5mbywgc3RhcnQsIGVuZHgsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQkJCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIHN0YXJ0LCBlbmR4KTsKLQkJCQlwcmludGsoS0VSTl9DT05UICIgPT0+IFslbGx4LCAlbGx4XSIsICh1NjQpc3RhcnQsIGVuZHgpOwotCQkJCXN0YXJ0ID0gZmFtMTBoX21tY29uZl9lbmQgKyAxOwotCQkJCWNoYW5nZWQgPSAxOwotCQkJfQotCQkJaWYgKGNoYW5nZWQpIHsKLQkJCQlpZiAoc3RhcnQgPD0gZW5kKSB7Ci0JCQkJCXByaW50ayhLRVJOX0NPTlQgIiAlcyBbJWxseCwgJWxseF0iLCBlbmR4PyJhbmQiOiI9PT4iLCAodTY0KXN0YXJ0LCAodTY0KWVuZCk7Ci0JCQkJfSBlbHNlIHsKLQkJCQkJcHJpbnRrKEtFUk5fQ09OVCAiJXNcbiIsIGVuZHg/IiI6IiA9PT4gbm9uZSIpOwotCQkJCQljb250aW51ZTsKLQkJCQl9Ci0JCQl9Ci0JCX0KLQotCQl1cGRhdGVfcmVzKGluZm8sIHN0YXJ0LCBlbmQsIElPUkVTT1VSQ0VfTUVNLCAxKTsKLQkJdXBkYXRlX3JhbmdlKHJhbmdlLCBzdGFydCwgZW5kKTsKLQkJcHJpbnRrKEtFUk5fQ09OVCAiXG4iKTsKLQl9Ci0KLQkvKiBuZWVkIHRvIHRha2Ugb3V0IFs0RywgVE9NMikgZm9yIFJBTSovCi0JLyogU1lTX0NGRyAqLwotCWFkZHJlc3MgPSBNU1JfSzhfU1lTQ0ZHOwotCXJkbXNybChhZGRyZXNzLCB2YWwpOwotCS8qIFRPUF9NRU0yIGlzIGVuYWJsZWQ/ICovCi0JaWYgKHZhbCAmICgxPDwyMSkpIHsKLQkJLyogVE9QX01FTTIgKi8KLQkJYWRkcmVzcyA9IE1TUl9LOF9UT1BfTUVNMjsKLQkJcmRtc3JsKGFkZHJlc3MsIHZhbCk7Ci0JCWVuZCA9ICh2YWwgJiAweGZmZmZmZjgwMDAwMDBVTEwpOwotCQlwcmludGsoS0VSTl9JTkZPICJUT00yOiAlMDE2bHggYWthICVsZE1cbiIsIGVuZCwgZW5kPj4yMCk7Ci0JCXVwZGF0ZV9yYW5nZShyYW5nZSwgMVVMTDw8MzIsIGVuZCAtIDEpOwotCX0KLQotCS8qCi0JICogYWRkIGxlZnQgb3ZlciBtbWlvIHJhbmdlIHRvIGRlZiBub2RlL2xpbmsgPwotCSAqIHRoYXQgaXMgdHJpY2t5LCBqdXN0IHJlY29yZCByYW5nZSBpbiBmcm9tIHN0YXJ0X21pbiB0byA0RwotCSAqLwotCWZvciAoaiA9IDA7IGogPCBwY2lfcm9vdF9udW07IGorKykgewotCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07Ci0JCWlmIChpbmZvLT5ub2RlID09IGRlZl9ub2RlICYmIGluZm8tPmxpbmsgPT0gZGVmX2xpbmspCi0JCQlicmVhazsKLQl9Ci0JaWYgKGogPCBwY2lfcm9vdF9udW0pIHsKLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOwotCi0JCWZvciAoaSA9IDA7IGkgPCBSQU5HRV9OVU07IGkrKykgewotCQkJaWYgKCFyYW5nZVtpXS5lbmQpCi0JCQkJY29udGludWU7Ci0KLQkJCXVwZGF0ZV9yZXMoaW5mbywgcmFuZ2VbaV0uc3RhcnQsIHJhbmdlW2ldLmVuZCwKLQkJCQkgICBJT1JFU09VUkNFX01FTSwgMSk7Ci0JCX0KLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgcGNpX3Jvb3RfbnVtOyBpKyspIHsKLQkJaW50IHJlc19udW07Ci0JCWludCBidXNudW07Ci0KLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2ldOwotCQlyZXNfbnVtID0gaW5mby0+cmVzX251bTsKLQkJYnVzbnVtID0gaW5mby0+YnVzX21pbjsKLQkJcHJpbnRrKEtFUk5fREVCVUcgImJ1czogWyUwMngsJTAyeF0gb24gbm9kZSAleCBsaW5rICV4XG4iLAotCQkgICAgICAgaW5mby0+YnVzX21pbiwgaW5mby0+YnVzX21heCwgaW5mby0+bm9kZSwgaW5mby0+bGluayk7Ci0JCWZvciAoaiA9IDA7IGogPCByZXNfbnVtOyBqKyspIHsKLQkJCXJlcyA9ICZpbmZvLT5yZXNbal07Ci0JCQlwcmludGsoS0VSTl9ERUJVRyAiYnVzOiAlMDJ4IGluZGV4ICV4ICVzOiBbJWxseCwgJWxseF1cbiIsCi0JCQkgICAgICAgYnVzbnVtLCBqLAotCQkJICAgICAgIChyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9JTyk/ImlvIHBvcnQiOiJtbWlvIiwKLQkJCSAgICAgICByZXMtPnN0YXJ0LCByZXMtPmVuZCk7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotcG9zdGNvcmVfaW5pdGNhbGwoZWFybHlfZmlsbF9tcF9idXNfaW5mbyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvbGVnYWN5LmMgYi9hcmNoL3g4Ni9wY2kvbGVnYWN5LmMKaW5kZXggYTY3OTIxYy4uMTMyODc2YyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2xlZ2FjeS5jCisrKyBiL2FyY2gveDg2L3BjaS9sZWdhY3kuYwpAQCAtNTUsNCArNTUsMTggQEAKIAlyZXR1cm4gMDsKIH0KIAotc3Vic3lzX2luaXRjYWxsKHBjaV9sZWdhY3lfaW5pdCk7CitpbnQgX19pbml0IHBjaV9zdWJzeXNfaW5pdCh2b2lkKQoreworI2lmZGVmIENPTkZJR19BQ1BJCisJcGNpX2FjcGlfaW5pdCgpOworI2VuZGlmCisJcGNpX2xlZ2FjeV9pbml0KCk7CisJcGNpYmlvc19pcnFfaW5pdCgpOworI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwlwY2lfbnVtYV9pbml0KCk7CisjZW5kaWYKKwlwY2liaW9zX2luaXQoKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKHBjaV9zdWJzeXNfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvbW1jb25maWctc2hhcmVkLmMgYi9hcmNoL3g4Ni9wY2kvbW1jb25maWctc2hhcmVkLmMKaW5kZXggMGNmZWJlYy4uMjNmYWFhOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL21tY29uZmlnLXNoYXJlZC5jCisrKyBiL2FyY2gveDg2L3BjaS9tbWNvbmZpZy1zaGFyZWQuYwpAQCAtMzc0LDcgKzM3NCw3IEBACiAKIHN0YXRpYyBpbnQgX19pbml0ZGF0YSBrbm93bl9icmlkZ2U7CiAKLXZvaWQgX19pbml0IF9fcGNpX21tY2ZnX2luaXQoaW50IGVhcmx5KQorc3RhdGljIHZvaWQgX19pbml0IF9fcGNpX21tY2ZnX2luaXQoaW50IGVhcmx5KQogewogCS8qIE1NQ09ORklHIGRpc2FibGVkICovCiAJaWYgKChwY2lfcHJvYmUgJiBQQ0lfUFJPQkVfTU1DT05GKSA9PSAwKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL21wX2J1c190b19ub2RlLmMgYi9hcmNoL3g4Ni9wY2kvbXBfYnVzX3RvX25vZGUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDIyOTQzOS4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9wY2kvbXBfYnVzX3RvX25vZGUuYworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvdG9wb2xvZ3kuaD4KLQotI2RlZmluZSBCVVNfTlIgMjU2Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIG1wX2J1c190b19ub2RlW0JVU19OUl07Ci0KLXZvaWQgc2V0X21wX2J1c190b19ub2RlKGludCBidXNudW0sIGludCBub2RlKQotewotCWlmIChidXNudW0gPj0gMCAmJiAgYnVzbnVtIDwgQlVTX05SKQotCW1wX2J1c190b19ub2RlW2J1c251bV0gPSAodW5zaWduZWQgY2hhcikgbm9kZTsKLX0KLQotaW50IGdldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtKQotewotCWludCBub2RlOwotCi0JaWYgKGJ1c251bSA8IDAgfHwgYnVzbnVtID4gKEJVU19OUiAtIDEpKQotCQlyZXR1cm4gMDsKLQlub2RlID0gbXBfYnVzX3RvX25vZGVbYnVzbnVtXTsKLQlyZXR1cm4gbm9kZTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9udW1hLmMgYi9hcmNoL3g4Ni9wY2kvbnVtYS5jCmluZGV4IGQ5YWZiYWUuLjhiNWNhMTkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9udW1hLmMKKysrIGIvYXJjaC94ODYvcGNpL251bWEuYwpAQCAtNiw0NSArNiwyMSBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9ub2RlbWFzay5oPgogI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KICNpbmNsdWRlICJwY2kuaCIKIAogI2RlZmluZSBYUVVBRF9QT1JUSU9fQkFTRSAweGZlNDAwMDAwCiAjZGVmaW5lIFhRVUFEX1BPUlRJT19RVUFEIDB4NDAwMDAgIC8qIDI1NmsgcGVyIHF1YWQuICovCiAKLWludCBtcF9idXNfaWRfdG9fbm9kZVtNQVhfTVBfQlVTU0VTXTsKICNkZWZpbmUgQlVTMlFVQUQoZ2xvYmFsKSAobXBfYnVzX2lkX3RvX25vZGVbZ2xvYmFsXSkKIAotaW50IG1wX2J1c19pZF90b19sb2NhbFtNQVhfTVBfQlVTU0VTXTsKICNkZWZpbmUgQlVTMkxPQ0FMKGdsb2JhbCkgKG1wX2J1c19pZF90b19sb2NhbFtnbG9iYWxdKQogCi12b2lkIG1wY19vZW1fYnVzX2luZm8oc3RydWN0IG1wY19jb25maWdfYnVzICptLCBjaGFyICpuYW1lLAotCXN0cnVjdCBtcGNfY29uZmlnX3RyYW5zbGF0aW9uICp0cmFuc2xhdGlvbikKLXsKLQlpbnQgcXVhZCA9IHRyYW5zbGF0aW9uLT50cmFuc19xdWFkOwotCWludCBsb2NhbCA9IHRyYW5zbGF0aW9uLT50cmFuc19sb2NhbDsKLQotCW1wX2J1c19pZF90b19ub2RlW20tPm1wY19idXNpZF0gPSBxdWFkOwotCW1wX2J1c19pZF90b19sb2NhbFttLT5tcGNfYnVzaWRdID0gbG9jYWw7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiQnVzICMlZCBpcyAlcyAobm9kZSAlZClcbiIsCi0JICAgICAgIG0tPm1wY19idXNpZCwgbmFtZSwgcXVhZCk7Ci19Ci0KLWludCBxdWFkX2xvY2FsX3RvX21wX2J1c19pZCBbTlJfQ1BVUy80XVs0XTsKICNkZWZpbmUgUVVBRExPQ0FMMkJVUyhxdWFkLGxvY2FsKSAocXVhZF9sb2NhbF90b19tcF9idXNfaWRbcXVhZF1bbG9jYWxdKQotdm9pZCBtcGNfb2VtX3BjaV9idXMoc3RydWN0IG1wY19jb25maWdfYnVzICptLAotCXN0cnVjdCBtcGNfY29uZmlnX3RyYW5zbGF0aW9uICp0cmFuc2xhdGlvbikKLXsKLQlpbnQgcXVhZCA9IHRyYW5zbGF0aW9uLT50cmFuc19xdWFkOwotCWludCBsb2NhbCA9IHRyYW5zbGF0aW9uLT50cmFuc19sb2NhbDsKLQotCXF1YWRfbG9jYWxfdG9fbXBfYnVzX2lkW3F1YWRdW2xvY2FsXSA9IG0tPm1wY19idXNpZDsKLX0KIAogLyogV2hlcmUgdGhlIElPIGFyZWEgd2FzIG1hcHBlZCBvbiBtdWx0aXF1YWQsIGFsd2F5cyAwIG90aGVyd2lzZSAqLwogdm9pZCAqeHF1YWRfcG9ydGlvOwotI2lmZGVmIENPTkZJR19YODZfTlVNQVEKIEVYUE9SVF9TWU1CT0woeHF1YWRfcG9ydGlvKTsKLSNlbmRpZgogCiAjZGVmaW5lIFhRVUFEX1BPUlRfQUREUihwb3J0LCBxdWFkKSAoeHF1YWRfcG9ydGlvICsgKFhRVUFEX1BPUlRJT19RVUFEKnF1YWQpICsgcG9ydCkKIApAQCAtMTc1LDEwICsxNTEsMTMgQEAKIH0KIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyNDUxTlgsIHBjaV9maXh1cF9pNDUwbngpOwogCi1zdGF0aWMgaW50IF9faW5pdCBwY2lfbnVtYV9pbml0KHZvaWQpCitpbnQgX19pbml0IHBjaV9udW1hX2luaXQodm9pZCkKIHsKIAlpbnQgcXVhZDsKIAorCWlmICghZm91bmRfbnVtYXEpCisJCXJldHVybiAwOworCiAJcmF3X3BjaV9vcHMgPSAmcGNpX2RpcmVjdF9jb25mMV9tcTsKIAogCWlmIChwY2liaW9zX3NjYW5uZWQrKykKQEAgLTE5Nyw1ICsxNzYsMyBAQAogCQl9CiAJcmV0dXJuIDA7CiB9Ci0KLXN1YnN5c19pbml0Y2FsbChwY2lfbnVtYV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9wY2kuaCBiL2FyY2gveDg2L3BjaS9wY2kuaAppbmRleCA3MjBjNGM1Li5iMjI3MGE1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wY2kvcGNpLmgKKysrIGIvYXJjaC94ODYvcGNpL3BjaS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFBDSV9DQU5fU0tJUF9JU0FfQUxJR04JMHg4MDAwCiAjZGVmaW5lIFBDSV9VU0VfX0NSUwkJMHgxMDAwMAogI2RlZmluZSBQQ0lfQ0hFQ0tfRU5BQkxFX0FNRF9NTUNPTkYJMHgyMDAwMAorI2RlZmluZSBQQ0lfSEFTX0lPX0VDUwkJMHg0MDAwMAogCiBleHRlcm4gdW5zaWduZWQgaW50IHBjaV9wcm9iZTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIHBpcnFfdGFibGVfYWRkcjsKQEAgLTM4LDkgKzM5LDYgQEAKIAlwY2lfZG1pX2JmLAogfTsKIAotZXh0ZXJuIHZvaWQgX19pbml0IGRtaV9jaGVja19wY2lwcm9iZSh2b2lkKTsKLWV4dGVybiB2b2lkIF9faW5pdCBkbWlfY2hlY2tfc2tpcF9pc2FfYWxpZ24odm9pZCk7Ci0KIC8qIHBjaS1pMzg2LmMgKi8KIAogZXh0ZXJuIHVuc2lnbmVkIGludCBwY2liaW9zX21heF9sYXRlbmN5OwpAQCAtOTgsMTAgKzk2LDE5IEBACiAKIGV4dGVybiBzdHJ1Y3QgcGNpX3Jhd19vcHMgcGNpX2RpcmVjdF9jb25mMTsKIAorLyogYXJjaF9pbml0Y2FsbCBsZXZlbCAqLwogZXh0ZXJuIGludCBwY2lfZGlyZWN0X3Byb2JlKHZvaWQpOwogZXh0ZXJuIHZvaWQgcGNpX2RpcmVjdF9pbml0KGludCB0eXBlKTsKIGV4dGVybiB2b2lkIHBjaV9wY2Jpb3NfaW5pdCh2b2lkKTsKIGV4dGVybiBpbnQgcGNpX29scGNfaW5pdCh2b2lkKTsKK2V4dGVybiB2b2lkIF9faW5pdCBkbWlfY2hlY2tfcGNpcHJvYmUodm9pZCk7CitleHRlcm4gdm9pZCBfX2luaXQgZG1pX2NoZWNrX3NraXBfaXNhX2FsaWduKHZvaWQpOworCisvKiBzb21lIGNvbW1vbiB1c2VkIHN1YnN5c19pbml0Y2FsbHMgKi8KK2V4dGVybiBpbnQgX19pbml0IHBjaV9hY3BpX2luaXQodm9pZCk7CitleHRlcm4gaW50IF9faW5pdCBwY2liaW9zX2lycV9pbml0KHZvaWQpOworZXh0ZXJuIGludCBfX2luaXQgcGNpX251bWFfaW5pdCh2b2lkKTsKK2V4dGVybiBpbnQgX19pbml0IHBjaWJpb3NfaW5pdCh2b2lkKTsKIAogLyogcGNpLW1tY29uZmlnLmMgKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL3Zpc3dzLmMgYi9hcmNoL3g4Ni9wY2kvdmlzd3MuYwppbmRleCBjMmRmNGU5Li4xYTdiZWQ0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wY2kvdmlzd3MuYworKysgYi9hcmNoL3g4Ni9wY2kvdmlzd3MuYwpAQCAtOCwxOCArOCwxOSBAQAogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAotI2luY2x1ZGUgImNvYmFsdC5oIgotI2luY2x1ZGUgImxpdGhpdW0uaCIKKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vdmlzd3MvY29iYWx0Lmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL2xpdGhpdW0uaD4KIAogI2luY2x1ZGUgInBjaS5oIgogCiBzdGF0aWMgaW50IHBjaV92aXN3c19lbmFibGVfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgcmV0dXJuIDA7IH0KIHN0YXRpYyB2b2lkIHBjaV92aXN3c19kaXNhYmxlX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7IH0KIAotaW50ICgqcGNpYmlvc19lbmFibGVfaXJxKShzdHJ1Y3QgcGNpX2RldiAqZGV2KSA9ICZwY2lfdmlzd3NfZW5hYmxlX2lycTsKLXZvaWQgKCpwY2liaW9zX2Rpc2FibGVfaXJxKShzdHJ1Y3QgcGNpX2RldiAqZGV2KSA9ICZwY2lfdmlzd3NfZGlzYWJsZV9pcnE7CisvKiBpbnQgKCpwY2liaW9zX2VuYWJsZV9pcnEpKHN0cnVjdCBwY2lfZGV2ICpkZXYpID0gJnBjaV92aXN3c19lbmFibGVfaXJxOyAqLworLyogdm9pZCAoKnBjaWJpb3NfZGlzYWJsZV9pcnEpKHN0cnVjdCBwY2lfZGV2ICpkZXYpID0gJnBjaV92aXN3c19kaXNhYmxlX2lycTsgKi8KIAotdm9pZCBfX2luaXQgcGNpYmlvc19wZW5hbGl6ZV9pc2FfaXJxKGludCBpcnEsIGludCBhY3RpdmUpIHt9CisvKiB2b2lkIF9faW5pdCBwY2liaW9zX3BlbmFsaXplX2lzYV9pcnEoaW50IGlycSwgaW50IGFjdGl2ZSkge30gKi8KIAogCiB1bnNpZ25lZCBpbnQgcGNpX2J1czAsIHBjaV9idXMxOwpAQCAtODUsNyArODYsNyBAQAogCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYsIFBDSV9JTlRFUlJVUFRfTElORSwgaXJxKTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgcGNpYmlvc19pbml0KHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBwY2lfdmlzd3NfaW5pdCh2b2lkKQogewogCS8qIFRoZSBWSVNXUyBzdXBwb3J0cyBjb25maWd1cmF0aW9uIGFjY2VzcyB0eXBlIDEgb25seSAqLwogCXBjaV9wcm9iZSA9IChwY2lfcHJvYmUgfCBQQ0lfUFJPQkVfQ09ORjEpICYKQEAgLTEwNSw0ICsxMDYsMTcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3Vic3lzX2luaXRjYWxsKHBjaWJpb3NfaW5pdCk7CitzdGF0aWMgX19pbml0IGludCBwY2lfc3Vic3lzX2luaXQodm9pZCkKK3sKKwlpZiAoIWlzX3Zpc3dzX2JveCgpKQorCQlyZXR1cm4gLTE7CisKKwlwY2liaW9zX2VuYWJsZV9pcnEgPSAmcGNpX3Zpc3dzX2VuYWJsZV9pcnE7CisJcGNpYmlvc19kaXNhYmxlX2lycSA9ICZwY2lfdmlzd3NfZGlzYWJsZV9pcnE7CisKKwlwY2lfdmlzd3NfaW5pdCgpOworCXBjaWJpb3NfaW5pdCgpOworCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwocGNpX3N1YnN5c19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV82NC5jIGIvYXJjaC94ODYvcG93ZXIvaGliZXJuYXRlXzY0LmMKaW5kZXggYjU0MjM1NS4uNmRkMDAwZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcG93ZXIvaGliZXJuYXRlXzY0LmMKKysrIGIvYXJjaC94ODYvcG93ZXIvaGliZXJuYXRlXzY0LmMKQEAgLTgzLDcgKzgzLDcgQEAKIAogCS8qIFNldCB1cCB0aGUgZGlyZWN0IG1hcHBpbmcgZnJvbSBzY3JhdGNoICovCiAJc3RhcnQgPSAodW5zaWduZWQgbG9uZylwZm5fdG9fa2FkZHIoMCk7Ci0JZW5kID0gKHVuc2lnbmVkIGxvbmcpcGZuX3RvX2thZGRyKGVuZF9wZm4pOworCWVuZCA9ICh1bnNpZ25lZCBsb25nKXBmbl90b19rYWRkcihtYXhfcGZuKTsKIAogCWZvciAoOyBzdGFydCA8IGVuZDsgc3RhcnQgPSBuZXh0KSB7CiAJCXB1ZF90ICpwdWQgPSAocHVkX3QgKilnZXRfc2FmZV9wYWdlKEdGUF9BVE9NSUMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvdmRzby92Y2xvY2tfZ2V0dGltZS5jIGIvYXJjaC94ODYvdmRzby92Y2xvY2tfZ2V0dGltZS5jCmluZGV4IGVmYTJiYTcuLjFlZjBmOTAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3Zkc28vdmNsb2NrX2dldHRpbWUuYworKysgYi9hcmNoL3g4Ni92ZHNvL3ZjbG9ja19nZXR0aW1lLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2RlZmluZSBndG9kIHZkc29fdnN5c2NhbGxfZ3RvZF9kYXRhCiAKLXN0YXRpYyBsb25nIHZkc29fZmFsbGJhY2tfZ2V0dGltZShsb25nIGNsb2NrLCBzdHJ1Y3QgdGltZXNwZWMgKnRzKQorbm90cmFjZSBzdGF0aWMgbG9uZyB2ZHNvX2ZhbGxiYWNrX2dldHRpbWUobG9uZyBjbG9jaywgc3RydWN0IHRpbWVzcGVjICp0cykKIHsKIAlsb25nIHJldDsKIAlhc20oInN5c2NhbGwiIDogIj1hIiAocmV0KSA6CkBAIC0zMSw3ICszMSw3IEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGlubGluZSBsb25nIHZnZXRucyh2b2lkKQorbm90cmFjZSBzdGF0aWMgaW5saW5lIGxvbmcgdmdldG5zKHZvaWQpCiB7CiAJbG9uZyB2OwogCWN5Y2xlc190ICgqdnJlYWQpKHZvaWQpOwpAQCAtNDAsNyArNDAsNyBAQAogCXJldHVybiAodiAqIGd0b2QtPmNsb2NrLm11bHQpID4+IGd0b2QtPmNsb2NrLnNoaWZ0OwogfQogCi1zdGF0aWMgbm9pbmxpbmUgaW50IGRvX3JlYWx0aW1lKHN0cnVjdCB0aW1lc3BlYyAqdHMpCitub3RyYWNlIHN0YXRpYyBub2lubGluZSBpbnQgZG9fcmVhbHRpbWUoc3RydWN0IHRpbWVzcGVjICp0cykKIHsKIAl1bnNpZ25lZCBsb25nIHNlcSwgbnM7CiAJZG8gewpAQCAtNTQsNyArNTQsOCBAQAogfQogCiAvKiBDb3B5IG9mIHRoZSB2ZXJzaW9uIGluIGtlcm5lbC90aW1lLmMgd2hpY2ggd2UgY2Fubm90IGRpcmVjdGx5IGFjY2VzcyAqLwotc3RhdGljIHZvaWQgdnNldF9ub3JtYWxpemVkX3RpbWVzcGVjKHN0cnVjdCB0aW1lc3BlYyAqdHMsIGxvbmcgc2VjLCBsb25nIG5zZWMpCitub3RyYWNlIHN0YXRpYyB2b2lkCit2c2V0X25vcm1hbGl6ZWRfdGltZXNwZWMoc3RydWN0IHRpbWVzcGVjICp0cywgbG9uZyBzZWMsIGxvbmcgbnNlYykKIHsKIAl3aGlsZSAobnNlYyA+PSBOU0VDX1BFUl9TRUMpIHsKIAkJbnNlYyAtPSBOU0VDX1BFUl9TRUM7CkBAIC02OCw3ICs2OSw3IEBACiAJdHMtPnR2X25zZWMgPSBuc2VjOwogfQogCi1zdGF0aWMgbm9pbmxpbmUgaW50IGRvX21vbm90b25pYyhzdHJ1Y3QgdGltZXNwZWMgKnRzKQorbm90cmFjZSBzdGF0aWMgbm9pbmxpbmUgaW50IGRvX21vbm90b25pYyhzdHJ1Y3QgdGltZXNwZWMgKnRzKQogewogCXVuc2lnbmVkIGxvbmcgc2VxLCBucywgc2VjczsKIAlkbyB7CkBAIC04Miw3ICs4Myw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLWludCBfX3Zkc29fY2xvY2tfZ2V0dGltZShjbG9ja2lkX3QgY2xvY2ssIHN0cnVjdCB0aW1lc3BlYyAqdHMpCitub3RyYWNlIGludCBfX3Zkc29fY2xvY2tfZ2V0dGltZShjbG9ja2lkX3QgY2xvY2ssIHN0cnVjdCB0aW1lc3BlYyAqdHMpCiB7CiAJaWYgKGxpa2VseShndG9kLT5zeXNjdGxfZW5hYmxlZCAmJiBndG9kLT5jbG9jay52cmVhZCkpCiAJCXN3aXRjaCAoY2xvY2spIHsKQEAgLTk2LDcgKzk3LDcgQEAKIGludCBjbG9ja19nZXR0aW1lKGNsb2NraWRfdCwgc3RydWN0IHRpbWVzcGVjICopCiAJX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIl9fdmRzb19jbG9ja19nZXR0aW1lIikpKTsKIAotaW50IF9fdmRzb19nZXR0aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwgKnR2LCBzdHJ1Y3QgdGltZXpvbmUgKnR6KQorbm90cmFjZSBpbnQgX192ZHNvX2dldHRpbWVvZmRheShzdHJ1Y3QgdGltZXZhbCAqdHYsIHN0cnVjdCB0aW1lem9uZSAqdHopCiB7CiAJbG9uZyByZXQ7CiAJaWYgKGxpa2VseShndG9kLT5zeXNjdGxfZW5hYmxlZCAmJiBndG9kLT5jbG9jay52cmVhZCkpIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3Zkc28vdmRzbzMyLXNldHVwLmMgYi9hcmNoL3g4Ni92ZHNvL3Zkc28zMi1zZXR1cC5jCmluZGV4IGNmMDU4ZmUuLjBiY2U1NDIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3Zkc28vdmRzbzMyLXNldHVwLmMKKysrIGIvYXJjaC94ODYvdmRzby92ZHNvMzItc2V0dXAuYwpAQCAtMjAzLDIwICsyMDMsMTEgQEAKIAogI2lmZGVmIENPTkZJR19YODZfNjQKIAotc3RhdGljIGludCB1c2Vfc3lzZW50ZXIgX19yZWFkX21vc3RseSA9IC0xOwotCi0jZGVmaW5lCXZkc28zMl9zeXNlbnRlcigpCSh1c2Vfc3lzZW50ZXIgPiAwKQorI2RlZmluZQl2ZHNvMzJfc3lzZW50ZXIoKQkoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1NZU0VOVEVSMzIpKQogCiAvKiBNYXkgbm90IGJlIF9faW5pdDogY2FsbGVkIGR1cmluZyByZXN1bWUgKi8KIHZvaWQgc3lzY2FsbDMyX2NwdV9pbml0KHZvaWQpCiB7Ci0JaWYgKHVzZV9zeXNlbnRlciA8IDApIHsKLQkJaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0lOVEVMKQotCQkJdXNlX3N5c2VudGVyID0gMTsKLQkJaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0NFTlRBVVIpCi0JCQl1c2Vfc3lzZW50ZXIgPSAxOwotCX0KLQogCS8qIExvYWQgdGhlc2UgYWx3YXlzIGluIGNhc2Ugc29tZSBmdXR1cmUgQU1EIENQVSBzdXBwb3J0cwogCSAgIFNZU0VOVEVSIGZyb20gY29tcGF0IG1vZGUgdG9vLiAqLwogCWNoZWNraW5nX3dybXNybChNU1JfSUEzMl9TWVNFTlRFUl9DUywgKHU2NClfX0tFUk5FTF9DUyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni92ZHNvL3ZnZXRjcHUuYyBiL2FyY2gveDg2L3Zkc28vdmdldGNwdS5jCmluZGV4IGM4MDk3ZjEuLjlmYmM2YjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3Zkc28vdmdldGNwdS5jCisrKyBiL2FyY2gveDg2L3Zkc28vdmdldGNwdS5jCkBAIC0xMyw3ICsxMyw4IEBACiAjaW5jbHVkZSA8YXNtL3ZndG9kLmg+CiAjaW5jbHVkZSAidmV4dGVybi5oIgogCi1sb25nIF9fdmRzb19nZXRjcHUodW5zaWduZWQgKmNwdSwgdW5zaWduZWQgKm5vZGUsIHN0cnVjdCBnZXRjcHVfY2FjaGUgKnVudXNlZCkKK25vdHJhY2UgbG9uZworX192ZHNvX2dldGNwdSh1bnNpZ25lZCAqY3B1LCB1bnNpZ25lZCAqbm9kZSwgc3RydWN0IGdldGNwdV9jYWNoZSAqdW51c2VkKQogewogCXVuc2lnbmVkIGludCBwOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni92ZHNvL3ZtYS5jIGIvYXJjaC94ODYvdmRzby92bWEuYwppbmRleCAzZmRkNTE0Li4xOWE2Y2ZhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni92ZHNvL3ZtYS5jCisrKyBiL2FyY2gveDg2L3Zkc28vdm1hLmMKQEAgLTE2LDcgKzE2LDcgQEAKICNpbmNsdWRlICJ2ZXh0ZXJuLmgiCQkvKiBKdXN0IGZvciBWTUFHSUMuICAqLwogI3VuZGVmIFZFWFRFUk4KIAotaW50IHZkc29fZW5hYmxlZCA9IDE7Cit1bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSB2ZHNvX2VuYWJsZWQgPSAxOwogCiBleHRlcm4gY2hhciB2ZHNvX3N0YXJ0W10sIHZkc29fZW5kW107CiBleHRlcm4gdW5zaWduZWQgc2hvcnQgdmRzb19zeW5jX2NwdWlkOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL0tjb25maWcgYi9hcmNoL3g4Ni94ZW4vS2NvbmZpZwppbmRleCA2YzM4OGU1Li5jMmNjOTk1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vS2NvbmZpZworKysgYi9hcmNoL3g4Ni94ZW4vS2NvbmZpZwpAQCAtMTIsMyArMTIsMTMgQEAKIAkgIFRoaXMgaXMgdGhlIExpbnV4IFhlbiBwb3J0LiAgRW5hYmxpbmcgdGhpcyB3aWxsIGFsbG93IHRoZQogCSAga2VybmVsIHRvIGJvb3QgaW4gYSBwYXJhdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5kZXIgdGhlCiAJICBYZW4gaHlwZXJ2aXNvci4KKworY29uZmlnIFhFTl9NQVhfRE9NQUlOX01FTU9SWQorICAgICAgIGludCAiTWF4aW11bSBhbGxvd2VkIHNpemUgb2YgYSBkb21haW4gaW4gZ2lnYWJ5dGVzIgorICAgICAgIGRlZmF1bHQgOAorICAgICAgIGRlcGVuZHMgb24gWEVOCisgICAgICAgaGVscAorICAgICAgICAgVGhlIHBzZXVkby1waHlzaWNhbCB0byBtYWNoaW5lIGFkZHJlc3MgYXJyYXkgaXMgc2l6ZWQKKyAgICAgICAgIGFjY29yZGluZyB0byB0aGUgbWF4aW11bSBwb3NzaWJsZSBtZW1vcnkgc2l6ZSBvZiBhIFhlbgorICAgICAgICAgZG9tYWluLiAgVGhpcyBhcnJheSB1c2VzIDEgcGFnZSBwZXIgZ2lnYWJ5dGUsIHNvIHRoZXJlJ3Mgbm8KKyAgICAgICAgIG5lZWQgdG8gYmUgdG9vIHN0aW5neSBoZXJlLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9NYWtlZmlsZSBiL2FyY2gveDg2L3hlbi9NYWtlZmlsZQppbmRleCAzZDhkZjk4Li4yYmEyZDE2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vTWFrZWZpbGUKKysrIGIvYXJjaC94ODYveGVuL01ha2VmaWxlCkBAIC0xLDQgKzEsNCBAQAogb2JqLXkJCTo9IGVubGlnaHRlbi5vIHNldHVwLm8gbXVsdGljYWxscy5vIG1tdS5vIFwKLQkJCXRpbWUubyBtYW5hZ2UubyB4ZW4tYXNtLm8gZ3JhbnQtdGFibGUubworCQkJdGltZS5vIHhlbi1hc20ubyBncmFudC10YWJsZS5vIHN1c3BlbmQubwogCiBvYmotJChDT05GSUdfU01QKQkrPSBzbXAubwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jCmluZGV4IDhlMzE3NzguLmJiNTA4NDUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYworKysgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS9yZWJvb3QuaD4KKyNpbmNsdWRlIDxhc20vcGdhbGxvYy5oPgogCiAjaW5jbHVkZSAieGVuLW9wcy5oIgogI2luY2x1ZGUgIm1tdS5oIgpAQCAtNzUsMTMgKzc2LDEzIEBACiBzdHJ1Y3Qgc3RhcnRfaW5mbyAqeGVuX3N0YXJ0X2luZm87CiBFWFBPUlRfU1lNQk9MX0dQTCh4ZW5fc3RhcnRfaW5mbyk7CiAKLXN0YXRpYyAvKiBfX2luaXRkYXRhICovIHN0cnVjdCBzaGFyZWRfaW5mbyBkdW1teV9zaGFyZWRfaW5mbzsKK3N0cnVjdCBzaGFyZWRfaW5mbyB4ZW5fZHVtbXlfc2hhcmVkX2luZm87CiAKIC8qCiAgKiBQb2ludCBhdCBzb21lIGVtcHR5IG1lbW9yeSB0byBzdGFydCB3aXRoLiBXZSBtYXAgdGhlIHJlYWwgc2hhcmVkX2luZm8KICAqIHBhZ2UgYXMgc29vbiBhcyBmaXhtYXAgaXMgdXAgYW5kIHJ1bm5pbmcuCiAgKi8KLXN0cnVjdCBzaGFyZWRfaW5mbyAqSFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9ICh2b2lkICopJmR1bW15X3NoYXJlZF9pbmZvOworc3RydWN0IHNoYXJlZF9pbmZvICpIWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gKHZvaWQgKikmeGVuX2R1bW15X3NoYXJlZF9pbmZvOwogCiAvKgogICogRmxhZyB0byBkZXRlcm1pbmUgd2hldGhlciB2Y3B1IGluZm8gcGxhY2VtZW50IGlzIGF2YWlsYWJsZSBvbiBhbGwKQEAgLTk4LDEzICs5OSwxMyBAQAogICovCiBzdGF0aWMgaW50IGhhdmVfdmNwdV9pbmZvX3BsYWNlbWVudCA9IDE7CiAKLXN0YXRpYyB2b2lkIF9faW5pdCB4ZW5fdmNwdV9zZXR1cChpbnQgY3B1KQorc3RhdGljIHZvaWQgeGVuX3ZjcHVfc2V0dXAoaW50IGNwdSkKIHsKIAlzdHJ1Y3QgdmNwdV9yZWdpc3Rlcl92Y3B1X2luZm8gaW5mbzsKIAlpbnQgZXJyOwogCXN0cnVjdCB2Y3B1X2luZm8gKnZjcHVwOwogCi0JQlVHX09OKEhZUEVSVklTT1Jfc2hhcmVkX2luZm8gPT0gJmR1bW15X3NoYXJlZF9pbmZvKTsKKwlCVUdfT04oSFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9PSAmeGVuX2R1bW15X3NoYXJlZF9pbmZvKTsKIAlwZXJfY3B1KHhlbl92Y3B1LCBjcHUpID0gJkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPnZjcHVfaW5mb1tjcHVdOwogCiAJaWYgKCFoYXZlX3ZjcHVfaW5mb19wbGFjZW1lbnQpCkBAIC0xMzYsMTEgKzEzNyw0MSBAQAogCX0KIH0KIAorLyoKKyAqIE9uIHJlc3RvcmUsIHNldCB0aGUgdmNwdSBwbGFjZW1lbnQgdXAgYWdhaW4uCisgKiBJZiBpdCBmYWlscywgdGhlbiB3ZSdyZSBpbiBhIGJhZCBzdGF0ZSwgc2luY2UKKyAqIHdlIGNhbid0IGJhY2sgb3V0IGZyb20gdXNpbmcgaXQuLi4KKyAqLwordm9pZCB4ZW5fdmNwdV9yZXN0b3JlKHZvaWQpCit7CisJaWYgKGhhdmVfdmNwdV9pbmZvX3BsYWNlbWVudCkgeworCQlpbnQgY3B1OworCisJCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CisJCQlib29sIG90aGVyX2NwdSA9IChjcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKworCQkJaWYgKG90aGVyX2NwdSAmJgorCQkJICAgIEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1BfZG93biwgY3B1LCBOVUxMKSkKKwkJCQlCVUcoKTsKKworCQkJeGVuX3ZjcHVfc2V0dXAoY3B1KTsKKworCQkJaWYgKG90aGVyX2NwdSAmJgorCQkJICAgIEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1BfdXAsIGNwdSwgTlVMTCkpCisJCQkJQlVHKCk7CisJCX0KKworCQlCVUdfT04oIWhhdmVfdmNwdV9pbmZvX3BsYWNlbWVudCk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBfX2luaXQgeGVuX2Jhbm5lcih2b2lkKQogewogCXByaW50ayhLRVJOX0lORk8gIkJvb3RpbmcgcGFyYXZpcnR1YWxpemVkIGtlcm5lbCBvbiAlc1xuIiwKIAkgICAgICAgcHZfaW5mby5uYW1lKTsKLQlwcmludGsoS0VSTl9JTkZPICJIeXBlcnZpc29yIHNpZ25hdHVyZTogJXNcbiIsIHhlbl9zdGFydF9pbmZvLT5tYWdpYyk7CisJcHJpbnRrKEtFUk5fSU5GTyAiSHlwZXJ2aXNvciBzaWduYXR1cmU6ICVzJXNcbiIsCisJICAgICAgIHhlbl9zdGFydF9pbmZvLT5tYWdpYywKKwkgICAgICAgeGVuX2ZlYXR1cmUoWEVORkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNlcnZlX2FkKSA/ICIgKHByZXNlcnZlLUFEKSIgOiAiIik7CiB9CiAKIHN0YXRpYyB2b2lkIHhlbl9jcHVpZCh1bnNpZ25lZCBpbnQgKmF4LCB1bnNpZ25lZCBpbnQgKmJ4LApAQCAtMjM1LDEzICsyNjYsMTMgQEAKIHsKIAlzdHJ1Y3QgdmNwdV9pbmZvICp2Y3B1OwogCi0JLyogVGhlcmUncyBhIG9uZSBpbnN0cnVjdGlvbiBwcmVlbXB0IHdpbmRvdyBoZXJlLiAgV2UgbmVlZCB0bwotCSAgIG1ha2Ugc3VyZSB3ZSdyZSBkb24ndCBzd2l0Y2ggQ1BVcyBiZXR3ZWVuIGdldHRpbmcgdGhlIHZjcHUKLQkgICBwb2ludGVyIGFuZCB1cGRhdGluZyB0aGUgbWFzay4gKi8KLQlwcmVlbXB0X2Rpc2FibGUoKTsKKwkvKiBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGJlaW5nIHByZWVtcHRlZCBoZXJlLCBzaW5jZQorCSAgIGVpdGhlciBhKSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCwgc28gbm8gcHJlZW1wdGlvbiwgb3IgYikKKwkgICB0aGUgY2FsbGVyIGlzIGNvbmZ1c2VkIGFuZCBpcyB0cnlpbmcgdG8gcmUtZW5hYmxlIGludGVycnVwdHMKKwkgICBvbiBhbiBpbmRldGVybWluYXRlIHByb2Nlc3Nvci4gKi8KKwogCXZjcHUgPSB4ODZfcmVhZF9wZXJjcHUoeGVuX3ZjcHUpOwogCXZjcHUtPmV2dGNobl91cGNhbGxfbWFzayA9IDA7Ci0JcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZCgpOwogCiAJLyogRG9lc24ndCBtYXR0ZXIgaWYgd2UgZ2V0IHByZWVtcHRlZCBoZXJlLCBiZWNhdXNlIGFueQogCSAgIHBlbmRpbmcgZXZlbnQgd2lsbCBnZXQgZGVhbHQgd2l0aCBhbnl3YXkuICovCkBAIC0yNTQsNyArMjg1LDcgQEAKIHN0YXRpYyB2b2lkIHhlbl9zYWZlX2hhbHQodm9pZCkKIHsKIAkvKiBCbG9ja2luZyBpbmNsdWRlcyBhbiBpbXBsaWNpdCBsb2NhbF9pcnFfZW5hYmxlKCkuICovCi0JaWYgKEhZUEVSVklTT1Jfc2NoZWRfb3AoU0NIRURPUF9ibG9jaywgMCkgIT0gMCkKKwlpZiAoSFlQRVJWSVNPUl9zY2hlZF9vcChTQ0hFRE9QX2Jsb2NrLCBOVUxMKSAhPSAwKQogCQlCVUcoKTsKIH0KIApAQCAtNjA3LDYgKzYzOCwzMCBAQAogCXhlbl9tY19pc3N1ZShQQVJBVklSVF9MQVpZX01NVSk7CiB9CiAKK3N0YXRpYyB2b2lkIHhlbl9jbHRzKHZvaWQpCit7CisJc3RydWN0IG11bHRpY2FsbF9zcGFjZSBtY3M7CisKKwltY3MgPSB4ZW5fbWNfZW50cnkoMCk7CisKKwlNVUxUSV9mcHVfdGFza3N3aXRjaChtY3MubWMsIDApOworCisJeGVuX21jX2lzc3VlKFBBUkFWSVJUX0xBWllfQ1BVKTsKK30KKworc3RhdGljIHZvaWQgeGVuX3dyaXRlX2NyMCh1bnNpZ25lZCBsb25nIGNyMCkKK3sKKwlzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIG1jczsKKworCS8qIE9ubHkgcGF5IGF0dGVudGlvbiB0byBjcjAuVFM7IGV2ZXJ5dGhpbmcgZWxzZSBpcworCSAgIGlnbm9yZWQuICovCisJbWNzID0geGVuX21jX2VudHJ5KDApOworCisJTVVMVElfZnB1X3Rhc2tzd2l0Y2gobWNzLm1jLCAoY3IwICYgWDg2X0NSMF9UUykgIT0gMCk7CisKKwl4ZW5fbWNfaXNzdWUoUEFSQVZJUlRfTEFaWV9DUFUpOworfQorCiBzdGF0aWMgdm9pZCB4ZW5fd3JpdGVfY3IyKHVuc2lnbmVkIGxvbmcgY3IyKQogewogCXg4Nl9yZWFkX3BlcmNwdSh4ZW5fdmNwdSktPmFyY2guY3IyID0gY3IyOwpAQCAtNjI0LDggKzY3OSwxMCBAQAogCiBzdGF0aWMgdm9pZCB4ZW5fd3JpdGVfY3I0KHVuc2lnbmVkIGxvbmcgY3I0KQogewotCS8qIEp1c3QgaWdub3JlIGNyNCBjaGFuZ2VzOyBYZW4gZG9lc24ndCBhbGxvdyB1cyB0byBkbwotCSAgIGFueXRoaW5nIGFueXdheS4gKi8KKwljcjQgJj0gflg4Nl9DUjRfUEdFOworCWNyNCAmPSB+WDg2X0NSNF9QU0U7CisKKwluYXRpdmVfd3JpdGVfY3I0KGNyNCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIHhlbl9yZWFkX2NyMyh2b2lkKQpAQCAtODMxLDcgKzg4OCw3IEBACiAJCQkgIFBGTl9ET1dOKF9fcGEoeGVuX3N0YXJ0X2luZm8tPnB0X2Jhc2UpKSk7CiB9CiAKLXN0YXRpYyBfX2luaXQgdm9pZCBzZXR1cF9zaGFyZWRfaW5mbyh2b2lkKQordm9pZCB4ZW5fc2V0dXBfc2hhcmVkX2luZm8odm9pZCkKIHsKIAlpZiAoIXhlbl9mZWF0dXJlKFhFTkZFQVRfYXV0b190cmFuc2xhdGVkX3BoeXNtYXApKSB7CiAJCXVuc2lnbmVkIGxvbmcgYWRkciA9IGZpeF90b192aXJ0KEZJWF9QQVJBVklSVF9CT09UTUFQKTsKQEAgLTg1NCw2ICs5MTEsOCBAQAogCS8qIEluIFVQIHRoaXMgaXMgYXMgZ29vZCBhIHBsYWNlIGFzIGFueSB0byBzZXQgdXAgc2hhcmVkIGluZm8gKi8KIAl4ZW5fc2V0dXBfdmNwdV9pbmZvX3BsYWNlbWVudCgpOwogI2VuZGlmCisKKwl4ZW5fc2V0dXBfbWZuX2xpc3RfbGlzdCgpOwogfQogCiBzdGF0aWMgX19pbml0IHZvaWQgeGVuX3BhZ2V0YWJsZV9zZXR1cF9kb25lKHBnZF90ICpiYXNlKQpAQCAtODY2LDE1ICs5MjUsMjMgQEAKIAlwdl9tbXVfb3BzLnJlbGVhc2VfcG1kID0geGVuX3JlbGVhc2VfcG1kOwogCXB2X21tdV9vcHMuc2V0X3B0ZSA9IHhlbl9zZXRfcHRlOwogCi0Jc2V0dXBfc2hhcmVkX2luZm8oKTsKKwl4ZW5fc2V0dXBfc2hhcmVkX2luZm8oKTsKIAogCS8qIEFjdHVhbGx5IHBpbiB0aGUgcGFnZXRhYmxlIGRvd24sIGJ1dCB3ZSBjYW4ndCBzZXQgUEdfcGlubmVkCiAJICAgeWV0IGJlY2F1c2UgdGhlIHBhZ2Ugc3RydWN0dXJlcyBkb24ndCBleGlzdCB5ZXQuICovCiAJcGluX3BhZ2V0YWJsZV9wZm4oTU1VRVhUX1BJTl9MM19UQUJMRSwgUEZOX0RPV04oX19wYShiYXNlKSkpOwogfQogCitzdGF0aWMgX19pbml0IHZvaWQgeGVuX3Bvc3RfYWxsb2NhdG9yX2luaXQodm9pZCkKK3sKKwlwdl9tbXVfb3BzLnNldF9wbWQgPSB4ZW5fc2V0X3BtZDsKKwlwdl9tbXVfb3BzLnNldF9wdWQgPSB4ZW5fc2V0X3B1ZDsKKworCXhlbl9tYXJrX2luaXRfbW1fcGlubmVkKCk7Cit9CisKIC8qIFRoaXMgaXMgY2FsbGVkIG9uY2Ugd2UgaGF2ZSB0aGUgY3B1X3Bvc3NpYmxlX21hcCAqLwotdm9pZCBfX2luaXQgeGVuX3NldHVwX3ZjcHVfaW5mb19wbGFjZW1lbnQodm9pZCkKK3ZvaWQgeGVuX3NldHVwX3ZjcHVfaW5mb19wbGFjZW1lbnQodm9pZCkKIHsKIAlpbnQgY3B1OwogCkBAIC05NDcsNiArMTAxNCwzMyBAQAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIHhlbl9zZXRfZml4bWFwKHVuc2lnbmVkIGlkeCwgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBwcm90KQoreworCXB0ZV90IHB0ZTsKKworCXBoeXMgPj49IFBBR0VfU0hJRlQ7CisKKwlzd2l0Y2ggKGlkeCkgeworCWNhc2UgRklYX0JUTUFQX0VORCAuLi4gRklYX0JUTUFQX0JFR0lOOgorI2lmZGVmIENPTkZJR19YODZfRjAwRl9CVUcKKwljYXNlIEZJWF9GMDBGX0lEVDoKKyNlbmRpZgorCWNhc2UgRklYX1dQX1RFU1Q6CisJY2FzZSBGSVhfVkRTTzoKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwljYXNlIEZJWF9BUElDX0JBU0U6CS8qIG1hcHMgZHVtbXkgbG9jYWwgQVBJQyAqLworI2VuZGlmCisJCXB0ZSA9IHBmbl9wdGUocGh5cywgcHJvdCk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcHRlID0gbWZuX3B0ZShwaHlzLCBwcm90KTsKKwkJYnJlYWs7CisJfQorCisJX19uYXRpdmVfc2V0X2ZpeG1hcChpZHgsIHB0ZSk7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHZfaW5mbyB4ZW5faW5mbyBfX2luaXRkYXRhID0gewogCS5wYXJhdmlydF9lbmFibGVkID0gMSwKIAkuc2hhcmVkX2tlcm5lbF9wbWQgPSAwLApAQCAtOTYwLDcgKzEwNTQsNyBAQAogCS5iYW5uZXIgPSB4ZW5fYmFubmVyLAogCS5tZW1vcnlfc2V0dXAgPSB4ZW5fbWVtb3J5X3NldHVwLAogCS5hcmNoX3NldHVwID0geGVuX2FyY2hfc2V0dXAsCi0JLnBvc3RfYWxsb2NhdG9yX2luaXQgPSB4ZW5fbWFya19pbml0X21tX3Bpbm5lZCwKKwkucG9zdF9hbGxvY2F0b3JfaW5pdCA9IHhlbl9wb3N0X2FsbG9jYXRvcl9pbml0LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwdl90aW1lX29wcyB4ZW5fdGltZV9vcHMgX19pbml0ZGF0YSA9IHsKQEAgLTk2OCw3ICsxMDYyLDcgQEAKIAogCS5zZXRfd2FsbGNsb2NrID0geGVuX3NldF93YWxsY2xvY2ssCiAJLmdldF93YWxsY2xvY2sgPSB4ZW5fZ2V0X3dhbGxjbG9jaywKLQkuZ2V0X2NwdV9raHogPSB4ZW5fY3B1X2toeiwKKwkuZ2V0X3RzY19raHogPSB4ZW5fdHNjX2toeiwKIAkuc2NoZWRfY2xvY2sgPSB4ZW5fc2NoZWRfY2xvY2ssCiB9OwogCkBAIC05NzgsMTAgKzEwNzIsMTAgQEAKIAkuc2V0X2RlYnVncmVnID0geGVuX3NldF9kZWJ1Z3JlZywKIAkuZ2V0X2RlYnVncmVnID0geGVuX2dldF9kZWJ1Z3JlZywKIAotCS5jbHRzID0gbmF0aXZlX2NsdHMsCisJLmNsdHMgPSB4ZW5fY2x0cywKIAogCS5yZWFkX2NyMCA9IG5hdGl2ZV9yZWFkX2NyMCwKLQkud3JpdGVfY3IwID0gbmF0aXZlX3dyaXRlX2NyMCwKKwkud3JpdGVfY3IwID0geGVuX3dyaXRlX2NyMCwKIAogCS5yZWFkX2NyNCA9IG5hdGl2ZV9yZWFkX2NyNCwKIAkucmVhZF9jcjRfc2FmZSA9IG5hdGl2ZV9yZWFkX2NyNF9zYWZlLApAQCAtOTk1LDcgKzEwODksNyBAQAogCS5yZWFkX3BtYyA9IG5hdGl2ZV9yZWFkX3BtYywKIAogCS5pcmV0ID0geGVuX2lyZXQsCi0JLmlycV9lbmFibGVfc3lzY2FsbF9yZXQgPSB4ZW5fc3lzZXhpdCwKKwkuaXJxX2VuYWJsZV9zeXNleGl0ID0geGVuX3N5c2V4aXQsCiAKIAkubG9hZF90cl9kZXNjID0gcGFyYXZpcnRfbm9wLAogCS5zZXRfbGR0ID0geGVuX3NldF9sZHQsCkBAIC0xMDI5LDYgKzExMjMsOSBAQAogCS5pcnFfZW5hYmxlID0geGVuX2lycV9lbmFibGUsCiAJLnNhZmVfaGFsdCA9IHhlbl9zYWZlX2hhbHQsCiAJLmhhbHQgPSB4ZW5faGFsdCwKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJLmFkanVzdF9leGNlcHRpb25fZnJhbWUgPSBwYXJhdmlydF9ub3AsCisjZW5kaWYKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHZfYXBpY19vcHMgeGVuX2FwaWNfb3BzIF9faW5pdGRhdGEgPSB7CkBAIC0xMDYwLDYgKzExNTcsOSBAQAogCS5wdGVfdXBkYXRlID0gcGFyYXZpcnRfbm9wLAogCS5wdGVfdXBkYXRlX2RlZmVyID0gcGFyYXZpcnRfbm9wLAogCisJLnBnZF9hbGxvYyA9IF9fcGFyYXZpcnRfcGdkX2FsbG9jLAorCS5wZ2RfZnJlZSA9IHBhcmF2aXJ0X25vcCwKKwogCS5hbGxvY19wdGUgPSB4ZW5fYWxsb2NfcHRlX2luaXQsCiAJLnJlbGVhc2VfcHRlID0geGVuX3JlbGVhc2VfcHRlX2luaXQsCiAJLmFsbG9jX3BtZCA9IHhlbl9hbGxvY19wdGVfaW5pdCwKQEAgLTEwNzIsOSArMTE3MiwxMyBAQAogCiAJLnNldF9wdGUgPSBOVUxMLAkvKiBzZWUgeGVuX3BhZ2V0YWJsZV9zZXR1cF8qICovCiAJLnNldF9wdGVfYXQgPSB4ZW5fc2V0X3B0ZV9hdCwKLQkuc2V0X3BtZCA9IHhlbl9zZXRfcG1kLAorCS5zZXRfcG1kID0geGVuX3NldF9wbWRfaHlwZXIsCisKKwkucHRlcF9tb2RpZnlfcHJvdF9zdGFydCA9IF9fcHRlcF9tb2RpZnlfcHJvdF9zdGFydCwKKwkucHRlcF9tb2RpZnlfcHJvdF9jb21taXQgPSBfX3B0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0LAogCiAJLnB0ZV92YWwgPSB4ZW5fcHRlX3ZhbCwKKwkucHRlX2ZsYWdzID0gbmF0aXZlX3B0ZV92YWwsCiAJLnBnZF92YWwgPSB4ZW5fcGdkX3ZhbCwKIAogCS5tYWtlX3B0ZSA9IHhlbl9tYWtlX3B0ZSwKQEAgLTEwODIsNyArMTE4Niw3IEBACiAKIAkuc2V0X3B0ZV9hdG9taWMgPSB4ZW5fc2V0X3B0ZV9hdG9taWMsCiAJLnNldF9wdGVfcHJlc2VudCA9IHhlbl9zZXRfcHRlX2F0LAotCS5zZXRfcHVkID0geGVuX3NldF9wdWQsCisJLnNldF9wdWQgPSB4ZW5fc2V0X3B1ZF9oeXBlciwKIAkucHRlX2NsZWFyID0geGVuX3B0ZV9jbGVhciwKIAkucG1kX2NsZWFyID0geGVuX3BtZF9jbGVhciwKIApAQCAtMTA5Nyw2ICsxMjAxLDggQEAKIAkJLmVudGVyID0gcGFyYXZpcnRfZW50ZXJfbGF6eV9tbXUsCiAJCS5sZWF2ZSA9IHhlbl9sZWF2ZV9sYXp5LAogCX0sCisKKwkuc2V0X2ZpeG1hcCA9IHhlbl9zZXRfZml4bWFwLAogfTsKIAogI2lmZGVmIENPTkZJR19TTVAKQEAgLTExMTYsMTEgKzEyMjIsMTMgQEAKIAogc3RhdGljIHZvaWQgeGVuX3JlYm9vdChpbnQgcmVhc29uKQogeworCXN0cnVjdCBzY2hlZF9zaHV0ZG93biByID0geyAucmVhc29uID0gcmVhc29uIH07CisKICNpZmRlZiBDT05GSUdfU01QCiAJc21wX3NlbmRfc3RvcCgpOwogI2VuZGlmCiAKLQlpZiAoSFlQRVJWSVNPUl9zY2hlZF9vcChTQ0hFRE9QX3NodXRkb3duLCByZWFzb24pKQorCWlmIChIWVBFUlZJU09SX3NjaGVkX29wKFNDSEVET1Bfc2h1dGRvd24sICZyKSkKIAkJQlVHKCk7CiB9CiAKQEAgLTExNzUsNiArMTI4Myw4IEBACiAKIAlCVUdfT04obWVtY21wKHhlbl9zdGFydF9pbmZvLT5tYWdpYywgInhlbi0zIiwgNSkgIT0gMCk7CiAKKwl4ZW5fc2V0dXBfZmVhdHVyZXMoKTsKKwogCS8qIEluc3RhbGwgWGVuIHBhcmF2aXJ0IG9wcyAqLwogCXB2X2luZm8gPSB4ZW5faW5mbzsKIAlwdl9pbml0X29wcyA9IHhlbl9pbml0X29wczsKQEAgLTExODQsMjEgKzEyOTQsMjYgQEAKIAlwdl9hcGljX29wcyA9IHhlbl9hcGljX29wczsKIAlwdl9tbXVfb3BzID0geGVuX21tdV9vcHM7CiAKKwlpZiAoeGVuX2ZlYXR1cmUoWEVORkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNlcnZlX2FkKSkgeworCQlwdl9tbXVfb3BzLnB0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQgPSB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9zdGFydDsKKwkJcHZfbW11X29wcy5wdGVwX21vZGlmeV9wcm90X2NvbW1pdCA9IHhlbl9wdGVwX21vZGlmeV9wcm90X2NvbW1pdDsKKwl9CisKIAltYWNoaW5lX29wcyA9IHhlbl9tYWNoaW5lX29wczsKIAogI2lmZGVmIENPTkZJR19TTVAKIAlzbXBfb3BzID0geGVuX3NtcF9vcHM7CiAjZW5kaWYKIAotCXhlbl9zZXR1cF9mZWF0dXJlcygpOwotCiAJLyogR2V0IG1mbiBsaXN0ICovCiAJaWYgKCF4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkKLQkJcGh5c190b19tYWNoaW5lX21hcHBpbmcgPSAodW5zaWduZWQgbG9uZyAqKXhlbl9zdGFydF9pbmZvLT5tZm5fbGlzdDsKKwkJeGVuX2J1aWxkX2R5bmFtaWNfcGh5c190b19tYWNoaW5lKCk7CiAKIAlwZ2QgPSAocGdkX3QgKil4ZW5fc3RhcnRfaW5mby0+cHRfYmFzZTsKIAorCWluaXRfcGdfdGFibGVzX3N0YXJ0ID0gX19wYShwZ2QpOwogCWluaXRfcGdfdGFibGVzX2VuZCA9IF9fcGEocGdkKSArIHhlbl9zdGFydF9pbmZvLT5ucl9wdF9mcmFtZXMqUEFHRV9TSVpFOworCW1heF9wZm5fbWFwcGVkID0gKGluaXRfcGdfdGFibGVzX2VuZCArIDUxMioxMDI0KSA+PiBQQUdFX1NISUZUOwogCiAJaW5pdF9tbS5wZ2QgPSBwZ2Q7IC8qIHVzZSB0aGUgWGVuIHBhZ2V0YWJsZXMgdG8gc3RhcnQgKi8KIApAQCAtMTIzNCw5ICsxMzQ5LDEyIEBACiAJCT8gX19wYSh4ZW5fc3RhcnRfaW5mby0+bW9kX3N0YXJ0KSA6IDA7CiAJYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfc2l6ZSA9IHhlbl9zdGFydF9pbmZvLT5tb2RfbGVuOwogCi0JaWYgKCFpc19pbml0aWFsX3hlbmRvbWFpbigpKQorCWlmICghaXNfaW5pdGlhbF94ZW5kb21haW4oKSkgeworCQlhZGRfcHJlZmVycmVkX2NvbnNvbGUoInhlbmJvb3QiLCAwLCBOVUxMKTsKKwkJYWRkX3ByZWZlcnJlZF9jb25zb2xlKCJ0dHkiLCAwLCBOVUxMKTsKIAkJYWRkX3ByZWZlcnJlZF9jb25zb2xlKCJodmMiLCAwLCBOVUxMKTsKKwl9CiAKIAkvKiBTdGFydCB0aGUgd29ybGQgKi8KLQlzdGFydF9rZXJuZWwoKTsKKwlpMzg2X3N0YXJ0X2tlcm5lbCgpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL21hbmFnZS5jIGIvYXJjaC94ODYveGVuL21hbmFnZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTdhZjllLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L3hlbi9tYW5hZ2UuYworKysgL2Rldi9udWxsCkBAIC0xLDE0MyArMCwwIEBACi0vKgotICogSGFuZGxlIGV4dGVybiByZXF1ZXN0cyBmb3Igc2h1dGRvd24sIHJlYm9vdCBhbmQgc3lzcnEKLSAqLwotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgotI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c3JxLmg+Ci0KLSNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+Ci0KLSNkZWZpbmUgU0hVVERPV05fSU5WQUxJRCAgLTEKLSNkZWZpbmUgU0hVVERPV05fUE9XRVJPRkYgIDAKLSNkZWZpbmUgU0hVVERPV05fU1VTUEVORCAgIDIKLS8qIENvZGUgMyBpcyBTSFVURE9XTl9DUkFTSCwgd2hpY2ggd2UgZG9uJ3QgdXNlIGJlY2F1c2UgdGhlIGRvbWFpbiBjYW4gb25seQotICogcmVwb3J0IGEgY3Jhc2gsIG5vdCBiZSBpbnN0cnVjdGVkIHRvIGNyYXNoIQotICogSEFMVCBpcyB0aGUgc2FtZSBhcyBQT1dFUk9GRiwgYXMgZmFyIGFzIHdlJ3JlIGNvbmNlcm5lZC4gIFRoZSB0b29scyB1c2UKLSAqIHRoZSBkaXN0aW5jdGlvbiB3aGVuIHdlIHJldHVybiB0aGUgcmVhc29uIGNvZGUgdG8gdGhlbS4KLSAqLwotI2RlZmluZSBTSFVURE9XTl9IQUxUICAgICAgNAotCi0vKiBJZ25vcmUgbXVsdGlwbGUgc2h1dGRvd24gcmVxdWVzdHMuICovCi1zdGF0aWMgaW50IHNodXR0aW5nX2Rvd24gPSBTSFVURE9XTl9JTlZBTElEOwotCi1zdGF0aWMgdm9pZCBzaHV0ZG93bl9oYW5kbGVyKHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLAotCQkJICAgICBjb25zdCBjaGFyICoqdmVjLCB1bnNpZ25lZCBpbnQgbGVuKQotewotCWNoYXIgKnN0cjsKLQlzdHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKLQlpbnQgZXJyOwotCi0JaWYgKHNodXR0aW5nX2Rvd24gIT0gU0hVVERPV05fSU5WQUxJRCkKLQkJcmV0dXJuOwotCi0gYWdhaW46Ci0JZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOwotCWlmIChlcnIpCi0JCXJldHVybjsKLQotCXN0ciA9IChjaGFyICopeGVuYnVzX3JlYWQoeGJ0LCAiY29udHJvbCIsICJzaHV0ZG93biIsIE5VTEwpOwotCS8qIElnbm9yZSByZWFkIGVycm9ycyBhbmQgZW1wdHkgcmVhZHMuICovCi0JaWYgKFhFTkJVU19JU19FUlJfUkVBRChzdHIpKSB7Ci0JCXhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAxKTsKLQkJcmV0dXJuOwotCX0KLQotCXhlbmJ1c193cml0ZSh4YnQsICJjb250cm9sIiwgInNodXRkb3duIiwgIiIpOwotCi0JZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDApOwotCWlmIChlcnIgPT0gLUVBR0FJTikgewotCQlrZnJlZShzdHIpOwotCQlnb3RvIGFnYWluOwotCX0KLQotCWlmIChzdHJjbXAoc3RyLCAicG93ZXJvZmYiKSA9PSAwIHx8Ci0JICAgIHN0cmNtcChzdHIsICJoYWx0IikgPT0gMCkKLQkJb3JkZXJseV9wb3dlcm9mZihmYWxzZSk7Ci0JZWxzZSBpZiAoc3RyY21wKHN0ciwgInJlYm9vdCIpID09IDApCi0JCWN0cmxfYWx0X2RlbCgpOwotCWVsc2UgewotCQlwcmludGsoS0VSTl9JTkZPICJJZ25vcmluZyBzaHV0ZG93biByZXF1ZXN0OiAlc1xuIiwgc3RyKTsKLQkJc2h1dHRpbmdfZG93biA9IFNIVVRET1dOX0lOVkFMSUQ7Ci0JfQotCi0Ja2ZyZWUoc3RyKTsKLX0KLQotc3RhdGljIHZvaWQgc3lzcnFfaGFuZGxlcihzdHJ1Y3QgeGVuYnVzX3dhdGNoICp3YXRjaCwgY29uc3QgY2hhciAqKnZlYywKLQkJCSAgdW5zaWduZWQgaW50IGxlbikKLXsKLQljaGFyIHN5c3JxX2tleSA9ICdcMCc7Ci0Jc3RydWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQ7Ci0JaW50IGVycjsKLQotIGFnYWluOgotCWVyciA9IHhlbmJ1c190cmFuc2FjdGlvbl9zdGFydCgmeGJ0KTsKLQlpZiAoZXJyKQotCQlyZXR1cm47Ci0JaWYgKCF4ZW5idXNfc2NhbmYoeGJ0LCAiY29udHJvbCIsICJzeXNycSIsICIlYyIsICZzeXNycV9rZXkpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiVW5hYmxlIHRvIHJlYWQgc3lzcnEgY29kZSBpbiAiCi0JCSAgICAgICAiY29udHJvbC9zeXNycVxuIik7Ci0JCXhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAxKTsKLQkJcmV0dXJuOwotCX0KLQotCWlmIChzeXNycV9rZXkgIT0gJ1wwJykKLQkJeGVuYnVzX3ByaW50Zih4YnQsICJjb250cm9sIiwgInN5c3JxIiwgIiVjIiwgJ1wwJyk7Ci0KLQllcnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fZW5kKHhidCwgMCk7Ci0JaWYgKGVyciA9PSAtRUFHQUlOKQotCQlnb3RvIGFnYWluOwotCi0JaWYgKHN5c3JxX2tleSAhPSAnXDAnKQotCQloYW5kbGVfc3lzcnEoc3lzcnFfa2V5LCBOVUxMKTsKLX0KLQotc3RhdGljIHN0cnVjdCB4ZW5idXNfd2F0Y2ggc2h1dGRvd25fd2F0Y2ggPSB7Ci0JLm5vZGUgPSAiY29udHJvbC9zaHV0ZG93biIsCi0JLmNhbGxiYWNrID0gc2h1dGRvd25faGFuZGxlcgotfTsKLQotc3RhdGljIHN0cnVjdCB4ZW5idXNfd2F0Y2ggc3lzcnFfd2F0Y2ggPSB7Ci0JLm5vZGUgPSAiY29udHJvbC9zeXNycSIsCi0JLmNhbGxiYWNrID0gc3lzcnFfaGFuZGxlcgotfTsKLQotc3RhdGljIGludCBzZXR1cF9zaHV0ZG93bl93YXRjaGVyKHZvaWQpCi17Ci0JaW50IGVycjsKLQotCWVyciA9IHJlZ2lzdGVyX3hlbmJ1c193YXRjaCgmc2h1dGRvd25fd2F0Y2gpOwotCWlmIChlcnIpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gc2V0IHNodXRkb3duIHdhdGNoZXJcbiIpOwotCQlyZXR1cm4gZXJyOwotCX0KLQotCWVyciA9IHJlZ2lzdGVyX3hlbmJ1c193YXRjaCgmc3lzcnFfd2F0Y2gpOwotCWlmIChlcnIpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gc2V0IHN5c3JxIHdhdGNoZXJcbiIpOwotCQlyZXR1cm4gZXJyOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNodXRkb3duX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbm90aWZpZXIsCi0JCQkgIHVuc2lnbmVkIGxvbmcgZXZlbnQsCi0JCQkgIHZvaWQgKmRhdGEpCi17Ci0Jc2V0dXBfc2h1dGRvd25fd2F0Y2hlcigpOwotCXJldHVybiBOT1RJRllfRE9ORTsKLX0KLQotc3RhdGljIGludCBfX2luaXQgc2V0dXBfc2h1dGRvd25fZXZlbnQodm9pZCkKLXsKLQlzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHhlbnN0b3JlX25vdGlmaWVyID0gewotCQkubm90aWZpZXJfY2FsbCA9IHNodXRkb3duX2V2ZW50Ci0JfTsKLQlyZWdpc3Rlcl94ZW5zdG9yZV9ub3RpZmllcigmeGVuc3RvcmVfbm90aWZpZXIpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN1YnN5c19pbml0Y2FsbChzZXR1cF9zaHV0ZG93bl9ldmVudCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vbW11LmMgYi9hcmNoL3g4Ni94ZW4vbW11LmMKaW5kZXggNWMwMTU5MC4uZmYwYWE3NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL21tdS5jCisrKyBiL2FyY2gveDg2L3hlbi9tbXUuYwpAQCAtNTYsNiArNTYsMTMxIEBACiAjaW5jbHVkZSAibXVsdGljYWxscy5oIgogI2luY2x1ZGUgIm1tdS5oIgogCisjZGVmaW5lIFAyTV9FTlRSSUVTX1BFUl9QQUdFCShQQUdFX1NJWkUgLyBzaXplb2YodW5zaWduZWQgbG9uZykpCisjZGVmaW5lIFRPUF9FTlRSSUVTCQkoTUFYX0RPTUFJTl9QQUdFUyAvIFAyTV9FTlRSSUVTX1BFUl9QQUdFKQorCisvKiBQbGFjZWhvbGRlciBmb3IgaG9sZXMgaW4gdGhlIGFkZHJlc3Mgc3BhY2UgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIHAybV9taXNzaW5nW1AyTV9FTlRSSUVTX1BFUl9QQUdFXQorCV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLnBhZ2VfYWxpZ25lZCIpKSkgPQorCQl7IFsgMCAuLi4gUDJNX0VOVFJJRVNfUEVSX1BBR0UtMSBdID0gfjBVTCB9OworCisgLyogQXJyYXkgb2YgcG9pbnRlcnMgdG8gcGFnZXMgY29udGFpbmluZyBwMm0gZW50cmllcyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgKnAybV90b3BbVE9QX0VOVFJJRVNdCisJX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEucGFnZV9hbGlnbmVkIikpKSA9CisJCXsgWyAwIC4uLiBUT1BfRU5UUklFUyAtIDFdID0gJnAybV9taXNzaW5nWzBdIH07CisKKy8qIEFycmF5cyBvZiBwMm0gYXJyYXlzIGV4cHJlc3NlZCBpbiBtZm5zIHVzZWQgZm9yIHNhdmUvcmVzdG9yZSAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgcDJtX3RvcF9tZm5bVE9QX0VOVFJJRVNdCisJX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmJzcy5wYWdlX2FsaWduZWQiKSkpOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBwMm1fdG9wX21mbl9saXN0WworCQkJUEFHRV9BTElHTihUT1BfRU5UUklFUyAvIFAyTV9FTlRSSUVTX1BFUl9QQUdFKV0KKwlfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgcDJtX3RvcF9pbmRleCh1bnNpZ25lZCBsb25nIHBmbikKK3sKKwlCVUdfT04ocGZuID49IE1BWF9ET01BSU5fUEFHRVMpOworCXJldHVybiBwZm4gLyBQMk1fRU5UUklFU19QRVJfUEFHRTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBwMm1faW5kZXgodW5zaWduZWQgbG9uZyBwZm4pCit7CisJcmV0dXJuIHBmbiAlIFAyTV9FTlRSSUVTX1BFUl9QQUdFOworfQorCisvKiBCdWlsZCB0aGUgcGFyYWxsZWwgcDJtX3RvcF9tZm4gc3RydWN0dXJlcyAqLwordm9pZCB4ZW5fc2V0dXBfbWZuX2xpc3RfbGlzdCh2b2lkKQoreworCXVuc2lnbmVkIHBmbiwgaWR4OworCisJZm9yKHBmbiA9IDA7IHBmbiA8IE1BWF9ET01BSU5fUEFHRVM7IHBmbiArPSBQMk1fRU5UUklFU19QRVJfUEFHRSkgeworCQl1bnNpZ25lZCB0b3BpZHggPSBwMm1fdG9wX2luZGV4KHBmbik7CisKKwkJcDJtX3RvcF9tZm5bdG9waWR4XSA9IHZpcnRfdG9fbWZuKHAybV90b3BbdG9waWR4XSk7CisJfQorCisJZm9yKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUocDJtX3RvcF9tZm5fbGlzdCk7IGlkeCsrKSB7CisJCXVuc2lnbmVkIHRvcGlkeCA9IGlkeCAqIFAyTV9FTlRSSUVTX1BFUl9QQUdFOworCQlwMm1fdG9wX21mbl9saXN0W2lkeF0gPSB2aXJ0X3RvX21mbigmcDJtX3RvcF9tZm5bdG9waWR4XSk7CisJfQorCisJQlVHX09OKEhZUEVSVklTT1Jfc2hhcmVkX2luZm8gPT0gJnhlbl9kdW1teV9zaGFyZWRfaW5mbyk7CisKKwlIWVBFUlZJU09SX3NoYXJlZF9pbmZvLT5hcmNoLnBmbl90b19tZm5fZnJhbWVfbGlzdF9saXN0ID0KKwkJdmlydF90b19tZm4ocDJtX3RvcF9tZm5fbGlzdCk7CisJSFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+YXJjaC5tYXhfcGZuID0geGVuX3N0YXJ0X2luZm8tPm5yX3BhZ2VzOworfQorCisvKiBTZXQgdXAgcDJtX3RvcCB0byBwb2ludCB0byB0aGUgZG9tYWluLWJ1aWxkZXIgcHJvdmlkZWQgcDJtIHBhZ2VzICovCit2b2lkIF9faW5pdCB4ZW5fYnVpbGRfZHluYW1pY19waHlzX3RvX21hY2hpbmUodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nICptZm5fbGlzdCA9ICh1bnNpZ25lZCBsb25nICopeGVuX3N0YXJ0X2luZm8tPm1mbl9saXN0OworCXVuc2lnbmVkIGxvbmcgbWF4X3BmbiA9IG1pbihNQVhfRE9NQUlOX1BBR0VTLCB4ZW5fc3RhcnRfaW5mby0+bnJfcGFnZXMpOworCXVuc2lnbmVkIHBmbjsKKworCWZvcihwZm4gPSAwOyBwZm4gPCBtYXhfcGZuOyBwZm4gKz0gUDJNX0VOVFJJRVNfUEVSX1BBR0UpIHsKKwkJdW5zaWduZWQgdG9waWR4ID0gcDJtX3RvcF9pbmRleChwZm4pOworCisJCXAybV90b3BbdG9waWR4XSA9ICZtZm5fbGlzdFtwZm5dOworCX0KK30KKwordW5zaWduZWQgbG9uZyBnZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZuKQoreworCXVuc2lnbmVkIHRvcGlkeCwgaWR4OworCisJaWYgKHVubGlrZWx5KHBmbiA+PSBNQVhfRE9NQUlOX1BBR0VTKSkKKwkJcmV0dXJuIElOVkFMSURfUDJNX0VOVFJZOworCisJdG9waWR4ID0gcDJtX3RvcF9pbmRleChwZm4pOworCWlkeCA9IHAybV9pbmRleChwZm4pOworCXJldHVybiBwMm1fdG9wW3RvcGlkeF1baWR4XTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGdldF9waHlzX3RvX21hY2hpbmUpOworCitzdGF0aWMgdm9pZCBhbGxvY19wMm0odW5zaWduZWQgbG9uZyAqKnBwLCB1bnNpZ25lZCBsb25nICptZm5wKQoreworCXVuc2lnbmVkIGxvbmcgKnA7CisJdW5zaWduZWQgaTsKKworCXAgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfTk9GQUlMKTsKKwlCVUdfT04ocCA9PSBOVUxMKTsKKworCWZvcihpID0gMDsgaSA8IFAyTV9FTlRSSUVTX1BFUl9QQUdFOyBpKyspCisJCXBbaV0gPSBJTlZBTElEX1AyTV9FTlRSWTsKKworCWlmIChjbXB4Y2hnKHBwLCBwMm1fbWlzc2luZywgcCkgIT0gcDJtX21pc3NpbmcpCisJCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwKTsKKwllbHNlCisJCSptZm5wID0gdmlydF90b19tZm4ocCk7Cit9CisKK3ZvaWQgc2V0X3BoeXNfdG9fbWFjaGluZSh1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBtZm4pCit7CisJdW5zaWduZWQgdG9waWR4LCBpZHg7CisKKwlpZiAodW5saWtlbHkoeGVuX2ZlYXR1cmUoWEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRfcGh5c21hcCkpKSB7CisJCUJVR19PTihwZm4gIT0gbWZuICYmIG1mbiAhPSBJTlZBTElEX1AyTV9FTlRSWSk7CisJCXJldHVybjsKKwl9CisKKwlpZiAodW5saWtlbHkocGZuID49IE1BWF9ET01BSU5fUEFHRVMpKSB7CisJCUJVR19PTihtZm4gIT0gSU5WQUxJRF9QMk1fRU5UUlkpOworCQlyZXR1cm47CisJfQorCisJdG9waWR4ID0gcDJtX3RvcF9pbmRleChwZm4pOworCWlmIChwMm1fdG9wW3RvcGlkeF0gPT0gcDJtX21pc3NpbmcpIHsKKwkJLyogbm8gbmVlZCB0byBhbGxvY2F0ZSBhIHBhZ2UgdG8gc3RvcmUgYW4gaW52YWxpZCBlbnRyeSAqLworCQlpZiAobWZuID09IElOVkFMSURfUDJNX0VOVFJZKQorCQkJcmV0dXJuOworCQlhbGxvY19wMm0oJnAybV90b3BbdG9waWR4XSwgJnAybV90b3BfbWZuW3RvcGlkeF0pOworCX0KKworCWlkeCA9IHAybV9pbmRleChwZm4pOworCXAybV90b3BbdG9waWR4XVtpZHhdID0gbWZuOworfQorCiB4bWFkZHJfdCBhcmJpdHJhcnlfdmlydF90b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKIAl1bnNpZ25lZCBpbnQgbGV2ZWw7CkBAIC05OCwyNCArMjIzLDYwIEBACiB9CiAKIAotdm9pZCB4ZW5fc2V0X3BtZChwbWRfdCAqcHRyLCBwbWRfdCB2YWwpCitzdGF0aWMgYm9vbCBwYWdlX3Bpbm5lZCh2b2lkICpwdHIpCit7CisJc3RydWN0IHBhZ2UgKnBhZ2UgPSB2aXJ0X3RvX3BhZ2UocHRyKTsKKworCXJldHVybiBQYWdlUGlubmVkKHBhZ2UpOworfQorCitzdGF0aWMgdm9pZCBleHRlbmRfbW11X3VwZGF0ZShjb25zdCBzdHJ1Y3QgbW11X3VwZGF0ZSAqdXBkYXRlKQogewogCXN0cnVjdCBtdWx0aWNhbGxfc3BhY2UgbWNzOwogCXN0cnVjdCBtbXVfdXBkYXRlICp1OwogCisJbWNzID0geGVuX21jX2V4dGVuZF9hcmdzKF9fSFlQRVJWSVNPUl9tbXVfdXBkYXRlLCBzaXplb2YoKnUpKTsKKworCWlmIChtY3MubWMgIT0gTlVMTCkKKwkJbWNzLm1jLT5hcmdzWzFdKys7CisJZWxzZSB7CisJCW1jcyA9IF9feGVuX21jX2VudHJ5KHNpemVvZigqdSkpOworCQlNVUxUSV9tbXVfdXBkYXRlKG1jcy5tYywgbWNzLmFyZ3MsIDEsIE5VTEwsIERPTUlEX1NFTEYpOworCX0KKworCXUgPSBtY3MuYXJnczsKKwkqdSA9ICp1cGRhdGU7Cit9CisKK3ZvaWQgeGVuX3NldF9wbWRfaHlwZXIocG1kX3QgKnB0ciwgcG1kX3QgdmFsKQoreworCXN0cnVjdCBtbXVfdXBkYXRlIHU7CisKIAlwcmVlbXB0X2Rpc2FibGUoKTsKIAotCW1jcyA9IHhlbl9tY19lbnRyeShzaXplb2YoKnUpKTsKLQl1ID0gbWNzLmFyZ3M7Ci0JdS0+cHRyID0gdmlydF90b19tYWNoaW5lKHB0cikubWFkZHI7Ci0JdS0+dmFsID0gcG1kX3ZhbF9tYSh2YWwpOwotCU1VTFRJX21tdV91cGRhdGUobWNzLm1jLCB1LCAxLCBOVUxMLCBET01JRF9TRUxGKTsKKwl4ZW5fbWNfYmF0Y2goKTsKKworCXUucHRyID0gdmlydF90b19tYWNoaW5lKHB0cikubWFkZHI7CisJdS52YWwgPSBwbWRfdmFsX21hKHZhbCk7CisJZXh0ZW5kX21tdV91cGRhdGUoJnUpOwogCiAJeGVuX21jX2lzc3VlKFBBUkFWSVJUX0xBWllfTU1VKTsKIAogCXByZWVtcHRfZW5hYmxlKCk7CiB9CiAKK3ZvaWQgeGVuX3NldF9wbWQocG1kX3QgKnB0ciwgcG1kX3QgdmFsKQoreworCS8qIElmIHBhZ2UgaXMgbm90IHBpbm5lZCwgd2UgY2FuIGp1c3QgdXBkYXRlIHRoZSBlbnRyeQorCSAgIGRpcmVjdGx5ICovCisJaWYgKCFwYWdlX3Bpbm5lZChwdHIpKSB7CisJCSpwdHIgPSB2YWw7CisJCXJldHVybjsKKwl9CisKKwl4ZW5fc2V0X3BtZF9oeXBlcihwdHIsIHZhbCk7Cit9CisKIC8qCiAgKiBBc3NvY2lhdGUgYSB2aXJ0dWFsIHBhZ2UgZnJhbWUgd2l0aCBhIGdpdmVuIHBoeXNpY2FsIHBhZ2UgZnJhbWUKICAqIGFuZCBwcm90ZWN0aW9uIGZsYWdzIGZvciB0aGF0IGZyYW1lLgpAQCAtMTc5LDEzICszNDAsMzMgQEAKIAkJcHJlZW1wdF9lbmFibGUoKTsKIH0KIAorcHRlX3QgeGVuX3B0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXApCit7CisJLyogSnVzdCByZXR1cm4gdGhlIHB0ZSBhcy1pcy4gIFdlIHByZXNlcnZlIHRoZSBiaXRzIG9uIGNvbW1pdCAqLworCXJldHVybiAqcHRlcDsKK30KKwordm9pZCB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9jb21taXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZSkKK3sKKwlzdHJ1Y3QgbW11X3VwZGF0ZSB1OworCisJeGVuX21jX2JhdGNoKCk7CisKKwl1LnB0ciA9IHZpcnRfdG9fbWFjaGluZShwdGVwKS5tYWRkciB8IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ7CisJdS52YWwgPSBwdGVfdmFsX21hKHB0ZSk7CisJZXh0ZW5kX21tdV91cGRhdGUoJnUpOworCisJeGVuX21jX2lzc3VlKFBBUkFWSVJUX0xBWllfTU1VKTsKK30KKwogLyogQXNzdW1lIHB0ZXZhbF90IGlzIGVxdWl2YWxlbnQgdG8gYWxsIHRoZSBvdGhlciAqdmFsX3QgdHlwZXMuICovCiBzdGF0aWMgcHRldmFsX3QgcHRlX21mbl90b19wZm4ocHRldmFsX3QgdmFsKQogewogCWlmICh2YWwgJiBfUEFHRV9QUkVTRU5UKSB7CiAJCXVuc2lnbmVkIGxvbmcgbWZuID0gKHZhbCAmIFBURV9NQVNLKSA+PiBQQUdFX1NISUZUOwogCQlwdGV2YWxfdCBmbGFncyA9IHZhbCAmIH5QVEVfTUFTSzsKLQkJdmFsID0gKG1mbl90b19wZm4obWZuKSA8PCBQQUdFX1NISUZUKSB8IGZsYWdzOworCQl2YWwgPSAoKHB0ZXZhbF90KW1mbl90b19wZm4obWZuKSA8PCBQQUdFX1NISUZUKSB8IGZsYWdzOwogCX0KIAogCXJldHVybiB2YWw7CkBAIC0xOTYsNyArMzc3LDcgQEAKIAlpZiAodmFsICYgX1BBR0VfUFJFU0VOVCkgewogCQl1bnNpZ25lZCBsb25nIHBmbiA9ICh2YWwgJiBQVEVfTUFTSykgPj4gUEFHRV9TSElGVDsKIAkJcHRldmFsX3QgZmxhZ3MgPSB2YWwgJiB+UFRFX01BU0s7Ci0JCXZhbCA9IChwZm5fdG9fbWZuKHBmbikgPDwgUEFHRV9TSElGVCkgfCBmbGFnczsKKwkJdmFsID0gKChwdGV2YWxfdClwZm5fdG9fbWZuKHBmbikgPDwgUEFHRV9TSElGVCkgfCBmbGFnczsKIAl9CiAKIAlyZXR1cm4gdmFsOwpAQCAtMjI5LDI0ICs0MTAsMzUgQEAKIAlyZXR1cm4gcHRlX21mbl90b19wZm4ocG1kLnBtZCk7CiB9CiAKLXZvaWQgeGVuX3NldF9wdWQocHVkX3QgKnB0ciwgcHVkX3QgdmFsKQordm9pZCB4ZW5fc2V0X3B1ZF9oeXBlcihwdWRfdCAqcHRyLCBwdWRfdCB2YWwpCiB7Ci0Jc3RydWN0IG11bHRpY2FsbF9zcGFjZSBtY3M7Ci0Jc3RydWN0IG1tdV91cGRhdGUgKnU7CisJc3RydWN0IG1tdV91cGRhdGUgdTsKIAogCXByZWVtcHRfZGlzYWJsZSgpOwogCi0JbWNzID0geGVuX21jX2VudHJ5KHNpemVvZigqdSkpOwotCXUgPSBtY3MuYXJnczsKLQl1LT5wdHIgPSB2aXJ0X3RvX21hY2hpbmUocHRyKS5tYWRkcjsKLQl1LT52YWwgPSBwdWRfdmFsX21hKHZhbCk7Ci0JTVVMVElfbW11X3VwZGF0ZShtY3MubWMsIHUsIDEsIE5VTEwsIERPTUlEX1NFTEYpOworCXhlbl9tY19iYXRjaCgpOworCisJdS5wdHIgPSB2aXJ0X3RvX21hY2hpbmUocHRyKS5tYWRkcjsKKwl1LnZhbCA9IHB1ZF92YWxfbWEodmFsKTsKKwlleHRlbmRfbW11X3VwZGF0ZSgmdSk7CiAKIAl4ZW5fbWNfaXNzdWUoUEFSQVZJUlRfTEFaWV9NTVUpOwogCiAJcHJlZW1wdF9lbmFibGUoKTsKIH0KIAordm9pZCB4ZW5fc2V0X3B1ZChwdWRfdCAqcHRyLCBwdWRfdCB2YWwpCit7CisJLyogSWYgcGFnZSBpcyBub3QgcGlubmVkLCB3ZSBjYW4ganVzdCB1cGRhdGUgdGhlIGVudHJ5CisJICAgZGlyZWN0bHkgKi8KKwlpZiAoIXBhZ2VfcGlubmVkKHB0cikpIHsKKwkJKnB0ciA9IHZhbDsKKwkJcmV0dXJuOworCX0KKworCXhlbl9zZXRfcHVkX2h5cGVyKHB0ciwgdmFsKTsKK30KKwogdm9pZCB4ZW5fc2V0X3B0ZShwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKQogewogCXB0ZXAtPnB0ZV9oaWdoID0gcHRlLnB0ZV9oaWdoOwpAQCAtMjY4LDcgKzQ2MCw3IEBACiAKIHZvaWQgeGVuX3BtZF9jbGVhcihwbWRfdCAqcG1kcCkKIHsKLQl4ZW5fc2V0X3BtZChwbWRwLCBfX3BtZCgwKSk7CisJc2V0X3BtZChwbWRwLCBfX3BtZCgwKSk7CiB9CiAKIHBtZF90IHhlbl9tYWtlX3BtZChwbWR2YWxfdCBwbWQpCkBAIC00NDEsNiArNjMzLDI5IEBACiAJeGVuX21jX2lzc3VlKDApOwogfQogCisvKgorICogT24gc2F2ZSwgd2UgbmVlZCB0byBwaW4gYWxsIHBhZ2V0YWJsZXMgdG8gbWFrZSBzdXJlIHRoZXkgZ2V0IHRoZWlyCisgKiBtZm5zIHR1cm5lZCBpbnRvIHBmbnMuICBTZWFyY2ggdGhlIGxpc3QgZm9yIGFueSB1bnBpbm5lZCBwZ2RzIGFuZCBwaW4KKyAqIHRoZW0gKHVucGlubmVkIHBnZHMgYXJlIG5vdCBjdXJyZW50bHkgaW4gdXNlLCBwcm9iYWJseSBiZWNhdXNlIHRoZQorICogcHJvY2VzcyBpcyB1bmRlciBjb25zdHJ1Y3Rpb24gb3IgZGVzdHJ1Y3Rpb24pLgorICovCit2b2lkIHhlbl9tbV9waW5fYWxsKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwZ2RfbG9jaywgZmxhZ3MpOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShwYWdlLCAmcGdkX2xpc3QsIGxydSkgeworCQlpZiAoIVBhZ2VQaW5uZWQocGFnZSkpIHsKKwkJCXhlbl9wZ2RfcGluKChwZ2RfdCAqKXBhZ2VfYWRkcmVzcyhwYWdlKSk7CisJCQlTZXRQYWdlU2F2ZVBpbm5lZChwYWdlKTsKKwkJfQorCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZF9sb2NrLCBmbGFncyk7Cit9CisKIC8qIFRoZSBpbml0X21tIHBhZ2V0YWJsZSBpcyByZWFsbHkgcGlubmVkIGFzIHNvb24gYXMgaXRzIGNyZWF0ZWQsIGJ1dAogICAgdGhhdCdzIGJlZm9yZSB3ZSBoYXZlIHBhZ2Ugc3RydWN0dXJlcyB0byBzdG9yZSB0aGUgYml0cy4gIFNvIGRvIGFsbAogICAgdGhlIGJvb2sta2VlcGluZyBub3cuICovCkBAIC00OTgsNiArNzEzLDI5IEBACiAJeGVuX21jX2lzc3VlKDApOwogfQogCisvKgorICogT24gcmVzdW1lLCB1bmRvIGFueSBwaW5uaW5nIGRvbmUgYXQgc2F2ZSwgc28gdGhhdCB0aGUgcmVzdCBvZiB0aGUKKyAqIGtlcm5lbCBkb2Vzbid0IHNlZSBhbnkgdW5leHBlY3RlZCBwaW5uZWQgcGFnZXRhYmxlcy4KKyAqLwordm9pZCB4ZW5fbW1fdW5waW5fYWxsKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwZ2RfbG9jaywgZmxhZ3MpOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShwYWdlLCAmcGdkX2xpc3QsIGxydSkgeworCQlpZiAoUGFnZVNhdmVQaW5uZWQocGFnZSkpIHsKKwkJCUJVR19PTighUGFnZVBpbm5lZChwYWdlKSk7CisJCQlwcmludGsoInVucGlubmluZyBwaW5uZWQgJXBcbiIsIHBhZ2VfYWRkcmVzcyhwYWdlKSk7CisJCQl4ZW5fcGdkX3VucGluKChwZ2RfdCAqKXBhZ2VfYWRkcmVzcyhwYWdlKSk7CisJCQlDbGVhclBhZ2VTYXZlUGlubmVkKHBhZ2UpOworCQl9CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKK30KKwogdm9pZCB4ZW5fYWN0aXZhdGVfbW0oc3RydWN0IG1tX3N0cnVjdCAqcHJldiwgc3RydWN0IG1tX3N0cnVjdCAqbmV4dCkKIHsKIAlzcGluX2xvY2soJm5leHQtPnBhZ2VfdGFibGVfbG9jayk7CkBAIC01OTEsNyArODI5LDcgQEAKIAlzcGluX2xvY2soJm1tLT5wYWdlX3RhYmxlX2xvY2spOwogCiAJLyogcGdkIG1heSBub3QgYmUgcGlubmVkIGluIHRoZSBlcnJvciBleGl0IHBhdGggb2YgZXhlY3ZlICovCi0JaWYgKFBhZ2VQaW5uZWQodmlydF90b19wYWdlKG1tLT5wZ2QpKSkKKwlpZiAocGFnZV9waW5uZWQobW0tPnBnZCkpCiAJCXhlbl9wZ2RfdW5waW4obW0tPnBnZCk7CiAKIAlzcGluX3VubG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vbW11LmggYi9hcmNoL3g4Ni94ZW4vbW11LmgKaW5kZXggNWZlOTYxYy4uMjk3YmY5ZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL21tdS5oCisrKyBiL2FyY2gveDg2L3hlbi9tbXUuaApAQCAtMjUsMTAgKzI1LDYgQEAKIAogdm9pZCBzZXRfcHRlX21mbih1bnNpZ25lZCBsb25nIHZhZGRyLCB1bnNpZ25lZCBsb25nIHBmbiwgcGdwcm90X3QgZmxhZ3MpOwogCi12b2lkIHhlbl9zZXRfcHRlKHB0ZV90ICpwdGVwLCBwdGVfdCBwdGV2YWwpOwotdm9pZCB4ZW5fc2V0X3B0ZV9hdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAotCQkgICAgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZXZhbCk7Ci12b2lkIHhlbl9zZXRfcG1kKHBtZF90ICpwbWRwLCBwbWRfdCBwbWR2YWwpOwogCiB2b2lkIHhlbl9hY3RpdmF0ZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LCBzdHJ1Y3QgbW1fc3RydWN0ICpuZXh0KTsKIHZvaWQgeGVuX2R1cF9tbWFwKHN0cnVjdCBtbV9zdHJ1Y3QgKm9sZG1tLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CkBAIC00NSwxMSArNDEsMTkgQEAKIHBtZF90IHhlbl9tYWtlX3BtZChwbWR2YWxfdCk7CiBwZ2RfdCB4ZW5fbWFrZV9wZ2QocGdkdmFsX3QpOwogCit2b2lkIHhlbl9zZXRfcHRlKHB0ZV90ICpwdGVwLCBwdGVfdCBwdGV2YWwpOwogdm9pZCB4ZW5fc2V0X3B0ZV9hdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQkgICAgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZXZhbCk7CiB2b2lkIHhlbl9zZXRfcHRlX2F0b21pYyhwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKTsKK3ZvaWQgeGVuX3NldF9wbWQocG1kX3QgKnBtZHAsIHBtZF90IHBtZHZhbCk7CiB2b2lkIHhlbl9zZXRfcHVkKHB1ZF90ICpwdHIsIHB1ZF90IHZhbCk7Cit2b2lkIHhlbl9zZXRfcG1kX2h5cGVyKHBtZF90ICpwbWRwLCBwbWRfdCBwbWR2YWwpOwordm9pZCB4ZW5fc2V0X3B1ZF9oeXBlcihwdWRfdCAqcHRyLCBwdWRfdCB2YWwpOwogdm9pZCB4ZW5fcHRlX2NsZWFyKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKTsKIHZvaWQgeGVuX3BtZF9jbGVhcihwbWRfdCAqcG1kcCk7CiAKK3B0ZV90IHhlbl9wdGVwX21vZGlmeV9wcm90X3N0YXJ0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKTsKK3ZvaWQgIHhlbl9wdGVwX21vZGlmeV9wcm90X2NvbW1pdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkJCSAgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZSk7CisKICNlbmRpZgkvKiBfWEVOX01NVV9IICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vbXVsdGljYWxscy5jIGIvYXJjaC94ODYveGVuL211bHRpY2FsbHMuYwppbmRleCA1NzkxZWIyLi4zYzYzYzRkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vbXVsdGljYWxscy5jCisrKyBiL2FyY2gveDg2L3hlbi9tdWx0aWNhbGxzLmMKQEAgLTI5LDE0ICsyOSwxNCBAQAogI2RlZmluZSBNQ19ERUJVRwkxCiAKICNkZWZpbmUgTUNfQkFUQ0gJMzIKLSNkZWZpbmUgTUNfQVJHUwkJKE1DX0JBVENIICogMTYgLyBzaXplb2YodTY0KSkKKyNkZWZpbmUgTUNfQVJHUwkJKE1DX0JBVENIICogMTYpCiAKIHN0cnVjdCBtY19idWZmZXIgewogCXN0cnVjdCBtdWx0aWNhbGxfZW50cnkgZW50cmllc1tNQ19CQVRDSF07CiAjaWYgTUNfREVCVUcKIAlzdHJ1Y3QgbXVsdGljYWxsX2VudHJ5IGRlYnVnW01DX0JBVENIXTsKICNlbmRpZgotCXU2NCBhcmdzW01DX0FSR1NdOworCXVuc2lnbmVkIGNoYXIgYXJnc1tNQ19BUkdTXTsKIAlzdHJ1Y3QgY2FsbGJhY2sgewogCQl2b2lkICgqZm4pKHZvaWQgKik7CiAJCXZvaWQgKmRhdGE7CkBAIC0xMDcsMjAgKzEwNyw0OCBAQAogewogCXN0cnVjdCBtY19idWZmZXIgKmIgPSAmX19nZXRfY3B1X3ZhcihtY19idWZmZXIpOwogCXN0cnVjdCBtdWx0aWNhbGxfc3BhY2UgcmV0OwotCXVuc2lnbmVkIGFyZ3NwYWNlID0gKGFyZ3MgKyBzaXplb2YodTY0KSAtIDEpIC8gc2l6ZW9mKHU2NCk7CisJdW5zaWduZWQgYXJnaWR4ID0gcm91bmR1cChiLT5hcmdpZHgsIHNpemVvZih1NjQpKTsKIAogCUJVR19PTihwcmVlbXB0aWJsZSgpKTsKLQlCVUdfT04oYXJnc3BhY2UgPiBNQ19BUkdTKTsKKwlCVUdfT04oYi0+YXJnaWR4ID4gTUNfQVJHUyk7CiAKIAlpZiAoYi0+bWNpZHggPT0gTUNfQkFUQ0ggfHwKLQkgICAgKGItPmFyZ2lkeCArIGFyZ3NwYWNlKSA+IE1DX0FSR1MpCisJICAgIChhcmdpZHggKyBhcmdzKSA+IE1DX0FSR1MpIHsKIAkJeGVuX21jX2ZsdXNoKCk7CisJCWFyZ2lkeCA9IHJvdW5kdXAoYi0+YXJnaWR4LCBzaXplb2YodTY0KSk7CisJfQogCiAJcmV0Lm1jID0gJmItPmVudHJpZXNbYi0+bWNpZHhdOwogCWItPm1jaWR4Kys7Ci0JcmV0LmFyZ3MgPSAmYi0+YXJnc1tiLT5hcmdpZHhdOwotCWItPmFyZ2lkeCArPSBhcmdzcGFjZTsKKwlyZXQuYXJncyA9ICZiLT5hcmdzW2FyZ2lkeF07CisJYi0+YXJnaWR4ID0gYXJnaWR4ICsgYXJnczsKIAorCUJVR19PTihiLT5hcmdpZHggPiBNQ19BUkdTKTsKKwlyZXR1cm4gcmV0OworfQorCitzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIHhlbl9tY19leHRlbmRfYXJncyh1bnNpZ25lZCBsb25nIG9wLCBzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgbWNfYnVmZmVyICpiID0gJl9fZ2V0X2NwdV92YXIobWNfYnVmZmVyKTsKKwlzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIHJldCA9IHsgTlVMTCwgTlVMTCB9OworCisJQlVHX09OKHByZWVtcHRpYmxlKCkpOworCUJVR19PTihiLT5hcmdpZHggPiBNQ19BUkdTKTsKKworCWlmIChiLT5tY2lkeCA9PSAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKGItPmVudHJpZXNbYi0+bWNpZHggLSAxXS5vcCAhPSBvcCkKKwkJcmV0dXJuIHJldDsKKworCWlmICgoYi0+YXJnaWR4ICsgc2l6ZSkgPiBNQ19BUkdTKQorCQlyZXR1cm4gcmV0OworCisJcmV0Lm1jID0gJmItPmVudHJpZXNbYi0+bWNpZHggLSAxXTsKKwlyZXQuYXJncyA9ICZiLT5hcmdzW2ItPmFyZ2lkeF07CisJYi0+YXJnaWR4ICs9IHNpemU7CisKKwlCVUdfT04oYi0+YXJnaWR4ID4gTUNfQVJHUyk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL211bHRpY2FsbHMuaCBiL2FyY2gveDg2L3hlbi9tdWx0aWNhbGxzLmgKaW5kZXggOGJhZTk5Ni4uODU4OTM4MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL211bHRpY2FsbHMuaAorKysgYi9hcmNoL3g4Ni94ZW4vbXVsdGljYWxscy5oCkBAIC00NSw0ICs0NSwxNiBAQAogLyogU2V0IHVwIGEgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGN1cnJlbnQgYmF0Y2ggaXMgZmx1c2hlZCAqLwogdm9pZCB4ZW5fbWNfY2FsbGJhY2sodm9pZCAoKmZuKSh2b2lkICopLCB2b2lkICpkYXRhKTsKIAorLyoKKyAqIFRyeSB0byBleHRlbmQgdGhlIGFyZ3VtZW50cyBvZiB0aGUgcHJldmlvdXMgbXVsdGljYWxsIGNvbW1hbmQuICBUaGUKKyAqIHByZXZpb3VzIGNvbW1hbmQncyBvcCBtdXN0IG1hdGNoLiAgSWYgaXQgZG9lcywgdGhlbiBpdCBhdHRlbXB0cyB0bworICogZXh0ZW5kIHRoZSBhcmd1bWVudCBzcGFjZSBhbGxvY2F0ZWQgdG8gdGhlIG11bHRpY2FsbCBlbnRyeSBieQorICogYXJnX3NpemUgYnl0ZXMuCisgKgorICogVGhlIHJldHVybmVkIG11bHRpY2FsbF9zcGFjZSB3aWxsIHJldHVybiB3aXRoIG1jIHBvaW50aW5nIHRvIHRoZQorICogY29tbWFuZCBvbiBzdWNjZXNzLCBvciBOVUxMIG9uIGZhaWx1cmUsIGFuZCBhcmdzIHBvaW50aW5nIHRvIHRoZQorICogbmV3bHkgYWxsb2NhdGVkIHNwYWNlLgorICovCitzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIHhlbl9tY19leHRlbmRfYXJncyh1bnNpZ25lZCBsb25nIG9wLCBzaXplX3QgYXJnX3NpemUpOworCiAjZW5kaWYgLyogX1hFTl9NVUxUSUNBTExTX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9zZXR1cC5jIGIvYXJjaC94ODYveGVuL3NldHVwLmMKaW5kZXggODI1MTdlNC4uZTBhMzk1OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL3NldHVwLmMKKysrIGIvYXJjaC94ODYveGVuL3NldHVwLmMKQEAgLTEzLDkgKzEzLDExIEBACiAjaW5jbHVkZSA8YXNtL3Zkc28uaD4KICNpbmNsdWRlIDxhc20vZTgyMC5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9hY3BpLmg+CiAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+CiAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcmNhbGwuaD4KIAorI2luY2x1ZGUgPHhlbi9wYWdlLmg+CiAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9jYWxsYmFjay5oPgogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvcGh5c2Rldi5oPgogI2luY2x1ZGUgPHhlbi9mZWF0dXJlcy5oPgpAQCAtMjcsOCArMjksNiBAQAogZXh0ZXJuIGNvbnN0IGNoYXIgeGVuX2h5cGVydmlzb3JfY2FsbGJhY2tbXTsKIGV4dGVybiBjb25zdCBjaGFyIHhlbl9mYWlsc2FmZV9jYWxsYmFja1tdOwogCi11bnNpZ25lZCBsb25nICpwaHlzX3RvX21hY2hpbmVfbWFwcGluZzsKLUVYUE9SVF9TWU1CT0wocGh5c190b19tYWNoaW5lX21hcHBpbmcpOwogCiAvKioKICAqIG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwIC0gSG9vayBmb3IgbWFjaGluZSBzcGVjaWZpYyBtZW1vcnkgc2V0dXAuCkBAIC0zOCw5ICszOCwzMSBAQAogewogCXVuc2lnbmVkIGxvbmcgbWF4X3BmbiA9IHhlbl9zdGFydF9pbmZvLT5ucl9wYWdlczsKIAorCW1heF9wZm4gPSBtaW4oTUFYX0RPTUFJTl9QQUdFUywgbWF4X3Bmbik7CisKIAllODIwLm5yX21hcCA9IDA7Ci0JYWRkX21lbW9yeV9yZWdpb24oMCwgTE9XTUVNU0laRSgpLCBFODIwX1JBTSk7Ci0JYWRkX21lbW9yeV9yZWdpb24oSElHSF9NRU1PUlksIFBGTl9QSFlTKG1heF9wZm4pLUhJR0hfTUVNT1JZLCBFODIwX1JBTSk7CisKKwllODIwX2FkZF9yZWdpb24oMCwgUEZOX1BIWVMobWF4X3BmbiksIEU4MjBfUkFNKTsKKworCS8qCisJICogRXZlbiB0aG91Z2ggdGhpcyBpcyBub3JtYWwsIHVzYWJsZSBtZW1vcnkgdW5kZXIgWGVuLCByZXNlcnZlCisJICogSVNBIG1lbW9yeSBhbnl3YXkgYmVjYXVzZSB0b28gbWFueSB0aGluZ3MgdGhpbmsgdGhleSBjYW4gcG9rZQorCSAqIGFib3V0IGluIHRoZXJlLgorCSAqLworCWU4MjBfYWRkX3JlZ2lvbihJU0FfU1RBUlRfQUREUkVTUywgSVNBX0VORF9BRERSRVNTIC0gSVNBX1NUQVJUX0FERFJFU1MsCisJCQlFODIwX1JFU0VSVkVEKTsKKworCS8qCisJICogUmVzZXJ2ZSBYZW4gYml0czoKKwkgKiAgLSBtZm5fbGlzdAorCSAqICAtIHhlbl9zdGFydF9pbmZvCisJICogU2VlIGNvbW1lbnQgYWJvdmUgInN0cnVjdCBzdGFydF9pbmZvIiBpbiA8eGVuL2ludGVyZmFjZS94ZW4uaD4KKwkgKi8KKwllODIwX2FkZF9yZWdpb24oX19wYSh4ZW5fc3RhcnRfaW5mby0+bWZuX2xpc3QpLAorCQkJeGVuX3N0YXJ0X2luZm8tPnB0X2Jhc2UgLSB4ZW5fc3RhcnRfaW5mby0+bWZuX2xpc3QsCisJCQlFODIwX1JFU0VSVkVEKTsKKworCXNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCBBUlJBWV9TSVpFKGU4MjAubWFwKSwgJmU4MjAubnJfbWFwKTsKIAogCXJldHVybiAiWGVuIjsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9zbXAuYyBiL2FyY2gveDg2L3hlbi9zbXAuYwppbmRleCBhMTY1MWQwLi4yMzMxNTZmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vc21wLmMKKysrIGIvYXJjaC94ODYveGVuL3NtcC5jCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAieGVuLW9wcy5oIgogI2luY2x1ZGUgIm1tdS5oIgogCi1zdGF0aWMgY3B1bWFza190IHhlbl9jcHVfaW5pdGlhbGl6ZWRfbWFwOworY3B1bWFza190IHhlbl9jcHVfaW5pdGlhbGl6ZWRfbWFwOwogCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoaW50LCByZXNjaGVkX2lycSk7CiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoaW50LCBjYWxsZnVuY19pcnEpOwpAQCAtNTIsNiArNTIsMTIgQEAKICAqLwogc3RhdGljIGlycXJldHVybl90IHhlbl9yZXNjaGVkdWxlX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCV9fZ2V0X2NwdV92YXIoaXJxX3N0YXQpLmlycV9yZXNjaGVkX2NvdW50Kys7CisjZWxzZQorCWFkZF9wZGEoaXJxX3Jlc2NoZWRfY291bnQsIDEpOworI2VuZGlmCisKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9zdXNwZW5kLmMgYi9hcmNoL3g4Ni94ZW4vc3VzcGVuZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MTY2OWEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni94ZW4vc3VzcGVuZC5jCkBAIC0wLDAgKzEsNDUgQEAKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS94ZW4uaD4KKyNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KKyNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+CisKKyNpbmNsdWRlIDxhc20veGVuL2h5cGVyY2FsbC5oPgorI2luY2x1ZGUgPGFzbS94ZW4vcGFnZS5oPgorCisjaW5jbHVkZSAieGVuLW9wcy5oIgorI2luY2x1ZGUgIm1tdS5oIgorCit2b2lkIHhlbl9wcmVfc3VzcGVuZCh2b2lkKQoreworCXhlbl9zdGFydF9pbmZvLT5zdG9yZV9tZm4gPSBtZm5fdG9fcGZuKHhlbl9zdGFydF9pbmZvLT5zdG9yZV9tZm4pOworCXhlbl9zdGFydF9pbmZvLT5jb25zb2xlLmRvbVUubWZuID0KKwkJbWZuX3RvX3Bmbih4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisKKwlCVUdfT04oIWlycXNfZGlzYWJsZWQoKSk7CisKKwlIWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gJnhlbl9kdW1teV9zaGFyZWRfaW5mbzsKKwlpZiAoSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZyhmaXhfdG9fdmlydChGSVhfUEFSQVZJUlRfQk9PVE1BUCksCisJCQkJCSBfX3B0ZV9tYSgwKSwgMCkpCisJCUJVRygpOworfQorCit2b2lkIHhlbl9wb3N0X3N1c3BlbmQoaW50IHN1c3BlbmRfY2FuY2VsbGVkKQoreworCXhlbl9zZXR1cF9zaGFyZWRfaW5mbygpOworCisJaWYgKHN1c3BlbmRfY2FuY2VsbGVkKSB7CisJCXhlbl9zdGFydF9pbmZvLT5zdG9yZV9tZm4gPQorCQkJcGZuX3RvX21mbih4ZW5fc3RhcnRfaW5mby0+c3RvcmVfbWZuKTsKKwkJeGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5tZm4gPQorCQkJcGZuX3RvX21mbih4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisJfSBlbHNlIHsKKyNpZmRlZiBDT05GSUdfU01QCisJCXhlbl9jcHVfaW5pdGlhbGl6ZWRfbWFwID0gY3B1X29ubGluZV9tYXA7CisjZW5kaWYKKwkJeGVuX3ZjcHVfcmVzdG9yZSgpOworCQl4ZW5fdGltZXJfcmVzdW1lKCk7CisJfQorCit9CisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi90aW1lLmMgYi9hcmNoL3g4Ni94ZW4vdGltZS5jCmluZGV4IDQxZTIxNzUuLjY4NWI3NzQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi90aW1lLmMKKysrIGIvYXJjaC94ODYveGVuL3RpbWUuYwpAQCAtMTk3LDggKzE5Nyw4IEBACiB9CiAKIAotLyogR2V0IHRoZSBDUFUgc3BlZWQgZnJvbSBYZW4gKi8KLXVuc2lnbmVkIGxvbmcgeGVuX2NwdV9raHoodm9pZCkKKy8qIEdldCB0aGUgVFNDIHNwZWVkIGZyb20gWGVuICovCit1bnNpZ25lZCBsb25nIHhlbl90c2Nfa2h6KHZvaWQpCiB7CiAJdTY0IHhlbl9raHogPSAxMDAwMDAwVUxMIDw8IDMyOwogCWNvbnN0IHN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvICppbmZvID0KQEAgLTQ1OSw2ICs0NTksMTkgQEAKIAljbG9ja2V2ZW50c19yZWdpc3Rlcl9kZXZpY2UoJl9fZ2V0X2NwdV92YXIoeGVuX2Nsb2NrX2V2ZW50cykpOwogfQogCit2b2lkIHhlbl90aW1lcl9yZXN1bWUodm9pZCkKK3sKKwlpbnQgY3B1OworCisJaWYgKHhlbl9jbG9ja2V2ZW50ICE9ICZ4ZW5fdmNwdW9wX2Nsb2NrZXZlbnQpCisJCXJldHVybjsKKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CisJCWlmIChIWVBFUlZJU09SX3ZjcHVfb3AoVkNQVU9QX3N0b3BfcGVyaW9kaWNfdGltZXIsIGNwdSwgTlVMTCkpCisJCQlCVUcoKTsKKwl9Cit9CisKIF9faW5pdCB2b2lkIHhlbl90aW1lX2luaXQodm9pZCkKIHsKIAlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL3hlbi1oZWFkLlMgYi9hcmNoL3g4Ni94ZW4veGVuLWhlYWQuUwppbmRleCA2ZWMzYjRmLi43YzBjZjYzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4veGVuLWhlYWQuUworKysgYi9hcmNoL3g4Ni94ZW4veGVuLWhlYWQuUwpAQCAtNyw2ICs3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8YXNtL2Jvb3QuaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2VsZm5vdGUuaD4KKyNpbmNsdWRlIDxhc20veGVuL2ludGVyZmFjZS5oPgogCiAJX19JTklUCiBFTlRSWShzdGFydHVwX3hlbikKQEAgLTMyLDUgKzMzLDkgQEAKIAlFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfRkVBVFVSRVMsICAgICAgIC5hc2NpeiAiIXdyaXRhYmxlX3BhZ2VfdGFibGVzfHBhZV9wZ2Rpcl9hYm92ZV80Z2IiKQogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9QQUVfTU9ERSwgICAgICAgLmFzY2l6ICJ5ZXMiKQogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9MT0FERVIsICAgICAgICAgLmFzY2l6ICJnZW5lcmljIikKKwlFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfTDFfTUZOX1ZBTElELAorCQkucXVhZCBfUEFHRV9QUkVTRU5UOyAucXVhZCBfUEFHRV9QUkVTRU5UKQorCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9TVVNQRU5EX0NBTkNFTCwgLmxvbmcgMSkKKwlFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfSFZfU1RBUlRfTE9XLCAgIC5sb25nIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUKQogCiAjZW5kaWYgLypDT05GSUdfWEVOICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLW9wcy5oIGIvYXJjaC94ODYveGVuL3hlbi1vcHMuaAppbmRleCBhNjM2YWI1Li42ZjRiMTA0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4veGVuLW9wcy5oCisrKyBiL2FyY2gveDg2L3hlbi94ZW4tb3BzLmgKQEAgLTksMjYgKzksMzUgQEAKIGV4dGVybiBjb25zdCBjaGFyIHhlbl9oeXBlcnZpc29yX2NhbGxiYWNrW107CiBleHRlcm4gY29uc3QgY2hhciB4ZW5fZmFpbHNhZmVfY2FsbGJhY2tbXTsKIAorc3RydWN0IHRyYXBfaW5mbzsKIHZvaWQgeGVuX2NvcHlfdHJhcF9pbmZvKHN0cnVjdCB0cmFwX2luZm8gKnRyYXBzKTsKIAogREVDTEFSRV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIHhlbl9jcjMpOwogREVDTEFSRV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIHhlbl9jdXJyZW50X2NyMyk7CiAKIGV4dGVybiBzdHJ1Y3Qgc3RhcnRfaW5mbyAqeGVuX3N0YXJ0X2luZm87CitleHRlcm4gc3RydWN0IHNoYXJlZF9pbmZvIHhlbl9kdW1teV9zaGFyZWRfaW5mbzsKIGV4dGVybiBzdHJ1Y3Qgc2hhcmVkX2luZm8gKkhZUEVSVklTT1Jfc2hhcmVkX2luZm87CiAKK3ZvaWQgeGVuX3NldHVwX21mbl9saXN0X2xpc3Qodm9pZCk7Cit2b2lkIHhlbl9zZXR1cF9zaGFyZWRfaW5mbyh2b2lkKTsKKwogY2hhciAqIF9faW5pdCB4ZW5fbWVtb3J5X3NldHVwKHZvaWQpOwogdm9pZCBfX2luaXQgeGVuX2FyY2hfc2V0dXAodm9pZCk7CiB2b2lkIF9faW5pdCB4ZW5faW5pdF9JUlEodm9pZCk7CiB2b2lkIHhlbl9lbmFibGVfc3lzZW50ZXIodm9pZCk7Cit2b2lkIHhlbl92Y3B1X3Jlc3RvcmUodm9pZCk7CisKK3ZvaWQgX19pbml0IHhlbl9idWlsZF9keW5hbWljX3BoeXNfdG9fbWFjaGluZSh2b2lkKTsKIAogdm9pZCB4ZW5fc2V0dXBfdGltZXIoaW50IGNwdSk7CiB2b2lkIHhlbl9zZXR1cF9jcHVfY2xvY2tldmVudHModm9pZCk7Ci11bnNpZ25lZCBsb25nIHhlbl9jcHVfa2h6KHZvaWQpOwordW5zaWduZWQgbG9uZyB4ZW5fdHNjX2toeih2b2lkKTsKIHZvaWQgX19pbml0IHhlbl90aW1lX2luaXQodm9pZCk7CiB1bnNpZ25lZCBsb25nIHhlbl9nZXRfd2FsbGNsb2NrKHZvaWQpOwogaW50IHhlbl9zZXRfd2FsbGNsb2NrKHVuc2lnbmVkIGxvbmcgdGltZSk7CiB1bnNpZ25lZCBsb25nIGxvbmcgeGVuX3NjaGVkX2Nsb2NrKHZvaWQpOwordm9pZCB4ZW5fdGltZXJfcmVzdW1lKHZvaWQpOwogCiBpcnFyZXR1cm5fdCB4ZW5fZGVidWdfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCk7CiAKQEAgLTQ5LDYgKzU4LDggQEAKIHZvaWQgeGVuX3NtcF9zZW5kX2NhbGxfZnVuY3Rpb25faXBpKGNwdW1hc2tfdCBtYXNrKTsKIHZvaWQgeGVuX3NtcF9zZW5kX2NhbGxfZnVuY3Rpb25fc2luZ2xlX2lwaShpbnQgY3B1KTsKIAorZXh0ZXJuIGNwdW1hc2tfdCB4ZW5fY3B1X2luaXRpYWxpemVkX21hcDsKKwogCiAvKiBEZWNsYXJlIGFuIGFzbSBmdW5jdGlvbiwgYWxvbmcgd2l0aCBzeW1ib2xzIG5lZWRlZCB0byBtYWtlIGl0CiAgICBpbmxpbmVhYmxlICovCmRpZmYgLS1naXQgYS9ibG9jay9LY29uZmlnIGIvYmxvY2svS2NvbmZpZwppbmRleCAzZTk3ZjJiLi4xYWI3YzE1IDEwMDY0NAotLS0gYS9ibG9jay9LY29uZmlnCisrKyBiL2Jsb2NrL0tjb25maWcKQEAgLTgxLDYgKzgxLDE4IEBACiAKIAkgIElmIHVuc3VyZSwgc2F5IE4uCiAKK2NvbmZpZyBCTEtfREVWX0lOVEVHUklUWQorCWJvb2wgIkJsb2NrIGxheWVyIGRhdGEgaW50ZWdyaXR5IHN1cHBvcnQiCisJLS0taGVscC0tLQorCVNvbWUgc3RvcmFnZSBkZXZpY2VzIGFsbG93IGV4dHJhIGluZm9ybWF0aW9uIHRvIGJlCisJc3RvcmVkL3JldHJpZXZlZCB0byBoZWxwIHByb3RlY3QgdGhlIGRhdGEuICBUaGUgYmxvY2sgbGF5ZXIKKwlkYXRhIGludGVncml0eSBvcHRpb24gcHJvdmlkZXMgaG9va3Mgd2hpY2ggY2FuIGJlIHVzZWQgYnkKKwlmaWxlc3lzdGVtcyB0byBlbnN1cmUgYmV0dGVyIGRhdGEgaW50ZWdyaXR5LgorCisJU2F5IHllcyBoZXJlIGlmIHlvdSBoYXZlIGEgc3RvcmFnZSBkZXZpY2UgdGhhdCBwcm92aWRlcyB0aGUKKwlUMTAvU0NTSSBEYXRhIEludGVncml0eSBGaWVsZCBvciB0aGUgVDEzL0FUQSBFeHRlcm5hbCBQYXRoCisJUHJvdGVjdGlvbi4gIElmIGluIGRvdWJ0LCBzYXkgTi4KKwogZW5kaWYgIyBCTE9DSwogCiBjb25maWcgQkxPQ0tfQ09NUEFUCmRpZmYgLS1naXQgYS9ibG9jay9NYWtlZmlsZSBiL2Jsb2NrL01ha2VmaWxlCmluZGV4IDVhNDNjN2QuLjIwODAwMGIgMTAwNjQ0Ci0tLSBhL2Jsb2NrL01ha2VmaWxlCisrKyBiL2Jsb2NrL01ha2VmaWxlCkBAIC00LDcgKzQsOCBAQAogCiBvYmotJChDT05GSUdfQkxPQ0spIDo9IGVsZXZhdG9yLm8gYmxrLWNvcmUubyBibGstdGFnLm8gYmxrLXN5c2ZzLm8gXAogCQkJYmxrLWJhcnJpZXIubyBibGstc2V0dGluZ3MubyBibGstaW9jLm8gYmxrLW1hcC5vIFwKLQkJCWJsay1leGVjLm8gYmxrLW1lcmdlLm8gaW9jdGwubyBnZW5oZC5vIHNjc2lfaW9jdGwubworCQkJYmxrLWV4ZWMubyBibGstbWVyZ2UubyBpb2N0bC5vIGdlbmhkLm8gc2NzaV9pb2N0bC5vIFwKKwkJCWNtZC1maWx0ZXIubwogCiBvYmotJChDT05GSUdfQkxLX0RFVl9CU0cpCSs9IGJzZy5vCiBvYmotJChDT05GSUdfSU9TQ0hFRF9OT09QKQkrPSBub29wLWlvc2NoZWQubwpAQCAtMTQsMyArMTUsNCBAQAogCiBvYmotJChDT05GSUdfQkxLX0RFVl9JT19UUkFDRSkJKz0gYmxrdHJhY2Uubwogb2JqLSQoQ09ORklHX0JMT0NLX0NPTVBBVCkJKz0gY29tcGF0X2lvY3RsLm8KK29iai0kKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkJKz0gYmxrLWludGVncml0eS5vCmRpZmYgLS1naXQgYS9ibG9jay9hcy1pb3NjaGVkLmMgYi9ibG9jay9hcy1pb3NjaGVkLmMKaW5kZXggOGMzOTQ2Ny4uOTczNWFjYiAxMDA2NDQKLS0tIGEvYmxvY2svYXMtaW9zY2hlZC5jCisrKyBiL2Jsb2NrL2FzLWlvc2NoZWQuYwpAQCAtMTUxLDYgKzE1MSw3IEBACiAKIHN0YXRpYyBERUZJTkVfUEVSX0NQVSh1bnNpZ25lZCBsb25nLCBpb2NfY291bnQpOwogc3RhdGljIHN0cnVjdCBjb21wbGV0aW9uICppb2NfZ29uZTsKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soaW9jX2dvbmVfbG9jayk7CiAKIHN0YXRpYyB2b2lkIGFzX21vdmVfdG9fZGlzcGF0Y2goc3RydWN0IGFzX2RhdGEgKmFkLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpOwogc3RhdGljIHZvaWQgYXNfYW50aWNfc3RvcChzdHJ1Y3QgYXNfZGF0YSAqYWQpOwpAQCAtMTY0LDggKzE2NSwxOSBAQAogewogCWtmcmVlKGFpYyk7CiAJZWx2X2lvY19jb3VudF9kZWMoaW9jX2NvdW50KTsKLQlpZiAoaW9jX2dvbmUgJiYgIWVsdl9pb2NfY291bnRfcmVhZChpb2NfY291bnQpKQotCQljb21wbGV0ZShpb2NfZ29uZSk7CisJaWYgKGlvY19nb25lKSB7CisJCS8qCisJCSAqIEFTIHNjaGVkdWxlciBpcyBleGl0aW5nLCBncmFiIGV4aXQgbG9jayBhbmQgY2hlY2sKKwkJICogdGhlIHBlbmRpbmcgaW8gY29udGV4dCBjb3VudC4gSWYgaXQgaGl0cyB6ZXJvLAorCQkgKiBjb21wbGV0ZSBpb2NfZ29uZSBhbmQgc2V0IGl0IGJhY2sgdG8gTlVMTC4KKwkJICovCisJCXNwaW5fbG9jaygmaW9jX2dvbmVfbG9jayk7CisJCWlmIChpb2NfZ29uZSAmJiAhZWx2X2lvY19jb3VudF9yZWFkKGlvY19jb3VudCkpIHsKKwkJCWNvbXBsZXRlKGlvY19nb25lKTsKKwkJCWlvY19nb25lID0gTlVMTDsKKwkJfQorCQlzcGluX3VubG9jaygmaW9jX2dvbmVfbG9jayk7CisJfQogfQogCiBzdGF0aWMgdm9pZCBhc190cmltKHN0cnVjdCBpb19jb250ZXh0ICppb2MpCkBAIC04MzEsNiArODQzLDggQEAKIAl9CiAKIAlpZiAoYWQtPmNoYW5nZWRfYmF0Y2ggJiYgYWQtPm5yX2Rpc3BhdGNoZWQgPT0gMSkgeworCQlhZC0+Y3VycmVudF9iYXRjaF9leHBpcmVzID0gamlmZmllcyArCisJCQkJCWFkLT5iYXRjaF9leHBpcmVbYWQtPmJhdGNoX2RhdGFfZGlyXTsKIAkJa2Jsb2NrZF9zY2hlZHVsZV93b3JrKCZhZC0+YW50aWNfd29yayk7CiAJCWFkLT5jaGFuZ2VkX2JhdGNoID0gMDsKIApAQCAtMTQ5MSw3ICsxNTA1LDcgQEAKIAkvKiBpb2NfZ29uZSdzIHVwZGF0ZSBtdXN0IGJlIHZpc2libGUgYmVmb3JlIHJlYWRpbmcgaW9jX2NvdW50ICovCiAJc21wX3dtYigpOwogCWlmIChlbHZfaW9jX2NvdW50X3JlYWQoaW9jX2NvdW50KSkKLQkJd2FpdF9mb3JfY29tcGxldGlvbihpb2NfZ29uZSk7CisJCXdhaXRfZm9yX2NvbXBsZXRpb24oJmFsbF9nb25lKTsKIAlzeW5jaHJvbml6ZV9yY3UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLWNvcmUuYyBiL2Jsb2NrL2Jsay1jb3JlLmMKaW5kZXggMTkwNWFhYi4uZmVmNzljYyAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLWNvcmUuYworKysgYi9ibG9jay9ibGstY29yZS5jCkBAIC0xNDMsNiArMTQzLDEwIEBACiAKIAkJYmlvLT5iaV9zaXplIC09IG5ieXRlczsKIAkJYmlvLT5iaV9zZWN0b3IgKz0gKG5ieXRlcyA+PiA5KTsKKworCQlpZiAoYmlvX2ludGVncml0eShiaW8pKQorCQkJYmlvX2ludGVncml0eV9hZHZhbmNlKGJpbywgbmJ5dGVzKTsKKwogCQlpZiAoYmlvLT5iaV9zaXplID09IDApCiAJCQliaW9fZW5kaW8oYmlvLCBlcnJvcik7CiAJfSBlbHNlIHsKQEAgLTIwMSw4ICsyMDUsNyBAQAogCWlmIChibGtfcXVldWVfc3RvcHBlZChxKSkKIAkJcmV0dXJuOwogCi0JaWYgKCF0ZXN0X2JpdChRVUVVRV9GTEFHX1BMVUdHRUQsICZxLT5xdWV1ZV9mbGFncykpIHsKLQkJX19zZXRfYml0KFFVRVVFX0ZMQUdfUExVR0dFRCwgJnEtPnF1ZXVlX2ZsYWdzKTsKKwlpZiAoIXF1ZXVlX2ZsYWdfdGVzdF9hbmRfc2V0KFFVRVVFX0ZMQUdfUExVR0dFRCwgcSkpIHsKIAkJbW9kX3RpbWVyKCZxLT51bnBsdWdfdGltZXIsIGppZmZpZXMgKyBxLT51bnBsdWdfZGVsYXkpOwogCQlibGtfYWRkX3RyYWNlX2dlbmVyaWMocSwgTlVMTCwgMCwgQkxLX1RBX1BMVUcpOwogCX0KQEAgLTIxNywxMCArMjIwLDkgQEAKIHsKIAlXQVJOX09OKCFpcnFzX2Rpc2FibGVkKCkpOwogCi0JaWYgKCF0ZXN0X2JpdChRVUVVRV9GTEFHX1BMVUdHRUQsICZxLT5xdWV1ZV9mbGFncykpCisJaWYgKCFxdWV1ZV9mbGFnX3Rlc3RfYW5kX2NsZWFyKFFVRVVFX0ZMQUdfUExVR0dFRCwgcSkpCiAJCXJldHVybiAwOwogCi0JcXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX1BMVUdHRUQsIHEpOwogCWRlbF90aW1lcigmcS0+dW5wbHVnX3RpbWVyKTsKIAlyZXR1cm4gMTsKIH0KQEAgLTMyNCw4ICszMjYsNyBAQAogCSAqIG9uZSBsZXZlbCBvZiByZWN1cnNpb24gaXMgb2sgYW5kIGlzIG11Y2ggZmFzdGVyIHRoYW4ga2lja2luZwogCSAqIHRoZSB1bnBsdWcgaGFuZGxpbmcKIAkgKi8KLQlpZiAoIXRlc3RfYml0KFFVRVVFX0ZMQUdfUkVFTlRFUiwgJnEtPnF1ZXVlX2ZsYWdzKSkgewotCQlxdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX1JFRU5URVIsIHEpOworCWlmICghcXVldWVfZmxhZ190ZXN0X2FuZF9zZXQoUVVFVUVfRkxBR19SRUVOVEVSLCBxKSkgewogCQlxLT5yZXF1ZXN0X2ZuKHEpOwogCQlxdWV1ZV9mbGFnX2NsZWFyKFFVRVVFX0ZMQUdfUkVFTlRFUiwgcSk7CiAJfSBlbHNlIHsKQEAgLTM5MCw4ICszOTEsNyBAQAogCSAqIGhhbmRsaW5nIHJlaW52b2tlIHRoZSBoYW5kbGVyIHNob3J0bHkgaWYgd2UgYWxyZWFkeSBnb3QgdGhlcmUuCiAJICovCiAJaWYgKCFlbHZfcXVldWVfZW1wdHkocSkpIHsKLQkJaWYgKCF0ZXN0X2JpdChRVUVVRV9GTEFHX1JFRU5URVIsICZxLT5xdWV1ZV9mbGFncykpIHsKLQkJCXF1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfUkVFTlRFUiwgcSk7CisJCWlmICghcXVldWVfZmxhZ190ZXN0X2FuZF9zZXQoUVVFVUVfRkxBR19SRUVOVEVSLCBxKSkgewogCQkJcS0+cmVxdWVzdF9mbihxKTsKIAkJCXF1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19SRUVOVEVSLCBxKTsKIAkJfSBlbHNlIHsKQEAgLTEwNDIsMTUgKzEwNDIsOSBAQAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSByZXEtPnE7CiAKLQkvKgotCSAqIEdlZSwgSURFIGNhbGxzIGluIHcvIE5VTEwgcS4gIEZpeCBJREUgYW5kIHJlbW92ZSB0aGUKLQkgKiBmb2xsb3dpbmcgaWYgKHEpIHRlc3QuCi0JICovCi0JaWYgKHEpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUocS0+cXVldWVfbG9jaywgZmxhZ3MpOwotCQlfX2Jsa19wdXRfcmVxdWVzdChxLCByZXEpOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHEtPnF1ZXVlX2xvY2ssIGZsYWdzKTsKLQl9CisJc3Bpbl9sb2NrX2lycXNhdmUocS0+cXVldWVfbG9jaywgZmxhZ3MpOworCV9fYmxrX3B1dF9yZXF1ZXN0KHEsIHJlcSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShxLT5xdWV1ZV9sb2NrLCBmbGFncyk7CiB9CiBFWFBPUlRfU1lNQk9MKGJsa19wdXRfcmVxdWVzdCk7CiAKQEAgLTEzODEsNiArMTM3NSw5IEBACiAJCSAqLwogCQlibGtfcGFydGl0aW9uX3JlbWFwKGJpbyk7CiAKKwkJaWYgKGJpb19pbnRlZ3JpdHlfZW5hYmxlZChiaW8pICYmIGJpb19pbnRlZ3JpdHlfcHJlcChiaW8pKQorCQkJZ290byBlbmRfaW87CisKIAkJaWYgKG9sZF9zZWN0b3IgIT0gLTEpCiAJCQlibGtfYWRkX3RyYWNlX3JlbWFwKHEsIGJpbywgb2xkX2RldiwgYmlvLT5iaV9zZWN0b3IsCiAJCQkJCSAgICBvbGRfc2VjdG9yKTsKQEAgLTIwNDUsNyArMjA0Miw3IEBACiAJZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpCiAJCUlOSVRfTElTVF9IRUFEKCZwZXJfY3B1KGJsa19jcHVfZG9uZSwgaSkpOwogCi0Jb3Blbl9zb2Z0aXJxKEJMT0NLX1NPRlRJUlEsIGJsa19kb25lX3NvZnRpcnEsIE5VTEwpOworCW9wZW5fc29mdGlycShCTE9DS19TT0ZUSVJRLCBibGtfZG9uZV9zb2Z0aXJxKTsKIAlyZWdpc3Rlcl9ob3RjcHVfbm90aWZpZXIoJmJsa19jcHVfbm90aWZpZXIpOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9ibG9jay9ibGstZXhlYy5jIGIvYmxvY2svYmxrLWV4ZWMuYwppbmRleCAzOTFkZDYyLi45YmNlZmY3IDEwMDY0NAotLS0gYS9ibG9jay9ibGstZXhlYy5jCisrKyBiL2Jsb2NrL2Jsay1leGVjLmMKQEAgLTE4LDcgKzE4LDcgQEAKICAqIEBycTogcmVxdWVzdCB0byBjb21wbGV0ZQogICogQGVycm9yOiBlbmQgaW8gc3RhdHVzIG9mIHRoZSByZXF1ZXN0CiAgKi8KLXZvaWQgYmxrX2VuZF9zeW5jX3JxKHN0cnVjdCByZXF1ZXN0ICpycSwgaW50IGVycm9yKQorc3RhdGljIHZvaWQgYmxrX2VuZF9zeW5jX3JxKHN0cnVjdCByZXF1ZXN0ICpycSwgaW50IGVycm9yKQogewogCXN0cnVjdCBjb21wbGV0aW9uICp3YWl0aW5nID0gcnEtPmVuZF9pb19kYXRhOwogCkBAIC0zMSw3ICszMSw2IEBACiAJICovCiAJY29tcGxldGUod2FpdGluZyk7CiB9Ci1FWFBPUlRfU1lNQk9MKGJsa19lbmRfc3luY19ycSk7CiAKIC8qKgogICogYmxrX2V4ZWN1dGVfcnFfbm93YWl0IC0gaW5zZXJ0IGEgcmVxdWVzdCBpbnRvIHF1ZXVlIGZvciBleGVjdXRpb24KQEAgLTU4LDYgKzU3LDkgQEAKIAlzcGluX2xvY2tfaXJxKHEtPnF1ZXVlX2xvY2spOwogCV9fZWx2X2FkZF9yZXF1ZXN0KHEsIHJxLCB3aGVyZSwgMSk7CiAJX19nZW5lcmljX3VucGx1Z19kZXZpY2UocSk7CisJLyogdGhlIHF1ZXVlIGlzIHN0b3BwZWQgc28gaXQgd29uJ3QgYmUgcGx1Z2dlZCt1bnBsdWdnZWQgKi8KKwlpZiAoYmxrX3BtX3Jlc3VtZV9yZXF1ZXN0KHJxKSkKKwkJcS0+cmVxdWVzdF9mbihxKTsKIAlzcGluX3VubG9ja19pcnEocS0+cXVldWVfbG9jayk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChibGtfZXhlY3V0ZV9ycV9ub3dhaXQpOwpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLWludGVncml0eS5jIGIvYmxvY2svYmxrLWludGVncml0eS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMWE4NDcKLS0tIC9kZXYvbnVsbAorKysgYi9ibG9jay9ibGstaW50ZWdyaXR5LmMKQEAgLTAsMCArMSwzODEgQEAKKy8qCisgKiBibGstaW50ZWdyaXR5LmMgLSBCbG9jayBsYXllciBkYXRhIGludGVncml0eSBleHRlbnNpb25zCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IE9yYWNsZSBDb3Jwb3JhdGlvbgorICogV3JpdHRlbiBieTogTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uCisgKiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwKKyAqIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L21lbXBvb2wuaD4KKyNpbmNsdWRlIDxsaW51eC9iaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgorCisjaW5jbHVkZSAiYmxrLmgiCisKK3N0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqaW50ZWdyaXR5X2NhY2hlcDsKKworLyoqCisgKiBibGtfcnFfY291bnRfaW50ZWdyaXR5X3NnIC0gQ291bnQgbnVtYmVyIG9mIGludGVncml0eSBzY2F0dGVybGlzdCBlbGVtZW50cworICogQHJxOgkJcmVxdWVzdCB3aXRoIGludGVncml0eSBtZXRhZGF0YSBhdHRhY2hlZAorICoKKyAqIERlc2NyaXB0aW9uOiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgcmVxdWlyZWQgaW4gYQorICogc2NhdHRlcmxpc3QgY29ycmVzcG9uZGluZyB0byB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhIGluIGEgcmVxdWVzdC4KKyAqLworaW50IGJsa19ycV9jb3VudF9pbnRlZ3JpdHlfc2coc3RydWN0IHJlcXVlc3QgKnJxKQoreworCXN0cnVjdCBiaW9fdmVjICppdiwgKml2cHJ2OworCXN0cnVjdCByZXFfaXRlcmF0b3IgaXRlcjsKKwl1bnNpZ25lZCBpbnQgc2VnbWVudHM7CisKKwlpdnBydiA9IE5VTEw7CisJc2VnbWVudHMgPSAwOworCisJcnFfZm9yX2VhY2hfaW50ZWdyaXR5X3NlZ21lbnQoaXYsIHJxLCBpdGVyKSB7CisKKwkJaWYgKCFpdnBydiB8fCAhQklPVkVDX1BIWVNfTUVSR0VBQkxFKGl2cHJ2LCBpdikpCisJCQlzZWdtZW50cysrOworCisJCWl2cHJ2ID0gaXY7CisJfQorCisJcmV0dXJuIHNlZ21lbnRzOworfQorRVhQT1JUX1NZTUJPTChibGtfcnFfY291bnRfaW50ZWdyaXR5X3NnKTsKKworLyoqCisgKiBibGtfcnFfbWFwX2ludGVncml0eV9zZyAtIE1hcCBpbnRlZ3JpdHkgbWV0YWRhdGEgaW50byBhIHNjYXR0ZXJsaXN0CisgKiBAcnE6CQlyZXF1ZXN0IHdpdGggaW50ZWdyaXR5IG1ldGFkYXRhIGF0dGFjaGVkCisgKiBAc2dsaXN0Ogl0YXJnZXQgc2NhdHRlcmxpc3QKKyAqCisgKiBEZXNjcmlwdGlvbjogTWFwIHRoZSBpbnRlZ3JpdHkgdmVjdG9ycyBpbiByZXF1ZXN0IGludG8gYQorICogc2NhdHRlcmxpc3QuICBUaGUgc2NhdHRlcmxpc3QgbXVzdCBiZSBiaWcgZW5vdWdoIHRvIGhvbGQgYWxsCisgKiBlbGVtZW50cy4gIEkuZS4gc2l6ZWQgdXNpbmcgYmxrX3JxX2NvdW50X2ludGVncml0eV9zZygpLgorICovCitpbnQgYmxrX3JxX21hcF9pbnRlZ3JpdHlfc2coc3RydWN0IHJlcXVlc3QgKnJxLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCkKK3sKKwlzdHJ1Y3QgYmlvX3ZlYyAqaXYsICppdnBydjsKKwlzdHJ1Y3QgcmVxX2l0ZXJhdG9yIGl0ZXI7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKKwl1bnNpZ25lZCBpbnQgc2VnbWVudHM7CisKKwlpdnBydiA9IE5VTEw7CisJc2cgPSBOVUxMOworCXNlZ21lbnRzID0gMDsKKworCXJxX2Zvcl9lYWNoX2ludGVncml0eV9zZWdtZW50KGl2LCBycSwgaXRlcikgeworCisJCWlmIChpdnBydikgeworCQkJaWYgKCFCSU9WRUNfUEhZU19NRVJHRUFCTEUoaXZwcnYsIGl2KSkKKwkJCQlnb3RvIG5ld19zZWdtZW50OworCisJCQlzZy0+bGVuZ3RoICs9IGl2LT5idl9sZW47CisJCX0gZWxzZSB7CituZXdfc2VnbWVudDoKKwkJCWlmICghc2cpCisJCQkJc2cgPSBzZ2xpc3Q7CisJCQllbHNlIHsKKwkJCQlzZy0+cGFnZV9saW5rICY9IH4weDAyOworCQkJCXNnID0gc2dfbmV4dChzZyk7CisJCQl9CisKKwkJCXNnX3NldF9wYWdlKHNnLCBpdi0+YnZfcGFnZSwgaXYtPmJ2X2xlbiwgaXYtPmJ2X29mZnNldCk7CisJCQlzZWdtZW50cysrOworCQl9CisKKwkJaXZwcnYgPSBpdjsKKwl9CisKKwlpZiAoc2cpCisJCXNnX21hcmtfZW5kKHNnKTsKKworCXJldHVybiBzZWdtZW50czsKK30KK0VYUE9SVF9TWU1CT0woYmxrX3JxX21hcF9pbnRlZ3JpdHlfc2cpOworCisvKioKKyAqIGJsa19pbnRlZ3JpdHlfY29tcGFyZSAtIENvbXBhcmUgaW50ZWdyaXR5IHByb2ZpbGUgb2YgdHdvIGJsb2NrIGRldmljZXMKKyAqIEBiMToJCURldmljZSB0byBjb21wYXJlCisgKiBAYjI6CQlEZXZpY2UgdG8gY29tcGFyZQorICoKKyAqIERlc2NyaXB0aW9uOiBNZXRhLWRldmljZXMgbGlrZSBETSBhbmQgTUQgbmVlZCB0byB2ZXJpZnkgdGhhdCBhbGwKKyAqIHN1Yi1kZXZpY2VzIHVzZSB0aGUgc2FtZSBpbnRlZ3JpdHkgZm9ybWF0IGJlZm9yZSBhZHZlcnRpc2luZyB0bworICogdXBwZXIgbGF5ZXJzIHRoYXQgdGhleSBjYW4gc2VuZC9yZWNlaXZlIGludGVncml0eSBtZXRhZGF0YS4gIFRoaXMKKyAqIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdHdvIGJsb2NrIGRldmljZXMgaGF2ZQorICogY29tcGF0aWJsZSBpbnRlZ3JpdHkgZm9ybWF0cy4KKyAqLworaW50IGJsa19pbnRlZ3JpdHlfY29tcGFyZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZDEsIHN0cnVjdCBibG9ja19kZXZpY2UgKmJkMikKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYjEgPSBiZDEtPmJkX2Rpc2stPmludGVncml0eTsKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYjIgPSBiZDItPmJkX2Rpc2stPmludGVncml0eTsKKworCUJVR19PTihiZDEtPmJkX2Rpc2sgPT0gTlVMTCk7CisJQlVHX09OKGJkMi0+YmRfZGlzayA9PSBOVUxMKTsKKworCWlmICghYjEgfHwgIWIyKQorCQlyZXR1cm4gMDsKKworCWlmIChiMS0+c2VjdG9yX3NpemUgIT0gYjItPnNlY3Rvcl9zaXplKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6ICVzLyVzIHNlY3RvciBzeiAldSAhPSAldVxuIiwgX19mdW5jX18sCisJCSAgICAgICBiZDEtPmJkX2Rpc2stPmRpc2tfbmFtZSwgYmQyLT5iZF9kaXNrLT5kaXNrX25hbWUsCisJCSAgICAgICBiMS0+c2VjdG9yX3NpemUsIGIyLT5zZWN0b3Jfc2l6ZSk7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAoYjEtPnR1cGxlX3NpemUgIT0gYjItPnR1cGxlX3NpemUpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogJXMvJXMgdHVwbGUgc3ogJXUgIT0gJXVcbiIsIF9fZnVuY19fLAorCQkgICAgICAgYmQxLT5iZF9kaXNrLT5kaXNrX25hbWUsIGJkMi0+YmRfZGlzay0+ZGlza19uYW1lLAorCQkgICAgICAgYjEtPnR1cGxlX3NpemUsIGIyLT50dXBsZV9zaXplKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChiMS0+dGFnX3NpemUgJiYgYjItPnRhZ19zaXplICYmIChiMS0+dGFnX3NpemUgIT0gYjItPnRhZ19zaXplKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiAlcy8lcyB0YWcgc3ogJXUgIT0gJXVcbiIsIF9fZnVuY19fLAorCQkgICAgICAgYmQxLT5iZF9kaXNrLT5kaXNrX25hbWUsIGJkMi0+YmRfZGlzay0+ZGlza19uYW1lLAorCQkgICAgICAgYjEtPnRhZ19zaXplLCBiMi0+dGFnX3NpemUpOworCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKHN0cmNtcChiMS0+bmFtZSwgYjItPm5hbWUpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6ICVzLyVzIHR5cGUgJXMgIT0gJXNcbiIsIF9fZnVuY19fLAorCQkgICAgICAgYmQxLT5iZF9kaXNrLT5kaXNrX25hbWUsIGJkMi0+YmRfZGlzay0+ZGlza19uYW1lLAorCQkgICAgICAgYjEtPm5hbWUsIGIyLT5uYW1lKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChibGtfaW50ZWdyaXR5X2NvbXBhcmUpOworCitzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5IHsKKwlzdHJ1Y3QgYXR0cmlidXRlIGF0dHI7CisJc3NpemVfdCAoKnNob3cpKHN0cnVjdCBibGtfaW50ZWdyaXR5ICosIGNoYXIgKik7CisJc3NpemVfdCAoKnN0b3JlKShzdHJ1Y3QgYmxrX2ludGVncml0eSAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7Cit9OworCitzdGF0aWMgc3NpemVfdCBpbnRlZ3JpdHlfYXR0cl9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAorCQkJCSAgIGNoYXIgKnBhZ2UpCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0KKwkJY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBibGtfaW50ZWdyaXR5LCBrb2JqKTsKKwlzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5ICplbnRyeSA9CisJCWNvbnRhaW5lcl9vZihhdHRyLCBzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5LCBhdHRyKTsKKworCXJldHVybiBlbnRyeS0+c2hvdyhiaSwgcGFnZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV9hdHRyX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCSAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBjb25zdCBjaGFyICpwYWdlLAorCQkJCSAgICBzaXplX3QgY291bnQpCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0KKwkJY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBibGtfaW50ZWdyaXR5LCBrb2JqKTsKKwlzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5ICplbnRyeSA9CisJCWNvbnRhaW5lcl9vZihhdHRyLCBzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5LCBhdHRyKTsKKwlzc2l6ZV90IHJldCA9IDA7CisKKwlpZiAoZW50cnktPnN0b3JlKQorCQlyZXQgPSBlbnRyeS0+c3RvcmUoYmksIHBhZ2UsIGNvdW50KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV9mb3JtYXRfc2hvdyhzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksIGNoYXIgKnBhZ2UpCit7CisJaWYgKGJpICE9IE5VTEwgJiYgYmktPm5hbWUgIT0gTlVMTCkKKwkJcmV0dXJuIHNwcmludGYocGFnZSwgIiVzXG4iLCBiaS0+bmFtZSk7CisJZWxzZQorCQlyZXR1cm4gc3ByaW50ZihwYWdlLCAibm9uZVxuIik7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV90YWdfc2l6ZV9zaG93KHN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSwgY2hhciAqcGFnZSkKK3sKKwlpZiAoYmkgIT0gTlVMTCkKKwkJcmV0dXJuIHNwcmludGYocGFnZSwgIiV1XG4iLCBiaS0+dGFnX3NpemUpOworCWVsc2UKKwkJcmV0dXJuIHNwcmludGYocGFnZSwgIjBcbiIpOworfQorCitzdGF0aWMgc3NpemVfdCBpbnRlZ3JpdHlfcmVhZF9zdG9yZShzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksCisJCQkJICAgIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVfdCBjb3VudCkKK3sKKwljaGFyICpwID0gKGNoYXIgKikgcGFnZTsKKwl1bnNpZ25lZCBsb25nIHZhbCA9IHNpbXBsZV9zdHJ0b3VsKHAsICZwLCAxMCk7CisKKwlpZiAodmFsKQorCQliaS0+ZmxhZ3MgfD0gSU5URUdSSVRZX0ZMQUdfUkVBRDsKKwllbHNlCisJCWJpLT5mbGFncyAmPSB+SU5URUdSSVRZX0ZMQUdfUkVBRDsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIHNzaXplX3QgaW50ZWdyaXR5X3JlYWRfc2hvdyhzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHNwcmludGYocGFnZSwgIiVkXG4iLCAoYmktPmZsYWdzICYgSU5URUdSSVRZX0ZMQUdfUkVBRCkgIT0gMCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV93cml0ZV9zdG9yZShzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksCisJCQkJICAgICBjb25zdCBjaGFyICpwYWdlLCBzaXplX3QgY291bnQpCit7CisJY2hhciAqcCA9IChjaGFyICopIHBhZ2U7CisJdW5zaWduZWQgbG9uZyB2YWwgPSBzaW1wbGVfc3RydG91bChwLCAmcCwgMTApOworCisJaWYgKHZhbCkKKwkJYmktPmZsYWdzIHw9IElOVEVHUklUWV9GTEFHX1dSSVRFOworCWVsc2UKKwkJYmktPmZsYWdzICY9IH5JTlRFR1JJVFlfRkxBR19XUklURTsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIHNzaXplX3QgaW50ZWdyaXR5X3dyaXRlX3Nob3coc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpLCBjaGFyICpwYWdlKQoreworCXJldHVybiBzcHJpbnRmKHBhZ2UsICIlZFxuIiwgKGJpLT5mbGFncyAmIElOVEVHUklUWV9GTEFHX1dSSVRFKSAhPSAwKTsKK30KKworc3RhdGljIHN0cnVjdCBpbnRlZ3JpdHlfc3lzZnNfZW50cnkgaW50ZWdyaXR5X2Zvcm1hdF9lbnRyeSA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiZm9ybWF0IiwgLm1vZGUgPSBTX0lSVUdPIH0sCisJLnNob3cgPSBpbnRlZ3JpdHlfZm9ybWF0X3Nob3csCit9OworCitzdGF0aWMgc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSBpbnRlZ3JpdHlfdGFnX3NpemVfZW50cnkgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gInRhZ19zaXplIiwgLm1vZGUgPSBTX0lSVUdPIH0sCisJLnNob3cgPSBpbnRlZ3JpdHlfdGFnX3NpemVfc2hvdywKK307CisKK3N0YXRpYyBzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5IGludGVncml0eV9yZWFkX2VudHJ5ID0geworCS5hdHRyID0geyAubmFtZSA9ICJyZWFkX3ZlcmlmeSIsIC5tb2RlID0gU19JUlVHTyB8IFNfSVdVU1IgfSwKKwkuc2hvdyA9IGludGVncml0eV9yZWFkX3Nob3csCisJLnN0b3JlID0gaW50ZWdyaXR5X3JlYWRfc3RvcmUsCit9OworCitzdGF0aWMgc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSBpbnRlZ3JpdHlfd3JpdGVfZW50cnkgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gIndyaXRlX2dlbmVyYXRlIiwgLm1vZGUgPSBTX0lSVUdPIHwgU19JV1VTUiB9LAorCS5zaG93ID0gaW50ZWdyaXR5X3dyaXRlX3Nob3csCisJLnN0b3JlID0gaW50ZWdyaXR5X3dyaXRlX3N0b3JlLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmludGVncml0eV9hdHRyc1tdID0geworCSZpbnRlZ3JpdHlfZm9ybWF0X2VudHJ5LmF0dHIsCisJJmludGVncml0eV90YWdfc2l6ZV9lbnRyeS5hdHRyLAorCSZpbnRlZ3JpdHlfcmVhZF9lbnRyeS5hdHRyLAorCSZpbnRlZ3JpdHlfd3JpdGVfZW50cnkuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBzeXNmc19vcHMgaW50ZWdyaXR5X29wcyA9IHsKKwkuc2hvdwk9ICZpbnRlZ3JpdHlfYXR0cl9zaG93LAorCS5zdG9yZQk9ICZpbnRlZ3JpdHlfYXR0cl9zdG9yZSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGJsa19kZXZfaW50ZWdyaXR5X2luaXQodm9pZCkKK3sKKwlpbnRlZ3JpdHlfY2FjaGVwID0ga21lbV9jYWNoZV9jcmVhdGUoImJsa2Rldl9pbnRlZ3JpdHkiLAorCQkJCQkgICAgIHNpemVvZihzdHJ1Y3QgYmxrX2ludGVncml0eSksCisJCQkJCSAgICAgMCwgU0xBQl9QQU5JQywgTlVMTCk7CisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwoYmxrX2Rldl9pbnRlZ3JpdHlfaW5pdCk7CisKK3N0YXRpYyB2b2lkIGJsa19pbnRlZ3JpdHlfcmVsZWFzZShzdHJ1Y3Qga29iamVjdCAqa29iaikKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkgPQorCQljb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGJsa19pbnRlZ3JpdHksIGtvYmopOworCisJa21lbV9jYWNoZV9mcmVlKGludGVncml0eV9jYWNoZXAsIGJpKTsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX3R5cGUgaW50ZWdyaXR5X2t0eXBlID0geworCS5kZWZhdWx0X2F0dHJzCT0gaW50ZWdyaXR5X2F0dHJzLAorCS5zeXNmc19vcHMJPSAmaW50ZWdyaXR5X29wcywKKwkucmVsZWFzZQk9IGJsa19pbnRlZ3JpdHlfcmVsZWFzZSwKK307CisKKy8qKgorICogYmxrX2ludGVncml0eV9yZWdpc3RlciAtIFJlZ2lzdGVyIGEgZ2VuZGlzayBhcyBiZWluZyBpbnRlZ3JpdHktY2FwYWJsZQorICogQGRpc2s6CXN0cnVjdCBnZW5kaXNrIHBvaW50ZXIgdG8gbWFrZSBpbnRlZ3JpdHktYXdhcmUKKyAqIEB0ZW1wbGF0ZToJaW50ZWdyaXR5IHByb2ZpbGUKKyAqCisgKiBEZXNjcmlwdGlvbjogV2hlbiBhIGRldmljZSBuZWVkcyB0byBhZHZlcnRpc2UgaXRzZWxmIGFzIGJlaW5nIGFibGUKKyAqIHRvIHNlbmQvcmVjZWl2ZSBpbnRlZ3JpdHkgbWV0YWRhdGEgaXQgbXVzdCB1c2UgdGhpcyBmdW5jdGlvbiB0bworICogcmVnaXN0ZXIgdGhlIGNhcGFiaWxpdHkgd2l0aCB0aGUgYmxvY2sgbGF5ZXIuICBUaGUgdGVtcGxhdGUgaXMgYQorICogYmxrX2ludGVncml0eSBzdHJ1Y3Qgd2l0aCB2YWx1ZXMgYXBwcm9wcmlhdGUgZm9yIHRoZSB1bmRlcmx5aW5nCisgKiBoYXJkd2FyZS4gIFNlZSBEb2N1bWVudGF0aW9uL2Jsb2NrL2RhdGEtaW50ZWdyaXR5LnR4dC4KKyAqLworaW50IGJsa19pbnRlZ3JpdHlfcmVnaXN0ZXIoc3RydWN0IGdlbmRpc2sgKmRpc2ssIHN0cnVjdCBibGtfaW50ZWdyaXR5ICp0ZW1wbGF0ZSkKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmk7CisKKwlCVUdfT04oZGlzayA9PSBOVUxMKTsKKwlCVUdfT04odGVtcGxhdGUgPT0gTlVMTCk7CisKKwlpZiAoZGlzay0+aW50ZWdyaXR5ID09IE5VTEwpIHsKKwkJYmkgPSBrbWVtX2NhY2hlX2FsbG9jKGludGVncml0eV9jYWNoZXAsCisJCQkJCQlHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CisJCWlmICghYmkpCisJCQlyZXR1cm4gLTE7CisKKwkJaWYgKGtvYmplY3RfaW5pdF9hbmRfYWRkKCZiaS0+a29iaiwgJmludGVncml0eV9rdHlwZSwKKwkJCQkJICZkaXNrLT5kZXYua29iaiwgIiVzIiwgImludGVncml0eSIpKSB7CisJCQlrbWVtX2NhY2hlX2ZyZWUoaW50ZWdyaXR5X2NhY2hlcCwgYmkpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJa29iamVjdF91ZXZlbnQoJmJpLT5rb2JqLCBLT0JKX0FERCk7CisKKwkJYmktPmZsYWdzIHw9IElOVEVHUklUWV9GTEFHX1JFQUQgfCBJTlRFR1JJVFlfRkxBR19XUklURTsKKwkJYmktPnNlY3Rvcl9zaXplID0gZGlzay0+cXVldWUtPmhhcmRzZWN0X3NpemU7CisJCWRpc2stPmludGVncml0eSA9IGJpOworCX0gZWxzZQorCQliaSA9IGRpc2stPmludGVncml0eTsKKworCS8qIFVzZSB0aGUgcHJvdmlkZWQgcHJvZmlsZSBhcyB0ZW1wbGF0ZSAqLworCWJpLT5uYW1lID0gdGVtcGxhdGUtPm5hbWU7CisJYmktPmdlbmVyYXRlX2ZuID0gdGVtcGxhdGUtPmdlbmVyYXRlX2ZuOworCWJpLT52ZXJpZnlfZm4gPSB0ZW1wbGF0ZS0+dmVyaWZ5X2ZuOworCWJpLT50dXBsZV9zaXplID0gdGVtcGxhdGUtPnR1cGxlX3NpemU7CisJYmktPnNldF90YWdfZm4gPSB0ZW1wbGF0ZS0+c2V0X3RhZ19mbjsKKwliaS0+Z2V0X3RhZ19mbiA9IHRlbXBsYXRlLT5nZXRfdGFnX2ZuOworCWJpLT50YWdfc2l6ZSA9IHRlbXBsYXRlLT50YWdfc2l6ZTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChibGtfaW50ZWdyaXR5X3JlZ2lzdGVyKTsKKworLyoqCisgKiBibGtfaW50ZWdyaXR5X3VucmVnaXN0ZXIgLSBSZW1vdmUgYmxvY2sgaW50ZWdyaXR5IHByb2ZpbGUKKyAqIEBkaXNrOglkaXNrIHdob3NlIGludGVncml0eSBwcm9maWxlIHRvIGRlYWxsb2NhdGUKKyAqCisgKiBEZXNjcmlwdGlvbjogVGhpcyBmdW5jdGlvbiBmcmVlcyBhbGwgbWVtb3J5IHVzZWQgYnkgdGhlIGJsb2NrCisgKiBpbnRlZ3JpdHkgcHJvZmlsZS4gIFRvIGJlIGNhbGxlZCBhdCBkZXZpY2UgdGVhcmRvd24uCisgKi8KK3ZvaWQgYmxrX2ludGVncml0eV91bnJlZ2lzdGVyKHN0cnVjdCBnZW5kaXNrICpkaXNrKQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaTsKKworCWlmICghZGlzayB8fCAhZGlzay0+aW50ZWdyaXR5KQorCQlyZXR1cm47CisKKwliaSA9IGRpc2stPmludGVncml0eTsKKworCWtvYmplY3RfdWV2ZW50KCZiaS0+a29iaiwgS09CSl9SRU1PVkUpOworCWtvYmplY3RfZGVsKCZiaS0+a29iaik7CisJa29iamVjdF9wdXQoJmRpc2stPmRldi5rb2JqKTsKKwlrbWVtX2NhY2hlX2ZyZWUoaW50ZWdyaXR5X2NhY2hlcCwgYmkpOworfQorRVhQT1JUX1NZTUJPTChibGtfaW50ZWdyaXR5X3VucmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLW1hcC5jIGIvYmxvY2svYmxrLW1hcC5jCmluZGV4IDBiMWFmNWEuLmRkZDk2ZmIgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1tYXAuYworKysgYi9ibG9jay9ibGstbWFwLmMKQEAgLTIxMCw2ICsyMTAsNyBAQAogCWlmICghYmlvX2ZsYWdnZWQoYmlvLCBCSU9fVVNFUl9NQVBQRUQpKQogCQlycS0+Y21kX2ZsYWdzIHw9IFJFUV9DT1BZX1VTRVI7CiAKKwlibGtfcXVldWVfYm91bmNlKHEsICZiaW8pOwogCWJpb19nZXQoYmlvKTsKIAlibGtfcnFfYmlvX3ByZXAocSwgcnEsIGJpbyk7CiAJcnEtPmJ1ZmZlciA9IHJxLT5kYXRhID0gTlVMTDsKQEAgLTI2OCw2ICsyNjksNyBAQAogCWludCByZWFkaW5nID0gcnFfZGF0YV9kaXIocnEpID09IFJFQUQ7CiAJaW50IGRvX2NvcHkgPSAwOwogCXN0cnVjdCBiaW8gKmJpbzsKKwl1bnNpZ25lZCBsb25nIHN0YWNrX21hc2sgPSB+KFRIUkVBRF9TSVpFIC0gMSk7CiAKIAlpZiAobGVuID4gKHEtPm1heF9od19zZWN0b3JzIDw8IDkpKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTI3OCw2ICsyODAsMTAgQEAKIAlhbGlnbm1lbnQgPSBxdWV1ZV9kbWFfYWxpZ25tZW50KHEpIHwgcS0+ZG1hX3BhZF9tYXNrOwogCWRvX2NvcHkgPSAoKGthZGRyICYgYWxpZ25tZW50KSB8fCAobGVuICYgYWxpZ25tZW50KSk7CiAKKwlpZiAoISgoa2FkZHIgJiBzdGFja19tYXNrKSBeCisJICAgICAgKCh1bnNpZ25lZCBsb25nKWN1cnJlbnQtPnN0YWNrICYgc3RhY2tfbWFzaykpKQorCQlkb19jb3B5ID0gMTsKKwogCWlmIChkb19jb3B5KQogCQliaW8gPSBiaW9fY29weV9rZXJuKHEsIGtidWYsIGxlbiwgZ2ZwX21hc2ssIHJlYWRpbmcpOwogCWVsc2UKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tZXJnZS5jIGIvYmxvY2svYmxrLW1lcmdlLmMKaW5kZXggNjUxMTM2YS4uNWVmYzllNyAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLW1lcmdlLmMKKysrIGIvYmxvY2svYmxrLW1lcmdlLmMKQEAgLTQ0MSw2ICs0NDEsOSBAQAogCSAgICB8fCBuZXh0LT5zcGVjaWFsKQogCQlyZXR1cm4gMDsKIAorCWlmIChibGtfaW50ZWdyaXR5X3JxKHJlcSkgIT0gYmxrX2ludGVncml0eV9ycShuZXh0KSkKKwkJcmV0dXJuIDA7CisKIAkvKgogCSAqIElmIHdlIGFyZSBhbGxvd2VkIHRvIG1lcmdlLCB0aGVuIGFwcGVuZCBiaW8gbGlzdAogCSAqIGZyb20gbmV4dCB0byBycSBhbmQgcmVsZWFzZSBuZXh0LiBtZXJnZV9yZXF1ZXN0c19mbgpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLXNldHRpbmdzLmMgYi9ibG9jay9ibGstc2V0dGluZ3MuYwppbmRleCA4ZGQ4NjQxLi5kZmM3NzAxIDEwMDY0NAotLS0gYS9ibG9jay9ibGstc2V0dGluZ3MuYworKysgYi9ibG9jay9ibGstc2V0dGluZ3MuYwpAQCAtMzAyLDExICszMDIsMTAgQEAKICAqIEBxOiAgICAgdGhlIHJlcXVlc3QgcXVldWUgZm9yIHRoZSBkZXZpY2UKICAqIEBtYXNrOiAgcGFkIG1hc2sKICAqCi0gKiBTZXQgcGFkIG1hc2suICBEaXJlY3QgSU8gcmVxdWVzdHMgYXJlIHBhZGRlZCB0byB0aGUgbWFzayBzcGVjaWZpZWQuCisgKiBTZXQgZG1hIHBhZCBtYXNrLgogICoKLSAqIEFwcGVuZGluZyBwYWQgYnVmZmVyIHRvIGEgcmVxdWVzdCBtb2RpZmllcyAtPmRhdGFfbGVuIHN1Y2ggdGhhdCBpdAotICogaW5jbHVkZXMgdGhlIHBhZCBidWZmZXIuICBUaGUgb3JpZ2luYWwgcmVxdWVzdGVkIGRhdGEgbGVuZ3RoIGNhbiBiZQotICogb2J0YWluZWQgdXNpbmcgYmxrX3JxX3Jhd19kYXRhX2xlbigpLgorICogQXBwZW5kaW5nIHBhZCBidWZmZXIgdG8gYSByZXF1ZXN0IG1vZGlmaWVzIHRoZSBsYXN0IGVudHJ5IG9mIGEKKyAqIHNjYXR0ZXIgbGlzdCBzdWNoIHRoYXQgaXQgaW5jbHVkZXMgdGhlIHBhZCBidWZmZXIuCiAgKiovCiB2b2lkIGJsa19xdWV1ZV9kbWFfcGFkKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCB1bnNpZ25lZCBpbnQgbWFzaykKIHsKQEAgLTMxNSw2ICszMTQsMjMgQEAKIEVYUE9SVF9TWU1CT0woYmxrX3F1ZXVlX2RtYV9wYWQpOwogCiAvKioKKyAqIGJsa19xdWV1ZV91cGRhdGVfZG1hX3BhZCAtIHVwZGF0ZSBwYWQgbWFzaworICogQHE6ICAgICB0aGUgcmVxdWVzdCBxdWV1ZSBmb3IgdGhlIGRldmljZQorICogQG1hc2s6ICBwYWQgbWFzaworICoKKyAqIFVwZGF0ZSBkbWEgcGFkIG1hc2suCisgKgorICogQXBwZW5kaW5nIHBhZCBidWZmZXIgdG8gYSByZXF1ZXN0IG1vZGlmaWVzIHRoZSBsYXN0IGVudHJ5IG9mIGEKKyAqIHNjYXR0ZXIgbGlzdCBzdWNoIHRoYXQgaXQgaW5jbHVkZXMgdGhlIHBhZCBidWZmZXIuCisgKiovCit2b2lkIGJsa19xdWV1ZV91cGRhdGVfZG1hX3BhZChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgdW5zaWduZWQgaW50IG1hc2spCit7CisJaWYgKG1hc2sgPiBxLT5kbWFfcGFkX21hc2spCisJCXEtPmRtYV9wYWRfbWFzayA9IG1hc2s7Cit9CitFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV91cGRhdGVfZG1hX3BhZCk7CisKKy8qKgogICogYmxrX3F1ZXVlX2RtYV9kcmFpbiAtIFNldCB1cCBhIGRyYWluIGJ1ZmZlciBmb3IgZXhjZXNzIGRtYS4KICAqIEBxOiAgdGhlIHJlcXVlc3QgcXVldWUgZm9yIHRoZSBkZXZpY2UKICAqIEBkbWFfZHJhaW5fbmVlZGVkOiBmbiB3aGljaCByZXR1cm5zIG5vbi16ZXJvIGlmIGRyYWluIGlzIG5lY2Vzc2FyeQpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLmggYi9ibG9jay9ibGsuaAppbmRleCA1OTc3NmFiLi5jNzlmMzBlIDEwMDY0NAotLS0gYS9ibG9jay9ibGsuaAorKysgYi9ibG9jay9ibGsuaApAQCAtNTEsNCArNTEsMTIgQEAKIAlyZXR1cm4gcS0+bnJfY29uZ2VzdGlvbl9vZmY7CiB9CiAKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKworI2RlZmluZSBycV9mb3JfZWFjaF9pbnRlZ3JpdHlfc2VnbWVudChidmwsIF9ycSwgX2l0ZXIpCQlcCisJX19ycV9mb3JfZWFjaF9iaW8oX2l0ZXIuYmlvLCBfcnEpCQkJXAorCQliaXBfZm9yX2VhY2hfdmVjKGJ2bCwgX2l0ZXIuYmlvLT5iaV9pbnRlZ3JpdHksIF9pdGVyLmkpCisKKyNlbmRpZiAvKiBCTEtfREVWX0lOVEVHUklUWSAqLworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsa3RyYWNlLmMgYi9ibG9jay9ibGt0cmFjZS5jCmluZGV4IDhkM2EyNzcuLmViOTY1MWMgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsa3RyYWNlLmMKKysrIGIvYmxvY2svYmxrdHJhY2UuYwpAQCAtMjQ0LDYgKzI0NCw3IEBACiBzdGF0aWMgdm9pZCBibGtfdHJhY2VfY2xlYW51cChzdHJ1Y3QgYmxrX3RyYWNlICpidCkKIHsKIAlyZWxheV9jbG9zZShidC0+cmNoYW4pOworCWRlYnVnZnNfcmVtb3ZlKGJ0LT5tc2dfZmlsZSk7CiAJZGVidWdmc19yZW1vdmUoYnQtPmRyb3BwZWRfZmlsZSk7CiAJYmxrX3JlbW92ZV90cmVlKGJ0LT5kaXIpOwogCWZyZWVfcGVyY3B1KGJ0LT5zZXF1ZW5jZSk7CkBAIC0yOTEsNiArMjkyLDQ0IEBACiAJLnJlYWQgPQkJYmxrX2Ryb3BwZWRfcmVhZCwKIH07CiAKK3N0YXRpYyBpbnQgYmxrX21zZ19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCWZpbHAtPnByaXZhdGVfZGF0YSA9IGlub2RlLT5pX3ByaXZhdGU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNzaXplX3QgYmxrX21zZ193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwKKwkJCQlzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKK3sKKwljaGFyICptc2c7CisJc3RydWN0IGJsa190cmFjZSAqYnQ7CisKKwlpZiAoY291bnQgPiBCTEtfVE5fTUFYX01TRykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltc2cgPSBrbWFsbG9jKGNvdW50LCBHRlBfS0VSTkVMKTsKKwlpZiAobXNnID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKGNvcHlfZnJvbV91c2VyKG1zZywgYnVmZmVyLCBjb3VudCkpIHsKKwkJa2ZyZWUobXNnKTsKKwkJcmV0dXJuIC1FRkFVTFQ7CisJfQorCisJYnQgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJX190cmFjZV9ub3RlX21lc3NhZ2UoYnQsICIlcyIsIG1zZyk7CisJa2ZyZWUobXNnKTsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYmxrX21zZ19mb3BzID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS5vcGVuID0JCWJsa19tc2dfb3BlbiwKKwkud3JpdGUgPQlibGtfbXNnX3dyaXRlLAorfTsKKwogLyoKICAqIEtlZXAgdHJhY2sgb2YgaG93IG1hbnkgdGltZXMgd2UgZW5jb3VudGVyZWQgYSBmdWxsIHN1YmJ1ZmZlciwgdG8gYWlkCiAgKiB0aGUgdXNlciBzcGFjZSBhcHAgaW4gdGVsbGluZyBob3cgbWFueSBsb3N0IGV2ZW50cyB0aGVyZSB3ZXJlLgpAQCAtMzgwLDYgKzQxOSwxMCBAQAogCWlmICghYnQtPmRyb3BwZWRfZmlsZSkKIAkJZ290byBlcnI7CiAKKwlidC0+bXNnX2ZpbGUgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJtc2ciLCAwMjIyLCBkaXIsIGJ0LCAmYmxrX21zZ19mb3BzKTsKKwlpZiAoIWJ0LT5tc2dfZmlsZSkKKwkJZ290byBlcnI7CisKIAlidC0+cmNoYW4gPSByZWxheV9vcGVuKCJ0cmFjZSIsIGRpciwgYnV0cy0+YnVmX3NpemUsCiAJCQkJYnV0cy0+YnVmX25yLCAmYmxrX3JlbGF5X2NhbGxiYWNrcywgYnQpOwogCWlmICghYnQtPnJjaGFuKQpAQCAtNDA5LDYgKzQ1Miw4IEBACiAJaWYgKGRpcikKIAkJYmxrX3JlbW92ZV90cmVlKGRpcik7CiAJaWYgKGJ0KSB7CisJCWlmIChidC0+bXNnX2ZpbGUpCisJCQlkZWJ1Z2ZzX3JlbW92ZShidC0+bXNnX2ZpbGUpOwogCQlpZiAoYnQtPmRyb3BwZWRfZmlsZSkKIAkJCWRlYnVnZnNfcmVtb3ZlKGJ0LT5kcm9wcGVkX2ZpbGUpOwogCQlmcmVlX3BlcmNwdShidC0+c2VxdWVuY2UpOwpkaWZmIC0tZ2l0IGEvYmxvY2svYnNnLmMgYi9ibG9jay9ic2cuYwppbmRleCBmMGI3Y2QzLi4wYjNiMjgyIDEwMDY0NAotLS0gYS9ibG9jay9ic2cuYworKysgYi9ibG9jay9ic2cuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgogI2luY2x1ZGUgPGxpbnV4L2lkci5oPgogI2luY2x1ZGUgPGxpbnV4L2JzZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxzY3NpL3Njc2kuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfaW9jdGwuaD4KQEAgLTQ0LDExICs0NSwxMiBAQAogCWNoYXIgbmFtZVtCVVNfSURfU0laRV07CiAJaW50IG1heF9xdWV1ZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpjbWRfZmlsdGVyOworCW1vZGVfdCAqZl9tb2RlOwogfTsKIAogZW51bSB7CiAJQlNHX0ZfQkxPQ0sJCT0gMSwKLQlCU0dfRl9XUklURV9QRVJNCT0gMiwKIH07CiAKICNkZWZpbmUgQlNHX0RFRkFVTFRfQ01EUwk2NApAQCAtMTcyLDcgKzE3NCw3IEBACiB9CiAKIHN0YXRpYyBpbnQgYmxrX2ZpbGxfc2d2NF9oZHJfcnEoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0cnVjdCByZXF1ZXN0ICpycSwKLQkJCQlzdHJ1Y3Qgc2dfaW9fdjQgKmhkciwgaW50IGhhc193cml0ZV9wZXJtKQorCQkJCXN0cnVjdCBzZ19pb192NCAqaGRyLCBzdHJ1Y3QgYnNnX2RldmljZSAqYmQpCiB7CiAJaWYgKGhkci0+cmVxdWVzdF9sZW4gPiBCTEtfTUFYX0NEQikgewogCQlycS0+Y21kID0ga3phbGxvYyhoZHItPnJlcXVlc3RfbGVuLCBHRlBfS0VSTkVMKTsKQEAgLTE4NSw3ICsxODcsOCBAQAogCQlyZXR1cm4gLUVGQVVMVDsKIAogCWlmIChoZHItPnN1YnByb3RvY29sID09IEJTR19TVUJfUFJPVE9DT0xfU0NTSV9DTUQpIHsKLQkJaWYgKGJsa192ZXJpZnlfY29tbWFuZChycS0+Y21kLCBoYXNfd3JpdGVfcGVybSkpCisJCWlmIChibGtfY21kX2ZpbHRlcl92ZXJpZnlfY29tbWFuZChiZC0+Y21kX2ZpbHRlciwgcnEtPmNtZCwKKwkJCQkJCSBiZC0+Zl9tb2RlKSkKIAkJCXJldHVybiAtRVBFUk07CiAJfSBlbHNlIGlmICghY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKIAkJcmV0dXJuIC1FUEVSTTsKQEAgLTI2Myw4ICsyNjYsNyBAQAogCXJxID0gYmxrX2dldF9yZXF1ZXN0KHEsIHJ3LCBHRlBfS0VSTkVMKTsKIAlpZiAoIXJxKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQlyZXQgPSBibGtfZmlsbF9zZ3Y0X2hkcl9ycShxLCBycSwgaGRyLCB0ZXN0X2JpdChCU0dfRl9XUklURV9QRVJNLAotCQkJCQkJICAgICAgICZiZC0+ZmxhZ3MpKTsKKwlyZXQgPSBibGtfZmlsbF9zZ3Y0X2hkcl9ycShxLCBycSwgaGRyLCBiZCk7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKQEAgLTU2NiwxMiArNTY4LDIzIEBACiAJCXNldF9iaXQoQlNHX0ZfQkxPQ0ssICZiZC0+ZmxhZ3MpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYnNnX3NldF93cml0ZV9wZXJtKHN0cnVjdCBic2dfZGV2aWNlICpiZCwgc3RydWN0IGZpbGUgKmZpbGUpCitzdGF0aWMgdm9pZCBic2dfc2V0X2NtZF9maWx0ZXIoc3RydWN0IGJzZ19kZXZpY2UgKmJkLAorCQkJICAgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKQotCQlzZXRfYml0KEJTR19GX1dSSVRFX1BFUk0sICZiZC0+ZmxhZ3MpOwotCWVsc2UKLQkJY2xlYXJfYml0KEJTR19GX1dSSVRFX1BFUk0sICZiZC0+ZmxhZ3MpOworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CisJc3RydWN0IGdlbmRpc2sgKmRpc2s7CisKKwlpZiAoIWZpbGUpCisJCXJldHVybjsKKworCWlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7CisJaWYgKCFpbm9kZSkKKwkJcmV0dXJuOworCisJZGlzayA9IGlub2RlLT5pX2JkZXYtPmJkX2Rpc2s7CisKKwliZC0+Y21kX2ZpbHRlciA9ICZkaXNrLT5jbWRfZmlsdGVyOworCWJkLT5mX21vZGUgPSAmZmlsZS0+Zl9tb2RlOwogfQogCiAvKgpAQCAtNTk1LDYgKzYwOCw4IEBACiAJZHByaW50aygiJXM6IHJlYWQgJVpkIGJ5dGVzXG4iLCBiZC0+bmFtZSwgY291bnQpOwogCiAJYnNnX3NldF9ibG9jayhiZCwgZmlsZSk7CisJYnNnX3NldF9jbWRfZmlsdGVyKGJkLCBmaWxlKTsKKwogCWJ5dGVzX3JlYWQgPSAwOwogCXJldCA9IF9fYnNnX3JlYWQoYnVmLCBjb3VudCwgYmQsIE5VTEwsICZieXRlc19yZWFkKTsKIAkqcHBvcyA9IGJ5dGVzX3JlYWQ7CkBAIC02NjgsNyArNjgzLDcgQEAKIAlkcHJpbnRrKCIlczogd3JpdGUgJVpkIGJ5dGVzXG4iLCBiZC0+bmFtZSwgY291bnQpOwogCiAJYnNnX3NldF9ibG9jayhiZCwgZmlsZSk7Ci0JYnNnX3NldF93cml0ZV9wZXJtKGJkLCBmaWxlKTsKKwlic2dfc2V0X2NtZF9maWx0ZXIoYmQsIGZpbGUpOwogCiAJYnl0ZXNfd3JpdHRlbiA9IDA7CiAJcmV0ID0gX19ic2dfd3JpdGUoYmQsIGJ1ZiwgY291bnQsICZieXRlc193cml0dGVuKTsKQEAgLTcwOSwxMSArNzI0LDEyIEBACiB7CiAJc3RydWN0IGJzZ19jbGFzc19kZXZpY2UgKmJjZCA9CiAJCWNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgYnNnX2NsYXNzX2RldmljZSwgcmVmKTsKKwlzdHJ1Y3QgZGV2aWNlICpwYXJlbnQgPSBiY2QtPnBhcmVudDsKIAogCWlmIChiY2QtPnJlbGVhc2UpCiAJCWJjZC0+cmVsZWFzZShiY2QtPnBhcmVudCk7CiAKLQlwdXRfZGV2aWNlKGJjZC0+cGFyZW50KTsKKwlwdXRfZGV2aWNlKHBhcmVudCk7CiB9CiAKIHN0YXRpYyBpbnQgYnNnX3B1dF9kZXZpY2Uoc3RydWN0IGJzZ19kZXZpY2UgKmJkKQpAQCAtNzcxLDcgKzc4Nyw5IEBACiAJfQogCiAJYmQtPnF1ZXVlID0gcnE7CisKIAlic2dfc2V0X2Jsb2NrKGJkLCBmaWxlKTsKKwlic2dfc2V0X2NtZF9maWx0ZXIoYmQsIGZpbGUpOwogCiAJYXRvbWljX3NldCgmYmQtPnJlZl9jb3VudCwgMSk7CiAJbXV0ZXhfbG9jaygmYnNnX211dGV4KTsKQEAgLTgzNCw3ICs4NTIsMTEgQEAKIAogc3RhdGljIGludCBic2dfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlzdHJ1Y3QgYnNnX2RldmljZSAqYmQgPSBic2dfZ2V0X2RldmljZShpbm9kZSwgZmlsZSk7CisJc3RydWN0IGJzZ19kZXZpY2UgKmJkOworCisJbG9ja19rZXJuZWwoKTsKKwliZCA9IGJzZ19nZXRfZGV2aWNlKGlub2RlLCBmaWxlKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlpZiAoSVNfRVJSKGJkKSkKIAkJcmV0dXJuIFBUUl9FUlIoYmQpOwpkaWZmIC0tZ2l0IGEvYmxvY2svY2ZxLWlvc2NoZWQuYyBiL2Jsb2NrL2NmcS1pb3NjaGVkLmMKaW5kZXggZDAxYjQxMS4uMWUyYWZmOCAxMDA2NDQKLS0tIGEvYmxvY2svY2ZxLWlvc2NoZWQuYworKysgYi9ibG9jay9jZnEtaW9zY2hlZC5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvZWxldmF0b3IuaD4KICNpbmNsdWRlIDxsaW51eC9yYnRyZWUuaD4KICNpbmNsdWRlIDxsaW51eC9pb3ByaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9ibGt0cmFjZV9hcGkuaD4KIAogLyoKICAqIHR1bmFibGVzCkBAIC00MSwxMyArNDIsMTQgQEAKIAogI2RlZmluZSBSUV9DSUMocnEpCQlcCiAJKChzdHJ1Y3QgY2ZxX2lvX2NvbnRleHQgKikgKHJxKS0+ZWxldmF0b3JfcHJpdmF0ZSkKLSNkZWZpbmUgUlFfQ0ZRUShycSkJCSgocnEpLT5lbGV2YXRvcl9wcml2YXRlMikKKyNkZWZpbmUgUlFfQ0ZRUShycSkJCShzdHJ1Y3QgY2ZxX3F1ZXVlICopICgocnEpLT5lbGV2YXRvcl9wcml2YXRlMikKIAogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpjZnFfcG9vbDsKIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqY2ZxX2lvY19wb29sOwogCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZywgaW9jX2NvdW50KTsKIHN0YXRpYyBzdHJ1Y3QgY29tcGxldGlvbiAqaW9jX2dvbmU7CitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGlvY19nb25lX2xvY2spOwogCiAjZGVmaW5lIENGUV9QUklPX0xJU1RTCQlJT1BSSU9fQkVfTlIKICNkZWZpbmUgY2ZxX2NsYXNzX2lkbGUoY2ZxcSkJKChjZnFxKS0+aW9wcmlvX2NsYXNzID09IElPUFJJT19DTEFTU19JRExFKQpAQCAtMTU1LDYgKzE1Nyw3IEBACiAJdW5zaWduZWQgc2hvcnQgaW9wcmlvLCBvcmdfaW9wcmlvOwogCXVuc2lnbmVkIHNob3J0IGlvcHJpb19jbGFzcywgb3JnX2lvcHJpb19jbGFzczsKIAorCXBpZF90IHBpZDsKIH07CiAKIGVudW0gY2ZxcV9zdGF0ZV9mbGFncyB7CkBAIC0xOTgsNiArMjAxLDExIEBACiBDRlFfQ0ZRUV9GTlMoc3luYyk7CiAjdW5kZWYgQ0ZRX0NGUVFfRk5TCiAKKyNkZWZpbmUgY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsIGZtdCwgYXJncy4uLikJXAorCWJsa19hZGRfdHJhY2VfbXNnKChjZnFkKS0+cXVldWUsICJjZnElZCAiIGZtdCwgKGNmcXEpLT5waWQsICMjYXJncykKKyNkZWZpbmUgY2ZxX2xvZyhjZnFkLCBmbXQsIGFyZ3MuLi4pCVwKKwlibGtfYWRkX3RyYWNlX21zZygoY2ZxZCktPnF1ZXVlLCAiY2ZxICIgZm10LCAjI2FyZ3MpCisKIHN0YXRpYyB2b2lkIGNmcV9kaXNwYXRjaF9pbnNlcnQoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgc3RydWN0IHJlcXVlc3QgKik7CiBzdGF0aWMgc3RydWN0IGNmcV9xdWV1ZSAqY2ZxX2dldF9xdWV1ZShzdHJ1Y3QgY2ZxX2RhdGEgKiwgaW50LAogCQkJCSAgICAgICBzdHJ1Y3QgaW9fY29udGV4dCAqLCBnZnBfdCk7CkBAIC0yMzQsOCArMjQyLDEwIEBACiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBjZnFfc2NoZWR1bGVfZGlzcGF0Y2goc3RydWN0IGNmcV9kYXRhICpjZnFkKQogewotCWlmIChjZnFkLT5idXN5X3F1ZXVlcykKKwlpZiAoY2ZxZC0+YnVzeV9xdWV1ZXMpIHsKKwkJY2ZxX2xvZyhjZnFkLCAic2NoZWR1bGUgZGlzcGF0Y2giKTsKIAkJa2Jsb2NrZF9zY2hlZHVsZV93b3JrKCZjZnFkLT51bnBsdWdfd29yayk7CisJfQogfQogCiBzdGF0aWMgaW50IGNmcV9xdWV1ZV9lbXB0eShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKQEAgLTI3MCw2ICsyODAsNyBAQAogY2ZxX3NldF9wcmlvX3NsaWNlKHN0cnVjdCBjZnFfZGF0YSAqY2ZxZCwgc3RydWN0IGNmcV9xdWV1ZSAqY2ZxcSkKIHsKIAljZnFxLT5zbGljZV9lbmQgPSBjZnFfcHJpb190b19zbGljZShjZnFkLCBjZnFxKSArIGppZmZpZXM7CisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJzZXRfc2xpY2U9JWx1IiwgY2ZxcS0+c2xpY2VfZW5kIC0gamlmZmllcyk7CiB9CiAKIC8qCkBAIC01MzksNiArNTUwLDcgQEAKICAqLwogc3RhdGljIHZvaWQgY2ZxX2FkZF9jZnFxX3JyKHN0cnVjdCBjZnFfZGF0YSAqY2ZxZCwgc3RydWN0IGNmcV9xdWV1ZSAqY2ZxcSkKIHsKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImFkZF90b19yciIpOwogCUJVR19PTihjZnFfY2ZxcV9vbl9ycihjZnFxKSk7CiAJY2ZxX21hcmtfY2ZxcV9vbl9ycihjZnFxKTsKIAljZnFkLT5idXN5X3F1ZXVlcysrOwpAQCAtNTUyLDYgKzU2NCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIGNmcV9kZWxfY2ZxcV9ycihzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQsIHN0cnVjdCBjZnFfcXVldWUgKmNmcXEpCiB7CisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJkZWxfZnJvbV9yciIpOwogCUJVR19PTighY2ZxX2NmcXFfb25fcnIoY2ZxcSkpOwogCWNmcV9jbGVhcl9jZnFxX29uX3JyKGNmcXEpOwogCkBAIC02MzgsNiArNjUxLDggQEAKIAlzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQgPSBxLT5lbGV2YXRvci0+ZWxldmF0b3JfZGF0YTsKIAogCWNmcWQtPnJxX2luX2RyaXZlcisrOworCWNmcV9sb2dfY2ZxcShjZnFkLCBSUV9DRlFRKHJxKSwgImFjdGl2YXRlIHJxLCBkcnY9JWQiLAorCQkJCQkJY2ZxZC0+cnFfaW5fZHJpdmVyKTsKIAogCS8qCiAJICogSWYgdGhlIGRlcHRoIGlzIGxhcmdlciAxLCBpdCByZWFsbHkgY291bGQgYmUgcXVldWVpbmcuIEJ1dCBsZXRzCkBAIC02NTcsNiArNjcyLDggQEAKIAogCVdBUk5fT04oIWNmcWQtPnJxX2luX2RyaXZlcik7CiAJY2ZxZC0+cnFfaW5fZHJpdmVyLS07CisJY2ZxX2xvZ19jZnFxKGNmcWQsIFJRX0NGUVEocnEpLCAiZGVhY3RpdmF0ZSBycSwgZHJ2PSVkIiwKKwkJCQkJCWNmcWQtPnJxX2luX2RyaXZlcik7CiB9CiAKIHN0YXRpYyB2b2lkIGNmcV9yZW1vdmVfcmVxdWVzdChzdHJ1Y3QgcmVxdWVzdCAqcnEpCkBAIC03NDYsNiArNzYzLDcgQEAKIAkJCQkgICBzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxKQogewogCWlmIChjZnFxKSB7CisJCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAic2V0X2FjdGl2ZSIpOwogCQljZnFxLT5zbGljZV9lbmQgPSAwOwogCQljZnFfY2xlYXJfY2ZxcV9tdXN0X2FsbG9jX3NsaWNlKGNmcXEpOwogCQljZnFfY2xlYXJfY2ZxcV9maWZvX2V4cGlyZShjZnFxKTsKQEAgLTc2Myw2ICs3ODEsOCBAQAogX19jZnFfc2xpY2VfZXhwaXJlZChzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQsIHN0cnVjdCBjZnFfcXVldWUgKmNmcXEsCiAJCSAgICBpbnQgdGltZWRfb3V0KQogeworCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAic2xpY2UgZXhwaXJlZCB0PSVkIiwgdGltZWRfb3V0KTsKKwogCWlmIChjZnFfY2ZxcV93YWl0X3JlcXVlc3QoY2ZxcSkpCiAJCWRlbF90aW1lcigmY2ZxZC0+aWRsZV9zbGljZV90aW1lcik7CiAKQEAgLTc3Miw4ICs3OTIsMTAgQEAKIAkvKgogCSAqIHN0b3JlIHdoYXQgd2FzIGxlZnQgb2YgdGhpcyBzbGljZSwgaWYgdGhlIHF1ZXVlIGlkbGVkL3RpbWVkIG91dAogCSAqLwotCWlmICh0aW1lZF9vdXQgJiYgIWNmcV9jZnFxX3NsaWNlX25ldyhjZnFxKSkKKwlpZiAodGltZWRfb3V0ICYmICFjZnFfY2ZxcV9zbGljZV9uZXcoY2ZxcSkpIHsKIAkJY2ZxcS0+c2xpY2VfcmVzaWQgPSBjZnFxLT5zbGljZV9lbmQgLSBqaWZmaWVzOworCQljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgInJlc2lkPSVsZCIsIGNmcXEtPnNsaWNlX3Jlc2lkKTsKKwl9CiAKIAljZnFfcmVzb3J0X3JyX2xpc3QoY2ZxZCwgY2ZxcSk7CiAKQEAgLTg2Niw2ICs4ODgsMTIgQEAKIAkJcmV0dXJuOwogCiAJLyoKKwkgKiBzdGlsbCByZXF1ZXN0cyB3aXRoIHRoZSBkcml2ZXIsIGRvbid0IGlkbGUKKwkgKi8KKwlpZiAoY2ZxZC0+cnFfaW5fZHJpdmVyKQorCQlyZXR1cm47CisKKwkvKgogCSAqIHRhc2sgaGFzIGV4aXRlZCwgZG9uJ3Qgd2FpdAogCSAqLwogCWNpYyA9IGNmcWQtPmFjdGl2ZV9jaWM7CkBAIC04OTIsNiArOTIwLDcgQEAKIAkJc2wgPSBtaW4oc2wsIG1zZWNzX3RvX2ppZmZpZXMoQ0ZRX01JTl9UVCkpOwogCiAJbW9kX3RpbWVyKCZjZnFkLT5pZGxlX3NsaWNlX3RpbWVyLCBqaWZmaWVzICsgc2wpOworCWNmcV9sb2coY2ZxZCwgImFybV9pZGxlOiAlbHUiLCBzbCk7CiB9CiAKIC8qCkBAIC05MDIsNiArOTMxLDggQEAKIAlzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQgPSBxLT5lbGV2YXRvci0+ZWxldmF0b3JfZGF0YTsKIAlzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxID0gUlFfQ0ZRUShycSk7CiAKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImRpc3BhdGNoX2luc2VydCIpOworCiAJY2ZxX3JlbW92ZV9yZXF1ZXN0KHJxKTsKIAljZnFxLT5kaXNwYXRjaGVkKys7CiAJZWx2X2Rpc3BhdGNoX3NvcnQocSwgcnEpOwpAQCAtOTMxLDggKzk2Miw5IEBACiAJcnEgPSBycV9lbnRyeV9maWZvKGNmcXEtPmZpZm8ubmV4dCk7CiAKIAlpZiAodGltZV9iZWZvcmUoamlmZmllcywgcnEtPnN0YXJ0X3RpbWUgKyBjZnFkLT5jZnFfZmlmb19leHBpcmVbZmlmb10pKQotCQlyZXR1cm4gTlVMTDsKKwkJcnEgPSBOVUxMOwogCisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJmaWZvPSVwIiwgcnEpOwogCXJldHVybiBycTsKIH0KIApAQCAtMTA3Miw2ICsxMTA0LDcgQEAKIAogCUJVR19PTihjZnFkLT5idXN5X3F1ZXVlcyk7CiAKKwljZnFfbG9nKGNmcWQsICJmb3JjZWRfZGlzcGF0Y2g9JWRcbiIsIGRpc3BhdGNoZWQpOwogCXJldHVybiBkaXNwYXRjaGVkOwogfQogCkBAIC0xMTEyLDYgKzExNDUsNyBAQAogCQlkaXNwYXRjaGVkICs9IF9fY2ZxX2Rpc3BhdGNoX3JlcXVlc3RzKGNmcWQsIGNmcXEsIG1heF9kaXNwYXRjaCk7CiAJfQogCisJY2ZxX2xvZyhjZnFkLCAiZGlzcGF0Y2hlZD0lZCIsIGRpc3BhdGNoZWQpOwogCXJldHVybiBkaXNwYXRjaGVkOwogfQogCkBAIC0xMTMwLDYgKzExNjQsNyBAQAogCWlmICghYXRvbWljX2RlY19hbmRfdGVzdCgmY2ZxcS0+cmVmKSkKIAkJcmV0dXJuOwogCisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJwdXRfcXVldWUiKTsKIAlCVUdfT04ocmJfZmlyc3QoJmNmcXEtPnNvcnRfbGlzdCkpOwogCUJVR19PTihjZnFxLT5hbGxvY2F0ZWRbUkVBRF0gKyBjZnFxLT5hbGxvY2F0ZWRbV1JJVEVdKTsKIAlCVUdfT04oY2ZxX2NmcXFfb25fcnIoY2ZxcSkpOwpAQCAtMTE3Nyw4ICsxMjEyLDE5IEBACiAJa21lbV9jYWNoZV9mcmVlKGNmcV9pb2NfcG9vbCwgY2ljKTsKIAllbHZfaW9jX2NvdW50X2RlYyhpb2NfY291bnQpOwogCi0JaWYgKGlvY19nb25lICYmICFlbHZfaW9jX2NvdW50X3JlYWQoaW9jX2NvdW50KSkKLQkJY29tcGxldGUoaW9jX2dvbmUpOworCWlmIChpb2NfZ29uZSkgeworCQkvKgorCQkgKiBDRlEgc2NoZWR1bGVyIGlzIGV4aXRpbmcsIGdyYWIgZXhpdCBsb2NrIGFuZCBjaGVjaworCQkgKiB0aGUgcGVuZGluZyBpbyBjb250ZXh0IGNvdW50LiBJZiBpdCBoaXRzIHplcm8sCisJCSAqIGNvbXBsZXRlIGlvY19nb25lIGFuZCBzZXQgaXQgYmFjayB0byBOVUxMCisJCSAqLworCQlzcGluX2xvY2soJmlvY19nb25lX2xvY2spOworCQlpZiAoaW9jX2dvbmUgJiYgIWVsdl9pb2NfY291bnRfcmVhZChpb2NfY291bnQpKSB7CisJCQljb21wbGV0ZShpb2NfZ29uZSk7CisJCQlpb2NfZ29uZSA9IE5VTEw7CisJCX0KKwkJc3Bpbl91bmxvY2soJmlvY19nb25lX2xvY2spOworCX0KIH0KIAogc3RhdGljIHZvaWQgY2ZxX2NpY19mcmVlKHN0cnVjdCBjZnFfaW9fY29udGV4dCAqY2ljKQpAQCAtMTQyNyw2ICsxNDczLDggQEAKIAkJCQljZnFfbWFya19jZnFxX2lkbGVfd2luZG93KGNmcXEpOwogCQkJY2ZxX21hcmtfY2ZxcV9zeW5jKGNmcXEpOwogCQl9CisJCWNmcXEtPnBpZCA9IGN1cnJlbnQtPnBpZDsKKwkJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJhbGxvY2VkIik7CiAJfQogCiAJaWYgKG5ld19jZnFxKQpAQCAtMTY3NSw3ICsxNzIzLDcgQEAKIGNmcV91cGRhdGVfaWRsZV93aW5kb3coc3RydWN0IGNmcV9kYXRhICpjZnFkLCBzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxLAogCQkgICAgICAgc3RydWN0IGNmcV9pb19jb250ZXh0ICpjaWMpCiB7Ci0JaW50IGVuYWJsZV9pZGxlOworCWludCBvbGRfaWRsZSwgZW5hYmxlX2lkbGU7CiAKIAkvKgogCSAqIERvbid0IGlkbGUgZm9yIGFzeW5jIG9yIGlkbGUgaW8gcHJpbyBjbGFzcwpAQCAtMTY4Myw3ICsxNzMxLDcgQEAKIAlpZiAoIWNmcV9jZnFxX3N5bmMoY2ZxcSkgfHwgY2ZxX2NsYXNzX2lkbGUoY2ZxcSkpCiAJCXJldHVybjsKIAotCWVuYWJsZV9pZGxlID0gY2ZxX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7CisJZW5hYmxlX2lkbGUgPSBvbGRfaWRsZSA9IGNmcV9jZnFxX2lkbGVfd2luZG93KGNmcXEpOwogCiAJaWYgKCFhdG9taWNfcmVhZCgmY2ljLT5pb2MtPm5yX3Rhc2tzKSB8fCAhY2ZxZC0+Y2ZxX3NsaWNlX2lkbGUgfHwKIAkgICAgKGNmcWQtPmh3X3RhZyAmJiBDSUNfU0VFS1koY2ljKSkpCkBAIC0xNjk1LDEwICsxNzQzLDEzIEBACiAJCQllbmFibGVfaWRsZSA9IDE7CiAJfQogCi0JaWYgKGVuYWJsZV9pZGxlKQotCQljZnFfbWFya19jZnFxX2lkbGVfd2luZG93KGNmcXEpOwotCWVsc2UKLQkJY2ZxX2NsZWFyX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7CisJaWYgKG9sZF9pZGxlICE9IGVuYWJsZV9pZGxlKSB7CisJCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAiaWRsZT0lZCIsIGVuYWJsZV9pZGxlKTsKKwkJaWYgKGVuYWJsZV9pZGxlKQorCQkJY2ZxX21hcmtfY2ZxcV9pZGxlX3dpbmRvdyhjZnFxKTsKKwkJZWxzZQorCQkJY2ZxX2NsZWFyX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7CisJfQogfQogCiAvKgpAQCAtMTc1Nyw2ICsxODA4LDcgQEAKICAqLwogc3RhdGljIHZvaWQgY2ZxX3ByZWVtcHRfcXVldWUoc3RydWN0IGNmcV9kYXRhICpjZnFkLCBzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxKQogeworCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAicHJlZW1wdCIpOwogCWNmcV9zbGljZV9leHBpcmVkKGNmcWQsIDEpOwogCiAJLyoKQEAgLTE4MTgsNiArMTg3MCw3IEBACiAJc3RydWN0IGNmcV9kYXRhICpjZnFkID0gcS0+ZWxldmF0b3ItPmVsZXZhdG9yX2RhdGE7CiAJc3RydWN0IGNmcV9xdWV1ZSAqY2ZxcSA9IFJRX0NGUVEocnEpOwogCisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJpbnNlcnRfcmVxdWVzdCIpOwogCWNmcV9pbml0X3ByaW9fZGF0YShjZnFxLCBSUV9DSUMocnEpLT5pb2MpOwogCiAJY2ZxX2FkZF9ycV9yYihycSk7CkBAIC0xODM1LDYgKzE4ODgsNyBAQAogCXVuc2lnbmVkIGxvbmcgbm93OwogCiAJbm93ID0gamlmZmllczsKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImNvbXBsZXRlIik7CiAKIAlXQVJOX09OKCFjZnFkLT5ycV9pbl9kcml2ZXIpOwogCVdBUk5fT04oIWNmcXEtPmRpc3BhdGNoZWQpOwpAQCAtMjAwNCw2ICsyMDU4LDcgQEAKIAogCWNmcV9zY2hlZHVsZV9kaXNwYXRjaChjZnFkKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKHEtPnF1ZXVlX2xvY2ssIGZsYWdzKTsKKwljZnFfbG9nKGNmcWQsICJzZXRfcmVxdWVzdCBmYWlsIik7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTIwMjksNiArMjA4NCw4IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgdGltZWRfb3V0ID0gMTsKIAorCWNmcV9sb2coY2ZxZCwgImlkbGUgdGltZXIgZmlyZWQiKTsKKwogCXNwaW5fbG9ja19pcnFzYXZlKGNmcWQtPnF1ZXVlLT5xdWV1ZV9sb2NrLCBmbGFncyk7CiAKIAljZnFxID0gY2ZxZC0+YWN0aXZlX3F1ZXVlOwpAQCAtMjMxNyw3ICsyMzc0LDcgQEAKIAkgKiBwZW5kaW5nIFJDVSBjYWxsYmFja3MKIAkgKi8KIAlpZiAoZWx2X2lvY19jb3VudF9yZWFkKGlvY19jb3VudCkpCi0JCXdhaXRfZm9yX2NvbXBsZXRpb24oaW9jX2dvbmUpOworCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZhbGxfZ29uZSk7CiAJY2ZxX3NsYWJfa2lsbCgpOwogfQogCmRpZmYgLS1naXQgYS9ibG9jay9jbWQtZmlsdGVyLmMgYi9ibG9jay9jbWQtZmlsdGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVjNDQwNAotLS0gL2Rldi9udWxsCisrKyBiL2Jsb2NrL2NtZC1maWx0ZXIuYwpAQCAtMCwwICsxLDMzNCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0IFBldGVyIE0uIEpvbmVzIDxwam9uZXNAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnMKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvZ2VuaGQuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3BhcnNlci5oPgorI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKworI2luY2x1ZGUgPHNjc2kvc2NzaS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nkcm9tLmg+CisKK2ludCBibGtfY21kX2ZpbHRlcl92ZXJpZnlfY29tbWFuZChzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyLAorCQkJCSAgdW5zaWduZWQgY2hhciAqY21kLCBtb2RlX3QgKmZfbW9kZSkKK3sKKwkvKiByb290IGNhbiBkbyBhbnkgY29tbWFuZC4gKi8KKwlpZiAoY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBpZiB0aGVyZSdzIG5vIGZpbHRlciBzZXQsIGFzc3VtZSB3ZSdyZSBmaWx0ZXJpbmcgZXZlcnl0aGluZyBvdXQgKi8KKwlpZiAoIWZpbHRlcikKKwkJcmV0dXJuIC1FUEVSTTsKKworCS8qIEFueWJvZHkgd2hvIGNhbiBvcGVuIHRoZSBkZXZpY2UgY2FuIGRvIGEgcmVhZC1zYWZlIGNvbW1hbmQgKi8KKwlpZiAodGVzdF9iaXQoY21kWzBdLCBmaWx0ZXItPnJlYWRfb2spKQorCQlyZXR1cm4gMDsKKworCS8qIFdyaXRlLXNhZmUgY29tbWFuZHMgcmVxdWlyZSBhIHdyaXRhYmxlIG9wZW4gKi8KKwlpZiAodGVzdF9iaXQoY21kWzBdLCBmaWx0ZXItPndyaXRlX29rKSAmJiAoKmZfbW9kZSAmIEZNT0RFX1dSSVRFKSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gLUVQRVJNOworfQorRVhQT1JUX1NZTUJPTChibGtfY21kX2ZpbHRlcl92ZXJpZnlfY29tbWFuZCk7CisKK2ludCBibGtfdmVyaWZ5X2NvbW1hbmQoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGNoYXIgKmNtZCkKK3sKKwlzdHJ1Y3QgZ2VuZGlzayAqZGlzazsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlOworCisJaWYgKCFmaWxlKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7CisJaWYgKCFpbm9kZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkaXNrID0gaW5vZGUtPmlfYmRldi0+YmRfZGlzazsKKworCXJldHVybiBibGtfY21kX2ZpbHRlcl92ZXJpZnlfY29tbWFuZCgmZGlzay0+Y21kX2ZpbHRlciwKKwkJCQkJCSBjbWQsICZmaWxlLT5mX21vZGUpOworfQorRVhQT1JUX1NZTUJPTChibGtfdmVyaWZ5X2NvbW1hbmQpOworCisvKiBhbmQgbm93LCB0aGUgc3lzZnMgc3R1ZmYgKi8KK3N0YXRpYyBzc2l6ZV90IHJjZl9jbWRzX3Nob3coc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwgY2hhciAqcGFnZSwKKwkJCSAgICAgaW50IHJ3KQoreworCWNoYXIgKm5wYWdlID0gcGFnZTsKKwl1bnNpZ25lZCBsb25nICpva2JpdHM7CisJaW50IGk7CisKKwlpZiAocncgPT0gUkVBRCkKKwkJb2tiaXRzID0gZmlsdGVyLT5yZWFkX29rOworCWVsc2UKKwkJb2tiaXRzID0gZmlsdGVyLT53cml0ZV9vazsKKworCWZvciAoaSA9IDA7IGkgPCBCTEtfU0NTSV9NQVhfQ01EUzsgaSsrKSB7CisJCWlmICh0ZXN0X2JpdChpLCBva2JpdHMpKSB7CisJCQlzcHJpbnRmKG5wYWdlLCAiJTAyeCIsIGkpOworCQkJbnBhZ2UgKz0gMjsKKwkJCWlmIChpIDwgQkxLX1NDU0lfTUFYX0NNRFMgLSAxKQorCQkJCXNwcmludGYobnBhZ2UrKywgIiAiKTsKKwkJfQorCX0KKworCWlmIChucGFnZSAhPSBwYWdlKQorCQlucGFnZSArPSBzcHJpbnRmKG5wYWdlLCAiXG4iKTsKKworCXJldHVybiBucGFnZSAtIHBhZ2U7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHJjZl9yZWFkY21kc19zaG93KHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIsIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHJjZl9jbWRzX3Nob3coZmlsdGVyLCBwYWdlLCBSRUFEKTsKK30KKworc3RhdGljIHNzaXplX3QgcmNmX3dyaXRlY21kc19zaG93KHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIsCisJCQkJIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHJjZl9jbWRzX3Nob3coZmlsdGVyLCBwYWdlLCBXUklURSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHJjZl9jbWRzX3N0b3JlKHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIsCisJCQkgICAgICBjb25zdCBjaGFyICpwYWdlLCBzaXplX3QgY291bnQsIGludCBydykKK3sKKwlzc2l6ZV90IHJldCA9IDA7CisJdW5zaWduZWQgbG9uZyBva2JpdHNbQkxLX1NDU0lfQ01EX1BFUl9MT05HXSwgKnRhcmdldF9va2JpdHM7CisJaW50IGNtZCwgc3RhdHVzLCBsZW47CisJc3Vic3RyaW5nX3Qgc3M7CisKKwltZW1zZXQoJm9rYml0cywgMCwgc2l6ZW9mKG9rYml0cykpOworCisJZm9yIChsZW4gPSBzdHJsZW4ocGFnZSk7IGxlbiA+IDA7IGxlbiAtPSAzKSB7CisJCWlmIChsZW4gPCAyKQorCQkJYnJlYWs7CisJCXNzLmZyb20gPSAoY2hhciAqKSBwYWdlICsgcmV0OworCQlzcy50byA9IChjaGFyICopIHBhZ2UgKyByZXQgKyAyOworCQlyZXQgKz0gMzsKKwkJc3RhdHVzID0gbWF0Y2hfaGV4KCZzcywgJmNtZCk7CisJCS8qIGVpdGhlciBvZiB0aGVzZSBjYXNlcyBtZWFucyBpbnZhbGlkIGlucHV0LCBzbyBkbyBub3RoaW5nLiAqLworCQlpZiAoc3RhdHVzIHx8IGNtZCA+PSBCTEtfU0NTSV9NQVhfQ01EUykKKwkJCXJldHVybiAtRUlOVkFMOworCisJCV9fc2V0X2JpdChjbWQsIG9rYml0cyk7CisJfQorCisJaWYgKHJ3ID09IFJFQUQpCisJCXRhcmdldF9va2JpdHMgPSBmaWx0ZXItPnJlYWRfb2s7CisJZWxzZQorCQl0YXJnZXRfb2tiaXRzID0gZmlsdGVyLT53cml0ZV9vazsKKworCW1lbW1vdmUodGFyZ2V0X29rYml0cywgb2tiaXRzLCBzaXplb2Yob2tiaXRzKSk7CisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgc3NpemVfdCByY2ZfcmVhZGNtZHNfc3RvcmUoc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwKKwkJCQkgIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVfdCBjb3VudCkKK3sKKwlyZXR1cm4gcmNmX2NtZHNfc3RvcmUoZmlsdGVyLCBwYWdlLCBjb3VudCwgUkVBRCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHJjZl93cml0ZWNtZHNfc3RvcmUoc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwKKwkJCQkgICBjb25zdCBjaGFyICpwYWdlLCBzaXplX3QgY291bnQpCit7CisJcmV0dXJuIHJjZl9jbWRzX3N0b3JlKGZpbHRlciwgcGFnZSwgY291bnQsIFdSSVRFKTsKK30KKworc3RydWN0IHJjZl9zeXNmc19lbnRyeSB7CisJc3RydWN0IGF0dHJpYnV0ZSBhdHRyOworCXNzaXplX3QgKCpzaG93KShzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqLCBjaGFyICopOworCXNzaXplX3QgKCpzdG9yZSkoc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOworfTsKKworc3RhdGljIHN0cnVjdCByY2Zfc3lzZnNfZW50cnkgcmNmX3JlYWRjbWRzX2VudHJ5ID0geworCS5hdHRyID0geyAubmFtZSA9ICJyZWFkX3RhYmxlIiwgLm1vZGUgPSBTX0lSVUdPIHwgU19JV1VTUiB9LAorCS5zaG93ID0gcmNmX3JlYWRjbWRzX3Nob3csCisJLnN0b3JlID0gcmNmX3JlYWRjbWRzX3N0b3JlLAorfTsKKworc3RhdGljIHN0cnVjdCByY2Zfc3lzZnNfZW50cnkgcmNmX3dyaXRlY21kc19lbnRyeSA9IHsKKwkuYXR0ciA9IHsubmFtZSA9ICJ3cml0ZV90YWJsZSIsIC5tb2RlID0gU19JUlVHTyB8IFNfSVdVU1IgfSwKKwkuc2hvdyA9IHJjZl93cml0ZWNtZHNfc2hvdywKKwkuc3RvcmUgPSByY2Zfd3JpdGVjbWRzX3N0b3JlLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmRlZmF1bHRfYXR0cnNbXSA9IHsKKwkmcmNmX3JlYWRjbWRzX2VudHJ5LmF0dHIsCisJJnJjZl93cml0ZWNtZHNfZW50cnkuYXR0ciwKKwlOVUxMLAorfTsKKworI2RlZmluZSB0b19yY2YoYXRyKSBjb250YWluZXJfb2YoKGF0ciksIHN0cnVjdCByY2Zfc3lzZnNfZW50cnksIGF0dHIpCisKK3N0YXRpYyBzc2l6ZV90CityY2ZfYXR0cl9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQoreworCXN0cnVjdCByY2Zfc3lzZnNfZW50cnkgKmVudHJ5ID0gdG9fcmNmKGF0dHIpOworCXN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXI7CisKKwlmaWx0ZXIgPSBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIsIGtvYmopOworCWlmIChlbnRyeS0+c2hvdykKKwkJcmV0dXJuIGVudHJ5LT5zaG93KGZpbHRlciwgcGFnZSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNzaXplX3QKK3JjZl9hdHRyX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAorCQkJY29uc3QgY2hhciAqcGFnZSwgc2l6ZV90IGxlbmd0aCkKK3sKKwlzdHJ1Y3QgcmNmX3N5c2ZzX2VudHJ5ICplbnRyeSA9IHRvX3JjZihhdHRyKTsKKwlzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyOworCisJaWYgKCFjYXBhYmxlKENBUF9TWVNfUkFXSU8pKQorCQlyZXR1cm4gLUVQRVJNOworCisJaWYgKCFlbnRyeS0+c3RvcmUpCisJCXJldHVybiAtRUlOVkFMOworCisJZmlsdGVyID0gY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyLCBrb2JqKTsKKwlyZXR1cm4gZW50cnktPnN0b3JlKGZpbHRlciwgcGFnZSwgbGVuZ3RoKTsKK30KKworc3RhdGljIHN0cnVjdCBzeXNmc19vcHMgcmNmX3N5c2ZzX29wcyA9IHsKKwkuc2hvdyA9IHJjZl9hdHRyX3Nob3csCisJLnN0b3JlID0gcmNmX2F0dHJfc3RvcmUsCit9OworCitzdGF0aWMgc3RydWN0IGtvYmpfdHlwZSByY2Zfa3R5cGUgPSB7CisJLnN5c2ZzX29wcyA9ICZyY2Zfc3lzZnNfb3BzLAorCS5kZWZhdWx0X2F0dHJzID0gZGVmYXVsdF9hdHRycywKK307CisKKyNpZm5kZWYgTUFJTlRFTkFOQ0VfSU5fQ01ECisjZGVmaW5lIE1BSU5URU5BTkNFX0lOX0NNRCAweGEzCisjZW5kaWYKKworc3RhdGljIHZvaWQgcmNmX3NldF9kZWZhdWx0cyhzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyKQoreworCS8qIEJhc2ljIHJlYWQtb25seSBjb21tYW5kcyAqLworCV9fc2V0X2JpdChURVNUX1VOSVRfUkVBRFksIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFJFUVVFU1RfU0VOU0UsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFJFQURfNiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF8xMCwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF8xMiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF8xNiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF9CVUZGRVIsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFJFQURfREVGRUNUX0RBVEEsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFJFQURfQ0FQQUNJVFksIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFJFQURfTE9ORywgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoSU5RVUlSWSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoTU9ERV9TRU5TRSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoTU9ERV9TRU5TRV8xMCwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoTE9HX1NFTlNFLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChTVEFSVF9TVE9QLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9WRVJJRllfMTAsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFZFUklGWV8xNiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVQT1JUX0xVTlMsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFNFUlZJQ0VfQUNUSU9OX0lOLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRUNFSVZFX0RJQUdOT1NUSUMsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KE1BSU5URU5BTkNFX0lOX0NNRCwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVBRF9CVUZGRVJfQ0FQQUNJVFksIGZpbHRlci0+cmVhZF9vayk7CisKKwkvKiBBdWRpbyBDRCBjb21tYW5kcyAqLworCV9fc2V0X2JpdChHUENNRF9QTEFZX0NELCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9QTEFZX0FVRElPXzEwLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9QTEFZX0FVRElPX01TRiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUExBWV9BVURJT19USSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUEFVU0VfUkVTVU1FLCBmaWx0ZXItPnJlYWRfb2spOworCisJLyogQ0QvRFZEIGRhdGEgcmVhZGluZyAqLworCV9fc2V0X2JpdChHUENNRF9SRUFEX0NELCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0NEX01TRiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVBRF9ESVNDX0lORk8sIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFQURfQ0RWRF9DQVBBQ0lUWSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVBRF9EVkRfU1RSVUNUVVJFLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0hFQURFUiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVBRF9UUkFDS19SWk9ORV9JTkZPLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX1NVQkNIQU5ORUwsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFQURfVE9DX1BNQV9BVElQLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRVBPUlRfS0VZLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9TQ0FOLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9HRVRfQ09ORklHVVJBVElPTiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVBRF9GT1JNQVRfQ0FQQUNJVElFUywgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfR0VUX0VWRU5UX1NUQVRVU19OT1RJRklDQVRJT04sIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX0dFVF9QRVJGT1JNQU5DRSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfU0VFSywgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfU1RPUF9QTEFZX1NDQU4sIGZpbHRlci0+cmVhZF9vayk7CisKKwkvKiBCYXNpYyB3cml0aW5nIGNvbW1hbmRzICovCisJX19zZXRfYml0KFdSSVRFXzYsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChXUklURV8xMCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KFdSSVRFX1ZFUklGWSwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KFdSSVRFXzEyLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoV1JJVEVfVkVSSUZZXzEyLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoV1JJVEVfMTYsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChXUklURV9MT05HLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoV1JJVEVfTE9OR18yLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoRVJBU0UsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9NT0RFX1NFTEVDVF8xMCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KE1PREVfU0VMRUNULCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoTE9HX1NFTEVDVCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX0JMQU5LLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfQ0xPU0VfVFJBQ0ssIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9GTFVTSF9DQUNIRSwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX0ZPUk1BVF9VTklULCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVQQUlSX1JaT05FX1RSQUNLLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVTRVJWRV9SWk9ORV9UUkFDSywgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1NFTkRfRFZEX1NUUlVDVFVSRSwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1NFTkRfRVZFTlQsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9TRU5EX0tFWSwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1NFTkRfT1BDLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfU0VORF9DVUVfU0hFRVQsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9TRVRfU1BFRUQsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9QUkVWRU5UX0FMTE9XX01FRElVTV9SRU1PVkFMLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfTE9BRF9VTkxPQUQsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9TRVRfU1RSRUFNSU5HLCBmaWx0ZXItPndyaXRlX29rKTsKK30KKworaW50IGJsa19yZWdpc3Rlcl9maWx0ZXIoc3RydWN0IGdlbmRpc2sgKmRpc2spCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyID0gJmRpc2stPmNtZF9maWx0ZXI7CisJc3RydWN0IGtvYmplY3QgKnBhcmVudCA9IGtvYmplY3RfZ2V0KGRpc2stPmhvbGRlcl9kaXItPnBhcmVudCk7CisKKwlpZiAoIXBhcmVudCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlyZXQgPSBrb2JqZWN0X2luaXRfYW5kX2FkZCgmZmlsdGVyLT5rb2JqLCAmcmNmX2t0eXBlLCBwYXJlbnQsCisJCQkJICIlcyIsICJjbWRfZmlsdGVyIik7CisKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJjZl9zZXRfZGVmYXVsdHMoZmlsdGVyKTsKKwlyZXR1cm4gMDsKK30KKwordm9pZCBibGtfdW5yZWdpc3Rlcl9maWx0ZXIoc3RydWN0IGdlbmRpc2sgKmRpc2spCit7CisJc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciA9ICZkaXNrLT5jbWRfZmlsdGVyOworCisJa29iamVjdF9wdXQoJmZpbHRlci0+a29iaik7CisJa29iamVjdF9wdXQoZGlzay0+aG9sZGVyX2Rpci0+cGFyZW50KTsKK30KKwpkaWZmIC0tZ2l0IGEvYmxvY2svZWxldmF0b3IuYyBiL2Jsb2NrL2VsZXZhdG9yLmMKaW5kZXggOTAyZGQxMy4uZWQ2ZjhmMyAxMDA2NDQKLS0tIGEvYmxvY2svZWxldmF0b3IuYworKysgYi9ibG9jay9lbGV2YXRvci5jCkBAIC04Niw2ICs4NiwxMiBAQAogCWlmIChycS0+cnFfZGlzayAhPSBiaW8tPmJpX2JkZXYtPmJkX2Rpc2sgfHwgcnEtPnNwZWNpYWwpCiAJCXJldHVybiAwOwogCisJLyoKKwkgKiBvbmx5IG1lcmdlIGludGVncml0eSBwcm90ZWN0ZWQgYmlvIGludG8gZGl0dG8gcnEKKwkgKi8KKwlpZiAoYmlvX2ludGVncml0eShiaW8pICE9IGJsa19pbnRlZ3JpdHlfcnEocnEpKQorCQlyZXR1cm4gMDsKKwogCWlmICghZWx2X2lvc2NoZWRfYWxsb3dfbWVyZ2UocnEsIGJpbykpCiAJCXJldHVybiAwOwogCkBAIC0xNDQsNyArMTUwLDcgQEAKIAkJZWxzZQogCQkJc3ByaW50ZihlbHYsICIlcy1pb3NjaGVkIiwgbmFtZSk7CiAKLQkJcmVxdWVzdF9tb2R1bGUoZWx2KTsKKwkJcmVxdWVzdF9tb2R1bGUoIiVzIiwgZWx2KTsKIAkJc3Bpbl9sb2NrKCZlbHZfbGlzdF9sb2NrKTsKIAkJZSA9IGVsZXZhdG9yX2ZpbmQobmFtZSk7CiAJfQpkaWZmIC0tZ2l0IGEvYmxvY2svZ2VuaGQuYyBiL2Jsb2NrL2dlbmhkLmMKaW5kZXggYjkyMmQ0OC4uOTA3NGYzOCAxMDA2NDQKLS0tIGEvYmxvY2svZ2VuaGQuYworKysgYi9ibG9jay9nZW5oZC5jCkBAIC0xODksNiArMTg5LDcgQEAKIAkJCSAgICBkaXNrLT5taW5vcnMsIE5VTEwsIGV4YWN0X21hdGNoLCBleGFjdF9sb2NrLCBkaXNrKTsKIAlyZWdpc3Rlcl9kaXNrKGRpc2spOwogCWJsa19yZWdpc3Rlcl9xdWV1ZShkaXNrKTsKKwlibGtfcmVnaXN0ZXJfZmlsdGVyKGRpc2spOwogCiAJYmRpID0gJmRpc2stPnF1ZXVlLT5iYWNraW5nX2Rldl9pbmZvOwogCWJkaV9yZWdpc3Rlcl9kZXYoYmRpLCBNS0RFVihkaXNrLT5tYWpvciwgZGlzay0+Zmlyc3RfbWlub3IpKTsKQEAgLTIwMCw2ICsyMDEsNyBAQAogCiB2b2lkIHVubGlua19nZW5kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKQogeworCWJsa191bnJlZ2lzdGVyX2ZpbHRlcihkaXNrKTsKIAlzeXNmc19yZW1vdmVfbGluaygmZGlzay0+ZGV2LmtvYmosICJiZGkiKTsKIAliZGlfdW5yZWdpc3RlcigmZGlzay0+cXVldWUtPmJhY2tpbmdfZGV2X2luZm8pOwogCWJsa191bnJlZ2lzdGVyX3F1ZXVlKGRpc2spOwpAQCAtNDAwLDYgKzQwMiwxNCBAQAogCQkgICAgICAgKGRpc2stPmZsYWdzICYgR0VOSERfRkxfUkVNT1ZBQkxFID8gMSA6IDApKTsKIH0KIAorc3RhdGljIHNzaXplX3QgZGlza19yb19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXN0cnVjdCBnZW5kaXNrICpkaXNrID0gZGV2X3RvX2Rpc2soZGV2KTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBkaXNrLT5wb2xpY3kgPyAxIDogMCk7Cit9CisKIHN0YXRpYyBzc2l6ZV90IGRpc2tfc2l6ZV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJCSAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB7CkBAIC00NzIsNiArNDgyLDcgQEAKIAogc3RhdGljIERFVklDRV9BVFRSKHJhbmdlLCBTX0lSVUdPLCBkaXNrX3JhbmdlX3Nob3csIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKHJlbW92YWJsZSwgU19JUlVHTywgZGlza19yZW1vdmFibGVfc2hvdywgTlVMTCk7CitzdGF0aWMgREVWSUNFX0FUVFIocm8sIFNfSVJVR08sIGRpc2tfcm9fc2hvdywgTlVMTCk7CiBzdGF0aWMgREVWSUNFX0FUVFIoc2l6ZSwgU19JUlVHTywgZGlza19zaXplX3Nob3csIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKGNhcGFiaWxpdHksIFNfSVJVR08sIGRpc2tfY2FwYWJpbGl0eV9zaG93LCBOVUxMKTsKIHN0YXRpYyBERVZJQ0VfQVRUUihzdGF0LCBTX0lSVUdPLCBkaXNrX3N0YXRfc2hvdywgTlVMTCk7CkBAIC00ODMsNiArNDk0LDcgQEAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpkaXNrX2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX3JhbmdlLmF0dHIsCiAJJmRldl9hdHRyX3JlbW92YWJsZS5hdHRyLAorCSZkZXZfYXR0cl9yby5hdHRyLAogCSZkZXZfYXR0cl9zaXplLmF0dHIsCiAJJmRldl9hdHRyX2NhcGFiaWxpdHkuYXR0ciwKIAkmZGV2X2F0dHJfc3RhdC5hdHRyLApkaWZmIC0tZ2l0IGEvYmxvY2svc2NzaV9pb2N0bC5jIGIvYmxvY2svc2NzaV9pb2N0bC5jCmluZGV4IDc4MTk5YzAuLmM1YjliY2YgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3Njc2lfaW9jdGwuYworKysgYi9ibG9jay9zY3NpX2lvY3RsLmMKQEAgLTEwNSwxMjAgKzEwNSwxMiBAQAogCXJldHVybiBwdXRfdXNlcigxLCBwKTsKIH0KIAotI2RlZmluZSBDTURfUkVBRF9TQUZFCTB4MDEKLSNkZWZpbmUgQ01EX1dSSVRFX1NBRkUJMHgwMgotI2RlZmluZSBDTURfV0FSTkVECTB4MDQKLSNkZWZpbmUgc2FmZV9mb3JfcmVhZChjbWQpCVtjbWRdID0gQ01EX1JFQURfU0FGRQotI2RlZmluZSBzYWZlX2Zvcl93cml0ZShjbWQpCVtjbWRdID0gQ01EX1dSSVRFX1NBRkUKLQotaW50IGJsa192ZXJpZnlfY29tbWFuZCh1bnNpZ25lZCBjaGFyICpjbWQsIGludCBoYXNfd3JpdGVfcGVybSkKLXsKLQlzdGF0aWMgdW5zaWduZWQgY2hhciBjbWRfdHlwZVsyNTZdID0gewotCi0JCS8qIEJhc2ljIHJlYWQtb25seSBjb21tYW5kcyAqLwotCQlzYWZlX2Zvcl9yZWFkKFRFU1RfVU5JVF9SRUFEWSksCi0JCXNhZmVfZm9yX3JlYWQoUkVRVUVTVF9TRU5TRSksCi0JCXNhZmVfZm9yX3JlYWQoUkVBRF82KSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEXzEwKSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEXzEyKSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEXzE2KSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEX0JVRkZFUiksCi0JCXNhZmVfZm9yX3JlYWQoUkVBRF9ERUZFQ1RfREFUQSksCi0JCXNhZmVfZm9yX3JlYWQoUkVBRF9MT05HKSwKLQkJc2FmZV9mb3JfcmVhZChJTlFVSVJZKSwKLQkJc2FmZV9mb3JfcmVhZChNT0RFX1NFTlNFKSwKLQkJc2FmZV9mb3JfcmVhZChNT0RFX1NFTlNFXzEwKSwKLQkJc2FmZV9mb3JfcmVhZChMT0dfU0VOU0UpLAotCQlzYWZlX2Zvcl9yZWFkKFNUQVJUX1NUT1ApLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1ZFUklGWV8xMCksCi0JCXNhZmVfZm9yX3JlYWQoVkVSSUZZXzE2KSwKLQotCQkvKiBBdWRpbyBDRCBjb21tYW5kcyAqLwotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1BMQVlfQ0QpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1BMQVlfQVVESU9fMTApLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1BMQVlfQVVESU9fTVNGKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9QTEFZX0FVRElPX1RJKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9QQVVTRV9SRVNVTUUpLAotCi0JCS8qIENEL0RWRCBkYXRhIHJlYWRpbmcgKi8KLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX0JVRkZFUl9DQVBBQ0lUWSksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9DRCksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9DRF9NU0YpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfRElTQ19JTkZPKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX0NEVkRfQ0FQQUNJVFkpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfRFZEX1NUUlVDVFVSRSksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9IRUFERVIpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfVFJBQ0tfUlpPTkVfSU5GTyksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9TVUJDSEFOTkVMKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX1RPQ19QTUFfQVRJUCksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVQT1JUX0tFWSksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfU0NBTiksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfR0VUX0NPTkZJR1VSQVRJT04pLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfRk9STUFUX0NBUEFDSVRJRVMpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX0dFVF9FVkVOVF9TVEFUVVNfTk9USUZJQ0FUSU9OKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9HRVRfUEVSRk9STUFOQ0UpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1NFRUspLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1NUT1BfUExBWV9TQ0FOKSwKLQotCQkvKiBCYXNpYyB3cml0aW5nIGNvbW1hbmRzICovCi0JCXNhZmVfZm9yX3dyaXRlKFdSSVRFXzYpLAotCQlzYWZlX2Zvcl93cml0ZShXUklURV8xMCksCi0JCXNhZmVfZm9yX3dyaXRlKFdSSVRFX1ZFUklGWSksCi0JCXNhZmVfZm9yX3dyaXRlKFdSSVRFXzEyKSwKLQkJc2FmZV9mb3Jfd3JpdGUoV1JJVEVfVkVSSUZZXzEyKSwKLQkJc2FmZV9mb3Jfd3JpdGUoV1JJVEVfMTYpLAotCQlzYWZlX2Zvcl93cml0ZShXUklURV9MT05HKSwKLQkJc2FmZV9mb3Jfd3JpdGUoV1JJVEVfTE9OR18yKSwKLQkJc2FmZV9mb3Jfd3JpdGUoRVJBU0UpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9NT0RFX1NFTEVDVF8xMCksCi0JCXNhZmVfZm9yX3dyaXRlKE1PREVfU0VMRUNUKSwKLQkJc2FmZV9mb3Jfd3JpdGUoTE9HX1NFTEVDVCksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX0JMQU5LKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfQ0xPU0VfVFJBQ0spLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9GTFVTSF9DQUNIRSksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX0ZPUk1BVF9VTklUKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfUkVQQUlSX1JaT05FX1RSQUNLKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfUkVTRVJWRV9SWk9ORV9UUkFDSyksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1NFTkRfRFZEX1NUUlVDVFVSRSksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1NFTkRfRVZFTlQpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9TRU5EX0tFWSksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1NFTkRfT1BDKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfU0VORF9DVUVfU0hFRVQpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9TRVRfU1BFRUQpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9QUkVWRU5UX0FMTE9XX01FRElVTV9SRU1PVkFMKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfTE9BRF9VTkxPQUQpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9TRVRfU1RSRUFNSU5HKSwKLQl9OwotCXVuc2lnbmVkIGNoYXIgdHlwZSA9IGNtZF90eXBlW2NtZFswXV07Ci0KLQkvKiBBbnlib2R5IHdobyBjYW4gb3BlbiB0aGUgZGV2aWNlIGNhbiBkbyBhIHJlYWQtc2FmZSBjb21tYW5kICovCi0JaWYgKHR5cGUgJiBDTURfUkVBRF9TQUZFKQotCQlyZXR1cm4gMDsKLQotCS8qIFdyaXRlLXNhZmUgY29tbWFuZHMganVzdCByZXF1aXJlIGEgd3JpdGFibGUgb3Blbi4uICovCi0JaWYgKCh0eXBlICYgQ01EX1dSSVRFX1NBRkUpICYmIGhhc193cml0ZV9wZXJtKQotCQlyZXR1cm4gMDsKLQotCS8qIEFuZCByb290IGNhbiBkbyBhbnkgY29tbWFuZC4uICovCi0JaWYgKGNhcGFibGUoQ0FQX1NZU19SQVdJTykpCi0JCXJldHVybiAwOwotCi0JaWYgKCF0eXBlKSB7Ci0JCWNtZF90eXBlW2NtZFswXV0gPSBDTURfV0FSTkVEOwotCQlwcmludGsoS0VSTl9XQVJOSU5HICJzY3NpOiB1bmtub3duIG9wY29kZSAweCUwMnhcbiIsIGNtZFswXSk7Ci0JfQotCi0JLyogT3RoZXJ3aXNlIGZhaWwgaXQgd2l0aCBhbiAiT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQiICovCi0JcmV0dXJuIC1FUEVSTTsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKGJsa192ZXJpZnlfY29tbWFuZCk7Ci0KIHN0YXRpYyBpbnQgYmxrX2ZpbGxfc2doZHJfcnEoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0cnVjdCByZXF1ZXN0ICpycSwKLQkJCSAgICAgc3RydWN0IHNnX2lvX2hkciAqaGRyLCBpbnQgaGFzX3dyaXRlX3Blcm0pCisJCQkgICAgIHN0cnVjdCBzZ19pb19oZHIgKmhkciwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJaWYgKGNvcHlfZnJvbV91c2VyKHJxLT5jbWQsIGhkci0+Y21kcCwgaGRyLT5jbWRfbGVuKSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0JaWYgKGJsa192ZXJpZnlfY29tbWFuZChycS0+Y21kLCBoYXNfd3JpdGVfcGVybSkpCisJaWYgKGJsa192ZXJpZnlfY29tbWFuZChmaWxlLCBycS0+Y21kKSkKIAkJcmV0dXJuIC1FUEVSTTsKIAogCS8qCkBAIC0yODcsNyArMTc5LDcgQEAKIAkJc3RydWN0IGdlbmRpc2sgKmJkX2Rpc2ssIHN0cnVjdCBzZ19pb19oZHIgKmhkcikKIHsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0X3RpbWU7Ci0JaW50IHdyaXRpbmcgPSAwLCByZXQgPSAwLCBoYXNfd3JpdGVfcGVybSA9IDA7CisJaW50IHdyaXRpbmcgPSAwLCByZXQgPSAwOwogCXN0cnVjdCByZXF1ZXN0ICpycTsKIAljaGFyIHNlbnNlW1NDU0lfU0VOU0VfQlVGRkVSU0laRV07CiAJc3RydWN0IGJpbyAqYmlvOwpAQCAtMzE2LDEwICsyMDgsNyBAQAogCWlmICghcnEpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JaWYgKGZpbGUpCi0JCWhhc193cml0ZV9wZXJtID0gZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEU7Ci0KLQlpZiAoYmxrX2ZpbGxfc2doZHJfcnEocSwgcnEsIGhkciwgaGFzX3dyaXRlX3Blcm0pKSB7CisJaWYgKGJsa19maWxsX3NnaGRyX3JxKHEsIHJxLCBoZHIsIGZpbGUpKSB7CiAJCWJsa19wdXRfcmVxdWVzdChycSk7CiAJCXJldHVybiAtRUZBVUxUOwogCX0KQEAgLTQ1MSw3ICszNDAsNyBAQAogCWlmIChpbl9sZW4gJiYgY29weV9mcm9tX3VzZXIoYnVmZmVyLCBzaWMtPmRhdGEgKyBjbWRsZW4sIGluX2xlbikpCiAJCWdvdG8gZXJyb3I7CiAKLQllcnIgPSBibGtfdmVyaWZ5X2NvbW1hbmQocnEtPmNtZCwgZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpOworCWVyciA9IGJsa192ZXJpZnlfY29tbWFuZChmaWxlLCBycS0+Y21kKTsKIAlpZiAoZXJyKQogCQlnb3RvIGVycm9yOwogCmRpZmYgLS1naXQgYS9jcnlwdG8vS2NvbmZpZyBiL2NyeXB0by9LY29uZmlnCmluZGV4IDg2NDQ1NmMuLmVhNTAzNTcgMTAwNjQ0Ci0tLSBhL2NyeXB0by9LY29uZmlnCisrKyBiL2NyeXB0by9LY29uZmlnCkBAIC02NSw2ICs2NSw3IEBACiBjb25maWcgQ1JZUFRPX0NSWVBURAogCXRyaXN0YXRlICJTb2Z0d2FyZSBhc3luYyBjcnlwdG8gZGFlbW9uIgogCXNlbGVjdCBDUllQVE9fQkxLQ0lQSEVSCisJc2VsZWN0IENSWVBUT19IQVNICiAJc2VsZWN0IENSWVBUT19NQU5BR0VSCiAJaGVscAogCSAgVGhpcyBpcyBhIGdlbmVyaWMgc29mdHdhcmUgYXN5bmNocm9ub3VzIGNyeXB0byBkYWVtb24gdGhhdApAQCAtMjEyLDcgKzIxMyw3IEBACiAKIGNvbmZpZyBDUllQVE9fQ1JDMzJDCiAJdHJpc3RhdGUgIkNSQzMyYyBDUkMgYWxnb3JpdGhtIgotCXNlbGVjdCBDUllQVE9fQUxHQVBJCisJc2VsZWN0IENSWVBUT19IQVNICiAJc2VsZWN0IExJQkNSQzMyQwogCWhlbHAKIAkgIENhc3RhZ25vbGksIGV0IGFsIEN5Y2xpYyBSZWR1bmRhbmN5LUNoZWNrIEFsZ29yaXRobS4gIFVzZWQKQEAgLTI0MSw2ICsyNDIsNTcgQEAKIAkgIHNob3VsZCBub3QgYmUgdXNlZCBmb3Igb3RoZXIgcHVycG9zZXMgYmVjYXVzZSBvZiB0aGUgd2Vha25lc3MKIAkgIG9mIHRoZSBhbGdvcml0aG0uCiAKK2NvbmZpZyBDUllQVE9fUk1EMTI4CisgIHRyaXN0YXRlICJSSVBFTUQtMTI4IGRpZ2VzdCBhbGdvcml0aG0iCisgIHNlbGVjdCBDUllQVE9fQUxHQVBJCisgIGhlbHAKKyAgICBSSVBFTUQtMTI4IChJU08vSUVDIDEwMTE4LTM6MjAwNCkuCisKKyAgICBSSVBFTUQtMTI4IGlzIGEgMTI4LWJpdCBjcnlwdG9ncmFwaGljIGhhc2ggZnVuY3Rpb24uIEl0IHNob3VsZCBvbmx5CisgICAgdG8gYmUgdXNlZCBhcyBhIHNlY3VyZSByZXBsYWNlbWVudCBmb3IgUklQRU1ELiBGb3Igb3RoZXIgdXNlIGNhc2VzCisgICAgUklQRU1ELTE2MCBzaG91bGQgYmUgdXNlZC4KKworICAgIERldmVsb3BlZCBieSBIYW5zIERvYmJlcnRpbiwgQW50b29uIEJvc3NlbGFlcnMgYW5kIEJhcnQgUHJlbmVlbC4KKyAgICBTZWUgPGh0dHA6Ly9ob21lLmVzYXQua3VsZXV2ZW4uYmUvfmJvc3NlbGFlL3JpcGVtZDE2MC5odG1sPgorCitjb25maWcgQ1JZUFRPX1JNRDE2MAorICB0cmlzdGF0ZSAiUklQRU1ELTE2MCBkaWdlc3QgYWxnb3JpdGhtIgorICBzZWxlY3QgQ1JZUFRPX0FMR0FQSQorICBoZWxwCisgICAgUklQRU1ELTE2MCAoSVNPL0lFQyAxMDExOC0zOjIwMDQpLgorCisgICAgUklQRU1ELTE2MCBpcyBhIDE2MC1iaXQgY3J5cHRvZ3JhcGhpYyBoYXNoIGZ1bmN0aW9uLiBJdCBpcyBpbnRlbmRlZAorICAgIHRvIGJlIHVzZWQgYXMgYSBzZWN1cmUgcmVwbGFjZW1lbnQgZm9yIHRoZSAxMjgtYml0IGhhc2ggZnVuY3Rpb25zCisgICAgTUQ0LCBNRDUgYW5kIGl0J3MgcHJlZGVjZXNzb3IgUklQRU1EIChub3QgdG8gYmUgY29uZnVzZWQgd2l0aCBSSVBFTUQtMTI4KS4KKworICAgIEl0J3Mgc3BlZWQgaXMgY29tcGFyYWJsZSB0byBTSEExIGFuZCB0aGVyZSBhcmUgbm8ga25vd24gYXR0YWNrcyBhZ2FpbnN0CisgICAgUklQRU1ELTE2MC4KKworICAgIERldmVsb3BlZCBieSBIYW5zIERvYmJlcnRpbiwgQW50b29uIEJvc3NlbGFlcnMgYW5kIEJhcnQgUHJlbmVlbC4KKyAgICBTZWUgPGh0dHA6Ly9ob21lLmVzYXQua3VsZXV2ZW4uYmUvfmJvc3NlbGFlL3JpcGVtZDE2MC5odG1sPgorCitjb25maWcgQ1JZUFRPX1JNRDI1NgorICB0cmlzdGF0ZSAiUklQRU1ELTI1NiBkaWdlc3QgYWxnb3JpdGhtIgorICBzZWxlY3QgQ1JZUFRPX0FMR0FQSQorICBoZWxwCisgICAgUklQRU1ELTI1NiBpcyBhbiBvcHRpb25hbCBleHRlbnNpb24gb2YgUklQRU1ELTEyOCB3aXRoIGEgMjU2IGJpdCBoYXNoLgorICAgIEl0IGlzIGludGVuZGVkIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIGxvbmdlciBoYXNoLXJlc3VsdHMsIHdpdGhvdXQKKyAgICBuZWVkaW5nIGEgbGFyZ2VyIHNlY3VyaXR5IGxldmVsICh0aGFuIFJJUEVNRC0xMjgpLgorCisgICAgRGV2ZWxvcGVkIGJ5IEhhbnMgRG9iYmVydGluLCBBbnRvb24gQm9zc2VsYWVycyBhbmQgQmFydCBQcmVuZWVsLgorICAgIFNlZSA8aHR0cDovL2hvbWUuZXNhdC5rdWxldXZlbi5iZS9+Ym9zc2VsYWUvcmlwZW1kMTYwLmh0bWw+CisKK2NvbmZpZyBDUllQVE9fUk1EMzIwCisgIHRyaXN0YXRlICJSSVBFTUQtMzIwIGRpZ2VzdCBhbGdvcml0aG0iCisgIHNlbGVjdCBDUllQVE9fQUxHQVBJCisgIGhlbHAKKyAgICBSSVBFTUQtMzIwIGlzIGFuIG9wdGlvbmFsIGV4dGVuc2lvbiBvZiBSSVBFTUQtMTYwIHdpdGggYSAzMjAgYml0IGhhc2guCisgICAgSXQgaXMgaW50ZW5kZWQgZm9yIGFwcGxpY2F0aW9ucyB0aGF0IHJlcXVpcmUgbG9uZ2VyIGhhc2gtcmVzdWx0cywgd2l0aG91dAorICAgIG5lZWRpbmcgYSBsYXJnZXIgc2VjdXJpdHkgbGV2ZWwgKHRoYW4gUklQRU1ELTE2MCkuCisKKyAgICBEZXZlbG9wZWQgYnkgSGFucyBEb2JiZXJ0aW4sIEFudG9vbiBCb3NzZWxhZXJzIGFuZCBCYXJ0IFByZW5lZWwuCisgICAgU2VlIDxodHRwOi8vaG9tZS5lc2F0Lmt1bGV1dmVuLmJlL35ib3NzZWxhZS9yaXBlbWQxNjAuaHRtbD4KKwogY29uZmlnIENSWVBUT19TSEExCiAJdHJpc3RhdGUgIlNIQTEgZGlnZXN0IGFsZ29yaXRobSIKIAlzZWxlY3QgQ1JZUFRPX0FMR0FQSQpAQCAtNjE0LDYgKzY2NiwxNSBAQAogCWhlbHAKIAkgIFRoaXMgaXMgdGhlIExaTyBhbGdvcml0aG0uCiAKK2NvbW1lbnQgIlJhbmRvbSBOdW1iZXIgR2VuZXJhdGlvbiIKKworY29uZmlnIENSWVBUT19QUk5HCisJdHJpc3RhdGUgIlBzZXVkbyBSYW5kb20gTnVtYmVyIEdlbmVyYXRpb24gZm9yIENyeXB0b2dyYXBoaWMgbW9kdWxlcyIKKwloZWxwCisJICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBnZW5lcmljIHBzZXVkbyByYW5kb20gbnVtYmVyIGdlbmVyYXRvcgorCSAgZm9yIGNyeXB0b2dyYXBoaWMgbW9kdWxlcy4gIFVzZXMgdGhlIEFsZ29yaXRobSBzcGVjaWZpZWQgaW4KKwkgIEFOU0kgWDkuMzEgQS4yLjQKKwogc291cmNlICJkcml2ZXJzL2NyeXB0by9LY29uZmlnIgogCiBlbmRpZgkjIGlmIENSWVBUTwpkaWZmIC0tZ2l0IGEvY3J5cHRvL01ha2VmaWxlIGIvY3J5cHRvL01ha2VmaWxlCmluZGV4IGNhMDI0NDEuLmVmNjFiM2IgMTAwNjQ0Ci0tLSBhL2NyeXB0by9NYWtlZmlsZQorKysgYi9jcnlwdG8vTWFrZWZpbGUKQEAgLTE5LDYgKzE5LDcgQEAKIG9iai0kKENPTkZJR19DUllQVE9fU0VRSVYpICs9IHNlcWl2Lm8KIAogY3J5cHRvX2hhc2gtb2JqcyA6PSBoYXNoLm8KK2NyeXB0b19oYXNoLW9ianMgKz0gYWhhc2gubwogb2JqLSQoQ09ORklHX0NSWVBUT19IQVNIKSArPSBjcnlwdG9faGFzaC5vCiAKIG9iai0kKENPTkZJR19DUllQVE9fTUFOQUdFUikgKz0gY3J5cHRvbWdyLm8KQEAgLTI3LDYgKzI4LDEwIEBACiBvYmotJChDT05GSUdfQ1JZUFRPX05VTEwpICs9IGNyeXB0b19udWxsLm8KIG9iai0kKENPTkZJR19DUllQVE9fTUQ0KSArPSBtZDQubwogb2JqLSQoQ09ORklHX0NSWVBUT19NRDUpICs9IG1kNS5vCitvYmotJChDT05GSUdfQ1JZUFRPX1JNRDEyOCkgKz0gcm1kMTI4Lm8KK29iai0kKENPTkZJR19DUllQVE9fUk1EMTYwKSArPSBybWQxNjAubworb2JqLSQoQ09ORklHX0NSWVBUT19STUQyNTYpICs9IHJtZDI1Ni5vCitvYmotJChDT05GSUdfQ1JZUFRPX1JNRDMyMCkgKz0gcm1kMzIwLm8KIG9iai0kKENPTkZJR19DUllQVE9fU0hBMSkgKz0gc2hhMV9nZW5lcmljLm8KIG9iai0kKENPTkZJR19DUllQVE9fU0hBMjU2KSArPSBzaGEyNTZfZ2VuZXJpYy5vCiBvYmotJChDT05GSUdfQ1JZUFRPX1NIQTUxMikgKz0gc2hhNTEyX2dlbmVyaWMubwpAQCAtNjQsNyArNjksNyBAQAogb2JqLSQoQ09ORklHX0NSWVBUT19DUkMzMkMpICs9IGNyYzMyYy5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0FVVEhFTkMpICs9IGF1dGhlbmMubwogb2JqLSQoQ09ORklHX0NSWVBUT19MWk8pICs9IGx6by5vCi0KK29iai0kKENPTkZJR19DUllQVE9fUFJORykgKz0gcHJuZy5vCiBvYmotJChDT05GSUdfQ1JZUFRPX1RFU1QpICs9IHRjcnlwdC5vCiAKICMKZGlmZiAtLWdpdCBhL2NyeXB0by9haGFzaC5jIGIvY3J5cHRvL2FoYXNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjcxMjhmMgotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9haGFzaC5jCkBAIC0wLDAgKzEsMTk0IEBACisvKgorICogQXN5bmNocm9ub3VzIENyeXB0b2dyYXBoaWMgSGFzaCBvcGVyYXRpb25zLgorICoKKyAqIFRoaXMgaXMgdGhlIGFzeW5jaHJvbm91cyB2ZXJzaW9uIG9mIGhhc2guYyB3aXRoIG5vdGlmaWNhdGlvbiBvZgorICogY29tcGxldGlvbiB2aWEgYSBjYWxsYmFjay4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggTG9jIEhvIDxsaG9AYW1jYy5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pCisgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGNyeXB0by9pbnRlcm5hbC9oYXNoLmg+CisjaW5jbHVkZSA8Y3J5cHRvL3NjYXR0ZXJ3YWxrLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKworI2luY2x1ZGUgImludGVybmFsLmgiCisKK3N0YXRpYyBpbnQgaGFzaF93YWxrX25leHQoc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgKndhbGspCit7CisJdW5zaWduZWQgaW50IGFsaWdubWFzayA9IHdhbGstPmFsaWdubWFzazsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gd2Fsay0+b2Zmc2V0OworCXVuc2lnbmVkIGludCBuYnl0ZXMgPSBtaW4od2Fsay0+ZW50cnlsZW4sCisJCQkJICAoKHVuc2lnbmVkIGludCkoUEFHRV9TSVpFKSkgLSBvZmZzZXQpOworCisJd2Fsay0+ZGF0YSA9IGNyeXB0b19rbWFwKHdhbGstPnBnLCAwKTsKKwl3YWxrLT5kYXRhICs9IG9mZnNldDsKKworCWlmIChvZmZzZXQgJiBhbGlnbm1hc2spCisJCW5ieXRlcyA9IGFsaWdubWFzayArIDEgLSAob2Zmc2V0ICYgYWxpZ25tYXNrKTsKKworCXdhbGstPmVudHJ5bGVuIC09IG5ieXRlczsKKwlyZXR1cm4gbmJ5dGVzOworfQorCitzdGF0aWMgaW50IGhhc2hfd2Fsa19uZXdfZW50cnkoc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgKndhbGspCit7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKKworCXNnID0gd2Fsay0+c2c7CisJd2Fsay0+cGcgPSBzZ19wYWdlKHNnKTsKKwl3YWxrLT5vZmZzZXQgPSBzZy0+b2Zmc2V0OworCXdhbGstPmVudHJ5bGVuID0gc2ctPmxlbmd0aDsKKworCWlmICh3YWxrLT5lbnRyeWxlbiA+IHdhbGstPnRvdGFsKQorCQl3YWxrLT5lbnRyeWxlbiA9IHdhbGstPnRvdGFsOworCXdhbGstPnRvdGFsIC09IHdhbGstPmVudHJ5bGVuOworCisJcmV0dXJuIGhhc2hfd2Fsa19uZXh0KHdhbGspOworfQorCitpbnQgY3J5cHRvX2hhc2hfd2Fsa19kb25lKHN0cnVjdCBjcnlwdG9faGFzaF93YWxrICp3YWxrLCBpbnQgZXJyKQoreworCXVuc2lnbmVkIGludCBhbGlnbm1hc2sgPSB3YWxrLT5hbGlnbm1hc2s7CisJdW5zaWduZWQgaW50IG5ieXRlcyA9IHdhbGstPmVudHJ5bGVuOworCisJd2Fsay0+ZGF0YSAtPSB3YWxrLT5vZmZzZXQ7CisKKwlpZiAobmJ5dGVzICYmIHdhbGstPm9mZnNldCAmIGFsaWdubWFzayAmJiAhZXJyKSB7CisJCXdhbGstPm9mZnNldCArPSBhbGlnbm1hc2sgLSAxOworCQl3YWxrLT5vZmZzZXQgPSBBTElHTih3YWxrLT5vZmZzZXQsIGFsaWdubWFzayArIDEpOworCQl3YWxrLT5kYXRhICs9IHdhbGstPm9mZnNldDsKKworCQluYnl0ZXMgPSBtaW4obmJ5dGVzLAorCQkJICAgICAoKHVuc2lnbmVkIGludCkoUEFHRV9TSVpFKSkgLSB3YWxrLT5vZmZzZXQpOworCQl3YWxrLT5lbnRyeWxlbiAtPSBuYnl0ZXM7CisKKwkJcmV0dXJuIG5ieXRlczsKKwl9CisKKwljcnlwdG9fa3VubWFwKHdhbGstPmRhdGEsIDApOworCWNyeXB0b195aWVsZCh3YWxrLT5mbGFncyk7CisKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJd2Fsay0+b2Zmc2V0ID0gMDsKKworCWlmIChuYnl0ZXMpCisJCXJldHVybiBoYXNoX3dhbGtfbmV4dCh3YWxrKTsKKworCWlmICghd2Fsay0+dG90YWwpCisJCXJldHVybiAwOworCisJd2Fsay0+c2cgPSBzY2F0dGVyd2Fsa19zZ19uZXh0KHdhbGstPnNnKTsKKworCXJldHVybiBoYXNoX3dhbGtfbmV3X2VudHJ5KHdhbGspOworfQorRVhQT1JUX1NZTUJPTF9HUEwoY3J5cHRvX2hhc2hfd2Fsa19kb25lKTsKKworaW50IGNyeXB0b19oYXNoX3dhbGtfZmlyc3Qoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwKKwkJCSAgIHN0cnVjdCBjcnlwdG9faGFzaF93YWxrICp3YWxrKQoreworCXdhbGstPnRvdGFsID0gcmVxLT5uYnl0ZXM7CisKKwlpZiAoIXdhbGstPnRvdGFsKQorCQlyZXR1cm4gMDsKKworCXdhbGstPmFsaWdubWFzayA9IGNyeXB0b19haGFzaF9hbGlnbm1hc2soY3J5cHRvX2FoYXNoX3JlcXRmbShyZXEpKTsKKwl3YWxrLT5zZyA9IHJlcS0+c3JjOworCXdhbGstPmZsYWdzID0gcmVxLT5iYXNlLmZsYWdzOworCisJcmV0dXJuIGhhc2hfd2Fsa19uZXdfZW50cnkod2Fsayk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChjcnlwdG9faGFzaF93YWxrX2ZpcnN0KTsKKworc3RhdGljIGludCBhaGFzaF9zZXRrZXlfdW5hbGlnbmVkKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgY29uc3QgdTggKmtleSwKKwkJCQl1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCBhaGFzaF9hbGcgKmFoYXNoID0gY3J5cHRvX2FoYXNoX2FsZyh0Zm0pOworCXVuc2lnbmVkIGxvbmcgYWxpZ25tYXNrID0gY3J5cHRvX2FoYXNoX2FsaWdubWFzayh0Zm0pOworCWludCByZXQ7CisJdTggKmJ1ZmZlciwgKmFsaWduYnVmZmVyOworCXVuc2lnbmVkIGxvbmcgYWJzaXplOworCisJYWJzaXplID0ga2V5bGVuICsgYWxpZ25tYXNrOworCWJ1ZmZlciA9IGttYWxsb2MoYWJzaXplLCBHRlBfQVRPTUlDKTsKKwlpZiAoIWJ1ZmZlcikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlhbGlnbmJ1ZmZlciA9ICh1OCAqKUFMSUdOKCh1bnNpZ25lZCBsb25nKWJ1ZmZlciwgYWxpZ25tYXNrICsgMSk7CisJbWVtY3B5KGFsaWduYnVmZmVyLCBrZXksIGtleWxlbik7CisJcmV0ID0gYWhhc2gtPnNldGtleSh0Zm0sIGFsaWduYnVmZmVyLCBrZXlsZW4pOworCW1lbXNldChhbGlnbmJ1ZmZlciwgMCwga2V5bGVuKTsKKwlrZnJlZShidWZmZXIpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWhhc2hfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgY29uc3QgdTggKmtleSwKKwkJCXVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJc3RydWN0IGFoYXNoX2FsZyAqYWhhc2ggPSBjcnlwdG9fYWhhc2hfYWxnKHRmbSk7CisJdW5zaWduZWQgbG9uZyBhbGlnbm1hc2sgPSBjcnlwdG9fYWhhc2hfYWxpZ25tYXNrKHRmbSk7CisKKwlpZiAoKHVuc2lnbmVkIGxvbmcpa2V5ICYgYWxpZ25tYXNrKQorCQlyZXR1cm4gYWhhc2hfc2V0a2V5X3VuYWxpZ25lZCh0Zm0sIGtleSwga2V5bGVuKTsKKworCXJldHVybiBhaGFzaC0+c2V0a2V5KHRmbSwga2V5LCBrZXlsZW4pOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGNyeXB0b19haGFzaF9jdHhzaXplKHN0cnVjdCBjcnlwdG9fYWxnICphbGcsIHUzMiB0eXBlLAorCQkJCQl1MzIgbWFzaykKK3sKKwlyZXR1cm4gYWxnLT5jcmFfY3R4c2l6ZTsKK30KKworc3RhdGljIGludCBjcnlwdG9faW5pdF9haGFzaF9vcHMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgdTMyIHR5cGUsIHUzMiBtYXNrKQoreworCXN0cnVjdCBhaGFzaF9hbGcgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2FoYXNoOworCXN0cnVjdCBhaGFzaF90Zm0gKmNydCAgID0gJnRmbS0+Y3J0X2FoYXNoOworCisJaWYgKGFsZy0+ZGlnZXN0c2l6ZSA+IFBBR0VfU0laRSAvIDgpCisJCXJldHVybiAtRUlOVkFMOworCisJY3J0LT5pbml0ID0gYWxnLT5pbml0OworCWNydC0+dXBkYXRlID0gYWxnLT51cGRhdGU7CisJY3J0LT5maW5hbCAgPSBhbGctPmZpbmFsOworCWNydC0+ZGlnZXN0ID0gYWxnLT5kaWdlc3Q7CisJY3J0LT5zZXRrZXkgPSBhaGFzaF9zZXRrZXk7CisJY3J0LT5kaWdlc3RzaXplID0gYWxnLT5kaWdlc3RzaXplOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNyeXB0b19haGFzaF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGNyeXB0b19hbGcgKmFsZykKKwlfX2F0dHJpYnV0ZV9fICgodW51c2VkKSk7CitzdGF0aWMgdm9pZCBjcnlwdG9fYWhhc2hfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBjcnlwdG9fYWxnICphbGcpCit7CisJc2VxX3ByaW50ZihtLCAidHlwZSAgICAgICAgIDogYWhhc2hcbiIpOworCXNlcV9wcmludGYobSwgImFzeW5jICAgICAgICA6ICVzXG4iLCBhbGctPmNyYV9mbGFncyAmIENSWVBUT19BTEdfQVNZTkMgPworCQkJCQkgICAgICJ5ZXMiIDogIm5vIik7CisJc2VxX3ByaW50ZihtLCAiYmxvY2tzaXplICAgIDogJXVcbiIsIGFsZy0+Y3JhX2Jsb2Nrc2l6ZSk7CisJc2VxX3ByaW50ZihtLCAiZGlnZXN0c2l6ZSAgIDogJXVcbiIsIGFsZy0+Y3JhX2hhc2guZGlnZXN0c2l6ZSk7Cit9CisKK2NvbnN0IHN0cnVjdCBjcnlwdG9fdHlwZSBjcnlwdG9fYWhhc2hfdHlwZSA9IHsKKwkuY3R4c2l6ZSA9IGNyeXB0b19haGFzaF9jdHhzaXplLAorCS5pbml0ID0gY3J5cHRvX2luaXRfYWhhc2hfb3BzLAorI2lmZGVmIENPTkZJR19QUk9DX0ZTCisJLnNob3cgPSBjcnlwdG9fYWhhc2hfc2hvdywKKyNlbmRpZgorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKGNyeXB0b19haGFzaF90eXBlKTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBc3luY2hyb25vdXMgY3J5cHRvZ3JhcGhpYyBoYXNoIHR5cGUiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9hcGkuYyBiL2NyeXB0by9hcGkuYwppbmRleCAwYTBmNDFlLi5kMDZlMzMyIDEwMDY0NAotLS0gYS9jcnlwdG8vYXBpLmMKKysrIGIvY3J5cHRvL2FwaS5jCkBAIC0yMzUsOCArMjM1LDEyIEBACiAJCXJldHVybiBjcnlwdG9faW5pdF9jaXBoZXJfb3BzKHRmbSk7CiAJCQogCWNhc2UgQ1JZUFRPX0FMR19UWVBFX0RJR0VTVDoKLQkJcmV0dXJuIGNyeXB0b19pbml0X2RpZ2VzdF9vcHModGZtKTsKLQkJCisJCWlmICgobWFzayAmIENSWVBUT19BTEdfVFlQRV9IQVNIX01BU0spICE9CisJCSAgICBDUllQVE9fQUxHX1RZUEVfSEFTSF9NQVNLKQorCQkJcmV0dXJuIGNyeXB0b19pbml0X2RpZ2VzdF9vcHNfYXN5bmModGZtKTsKKwkJZWxzZQorCQkJcmV0dXJuIGNyeXB0b19pbml0X2RpZ2VzdF9vcHModGZtKTsKKwogCWNhc2UgQ1JZUFRPX0FMR19UWVBFX0NPTVBSRVNTOgogCQlyZXR1cm4gY3J5cHRvX2luaXRfY29tcHJlc3Nfb3BzKHRmbSk7CiAJCmRpZmYgLS1naXQgYS9jcnlwdG8vY2FtZWxsaWEuYyBiL2NyeXB0by9jYW1lbGxpYS5jCmluZGV4IDQ5M2ZlZTcuLmIxY2M0ZGUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9jYW1lbGxpYS5jCisrKyBiL2NyeXB0by9jYW1lbGxpYS5jCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4KIAogc3RhdGljIGNvbnN0IHUzMiBjYW1lbGxpYV9zcDExMTBbMjU2XSA9IHsKIAkweDcwNzA3MDAwLDB4ODI4MjgyMDAsMHgyYzJjMmMwMCwweGVjZWNlYzAwLApAQCAtMzM1LDIwICszMzcsNiBAQAogLyoKICAqICBtYWNyb3MKICAqLwotI2RlZmluZSBHRVRVMzIodiwgcHQpIFwKLSAgICBkbyB7IFwKLQkvKiBsYXRlc3QgYnJlZWQgb2YgZ2NjIGlzIGNsZXZlciBlbm91Z2ggdG8gdXNlIG1vdmUgKi8gXAotCW1lbWNweSgmKHYpLCAocHQpLCA0KTsgXAotCSh2KSA9IGJlMzJfdG9fY3B1KHYpOyBcCi0gICAgfSB3aGlsZSgwKQotCi0vKiByb3RhdGlvbiByaWdodCBzaGlmdCAxYnl0ZSAqLwotI2RlZmluZSBST1I4KHgpICgoKHgpID4+IDgpICsgKCh4KSA8PCAyNCkpCi0vKiByb3RhdGlvbiBsZWZ0IHNoaWZ0IDFiaXQgKi8KLSNkZWZpbmUgUk9MMSh4KSAoKCh4KSA8PCAxKSArICgoeCkgPj4gMzEpKQotLyogcm90YXRpb24gbGVmdCBzaGlmdCAxYnl0ZSAqLwotI2RlZmluZSBST0w4KHgpICgoKHgpIDw8IDgpICsgKCh4KSA+PiAyNCkpCi0KICNkZWZpbmUgUk9MRFEobGwsIGxyLCBybCwgcnIsIHcwLCB3MSwgYml0cykJCVwKICAgICBkbyB7CQkJCQkJXAogCXcwID0gbGw7CQkJCQlcCkBAIC0zODMsNyArMzcxLDcgQEAKIAkgICBeIGNhbWVsbGlhX3NwMzAzM1sodTgpKGlsID4+IDgpXQkJCVwKIAkgICBeIGNhbWVsbGlhX3NwNDQwNFsodTgpKGlsICAgICApXTsJCQlcCiAJeWwgXj0geXI7CQkJCQkJXAotCXlyID0gUk9SOCh5cik7CQkJCQkJXAorCXlyID0gcm9yMzIoeXIsIDgpOwkJCQkJXAogCXlyIF49IHlsOwkJCQkJCVwKICAgICB9IHdoaWxlKDApCiAKQEAgLTQwNSw3ICszOTMsNyBAQAogCXN1YkxbN10gXj0gc3ViTFsxXTsgc3ViUls3XSBePSBzdWJSWzFdOwogCXN1YkxbMV0gXj0gc3ViUlsxXSAmIH5zdWJSWzldOwogCWR3ID0gc3ViTFsxXSAmIHN1YkxbOV0sCi0JCXN1YlJbMV0gXj0gUk9MMShkdyk7IC8qIG1vZGlmaWVkIGZvciBGTGludihrbDIpICovCisJCXN1YlJbMV0gXj0gcm9sMzIoZHcsIDEpOyAvKiBtb2RpZmllZCBmb3IgRkxpbnYoa2wyKSAqLwogCS8qIHJvdW5kIDggKi8KIAlzdWJMWzExXSBePSBzdWJMWzFdOyBzdWJSWzExXSBePSBzdWJSWzFdOwogCS8qIHJvdW5kIDEwICovCkBAIC00MTQsNyArNDAyLDcgQEAKIAlzdWJMWzE1XSBePSBzdWJMWzFdOyBzdWJSWzE1XSBePSBzdWJSWzFdOwogCXN1YkxbMV0gXj0gc3ViUlsxXSAmIH5zdWJSWzE3XTsKIAlkdyA9IHN1YkxbMV0gJiBzdWJMWzE3XSwKLQkJc3ViUlsxXSBePSBST0wxKGR3KTsgLyogbW9kaWZpZWQgZm9yIEZMaW52KGtsNCkgKi8KKwkJc3ViUlsxXSBePSByb2wzMihkdywgMSk7IC8qIG1vZGlmaWVkIGZvciBGTGludihrbDQpICovCiAJLyogcm91bmQgMTQgKi8KIAlzdWJMWzE5XSBePSBzdWJMWzFdOyBzdWJSWzE5XSBePSBzdWJSWzFdOwogCS8qIHJvdW5kIDE2ICovCkBAIC00MzAsNyArNDE4LDcgQEAKIAl9IGVsc2UgewogCQlzdWJMWzFdIF49IHN1YlJbMV0gJiB+c3ViUlsyNV07CiAJCWR3ID0gc3ViTFsxXSAmIHN1YkxbMjVdLAotCQkJc3ViUlsxXSBePSBST0wxKGR3KTsgLyogbW9kaWZpZWQgZm9yIEZMaW52KGtsNikgKi8KKwkJCXN1YlJbMV0gXj0gcm9sMzIoZHcsIDEpOyAvKiBtb2RpZmllZCBmb3IgRkxpbnYoa2w2KSAqLwogCQkvKiByb3VuZCAyMCAqLwogCQlzdWJMWzI3XSBePSBzdWJMWzFdOyBzdWJSWzI3XSBePSBzdWJSWzFdOwogCQkvKiByb3VuZCAyMiAqLwpAQCAtNDUwLDcgKzQzOCw3IEBACiAJCXN1YkxbMjZdIF49IGt3NGw7IHN1YlJbMjZdIF49IGt3NHI7CiAJCWt3NGwgXj0ga3c0ciAmIH5zdWJSWzI0XTsKIAkJZHcgPSBrdzRsICYgc3ViTFsyNF0sCi0JCQlrdzRyIF49IFJPTDEoZHcpOyAvKiBtb2RpZmllZCBmb3IgRkwoa2w1KSAqLworCQkJa3c0ciBePSByb2wzMihkdywgMSk7IC8qIG1vZGlmaWVkIGZvciBGTChrbDUpICovCiAJfQogCS8qIHJvdW5kIDE3ICovCiAJc3ViTFsyMl0gXj0ga3c0bDsgc3ViUlsyMl0gXj0ga3c0cjsKQEAgLTQ2MCw3ICs0NDgsNyBAQAogCXN1YkxbMThdIF49IGt3NGw7IHN1YlJbMThdIF49IGt3NHI7CiAJa3c0bCBePSBrdzRyICYgfnN1YlJbMTZdOwogCWR3ID0ga3c0bCAmIHN1YkxbMTZdLAotCQlrdzRyIF49IFJPTDEoZHcpOyAvKiBtb2RpZmllZCBmb3IgRkwoa2wzKSAqLworCQlrdzRyIF49IHJvbDMyKGR3LCAxKTsgLyogbW9kaWZpZWQgZm9yIEZMKGtsMykgKi8KIAkvKiByb3VuZCAxMSAqLwogCXN1YkxbMTRdIF49IGt3NGw7IHN1YlJbMTRdIF49IGt3NHI7CiAJLyogcm91bmQgOSAqLwpAQCAtNDY5LDcgKzQ1Nyw3IEBACiAJc3ViTFsxMF0gXj0ga3c0bDsgc3ViUlsxMF0gXj0ga3c0cjsKIAlrdzRsIF49IGt3NHIgJiB+c3ViUls4XTsKIAlkdyA9IGt3NGwgJiBzdWJMWzhdLAotCQlrdzRyIF49IFJPTDEoZHcpOyAvKiBtb2RpZmllZCBmb3IgRkwoa2wxKSAqLworCQlrdzRyIF49IHJvbDMyKGR3LCAxKTsgLyogbW9kaWZpZWQgZm9yIEZMKGtsMSkgKi8KIAkvKiByb3VuZCA1ICovCiAJc3ViTFs2XSBePSBrdzRsOyBzdWJSWzZdIF49IGt3NHI7CiAJLyogcm91bmQgMyAqLwpAQCAtNDk0LDcgKzQ4Miw3IEBACiAJU1VCS0VZX1IoNikgPSBzdWJSWzVdIF4gc3ViUls3XTsKIAl0bCA9IHN1YkxbMTBdIF4gKHN1YlJbMTBdICYgfnN1YlJbOF0pOwogCWR3ID0gdGwgJiBzdWJMWzhdLCAgLyogRkwoa2wxKSAqLwotCQl0ciA9IHN1YlJbMTBdIF4gUk9MMShkdyk7CisJCXRyID0gc3ViUlsxMF0gXiByb2wzMihkdywgMSk7CiAJU1VCS0VZX0woNykgPSBzdWJMWzZdIF4gdGw7IC8qIHJvdW5kIDYgKi8KIAlTVUJLRVlfUig3KSA9IHN1YlJbNl0gXiB0cjsKIAlTVUJLRVlfTCg4KSA9IHN1YkxbOF07ICAgICAgIC8qIEZMKGtsMSkgKi8KQEAgLTUwMyw3ICs0OTEsNyBAQAogCVNVQktFWV9SKDkpID0gc3ViUls5XTsKIAl0bCA9IHN1YkxbN10gXiAoc3ViUls3XSAmIH5zdWJSWzldKTsKIAlkdyA9IHRsICYgc3ViTFs5XSwgIC8qIEZMaW52KGtsMikgKi8KLQkJdHIgPSBzdWJSWzddIF4gUk9MMShkdyk7CisJCXRyID0gc3ViUls3XSBeIHJvbDMyKGR3LCAxKTsKIAlTVUJLRVlfTCgxMCkgPSB0bCBeIHN1YkxbMTFdOyAvKiByb3VuZCA3ICovCiAJU1VCS0VZX1IoMTApID0gdHIgXiBzdWJSWzExXTsKIAlTVUJLRVlfTCgxMSkgPSBzdWJMWzEwXSBeIHN1YkxbMTJdOyAvKiByb3VuZCA4ICovCkBAIC01MTYsNyArNTA0LDcgQEAKIAlTVUJLRVlfUigxNCkgPSBzdWJSWzEzXSBeIHN1YlJbMTVdOwogCXRsID0gc3ViTFsxOF0gXiAoc3ViUlsxOF0gJiB+c3ViUlsxNl0pOwogCWR3ID0gdGwgJiBzdWJMWzE2XSwgLyogRkwoa2wzKSAqLwotCQl0ciA9IHN1YlJbMThdIF4gUk9MMShkdyk7CisJCXRyID0gc3ViUlsxOF0gXiByb2wzMihkdywgMSk7CiAJU1VCS0VZX0woMTUpID0gc3ViTFsxNF0gXiB0bDsgLyogcm91bmQgMTIgKi8KIAlTVUJLRVlfUigxNSkgPSBzdWJSWzE0XSBeIHRyOwogCVNVQktFWV9MKDE2KSA9IHN1YkxbMTZdOyAgICAgLyogRkwoa2wzKSAqLwpAQCAtNTI1LDcgKzUxMyw3IEBACiAJU1VCS0VZX1IoMTcpID0gc3ViUlsxN107CiAJdGwgPSBzdWJMWzE1XSBeIChzdWJSWzE1XSAmIH5zdWJSWzE3XSk7CiAJZHcgPSB0bCAmIHN1YkxbMTddLCAvKiBGTGludihrbDQpICovCi0JCXRyID0gc3ViUlsxNV0gXiBST0wxKGR3KTsKKwkJdHIgPSBzdWJSWzE1XSBeIHJvbDMyKGR3LCAxKTsKIAlTVUJLRVlfTCgxOCkgPSB0bCBeIHN1YkxbMTldOyAvKiByb3VuZCAxMyAqLwogCVNVQktFWV9SKDE4KSA9IHRyIF4gc3ViUlsxOV07CiAJU1VCS0VZX0woMTkpID0gc3ViTFsxOF0gXiBzdWJMWzIwXTsgLyogcm91bmQgMTQgKi8KQEAgLTU0NCw3ICs1MzIsNyBAQAogCX0gZWxzZSB7CiAJCXRsID0gc3ViTFsyNl0gXiAoc3ViUlsyNl0gJiB+c3ViUlsyNF0pOwogCQlkdyA9IHRsICYgc3ViTFsyNF0sIC8qIEZMKGtsNSkgKi8KLQkJCXRyID0gc3ViUlsyNl0gXiBST0wxKGR3KTsKKwkJCXRyID0gc3ViUlsyNl0gXiByb2wzMihkdywgMSk7CiAJCVNVQktFWV9MKDIzKSA9IHN1YkxbMjJdIF4gdGw7IC8qIHJvdW5kIDE4ICovCiAJCVNVQktFWV9SKDIzKSA9IHN1YlJbMjJdIF4gdHI7CiAJCVNVQktFWV9MKDI0KSA9IHN1YkxbMjRdOyAgICAgLyogRkwoa2w1KSAqLwpAQCAtNTUzLDcgKzU0MSw3IEBACiAJCVNVQktFWV9SKDI1KSA9IHN1YlJbMjVdOwogCQl0bCA9IHN1YkxbMjNdIF4gKHN1YlJbMjNdICYgfnN1YlJbMjVdKTsKIAkJZHcgPSB0bCAmIHN1YkxbMjVdLCAvKiBGTGludihrbDYpICovCi0JCQl0ciA9IHN1YlJbMjNdIF4gUk9MMShkdyk7CisJCQl0ciA9IHN1YlJbMjNdIF4gcm9sMzIoZHcsIDEpOwogCQlTVUJLRVlfTCgyNikgPSB0bCBeIHN1YkxbMjddOyAvKiByb3VuZCAxOSAqLwogCQlTVUJLRVlfUigyNikgPSB0ciBeIHN1YlJbMjddOwogCQlTVUJLRVlfTCgyNykgPSBzdWJMWzI2XSBeIHN1YkxbMjhdOyAvKiByb3VuZCAyMCAqLwpAQCAtNTczLDE3ICs1NjEsMTcgQEAKIAkvKiBhcHBseSB0aGUgaW52ZXJzZSBvZiB0aGUgbGFzdCBoYWxmIG9mIFAtZnVuY3Rpb24gKi8KIAlpID0gMjsKIAlkbyB7Ci0JCWR3ID0gU1VCS0VZX0woaSArIDApIF4gU1VCS0VZX1IoaSArIDApOyBkdyA9IFJPTDgoZHcpOy8qIHJvdW5kIDEgKi8KKwkJZHcgPSBTVUJLRVlfTChpICsgMCkgXiBTVUJLRVlfUihpICsgMCk7IGR3ID0gcm9sMzIoZHcsIDgpOy8qIHJvdW5kIDEgKi8KIAkJU1VCS0VZX1IoaSArIDApID0gU1VCS0VZX0woaSArIDApIF4gZHc7IFNVQktFWV9MKGkgKyAwKSA9IGR3OwotCQlkdyA9IFNVQktFWV9MKGkgKyAxKSBeIFNVQktFWV9SKGkgKyAxKTsgZHcgPSBST0w4KGR3KTsvKiByb3VuZCAyICovCisJCWR3ID0gU1VCS0VZX0woaSArIDEpIF4gU1VCS0VZX1IoaSArIDEpOyBkdyA9IHJvbDMyKGR3LCA4KTsvKiByb3VuZCAyICovCiAJCVNVQktFWV9SKGkgKyAxKSA9IFNVQktFWV9MKGkgKyAxKSBeIGR3OyBTVUJLRVlfTChpICsgMSkgPSBkdzsKLQkJZHcgPSBTVUJLRVlfTChpICsgMikgXiBTVUJLRVlfUihpICsgMik7IGR3ID0gUk9MOChkdyk7Lyogcm91bmQgMyAqLworCQlkdyA9IFNVQktFWV9MKGkgKyAyKSBeIFNVQktFWV9SKGkgKyAyKTsgZHcgPSByb2wzMihkdywgOCk7Lyogcm91bmQgMyAqLwogCQlTVUJLRVlfUihpICsgMikgPSBTVUJLRVlfTChpICsgMikgXiBkdzsgU1VCS0VZX0woaSArIDIpID0gZHc7Ci0JCWR3ID0gU1VCS0VZX0woaSArIDMpIF4gU1VCS0VZX1IoaSArIDMpOyBkdyA9IFJPTDgoZHcpOy8qIHJvdW5kIDQgKi8KKwkJZHcgPSBTVUJLRVlfTChpICsgMykgXiBTVUJLRVlfUihpICsgMyk7IGR3ID0gcm9sMzIoZHcsIDgpOy8qIHJvdW5kIDQgKi8KIAkJU1VCS0VZX1IoaSArIDMpID0gU1VCS0VZX0woaSArIDMpIF4gZHc7IFNVQktFWV9MKGkgKyAzKSA9IGR3OwotCQlkdyA9IFNVQktFWV9MKGkgKyA0KSBeIFNVQktFWV9SKGkgKyA0KTsgZHcgPSBST0w4KGR3KTsvKiByb3VuZCA1ICovCisJCWR3ID0gU1VCS0VZX0woaSArIDQpIF4gU1VCS0VZX1IoaSArIDQpOyBkdyA9IHJvbDMyKGR3LCA5KTsvKiByb3VuZCA1ICovCiAJCVNVQktFWV9SKGkgKyA0KSA9IFNVQktFWV9MKGkgKyA0KSBeIGR3OyBTVUJLRVlfTChpICsgNCkgPSBkdzsKLQkJZHcgPSBTVUJLRVlfTChpICsgNSkgXiBTVUJLRVlfUihpICsgNSk7IGR3ID0gUk9MOChkdyk7Lyogcm91bmQgNiAqLworCQlkdyA9IFNVQktFWV9MKGkgKyA1KSBeIFNVQktFWV9SKGkgKyA1KTsgZHcgPSByb2wzMihkdywgOCk7Lyogcm91bmQgNiAqLwogCQlTVUJLRVlfUihpICsgNSkgPSBTVUJLRVlfTChpICsgNSkgXiBkdzsgU1VCS0VZX0woaSArIDUpID0gZHc7CiAJCWkgKz0gODsKIAl9IHdoaWxlIChpIDwgbWF4KTsKQEAgLTU5OSwxMCArNTg3LDEwIEBACiAJLyoqCiAJICogIGsgPT0ga2xsIHx8IGtsciB8fCBrcmwgfHwga3JyICh8fCBpcyBjb25jYXRlbmF0aW9uKQogCSAqLwotCUdFVFUzMihrbGwsIGtleSAgICAgKTsKLQlHRVRVMzIoa2xyLCBrZXkgKyAgNCk7Ci0JR0VUVTMyKGtybCwga2V5ICsgIDgpOwotCUdFVFUzMihrcnIsIGtleSArIDEyKTsKKwlrbGwgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5KTsKKwlrbHIgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgNCk7CisJa3JsID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGtleSArIDgpOworCWtyciA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAxMik7CiAKIAkvKiBnZW5lcmF0ZSBLTCBkZXBlbmRlbnQgc3Via2V5cyAqLwogCS8qIGt3MSAqLwpAQCAtNzA3LDE0ICs2OTUsMTQgQEAKIAkgKiAga2V5ID0gKGtsbCB8fCBrbHIgfHwga3JsIHx8IGtyciB8fCBrcmxsIHx8IGtybHIgfHwga3JybCB8fCBrcnJyKQogCSAqICAofHwgaXMgY29uY2F0ZW5hdGlvbikKIAkgKi8KLQlHRVRVMzIoa2xsLCAga2V5ICAgICApOwotCUdFVFUzMihrbHIsICBrZXkgKyAgNCk7Ci0JR0VUVTMyKGtybCwgIGtleSArICA4KTsKLQlHRVRVMzIoa3JyLCAga2V5ICsgMTIpOwotCUdFVFUzMihrcmxsLCBrZXkgKyAxNik7Ci0JR0VUVTMyKGtybHIsIGtleSArIDIwKTsKLQlHRVRVMzIoa3JybCwga2V5ICsgMjQpOwotCUdFVFUzMihrcnJyLCBrZXkgKyAyOCk7CisJa2xsID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGtleSk7CisJa2xyID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGtleSArIDQpOworCWtybCA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyA4KTsKKwlrcnIgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgMTIpOworCWtybGwgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgMTYpOworCWtybHIgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgMjApOworCWtycmwgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgMjQpOworCWtycnIgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgMjgpOwogCiAJLyogZ2VuZXJhdGUgS0wgZGVwZW5kZW50IHN1YmtleXMgKi8KIAkvKiBrdzEgKi8KQEAgLTg3MCwxMyArODU4LDEzIEBACiAJdDAgJj0gbGw7CQkJCQkJCVwKIAl0MiB8PSBycjsJCQkJCQkJXAogCXJsIF49IHQyOwkJCQkJCQlcCi0JbHIgXj0gUk9MMSh0MCk7CQkJCQkJCVwKKwlsciBePSByb2wzMih0MCwgMSk7CQkJCQkJXAogCXQzID0ga3JsOwkJCQkJCQlcCiAJdDEgPSBrbHI7CQkJCQkJCVwKIAl0MyAmPSBybDsJCQkJCQkJXAogCXQxIHw9IGxyOwkJCQkJCQlcCiAJbGwgXj0gdDE7CQkJCQkJCVwKLQlyciBePSBST0wxKHQzKTsJCQkJCQkJXAorCXJyIF49IHJvbDMyKHQzLCAxKTsJCQkJCQlcCiAgICAgfSB3aGlsZSgwKQogCiAjZGVmaW5lIENBTUVMTElBX1JPVU5EU00oeGwsIHhyLCBrbCwga3IsIHlsLCB5ciwgaWwsIGlyKQkJXApAQCAtODkyLDcgKzg4MCw3IEBACiAJaWwgXj0ga2w7CQkJCQkJCVwKIAlpciBePSBpbCBeIGtyOwkJCQkJCQlcCiAJeWwgXj0gaXI7CQkJCQkJCVwKLQl5ciBePSBST1I4KGlsKSBeIGlyOwkJCQkJCVwKKwl5ciBePSByb3IzMihpbCwgOCkgXiBpcjsJCQkJCQlcCiAgICAgfSB3aGlsZSgwKQogCiAvKiBtYXggPSAyNDogMTI4Yml0IGVuY3J5cHQsIG1heCA9IDMyOiAyNTZiaXQgZW5jcnlwdCAqLwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2NoYWluaXYuYyBiL2NyeXB0by9jaGFpbml2LmMKaW5kZXggNmRhM2Y1Ny4uOWFmZmFkZSAxMDA2NDQKLS0tIGEvY3J5cHRvL2NoYWluaXYuYworKysgYi9jcnlwdG8vY2hhaW5pdi5jCkBAIC0xMTcsNiArMTE3LDcgQEAKIHN0YXRpYyBpbnQgYXN5bmNfY2hhaW5pdl9zY2hlZHVsZV93b3JrKHN0cnVjdCBhc3luY19jaGFpbml2X2N0eCAqY3R4KQogewogCWludCBxdWV1ZWQ7CisJaW50IGVyciA9IGN0eC0+ZXJyOwogCiAJaWYgKCFjdHgtPnF1ZXVlLnFsZW4pIHsKIAkJc21wX21iX19iZWZvcmVfY2xlYXJfYml0KCk7CkBAIC0xMzEsNyArMTMyLDcgQEAKIAlCVUdfT04oIXF1ZXVlZCk7CiAKIG91dDoKLQlyZXR1cm4gY3R4LT5lcnI7CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBhc3luY19jaGFpbml2X3Bvc3Rwb25lX3JlcXVlc3Qoc3RydWN0IHNrY2lwaGVyX2dpdmNyeXB0X3JlcXVlc3QgKnJlcSkKQEAgLTIyNyw2ICsyMjgsNyBAQAogCQkJCQkJICAgICBwb3N0cG9uZWQpOwogCXN0cnVjdCBza2NpcGhlcl9naXZjcnlwdF9yZXF1ZXN0ICpyZXE7CiAJc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqc3VicmVxOworCWludCBlcnI7CiAKIAkvKiBPbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUgdG8gYXZvaWQgaG9nZ2luZyBrZXZlbnRkLiAqLwogCXNwaW5fbG9ja19iaCgmY3R4LT5sb2NrKTsKQEAgLTI0MSw3ICsyNDMsMTEgQEAKIAlzdWJyZXEgPSBza2NpcGhlcl9naXZjcnlwdF9yZXFjdHgocmVxKTsKIAlzdWJyZXEtPmJhc2UuZmxhZ3MgfD0gQ1JZUFRPX1RGTV9SRVFfTUFZX1NMRUVQOwogCi0JYXN5bmNfY2hhaW5pdl9naXZlbmNyeXB0X3RhaWwocmVxKTsKKwllcnIgPSBhc3luY19jaGFpbml2X2dpdmVuY3J5cHRfdGFpbChyZXEpOworCisJbG9jYWxfYmhfZGlzYWJsZSgpOworCXNrY2lwaGVyX2dpdmNyeXB0X2NvbXBsZXRlKHJlcSwgZXJyKTsKKwlsb2NhbF9iaF9lbmFibGUoKTsKIH0KIAogc3RhdGljIGludCBhc3luY19jaGFpbml2X2luaXQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKZGlmZiAtLWdpdCBhL2NyeXB0by9jcmMzMmMuYyBiL2NyeXB0by9jcmMzMmMuYwppbmRleCAwZGNmNjRhLi5hODgyZDllIDEwMDY0NAotLS0gYS9jcnlwdG8vY3JjMzJjLmMKKysrIGIvY3J5cHRvL2NyYzMyYy5jCkBAIC01LDIwICs1LDIzIEBACiAgKgogICogVGhpcyBtb2R1bGUgZmlsZSBpcyBhIHdyYXBwZXIgdG8gaW52b2tlIHRoZSBsaWIvY3JjMzJjIHJvdXRpbmVzLgogICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CisgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCiAgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIAogICogYW55IGxhdGVyIHZlcnNpb24uCiAgKgogICovCisKKyNpbmNsdWRlIDxjcnlwdG8vaW50ZXJuYWwvaGFzaC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9jcnlwdG8uaD4KICNpbmNsdWRlIDxsaW51eC9jcmMzMmMuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KIAotI2RlZmluZSBDSEtTVU1fQkxPQ0tfU0laRQkzMgorI2RlZmluZSBDSEtTVU1fQkxPQ0tfU0laRQkxCiAjZGVmaW5lIENIS1NVTV9ESUdFU1RfU0laRQk0CiAKIHN0cnVjdCBjaGtzdW1fY3R4IHsKQEAgLTcxLDcgKzc0LDcgQEAKIAkqKF9fbGUzMiAqKW91dCA9IH5jcHVfdG9fbGUzMihtY3R4LT5jcmMpOwogfQogCi1zdGF0aWMgaW50IGNyYzMyY19jcmFfaW5pdChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQorc3RhdGljIGludCBjcmMzMmNfY3JhX2luaXRfb2xkKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCiB7CiAJc3RydWN0IGNoa3N1bV9jdHggKm1jdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOwogCkBAIC03OSwxNCArODIsMTQgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGFsZyA9IHsKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRvX2FsZyBvbGRfYWxnID0gewogCS5jcmFfbmFtZQk9CSJjcmMzMmMiLAogCS5jcmFfZmxhZ3MJPQlDUllQVE9fQUxHX1RZUEVfRElHRVNULAogCS5jcmFfYmxvY2tzaXplCT0JQ0hLU1VNX0JMT0NLX1NJWkUsCiAJLmNyYV9jdHhzaXplCT0Jc2l6ZW9mKHN0cnVjdCBjaGtzdW1fY3R4KSwKIAkuY3JhX21vZHVsZQk9CVRISVNfTU9EVUxFLAotCS5jcmFfbGlzdAk9CUxJU1RfSEVBRF9JTklUKGFsZy5jcmFfbGlzdCksCi0JLmNyYV9pbml0CT0JY3JjMzJjX2NyYV9pbml0LAorCS5jcmFfbGlzdAk9CUxJU1RfSEVBRF9JTklUKG9sZF9hbGcuY3JhX2xpc3QpLAorCS5jcmFfaW5pdAk9CWNyYzMyY19jcmFfaW5pdF9vbGQsCiAJLmNyYV91CQk9CXsKIAkJLmRpZ2VzdCA9IHsKIAkJCSAuZGlhX2RpZ2VzdHNpemU9CUNIS1NVTV9ESUdFU1RfU0laRSwKQEAgLTk4LDE0ICsxMDEsMTI1IEBACiAJfQogfTsKIAorLyoKKyAqIFNldHRpbmcgdGhlIHNlZWQgYWxsb3dzIGFyYml0cmFyeSBhY2N1bXVsYXRvcnMgYW5kIGZsZXhpYmxlIFhPUiBwb2xpY3kKKyAqIElmIHlvdXIgYWxnb3JpdGhtIHN0YXJ0cyB3aXRoIH4wLCB0aGVuIFhPUiB3aXRoIH4wIGJlZm9yZSB5b3Ugc2V0CisgKiB0aGUgc2VlZC4KKyAqLworc3RhdGljIGludCBjcmMzMmNfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKmhhc2gsIGNvbnN0IHU4ICprZXksCisJCQkgdW5zaWduZWQgaW50IGtleWxlbikKK3sKKwl1MzIgKm1jdHggPSBjcnlwdG9fYWhhc2hfY3R4KGhhc2gpOworCisJaWYgKGtleWxlbiAhPSBzaXplb2YodTMyKSkgeworCQljcnlwdG9fYWhhc2hfc2V0X2ZsYWdzKGhhc2gsIENSWVBUT19URk1fUkVTX0JBRF9LRVlfTEVOKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCSptY3R4ID0gbGUzMl90b19jcHVwKChfX2xlMzIgKilrZXkpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNyYzMyY19pbml0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJdTMyICptY3R4ID0gY3J5cHRvX2FoYXNoX2N0eChjcnlwdG9fYWhhc2hfcmVxdGZtKHJlcSkpOworCXUzMiAqY3JjcCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisKKwkqY3JjcCA9ICptY3R4OworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNyYzMyY191cGRhdGUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX2hhc2hfd2FsayB3YWxrOworCXUzMiAqY3JjcCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisJdTMyIGNyYyA9ICpjcmNwOworCWludCBuYnl0ZXM7CisKKwlmb3IgKG5ieXRlcyA9IGNyeXB0b19oYXNoX3dhbGtfZmlyc3QocmVxLCAmd2Fsayk7IG5ieXRlczsKKwkgICAgIG5ieXRlcyA9IGNyeXB0b19oYXNoX3dhbGtfZG9uZSgmd2FsaywgMCkpCisJCWNyYyA9IGNyYzMyYyhjcmMsIHdhbGsuZGF0YSwgbmJ5dGVzKTsKKworCSpjcmNwID0gY3JjOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNyYzMyY19maW5hbChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXUzMiAqY3JjcCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisJCisJKihfX2xlMzIgKilyZXEtPnJlc3VsdCA9IH5jcHVfdG9fbGUzMnAoY3JjcCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3JjMzJjX2RpZ2VzdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9faGFzaF93YWxrIHdhbGs7CisJdTMyICptY3R4ID0gY3J5cHRvX2FoYXNoX2N0eChjcnlwdG9fYWhhc2hfcmVxdGZtKHJlcSkpOworCXUzMiBjcmMgPSAqbWN0eDsKKwlpbnQgbmJ5dGVzOworCisJZm9yIChuYnl0ZXMgPSBjcnlwdG9faGFzaF93YWxrX2ZpcnN0KHJlcSwgJndhbGspOyBuYnl0ZXM7CisJICAgICBuYnl0ZXMgPSBjcnlwdG9faGFzaF93YWxrX2RvbmUoJndhbGssIDApKQorCQljcmMgPSBjcmMzMmMoY3JjLCB3YWxrLmRhdGEsIG5ieXRlcyk7CisKKwkqKF9fbGUzMiAqKXJlcS0+cmVzdWx0ID0gfmNwdV90b19sZTMyKGNyYyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3JjMzJjX2NyYV9pbml0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJdTMyICprZXkgPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCisJKmtleSA9IH4wOworCisJdGZtLT5jcnRfYWhhc2gucmVxc2l6ZSA9IHNpemVvZih1MzIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRvX2FsZyBhbGcgPSB7CisJLmNyYV9uYW1lCQk9CSJjcmMzMmMiLAorCS5jcmFfZHJpdmVyX25hbWUJPQkiY3JjMzJjLWdlbmVyaWMiLAorCS5jcmFfcHJpb3JpdHkJCT0JMTAwLAorCS5jcmFfZmxhZ3MJCT0JQ1JZUFRPX0FMR19UWVBFX0FIQVNILAorCS5jcmFfYmxvY2tzaXplCQk9CUNIS1NVTV9CTE9DS19TSVpFLAorCS5jcmFfYWxpZ25tYXNrCQk9CTMsCisJLmNyYV9jdHhzaXplCQk9CXNpemVvZih1MzIpLAorCS5jcmFfbW9kdWxlCQk9CVRISVNfTU9EVUxFLAorCS5jcmFfbGlzdAkJPQlMSVNUX0hFQURfSU5JVChhbGcuY3JhX2xpc3QpLAorCS5jcmFfaW5pdAkJPQljcmMzMmNfY3JhX2luaXQsCisJLmNyYV90eXBlCQk9CSZjcnlwdG9fYWhhc2hfdHlwZSwKKwkuY3JhX3UJCQk9CXsKKwkJLmFoYXNoID0geworCQkJIC5kaWdlc3RzaXplCT0JQ0hLU1VNX0RJR0VTVF9TSVpFLAorCQkJIC5zZXRrZXkJPQljcmMzMmNfc2V0a2V5LAorCQkJIC5pbml0ICAgCT0gCWNyYzMyY19pbml0LAorCQkJIC51cGRhdGUgCT0JY3JjMzJjX3VwZGF0ZSwKKwkJCSAuZmluYWwgIAk9CWNyYzMyY19maW5hbCwKKwkJCSAuZGlnZXN0ICAJPQljcmMzMmNfZGlnZXN0LAorCQkgfQorCX0KK307CisKIHN0YXRpYyBpbnQgX19pbml0IGNyYzMyY19tb2RfaW5pdCh2b2lkKQogewotCXJldHVybiBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZhbGcpOworCWludCBlcnI7CisKKwllcnIgPSBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZvbGRfYWxnKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gY3J5cHRvX3JlZ2lzdGVyX2FsZygmYWxnKTsKKwlpZiAoZXJyKQorCQljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJm9sZF9hbGcpOworCisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIHZvaWQgX19leGl0IGNyYzMyY19tb2RfZmluaSh2b2lkKQogewogCWNyeXB0b191bnJlZ2lzdGVyX2FsZygmYWxnKTsKKwljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJm9sZF9hbGcpOwogfQogCiBtb2R1bGVfaW5pdChjcmMzMmNfbW9kX2luaXQpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2NyeXB0ZC5jIGIvY3J5cHRvL2NyeXB0ZC5jCmluZGV4IGIxNTBkZTUuLmQyOWUwNmIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9jcnlwdGQuYworKysgYi9jcnlwdG8vY3J5cHRkLmMKQEAgLTExLDYgKzExLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8Y3J5cHRvL2FsZ2FwaS5oPgorI2luY2x1ZGUgPGNyeXB0by9pbnRlcm5hbC9oYXNoLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgpAQCAtNDUsNiArNDYsMTMgQEAKIAljcnlwdG9fY29tcGxldGlvbl90IGNvbXBsZXRlOwogfTsKIAorc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCB7CisJc3RydWN0IGNyeXB0b19oYXNoICpjaGlsZDsKK307CisKK3N0cnVjdCBjcnlwdGRfaGFzaF9yZXF1ZXN0X2N0eCB7CisJY3J5cHRvX2NvbXBsZXRpb25fdCBjb21wbGV0ZTsKK307CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNyeXB0ZF9zdGF0ZSAqY3J5cHRkX2dldF9zdGF0ZShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQogewpAQCAtODIsMTAgKzkwLDggQEAKIAogCXJjdHggPSBhYmxrY2lwaGVyX3JlcXVlc3RfY3R4KHJlcSk7CiAKLQlpZiAodW5saWtlbHkoZXJyID09IC1FSU5QUk9HUkVTUykpIHsKLQkJcmN0eC0+Y29tcGxldGUoJnJlcS0+YmFzZSwgZXJyKTsKLQkJcmV0dXJuOwotCX0KKwlpZiAodW5saWtlbHkoZXJyID09IC1FSU5QUk9HUkVTUykpCisJCWdvdG8gb3V0OwogCiAJZGVzYy50Zm0gPSBjaGlsZDsKIAlkZXNjLmluZm8gPSByZXEtPmluZm87CkBAIC05NSw4ICsxMDEsOSBAQAogCiAJcmVxLT5iYXNlLmNvbXBsZXRlID0gcmN0eC0+Y29tcGxldGU7CiAKK291dDoKIAlsb2NhbF9iaF9kaXNhYmxlKCk7Ci0JcmVxLT5iYXNlLmNvbXBsZXRlKCZyZXEtPmJhc2UsIGVycik7CisJcmN0eC0+Y29tcGxldGUoJnJlcS0+YmFzZSwgZXJyKTsKIAlsb2NhbF9iaF9lbmFibGUoKTsKIH0KIApAQCAtMjYxLDYgKzI2OCwyNDAgQEAKIAlyZXR1cm4gaW5zdDsKIH0KIAorc3RhdGljIGludCBjcnlwdGRfaGFzaF9pbml0X3RmbShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXN0cnVjdCBjcnlwdG9faW5zdGFuY2UgKmluc3QgPSBjcnlwdG9fdGZtX2FsZ19pbnN0YW5jZSh0Zm0pOworCXN0cnVjdCBjcnlwdGRfaW5zdGFuY2VfY3R4ICppY3R4ID0gY3J5cHRvX2luc3RhbmNlX2N0eChpbnN0KTsKKwlzdHJ1Y3QgY3J5cHRvX3NwYXduICpzcGF3biA9ICZpY3R4LT5zcGF3bjsKKwlzdHJ1Y3QgY3J5cHRkX2hhc2hfY3R4ICpjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCXN0cnVjdCBjcnlwdG9faGFzaCAqY2lwaGVyOworCisJY2lwaGVyID0gY3J5cHRvX3NwYXduX2hhc2goc3Bhd24pOworCWlmIChJU19FUlIoY2lwaGVyKSkKKwkJcmV0dXJuIFBUUl9FUlIoY2lwaGVyKTsKKworCWN0eC0+Y2hpbGQgPSBjaXBoZXI7CisJdGZtLT5jcnRfYWhhc2gucmVxc2l6ZSA9CisJCXNpemVvZihzdHJ1Y3QgY3J5cHRkX2hhc2hfcmVxdWVzdF9jdHgpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjcnlwdGRfaGFzaF9leGl0X3RmbShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXN0cnVjdCBjcnlwdGRfaGFzaF9jdHggKmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJc3RydWN0IGNyeXB0ZF9zdGF0ZSAqc3RhdGUgPSBjcnlwdGRfZ2V0X3N0YXRlKHRmbSk7CisJaW50IGFjdGl2ZTsKKworCW11dGV4X2xvY2soJnN0YXRlLT5tdXRleCk7CisJYWN0aXZlID0gYWhhc2hfdGZtX2luX3F1ZXVlKCZzdGF0ZS0+cXVldWUsCisJCQkJX19jcnlwdG9fYWhhc2hfY2FzdCh0Zm0pKTsKKwltdXRleF91bmxvY2soJnN0YXRlLT5tdXRleCk7CisKKwlCVUdfT04oYWN0aXZlKTsKKworCWNyeXB0b19mcmVlX2hhc2goY3R4LT5jaGlsZCk7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnBhcmVudCwKKwkJCQkgICBjb25zdCB1OCAqa2V5LCB1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCBjcnlwdGRfaGFzaF9jdHggKmN0eCAgID0gY3J5cHRvX2FoYXNoX2N0eChwYXJlbnQpOworCXN0cnVjdCBjcnlwdG9faGFzaCAgICAgKmNoaWxkID0gY3R4LT5jaGlsZDsKKwlpbnQgZXJyOworCisJY3J5cHRvX2hhc2hfY2xlYXJfZmxhZ3MoY2hpbGQsIENSWVBUT19URk1fUkVRX01BU0spOworCWNyeXB0b19oYXNoX3NldF9mbGFncyhjaGlsZCwgY3J5cHRvX2FoYXNoX2dldF9mbGFncyhwYXJlbnQpICYKKwkJCQkJICBDUllQVE9fVEZNX1JFUV9NQVNLKTsKKwllcnIgPSBjcnlwdG9faGFzaF9zZXRrZXkoY2hpbGQsIGtleSwga2V5bGVuKTsKKwljcnlwdG9fYWhhc2hfc2V0X2ZsYWdzKHBhcmVudCwgY3J5cHRvX2hhc2hfZ2V0X2ZsYWdzKGNoaWxkKSAmCisJCQkJCSAgICBDUllQVE9fVEZNX1JFU19NQVNLKTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGNyeXB0ZF9oYXNoX2VucXVldWUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwKKwkJCQljcnlwdG9fY29tcGxldGlvbl90IGNvbXBsZXRlKQoreworCXN0cnVjdCBjcnlwdGRfaGFzaF9yZXF1ZXN0X2N0eCAqcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtID0gY3J5cHRvX2FoYXNoX3JlcXRmbShyZXEpOworCXN0cnVjdCBjcnlwdGRfc3RhdGUgKnN0YXRlID0KKwkJY3J5cHRkX2dldF9zdGF0ZShjcnlwdG9fYWhhc2hfdGZtKHRmbSkpOworCWludCBlcnI7CisKKwlyY3R4LT5jb21wbGV0ZSA9IHJlcS0+YmFzZS5jb21wbGV0ZTsKKwlyZXEtPmJhc2UuY29tcGxldGUgPSBjb21wbGV0ZTsKKworCXNwaW5fbG9ja19iaCgmc3RhdGUtPmxvY2spOworCWVyciA9IGFoYXNoX2VucXVldWVfcmVxdWVzdCgmc3RhdGUtPnF1ZXVlLCByZXEpOworCXNwaW5fdW5sb2NrX2JoKCZzdGF0ZS0+bG9jayk7CisKKwl3YWtlX3VwX3Byb2Nlc3Moc3RhdGUtPnRhc2spOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB2b2lkIGNyeXB0ZF9oYXNoX2luaXQoc3RydWN0IGNyeXB0b19hc3luY19yZXF1ZXN0ICpyZXFfYXN5bmMsIGludCBlcnIpCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCAqY3R4ICAgPSBjcnlwdG9fdGZtX2N0eChyZXFfYXN5bmMtPnRmbSk7CisJc3RydWN0IGNyeXB0b19oYXNoICAgICAqY2hpbGQgPSBjdHgtPmNoaWxkOworCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICAgICpyZXEgPSBhaGFzaF9yZXF1ZXN0X2Nhc3QocmVxX2FzeW5jKTsKKwlzdHJ1Y3QgY3J5cHRkX2hhc2hfcmVxdWVzdF9jdHggKnJjdHg7CisJc3RydWN0IGhhc2hfZGVzYyBkZXNjOworCisJcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisKKwlpZiAodW5saWtlbHkoZXJyID09IC1FSU5QUk9HUkVTUykpCisJCWdvdG8gb3V0OworCisJZGVzYy50Zm0gPSBjaGlsZDsKKwlkZXNjLmZsYWdzID0gQ1JZUFRPX1RGTV9SRVFfTUFZX1NMRUVQOworCisJZXJyID0gY3J5cHRvX2hhc2hfY3J0KGNoaWxkKS0+aW5pdCgmZGVzYyk7CisKKwlyZXEtPmJhc2UuY29tcGxldGUgPSByY3R4LT5jb21wbGV0ZTsKKworb3V0OgorCWxvY2FsX2JoX2Rpc2FibGUoKTsKKwlyY3R4LT5jb21wbGV0ZSgmcmVxLT5iYXNlLCBlcnIpOworCWxvY2FsX2JoX2VuYWJsZSgpOworfQorCitzdGF0aWMgaW50IGNyeXB0ZF9oYXNoX2luaXRfZW5xdWV1ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBjcnlwdGRfaGFzaF9lbnF1ZXVlKHJlcSwgY3J5cHRkX2hhc2hfaW5pdCk7Cit9CisKK3N0YXRpYyB2b2lkIGNyeXB0ZF9oYXNoX3VwZGF0ZShzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKnJlcV9hc3luYywgaW50IGVycikKK3sKKwlzdHJ1Y3QgY3J5cHRkX2hhc2hfY3R4ICpjdHggICA9IGNyeXB0b190Zm1fY3R4KHJlcV9hc3luYy0+dGZtKTsKKwlzdHJ1Y3QgY3J5cHRvX2hhc2ggICAgICpjaGlsZCA9IGN0eC0+Y2hpbGQ7CisJc3RydWN0IGFoYXNoX3JlcXVlc3QgICAgKnJlcSA9IGFoYXNoX3JlcXVlc3RfY2FzdChyZXFfYXN5bmMpOworCXN0cnVjdCBjcnlwdGRfaGFzaF9yZXF1ZXN0X2N0eCAqcmN0eDsKKwlzdHJ1Y3QgaGFzaF9kZXNjIGRlc2M7CisKKwlyY3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKworCWlmICh1bmxpa2VseShlcnIgPT0gLUVJTlBST0dSRVNTKSkKKwkJZ290byBvdXQ7CisKKwlkZXNjLnRmbSA9IGNoaWxkOworCWRlc2MuZmxhZ3MgPSBDUllQVE9fVEZNX1JFUV9NQVlfU0xFRVA7CisKKwllcnIgPSBjcnlwdG9faGFzaF9jcnQoY2hpbGQpLT51cGRhdGUoJmRlc2MsCisJCQkJCQlyZXEtPnNyYywKKwkJCQkJCXJlcS0+bmJ5dGVzKTsKKworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IHJjdHgtPmNvbXBsZXRlOworCitvdXQ6CisJbG9jYWxfYmhfZGlzYWJsZSgpOworCXJjdHgtPmNvbXBsZXRlKCZyZXEtPmJhc2UsIGVycik7CisJbG9jYWxfYmhfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfdXBkYXRlX2VucXVldWUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlyZXR1cm4gY3J5cHRkX2hhc2hfZW5xdWV1ZShyZXEsIGNyeXB0ZF9oYXNoX3VwZGF0ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGNyeXB0ZF9oYXNoX2ZpbmFsKHN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCAqcmVxX2FzeW5jLCBpbnQgZXJyKQoreworCXN0cnVjdCBjcnlwdGRfaGFzaF9jdHggKmN0eCAgID0gY3J5cHRvX3RmbV9jdHgocmVxX2FzeW5jLT50Zm0pOworCXN0cnVjdCBjcnlwdG9faGFzaCAgICAgKmNoaWxkID0gY3R4LT5jaGlsZDsKKwlzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAgICAqcmVxID0gYWhhc2hfcmVxdWVzdF9jYXN0KHJlcV9hc3luYyk7CisJc3RydWN0IGNyeXB0ZF9oYXNoX3JlcXVlc3RfY3R4ICpyY3R4OworCXN0cnVjdCBoYXNoX2Rlc2MgZGVzYzsKKworCXJjdHggPSBhaGFzaF9yZXF1ZXN0X2N0eChyZXEpOworCisJaWYgKHVubGlrZWx5KGVyciA9PSAtRUlOUFJPR1JFU1MpKQorCQlnb3RvIG91dDsKKworCWRlc2MudGZtID0gY2hpbGQ7CisJZGVzYy5mbGFncyA9IENSWVBUT19URk1fUkVRX01BWV9TTEVFUDsKKworCWVyciA9IGNyeXB0b19oYXNoX2NydChjaGlsZCktPmZpbmFsKCZkZXNjLCByZXEtPnJlc3VsdCk7CisKKwlyZXEtPmJhc2UuY29tcGxldGUgPSByY3R4LT5jb21wbGV0ZTsKKworb3V0OgorCWxvY2FsX2JoX2Rpc2FibGUoKTsKKwlyY3R4LT5jb21wbGV0ZSgmcmVxLT5iYXNlLCBlcnIpOworCWxvY2FsX2JoX2VuYWJsZSgpOworfQorCitzdGF0aWMgaW50IGNyeXB0ZF9oYXNoX2ZpbmFsX2VucXVldWUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlyZXR1cm4gY3J5cHRkX2hhc2hfZW5xdWV1ZShyZXEsIGNyeXB0ZF9oYXNoX2ZpbmFsKTsKK30KKworc3RhdGljIHZvaWQgY3J5cHRkX2hhc2hfZGlnZXN0KHN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCAqcmVxX2FzeW5jLCBpbnQgZXJyKQoreworCXN0cnVjdCBjcnlwdGRfaGFzaF9jdHggKmN0eCAgID0gY3J5cHRvX3RmbV9jdHgocmVxX2FzeW5jLT50Zm0pOworCXN0cnVjdCBjcnlwdG9faGFzaCAgICAgKmNoaWxkID0gY3R4LT5jaGlsZDsKKwlzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAgICAqcmVxID0gYWhhc2hfcmVxdWVzdF9jYXN0KHJlcV9hc3luYyk7CisJc3RydWN0IGNyeXB0ZF9oYXNoX3JlcXVlc3RfY3R4ICpyY3R4OworCXN0cnVjdCBoYXNoX2Rlc2MgZGVzYzsKKworCXJjdHggPSBhaGFzaF9yZXF1ZXN0X2N0eChyZXEpOworCisJaWYgKHVubGlrZWx5KGVyciA9PSAtRUlOUFJPR1JFU1MpKQorCQlnb3RvIG91dDsKKworCWRlc2MudGZtID0gY2hpbGQ7CisJZGVzYy5mbGFncyA9IENSWVBUT19URk1fUkVRX01BWV9TTEVFUDsKKworCWVyciA9IGNyeXB0b19oYXNoX2NydChjaGlsZCktPmRpZ2VzdCgmZGVzYywKKwkJCQkJCXJlcS0+c3JjLAorCQkJCQkJcmVxLT5uYnl0ZXMsCisJCQkJCQlyZXEtPnJlc3VsdCk7CisKKwlyZXEtPmJhc2UuY29tcGxldGUgPSByY3R4LT5jb21wbGV0ZTsKKworb3V0OgorCWxvY2FsX2JoX2Rpc2FibGUoKTsKKwlyY3R4LT5jb21wbGV0ZSgmcmVxLT5iYXNlLCBlcnIpOworCWxvY2FsX2JoX2VuYWJsZSgpOworfQorCitzdGF0aWMgaW50IGNyeXB0ZF9oYXNoX2RpZ2VzdF9lbnF1ZXVlKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIGNyeXB0ZF9oYXNoX2VucXVldWUocmVxLCBjcnlwdGRfaGFzaF9kaWdlc3QpOworfQorCitzdGF0aWMgc3RydWN0IGNyeXB0b19pbnN0YW5jZSAqY3J5cHRkX2FsbG9jX2hhc2goCisJc3RydWN0IHJ0YXR0ciAqKnRiLCBzdHJ1Y3QgY3J5cHRkX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX2luc3RhbmNlICppbnN0OworCXN0cnVjdCBjcnlwdG9fYWxnICphbGc7CisKKwlhbGcgPSBjcnlwdG9fZ2V0X2F0dHJfYWxnKHRiLCBDUllQVE9fQUxHX1RZUEVfSEFTSCwKKwkJCQkgIENSWVBUT19BTEdfVFlQRV9IQVNIX01BU0spOworCWlmIChJU19FUlIoYWxnKSkKKwkJcmV0dXJuIEVSUl9QVFIoUFRSX0VSUihhbGcpKTsKKworCWluc3QgPSBjcnlwdGRfYWxsb2NfaW5zdGFuY2UoYWxnLCBzdGF0ZSk7CisJaWYgKElTX0VSUihpbnN0KSkKKwkJZ290byBvdXRfcHV0X2FsZzsKKworCWluc3QtPmFsZy5jcmFfZmxhZ3MgPSBDUllQVE9fQUxHX1RZUEVfQUhBU0ggfCBDUllQVE9fQUxHX0FTWU5DOworCWluc3QtPmFsZy5jcmFfdHlwZSA9ICZjcnlwdG9fYWhhc2hfdHlwZTsKKworCWluc3QtPmFsZy5jcmFfYWhhc2guZGlnZXN0c2l6ZSA9IGFsZy0+Y3JhX2hhc2guZGlnZXN0c2l6ZTsKKwlpbnN0LT5hbGcuY3JhX2N0eHNpemUgPSBzaXplb2Yoc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCk7CisKKwlpbnN0LT5hbGcuY3JhX2luaXQgPSBjcnlwdGRfaGFzaF9pbml0X3RmbTsKKwlpbnN0LT5hbGcuY3JhX2V4aXQgPSBjcnlwdGRfaGFzaF9leGl0X3RmbTsKKworCWluc3QtPmFsZy5jcmFfYWhhc2guaW5pdCAgID0gY3J5cHRkX2hhc2hfaW5pdF9lbnF1ZXVlOworCWluc3QtPmFsZy5jcmFfYWhhc2gudXBkYXRlID0gY3J5cHRkX2hhc2hfdXBkYXRlX2VucXVldWU7CisJaW5zdC0+YWxnLmNyYV9haGFzaC5maW5hbCAgPSBjcnlwdGRfaGFzaF9maW5hbF9lbnF1ZXVlOworCWluc3QtPmFsZy5jcmFfYWhhc2guc2V0a2V5ID0gY3J5cHRkX2hhc2hfc2V0a2V5OworCWluc3QtPmFsZy5jcmFfYWhhc2guZGlnZXN0ID0gY3J5cHRkX2hhc2hfZGlnZXN0X2VucXVldWU7CisKK291dF9wdXRfYWxnOgorCWNyeXB0b19tb2RfcHV0KGFsZyk7CisJcmV0dXJuIGluc3Q7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgY3J5cHRkX3N0YXRlIHN0YXRlOwogCiBzdGF0aWMgc3RydWN0IGNyeXB0b19pbnN0YW5jZSAqY3J5cHRkX2FsbG9jKHN0cnVjdCBydGF0dHIgKip0YikKQEAgLTI3NCw2ICs1MTUsOCBAQAogCXN3aXRjaCAoYWxndC0+dHlwZSAmIGFsZ3QtPm1hc2sgJiBDUllQVE9fQUxHX1RZUEVfTUFTSykgewogCWNhc2UgQ1JZUFRPX0FMR19UWVBFX0JMS0NJUEhFUjoKIAkJcmV0dXJuIGNyeXB0ZF9hbGxvY19ibGtjaXBoZXIodGIsICZzdGF0ZSk7CisJY2FzZSBDUllQVE9fQUxHX1RZUEVfRElHRVNUOgorCQlyZXR1cm4gY3J5cHRkX2FsbG9jX2hhc2godGIsICZzdGF0ZSk7CiAJfQogCiAJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CmRpZmYgLS1naXQgYS9jcnlwdG8vZGlnZXN0LmMgYi9jcnlwdG8vZGlnZXN0LmMKaW5kZXggYjUyNmNjMy4uYWMwOTE5NCAxMDA2NDQKLS0tIGEvY3J5cHRvL2RpZ2VzdC5jCisrKyBiL2NyeXB0by9kaWdlc3QuYwpAQCAtMTIsNiArMTIsNyBAQAogICoKICAqLwogCisjaW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KICNpbmNsdWRlIDxjcnlwdG8vc2NhdHRlcndhbGsuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CkBAIC0xNDEsNyArMTQyLDcgQEAKIAlzdHJ1Y3QgaGFzaF90Zm0gKm9wcyA9ICZ0Zm0tPmNydF9oYXNoOwogCXN0cnVjdCBkaWdlc3RfYWxnICpkYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfZGlnZXN0OwogCi0JaWYgKGRhbGctPmRpYV9kaWdlc3RzaXplID4gY3J5cHRvX3RmbV9hbGdfYmxvY2tzaXplKHRmbSkpCisJaWYgKGRhbGctPmRpYV9kaWdlc3RzaXplID4gUEFHRV9TSVpFIC8gOCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJCiAJb3BzLT5pbml0CT0gaW5pdDsKQEAgLTE1NywzICsxNTgsODMgQEAKIHZvaWQgY3J5cHRvX2V4aXRfZGlnZXN0X29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQogewogfQorCitzdGF0aWMgaW50IGRpZ2VzdF9hc3luY19ub3NldGtleShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm1fYXN5bmMsIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCWNyeXB0b19haGFzaF9jbGVhcl9mbGFncyh0Zm1fYXN5bmMsIENSWVBUT19URk1fUkVTX01BU0spOworCXJldHVybiAtRU5PU1lTOworfQorCitzdGF0aWMgaW50IGRpZ2VzdF9hc3luY19zZXRrZXkoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtX2FzeW5jLCBjb25zdCB1OCAqa2V5LAorCQkJdW5zaWduZWQgaW50IGtleWxlbikKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAgICAqdGZtICAgICAgICA9IGNyeXB0b19haGFzaF90Zm0odGZtX2FzeW5jKTsKKwlzdHJ1Y3QgZGlnZXN0X2FsZyAgICAqZGFsZyAgICAgICA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2RpZ2VzdDsKKworCWNyeXB0b19haGFzaF9jbGVhcl9mbGFncyh0Zm1fYXN5bmMsIENSWVBUT19URk1fUkVTX01BU0spOworCXJldHVybiBkYWxnLT5kaWFfc2V0a2V5KHRmbSwga2V5LCBrZXlsZW4pOworfQorCitzdGF0aWMgaW50IGRpZ2VzdF9hc3luY19pbml0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b190Zm0gKnRmbSAgPSByZXEtPmJhc2UudGZtOworCXN0cnVjdCBkaWdlc3RfYWxnICpkYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfZGlnZXN0OworCisJZGFsZy0+ZGlhX2luaXQodGZtKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBkaWdlc3RfYXN5bmNfdXBkYXRlKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b190Zm0gKnRmbSA9IHJlcS0+YmFzZS50Zm07CisJc3RydWN0IGhhc2hfZGVzYyAgZGVzYyA9IHsKKwkJLnRmbSAgID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSksCisJCS5mbGFncyA9IHJlcS0+YmFzZS5mbGFncywKKwl9OworCisJdXBkYXRlKCZkZXNjLCByZXEtPnNyYywgcmVxLT5uYnl0ZXMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRpZ2VzdF9hc3luY19maW5hbChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fdGZtICp0Zm0gID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtICAgPSBfX2NyeXB0b19oYXNoX2Nhc3QodGZtKSwKKwkJLmZsYWdzID0gcmVxLT5iYXNlLmZsYWdzLAorCX07CisKKwlmaW5hbCgmZGVzYywgcmVxLT5yZXN1bHQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRpZ2VzdF9hc3luY19kaWdlc3Qoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtICA9IHJlcS0+YmFzZS50Zm07CisJc3RydWN0IGhhc2hfZGVzYyAgZGVzYyA9IHsKKwkJLnRmbSAgID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSksCisJCS5mbGFncyA9IHJlcS0+YmFzZS5mbGFncywKKwl9OworCisJcmV0dXJuIGRpZ2VzdCgmZGVzYywgcmVxLT5zcmMsIHJlcS0+bmJ5dGVzLCByZXEtPnJlc3VsdCk7Cit9CisKK2ludCBjcnlwdG9faW5pdF9kaWdlc3Rfb3BzX2FzeW5jKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGFoYXNoX3RmbSAgKmNydCAgPSAmdGZtLT5jcnRfYWhhc2g7CisJc3RydWN0IGRpZ2VzdF9hbGcgKmRhbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9kaWdlc3Q7CisKKwlpZiAoZGFsZy0+ZGlhX2RpZ2VzdHNpemUgPiBjcnlwdG9fdGZtX2FsZ19ibG9ja3NpemUodGZtKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljcnQtPmluaXQgICAgICAgPSBkaWdlc3RfYXN5bmNfaW5pdDsKKwljcnQtPnVwZGF0ZSAgICAgPSBkaWdlc3RfYXN5bmNfdXBkYXRlOworCWNydC0+ZmluYWwgICAgICA9IGRpZ2VzdF9hc3luY19maW5hbDsKKwljcnQtPmRpZ2VzdCAgICAgPSBkaWdlc3RfYXN5bmNfZGlnZXN0OworCWNydC0+c2V0a2V5ICAgICA9IGRhbGctPmRpYV9zZXRrZXkgPyBkaWdlc3RfYXN5bmNfc2V0a2V5IDoKKwkJCQkJCWRpZ2VzdF9hc3luY19ub3NldGtleTsKKwljcnQtPmRpZ2VzdHNpemUgPSBkYWxnLT5kaWFfZGlnZXN0c2l6ZTsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2hhc2guYyBiL2NyeXB0by9oYXNoLmMKaW5kZXggN2RjZmY2Ny4uY2I4NmIxOSAxMDA2NDQKLS0tIGEvY3J5cHRvL2hhc2guYworKysgYi9jcnlwdG8vaGFzaC5jCkBAIC05LDYgKzksNyBAQAogICogYW55IGxhdGVyIHZlcnNpb24uCiAgKi8KIAorI2luY2x1ZGUgPGNyeXB0by9pbnRlcm5hbC9oYXNoLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTU5LDI0ICs2MCwxMDcgQEAKIAlyZXR1cm4gYWxnLT5zZXRrZXkoY3J0LCBrZXksIGtleWxlbik7CiB9CiAKLXN0YXRpYyBpbnQgY3J5cHRvX2luaXRfaGFzaF9vcHMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgdTMyIHR5cGUsIHUzMiBtYXNrKQorc3RhdGljIGludCBoYXNoX2FzeW5jX3NldGtleShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm1fYXN5bmMsIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCBjcnlwdG9fdGZtICAqdGZtICAgICAgPSBjcnlwdG9fYWhhc2hfdGZtKHRmbV9hc3luYyk7CisJc3RydWN0IGNyeXB0b19oYXNoICp0Zm1faGFzaCA9IF9fY3J5cHRvX2hhc2hfY2FzdCh0Zm0pOworCXN0cnVjdCBoYXNoX2FsZyAgICAqYWxnICAgICAgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9oYXNoOworCisJcmV0dXJuIGFsZy0+c2V0a2V5KHRmbV9oYXNoLCBrZXksIGtleWxlbik7Cit9CisKK3N0YXRpYyBpbnQgaGFzaF9hc3luY19pbml0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b190Zm0gKnRmbSA9IHJlcS0+YmFzZS50Zm07CisJc3RydWN0IGhhc2hfYWxnICAgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CisJc3RydWN0IGhhc2hfZGVzYyAgZGVzYyA9IHsKKwkJLnRmbSA9IF9fY3J5cHRvX2hhc2hfY2FzdCh0Zm0pLAorCQkuZmxhZ3MgPSByZXEtPmJhc2UuZmxhZ3MsCisJfTsKKworCXJldHVybiBhbGctPmluaXQoJmRlc2MpOworfQorCitzdGF0aWMgaW50IGhhc2hfYXN5bmNfdXBkYXRlKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b190Zm0gKnRmbSA9IHJlcS0+YmFzZS50Zm07CisJc3RydWN0IGhhc2hfYWxnICAgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CisJc3RydWN0IGhhc2hfZGVzYyAgZGVzYyA9IHsKKwkJLnRmbSA9IF9fY3J5cHRvX2hhc2hfY2FzdCh0Zm0pLAorCQkuZmxhZ3MgPSByZXEtPmJhc2UuZmxhZ3MsCisJfTsKKworCXJldHVybiBhbGctPnVwZGF0ZSgmZGVzYywgcmVxLT5zcmMsIHJlcS0+bmJ5dGVzKTsKK30KKworc3RhdGljIGludCBoYXNoX2FzeW5jX2ZpbmFsKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b190Zm0gKnRmbSA9IHJlcS0+YmFzZS50Zm07CisJc3RydWN0IGhhc2hfYWxnICAgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CisJc3RydWN0IGhhc2hfZGVzYyAgZGVzYyA9IHsKKwkJLnRmbSA9IF9fY3J5cHRvX2hhc2hfY2FzdCh0Zm0pLAorCQkuZmxhZ3MgPSByZXEtPmJhc2UuZmxhZ3MsCisJfTsKKworCXJldHVybiBhbGctPmZpbmFsKCZkZXNjLCByZXEtPnJlc3VsdCk7Cit9CisKK3N0YXRpYyBpbnQgaGFzaF9hc3luY19kaWdlc3Qoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9hbGcgICAqYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfaGFzaDsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSksCisJCS5mbGFncyA9IHJlcS0+YmFzZS5mbGFncywKKwl9OworCisJcmV0dXJuIGFsZy0+ZGlnZXN0KCZkZXNjLCByZXEtPnNyYywgcmVxLT5uYnl0ZXMsIHJlcS0+cmVzdWx0KTsKK30KKworc3RhdGljIGludCBjcnlwdG9faW5pdF9oYXNoX29wc19hc3luYyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXN0cnVjdCBhaGFzaF90Zm0gKmNydCA9ICZ0Zm0tPmNydF9haGFzaDsKKwlzdHJ1Y3QgaGFzaF9hbGcgICphbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9oYXNoOworCisJY3J0LT5pbml0ICAgICAgID0gaGFzaF9hc3luY19pbml0OworCWNydC0+dXBkYXRlICAgICA9IGhhc2hfYXN5bmNfdXBkYXRlOworCWNydC0+ZmluYWwgICAgICA9IGhhc2hfYXN5bmNfZmluYWw7CisJY3J0LT5kaWdlc3QgICAgID0gaGFzaF9hc3luY19kaWdlc3Q7CisJY3J0LT5zZXRrZXkgICAgID0gaGFzaF9hc3luY19zZXRrZXk7CisJY3J0LT5kaWdlc3RzaXplID0gYWxnLT5kaWdlc3RzaXplOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRvX2luaXRfaGFzaF9vcHNfc3luYyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQogewogCXN0cnVjdCBoYXNoX3RmbSAqY3J0ID0gJnRmbS0+Y3J0X2hhc2g7CiAJc3RydWN0IGhhc2hfYWxnICphbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9oYXNoOwogCi0JaWYgKGFsZy0+ZGlnZXN0c2l6ZSA+IGNyeXB0b190Zm1fYWxnX2Jsb2Nrc2l6ZSh0Zm0pKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWNydC0+aW5pdCA9IGFsZy0+aW5pdDsKLQljcnQtPnVwZGF0ZSA9IGFsZy0+dXBkYXRlOwotCWNydC0+ZmluYWwgPSBhbGctPmZpbmFsOwotCWNydC0+ZGlnZXN0ID0gYWxnLT5kaWdlc3Q7Ci0JY3J0LT5zZXRrZXkgPSBoYXNoX3NldGtleTsKKwljcnQtPmluaXQgICAgICAgPSBhbGctPmluaXQ7CisJY3J0LT51cGRhdGUgICAgID0gYWxnLT51cGRhdGU7CisJY3J0LT5maW5hbCAgICAgID0gYWxnLT5maW5hbDsKKwljcnQtPmRpZ2VzdCAgICAgPSBhbGctPmRpZ2VzdDsKKwljcnQtPnNldGtleSAgICAgPSBoYXNoX3NldGtleTsKIAljcnQtPmRpZ2VzdHNpemUgPSBhbGctPmRpZ2VzdHNpemU7CiAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBjcnlwdG9faW5pdF9oYXNoX29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCB1MzIgdHlwZSwgdTMyIG1hc2spCit7CisJc3RydWN0IGhhc2hfYWxnICphbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9oYXNoOworCisJaWYgKGFsZy0+ZGlnZXN0c2l6ZSA+IFBBR0VfU0laRSAvIDgpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKChtYXNrICYgQ1JZUFRPX0FMR19UWVBFX0hBU0hfTUFTSykgIT0gQ1JZUFRPX0FMR19UWVBFX0hBU0hfTUFTSykKKwkJcmV0dXJuIGNyeXB0b19pbml0X2hhc2hfb3BzX2FzeW5jKHRmbSk7CisJZWxzZQorCQlyZXR1cm4gY3J5cHRvX2luaXRfaGFzaF9vcHNfc3luYyh0Zm0pOworfQorCiBzdGF0aWMgdm9pZCBjcnlwdG9faGFzaF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGNyeXB0b19hbGcgKmFsZykKIAlfX2F0dHJpYnV0ZV9fICgodW51c2VkKSk7CiBzdGF0aWMgdm9pZCBjcnlwdG9faGFzaF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGNyeXB0b19hbGcgKmFsZykKZGlmZiAtLWdpdCBhL2NyeXB0by9obWFjLmMgYi9jcnlwdG8vaG1hYy5jCmluZGV4IDE0YzYzNTEuLjdmZjJkNmEgMTAwNjQ0Ci0tLSBhL2NyeXB0by9obWFjLmMKKysrIGIvY3J5cHRvL2htYWMuYwpAQCAtMjI2LDYgKzIyNiw3IEBACiAJc3RydWN0IGNyeXB0b19pbnN0YW5jZSAqaW5zdDsKIAlzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnOwogCWludCBlcnI7CisJaW50IGRzOwogCiAJZXJyID0gY3J5cHRvX2NoZWNrX2F0dHJfdHlwZSh0YiwgQ1JZUFRPX0FMR19UWVBFX0hBU0gpOwogCWlmIChlcnIpCkBAIC0yMzYsNiArMjM3LDEzIEBACiAJaWYgKElTX0VSUihhbGcpKQogCQlyZXR1cm4gRVJSX0NBU1QoYWxnKTsKIAorCWluc3QgPSBFUlJfUFRSKC1FSU5WQUwpOworCWRzID0gKGFsZy0+Y3JhX2ZsYWdzICYgQ1JZUFRPX0FMR19UWVBFX01BU0spID09CisJICAgICBDUllQVE9fQUxHX1RZUEVfSEFTSCA/IGFsZy0+Y3JhX2hhc2guZGlnZXN0c2l6ZSA6CisJCQkJICAgIGFsZy0+Y3JhX2RpZ2VzdC5kaWFfZGlnZXN0c2l6ZTsKKwlpZiAoZHMgPiBhbGctPmNyYV9ibG9ja3NpemUpCisJCWdvdG8gb3V0X3B1dF9hbGc7CisKIAlpbnN0ID0gY3J5cHRvX2FsbG9jX2luc3RhbmNlKCJobWFjIiwgYWxnKTsKIAlpZiAoSVNfRVJSKGluc3QpKQogCQlnb3RvIG91dF9wdXRfYWxnOwpAQCAtMjQ2LDE0ICsyNTQsMTAgQEAKIAlpbnN0LT5hbGcuY3JhX2FsaWdubWFzayA9IGFsZy0+Y3JhX2FsaWdubWFzazsKIAlpbnN0LT5hbGcuY3JhX3R5cGUgPSAmY3J5cHRvX2hhc2hfdHlwZTsKIAotCWluc3QtPmFsZy5jcmFfaGFzaC5kaWdlc3RzaXplID0KLQkJKGFsZy0+Y3JhX2ZsYWdzICYgQ1JZUFRPX0FMR19UWVBFX01BU0spID09Ci0JCUNSWVBUT19BTEdfVFlQRV9IQVNIID8gYWxnLT5jcmFfaGFzaC5kaWdlc3RzaXplIDoKLQkJCQkgICAgICAgYWxnLT5jcmFfZGlnZXN0LmRpYV9kaWdlc3RzaXplOworCWluc3QtPmFsZy5jcmFfaGFzaC5kaWdlc3RzaXplID0gZHM7CiAKIAlpbnN0LT5hbGcuY3JhX2N0eHNpemUgPSBzaXplb2Yoc3RydWN0IGhtYWNfY3R4KSArCi0JCQkJQUxJR04oaW5zdC0+YWxnLmNyYV9ibG9ja3NpemUgKiAyICsKLQkJCQkgICAgICBpbnN0LT5hbGcuY3JhX2hhc2guZGlnZXN0c2l6ZSwKKwkJCQlBTElHTihpbnN0LT5hbGcuY3JhX2Jsb2Nrc2l6ZSAqIDIgKyBkcywKIAkJCQkgICAgICBzaXplb2Yodm9pZCAqKSk7CiAKIAlpbnN0LT5hbGcuY3JhX2luaXQgPSBobWFjX2luaXRfdGZtOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2ludGVybmFsLmggYi9jcnlwdG8vaW50ZXJuYWwuaAppbmRleCAzMmY0YzIxLi42ODNmY2IyIDEwMDY0NAotLS0gYS9jcnlwdG8vaW50ZXJuYWwuaAorKysgYi9jcnlwdG8vaW50ZXJuYWwuaApAQCAtODYsNiArODYsNyBAQAogc3RydWN0IGNyeXB0b19hbGcgKmNyeXB0b19hbGdfbW9kX2xvb2t1cChjb25zdCBjaGFyICpuYW1lLCB1MzIgdHlwZSwgdTMyIG1hc2spOwogCiBpbnQgY3J5cHRvX2luaXRfZGlnZXN0X29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKTsKK2ludCBjcnlwdG9faW5pdF9kaWdlc3Rfb3BzX2FzeW5jKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pOwogaW50IGNyeXB0b19pbml0X2NpcGhlcl9vcHMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSk7CiBpbnQgY3J5cHRvX2luaXRfY29tcHJlc3Nfb3BzKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pOwogCmRpZmYgLS1naXQgYS9jcnlwdG8vcHJuZy5jIGIvY3J5cHRvL3BybmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGU0ZjMyCi0tLSAvZGV2L251bGwKKysrIGIvY3J5cHRvL3BybmcuYwpAQCAtMCwwICsxLDQxMCBAQAorLyoKKyAqIFBSTkc6IFBzZXVkbyBSYW5kb20gTnVtYmVyIEdlbmVyYXRvcgorICogICAgICAgQmFzZWQgb24gTklTVCBSZWNvbW1lbmRlZCBQUk5HIEZyb20gQU5TSSBYOS4zMSBBcHBlbmRpeCBBLjIuNCB1c2luZworICogICAgICAgQUVTIDEyOCBjaXBoZXIgaW4gUkZDMzY4NiBjdHIgbW9kZQorICoKKyAqICAoQykgTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKyAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyCisgKiAgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSAicHJuZy5oIgorCisjZGVmaW5lIFRFU1RfUFJOR19PTl9TVEFSVCAwCisKKyNkZWZpbmUgREVGQVVMVF9QUk5HX0tFWSAiMDEyMzQ1Njc4OWFiY2RlZjEwMTEiCisjZGVmaW5lIERFRkFVTFRfUFJOR19LU1ogMjAKKyNkZWZpbmUgREVGQVVMVF9QUk5HX0lWICJkZWZhdWx0diIKKyNkZWZpbmUgREVGQVVMVF9QUk5HX0lWU1ogOAorI2RlZmluZSBERUZBVUxUX0JMS19TWiAxNgorI2RlZmluZSBERUZBVUxUX1ZfU0VFRCAiemF5Ynhjd2R2ZXVmdGdzaCIKKworLyoKKyAqIEZsYWdzIGZvciB0aGUgcHJuZ19jb250ZXh0IGZsYWdzIGZpZWxkCisgKi8KKworI2RlZmluZSBQUk5HX0ZJWEVEX1NJWkUgMHgxCisjZGVmaW5lIFBSTkdfTkVFRF9SRVNFVCAweDIKKworLyoKKyAqIE5vdGU6IERUIGlzIG91ciBjb3VudGVyIHZhbHVlCisgKiAJIEkgaXMgb3VyIGludGVybWVkaWF0ZSB2YWx1ZQorICoJIFYgaXMgb3VyIHNlZWQgdmVjdG9yCisgKiBTZWUgaHR0cDovL2NzcmMubmlzdC5nb3YvZ3JvdXBzL1NUTS9jYXZwL2RvY3VtZW50cy9ybmcvOTMxcm5nZXh0LnBkZgorICogZm9yIGltcGxlbWVudGF0aW9uIGRldGFpbHMKKyAqLworCisKK3N0cnVjdCBwcm5nX2NvbnRleHQgeworCWNoYXIgKnBybmdfa2V5OworCWNoYXIgKnBybmdfaXY7CisJc3BpbmxvY2tfdCBwcm5nX2xvY2s7CisJdW5zaWduZWQgY2hhciByYW5kX2RhdGFbREVGQVVMVF9CTEtfU1pdOworCXVuc2lnbmVkIGNoYXIgbGFzdF9yYW5kX2RhdGFbREVGQVVMVF9CTEtfU1pdOworCXVuc2lnbmVkIGNoYXIgRFRbREVGQVVMVF9CTEtfU1pdOworCXVuc2lnbmVkIGNoYXIgSVtERUZBVUxUX0JMS19TWl07CisJdW5zaWduZWQgY2hhciBWW0RFRkFVTFRfQkxLX1NaXTsKKwl1MzIgcmFuZF9kYXRhX3ZhbGlkOworCXN0cnVjdCBjcnlwdG9fYmxrY2lwaGVyICp0Zm07CisJdTMyIGZsYWdzOworfTsKKworc3RhdGljIGludCBkYmc7CisKK3N0YXRpYyB2b2lkIGhleGR1bXAoY2hhciAqbm90ZSwgdW5zaWduZWQgY2hhciAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCWlmIChkYmcpIHsKKwkJcHJpbnRrKEtFUk5fQ1JJVCAiJXMiLCBub3RlKTsKKwkJcHJpbnRfaGV4X2R1bXAoS0VSTl9DT05ULCAiIiwgRFVNUF9QUkVGSVhfT0ZGU0VULAorCQkJCTE2LCAxLAorCQkJCWJ1ZiwgbGVuLCBmYWxzZSk7CisJfQorfQorCisjZGVmaW5lIGRiZ3ByaW50KGZvcm1hdCwgYXJncy4uLikgZG8ge2lmKGRiZykgcHJpbnRrKGZvcm1hdCwgIyNhcmdzKTt9IHdoaWxlKDApCisKK3N0YXRpYyB2b2lkIHhvcl92ZWN0b3JzKHVuc2lnbmVkIGNoYXIgKmluMSwgdW5zaWduZWQgY2hhciAqaW4yLAorCQkgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dCwgdW5zaWduZWQgaW50IHNpemUpCit7CisJaW50IGk7CisKKwlmb3IgKGk9MDtpPHNpemU7aSsrKQorCQlvdXRbaV0gPSBpbjFbaV0gXiBpbjJbaV07CisKK30KKy8qCisgKiBSZXR1cm5zIERFRkFVTFRfQkxLX1NaIGJ5dGVzIG9mIHJhbmRvbSBkYXRhIHBlciBjYWxsCisgKiByZXR1cm5zIDAgaWYgZ2VuZXJhdGlvbiBzdWNjZWRlZCwgPDAgaWYgc29tZXRoaW5nIHdlbnQgd3JvbmcKKyAqLworc3RhdGljIGludCBfZ2V0X21vcmVfcHJuZ19ieXRlcyhzdHJ1Y3QgcHJuZ19jb250ZXh0ICpjdHgpCit7CisJaW50IGk7CisJc3RydWN0IGJsa2NpcGhlcl9kZXNjIGRlc2M7CisJc3RydWN0IHNjYXR0ZXJsaXN0IHNnX2luLCBzZ19vdXQ7CisJaW50IHJldDsKKwl1bnNpZ25lZCBjaGFyIHRtcFtERUZBVUxUX0JMS19TWl07CisKKwlkZXNjLnRmbSA9IGN0eC0+dGZtOworCWRlc2MuZmxhZ3MgPSAwOworCisKKwlkYmdwcmludChLRVJOX0NSSVQgIkNhbGxpbmcgX2dldF9tb3JlX3BybmdfYnl0ZXMgZm9yIGNvbnRleHQgJXBcbiIsY3R4KTsKKworCWhleGR1bXAoIklucHV0IERUOiAiLCBjdHgtPkRULCBERUZBVUxUX0JMS19TWik7CisJaGV4ZHVtcCgiSW5wdXQgSTogIiwgY3R4LT5JLCBERUZBVUxUX0JMS19TWik7CisJaGV4ZHVtcCgiSW5wdXQgVjogIiwgY3R4LT5WLCBERUZBVUxUX0JMS19TWik7CisKKwkvKgorCSAqIFRoaXMgYWxnb3JpdGhtIGlzIGEgMyBzdGFnZSBzdGF0ZSBtYWNoaW5lCisJICovCisJZm9yIChpPTA7aTwzO2krKykgeworCisJCWRlc2MudGZtID0gY3R4LT50Zm07CisJCWRlc2MuZmxhZ3MgPSAwOworCQlzd2l0Y2ggKGkpIHsKKwkJCWNhc2UgMDoKKwkJCQkvKgorCQkJCSAqIFN0YXJ0IGJ5IGVuY3J5cHRpbmcgdGhlIGNvdW50ZXIgdmFsdWUKKwkJCQkgKiBUaGlzIGdpdmVzIHVzIGFuIGludGVybWVkaWF0ZSB2YWx1ZSBJCisJCQkJICovCisJCQkJbWVtY3B5KHRtcCwgY3R4LT5EVCwgREVGQVVMVF9CTEtfU1opOworCQkJCXNnX2luaXRfb25lKCZzZ19vdXQsICZjdHgtPklbMF0sIERFRkFVTFRfQkxLX1NaKTsKKwkJCQloZXhkdW1wKCJ0bXAgc3RhZ2UgMDogIiwgdG1wLCBERUZBVUxUX0JMS19TWik7CisJCQkJYnJlYWs7CisJCQljYXNlIDE6CisKKwkJCQkvKgorCQkJCSAqIE5leHQgeG9yIEkgd2l0aCBvdXIgc2VjcmV0IHZlY3RvciBWCisJCQkJICogZW5jcnlwdCB0aGF0IHJlc3VsdCB0byBvYnRhaW4gb3VyCisJCQkJICogcHNldWRvIHJhbmRvbSBkYXRhIHdoaWNoIHdlIG91dHB1dAorCQkJCSAqLworCQkJCXhvcl92ZWN0b3JzKGN0eC0+SSwgY3R4LT5WLCB0bXAsIERFRkFVTFRfQkxLX1NaKTsKKwkJCQlzZ19pbml0X29uZSgmc2dfb3V0LCAmY3R4LT5yYW5kX2RhdGFbMF0sIERFRkFVTFRfQkxLX1NaKTsKKwkJCQloZXhkdW1wKCJ0bXAgc3RhZ2UgMTogIiwgdG1wLCBERUZBVUxUX0JMS19TWik7CisJCQkJYnJlYWs7CisJCQljYXNlIDI6CisJCQkJLyoKKwkJCQkgKiBGaXJzdCBjaGVjayB0aGF0IHdlIGRpZG4ndCBwcm9kdWNlIHRoZSBzYW1lIHJhbmRvbSBkYXRhCisJCQkJICogdGhhdCB3ZSBkaWQgbGFzdCB0aW1lIGFyb3VuZCB0aHJvdWdoIHRoaXMKKwkJCQkgKi8KKwkJCQlpZiAoIW1lbWNtcChjdHgtPnJhbmRfZGF0YSwgY3R4LT5sYXN0X3JhbmRfZGF0YSwgREVGQVVMVF9CTEtfU1opKSB7CisJCQkJCXByaW50ayhLRVJOX0VSUiAiY3R4ICVwIEZhaWxlZCByZXBldGl0aW9uIGNoZWNrIVxuIiwKKwkJCQkJCWN0eCk7CisJCQkJCWN0eC0+ZmxhZ3MgfD0gUFJOR19ORUVEX1JFU0VUOworCQkJCQlyZXR1cm4gLTE7CisJCQkJfQorCQkJCW1lbWNweShjdHgtPmxhc3RfcmFuZF9kYXRhLCBjdHgtPnJhbmRfZGF0YSwgREVGQVVMVF9CTEtfU1opOworCisJCQkJLyoKKwkJCQkgKiBMYXN0bHkgeG9yIHRoZSByYW5kb20gZGF0YSB3aXRoIEkKKwkJCQkgKiBhbmQgZW5jcnlwdCB0aGF0IHRvIG9idGFpbiBhIG5ldyBzZWNyZXQgdmVjdG9yIFYKKwkJCQkgKi8KKwkJCQl4b3JfdmVjdG9ycyhjdHgtPnJhbmRfZGF0YSwgY3R4LT5JLCB0bXAsIERFRkFVTFRfQkxLX1NaKTsKKwkJCQlzZ19pbml0X29uZSgmc2dfb3V0LCAmY3R4LT5WWzBdLCBERUZBVUxUX0JMS19TWik7CisJCQkJaGV4ZHVtcCgidG1wIHN0YWdlIDI6ICIsIHRtcCwgREVGQVVMVF9CTEtfU1opOworCQkJCWJyZWFrOworCQl9CisKKwkJLyogSW5pdGlhbGl6ZSBvdXIgaW5wdXQgYnVmZmVyICovCisJCXNnX2luaXRfb25lKCZzZ19pbiwgJnRtcFswXSwgREVGQVVMVF9CTEtfU1opOworCisJCS8qIGRvIHRoZSBlbmNyeXB0aW9uICovCisJCXJldCA9IGNyeXB0b19ibGtjaXBoZXJfZW5jcnlwdCgmZGVzYywgJnNnX291dCwgJnNnX2luLCBERUZBVUxUX0JMS19TWik7CisKKwkJLyogQW5kIGNoZWNrIHRoZSByZXN1bHQgKi8KKwkJaWYgKHJldCkgeworCQkJZGJncHJpbnQoS0VSTl9DUklUICJFbmNyeXB0aW9uIG9mIG5ldyBibG9jayBmYWlsZWQgZm9yIGNvbnRleHQgJXBcbiIsY3R4KTsKKwkJCWN0eC0+cmFuZF9kYXRhX3ZhbGlkID0gREVGQVVMVF9CTEtfU1o7CisJCQlyZXR1cm4gLTE7CisJCX0KKworCX0KKworCS8qCisJICogTm93IHVwZGF0ZSBvdXIgRFQgdmFsdWUKKwkgKi8KKwlmb3IgKGk9REVGQVVMVF9CTEtfU1otMTtpPjA7aS0tKSB7CisJCWN0eC0+RFRbaV0gPSBjdHgtPkRUW2ktMV07CisJfQorCWN0eC0+RFRbMF0gKz0gMTsKKworCWRiZ3ByaW50KCJSZXR1cm5pbmcgbmV3IGJsb2NrIGZvciBjb250ZXh0ICVwXG4iLGN0eCk7CisJY3R4LT5yYW5kX2RhdGFfdmFsaWQgPSAwOworCisJaGV4ZHVtcCgiT3V0cHV0IERUOiAiLCBjdHgtPkRULCBERUZBVUxUX0JMS19TWik7CisJaGV4ZHVtcCgiT3V0cHV0IEk6ICIsIGN0eC0+SSwgREVGQVVMVF9CTEtfU1opOworCWhleGR1bXAoIk91dHB1dCBWOiAiLCBjdHgtPlYsIERFRkFVTFRfQkxLX1NaKTsKKwloZXhkdW1wKCJOZXcgUmFuZG9tIERhdGE6ICIsIGN0eC0+cmFuZF9kYXRhLCBERUZBVUxUX0JMS19TWik7CisKKwlyZXR1cm4gMDsKK30KKworLyogT3VyIGV4cG9ydGVkIGZ1bmN0aW9ucyAqLworaW50IGdldF9wcm5nX2J5dGVzKGNoYXIgKmJ1ZiwgaW50IG5ieXRlcywgc3RydWN0IHBybmdfY29udGV4dCAqY3R4KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgY2hhciAqcHRyID0gYnVmOworCXVuc2lnbmVkIGludCBieXRlX2NvdW50ID0gKHVuc2lnbmVkIGludCluYnl0ZXM7CisJaW50IGVycjsKKworCisJaWYgKG5ieXRlcyA8IDApCisJCXJldHVybiAtRUlOVkFMOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmN0eC0+cHJuZ19sb2NrLCBmbGFncyk7CisKKwllcnIgPSAtRUZBVUxUOworCWlmIChjdHgtPmZsYWdzICYgUFJOR19ORUVEX1JFU0VUKQorCQlnb3RvIGRvbmU7CisKKwkvKgorCSAqIElmIHRoZSBGSVhFRF9TSVpFIGZsYWcgaXMgb24sIG9ubHkgcmV0dXJuIHdob2xlIGJsb2NrcyBvZgorCSAqIHBzZXVkbyByYW5kb20gZGF0YQorCSAqLworCWVyciA9IC1FSU5WQUw7CisJaWYgKGN0eC0+ZmxhZ3MgJiBQUk5HX0ZJWEVEX1NJWkUpIHsKKwkJaWYgKG5ieXRlcyA8IERFRkFVTFRfQkxLX1NaKQorCQkJZ290byBkb25lOworCQlieXRlX2NvdW50ID0gREVGQVVMVF9CTEtfU1o7CisJfQorCisJZXJyID0gYnl0ZV9jb3VudDsKKworCWRiZ3ByaW50KEtFUk5fQ1JJVCAiZ2V0dGluZyAlZCByYW5kb20gYnl0ZXMgZm9yIGNvbnRleHQgJXBcbiIsYnl0ZV9jb3VudCwgY3R4KTsKKworCityZW1haW5kZXI6CisJaWYgKGN0eC0+cmFuZF9kYXRhX3ZhbGlkID09IERFRkFVTFRfQkxLX1NaKSB7CisJCWlmIChfZ2V0X21vcmVfcHJuZ19ieXRlcyhjdHgpIDwgMCkgeworCQkJbWVtc2V0KGJ1ZiwgMCwgbmJ5dGVzKTsKKwkJCWVyciA9IC1FRkFVTFQ7CisJCQlnb3RvIGRvbmU7CisJCX0KKwl9CisKKwkvKgorCSAqIENvcHkgdXAgdG8gdGhlIG5leHQgd2hvbGUgYmxvY2sgc2l6ZQorCSAqLworCWlmIChieXRlX2NvdW50IDwgREVGQVVMVF9CTEtfU1opIHsKKwkJZm9yICg7Y3R4LT5yYW5kX2RhdGFfdmFsaWQgPCBERUZBVUxUX0JMS19TWjsgY3R4LT5yYW5kX2RhdGFfdmFsaWQrKykgeworCQkJKnB0ciA9IGN0eC0+cmFuZF9kYXRhW2N0eC0+cmFuZF9kYXRhX3ZhbGlkXTsKKwkJCXB0cisrOworCQkJYnl0ZV9jb3VudC0tOworCQkJaWYgKGJ5dGVfY291bnQgPT0gMCkKKwkJCQlnb3RvIGRvbmU7CisJCX0KKwl9CisKKwkvKgorCSAqIE5vdyBjb3B5IHdob2xlIGJsb2NrcworCSAqLworCWZvcig7Ynl0ZV9jb3VudCA+PSBERUZBVUxUX0JMS19TWjsgYnl0ZV9jb3VudCAtPSBERUZBVUxUX0JMS19TWikgeworCQlpZiAoX2dldF9tb3JlX3BybmdfYnl0ZXMoY3R4KSA8IDApIHsKKwkJCW1lbXNldChidWYsIDAsIG5ieXRlcyk7CisJCQllcnIgPSAtMTsKKwkJCWdvdG8gZG9uZTsKKwkJfQorCQltZW1jcHkocHRyLCBjdHgtPnJhbmRfZGF0YSwgREVGQVVMVF9CTEtfU1opOworCQljdHgtPnJhbmRfZGF0YV92YWxpZCArPSBERUZBVUxUX0JMS19TWjsKKwkJcHRyICs9IERFRkFVTFRfQkxLX1NaOworCX0KKworCS8qCisJICogTm93IGNvcHkgYW55IGV4dHJhIHBhcnRpYWwgZGF0YQorCSAqLworCWlmIChieXRlX2NvdW50KQorCQlnb3RvIHJlbWFpbmRlcjsKKworZG9uZToKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjdHgtPnBybmdfbG9jaywgZmxhZ3MpOworCWRiZ3ByaW50KEtFUk5fQ1JJVCAicmV0dXJuaW5nICVkIGZyb20gZ2V0X3BybmdfYnl0ZXMgaW4gY29udGV4dCAlcFxuIixlcnIsIGN0eCk7CisJcmV0dXJuIGVycjsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGdldF9wcm5nX2J5dGVzKTsKKworc3RydWN0IHBybmdfY29udGV4dCAqYWxsb2NfcHJuZ19jb250ZXh0KHZvaWQpCit7CisJc3RydWN0IHBybmdfY29udGV4dCAqY3R4PWt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBwcm5nX2NvbnRleHQpLCBHRlBfS0VSTkVMKTsKKworCXNwaW5fbG9ja19pbml0KCZjdHgtPnBybmdfbG9jayk7CisKKwlpZiAocmVzZXRfcHJuZ19jb250ZXh0KGN0eCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCkpIHsKKwkJa2ZyZWUoY3R4KTsKKwkJY3R4ID0gTlVMTDsKKwl9CisKKwlkYmdwcmludChLRVJOX0NSSVQgInJldHVybmluZyBjb250ZXh0ICVwXG4iLGN0eCk7CisJcmV0dXJuIGN0eDsKK30KKworRVhQT1JUX1NZTUJPTF9HUEwoYWxsb2NfcHJuZ19jb250ZXh0KTsKKwordm9pZCBmcmVlX3BybmdfY29udGV4dChzdHJ1Y3QgcHJuZ19jb250ZXh0ICpjdHgpCit7CisJY3J5cHRvX2ZyZWVfYmxrY2lwaGVyKGN0eC0+dGZtKTsKKwlrZnJlZShjdHgpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZnJlZV9wcm5nX2NvbnRleHQpOworCitpbnQgcmVzZXRfcHJuZ19jb250ZXh0KHN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCwKKwkJICAgICAgIHVuc2lnbmVkIGNoYXIgKmtleSwgdW5zaWduZWQgY2hhciAqaXYsCisJCSAgICAgICB1bnNpZ25lZCBjaGFyICpWLCB1bnNpZ25lZCBjaGFyICpEVCkKK3sKKwlpbnQgcmV0OworCWludCBpdl9sZW47CisJaW50IHJjID0gLUVGQVVMVDsKKworCXNwaW5fbG9jaygmY3R4LT5wcm5nX2xvY2spOworCWN0eC0+ZmxhZ3MgfD0gUFJOR19ORUVEX1JFU0VUOworCisJaWYgKGtleSkKKwkJbWVtY3B5KGN0eC0+cHJuZ19rZXksa2V5LHN0cmxlbihjdHgtPnBybmdfa2V5KSk7CisJZWxzZQorCQljdHgtPnBybmdfa2V5ID0gREVGQVVMVF9QUk5HX0tFWTsKKworCWlmIChpdikKKwkJbWVtY3B5KGN0eC0+cHJuZ19pdixpdiwgc3RybGVuKGN0eC0+cHJuZ19pdikpOworCWVsc2UKKwkJY3R4LT5wcm5nX2l2ID0gREVGQVVMVF9QUk5HX0lWOworCisJaWYgKFYpCisJCW1lbWNweShjdHgtPlYsVixERUZBVUxUX0JMS19TWik7CisJZWxzZQorCQltZW1jcHkoY3R4LT5WLERFRkFVTFRfVl9TRUVELERFRkFVTFRfQkxLX1NaKTsKKworCWlmIChEVCkKKwkJbWVtY3B5KGN0eC0+RFQsIERULCBERUZBVUxUX0JMS19TWik7CisJZWxzZQorCQltZW1zZXQoY3R4LT5EVCwgMCwgREVGQVVMVF9CTEtfU1opOworCisJbWVtc2V0KGN0eC0+cmFuZF9kYXRhLDAsREVGQVVMVF9CTEtfU1opOworCW1lbXNldChjdHgtPmxhc3RfcmFuZF9kYXRhLDAsREVGQVVMVF9CTEtfU1opOworCisJaWYgKGN0eC0+dGZtKQorCQljcnlwdG9fZnJlZV9ibGtjaXBoZXIoY3R4LT50Zm0pOworCisJY3R4LT50Zm0gPSBjcnlwdG9fYWxsb2NfYmxrY2lwaGVyKCJyZmMzNjg2KGN0cihhZXMpKSIsMCwwKTsKKwlpZiAoIWN0eC0+dGZtKSB7CisJCWRiZ3ByaW50KEtFUk5fQ1JJVCAiRmFpbGVkIHRvIGFsbG9jIGNyeXB0byB0Zm0gZm9yIGNvbnRleHQgJXBcbiIsY3R4LT50Zm0pOworCQlnb3RvIG91dDsKKwl9CisKKwljdHgtPnJhbmRfZGF0YV92YWxpZCA9IERFRkFVTFRfQkxLX1NaOworCisJcmV0ID0gY3J5cHRvX2Jsa2NpcGhlcl9zZXRrZXkoY3R4LT50Zm0sIGN0eC0+cHJuZ19rZXksIHN0cmxlbihjdHgtPnBybmdfa2V5KSk7CisJaWYgKHJldCkgeworCQlkYmdwcmludChLRVJOX0NSSVQgIlBSTkc6IHNldGtleSgpIGZhaWxlZCBmbGFncz0leFxuIiwKKwkJCWNyeXB0b19ibGtjaXBoZXJfZ2V0X2ZsYWdzKGN0eC0+dGZtKSk7CisJCWNyeXB0b19mcmVlX2Jsa2NpcGhlcihjdHgtPnRmbSk7CisJCWdvdG8gb3V0OworCX0KKworCWl2X2xlbiA9IGNyeXB0b19ibGtjaXBoZXJfaXZzaXplKGN0eC0+dGZtKTsKKwlpZiAoaXZfbGVuKSB7CisJCWNyeXB0b19ibGtjaXBoZXJfc2V0X2l2KGN0eC0+dGZtLCBjdHgtPnBybmdfaXYsIGl2X2xlbik7CisJfQorCXJjID0gMDsKKwljdHgtPmZsYWdzICY9IH5QUk5HX05FRURfUkVTRVQ7CitvdXQ6CisJc3Bpbl91bmxvY2soJmN0eC0+cHJuZ19sb2NrKTsKKworCXJldHVybiByYzsKKworfQorRVhQT1JUX1NZTUJPTF9HUEwocmVzZXRfcHJuZ19jb250ZXh0KTsKKworLyogTW9kdWxlIGluaXRhbGl6YXRpb24gKi8KK3N0YXRpYyBpbnQgX19pbml0IHBybmdfbW9kX2luaXQodm9pZCkKK3sKKworI2lmZGVmIFRFU1RfUFJOR19PTl9TVEFSVAorCWludCBpOworCXVuc2lnbmVkIGNoYXIgdG1wYnVmW0RFRkFVTFRfQkxLX1NaXTsKKworCXN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCA9IGFsbG9jX3BybmdfY29udGV4dCgpOworCWlmIChjdHggPT0gTlVMTCkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJZm9yIChpPTA7aTwxNjtpKyspIHsKKwkJaWYgKGdldF9wcm5nX2J5dGVzKHRtcGJ1ZiwgREVGQVVMVF9CTEtfU1osIGN0eCkgPCAwKSB7CisJCQlmcmVlX3BybmdfY29udGV4dChjdHgpOworCQkJcmV0dXJuIC1FRkFVTFQ7CisJCX0KKwl9CisJZnJlZV9wcm5nX2NvbnRleHQoY3R4KTsKKyNlbmRpZgorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBwcm5nX21vZF9maW5pKHZvaWQpCit7CisJcmV0dXJuOworfQorCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlNvZnR3YXJlIFBzZXVkbyBSYW5kb20gTnVtYmVyIEdlbmVyYXRvciIpOworTU9EVUxFX0FVVEhPUigiTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4iKTsKK21vZHVsZV9wYXJhbShkYmcsIGludCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKGRiZywgIkJvb2xlYW4gdG8gZW5hYmxlIGRlYnVnZ2luZyAoMC8xID09IG9mZi9vbikiKTsKK21vZHVsZV9pbml0KHBybmdfbW9kX2luaXQpOworbW9kdWxlX2V4aXQocHJuZ19tb2RfZmluaSk7CmRpZmYgLS1naXQgYS9jcnlwdG8vcHJuZy5oIGIvY3J5cHRvL3BybmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWM5YmU1Ci0tLSAvZGV2L251bGwKKysrIGIvY3J5cHRvL3BybmcuaApAQCAtMCwwICsxLDI3IEBACisvKgorICogUFJORzogUHNldWRvIFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yCisgKgorICogIChDKSBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIKKyAqICBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKgorICovCisKKyNpZm5kZWYgX1BSTkdfSF8KKyNkZWZpbmUgX1BSTkdfSF8KK3N0cnVjdCBwcm5nX2NvbnRleHQ7CisKK2ludCBnZXRfcHJuZ19ieXRlcyhjaGFyICpidWYsIGludCBuYnl0ZXMsIHN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCk7CitzdHJ1Y3QgcHJuZ19jb250ZXh0ICphbGxvY19wcm5nX2NvbnRleHQodm9pZCk7CitpbnQgcmVzZXRfcHJuZ19jb250ZXh0KHN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCwKKwkJCXVuc2lnbmVkIGNoYXIgKmtleSwgdW5zaWduZWQgY2hhciAqaXYsCisJCQl1bnNpZ25lZCBjaGFyICpWLAorCQkJdW5zaWduZWQgY2hhciAqRFQpOwordm9pZCBmcmVlX3BybmdfY29udGV4dChzdHJ1Y3QgcHJuZ19jb250ZXh0ICpjdHgpOworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JpcGVtZC5oIGIvY3J5cHRvL3JpcGVtZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1N2EyZDQKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vcmlwZW1kLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvbW1vbiB2YWx1ZXMgZm9yIFJJUEVNRCBhbGdvcml0aG1zCisgKi8KKworI2lmbmRlZiBfQ1JZUFRPX1JNRF9ICisjZGVmaW5lIF9DUllQVE9fUk1EX0gKKworI2RlZmluZSBSTUQxMjhfRElHRVNUX1NJWkUgICAgICAxNgorI2RlZmluZSBSTUQxMjhfQkxPQ0tfU0laRSAgICAgICA2NAorCisjZGVmaW5lIFJNRDE2MF9ESUdFU1RfU0laRSAgICAgIDIwCisjZGVmaW5lIFJNRDE2MF9CTE9DS19TSVpFICAgICAgIDY0CisKKyNkZWZpbmUgUk1EMjU2X0RJR0VTVF9TSVpFICAgICAgMzIKKyNkZWZpbmUgUk1EMjU2X0JMT0NLX1NJWkUgICAgICAgNjQKKworI2RlZmluZSBSTUQzMjBfRElHRVNUX1NJWkUgICAgICA0MAorI2RlZmluZSBSTUQzMjBfQkxPQ0tfU0laRSAgICAgICA2NAorCisvKiBpbml0aWFsIHZhbHVlcyAgKi8KKyNkZWZpbmUgUk1EX0gwICAweDY3NDUyMzAxVUwKKyNkZWZpbmUgUk1EX0gxICAweGVmY2RhYjg5VUwKKyNkZWZpbmUgUk1EX0gyICAweDk4YmFkY2ZlVUwKKyNkZWZpbmUgUk1EX0gzICAweDEwMzI1NDc2VUwKKyNkZWZpbmUgUk1EX0g0ICAweGMzZDJlMWYwVUwKKyNkZWZpbmUgUk1EX0g1ICAweDc2NTQzMjEwVUwKKyNkZWZpbmUgUk1EX0g2ICAweGZlZGNiYTk4VUwKKyNkZWZpbmUgUk1EX0g3ICAweDg5YWJjZGVmVUwKKyNkZWZpbmUgUk1EX0g4ICAweDAxMjM0NTY3VUwKKyNkZWZpbmUgUk1EX0g5ICAweDNjMmQxZTBmVUwKKworLyogY29uc3RhbnRzICovCisjZGVmaW5lIFJNRF9LMSAgMHgwMDAwMDAwMFVMCisjZGVmaW5lIFJNRF9LMiAgMHg1YTgyNzk5OVVMCisjZGVmaW5lIFJNRF9LMyAgMHg2ZWQ5ZWJhMVVMCisjZGVmaW5lIFJNRF9LNCAgMHg4ZjFiYmNkY1VMCisjZGVmaW5lIFJNRF9LNSAgMHhhOTUzZmQ0ZVVMCisjZGVmaW5lIFJNRF9LNiAgMHg1MGEyOGJlNlVMCisjZGVmaW5lIFJNRF9LNyAgMHg1YzRkZDEyNFVMCisjZGVmaW5lIFJNRF9LOCAgMHg2ZDcwM2VmM1VMCisjZGVmaW5lIFJNRF9LOSAgMHg3YTZkNzZlOVVMCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JtZDEyOC5jIGIvY3J5cHRvL3JtZDEyOC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkZTZmYTIKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vcm1kMTI4LmMKQEAgLTAsMCArMSwzMjUgQEAKKy8qCisgKiBDcnlwdG9ncmFwaGljIEFQSS4KKyAqCisgKiBSSVBFTUQtMTI4IC0gUkFDRSBJbnRlZ3JpdHkgUHJpbWl0aXZlcyBFdmFsdWF0aW9uIE1lc3NhZ2UgRGlnZXN0LgorICoKKyAqIEJhc2VkIG9uIHRoZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gYnkgQW50b29uIEJvc3NlbGFlcnMsIEVTQVQtQ09TSUMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggQWRyaWFuLUtlbiBSdWVlZ3NlZ2dlciA8cnVlZWdzZWdnZXIgKGF0KSBzd2lzcy1pdC5jaD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0b2hhc2guaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKworI2luY2x1ZGUgInJpcGVtZC5oIgorCitzdHJ1Y3Qgcm1kMTI4X2N0eCB7CisJdTY0IGJ5dGVfY291bnQ7CisJdTMyIHN0YXRlWzRdOworCV9fbGUzMiBidWZmZXJbMTZdOworfTsKKworI2RlZmluZSBLMSAgUk1EX0sxCisjZGVmaW5lIEsyICBSTURfSzIKKyNkZWZpbmUgSzMgIFJNRF9LMworI2RlZmluZSBLNCAgUk1EX0s0CisjZGVmaW5lIEtLMSBSTURfSzYKKyNkZWZpbmUgS0syIFJNRF9LNworI2RlZmluZSBLSzMgUk1EX0s4CisjZGVmaW5lIEtLNCBSTURfSzEKKworI2RlZmluZSBGMSh4LCB5LCB6KSAoeCBeIHkgXiB6KQkJLyogWE9SICovCisjZGVmaW5lIEYyKHgsIHksIHopICh6IF4gKHggJiAoeSBeIHopKSkJLyogeCA/IHkgOiB6ICovCisjZGVmaW5lIEYzKHgsIHksIHopICgoeCB8IH55KSBeIHopCisjZGVmaW5lIEY0KHgsIHksIHopICh5IF4gKHogJiAoeCBeIHkpKSkJLyogeiA/IHggOiB5ICovCisKKyNkZWZpbmUgUk9VTkQoYSwgYiwgYywgZCwgZiwgaywgeCwgcykgIHsgXAorCShhKSArPSBmKChiKSwgKGMpLCAoZCkpICsgbGUzMl90b19jcHVwKCYoeCkpICsgKGspOwlcCisJKGEpID0gcm9sMzIoKGEpLCAocykpOyBcCit9CisKK3N0YXRpYyB2b2lkIHJtZDEyOF90cmFuc2Zvcm0odTMyICpzdGF0ZSwgY29uc3QgX19sZTMyICppbikKK3sKKwl1MzIgYWEsIGJiLCBjYywgZGQsIGFhYSwgYmJiLCBjY2MsIGRkZDsKKworCS8qIEluaXRpYWxpemUgbGVmdCBsYW5lICovCisJYWEgPSBzdGF0ZVswXTsKKwliYiA9IHN0YXRlWzFdOworCWNjID0gc3RhdGVbMl07CisJZGQgPSBzdGF0ZVszXTsKKworCS8qIEluaXRpYWxpemUgcmlnaHQgbGFuZSAqLworCWFhYSA9IHN0YXRlWzBdOworCWJiYiA9IHN0YXRlWzFdOworCWNjYyA9IHN0YXRlWzJdOworCWRkZCA9IHN0YXRlWzNdOworCisJLyogcm91bmQgMTogbGVmdCBsYW5lICovCisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bMF0sICAxMSk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bMV0sICAxNCk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYxLCBLMSwgaW5bMl0sICAxNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYxLCBLMSwgaW5bM10sICAxMik7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bNF0sICAgNSk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bNV0sICAgOCk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYxLCBLMSwgaW5bNl0sICAgNyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYxLCBLMSwgaW5bN10sICAgOSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bOF0sICAxMSk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bOV0sICAxMyk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYxLCBLMSwgaW5bMTBdLCAxNCk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYxLCBLMSwgaW5bMTFdLCAxNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bMTJdLCAgNik7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bMTNdLCAgNyk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYxLCBLMSwgaW5bMTRdLCAgOSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYxLCBLMSwgaW5bMTVdLCAgOCk7CisKKwkvKiByb3VuZCAyOiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls3XSwgICA3KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjIsIEsyLCBpbls0XSwgICA2KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjIsIEsyLCBpblsxM10sICA4KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjIsIEsyLCBpblsxXSwgIDEzKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpblsxMF0sIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjIsIEsyLCBpbls2XSwgICA5KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjIsIEsyLCBpblsxNV0sICA3KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjIsIEsyLCBpblszXSwgIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpblsxMl0sICA3KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjIsIEsyLCBpblswXSwgIDEyKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjIsIEsyLCBpbls5XSwgIDE1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjIsIEsyLCBpbls1XSwgICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpblsyXSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjIsIEsyLCBpblsxNF0sICA3KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjIsIEsyLCBpblsxMV0sIDEzKTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjIsIEsyLCBpbls4XSwgIDEyKTsKKworCS8qIHJvdW5kIDM6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzNdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzEwXSwgMTMpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzRdLCAgIDcpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzE1XSwgIDkpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzhdLCAgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzddLCAgIDgpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzZdLCAgIDYpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzEzXSwgIDUpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzEyXSwgIDUpOworCisJLyogcm91bmQgNDogbGVmdCBsYW5lICovCisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bMV0sICAxMSk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bOV0sICAxMik7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEY0LCBLNCwgaW5bMTFdLCAxNCk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEY0LCBLNCwgaW5bMTBdLCAxNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bMF0sICAxNCk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bOF0sICAxNSk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEY0LCBLNCwgaW5bMTJdLCAgOSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEY0LCBLNCwgaW5bNF0sICAgOCk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bMTNdLCAgOSk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bM10sICAxNCk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEY0LCBLNCwgaW5bN10sICAgNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEY0LCBLNCwgaW5bMTVdLCAgNik7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bMTRdLCAgOCk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bNV0sICAgNik7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEY0LCBLNCwgaW5bNl0sICAgNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEY0LCBLNCwgaW5bMl0sICAxMik7CisKKwkvKiByb3VuZCAxOiByaWdodCBsYW5lICovCisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0sxLCBpbls1XSwgICA4KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzEsIGluWzE0XSwgIDkpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjQsIEtLMSwgaW5bN10sICAgOSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGNCwgS0sxLCBpblswXSwgIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzEsIGluWzldLCAgMTMpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMSwgaW5bMl0sICAxNSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGNCwgS0sxLCBpblsxMV0sIDE1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEY0LCBLSzEsIGluWzRdLCAgIDUpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMSwgaW5bMTNdLCAgNyk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0sxLCBpbls2XSwgICA3KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEY0LCBLSzEsIGluWzE1XSwgIDgpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjQsIEtLMSwgaW5bOF0sICAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0sxLCBpblsxXSwgIDE0KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzEsIGluWzEwXSwgMTQpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjQsIEtLMSwgaW5bM10sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGNCwgS0sxLCBpblsxMl0sICA2KTsKKworCS8qIHJvdW5kIDI6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMiwgaW5bMTFdLCAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMywgS0syLCBpblszXSwgIDE1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYzLCBLSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bMF0sICAxMik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpblsxM10sICA4KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bMTBdLCAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0syLCBpblsxNF0sICA3KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjMsIEtLMiwgaW5bOF0sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMywgS0syLCBpblsxMl0sICA3KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzIsIGluWzRdLCAgIDYpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMiwgaW5bOV0sICAxNSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMywgS0syLCBpblsxXSwgIDEzKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYzLCBLSzIsIGluWzJdLCAgMTEpOworCisJLyogcm91bmQgMzogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLMywgaW5bMTVdLCAgOSk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0szLCBpbls1XSwgICA3KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYyLCBLSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjIsIEtLMywgaW5bM10sICAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0szLCBpbls3XSwgICA4KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjIsIEtLMywgaW5bNl0sICAgNik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMiwgS0szLCBpbls5XSwgIDE0KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjIsIEtLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMiwgS0szLCBpblsxMl0sICA1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYyLCBLSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0szLCBpblswXSwgIDEzKTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYyLCBLSzMsIGluWzRdLCAgIDcpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjIsIEtLMywgaW5bMTNdLCAgNSk7CisKKwkvKiByb3VuZCA0OiByaWdodCBsYW5lICovCisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s0LCBpbls4XSwgIDE1KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzQsIGluWzZdLCAgIDUpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjEsIEtLNCwgaW5bNF0sICAgOCk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMSwgS0s0LCBpblsxXSwgIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzQsIGluWzNdLCAgMTQpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNCwgaW5bMTFdLCAxNCk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMSwgS0s0LCBpblsxNV0sICA2KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYxLCBLSzQsIGluWzBdLCAgMTQpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNCwgaW5bNV0sICAgNik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s0LCBpblsxMl0sICA5KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYxLCBLSzQsIGluWzJdLCAgMTIpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjEsIEtLNCwgaW5bMTNdLCAgOSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s0LCBpbls5XSwgIDEyKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzQsIGluWzddLCAgIDUpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjEsIEtLNCwgaW5bMTBdLCAxNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMSwgS0s0LCBpblsxNF0sICA4KTsKKworCS8qIGNvbWJpbmUgcmVzdWx0cyAqLworCWRkZCArPSBjYyArIHN0YXRlWzFdOwkJLyogZmluYWwgcmVzdWx0IGZvciBzdGF0ZVswXSAqLworCXN0YXRlWzFdID0gc3RhdGVbMl0gKyBkZCArIGFhYTsKKwlzdGF0ZVsyXSA9IHN0YXRlWzNdICsgYWEgKyBiYmI7CisJc3RhdGVbM10gPSBzdGF0ZVswXSArIGJiICsgY2NjOworCXN0YXRlWzBdID0gZGRkOworCisJcmV0dXJuOworfQorCitzdGF0aWMgdm9pZCBybWQxMjhfaW5pdChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXN0cnVjdCBybWQxMjhfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKworCXJjdHgtPmJ5dGVfY291bnQgPSAwOworCisJcmN0eC0+c3RhdGVbMF0gPSBSTURfSDA7CisJcmN0eC0+c3RhdGVbMV0gPSBSTURfSDE7CisJcmN0eC0+c3RhdGVbMl0gPSBSTURfSDI7CisJcmN0eC0+c3RhdGVbM10gPSBSTURfSDM7CisKKwltZW1zZXQocmN0eC0+YnVmZmVyLCAwLCBzaXplb2YocmN0eC0+YnVmZmVyKSk7Cit9CisKK3N0YXRpYyB2b2lkIHJtZDEyOF91cGRhdGUoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgY29uc3QgdTggKmRhdGEsCisJCQkgIHVuc2lnbmVkIGludCBsZW4pCit7CisJc3RydWN0IHJtZDEyOF9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCWNvbnN0IHUzMiBhdmFpbCA9IHNpemVvZihyY3R4LT5idWZmZXIpIC0gKHJjdHgtPmJ5dGVfY291bnQgJiAweDNmKTsKKworCXJjdHgtPmJ5dGVfY291bnQgKz0gbGVuOworCisJLyogRW5vdWdoIHNwYWNlIGluIGJ1ZmZlcj8gSWYgc28gY29weSBhbmQgd2UncmUgZG9uZSAqLworCWlmIChhdmFpbCA+IGxlbikgeworCQltZW1jcHkoKGNoYXIgKilyY3R4LT5idWZmZXIgKyAoc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSBhdmFpbCksCisJCSAgICAgICBkYXRhLCBsZW4pOworCQlyZXR1cm47CisJfQorCisJbWVtY3B5KChjaGFyICopcmN0eC0+YnVmZmVyICsgKHNpemVvZihyY3R4LT5idWZmZXIpIC0gYXZhaWwpLAorCSAgICAgICBkYXRhLCBhdmFpbCk7CisKKwlybWQxMjhfdHJhbnNmb3JtKHJjdHgtPnN0YXRlLCByY3R4LT5idWZmZXIpOworCWRhdGEgKz0gYXZhaWw7CisJbGVuIC09IGF2YWlsOworCisJd2hpbGUgKGxlbiA+PSBzaXplb2YocmN0eC0+YnVmZmVyKSkgeworCQltZW1jcHkocmN0eC0+YnVmZmVyLCBkYXRhLCBzaXplb2YocmN0eC0+YnVmZmVyKSk7CisJCXJtZDEyOF90cmFuc2Zvcm0ocmN0eC0+c3RhdGUsIHJjdHgtPmJ1ZmZlcik7CisJCWRhdGEgKz0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcik7CisJCWxlbiAtPSBzaXplb2YocmN0eC0+YnVmZmVyKTsKKwl9CisKKwltZW1jcHkocmN0eC0+YnVmZmVyLCBkYXRhLCBsZW4pOworfQorCisvKiBBZGQgcGFkZGluZyBhbmQgcmV0dXJuIHRoZSBtZXNzYWdlIGRpZ2VzdC4gKi8KK3N0YXRpYyB2b2lkIHJtZDEyOF9maW5hbChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCB1OCAqb3V0KQoreworCXN0cnVjdCBybWQxMjhfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwl1MzIgaSwgaW5kZXgsIHBhZGxlbjsKKwlfX2xlNjQgYml0czsKKwlfX2xlMzIgKmRzdCA9IChfX2xlMzIgKilvdXQ7CisJc3RhdGljIGNvbnN0IHU4IHBhZGRpbmdbNjRdID0geyAweDgwLCB9OworCisJYml0cyA9IGNwdV90b19sZTY0KHJjdHgtPmJ5dGVfY291bnQgPDwgMyk7CisKKwkvKiBQYWQgb3V0IHRvIDU2IG1vZCA2NCAqLworCWluZGV4ID0gcmN0eC0+Ynl0ZV9jb3VudCAmIDB4M2Y7CisJcGFkbGVuID0gKGluZGV4IDwgNTYpID8gKDU2IC0gaW5kZXgpIDogKCg2NCs1NikgLSBpbmRleCk7CisJcm1kMTI4X3VwZGF0ZSh0Zm0sIHBhZGRpbmcsIHBhZGxlbik7CisKKwkvKiBBcHBlbmQgbGVuZ3RoICovCisJcm1kMTI4X3VwZGF0ZSh0Zm0sIChjb25zdCB1OCAqKSZiaXRzLCBzaXplb2YoYml0cykpOworCisJLyogU3RvcmUgc3RhdGUgaW4gZGlnZXN0ICovCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKKwkJZHN0W2ldID0gY3B1X3RvX2xlMzJwKCZyY3R4LT5zdGF0ZVtpXSk7CisKKwkvKiBXaXBlIGNvbnRleHQgKi8KKwltZW1zZXQocmN0eCwgMCwgc2l6ZW9mKCpyY3R4KSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRvX2FsZyBhbGcgPSB7CisJLmNyYV9uYW1lCSA9CSJybWQxMjgiLAorCS5jcmFfZHJpdmVyX25hbWUgPQkicm1kMTI4IiwKKwkuY3JhX2ZsYWdzCSA9CUNSWVBUT19BTEdfVFlQRV9ESUdFU1QsCisJLmNyYV9ibG9ja3NpemUJID0JUk1EMTI4X0JMT0NLX1NJWkUsCisJLmNyYV9jdHhzaXplCSA9CXNpemVvZihzdHJ1Y3Qgcm1kMTI4X2N0eCksCisJLmNyYV9tb2R1bGUJID0JVEhJU19NT0RVTEUsCisJLmNyYV9saXN0CSA9CUxJU1RfSEVBRF9JTklUKGFsZy5jcmFfbGlzdCksCisJLmNyYV91CQkgPQl7IC5kaWdlc3QgPSB7CisJLmRpYV9kaWdlc3RzaXplCSA9CVJNRDEyOF9ESUdFU1RfU0laRSwKKwkuZGlhX2luaXQJID0Jcm1kMTI4X2luaXQsCisJLmRpYV91cGRhdGUJID0Jcm1kMTI4X3VwZGF0ZSwKKwkuZGlhX2ZpbmFsCSA9CXJtZDEyOF9maW5hbCB9IH0KK307CisKK3N0YXRpYyBpbnQgX19pbml0IHJtZDEyOF9tb2RfaW5pdCh2b2lkKQoreworCXJldHVybiBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZhbGcpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgcm1kMTI4X21vZF9maW5pKHZvaWQpCit7CisJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZhbGcpOworfQorCittb2R1bGVfaW5pdChybWQxMjhfbW9kX2luaXQpOworbW9kdWxlX2V4aXQocm1kMTI4X21vZF9maW5pKTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJSSVBFTUQtMTI4IE1lc3NhZ2UgRGlnZXN0Iik7CisKK01PRFVMRV9BTElBUygicm1kMTI4Iik7CmRpZmYgLS1naXQgYS9jcnlwdG8vcm1kMTYwLmMgYi9jcnlwdG8vcm1kMTYwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAwMWVjNwotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9ybWQxNjAuYwpAQCAtMCwwICsxLDM2OSBAQAorLyoKKyAqIENyeXB0b2dyYXBoaWMgQVBJLgorICoKKyAqIFJJUEVNRC0xNjAgLSBSQUNFIEludGVncml0eSBQcmltaXRpdmVzIEV2YWx1YXRpb24gTWVzc2FnZSBEaWdlc3QuCisgKgorICogQmFzZWQgb24gdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBieSBBbnRvb24gQm9zc2VsYWVycywgRVNBVC1DT1NJQworICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBBZHJpYW4tS2VuIFJ1ZWVnc2VnZ2VyIDxydWVlZ3NlZ2dlciAoYXQpIHN3aXNzLWl0LmNoPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorICogU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKQorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvaGFzaC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgorCisjaW5jbHVkZSAicmlwZW1kLmgiCisKK3N0cnVjdCBybWQxNjBfY3R4IHsKKwl1NjQgYnl0ZV9jb3VudDsKKwl1MzIgc3RhdGVbNV07CisJX19sZTMyIGJ1ZmZlclsxNl07Cit9OworCisjZGVmaW5lIEsxICBSTURfSzEKKyNkZWZpbmUgSzIgIFJNRF9LMgorI2RlZmluZSBLMyAgUk1EX0szCisjZGVmaW5lIEs0ICBSTURfSzQKKyNkZWZpbmUgSzUgIFJNRF9LNQorI2RlZmluZSBLSzEgUk1EX0s2CisjZGVmaW5lIEtLMiBSTURfSzcKKyNkZWZpbmUgS0szIFJNRF9LOAorI2RlZmluZSBLSzQgUk1EX0s5CisjZGVmaW5lIEtLNSBSTURfSzEKKworI2RlZmluZSBGMSh4LCB5LCB6KSAoeCBeIHkgXiB6KQkJLyogWE9SICovCisjZGVmaW5lIEYyKHgsIHksIHopICh6IF4gKHggJiAoeSBeIHopKSkJLyogeCA/IHkgOiB6ICovCisjZGVmaW5lIEYzKHgsIHksIHopICgoeCB8IH55KSBeIHopCisjZGVmaW5lIEY0KHgsIHksIHopICh5IF4gKHogJiAoeCBeIHkpKSkJLyogeiA/IHggOiB5ICovCisjZGVmaW5lIEY1KHgsIHksIHopICh4IF4gKHkgfCB+eikpCisKKyNkZWZpbmUgUk9VTkQoYSwgYiwgYywgZCwgZSwgZiwgaywgeCwgcykgIHsgXAorCShhKSArPSBmKChiKSwgKGMpLCAoZCkpICsgbGUzMl90b19jcHVwKCYoeCkpICsgKGspOyBcCisJKGEpID0gcm9sMzIoKGEpLCAocykpICsgKGUpOyBcCisJKGMpID0gcm9sMzIoKGMpLCAxMCk7IFwKK30KKworc3RhdGljIHZvaWQgcm1kMTYwX3RyYW5zZm9ybSh1MzIgKnN0YXRlLCBjb25zdCBfX2xlMzIgKmluKQoreworCXUzMiBhYSwgYmIsIGNjLCBkZCwgZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlOworCisJLyogSW5pdGlhbGl6ZSBsZWZ0IGxhbmUgKi8KKwlhYSA9IHN0YXRlWzBdOworCWJiID0gc3RhdGVbMV07CisJY2MgPSBzdGF0ZVsyXTsKKwlkZCA9IHN0YXRlWzNdOworCWVlID0gc3RhdGVbNF07CisKKwkvKiBJbml0aWFsaXplIHJpZ2h0IGxhbmUgKi8KKwlhYWEgPSBzdGF0ZVswXTsKKwliYmIgPSBzdGF0ZVsxXTsKKwljY2MgPSBzdGF0ZVsyXTsKKwlkZGQgPSBzdGF0ZVszXTsKKwllZWUgPSBzdGF0ZVs0XTsKKworCS8qIHJvdW5kIDE6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjEsIEsxLCBpblswXSwgIDExKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bMV0sICAxNCk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzJdLCAgMTUpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjEsIEsxLCBpblszXSwgIDEyKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYxLCBLMSwgaW5bNF0sICAgNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMSwgSzEsIGluWzVdLCAgIDgpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpbls2XSwgICA3KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bN10sICAgOSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMSwgSzEsIGluWzhdLCAgMTEpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjEsIEsxLCBpbls5XSwgIDEzKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYxLCBLMSwgaW5bMTBdLCAxNCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzExXSwgMTUpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjEsIEsxLCBpblsxMl0sICA2KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYxLCBLMSwgaW5bMTNdLCAgNyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMSwgSzEsIGluWzE0XSwgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjEsIEsxLCBpblsxNV0sICA4KTsKKworCS8qIHJvdW5kIDI6IGxlZnQgbGFuZSIgKi8KKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYyLCBLMiwgaW5bN10sICAgNyk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzRdLCAgIDYpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjIsIEsyLCBpblsxM10sICA4KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYyLCBLMiwgaW5bMV0sICAxMyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMiwgSzIsIGluWzEwXSwgMTEpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls2XSwgICA5KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYyLCBLMiwgaW5bMTVdLCAgNyk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMiwgSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjIsIEsyLCBpblsxMl0sICA3KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYyLCBLMiwgaW5bMF0sICAxMik7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzldLCAgMTUpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjIsIEsyLCBpbls1XSwgICA5KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYyLCBLMiwgaW5bMl0sICAxMSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMiwgSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjIsIEsyLCBpblsxMV0sIDEzKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYyLCBLMiwgaW5bOF0sICAxMik7CisKKwkvKiByb3VuZCAzOiBsZWZ0IGxhbmUiICovCisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzNdLCAgMTEpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjMsIEszLCBpblsxMF0sIDEzKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYzLCBLMywgaW5bMTRdLCAgNik7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMywgSzMsIGluWzRdLCAgIDcpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpbls5XSwgIDE0KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTVdLCAgOSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMywgSzMsIGluWzhdLCAgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjMsIEszLCBpblsxXSwgIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYzLCBLMywgaW5bMl0sICAxNCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzddLCAgIDgpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjMsIEszLCBpblswXSwgIDEzKTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYzLCBLMywgaW5bNl0sICAgNik7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMywgSzMsIGluWzEzXSwgIDUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjMsIEszLCBpblsxMV0sIDEyKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bNV0sICAgNyk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzEyXSwgIDUpOworCisJLyogcm91bmQgNDogbGVmdCBsYW5lIiAqLworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjQsIEs0LCBpblsxXSwgIDExKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY0LCBLNCwgaW5bOV0sICAxMik7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNCwgSzQsIGluWzExXSwgMTQpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxMF0sIDE1KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bMF0sICAxNCk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNCwgSzQsIGluWzhdLCAgMTUpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjQsIEs0LCBpblsxMl0sICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY0LCBLNCwgaW5bNF0sICAgOCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzEzXSwgIDkpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjQsIEs0LCBpblszXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY0LCBLNCwgaW5bN10sICAgNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNCwgSzQsIGluWzE1XSwgIDYpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjQsIEs0LCBpblsxNF0sICA4KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bNV0sICAgNik7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzZdLCAgIDUpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjQsIEs0LCBpblsyXSwgIDEyKTsKKworCS8qIHJvdW5kIDU6IGxlZnQgbGFuZSIgKi8KKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY1LCBLNSwgaW5bNF0sICAgOSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNSwgSzUsIGluWzBdLCAgMTUpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjUsIEs1LCBpbls1XSwgICA1KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY1LCBLNSwgaW5bOV0sICAxMSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNSwgSzUsIGluWzddLCAgIDYpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjUsIEs1LCBpblsxMl0sICA4KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY1LCBLNSwgaW5bMl0sICAxMyk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNSwgSzUsIGluWzEwXSwgMTIpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjUsIEs1LCBpblsxNF0sICA1KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY1LCBLNSwgaW5bMV0sICAxMik7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNSwgSzUsIGluWzNdLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjUsIEs1LCBpbls4XSwgIDE0KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY1LCBLNSwgaW5bMTFdLCAxMSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNSwgSzUsIGluWzZdLCAgIDgpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjUsIEs1LCBpblsxNV0sICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY1LCBLNSwgaW5bMTNdLCAgNik7CisKKwkvKiByb3VuZCAxOiByaWdodCBsYW5lICovCisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY1LCBLSzEsIGluWzVdLCAgIDgpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNSwgS0sxLCBpblsxNF0sICA5KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjUsIEtLMSwgaW5bN10sICAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY1LCBLSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNSwgS0sxLCBpbls5XSwgIDEzKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjUsIEtLMSwgaW5bMl0sICAxNSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY1LCBLSzEsIGluWzExXSwgMTUpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNSwgS0sxLCBpbls0XSwgICA1KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjUsIEtLMSwgaW5bMTNdLCAgNyk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY1LCBLSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNSwgS0sxLCBpblsxNV0sICA4KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjUsIEtLMSwgaW5bOF0sICAxMSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY1LCBLSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNSwgS0sxLCBpblsxMF0sIDE0KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjUsIEtLMSwgaW5bM10sICAxMik7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY1LCBLSzEsIGluWzEyXSwgIDYpOworCisJLyogcm91bmQgMjogcmlnaHQgbGFuZSAqLworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0syLCBpbls2XSwgICA5KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMiwgaW5bMTFdLCAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY0LCBLSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNCwgS0syLCBpbls3XSwgICA3KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjQsIEtLMiwgaW5bMF0sICAxMik7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0syLCBpbls1XSwgICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjQsIEtLMiwgaW5bMTBdLCAxMSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY0LCBLSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNCwgS0syLCBpblsxNV0sICA3KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMiwgaW5bOF0sICAxMik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNCwgS0syLCBpbls0XSwgICA2KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjQsIEtLMiwgaW5bOV0sICAxNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY0LCBLSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0syLCBpblsyXSwgIDExKTsKKworCS8qIHJvdW5kIDM6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMywgaW5bMTVdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYzLCBLSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMywgS0szLCBpblsxXSwgIDE1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjMsIEtLMywgaW5bM10sICAxMSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzMsIGluWzddLCAgIDgpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMywgS0szLCBpblsxNF0sICA2KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjMsIEtLMywgaW5bNl0sICAgNik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYzLCBLSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMywgS0szLCBpblsxMV0sIDEyKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzMsIGluWzEyXSwgIDUpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMywgS0szLCBpblsyXSwgIDE0KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjMsIEtLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYzLCBLSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0szLCBpbls0XSwgICA3KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMywgaW5bMTNdLCAgNSk7CisKKwkvKiByb3VuZCA0OiByaWdodCBsYW5lICovCisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYyLCBLSzQsIGluWzhdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMiwgS0s0LCBpbls2XSwgICA1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjIsIEtLNCwgaW5bNF0sICAgOCk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0s0LCBpblszXSwgIDE0KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjIsIEtLNCwgaW5bMTFdLCAxNCk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYyLCBLSzQsIGluWzE1XSwgIDYpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMiwgS0s0LCBpblswXSwgIDE0KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLNCwgaW5bNV0sICAgNik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMiwgS0s0LCBpblsyXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjIsIEtLNCwgaW5bMTNdLCAgOSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYyLCBLSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0s0LCBpbls3XSwgICA1KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjIsIEtLNCwgaW5bMTBdLCAxNSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYyLCBLSzQsIGluWzE0XSwgIDgpOworCisJLyogcm91bmQgNTogcmlnaHQgbGFuZSAqLworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMSwgS0s1LCBpblsxMl0sICA4KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjEsIEtLNSwgaW5bMTVdLCAgNSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzUsIGluWzEwXSwgMTIpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s1LCBpbls0XSwgICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjEsIEtLNSwgaW5bMV0sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYxLCBLSzUsIGluWzVdLCAgIDUpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMSwgS0s1LCBpbls4XSwgIDE0KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNSwgaW5bN10sICAgNik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzUsIGluWzZdLCAgIDgpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMSwgS0s1LCBpblsyXSwgIDEzKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjEsIEtLNSwgaW5bMTNdLCAgNik7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYxLCBLSzUsIGluWzE0XSwgIDUpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s1LCBpblswXSwgIDE1KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNSwgaW5bM10sICAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYxLCBLSzUsIGluWzldLCAgMTEpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMSwgS0s1LCBpblsxMV0sIDExKTsKKworCS8qIGNvbWJpbmUgcmVzdWx0cyAqLworCWRkZCArPSBjYyArIHN0YXRlWzFdOwkJLyogZmluYWwgcmVzdWx0IGZvciBzdGF0ZVswXSAqLworCXN0YXRlWzFdID0gc3RhdGVbMl0gKyBkZCArIGVlZTsKKwlzdGF0ZVsyXSA9IHN0YXRlWzNdICsgZWUgKyBhYWE7CisJc3RhdGVbM10gPSBzdGF0ZVs0XSArIGFhICsgYmJiOworCXN0YXRlWzRdID0gc3RhdGVbMF0gKyBiYiArIGNjYzsKKwlzdGF0ZVswXSA9IGRkZDsKKworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgcm1kMTYwX2luaXQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3Qgcm1kMTYwX2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisKKwlyY3R4LT5ieXRlX2NvdW50ID0gMDsKKworCXJjdHgtPnN0YXRlWzBdID0gUk1EX0gwOworCXJjdHgtPnN0YXRlWzFdID0gUk1EX0gxOworCXJjdHgtPnN0YXRlWzJdID0gUk1EX0gyOworCXJjdHgtPnN0YXRlWzNdID0gUk1EX0gzOworCXJjdHgtPnN0YXRlWzRdID0gUk1EX0g0OworCisJbWVtc2V0KHJjdHgtPmJ1ZmZlciwgMCwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworfQorCitzdGF0aWMgdm9pZCBybWQxNjBfdXBkYXRlKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIGNvbnN0IHU4ICpkYXRhLAorCQkJICB1bnNpZ25lZCBpbnQgbGVuKQoreworCXN0cnVjdCBybWQxNjBfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwljb25zdCB1MzIgYXZhaWwgPSBzaXplb2YocmN0eC0+YnVmZmVyKSAtIChyY3R4LT5ieXRlX2NvdW50ICYgMHgzZik7CisKKwlyY3R4LT5ieXRlX2NvdW50ICs9IGxlbjsKKworCS8qIEVub3VnaCBzcGFjZSBpbiBidWZmZXI/IElmIHNvIGNvcHkgYW5kIHdlJ3JlIGRvbmUgKi8KKwlpZiAoYXZhaWwgPiBsZW4pIHsKKwkJbWVtY3B5KChjaGFyICopcmN0eC0+YnVmZmVyICsgKHNpemVvZihyY3R4LT5idWZmZXIpIC0gYXZhaWwpLAorCQkgICAgICAgZGF0YSwgbGVuKTsKKwkJcmV0dXJuOworCX0KKworCW1lbWNweSgoY2hhciAqKXJjdHgtPmJ1ZmZlciArIChzaXplb2YocmN0eC0+YnVmZmVyKSAtIGF2YWlsKSwKKwkgICAgICAgZGF0YSwgYXZhaWwpOworCisJcm1kMTYwX3RyYW5zZm9ybShyY3R4LT5zdGF0ZSwgcmN0eC0+YnVmZmVyKTsKKwlkYXRhICs9IGF2YWlsOworCWxlbiAtPSBhdmFpbDsKKworCXdoaWxlIChsZW4gPj0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpIHsKKwkJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworCQlybWQxNjBfdHJhbnNmb3JtKHJjdHgtPnN0YXRlLCByY3R4LT5idWZmZXIpOworCQlkYXRhICs9IHNpemVvZihyY3R4LT5idWZmZXIpOworCQlsZW4gLT0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcik7CisJfQorCisJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgbGVuKTsKK30KKworLyogQWRkIHBhZGRpbmcgYW5kIHJldHVybiB0aGUgbWVzc2FnZSBkaWdlc3QuICovCitzdGF0aWMgdm9pZCBybWQxNjBfZmluYWwoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgdTggKm91dCkKK3sKKwlzdHJ1Y3Qgcm1kMTYwX2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJdTMyIGksIGluZGV4LCBwYWRsZW47CisJX19sZTY0IGJpdHM7CisJX19sZTMyICpkc3QgPSAoX19sZTMyICopb3V0OworCXN0YXRpYyBjb25zdCB1OCBwYWRkaW5nWzY0XSA9IHsgMHg4MCwgfTsKKworCWJpdHMgPSBjcHVfdG9fbGU2NChyY3R4LT5ieXRlX2NvdW50IDw8IDMpOworCisJLyogUGFkIG91dCB0byA1NiBtb2QgNjQgKi8KKwlpbmRleCA9IHJjdHgtPmJ5dGVfY291bnQgJiAweDNmOworCXBhZGxlbiA9IChpbmRleCA8IDU2KSA/ICg1NiAtIGluZGV4KSA6ICgoNjQrNTYpIC0gaW5kZXgpOworCXJtZDE2MF91cGRhdGUodGZtLCBwYWRkaW5nLCBwYWRsZW4pOworCisJLyogQXBwZW5kIGxlbmd0aCAqLworCXJtZDE2MF91cGRhdGUodGZtLCAoY29uc3QgdTggKikmYml0cywgc2l6ZW9mKGJpdHMpKTsKKworCS8qIFN0b3JlIHN0YXRlIGluIGRpZ2VzdCAqLworCWZvciAoaSA9IDA7IGkgPCA1OyBpKyspCisJCWRzdFtpXSA9IGNwdV90b19sZTMycCgmcmN0eC0+c3RhdGVbaV0pOworCisJLyogV2lwZSBjb250ZXh0ICovCisJbWVtc2V0KHJjdHgsIDAsIHNpemVvZigqcmN0eCkpOworfQorCitzdGF0aWMgc3RydWN0IGNyeXB0b19hbGcgYWxnID0geworCS5jcmFfbmFtZQkgPQkicm1kMTYwIiwKKwkuY3JhX2RyaXZlcl9uYW1lID0JInJtZDE2MCIsCisJLmNyYV9mbGFncwkgPQlDUllQVE9fQUxHX1RZUEVfRElHRVNULAorCS5jcmFfYmxvY2tzaXplCSA9CVJNRDE2MF9CTE9DS19TSVpFLAorCS5jcmFfY3R4c2l6ZQkgPQlzaXplb2Yoc3RydWN0IHJtZDE2MF9jdHgpLAorCS5jcmFfbW9kdWxlCSA9CVRISVNfTU9EVUxFLAorCS5jcmFfbGlzdAkgPQlMSVNUX0hFQURfSU5JVChhbGcuY3JhX2xpc3QpLAorCS5jcmFfdQkJID0JeyAuZGlnZXN0ID0geworCS5kaWFfZGlnZXN0c2l6ZQkgPQlSTUQxNjBfRElHRVNUX1NJWkUsCisJLmRpYV9pbml0CSA9CXJtZDE2MF9pbml0LAorCS5kaWFfdXBkYXRlCSA9CXJtZDE2MF91cGRhdGUsCisJLmRpYV9maW5hbAkgPQlybWQxNjBfZmluYWwgfSB9Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBybWQxNjBfbW9kX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gY3J5cHRvX3JlZ2lzdGVyX2FsZygmYWxnKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHJtZDE2MF9tb2RfZmluaSh2b2lkKQoreworCWNyeXB0b191bnJlZ2lzdGVyX2FsZygmYWxnKTsKK30KKworbW9kdWxlX2luaXQocm1kMTYwX21vZF9pbml0KTsKK21vZHVsZV9leGl0KHJtZDE2MF9tb2RfZmluaSk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiUklQRU1ELTE2MCBNZXNzYWdlIERpZ2VzdCIpOworCitNT0RVTEVfQUxJQVMoInJtZDE2MCIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JtZDI1Ni5jIGIvY3J5cHRvL3JtZDI1Ni5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzZGU1YjQKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vcm1kMjU2LmMKQEAgLTAsMCArMSwzNDQgQEAKKy8qCisgKiBDcnlwdG9ncmFwaGljIEFQSS4KKyAqCisgKiBSSVBFTUQtMjU2IC0gUkFDRSBJbnRlZ3JpdHkgUHJpbWl0aXZlcyBFdmFsdWF0aW9uIE1lc3NhZ2UgRGlnZXN0LgorICoKKyAqIEJhc2VkIG9uIHRoZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gYnkgQW50b29uIEJvc3NlbGFlcnMsIEVTQVQtQ09TSUMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggQWRyaWFuLUtlbiBSdWVlZ3NlZ2dlciA8cnVlZWdzZWdnZXIgKGF0KSBzd2lzcy1pdC5jaD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0b2hhc2guaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKworI2luY2x1ZGUgInJpcGVtZC5oIgorCitzdHJ1Y3Qgcm1kMjU2X2N0eCB7CisJdTY0IGJ5dGVfY291bnQ7CisJdTMyIHN0YXRlWzhdOworCV9fbGUzMiBidWZmZXJbMTZdOworfTsKKworI2RlZmluZSBLMSAgUk1EX0sxCisjZGVmaW5lIEsyICBSTURfSzIKKyNkZWZpbmUgSzMgIFJNRF9LMworI2RlZmluZSBLNCAgUk1EX0s0CisjZGVmaW5lIEtLMSBSTURfSzYKKyNkZWZpbmUgS0syIFJNRF9LNworI2RlZmluZSBLSzMgUk1EX0s4CisjZGVmaW5lIEtLNCBSTURfSzEKKworI2RlZmluZSBGMSh4LCB5LCB6KSAoeCBeIHkgXiB6KQkJLyogWE9SICovCisjZGVmaW5lIEYyKHgsIHksIHopICh6IF4gKHggJiAoeSBeIHopKSkJLyogeCA/IHkgOiB6ICovCisjZGVmaW5lIEYzKHgsIHksIHopICgoeCB8IH55KSBeIHopCisjZGVmaW5lIEY0KHgsIHksIHopICh5IF4gKHogJiAoeCBeIHkpKSkJLyogeiA/IHggOiB5ICovCisKKyNkZWZpbmUgUk9VTkQoYSwgYiwgYywgZCwgZiwgaywgeCwgcykgIHsgXAorCShhKSArPSBmKChiKSwgKGMpLCAoZCkpICsgbGUzMl90b19jcHVwKCYoeCkpICsgKGspOyBcCisJKGEpID0gcm9sMzIoKGEpLCAocykpOyBcCit9CisKK3N0YXRpYyB2b2lkIHJtZDI1Nl90cmFuc2Zvcm0odTMyICpzdGF0ZSwgY29uc3QgX19sZTMyICppbikKK3sKKwl1MzIgYWEsIGJiLCBjYywgZGQsIGFhYSwgYmJiLCBjY2MsIGRkZCwgdG1wOworCisJLyogSW5pdGlhbGl6ZSBsZWZ0IGxhbmUgKi8KKwlhYSA9IHN0YXRlWzBdOworCWJiID0gc3RhdGVbMV07CisJY2MgPSBzdGF0ZVsyXTsKKwlkZCA9IHN0YXRlWzNdOworCisJLyogSW5pdGlhbGl6ZSByaWdodCBsYW5lICovCisJYWFhID0gc3RhdGVbNF07CisJYmJiID0gc3RhdGVbNV07CisJY2NjID0gc3RhdGVbNl07CisJZGRkID0gc3RhdGVbN107CisKKwkvKiByb3VuZCAxOiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblswXSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpblsxXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpblsyXSwgIDE1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpblszXSwgIDEyKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpbls0XSwgICA1KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpbls1XSwgICA4KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpbls2XSwgICA3KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpbls3XSwgICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpbls4XSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpbls5XSwgIDEzKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpblsxMF0sIDE0KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpblsxMV0sIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblsxMl0sICA2KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpblsxM10sICA3KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpblsxNF0sICA5KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpblsxNV0sICA4KTsKKworCS8qIHJvdW5kIDE6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzEsIGluWzVdLCAgIDgpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMSwgaW5bMTRdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGNCwgS0sxLCBpbls3XSwgICA5KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEY0LCBLSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMSwgaW5bOV0sICAxMyk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0sxLCBpblsyXSwgIDE1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEY0LCBLSzEsIGluWzExXSwgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjQsIEtLMSwgaW5bNF0sICAgNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0sxLCBpblsxM10sICA3KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjQsIEtLMSwgaW5bMTVdLCAgOCk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGNCwgS0sxLCBpbls4XSwgIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMSwgaW5bMTBdLCAxNCk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGNCwgS0sxLCBpblszXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEY0LCBLSzEsIGluWzEyXSwgIDYpOworCisJLyogU3dhcCBjb250ZW50cyBvZiAiYSIgcmVnaXN0ZXJzICovCisJdG1wID0gYWE7IGFhID0gYWFhOyBhYWEgPSB0bXA7CisKKwkvKiByb3VuZCAyOiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls3XSwgICA3KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjIsIEsyLCBpbls0XSwgICA2KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjIsIEsyLCBpblsxM10sICA4KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjIsIEsyLCBpblsxXSwgIDEzKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpblsxMF0sIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjIsIEsyLCBpbls2XSwgICA5KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjIsIEsyLCBpblsxNV0sICA3KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjIsIEsyLCBpblszXSwgIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpblsxMl0sICA3KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjIsIEsyLCBpblswXSwgIDEyKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjIsIEsyLCBpbls5XSwgIDE1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjIsIEsyLCBpbls1XSwgICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpblsyXSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjIsIEsyLCBpblsxNF0sICA3KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjIsIEsyLCBpblsxMV0sIDEzKTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjIsIEsyLCBpbls4XSwgIDEyKTsKKworCS8qIHJvdW5kIDI6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMiwgaW5bMTFdLCAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMywgS0syLCBpblszXSwgIDE1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYzLCBLSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bMF0sICAxMik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpblsxM10sICA4KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bMTBdLCAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0syLCBpblsxNF0sICA3KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjMsIEtLMiwgaW5bOF0sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMywgS0syLCBpblsxMl0sICA3KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzIsIGluWzRdLCAgIDYpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMiwgaW5bOV0sICAxNSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMywgS0syLCBpblsxXSwgIDEzKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYzLCBLSzIsIGluWzJdLCAgMTEpOworCisJLyogU3dhcCBjb250ZW50cyBvZiAiYiIgcmVnaXN0ZXJzICovCisJdG1wID0gYmI7IGJiID0gYmJiOyBiYmIgPSB0bXA7CisKKwkvKiByb3VuZCAzOiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpblszXSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjMsIEszLCBpblsxMF0sIDEzKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjMsIEszLCBpblsxNF0sICA2KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjMsIEszLCBpbls0XSwgICA3KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpbls5XSwgIDE0KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjMsIEszLCBpblsxNV0sICA5KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjMsIEszLCBpbls4XSwgIDEzKTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjMsIEszLCBpblsxXSwgIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpblsyXSwgIDE0KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjMsIEszLCBpbls3XSwgICA4KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjMsIEszLCBpblswXSwgIDEzKTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjMsIEszLCBpbls2XSwgICA2KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpblsxM10sICA1KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjMsIEszLCBpblsxMV0sIDEyKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjMsIEszLCBpbls1XSwgICA3KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjMsIEszLCBpblsxMl0sICA1KTsKKworCS8qIHJvdW5kIDM6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzMsIGluWzE1XSwgIDkpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjIsIEtLMywgaW5bNV0sICAgNyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMiwgS0szLCBpblsxXSwgIDE1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYyLCBLSzMsIGluWzNdLCAgMTEpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLMywgaW5bN10sICAgOCk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0szLCBpblsxNF0sICA2KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYyLCBLSzMsIGluWzZdLCAgIDYpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjIsIEtLMywgaW5bOV0sICAxNCk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0szLCBpblsxMV0sIDEyKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzMsIGluWzhdLCAgMTMpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjIsIEtLMywgaW5bMTJdLCAgNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMiwgS0szLCBpblsyXSwgIDE0KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzMsIGluWzEwXSwgMTMpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjIsIEtLMywgaW5bMF0sICAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMiwgS0szLCBpbls0XSwgICA3KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYyLCBLSzMsIGluWzEzXSwgIDUpOworCisJLyogU3dhcCBjb250ZW50cyBvZiAiYyIgcmVnaXN0ZXJzICovCisJdG1wID0gY2M7IGNjID0gY2NjOyBjY2MgPSB0bXA7CisKKwkvKiByb3VuZCA0OiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxXSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls5XSwgIDEyKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpblsxMV0sIDE0KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpblsxMF0sIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblswXSwgIDE0KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls4XSwgIDE1KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpblsxMl0sICA5KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpbls0XSwgICA4KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxM10sICA5KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpblszXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpbls3XSwgICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpblsxNV0sICA2KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxNF0sICA4KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls1XSwgICA2KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpbls2XSwgICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpblsyXSwgIDEyKTsKKworCS8qIHJvdW5kIDQ6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzQsIGluWzhdLCAgMTUpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNCwgaW5bNl0sICAgNSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMSwgS0s0LCBpbls0XSwgICA4KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYxLCBLSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNCwgaW5bM10sICAxNCk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s0LCBpblsxMV0sIDE0KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYxLCBLSzQsIGluWzE1XSwgIDYpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjEsIEtLNCwgaW5bMF0sICAxNCk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s0LCBpbls1XSwgICA2KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjEsIEtLNCwgaW5bMl0sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMSwgS0s0LCBpblsxM10sICA5KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNCwgaW5bN10sICAgNSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMSwgS0s0LCBpblsxMF0sIDE1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYxLCBLSzQsIGluWzE0XSwgIDgpOworCisJLyogU3dhcCBjb250ZW50cyBvZiAiZCIgcmVnaXN0ZXJzICovCisJdG1wID0gZGQ7IGRkID0gZGRkOyBkZGQgPSB0bXA7CisKKwkvKiBjb21iaW5lIHJlc3VsdHMgKi8KKwlzdGF0ZVswXSArPSBhYTsKKwlzdGF0ZVsxXSArPSBiYjsKKwlzdGF0ZVsyXSArPSBjYzsKKwlzdGF0ZVszXSArPSBkZDsKKwlzdGF0ZVs0XSArPSBhYWE7CisJc3RhdGVbNV0gKz0gYmJiOworCXN0YXRlWzZdICs9IGNjYzsKKwlzdGF0ZVs3XSArPSBkZGQ7CisKKwlyZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIHJtZDI1Nl9pbml0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IHJtZDI1Nl9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCisJcmN0eC0+Ynl0ZV9jb3VudCA9IDA7CisKKwlyY3R4LT5zdGF0ZVswXSA9IFJNRF9IMDsKKwlyY3R4LT5zdGF0ZVsxXSA9IFJNRF9IMTsKKwlyY3R4LT5zdGF0ZVsyXSA9IFJNRF9IMjsKKwlyY3R4LT5zdGF0ZVszXSA9IFJNRF9IMzsKKwlyY3R4LT5zdGF0ZVs0XSA9IFJNRF9INTsKKwlyY3R4LT5zdGF0ZVs1XSA9IFJNRF9INjsKKwlyY3R4LT5zdGF0ZVs2XSA9IFJNRF9INzsKKwlyY3R4LT5zdGF0ZVs3XSA9IFJNRF9IODsKKworCW1lbXNldChyY3R4LT5idWZmZXIsIDAsIHNpemVvZihyY3R4LT5idWZmZXIpKTsKK30KKworc3RhdGljIHZvaWQgcm1kMjU2X3VwZGF0ZShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCBjb25zdCB1OCAqZGF0YSwKKwkJCSAgdW5zaWduZWQgaW50IGxlbikKK3sKKwlzdHJ1Y3Qgcm1kMjU2X2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJY29uc3QgdTMyIGF2YWlsID0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSAocmN0eC0+Ynl0ZV9jb3VudCAmIDB4M2YpOworCisJcmN0eC0+Ynl0ZV9jb3VudCArPSBsZW47CisKKwkvKiBFbm91Z2ggc3BhY2UgaW4gYnVmZmVyPyBJZiBzbyBjb3B5IGFuZCB3ZSdyZSBkb25lICovCisJaWYgKGF2YWlsID4gbGVuKSB7CisJCW1lbWNweSgoY2hhciAqKXJjdHgtPmJ1ZmZlciArIChzaXplb2YocmN0eC0+YnVmZmVyKSAtIGF2YWlsKSwKKwkJICAgICAgIGRhdGEsIGxlbik7CisJCXJldHVybjsKKwl9CisKKwltZW1jcHkoKGNoYXIgKilyY3R4LT5idWZmZXIgKyAoc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSBhdmFpbCksCisJICAgICAgIGRhdGEsIGF2YWlsKTsKKworCXJtZDI1Nl90cmFuc2Zvcm0ocmN0eC0+c3RhdGUsIHJjdHgtPmJ1ZmZlcik7CisJZGF0YSArPSBhdmFpbDsKKwlsZW4gLT0gYXZhaWw7CisKKwl3aGlsZSAobGVuID49IHNpemVvZihyY3R4LT5idWZmZXIpKSB7CisJCW1lbWNweShyY3R4LT5idWZmZXIsIGRhdGEsIHNpemVvZihyY3R4LT5idWZmZXIpKTsKKwkJcm1kMjU2X3RyYW5zZm9ybShyY3R4LT5zdGF0ZSwgcmN0eC0+YnVmZmVyKTsKKwkJZGF0YSArPSBzaXplb2YocmN0eC0+YnVmZmVyKTsKKwkJbGVuIC09IHNpemVvZihyY3R4LT5idWZmZXIpOworCX0KKworCW1lbWNweShyY3R4LT5idWZmZXIsIGRhdGEsIGxlbik7Cit9CisKKy8qIEFkZCBwYWRkaW5nIGFuZCByZXR1cm4gdGhlIG1lc3NhZ2UgZGlnZXN0LiAqLworc3RhdGljIHZvaWQgcm1kMjU2X2ZpbmFsKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIHU4ICpvdXQpCit7CisJc3RydWN0IHJtZDI1Nl9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCXUzMiBpLCBpbmRleCwgcGFkbGVuOworCV9fbGU2NCBiaXRzOworCV9fbGUzMiAqZHN0ID0gKF9fbGUzMiAqKW91dDsKKwlzdGF0aWMgY29uc3QgdTggcGFkZGluZ1s2NF0gPSB7IDB4ODAsIH07CisKKwliaXRzID0gY3B1X3RvX2xlNjQocmN0eC0+Ynl0ZV9jb3VudCA8PCAzKTsKKworCS8qIFBhZCBvdXQgdG8gNTYgbW9kIDY0ICovCisJaW5kZXggPSByY3R4LT5ieXRlX2NvdW50ICYgMHgzZjsKKwlwYWRsZW4gPSAoaW5kZXggPCA1NikgPyAoNTYgLSBpbmRleCkgOiAoKDY0KzU2KSAtIGluZGV4KTsKKwlybWQyNTZfdXBkYXRlKHRmbSwgcGFkZGluZywgcGFkbGVuKTsKKworCS8qIEFwcGVuZCBsZW5ndGggKi8KKwlybWQyNTZfdXBkYXRlKHRmbSwgKGNvbnN0IHU4ICopJmJpdHMsIHNpemVvZihiaXRzKSk7CisKKwkvKiBTdG9yZSBzdGF0ZSBpbiBkaWdlc3QgKi8KKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQorCQlkc3RbaV0gPSBjcHVfdG9fbGUzMnAoJnJjdHgtPnN0YXRlW2ldKTsKKworCS8qIFdpcGUgY29udGV4dCAqLworCW1lbXNldChyY3R4LCAwLCBzaXplb2YoKnJjdHgpKTsKK30KKworc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGFsZyA9IHsKKwkuY3JhX25hbWUJID0JInJtZDI1NiIsCisJLmNyYV9kcml2ZXJfbmFtZSA9CSJybWQyNTYiLAorCS5jcmFfZmxhZ3MJID0JQ1JZUFRPX0FMR19UWVBFX0RJR0VTVCwKKwkuY3JhX2Jsb2Nrc2l6ZQkgPQlSTUQyNTZfQkxPQ0tfU0laRSwKKwkuY3JhX2N0eHNpemUJID0Jc2l6ZW9mKHN0cnVjdCBybWQyNTZfY3R4KSwKKwkuY3JhX21vZHVsZQkgPQlUSElTX01PRFVMRSwKKwkuY3JhX2xpc3QJID0JTElTVF9IRUFEX0lOSVQoYWxnLmNyYV9saXN0KSwKKwkuY3JhX3UJCSA9CXsgLmRpZ2VzdCA9IHsKKwkuZGlhX2RpZ2VzdHNpemUJID0JUk1EMjU2X0RJR0VTVF9TSVpFLAorCS5kaWFfaW5pdAkgPQlybWQyNTZfaW5pdCwKKwkuZGlhX3VwZGF0ZQkgPQlybWQyNTZfdXBkYXRlLAorCS5kaWFfZmluYWwJID0Jcm1kMjU2X2ZpbmFsIH0gfQorfTsKKworc3RhdGljIGludCBfX2luaXQgcm1kMjU2X21vZF9pbml0KHZvaWQpCit7CisJcmV0dXJuIGNyeXB0b19yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBybWQyNTZfbW9kX2Zpbmkodm9pZCkKK3sKKwljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK21vZHVsZV9pbml0KHJtZDI1Nl9tb2RfaW5pdCk7Cittb2R1bGVfZXhpdChybWQyNTZfbW9kX2ZpbmkpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlJJUEVNRC0yNTYgTWVzc2FnZSBEaWdlc3QiKTsKKworTU9EVUxFX0FMSUFTKCJybWQyNTYiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9ybWQzMjAuYyBiL2NyeXB0by9ybWQzMjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTQzZDY2Ci0tLSAvZGV2L251bGwKKysrIGIvY3J5cHRvL3JtZDMyMC5jCkBAIC0wLDAgKzEsMzkzIEBACisvKgorICogQ3J5cHRvZ3JhcGhpYyBBUEkuCisgKgorICogUklQRU1ELTMyMCAtIFJBQ0UgSW50ZWdyaXR5IFByaW1pdGl2ZXMgRXZhbHVhdGlvbiBNZXNzYWdlIERpZ2VzdC4KKyAqCisgKiBCYXNlZCBvbiB0aGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGJ5IEFudG9vbiBCb3NzZWxhZXJzLCBFU0FULUNPU0lDCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IEFkcmlhbi1LZW4gUnVlZWdzZWdnZXIgPHJ1ZWVnc2VnZ2VyIChhdCkgc3dpc3MtaXQuY2g+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pCisgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxsaW51eC9jcnlwdG9oYXNoLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CisKKyNpbmNsdWRlICJyaXBlbWQuaCIKKworc3RydWN0IHJtZDMyMF9jdHggeworCXU2NCBieXRlX2NvdW50OworCXUzMiBzdGF0ZVsxMF07CisJX19sZTMyIGJ1ZmZlclsxNl07Cit9OworCisjZGVmaW5lIEsxICBSTURfSzEKKyNkZWZpbmUgSzIgIFJNRF9LMgorI2RlZmluZSBLMyAgUk1EX0szCisjZGVmaW5lIEs0ICBSTURfSzQKKyNkZWZpbmUgSzUgIFJNRF9LNQorI2RlZmluZSBLSzEgUk1EX0s2CisjZGVmaW5lIEtLMiBSTURfSzcKKyNkZWZpbmUgS0szIFJNRF9LOAorI2RlZmluZSBLSzQgUk1EX0s5CisjZGVmaW5lIEtLNSBSTURfSzEKKworI2RlZmluZSBGMSh4LCB5LCB6KSAoeCBeIHkgXiB6KQkJLyogWE9SICovCisjZGVmaW5lIEYyKHgsIHksIHopICh6IF4gKHggJiAoeSBeIHopKSkJLyogeCA/IHkgOiB6ICovCisjZGVmaW5lIEYzKHgsIHksIHopICgoeCB8IH55KSBeIHopCisjZGVmaW5lIEY0KHgsIHksIHopICh5IF4gKHogJiAoeCBeIHkpKSkJLyogeiA/IHggOiB5ICovCisjZGVmaW5lIEY1KHgsIHksIHopICh4IF4gKHkgfCB+eikpCisKKyNkZWZpbmUgUk9VTkQoYSwgYiwgYywgZCwgZSwgZiwgaywgeCwgcykgIHsgXAorCShhKSArPSBmKChiKSwgKGMpLCAoZCkpICsgbGUzMl90b19jcHVwKCYoeCkpICsgKGspOyBcCisJKGEpID0gcm9sMzIoKGEpLCAocykpICsgKGUpOyBcCisJKGMpID0gcm9sMzIoKGMpLCAxMCk7IFwKK30KKworc3RhdGljIHZvaWQgcm1kMzIwX3RyYW5zZm9ybSh1MzIgKnN0YXRlLCBjb25zdCBfX2xlMzIgKmluKQoreworCXUzMiBhYSwgYmIsIGNjLCBkZCwgZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCB0bXA7CisKKwkvKiBJbml0aWFsaXplIGxlZnQgbGFuZSAqLworCWFhID0gc3RhdGVbMF07CisJYmIgPSBzdGF0ZVsxXTsKKwljYyA9IHN0YXRlWzJdOworCWRkID0gc3RhdGVbM107CisJZWUgPSBzdGF0ZVs0XTsKKworCS8qIEluaXRpYWxpemUgcmlnaHQgbGFuZSAqLworCWFhYSA9IHN0YXRlWzVdOworCWJiYiA9IHN0YXRlWzZdOworCWNjYyA9IHN0YXRlWzddOworCWRkZCA9IHN0YXRlWzhdOworCWVlZSA9IHN0YXRlWzldOworCisJLyogcm91bmQgMTogbGVmdCBsYW5lICovCisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMSwgSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblsxXSwgIDE0KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bMl0sICAxNSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMSwgSzEsIGluWzNdLCAgMTIpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjEsIEsxLCBpbls0XSwgICA1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYxLCBLMSwgaW5bNV0sICAgOCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjEsIEsxLCBpbls3XSwgICA5KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYxLCBLMSwgaW5bOF0sICAxMSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMSwgSzEsIGluWzldLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjEsIEsxLCBpblsxMF0sIDE0KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bMTFdLCAxNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzEyXSwgIDYpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjEsIEsxLCBpblsxM10sICA3KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYxLCBLMSwgaW5bMTRdLCAgOSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMSwgSzEsIGluWzE1XSwgIDgpOworCisJLyogcm91bmQgMTogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNSwgS0sxLCBpbls1XSwgICA4KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjUsIEtLMSwgaW5bMTRdLCAgOSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY1LCBLSzEsIGluWzddLCAgIDkpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNSwgS0sxLCBpblswXSwgIDExKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjUsIEtLMSwgaW5bOV0sICAxMyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY1LCBLSzEsIGluWzJdLCAgMTUpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNSwgS0sxLCBpblsxMV0sIDE1KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjUsIEtLMSwgaW5bNF0sICAgNSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY1LCBLSzEsIGluWzEzXSwgIDcpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNSwgS0sxLCBpbls2XSwgICA3KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjUsIEtLMSwgaW5bMTVdLCAgOCk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY1LCBLSzEsIGluWzhdLCAgMTEpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNSwgS0sxLCBpblsxXSwgIDE0KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjUsIEtLMSwgaW5bMTBdLCAxNCk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY1LCBLSzEsIGluWzNdLCAgMTIpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNSwgS0sxLCBpblsxMl0sICA2KTsKKworCS8qIFN3YXAgY29udGVudHMgb2YgImEiIHJlZ2lzdGVycyAqLworCXRtcCA9IGFhOyBhYSA9IGFhYTsgYWFhID0gdG1wOworCisJLyogcm91bmQgMjogbGVmdCBsYW5lIiAqLworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls3XSwgICA3KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYyLCBLMiwgaW5bNF0sICAgNik7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMiwgSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjIsIEsyLCBpblsxXSwgIDEzKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYyLCBLMiwgaW5bMTBdLCAxMSk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjIsIEsyLCBpblsxNV0sICA3KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYyLCBLMiwgaW5bM10sICAxNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMiwgSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjIsIEsyLCBpblswXSwgIDEyKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYyLCBLMiwgaW5bOV0sICAxNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjIsIEsyLCBpblsyXSwgIDExKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYyLCBLMiwgaW5bMTRdLCAgNyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMiwgSzIsIGluWzExXSwgMTMpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls4XSwgIDEyKTsKKworCS8qIHJvdW5kIDI6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMiwgaW5bNl0sICAgOSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzIsIGluWzExXSwgMTMpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNCwgS0syLCBpblszXSwgIDE1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjQsIEtLMiwgaW5bN10sICAgNyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY0LCBLSzIsIGluWzBdLCAgMTIpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0syLCBpblsxM10sICA4KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMiwgaW5bNV0sICAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY0LCBLSzIsIGluWzEwXSwgMTEpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNCwgS0syLCBpblsxNF0sICA3KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjQsIEtLMiwgaW5bMTVdLCAgNyk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzIsIGluWzhdLCAgMTIpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0syLCBpblsxMl0sICA3KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjQsIEtLMiwgaW5bNF0sICAgNik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY0LCBLSzIsIGluWzldLCAgMTUpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNCwgS0syLCBpblsxXSwgIDEzKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMiwgaW5bMl0sICAxMSk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJiIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBiYjsgYmIgPSBiYmI7IGJiYiA9IHRtcDsKKworCS8qIHJvdW5kIDM6IGxlZnQgbGFuZSIgKi8KKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bM10sICAxMSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMywgSzMsIGluWzEwXSwgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjMsIEszLCBpblsxNF0sICA2KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYzLCBLMywgaW5bNF0sICAgNyk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjMsIEszLCBpblsxNV0sICA5KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYzLCBLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMywgSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjMsIEszLCBpblsyXSwgIDE0KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bN10sICAgOCk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjMsIEszLCBpbls2XSwgICA2KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYzLCBLMywgaW5bMTNdLCAgNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMywgSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpbls1XSwgICA3KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTJdLCAgNSk7CisKKwkvKiByb3VuZCAzOiByaWdodCBsYW5lICovCisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzMsIGluWzE1XSwgIDkpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMywgS0szLCBpbls1XSwgICA3KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjMsIEtLMywgaW5bMV0sICAxNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYzLCBLSzMsIGluWzNdLCAgMTEpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0szLCBpbls3XSwgICA4KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMywgaW5bMTRdLCAgNik7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYzLCBLSzMsIGluWzZdLCAgIDYpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMywgS0szLCBpbls5XSwgIDE0KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjMsIEtLMywgaW5bMTFdLCAxMik7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzMsIGluWzhdLCAgMTMpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMywgS0szLCBpblsxMl0sICA1KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjMsIEtLMywgaW5bMl0sICAxNCk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYzLCBLSzMsIGluWzEwXSwgMTMpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMywgS0szLCBpblswXSwgIDEzKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMywgaW5bNF0sICAgNyk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzMsIGluWzEzXSwgIDUpOworCisJLyogU3dhcCBjb250ZW50cyBvZiAiYyIgcmVnaXN0ZXJzICovCisJdG1wID0gY2M7IGNjID0gY2NjOyBjY2MgPSB0bXA7CisKKwkvKiByb3VuZCA0OiBsZWZ0IGxhbmUiICovCisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNCwgSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjQsIEs0LCBpbls5XSwgIDEyKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY0LCBLNCwgaW5bMTFdLCAxNCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzEwXSwgMTUpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjQsIEs0LCBpblswXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY0LCBLNCwgaW5bOF0sICAxNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNCwgSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjQsIEs0LCBpbls0XSwgICA4KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bMTNdLCAgOSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzNdLCAgMTQpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjQsIEs0LCBpbls3XSwgICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY0LCBLNCwgaW5bMTVdLCAgNik7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNCwgSzQsIGluWzE0XSwgIDgpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpbls1XSwgICA2KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bNl0sICAgNSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNCwgSzQsIGluWzJdLCAgMTIpOworCisJLyogcm91bmQgNDogcmlnaHQgbGFuZSAqLworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMiwgS0s0LCBpbls4XSwgIDE1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjIsIEtLNCwgaW5bNl0sICAgNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYyLCBLSzQsIGluWzRdLCAgIDgpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0s0LCBpblsxXSwgIDExKTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjIsIEtLNCwgaW5bM10sICAxNCk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYyLCBLSzQsIGluWzExXSwgMTQpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMiwgS0s0LCBpblsxNV0sICA2KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjIsIEtLNCwgaW5bMF0sICAxNCk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzQsIGluWzVdLCAgIDYpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0s0LCBpblsxMl0sICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjIsIEtLNCwgaW5bMl0sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYyLCBLSzQsIGluWzEzXSwgIDkpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMiwgS0s0LCBpbls5XSwgIDEyKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLNCwgaW5bN10sICAgNSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzQsIGluWzEwXSwgMTUpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMiwgS0s0LCBpblsxNF0sICA4KTsKKworCS8qIFN3YXAgY29udGVudHMgb2YgImQiIHJlZ2lzdGVycyAqLworCXRtcCA9IGRkOyBkZCA9IGRkZDsgZGRkID0gdG1wOworCisJLyogcm91bmQgNTogbGVmdCBsYW5lIiAqLworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjUsIEs1LCBpbls0XSwgICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY1LCBLNSwgaW5bMF0sICAxNSk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNSwgSzUsIGluWzVdLCAgIDUpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjUsIEs1LCBpbls5XSwgIDExKTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY1LCBLNSwgaW5bN10sICAgNik7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNSwgSzUsIGluWzEyXSwgIDgpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjUsIEs1LCBpblsyXSwgIDEzKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY1LCBLNSwgaW5bMTBdLCAxMik7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNSwgSzUsIGluWzE0XSwgIDUpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjUsIEs1LCBpblsxXSwgIDEyKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY1LCBLNSwgaW5bM10sICAxMyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNSwgSzUsIGluWzhdLCAgMTQpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjUsIEs1LCBpblsxMV0sIDExKTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY1LCBLNSwgaW5bNl0sICAgOCk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNSwgSzUsIGluWzE1XSwgIDUpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjUsIEs1LCBpblsxM10sICA2KTsKKworCS8qIHJvdW5kIDU6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjEsIEtLNSwgaW5bMTJdLCAgOCk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYxLCBLSzUsIGluWzE1XSwgIDUpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s1LCBpblsxMF0sIDEyKTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNSwgaW5bNF0sICAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYxLCBLSzUsIGluWzFdLCAgMTIpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMSwgS0s1LCBpbls1XSwgICA1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjEsIEtLNSwgaW5bOF0sICAxNCk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzUsIGluWzddLCAgIDYpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s1LCBpbls2XSwgICA4KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjEsIEtLNSwgaW5bMl0sICAxMyk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYxLCBLSzUsIGluWzEzXSwgIDYpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMSwgS0s1LCBpblsxNF0sICA1KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNSwgaW5bMF0sICAxNSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzUsIGluWzNdLCAgMTMpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMSwgS0s1LCBpbls5XSwgIDExKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjEsIEtLNSwgaW5bMTFdLCAxMSk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJlIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBlZTsgZWUgPSBlZWU7IGVlZSA9IHRtcDsKKworCS8qIGNvbWJpbmUgcmVzdWx0cyAqLworCXN0YXRlWzBdICs9IGFhOworCXN0YXRlWzFdICs9IGJiOworCXN0YXRlWzJdICs9IGNjOworCXN0YXRlWzNdICs9IGRkOworCXN0YXRlWzRdICs9IGVlOworCXN0YXRlWzVdICs9IGFhYTsKKwlzdGF0ZVs2XSArPSBiYmI7CisJc3RhdGVbN10gKz0gY2NjOworCXN0YXRlWzhdICs9IGRkZDsKKwlzdGF0ZVs5XSArPSBlZWU7CisKKwlyZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIHJtZDMyMF9pbml0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IHJtZDMyMF9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCisJcmN0eC0+Ynl0ZV9jb3VudCA9IDA7CisKKwlyY3R4LT5zdGF0ZVswXSA9IFJNRF9IMDsKKwlyY3R4LT5zdGF0ZVsxXSA9IFJNRF9IMTsKKwlyY3R4LT5zdGF0ZVsyXSA9IFJNRF9IMjsKKwlyY3R4LT5zdGF0ZVszXSA9IFJNRF9IMzsKKwlyY3R4LT5zdGF0ZVs0XSA9IFJNRF9INDsKKwlyY3R4LT5zdGF0ZVs1XSA9IFJNRF9INTsKKwlyY3R4LT5zdGF0ZVs2XSA9IFJNRF9INjsKKwlyY3R4LT5zdGF0ZVs3XSA9IFJNRF9INzsKKwlyY3R4LT5zdGF0ZVs4XSA9IFJNRF9IODsKKwlyY3R4LT5zdGF0ZVs5XSA9IFJNRF9IOTsKKworCW1lbXNldChyY3R4LT5idWZmZXIsIDAsIHNpemVvZihyY3R4LT5idWZmZXIpKTsKK30KKworc3RhdGljIHZvaWQgcm1kMzIwX3VwZGF0ZShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCBjb25zdCB1OCAqZGF0YSwKKwkJCSAgdW5zaWduZWQgaW50IGxlbikKK3sKKwlzdHJ1Y3Qgcm1kMzIwX2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJY29uc3QgdTMyIGF2YWlsID0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSAocmN0eC0+Ynl0ZV9jb3VudCAmIDB4M2YpOworCisJcmN0eC0+Ynl0ZV9jb3VudCArPSBsZW47CisKKwkvKiBFbm91Z2ggc3BhY2UgaW4gYnVmZmVyPyBJZiBzbyBjb3B5IGFuZCB3ZSdyZSBkb25lICovCisJaWYgKGF2YWlsID4gbGVuKSB7CisJCW1lbWNweSgoY2hhciAqKXJjdHgtPmJ1ZmZlciArIChzaXplb2YocmN0eC0+YnVmZmVyKSAtIGF2YWlsKSwKKwkJICAgICAgIGRhdGEsIGxlbik7CisJCXJldHVybjsKKwl9CisKKwltZW1jcHkoKGNoYXIgKilyY3R4LT5idWZmZXIgKyAoc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSBhdmFpbCksCisJICAgICAgIGRhdGEsIGF2YWlsKTsKKworCXJtZDMyMF90cmFuc2Zvcm0ocmN0eC0+c3RhdGUsIHJjdHgtPmJ1ZmZlcik7CisJZGF0YSArPSBhdmFpbDsKKwlsZW4gLT0gYXZhaWw7CisKKwl3aGlsZSAobGVuID49IHNpemVvZihyY3R4LT5idWZmZXIpKSB7CisJCW1lbWNweShyY3R4LT5idWZmZXIsIGRhdGEsIHNpemVvZihyY3R4LT5idWZmZXIpKTsKKwkJcm1kMzIwX3RyYW5zZm9ybShyY3R4LT5zdGF0ZSwgcmN0eC0+YnVmZmVyKTsKKwkJZGF0YSArPSBzaXplb2YocmN0eC0+YnVmZmVyKTsKKwkJbGVuIC09IHNpemVvZihyY3R4LT5idWZmZXIpOworCX0KKworCW1lbWNweShyY3R4LT5idWZmZXIsIGRhdGEsIGxlbik7Cit9CisKKy8qIEFkZCBwYWRkaW5nIGFuZCByZXR1cm4gdGhlIG1lc3NhZ2UgZGlnZXN0LiAqLworc3RhdGljIHZvaWQgcm1kMzIwX2ZpbmFsKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIHU4ICpvdXQpCit7CisJc3RydWN0IHJtZDMyMF9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCXUzMiBpLCBpbmRleCwgcGFkbGVuOworCV9fbGU2NCBiaXRzOworCV9fbGUzMiAqZHN0ID0gKF9fbGUzMiAqKW91dDsKKwlzdGF0aWMgY29uc3QgdTggcGFkZGluZ1s2NF0gPSB7IDB4ODAsIH07CisKKwliaXRzID0gY3B1X3RvX2xlNjQocmN0eC0+Ynl0ZV9jb3VudCA8PCAzKTsKKworCS8qIFBhZCBvdXQgdG8gNTYgbW9kIDY0ICovCisJaW5kZXggPSByY3R4LT5ieXRlX2NvdW50ICYgMHgzZjsKKwlwYWRsZW4gPSAoaW5kZXggPCA1NikgPyAoNTYgLSBpbmRleCkgOiAoKDY0KzU2KSAtIGluZGV4KTsKKwlybWQzMjBfdXBkYXRlKHRmbSwgcGFkZGluZywgcGFkbGVuKTsKKworCS8qIEFwcGVuZCBsZW5ndGggKi8KKwlybWQzMjBfdXBkYXRlKHRmbSwgKGNvbnN0IHU4ICopJmJpdHMsIHNpemVvZihiaXRzKSk7CisKKwkvKiBTdG9yZSBzdGF0ZSBpbiBkaWdlc3QgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykKKwkJZHN0W2ldID0gY3B1X3RvX2xlMzJwKCZyY3R4LT5zdGF0ZVtpXSk7CisKKwkvKiBXaXBlIGNvbnRleHQgKi8KKwltZW1zZXQocmN0eCwgMCwgc2l6ZW9mKCpyY3R4KSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRvX2FsZyBhbGcgPSB7CisJLmNyYV9uYW1lCSA9CSJybWQzMjAiLAorCS5jcmFfZHJpdmVyX25hbWUgPQkicm1kMzIwIiwKKwkuY3JhX2ZsYWdzCSA9CUNSWVBUT19BTEdfVFlQRV9ESUdFU1QsCisJLmNyYV9ibG9ja3NpemUJID0JUk1EMzIwX0JMT0NLX1NJWkUsCisJLmNyYV9jdHhzaXplCSA9CXNpemVvZihzdHJ1Y3Qgcm1kMzIwX2N0eCksCisJLmNyYV9tb2R1bGUJID0JVEhJU19NT0RVTEUsCisJLmNyYV9saXN0CSA9CUxJU1RfSEVBRF9JTklUKGFsZy5jcmFfbGlzdCksCisJLmNyYV91CQkgPQl7IC5kaWdlc3QgPSB7CisJLmRpYV9kaWdlc3RzaXplCSA9CVJNRDMyMF9ESUdFU1RfU0laRSwKKwkuZGlhX2luaXQJID0Jcm1kMzIwX2luaXQsCisJLmRpYV91cGRhdGUJID0Jcm1kMzIwX3VwZGF0ZSwKKwkuZGlhX2ZpbmFsCSA9CXJtZDMyMF9maW5hbCB9IH0KK307CisKK3N0YXRpYyBpbnQgX19pbml0IHJtZDMyMF9tb2RfaW5pdCh2b2lkKQoreworCXJldHVybiBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZhbGcpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgcm1kMzIwX21vZF9maW5pKHZvaWQpCit7CisJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZhbGcpOworfQorCittb2R1bGVfaW5pdChybWQzMjBfbW9kX2luaXQpOworbW9kdWxlX2V4aXQocm1kMzIwX21vZF9maW5pKTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJSSVBFTUQtMzIwIE1lc3NhZ2UgRGlnZXN0Iik7CisKK01PRFVMRV9BTElBUygicm1kMzIwIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vdGNyeXB0LmMgYi9jcnlwdG8vdGNyeXB0LmMKaW5kZXggNmJlYWJjNS4uNTk4MjFhMiAxMDA2NDQKLS0tIGEvY3J5cHRvL3RjcnlwdC5jCisrKyBiL2NyeXB0by90Y3J5cHQuYwpAQCAtMTMsMTUgKzEzLDkgQEAKICAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKICAqIGFueSBsYXRlciB2ZXJzaW9uLgogICoKLSAqIDIwMDctMTEtMTMgQWRkZWQgR0NNIHRlc3RzCi0gKiAyMDA3LTExLTEzIEFkZGVkIEFFQUQgc3VwcG9ydAotICogMjAwNy0xMS0wNiBBZGRlZCBTSEEtMjI0IGFuZCBTSEEtMjI0LUhNQUMgdGVzdHMKLSAqIDIwMDYtMTItMDcgQWRkZWQgU0hBMzg0IEhNQUMgYW5kIFNIQTUxMiBITUFDIHRlc3RzCi0gKiAyMDA0LTA4LTA5IEFkZGVkIGNpcGhlciBzcGVlZCB0ZXN0cyAoUmV5ayBGbG9ldGVyIDxyZXlrQHZhbnRyb25peC5uZXQ+KQotICogMjAwMy0wOS0xNCBSZXdyaXR0ZW4gYnkgS2FydGlrZXkgTWFoZW5kcmEgQmhhdHQKLSAqCiAgKi8KIAorI2luY2x1ZGUgPGNyeXB0by9oYXNoLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtMzAsNyArMjQsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+Ci0jaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWV4Lmg+CkBAIC0zOCw3ICszMSw3IEBACiAjaW5jbHVkZSAidGNyeXB0LmgiCiAKIC8qCi0gKiBOZWVkIHRvIGttYWxsb2MoKSBtZW1vcnkgZm9yIHRlc3Rpbmcga21hcCgpLgorICogTmVlZCB0byBrbWFsbG9jKCkgbWVtb3J5IGZvciB0ZXN0aW5nLgogICovCiAjZGVmaW5lIFRWTUVNU0laRQkxNjM4NAogI2RlZmluZSBYQlVGU0laRQkzMjc2OApAQCAtNDYsNyArMzksNyBAQAogLyoKICAqIEluZGV4ZXMgaW50byB0aGUgeGJ1ZiB0byBzaW11bGF0ZSBjcm9zcy1wYWdlIGFjY2Vzcy4KICAqLwotI2RlZmluZSBJRFgxCQkzNworI2RlZmluZSBJRFgxCQkzMgogI2RlZmluZSBJRFgyCQkzMjQwMAogI2RlZmluZSBJRFgzCQkxCiAjZGVmaW5lIElEWDQJCTgxOTMKQEAgLTgzLDcgKzc2LDggQEAKIAkiYmxvd2Zpc2giLCAidHdvZmlzaCIsICJzZXJwZW50IiwgInNoYTM4NCIsICJzaGE1MTIiLCAibWQ0IiwgImFlcyIsCiAJImNhc3Q2IiwgImFyYzQiLCAibWljaGFlbF9taWMiLCAiZGVmbGF0ZSIsICJjcmMzMmMiLCAidGVhIiwgInh0ZWEiLAogCSJraGF6YWQiLCAid3A1MTIiLCAid3AzODQiLCAid3AyNTYiLCAidG5lcHJlcyIsICJ4ZXRhIiwgICJmY3J5cHQiLAotCSJjYW1lbGxpYSIsICJzZWVkIiwgInNhbHNhMjAiLCAibHpvIiwgImN0cyIsIE5VTEwKKwkiY2FtZWxsaWEiLCAic2VlZCIsICJzYWxzYTIwIiwgInJtZDEyOCIsICJybWQxNjAiLCAicm1kMjU2IiwgInJtZDMyMCIsCisJImx6byIsICJjdHMiLCBOVUxMCiB9OwogCiBzdGF0aWMgdm9pZCBoZXhkdW1wKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbikKQEAgLTExMCwyMiArMTA0LDMwIEBACiAJdW5zaWduZWQgaW50IGksIGosIGssIHRlbXA7CiAJc3RydWN0IHNjYXR0ZXJsaXN0IHNnWzhdOwogCWNoYXIgcmVzdWx0WzY0XTsKLQlzdHJ1Y3QgY3J5cHRvX2hhc2ggKnRmbTsKLQlzdHJ1Y3QgaGFzaF9kZXNjIGRlc2M7CisJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtOworCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXE7CisJc3RydWN0IHRjcnlwdF9yZXN1bHQgdHJlc3VsdDsKIAlpbnQgcmV0OwogCXZvaWQgKmhhc2hfYnVmZjsKIAogCXByaW50aygiXG50ZXN0aW5nICVzXG4iLCBhbGdvKTsKIAotCXRmbSA9IGNyeXB0b19hbGxvY19oYXNoKGFsZ28sIDAsIENSWVBUT19BTEdfQVNZTkMpOworCWluaXRfY29tcGxldGlvbigmdHJlc3VsdC5jb21wbGV0aW9uKTsKKworCXRmbSA9IGNyeXB0b19hbGxvY19haGFzaChhbGdvLCAwLCAwKTsKIAlpZiAoSVNfRVJSKHRmbSkpIHsKIAkJcHJpbnRrKCJmYWlsZWQgdG8gbG9hZCB0cmFuc2Zvcm0gZm9yICVzOiAlbGRcbiIsIGFsZ28sCiAJCSAgICAgICBQVFJfRVJSKHRmbSkpOwogCQlyZXR1cm47CiAJfQogCi0JZGVzYy50Zm0gPSB0Zm07Ci0JZGVzYy5mbGFncyA9IDA7CisJcmVxID0gYWhhc2hfcmVxdWVzdF9hbGxvYyh0Zm0sIEdGUF9LRVJORUwpOworCWlmICghcmVxKSB7CisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIGFsbG9jYXRlIHJlcXVlc3QgZm9yICVzXG4iLCBhbGdvKTsKKwkJZ290byBvdXRfbm9yZXE7CisJfQorCWFoYXNoX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKHJlcSwgQ1JZUFRPX1RGTV9SRVFfTUFZX0JBQ0tMT0csCisJCQkJICAgdGNyeXB0X2NvbXBsZXRlLCAmdHJlc3VsdCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgdGNvdW50OyBpKyspIHsKIAkJcHJpbnRrKCJ0ZXN0ICV1OlxuIiwgaSArIDEpOwpAQCAtMTM5LDggKzE0MSw5IEBACiAJCXNnX2luaXRfb25lKCZzZ1swXSwgaGFzaF9idWZmLCB0ZW1wbGF0ZVtpXS5wc2l6ZSk7CiAKIAkJaWYgKHRlbXBsYXRlW2ldLmtzaXplKSB7Ci0JCQlyZXQgPSBjcnlwdG9faGFzaF9zZXRrZXkodGZtLCB0ZW1wbGF0ZVtpXS5rZXksCi0JCQkJCQkgdGVtcGxhdGVbaV0ua3NpemUpOworCQkJY3J5cHRvX2FoYXNoX2NsZWFyX2ZsYWdzKHRmbSwgfjApOworCQkJcmV0ID0gY3J5cHRvX2FoYXNoX3NldGtleSh0Zm0sIHRlbXBsYXRlW2ldLmtleSwKKwkJCQkJCSAgdGVtcGxhdGVbaV0ua3NpemUpOwogCQkJaWYgKHJldCkgewogCQkJCXByaW50aygic2V0a2V5KCkgZmFpbGVkIHJldD0lZFxuIiwgcmV0KTsKIAkJCQlrZnJlZShoYXNoX2J1ZmYpOwpAQCAtMTQ4LDE3ICsxNTEsMzAgQEAKIAkJCX0KIAkJfQogCi0JCXJldCA9IGNyeXB0b19oYXNoX2RpZ2VzdCgmZGVzYywgc2csIHRlbXBsYXRlW2ldLnBzaXplLCByZXN1bHQpOwotCQlpZiAocmV0KSB7CisJCWFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KHJlcSwgc2csIHJlc3VsdCwgdGVtcGxhdGVbaV0ucHNpemUpOworCQlyZXQgPSBjcnlwdG9fYWhhc2hfZGlnZXN0KHJlcSk7CisJCXN3aXRjaCAocmV0KSB7CisJCWNhc2UgMDoKKwkJCWJyZWFrOworCQljYXNlIC1FSU5QUk9HUkVTUzoKKwkJY2FzZSAtRUJVU1k6CisJCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoCisJCQkJJnRyZXN1bHQuY29tcGxldGlvbik7CisJCQlpZiAoIXJldCAmJiAhKHJldCA9IHRyZXN1bHQuZXJyKSkgeworCQkJCUlOSVRfQ09NUExFVElPTih0cmVzdWx0LmNvbXBsZXRpb24pOworCQkJCWJyZWFrOworCQkJfQorCQkJLyogZmFsbCB0aHJvdWdoICovCisJCWRlZmF1bHQ6CiAJCQlwcmludGsoImRpZ2VzdCAoKSBmYWlsZWQgcmV0PSVkXG4iLCByZXQpOwogCQkJa2ZyZWUoaGFzaF9idWZmKTsKIAkJCWdvdG8gb3V0OwogCQl9CiAKLQkJaGV4ZHVtcChyZXN1bHQsIGNyeXB0b19oYXNoX2RpZ2VzdHNpemUodGZtKSk7CisJCWhleGR1bXAocmVzdWx0LCBjcnlwdG9fYWhhc2hfZGlnZXN0c2l6ZSh0Zm0pKTsKIAkJcHJpbnRrKCIlc1xuIiwKIAkJICAgICAgIG1lbWNtcChyZXN1bHQsIHRlbXBsYXRlW2ldLmRpZ2VzdCwKLQkJCSAgICAgIGNyeXB0b19oYXNoX2RpZ2VzdHNpemUodGZtKSkgPworCQkJICAgICAgY3J5cHRvX2FoYXNoX2RpZ2VzdHNpemUodGZtKSkgPwogCQkgICAgICAgImZhaWwiIDogInBhc3MiKTsKIAkJa2ZyZWUoaGFzaF9idWZmKTsKIAl9CkBAIC0xODcsOCArMjAzLDkgQEAKIAkJCX0KIAogCQkJaWYgKHRlbXBsYXRlW2ldLmtzaXplKSB7Ci0JCQkJcmV0ID0gY3J5cHRvX2hhc2hfc2V0a2V5KHRmbSwgdGVtcGxhdGVbaV0ua2V5LAotCQkJCQkJCSB0ZW1wbGF0ZVtpXS5rc2l6ZSk7CisJCQkJY3J5cHRvX2FoYXNoX2NsZWFyX2ZsYWdzKHRmbSwgfjApOworCQkJCXJldCA9IGNyeXB0b19haGFzaF9zZXRrZXkodGZtLCB0ZW1wbGF0ZVtpXS5rZXksCisJCQkJCQkJICB0ZW1wbGF0ZVtpXS5rc2l6ZSk7CiAKIAkJCQlpZiAocmV0KSB7CiAJCQkJCXByaW50aygic2V0a2V5KCkgZmFpbGVkIHJldD0lZFxuIiwgcmV0KTsKQEAgLTE5NiwyOSArMjEzLDQ0IEBACiAJCQkJfQogCQkJfQogCi0JCQlyZXQgPSBjcnlwdG9faGFzaF9kaWdlc3QoJmRlc2MsIHNnLCB0ZW1wbGF0ZVtpXS5wc2l6ZSwKLQkJCQkJCSByZXN1bHQpOwotCQkJaWYgKHJldCkgeworCQkJYWhhc2hfcmVxdWVzdF9zZXRfY3J5cHQocmVxLCBzZywgcmVzdWx0LAorCQkJCQkJdGVtcGxhdGVbaV0ucHNpemUpOworCQkJcmV0ID0gY3J5cHRvX2FoYXNoX2RpZ2VzdChyZXEpOworCQkJc3dpdGNoIChyZXQpIHsKKwkJCWNhc2UgMDoKKwkJCQlicmVhazsKKwkJCWNhc2UgLUVJTlBST0dSRVNTOgorCQkJY2FzZSAtRUJVU1k6CisJCQkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKAorCQkJCQkmdHJlc3VsdC5jb21wbGV0aW9uKTsKKwkJCQlpZiAoIXJldCAmJiAhKHJldCA9IHRyZXN1bHQuZXJyKSkgeworCQkJCQlJTklUX0NPTVBMRVRJT04odHJlc3VsdC5jb21wbGV0aW9uKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCS8qIGZhbGwgdGhyb3VnaCAqLworCQkJZGVmYXVsdDoKIAkJCQlwcmludGsoImRpZ2VzdCAoKSBmYWlsZWQgcmV0PSVkXG4iLCByZXQpOwogCQkJCWdvdG8gb3V0OwogCQkJfQogCi0JCQloZXhkdW1wKHJlc3VsdCwgY3J5cHRvX2hhc2hfZGlnZXN0c2l6ZSh0Zm0pKTsKKwkJCWhleGR1bXAocmVzdWx0LCBjcnlwdG9fYWhhc2hfZGlnZXN0c2l6ZSh0Zm0pKTsKIAkJCXByaW50aygiJXNcbiIsCiAJCQkgICAgICAgbWVtY21wKHJlc3VsdCwgdGVtcGxhdGVbaV0uZGlnZXN0LAotCQkJCSAgICAgIGNyeXB0b19oYXNoX2RpZ2VzdHNpemUodGZtKSkgPworCQkJCSAgICAgIGNyeXB0b19haGFzaF9kaWdlc3RzaXplKHRmbSkpID8KIAkJCSAgICAgICAiZmFpbCIgOiAicGFzcyIpOwogCQl9CiAJfQogCiBvdXQ6Ci0JY3J5cHRvX2ZyZWVfaGFzaCh0Zm0pOworCWFoYXNoX3JlcXVlc3RfZnJlZShyZXEpOworb3V0X25vcmVxOgorCWNyeXB0b19mcmVlX2FoYXNoKHRmbSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RfYWVhZChjaGFyICphbGdvLCBpbnQgZW5jLCBzdHJ1Y3QgYWVhZF90ZXN0dmVjICp0ZW1wbGF0ZSwKIAkJICAgICAgdW5zaWduZWQgaW50IHRjb3VudCkKIHsKLQl1bnNpZ25lZCBpbnQgcmV0LCBpLCBqLCBrLCB0ZW1wOworCXVuc2lnbmVkIGludCByZXQsIGksIGosIGssIG4sIHRlbXA7CiAJY2hhciAqcTsKIAlzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbTsKIAljaGFyICprZXk7CkBAIC0zNDQsMTMgKzM3NiwxMiBAQAogCQkJCWdvdG8gbmV4dF9vbmU7CiAJCQl9CiAKLQkJCXEgPSBrbWFwKHNnX3BhZ2UoJnNnWzBdKSkgKyBzZ1swXS5vZmZzZXQ7CisJCQlxID0gaW5wdXQ7CiAJCQloZXhkdW1wKHEsIHRlbXBsYXRlW2ldLnJsZW4pOwogCiAJCQlwcmludGsoS0VSTl9JTkZPICJlbmMvZGVjOiAlc1xuIiwKIAkJCSAgICAgICBtZW1jbXAocSwgdGVtcGxhdGVbaV0ucmVzdWx0LAogCQkJCSAgICAgIHRlbXBsYXRlW2ldLnJsZW4pID8gImZhaWwiIDogInBhc3MiKTsKLQkJCWt1bm1hcChzZ19wYWdlKCZzZ1swXSkpOwogbmV4dF9vbmU6CiAJCQlpZiAoIXRlbXBsYXRlW2ldLmtleSkKIAkJCQlrZnJlZShrZXkpOwpAQCAtMzYwLDcgKzM5MSw2IEBACiAJfQogCiAJcHJpbnRrKEtFUk5fSU5GTyAiXG50ZXN0aW5nICVzICVzIGFjcm9zcyBwYWdlcyAoY2h1bmtpbmcpXG4iLCBhbGdvLCBlKTsKLQltZW1zZXQoeGJ1ZiwgMCwgWEJVRlNJWkUpOwogCW1lbXNldChheGJ1ZiwgMCwgWEJVRlNJWkUpOwogCiAJZm9yIChpID0gMCwgaiA9IDA7IGkgPCB0Y291bnQ7IGkrKykgewpAQCAtMzg4LDYgKzQxOCw3IEBACiAJCQkJCWdvdG8gb3V0OwogCQkJfQogCisJCQltZW1zZXQoeGJ1ZiwgMCwgWEJVRlNJWkUpOwogCQkJc2dfaW5pdF90YWJsZShzZywgdGVtcGxhdGVbaV0ubnApOwogCQkJZm9yIChrID0gMCwgdGVtcCA9IDA7IGsgPCB0ZW1wbGF0ZVtpXS5ucDsgaysrKSB7CiAJCQkJbWVtY3B5KCZ4YnVmW0lEWFtrXV0sCkBAIC00NTAsNyArNDgxLDcgQEAKIAogCQkJZm9yIChrID0gMCwgdGVtcCA9IDA7IGsgPCB0ZW1wbGF0ZVtpXS5ucDsgaysrKSB7CiAJCQkJcHJpbnRrKEtFUk5fSU5GTyAicGFnZSAldVxuIiwgayk7Ci0JCQkJcSA9IGttYXAoc2dfcGFnZSgmc2dba10pKSArIHNnW2tdLm9mZnNldDsKKwkJCQlxID0gJmF4YnVmW0lEWFtrXV07CiAJCQkJaGV4ZHVtcChxLCB0ZW1wbGF0ZVtpXS50YXBba10pOwogCQkJCXByaW50ayhLRVJOX0lORk8gIiVzXG4iLAogCQkJCSAgICAgICBtZW1jbXAocSwgdGVtcGxhdGVbaV0ucmVzdWx0ICsgdGVtcCwKQEAgLTQ1OSw4ICs0OTAsMTUgQEAKIAkJCQkJICAgICAgIDAgOiBhdXRoc2l6ZSkpID8KIAkJCQkgICAgICAgImZhaWwiIDogInBhc3MiKTsKIAorCQkJCWZvciAobiA9IDA7IHFbdGVtcGxhdGVbaV0udGFwW2tdICsgbl07IG4rKykKKwkJCQkJOworCQkJCWlmIChuKSB7CisJCQkJCXByaW50aygiUmVzdWx0IGJ1ZmZlciBjb3JydXB0aW9uICV1ICIKKwkJCQkJICAgICAgICJieXRlczpcbiIsIG4pOworCQkJCQloZXhkdW1wKCZxW3RlbXBsYXRlW2ldLnRhcFtrXV0sIG4pOworCQkJCX0KKwogCQkJCXRlbXAgKz0gdGVtcGxhdGVbaV0udGFwW2tdOwotCQkJCWt1bm1hcChzZ19wYWdlKCZzZ1trXSkpOwogCQkJfQogCQl9CiAJfQpAQCAtNDczLDcgKzUxMSw3IEBACiBzdGF0aWMgdm9pZCB0ZXN0X2NpcGhlcihjaGFyICphbGdvLCBpbnQgZW5jLAogCQkJc3RydWN0IGNpcGhlcl90ZXN0dmVjICp0ZW1wbGF0ZSwgdW5zaWduZWQgaW50IHRjb3VudCkKIHsKLQl1bnNpZ25lZCBpbnQgcmV0LCBpLCBqLCBrLCB0ZW1wOworCXVuc2lnbmVkIGludCByZXQsIGksIGosIGssIG4sIHRlbXA7CiAJY2hhciAqcTsKIAlzdHJ1Y3QgY3J5cHRvX2FibGtjaXBoZXIgKnRmbTsKIAlzdHJ1Y3QgYWJsa2NpcGhlcl9yZXF1ZXN0ICpyZXE7CkBAIC01NjksMjkgKzYwNywyMSBAQAogCQkJCWdvdG8gb3V0OwogCQkJfQogCi0JCQlxID0ga21hcChzZ19wYWdlKCZzZ1swXSkpICsgc2dbMF0ub2Zmc2V0OworCQkJcSA9IGRhdGE7CiAJCQloZXhkdW1wKHEsIHRlbXBsYXRlW2ldLnJsZW4pOwogCiAJCQlwcmludGsoIiVzXG4iLAogCQkJICAgICAgIG1lbWNtcChxLCB0ZW1wbGF0ZVtpXS5yZXN1bHQsCiAJCQkJICAgICAgdGVtcGxhdGVbaV0ucmxlbikgPyAiZmFpbCIgOiAicGFzcyIpOwotCQkJa3VubWFwKHNnX3BhZ2UoJnNnWzBdKSk7CiAJCX0KIAkJa2ZyZWUoZGF0YSk7CiAJfQogCiAJcHJpbnRrKCJcbnRlc3RpbmcgJXMgJXMgYWNyb3NzIHBhZ2VzIChjaHVua2luZylcbiIsIGFsZ28sIGUpOwotCW1lbXNldCh4YnVmLCAwLCBYQlVGU0laRSk7CiAKIAlqID0gMDsKIAlmb3IgKGkgPSAwOyBpIDwgdGNvdW50OyBpKyspIHsKIAotCQlkYXRhID0ga3phbGxvYyh0ZW1wbGF0ZVtpXS5pbGVuLCBHRlBfS0VSTkVMKTsKLQkJaWYgKCFkYXRhKQotCQkJY29udGludWU7Ci0KLQkJbWVtY3B5KGRhdGEsIHRlbXBsYXRlW2ldLmlucHV0LCB0ZW1wbGF0ZVtpXS5pbGVuKTsKLQogCQlpZiAodGVtcGxhdGVbaV0uaXYpCiAJCQltZW1jcHkoaXYsIHRlbXBsYXRlW2ldLml2LCBNQVhfSVZMRU4pOwogCQllbHNlCkBAIC02MDIsNiArNjMyLDcgQEAKIAkJCXByaW50aygidGVzdCAldSAoJWQgYml0IGtleSk6XG4iLAogCQkJaiwgdGVtcGxhdGVbaV0ua2xlbiAqIDgpOwogCisJCQltZW1zZXQoeGJ1ZiwgMCwgWEJVRlNJWkUpOwogCQkJY3J5cHRvX2FibGtjaXBoZXJfY2xlYXJfZmxhZ3ModGZtLCB+MCk7CiAJCQlpZiAodGVtcGxhdGVbaV0ud2spCiAJCQkJY3J5cHRvX2FibGtjaXBoZXJfc2V0X2ZsYWdzKApAQCAtNjEzLDEwICs2NDQsOCBAQAogCQkJCXByaW50aygic2V0a2V5KCkgZmFpbGVkIGZsYWdzPSV4XG4iLAogCQkJCQkJY3J5cHRvX2FibGtjaXBoZXJfZ2V0X2ZsYWdzKHRmbSkpOwogCi0JCQkJaWYgKCF0ZW1wbGF0ZVtpXS5mYWlsKSB7Ci0JCQkJCWtmcmVlKGRhdGEpOworCQkJCWlmICghdGVtcGxhdGVbaV0uZmFpbCkKIAkJCQkJZ290byBvdXQ7Ci0JCQkJfQogCQkJfQogCiAJCQl0ZW1wID0gMDsKQEAgLTY1NywxNCArNjg2LDIxIEBACiAJCQl0ZW1wID0gMDsKIAkJCWZvciAoayA9IDA7IGsgPCB0ZW1wbGF0ZVtpXS5ucDsgaysrKSB7CiAJCQkJcHJpbnRrKCJwYWdlICV1XG4iLCBrKTsKLQkJCQlxID0ga21hcChzZ19wYWdlKCZzZ1trXSkpICsgc2dba10ub2Zmc2V0OworCQkJCXEgPSAmeGJ1ZltJRFhba11dOwogCQkJCWhleGR1bXAocSwgdGVtcGxhdGVbaV0udGFwW2tdKTsKIAkJCQlwcmludGsoIiVzXG4iLAogCQkJCQltZW1jbXAocSwgdGVtcGxhdGVbaV0ucmVzdWx0ICsgdGVtcCwKIAkJCQkJCXRlbXBsYXRlW2ldLnRhcFtrXSkgPyAiZmFpbCIgOgogCQkJCQkicGFzcyIpOworCisJCQkJZm9yIChuID0gMDsgcVt0ZW1wbGF0ZVtpXS50YXBba10gKyBuXTsgbisrKQorCQkJCQk7CisJCQkJaWYgKG4pIHsKKwkJCQkJcHJpbnRrKCJSZXN1bHQgYnVmZmVyIGNvcnJ1cHRpb24gJXUgIgorCQkJCQkgICAgICAgImJ5dGVzOlxuIiwgbik7CisJCQkJCWhleGR1bXAoJnFbdGVtcGxhdGVbaV0udGFwW2tdXSwgbik7CisJCQkJfQogCQkJCXRlbXAgKz0gdGVtcGxhdGVbaV0udGFwW2tdOwotCQkJCWt1bm1hcChzZ19wYWdlKCZzZ1trXSkpOwogCQkJfQogCQl9CiAJfQpAQCAtMTE4MCw2ICsxMjE2LDE0IEBACiAJCXRlc3RfY2lwaGVyKCJlY2IoZGVzM19lZGUpIiwgREVDUllQVCwgZGVzM19lZGVfZGVjX3R2X3RlbXBsYXRlLAogCQkJICAgIERFUzNfRURFX0RFQ19URVNUX1ZFQ1RPUlMpOwogCisJCXRlc3RfY2lwaGVyKCJjYmMoZGVzM19lZGUpIiwgRU5DUllQVCwKKwkJCSAgICBkZXMzX2VkZV9jYmNfZW5jX3R2X3RlbXBsYXRlLAorCQkJICAgIERFUzNfRURFX0NCQ19FTkNfVEVTVF9WRUNUT1JTKTsKKworCQl0ZXN0X2NpcGhlcigiY2JjKGRlczNfZWRlKSIsIERFQ1JZUFQsCisJCQkgICAgZGVzM19lZGVfY2JjX2RlY190dl90ZW1wbGF0ZSwKKwkJCSAgICBERVMzX0VERV9DQkNfREVDX1RFU1RfVkVDVE9SUyk7CisKIAkJdGVzdF9oYXNoKCJtZDQiLCBtZDRfdHZfdGVtcGxhdGUsIE1ENF9URVNUX1ZFQ1RPUlMpOwogCiAJCXRlc3RfaGFzaCgic2hhMjI0Iiwgc2hhMjI0X3R2X3RlbXBsYXRlLCBTSEEyMjRfVEVTVF9WRUNUT1JTKTsKQEAgLTEzOTAsNiArMTQzNCwxNCBAQAogCQkJICAgIERFUzNfRURFX0VOQ19URVNUX1ZFQ1RPUlMpOwogCQl0ZXN0X2NpcGhlcigiZWNiKGRlczNfZWRlKSIsIERFQ1JZUFQsIGRlczNfZWRlX2RlY190dl90ZW1wbGF0ZSwKIAkJCSAgICBERVMzX0VERV9ERUNfVEVTVF9WRUNUT1JTKTsKKworCQl0ZXN0X2NpcGhlcigiY2JjKGRlczNfZWRlKSIsIEVOQ1JZUFQsCisJCQkgICAgZGVzM19lZGVfY2JjX2VuY190dl90ZW1wbGF0ZSwKKwkJCSAgICBERVMzX0VERV9DQkNfRU5DX1RFU1RfVkVDVE9SUyk7CisKKwkJdGVzdF9jaXBoZXIoImNiYyhkZXMzX2VkZSkiLCBERUNSWVBULAorCQkJICAgIGRlczNfZWRlX2NiY19kZWNfdHZfdGVtcGxhdGUsCisJCQkgICAgREVTM19FREVfQ0JDX0RFQ19URVNUX1ZFQ1RPUlMpOwogCQlicmVhazsKIAogCWNhc2UgNToKQEAgLTE1NTgsNyArMTYxMCw3IEBACiAJY2FzZSAyOToKIAkJdGVzdF9oYXNoKCJ0Z3IxMjgiLCB0Z3IxMjhfdHZfdGVtcGxhdGUsIFRHUjEyOF9URVNUX1ZFQ1RPUlMpOwogCQlicmVhazsKLQkJCisKIAljYXNlIDMwOgogCQl0ZXN0X2NpcGhlcigiZWNiKHhldGEpIiwgRU5DUllQVCwgeGV0YV9lbmNfdHZfdGVtcGxhdGUsCiAJCQkgICAgWEVUQV9FTkNfVEVTVF9WRUNUT1JTKTsKQEAgLTE2MjMsNiArMTY3NSwyMiBAQAogCQkJICAgIENUU19NT0RFX0RFQ19URVNUX1ZFQ1RPUlMpOwogCQlicmVhazsKIAorICAgICAgICBjYXNlIDM5OgorCQl0ZXN0X2hhc2goInJtZDEyOCIsIHJtZDEyOF90dl90ZW1wbGF0ZSwgUk1EMTI4X1RFU1RfVkVDVE9SUyk7CisJCWJyZWFrOworCisgICAgICAgIGNhc2UgNDA6CisJCXRlc3RfaGFzaCgicm1kMTYwIiwgcm1kMTYwX3R2X3RlbXBsYXRlLCBSTUQxNjBfVEVTVF9WRUNUT1JTKTsKKwkJYnJlYWs7CisKKwljYXNlIDQxOgorCQl0ZXN0X2hhc2goInJtZDI1NiIsIHJtZDI1Nl90dl90ZW1wbGF0ZSwgUk1EMjU2X1RFU1RfVkVDVE9SUyk7CisJCWJyZWFrOworCisJY2FzZSA0MjoKKwkJdGVzdF9oYXNoKCJybWQzMjAiLCBybWQzMjBfdHZfdGVtcGxhdGUsIFJNRDMyMF9URVNUX1ZFQ1RPUlMpOworCQlicmVhazsKKwogCWNhc2UgMTAwOgogCQl0ZXN0X2hhc2goImhtYWMobWQ1KSIsIGhtYWNfbWQ1X3R2X3RlbXBsYXRlLAogCQkJICBITUFDX01ENV9URVNUX1ZFQ1RPUlMpOwpAQCAtMTY1OCw2ICsxNzI2LDE2IEBACiAJCQkgIFhDQkNfQUVTX1RFU1RfVkVDVE9SUyk7CiAJCWJyZWFrOwogCisJY2FzZSAxMDc6CisJCXRlc3RfaGFzaCgiaG1hYyhybWQxMjgpIiwgaG1hY19ybWQxMjhfdHZfdGVtcGxhdGUsCisJCQkgIEhNQUNfUk1EMTI4X1RFU1RfVkVDVE9SUyk7CisJCWJyZWFrOworCisJY2FzZSAxMDg6CisJCXRlc3RfaGFzaCgiaG1hYyhybWQxNjApIiwgaG1hY19ybWQxNjBfdHZfdGVtcGxhdGUsCisJCQkgIEhNQUNfUk1EMTYwX1RFU1RfVkVDVE9SUyk7CisJCWJyZWFrOworCiAJY2FzZSAyMDA6CiAJCXRlc3RfY2lwaGVyX3NwZWVkKCJlY2IoYWVzKSIsIEVOQ1JZUFQsIHNlYywgTlVMTCwgMCwKIAkJCQlzcGVlZF90ZW1wbGF0ZV8xNl8yNF8zMik7CkBAIC0xNzk2LDYgKzE4NzQsMjIgQEAKIAkJdGVzdF9oYXNoX3NwZWVkKCJzaGEyMjQiLCBzZWMsIGdlbmVyaWNfaGFzaF9zcGVlZF90ZW1wbGF0ZSk7CiAJCWlmIChtb2RlID4gMzAwICYmIG1vZGUgPCA0MDApIGJyZWFrOwogCisJY2FzZSAzMTQ6CisJCXRlc3RfaGFzaF9zcGVlZCgicm1kMTI4Iiwgc2VjLCBnZW5lcmljX2hhc2hfc3BlZWRfdGVtcGxhdGUpOworCQlpZiAobW9kZSA+IDMwMCAmJiBtb2RlIDwgNDAwKSBicmVhazsKKworCWNhc2UgMzE1OgorCQl0ZXN0X2hhc2hfc3BlZWQoInJtZDE2MCIsIHNlYywgZ2VuZXJpY19oYXNoX3NwZWVkX3RlbXBsYXRlKTsKKwkJaWYgKG1vZGUgPiAzMDAgJiYgbW9kZSA8IDQwMCkgYnJlYWs7CisKKwljYXNlIDMxNjoKKwkJdGVzdF9oYXNoX3NwZWVkKCJybWQyNTYiLCBzZWMsIGdlbmVyaWNfaGFzaF9zcGVlZF90ZW1wbGF0ZSk7CisJCWlmIChtb2RlID4gMzAwICYmIG1vZGUgPCA0MDApIGJyZWFrOworCisJY2FzZSAzMTc6CisJCXRlc3RfaGFzaF9zcGVlZCgicm1kMzIwIiwgc2VjLCBnZW5lcmljX2hhc2hfc3BlZWRfdGVtcGxhdGUpOworCQlpZiAobW9kZSA+IDMwMCAmJiBtb2RlIDwgNDAwKSBicmVhazsKKwogCWNhc2UgMzk5OgogCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvY3J5cHRvL3RjcnlwdC5oIGIvY3J5cHRvL3RjcnlwdC5oCmluZGV4IDQ3YmMwZWMuLjgwMWUwYzIgMTAwNjQ0Ci0tLSBhL2NyeXB0by90Y3J5cHQuaAorKysgYi9jcnlwdG8vdGNyeXB0LmgKQEAgLTEzLDEyICsxMyw2IEBACiAgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pCiAgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCi0gKiAyMDA3LTExLTEzIEFkZGVkIEdDTSB0ZXN0cwotICogMjAwNy0xMS0xMyBBZGRlZCBBRUFEIHN1cHBvcnQKLSAqIDIwMDYtMTItMDcgQWRkZWQgU0hBMzg0IEhNQUMgYW5kIFNIQTUxMiBITUFDIHRlc3RzCi0gKiAyMDA0LTA4LTA5IENpcGhlciBzcGVlZCB0ZXN0cyBieSBSZXlrIEZsb2V0ZXIgPHJleWtAdmFudHJvbml4Lm5ldD4KLSAqIDIwMDMtMDktMTQgQ2hhbmdlcyBieSBLYXJ0aWtleSBNYWhlbmRyYSBCaGF0dAotICoKICAqLwogI2lmbmRlZiBfQ1JZUFRPX1RDUllQVF9ICiAjZGVmaW5lIF9DUllQVE9fVENSWVBUX0gKQEAgLTE2OCw2ICsxNjIsMjcxIEBACiAJCS5kaWdlc3QJPSAiXHg1N1x4ZWRceGY0XHhhMlx4MmJceGUzXHhjOVx4NTUiCiAJCQkgICJceGFjXHg0OVx4ZGFceDJlXHgyMVx4MDdceGI2XHg3YSIsCiAJfQorCit9OworCisvKgorICogUklQRU1ELTEyOCB0ZXN0IHZlY3RvcnMgZnJvbSBJU08vSUVDIDEwMTE4LTM6MjAwNChFKQorICovCisjZGVmaW5lIFJNRDEyOF9URVNUX1ZFQ1RPUlMgICAgIDEwCisKK3N0YXRpYyBzdHJ1Y3QgaGFzaF90ZXN0dmVjIHJtZDEyOF90dl90ZW1wbGF0ZVtdID0geworCXsKKwkJLmRpZ2VzdAk9ICJceGNkXHhmMlx4NjJceDEzXHhhMVx4NTBceGRjXHgzZSIKKwkJCSAgIlx4Y2JceDYxXHgwZlx4MThceGY2XHhiM1x4OGJceDQ2IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYSIsCisJCS5wc2l6ZQk9IDEsCisJCS5kaWdlc3QJPSAiXHg4Nlx4YmVceDdhXHhmYVx4MzNceDlkXHgwZlx4YzciCisJCQkgICJceGNmXHhjN1x4ODVceGU3XHgyZlx4NTdceDhkXHgzMyIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImFiYyIsCisJCS5wc2l6ZQk9IDMsCisJCS5kaWdlc3QJPSAiXHhjMVx4NGFceDEyXHgxOVx4OWNceDY2XHhlNFx4YmEiCisJCQkgICJceDg0XHg2M1x4NmJceDBmXHg2OVx4MTRceDRjXHg3NyIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIm1lc3NhZ2UgZGlnZXN0IiwKKwkJLnBzaXplCT0gMTQsCisJCS5kaWdlc3QJPSAiXHg5ZVx4MzJceDdiXHgzZFx4NmVceDUyXHgzMFx4NjIiCisJCQkgICJceGFmXHhjMVx4MTNceDJkXHg3ZFx4ZjlceGQxXHhiOCIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKKwkJLnBzaXplCT0gMjYsCisJCS5kaWdlc3QJPSAiXHhmZFx4MmFceGE2XHgwN1x4ZjdceDFkXHhjOFx4ZjUiCisJCQkgICJceDEwXHg3MVx4NDlceDIyXHhiM1x4NzFceDgzXHg0ZSIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGUiCisJCQkgICAgICJmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IiwKKwkJLnBzaXplCT0gNjIsCisJCS5kaWdlc3QJPSAiXHhkMVx4ZTlceDU5XHhlYlx4MTdceDljXHg5MVx4MWYiCisJCQkgICJceGFlXHhhNFx4NjJceDRjXHg2MFx4YzVceGM3XHgwMiIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiCisJCQkgICAgICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIiwKKwkJLnBzaXplCT0gODAsCisJCS5kaWdlc3QJPSAiXHgzZlx4NDVceGVmXHgxOVx4NDdceDMyXHhjMlx4ZGIiCisJCQkgICJceGIyXHhjNFx4YTJceGM3XHg2OVx4NzlceDVmXHhhMyIsCisgICAgICAgIH0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqIgorCQkJICAgICAiaGlqa2lqa2xqa2xta2xtbmxtbm9tbm9wbm9wcSIsCisJCS5wc2l6ZQk9IDU2LAorCQkuZGlnZXN0CT0gIlx4YTFceGFhXHgwNlx4ODlceGQwXHhmYVx4ZmFceDJkIgorCQkJICAiXHhkY1x4MjJceGU4XHg4Ylx4NDlceDEzXHgzYVx4MDYiLAorCQkubnAJPSAyLAorCQkudGFwCT0geyAyOCwgMjggfSwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGVmZ2hiY2RlZmdoaWNkZWZnaGlqZGVmZ2hpamtlZmdoaWprbGZnaGkiCisJCQkgICAgICJqa2xtZ2hpamtsbW5oaWprbG1ub2lqa2xtbm9wamtsbW5vcHFrbG1ub3BxciIKKwkJCSAgICAgImxtbm9wcXJzbW5vcHFyc3Rub3BxcnN0dSIsCisJCS5wc2l6ZQk9IDExMiwKKwkJLmRpZ2VzdAk9ICJceGQ0XHhlY1x4YzlceDEzXHhlMVx4ZGZceDc3XHg2YiIKKwkJCSAgIlx4ZjRceDhkXHhlOVx4ZDVceDViXHgxZlx4MjVceDQ2IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGJjZGVjZGVmZGVmZ2VmZ2hmZ2hpZ2hpamhpamsiLAorCQkucHNpemUJPSAzMiwKKwkJLmRpZ2VzdAk9ICJceDEzXHhmY1x4MTNceGU4XHhlZlx4ZmZceDM0XHg3ZCIKKwkJCSAgIlx4ZTFceDkzXHhmZlx4NDZceGRiXHhhY1x4Y2ZceGQ0IiwKKwl9Cit9OworCisvKgorICogUklQRU1ELTE2MCB0ZXN0IHZlY3RvcnMgZnJvbSBJU08vSUVDIDEwMTE4LTM6MjAwNChFKQorICovCisjZGVmaW5lIFJNRDE2MF9URVNUX1ZFQ1RPUlMgICAgIDEwCisKK3N0YXRpYyBzdHJ1Y3QgaGFzaF90ZXN0dmVjIHJtZDE2MF90dl90ZW1wbGF0ZVtdID0geworCXsKKwkJLmRpZ2VzdAk9ICJceDljXHgxMVx4ODVceGE1XHhjNVx4ZTlceGZjXHg1NFx4NjFceDI4IgorCQkJICAiXHgwOFx4OTdceDdlXHhlOFx4ZjVceDQ4XHhiMlx4MjVceDhkXHgzMSIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImEiLAorCQkucHNpemUJPSAxLAorCQkuZGlnZXN0CT0gIlx4MGJceGRjXHg5ZFx4MmRceDI1XHg2Ylx4M2VceGU5XHhkYVx4YWUiCisJCQkgICJceDM0XHg3Ylx4ZTZceGY0XHhkY1x4ODNceDVhXHg0Nlx4N2ZceGZlIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjIiwKKwkJLnBzaXplCT0gMywKKwkJLmRpZ2VzdAk9ICJceDhlXHhiMlx4MDhceGY3XHhlMFx4NWRceDk4XHg3YVx4OWJceDA0IgorCQkJICAiXHg0YVx4OGVceDk4XHhjNlx4YjBceDg3XHhmMVx4NWFceDBiXHhmYyIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIm1lc3NhZ2UgZGlnZXN0IiwKKwkJLnBzaXplCT0gMTQsCisJCS5kaWdlc3QJPSAiXHg1ZFx4MDZceDg5XHhlZlx4NDlceGQyXHhmYVx4ZTVceDcyXHhiOCIKKwkJCSAgIlx4ODFceGIxXHgyM1x4YThceDVmXHhmYVx4MjFceDU5XHg1Zlx4MzYiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsCisJCS5wc2l6ZQk9IDI2LAorCQkuZGlnZXN0CT0gIlx4ZjdceDFjXHgyN1x4MTBceDljXHg2OVx4MmNceDFiXHg1Nlx4YmIiCisJCQkgICJceGRjXHhlYlx4NWJceDlkXHgyOFx4NjVceGIzXHg3MFx4OGRceGJjIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZSIKKwkJCSAgICAgImZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLAorCQkucHNpemUJPSA2MiwKKwkJLmRpZ2VzdAk9ICJceGIwXHhlMlx4MGJceDZlXHgzMVx4MTZceDY0XHgwMlx4ODZceGVkIgorCQkJICAiXHgzYVx4ODdceGE1XHg3MVx4MzBceDc5XHhiMlx4MWZceDUxXHg4OSIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiCisJCQkgICAgICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIiwKKwkJLnBzaXplCT0gODAsCisJCS5kaWdlc3QJPSAiXHg5Ylx4NzVceDJlXHg0NVx4NTdceDNkXHg0Ylx4MzlceGY0XHhkYiIKKwkJCSAgIlx4ZDNceDMyXHgzY1x4YWJceDgyXHhiZlx4NjNceDMyXHg2Ylx4ZmIiLAorICAgICAgICB9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGJjZGVjZGVmZGVmZ2VmZ2hmZ2hpZ2hpaiIKKwkJCSAgICAgImhpamtpamtsamtsbWtsbW5sbW5vbW5vcG5vcHEiLAorCQkucHNpemUJPSA1NiwKKwkJLmRpZ2VzdAk9ICJceDEyXHhhMFx4NTNceDM4XHg0YVx4OWNceDBjXHg4OFx4ZTRceDA1IgorCQkJICAiXHhhMFx4NmNceDI3XHhkY1x4ZjRceDlhXHhkYVx4NjJceGViXHgyYiIsCisJCS5ucAk9IDIsCisJCS50YXAJPSB7IDI4LCAyOCB9LAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkZWZnaGJjZGVmZ2hpY2RlZmdoaWpkZWZnaGlqa2VmZ2hpamtsZmdoaSIKKwkJCSAgICAgImprbG1naGlqa2xtbmhpamtsbW5vaWprbG1ub3Bqa2xtbm9wcWtsbW5vcHFyIgorCQkJICAgICAibG1ub3BxcnNtbm9wcXJzdG5vcHFyc3R1IiwKKwkJLnBzaXplCT0gMTEyLAorCQkuZGlnZXN0CT0gIlx4NmZceDNmXHhhM1x4OWJceDZiXHg1MFx4M2NceDM4XHg0Zlx4OTEiCisJCQkgICJceDlhXHg0OVx4YTdceGFhXHg1Y1x4MmNceDA4XHhiZFx4ZmJceDQ1IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGJjZGVjZGVmZGVmZ2VmZ2hmZ2hpZ2hpamhpamsiLAorCQkucHNpemUJPSAzMiwKKwkJLmRpZ2VzdAk9ICJceDk0XHhjMlx4NjRceDExXHg1NFx4MDRceGU2XHgzM1x4NzlceDBkIgorCQkJICAiXHhmY1x4YzhceDdiXHg1OFx4N2RceDM2XHg3N1x4MDZceDdkXHg5ZiIsCisJfQorfTsKKworLyoKKyAqIFJJUEVNRC0yNTYgdGVzdCB2ZWN0b3JzCisgKi8KKyNkZWZpbmUgUk1EMjU2X1RFU1RfVkVDVE9SUyAgICAgOAorCitzdGF0aWMgc3RydWN0IGhhc2hfdGVzdHZlYyBybWQyNTZfdHZfdGVtcGxhdGVbXSA9IHsKKwl7CisJCS5kaWdlc3QJPSAiXHgwMlx4YmFceDRjXHg0ZVx4NWZceDhlXHhjZFx4MTgiCisJCQkgICJceDc3XHhmY1x4NTJceGQ2XHg0ZFx4MzBceGUzXHg3YSIKKwkJCSAgIlx4MmRceDk3XHg3NFx4ZmJceDFlXHg1ZFx4MDJceDYzIgorCQkJICAiXHg4MFx4YWVceDAxXHg2OFx4ZTNceGM1XHg1Mlx4MmQiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhIiwKKwkJLnBzaXplCT0gMSwKKwkJLmRpZ2VzdAk9ICJceGY5XHgzM1x4M2VceDQ1XHhkOFx4NTdceGY1XHhkOSIKKwkJCSAgIlx4MGFceDkxXHhiYVx4YjdceDBhXHgxZVx4YmFceDBjIgorCQkJICAiXHhmYlx4MWJceGU0XHhiMFx4NzhceDNjXHg5YVx4Y2YiCisJCQkgICJceGNkXHg4OFx4M2FceDkxXHgzNFx4NjlceDI5XHgyNSIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImFiYyIsCisJCS5wc2l6ZQk9IDMsCisJCS5kaWdlc3QJPSAiXHhhZlx4YmRceDZlXHgyMlx4OGJceDlkXHg4Y1x4YmIiCisJCQkgICJceGNlXHhmNVx4Y2FceDJkXHgwM1x4ZTZceGRiXHhhMSIKKwkJCSAgIlx4MGFceGMwXHhiY1x4N2RceGNiXHhlNFx4NjhceDBlIgorCQkJICAiXHgxZVx4NDJceGQyXHhlOVx4NzVceDQ1XHg5Ylx4NjUiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJtZXNzYWdlIGRpZ2VzdCIsCisJCS5wc2l6ZQk9IDE0LAorCQkuZGlnZXN0CT0gIlx4ODdceGU5XHg3MVx4NzVceDlhXHgxY1x4ZTRceDdhIgorCQkJICAiXHg1MVx4NGRceDVjXHg5MVx4NGNceDM5XHgyY1x4OTAiCisJCQkgICJceDE4XHhjN1x4YzRceDZiXHhjMVx4NDRceDY1XHg1NSIKKwkJCSAgIlx4NGFceGZjXHhkZlx4NTRceGE1XHgwN1x4MGNceDBlIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLAorCQkucHNpemUJPSAyNiwKKwkJLmRpZ2VzdAk9ICJceDY0XHg5ZFx4MzBceDM0XHg3NVx4MWVceGEyXHgxNiIKKwkJCSAgIlx4NzdceDZiXHhmOVx4YTFceDhhXHhjY1x4ODFceGJjIgorCQkJICAiXHg3OFx4OTZceDExXHg4YVx4NTFceDk3XHg5Nlx4ODciCisJCQkgICJceDgyXHhkZFx4MWZceGQ5XHg3ZFx4OGRceDUxXHgzMyIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGUiCisJCQkgICAgICJmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IiwKKwkJLnBzaXplCT0gNjIsCisJCS5kaWdlc3QJPSAiXHg1N1x4NDBceGE0XHgwOFx4YWNceDE2XHhiN1x4MjAiCisJCQkgICJceGI4XHg0NFx4MjRceGFlXHg5M1x4MWNceGJiXHgxZiIKKwkJCSAgIlx4ZTNceDYzXHhkMVx4ZDBceGJmXHg0MFx4MTdceGYxIgorCQkJICAiXHhhOFx4OWZceDdlXHhhNlx4ZGVceDc3XHhhMFx4YjgiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIgorCQkJICAgICAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIsCisJCS5wc2l6ZQk9IDgwLAorCQkuZGlnZXN0CT0gIlx4MDZceGZkXHhjY1x4N2FceDQwXHg5NVx4NDhceGFhIgorCQkJICAiXHhmOVx4MTNceDY4XHhjMFx4NmFceDYyXHg3NVx4YjUiCisJCQkgICJceDUzXHhlM1x4ZjBceDk5XHhiZlx4MGVceGE0XHhlZCIKKwkJCSAgIlx4ZmRceDY3XHg3OFx4ZGZceDg5XHhhOFx4OTBceGRkIiwKKyAgICAgICAgfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RiY2RlY2RlZmRlZmdlZmdoZmdoaWdoaWoiCisJCQkgICAgICJoaWpraWprbGprbG1rbG1ubG1ub21ub3Bub3BxIiwKKwkJLnBzaXplCT0gNTYsCisJCS5kaWdlc3QJPSAiXHgzOFx4NDNceDA0XHg1NVx4ODNceGFhXHhjNlx4YzgiCisJCQkgICJceGM4XHhkOVx4MTJceDg1XHg3M1x4ZTdceGE5XHg4MCIKKwkJCSAgIlx4OWFceGZiXHgyYVx4MGZceDM0XHhjY1x4YzNceDZlIgorCQkJICAiXHhhOVx4ZTdceDJmXHgxNlx4ZjZceDM2XHg4ZVx4M2YiLAorCQkubnAJPSAyLAorCQkudGFwCT0geyAyOCwgMjggfSwKKwl9Cit9OworCisvKgorICogUklQRU1ELTMyMCB0ZXN0IHZlY3RvcnMKKyAqLworI2RlZmluZSBSTUQzMjBfVEVTVF9WRUNUT1JTICAgICA4CisKK3N0YXRpYyBzdHJ1Y3QgaGFzaF90ZXN0dmVjIHJtZDMyMF90dl90ZW1wbGF0ZVtdID0geworCXsKKwkJLmRpZ2VzdAk9ICJceDIyXHhkNlx4NWRceDU2XHg2MVx4NTNceDZjXHhkY1x4NzVceGMxIgorCQkJICAiXHhmZFx4ZjVceGM2XHhkZVx4N2JceDQxXHhiOVx4ZjJceDczXHgyNSIKKwkJCSAgIlx4ZWJceGM2XHgxZVx4ODVceDU3XHgxN1x4N2RceDcwXHg1YVx4MGUiCisJCQkgICJceGM4XHg4MFx4MTVceDFjXHgzYVx4MzJceGEwXHgwOFx4OTlceGI4IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYSIsCisJCS5wc2l6ZQk9IDEsCisJCS5kaWdlc3QJPSAiXHhjZVx4NzhceDg1XHgwNlx4MzhceGY5XHgyNlx4NThceGE1XHhhNSIKKwkJCSAgIlx4ODVceDA5XHg3NVx4NzlceDkyXHg2ZFx4ZGFceDY2XHg3YVx4NTciCisJCQkgICJceDE2XHg1Nlx4MmNceGZjXHhmNlx4ZmJceGU3XHg3Zlx4NjNceDU0IgorCQkJICAiXHgyZlx4OTlceGIwXHg0N1x4MDVceGQ2XHg5N1x4MGRceGZmXHg1ZCIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImFiYyIsCisJCS5wc2l6ZQk9IDMsCisJCS5kaWdlc3QJPSAiXHhkZVx4NGNceDAxXHhiM1x4MDVceDRmXHg4OVx4MzBceGE3XHg5ZCIKKwkJCSAgIlx4MDlceGFlXHg3M1x4OGVceDkyXHgzMFx4MWVceDVhXHgxN1x4MDgiCisJCQkgICJceDViXHhlZlx4ZmRceGMxXHhiOFx4ZDFceDE2XHg3MVx4M2VceDc0IgorCQkJICAiXHhmOFx4MmZceGE5XHg0Mlx4ZDZceDRjXHhkYlx4YzRceDY4XHgyZCIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIm1lc3NhZ2UgZGlnZXN0IiwKKwkJLnBzaXplCT0gMTQsCisJCS5kaWdlc3QJPSAiXHgzYVx4OGVceDI4XHg1MFx4MmVceGQ0XHg1ZFx4NDJceDJmXHg2OCIKKwkJCSAgIlx4ODRceDRmXHg5ZFx4ZDNceDE2XHhlN1x4YjlceDg1XHgzM1x4ZmEiCisJCQkgICJceDNmXHgyYVx4OTFceGQyXHg5Zlx4ODRceGQ0XHgyNVx4YzhceDhkIgorCQkJICAiXHg2Ylx4NGVceGZmXHg3Mlx4N2RceGY2XHg2YVx4N2NceDAxXHg5NyIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKKwkJLnBzaXplCT0gMjYsCisJCS5kaWdlc3QJPSAiXHhjYVx4YmRceGIxXHg4MVx4MGJceDkyXHg0N1x4MGFceDIwXHg5MyIKKwkJCSAgIlx4YWFceDZiXHhjZVx4MDVceDk1XHgyY1x4MjhceDM0XHg4Y1x4ZjQiCisJCQkgICJceDNmXHhmNlx4MDhceDQxXHg5N1x4NTFceDY2XHhiYlx4NDBceGVkIgorCQkJICAiXHgyM1x4NDBceDA0XHhiOFx4ODJceDQ0XHg2M1x4ZTZceGIwXHgwOSIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGUiCisJCQkgICAgICJmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IiwKKwkJLnBzaXplCT0gNjIsCisJCS5kaWdlc3QJPSAiXHhlZFx4NTRceDQ5XHg0MFx4YzhceDZkXHg2N1x4ZjJceDUwXHhkMiIKKwkJCSAgIlx4MzJceGMzXHgwYlx4N2JceDNlXHg1N1x4NzBceGUwXHhjNlx4MGMiCisJCQkgICJceDhjXHhiOVx4YTRceGNhXHhmZVx4M2JceDExXHgzOFx4OGFceGY5IgorCQkJICAiXHg5Mlx4MGVceDFiXHg5OVx4MjNceDBiXHg4NFx4M2NceDg2XHhhNCIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiCisJCQkgICAgICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIiwKKwkJLnBzaXplCT0gODAsCisJCS5kaWdlc3QJPSAiXHg1NVx4NzhceDg4XHhhZlx4NWZceDZkXHg4ZVx4ZDZceDJhXHhiNiIKKwkJCSAgIlx4NjlceDQ1XHhjNlx4ZDJceGEwXHhhNFx4N2VceGNkXHg1M1x4NDEiCisJCQkgICJceGU5XHgxNVx4ZWJceDhmXHhlYVx4MWRceDA1XHgyNFx4OTVceDVmIgorCQkJICAiXHg4Mlx4NWRceGM3XHgxN1x4ZTRceGEwXHgwOFx4YWJceDJkXHg0MiIsCisgICAgICAgIH0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqIgorCQkJICAgICAiaGlqa2lqa2xqa2xta2xtbmxtbm9tbm9wbm9wcSIsCisJCS5wc2l6ZQk9IDU2LAorCQkuZGlnZXN0CT0gIlx4ZDBceDM0XHhhN1x4OTVceDBjXHhmN1x4MjJceDAyXHgxYlx4YTQiCisJCQkgICJceGI4XHg0ZFx4ZjdceDY5XHhhNVx4ZGVceDIwXHg2MFx4ZTJceDU5IgorCQkJICAiXHhkZlx4NGNceDliXHhiNFx4YTRceDI2XHg4Y1x4MGVceDkzXHg1YiIKKwkJCSAgIlx4YmNceDc0XHg3MFx4YTlceDY5XHhjOVx4ZDBceDcyXHhhMVx4YWMiLAorCQkubnAJPSAyLAorCQkudGFwCT0geyAyOCwgMjggfSwKKwl9CiB9OwogCiAvKgpAQCAtODE3LDYgKzEwNzYsMTY4IEBACiB9OwogCiAvKgorICogSE1BQy1SSVBFTUQxMjggdGVzdCB2ZWN0b3JzIGZyb20gUkZDMjI4NgorICovCisjZGVmaW5lIEhNQUNfUk1EMTI4X1RFU1RfVkVDVE9SUwk3CisKK3N0YXRpYyBzdHJ1Y3QgaGFzaF90ZXN0dmVjIGhtYWNfcm1kMTI4X3R2X3RlbXBsYXRlW10gPSB7CisJeworCQkua2V5CT0gIlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGIiLAorCQkua3NpemUJPSAxNiwKKwkJLnBsYWludGV4dCA9ICJIaSBUaGVyZSIsCisJCS5wc2l6ZQk9IDgsCisJCS5kaWdlc3QJPSAiXHhmYlx4ZjZceDFmXHg5NFx4OTJceGFhXHg0Ylx4YmYiCisJCQkgICJceDgxXHhjMVx4NzJceGU4XHg0ZVx4MDdceDM0XHhkYiIsCisJfSwgeworCQkua2V5CT0gIkplZmUiLAorCQkua3NpemUJPSA0LAorCQkucGxhaW50ZXh0ID0gIndoYXQgZG8geWEgd2FudCBmb3Igbm90aGluZz8iLAorCQkucHNpemUJPSAyOCwKKwkJLmRpZ2VzdAk9ICJceDg3XHg1Zlx4ODJceDg4XHg2Mlx4YjZceGIzXHgzNCIKKwkJCSAgIlx4YjRceDI3XHhjNVx4NWZceDlmXHg3Zlx4ZjBceDliIiwKKwkJLm5wCT0gMiwKKwkJLnRhcAk9IHsgMTQsIDE0IH0sCisJfSwgeworCQkua2V5CT0gIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiLAorCQkua3NpemUJPSAxNiwKKwkJLnBsYWludGV4dCA9ICJceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGQiCisJCQkiXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZCIKKwkJCSJceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkIgorCQkJIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZCIsCisJCS5wc2l6ZQk9IDUwLAorCQkuZGlnZXN0CT0gIlx4MDlceGYwXHhiMlx4ODRceDZkXHgyZlx4NTRceDNkIgorCQkJICAiXHhhM1x4NjNceGNiXHhlY1x4OGRceDYyXHhhM1x4OGQiLAorCX0sIHsKKwkJLmtleQk9ICJceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XHgwOCIKKwkJCSAgIlx4MDlceDBhXHgwYlx4MGNceDBkXHgwZVx4MGZceDEwIgorCQkJICAiXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5IiwKKwkJLmtzaXplCT0gMjUsCisJCS5wbGFpbnRleHQgPSAiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkIgorCQkJIlx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2QiCisJCQkiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIKKwkJCSJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2QiLAorCQkucHNpemUJPSA1MCwKKwkJLmRpZ2VzdAk9ICJceGJkXHhiYlx4ZDdceGNmXHgwM1x4ZTRceDRiXHg1YSIKKwkJCSAgIlx4YTZceDBhXHhmOFx4MTVceGJlXHg0ZFx4MjJceDk0IiwKKwl9LCB7CisJCS5rZXkJPSAiXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwYyIsCisJCS5rc2l6ZQk9IDE2LAorCQkucGxhaW50ZXh0ID0gIlRlc3QgV2l0aCBUcnVuY2F0aW9uIiwKKwkJLnBzaXplCT0gMjAsCisJCS5kaWdlc3QJPSAiXHhlN1x4OThceDA4XHhmMlx4NGJceDI1XHhmZFx4MDMiCisJCQkgICJceDFjXHgxNVx4NWZceDBkXHg1NVx4MWRceDlhXHgzYSIsCisJfSwgeworCQkua2V5CT0gIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhIiwKKwkJLmtzaXplCT0gODAsCisJCS5wbGFpbnRleHQgPSAiVGVzdCBVc2luZyBMYXJnZXIgVGhhbiBCbG9jay1TaXplIEtleSAtIEhhc2ggS2V5IEZpcnN0IiwKKwkJLnBzaXplCT0gNTQsCisJCS5kaWdlc3QJPSAiXHhkY1x4NzNceDI5XHgyOFx4ZGVceDk4XHgxMFx4NGEiCisJCQkgICJceDFmXHg1OVx4ZDNceDczXHhjMVx4NTBceGFjXHhiYiIsCisJfSwgeworCQkua2V5CT0gIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhIiwKKwkJLmtzaXplCT0gODAsCisJCS5wbGFpbnRleHQgPSAiVGVzdCBVc2luZyBMYXJnZXIgVGhhbiBCbG9jay1TaXplIEtleSBhbmQgTGFyZ2VyIFRoYW4gT25lICIKKwkJCSAgICJCbG9jay1TaXplIERhdGEiLAorCQkucHNpemUJPSA3MywKKwkJLmRpZ2VzdAk9ICJceDVjXHg2Ylx4ZWNceDk2XHg3OVx4M2VceDE2XHhkNCIKKwkJCSAgIlx4MDZceDkwXHhjMlx4MzdceDYzXHg1Zlx4MzBceGM1IiwKKwl9LAorfTsKKworLyoKKyAqIEhNQUMtUklQRU1EMTYwIHRlc3QgdmVjdG9ycyBmcm9tIFJGQzIyODYKKyAqLworI2RlZmluZSBITUFDX1JNRDE2MF9URVNUX1ZFQ1RPUlMJNworCitzdGF0aWMgc3RydWN0IGhhc2hfdGVzdHZlYyBobWFjX3JtZDE2MF90dl90ZW1wbGF0ZVtdID0geworCXsKKwkJLmtleQk9ICJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYiIsCisJCS5rc2l6ZQk9IDIwLAorCQkucGxhaW50ZXh0ID0gIkhpIFRoZXJlIiwKKwkJLnBzaXplCT0gOCwKKwkJLmRpZ2VzdAk9ICJceDI0XHhjYlx4NGJceGQ2XHg3ZFx4MjBceGZjXHgxYVx4NWRceDJlIgorCQkJICAiXHhkN1x4NzNceDJkXHhjY1x4MzlceDM3XHg3Zlx4MGFceDU2XHg2OCIsCisJfSwgeworCQkua2V5CT0gIkplZmUiLAorCQkua3NpemUJPSA0LAorCQkucGxhaW50ZXh0ID0gIndoYXQgZG8geWEgd2FudCBmb3Igbm90aGluZz8iLAorCQkucHNpemUJPSAyOCwKKwkJLmRpZ2VzdAk9ICJceGRkXHhhNlx4YzBceDIxXHgzYVx4NDhceDVhXHg5ZVx4MjRceGY0IgorCQkJICAiXHg3NFx4MjBceDY0XHhhN1x4ZjBceDMzXHhiNFx4M2NceDQwXHg2OSIsCisJCS5ucAk9IDIsCisJCS50YXAJPSB7IDE0LCAxNCB9LAorCX0sIHsKKwkJLmtleQk9ICJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIsCisJCS5rc2l6ZQk9IDIwLAorCQkucGxhaW50ZXh0ID0gIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZCIKKwkJCSJceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkIgorCQkJIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGQiCisJCQkiXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkIiwKKwkJLnBzaXplCT0gNTAsCisJCS5kaWdlc3QJPSAiXHhiMFx4YjFceDA1XHgzNlx4MGRceGU3XHg1OVx4OTZceDBhXHhiNCIKKwkJCSAgIlx4ZjNceDUyXHg5OFx4ZTFceDE2XHhlMlx4OTVceGQ4XHhlN1x4YzEiLAorCX0sIHsKKwkJLmtleQk9ICJceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XHgwOCIKKwkJCSAgIlx4MDlceDBhXHgwYlx4MGNceDBkXHgwZVx4MGZceDEwIgorCQkJICAiXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5IiwKKwkJLmtzaXplCT0gMjUsCisJCS5wbGFpbnRleHQgPSAiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkIgorCQkJIlx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2QiCisJCQkiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIKKwkJCSJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2QiLAorCQkucHNpemUJPSA1MCwKKwkJLmRpZ2VzdAk9ICJceGQ1XHhjYVx4ODZceDJmXHg0ZFx4MjFceGQ1XHhlNlx4MTBceGUxIgorCQkJICAiXHg4Ylx4NGNceGYxXHhiZVx4YjlceDdhXHg0M1x4NjVceGVjXHhmNCIsCisJfSwgeworCQkua2V5CT0gIlx4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjIiwKKwkJLmtzaXplCT0gMjAsCisJCS5wbGFpbnRleHQgPSAiVGVzdCBXaXRoIFRydW5jYXRpb24iLAorCQkucHNpemUJPSAyMCwKKwkJLmRpZ2VzdAk9ICJceDc2XHgxOVx4NjlceDM5XHg3OFx4ZjlceDFkXHg5MFx4NTNceDlhIgorCQkJICAiXHhlN1x4ODZceDUwXHgwZlx4ZjNceGQ4XHhlMFx4NTFceDhlXHgzOSIsCisJfSwgeworCQkua2V5CT0gIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhIiwKKwkJLmtzaXplCT0gODAsCisJCS5wbGFpbnRleHQgPSAiVGVzdCBVc2luZyBMYXJnZXIgVGhhbiBCbG9jay1TaXplIEtleSAtIEhhc2ggS2V5IEZpcnN0IiwKKwkJLnBzaXplCT0gNTQsCisJCS5kaWdlc3QJPSAiXHg2NFx4NjZceGNhXHgwN1x4YWNceDVlXHhhY1x4MjlceGUxXHhiZCIKKwkJCSAgIlx4NTJceDNlXHg1YVx4ZGFceDc2XHgwNVx4YjdceDkxXHhmZFx4OGIiLAorCX0sIHsKKwkJLmtleQk9ICJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYSIsCisJCS5rc2l6ZQk9IDgwLAorCQkucGxhaW50ZXh0ID0gIlRlc3QgVXNpbmcgTGFyZ2VyIFRoYW4gQmxvY2stU2l6ZSBLZXkgYW5kIExhcmdlciBUaGFuIE9uZSAiCisJCQkgICAiQmxvY2stU2l6ZSBEYXRhIiwKKwkJLnBzaXplCT0gNzMsCisJCS5kaWdlc3QJPSAiXHg2OVx4ZWFceDYwXHg3OVx4OGRceDcxXHg2MVx4NmNceGNlXHg1ZiIKKwkJCSAgIlx4ZDBceDg3XHgxZVx4MjNceDc1XHg0Y1x4ZDdceDVkXHg1YVx4MGEiLAorCX0sCit9OworCisvKgogICogSE1BQy1TSEExIHRlc3QgdmVjdG9ycyBmcm9tIFJGQzIyMDIKICAqLwogI2RlZmluZSBITUFDX1NIQTFfVEVTVF9WRUNUT1JTCTcKQEAgLTE0NDIsNiArMTg2Myw4IEBACiAjZGVmaW5lIERFU19DQkNfREVDX1RFU1RfVkVDVE9SUwk0CiAjZGVmaW5lIERFUzNfRURFX0VOQ19URVNUX1ZFQ1RPUlMJMwogI2RlZmluZSBERVMzX0VERV9ERUNfVEVTVF9WRUNUT1JTCTMKKyNkZWZpbmUgREVTM19FREVfQ0JDX0VOQ19URVNUX1ZFQ1RPUlMJMQorI2RlZmluZSBERVMzX0VERV9DQkNfREVDX1RFU1RfVkVDVE9SUwkxCiAKIHN0YXRpYyBzdHJ1Y3QgY2lwaGVyX3Rlc3R2ZWMgZGVzX2VuY190dl90ZW1wbGF0ZVtdID0gewogCXsgLyogRnJvbSBBcHBsaWVkIENyeXB0b2dyYXBoeSAqLwpAQCAtMTY4MCw5ICsyMTAzLDYgQEAKIAl9LAogfTsKIAotLyoKLSAqIFdlIHJlYWxseSBuZWVkIHNvbWUgbW9yZSB0ZXN0IHZlY3RvcnMsIGVzcGVjaWFsbHkgZm9yIERFUzMgQ0JDLgotICovCiBzdGF0aWMgc3RydWN0IGNpcGhlcl90ZXN0dmVjIGRlczNfZWRlX2VuY190dl90ZW1wbGF0ZVtdID0gewogCXsgLyogVGhlc2UgYXJlIGZyb20gb3BlbnNzbCAqLwogCQkua2V5CT0gIlx4MDFceDIzXHg0NVx4NjdceDg5XHhhYlx4Y2RceGVmIgpAQCAtMTc0NSw2ICsyMTY1LDk0IEBACiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgY2lwaGVyX3Rlc3R2ZWMgZGVzM19lZGVfY2JjX2VuY190dl90ZW1wbGF0ZVtdID0geworCXsgLyogR2VuZXJhdGVkIGZyb20gb3BlbnNzbCAqLworCQkua2V5CT0gIlx4RTlceEMwXHhGRlx4MkVceDc2XHgwQlx4NjRceDI0IgorCQkJICAiXHg0NFx4NERceDk5XHg1QVx4MTJceEQ2XHg0MFx4QzAiCisJCQkgICJceEVBXHhDMlx4ODRceEU4XHgxNFx4OTVceERCXHhFOCIsCisJCS5rbGVuCT0gMjQsCisJCS5pdgk9ICJceDdEXHgzM1x4ODhceDkzXHgwRlx4OTNceEIyXHg0MiIsCisJCS5pbnB1dAk9ICJceDZmXHg1NFx4MjBceDZmXHg2MVx4NGRceDc5XHg2ZSIKKwkJCSAgIlx4NTNceDIwXHg2M1x4NjVceDY1XHg3Mlx4NzNceDc0IgorCQkJICAiXHg1NFx4MjBceDZmXHg2Zlx4NGRceDIwXHg2ZVx4NjEiCisJCQkgICJceDIwXHg3OVx4NjVceDUzXHg3Mlx4NjNceDc0XHg2NSIKKwkJCSAgIlx4MjBceDczXHg2Zlx4NTRceDIwXHg2Zlx4NjFceDRkIgorCQkJICAiXHg3OVx4NmVceDUzXHgyMFx4NjNceDY1XHg2NVx4NzIiCisJCQkgICJceDczXHg3NFx4NTRceDIwXHg2Zlx4NmZceDRkXHgyMCIKKwkJCSAgIlx4NmVceDYxXHgyMFx4NzlceDY1XHg1M1x4NzJceDYzIgorCQkJICAiXHg3NFx4NjVceDIwXHg3M1x4NmZceDU0XHgyMFx4NmYiCisJCQkgICJceDYxXHg0ZFx4NzlceDZlXHg1M1x4MjBceDYzXHg2NSIKKwkJCSAgIlx4NjVceDcyXHg3M1x4NzRceDU0XHgyMFx4NmZceDZmIgorCQkJICAiXHg0ZFx4MjBceDZlXHg2MVx4MjBceDc5XHg2NVx4NTMiCisJCQkgICJceDcyXHg2M1x4NzRceDY1XHgyMFx4NzNceDZmXHg1NCIKKwkJCSAgIlx4MjBceDZmXHg2MVx4NGRceDc5XHg2ZVx4NTNceDIwIgorCQkJICAiXHg2M1x4NjVceDY1XHg3Mlx4NzNceDc0XHg1NFx4MjAiCisJCQkgICJceDZmXHg2Zlx4NGRceDIwXHg2ZVx4NjFceDBhXHg3OSIsCisJCS5pbGVuCT0gMTI4LAorCQkucmVzdWx0CT0gIlx4MGVceDJkXHhiNlx4OTdceDNjXHg1Nlx4MzNceGY0IgorCQkJICAiXHg2N1x4MTdceDIxXHhjN1x4NmVceDhhXHhkNVx4NDkiCisJCQkgICJceDc0XHhiM1x4NDlceDA1XHhjNVx4MWNceGQwXHhlZCIKKwkJCSAgIlx4MTJceDU2XHg1Y1x4NTNceDk2XHhiNlx4MDBceDdkIgorCQkJICAiXHg5MFx4NDhceGZjXHhmNVx4OGRceDI5XHgzOVx4Y2MiCisJCQkgICJceDhhXHhkNVx4MzVceDE4XHgzNlx4MjNceDRlXHhkNyIKKwkJCSAgIlx4NzZceGQxXHhkYVx4MGNceDk0XHg2N1x4YmJceDA0IgorCQkJICAiXHg4Ylx4ZjJceDAzXHg2Y1x4YThceGNmXHhiNlx4ZWEiCisJCQkgICJceDIyXHg2NFx4NDdceGFhXHg4Zlx4NzVceDEzXHhiZiIKKwkJCSAgIlx4OWZceGMyXHhjM1x4ZjBceGM5XHg1Nlx4YzVceDdhIgorCQkJICAiXHg3MVx4NjNceDJlXHg4OVx4N2JceDFlXHgxMlx4Y2EiCisJCQkgICJceGUyXHg1Zlx4YWZceGQ4XHhhNFx4ZjhceGM5XHg3YSIKKwkJCSAgIlx4ZDZceGY5XHgyMVx4MzFceDYyXHg0NFx4NDVceGE2IgorCQkJICAiXHhkNlx4YmNceDVhXHhkM1x4MmRceDU0XHg0M1x4Y2MiCisJCQkgICJceDlkXHhkZVx4YTVceDcwXHhlOVx4NDJceDQ1XHg4YSIKKwkJCSAgIlx4NmJceGZhXHhiMVx4OTFceDEzXHhiMFx4ZDlceDE5IiwKKwkJLnJsZW4JPSAxMjgsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2lwaGVyX3Rlc3R2ZWMgZGVzM19lZGVfY2JjX2RlY190dl90ZW1wbGF0ZVtdID0geworCXsgLyogR2VuZXJhdGVkIGZyb20gb3BlbnNzbCAqLworCQkua2V5CT0gIlx4RTlceEMwXHhGRlx4MkVceDc2XHgwQlx4NjRceDI0IgorCQkJICAiXHg0NFx4NERceDk5XHg1QVx4MTJceEQ2XHg0MFx4QzAiCisJCQkgICJceEVBXHhDMlx4ODRceEU4XHgxNFx4OTVceERCXHhFOCIsCisJCS5rbGVuCT0gMjQsCisJCS5pdgk9ICJceDdEXHgzM1x4ODhceDkzXHgwRlx4OTNceEIyXHg0MiIsCisJCS5pbnB1dAk9ICJceDBlXHgyZFx4YjZceDk3XHgzY1x4NTZceDMzXHhmNCIKKwkJCSAgIlx4NjdceDE3XHgyMVx4YzdceDZlXHg4YVx4ZDVceDQ5IgorCQkJICAiXHg3NFx4YjNceDQ5XHgwNVx4YzVceDFjXHhkMFx4ZWQiCisJCQkgICJceDEyXHg1Nlx4NWNceDUzXHg5Nlx4YjZceDAwXHg3ZCIKKwkJCSAgIlx4OTBceDQ4XHhmY1x4ZjVceDhkXHgyOVx4MzlceGNjIgorCQkJICAiXHg4YVx4ZDVceDM1XHgxOFx4MzZceDIzXHg0ZVx4ZDciCisJCQkgICJceDc2XHhkMVx4ZGFceDBjXHg5NFx4NjdceGJiXHgwNCIKKwkJCSAgIlx4OGJceGYyXHgwM1x4NmNceGE4XHhjZlx4YjZceGVhIgorCQkJICAiXHgyMlx4NjRceDQ3XHhhYVx4OGZceDc1XHgxM1x4YmYiCisJCQkgICJceDlmXHhjMlx4YzNceGYwXHhjOVx4NTZceGM1XHg3YSIKKwkJCSAgIlx4NzFceDYzXHgyZVx4ODlceDdiXHgxZVx4MTJceGNhIgorCQkJICAiXHhlMlx4NWZceGFmXHhkOFx4YTRceGY4XHhjOVx4N2EiCisJCQkgICJceGQ2XHhmOVx4MjFceDMxXHg2Mlx4NDRceDQ1XHhhNiIKKwkJCSAgIlx4ZDZceGJjXHg1YVx4ZDNceDJkXHg1NFx4NDNceGNjIgorCQkJICAiXHg5ZFx4ZGVceGE1XHg3MFx4ZTlceDQyXHg0NVx4OGEiCisJCQkgICJceDZiXHhmYVx4YjFceDkxXHgxM1x4YjBceGQ5XHgxOSIsCisJCS5pbGVuCT0gMTI4LAorCQkucmVzdWx0CT0gIlx4NmZceDU0XHgyMFx4NmZceDYxXHg0ZFx4NzlceDZlIgorCQkJICAiXHg1M1x4MjBceDYzXHg2NVx4NjVceDcyXHg3M1x4NzQiCisJCQkgICJceDU0XHgyMFx4NmZceDZmXHg0ZFx4MjBceDZlXHg2MSIKKwkJCSAgIlx4MjBceDc5XHg2NVx4NTNceDcyXHg2M1x4NzRceDY1IgorCQkJICAiXHgyMFx4NzNceDZmXHg1NFx4MjBceDZmXHg2MVx4NGQiCisJCQkgICJceDc5XHg2ZVx4NTNceDIwXHg2M1x4NjVceDY1XHg3MiIKKwkJCSAgIlx4NzNceDc0XHg1NFx4MjBceDZmXHg2Zlx4NGRceDIwIgorCQkJICAiXHg2ZVx4NjFceDIwXHg3OVx4NjVceDUzXHg3Mlx4NjMiCisJCQkgICJceDc0XHg2NVx4MjBceDczXHg2Zlx4NTRceDIwXHg2ZiIKKwkJCSAgIlx4NjFceDRkXHg3OVx4NmVceDUzXHgyMFx4NjNceDY1IgorCQkJICAiXHg2NVx4NzJceDczXHg3NFx4NTRceDIwXHg2Zlx4NmYiCisJCQkgICJceDRkXHgyMFx4NmVceDYxXHgyMFx4NzlceDY1XHg1MyIKKwkJCSAgIlx4NzJceDYzXHg3NFx4NjVceDIwXHg3M1x4NmZceDU0IgorCQkJICAiXHgyMFx4NmZceDYxXHg0ZFx4NzlceDZlXHg1M1x4MjAiCisJCQkgICJceDYzXHg2NVx4NjVceDcyXHg3M1x4NzRceDU0XHgyMCIKKwkJCSAgIlx4NmZceDZmXHg0ZFx4MjBceDZlXHg2MVx4MGFceDc5IiwKKwkJLnJsZW4JPSAxMjgsCisJfSwKK307CisKIC8qCiAgKiBCbG93ZmlzaCB0ZXN0IHZlY3RvcnMuCiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvTWFrZWZpbGUgYi9kcml2ZXJzL01ha2VmaWxlCmluZGV4IGY2NWRlZGEuLmZkYTQ0NjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9NYWtlZmlsZQpAQCAtMTAsNiArMTAsNyBAQAogb2JqLSQoQ09ORklHX1BBUklTQykJCSs9IHBhcmlzYy8KIG9iai0kKENPTkZJR19SQVBJRElPKQkJKz0gcmFwaWRpby8KIG9iai15CQkJCSs9IHZpZGVvLworb2JqLXkJCQkJKz0gZ3B1Lwogb2JqLSQoQ09ORklHX0FDUEkpCQkrPSBhY3BpLwogIyBQblAgbXVzdCBjb21lIGFmdGVyIEFDUEkgc2luY2UgaXQgd2lsbCBldmVudHVhbGx5IG5lZWQgdG8gY2hlY2sgaWYgYWNwaQogIyB3YXMgdXNlZCBhbmQgZG8gbm90aGluZyBpZiBzbwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY29ybi9jaGFyL01ha2VmaWxlIGIvZHJpdmVycy9hY29ybi9jaGFyL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDA2YzlmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvYWNvcm4vY2hhci9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotIwotIyBNYWtlZmlsZSBmb3IgdGhlIGFjb3JuIGNoYXJhY3RlciBkZXZpY2UgZHJpdmVycy4KLSMKLQotb2JqLSQoQ09ORklHX0w3MjAwX0tFWUIpCSs9IGRlZmtleW1hcC1sNzIwMC5vIGtleWJfbDcyMDAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY29ybi9jaGFyL2RlZmtleW1hcC1sNzIwMC5jIGIvZHJpdmVycy9hY29ybi9jaGFyL2RlZmtleW1hcC1sNzIwMC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2Q4MGExLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvYWNvcm4vY2hhci9kZWZrZXltYXAtbDcyMDAuYworKysgL2Rldi9udWxsCkBAIC0xLDM4NiArMCwwIEBACi0vKgotICogbGludXgvZHJpdmVycy9hY29ybi9jaGFyL2RlZmtleW1hcC1sNzIwMC5jCi0gKgotICogRGVmYXVsdCBrZXlib2FyZCBtYXBzIGZvciBMaW5rVXAgU3lzdGVtcyBMNzIwMCBib2FyZAotICoKLSAqIENvcHlyaWdodCAoQykgMjAwMCBTdGV2ZSBIaWxsIChzamhpbGxAY290dy5jb20pCi0gKgotICogQ2hhbmdlbG9nOgotICogICAwOC0wNC0yMDAwIFNKSCAgICAgQ3JlYXRlZCBmaWxlCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgva2V5Ym9hcmQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZC5oPgotCi0vKiBOb3JtYWwgKG1hcHMgMToxIHdpdGggbm8gcHJvY2Vzc2luZykgKi8KLSNkZWZpbmUgS1RuCTB4RjAKLS8qIEZ1bmN0aW9uIGtleXMgKi8KLSNkZWZpbmUgS1RmCTB4RjEKLS8qIFNwZWNpYWwgKFBlcmZvcm1zIHNwZWNpYWwgaG91c2Uta2VlcGluZyBmdW5jcykgKi8KLSNkZWZpbmUgS1RzCTB4RjIKLSNkZWZpbmUgS0lHTk9SRQkJSyhLVHMsIDApCS8qIElnbm9yZSAqLwotI2RlZmluZSBLRU5URVIJCUsoS1RzLCAxKQkvKiBFbnRlciAqLwotI2RlZmluZSBLUkVHUwkJSyhLVHMsIDIpCS8qIFJlZ3MgKi8KLSNkZWZpbmUgS01FTQkJSyhLVHMsIDMpCS8qIE1lbSAqLwotI2RlZmluZSBLU1RBVAkJSyhLVHMsIDQpCS8qIFN0YXRlICovCi0jZGVmaW5lIEtJTlRSCQlLKEtUcywgNSkJLyogSW50ciAqLwotI2RlZmluZSBLc2wJNgkvKiBMYXN0IGNvbnNvbGUgKi8KLSNkZWZpbmUgS0NBUFNMSwkJSyhLVHMsIDcpCS8qIENhcHMgbG9jayAqLwotI2RlZmluZSBLTlVNTEsJCUsoS1RzLCA4KQkvKiBOdW0tbG9jayAqLwotI2RlZmluZSBLU0NSTExLCQlLKEtUcywgOSkJLyogU2Nyb2xsLWxvY2sgKi8KLSNkZWZpbmUgS1NDUkxGT1IJSyhLVHMsMTApCS8qIFNjcm9sbCBmb3J3YXJkICovCi0jZGVmaW5lIEtTQ1JMQkFLCUsoS1RzLDExKQkvKiBTY3JvbGwgYmFjayAqLwotI2RlZmluZSBLUkVCT09UCQlLKEtUcywxMikJLyogUmVib290ICovCi0jZGVmaW5lIEtDQVBTT04JCUsoS1RzLDEzKQkvKiBDYXBzIG9uICovCi0jZGVmaW5lIEtDT01QT1NFCUsoS1RzLDE0KQkvKiBDb21wb3NlICovCi0jZGVmaW5lIEtTQUsJCUsoS1RzLDE1KQkvKiBTQUsgKi8KLSNkZWZpbmUgQ09OU19ERUMJSyhLVHMsMTYpCS8qIERlYyBjb25zb2xlICovCi0jZGVmaW5lIENPTlNfSU5DCUsoS1RzLDE3KQkvKiBJbmNyIGNvbnNvbGUgKi8KLSNkZWZpbmUgS0ZMT1BQWQkJSyhLVHMsMTgpCS8qIEZsb3BweSAqLwotLyogS2V5IHBhZCAoMC05ID0gZGlnaXRzLCAxMD0rLCAxMT0tLCAxMj0qLCAxMz0vLCAxND1lbnRlciwgMTY9LiwgMTc9IyAqLwotI2RlZmluZSBLVHAJMHhGMwotI2RlZmluZSBLUEFEXzAJCUsoS1RwLCAwICkKLSNkZWZpbmUgS1BBRF8xICAJSyhLVHAsIDEgKQotI2RlZmluZSBLUEFEXzIJCUsoS1RwLCAyICkKLSNkZWZpbmUgS1BBRF8zCQlLKEtUcCwgMyApCi0jZGVmaW5lIEtQQURfNAkJSyhLVHAsIDQgKQotI2RlZmluZSBLUEFEXzUJCUsoS1RwLCA1ICkKLSNkZWZpbmUgS1BBRF82CQlLKEtUcCwgNiApCi0jZGVmaW5lIEtQQURfNwkJSyhLVHAsIDcgKQotI2RlZmluZSBLUEFEXzgJCUsoS1RwLCA4ICkKLSNkZWZpbmUgS1BBRF85CQlLKEtUcCwgOSApCi0jZGVmaW5lIEtQQURfUEwJCUsoS1RwLDEwICkKLSNkZWZpbmUgS1BBRF9NSQkJSyhLVHAsMTEgKQotI2RlZmluZSBLUEFEX01MCQlLKEtUcCwxMiApCi0jZGVmaW5lIEtQQURfRFYJCUsoS1RwLDEzICkKLSNkZWZpbmUgS1BBRF9FTgkJSyhLVHAsMTQgKQotI2RlZmluZSBLUEFEX0RUCQlLKEtUcCwxNiApCi0jZGVmaW5lIEtQQURfSFMJCUsoS1RwLDIwICkKLS8qIENvbnNvbGUgc3dpdGNoaW5nICovCi0jZGVmaW5lIEtDbgkweEY1Ci0vKiBDdXJzb3IgKi8KLSNkZWZpbmUgS1RjCTB4RjYKLSNkZWZpbmUgS2NkCTAJLyogQ3Vyc29yIGRvd24gKi8KLSNkZWZpbmUgS2NsCTEJLyogQ3Vyc29yIGxlZnQgKi8KLSNkZWZpbmUgS2NyCTIJLyogQ3Vyc29yIHJpZ2h0ICovCi0jZGVmaW5lIEtjdQkzCS8qIEN1cnNvciB1cCAqLwotLyogU2hpZnQvYWx0IG1vZGlmaWVycyBldGMgKi8KLSNkZWZpbmUgS01kCTB4RjcKLSNkZWZpbmUgS1NISUZUCQlLKEtNZCwgMCApCi0jZGVmaW5lIEtBTFRHUgkJSyhLTWQsIDEgKQotI2RlZmluZSBLQ1RSTAkJSyhLTWQsIDIgKQotI2RlZmluZSBLQUxUCQlLKEtNZCwgMyApCi0vKiBNZXRhICovCi0jZGVmaW5lIEtNdAkweEY4Ci0jZGVmaW5lIEtBcwkweEY5Ci0jZGVmaW5lIEtQQURBXzAJCUsoS0FzLCAwICkKLSNkZWZpbmUgS1BBREFfMQkJSyhLQXMsIDEgKQotI2RlZmluZSBLUEFEQV8yCQlLKEtBcywgMiApCi0jZGVmaW5lIEtQQURBXzMJCUsoS0FzLCAzICkKLSNkZWZpbmUgS1BBREFfNAkJSyhLQXMsIDQgKQotI2RlZmluZSBLUEFEQV81CQlLKEtBcywgNSApCi0jZGVmaW5lIEtQQURBXzYJCUsoS0FzLCA2ICkKLSNkZWZpbmUgS1BBREFfNwkJSyhLQXMsIDcgKQotI2RlZmluZSBLUEFEQV84CQlLKEtBcywgOCApCi0jZGVmaW5lIEtQQURBXzkJCUsoS0FzLCA5ICkKLSNkZWZpbmUgS1BBREJfMAkJSyhLQXMsMTAgKQotI2RlZmluZSBLUEFEQl8xCQlLKEtBcywxMSApCi0jZGVmaW5lIEtQQURCXzIJCUsoS0FzLDEyICkKLSNkZWZpbmUgS1BBREJfMwkJSyhLQXMsMTMgKQotI2RlZmluZSBLUEFEQl80CQlLKEtBcywxNCApCi0jZGVmaW5lIEtQQURCXzUJCUsoS0FzLDE1ICkKLSNkZWZpbmUgS1BBREJfNgkJSyhLQXMsMTYgKQotI2RlZmluZSBLUEFEQl83CQlLKEtBcywxNyApCi0jZGVmaW5lIEtQQURCXzgJCUsoS0FzLDE4ICkKLSNkZWZpbmUgS1BBREJfOQkJSyhLQXMsMTkgKQotLyogTG9ja2luZyBrZXlzICovCi0jZGVmaW5lIEtMawkweEZBCi0vKiBMZXR0ZXJzICovCi0jZGVmaW5lIEtUbAkweEZCCi0KLS8qCi0gKiBIZXJlIGlzIHRoZSBsYXlvdXQgb2YgdGhlIGtleXMgZm9yIHRoZSBGdWppdHN1IFFXRVJUWQotICogc3R5bGUga2V5Ym9hcmQ6Ci0gKgotICoJc3RhdGljIGNoYXIgRnVqaXRzdV9LZXlfVGFibGVbXSA9Ci0gKgl7Ci0gKiAgICAgICAgS0FMVCwgJ2AnICwgS05VTCwgS0NUTCwgS0ZVTiwgS0VTQywgJzEnICwgJzInICwKLSAqCSAgJzknICwgJzAnICwgJy0nICwgJz0nICwgS05VTCwgS0JTUCwgS05VTCwgS05VTCwKLSAqCSAgS05VTCwgS0JTTCwgS1NIRiwgS05VTCwgS05VTCwgS0RFTCwgS05VTCwgJ3QnICwKLSAqCSAgJ3knICwgJ3UnICwgJ2knICwgS1JFVCwgS1NIRiwgS1BHRCwgS05VTCwgS05VTCwKLSAqCSAgS05VTCwgS1RBQiwgS05VTCwgS05VTCwgS05VTCwgJ3EnICwgJ3cnICwgJ2UnICwKLSAqCSAgJ3InICwgJ28nICwgJ3AnICwgJ1snICwgS05VTCwgJ10nICwgS05VTCwgS05VTCwKLSAqCSAgS05VTCwgJ3onICwgS05VTCwgS05VTCwgS05VTCwgS1NITCwgS05VTCwgS05VTCwKLSAqCSAgJ2snICwgJ2wnICwgJzsnICwgS1NRVCwgS05VTCwgS1BHVSwgS05VTCwgS05VTCwKLSAqCSAgS05VTCwgJ2EnICwgS05VTCwgS05VTCwgS05VTCwgJ3MnICwgJ2QnICwgJ2YnICwKLSAqCSAgJ2cnICwgJ2gnICwgJ2onICwgJy8nICwgS05VTCwgS0hNRSwgS05VTCwgS05VTCwKLSAqCSAgS05VTCwgJ3gnICwgS05VTCwgS05VTCwgS05VTCwgJ2MnICwgJ3YnICwgJ2InICwKLSAqCSAgJ24nICwgJ20nICwgJywnICwgJy4nICwgS05VTCwgJyAnICwgS05VTCwgS05VTCwKLSAqCSAgS05VTCwgS05VTCwgS05VTCwgS05VTCwgS05VTCwgJzMnICwgJzQnICwgJzUnICwKLSAqCSAgJzYnICwgJzcnICwgJzgnICwgS05VTCwgS1BSRywgS05VTCwgS0VORCwgS05VTCwKLSAqCX07Ci0gKi8KLQotdV9zaG9ydCBwbGFpbl9tYXBbTlJfS0VZU109Ci17Ci0JMHhmNzAzLCAweGYwNjAsIDB4ZjIwMCwgMHhmNzAyLCAweGYyMDAsIDB4ZjAxYiwgMHhmMDMxLCAweGYwMzIsCi0JMHhmMDM5LCAweGYwMzAsIDB4ZjAyZCwgMHhmMDNkLCAweGYyMDAsIDB4ZjA3ZiwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYwNWMsIDB4ZjcwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjExNiwgMHhmMDAwLCAweGZiNzQsCi0JMHhmYjc5LCAweGZiNzUsIDB4ZmI2OSwgMHhmMjAxLCAweGY3MDAsIDB4ZjYwMCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYwMDksIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZmI3MSwgMHhmYjc3LCAweGZiNjUsCi0JMHhmYjcyLCAweGZiNmYsIDB4ZmI3MCwgMHhmMDViLCAweGYyMDAsIDB4ZjA1ZCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGZiN2EsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwNywgMHhmMjAwLCAweGYyMDAsCi0JMHhmYjZiLCAweGZiNmMsIDB4ZjAzYiwgMHhmMDI3LCAweGYyMDAsIDB4ZjYwMywgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGZiNjEsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZmI3MywgMHhmYjY0LCAweGZiNjYsCi0JMHhmYjY3LCAweGZiNjgsIDB4ZmI2YSwgMHhmMDJmLCAweGYyMDAsIDB4ZjYwMSwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGZiNzgsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZmI2MywgMHhmYjc2LCAweGZiNjIsCi0JMHhmYjZlLCAweGZiNmQsIDB4ZjAyYywgMHhmMDJlLCAweGYyMDAsIDB4ZjAyMCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjAzMywgMHhmMDM0LCAweGYwMzUsIAotCTB4ZjAzNiwgMHhmMDM3LCAweGYwMzgsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjYwMiwgMHhmMjAwLCAKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgCi0JMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIAotfTsKLQotdV9zaG9ydCBzaGlmdF9tYXBbTlJfS0VZU109Ci17Ci0JMHhmNzAzLCAweGYwN2UsIDB4ZjIwMCwgMHhmNzAyLCAweGYyMDAsIDB4ZjAxYiwgMHhmMDIxLCAweGYwNDAsCi0JMHhmMDI4LCAweGYwMjksIDB4ZjA1ZiwgMHhmMDJiLCAweGYyMDAsIDB4ZjA3ZiwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYwN2MsIDB4ZjcwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjExNiwgMHhmMDAwLCAweGZiNTQsCi0JMHhmYjU5LCAweGZiNTUsIDB4ZmI0OSwgMHhmMjAxLCAweGY3MDAsIDB4ZjYwMCwgMHhmMjAwLCAweGYyMDAsCi0gCTB4ZjIwMCwgMHhmMDA5LCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGZiNTEsIDB4ZmI1NywgMHhmYjQ1LAotCTB4ZmI1MiwgMHhmYjRmLCAweGZiNTAsIDB4ZjA3YiwgMHhmMjAwLCAweGYwN2QsIDB4ZjIwMCwgMHhmMjAwLAotCTB4ZjIwMCwgMHhmYjVhLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDcsIDB4ZjIwMCwgMHhmMjAwLAotCTB4ZmI0YiwgMHhmYjRjLCAweGYwM2EsIDB4ZjAyMiwgMHhmMjAwLCAweGY2MDMsIDB4ZjIwMCwgMHhmMjAwLAotCTB4ZjIwMCwgMHhmYjQxLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGZiNTMsIDB4ZmI0NCwgMHhmYjQ2LAotCTB4ZmI0NywgMHhmYjQ4LCAweGZiNGEsIDB4ZjAzZiwgMHhmMjAwLCAweGY2MDEsIDB4ZjIwMCwgMHhmMjAwLAotCTB4ZjIwMCwgMHhmYjU4LCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGZiNDMsIDB4ZmI1NiwgMHhmYjQyLAotCTB4ZmI0ZSwgMHhmYjRkLCAweGYwM2MsIDB4ZjAzZSwgMHhmMjAwLCAweGYwMjAsIDB4ZjIwMCwgMHhmMjAwLAotCTB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYwMjMsIDB4ZjAyNCwgMHhmMDI1LCAKLQkweGYwNWUsIDB4ZjAyNiwgMHhmMDJhLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGY2MDIsIDB4ZjIwMCwgCi0JMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIAotCTB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAKLX07Ci0KLXVfc2hvcnQgYWx0Z3JfbWFwW05SX0tFWVNdPQotewotICBLSUdOT1JFICAgLEsoS0NuLDEyICksSyhLQ24sMTMgKSxLKEtDbiwxNCAgKSxLKEtDbiwxNSApLEsoS0NuLDE2ICksSyhLQ24sMTcgICksSyhLQ24sIDE4KSwKLSAgSyhLQ24sIDE5KSxLKEtDbiwyMCApLEsoS0NuLDIxICksSyhLQ24sMjIgICksSyhLQ24sMjMgKSxLSUdOT1JFICAgLEtSRUdTICAgICAgLEtJTlRSICAgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLKEtUbiwnQCcpLEtJR05PUkUgICAgLEsoS1RuLCckJyksS0lHTk9SRSAgICxLSUdOT1JFICAgICxLKEtUbiwneycpLAotICBLKEtUbiwnWycpLEsoS1RuLCddJyksSyhLVG4sJ30nKSxLKEtUbiwnXFwnKSxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsSyhLVGYsMjEgKSwKLSAgSyhLVGYsMjAgKSxLKEtUZiwyNCApLEtOVU1MSyAgICAsS1BBRF9EViAgICAsS1BBRF9NTCAgICxLUEFEX0hTICAgLEtJR05PUkUgICAgLEsoS1RsLCdxJyksCi0gIEsoS1RsLCd3JyksSyhLVGwsJ2UnKSxLKEtUbCwncicpLEsoS1RsLCd0JyApLEsoS1RsLCd5JyksSyhLVGwsJ3UnKSxLKEtUbCwnaScgKSxLKEtUbCwnbycpLAotICBLKEtUbCwncCcpLEtJR05PUkUgICAsSyhLVG4sJ34nKSxLSUdOT1JFICAgICxLKEtUZiwyMiApLEsoS1RmLDIzICksSyhLVGYsMjUgICksS1BBREJfNyAgICwKLSAgS1BBREJfOCAgICxLUEFEQl85ICAgLEtQQURfTUkgICAsS0NUUkwgICAgICAsSyhLQXMsMjAgKSxLKEtUbCwncycpLEsoS0FzLDIzICApLEsoS0FzLDI1ICksCi0gIEsoS1RsLCdnJyksSyhLVGwsJ2gnKSxLKEtUbCwnaicpLEsoS1RsLCdrJyApLEsoS1RsLCdsJyksS0lHTk9SRSAgICxLSUdOT1JFICAgICxLRU5URVIgICAgLAotICBLUEFEQl80ICAgLEtQQURCXzUgICAsS1BBREJfNiAgICxLUEFEX1BMICAgICxLU0hJRlQgICAgLEtJR05PUkUgICAsSyhLVGwsJ3onICksSyhLVGwsJ3gnKSwKLSAgSyhLQXMsMjIgKSxLKEtUbCwndicpLEsoS1RsLDIxICksSyhLVGwsJ24nICksSyhLVGwsJ20nKSxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtTSElGVCAgICAsSyhLVGMsS2N1KSxLUEFEQl8xICAgLEtQQURCXzIgICAgLEtQQURCXzMgICAsS0NBUFNMSyAgICxLQUxUICAgICAgICxLSUdOT1JFICAgLAotICBLQUxUR1IgICAgLEtDVFJMICAgICAsSyhLVGMsS2NsKSxLKEtUYyxLY2QgKSxLKEtUYyxLY3IpLEtQQURCXzAgICAsS1BBRF9EVCAgICAsS1BBRF9FTiAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLX07Ci0KLXVfc2hvcnQgY3RybF9tYXBbTlJfS0VZU109Ci17Ci0JMHhmNzAzLCAweGYyMDAsIDB4ZjIwMCwgMHhmNzAyLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDAxLCAweGYwMDIsCi0JMHhmMDA5LCAweGYwMDAsIDB4ZjAzMSwgMHhmMjAwLCAweGYyMDAsIDB4ZjA3ZiwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYwMWMsIDB4ZjcwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjExNiwgMHhmMDAwLCAweGYwMjAsCi0JMHhmMDE5LCAweGYwMTUsIDB4ZjAwOSwgMHhmMjAxLCAweGY3MDAsIDB4ZjYwMCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYwMDksIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjAxMSwgMHhmMDE3LCAweGYwMDUsCi0JMHhmMDEyLCAweGYwMGYsIDB4ZjAxMCwgMHhmMDFiLCAweGYyMDAsIDB4ZjAxZCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYwMWEsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwNywgMHhmMjAwLCAweGYyMDAsCi0JMHhmMDBiLCAweGYwMGMsIDB4ZjIwMCwgMHhmMDA3LCAweGYyMDAsIDB4ZjYwMywgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYwMDEsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjAwMSwgMHhmMDEzLCAweGYwMDYsCi0JMHhmMDA3LCAweGYwMDgsIDB4ZjAwYSwgMHhmMDdmLCAweGYyMDAsIDB4ZjYwMSwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYwMTgsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjAwMywgMHhmMDE2LCAweGYwMDIsCi0JMHhmMDBlLCAweGYwMGQsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjAwMCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjAxYiwgMHhmMDFjLCAweGYwMWQsIAotCTB4ZjAzNiwgMHhmMDM3LCAweGYwMzgsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjYwMiwgMHhmMjAwLCAKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgCi0JMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmNjAyLCAweGYyMDAsIAotfTsKLQotdV9zaG9ydCBzaGlmdF9jdHJsX21hcFtOUl9LRVlTXT0KLXsKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLRkxPUFBZICAgICxLSU5UUiAgICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsSyhLVG4sIDAgKSxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsSyhLVG4sMzEgICksS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEsoS1RmLDIxICksCi0gIEsoS1RmLDIwICksSyhLVGYsMjQgKSxLTlVNTEsgICAgLEtQQURfRFYgICAgLEtQQURfTUwgICAsS1BBRF9IUyAgICxLSUdOT1JFICAgICxLKEtUbiwxNyApLAotICBLKEtUbiwyMyApLEsoS1RuLCA1ICksSyhLVG4sMTggKSxLKEtUbiwyMCAgKSxLKEtUbiwyNSApLEsoS1RuLDIxICksSyhLVG4sIDkgICksSyhLVG4sMTUgKSwKLSAgSyhLVG4sMTYgKSxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsSyhLVGYsMjIgKSxLKEtUZiwyMyApLEsoS1RmLDI1ICApLEtQQURfNyAgICAsCi0gIEtQQURfOCAgICAsS1BBRF85ICAgICxLUEFEX01JICAgLEtDVFJMICAgICAgLEsoS1RuLCAxICksSyhLVG4sMTkgKSxLKEtUbiwgNCAgKSxLKEtUbiwgNiApLAotICBLKEtUbiwgNyApLEsoS1RuLCA4ICksSyhLVG4sMTAgKSxLKEtUbiwxMSAgKSxLKEtUbiwxMiApLEtJR05PUkUgICAsSyhLVG4sIDcgICksS0VOVEVSICAgICwKLSAgS1BBRF80ICAgICxLUEFEXzUgICAgLEtQQURfNiAgICAsS1BBRF9QTCAgICAsS1NISUZUICAgICxLSUdOT1JFICAgLEsoS1RuLDI2ICApLEsoS1RuLDI0ICksCi0gIEsoS1RuLCAzICksSyhLVG4sMjIgKSxLKEtUbiwgMiApLEsoS1RuLDE0ICApLEsoS1RuLDEzICksS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLU0hJRlQgICAgLEsoS1RjLEtjdSksS1BBRF8xICAgICxLUEFEXzIgICAgICxLUEFEXzMgICAgLEtDQVBTTEsgICAsS0FMVCAgICAgICAsSyhLVG4sIDAgKSwKLSAgS0FMVEdSICAgICxLQ1RSTCAgICAgLEsoS1RjLEtjbCksSyhLVGMsS2NkICksSyhLVGMsS2NyKSxLUEFEXzAgICAgLEtQQURfRFQgICAgLEtQQURfRU4gICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi19OwotCi11X3Nob3J0IGFsdF9tYXBbTlJfS0VZU109Ci17Ci0gIEsoS010LDI3ICksSyhLQ24sIDAgKSxLKEtDbiwgMSApLEsoS0NuLCAyICApLEsoS0NuLCAzICksSyhLQ24sIDQgKSxLKEtDbiwgNSAgKSxLKEtDbiwgNiApLAotICBLKEtDbiwgNyApLEsoS0NuLCA4ICksSyhLQ24sIDkgKSxLKEtDbiwxMCAgKSxLKEtDbiwxMSApLEtJR05PUkUgICAsS1NDUkxMSyAgICAsS0lOVFIgICAgICwKLSAgSyhLTXQsJ2AnKSxLKEtNdCwnMScpLEsoS010LCcyJyksSyhLTXQsJzMnICksSyhLTXQsJzQnKSxLKEtNdCwnNScpLEsoS010LCc2JyApLEsoS010LCc3JyksCi0gIEsoS010LCc4JyksSyhLTXQsJzknKSxLKEtNdCwnMCcpLEsoS010LCctJyApLEsoS010LCc9JyksSyhLTXQsJ6MnKSxLKEtNdCwxMjcgKSxLKEtUZiwyMSApLAotICBLKEtUZiwyMCApLEsoS1RmLDI0ICksS05VTUxLICAgICxLUEFEX0RWICAgICxLUEFEX01MICAgLEtQQURfSFMgICAsSyhLTXQsIDkgICksSyhLTXQsJ3EnKSwKLSAgSyhLTXQsJ3cnKSxLKEtNdCwnZScpLEsoS010LCdyJyksSyhLTXQsJ3QnICksSyhLTXQsJ3knKSxLKEtNdCwndScpLEsoS010LCdpJyApLEsoS010LCdvJyksCi0gIEsoS010LCdwJyksSyhLTXQsJ1snKSxLKEtNdCwnXScpLEsoS010LCdcXCcpLEsoS1RmLDIyICksSyhLVGYsMjMgKSxLKEtUZiwyNSAgKSxLUEFEQV83ICAgLAotICBLUEFEQV84ICAgLEtQQURBXzkgICAsS1BBRF9NSSAgICxLQ1RSTCAgICAgICxLKEtNdCwnYScpLEsoS010LCdzJyksSyhLTXQsJ2QnICksSyhLTXQsJ2YnKSwKLSAgSyhLTXQsJ2cnKSxLKEtNdCwnaCcpLEsoS010LCdqJyksSyhLTXQsJ2snICksSyhLTXQsJ2wnKSxLKEtNdCwnOycpLEsoS010LCdcJycpLEsoS010LDEzICksCi0gIEtQQURBXzQgICAsS1BBREFfNSAgICxLUEFEQV82ICAgLEtQQURfUEwgICAgLEtTSElGVCAgICAsS0lHTk9SRSAgICxLKEtNdCwneicgKSxLKEtNdCwneCcpLAotICBLKEtNdCwnYycpLEsoS010LCd2JyksSyhLTXQsJ2InKSxLKEtNdCwnbicgKSxLKEtNdCwnbScpLEsoS010LCcsJyksSyhLTXQsJy4nICksS0lHTk9SRSAgICwKLSAgS1NISUZUICAgICxLKEtUYyxLY3UpLEtQQURBXzEgICAsS1BBREFfMiAgICAsS1BBREFfMyAgICxLQ0FQU0xLICAgLEtBTFQgICAgICAgLEsoS010LCcgJyksCi0gIEtBTFRHUiAgICAsS0NUUkwgICAgICxDT05TX0RFQyAgLEsoS1RjLEtjZCApLENPTlNfSU5DICAsS1BBREFfMCAgICxLUEFEX0RUICAgICxLUEFEX0VOICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotfTsKLQotdV9zaG9ydCBjdHJsX2FsdF9tYXBbTlJfS0VZU109Ci17Ci0gIEtJR05PUkUgICAsSyhLQ24sIDAgKSxLKEtDbiwgMSApLEsoS0NuLCAyICApLEsoS0NuLCAzICksSyhLQ24sIDQgKSxLKEtDbiwgNSAgKSxLKEtDbiwgNiApLAotICBLKEtDbiwgNyApLEsoS0NuLCA4ICksSyhLQ24sIDkgKSxLKEtDbiwxMCAgKSxLKEtDbiwxMSApLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lOVFIgICAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLKEtUZiwyMSApLAotICBLKEtUZiwyMCApLEsoS1RmLDI0ICksS05VTUxLICAgICxLUEFEX0RWICAgICxLUEFEX01MICAgLEtQQURfSFMgICAsS0lHTk9SRSAgICAsSyhLTXQsMTcgKSwKLSAgSyhLTXQsMjMgKSxLKEtNdCwgNSApLEsoS010LDE4ICksSyhLTXQsMjAgICksSyhLTXQsMjUgKSxLKEtNdCwyMSApLEsoS010LCA5ICApLEsoS010LDE1ICksCi0gIEsoS010LDE2ICksS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtSRUJPT1QgICAsSyhLVGYsMjMgKSxLKEtUZiwyNSAgKSxLUEFEXzcgICAgLAotICBLUEFEXzggICAgLEtQQURfOSAgICAsS1BBRF9NSSAgICxLQ1RSTCAgICAgICxLKEtNdCwgMSApLEsoS010LDE5ICksSyhLTXQsIDQgICksSyhLTXQsIDYgKSwKLSAgSyhLTXQsIDcgKSxLKEtNdCwgOCApLEsoS010LDEwICksSyhLTXQsMTEgICksSyhLTXQsMTIgKSxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtFTlRFUiAgICAsCi0gIEtQQURfNCAgICAsS1BBRF81ICAgICxLUEFEXzYgICAgLEtQQURfUEwgICAgLEtTSElGVCAgICAsS0lHTk9SRSAgICxLKEtNdCwyNiAgKSxLKEtNdCwyNCApLAotICBLKEtNdCwgMyApLEsoS010LDIyICksSyhLTXQsIDIgKSxLKEtNdCwxNCAgKSxLKEtNdCwxMyApLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS1NISUZUICAgICxLKEtUYyxLY3UpLEtQQURfMSAgICAsS1BBRF8yICAgICAsS1BBRF8zICAgICxLQ0FQU0xLICAgLEtBTFQgICAgICAgLEtJR05PUkUgICAsCi0gIEtBTFRHUiAgICAsS0NUUkwgICAgICxLKEtUYyxLY2wpLEsoS1RjLEtjZCApLEsoS1RjLEtjciksS1BBRF8wICAgICxLUkVCT09UICAgICxLUEFEX0VOICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotfTsKLQotdXNob3J0ICprZXlfbWFwc1tNQVhfTlJfS0VZTUFQU10gPSB7Ci0JcGxhaW5fbWFwLCBzaGlmdF9tYXAsIGFsdGdyX21hcCwgMCwKLQljdHJsX21hcCwgc2hpZnRfY3RybF9tYXAsIDAsIDAsCi0JYWx0X21hcCwgMCwgMCwgMCwKLQljdHJsX2FsdF9tYXAsCTAKLX07Ci0KLXVuc2lnbmVkIGludCBrZXltYXBfY291bnQgPSA3OwotCi0vKgotICogUGhpbG9zb3BoeTogbW9zdCBwZW9wbGUgZG8gbm90IGRlZmluZSBtb3JlIHN0cmluZ3MsIGJ1dCB0aGV5IHdobyBkbwotICogb2Z0ZW4gd2FudCBxdWl0ZSBhIGxvdCBvZiBzdHJpbmcgc3BhY2UuIFNvLCB3ZSBzdGF0aWNhbGx5IGFsbG9jYXRlCi0gKiB0aGUgZGVmYXVsdCBhbmQgYWxsb2NhdGUgZHluYW1pY2FsbHkgaW4gY2h1bmtzIG9mIDUxMiBieXRlcy4KLSAqLwotCi1jaGFyIGZ1bmNfYnVmW10gPSB7Ci0JJ1wwMzMnLCAnWycsICdbJywgJ0EnLCAwLAotCSdcMDMzJywgJ1snLCAnWycsICdCJywgMCwKLQknXDAzMycsICdbJywgJ1snLCAnQycsIDAsCi0JJ1wwMzMnLCAnWycsICdbJywgJ0QnLCAwLAotCSdcMDMzJywgJ1snLCAnWycsICdFJywgMCwKLQknXDAzMycsICdbJywgJzEnLCAnNycsICd+JywgMCwKLQknXDAzMycsICdbJywgJzEnLCAnOCcsICd+JywgMCwKLQknXDAzMycsICdbJywgJzEnLCAnOScsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnMCcsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnMScsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnMycsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnNCcsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnNScsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnNicsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnOCcsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnOScsICd+JywgMCwKLQknXDAzMycsICdbJywgJzMnLCAnMScsICd+JywgMCwKLQknXDAzMycsICdbJywgJzMnLCAnMicsICd+JywgMCwKLQknXDAzMycsICdbJywgJzMnLCAnMycsICd+JywgMCwKLQknXDAzMycsICdbJywgJzMnLCAnNCcsICd+JywgMCwKLQknXDAzMycsICdbJywgJzEnLCAnficsIDAsCi0JJ1wwMzMnLCAnWycsICcyJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMycsICd+JywgMCwKLQknXDAzMycsICdbJywgJzQnLCAnficsIDAsCi0JJ1wwMzMnLCAnWycsICc1JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnNicsICd+JywgMCwKLQknXDAzMycsICdbJywgJ00nLCAwLAotCSdcMDMzJywgJ1snLCAnUCcsIDAsCi19OwotCi1jaGFyICpmdW5jYnVmcHRyID0gZnVuY19idWY7Ci1pbnQgZnVuY2J1ZnNpemUgPSBzaXplb2YoZnVuY19idWYpOwotaW50IGZ1bmNidWZsZWZ0ID0gMDsgICAgICAgICAgLyogc3BhY2UgbGVmdCAqLwotCi1jaGFyICpmdW5jX3RhYmxlW01BWF9OUl9GVU5DXSA9IHsKLQlmdW5jX2J1ZiArIDAsCi0JZnVuY19idWYgKyA1LAotCWZ1bmNfYnVmICsgMTAsCi0JZnVuY19idWYgKyAxNSwKLQlmdW5jX2J1ZiArIDIwLAotCWZ1bmNfYnVmICsgMjUsCi0JZnVuY19idWYgKyAzMSwKLQlmdW5jX2J1ZiArIDM3LAotCWZ1bmNfYnVmICsgNDMsCi0JZnVuY19idWYgKyA0OSwKLQlmdW5jX2J1ZiArIDU1LAotCWZ1bmNfYnVmICsgNjEsCi0JZnVuY19idWYgKyA2NywKLQlmdW5jX2J1ZiArIDczLAotCWZ1bmNfYnVmICsgNzksCi0JZnVuY19idWYgKyA4NSwKLQlmdW5jX2J1ZiArIDkxLAotCWZ1bmNfYnVmICsgOTcsCi0JZnVuY19idWYgKyAxMDMsCi0JZnVuY19idWYgKyAxMDksCi0JZnVuY19idWYgKyAxMTUsCi0JZnVuY19idWYgKyAxMjAsCi0JZnVuY19idWYgKyAxMjUsCi0JZnVuY19idWYgKyAxMzAsCi0JZnVuY19idWYgKyAxMzUsCi0JZnVuY19idWYgKyAxNDAsCi0JZnVuY19idWYgKyAxNDUsCi0JMCwKLQkwLAotCWZ1bmNfYnVmICsgMTQ5LAotCTAsCi19OwotCi1zdHJ1Y3Qga2JkaWFjcnVjIGFjY2VudF90YWJsZVtNQVhfRElBQ1JdID0gewotCXsnYCcsICdBJywgMDMwMH0sCXsnYCcsICdhJywgMDM0MH0sCi0JeydcJycsICdBJywgMDMwMX0sCXsnXCcnLCAnYScsIDAzNDF9LAotCXsnXicsICdBJywgMDMwMn0sCXsnXicsICdhJywgMDM0Mn0sCi0Jeyd+JywgJ0EnLCAwMzAzfSwJeyd+JywgJ2EnLCAwMzQzfSwKLQl7JyInLCAnQScsIDAzMDR9LAl7JyInLCAnYScsIDAzNDR9LAotCXsnTycsICdBJywgMDMwNX0sCXsnbycsICdhJywgMDM0NX0sCi0JeycwJywgJ0EnLCAwMzA1fSwJeycwJywgJ2EnLCAwMzQ1fSwKLQl7J0EnLCAnQScsIDAzMDV9LAl7J2EnLCAnYScsIDAzNDV9LAotCXsnQScsICdFJywgMDMwNn0sCXsnYScsICdlJywgMDM0Nn0sCi0JeycsJywgJ0MnLCAwMzA3fSwJeycsJywgJ2MnLCAwMzQ3fSwKLQl7J2AnLCAnRScsIDAzMTB9LAl7J2AnLCAnZScsIDAzNTB9LAotCXsnXCcnLCAnRScsIDAzMTF9LAl7J1wnJywgJ2UnLCAwMzUxfSwKLQl7J14nLCAnRScsIDAzMTJ9LAl7J14nLCAnZScsIDAzNTJ9LAotCXsnIicsICdFJywgMDMxM30sCXsnIicsICdlJywgMDM1M30sCi0JeydgJywgJ0knLCAwMzE0fSwJeydgJywgJ2knLCAwMzU0fSwKLQl7J1wnJywgJ0knLCAwMzE1fSwJeydcJycsICdpJywgMDM1NX0sCi0JeydeJywgJ0knLCAwMzE2fSwJeydeJywgJ2knLCAwMzU2fSwKLQl7JyInLCAnSScsIDAzMTd9LAl7JyInLCAnaScsIDAzNTd9LAotCXsnLScsICdEJywgMDMyMH0sCXsnLScsICdkJywgMDM2MH0sCi0Jeyd+JywgJ04nLCAwMzIxfSwJeyd+JywgJ24nLCAwMzYxfSwKLQl7J2AnLCAnTycsIDAzMjJ9LAl7J2AnLCAnbycsIDAzNjJ9LAotCXsnXCcnLCAnTycsIDAzMjN9LAl7J1wnJywgJ28nLCAwMzYzfSwKLQl7J14nLCAnTycsIDAzMjR9LAl7J14nLCAnbycsIDAzNjR9LAotCXsnficsICdPJywgMDMyNX0sCXsnficsICdvJywgMDM2NX0sCi0JeyciJywgJ08nLCAwMzI2fSwJeyciJywgJ28nLCAwMzY2fSwKLQl7Jy8nLCAnTycsIDAzMzB9LAl7Jy8nLCAnbycsIDAzNzB9LAotCXsnYCcsICdVJywgMDMzMX0sCXsnYCcsICd1JywgMDM3MX0sCi0JeydcJycsICdVJywgMDMzMn0sCXsnXCcnLCAndScsIDAzNzJ9LAotCXsnXicsICdVJywgMDMzM30sCXsnXicsICd1JywgMDM3M30sCi0JeyciJywgJ1UnLCAwMzM0fSwJeyciJywgJ3UnLCAwMzc0fSwKLQl7J1wnJywgJ1knLCAwMzM1fSwJeydcJycsICd5JywgMDM3NX0sCi0JeydUJywgJ0gnLCAwMzM2fSwJeyd0JywgJ2gnLCAwMzc2fSwKLQl7J3MnLCAncycsIDAzMzd9LAl7JyInLCAneScsIDAzNzd9LAotCXsncycsICd6JywgMDMzN30sCXsnaScsICdqJywgMDM3N30sCi19OwotCi11bnNpZ25lZCBpbnQgYWNjZW50X3RhYmxlX3NpemUgPSA2ODsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9LY29uZmlnIGIvZHJpdmVycy9hY3BpL0tjb25maWcKaW5kZXggYzUyZmNhOC4uYmJhODY3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL0tjb25maWcKKysrIGIvZHJpdmVycy9hY3BpL0tjb25maWcKQEAgLTQsOCArNCw2IEBACiAKIG1lbnVjb25maWcgQUNQSQogCWJvb2wgIkFDUEkgKEFkdmFuY2VkIENvbmZpZ3VyYXRpb24gYW5kIFBvd2VyIEludGVyZmFjZSkgU3VwcG9ydCIKLQlkZXBlbmRzIG9uICFYODZfTlVNQVEKLQlkZXBlbmRzIG9uICFYODZfVklTV1MKIAlkZXBlbmRzIG9uICFJQTY0X0hQX1NJTQogCWRlcGVuZHMgb24gSUE2NCB8fCBYODYKIAlkZXBlbmRzIG9uIFBDSQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2JheS5jIGIvZHJpdmVycy9hY3BpL2JheS5jCmluZGV4IDI2MDM4YzIuLjYxYjZjNWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9iYXkuYworKysgYi9kcml2ZXJzL2FjcGkvYmF5LmMKQEAgLTM3Nyw2ICszNzcsOSBAQAogCiAJSU5JVF9MSVNUX0hFQUQoJmRyaXZlX2JheXMpOwogCisJaWYgKGFjcGlfZGlzYWJsZWQpCisJCXJldHVybiAtRU5PREVWOworCiAJLyogbG9vayBmb3IgZG9ja2FibGUgZHJpdmUgYmF5cyAqLwogCWFjcGlfd2Fsa19uYW1lc3BhY2UoQUNQSV9UWVBFX0RFVklDRSwgQUNQSV9ST09UX09CSkVDVCwKIAkJQUNQSV9VSU5UMzJfTUFYLCBmaW5kX2JheSwgJmJheXMsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2RvY2suYyBiL2RyaXZlcnMvYWNwaS9kb2NrLmMKaW5kZXggOTZjNTQyZi4uYmI3YzUxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL2RvY2suYworKysgYi9kcml2ZXJzL2FjcGkvZG9jay5jCkBAIC05MTcsNiArOTE3LDkgQEAKIAogCWRvY2tfc3RhdGlvbiA9IE5VTEw7CiAKKwlpZiAoYWNwaV9kaXNhYmxlZCkKKwkJcmV0dXJuIDA7CisKIAkvKiBsb29rIGZvciBhIGRvY2sgc3RhdGlvbiAqLwogCWFjcGlfd2Fsa19uYW1lc3BhY2UoQUNQSV9UWVBFX0RFVklDRSwgQUNQSV9ST09UX09CSkVDVCwKIAkJCSAgICBBQ1BJX1VJTlQzMl9NQVgsIGZpbmRfZG9jaywgJm51bSwgTlVMTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvZ2x1ZS5jIGIvZHJpdmVycy9hY3BpL2dsdWUuYwppbmRleCAyODA4ZGM2Li45YjIyN2Q0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvZ2x1ZS5jCisrKyBiL2RyaXZlcnMvYWNwaS9nbHVlLmMKQEAgLTMzMyw2ICszMzMsOSBAQAogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGdldF9ydGNfZGV2KCk7CiAKKwlpZiAoYWNwaV9kaXNhYmxlZCkKKwkJcmV0dXJuIDA7CisKIAlpZiAoZGV2KSB7CiAJCXJ0Y193YWtlX3NldHVwKCk7CiAJCXJ0Y19pbmZvLndha2Vfb24gPSBydGNfd2FrZV9vbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9zbGVlcC9tYWluLmMgYi9kcml2ZXJzL2FjcGkvc2xlZXAvbWFpbi5jCmluZGV4IGMzYjBjZDguLjQ5NWM2M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9zbGVlcC9tYWluLmMKKysrIGIvZHJpdmVycy9hY3BpL3NsZWVwL21haW4uYwpAQCAtMzYsOSArMzYsOCBAQAogCQlpZiAoIWFjcGlfd2FrZXVwX2FkZHJlc3MpIHsKIAkJCXJldHVybiAtRUZBVUxUOwogCQl9Ci0JCWFjcGlfc2V0X2Zpcm13YXJlX3dha2luZ192ZWN0b3IoKGFjcGlfcGh5c2ljYWxfYWRkcmVzcykKLQkJCQkJCXZpcnRfdG9fcGh5cygodm9pZCAqKQotCQkJCQkJCSAgICAgYWNwaV93YWtldXBfYWRkcmVzcykpOworCQlhY3BpX3NldF9maXJtd2FyZV93YWtpbmdfdmVjdG9yKAorCQkJCShhY3BpX3BoeXNpY2FsX2FkZHJlc3MpYWNwaV93YWtldXBfYWRkcmVzcyk7CiAKIAl9CiAJQUNQSV9GTFVTSF9DUFVfQ0FDSEUoKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9zbGVlcC9wcm9jLmMgYi9kcml2ZXJzL2FjcGkvc2xlZXAvcHJvYy5jCmluZGV4IDIyNGM1N2MuLjRlYmJiYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9zbGVlcC9wcm9jLmMKKysrIGIvZHJpdmVycy9hY3BpL3NsZWVwL3Byb2MuYwpAQCAtMzE1LDggKzMxNSwxMSBAQAogCQljbW9zX2JjZF93cml0ZShkYXksIGFjcGlfZ2JsX0ZBRFQuZGF5X2FsYXJtLCBydGNfY29udHJvbCk7CiAJaWYgKGFjcGlfZ2JsX0ZBRFQubW9udGhfYWxhcm0pCiAJCWNtb3NfYmNkX3dyaXRlKG1vLCBhY3BpX2dibF9GQURULm1vbnRoX2FsYXJtLCBydGNfY29udHJvbCk7Ci0JaWYgKGFjcGlfZ2JsX0ZBRFQuY2VudHVyeSkKKwlpZiAoYWNwaV9nYmxfRkFEVC5jZW50dXJ5KSB7CisJCWlmIChhZGp1c3QpCisJCQl5ciArPSBjbW9zX2JjZF9yZWFkKGFjcGlfZ2JsX0ZBRFQuY2VudHVyeSwgcnRjX2NvbnRyb2wpICogMTAwOwogCQljbW9zX2JjZF93cml0ZSh5ciAvIDEwMCwgYWNwaV9nYmxfRkFEVC5jZW50dXJ5LCBydGNfY29udHJvbCk7CisJfQogCS8qIGVuYWJsZSB0aGUgcnRjIGFsYXJtIGludGVycnVwdCAqLwogCXJ0Y19jb250cm9sIHw9IFJUQ19BSUU7CiAJQ01PU19XUklURShydGNfY29udHJvbCwgUlRDX0NPTlRST0wpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvYWhjaS5jIGIvZHJpdmVycy9hdGEvYWhjaS5jCmluZGV4IDZhNGEyYTIuLmRjNzU5NmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2FoY2kuYworKysgYi9kcml2ZXJzL2F0YS9haGNpLmMKQEAgLTU2LDYgKzU2LDEyIEBACiBzdGF0aWMgaW50IGFoY2lfZW5hYmxlX2FscG0oc3RydWN0IGF0YV9wb3J0ICphcCwKIAkJZW51bSBsaW5rX3BtIHBvbGljeSk7CiBzdGF0aWMgdm9pZCBhaGNpX2Rpc2FibGVfYWxwbShzdHJ1Y3QgYXRhX3BvcnQgKmFwKTsKK3N0YXRpYyBzc2l6ZV90IGFoY2lfbGVkX3Nob3coc3RydWN0IGF0YV9wb3J0ICphcCwgY2hhciAqYnVmKTsKK3N0YXRpYyBzc2l6ZV90IGFoY2lfbGVkX3N0b3JlKHN0cnVjdCBhdGFfcG9ydCAqYXAsIGNvbnN0IGNoYXIgKmJ1ZiwKKwkJCSAgICAgIHNpemVfdCBzaXplKTsKK3N0YXRpYyBzc2l6ZV90IGFoY2lfdHJhbnNtaXRfbGVkX21lc3NhZ2Uoc3RydWN0IGF0YV9wb3J0ICphcCwgdTMyIHN0YXRlLAorCQkJCQlzc2l6ZV90IHNpemUpOworI2RlZmluZSBNQVhfU0xPVFMgOAogCiBlbnVtIHsKIAlBSENJX1BDSV9CQVIJCT0gNSwKQEAgLTk4LDYgKzEwNCw4IEBACiAJSE9TVF9JUlFfU1RBVAkJPSAweDA4LCAvKiBpbnRlcnJ1cHQgc3RhdHVzICovCiAJSE9TVF9QT1JUU19JTVBMCQk9IDB4MGMsIC8qIGJpdG1hcCBvZiBpbXBsZW1lbnRlZCBwb3J0cyAqLwogCUhPU1RfVkVSU0lPTgkJPSAweDEwLCAvKiBBSENJIHNwZWMuIHZlcnNpb24gY29tcGxpYW5jeSAqLworCUhPU1RfRU1fTE9DCQk9IDB4MWMsIC8qIEVuY2xvc3VyZSBNYW5hZ2VtZW50IGxvY2F0aW9uICovCisJSE9TVF9FTV9DVEwJCT0gMHgyMCwgLyogRW5jbG9zdXJlIE1hbmFnZW1lbnQgQ29udHJvbCAqLwogCiAJLyogSE9TVF9DVEwgYml0cyAqLwogCUhPU1RfUkVTRVQJCT0gKDEgPDwgMCksICAvKiByZXNldCBjb250cm9sbGVyOyBzZWxmLWNsZWFyICovCkBAIC0xMDUsNiArMTEzLDcgQEAKIAlIT1NUX0FIQ0lfRU4JCT0gKDEgPDwgMzEpLCAvKiBBSENJIGVuYWJsZWQgKi8KIAogCS8qIEhPU1RfQ0FQIGJpdHMgKi8KKwlIT1NUX0NBUF9FTVMJCT0gKDEgPDwgNiksICAvKiBFbmNsb3N1cmUgTWFuYWdlbWVudCBzdXBwb3J0ICovCiAJSE9TVF9DQVBfU1NDCQk9ICgxIDw8IDE0KSwgLyogU2x1bWJlciBjYXBhYmxlICovCiAJSE9TVF9DQVBfUE1QCQk9ICgxIDw8IDE3KSwgLyogUG9ydCBNdWx0aXBsaWVyIHN1cHBvcnQgKi8KIAlIT1NUX0NBUF9DTE8JCT0gKDEgPDwgMjQpLCAvKiBDb21tYW5kIExpc3QgT3ZlcnJpZGUgc3VwcG9ydCAqLwpAQCAtMjAyLDYgKzIxMSwxMSBAQAogCQkJCQkgIEFUQV9GTEFHX0lQTSwKIAogCUlDSF9NQVAJCQkJPSAweDkwLCAvKiBJQ0ggTUFQIHJlZ2lzdGVyICovCisKKwkvKiBlbV9jdGwgYml0cyAqLworCUVNX0NUTF9SU1QJCQk9ICgxIDw8IDkpLCAvKiBSZXNldCAqLworCUVNX0NUTF9UTQkJCT0gKDEgPDwgOCksIC8qIFRyYW5zbWl0IE1lc3NhZ2UgKi8KKwlFTV9DVExfQUxIRAkJCT0gKDEgPDwgMjYpLCAvKiBBY3Rpdml0eSBMRUQgKi8KIH07CiAKIHN0cnVjdCBhaGNpX2NtZF9oZHIgewpAQCAtMjE5LDEyICsyMzMsMjEgQEAKIAlfX2xlMzIJCQlmbGFnc19zaXplOwogfTsKIAorc3RydWN0IGFoY2lfZW1fcHJpdiB7CisJZW51bSBzd19hY3Rpdml0eSBibGlua19wb2xpY3k7CisJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CisJdW5zaWduZWQgbG9uZyBzYXZlZF9hY3Rpdml0eTsKKwl1bnNpZ25lZCBsb25nIGFjdGl2aXR5OworCXVuc2lnbmVkIGxvbmcgbGVkX3N0YXRlOworfTsKKwogc3RydWN0IGFoY2lfaG9zdF9wcml2IHsKIAl1bnNpZ25lZCBpbnQJCWZsYWdzOwkJLyogQUhDSV9IRkxBR18qICovCiAJdTMyCQkJY2FwOwkJLyogY2FwIHRvIHVzZSAqLwogCXUzMgkJCXBvcnRfbWFwOwkvKiBwb3J0IG1hcCB0byB1c2UgKi8KIAl1MzIJCQlzYXZlZF9jYXA7CS8qIHNhdmVkIGluaXRpYWwgY2FwICovCiAJdTMyCQkJc2F2ZWRfcG9ydF9tYXA7CS8qIHNhdmVkIGluaXRpYWwgcG9ydF9tYXAgKi8KKwl1MzIgCQkJZW1fbG9jOyAvKiBlbmNsb3N1cmUgbWFuYWdlbWVudCBsb2NhdGlvbiAqLwogfTsKIAogc3RydWN0IGFoY2lfcG9ydF9wcml2IHsKQEAgLTI0MCw2ICsyNjMsOCBAQAogCXVuc2lnbmVkIGludAkJbmNxX3Nhd19kbWFzOjE7CiAJdW5zaWduZWQgaW50CQluY3Ffc2F3X3NkYjoxOwogCXUzMiAJCQlpbnRyX21hc2s7CS8qIGludGVycnVwdHMgdG8gZW5hYmxlICovCisJc3RydWN0IGFoY2lfZW1fcHJpdgllbV9wcml2W01BWF9TTE9UU107LyogZW5jbG9zdXJlIG1hbmFnZW1lbnQgaW5mbworCQkJCQkgCSAqIHBlciBQTSBzbG90ICovCiB9OwogCiBzdGF0aWMgaW50IGFoY2lfc2NyX3JlYWQoc3RydWN0IGF0YV9wb3J0ICphcCwgdW5zaWduZWQgaW50IHNjX3JlZywgdTMyICp2YWwpOwpAQCAtMjc3LDkgKzMwMiwyMCBAQAogc3RhdGljIGludCBhaGNpX3BjaV9kZXZpY2Vfc3VzcGVuZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgcG1fbWVzc2FnZV90IG1lc2cpOwogc3RhdGljIGludCBhaGNpX3BjaV9kZXZpY2VfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKICNlbmRpZgorc3RhdGljIHNzaXplX3QgYWhjaV9hY3Rpdml0eV9zaG93KHN0cnVjdCBhdGFfZGV2aWNlICpkZXYsIGNoYXIgKmJ1Zik7CitzdGF0aWMgc3NpemVfdCBhaGNpX2FjdGl2aXR5X3N0b3JlKHN0cnVjdCBhdGFfZGV2aWNlICpkZXYsCisJCQkJICAgZW51bSBzd19hY3Rpdml0eSB2YWwpOworc3RhdGljIHZvaWQgYWhjaV9pbml0X3N3X2FjdGl2aXR5KHN0cnVjdCBhdGFfbGluayAqbGluayk7CiAKIHN0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYWhjaV9zaG9zdF9hdHRyc1tdID0gewogCSZkZXZfYXR0cl9saW5rX3Bvd2VyX21hbmFnZW1lbnRfcG9saWN5LAorCSZkZXZfYXR0cl9lbV9tZXNzYWdlX3R5cGUsCisJJmRldl9hdHRyX2VtX21lc3NhZ2UsCisJTlVMTAorfTsKKworc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphaGNpX3NkZXZfYXR0cnNbXSA9IHsKKwkmZGV2X2F0dHJfc3dfYWN0aXZpdHksCiAJTlVMTAogfTsKIApAQCAtMjg5LDYgKzMyNSw3IEBACiAJLnNnX3RhYmxlc2l6ZQkJPSBBSENJX01BWF9TRywKIAkuZG1hX2JvdW5kYXJ5CQk9IEFIQ0lfRE1BX0JPVU5EQVJZLAogCS5zaG9zdF9hdHRycwkJPSBhaGNpX3Nob3N0X2F0dHJzLAorCS5zZGV2X2F0dHJzCQk9IGFoY2lfc2Rldl9hdHRycywKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgYXRhX3BvcnRfb3BlcmF0aW9ucyBhaGNpX29wcyA9IHsKQEAgLTMxNiw2ICszNTMsMTAgQEAKIAogCS5lbmFibGVfcG0JCT0gYWhjaV9lbmFibGVfYWxwbSwKIAkuZGlzYWJsZV9wbQkJPSBhaGNpX2Rpc2FibGVfYWxwbSwKKwkuZW1fc2hvdwkJPSBhaGNpX2xlZF9zaG93LAorCS5lbV9zdG9yZQkJPSBhaGNpX2xlZF9zdG9yZSwKKwkuc3dfYWN0aXZpdHlfc2hvdwk9IGFoY2lfYWN0aXZpdHlfc2hvdywKKwkuc3dfYWN0aXZpdHlfc3RvcmUJPSBhaGNpX2FjdGl2aXR5X3N0b3JlLAogI2lmZGVmIENPTkZJR19QTQogCS5wb3J0X3N1c3BlbmQJCT0gYWhjaV9wb3J0X3N1c3BlbmQsCiAJLnBvcnRfcmVzdW1lCQk9IGFoY2lfcG9ydF9yZXN1bWUsCkBAIC01NjEsNiArNjAyLDExIEBACiAjZW5kaWYKIH07CiAKK3N0YXRpYyBpbnQgYWhjaV9lbV9tZXNzYWdlcyA9IDE7Cittb2R1bGVfcGFyYW0oYWhjaV9lbV9tZXNzYWdlcywgaW50LCAwNDQ0KTsKKy8qIGFkZCBvdGhlciBMRUQgcHJvdG9jb2wgdHlwZXMgd2hlbiB0aGV5IGJlY29tZSBzdXBwb3J0ZWQgKi8KK01PRFVMRV9QQVJNX0RFU0MoYWhjaV9lbV9tZXNzYWdlcywKKwkiU2V0IEFIQ0kgRW5jbG9zdXJlIE1hbmFnZW1lbnQgTWVzc2FnZSB0eXBlICgwID0gZGlzYWJsZWQsIDEgPSBMRUQiKTsKIAogc3RhdGljIGlubGluZSBpbnQgYWhjaV9ucl9wb3J0cyh1MzIgY2FwKQogewpAQCAtMTAzMSwxMSArMTA3NywyOCBAQAogCiBzdGF0aWMgdm9pZCBhaGNpX3N0YXJ0X3BvcnQoc3RydWN0IGF0YV9wb3J0ICphcCkKIHsKKwlzdHJ1Y3QgYWhjaV9wb3J0X3ByaXYgKnBwID0gYXAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgYXRhX2xpbmsgKmxpbms7CisJc3RydWN0IGFoY2lfZW1fcHJpdiAqZW1wOworCiAJLyogZW5hYmxlIEZJUyByZWNlcHRpb24gKi8KIAlhaGNpX3N0YXJ0X2Zpc19yeChhcCk7CiAKIAkvKiBlbmFibGUgRE1BICovCiAJYWhjaV9zdGFydF9lbmdpbmUoYXApOworCisJLyogdHVybiBvbiBMRURzICovCisJaWYgKGFwLT5mbGFncyAmIEFUQV9GTEFHX0VNKSB7CisJCWF0YV9wb3J0X2Zvcl9lYWNoX2xpbmsobGluaywgYXApIHsKKwkJCWVtcCA9ICZwcC0+ZW1fcHJpdltsaW5rLT5wbXBdOworCQkJYWhjaV90cmFuc21pdF9sZWRfbWVzc2FnZShhcCwgZW1wLT5sZWRfc3RhdGUsIDQpOworCQl9CisJfQorCisJaWYgKGFwLT5mbGFncyAmIEFUQV9GTEFHX1NXX0FDVElWSVRZKQorCQlhdGFfcG9ydF9mb3JfZWFjaF9saW5rKGxpbmssIGFwKQorCQkJYWhjaV9pbml0X3N3X2FjdGl2aXR5KGxpbmspOworCiB9CiAKIHN0YXRpYyBpbnQgYWhjaV9kZWluaXRfcG9ydChzdHJ1Y3QgYXRhX3BvcnQgKmFwLCBjb25zdCBjaGFyICoqZW1zZykKQEAgLTEwNzksMTIgKzExNDIsMTUgQEAKIAkJCXJlYWRsKG1taW8gKyBIT1NUX0NUTCk7IC8qIGZsdXNoICovCiAJCX0KIAotCQkvKiByZXNldCBtdXN0IGNvbXBsZXRlIHdpdGhpbiAxIHNlY29uZCwgb3IKKwkJLyoKKwkJICogdG8gcGVyZm9ybSBob3N0IHJlc2V0LCBPUyBzaG91bGQgc2V0IEhPU1RfUkVTRVQKKwkJICogYW5kIHBvbGwgdW50aWwgdGhpcyBiaXQgaXMgcmVhZCB0byBiZSAiMCIuCisJCSAqIHJlc2V0IG11c3QgY29tcGxldGUgd2l0aGluIDEgc2Vjb25kLCBvcgogCQkgKiB0aGUgaGFyZHdhcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZnJpZWQuCiAJCSAqLwotCQlzc2xlZXAoMSk7CisJCXRtcCA9IGF0YV93YWl0X3JlZ2lzdGVyKG1taW8gKyBIT1NUX0NUTCwgSE9TVF9SRVNFVCwKKwkJCQkJSE9TVF9SRVNFVCwgMTAsIDEwMDApOwogCi0JCXRtcCA9IHJlYWRsKG1taW8gKyBIT1NUX0NUTCk7CiAJCWlmICh0bXAgJiBIT1NUX1JFU0VUKSB7CiAJCQlkZXZfcHJpbnRrKEtFUk5fRVJSLCBob3N0LT5kZXYsCiAJCQkJICAgImNvbnRyb2xsZXIgcmVzZXQgZmFpbGVkICgweCV4KVxuIiwgdG1wKTsKQEAgLTExMTYsNiArMTE4MiwyMzAgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgYWhjaV9zd19hY3Rpdml0eShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmspCit7CisJc3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstPmFwOworCXN0cnVjdCBhaGNpX3BvcnRfcHJpdiAqcHAgPSBhcC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhaGNpX2VtX3ByaXYgKmVtcCA9ICZwcC0+ZW1fcHJpdltsaW5rLT5wbXBdOworCisJaWYgKCEobGluay0+ZmxhZ3MgJiBBVEFfTEZMQUdfU1dfQUNUSVZJVFkpKQorCQlyZXR1cm47CisKKwllbXAtPmFjdGl2aXR5Kys7CisJaWYgKCF0aW1lcl9wZW5kaW5nKCZlbXAtPnRpbWVyKSkKKwkJbW9kX3RpbWVyKCZlbXAtPnRpbWVyLCBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMCkpOworfQorCitzdGF0aWMgdm9pZCBhaGNpX3N3X2FjdGl2aXR5X2JsaW5rKHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXN0cnVjdCBhdGFfbGluayAqbGluayA9IChzdHJ1Y3QgYXRhX2xpbmsgKilhcmc7CisJc3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstPmFwOworCXN0cnVjdCBhaGNpX3BvcnRfcHJpdiAqcHAgPSBhcC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhaGNpX2VtX3ByaXYgKmVtcCA9ICZwcC0+ZW1fcHJpdltsaW5rLT5wbXBdOworCXVuc2lnbmVkIGxvbmcgbGVkX21lc3NhZ2UgPSBlbXAtPmxlZF9zdGF0ZTsKKwl1MzIgYWN0aXZpdHlfbGVkX3N0YXRlOworCisJbGVkX21lc3NhZ2UgJj0gMHhmZmZmMDAwMDsKKwlsZWRfbWVzc2FnZSB8PSBhcC0+cG9ydF9ubyB8IChsaW5rLT5wbXAgPDwgOCk7CisKKwkvKiBjaGVjayB0byBzZWUgaWYgd2UndmUgaGFkIGFjdGl2aXR5LiAgSWYgc28sCisJICogdG9nZ2xlIHN0YXRlIG9mIExFRCBhbmQgcmVzZXQgdGltZXIuICBJZiBub3QsCisJICogdHVybiBMRUQgdG8gZGVzaXJlZCBpZGxlIHN0YXRlLgorCSAqLworCWlmIChlbXAtPnNhdmVkX2FjdGl2aXR5ICE9IGVtcC0+YWN0aXZpdHkpIHsKKwkJZW1wLT5zYXZlZF9hY3Rpdml0eSA9IGVtcC0+YWN0aXZpdHk7CisJCS8qIGdldCB0aGUgY3VycmVudCBMRUQgc3RhdGUgKi8KKwkJYWN0aXZpdHlfbGVkX3N0YXRlID0gbGVkX21lc3NhZ2UgJiAweDAwMDEwMDAwOworCisJCWlmIChhY3Rpdml0eV9sZWRfc3RhdGUpCisJCQlhY3Rpdml0eV9sZWRfc3RhdGUgPSAwOworCQllbHNlCisJCQlhY3Rpdml0eV9sZWRfc3RhdGUgPSAxOworCisJCS8qIGNsZWFyIG9sZCBzdGF0ZSAqLworCQlsZWRfbWVzc2FnZSAmPSAweGZmZjhmZmZmOworCisJCS8qIHRvZ2dsZSBzdGF0ZSAqLworCQlsZWRfbWVzc2FnZSB8PSAoYWN0aXZpdHlfbGVkX3N0YXRlIDw8IDE2KTsKKwkJbW9kX3RpbWVyKCZlbXAtPnRpbWVyLCBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMDApKTsKKwl9IGVsc2UgeworCQkvKiBzd2l0Y2ggdG8gaWRsZSAqLworCQlsZWRfbWVzc2FnZSAmPSAweGZmZjhmZmZmOworCQlpZiAoZW1wLT5ibGlua19wb2xpY3kgPT0gQkxJTktfT0ZGKQorCQkJbGVkX21lc3NhZ2UgfD0gKDEgPDwgMTYpOworCX0KKwlhaGNpX3RyYW5zbWl0X2xlZF9tZXNzYWdlKGFwLCBsZWRfbWVzc2FnZSwgNCk7Cit9CisKK3N0YXRpYyB2b2lkIGFoY2lfaW5pdF9zd19hY3Rpdml0eShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmspCit7CisJc3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstPmFwOworCXN0cnVjdCBhaGNpX3BvcnRfcHJpdiAqcHAgPSBhcC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhaGNpX2VtX3ByaXYgKmVtcCA9ICZwcC0+ZW1fcHJpdltsaW5rLT5wbXBdOworCisJLyogaW5pdCBhY3Rpdml0eSBzdGF0cywgc2V0dXAgdGltZXIgKi8KKwllbXAtPnNhdmVkX2FjdGl2aXR5ID0gZW1wLT5hY3Rpdml0eSA9IDA7CisJc2V0dXBfdGltZXIoJmVtcC0+dGltZXIsIGFoY2lfc3dfYWN0aXZpdHlfYmxpbmssICh1bnNpZ25lZCBsb25nKWxpbmspOworCisJLyogY2hlY2sgb3VyIGJsaW5rIHBvbGljeSBhbmQgc2V0IGZsYWcgZm9yIGxpbmsgaWYgaXQncyBlbmFibGVkICovCisJaWYgKGVtcC0+YmxpbmtfcG9saWN5KQorCQlsaW5rLT5mbGFncyB8PSBBVEFfTEZMQUdfU1dfQUNUSVZJVFk7Cit9CisKK3N0YXRpYyBpbnQgYWhjaV9yZXNldF9lbShzdHJ1Y3QgYXRhX2hvc3QgKmhvc3QpCit7CisJdm9pZCBfX2lvbWVtICptbWlvID0gaG9zdC0+aW9tYXBbQUhDSV9QQ0lfQkFSXTsKKwl1MzIgZW1fY3RsOworCisJZW1fY3RsID0gcmVhZGwobW1pbyArIEhPU1RfRU1fQ1RMKTsKKwlpZiAoKGVtX2N0bCAmIEVNX0NUTF9UTSkgfHwgKGVtX2N0bCAmIEVNX0NUTF9SU1QpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXdyaXRlbChlbV9jdGwgfCBFTV9DVExfUlNULCBtbWlvICsgSE9TVF9FTV9DVEwpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3NpemVfdCBhaGNpX3RyYW5zbWl0X2xlZF9tZXNzYWdlKHN0cnVjdCBhdGFfcG9ydCAqYXAsIHUzMiBzdGF0ZSwKKwkJCQkJc3NpemVfdCBzaXplKQoreworCXN0cnVjdCBhaGNpX2hvc3RfcHJpdiAqaHByaXYgPSBhcC0+aG9zdC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhaGNpX3BvcnRfcHJpdiAqcHAgPSBhcC0+cHJpdmF0ZV9kYXRhOworCXZvaWQgX19pb21lbSAqbW1pbyA9IGFwLT5ob3N0LT5pb21hcFtBSENJX1BDSV9CQVJdOworCXUzMiBlbV9jdGw7CisJdTMyIG1lc3NhZ2VbXSA9IHswLCAwfTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7CisJaW50IHBtcDsKKwlzdHJ1Y3QgYWhjaV9lbV9wcml2ICplbXA7CisKKwkvKiBnZXQgdGhlIHNsb3QgbnVtYmVyIGZyb20gdGhlIG1lc3NhZ2UgKi8KKwlwbXAgPSAoc3RhdGUgJiAweDAwMDBmZjAwKSA+PiA4OworCWlmIChwbXAgPCBNQVhfU0xPVFMpCisJCWVtcCA9ICZwcC0+ZW1fcHJpdltwbXBdOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlzcGluX2xvY2tfaXJxc2F2ZShhcC0+bG9jaywgZmxhZ3MpOworCisJLyoKKwkgKiBpZiB3ZSBhcmUgc3RpbGwgYnVzeSB0cmFuc21pdHRpbmcgYSBwcmV2aW91cyBtZXNzYWdlLAorCSAqIGRvIG5vdCBhbGxvdworCSAqLworCWVtX2N0bCA9IHJlYWRsKG1taW8gKyBIT1NUX0VNX0NUTCk7CisJaWYgKGVtX2N0bCAmIEVNX0NUTF9UTSkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGFwLT5sb2NrLCBmbGFncyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qCisJICogY3JlYXRlIG1lc3NhZ2UgaGVhZGVyIC0gdGhpcyBpcyBhbGwgemVybyBleGNlcHQgZm9yCisJICogdGhlIG1lc3NhZ2Ugc2l6ZSwgd2hpY2ggaXMgNCBieXRlcy4KKwkgKi8KKwltZXNzYWdlWzBdIHw9ICg0IDw8IDgpOworCisJLyogaWdub3JlIDA6NCBvZiBieXRlIHplcm8sIGZpbGwgaW4gcG9ydCBpbmZvIHlvdXJzZWxmICovCisJbWVzc2FnZVsxXSA9ICgoc3RhdGUgJiAweGZmZmZmZmYwKSB8IGFwLT5wb3J0X25vKTsKKworCS8qIHdyaXRlIG1lc3NhZ2UgdG8gRU1fTE9DICovCisJd3JpdGVsKG1lc3NhZ2VbMF0sIG1taW8gKyBocHJpdi0+ZW1fbG9jKTsKKwl3cml0ZWwobWVzc2FnZVsxXSwgbW1pbyArIGhwcml2LT5lbV9sb2MrNCk7CisKKwkvKiBzYXZlIG9mZiBuZXcgbGVkIHN0YXRlIGZvciBwb3J0L3Nsb3QgKi8KKwllbXAtPmxlZF9zdGF0ZSA9IG1lc3NhZ2VbMV07CisKKwkvKgorCSAqIHRlbGwgaGFyZHdhcmUgdG8gdHJhbnNtaXQgdGhlIG1lc3NhZ2UKKwkgKi8KKwl3cml0ZWwoZW1fY3RsIHwgRU1fQ1RMX1RNLCBtbWlvICsgSE9TVF9FTV9DVEwpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShhcC0+bG9jaywgZmxhZ3MpOworCXJldHVybiBzaXplOworfQorCitzdGF0aWMgc3NpemVfdCBhaGNpX2xlZF9zaG93KHN0cnVjdCBhdGFfcG9ydCAqYXAsIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgYWhjaV9wb3J0X3ByaXYgKnBwID0gYXAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgYXRhX2xpbmsgKmxpbms7CisJc3RydWN0IGFoY2lfZW1fcHJpdiAqZW1wOworCWludCByYyA9IDA7CisKKwlhdGFfcG9ydF9mb3JfZWFjaF9saW5rKGxpbmssIGFwKSB7CisJCWVtcCA9ICZwcC0+ZW1fcHJpdltsaW5rLT5wbXBdOworCQlyYyArPSBzcHJpbnRmKGJ1ZiwgIiVseFxuIiwgZW1wLT5sZWRfc3RhdGUpOworCX0KKwlyZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGFoY2lfbGVkX3N0b3JlKHN0cnVjdCBhdGFfcG9ydCAqYXAsIGNvbnN0IGNoYXIgKmJ1ZiwKKwkJCQlzaXplX3Qgc2l6ZSkKK3sKKwlpbnQgc3RhdGU7CisJaW50IHBtcDsKKwlzdHJ1Y3QgYWhjaV9wb3J0X3ByaXYgKnBwID0gYXAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgYWhjaV9lbV9wcml2ICplbXA7CisKKwlzdGF0ZSA9IHNpbXBsZV9zdHJ0b3VsKGJ1ZiwgTlVMTCwgMCk7CisKKwkvKiBnZXQgdGhlIHNsb3QgbnVtYmVyIGZyb20gdGhlIG1lc3NhZ2UgKi8KKwlwbXAgPSAoc3RhdGUgJiAweDAwMDBmZjAwKSA+PiA4OworCWlmIChwbXAgPCBNQVhfU0xPVFMpCisJCWVtcCA9ICZwcC0+ZW1fcHJpdltwbXBdOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBtYXNrIG9mZiB0aGUgYWN0aXZpdHkgYml0cyBpZiB3ZSBhcmUgaW4gc3dfYWN0aXZpdHkKKwkgKiBtb2RlLCB1c2VyIHNob3VsZCB0dXJuIG9mZiBzd19hY3Rpdml0eSBiZWZvcmUgc2V0dGluZworCSAqIGFjdGl2aXR5IGxlZCB0aHJvdWdoIGVtX21lc3NhZ2UKKwkgKi8KKwlpZiAoZW1wLT5ibGlua19wb2xpY3kpCisJCXN0YXRlICY9IDB4ZmZmOGZmZmY7CisKKwlyZXR1cm4gYWhjaV90cmFuc21pdF9sZWRfbWVzc2FnZShhcCwgc3RhdGUsIHNpemUpOworfQorCitzdGF0aWMgc3NpemVfdCBhaGNpX2FjdGl2aXR5X3N0b3JlKHN0cnVjdCBhdGFfZGV2aWNlICpkZXYsIGVudW0gc3dfYWN0aXZpdHkgdmFsKQoreworCXN0cnVjdCBhdGFfbGluayAqbGluayA9IGRldi0+bGluazsKKwlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gbGluay0+YXA7CisJc3RydWN0IGFoY2lfcG9ydF9wcml2ICpwcCA9IGFwLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGFoY2lfZW1fcHJpdiAqZW1wID0gJnBwLT5lbV9wcml2W2xpbmstPnBtcF07CisJdTMyIHBvcnRfbGVkX3N0YXRlID0gZW1wLT5sZWRfc3RhdGU7CisKKwkvKiBzYXZlIHRoZSBkZXNpcmVkIEFjdGl2aXR5IExFRCBiZWhhdmlvciAqLworCWlmICh2YWwgPT0gT0ZGKSB7CisJCS8qIGNsZWFyIExGTEFHICovCisJCWxpbmstPmZsYWdzICY9IH4oQVRBX0xGTEFHX1NXX0FDVElWSVRZKTsKKworCQkvKiBzZXQgdGhlIExFRCB0byBPRkYgKi8KKwkJcG9ydF9sZWRfc3RhdGUgJj0gMHhmZmY4MDAwMDsKKwkJcG9ydF9sZWRfc3RhdGUgfD0gKGFwLT5wb3J0X25vIHwgKGxpbmstPnBtcCA8PCA4KSk7CisJCWFoY2lfdHJhbnNtaXRfbGVkX21lc3NhZ2UoYXAsIHBvcnRfbGVkX3N0YXRlLCA0KTsKKwl9IGVsc2UgeworCQlsaW5rLT5mbGFncyB8PSBBVEFfTEZMQUdfU1dfQUNUSVZJVFk7CisJCWlmICh2YWwgPT0gQkxJTktfT0ZGKSB7CisJCQkvKiBzZXQgTEVEIHRvIE9OIGZvciBpZGxlICovCisJCQlwb3J0X2xlZF9zdGF0ZSAmPSAweGZmZjgwMDAwOworCQkJcG9ydF9sZWRfc3RhdGUgfD0gKGFwLT5wb3J0X25vIHwgKGxpbmstPnBtcCA8PCA4KSk7CisJCQlwb3J0X2xlZF9zdGF0ZSB8PSAweDAwMDEwMDAwOyAvKiBjaGVjayB0aGlzICovCisJCQlhaGNpX3RyYW5zbWl0X2xlZF9tZXNzYWdlKGFwLCBwb3J0X2xlZF9zdGF0ZSwgNCk7CisJCX0KKwl9CisJZW1wLT5ibGlua19wb2xpY3kgPSB2YWw7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGFoY2lfYWN0aXZpdHlfc2hvdyhzdHJ1Y3QgYXRhX2RldmljZSAqZGV2LCBjaGFyICpidWYpCit7CisJc3RydWN0IGF0YV9saW5rICpsaW5rID0gZGV2LT5saW5rOworCXN0cnVjdCBhdGFfcG9ydCAqYXAgPSBsaW5rLT5hcDsKKwlzdHJ1Y3QgYWhjaV9wb3J0X3ByaXYgKnBwID0gYXAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgYWhjaV9lbV9wcml2ICplbXAgPSAmcHAtPmVtX3ByaXZbbGluay0+cG1wXTsKKworCS8qIGRpc3BsYXkgdGhlIHNhdmVkIHZhbHVlIG9mIGFjdGl2aXR5IGJlaGF2aW9yIGZvciB0aGlzCisJICogZGlzay4KKwkgKi8KKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgZW1wLT5ibGlua19wb2xpY3kpOworfQorCiBzdGF0aWMgdm9pZCBhaGNpX3BvcnRfaW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IGF0YV9wb3J0ICphcCwKIAkJCSAgIGludCBwb3J0X25vLCB2b2lkIF9faW9tZW0gKm1taW8sCiAJCQkgICB2b2lkIF9faW9tZW0gKnBvcnRfbW1pbykKQEAgLTE3NzcsNyArMjA2Nyw3IEBACiAJc3RydWN0IGFoY2lfaG9zdF9wcml2ICpocHJpdjsKIAl1bnNpZ25lZCBpbnQgaSwgaGFuZGxlZCA9IDA7CiAJdm9pZCBfX2lvbWVtICptbWlvOwotCXUzMiBpcnFfc3RhdCwgaXJxX2FjayA9IDA7CisJdTMyIGlycV9zdGF0LCBpcnFfbWFza2VkOwogCiAJVlBSSU5USygiRU5URVJcbiIpOwogCkBAIC0xNzg2LDE2ICsyMDc2LDE3IEBACiAKIAkvKiBzaWdoLiAgMHhmZmZmZmZmZiBpcyBhIHZhbGlkIHJldHVybiBmcm9tIGgvdyAqLwogCWlycV9zdGF0ID0gcmVhZGwobW1pbyArIEhPU1RfSVJRX1NUQVQpOwotCWlycV9zdGF0ICY9IGhwcml2LT5wb3J0X21hcDsKIAlpZiAoIWlycV9zdGF0KQogCQlyZXR1cm4gSVJRX05PTkU7CiAKKwlpcnFfbWFza2VkID0gaXJxX3N0YXQgJiBocHJpdi0+cG9ydF9tYXA7CisKIAlzcGluX2xvY2soJmhvc3QtPmxvY2spOwogCiAJZm9yIChpID0gMDsgaSA8IGhvc3QtPm5fcG9ydHM7IGkrKykgewogCQlzdHJ1Y3QgYXRhX3BvcnQgKmFwOwogCi0JCWlmICghKGlycV9zdGF0ICYgKDEgPDwgaSkpKQorCQlpZiAoIShpcnFfbWFza2VkICYgKDEgPDwgaSkpKQogCQkJY29udGludWU7CiAKIAkJYXAgPSBob3N0LT5wb3J0c1tpXTsKQEAgLTE4MDksMTQgKzIxMDAsMjAgQEAKIAkJCQkJImludGVycnVwdCBvbiBkaXNhYmxlZCBwb3J0ICV1XG4iLCBpKTsKIAkJfQogCi0JCWlycV9hY2sgfD0gKDEgPDwgaSk7Ci0JfQotCi0JaWYgKGlycV9hY2spIHsKLQkJd3JpdGVsKGlycV9hY2ssIG1taW8gKyBIT1NUX0lSUV9TVEFUKTsKIAkJaGFuZGxlZCA9IDE7CiAJfQogCisJLyogSE9TVF9JUlFfU1RBVCBiZWhhdmVzIGFzIGxldmVsIHRyaWdnZXJlZCBsYXRjaCBtZWFuaW5nIHRoYXQKKwkgKiBpdCBzaG91bGQgYmUgY2xlYXJlZCBhZnRlciBhbGwgdGhlIHBvcnQgZXZlbnRzIGFyZSBjbGVhcmVkOworCSAqIG90aGVyd2lzZSwgaXQgd2lsbCByYWlzZSBhIHNwdXJpb3VzIGludGVycnVwdCBhZnRlciBlYWNoCisJICogdmFsaWQgb25lLiAgUGxlYXNlIHJlYWQgc2VjdGlvbiAxMC42LjIgb2YgYWhjaSAxLjEgZm9yIG1vcmUKKwkgKiBpbmZvcm1hdGlvbi4KKwkgKgorCSAqIEFsc28sIHVzZSB0aGUgdW5tYXNrZWQgdmFsdWUgdG8gY2xlYXIgaW50ZXJydXB0IGFzIHNwdXJpb3VzCisJICogcGVuZGluZyBldmVudCBvbiBhIGR1bW15IHBvcnQgbWlnaHQgY2F1c2Ugc2NyZWFtaW5nIElSUS4KKwkgKi8KKwl3cml0ZWwoaXJxX3N0YXQsIG1taW8gKyBIT1NUX0lSUV9TVEFUKTsKKwogCXNwaW5fdW5sb2NrKCZob3N0LT5sb2NrKTsKIAogCVZQUklOVEsoIkVYSVRcbiIpOwpAQCAtMTgzOSw3ICsyMTM2LDggQEAKIAlpZiAocWMtPnRmLnByb3RvY29sID09IEFUQV9QUk9UX05DUSkKIAkJd3JpdGVsKDEgPDwgcWMtPnRhZywgcG9ydF9tbWlvICsgUE9SVF9TQ1JfQUNUKTsKIAl3cml0ZWwoMSA8PCBxYy0+dGFnLCBwb3J0X21taW8gKyBQT1JUX0NNRF9JU1NVRSk7Ci0JcmVhZGwocG9ydF9tbWlvICsgUE9SVF9DTURfSVNTVUUpOwkvKiBmbHVzaCAqLworCisJYWhjaV9zd19hY3Rpdml0eShxYy0+ZGV2LT5saW5rKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjE0Nyw3ICsyNDQ1LDggQEAKIAlkZXZfcHJpbnRrKEtFUk5fSU5GTywgJnBkZXYtPmRldiwKIAkJImZsYWdzOiAiCiAJCSIlcyVzJXMlcyVzJXMlcyIKLQkJIiVzJXMlcyVzJXMlcyVzXG4iCisJCSIlcyVzJXMlcyVzJXMlcyIKKwkJIiVzXG4iCiAJCSwKIAogCQljYXAgJiAoMSA8PCAzMSkgPyAiNjRiaXQgIiA6ICIiLApAQCAtMjE2NCw3ICsyNDYzLDggQEAKIAkJY2FwICYgKDEgPDwgMTcpID8gInBtcCAiIDogIiIsCiAJCWNhcCAmICgxIDw8IDE1KSA/ICJwaW8gIiA6ICIiLAogCQljYXAgJiAoMSA8PCAxNCkgPyAic2x1bSAiIDogIiIsCi0JCWNhcCAmICgxIDw8IDEzKSA/ICJwYXJ0ICIgOiAiIgorCQljYXAgJiAoMSA8PCAxMykgPyAicGFydCAiIDogIiIsCisJCWNhcCAmICgxIDw8IDYpID8gImVtcyAiOiAiIgogCQkpOwogfQogCkBAIC0yMjg0LDYgKzI1ODQsMjQgQEAKIAlpZiAoaHByaXYtPmNhcCAmIEhPU1RfQ0FQX1BNUCkKIAkJcGkuZmxhZ3MgfD0gQVRBX0ZMQUdfUE1QOwogCisJaWYgKGFoY2lfZW1fbWVzc2FnZXMgJiYgKGhwcml2LT5jYXAgJiBIT1NUX0NBUF9FTVMpKSB7CisJCXU4IG1lc3NhZ2VzOworCQl2b2lkIF9faW9tZW0gKm1taW8gPSBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpW0FIQ0lfUENJX0JBUl07CisJCXUzMiBlbV9sb2MgPSByZWFkbChtbWlvICsgSE9TVF9FTV9MT0MpOworCQl1MzIgZW1fY3RsID0gcmVhZGwobW1pbyArIEhPU1RfRU1fQ1RMKTsKKworCQltZXNzYWdlcyA9IChlbV9jdGwgJiAweDAwMGYwMDAwKSA+PiAxNjsKKworCQkvKiB3ZSBvbmx5IHN1cHBvcnQgTEVEIG1lc3NhZ2UgdHlwZSByaWdodCBub3cgKi8KKwkJaWYgKChtZXNzYWdlcyAmIDB4MDEpICYmIChhaGNpX2VtX21lc3NhZ2VzID09IDEpKSB7CisJCQkvKiBzdG9yZSBlbV9sb2MgKi8KKwkJCWhwcml2LT5lbV9sb2MgPSAoKGVtX2xvYyA+PiAxNikgKiA0KTsKKwkJCXBpLmZsYWdzIHw9IEFUQV9GTEFHX0VNOworCQkJaWYgKCEoZW1fY3RsICYgRU1fQ1RMX0FMSEQpKQorCQkJCXBpLmZsYWdzIHw9IEFUQV9GTEFHX1NXX0FDVElWSVRZOworCQl9CisJfQorCiAJLyogQ0FQLk5QIHNvbWV0aW1lcyBpbmRpY2F0ZSB0aGUgaW5kZXggb2YgdGhlIGxhc3QgZW5hYmxlZAogCSAqIHBvcnQsIGF0IG90aGVyIHRpbWVzLCB0aGF0IG9mIHRoZSBsYXN0IHBvc3NpYmxlIHBvcnQsIHNvCiAJICogZGV0ZXJtaW5pbmcgdGhlIG1heGltdW0gcG9ydCBudW1iZXIgcmVxdWlyZXMgbG9va2luZyBhdApAQCAtMjI5Nyw2ICsyNjE1LDkgQEAKIAlob3N0LT5pb21hcCA9IHBjaW1faW9tYXBfdGFibGUocGRldik7CiAJaG9zdC0+cHJpdmF0ZV9kYXRhID0gaHByaXY7CiAKKwlpZiAocGkuZmxhZ3MgJiBBVEFfRkxBR19FTSkKKwkJYWhjaV9yZXNldF9lbShob3N0KTsKKwogCWZvciAoaSA9IDA7IGkgPCBob3N0LT5uX3BvcnRzOyBpKyspIHsKIAkJc3RydWN0IGF0YV9wb3J0ICphcCA9IGhvc3QtPnBvcnRzW2ldOwogCkBAIC0yMzA3LDYgKzI2MjgsMTEgQEAKIAkJLyogc2V0IGluaXRpYWwgbGluayBwbSBwb2xpY3kgKi8KIAkJYXAtPnBtX3BvbGljeSA9IE5PVF9BVkFJTEFCTEU7CiAKKwkJLyogc2V0IGVuY2xvc3VyZSBtYW5hZ2VtZW50IG1lc3NhZ2UgdHlwZSAqLworCQlpZiAoYXAtPmZsYWdzICYgQVRBX0ZMQUdfRU0pCisJCQlhcC0+ZW1fbWVzc2FnZV90eXBlID0gYWhjaV9lbV9tZXNzYWdlczsKKworCiAJCS8qIGRpc2FibGVkL25vdC1pbXBsZW1lbnRlZCBwb3J0ICovCiAJCWlmICghKGhwcml2LT5wb3J0X21hcCAmICgxIDw8IGkpKSkKIAkJCWFwLT5vcHMgPSAmYXRhX2R1bW15X3BvcnRfb3BzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLWFjcGkuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1hY3BpLmMKaW5kZXggM2ZmOGIxNC4uOTMzMGI3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvbGliYXRhLWFjcGkuYworKysgYi9kcml2ZXJzL2F0YS9saWJhdGEtYWNwaS5jCkBAIC0yOSwxNCArMjksMTYgQEAKIGVudW0gewogCUFUQV9BQ1BJX0ZJTFRFUl9TRVRYRkVSCT0gMSA8PCAwLAogCUFUQV9BQ1BJX0ZJTFRFUl9MT0NLCT0gMSA8PCAxLAorCUFUQV9BQ1BJX0ZJTFRFUl9ESVBNCT0gMSA8PCAyLAogCiAJQVRBX0FDUElfRklMVEVSX0RFRkFVTFQJPSBBVEFfQUNQSV9GSUxURVJfU0VUWEZFUiB8Ci0JCQkJICBBVEFfQUNQSV9GSUxURVJfTE9DSywKKwkJCQkgIEFUQV9BQ1BJX0ZJTFRFUl9MT0NLIHwKKwkJCQkgIEFUQV9BQ1BJX0ZJTFRFUl9ESVBNLAogfTsKIAogc3RhdGljIHVuc2lnbmVkIGludCBhdGFfYWNwaV9ndGZfZmlsdGVyID0gQVRBX0FDUElfRklMVEVSX0RFRkFVTFQ7CiBtb2R1bGVfcGFyYW1fbmFtZWQoYWNwaV9ndGZfZmlsdGVyLCBhdGFfYWNwaV9ndGZfZmlsdGVyLCBpbnQsIDA2NDQpOwotTU9EVUxFX1BBUk1fREVTQyhhY3BpX2d0Zl9maWx0ZXIsICJmaWx0ZXIgbWFzayBmb3IgQUNQSSBfR1RGIGNvbW1hbmRzLCBzZXQgdG8gZmlsdGVyIG91dCAoMHgxPXNldCB4ZmVybW9kZSwgMHgyPWxvY2svZnJlZXplIGxvY2spIik7CitNT0RVTEVfUEFSTV9ERVNDKGFjcGlfZ3RmX2ZpbHRlciwgImZpbHRlciBtYXNrIGZvciBBQ1BJIF9HVEYgY29tbWFuZHMsIHNldCB0byBmaWx0ZXIgb3V0ICgweDE9c2V0IHhmZXJtb2RlLCAweDI9bG9jay9mcmVlemUgbG9jaywgMHg0PURJUE0pIik7CiAKICNkZWZpbmUgTk9fUE9SVF9NVUxUCQkweGZmZmYKICNkZWZpbmUgU0FUQV9BRFIocm9vdCwgcG1wKQkoKChyb290KSA8PCAxNikgfCAocG1wKSkKQEAgLTE5NSw2ICsxOTcsMTAgQEAKIAkJLyogVGhpcyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBob3RwbHVnICovCiAJCXJldHVybjsKIAorCWlmIChldmVudCA9PSBBQ1BJX05PVElGWV9CVVNfQ0hFQ0sgfHwKKwkgICAgZXZlbnQgPT0gQUNQSV9OT1RJRllfREVWSUNFX0NIRUNLKQorCQlzdGF0dXMgPSBhY3BpX2V2YWx1YXRlX2ludGVnZXIoaGFuZGxlLCAiX1NUQSIsIE5VTEwsICZzdGEpOworCiAJc3Bpbl9sb2NrX2lycXNhdmUoYXAtPmxvY2ssIGZsYWdzKTsKIAogCXN3aXRjaCAoZXZlbnQpIHsKQEAgLTIwMiw3ICsyMDgsNiBAQAogCWNhc2UgQUNQSV9OT1RJRllfREVWSUNFX0NIRUNLOgogCQlhdGFfZWhpX3B1c2hfZGVzYyhlaGksICJBQ1BJIGV2ZW50Iik7CiAKLQkJc3RhdHVzID0gYWNwaV9ldmFsdWF0ZV9pbnRlZ2VyKGhhbmRsZSwgIl9TVEEiLCBOVUxMLCAmc3RhKTsKIAkJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7CiAJCQlhdGFfcG9ydF9wcmludGsoYXAsIEtFUk5fRVJSLAogCQkJCSJhY3BpOiBmYWlsZWQgdG8gZGV0ZXJtaW5lIGJheSBzdGF0dXMgKDB4JXgpXG4iLApAQCAtNjkwLDYgKzY5NSwxNCBAQAogCQkJcmV0dXJuIDE7CiAJfQogCisJaWYgKGF0YV9hY3BpX2d0Zl9maWx0ZXIgJiBBVEFfQUNQSV9GSUxURVJfRElQTSkgeworCQkvKiBpbmhpYml0IGVuYWJsaW5nIERJUE0gKi8KKwkJaWYgKHRmLT5jb21tYW5kID09IEFUQV9DTURfU0VUX0ZFQVRVUkVTICYmCisJCSAgICB0Zi0+ZmVhdHVyZSA9PSBTRVRGRUFUVVJFU19TQVRBX0VOQUJMRSAmJgorCQkgICAgdGYtPm5zZWN0ID09IFNBVEFfRElQTSkKKwkJCXJldHVybiAxOworCX0KKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9saWJhdGEtY29yZS5jIGIvZHJpdmVycy9hdGEvbGliYXRhLWNvcmUuYwppbmRleCAzMDNmYzBkLi45YmVmMWE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEtY29yZS5jCisrKyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMKQEAgLTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgotI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KICNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CkBAIC0xNDUsNyArMTQ0LDcgQEAKIG1vZHVsZV9wYXJhbV9uYW1lZChkbWEsIGxpYmF0YV9kbWFfbWFzaywgaW50LCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MoZG1hLCAiRE1BIGVuYWJsZS9kaXNhYmxlICgweDE9PUFUQSwgMHgyPT1BVEFQSSwgMHg0PT1DRikiKTsKIAotc3RhdGljIGludCBhdGFfcHJvYmVfdGltZW91dCA9IEFUQV9UTU9VVF9JTlRFUk5BTCAvIEhaOworc3RhdGljIGludCBhdGFfcHJvYmVfdGltZW91dDsKIG1vZHVsZV9wYXJhbShhdGFfcHJvYmVfdGltZW91dCwgaW50LCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MoYXRhX3Byb2JlX3RpbWVvdXQsICJTZXQgQVRBIHByb2JpbmcgdGltZW91dCAoc2Vjb25kcykiKTsKIApAQCAtMTUzMyw3ICsxNTMyLDcgQEAKICAqCUBhcDogVGhlIGF0YV9wb3J0IHRvIHF1ZXVlIHBvcnRfdGFzayBmb3IKICAqCUBmbjogd29ya3F1ZXVlIGZ1bmN0aW9uIHRvIGJlIHNjaGVkdWxlZAogICoJQGRhdGE6IGRhdGEgZm9yIEBmbiB0byB1c2UKLSAqCUBkZWxheTogZGVsYXkgdGltZSBmb3Igd29ya3F1ZXVlIGZ1bmN0aW9uCisgKglAZGVsYXk6IGRlbGF5IHRpbWUgaW4gbXNlY3MgZm9yIHdvcmtxdWV1ZSBmdW5jdGlvbgogICoKICAqCVNjaGVkdWxlIEBmbihAZGF0YSkgZm9yIGV4ZWN1dGlvbiBhZnRlciBAZGVsYXkgamlmZmllcyB1c2luZwogICoJcG9ydF90YXNrLiAgVGhlcmUgaXMgb25lIHBvcnRfdGFzayBwZXIgcG9ydCBhbmQgaXQncyB0aGUKQEAgLTE1NTIsNyArMTU1MSw3IEBACiAJYXAtPnBvcnRfdGFza19kYXRhID0gZGF0YTsKIAogCS8qIG1heSBmYWlsIGlmIGF0YV9wb3J0X2ZsdXNoX3Rhc2soKSBpbiBwcm9ncmVzcyAqLwotCXF1ZXVlX2RlbGF5ZWRfd29yayhhdGFfd3EsICZhcC0+cG9ydF90YXNrLCBkZWxheSk7CisJcXVldWVfZGVsYXllZF93b3JrKGF0YV93cSwgJmFwLT5wb3J0X3Rhc2ssIG1zZWNzX3RvX2ppZmZpZXMoZGVsYXkpKTsKIH0KIAogLyoqCkBAIC0xNjEyLDYgKzE2MTEsNyBAQAogCXN0cnVjdCBhdGFfbGluayAqbGluayA9IGRldi0+bGluazsKIAlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gbGluay0+YXA7CiAJdTggY29tbWFuZCA9IHRmLT5jb21tYW5kOworCWludCBhdXRvX3RpbWVvdXQgPSAwOwogCXN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWM7CiAJdW5zaWduZWQgaW50IHRhZywgcHJlZW1wdGVkX3RhZzsKIAl1MzIgcHJlZW1wdGVkX3NhY3RpdmUsIHByZWVtcHRlZF9xY19hY3RpdmU7CkBAIC0xNjg0LDggKzE2ODQsMTQgQEAKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoYXAtPmxvY2ssIGZsYWdzKTsKIAotCWlmICghdGltZW91dCkKLQkJdGltZW91dCA9IGF0YV9wcm9iZV90aW1lb3V0ICogMTAwMCAvIEhaOworCWlmICghdGltZW91dCkgeworCQlpZiAoYXRhX3Byb2JlX3RpbWVvdXQpCisJCQl0aW1lb3V0ID0gYXRhX3Byb2JlX3RpbWVvdXQgKiAxMDAwOworCQllbHNlIHsKKwkJCXRpbWVvdXQgPSBhdGFfaW50ZXJuYWxfY21kX3RpbWVvdXQoZGV2LCBjb21tYW5kKTsKKwkJCWF1dG9fdGltZW91dCA9IDE7CisJCX0KKwl9CiAKIAlyYyA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmd2FpdCwgbXNlY3NfdG9famlmZmllcyh0aW1lb3V0KSk7CiAKQEAgLTE3NjEsNiArMTc2Nyw5IEBACiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKGFwLT5sb2NrLCBmbGFncyk7CiAKKwlpZiAoKGVycl9tYXNrICYgQUNfRVJSX1RJTUVPVVQpICYmIGF1dG9fdGltZW91dCkKKwkJYXRhX2ludGVybmFsX2NtZF90aW1lZF9vdXQoZGV2LCBjb21tYW5kKTsKKwogCXJldHVybiBlcnJfbWFzazsKIH0KIApAQCAtMzMxOSw3ICszMzI4LDcgQEAKIAkJICAgaW50ICgqY2hlY2tfcmVhZHkpKHN0cnVjdCBhdGFfbGluayAqbGluaykpCiB7CiAJdW5zaWduZWQgbG9uZyBzdGFydCA9IGppZmZpZXM7Ci0JdW5zaWduZWQgbG9uZyBub2Rldl9kZWFkbGluZSA9IHN0YXJ0ICsgQVRBX1RNT1VUX0ZGX1dBSVQ7CisJdW5zaWduZWQgbG9uZyBub2Rldl9kZWFkbGluZSA9IGF0YV9kZWFkbGluZShzdGFydCwgQVRBX1RNT1VUX0ZGX1dBSVQpOwogCWludCB3YXJuZWQgPSAwOwogCiAJaWYgKHRpbWVfYWZ0ZXIobm9kZXZfZGVhZGxpbmUsIGRlYWRsaW5lKSkKQEAgLTMzODcsNyArMzM5Niw3IEBACiBpbnQgYXRhX3dhaXRfYWZ0ZXJfcmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBsb25nIGRlYWRsaW5lLAogCQkJCWludCAoKmNoZWNrX3JlYWR5KShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmspKQogewotCW1zbGVlcChBVEFfV0FJVF9BRlRFUl9SRVNFVF9NU0VDUyk7CisJbXNsZWVwKEFUQV9XQUlUX0FGVEVSX1JFU0VUKTsKIAogCXJldHVybiBhdGFfd2FpdF9yZWFkeShsaW5rLCBkZWFkbGluZSwgY2hlY2tfcmVhZHkpOwogfQpAQCAtMzQxNywxMyArMzQyNiwxMyBAQAogaW50IHNhdGFfbGlua19kZWJvdW5jZShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnBhcmFtcywKIAkJICAgICAgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpCiB7Ci0JdW5zaWduZWQgbG9uZyBpbnRlcnZhbF9tc2VjID0gcGFyYW1zWzBdOwotCXVuc2lnbmVkIGxvbmcgZHVyYXRpb24gPSBtc2Vjc190b19qaWZmaWVzKHBhcmFtc1sxXSk7CisJdW5zaWduZWQgbG9uZyBpbnRlcnZhbCA9IHBhcmFtc1swXTsKKwl1bnNpZ25lZCBsb25nIGR1cmF0aW9uID0gcGFyYW1zWzFdOwogCXVuc2lnbmVkIGxvbmcgbGFzdF9qaWZmaWVzLCB0OwogCXUzMiBsYXN0LCBjdXI7CiAJaW50IHJjOwogCi0JdCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKHBhcmFtc1syXSk7CisJdCA9IGF0YV9kZWFkbGluZShqaWZmaWVzLCBwYXJhbXNbMl0pOwogCWlmICh0aW1lX2JlZm9yZSh0LCBkZWFkbGluZSkpCiAJCWRlYWRsaW5lID0gdDsKIApAQCAtMzQzNSw3ICszNDQ0LDcgQEAKIAlsYXN0X2ppZmZpZXMgPSBqaWZmaWVzOwogCiAJd2hpbGUgKDEpIHsKLQkJbXNsZWVwKGludGVydmFsX21zZWMpOworCQltc2xlZXAoaW50ZXJ2YWwpOwogCQlpZiAoKHJjID0gc2F0YV9zY3JfcmVhZChsaW5rLCBTQ1JfU1RBVFVTLCAmY3VyKSkpCiAJCQlyZXR1cm4gcmM7CiAJCWN1ciAmPSAweGY7CkBAIC0zNDQ0LDcgKzM0NTMsOCBAQAogCQlpZiAoY3VyID09IGxhc3QpIHsKIAkJCWlmIChjdXIgPT0gMSAmJiB0aW1lX2JlZm9yZShqaWZmaWVzLCBkZWFkbGluZSkpCiAJCQkJY29udGludWU7Ci0JCQlpZiAodGltZV9hZnRlcihqaWZmaWVzLCBsYXN0X2ppZmZpZXMgKyBkdXJhdGlvbikpCisJCQlpZiAodGltZV9hZnRlcihqaWZmaWVzLAorCQkJCSAgICAgICBhdGFfZGVhZGxpbmUobGFzdF9qaWZmaWVzLCBkdXJhdGlvbikpKQogCQkJCXJldHVybiAwOwogCQkJY29udGludWU7CiAJCX0KQEAgLTM2MzYsNyArMzY0Niw4IEBACiAJCWlmIChjaGVja19yZWFkeSkgewogCQkJdW5zaWduZWQgbG9uZyBwbXBfZGVhZGxpbmU7CiAKLQkJCXBtcF9kZWFkbGluZSA9IGppZmZpZXMgKyBBVEFfVE1PVVRfUE1QX1NSU1RfV0FJVDsKKwkJCXBtcF9kZWFkbGluZSA9IGF0YV9kZWFkbGluZShqaWZmaWVzLAorCQkJCQkJICAgIEFUQV9UTU9VVF9QTVBfU1JTVF9XQUlUKTsKIAkJCWlmICh0aW1lX2FmdGVyKHBtcF9kZWFkbGluZSwgZGVhZGxpbmUpKQogCQkJCXBtcF9kZWFkbGluZSA9IGRlYWRsaW5lOwogCQkJYXRhX3dhaXRfcmVhZHkobGluaywgcG1wX2RlYWRsaW5lLCBjaGVja19yZWFkeSk7CkBAIC02MDczLDggKzYwODQsNiBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBhdGFfaW5pdCh2b2lkKQogewotCWF0YV9wcm9iZV90aW1lb3V0ICo9IEhaOwotCiAJYXRhX3BhcnNlX2ZvcmNlX3BhcmFtKCk7CiAKIAlhdGFfd3EgPSBjcmVhdGVfd29ya3F1ZXVlKCJhdGEiKTsKQEAgLTYxMjcsOCArNjEzNiw4IEBACiAgKglAcmVnOiBJTy1tYXBwZWQgcmVnaXN0ZXIKICAqCUBtYXNrOiBNYXNrIHRvIGFwcGx5IHRvIHJlYWQgcmVnaXN0ZXIgdmFsdWUKICAqCUB2YWw6IFdhaXQgY29uZGl0aW9uCi0gKglAaW50ZXJ2YWxfbXNlYzogcG9sbGluZyBpbnRlcnZhbCBpbiBtaWxsaXNlY29uZHMKLSAqCUB0aW1lb3V0X21zZWM6IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzCisgKglAaW50ZXJ2YWw6IHBvbGxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzCisgKglAdGltZW91dDogdGltZW91dCBpbiBtaWxsaXNlY29uZHMKICAqCiAgKglXYWl0aW5nIGZvciBzb21lIGJpdHMgb2YgcmVnaXN0ZXIgdG8gY2hhbmdlIGlzIGEgY29tbW9uCiAgKglvcGVyYXRpb24gZm9yIEFUQSBjb250cm9sbGVycy4gIFRoaXMgZnVuY3Rpb24gcmVhZHMgMzJiaXQgTEUKQEAgLTYxNDYsMTAgKzYxNTUsOSBAQAogICoJVGhlIGZpbmFsIHJlZ2lzdGVyIHZhbHVlLgogICovCiB1MzIgYXRhX3dhaXRfcmVnaXN0ZXIodm9pZCBfX2lvbWVtICpyZWcsIHUzMiBtYXNrLCB1MzIgdmFsLAotCQkgICAgICB1bnNpZ25lZCBsb25nIGludGVydmFsX21zZWMsCi0JCSAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dF9tc2VjKQorCQkgICAgICB1bnNpZ25lZCBsb25nIGludGVydmFsLCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpCiB7Ci0JdW5zaWduZWQgbG9uZyB0aW1lb3V0OworCXVuc2lnbmVkIGxvbmcgZGVhZGxpbmU7CiAJdTMyIHRtcDsKIAogCXRtcCA9IGlvcmVhZDMyKHJlZyk7CkBAIC02MTU4LDEwICs2MTY2LDEwIEBACiAJICogcHJlY2VkaW5nIHdyaXRlcyByZWFjaCB0aGUgY29udHJvbGxlciBiZWZvcmUgc3RhcnRpbmcgdG8KIAkgKiBlYXQgYXdheSB0aGUgdGltZW91dC4KIAkgKi8KLQl0aW1lb3V0ID0gamlmZmllcyArICh0aW1lb3V0X21zZWMgKiBIWikgLyAxMDAwOworCWRlYWRsaW5lID0gYXRhX2RlYWRsaW5lKGppZmZpZXMsIHRpbWVvdXQpOwogCi0Jd2hpbGUgKCh0bXAgJiBtYXNrKSA9PSB2YWwgJiYgdGltZV9iZWZvcmUoamlmZmllcywgdGltZW91dCkpIHsKLQkJbXNsZWVwKGludGVydmFsX21zZWMpOworCXdoaWxlICgodG1wICYgbWFzaykgPT0gdmFsICYmIHRpbWVfYmVmb3JlKGppZmZpZXMsIGRlYWRsaW5lKSkgeworCQltc2xlZXAoaW50ZXJ2YWwpOwogCQl0bXAgPSBpb3JlYWQzMihyZWcpOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLWVoLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtZWguYwppbmRleCA3ODk0ZDgzLi41OGJkYzUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEtZWguYworKysgYi9kcml2ZXJzL2F0YS9saWJhdGEtZWguYwpAQCAtNjYsMTUgKzY2LDE5IEBACiAJQVRBX0VDQVRfRFVCSU9VU19UT1VUX0hTTQk9IDYsCiAJQVRBX0VDQVRfRFVCSU9VU19VTktfREVWCT0gNywKIAlBVEFfRUNBVF9OUgkJCT0gOCwKLX07CiAKLS8qIFdhaXRpbmcgaW4gLT5wcmVyZXNldCBjYW4gbmV2ZXIgYmUgcmVsaWFibGUuICBJdCdzIHNvbWV0aW1lcyBuaWNlCi0gKiB0byB3YWl0IHRoZXJlIGJ1dCBpdCBjYW4ndCBiZSBkZXBlbmRlZCB1cG9uOyBvdGhlcndpc2UsIHdlIHdvdWxkbid0Ci0gKiBiZSByZXNldHRpbmcuICBKdXN0IGdpdmUgaXQgZW5vdWdoIHRpbWUgZm9yIG1vc3QgZHJpdmVzIHRvIHNwaW4gdXAuCi0gKi8KLWVudW0gewotCUFUQV9FSF9QUkVSRVNFVF9USU1FT1VUCQk9IDEwICogSFosCi0JQVRBX0VIX0ZBU1REUkFJTl9JTlRFUlZBTAk9IDMgKiBIWiwKKwlBVEFfRUhfQ01EX0RGTF9USU1FT1VUCQk9ICA1MDAwLAorCisJLyogYWx3YXlzIHB1dCBhdCBsZWFzdCB0aGlzIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gcmVzZXRzICovCisJQVRBX0VIX1JFU0VUX0NPT0xfRE9XTgkJPSAgNTAwMCwKKworCS8qIFdhaXRpbmcgaW4gLT5wcmVyZXNldCBjYW4gbmV2ZXIgYmUgcmVsaWFibGUuICBJdCdzCisJICogc29tZXRpbWVzIG5pY2UgdG8gd2FpdCB0aGVyZSBidXQgaXQgY2FuJ3QgYmUgZGVwZW5kZWQgdXBvbjsKKwkgKiBvdGhlcndpc2UsIHdlIHdvdWxkbid0IGJlIHJlc2V0dGluZy4gIEp1c3QgZ2l2ZSBpdCBlbm91Z2gKKwkgKiB0aW1lIGZvciBtb3N0IGRyaXZlcyB0byBzcGluIHVwLgorCSAqLworCUFUQV9FSF9QUkVSRVNFVF9USU1FT1VUCQk9IDEwMDAwLAorCUFUQV9FSF9GQVNURFJBSU5fSU5URVJWQUwJPSAgMzAwMCwKIH07CiAKIC8qIFRoZSBmb2xsb3dpbmcgdGFibGUgZGV0ZXJtaW5lcyBob3cgd2Ugc2VxdWVuY2UgcmVzZXRzLiAgRWFjaCBlbnRyeQpAQCAtODQsMTMgKzg4LDYwIEBACiAgKiBhcmUgbW9zdGx5IGZvciBlcnJvciBoYW5kbGluZywgaG90cGx1ZyBhbmQgcmV0YXJkZWQgZGV2aWNlcy4KICAqLwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgYXRhX2VoX3Jlc2V0X3RpbWVvdXRzW10gPSB7Ci0JMTAgKiBIWiwJLyogbW9zdCBkcml2ZXMgc3BpbiB1cCBieSAxMHNlYyAqLwotCTEwICogSFosCS8qID4gOTklIHdvcmtpbmcgZHJpdmVzIHNwaW4gdXAgYmVmb3JlIDIwc2VjICovCi0JMzUgKiBIWiwJLyogZ2l2ZSA+IDMwIHNlY3Mgb2YgaWRsZW5lc3MgZm9yIHJldGFyZGVkIGRldmljZXMgKi8KLQk1ICogSFosCQkvKiBhbmQgc3dlZXQgb25lIGxhc3QgY2hhbmNlICovCi0JLyogPiAxIG1pbiBoYXMgZWxhcHNlZCwgZ2l2ZSB1cCAqLworCTEwMDAwLAkvKiBtb3N0IGRyaXZlcyBzcGluIHVwIGJ5IDEwc2VjICovCisJMTAwMDAsCS8qID4gOTklIHdvcmtpbmcgZHJpdmVzIHNwaW4gdXAgYmVmb3JlIDIwc2VjICovCisJMzUwMDAsCS8qIGdpdmUgPiAzMCBzZWNzIG9mIGlkbGVuZXNzIGZvciByZXRhcmRlZCBkZXZpY2VzICovCisJIDUwMDAsCS8qIGFuZCBzd2VldCBvbmUgbGFzdCBjaGFuY2UgKi8KKwlVTE9OR19NQVgsIC8qID4gMSBtaW4gaGFzIGVsYXBzZWQsIGdpdmUgdXAgKi8KIH07CiAKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGF0YV9laF9pZGVudGlmeV90aW1lb3V0c1tdID0geworCSA1MDAwLAkvKiBjb3ZlcnMgPiA5OSUgb2Ygc3VjY2Vzc2VzIGFuZCBub3QgdG9vIGJvcmluZyBvbiBmYWlsdXJlcyAqLworCTEwMDAwLCAgLyogY29tYmluZWQgdGltZSB0aWxsIGhlcmUgaXMgZW5vdWdoIGV2ZW4gZm9yIG1lZGlhIGFjY2VzcyAqLworCTMwMDAwLAkvKiBmb3IgdHJ1ZSBpZGlvdHMgKi8KKwlVTE9OR19NQVgsCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBhdGFfZWhfb3RoZXJfdGltZW91dHNbXSA9IHsKKwkgNTAwMCwJLyogc2FtZSByYXRpb25hbGUgYXMgaWRlbnRpZnkgdGltZW91dCAqLworCTEwMDAwLAkvKiBkaXR0byAqLworCS8qIGJ1dCBubyBtZXJjaWZ1bCAzMHNlYyBmb3Igb3RoZXIgY29tbWFuZHMsIGl0IGp1c3QgaXNuJ3Qgd29ydGggaXQgKi8KKwlVTE9OR19NQVgsCit9OworCitzdHJ1Y3QgYXRhX2VoX2NtZF90aW1lb3V0X2VudCB7CisJY29uc3QgdTgJCSpjb21tYW5kczsKKwljb25zdCB1bnNpZ25lZCBsb25nCSp0aW1lb3V0czsKK307CisKKy8qIFRoZSBmb2xsb3dpbmcgdGFibGUgZGV0ZXJtaW5lcyB0aW1lb3V0cyB0byB1c2UgZm9yIEVIIGludGVybmFsCisgKiBjb21tYW5kcy4gIEVhY2ggdGFibGUgZW50cnkgaXMgYSBjb21tYW5kIGNsYXNzIGFuZCBtYXRjaGVzIHRoZQorICogY29tbWFuZHMgdGhlIGVudHJ5IGFwcGxpZXMgdG8gYW5kIHRoZSB0aW1lb3V0IHRhYmxlIHRvIHVzZS4KKyAqCisgKiBPbiB0aGUgcmV0cnkgYWZ0ZXIgYSBjb21tYW5kIHRpbWVkIG91dCwgdGhlIG5leHQgdGltZW91dCB2YWx1ZSBmcm9tCisgKiB0aGUgdGFibGUgaXMgdXNlZC4gIElmIHRoZSB0YWJsZSBkb2Vzbid0IGNvbnRhaW4gZnVydGhlciBlbnRyaWVzLAorICogdGhlIGxhc3QgdmFsdWUgaXMgdXNlZC4KKyAqCisgKiBlaGMtPmNtZF90aW1lb3V0X2lkeCBrZWVwcyB0cmFjayBvZiB3aGljaCB0aW1lb3V0IHRvIHVzZSBwZXIKKyAqIGNvbW1hbmQgY2xhc3MsIHNvIGlmIFNFVF9GRUFUVVJFUyB0aW1lcyBvdXQgb24gdGhlIGZpcnN0IHRyeSwgdGhlCisgKiBuZXh0IHRyeSB3aWxsIHVzZSB0aGUgc2Vjb25kIHRpbWVvdXQgdmFsdWUgb25seSBmb3IgdGhhdCBjbGFzcy4KKyAqLworI2RlZmluZSBDTURTKGNtZHMuLi4pCShjb25zdCB1OCBbXSl7IGNtZHMsIDAgfQorc3RhdGljIGNvbnN0IHN0cnVjdCBhdGFfZWhfY21kX3RpbWVvdXRfZW50CithdGFfZWhfY21kX3RpbWVvdXRfdGFibGVbQVRBX0VIX0NNRF9USU1FT1VUX1RBQkxFX1NJWkVdID0geworCXsgLmNvbW1hbmRzID0gQ01EUyhBVEFfQ01EX0lEX0FUQSwgQVRBX0NNRF9JRF9BVEFQSSksCisJICAudGltZW91dHMgPSBhdGFfZWhfaWRlbnRpZnlfdGltZW91dHMsIH0sCisJeyAuY29tbWFuZHMgPSBDTURTKEFUQV9DTURfUkVBRF9OQVRJVkVfTUFYLCBBVEFfQ01EX1JFQURfTkFUSVZFX01BWF9FWFQpLAorCSAgLnRpbWVvdXRzID0gYXRhX2VoX290aGVyX3RpbWVvdXRzLCB9LAorCXsgLmNvbW1hbmRzID0gQ01EUyhBVEFfQ01EX1NFVF9NQVgsIEFUQV9DTURfU0VUX01BWF9FWFQpLAorCSAgLnRpbWVvdXRzID0gYXRhX2VoX290aGVyX3RpbWVvdXRzLCB9LAorCXsgLmNvbW1hbmRzID0gQ01EUyhBVEFfQ01EX1NFVF9GRUFUVVJFUyksCisJICAudGltZW91dHMgPSBhdGFfZWhfb3RoZXJfdGltZW91dHMsIH0sCisJeyAuY29tbWFuZHMgPSBDTURTKEFUQV9DTURfSU5JVF9ERVZfUEFSQU1TKSwKKwkgIC50aW1lb3V0cyA9IGF0YV9laF9vdGhlcl90aW1lb3V0cywgfSwKK307CisjdW5kZWYgQ01EUworCiBzdGF0aWMgdm9pZCBfX2F0YV9wb3J0X2ZyZWV6ZShzdHJ1Y3QgYXRhX3BvcnQgKmFwKTsKICNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyB2b2lkIGF0YV9laF9oYW5kbGVfcG9ydF9zdXNwZW5kKHN0cnVjdCBhdGFfcG9ydCAqYXApOwpAQCAtMjM2LDYgKzI4Nyw3MyBAQAogCiAjZW5kaWYgLyogQ09ORklHX1BDSSAqLwogCitzdGF0aWMgaW50IGF0YV9sb29rdXBfdGltZW91dF90YWJsZSh1OCBjbWQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVRBX0VIX0NNRF9USU1FT1VUX1RBQkxFX1NJWkU7IGkrKykgeworCQljb25zdCB1OCAqY3VyOworCisJCWZvciAoY3VyID0gYXRhX2VoX2NtZF90aW1lb3V0X3RhYmxlW2ldLmNvbW1hbmRzOyAqY3VyOyBjdXIrKykKKwkJCWlmICgqY3VyID09IGNtZCkKKwkJCQlyZXR1cm4gaTsKKwl9CisKKwlyZXR1cm4gLTE7Cit9CisKKy8qKgorICoJYXRhX2ludGVybmFsX2NtZF90aW1lb3V0IC0gZGV0ZXJtaW5lIHRpbWVvdXQgZm9yIGFuIGludGVybmFsIGNvbW1hbmQKKyAqCUBkZXY6IHRhcmdldCBkZXZpY2UKKyAqCUBjbWQ6IGludGVybmFsIGNvbW1hbmQgdG8gYmUgaXNzdWVkCisgKgorICoJRGV0ZXJtaW5lIHRpbWVvdXQgZm9yIGludGVybmFsIGNvbW1hbmQgQGNtZCBmb3IgQGRldi4KKyAqCisgKglMT0NLSU5HOgorICoJRUggY29udGV4dC4KKyAqCisgKglSRVRVUk5TOgorICoJRGV0ZXJtaW5lZCB0aW1lb3V0LgorICovCit1bnNpZ25lZCBsb25nIGF0YV9pbnRlcm5hbF9jbWRfdGltZW91dChzdHJ1Y3QgYXRhX2RldmljZSAqZGV2LCB1OCBjbWQpCit7CisJc3RydWN0IGF0YV9laF9jb250ZXh0ICplaGMgPSAmZGV2LT5saW5rLT5laF9jb250ZXh0OworCWludCBlbnQgPSBhdGFfbG9va3VwX3RpbWVvdXRfdGFibGUoY21kKTsKKwlpbnQgaWR4OworCisJaWYgKGVudCA8IDApCisJCXJldHVybiBBVEFfRUhfQ01EX0RGTF9USU1FT1VUOworCisJaWR4ID0gZWhjLT5jbWRfdGltZW91dF9pZHhbZGV2LT5kZXZub11bZW50XTsKKwlyZXR1cm4gYXRhX2VoX2NtZF90aW1lb3V0X3RhYmxlW2VudF0udGltZW91dHNbaWR4XTsKK30KKworLyoqCisgKglhdGFfaW50ZXJuYWxfY21kX3RpbWVkX291dCAtIG5vdGlmaWNhdGlvbiBmb3IgaW50ZXJuYWwgY29tbWFuZCB0aW1lb3V0CisgKglAZGV2OiB0YXJnZXQgZGV2aWNlCisgKglAY21kOiBpbnRlcm5hbCBjb21tYW5kIHdoaWNoIHRpbWVkIG91dAorICoKKyAqCU5vdGlmeSBFSCB0aGF0IGludGVybmFsIGNvbW1hbmQgQGNtZCBmb3IgQGRldiB0aW1lZCBvdXQuICBUaGlzCisgKglmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9ubHkgZm9yIGNvbW1hbmRzIHdob3NlIHRpbWVvdXRzIGFyZQorICoJZGV0ZXJtaW5lZCB1c2luZyBhdGFfaW50ZXJuYWxfY21kX3RpbWVvdXQoKS4KKyAqCisgKglMT0NLSU5HOgorICoJRUggY29udGV4dC4KKyAqLwordm9pZCBhdGFfaW50ZXJuYWxfY21kX3RpbWVkX291dChzdHJ1Y3QgYXRhX2RldmljZSAqZGV2LCB1OCBjbWQpCit7CisJc3RydWN0IGF0YV9laF9jb250ZXh0ICplaGMgPSAmZGV2LT5saW5rLT5laF9jb250ZXh0OworCWludCBlbnQgPSBhdGFfbG9va3VwX3RpbWVvdXRfdGFibGUoY21kKTsKKwlpbnQgaWR4OworCisJaWYgKGVudCA8IDApCisJCXJldHVybjsKKworCWlkeCA9IGVoYy0+Y21kX3RpbWVvdXRfaWR4W2Rldi0+ZGV2bm9dW2VudF07CisJaWYgKGF0YV9laF9jbWRfdGltZW91dF90YWJsZVtlbnRdLnRpbWVvdXRzW2lkeCArIDFdICE9IFVMT05HX01BWCkKKwkJZWhjLT5jbWRfdGltZW91dF9pZHhbZGV2LT5kZXZub11bZW50XSsrOworfQorCiBzdGF0aWMgdm9pZCBhdGFfZXJpbmdfcmVjb3JkKHN0cnVjdCBhdGFfZXJpbmcgKmVyaW5nLCB1bnNpZ25lZCBpbnQgZWZsYWdzLAogCQkJICAgICB1bnNpZ25lZCBpbnQgZXJyX21hc2spCiB7CkBAIC00ODYsNiArNjA0LDkgQEAKIAkJCQlpZiAoYXRhX25jcV9lbmFibGVkKGRldikpCiAJCQkJCWVoYy0+c2F2ZWRfbmNxX2VuYWJsZWQgfD0gMSA8PCBkZXZubzsKIAkJCX0KKworCQkJLyogc2V0IGxhc3QgcmVzZXQgdGltZXN0YW1wIHRvIHNvbWUgdGltZSBpbiB0aGUgcGFzdCAqLworCQkJZWhjLT5sYXN0X3Jlc2V0ID0gamlmZmllcyAtIDYwICogSFo7CiAJCX0KIAogCQlhcC0+cGZsYWdzIHw9IEFUQV9QRkxBR19FSF9JTl9QUk9HUkVTUzsKQEAgLTY0MSw3ICs3NjIsNyBAQAogCQkvKiBzb21lIHFjcyBoYXZlIGZpbmlzaGVkLCBnaXZlIGl0IGFub3RoZXIgY2hhbmNlICovCiAJCWFwLT5mYXN0ZHJhaW5fY250ID0gY250OwogCQlhcC0+ZmFzdGRyYWluX3RpbWVyLmV4cGlyZXMgPQotCQkJamlmZmllcyArIEFUQV9FSF9GQVNURFJBSU5fSU5URVJWQUw7CisJCQlhdGFfZGVhZGxpbmUoamlmZmllcywgQVRBX0VIX0ZBU1REUkFJTl9JTlRFUlZBTCk7CiAJCWFkZF90aW1lcigmYXAtPmZhc3RkcmFpbl90aW1lcik7CiAJfQogCkBAIC02ODEsNyArODAyLDggQEAKIAogCS8qIGFjdGl2YXRlIGZhc3QgZHJhaW4gKi8KIAlhcC0+ZmFzdGRyYWluX2NudCA9IGNudDsKLQlhcC0+ZmFzdGRyYWluX3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsgQVRBX0VIX0ZBU1REUkFJTl9JTlRFUlZBTDsKKwlhcC0+ZmFzdGRyYWluX3RpbWVyLmV4cGlyZXMgPQorCQlhdGFfZGVhZGxpbmUoamlmZmllcywgQVRBX0VIX0ZBU1REUkFJTl9JTlRFUlZBTCk7CiAJYWRkX3RpbWVyKCZhcC0+ZmFzdGRyYWluX3RpbWVyKTsKIH0KIApAQCAtMTIzOCw2ICsxMzYwLDcgQEAKICAqCWF0YXBpX2VoX3JlcXVlc3Rfc2Vuc2UgLSBwZXJmb3JtIEFUQVBJIFJFUVVFU1RfU0VOU0UKICAqCUBkZXY6IGRldmljZSB0byBwZXJmb3JtIFJFUVVFU1RfU0VOU0UgdG8KICAqCUBzZW5zZV9idWY6IHJlc3VsdCBzZW5zZSBkYXRhIGJ1ZmZlciAoU0NTSV9TRU5TRV9CVUZGRVJTSVpFIGJ5dGVzIGxvbmcpCisgKglAZGZsX3NlbnNlX2tleTogZGVmYXVsdCBzZW5zZSBrZXkgdG8gdXNlCiAgKgogICoJUGVyZm9ybSBBVEFQSSBSRVFVRVNUX1NFTlNFIGFmdGVyIHRoZSBkZXZpY2UgcmVwb3J0ZWQgQ0hFQ0sKICAqCVNFTlNFLiAgVGhpcyBmdW5jdGlvbiBpcyBFSCBoZWxwZXIuCkBAIC0xMjQ4LDEzICsxMzcxLDEzIEBACiAgKglSRVRVUk5TOgogICoJMCBvbiBzdWNjZXNzLCBBQ19FUlJfKiBtYXNrIG9uIGZhaWx1cmUKICAqLwotc3RhdGljIHVuc2lnbmVkIGludCBhdGFwaV9laF9yZXF1ZXN0X3NlbnNlKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpCitzdGF0aWMgdW5zaWduZWQgaW50IGF0YXBpX2VoX3JlcXVlc3Rfc2Vuc2Uoc3RydWN0IGF0YV9kZXZpY2UgKmRldiwKKwkJCQkJICAgdTggKnNlbnNlX2J1ZiwgdTggZGZsX3NlbnNlX2tleSkKIHsKLQlzdHJ1Y3QgYXRhX2RldmljZSAqZGV2ID0gcWMtPmRldjsKLQl1bnNpZ25lZCBjaGFyICpzZW5zZV9idWYgPSBxYy0+c2NzaWNtZC0+c2Vuc2VfYnVmZmVyOworCXU4IGNkYltBVEFQSV9DREJfTEVOXSA9CisJCXsgUkVRVUVTVF9TRU5TRSwgMCwgMCwgMCwgU0NTSV9TRU5TRV9CVUZGRVJTSVpFLCAwIH07CiAJc3RydWN0IGF0YV9wb3J0ICphcCA9IGRldi0+bGluay0+YXA7CiAJc3RydWN0IGF0YV90YXNrZmlsZSB0ZjsKLQl1OCBjZGJbQVRBUElfQ0RCX0xFTl07CiAKIAlEUFJJTlRLKCJBVEFQSSByZXF1ZXN0IHNlbnNlXG4iKTsKIApAQCAtMTI2NSwxNSArMTM4OCwxMSBAQAogCSAqIGZvciB0aGUgY2FzZSB3aGVyZSB0aGV5IGFyZSAtbm90LSBvdmVyd3JpdHRlbgogCSAqLwogCXNlbnNlX2J1ZlswXSA9IDB4NzA7Ci0Jc2Vuc2VfYnVmWzJdID0gcWMtPnJlc3VsdF90Zi5mZWF0dXJlID4+IDQ7CisJc2Vuc2VfYnVmWzJdID0gZGZsX3NlbnNlX2tleTsKIAogCS8qIHNvbWUgZGV2aWNlcyB0aW1lIG91dCBpZiBnYXJiYWdlIGxlZnQgaW4gdGYgKi8KIAlhdGFfdGZfaW5pdChkZXYsICZ0Zik7CiAKLQltZW1zZXQoY2RiLCAwLCBBVEFQSV9DREJfTEVOKTsKLQljZGJbMF0gPSBSRVFVRVNUX1NFTlNFOwotCWNkYls0XSA9IFNDU0lfU0VOU0VfQlVGRkVSU0laRTsKLQogCXRmLmZsYWdzIHw9IEFUQV9URkxBR19JU0FERFIgfCBBVEFfVEZMQUdfREVWSUNFOwogCXRmLmNvbW1hbmQgPSBBVEFfQ01EX1BBQ0tFVDsKIApAQCAtMTQ0NSw3ICsxNTY0LDkgQEAKIAogCWNhc2UgQVRBX0RFVl9BVEFQSToKIAkJaWYgKCEocWMtPmFwLT5wZmxhZ3MgJiBBVEFfUEZMQUdfRlJPWkVOKSkgewotCQkJdG1wID0gYXRhcGlfZWhfcmVxdWVzdF9zZW5zZShxYyk7CisJCQl0bXAgPSBhdGFwaV9laF9yZXF1ZXN0X3NlbnNlKHFjLT5kZXYsCisJCQkJCQlxYy0+c2NzaWNtZC0+c2Vuc2VfYnVmZmVyLAorCQkJCQkJcWMtPnJlc3VsdF90Zi5mZWF0dXJlID4+IDQpOwogCQkJaWYgKCF0bXApIHsKIAkJCQkvKiBBVEFfUUNGTEFHX1NFTlNFX1ZBTElEIGlzIHVzZWQgdG8KIAkJCQkgKiB0ZWxsIGF0YXBpX3FjX2NvbXBsZXRlKCkgdGhhdCBzZW5zZQpAQCAtMjA3MSwxMyArMjE5MiwxMiBAQAogCQkgYXRhX3ByZXJlc2V0X2ZuX3QgcHJlcmVzZXQsIGF0YV9yZXNldF9mbl90IHNvZnRyZXNldCwKIAkJIGF0YV9yZXNldF9mbl90IGhhcmRyZXNldCwgYXRhX3Bvc3RyZXNldF9mbl90IHBvc3RyZXNldCkKIHsKLQljb25zdCBpbnQgbWF4X3RyaWVzID0gQVJSQVlfU0laRShhdGFfZWhfcmVzZXRfdGltZW91dHMpOwogCXN0cnVjdCBhdGFfcG9ydCAqYXAgPSBsaW5rLT5hcDsKIAlzdHJ1Y3QgYXRhX2VoX2NvbnRleHQgKmVoYyA9ICZsaW5rLT5laF9jb250ZXh0OwogCXVuc2lnbmVkIGludCAqY2xhc3NlcyA9IGVoYy0+Y2xhc3NlczsKIAl1bnNpZ25lZCBpbnQgbGZsYWdzID0gbGluay0+ZmxhZ3M7CiAJaW50IHZlcmJvc2UgPSAhKGVoYy0+aS5mbGFncyAmIEFUQV9FSElfUVVJRVQpOwotCWludCB0cnkgPSAwOworCWludCBtYXhfdHJpZXMgPSAwLCB0cnkgPSAwOwogCXN0cnVjdCBhdGFfZGV2aWNlICpkZXY7CiAJdW5zaWduZWQgbG9uZyBkZWFkbGluZSwgbm93OwogCWF0YV9yZXNldF9mbl90IHJlc2V0OwpAQCAtMjA4OCwxMSArMjIwOCwyMCBAQAogCS8qCiAJICogUHJlcGFyZSB0byByZXNldAogCSAqLworCXdoaWxlIChhdGFfZWhfcmVzZXRfdGltZW91dHNbbWF4X3RyaWVzXSAhPSBVTE9OR19NQVgpCisJCW1heF90cmllcysrOworCisJbm93ID0gamlmZmllczsKKwlkZWFkbGluZSA9IGF0YV9kZWFkbGluZShlaGMtPmxhc3RfcmVzZXQsIEFUQV9FSF9SRVNFVF9DT09MX0RPV04pOworCWlmICh0aW1lX2JlZm9yZShub3csIGRlYWRsaW5lKSkKKwkJc2NoZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUoZGVhZGxpbmUgLSBub3cpOworCiAJc3Bpbl9sb2NrX2lycXNhdmUoYXAtPmxvY2ssIGZsYWdzKTsKIAlhcC0+cGZsYWdzIHw9IEFUQV9QRkxBR19SRVNFVFRJTkc7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShhcC0+bG9jaywgZmxhZ3MpOwogCiAJYXRhX2VoX2Fib3V0X3RvX2RvKGxpbmssIE5VTEwsIEFUQV9FSF9SRVNFVCk7CisJZWhjLT5sYXN0X3Jlc2V0ID0gamlmZmllczsKIAogCWF0YV9saW5rX2Zvcl9lYWNoX2RldihkZXYsIGxpbmspIHsKIAkJLyogSWYgd2UgaXNzdWUgYW4gU1JTVCB0aGVuIGFuIEFUQSBkcml2ZSAobm90IEFUQVBJKQpAQCAtMjEyNSw3ICsyMjU0LDggQEAKIAl9CiAKIAlpZiAocHJlcmVzZXQpIHsKLQkJcmMgPSBwcmVyZXNldChsaW5rLCBqaWZmaWVzICsgQVRBX0VIX1BSRVJFU0VUX1RJTUVPVVQpOworCQlyYyA9IHByZXJlc2V0KGxpbmssCisJCQkgICAgICBhdGFfZGVhZGxpbmUoamlmZmllcywgQVRBX0VIX1BSRVJFU0VUX1RJTUVPVVQpKTsKIAkJaWYgKHJjKSB7CiAJCQlpZiAocmMgPT0gLUVOT0VOVCkgewogCQkJCWF0YV9saW5rX3ByaW50ayhsaW5rLCBLRVJOX0RFQlVHLApAQCAtMjE1NywxMCArMjI4NywxMSBAQAogCS8qCiAJICogUGVyZm9ybSByZXNldAogCSAqLworCWVoYy0+bGFzdF9yZXNldCA9IGppZmZpZXM7CiAJaWYgKGF0YV9pc19ob3N0X2xpbmsobGluaykpCiAJCWF0YV9laF9mcmVlemVfcG9ydChhcCk7CiAKLQlkZWFkbGluZSA9IGppZmZpZXMgKyBhdGFfZWhfcmVzZXRfdGltZW91dHNbdHJ5KytdOworCWRlYWRsaW5lID0gYXRhX2RlYWRsaW5lKGppZmZpZXMsIGF0YV9laF9yZXNldF90aW1lb3V0c1t0cnkrK10pOwogCiAJaWYgKHJlc2V0KSB7CiAJCWlmICh2ZXJib3NlKQpAQCAtMjI3Nyw2ICsyNDA4LDcgQEAKIAogCS8qIHJlc2V0IHN1Y2Nlc3NmdWwsIHNjaGVkdWxlIHJldmFsaWRhdGlvbiAqLwogCWF0YV9laF9kb25lKGxpbmssIE5VTEwsIEFUQV9FSF9SRVNFVCk7CisJZWhjLT5sYXN0X3Jlc2V0ID0gamlmZmllczsKIAllaGMtPmkuYWN0aW9uIHw9IEFUQV9FSF9SRVZBTElEQVRFOwogCiAJcmMgPSAwOwpAQCAtMjMwMyw5ICsyNDM1LDkgQEAKIAlpZiAodGltZV9iZWZvcmUobm93LCBkZWFkbGluZSkpIHsKIAkJdW5zaWduZWQgbG9uZyBkZWx0YSA9IGRlYWRsaW5lIC0gbm93OwogCi0JCWF0YV9saW5rX3ByaW50ayhsaW5rLCBLRVJOX1dBUk5JTkcsICJyZXNldCBmYWlsZWQgIgotCQkJCSIoZXJybm89JWQpLCByZXRyeWluZyBpbiAldSBzZWNzXG4iLAotCQkJCXJjLCAoamlmZmllc190b19tc2VjcyhkZWx0YSkgKyA5OTkpIC8gMTAwMCk7CisJCWF0YV9saW5rX3ByaW50ayhsaW5rLCBLRVJOX1dBUk5JTkcsCisJCQkicmVzZXQgZmFpbGVkIChlcnJubz0lZCksIHJldHJ5aW5nIGluICV1IHNlY3NcbiIsCisJCQlyYywgRElWX1JPVU5EX1VQKGppZmZpZXNfdG9fbXNlY3MoZGVsdGEpLCAxMDAwKSk7CiAKIAkJd2hpbGUgKGRlbHRhKQogCQkJZGVsdGEgPSBzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShkZWx0YSk7CkBAIC0yNTgzLDggKzI3MTUsMTEgQEAKIAkJCWF0YV9laF9kZXRhY2hfZGV2KGRldik7CiAKIAkJLyogc2NoZWR1bGUgcHJvYmUgaWYgbmVjZXNzYXJ5ICovCi0JCWlmIChhdGFfZWhfc2NoZWR1bGVfcHJvYmUoZGV2KSkKKwkJaWYgKGF0YV9laF9zY2hlZHVsZV9wcm9iZShkZXYpKSB7CiAJCQllaGMtPnRyaWVzW2Rldi0+ZGV2bm9dID0gQVRBX0VIX0RFVl9UUklFUzsKKwkJCW1lbXNldChlaGMtPmNtZF90aW1lb3V0X2lkeFtkZXYtPmRldm5vXSwgMCwKKwkJCSAgICAgICBzaXplb2YoZWhjLT5jbWRfdGltZW91dF9pZHhbZGV2LT5kZXZub10pKTsKKwkJfQogCiAJCXJldHVybiAxOwogCX0gZWxzZSB7CkBAIC0yNjIyLDcgKzI3NTcsNyBAQAogewogCXN0cnVjdCBhdGFfbGluayAqbGluazsKIAlzdHJ1Y3QgYXRhX2RldmljZSAqZGV2OwotCWludCBucl9mYWlsZWRfZGV2cywgbnJfZGlzYWJsZWRfZGV2czsKKwlpbnQgbnJfZmFpbGVkX2RldnM7CiAJaW50IHJjOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTI2NjUsNyArMjgwMCw2IEBACiAgcmV0cnk6CiAJcmMgPSAwOwogCW5yX2ZhaWxlZF9kZXZzID0gMDsKLQlucl9kaXNhYmxlZF9kZXZzID0gMDsKIAogCS8qIGlmIFVOTE9BRElORywgZmluaXNoIGltbWVkaWF0ZWx5ICovCiAJaWYgKGFwLT5wZmxhZ3MgJiBBVEFfUEZMQUdfVU5MT0FESU5HKQpAQCAtMjczMiw4ICsyODY2LDcgQEAKIAogZGV2X2ZhaWw6CiAJCW5yX2ZhaWxlZF9kZXZzKys7Ci0JCWlmIChhdGFfZWhfaGFuZGxlX2Rldl9mYWlsKGRldiwgcmMpKQotCQkJbnJfZGlzYWJsZWRfZGV2cysrOworCQlhdGFfZWhfaGFuZGxlX2Rldl9mYWlsKGRldiwgcmMpOwogCiAJCWlmIChhcC0+cGZsYWdzICYgQVRBX1BGTEFHX0ZST1pFTikgewogCQkJLyogUE1QIHJlc2V0IHJlcXVpcmVzIHdvcmtpbmcgaG9zdCBwb3J0LgpAQCAtMjc0NSwxOCArMjg3OCw4IEBACiAJCX0KIAl9CiAKLQlpZiAobnJfZmFpbGVkX2RldnMpIHsKLQkJaWYgKG5yX2ZhaWxlZF9kZXZzICE9IG5yX2Rpc2FibGVkX2RldnMpIHsKLQkJCWF0YV9wb3J0X3ByaW50ayhhcCwgS0VSTl9XQVJOSU5HLCAiZmFpbGVkIHRvIHJlY292ZXIgIgotCQkJCQkic29tZSBkZXZpY2VzLCByZXRyeWluZyBpbiA1IHNlY3NcbiIpOwotCQkJc3NsZWVwKDUpOwotCQl9IGVsc2UgewotCQkJLyogbm8gZGV2aWNlIGxlZnQgdG8gcmVjb3ZlciwgcmVwZWF0IGZhc3QgKi8KLQkJCW1zbGVlcCg1MDApOwotCQl9Ci0KKwlpZiAobnJfZmFpbGVkX2RldnMpCiAJCWdvdG8gcmV0cnk7Ci0JfQogCiAgb3V0OgogCWlmIChyYyAmJiByX2ZhaWxlZF9saW5rKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLXBtcC5jIGIvZHJpdmVycy9hdGEvbGliYXRhLXBtcC5jCmluZGV4IDdkYWY0YzAuLmI2NWRiMzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAuYworKysgYi9kcml2ZXJzL2F0YS9saWJhdGEtcG1wLmMKQEAgLTcyNywxOSArNzI3LDEyIEBACiAJCX0KIAogCQlpZiAodHJpZXMpIHsKLQkJCWludCBzbGVlcCA9IGVoYy0+aS5mbGFncyAmIEFUQV9FSElfRElEX1JFU0VUOwotCiAJCQkvKiBjb25zZWN1dGl2ZSByZXZhbGlkYXRpb24gZmFpbHVyZXM/IHNwZWVkIGRvd24gKi8KIAkJCWlmIChyZXZhbF9mYWlsZWQpCiAJCQkJc2F0YV9kb3duX3NwZF9saW1pdChsaW5rKTsKIAkJCWVsc2UKIAkJCQlyZXZhbF9mYWlsZWQgPSAxOwogCi0JCQlhdGFfZGV2X3ByaW50ayhkZXYsIEtFUk5fV0FSTklORywKLQkJCQkgICAgICAgInJldHJ5aW5nIHJlc2V0JXNcbiIsCi0JCQkJICAgICAgIHNsZWVwID8gIiBpbiA1IHNlY3MiIDogIiIpOwotCQkJaWYgKHNsZWVwKQotCQkJCXNzbGVlcCg1KTsKIAkJCWVoYy0+aS5hY3Rpb24gfD0gQVRBX0VIX1JFU0VUOwogCQkJZ290byByZXRyeTsKIAkJfSBlbHNlIHsKQEAgLTc4NSw3ICs3NzgsOCBAQAogCQkgKiBTRXJyb3IuTiB3b3JraW5nLgogCQkgKi8KIAkJc2F0YV9saW5rX2hhcmRyZXNldChsaW5rLCBzYXRhX2RlYl90aW1pbmdfbm9ybWFsLAotCQkJCWppZmZpZXMgKyBBVEFfVE1PVVRfSU5URVJOQUxfUVVJQ0ssIE5VTEwsIE5VTEwpOworCQkJCWF0YV9kZWFkbGluZShqaWZmaWVzLCBBVEFfVE1PVVRfSU5URVJOQUxfUVVJQ0spLAorCQkJCU5VTEwsIE5VTEwpOwogCiAJCS8qIHVuY29uZGl0aW9uYWxseSBjbGVhciBTRXJyb3IuTiAqLwogCQlyYyA9IHNhdGFfc2NyX3dyaXRlKGxpbmssIFNDUl9FUlJPUiwgU0VSUl9QSFlSRFlfQ0hHKTsKQEAgLTk5MCwxMCArOTg0LDcgQEAKIAkJZ290byByZXRyeTsKIAogCWlmICgtLXBtcF90cmllcykgewotCQlhdGFfcG9ydF9wcmludGsoYXAsIEtFUk5fV0FSTklORywKLQkJCQkiZmFpbGVkIHRvIHJlY292ZXIgUE1QLCByZXRyeWluZyBpbiA1IHNlY3NcbiIpOwogCQlwbXBfZWhjLT5pLmFjdGlvbiB8PSBBVEFfRUhfUkVTRVQ7Ci0JCXNzbGVlcCg1KTsKIAkJZ290byByZXRyeTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zY3NpLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtc2NzaS5jCmluZGV4IDU3YTQzNjQuLmYzYjRiMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zY3NpLmMKKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLXNjc2kuYwpAQCAtMTkwLDYgKzE5MCw4NSBAQAogCXNjc2lfYnVpbGRfc2Vuc2VfYnVmZmVyKDAsIGNtZC0+c2Vuc2VfYnVmZmVyLCBzaywgYXNjLCBhc2NxKTsKIH0KIAorc3RhdGljIHNzaXplX3QKK2F0YV9zY3NpX2VtX21lc3NhZ2Vfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBjbGFzc190b19zaG9zdChkZXYpOworCXN0cnVjdCBhdGFfcG9ydCAqYXAgPSBhdGFfc2hvc3RfdG9fcG9ydChzaG9zdCk7CisJaWYgKGFwLT5vcHMtPmVtX3N0b3JlICYmIChhcC0+ZmxhZ3MgJiBBVEFfRkxBR19FTSkpCisJCXJldHVybiBhcC0+b3BzLT5lbV9zdG9yZShhcCwgYnVmLCBjb3VudCk7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBzc2l6ZV90CithdGFfc2NzaV9lbV9tZXNzYWdlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSBjaGFyICpidWYpCit7CisJc3RydWN0IFNjc2lfSG9zdCAqc2hvc3QgPSBjbGFzc190b19zaG9zdChkZXYpOworCXN0cnVjdCBhdGFfcG9ydCAqYXAgPSBhdGFfc2hvc3RfdG9fcG9ydChzaG9zdCk7CisKKwlpZiAoYXAtPm9wcy0+ZW1fc2hvdyAmJiAoYXAtPmZsYWdzICYgQVRBX0ZMQUdfRU0pKQorCQlyZXR1cm4gYXAtPm9wcy0+ZW1fc2hvdyhhcCwgYnVmKTsKKwlyZXR1cm4gLUVJTlZBTDsKK30KK0RFVklDRV9BVFRSKGVtX21lc3NhZ2UsIFNfSVJVR08gfCBTX0lXVUdPLAorCQlhdGFfc2NzaV9lbV9tZXNzYWdlX3Nob3csIGF0YV9zY3NpX2VtX21lc3NhZ2Vfc3RvcmUpOworRVhQT1JUX1NZTUJPTF9HUEwoZGV2X2F0dHJfZW1fbWVzc2FnZSk7CisKK3N0YXRpYyBzc2l6ZV90CithdGFfc2NzaV9lbV9tZXNzYWdlX3R5cGVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJICAgICAgY2hhciAqYnVmKQoreworCXN0cnVjdCBTY3NpX0hvc3QgKnNob3N0ID0gY2xhc3NfdG9fc2hvc3QoZGV2KTsKKwlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gYXRhX3Nob3N0X3RvX3BvcnQoc2hvc3QpOworCisJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgMjMsICIlZFxuIiwgYXAtPmVtX21lc3NhZ2VfdHlwZSk7Cit9CitERVZJQ0VfQVRUUihlbV9tZXNzYWdlX3R5cGUsIFNfSVJVR08sCisJCSAgYXRhX3Njc2lfZW1fbWVzc2FnZV90eXBlX3Nob3csIE5VTEwpOworRVhQT1JUX1NZTUJPTF9HUEwoZGV2X2F0dHJfZW1fbWVzc2FnZV90eXBlKTsKKworc3RhdGljIHNzaXplX3QKK2F0YV9zY3NpX2FjdGl2aXR5X3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJY2hhciAqYnVmKQoreworCXN0cnVjdCBzY3NpX2RldmljZSAqc2RldiA9IHRvX3Njc2lfZGV2aWNlKGRldik7CisJc3RydWN0IGF0YV9wb3J0ICphcCA9IGF0YV9zaG9zdF90b19wb3J0KHNkZXYtPmhvc3QpOworCXN0cnVjdCBhdGFfZGV2aWNlICphdGFkZXYgPSBhdGFfc2NzaV9maW5kX2RldihhcCwgc2Rldik7CisKKwlpZiAoYXAtPm9wcy0+c3dfYWN0aXZpdHlfc2hvdyAmJiAoYXAtPmZsYWdzICYgQVRBX0ZMQUdfU1dfQUNUSVZJVFkpKQorCQlyZXR1cm4gYXAtPm9wcy0+c3dfYWN0aXZpdHlfc2hvdyhhdGFkZXYsIGJ1Zik7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBzc2l6ZV90CithdGFfc2NzaV9hY3Rpdml0eV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBzY3NpX2RldmljZSAqc2RldiA9IHRvX3Njc2lfZGV2aWNlKGRldik7CisJc3RydWN0IGF0YV9wb3J0ICphcCA9IGF0YV9zaG9zdF90b19wb3J0KHNkZXYtPmhvc3QpOworCXN0cnVjdCBhdGFfZGV2aWNlICphdGFkZXYgPSBhdGFfc2NzaV9maW5kX2RldihhcCwgc2Rldik7CisJZW51bSBzd19hY3Rpdml0eSB2YWw7CisJaW50IHJjOworCisJaWYgKGFwLT5vcHMtPnN3X2FjdGl2aXR5X3N0b3JlICYmIChhcC0+ZmxhZ3MgJiBBVEFfRkxBR19TV19BQ1RJVklUWSkpIHsKKwkJdmFsID0gc2ltcGxlX3N0cnRvdWwoYnVmLCBOVUxMLCAwKTsKKwkJc3dpdGNoICh2YWwpIHsKKwkJY2FzZSBPRkY6IGNhc2UgQkxJTktfT046IGNhc2UgQkxJTktfT0ZGOgorCQkJcmMgPSBhcC0+b3BzLT5zd19hY3Rpdml0eV9zdG9yZShhdGFkZXYsIHZhbCk7CisJCQlpZiAoIXJjKQorCQkJCXJldHVybiBjb3VudDsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gcmM7CisJCX0KKwl9CisJcmV0dXJuIC1FSU5WQUw7Cit9CitERVZJQ0VfQVRUUihzd19hY3Rpdml0eSwgU19JV1VHTyB8IFNfSVJVR08sIGF0YV9zY3NpX2FjdGl2aXR5X3Nob3csCisJCQlhdGFfc2NzaV9hY3Rpdml0eV9zdG9yZSk7CitFWFBPUlRfU1lNQk9MX0dQTChkZXZfYXR0cl9zd19hY3Rpdml0eSk7CisKIHN0YXRpYyB2b2lkIGF0YV9zY3NpX2ludmFsaWRfZmllbGQoc3RydWN0IHNjc2lfY21uZCAqY21kLAogCQkJCSAgIHZvaWQgKCpkb25lKShzdHJ1Y3Qgc2NzaV9jbW5kICopKQogewpAQCAtODg1LDcgKzk2NCw4IEBACiAJCS8qIHNldCB0aGUgbWluIGFsaWdubWVudCBhbmQgcGFkZGluZyAqLwogCQlibGtfcXVldWVfdXBkYXRlX2RtYV9hbGlnbm1lbnQoc2Rldi0+cmVxdWVzdF9xdWV1ZSwKIAkJCQkJICAgICAgIEFUQV9ETUFfUEFEX1NaIC0gMSk7Ci0JCWJsa19xdWV1ZV9kbWFfcGFkKHNkZXYtPnJlcXVlc3RfcXVldWUsIEFUQV9ETUFfUEFEX1NaIC0gMSk7CisJCWJsa19xdWV1ZV91cGRhdGVfZG1hX3BhZChzZGV2LT5yZXF1ZXN0X3F1ZXVlLAorCQkJCQkgQVRBX0RNQV9QQURfU1ogLSAxKTsKIAogCQkvKiBjb25maWd1cmUgZHJhaW5pbmcgKi8KIAkJYnVmID0ga21hbGxvYyhBVEFQSV9NQVhfRFJBSU4sIHEtPmJvdW5jZV9nZnAgfCBHRlBfS0VSTkVMKTsKQEAgLTE3NzgsNyArMTg1OCw5IEBACiAJY29uc3QgdTggcGFnZXNbXSA9IHsKIAkJMHgwMCwJLyogcGFnZSAweDAwLCB0aGlzIHBhZ2UgKi8KIAkJMHg4MCwJLyogcGFnZSAweDgwLCB1bml0IHNlcmlhbCBubyBwYWdlICovCi0JCTB4ODMJLyogcGFnZSAweDgzLCBkZXZpY2UgaWRlbnQgcGFnZSAqLworCQkweDgzLAkvKiBwYWdlIDB4ODMsIGRldmljZSBpZGVudCBwYWdlICovCisJCTB4ODksCS8qIHBhZ2UgMHg4OSwgYXRhIGluZm8gcGFnZSAqLworCQkweGIxLAkvKiBwYWdlIDB4YjEsIGJsb2NrIGRldmljZSBjaGFyYWN0ZXJpc3RpY3MgcGFnZSAqLwogCX07CiAKIAlyYnVmWzNdID0gc2l6ZW9mKHBhZ2VzKTsJLyogbnVtYmVyIG9mIHN1cHBvcnRlZCBWUEQgcGFnZXMgKi8KQEAgLTE4OTksNiArMTk4MSwxOSBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IGF0YV9zY3Npb3BfaW5xX2IxKHN0cnVjdCBhdGFfc2NzaV9hcmdzICphcmdzLCB1OCAqcmJ1ZikKK3sKKwlyYnVmWzFdID0gMHhiMTsKKwlyYnVmWzNdID0gMHgzYzsKKwlpZiAoYXRhX2lkX21ham9yX3ZlcnNpb24oYXJncy0+aWQpID4gNykgeworCQlyYnVmWzRdID0gYXJncy0+aWRbMjE3XSA+PiA4OworCQlyYnVmWzVdID0gYXJncy0+aWRbMjE3XTsKKwkJcmJ1Zls3XSA9IGFyZ3MtPmlkWzE2OF0gJiAweGY7CisJfQorCisJcmV0dXJuIDA7Cit9CisKIC8qKgogICoJYXRhX3Njc2lvcF9ub29wIC0gQ29tbWFuZCBoYW5kbGVyIHRoYXQgc2ltcGx5IHJldHVybnMgc3VjY2Vzcy4KICAqCUBhcmdzOiBkZXZpY2UgSURFTlRJRlkgZGF0YSAvIFNDU0kgY29tbWFuZCBvZiBpbnRlcmVzdC4KQEAgLTI5MjAsNiArMzAxNSw5IEBACiAJCWNhc2UgMHg4OToKIAkJCWF0YV9zY3NpX3JidWZfZmlsbCgmYXJncywgYXRhX3Njc2lvcF9pbnFfODkpOwogCQkJYnJlYWs7CisJCWNhc2UgMHhiMToKKwkJCWF0YV9zY3NpX3JidWZfZmlsbCgmYXJncywgYXRhX3Njc2lvcF9pbnFfYjEpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlhdGFfc2NzaV9pbnZhbGlkX2ZpZWxkKGNtZCwgZG9uZSk7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zZmYuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1zZmYuYwppbmRleCAyMTVkMTg2Li4zMDRmZGM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEtc2ZmLmMKKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLXNmZi5jCkBAIC0zNDUsOCArMzQ1LDggQEAKIC8qKgogICoJYXRhX3NmZl9idXN5X3NsZWVwIC0gc2xlZXAgdW50aWwgQlNZIGNsZWFycywgb3IgdGltZW91dAogICoJQGFwOiBwb3J0IGNvbnRhaW5pbmcgc3RhdHVzIHJlZ2lzdGVyIHRvIGJlIHBvbGxlZAotICoJQHRtb3V0X3BhdDogaW1wYXRpZW5jZSB0aW1lb3V0Ci0gKglAdG1vdXQ6IG92ZXJhbGwgdGltZW91dAorICoJQHRtb3V0X3BhdDogaW1wYXRpZW5jZSB0aW1lb3V0IGluIG1zZWNzCisgKglAdG1vdXQ6IG92ZXJhbGwgdGltZW91dCBpbiBtc2VjcwogICoKICAqCVNsZWVwIHVudGlsIEFUQSBTdGF0dXMgcmVnaXN0ZXIgYml0IEJTWSBjbGVhcnMsCiAgKglvciBhIHRpbWVvdXQgb2NjdXJzLgpAQCAtMzY1LDcgKzM2NSw3IEBACiAKIAlzdGF0dXMgPSBhdGFfc2ZmX2J1c3lfd2FpdChhcCwgQVRBX0JVU1ksIDMwMCk7CiAJdGltZXJfc3RhcnQgPSBqaWZmaWVzOwotCXRpbWVvdXQgPSB0aW1lcl9zdGFydCArIHRtb3V0X3BhdDsKKwl0aW1lb3V0ID0gYXRhX2RlYWRsaW5lKHRpbWVyX3N0YXJ0LCB0bW91dF9wYXQpOwogCXdoaWxlIChzdGF0dXMgIT0gMHhmZiAmJiAoc3RhdHVzICYgQVRBX0JVU1kpICYmCiAJICAgICAgIHRpbWVfYmVmb3JlKGppZmZpZXMsIHRpbWVvdXQpKSB7CiAJCW1zbGVlcCg1MCk7CkBAIC0zNzcsNyArMzc3LDcgQEAKIAkJCQkicG9ydCBpcyBzbG93IHRvIHJlc3BvbmQsIHBsZWFzZSBiZSBwYXRpZW50ICIKIAkJCQkiKFN0YXR1cyAweCV4KVxuIiwgc3RhdHVzKTsKIAotCXRpbWVvdXQgPSB0aW1lcl9zdGFydCArIHRtb3V0OworCXRpbWVvdXQgPSBhdGFfZGVhZGxpbmUodGltZXJfc3RhcnQsIHRtb3V0KTsKIAl3aGlsZSAoc3RhdHVzICE9IDB4ZmYgJiYgKHN0YXR1cyAmIEFUQV9CVVNZKSAmJgogCSAgICAgICB0aW1lX2JlZm9yZShqaWZmaWVzLCB0aW1lb3V0KSkgewogCQltc2xlZXAoNTApOwpAQCAtMzkwLDcgKzM5MCw3IEBACiAJaWYgKHN0YXR1cyAmIEFUQV9CVVNZKSB7CiAJCWF0YV9wb3J0X3ByaW50ayhhcCwgS0VSTl9FUlIsICJwb3J0IGZhaWxlZCB0byByZXNwb25kICIKIAkJCQkiKCVsdSBzZWNzLCBTdGF0dXMgMHgleClcbiIsCi0JCQkJdG1vdXQgLyBIWiwgc3RhdHVzKTsKKwkJCQlESVZfUk9VTkRfVVAodG1vdXQsIDEwMDApLCBzdGF0dXMpOwogCQlyZXR1cm4gLUVCVVNZOwogCX0KIApAQCAtMTA5NCw2ICsxMDk0LDcgQEAKIGludCBhdGFfc2ZmX2hzbV9tb3ZlKHN0cnVjdCBhdGFfcG9ydCAqYXAsIHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMsCiAJCSAgICAgdTggc3RhdHVzLCBpbnQgaW5fd3EpCiB7CisJc3RydWN0IGF0YV9laF9pbmZvICplaGkgPSAmYXAtPmxpbmsuZWhfaW5mbzsKIAl1bnNpZ25lZCBsb25nIGZsYWdzID0gMDsKIAlpbnQgcG9sbF9uZXh0OwogCkBAIC0xMTI1LDkgKzExMjYsMTIgQEAKIAkJCWlmIChsaWtlbHkoc3RhdHVzICYgKEFUQV9FUlIgfCBBVEFfREYpKSkKIAkJCQkvKiBkZXZpY2Ugc3RvcHMgSFNNIGZvciBhYm9ydC9lcnJvciAqLwogCQkJCXFjLT5lcnJfbWFzayB8PSBBQ19FUlJfREVWOwotCQkJZWxzZQorCQkJZWxzZSB7CiAJCQkJLyogSFNNIHZpb2xhdGlvbi4gTGV0IEVIIGhhbmRsZSB0aGlzICovCisJCQkJYXRhX2VoaV9wdXNoX2Rlc2MoZWhpLAorCQkJCQkiU1RfRklSU1Q6ICEoRFJRfEVSUnxERikiKTsKIAkJCQlxYy0+ZXJyX21hc2sgfD0gQUNfRVJSX0hTTTsKKwkJCX0KIAogCQkJYXAtPmhzbV90YXNrX3N0YXRlID0gSFNNX1NUX0VSUjsKIAkJCWdvdG8gZnNtX3N0YXJ0OwpAQCAtMTE0Niw5ICsxMTUwLDkgQEAKIAkJCSAqIHRoZSBDREIuCiAJCQkgKi8KIAkJCWlmICghKHFjLT5kZXYtPmhvcmthZ2UgJiBBVEFfSE9SS0FHRV9TVFVDS19FUlIpKSB7Ci0JCQkJYXRhX3BvcnRfcHJpbnRrKGFwLCBLRVJOX1dBUk5JTkcsCi0JCQkJCQkiRFJRPTEgd2l0aCBkZXZpY2UgZXJyb3IsICIKLQkJCQkJCSJkZXZfc3RhdCAweCVYXG4iLCBzdGF0dXMpOworCQkJCWF0YV9laGlfcHVzaF9kZXNjKGVoaSwgIlNUX0ZJUlNUOiAiCisJCQkJCSJEUlE9MSB3aXRoIGRldmljZSBlcnJvciwgIgorCQkJCQkiZGV2X3N0YXQgMHglWCIsIHN0YXR1cyk7CiAJCQkJcWMtPmVycl9tYXNrIHw9IEFDX0VSUl9IU007CiAJCQkJYXAtPmhzbV90YXNrX3N0YXRlID0gSFNNX1NUX0VSUjsKIAkJCQlnb3RvIGZzbV9zdGFydDsKQEAgLTEyMDUsOSArMTIwOSw5IEBACiAJCQkgKiBsZXQgdGhlIEVIIGFib3J0IHRoZSBjb21tYW5kIG9yIHJlc2V0IHRoZSBkZXZpY2UuCiAJCQkgKi8KIAkJCWlmICh1bmxpa2VseShzdGF0dXMgJiAoQVRBX0VSUiB8IEFUQV9ERikpKSB7Ci0JCQkJYXRhX3BvcnRfcHJpbnRrKGFwLCBLRVJOX1dBUk5JTkcsICJEUlE9MSB3aXRoICIKLQkJCQkJCSJkZXZpY2UgZXJyb3IsIGRldl9zdGF0IDB4JVhcbiIsCi0JCQkJCQlzdGF0dXMpOworCQkJCWF0YV9laGlfcHVzaF9kZXNjKGVoaSwgIlNULUFUQVBJOiAiCisJCQkJCSJEUlE9MSB3aXRoIGRldmljZSBlcnJvciwgIgorCQkJCQkiZGV2X3N0YXQgMHglWCIsIHN0YXR1cyk7CiAJCQkJcWMtPmVycl9tYXNrIHw9IEFDX0VSUl9IU007CiAJCQkJYXAtPmhzbV90YXNrX3N0YXRlID0gSFNNX1NUX0VSUjsKIAkJCQlnb3RvIGZzbV9zdGFydDsKQEAgLTEyMjYsMTMgKzEyMzAsMTcgQEAKIAkJCQlpZiAobGlrZWx5KHN0YXR1cyAmIChBVEFfRVJSIHwgQVRBX0RGKSkpCiAJCQkJCS8qIGRldmljZSBzdG9wcyBIU00gZm9yIGFib3J0L2Vycm9yICovCiAJCQkJCXFjLT5lcnJfbWFzayB8PSBBQ19FUlJfREVWOwotCQkJCWVsc2UKKwkJCQllbHNlIHsKIAkJCQkJLyogSFNNIHZpb2xhdGlvbi4gTGV0IEVIIGhhbmRsZSB0aGlzLgogCQkJCQkgKiBQaGFudG9tIGRldmljZXMgYWxzbyB0cmlnZ2VyIHRoaXMKIAkJCQkJICogY29uZGl0aW9uLiAgTWFyayBoaW50LgogCQkJCQkgKi8KKwkJCQkJYXRhX2VoaV9wdXNoX2Rlc2MoZWhpLCAiU1QtQVRBOiAiCisJCQkJCQkiRFJRPTEgd2l0aCBkZXZpY2UgZXJyb3IsICIKKwkJCQkJCSJkZXZfc3RhdCAweCVYIiwgc3RhdHVzKTsKIAkJCQkJcWMtPmVycl9tYXNrIHw9IEFDX0VSUl9IU00gfAogCQkJCQkJCUFDX0VSUl9OT0RFVl9ISU5UOworCQkJCX0KIAogCQkJCWFwLT5oc21fdGFza19zdGF0ZSA9IEhTTV9TVF9FUlI7CiAJCQkJZ290byBmc21fc3RhcnQ7CkBAIC0xMjU3LDggKzEyNjUsMTIgQEAKIAkJCQkJc3RhdHVzID0gYXRhX3dhaXRfaWRsZShhcCk7CiAJCQkJfQogCi0JCQkJaWYgKHN0YXR1cyAmIChBVEFfQlVTWSB8IEFUQV9EUlEpKQorCQkJCWlmIChzdGF0dXMgJiAoQVRBX0JVU1kgfCBBVEFfRFJRKSkgeworCQkJCQlhdGFfZWhpX3B1c2hfZGVzYyhlaGksICJTVC1BVEE6ICIKKwkJCQkJCSJCVVNZfERSUSBwZXJzaXN0cyBvbiBFUlJ8REYsICIKKwkJCQkJCSJkZXZfc3RhdCAweCVYIiwgc3RhdHVzKTsKIAkJCQkJcWMtPmVycl9tYXNrIHw9IEFDX0VSUl9IU007CisJCQkJfQogCiAJCQkJLyogYXRhX3Bpb19zZWN0b3JzKCkgbWlnaHQgY2hhbmdlIHRoZQogCQkJCSAqIHN0YXRlIHRvIEhTTV9TVF9MQVNULiBzbywgdGhlIHN0YXRlCkBAIC0xODc2LDcgKzE4ODgsNyBAQAogCXVuc2lnbmVkIGludCBkZXYxID0gZGV2bWFzayAmICgxIDw8IDEpOwogCWludCByYywgcmV0ID0gMDsKIAotCW1zbGVlcChBVEFfV0FJVF9BRlRFUl9SRVNFVF9NU0VDUyk7CisJbXNsZWVwKEFUQV9XQUlUX0FGVEVSX1JFU0VUKTsKIAogCS8qIGFsd2F5cyBjaGVjayByZWFkaW5lc3Mgb2YgdGhlIG1hc3RlciBkZXZpY2UgKi8KIAlyYyA9IGF0YV9zZmZfd2FpdF9yZWFkeShsaW5rLCBkZWFkbGluZSk7CkBAIC0yMzU5LDcgKzIzNzEsOCBAQAogCiAJLyogaXNzdWUgYnVzIHJlc2V0ICovCiAJaWYgKGFwLT5mbGFncyAmIEFUQV9GTEFHX1NSU1QpIHsKLQkJcmMgPSBhdGFfYnVzX3NvZnRyZXNldChhcCwgZGV2bWFzaywgamlmZmllcyArIDQwICogSFopOworCQlyYyA9IGF0YV9idXNfc29mdHJlc2V0KGFwLCBkZXZtYXNrLAorCQkJCSAgICAgICBhdGFfZGVhZGxpbmUoamlmZmllcywgNDAwMDApKTsKIAkJaWYgKHJjICYmIHJjICE9IC1FTk9ERVYpCiAJCQlnb3RvIGVycl9vdXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLmggYi9kcml2ZXJzL2F0YS9saWJhdGEuaAppbmRleCAxY2Y4MDNhLi5mNmY5YzI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEuaAorKysgYi9kcml2ZXJzL2F0YS9saWJhdGEuaApAQCAtMTUxLDYgKzE1MSw4IEBACiBleHRlcm4gaW50IGF0YV9idXNfcHJvYmUoc3RydWN0IGF0YV9wb3J0ICphcCk7CiAKIC8qIGxpYmF0YS1laC5jICovCitleHRlcm4gdW5zaWduZWQgbG9uZyBhdGFfaW50ZXJuYWxfY21kX3RpbWVvdXQoc3RydWN0IGF0YV9kZXZpY2UgKmRldiwgdTggY21kKTsKK2V4dGVybiB2b2lkIGF0YV9pbnRlcm5hbF9jbWRfdGltZWRfb3V0KHN0cnVjdCBhdGFfZGV2aWNlICpkZXYsIHU4IGNtZCk7CiBleHRlcm4gZW51bSBzY3NpX2VoX3RpbWVyX3JldHVybiBhdGFfc2NzaV90aW1lZF9vdXQoc3RydWN0IHNjc2lfY21uZCAqY21kKTsKIGV4dGVybiB2b2lkIGF0YV9zY3NpX2Vycm9yKHN0cnVjdCBTY3NpX0hvc3QgKmhvc3QpOwogZXh0ZXJuIHZvaWQgYXRhX3BvcnRfd2FpdF9laChzdHJ1Y3QgYXRhX3BvcnQgKmFwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3BhdGFfYmY1NHguYyBiL2RyaXZlcnMvYXRhL3BhdGFfYmY1NHguYwppbmRleCA1NTUxNjEwLi5kMzkzMjkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9wYXRhX2JmNTR4LmMKKysrIGIvZHJpdmVycy9hdGEvcGF0YV9iZjU0eC5jCkBAIC0xMDExLDcgKzEwMTEsNyBAQAogCXZvaWQgX19pb21lbSAqYmFzZSA9ICh2b2lkIF9faW9tZW0gKilhcC0+aW9hZGRyLmN0bF9hZGRyOwogCXVuc2lnbmVkIGludCBkZXYwID0gZGV2bWFzayAmICgxIDw8IDApOwogCXVuc2lnbmVkIGludCBkZXYxID0gZGV2bWFzayAmICgxIDw8IDEpOwotCXVuc2lnbmVkIGxvbmcgdGltZW91dDsKKwl1bnNpZ25lZCBsb25nIGRlYWRsaW5lOwogCiAJLyogaWYgZGV2aWNlIDAgd2FzIGZvdW5kIGluIGF0YV9kZXZjaGssIHdhaXQgZm9yIGl0cwogCSAqIEJTWSBiaXQgdG8gY2xlYXIKQEAgLTEwMjIsNyArMTAyMiw3IEBACiAJLyogaWYgZGV2aWNlIDEgd2FzIGZvdW5kIGluIGF0YV9kZXZjaGssIHdhaXQgZm9yCiAJICogcmVnaXN0ZXIgYWNjZXNzLCB0aGVuIHdhaXQgZm9yIEJTWSB0byBjbGVhcgogCSAqLwotCXRpbWVvdXQgPSBqaWZmaWVzICsgQVRBX1RNT1VUX0JPT1Q7CisJZGVhZGxpbmUgPSBhdGFfZGVhZGxpbmUoamlmZmllcywgQVRBX1RNT1VUX0JPT1QpOwogCXdoaWxlIChkZXYxKSB7CiAJCXU4IG5zZWN0LCBsYmFsOwogCkBAIC0xMDMxLDcgKzEwMzEsNyBAQAogCQlsYmFsID0gcmVhZF9hdGFwaV9yZWdpc3RlcihiYXNlLCBBVEFfUkVHX0xCQUwpOwogCQlpZiAoKG5zZWN0ID09IDEpICYmIChsYmFsID09IDEpKQogCQkJYnJlYWs7Ci0JCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQpKSB7CisJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIGRlYWRsaW5lKSkgewogCQkJZGV2MSA9IDA7CiAJCQlicmVhazsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvcGF0YV9sZWdhY3kuYyBiL2RyaXZlcnMvYXRhL3BhdGFfbGVnYWN5LmMKaW5kZXggZmU3Y2M4ZS4uYmMwMzdmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvcGF0YV9sZWdhY3kuYworKysgYi9kcml2ZXJzL2F0YS9wYXRhX2xlZ2FjeS5jCkBAIC0zMDUsNyArMzA1LDcgQEAKIAkJCWlvd3JpdGUzMl9yZXAoYXAtPmlvYWRkci5kYXRhX2FkZHIsIGJ1ZiwgYnVmbGVuID4+IDIpOwogCiAJCWlmICh1bmxpa2VseShzbG9wKSkgewotCQkJdTMyIHBhZDsKKwkJCV9fbGUzMiBwYWQ7CiAJCQlpZiAocncgPT0gUkVBRCkgewogCQkJCXBhZCA9IGNwdV90b19sZTMyKGlvcmVhZDMyKGFwLT5pb2FkZHIuZGF0YV9hZGRyKSk7CiAJCQkJbWVtY3B5KGJ1ZiArIGJ1ZmxlbiAtIHNsb3AsICZwYWQsIHNsb3ApOwpAQCAtNzQ2LDE0ICs3NDYsMTIgQEAKIAkJCWlvcmVhZDMyX3JlcChhcC0+aW9hZGRyLmRhdGFfYWRkciwgYnVmLCBidWZsZW4gPj4gMik7CiAKIAkJaWYgKHVubGlrZWx5KHNsb3ApKSB7Ci0JCQl1MzIgcGFkOworCQkJX19sZTMyIHBhZDsKIAkJCWlmIChydyA9PSBXUklURSkgewogCQkJCW1lbWNweSgmcGFkLCBidWYgKyBidWZsZW4gLSBzbG9wLCBzbG9wKTsKLQkJCQlwYWQgPSBsZTMyX3RvX2NwdShwYWQpOwotCQkJCWlvd3JpdGUzMihwYWQsIGFwLT5pb2FkZHIuZGF0YV9hZGRyKTsKKwkJCQlpb3dyaXRlMzIobGUzMl90b19jcHUocGFkKSwgYXAtPmlvYWRkci5kYXRhX2FkZHIpOwogCQkJfSBlbHNlIHsKLQkJCQlwYWQgPSBpb3JlYWQzMihhcC0+aW9hZGRyLmRhdGFfYWRkcik7Ci0JCQkJcGFkID0gY3B1X3RvX2xlMzIocGFkKTsKKwkJCQlwYWQgPSBjcHVfdG9fbGUzMihpb3JlYWQzMihhcC0+aW9hZGRyLmRhdGFfYWRkcikpOwogCQkJCW1lbWNweShidWYgKyBidWZsZW4gLSBzbG9wLCAmcGFkLCBzbG9wKTsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvcGF0YV9xZGkuYyBiL2RyaXZlcnMvYXRhL3BhdGFfcWRpLmMKaW5kZXggOTdlNWIwOS4uNjNiN2ExYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvcGF0YV9xZGkuYworKysgYi9kcml2ZXJzL2F0YS9wYXRhX3FkaS5jCkBAIC0xMzcsNyArMTM3LDcgQEAKIAkJCWlvd3JpdGUzMl9yZXAoYXAtPmlvYWRkci5kYXRhX2FkZHIsIGJ1ZiwgYnVmbGVuID4+IDIpOwogCiAJCWlmICh1bmxpa2VseShzbG9wKSkgewotCQkJdTMyIHBhZDsKKwkJCV9fbGUzMiBwYWQ7CiAJCQlpZiAocncgPT0gUkVBRCkgewogCQkJCXBhZCA9IGNwdV90b19sZTMyKGlvcmVhZDMyKGFwLT5pb2FkZHIuZGF0YV9hZGRyKSk7CiAJCQkJbWVtY3B5KGJ1ZiArIGJ1ZmxlbiAtIHNsb3AsICZwYWQsIHNsb3ApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvcGF0YV9zY2MuYyBiL2RyaXZlcnMvYXRhL3BhdGFfc2NjLmMKaW5kZXggYmJmNWFhMy4uMTY2NzNkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvcGF0YV9zY2MuYworKysgYi9kcml2ZXJzL2F0YS9wYXRhX3NjYy5jCkBAIC02OTYsNyArNjk2LDcgQEAKIAogCQlpZiAocmVnICYgSU5UU1RTX0JNU0lOVCkgewogCQkJdW5zaWduZWQgaW50IGNsYXNzZXM7Ci0JCQl1bnNpZ25lZCBsb25nIGRlYWRsaW5lID0gamlmZmllcyArIEFUQV9UTU9VVF9CT09UOworCQkJdW5zaWduZWQgbG9uZyBkZWFkbGluZSA9IGF0YV9kZWFkbGluZShqaWZmaWVzLCBBVEFfVE1PVVRfQk9PVCk7CiAJCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogSW50ZXJuYWwgQnVzIEVycm9yXG4iLCBEUlZfTkFNRSk7CiAJCQlvdXRfYmUzMihibWlkX2Jhc2UgKyBTQ0NfRE1BX0lOVFNULCBJTlRTVFNfQk1TSU5UKTsKIAkJCS8qIFRCRDogU1cgcmVzZXQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3BhdGFfc2lzLmMgYi9kcml2ZXJzL2F0YS9wYXRhX3Npcy5jCmluZGV4IGU4MmM2NmUuLjI2MzQ1ZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL3BhdGFfc2lzLmMKKysrIGIvZHJpdmVycy9hdGEvcGF0YV9zaXMuYwpAQCAtNTYsNiArNTYsNyBAQAogCXsgMHg1NTEzLCAweDEwNDMsIDB4MTEwNyB9LAkvKiBBU1VTIEE2SyAqLwogCXsgMHg1NTEzLCAweDE3MzQsIDB4MTA1RiB9LAkvKiBGU0MgQW1pbG8gQTE2MzAgKi8KIAl7IDB4NTUxMywgMHgxMDcxLCAweDg2NDAgfSwgICAgIC8qIEVhc3lOb3RlIEs1MzA1ICovCisJeyAweDU1MTMsIDB4MTAzOSwgMHg1NTEzIH0sCS8qIFRhcmdhIFZpc2lvbmFyeSAxMDAwICovCiAJLyogZW5kIG1hcmtlciAqLwogCXsgMCwgfQogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3BhdGFfd2luYm9uZC5jIGIvZHJpdmVycy9hdGEvcGF0YV93aW5ib25kLmMKaW5kZXggNDc0NTI4Zi4uYTc2MDZiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvcGF0YV93aW5ib25kLmMKKysrIGIvZHJpdmVycy9hdGEvcGF0YV93aW5ib25kLmMKQEAgLTEwNSw3ICsxMDUsNyBAQAogCQkJaW93cml0ZTMyX3JlcChhcC0+aW9hZGRyLmRhdGFfYWRkciwgYnVmLCBidWZsZW4gPj4gMik7CiAKIAkJaWYgKHVubGlrZWx5KHNsb3ApKSB7Ci0JCQl1MzIgcGFkOworCQkJX19sZTMyIHBhZDsKIAkJCWlmIChydyA9PSBSRUFEKSB7CiAJCQkJcGFkID0gY3B1X3RvX2xlMzIoaW9yZWFkMzIoYXAtPmlvYWRkci5kYXRhX2FkZHIpKTsKIAkJCQltZW1jcHkoYnVmICsgYnVmbGVuIC0gc2xvcCwgJnBhZCwgc2xvcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9zYXRhX212LmMgYi9kcml2ZXJzL2F0YS9zYXRhX212LmMKaW5kZXggMjgwOTJiYy4uYWQxNjlmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvc2F0YV9tdi5jCisrKyBiL2RyaXZlcnMvYXRhL3NhdGFfbXYuYwpAQCAtMTYwNyw3ICsxNjA3LDcgQEAKIAkJICogTXVjaCBvZiB0aGUgdGltZSwgdGhpcyBjb3VsZCBqdXN0IHdvcmsgcmVnYXJkbGVzcy4KIAkJICogU28gZm9yIG5vdywganVzdCBsb2cgdGhlIGluY2lkZW50LCBhbmQgYWxsb3cgdGhlIGF0dGVtcHQuCiAJCSAqLwotCQlpZiAobGltaXRfd2FybmluZ3MgJiYgKHFjLT5uYnl0ZXMgLyBxYy0+c2VjdF9zaXplKSA+IDEpIHsKKwkJaWYgKGxpbWl0X3dhcm5pbmdzID4gMCAmJiAocWMtPm5ieXRlcyAvIHFjLT5zZWN0X3NpemUpID4gMSkgewogCQkJLS1saW1pdF93YXJuaW5nczsKIAkJCWF0YV9saW5rX3ByaW50ayhxYy0+ZGV2LT5saW5rLCBLRVJOX1dBUk5JTkcsIERSVl9OQU1FCiAJCQkJCSI6IGF0dGVtcHRpbmcgUElPIHcvbXVsdGlwbGUgRFJROiAiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9zYXRhX3NpbDI0LmMgYi9kcml2ZXJzL2F0YS9zYXRhX3NpbDI0LmMKaW5kZXggOGVlNmI1Yi4uODRmZmNjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvc2F0YV9zaWwyNC5jCisrKyBiL2RyaXZlcnMvYXRhL3NhdGFfc2lsMjQuYwpAQCAtMzcwLDYgKzM3MCw3IEBACiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgzMTI0KSwgQklEX1NJTDMxMjQgfSwKIAl7IFBDSV9WREVWSUNFKENNRCwgMHgzMTMyKSwgQklEX1NJTDMxMzIgfSwKIAl7IFBDSV9WREVWSUNFKENNRCwgMHgwMjQyKSwgQklEX1NJTDMxMzIgfSwKKwl7IFBDSV9WREVWSUNFKENNRCwgMHgwMjQ0KSwgQklEX1NJTDMxMzIgfSwKIAl7IFBDSV9WREVWSUNFKENNRCwgMHgzMTMxKSwgQklEX1NJTDMxMzEgfSwKIAl7IFBDSV9WREVWSUNFKENNRCwgMHgzNTMxKSwgQklEX1NJTDMxMzEgfSwKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvc2F0YV9zdncuYyBiL2RyaXZlcnMvYXRhL3NhdGFfc3Z3LmMKaW5kZXggMTZhYTY4My4uZmIxM2I4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvc2F0YV9zdncuYworKysgYi9kcml2ZXJzL2F0YS9zYXRhX3N2dy5jCkBAIC0yNTMsMjEgKzI1MywyOSBAQAogCS8qIHN0YXJ0IGhvc3QgRE1BIHRyYW5zYWN0aW9uICovCiAJZG1hY3RsID0gcmVhZGIobW1pbyArIEFUQV9ETUFfQ01EKTsKIAl3cml0ZWIoZG1hY3RsIHwgQVRBX0RNQV9TVEFSVCwgbW1pbyArIEFUQV9ETUFfQ01EKTsKLQkvKiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uIGluIGNlcnRhaW4gU0FUQSBjb250cm9sbGVycyB0aGF0IGNhbgotCSAgIGJlIHNlZW4gd2hlbiB0aGUgci93IGNvbW1hbmQgaXMgZ2l2ZW4gdG8gdGhlIGNvbnRyb2xsZXIgYmVmb3JlIHRoZQotCSAgIGhvc3QgRE1BIGlzIHN0YXJ0ZWQuIE9uIGEgUmVhZCBjb21tYW5kLCB0aGUgY29udHJvbGxlciB3b3VsZCBpbml0aWF0ZQotCSAgIHRoZSBjb21tYW5kIHRvIHRoZSBkcml2ZSBldmVuIGJlZm9yZSBpdCBzZWVzIHRoZSBETUEgc3RhcnQuIFdoZW4gdGhlcmUKLQkgICBhcmUgdmVyeSBmYXN0IGRyaXZlcyBjb25uZWN0ZWQgdG8gdGhlIGNvbnRyb2xsZXIsIG9yIHdoZW4gdGhlIGRhdGEgcmVxdWVzdAotCSAgIGhpdHMgaW4gdGhlIGRyaXZlIGNhY2hlLCB0aGVyZSBpcyB0aGUgcG9zc2liaWxpdHkgdGhhdCB0aGUgZHJpdmUgcmV0dXJucyBhIHBhcnQKLQkgICBvciBhbGwgb2YgdGhlIHJlcXVlc3RlZCBkYXRhIHRvIHRoZSBjb250cm9sbGVyIGJlZm9yZSB0aGUgRE1BIHN0YXJ0IGlzIGlzc3VlZC4KLQkgICBJbiB0aGlzIGNhc2UsIHRoZSBjb250cm9sbGVyIHdvdWxkIGJlY29tZSBjb25mdXNlZCBhcyB0byB3aGF0IHRvIGRvIHdpdGggdGhlIGRhdGEuCi0JICAgSW4gdGhlIHdvcnN0IGNhc2Ugd2hlbiBhbGwgdGhlIGRhdGEgaXMgcmV0dXJuZWQgYmFjayB0byB0aGUgY29udHJvbGxlciwgdGhlCi0JICAgY29udHJvbGxlciBjb3VsZCBoYW5nLiBJbiBvdGhlciBjYXNlcyBpdCBjb3VsZCByZXR1cm4gcGFydGlhbCBkYXRhIHJldHVybmluZwotCSAgIGluIGRhdGEgY29ycnVwdGlvbi4gVGhpcyBwcm9ibGVtIGhhcyBiZWVuIHNlZW4gaW4gUFBDIHN5c3RlbXMgYW5kIGNhbiBhbHNvIGFwcGVhcgotCSAgIG9uIGFuIHN5c3RlbSB3aXRoIHZlcnkgZmFzdCBkaXNrcywgd2hlcmUgdGhlIFNBVEEgY29udHJvbGxlciBpcyBzaXR0aW5nIGJlaGluZCBhCi0JICAgbnVtYmVyIG9mIGJyaWRnZXMsIGFuZCBoZW5jZSB0aGVyZSBpcyBzaWduaWZpY2FudCBsYXRlbmN5IGJldHdlZW4gdGhlIHIvdyBjb21tYW5kCi0JICAgYW5kIHRoZSBzdGFydCBjb21tYW5kLiAqLwotCS8qIGlzc3VlIHIvdyBjb21tYW5kIGlmIHRoZSBhY2Nlc3MgaXMgdG8gQVRBKi8KKwkvKiBUaGlzIHdvcmtzIGFyb3VuZCBwb3NzaWJsZSBkYXRhIGNvcnJ1cHRpb24uCisKKwkgICBPbiBjZXJ0YWluIFNBVEEgY29udHJvbGxlcnMgdGhhdCBjYW4gYmUgc2VlbiB3aGVuIHRoZSByL3cKKwkgICBjb21tYW5kIGlzIGdpdmVuIHRvIHRoZSBjb250cm9sbGVyIGJlZm9yZSB0aGUgaG9zdCBETUEgaXMKKwkgICBzdGFydGVkLgorCisJICAgT24gYSBSZWFkIGNvbW1hbmQsIHRoZSBjb250cm9sbGVyIHdvdWxkIGluaXRpYXRlIHRoZQorCSAgIGNvbW1hbmQgdG8gdGhlIGRyaXZlIGV2ZW4gYmVmb3JlIGl0IHNlZXMgdGhlIERNQQorCSAgIHN0YXJ0LiBXaGVuIHRoZXJlIGFyZSB2ZXJ5IGZhc3QgZHJpdmVzIGNvbm5lY3RlZCB0byB0aGUKKwkgICBjb250cm9sbGVyLCBvciB3aGVuIHRoZSBkYXRhIHJlcXVlc3QgaGl0cyBpbiB0aGUgZHJpdmUKKwkgICBjYWNoZSwgdGhlcmUgaXMgdGhlIHBvc3NpYmlsaXR5IHRoYXQgdGhlIGRyaXZlIHJldHVybnMgYQorCSAgIHBhcnQgb3IgYWxsIG9mIHRoZSByZXF1ZXN0ZWQgZGF0YSB0byB0aGUgY29udHJvbGxlciBiZWZvcmUKKwkgICB0aGUgRE1BIHN0YXJ0IGlzIGlzc3VlZC4gIEluIHRoaXMgY2FzZSwgdGhlIGNvbnRyb2xsZXIKKwkgICB3b3VsZCBiZWNvbWUgY29uZnVzZWQgYXMgdG8gd2hhdCB0byBkbyB3aXRoIHRoZSBkYXRhLiAgSW4KKwkgICB0aGUgd29yc3QgY2FzZSB3aGVuIGFsbCB0aGUgZGF0YSBpcyByZXR1cm5lZCBiYWNrIHRvIHRoZQorCSAgIGNvbnRyb2xsZXIsIHRoZSBjb250cm9sbGVyIGNvdWxkIGhhbmcuIEluIG90aGVyIGNhc2VzIGl0CisJICAgY291bGQgcmV0dXJuIHBhcnRpYWwgZGF0YSByZXR1cm5pbmcgaW4gZGF0YQorCSAgIGNvcnJ1cHRpb24uIFRoaXMgcHJvYmxlbSBoYXMgYmVlbiBzZWVuIGluIFBQQyBzeXN0ZW1zIGFuZAorCSAgIGNhbiBhbHNvIGFwcGVhciBvbiBhbiBzeXN0ZW0gd2l0aCB2ZXJ5IGZhc3QgZGlza3MsIHdoZXJlCisJICAgdGhlIFNBVEEgY29udHJvbGxlciBpcyBzaXR0aW5nIGJlaGluZCBhIG51bWJlciBvZiBicmlkZ2VzLAorCSAgIGFuZCBoZW5jZSB0aGVyZSBpcyBzaWduaWZpY2FudCBsYXRlbmN5IGJldHdlZW4gdGhlIHIvdworCSAgIGNvbW1hbmQgYW5kIHRoZSBzdGFydCBjb21tYW5kLiAqLworCS8qIGlzc3VlIHIvdyBjb21tYW5kIGlmIHRoZSBhY2Nlc3MgaXMgdG8gQVRBICovCiAJaWYgKHFjLT50Zi5wcm90b2NvbCA9PSBBVEFfUFJPVF9ETUEpCiAJCWFwLT5vcHMtPnNmZl9leGVjX2NvbW1hbmQoYXAsICZxYy0+dGYpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvc2F0YV91bGkuYyBiL2RyaXZlcnMvYXRhL3NhdGFfdWxpLmMKaW5kZXggZjI3N2NlYS4uZGI1MjliOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvc2F0YV91bGkuYworKysgYi9kcml2ZXJzL2F0YS9zYXRhX3VsaS5jCkBAIC04Myw2ICs4Myw3IEBACiAJLmluaGVyaXRzCQk9ICZhdGFfYm1kbWFfcG9ydF9vcHMsCiAJLnNjcl9yZWFkCQk9IHVsaV9zY3JfcmVhZCwKIAkuc2NyX3dyaXRlCQk9IHVsaV9zY3Jfd3JpdGUsCisJLmhhcmRyZXNldAkJPSBBVEFfT1BfTlVMTCwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRhX3BvcnRfaW5mbyB1bGlfcG9ydF9pbmZvID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vTWFrZWZpbGUgYi9kcml2ZXJzL2F0bS9NYWtlZmlsZQppbmRleCBlNGZhOTk2Li43NDkyNjZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2F0bS9NYWtlZmlsZQpAQCAtNiw5ICs2LDkgQEAKIGhvc3Rwcm9ncy15CTo9IGZvcmUyMDBlX21rZmlybQogCiAjIEZpbGVzIGdlbmVyYXRlZCB0aGF0IHNoYWxsIGJlIHJlbW92ZWQgdXBvbiBtYWtlIGNsZWFuCi1jbGVhbi1maWxlcyA6PSBhdG1zYXIxMS5iaW4gYXRtc2FyMTEuYmluMSBhdG1zYXIxMS5iaW4yIHBjYTIwMGUuYmluIFwKLQlwY2EyMDBlLmJpbjEgcGNhMjAwZS5iaW4yIHBjYTIwMGVfZWNkLmJpbiBwY2EyMDBlX2VjZC5iaW4xIFwKLQlwY2EyMDBlX2VjZC5iaW4yIHNiYTIwMGVfZWNkLmJpbiBzYmEyMDBlX2VjZC5iaW4xIHNiYTIwMGVfZWNkLmJpbjIKK2NsZWFuLWZpbGVzIDo9IHBjYTIwMGUuYmluIHBjYTIwMGUuYmluMSBwY2EyMDBlLmJpbjIgcGNhMjAwZV9lY2QuYmluIFwKKwlwY2EyMDBlX2VjZC5iaW4xIHBjYTIwMGVfZWNkLmJpbjIgc2JhMjAwZV9lY2QuYmluIHNiYTIwMGVfZWNkLmJpbjEgXAorCXNiYTIwMGVfZWNkLmJpbjIKICMgRmlybXdhcmUgZ2VuZXJhdGVkIHRoYXQgc2hhbGwgYmUgcmVtb3ZlZCB1cG9uIG1ha2UgY2xlYW4KIGNsZWFuLWZpbGVzICs9IGZvcmUyMDBlX3BjYV9mdy5jIGZvcmUyMDBlX3NiYV9mdy5jCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuYyBiL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuYwppbmRleCA2YWRiNzJhLi43MDMzNjRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9hbWJhc3NhZG9yLmMKKysrIGIvZHJpdmVycy9hdG0vYW1iYXNzYWRvci5jCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSA8bGludXgvcG9pc29uLmg+CiAjaW5jbHVkZSA8bGludXgvYml0cmV2Lmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KIAogI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTI5MCwyOSArMjkyLDYgQEAKICAgCiAqLwogCi0vKioqKioqKioqKiBtaWNyb2NvZGUgKioqKioqKioqKi8KLQotI2lmZGVmIEFNQl9ORVdfTUlDUk9DT0RFCi0jZGVmaW5lIFVDT0RFKHgpIFVDT0RFMihhdG1zYXIxMi54KQotI2Vsc2UKLSNkZWZpbmUgVUNPREUoeCkgVUNPREUyKGF0bXNhcjExLngpCi0jZW5kaWYKLSNkZWZpbmUgVUNPREUyKHgpICN4Ci0KLXN0YXRpYyB1MzIgX19kZXZpbml0ZGF0YSB1Y29kZV9zdGFydCA9Ci0jaW5jbHVkZSBVQ09ERShzdGFydCkKLTsKLQotc3RhdGljIHJlZ2lvbiBfX2RldmluaXRkYXRhIHVjb2RlX3JlZ2lvbnNbXSA9IHsKLSNpbmNsdWRlIFVDT0RFKHJlZ2lvbnMpCi0gIHsgMCwgMCB9Ci19OwotCi1zdGF0aWMgdTMyIF9fZGV2aW5pdGRhdGEgdWNvZGVfZGF0YVtdID0gewotI2luY2x1ZGUgVUNPREUoZGF0YSkKLSAgMHhkZWFkYmVlZgotfTsKLQogc3RhdGljIHZvaWQgZG9faG91c2VrZWVwaW5nICh1bnNpZ25lZCBsb25nIGFyZyk7CiAvKioqKioqKioqKiBnbG9iYWxzICoqKioqKioqKiovCiAKQEAgLTE4NDEsNDUgKzE4MjAsMzQgQEAKIAogLyogbG9hZGVyOiB3cml0ZSBtZW1vcnkgZGF0YSBibG9ja3MgKi8KIAotc3RhdGljIGludCBfX2RldmluaXQgbG9hZGVyX3dyaXRlIChsb2FkZXJfYmxvY2sgKiBsYiwKLQkJCQljb25zdCBhbWJfZGV2ICogZGV2LCBjb25zdCB1MzIgKiBkYXRhLAotCQkJCXUzMiBhZGRyZXNzLCB1bnNpZ25lZCBpbnQgY291bnQpIHsKLSAgdW5zaWduZWQgaW50IGk7CitzdGF0aWMgaW50IF9fZGV2aW5pdCBsb2FkZXJfd3JpdGUgKGxvYWRlcl9ibG9jayogbGIsCisJCQkJICAgY29uc3QgYW1iX2RldiAqZGV2LAorCQkJCSAgIGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjKSB7CiAgIHRyYW5zZmVyX2Jsb2NrICogdGIgPSAmbGItPnBheWxvYWQudHJhbnNmZXI7CiAgIAogICBQUklOVEQgKERCR19GTE9XfERCR19MT0FELCAibG9hZGVyX3dyaXRlIik7Ci0gIAotICBpZiAoY291bnQgPiBNQVhfVFJBTlNGRVJfREFUQSkKLSAgICByZXR1cm4gLUVJTlZBTDsKLSAgdGItPmFkZHJlc3MgPSBjcHVfdG9fYmUzMiAoYWRkcmVzcyk7Ci0gIHRiLT5jb3VudCA9IGNwdV90b19iZTMyIChjb3VudCk7Ci0gIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgIHRiLT5kYXRhW2ldID0gY3B1X3RvX2JlMzIgKGRhdGFbaV0pOworCisgIHRiLT5hZGRyZXNzID0gcmVjLT5hZGRyOworICB0Yi0+Y291bnQgPSBjcHVfdG9fYmUzMihiZTE2X3RvX2NwdShyZWMtPmxlbikgLyA0KTsKKyAgbWVtY3B5KHRiLT5kYXRhLCByZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CiAgIHJldHVybiBkb19sb2FkZXJfY29tbWFuZCAobGIsIGRldiwgd3JpdGVfYWRhcHRlcl9tZW1vcnkpOwogfQogCiAvKiBsb2FkZXI6IHZlcmlmeSBtZW1vcnkgZGF0YSBibG9ja3MgKi8KIAogc3RhdGljIGludCBfX2RldmluaXQgbG9hZGVyX3ZlcmlmeSAobG9hZGVyX2Jsb2NrICogbGIsCi0JCQkJIGNvbnN0IGFtYl9kZXYgKiBkZXYsIGNvbnN0IHUzMiAqIGRhdGEsCi0JCQkJIHUzMiBhZGRyZXNzLCB1bnNpZ25lZCBpbnQgY291bnQpIHsKLSAgdW5zaWduZWQgaW50IGk7CisJCQkJICAgIGNvbnN0IGFtYl9kZXYgKmRldiwKKwkJCQkgICAgY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWMpIHsKICAgdHJhbnNmZXJfYmxvY2sgKiB0YiA9ICZsYi0+cGF5bG9hZC50cmFuc2ZlcjsKICAgaW50IHJlczsKICAgCiAgIFBSSU5URCAoREJHX0ZMT1d8REJHX0xPQUQsICJsb2FkZXJfdmVyaWZ5Iik7CiAgIAotICBpZiAoY291bnQgPiBNQVhfVFJBTlNGRVJfREFUQSkKLSAgICByZXR1cm4gLUVJTlZBTDsKLSAgdGItPmFkZHJlc3MgPSBjcHVfdG9fYmUzMiAoYWRkcmVzcyk7Ci0gIHRiLT5jb3VudCA9IGNwdV90b19iZTMyIChjb3VudCk7CisgIHRiLT5hZGRyZXNzID0gcmVjLT5hZGRyOworICB0Yi0+Y291bnQgPSBjcHVfdG9fYmUzMihiZTE2X3RvX2NwdShyZWMtPmxlbikgLyA0KTsKICAgcmVzID0gZG9fbG9hZGVyX2NvbW1hbmQgKGxiLCBkZXYsIHJlYWRfYWRhcHRlcl9tZW1vcnkpOwotICBpZiAoIXJlcykKLSAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkKLSAgICAgIGlmICh0Yi0+ZGF0YVtpXSAhPSBjcHVfdG9fYmUzMiAoZGF0YVtpXSkpIHsKLQlyZXMgPSAtRUlOVkFMOwotCWJyZWFrOwotICAgICAgfQorICBpZiAoIXJlcyAmJiBtZW1jbXAodGItPmRhdGEsIHJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pKSkKKyAgICByZXMgPSAtRUlOVkFMOwogICByZXR1cm4gcmVzOwogfQogCkBAIC0xOTYyLDQ3ICsxOTMwLDUzIEBACiAvKioqKioqKioqKiB0cmFuc2ZlciBhbmQgc3RhcnQgdGhlIG1pY3JvY29kZSAqKioqKioqKioqLwogCiBzdGF0aWMgaW50IF9fZGV2aW5pdCB1Y29kZV9pbml0IChsb2FkZXJfYmxvY2sgKiBsYiwgYW1iX2RldiAqIGRldikgewotICB1bnNpZ25lZCBpbnQgaSA9IDA7Ci0gIHVuc2lnbmVkIGludCB0b3RhbCA9IDA7Ci0gIGNvbnN0IHUzMiAqIHBvaW50ZXIgPSB1Y29kZV9kYXRhOwotICB1MzIgYWRkcmVzczsKLSAgdW5zaWduZWQgaW50IGNvdW50OworICBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworICB1bnNpZ25lZCBsb25nIHN0YXJ0X2FkZHJlc3M7CisgIGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjOwogICBpbnQgcmVzOwogICAKKyAgcmVzID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZmdywgImF0bXNhcjExLmZ3IiwgJmRldi0+cGNpX2Rldi0+ZGV2KTsKKyAgaWYgKHJlcykgeworICAgIFBSSU5USyAoS0VSTl9FUlIsICJDYW5ub3QgbG9hZCBtaWNyb2NvZGUgZGF0YSIpOworICAgIHJldHVybiByZXM7CisgIH0KKworICAvKiBGaXJzdCByZWNvcmQgY29udGFpbnMganVzdCB0aGUgc3RhcnQgYWRkcmVzcyAqLworICByZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZnctPmRhdGE7CisgIGlmIChiZTE2X3RvX2NwdShyZWMtPmxlbikgIT0gc2l6ZW9mKF9fYmUzMikgfHwgYmUzMl90b19jcHUocmVjLT5hZGRyKSkgeworICAgIFBSSU5USyAoS0VSTl9FUlIsICJCYWQgbWljcm9jb2RlIGRhdGEgKG5vIHN0YXJ0IHJlY29yZCkiKTsKKyAgICByZXR1cm4gLUVJTlZBTDsKKyAgfQorICBzdGFydF9hZGRyZXNzID0gYmUzMl90b19jcHVwKChfX2JlMzIgKilyZWMtPmRhdGEpOworCisgIHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKTsKKwogICBQUklOVEQgKERCR19GTE9XfERCR19MT0FELCAidWNvZGVfaW5pdCIpOwotICAKLSAgd2hpbGUgKGFkZHJlc3MgPSB1Y29kZV9yZWdpb25zW2ldLnN0YXJ0LAotCSBjb3VudCA9IHVjb2RlX3JlZ2lvbnNbaV0uY291bnQpIHsKLSAgICBQUklOVEQgKERCR19MT0FELCAic3RhcnRpbmcgcmVnaW9uICgleCwgJXUpIiwgYWRkcmVzcywgY291bnQpOwotICAgIHdoaWxlIChjb3VudCkgewotICAgICAgdW5zaWduZWQgaW50IHdvcmRzOwotICAgICAgaWYgKGNvdW50IDw9IE1BWF9UUkFOU0ZFUl9EQVRBKQotCXdvcmRzID0gY291bnQ7Ci0gICAgICBlbHNlCi0Jd29yZHMgPSBNQVhfVFJBTlNGRVJfREFUQTsKLSAgICAgIHRvdGFsICs9IHdvcmRzOwotICAgICAgcmVzID0gbG9hZGVyX3dyaXRlIChsYiwgZGV2LCBwb2ludGVyLCBhZGRyZXNzLCB3b3Jkcyk7Ci0gICAgICBpZiAocmVzKQotCXJldHVybiByZXM7Ci0gICAgICByZXMgPSBsb2FkZXJfdmVyaWZ5IChsYiwgZGV2LCBwb2ludGVyLCBhZGRyZXNzLCB3b3Jkcyk7Ci0gICAgICBpZiAocmVzKQotCXJldHVybiByZXM7Ci0gICAgICBjb3VudCAtPSB3b3JkczsKLSAgICAgIGFkZHJlc3MgKz0gc2l6ZW9mKHUzMikgKiB3b3JkczsKLSAgICAgIHBvaW50ZXIgKz0gd29yZHM7CisKKyAgd2hpbGUgKHJlYykgeworICAgIFBSSU5URCAoREJHX0xPQUQsICJzdGFydGluZyByZWdpb24gKCV4LCAldSkiLCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCSAgICBiZTE2X3RvX2NwdShyZWMtPmxlbikpOworICAgIGlmIChiZTE2X3RvX2NwdShyZWMtPmxlbikgPiA0ICogTUFYX1RSQU5TRkVSX0RBVEEpIHsKKwkgICAgUFJJTlRLIChLRVJOX0VSUiwgIkJhZCBtaWNyb2NvZGUgZGF0YSAocmVjb3JkIHRvbyBsb25nKSIpOworCSAgICByZXR1cm4gLUVJTlZBTDsKICAgICB9Ci0gICAgaSArPSAxOworICAgIGlmIChiZTE2X3RvX2NwdShyZWMtPmxlbikgJiAzKSB7CisJICAgIFBSSU5USyAoS0VSTl9FUlIsICJCYWQgbWljcm9jb2RlIGRhdGEgKG9kZCBudW1iZXIgb2YgYnl0ZXMpIik7CisJICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKyAgICByZXMgPSBsb2FkZXJfd3JpdGUobGIsIGRldiwgcmVjKTsKKyAgICBpZiAocmVzKQorICAgICAgYnJlYWs7CisKKyAgICByZXMgPSBsb2FkZXJfdmVyaWZ5KGxiLCBkZXYsIHJlYyk7CisgICAgaWYgKHJlcykKKyAgICAgIGJyZWFrOwogICB9Ci0gIGlmICgqcG9pbnRlciA9PSBBVE1fUE9JU09OKSB7Ci0gICAgcmV0dXJuIGxvYWRlcl9zdGFydCAobGIsIGRldiwgdWNvZGVfc3RhcnQpOwotICB9IGVsc2UgewotICAgIC8vIGNhc3QgbmVlZGVkIGFzIHRoZXJlIGlzIG5vICU/IGZvciBwb2ludGVyIGRpZmZlcm5jZXMKLSAgICBQUklOVEQgKERCR19MT0FEfERCR19FUlIsCi0JICAgICJvZmZzZXQ9JWxpLCAqcG9pbnRlcj0leCwgYWRkcmVzcz0leCwgdG90YWw9JXUiLAotCSAgICAobG9uZykgKHBvaW50ZXIgLSB1Y29kZV9kYXRhKSwgKnBvaW50ZXIsIGFkZHJlc3MsIHRvdGFsKTsKLSAgICBQUklOVEsgKEtFUk5fRVJSLCAiaW5jb3JyZWN0IG1pY3JvY29kZSBkYXRhIik7Ci0gICAgcmV0dXJuIC1FTk9NRU07Ci0gIH0KKyAgcmVsZWFzZV9maXJtd2FyZShmdyk7CisgIGlmICghcmVzKQorICAgIHJlcyA9IGxvYWRlcl9zdGFydChsYiwgZGV2LCBzdGFydF9hZGRyZXNzKTsKKworICByZXR1cm4gcmVzOwogfQogCiAvKioqKioqKioqKiBnaXZlIGFkYXB0ZXIgcGFyYW1ldGVycyAqKioqKioqKioqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vYW1iYXNzYWRvci5oIGIvZHJpdmVycy9hdG0vYW1iYXNzYWRvci5oCmluZGV4IGRmNTVmYTguLmJkMWM0NmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuaAorKysgYi9kcml2ZXJzL2F0bS9hbWJhc3NhZG9yLmgKQEAgLTY1NiwxNyArNjU2LDYgQEAKICNkZWZpbmUgQU1CX0RFVihhdG1fZGV2KSAoKGFtYl9kZXYgKikgKGF0bV9kZXYpLT5kZXZfZGF0YSkKICNkZWZpbmUgQU1CX1ZDQyhhdG1fdmNjKSAoKGFtYl92Y2MgKikgKGF0bV92Y2MpLT5kZXZfZGF0YSkKIAotLyogdGhlIG1pY3JvY29kZSAqLwotCi10eXBlZGVmIHN0cnVjdCB7Ci0gIHUzMiBzdGFydDsKLSAgdW5zaWduZWQgaW50IGNvdW50OwotfSByZWdpb247Ci0KLXN0YXRpYyByZWdpb24gdWNvZGVfcmVnaW9uc1tdOwotc3RhdGljIHUzMiB1Y29kZV9kYXRhW107Ci1zdGF0aWMgdTMyIHVjb2RlX3N0YXJ0OwotCiAvKiByYXRlIHJvdW5kaW5nICovCiAKIHR5cGVkZWYgZW51bSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0bS9hdG1zYXIxMS5kYXRhIGIvZHJpdmVycy9hdG0vYXRtc2FyMTEuZGF0YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRjOGE3Ni4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2F0bS9hdG1zYXIxMS5kYXRhCisrKyAvZGV2L251bGwKQEAgLTEsMjA2MyArMCwwIEBACi0vKgotICBNYWRnZSBBbWJhc3NhZG9yIEFUTSBBZGFwdGVyIG1pY3JvY29kZS4KLSAgQ29weXJpZ2h0IChDKSAxOTk1LTE5OTkgIE1hZGdlIE5ldHdvcmtzIEx0ZC4KLSAgCi0gIFRoaXMgbWljcm9jb2RlIGRhdGEgaXMgcGxhY2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwKLSAgUHVibGljIExpY2Vuc2UuIFRoZSBHUEwgaXMgY29udGFpbmVkIGluIC91c3IvZG9jL2NvcHlyaWdodC9HUEwgb24gYQotICBEZWJpYW4gc3lzdGVtIGFuZCBpbiB0aGUgZmlsZSBDT1BZSU5HIGluIHRoZSBMaW51eCBrZXJuZWwgc291cmNlLgotICAKLSAgV2Ugd291bGQgcHJlZmVyIHlvdSBub3QgdG8gZGlzdHJpYnV0ZSBtb2RpZmllZCB2ZXJzaW9ucyB3aXRob3V0Ci0gIGNvbnN1bHRhdGlvbiBhbmQgbm90IHRvIGFzayBmb3IgYXNzZW1ibHkvb3RoZXIgbWljcm9jb2RlIHNvdXJjZS4KLSovCi0KLSAgMHg0MDFhNjgwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMzViMDA3YywKLSAgMHgxMzYwMDAwNSwKLSAgMHgzMzViMTAwMCwKLSAgMHgzYzFhYTBjMCwKLSAgMHgzNzVhMDE4MCwKLSAgMHgwMzQwMDAwOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxNzYwZmZmYiwKLSAgMHgzMzViNDAwMCwKLSAgMHg0MDFhNzAwMCwKLSAgMHgxMzYwMDAwMywKLSAgMHgyNDFiMGZjMCwKLSAgMHhhZjliNDUwMCwKLSAgMHgyNTA4MDAwOCwKLSAgMHgwMzQwMDAwOCwKLSAgMHg0MjAwMDAxMCwKLSAgMHg4ZjgxMGM5MCwKLSAgMHgzMjIyMDAwMiwKLSAgMHgxMDQwMDAwMywKLSAgMHgzYzAzYTBkMSwKLSAgMHgyNDYzZjgxMCwKLSAgMHgwMDYwZjgwOSwKLSAgMHgyNDIxMDAwMSwKLSAgMHgxMDAwMDAxYSwKLSAgMHhhZjgxMGM5MCwKLSAgMHg4MjAyMDAxMSwKLSAgMHhhZjkwMGM0OCwKLSAgMHgwNDQxMDAwYSwKLSAgMHgzNDQyMDA4MCwKLSAgMHg5NjdkMDAwMiwKLSAgMHg5NjAyMDAxMiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDVkMDAxMSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwNDExMDE2MSwKLSAgMHhhNjYyMDAwMiwKLSAgMHgxMDAwMDAwZCwKLSAgMHhhZTYyMDAwYywKLSAgMHgzNDg0ODAwMCwKLSAgMHhhMjAyMDAxMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgzNGMwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjgzMGZlYywKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHgwMDA0MTQwMCwKLSAgMHgwNDQwZmZmNywKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjgwNDYwYywKLSAgMHg4ZTEwMDAwOCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgzNGMwMCwKLSAgMHg0OTAwMDAxZCwKLSAgMHhhZjgzMGZlYywKLSAgMHg4ZjgyMGNiYywKLSAgMHg4ZjlkMGM0YywKLSAgMHgyNDQyMDAwMSwKLSAgMHg5N2JlMDAwMCwKLSAgMHhhZjgyMGNiYywKLSAgMHgxM2MwMDAwOSwKLSAgMHhhY2EyMDBkOCwKLSAgMHhhN2EwMDAwMCwKLSAgMHgzYzAxMDBkMSwKLSAgMHgwMDNlMDgyNSwKLSAgMHg5NDIyMDAyYywKLSAgMHgwNDExMDEzZiwKLSAgMHhhNDIyMDAwMiwKLSAgMHhhYzIyMDAwYywKLSAgMHhhYzIwMDAxMCwKLSAgMHg4ZjllMGM1NCwKLSAgMHgyN2JkMDAwMiwKLSAgMHgxN2JlMDAwMiwKLSAgMHg4Y2EyMDBjMCwKLSAgMHg4ZjlkMGM1MCwKLSAgMHg4Zjk3MGZjOCwKLSAgMHhhZjlkMGM0YywKLSAgMHgxMmUyMDAwNSwKLSAgMHg4NzgwNDAwMiwKLSAgMHgzYzAyYTBkMSwKLSAgMHgyNDQyZjk0YywKLSAgMHgwMDQwZjgwOSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHg0NTAwZmZkYywKLSAgMHg4ZTExMDAwYywKLSAgMHgzYzEzMDBkMSwKLSAgMHgwMDExMTEwMiwKLSAgMHgyYzQzMDQwMCwKLSAgMHgxMDYwZmZiOSwKLSAgMHgwMDAyMTE4MCwKLSAgMHgwMjYyOTgyMSwKLSAgMHg4ZTc2MDAzYywKLSAgMHgzMjIyMDAwOCwKLSAgMHgxNDQwZmZiNywKLSAgMHg4ZTc3MDAzNCwKLSAgMHg4ZTc1MDAzMCwKLSAgMHgzYzAzY2ZiMCwKLSAgMHgxNmMwMDAwMywKLSAgMHgwMmQ1MTAyYiwKLSAgMHgwNDExMDBiZSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDQwZmZhNiwKLSAgMHgwMDcwMTgyNiwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyNGMwMCwKLSAgMHhhZjk3NGMwMCwKLSAgMHhhZjgyMGZlYywKLSAgMHhhYzc2MDAxMCwKLSAgMHgwMjYwOTAyMSwKLSAgMHgzMjIyMDAwMiwKLSAgMHgxMDQwMDAwNywKLSAgMHg4Zjk0NGEwMCwKLSAgMHg5NjAyMDAzYSwKLSAgMHgzNDg0MDAwNCwKLSAgMHgxNDQwMDAwMywKLSAgMHhhZjgyMGZiYywKLSAgMHgzYzAyOTAwMCwKLSAgMHhhZjgyMGZiYywKLSAgMHg4ZTEwMDAwOCwKLSAgMHgzMjk0M2YwMCwKLSAgMHg4ZTExMDAwYywKLSAgMHgyNjk0ZmYwMCwKLSAgMHgxMjgwMDA3MywKLSAgMHgzYzEzMDBkMSwKLSAgMHg0OTAxMDA3MSwKLSAgMHgzMjM3MDAwOCwKLSAgMHgxNmUwMDA2ZiwKLSAgMHgwMDExMTEwMiwKLSAgMHgyYzQzMDQwMCwKLSAgMHgxMDYwMDA2YywKLSAgMHgwMDAyYjk4MCwKLSAgMHgwMDA0MTc0MCwKLSAgMHgwNDQwMDAzYSwKLSAgMHgwMjc3OTgyMSwKLSAgMHgxMjcyMDAyMywKLSAgMHgyNmQ2MDAzMCwKLSAgMHhhZTU2MDAzYywKLSAgMHg4ZTc2MDAzYywKLSAgMHg4ZTc3MDAzNCwKLSAgMHg4ZTc1MDAzMCwKLSAgMHgzYzAzY2ZiMCwKLSAgMHgxNmMwMDAwMywKLSAgMHgwMmQ1MTAyYiwKLSAgMHgwNDExMDA5MSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDQwMDA2MCwKLSAgMHgyZTgyMTAwMCwKLSAgMHgxNDQwMDAwOSwKLSAgMHgwMDcwMTgyNiwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyNGMwMCwKLSAgMHhhZjk3NGMwMCwKLSAgMHhhYzc2MDAxMCwKLSAgMHhhZTQyMDAzNCwKLSAgMHgxMDAwZmZkMCwKLSAgMHhhZjgwNDYwYywKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHgzYzAzY2ZiMCwKLSAgMHgwMDcwMTgyNiwKLSAgMHhhZTQ2MDAzNCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyNGMwMCwKLSAgMHhhZjk3NGMwMCwKLSAgMHhhZjgyMGZlYywKLSAgMHhhYzc2MDAxMCwKLSAgMHgxMDAwZmZjMywKLSAgMHhhZjgwNDYwYywKLSAgMHgwMmQ1MTAyYiwKLSAgMHgxMDQwMDA0MiwKLSAgMHgzYzE3Y2ZiMCwKLSAgMHgyZTgyMTAwMCwKLSAgMHgxNDQwMDAwNiwKLSAgMHgwMmYwYjgyNiwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZWY2MDAxMCwKLSAgMHgxMDAwZmZiOCwKLSAgMHhhZjgwNDYwYywKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyNGMwMCwKLSAgMHhhZjg2NGMwMCwKLSAgMHhhZWY2MDAxMCwKLSAgMHhhZjgyMGZlYywKLSAgMHgxMDAwZmZhZSwKLSAgMHhhZjgwNDYwYywKLSAgMHgzMDg0ZmZmYiwKLSAgMHg4ZTU3MDAzOCwKLSAgMHgzMjQyZmZjMCwKLSAgMHgwMDAyMTE4MiwKLSAgMHhhNzgyMGZiOCwKLSAgMHhhZjk3MGZiNCwKLSAgMHg4NjVkMDAyYSwKLSAgMHg4NjVlMDAwOCwKLSAgMHhhNzlkMGZiYSwKLSAgMHgyNzlkMGYxOCwKLSAgMHgzM2RlMDA2MCwKLSAgMHgwM2JlZTgyMSwKLSAgMHgwMDFlZjBjMiwKLSAgMHgwM2JlZTgyMSwKLSAgMHg4Zjk3MGM1OCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgzNGMwMCwKLSAgMHg4ZmEyMDAxYywKLSAgMHgxMmUzMDAwMywKLSAgMHgzYzAzMGM0MCwKLSAgMHgzYzFlYzAwMCwKLSAgMHhhZjllMGZiYywKLSAgMHhhYzYyMGZiNCwKLSAgMHg4ZmEzMDAxOCwKLSAgMHgyNDQyMDAwYywKLSAgMHgxNDQzMDAwMiwKLSAgMHhhZjgwNDYwYywKLSAgMHg4ZmEyMDAxNCwKLSAgMHhhZTQwMDAzYywKLSAgMHhhZmEyMDAxYywKLSAgMHg4ZTc2MDAzYywKLSAgMHg4ZTc3MDAzNCwKLSAgMHg4ZTc1MDAzMCwKLSAgMHgzYzAzY2ZiMCwKLSAgMHgxNmMwMDAwMywKLSAgMHgwMmQ1MTAyYiwKLSAgMHgwNDExMDAzYywKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDcwMTgyNiwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhY2E1MDBlNCwKLSAgMHgxMDQwMDAzMiwKLSAgMHhhZjk3NGMwMCwKLSAgMHgxMDAwZmY3ZiwKLSAgMHhhYzc2MDAxMCwKLSAgMHgwMDA0MTc0MCwKLSAgMHgwNDQwMDAwNywKLSAgMHgyNmQ2MDAzMCwKLSAgMHhhZTU2MDAzYywKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHhhZjgwNDYwYywKLSAgMHgxMDAwZmYzOSwKLSAgMHhhZTQ2MDAzNCwKLSAgMHg4ZTU3MDAzOCwKLSAgMHgzMjQyZmZjMCwKLSAgMHgwMDAyMTE4MiwKLSAgMHhhNzgyMGZiOCwKLSAgMHhhZjk3MGZiNCwKLSAgMHg4Zjk3MGM1OCwKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHgxMmU2MDAwMywKLSAgMHgzYzAzMGM0MCwKLSAgMHgzYzAyYzAwMCwKLSAgMHhhZjgyMGZiYywKLSAgMHg4NjVkMDAyYSwKLSAgMHg4NjVlMDAwOCwKLSAgMHhhNzlkMGZiYSwKLSAgMHgyNzlkMGYxOCwKLSAgMHgzM2RlMDA2MCwKLSAgMHgwM2JlZTgyMSwKLSAgMHgwMDFlZjBjMiwKLSAgMHgwM2JlZTgyMSwKLSAgMHg4ZmEyMDAxYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjk3NGMwMCwKLSAgMHhhYzYyMGZiNCwKLSAgMHgzMDg0ZmZmYiwKLSAgMHg4ZmEzMDAxOCwKLSAgMHgyNDQyMDAwYywKLSAgMHgxNDQzMDAwMiwKLSAgMHhhZjgwNDYwYywKLSAgMHg4ZmEyMDAxNCwKLSAgMHhhZTQwMDAzYywKLSAgMHhhZmEyMDAxYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhY2E1MDBlNCwKLSAgMHgxMDAwZmYxMywKLSAgMHhhZjk3NGMwMCwKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHgxMDAwZmYwZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDQwMDA1YiwKLSAgMHg4NjdlMDAwOCwKLSAgMHgyNzlkMGYxOCwKLSAgMHgzM2RlMDA2MCwKLSAgMHgwM2JlZTgyMSwKLSAgMHgwMDFlMTBjMiwKLSAgMHgwM2EyZTgyMSwKLSAgMHg4ZmI3MDAwOCwKLSAgMHg4ZmEyMDAwYywKLSAgMHg4ZWY2MDAwNCwKLSAgMHgxMmUyMDAyOCwKLSAgMHg4NjYyMDAwOCwKLSAgMHg4MjAzMDAxMCwKLSAgMHgwMDAyMTc0MCwKLSAgMHgwNDQxMDAxOSwKLSAgMHgyNDYzMDAwMSwKLSAgMHgxMDYwMDAxNywKLSAgMHgzYzAyZDFiMCwKLSAgMHgwMDUwMTAyNiwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjllNGMwMCwKLSAgMHhhYzU2MDAxMCwKLSAgMHgyNmQ2ZmZmZSwKLSAgMHg4NjAyMDAxMCwKLSAgMHgzYzAzY2ZiMCwKLSAgMHgzNDYzMjAwMCwKLSAgMHhhNjYyMDAyYSwKLSAgMHg4ZWUyMDAwMCwKLSAgMHgyNmY3MDAwOCwKLSAgMHhhZTYyMDAzOCwKLSAgMHg4ZmEyMDAyMCwKLSAgMHhhZmI3MDAwOCwKLSAgMHgyNDE3ZmZmZiwKLSAgMHgwMmMyYTgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjllNGMwMCwKLSAgMHgwM2UwMDAwOCwKLSAgMHhhZTc1MDAzMCwKLSAgMHg4ZWUyMDAwMCwKLSAgMHgyNmY3MDAwOCwKLSAgMHhhZTYyMDAzOCwKLSAgMHg4ZmEyMDAyMCwKLSAgMHhhZmI3MDAwOCwKLSAgMHgyNDE3ZmZmZiwKLSAgMHhhNjc3MDAyYSwKLSAgMHgwMmMyYTgyMSwKLSAgMHgzYzAzY2ZiMCwKLSAgMHgwM2UwMDAwOCwKLSAgMHhhZTc1MDAzMCwKLSAgMHgwMDFlMThjMiwKLSAgMHgwMDY1MTgyMSwKLSAgMHg4YzYzMDBjOCwKLSAgMHg4ZmEyMDAxMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDYyYjAyMywKLSAgMHgxZWMwMDAwMywKLSAgMHg4ZmExMDAwNCwKLSAgMHgxMmMwMDAxYiwKLSAgMHgwMDIyYjAyMywKLSAgMHgyZWMzMDA0MSwKLSAgMHgxNDYwMDAwMiwKLSAgMHgzYzE1MDA0MCwKLSAgMHgyNDE2MDA0MCwKLSAgMHgwMDE2MWU4MCwKLSAgMHgwMDAzMTg4MiwKLSAgMHgwMDc1MTgyNSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjk1NGMwMCwKLSAgMHgwMDFlYjg0MCwKLSAgMHgwMDc3MTgyMSwKLSAgMHhhYzYyNGQwMCwKLSAgMHgwMDU2MTAyMSwKLSAgMHgxNDQxMDAwMiwKLSAgMHgyNzgzMGQwMCwKLSAgMHg4ZmEyMDAwMCwKLSAgMHgwMmUzYjgyMSwKLSAgMHhhZmEyMDAxMCwKLSAgMHgwMmQ3MTgyMSwKLSAgMHhhZmEzMDAwYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZWY2MDAwNCwKLSAgMHgxMDAwZmZiNSwKLSAgMHhhZjk1NGMwMCwKLSAgMHgzYzE2ZGVhZCwKLSAgMHhhZTc2MDAzYywKLSAgMHhhZTYwMDAzOCwKLSAgMHgyNmQ1ZmZmZiwKLSAgMHgwMDAwMTAyMSwKLSAgMHgwM2UwMDAwOCwKLSAgMHhhZTc1MDAzMCwKLSAgMHgyYzQzMGFiMiwKLSAgMHgxMDYwMDAwNSwKLSAgMHgyYzQzMjRiMiwKLSAgMHgxMDAwMDAwNCwKLSAgMHgyNDAyMGFiMiwKLSAgMHgxMDAwMDAwMiwKLSAgMHgyNDAyMjRiMSwKLSAgMHgxMDYwZmZmZCwKLSAgMHgzMDQzMDFmZiwKLSAgMHgwMDAzMTg0MCwKLSAgMHgzYzFkYTBkMSwKLSAgMHgyN2JkZDZjYywKLSAgMHgwMDdkMTgyMSwKLSAgMHg5NDYzMDAwMCwKLSAgMHgwMDAyZWE0MiwKLSAgMHgwMDAzMWMwMCwKLSAgMHgyN2JkZmZmYiwKLSAgMHgwM2UwMDAwOCwKLSAgMHgwM2EzMTAwNiwKLSAgMHgyNDAzMGZjMCwKLSAgMHhhZjgzNDUwMCwKLSAgMHgxMDAwMDAwMiwKLSAgMHgwMTIwNjAyMSwKLSAgMHgzYzBjY2ZiMCwKLSAgMHgxMWUwMDA1NiwKLSAgMHgwMTg5NjAyNiwKLSAgMHg4NWZlMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxM2MwMDA0NywKLSAgMHgzYzAyY2ZiMCwKLSAgMHgwN2MwMDAyZCwKLSAgMHgwMDFlMWY4MCwKLSAgMHgwNDYxMDAzNCwKLSAgMHgwMDFlMWZjMCwKLSAgMHgwNDYwMDAwOSwKLSAgMHgzYzAyZDNiMCwKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjg2NGMwMCwKLSAgMHg4Zjk5MGZlYywKLSAgMHgxMDAwMDAwYiwKLSAgMHhhZjk5NGMwMCwKLSAgMHgwMWUyNzgyNiwKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjg2NGMwMCwKLSAgMHhhZjk5NGMwMCwKLSAgMHhhZGVmMjAxMCwKLSAgMHgzYzAyZDNiMCwKLSAgMHgwMWUyNzgyNiwKLSAgMHg4ZjgyMGZjMCwKLSAgMHg4ZjgzMGZjNCwKLSAgMHhhZjgyNGQwMCwKLSAgMHg4ZGUyMDAwNCwKLSAgMHhhNWUwMDAwMCwKLSAgMHhhYzYyMDAwMCwKLSAgMHg4YzYyMDAwMCwKLSAgMHgyNDAyMDM4MCwKLSAgMHhhZjgyNGQwMCwKLSAgMHg4ZjgyNGQwMCwKLSAgMHg4ZjgyMGYxNCwKLSAgMHgyNDYzMDAwNCwKLSAgMHgxNDYyMDAwMiwKLSAgMHgyNDE5ZmZmZiwKLSAgMHg4ZjgzMGYxMCwKLSAgMHhhY2E1MDBlNCwKLSAgMHhhZjgzMGZjNCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyNGM4MCwKLSAgMHgxMDAwMDAxZiwKLSAgMHhhZGUyMDAzYywKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhNWUwMDAwMCwKLSAgMHg4Zjg2NGMwMCwKLSAgMHgxNTgwMDAyMiwKLSAgMHhhZjhmNDU0MCwKLSAgMHgxMDAwMDAxNywKLSAgMHgwMWUyNzgyNiwKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjg2NGMwMCwKLSAgMHhhZjk5NGMwMCwKLSAgMHhhZGVmMjAxMCwKLSAgMHgzYzAyY2ZiMCwKLSAgMHgwMWUyNzgyNiwKLSAgMHhhNWUwMDAwMCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDAwMDAwNywKLSAgMHg4Zjk5NGMwMCwKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjg2NGMwMCwKLSAgMHg4Zjk5MGZlYywKLSAgMHgxNTgwMDAwYSwKLSAgMHhhZjhmNDUwMCwKLSAgMHgwMDAwNzgyMSwKLSAgMHgxMDAwMDAxNCwKLSAgMHhhZjE5MDAxNCwKLSAgMHgwMGUwZjgwOSwKLSAgMHgwM2UwMzgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMTgwZmZmOCwKLSAgMHg4Zjg2NGMwMCwKLSAgMHg4NTIyMDAwMCwKLSAgMHgwMTIwNzgyMSwKLSAgMHgwNDQwMDAwYSwKLSAgMHg4ZDI5MDAwOCwKLSAgMHgxMzBiMDAwNCwKLSAgMHgwMDBjMTYwMiwKLSAgMHhhZjE5MDAxNCwKLSAgMHg4ZDc5MDAxNCwKLSAgMHgwMTYwYzAyMSwKLSAgMHhhZjk5NGMwMCwKLSAgMHhhZDhlNDAxMCwKLSAgMHgzMDQyMDAzZiwKLSAgMHgwMWMyNzAyMSwKLSAgMHgwMDA0MTc4MCwKLSAgMHgwNDQwMDE4YiwKLSAgMHg4ZjgyNGEwMCwKLSAgMHgzMDgxODAwMCwKLSAgMHgzMDQyMDAwNCwKLSAgMHgxNDQwZmY4ZCwKLSAgMHg4ZDRiMDAwMCwKLSAgMHgxMDIwMDAwYywKLSAgMHgzMDg0N2ZmZiwKLSAgMHg4ZjgyMGM0OCwKLSAgMHgwMTIwZjAyMSwKLSAgMHgyNDQzMDAzNCwKLSAgMHg4YzVkMDAwYywKLSAgMHgyNDQyMDAwNCwKLSAgMHhhZmRkMDAwYywKLSAgMHgxNDYyZmZmYywKLSAgMHgyN2RlMDAwNCwKLSAgMHhhNTIxMDAwMCwKLSAgMHgxMDAwZmY4MiwKLSAgMHgyNTA4MDAwOCwKLSAgMHgxMTYwMDA1OCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4NTdkMDAwOCwKLSAgMHg4ZDYzMDAwYywKLSAgMHg5NTYyMDAwYSwKLSAgMHg4ZDQxMDAwNCwKLSAgMHgwN2ExMDAyNiwKLSAgMHgwMDYyMTgyMSwKLSAgMHhhNTYzMDAwYSwKLSAgMHgwMDAzMWMwMiwKLSAgMHgwNDExMDFhMCwKLSAgMHgwMDAzMThjMCwKLSAgMHgwMDFkMTZjMCwKLSAgMHgwNDQxMDAxZiwKLSAgMHgyN2EyMDA4MCwKLSAgMHgwMDAyMWNjMCwKLSAgMHgwNDYxMDAwZSwKLSAgMHgwMDQwZTgyMSwKLSAgMHgyN2JkMDA4MCwKLSAgMHg5NTYyMDAwMCwKLSAgMHg5NTYzMDAwMiwKLSAgMHgzNDQyMDAwYywKLSAgMHhhZDIyMDAwYywKLSAgMHgyNDAyMDEwMCwKLSAgMHhhNTIyMDAxMCwKLSAgMHg5NTYyMDAyYywKLSAgMHhhNTIzMDAxNCwKLSAgMHhhNTIyMDAxMiwKLSAgMHhhNTIwMDAxNiwKLSAgMHgzNDAyODAwMCwKLSAgMHhhNTIyMDAwMCwKLSAgMHhhNTdkMDAwOCwKLSAgMHgwN2EwMDAwYywKLSAgMHg4ZjgyMGM0YywKLSAgMHg4ZjgzMGM1MCwKLSAgMHgyNDQxZmZlOCwKLSAgMHgwMDIzZjAyYiwKLSAgMHgxM2MwMDAwMiwKLSAgMHgwMDIwMTAyMSwKLSAgMHgyNDQyMDQwMCwKLSAgMHg5NDVlMDAwMCwKLSAgMHgyNDQxZmZmZSwKLSAgMHgxN2MwZmZmOSwKLSAgMHhhZDYyMDAxMCwKLSAgMHhhNDRiMDAwMCwKLSAgMHgxNDJiMDAxYywKLSAgMHhhZDQwMDAwMCwKLSAgMHhhZDQwMDAwNCwKLSAgMHgyNTRhMDAwOCwKLSAgMHgzMTQyMDA3ZiwKLSAgMHgxNDQwMDAwZSwKLSAgMHgwMDA0MTc4MCwKLSAgMHgwNDQxMDAwMywKLSAgMHg4ZjgyMGZlMCwKLSAgMHgxMDAwMDAwNiwKLSAgMHgzNDg0MDAwMSwKLSAgMHgzNDg0MDAwMiwKLSAgMHgyNDQyMDAwOCwKLSAgMHgzNDQyMTAwMCwKLSAgMHgzODQyMTAwMCwKLSAgMHhhZjgyMGZlMCwKLSAgMHgzNTRhMDEwMCwKLSAgMHgzOTRhMDEwMCwKLSAgMHgzOTQyMDA4MCwKLSAgMHhhZjgyMGZlNCwKLSAgMHgwMDFkMTRjMCwKLSAgMHgwNDQxMDAwMywKLSAgMHgzM2EyZWZmZiwKLSAgMHgxMDAwZmYzYywKLSAgMHhhNTYyMDAwOCwKLSAgMHgwN2EwMDA5ZiwKLSAgMHgzM2EyZmZmZSwKLSAgMHgxMDAwMDAyMSwKLSAgMHhhNTYyMDAwOCwKLSAgMHg4ZDYyMDAyNCwKLSAgMHgwMDFkMWNjMCwKLSAgMHgwNDYxMDAwNCwKLSAgMHhhZDQyMDAwMCwKLSAgMHgzM2EzZWZmZiwKLSAgMHgxMDAwZmYzMSwKLSAgMHhhNTYzMDAwOCwKLSAgMHgwN2EwMDAwNSwKLSAgMHgzM2EzZmZmZSwKLSAgMHhhNTYzMDAwOCwKLSAgMHg4ZDRiMDAwMCwKLSAgMHgxMDAwZmZhYSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDAwMDA4ZSwKLSAgMHgyNTA4MDAwOCwKLSAgMHgyNTRhMDAwOCwKLSAgMHgzMTQyMDA3ZiwKLSAgMHgxNDQwMDAwZSwKLSAgMHgwMDA0MTc4MCwKLSAgMHgwNDQxMDAwMywKLSAgMHg4ZjgyMGZlMCwKLSAgMHgxMDAwMDAwNiwKLSAgMHgzNDg0MDAwMSwKLSAgMHgzNDg0MDAwMiwKLSAgMHgyNDQyMDAwOCwKLSAgMHgzNDQyMTAwMCwKLSAgMHgzODQyMTAwMCwKLSAgMHhhZjgyMGZlMCwKLSAgMHgzNTRhMDEwMCwKLSAgMHgzOTRhMDEwMCwKLSAgMHgzOTQyMDA4MCwKLSAgMHhhZjgyMGZlNCwKLSAgMHgxMTAwMDAwMywKLSAgMHg4ZDRiMDAwMCwKLSAgMHgxMDAwZmY5MywKLSAgMHgyNTA4ZmZmOCwKLSAgMHg4ZjgyMGZkOCwKLSAgMHg4ZjgzMGZkYywKLSAgMHg4ZjgxMGZkNCwKLSAgMHgxMDYyMDAxZCwKLSAgMHgyNDYyMDAwOCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjhjNGMwMCwKLSAgMHg4NDdmMDAwMCwKLSAgMHgzYzFlMDBkMSwKLSAgMHgzM2ZkMDNmZiwKLSAgMHgwMDFkNTk4MCwKLSAgMHgwMTdlNTgyMSwKLSAgMHg4NTdlMDAwOCwKLSAgMHgwMDFkZTkwMCwKLSAgMHgwMDFlMGYwMCwKLSAgMHgwM2UxZjgyNSwKLSAgMHgwN2UwMDAwMywKLSAgMHhhZjgyMGZkYywKLSAgMHg4NzllMGNhMCwKLSAgMHgyNzhiMGM5OCwKLSAgMHgwN2MxMDA0MiwKLSAgMHgzYzAyMDg0MCwKLSAgMHgzYzAxZjdiMCwKLSAgMHg4ZDYyMDAyMCwKLSAgMHgwMDIzMDgyNiwKLSAgMHhhYzIyMDAwMCwKLSAgMHg4YzYyMDAwNCwKLSAgMHg5NDYzMDAwMiwKLSAgMHgyNDQyZmZmOCwKLSAgMHgwMDQzMTAyMSwKLSAgMHgxMDAwMDA0ZSwKLSAgMHhhZDYyMDAyMCwKLSAgMHg4ZjgyMGZkMCwKLSAgMHg4NzgzMGNhMCwKLSAgMHgxNDIyMDAwNywKLSAgMHgyNzhiMGM5OCwKLSAgMHg0MTAwMDA1MSwKLSAgMHgzYzAxODAwMCwKLSAgMHhhY2ExMDBlMCwKLSAgMHg4Y2ExMDBjNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDIyMDA0YywKLSAgMHgwMDIyZTgyMywKLSAgMHg4ZjlmMGYwYywKLSAgMHgwN2ExMDAwMiwKLSAgMHhhZjgxMGZkNCwKLSAgMHgwM2UyZTgyMywKLSAgMHgyZmEzMDA0MSwKLSAgMHgxNDYwMDAwMiwKLSAgMHgzYzFlMDA0MCwKLSAgMHgyNDFkMDA0MCwKLSAgMHgwMDFkMWU4MCwKLSAgMHgwMDAzMTg4MiwKLSAgMHgwMDdlMTgyNSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjhjNGMwMCwKLSAgMHhhYzYyNGNjMCwKLSAgMHgwMDVkMTAyMSwKLSAgMHgxNDVmMDAwMiwKLSAgMHgyNzgzMGNjMCwKLSAgMHg4ZjgyMGYwOCwKLSAgMHgwM2EzZjAyMSwKLSAgMHhhZjgyMGZkMCwKLSAgMHhhZjllMGZkOCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDAwZmZjMywKLSAgMHgyNDYyMDAwOCwKLSAgMHg4ZDYzMDAwYywKLSAgMHg4ZDdkMDAxMCwKLSAgMHhhNTYzMDAwYSwKLSAgMHgxM2EwMDAwMiwKLSAgMHgwMDAzMWMwMiwKLSAgMHhhN2EwMDAwMCwKLSAgMHgwMDAzMThjMCwKLSAgMHgwNDExMDBlZiwKLSAgMHgwMDY4MTgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyMGM0NCwKLSAgMHg4ZjgzMGM0MCwKLSAgMHhhZDYyMDAxMCwKLSAgMHhhNTYzMDAwNCwKLSAgMHhhNTYzMDAwNiwKLSAgMHgxMDAwMDAyMSwKLSAgMHhhZjhjNGMwMCwKLSAgMHhhNTdkMDAwMCwKLSAgMHg4YzdkMDAwNCwKLSAgMHg5NDYzMDAwMiwKLSAgMHhhYzVkNGM0MCwKLSAgMHgyN2EyMDAwOCwKLSAgMHhhZDYyMDAxOCwKLSAgMHgwM2EzZTgyMSwKLSAgMHgyN2JkZmZmNCwKLSAgMHhhZDdkMDAxYywKLSAgMHgyN2JkMDAwNCwKLSAgMHhhZDdkMDAyMCwKLSAgMHgzN2MxODAwMSwKLSAgMHgwMDFlMTdjMCwKLSAgMHgwNDQxZmZlMCwKLSAgMHhhNTYxMDAwOCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyMGM0NCwKLSAgMHg4ZjgzMGM0MCwKLSAgMHhhZDYyMDAxMCwKLSAgMHhhNTYzMDAwNCwKLSAgMHhhNTYzMDAwNiwKLSAgMHg4ZjgyMGZkOCwKLSAgMHg4ZjgzMGZkYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxNDYyZmY5NSwKLSAgMHgyNDYyMDAwOCwKLSAgMHhhZjhjNGMwMCwKLSAgMHg4NzgzMGNhMCwKLSAgMHgyNzhiMGM5OCwKLSAgMHgwNDYxZmU5NywKLSAgMHgwMDA0MTcwMCwKLSAgMHgwNDQwMDAwNSwKLSAgMHg5NTYyMDAwMCwKLSAgMHgxMTc4MDAwNiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjBlMDAxMCwKLSAgMHhhNzBkMDAwNCwKLSAgMHgzMDg0ZmZmNywKLSAgMHg5NTZkMDAwNCwKLSAgMHg4ZDZlMDAxMCwKLSAgMHgyNWFkZmZkMCwKLSAgMHgwNWExZmU4ZiwKLSAgMHhhZDIyMDAwYywKLSAgMHgzYzBjZmZiMCwKLSAgMHgwMTg5NjAyNiwKLSAgMHgwMDBkMTgyMiwKLSAgMHgyNWFkMDAzMCwKLSAgMHg4ZDdlMDAxOCwKLSAgMHg4ZDYxMDAxYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDNlMDAzNiwKLSAgMHg4ZjlkNGMwMCwKLSAgMHgzYzAxMDg0MCwKLSAgMHhhYzNlNGM0MCwKLSAgMHgyN2RlMDAwOCwKLSAgMHgxMWEwMDAxNywKLSAgMHhhZDdlMDAxOCwKLSAgMHgwMDBkZjYwMCwKLSAgMHgwMTllNjAyNSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZDhlNDAxMCwKLSAgMHg4ZjhkMGM0MCwKLSAgMHg5NTdlMDAwNiwKLSAgMHg4ZjhlMGM0NCwKLSAgMHgwM2NkZjAyMSwKLSAgMHhhNTdlMDAwNiwKLSAgMHgwMDBjZjc4MiwKLSAgMHgwMDBjMGUwMiwKLSAgMHgwM2MxZjAyMSwKLSAgMHgwMDFlMGY4MCwKLSAgMHgwMDBjNjIwMCwKLSAgMHgwMDBjNjIwMiwKLSAgMHgwMTgxNjAyNSwKLSAgMHgzM2RlMDAzYywKLSAgMHgwMTllNjAyMSwKLSAgMHgzNDAxMDAwMSwKLSAgMHgxMDAwMDAwOCwKLSAgMHhhNTIxMDAwMCwKLSAgMHg5NTdlMDAwNiwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjhkMGM0MCwKLSAgMHg4ZjhlMGM0NCwKLSAgMHgwM2NkZjAyMSwKLSAgMHhhNTdlMDAwNiwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMWEzZjAyYiwKLSAgMHgxN2MwMDAwOCwKLSAgMHgwMDAzZjYwMCwKLSAgMHgwMWEzNjgyMywKLSAgMHgwMTllNjAyNSwKLSAgMHgwMTg5NjAyNiwKLSAgMHg0ZDAxZmZmNywKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDAwZmU1OCwKLSAgMHhhZjlkNGMwMCwKLSAgMHg4ZDdlMDAxOCwKLSAgMHg4ZDYxMDAxYywKLSAgMHgwMDAwMDAwMCwKLSAgMHgxNDNlZmZjZSwKLSAgMHgwMDZkMTgyMywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgyYzYxMDAwOCwKLSAgMHgxMDIwMDAxNywKLSAgMHg5NTYxMDAwOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAxZmY4MCwKLSAgMHgwN2UwMDAwYiwKLSAgMHgzNDIxMDAwMiwKLSAgMHgwMDZkMTgyMSwKLSAgMHgwMDAzMWUwMCwKLSAgMHgwMTgzNjAyNSwKLSAgMHgwMTg5NjAyNiwKLSAgMHgyNDBkMDAyYywKLSAgMHhhNTYxMDAwOCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDAwZmU0MCwKLSAgMHhhZjlkNGMwMCwKLSAgMHgzYzFmMGM0MCwKLSAgMHhhZmZlNGZhOCwKLSAgMHgzMDIxZmZmZCwKLSAgMHhhNTYxMDAwOCwKLSAgMHgzYzBjZDNjZiwKLSAgMHgzNThjZTAwMCwKLSAgMHgxMDAwMDAwOCwKLSAgMHgzNDAzMDAwMiwKLSAgMHgzYzFmMGM0MCwKLSAgMHhhZmZlNGZhOCwKLSAgMHgxMWEwZmZmOSwKLSAgMHgwMDBkZjYwMCwKLSAgMHgzNDAzMDAwMywKLSAgMHgwMTllNjAyNSwKLSAgMHgwMTg5NjAyNiwKLSAgMHgzNDg0MDAwOCwKLSAgMHgzNDQyMDAwMiwKLSAgMHhhZDIyMDAwYywKLSAgMHg5NTYyMDAwNiwKLSAgMHhhNTIzMDAwMCwKLSAgMHhhZDIyMDAzOCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4NTdlMDAwOCwKLSAgMHg4ZjgyMGZhOCwKLSAgMHg5NzgzMGZhYywKLSAgMHhhZDIyMDAwNCwKLSAgMHgzM2MxN2ZmZiwKLSAgMHhhZDYwMDAxMCwKLSAgMHhhNTYxMDAwOCwKLSAgMHgxMDYwZmUyMCwKLSAgMHhhZjlkNGMwMCwKLSAgMHhhNTdlMDAwOCwKLSAgMHgwMDAzMTkwMCwKLSAgMHgzMDYzM2ZmMCwKLSAgMHhhNTYzMDAwMCwKLSAgMHg4ZjgyMGZiMCwKLSAgMHgzYzAzMDg0MCwKLSAgMHhhYzYyNGM0MCwKLSAgMHgyNDQzMDAwOCwKLSAgMHhhZDYzMDAxOCwKLSAgMHg5NzgzMGZhZSwKLSAgMHgyNDQyZmZmNCwKLSAgMHgwMDYyMTgyMSwKLSAgMHhhZDYzMDAxYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjhkMGM0MCwKLSAgMHg4ZjgzMGM0NCwKLSAgMHhhNTZkMDAwNCwKLSAgMHhhNTZkMDAwNiwKLSAgMHhhZDYzMDAxMCwKLSAgMHgxMDAwZmUwYSwKLSAgMHhhZjlkNGMwMCwKLSAgMHg4ZjgyMGZlMCwKLSAgMHgwMDA0MGZjMCwKLSAgMHg4YzQzMDAwMCwKLSAgMHgwNDIxMDAxYiwKLSAgMHg4ZjlmMGZlNCwKLSAgMHg4YzVkMDAwNCwKLSAgMHhhYzQwMDAwNCwKLSAgMHgxMDYwMDAwZSwKLSAgMHhhYzQwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg5NDYyMDAyOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDVmMTAyMCwKLSAgMHg4YzQxMDAwNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDIwMDAwMywKLSAgMHhhYzQzMDAwNCwKLSAgMHgxMDAwMDAwMiwKLSAgMHhhYzIzMDAyNCwKLSAgMHhhYzQzMDAwMCwKLSAgMHgxN2EzZmZmNCwKLSAgMHg4YzYzMDAyNCwKLSAgMHg4ZjgyMGZlMCwKLSAgMHgzYmZmMDA4MCwKLSAgMHgyNDQyMDAwOCwKLSAgMHgzNDQyMTAwMCwKLSAgMHgzODQyMTAwMCwKLSAgMHhhZjgyMGZlMCwKLSAgMHhhZjlmMGZlNCwKLSAgMHgxMDAwZmU1NywKLSAgMHgzMDg0ZmZmZSwKLSAgMHgxMDYwMDAxMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg5NDdkMDAyOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwM2JmZTgyMCwKLSAgMHg4ZmExMDAwNCwKLSAgMHhhZmEzMDAwNCwKLSAgMHgxMDIwMDAwMywKLSAgMHg4YzVlMDAwNCwKLSAgMHgxMDAwMDAwMiwKLSAgMHhhYzIzMDAyNCwKLSAgMHhhZmEzMDAwMCwKLSAgMHg4YzYxMDAyNCwKLSAgMHgxN2MzZmU0OCwKLSAgMHhhYzQxMDAwMCwKLSAgMHhhYzQwMDAwNCwKLSAgMHhhYzQwMDAwMCwKLSAgMHgxMDAwZmU0NCwKLSAgMHgzMDg0ZmZmZCwKLSAgMHgyYzYyMDEwMCwKLSAgMHgxNDQwMDAwZSwKLSAgMHgwMDZhMTAyMSwKLSAgMHgzMTQzMDA3ZiwKLSAgMHgwMTQzMTgyMywKLSAgMHgwMDQzMTgyMywKLSAgMHgzMDYyMDA3ZiwKLSAgMHhhNTYyMDAyOCwKLSAgMHgwMDYyMTgyMywKLSAgMHgwMDAzMTkwMiwKLSAgMHg4ZjgyMGZlMCwKLSAgMHgyNDYzZmZmOCwKLSAgMHgwMDYyMTgyMSwKLSAgMHgzNDYzMTAwMCwKLSAgMHgxMDAwMDAwMywKLSAgMHgzODYzMTAwMCwKLSAgMHgzNDQzMDEwMCwKLSAgMHgzODYzMDEwMCwKLSAgMHg4YzYyMDAwNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDQwMDAwMywKLSAgMHhhYzZiMDAwNCwKLSAgMHgwM2UwMDAwOCwKLSAgMHhhYzRiMDAyNCwKLSAgMHgwM2UwMDAwOCwKLSAgMHhhYzZiMDAwMCwKLSAgMHgwMDAwMDAwMiwKLSAgMHhhMGQwZTAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMTAwMCwKLSAgMHgwMDAwMDAwNiwKLSAgMHgwMDAwMDAwOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwOCwKLSAgMHgwMDAwMDAwMiwKLSAgMHhhMGQwZDY0OCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDg4OCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgyNDMxMzIwMCwKLSAgMHgyNDMxMzIwMCwKLSAgMHgyNDMxMzIwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgyNDRkNDM1MiwKLSAgMHgyNDIwNDM2ZiwKLSAgMHg3MDc5NzI2OSwKLSAgMHg2NzY4NzQyMCwKLSAgMHgyODYzMjkyMCwKLSAgMHg0ZDYxNjQ2NywKLSAgMHg2NTIwNGU2NSwKLSAgMHg3NDc3NmY3MiwKLSAgMHg2YjczMjA0YywKLSAgMHg3NDY0MjAzMSwKLSAgMHgzOTM5MzUyZSwKLSAgMHgyMDQxNmM2YywKLSAgMHgyMDcyNjk2NywKLSAgMHg2ODc0NzMyMCwKLSAgMHg3MjY1NzM2NSwKLSAgMHg3Mjc2NjU2NCwKLSAgMHgyZTAwNGQ2MSwKLSAgMHg2NDY3NjUyMCwKLSAgMHg0MTZkNjI2MSwKLSAgMHg3MzczNjE2NCwKLSAgMHg2ZjcyMjA3NiwKLSAgMHgzMTJlMzAzMSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMSwKLSAgMHgwMDAwMDAwMSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhmZmYwNDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwYzM0M2UyZCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzFjYTBkMSwKLSAgMHgyNzljNTYzOCwKLSAgMHgzYzFkYTBkMSwKLSAgMHgyN2JkZGZkMCwKLSAgMHgzYzA4YTBkMSwKLSAgMHgyNTA4ZGZkMCwKLSAgMHhhZjg3ODAwOCwKLSAgMHgwYzM0M2MxMywKLSAgMHgwMDAwMDAwMCwKLSAgMHgyNDA0MDAwMywKLSAgMHgwMDk3MDAwZCwKLSAgMHgzYzA4YmZjMCwKLSAgMHgzNTA4MDIzMCwKLSAgMHg4ZDA4MDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMTAwMDAwOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgyN2JkZmZkMCwKLSAgMHhhZmJmMDAxYywKLSAgMHhhZmIxMDAxOCwKLSAgMHhhZmIwMDAxNCwKLSAgMHgzYzExZmZmMCwKLSAgMHgwMDAwODAyMSwKLSAgMHgzYzE4MDA1NiwKLSAgMHgzNzE4M2I3OSwKLSAgMHgyNjE5MDIwMCwKLSAgMHgxNzIwMDAwMiwKLSAgMHgwMzE5MDAxYSwKLSAgMHgwMDA3MDAwZCwKLSAgMHgyNDAxZmZmZiwKLSAgMHgxNzIxMDAwNSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzAxODAwMCwKLSAgMHgxNzAxMDAwMiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDA2MDAwZCwKLSAgMHgwMDAwMTAxMiwKLSAgMHgwMDEwMTg0MCwKLSAgMHgzYzA1YTBkMSwKLSAgMHgyNGE1ZDZjYywKLSAgMHgwMGEzMjAyMSwKLSAgMHhhNDgyMDAwMCwKLSAgMHgyNjEwMDAwMSwKLSAgMHgyYTAxMDIwMCwKLSAgMHgxNDIwZmZlYSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzA2YTBkMSwKLSAgMHgyNGM2ZjllNCwKLSAgMHgzYzA3YTBkMSwKLSAgMHgyNGU3ZDY0OCwKLSAgMHhhY2U2MDAwMCwKLSAgMHgzYzA4YTBkMSwKLSAgMHgyNTA4ZmIxNCwKLSAgMHhhY2U4MDAwNCwKLSAgMHgzYzA5YTBkMSwKLSAgMHgyNTI5ZmM5NCwKLSAgMHhhY2U5MDAwOCwKLSAgMHgzYzBhYTBkMSwKLSAgMHgyNTRhZmNkNCwKLSAgMHhhY2VhMDAwYywKLSAgMHgzYzBiYTBkMSwKLSAgMHgyNTZiZmJhOCwKLSAgMHhhY2ViMDAxMCwKLSAgMHgzYzBjYTBkMSwKLSAgMHgyNThjZmJjNCwKLSAgMHhhY2VjMDAxNCwKLSAgMHgzYzBkYTBkMSwKLSAgMHgyNWFkZmJlMCwKLSAgMHhhY2VkMDAxOCwKLSAgMHgzYzBlYTBkMSwKLSAgMHgyNWNlZmJmYywKLSAgMHhhY2VlMDAxYywKLSAgMHgzYzBmYTBkMSwKLSAgMHgyNWVmZmMxOCwKLSAgMHhhY2VmMDAyMCwKLSAgMHgzYzE4YTBkMSwKLSAgMHgyNzE4ZmMzNCwKLSAgMHhhY2Y4MDAyNCwKLSAgMHgzYzE5YTBkMSwKLSAgMHgyNzM5ZmM1MCwKLSAgMHhhY2Y5MDAyOCwKLSAgMHgzYzAyYTBkMSwKLSAgMHgyNDQyZmM2MCwKLSAgMHhhY2UyMDAyYywKLSAgMHgzYzAzYTBkMSwKLSAgMHgyNDYzZmM3MCwKLSAgMHhhY2UzMDAzMCwKLSAgMHgzYzA0YTBkMSwKLSAgMHgyNDg0ZmM4MCwKLSAgMHhhY2U0MDAzNCwKLSAgMHgzYzA1YTBkMSwKLSAgMHgyNGE1ZmNiNCwKLSAgMHhhY2U1MDAzOCwKLSAgMHgzYzA2YTBkMSwKLSAgMHgyNGM2ZmUwOCwKLSAgMHhhY2U2MDAzYywKLSAgMHgzYzA4YTBkMSwKLSAgMHgyNTA4ZmU5MCwKLSAgMHhhY2U4MDA0MCwKLSAgMHgzYzA5YTBkMSwKLSAgMHgyNTI5ZmEzOCwKLSAgMHhhY2U5MDA0NCwKLSAgMHgzYzBhYTBkMSwKLSAgMHgyNTRhZmE3NCwKLSAgMHhhY2VhMDA0OCwKLSAgMHgyNDEwMDAxMywKLSAgMHgzYzBiYTBkMSwKLSAgMHgyNTZiZjlkOCwKLSAgMHgwMDEwNjA4MCwKLSAgMHgzYzBlYTBkMSwKLSAgMHgyNWNlZDY0OCwKLSAgMHgwMWNjNjgyMSwKLSAgMHhhZGFiMDAwMCwKLSAgMHgyNjEwMDAwMSwKLSAgMHgyYTAxMDAyMCwKLSAgMHgxNDIwZmZmNiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjk4ODAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjAwMDEwMCwKLSAgMHg4ZjgyODAwMCwKLSAgMHgyNDE5MDNmZiwKLSAgMHhhNDU5MDIwMiwKLSAgMHgwMDAwODAyMSwKLSAgMHg4Zjg2ODAwMCwKLSAgMHgyNDAzMGZmZiwKLSAgMHgwMDEwMjA0MCwKLSAgMHgyNGM3MDM4MCwKLSAgMHgwMGU0MjgyMSwKLSAgMHhhNGEzMDAwMCwKLSAgMHgyNjEwMDAwMSwKLSAgMHgyYTAxMDAwOCwKLSAgMHgxNDIwZmZmNywKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjg5ODAwMCwKLSAgMHgzNDA4OWM0MCwKLSAgMHhhZDI4MDNhMCwKLSAgMHg4ZjhiODAwMCwKLSAgMHgzYzBhMDBmZiwKLSAgMHgzNTRhZmZmZiwKLSAgMHhhZDZhMDNhNCwKLSAgMHgwMDAwODAyMSwKLSAgMHg4ZjhmODAwMCwKLSAgMHgyNDBjMGZmZiwKLSAgMHgwMDEwNjg0MCwKLSAgMHgyNWY4MDMwMCwKLSAgMHgwMzBkNzAyMSwKLSAgMHhhNWNjMDAwMCwKLSAgMHgyNjEwMDAwMSwKLSAgMHgyYTAxMDAwOCwKLSAgMHgxNDIwZmZmNywKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyODAwMCwKLSAgMHgzNDE5OWM0MCwKLSAgMHhhYzU5MDMyMCwKLSAgMHg4Zjg0ODAwMCwKLSAgMHgzYzAzMDBmZiwKLSAgMHgzNDYzZmZmZiwKLSAgMHhhYzgzMDMyNCwKLSAgMHg4Zjg2ODAwMCwKLSAgMHgyNDA1MDJmZiwKLSAgMHhhNGM1MDIwMiwKLSAgMHgzYzA4YTBjMCwKLSAgMHgzNTA4MDE4MCwKLSAgMHgzYzA5YTBkMSwKLSAgMHgyNTI5ZDViOCwKLSAgMHgyNTBhMDAyOCwKLSAgMHg4ZDBiMDAwMCwKLSAgMHg4ZDBjMDAwNCwKLSAgMHhhZDJiMDAwMCwKLSAgMHhhZDJjMDAwNCwKLSAgMHgyNTA4MDAwOCwKLSAgMHgxNTBhZmZmYSwKLSAgMHgyNTI5MDAwOCwKLSAgMHg0MDAyNjAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZmEyMDAyOCwKLSAgMHgyNDAzMDAyMiwKLSAgMHgzYzA0YTBlMCwKLSAgMHgzNDg0MDAxNCwKLSAgMHhhYzgzMDAwMCwKLSAgMHg4ZmE1MDAyOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzNGE2MTAwMSwKLSAgMHgwMGMwMTAyMSwKLSAgMHhhZmE2MDAyOCwKLSAgMHgzYzA3ZmZiZiwKLSAgMHgzNGU3ZmZmZiwKLSAgMHgwMGM3MzgyNCwKLSAgMHgwMGUwMTAyMSwKLSAgMHhhZmE3MDAyOCwKLSAgMHg0MDg3NjAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzA4MDAwMiwKLSAgMHgzNTA4ZDg5MCwKLSAgMHgzYzA5ZmZmZSwKLSAgMHgzNTI5MDEzMCwKLSAgMHhhZDI4MDAwMCwKLSAgMHg4ZmFhMDAyOCwKLSAgMHgzYzBiZjAwMCwKLSAgMHgwMTRiNTgyNSwKLSAgMHgwMTYwMTAyMSwKLSAgMHhhZmFiMDAyOCwKLSAgMHgwMTYwNjAyMSwKLSAgMHg0MDhjNjAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwODAyMSwKLSAgMHgwMDEwNzA4MCwKLSAgMHgwMjJlNzgyMSwKLSAgMHhhZGUwMDAwMCwKLSAgMHgyNjEwMDAwMSwKLSAgMHgyYTAxMDQwMCwKLSAgMHgxNDIwZmZmYSwKLSAgMHgwMDAwMDAwMCwKLSAgMHgyNDE4MDAwMSwKLSAgMHgzYzE5YTBlOCwKLSAgMHhhZjM4MDAwMCwKLSAgMHgyNDAyMDAxMSwKLSAgMHgzYzAzYTBmMCwKLSAgMHgzNDYzMDAxNywKLSAgMHhhMDYyMDAwMCwKLSAgMHgzYzA0ZjBlYiwKLSAgMHgzNDg0MDA3MCwKLSAgMHgzYzA1ZmZmMCwKLSAgMHgzNGE1NGEwMCwKLSAgMHhhY2E0MDAwMCwKLSAgMHgzYzA2ZmNlYiwKLSAgMHgzNGM2MDA3MCwKLSAgMHhhY2E2MDAwMCwKLSAgMHgzYzA3ZmZmMCwKLSAgMHgzNGU3NDcwMCwKLSAgMHhhY2UwMDAwMCwKLSAgMHgwMDAwODAyMSwKLSAgMHgzYzA4ZmZmMCwKLSAgMHgzNTA4MGZjMCwKLSAgMHgzYzA5ZmZmMCwKLSAgMHgzNTI5NDUwMCwKLSAgMHhhZDI4MDAwMCwKLSAgMHgyNjEwMDAwMSwKLSAgMHgyYTAxMDAwNCwKLSAgMHgxNDIwZmZmOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwODAyMSwKLSAgMHgzYzBhZGVhZCwKLSAgMHgwMDEwNTk4MCwKLSAgMHgzYzAxMDBkMSwKLSAgMHgwMDJiMDgyMSwKLSAgMHhhYzJhMDAzYywKLSAgMHgzYzAxMDBkMSwKLSAgMHgwMDJiMDgyMSwKLSAgMHhhYzIwMDAzMCwKLSAgMHgzYzAxMDBkMSwKLSAgMHgwMDJiMDgyMSwKLSAgMHhhYzIwMDAzOCwKLSAgMHgyNDBkZmZmZiwKLSAgMHgzYzAxMDBkMSwKLSAgMHgwMDJiMDgyMSwKLSAgMHhhYzJkMDAxNCwKLSAgMHgwMDEwNzEwMCwKLSAgMHgzYzAxMDBkMSwKLSAgMHgwMDJiMDgyMSwKLSAgMHhhNDJlMDAwMCwKLSAgMHgzYzAxMDBkMSwKLSAgMHgwMDJiMDgyMSwKLSAgMHhhNDIwMDAwNCwKLSAgMHgyNDE4MDAyMCwKLSAgMHgzYzAxMDBkMSwKLSAgMHgwMDJiMDgyMSwKLSAgMHhhNDM4MDAwOCwKLSAgMHgzYzAxMDBkMSwKLSAgMHgwMDJiMDgyMSwKLSAgMHhhYzIwMDAxMCwKLSAgMHgyNjEwMDAwMSwKLSAgMHgyYTAxMDQwMCwKLSAgMHgxNDIwZmZlMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwODAyMSwKLSAgMHgwMDEwMThjMCwKLSAgMHgzYzA1YTBkMSwKLSAgMHgyNGE1ZTAwMCwKLSAgMHgwMGEzMjAyMSwKLSAgMHhhYzgwMDAwMCwKLSAgMHgzYzA3YTBkMSwKLSAgMHgyNGU3ZTAwMCwKLSAgMHgyNGU4MDAwNCwKLSAgMHgwMTAzMzAyMSwKLSAgMHhhY2MwMDAwMCwKLSAgMHgyNjEwMDAwMSwKLSAgMHgyYTAxMDAwOSwKLSAgMHgxNDIwZmZmMywKLSAgMHgwMDAwMDAwMCwKLSAgMHgyNDA5MDM4MCwKLSAgMHgzYzBhZmZmMCwKLSAgMHgzNTRhNGQwMCwKLSAgMHhhZDQ5MDAwMCwKLSAgMHgzYzBjYTA4MCwKLSAgMHgzNThjMDA5YywKLSAgMHhhZDgwMDAwMCwKLSAgMHgzYzBkYTA4MCwKLSAgMHgzNWFkMDBhMCwKLSAgMHhhZGEwMDAwMCwKLSAgMHgzYzBlMTEwMCwKLSAgMHgzYzBmYTA4MCwKLSAgMHgzNWVmMDBhOCwKLSAgMHhhZGVlMDAwMCwKLSAgMHg0MTAxMDAwMywKLSAgMHgwMDAwMDAwMCwKLSAgMHg0MTAwZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzE4YTA4MCwKLSAgMHgzNzE4MDBlMCwKLSAgMHg4ZjE5MDAwMCwKLSAgMHgzYzAxYTBkMSwKLSAgMHhhYzM5ZDZjOCwKLSAgMHgwYzM0M2Q0MywKLSAgMHgwMzIwMjAyMSwKLSAgMHg4ZmIwMDAxNCwKLSAgMHg4ZmJmMDAxYywKLSAgMHg4ZmIxMDAxOCwKLSAgMHgwM2UwMDAwOCwKLSAgMHgyN2JkMDAzMCwKLSAgMHgwMDgwYjgyMSwKLSAgMHgzYzFjZmZmMCwKLSAgMHhhMzgwMGM4NCwKLSAgMHhhMzgwMGM4OCwKLSAgMHg4ZjkwNDQwMCwKLSAgMHgwMDAwMjAyMSwKLSAgMHhhZjgwMGNiYywKLSAgMHgyNDAyMDBhOCwKLSAgMHgyNzgzMGYwMCwKLSAgMHgyYzVkMDA0MCwKLSAgMHgxN2EwMDAwYywKLSAgMHgzYzFkZmZiMCwKLSAgMHgwM2EzZTgyNiwKLSAgMHhhZmI3NDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgyNDQyZmZjMCwKLSAgMHgyNDYzMDA0MCwKLSAgMHgxMDAwZmZmMywKLSAgMHgyNmY3MDA0MCwKLSAgMHgxMDQwMDAwZCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAyZWUwMCwKLSAgMHgzYzAxMDA0MCwKLSAgMHgwM2ExZTgyNSwKLSAgMHgzYzAxZmZmMCwKLSAgMHgwM2ExZTgyNiwKLSAgMHgwM2EzZTgyNiwKLSAgMHhhZmI3NDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzA1YTA4MCwKLSAgMHg4ZjgyMGYwOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjgyMGZkNCwKLSAgMHhhZjgyMGZkMCwKLSAgMHhhY2EyMDBjNCwKLSAgMHg4ZjgyMGYxMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAyMWQ4MiwKLSAgMHhhZjgzMGZjMCwKLSAgMHgwMDAzMWQ4MCwKLSAgMHgwMDQzMTAyMywKLSAgMHgzYzAxYTA4MCwKLSAgMHgwMDQxMTAyNSwKLSAgMHhhZjgyMGZjNCwKLSAgMHhhZjgyMGYxMCwKLSAgMHg4ZjgyMGYxNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDQzMTAyMywKLSAgMHgzYzAxYTA4MCwKLSAgMHgwMDQxMTAyNSwKLSAgMHhhZjgyMGYxNCwKLSAgMHgyNDAzMDAwMywKLSAgMHgyNzlkMGYxOCwKLSAgMHgyNGJlMDBjOCwKLSAgMHgyNzgxMGQwMCwKLSAgMHg4ZmEyMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZmEyMDAxMCwKLSAgMHhhZmMyMDAwMCwKLSAgMHhhZmExMDAwOCwKLSAgMHhhZmExMDAwYywKLSAgMHg4ZmEyMDAxNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZmEyMDAxYywKLSAgMHgyN2JkMDAyNCwKLSAgMHgyN2RlMDAwNCwKLSAgMHgyNDIxMDA0MCwKLSAgMHgxNDYwZmZmMywKLSAgMHgyNDYzZmZmZiwKLSAgMHg4ZjgyMGYwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjgyMGZjOCwKLSAgMHhhY2EyMDBjMCwKLSAgMHgyNzgyMDgwMCwKLSAgMHgyNDAzMDAwZiwKLSAgMHhhYzQwMDAwMCwKLSAgMHgyNDQyMDAwNCwKLSAgMHgxNDYwZmZmZCwKLSAgMHgyNDYzZmZmZiwKLSAgMHg4ZjgzMGZjMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjgzNGQwMCwKLSAgMHg4ZjgzNGQwMCwKLSAgMHg4ZjgzMGYxNCwKLSAgMHg4ZjgyMGYxMCwKLSAgMHgyNDYzZmZmYywKLSAgMHhhYzQwMDAwMCwKLSAgMHgxNDQzZmZmZSwKLSAgMHgyNDQyMDAwNCwKLSAgMHgyNDAyMDM4MCwKLSAgMHhhZjgyNGQwMCwKLSAgMHgyNzlkMGYxOCwKLSAgMHgyN2ExMDA5MCwKLSAgMHg4ZmEyMDAxNCwKLSAgMHg4ZmEzMDAxOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDYyMTgyMywKLSAgMHgyYzdmMDA0MCwKLSAgMHgxN2UwMDAwOSwKLSAgMHgzYzFmMDA0MCwKLSAgMHgzN2ZmMDgwMCwKLSAgMHgwM2EwZjAyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZmUyMDAwMCwKLSAgMHgyNDQyMDA0MCwKLSAgMHgxMDAwZmZmNiwKLSAgMHgyNDYzZmZjMCwKLSAgMHgxMDYwMDAwNiwKLSAgMHgzN2ZmMDgwMCwKLSAgMHgwMDAzMWUwMCwKLSAgMHgwM2UzZjgyNSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZmUyMDAwMCwKLSAgMHgyN2JkMDAyNCwKLSAgMHgxN2ExZmZlOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMzgyMSwKLSAgMHg4ZmMyMDAxNCwKLSAgMHg4ZmMzMDAxOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDYyMTgyMywKLSAgMHgyYzdmMDA0MCwKLSAgMHgxM2UwMDAwNCwKLSAgMHgzYzFmMDA0MCwKLSAgMHgwMDAzMGUwMCwKLSAgMHgxMDAwMDAwMiwKLSAgMHgwM2UxZjgyNSwKLSAgMHgyNDAzMDA0MCwKLSAgMHgzN2ZmMDgwMCwKLSAgMHgyNDFlMDNlNywKLSAgMHgwMDAwMDgyMSwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZmUyMDAwMCwKLSAgMHgwMDIzMDgyMSwKLSAgMHg0OTAwZmZmYiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4NzgwNDAwMiwKLSAgMHgxN2MwZmZmOCwKLSAgMHgyN2RlZmZmZiwKLSAgMHgxNGUwMDAwNCwKLSAgMHgzNGU3NDAwMCwKLSAgMHgwM2U3ZjgyNSwKLSAgMHgxMDAwZmZmMCwKLSAgMHhhZjgxMGM2MCwKLSAgMHhhZjgxMGM1YywKLSAgMHgzYzAxYTBkMSwKLSAgMHg4YzIyZDZjOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzAxYTA4MCwKLSAgMHhhYzIyMDBlMCwKLSAgMHgzYzAxYTA4MCwKLSAgMHg4YzIwMDBlMCwKLSAgMHhhZjgwMGZiNCwKLSAgMHhhNzgwMGZiOCwKLSAgMHhhNzgwMGZiYSwKLSAgMHhhNzgwMGZiYywKLSAgMHhhNzgwMGZiZSwKLSAgMHgyNzgyMGNjMCwKLSAgMHhhZjgyMGZkYywKLSAgMHhhZjgyMGZkOCwKLSAgMHgzYzAyYTBkMSwKLSAgMHgyNDQyZGFjYywKLSAgMHhhZjgyMGM0YywKLSAgMHhhZjgyMGM1MCwKLSAgMHgyNDQyMDQwMCwKLSAgMHhhZjgyMGM1NCwKLSAgMHgyNDAyMDAxZSwKLSAgMHgzYzAzZmZmMCwKLSAgMHgyNDdkMDA0MCwKLSAgMHhhYzdkMDAwOCwKLSAgMHgwM2EwMTgyMSwKLSAgMHgxNDQwZmZmYywKLSAgMHgyNDQyZmZmZiwKLSAgMHgzYzFkZmZmMCwKLSAgMHhhYzdkMDAwOCwKLSAgMHgzYzAyYzcwNCwKLSAgMHgzNDQyZGQ3YiwKLSAgMHhhZjgyMGM1OCwKLSAgMHgzYzA3MDAwMCwKLSAgMHgyNGU3MDE1OCwKLSAgMHgwODM0M2ZhOSwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZTYyMDAzOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxNDQwMDAwNSwKLSAgMHg4ZjgzMGM5NCwKLSAgMHgxMmEwMDAyMiwKLSAgMHgyNDYzMDAwMSwKLSAgMHgxMDAwMDAyMCwKLSAgMHhhZjgzMGM5NCwKLSAgMHhhZjgyMGZiNCwKLSAgMHgzMjYyZmZjMCwKLSAgMHgwMDAyMTE4MiwKLSAgMHg4NjYzMDAyYSwKLSAgMHhhNzgyMGZiOCwKLSAgMHgzYzAyYTAwMCwKLSAgMHhhZjgyMGZiYywKLSAgMHhhNzgzMGZiYSwKLSAgMHg4NjdlMDAwOCwKLSAgMHgyNzlkMGYxOCwKLSAgMHgzM2RlMDA2MCwKLSAgMHgwM2JlZTgyMSwKLSAgMHgwMDFlZjBjMiwKLSAgMHgwM2JlZTgyMSwKLSAgMHg4ZmEyMDAxYywKLSAgMHgzYzAzMGM0MCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjk3NGMwMCwKLSAgMHhhYzYyMGZiNCwKLSAgMHg4ZmEzMDAxOCwKLSAgMHgyNDQyMDAwYywKLSAgMHgxNDQzMDAwMywKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZmEyMDAxNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZmEyMDAxYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhY2E1MDBlNCwKLSAgMHhhZjk3NGMwMCwKLSAgMHgwM2UwMDAwOCwKLSAgMHhhZTYwMDAzYywKLSAgMHgzYzBkYTBkMSwKLSAgMHgyNWFkZDUwMCwKLSAgMHgxMWEwMDAyMSwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZGE5MDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMTIwMDAxZCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZGFhMDAwNCwKLSAgMHg4ZGFiMDAwOCwKLSAgMHg4ZGFjMDAwYywKLSAgMHgwMDA5NDc0MCwKLSAgMHgwNTAxMDAwNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzA4YTBkMSwKLSAgMHgyNTA4ZDYzOCwKLSAgMHgwMTQ4NTAyMSwKLSAgMHgwMDA5NDc4MCwKLSAgMHgwNTAxMDAwNywKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMTgwMDAwZCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZDQwMDAwMCwKLSAgMHgyNTRhMDAwNCwKLSAgMHgxMDAwZmZmYiwKLSAgMHgyNThjZmZmYywKLSAgMHgxMTgwMDAwNywKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZDZlMDAwMCwKLSAgMHgyNTZiMDAwNCwKLSAgMHhhZDRlMDAwMCwKLSAgMHgyNTRhMDAwNCwKLSAgMHgxMDAwZmZmOSwKLSAgMHgyNThjZmZmYywKLSAgMHgxMDAwZmZlMSwKLSAgMHgyNWFkMDAxMCwKLSAgMHgwM2UwMDAwOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzAyMTA0MCwKLSAgMHhhYzU3NGZmMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyMGZmYywKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMDQyMDAxZiwKLSAgMHgwMDAyMTA4MCwKLSAgMHgzYzE3YTBkMSwKLSAgMHgwMmUyYjgyMSwKLSAgMHgyNmY3ZDY0OCwKLSAgMHg4ZWY3MDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMmUwMDAwOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgyNDAyZmZmZiwKLSAgMHhhZjgyMGZmYywKLSAgMHg4Zjk3MGZjOCwKLSAgMHgzYzAyMTA0MCwKLSAgMHhhYzU3MGZmMCwKLSAgMHg4ZjgyMGYwNCwKLSAgMHgyNmY3MDAxMCwKLSAgMHgxNmUyMDAwNCwKLSAgMHhhZjk3MGZjOCwKLSAgMHg4Zjk3MGYwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjk3MGZjOCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwM2UwMDAwOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzFmYTBkMSwKLSAgMHgyN2ZmZjAyYywKLSAgMHgxMDAwZmZlZCwKLSAgMHg4Zjk3MGZmMCwKLSAgMHgzYzAyMDBkMSwKLSAgMHgzMmY3MDNmZiwKLSAgMHgwMDE3Yjk4MCwKLSAgMHgwMmUyYjgyNSwKLSAgMHhhZWUwMDAzYywKLSAgMHgyNDAyZmZmZiwKLSAgMHhhZWUyMDAzMCwKLSAgMHhhZWUyMDAxNCwKLSAgMHg5NzgzMGZmNCwKLSAgMHg5NzgyMGZmOCwKLSAgMHgzYzFkMDAwMCwKLSAgMHgyN2JkMDY5OCwKLSAgMHhhNmUzMDAwOCwKLSAgMHhhNmUyMDAwMiwKLSAgMHhhZjlmMGZlOCwKLSAgMHgwM2EwZjgwOSwKLSAgMHhhNmUyMDAyYywKLSAgMHg4ZjlmMGZlOCwKLSAgMHgxMDAwZmZkOSwKLSAgMHhhZWUyMDAwYywKLSAgMHg4Zjk3MGZmMCwKLSAgMHgzYzAyMDBkMSwKLSAgMHgzMmY3MDNmZiwKLSAgMHgwMDE3Yjk4MCwKLSAgMHgwMmUyYjgyNSwKLSAgMHg5NzgyMGZmNCwKLSAgMHgzYzAzMDAwMCwKLSAgMHgyNDYzMDY5OCwKLSAgMHhhNmUyMDAwMiwKLSAgMHhhZjlmMGZlOCwKLSAgMHgwMDYwZjgwOSwKLSAgMHhhNmUyMDAyYywKLSAgMHg4ZjlmMGZlOCwKLSAgMHgxMDAwZmZjYSwKLSAgMHhhZWUyMDAwYywKLSAgMHg4Zjk3MGZmMCwKLSAgMHgzYzAyMDBkMSwKLSAgMHgzMmY3MDNmZiwKLSAgMHgwMDE3Yjk4MCwKLSAgMHgwMmUyYjgyNSwKLSAgMHg5NzgyMGZmNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg5NmUzMDAwOCwKLSAgMHhhNmUyMDAwOCwKLSAgMHgwMDQzMTAyNiwKLSAgMHgzMDQyMDA2MCwKLSAgMHgxMDQwZmZiZCwKLSAgMHg4ZWUyMDAzYywKLSAgMHhhZWUwMDAzYywKLSAgMHgxMDQwZmZiYSwKLSAgMHgzYzAyODgwMCwKLSAgMHhhZjgyMGZiYywKLSAgMHg4ZWUyMDAzOCwKLSAgMHhhZWUwMDAzOCwKLSAgMHgzMDYzMDA2MCwKLSAgMHgyNzlkMGYxOCwKLSAgMHgwM2EzZTgyMSwKLSAgMHgwMDAzMThjMiwKLSAgMHgwM2EzZTgyMSwKLSAgMHg4ZmEzMDAxYywKLSAgMHgxMDQwZmZhZiwKLSAgMHhhZjgyMGZiNCwKLSAgMHgzYzAyMGM0MCwKLSAgMHhhYzQzMGZiNCwKLSAgMHg4ZmEyMDAxOCwKLSAgMHgyNDYzMDAwYywKLSAgMHgxNDQzMDAwMywKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZmEzMDAxNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZmEzMDAxYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDAwZmZhMiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjk3MGZmMCwKLSAgMHgzYzAyMDBkMSwKLSAgMHhhNzk3MGZiOCwKLSAgMHgwMDE3Yjk4MCwKLSAgMHgzMmY3ZmZjMCwKLSAgMHgwMmUyYjgyMSwKLSAgMHhhZWUwMDAzMCwKLSAgMHgzYzAyZGVhZCwKLSAgMHg4ZWUzMDAzYywKLSAgMHhhZWUyMDAzYywKLSAgMHg4ZWUyMDAzOCwKLSAgMHgxMDYwZmY5NSwKLSAgMHhhZWUwMDAzOCwKLSAgMHgzYzAzODgwMCwKLSAgMHhhZjgzMGZiYywKLSAgMHg4NmUzMDAwOCwKLSAgMHgyNzk3MGYxOCwKLSAgMHgzMDYzMDA2MCwKLSAgMHgwMmUzYjgyMSwKLSAgMHgwMDAzMThjMiwKLSAgMHgwMmUzYjgyMSwKLSAgMHg4ZWUzMDAxYywKLSAgMHgxMDQwZmY4YSwKLSAgMHhhZjgyMGZiNCwKLSAgMHgzYzAyMGM0MCwKLSAgMHhhYzQzMGZiNCwKLSAgMHg4ZWUyMDAxOCwKLSAgMHgyNDYzMDAwYywKLSAgMHgxNDQzMDAwMywKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZWUzMDAxNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZWUzMDAxYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDAwZmY3ZCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHg4Zjk3MGZmNCwKLSAgMHg5MDQxMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDM3MDgyNSwKLSAgMHgxMDAwZmY3NiwKLSAgMHhhMDQxMDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHg4Zjk3MGZmNCwKLSAgMHg5NDQxMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDM3MDgyNSwKLSAgMHgxMDAwZmY2ZiwKLSAgMHhhNDQxMDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHg4Zjk3MGZmNCwKLSAgMHg4YzQxMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDM3MDgyNSwKLSAgMHgxMDAwZmY2OCwKLSAgMHhhYzQxMDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHg4Zjk3MGZmNCwKLSAgMHg5MDQxMDAwMCwKLSAgMHgwMmUwYjgyNywKLSAgMHgwMDM3MDgyNCwKLSAgMHgxMDAwZmY2MSwKLSAgMHhhMDQxMDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHg4Zjk3MGZmNCwKLSAgMHg5NDQxMDAwMCwKLSAgMHgwMmUwYjgyNywKLSAgMHgwMDM3MDgyNCwKLSAgMHgxMDAwZmY1YSwKLSAgMHhhNDQxMDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHg4Zjk3MGZmNCwKLSAgMHg4YzQxMDAwMCwKLSAgMHgwMmUwYjgyNywKLSAgMHgwMDM3MDgyNCwKLSAgMHgxMDAwZmY1MywKLSAgMHhhYzQxMDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHg4Zjk3MGZmNCwKLSAgMHgxMDAwZmY0ZiwKLSAgMHhhMDU3MDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHg4Zjk3MGZmNCwKLSAgMHgxMDAwZmY0YiwKLSAgMHhhNDU3MDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHg4Zjk3MGZmNCwKLSAgMHgxMDAwZmY0NywKLSAgMHhhYzU3MDAwMCwKLSAgMHg4ZjgyMGZmMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4YzQyMDAwMCwKLSAgMHgxMDAwZmY0MiwKLSAgMHhhZjgyMGZmNCwKLSAgMHgzYzAxYTBjMiwKLSAgMHg4YzIyYzAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjgyMGZmMCwKLSAgMHgzYzAxYTBjMiwKLSAgMHg4YzIyYzAwNCwKLSAgMHgxMDAwZmYzYSwKLSAgMHhhZjgyMGZmNCwKLSAgMHgzYzAxYTBkMSwKLSAgMHg4YzIyZDVhYywKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZjgyMGZmMCwKLSAgMHgzYzAxYTBkMSwKLSAgMHg4YzIyZDViMCwKLSAgMHgxMDAwZmYzMiwKLSAgMHhhZjgyMGZmNCwKLSAgMHgzYzAyYTBmMCwKLSAgMHhhYzQwMDAwMCwKLSAgMHg5MDU3MDE1MywKLSAgMHgwMDAwMDAwMCwKLSAgMHhhMzk3MGM4MCwKLSAgMHg5MDU3MDE1NywKLSAgMHgwMDAwMDAwMCwKLSAgMHhhMzk3MGM4MSwKLSAgMHg5MDU3MDE1YiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhMzk3MGM4NywKLSAgMHg5MDU3MDE1ZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhMzk3MGM4NiwKLSAgMHg5MDU3MDE2MywKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMmY3MDAwNywKLSAgMHhhMzk3MGM4NSwKLSAgMHg5MDU3MDE5MywKLSAgMHgwMDAwMDAwMCwKLSAgMHhhMzk3MGM4YiwKLSAgMHg5MDU3MDE5NywKLSAgMHgwMDAwMDAwMCwKLSAgMHhhMzk3MGM4YSwKLSAgMHg5MDU3MDE5YiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMmY3MDAwNywKLSAgMHhhMzk3MGM4OSwKLSAgMHg5MDU3MDAwYiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMmY3MDBlMCwKLSAgMHgwMDE3MDk0MiwKLSAgMHg5MDU3MDA0NywKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMmY3MDA3OCwKLSAgMHgwMDM3MDgyNSwKLSAgMHg5MDU3MDA2NywKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMmY3MDAwZiwKLSAgMHgwMDE3YjljMCwKLSAgMHgwMDM3MDgyNSwKLSAgMHg5MDU3MDBjNywKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMmY3MDAyZiwKLSAgMHgwMDE3YmFjMCwKLSAgMHgwMDM3MDgyNSwKLSAgMHg5MDU3MDE0NywKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMmY3MDAxZSwKLSAgMHgwMDE3YmMwMCwKLSAgMHgwMDM3MDgyNSwKLSAgMHg5MDU3MDE4MywKLSAgMHgwMDAwMDAwMCwKLSAgMHgzMmY3MDA2MCwKLSAgMHgwMDE3YmMwMCwKLSAgMHgwMDM3MDgyNSwKLSAgMHhhZjgxMGM4YywKLSAgMHgzYzAyMTg0MCwKLSAgMHg4Zjk3MGZjOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Zjk3MGZmMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhYzU3MGM4MCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzYzAyYTBkMSwKLSAgMHgyNDQyZjk5OCwKLSAgMHhhZjgwMGM5MCwKLSAgMHhhZjgwMGM5NCwKLSAgMHgwMDQwMDAwOCwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4Nzk3MGZmMCwKLSAgMHgzYzEzMDBkMSwKLSAgMHhhNjc3MDAwOCwKLSAgMHgzYzAzMDAwMCwKLSAgMHgyNDYzMDUyMCwKLSAgMHhhZjlmMGZlOCwKLSAgMHgwMDYwZjgwOSwKLSAgMHgyNDAyMDAwMSwKLSAgMHg4ZjlmMGZlOCwKLSAgMHgxMDQwZmVkYSwKLSAgMHg5Nzk3MGZmMCwKLSAgMHgyNzgzMGYxOCwKLSAgMHgwMDc3MTgyMSwKLSAgMHgwMDE3YjhjMiwKLSAgMHgwMmUzYjgyMSwKLSAgMHgzYzAyODgwMCwKLSAgMHhhZjgyMGZiYywKLSAgMHg4ZTYyMDAzOCwKLSAgMHhhNzgwMGZiOCwKLSAgMHhhZjgyMGZiNCwKLSAgMHg4ZWUzMDAxYywKLSAgMHgzYzAyMGM0MCwKLSAgMHhhYzQzMGZiNCwKLSAgMHg4ZWUyMDAxOCwKLSAgMHgyNDYzMDAwYywKLSAgMHgxNDQzMDAwNCwKLSAgMHhhZWUzMDAxYywKLSAgMHg4ZWUzMDAxNCwKLSAgMHgwMDAwMDAwMCwKLSAgMHhhZWUzMDAxYywKLSAgMHg0ZDAxZmZmZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHgxMDAwZmZkZiwKLSAgMHgwMDAwMDAwMCwKLSAgMHg4ZjgyMGM1YywKLSAgMHg4ZjgzMGM2MCwKLSAgMHhhZjgyMGZmMCwKLSAgMHgxMDAwZmViZSwKLSAgMHhhZjgzMGZmNCwKLSAgMHgyMzg5MDgwMCwKLSAgMHgwMTIwMTgyMSwKLSAgMHgyNDAyMDAwZiwKLSAgMHgyMDZjMDA0MCwKLSAgMHhhYzZjMDAwOCwKLSAgMHgwMTgwMTgyMSwKLSAgMHgxNDQwZmZmYywKLSAgMHgyMDQyZmZmZiwKLSAgMHhhYzY5MDAwOCwKLSAgMHgyNzhiMGM5OCwKLSAgMHhhNTYwMDAwMCwKLSAgMHgyNDAzZmZmZiwKLSAgMHhhZDYzMDAxNCwKLSAgMHgzNDAyMDAwMSwKLSAgMHgzNDQyMDAyMCwKLSAgMHhhNTYyMDAwOCwKLSAgMHgyNzhhMGUwMCwKLSAgMHgwMTQwMTAyMSwKLSAgMHgwMDAwMTgyMSwKLSAgMHhhYzQwMDAwMCwKLSAgMHgyNDYzMDAwNCwKLSAgMHgyYzZjMDEwMCwKLSAgMHgxNTgwZmZmYywKLSAgMHgyNDQyMDAwNCwKLSAgMHgzYzAyYTBkMSwKLSAgMHgyNDQyZTAwMCwKLSAgMHhhZjgyMGZlMCwKLSAgMHgzYzE4MDBkMSwKLSAgMHgwMTIwNjAyMSwKLSAgMHgwMDAwNjgyMSwKLSAgMHgwMDAwNzgyMSwKLSAgMHgwMDAwNTgyMSwKLSAgMHgwMDAwNDAyMSwKLSAgMHg0MDAyNjAwMCwKLSAgMHgwMDAwMDAwMCwKLSAgMHgzNDQyNDAwMSwKLSAgMHg0MDgyNjAwMCwKLSAgMHgzYzAyMDAwMCwKLSAgMHgyNDQyMDZmOCwKLSAgMHgwMDQwMDAwOCwKLSAgMHgwMDAwMDAwMCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2F0bXNhcjExLnJlZ2lvbnMgYi9kcml2ZXJzL2F0bS9hdG1zYXIxMS5yZWdpb25zCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjI1MmI3Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvYXRtL2F0bXNhcjExLnJlZ2lvbnMKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLS8qCi0gIFNlZSBjb3B5cmlnaHQgYW5kIGxpY2Vuc2luZyBjb25kaXRpb25zIGluIGFtYmFzc2Fkb3IuKiBmaWxlcy4KLSovCi0gIHsgMHgwMDAwMDA4MCwgIDk5MywgfSwKLSAgeyAweGEwZDBkNTAwLCAgIDgwLCB9LAotICB7IDB4YTBkMGYwMDAsICA5NzgsIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0bS9hdG1zYXIxMS5zdGFydCBiL2RyaXZlcnMvYXRtL2F0bXNhcjExLnN0YXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmE1NWU3Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvYXRtL2F0bXNhcjExLnN0YXJ0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0vKgotICBTZWUgY29weXJpZ2h0IGFuZCBsaWNlbnNpbmcgY29uZGl0aW9ucyBpbiBhbWJhc3NhZG9yLiogZmlsZXMuCi0qLwotICAweGEwZDBmMDAwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F1eGRpc3BsYXkvS2NvbmZpZyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9LY29uZmlnCmluZGV4IDA0MzM1M2IuLjE0YjlkNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXV4ZGlzcGxheS9LY29uZmlnCisrKyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9LY29uZmlnCkBAIC02NCw3ICs2NCw3IEBACiAJICBBbW91bnQgb2YgdGltZSB0aGUga3MwMTA4IHNob3VsZCB3YWl0IGJldHdlZW4gZWFjaCBjb250cm9sIHdyaXRlCiAJICB0byB0aGUgcGFyYWxsZWwgcG9ydC4KIAotCSAgSWYgeW91ciBkcml2ZXIgc2VlbXMgdG8gbWlzcyByYW5kb20gd3JpdGluZ3MsIGluY3JlbWVudCB0aGlzLgorCSAgSWYgeW91ciBMQ0Qgc2VlbXMgdG8gbWlzcyByYW5kb20gd3JpdGluZ3MsIGluY3JlbWVudCB0aGlzLgogCiAJICBJZiB5b3UgZG9uJ3Qga25vdyB3aGF0IEknbSB0YWxraW5nIGFib3V0LCBpZ25vcmUgaXQuCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXV4ZGlzcGxheS9jZmFnMTI4NjRiLmMgYi9kcml2ZXJzL2F1eGRpc3BsYXkvY2ZhZzEyODY0Yi5jCmluZGV4IDgwYmIwNjEuLjY4MzUwOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXV4ZGlzcGxheS9jZmFnMTI4NjRiLmMKKysrIGIvZHJpdmVycy9hdXhkaXNwbGF5L2NmYWcxMjg2NGIuYwpAQCAtNSw3ICs1LDcgQEAKICAqICAgICBMaWNlbnNlOiBHUEx2MgogICogICAgIERlcGVuZHM6IGtzMDEwOAogICoKLSAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+CisgKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMKICAqICAgICAgICBEYXRlOiAyMDA2LTEwLTMxCiAgKgogICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0zOTgsNSArMzk4LDUgQEAKIG1vZHVsZV9leGl0KGNmYWcxMjg2NGJfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKLU1PRFVMRV9BVVRIT1IoIk1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+Iik7CitNT0RVTEVfQVVUSE9SKCJNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1pZ3VlbC5vamVkYS5zYW5kb25pc0BnbWFpbC5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oImNmYWcxMjg2NGIgTENEIGRyaXZlciIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdXhkaXNwbGF5L2NmYWcxMjg2NGJmYi5jIGIvZHJpdmVycy9hdXhkaXNwbGF5L2NmYWcxMjg2NGJmYi5jCmluZGV4IDMwN2MxOTAuLmZlM2E4NjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXV4ZGlzcGxheS9jZmFnMTI4NjRiZmIuYworKysgYi9kcml2ZXJzL2F1eGRpc3BsYXkvY2ZhZzEyODY0YmZiLmMKQEAgLTUsNyArNSw3IEBACiAgKiAgICAgTGljZW5zZTogR1BMdjIKICAqICAgICBEZXBlbmRzOiBjZmFnMTI4NjRiCiAgKgotICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4KKyAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcwogICogICAgICAgIERhdGU6IDIwMDYtMTAtMzEKICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTE4Niw1ICsxODYsNSBAQAogbW9kdWxlX2V4aXQoY2ZhZzEyODY0YmZiX2V4aXQpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Ci1NT0RVTEVfQVVUSE9SKCJNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPiIpOworTU9EVUxFX0FVVEhPUigiTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtaWd1ZWwub2plZGEuc2FuZG9uaXNAZ21haWwuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJjZmFnMTI4NjRiIExDRCBmcmFtZWJ1ZmZlciBkcml2ZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXV4ZGlzcGxheS9rczAxMDguYyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9rczAxMDguYwppbmRleCBlNmMzNjQ2Li41YjkzODUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F1eGRpc3BsYXkva3MwMTA4LmMKKysrIGIvZHJpdmVycy9hdXhkaXNwbGF5L2tzMDEwOC5jCkBAIC01LDcgKzUsNyBAQAogICogICAgIExpY2Vuc2U6IEdQTHYyCiAgKiAgICAgRGVwZW5kczogcGFycG9ydAogICoKLSAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+CisgKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMKICAqICAgICAgICBEYXRlOiAyMDA2LTEwLTMxCiAgKgogICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0xNzMsNiArMTczLDYgQEAKIG1vZHVsZV9leGl0KGtzMDEwOF9leGl0KTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotTU9EVUxFX0FVVEhPUigiTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4iKTsKK01PRFVMRV9BVVRIT1IoIk1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigia3MwMTA4IExDRCBDb250cm9sbGVyIGRyaXZlciIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvS2NvbmZpZyBiL2RyaXZlcnMvYmFzZS9LY29uZmlnCmluZGV4IGQ3ZGExMDkuLmQ0NzQ4MmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFzZS9LY29uZmlnCisrKyBiL2RyaXZlcnMvYmFzZS9LY29uZmlnCkBAIC0zNCw2ICszNCw3MCBAQAogCSAgcmVxdWlyZSB1c2Vyc3BhY2UgZmlybXdhcmUgbG9hZGluZyBzdXBwb3J0LCBidXQgYSBtb2R1bGUgYnVpbHQgb3V0c2lkZQogCSAgdGhlIGtlcm5lbCB0cmVlIGRvZXMuCiAKK2NvbmZpZyBGSVJNV0FSRV9JTl9LRVJORUwKKwlib29sICJJbmNsdWRlIGluLWtlcm5lbCBmaXJtd2FyZSBibG9icyBpbiBrZXJuZWwgYmluYXJ5IgorCWRlcGVuZHMgb24gRldfTE9BREVSCisJZGVmYXVsdCB5CisJaGVscAorCSAgVGhlIGtlcm5lbCBzb3VyY2UgdHJlZSBpbmNsdWRlcyBhIG51bWJlciBvZiBmaXJtd2FyZSAnYmxvYnMnCisJICB3aGljaCBhcmUgdXNlZCBieSB2YXJpb3VzIGRyaXZlcnMuIFRoZSByZWNvbW1lbmRlZCB3YXkgdG8KKwkgIHVzZSB0aGVzZSBpcyB0byBydW4gIm1ha2UgZmlybXdhcmVfaW5zdGFsbCIgYW5kIHRvIGNvcHkgdGhlCisJICByZXN1bHRpbmcgYmluYXJ5IGZpbGVzIGNyZWF0ZWQgaW4gdXNyL2xpYi9maXJtd2FyZSBkaXJlY3RvcnkKKwkgIG9mIHRoZSBrZXJuZWwgdHJlZSB0byB0aGUgL2xpYi9maXJtd2FyZSBvbiB5b3VyIHN5c3RlbSBzbworCSAgdGhhdCB0aGV5IGNhbiBiZSBsb2FkZWQgYnkgdXNlcnNwYWNlIGhlbHBlcnMgb24gcmVxdWVzdC4KKworCSAgRW5hYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBidWlsZCBlYWNoIHJlcXVpcmVkIGZpcm13YXJlIGJsb2IKKwkgIGludG8gdGhlIGtlcm5lbCBkaXJlY3RseSwgd2hlcmUgcmVxdWVzdF9maXJtd2FyZSgpIHdpbGwgZmluZAorCSAgdGhlbSB3aXRob3V0IGhhdmluZyB0byBjYWxsIG91dCB0byB1c2Vyc3BhY2UuIFRoaXMgbWF5IGJlCisJICB1c2VmdWwgaWYgeW91ciByb290IGZpbGUgc3lzdGVtIHJlcXVpcmVzIGEgZGV2aWNlIHdoaWNoIHVzZXMKKwkgIHN1Y2ggZmlybXdhcmUsIGFuZCBkbyBub3Qgd2lzaCB0byB1c2UgYW4gaW5pdHJkLgorCisJICBUaGlzIHNpbmdsZSBvcHRpb24gY29udHJvbHMgdGhlIGluY2x1c2lvbiBvZiBmaXJtd2FyZSBmb3IKKwkgIGV2ZXJ5IGRyaXZlciB3aGljaCB1c2VlcyByZXF1ZXN0X2Zpcm1hcmUoKSBhbmQgc2hpcHMgaXRzCisJICBmaXJtd2FyZSBpbiB0aGUga2VybmVsIHNvdXJjZSB0cmVlLCB0byBhdm9pZCBhIHByb2xpZmVyYXRpb24KKwkgIG9mICdJbmNsdWRlIGZpcm13YXJlIGZvciB4eHggZGV2aWNlJyBvcHRpb25zLgorCisJICBTYXkgJ04nIGFuZCBsZXQgZmlybXdhcmUgYmUgbG9hZGVkIGZyb20gdXNlcnNwYWNlLgorCitjb25maWcgRVhUUkFfRklSTVdBUkUKKwlzdHJpbmcgIkV4dGVybmFsIGZpcm13YXJlIGJsb2JzIHRvIGJ1aWxkIGludG8gdGhlIGtlcm5lbCBiaW5hcnkiCisJZGVwZW5kcyBvbiBGV19MT0FERVIKKwloZWxwCisJICBUaGlzIG9wdGlvbiBhbGxvd3MgZmlybXdhcmUgdG8gYmUgYnVpbHQgaW50byB0aGUga2VybmVsLCBmb3IgdGhlCisJICBjYXNlcyB3aGVyZSB0aGUgdXNlciBlaXRoZXIgY2Fubm90IG9yIGRvZXNuJ3Qgd2FudCB0byBwcm92aWRlIGl0IGZyb20KKwkgIHVzZXJzcGFjZSBhdCBydW50aW1lIChmb3IgZXhhbXBsZSwgd2hlbiB0aGUgZmlybXdhcmUgaW4gcXVlc3Rpb24gaXMKKwkgIHJlcXVpcmVkIGZvciBhY2Nlc3NpbmcgdGhlIGJvb3QgZGV2aWNlLCBhbmQgdGhlIHVzZXIgZG9lc24ndCB3YW50IHRvCisJICB1c2UgYW4gaW5pdHJkKS4KKworCSAgVGhpcyBvcHRpb24gaXMgYSBzdHJpbmcsIGFuZCB0YWtlcyB0aGUgKHNwYWNlLXNlcGFyYXRlZCkgbmFtZXMgb2YgdGhlCisJICBmaXJtd2FyZSBmaWxlcyAtLSB0aGUgc2FtZSBuYW1lcyB3aGljaCBhcHBlYXIgaW4gTU9EVUxFX0ZJUk1XQVJFKCkKKwkgIGFuZCByZXF1ZXN0X2Zpcm13YXJlKCkgaW4gdGhlIHNvdXJjZS4gVGhlc2UgZmlsZXMgc2hvdWxkIGV4aXN0IHVuZGVyCisJICB0aGUgZGlyZWN0b3J5IHNwZWNpZmllZCBieSB0aGUgRVhUUkFfRklSTVdBUkVfRElSIG9wdGlvbiwgd2hpY2ggaXMKKwkgIGJ5IGRlZmF1bHQgdGhlIGZpcm13YXJlLyBzdWJkaXJlY3Rvcnkgb2YgdGhlIGtlcm5lbCBzb3VyY2UgdHJlZS4KKworCSAgU28sIGZvciBleGFtcGxlLCB5b3UgbWlnaHQgc2V0IENPTkZJR19FWFRSQV9GSVJNV0FSRT0idXNiODM4OC5iaW4iLAorCSAgY29weSB0aGUgdXNiODM4OC5iaW4gZmlsZSBpbnRvIHRoZSBmaXJtd2FyZS8gZGlyZWN0b3J5LCBhbmQgYnVpbGQgdGhlCisJICBrZXJuZWwuIFRoZW4gYW55IHJlcXVlc3RfZmlybXdhcmUoInVzYjgzODguYmluIikgd2lsbCBiZQorCSAgc2F0aXNmaWVkIGludGVybmFsbHkgd2l0aG91dCBuZWVkaW5nIHRvIGNhbGwgb3V0IHRvIHVzZXJzcGFjZS4KKworCSAgV0FSTklORzogSWYgeW91IGluY2x1ZGUgYWRkaXRpb25hbCBmaXJtd2FyZSBmaWxlcyBpbnRvIHlvdXIgYmluYXJ5CisJICBrZXJuZWwgaW1hZ2Ugd2hpY2ggYXJlIG5vdCBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHUEwsCisJICB0aGVuIGl0IG1heSBiZSBhIHZpb2xhdGlvbiBvZiB0aGUgR1BMIHRvIGRpc3RyaWJ1dGUgdGhlIHJlc3VsdGluZworCSAgaW1hZ2UgLS0gc2luY2UgaXQgY29tYmluZXMgYm90aCBHUEwgYW5kIG5vbi1HUEwgd29yay4gWW91IHNob3VsZAorCSAgY29uc3VsdCBhIGxhd3llciBvZiB5b3VyIG93biBiZWZvcmUgZGlzdHJpYnV0aW5nIHN1Y2ggYW4gaW1hZ2UuCisKK2NvbmZpZyBFWFRSQV9GSVJNV0FSRV9ESVIKKwlzdHJpbmcgIkZpcm13YXJlIGJsb2JzIHJvb3QgZGlyZWN0b3J5IgorCWRlcGVuZHMgb24gRVhUUkFfRklSTVdBUkUgIT0gIiIKKwlkZWZhdWx0ICJmaXJtd2FyZSIKKwloZWxwCisJICBUaGlzIG9wdGlvbiBjb250cm9scyB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtCisJICBsb29rcyBmb3IgdGhlIGZpcm13YXJlIGZpbGVzIGxpc3RlZCBpbiB0aGUgRVhUUkFfRklSTVdBUkUgb3B0aW9uLgorCSAgVGhlIGRlZmF1bHQgaXMgdGhlIGZpcm13YXJlLyBkaXJlY3RvcnkgaW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZSwKKwkgIGJ1dCBieSBjaGFuZ2luZyB0aGlzIG9wdGlvbiB5b3UgY2FuIHBvaW50IGl0IGVsc2V3aGVyZSwgc3VjaCBhcworCSAgdGhlIC9saWIvZmlybXdhcmUvIGRpcmVjdG9yeSBvciBhbm90aGVyIHNlcGFyYXRlIGRpcmVjdG9yeQorCSAgY29udGFpbmluZyBmaXJtd2FyZSBmaWxlcy4KKwogY29uZmlnIERFQlVHX0RSSVZFUgogCWJvb2wgIkRyaXZlciBDb3JlIHZlcmJvc2UgZGVidWcgbWVzc2FnZXMiCiAJZGVwZW5kcyBvbiBERUJVR19LRVJORUwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jIGIvZHJpdmVycy9iYXNlL2Zpcm13YXJlX2NsYXNzLmMKaW5kZXggOWZkNGE4NS4uYjBiZTFkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL2Zpcm13YXJlX2NsYXNzLmMKKysrIGIvZHJpdmVycy9iYXNlL2Zpcm13YXJlX2NsYXNzLmMKQEAgLTQ5LDYgKzQ5LDE0IEBACiAJc3RydWN0IHRpbWVyX2xpc3QgdGltZW91dDsKIH07CiAKKyNpZmRlZiBDT05GSUdfRldfTE9BREVSCitleHRlcm4gc3RydWN0IGJ1aWx0aW5fZncgX19zdGFydF9idWlsdGluX2Z3W107CitleHRlcm4gc3RydWN0IGJ1aWx0aW5fZncgX19lbmRfYnVpbHRpbl9md1tdOworI2Vsc2UgLyogTW9kdWxlIGNhc2UuIEF2b2lkIGlmZGVmcyBsYXRlcjsgaXQnbGwgYWxsIG9wdGltaXNlIG91dCAqLworc3RhdGljIHN0cnVjdCBidWlsdGluX2Z3ICpfX3N0YXJ0X2J1aWx0aW5fZnc7CitzdGF0aWMgc3RydWN0IGJ1aWx0aW5fZncgKl9fZW5kX2J1aWx0aW5fZnc7CisjZW5kaWYKKwogc3RhdGljIHZvaWQKIGZ3X2xvYWRfYWJvcnQoc3RydWN0IGZpcm13YXJlX3ByaXYgKmZ3X3ByaXYpCiB7CkBAIC0yNTcsNyArMjY1LDcgQEAKIAlpZiAocmV0dmFsKQogCQlnb3RvIG91dDsKIAotCW1lbWNweShmdy0+ZGF0YSArIG9mZnNldCwgYnVmZmVyLCBjb3VudCk7CisJbWVtY3B5KCh1OCAqKWZ3LT5kYXRhICsgb2Zmc2V0LCBidWZmZXIsIGNvdW50KTsKIAogCWZ3LT5zaXplID0gbWF4X3Qoc2l6ZV90LCBvZmZzZXQgKyBjb3VudCwgZnctPnNpemUpOwogCXJldHZhbCA9IGNvdW50OwpAQCAtMzkxLDEzICszOTksMTIgQEAKIAlzdHJ1Y3QgZGV2aWNlICpmX2RldjsKIAlzdHJ1Y3QgZmlybXdhcmVfcHJpdiAqZndfcHJpdjsKIAlzdHJ1Y3QgZmlybXdhcmUgKmZpcm13YXJlOworCXN0cnVjdCBidWlsdGluX2Z3ICpidWlsdGluOwogCWludCByZXR2YWw7CiAKIAlpZiAoIWZpcm13YXJlX3ApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAiZmlybXdhcmU6IHJlcXVlc3RpbmcgJXNcbiIsIG5hbWUpOwotCiAJKmZpcm13YXJlX3AgPSBmaXJtd2FyZSA9IGt6YWxsb2Moc2l6ZW9mKCpmaXJtd2FyZSksIEdGUF9LRVJORUwpOwogCWlmICghZmlybXdhcmUpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICIlczoga21hbGxvYyhzdHJ1Y3QgZmlybXdhcmUpIGZhaWxlZFxuIiwKQEAgLTQwNiw2ICs0MTMsMjAgQEAKIAkJZ290byBvdXQ7CiAJfQogCisJZm9yIChidWlsdGluID0gX19zdGFydF9idWlsdGluX2Z3OyBidWlsdGluICE9IF9fZW5kX2J1aWx0aW5fZnc7CisJICAgICBidWlsdGluKyspIHsKKwkJaWYgKHN0cmNtcChuYW1lLCBidWlsdGluLT5uYW1lKSkKKwkJCWNvbnRpbnVlOworCQlwcmludGsoS0VSTl9JTkZPICJmaXJtd2FyZTogdXNpbmcgYnVpbHQtaW4gZmlybXdhcmUgJXNcbiIsCisJCSAgICAgICBuYW1lKTsKKwkJZmlybXdhcmUtPnNpemUgPSBidWlsdGluLT5zaXplOworCQlmaXJtd2FyZS0+ZGF0YSA9IGJ1aWx0aW4tPmRhdGE7CisJCXJldHVybiAwOworCX0KKworCWlmICh1ZXZlbnQpCisJCXByaW50ayhLRVJOX0lORk8gImZpcm13YXJlOiByZXF1ZXN0aW5nICVzXG4iLCBuYW1lKTsKKwogCXJldHZhbCA9IGZ3X3NldHVwX2RldmljZShmaXJtd2FyZSwgJmZfZGV2LCBuYW1lLCBkZXZpY2UsIHVldmVudCk7CiAJaWYgKHJldHZhbCkKIAkJZ290byBlcnJvcl9rZnJlZV9mdzsKQEAgLTQ3Myw4ICs0OTQsMTYgQEAKIHZvaWQKIHJlbGVhc2VfZmlybXdhcmUoY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdykKIHsKKwlzdHJ1Y3QgYnVpbHRpbl9mdyAqYnVpbHRpbjsKKwogCWlmIChmdykgeworCQlmb3IgKGJ1aWx0aW4gPSBfX3N0YXJ0X2J1aWx0aW5fZnc7IGJ1aWx0aW4gIT0gX19lbmRfYnVpbHRpbl9mdzsKKwkJICAgICBidWlsdGluKyspIHsKKwkJCWlmIChmdy0+ZGF0YSA9PSBidWlsdGluLT5kYXRhKQorCQkJCWdvdG8gZnJlZV9mdzsKKwkJfQogCQl2ZnJlZShmdy0+ZGF0YSk7CisJZnJlZV9mdzoKIAkJa2ZyZWUoZncpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9ub2RlLmMgYi9kcml2ZXJzL2Jhc2Uvbm9kZS5jCmluZGV4IDM5ZjNkMWIuLjBmODY3YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFzZS9ub2RlLmMKKysrIGIvZHJpdmVycy9iYXNlL25vZGUuYwpAQCAtODQsOCArODQsOCBAQAogCQkgICAgICAgbmlkLCBLKGkudG90YWxyYW0pLAogCQkgICAgICAgbmlkLCBLKGkuZnJlZXJhbSksCiAJCSAgICAgICBuaWQsIEsoaS50b3RhbHJhbSAtIGkuZnJlZXJhbSksCi0JCSAgICAgICBuaWQsIG5vZGVfcGFnZV9zdGF0ZShuaWQsIE5SX0FDVElWRSksCi0JCSAgICAgICBuaWQsIG5vZGVfcGFnZV9zdGF0ZShuaWQsIE5SX0lOQUNUSVZFKSwKKwkJICAgICAgIG5pZCwgSyhub2RlX3BhZ2Vfc3RhdGUobmlkLCBOUl9BQ1RJVkUpKSwKKwkJICAgICAgIG5pZCwgSyhub2RlX3BhZ2Vfc3RhdGUobmlkLCBOUl9JTkFDVElWRSkpLAogI2lmZGVmIENPTkZJR19ISUdITUVNCiAJCSAgICAgICBuaWQsIEsoaS50b3RhbGhpZ2gpLAogCQkgICAgICAgbmlkLCBLKGkuZnJlZWhpZ2gpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL3Bvd2VyL3RyYWNlLmMgYi9kcml2ZXJzL2Jhc2UvcG93ZXIvdHJhY2UuYwppbmRleCAyYjRiMzkyLi44N2E3ZjFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvcG93ZXIvdHJhY2UuYworKysgYi9kcml2ZXJzL2Jhc2UvcG93ZXIvdHJhY2UuYwpAQCAtMTUzLDcgKzE1Myw3IEBACiAgKiBpdCdzIG5vdCBhbnkgZ3VhcmFudGVlLCBidXQgaXQncyBhIGhpZ2ggX2xpa2VsaWhvb2RfIHRoYXQKICAqIHRoZSBtYXRjaCBpcyB2YWxpZCkuCiAgKi8KLXZvaWQgZ2VuZXJhdGVfcmVzdW1lX3RyYWNlKHZvaWQgKnRyYWNlZGF0YSwgdW5zaWduZWQgaW50IHVzZXIpCit2b2lkIGdlbmVyYXRlX3Jlc3VtZV90cmFjZShjb25zdCB2b2lkICp0cmFjZWRhdGEsIHVuc2lnbmVkIGludCB1c2VyKQogewogCXVuc2lnbmVkIHNob3J0IGxpbmVubyA9ICoodW5zaWduZWQgc2hvcnQgKil0cmFjZWRhdGE7CiAJY29uc3QgY2hhciAqZmlsZSA9ICooY29uc3QgY2hhciAqKikodHJhY2VkYXRhICsgMik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvdG9wb2xvZ3kuYyBiL2RyaXZlcnMvYmFzZS90b3BvbG9neS5jCmluZGV4IGZkZjQwNDQuLjNmNmQ5YjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFzZS90b3BvbG9neS5jCisrKyBiL2RyaXZlcnMvYmFzZS90b3BvbG9neS5jCkBAIC00MCw2ICs0MCw3IEBACiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIHRvcG9sb2d5XyMjbmFtZShjcHUpKTsJXAogfQogCisjaWYgZGVmaW5lZCh0b3BvbG9neV90aHJlYWRfc2libGluZ3MpIHx8IGRlZmluZWQodG9wb2xvZ3lfY29yZV9zaWJsaW5ncykKIHN0YXRpYyBzc2l6ZV90IHNob3dfY3B1bWFwKGludCB0eXBlLCBjcHVtYXNrX3QgKm1hc2ssIGNoYXIgKmJ1ZikKIHsKIAlwdHJkaWZmX3QgbGVuID0gUFRSX0FMSUdOKGJ1ZiArIFBBR0VfU0laRSAtIDEsIFBBR0VfU0laRSkgLSBidWY7CkBAIC01NCw2NSArNTUsNjUgQEAKIAl9CiAJcmV0dXJuIG47CiB9CisjZW5kaWYKIAorI2lmZGVmIGFyY2hfcHJvdmlkZXNfdG9wb2xvZ3lfcG9pbnRlcnMKICNkZWZpbmUgZGVmaW5lX3NpYmxpbmdzX3Nob3dfbWFwKG5hbWUpCQkJCQlcCi1zdGF0aWMgaW5saW5lIHNzaXplX3Qgc2hvd18jI25hbWUoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY2hhciAqYnVmKQlcCitzdGF0aWMgc3NpemVfdCBzaG93XyMjbmFtZShzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBjaGFyICpidWYpCVwKIHsJCQkJCQkJCQlcCiAJdW5zaWduZWQgaW50IGNwdSA9IGRldi0+aWQ7CQkJCQlcCiAJcmV0dXJuIHNob3dfY3B1bWFwKDAsICYodG9wb2xvZ3lfIyNuYW1lKGNwdSkpLCBidWYpOwkJXAogfQogCiAjZGVmaW5lIGRlZmluZV9zaWJsaW5nc19zaG93X2xpc3QobmFtZSkJCQkJCVwKLXN0YXRpYyBpbmxpbmUgc3NpemVfdCBzaG93XyMjbmFtZSMjX2xpc3Qoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY2hhciAqYnVmKSBcCitzdGF0aWMgc3NpemVfdCBzaG93XyMjbmFtZSMjX2xpc3Qoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY2hhciAqYnVmKSBcCiB7CQkJCQkJCQkJXAogCXVuc2lnbmVkIGludCBjcHUgPSBkZXYtPmlkOwkJCQkJXAogCXJldHVybiBzaG93X2NwdW1hcCgxLCAmKHRvcG9sb2d5XyMjbmFtZShjcHUpKSwgYnVmKTsJCVwKIH0KIAorI2Vsc2UKKyNkZWZpbmUgZGVmaW5lX3NpYmxpbmdzX3Nob3dfbWFwKG5hbWUpCQkJCQlcCitzdGF0aWMgc3NpemVfdCBzaG93XyMjbmFtZShzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBjaGFyICpidWYpCVwKK3sJCQkJCQkJCQlcCisJdW5zaWduZWQgaW50IGNwdSA9IGRldi0+aWQ7CQkJCQlcCisJY3B1bWFza190IG1hc2sgPSB0b3BvbG9neV8jI25hbWUoY3B1KTsJCQkJXAorCXJldHVybiBzaG93X2NwdW1hcCgwLCAmbWFzaywgYnVmKTsJCQkJXAorfQorCisjZGVmaW5lIGRlZmluZV9zaWJsaW5nc19zaG93X2xpc3QobmFtZSkJCQkJCVwKK3N0YXRpYyBzc2l6ZV90IHNob3dfIyNuYW1lIyNfbGlzdChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBjaGFyICpidWYpIFwKK3sJCQkJCQkJCQlcCisJdW5zaWduZWQgaW50IGNwdSA9IGRldi0+aWQ7CQkJCQlcCisJY3B1bWFza190IG1hc2sgPSB0b3BvbG9neV8jI25hbWUoY3B1KTsJCQkJXAorCXJldHVybiBzaG93X2NwdW1hcCgxLCAmbWFzaywgYnVmKTsJCQkJXAorfQorI2VuZGlmCisKICNkZWZpbmUgZGVmaW5lX3NpYmxpbmdzX3Nob3dfZnVuYyhuYW1lKQkJXAogCWRlZmluZV9zaWJsaW5nc19zaG93X21hcChuYW1lKTsgZGVmaW5lX3NpYmxpbmdzX3Nob3dfbGlzdChuYW1lKQogCi0jaWZkZWYJdG9wb2xvZ3lfcGh5c2ljYWxfcGFja2FnZV9pZAogZGVmaW5lX2lkX3Nob3dfZnVuYyhwaHlzaWNhbF9wYWNrYWdlX2lkKTsKIGRlZmluZV9vbmVfcm8ocGh5c2ljYWxfcGFja2FnZV9pZCk7Ci0jZGVmaW5lIHJlZl9waHlzaWNhbF9wYWNrYWdlX2lkX2F0dHIJJmF0dHJfcGh5c2ljYWxfcGFja2FnZV9pZC5hdHRyLAotI2Vsc2UKLSNkZWZpbmUgcmVmX3BoeXNpY2FsX3BhY2thZ2VfaWRfYXR0cgotI2VuZGlmCiAKLSNpZmRlZiB0b3BvbG9neV9jb3JlX2lkCiBkZWZpbmVfaWRfc2hvd19mdW5jKGNvcmVfaWQpOwogZGVmaW5lX29uZV9ybyhjb3JlX2lkKTsKLSNkZWZpbmUgcmVmX2NvcmVfaWRfYXR0cgkJJmF0dHJfY29yZV9pZC5hdHRyLAotI2Vsc2UKLSNkZWZpbmUgcmVmX2NvcmVfaWRfYXR0cgotI2VuZGlmCiAKLSNpZmRlZiB0b3BvbG9neV90aHJlYWRfc2libGluZ3MKIGRlZmluZV9zaWJsaW5nc19zaG93X2Z1bmModGhyZWFkX3NpYmxpbmdzKTsKIGRlZmluZV9vbmVfcm8odGhyZWFkX3NpYmxpbmdzKTsKIGRlZmluZV9vbmVfcm8odGhyZWFkX3NpYmxpbmdzX2xpc3QpOwotI2RlZmluZSByZWZfdGhyZWFkX3NpYmxpbmdzX2F0dHIJXAotCQkmYXR0cl90aHJlYWRfc2libGluZ3MuYXR0ciwgJmF0dHJfdGhyZWFkX3NpYmxpbmdzX2xpc3QuYXR0ciwKLSNlbHNlCi0jZGVmaW5lIHJlZl90aHJlYWRfc2libGluZ3NfYXR0cgotI2VuZGlmCiAKLSNpZmRlZiB0b3BvbG9neV9jb3JlX3NpYmxpbmdzCiBkZWZpbmVfc2libGluZ3Nfc2hvd19mdW5jKGNvcmVfc2libGluZ3MpOwogZGVmaW5lX29uZV9ybyhjb3JlX3NpYmxpbmdzKTsKIGRlZmluZV9vbmVfcm8oY29yZV9zaWJsaW5nc19saXN0KTsKLSNkZWZpbmUgcmVmX2NvcmVfc2libGluZ3NfYXR0cgkJXAotCQkmYXR0cl9jb3JlX3NpYmxpbmdzLmF0dHIsICZhdHRyX2NvcmVfc2libGluZ3NfbGlzdC5hdHRyLAotI2Vsc2UKLSNkZWZpbmUgcmVmX2NvcmVfc2libGluZ3NfYXR0cgotI2VuZGlmCiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpkZWZhdWx0X2F0dHJzW10gPSB7Ci0JcmVmX3BoeXNpY2FsX3BhY2thZ2VfaWRfYXR0cgotCXJlZl9jb3JlX2lkX2F0dHIKLQlyZWZfdGhyZWFkX3NpYmxpbmdzX2F0dHIKLQlyZWZfY29yZV9zaWJsaW5nc19hdHRyCisJJmF0dHJfcGh5c2ljYWxfcGFja2FnZV9pZC5hdHRyLAorCSZhdHRyX2NvcmVfaWQuYXR0ciwKKwkmYXR0cl90aHJlYWRfc2libGluZ3MuYXR0ciwKKwkmYXR0cl90aHJlYWRfc2libGluZ3NfbGlzdC5hdHRyLAorCSZhdHRyX2NvcmVfc2libGluZ3MuYXR0ciwKKwkmYXR0cl9jb3JlX3NpYmxpbmdzX2xpc3QuYXR0ciwKIAlOVUxMCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL0RBQzk2MC5jIGIvZHJpdmVycy9ibG9jay9EQUM5NjAuYwppbmRleCBjZDAzNDczLi5hMDAyYTM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL0RBQzk2MC5jCisrKyBiL2RyaXZlcnMvYmxvY2svREFDOTYwLmMKQEAgLTY2MjgsMTUgKzY2MjgsMTggQEAKICAqIERBQzk2MF9nYW1faW9jdGwgaXMgdGhlIGlvY3RsIGZ1bmN0aW9uIGZvciBwZXJmb3JtaW5nIFJBSUQgb3BlcmF0aW9ucy4KICovCiAKLXN0YXRpYyBpbnQgREFDOTYwX2dhbV9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkJCSAgICB1bnNpZ25lZCBpbnQgUmVxdWVzdCwgdW5zaWduZWQgbG9uZyBBcmd1bWVudCkKK3N0YXRpYyBsb25nIERBQzk2MF9nYW1faW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBSZXF1ZXN0LAorCQkJCQkJdW5zaWduZWQgbG9uZyBBcmd1bWVudCkKIHsKLSAgaW50IEVycm9yQ29kZSA9IDA7CisgIGxvbmcgRXJyb3JDb2RlID0gMDsKICAgaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKSByZXR1cm4gLUVBQ0NFUzsKKworICBsb2NrX2tlcm5lbCgpOwogICBzd2l0Y2ggKFJlcXVlc3QpCiAgICAgewogICAgIGNhc2UgREFDOTYwX0lPQ1RMX0dFVF9DT05UUk9MTEVSX0NPVU5UOgotICAgICAgcmV0dXJuIERBQzk2MF9Db250cm9sbGVyQ291bnQ7CisgICAgICBFcnJvckNvZGUgPSBEQUM5NjBfQ29udHJvbGxlckNvdW50OworICAgICAgYnJlYWs7CiAgICAgY2FzZSBEQUM5NjBfSU9DVExfR0VUX0NPTlRST0xMRVJfSU5GTzoKICAgICAgIHsKIAlEQUM5NjBfQ29udHJvbGxlckluZm9fVCBfX3VzZXIgKlVzZXJTcGFjZUNvbnRyb2xsZXJJbmZvID0KQEAgLTY2NDQsMTUgKzY2NDcsMjAgQEAKIAlEQUM5NjBfQ29udHJvbGxlckluZm9fVCBDb250cm9sbGVySW5mbzsKIAlEQUM5NjBfQ29udHJvbGxlcl9UICpDb250cm9sbGVyOwogCWludCBDb250cm9sbGVyTnVtYmVyOwotCWlmIChVc2VyU3BhY2VDb250cm9sbGVySW5mbyA9PSBOVUxMKSByZXR1cm4gLUVJTlZBTDsKLQlFcnJvckNvZGUgPSBnZXRfdXNlcihDb250cm9sbGVyTnVtYmVyLAorCWlmIChVc2VyU3BhY2VDb250cm9sbGVySW5mbyA9PSBOVUxMKQorCQlFcnJvckNvZGUgPSAtRUlOVkFMOworCWVsc2UgRXJyb3JDb2RlID0gZ2V0X3VzZXIoQ29udHJvbGxlck51bWJlciwKIAkJCSAgICAgJlVzZXJTcGFjZUNvbnRyb2xsZXJJbmZvLT5Db250cm9sbGVyTnVtYmVyKTsKLQlpZiAoRXJyb3JDb2RlICE9IDApIHJldHVybiBFcnJvckNvZGU7CisJaWYgKEVycm9yQ29kZSAhPSAwKQorCQlicmVhazs7CisJRXJyb3JDb2RlID0gLUVOWElPOwogCWlmIChDb250cm9sbGVyTnVtYmVyIDwgMCB8fAotCSAgICBDb250cm9sbGVyTnVtYmVyID4gREFDOTYwX0NvbnRyb2xsZXJDb3VudCAtIDEpCi0JICByZXR1cm4gLUVOWElPOworCSAgICBDb250cm9sbGVyTnVtYmVyID4gREFDOTYwX0NvbnRyb2xsZXJDb3VudCAtIDEpIHsKKwkgIGJyZWFrOworCX0KIAlDb250cm9sbGVyID0gREFDOTYwX0NvbnRyb2xsZXJzW0NvbnRyb2xsZXJOdW1iZXJdOwotCWlmIChDb250cm9sbGVyID09IE5VTEwpIHJldHVybiAtRU5YSU87CisJaWYgKENvbnRyb2xsZXIgPT0gTlVMTCkKKwkJYnJlYWs7OwogCW1lbXNldCgmQ29udHJvbGxlckluZm8sIDAsIHNpemVvZihEQUM5NjBfQ29udHJvbGxlckluZm9fVCkpOwogCUNvbnRyb2xsZXJJbmZvLkNvbnRyb2xsZXJOdW1iZXIgPSBDb250cm9sbGVyTnVtYmVyOwogCUNvbnRyb2xsZXJJbmZvLkZpcm13YXJlVHlwZSA9IENvbnRyb2xsZXItPkZpcm13YXJlVHlwZTsKQEAgLTY2NjUsOCArNjY3Myw5IEBACiAJQ29udHJvbGxlckluZm8uUENJX0FkZHJlc3MgPSBDb250cm9sbGVyLT5QQ0lfQWRkcmVzczsKIAlzdHJjcHkoQ29udHJvbGxlckluZm8uTW9kZWxOYW1lLCBDb250cm9sbGVyLT5Nb2RlbE5hbWUpOwogCXN0cmNweShDb250cm9sbGVySW5mby5GaXJtd2FyZVZlcnNpb24sIENvbnRyb2xsZXItPkZpcm13YXJlVmVyc2lvbik7Ci0JcmV0dXJuIChjb3B5X3RvX3VzZXIoVXNlclNwYWNlQ29udHJvbGxlckluZm8sICZDb250cm9sbGVySW5mbywKKwlFcnJvckNvZGUgPSAoY29weV90b191c2VyKFVzZXJTcGFjZUNvbnRyb2xsZXJJbmZvLCAmQ29udHJvbGxlckluZm8sCiAJCQkgICAgIHNpemVvZihEQUM5NjBfQ29udHJvbGxlckluZm9fVCkpID8gLUVGQVVMVCA6IDApOworCWJyZWFrOwogICAgICAgfQogICAgIGNhc2UgREFDOTYwX0lPQ1RMX1YxX0VYRUNVVEVfQ09NTUFORDoKICAgICAgIHsKQEAgLTY2ODQsMzAgKzY2OTMsMzkgQEAKIAlpbnQgQ29udHJvbGxlck51bWJlciwgRGF0YVRyYW5zZmVyTGVuZ3RoOwogCXVuc2lnbmVkIGNoYXIgKkRhdGFUcmFuc2ZlckJ1ZmZlciA9IE5VTEw7CiAJZG1hX2FkZHJfdCBEYXRhVHJhbnNmZXJCdWZmZXJETUE7Ci0JaWYgKFVzZXJTcGFjZVVzZXJDb21tYW5kID09IE5VTEwpIHJldHVybiAtRUlOVkFMOworCWlmIChVc2VyU3BhY2VVc2VyQ29tbWFuZCA9PSBOVUxMKSB7CisJCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KIAlpZiAoY29weV9mcm9tX3VzZXIoJlVzZXJDb21tYW5kLCBVc2VyU3BhY2VVc2VyQ29tbWFuZCwKIAkJCQkgICBzaXplb2YoREFDOTYwX1YxX1VzZXJDb21tYW5kX1QpKSkgewogCQlFcnJvckNvZGUgPSAtRUZBVUxUOwotCQlnb3RvIEZhaWx1cmUxYTsKKwkJYnJlYWs7CiAJfQogCUNvbnRyb2xsZXJOdW1iZXIgPSBVc2VyQ29tbWFuZC5Db250cm9sbGVyTnVtYmVyOworICAgIAlFcnJvckNvZGUgPSAtRU5YSU87CiAJaWYgKENvbnRyb2xsZXJOdW1iZXIgPCAwIHx8CiAJICAgIENvbnRyb2xsZXJOdW1iZXIgPiBEQUM5NjBfQ29udHJvbGxlckNvdW50IC0gMSkKLQkgIHJldHVybiAtRU5YSU87CisJICAgIAlicmVhazsKIAlDb250cm9sbGVyID0gREFDOTYwX0NvbnRyb2xsZXJzW0NvbnRyb2xsZXJOdW1iZXJdOwotCWlmIChDb250cm9sbGVyID09IE5VTEwpIHJldHVybiAtRU5YSU87Ci0JaWYgKENvbnRyb2xsZXItPkZpcm13YXJlVHlwZSAhPSBEQUM5NjBfVjFfQ29udHJvbGxlcikgcmV0dXJuIC1FSU5WQUw7CisJaWYgKENvbnRyb2xsZXIgPT0gTlVMTCkKKwkJYnJlYWs7CisJRXJyb3JDb2RlID0gLUVJTlZBTDsKKwlpZiAoQ29udHJvbGxlci0+RmlybXdhcmVUeXBlICE9IERBQzk2MF9WMV9Db250cm9sbGVyKQorCQlicmVhazsKIAlDb21tYW5kT3Bjb2RlID0gVXNlckNvbW1hbmQuQ29tbWFuZE1haWxib3guQ29tbW9uLkNvbW1hbmRPcGNvZGU7CiAJRGF0YVRyYW5zZmVyTGVuZ3RoID0gVXNlckNvbW1hbmQuRGF0YVRyYW5zZmVyTGVuZ3RoOwotCWlmIChDb21tYW5kT3Bjb2RlICYgMHg4MCkgcmV0dXJuIC1FSU5WQUw7CisJaWYgKENvbW1hbmRPcGNvZGUgJiAweDgwKQorCQlicmVhazsKIAlpZiAoQ29tbWFuZE9wY29kZSA9PSBEQUM5NjBfVjFfRENEQikKIAkgIHsKIAkgICAgaWYgKGNvcHlfZnJvbV91c2VyKCZEQ0RCLCBVc2VyQ29tbWFuZC5EQ0RCLAogCQkJICAgICAgIHNpemVvZihEQUM5NjBfVjFfRENEQl9UKSkpIHsKIAkJRXJyb3JDb2RlID0gLUVGQVVMVDsKLQkJZ290byBGYWlsdXJlMWE7CisJCWJyZWFrOwogCSAgICB9Ci0JICAgIGlmIChEQ0RCLkNoYW5uZWwgPj0gREFDOTYwX1YxX01heENoYW5uZWxzKSByZXR1cm4gLUVJTlZBTDsKKwkgICAgaWYgKERDREIuQ2hhbm5lbCA+PSBEQUM5NjBfVjFfTWF4Q2hhbm5lbHMpCisJICAgIAkJYnJlYWs7CiAJICAgIGlmICghKChEYXRhVHJhbnNmZXJMZW5ndGggPT0gMCAmJgogCQkgICBEQ0RCLkRpcmVjdGlvbgogCQkgICA9PSBEQUM5NjBfVjFfRENEQl9Ob0RhdGFUcmFuc2ZlcikgfHwKQEAgLTY3MTcsMzggKzY3MzUsMzcgQEAKIAkJICAoRGF0YVRyYW5zZmVyTGVuZ3RoIDwgMCAmJgogCQkgICBEQ0RCLkRpcmVjdGlvbgogCQkgICA9PSBEQUM5NjBfVjFfRENEQl9EYXRhVHJhbnNmZXJTeXN0ZW1Ub0RldmljZSkpKQotCSAgICAgIHJldHVybiAtRUlOVkFMOworCQkgICAJYnJlYWs7CiAJICAgIGlmICgoKERDREIuVHJhbnNmZXJMZW5ndGhIaWdoNCA8PCAxNikgfCBEQ0RCLlRyYW5zZmVyTGVuZ3RoKQogCQkhPSBhYnMoRGF0YVRyYW5zZmVyTGVuZ3RoKSkKLQkgICAgICByZXR1cm4gLUVJTlZBTDsKKwkJCWJyZWFrOwogCSAgICBEQ0RCX0lPQlVGID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoQ29udHJvbGxlci0+UENJRGV2aWNlLAogCQkJc2l6ZW9mKERBQzk2MF9WMV9EQ0RCX1QpLCAmRENEQl9JT0JVRkRNQSk7Ci0JICAgIGlmIChEQ0RCX0lPQlVGID09IE5VTEwpCi0JCQlyZXR1cm4gLUVOT01FTTsKKwkgICAgaWYgKERDREJfSU9CVUYgPT0gTlVMTCkgeworCSAgICAJCUVycm9yQ29kZSA9IC1FTk9NRU07CisJCQlicmVhazsKKwkJfQogCSAgfQorCUVycm9yQ29kZSA9IC1FTk9NRU07CiAJaWYgKERhdGFUcmFuc2Zlckxlbmd0aCA+IDApCiAJICB7CiAJICAgIERhdGFUcmFuc2ZlckJ1ZmZlciA9IHBjaV9hbGxvY19jb25zaXN0ZW50KENvbnRyb2xsZXItPlBDSURldmljZSwKIAkJCQlEYXRhVHJhbnNmZXJMZW5ndGgsICZEYXRhVHJhbnNmZXJCdWZmZXJETUEpOwotCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpIHsKLQkJRXJyb3JDb2RlID0gLUVOT01FTTsKLQkJZ290byBGYWlsdXJlMTsKLQkgICAgfQorCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpCisJICAgIAlicmVhazsKIAkgICAgbWVtc2V0KERhdGFUcmFuc2ZlckJ1ZmZlciwgMCwgRGF0YVRyYW5zZmVyTGVuZ3RoKTsKIAkgIH0KIAllbHNlIGlmIChEYXRhVHJhbnNmZXJMZW5ndGggPCAwKQogCSAgewogCSAgICBEYXRhVHJhbnNmZXJCdWZmZXIgPSBwY2lfYWxsb2NfY29uc2lzdGVudChDb250cm9sbGVyLT5QQ0lEZXZpY2UsCiAJCQkJLURhdGFUcmFuc2Zlckxlbmd0aCwgJkRhdGFUcmFuc2ZlckJ1ZmZlckRNQSk7Ci0JICAgIGlmIChEYXRhVHJhbnNmZXJCdWZmZXIgPT0gTlVMTCkgewotCQlFcnJvckNvZGUgPSAtRU5PTUVNOwotCQlnb3RvIEZhaWx1cmUxOwotCSAgICB9CisJICAgIGlmIChEYXRhVHJhbnNmZXJCdWZmZXIgPT0gTlVMTCkKKwkgICAgCWJyZWFrOwogCSAgICBpZiAoY29weV9mcm9tX3VzZXIoRGF0YVRyYW5zZmVyQnVmZmVyLAogCQkJICAgICAgIFVzZXJDb21tYW5kLkRhdGFUcmFuc2ZlckJ1ZmZlciwKIAkJCSAgICAgICAtRGF0YVRyYW5zZmVyTGVuZ3RoKSkgewogCQlFcnJvckNvZGUgPSAtRUZBVUxUOwotCQlnb3RvIEZhaWx1cmUxOworCQlicmVhazsKIAkgICAgfQogCSAgfQogCWlmIChDb21tYW5kT3Bjb2RlID09IERBQzk2MF9WMV9EQ0RCKQpAQCAtNjgyNSw4ICs2ODQyLDcgQEAKIAlpZiAoRENEQl9JT0JVRiAhPSBOVUxMKQogCSAgcGNpX2ZyZWVfY29uc2lzdGVudChDb250cm9sbGVyLT5QQ0lEZXZpY2UsIHNpemVvZihEQUM5NjBfVjFfRENEQl9UKSwKIAkJCURDREJfSU9CVUYsIERDREJfSU9CVUZETUEpOwotICAgICAgRmFpbHVyZTFhOgotCXJldHVybiBFcnJvckNvZGU7CisgICAgICAJYnJlYWs7CiAgICAgICB9CiAgICAgY2FzZSBEQUM5NjBfSU9DVExfVjJfRVhFQ1VURV9DT01NQU5EOgogICAgICAgewpAQCAtNjg0NCwzMiArNjg2MCw0MyBAQAogCWRtYV9hZGRyX3QgRGF0YVRyYW5zZmVyQnVmZmVyRE1BOwogCXVuc2lnbmVkIGNoYXIgKlJlcXVlc3RTZW5zZUJ1ZmZlciA9IE5VTEw7CiAJZG1hX2FkZHJfdCBSZXF1ZXN0U2Vuc2VCdWZmZXJETUE7Ci0JaWYgKFVzZXJTcGFjZVVzZXJDb21tYW5kID09IE5VTEwpIHJldHVybiAtRUlOVkFMOworCisJRXJyb3JDb2RlID0gLUVJTlZBTDsKKwlpZiAoVXNlclNwYWNlVXNlckNvbW1hbmQgPT0gTlVMTCkKKwkJYnJlYWs7CiAJaWYgKGNvcHlfZnJvbV91c2VyKCZVc2VyQ29tbWFuZCwgVXNlclNwYWNlVXNlckNvbW1hbmQsCiAJCQkgICBzaXplb2YoREFDOTYwX1YyX1VzZXJDb21tYW5kX1QpKSkgewogCQlFcnJvckNvZGUgPSAtRUZBVUxUOwotCQlnb3RvIEZhaWx1cmUyYTsKKwkJYnJlYWs7CiAJfQorCUVycm9yQ29kZSA9IC1FTlhJTzsKIAlDb250cm9sbGVyTnVtYmVyID0gVXNlckNvbW1hbmQuQ29udHJvbGxlck51bWJlcjsKIAlpZiAoQ29udHJvbGxlck51bWJlciA8IDAgfHwKIAkgICAgQ29udHJvbGxlck51bWJlciA+IERBQzk2MF9Db250cm9sbGVyQ291bnQgLSAxKQotCSAgcmV0dXJuIC1FTlhJTzsKKwkgICAgCWJyZWFrOwogCUNvbnRyb2xsZXIgPSBEQUM5NjBfQ29udHJvbGxlcnNbQ29udHJvbGxlck51bWJlcl07Ci0JaWYgKENvbnRyb2xsZXIgPT0gTlVMTCkgcmV0dXJuIC1FTlhJTzsKLQlpZiAoQ29udHJvbGxlci0+RmlybXdhcmVUeXBlICE9IERBQzk2MF9WMl9Db250cm9sbGVyKSByZXR1cm4gLUVJTlZBTDsKKwlpZiAoQ29udHJvbGxlciA9PSBOVUxMKQorCQlicmVhazsKKwlpZiAoQ29udHJvbGxlci0+RmlybXdhcmVUeXBlICE9IERBQzk2MF9WMl9Db250cm9sbGVyKXsKKwkJRXJyb3JDb2RlID0gLUVJTlZBTDsKKwkJYnJlYWs7CisJfQogCURhdGFUcmFuc2Zlckxlbmd0aCA9IFVzZXJDb21tYW5kLkRhdGFUcmFuc2Zlckxlbmd0aDsKKyAgICAJRXJyb3JDb2RlID0gLUVOT01FTTsKIAlpZiAoRGF0YVRyYW5zZmVyTGVuZ3RoID4gMCkKIAkgIHsKIAkgICAgRGF0YVRyYW5zZmVyQnVmZmVyID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoQ29udHJvbGxlci0+UENJRGV2aWNlLAogCQkJCURhdGFUcmFuc2Zlckxlbmd0aCwgJkRhdGFUcmFuc2ZlckJ1ZmZlckRNQSk7Ci0JICAgIGlmIChEYXRhVHJhbnNmZXJCdWZmZXIgPT0gTlVMTCkgcmV0dXJuIC1FTk9NRU07CisJICAgIGlmIChEYXRhVHJhbnNmZXJCdWZmZXIgPT0gTlVMTCkKKwkgICAgCWJyZWFrOwogCSAgICBtZW1zZXQoRGF0YVRyYW5zZmVyQnVmZmVyLCAwLCBEYXRhVHJhbnNmZXJMZW5ndGgpOwogCSAgfQogCWVsc2UgaWYgKERhdGFUcmFuc2Zlckxlbmd0aCA8IDApCiAJICB7CiAJICAgIERhdGFUcmFuc2ZlckJ1ZmZlciA9IHBjaV9hbGxvY19jb25zaXN0ZW50KENvbnRyb2xsZXItPlBDSURldmljZSwKIAkJCQktRGF0YVRyYW5zZmVyTGVuZ3RoLCAmRGF0YVRyYW5zZmVyQnVmZmVyRE1BKTsKLQkgICAgaWYgKERhdGFUcmFuc2ZlckJ1ZmZlciA9PSBOVUxMKSByZXR1cm4gLUVOT01FTTsKKwkgICAgaWYgKERhdGFUcmFuc2ZlckJ1ZmZlciA9PSBOVUxMKQorCSAgICAJYnJlYWs7CiAJICAgIGlmIChjb3B5X2Zyb21fdXNlcihEYXRhVHJhbnNmZXJCdWZmZXIsCiAJCQkgICAgICAgVXNlckNvbW1hbmQuRGF0YVRyYW5zZmVyQnVmZmVyLAogCQkJICAgICAgIC1EYXRhVHJhbnNmZXJMZW5ndGgpKSB7CkBAIC02OTc5LDggKzcwMDYsNyBAQAogCWlmIChSZXF1ZXN0U2Vuc2VCdWZmZXIgIT0gTlVMTCkKIAkgIHBjaV9mcmVlX2NvbnNpc3RlbnQoQ29udHJvbGxlci0+UENJRGV2aWNlLCBSZXF1ZXN0U2Vuc2VMZW5ndGgsCiAJCVJlcXVlc3RTZW5zZUJ1ZmZlciwgUmVxdWVzdFNlbnNlQnVmZmVyRE1BKTsKLSAgICAgIEZhaWx1cmUyYToKLQlyZXR1cm4gRXJyb3JDb2RlOworICAgICAgICBicmVhazsKICAgICAgIH0KICAgICBjYXNlIERBQzk2MF9JT0NUTF9WMl9HRVRfSEVBTFRIX1NUQVRVUzoKICAgICAgIHsKQEAgLTY5OTAsMjEgKzcwMTYsMzMgQEAKIAlEQUM5NjBfVjJfSGVhbHRoU3RhdHVzQnVmZmVyX1QgSGVhbHRoU3RhdHVzQnVmZmVyOwogCURBQzk2MF9Db250cm9sbGVyX1QgKkNvbnRyb2xsZXI7CiAJaW50IENvbnRyb2xsZXJOdW1iZXI7Ci0JaWYgKFVzZXJTcGFjZUdldEhlYWx0aFN0YXR1cyA9PSBOVUxMKSByZXR1cm4gLUVJTlZBTDsKKwlpZiAoVXNlclNwYWNlR2V0SGVhbHRoU3RhdHVzID09IE5VTEwpIHsKKwkJRXJyb3JDb2RlID0gLUVJTlZBTDsKKwkJYnJlYWs7CisJfQogCWlmIChjb3B5X2Zyb21fdXNlcigmR2V0SGVhbHRoU3RhdHVzLCBVc2VyU3BhY2VHZXRIZWFsdGhTdGF0dXMsCi0JCQkgICBzaXplb2YoREFDOTYwX1YyX0dldEhlYWx0aFN0YXR1c19UKSkpCi0JCXJldHVybiAtRUZBVUxUOworCQkJICAgc2l6ZW9mKERBQzk2MF9WMl9HZXRIZWFsdGhTdGF0dXNfVCkpKSB7CisJCUVycm9yQ29kZSA9IC1FRkFVTFQ7CisJCWJyZWFrOworCX0KKwlFcnJvckNvZGUgPSAtRU5YSU87CiAJQ29udHJvbGxlck51bWJlciA9IEdldEhlYWx0aFN0YXR1cy5Db250cm9sbGVyTnVtYmVyOwogCWlmIChDb250cm9sbGVyTnVtYmVyIDwgMCB8fAogCSAgICBDb250cm9sbGVyTnVtYmVyID4gREFDOTYwX0NvbnRyb2xsZXJDb3VudCAtIDEpCi0JICByZXR1cm4gLUVOWElPOworCQkgICAgYnJlYWs7CiAJQ29udHJvbGxlciA9IERBQzk2MF9Db250cm9sbGVyc1tDb250cm9sbGVyTnVtYmVyXTsKLQlpZiAoQ29udHJvbGxlciA9PSBOVUxMKSByZXR1cm4gLUVOWElPOwotCWlmIChDb250cm9sbGVyLT5GaXJtd2FyZVR5cGUgIT0gREFDOTYwX1YyX0NvbnRyb2xsZXIpIHJldHVybiAtRUlOVkFMOworCWlmIChDb250cm9sbGVyID09IE5VTEwpCisJCWJyZWFrOworCWlmIChDb250cm9sbGVyLT5GaXJtd2FyZVR5cGUgIT0gREFDOTYwX1YyX0NvbnRyb2xsZXIpIHsKKwkJRXJyb3JDb2RlID0gLUVJTlZBTDsKKwkJYnJlYWs7CisJfQogCWlmIChjb3B5X2Zyb21fdXNlcigmSGVhbHRoU3RhdHVzQnVmZmVyLAogCQkJICAgR2V0SGVhbHRoU3RhdHVzLkhlYWx0aFN0YXR1c0J1ZmZlciwKLQkJCSAgIHNpemVvZihEQUM5NjBfVjJfSGVhbHRoU3RhdHVzQnVmZmVyX1QpKSkKLQkJcmV0dXJuIC1FRkFVTFQ7CisJCQkgICBzaXplb2YoREFDOTYwX1YyX0hlYWx0aFN0YXR1c0J1ZmZlcl9UKSkpIHsKKwkJRXJyb3JDb2RlID0gLUVGQVVMVDsKKwkJYnJlYWs7CisJfQogCXdoaWxlIChDb250cm9sbGVyLT5WMi5IZWFsdGhTdGF0dXNCdWZmZXItPlN0YXR1c0NoYW5nZUNvdW50ZXIKIAkgICAgICAgPT0gSGVhbHRoU3RhdHVzQnVmZmVyLlN0YXR1c0NoYW5nZUNvdW50ZXIgJiYKIAkgICAgICAgQ29udHJvbGxlci0+VjIuSGVhbHRoU3RhdHVzQnVmZmVyLT5OZXh0RXZlbnRTZXF1ZW5jZU51bWJlcgpAQCAtNzAxMiwyMSArNzA1MCwyOCBAQAogCSAgewogCSAgICBpbnRlcnJ1cHRpYmxlX3NsZWVwX29uX3RpbWVvdXQoJkNvbnRyb2xsZXItPkhlYWx0aFN0YXR1c1dhaXRRdWV1ZSwKIAkJCQkJICAgREFDOTYwX01vbml0b3JpbmdUaW1lckludGVydmFsKTsKLQkgICAgaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSByZXR1cm4gLUVJTlRSOworCSAgICBpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKKwkgICAgCUVycm9yQ29kZSA9IC1FSU5UUjsKKwkgICAgCWJyZWFrOworCSAgICB9CiAJICB9CiAJaWYgKGNvcHlfdG9fdXNlcihHZXRIZWFsdGhTdGF0dXMuSGVhbHRoU3RhdHVzQnVmZmVyLAogCQkJIENvbnRyb2xsZXItPlYyLkhlYWx0aFN0YXR1c0J1ZmZlciwKIAkJCSBzaXplb2YoREFDOTYwX1YyX0hlYWx0aFN0YXR1c0J1ZmZlcl9UKSkpCi0JCXJldHVybiAtRUZBVUxUOwotCXJldHVybiAwOworCQlFcnJvckNvZGUgPSAtRUZBVUxUOworCWVsc2UKKwkJRXJyb3JDb2RlID0gIDA7CiAgICAgICB9CisgICAgICBkZWZhdWx0OgorCUVycm9yQ29kZSA9IC1FTk9UVFk7CiAgICAgfQotICByZXR1cm4gLUVJTlZBTDsKKyAgdW5sb2NrX2tlcm5lbCgpOworICByZXR1cm4gRXJyb3JDb2RlOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBEQUM5NjBfZ2FtX2ZvcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5pb2N0bAkJPSBEQUM5NjBfZ2FtX2lvY3RsCisJLnVubG9ja2VkX2lvY3RsCT0gREFDOTYwX2dhbV9pb2N0bAogfTsKIAogc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIERBQzk2MF9nYW1fZGV2ID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9hb2UvYW9lY2hyLmMgYi9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjaHIuYwppbmRleCBlOGU2MGU3Li5kMWRlNjhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjaHIuYworKysgYi9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjaHIuYwpAQCAtNyw2ICs3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9oZHJlZy5oPgogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJhb2UuaCIKIAogZW51bSB7CkBAIC0xNzQsMTIgKzE3NSwxNiBAQAogewogCWludCBuLCBpOwogCisJbG9ja19rZXJuZWwoKTsKIAluID0gaW1pbm9yKGlub2RlKTsKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSAodm9pZCAqKSAodW5zaWduZWQgbG9uZykgbjsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNoYXJkZXZzKTsgKytpKQotCQlpZiAoY2hhcmRldnNbaV0ubWlub3IgPT0gbikKKwkJaWYgKGNoYXJkZXZzW2ldLm1pbm9yID09IG4pIHsKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybiAwOworCQl9CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRUlOVkFMOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjbWQuYyBiL2RyaXZlcnMvYmxvY2svYW9lL2FvZWNtZC5jCmluZGV4IDQxZjgxOGIuLjJmMTc0NjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svYW9lL2FvZWNtZC5jCisrKyBiL2RyaXZlcnMvYmxvY2svYW9lL2FvZWNtZC5jCkBAIC0xMDAzLDcgKzEwMDMsNyBAQAogCSAqIEVub3VnaCBwZW9wbGUgaGF2ZSB0aGVpciBkaXAgc3dpdGNoZXMgc2V0IGJhY2t3YXJkcyB0bwogCSAqIHdhcnJhbnQgYSBsb3VkIG1lc3NhZ2UgZm9yIHRoaXMgc3BlY2lhbCBjYXNlLgogCSAqLwotCWFvZW1ham9yID0gYmUxNl90b19jcHUoZ2V0X3VuYWxpZ25lZCgmaC0+bWFqb3IpKTsKKwlhb2VtYWpvciA9IGdldF91bmFsaWduZWRfYmUxNigmaC0+bWFqb3IpOwogCWlmIChhb2VtYWpvciA9PSAweGZmZikgewogCQlwcmludGsoS0VSTl9FUlIgImFvZTogV2FybmluZzogc2hlbGYgYWRkcmVzcyBpcyBhbGwgb25lcy4gICIKIAkJCSJDaGVjayBzaGVsZiBkaXAgc3dpdGNoZXMuXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svY2Npc3MuYyBiL2RyaXZlcnMvYmxvY2svY2Npc3MuYwppbmRleCA1ZjFlMWNjLi5kODE2MzJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2NjaXNzLmMKKysrIGIvZHJpdmVycy9ibG9jay9jY2lzcy5jCkBAIC0xMDYsMzUgKzEwNiwzNCBAQAogLyogIGJvYXJkX2lkID0gU3Vic3lzdGVtIERldmljZSBJRCAmIFZlbmRvciBJRAogICogIHByb2R1Y3QgPSBNYXJrZXRpbmcgTmFtZSBmb3IgdGhlIGJvYXJkCiAgKiAgYWNjZXNzID0gQWRkcmVzcyBvZiB0aGUgc3RydWN0IG9mIGZ1bmN0aW9uIHBvaW50ZXJzCi0gKiAgbnJfY21kcyA9IE51bWJlciBvZiBjb21tYW5kcyBzdXBwb3J0ZWQgYnkgY29udHJvbGxlcgogICovCiBzdGF0aWMgc3RydWN0IGJvYXJkX3R5cGUgcHJvZHVjdHNbXSA9IHsKLQl7MHg0MDcwMEUxMSwgIlNtYXJ0IEFycmF5IDUzMDAiLCAmU0E1X2FjY2VzcywgNTEyfSwKLQl7MHg0MDgwMEUxMSwgIlNtYXJ0IEFycmF5IDVpIiwgJlNBNUJfYWNjZXNzLCA1MTJ9LAotCXsweDQwODIwRTExLCAiU21hcnQgQXJyYXkgNTMyIiwgJlNBNUJfYWNjZXNzLCA1MTJ9LAotCXsweDQwODMwRTExLCAiU21hcnQgQXJyYXkgNTMxMiIsICZTQTVCX2FjY2VzcywgNTEyfSwKLQl7MHg0MDlBMEUxMSwgIlNtYXJ0IEFycmF5IDY0MSIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDQwOUIwRTExLCAiU21hcnQgQXJyYXkgNjQyIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4NDA5QzBFMTEsICJTbWFydCBBcnJheSA2NDAwIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4NDA5RDBFMTEsICJTbWFydCBBcnJheSA2NDAwIEVNIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4NDA5MTBFMTEsICJTbWFydCBBcnJheSA2aSIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMjUxMDNDLCAiU21hcnQgQXJyYXkgUDYwMCIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMjMxMDNDLCAiU21hcnQgQXJyYXkgUDgwMCIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMzQxMDNDLCAiU21hcnQgQXJyYXkgUDQwMCIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMzUxMDNDLCAiU21hcnQgQXJyYXkgUDQwMGkiLCAmU0E1X2FjY2VzcywgNTEyfSwKLQl7MHgzMjExMTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3MsIDEyMH0sCi0JezB4MzIxMjEwM0MsICJTbWFydCBBcnJheSBFMjAwIiwgJlNBNV9hY2Nlc3MsIDEyMH0sCi0JezB4MzIxMzEwM0MsICJTbWFydCBBcnJheSBFMjAwaSIsICZTQTVfYWNjZXNzLCAxMjB9LAotCXsweDMyMTQxMDNDLCAiU21hcnQgQXJyYXkgRTIwMGkiLCAmU0E1X2FjY2VzcywgMTIwfSwKLQl7MHgzMjE1MTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3MsIDEyMH0sCi0JezB4MzIzNzEwM0MsICJTbWFydCBBcnJheSBFNTAwIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4MzIzRDEwM0MsICJTbWFydCBBcnJheSBQNzAwbSIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyNDExMDNDLCAiU21hcnQgQXJyYXkgUDIxMiIsICZTQTVfYWNjZXNzLCAzODR9LAotCXsweDMyNDMxMDNDLCAiU21hcnQgQXJyYXkgUDQxMCIsICZTQTVfYWNjZXNzLCAzODR9LAotCXsweDMyNDUxMDNDLCAiU21hcnQgQXJyYXkgUDQxMGkiLCAmU0E1X2FjY2VzcywgMzg0fSwKLQl7MHgzMjQ3MTAzQywgIlNtYXJ0IEFycmF5IFA0MTEiLCAmU0E1X2FjY2VzcywgMzg0fSwKLQl7MHgzMjQ5MTAzQywgIlNtYXJ0IEFycmF5IFA4MTIiLCAmU0E1X2FjY2VzcywgMzg0fSwKLQl7MHhGRkZGMTAzQywgIlVua25vd24gU21hcnQgQXJyYXkiLCAmU0E1X2FjY2VzcywgMTIwfSwKKwl7MHg0MDcwMEUxMSwgIlNtYXJ0IEFycmF5IDUzMDAiLCAmU0E1X2FjY2Vzc30sCisJezB4NDA4MDBFMTEsICJTbWFydCBBcnJheSA1aSIsICZTQTVCX2FjY2Vzc30sCisJezB4NDA4MjBFMTEsICJTbWFydCBBcnJheSA1MzIiLCAmU0E1Ql9hY2Nlc3N9LAorCXsweDQwODMwRTExLCAiU21hcnQgQXJyYXkgNTMxMiIsICZTQTVCX2FjY2Vzc30sCisJezB4NDA5QTBFMTEsICJTbWFydCBBcnJheSA2NDEiLCAmU0E1X2FjY2Vzc30sCisJezB4NDA5QjBFMTEsICJTbWFydCBBcnJheSA2NDIiLCAmU0E1X2FjY2Vzc30sCisJezB4NDA5QzBFMTEsICJTbWFydCBBcnJheSA2NDAwIiwgJlNBNV9hY2Nlc3N9LAorCXsweDQwOUQwRTExLCAiU21hcnQgQXJyYXkgNjQwMCBFTSIsICZTQTVfYWNjZXNzfSwKKwl7MHg0MDkxMEUxMSwgIlNtYXJ0IEFycmF5IDZpIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyMjUxMDNDLCAiU21hcnQgQXJyYXkgUDYwMCIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjIzMTAzQywgIlNtYXJ0IEFycmF5IFA4MDAiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIzNDEwM0MsICJTbWFydCBBcnJheSBQNDAwIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyMzUxMDNDLCAiU21hcnQgQXJyYXkgUDQwMGkiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIxMTEwM0MsICJTbWFydCBBcnJheSBFMjAwaSIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjEyMTAzQywgIlNtYXJ0IEFycmF5IEUyMDAiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIxMzEwM0MsICJTbWFydCBBcnJheSBFMjAwaSIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjE0MTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyMTUxMDNDLCAiU21hcnQgQXJyYXkgRTIwMGkiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIzNzEwM0MsICJTbWFydCBBcnJheSBFNTAwIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyM0QxMDNDLCAiU21hcnQgQXJyYXkgUDcwMG0iLCAmU0E1X2FjY2Vzc30sCisJezB4MzI0MTEwM0MsICJTbWFydCBBcnJheSBQMjEyIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyNDMxMDNDLCAiU21hcnQgQXJyYXkgUDQxMCIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjQ1MTAzQywgIlNtYXJ0IEFycmF5IFA0MTBpIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyNDcxMDNDLCAiU21hcnQgQXJyYXkgUDQxMSIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjQ5MTAzQywgIlNtYXJ0IEFycmF5IFA4MTIiLCAmU0E1X2FjY2Vzc30sCisJezB4RkZGRjEwM0MsICJVbmtub3duIFNtYXJ0IEFycmF5IiwgJlNBNV9hY2Nlc3N9LAogfTsKIAogLyogSG93IGxvbmcgdG8gd2FpdCAoaW4gbWlsbGlzZWNvbmRzKSBmb3IgYm9hcmQgdG8gZ28gaW50byBzaW1wbGUgbW9kZSAqLwpAQCAtMzA4NiwxMSArMzA4NSwyMCBAQAogCXByaW50X2NmZ190YWJsZShjLT5jZmd0YWJsZSk7CiAjZW5kaWYJCQkJLyogQ0NJU1NfREVCVUcgKi8KIAorCS8qIFNvbWUgY29udHJvbGxlcnMgc3VwcG9ydCBaZXJvIE1lbW9yeSBSYWlkIChaTVIpLgorCSAqIFdoZW4gY29uZmlndXJlZCBpbiBaTVIgbW9kZSB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZAorCSAqIGNvbW1hbmRzIGRyb3BzIHRvIDY0LiBTbyBpbnN0ZWFkIG9mIGp1c3Qgc2V0dGluZyBhbgorCSAqIGFyYml0cmFyeSB2YWx1ZSB3ZSBtYWtlIHRoZSBkcml2ZXIgYSBsaXR0bGUgc21hcnRlci4KKwkgKiBXZSByZWFkIHRoZSBjb25maWcgdGFibGUgdG8gdGVsbCB1cyBob3cgbWFueSBjb21tYW5kcworCSAqIGFyZSBzdXBwb3J0ZWQgb24gdGhlIGNvbnRyb2xsZXIgdGhlbiBzdWJ0cmFjdCA0IHRvCisJICogbGVhdmUgYSBsaXR0bGUgcm9vbSBmb3IgaW9jdGwgY2FsbHMuCisJICovCisJYy0+bWF4X2NvbW1hbmRzID0gcmVhZGwoJihjLT5jZmd0YWJsZS0+Q21kc091dE1heCkpOwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHByb2R1Y3RzKTsgaSsrKSB7CiAJCWlmIChib2FyZF9pZCA9PSBwcm9kdWN0c1tpXS5ib2FyZF9pZCkgewogCQkJYy0+cHJvZHVjdF9uYW1lID0gcHJvZHVjdHNbaV0ucHJvZHVjdF9uYW1lOwogCQkJYy0+YWNjZXNzID0gKihwcm9kdWN0c1tpXS5hY2Nlc3MpOwotCQkJYy0+bnJfY21kcyA9IHByb2R1Y3RzW2ldLm5yX2NtZHM7CisJCQljLT5ucl9jbWRzID0gYy0+bWF4X2NvbW1hbmRzIC0gNDsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtMzExMCw3ICszMTE4LDcgQEAKIAkJaWYgKHN1YnN5c3RlbV92ZW5kb3JfaWQgPT0gUENJX1ZFTkRPUl9JRF9IUCkgewogCQkJYy0+cHJvZHVjdF9uYW1lID0gcHJvZHVjdHNbaS0xXS5wcm9kdWN0X25hbWU7CiAJCQljLT5hY2Nlc3MgPSAqKHByb2R1Y3RzW2ktMV0uYWNjZXNzKTsKLQkJCWMtPm5yX2NtZHMgPSBwcm9kdWN0c1tpLTFdLm5yX2NtZHM7CisJCQljLT5ucl9jbWRzID0gYy0+bWF4X2NvbW1hbmRzIC0gNDsKIAkJCXByaW50ayhLRVJOX1dBUk5JTkcgImNjaXNzOiBUaGlzIGlzIGFuIHVua25vd24gIgogCQkJCSJTbWFydCBBcnJheSBjb250cm9sbGVyLlxuIgogCQkJCSJjY2lzczogUGxlYXNlIHVwZGF0ZSB0byB0aGUgbGF0ZXN0IGRyaXZlciAiCkBAIC0zNTQ2LDYgKzM1NTQsMTAgQEAKIAlmb3IgKGogPSAwOyBqIDw9IGhiYVtpXS0+aGlnaGVzdF9sdW47IGorKykKIAkJYWRkX2Rpc2soaGJhW2ldLT5nZW5kaXNrW2pdKTsKIAorCS8qIHdlIG11c3QgcmVnaXN0ZXIgdGhlIGNvbnRyb2xsZXIgZXZlbiBpZiBubyBkaXNrcyBleGlzdCAqLworCWlmIChoYmFbaV0tPmhpZ2hlc3RfbHVuID09IC0xKQorCQlhZGRfZGlzayhoYmFbaV0tPmdlbmRpc2tbMF0pOworCiAJcmV0dXJuIDE7CiAKICAgICAgIGNsZWFuNDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svcGFyaWRlL3BkLmMgYi9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wZC5jCmluZGV4IDU3MGYzYjcuLjVmZGZhN2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svcGFyaWRlL3BkLmMKKysrIGIvZHJpdmVycy9ibG9jay9wYXJpZGUvcGQuYwpAQCAtNzEyLDE5ICs3MTIsMTcgQEAKIHN0YXRpYyBpbnQgcGRfc3BlY2lhbF9jb21tYW5kKHN0cnVjdCBwZF91bml0ICpkaXNrLAogCQkgICAgICBlbnVtIGFjdGlvbiAoKmZ1bmMpKHN0cnVjdCBwZF91bml0ICpkaXNrKSkKIHsKLQlERUNMQVJFX0NPTVBMRVRJT05fT05TVEFDSyh3YWl0KTsKLQlzdHJ1Y3QgcmVxdWVzdCBycTsKKwlzdHJ1Y3QgcmVxdWVzdCAqcnE7CiAJaW50IGVyciA9IDA7CiAKLQlibGtfcnFfaW5pdChOVUxMLCAmcnEpOwotCXJxLnJxX2Rpc2sgPSBkaXNrLT5nZDsKLQlycS5lbmRfaW9fZGF0YSA9ICZ3YWl0OwotCXJxLmVuZF9pbyA9IGJsa19lbmRfc3luY19ycTsKLQlibGtfaW5zZXJ0X3JlcXVlc3QoZGlzay0+Z2QtPnF1ZXVlLCAmcnEsIDAsIGZ1bmMpOwotCXdhaXRfZm9yX2NvbXBsZXRpb24oJndhaXQpOwotCWlmIChycS5lcnJvcnMpCi0JCWVyciA9IC1FSU87Ci0JYmxrX3B1dF9yZXF1ZXN0KCZycSk7CisJcnEgPSBibGtfZ2V0X3JlcXVlc3QoZGlzay0+Z2QtPnF1ZXVlLCBSRUFELCBfX0dGUF9XQUlUKTsKKworCXJxLT5jbWRfdHlwZSA9IFJFUV9UWVBFX1NQRUNJQUw7CisJcnEtPnNwZWNpYWwgPSBmdW5jOworCisJZXJyID0gYmxrX2V4ZWN1dGVfcnEoZGlzay0+Z2QtPnF1ZXVlLCBkaXNrLT5nZCwgcnEsIDApOworCisJYmxrX3B1dF9yZXF1ZXN0KHJxKTsKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wZy5jIGIvZHJpdmVycy9ibG9jay9wYXJpZGUvcGcuYwppbmRleCBhYjg2ZTIzLi45ZDkyNjM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wZy5jCisrKyBiL2RyaXZlcnMvYmxvY2svcGFyaWRlL3BnLmMKQEAgLTE2Miw2ICsxNjIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BnLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4JLyogY3VycmVudCwgVEFTS18qICovCisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtNTE1LDEyICs1MTYsMTggQEAKIHsKIAlpbnQgdW5pdCA9IGltaW5vcihpbm9kZSkgJiAweDdmOwogCXN0cnVjdCBwZyAqZGV2ID0gJmRldmljZXNbdW5pdF07CisJaW50IHJldCA9IDA7CiAKLQlpZiAoKHVuaXQgPj0gUEdfVU5JVFMpIHx8ICghZGV2LT5wcmVzZW50KSkKLQkJcmV0dXJuIC1FTk9ERVY7CisJbG9ja19rZXJuZWwoKTsKKwlpZiAoKHVuaXQgPj0gUEdfVU5JVFMpIHx8ICghZGV2LT5wcmVzZW50KSkgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAKLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmZGV2LT5hY2Nlc3MpKQotCQlyZXR1cm4gLUVCVVNZOworCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICZkZXYtPmFjY2VzcykpIHsKKwkJcmV0ID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CiAKIAlpZiAoZGV2LT5idXN5KSB7CiAJCXBnX3Jlc2V0KGRldik7CkBAIC01MzMsMTIgKzU0MCwxNSBAQAogCWlmIChkZXYtPmJ1ZnB0ciA9PSBOVUxMKSB7CiAJCWNsZWFyX2JpdCgwLCAmZGV2LT5hY2Nlc3MpOwogCQlwcmludGsoIiVzOiBidWZmZXIgYWxsb2NhdGlvbiBmYWlsZWRcbiIsIGRldi0+bmFtZSk7Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKIAl9CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBkZXY7CiAKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBwZ19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9wYXJpZGUvcHQuYyBiL2RyaXZlcnMvYmxvY2svcGFyaWRlL3B0LmMKaW5kZXggOGI5NTQ5YS4uNWM3NGMzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9wYXJpZGUvcHQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wdC5jCkBAIC0xNDYsNiArMTQ2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tdGlvLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4JLyogY3VycmVudCwgVEFTS18qLCBzY2hlZHVsZV90aW1lb3V0KCkgKi8KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIApAQCAtMTg5LDggKzE5MCw3IEBACiAjZGVmaW5lIEFUQVBJX0xPR19TRU5TRQkJMHg0ZAogCiBzdGF0aWMgaW50IHB0X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpOwotc3RhdGljIGludCBwdF9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkJICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKK3N0YXRpYyBsb25nIHB0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CiBzdGF0aWMgaW50IHB0X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpOwogc3RhdGljIHNzaXplX3QgcHRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJICAgICAgIHNpemVfdCBjb3VudCwgbG9mZl90ICogcHBvcyk7CkBAIC0yMzYsNyArMjM2LDcgQEAKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIAkucmVhZCA9IHB0X3JlYWQsCiAJLndyaXRlID0gcHRfd3JpdGUsCi0JLmlvY3RsID0gcHRfaW9jdGwsCisJLnVubG9ja2VkX2lvY3RsID0gcHRfaW9jdGwsCiAJLm9wZW4gPSBwdF9vcGVuLAogCS5yZWxlYXNlID0gcHRfcmVsZWFzZSwKIH07CkBAIC02NTAsOCArNjUwLDExIEBACiAJc3RydWN0IHB0X3VuaXQgKnRhcGUgPSBwdCArIHVuaXQ7CiAJaW50IGVycjsKIAotCWlmICh1bml0ID49IFBUX1VOSVRTIHx8ICghdGFwZS0+cHJlc2VudCkpCisJbG9ja19rZXJuZWwoKTsKKwlpZiAodW5pdCA+PSBQVF9VTklUUyB8fCAoIXRhcGUtPnByZXNlbnQpKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9ERVY7CisJfQogCiAJZXJyID0gLUVCVVNZOwogCWlmICghYXRvbWljX2RlY19hbmRfdGVzdCgmdGFwZS0+YXZhaWxhYmxlKSkKQEAgLTY3OCwxNSArNjgxLDE2IEBACiAJfQogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gdGFwZTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIG91dDoKIAlhdG9taWNfaW5jKCZ0YXBlLT5hdmFpbGFibGUpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgaW50IHB0X2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLAotCSB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3N0YXRpYyBsb25nIHB0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIHsKIAlzdHJ1Y3QgcHRfdW5pdCAqdGFwZSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAlzdHJ1Y3QgbXRvcCBfX3VzZXIgKnAgPSAodm9pZCBfX3VzZXIgKilhcmc7CkBAIC03MDAsMjMgKzcwNCwyNiBAQAogCQlzd2l0Y2ggKG10b3AubXRfb3ApIHsKIAogCQljYXNlIE1UUkVXOgorCQkJbG9ja19rZXJuZWwoKTsKIAkJCXB0X3Jld2luZCh0YXBlKTsKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybiAwOwogCiAJCWNhc2UgTVRXRU9GOgorCQkJbG9ja19rZXJuZWwoKTsKIAkJCXB0X3dyaXRlX2ZtKHRhcGUpOworCQkJdW5sb2NrX2tlcm5lbCgpOwogCQkJcmV0dXJuIDA7CiAKIAkJZGVmYXVsdDoKLQkJCXByaW50aygiJXM6IFVuaW1wbGVtZW50ZWQgbXRfb3AgJWRcbiIsIHRhcGUtPm5hbWUsCisJCQkvKiBGSVhNRTogcmF0ZSBsaW1pdCA/PyAqLworCQkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBVbmltcGxlbWVudGVkIG10X29wICVkXG4iLCB0YXBlLT5uYW1lLAogCQkJICAgICAgIG10b3AubXRfb3ApOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAogCWRlZmF1bHQ6Ci0JCXByaW50aygiJXM6IFVuaW1wbGVtZW50ZWQgaW9jdGwgMHgleFxuIiwgdGFwZS0+bmFtZSwgY21kKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KKwkJcmV0dXJuIC1FTk9UVFk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3BrdGNkdmQuYyBiL2RyaXZlcnMvYmxvY2svcGt0Y2R2ZC5jCmluZGV4IDNiYTFkZjkuLjQ1YmVlOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svcGt0Y2R2ZC5jCisrKyBiL2RyaXZlcnMvYmxvY2svcGt0Y2R2ZC5jCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPgpAQCAtMjA3OSw3ICsyMDgwLDYgQEAKIAl1bnNpZ25lZCBjaGFyIGJ1Zls2NF07CiAJaW50IHJldDsKIAotCW1lbXNldChidWYsIDAsIHNpemVvZihidWYpKTsKIAlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmLCBzaXplb2YoYnVmKSwgQ0dDX0RBVEFfUkVBRCk7CiAJY2djLnNlbnNlID0gJnNlbnNlOwogCWNnYy5idWZsZW4gPSBwZC0+bW9kZV9vZmZzZXQgKyAxMjsKQEAgLTIxMjYsNyArMjEyNiw2IEBACiAJdW5zaWduZWQgY2hhciAqY2FwX2J1ZjsKIAlpbnQgcmV0LCBvZmZzZXQ7CiAKLQltZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7CiAJY2FwX2J1ZiA9ICZidWZbc2l6ZW9mKHN0cnVjdCBtb2RlX3BhZ2VfaGVhZGVyKSArIHBkLT5tb2RlX29mZnNldF07CiAJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIENHQ19EQVRBX1VOS05PV04pOwogCWNnYy5zZW5zZSA9ICZzZW5zZTsKQEAgLTI2MzMsMTEgKzI2MzIsMTIgQEAKIAogCiAKLXN0YXRpYyBpbnQgcGt0X21lcmdlX2J2ZWMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IGJpb192ZWMgKmJ2ZWMpCitzdGF0aWMgaW50IHBrdF9tZXJnZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBzdHJ1Y3QgYnZlY19tZXJnZV9kYXRhICpibWQsCisJCQkgIHN0cnVjdCBiaW9fdmVjICpidmVjKQogewogCXN0cnVjdCBwa3RjZHZkX2RldmljZSAqcGQgPSBxLT5xdWV1ZWRhdGE7Ci0Jc2VjdG9yX3Qgem9uZSA9IFpPTkUoYmlvLT5iaV9zZWN0b3IsIHBkKTsKLQlpbnQgdXNlZCA9ICgoYmlvLT5iaV9zZWN0b3IgLSB6b25lKSA8PCA5KSArIGJpby0+Ymlfc2l6ZTsKKwlzZWN0b3JfdCB6b25lID0gWk9ORShibWQtPmJpX3NlY3RvciwgcGQpOworCWludCB1c2VkID0gKChibWQtPmJpX3NlY3RvciAtIHpvbmUpIDw8IDkpICsgYm1kLT5iaV9zaXplOwogCWludCByZW1haW5pbmcgPSAocGQtPnNldHRpbmdzLnNpemUgPDwgOSkgLSB1c2VkOwogCWludCByZW1haW5pbmcyOwogCkBAIC0yNjQ1LDcgKzI2NDUsNyBAQAogCSAqIEEgYmlvIDw9IFBBR0VfU0laRSBtdXN0IGJlIGFsbG93ZWQuIElmIGl0IGNyb3NzZXMgYSBwYWNrZXQKIAkgKiBib3VuZGFyeSwgcGt0X21ha2VfcmVxdWVzdCgpIHdpbGwgc3BsaXQgdGhlIGJpby4KIAkgKi8KLQlyZW1haW5pbmcyID0gUEFHRV9TSVpFIC0gYmlvLT5iaV9zaXplOworCXJlbWFpbmluZzIgPSBQQUdFX1NJWkUgLSBibWQtPmJpX3NpemU7CiAJcmVtYWluaW5nID0gbWF4KHJlbWFpbmluZywgcmVtYWluaW5nMik7CiAKIAlCVUdfT04ocmVtYWluaW5nIDwgMCk7CkBAIC0yNzk2LDkgKzI3OTYsMTQgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHBrdF9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCitzdGF0aWMgbG9uZyBwa3RfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogewotCXN0cnVjdCBwa3RjZHZkX2RldmljZSAqcGQgPSBpbm9kZS0+aV9iZGV2LT5iZF9kaXNrLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7CisJc3RydWN0IHBrdGNkdmRfZGV2aWNlICpwZDsKKwlsb25nIHJldDsKKworCWxvY2tfa2VybmVsKCk7CisJcGQgPSBpbm9kZS0+aV9iZGV2LT5iZF9kaXNrLT5wcml2YXRlX2RhdGE7CiAKIAlWUFJJTlRLKCJwa3RfaW9jdGw6IGNtZCAleCwgZGV2ICVkOiVkXG4iLCBjbWQsIGltYWpvcihpbm9kZSksIGltaW5vcihpbm9kZSkpOwogCkBAIC0yODExLDcgKzI4MTYsOCBAQAogCWNhc2UgQ0RST01fTEFTVF9XUklUVEVOOgogCWNhc2UgQ0RST01fU0VORF9QQUNLRVQ6CiAJY2FzZSBTQ1NJX0lPQ1RMX1NFTkRfQ09NTUFORDoKLQkJcmV0dXJuIGJsa2Rldl9pb2N0bChwZC0+YmRldi0+YmRfaW5vZGUsIGZpbGUsIGNtZCwgYXJnKTsKKwkJcmV0ID0gYmxrZGV2X2lvY3RsKHBkLT5iZGV2LT5iZF9pbm9kZSwgZmlsZSwgY21kLCBhcmcpOworCQlicmVhazsKIAogCWNhc2UgQ0RST01FSkVDVDoKIAkJLyoKQEAgLTI4MjAsMTQgKzI4MjYsMTUgQEAKIAkJICovCiAJCWlmIChwZC0+cmVmY250ID09IDEpCiAJCQlwa3RfbG9ja19kb29yKHBkLCAwKTsKLQkJcmV0dXJuIGJsa2Rldl9pb2N0bChwZC0+YmRldi0+YmRfaW5vZGUsIGZpbGUsIGNtZCwgYXJnKTsKKwkJcmV0ID0gYmxrZGV2X2lvY3RsKHBkLT5iZGV2LT5iZF9pbm9kZSwgZmlsZSwgY21kLCBhcmcpOworCQlicmVhazsKIAogCWRlZmF1bHQ6CiAJCVZQUklOVEsoRFJJVkVSX05BTUUiOiBVbmtub3duIGlvY3RsIGZvciAlcyAoJXgpXG4iLCBwZC0+bmFtZSwgY21kKTsKLQkJcmV0dXJuIC1FTk9UVFk7CisJCXJldCA9IC1FTk9UVFk7CiAJfQotCi0JcmV0dXJuIDA7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgcGt0X21lZGlhX2NoYW5nZWQoc3RydWN0IGdlbmRpc2sgKmRpc2spCkBAIC0yODQ5LDcgKzI4NTYsNyBAQAogCS5vd25lciA9CQlUSElTX01PRFVMRSwKIAkub3BlbiA9CQkJcGt0X29wZW4sCiAJLnJlbGVhc2UgPQkJcGt0X2Nsb3NlLAotCS5pb2N0bCA9CQlwa3RfaW9jdGwsCisJLnVubG9ja2VkX2lvY3RsID0JcGt0X2lvY3RsLAogCS5tZWRpYV9jaGFuZ2VkID0JcGt0X21lZGlhX2NoYW5nZWQsCiB9OwogCkBAIC0zMDE0LDcgKzMwMjEsOCBAQAogCW11dGV4X3VubG9jaygmY3RsX211dGV4KTsKIH0KIAotc3RhdGljIGludCBwa3RfY3RsX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3N0YXRpYyBsb25nIHBrdF9jdGxfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCisJCQkJCQl1bnNpZ25lZCBsb25nIGFyZykKIHsKIAl2b2lkIF9fdXNlciAqYXJncCA9ICh2b2lkIF9fdXNlciAqKWFyZzsKIAlzdHJ1Y3QgcGt0X2N0cmxfY29tbWFuZCBjdHJsX2NtZDsKQEAgLTMwMzEsMTYgKzMwMzksMjIgQEAKIAljYXNlIFBLVF9DVFJMX0NNRF9TRVRVUDoKIAkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQogCQkJcmV0dXJuIC1FUEVSTTsKKwkJbG9ja19rZXJuZWwoKTsKIAkJcmV0ID0gcGt0X3NldHVwX2RldihuZXdfZGVjb2RlX2RldihjdHJsX2NtZC5kZXYpLCAmcGt0X2Rldik7CiAJCWN0cmxfY21kLnBrdF9kZXYgPSBuZXdfZW5jb2RlX2Rldihwa3RfZGV2KTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlicmVhazsKIAljYXNlIFBLVF9DVFJMX0NNRF9URUFSRE9XTjoKIAkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQogCQkJcmV0dXJuIC1FUEVSTTsKKwkJbG9ja19rZXJuZWwoKTsKIAkJcmV0ID0gcGt0X3JlbW92ZV9kZXYobmV3X2RlY29kZV9kZXYoY3RybF9jbWQucGt0X2RldikpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCWJyZWFrOwogCWNhc2UgUEtUX0NUUkxfQ01EX1NUQVRVUzoKKwkJbG9ja19rZXJuZWwoKTsKIAkJcGt0X2dldF9zdGF0dXMoJmN0cmxfY21kKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVOT1RUWTsKQEAgLTMwNTMsNyArMzA2Nyw3IEBACiAKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcGt0X2N0bF9mb3BzID0gewotCS5pb2N0bAkgPSBwa3RfY3RsX2lvY3RsLAorCS51bmxvY2tlZF9pb2N0bAkgPSBwa3RfY3RsX2lvY3RsLAogCS5vd25lcgkgPSBUSElTX01PRFVMRSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCmluZGV4IGYyZmZmNTcuLjlhZTA1YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKKysrIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2hkcmVnLmg+CisjaW5jbHVkZSA8bGludXgvY2Ryb20uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KQEAgLTE1Myw2ICsxNTQsNDAgQEAKIAlyZXR1cm4gMDsKIH0KIAoraW50IGJsa2lmX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlcCwKKwkJdW5zaWduZWQgY29tbWFuZCwgdW5zaWduZWQgbG9uZyBhcmd1bWVudCkKK3sKKwlzdHJ1Y3QgYmxrZnJvbnRfaW5mbyAqaW5mbyA9CisJCWlub2RlLT5pX2JkZXYtPmJkX2Rpc2stPnByaXZhdGVfZGF0YTsKKwlpbnQgaTsKKworCWRldl9kYmcoJmluZm8tPnhiZGV2LT5kZXYsICJjb21tYW5kOiAweCV4LCBhcmd1bWVudDogMHglbHhcbiIsCisJCWNvbW1hbmQsIChsb25nKWFyZ3VtZW50KTsKKworCXN3aXRjaCAoY29tbWFuZCkgeworCWNhc2UgQ0RST01NVUxUSVNFU1NJT046CisJCWRldl9kYmcoJmluZm8tPnhiZGV2LT5kZXYsICJGSVhNRTogc3VwcG9ydCBtdWx0aXNlc3Npb24gQ0RzIGxhdGVyXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IHNpemVvZihzdHJ1Y3QgY2Ryb21fbXVsdGlzZXNzaW9uKTsgaSsrKQorCQkJaWYgKHB1dF91c2VyKDAsIChjaGFyIF9fdXNlciAqKShhcmd1bWVudCArIGkpKSkKKwkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJcmV0dXJuIDA7CisKKwljYXNlIENEUk9NX0dFVF9DQVBBQklMSVRZOiB7CisJCXN0cnVjdCBnZW5kaXNrICpnZCA9IGluZm8tPmdkOworCQlpZiAoZ2QtPmZsYWdzICYgR0VOSERfRkxfQ0QpCisJCQlyZXR1cm4gMDsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZGVmYXVsdDoKKwkJLypwcmludGsoS0VSTl9BTEVSVCAiaW9jdGwgJTA4eCBub3Qgc3VwcG9ydGVkIGJ5IFhlbiBibGtkZXZcbiIsCisJCSAgY29tbWFuZCk7Ki8KKwkJcmV0dXJuIC1FSU5WQUw7IC8qIHNhbWUgcmV0dXJuIGFzIG5hdGl2ZSBMaW51eCAqLworCX0KKworCXJldHVybiAwOworfQorCiAvKgogICogYmxraWZfcXVldWVfcmVxdWVzdAogICoKQEAgLTMyNCw2ICszNTksOSBAQAogCS8qIE1ha2Ugc3VyZSBidWZmZXIgYWRkcmVzc2VzIGFyZSBzZWN0b3ItYWxpZ25lZC4gKi8KIAlibGtfcXVldWVfZG1hX2FsaWdubWVudChycSwgNTExKTsKIAorCS8qIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgYm91bmNlIGJ1ZmZlcnMuICovCisJYmxrX3F1ZXVlX2JvdW5jZV9saW1pdChycSwgQkxLX0JPVU5DRV9BTlkpOworCiAJZ2QtPnF1ZXVlID0gcnE7CiAKIAlyZXR1cm4gMDsKQEAgLTU0Niw3ICs1ODQsNyBAQAogCiAJaW5mby0+cmluZ19yZWYgPSBHUkFOVF9JTlZBTElEX1JFRjsKIAotCXNyaW5nID0gKHN0cnVjdCBibGtpZl9zcmluZyAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKKwlzcmluZyA9IChzdHJ1Y3QgYmxraWZfc3JpbmcgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX05PSU8gfCBfX0dGUF9ISUdIKTsKIAlpZiAoIXNyaW5nKSB7CiAJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCAtRU5PTUVNLCAiYWxsb2NhdGluZyBzaGFyZWQgcmluZyIpOwogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTcwMyw3ICs3NDEsOCBAQAogCWludCBqOwogCiAJLyogU3RhZ2UgMTogTWFrZSBhIHNhZmUgY29weSBvZiB0aGUgc2hhZG93IHN0YXRlLiAqLwotCWNvcHkgPSBrbWFsbG9jKHNpemVvZihpbmZvLT5zaGFkb3cpLCBHRlBfS0VSTkVMKTsKKwljb3B5ID0ga21hbGxvYyhzaXplb2YoaW5mby0+c2hhZG93KSwKKwkJICAgICAgIEdGUF9OT0lPIHwgX19HRlBfUkVQRUFUIHwgX19HRlBfSElHSCk7CiAJaWYgKCFjb3B5KQogCQlyZXR1cm4gLUVOT01FTTsKIAltZW1jcHkoY29weSwgaW5mby0+c2hhZG93LCBzaXplb2YoaW5mby0+c2hhZG93KSk7CkBAIC05NTksNyArOTk4LDcgQEAKIAkJc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiA9IGluZm8tPnhiZGV2OwogCQllbnVtIHhlbmJ1c19zdGF0ZSBzdGF0ZSA9IHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShkZXYtPm90aGVyZW5kKTsKIAotCQlpZiAoc3RhdGUgPT0gWGVuYnVzU3RhdGVDbG9zaW5nKQorCQlpZiAoc3RhdGUgPT0gWGVuYnVzU3RhdGVDbG9zaW5nICYmIGluZm8tPmlzX3JlYWR5KQogCQkJYmxrZnJvbnRfY2xvc2luZyhkZXYpOwogCX0KIAlyZXR1cm4gMDsKQEAgLTk3MSw2ICsxMDEwLDcgQEAKIAkub3BlbiA9IGJsa2lmX29wZW4sCiAJLnJlbGVhc2UgPSBibGtpZl9yZWxlYXNlLAogCS5nZXRnZW8gPSBibGtpZl9nZXRnZW8sCisJLmlvY3RsID0gYmxraWZfaW9jdGwsCiB9OwogCiAKQEAgLTEwMDYsNyArMTA0Niw3IEBACiBtb2R1bGVfaW5pdCh4bGJsa19pbml0KTsKIAogCi1zdGF0aWMgdm9pZCB4bGJsa19leGl0KHZvaWQpCitzdGF0aWMgdm9pZCBfX2V4aXQgeGxibGtfZXhpdCh2b2lkKQogewogCXJldHVybiB4ZW5idXNfdW5yZWdpc3Rlcl9kcml2ZXIoJmJsa2Zyb250KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2JmdXNiLmMgYi9kcml2ZXJzL2JsdWV0b290aC9iZnVzYi5jCmluZGV4IGI5OTA4MDUuLjBjMjExYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2JmdXNiLmMKKysrIGIvZHJpdmVycy9ibHVldG9vdGgvYmZ1c2IuYwpAQCAtNTY2LDcgKzU2Niw4IEBACiAJcmV0dXJuIC1FTk9JT0NUTENNRDsKIH0KIAotc3RhdGljIGludCBiZnVzYl9sb2FkX2Zpcm13YXJlKHN0cnVjdCBiZnVzYl9kYXRhICpkYXRhLCB1bnNpZ25lZCBjaGFyICpmaXJtd2FyZSwgaW50IGNvdW50KQorc3RhdGljIGludCBiZnVzYl9sb2FkX2Zpcm13YXJlKHN0cnVjdCBiZnVzYl9kYXRhICpkYXRhLAorCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZpcm13YXJlLCBpbnQgY291bnQpCiB7CiAJdW5zaWduZWQgY2hhciAqYnVmOwogCWludCBlcnIsIHBpcGUsIGxlbiwgc2l6ZSwgc2VudCA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9idDNjX2NzLmMgYi9kcml2ZXJzL2JsdWV0b290aC9idDNjX2NzLmMKaW5kZXggNzcwM2Q2ZS4uNTkzYjdjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYnQzY19jcy5jCisrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2J0M2NfY3MuYwpAQCAtNDcwLDcgKzQ3MCw4IEBACiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT0gQ2FyZCBzZXJ2aWNlcyBIQ0kgaW50ZXJhY3Rpb24gPT09PT09PT09PT09PT09PT09PT09PT09ICovCiAKIAotc3RhdGljIGludCBidDNjX2xvYWRfZmlybXdhcmUoYnQzY19pbmZvX3QgKmluZm8sIHVuc2lnbmVkIGNoYXIgKmZpcm13YXJlLCBpbnQgY291bnQpCitzdGF0aWMgaW50IGJ0M2NfbG9hZF9maXJtd2FyZShidDNjX2luZm9fdCAqaW5mbywgY29uc3QgdW5zaWduZWQgY2hhciAqZmlybXdhcmUsCisJCQkgICAgICBpbnQgY291bnQpCiB7CiAJY2hhciAqcHRyID0gKGNoYXIgKikgZmlybXdhcmU7CiAJY2hhciBiWzldOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvaGNpX3ZoY2kuYyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2hjaV92aGNpLmMKaW5kZXggMDYzODczMC4uZDk3NzAwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvaGNpX3ZoY2kuYworKysgYi9kcml2ZXJzL2JsdWV0b290aC9oY2lfdmhjaS5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgpAQCAtMjYzLDkgKzI2NCwxMSBAQAogCXNrYl9xdWV1ZV9oZWFkX2luaXQoJmRhdGEtPnJlYWRxKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkYXRhLT5yZWFkX3dhaXQpOwogCisJbG9ja19rZXJuZWwoKTsKIAloZGV2ID0gaGNpX2FsbG9jX2RldigpOwogCWlmICghaGRldikgewogCQlrZnJlZShkYXRhKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKQEAgLTI4NiwxMCArMjg5LDEyIEBACiAJCUJUX0VSUigiQ2FuJ3QgcmVnaXN0ZXIgSENJIGRldmljZSIpOwogCQlrZnJlZShkYXRhKTsKIAkJaGNpX2ZyZWVfZGV2KGhkZXYpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gZGF0YTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7CiB9CkBAIC0zMTMsMTggKzMxOCwyMSBAQAogc3RhdGljIGludCB2aGNpX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgb24pCiB7CiAJc3RydWN0IHZoY2lfZGF0YSAqZGF0YSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQlpbnQgZXJyOworCWludCBlcnIgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAllcnIgPSBmYXN5bmNfaGVscGVyKGZkLCBmaWxlLCBvbiwgJmRhdGEtPmZhc3luYyk7CiAJaWYgKGVyciA8IDApCi0JCXJldHVybiBlcnI7CisJCWdvdG8gb3V0OwogCiAJaWYgKG9uKQogCQlkYXRhLT5mbGFncyB8PSBWSENJX0ZBU1lOQzsKIAllbHNlCiAJCWRhdGEtPmZsYWdzICY9IH5WSENJX0ZBU1lOQzsKIAotCXJldHVybiAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB2aGNpX2ZvcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMgYi9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMKaW5kZXggNjlmMjZlYi4uYTVkYTM1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jZHJvbS9jZHJvbS5jCisrKyBiL2RyaXZlcnMvY2Ryb20vY2Ryb20uYwpAQCAtNDYxLDM3ICs0NjEsMjcgQEAKIAkJCSAgc3RydWN0IG1lZGlhX2V2ZW50X2Rlc2MgKm1lZCkKIHsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwotCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlcjsKLQlzdHJ1Y3QgZXZlbnRfaGVhZGVyICplaDsKLQlpbnQgcmV0ID0gMTsKKwl1bnNpZ25lZCBjaGFyIGJ1ZmZlcls4XTsKKwlzdHJ1Y3QgZXZlbnRfaGVhZGVyICplaCA9IChzdHJ1Y3QgZXZlbnRfaGVhZGVyICopIGJ1ZmZlcjsKIAotCWJ1ZmZlciA9IGttYWxsb2MoOCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZWggPSAoc3RydWN0IGV2ZW50X2hlYWRlciAqKWJ1ZmZlcjsKLQotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDgsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAljZ2MuY21kWzBdID0gR1BDTURfR0VUX0VWRU5UX1NUQVRVU19OT1RJRklDQVRJT047CiAJY2djLmNtZFsxXSA9IDE7CQkvKiBJTU1FRCAqLwogCWNnYy5jbWRbNF0gPSAxIDw8IDQ7CS8qIG1lZGlhIGV2ZW50ICovCi0JY2djLmNtZFs4XSA9IDg7CisJY2djLmNtZFs4XSA9IHNpemVvZihidWZmZXIpOwogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoY2RpLT5vcHMtPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gMTsKIAogCWlmIChiZTE2X3RvX2NwdShlaC0+ZGF0YV9sZW4pIDwgc2l6ZW9mKCptZWQpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIDE7CiAKIAlpZiAoZWgtPm5lYSB8fCBlaC0+bm90aWZpY2F0aW9uX2NsYXNzICE9IDB4NCkKLQkJZ290byBlcnI7CisJCXJldHVybiAxOwogCi0JbWVtY3B5KG1lZCwgYnVmZmVyICsgc2l6ZW9mKCplaCksIHNpemVvZigqbWVkKSk7Ci0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisJbWVtY3B5KG1lZCwgJmJ1ZmZlcltzaXplb2YoKmVoKV0sIHNpemVvZigqbWVkKSk7CisJcmV0dXJuIDA7CiB9CiAKIC8qCkBAIC01MDEsODIgKzQ5MSw2OCBAQAogc3RhdGljIGludCBjZHJvbV9tcndfcHJvYmVfcGMoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKLQljaGFyICpidWZmZXI7Ci0JaW50IHJldCA9IDE7CisJY2hhciBidWZmZXJbMTZdOwogCi0JYnVmZmVyID0ga21hbGxvYygxNiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgMTYsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAogCWNnYy50aW1lb3V0ID0gSFo7CiAJY2djLnF1aWV0ID0gMTsKIAogCWlmICghY2Ryb21fbW9kZV9zZW5zZShjZGksICZjZ2MsIE1SV19NT0RFX1BDLCAwKSkgewogCQljZGktPm1yd19tb2RlX3BhZ2UgPSBNUldfTU9ERV9QQzsKLQkJcmV0ID0gMDsKKwkJcmV0dXJuIDA7CiAJfSBlbHNlIGlmICghY2Ryb21fbW9kZV9zZW5zZShjZGksICZjZ2MsIE1SV19NT0RFX1BDX1BSRTEsIDApKSB7CiAJCWNkaS0+bXJ3X21vZGVfcGFnZSA9IE1SV19NT0RFX1BDX1BSRTE7Ci0JCXJldCA9IDA7CisJCXJldHVybiAwOwogCX0KLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMTsKIH0KIAogc3RhdGljIGludCBjZHJvbV9pc19tcncoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGksIGludCAqd3JpdGUpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKIAlzdHJ1Y3QgbXJ3X2ZlYXR1cmVfZGVzYyAqbWZkOwotCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlcjsKKwl1bnNpZ25lZCBjaGFyIGJ1ZmZlclsxNl07CiAJaW50IHJldDsKIAogCSp3cml0ZSA9IDA7Ci0JYnVmZmVyID0ga21hbGxvYygxNiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwogCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgMTYsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAogCWNnYy5jbWRbMF0gPSBHUENNRF9HRVRfQ09ORklHVVJBVElPTjsKIAljZ2MuY21kWzNdID0gQ0RGX01SVzsKLQljZ2MuY21kWzhdID0gMTY7CisJY2djLmNtZFs4XSA9IHNpemVvZihidWZmZXIpOwogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoKHJldCA9IGNkaS0+b3BzLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAltZmQgPSAoc3RydWN0IG1yd19mZWF0dXJlX2Rlc2MgKikmYnVmZmVyW3NpemVvZihzdHJ1Y3QgZmVhdHVyZV9oZWFkZXIpXTsKLQlpZiAoYmUxNl90b19jcHUobWZkLT5mZWF0dXJlX2NvZGUpICE9IENERl9NUlcpIHsKLQkJcmV0ID0gMTsKLQkJZ290byBlcnI7Ci0JfQorCWlmIChiZTE2X3RvX2NwdShtZmQtPmZlYXR1cmVfY29kZSkgIT0gQ0RGX01SVykKKwkJcmV0dXJuIDE7CiAJKndyaXRlID0gbWZkLT53cml0ZTsKIAogCWlmICgocmV0ID0gY2Ryb21fbXJ3X3Byb2JlX3BjKGNkaSkpKSB7CiAJCSp3cml0ZSA9IDA7CisJCXJldHVybiByZXQ7CiAJfQotZXJyOgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuIHJldDsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGNkcm9tX21yd19iZ2Zvcm1hdChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwgaW50IGNvbnQpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKLQl1bnNpZ25lZCBjaGFyICpidWZmZXI7CisJdW5zaWduZWQgY2hhciBidWZmZXJbMTJdOwogCWludCByZXQ7CiAKIAlwcmludGsoS0VSTl9JTkZPICJjZHJvbTogJXNzdGFydGluZyBmb3JtYXRcbiIsIGNvbnQgPyAiUmUiIDogIiIpOwogCi0JYnVmZmVyID0ga21hbGxvYygxMiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCiAJLyoKIAkgKiBGbXREYXRhIGJpdCBzZXQgKGJpdCA0KSwgZm9ybWF0IHR5cGUgaXMgMQogCSAqLwotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDEyLCBDR0NfREFUQV9XUklURSk7CisJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIENHQ19EQVRBX1dSSVRFKTsKIAljZ2MuY21kWzBdID0gR1BDTURfRk9STUFUX1VOSVQ7CiAJY2djLmNtZFsxXSA9ICgxIDw8IDQpIHwgMTsKIApAQCAtNjAzLDcgKzU3OSw2IEBACiAJaWYgKHJldCkKIAkJcHJpbnRrKEtFUk5fSU5GTyAiY2Ryb206IGJnZm9ybWF0IGZhaWxlZFxuIik7CiAKLQlrZnJlZShidWZmZXIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTY2MywxNyArNjM4LDE2IEBACiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKIAlzdHJ1Y3QgbW9kZV9wYWdlX2hlYWRlciAqbXBoOwotCWNoYXIgKmJ1ZmZlcjsKKwljaGFyIGJ1ZmZlclsxNl07CiAJaW50IHJldCwgb2Zmc2V0LCBzaXplOwogCi0JYnVmZmVyID0ga21hbGxvYygxNiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDE2LCBDR0NfREFUQV9SRUFEKTsKKwljZ2MuYnVmZmVyID0gYnVmZmVyOworCWNnYy5idWZsZW4gPSBzaXplb2YoYnVmZmVyKTsKIAogCWlmICgocmV0ID0gY2Ryb21fbW9kZV9zZW5zZShjZGksICZjZ2MsIGNkaS0+bXJ3X21vZGVfcGFnZSwgMCkpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCW1waCA9IChzdHJ1Y3QgbW9kZV9wYWdlX2hlYWRlciAqKSBidWZmZXI7CiAJb2Zmc2V0ID0gYmUxNl90b19jcHUobXBoLT5kZXNjX2xlbmd0aCk7CkBAIC02ODMsNzAgKzY1Nyw1NSBAQAogCWNnYy5idWZsZW4gPSBzaXplOwogCiAJaWYgKChyZXQgPSBjZHJvbV9tb2RlX3NlbGVjdChjZGksICZjZ2MpKSkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAlwcmludGsoS0VSTl9JTkZPICJjZHJvbTogJXM6IG1ydyBhZGRyZXNzIHNwYWNlICVzIHNlbGVjdGVkXG4iLCBjZGktPm5hbWUsIG1yd19hZGRyZXNzX3NwYWNlW3NwYWNlXSk7Ci0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgY2Ryb21fZ2V0X3JhbmRvbV93cml0YWJsZShzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwKIAkJCSAgICAgIHN0cnVjdCByd3J0X2ZlYXR1cmVfZGVzYyAqcmZkKQogewogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7Ci0JY2hhciAqYnVmZmVyOworCWNoYXIgYnVmZmVyWzI0XTsKIAlpbnQgcmV0OwogCi0JYnVmZmVyID0ga21hbGxvYygyNCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgMjQsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAogCWNnYy5jbWRbMF0gPSBHUENNRF9HRVRfQ09ORklHVVJBVElPTjsJLyogb2Z0ZW4gMHg0NiAqLwogCWNnYy5jbWRbM10gPSBDREZfUldSVDsJCQkvKiBvZnRlbiAweDAwMjAgKi8KLQljZ2MuY21kWzhdID0gMjQ7CQkgICAgICAgIC8qIG9mdGVuIDB4MTggKi8KKwljZ2MuY21kWzhdID0gc2l6ZW9mKGJ1ZmZlcik7CQkvKiBvZnRlbiAweDE4ICovCiAJY2djLnF1aWV0ID0gMTsKIAogCWlmICgocmV0ID0gY2RpLT5vcHMtPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCW1lbWNweShyZmQsICZidWZmZXJbc2l6ZW9mKHN0cnVjdCBmZWF0dXJlX2hlYWRlcildLCBzaXplb2YgKCpyZmQpKTsKLQlyZXQgPSAwOwotZXJyOgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBjZHJvbV9oYXNfZGVmZWN0X21ndChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSkKIHsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwotCWNoYXIgKmJ1ZmZlcjsKKwljaGFyIGJ1ZmZlclsxNl07CiAJX19iZTE2ICpmZWF0dXJlX2NvZGU7CiAJaW50IHJldDsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMTYsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDE2LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgQ0dDX0RBVEFfUkVBRCk7CiAKIAljZ2MuY21kWzBdID0gR1BDTURfR0VUX0NPTkZJR1VSQVRJT047CiAJY2djLmNtZFszXSA9IENERl9IV0RNOwotCWNnYy5jbWRbOF0gPSAxNjsKKwljZ2MuY21kWzhdID0gc2l6ZW9mKGJ1ZmZlcik7CiAJY2djLnF1aWV0ID0gMTsKIAogCWlmICgocmV0ID0gY2RpLT5vcHMtPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCWZlYXR1cmVfY29kZSA9IChfX2JlMTYgKikgJmJ1ZmZlcltzaXplb2Yoc3RydWN0IGZlYXR1cmVfaGVhZGVyKV07CiAJaWYgKGJlMTZfdG9fY3B1KCpmZWF0dXJlX2NvZGUpID09IENERl9IV0RNKQotCQlyZXQgPSAwOwotZXJyOgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuIHJldDsKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gMTsKIH0KIAogCkBAIC04MzcsMTQgKzc5NiwxMCBAQAogc3RhdGljIGludCBtb19vcGVuX3dyaXRlKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpKQogewogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7Ci0JY2hhciAqYnVmZmVyOworCWNoYXIgYnVmZmVyWzI1NV07CiAJaW50IHJldDsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMjU1LCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZmZlcikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCA0LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgJmJ1ZmZlciwgNCwgQ0dDX0RBVEFfUkVBRCk7CiAJY2djLnF1aWV0ID0gMTsKIAogCS8qCkBAIC04NjEsMTUgKzgxNiwxMCBAQAogCX0KIAogCS8qIGRyaXZlIGdhdmUgdXMgbm8gaW5mbywgbGV0IHRoZSB1c2VyIGdvIGFoZWFkICovCi0JaWYgKHJldCkgewotCQlyZXQgPSAwOwotCQlnb3RvIGVycjsKLQl9CisJaWYgKHJldCkKKwkJcmV0dXJuIDA7CiAKLQlyZXQgPSBidWZmZXJbM10gJiAweDgwOwotZXJyOgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gYnVmZmVyWzNdICYgMHg4MDsKIH0KIAogc3RhdGljIGludCBjZHJvbV9yYW1fb3Blbl93cml0ZShzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSkKQEAgLTg5MiwxOSArODQyLDE1IEBACiBzdGF0aWMgdm9pZCBjZHJvbV9tbWMzX3Byb2ZpbGUoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKLQljaGFyICpidWZmZXI7CisJY2hhciBidWZmZXJbMzJdOwogCWludCByZXQsIG1tYzNfcHJvZmlsZTsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMzIsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm47Ci0KLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCAzMiwgQ0dDX0RBVEFfUkVBRCk7CisJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIENHQ19EQVRBX1JFQUQpOwogCiAJY2djLmNtZFswXSA9IEdQQ01EX0dFVF9DT05GSUdVUkFUSU9OOwogCWNnYy5jbWRbMV0gPSAwOwogCWNnYy5jbWRbMl0gPSBjZ2MuY21kWzNdID0gMDsJCS8qIFN0YXJ0aW5nIEZlYXR1cmUgTnVtYmVyICovCi0JY2djLmNtZFs4XSA9IDMyOwkJICAgICAgICAvKiBBbGxvY2F0aW9uIExlbmd0aCAqLworCWNnYy5jbWRbOF0gPSBzaXplb2YoYnVmZmVyKTsJCS8qIEFsbG9jYXRpb24gTGVuZ3RoICovCiAJY2djLnF1aWV0ID0gMTsKIAogCWlmICgocmV0ID0gY2RpLT5vcHMtPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQpAQCAtOTEzLDcgKzg1OSw2IEBACiAJCW1tYzNfcHJvZmlsZSA9IChidWZmZXJbNl0gPDwgOCkgfCBidWZmZXJbN107CiAKIAljZGktPm1tYzNfcHJvZmlsZSA9IG1tYzNfcHJvZmlsZTsKLQlrZnJlZShidWZmZXIpOwogfQogCiBzdGF0aWMgaW50IGNkcm9tX2lzX2R2ZF9ydyhzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSkKQEAgLTE2MjgsMTUgKzE1NzMsMTIgQEAKIHN0YXRpYyBpbnQgZHZkX2RvX2F1dGgoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGksIGR2ZF9hdXRoaW5mbyAqYWkpCiB7CiAJaW50IHJldDsKLQl1X2NoYXIgKmJ1ZjsKKwl1X2NoYXIgYnVmWzIwXTsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwogCXN0cnVjdCBjZHJvbV9kZXZpY2Vfb3BzICpjZG8gPSBjZGktPm9wczsKLQlycGNfc3RhdGVfdCAqcnBjX3N0YXRlOworCXJwY19zdGF0ZV90IHJwY19zdGF0ZTsKIAotCWJ1ZiA9IGt6YWxsb2MoMjAsIEdGUF9LRVJORUwpOwotCWlmICghYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQorCW1lbXNldChidWYsIDAsIHNpemVvZihidWYpKTsKIAlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmLCAwLCBDR0NfREFUQV9SRUFEKTsKIAogCXN3aXRjaCAoYWktPnR5cGUpIHsKQEAgLTE2NDcsNyArMTU4OSw3IEBACiAJCXNldHVwX3JlcG9ydF9rZXkoJmNnYywgYWktPmxzYS5hZ2lkLCAwKTsKIAogCQlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAKIAkJYWktPmxzYS5hZ2lkID0gYnVmWzddID4+IDY7CiAJCS8qIFJldHVybmluZyBkYXRhLCBsZXQgaG9zdCBjaGFuZ2Ugc3RhdGUgKi8KQEAgLTE2NTgsNyArMTYwMCw3IEBACiAJCXNldHVwX3JlcG9ydF9rZXkoJmNnYywgYWktPmxzay5hZ2lkLCAyKTsKIAogCQlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAKIAkJY29weV9rZXkoYWktPmxzay5rZXksICZidWZbNF0pOwogCQkvKiBSZXR1cm5pbmcgZGF0YSwgbGV0IGhvc3QgY2hhbmdlIHN0YXRlICovCkBAIC0xNjY5LDcgKzE2MTEsNyBAQAogCQlzZXR1cF9yZXBvcnRfa2V5KCZjZ2MsIGFpLT5sc2MuYWdpZCwgMSk7CiAKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCiAJCWNvcHlfY2hhbChhaS0+bHNjLmNoYWwsICZidWZbNF0pOwogCQkvKiBSZXR1cm5pbmcgZGF0YSwgbGV0IGhvc3QgY2hhbmdlIHN0YXRlICovCkBAIC0xNjg2LDcgKzE2MjgsNyBAQAogCQljZ2MuY21kWzJdID0gYWktPmxzdGsubGJhID4+IDI0OwogCiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAogCQlhaS0+bHN0ay5jcG0gPSAoYnVmWzRdID4+IDcpICYgMTsKIAkJYWktPmxzdGsuY3Bfc2VjID0gKGJ1Zls0XSA+PiA2KSAmIDE7CkBAIC0xNzAwLDcgKzE2NDIsNyBAQAogCQlzZXR1cF9yZXBvcnRfa2V5KCZjZ2MsIGFpLT5sc2FzZi5hZ2lkLCA1KTsKIAkJCiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAogCQlhaS0+bHNhc2YuYXNmID0gYnVmWzddICYgMTsKIAkJYnJlYWs7CkBAIC0xNzEzLDcgKzE2NTUsNyBAQAogCQljb3B5X2NoYWwoJmJ1Zls0XSwgYWktPmhzYy5jaGFsKTsKIAogCQlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAKIAkJYWktPnR5cGUgPSBEVkRfTFVfU0VORF9LRVkxOwogCQlicmVhazsKQEAgLTE3MjYsNyArMTY2OCw3IEBACiAKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKSB7CiAJCQlhaS0+dHlwZSA9IERWRF9BVVRIX0ZBSUxVUkU7Ci0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAJCX0KIAkJYWktPnR5cGUgPSBEVkRfQVVUSF9FU1RBQkxJU0hFRDsKIAkJYnJlYWs7CkBAIC0xNzM3LDIzICsxNjc5LDI0IEBACiAJCWNkaW5mbyhDRF9EVkQsICJlbnRlcmluZyBEVkRfSU5WQUxJREFURV9BR0lEXG4iKTsgCiAJCXNldHVwX3JlcG9ydF9rZXkoJmNnYywgYWktPmxzYS5hZ2lkLCAweDNmKTsKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCQlicmVhazsKIAogCS8qIEdldCByZWdpb24gc2V0dGluZ3MgKi8KIAljYXNlIERWRF9MVV9TRU5EX1JQQ19TVEFURToKIAkJY2RpbmZvKENEX0RWRCwgImVudGVyaW5nIERWRF9MVV9TRU5EX1JQQ19TVEFURVxuIik7CiAJCXNldHVwX3JlcG9ydF9rZXkoJmNnYywgMCwgOCk7CisJCW1lbXNldCgmcnBjX3N0YXRlLCAwLCBzaXplb2YocnBjX3N0YXRlX3QpKTsKKwkJY2djLmJ1ZmZlciA9IChjaGFyICopICZycGNfc3RhdGU7CiAKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCi0JCXJwY19zdGF0ZSA9IChycGNfc3RhdGVfdCAqKWJ1ZjsKLQkJYWktPmxycGNzLnR5cGUgPSBycGNfc3RhdGUtPnR5cGVfY29kZTsKLQkJYWktPmxycGNzLnZyYSA9IHJwY19zdGF0ZS0+dnJhOwotCQlhaS0+bHJwY3MudWNjYSA9IHJwY19zdGF0ZS0+dWNjYTsKLQkJYWktPmxycGNzLnJlZ2lvbl9tYXNrID0gcnBjX3N0YXRlLT5yZWdpb25fbWFzazsKLQkJYWktPmxycGNzLnJwY19zY2hlbWUgPSBycGNfc3RhdGUtPnJwY19zY2hlbWU7CisJCWFpLT5scnBjcy50eXBlID0gcnBjX3N0YXRlLnR5cGVfY29kZTsKKwkJYWktPmxycGNzLnZyYSA9IHJwY19zdGF0ZS52cmE7CisJCWFpLT5scnBjcy51Y2NhID0gcnBjX3N0YXRlLnVjY2E7CisJCWFpLT5scnBjcy5yZWdpb25fbWFzayA9IHJwY19zdGF0ZS5yZWdpb25fbWFzazsKKwkJYWktPmxycGNzLnJwY19zY2hlbWUgPSBycGNfc3RhdGUucnBjX3NjaGVtZTsKIAkJYnJlYWs7CiAKIAkvKiBTZXQgcmVnaW9uIHNldHRpbmdzICovCkBAIC0xNzY0LDIzICsxNzA3LDIwIEBACiAJCWJ1Zls0XSA9IGFpLT5ocnBjcy5wZHJjOwogCiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgogCQljZGluZm8oQ0RfV0FSTklORywgIkludmFsaWQgRFZEIGtleSBpb2N0bCAoJWQpXG4iLCBhaS0+dHlwZSk7Ci0JCXJldCA9IC1FTk9UVFk7Ci0JCWdvdG8gZXJyOworCQlyZXR1cm4gLUVOT1RUWTsKIAl9Ci0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWYpOwotCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBkdmRfcmVhZF9waHlzaWNhbChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwgZHZkX3N0cnVjdCAqcykKIHsKLQl1bnNpZ25lZCBjaGFyICpidWYsICpiYXNlOworCXVuc2lnbmVkIGNoYXIgYnVmWzIxXSwgKmJhc2U7CiAJc3RydWN0IGR2ZF9sYXllciAqbGF5ZXI7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKIAlzdHJ1Y3QgY2Ryb21fZGV2aWNlX29wcyAqY2RvID0gY2RpLT5vcHM7CkBAIC0xNzg5LDExICsxNzI5LDcgQEAKIAlpZiAobGF5ZXJfbnVtID49IERWRF9MQVlFUlMpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JYnVmID0ga21hbGxvYygyMSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZiwgMjEsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWYsIHNpemVvZihidWYpLCBDR0NfREFUQV9SRUFEKTsKIAljZ2MuY21kWzBdID0gR1BDTURfUkVBRF9EVkRfU1RSVUNUVVJFOwogCWNnYy5jbWRbNl0gPSBsYXllcl9udW07CiAJY2djLmNtZFs3XSA9IHMtPnR5cGU7CkBAIC0xODA1LDcgKzE3NDEsNyBAQAogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJYmFzZSA9ICZidWZbNF07CiAJbGF5ZXIgPSAmcy0+cGh5c2ljYWwubGF5ZXJbbGF5ZXJfbnVtXTsKQEAgLTE4MjksMjQgKzE3NjUsMTcgQEAKIAlsYXllci0+ZW5kX3NlY3Rvcl9sMCA9IGJhc2VbMTNdIDw8IDE2IHwgYmFzZVsxNF0gPDwgOCB8IGJhc2VbMTVdOwogCWxheWVyLT5iY2EgPSBiYXNlWzE2XSA+PiA3OwogCi0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWYpOwotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZHZkX3JlYWRfY29weXJpZ2h0KHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLCBkdmRfc3RydWN0ICpzKQogewogCWludCByZXQ7Ci0JdV9jaGFyICpidWY7CisJdV9jaGFyIGJ1Zls4XTsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwogCXN0cnVjdCBjZHJvbV9kZXZpY2Vfb3BzICpjZG8gPSBjZGktPm9wczsKIAotCWJ1ZiA9IGttYWxsb2MoOCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZiwgOCwgQ0dDX0RBVEFfUkVBRCk7CisJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIENHQ19EQVRBX1JFQUQpOwogCWNnYy5jbWRbMF0gPSBHUENNRF9SRUFEX0RWRF9TVFJVQ1RVUkU7CiAJY2djLmNtZFs2XSA9IHMtPmNvcHlyaWdodC5sYXllcl9udW07CiAJY2djLmNtZFs3XSA9IHMtPnR5cGU7CkBAIC0xODU0LDE1ICsxNzgzLDEyIEBACiAJY2djLmNtZFs5XSA9IGNnYy5idWZsZW4gJiAweGZmOwogCiAJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCXMtPmNvcHlyaWdodC5jcHN0ID0gYnVmWzRdOwogCXMtPmNvcHlyaWdodC5ybWkgPSBidWZbNV07CiAKLQlyZXQgPSAwOwotZXJyOgotCWtmcmVlKGJ1Zik7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBkdmRfcmVhZF9kaXNja2V5KHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLCBkdmRfc3RydWN0ICpzKQpAQCAtMTg5NCwzMyArMTgyMCwyNiBAQAogc3RhdGljIGludCBkdmRfcmVhZF9iY2Eoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGksIGR2ZF9zdHJ1Y3QgKnMpCiB7CiAJaW50IHJldDsKLQl1X2NoYXIgKmJ1ZjsKKwl1X2NoYXIgYnVmWzQgKyAxODhdOwogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7CiAJc3RydWN0IGNkcm9tX2RldmljZV9vcHMgKmNkbyA9IGNkaS0+b3BzOwogCi0JYnVmID0ga21hbGxvYyg0ICsgMTg4LCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmLCA0ICsgMTg4LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmLCBzaXplb2YoYnVmKSwgQ0dDX0RBVEFfUkVBRCk7CiAJY2djLmNtZFswXSA9IEdQQ01EX1JFQURfRFZEX1NUUlVDVFVSRTsKIAljZ2MuY21kWzddID0gcy0+dHlwZTsKIAljZ2MuY21kWzldID0gY2djLmJ1ZmxlbiAmIDB4ZmY7CiAKIAlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJcy0+YmNhLmxlbiA9IGJ1ZlswXSA8PCA4IHwgYnVmWzFdOwogCWlmIChzLT5iY2EubGVuIDwgMTIgfHwgcy0+YmNhLmxlbiA+IDE4OCkgewogCQljZGluZm8oQ0RfV0FSTklORywgIlJlY2VpdmVkIGludmFsaWQgQkNBIGxlbmd0aCAoJWQpXG4iLCBzLT5iY2EubGVuKTsKLQkJcmV0ID0gLUVJTzsKLQkJZ290byBlcnI7CisJCXJldHVybiAtRUlPOwogCX0KIAltZW1jcHkocy0+YmNhLnZhbHVlLCAmYnVmWzRdLCBzLT5iY2EubGVuKTsKLQlyZXQgPSAwOwotZXJyOgotCWtmcmVlKGJ1Zik7Ci0JcmV0dXJuIHJldDsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGR2ZF9yZWFkX21hbnVmYWN0KHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLCBkdmRfc3RydWN0ICpzKQpAQCAtMjAyMCwxMyArMTkzOSw5IEBACiB7CiAJc3RydWN0IGNkcm9tX2RldmljZV9vcHMgKmNkbyA9IGNkaS0+b3BzOwogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7Ci0JY2hhciAqYnVmZmVyOworCWNoYXIgYnVmZmVyWzMyXTsKIAlpbnQgcmV0OwogCi0JYnVmZmVyID0ga21hbGxvYygzMiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCiAJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgMTYsIENHQ19EQVRBX1JFQUQpOwogCWNnYy5jbWRbMF0gPSBHUENNRF9SRUFEX1NVQkNIQU5ORUw7CiAJY2djLmNtZFsxXSA9IDI7ICAgICAvKiBNU0YgYWRkcmVzc2luZyAqLwpAQCAtMjAzNSw3ICsxOTUwLDcgQEAKIAljZ2MuY21kWzhdID0gMTY7CiAKIAlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJc3ViY2hubC0+Y2RzY19hdWRpb3N0YXR1cyA9IGNnYy5idWZmZXJbMV07CiAJc3ViY2hubC0+Y2RzY19mb3JtYXQgPSBDRFJPTV9NU0Y7CkBAIC0yMDUwLDEwICsxOTY1LDcgQEAKIAlzdWJjaG5sLT5jZHNjX2Fic2FkZHIubXNmLnNlY29uZCA9IGNnYy5idWZmZXJbMTBdOwogCXN1YmNobmwtPmNkc2NfYWJzYWRkci5tc2YuZnJhbWUgPSBjZ2MuYnVmZmVyWzExXTsKIAotCXJldCA9IDA7Ci1lcnI6Ci0Ja2ZyZWUoYnVmZmVyKTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL01ha2VmaWxlIGIvZHJpdmVycy9jaGFyL01ha2VmaWxlCmluZGV4IDRjMWM1ODQuLjgxNjMwYTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2NoYXIvTWFrZWZpbGUKQEAgLTEwMSw3ICsxMDEsNiBAQAogCiBvYmotJChDT05GSUdfTVdBVkUpCQkrPSBtd2F2ZS8KIG9iai0kKENPTkZJR19BR1ApCQkrPSBhZ3AvCi1vYmotJChDT05GSUdfRFJNKQkJKz0gZHJtLwogb2JqLSQoQ09ORklHX1BDTUNJQSkJCSs9IHBjbWNpYS8KIG9iai0kKENPTkZJR19JUE1JX0hBTkRMRVIpCSs9IGlwbWkvCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvYW1kNjQtYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZDY0LWFncC5jCmluZGV4IDEzNjY1ZGIuLjQ4MWZmZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvYW1kNjQtYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9hbWQ2NC1hZ3AuYwpAQCAtMTYsMjggKzE2LDkgQEAKICNpbmNsdWRlIDxhc20vcGFnZS5oPgkJLyogUEFHRV9TSVpFICovCiAjaW5jbHVkZSA8YXNtL2U4MjAuaD4KICNpbmNsdWRlIDxhc20vazguaD4KKyNpbmNsdWRlIDxhc20vZ2FydC5oPgogI2luY2x1ZGUgImFncC5oIgogCi0vKiBQVEUgYml0cy4gKi8KLSNkZWZpbmUgR1BURV9WQUxJRAkxCi0jZGVmaW5lIEdQVEVfQ09IRVJFTlQJMgotCi0vKiBBcGVydHVyZSBjb250cm9sIHJlZ2lzdGVyIGJpdHMuICovCi0jZGVmaW5lIEdBUlRFTgkJKDE8PDApCi0jZGVmaW5lIERJU0dBUlRDUFUJKDE8PDQpCi0jZGVmaW5lIERJU0dBUlRJTwkoMTw8NSkKLQotLyogR0FSVCBjYWNoZSBjb250cm9sIHJlZ2lzdGVyIGJpdHMuICovCi0jZGVmaW5lIElOVkdBUlQJCSgxPDwwKQotI2RlZmluZSBHQVJUUFRFRVJSCSgxPDwxKQotCi0vKiBLOCBPbi1jcHUgR0FSVCByZWdpc3RlcnMgKi8KLSNkZWZpbmUgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMCTB4OTAKLSNkZWZpbmUgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRQkweDk0Ci0jZGVmaW5lIEFNRDY0X0dBUlRUQUJMRUJBU0UJMHg5OAotI2RlZmluZSBBTUQ2NF9HQVJUQ0FDSEVDVEwJMHg5YwotI2RlZmluZSBBTUQ2NF9HQVJURU4JCSgxPDwwKQotCiAvKiBOVklESUEgSzggcmVnaXN0ZXJzICovCiAjZGVmaW5lIE5WSURJQV9YODZfNjRfMF9BUEJBU0UJCTB4MTAKICNkZWZpbmUgTlZJRElBX1g4Nl82NF8xX0FQQkFTRTEJCTB4NTAKQEAgLTE2NSwyOSArMTQ2LDE4IEBACiAgKiBJbiBhIG11bHRpcHJvY2Vzc29yIHg4Ni02NCBzeXN0ZW0sIHRoaXMgZnVuY3Rpb24gZ2V0cwogICogY2FsbGVkIG9uY2UgZm9yIGVhY2ggQ1BVLgogICovCi1zdGF0aWMgdTY0IGFtZDY0X2NvbmZpZ3VyZSAoc3RydWN0IHBjaV9kZXYgKmhhbW1lciwgdTY0IGdhdHRfdGFibGUpCitzdGF0aWMgdTY0IGFtZDY0X2NvbmZpZ3VyZShzdHJ1Y3QgcGNpX2RldiAqaGFtbWVyLCB1NjQgZ2F0dF90YWJsZSkKIHsKIAl1NjQgYXBlcnR1cmViYXNlOwogCXUzMiB0bXA7Ci0JdTY0IGFkZHIsIGFwZXJfYmFzZTsKKwl1NjQgYXBlcl9iYXNlOwogCiAJLyogQWRkcmVzcyB0byBtYXAgdG8gKi8KLQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKGhhbW1lciwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJnRtcCk7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGhhbW1lciwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJnRtcCk7CiAJYXBlcnR1cmViYXNlID0gdG1wIDw8IDI1OwogCWFwZXJfYmFzZSA9IChhcGVydHVyZWJhc2UgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLKTsKIAotCS8qIGFkZHJlc3Mgb2YgdGhlIG1hcHBpbmdzIHRhYmxlICovCi0JYWRkciA9ICh1NjQpIGdhdHRfdGFibGU7Ci0JYWRkciA+Pj0gMTI7Ci0JdG1wID0gKHUzMikgYWRkcjw8NDsKLQl0bXAgJj0gfjB4ZjsKLQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChoYW1tZXIsIEFNRDY0X0dBUlRUQUJMRUJBU0UsIHRtcCk7Ci0KLQkvKiBFbmFibGUgR0FSVCB0cmFuc2xhdGlvbiBmb3IgdGhpcyBoYW1tZXIuICovCi0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGhhbW1lciwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCAmdG1wKTsKLQl0bXAgfD0gR0FSVEVOOwotCXRtcCAmPSB+KERJU0dBUlRDUFUgfCBESVNHQVJUSU8pOwotCXBjaV93cml0ZV9jb25maWdfZHdvcmQoaGFtbWVyLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsIHRtcCk7CisJZW5hYmxlX2dhcnRfdHJhbnNsYXRpb24oaGFtbWVyLCBnYXR0X3RhYmxlKTsKIAogCXJldHVybiBhcGVyX2Jhc2U7CiB9CkBAIC0yMjYsOSArMTk2LDkgQEAKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9rOF9ub3J0aGJyaWRnZXM7IGkrKykgewogCQlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gazhfbm9ydGhicmlkZ2VzW2ldOwogCQkvKiBkaXNhYmxlIGdhcnQgdHJhbnNsYXRpb24gKi8KLQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJnRtcCk7CisJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJnRtcCk7CiAJCXRtcCAmPSB+QU1ENjRfR0FSVEVOOwotCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgdG1wKTsKKwkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgdG1wKTsKIAl9CiB9CiAKQEAgLTI1OCwyNCArMjI4LDEwIEBACiB9OwogCiAvKiBTb21lIGJhc2ljIHNhbml0eSBjaGVja3MgZm9yIHRoZSBhcGVydHVyZS4gKi8KLXN0YXRpYyBpbnQgX19kZXZpbml0IGFwZXJ0dXJlX3ZhbGlkKHU2NCBhcGVyLCB1MzIgc2l6ZSkKK3N0YXRpYyBpbnQgX19kZXZpbml0IGFncF9hcGVydHVyZV92YWxpZCh1NjQgYXBlciwgdTMyIHNpemUpCiB7Ci0JaWYgKGFwZXIgPT0gMCkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJObyBhcGVydHVyZVxuIik7CisJaWYgKCFhcGVydHVyZV92YWxpZChhcGVyLCBzaXplLCAzMioxMDI0KjEwMjQpKQogCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKHNpemUgPCAzMioxMDI0KjEwMjQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQXBlcnR1cmUgdG9vIHNtYWxsICglZCBNQilcbiIsIHNpemU+PjIwKTsKLQkJcmV0dXJuIDA7Ci0JfQotICAgICAgIGlmICgodTY0KWFwZXIgKyBzaXplID4gMHgxMDAwMDAwMDBVTEwpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQXBlcnR1cmUgb3V0IG9mIGJvdW5kc1xuIik7Ci0JCXJldHVybiAwOwotCX0KLQlpZiAoZTgyMF9hbnlfbWFwcGVkKGFwZXIsIGFwZXIgKyBzaXplLCBFODIwX1JBTSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQXBlcnR1cmUgcG9pbnRpbmcgdG8gUkFNXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQogCiAJLyogUmVxdWVzdCB0aGUgQXBlcnR1cmUuIFRoaXMgY2F0Y2hlcyBjYXNlcyB3aGVuIHNvbWVvbmUgZWxzZQogCSAgIGFscmVhZHkgcHV0IGEgbWFwcGluZyBpbiB0aGVyZSAtIGhhcHBlbnMgd2l0aCBzb21lIHZlcnkgYnJva2VuIEJJT1MKQEAgLTMwOCwxMSArMjY0LDExIEBACiAJdTMyIG5iX29yZGVyLCBuYl9iYXNlOwogCXUxNiBhcHNpemU7CiAKLQlwY2lfcmVhZF9jb25maWdfZHdvcmQobmIsIDB4OTAsICZuYl9vcmRlcik7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKG5iLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsICZuYl9vcmRlcik7CiAJbmJfb3JkZXIgPSAobmJfb3JkZXIgPj4gMSkgJiA3OwotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChuYiwgMHg5NCwgJm5iX2Jhc2UpOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChuYiwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJm5iX2Jhc2UpOwogCW5iX2FwZXIgPSBuYl9iYXNlIDw8IDI1OwotCWlmIChhcGVydHVyZV92YWxpZChuYl9hcGVyLCAoMzIqMTAyNCoxMDI0KTw8bmJfb3JkZXIpKSB7CisJaWYgKGFncF9hcGVydHVyZV92YWxpZChuYl9hcGVyLCAoMzIqMTAyNCoxMDI0KTw8bmJfb3JkZXIpKSB7CiAJCXJldHVybiAwOwogCX0KIApAQCAtMzMxLDEyICsyODcsMjMgQEAKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQoYWdwLCAweDEwLCAmYXBlcl9sb3cpOwogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChhZ3AsIDB4MTQsICZhcGVyX2hpKTsKIAlhcGVyID0gKGFwZXJfbG93ICYgfigoMTw8MjIpLTEpKSB8ICgodTY0KWFwZXJfaGkgPDwgMzIpOworCisJLyoKKwkgKiBPbiBzb21lIHNpY2sgY2hpcHMgQVBTSVpFIGlzIDAuIFRoaXMgbWVhbnMgaXQgd2FudHMgNEcKKwkgKiBzbyBsZXQgZG91YmxlIGNoZWNrIHRoYXQgb3JkZXIsIGFuZCBsZXRzIHRydXN0IHRoZSBBTUQgTkIgc2V0dGluZ3MKKwkgKi8KKwlpZiAob3JkZXIgPj0wICYmIGFwZXIgKyAoMzJVTEw8PCgyMCArIG9yZGVyKSkgPiAweDEwMDAwMDAwMFVMTCkgeworCQlwcmludGsoS0VSTl9JTkZPICJBcGVydHVyZSBzaXplICV1IE1CIGlzIG5vdCByaWdodCwgdXNpbmcgc2V0dGluZ3MgZnJvbSBOQlxuIiwKKwkJCQkgIDMyIDw8IG9yZGVyKTsKKwkJb3JkZXIgPSBuYl9vcmRlcjsKKwl9CisKIAlwcmludGsoS0VSTl9JTkZPIFBGWCAiQXBlcnR1cmUgZnJvbSBBR1AgQCAlTHggc2l6ZSAldSBNQlxuIiwgYXBlciwgMzIgPDwgb3JkZXIpOwotCWlmIChvcmRlciA8IDAgfHwgIWFwZXJ0dXJlX3ZhbGlkKGFwZXIsICgzMioxMDI0KjEwMjQpPDxvcmRlcikpCisJaWYgKG9yZGVyIDwgMCB8fCAhYWdwX2FwZXJ0dXJlX3ZhbGlkKGFwZXIsICgzMioxMDI0KjEwMjQpPDxvcmRlcikpCiAJCXJldHVybiAtMTsKIAotCXBjaV93cml0ZV9jb25maWdfZHdvcmQobmIsIDB4OTAsIG9yZGVyIDw8IDEpOwotCXBjaV93cml0ZV9jb25maWdfZHdvcmQobmIsIDB4OTQsIGFwZXIgPj4gMjUpOworCXBjaV93cml0ZV9jb25maWdfZHdvcmQobmIsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgb3JkZXIgPDwgMSk7CisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChuYiwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgYXBlciA+PiAyNSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvZnJvbnRlbmQuYyBiL2RyaXZlcnMvY2hhci9hZ3AvZnJvbnRlbmQuYwppbmRleCBlNmNiMWFiLi5hOTZmMzE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2Zyb250ZW5kLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9mcm9udGVuZC5jCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSAiYWdwLmgiCkBAIC02NzcsNiArNjc4LDcgQEAKIAlzdHJ1Y3QgYWdwX2NsaWVudCAqY2xpZW50OwogCWludCByYyA9IC1FTlhJTzsKIAorCWxvY2tfa2VybmVsKCk7CiAJbXV0ZXhfbG9jaygmKGFncF9mZS5hZ3BfbXV0ZXgpKTsKIAogCWlmIChtaW5vciAhPSBBR1BHQVJUX01JTk9SKQpAQCAtNzAzLDEyICs3MDUsMTQgQEAKIAlhZ3BfaW5zZXJ0X2ZpbGVfcHJpdmF0ZShwcml2KTsKIAlEQkcoInByaXZhdGU9JXAsIGNsaWVudD0lcCIsIHByaXYsIGNsaWVudCk7CiAJbXV0ZXhfdW5sb2NrKCYoYWdwX2ZlLmFncF9tdXRleCkpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogZXJyX291dF9ub21lbToKIAlyYyA9IC1FTk9NRU07CiBlcnJfb3V0OgogCW11dGV4X3VubG9jaygmKGFncF9mZS5hZ3BfbXV0ZXgpKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJjOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYXBtLWVtdWxhdGlvbi5jIGIvZHJpdmVycy9jaGFyL2FwbS1lbXVsYXRpb24uYwppbmRleCBjZGQ4NzZkLi5kYThhMTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYXBtLWVtdWxhdGlvbi5jCisrKyBiL2RyaXZlcnMvY2hhci9hcG0tZW11bGF0aW9uLmMKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgpAQCAtNDE2LDYgKzQxNyw3IEBACiB7CiAJc3RydWN0IGFwbV91c2VyICphczsKIAorCWxvY2tfa2VybmVsKCk7CiAJYXMgPSBremFsbG9jKHNpemVvZigqYXMpLCBHRlBfS0VSTkVMKTsKIAlpZiAoYXMpIHsKIAkJLyoKQEAgLTQzNSw2ICs0MzcsNyBAQAogCiAJCWZpbHAtPnByaXZhdGVfZGF0YSA9IGFzOwogCX0KKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gYXMgPyAwIDogLUVOT01FTTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9icmlxX3BhbmVsLmMgYi9kcml2ZXJzL2NoYXIvYnJpcV9wYW5lbC5jCmluZGV4IGI2ZjI2MzkuLmQ4Y2ZmOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9icmlxX3BhbmVsLmMKKysrIGIvZHJpdmVycy9jaGFyL2JyaXFfcGFuZWwuYwpAQCAtNiw2ICs2LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogCisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvdHR5Lmg+CkBAIC02NywxMSArNjgsMTUgQEAKIAogc3RhdGljIGludCBicmlxX3BhbmVsX29wZW4oc3RydWN0IGlub2RlICppbm8sIHN0cnVjdCBmaWxlICpmaWxlcCkKIHsKLQkvKiBlbmZvcmNlIHNpbmdsZSBhY2Nlc3MgKi8KLQlpZiAodmZkX2lzX29wZW4pCisJbG9ja19rZXJuZWwoKTsKKwkvKiBlbmZvcmNlIHNpbmdsZSBhY2Nlc3MsIHZmZF9pc19vcGVuIGlzIHByb3RlY3RlZCBieSBCS0wgKi8KKwlpZiAodmZkX2lzX29wZW4pIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOworCX0KIAl2ZmRfaXNfb3BlbiA9IDE7CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9jczU1MzVfZ3Bpby5jIGIvZHJpdmVycy9jaGFyL2NzNTUzNV9ncGlvLmMKaW5kZXggYzBhNGEwYi4uMDRiYTkwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2NzNTUzNV9ncGlvLmMKKysrIGIvZHJpdmVycy9jaGFyL2NzNTUzNV9ncGlvLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCkBAIC0xNTcsNiArMTU4LDcgQEAKIHsKIAl1MzIgbSA9IGltaW5vcihpbm9kZSk7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCS8qIHRoZSBtYXNrIHNheXMgd2hpY2ggcGlucyBhcmUgdXNhYmxlIGJ5IHRoaXMgZHJpdmVyICovCiAJaWYgKChtYXNrICYgKDEgPDwgbSkpID09IDApCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2N5Y2xhZGVzLmMgYi9kcml2ZXJzL2NoYXIvY3ljbGFkZXMuYwppbmRleCBlZjczZTcyLi42YmZmOWQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvY3ljbGFkZXMuYworKysgYi9kcml2ZXJzL2NoYXIvY3ljbGFkZXMuYwpAQCAtNDY2OCw3ICs0NjY4LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIF9fZGV2aW5pdCBjeXpfZnBnYV9jb3B5KHZvaWQgX19pb21lbSAqZnBnYSwgdTggKmRhdGEsCitzdGF0aWMgaW5saW5lIHZvaWQgX19kZXZpbml0IGN5el9mcGdhX2NvcHkodm9pZCBfX2lvbWVtICpmcGdhLCBjb25zdCB1OCAqZGF0YSwKIAkJdW5zaWduZWQgaW50IHNpemUpCiB7CiAJZm9yICg7IHNpemUgPiAwOyBzaXplLS0pIHsKQEAgLTQ3MDEsMTAgKzQ3MDEsMTAgQEAKIAkJY29uc3QgY2hhciAqbmFtZSwgY29uc3QgdTMyIG1haWxib3gsIHZvaWQgX19pb21lbSAqYmFzZSwKIAkJdm9pZCBfX2lvbWVtICpmcGdhKQogewotCXZvaWQgKnB0ciA9IGZ3LT5kYXRhOwotCXN0cnVjdCB6ZmlsZV9oZWFkZXIgKmggPSBwdHI7Ci0Jc3RydWN0IHpmaWxlX2NvbmZpZyAqYywgKmNzOwotCXN0cnVjdCB6ZmlsZV9ibG9jayAqYiwgKmJzOworCWNvbnN0IHZvaWQgKnB0ciA9IGZ3LT5kYXRhOworCWNvbnN0IHN0cnVjdCB6ZmlsZV9oZWFkZXIgKmggPSBwdHI7CisJY29uc3Qgc3RydWN0IHpmaWxlX2NvbmZpZyAqYywgKmNzOworCWNvbnN0IHN0cnVjdCB6ZmlsZV9ibG9jayAqYiwgKmJzOwogCXVuc2lnbmVkIGludCBhLCB0bXAsIGxlbiA9IGZ3LT5zaXplOwogI2RlZmluZSBCQURfRlcgS0VSTl9FUlIgIkJhZCBmaXJtd2FyZTogIgogCWlmIChsZW4gPCBzaXplb2YoKmgpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL01ha2VmaWxlIGIvZHJpdmVycy9jaGFyL2RybS9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI4M2RlZC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotIwotIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCi0jIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgotCi1kcm0tb2JqcyAgICA6PQlkcm1fYXV0aC5vIGRybV9idWZzLm8gZHJtX2NvbnRleHQubyBkcm1fZG1hLm8gZHJtX2RyYXdhYmxlLm8gXAotCQlkcm1fZHJ2Lm8gZHJtX2ZvcHMubyBkcm1faW9jdGwubyBkcm1faXJxLm8gXAotCQlkcm1fbG9jay5vIGRybV9tZW1vcnkubyBkcm1fcHJvYy5vIGRybV9zdHViLm8gZHJtX3ZtLm8gXAotCQlkcm1fYWdwc3VwcG9ydC5vIGRybV9zY2F0dGVyLm8gYXRpX3BjaWdhcnQubyBkcm1fcGNpLm8gXAotCQlkcm1fc3lzZnMubyBkcm1faGFzaHRhYi5vIGRybV9zbWFuLm8gZHJtX21tLm8KLQotdGRmeC1vYmpzICAgOj0gdGRmeF9kcnYubwotcjEyOC1vYmpzICAgOj0gcjEyOF9kcnYubyByMTI4X2NjZS5vIHIxMjhfc3RhdGUubyByMTI4X2lycS5vCi1tZ2Etb2JqcyAgICA6PSBtZ2FfZHJ2Lm8gbWdhX2RtYS5vIG1nYV9zdGF0ZS5vIG1nYV93YXJwLm8gbWdhX2lycS5vCi1pODEwLW9ianMgICA6PSBpODEwX2Rydi5vIGk4MTBfZG1hLm8KLWk4MzAtb2JqcyAgIDo9IGk4MzBfZHJ2Lm8gaTgzMF9kbWEubyBpODMwX2lycS5vCi1pOTE1LW9ianMgICA6PSBpOTE1X2Rydi5vIGk5MTVfZG1hLm8gaTkxNV9pcnEubyBpOTE1X21lbS5vCi1yYWRlb24tb2JqcyA6PSByYWRlb25fZHJ2Lm8gcmFkZW9uX2NwLm8gcmFkZW9uX3N0YXRlLm8gcmFkZW9uX21lbS5vIHJhZGVvbl9pcnEubyByMzAwX2NtZGJ1Zi5vCi1zaXMtb2JqcyAgICA6PSBzaXNfZHJ2Lm8gc2lzX21tLm8KLXNhdmFnZS1vYmpzIDo9IHNhdmFnZV9kcnYubyBzYXZhZ2VfYmNpLm8gc2F2YWdlX3N0YXRlLm8KLXZpYS1vYmpzICAgIDo9IHZpYV9pcnEubyB2aWFfZHJ2Lm8gdmlhX21hcC5vIHZpYV9tbS5vIHZpYV9kbWEubyB2aWFfdmVyaWZpZXIubyB2aWFfdmlkZW8ubyB2aWFfZG1hYmxpdC5vCi0KLWlmZXEgKCQoQ09ORklHX0NPTVBBVCkseSkKLWRybS1vYmpzICAgICs9IGRybV9pb2MzMi5vCi1yYWRlb24tb2JqcyArPSByYWRlb25faW9jMzIubwotbWdhLW9ianMgICAgKz0gbWdhX2lvYzMyLm8KLXIxMjgtb2JqcyAgICs9IHIxMjhfaW9jMzIubwotaTkxNS1vYmpzICAgKz0gaTkxNV9pb2MzMi5vCi1lbmRpZgotCi1vYmotJChDT05GSUdfRFJNKQkrPSBkcm0ubwotb2JqLSQoQ09ORklHX0RSTV9UREZYKQkrPSB0ZGZ4Lm8KLW9iai0kKENPTkZJR19EUk1fUjEyOCkJKz0gcjEyOC5vCi1vYmotJChDT05GSUdfRFJNX1JBREVPTikrPSByYWRlb24ubwotb2JqLSQoQ09ORklHX0RSTV9NR0EpCSs9IG1nYS5vCi1vYmotJChDT05GSUdfRFJNX0k4MTApCSs9IGk4MTAubwotb2JqLSQoQ09ORklHX0RSTV9JODMwKQkrPSBpODMwLm8KLW9iai0kKENPTkZJR19EUk1fSTkxNSkgICs9IGk5MTUubwotb2JqLSQoQ09ORklHX0RSTV9TSVMpICAgKz0gc2lzLm8KLW9iai0kKENPTkZJR19EUk1fU0FWQUdFKSs9IHNhdmFnZS5vCi1vYmotJChDT05GSUdfRFJNX1ZJQSkJKz12aWEubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1QLmggYi9kcml2ZXJzL2NoYXIvZHJtL2RybVAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc2NGI2Ni4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2RybVAuaAorKysgL2Rldi9udWxsCkBAIC0xLDExNTMgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBkcm1QLmgKLSAqIFByaXZhdGUgaGVhZGVyIGZvciBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIKLSAqCi0gKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgotICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+Ci0gKi8KLQotLyoKLSAqIENvcHlyaWdodCAxOTk5IFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KLSAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFZBIExJTlVYIFNZU1RFTVMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCi0gKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKi8KLQotI2lmbmRlZiBfRFJNX1BfSF8KLSNkZWZpbmUgX0RSTV9QX0hfCi0KLS8qIElmIHlvdSB3YW50IHRoZSBtZW1vcnkgYWxsb2MgZGVidWcgZnVuY3Rpb25hbGl0eSwgY2hhbmdlIGRlZmluZSBiZWxvdyAqLwotLyogI2RlZmluZSBERUJVR19NRU1PUlkgKi8KLQotI2lmZGVmIF9fS0VSTkVMX18KLSNpZmRlZiBfX2FscGhhX18KLS8qIGFkZCBpbmNsdWRlIG9mIGN1cnJlbnQuaCBzbyB0aGF0ICJjdXJyZW50IiBpcyBkZWZpbmVkCi0gKiBiZWZvcmUgc3RhdGljIGlubGluZSBmdW5jcyBpbiB3YWl0LmguIERvaW5nIHRoaXMgc28gd2UKLSAqIGNhbiBidWlsZCB0aGUgRFJNIChwYXJ0IG9mIFBJIERSSSkuIDQvMjEvMjAwMCBTICsgQiAqLwotI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+Ci0jZW5kaWYJCQkJLyogX19hbHBoYV9fICovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgotI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CS8qIEZvciAodW4pbG9ja19rZXJuZWwgKi8KLSNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvY2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Ci0jaWYgZGVmaW5lZChfX2FscGhhX18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pCi0jaW5jbHVkZSA8YXNtL3BndGFibGUuaD4JLyogRm9yIHB0ZV93cnByb3RlY3QgKi8KLSNlbmRpZgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9tbWFuLmg+Ci0jaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KLSNpZmRlZiBDT05GSUdfTVRSUgotI2luY2x1ZGUgPGFzbS9tdHJyLmg+Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKENPTkZJR19BR1ApIHx8IGRlZmluZWQoQ09ORklHX0FHUF9NT0RVTEUpCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9hZ3BfYmFja2VuZC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+Ci0jaW5jbHVkZSA8bGludXgvcG9sbC5oPgotI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+Ci0jaW5jbHVkZSAiZHJtLmgiCi0KLSNpbmNsdWRlIDxsaW51eC9pZHIuaD4KLQotI2RlZmluZSBfX09TX0hBU19BR1AgKGRlZmluZWQoQ09ORklHX0FHUCkgfHwgKGRlZmluZWQoQ09ORklHX0FHUF9NT0RVTEUpICYmIGRlZmluZWQoTU9EVUxFKSkpCi0jZGVmaW5lIF9fT1NfSEFTX01UUlIgKGRlZmluZWQoQ09ORklHX01UUlIpKQotCi1zdHJ1Y3QgZHJtX2ZpbGU7Ci1zdHJ1Y3QgZHJtX2RldmljZTsKLQotI2luY2x1ZGUgImRybV9vc19saW51eC5oIgotI2luY2x1ZGUgImRybV9oYXNodGFiLmgiCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKiBcbmFtZSBEUk0gdGVtcGxhdGUgY3VzdG9taXphdGlvbiBkZWZhdWx0cyAqLwotLypAeyovCi0KLS8qIGRyaXZlciBjYXBhYmlsaXRpZXMgYW5kIHJlcXVpcmVtZW50cyBtYXNrICovCi0jZGVmaW5lIERSSVZFUl9VU0VfQUdQICAgICAweDEKLSNkZWZpbmUgRFJJVkVSX1JFUVVJUkVfQUdQIDB4MgotI2RlZmluZSBEUklWRVJfVVNFX01UUlIgICAgMHg0Ci0jZGVmaW5lIERSSVZFUl9QQ0lfRE1BICAgICAweDgKLSNkZWZpbmUgRFJJVkVSX1NHICAgICAgICAgIDB4MTAKLSNkZWZpbmUgRFJJVkVSX0hBVkVfRE1BICAgIDB4MjAKLSNkZWZpbmUgRFJJVkVSX0hBVkVfSVJRICAgIDB4NDAKLSNkZWZpbmUgRFJJVkVSX0lSUV9TSEFSRUQgIDB4ODAKLSNkZWZpbmUgRFJJVkVSX0lSUV9WQkwgICAgIDB4MTAwCi0jZGVmaW5lIERSSVZFUl9ETUFfUVVFVUUgICAweDIwMAotI2RlZmluZSBEUklWRVJfRkJfRE1BICAgICAgMHg0MDAKLSNkZWZpbmUgRFJJVkVSX0lSUV9WQkwyICAgIDB4ODAwCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKiBcbmFtZSBCZWdpbiB0aGUgRFJNLi4uICovCi0vKkB7Ki8KLQotI2RlZmluZSBEUk1fREVCVUdfQ09ERSAyCSAgLyoqPCBJbmNsdWRlIGRlYnVnZ2luZyBjb2RlIGlmID4gMSwgdGhlbgotCQkJCSAgICAgYWxzbyBpbmNsdWRlIGxvb3BpbmcgZGV0ZWN0aW9uLiAqLwotCi0jZGVmaW5lIERSTV9NQUdJQ19IQVNIX09SREVSICA0ICAvKio8IFNpemUgb2Yga2V5IGhhc2ggdGFibGUuIE11c3QgYmUgcG93ZXIgb2YgMi4gKi8KLSNkZWZpbmUgRFJNX0tFUk5FTF9DT05URVhUICAgIDAJIC8qKjwgQ2hhbmdlIGRybV9yZXNjdHggaWYgY2hhbmdlZCAqLwotI2RlZmluZSBEUk1fUkVTRVJWRURfQ09OVEVYVFMgMQkgLyoqPCBDaGFuZ2UgZHJtX3Jlc2N0eCBpZiBjaGFuZ2VkICovCi0jZGVmaW5lIERSTV9MT09QSU5HX0xJTUlUICAgICA1MDAwMDAwCi0jZGVmaW5lIERSTV9USU1FX1NMSUNFCSAgICAgIChIWi8yMCkgIC8qKjwgVGltZSBzbGljZSBmb3IgR0xYQ29udGV4dHMgKi8KLSNkZWZpbmUgRFJNX0xPQ0tfU0xJQ0UJICAgICAgMQkvKio8IFRpbWUgc2xpY2UgZm9yIGxvY2ssIGluIGppZmZpZXMgKi8KLQotI2RlZmluZSBEUk1fRkxBR19ERUJVRwkgIDB4MDEKLQotI2RlZmluZSBEUk1fTUVNX0RNQQkgICAwCi0jZGVmaW5lIERSTV9NRU1fU0FSRUEJICAgMQotI2RlZmluZSBEUk1fTUVNX0RSSVZFUgkgICAyCi0jZGVmaW5lIERSTV9NRU1fTUFHSUMJICAgMwotI2RlZmluZSBEUk1fTUVNX0lPQ1RMUwkgICA0Ci0jZGVmaW5lIERSTV9NRU1fTUFQUwkgICA1Ci0jZGVmaW5lIERSTV9NRU1fVk1BUwkgICA2Ci0jZGVmaW5lIERSTV9NRU1fQlVGUwkgICA3Ci0jZGVmaW5lIERSTV9NRU1fU0VHUwkgICA4Ci0jZGVmaW5lIERSTV9NRU1fUEFHRVMJICAgOQotI2RlZmluZSBEUk1fTUVNX0ZJTEVTCSAgMTAKLSNkZWZpbmUgRFJNX01FTV9RVUVVRVMJICAxMQotI2RlZmluZSBEUk1fTUVNX0NNRFMJICAxMgotI2RlZmluZSBEUk1fTUVNX01BUFBJTkdTICAxMwotI2RlZmluZSBEUk1fTUVNX0JVRkxJU1RTICAxNAotI2RlZmluZSBEUk1fTUVNX0FHUExJU1RTICAxNQotI2RlZmluZSBEUk1fTUVNX1RPVEFMQUdQICAxNgotI2RlZmluZSBEUk1fTUVNX0JPVU5EQUdQICAxNwotI2RlZmluZSBEUk1fTUVNX0NUWEJJVE1BUCAxOAotI2RlZmluZSBEUk1fTUVNX1NUVUIgICAgICAxOQotI2RlZmluZSBEUk1fTUVNX1NHTElTVFMgICAyMAotI2RlZmluZSBEUk1fTUVNX0NUWExJU1QgICAyMQotI2RlZmluZSBEUk1fTUVNX01NICAgICAgICAyMgotI2RlZmluZSBEUk1fTUVNX0hBU0hUQUIgICAyMwotCi0jZGVmaW5lIERSTV9NQVhfQ1RYQklUTUFQIChQQUdFX1NJWkUgKiA4KQotI2RlZmluZSBEUk1fTUFQX0hBU0hfT0ZGU0VUIDB4MTAwMDAwMDAKLQotLypAfSovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKiBcbmFtZSBNYWNyb3MgdG8gbWFrZSBwcmludGsgZWFzaWVyICovCi0vKkB7Ki8KLQotLyoqCi0gKiBFcnJvciBvdXRwdXQuCi0gKgotICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCi0gKiBccGFyYW0gYXJnIGFyZ3VtZW50cwotICovCi0jZGVmaW5lIERSTV9FUlJPUihmbXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0VSUiAiWyIgRFJNX05BTUUgIjolc10gKkVSUk9SKiAiIGZtdCAsIF9fZnVuY19fICwgIyNhcmcpCi0KLS8qKgotICogTWVtb3J5IGVycm9yIG91dHB1dC4KLSAqCi0gKiBccGFyYW0gYXJlYSBtZW1vcnkgYXJlYSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCi0gKiBccGFyYW0gZm10IHByaW50ZigpIGxpa2UgZm9ybWF0IHN0cmluZy4KLSAqIFxwYXJhbSBhcmcgYXJndW1lbnRzCi0gKi8KLSNkZWZpbmUgRFJNX01FTV9FUlJPUihhcmVhLCBmbXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0VSUiAiWyIgRFJNX05BTUUgIjolczolc10gKkVSUk9SKiAiIGZtdCAsIF9fZnVuY19fLCBcCi0JICAgICAgIGRybV9tZW1fc3RhdHNbYXJlYV0ubmFtZSAsICMjYXJnKQotCi0jZGVmaW5lIERSTV9JTkZPKGZtdCwgYXJnLi4uKSAgcHJpbnRrKEtFUk5fSU5GTyAiWyIgRFJNX05BTUUgIl0gIiBmbXQgLCAjI2FyZykKLQotLyoqCi0gKiBEZWJ1ZyBvdXRwdXQuCi0gKgotICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCi0gKiBccGFyYW0gYXJnIGFyZ3VtZW50cwotICovCi0jaWYgRFJNX0RFQlVHX0NPREUKLSNkZWZpbmUgRFJNX0RFQlVHKGZtdCwgYXJnLi4uKQkJCQkJCVwKLQlkbyB7CQkJCQkJCQlcCi0JCWlmICggZHJtX2RlYnVnICkJCQlcCi0JCQlwcmludGsoS0VSTl9ERUJVRwkJCQlcCi0JCQkgICAgICAgIlsiIERSTV9OQU1FICI6JXNdICIgZm10ICwJXAotCQkJICAgICAgIF9fZnVuY19fICwgIyNhcmcpOwkJCVwKLQl9IHdoaWxlICgwKQotI2Vsc2UKLSNkZWZpbmUgRFJNX0RFQlVHKGZtdCwgYXJnLi4uKQkJIGRvIHsgfSB3aGlsZSAoMCkKLSNlbmRpZgotCi0jZGVmaW5lIERSTV9QUk9DX0xJTUlUIChQQUdFX1NJWkUtODApCi0KLSNkZWZpbmUgRFJNX1BST0NfUFJJTlQoZm10LCBhcmcuLi4pCQkJCQlcCi0gICBsZW4gKz0gc3ByaW50ZigmYnVmW2xlbl0sIGZtdCAsICMjYXJnKTsJCQkJXAotICAgaWYgKGxlbiA+IERSTV9QUk9DX0xJTUlUKSB7ICplb2YgPSAxOyByZXR1cm4gbGVuIC0gb2Zmc2V0OyB9Ci0KLSNkZWZpbmUgRFJNX1BST0NfUFJJTlRfUkVUKHJldCwgZm10LCBhcmcuLi4pCQkJCVwKLSAgIGxlbiArPSBzcHJpbnRmKCZidWZbbGVuXSwgZm10ICwgIyNhcmcpOwkJCQlcCi0gICBpZiAobGVuID4gRFJNX1BST0NfTElNSVQpIHsgcmV0OyAqZW9mID0gMTsgcmV0dXJuIGxlbiAtIG9mZnNldDsgfQotCi0vKkB9Ki8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqIFxuYW1lIEludGVybmFsIHR5cGVzIGFuZCBzdHJ1Y3R1cmVzICovCi0vKkB7Ki8KLQotI2RlZmluZSBEUk1fQVJSQVlfU0laRSh4KSBBUlJBWV9TSVpFKHgpCi0KLSNkZWZpbmUgRFJNX0xFRlRDT1VOVCh4KSAoKCh4KS0+cnAgKyAoeCktPmNvdW50IC0gKHgpLT53cCkgJSAoKHgpLT5jb3VudCArIDEpKQotI2RlZmluZSBEUk1fQlVGQ09VTlQoeCkgKCh4KS0+Y291bnQgLSBEUk1fTEVGVENPVU5UKHgpKQotI2RlZmluZSBEUk1fV0FJVENPVU5UKGRldixpZHgpIERSTV9CVUZDT1VOVCgmZGV2LT5xdWV1ZWxpc3RbaWR4XS0+d2FpdGxpc3QpCi0KLSNkZWZpbmUgRFJNX0lGX1ZFUlNJT04obWFqLCBtaW4pIChtYWogPDwgMTYgfCBtaW4pCi0vKioKLSAqIEdldCB0aGUgcHJpdmF0ZSBTQVJFQSBtYXBwaW5nLgotICoKLSAqIFxwYXJhbSBfZGV2IERSTSBkZXZpY2UuCi0gKiBccGFyYW0gX2N0eCBjb250ZXh0IG51bWJlci4KLSAqIFxwYXJhbSBfbWFwIG91dHB1dCBtYXBwaW5nLgotICovCi0jZGVmaW5lIERSTV9HRVRfUFJJVl9TQVJFQShfZGV2LCBfY3R4LCBfbWFwKSBkbyB7CVwKLQkoX21hcCkgPSAoX2RldiktPmNvbnRleHRfc2FyZWFzW19jdHhdOwkJXAotfSB3aGlsZSgwKQotCi0vKioKLSAqIFRlc3QgdGhhdCB0aGUgaGFyZHdhcmUgbG9jayBpcyBoZWxkIGJ5IHRoZSBjYWxsZXIsIHJldHVybmluZyBvdGhlcndpc2UuCi0gKgotICogXHBhcmFtIGRldiBEUk0gZGV2aWNlLgotICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyIG9mIHRoZSBjYWxsZXIuCi0gKi8KLSNkZWZpbmUgTE9DS19URVNUX1dJVEhfUkVUVVJOKCBkZXYsIGZpbGVfcHJpdiApCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JaWYgKCAhX0RSTV9MT0NLX0lTX0hFTEQoIGRldi0+bG9jay5od19sb2NrLT5sb2NrICkgfHwJCVwKLQkgICAgIGRldi0+bG9jay5maWxlX3ByaXYgIT0gZmlsZV9wcml2ICkJewkJCVwKLQkJRFJNX0VSUk9SKCAiJXMgY2FsbGVkIHdpdGhvdXQgbG9jayBoZWxkLCBoZWxkICAlZCBvd25lciAlcCAlcFxuIixcCi0JCQkgICBfX2Z1bmNfXywgX0RSTV9MT0NLX0lTX0hFTEQoIGRldi0+bG9jay5od19sb2NrLT5sb2NrICksXAotCQkJICAgZGV2LT5sb2NrLmZpbGVfcHJpdiwgZmlsZV9wcml2ICk7CQlcCi0JCXJldHVybiAtRUlOVkFMOwkJCQkJCVwKLQl9CQkJCQkJCQlcCi19IHdoaWxlICgwKQotCi0vKioKLSAqIENvcHkgYW5kIElPQ1RMIHJldHVybiBzdHJpbmcgdG8gdXNlciBzcGFjZQotICovCi0jZGVmaW5lIERSTV9DT1BZKCBuYW1lLCB2YWx1ZSApCQkJCQkJXAotCWxlbiA9IHN0cmxlbiggdmFsdWUgKTsJCQkJCQlcCi0JaWYgKCBsZW4gPiBuYW1lIyNfbGVuICkgbGVuID0gbmFtZSMjX2xlbjsJCQlcCi0JbmFtZSMjX2xlbiA9IHN0cmxlbiggdmFsdWUgKTsJCQkJCVwKLQlpZiAoIGxlbiAmJiBuYW1lICkgewkJCQkJCVwKLQkJaWYgKCBjb3B5X3RvX3VzZXIoIG5hbWUsIHZhbHVlLCBsZW4gKSApCQkJXAotCQkJcmV0dXJuIC1FRkFVTFQ7CQkJCQlcCi0JfQotCi0vKioKLSAqIElvY3RsIGZ1bmN0aW9uIHR5cGUuCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZSBwb2ludGVyLgotICogXHBhcmFtIGNtZCBjb21tYW5kLgotICogXHBhcmFtIGFyZyBhcmd1bWVudC4KLSAqLwotdHlwZWRlZiBpbnQgZHJtX2lvY3RsX3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotdHlwZWRlZiBpbnQgZHJtX2lvY3RsX2NvbXBhdF90KHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYXJnKTsKLQotI2RlZmluZSBEUk1fQVVUSAkweDEKLSNkZWZpbmUJRFJNX01BU1RFUgkweDIKLSNkZWZpbmUgRFJNX1JPT1RfT05MWQkweDQKLQotc3RydWN0IGRybV9pb2N0bF9kZXNjIHsKLQl1bnNpZ25lZCBpbnQgY21kOwotCWRybV9pb2N0bF90ICpmdW5jOwotCWludCBmbGFnczsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIGRyaXZlciBvciBnZW5lcmFsIGRybV9pb2N0bF9kZXNjIGFycmF5IGVudHJ5IGZvciB0aGUgZ2l2ZW4KLSAqIGlvY3RsLCBmb3IgdXNlIGJ5IGRybV9pb2N0bCgpLgotICovCi0jZGVmaW5lIERSTV9JT0NUTF9ERUYoaW9jdGwsIGZ1bmMsIGZsYWdzKSBcCi0JW0RSTV9JT0NUTF9OUihpb2N0bCldID0ge2lvY3RsLCBmdW5jLCBmbGFnc30KLQotc3RydWN0IGRybV9tYWdpY19lbnRyeSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotCXN0cnVjdCBkcm1faGFzaF9pdGVtIGhhc2hfaXRlbTsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKnByaXY7Ci19OwotCi1zdHJ1Y3QgZHJtX3ZtYV9lbnRyeSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwotCXBpZF90IHBpZDsKLX07Ci0KLS8qKgotICogRE1BIGJ1ZmZlci4KLSAqLwotc3RydWN0IGRybV9idWYgewotCWludCBpZHg7CQkgICAgICAgLyoqPCBJbmRleCBpbnRvIG1hc3RlciBidWZsaXN0ICovCi0JaW50IHRvdGFsOwkJICAgICAgIC8qKjwgQnVmZmVyIHNpemUgKi8KLQlpbnQgb3JkZXI7CQkgICAgICAgLyoqPCBsb2ctYmFzZS0yKHRvdGFsKSAqLwotCWludCB1c2VkOwkJICAgICAgIC8qKjwgQW1vdW50IG9mIGJ1ZmZlciBpbiB1c2UgKGZvciBETUEpICovCi0JdW5zaWduZWQgbG9uZyBvZmZzZXQ7CSAgICAgICAvKio8IEJ5dGUgb2Zmc2V0ICh1c2VkIGludGVybmFsbHkpICovCi0Jdm9pZCAqYWRkcmVzczsJCSAgICAgICAvKio8IEFkZHJlc3Mgb2YgYnVmZmVyICovCi0JdW5zaWduZWQgbG9uZyBidXNfYWRkcmVzczsgICAgIC8qKjwgQnVzIGFkZHJlc3Mgb2YgYnVmZmVyICovCi0Jc3RydWN0IGRybV9idWYgKm5leHQ7CSAgICAgICAvKio8IEtlcm5lbC1vbmx5OiB1c2VkIGZvciBmcmVlIGxpc3QgKi8KLQlfX3ZvbGF0aWxlX18gaW50IHdhaXRpbmc7ICAgICAgLyoqPCBPbiBrZXJuZWwgRE1BIHF1ZXVlICovCi0JX192b2xhdGlsZV9fIGludCBwZW5kaW5nOyAgICAgIC8qKjwgT24gaGFyZHdhcmUgRE1BIHF1ZXVlICovCi0Jd2FpdF9xdWV1ZV9oZWFkX3QgZG1hX3dhaXQ7ICAgIC8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgKi8KLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsgICAgLyoqPCBQcml2YXRlIG9mIGhvbGRpbmcgZmlsZSBkZXNjciAqLwotCWludCBjb250ZXh0OwkJICAgICAgIC8qKjwgS2VybmVsIHF1ZXVlIGZvciB0aGlzIGJ1ZmZlciAqLwotCWludCB3aGlsZV9sb2NrZWQ7CSAgICAgICAvKio8IERpc3BhdGNoIHRoaXMgYnVmZmVyIHdoaWxlIGxvY2tlZCAqLwotCWVudW0gewotCQlEUk1fTElTVF9OT05FID0gMCwKLQkJRFJNX0xJU1RfRlJFRSA9IDEsCi0JCURSTV9MSVNUX1dBSVQgPSAyLAotCQlEUk1fTElTVF9QRU5EID0gMywKLQkJRFJNX0xJU1RfUFJJTyA9IDQsCi0JCURSTV9MSVNUX1JFQ0xBSU0gPSA1Ci0JfSBsaXN0OwkJCSAgICAgICAvKio8IFdoaWNoIGxpc3Qgd2UncmUgb24gKi8KLQotCWludCBkZXZfcHJpdl9zaXplOwkJIC8qKjwgU2l6ZSBvZiBidWZmZXIgcHJpdmF0ZSBzdG9yYWdlICovCi0Jdm9pZCAqZGV2X3ByaXZhdGU7CQkgLyoqPCBQZXItYnVmZmVyIHByaXZhdGUgc3RvcmFnZSAqLwotfTsKLQotLyoqIGJ1ZnMgaXMgb25lIGxvbmdlciB0aGFuIGl0IGhhcyB0byBiZSAqLwotc3RydWN0IGRybV93YWl0bGlzdCB7Ci0JaW50IGNvdW50OwkJCS8qKjwgTnVtYmVyIG9mIHBvc3NpYmxlIGJ1ZmZlcnMgKi8KLQlzdHJ1Y3QgZHJtX2J1ZiAqKmJ1ZnM7CQkvKio8IExpc3Qgb2YgcG9pbnRlcnMgdG8gYnVmZmVycyAqLwotCXN0cnVjdCBkcm1fYnVmICoqcnA7CQkJLyoqPCBSZWFkIHBvaW50ZXIgKi8KLQlzdHJ1Y3QgZHJtX2J1ZiAqKndwOwkJCS8qKjwgV3JpdGUgcG9pbnRlciAqLwotCXN0cnVjdCBkcm1fYnVmICoqZW5kOwkJLyoqPCBFbmQgcG9pbnRlciAqLwotCXNwaW5sb2NrX3QgcmVhZF9sb2NrOwotCXNwaW5sb2NrX3Qgd3JpdGVfbG9jazsKLX07Ci0KLXN0cnVjdCBkcm1fZnJlZWxpc3QgewotCWludCBpbml0aWFsaXplZDsJICAgICAgIC8qKjwgRnJlZWxpc3QgaW4gdXNlICovCi0JYXRvbWljX3QgY291bnQ7CQkgICAgICAgLyoqPCBOdW1iZXIgb2YgZnJlZSBidWZmZXJzICovCi0Jc3RydWN0IGRybV9idWYgKm5leHQ7CSAgICAgICAvKio8IEVuZCBwb2ludGVyICovCi0KLQl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0aW5nOyAgICAgLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBmcmVlIGJ1ZnMgKi8KLQlpbnQgbG93X21hcms7CQkgICAgICAgLyoqPCBMb3cgd2F0ZXIgbWFyayAqLwotCWludCBoaWdoX21hcms7CQkgICAgICAgLyoqPCBIaWdoIHdhdGVyIG1hcmsgKi8KLQlhdG9taWNfdCB3Zmg7CQkgICAgICAgLyoqPCBJZiB3YWl0aW5nIGZvciBoaWdoIG1hcmsgKi8KLQlzcGlubG9ja190IGxvY2s7Ci19OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fZG1hX2hhbmRsZSB7Ci0JZG1hX2FkZHJfdCBidXNhZGRyOwotCXZvaWQgKnZhZGRyOwotCXNpemVfdCBzaXplOwotfSBkcm1fZG1hX2hhbmRsZV90OwotCi0vKioKLSAqIEJ1ZmZlciBlbnRyeS4gIFRoZXJlIGlzIG9uZSBvZiB0aGlzIGZvciBlYWNoIGJ1ZmZlciBzaXplIG9yZGVyLgotICovCi1zdHJ1Y3QgZHJtX2J1Zl9lbnRyeSB7Ci0JaW50IGJ1Zl9zaXplOwkJCS8qKjwgc2l6ZSAqLwotCWludCBidWZfY291bnQ7CQkJLyoqPCBudW1iZXIgb2YgYnVmZmVycyAqLwotCXN0cnVjdCBkcm1fYnVmICpidWZsaXN0OwkJLyoqPCBidWZmZXIgbGlzdCAqLwotCWludCBzZWdfY291bnQ7Ci0JaW50IHBhZ2Vfb3JkZXI7Ci0Jc3RydWN0IGRybV9kbWFfaGFuZGxlICoqc2VnbGlzdDsKLQotCXN0cnVjdCBkcm1fZnJlZWxpc3QgZnJlZWxpc3Q7Ci19OwotCi0vKiogRmlsZSBwcml2YXRlIGRhdGEgKi8KLXN0cnVjdCBkcm1fZmlsZSB7Ci0JaW50IGF1dGhlbnRpY2F0ZWQ7Ci0JaW50IG1hc3RlcjsKLQlwaWRfdCBwaWQ7Ci0JdWlkX3QgdWlkOwotCWRybV9tYWdpY190IG1hZ2ljOwotCXVuc2lnbmVkIGxvbmcgaW9jdGxfY291bnQ7Ci0Jc3RydWN0IGxpc3RfaGVhZCBsaGVhZDsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vcjsKLQlpbnQgcmVtb3ZlX2F1dGhfb25fY2xvc2U7Ci0JdW5zaWduZWQgbG9uZyBsb2NrX2NvdW50OwotCXN0cnVjdCBmaWxlICpmaWxwOwotCXZvaWQgKmRyaXZlcl9wcml2OwotfTsKLQotLyoqIFdhaXQgcXVldWUgKi8KLXN0cnVjdCBkcm1fcXVldWUgewotCWF0b21pY190IHVzZV9jb3VudDsJCS8qKjwgT3V0c3RhbmRpbmcgdXNlcyAoKzEpICovCi0JYXRvbWljX3QgZmluYWxpemF0aW9uOwkJLyoqPCBGaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MgKi8KLQlhdG9taWNfdCBibG9ja19jb3VudDsJCS8qKjwgQ291bnQgb2YgcHJvY2Vzc2VzIHdhaXRpbmcgKi8KLQlhdG9taWNfdCBibG9ja19yZWFkOwkJLyoqPCBRdWV1ZSBibG9ja2VkIGZvciByZWFkcyAqLwotCXdhaXRfcXVldWVfaGVhZF90IHJlYWRfcXVldWU7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gYmxvY2tfcmVhZCAqLwotCWF0b21pY190IGJsb2NrX3dyaXRlOwkJLyoqPCBRdWV1ZSBibG9ja2VkIGZvciB3cml0ZXMgKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCB3cml0ZV9xdWV1ZTsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBibG9ja193cml0ZSAqLwotCWF0b21pY190IHRvdGFsX3F1ZXVlZDsJCS8qKjwgVG90YWwgcXVldWVkIHN0YXRpc3RpYyAqLwotCWF0b21pY190IHRvdGFsX2ZsdXNoZWQ7CQkvKio8IFRvdGFsIGZsdXNoZXMgc3RhdGlzdGljICovCi0JYXRvbWljX3QgdG90YWxfbG9ja3M7CQkvKio8IFRvdGFsIGxvY2tzIHN0YXRpc3RpY3MgKi8KLQllbnVtIGRybV9jdHhfZmxhZ3MgZmxhZ3M7CS8qKjwgQ29udGV4dCBwcmVzZXJ2aW5nIGFuZCAyRC1vbmx5ICovCi0Jc3RydWN0IGRybV93YWl0bGlzdCB3YWl0bGlzdDsJLyoqPCBQZW5kaW5nIGJ1ZmZlcnMgKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBmbHVzaF9xdWV1ZTsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyB1bnRpbCBmbHVzaCAqLwotfTsKLQotLyoqCi0gKiBMb2NrIGRhdGEuCi0gKi8KLXN0cnVjdCBkcm1fbG9ja19kYXRhIHsKLQlzdHJ1Y3QgZHJtX2h3X2xvY2sgKmh3X2xvY2s7CS8qKjwgSGFyZHdhcmUgbG9jayAqLwotCS8qKiBQcml2YXRlIG9mIGxvY2sgaG9sZGVyJ3MgZmlsZSAoTlVMTD1rZXJuZWwpICovCi0Jc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXY7Ci0Jd2FpdF9xdWV1ZV9oZWFkX3QgbG9ja19xdWV1ZTsJLyoqPCBRdWV1ZSBvZiBibG9ja2VkIHByb2Nlc3NlcyAqLwotCXVuc2lnbmVkIGxvbmcgbG9ja190aW1lOwkvKio8IFRpbWUgb2YgbGFzdCBsb2NrIGluIGppZmZpZXMgKi8KLQlzcGlubG9ja190IHNwaW5sb2NrOwotCXVpbnQzMl90IGtlcm5lbF93YWl0ZXJzOwotCXVpbnQzMl90IHVzZXJfd2FpdGVyczsKLQlpbnQgaWRsZV9oYXNfbG9jazsKLX07Ci0KLS8qKgotICogRE1BIGRhdGEuCi0gKi8KLXN0cnVjdCBkcm1fZGV2aWNlX2RtYSB7Ci0KLQlzdHJ1Y3QgZHJtX2J1Zl9lbnRyeSBidWZzW0RSTV9NQVhfT1JERVIgKyAxXTsJLyoqPCBidWZmZXJzLCBncm91cGVkIGJ5IHRoZWlyIHNpemUgb3JkZXIgKi8KLQlpbnQgYnVmX2NvdW50OwkJCS8qKjwgdG90YWwgbnVtYmVyIG9mIGJ1ZmZlcnMgKi8KLQlzdHJ1Y3QgZHJtX2J1ZiAqKmJ1Zmxpc3Q7CQkvKio8IFZlY3RvciBvZiBwb2ludGVycyBpbnRvIGRybV9kZXZpY2VfZG1hOjpidWZzICovCi0JaW50IHNlZ19jb3VudDsKLQlpbnQgcGFnZV9jb3VudDsJCQkvKio8IG51bWJlciBvZiBwYWdlcyAqLwotCXVuc2lnbmVkIGxvbmcgKnBhZ2VsaXN0OwkvKio8IHBhZ2UgbGlzdCAqLwotCXVuc2lnbmVkIGxvbmcgYnl0ZV9jb3VudDsKLQllbnVtIHsKLQkJX0RSTV9ETUFfVVNFX0FHUCA9IDB4MDEsCi0JCV9EUk1fRE1BX1VTRV9TRyA9IDB4MDIsCi0JCV9EUk1fRE1BX1VTRV9GQiA9IDB4MDQsCi0JCV9EUk1fRE1BX1VTRV9QQ0lfUk8gPSAweDA4Ci0JfSBmbGFnczsKLQotfTsKLQotLyoqCi0gKiBBR1AgbWVtb3J5IGVudHJ5LiAgU3RvcmVkIGFzIGEgZG91Ymx5IGxpbmtlZCBsaXN0LgotICovCi1zdHJ1Y3QgZHJtX2FncF9tZW0gewotCXVuc2lnbmVkIGxvbmcgaGFuZGxlOwkJLyoqPCBoYW5kbGUgKi8KLQlEUk1fQUdQX01FTSAqbWVtb3J5OwotCXVuc2lnbmVkIGxvbmcgYm91bmQ7CQkvKio8IGFkZHJlc3MgKi8KLQlpbnQgcGFnZXM7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotfTsKLQotLyoqCi0gKiBBR1AgZGF0YS4KLSAqCi0gKiBcc2EgZHJtX2FncF9pbml0KCkgYW5kIGRybV9kZXZpY2U6OmFncC4KLSAqLwotc3RydWN0IGRybV9hZ3BfaGVhZCB7Ci0JRFJNX0FHUF9LRVJOIGFncF9pbmZvOwkJLyoqPCBBR1AgZGV2aWNlIGluZm9ybWF0aW9uICovCi0Jc3RydWN0IGxpc3RfaGVhZCBtZW1vcnk7Ci0JdW5zaWduZWQgbG9uZyBtb2RlOwkJLyoqPCBBR1AgbW9kZSAqLwotCXN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZTsKLQlpbnQgZW5hYmxlZDsJCQkvKio8IHdoZXRoZXIgdGhlIEFHUCBidXMgYXMgYmVlbiBlbmFibGVkICovCi0JaW50IGFjcXVpcmVkOwkJCS8qKjwgd2hldGhlciB0aGUgQUdQIGRldmljZSBoYXMgYmVlbiBhY3F1aXJlZCAqLwotCXVuc2lnbmVkIGxvbmcgYmFzZTsKLQlpbnQgYWdwX210cnI7Ci0JaW50IGNhbnRfdXNlX2FwZXJ0dXJlOwotCXVuc2lnbmVkIGxvbmcgcGFnZV9tYXNrOwotfTsKLQotLyoqCi0gKiBTY2F0dGVyLWdhdGhlciBtZW1vcnkuCi0gKi8KLXN0cnVjdCBkcm1fc2dfbWVtIHsKLQl1bnNpZ25lZCBsb25nIGhhbmRsZTsKLQl2b2lkICp2aXJ0dWFsOwotCWludCBwYWdlczsKLQlzdHJ1Y3QgcGFnZSAqKnBhZ2VsaXN0OwotCWRtYV9hZGRyX3QgKmJ1c2FkZHI7Ci19OwotCi1zdHJ1Y3QgZHJtX3NpZ2RhdGEgewotCWludCBjb250ZXh0OwotCXN0cnVjdCBkcm1faHdfbG9jayAqbG9jazsKLX07Ci0KLQotLyoKLSAqIEdlbmVyaWMgbWVtb3J5IG1hbmFnZXIgc3RydWN0cwotICovCi0KLXN0cnVjdCBkcm1fbW1fbm9kZSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBmbF9lbnRyeTsKLQlzdHJ1Y3QgbGlzdF9oZWFkIG1sX2VudHJ5OwotCWludCBmcmVlOwotCXVuc2lnbmVkIGxvbmcgc3RhcnQ7Ci0JdW5zaWduZWQgbG9uZyBzaXplOwotCXN0cnVjdCBkcm1fbW0gKm1tOwotCXZvaWQgKnByaXZhdGU7Ci19OwotCi1zdHJ1Y3QgZHJtX21tIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGZsX2VudHJ5OwotCXN0cnVjdCBsaXN0X2hlYWQgbWxfZW50cnk7Ci19OwotCi0KLS8qKgotICogTWFwcGluZ3MgbGlzdAotICovCi1zdHJ1Y3QgZHJtX21hcF9saXN0IHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CQkvKio8IGxpc3QgaGVhZCAqLwotCXN0cnVjdCBkcm1faGFzaF9pdGVtIGhhc2g7Ci0Jc3RydWN0IGRybV9tYXAgKm1hcDsJCQkvKio8IG1hcHBpbmcgKi8KLQl1aW50NjRfdCB1c2VyX3Rva2VuOwotfTsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX21hcCBkcm1fbG9jYWxfbWFwX3Q7Ci0KLS8qKgotICogQ29udGV4dCBoYW5kbGUgbGlzdAotICovCi1zdHJ1Y3QgZHJtX2N0eF9saXN0IHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CQkvKio8IGxpc3QgaGVhZCAqLwotCWRybV9jb250ZXh0X3QgaGFuZGxlOwkJLyoqPCBjb250ZXh0IGhhbmRsZSAqLwotCXN0cnVjdCBkcm1fZmlsZSAqdGFnOwkJLyoqPCBhc3NvY2lhdGVkIGZkIHByaXZhdGUgZGF0YSAqLwotfTsKLQotc3RydWN0IGRybV92Ymxfc2lnIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7Ci0JdW5zaWduZWQgaW50IHNlcXVlbmNlOwotCXN0cnVjdCBzaWdpbmZvIGluZm87Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwotfTsKLQotLyogbG9jYXRpb24gb2YgR0FSVCB0YWJsZSAqLwotI2RlZmluZSBEUk1fQVRJX0dBUlRfTUFJTiAxCi0jZGVmaW5lIERSTV9BVElfR0FSVF9GQiAgIDIKLQotI2RlZmluZSBEUk1fQVRJX0dBUlRfUENJIDEKLSNkZWZpbmUgRFJNX0FUSV9HQVJUX1BDSUUgMgotI2RlZmluZSBEUk1fQVRJX0dBUlRfSUdQIDMKLQotc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvIHsKLQlpbnQgZ2FydF90YWJsZV9sb2NhdGlvbjsKLQlpbnQgZ2FydF9yZWdfaWY7Ci0Jdm9pZCAqYWRkcjsKLQlkbWFfYWRkcl90IGJ1c19hZGRyOwotCWRtYV9hZGRyX3QgdGFibGVfbWFzazsKLQlzdHJ1Y3QgZHJtX2RtYV9oYW5kbGUgKnRhYmxlX2hhbmRsZTsKLQlkcm1fbG9jYWxfbWFwX3QgbWFwcGluZzsKLQlpbnQgdGFibGVfc2l6ZTsKLX07Ci0KLS8qKgotICogRFJNIGRyaXZlciBzdHJ1Y3R1cmUuIFRoaXMgc3RydWN0dXJlIHJlcHJlc2VudCB0aGUgY29tbW9uIGNvZGUgZm9yCi0gKiBhIGZhbWlseSBvZiBjYXJkcy4gVGhlcmUgd2lsbCBvbmUgZHJtX2RldmljZSBmb3IgZWFjaCBjYXJkIHByZXNlbnQKLSAqIGluIHRoaXMgZmFtaWx5Ci0gKi8KLXN0cnVjdCBkcm1fZHJpdmVyIHsKLQlpbnQgKCpsb2FkKSAoc3RydWN0IGRybV9kZXZpY2UgKiwgdW5zaWduZWQgbG9uZyBmbGFncyk7Ci0JaW50ICgqZmlyc3RvcGVuKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqb3BlbikgKHN0cnVjdCBkcm1fZGV2aWNlICosIHN0cnVjdCBkcm1fZmlsZSAqKTsKLQl2b2lkICgqcHJlY2xvc2UpIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0Jdm9pZCAoKnBvc3RjbG9zZSkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHN0cnVjdCBkcm1fZmlsZSAqKTsKLQl2b2lkICgqbGFzdGNsb3NlKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqdW5sb2FkKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqc3VzcGVuZCkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHBtX21lc3NhZ2VfdCBzdGF0ZSk7Ci0JaW50ICgqcmVzdW1lKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqZG1hX2lvY3RsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCXZvaWQgKCpkbWFfcmVhZHkpIChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKLQlpbnQgKCpkbWFfcXVpZXNjZW50KSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqY29udGV4dF9jdG9yKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNvbnRleHQpOwotCWludCAoKmNvbnRleHRfZHRvcikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjb250ZXh0KTsKLQlpbnQgKCprZXJuZWxfY29udGV4dF9zd2l0Y2gpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb2xkLAotCQkJCSAgICAgIGludCBuZXcpOwotCXZvaWQgKCprZXJuZWxfY29udGV4dF9zd2l0Y2hfdW5sb2NrKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0JaW50ICgqdmJsYW5rX3dhaXQpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKLQlpbnQgKCp2Ymxhbmtfd2FpdDIpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKLQlpbnQgKCpkcmlfbGlicmFyeV9uYW1lKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY2hhciAqYnVmKTsKLQotCS8qKgotCSAqIENhbGxlZCBieSBcYyBkcm1fZGV2aWNlX2lzX2FncC4gIFR5cGljYWxseSB1c2VkIHRvIGRldGVybWluZSBpZiBhCi0JICogY2FyZCBpcyByZWFsbHkgYXR0YWNoZWQgdG8gQUdQIG9yIG5vdC4KLQkgKgotCSAqIFxwYXJhbSBkZXYgIERSTSBkZXZpY2UgaGFuZGxlCi0JICoKLQkgKiBccmV0dXJucwotCSAqIE9uZSBvZiB0aHJlZSB2YWx1ZXMgaXMgcmV0dXJuZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgb3Igbm90IHRoZQotCSAqIGNhcmQgaXMgYWJzb2x1dGVseSBcYiBub3QgQUdQIChyZXR1cm4gb2YgMCksIGFic29sdXRlbHkgXGIgaXMgQUdQCi0JICogKHJldHVybiBvZiAxKSwgb3IgbWF5IG9yIG1heSBub3QgYmUgQUdQIChyZXR1cm4gb2YgMikuCi0JICovCi0JaW50ICgqZGV2aWNlX2lzX2FncCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi0JLyogdGhlc2UgaGF2ZSB0byBiZSBmaWxsZWQgaW4gKi8KLQotCWlycXJldHVybl90KCppcnFfaGFuZGxlcikgKERSTV9JUlFfQVJHUyk7Ci0Jdm9pZCAoKmlycV9wcmVpbnN0YWxsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0Jdm9pZCAoKmlycV9wb3N0aW5zdGFsbCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCXZvaWQgKCppcnFfdW5pbnN0YWxsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0Jdm9pZCAoKnJlY2xhaW1fYnVmZmVycykgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJIHN0cnVjdCBkcm1fZmlsZSAqIGZpbGVfcHJpdik7Ci0Jdm9pZCAoKnJlY2xhaW1fYnVmZmVyc19sb2NrZWQpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0Jdm9pZCAoKnJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQl1bnNpZ25lZCBsb25nICgqZ2V0X21hcF9vZnMpIChzdHJ1Y3QgZHJtX21hcCAqIG1hcCk7Ci0JdW5zaWduZWQgbG9uZyAoKmdldF9yZWdfb2ZzKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0Jdm9pZCAoKnNldF92ZXJzaW9uKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgICAgc3RydWN0IGRybV9zZXRfdmVyc2lvbiAqc3YpOwotCi0JaW50IG1ham9yOwotCWludCBtaW5vcjsKLQlpbnQgcGF0Y2hsZXZlbDsKLQljaGFyICpuYW1lOwotCWNoYXIgKmRlc2M7Ci0JY2hhciAqZGF0ZTsKLQotCXUzMiBkcml2ZXJfZmVhdHVyZXM7Ci0JaW50IGRldl9wcml2X3NpemU7Ci0Jc3RydWN0IGRybV9pb2N0bF9kZXNjICppb2N0bHM7Ci0JaW50IG51bV9pb2N0bHM7Ci0Jc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzOwotCXN0cnVjdCBwY2lfZHJpdmVyIHBjaV9kcml2ZXI7Ci19OwotCi0jZGVmaW5lIERSTV9NSU5PUl9VTkFTU0lHTkVEIDAKLSNkZWZpbmUgRFJNX01JTk9SX0xFR0FDWSAxCi0KLS8qKgotICogRFJNIG1pbm9yIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50cyBhIGRybSBtaW5vciBudW1iZXIuCi0gKi8KLXN0cnVjdCBkcm1fbWlub3IgewotCWludCBpbmRleDsJCQkvKio8IE1pbm9yIGRldmljZSBudW1iZXIgKi8KLQlpbnQgdHlwZTsgICAgICAgICAgICAgICAgICAgICAgIC8qKjwgQ29udHJvbCBvciByZW5kZXIgKi8KLQlkZXZfdCBkZXZpY2U7CQkJLyoqPCBEZXZpY2UgbnVtYmVyIGZvciBta25vZCAqLwotCXN0cnVjdCBkZXZpY2Uga2RldjsJCS8qKjwgTGludXggZGV2aWNlICovCi0Jc3RydWN0IGRybV9kZXZpY2UgKmRldjsKLQlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmRldl9yb290OyAgLyoqPCBwcm9jIGRpcmVjdG9yeSBlbnRyeSAqLwotfTsKLQotLyoqCi0gKiBEUk0gZGV2aWNlIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50IGEgY29tcGxldGUgY2FyZCB0aGF0Ci0gKiBtYXkgY29udGFpbiBtdWx0aXBsZSBoZWFkcy4KLSAqLwotc3RydWN0IGRybV9kZXZpY2UgewotCWNoYXIgKnVuaXF1ZTsJCQkvKio8IFVuaXF1ZSBpZGVudGlmaWVyOiBlLmcuLCBidXNpZCAqLwotCWludCB1bmlxdWVfbGVuOwkJCS8qKjwgTGVuZ3RoIG9mIHVuaXF1ZSBmaWVsZCAqLwotCWNoYXIgKmRldm5hbWU7CQkJLyoqPCBGb3IgL3Byb2MvaW50ZXJydXB0cyAqLwotCWludCBpZl92ZXJzaW9uOwkJCS8qKjwgSGlnaGVzdCBpbnRlcmZhY2UgdmVyc2lvbiBzZXQgKi8KLQotCWludCBibG9ja2VkOwkJCS8qKjwgQmxvY2tlZCBkdWUgdG8gVkMgc3dpdGNoPyAqLwotCi0JLyoqIFxuYW1lIExvY2tzICovCi0JLypAeyAqLwotCXNwaW5sb2NrX3QgY291bnRfbG9jazsJCS8qKjwgRm9yIGludXNlLCBkcm1fZGV2aWNlOjpvcGVuX2NvdW50LCBkcm1fZGV2aWNlOjpidWZfdXNlICovCi0Jc3RydWN0IG11dGV4IHN0cnVjdF9tdXRleDsJLyoqPCBGb3Igb3RoZXJzICovCi0JLypAfSAqLwotCi0JLyoqIFxuYW1lIFVzYWdlIENvdW50ZXJzICovCi0JLypAeyAqLwotCWludCBvcGVuX2NvdW50OwkJCS8qKjwgT3V0c3RhbmRpbmcgZmlsZXMgb3BlbiAqLwotCWF0b21pY190IGlvY3RsX2NvdW50OwkJLyoqPCBPdXRzdGFuZGluZyBJT0NUTHMgcGVuZGluZyAqLwotCWF0b21pY190IHZtYV9jb3VudDsJCS8qKjwgT3V0c3RhbmRpbmcgdm1hIGFyZWFzIG9wZW4gKi8KLQlpbnQgYnVmX3VzZTsJCQkvKio8IEJ1ZmZlcnMgaW4gdXNlIC0tIGNhbm5vdCBhbGxvYyAqLwotCWF0b21pY190IGJ1Zl9hbGxvYzsJCS8qKjwgQnVmZmVyIGFsbG9jYXRpb24gaW4gcHJvZ3Jlc3MgKi8KLQkvKkB9ICovCi0KLQkvKiogXG5hbWUgUGVyZm9ybWFuY2UgY291bnRlcnMgKi8KLQkvKkB7ICovCi0JdW5zaWduZWQgbG9uZyBjb3VudGVyczsKLQllbnVtIGRybV9zdGF0X3R5cGUgdHlwZXNbMTVdOwotCWF0b21pY190IGNvdW50c1sxNV07Ci0JLypAfSAqLwotCi0JLyoqIFxuYW1lIEF1dGhlbnRpY2F0aW9uICovCi0JLypAeyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgZmlsZWxpc3Q7Ci0Jc3RydWN0IGRybV9vcGVuX2hhc2ggbWFnaWNsaXN0OwkvKio8IG1hZ2ljIGhhc2ggdGFibGUgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIG1hZ2ljZnJlZTsKLQkvKkB9ICovCi0KLQkvKiogXG5hbWUgTWVtb3J5IG1hbmFnZW1lbnQgKi8KLQkvKkB7ICovCi0Jc3RydWN0IGxpc3RfaGVhZCBtYXBsaXN0OwkvKio8IExpbmtlZCBsaXN0IG9mIHJlZ2lvbnMgKi8KLQlpbnQgbWFwX2NvdW50OwkJCS8qKjwgTnVtYmVyIG9mIG1hcHBhYmxlIHJlZ2lvbnMgKi8KLQlzdHJ1Y3QgZHJtX29wZW5faGFzaCBtYXBfaGFzaDsJLyoqPCBVc2VyIHRva2VuIGhhc2ggdGFibGUgZm9yIG1hcHMgKi8KLQotCS8qKiBcbmFtZSBDb250ZXh0IGhhbmRsZSBtYW5hZ2VtZW50ICovCi0JLypAeyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgY3R4bGlzdDsJLyoqPCBMaW5rZWQgbGlzdCBvZiBjb250ZXh0IGhhbmRsZXMgKi8KLQlpbnQgY3R4X2NvdW50OwkJCS8qKjwgTnVtYmVyIG9mIGNvbnRleHQgaGFuZGxlcyAqLwotCXN0cnVjdCBtdXRleCBjdHhsaXN0X211dGV4OwkvKio8IEZvciBjdHhsaXN0ICovCi0KLQlzdHJ1Y3QgaWRyIGN0eF9pZHI7Ci0KLQlzdHJ1Y3QgbGlzdF9oZWFkIHZtYWxpc3Q7CS8qKjwgTGlzdCBvZiB2bWFzIChmb3IgZGVidWdnaW5nKSAqLwotCXN0cnVjdCBkcm1fbG9ja19kYXRhIGxvY2s7CS8qKjwgSW5mb3JtYXRpb24gb24gaGFyZHdhcmUgbG9jayAqLwotCS8qQH0gKi8KLQotCS8qKiBcbmFtZSBETUEgcXVldWVzIChjb250ZXh0cykgKi8KLQkvKkB7ICovCi0JaW50IHF1ZXVlX2NvdW50OwkJLyoqPCBOdW1iZXIgb2YgYWN0aXZlIERNQSBxdWV1ZXMgKi8KLQlpbnQgcXVldWVfcmVzZXJ2ZWQ7CQkgIC8qKjwgTnVtYmVyIG9mIHJlc2VydmVkIERNQSBxdWV1ZXMgKi8KLQlpbnQgcXVldWVfc2xvdHM7CQkvKio8IEFjdHVhbCBsZW5ndGggb2YgcXVldWVsaXN0ICovCi0Jc3RydWN0IGRybV9xdWV1ZSAqKnF1ZXVlbGlzdDsJLyoqPCBWZWN0b3Igb2YgcG9pbnRlcnMgdG8gRE1BIHF1ZXVlcyAqLwotCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hOwkJLyoqPCBPcHRpb25hbCBwb2ludGVyIGZvciBETUEgc3VwcG9ydCAqLwotCS8qQH0gKi8KLQotCS8qKiBcbmFtZSBDb250ZXh0IHN1cHBvcnQgKi8KLQkvKkB7ICovCi0JaW50IGlycTsJCQkvKio8IEludGVycnVwdCB1c2VkIGJ5IGJvYXJkICovCi0JaW50IGlycV9lbmFibGVkOwkJLyoqPCBUcnVlIGlmIGlycSBoYW5kbGVyIGlzIGVuYWJsZWQgKi8KLQlfX3ZvbGF0aWxlX18gbG9uZyBjb250ZXh0X2ZsYWc7CS8qKjwgQ29udGV4dCBzd2FwcGluZyBmbGFnICovCi0JX192b2xhdGlsZV9fIGxvbmcgaW50ZXJydXB0X2ZsYWc7IC8qKjwgSW50ZXJydXB0aW9uIGhhbmRsZXIgZmxhZyAqLwotCV9fdm9sYXRpbGVfXyBsb25nIGRtYV9mbGFnOwkvKio8IERNQSBkaXNwYXRjaCBmbGFnICovCi0Jc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CS8qKjwgVGltZXIgZm9yIGRlbGF5aW5nIGN0eCBzd2l0Y2ggKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBjb250ZXh0X3dhaXQ7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gY3R4IHN3aXRjaCAqLwotCWludCBsYXN0X2NoZWNrZWQ7CQkvKio8IExhc3QgY29udGV4dCBjaGVja2VkIGZvciBETUEgKi8KLQlpbnQgbGFzdF9jb250ZXh0OwkJLyoqPCBMYXN0IGN1cnJlbnQgY29udGV4dCAqLwotCXVuc2lnbmVkIGxvbmcgbGFzdF9zd2l0Y2g7CS8qKjwgamlmZmllcyBhdCBsYXN0IGNvbnRleHQgc3dpdGNoICovCi0JLypAfSAqLwotCi0Jc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Ci0JLyoqIFxuYW1lIFZCTEFOSyBJUlEgc3VwcG9ydCAqLwotCS8qQHsgKi8KLQotCXdhaXRfcXVldWVfaGVhZF90IHZibF9xdWV1ZTsJLyoqPCBWQkxBTksgd2FpdCBxdWV1ZSAqLwotCWF0b21pY190IHZibF9yZWNlaXZlZDsKLQlhdG9taWNfdCB2YmxfcmVjZWl2ZWQyOwkJLyoqPCBudW1iZXIgb2Ygc2Vjb25kYXJ5IFZCTEFOSyBpbnRlcnJ1cHRzICovCi0Jc3BpbmxvY2tfdCB2YmxfbG9jazsKLQlzdHJ1Y3QgbGlzdF9oZWFkIHZibF9zaWdzOwkJLyoqPCBzaWduYWwgbGlzdCB0byBzZW5kIG9uIFZCTEFOSyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgdmJsX3NpZ3MyOwkvKio8IHNpZ25hbHMgdG8gc2VuZCBvbiBzZWNvbmRhcnkgVkJMQU5LICovCi0JdW5zaWduZWQgaW50IHZibF9wZW5kaW5nOwotCXNwaW5sb2NrX3QgdGFza2xldF9sb2NrOwkvKio8IEZvciBkcm1fbG9ja2VkX3Rhc2tsZXQgKi8KLQl2b2lkICgqbG9ja2VkX3Rhc2tsZXRfZnVuYykoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLQkvKkB9ICovCi0JY3ljbGVzX3QgY3R4X3N0YXJ0OwotCWN5Y2xlc190IGxja19zdGFydDsKLQotCXN0cnVjdCBmYXN5bmNfc3RydWN0ICpidWZfYXN5bmM7LyoqPCBQcm9jZXNzZXMgd2FpdGluZyBmb3IgU0lHSU8gKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBidWZfcmVhZGVyczsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyB0byByZWFkICovCi0Jd2FpdF9xdWV1ZV9oZWFkX3QgYnVmX3dyaXRlcnM7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgdG8gY3R4IHN3aXRjaCAqLwotCi0Jc3RydWN0IGRybV9hZ3BfaGVhZCAqYWdwOwkvKio8IEFHUCBkYXRhICovCi0KLQlzdHJ1Y3QgcGNpX2RldiAqcGRldjsJCS8qKjwgUENJIGRldmljZSBzdHJ1Y3R1cmUgKi8KLQlpbnQgcGNpX3ZlbmRvcjsJCQkvKio8IFBDSSB2ZW5kb3IgaWQgKi8KLQlpbnQgcGNpX2RldmljZTsJCQkvKio8IFBDSSBkZXZpY2UgaWQgKi8KLSNpZmRlZiBfX2FscGhhX18KLQlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2U7Ci0jZW5kaWYKLQlzdHJ1Y3QgZHJtX3NnX21lbSAqc2c7CS8qKjwgU2NhdHRlciBnYXRoZXIgbWVtb3J5ICovCi0Jdm9pZCAqZGV2X3ByaXZhdGU7CQkvKio8IGRldmljZSBwcml2YXRlIGRhdGEgKi8KLQlzdHJ1Y3QgZHJtX3NpZ2RhdGEgc2lnZGF0YTsJICAgLyoqPCBGb3IgYmxvY2tfYWxsX3NpZ25hbHMgKi8KLQlzaWdzZXRfdCBzaWdtYXNrOwotCi0Jc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcjsKLQlkcm1fbG9jYWxfbWFwX3QgKmFncF9idWZmZXJfbWFwOwotCXVuc2lnbmVkIGludCBhZ3BfYnVmZmVyX3Rva2VuOwotCXN0cnVjdCBkcm1fbWlub3IgKnByaW1hcnk7CQkvKio8IHJlbmRlciB0eXBlIHByaW1hcnkgc2NyZWVuIGhlYWQgKi8KLQotCS8qKiBcbmFtZSBEcmF3YWJsZSBpbmZvcm1hdGlvbiAqLwotCS8qQHsgKi8KLQlzcGlubG9ja190IGRyd19sb2NrOwotCXN0cnVjdCBpZHIgZHJ3X2lkcjsKLQkvKkB9ICovCi19OwotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkgICAgIGludCBmZWF0dXJlKQotewotCXJldHVybiAoKGRldi0+ZHJpdmVyLT5kcml2ZXJfZmVhdHVyZXMgJiBmZWF0dXJlKSA/IDEgOiAwKTsKLX0KLQotI2lmZGVmIF9fYWxwaGFfXwotI2RlZmluZSBkcm1fZ2V0X3BjaV9kb21haW4oZGV2KSBkZXYtPmhvc2UtPmluZGV4Ci0jZWxzZQotI2RlZmluZSBkcm1fZ2V0X3BjaV9kb21haW4oZGV2KSAwCi0jZW5kaWYKLQotI2lmIF9fT1NfSEFTX0FHUAotc3RhdGljIGlubGluZSBpbnQgZHJtX2NvcmVfaGFzX0FHUChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXJldHVybiBkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1VTRV9BR1ApOwotfQotI2Vsc2UKLSNkZWZpbmUgZHJtX2NvcmVfaGFzX0FHUChkZXYpICgwKQotI2VuZGlmCi0KLSNpZiBfX09TX0hBU19NVFJSCi1zdGF0aWMgaW5saW5lIGludCBkcm1fY29yZV9oYXNfTVRSUihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXJldHVybiBkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1VTRV9NVFJSKTsKLX0KLQotI2RlZmluZSBEUk1fTVRSUl9XQwkJTVRSUl9UWVBFX1dSQ09NQgotCi1zdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9hZGQodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIG10cnJfYWRkKG9mZnNldCwgc2l6ZSwgZmxhZ3MsIDEpOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9kZWwoaW50IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsCi0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIG10cnJfZGVsKGhhbmRsZSwgb2Zmc2V0LCBzaXplKTsKLX0KLQotI2Vsc2UKLSNkZWZpbmUgZHJtX2NvcmVfaGFzX01UUlIoZGV2KSAoMCkKLQotI2RlZmluZSBEUk1fTVRSUl9XQwkJMAotCi1zdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9hZGQodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGRybV9tdHJyX2RlbChpbnQgaGFuZGxlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKLQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGludCBmbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqIFxuYW1lIEludGVybmFsIGZ1bmN0aW9uIGRlZmluaXRpb25zICovCi0vKkB7Ki8KLQotCQkJCS8qIERyaXZlciBzdXBwb3J0IChkcm1fZHJ2LmgpICovCi1leHRlcm4gaW50IGRybV9pbml0KHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpOwotZXh0ZXJuIHZvaWQgZHJtX2V4aXQoc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcik7Ci1leHRlcm4gaW50IGRybV9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKLQkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7Ci1leHRlcm4gbG9uZyBkcm1fY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLAotCQkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7Ci1leHRlcm4gaW50IGRybV9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLQkJCQkvKiBEZXZpY2Ugc3VwcG9ydCAoZHJtX2ZvcHMuaCkgKi8KLWV4dGVybiBpbnQgZHJtX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOwotZXh0ZXJuIGludCBkcm1fc3R1Yl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKTsKLWV4dGVybiBpbnQgZHJtX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxwLCBpbnQgb24pOwotZXh0ZXJuIGludCBkcm1fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCk7Ci0KLQkJCQkvKiBNYXBwaW5nIHN1cHBvcnQgKGRybV92bS5oKSAqLwotZXh0ZXJuIGludCBkcm1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2NvcmVfZ2V0X21hcF9vZnMoc3RydWN0IGRybV9tYXAgKiBtYXApOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2NvcmVfZ2V0X3JlZ19vZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdW5zaWduZWQgaW50IGRybV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3QgKndhaXQpOwotCi0JCQkJLyogTWVtb3J5IG1hbmFnZW1lbnQgc3VwcG9ydCAoZHJtX21lbW9yeS5oKSAqLwotI2luY2x1ZGUgImRybV9tZW1vcnkuaCIKLWV4dGVybiB2b2lkIGRybV9tZW1faW5pdCh2b2lkKTsKLWV4dGVybiBpbnQgZHJtX21lbV9pbmZvKGNoYXIgKmJ1ZiwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsCi0JCQlpbnQgcmVxdWVzdCwgaW50ICplb2YsIHZvaWQgKmRhdGEpOwotZXh0ZXJuIHZvaWQgKmRybV9yZWFsbG9jKHZvaWQgKm9sZHB0LCBzaXplX3Qgb2xkc2l6ZSwgc2l6ZV90IHNpemUsIGludCBhcmVhKTsKLQotZXh0ZXJuIERSTV9BR1BfTUVNICpkcm1fYWxsb2NfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwYWdlcywgdTMyIHR5cGUpOwotZXh0ZXJuIGludCBkcm1fZnJlZV9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIGludCBwYWdlcyk7Ci1leHRlcm4gaW50IGRybV9iaW5kX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgdW5zaWduZWQgaW50IHN0YXJ0KTsKLWV4dGVybiBpbnQgZHJtX3VuYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUpOwotCi0JCQkJLyogTWlzYy4gSU9DVEwgc3VwcG9ydCAoZHJtX2lvY3RsLmgpICovCi1leHRlcm4gaW50IGRybV9pcnFfYnlfYnVzaWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9nZXR1bmlxdWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9zZXR1bmlxdWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9nZXRtYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0Y2xpZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0c3RhdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3NldHZlcnNpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fbm9vcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCi0JCQkJLyogQ29udGV4dCBJT0NUTCBzdXBwb3J0IChkcm1fY29udGV4dC5oKSAqLwotZXh0ZXJuIGludCBkcm1fcmVzY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FkZGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9tb2RjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0Y3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3N3aXRjaGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX25ld2N0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9ybWN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotZXh0ZXJuIGludCBkcm1fY3R4Yml0bWFwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fY3R4Yml0bWFwX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fY3R4Yml0bWFwX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGN0eF9oYW5kbGUpOwotCi1leHRlcm4gaW50IGRybV9zZXRzYXJlYWN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0c2FyZWFjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotCQkJCS8qIERyYXdhYmxlIElPQ1RMIHN1cHBvcnQgKGRybV9kcmF3YWJsZS5oKSAqLwotZXh0ZXJuIGludCBkcm1fYWRkZHJhdyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fcm1kcmF3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3VwZGF0ZV9kcmF3YWJsZV9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRybV9nZXRfZHJhd2FibGVfaW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkJICBkcm1fZHJhd2FibGVfdCBpZCk7Ci1leHRlcm4gdm9pZCBkcm1fZHJhd2FibGVfZnJlZV9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLQkJCQkvKiBBdXRoZW50aWNhdGlvbiBJT0NUTCBzdXBwb3J0IChkcm1fYXV0aC5oKSAqLwotZXh0ZXJuIGludCBkcm1fZ2V0bWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2F1dGhtYWdpYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotCQkJCS8qIExvY2tpbmcgSU9DVEwgc3VwcG9ydCAoZHJtX2xvY2suaCkgKi8KLWV4dGVybiBpbnQgZHJtX2xvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3VubG9jayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9sb2NrX3Rha2Uoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSwgdW5zaWduZWQgaW50IGNvbnRleHQpOwotZXh0ZXJuIGludCBkcm1fbG9ja19mcmVlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEsIHVuc2lnbmVkIGludCBjb250ZXh0KTsKLWV4dGVybiB2b2lkIGRybV9pZGxlbG9ja190YWtlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEpOwotZXh0ZXJuIHZvaWQgZHJtX2lkbGVsb2NrX3JlbGVhc2Uoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSk7Ci0KLS8qCi0gKiBUaGVzZSBhcmUgZXhwb3J0ZWQgdG8gZHJpdmVycyBzbyB0aGF0IHRoZXkgY2FuIGltcGxlbWVudCBmZW5jaW5nIHVzaW5nCi0gKiBETUEgcXVpc2NlbnQgKyBpZGxlLiBETUEgcXVpZXNjZW50IHVzdWFsbHkgcmVxdWlyZXMgdGhlIGhhcmR3YXJlIGxvY2suCi0gKi8KLQotZXh0ZXJuIGludCBkcm1faV9oYXZlX2h3X2xvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCi0JCQkJLyogQnVmZmVyIG1hbmFnZW1lbnQgc3VwcG9ydCAoZHJtX2J1ZnMuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2FkZGJ1ZnNfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MgKiByZXF1ZXN0KTsKLWV4dGVybiBpbnQgZHJtX2FkZGJ1ZnNfcGNpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MgKiByZXF1ZXN0KTsKLWV4dGVybiBpbnQgZHJtX2FkZG1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAotCQkgICAgICB1bnNpZ25lZCBpbnQgc2l6ZSwgZW51bSBkcm1fbWFwX3R5cGUgdHlwZSwKLQkJICAgICAgZW51bSBkcm1fbWFwX2ZsYWdzIGZsYWdzLCBkcm1fbG9jYWxfbWFwX3QgKiogbWFwX3B0cik7Ci1leHRlcm4gaW50IGRybV9hZGRtYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9ybW1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fbG9jYWxfbWFwX3QgKm1hcCk7Ci1leHRlcm4gaW50IGRybV9ybW1hcF9sb2NrZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZHJtX2xvY2FsX21hcF90ICptYXApOwotZXh0ZXJuIGludCBkcm1fcm1tYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FkZGJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2luZm9idWZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9tYXJrYnVmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZnJlZWJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX21hcGJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX29yZGVyKHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBkcm1fZ2V0X3Jlc291cmNlX3N0YXJ0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJCSAgICB1bnNpZ25lZCBpbnQgcmVzb3VyY2UpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2dldF9yZXNvdXJjZV9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJICB1bnNpZ25lZCBpbnQgcmVzb3VyY2UpOwotCi0JCQkJLyogRE1BIHN1cHBvcnQgKGRybV9kbWEuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2RtYV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIGRybV9kbWFfdGFrZWRvd24oc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fZnJlZV9idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9idWYgKiBidWYpOwotZXh0ZXJuIHZvaWQgZHJtX2NvcmVfcmVjbGFpbV9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwotCi0JCQkJLyogSVJRIHN1cHBvcnQgKGRybV9pcnEuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2NvbnRyb2woc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpcnFyZXR1cm5fdCBkcm1faXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKTsKLWV4dGVybiBpbnQgZHJtX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fZHJpdmVyX2lycV9wcmVpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIHZvaWQgZHJtX2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fZHJpdmVyX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLWV4dGVybiBpbnQgZHJtX3dhaXRfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnZibF9zZXEpOwotZXh0ZXJuIHZvaWQgZHJtX3ZibF9zZW5kX3NpZ25hbHMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fbG9ja2VkX3Rhc2tsZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCgqZnVuYykoc3RydWN0IGRybV9kZXZpY2UqKSk7Ci0KLQkJCQkvKiBBR1AvR0FSVCBzdXBwb3J0IChkcm1fYWdwc3VwcG9ydC5oKSAqLwotZXh0ZXJuIHN0cnVjdCBkcm1fYWdwX2hlYWQgKmRybV9hZ3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiBpbnQgZHJtX2FncF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX2FjcXVpcmVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IGRybV9hZ3BfcmVsZWFzZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9hZ3BfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX21vZGUgbW9kZSk7Ci1leHRlcm4gaW50IGRybV9hZ3BfZW5hYmxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfaW5mbyAqaW5mbyk7Ci1leHRlcm4gaW50IGRybV9hZ3BfaW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2J1ZmZlciAqcmVxdWVzdCk7Ci1leHRlcm4gaW50IGRybV9hZ3BfYWxsb2NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9hZ3BfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9idWZmZXIgKnJlcXVlc3QpOwotZXh0ZXJuIGludCBkcm1fYWdwX2ZyZWVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FncF91bmJpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfYmluZGluZyAqcmVxdWVzdCk7Ci1leHRlcm4gaW50IGRybV9hZ3BfdW5iaW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FncF9iaW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcgKnJlcXVlc3QpOwotZXh0ZXJuIGludCBkcm1fYWdwX2JpbmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBEUk1fQUdQX01FTSAqZHJtX2FncF9hbGxvY2F0ZV9tZW1vcnkoc3RydWN0IGFncF9icmlkZ2VfZGF0YSAqYnJpZGdlLCBzaXplX3QgcGFnZXMsIHUzMiB0eXBlKTsKLWV4dGVybiBpbnQgZHJtX2FncF9mcmVlX21lbW9yeShEUk1fQUdQX01FTSAqIGhhbmRsZSk7Ci1leHRlcm4gaW50IGRybV9hZ3BfYmluZF9tZW1vcnkoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIG9mZl90IHN0YXJ0KTsKLWV4dGVybiBpbnQgZHJtX2FncF91bmJpbmRfbWVtb3J5KERSTV9BR1BfTUVNICogaGFuZGxlKTsKLQotCQkJCS8qIFN0dWIgc3VwcG9ydCAoZHJtX3N0dWIuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2dldF9kZXYoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyKTsKLWV4dGVybiBpbnQgZHJtX3B1dF9kZXYoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IGRybV9wdXRfbWlub3Ioc3RydWN0IGRybV9taW5vciAqKm1pbm9yKTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgZHJtX2RlYnVnOwotCi1leHRlcm4gc3RydWN0IGNsYXNzICpkcm1fY2xhc3M7Ci1leHRlcm4gc3RydWN0IHByb2NfZGlyX2VudHJ5ICpkcm1fcHJvY19yb290OwotCi1leHRlcm4gc3RydWN0IGlkciBkcm1fbWlub3JzX2lkcjsKLQotZXh0ZXJuIGRybV9sb2NhbF9tYXBfdCAqZHJtX2dldHNhcmVhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi0JCQkJLyogUHJvYyBzdXBwb3J0IChkcm1fcHJvYy5oKSAqLwotZXh0ZXJuIGludCBkcm1fcHJvY19pbml0KHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yLCBpbnQgbWlub3JfaWQsCi0JCQkgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpyb290KTsKLWV4dGVybiBpbnQgZHJtX3Byb2NfY2xlYW51cChzdHJ1Y3QgZHJtX21pbm9yICptaW5vciwgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpyb290KTsKLQotCQkJCS8qIFNjYXR0ZXIgR2F0aGVyIFN1cHBvcnQgKGRybV9zY2F0dGVyLmgpICovCi1leHRlcm4gdm9pZCBkcm1fc2dfY2xlYW51cChzdHJ1Y3QgZHJtX3NnX21lbSAqIGVudHJ5KTsKLWV4dGVybiBpbnQgZHJtX3NnX2FsbG9jX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9zZ19hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyICogcmVxdWVzdCk7Ci1leHRlcm4gaW50IGRybV9zZ19mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0KLQkJCSAgICAgICAvKiBBVEkgUENJR0FSVCBzdXBwb3J0IChhdGlfcGNpZ2FydC5oKSAqLwotZXh0ZXJuIGludCBkcm1fYXRpX3BjaWdhcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCXN0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyAqIGdhcnRfaW5mbyk7Ci1leHRlcm4gaW50IGRybV9hdGlfcGNpZ2FydF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICogZ2FydF9pbmZvKTsKLQotZXh0ZXJuIGRybV9kbWFfaGFuZGxlX3QgKmRybV9wY2lfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCi0JCQkJICAgICAgIHNpemVfdCBhbGlnbiwgZG1hX2FkZHJfdCBtYXhhZGRyKTsKLWV4dGVybiB2b2lkIF9fZHJtX3BjaV9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGRybV9kbWFfaGFuZGxlX3QgKiBkbWFoKTsKLWV4dGVybiB2b2lkIGRybV9wY2lfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fZG1hX2hhbmRsZV90ICogZG1haCk7Ci0KLQkJCSAgICAgICAvKiBzeXNmcyBzdXBwb3J0IChkcm1fc3lzZnMuYykgKi8KLXN0cnVjdCBkcm1fc3lzZnNfY2xhc3M7Ci1leHRlcm4gc3RydWN0IGNsYXNzICpkcm1fc3lzZnNfY3JlYXRlKHN0cnVjdCBtb2R1bGUgKm93bmVyLCBjaGFyICpuYW1lKTsKLWV4dGVybiB2b2lkIGRybV9zeXNmc19kZXN0cm95KHZvaWQpOwotZXh0ZXJuIGludCBkcm1fc3lzZnNfZGV2aWNlX2FkZChzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7Ci1leHRlcm4gdm9pZCBkcm1fc3lzZnNfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7Ci0KLS8qCi0gKiBCYXNpYyBtZW1vcnkgbWFuYWdlciBzdXBwb3J0IChkcm1fbW0uYykKLSAqLwotZXh0ZXJuIHN0cnVjdCBkcm1fbW1fbm9kZSAqZHJtX21tX2dldF9ibG9jayhzdHJ1Y3QgZHJtX21tX25vZGUgKiBwYXJlbnQsCi0JCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCQkgICAgICAgdW5zaWduZWQgYWxpZ25tZW50KTsKLWV4dGVybiB2b2lkIGRybV9tbV9wdXRfYmxvY2soc3RydWN0IGRybV9tbV9ub2RlICogY3VyKTsKLWV4dGVybiBzdHJ1Y3QgZHJtX21tX25vZGUgKmRybV9tbV9zZWFyY2hfZnJlZShjb25zdCBzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzaXplLAotCQkJCQkgdW5zaWduZWQgYWxpZ25tZW50LCBpbnQgYmVzdF9tYXRjaCk7Ci1leHRlcm4gaW50IGRybV9tbV9pbml0KHN0cnVjdCBkcm1fbW0gKm1tLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpOwotZXh0ZXJuIHZvaWQgZHJtX21tX3Rha2Vkb3duKHN0cnVjdCBkcm1fbW0gKm1tKTsKLWV4dGVybiBpbnQgZHJtX21tX2NsZWFuKHN0cnVjdCBkcm1fbW0gKm1tKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIGRybV9tbV90YWlsX3NwYWNlKHN0cnVjdCBkcm1fbW0gKm1tKTsKLWV4dGVybiBpbnQgZHJtX21tX3JlbW92ZV9zcGFjZV9mcm9tX3RhaWwoc3RydWN0IGRybV9tbSAqbW0sIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gaW50IGRybV9tbV9hZGRfc3BhY2VfdG9fdGFpbChzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzaXplKTsKLQotZXh0ZXJuIHZvaWQgZHJtX2NvcmVfaW9yZW1hcChzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIGRybV9jb3JlX2lvcmVtYXBmcmVlKHN0cnVjdCBkcm1fbWFwICptYXAsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi1zdGF0aWMgX19pbmxpbmVfXyBzdHJ1Y3QgZHJtX21hcCAqZHJtX2NvcmVfZmluZG1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkJICAgdW5zaWduZWQgaW50IHRva2VuKQotewotCXN0cnVjdCBkcm1fbWFwX2xpc3QgKl9lbnRyeTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KF9lbnRyeSwgJmRldi0+bWFwbGlzdCwgaGVhZCkKLQkgICAgaWYgKF9lbnRyeS0+dXNlcl90b2tlbiA9PSB0b2tlbikKLQkJcmV0dXJuIF9lbnRyeS0+bWFwOwotCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgZHJtX2RldmljZV9pc19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpZiAoZGV2LT5kcml2ZXItPmRldmljZV9pc19hZ3AgIT0gTlVMTCkgewotCQlpbnQgZXJyID0gKCpkZXYtPmRyaXZlci0+ZGV2aWNlX2lzX2FncCkgKGRldik7Ci0KLQkJaWYgKGVyciAhPSAyKSB7Ci0JCQlyZXR1cm4gZXJyOwotCQl9Ci0JfQotCi0JcmV0dXJuIHBjaV9maW5kX2NhcGFiaWxpdHkoZGV2LT5wZGV2LCBQQ0lfQ0FQX0lEX0FHUCk7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCBkcm1fZGV2aWNlX2lzX3BjaWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlyZXR1cm4gcGNpX2ZpbmRfY2FwYWJpbGl0eShkZXYtPnBkZXYsIFBDSV9DQVBfSURfRVhQKTsKLX0KLQotc3RhdGljIF9faW5saW5lX18gdm9pZCBkcm1fY29yZV9kcm9wbWFwKHN0cnVjdCBkcm1fbWFwICptYXApCi17Ci19Ci0KLSNpZm5kZWYgREVCVUdfTUVNT1JZCi0vKiogV3JhcHBlciBhcm91bmQga21hbGxvYygpICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkICpkcm1fYWxsb2Moc2l6ZV90IHNpemUsIGludCBhcmVhKQotewotCXJldHVybiBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwotfQotCi0vKiogV3JhcHBlciBhcm91bmQga2ZyZWUoKSAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBkcm1fZnJlZSh2b2lkICpwdCwgc2l6ZV90IHNpemUsIGludCBhcmVhKQotewotCWtmcmVlKHB0KTsKLX0KLQotLyoqIFdyYXBwZXIgYXJvdW5kIGtjYWxsb2MoKSAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCAqZHJtX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBpbnQgYXJlYSkKLXsKLQlyZXR1cm4ga2NhbGxvYyhubWVtYiwgc2l6ZSwgR0ZQX0tFUk5FTCk7Ci19Ci0jZWxzZQotZXh0ZXJuIHZvaWQgKmRybV9hbGxvYyhzaXplX3Qgc2l6ZSwgaW50IGFyZWEpOwotZXh0ZXJuIHZvaWQgZHJtX2ZyZWUodm9pZCAqcHQsIHNpemVfdCBzaXplLCBpbnQgYXJlYSk7Ci1leHRlcm4gdm9pZCAqZHJtX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBpbnQgYXJlYSk7Ci0jZW5kaWYKLQotLypAfSovCi0KLSNlbmRpZgkJCQkvKiBfX0tFUk5FTF9fICovCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvY2hhci9kcm0vZHJtX2ZvcHMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDJlNmRhOC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9mb3BzLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0NjYgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBkcm1fZm9wcy5jCi0gKiBGaWxlIG9wZXJhdGlvbnMgZm9yIERSTQotICoKLSAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+Ci0gKiBcYXV0aG9yIERhcnlsbCBTdHJhdXNzIDxkYXJ5bGxAdmFsaW51eC5jb20+Ci0gKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0vKgotICogQ3JlYXRlZDogTW9uIEphbiAgNCAwODo1ODozMSAxOTk5IGJ5IGZhaXRoQHZhbGludXguY29tCi0gKgotICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybV9zYXJlYS5oIgotI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KLQotc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCi0JCQkgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci0KLXN0YXRpYyBpbnQgZHJtX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9sb2NhbF9tYXBfdCAqbWFwOwotCWludCBpOwotCWludCByZXQ7Ci0JdTMyIHNhcmVhcGFnZTsKLQotCWlmIChkZXYtPmRyaXZlci0+Zmlyc3RvcGVuKSB7Ci0JCXJldCA9IGRldi0+ZHJpdmVyLT5maXJzdG9wZW4oZGV2KTsKLQkJaWYgKHJldCAhPSAwKQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlkZXYtPm1hZ2ljZnJlZS5uZXh0ID0gTlVMTDsKLQotCS8qIHByZWJ1aWxkIHRoZSBTQVJFQSAqLwotCXNhcmVhcGFnZSA9IG1heF90KHVuc2lnbmVkLCBTQVJFQV9NQVgsIFBBR0VfU0laRSk7Ci0JaSA9IGRybV9hZGRtYXAoZGV2LCAwLCBzYXJlYXBhZ2UsIF9EUk1fU0hNLCBfRFJNX0NPTlRBSU5TX0xPQ0ssICZtYXApOwotCWlmIChpICE9IDApCi0JCXJldHVybiBpOwotCi0JYXRvbWljX3NldCgmZGV2LT5pb2N0bF9jb3VudCwgMCk7Ci0JYXRvbWljX3NldCgmZGV2LT52bWFfY291bnQsIDApOwotCWRldi0+YnVmX3VzZSA9IDA7Ci0JYXRvbWljX3NldCgmZGV2LT5idWZfYWxsb2MsIDApOwotCi0JaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfSEFWRV9ETUEpKSB7Ci0JCWkgPSBkcm1fZG1hX3NldHVwKGRldik7Ci0JCWlmIChpIDwgMCkKLQkJCXJldHVybiBpOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRldi0+Y291bnRzKTsgaSsrKQotCQlhdG9taWNfc2V0KCZkZXYtPmNvdW50c1tpXSwgMCk7Ci0KLQlkcm1faHRfY3JlYXRlKCZkZXYtPm1hZ2ljbGlzdCwgRFJNX01BR0lDX0hBU0hfT1JERVIpOwotCUlOSVRfTElTVF9IRUFEKCZkZXYtPm1hZ2ljZnJlZSk7Ci0KLQlkZXYtPnNpZ2RhdGEubG9jayA9IE5VTEw7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5sb2NrLmxvY2tfcXVldWUpOwotCWRldi0+cXVldWVfY291bnQgPSAwOwotCWRldi0+cXVldWVfcmVzZXJ2ZWQgPSAwOwotCWRldi0+cXVldWVfc2xvdHMgPSAwOwotCWRldi0+cXVldWVsaXN0ID0gTlVMTDsKLQlkZXYtPmlycV9lbmFibGVkID0gMDsKLQlkZXYtPmNvbnRleHRfZmxhZyA9IDA7Ci0JZGV2LT5pbnRlcnJ1cHRfZmxhZyA9IDA7Ci0JZGV2LT5kbWFfZmxhZyA9IDA7Ci0JZGV2LT5sYXN0X2NvbnRleHQgPSAwOwotCWRldi0+bGFzdF9zd2l0Y2ggPSAwOwotCWRldi0+bGFzdF9jaGVja2VkID0gMDsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXYtPmNvbnRleHRfd2FpdCk7Ci0JZGV2LT5pZl92ZXJzaW9uID0gMDsKLQotCWRldi0+Y3R4X3N0YXJ0ID0gMDsKLQlkZXYtPmxja19zdGFydCA9IDA7Ci0KLQlkZXYtPmJ1Zl9hc3luYyA9IE5VTEw7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5idWZfcmVhZGVycyk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5idWZfd3JpdGVycyk7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQkvKgotCSAqIFRoZSBrZXJuZWwncyBjb250ZXh0IGNvdWxkIGJlIGNyZWF0ZWQgaGVyZSwgYnV0IGlzIG5vdyBjcmVhdGVkCi0JICogaW4gZHJtX2RtYV9lbnF1ZXVlLiAgVGhpcyBpcyBtb3JlIHJlc291cmNlLWVmZmljaWVudCBmb3IKLQkgKiBoYXJkd2FyZSB0aGF0IGRvZXMgbm90IGRvIERNQSwgYnV0IG1heSBtZWFuIHRoYXQKLQkgKiBkcm1fc2VsZWN0X3F1ZXVlIGZhaWxzIGJldHdlZW4gdGhlIHRpbWUgdGhlIGludGVycnVwdCBpcwotCSAqIGluaXRpYWxpemVkIGFuZCB0aGUgdGltZSB0aGUgcXVldWVzIGFyZSBpbml0aWFsaXplZC4KLQkgKi8KLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIE9wZW4gZmlsZS4KLSAqCi0gKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlCi0gKiBccGFyYW0gZmlscCBmaWxlIHBvaW50ZXIuCi0gKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgotICoKLSAqIFNlYXJjaGVzIHRoZSBEUk0gZGV2aWNlIHdpdGggdGhlIHNhbWUgbWlub3IgbnVtYmVyLCBjYWxscyBvcGVuX2hlbHBlcigpLCBhbmQKLSAqIGluY3JlbWVudHMgdGhlIGRldmljZSBvcGVuIGNvdW50LiBJZiB0aGUgb3BlbiBjb3VudCB3YXMgcHJldmlvdXMgYXQgemVybywKLSAqIGkuZS4sIGl0J3MgdGhlIGZpcnN0IHRoYXQgdGhlIGRldmljZSBpcyBvcGVuLCB0aGVuIGNhbGxzIHNldHVwKCkuCi0gKi8KLWludCBkcm1fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gTlVMTDsKLQlpbnQgbWlub3JfaWQgPSBpbWlub3IoaW5vZGUpOwotCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yOwotCWludCByZXRjb2RlID0gMDsKLQotCW1pbm9yID0gaWRyX2ZpbmQoJmRybV9taW5vcnNfaWRyLCBtaW5vcl9pZCk7Ci0JaWYgKCFtaW5vcikKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlpZiAoIShkZXYgPSBtaW5vci0+ZGV2KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlyZXRjb2RlID0gZHJtX29wZW5faGVscGVyKGlub2RlLCBmaWxwLCBkZXYpOwotCWlmICghcmV0Y29kZSkgewotCQlhdG9taWNfaW5jKCZkZXYtPmNvdW50c1tfRFJNX1NUQVRfT1BFTlNdKTsKLQkJc3Bpbl9sb2NrKCZkZXYtPmNvdW50X2xvY2spOwotCQlpZiAoIWRldi0+b3Blbl9jb3VudCsrKSB7Ci0JCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQkJCXJldHVybiBkcm1fc2V0dXAoZGV2KTsKLQkJfQotCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQl9Ci0KLQlyZXR1cm4gcmV0Y29kZTsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX29wZW4pOwotCi0vKioKLSAqIEZpbGUgXGMgb3BlbiBvcGVyYXRpb24uCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxwIGZpbGUgcG9pbnRlci4KLSAqCi0gKiBQdXRzIHRoZSBkZXYtPmZvcHMgY29ycmVzcG9uZGluZyB0byB0aGUgZGV2aWNlIG1pbm9yIG51bWJlciBpbnRvCi0gKiBccCBmaWxwLCBjYWxsIHRoZSBcYyBvcGVuIG1ldGhvZCwgYW5kIHJlc3RvcmUgdGhlIGZpbGUgb3BlcmF0aW9ucy4KLSAqLwotaW50IGRybV9zdHViX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IE5VTEw7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlub3I7Ci0JaW50IG1pbm9yX2lkID0gaW1pbm9yKGlub2RlKTsKLQlpbnQgZXJyID0gLUVOT0RFVjsKLQljb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpvbGRfZm9wczsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCW1pbm9yID0gaWRyX2ZpbmQoJmRybV9taW5vcnNfaWRyLCBtaW5vcl9pZCk7Ci0JaWYgKCFtaW5vcikKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlpZiAoIShkZXYgPSBtaW5vci0+ZGV2KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlvbGRfZm9wcyA9IGZpbHAtPmZfb3A7Ci0JZmlscC0+Zl9vcCA9IGZvcHNfZ2V0KCZkZXYtPmRyaXZlci0+Zm9wcyk7Ci0JaWYgKGZpbHAtPmZfb3AtPm9wZW4gJiYgKGVyciA9IGZpbHAtPmZfb3AtPm9wZW4oaW5vZGUsIGZpbHApKSkgewotCQlmb3BzX3B1dChmaWxwLT5mX29wKTsKLQkJZmlscC0+Zl9vcCA9IGZvcHNfZ2V0KG9sZF9mb3BzKTsKLQl9Ci0JZm9wc19wdXQob2xkX2ZvcHMpOwotCi0JcmV0dXJuIGVycjsKLX0KLQotLyoqCi0gKiBDaGVjayB3aGV0aGVyIERSSSB3aWxsIHJ1biBvbiB0aGlzIENQVS4KLSAqCi0gKiBccmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBEUkkgd2lsbCBydW4gb24gdGhpcyBDUFUsIG9yIHplcm8gb3RoZXJ3aXNlLgotICovCi1zdGF0aWMgaW50IGRybV9jcHVfdmFsaWQodm9pZCkKLXsKLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotCWlmIChib290X2NwdV9kYXRhLng4NiA9PSAzKQotCQlyZXR1cm4gMDsJLyogTm8gY21weGNoZyBvbiBhIDM4NiAqLwotI2VuZGlmCi0jaWYgZGVmaW5lZChfX3NwYXJjX18pICYmICFkZWZpbmVkKF9fc3BhcmNfdjlfXykKLQlyZXR1cm4gMDsJCS8qIE5vIGNtcHhjaGcgYmVmb3JlIHY5IHNwYXJjLiAqLwotI2VuZGlmCi0JcmV0dXJuIDE7Ci19Ci0KLS8qKgotICogQ2FsbGVkIHdoZW5ldmVyIGEgcHJvY2VzcyBvcGVucyAvZGV2L2RybS4KLSAqCi0gKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgotICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyLgotICogXHBhcmFtIGRldiBkZXZpY2UuCi0gKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgotICoKLSAqIENyZWF0ZXMgYW5kIGluaXRpYWxpemVzIGEgZHJtX2ZpbGUgc3RydWN0dXJlIGZvciB0aGUgZmlsZSBwcml2YXRlIGRhdGEgaW4gXHAKLSAqIGZpbHAgYW5kIGFkZCBpdCBpbnRvIHRoZSBkb3VibGUgbGlua2VkIGxpc3QgaW4gXHAgZGV2LgotICovCi1zdGF0aWMgaW50IGRybV9vcGVuX2hlbHBlcihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKLQkJCSAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWludCBtaW5vcl9pZCA9IGltaW5vcihpbm9kZSk7Ci0Jc3RydWN0IGRybV9maWxlICpwcml2OwotCWludCByZXQ7Ci0KLQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fRVhDTCkKLQkJcmV0dXJuIC1FQlVTWTsJLyogTm8gZXhjbHVzaXZlIG9wZW5zICovCi0JaWYgKCFkcm1fY3B1X3ZhbGlkKCkpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JRFJNX0RFQlVHKCJwaWQgPSAlZCwgbWlub3IgPSAlZFxuIiwgdGFza19waWRfbnIoY3VycmVudCksIG1pbm9yX2lkKTsKLQotCXByaXYgPSBkcm1fYWxsb2Moc2l6ZW9mKCpwcml2KSwgRFJNX01FTV9GSUxFUyk7Ci0JaWYgKCFwcml2KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW1lbXNldChwcml2LCAwLCBzaXplb2YoKnByaXYpKTsKLQlmaWxwLT5wcml2YXRlX2RhdGEgPSBwcml2OwotCXByaXYtPmZpbHAgPSBmaWxwOwotCXByaXYtPnVpZCA9IGN1cnJlbnQtPmV1aWQ7Ci0JcHJpdi0+cGlkID0gdGFza19waWRfbnIoY3VycmVudCk7Ci0JcHJpdi0+bWlub3IgPSBpZHJfZmluZCgmZHJtX21pbm9yc19pZHIsIG1pbm9yX2lkKTsKLQlwcml2LT5pb2N0bF9jb3VudCA9IDA7Ci0JLyogZm9yIGNvbXBhdGliaWxpdHkgcm9vdCBpcyBhbHdheXMgYXV0aGVudGljYXRlZCAqLwotCXByaXYtPmF1dGhlbnRpY2F0ZWQgPSBjYXBhYmxlKENBUF9TWVNfQURNSU4pOwotCXByaXYtPmxvY2tfY291bnQgPSAwOwotCi0JSU5JVF9MSVNUX0hFQUQoJnByaXYtPmxoZWFkKTsKLQotCWlmIChkZXYtPmRyaXZlci0+b3BlbikgewotCQlyZXQgPSBkZXYtPmRyaXZlci0+b3BlbihkZXYsIHByaXYpOwotCQlpZiAocmV0IDwgMCkKLQkJCWdvdG8gb3V0X2ZyZWU7Ci0JfQotCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCWlmIChsaXN0X2VtcHR5KCZkZXYtPmZpbGVsaXN0KSkKLQkJcHJpdi0+bWFzdGVyID0gMTsKLQotCWxpc3RfYWRkKCZwcml2LT5saGVhZCwgJmRldi0+ZmlsZWxpc3QpOwotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0jaWZkZWYgX19hbHBoYV9fCi0JLyoKLQkgKiBEZWZhdWx0IHRoZSBob3NlCi0JICovCi0JaWYgKCFkZXYtPmhvc2UpIHsKLQkJc3RydWN0IHBjaV9kZXYgKnBjaV9kZXY7Ci0JCXBjaV9kZXYgPSBwY2lfZ2V0X2NsYXNzKFBDSV9DTEFTU19ESVNQTEFZX1ZHQSA8PCA4LCBOVUxMKTsKLQkJaWYgKHBjaV9kZXYpIHsKLQkJCWRldi0+aG9zZSA9IHBjaV9kZXYtPnN5c2RhdGE7Ci0JCQlwY2lfZGV2X3B1dChwY2lfZGV2KTsKLQkJfQotCQlpZiAoIWRldi0+aG9zZSkgewotCQkJc3RydWN0IHBjaV9idXMgKmIgPSBwY2lfYnVzX2IocGNpX3Jvb3RfYnVzZXMubmV4dCk7Ci0JCQlpZiAoYikKLQkJCQlkZXYtPmhvc2UgPSBiLT5zeXNkYXRhOwotCQl9Ci0JfQotI2VuZGlmCi0KLQlyZXR1cm4gMDsKLSAgICAgIG91dF9mcmVlOgotCWRybV9mcmVlKHByaXYsIHNpemVvZigqcHJpdiksIERSTV9NRU1fRklMRVMpOwotCWZpbHAtPnByaXZhdGVfZGF0YSA9IE5VTEw7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyoqIE5vLW9wLiAqLwotaW50IGRybV9mYXN5bmMoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlscCwgaW50IG9uKQotewotCXN0cnVjdCBkcm1fZmlsZSAqcHJpdiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHJpdi0+bWlub3ItPmRldjsKLQlpbnQgcmV0Y29kZTsKLQotCURSTV9ERUJVRygiZmQgPSAlZCwgZGV2aWNlID0gMHglbHhcbiIsIGZkLAotCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KHByaXYtPm1pbm9yLT5kZXZpY2UpKTsKLQlyZXRjb2RlID0gZmFzeW5jX2hlbHBlcihmZCwgZmlscCwgb24sICZkZXYtPmJ1Zl9hc3luYyk7Ci0JaWYgKHJldGNvZGUgPCAwKQotCQlyZXR1cm4gcmV0Y29kZTsKLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2Zhc3luYyk7Ci0KLS8qKgotICogUmVsZWFzZSBmaWxlLgotICoKLSAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUKLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZS4KLSAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgbnVtYmVyIG9uIGZhaWx1cmUuCi0gKgotICogSWYgdGhlIGhhcmR3YXJlIGxvY2sgaXMgaGVsZCB0aGVuIGZyZWUgaXQsIGFuZCB0YWtlIGl0IGFnYWluIGZvciB0aGUga2VybmVsCi0gKiBjb250ZXh0IHNpbmNlIGl0J3MgbmVjZXNzYXJ5IHRvIHJlY2xhaW0gYnVmZmVycy4gVW5saW5rIHRoZSBmaWxlIHByaXZhdGUKLSAqIGRhdGEgZnJvbSBpdHMgbGlzdCBhbmQgZnJlZSBpdC4gRGVjcmVhc2VzIHRoZSBvcGVuIGNvdW50IGFuZCBpZiBpdCByZWFjaGVzCi0gKiB6ZXJvIGNhbGxzIGRybV9sYXN0Y2xvc2UoKS4KLSAqLwotaW50IGRybV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQotewotCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmaWxlX3ByaXYtPm1pbm9yLT5kZXY7Ci0JaW50IHJldGNvZGUgPSAwOwotCi0JbG9ja19rZXJuZWwoKTsKLQotCURSTV9ERUJVRygib3Blbl9jb3VudCA9ICVkXG4iLCBkZXYtPm9wZW5fY291bnQpOwotCi0JaWYgKGRldi0+ZHJpdmVyLT5wcmVjbG9zZSkKLQkJZGV2LT5kcml2ZXItPnByZWNsb3NlKGRldiwgZmlsZV9wcml2KTsKLQotCS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0JICogQmVnaW4gaW5saW5lIGRybV9yZWxlYXNlCi0JICovCi0KLQlEUk1fREVCVUcoInBpZCA9ICVkLCBkZXZpY2UgPSAweCVseCwgb3Blbl9jb3VudCA9ICVkXG4iLAotCQkgIHRhc2tfcGlkX25yKGN1cnJlbnQpLAotCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KGZpbGVfcHJpdi0+bWlub3ItPmRldmljZSksCi0JCSAgZGV2LT5vcGVuX2NvdW50KTsKLQotCWlmIChkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzX2xvY2tlZCAmJiBkZXYtPmxvY2suaHdfbG9jaykgewotCQlpZiAoZHJtX2lfaGF2ZV9od19sb2NrKGRldiwgZmlsZV9wcml2KSkgewotCQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQoZGV2LCBmaWxlX3ByaXYpOwotCQl9IGVsc2UgewotCQkJdW5zaWduZWQgbG9uZyBlbmR0aW1lID0gamlmZmllcyArIDMgKiBEUk1fSFo7Ci0JCQlpbnQgbG9ja2VkID0gMDsKLQotCQkJZHJtX2lkbGVsb2NrX3Rha2UoJmRldi0+bG9jayk7Ci0KLQkJCS8qCi0JCQkgKiBXYWl0IGZvciBhIHdoaWxlLgotCQkJICovCi0KLQkJCWRvewotCQkJCXNwaW5fbG9ja19iaCgmZGV2LT5sb2NrLnNwaW5sb2NrKTsKLQkJCQlsb2NrZWQgPSBkZXYtPmxvY2suaWRsZV9oYXNfbG9jazsKLQkJCQlzcGluX3VubG9ja19iaCgmZGV2LT5sb2NrLnNwaW5sb2NrKTsKLQkJCQlpZiAobG9ja2VkKQotCQkJCQlicmVhazsKLQkJCQlzY2hlZHVsZSgpOwotCQkJfSB3aGlsZSAoIXRpbWVfYWZ0ZXJfZXEoamlmZmllcywgZW5kdGltZSkpOwotCi0JCQlpZiAoIWxvY2tlZCkgewotCQkJCURSTV9FUlJPUigicmVjbGFpbV9idWZmZXJzX2xvY2tlZCgpIGRlYWRsb2NrLiBQbGVhc2UgcmV3b3JrIHRoaXNcbiIKLQkJCQkJICAiXHRkcml2ZXIgdG8gdXNlIHJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkKCkgaW5zdGVhZC5cbiIKLQkJCQkJICAiXHRJIHdpbGwgZ28gb24gcmVjbGFpbWluZyB0aGUgYnVmZmVycyBhbnl3YXkuXG4iKTsKLQkJCX0KLQotCQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQoZGV2LCBmaWxlX3ByaXYpOwotCQkJZHJtX2lkbGVsb2NrX3JlbGVhc2UoJmRldi0+bG9jayk7Ci0JCX0KLQl9Ci0KLQlpZiAoZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkICYmIGRldi0+bG9jay5od19sb2NrKSB7Ci0KLQkJZHJtX2lkbGVsb2NrX3Rha2UoJmRldi0+bG9jayk7Ci0JCWRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnNfaWRsZWxvY2tlZChkZXYsIGZpbGVfcHJpdik7Ci0JCWRybV9pZGxlbG9ja19yZWxlYXNlKCZkZXYtPmxvY2spOwotCi0JfQotCi0JaWYgKGRybV9pX2hhdmVfaHdfbG9jayhkZXYsIGZpbGVfcHJpdikpIHsKLQkJRFJNX0RFQlVHKCJGaWxlICVwIHJlbGVhc2VkLCBmcmVlaW5nIGxvY2sgZm9yIGNvbnRleHQgJWRcbiIsCi0JCQkgIGZpbHAsIF9EUk1fTE9DS0lOR19DT05URVhUKGRldi0+bG9jay5od19sb2NrLT5sb2NrKSk7Ci0KLQkJZHJtX2xvY2tfZnJlZSgmZGV2LT5sb2NrLAotCQkJICAgICAgX0RSTV9MT0NLSU5HX0NPTlRFWFQoZGV2LT5sb2NrLmh3X2xvY2stPmxvY2spKTsKLQl9Ci0KLQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0hBVkVfRE1BKSAmJgotCSAgICAhZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQpIHsKLQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVycyhkZXYsIGZpbGVfcHJpdik7Ci0JfQotCi0JZHJtX2Zhc3luYygtMSwgZmlscCwgMCk7Ci0KLQltdXRleF9sb2NrKCZkZXYtPmN0eGxpc3RfbXV0ZXgpOwotCWlmICghbGlzdF9lbXB0eSgmZGV2LT5jdHhsaXN0KSkgewotCQlzdHJ1Y3QgZHJtX2N0eF9saXN0ICpwb3MsICpuOwotCi0JCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwb3MsIG4sICZkZXYtPmN0eGxpc3QsIGhlYWQpIHsKLQkJCWlmIChwb3MtPnRhZyA9PSBmaWxlX3ByaXYgJiYKLQkJCSAgICBwb3MtPmhhbmRsZSAhPSBEUk1fS0VSTkVMX0NPTlRFWFQpIHsKLQkJCQlpZiAoZGV2LT5kcml2ZXItPmNvbnRleHRfZHRvcikKLQkJCQkJZGV2LT5kcml2ZXItPmNvbnRleHRfZHRvcihkZXYsCi0JCQkJCQkJCSAgcG9zLT5oYW5kbGUpOwotCi0JCQkJZHJtX2N0eGJpdG1hcF9mcmVlKGRldiwgcG9zLT5oYW5kbGUpOwotCi0JCQkJbGlzdF9kZWwoJnBvcy0+aGVhZCk7Ci0JCQkJZHJtX2ZyZWUocG9zLCBzaXplb2YoKnBvcyksIERSTV9NRU1fQ1RYTElTVCk7Ci0JCQkJLS1kZXYtPmN0eF9jb3VudDsKLQkJCX0KLQkJfQotCX0KLQltdXRleF91bmxvY2soJmRldi0+Y3R4bGlzdF9tdXRleCk7Ci0KLQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JaWYgKGZpbGVfcHJpdi0+cmVtb3ZlX2F1dGhfb25fY2xvc2UgPT0gMSkgewotCQlzdHJ1Y3QgZHJtX2ZpbGUgKnRlbXA7Ci0KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeSh0ZW1wLCAmZGV2LT5maWxlbGlzdCwgbGhlYWQpCi0JCQl0ZW1wLT5hdXRoZW50aWNhdGVkID0gMDsKLQl9Ci0JbGlzdF9kZWwoJmZpbGVfcHJpdi0+bGhlYWQpOwotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JaWYgKGRldi0+ZHJpdmVyLT5wb3N0Y2xvc2UpCi0JCWRldi0+ZHJpdmVyLT5wb3N0Y2xvc2UoZGV2LCBmaWxlX3ByaXYpOwotCWRybV9mcmVlKGZpbGVfcHJpdiwgc2l6ZW9mKCpmaWxlX3ByaXYpLCBEUk1fTUVNX0ZJTEVTKTsKLQotCS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0JICogRW5kIGlubGluZSBkcm1fcmVsZWFzZQotCSAqLwotCi0JYXRvbWljX2luYygmZGV2LT5jb3VudHNbX0RSTV9TVEFUX0NMT1NFU10pOwotCXNwaW5fbG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQlpZiAoIS0tZGV2LT5vcGVuX2NvdW50KSB7Ci0JCWlmIChhdG9taWNfcmVhZCgmZGV2LT5pb2N0bF9jb3VudCkgfHwgZGV2LT5ibG9ja2VkKSB7Ci0JCQlEUk1fRVJST1IoIkRldmljZSBidXN5OiAlZCAlZFxuIiwKLQkJCQkgIGF0b21pY19yZWFkKCZkZXYtPmlvY3RsX2NvdW50KSwgZGV2LT5ibG9ja2VkKTsKLQkJCXNwaW5fdW5sb2NrKCZkZXYtPmNvdW50X2xvY2spOwotCQkJdW5sb2NrX2tlcm5lbCgpOwotCQkJcmV0dXJuIC1FQlVTWTsKLQkJfQotCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQkJdW5sb2NrX2tlcm5lbCgpOwotCQlyZXR1cm4gZHJtX2xhc3RjbG9zZShkZXYpOwotCX0KLQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQotCXVubG9ja19rZXJuZWwoKTsKLQotCXJldHVybiByZXRjb2RlOwotfQotRVhQT1JUX1NZTUJPTChkcm1fcmVsZWFzZSk7Ci0KLS8qKiBOby1vcC4gKi8KLXVuc2lnbmVkIGludCBkcm1fcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICp3YWl0KQotewotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTChkcm1fcG9sbCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnkuYyBiL2RyaXZlcnMvY2hhci9kcm0vZHJtX21lbW9yeS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDUwODFiNC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnkuYworKysgL2Rldi9udWxsCkBAIC0xLDE4MSArMCwwIEBACi0vKioKLSAqIFxmaWxlIGRybV9tZW1vcnkuYwotICogTWVtb3J5IG1hbmFnZW1lbnQgd3JhcHBlcnMgZm9yIERSTQotICoKLSAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+Ci0gKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0vKgotICogQ3JlYXRlZDogVGh1IEZlYiAgNCAxNDowMDozNCAxOTk5IGJ5IGZhaXRoQHZhbGludXguY29tCi0gKgotICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgotI2luY2x1ZGUgImRybVAuaCIKLQotI2lmZGVmIERFQlVHX01FTU9SWQotI2luY2x1ZGUgImRybV9tZW1vcnlfZGVidWcuaCIKLSNlbHNlCi0KLS8qKiBOby1vcC4gKi8KLXZvaWQgZHJtX21lbV9pbml0KHZvaWQpCi17Ci19Ci0KLS8qKgotICogQ2FsbGVkIHdoZW4gIi9wcm9jL2RyaS8lZGV2JS9tZW0iIGlzIHJlYWQuCi0gKgotICogXHBhcmFtIGJ1ZiBvdXRwdXQgYnVmZmVyLgotICogXHBhcmFtIHN0YXJ0IHN0YXJ0IG9mIG91dHB1dCBkYXRhLgotICogXHBhcmFtIG9mZnNldCByZXF1ZXN0ZWQgc3RhcnQgb2Zmc2V0LgotICogXHBhcmFtIGxlbiByZXF1ZXN0ZWQgbnVtYmVyIG9mIGJ5dGVzLgotICogXHBhcmFtIGVvZiB3aGV0aGVyIHRoZXJlIGlzIG5vIG1vcmUgZGF0YSB0byByZXR1cm4uCi0gKiBccGFyYW0gZGF0YSBwcml2YXRlIGRhdGEuCi0gKiBccmV0dXJuIG51bWJlciBvZiB3cml0dGVuIGJ5dGVzLgotICoKLSAqIE5vLW9wLgotICovCi1pbnQgZHJtX21lbV9pbmZvKGNoYXIgKmJ1ZiwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsCi0JCSBpbnQgbGVuLCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotLyoqIFdyYXBwZXIgYXJvdW5kIGttYWxsb2MoKSBhbmQga2ZyZWUoKSAqLwotdm9pZCAqZHJtX3JlYWxsb2Modm9pZCAqb2xkcHQsIHNpemVfdCBvbGRzaXplLCBzaXplX3Qgc2l6ZSwgaW50IGFyZWEpCi17Ci0Jdm9pZCAqcHQ7Ci0KLQlpZiAoIShwdCA9IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCkpKQotCQlyZXR1cm4gTlVMTDsKLQlpZiAob2xkcHQgJiYgb2xkc2l6ZSkgewotCQltZW1jcHkocHQsIG9sZHB0LCBvbGRzaXplKTsKLQkJa2ZyZWUob2xkcHQpOwotCX0KLQlyZXR1cm4gcHQ7Ci19Ci0KLSNpZiBfX09TX0hBU19BR1AKLXN0YXRpYyB2b2lkICphZ3BfcmVtYXAodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCXVuc2lnbmVkIGxvbmcgKnBoeXNfYWRkcl9tYXAsIGksIG51bV9wYWdlcyA9Ci0JICAgIFBBR0VfQUxJR04oc2l6ZSkgLyBQQUdFX1NJWkU7Ci0Jc3RydWN0IGRybV9hZ3BfbWVtICphZ3BtZW07Ci0Jc3RydWN0IHBhZ2UgKipwYWdlX21hcDsKLQl2b2lkICphZGRyOwotCi0Jc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7Ci0KLSNpZmRlZiBfX2FscGhhX18KLQlvZmZzZXQgLT0gZGV2LT5ob3NlLT5tZW1fc3BhY2UtPnN0YXJ0OwotI2VuZGlmCi0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGFncG1lbSwgJmRldi0+YWdwLT5tZW1vcnksIGhlYWQpCi0JCWlmIChhZ3BtZW0tPmJvdW5kIDw9IG9mZnNldAotCQkgICAgJiYgKGFncG1lbS0+Ym91bmQgKyAoYWdwbWVtLT5wYWdlcyA8PCBQQUdFX1NISUZUKSkgPj0KLQkJICAgIChvZmZzZXQgKyBzaXplKSkKLQkJCWJyZWFrOwotCWlmICghYWdwbWVtKQotCQlyZXR1cm4gTlVMTDsKLQotCS8qCi0JICogT0ssIHdlJ3JlIG1hcHBpbmcgQUdQIHNwYWNlIG9uIGEgY2hpcHNldC9wbGF0Zm9ybSBvbiB3aGljaCBtZW1vcnkgYWNjZXNzZXMgYnkKLQkgKiB0aGUgQ1BVIGRvIG5vdCBnZXQgcmVtYXBwZWQgYnkgdGhlIEdBUlQuICBXZSBmaXggdGhpcyBieSB1c2luZyB0aGUga2VybmVsJ3MKLQkgKiBwYWdlLXRhYmxlIGluc3RlYWQgKHRoYXQncyBwcm9iYWJseSBmYXN0ZXIgYW55aG93Li4uKS4KLQkgKi8KLQkvKiBub3RlOiB1c2Ugdm1hbGxvYygpIGJlY2F1c2UgbnVtX3BhZ2VzIGNvdWxkIGJlIGxhcmdlLi4uICovCi0JcGFnZV9tYXAgPSB2bWFsbG9jKG51bV9wYWdlcyAqIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSk7Ci0JaWYgKCFwYWdlX21hcCkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlwaHlzX2FkZHJfbWFwID0KLQkgICAgYWdwbWVtLT5tZW1vcnktPm1lbW9yeSArIChvZmZzZXQgLSBhZ3BtZW0tPmJvdW5kKSAvIFBBR0VfU0laRTsKLQlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhZ2VzOyArK2kpCi0JCXBhZ2VfbWFwW2ldID0gcGZuX3RvX3BhZ2UocGh5c19hZGRyX21hcFtpXSA+PiBQQUdFX1NISUZUKTsKLQlhZGRyID0gdm1hcChwYWdlX21hcCwgbnVtX3BhZ2VzLCBWTV9JT1JFTUFQLCBQQUdFX0FHUCk7Ci0JdmZyZWUocGFnZV9tYXApOwotCi0JcmV0dXJuIGFkZHI7Ci19Ci0KLS8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfYWxsb2NhdGVfbWVtb3J5KCkgKi8KLURSTV9BR1BfTUVNICpkcm1fYWxsb2NfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgcGFnZXMsIHUzMiB0eXBlKQotewotCXJldHVybiBkcm1fYWdwX2FsbG9jYXRlX21lbW9yeShkZXYtPmFncC0+YnJpZGdlLCBwYWdlcywgdHlwZSk7Ci19Ci0KLS8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfZnJlZV9tZW1vcnkoKSAqLwotaW50IGRybV9mcmVlX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgaW50IHBhZ2VzKQotewotCXJldHVybiBkcm1fYWdwX2ZyZWVfbWVtb3J5KGhhbmRsZSkgPyAwIDogLUVJTlZBTDsKLX0KLQotLyoqIFdyYXBwZXIgYXJvdW5kIGFncF9iaW5kX21lbW9yeSgpICovCi1pbnQgZHJtX2JpbmRfYWdwKERSTV9BR1BfTUVNICogaGFuZGxlLCB1bnNpZ25lZCBpbnQgc3RhcnQpCi17Ci0JcmV0dXJuIGRybV9hZ3BfYmluZF9tZW1vcnkoaGFuZGxlLCBzdGFydCk7Ci19Ci0KLS8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfdW5iaW5kX21lbW9yeSgpICovCi1pbnQgZHJtX3VuYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUpCi17Ci0JcmV0dXJuIGRybV9hZ3BfdW5iaW5kX21lbW9yeShoYW5kbGUpOwotfQotCi0jZWxzZSAgLyogIF9fT1NfSEFTX0FHUCAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCAqYWdwX3JlbWFwKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCi0JCQkgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlyZXR1cm4gTlVMTDsKLX0KLQotI2VuZGlmCQkJCS8qIGFncCAqLwotCi0jZW5kaWYJCQkJLyogZGVidWdfbWVtb3J5ICovCi0KLXZvaWQgZHJtX2NvcmVfaW9yZW1hcChzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYKLQkgICAgZGV2LT5hZ3AgJiYgZGV2LT5hZ3AtPmNhbnRfdXNlX2FwZXJ0dXJlICYmIG1hcC0+dHlwZSA9PSBfRFJNX0FHUCkKLQkJbWFwLT5oYW5kbGUgPSBhZ3BfcmVtYXAobWFwLT5vZmZzZXQsIG1hcC0+c2l6ZSwgZGV2KTsKLQllbHNlCi0JCW1hcC0+aGFuZGxlID0gaW9yZW1hcChtYXAtPm9mZnNldCwgbWFwLT5zaXplKTsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2NvcmVfaW9yZW1hcCk7Ci0KLXZvaWQgZHJtX2NvcmVfaW9yZW1hcGZyZWUoc3RydWN0IGRybV9tYXAgKm1hcCwgc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpZiAoIW1hcC0+aGFuZGxlIHx8ICFtYXAtPnNpemUpCi0JCXJldHVybjsKLQotCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYKLQkgICAgZGV2LT5hZ3AgJiYgZGV2LT5hZ3AtPmNhbnRfdXNlX2FwZXJ0dXJlICYmIG1hcC0+dHlwZSA9PSBfRFJNX0FHUCkKLQkJdnVubWFwKG1hcC0+aGFuZGxlKTsKLQllbHNlCi0JCWlvdW5tYXAobWFwLT5oYW5kbGUpOwotfQotRVhQT1JUX1NZTUJPTChkcm1fY29yZV9pb3JlbWFwZnJlZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfaXJxLmMgYi9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfaXJxLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3ZjE2ZTcuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9pOTE1X2lycS5jCisrKyAvZGV2L251bGwKQEAgLTEsNjIzICswLDAgQEAKLS8qIGk5MTVfaXJxLmMgLS0gSVJRIHN1cHBvcnQgZm9yIHRoZSBJOTE1IC0qLSBsaW51eC1jIC0qLQotICovCi0vKgotICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKLSAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCi0gKiBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKLSAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0gKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImRybVAuaCIKLSNpbmNsdWRlICJkcm0uaCIKLSNpbmNsdWRlICJpOTE1X2RybS5oIgotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0KLSNkZWZpbmUgVVNFUl9JTlRfRkxBRyAoMTw8MSkKLSNkZWZpbmUgVlNZTkNfUElQRUJfRkxBRyAoMTw8NSkKLSNkZWZpbmUgVlNZTkNfUElQRUFfRkxBRyAoMTw8NykKLQotI2RlZmluZSBNQVhfTk9QSUQgKCh1MzIpfjApCi0KLS8qKgotICogRW1pdCBibGl0cyBmb3Igc2NoZWR1bGVkIGJ1ZmZlciBzd2Fwcy4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIEhXIGxvY2sgaGVsZC4KLSAqLwotc3RhdGljIHZvaWQgaTkxNV92YmxhbmtfdGFza2xldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0JdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKLQlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LCAqdG1wLCBoaXRzLCAqaGl0OwotCWludCBuaGl0cywgbnJlY3RzLCBzbGljZVsyXSwgdXBwZXJbMl0sIGxvd2VyWzJdLCBpOwotCXVuc2lnbmVkIGNvdW50ZXJbMl0gPSB7IGF0b21pY19yZWFkKCZkZXYtPnZibF9yZWNlaXZlZCksCi0JCQkJYXRvbWljX3JlYWQoJmRldi0+dmJsX3JlY2VpdmVkMikgfTsKLQlzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRydzsKLQlkcm1faTkxNV9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7Ci0JdTMyIGNwcCA9IGRldl9wcml2LT5jcHA7Ci0JdTMyIGNtZCA9IChjcHAgPT0gNCkgPyAoWFlfU1JDX0NPUFlfQkxUX0NNRCB8Ci0JCQkJWFlfU1JDX0NPUFlfQkxUX1dSSVRFX0FMUEhBIHwKLQkJCQlYWV9TUkNfQ09QWV9CTFRfV1JJVEVfUkdCKQotCQkJICAgICA6IFhZX1NSQ19DT1BZX0JMVF9DTUQ7Ci0JdTMyIHNyY19waXRjaCA9IHNhcmVhX3ByaXYtPnBpdGNoICogY3BwOwotCXUzMiBkc3RfcGl0Y2ggPSBzYXJlYV9wcml2LT5waXRjaCAqIGNwcDsKLQl1MzIgcm9wY3BwID0gKDB4Y2MgPDwgMTYpIHwgKChjcHAgLSAxKSA8PCAyNCk7Ci0JUklOR19MT0NBTFM7Ci0KLQlpZiAoc2FyZWFfcHJpdi0+ZnJvbnRfdGlsZWQpIHsKLQkJY21kIHw9IFhZX1NSQ19DT1BZX0JMVF9EU1RfVElMRUQ7Ci0JCWRzdF9waXRjaCA+Pj0gMjsKLQl9Ci0JaWYgKHNhcmVhX3ByaXYtPmJhY2tfdGlsZWQpIHsKLQkJY21kIHw9IFhZX1NSQ19DT1BZX0JMVF9TUkNfVElMRUQ7Ci0JCXNyY19waXRjaCA+Pj0gMjsKLQl9Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlJTklUX0xJU1RfSEVBRCgmaGl0cyk7Ci0KLQluaGl0cyA9IG5yZWN0cyA9IDA7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQotCS8qIEZpbmQgYnVmZmVyIHN3YXBzIHNjaGVkdWxlZCBmb3IgdGhpcyB2ZXJ0aWNhbCBibGFuayAqLwotCWxpc3RfZm9yX2VhY2hfc2FmZShsaXN0LCB0bXAsICZkZXZfcHJpdi0+dmJsX3N3YXBzLmhlYWQpIHsKLQkJZHJtX2k5MTVfdmJsX3N3YXBfdCAqdmJsX3N3YXAgPQotCQkJbGlzdF9lbnRyeShsaXN0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKLQotCQlpZiAoKGNvdW50ZXJbdmJsX3N3YXAtPnBpcGVdIC0gdmJsX3N3YXAtPnNlcXVlbmNlKSA+ICgxPDwyMykpCi0JCQljb250aW51ZTsKLQotCQlsaXN0X2RlbChsaXN0KTsKLQkJZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmctLTsKLQotCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCQlzcGluX2xvY2soJmRldi0+ZHJ3X2xvY2spOwotCi0JCWRydyA9IGRybV9nZXRfZHJhd2FibGVfaW5mbyhkZXYsIHZibF9zd2FwLT5kcndfaWQpOwotCi0JCWlmICghZHJ3KSB7Ci0JCQlzcGluX3VubG9jaygmZGV2LT5kcndfbG9jayk7Ci0JCQlkcm1fZnJlZSh2Ymxfc3dhcCwgc2l6ZW9mKCp2Ymxfc3dhcCksIERSTV9NRU1fRFJJVkVSKTsKLQkJCXNwaW5fbG9jaygmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCQkJY29udGludWU7Ci0JCX0KLQotCQlsaXN0X2Zvcl9lYWNoKGhpdCwgJmhpdHMpIHsKLQkJCWRybV9pOTE1X3ZibF9zd2FwX3QgKnN3YXBfY21wID0KLQkJCQlsaXN0X2VudHJ5KGhpdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7Ci0JCQlzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRyd19jbXAgPQotCQkJCWRybV9nZXRfZHJhd2FibGVfaW5mbyhkZXYsIHN3YXBfY21wLT5kcndfaWQpOwotCi0JCQlpZiAoZHJ3X2NtcCAmJgotCQkJICAgIGRyd19jbXAtPnJlY3RzWzBdLnkxID4gZHJ3LT5yZWN0c1swXS55MSkgewotCQkJCWxpc3RfYWRkX3RhaWwobGlzdCwgaGl0KTsKLQkJCQlicmVhazsKLQkJCX0KLQkJfQotCi0JCXNwaW5fdW5sb2NrKCZkZXYtPmRyd19sb2NrKTsKLQotCQkvKiBMaXN0IG9mIGhpdHMgd2FzIGVtcHR5LCBvciB3ZSByZWFjaGVkIHRoZSBlbmQgb2YgaXQgKi8KLQkJaWYgKGhpdCA9PSAmaGl0cykKLQkJCWxpc3RfYWRkX3RhaWwobGlzdCwgaGl0cy5wcmV2KTsKLQotCQluaGl0cysrOwotCi0JCXNwaW5fbG9jaygmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCX0KLQotCWlmIChuaGl0cyA9PSAwKSB7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7Ci0JCXJldHVybjsKLQl9Ci0KLQlzcGluX3VubG9jaygmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCi0JaTkxNV9rZXJuZWxfbG9zdF9jb250ZXh0KGRldik7Ci0KLQlpZiAoSVNfSTk2NUcoZGV2KSkgewotCQlCRUdJTl9MUF9SSU5HKDQpOwotCi0JCU9VVF9SSU5HKEdGWF9PUF9EUkFXUkVDVF9JTkZPX0k5NjUpOwotCQlPVVRfUklORygwKTsKLQkJT1VUX1JJTkcoKChzYXJlYV9wcml2LT53aWR0aCAtIDEpICYgMHhmZmZmKSB8ICgoc2FyZWFfcHJpdi0+aGVpZ2h0IC0gMSkgPDwgMTYpKTsKLQkJT1VUX1JJTkcoMCk7Ci0JCUFEVkFOQ0VfTFBfUklORygpOwotCX0gZWxzZSB7Ci0JCUJFR0lOX0xQX1JJTkcoNik7Ci0KLQkJT1VUX1JJTkcoR0ZYX09QX0RSQVdSRUNUX0lORk8pOwotCQlPVVRfUklORygwKTsKLQkJT1VUX1JJTkcoMCk7Ci0JCU9VVF9SSU5HKHNhcmVhX3ByaXYtPndpZHRoIHwgc2FyZWFfcHJpdi0+aGVpZ2h0IDw8IDE2KTsKLQkJT1VUX1JJTkcoc2FyZWFfcHJpdi0+d2lkdGggfCBzYXJlYV9wcml2LT5oZWlnaHQgPDwgMTYpOwotCQlPVVRfUklORygwKTsKLQotCQlBRFZBTkNFX0xQX1JJTkcoKTsKLQl9Ci0KLQlzYXJlYV9wcml2LT5jdHhPd25lciA9IERSTV9LRVJORUxfQ09OVEVYVDsKLQotCXVwcGVyWzBdID0gdXBwZXJbMV0gPSAwOwotCXNsaWNlWzBdID0gbWF4KHNhcmVhX3ByaXYtPnBpcGVBX2ggLyBuaGl0cywgMSk7Ci0Jc2xpY2VbMV0gPSBtYXgoc2FyZWFfcHJpdi0+cGlwZUJfaCAvIG5oaXRzLCAxKTsKLQlsb3dlclswXSA9IHNhcmVhX3ByaXYtPnBpcGVBX3kgKyBzbGljZVswXTsKLQlsb3dlclsxXSA9IHNhcmVhX3ByaXYtPnBpcGVCX3kgKyBzbGljZVswXTsKLQotCXNwaW5fbG9jaygmZGV2LT5kcndfbG9jayk7Ci0KLQkvKiBFbWl0IGJsaXRzIGZvciBidWZmZXIgc3dhcHMsIHBhcnRpdGlvbmluZyBib3RoIG91dHB1dHMgaW50byBhcyBtYW55Ci0JICogc2xpY2VzIGFzIHRoZXJlIGFyZSBidWZmZXIgc3dhcHMgc2NoZWR1bGVkIGluIG9yZGVyIHRvIGF2b2lkIHRlYXJpbmcKLQkgKiAoYmFzZWQgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBhIHNpbmdsZSBidWZmZXIgc3dhcCB3b3VsZCBhbHdheXMKLQkgKiBjb21wbGV0ZSBiZWZvcmUgc2Nhbm91dCBzdGFydHMpLgotCSAqLwotCWZvciAoaSA9IDA7IGkrKyA8IG5oaXRzOwotCSAgICAgdXBwZXJbMF0gPSBsb3dlclswXSwgbG93ZXJbMF0gKz0gc2xpY2VbMF0sCi0JICAgICB1cHBlclsxXSA9IGxvd2VyWzFdLCBsb3dlclsxXSArPSBzbGljZVsxXSkgewotCQlpZiAoaSA9PSBuaGl0cykKLQkJCWxvd2VyWzBdID0gbG93ZXJbMV0gPSBzYXJlYV9wcml2LT5oZWlnaHQ7Ci0KLQkJbGlzdF9mb3JfZWFjaChoaXQsICZoaXRzKSB7Ci0JCQlkcm1faTkxNV92Ymxfc3dhcF90ICpzd2FwX2hpdCA9Ci0JCQkJbGlzdF9lbnRyeShoaXQsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOwotCQkJc3RydWN0IGRybV9jbGlwX3JlY3QgKnJlY3Q7Ci0JCQlpbnQgbnVtX3JlY3RzLCBwaXBlOwotCQkJdW5zaWduZWQgc2hvcnQgdG9wLCBib3R0b207Ci0KLQkJCWRydyA9IGRybV9nZXRfZHJhd2FibGVfaW5mbyhkZXYsIHN3YXBfaGl0LT5kcndfaWQpOwotCi0JCQlpZiAoIWRydykKLQkJCQljb250aW51ZTsKLQotCQkJcmVjdCA9IGRydy0+cmVjdHM7Ci0JCQlwaXBlID0gc3dhcF9oaXQtPnBpcGU7Ci0JCQl0b3AgPSB1cHBlcltwaXBlXTsKLQkJCWJvdHRvbSA9IGxvd2VyW3BpcGVdOwotCi0JCQlmb3IgKG51bV9yZWN0cyA9IGRydy0+bnVtX3JlY3RzOyBudW1fcmVjdHMtLTsgcmVjdCsrKSB7Ci0JCQkJaW50IHkxID0gbWF4KHJlY3QtPnkxLCB0b3ApOwotCQkJCWludCB5MiA9IG1pbihyZWN0LT55MiwgYm90dG9tKTsKLQotCQkJCWlmICh5MSA+PSB5MikKLQkJCQkJY29udGludWU7Ci0KLQkJCQlCRUdJTl9MUF9SSU5HKDgpOwotCi0JCQkJT1VUX1JJTkcoY21kKTsKLQkJCQlPVVRfUklORyhyb3BjcHAgfCBkc3RfcGl0Y2gpOwotCQkJCU9VVF9SSU5HKCh5MSA8PCAxNikgfCByZWN0LT54MSk7Ci0JCQkJT1VUX1JJTkcoKHkyIDw8IDE2KSB8IHJlY3QtPngyKTsKLQkJCQlPVVRfUklORyhzYXJlYV9wcml2LT5mcm9udF9vZmZzZXQpOwotCQkJCU9VVF9SSU5HKCh5MSA8PCAxNikgfCByZWN0LT54MSk7Ci0JCQkJT1VUX1JJTkcoc3JjX3BpdGNoKTsKLQkJCQlPVVRfUklORyhzYXJlYV9wcml2LT5iYWNrX29mZnNldCk7Ci0KLQkJCQlBRFZBTkNFX0xQX1JJTkcoKTsKLQkJCX0KLQkJfQotCX0KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZHJ3X2xvY2ssIGlycWZsYWdzKTsKLQotCWxpc3RfZm9yX2VhY2hfc2FmZShoaXQsIHRtcCwgJmhpdHMpIHsKLQkJZHJtX2k5MTVfdmJsX3N3YXBfdCAqc3dhcF9oaXQgPQotCQkJbGlzdF9lbnRyeShoaXQsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOwotCi0JCWxpc3RfZGVsKGhpdCk7Ci0KLQkJZHJtX2ZyZWUoc3dhcF9oaXQsIHNpemVvZigqc3dhcF9oaXQpLCBEUk1fTUVNX0RSSVZFUik7Ci0JfQotfQotCi1pcnFyZXR1cm5fdCBpOTE1X2RyaXZlcl9pcnFfaGFuZGxlcihEUk1fSVJRX0FSR1MpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IChzdHJ1Y3QgZHJtX2RldmljZSAqKSBhcmc7Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQl1MTYgdGVtcDsKLQl1MzIgcGlwZWFfc3RhdHMsIHBpcGViX3N0YXRzOwotCi0JcGlwZWFfc3RhdHMgPSBJOTE1X1JFQUQoSTkxNVJFR19QSVBFQVNUQVQpOwotCXBpcGViX3N0YXRzID0gSTkxNV9SRUFEKEk5MTVSRUdfUElQRUJTVEFUKTsKLQotCXRlbXAgPSBJOTE1X1JFQUQxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SKTsKLQotCXRlbXAgJj0gKFVTRVJfSU5UX0ZMQUcgfCBWU1lOQ19QSVBFQV9GTEFHIHwgVlNZTkNfUElQRUJfRkxBRyk7Ci0KLQlEUk1fREVCVUcoIiVzIGZsYWc9JTA4eFxuIiwgX19GVU5DVElPTl9fLCB0ZW1wKTsKLQotCWlmICh0ZW1wID09IDApCi0JCXJldHVybiBJUlFfTk9ORTsKLQotCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SLCB0ZW1wKTsKLQkodm9pZCkgSTkxNV9SRUFEMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUik7Ci0JRFJNX1JFQURNRU1PUllCQVJSSUVSKCk7Ci0KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCA9IFJFQURfQlJFQURDUlVNQihkZXZfcHJpdik7Ci0KLQlpZiAodGVtcCAmIFVTRVJfSU5UX0ZMQUcpCi0JCURSTV9XQUtFVVAoJmRldl9wcml2LT5pcnFfcXVldWUpOwotCi0JaWYgKHRlbXAgJiAoVlNZTkNfUElQRUFfRkxBRyB8IFZTWU5DX1BJUEVCX0ZMQUcpKSB7Ci0JCWludCB2YmxhbmtfcGlwZSA9IGRldl9wcml2LT52YmxhbmtfcGlwZTsKLQotCQlpZiAoKHZibGFua19waXBlICYKLQkJICAgICAoRFJNX0k5MTVfVkJMQU5LX1BJUEVfQSB8IERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpKQotCQkgICAgPT0gKERSTV9JOTE1X1ZCTEFOS19QSVBFX0EgfCBEUk1fSTkxNV9WQkxBTktfUElQRV9CKSkgewotCQkJaWYgKHRlbXAgJiBWU1lOQ19QSVBFQV9GTEFHKQotCQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkKTsKLQkJCWlmICh0ZW1wICYgVlNZTkNfUElQRUJfRkxBRykKLQkJCQlhdG9taWNfaW5jKCZkZXYtPnZibF9yZWNlaXZlZDIpOwotCQl9IGVsc2UgaWYgKCgodGVtcCAmIFZTWU5DX1BJUEVBX0ZMQUcpICYmCi0JCQkgICAgKHZibGFua19waXBlICYgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQSkpIHx8Ci0JCQkgICAoKHRlbXAgJiBWU1lOQ19QSVBFQl9GTEFHKSAmJgotCQkJICAgICh2YmxhbmtfcGlwZSAmIERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpKSkKLQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkKTsKLQotCQlEUk1fV0FLRVVQKCZkZXYtPnZibF9xdWV1ZSk7Ci0JCWRybV92Ymxfc2VuZF9zaWduYWxzKGRldik7Ci0KLQkJaWYgKGRldl9wcml2LT5zd2Fwc19wZW5kaW5nID4gMCkKLQkJCWRybV9sb2NrZWRfdGFza2xldChkZXYsIGk5MTVfdmJsYW5rX3Rhc2tsZXQpOwotCQlJOTE1X1dSSVRFKEk5MTVSRUdfUElQRUFTVEFULAotCQkJcGlwZWFfc3RhdHN8STkxNV9WQkxBTktfSU5URVJSVVBUX0VOQUJMRXwKLQkJCUk5MTVfVkJMQU5LX0NMRUFSKTsKLQkJSTkxNV9XUklURShJOTE1UkVHX1BJUEVCU1RBVCwKLQkJCXBpcGViX3N0YXRzfEk5MTVfVkJMQU5LX0lOVEVSUlVQVF9FTkFCTEV8Ci0JCQlJOTE1X1ZCTEFOS19DTEVBUik7Ci0JfQotCi0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi1zdGF0aWMgaW50IGk5MTVfZW1pdF9pcnEoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JUklOR19MT0NBTFM7Ci0KLQlpOTE1X2tlcm5lbF9sb3N0X2NvbnRleHQoZGV2KTsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2VucXVldWUgPSArK2Rldl9wcml2LT5jb3VudGVyOwotCi0JaWYgKGRldl9wcml2LT5jb3VudGVyID4gMHg3RkZGRkZGRlVMKQotCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9lbnF1ZXVlID0gZGV2X3ByaXYtPmNvdW50ZXIgPSAxOwotCi0JQkVHSU5fTFBfUklORyg2KTsKLQlPVVRfUklORyhDTURfU1RPUkVfRFdPUkRfSURYKTsKLQlPVVRfUklORygyMCk7Ci0JT1VUX1JJTkcoZGV2X3ByaXYtPmNvdW50ZXIpOwotCU9VVF9SSU5HKDApOwotCU9VVF9SSU5HKDApOwotCU9VVF9SSU5HKEdGWF9PUF9VU0VSX0lOVEVSUlVQVCk7Ci0JQURWQU5DRV9MUF9SSU5HKCk7Ci0KLQlyZXR1cm4gZGV2X3ByaXYtPmNvdW50ZXI7Ci19Ci0KLXN0YXRpYyBpbnQgaTkxNV93YWl0X2lycShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgaW50IGlycV9ucikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCWludCByZXQgPSAwOwotCi0JRFJNX0RFQlVHKCJpcnFfbnI9JWQgYnJlYWRjcnVtYj0lZFxuIiwgaXJxX25yLAotCQkgIFJFQURfQlJFQURDUlVNQihkZXZfcHJpdikpOwotCi0JaWYgKFJFQURfQlJFQURDUlVNQihkZXZfcHJpdikgPj0gaXJxX25yKQotCQlyZXR1cm4gMDsKLQotCWRldl9wcml2LT5zYXJlYV9wcml2LT5wZXJmX2JveGVzIHw9IEk5MTVfQk9YX1dBSVQ7Ci0KLQlEUk1fV0FJVF9PTihyZXQsIGRldl9wcml2LT5pcnFfcXVldWUsIDMgKiBEUk1fSFosCi0JCSAgICBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpID49IGlycV9ucik7Ci0KLQlpZiAocmV0ID09IC1FQlVTWSkgewotCQlEUk1fRVJST1IoIkVCVVNZIC0tIHJlYzogJWQgZW1pdHRlZDogJWRcbiIsCi0JCQkgIFJFQURfQlJFQURDUlVNQihkZXZfcHJpdiksIChpbnQpZGV2X3ByaXYtPmNvdW50ZXIpOwotCX0KLQotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID0gUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IGk5MTVfZHJpdmVyX3ZibGFua19kb193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UsCi0JCQkJICAgICAgYXRvbWljX3QgKmNvdW50ZXIpCi17Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdW5zaWduZWQgaW50IGN1cl92Ymxhbms7Ci0JaW50IHJldCA9IDA7Ci0KLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlEUk1fV0FJVF9PTihyZXQsIGRldi0+dmJsX3F1ZXVlLCAzICogRFJNX0haLAotCQkgICAgKCgoY3VyX3ZibGFuayA9IGF0b21pY19yZWFkKGNvdW50ZXIpKQotCQkJLSAqc2VxdWVuY2UpIDw9ICgxPDwyMykpKTsKLQotCSpzZXF1ZW5jZSA9IGN1cl92Ymxhbms7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi0KLWludCBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKQotewotCXJldHVybiBpOTE1X2RyaXZlcl92YmxhbmtfZG9fd2FpdChkZXYsIHNlcXVlbmNlLCAmZGV2LT52YmxfcmVjZWl2ZWQpOwotfQotCi1pbnQgaTkxNV9kcml2ZXJfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpCi17Ci0JcmV0dXJuIGk5MTVfZHJpdmVyX3ZibGFua19kb193YWl0KGRldiwgc2VxdWVuY2UsICZkZXYtPnZibF9yZWNlaXZlZDIpOwotfQotCi0vKiBOZWVkcyB0aGUgbG9jayBhcyBpdCB0b3VjaGVzIHRoZSByaW5nLgotICovCi1pbnQgaTkxNV9pcnFfZW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9pOTE1X2lycV9lbWl0X3QgKmVtaXQgPSBkYXRhOwotCWludCByZXN1bHQ7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JaWYgKCFkZXZfcHJpdikgewotCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmVzdWx0ID0gaTkxNV9lbWl0X2lycShkZXYpOwotCi0JaWYgKERSTV9DT1BZX1RPX1VTRVIoZW1pdC0+aXJxX3NlcSwgJnJlc3VsdCwgc2l6ZW9mKGludCkpKSB7Ci0JCURSTV9FUlJPUigiY29weV90b191c2VyXG4iKTsKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qIERvZXNuJ3QgbmVlZCB0aGUgaGFyZHdhcmUgbG9jay4KLSAqLwotaW50IGk5MTVfaXJxX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1faTkxNV9pcnFfd2FpdF90ICppcnF3YWl0ID0gZGF0YTsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJldHVybiBpOTE1X3dhaXRfaXJxKGRldiwgaXJxd2FpdC0+aXJxX3NlcSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGk5MTVfZW5hYmxlX2ludGVycnVwdCAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCXUxNiBmbGFnOwotCi0JZmxhZyA9IDA7Ci0JaWYgKGRldl9wcml2LT52YmxhbmtfcGlwZSAmIERSTV9JOTE1X1ZCTEFOS19QSVBFX0EpCi0JCWZsYWcgfD0gVlNZTkNfUElQRUFfRkxBRzsKLQlpZiAoZGV2X3ByaXYtPnZibGFua19waXBlICYgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQikKLQkJZmxhZyB8PSBWU1lOQ19QSVBFQl9GTEFHOwotCi0JSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0VOQUJMRV9SLCBVU0VSX0lOVF9GTEFHIHwgZmxhZyk7Ci19Ci0KLS8qIFNldCB0aGUgdmJsYW5rIG1vbml0b3IgcGlwZQotICovCi1pbnQgaTkxNV92YmxhbmtfcGlwZV9zZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1faTkxNV92YmxhbmtfcGlwZV90ICpwaXBlID0gZGF0YTsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChwaXBlLT5waXBlICYgfihEUk1fSTkxNV9WQkxBTktfUElQRV9BfERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpKSB7Ci0JCURSTV9FUlJPUigiY2FsbGVkIHdpdGggaW52YWxpZCBwaXBlIDB4JXhcbiIsIHBpcGUtPnBpcGUpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkZXZfcHJpdi0+dmJsYW5rX3BpcGUgPSBwaXBlLT5waXBlOwotCi0JaTkxNV9lbmFibGVfaW50ZXJydXB0IChkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCBpOTE1X3ZibGFua19waXBlX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9pOTE1X3ZibGFua19waXBlX3QgKnBpcGUgPSBkYXRhOwotCXUxNiBmbGFnOwotCi0JaWYgKCFkZXZfcHJpdikgewotCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZmxhZyA9IEk5MTVfUkVBRChJOTE1UkVHX0lOVF9FTkFCTEVfUik7Ci0JcGlwZS0+cGlwZSA9IDA7Ci0JaWYgKGZsYWcgJiBWU1lOQ19QSVBFQV9GTEFHKQotCQlwaXBlLT5waXBlIHw9IERSTV9JOTE1X1ZCTEFOS19QSVBFX0E7Ci0JaWYgKGZsYWcgJiBWU1lOQ19QSVBFQl9GTEFHKQotCQlwaXBlLT5waXBlIHw9IERSTV9JOTE1X1ZCTEFOS19QSVBFX0I7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBTY2hlZHVsZSBidWZmZXIgc3dhcCBhdCBnaXZlbiB2ZXJ0aWNhbCBibGFuay4KLSAqLwotaW50IGk5MTVfdmJsYW5rX3N3YXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1faTkxNV92Ymxhbmtfc3dhcF90ICpzd2FwID0gZGF0YTsKLQlkcm1faTkxNV92Ymxfc3dhcF90ICp2Ymxfc3dhcDsKLQl1bnNpZ25lZCBpbnQgcGlwZSwgc2VxdHlwZSwgY3Vyc2VxOwotCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Ci0Jc3RydWN0IGxpc3RfaGVhZCAqbGlzdDsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCIlcyBjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnJvdGF0aW9uKSB7Ci0JCURSTV9ERUJVRygiUm90YXRpb24gbm90IHN1cHBvcnRlZFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChzd2FwLT5zZXF0eXBlICYgfihfRFJNX1ZCTEFOS19SRUxBVElWRSB8IF9EUk1fVkJMQU5LX0FCU09MVVRFIHwKLQkJCSAgICAgX0RSTV9WQkxBTktfU0VDT05EQVJZIHwgX0RSTV9WQkxBTktfTkVYVE9OTUlTUykpIHsKLQkJRFJNX0VSUk9SKCJJbnZhbGlkIHNlcXVlbmNlIHR5cGUgMHgleFxuIiwgc3dhcC0+c2VxdHlwZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXBpcGUgPSAoc3dhcC0+c2VxdHlwZSAmIF9EUk1fVkJMQU5LX1NFQ09OREFSWSkgPyAxIDogMDsKLQotCXNlcXR5cGUgPSBzd2FwLT5zZXF0eXBlICYgKF9EUk1fVkJMQU5LX1JFTEFUSVZFIHwgX0RSTV9WQkxBTktfQUJTT0xVVEUpOwotCi0JaWYgKCEoZGV2X3ByaXYtPnZibGFua19waXBlICYgKDEgPDwgcGlwZSkpKSB7Ci0JCURSTV9FUlJPUigiSW52YWxpZCBwaXBlICVkXG4iLCBwaXBlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZHJ3X2xvY2ssIGlycWZsYWdzKTsKLQotCWlmICghZHJtX2dldF9kcmF3YWJsZV9pbmZvKGRldiwgc3dhcC0+ZHJhd2FibGUpKSB7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZHJ3X2xvY2ssIGlycWZsYWdzKTsKLQkJRFJNX0RFQlVHKCJJbnZhbGlkIGRyYXdhYmxlIElEICVkXG4iLCBzd2FwLT5kcmF3YWJsZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZHJ3X2xvY2ssIGlycWZsYWdzKTsKLQotCWN1cnNlcSA9IGF0b21pY19yZWFkKHBpcGUgPyAmZGV2LT52YmxfcmVjZWl2ZWQyIDogJmRldi0+dmJsX3JlY2VpdmVkKTsKLQotCWlmIChzZXF0eXBlID09IF9EUk1fVkJMQU5LX1JFTEFUSVZFKQotCQlzd2FwLT5zZXF1ZW5jZSArPSBjdXJzZXE7Ci0KLQlpZiAoKGN1cnNlcSAtIHN3YXAtPnNlcXVlbmNlKSA8PSAoMTw8MjMpKSB7Ci0JCWlmIChzd2FwLT5zZXF0eXBlICYgX0RSTV9WQkxBTktfTkVYVE9OTUlTUykgewotCQkJc3dhcC0+c2VxdWVuY2UgPSBjdXJzZXEgKyAxOwotCQl9IGVsc2UgewotCQkJRFJNX0RFQlVHKCJNaXNzZWQgdGFyZ2V0IHNlcXVlbmNlXG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JfQotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7Ci0KLQlsaXN0X2Zvcl9lYWNoKGxpc3QsICZkZXZfcHJpdi0+dmJsX3N3YXBzLmhlYWQpIHsKLQkJdmJsX3N3YXAgPSBsaXN0X2VudHJ5KGxpc3QsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOwotCi0JCWlmICh2Ymxfc3dhcC0+ZHJ3X2lkID09IHN3YXAtPmRyYXdhYmxlICYmCi0JCSAgICB2Ymxfc3dhcC0+cGlwZSA9PSBwaXBlICYmCi0JCSAgICB2Ymxfc3dhcC0+c2VxdWVuY2UgPT0gc3dhcC0+c2VxdWVuY2UpIHsKLQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7Ci0JCQlEUk1fREVCVUcoIkFscmVhZHkgc2NoZWR1bGVkXG4iKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JfQotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQotCWlmIChkZXZfcHJpdi0+c3dhcHNfcGVuZGluZyA+PSAxMDApIHsKLQkJRFJNX0RFQlVHKCJUb28gbWFueSBzd2FwcyBxdWV1ZWRcbiIpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQotCXZibF9zd2FwID0gZHJtX2NhbGxvYygxLCBzaXplb2YoKnZibF9zd2FwKSwgRFJNX01FTV9EUklWRVIpOwotCi0JaWYgKCF2Ymxfc3dhcCkgewotCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgdG8gcXVldWUgc3dhcFxuIik7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KLQotCURSTV9ERUJVRygiXG4iKTsKLQotCXZibF9zd2FwLT5kcndfaWQgPSBzd2FwLT5kcmF3YWJsZTsKLQl2Ymxfc3dhcC0+cGlwZSA9IHBpcGU7Ci0JdmJsX3N3YXAtPnNlcXVlbmNlID0gc3dhcC0+c2VxdWVuY2U7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQotCWxpc3RfYWRkX3RhaWwoJnZibF9zd2FwLT5oZWFkLCAmZGV2X3ByaXYtPnZibF9zd2Fwcy5oZWFkKTsKLQlkZXZfcHJpdi0+c3dhcHNfcGVuZGluZysrOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQotCXJldHVybiAwOwotfQotCi0vKiBkcm1fZG1hLmggaG9va3MKLSovCi12b2lkIGk5MTVfZHJpdmVyX2lycV9wcmVpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlJOTE1X1dSSVRFMTYoSTkxNVJFR19IV1NUQU0sIDB4ZmZmZSk7Ci0JSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX01BU0tfUiwgMHgwKTsKLQlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfRU5BQkxFX1IsIDB4MCk7Ci19Ci0KLXZvaWQgaTkxNV9kcml2ZXJfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+dmJsX3N3YXBzLmhlYWQpOwotCWRldl9wcml2LT5zd2Fwc19wZW5kaW5nID0gMDsKLQotCWlmICghZGV2X3ByaXYtPnZibGFua19waXBlKQotCQlkZXZfcHJpdi0+dmJsYW5rX3BpcGUgPSBEUk1fSTkxNV9WQkxBTktfUElQRV9BOwotCWk5MTVfZW5hYmxlX2ludGVycnVwdChkZXYpOwotCURSTV9JTklUX1dBSVRRVUVVRSgmZGV2X3ByaXYtPmlycV9xdWV1ZSk7Ci19Ci0KLXZvaWQgaTkxNV9kcml2ZXJfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCXUxNiB0ZW1wOwotCi0JaWYgKCFkZXZfcHJpdikKLQkJcmV0dXJuOwotCi0JSTkxNV9XUklURTE2KEk5MTVSRUdfSFdTVEFNLCAweGZmZmYpOwotCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9NQVNLX1IsIDB4ZmZmZik7Ci0JSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0VOQUJMRV9SLCAweDApOwotCi0JdGVtcCA9IEk5MTVfUkVBRDE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOwotCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SLCB0ZW1wKTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2NwLmMgYi9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9jcC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTMxNThmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2NwLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzczICswLDAgQEAKLS8qIHJhZGVvbl9jcC5jIC0tIENQIHN1cHBvcnQgZm9yIFJhZGVvbiAtKi0gbGludXgtYyAtKi0gKi8KLS8qCi0gKiBDb3B5cmlnaHQgMjAwMCBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCi0gKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBGcmVtb250LCBDYWxpZm9ybmlhLgotICogQ29weXJpZ2h0IDIwMDcgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCi0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICogQXV0aG9yczoKLSAqICAgIEtldmluIEUuIE1hcnRpbiA8bWFydGluQHZhbGludXguY29tPgotICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgotICovCi0KLSNpbmNsdWRlICJkcm1QLmgiCi0jaW5jbHVkZSAiZHJtLmgiCi0jaW5jbHVkZSAicmFkZW9uX2RybS5oIgotI2luY2x1ZGUgInJhZGVvbl9kcnYuaCIKLSNpbmNsdWRlICJyMzAwX3JlZy5oIgotCi0jaW5jbHVkZSAicmFkZW9uX21pY3JvY29kZS5oIgotCi0jZGVmaW5lIFJBREVPTl9GSUZPX0RFQlVHCTAKLQotc3RhdGljIGludCByYWRlb25fZG9fY2xlYW51cF9jcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci0KLXN0YXRpYyB1MzIgUjUwMF9SRUFEX01DSU5EKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCi17Ci0JdTMyIHJldDsKLQlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDB4N2YwMDAwIHwgKGFkZHIgJiAweGZmKSk7Ci0JcmV0ID0gUkFERU9OX1JFQUQoUjUyMF9NQ19JTkRfREFUQSk7Ci0JUkFERU9OX1dSSVRFKFI1MjBfTUNfSU5EX0lOREVYLCAwKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdTMyIFJTNDgwX1JFQURfTUNJTkQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKLXsKLQl1MzIgcmV0OwotCVJBREVPTl9XUklURShSUzQ4MF9OQl9NQ19JTkRFWCwgYWRkciAmIDB4ZmYpOwotCXJldCA9IFJBREVPTl9SRUFEKFJTNDgwX05CX01DX0RBVEEpOwotCVJBREVPTl9XUklURShSUzQ4MF9OQl9NQ19JTkRFWCwgMHhmZik7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHUzMiBSUzY5MF9SRUFEX01DSU5EKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCi17Ci0JdTMyIHJldDsKLQlSQURFT05fV1JJVEUoUlM2OTBfTUNfSU5ERVgsIChhZGRyICYgUlM2OTBfTUNfSU5ERVhfTUFTSykpOwotCXJldCA9IFJBREVPTl9SRUFEKFJTNjkwX01DX0RBVEEpOwotCVJBREVPTl9XUklURShSUzY5MF9NQ19JTkRFWCwgUlM2OTBfTUNfSU5ERVhfTUFTSyk7Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHUzMiBJR1BfUkVBRF9NQ0lORChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIGludCBhZGRyKQotewotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKQotCQlyZXR1cm4gUlM2OTBfUkVBRF9NQ0lORChkZXZfcHJpdiwgYWRkcik7Ci0JZWxzZQotCQlyZXR1cm4gUlM0ODBfUkVBRF9NQ0lORChkZXZfcHJpdiwgYWRkcik7Ci19Ci0KLXUzMiByYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpCi17Ci0KLQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjUxNSkKLQkJcmV0dXJuIFI1MDBfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlY1MTVfTUNfRkJfTE9DQVRJT04pOwotCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApCi0JCXJldHVybiBSUzY5MF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzY5MF9NQ19GQl9MT0NBVElPTik7Ci0JZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPiBDSElQX1JWNTE1KQotCQlyZXR1cm4gUjUwMF9SRUFEX01DSU5EKGRldl9wcml2LCBSNTIwX01DX0ZCX0xPQ0FUSU9OKTsKLQllbHNlCi0JCXJldHVybiBSQURFT05fUkVBRChSQURFT05fTUNfRkJfTE9DQVRJT04pOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fd3JpdGVfZmJfbG9jYXRpb24oZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCB1MzIgZmJfbG9jKQotewotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTE1KQotCQlSNTAwX1dSSVRFX01DSU5EKFJWNTE1X01DX0ZCX0xPQ0FUSU9OLCBmYl9sb2MpOwotCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApCi0JCVJTNjkwX1dSSVRFX01DSU5EKFJTNjkwX01DX0ZCX0xPQ0FUSU9OLCBmYl9sb2MpOwotCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID4gQ0hJUF9SVjUxNSkKLQkJUjUwMF9XUklURV9NQ0lORChSNTIwX01DX0ZCX0xPQ0FUSU9OLCBmYl9sb2MpOwotCWVsc2UKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9NQ19GQl9MT0NBVElPTiwgZmJfbG9jKTsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHUzMiBhZ3BfbG9jKQotewotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTE1KQotCQlSNTAwX1dSSVRFX01DSU5EKFJWNTE1X01DX0FHUF9MT0NBVElPTiwgYWdwX2xvYyk7Ci0JZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX0xPQ0FUSU9OLCBhZ3BfbG9jKTsKLQllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+IENISVBfUlY1MTUpCi0JCVI1MDBfV1JJVEVfTUNJTkQoUjUyMF9NQ19BR1BfTE9DQVRJT04sIGFncF9sb2MpOwotCWVsc2UKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9NQ19BR1BfTE9DQVRJT04sIGFncF9sb2MpOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fd3JpdGVfYWdwX2Jhc2UoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCB1NjQgYWdwX2Jhc2UpCi17Ci0JdTMyIGFncF9iYXNlX2hpID0gdXBwZXJfMzJfYml0cyhhZ3BfYmFzZSk7Ci0JdTMyIGFncF9iYXNlX2xvID0gYWdwX2Jhc2UgJiAweGZmZmZmZmZmOwotCi0JaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpIHsKLQkJUjUwMF9XUklURV9NQ0lORChSVjUxNV9NQ19BR1BfQkFTRSwgYWdwX2Jhc2VfbG8pOwotCQlSNTAwX1dSSVRFX01DSU5EKFJWNTE1X01DX0FHUF9CQVNFXzIsIGFncF9iYXNlX2hpKTsKLQl9IGVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApIHsKLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX0JBU0UsIGFncF9iYXNlX2xvKTsKLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX0JBU0VfMiwgYWdwX2Jhc2VfaGkpOwotCX0gZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPiBDSElQX1JWNTE1KSB7Ci0JCVI1MDBfV1JJVEVfTUNJTkQoUjUyMF9NQ19BR1BfQkFTRSwgYWdwX2Jhc2VfbG8pOwotCQlSNTAwX1dSSVRFX01DSU5EKFI1MjBfTUNfQUdQX0JBU0VfMiwgYWdwX2Jhc2VfaGkpOwotCX0gZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzQ4MCkgewotCQlSQURFT05fV1JJVEUoUkFERU9OX0FHUF9CQVNFLCBhZ3BfYmFzZV9sbyk7Ci0JCVJBREVPTl9XUklURShSUzQ4MF9BR1BfQkFTRV8yLCAwKTsKLQl9IGVsc2UgewotCQlSQURFT05fV1JJVEUoUkFERU9OX0FHUF9CQVNFLCBhZ3BfYmFzZV9sbyk7Ci0JCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+PSBDSElQX1IyMDApCi0JCQlSQURFT05fV1JJVEUoUkFERU9OX0FHUF9CQVNFXzIsIGFncF9iYXNlX2hpKTsKLQl9Ci19Ci0KLXN0YXRpYyBpbnQgUkFERU9OX1JFQURfUExMKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgYWRkcikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JUkFERU9OX1dSSVRFOChSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCwgYWRkciAmIDB4MWYpOwotCXJldHVybiBSQURFT05fUkVBRChSQURFT05fQ0xPQ0tfQ05UTF9EQVRBKTsKLX0KLQotc3RhdGljIHUzMiBSQURFT05fUkVBRF9QQ0lFKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCi17Ci0JUkFERU9OX1dSSVRFOChSQURFT05fUENJRV9JTkRFWCwgYWRkciAmIDB4ZmYpOwotCXJldHVybiBSQURFT05fUkVBRChSQURFT05fUENJRV9EQVRBKTsKLX0KLQotI2lmIFJBREVPTl9GSUZPX0RFQlVHCi1zdGF0aWMgdm9pZCByYWRlb25fc3RhdHVzKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JcHJpbnRrKCIlczpcbiIsIF9fZnVuY19fKTsKLQlwcmludGsoIlJCQk1fU1RBVFVTID0gMHglMDh4XG4iLAotCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NUQVRVUykpOwotCXByaW50aygiQ1BfUkJfUlRQUiA9IDB4JTA4eFxuIiwKLQkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUikpOwotCXByaW50aygiQ1BfUkJfV1RQUiA9IDB4JTA4eFxuIiwKLQkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQ1BfUkJfV1BUUikpOwotCXByaW50aygiQUlDX0NOVEwgPSAweCUwOHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19DTlRMKSk7Ci0JcHJpbnRrKCJBSUNfU1RBVCA9IDB4JTA4eFxuIiwKLQkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX1NUQVQpKTsKLQlwcmludGsoIkFJQ19QVF9CQVNFID0gMHglMDh4XG4iLAotCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9BSUNfUFRfQkFTRSkpOwotCXByaW50aygiVExCX0FERFIgPSAweCUwOHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19UTEJfQUREUikpOwotCXByaW50aygiVExCX0RBVEEgPSAweCUwOHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19UTEJfREFUQSkpOwotfQotI2VuZGlmCi0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIEVuZ2luZSwgRklGTyBjb250cm9sCi0gKi8KLQotc3RhdGljIGludCByYWRlb25fZG9fcGl4Y2FjaGVfZmx1c2goZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKLXsKLQl1MzIgdG1wOwotCWludCBpOwotCi0JZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwotCi0JaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIDw9IENISVBfUlYyODApIHsKLQkJdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCk7Ci0JCXRtcCB8PSBSQURFT05fUkIzRF9EQ19GTFVTSF9BTEw7Ci0JCVJBREVPTl9XUklURShSQURFT05fUkIzRF9EU1RDQUNIRV9DVExTVEFULCB0bXApOwotCi0JCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyBpKyspIHsKLQkJCWlmICghKFJBREVPTl9SRUFEKFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQpCi0JCQkgICAgICAmIFJBREVPTl9SQjNEX0RDX0JVU1kpKSB7Ci0JCQkJcmV0dXJuIDA7Ci0JCQl9Ci0JCQlEUk1fVURFTEFZKDEpOwotCQl9Ci0JfSBlbHNlIHsKLQkJLyogM0QgKi8KLQkJdG1wID0gUkFERU9OX1JFQUQoUjMwMF9SQjNEX0RTVENBQ0hFX0NUTFNUQVQpOwotCQl0bXAgfD0gUkFERU9OX1JCM0RfRENfRkxVU0hfQUxMOwotCQlSQURFT05fV1JJVEUoUjMwMF9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIHRtcCk7Ci0KLQkJLyogMkQgKi8KLQkJdG1wID0gUkFERU9OX1JFQUQoUjMwMF9EU1RDQUNIRV9DVExTVEFUKTsKLQkJdG1wIHw9IFJBREVPTl9SQjNEX0RDX0ZMVVNIX0FMTDsKLQkJUkFERU9OX1dSSVRFKFIzMDBfRFNUQ0FDSEVfQ1RMU1RBVCwgdG1wKTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7Ci0JCQlpZiAoIShSQURFT05fUkVBRChSMzAwX0RTVENBQ0hFX0NUTFNUQVQpCi0JCQkgICYgUkFERU9OX1JCM0RfRENfQlVTWSkpIHsKLQkJCQlyZXR1cm4gMDsKLQkJCX0KLQkJCURSTV9VREVMQVkoMSk7Ci0JCX0KLQl9Ci0KLSNpZiBSQURFT05fRklGT19ERUJVRwotCURSTV9FUlJPUigiZmFpbGVkIVxuIik7Ci0JcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7Ci0jZW5kaWYKLQlyZXR1cm4gLUVCVVNZOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9kb193YWl0X2Zvcl9maWZvKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBlbnRyaWVzKQotewotCWludCBpOwotCi0JZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwotCi0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IGkrKykgewotCQlpbnQgc2xvdHMgPSAoUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU1RBVFVTKQotCQkJICAgICAmIFJBREVPTl9SQkJNX0ZJRk9DTlRfTUFTSyk7Ci0JCWlmIChzbG90cyA+PSBlbnRyaWVzKQotCQkJcmV0dXJuIDA7Ci0JCURSTV9VREVMQVkoMSk7Ci0JfQotCi0jaWYgUkFERU9OX0ZJRk9fREVCVUcKLQlEUk1fRVJST1IoImZhaWxlZCFcbiIpOwotCXJhZGVvbl9zdGF0dXMoZGV2X3ByaXYpOwotI2VuZGlmCi0JcmV0dXJuIC1FQlVTWTsKLX0KLQotc3RhdGljIGludCByYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCWludCBpLCByZXQ7Ci0KLQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7Ci0KLQlyZXQgPSByYWRlb25fZG9fd2FpdF9mb3JfZmlmbyhkZXZfcHJpdiwgNjQpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7Ci0JCWlmICghKFJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NUQVRVUykKLQkJICAgICAgJiBSQURFT05fUkJCTV9BQ1RJVkUpKSB7Ci0JCQlyYWRlb25fZG9fcGl4Y2FjaGVfZmx1c2goZGV2X3ByaXYpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJRFJNX1VERUxBWSgxKTsKLQl9Ci0KLSNpZiBSQURFT05fRklGT19ERUJVRwotCURSTV9FUlJPUigiZmFpbGVkIVxuIik7Ci0JcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7Ci0jZW5kaWYKLQlyZXR1cm4gLUVCVVNZOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25faW5pdF9waXBlcyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpCi17Ci0JdWludDMyX3QgZ2JfdGlsZV9jb25maWcsIGdiX3BpcGVfc2VsID0gMDsKLQotCS8qIFJTNHh4L1JTNnh4L1I0eHgvUjV4eCAqLwotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+PSBDSElQX1I0MjApIHsKLQkJZ2JfcGlwZV9zZWwgPSBSQURFT05fUkVBRChSNDAwX0dCX1BJUEVfU0VMRUNUKTsKLQkJZGV2X3ByaXYtPm51bV9nYl9waXBlcyA9ICgoZ2JfcGlwZV9zZWwgPj4gMTIpICYgMHgzKSArIDE7Ci0JfSBlbHNlIHsKLQkJLyogUjN4eCAqLwotCQlpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjMwMCkgfHwKLQkJICAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1IzNTApKSB7Ci0JCQlkZXZfcHJpdi0+bnVtX2diX3BpcGVzID0gMjsKLQkJfSBlbHNlIHsKLQkJCS8qIFIzVnh4ICovCi0JCQlkZXZfcHJpdi0+bnVtX2diX3BpcGVzID0gMTsKLQkJfQotCX0KLQlEUk1fSU5GTygiTnVtIHBpcGVzOiAlZFxuIiwgZGV2X3ByaXYtPm51bV9nYl9waXBlcyk7Ci0KLQlnYl90aWxlX2NvbmZpZyA9IChSMzAwX0VOQUJMRV9USUxJTkcgfCBSMzAwX1RJTEVfU0laRV8xNiAvKnwgUjMwMF9TVUJQSVhFTF8xXzE2Ki8pOwotCi0Jc3dpdGNoIChkZXZfcHJpdi0+bnVtX2diX3BpcGVzKSB7Ci0JY2FzZSAyOiBnYl90aWxlX2NvbmZpZyB8PSBSMzAwX1BJUEVfQ09VTlRfUjMwMDsgYnJlYWs7Ci0JY2FzZSAzOiBnYl90aWxlX2NvbmZpZyB8PSBSMzAwX1BJUEVfQ09VTlRfUjQyMF8zUDsgYnJlYWs7Ci0JY2FzZSA0OiBnYl90aWxlX2NvbmZpZyB8PSBSMzAwX1BJUEVfQ09VTlRfUjQyMDsgYnJlYWs7Ci0JZGVmYXVsdDoKLQljYXNlIDE6IGdiX3RpbGVfY29uZmlnIHw9IFIzMDBfUElQRV9DT1VOVF9SVjM1MDsgYnJlYWs7Ci0JfQotCi0JaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID49IENISVBfUlY1MTUpIHsKLQkJUkFERU9OX1dSSVRFX1BMTChSNTAwX0RZTl9TQ0xLX1BXTUVNX1BJUEUsICgxIHwgKChnYl9waXBlX3NlbCA+PiA4KSAmIDB4ZikgPDwgNCkpOwotCQlSQURFT05fV1JJVEUoUjUwMF9TVV9SRUdfREVTVCwgKCgxIDw8IGRldl9wcml2LT5udW1fZ2JfcGlwZXMpIC0gMSkpOwotCX0KLQlSQURFT05fV1JJVEUoUjMwMF9HQl9USUxFX0NPTkZJRywgZ2JfdGlsZV9jb25maWcpOwotCXJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKLQlSQURFT05fV1JJVEUoUjMwMF9EU1RfUElQRV9DT05GSUcsIFJBREVPTl9SRUFEKFIzMDBfRFNUX1BJUEVfQ09ORklHKSB8IFIzMDBfUElQRV9BVVRPX0NPTkZJRyk7Ci0JUkFERU9OX1dSSVRFKFIzMDBfUkIyRF9EU1RDQUNIRV9NT0RFLCAoUkFERU9OX1JFQUQoUjMwMF9SQjJEX0RTVENBQ0hFX01PREUpIHwKLQkJCQkJICAgICAgIFIzMDBfRENfQVVUT0ZMVVNIX0VOQUJMRSB8Ci0JCQkJCSAgICAgICBSMzAwX0RDX0RDX0RJU0FCTEVfSUdOT1JFX1BFKSk7Ci0KLQotfQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBDUCBjb250cm9sLCBpbml0aWFsaXphdGlvbgotICovCi0KLS8qIExvYWQgdGhlIG1pY3JvY29kZSBmb3IgdGhlIENQICovCi1zdGF0aWMgdm9pZCByYWRlb25fY3BfbG9hZF9taWNyb2NvZGUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKLXsKLQlpbnQgaTsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlyYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9BRERSLCAwKTsKLQlpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjEwMCkgfHwKLQkgICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYxMDApIHx8Ci0JICAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWMjAwKSB8fAotCSAgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzEwMCkgfHwKLQkgICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlMyMDApKSB7Ci0JCURSTV9JTkZPKCJMb2FkaW5nIFIxMDAgTWljcm9jb2RlXG4iKTsKLQkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7Ci0JCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKLQkJCQkgICAgIFIxMDBfY3BfbWljcm9jb2RlW2ldWzFdKTsKLQkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAotCQkJCSAgICAgUjEwMF9jcF9taWNyb2NvZGVbaV1bMF0pOwotCQl9Ci0JfSBlbHNlIGlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMjAwKSB8fAotCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjI1MCkgfHwKLQkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYyODApIHx8Ci0JCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTMzAwKSkgewotCQlEUk1fSU5GTygiTG9hZGluZyBSMjAwIE1pY3JvY29kZVxuIik7Ci0JCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewotCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUgsCi0JCQkJICAgICBSMjAwX2NwX21pY3JvY29kZVtpXVsxXSk7Ci0JCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBTCwKLQkJCQkgICAgIFIyMDBfY3BfbWljcm9jb2RlW2ldWzBdKTsKLQkJfQotCX0gZWxzZSBpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjMwMCkgfHwKLQkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjM1MCkgfHwKLQkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYzNTApIHx8Ci0JCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWMzgwKSB8fAotCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzQ4MCkpIHsKLQkJRFJNX0lORk8oIkxvYWRpbmcgUjMwMCBNaWNyb2NvZGVcbiIpOwotCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKLQkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAotCQkJCSAgICAgUjMwMF9jcF9taWNyb2NvZGVbaV1bMV0pOwotCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCi0JCQkJICAgICBSMzAwX2NwX21pY3JvY29kZVtpXVswXSk7Ci0JCX0KLQl9IGVsc2UgaWYgKCgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1I0MjApIHx8Ci0JCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNDEwKSkgewotCQlEUk1fSU5GTygiTG9hZGluZyBSNDAwIE1pY3JvY29kZVxuIik7Ci0JCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewotCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUgsCi0JCQkJICAgICBSNDIwX2NwX21pY3JvY29kZVtpXVsxXSk7Ci0JCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBTCwKLQkJCQkgICAgIFI0MjBfY3BfbWljcm9jb2RlW2ldWzBdKTsKLQkJfQotCX0gZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkgewotCQlEUk1fSU5GTygiTG9hZGluZyBSUzY5MCBNaWNyb2NvZGVcbiIpOwotCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKLQkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAotCQkJCSAgICAgUlM2OTBfY3BfbWljcm9jb2RlW2ldWzFdKTsKLQkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAotCQkJCSAgICAgUlM2OTBfY3BfbWljcm9jb2RlW2ldWzBdKTsKLQkJfQotCX0gZWxzZSBpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpIHx8Ci0JCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1I1MjApIHx8Ci0JCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTMwKSB8fAotCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SNTgwKSB8fAotCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjU2MCkgfHwKLQkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1NzApKSB7Ci0JCURSTV9JTkZPKCJMb2FkaW5nIFI1MDAgTWljcm9jb2RlXG4iKTsKLQkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7Ci0JCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKLQkJCQkgICAgIFI1MjBfY3BfbWljcm9jb2RlW2ldWzFdKTsKLQkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAotCQkJCSAgICAgUjUyMF9jcF9taWNyb2NvZGVbaV1bMF0pOwotCQl9Ci0JfQotfQotCi0vKiBGbHVzaCBhbnkgcGVuZGluZyBjb21tYW5kcyB0byB0aGUgQ1AuICBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQganVzdAotICogcHJpb3IgdG8gYSB3YWl0IGZvciBpZGxlLCBhcyBpdCBpbmZvcm1zIHRoZSBlbmdpbmUgdGhhdCB0aGUgY29tbWFuZAotICogc3RyZWFtIGlzIGVuZGluZy4KLSAqLwotc3RhdGljIHZvaWQgcmFkZW9uX2RvX2NwX2ZsdXNoKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JRFJNX0RFQlVHKCJcbiIpOwotI2lmIDAKLQl1MzIgdG1wOwotCi0JdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1dQVFIpIHwgKDEgPDwgMzEpOwotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUiwgdG1wKTsKLSNlbmRpZgotfQotCi0vKiBXYWl0IGZvciB0aGUgQ1AgdG8gZ28gaWRsZS4KLSAqLwotaW50IHJhZGVvbl9kb19jcF9pZGxlKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JUklOR19MT0NBTFM7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JQkVHSU5fUklORyg2KTsKLQotCVJBREVPTl9QVVJHRV9DQUNIRSgpOwotCVJBREVPTl9QVVJHRV9aQ0FDSEUoKTsKLQlSQURFT05fV0FJVF9VTlRJTF9JRExFKCk7Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLQlDT01NSVRfUklORygpOwotCi0JcmV0dXJuIHJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKLX0KLQotLyogU3RhcnQgdGhlIENvbW1hbmQgUHJvY2Vzc29yLgotICovCi1zdGF0aWMgdm9pZCByYWRlb25fZG9fY3Bfc3RhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKLXsKLQlSSU5HX0xPQ0FMUzsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlyYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX0NTUV9DTlRMLCBkZXZfcHJpdi0+Y3BfbW9kZSk7Ci0KLQlkZXZfcHJpdi0+Y3BfcnVubmluZyA9IDE7Ci0KLQlCRUdJTl9SSU5HKDYpOwotCi0JUkFERU9OX1BVUkdFX0NBQ0hFKCk7Ci0JUkFERU9OX1BVUkdFX1pDQUNIRSgpOwotCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKLQotCUFEVkFOQ0VfUklORygpOwotCUNPTU1JVF9SSU5HKCk7Ci19Ci0KLS8qIFJlc2V0IHRoZSBDb21tYW5kIFByb2Nlc3Nvci4gIFRoaXMgd2lsbCBub3QgZmx1c2ggYW55IHBlbmRpbmcKLSAqIGNvbW1hbmRzLCBzbyB5b3UgbXVzdCB3YWl0IGZvciB0aGUgQ1AgY29tbWFuZCBzdHJlYW0gdG8gY29tcGxldGUKLSAqIGJlZm9yZSBjYWxsaW5nIHRoaXMgcm91dGluZS4KLSAqLwotc3RhdGljIHZvaWQgcmFkZW9uX2RvX2NwX3Jlc2V0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JdTMyIGN1cl9yZWFkX3B0cjsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQljdXJfcmVhZF9wdHIgPSBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUik7Ci0JUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9XUFRSLCBjdXJfcmVhZF9wdHIpOwotCVNFVF9SSU5HX0hFQUQoZGV2X3ByaXYsIGN1cl9yZWFkX3B0cik7Ci0JZGV2X3ByaXYtPnJpbmcudGFpbCA9IGN1cl9yZWFkX3B0cjsKLX0KLQotLyogU3RvcCB0aGUgQ29tbWFuZCBQcm9jZXNzb3IuICBUaGlzIHdpbGwgbm90IGZsdXNoIGFueSBwZW5kaW5nCi0gKiBjb21tYW5kcywgc28geW91IG11c3QgZmx1c2ggdGhlIGNvbW1hbmQgc3RyZWFtIGFuZCB3YWl0IGZvciB0aGUgQ1AKLSAqIHRvIGdvIGlkbGUgYmVmb3JlIGNhbGxpbmcgdGhpcyByb3V0aW5lLgotICovCi1zdGF0aWMgdm9pZCByYWRlb25fZG9fY3Bfc3RvcChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCURSTV9ERUJVRygiXG4iKTsKLQotCVJBREVPTl9XUklURShSQURFT05fQ1BfQ1NRX0NOVEwsIFJBREVPTl9DU1FfUFJJRElTX0lORERJUyk7Ci0KLQlkZXZfcHJpdi0+Y3BfcnVubmluZyA9IDA7Ci19Ci0KLS8qIFJlc2V0IHRoZSBlbmdpbmUuICBUaGlzIHdpbGwgc3RvcCB0aGUgQ1AgaWYgaXQgaXMgcnVubmluZy4KLSAqLwotc3RhdGljIGludCByYWRlb25fZG9fZW5naW5lX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdTMyIGNsb2NrX2NudGxfaW5kZXggPSAwLCBtY2xrX2NudGwgPSAwLCByYmJtX3NvZnRfcmVzZXQ7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JcmFkZW9uX2RvX3BpeGNhY2hlX2ZsdXNoKGRldl9wcml2KTsKLQotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA8PSBDSElQX1JWNDEwKSB7Ci0JCS8qIG1heSBuZWVkIHNvbWV0aGluZyBzaW1pbGFyIGZvciBuZXdlciBjaGlwcyAqLwotCQljbG9ja19jbnRsX2luZGV4ID0gUkFERU9OX1JFQUQoUkFERU9OX0NMT0NLX0NOVExfSU5ERVgpOwotCQltY2xrX2NudGwgPSBSQURFT05fUkVBRF9QTEwoZGV2LCBSQURFT05fTUNMS19DTlRMKTsKLQotCQlSQURFT05fV1JJVEVfUExMKFJBREVPTl9NQ0xLX0NOVEwsIChtY2xrX2NudGwgfAotCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX01DTEtBIHwKLQkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9NQ0xLQiB8Ci0JCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fWUNMS0EgfAotCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX1lDTEtCIHwKLQkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9NQyB8Ci0JCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fQUlDKSk7Ci0JfQotCi0JcmJibV9zb2Z0X3Jlc2V0ID0gUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU09GVF9SRVNFVCk7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX1JCQk1fU09GVF9SRVNFVCwgKHJiYm1fc29mdF9yZXNldCB8Ci0JCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX0NQIHwKLQkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfSEkgfAotCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9TRSB8Ci0JCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX1JFIHwKLQkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfUFAgfAotCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9FMiB8Ci0JCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX1JCKSk7Ci0JUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU09GVF9SRVNFVCk7Ci0JUkFERU9OX1dSSVRFKFJBREVPTl9SQkJNX1NPRlRfUkVTRVQsIChyYmJtX3NvZnRfcmVzZXQgJgotCQkJCQkgICAgICB+KFJBREVPTl9TT0ZUX1JFU0VUX0NQIHwKLQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX0hJIHwKLQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1NFIHwKLQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1JFIHwKLQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1BQIHwKLQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX0UyIHwKLQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1JCKSkpOwotCVJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NPRlRfUkVTRVQpOwotCi0JaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIDw9IENISVBfUlY0MTApIHsKLQkJUkFERU9OX1dSSVRFX1BMTChSQURFT05fTUNMS19DTlRMLCBtY2xrX2NudGwpOwotCQlSQURFT05fV1JJVEUoUkFERU9OX0NMT0NLX0NOVExfSU5ERVgsIGNsb2NrX2NudGxfaW5kZXgpOwotCQlSQURFT05fV1JJVEUoUkFERU9OX1JCQk1fU09GVF9SRVNFVCwgcmJibV9zb2Z0X3Jlc2V0KTsKLQl9Ci0KLQkvKiBzZXR1cCB0aGUgcmFzdGVyIHBpcGVzICovCi0JaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID49IENISVBfUjMwMCkKLQkgICAgcmFkZW9uX2luaXRfcGlwZXMoZGV2X3ByaXYpOwotCi0JLyogUmVzZXQgdGhlIENQIHJpbmcgKi8KLQlyYWRlb25fZG9fY3BfcmVzZXQoZGV2X3ByaXYpOwotCi0JLyogVGhlIENQIGlzIG5vIGxvbmdlciBydW5uaW5nIGFmdGVyIGFuIGVuZ2luZSByZXNldCAqLwotCWRldl9wcml2LT5jcF9ydW5uaW5nID0gMDsKLQotCS8qIFJlc2V0IGFueSBwZW5kaW5nIHZlcnRleCwgaW5kaXJlY3QgYnVmZmVycyAqLwotCXJhZGVvbl9mcmVlbGlzdF9yZXNldChkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9jcF9pbml0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCSAgICAgICBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCXUzMiByaW5nX3N0YXJ0LCBjdXJfcmVhZF9wdHI7Ci0JdTMyIHRtcDsKLQotCS8qIEluaXRpYWxpemUgdGhlIG1lbW9yeSBjb250cm9sbGVyLiBXaXRoIG5ldyBtZW1vcnkgbWFwLCB0aGUgZmIgbG9jYXRpb24KLQkgKiBpcyBub3QgY2hhbmdlZCwgaXQgc2hvdWxkIGhhdmUgYmVlbiBwcm9wZXJseSBpbml0aWFsaXplZCBhbHJlYWR5LiBQYXJ0Ci0JICogb2YgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgY29kZSBiZWxvdyBpcyBib2d1cywgYXNzdW1pbmcgdGhlIEdBUlQgaXMKLQkgKiBhbHdheXMgYXBwZW5kZWQgdG8gdGhlIGZiIHdoaWNoIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgY2FzZQotCSAqLwotCWlmICghZGV2X3ByaXYtPm5ld19tZW1tYXApCi0JCXJhZGVvbl93cml0ZV9mYl9sb2NhdGlvbihkZXZfcHJpdiwKLQkJCSAgICAgKChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAtIDEpICYgMHhmZmZmMDAwMCkKLQkJCSAgICAgfCAoZGV2X3ByaXYtPmZiX2xvY2F0aW9uID4+IDE2KSk7Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQlyYWRlb25fd3JpdGVfYWdwX2Jhc2UoZGV2X3ByaXYsIGRldi0+YWdwLT5iYXNlKTsKLQotCQlyYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRldl9wcml2LAotCQkJICAgICAoKChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAtIDEgKwotCQkJCWRldl9wcml2LT5nYXJ0X3NpemUpICYgMHhmZmZmMDAwMCkgfAotCQkJICAgICAgKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ID4+IDE2KSkpOwotCi0JCXJpbmdfc3RhcnQgPSAoZGV2X3ByaXYtPmNwX3JpbmctPm9mZnNldAotCQkJICAgICAgLSBkZXYtPmFncC0+YmFzZQotCQkJICAgICAgKyBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JfSBlbHNlCi0jZW5kaWYKLQkJcmluZ19zdGFydCA9IChkZXZfcHJpdi0+Y3BfcmluZy0+b2Zmc2V0Ci0JCQkgICAgICAtICh1bnNpZ25lZCBsb25nKWRldi0+c2ctPnZpcnR1YWwKLQkJCSAgICAgICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCi0JUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9CQVNFLCByaW5nX3N0YXJ0KTsKLQotCS8qIFNldCB0aGUgd3JpdGUgcG9pbnRlciBkZWxheSAqLwotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUl9ERUxBWSwgMCk7Ci0KLQkvKiBJbml0aWFsaXplIHRoZSByaW5nIGJ1ZmZlcidzIHJlYWQgYW5kIHdyaXRlIHBvaW50ZXJzICovCi0JY3VyX3JlYWRfcHRyID0gUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1JQVFIpOwotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUiwgY3VyX3JlYWRfcHRyKTsKLQlTRVRfUklOR19IRUFEKGRldl9wcml2LCBjdXJfcmVhZF9wdHIpOwotCWRldl9wcml2LT5yaW5nLnRhaWwgPSBjdXJfcmVhZF9wdHI7Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1JQVFJfQUREUiwKLQkJCSAgICAgZGV2X3ByaXYtPnJpbmdfcnB0ci0+b2Zmc2V0Ci0JCQkgICAgIC0gZGV2LT5hZ3AtPmJhc2UgKyBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JfSBlbHNlCi0jZW5kaWYKLQl7Ci0JCXN0cnVjdCBkcm1fc2dfbWVtICplbnRyeSA9IGRldi0+c2c7Ci0JCXVuc2lnbmVkIGxvbmcgdG1wX29mcywgcGFnZV9vZnM7Ci0KLQkJdG1wX29mcyA9IGRldl9wcml2LT5yaW5nX3JwdHItPm9mZnNldCAtCi0JCQkJKHVuc2lnbmVkIGxvbmcpZGV2LT5zZy0+dmlydHVhbDsKLQkJcGFnZV9vZnMgPSB0bXBfb2ZzID4+IFBBR0VfU0hJRlQ7Ci0KLQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9SUFRSX0FERFIsIGVudHJ5LT5idXNhZGRyW3BhZ2Vfb2ZzXSk7Ci0JCURSTV9ERUJVRygicmluZyBycHRyOiBvZmZzZXQ9MHglMDhseCBoYW5kbGU9MHglMDhseFxuIiwKLQkJCSAgKHVuc2lnbmVkIGxvbmcpZW50cnktPmJ1c2FkZHJbcGFnZV9vZnNdLAotCQkJICBlbnRyeS0+aGFuZGxlICsgdG1wX29mcyk7Ci0JfQotCi0JLyogU2V0IHJpbmcgYnVmZmVyIHNpemUgKi8KLSNpZmRlZiBfX0JJR19FTkRJQU4KLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX0NOVEwsCi0JCSAgICAgUkFERU9OX0JVRl9TV0FQXzMyQklUIHwKLQkJICAgICAoZGV2X3ByaXYtPnJpbmcuZmV0Y2hfc2l6ZV9sMm93IDw8IDE4KSB8Ci0JCSAgICAgKGRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlX2wycXcgPDwgOCkgfAotCQkgICAgIGRldl9wcml2LT5yaW5nLnNpemVfbDJxdyk7Ci0jZWxzZQotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfQ05UTCwKLQkJICAgICAoZGV2X3ByaXYtPnJpbmcuZmV0Y2hfc2l6ZV9sMm93IDw8IDE4KSB8Ci0JCSAgICAgKGRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlX2wycXcgPDwgOCkgfAotCQkgICAgIGRldl9wcml2LT5yaW5nLnNpemVfbDJxdyk7Ci0jZW5kaWYKLQotCS8qIFN0YXJ0IHdpdGggYXNzdW1pbmcgdGhhdCB3cml0ZWJhY2sgZG9lc24ndCB3b3JrICovCi0JZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA9IDA7Ci0KLQkvKiBJbml0aWFsaXplIHRoZSBzY3JhdGNoIHJlZ2lzdGVyIHBvaW50ZXIuICBUaGlzIHdpbGwgY2F1c2UKLQkgKiB0aGUgc2NyYXRjaCByZWdpc3RlciB2YWx1ZXMgdG8gYmUgd3JpdHRlbiBvdXQgdG8gbWVtb3J5Ci0JICogd2hlbmV2ZXIgdGhleSBhcmUgdXBkYXRlZC4KLQkgKgotCSAqIFdlIHNpbXBseSBwdXQgdGhpcyBiZWhpbmQgdGhlIHJpbmcgcmVhZCBwb2ludGVyLCB0aGlzIHdvcmtzCi0JICogd2l0aCBQQ0kgR0FSVCBhcyB3ZWxsIGFzICh3aGF0ZXZlciBraW5kIG9mKSBBR1AgR0FSVAotCSAqLwotCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9BRERSLCBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUl9BRERSKQotCQkgICAgICsgUkFERU9OX1NDUkFUQ0hfUkVHX09GRlNFVCk7Ci0KLQlkZXZfcHJpdi0+c2NyYXRjaCA9ICgoX192b2xhdGlsZV9fIHUzMiAqKQotCQkJICAgICBkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUgKwotCQkJICAgICAoUkFERU9OX1NDUkFUQ0hfUkVHX09GRlNFVCAvIHNpemVvZih1MzIpKSk7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX1NDUkFUQ0hfVU1TSywgMHg3KTsKLQotCS8qIFR1cm4gb24gYnVzIG1hc3RlcmluZyAqLwotCXRtcCA9IFJBREVPTl9SRUFEKFJBREVPTl9CVVNfQ05UTCkgJiB+UkFERU9OX0JVU19NQVNURVJfRElTOwotCVJBREVPTl9XUklURShSQURFT05fQlVTX0NOVEwsIHRtcCk7Ci0KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSA9IGRldl9wcml2LT5zY3JhdGNoWzBdID0gMDsKLQlSQURFT05fV1JJVEUoUkFERU9OX0xBU1RfRlJBTUVfUkVHLCBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSk7Ci0KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCA9IGRldl9wcml2LT5zY3JhdGNoWzFdID0gMDsKLQlSQURFT05fV1JJVEUoUkFERU9OX0xBU1RfRElTUEFUQ0hfUkVHLAotCQkgICAgIGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoKTsKLQotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2NsZWFyID0gZGV2X3ByaXYtPnNjcmF0Y2hbMl0gPSAwOwotCVJBREVPTl9XUklURShSQURFT05fTEFTVF9DTEVBUl9SRUcsIGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2NsZWFyKTsKLQotCXJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKLQotCS8qIFN5bmMgZXZlcnl0aGluZyB1cCAqLwotCVJBREVPTl9XUklURShSQURFT05fSVNZTkNfQ05UTCwKLQkJICAgICAoUkFERU9OX0lTWU5DX0FOWTJEX0lETEUzRCB8Ci0JCSAgICAgIFJBREVPTl9JU1lOQ19BTlkzRF9JRExFMkQgfAotCQkgICAgICBSQURFT05fSVNZTkNfV0FJVF9JRExFR1VJIHwKLQkJICAgICAgUkFERU9OX0lTWU5DX0NQU0NSQVRDSF9JRExFR1VJKSk7Ci0KLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX3Rlc3Rfd3JpdGViYWNrKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JdTMyIHRtcDsKLQotCS8qIFdyaXRlYmFjayBkb2Vzbid0IHNlZW0gdG8gd29yayBldmVyeXdoZXJlLCB0ZXN0IGl0IGhlcmUgYW5kIHBvc3NpYmx5Ci0JICogZW5hYmxlIGl0IGlmIGl0IGFwcGVhcnMgdG8gd29yawotCSAqLwotCURSTV9XUklURTMyKGRldl9wcml2LT5yaW5nX3JwdHIsIFJBREVPTl9TQ1JBVENIT0ZGKDEpLCAwKTsKLQlSQURFT05fV1JJVEUoUkFERU9OX1NDUkFUQ0hfUkVHMSwgMHhkZWFkYmVlZik7Ci0KLQlmb3IgKHRtcCA9IDA7IHRtcCA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IHRtcCsrKSB7Ci0JCWlmIChEUk1fUkVBRDMyKGRldl9wcml2LT5yaW5nX3JwdHIsIFJBREVPTl9TQ1JBVENIT0ZGKDEpKSA9PQotCQkgICAgMHhkZWFkYmVlZikKLQkJCWJyZWFrOwotCQlEUk1fVURFTEFZKDEpOwotCX0KLQotCWlmICh0bXAgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0KSB7Ci0JCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAxOwotCQlEUk1fSU5GTygid3JpdGViYWNrIHRlc3Qgc3VjY2VlZGVkIGluICVkIHVzZWNzXG4iLCB0bXApOwotCX0gZWxzZSB7Ci0JCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAwOwotCQlEUk1fSU5GTygid3JpdGViYWNrIHRlc3QgZmFpbGVkXG4iKTsKLQl9Ci0JaWYgKHJhZGVvbl9ub193YiA9PSAxKSB7Ci0JCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAwOwotCQlEUk1fSU5GTygid3JpdGViYWNrIGZvcmNlZCBvZmZcbiIpOwotCX0KLQotCWlmICghZGV2X3ByaXYtPndyaXRlYmFja193b3JrcykgewotCQkvKiBEaXNhYmxlIHdyaXRlYmFjayB0byBhdm9pZCB1bm5lY2Vzc2FyeSBidXMgbWFzdGVyIHRyYW5zZmVyICovCi0JCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfQ05UTCwgUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX0NOVEwpIHwKLQkJCSAgICAgUkFERU9OX1JCX05PX1VQREFURSk7Ci0JCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9VTVNLLCAwKTsKLQl9Ci19Ci0KLS8qIEVuYWJsZSBvciBkaXNhYmxlIElHUCBHQVJUIG9uIHRoZSBjaGlwICovCi1zdGF0aWMgdm9pZCByYWRlb25fc2V0X2lncGdhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IG9uKQotewotCXUzMiB0ZW1wOwotCi0JaWYgKG9uKSB7Ci0JCURSTV9ERUJVRygicHJvZ3JhbW1pbmcgaWdwIGdhcnQgJTA4WCAlMDhsWCAlMDhYXG4iLAotCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCwKLQkJCSAgKGxvbmcpZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkciwKLQkJCSAgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7Ci0KLQkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9NQ19NSVNDX0NOVEwpOwotCQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKLQkJCUlHUF9XUklURV9NQ0lORChSUzQ4MF9NQ19NSVNDX0NOVEwsIChSUzQ4MF9HQVJUX0lOREVYX1JFR19FTiB8Ci0JCQkJCQkJICAgICBSUzY5MF9CTE9DS19HRlhfRDNfRU4pKTsKLQkJZWxzZQotCQkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX01DX01JU0NfQ05UTCwgUlM0ODBfR0FSVF9JTkRFWF9SRUdfRU4pOwotCi0JCUlHUF9XUklURV9NQ0lORChSUzQ4MF9BR1BfQUREUkVTU19TUEFDRV9TSVpFLCAoUlM0ODBfR0FSVF9FTiB8Ci0JCQkJCQkJICAgICAgIFJTNDgwX1ZBX1NJWkVfMzJNQikpOwotCi0JCXRlbXAgPSBJR1BfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM0ODBfR0FSVF9GRUFUVVJFX0lEKTsKLQkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0dBUlRfRkVBVFVSRV9JRCwgKFJTNDgwX0hBTkdfRU4gfAotCQkJCQkJCVJTNDgwX1RMQl9FTkFCTEUgfAotCQkJCQkJCVJTNDgwX0dUV19MQUNfRU4gfAotCQkJCQkJCVJTNDgwXzFMRVZFTF9HQVJUKSk7Ci0KLQkJdGVtcCA9IGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIgJiAweGZmZmZmMDAwOwotCQl0ZW1wIHw9ICh1cHBlcl8zMl9iaXRzKGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpICYgMHhmZikgPDwgNDsKLQkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0dBUlRfQkFTRSwgdGVtcCk7Ci0KLQkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9BR1BfTU9ERV9DTlRMKTsKLQkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0FHUF9NT0RFX0NOVEwsICgoMSA8PCBSUzQ4MF9SRVFfVFlQRV9TTk9PUF9TSElGVCkgfAotCQkJCQkJICAgICAgUlM0ODBfUkVRX1RZUEVfU05PT1BfRElTKSk7Ci0KLQkJcmFkZW9uX3dyaXRlX2FncF9iYXNlKGRldl9wcml2LCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0KLQkJZGV2X3ByaXYtPmdhcnRfc2l6ZSA9IDMyKjEwMjQqMTAyNDsKLQkJdGVtcCA9ICgoKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IC0gMSArIGRldl9wcml2LT5nYXJ0X3NpemUpICYKLQkJCSAweGZmZmYwMDAwKSB8IChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA+PiAxNikpOwotCi0JCXJhZGVvbl93cml0ZV9hZ3BfbG9jYXRpb24oZGV2X3ByaXYsIHRlbXApOwotCi0JCXRlbXAgPSBJR1BfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM0ODBfQUdQX0FERFJFU1NfU1BBQ0VfU0laRSk7Ci0JCUlHUF9XUklURV9NQ0lORChSUzQ4MF9BR1BfQUREUkVTU19TUEFDRV9TSVpFLCAoUlM0ODBfR0FSVF9FTiB8Ci0JCQkJCQkJICAgICAgIFJTNDgwX1ZBX1NJWkVfMzJNQikpOwotCi0JCWRvIHsKLQkJCXRlbXAgPSBJR1BfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM0ODBfR0FSVF9DQUNIRV9DTlRSTCk7Ci0JCQlpZiAoKHRlbXAgJiBSUzQ4MF9HQVJUX0NBQ0hFX0lOVkFMSURBVEUpID09IDApCi0JCQkJYnJlYWs7Ci0JCQlEUk1fVURFTEFZKDEpOwotCQl9IHdoaWxlICgxKTsKLQotCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfR0FSVF9DQUNIRV9DTlRSTCwKLQkJCQlSUzQ4MF9HQVJUX0NBQ0hFX0lOVkFMSURBVEUpOwotCi0JCWRvIHsKLQkJCXRlbXAgPSBJR1BfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM0ODBfR0FSVF9DQUNIRV9DTlRSTCk7Ci0JCQlpZiAoKHRlbXAgJiBSUzQ4MF9HQVJUX0NBQ0hFX0lOVkFMSURBVEUpID09IDApCi0JCQkJYnJlYWs7Ci0JCQlEUk1fVURFTEFZKDEpOwotCQl9IHdoaWxlICgxKTsKLQotCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfR0FSVF9DQUNIRV9DTlRSTCwgMCk7Ci0JfSBlbHNlIHsKLQkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0FHUF9BRERSRVNTX1NQQUNFX1NJWkUsIDApOwotCX0KLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX3NldF9wY2llZ2FydChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LCBpbnQgb24pCi17Ci0JdTMyIHRtcCA9IFJBREVPTl9SRUFEX1BDSUUoZGV2X3ByaXYsIFJBREVPTl9QQ0lFX1RYX0dBUlRfQ05UTCk7Ci0JaWYgKG9uKSB7Ci0KLQkJRFJNX0RFQlVHKCJwcm9ncmFtbWluZyBwY2llICUwOFggJTA4bFggJTA4WFxuIiwKLQkJCSAgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQsCi0JCQkgIChsb25nKWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIsCi0JCQkgIGRldl9wcml2LT5nYXJ0X3NpemUpOwotCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9ESVNDQVJEX1JEX0FERFJfTE8sCi0JCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfQkFTRSwKLQkJCQkgIGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpOwotCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9HQVJUX1NUQVJUX0xPLAotCQkJCSAgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9HQVJUX0VORF9MTywKLQkJCQkgIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ICsKLQkJCQkgIGRldl9wcml2LT5nYXJ0X3NpemUgLSAxKTsKLQotCQlyYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRldl9wcml2LCAweGZmZmZmZmMwKTsgLyogPz8gKi8KLQotCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9HQVJUX0NOVEwsCi0JCQkJICBSQURFT05fUENJRV9UWF9HQVJUX0VOKTsKLQl9IGVsc2UgewotCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9HQVJUX0NOVEwsCi0JCQkJICB0bXAgJiB+UkFERU9OX1BDSUVfVFhfR0FSVF9FTik7Ci0JfQotfQotCi0vKiBFbmFibGUgb3IgZGlzYWJsZSBQQ0kgR0FSVCBvbiB0aGUgY2hpcCAqLwotc3RhdGljIHZvaWQgcmFkZW9uX3NldF9wY2lnYXJ0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBvbikKLXsKLQl1MzIgdG1wOwotCi0JaWYgKCgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKSB8fAotCSAgICAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0lHUEdBUlQpKSB7Ci0JCXJhZGVvbl9zZXRfaWdwZ2FydChkZXZfcHJpdiwgb24pOwotCQlyZXR1cm47Ci0JfQotCi0JaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKSB7Ci0JCXJhZGVvbl9zZXRfcGNpZWdhcnQoZGV2X3ByaXYsIG9uKTsKLQkJcmV0dXJuOwotCX0KLQotCXRtcCA9IFJBREVPTl9SRUFEKFJBREVPTl9BSUNfQ05UTCk7Ci0KLQlpZiAob24pIHsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfQ05UTCwKLQkJCSAgICAgdG1wIHwgUkFERU9OX1BDSUdBUlRfVFJBTlNMQVRFX0VOKTsKLQotCQkvKiBzZXQgUENJIEdBUlQgcGFnZS10YWJsZSBiYXNlIGFkZHJlc3MKLQkJICovCi0JCVJBREVPTl9XUklURShSQURFT05fQUlDX1BUX0JBU0UsIGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpOwotCi0JCS8qIHNldCBhZGRyZXNzIHJhbmdlIGZvciBQQ0kgYWRkcmVzcyB0cmFuc2xhdGUKLQkJICovCi0JCVJBREVPTl9XUklURShSQURFT05fQUlDX0xPX0FERFIsIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfSElfQUREUiwgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQKLQkJCSAgICAgKyBkZXZfcHJpdi0+Z2FydF9zaXplIC0gMSk7Ci0KLQkJLyogVHVybiBvZmYgQUdQIGFwZXJ0dXJlIC0tIGlzIHRoaXMgcmVxdWlyZWQgZm9yIFBDSSBHQVJUPwotCQkgKi8KLQkJcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkZXZfcHJpdiwgMHhmZmZmZmZjMCk7Ci0JCVJBREVPTl9XUklURShSQURFT05fQUdQX0NPTU1BTkQsIDApOwkvKiBjbGVhciBBR1BfQ09NTUFORCAqLwotCX0gZWxzZSB7Ci0JCVJBREVPTl9XUklURShSQURFT05fQUlDX0NOVEwsCi0JCQkgICAgIHRtcCAmIH5SQURFT05fUENJR0FSVF9UUkFOU0xBVEVfRU4pOwotCX0KLX0KLQotc3RhdGljIGludCByYWRlb25fZG9faW5pdF9jcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgZHJtX3JhZGVvbl9pbml0X3QgKiBpbml0KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQkvKiBpZiB3ZSByZXF1aXJlIG5ldyBtZW1vcnkgbWFwIGJ1dCB3ZSBkb24ndCBoYXZlIGl0IGZhaWwgKi8KLQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9ORVdfTUVNTUFQKSAmJiAhZGV2X3ByaXYtPm5ld19tZW1tYXApIHsKLQkJRFJNX0VSUk9SKCJDYW5ub3QgaW5pdGlhbGlzZSBEUk0gb24gdGhpcyBjYXJkXG5UaGlzIGNhcmQgcmVxdWlyZXMgYSBuZXcgWC5vcmcgRERYIGZvciAzRFxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChpbml0LT5pc19wY2kgJiYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApKSB7Ci0JCURSTV9ERUJVRygiRm9yY2luZyBBR1AgY2FyZCB0byBQQ0kgbW9kZVxuIik7Ci0JCWRldl9wcml2LT5mbGFncyAmPSB+UkFERU9OX0lTX0FHUDsKLQl9IGVsc2UgaWYgKCEoZGV2X3ByaXYtPmZsYWdzICYgKFJBREVPTl9JU19BR1AgfCBSQURFT05fSVNfUENJIHwgUkFERU9OX0lTX1BDSUUpKQotCQkgICAmJiAhaW5pdC0+aXNfcGNpKSB7Ci0JCURSTV9ERUJVRygiUmVzdG9yaW5nIEFHUCBmbGFnXG4iKTsKLQkJZGV2X3ByaXYtPmZsYWdzIHw9IFJBREVPTl9JU19BR1A7Ci0JfQotCi0JaWYgKCghKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApKSAmJiAhZGV2LT5zZykgewotCQlEUk1fRVJST1IoIlBDSSBHQVJUIG1lbW9yeSBub3QgYWxsb2NhdGVkIVxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRldl9wcml2LT51c2VjX3RpbWVvdXQgPSBpbml0LT51c2VjX3RpbWVvdXQ7Ci0JaWYgKGRldl9wcml2LT51c2VjX3RpbWVvdXQgPCAxIHx8Ci0JICAgIGRldl9wcml2LT51c2VjX3RpbWVvdXQgPiBSQURFT05fTUFYX1VTRUNfVElNRU9VVCkgewotCQlEUk1fREVCVUcoIlRJTUVPVVQgcHJvYmxlbSFcbiIpOwotCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBFbmFibGUgdmJsYW5rIG9uIENSVEMxIGZvciBvbGRlciBYIHNlcnZlcnMKLQkgKi8KLQlkZXZfcHJpdi0+dmJsYW5rX2NydGMgPSBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMTsKLQotCXN3aXRjaChpbml0LT5mdW5jKSB7Ci0JY2FzZSBSQURFT05fSU5JVF9SMjAwX0NQOgotCQlkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPSBVQ09ERV9SMjAwOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9JTklUX1IzMDBfQ1A6Ci0JCWRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9IFVDT0RFX1IzMDA7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9IFVDT0RFX1IxMDA7Ci0JfQotCi0JZGV2X3ByaXYtPmRvX2JveGVzID0gMDsKLQlkZXZfcHJpdi0+Y3BfbW9kZSA9IGluaXQtPmNwX21vZGU7Ci0KLQkvKiBXZSBkb24ndCBzdXBwb3J0IGFueXRoaW5nIG90aGVyIHRoYW4gYnVzLW1hc3RlcmluZyByaW5nIG1vZGUsCi0JICogYnV0IHRoZSByaW5nIGNhbiBiZSBpbiBlaXRoZXIgQUdQIG9yIFBDSSBzcGFjZSBmb3IgdGhlIHJpbmcKLQkgKiByZWFkIHBvaW50ZXIuCi0JICovCi0JaWYgKChpbml0LT5jcF9tb2RlICE9IFJBREVPTl9DU1FfUFJJQk1fSU5ERElTKSAmJgotCSAgICAoaW5pdC0+Y3BfbW9kZSAhPSBSQURFT05fQ1NRX1BSSUJNX0lOREJNKSkgewotCQlEUk1fREVCVUcoIkJBRCBjcF9tb2RlICgleCkhXG4iLCBpbml0LT5jcF9tb2RlKTsKLQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0Jc3dpdGNoIChpbml0LT5mYl9icHApIHsKLQljYXNlIDE2OgotCQlkZXZfcHJpdi0+Y29sb3JfZm10ID0gUkFERU9OX0NPTE9SX0ZPUk1BVF9SR0I1NjU7Ci0JCWJyZWFrOwotCWNhc2UgMzI6Ci0JZGVmYXVsdDoKLQkJZGV2X3ByaXYtPmNvbG9yX2ZtdCA9IFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjg4ODg7Ci0JCWJyZWFrOwotCX0KLQlkZXZfcHJpdi0+ZnJvbnRfb2Zmc2V0ID0gaW5pdC0+ZnJvbnRfb2Zmc2V0OwotCWRldl9wcml2LT5mcm9udF9waXRjaCA9IGluaXQtPmZyb250X3BpdGNoOwotCWRldl9wcml2LT5iYWNrX29mZnNldCA9IGluaXQtPmJhY2tfb2Zmc2V0OwotCWRldl9wcml2LT5iYWNrX3BpdGNoID0gaW5pdC0+YmFja19waXRjaDsKLQotCXN3aXRjaCAoaW5pdC0+ZGVwdGhfYnBwKSB7Ci0JY2FzZSAxNjoKLQkJZGV2X3ByaXYtPmRlcHRoX2ZtdCA9IFJBREVPTl9ERVBUSF9GT1JNQVRfMTZCSVRfSU5UX1o7Ci0JCWJyZWFrOwotCWNhc2UgMzI6Ci0JZGVmYXVsdDoKLQkJZGV2X3ByaXYtPmRlcHRoX2ZtdCA9IFJBREVPTl9ERVBUSF9GT1JNQVRfMjRCSVRfSU5UX1o7Ci0JCWJyZWFrOwotCX0KLQlkZXZfcHJpdi0+ZGVwdGhfb2Zmc2V0ID0gaW5pdC0+ZGVwdGhfb2Zmc2V0OwotCWRldl9wcml2LT5kZXB0aF9waXRjaCA9IGluaXQtPmRlcHRoX3BpdGNoOwotCi0JLyogSGFyZHdhcmUgc3RhdGUgZm9yIGRlcHRoIGNsZWFycy4gIFJlbW92ZSB0aGlzIGlmL3doZW4gd2Ugbm8KLQkgKiBsb25nZXIgY2xlYXIgdGhlIGRlcHRoIGJ1ZmZlciB3aXRoIGEgM0QgcmVjdGFuZ2xlLiAgSGFyZC1jb2RlCi0JICogYWxsIHZhbHVlcyB0byBwcmV2ZW50IHVud2FudGVkIDNEIHN0YXRlIGZyb20gc2xpcHBpbmcgdGhyb3VnaAotCSAqIGFuZCBzY3Jld2luZyB3aXRoIHRoZSBjbGVhciBvcGVyYXRpb24uCi0JICovCi0JZGV2X3ByaXYtPmRlcHRoX2NsZWFyLnJiM2RfY250bCA9IChSQURFT05fUExBTkVfTUFTS19FTkFCTEUgfAotCQkJCQkgICAoZGV2X3ByaXYtPmNvbG9yX2ZtdCA8PCAxMCkgfAotCQkJCQkgICAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09Ci0JCQkJCSAgICBVQ09ERV9SMTAwID8gUkFERU9OX1pCTE9DSzE2IDogMCkpOwotCi0JZGV2X3ByaXYtPmRlcHRoX2NsZWFyLnJiM2RfenN0ZW5jaWxjbnRsID0KLQkgICAgKGRldl9wcml2LT5kZXB0aF9mbXQgfAotCSAgICAgUkFERU9OX1pfVEVTVF9BTFdBWVMgfAotCSAgICAgUkFERU9OX1NURU5DSUxfVEVTVF9BTFdBWVMgfAotCSAgICAgUkFERU9OX1NURU5DSUxfU19GQUlMX1JFUExBQ0UgfAotCSAgICAgUkFERU9OX1NURU5DSUxfWlBBU1NfUkVQTEFDRSB8Ci0JICAgICBSQURFT05fU1RFTkNJTF9aRkFJTF9SRVBMQUNFIHwgUkFERU9OX1pfV1JJVEVfRU5BQkxFKTsKLQotCWRldl9wcml2LT5kZXB0aF9jbGVhci5zZV9jbnRsID0gKFJBREVPTl9GRkFDRV9DVUxMX0NXIHwKLQkJCQkJIFJBREVPTl9CRkFDRV9TT0xJRCB8Ci0JCQkJCSBSQURFT05fRkZBQ0VfU09MSUQgfAotCQkJCQkgUkFERU9OX0ZMQVRfU0hBREVfVlRYX0xBU1QgfAotCQkJCQkgUkFERU9OX0RJRkZVU0VfU0hBREVfRkxBVCB8Ci0JCQkJCSBSQURFT05fQUxQSEFfU0hBREVfRkxBVCB8Ci0JCQkJCSBSQURFT05fU1BFQ1VMQVJfU0hBREVfRkxBVCB8Ci0JCQkJCSBSQURFT05fRk9HX1NIQURFX0ZMQVQgfAotCQkJCQkgUkFERU9OX1ZUWF9QSVhfQ0VOVEVSX09HTCB8Ci0JCQkJCSBSQURFT05fUk9VTkRfTU9ERV9UUlVOQyB8Ci0JCQkJCSBSQURFT05fUk9VTkRfUFJFQ184VEhfUElYKTsKLQotCi0JZGV2X3ByaXYtPnJpbmdfb2Zmc2V0ID0gaW5pdC0+cmluZ19vZmZzZXQ7Ci0JZGV2X3ByaXYtPnJpbmdfcnB0cl9vZmZzZXQgPSBpbml0LT5yaW5nX3JwdHJfb2Zmc2V0OwotCWRldl9wcml2LT5idWZmZXJzX29mZnNldCA9IGluaXQtPmJ1ZmZlcnNfb2Zmc2V0OwotCWRldl9wcml2LT5nYXJ0X3RleHR1cmVzX29mZnNldCA9IGluaXQtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0OwotCi0JZGV2X3ByaXYtPnNhcmVhID0gZHJtX2dldHNhcmVhKGRldik7Ci0JaWYgKCFkZXZfcHJpdi0+c2FyZWEpIHsKLQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBzYXJlYSFcbiIpOwotCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkZXZfcHJpdi0+Y3BfcmluZyA9IGRybV9jb3JlX2ZpbmRtYXAoZGV2LCBpbml0LT5yaW5nX29mZnNldCk7Ci0JaWYgKCFkZXZfcHJpdi0+Y3BfcmluZykgewotCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIGNwIHJpbmcgcmVnaW9uIVxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlkZXZfcHJpdi0+cmluZ19ycHRyID0gZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPnJpbmdfcnB0cl9vZmZzZXQpOwotCWlmICghZGV2X3ByaXYtPnJpbmdfcnB0cikgewotCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIHJpbmcgcmVhZCBwb2ludGVyIVxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlkZXYtPmFncF9idWZmZXJfdG9rZW4gPSBpbml0LT5idWZmZXJzX29mZnNldDsKLQlkZXYtPmFncF9idWZmZXJfbWFwID0gZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPmJ1ZmZlcnNfb2Zmc2V0KTsKLQlpZiAoIWRldi0+YWdwX2J1ZmZlcl9tYXApIHsKLQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBkbWEgYnVmZmVyIHJlZ2lvbiFcbiIpOwotCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoaW5pdC0+Z2FydF90ZXh0dXJlc19vZmZzZXQpIHsKLQkJZGV2X3ByaXYtPmdhcnRfdGV4dHVyZXMgPQotCQkgICAgZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0KTsKLQkJaWYgKCFkZXZfcHJpdi0+Z2FydF90ZXh0dXJlcykgewotCQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBHQVJUIHRleHR1cmUgcmVnaW9uIVxuIik7Ci0JCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQl9Ci0KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdiA9Ci0JICAgIChkcm1fcmFkZW9uX3NhcmVhX3QgKikgKCh1OCAqKSBkZXZfcHJpdi0+c2FyZWEtPmhhbmRsZSArCi0JCQkJICAgIGluaXQtPnNhcmVhX3ByaXZfb2Zmc2V0KTsKLQotI2lmIF9fT1NfSEFTX0FHUAotCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7Ci0JCWRybV9jb3JlX2lvcmVtYXAoZGV2X3ByaXYtPmNwX3JpbmcsIGRldik7Ci0JCWRybV9jb3JlX2lvcmVtYXAoZGV2X3ByaXYtPnJpbmdfcnB0ciwgZGV2KTsKLQkJZHJtX2NvcmVfaW9yZW1hcChkZXYtPmFncF9idWZmZXJfbWFwLCBkZXYpOwotCQlpZiAoIWRldl9wcml2LT5jcF9yaW5nLT5oYW5kbGUgfHwKLQkJICAgICFkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUgfHwKLQkJICAgICFkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUpIHsKLQkJCURSTV9FUlJPUigiY291bGQgbm90IGZpbmQgaW9yZW1hcCBhZ3AgcmVnaW9ucyFcbiIpOwotCQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JfSBlbHNlCi0jZW5kaWYKLQl7Ci0JCWRldl9wcml2LT5jcF9yaW5nLT5oYW5kbGUgPSAodm9pZCAqKWRldl9wcml2LT5jcF9yaW5nLT5vZmZzZXQ7Ci0JCWRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSA9Ci0JCSAgICAodm9pZCAqKWRldl9wcml2LT5yaW5nX3JwdHItPm9mZnNldDsKLQkJZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlID0KLQkJICAgICh2b2lkICopZGV2LT5hZ3BfYnVmZmVyX21hcC0+b2Zmc2V0OwotCi0JCURSTV9ERUJVRygiZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSAlcFxuIiwKLQkJCSAgZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSk7Ci0JCURSTV9ERUJVRygiZGV2X3ByaXYtPnJpbmdfcnB0ci0+aGFuZGxlICVwXG4iLAotCQkJICBkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUpOwotCQlEUk1fREVCVUcoImRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZSAlcFxuIiwKLQkJCSAgZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlKTsKLQl9Ci0KLQlkZXZfcHJpdi0+ZmJfbG9jYXRpb24gPSAocmFkZW9uX3JlYWRfZmJfbG9jYXRpb24oZGV2X3ByaXYpICYgMHhmZmZmKSA8PCAxNjsKLQlkZXZfcHJpdi0+ZmJfc2l6ZSA9Ci0JCSgocmFkZW9uX3JlYWRfZmJfbG9jYXRpb24oZGV2X3ByaXYpICYgMHhmZmZmMDAwMHUpICsgMHgxMDAwMCkKLQkJLSBkZXZfcHJpdi0+ZmJfbG9jYXRpb247Ci0KLQlkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0ID0gKCgoZGV2X3ByaXYtPmZyb250X3BpdGNoIC8gNjQpIDw8IDIyKSB8Ci0JCQkJCSgoZGV2X3ByaXYtPmZyb250X29mZnNldAotCQkJCQkgICsgZGV2X3ByaXYtPmZiX2xvY2F0aW9uKSA+PiAxMCkpOwotCi0JZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0ID0gKCgoZGV2X3ByaXYtPmJhY2tfcGl0Y2ggLyA2NCkgPDwgMjIpIHwKLQkJCQkgICAgICAgKChkZXZfcHJpdi0+YmFja19vZmZzZXQKLQkJCQkJICsgZGV2X3ByaXYtPmZiX2xvY2F0aW9uKSA+PiAxMCkpOwotCi0JZGV2X3ByaXYtPmRlcHRoX3BpdGNoX29mZnNldCA9ICgoKGRldl9wcml2LT5kZXB0aF9waXRjaCAvIDY0KSA8PCAyMikgfAotCQkJCQkoKGRldl9wcml2LT5kZXB0aF9vZmZzZXQKLQkJCQkJICArIGRldl9wcml2LT5mYl9sb2NhdGlvbikgPj4gMTApKTsKLQotCWRldl9wcml2LT5nYXJ0X3NpemUgPSBpbml0LT5nYXJ0X3NpemU7Ci0KLQkvKiBOZXcgbGV0J3Mgc2V0IHRoZSBtZW1vcnkgbWFwIC4uLiAqLwotCWlmIChkZXZfcHJpdi0+bmV3X21lbW1hcCkgewotCQl1MzIgYmFzZSA9IDA7Ci0KLQkJRFJNX0lORk8oIlNldHRpbmcgR0FSVCBsb2NhdGlvbiBiYXNlZCBvbiBuZXcgbWVtb3J5IG1hcFxuIik7Ci0KLQkJLyogSWYgdXNpbmcgQUdQLCB0cnkgdG8gbG9jYXRlIHRoZSBBR1AgYXBlcnR1cmUgYXQgdGhlIHNhbWUKLQkJICogbG9jYXRpb24gaW4gdGhlIGNhcmQgYW5kIG9uIHRoZSBidXMsIHRob3VnaCB3ZSBoYXZlIHRvCi0JCSAqIGFsaWduIGl0IGRvd24uCi0JCSAqLwotI2lmIF9fT1NfSEFTX0FHUAotCQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQkJYmFzZSA9IGRldi0+YWdwLT5iYXNlOwotCQkJLyogQ2hlY2sgaWYgdmFsaWQgKi8KLQkJCWlmICgoYmFzZSArIGRldl9wcml2LT5nYXJ0X3NpemUgLSAxKSA+PSBkZXZfcHJpdi0+ZmJfbG9jYXRpb24gJiYKLQkJCSAgICBiYXNlIDwgKGRldl9wcml2LT5mYl9sb2NhdGlvbiArIGRldl9wcml2LT5mYl9zaXplIC0gMSkpIHsKLQkJCQlEUk1fSU5GTygiQ2FuJ3QgdXNlIEFHUCBiYXNlIEAweCUwOGx4LCB3b24ndCBmaXRcbiIsCi0JCQkJCSBkZXYtPmFncC0+YmFzZSk7Ci0JCQkJYmFzZSA9IDA7Ci0JCQl9Ci0JCX0KLSNlbmRpZgotCQkvKiBJZiBub3Qgb3IgaWYgQUdQIGlzIGF0IDAgKE1hY3MpLCB0cnkgdG8gcHV0IGl0IGVsc2V3aGVyZSAqLwotCQlpZiAoYmFzZSA9PSAwKSB7Ci0JCQliYXNlID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsgZGV2X3ByaXYtPmZiX3NpemU7Ci0JCQlpZiAoYmFzZSA8IGRldl9wcml2LT5mYl9sb2NhdGlvbiB8fAotCQkJICAgICgoYmFzZSArIGRldl9wcml2LT5nYXJ0X3NpemUpICYgMHhmZmZmZmZmZnVsKSA8IGJhc2UpCi0JCQkJYmFzZSA9IGRldl9wcml2LT5mYl9sb2NhdGlvbgotCQkJCQktIGRldl9wcml2LT5nYXJ0X3NpemU7Ci0JCX0KLQkJZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgPSBiYXNlICYgMHhmZmMwMDAwMHU7Ci0JCWlmIChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAhPSBiYXNlKQotCQkJRFJNX0lORk8oIkdBUlQgYWxpZ25lZCBkb3duIGZyb20gMHglMDh4IHRvIDB4JTA4eFxuIiwKLQkJCQkgYmFzZSwgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCX0gZWxzZSB7Ci0JCURSTV9JTkZPKCJTZXR0aW5nIEdBUlQgbG9jYXRpb24gYmFzZWQgb24gb2xkIG1lbW9yeSBtYXBcbiIpOwotCQlkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA9IGRldl9wcml2LT5mYl9sb2NhdGlvbiArCi0JCQlSQURFT05fUkVBRChSQURFT05fQ09ORklHX0FQRVJfU0laRSk7Ci0JfQotCi0jaWYgX19PU19IQVNfQUdQCi0JaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApCi0JCWRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0ID0gKGRldi0+YWdwX2J1ZmZlcl9tYXAtPm9mZnNldAotCQkJCQkJIC0gZGV2LT5hZ3AtPmJhc2UKLQkJCQkJCSArIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQllbHNlCi0jZW5kaWYKLQkJZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQgPSAoZGV2LT5hZ3BfYnVmZmVyX21hcC0+b2Zmc2V0Ci0JCQkJCS0gKHVuc2lnbmVkIGxvbmcpZGV2LT5zZy0+dmlydHVhbAotCQkJCQkrIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQotCURSTV9ERUJVRygiZGV2X3ByaXYtPmdhcnRfc2l6ZSAlZFxuIiwgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7Ci0JRFJNX0RFQlVHKCJkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAweCV4XG4iLCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JRFJNX0RFQlVHKCJkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCAweCVseFxuIiwKLQkJICBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCk7Ci0KLQlkZXZfcHJpdi0+cmluZy5zdGFydCA9ICh1MzIgKikgZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZTsKLQlkZXZfcHJpdi0+cmluZy5lbmQgPSAoKHUzMiAqKSBkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlCi0JCQkgICAgICArIGluaXQtPnJpbmdfc2l6ZSAvIHNpemVvZih1MzIpKTsKLQlkZXZfcHJpdi0+cmluZy5zaXplID0gaW5pdC0+cmluZ19zaXplOwotCWRldl9wcml2LT5yaW5nLnNpemVfbDJxdyA9IGRybV9vcmRlcihpbml0LT5yaW5nX3NpemUgLyA4KTsKLQotCWRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlID0gLyogaW5pdC0+cnB0cl91cGRhdGUgKi8gNDA5NjsKLQlkZXZfcHJpdi0+cmluZy5ycHRyX3VwZGF0ZV9sMnF3ID0gZHJtX29yZGVyKCAvKiBpbml0LT5ycHRyX3VwZGF0ZSAqLyA0MDk2IC8gOCk7Ci0KLQlkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplID0gLyogaW5pdC0+ZmV0Y2hfc2l6ZSAqLyAzMjsKLQlkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplX2wyb3cgPSBkcm1fb3JkZXIoIC8qIGluaXQtPmZldGNoX3NpemUgKi8gMzIgLyAxNik7Ci0JZGV2X3ByaXYtPnJpbmcudGFpbF9tYXNrID0gKGRldl9wcml2LT5yaW5nLnNpemUgLyBzaXplb2YodTMyKSkgLSAxOwotCi0JZGV2X3ByaXYtPnJpbmcuaGlnaF9tYXJrID0gUkFERU9OX1JJTkdfSElHSF9NQVJLOwotCi0jaWYgX19PU19IQVNfQUdQCi0JaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsKLQkJLyogVHVybiBvZmYgUENJIEdBUlQgKi8KLQkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAwKTsKLQl9IGVsc2UKLSNlbmRpZgotCXsKLQkJZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKLQkJLyogaWYgd2UgaGF2ZSBhbiBvZmZzZXQgc2V0IGZyb20gdXNlcnNwYWNlICovCi0JCWlmIChkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXRfc2V0KSB7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyID0KLQkJCSAgICBkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQgKyBkZXZfcHJpdi0+ZmJfbG9jYXRpb247Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcub2Zmc2V0ID0KLQkJCSAgICBkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQgKyBkZXZfcHJpdi0+ZmJfYXBlcl9vZmZzZXQ7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcuc2l6ZSA9Ci0JCQkgICAgZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9zaXplOwotCi0JCQlkcm1fY29yZV9pb3JlbWFwKCZkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcsIGRldik7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmFkZHIgPQotCQkJICAgIGRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZy5oYW5kbGU7Ci0KLQkJCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkKLQkJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfcmVnX2lmID0gRFJNX0FUSV9HQVJUX1BDSUU7Ci0JCQllbHNlCi0JCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3JlZ19pZiA9IERSTV9BVElfR0FSVF9QQ0k7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfdGFibGVfbG9jYXRpb24gPQotCQkJICAgIERSTV9BVElfR0FSVF9GQjsKLQotCQkJRFJNX0RFQlVHKCJTZXR0aW5nIHBoeXNfcGNpX2dhcnQgdG8gJXAgJTA4bFhcbiIsCi0JCQkJICBkZXZfcHJpdi0+Z2FydF9pbmZvLmFkZHIsCi0JCQkJICBkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQpOwotCQl9IGVsc2UgewotCQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19JR1BHQVJUKQotCQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF9yZWdfaWYgPSBEUk1fQVRJX0dBUlRfSUdQOwotCQkJZWxzZQotCQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF9yZWdfaWYgPSBEUk1fQVRJX0dBUlRfUENJOwotCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3RhYmxlX2xvY2F0aW9uID0KLQkJCSAgICBEUk1fQVRJX0dBUlRfTUFJTjsKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8uYWRkciA9IE5VTEw7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyID0gMDsKLQkJCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkgewotCQkJCURSTV9FUlJPUgotCQkJCSAgICAoIkNhbm5vdCB1c2UgUENJIEV4cHJlc3Mgd2l0aG91dCBHQVJUIGluIEZCIG1lbW9yeVxuIik7Ci0JCQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQkJfQotCi0JCWlmICghZHJtX2F0aV9wY2lnYXJ0X2luaXQoZGV2LCAmZGV2X3ByaXYtPmdhcnRfaW5mbykpIHsKLQkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGluaXQgUENJIEdBUlQhXG4iKTsKLQkJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCQlyZXR1cm4gLUVOT01FTTsKLQkJfQotCi0JCS8qIFR1cm4gb24gUENJIEdBUlQgKi8KLQkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAxKTsKLQl9Ci0KLQlyYWRlb25fY3BfbG9hZF9taWNyb2NvZGUoZGV2X3ByaXYpOwotCXJhZGVvbl9jcF9pbml0X3JpbmdfYnVmZmVyKGRldiwgZGV2X3ByaXYpOwotCi0JZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKLQotCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKLQlyYWRlb25fdGVzdF93cml0ZWJhY2soZGV2X3ByaXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2RvX2NsZWFudXBfY3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQkvKiBNYWtlIHN1cmUgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgaGVyZSBiZWNhdXNlIHRoZSB1bmluc3RhbGwgaW9jdGwKLQkgKiBtYXkgbm90IGhhdmUgYmVlbiBjYWxsZWQgZnJvbSB1c2Vyc3BhY2UgYW5kIGFmdGVyIGRldl9wcml2YXRlCi0JICogaXMgZnJlZWQsIGl0J3MgdG9vIGxhdGUuCi0JICovCi0JaWYgKGRldi0+aXJxX2VuYWJsZWQpCi0JCWRybV9pcnFfdW5pbnN0YWxsKGRldik7Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQlpZiAoZGV2X3ByaXYtPmNwX3JpbmcgIT0gTlVMTCkgewotCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoZGV2X3ByaXYtPmNwX3JpbmcsIGRldik7Ci0JCQlkZXZfcHJpdi0+Y3BfcmluZyA9IE5VTEw7Ci0JCX0KLQkJaWYgKGRldl9wcml2LT5yaW5nX3JwdHIgIT0gTlVMTCkgewotCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoZGV2X3ByaXYtPnJpbmdfcnB0ciwgZGV2KTsKLQkJCWRldl9wcml2LT5yaW5nX3JwdHIgPSBOVUxMOwotCQl9Ci0JCWlmIChkZXYtPmFncF9idWZmZXJfbWFwICE9IE5VTEwpIHsKLQkJCWRybV9jb3JlX2lvcmVtYXBmcmVlKGRldi0+YWdwX2J1ZmZlcl9tYXAsIGRldik7Ci0JCQlkZXYtPmFncF9idWZmZXJfbWFwID0gTlVMTDsKLQkJfQotCX0gZWxzZQotI2VuZGlmCi0JewotCi0JCWlmIChkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyKSB7Ci0JCQkvKiBUdXJuIG9mZiBQQ0kgR0FSVCAqLwotCQkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAwKTsKLQkJCWlmICghZHJtX2F0aV9wY2lnYXJ0X2NsZWFudXAoZGV2LCAmZGV2X3ByaXYtPmdhcnRfaW5mbykpCi0JCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY2xlYW51cCBQQ0kgR0FSVCFcbiIpOwotCQl9Ci0KLQkJaWYgKGRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF90YWJsZV9sb2NhdGlvbiA9PSBEUk1fQVRJX0dBUlRfRkIpCi0JCXsKLQkJCWRybV9jb3JlX2lvcmVtYXBmcmVlKCZkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcsIGRldik7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmFkZHIgPSAwOwotCQl9Ci0JfQotCS8qIG9ubHkgY2xlYXIgdG8gdGhlIHN0YXJ0IG9mIGZsYWdzICovCi0JbWVtc2V0KGRldl9wcml2LCAwLCBvZmZzZXRvZihkcm1fcmFkZW9uX3ByaXZhdGVfdCwgZmxhZ3MpKTsKLQotCXJldHVybiAwOwotfQotCi0vKiBUaGlzIGNvZGUgd2lsbCByZWluaXQgdGhlIFJhZGVvbiBDUCBoYXJkd2FyZSBhZnRlciBhIHJlc3VtZSBmcm9tIGRpc2MuCi0gKiBBRkFJSywgaXQgd291bGQgYmUgdmVyeSBkaWZmaWN1bHQgdG8gcGlja2xlIHRoZSBzdGF0ZSBhdCBzdXNwZW5kIHRpbWUsIHNvCi0gKiBoZXJlIHdlIG1ha2Ugc3VyZSB0aGF0IGFsbCBSYWRlb24gaGFyZHdhcmUgaW5pdGlhbGlzYXRpb24gaXMgcmUtZG9uZSB3aXRob3V0Ci0gKiBhZmZlY3RpbmcgcnVubmluZyBhcHBsaWNhdGlvbnMuCi0gKgotICogQ2hhcmwgUC4gQm90aGEgPGh0dHA6Ly9jcGJvdGhhLm5ldD4KLSAqLwotc3RhdGljIGludCByYWRlb25fZG9fcmVzdW1lX2NwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9FUlJPUigiQ2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlEUk1fREVCVUcoIlN0YXJ0aW5nIHJhZGVvbl9kb19yZXN1bWVfY3AoKVxuIik7Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQkvKiBUdXJuIG9mZiBQQ0kgR0FSVCAqLwotCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDApOwotCX0gZWxzZQotI2VuZGlmCi0JewotCQkvKiBUdXJuIG9uIFBDSSBHQVJUICovCi0JCXJhZGVvbl9zZXRfcGNpZ2FydChkZXZfcHJpdiwgMSk7Ci0JfQotCi0JcmFkZW9uX2NwX2xvYWRfbWljcm9jb2RlKGRldl9wcml2KTsKLQlyYWRlb25fY3BfaW5pdF9yaW5nX2J1ZmZlcihkZXYsIGRldl9wcml2KTsKLQotCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKLQlyYWRlb25fZW5hYmxlX2ludGVycnVwdChkZXYpOwotCi0JRFJNX0RFQlVHKCJyYWRlb25fZG9fcmVzdW1lX2NwKCkgY29tcGxldGVcbiIpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCByYWRlb25fY3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX2luaXRfdCAqaW5pdCA9IGRhdGE7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JaWYgKGluaXQtPmZ1bmMgPT0gUkFERU9OX0lOSVRfUjMwMF9DUCkKLQkJcjMwMF9pbml0X3JlZ19mbGFncyhkZXYpOwotCi0Jc3dpdGNoIChpbml0LT5mdW5jKSB7Ci0JY2FzZSBSQURFT05fSU5JVF9DUDoKLQljYXNlIFJBREVPTl9JTklUX1IyMDBfQ1A6Ci0JY2FzZSBSQURFT05fSU5JVF9SMzAwX0NQOgotCQlyZXR1cm4gcmFkZW9uX2RvX2luaXRfY3AoZGV2LCBpbml0KTsKLQljYXNlIFJBREVPTl9DTEVBTlVQX0NQOgotCQlyZXR1cm4gcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQl9Ci0KLQlyZXR1cm4gLUVJTlZBTDsKLX0KLQotaW50IHJhZGVvbl9jcF9zdGFydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCURSTV9ERUJVRygiXG4iKTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlpZiAoZGV2X3ByaXYtPmNwX3J1bm5pbmcpIHsKLQkJRFJNX0RFQlVHKCJ3aGlsZSBDUCBydW5uaW5nXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWlmIChkZXZfcHJpdi0+Y3BfbW9kZSA9PSBSQURFT05fQ1NRX1BSSURJU19JTkRESVMpIHsKLQkJRFJNX0RFQlVHKCJjYWxsZWQgd2l0aCBib2d1cyBDUCBtb2RlICglZClcbiIsCi0JCQkgIGRldl9wcml2LT5jcF9tb2RlKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JcmFkZW9uX2RvX2NwX3N0YXJ0KGRldl9wcml2KTsKLQotCXJldHVybiAwOwotfQotCi0vKiBTdG9wIHRoZSBDUC4gIFRoZSBlbmdpbmUgbXVzdCBoYXZlIGJlZW4gaWRsZWQgYmVmb3JlIGNhbGxpbmcgdGhpcwotICogcm91dGluZS4KLSAqLwotaW50IHJhZGVvbl9jcF9zdG9wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9jcF9zdG9wX3QgKnN0b3AgPSBkYXRhOwotCWludCByZXQ7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCWlmICghZGV2X3ByaXYtPmNwX3J1bm5pbmcpCi0JCXJldHVybiAwOwotCi0JLyogRmx1c2ggYW55IHBlbmRpbmcgQ1AgY29tbWFuZHMuICBUaGlzIGVuc3VyZXMgYW55IG91dHN0YW5kaW5nCi0JICogY29tbWFuZHMgYXJlIGV4ZWN0dXRlZCBieSB0aGUgZW5naW5lIGJlZm9yZSB3ZSB0dXJuIGl0IG9mZi4KLQkgKi8KLQlpZiAoc3RvcC0+Zmx1c2gpIHsKLQkJcmFkZW9uX2RvX2NwX2ZsdXNoKGRldl9wcml2KTsKLQl9Ci0KLQkvKiBJZiB3ZSBmYWlsIHRvIG1ha2UgdGhlIGVuZ2luZSBnbyBpZGxlLCB3ZSByZXR1cm4gYW4gZXJyb3IKLQkgKiBjb2RlIHNvIHRoYXQgdGhlIERSTSBpb2N0bCB3cmFwcGVyIGNhbiB0cnkgYWdhaW4uCi0JICovCi0JaWYgKHN0b3AtPmlkbGUpIHsKLQkJcmV0ID0gcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQkvKiBGaW5hbGx5LCB3ZSBjYW4gdHVybiBvZmYgdGhlIENQLiAgSWYgdGhlIGVuZ2luZSBpc24ndCBpZGxlLAotCSAqIHdlIHdpbGwgZ2V0IHNvbWUgZHJvcHBlZCB0cmlhbmdsZXMgYXMgdGhleSB3b24ndCBiZSBmdWxseQotCSAqIHJlbmRlcmVkIGJlZm9yZSB0aGUgQ1AgaXMgc2h1dCBkb3duLgotCSAqLwotCXJhZGVvbl9kb19jcF9zdG9wKGRldl9wcml2KTsKLQotCS8qIFJlc2V0IHRoZSBlbmdpbmUgKi8KLQlyYWRlb25fZG9fZW5naW5lX3Jlc2V0KGRldik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotdm9pZCByYWRlb25fZG9fcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBpLCByZXQ7Ci0KLQlpZiAoZGV2X3ByaXYpIHsKLQkJaWYgKGRldl9wcml2LT5jcF9ydW5uaW5nKSB7Ci0JCQkvKiBTdG9wIHRoZSBjcCAqLwotCQkJd2hpbGUgKChyZXQgPSByYWRlb25fZG9fY3BfaWRsZShkZXZfcHJpdikpICE9IDApIHsKLQkJCQlEUk1fREVCVUcoInJhZGVvbl9kb19jcF9pZGxlICVkXG4iLCByZXQpOwotI2lmZGVmIF9fbGludXhfXwotCQkJCXNjaGVkdWxlKCk7Ci0jZWxzZQotCQkJCXRzbGVlcCgmcmV0LCBQWkVSTywgInJkbnJlbCIsIDEpOwotI2VuZGlmCi0JCQl9Ci0JCQlyYWRlb25fZG9fY3Bfc3RvcChkZXZfcHJpdik7Ci0JCQlyYWRlb25fZG9fZW5naW5lX3Jlc2V0KGRldik7Ci0JCX0KLQotCQkvKiBEaXNhYmxlICphbGwqIGludGVycnVwdHMgKi8KLQkJaWYgKGRldl9wcml2LT5tbWlvKQkvKiByZW1vdmUgdGhpcyBhZnRlciBwZXJtYW5lbnQgYWRkbWFwcyAqLwotCQkJUkFERU9OX1dSSVRFKFJBREVPTl9HRU5fSU5UX0NOVEwsIDApOwotCi0JCWlmIChkZXZfcHJpdi0+bW1pbykgewkvKiByZW1vdmUgYWxsIHN1cmZhY2VzICovCi0JCQlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7Ci0JCQkJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9JTkZPICsgMTYgKiBpLCAwKTsKLQkJCQlSQURFT05fV1JJVEUoUkFERU9OX1NVUkZBQ0UwX0xPV0VSX0JPVU5EICsKLQkJCQkJICAgICAxNiAqIGksIDApOwotCQkJCVJBREVPTl9XUklURShSQURFT05fU1VSRkFDRTBfVVBQRVJfQk9VTkQgKwotCQkJCQkgICAgIDE2ICogaSwgMCk7Ci0JCQl9Ci0JCX0KLQotCQkvKiBGcmVlIG1lbW9yeSBoZWFwIHN0cnVjdHVyZXMgKi8KLQkJcmFkZW9uX21lbV90YWtlZG93bigmKGRldl9wcml2LT5nYXJ0X2hlYXApKTsKLQkJcmFkZW9uX21lbV90YWtlZG93bigmKGRldl9wcml2LT5mYl9oZWFwKSk7Ci0KLQkJLyogZGVhbGxvY2F0ZSBrZXJuZWwgcmVzb3VyY2VzICovCi0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JfQotfQotCi0vKiBKdXN0IHJlc2V0IHRoZSBDUCByaW5nLiAgQ2FsbGVkIGFzIHBhcnQgb2YgYW4gWCBTZXJ2ZXIgZW5naW5lIHJlc2V0LgotICovCi1pbnQgcmFkZW9uX2NwX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0RFQlVHKCJjYWxsZWQgYmVmb3JlIGluaXQgZG9uZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJhZGVvbl9kb19jcF9yZXNldChkZXZfcHJpdik7Ci0KLQkvKiBUaGUgQ1AgaXMgbm8gbG9uZ2VyIHJ1bm5pbmcgYWZ0ZXIgYW4gZW5naW5lIHJlc2V0ICovCi0JZGV2X3ByaXYtPmNwX3J1bm5pbmcgPSAwOwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCByYWRlb25fY3BfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCURSTV9ERUJVRygiXG4iKTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlyZXR1cm4gcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOwotfQotCi0vKiBBZGRlZCBieSBDaGFybCBQLiBCb3RoYSB0byBjYWxsIHJhZGVvbl9kb19yZXN1bWVfY3AoKS4KLSAqLwotaW50IHJhZGVvbl9jcF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0KLQlyZXR1cm4gcmFkZW9uX2RvX3Jlc3VtZV9jcChkZXYpOwotfQotCi1pbnQgcmFkZW9uX2VuZ2luZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JcmV0dXJuIHJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKLX0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogRnVsbHNjcmVlbiBtb2RlCi0gKi8KLQotLyogS1c6IERlcHJlY2F0ZWQgdG8gc2F5IHRoZSBsZWFzdDoKLSAqLwotaW50IHJhZGVvbl9mdWxsc2NyZWVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCXJldHVybiAwOwotfQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBGcmVlbGlzdCBtYW5hZ2VtZW50Ci0gKi8KLQotLyogT3JpZ2luYWwgY29tbWVudDogRklYTUU6IFJPVEFURV9CVUZTIGlzIGEgaGFjayB0byBjeWNsZSB0aHJvdWdoCi0gKiAgIGJ1ZnMgdW50aWwgZnJlZWxpc3QgY29kZSBpcyB1c2VkLiAgTm90ZSB0aGlzIGhpZGVzIGEgcHJvYmxlbSB3aXRoCi0gKiAgIHRoZSBzY3JhdGNoIHJlZ2lzdGVyICogKHVzZWQgdG8ga2VlcCB0cmFjayBvZiBsYXN0IGJ1ZmZlcgotICogICBjb21wbGV0ZWQpIGJlaW5nIHdyaXR0ZW4gdG8gYmVmb3JlICogdGhlIGxhc3QgYnVmZmVyIGhhcyBhY3R1YWxseQotICogICBjb21wbGV0ZWQgcmVuZGVyaW5nLgotICoKLSAqIEtXOiAgSXQncyBhbHNvIGEgZ29vZCB3YXkgdG8gZmluZCBmcmVlIGJ1ZmZlcnMgcXVpY2tseS4KLSAqCi0gKiBLVzogSWRlYWxseSB0aGlzIGxvb3Agd291bGRuJ3QgZXhpc3QsIGFuZCBmcmVlbGlzdF9nZXQgd291bGRuJ3QKLSAqIHNsZWVwLiAgSG93ZXZlciwgYnVncyBpbiBvbGRlciB2ZXJzaW9ucyBvZiByYWRlb25fYWNjZWwuYyBtZWFuIHRoYXQKLSAqIHdlIGVzc2VudGlhbGx5IGhhdmUgdG8gZG8gdGhpcywgZWxzZSBvbGQgY2xpZW50cyB3aWxsIGJyZWFrLgotICoKLSAqIEhvd2V2ZXIsIGl0IGRvZXMgbGVhdmUgb3BlbiBhIHBvdGVudGlhbCBkZWFkbG9jayB3aGVyZSBhbGwgdGhlCi0gKiBidWZmZXJzIGFyZSBoZWxkIGJ5IG90aGVyIGNsaWVudHMsIHdoaWNoIGNhbid0IHJlbGVhc2UgdGhlbSBiZWNhdXNlCi0gKiB0aGV5IGNhbid0IGdldCB0aGUgbG9jay4KLSAqLwotCi1zdHJ1Y3QgZHJtX2J1ZiAqcmFkZW9uX2ZyZWVsaXN0X2dldChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOwotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9idWZfcHJpdl90ICpidWZfcHJpdjsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOwotCWludCBpLCB0OwotCWludCBzdGFydDsKLQotCWlmICgrK2Rldl9wcml2LT5sYXN0X2J1ZiA+PSBkbWEtPmJ1Zl9jb3VudCkKLQkJZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKLQotCXN0YXJ0ID0gZGV2X3ByaXYtPmxhc3RfYnVmOwotCi0JZm9yICh0ID0gMDsgdCA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IHQrKykgewotCQl1MzIgZG9uZV9hZ2UgPSBHRVRfU0NSQVRDSCgxKTsKLQkJRFJNX0RFQlVHKCJkb25lX2FnZSA9ICVkXG4iLCBkb25lX2FnZSk7Ci0JCWZvciAoaSA9IHN0YXJ0OyBpIDwgZG1hLT5idWZfY291bnQ7IGkrKykgewotCQkJYnVmID0gZG1hLT5idWZsaXN0W2ldOwotCQkJYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOwotCQkJaWYgKGJ1Zi0+ZmlsZV9wcml2ID09IE5VTEwgfHwgKGJ1Zi0+cGVuZGluZyAmJgotCQkJCQkJICAgICAgIGJ1Zl9wcml2LT5hZ2UgPD0KLQkJCQkJCSAgICAgICBkb25lX2FnZSkpIHsKLQkJCQlkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMrKzsKLQkJCQlidWYtPnBlbmRpbmcgPSAwOwotCQkJCXJldHVybiBidWY7Ci0JCQl9Ci0JCQlzdGFydCA9IDA7Ci0JCX0KLQotCQlpZiAodCkgewotCQkJRFJNX1VERUxBWSgxKTsKLQkJCWRldl9wcml2LT5zdGF0cy5mcmVlbGlzdF9sb29wcysrOwotCQl9Ci0JfQotCi0JRFJNX0RFQlVHKCJyZXR1cm5pbmcgTlVMTCFcbiIpOwotCXJldHVybiBOVUxMOwotfQotCi0jaWYgMAotc3RydWN0IGRybV9idWYgKnJhZGVvbl9mcmVlbGlzdF9nZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXY7Ci0Jc3RydWN0IGRybV9idWYgKmJ1ZjsKLQlpbnQgaSwgdDsKLQlpbnQgc3RhcnQ7Ci0JdTMyIGRvbmVfYWdlID0gRFJNX1JFQUQzMihkZXZfcHJpdi0+cmluZ19ycHRyLCBSQURFT05fU0NSQVRDSE9GRigxKSk7Ci0KLQlpZiAoKytkZXZfcHJpdi0+bGFzdF9idWYgPj0gZG1hLT5idWZfY291bnQpCi0JCWRldl9wcml2LT5sYXN0X2J1ZiA9IDA7Ci0KLQlzdGFydCA9IGRldl9wcml2LT5sYXN0X2J1ZjsKLQlkZXZfcHJpdi0+c3RhdHMuZnJlZWxpc3RfbG9vcHMrKzsKLQotCWZvciAodCA9IDA7IHQgPCAyOyB0KyspIHsKLQkJZm9yIChpID0gc3RhcnQ7IGkgPCBkbWEtPmJ1Zl9jb3VudDsgaSsrKSB7Ci0JCQlidWYgPSBkbWEtPmJ1Zmxpc3RbaV07Ci0JCQlidWZfcHJpdiA9IGJ1Zi0+ZGV2X3ByaXZhdGU7Ci0JCQlpZiAoYnVmLT5maWxlX3ByaXYgPT0gMCB8fCAoYnVmLT5wZW5kaW5nICYmCi0JCQkJCQkgICAgYnVmX3ByaXYtPmFnZSA8PQotCQkJCQkJICAgIGRvbmVfYWdlKSkgewotCQkJCWRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcysrOwotCQkJCWJ1Zi0+cGVuZGluZyA9IDA7Ci0JCQkJcmV0dXJuIGJ1ZjsKLQkJCX0KLQkJfQotCQlzdGFydCA9IDA7Ci0JfQotCi0JcmV0dXJuIE5VTEw7Ci19Ci0jZW5kaWYKLQotdm9pZCByYWRlb25fZnJlZWxpc3RfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBpOwotCi0JZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgZG1hLT5idWZfY291bnQ7IGkrKykgewotCQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmID0gZG1hLT5idWZsaXN0W2ldOwotCQlkcm1fcmFkZW9uX2J1Zl9wcml2X3QgKmJ1Zl9wcml2ID0gYnVmLT5kZXZfcHJpdmF0ZTsKLQkJYnVmX3ByaXYtPmFnZSA9IDA7Ci0JfQotfQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBDUCBjb21tYW5kIHN1Ym1pc3Npb24KLSAqLwotCi1pbnQgcmFkZW9uX3dhaXRfcmluZyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LCBpbnQgbikKLXsKLQlkcm1fcmFkZW9uX3JpbmdfYnVmZmVyX3QgKnJpbmcgPSAmZGV2X3ByaXYtPnJpbmc7Ci0JaW50IGk7Ci0JdTMyIGxhc3RfaGVhZCA9IEdFVF9SSU5HX0hFQUQoZGV2X3ByaXYpOwotCi0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IGkrKykgewotCQl1MzIgaGVhZCA9IEdFVF9SSU5HX0hFQUQoZGV2X3ByaXYpOwotCi0JCXJpbmctPnNwYWNlID0gKGhlYWQgLSByaW5nLT50YWlsKSAqIHNpemVvZih1MzIpOwotCQlpZiAocmluZy0+c3BhY2UgPD0gMCkKLQkJCXJpbmctPnNwYWNlICs9IHJpbmctPnNpemU7Ci0JCWlmIChyaW5nLT5zcGFjZSA+IG4pCi0JCQlyZXR1cm4gMDsKLQotCQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7Ci0KLQkJaWYgKGhlYWQgIT0gbGFzdF9oZWFkKQotCQkJaSA9IDA7Ci0JCWxhc3RfaGVhZCA9IGhlYWQ7Ci0KLQkJRFJNX1VERUxBWSgxKTsKLQl9Ci0KLQkvKiBGSVhNRTogVGhpcyByZXR1cm4gdmFsdWUgaXMgaWdub3JlZCBpbiB0aGUgQkVHSU5fUklORyBtYWNybyEgKi8KLSNpZiBSQURFT05fRklGT19ERUJVRwotCXJhZGVvbl9zdGF0dXMoZGV2X3ByaXYpOwotCURSTV9FUlJPUigiZmFpbGVkIVxuIik7Ci0jZW5kaWYKLQlyZXR1cm4gLUVCVVNZOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9nZXRfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCQkgc3RydWN0IGRybV9kbWEgKiBkKQotewotCWludCBpOwotCXN0cnVjdCBkcm1fYnVmICpidWY7Ci0KLQlmb3IgKGkgPSBkLT5ncmFudGVkX2NvdW50OyBpIDwgZC0+cmVxdWVzdF9jb3VudDsgaSsrKSB7Ci0JCWJ1ZiA9IHJhZGVvbl9mcmVlbGlzdF9nZXQoZGV2KTsKLQkJaWYgKCFidWYpCi0JCQlyZXR1cm4gLUVCVVNZOwkvKiBOT1RFOiBicm9rZW4gY2xpZW50ICovCi0KLQkJYnVmLT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7Ci0KLQkJaWYgKERSTV9DT1BZX1RPX1VTRVIoJmQtPnJlcXVlc3RfaW5kaWNlc1tpXSwgJmJ1Zi0+aWR4LAotCQkJCSAgICAgc2l6ZW9mKGJ1Zi0+aWR4KSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQkJaWYgKERSTV9DT1BZX1RPX1VTRVIoJmQtPnJlcXVlc3Rfc2l6ZXNbaV0sICZidWYtPnRvdGFsLAotCQkJCSAgICAgc2l6ZW9mKGJ1Zi0+dG90YWwpKSkKLQkJCXJldHVybiAtRUZBVUxUOwotCi0JCWQtPmdyYW50ZWRfY291bnQrKzsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLWludCByYWRlb25fY3BfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOwotCWludCByZXQgPSAwOwotCXN0cnVjdCBkcm1fZG1hICpkID0gZGF0YTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQkvKiBQbGVhc2UgZG9uJ3Qgc2VuZCB1cyBidWZmZXJzLgotCSAqLwotCWlmIChkLT5zZW5kX2NvdW50ICE9IDApIHsKLQkJRFJNX0VSUk9SKCJQcm9jZXNzICVkIHRyeWluZyB0byBzZW5kICVkIGJ1ZmZlcnMgdmlhIGRybURNQVxuIiwKLQkJCSAgRFJNX0NVUlJFTlRQSUQsIGQtPnNlbmRfY291bnQpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBXZSdsbCBzZW5kIHlvdSBidWZmZXJzLgotCSAqLwotCWlmIChkLT5yZXF1ZXN0X2NvdW50IDwgMCB8fCBkLT5yZXF1ZXN0X2NvdW50ID4gZG1hLT5idWZfY291bnQpIHsKLQkJRFJNX0VSUk9SKCJQcm9jZXNzICVkIHRyeWluZyB0byBnZXQgJWQgYnVmZmVycyAob2YgJWQgbWF4KVxuIiwKLQkJCSAgRFJNX0NVUlJFTlRQSUQsIGQtPnJlcXVlc3RfY291bnQsIGRtYS0+YnVmX2NvdW50KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZC0+Z3JhbnRlZF9jb3VudCA9IDA7Ci0KLQlpZiAoZC0+cmVxdWVzdF9jb3VudCkgewotCQlyZXQgPSByYWRlb25fY3BfZ2V0X2J1ZmZlcnMoZGV2LCBmaWxlX3ByaXYsIGQpOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KLWludCByYWRlb25fZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXY7Ci0JaW50IHJldCA9IDA7Ci0KLQlkZXZfcHJpdiA9IGRybV9hbGxvYyhzaXplb2YoZHJtX3JhZGVvbl9wcml2YXRlX3QpLCBEUk1fTUVNX0RSSVZFUik7Ci0JaWYgKGRldl9wcml2ID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JbWVtc2V0KGRldl9wcml2LCAwLCBzaXplb2YoZHJtX3JhZGVvbl9wcml2YXRlX3QpKTsKLQlkZXYtPmRldl9wcml2YXRlID0gKHZvaWQgKilkZXZfcHJpdjsKLQlkZXZfcHJpdi0+ZmxhZ3MgPSBmbGFnczsKLQotCXN3aXRjaCAoZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIHsKLQljYXNlIENISVBfUjEwMDoKLQljYXNlIENISVBfUlYyMDA6Ci0JY2FzZSBDSElQX1IyMDA6Ci0JY2FzZSBDSElQX1IzMDA6Ci0JY2FzZSBDSElQX1IzNTA6Ci0JY2FzZSBDSElQX1I0MjA6Ci0JY2FzZSBDSElQX1JWNDEwOgotCWNhc2UgQ0hJUF9SVjUxNToKLQljYXNlIENISVBfUjUyMDoKLQljYXNlIENISVBfUlY1NzA6Ci0JY2FzZSBDSElQX1I1ODA6Ci0JCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSEFTX0hJRVJaOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQkvKiBhbGwgb3RoZXIgY2hpcHMgaGF2ZSBubyBoaWVyYXJjaGljYWwgeiBidWZmZXIgKi8KLQkJYnJlYWs7Ci0JfQotCi0JaWYgKGRybV9kZXZpY2VfaXNfYWdwKGRldikpCi0JCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSVNfQUdQOwotCWVsc2UgaWYgKGRybV9kZXZpY2VfaXNfcGNpZShkZXYpKQotCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX1BDSUU7Ci0JZWxzZQotCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX1BDSTsKLQotCURSTV9ERUJVRygiJXMgY2FyZCBkZXRlY3RlZFxuIiwKLQkJICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApID8gIkFHUCIgOiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkgPyAiUENJRSIgOiAiUENJIikpKSk7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyogQ3JlYXRlIG1hcHBpbmdzIGZvciByZWdpc3RlcnMgYW5kIGZyYW1lYnVmZmVyIHNvIHVzZXJsYW5kIGRvZXNuJ3QgbmVjZXNzYXJpbHkKLSAqIGhhdmUgdG8gZmluZCB0aGVtLgotICovCi1pbnQgcmFkZW9uX2RyaXZlcl9maXJzdG9wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpbnQgcmV0OwotCWRybV9sb2NhbF9tYXBfdCAqbWFwOwotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemUgPSBSQURFT05fUENJR0FSVF9UQUJMRV9TSVpFOwotCi0JcmV0ID0gZHJtX2FkZG1hcChkZXYsIGRybV9nZXRfcmVzb3VyY2Vfc3RhcnQoZGV2LCAyKSwKLQkJCSBkcm1fZ2V0X3Jlc291cmNlX2xlbihkZXYsIDIpLCBfRFJNX1JFR0lTVEVSUywKLQkJCSBfRFJNX1JFQURfT05MWSwgJmRldl9wcml2LT5tbWlvKTsKLQlpZiAocmV0ICE9IDApCi0JCXJldHVybiByZXQ7Ci0KLQlkZXZfcHJpdi0+ZmJfYXBlcl9vZmZzZXQgPSBkcm1fZ2V0X3Jlc291cmNlX3N0YXJ0KGRldiwgMCk7Ci0JcmV0ID0gZHJtX2FkZG1hcChkZXYsIGRldl9wcml2LT5mYl9hcGVyX29mZnNldCwKLQkJCSBkcm1fZ2V0X3Jlc291cmNlX2xlbihkZXYsIDApLCBfRFJNX0ZSQU1FX0JVRkZFUiwKLQkJCSBfRFJNX1dSSVRFX0NPTUJJTklORywgJm1hcCk7Ci0JaWYgKHJldCAhPSAwKQotCQlyZXR1cm4gcmV0OwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCByYWRlb25fZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0JZHJtX2ZyZWUoZGV2X3ByaXYsIHNpemVvZigqZGV2X3ByaXYpLCBEUk1fTUVNX0RSSVZFUik7Ci0KLQlkZXYtPmRldl9wcml2YXRlID0gTlVMTDsKLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kczEyODYuYyBiL2RyaXZlcnMvY2hhci9kczEyODYuYwppbmRleCBlYTM1YWIyLi5mYjU4NDkzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2RzMTI4Ni5jCisrKyBiL2RyaXZlcnMvY2hhci9kczEyODYuYwpAQCAtMjcsNiArMjcsNyBAQAogICogb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqLwogI2luY2x1ZGUgPGxpbnV4L2RzMTI4Ni5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KQEAgLTI1Miw2ICsyNTMsNyBAQAogCiBzdGF0aWMgaW50IGRzMTI4Nl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrX2lycSgmZHMxMjg2X2xvY2spOwogCiAJaWYgKGRzMTI4Nl9zdGF0dXMgJiBSVENfSVNfT1BFTikKQEAgLTI2MCwxMCArMjYyLDEyIEBACiAJZHMxMjg2X3N0YXR1cyB8PSBSVENfSVNfT1BFTjsKIAogCXNwaW5fdW5sb2NrX2lycSgmZHMxMjg2X2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogb3V0X2J1c3k6CiAJc3Bpbl9sb2NrX2lycSgmZHMxMjg2X2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gLUVCVVNZOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHMxNjIwLmMgYi9kcml2ZXJzL2NoYXIvZHMxNjIwLmMKaW5kZXggMzM0YWQ1Yi4uMzQyNzVjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2RzMTYyMC5jCisrKyBiL2RyaXZlcnMvY2hhci9kczE2MjAuYwpAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KQEAgLTIwOCw2ICsyMDksMTIgQEAKIAl0aGVybS0+aGkgPSBjdnRfOV90b19pbnQoZHMxNjIwX2luKFRIRVJNX1JFQURfVEgsIDkpKTsKIH0KIAorc3RhdGljIGludCBkczE2MjBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwljeWNsZV9rZXJuZWxfbG9jaygpOworCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKK30KKwogc3RhdGljIHNzaXplX3QKIGRzMTYyMF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHRyKQogewpAQCAtMzM2LDcgKzM0Myw3IEBACiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRzMTYyMF9mb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKLQkub3BlbgkJPSBub25zZWVrYWJsZV9vcGVuLAorCS5vcGVuCQk9IGRzMTYyMF9vcGVuLAogCS5yZWFkCQk9IGRzMTYyMF9yZWFkLAogCS5pb2N0bAkJPSBkczE2MjBfaW9jdGwsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RzcDU2ay5jIGIvZHJpdmVycy9jaGFyL2RzcDU2ay5jCmluZGV4IGE2OWM2NTIuLmI5YTMwYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9kc3A1NmsuYworKysgYi9kcml2ZXJzL2NoYXIvZHNwNTZrLmMKQEAgLTMzLDYgKzMzLDkgQEAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAKICNpbmNsdWRlIDxhc20vYXRhcmlody5oPgogI2luY2x1ZGUgPGFzbS90cmFwcy5oPgpAQCAtOTIsNDkgKzk1LDYgQEAKIAl9IFwKIH0KIAotLyogRFNQNTYwMDEgYm9vdHN0cmFwIGNvZGUgKi8KLXN0YXRpYyBjaGFyIGJvb3RzdHJhcFtdID0gewotCTB4MGMsIDB4MDAsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHg2MCwgMHhmNCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0ZiwgMHg2MSwgMHhmNCwKLQkweDAwLCAweDAwLCAweDdlLCAweGE5LCAweDA2LCAweDJlLCAweDgwLCAweDAwLCAweDAwLCAweDQ3LAotCTB4MDcsIDB4ZDgsIDB4ODQsIDB4MDcsIDB4NTksIDB4ODQsIDB4MDgsIDB4ZjQsIDB4YTgsIDB4MDAsCi0JMHgwMCwgMHgwNCwgMHgwOCwgMHhmNCwgMHhiZiwgMHgwMCwgMHgwYywgMHgwMCwgMHgwMCwgMHhmZSwKLQkweGI4LCAweDBhLCAweGYwLCAweDgwLCAweDAwLCAweDdlLCAweGE5LCAweDA4LCAweGY0LCAweGEwLAotCTB4MDAsIDB4MDAsIDB4MDEsIDB4MDgsIDB4ZjQsIDB4YmUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MGEsCi0JMHhhOSwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhhZCwgMHgwOCwgMHg0ZSwgMHgyYiwgMHg0NCwgMHhmNCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDQ0LCAweGY0LCAweDQ1LCAweDAwLCAweDAwLCAweDAxLAotCTB4MGUsIDB4YTAsIDB4MDAsIDB4MGEsIDB4YTksIDB4ODAsIDB4MDAsIDB4N2UsIDB4YjUsIDB4MDgsCi0JMHg1MCwgMHgyYiwgMHgwYSwgMHhhOSwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhiOCwgMHgwOCwgMHg0NiwKLQkweDJiLCAweDQ0LCAweGY0LCAweDQ1LCAweDAwLCAweDAwLCAweDAyLCAweDBhLCAweGYwLCAweGFhLAotCTB4MDAsIDB4N2UsIDB4YzksIDB4MjAsIDB4MDAsIDB4NDUsIDB4MGEsIDB4ZjAsIDB4YWEsIDB4MDAsCi0JMHg3ZSwgMHhkMCwgMHgwNiwgMHhjNiwgMHgwMCwgMHgwMCwgMHg3ZSwgMHhjNiwgMHgwYSwgMHhhOSwKLQkweDgwLCAweDAwLCAweDdlLCAweGM0LCAweDA4LCAweDU4LCAweDZiLCAweDBhLCAweGYwLCAweDgwLAotCTB4MDAsIDB4N2UsIDB4YWQsIDB4MDYsIDB4YzYsIDB4MDAsIDB4MDAsIDB4N2UsIDB4Y2QsIDB4MGEsCi0JMHhhOSwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhjYiwgMHgwOCwgMHg1OCwgMHhhYiwgMHgwYSwgMHhmMCwKLQkweDgwLCAweDAwLCAweDdlLCAweGFkLCAweDA2LCAweGM2LCAweDAwLCAweDAwLCAweDdlLCAweGQ0LAotCTB4MGEsIDB4YTksIDB4ODAsIDB4MDAsIDB4N2UsIDB4ZDIsIDB4MDgsIDB4NTgsIDB4ZWIsIDB4MGEsCi0JMHhmMCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhhZH07Ci1zdGF0aWMgaW50IHNpemVvZl9ib290c3RyYXAgPSAzNzU7Ci0KLQogc3RhdGljIHN0cnVjdCBkc3A1NmtfZGV2aWNlIHsKIAl1bnNpZ25lZCBsb25nIGluX3VzZTsKIAlsb25nIG1heGlvLCB0aW1lb3V0OwpAQCAtMTY0LDE4ICsxMjQsNDAgQEAKIAogc3RhdGljIGludCBkc3A1NmtfdXBsb2FkKHVfY2hhciBfX3VzZXIgKmJpbiwgaW50IGxlbikKIHsKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CisJY29uc3QgY2hhciBmd19uYW1lW10gPSAiZHNwNTZrL2Jvb3RzdHJhcC5iaW4iOworCWludCBlcnI7CiAJaW50IGk7Ci0JdV9jaGFyICpwOwotCQorCiAJZHNwNTZrX3Jlc2V0KCk7Ci0gIAotCXAgPSBib290c3RyYXA7Ci0JZm9yIChpID0gMDsgaSA8IHNpemVvZl9ib290c3RyYXAvMzsgaSsrKSB7Ci0JCS8qIHR4X3dhaXQoMTApOyAqLwotCQlkc3A1NmtfaG9zdF9pbnRlcmZhY2UuZGF0YS5iWzFdID0gKnArKzsKLQkJZHNwNTZrX2hvc3RfaW50ZXJmYWNlLmRhdGEuYlsyXSA9ICpwKys7Ci0JCWRzcDU2a19ob3N0X2ludGVyZmFjZS5kYXRhLmJbM10gPSAqcCsrOworCisJcGRldiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9zaW1wbGUoImRzcDU2ayIsIDAsIE5VTEwsIDApOworCWlmIChJU19FUlIocGRldikpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gcmVnaXN0ZXIgZGV2aWNlIGZvciBcIiVzXCJcbiIsCisJCSAgICAgICBmd19uYW1lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQorCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBmd19uYW1lLCAmcGRldi0+ZGV2KTsKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihwZGV2KTsKKwlpZiAoZXJyKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGxvYWQgaW1hZ2UgXCIlc1wiIGVyciAlZFxuIiwKKwkJICAgICAgIGZ3X25hbWUsIGVycik7CisJCXJldHVybiBlcnI7CisJfQorCWlmIChmdy0+c2l6ZSAlIDMpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJCb2d1cyBsZW5ndGggJWQgaW4gaW1hZ2UgXCIlc1wiXG4iLAorCQkgICAgICAgZnctPnNpemUsIGZ3X25hbWUpOworCQlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWZvciAoaSA9IDA7IGkgPCBmdy0+c2l6ZTsgaSA9IGkgKyAzKSB7CisJCS8qIHR4X3dhaXQoMTApOyAqLworCQlkc3A1NmtfaG9zdF9pbnRlcmZhY2UuZGF0YS5iWzFdID0gZnctPmRhdGFbaV07CisJCWRzcDU2a19ob3N0X2ludGVyZmFjZS5kYXRhLmJbMl0gPSBmdy0+ZGF0YVtpICsgMV07CisJCWRzcDU2a19ob3N0X2ludGVyZmFjZS5kYXRhLmJbM10gPSBmdy0+ZGF0YVtpICsgMl07CisJfQorCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCWZvciAoOyBpIDwgNTEyOyBpKyspIHsKIAkJLyogdHhfd2FpdCgxMCk7ICovCiAJCWRzcDU2a19ob3N0X2ludGVyZmFjZS5kYXRhLmJbMV0gPSAwOwpAQCAtNDM2LDEzICs0MTgsMTcgQEAKIHN0YXRpYyBpbnQgZHNwNTZrX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJaW50IGRldiA9IGltaW5vcihpbm9kZSkgJiAweDBmOworCWludCByZXQgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAlzd2l0Y2goZGV2KQogCXsKIAljYXNlIERTUDU2S19ERVZfNTYwMDE6CiAKLQkJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJmRzcDU2ay5pbl91c2UpKQotCQkJcmV0dXJuIC1FQlVTWTsKKwkJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJmRzcDU2ay5pbl91c2UpKSB7CisJCQlyZXQgPSAtRUJVU1k7CisJCQlnb3RvIG91dDsKKwkJfQogCiAJCWRzcDU2ay50aW1lb3V0ID0gVElNRU9VVDsKIAkJZHNwNTZrLm1heGlvID0gTUFYSU87CkBAIC00NTgsMTAgKzQ0NCwxMSBAQAogCQlicmVhazsKIAogCWRlZmF1bHQ6Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXQgPSAtRU5PREVWOwogCX0KLQotCXJldHVybiAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGRzcDU2a19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpAQCAtNTM0LDMgKzUyMSw0IEBACiBtb2R1bGVfZXhpdChkc3A1NmtfY2xlYW51cF9kcml2ZXIpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfRklSTVdBUkUoImRzcDU2ay9ib290c3RyYXAuYmluIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHRsay5jIGIvZHJpdmVycy9jaGFyL2R0bGsuYwppbmRleCBhYmRlNmRkLi42YjkwMGIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvZHRsay5jCisrKyBiL2RyaXZlcnMvY2hhci9kdGxrLmMKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgkvKiBmb3IgLUVCVVNZICovCiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CS8qIGZvciByZXF1ZXN0X3JlZ2lvbiAqLwogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CS8qIGZvciBsb29wc19wZXJfamlmZnkgKi8KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgkvKiBjeWNsZV9rZXJuZWxfbG9jaygpICovCiAjaW5jbHVkZSA8YXNtL2lvLmg+CQkvKiBmb3IgaW5iX3AsIG91dGJfcCwgaW5iLCBvdXRiLCBldGMuICovCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4JLyogZm9yIGdldF91c2VyLCBldGMuICovCiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgkJLyogZm9yIHdhaXRfcXVldWUgKi8KQEAgLTI4OCwxMCArMjg5LDEyIEBACiAJfQogfQogCisvKiBOb3RlIHRoYXQgbm9ib2R5IGV2ZXIgc2V0cyBkdGxrX2J1c3kuLi4gKi8KIHN0YXRpYyBpbnQgZHRsa19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCVRSQUNFX1RFWFQoIihkdGxrX29wZW4iKTsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7CiAJc3dpdGNoIChpbWlub3IoaW5vZGUpKSB7CiAJY2FzZSBEVExLX01JTk9SOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2VmaXJ0Yy5jIGIvZHJpdmVycy9jaGFyL2VmaXJ0Yy5jCmluZGV4IDQ5MjMzZjUuLmQ1N2NhM2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9lZmlydGMuYworKysgYi9kcml2ZXJzL2NoYXIvZWZpcnRjLmMKQEAgLTI4LDYgKzI4LDcgQEAKICAqLwogCiAKKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CkBAIC0yNzIsNiArMjczLDcgQEAKIAkgKiBXZSBkbyBhY2NlcHQgbXVsdGlwbGUgb3BlbiBmaWxlcyBhdCB0aGUgc2FtZSB0aW1lIGFzIHdlCiAJICogc3luY2hyb25pemUgb24gdGhlIHBlciBjYWxsIG9wZXJhdGlvbi4KIAkgKi8KKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZ2VucnRjLmMgYi9kcml2ZXJzL2NoYXIvZ2VucnRjLmMKaW5kZXggNjlmMGEyOS4uYWFjMDk4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2dlbnJ0Yy5jCisrKyBiL2RyaXZlcnMvY2hhci9nZW5ydGMuYwpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtMzM4LDEyICszMzksMTYgQEAKIAogc3RhdGljIGludCBnZW5fcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JaWYgKGdlbl9ydGNfc3RhdHVzICYgUlRDX0lTX09QRU4pCisJbG9ja19rZXJuZWwoKTsKKwlpZiAoZ2VuX3J0Y19zdGF0dXMgJiBSVENfSVNfT1BFTikgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CisJfQogCiAJZ2VuX3J0Y19zdGF0dXMgfD0gUlRDX0lTX09QRU47CiAJZ2VuX3J0Y19pcnFfZGF0YSA9IDA7CiAJaXJxX2FjdGl2ZSA9IDA7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaHBldC5jIGIvZHJpdmVycy9jaGFyL2hwZXQuYwppbmRleCBlN2ZiMGJjLi5mYjBhODVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaHBldC5jCisrKyBiL2RyaXZlcnMvY2hhci9ocGV0LmMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CkBAIC0xOTMsNiArMTk0LDcgQEAKIAlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCiAJCXJldHVybiAtRUlOVkFMOwogCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfaXJxKCZocGV0X2xvY2spOwogCiAJZm9yIChkZXZwID0gTlVMTCwgaHBldHAgPSBocGV0czsgaHBldHAgJiYgIWRldnA7IGhwZXRwID0gaHBldHAtPmhwX25leHQpCkBAIC0yMDcsNiArMjA5LDcgQEAKIAogCWlmICghZGV2cCkgewogCQlzcGluX3VubG9ja19pcnEoJmhwZXRfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKQEAgLTIxNCw2ICsyMTcsNyBAQAogCWRldnAtPmhkX2lycWRhdGEgPSAwOwogCWRldnAtPmhkX2ZsYWdzIHw9IEhQRVRfT1BFTjsKIAlzcGluX3VubG9ja19pcnEoJmhwZXRfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaHZjX3hlbi5jIGIvZHJpdmVycy9jaGFyL2h2Y194ZW4uYwppbmRleCBkZDY4Zjg1Li5kYjJhZTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaHZjX3hlbi5jCisrKyBiL2RyaXZlcnMvY2hhci9odmNfeGVuLmMKQEAgLTM5LDkgKzM5LDE0IEBACiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjb25zb2xlX3BmbiA9IH4wdWw7CisKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHhlbmNvbnNfaW50ZXJmYWNlICp4ZW5jb25zX2ludGVyZmFjZSh2b2lkKQogewotCXJldHVybiBtZm5fdG9fdmlydCh4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisJaWYgKGNvbnNvbGVfcGZuID09IH4wdWwpCisJCXJldHVybiBtZm5fdG9fdmlydCh4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisJZWxzZQorCQlyZXR1cm4gX192YShjb25zb2xlX3BmbiA8PCBQQUdFX1NISUZUKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIG5vdGlmeV9kYWVtb24odm9pZCkKQEAgLTEwMSwyMCArMTA2LDMyIEBACiB7CiAJc3RydWN0IGh2Y19zdHJ1Y3QgKmhwOwogCi0JaWYgKCFpc19ydW5uaW5nX29uX3hlbigpKQotCQlyZXR1cm4gMDsKKwlpZiAoIWlzX3J1bm5pbmdfb25feGVuKCkgfHwKKwkgICAgaXNfaW5pdGlhbF94ZW5kb21haW4oKSB8fAorCSAgICAheGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5ldnRjaG4pCisJCXJldHVybiAtRU5PREVWOwogCiAJeGVuY29uc19pcnEgPSBiaW5kX2V2dGNobl90b19pcnEoeGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5ldnRjaG4pOwogCWlmICh4ZW5jb25zX2lycSA8IDApCi0JCXhlbmNvbnNfaXJxID0gMCAvKiBOT19JUlEgKi87CisJCXhlbmNvbnNfaXJxID0gMDsgLyogTk9fSVJRICovCisKIAlocCA9IGh2Y19hbGxvYyhIVkNfQ09PS0lFLCB4ZW5jb25zX2lycSwgJmh2Y19vcHMsIDI1Nik7CiAJaWYgKElTX0VSUihocCkpCiAJCXJldHVybiBQVFJfRVJSKGhwKTsKIAogCWh2YyA9IGhwOworCisJY29uc29sZV9wZm4gPSBtZm5fdG9fcGZuKHhlbl9zdGFydF9pbmZvLT5jb25zb2xlLmRvbVUubWZuKTsKKwogCXJldHVybiAwOwogfQogCit2b2lkIHhlbl9jb25zb2xlX3Jlc3VtZSh2b2lkKQoreworCWlmICh4ZW5jb25zX2lycSkKKwkJcmViaW5kX2V2dGNobl9pcnEoeGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5ldnRjaG4sIHhlbmNvbnNfaXJxKTsKK30KKwogc3RhdGljIHZvaWQgX19leGl0IHhlbl9maW5pKHZvaWQpCiB7CiAJaWYgKGh2YykKQEAgLTEzNCwxMiArMTUxLDI4IEBACiBtb2R1bGVfZXhpdCh4ZW5fZmluaSk7CiBjb25zb2xlX2luaXRjYWxsKHhlbl9jb25zX2luaXQpOwogCitzdGF0aWMgdm9pZCByYXdfY29uc29sZV93cml0ZShjb25zdCBjaGFyICpzdHIsIGludCBsZW4pCit7CisJd2hpbGUobGVuID4gMCkgeworCQlpbnQgcmMgPSBIWVBFUlZJU09SX2NvbnNvbGVfaW8oQ09OU09MRUlPX3dyaXRlLCBsZW4sIChjaGFyICopc3RyKTsKKwkJaWYgKHJjIDw9IDApCisJCQlicmVhazsKKworCQlzdHIgKz0gcmM7CisJCWxlbiAtPSByYzsKKwl9Cit9CisKKyNpZmRlZiBDT05GSUdfRUFSTFlfUFJJTlRLCiBzdGF0aWMgdm9pZCB4ZW5ib290X3dyaXRlX2NvbnNvbGUoc3RydWN0IGNvbnNvbGUgKmNvbnNvbGUsIGNvbnN0IGNoYXIgKnN0cmluZywKIAkJCQkgIHVuc2lnbmVkIGxlbikKIHsKIAl1bnNpZ25lZCBpbnQgbGluZWxlbiwgb2ZmID0gMDsKIAljb25zdCBjaGFyICpwb3M7CiAKKwlyYXdfY29uc29sZV93cml0ZShzdHJpbmcsIGxlbik7CisKKwl3cml0ZV9jb25zb2xlKDAsICIoZWFybHkpICIsIDgpOwogCXdoaWxlIChvZmYgPCBsZW4gJiYgTlVMTCAhPSAocG9zID0gc3RyY2hyKHN0cmluZytvZmYsICdcbicpKSkgewogCQlsaW5lbGVuID0gcG9zLXN0cmluZytvZmY7CiAJCWlmIChvZmYgKyBsaW5lbGVuID4gbGVuKQpAQCAtMTU1LDUgKzE4OCwyMyBAQAogc3RydWN0IGNvbnNvbGUgeGVuYm9vdF9jb25zb2xlID0gewogCS5uYW1lCQk9ICJ4ZW5ib290IiwKIAkud3JpdGUJCT0geGVuYm9vdF93cml0ZV9jb25zb2xlLAotCS5mbGFncwkJPSBDT05fUFJJTlRCVUZGRVIgfCBDT05fQk9PVCwKKwkuZmxhZ3MJCT0gQ09OX1BSSU5UQlVGRkVSIHwgQ09OX0JPT1QgfCBDT05fQU5ZVElNRSwKIH07CisjZW5kaWYJLyogQ09ORklHX0VBUkxZX1BSSU5USyAqLworCit2b2lkIHhlbl9yYXdfY29uc29sZV93cml0ZShjb25zdCBjaGFyICpzdHIpCit7CisJcmF3X2NvbnNvbGVfd3JpdGUoc3RyLCBzdHJsZW4oc3RyKSk7Cit9CisKK3ZvaWQgeGVuX3Jhd19wcmludGsoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJc3RhdGljIGNoYXIgYnVmWzUxMl07CisJdmFfbGlzdCBhcDsKKworCXZhX3N0YXJ0KGFwLCBmbXQpOworCXZzbnByaW50ZihidWYsIHNpemVvZihidWYpLCBmbXQsIGFwKTsKKwl2YV9lbmQoYXApOworCisJeGVuX3Jhd19jb25zb2xlX3dyaXRlKGJ1Zik7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL2NvcmUuYyBiL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCmluZGV4IDY2MmQ2MGUuLmU1ZDU4M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCisrKyBiL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgpAQCAtODYsNiArODcsNyBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAoZmlscC0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCiAJCXJldHVybiAtRUlOVkFMOworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcDIvZmlwX2Zpcm0uaCBiL2RyaXZlcnMvY2hhci9pcDIvZmlwX2Zpcm0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM1MjVmYS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvaXAyL2ZpcF9maXJtLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMTQ5ICswLDAgQEAKLS8qIGZpcF9maXJtLmggLSBJbnRlbGxpcG9ydCBJSSBsb2Fkd2FyZSAqLwotLyogLTMxMjMyIGJ5dGVzIHJlYWQgZnJvbSBmZi5sb2QgKi8KLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgZmlwX2Zpcm1bXSBfX2luaXRkYXRhID0gewotMHgzQywweDQyLDB4MzcsMHgxOCwweDAyLDB4MDEsMHgwMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4NTcsMHg2NSwweDY0LDB4MjAsMHg0NCwweDY1LDB4NjMsMHgyMCwweDMwLDB4MzEsMHgyMCwweDMxLDB4MzIsMHgzQSwweDMyLDB4MzQsCi0weDNBLDB4MzMsMHgzMCwweDIwLDB4MzEsMHgzOSwweDM5LDB4MzksMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHhFOSwweDZDLDB4MEYsMHg0MiwweDY1LDB4NDcsMHg2OSwweDRFLDB4NkUsMHg0OSwweDZFLDB4NDcsMHgyMCwweDZGLDB4NDYsMHgyMCwKLTB4NjMsMHg0RiwweDY0LDB4NDUsMHhDQywweDEzLDB4NUEsMHgxNSwweEU4LDB4MTYsMHg3NiwweDE4LDB4MDQsMHgxQSwweDkyLDB4MUIsCi0weDIwLDB4MUQsMHhBRSwweDFFLDB4M0MsMHgyMCwweENBLDB4MjEsMHg1OCwweDIzLDB4RTYsMHgyNCwweDc0LDB4MjYsMHgwMiwweDI4LAotMHg5MCwweDI5LDB4MUUsMHgyQiwweEFDLDB4MkMsMHgzQSwweDJFLDB4QzgsMHgyRiwweDU2LDB4MzEsMHhFNCwweDMyLDB4NzIsMHgzNCwKLTB4MDAsMHgzNiwweDhFLDB4MzcsMHgxQywweDM5LDB4QUEsMHgzQSwweDM4LDB4M0MsMHhDNiwweDNELDB4NTQsMHgzRiwweEUyLDB4NDAsCi0weDcwLDB4NDIsMHhGRSwweDQzLDB4OEMsMHg0NSwweDFBLDB4NDcsMHhBOCwweDQ4LDB4MzYsMHg0QSwweEM0LDB4NEIsMHg1MiwweDRELAotMHhFMCwweDRFLDB4NkUsMHg1MCwweEZDLDB4NTEsMHg4QSwweDUzLDB4MTgsMHg1NSwweEE2LDB4NTYsMHgzNCwweDU4LDB4QzIsMHg1OSwKLTB4NTAsMHg1QiwweERFLDB4NUMsMHg2QywweDVFLDB4RkEsMHg1RiwweDg4LDB4NjEsMHgxNiwweDYzLDB4QTQsMHg2NCwweDMyLDB4NjYsCi0weEMwLDB4NjcsMHg0RSwweDY5LDB4REMsMHg2QSwweDZBLDB4NkMsMHhGOCwweDZELDB4ODYsMHg2RiwweDE0LDB4NzEsMHhBMiwweDcyLAotMHgzMCwweDc0LDB4QkUsMHg3NSwweDRDLDB4NzcsMHg2QywweDc3LDB4OEMsMHg3NywweEFDLDB4NzcsMHgzMywweERCLDB4OEEsMHhEQywKLTB4NTMsMHgzMywweERCLDB4MjUsMHgwNywweDAwLDB4NzUsMHgwQSwweDhBLDB4MUUsMHgwOCwweDAxLDB4ODMsMHhFMywweDBDLDB4RUIsCi0weDIwLDB4OTAsMHgzQywweDAxLDB4NzUsMHgwQSwweDhBLDB4MUUsMHgwOCwweDAxLDB4ODAsMHhFMywweEMwLDB4RUIsMHgxMiwweDkwLAotMHg4QSwweDFFLDB4MEQsMHgwMSwweDNDLDB4MDIsMHg3NSwweDA2LDB4ODAsMHhFMywweDBDLDB4RUIsMHgwNCwweDkwLDB4ODAsMHhFMywKLTB4QzAsMHg1MywweDUwLDB4OEIsMHgxRSwweEJBLDB4MTMsMHg4RSwweERCLDB4RTgsMHg2QSwweDY1LDB4NTUsMHg4QiwweEVDLDB4NTMsCi0weDFFLDB4MkIsMHhDMCwweDhFLDB4RDgsMHg4QiwweDVFLDB4MDQsMHhDMSwweEUzLDB4MDQsMHgwMywweDVFLDB4MDYsMHhEMSwweEUzLAotMHgyRSwweDhCLDB4OUYsMHg0NCwweDAwLDB4OEQsMHg0NywweDJBLDB4MUUsMHg1QSwweDFGLDB4NUIsMHg1RCwweEMzLDB4NTUsMHg4QiwKLTB4RUMsMHg1MywweDFFLDB4MkIsMHhDMCwweDhFLDB4RDgsMHg4QiwweDVFLDB4MDQsMHhDMSwweEUzLDB4MDQsMHgwMywweDVFLDB4MDYsCi0weEQxLDB4RTMsMHgyRSwweDhCLDB4OUYsMHg0NCwweDAwLDB4OEQsMHg0NywweDM0LDB4MUUsMHg1QSwweDFGLDB4NUIsMHg1RCwweEMzLAotMHhGQiwweDU1LDB4OEIsMHhFQywweDUzLDB4NTEsMHg1MiwweDU2LDB4NTcsMHgxRSwweDA2LDB4MUUsMHgwNywweDMzLDB4QzAsMHg4RSwKLTB4RDgsMHg4QiwweDVFLDB4MDQsMHgyNiwweDhBLDB4NDcsMHg1OSwweDI1LDB4MDMsMHgwMCwweDhCLDB4RjAsMHhEMSwweEU2LDB4MkUsCi0weDhCLDB4QjQsMHhDNCwweDAwLDB4QzEsMHhFMCwweDA0LDB4MjYsMHgwMiwweDQ3LDB4MUEsMHhEMSwweEUwLDB4OEIsMHhFOCwweDJFLAotMHg4QiwweEFFLDB4NDQsMHgwMCwweDg5LDB4MkMsMHgyNiwweDhBLDB4NDcsMHgxQywweDg4LDB4NDQsMHgwRiwweDI2LDB4OEEsMHg0NywKLTB4MUQsMHg4OCwweDQ0LDB4MTAsMHgyNiwweDhBLDB4NDcsMHgxRSwweDg4LDB4NDQsMHgxMSwweDI2LDB4OEEsMHg0NywweDFGLDB4ODgsCi0weDQ0LDB4MTIsMHgyNiwweDhBLDB4NDcsMHgyMCwweDg4LDB4NDQsMHgxMywweDI2LDB4OEEsMHg0NywweDIzLDB4ODgsMHg0NCwweDE0LAotMHgyNiwweDhBLDB4NDcsMHgyNCwweDg4LDB4NDQsMHgxNSwweDI2LDB4OEEsMHg0NywweDVBLDB4ODgsMHg0NCwweDBFLDB4MzMsMHhDMCwKLTB4ODksMHg0NCwweDA2LDB4ODksMHg0NCwweDA4LDB4ODgsMHg0NCwweDBCLDB4ODgsMHg0NCwweDBBLDB4QjAsMHgyMSwweEI0LDB4NjQsCi0weDg5LDB4NDQsMHgwNCwweDg5LDB4NDQsMHgwMiwweEIwLDB4NTUsMHg4OCwweDQ0LDB4MEQsMHg4OCwweDQ0LDB4MEMsMHhFOCwweDZBLAotMHgwMCwweDcyLDB4NUIsMHhFOCwweEM5LDB4MDAsMHhFOCwweEMxLDB4MTAsMHg4OSwweDQ0LDB4MDgsMHg4MCwweDdDLDB4MEYsMHgwMSwKLTB4NzQsMHgyOSwweEU4LDB4MkIsMHgwMiwweEU4LDB4N0YsMHgwMiwweDgwLDB4N0MsMHgwRiwweDAzLDB4NzQsMHgxRCwweEU4LDB4QTksCi0weDEwLDB4OEIsMHhGOCwweDJCLDB4NDQsMHgwOCwweDNELDB4QTAsMHgwRiwweDcyLDB4MTAsMHg4OSwweDdDLDB4MDgsMHgzMywweEMwLAotMHg4NywweDQ0LDB4MDYsMHg4NSwweEMwLDB4NzUsMHgwNCwweEM2LDB4NDQsMHgwQSwweEZGLDB4OEEsMHg0NCwweDBBLDB4ODQsMHhDMCwKLTB4NzUsMHgwQiwweEI4LDB4MDgsMHgwMCwweEU4LDB4NkEsMHg0QSwweEU4LDB4QTksMHgwMSwweDczLDB4QkYsMHhFOCwweDRGLDB4MDEsCi0weDgxLDB4NjYsMHg0OCwweDdGLDB4RkYsMHg4MywweDY2LDB4N0EsMHhCRiwweEIwLDB4MDIsMHhFOCwweDA0LDB4MEUsMHg4QSwweDQ0LAotMHgwQSwweDk4LDB4MDcsMHgxRiwweDVGLDB4NUUsMHg1QSwweDU5LDB4NUIsMHg1RCwweEMzLDB4ODEsMHg0RSwweDQ4LDB4ODAsMHgwMCwKLTB4QjAsMHg0MCwweEU4LDB4M0QsMHg0QSwweEU4LDB4ODksMHg0MCwweDczLDB4MkEsMHhFOCwweDRELDB4MTAsMHg4QiwweEQ4LDB4QjAsCi0weDA1LDB4RTgsMHgyRSwweDRBLDB4RjYsMHg0NiwweDI3LDB4MDIsMHg3NSwweDFBLDB4RTgsMHgzRCwweDEwLDB4MkIsMHhDMywweDNELAotMHg1OCwweDFCLDB4NzIsMHhFQiwweDgxLDB4NjYsMHg0OCwweDdGLDB4RkYsMHhCMCwweDAyLDB4RTgsMHhDNCwweDBELDB4QzYsMHg0NCwKLTB4MEEsMHgwMSwweEY5LDB4QzMsMHg4MywweDRFLDB4N0EsMHg0MCwweEY4LDB4QzMsMHhGQiwweEIwLDB4MDEsMHhFOCwweDAyLDB4NEEsCi0weEZBLDB4RTgsMHg5OSwweDFFLDB4RTQsMHgwQSwweDg0LDB4QzAsMHg3NSwweEYwLDB4QjAsMHg0RSwweEU2LDB4MEEsMHhGQiwweEIwLAotMHgwMSwweEU4LDB4RUUsMHg0OSwweEZBLDB4RTgsMHg4NSwweDFFLDB4RTQsMHgwQSwweDg0LDB4QzAsMHg3NSwweEYwLDB4QzMsMHhGQSwKLTB4RTgsMHg3QSwweDFFLDB4RTQsMHhFQywweDg4LDB4NDQsMHgxNiwweEU0LDB4RTQsMHg4OCwweDQ0LDB4MTcsMHhFNCwweEY4LDB4ODgsCi0weDQ0LDB4MTgsMHhFNCwweEYwLDB4ODgsMHg0NCwweDE5LDB4RTQsMHgxMCwweDg4LDB4NDQsMHgxQSwweEU0LDB4MTIsMHg4OCwweDQ0LAotMHgxQiwweEU0LDB4MTQsMHg4OCwweDQ0LDB4MUMsMHhFNCwweDM0LDB4ODgsMHg0NCwweDFELDB4RTQsMHgzNiwweDg4LDB4NDQsMHgxRSwKLTB4RTQsMHhEOCwweDI0LDB4MDEsMHg4QSwweEUwLDB4RTQsMHhEQSwweDI0LDB4MDIsMHgwQSwweEM0LDB4ODgsMHg0NCwweDFGLDB4OEEsCi0weDQ0LDB4MTAsMHhFOCwweENELDB4MUYsMHg4QSwweDQ0LDB4MTEsMHhFOCwweDM1LDB4MjEsMHg4QSwweDQ0LDB4MTIsMHhFOCwweDg5LAotMHgyMSwweDhBLDB4NDQsMHgxMywweEU4LDB4NDMsMHgyMSwweEM2LDB4ODYsMHhBMSwweDAwLDB4MDAsMHhFNCwweDE0LDB4MjQsMHgxMCwKLTB4RTYsMHgxNCwweEU0LDB4MTIsMHgyNCwweDNELDB4RTYsMHgxMiwweDhBLDB4NDQsMHgxNSwweDNDLDB4MDEsMHg3MiwweDFFLDB4NzcsCi0weDE2LDB4QjAsMHgxMSwweEU2LDB4MzQsMHhCMCwweDEzLDB4RTYsMHgzNiwweEU0LDB4MTQsMHgwQywweDEwLDB4RTYsMHgxNCwweEU0LAotMHgxMiwweDBDLDB4NDAsMHhFNiwweDEyLDB4RUIsMHgwNiwweEU0LDB4MTIsMHgwQywweDAyLDB4RTYsMHgxMiwweDhBLDB4NDQsMHgwRiwKLTB4M0MsMHgwMSwweDc0LDB4MDYsMHgzQywweDAyLDB4NzQsMHgwQSwweEVCLDB4MEUsMHhFNCwweDEyLDB4MEMsMHgwOCwweEU2LDB4MTIsCi0weEVCLDB4MDYsMHhFNCwweDEyLDB4MEMsMHgxMCwweEU2LDB4MTIsMHhFOCwweDJGLDB4RkYsMHg4QSwweDQ0LDB4MTQsMHgzQywweDAyLAotMHg3NSwweDA4LDB4QjAsMHg1NSwweDg4LDB4NDQsMHgwQywweDg4LDB4NDQsMHgwRCwweEIwLDB4MjEsMHhCNCwweDY0LDB4ODksMHg0NCwKLTB4MDQsMHg4OSwweDQ0LDB4MDIsMHhFNCwweDBDLDB4MEMsMHgxMCwweEU2LDB4MEMsMHhFOCwweEVELDB4MzksMHhGQiwweEMzLDB4RTgsCi0weDVGLDB4M0YsMHg3MywweDA4LDB4RkIsMHhCMCwweDBBLDB4RTgsMHgwOCwweDQ5LDB4RUIsMHhGMywweEZBLDB4RTgsMHg5RCwweDFELAotMHg4QSwweDY0LDB4MTYsMHg4QSwweDQ0LDB4MTcsMHg4OSwweDg2LDB4OTQsMHgwMCwweEU2LDB4RTQsMHg4QSwweEM0LDB4RTYsMHhFQywKLTB4OEEsMHg2NCwweDE4LDB4OEEsMHg0NCwweDE5LDB4ODksMHg4NiwweDk2LDB4MDAsMHhFNiwweEYwLDB4OEEsMHhDNCwweEU2LDB4RjgsCi0weDhBLDB4NDQsMHgxQSwweEU2LDB4MTAsMHg4QSwweDQ0LDB4MUIsMHhFNiwweDEyLDB4OEEsMHg0NCwweDFDLDB4RTYsMHgxNCwweDhBLAotMHg0NCwweDFELDB4RTYsMHgzNCwweDhBLDB4NDQsMHgxRSwweEU2LDB4MzYsMHg4QSwweDQ0LDB4MUYsMHhFNiwweEQ4LDB4RTYsMHhEQSwKLTB4RTksMHhCNywweEZFLDB4OTAsMHhGQSwweDhBLDB4NDQsMHgwRSwweEU2LDB4RkUsMHhFNCwweDAyLDB4QTgsMHgwMSwweDc1LDB4MDUsCi0weDMzLDB4QzAsMHhGQiwweEY4LDB4QzMsMHgzMywweEMwLDB4RTQsMHgwMCwweEZCLDB4RjksMHhDMywweDhBLDB4NjQsMHgxNCwweDgwLAotMHhGQywweDAyLDB4NzQsMHgyQiwweEZFLDB4QzAsMHhGRSwweEM3LDB4ODAsMHhGRiwweDRFLDB4NzIsMHgxQywweDc0LDB4MDksMHg4MCwKLTB4RkYsMHg1MCwweDczLDB4MDgsMHhCMCwweDBBLDB4RUIsMHgxNywweEIwLDB4MEQsMHhFQiwweDEzLDB4MDIsMHhEQywweDMyLDB4RkYsCi0weDgwLDB4RkIsMHg3RiwweDdDLDB4MDIsMHhCMywweDIxLDB4OEEsMHhDMywweDNDLDB4N0YsMHg3QywweDAyLDB4QjAsMHgyMSwweEMzLAotMHhGQSwweDgwLDB4N0MsMHgwQiwweDA0LDB4NzYsMHgwMiwweEZCLDB4QzMsMHg4QiwweDQ2LDB4MjQsMHgzRCwweDA4LDB4MDAsMHg3MiwKLTB4RjYsMHg4RSwweDQ2LDB4MDIsMHg4QiwweDdFLDB4MjIsMHg4QSwweDQ0LDB4MEMsMHg4QiwweDVDLDB4MDIsMHhBQSwweEU4LDB4QUIsCi0weEZGLDB4QUEsMHhFOCwweEE3LDB4RkYsMHhBQSwweEU4LDB4QTMsMHhGRiwweEFBLDB4RTgsMHg5RiwweEZGLDB4ODgsMHg0NCwweDBDLAotMHg4OSwweDVDLDB4MDIsMHg4MCwweDQ0LDB4MEIsMHgwNCwweDg5LDB4N0UsMHgyMiwweDgzLDB4NkUsMHgyNCwweDA0LDB4ODMsMHg0NiwKLTB4MUEsMHgwNCwweDgwLDB4N0UsMHgyNiwweDAyLDB4NzQsMHgwNiwweDgwLDB4NjYsMHgyNiwweEZELDB4RkIsMHhDMywweDYwLDB4QjAsCi0weEZELDB4RTgsMHgwMiwweDNGLDB4NjEsMHhGQiwweEMzLDB4RkEsMHg4MCwweDdDLDB4MEYsMHgwMywweDc1LDB4MDksMHhDNiwweDQ0LAotMHgwQiwweDAwLDB4RTgsMHhFNSwweDM4LDB4RkIsMHhDMywweEM0LDB4N0UsMHgxNCwweDhCLDB4NEUsMHgzQSwweDg1LDB4QzksMHg3NSwKLTB4MzUsMHgyNiwweDhCLDB4MEQsMHg0NywweDQ3LDB4RTMsMHhFQSwweDNCLDB4N0UsMHgwNCwweDc2LDB4MjIsMHhCOCwweDAyLDB4MDAsCi0weDM5LDB4NDYsMHgyRSwweDc3LDB4MDcsMHhDNywweDQ2LDB4MkUsMHgwMCwweDAwLDB4RUIsMHgxMywweDhCLDB4NUUsMHgyQywweDg5LAotMHg1RSwweDA0LDB4MjYsMHhDNywweDA3LDB4MDAsMHgwMCwweDQzLDB4NDMsMHg4OSwweDVFLDB4MkMsMHgyOSwweDQ2LDB4MkUsMHg4NSwKLTB4QzksMHg3OCwweENFLDB4ODksMHg0RSwweDNBLDB4OEEsMHg0NCwweDBELDB4OEIsMHg1QywweDA0LDB4MjYsMHg4QSwweDI1LDB4NDcsCi0weDNBLDB4QzQsMHg3NSwweDE2LDB4RkUsMHg0QywweDBCLDB4RkYsMHg0NCwweDA2LDB4RTgsMHgwRiwweEZGLDB4RTIsMHhFRCwweDg4LAotMHg0NCwweDBELDB4ODksMHg1QywweDA0LDB4ODksMHg0RSwweDNBLDB4RUIsMHhBNywweEM2LDB4NDQsMHgwQSwweEZFLDB4RTgsMHg3OSwKLTB4MzgsMHhGQiwweEMzLDB4OTAsMHhFOCwweEIzLDB4MEQsMHg4QSwweEU4LDB4OEEsMHgwRSwweENCLDB4MTMsMHhCMywweDA3LDB4OEEsCi0weEMxLDB4RUUsMHhFQiwweDAwLDB4RUMsMHgzQSwweEMxLDB4NzUsMHgwOSwweDAyLDB4Q0QsMHhGRSwweENCLDB4NzUsMHhGMCwweEVCLAotMHgwQywweDkwLDB4ODgsMHgwRSwweENCLDB4MTMsMHg4QSwweEU4LDB4QkIsMHhGRiwweEZGLDB4RjksMHhDMywweDg4LDB4MEUsMHhDQiwKLTB4MTMsMHhGOCwweEMzLDB4OTAsMHhCQiwweDNGLDB4M0YsMHg4QSwweDhFLDB4OUUsMHgwMCwweEJBLDB4RkUsMHgwMCwweEVDLDB4OEEsCi0weEU4LDB4MzIsMHhDMSwweDIyLDB4QzMsMHg3NSwweDAyLDB4RjgsMHhDMywweEY5LDB4QzMsMHg5MCwweEU4LDB4RTUsMHhGRiwweDczLAotMHgwMSwweEMzLDB4QkEsMHhEMCwweDAwLDB4QkIsMHgwMywweDAzLDB4OEEsMHg4RSwweDlGLDB4MDAsMHhFQywweDhBLDB4RTgsMHgzMiwKLTB4QzEsMHgyMiwweEMzLDB4NzUsMHgwMiwweEY4LDB4QzMsMHhGOSwweEMzLDB4OTAsMHgzMywweEMwLDB4OEUsMHhEOCwweDhFLDB4QzAsCi0weDgwLDB4M0UsMHhDOCwweDEzLDB4MDAsMHg3NSwweDA3LDB4QjAsMHgwQSwweEU4LDB4MjYsMHg0NywweEVCLDB4RjIsMHhGQiwweDMzLAotMHhEQiwweDhBLDB4MUUsMHhDOSwweDEzLDB4NDMsMHg0MywweDgzLDB4RkIsMHg3RSwweDc2LDB4MDcsMHgzMywweERCLDB4QjAsMHgwMiwKLTB4RTgsMHgwRiwweDQ3LDB4MkUsMHg4QiwweEFGLDB4NDQsMHgwMCwweDgzLDB4N0UsMHgwOCwweDAwLDB4NzQsMHhFNywweDg4LDB4MUUsCi0weEM5LDB4MTMsMHhCMCwweDAyLDB4RTgsMHhGQiwweDQ2LDB4RkEsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzQsMHgxNCwweEU4LAotMHg5NiwweDFCLDB4RTgsMHg3RiwweEZGLDB4NzIsMHgxQywweDMzLDB4RDIsMHg4QSwweDk2LDB4OUYsMHgwMCwweDgzLDB4QzIsMHgwRSwKLTB4RUIsMHgwQywweDkwLDB4RTgsMHg3NywweDFCLDB4RTgsMHg4MywweEZGLDB4NzIsMHgwOCwweEJBLDB4NDgsMHgwMCwweEU4LDB4MzMsCi0weEZGLDB4NzMsMHhBQiwweDIzLDB4Q0IsMHg4OSwweDhFLDB4OUEsMHgwMCwweDg5LDB4OTYsMHg5QywweDAwLDB4RkUsMHg4NiwweEI1LAotMHgwMCwweEM2LDB4MDYsMHhDOCwweDEzLDB4MDAsMHhCMCwweDBBLDB4RTgsMHg2NywweDBBLDB4RkIsMHhFQiwweDg5LDB4MTAsMHgxOCwKLTB4MDgsMHgyOCwweDMzLDB4QzAsMHhBMCwweDA1LDB4MDEsMHg4QSwweEM4LDB4MjQsMHg0MCwweDc1LDB4MjQsMHhDNywweDA2LDB4N0MsCi0weDEyLDB4OEUsMHg0NSwweEM3LDB4MDYsMHg0MiwweDEyLDB4MDEsMHgwMCwweEM2LDB4MDYsMHg1NCwweDEyLDB4MDIsMHhCMCwweDA4LAotMHhGNiwweEMxLDB4MDEsMHg3NCwweDAyLDB4QjAsMHgwNCwweEEzLDB4NDYsMHgxMiwweEEyLDB4NEMsMHgxMiwweEEyLDB4OTQsMHgxMiwKLTB4QzMsMHhDNywweDA2LDB4N0MsMHgxMiwweEI2LDB4NDUsMHhBMCwweDBGLDB4MDEsMHg4NCwweEMwLDB4NzUsMHgwRSwweDZBLDB4MDAsCi0weDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgxRSwweDlDLDB4MEUsMHhFOCwweEIxLDB4MEMsMHg5MCwweEM3LDB4MDYsMHg0NCwweDEyLAotMHgwMSwweDAwLDB4QTMsMHg0MiwweDEyLDB4OEIsMHhEOCwweEMxLDB4RTMsMHgwNCwweDg4LDB4MUUsMHg5NCwweDEyLDB4QkUsMHhFMiwKLTB4MDUsMHgyQiwweEYwLDB4OEIsMHhDOCwweDMzLDB4REIsMHg4QiwweEZCLDB4MkUsMHhBQywweDg4LDB4ODUsMHg0OCwweDEyLDB4OEEsCi0weEQ4LDB4MEMsMHgwNSwweEU2LDB4RkUsMHg4QSwweEUwLDB4RUIsMHgwMCwweEU0LDB4RkUsMHgzMiwweEM0LDB4QTgsMHgzRiwweDc0LAotMHgwMywweEU5LDB4OUUsMHgwMCwweEU0LDB4MDAsMHg4OCwweDg1LDB4NTAsMHgxMiwweDhBLDB4RTAsMHgyNCwweDMwLDB4QkEsMHgxMCwKLTB4RkYsMHgzQywweDMwLDB4NzQsMHgxMiwweDgwLDB4RkMsMHgwNCwweDc0LDB4MEEsMHhCQSwweDA0LDB4MDMsMHhGNiwweDA2LDB4MDgsCi0weDAxLDB4RkUsMHg3NCwweDAzLDB4QkEsMHgwOCwweDBGLDB4ODgsMHg5NSwweDRDLDB4MTIsMHgwMiwweEZBLDB4MzIsMHhDMCwweEY2LAotMHhDNCwweDA4LDB4NzQsMHgwMiwweEIwLDB4MDEsMHg4OCwweDg1LDB4NTgsMHgxMiwweDhBLDB4QzQsMHgzQywweDM1LDB4NzQsMHg1QiwKLTB4M0MsMHgzNiwweDc0LDB4NTcsMHgzQywweDM0LDB4NzQsMHg1MywweDNDLDB4MDQsMHg3NCwweDRGLDB4M0MsMHgxNCwweDc0LDB4NEIsCi0weDNDLDB4MTUsMHg3NCwweDQ3LDB4QTgsMHg0MCwweDc0LDB4MjUsMHhDNiwweDg1LDB4NTQsMHgxMiwweDA0LDB4RDEsMHhFNywweEI0LAotMHgwMywweDhBLDB4QzMsMHg4OSwweDg1LDB4NUMsMHgxMiwweDhBLDB4QzMsMHg4QSwweEUzLDB4ODAsMHhDQywweDAxLDB4ODksMHg4NSwKLTB4NjQsMHgxMiwweEQxLDB4RUYsMHg0NywweEUyLDB4MDMsMHhFQiwweDFBLDB4OTAsMHhFOSwweDZDLDB4RkYsMHhDNiwweDg1LDB4NTQsCi0weDEyLDB4MDIsMHhEMSwweEU3LDB4OEEsMHhFNiwweDhBLDB4QzMsMHgwQywweDA0LDB4ODksMHg4NSwweDVDLDB4MTIsMHhEMSwweEVGLAotMHg0NywweEUyLDB4RTcsMHgzMywweEMwLDB4OEEsMHhDNywweEEzLDB4NDYsMHgxMiwweEMzLDB4QzYsMHg4NSwweDU0LDB4MTIsMHgwNiwKLTB4RUIsMHhCQiwweEM2LDB4ODUsMHg1NCwweDEyLDB4MDAsMHgzMywweEMwLDB4ODgsMHg4NSwweDUwLDB4MTIsMHg4OCwweDg1LDB4NEMsCi0weDEyLDB4ODgsMHg4NSwweDU4LDB4MTIsMHhFQiwweEE2LDB4QzcsMHg0NiwweDI2LDB4MDIsMHgxMiwweDhCLDB4NDYsMHgxRSwweDg5LAotMHg0NiwweDAwLDB4ODksMHg0NiwweDIyLDB4OEIsMHg0NiwweDIwLDB4ODksMHg0NiwweDI0LDB4QzcsMHg0NiwweDFBLDB4MDAsMHgwMCwKLTB4QzMsMHhDNywweDQ2LDB4M0MsMHg4MCwweDAwLDB4QzcsMHg0NiwweDM4LDB4MDEsMHgwMCwweDFFLDB4NTYsMHg4QiwweDc2LDB4MzAsCi0weDg5LDB4NzYsMHgwNCwweDg5LDB4NzYsMHgxNCwweDhFLDB4NUUsMHgwNiwweDMzLDB4QzAsMHg4OSwweDA0LDB4NDYsMHg0NiwweDg5LAotMHg3NiwweDJDLDB4ODksMHg0NiwweDNBLDB4OEIsMHg0NiwweDMyLDB4NDgsMHg0OCwweDg5LDB4NDYsMHgyRSwweDVFLDB4MUYsMHhDMywKLTB4MzMsMHhDMCwweDg5LDB4NDYsMHg0OCwweDg5LDB4NDYsMHg0QSwweEM3LDB4NDYsMHg0NiwweEFFLDB4MDEsMHg4OSwweDQ2LDB4NEUsCi0weDhCLDB4NDYsMHg0NCwweDg5LDB4NDYsMHg1MCwweDhCLDB4NDYsMHg0MiwweDg5LDB4NDYsMHg0MCwweDg5LDB4NDYsMHgwOCwweEMzLAotMHgzMywweEMwLDB4ODksMHg0NiwweDc2LDB4ODksMHg0NiwweDc4LDB4QzcsMHg0NiwweDdBLDB4MTAsMHgwMCwweDU2LDB4MUUsMHg4QiwKLTB4NzYsMHg3MCwweDg5LDB4NzYsMHgxMCwweDg5LDB4NzYsMHgwQywweDhFLDB4NUUsMHgxMiwweEM3LDB4MDQsMHgwMCwweDAwLDB4OEIsCi0weDQ2LDB4NzIsMHg4OSwweDQ2LDB4NzQsMHgxRiwweDVFLDB4QzMsMHg4OSwweDU2LDB4MTgsMHg4OSwweDU2LDB4MDIsMHg4OSwweDU2LAotMHgwNiwweDg5LDB4NTYsMHgwQSwweDg5LDB4NTYsMHgwRSwweDg5LDB4NTYsMHgxMiwweDg5LDB4NTYsMHgxNiwweDhCLDB4RDgsMHg0QiwKLTB4NEIsMHhDMSwweEUzLDB4MDIsMHhCRiwweDAyLDB4MDAsMHg4OSwweDdFLDB4MUUsMHgwMywweEZCLDB4ODksMHg3RSwweDMwLDB4MDMsCi0weEZCLDB4ODksMHg3RSwweDQyLDB4MDMsMHhGQiwweDg5LDB4N0UsMHg3MCwweDgzLDB4RUIsMHgwOCwweDg5LDB4NUUsMHgyMCwweDg5LAotMHg1RSwweDMyLDB4ODksMHg1RSwweDQ0LDB4ODksMHg1RSwweDcyLDB4NTAsMHhFOCwweDJCLDB4RkYsMHhFOCwweDcxLDB4RkYsMHhFOCwKLTB4M0YsMHhGRiwweEU4LDB4OEIsMHhGRiwweDU4LDB4QzMsMHhCOCwweDMwLDB4NzUsMHhDMSwweEU4LDB4MDQsMHgwRSwweDVCLDB4MDMsCi0weEMzLDB4QTMsMHhCQSwweDEzLDB4ODMsMHgzRSwweDQyLDB4MTIsMHgwMCwweDc0LDB4MDcsMHg4MCwweDNFLDB4OTQsMHgxMiwweDAwLAotMHg3NSwweDBFLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgxRSwweDlDLDB4MEUsMHhFOCwweEJELDB4MEEsMHg5MCwKLTB4QjgsMHgzMCwweDdBLDB4QzEsMHhFOCwweDA0LDB4NDAsMHhBMywweEMwLDB4MTMsMHgyQiwweDA2LDB4MTIsMHgwMSwweEY3LDB4RDgsCi0weDMzLDB4RDIsMHg4QiwweENBLDB4OEEsMHgwRSwweDk0LDB4MTIsMHhGNywweEYxLDB4M0QsMHg4MCwweDAwLDB4NzcsMHgwRSwweDZBLAotMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgyNSwweDlDLDB4MEUsMHhFOCwweDkwLDB4MEEsMHg5MCwweDQ4LDB4M0QsMHhGRiwKLTB4MDcsMHg3MiwweDAzLDB4QjgsMHhGRiwweDA3LDB4QTMsMHhDMiwweDEzLDB4MzMsMHhDOSwweDhBLDB4MEUsMHg5NCwweDEyLDB4MzMsCi0weEY2LDB4QjgsMHgwMCwweDA5LDB4MkUsMHg4QiwweEFDLDB4NDQsMHgwMCwweDg5LDB4NDYsMHg0QywweDQwLDB4NDYsMHg0NiwweEUyLAotMHhGMywweDhBLDB4MEUsMHg5NCwweDEyLDB4MzMsMHhGNiwweDhCLDB4MTYsMHhDMCwweDEzLDB4QTEsMHhDMiwweDEzLDB4MkUsMHg4QiwKLTB4QUMsMHg0NCwweDAwLDB4RTgsMHgyMiwweEZGLDB4MDMsMHhEMCwweDQ2LDB4NDYsMHhFMiwweEYyLDB4QzMsMHgzMywweEMwLDB4MkUsCi0weDhCLDB4QUQsMHg0NCwweDAwLDB4ODksMHg0NiwweDA4LDB4NDcsMHg0NywweEUyLDB4RjQsMHhDMywweDUxLDB4MzMsMHhDMCwweDBBLAotMHhDMiwweDJFLDB4OEIsMHhBRCwweDQ0LDB4MDAsMHg4OSwweDg2LDB4OUUsMHgwMCwweDgxLDB4NEUsMHgzOCwweDAwLDB4MjAsMHg0NywKLTB4NDcsMHhGRSwweEM0LDB4ODAsMHhGQywweDA0LDB4NzIsMHgwNCwweDMyLDB4RTQsMHhGRSwweEMwLDB4RTIsMHhFMywweDU5LDB4ODMsCi0weEU5LDB4MTAsMHg3NCwweDA1LDB4RjcsMHhEOSwweEU4LDB4QzQsMHhGRiwweEMzLDB4NTEsMHgzMywweEMwLDB4MEEsMHhDMiwweDJFLAotMHg4QiwweEFELDB4NDQsMHgwMCwweDg5LDB4ODYsMHg5RSwweDAwLDB4ODMsMHg0RSwweDM4LDB4NDAsMHg0NywweDQ3LDB4ODAsMHhDNCwKLTB4MTAsMHg3OSwweDA0LDB4MzIsMHhFNCwweEZFLDB4QzAsMHhFMiwweEU2LDB4NTksMHg4MywweEU5LDB4MTAsMHg3NCwweDA1LDB4RjcsCi0weEQ5LDB4RTgsMHg5OSwweEZGLDB4QzMsMHhFOCwweEQyLDB4RkYsMHhDMywweDhELDB4MDgsMHg5QywweDA4LDB4Q0EsMHgwOCwweEY1LAotMHgwOCwweDhCLDB4MEUsMHg0MiwweDEyLDB4MzMsMHhGNiwweDUxLDB4NTYsMHgzMywweERCLDB4OEIsMHhDQiwweDhBLDB4OTQsMHg0OCwKLTB4MTIsMHg4QSwweDhDLDB4NEMsMHgxMiwweDhBLDB4OUMsMHg1NCwweDEyLDB4OEIsMHhGRSwweEMxLDB4RTcsMHgwNSwweDg1LDB4REIsCi0weDc1LDB4MDIsMHhCMSwweDEwLDB4MkUsMHhGRiwweDk3LDB4RjksMHgwOCwweDVFLDB4NTksMHg0NiwweEUyLDB4RDksMHhDMywweDAxLAotMHhDQywweDAzLDB4RDAsMHgwMCwweEU4LDB4MDIsMHhEMCwweDAwLDB4RTgsMHgwMSwweEQwLDB4MDAsMHhFOCwweDAwLDB4RDAsMHgwMCwKLTB4RTgsMHgwNCwweEQwLDB4QTgsMHhEQSwweDAwLDB4REMsMHgwMCwweERFLDB4MDEsMHhEOCwweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsCi0weENDLDB4MDQsMHhEMCwweEE4LDB4REEsMHgyMCwweERDLDB4MDAsMHhERSwweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAwLAotMHhEOCwweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywKLTB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsCi0weENDLDB4MDQsMHhEMCwweDAwLDB4REEsMHgyMCwweERDLDB4MDMsMHhERSwweDAxLDB4RDgsMHgwMywweENDLDB4MDMsMHhDQywweDAzLAotMHhDQywweDAzLDB4Q0MsMHgwMCwweEQ4LDB4MDAsMHhDQywweDAwLDB4RDAsMHgwMCwweDAwLDB4NTYsMHg1MiwweDFFLDB4MEUsMHgxRiwKLTB4QkUsMHgyRiwweDA5LDB4MzMsMHhEMiwweEZDLDB4QUQsMHg4NSwweEMwLDB4NzQsMHgwRCwweDhBLDB4RDQsMHhFRSwweEFELDB4ODUsCi0weEMwLDB4NzQsMHgwNSwweDhBLDB4RDQsMHhFRSwweEVCLDB4RUUsMHgxRiwweDVBLDB4NUUsMHhDMywweEU0LDB4ODAsMHg4NCwweEMwLAotMHg3NCwweDE2LDB4NzgsMHgxNCwweEIwLDB4MjcsMHhFNiwweEZDLDB4QjAsMHgxMSwweEU2LDB4MzQsMHhFNCwweEZDLDB4M0MsMHgyNywKLTB4NzUsMHgwNiwweEU0LDB4MTEsMHg3NSwweDAyLDB4RjgsMHhDMywweEY5LDB4QzMsMHg4MywweEMyLDB4MDYsMHhCMCwweEJGLDB4RUUsCi0weDgzLDB4RUEsMHgwMiwweEIwLDB4MTAsMHhFRSwweDg4LDB4ODYsMHhBRiwweDAwLDB4QjAsMHgxMSwweDgzLDB4QzIsMHgwNCwweEVFLAotMHg4MywweEMyLDB4MDIsMHhFRSwweEIwLDB4MTMsMHg4MywweEMyLDB4MDIsMHhFRSwweDgzLDB4QzIsMHgwMiwweEVFLDB4MkUsMHhBMSwKLTB4NEMsMHgyRCwweDg5LDB4ODYsMHg5NCwweDAwLDB4ODMsMHhFQSwweDBFLDB4RUUsMHg4MywweEMyLDB4MDIsMHg4QSwweEM0LDB4RUUsCi0weDgzLDB4QzIsMHgwNCwweEIwLDB4MDMsMHhFRSwweDg4LDB4ODYsMHhBOCwweDAwLDB4ODMsMHhFQSwweDA0LDB4MzIsMHhDMCwweEVFLAotMHg4MywweEMyLDB4MDIsMHhCMCwweDg5LDB4RUUsMHg4OCwweDg2LDB4QTYsMHgwMCwweDBDLDB4MDYsMHhFRSwweEIwLDB4NDAsMHhCNCwKLTB4MzgsMHg4OSwweDQ2LDB4MUMsMHhDNywweDQ2LDB4MzYsMHgzOCwweDAwLDB4ODMsMHhDMiwweDA0LDB4MzIsMHhDMCwweEVFLDB4ODgsCi0weDg2LDB4QTcsMHgwMCwweEMzLDB4ODMsMHhDMiwweDA2LDB4QjAsMHhCRiwweEVFLDB4ODMsMHhFQSwweDAyLDB4RUMsMHgzQSwweDg2LAotMHhBRiwweDAwLDB4NzUsMHgyNCwweDgzLDB4QzIsMHgwNCwweEVDLDB4M0MsMHgxMSwweDc1LDB4MUMsMHg4MywweEMyLDB4MDYsMHhFQywKLTB4M0MsMHgxMywweDc1LDB4MTQsMHg4MywweEVBLDB4MDgsMHg4QSwweDg2LDB4QTgsMHgwMCwweEVFLDB4ODMsMHhFQSwweDAyLDB4RUMsCi0weDI0LDB4QzAsMHgzQywweEMwLDB4NzUsMHgwMiwweEY4LDB4QzMsMHhGOSwweEMzLDB4MzMsMHhDOSwweDhCLDB4RDEsMHg4QiwweEYxLAotMHg4QSwweDBFLDB4OTQsMHgxMiwweEMxLDB4RTksMHgwMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhGNywweDQ2LDB4MzgsMHgwMCwKLTB4MjAsMHg3NCwweDBFLDB4OEEsMHg4NiwweDlFLDB4MDAsMHhFNiwweEZFLDB4MzIsMHhDMCwweEU2LDB4ODAsMHg0MiwweEU4LDB4RkEsCi0weEZFLDB4ODMsMHhDNiwweDA4LDB4RTIsMHhFMSwweDg1LDB4RDIsMHg3NCwweDAzLDB4RTgsMHgwNSwweDA4LDB4QzMsMHgzMywweEM5LAotMHg4QiwweEYxLDB4OEEsMHgwRSwweDk0LDB4MTIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwKLTB4NzQsMHgwNiwweEU4LDB4NzMsMHgxNiwweEU4LDB4MTIsMHhGRiwweDQ2LDB4NDYsMHhFMiwweEVBLDB4QzMsMHgzMywweEM5LDB4OEIsCi0weEYxLDB4OEEsMHgwRSwweDk0LDB4MTIsMHhDMSwweEU5LDB4MDIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LAotMHgwMCwweDIwLDB4NzQsMHgxNiwweEU4LDB4NDYsMHgxNiwweEU4LDB4RDIsMHhGRSwweDczLDB4MEUsMHg2QSwweDAwLDB4MUYsMHhDNiwKLTB4MDYsMHg5MywweDEyLDB4MUMsMHg5QywweDBFLDB4RTgsMHhFMywweDA3LDB4OTAsMHg4MywweEM2LDB4MDgsMHhFMiwweEQ5LDB4QzMsCi0weDMzLDB4QzksMHg4QiwweEYxLDB4OEEsMHgwRSwweDk0LDB4MTIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LAotMHg0MCwweDAwLDB4NzQsMHgxNiwweEU4LDB4MjEsMHgxNiwweEU4LDB4MkEsMHhGRiwweDczLDB4MEUsMHg2QSwweDAwLDB4MUYsMHhDNiwKLTB4MDYsMHg5MywweDEyLDB4MUMsMHg5QywweDBFLDB4RTgsMHhCMywweDA3LDB4OTAsMHg0NiwweDQ2LDB4RTIsMHhEQSwweEMzLDB4MEMsCi0weDAwLDB4MDAsMHgxMCwweDAwLDB4MTMsMHgxMiwweDAwLDB4MDAsMHgxNCwweDAwLDB4MjgsMHgzQywweDAwLDB4MUIsMHgzRSwweDAwLAotMHgwMCwweDJBLDB4MDAsMHgwMCwweDJDLDB4MDAsMHgwMCwweDQyLDB4MDAsMHgxNCwweEQ4LDB4MDAsMHgwMCwweERBLDB4MDAsMHgwMCwKLTB4MzQsMHgwMCwweDExLDB4MzYsMHgwMCwweDEzLDB4MzgsMHgwMCwweDExLDB4M0EsMHgwMCwweDEzLDB4MDAsMHgwMCwweDU2LDB4NTAsCi0weDUyLDB4QkUsMHgyRiwweDBCLDB4MkUsMHhBRCwweDg1LDB4QzAsMHg3NCwweDA2LDB4OTIsMHgyRSwweEFDLDB4RUUsMHhFQiwweEY0LAotMHg1QSwweDU4LDB4NUUsMHhDMywweDUzLDB4MkUsMHhBMSwweDYwLDB4MjIsMHhFNiwweEU0LDB4RTYsMHhGMCwweDhBLDB4QzQsMHhFNiwKLTB4RUMsMHhFNiwweEY4LDB4RTgsMHhEOCwweEZGLDB4QjAsMHg0QiwweEU2LDB4MTAsMHhCMCwweDUwLDB4RTYsMHgxMiwweEIwLDB4MzgsCi0weEU2LDB4MTQsMHhFOCwweEFFLDB4MTUsMHhCMCwweDQ2LDB4RTYsMHgwQSwweEU4LDB4QTcsMHgxNSwweEIwLDB4MUEsMHhFNiwweDBBLAotMHhFOCwweEEwLDB4MTUsMHhCMCwweDIyLDB4RTYsMHgwQSwweEU4LDB4OTksMHgxNSwweEU4LDB4RkQsMHgwNiwweDhCLDB4RDgsMHhFNCwKLTB4MTYsMHhBOCwweDA0LDB4NzUsMHgxOCwweEU4LDB4RjIsMHgwNiwweDJCLDB4QzMsMHgzRCwweDMyLDB4MDAsMHg3MiwweEYwLDB4NkEsCi0weDAwLDB4MUYsMHhDNiwweDA2LDB4OTMsMHgxMiwweDIzLDB4OUMsMHgwRSwweEU4LDB4MTAsMHgwNywweDkwLDB4RTgsMHhEQSwweDA2LAotMHgyQiwweEMzLDB4M0QsMHgyNCwweDAwLDB4NzcsMHgxQiwweEIwLDB4MzEsMHhFNiwweEZDLDB4NTYsMHg1MSwweDU1LDB4QjksMHgxMCwKLTB4MDAsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4ODEsMHg0RSwweDM4LDB4ODAsMHgwMCwweDQ2LDB4NDYsMHhFMiwweEYyLDB4NUQsCi0weDU5LDB4NUUsMHhFOCwweDY5LDB4RkYsMHhFOCwweDRCLDB4MTUsMHhCMCwweDQ2LDB4RTYsMHgwQSwweEU4LDB4NDQsMHgxNSwweDVCLAotMHhDMywweDMzLDB4RjYsMHg4QiwweDBFLDB4NDIsMHgxMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhGNywweDQ2LDB4MzgsMHgwMCwKLTB4MjAsMHg3NCwweDA2LDB4RTgsMHgxNywweDE1LDB4RTgsMHg1QiwweEZGLDB4ODMsMHhDNiwweDIwLDB4RTIsMHhFOSwweEMzLDB4OEIsCi0weEMyLDB4MDUsMHgwNCwweDAwLDB4ODksMHg0NiwweDI4LDB4MkUsMHhBMSwweDRDLDB4MkQsMHg4OSwweDg2LDB4OEUsMHgwMCwweDg5LAotMHg4NiwweDkwLDB4MDAsMHg4OSwweDg2LDB4OTIsMHgwMCwweEM2LDB4ODYsMHhBMywweDAwLDB4MEEsMHhDNiwweDg2LDB4QzMsMHgwMCwKLTB4MDMsMHg1MiwweDgzLDB4QzIsMHgwNCwweDhBLDB4ODYsMHhBNiwweDAwLDB4MEMsMHgwNiwweEVFLDB4NUEsMHg4MywweEMyLDB4MDIsCi0weEIwLDB4MDUsMHhFRSwweDg4LDB4ODYsMHhBNSwweDAwLDB4QzMsMHhFOCwweDAzLDB4RkYsMHhFOCwweEU1LDB4MTQsMHhCMCwweDQyLAotMHhFNiwweDBBLDB4RjcsMHg0NiwweDM4LDB4ODAsMHgwMCwweDc0LDB4MDYsMHgyRSwweEExLDB4OUMsMHgyMiwweEVCLDB4MDQsMHgyRSwKLTB4QTEsMHg2QywweDIyLDB4QzcsMHg0NiwweDFDLDB4MEMsMHgwMCwweDg5LDB4ODYsMHg5NCwweDAwLDB4ODksMHg4NiwweDk2LDB4MDAsCi0weDg5LDB4ODYsMHg4RSwweDAwLDB4ODksMHg4NiwweDkwLDB4MDAsMHg4OSwweDg2LDB4OTIsMHgwMCwweEU2LDB4RjAsMHhFNiwweEU0LAotMHg4QSwweEM0LDB4RTYsMHhGOCwweEU2LDB4RUMsMHhDNiwweDg2LDB4QzMsMHgwMCwweDAzLDB4RTgsMHhBNSwweDE0LDB4QjAsMHgxQSwKLTB4RTYsMHgwQSwweEIwLDB4MTAsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhDMywweDMzLDB4QzksMHg4QiwweEYxLDB4OEEsCi0weDBFLDB4OTQsMHgxMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzQsMHgwNiwweEU4LAotMHg3NiwweDE0LDB4RTgsMHg1QSwweEZGLDB4NDYsMHg0NiwweEUyLDB4RUEsMHhDMywweDMzLDB4QzksMHg4QiwweEYxLDB4OEEsMHgwRSwKLTB4OTQsMHgxMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhGNywweDQ2LDB4MzgsMHgwMCwweDIwLDB4NzQsMHgwNiwweEU4LDB4NEMsCi0weDE0LDB4RTgsMHg3NCwweEZGLDB4NDYsMHg0NiwweEUyLDB4RUEsMHhDMywweDkwLDB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc1LAotMHgxNCwweEIwLDB4MDEsMHhCQSwweDA2LDB4MDEsMHhFRSwweDJBLDB4QzAsMHhFRSwweEIwLDB4MDIsMHhFRSwweEIwLDB4MDQsMHhFRSwKLTB4QjgsMHgwMCwweDAyLDB4RUIsMHgwRiwweEJBLDB4MDYsMHgwMSwweEIwLDB4NDAsMHhFRSwweEI4LDB4MDEsMHgwMCwweDhBLDB4MEUsCi0weDBFLDB4MDEsMHhEMywweEUwLDB4QTMsMHg4OCwweDEyLDB4QzMsMHhBMSwweDg4LDB4MTIsMHhBMywweDg0LDB4MTIsMHgyRCwweDIwLAotMHgwMCwweEEzLDB4OEEsMHgxMiwweDJELDB4MjAsMHgwMCwweEEzLDB4ODIsMHgxMiwweEM3LDB4MDYsMHg4NiwweDEyLDB4MjAsMHgwMCwKLTB4QzcsMHgwNiwweDgwLDB4MTIsMHgzMiwweDAwLDB4QzMsMHg4MywweDNFLDB4NDQsMHgxMiwweDAwLDB4NzQsMHg3NiwweDhCLDB4MEUsCi0weDQyLDB4MTIsMHgzMywweEY2LDB4OEEsMHhBNCwweDU0LDB4MTIsMHg4NCwweEU0LDB4NzQsMHg1RiwweDhBLDB4ODQsMHg0OCwweDEyLAotMHgwQywweDA0LDB4RTYsMHhGRSwweEY2LDB4QzQsMHgwNCwweDc0LDB4MjUsMHhCMCwweDFCLDB4QkEsMHgwMCwweDAwLDB4RUUsMHhFQiwKLTB4MDAsMHgyQSwweEMwLDB4QkEsMHgwMiwweDAwLDB4RUUsMHhFQiwweDAwLDB4QjAsMHgwMywweEVFLDB4RUIsMHgwMCwweDMyLDB4QzAsCi0weEJBLDB4MDIsMHgwMCwweEVFLDB4RUIsMHgwMCwweEJBLDB4MDAsMHgwMCwweEIwLDB4MDAsMHhFRSwweEVCLDB4MkQsMHhCMCwweDFGLAotMHhCQSwweDAwLDB4MDAsMHhFRSwweEVCLDB4MDAsMHgyQSwweEMwLDB4QkEsMHgwMiwweDAwLDB4RUUsMHhFQiwweDAwLDB4QjAsMHgwMywKLTB4RUUsMHhFQiwweDAwLDB4RDEsMHhFNiwweDhBLDB4ODQsMHg1RCwweDEyLDB4RDEsMHhFRSwweEY2LDB4RDAsMHhCQSwweDAyLDB4MDAsCi0weEVFLDB4RUIsMHgwMCwweEJBLDB4MDAsMHgwMCwweEIwLDB4MEEsMHhFRSwweEVCLDB4MDAsMHhFNCwweDA0LDB4RUIsMHgwMCwweEU0LAotMHgwNCwweDQ2LDB4RTIsMHg5MCwweEMzLDB4OTAsMHhCOCwweDE0LDB4MDAsMHhCQSwweDNFLDB4RkYsMHhFRiwweEI4LDB4MDYsMHgwMCwKLTB4QkEsMHgzMiwweEZGLDB4RUYsMHhCOCwweDBGLDB4MDAsMHhCQSwweDM0LDB4RkYsMHhFRiwweEJBLDB4MzYsMHhGRiwweEVGLDB4ODMsCi0weDNFLDB4NDQsMHgxMiwweDAwLDB4NzUsMHgxNiwweEI4LDB4MTEsMHgwMCwweEJBLDB4MzgsMHhGRiwweEVGLDB4QjgsMHgxMiwweDAwLAotMHhCQSwweDNBLDB4RkYsMHhFRiwweEI4LDB4MUIsMHgwMCwweEJBLDB4M0MsMHhGRiwweEVGLDB4QzMsMHhCOCwweDExLDB4MDAsMHhCQSwKLTB4MzgsMHhGRiwweEVGLDB4QjgsMHgxMiwweDAwLDB4QkEsMHgzQSwweEZGLDB4RUYsMHhCOCwweDFCLDB4MDAsMHhCQSwweDNDLDB4RkYsCi0weEVGLDB4QzMsMHhCOCwweEZDLDB4MDAsMHhCQSwweDI4LDB4RkYsMHhFRiwweEZCLDB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc0LAotMHgwNywweEI4LDB4Q0MsMHgwMCwweEJBLDB4MjgsMHhGRiwweEVGLDB4QzMsMHgwMCwweEZGLDB4RkYsMHgyMCwweDI0LDB4MjgsMHhGRiwKLTB4MkMsMHhGRiwweEZGLDB4MzAsMHgzNCwweDM4LDB4RkYsMHhGRiwweDNDLDB4OTAsMHgzQywweDBGLDB4NzcsMHgwRSwweEJCLDB4MTksCi0weDBFLDB4MkUsMHhENywweDNDLDB4RkYsMHg3NCwweDA1LDB4OEEsMHhEOCwweEY4LDB4QzMsMHg5MCwweDJBLDB4REIsMHhGOSwweEMzLAotMHg4MywweDNFLDB4NDQsMHgxMiwweDAwLDB4NzQsMHgyNywweEEwLDB4MDYsMHgwMSwweDgwLDB4MjYsMHgwNiwweDAxLDB4MzAsMHg4MCwKLTB4M0UsMHgwNiwweDAxLDB4MzAsMHg3NSwweDE4LDB4QjksMHgwMiwweDAwLDB4QkYsMHhDNCwweDEzLDB4QkEsMHgwNiwweDAxLDB4RUMsCi0weEE4LDB4MjAsMHg3NSwweEY4LDB4QkEsMHgwNCwweDAxLDB4RUQsMHhBQiwweEUyLDB4RjEsMHhFQiwweDE2LDB4OTAsMHhCOSwweDA0LAotMHgwMCwweEJGLDB4QzQsMHgxMywweEJBLDB4MDYsMHgwMSwweEVDLDB4QTgsMHgyMCwweDc1LDB4RjgsMHhCQSwweDA0LDB4MDEsMHhFQywKLTB4QUEsMHhFMiwweEYxLDB4RkEsMHg5MCwweEJFLDB4QzQsMHgxMywweEFELDB4ODAsMHhFNCwweDNGLDB4ODAsMHhGQywweDAyLDB4NzQsCi0weDBFLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgwQSwweDlDLDB4MEUsMHhFOCwweDNFLDB4MDQsMHg5MCwweEFELAotMHgzQywweDBGLDB4NzUsMHhFRCwweDhBLDB4QzQsMHhFOCwweDgxLDB4RkYsMHg3MiwweEU2LDB4ODgsMHgxRSwweDFBLDB4MDEsMHhDNiwKLTB4MDYsMHg4RSwweDEyLDB4MDAsMHhCMCwweDAwLDB4MEEsMHgwNiwweDFBLDB4MDEsMHhCQSwweDAwLDB4MDEsMHhFRSwweEM2LDB4MDYsCi0weDhGLDB4MTIsMHg0MCwweDgzLDB4M0UsMHg0NCwweDEyLDB4MDAsMHg3NSwweDA2LDB4QjgsMHgwQywweDAwLDB4RUIsMHgwNCwweDkwLAotMHhCOCwweDRDLDB4MDAsMHhCQSwweDI4LDB4RkYsMHhFRiwweEMzLDB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc1LDB4MDEsMHhDMywKLTB4QTEsMHg1MCwweDEyLDB4MEIsMHgwNiwweDUyLDB4MTIsMHgwQSwweEM0LDB4QTgsMHgwOCwweDc0LDB4RjIsMHhBMCwweDBGLDB4MDEsCi0weDJBLDB4RTQsMHg1MCwweEZGLDB4MzYsMHhCQSwweDEzLDB4MUYsMHhFOCwweDUwLDB4NTYsMHg4MywweEM0LDB4MDIsMHg2QSwweDAwLAotMHgxRiwweDMzLDB4QzAsMHhBMywweEJDLDB4MTMsMHhBMCwweDBGLDB4MDEsMHhBMywweEJFLDB4MTMsMHg4QiwweDFFLDB4QkMsMHgxMywKLTB4OEEsMHg4NywweDUwLDB4MTIsMHhGNiwweDg3LDB4NTAsMHgxMiwweDA4LDB4NzQsMHgwRCwweDI0LDB4MDcsMHg4QSwweEUwLDB4QkUsCi0weENDLDB4MDAsMHhBMCwweEJDLDB4MTMsMHhFOCwweDk0LDB4M0QsMHhGRiwweDA2LDB4QkMsMHgxMywweEZGLDB4MEUsMHhCRSwweDEzLAotMHg3NSwweERBLDB4QzMsMHg5MCwweDFFLDB4MzMsMHhDMCwweDhFLDB4RDgsMHhCMCwweDAxLDB4RTgsMHg1NCwweDNELDB4MUYsMHhDMywKLTB4MzMsMHhDOSwweDhCLDB4RjEsMHg4QSwweDBFLDB4OTQsMHgxMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhDNywweDQ2LDB4NjIsCi0weDM4LDB4NDQsMHhDNywweDQ2LDB4N0MsMHhGQywweDNCLDB4QzcsMHg0NiwweDdFLDB4RTIsMHgzQiwweEM3LDB4ODYsMHg4MCwweDAwLAotMHhFQywweDNDLDB4RTgsMHhBQiwweDE2LDB4QzYsMHg4NiwweEMwLDB4MDAsMHgxMSwweDgzLDB4N0UsMHgwOCwweDAwLDB4NzQsMHgwNywKLTB4NTEsMHg1NiwweEU4LDB4MzMsMHgzMywweDVFLDB4NTksMHg0NiwweDQ2LDB4RTIsMHhDRCwweEMzLDB4MzMsMHhDOSwweDhCLDB4RjEsCi0weDhCLDB4RjksMHg4QSwweDBFLDB4OTQsMHgxMiwweEMxLDB4RTksMHgwMiwweEUzLDB4MTMsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLAotMHg4QSwweDg2LDB4OUUsMHgwMCwweDg4LDB4ODUsMHg2QywweDEyLDB4ODMsMHhDNiwweDA4LDB4NDcsMHhFMiwweEVELDB4QzMsMHhGQSwKLTB4RkMsMHhCMCwweEMwLDB4QkEsMHgwMCwweDAxLDB4RUUsMHgzMywweEMwLDB4OEUsMHhEOCwweDhFLDB4QzAsMHg4RSwweEQwLDB4QkYsCi0weDE2LDB4MDEsMHhCOSwweENDLDB4NzcsMHgyQiwweENGLDB4RDEsMHhFOSwweEYzLDB4QUIsMHhCQywweDQwLDB4MTIsMHhFOCwweEQ5LAotMHgwMiwweEU4LDB4NzAsMHgzQywweEJFLDB4Q0MsMHgwRiwweEU4LDB4RjIsMHgzQywweEY0LDB4OTAsMHgzMywweEMwLDB4OEUsMHhEOCwKLTB4OEUsMHhDMCwweDhFLDB4RDAsMHhGNiwweDA2LDB4MEEsMHgwMSwweDgwLDB4NzQsMHgwQiwweEJFLDB4MzUsMHg1NSwweEU4LDB4REIsCi0weDNDLDB4QjAsMHgwMSwweEU4LDB4QUMsMHgzQywweEU4LDB4QjMsMHgwMCwweEU4LDB4RjYsMHhGNSwweEU4LDB4MDgsMHhGOCwweEU4LAotMHgwRiwweEY5LDB4RTgsMHg4NSwweEZBLDB4RTgsMHhCNiwweEZBLDB4RTgsMHhFRiwweEZDLDB4RTgsMHhDMiwweDEwLDB4RTgsMHgwMywKLTB4M0MsMHhFOCwweEIyLDB4RkQsMHhFOCwweDMwLDB4RkQsMHhFOCwweDU0LDB4MDIsMHhDNiwweDA2LDB4OEYsMHgxMiwweEMwLDB4RTgsCi0weEJCLDB4RkEsMHhFOCwweEVCLDB4RkEsMHhFOCwweEU5LDB4RkIsMHhFOCwweEFGLDB4RkMsMHhFOCwweDhELDB4RkMsMHhFOCwweDFGLAotMHhGRiwweEU4LDB4NTgsMHhGRiwweEU4LDB4REIsMHhGRCwweEU4LDB4MTYsMHhGRSwweDMzLDB4QzAsMHhCRSwweDVBLDB4MDUsMHhFOCwKLTB4OEEsMHgzQywweEU4LDB4QTMsMHhGRSwweEU4LDB4RTAsMHhGQywweEZCLDB4QkUsMHhBNCwweDQ0LDB4RTgsMHg3RCwweDNDLDB4RTksCi0weENBLDB4MkQsMHg1NiwweDk4LDB4OEIsMHhGMCwweDhCLDB4NDIsMHg1MiwweDg1LDB4QzAsMHg3NSwweDI3LDB4QzcsMHg0MiwweDUyLAotMHgwMSwweDAwLDB4NTMsMHgzNiwweDhCLDB4OUMsMHgyQywweDAxLDB4RjYsMHhDMywweDAxLDB4NzUsMHgwQywweDM2LDB4ODksMHg2OCwKLTB4NTIsMHgzNiwweDg5LDB4QUMsMHgyQywweDAxLDB4NUIsMHg1RSwweEMzLDB4MzYsMHg4OSwweEFDLDB4MkMsMHgwMSwweDM2LDB4ODksCi0weEFDLDB4MUMsMHgwMSwweDVCLDB4NUUsMHhDMywweDU2LDB4OTgsMHg4QiwweEYwLDB4MzMsMHhFRCwweDM2LDB4OEIsMHg4NCwweDFDLAotMHgwMSwweEE4LDB4MDEsMHg3NSwweDE1LDB4OEIsMHhFOCwweDMzLDB4QzAsMHg4NywweDQyLDB4NTIsMHgzNiwweDg5LDB4ODQsMHgxQywKLTB4MDEsMHhBOCwweDAxLDB4NzQsMHgwNSwweDM2LDB4ODksMHg4NCwweDJDLDB4MDEsMHg1RSwweEMzLDB4NTYsMHg1MSwweDMzLDB4RjYsCi0weEI4LDB4MDEsMHgwMCwweEI5LDB4MDgsMHgwMCwweDg5LDB4ODQsMHgxQywweDAxLDB4ODksMHg4NCwweDJDLDB4MDEsMHg0NiwweDQ2LAotMHhFMiwweEY0LDB4NTksMHg1RSwweEMzLDB4OTAsMHhCQiwweDAxLDB4MDAsMHg4QiwweEU4LDB4RkYsMHg0RSwweDZFLDB4NzQsMHgwQSwKLTB4OEIsMHhERCwweDhCLDB4NDYsMHg1OCwweEE4LDB4MDEsMHg3NCwweEYwLDB4QzMsMHg4QiwweDQ2LDB4NDgsMHhBOSwweDA4LDB4MDAsCi0weDc0LDB4NDUsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzQsMHgyNywweEU4LDB4NUMsMHgxMCwweDgwLDB4QzIsMHgwNiwweDhBLAotMHg4NiwweEE4LDB4MDAsMHgyNCwweEJGLDB4ODgsMHg4NiwweEE4LDB4MDAsMHhFRSwweDYwLDB4QjAsMHhGRSwweEU4LDB4ODYsMHgzMiwKLTB4NjEsMHhCMCwweDAyLDB4RTgsMHg0QywweEZGLDB4OEIsMHg0NiwweDQ4LDB4MjQsMHhGNywweDg5LDB4NDYsMHg0OCwweEVCLDB4MTcsCi0weEU4LDB4MkEsMHgxMCwweDgxLDB4NEUsMHgyNiwweDAwLDB4NDAsMHg4QSwweDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHg4OCwweDg2LAotMHhBNSwweDAwLDB4RTYsMHgwQywweDhCLDB4NDYsMHg0OCwweEE5LDB4MDQsMHgwMCwweDc0LDB4MTQsMHhCMCwweDAyLDB4RTgsMHgyMSwKLTB4RkYsMHg4QiwweDQ2LDB4NDgsMHgyNCwweEZCLDB4ODksMHg0NiwweDQ4LDB4NjAsMHhCMCwweERGLDB4RTgsMHg0NywweDMyLDB4NjEsCi0weDMzLDB4QzAsMHg4NywweDQ2LDB4NTgsMHhGNiwweEMzLDB4MDEsMHg3NSwweDBCLDB4MzYsMHg4OSwweDQ3LDB4NTgsMHhBOCwweDAxLAotMHg3NSwweDBELDB4RTksMHg3NCwweEZGLDB4QTMsMHgyMiwweDAxLDB4QTgsMHgwMSwweDc1LDB4MDMsMHhFOSwweDZBLDB4RkYsMHg4OSwKLTB4MUUsMHgzMiwweDAxLDB4QzMsMHhCQiwweDAxLDB4MDAsMHg4QiwweEU4LDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwweDc0LDB4MTUsCi0weEU4LDB4RDUsMHgwRiwweDgwLDB4QzIsMHgwQSwweEVDLDB4QTgsMHg0MCwweDc1LDB4MEEsMHg4QiwweERELDB4OEIsMHg0NiwweDU2LAotMHhBOCwweDAxLDB4NzQsMHhFMywweEMzLDB4OEIsMHg0NiwweDI2LDB4ODAsMHhFNCwweEZFLDB4ODAsMHhDQywweDAyLDB4ODksMHg0NiwKLTB4MjYsMHhCMCwweDAyLDB4RTgsMHhCQywweEZFLDB4MzMsMHhDMCwweDg3LDB4NDYsMHg1NiwweEY2LDB4QzMsMHgwMSwweDc1LDB4MEEsCi0weDM2LDB4ODksMHg0NywweDU2LDB4QTgsMHgwMSwweDc1LDB4MEIsMHhFQiwweEJELDB4QTMsMHgyMCwweDAxLDB4QTgsMHgwMSwweDc1LAotMHgwMiwweEVCLDB4QjQsMHg4OSwweDFFLDB4MzAsMHgwMSwweEMzLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMCwKLTB4OTAsMHgxMiwweDg0LDB4QzAsMHg3NSwweDQ5LDB4QTEsMHgyMiwweDAxLDB4QTgsMHgwMSwweDc1LDB4MDMsMHhFOCwweEY2LDB4RkUsCi0weEExLDB4MjAsMHgwMSwweEE4LDB4MDEsMHg3NSwweDAzLDB4RTgsMHg4QSwweEZGLDB4QTEsMHhBQywweDEzLDB4NDgsMHg3OCwweDA1LAotMHg3NCwweDQ1LDB4QTMsMHhBQywweDEzLDB4QTEsMHhBRSwweDEzLDB4NDgsMHg3OCwweDA1LDB4NzQsMHg1MSwweEEzLDB4QUUsMHgxMywKLTB4QTEsMHhCMCwweDEzLDB4NDgsMHg3OCwweDA1LDB4NzQsMHg2MywweEEzLDB4QjAsMHgxMywweEExLDB4N0UsMHgxMiwweDQwLDB4NzgsCi0weDAzLDB4QTMsMHg3RSwweDEyLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHgwNywweDFGLDB4NjEsMHhDRiwweEEwLAotMHg5MSwweDEyLDB4NDAsMHgzQywweDAyLDB4NzIsMHgwQiwweDMzLDB4QzAsMHhBMiwweDkxLDB4MTIsMHhGRiwweDE2LDB4N0MsMHgxMiwKLTB4RUIsMHhBNCwweEEyLDB4OTEsMHgxMiwweEVCLDB4OUYsMHhBMCwweDhFLDB4MTIsMHgzMiwweDA2LDB4OEYsMHgxMiwweEEyLDB4OEUsCi0weDEyLDB4MEEsMHgwNiwweDFBLDB4MDEsMHhCQSwweDAwLDB4MDEsMHhFRSwweEI4LDB4MkMsMHgwMSwweEVCLDB4QTQsMHg4MywweDNFLAotMHg4NCwweDEyLDB4MTAsMHg3MiwweDExLDB4QkEsMHgyOCwweEZGLDB4RUQsMHgwQywweDgxLDB4RUYsMHhFOCwweDUzLDB4MzcsMHhCQSwKLTB4MjgsMHhGRiwweEVELDB4MjQsMHg3RSwweEVGLDB4QjgsMHgwNCwweDAwLDB4RUIsMHg5MiwweEM2LDB4MDYsMHg4RCwweDEyLDB4MDEsCi0weEU4LDB4M0YsMHgzNywweEM2LDB4MDYsMHg4RCwweDEyLDB4MDAsMHhBMSwweEIyLDB4MTMsMHhFQiwweDhCLDB4OTAsMHg4QSwweDFFLAotMHgwQiwweDAxLDB4MkEsMHhGRiwweDZCLDB4QzMsMHgxOSwweEJBLDB4NjIsMHhGRiwweEVGLDB4QjgsMHgwQSwweDAwLDB4QkEsMHg2MCwKLTB4RkYsMHhFRiwweEI4LDB4MDEsMHhFMCwweEJBLDB4NjYsMHhGRiwweEVGLDB4QjgsMHhGRiwweEZGLDB4QkEsMHg1MiwweEZGLDB4RUYsCi0weEI4LDB4MDksMHhDMCwweEJBLDB4NTYsMHhGRiwweEVGLDB4QzcsMHgwNiwweEFDLDB4MTMsMHgyQywweDAxLDB4QzcsMHgwNiwweEFFLAotMHgxMywweDA0LDB4MDAsMHhDNiwweDA2LDB4OTEsMHgxMiwweDAwLDB4QzMsMHg5MCwweDhBLDB4MUUsMHgwQiwweDAxLDB4MkEsMHhGRiwKLTB4NkIsMHhDMywweDA1LDB4RDEsMHhFOCwweEEzLDB4MTgsMHgwMSwweEMzLDB4OTAsMHg1MiwweEJBLDB4NTAsMHhGRiwweEVELDB4NUEsCi0weEMzLDB4OTAsMHg1MywweDUxLDB4OEIsMHgxRSwweDE4LDB4MDEsMHhCOSwweDMyLDB4MDUsMHg5MCwweEUyLDB4RkUsMHg0QiwweDc1LAotMHhGNywweDU5LDB4NUIsMHhDMywweEIwLDB4ODAsMHhCQSwweDAwLDB4MDEsMHgwQSwweDA2LDB4MUEsMHgwMSwweEVFLDB4QzMsMHg5MCwKLTB4QjAsMHg0MCwweEVCLDB4RjIsMHhCMCwweEMwLDB4RUIsMHhFRSwweEIwLDB4MDAsMHhFQiwweEVBLDB4RkEsMHg2MCwweDA2LDB4MUUsCi0weDE2LDB4MkIsMHhEQiwweDhFLDB4REIsMHgyRSwweEExLDB4QkEsMHg0QywweDJFLDB4QTMsMHg5MiwweDRDLDB4QTAsMHg5MywweDEyLAotMHg5OCwweDhCLDB4RTgsMHg4OSwweDI2LDB4MkQsMHg3QSwweDgwLDB4M0UsMHhDQSwweDEzLDB4MDAsMHg3NCwweDAzLDB4RTksMHg2QiwKLTB4NDIsMHhFOCwweEMwLDB4RkYsMHhFOCwweEFCLDB4RkYsMHhFOCwweEE4LDB4RkYsMHhCMCwweDIwLDB4QzYsMHgwNiwweDkwLDB4MTIsCi0weDAwLDB4RkYsMHgxNiwweDdDLDB4MTIsMHg4QiwweEZELDB4ODMsMHhGRiwweDBBLDB4NzIsMHgxMSwweEU4LDB4QjksMHhGRiwweEU4LAotMHg5MCwweEZGLDB4RTgsMHhBQiwweEZGLDB4RTgsMHg4QSwweEZGLDB4ODMsMHhFRiwweDBBLDB4RUIsMHhFQSwweDBCLDB4RkYsMHg3NCwKLTB4MEYsMHhFOCwweEE0LDB4RkYsMHhFOCwweDdCLDB4RkYsMHhFOCwweDlBLDB4RkYsMHhFOCwweDc1LDB4RkYsMHg0RiwweDc1LDB4RjEsCi0weEU4LDB4OTUsMHhGRiwweEU4LDB4NkMsMHhGRiwweEVCLDB4QjksMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkQsMHhFRSwweDg4LAotMHg4NiwweEE1LDB4MDAsMHhDMywweDhBLDB4ODYsMHhBNiwweDAwLDB4MEMsMHgwMiwweEVFLDB4QzMsMHg4QiwweDc2LDB4MzgsMHhGNywKLTB4QzYsMHgwMSwweDAwLDB4NzQsMHhFRiwweDhCLDB4NEUsMHgzNiwweDhCLDB4NDYsMHgyRSwweDNCLDB4QzEsMHg3MywweDAyLDB4OEIsCi0weEM4LDB4MkIsMHhDMSwweDg5LDB4NDYsMHgyRSwweDAxLDB4NEUsMHgzNCwweEM0LDB4N0UsMHgwNCwweDI2LDB4MDEsMHgwRCwweDhCLAotMHg3RSwweDJDLDB4ODMsMHhFQSwweDA0LDB4RjMsMHg2QywweDhFLDB4QzEsMHg4OSwweDdFLDB4MkMsMHgzQiwweDQ2LDB4M0MsMHg3MiwKLTB4MTIsMHhGNywweEM2LDB4MjAsMHgwMCwweDc1LDB4MEIsMHg4MywweENFLDB4MjAsMHg4OSwweDc2LDB4MzgsMHhCMCwweDAwLDB4RTgsCi0weEEwLDB4RkMsMHhDMywweEY3LDB4QzYsMHgwNCwweDAwLDB4NzQsMHgxQiwweDhCLDB4RDgsMHg4MywweENFLDB4MTAsMHg4OSwweDc2LAotMHgzOCwweDhBLDB4ODYsMHhBNywweDAwLDB4MjQsMHhGRSwweDg4LDB4ODYsMHhBNywweDAwLDB4ODMsMHhDMiwweDA4LDB4RUUsMHg4MywKLTB4RUEsMHgwOCwweDhCLDB4QzMsMHgzRCwweDQwLDB4MDAsMHg3MiwweDAxLDB4QzMsMHg4MSwweDRFLDB4MzgsMHgwMCwweDA0LDB4ODMsCi0weEMyLDB4MDIsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkEsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVFLDB4QzMsMHg4QSwweDg2LAotMHhBNiwweDAwLDB4MEMsMHgwMiwweEVFLDB4QzMsMHhGNywweDQ2LDB4MzgsMHgwMSwweDAwLDB4NzQsMHhGMSwweDhCLDB4NEUsMHgyRSwKLTB4MzIsMHhEQiwweDhBLDB4QkUsMHhBMywweDAwLDB4ODMsMHhDMiwweDA2LDB4QzQsMHg3NiwweDA0LDB4OEIsMHg3RSwweDJDLDB4ODMsCi0weEY5LDB4MDgsMHg3MiwweDJDLDB4RUMsMHhBOCwweDAxLDB4NzQsMHgxNiwweDhBLDB4RTAsMHg4MywweEVBLDB4MEEsMHhFQywweDgzLAotMHhDMiwweDBBLDB4ODQsMHhFNywweDc1LDB4NTEsMHhBQSwweEZFLDB4QzMsMHg0OSwweDgzLDB4RjksMHgwOCwweDczLDB4RTUsMHgzMiwKLTB4RkYsMHgyNiwweDAxLDB4MUMsMHgwMSwweDVFLDB4MzQsMHg4OSwweDc2LDB4MDQsMHg4OSwweDRFLDB4MkUsMHg4OSwweDdFLDB4MkMsCi0weDNCLDB4NEUsMHgzQywweDcyLDB4MTEsMHhGNiwweDQ2LDB4MzgsMHgyMCwweDc0LDB4MDEsMHhDMywweDgzLDB4NEUsMHgzOCwweDIwLAotMHhCMCwweDAwLDB4RTgsMHhGRCwweEZCLDB4QzMsMHhGNiwweDQ2LDB4MzgsMHgwNCwweDc0LDB4MTUsMHg4MywweDRFLDB4MzgsMHgxMCwKLTB4OEEsMHg4NiwweEE3LDB4MDAsMHgyNCwweEZFLDB4ODgsMHg4NiwweEE3LDB4MDAsMHg4MywweEVBLDB4MDIsMHhFRSwweDgzLDB4QzIsCi0weDAyLDB4M0QsMHg0MCwweDAwLDB4NzIsMHg1RCwweEMzLDB4MzIsMHhGRiwweDI2LDB4MDMsMHgxQywweDg1LDB4REIsMHg3NCwweDA5LAotMHgyNiwweDg5LDB4MUMsMHg4QiwweEY3LDB4NDcsMHg0NywweDQ5LDB4NDksMHg4MCwweEU0LDB4MUUsMHg4MCwweENDLDB4QzAsMHgyNiwKLTB4ODksMHgwNCwweEY2LDB4QzQsMHgxMCwweDc0LDB4MjcsMHg4QiwweDc2LDB4MzgsMHhGNywweEM2LDB4MDAsMHgxMCwweDc0LDB4MEIsCi0weDUwLDB4RkUsMHg4NiwweEIyLDB4MDAsMHhCMCwweDBBLDB4RTgsMHhBOCwweEZCLDB4NTgsMHhGNywweEM2LDB4MDAsMHgwMSwweDc0LAotMHgwRCwweEU4LDB4ODIsMHgyNiwweDhCLDB4NzYsMHgzOCwweDhCLDB4NEUsMHgyRSwweDhCLDB4N0UsMHgwNCwweEFCLDB4OEIsMHhGNywKLTB4MzMsMHhDMCwweEFCLDB4MzIsMHhEQiwweDhBLDB4QkUsMHhBMywweDAwLDB4NDksMHg0OSwweDgzLDB4RjksMHgwOCwweDcyLDB4MTcsCi0weEU5LDB4NDEsMHhGRiwweDgxLDB4NEUsMHgzOCwweDAwLDB4MDQsMHg4MywweEMyLDB4RjgsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LAotMHhGQSwweDg4LDB4ODYsMHhBNSwweDAwLDB4RUUsMHhDMywweEU5LDB4NDUsMHhGRiwweDgzLDB4QzIsMHgwOCwweEVDLDB4ODgsMHg4NiwKLTB4QUEsMHgwMCwweEMwLDB4RTgsMHgwNCwweDhBLDB4RTAsMHg4QSwweEM4LDB4ODYsMHg4NiwweEE5LDB4MDAsMHgzMiwweEUwLDB4OEIsCi0weDVFLDB4M0UsMHg4NCwweEUzLDB4NzQsMHg0RiwweDhBLDB4QzEsMHg4QiwweDRFLDB4MjYsMHhGNiwweEM1LDB4MDQsMHg3NCwweDBDLAotMHhBOCwweDA4LDB4NzQsMHgwNSwweDgwLDB4RTEsMHhCRiwweEVCLDB4MDMsMHg4MCwweEM5LDB4NDAsMHhGNiwweEM1LDB4MDgsMHg3NCwKLTB4MEMsMHhBOCwweDAyLDB4NzQsMHgwNSwweDgwLDB4RTEsMHg3RiwweEVCLDB4MDMsMHg4MCwweEM5LDB4ODAsMHg4OCwweDRFLDB4MjYsCi0weDhCLDB4RjAsMHg4QSwweDg2LDB4QTUsMHgwMCwweDg0LDB4QzksMHg3NCwweDA4LDB4QTgsMHgwMiwweDc0LDB4MTUsMHgyNCwweEZELAotMHhFQiwweDA2LDB4QTgsMHgwMiwweDc1LDB4MEQsMHgwQywweDAyLDB4ODgsMHg4NiwweEE1LDB4MDAsMHg4MywweEVBLDB4MEEsMHhFRSwKLTB4ODMsMHhDMiwweDBBLDB4OEIsMHhDNiwweDg0LDB4RTcsMHg3NSwweDAxLDB4QzMsMHhDNiwweDg2LDB4QkEsMHgwMCwweDAxLDB4QjAsCi0weDBFLDB4RTgsMHhFRSwweEZBLDB4RjcsMHg0NiwweDM4LDB4MDAsMHgwMiwweDc0LDB4RUUsMHg4MywweDdFLDB4MkUsMHgwNiwweDcyLAotMHhFOCwweDhBLDB4QTYsMHhBQSwweDAwLDB4QzQsMHg1RSwweDA0LDB4OEIsMHg3RSwweDJDLDB4QjAsMHhGRiwweEFBLDB4QjAsMHgwMiwKLTB4QUIsMHgyNiwweDgzLDB4MDcsMHgwMywweDgzLDB4NkUsMHgyRSwweDAzLDB4ODksMHg3RSwweDJDLDB4RjYsMHg0NiwweDM4LDB4MjAsCi0weDc0LDB4MDEsMHhDMywweDgzLDB4NEUsMHgzOCwweDIwLDB4QjAsMHgwMCwweEU4LDB4QjYsMHhGQSwweEMzLDB4OTAsMHg4MywweEVBLAotMHgwOCwweEU5LDB4QjQsMHhGRCwweDgzLDB4QzIsMHgwNiwweDhCLDB4NUUsMHgyNiwweEY2LDB4QzMsMHhDMCwweDc1LDB4RUYsMHg4QiwKLTB4NEUsMHgxQywweEVDLDB4ODgsMHg4NiwweEE0LDB4MDAsMHg4MywweEVBLDB4MEEsMHhBOCwweDIwLDB4NzUsMHgwMiwweDhBLDB4Q0QsCi0weDMyLDB4RUQsMHg4QiwweDQ2LDB4MUEsMHgzQiwweEM4LDB4NzMsMHgxOCwweDAxLDB4NEUsMHgyQSwweDJCLDB4QzEsMHg4OSwweDQ2LAotMHgxQSwweEM1LDB4NzYsMHgwMCwweEYzLDB4NkUsMHg4RSwweEQ5LDB4ODksMHg3NiwweDAwLDB4M0QsMHgyMCwweDAwLDB4NzIsMHgzMCwKLTB4QzMsMHg4NSwweEMwLDB4NzQsMHgzMSwweDhCLDB4QzgsMHgwMSwweDQ2LDB4MkEsMHhDNSwweDc2LDB4MDAsMHhGMywweDZFLDB4OEUsCi0weEQ5LDB4ODAsMHhDQiwweDAyLDB4ODksMHg1RSwweDI2LDB4RTgsMHgzMiwweEYxLDB4RjYsMHhDNywweDAxLDB4NzUsMHgxNiwweDgzLAotMHhDMiwweDAyLDB4RTgsMHg1MywweEZELDB4RjYsMHhDNywweDEwLDB4NzUsMHgwQiwweEIwLDB4MDIsMHhFOCwweDQzLDB4RkEsMHhDMywKLTB4RjYsMHhDNywweDAxLDB4NzQsMHhGMCwweEMzLDB4ODAsMHhDQiwweDAyLDB4ODksMHg1RSwweDI2LDB4RjYsMHhDNywweDAxLDB4NzQsCi0weERFLDB4ODMsMHhDMiwweDAyLDB4RTgsMHgzMSwweEZELDB4RjYsMHg4NiwweEE0LDB4MDAsMHg0MCwweDc0LDB4MEIsMHg4MCwweEU3LAotMHhGRSwweDgwLDB4Q0YsMHgwMiwweDg5LDB4NUUsMHgyNiwweEVCLDB4Q0MsMHhCMCwweDA0LDB4RTgsMHgxNCwweEZBLDB4QzMsMHhDMCwKLTB4QzIsMHhDOCwweENBLDB4QzQsMHhDNiwweENDLDB4Q0UsMHhEMCwweEQyLDB4RDgsMHhEQSwweEQ0LDB4RDYsMHhEQywweERFLDB4OTAsCi0weEU5LDB4MEUsMHgwMSwweEU0LDB4QzQsMHg4QSwweEUwLDB4RTQsMHhDNCwweDhCLDB4RDAsMHg4MywweEY5LDB4MDgsMHg3MiwweEYwLAotMHgyNiwweDgzLDB4M0YsMHgwMCwweDc0LDB4MDQsMHg4QiwweERGLDB4NDksMHg0OSwweDhCLDB4RkIsMHg4QSwweERFLDB4ODMsMHhFMywKLTB4MEYsMHgyRSwweDhBLDB4QTcsMHgyRiwweDE2LDB4QUIsMHhGNiwweEM0LDB4MTAsMHg3NCwweDI0LDB4RjcsMHhDNiwweDAwLDB4MTAsCi0weDc0LDB4MEIsMHg1MCwweEZFLDB4ODYsMHhCMiwweDAwLDB4QjAsMHgwQSwweEU4LDB4QzYsMHhGOSwweDU4LDB4RjcsMHhDNiwweDAwLAotMHgwMSwweDc0LDB4MEQsMHhFOCwweEEwLDB4MjQsMHg4QiwweDc2LDB4MzgsMHg4QiwweDRFLDB4MkUsMHg4QiwweDdFLDB4MDQsMHhBQiwKLTB4ODksMHg3RSwweDA0LDB4MzMsMHhDMCwweEFCLDB4NDksMHg0OSwweDg5LDB4NEUsMHgyRSwweDg5LDB4N0UsMHgyQywweDhCLDB4QzEsCi0weEVCLDB4NEUsMHg5MCwweEVCLDB4OUUsMHg5MCwweEU0LDB4RDYsMHg4NCwweEMwLDB4NzksMHg2MywweEU2LDB4RDAsMHg4QSwweEM4LAotMHgyNSwweDAzLDB4MDAsMHgwMywweEQ4LDB4RDEsMHhFMywweDJFLDB4OEIsMHhBRiwweDQ0LDB4MDAsMHg4OCwweDhFLDB4QUUsMHgwMCwKLTB4OEIsMHg0RSwweDJFLDB4QzQsMHg1RSwweDA0LDB4OEIsMHg3RSwweDJDLDB4OEIsMHg3NiwweDM4LDB4RTQsMHg4NiwweDI0LDB4MDcsCi0weDNDLDB4MDMsMHg3NSwweENGLDB4RTQsMHgxQywweDkxLDB4M0IsMHhDMSwweDczLDB4MDIsMHg4QiwweEM4LDB4MkIsMHhDMSwweDg5LAotMHg0NiwweDJFLDB4MDEsMHg0RSwweDM0LDB4MjYsMHgwMSwweDBGLDB4QkEsMHhDNCwweDAwLDB4RjMsMHg2QywweDg5LDB4N0UsMHgyQywKLTB4M0IsMHg0NiwweDNDLDB4NzIsMHgxQywweEY3LDB4QzYsMHgyMCwweDAwLDB4NzUsMHgwQiwweDgzLDB4Q0UsMHgyMCwweDg5LDB4NzYsCi0weDM4LDB4QjAsMHgwMCwweEU4LDB4M0MsMHhGOSwweDhBLDB4ODYsMHhBRSwweDAwLDB4MjQsMHgzRiwweEU2LDB4RDYsMHhDMywweEY5LAotMHhDMywweEY3LDB4QzYsMHgwQSwweDAwLDB4NzQsMHgzNSwweEY3LDB4QzYsMHgxMCwweDAwLDB4NzUsMHgyRiwweDgzLDB4Q0UsMHgxMCwKLTB4ODksMHg3NiwweDM4LDB4RjcsMHhDNiwweDAyLDB4MDAsMHg3NCwweDBFLDB4NTAsMHhFNCwweEQ4LDB4MjQsMHhGRSwweEU2LDB4RDgsCi0weDU4LDB4RjcsMHhDNiwweDA4LDB4MDAsMHg3NCwweDE1LDB4NTAsMHg1MSwweEI5LDB4RTgsMHgwMywweEU0LDB4MEEsMHg4NCwweEMwLAotMHhFMCwweEZBLDB4ODQsMHhDMCwweDc1LDB4MDQsMHhCMCwweDI0LDB4RTYsMHgwQSwweDU5LDB4NTgsMHgzRCwweDQwLDB4MDAsMHg3MywKLTB4QjUsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RUYsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg4MSwweENFLDB4MTAsCi0weDA0LDB4ODksMHg3NiwweDM4LDB4RUIsMHhBMCwweDAwLDB4MDgsMHgwNCwweDBDLDB4MDEsMHgwOSwweDA1LDB4MEQsMHgwMiwweDBBLAotMHgwNiwweDBFLDB4MDMsMHgwQiwweDA3LDB4MEYsMHgwMCwweDQwLDB4ODAsMHhDMCwweDIwLDB4NjAsMHhBMCwweEUwLDB4MTAsMHg1MCwKLTB4OTAsMHhEMCwweDMwLDB4NzAsMHhCMCwweEYwLDB4RTQsMHhEMiwweEU2LDB4RDAsMHg4QSwweEM4LDB4MjUsMHgwMywweDAwLDB4MDMsCi0weEQ4LDB4RDEsMHhFMywweDJFLDB4OEIsMHhBRiwweDQ0LDB4MDAsMHg4OCwweDhFLDB4QUUsMHgwMCwweEU0LDB4RDgsMHhDMCwweEU4LAotMHgwNCwweDhCLDB4RDgsMHgyRSwweDhBLDB4ODcsMHg2NiwweDE3LDB4OEEsMHhFMCwweDhBLDB4QzgsMHg4NiwweDg2LDB4QTksMHgwMCwKLTB4MzIsMHhFMCwweEU0LDB4OTgsMHg4QiwweDVFLDB4M0UsMHg4NCwweEUzLDB4NzQsMHg1NCwweDhBLDB4QzEsMHg4QiwweDRFLDB4MjYsCi0weEY2LDB4QzUsMHgwNCwweDc0LDB4MEMsMHhBOCwweDA4LDB4NzQsMHgwNSwweDgwLDB4RTEsMHhCRiwweEVCLDB4MDMsMHg4MCwweEM5LAotMHg0MCwweEY2LDB4QzUsMHgwOCwweDc0LDB4MEMsMHhBOCwweDAyLDB4NzQsMHgwNSwweDgwLDB4RTEsMHg3RiwweEVCLDB4MDMsMHg4MCwKLTB4QzksMHg4MCwweDg4LDB4NEUsMHgyNiwweDhCLDB4RjAsMHg4QSwweDg2LDB4QTUsMHgwMCwweEY2LDB4QzEsMHhGRCwweDc0LDB4MDgsCi0weEE4LDB4MDYsMHg3NCwweDE5LDB4MjQsMHhGOSwweEVCLDB4MEYsMHhBOCwweDA2LDB4NzUsMHgxMSwweEY2LDB4QzUsMHgwMSwweDc1LAotMHgwNCwweDBDLDB4MDQsMHhFQiwweDAyLDB4MEMsMHgwMiwweDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweDhCLDB4QzYsMHg4NCwKLTB4RTcsMHg3NSwweDA5LDB4OEEsMHg4NiwweEFFLDB4MDAsMHgyNCwweDNGLDB4RTYsMHhEMiwweEMzLDB4QzYsMHg4NiwweEJBLDB4MDAsCi0weDAxLDB4QjAsMHgwRSwweEU4LDB4MUMsMHhGOCwweEY3LDB4NDYsMHgzOCwweDAwLDB4MDIsMHg3NCwweEU2LDB4ODMsMHg3RSwweDJFLAotMHgwNiwweDcyLDB4RTAsMHg4QSwweDg2LDB4QTksMHgwMCwweDhBLDB4RTAsMHg4NiwweDg2LDB4QUEsMHgwMCwweDhBLDB4QzgsMHgzMiwKLTB4QzQsMHg4MCwweEM5LDB4MEIsMHgyMiwweEMxLDB4QzAsMHhFNCwweDA0LDB4MEEsMHhFMCwweEM0LDB4NUUsMHgwNCwweDhCLDB4N0UsCi0weDJDLDB4QjAsMHhGRiwweEFBLDB4QjAsMHgwMiwweEFCLDB4MjYsMHg4MywweDA3LDB4MDMsMHg4MywweDZFLDB4MkUsMHgwMywweDg5LAotMHg3RSwweDJDLDB4RjYsMHg0NiwweDM4LDB4MjAsMHg3NSwweEFCLDB4ODMsMHg0RSwweDM4LDB4MjAsMHhCMCwweDAwLDB4RTgsMHhEMSwKLTB4RjcsMHhFQiwweEEwLDB4OTAsMHhFNCwweDEyLDB4MjQsMHhERiwweEU2LDB4MTIsMHg4MSwweEUzLDB4RkUsMHg5RiwweDg5LDB4NUUsCi0weDI2LDB4ODMsMHg2NiwweDQ4LDB4RjcsMHhFQiwweDczLDB4OTAsMHhGNiwweEM3LDB4MjAsMHg3NSwweEU3LDB4RTQsMHgxMiwweDBDLAotMHgyMCwweEU2LDB4MTIsMHgzMiwweEMwLDB4RTYsMHhDNiwweEIwLDB4ODMsMHhFNiwweEM2LDB4ODAsMHhDRiwweDIwLDB4ODksMHg1RSwKLTB4MjYsMHg4QSwweDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhFQiwweDc0LDB4OTAsCi0weEY2LDB4QzcsMHg0MCwweDc1LDB4RDMsMHhFNCwweDEyLDB4MEMsMHgyMCwweEU2LDB4MTIsMHgzMiwweEMwLDB4RTYsMHhDNiwweEIwLAotMHg4MSwweEU2LDB4QzYsMHg4MCwweEU3LDB4REYsMHg4MCwweENCLDB4MDEsMHg4OSwweDVFLDB4MjYsMHhCMCwweDA2LDB4RTgsMHg3MSwKLTB4RjcsMHg5MCwweDhBLDB4ODYsMHhBNSwweDAwLDB4MjQsMHhGOSwweEU2LDB4MEMsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVCLDB4NDMsCi0weEU0LDB4RDQsMHhFNiwweEQwLDB4OEIsMHhGOCwweDI1LDB4MDMsMHgwMCwweDAzLDB4RDgsMHhEMSwweEUzLDB4MkUsMHg4QiwweEFGLAotMHg0NCwweDAwLDB4OEIsMHg1RSwweDI2LDB4RjYsMHhDNywweDYwLDB4NzUsMHhCNiwweEY2LDB4QzMsMHhDMCwweDc1LDB4RDMsMHhCQSwKLTB4QzYsMHgwMCwweDhCLDB4NEUsMHgxQywweDhCLDB4NDYsMHgxQSwweDNCLDB4QzgsMHg3MywweDFFLDB4MDEsMHg0RSwweDJBLDB4MkIsCi0weEMxLDB4ODksMHg0NiwweDFBLDB4QzUsMHg3NiwweDAwLDB4RjMsMHg2RSwweDhFLDB4RDksMHg4OSwweDc2LDB4MDAsMHgzRCwweDIwLAotMHgwMCwweDcyLDB4M0QsMHg4QiwweEM3LDB4MjQsMHgzRiwweEU2LDB4RDQsMHhDMywweDg1LDB4QzAsMHg3NCwweDM5LDB4OEIsMHhDOCwKLTB4MDEsMHg0NiwweDJBLDB4QzUsMHg3NiwweDAwLDB4RjMsMHg2RSwweDhFLDB4RDksMHg4MywweENCLDB4MDIsMHg4OSwweDVFLDB4MjYsCi0weEU4LDB4RDksMHhFRCwweEY2LDB4QzcsMHgwMSwweDc1LDB4MzksMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RjksMHhFNiwweDBDLAotMHg4OCwweDg2LDB4QTUsMHgwMCwweEY2LDB4QzcsMHgxMCwweDc1LDB4Q0EsMHhCMCwweDAyLDB4RTgsMHhFNCwweEY2LDB4RUIsMHhDMywKLTB4RjYsMHhDNywweDAxLDB4NzQsMHhFRiwweEVCLDB4QkMsMHhGNiwweEM3LDB4MDEsMHg3NCwweERDLDB4OEEsMHg4NiwweEE1LDB4MDAsCi0weEE4LDB4MDIsMHg3NCwweDExLDB4ODEsMHhFMywweEZGLDB4RkUsMHg4MSwweENCLDB4MDAsMHgwMiwweDg5LDB4NUUsMHgyNiwweEVCLAotMHhDNywweDhBLDB4ODYsMHhBNSwweDAwLDB4MjQsMHhGQiwweDBDLDB4MDIsMHhFNiwweDBDLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFQiwKLTB4OTIsMHg5MCwweEZELDB4RjcsMHhERiwweDdGLDB4RkUsMHhGQiwweEVGLDB4QkYsMHgwMCwweDA0LDB4MDAsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwMSwweDA0LDB4MDAsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDAyLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDAxLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDcsMHgwNCwweDA3LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDcsMHgwNCwweDA3LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDAzLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDAxLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDIsMHgwNCwweDAwLDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDEsMHgwNCwweDAwLDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA3LDB4MDQsMHgwNywweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA3LDB4MDQsMHgwNywweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MzMsMHhEQiwweDhBLDB4RDgsMHg4QSwweDg3LAotMHg2QywweDEyLDB4RTYsMHhGRSwweEMxLDB4RTMsMHgwMiwweEU0LDB4Q0UsMHhBOCwweDA0LDB4NzUsMHgwOSwweEE4LDB4MDIsMHg3NCwKLTB4MDMsMHhFOSwweDJDLDB4RkUsMHhGOSwweEMzLDB4NTAsMHg1MywweEU4LDB4Q0IsMHhGQywweDVCLDB4NTgsMHhBOCwweDAyLDB4NzQsCi0weDAzLDB4RTksMHgxQywweEZFLDB4RjgsMHhDMywweDMzLDB4REIsMHg4QSwweEQ4LDB4OEEsMHg4NywweDZDLDB4MTIsMHhFNiwweEZFLAotMHhDMSwweEUzLDB4MDIsMHhFOSwweEQwLDB4RkIsMHg5QSwweDFBLDB4QzYsMHgxQSwweDAwLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MEEsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwQywweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDBBLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MEUsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwQSwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDBDLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MEEsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHhDMywweDkwLDB4REEsMHgxNCwweDk0LDB4MTUsCi0weDVDLDB4MTMsMHhFNiwweDEzLDB4REEsMHgxQiwweERBLDB4MUIsMHhFNiwweDEzLDB4REEsMHgxQiwweDhCLDB4OTQsMHg2NCwweDEyLAotMHhDMSwweEU2LDB4MDQsMHhBOCwweDAxLDB4NzQsMHgzNSwweDUwLDB4MzMsMHhDMCwweDhBLDB4QzIsMHhFNiwweEZFLDB4RTQsMHhBMCwKLTB4ODUsMHhDMCwweDc0LDB4MjcsMHg4QiwweEQ4LDB4MkUsMHg4QSwweDlGLDB4REEsMHgxQSwweDUyLDB4NTYsMHgyRSwweDhCLDB4QTgsCi0weDQ0LDB4MDAsMHg4QiwweDU2LDB4MjgsMHhFQywweEE4LDB4MDEsMHg3NSwweDBELDB4ODgsMHg4NiwweEFELDB4MDAsMHgyNCwweDBFLAotMHg4QSwweEQ4LDB4MkUsMHhGRiwweDk3LDB4REMsMHgxQiwweDVFLDB4NUEsMHhFQiwweENELDB4NTgsMHhBOCwweDAyLDB4NzQsMHgzNiwKLTB4ODMsMHhDNiwweDEwLDB4MzMsMHhDMCwweDhBLDB4QzYsMHhFNiwweEZFLDB4RTQsMHhBMCwweDg1LDB4QzAsMHg3NCwweDI3LDB4OEIsCi0weEQ4LDB4MkUsMHg4QSwweDlGLDB4REEsMHgxQSwweDUyLDB4NTYsMHgyRSwweDhCLDB4QTgsMHg0NCwweDAwLDB4OEIsMHg1NiwweDI4LAotMHhFQywweEE4LDB4MDEsMHg3NSwweDBELDB4ODgsMHg4NiwweEFELDB4MDAsMHgyNCwweDBFLDB4OEEsMHhEOCwweDJFLDB4RkYsMHg5NywKLTB4REMsMHgxQiwweDVFLDB4NUEsMHhFQiwweENELDB4QzMsMHg5MCwweDMyLDB4RTQsMHg4QiwweEQ4LDB4OEIsMHhEMCwweDJFLDB4OEEsCi0weDlGLDB4OUEsMHgxOSwweDJFLDB4MjIsMHg5NywweDkyLDB4MTksMHg1NiwweDUyLDB4OEEsMHhDMywweDI0LDB4MDMsMHgwMywweEM2LAotMHg4MCwweEUzLDB4MDQsMHhEMCwweEVCLDB4MkUsMHhGRiwweDk3LDB4RDYsMHgxQSwweDU4LDB4NUUsMHhBOSwweDU1LDB4MDAsMHg3NSwKLTB4RDksMHhDMywweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsCi0weDIyLDB4QzQsMHg3NCwweDA4LDB4MzMsMHhGNiwweEU4LDB4QkYsMHhGRiwweEVCLDB4RUUsMHg5MCwweEU0LDB4MDQsMHgwNywweEU0LAotMHgwNCwweDFGLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwKLTB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1RSwweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzQsMHgwOCwweEJFLDB4MDQsCi0weDAwLDB4RTgsMHg5NCwweEZGLDB4RUIsMHhFRCwweEU0LDB4MDQsMHgwNywweEU0LDB4MDQsMHgxRiwweEI4LDB4MDAsMHg4MCwweEJBLAotMHgyMiwweEZGLDB4RUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsMHhEOCwweEExLDB4NUMsMHgxMiwKLTB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzQsMHgxOCwweDMzLDB4RjYsMHhFOCwweDZCLDB4RkYsMHhBMSwweDYwLDB4MTIsCi0weEU2LDB4RkUsMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4RTUsMHhCRSwweDA4LDB4MDAsMHhFOCwweDVBLDB4RkYsMHhFQiwweERELAotMHhBMSwweDYwLDB4MTIsMHhFNiwweEZFLDB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NSwweEVELDB4RTQsMHgwNCwweDA3LDB4RTQsMHgwNCwKLTB4QTEsMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4MDQsMHgxRiwweEU0LDB4MDQsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsCi0weEVGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwweDVFLDB4MTIsMHhFNiwweEZFLAotMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4MTksMHhCRSwweDA0LDB4MDAsMHhFOCwweDFDLDB4RkYsMHhBMSwweDYyLDB4MTIsMHhFNiwKLTB4RkUsMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4RTQsMHhCRSwweDBDLDB4MDAsMHhFOCwweDBCLDB4RkYsMHhFQiwweERDLDB4QTEsCi0weDYyLDB4MTIsMHhFNiwweEZFLDB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NSwweEVELDB4RTQsMHgwNCwweDA3LDB4RTQsMHgwNCwweEExLAotMHg1RSwweDEyLDB4RTYsMHhGRSwweEU0LDB4MDQsMHgxRiwweEU0LDB4MDQsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwKLTB4NjEsMHhDRiwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsCi0weDg0LDB4QzQsMHg3NCwweDA4LDB4MzMsMHhGNiwweEU4LDB4NTMsMHhGRSwweEVCLDB4RUUsMHg5MCwweEI4LDB4MDAsMHg4MCwweEJBLAotMHgyMiwweEZGLDB4RUYsMHgwNywweDFGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwKLTB4NUUsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4MDgsMHhCRSwweDAyLDB4MDAsMHhFOCwweDJDLDB4RkUsCi0weEVCLDB4RUQsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDA3LDB4MUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLAotMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg2MCwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHgwOCwKLTB4QkUsMHgwNCwweDAwLDB4RTgsMHgwNiwweEZFLDB4RUIsMHhFRCwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwweEVGLDB4MDcsCi0weDFGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwweDYyLDB4MTIsMHhFNiwweEZFLAotMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4MDgsMHhCRSwweDA2LDB4MDAsMHhFOCwweEUwLDB4RkQsMHhFQiwweEVELDB4QjgsMHgwMCwKLTB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDA3LDB4MUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsCi0weEQ4LDB4QTEsMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzQsMHgxOCwweDMzLDB4RjYsMHhFOCwweDM3LAotMHhGRSwweEExLDB4NjAsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4RTUsMHhCRSwweDA0LDB4MDAsMHhFOCwKLTB4QUEsMHhGRCwweEVCLDB4REQsMHhBMSwweDYwLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NSwweEVELDB4QTEsCi0weDVDLDB4MTIsMHhFNiwweEZFLDB4RTQsMHgwNCwweDA3LDB4RTQsMHgwNCwweDFGLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLAotMHhFRiwweDYxLDB4Q0YsMHg5MCwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1RSwweDEyLDB4RTYsMHhGRSwKLTB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NCwweDE5LDB4QkUsMHgwNCwweDAwLDB4RTgsMHhFQywweEZELDB4QTEsMHg2MiwweDEyLDB4RTYsCi0weEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NCwweEU0LDB4QkUsMHgwNiwweDAwLDB4RTgsMHg1RiwweEZELDB4RUIsMHhEQywweEExLAotMHg2MiwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzUsMHhFRCwweEExLDB4NUUsMHgxMiwweEU2LDB4RkUsMHhFNCwKLTB4MDQsMHgwNywweEU0LDB4MDQsMHgxRiwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwweEVGLDB4NjEsMHhDRiwweDYwLDB4MUUsCi0weDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwweDVDLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NCwweDE4LAotMHgzMywweEY2LDB4RTgsMHgyNywweEZELDB4QTEsMHg2MCwweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzQsMHhFNSwKLTB4QkUsMHgwOCwweDAwLDB4RTgsMHg5MiwweEZELDB4RUIsMHhERCwweEExLDB4NjAsMHgxMiwweEU2LDB4RkUsMHhFNCwweDAwLDB4MjIsCi0weEM0LDB4NzUsMHhFRCwweEU0LDB4MDQsMHgwNywweEU0LDB4MDQsMHgxRiwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwweEVGLAotMHg2MSwweENGLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwweDVFLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwKLTB4ODQsMHhDNCwweDc0LDB4MTksMHhCRSwweDAyLDB4MDAsMHhFOCwweEUyLDB4RkMsMHhBMSwweDYyLDB4MTIsMHhFNiwweEZFLDB4RTQsCi0weDAwLDB4MjIsMHhDNCwweDc0LDB4RTQsMHhCRSwweDBDLDB4MDAsMHhFOCwweDRELDB4RkQsMHhFQiwweERDLDB4QTEsMHg2MiwweDEyLAotMHhFNiwweEZFLDB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NSwweEVELDB4RTQsMHgwNCwweDA3LDB4RTQsMHgwNCwweDFGLDB4QjgsMHgwMCwKLTB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDYxLDB4Q0YsMHg5MCwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsCi0weDVDLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NCwweDE4LDB4MzMsMHhGNiwweEU4LDB4OUQsMHhGQywweEExLAotMHg2MCwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHhFNSwweEJFLDB4MDQsMHgwMCwweEU4LDB4OEMsMHhGQywKLTB4RUIsMHhERCwweEExLDB4NjAsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc1LDB4RUQsMHgwNywweDFGLDB4QjgsCi0weDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDYxLDB4Q0YsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsMHhEOCwweEExLAotMHg1RSwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHgxOSwweEJFLDB4MDIsMHgwMCwweEU4LDB4NUMsMHhGQywKLTB4QTEsMHg2MiwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHhFNCwweEJFLDB4MDYsMHgwMCwweEU4LDB4NEIsCi0weEZDLDB4RUIsMHhEQywweEExLDB4NjIsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc1LDB4RUQsMHgwNywweDFGLAotMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDYxLDB4Q0YsMHg5MCwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwKLTB4RDgsMHg5MCwweDJBLDB4QzAsMHhFNiwweEZFLDB4RTQsMHhDRSwweEE4LDB4MDEsMHg3NCwweDE0LDB4MzMsMHhEQiwweEU4LDB4RDUsCi0weEY2LDB4RUIsMHhFRiwweDkwLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHgwNywweDFGLDB4NjEsMHhDRiwweDkwLAotMHhGNiwweDA2LDB4MDUsMHgwMSwweDAxLDB4NzUsMHhFRCwweEIwLDB4MDEsMHhFNiwweEZFLDB4RTQsMHhDRSwweEE4LDB4MDEsMHg3NCwKLTB4RTMsMHhCQiwweDA0LDB4MDAsMHhFOCwweEFGLDB4RjYsMHhFQiwweEM5LDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsCi0weEQ4LDB4OTAsMHhGQiwweDkwLDB4RkEsMHgyQSwweEMwLDB4RTYsMHhGRSwweEU0LDB4Q0UsMHhBOCwweDAyLDB4NzQsMHgxMywweDMzLAotMHhEQiwweEU4LDB4Q0MsMHhGOCwweEVCLDB4RUMsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDA3LDB4MUYsMHg2MSwKLTB4Q0YsMHg5MCwweEE4LDB4MDQsMHg3NCwweEYwLDB4MzMsMHhEQiwweEU4LDB4NUIsMHhGNywweEVCLDB4RDUsMHg5MCwweDYwLDB4MUUsCi0weDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHg5MCwweEZCLDB4OTAsMHhGQSwweEIwLDB4MDEsMHhFNiwweEZFLDB4RTQsMHhDRSwweEE4LAotMHgwMiwweDc0LDB4MTUsMHhCQiwweDA0LDB4MDAsMHhFOCwweDk3LDB4RjgsMHhFQiwweEVCLDB4OTAsMHhCOCwweDAwLDB4ODAsMHhCQSwKLTB4MjIsMHhGRiwweEVGLDB4MDcsMHgxRiwweDYxLDB4Q0YsMHg5MCwweEE4LDB4MDQsMHg3NCwweEYwLDB4QkIsMHgwNCwweDAwLDB4RTgsCi0weDI0LDB4RjcsMHhFQiwweEQyLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgwOSwweDlDLDB4MEUsMHhFOCwweDZCLAotMHhGMiwweDkwLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgyOSwweDlDLDB4MEUsMHhFOCwweDVELDB4RjIsMHg5MCwKLTB4NzIsMHgyMCwweDcyLDB4MjAsMHg3MiwweDIwLDB4Q0UsMHgxRCwweDkyLDB4MUMsMHhFNiwweDFDLDB4MUEsMHgxRSwweDcyLDB4MjAsCi0weDgyLDB4MUQsMHhBRSwweDFFLDB4MzgsMHgxRiwweDcyLDB4MjAsMHg4MiwweDFELDB4NzIsMHgyMCwweDcyLDB4MjAsMHgzOCwweDFGLAotMHg3MiwweDIwLDB4NzIsMHgyMCwweDcyLDB4MjAsMHhGNCwweDFELDB4QkMsMHgxQywweDM0LDB4MUQsMHg2NCwweDFFLDB4NzIsMHgyMCwKLTB4QTgsMHgxRCwweEYyLDB4MUUsMHg3OCwweDFGLDB4NzIsMHgyMCwweEE4LDB4MUQsMHg3MiwweDIwLDB4NzIsMHgyMCwweDc4LDB4MUYsCi0weEZDLDB4QjksMHg0MCwweDAwLDB4OEMsMHhDQiwweEI4LDB4NjQsMHgyMCwweDJCLDB4RkYsMHhBQiwweDkzLDB4QUIsMHg5MywweEUyLAotMHhGQSwweEM3LDB4MDYsMHg0QywweDAwLDB4QTgsMHgxMSwweDgzLDB4M0UsMHg0NCwweDEyLDB4MDAsMHg3NSwweDIwLDB4QzcsMHgwNiwKLTB4M0MsMHgwMCwweDA4LDB4NEIsMHhDNywweDA2LDB4MzAsMHgwMCwweEJBLDB4MUYsMHhDNywweDA2LDB4MzQsMHgwMCwweEZBLDB4MUYsCi0weEY2LDB4MDYsMHgwNSwweDAxLDB4MDEsMHg3NSwweDA2LDB4QzcsMHgwNiwweDM4LDB4MDAsMHgyRSwweDIwLDB4QzMsMHhDNywweDA2LAotMHgzQywweDAwLDB4NTYsMHg0QiwweDMzLDB4REIsMHg4QSwweDFFLDB4NTQsMHgxMiwweEMxLDB4RTMsMHgwMiwweDAyLDB4MUUsMHg1NiwKLTB4MTIsMHgyRSwweDhCLDB4ODcsMHg4MCwweDIwLDB4QTMsMHgzMCwweDAwLDB4OEEsMHgxRSwweDU1LDB4MTIsMHhDMSwweEUzLDB4MDIsCi0weDAyLDB4MUUsMHg1NywweDEyLDB4MkUsMHg4QiwweDg3LDB4QTAsMHgyMCwweEEzLDB4MzQsMHgwMCwweEMzLDB4OEIsMHg4NiwweDlFLAotMHgwMCwweEU2LDB4RkUsMHg4NiwweEM0LDB4RTYsMHhEMCwweEMzLDB4OEIsMHg4NiwweDlFLDB4MDAsMHhFNiwweEZFLDB4MzMsMHhEMiwKLTB4OEEsMHhENCwweEMzLDB4NTEsMHhCOSwweDEwLDB4MjcsMHhFNCwweDBBLDB4OTAsMHg5MCwweDg0LDB4QzAsMHg3NCwweDA1LDB4RTIsCi0weEY2LDB4NTksMHhGOSwweEMzLDB4NTksMHhGOCwweEMzLDB4ODQsMHhDMCwweDc4LDB4MUUsMHg1MSwweDhBLDB4RTgsMHg4QSwweEM4LAotMHhCOCwweDAxLDB4MDAsMHhEMywweEUwLDB4MDksMHg4NiwweDk4LDB4MDAsMHgzQSwweEFFLDB4QTAsMHgwMCwweDU5LDB4NzUsMHgxMCwKLTB4RTgsMHhBOSwweEU1LDB4ODMsMHg0RSwweDI2LDB4MDIsMHhGOSwweEMzLDB4OTgsMHg4OSwweDg2LDB4OTgsMHgwMCwweEVCLDB4RjAsCi0weEY4LDB4QzMsMHg4NCwweEMwLDB4NzgsMHgxMiwweDUxLDB4OEEsMHhFMCwweDhBLDB4QzgsMHhCOCwweDAxLDB4MDAsMHhEMywweEUwLAotMHg1OSwweEY3LDB4RDAsMHgyMSwweDg2LDB4OTgsMHgwMCwweEMzLDB4QzcsMHg4NiwweDk4LDB4MDAsMHgwMCwweDAwLDB4QzMsMHg4MywKLTB4QzIsMHgwNCwweDhBLDB4ODYsMHhBNiwweDAwLDB4MEMsMHgwNCwweEVFLDB4ODMsMHhFQSwweDA0LDB4QzMsMHhFOCwweDkzLDB4RkYsCi0weDcyLDB4MDQsMHhCMCwweDgyLDB4RTYsMHgwQSwweEMzLDB4OEIsMHg0NiwweDI2LDB4QTgsMHhGRCwweDc0LDB4MTEsMHg4QSwweDg2LAotMHhBNSwweDAwLDB4QTgsMHgwNiwweDc0LDB4MDgsMHgyNCwweEY5LDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4QzMsMHhGNiwKLTB4QzQsMHgwMSwweDc0LDB4MEEsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkIsMHgwQywweDAyLDB4RUIsMHgwQywweEE4LDB4MDIsCi0weDc1LDB4MEYsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkQsMHgwQywweDA0LDB4M0EsMHg4NiwweEE1LDB4MDAsMHg3NSwweEQ4LAotMHhDMywweDhBLDB4ODYsMHhBNSwweDAwLDB4RUIsMHhDRiwweEU0LDB4RDgsMHgzMywweERCLDB4OEEsMHhEOCwweEMwLDB4RUIsMHgwNCwKLTB4MkUsMHg4QSwweDlGLDB4NjYsMHgxNywweDg4LDB4OUUsMHhBOSwweDAwLDB4OEIsMHg1RSwweDI2LDB4ODAsMHhFMywweDNGLDB4RjYsCi0weEM3LDB4MDQsMHg3NCwweDA3LDB4QTgsMHgxMCwweDc1LDB4MDMsMHg4MCwweENCLDB4NDAsMHhGNiwweEM3LDB4MDgsMHg3NCwweDA3LAotMHhBOCwweDgwLDB4NzUsMHgwMywweDgwLDB4Q0IsMHg0MCwweDg4LDB4NUUsMHgyNiwweDhBLDB4ODYsMHhBNSwweDAwLDB4RjYsMHhDMywKLTB4RkQsMHg3NCwweDBELDB4QTgsMHgwNiwweDc0LDB4MDgsMHgyNCwweEY5LDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4QzMsCi0weEY2LDB4QzcsMHgwMSwweDc0LDB4MDQsMHgwQywweDAyLDB4RUIsMHhGMCwweEY2LDB4QzMsMHgwMiwweDc1LDB4RTksMHgwQywweDA0LAotMHhFQiwweEU3LDB4QzQsMHgwNCwweEM0LDB4MDQsMHg4NSwweDA0LDB4NTksMHgwNCwweDQ4LDB4MDQsMHg0MSwweDA0LDB4QzMsMHgwMywKLTB4ODIsMHgwMywweDQxLDB4MDMsMHg4MiwweDAyLDB4NTcsMHgwMiwweDQxLDB4MDIsMHg4MiwweDAxLDB4NDEsMHgwMSwweDgyLDB4MDAsCi0weDQxLDB4MDAsMHg0RSwweDAyLDB4QUQsMHgwMSwweDU3LDB4MDEsMHgyRCwweDAwLDB4MkIsMHgwMCwweDI3LDB4MDAsMHgyMSwweDAwLAotMHgxNiwweDAwLDB4RjQsMHgwNCwweEY0LDB4MDQsMHhBMywweDA0LDB4NkYsMHgwNCwweDVCLDB4MDQsMHg1MSwweDA0LDB4RjQsMHgwMywKLTB4QTMsMHgwMywweDUxLDB4MDMsMHhBMywweDAyLDB4NkQsMHgwMiwweDUxLDB4MDIsMHhBMywweDAxLDB4NTEsMHgwMSwweEEzLDB4MDAsCi0weDUxLDB4MDAsMHg2MiwweDAyLDB4RDksMHgwMSwweDZELDB4MDEsMHgzOCwweDAwLDB4MzYsMHgwMCwweDMxLDB4MDAsMHgyOSwweDAwLAotMHgxQiwweDAwLDB4NTEsMHg1NywweEJGLDB4MDIsMHgwMCwweEVCLDB4MEYsMHg5MCwweDUxLDB4NTYsMHhCRiwweDAxLDB4MDAsMHhFQiwKLTB4MDcsMHg5MCwweDUxLDB4NTYsMHhCRiwweDAzLDB4MDAsMHg5MCwweDNDLDB4MTksMHg3NiwweDAyLDB4QjAsMHgxNywweDk4LDB4OEIsCi0weEYwLDB4OEEsMHg4MiwweEM0LDB4MDAsMHgyQSwweEU0LDB4OEIsMHhGMCwweDgzLDB4RkUsMHgxOCwweDczLDB4NDYsMHhEMSwweEU2LAotMHgyRSwweDhCLDB4OEMsMHg1MiwweDIyLDB4RjcsMHg0NiwweDM4LDB4ODAsMHgwMCwweDc0LDB4MDUsMHgyRSwweDhCLDB4OEMsMHg4MiwKLTB4MjIsMHhGNywweEM3LDB4MDIsMHgwMCwweDc0LDB4MTIsMHgzQiwweDhFLDB4OTQsMHgwMCwweDc0LDB4MEMsMHg4OSwweDhFLDB4OTQsCi0weDAwLDB4OEEsMHhDNSwweEU2LDB4RUMsMHg4QSwweEMxLDB4RTYsMHhFNCwweEY3LDB4QzcsMHgwMSwweDAwLDB4NzQsMHgxMiwweDNCLAotMHg4RSwweDk2LDB4MDAsMHg3NCwweDBDLDB4ODksMHg4RSwweDk2LDB4MDAsMHg4QSwweEM1LDB4RTYsMHhGOCwweDhBLDB4QzEsMHhFNiwKLTB4RjAsMHg1RSwweDU5LDB4QzMsMHg3NywweDA2LDB4OEIsMHg4RSwweDhFLDB4MDAsMHhFQiwweEM1LDB4OEIsMHg4RSwweDkwLDB4MDAsCi0weEVCLDB4QkYsMHhENSwweDAzLDB4RjYsMHgwMCwweDNFLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweENBLDB4MDQsMHgzMywweDAxLAotMHg0RCwweDAwLDB4MTQsMHgwMCwweDA1LDB4MDAsMHgwMSwweDAzLDB4MDUsMHgwNywweDA5LDB4MDAsMHgwMSwweDAyLDB4MDMsMHgwNCwKLTB4ODAsMHg4NCwweDFFLDB4MDAsMHhBMCwweDI1LDB4MjYsMHgwMCwweDAwLDB4MDAsMHg2MCwweDhCLDB4RjAsMHgzMywweEZGLDB4MkUsCi0weEExLDB4NTAsMHgyMywweDJFLDB4OEIsMHgxNiwweDUyLDB4MjMsMHhCQiwweDMyLDB4MjMsMHhGNywweDQ2LDB4MzgsMHg4MCwweDAwLAotMHg3NCwweDBDLDB4MkUsMHhBMSwweDU0LDB4MjMsMHgyRSwweDhCLDB4MTYsMHg1NiwweDIzLDB4QkIsMHgzQywweDIzLDB4QjksMHgwNSwKLTB4MDAsMHgyRSwweDNCLDB4MzEsMHg3MywweDBBLDB4NDcsMHg0NywweEUyLDB4RjcsMHhCOCwweEZGLDB4RkYsMHhFQiwweDFELDB4OTAsCi0weEQxLDB4RUYsMHgyRSwweDhBLDB4OEQsMHg0NiwweDIzLDB4MkEsMHhFRCwweEQxLDB4RUEsMHhEMSwweEQ4LDB4RTIsMHhGQSwweEY3LAotMHhGNiwweDA1LDB4MDIsMHgwMCwweEMxLDB4RTgsMHgwMiwweDJFLDB4OEEsMHhBNSwweDRCLDB4MjMsMHgyRSwweEEzLDB4NTgsMHgyMywKLTB4NjEsMHgyRSwweEExLDB4NTgsMHgyMywweEMzLDB4MDgsMHgwMCwweDIwLDB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMiwweDYwLDB4MDksCi0weDA4LDB4MDAsMHgyMCwweDAwLDB4ODAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwMiwweDAwLAotMHgwMywweDAwLDB4MDQsMHgwMCwweDUyLDB4NTYsMHg1NywweDg1LDB4QzAsMHg3NCwweDA1LDB4M0QsMHgwMSwweDA5LDB4NzYsMHgwMywKLTB4QjgsMHgwMSwweDA5LDB4QkYsMHg1QiwweDAxLDB4RjcsMHg0NiwweDM4LDB4ODAsMHgwMCwweDc0LDB4MDMsMHhCRiwweEIyLDB4MDEsCi0weDMzLDB4RjYsMHgyRSwweDNCLDB4ODQsMHhCNiwweDIzLDB4NzYsMHgwNCwweDQ2LDB4NDYsMHhFQiwweEY1LDB4RjcsMHhFNywweDJFLAotMHg4QiwweEJDLDB4QzAsMHgyMywweDAzLDB4QzcsMHg4MywweEQyLDB4MDAsMHhEMSwweEU3LDB4RjcsMHhGNywweDJFLDB4OEEsMHhBNCwKLTB4Q0EsMHgyMywweDVGLDB4NUUsMHg1QSwweEMzLDB4RTQsMHgzRSwweDgwLDB4QkUsMHhDMywweDAwLDB4MDMsMHg3NSwweDBDLDB4RjcsCi0weDQ2LDB4N0EsMHgyMCwweDAwLDB4NzQsMHgwNSwweDBDLDB4ODAsMHhFNiwweDNFLDB4QzMsMHgyNCwweDdGLDB4RTYsMHgzRSwweEMzLAotMHgyNCwweDAzLDB4ODgsMHg4NiwweEMzLDB4MDAsMHg4QSwweEUwLDB4RTQsMHgxMCwweDI0LDB4RkMsMHgwQSwweEM0LDB4RTYsMHgxMCwKLTB4ODAsMHg4RSwweEExLDB4MDAsMHg0MiwweEU4LDB4Q0UsMHhGRiwweEMzLDB4OTAsMHg1NiwweDhCLDB4RjAsMHg4MywweEU2LDB4MDcsCi0weEQxLDB4RTYsMHgyRSwweEZGLDB4QTQsMHg1OCwweDI0LDB4OTAsMHg2OCwweDI0LDB4NkMsMHgyNCwweDcwLDB4MjQsMHg3NCwweDI0LAotMHg3OCwweDI0LDB4ODcsMHgyNCwweDg3LDB4MjQsMHg4NywweDI0LDB4QjQsMHgwMCwweEVCLDB4MEUsMHhCNCwweEMwLDB4RUIsMHgwQSwKLTB4QjQsMHg0MCwweEVCLDB4MDYsMHhCNCwweDIwLDB4RUIsMHgwMiwweEI0LDB4QTAsMHhFNCwweDEwLDB4MjQsMHgxRiwweDBBLDB4QzQsCi0weEU2LDB4MTAsMHg4MCwweDhFLDB4QTEsMHgwMCwweDQyLDB4NUUsMHhDMywweDkwLDB4M0MsMHgwMiwweDc3LDB4MTIsMHg4QSwweEUwLAotMHhFNCwweDEwLDB4MjQsMHhGMywweEMwLDB4RTQsMHgwMiwweDBBLDB4QzQsMHhFNiwweDEwLDB4ODAsMHg4RSwweEExLDB4MDAsMHg0MiwKLTB4QzMsMHg5MCwweDhCLDB4NUUsMHgzOCwweDg0LDB4QzAsMHg3NCwweDFGLDB4M0MsMHgwMiwweDc0LDB4MjAsMHg4MywweENCLDB4MDgsCi0weDhCLDB4NDYsMHgyRSwweDNCLDB4NDYsMHgzQywweDc3LDB4MEMsMHhFOCwweDg4LDB4RkMsMHg3MiwweDA3LDB4QjAsMHgyNCwweEU2LAotMHgwQSwweDgzLDB4Q0IsMHgxMCwweDg5LDB4NUUsMHgzOCwweEMzLDB4ODMsMHhFMywweEY3LDB4RUIsMHhGNywweEY3LDB4QzMsMHgxMCwKLTB4MDAsMHg3NCwweEY1LDB4RTgsMHg2RCwweEZDLDB4NzIsMHhFQywweDhBLDB4ODYsMHhDMCwweDAwLDB4RTYsMHgzOCwweEIwLDB4MjMsCi0weEU2LDB4MEEsMHhFQiwweEUwLDB4OEIsMHg1RSwweDM4LDB4OEIsMHg0NiwweDJFLDB4M0IsMHg0NiwweDNDLDB4RTQsMHhEOCwweDc3LAotMHgwQiwweDI0LDB4RkUsMHg4MCwweENCLDB4MTIsMHhFNiwweEQ4LDB4ODksMHg1RSwweDM4LDB4QzMsMHgwQywweDAxLDB4ODAsMHhDQiwKLTB4MDIsMHhFQiwweEYzLDB4NTAsMHgzMywweERCLDB4QzEsMHhFOCwweDA0LDB4MjUsMHgwRiwweDBGLDB4OEEsMHhEOCwweDJFLDB4OEEsCi0weDg3LDB4NjYsMHgxNywweDhBLDB4REMsMHgyRSwweDhBLDB4QTcsMHg2NiwweDE3LDB4MDksMHg0NiwweDNFLDB4NTgsMHhDMywweDUwLAotMHgzMywweERCLDB4QzEsMHhFOCwweDA0LDB4MjUsMHgwRiwweDBGLDB4OEEsMHhEOCwweDJFLDB4OEEsMHg4NywweDY2LDB4MTcsMHg4QSwKLTB4REMsMHgyRSwweDhBLDB4QTcsMHg2NiwweDE3LDB4RjcsMHhEMCwweDIxLDB4NDYsMHgzRSwweDU4LDB4QzMsMHg4QiwweDQ2LDB4M0UsCi0weDMzLDB4REIsMHg4QSwweEQ4LDB4MEEsMHhEQywweDJFLDB4OEEsMHg4NywweDc2LDB4MTcsMHhFNiwweDJDLDB4OEEsMHhFMCwweEU0LAotMHgyQSwweDI0LDB4MEYsMHgwQSwweEM0LDB4RTYsMHgyQSwweDhBLDB4ODYsMHhBNSwweDAwLDB4ODQsMHhFNCwweDc1LDB4MEQsMHhBOCwKLTB4ODAsMHg3NCwweDExLDB4MjQsMHg3RiwweDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweEMzLDB4QTgsMHg4MCwweDc1LDB4MDQsCi0weDBDLDB4ODAsMHhFQiwweEYxLDB4QzMsMHgxRSwweDYwLDB4MzMsMHhDOSwweDMzLDB4RDIsMHgzMywweEY2LDB4OEUsMHhEOSwweDhELAotMHhCRSwweEZELDB4MDAsMHg1NywweDhCLDB4MDUsMHg4NCwweEMwLDB4NzQsMHgxNiwweDhCLDB4RDEsMHg0MiwweDhCLDB4RkUsMHg0RiwKLTB4NzgsMHgwOSwweDM4LDB4QTMsMHhFNCwweDAwLDB4NzQsMHgwOCwweDRGLDB4NzksMHhGNywweDg4LDB4QTIsMHhFNCwweDAwLDB4NDYsCi0weDVGLDB4ODMsMHhDNywweDA5LDB4NDEsMHg4MywweEY5LDB4MTAsMHg3MiwweEQ5LDB4ODksMHhCNiwweDg2LDB4MDAsMHg4OSwweDk2LAotMHg4NCwweDAwLDB4NjEsMHgxRiwweEMzLDB4NTMsMHhDNywweDQ2LDB4NjYsMHgwMCwweDAwLDB4OEIsMHg0NiwweDY0LDB4QTksMHg0MCwKLTB4MDAsMHg3NCwweDBELDB4QjMsMHgwMCwweEE5LDB4ODAsMHgwMCwweDc0LDB4MDIsMHhCMywweDdGLDB4ODgsMHg5RSwweEMxLDB4MDAsCi0weDMyLDB4REIsMHhBOSwweDAyLDB4MDAsMHg3NCwweDAzLDB4ODAsMHhDQiwweDQwLDB4QTksMHgwMCwweDQwLDB4NzQsMHgwMywweDgwLAotMHhDQiwweDAyLDB4QTksMHgwMCwweDgwLDB4NzQsMHgwMywweDgwLDB4Q0IsMHgwMSwweEE5LDB4MzAsMHgxRSwweDc0LDB4MDMsMHg4MCwKLTB4Q0IsMHhCQywweEE5LDB4MDAsMHgyMCwweDc0LDB4MDMsMHg4MCwweENCLDB4MDgsMHhBOSwweDA0LDB4MDEsMHg3NCwweDAzLDB4ODAsCi0weENCLDB4MTAsMHhBOSwweDA4LDB4MDAsMHg3NCwweDAzLDB4ODAsMHhDQiwweDIwLDB4ODgsMHg5RSwweEMyLDB4MDAsMHg1QiwweEMzLAotMHgwNiwweDUxLDB4NTcsMHg1MCwweDE2LDB4MDcsMHg4RCwweEJFLDB4QzQsMHgwMCwweEI5LDB4MUYsMHgwMCwweDMzLDB4QzAsMHhBQSwKLTB4NDAsMHhFMiwweEZDLDB4OEIsMHg4NiwweDkyLDB4MDAsMHg4OSwweDg2LDB4OEUsMHgwMCwweDg5LDB4ODYsMHg5MCwweDAwLDB4NTgsCi0weDVGLDB4NTksMHgwNywweEMzLDB4RTQsMHhEOCwweEMwLDB4RTgsMHgwNCwweDUzLDB4MjUsMHgwRiwweDAwLDB4OEIsMHhEOCwweDJFLAotMHg4QSwweDg3LDB4NjYsMHgxNywweDg4LDB4ODYsMHhBOSwweDAwLDB4NUEsMHhDMywweDA4LDB4ODYsMHhBQywweDAwLDB4QzYsMHg4NiwKLTB4QkEsMHgwMCwweDAxLDB4QjAsMHgwRSwweEU4LDB4RUEsMHhFOSwweEMzLDB4QUQsMHgzNiwweEEzLDB4QjQsMHgxMywweEFELDB4MzYsCi0weEEzLDB4QjYsMHgxMywweEFELDB4MzYsMHhBMywweEI4LDB4MTMsMHg4MywweEU5LDB4MDYsMHgzNiwweEY3LDB4MDYsMHhCNiwweDEzLAotMHgwRiwweDAwLDB4QzMsMHg4QSwweDQ2LDB4MjYsMHhGNywweDQ2LDB4NDgsMHg4MCwweDAwLDB4NzQsMHgwMiwweDBDLDB4MTAsMHg4OCwKLTB4ODYsMHhCRCwweDAwLDB4MzIsMHhDMCwweDgzLDB4N0UsMHgxQSwweDAwLDB4NzUsMHgwRSwweDhCLDB4NUUsMHg0MCwweDQzLDB4ODAsCi0weEUzLDB4RkUsMHgzQiwweDVFLDB4MDgsMHg3NSwweDAyLDB4MEMsMHgwMSwweDgzLDB4N0UsMHgzQSwweDAwLDB4NzUsMHgwRCwweDFFLAotMHhDNSwweDVFLDB4MTQsMHg4QiwweDFGLDB4MUYsMHg4NSwweERCLDB4NzUsMHgwMiwweDBDLDB4MDIsMHhGNywweDQ2LDB4MzgsMHgxMCwKLTB4MDAsMHg3NCwweDAyLDB4MEMsMHgwNCwweDhCLDB4NUUsMHg3QSwweEY3LDB4QzMsMHgwMiwweDAwLDB4NzQsMHgwMiwweDBDLDB4MDgsCi0weEY3LDB4QzMsMHgwNCwweDAwLDB4NzQsMHgwMiwweDBDLDB4MTAsMHhGNywweEMzLDB4MDgsMHgwMCwweDc0LDB4MDIsMHgwQywweDIwLAotMHhGNywweEMzLDB4NDAsMHgwMCwweDc0LDB4MDIsMHgwQywweDQwLDB4ODgsMHg4NiwweEJGLDB4MDAsMHhDMywweDkwLDB4NkEsMHgwMCwKLTB4MUYsMHhDNiwweDA2LDB4OTMsMHgxMiwweDBELDB4OUMsMHgwRSwweEU4LDB4RjEsMHhFQiwweDkwLDB4QjAsMHgwMiwweEU2LDB4REEsCi0weEY4LDB4QzMsMHgzMywweEMwLDB4RTYsMHhEQSwweEY4LDB4QzMsMHhCMCwweDAxLDB4RTYsMHhEOCwweEY4LDB4QzMsMHgzMywweEMwLAotMHhFNiwweEQ4LDB4RjgsMHhDMywweEIwLDB4RkYsMHhFOCwweDRFLDB4RkEsMHhFOCwweEExLDB4RkEsMHhGOCwweEMzLDB4QUMsMHg0OSwKLTB4RTgsMHhBRiwweEZCLDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwweEU4LDB4MTUsMHhGRCwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksCi0weEU4LDB4NjcsMHhGRCwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHhFOCwweDFGLDB4RkQsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LAotMHhFNiwweDM0LDB4RjgsMHhDMywweEFDLDB4NDksMHhFNiwweDM2LDB4RjgsMHhDMywweEFDLDB4NDksMHgzQywweDAyLDB4NzcsMHgxRiwKLTB4ODQsMHhDMCwweDc1LDB4MUQsMHhFNCwweDE0LDB4MjQsMHhFRiwweEU2LDB4MTQsMHhFNCwweDEyLDB4MjQsMHgzRiwweEU2LDB4MTIsCi0weEU0LDB4MTYsMHhBOCwweDA0LDB4NzQsMHgwOSwweEU4LDB4RUEsMHhGOSwweDcyLDB4MDQsMHhCMCwweDE4LDB4RTYsMHgwQSwweEY4LAotMHhDMywweDhBLDB4RTAsMHhFNCwweDE0LDB4MEMsMHgxMCwweEU2LDB4MTQsMHhFNCwweDEyLDB4MEMsMHhDMCwweEY2LDB4QzQsMHgwMSwKLTB4NzQsMHgwMiwweDI0LDB4N0YsMHhFNiwweDEyLDB4RjgsMHhDMywweEFDLDB4NDksMHhFOCwweDI1LDB4RkQsMHhGOCwweEMzLDB4OTAsCi0weEI4LDB4MDAsMHg0MCwweEU4LDB4N0QsMHhGRCwweEU4LDB4QjQsMHhGRCwweEU4LDB4QTgsMHhGRSwweEIwLDB4MDEsMHhFOCwweEI5LAotMHhGRSwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHg0MCwweEU4LDB4ODUsMHhGRCwweEU4LDB4QTAsMHhGRCwweEY4LDB4QzMsMHg5MCwKLTB4QjgsMHgwMCwweDEwLDB4RTgsMHg1RCwweEZELDB4RTgsMHg5NCwweEZELDB4RTgsMHg4OCwweEZFLDB4QjAsMHgwOCwweEU4LDB4OTksCi0weEZFLDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDEwLDB4RTgsMHg2NSwweEZELDB4RTgsMHg4MCwweEZELDB4RjgsMHhDMywweDkwLAotMHhCOCwweDAwLDB4ODAsMHhFOCwweDNELDB4RkQsMHhFOCwweDc0LDB4RkQsMHhFOCwweDY4LDB4RkUsMHhCMCwweDAyLDB4RTgsMHg3OSwKLTB4RkUsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4ODAsMHhFOCwweDQ1LDB4RkQsMHhFOCwweDYwLDB4RkQsMHhGOCwweEMzLDB4OTAsCi0weEI4LDB4MDAsMHgyMCwweEU4LDB4MUQsMHhGRCwweEU4LDB4NTQsMHhGRCwweEU4LDB4NDgsMHhGRSwweEIwLDB4MDQsMHhFOCwweDU5LAotMHhGRSwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHgyMCwweEU4LDB4MjUsMHhGRCwweEU4LDB4NDAsMHhGRCwweEY4LDB4QzMsMHg5MCwKLTB4QUMsMHg0OSwweEU4LDB4NDgsMHgxNCwweEU0LDB4M0MsMHgyNCwweEU3LDB4MEEsMHhDNCwweEU2LDB4M0MsMHhGOCwweEMzLDB4OTAsCi0weEI4LDB4RkMsMHgzQiwweDg5LDB4NDYsMHg3QywweEU0LDB4M0MsMHgwQywweDE4LDB4RTYsMHgzQywweEY4LDB4QzMsMHhFNCwweDEyLAotMHgwQywweDAyLDB4RTYsMHgxMiwweEY4LDB4QzMsMHhFNCwweDEyLDB4MjQsMHhGRCwweEVCLDB4RjYsMHhFOCwweEI1LDB4RkMsMHhGOCwKLTB4QzMsMHg5MCwweDgzLDB4NjYsMHgzOCwweEZELDB4RjgsMHhDMywweEFDLDB4NDksMHhBOCwweDAxLDB4NzQsMHgwNiwweDgzLDB4NEUsCi0weDdBLDB4MjAsMHhFQiwweDA0LDB4ODMsMHg2NiwweDdBLDB4REYsMHhFOCwweENCLDB4RkIsMHhGOCwweEMzLDB4OTAsMHg4QSwweDg2LAotMHhBNSwweDAwLDB4MEMsMHgwMiwweDI0LDB4RkIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg4MSwweDRFLDB4MjYsMHgwMSwKLTB4MjAsMHhBQywweDQ5LDB4MzIsMHhFNCwweDg5LDB4NDYsMHg2RSwweDgzLDB4NEUsMHg0OCwweDA4LDB4NDksMHg0NiwweEY5LDB4QzMsCi0weDhBLDB4ODYsMHhBNSwweDAwLDB4MEMsMHgwMiwweDI0LDB4RkIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg4MSwweDRFLAotMHgyNiwweDAxLDB4MjAsMHhBQywweEI0LDB4MEEsMHhGNiwweEU0LDB4RUIsMHhEOCwweEU4LDB4RkEsMHgxMywweEU0LDB4M0MsMHgyNCwKLTB4RjgsMHgwQSwweEM0LDB4RTYsMHgzQywweEY4LDB4QzMsMHg5MCwweEFELDB4NDksMHg0OSwweDg5LDB4NDYsMHg2NCwweEE5LDB4MDEsCi0weDAwLDB4NzQsMHgxQiwweDhCLDB4RDgsMHg4MywweEUzLDB4RkEsMHg3NSwweDFBLDB4QTksMHgwNCwweDAwLDB4NzQsMHgwRiwweEU0LAotMHgzRSwweDBDLDB4MDIsMHhFNiwweDNFLDB4QjgsMHgzOCwweDQ0LDB4ODksMHg0NiwweDYyLDB4RjgsMHhDMywweDkwLDB4RTQsMHgzRSwKLTB4MjQsMHhGQywweEVCLDB4RUYsMHhFNCwweDNFLDB4MjQsMHhGQywweEU2LDB4M0UsMHhFOCwweEU4LDB4RkMsMHhCOCwweEFBLDB4NDAsCi0weEVCLDB4RTYsMHhFOCwweDZFLDB4RjgsMHg3MiwweDA1LDB4QjAsMHgxOCwweEU2LDB4MEEsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LAotMHhFOCwweENGLDB4RjksMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LDB4RTgsMHhDRiwweEY5LDB4RjgsMHhDMywweDkwLDB4RTgsMHg2OCwKLTB4RkQsMHg3NSwweDA2LDB4MzIsMHhDMCwweEU2LDB4REEsMHhGOCwweEMzLDB4QjAsMHgwMiwweEU2LDB4REEsMHgzNiwweEEwLDB4QjQsCi0weDEzLDB4MjQsMHgxMCwweDM0LDB4MTAsMHhFOCwweDE2LDB4MDEsMHgzNiwweEExLDB4QjQsMHgxMywweEE5LDB4MDEsMHgwMCwweDc0LAotMHgwNSwweEU4LDB4RkMsMHhGRSwweEVCLDB4MEUsMHhBOSwweDAyLDB4MDAsMHg3NCwweDA0LDB4MzIsMHhDMCwweEVCLDB4MDIsMHhCMCwKLTB4MDEsMHhFOCwweERFLDB4RkUsMHgzNiwweEExLDB4QjQsMHgxMywweEU4LDB4QjUsMHgxMywweEU0LDB4M0MsMHgyNCwweEY4LDB4MEEsCi0weEM0LDB4RTYsMHgzQywweDM2LDB4QTEsMHhCNCwweDEzLDB4QzEsMHhFOCwweDA1LDB4MjUsMHgwMSwweDAwLDB4RTgsMHhGQSwweEZFLAotMHgzNiwweEEwLDB4QjUsMHgxMywweDI0LDB4MTAsMHhFOCwweDU5LDB4RkIsMHgzMiwweEMwLDB4MzYsMHg4QSwweDI2LDB4QjUsMHgxMywKLTB4RjYsMHhDNCwweDA0LDB4NzQsMHgwOSwweEZFLDB4QzAsMHhGNiwweEM0LDB4MDgsMHg3NCwweDAyLDB4RkUsMHhDMCwweEU4LDB4REIsCi0weEZELDB4MzYsMHhBMSwweEI2LDB4MTMsMHgyNSwweDBGLDB4MDAsMHhFOCwweDU3LDB4RjksMHgzNiwweEExLDB4QjYsMHgxMywweEMxLAotMHhFOCwweDA0LDB4MjUsMHgwMywweDAwLDB4RTgsMHhCOCwweEZBLDB4MzYsMHhBMSwweEI2LDB4MTMsMHhDMSwweEU4LDB4MDUsMHgyNSwKLTB4MDIsMHgwMCwweEU4LDB4MDUsMHhGQiwweDM2LDB4QTEsMHhCNiwweDEzLDB4RjYsMHhDNCwweDAxLDB4NzUsMHgwNCwweDMyLDB4QzAsCi0weEVCLDB4MDksMHg4MCwweEU0LDB4MDIsMHhEMCwweEVDLDB4QjAsMHgwMiwweDJBLDB4QzQsMHhFOCwweEFDLDB4RkEsMHgzNiwweEY2LAotMHgwNiwweEI3LDB4MTMsMHg0MCwweDc0LDB4MDUsMHhFOCwweDgzLDB4RkUsMHhFQiwweDAzLDB4RTgsMHg4NCwweEZFLDB4MzYsMHhGNiwKLTB4MDYsMHhCNywweDEzLDB4MjAsMHg3NCwweDA1LDB4RTgsMHg2NSwweEZFLDB4RUIsMHgwMywweEU4LDB4NjgsMHhGRSwweEY4LDB4QzMsCi0weEU0LDB4MTIsMHgwQywweDAxLDB4RTYsMHgxMiwweEY4LDB4QzMsMHhFNCwweDEyLDB4MjQsMHhGRSwweEVCLDB4RjYsMHhFNCwweDE0LAotMHgyNCwweEYwLDB4MEMsMHgwNSwweEU2LDB4MTQsMHhFNCwweDJBLDB4MjQsMHhGMCwweDBDLDB4MDYsMHhFNiwweDJBLDB4RjgsMHhDMywKLTB4RTQsMHgyQSwweDI0LDB4RjAsMHhFNiwweDJBLDB4RTQsMHgxNCwweDI0LDB4RjAsMHgwQywweDA3LDB4RTYsMHgxNCwweEY4LDB4QzMsCi0weEFELDB4NDksMHg0OSwweEU4LDB4NjQsMHhGOSwweDg5LDB4ODYsMHg4RSwweDAwLDB4RjgsMHhDMywweEFELDB4NDksMHg0OSwweEU4LAotMHg1OCwweEY5LDB4ODksMHg4NiwweDkwLDB4MDAsMHhGOCwweEMzLDB4ODMsMHg0RSwweDI2LDB4MDQsMHhFOCwweEE4LDB4RjcsMHhGOCwKLTB4QzMsMHg5MCwweDgzLDB4NjYsMHgyNiwweEZCLDB4RTgsMHg5RSwweEY3LDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwweDg0LDB4QzAsCi0weDc1LDB4MEQsMHhFNCwweDEwLDB4MjQsMHhFRiwweEU2LDB4MTAsMHg4MCwweDhFLDB4QTEsMHgwMCwweDQyLDB4RjgsMHhDMywweEU0LAotMHgxMCwweDBDLDB4MTAsMHhFQiwweEYxLDB4OTAsMHhBQywweDQ5LDB4M0MsMHgwMiwweDc2LDB4MDIsMHgzMiwweEMwLDB4QzAsMHhFMCwKLTB4MDQsMHhBOCwweDIwLDB4NzQsMHgwMiwweDBDLDB4MDgsMHgyNCwweDE4LDB4OEEsMHhFMCwweEU0LDB4MTIsMHgyNCwweEU3LDB4MEEsCi0weEM0LDB4RTYsMHgxMiwweDgwLDB4OEUsMHhBMSwweDAwLDB4NDQsMHhGOCwweEMzLDB4QUMsMHg0OSwweDg4LDB4ODYsMHhDMCwweDAwLAotMHhGOCwweEMzLDB4QUMsMHg0OSwweEU2LDB4M0EsMHhGOCwweEMzLDB4QUMsMHg0OSwweDg0LDB4QzAsMHg3NCwweDA4LDB4RTQsMHgxMiwKLTB4MEMsMHgwNCwweEU2LDB4MTIsMHhGOCwweEMzLDB4RTQsMHgxMiwweDI0LDB4RkIsMHhFQiwweEY2LDB4QUMsMHg0OSwweEU4LDB4RDYsCi0weEY2LDB4NzMsMHgwMywweEU4LDB4MjcsMHhGNywweEY4LDB4QzMsMHhFNCwweDEyLDB4QTgsMHgwMiwweDc0LDB4MDQsMHgyNCwweEZELAotMHhFNiwweDEyLDB4QjgsMHhGMCwweDAwLDB4RTgsMHg4NywweEZBLDB4ODEsMHg2NiwweDI2LDB4RkYsMHhGMywweEU4LDB4NTcsMHhGNywKLTB4RTgsMHg5QSwweEZBLDB4RjgsMHhDMywweDkwLDB4QjgsMHg4MCwweDAwLDB4RTgsMHg1NywweEZBLDB4ODAsMHg0RSwweDI3LDB4MDgsCi0weEU4LDB4NDQsMHhGNywweEU4LDB4ODcsMHhGQSwweEY4LDB4QzMsMHhCOCwweDgwLDB4MDAsMHhFOCwweDYxLDB4RkEsMHg4MSwweDY2LAotMHgyNiwweEZGLDB4RjcsMHhFOCwweDMxLDB4RjcsMHhFOCwweDc0LDB4RkEsMHhGOCwweEMzLDB4OTAsMHhCOCwweDEwLDB4MDAsMHhFOCwKLTB4MzEsMHhGQSwweDgwLDB4NEUsMHgyNywweDA0LDB4RTgsMHgxRSwweEY3LDB4RTgsMHg2MSwweEZBLDB4RjgsMHhDMywweEI4LDB4MTAsCi0weDAwLDB4RTgsMHgzQiwweEZBLDB4ODEsMHg2NiwweDI2LDB4RkYsMHhGQiwweEU4LDB4MEIsMHhGNywweEU4LDB4NEUsMHhGQSwweEY4LAotMHhDMywweDkwLDB4MzMsMHhDMCwweEFDLDB4NDksMHgzQywweDAxLDB4NzMsMHgwNCwweEIwLDB4MDEsMHhFQiwweDA2LDB4M0MsMHgwQywKLTB4NzYsMHgwMiwweEIwLDB4MEMsMHg4OSwweDQ2LDB4MUMsMHhGOCwweEMzLDB4OTAsMHg4MSwweDRFLDB4MjYsMHgwMCwweDIwLDB4OEEsCi0weDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHgyNCwweEZCLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4ODMsMHg0RSwweDI2LAotMHgwMSwweEY4LDB4QzMsMHg5MCwweDgxLDB4NEUsMHgyNiwweDAwLDB4NDAsMHg4QSwweDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHg4OCwKLTB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHg1MCwweEU4LDB4MDUsMHhGNiwweDU4LDB4NzIsCi0weDA4LDB4RTYsMHgzOCwweEIwLDB4MjMsMHhFNiwweDBBLDB4RjgsMHhDMywweEY5LDB4QzMsMHg5MCwweEFDLDB4NTAsMHhBRCwweEU4LAotMHg4MiwweEY4LDB4NUEsMHhGNiwweEMyLDB4MDEsMHg3NCwweDEyLDB4MzksMHg4NiwweDk2LDB4MDAsMHg3NCwweDBDLDB4ODksMHg4NiwKLTB4OTYsMHgwMCwweEU2LDB4RjAsMHg4NiwweEUwLDB4RTYsMHhGOCwweDg2LDB4RTAsMHhGNiwweEMyLDB4MDIsMHg3NCwweDEwLDB4MzksCi0weDg2LDB4OTQsMHgwMCwweDc0LDB4MEEsMHg4OSwweDg2LDB4OTQsMHgwMCwweEU2LDB4RTQsMHg4NiwweEUwLDB4RTYsMHhFQywweDgzLAotMHhFOSwweDAzLDB4QzMsMHg5MCwweEU0LDB4MTYsMHg4OCwweDg2LDB4QkMsMHgwMCwweEU4LDB4RTYsMHhGQSwweDMzLDB4REIsMHhFNCwKLTB4MEMsMHhBOCwweDA2LDB4NzQsMHgwMywweDgwLDB4Q0IsMHgwMSwweEE4LDB4MTAsMHg3NCwweDAzLDB4ODAsMHhDQiwweDAyLDB4QTgsCi0weDgwLDB4NzQsMHgwMywweDgwLDB4Q0IsMHgwNCwweEU0LDB4MTIsMHg4QSwweEUwLDB4MjQsMHgxOCwweDBBLDB4RDgsMHhFNCwweERBLAotMHhGNiwweEM0LDB4MDIsMHg3NCwweDA3LDB4QTgsMHg0MCwweDc1LDB4MDMsMHg4MCwweENCLDB4MjAsMHhBOCwweDAyLDB4NzUsMHgwOSwKLTB4RTQsMHgyQSwweEE4LDB4MEYsMHg3NCwweDAzLDB4ODAsMHhDQiwweDQwLDB4RjcsMHg0NiwweDM4LDB4MDIsMHgwMCwweDc0LDB4MDksCi0weEU0LDB4RDgsMHhBOCwweDAxLDB4NzUsMHgwMywweDgwLDB4Q0IsMHg4MCwweDg4LDB4OUUsMHhCRSwweDAwLDB4RkUsMHg4NiwweEI0LAotMHgwMCwweEIwLDB4MEEsMHhFOCwweDVDLDB4RTQsMHhGOCwweEMzLDB4QUMsMHg0OSwweDNDLDB4MDIsMHg3NCwweDQxLDB4NzcsMHgxRiwKLTB4NTAsMHhFOCwweDRGLDB4RjUsMHg1OCwweDcyLDB4MEMsMHg4NCwweEMwLDB4NzQsMHgwQSwweEIwLDB4MTIsMHhFNiwweDBBLDB4ODAsCi0weDRFLDB4MzgsMHgwMSwweEY4LDB4QzMsMHhCMCwweDExLDB4RTYsMHgwQSwweDgwLDB4NjYsMHgzOCwweEZFLDB4RjgsMHhDMywweDhCLAotMHg0NiwweDM4LDB4MjUsMHhGRiwweEY3LDB4ODksMHg0NiwweDM4LDB4QTksMHgwMCwweDA0LDB4NzUsMHhFNiwweDhBLDB4ODYsMHhBNSwKLTB4MDAsMHhBOCwweDEwLDB4NzUsMHhERSwweDBDLDB4MTAsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhGOCwweEMzLDB4ODEsCi0weDRFLDB4MzgsMHgwMCwweDA4LDB4OEEsMHg4NiwweEE1LDB4MDAsMHhBOCwweDEwLDB4NzQsMHhDNywweDI0LDB4RUYsMHhFQiwweEU3LAotMHhBRCwweDQ5LDB4NDksMHgzQywweDAxLDB4NzIsMHgxMSwweDNDLDB4MEMsMHg3NywweDBELDB4NTAsMHg4QSwweEUwLDB4RTQsMHgxNCwKLTB4MjUsMHhGMCwweDBGLDB4MEEsMHhDNCwweEU2LDB4MTQsMHg1OCwweDhBLDB4QzQsMHg4NCwweEMwLDB4NzQsMHgwMiwweEU2LDB4NDIsCi0weEY4LDB4QzMsMHhFOCwweENGLDB4RjksMHhGRSwweDg2LDB4QjksMHgwMCwweEIwLDB4MEUsMHhFOCwweEQ0LDB4RTMsMHhGOCwweEMzLAotMHgzQSwweDg2LDB4QUYsMHgwMCwweDc0LDB4MUYsMHg4OCwweDg2LDB4QUYsMHgwMCwweDhBLDB4RTAsMHg4MCwweEMyLDB4MDYsMHhCMCwKLTB4QkYsMHhFRSwweDgwLDB4RUEsMHgwMiwweDhBLDB4QzQsMHhFRSwweDhBLDB4ODYsMHhBOCwweDAwLDB4ODAsMHhDMiwweDAyLDB4RUUsCi0weDgwLDB4RUEsMHgwNiwweDhBLDB4QzQsMHhDMywweDhCLDB4NDYsMHgzRSwweDg1LDB4QzAsMHg4QSwweDg2LDB4QTUsMHgwMCwweDc0LAotMHgxMiwweEE4LDB4MDgsMHg3NSwweDBELDB4MEMsMHgwOCwweDg4LDB4ODYsMHhBNSwweDAwLDB4ODAsMHhDMiwweDAyLDB4RUUsMHg4MCwKLTB4RUEsMHgwMiwweEMzLDB4QTgsMHgwOCwweDc0LDB4RkIsMHgyNCwweEY3LDB4RUIsMHhFQywweDhCLDB4NDYsMHgyNiwweDg0LDB4QzAsCi0weDc0LDB4MTYsMHg4QSwweDg2LDB4QTUsMHgwMCwweEE4LDB4MDIsMHg3NCwweDBELDB4MjQsMHhGRCwweDg4LDB4ODYsMHhBNSwweDAwLAotMHg4MywweEMyLDB4MDIsMHhFRSwweDgzLDB4RUEsMHgwMiwweEMzLDB4OEEsMHg4NiwweEE1LDB4MDAsMHhBOCwweDAyLDB4NzUsMHhGNywKLTB4MEMsMHgwMiwweEVCLDB4RTgsMHg1MiwweDgzLDB4QzIsMHgwQywweEVDLDB4QzAsMHhFOCwweDA0LDB4ODgsMHg4NiwweEE5LDB4MDAsCi0weDhCLDB4NUUsMHgyNiwweDgwLDB4RTMsMHgzRiwweEY2LDB4QzcsMHgwNCwweDc0LDB4MDcsMHhBOCwweDA4LDB4NzUsMHgwMywweDgwLAotMHhDQiwweDQwLDB4RjYsMHhDNywweDA4LDB4NzQsMHgwNywweEE4LDB4MDIsMHg3NSwweDAzLDB4ODAsMHhDQiwweDgwLDB4ODgsMHg1RSwKLTB4MjYsMHg4QSwweDg2LDB4QTUsMHgwMCwweDg0LDB4REIsMHg3NCwweDEwLDB4QTgsMHgwMiwweDc0LDB4MEEsMHgyNCwweEZELDB4ODgsCi0weDg2LDB4QTUsMHgwMCwweDgzLDB4RUEsMHgwQSwweEVFLDB4NUEsMHhDMywweEE4LDB4MDIsMHg3NSwweEZBLDB4MEMsMHgwMiwweEVCLAotMHhFRSwweDkwLDB4RkYsMHhGRiwweDAwLDB4NDgsMHgwMCwweDMwLDB4QkEsMHgyMCwweEM0LDB4MUEsMHgwMCwweDE4LDB4MDAsMHgxMiwKLTB4MDAsMHgwQywweDAwLDB4MDYsMHgwMCwweDAzLDB4MDAsMHgwMiwweDgwLDB4MDEsMHhDMCwweDAwLDB4NjAsMHgwMCwweDMwLDB4MDAsCi0weDE4LDB4MDAsMHhDRCwweDAxLDB4MDAsMHgwMSwweDgwLDB4MDAsMHgxMCwweDAwLDB4MTAsMHgwMCwweDBFLDB4MDAsMHgwQywweDAwLAotMHgwOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNiwweDAwLDB4MDQsMHgwMCwweDAzLDB4MDAsMHgwMiwweDAwLDB4MDEsMHgwMCwKLTB4NTIsMHg1MSwweDU2LDB4M0MsMHgxRSwweDc3LDB4NDcsMHg5OCwweDhCLDB4RjAsMHg4QSwweDgyLDB4QzQsMHgwMCwweDMyLDB4RTQsCi0weDgzLDB4RkUsMHgxOCwweDc0LDB4M0QsMHg4MywweEZFLDB4MTksMHg3NCwweDNFLDB4ODMsMHhGRSwweDFFLDB4NzcsMHgyRiwweEQxLAotMHhFNiwweDJFLDB4OEIsMHg4QywweDMyLDB4MkQsMHgzQiwweDhFLDB4OTQsMHgwMCwweDc0LDB4MjIsMHg4OSwweDhFLDB4OTQsMHgwMCwKLTB4ODMsMHhDMiwweDA2LDB4OEEsMHg4NiwweEE4LDB4MDAsMHg4QSwweEUwLDB4MEMsMHg4MCwweEVFLDB4ODMsMHhFQSwweDA2LDB4OEEsCi0weEMxLDB4RUUsMHg4MywweEMyLDB4MDIsMHg4QSwweEM1LDB4RUUsMHg4MywweEMyLDB4MDQsMHg4QSwweEM0LDB4RUUsMHg1RSwweDU5LAotMHg1QSwweEMzLDB4OEIsMHg4RSwweDhFLDB4MDAsMHhFQiwweENFLDB4OEIsMHg4RSwweDkwLDB4MDAsMHhFQiwweEM4LDB4NTIsMHg1MSwKLTB4M0QsMHgwNSwweDAwLDB4NzcsMHgwMywweEI4LDB4MDUsMHgwMCwweDhCLDB4QzgsMHhCQSwweDAyLDB4MDAsMHhCOCwweDAwLDB4RDAsCi0weEY3LDB4RjEsMHgwNSwweDAxLDB4MDAsMHhEMSwweEU4LDB4NTksMHg1QSwweEMzLDB4OEIsMHg0NiwweDdBLDB4QTgsMHgyMCwweDc0LAotMHgwQiwweDgwLDB4QkUsMHhDMywweDAwLDB4MDMsMHg3NSwweDA0LDB4MEMsMHgwMSwweEVCLDB4MDIsMHgyNCwweEZFLDB4ODksMHg0NiwKLTB4N0EsMHhDMywweDI0LDB4MDMsMHg4OCwweDg2LDB4QzMsMHgwMCwweDhBLDB4QTYsMHhBOCwweDAwLDB4OEEsMHhEQywweDgwLDB4RTQsCi0weEZDLDB4MEEsMHhDNCwweDNBLDB4QzMsMHg3NCwweDBCLDB4ODgsMHg4NiwweEE4LDB4MDAsMHg4MywweEMyLDB4MDYsMHhFRSwweDgzLAotMHhFQSwweDA2LDB4RTgsMHhDNSwweEZGLDB4QzMsMHgwMCwweDA4LDB4MTgsMHgzOCwweDI4LDB4OTAsMHgzQywweDA0LDB4NzcsMHgyMywKLTB4MzIsMHhFNCwweDhCLDB4RDgsMHgyRSwweDhBLDB4ODcsMHgyNiwweDJFLDB4OEEsMHhBNiwweEE4LDB4MDAsMHg4QSwweERDLDB4ODAsCi0weEU0LDB4QzcsMHgwQSwweEM0LDB4M0EsMHhDMywweDc0LDB4MEIsMHg4OCwweDg2LDB4QTgsMHgwMCwweDgzLDB4QzIsMHgwNiwweEVFLAotMHg4MywweEVBLDB4MDYsMHhDMywweDg0LDB4QzAsMHg3NCwweDAyLDB4QjAsMHgwNCwweDhBLDB4QTYsMHhBOCwweDAwLDB4OEEsMHhEQywKLTB4ODAsMHhFNCwweEZCLDB4MEEsMHhDNCwweDNBLDB4QzMsMHg3NCwweDBCLDB4ODgsMHg4NiwweEE4LDB4MDAsMHg4MywweEMyLDB4MDYsCi0weEVFLDB4ODMsMHhFQSwweDA2LDB4QzMsMHg5MCwweDhCLDB4NUUsMHgzOCwweDg0LDB4QzAsMHg3NCwweDM0LDB4M0MsMHgwMiwweDc0LAotMHgzQiwweDhBLDB4ODYsMHhBRiwweDAwLDB4MEMsMHgwNCwweEU4LDB4RTYsMHhGRCwweDhCLDB4NDYsMHgyRSwweDNCLDB4NDYsMHgzQywKLTB4NzcsMHgxQiwweEY3LDB4QzMsMHgwMCwweDA0LDB4NzUsMHgxNSwweDgxLDB4Q0IsMHgwMCwweDA0LDB4ODMsMHhDMiwweDAyLDB4OEEsCi0weDg2LDB4QTUsMHgwMCwweDI0LDB4RkEsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVFLDB4ODMsMHhFQSwweDAyLDB4ODksMHg1RSwweDM4LAotMHhDMywweDhBLDB4ODYsMHhBRiwweDAwLDB4MjQsMHhGQiwweEU4LDB4QjYsMHhGRCwweEVCLDB4RjEsMHhGNywweEMzLDB4MTAsMHgwMCwKLTB4NzQsMHhFRiwweEVCLDB4RUQsMHg4MywweEMyLDB4MEMsMHhFQywweDgzLDB4RUEsMHgwQywweEMwLDB4RTgsMHgwNCwweDg4LDB4ODYsCi0weEE5LDB4MDAsMHhDMywweDkwLDB4OEEsMHg4NiwweEE3LDB4MDAsMHgwQywweDAxLDB4ODgsMHg4NiwweEE3LDB4MDAsMHg4QiwweERBLAotMHg4MCwweEMyLDB4MDgsMHhFRSwweDhCLDB4RDMsMHhGOCwweEMzLDB4OEEsMHg4NiwweEE3LDB4MDAsMHgyNCwweEZFLDB4RUIsMHhFQSwKLTB4OEEsMHg4NiwweEE3LDB4MDAsMHgwQywweDAyLDB4RUIsMHhFMiwweDhBLDB4ODYsMHhBNywweDAwLDB4MjQsMHhGRCwweEVCLDB4REEsCi0weEIwLDB4RkYsMHhFOCwweDUyLDB4RjIsMHhFOCwweDk3LDB4RjIsMHhGOCwweEMzLDB4QUMsMHg0OSwweEU4LDB4NjEsMHhGRSwweEY4LAotMHhDMywweDkwLDB4QUMsMHg0OSwweEU4LDB4RUIsMHhGRSwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHhFOCwweDM1LDB4RkYsMHhGOCwKLTB4QzMsMHg5MCwweEFDLDB4NDksMHhFOCwweDA1LDB4RkYsMHhGOCwweEMzLDB4OTAsMHg1MiwweDgzLDB4QzIsMHgwNiwweEIwLDB4QkYsCi0weEVFLDB4NTIsMHg4MywweEMyLDB4MDIsMHhBQywweDQ5LDB4RUUsMHg1QSwweDhBLDB4ODYsMHhBOCwweDAwLDB4RUUsMHg1QSwweEY4LAotMHhDMywweDkwLDB4NTIsMHg4MywweEMyLDB4MDYsMHhCMCwweEJGLDB4RUUsMHg1MiwweDgzLDB4QzIsMHgwNiwweEVCLDB4RTYsMHg5MCwKLTB4QUMsMHg0OSwweDNDLDB4MDIsMHg3NywweDBELDB4ODQsMHhDMCwweDc1LDB4MEIsMHg4QSwweDg2LDB4QUYsMHgwMCwweDI0LDB4RkQsCi0weEU4LDB4MEQsMHhGRCwweEY4LDB4QzMsMHg1MCwweDhBLDB4ODYsMHhBRiwweDAwLDB4MEMsMHgwMiwweEU4LDB4MDEsMHhGRCwweDVCLAotMHg4MywweEMyLDB4MDgsMHg4QSwweDg2LDB4QTcsMHgwMCwweEY2LDB4QzMsMHgwMSwweDc0LDB4MEMsMHgyNCwweERGLDB4ODgsMHg4NiwKLTB4QTcsMHgwMCwweEVFLDB4ODMsMHhFQSwweDA4LDB4RjgsMHhDMywweDBDLDB4MjAsMHhFQiwweEYyLDB4QUMsMHg0OSwweEU4LDB4RTUsCi0weEZFLDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDQwLDB4RTgsMHg2OSwweEY1LDB4RTgsMHhGOSwweEZDLDB4RTgsMHgyNCwweEZGLAotMHhCMCwweDAxLDB4RTgsMHhBNSwweEY2LDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDQwLDB4RTgsMHg3MSwweEY1LDB4RTgsMHhFNSwKLTB4RkMsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4MTAsMHhFOCwweDQ5LDB4RjUsMHhFOCwweEQ5LDB4RkMsMHhFOCwweDA0LDB4RkYsCi0weEIwLDB4MDgsMHhFOCwweDg1LDB4RjYsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4MTAsMHhFOCwweDUxLDB4RjUsMHhFOCwweEM1LAotMHhGQywweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHg4MCwweEU4LDB4MjksMHhGNSwweEU4LDB4QjksMHhGQywweEU4LDB4RTQsMHhGRSwKLTB4QjAsMHgwMiwweEU4LDB4NjUsMHhGNiwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHg4MCwweEU4LDB4MzEsMHhGNSwweEU4LDB4QTUsCi0weEZDLDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDIwLDB4RTgsMHgwOSwweEY1LDB4RTgsMHg5OSwweEZDLDB4RTgsMHhDNCwweEZFLAotMHhCMCwweDA0LDB4RTgsMHg0NSwweEY2LDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDIwLDB4RTgsMHgxMSwweEY1LDB4RTgsMHg4NSwKLTB4RkMsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LDB4RTgsMHgzNCwweDBDLDB4RjgsMHhDMywweDkwLDB4QjgsMHhGQywweDNCLDB4ODksCi0weDQ2LDB4N0MsMHhGOCwweEMzLDB4OEEsMHg4NiwweEFGLDB4MDAsMHgwQywweDgwLDB4RTgsMHg0MywweEZDLDB4RjgsMHhDMywweDkwLAotMHg4QSwweDg2LDB4QUYsMHgwMCwweDI0LDB4N0YsMHhFQiwweEYyLDB4OEEsMHg4NiwweEFGLDB4MDAsMHgwQywweDQwLDB4RTgsMHgyRiwKLTB4RkMsMHhGOCwweEMzLDB4OTAsMHg4QSwweDg2LDB4QUYsMHgwMCwweDI0LDB4QkYsMHhFQiwweEYyLDB4QUMsMHg0OSwweEE4LDB4MDEsCi0weDc0LDB4MDcsMHg4MywweDRFLDB4N0EsMHgyMCwweEVCLDB4MDUsMHg5MCwweDgzLDB4NjYsMHg3QSwweERGLDB4RTgsMHg4QSwweEZELAotMHhGOCwweEMzLDB4ODMsMHhDMiwweDA2LDB4OEEsMHg4NiwweEE4LDB4MDAsMHgwQywweDQwLDB4ODgsMHg4NiwweEE4LDB4MDAsMHhFRSwKLTB4ODMsMHhFQSwweDA2LDB4QUMsMHg0OSwweDMyLDB4RTQsMHg4OSwweDQ2LDB4NkUsMHg4MywweDRFLDB4MjYsMHgwMSwweDgzLDB4NEUsCi0weDQ4LDB4MDgsMHhCMCwweDA2LDB4RTgsMHhCQiwweERGLDB4NDksMHg0NiwweEY5LDB4QzMsMHg5MCwweDgzLDB4QzIsMHgwNiwweDhBLAotMHg4NiwweEE4LDB4MDAsMHgwQywweDQwLDB4ODgsMHg4NiwweEE4LDB4MDAsMHhFRSwweDgzLDB4RUEsMHgwNiwweEFDLDB4QjQsMHgwQSwKLTB4RjYsMHhFNCwweEVCLDB4RDAsMHhFOCwweEUwLDB4MEIsMHhGOCwweEMzLDB4OTAsMHhBRCwweDQ5LDB4NDksMHg4OSwweDQ2LDB4NjQsCi0weEE5LDB4MDEsMHgwMCwweDc0LDB4MTksMHg4QiwweEQ4LDB4ODMsMHhFMywweEZBLDB4NzUsMHgwQSwweEE5LDB4MDQsMHgwMCwweDc0LAotMHgwRCwweEI4LDB4RTIsMHgzRiwweEVCLDB4MEIsMHhFOCwweEVDLDB4RjQsMHhCOCwweEFBLDB4NDAsMHhFQiwweDAzLDB4QjgsMHgzOCwKLTB4NDQsMHg4OSwweDQ2LDB4NjIsMHhGOCwweEMzLDB4OEEsMHg4NiwweEFGLDB4MDAsMHhBOCwweDAyLDB4NzQsMHgwQSwweDI0LDB4RkQsCi0weEU4LDB4OEQsMHhGQiwweDBDLDB4MDIsMHhFOCwweDg4LDB4RkIsMHhGOCwweEMzLDB4QUMsMHg0OSwweEU4LDB4ODEsMHhGQywweEY4LAotMHhDMywweDkwLDB4QUMsMHg0OSwweEU4LDB4NzksMHhGQywweEY4LDB4QzMsMHg5MCwweEU4LDB4NUMsMHhGNSwweDc1LDB4MDUsMHhFOCwKLTB4RTYsMHhGRCwweEY4LDB4QzMsMHhFOCwweENELDB4RkQsMHgzNiwweEEwLDB4QjQsMHgxMywweDI0LDB4MTAsMHgzNCwweDEwLDB4RTgsCi0weDI2LDB4MDEsMHgzNiwweEExLDB4QjQsMHgxMywweEE5LDB4MDEsMHgwMCwweDc0LDB4MDUsMHhFOCwweEZFLDB4RkUsMHhFQiwweDBFLAotMHhBOSwweDAyLDB4MDAsMHg3NCwweDA0LDB4MzIsMHhDMCwweEVCLDB4MDIsMHhCMCwweDAxLDB4RTgsMHhFOCwweEZFLDB4MzYsMHhBMSwKLTB4QjQsMHgxMywweEU4LDB4QUIsMHgwQiwweDM2LDB4QTEsMHhCNCwweDEzLDB4QzEsMHhFOCwweDA1LDB4MjUsMHgwMSwweDAwLDB4RTgsCi0weDBDLDB4RkYsMHgzNiwweEEwLDB4QjUsMHgxMywweDI0LDB4MTAsMHhFOCwweDJCLDB4RkQsMHgzMiwweEMwLDB4MzYsMHg4QSwweDI2LAotMHhCNSwweDEzLDB4RjYsMHhDNCwweDA0LDB4NzQsMHgwOSwweEZFLDB4QzAsMHhGNiwweEM0LDB4MDgsMHg3NCwweDAyLDB4RkUsMHhDMCwKLTB4RTgsMHhFRiwweEZELDB4MzYsMHhBMSwweEI2LDB4MTMsMHgyNSwweDBGLDB4MDAsMHhFOCwweDAzLDB4RkMsMHgzNiwweEExLDB4QjYsCi0weDEzLDB4QzEsMHhFOCwweDA0LDB4MjUsMHgwMywweDAwLDB4RTgsMHg4OCwweEZDLDB4MzYsMHhBMSwweEI2LDB4MTMsMHhDMSwweEU4LAotMHgwNSwweDI1LDB4MDIsMHgwMCwweEU4LDB4Q0QsMHhGQywweDM2LDB4QTEsMHhCNiwweDEzLDB4RjYsMHhDNCwweDAxLDB4NzUsMHgwNCwKLTB4MzIsMHhDMCwweEVCLDB4MDksMHg4MCwweEU0LDB4MDIsMHhEMCwweEVDLDB4QjAsMHgwMiwweDJBLDB4QzQsMHhFOCwweDhDLDB4RkMsCi0weDM2LDB4RjYsMHgwNiwweEI3LDB4MTMsMHg0MCwweDc0LDB4MDUsMHhFOCwweDhELDB4RkUsMHhFQiwweDAzLDB4RTgsMHg5NCwweEZFLAotMHgzNiwweEY2LDB4MDYsMHhCNywweDEzLDB4MjAsMHg3NCwweDA1LDB4RTgsMHg2OSwweEZFLDB4RUIsMHgwMywweEU4LDB4NzAsMHhGRSwKLTB4RjgsMHhDMywweEY4LDB4QzMsMHg4QiwweDQ2LDB4MzgsMHhBOSwweDA0LDB4MDAsMHg3NSwweDIzLDB4MEQsMHgwNCwweDAwLDB4ODksCi0weDQ2LDB4MzgsMHg4MywweEMyLDB4MDgsMHg4QiwweDQ2LDB4MkUsMHgzQiwweDQ2LDB4M0MsMHg3MywweDE0LDB4ODMsMHg0RSwweDM4LAotMHgxMCwweDhBLDB4ODYsMHhBNywweDAwLDB4MjQsMHhGRSwweDg4LDB4ODYsMHhBNywweDAwLDB4RUUsMHg4MywweEVBLDB4MDgsMHhGOCwKLTB4QzMsMHg4QSwweDg2LDB4QTcsMHgwMCwweDBDLDB4MDEsMHhFQiwweEVFLDB4OTAsMHg4QiwweDQ2LDB4MzgsMHhBOSwweDA0LDB4MDAsCi0weDc0LDB4MDYsMHgyNSwweEZCLDB4RkYsMHg4OSwweDQ2LDB4MzgsMHhGOCwweEMzLDB4QUQsMHg0OSwweDQ5LDB4RTgsMHhCRSwweEZCLAotMHg4OSwweDg2LDB4OEUsMHgwMCwweEY4LDB4QzMsMHhBRCwweDQ5LDB4NDksMHhFOCwweEIyLDB4RkIsMHg4OSwweDg2LDB4OTAsMHgwMCwKLTB4RjgsMHhDMywweDgzLDB4NEUsMHgyNiwweDA0LDB4RTgsMHg5MiwweEZBLDB4RjgsMHhDMywweDkwLDB4ODMsMHg2NiwweDI2LDB4RkIsCi0weEU4LDB4ODgsMHhGQSwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHg4NCwweEMwLDB4NzUsMHgwNywweDgwLDB4OEUsMHhBMywweDAwLAotMHgwNCwweEY4LDB4QzMsMHg4MCwweEE2LDB4QTMsMHgwMCwweEZCLDB4RjgsMHhDMywweEFDLDB4NDksMHg4MywweEMyLDB4MDgsMHgzQywKLTB4MDIsMHg3NiwweDAyLDB4MzIsMHhDMCwweDNDLDB4MDEsMHg3NCwweDEyLDB4NzcsMHgwQiwweDhBLDB4ODYsMHhBNywweDAwLDB4MjQsCi0weEVGLDB4ODgsMHg4NiwweEE3LDB4MDAsMHhFRSwweDgzLDB4RUEsMHgwOCwweEY4LDB4QzMsMHg4QSwweDg2LDB4QTcsMHgwMCwweDBDLAotMHgxMCwweEVCLDB4RUUsMHg5MCwweDUyLDB4ODMsMHhDMiwweDA2LDB4QjAsMHhCRiwweEVFLDB4NTIsMHg4MywweEMyLDB4MDQsMHhBQywKLTB4NDksMHhFRSwweDVBLDB4OEEsMHg4NiwweEE4LDB4MDAsMHhFRSwweDVBLDB4RjgsMHhDMywweDkwLDB4NTIsMHg4MywweEMyLDB4MDYsCi0weEIwLDB4QkYsMHhFRSwweDUyLDB4ODMsMHhDMiwweDA4LDB4RUIsMHhFNiwweDkwLDB4QUMsMHg0OSwweEY4LDB4QzMsMHhBQywweDQ5LAotMHhFOCwweEI0LDB4RUUsMHg3MywweDAzLDB4RTgsMHhGNywweEVFLDB4RjgsMHhDMywweDhBLDB4ODYsMHhBRiwweDAwLDB4MjQsMHg3RiwKLTB4RTgsMHhCRCwweEY5LDB4QjgsMHhGMCwweDAwLDB4RTgsMHg2NiwweEYyLDB4ODEsMHg2NiwweDI2LDB4RkYsMHhGMywweEU4LDB4MjMsCi0weEZBLDB4RTgsMHhEMiwweEY5LDB4RjgsMHhDMywweEI4LDB4ODAsMHgwMCwweEU4LDB4MzcsMHhGMiwweDgwLDB4NEUsMHgyNywweDA4LAotMHhFOCwweDExLDB4RkEsMHhFOCwweEMwLDB4RjksMHhGOCwweEMzLDB4QjgsMHg4MCwweDAwLDB4RTgsMHg0MSwweEYyLDB4ODEsMHg2NiwKLTB4MjYsMHhGRiwweEY3LDB4RTgsMHhGRSwweEY5LDB4RTgsMHhBRCwweEY5LDB4RjgsMHhDMywweDkwLDB4QjgsMHgxMCwweDAwLDB4RTgsCi0weDExLDB4RjIsMHg4MCwweDRFLDB4MjcsMHgwNCwweEU4LDB4RUIsMHhGOSwweEU4LDB4OUEsMHhGOSwweEY4LDB4QzMsMHhCOCwweDEwLAotMHgwMCwweEU4LDB4RkYsMHhGMSwweDgxLDB4NjYsMHgyNiwweEZGLDB4RkIsMHhFOCwweEQ4LDB4RjksMHhGOCwweEMzLDB4QUMsMHg0OSwKLTB4RjgsMHhDMywweDgzLDB4QzIsMHgwNiwweDhBLDB4ODYsMHhBOCwweDAwLDB4MEMsMHg0MCwweDg4LDB4ODYsMHhBOCwweDAwLDB4RUUsCi0weDgzLDB4RUEsMHgwNiwweEY4LDB4QzMsMHg5MCwweDgzLDB4QzIsMHgwNiwweDhBLDB4ODYsMHhBOCwweDAwLDB4MjQsMHhCRiwweEVCLAotMHhFQSwweDkwLDB4QUMsMHg0OSwweDhBLDB4RTAsMHg4MCwweEMyLDB4MEEsMHhFQywweDgwLDB4RUEsMHgwQSwweEE4LDB4MjAsMHg3NCwKLTB4MDUsMHg4QSwweEM0LDB4RUUsMHhGOCwweEMzLDB4MDYsMHg1MSwweDU3LDB4OEIsMHg0RSwweDI0LDB4RTMsMHgzNCwweDQ5LDB4ODksCi0weDRFLDB4MjQsMHhGRiwweDQ2LDB4MUEsMHg4RSwweDQ2LDB4MDIsMHg4QiwweDdFLDB4MjIsMHg4QSwweEM0LDB4QUEsMHg4OSwweDdFLAotMHgyMiwweDhCLDB4NDYsMHgyNiwweDI0LDB4RkQsMHg4OSwweDQ2LDB4MjYsMHg3NSwweDI5LDB4OEEsMHg4NiwweEE1LDB4MDAsMHhBOCwKLTB4MDIsMHg3NSwweDIxLDB4ODAsMHhDMiwweDAyLDB4MEMsMHgwMiwweDg4LDB4ODYsMHhBNSwweDAwLDB4RUUsMHg4MCwweEVBLDB4MDIsCi0weEVCLDB4MTIsMHhDNCwweDdFLDB4MDAsMHgzQiwweDdFLDB4MUUsMHg3NiwweDBBLDB4NEYsMHgyNiwweDg4LDB4MjUsMHg4OSwweDdFLAotMHgwMCwweEZGLDB4NDYsMHgxQSwweDVGLDB4NTksMHgwNywweEY4LDB4QzMsMHg5MCwweEFDLDB4QUQsMHg4MywweEU5LDB4MDMsMHg4NSwKLTB4QzAsMHg3NCwweDA1LDB4M0QsMHgwMCwweDIwLDB4NzIsMHgwNSwweEI4LDB4RkYsMHhGRiwweEVCLDB4MDMsMHhDMSwweEUwLDB4MDMsCi0weDNCLDB4ODYsMHg5NCwweDAwLDB4NzQsMHgyNiwweDg5LDB4ODYsMHg5NCwweDAwLDB4OEIsMHhEOCwweDUyLDB4ODMsMHhDMiwweDA2LAotMHg4QSwweDg2LDB4QTgsMHgwMCwweDhBLDB4RTAsMHgwQywweDgwLDB4RUUsMHg4MywweEVBLDB4MDYsMHg4QSwweEMzLDB4RUUsMHg4MywKLTB4QzIsMHgwMiwweDhBLDB4QzcsMHhFRSwweDgzLDB4QzIsMHgwNCwweDhBLDB4QzQsMHhFRSwweDVBLDB4RjgsMHhDMywweEIwLDB4ODgsCi0weDg4LDB4ODYsMHhCQywweDAwLDB4RTgsMHg4QywweEYyLDB4MzMsMHhEQiwweDhBLDB4ODYsMHhBNSwweDAwLDB4QTgsMHgwMiwweDc0LAotMHgwMywweDgwLDB4Q0IsMHgwMSwweEE4LDB4MDUsMHg3NCwweDAzLDB4ODAsMHhDQiwweDAyLDB4QTgsMHgwOCwweDc0LDB4MDMsMHg4MCwKLTB4Q0IsMHgwNCwweEY2LDB4ODYsMHhBNywweDAwLDB4MTAsMHg3NCwweDAzLDB4ODAsMHhDQiwweDEwLDB4OEEsMHg4NiwweEE5LDB4MDAsCi0weEY2LDB4QzMsMHgwNCwweDc1LDB4MEEsMHg4MywweEMyLDB4MEMsMHhFQywweDgzLDB4RUEsMHgwQywweEMwLDB4RTgsMHgwNCwweDhBLAotMHhFMCwweDhBLDB4ODYsMHhBRiwweDAwLDB4QTgsMHg4MCwweDc0LDB4MDgsMHhGNiwweEM0LDB4MDEsMHg3NSwweDAzLDB4ODAsMHhDQiwKLTB4MjAsMHhGNiwweDg2LDB4QTcsMHgwMCwweDAyLDB4NzUsMHgwQSwweEY3LDB4NDYsMHgzOCwweDA0LDB4MDAsMHg3NCwweDAzLDB4ODAsCi0weENCLDB4NDAsMHg4OCwweDlFLDB4QkUsMHgwMCwweEZFLDB4ODYsMHhCNCwweDAwLDB4QjAsMHgwQSwweEU4LDB4RjMsMHhEQiwweEY4LAotMHhDMywweEZFLDB4ODYsMHhCNCwweDAwLDB4QjAsMHgwQSwweEU4LDB4RTgsMHhEQiwweEY4LDB4QzMsMHhBQywweDQ5LDB4M0MsMHgwMiwKLTB4NzQsMHgzNywweDc3LDB4MTAsMHg4NCwweEMwLDB4NzQsMHgwNiwweDgwLDB4NEUsMHgzOCwweDAxLDB4RjgsMHhDMywweDgwLDB4NjYsCi0weDM4LDB4RkUsMHhGOCwweEMzLDB4OEIsMHg0NiwweDM4LDB4MjUsMHhGRiwweEY3LDB4ODksMHg0NiwweDM4LDB4QTksMHgwMCwweDA0LAotMHg3NSwweEVBLDB4OEEsMHg4NiwweEE1LDB4MDAsMHhBOCwweDAxLDB4NzUsMHhFMiwweDBDLDB4MDUsMHg4MywweEMyLDB4MDIsMHg4OCwKLTB4ODYsMHhBNSwweDAwLDB4RUUsMHg4MywweEVBLDB4MDIsMHhGOCwweEMzLDB4ODEsMHg0RSwweDM4LDB4MDAsMHgwOCwweDhBLDB4ODYsCi0weEE1LDB4MDAsMHhBOCwweDAxLDB4NzQsMHhDNiwweDI0LDB4RkEsMHhFQiwweEUyLDB4QUQsMHg0OSwweDQ5LDB4RjgsMHhDMywweDkwLAotMHhFOCwweDExLDB4RkEsMHhGRSwweDg2LDB4QjksMHgwMCwweEIwLDB4MEUsMHhFOCwweDg2LDB4REIsMHhGOCwweEMzLDB4QjAsMHhGRiwKLTB4RTgsMHhCRiwweEVDLDB4RjgsMHhDMywweDkwLDB4ODMsMHg2NiwweDdBLDB4RkIsMHhCMCwweDAwLDB4RTgsMHg3MywweERCLDB4RjgsCi0weEMzLDB4OTAsMHhBQywweDQ5LDB4RTgsMHg1MywweEQ5LDB4NzIsMHgxMSwweDM2LDB4ODgsMHgxRSwweDFBLDB4MDEsMHgzNiwweEEwLAotMHg4RSwweDEyLDB4MEEsMHhDMywweDUyLDB4QkEsMHgwMCwweDAxLDB4RUUsMHg1QSwweEY4LDB4QzMsMHhBQywweDQ5LDB4MzIsMHhFNCwKLTB4MzYsMHhBMywweDg2LDB4MTIsMHgwNSwweDA2LDB4MDAsMHgzNiwweDhCLDB4MUUsMHg4OCwweDEyLDB4MkIsMHhEOCwweDM2LDB4ODksCi0weDFFLDB4OEEsMHgxMiwweEY4LDB4QzMsMHg5MCwweEFELDB4OEIsMHhEOCwweEFELDB4ODMsMHhFOSwweDA0LDB4MDMsMHhDMywweDJCLAotMHg0NiwweDc2LDB4ODksMHg0NiwweDc4LDB4RjcsMHg0NiwweDdBLDB4MDIsMHgwMCwweDc0LDB4MEEsMHg4MywweDY2LDB4N0EsMHhGRCwKLTB4QjgsMHgwMCwweDAwLDB4RTgsMHgxQywweERCLDB4RjgsMHhDMywweDA2LDB4MTYsMHgwNywweEFDLDB4NDksMHgyNSwweDBGLDB4MDAsCi0weDZCLDB4QzAsMHgwOSwweDhELDB4QkUsMHhGRCwweDAwLDB4MDMsMHhGOCwweEFDLDB4NDksMHgyNSwweDBGLDB4MDAsMHhBQSwweDg1LAotMHhDMCwweDc0LDB4MDgsMHgyQiwweEM4LDB4NTEsMHg4QiwweEM4LDB4RjMsMHhBNCwweDU5LDB4RTgsMHgyNywweEYwLDB4RTgsMHg0NCwKLTB4MDMsMHgwNywweEY4LDB4QzMsMHgzMywweEMwLDB4QUMsMHg0OSwweDM2LDB4QTMsMHhCMiwweDEzLDB4MzYsMHhBMywweEIwLDB4MTMsCi0weEY4LDB4QzMsMHg4MywweDY2LDB4N0EsMHhFRiwweEU4LDB4MkMsMHgwMywweEY4LDB4QzMsMHg5MCwweDgzLDB4NEUsMHg3QSwweDEwLAotMHhFQiwweEY0LDB4RTgsMHg5QiwweEYwLDB4RjgsMHhDMywweDkwLDB4QUQsMHgzQywweDE5LDB4NzcsMHgwRSwweDNDLDB4MTksMHg3NywKLTB4MEEsMHg4QiwweEY4LDB4ODEsMHhFNywweEZGLDB4MDAsMHg4OCwweEE2LDB4QzQsMHgwMCwweEY4LDB4QzMsMHg5MCwweDgzLDB4NEUsCi0weDI2LDB4MjAsMHhBQywweDQ5LDB4MzIsMHhFNCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4QzEsMHhFMywweDAyLDB4MDMsMHhDMywweDg5LAotMHg0NiwweDZFLDB4ODMsMHg0RSwweDQ4LDB4MDQsMHhCMCwweDA2LDB4RTgsMHg5NywweERBLDB4NDksMHg0NiwweEY5LDB4QzMsMHg5MCwKLTB4RkUsMHg4NiwweEIzLDB4MDAsMHhCMCwweDBBLDB4RTgsMHg4OSwweERBLDB4RjgsMHhDMywweDkwLDB4MzMsMHhDMCwweEFDLDB4NDksCi0weDZCLDB4QzAsMHgwQSwweDg5LDB4ODYsMHg4QSwweDAwLDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwweDMyLDB4RTQsMHgzRCwweDBBLAotMHgwMCwweDc3LDB4MDUsMHhCOCwweDBBLDB4MDAsMHhFQiwweDA4LDB4M0QsMHg1QSwweDAwLDB4NzIsMHgwMywweEI4LDB4NUEsMHgwMCwKLTB4NTEsMHhGNywweEQ4LDB4MDUsMHg2NCwweDAwLDB4OEIsMHhDOCwweDhCLDB4NDYsMHg0NCwweEY3LDB4RTEsMHhCOSwweDY0LDB4MDAsCi0weEY3LDB4RjEsMHg4OSwweDQ2LDB4NDYsMHg1OSwweEY4LDB4QzMsMHhBQywweDQ5LDB4RTgsMHg4NSwweEVCLDB4RjgsMHhDMywweDkwLAotMHhBQywweDQ5LDB4ODQsMHhDMCwweDc1LDB4MDcsMHg4MSwweDY2LDB4MzgsMHhGRiwweEZELDB4RjgsMHhDMywweDgxLDB4NEUsMHgzOCwKLTB4MDAsMHgwMiwweEY3LDB4NDYsMHgzOCwweDQwLDB4MDAsMHg3NSwweDA4LDB4OEEsMHg4NiwweEE5LDB4MDAsMHg4OCwweDg2LDB4QUEsCi0weDAwLDB4RjgsMHhDMywweDkwLDB4NTEsMHg1NiwweEU4LDB4N0YsMHgwQywweDVFLDB4NTksMHhGOCwweEMzLDB4OTAsMHhGRSwweDg2LAotMHhCNiwweDAwLDB4QjAsMHgwQSwweEU4LDB4MEIsMHhEQSwweEY4LDB4QzMsMHg5MCwweEZFLDB4ODYsMHhCNywweDAwLDB4QjAsMHgwQSwKLTB4RTgsMHhGRiwweEQ5LDB4RjgsMHhDMywweDkwLDB4RkUsMHg4NiwweEI4LDB4MDAsMHhCMCwweDBBLDB4RTgsMHhGMywweEQ5LDB4RjgsCi0weEMzLDB4OTAsMHgwMCwweDkwLDB4NTEsMHg1NSwweEFDLDB4MkUsMHhBMiwweDUyLDB4MzYsMHgzMywweEM5LDB4QUQsMHg4QiwweEY5LAotMHhDMSwweEU3LDB4MDUsMHhBOSwweDAxLDB4MDAsMHg3NCwweDIzLDB4MkUsMHg4QiwweEFELDB4NDQsMHgwMCwweDgzLDB4N0UsMHgwOCwKLTB4MDAsMHg3NCwweDE4LDB4MkUsMHg4MCwweDNFLDB4NTIsMHgzNiwweDAxLDB4NzQsMHgwOSwweDYwLDB4QjAsMHgwNCwweEU4LDB4QkIsCi0weDBDLDB4NjEsMHhFQiwweDA3LDB4NjAsMHhCMCwweEZCLDB4RTgsMHhFQywweDBDLDB4NjEsMHg0NywweDQ3LDB4RDEsMHhFOCwweDc1LAotMHhEMiwweDQxLDB4ODMsMHhGOSwweDA0LDB4NzIsMHhDNiwweDVELDB4NTksMHg4MywweEU5LDB4MDUsMHhGNywweDQ2LDB4MzgsMHg0MCwKLTB4MDAsMHg3NCwweDA1LDB4RTgsMHg4NywweEVBLDB4RjgsMHhDMywweEU4LDB4OEQsMHhFQSwweEY4LDB4QzMsMHg5MCwweDM2LDB4QzYsCi0weDA2LDB4QzgsMHgxMywweDAxLDB4RjgsMHhDMywweDMzLDB4QzAsMHhBQywweDQ5LDB4MzYsMHhBMywweDgwLDB4MTIsMHhBQywweDQ5LAotMHgzNiwweDJCLDB4MDYsMHg4OCwweDEyLDB4RjcsMHhEOCwweDM2LDB4QTMsMHg4MiwweDEyLDB4RjgsMHhDMywweDkwLDB4REUsMHgyNiwKLTB4REUsMHgyNiwweEVDLDB4MjYsMHhGMiwweDI2LDB4RjgsMHgyNiwweEZFLDB4MjYsMHgwNCwweDI3LDB4MEUsMHgyNywweDE2LDB4MjcsCi0weDFFLDB4MjcsMHgyNiwweDI3LDB4MkUsMHgyNywweDM0LDB4MjcsMHhCRSwweDM0LDB4QzYsMHgzNCwweEQyLDB4MzQsMHgzQSwweDI3LAotMHg3OCwweDI3LDB4ODAsMHgyNywweDk0LDB4MjcsMHhBMCwweDI3LDB4QjQsMHgyNywweEMwLDB4MjcsMHhENCwweDI3LDB4RTAsMHgyNywKLTB4RjQsMHgyNywweDAwLDB4MjgsMHgxMCwweDI4LDB4RUMsMHgzNCwweERFLDB4MjYsMHgxRSwweDI4LDB4MjYsMHgyOCwweDJDLDB4MjgsCi0weDMyLDB4MjgsMHgzOCwweDI4LDB4NEUsMHgyOCwweDhBLDB4MjgsMHgwNiwweDM1LDB4MjgsMHgzNSwweDk4LDB4MjgsMHhCRSwweDI4LAotMHhEMiwweDI4LDB4REUsMHgyOCwweEU2LDB4MjgsMHg1NCwweDM1LDB4NjIsMHgzNSwweDZDLDB4MzUsMHhFRSwweDI4LDB4QzAsMHgyOSwKLTB4QzgsMHgyOSwweENFLDB4MjksMHhFMCwweDI5LDB4NzIsMHgzNSwweDc4LDB4MzUsMHhGMCwweDI5LDB4RkMsMHgyOSwweDhFLDB4MzUsCi0weDA4LDB4MkEsMHgxMiwweDJBLDB4MUMsMHgyQSwweEIwLDB4MzUsMHgzNiwweDJBLDB4QkMsMHgzNSwweDVBLDB4MkEsMHg2MiwweDJBLAotMHg2OCwweDJBLDB4Q0EsMHgzNSwweDdDLDB4MkEsMHhGOCwweDM1LDB4ODgsMHgyQSwweEE2LDB4MkEsMHhCOCwweDJBLDB4Q0MsMHgyQSwKLTB4REUsMHgyQSwweEYyLDB4MkEsMHgwMCwweDM2LDB4MEEsMHgyQiwweDI0LDB4MkIsMHgyNCwweDM2LDB4MzgsMHgyQiwweDRDLDB4MkIsCi0weDg0LDB4MkIsMHgyRSwweDM2LDB4M0EsMHgzNiwweDQ2LDB4MzYsMHg1NCwweDM2LDB4RTgsMHgyQiwweEFFLDB4MzYsMHg0MCwweDJDLAotMHg2MiwweDJDLDB4QjYsMHgzNiwweDcwLDB4MjgsMHhERSwweDI2LDB4REUsMHgyNiwweEQ0LDB4MkUsMHhFOCwweDJFLDB4RjAsMHgyRSwKLTB4RjgsMHgyRSwweDAwLDB4MkYsMHgwQSwweDJGLDB4MTIsMHgyRiwweDFBLDB4MkYsMHgyMiwweDJGLDB4MkEsMHgyRiwweDQyLDB4MkYsCi0weEJFLDB4MzQsMHhDNiwweDM0LDB4RDIsMHgzNCwweDUwLDB4MkYsMHg4QywweDJGLDB4OTQsMHgyRiwweEE4LDB4MkYsMHhCNCwweDJGLAotMHhDOCwweDJGLDB4RDQsMHgyRiwweEU4LDB4MkYsMHhGNCwweDJGLDB4MDgsMHgzMCwweDE0LDB4MzAsMHgxQywweDMwLDB4RUMsMHgzNCwKLTB4REUsMHgyNiwweDI0LDB4MzAsMHgzMCwweDMwLDB4MzgsMHgzMCwweDQ0LDB4MzAsMHg0QywweDMwLDB4NjIsMHgzMCwweEE0LDB4MzAsCi0weDA2LDB4MzUsMHgyOCwweDM1LDB4QUEsMHgzMCwweENFLDB4MzAsMHhENiwweDMwLDB4RUEsMHgzMCwweEYyLDB4MzAsMHg1NCwweDM1LAotMHg2MiwweDM1LDB4NkMsMHgzNSwweEZBLDB4MzAsMHhDMiwweDMxLDB4QzIsMHgzMSwweEM0LDB4MzEsMHhGQSwweDMxLDB4NzIsMHgzNSwKLTB4NzgsMHgzNSwweDBBLDB4MzIsMHgxNiwweDMyLDB4OEUsMHgzNSwweDIyLDB4MzIsMHgyQywweDMyLDB4MzYsMHgzMiwweEIwLDB4MzUsCi0weDRBLDB4MzIsMHhCQywweDM1LDB4NzQsMHgzMiwweDhDLDB4MzIsMHg5QSwweDMyLDB4Q0EsMHgzNSwweDlFLDB4MzIsMHhGOCwweDM1LAotMHhBQSwweDMyLDB4QzYsMHgzMiwweEQ4LDB4MzIsMHhFQywweDMyLDB4RkUsMHgzMiwweDBFLDB4MzMsMHgwMCwweDM2LDB4MTIsMHgzMywKLTB4MjYsMHgzMywweDI0LDB4MzYsMHgzMiwweDMzLDB4OUEsMHgzMywweERFLDB4MzMsMHgyRSwweDM2LDB4M0EsMHgzNiwweDQ2LDB4MzYsCi0weDU0LDB4MzYsMHg1QywweDM0LDB4QUUsMHgzNiwweEFBLDB4MzQsMHhCMCwweDM0LDB4QjYsMHgzNiwweDhDLDB4MzAsMHhFMywweDI4LAotMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzUsMHgzMiwweEU4LDB4RTMsMHhFOCwweDMzLDB4QzAsMHhBQywweDQ5LDB4M0QsMHg1QiwKLTB4MDAsMHg3NywweDE5LDB4OEIsMHhEOCwweEQxLDB4RTMsMHgyRSwweEZGLDB4OTcsMHhDRSwweDM2LDB4NzIsMHgwQiwweDg1LDB4QzksCi0weDc1LDB4RTgsMHg4QiwweDQ2LDB4NDgsMHhFOCwweDFBLDB4MEMsMHhDMywweDRFLDB4NDEsMHhDMywweDZBLDB4MDAsMHgxRiwweEM2LAotMHgwNiwweDkzLDB4MTIsMHgwQywweDlDLDB4MEUsMHhFOCwweDYzLDB4REEsMHhFOCwweEJDLDB4RTgsMHgzMywweEMwLDB4QUMsMHg0OSwKLTB4M0QsMHg1QiwweDAwLDB4NzcsMHhFNywweDhCLDB4RDgsMHhEMSwweEUzLDB4MkUsMHhGRiwweDk3LDB4ODYsMHgzNywweDcyLDB4RDksCi0weDg1LDB4QzksMHg3NSwweEU4LDB4QzMsMHhGNywweDQ2LDB4N0EsMHgxMCwweDAwLDB4NzUsMHgwRiwweDgzLDB4QkUsMHg4NCwweDAwLAotMHgwMCwweDc0LDB4MDgsMHhCOCwweDQ4LDB4M0EsMHg4OSwweDg2LDB4ODAsMHgwMCwweEMzLDB4ODEsMHhCRSwweDgwLDB4MDAsMHhFQywKLTB4M0MsMHg3NCwweEY3LDB4ODMsMHhCRSwweDg4LDB4MDAsMHgwMCwweDc1LDB4MDUsMHhCOCwweEVDLDB4M0MsMHhFQiwweEU3LDB4RjcsCi0weDQ2LDB4N0EsMHgwOCwweDAwLDB4NzUsMHg0MCwweDFFLDB4NjAsMHg4QiwweDhFLDB4ODgsMHgwMCwweDNCLDB4NEUsMHg3NCwweDc3LAotMHgzMywweDNCLDB4NEUsMHg3OCwweDc3LDB4MkUsMHhDNCwweDdFLDB4MTAsMHg4QiwweERGLDB4MjYsMHgwMywweDNELDB4NDcsMHg0NywKLTB4MzMsMHhDMCwweDhFLDB4RDgsMHg4RCwweEI2LDB4RjQsMHgwMCwweDhCLDB4QzEsMHhGNywweDQ2LDB4N0EsMHgwMSwweDAwLDB4NzUsCi0weDFELDB4RjMsMHhBNCwweDI2LDB4MDEsMHgwNywweDI5LDB4NDYsMHg3OCwweDAxLDB4NDYsMHg3NiwweDI5LDB4NDYsMHg3NCwweEIwLAotMHgwQywweEU4LDB4M0UsMHhENywweDYxLDB4MUYsMHhDNywweDg2LDB4ODgsMHgwMCwweDAwLDB4MDAsMHhFQiwweEFDLDB4RTMsMHhFMywKLTB4NTAsMHg5MCwweEFDLDB4MjQsMHg3RiwweEFBLDB4RTIsMHhGQSwweDU4LDB4RUIsMHhEOCwweDkwLDB4OEIsMHg4RSwweDg4LDB4MDAsCi0weEUzLDB4NDYsMHg4QiwweDlFLDB4OEEsMHgwMCwweDg1LDB4REIsMHg3NCwweDNFLDB4QkEsMHg1MCwweEZGLDB4RUQsMHgyQiwweDg2LAotMHg4MiwweDAwLDB4M0IsMHhDMywweDcyLDB4MzcsMHg4RCwweEI2LDB4RjQsMHgwMCwweEM0LDB4N0UsMHgxMCwweDhCLDB4REYsMHgyNiwKLTB4MDMsMHgzRCwweDQ3LDB4NDcsMHg4QiwweEMxLDB4MTYsMHgxRiwweEY3LDB4NDYsMHg3QSwweDAxLDB4MDAsMHg3NSwweDI0LDB4RjMsCi0weEE0LDB4MjYsMHgwMSwweDA3LDB4MjksMHg0NiwweDc4LDB4MDEsMHg0NiwweDc2LDB4MjksMHg0NiwweDc0LDB4QzcsMHg4NiwweDg4LAotMHgwMCwweDAwLDB4MDAsMHhCMCwweDBDLDB4RTgsMHhEQSwweEQ2LDB4ODMsMHg2NiwweDdBLDB4RjcsMHhDMywweEIwLDB4MDAsMHhFOCwKLTB4RDAsMHhENiwweEMzLDB4RTMsMHhEQywweDUwLDB4QUMsMHgyNCwweDdGLDB4QUEsMHhFMiwweEZBLDB4NTgsMHhFQiwweEQyLDB4OTAsCi0weDFFLDB4NjAsMHgzMywweEMwLDB4OEUsMHhEOCwweDhELDB4QjYsMHhGRCwweDAwLDB4OEIsMHg4NiwweDg4LDB4MDAsMHg4QiwweDk2LAotMHg4NCwweDAwLDB4M0EsMHgwNCwweDc1LDB4MTAsMHg4QiwweERFLDB4NDYsMHg4QiwweEM4LDB4OEQsMHhCRSwweEY0LDB4MDAsMHhGMywKLTB4QTYsMHg3NCwweDY2LDB4OEIsMHhGMywweDkwLDB4ODMsMHhDNiwweDA5LDB4NEEsMHg3NSwweEU2LDB4OEQsMHhCNiwweEZELDB4MDAsCi0weDhCLDB4OTYsMHg4NCwweDAwLDB4M0EsMHgwNCwweDczLDB4MTAsMHg4QiwweERFLDB4NDYsMHg4QiwweEM4LDB4OEQsMHhCRSwweEY0LAotMHgwMCwweEYzLDB4QTYsMHg3NCwweDc2LDB4OEIsMHhGMywweDkwLDB4ODMsMHhDNiwweDA5LDB4NEEsMHg3NSwweEU2LDB4OEQsMHhCNiwKLTB4RjQsMHgwMCwweEFDLDB4RjcsMHg0NiwweDdBLDB4MDEsMHgwMCwweDc0LDB4MDIsMHgyNCwweDdGLDB4MUUsMHhDNSwweDVFLDB4MTAsCi0weDhCLDB4MzcsMHg4OCwweDQwLDB4MDIsMHg0NiwweDg5LDB4MzcsMHhGRiwweDRFLDB4NzgsMHhGRiwweDQ2LDB4NzYsMHhGRiwweDRFLAotMHg3NCwweDFGLDB4OEIsMHg4RSwweDg4LDB4MDAsMHg0OSwweDg5LDB4OEUsMHg4OCwweDAwLDB4RTMsMHg0MywweDhELDB4QjYsMHhGNCwKLTB4MDAsMHg4QiwweEZFLDB4NDYsMHhGMywweEE0LDB4RTksMHg3RCwweEZGLDB4QzUsMHg3NiwweDEwLDB4OEIsMHgxQywweDg1LDB4REIsCi0weDc0LDB4MDgsMHgwMywweEYzLDB4ODMsMHhDNiwweDAzLDB4ODMsMHhFNiwweEZFLDB4OEIsMHg4NiwweDg0LDB4MDAsMHgyQiwweEMyLAotMHhCNCwweDgwLDB4ODksMHgwNCwweDQ2LDB4NDYsMHhDNywweDA0LDB4MDAsMHgwMCwweDg5LDB4NzYsMHgxMCwweDgzLDB4NEUsMHg3QSwKLTB4MDQsMHhDNywweDg2LDB4ODgsMHgwMCwweDAwLDB4MDAsMHg2MSwweDFGLDB4RjksMHhDMywweDMzLDB4QzAsMHg2MSwweDFGLDB4QzMsCi0weEIwLDB4ODAsMHg4NCwweEMwLDB4NjEsMHgxRiwweEMzLDB4OTAsMHg4QiwweDRFLDB4NzgsMHgyQiwweDhFLDB4ODgsMHgwMCwweDc2LAotMHgyNywweDg5LDB4QjYsMHg4QywweDAwLDB4OEIsMHg1RSwweDc0LDB4M0IsMHhDQiwweDcyLDB4MDIsMHg4QiwweENCLDB4M0IsMHhDOCwKLTB4NzIsMHgwMiwweDhCLDB4QzgsMHg4QiwweEMxLDB4RTMsMHg0NCwweDMzLDB4RDIsMHg4RSwweEMyLDB4OEIsMHhEMSwweDgzLDB4QkUsCi0weDg4LDB4MDAsMHgwMCwweDc0LDB4MDYsMHhFOSwweDhFLDB4MDAsMHgzMywweEMwLDB4QzMsMHg4QiwweDVFLDB4MTAsMHgwMywweDFGLAotMHg0MywweDQzLDB4NTIsMHhGNywweDQ2LDB4N0EsMHgwMSwweDAwLDB4NzUsMHgyQSwweEFDLDB4OEQsMHhCRSwweEU0LDB4MDAsMHg4QiwKLTB4OEUsMHg4NiwweDAwLDB4RjIsMHhBRSwweDc0LDB4MzQsMHg4OCwweDA3LDB4NDMsMHg0QSwweDc1LDB4RUQsMHg1OCwweDhCLDB4NUUsCi0weDEwLDB4MDEsMHgwNywweDI5LDB4NDYsMHg3OCwweDAxLDB4NDYsMHg3NiwweDI5LDB4NDYsMHg3NCwweDhCLDB4QzYsMHgyQiwweDg2LAotMHg4QywweDAwLDB4QzMsMHg5MCwweEFDLDB4OEQsMHhCRSwweEU0LDB4MDAsMHg4QiwweDhFLDB4ODYsMHgwMCwweEYyLDB4QUUsMHg3NCwKLTB4MEEsMHgyNCwweDdGLDB4ODgsMHgwNywweDQzLDB4NEEsMHg3NSwweEVCLDB4RUIsMHhEMiwweDg4LDB4ODYsMHhGNCwweDAwLDB4QzcsCi0weDg2LDB4ODgsMHgwMCwweDAxLDB4MDAsMHg1OCwweDJCLDB4QzIsMHg3NCwweDBFLDB4OEIsMHg1RSwweDEwLDB4MDEsMHgwNywweDI5LAotMHg0NiwweDc4LDB4MDEsMHg0NiwweDc2LDB4MjksMHg0NiwweDc0LDB4NDAsMHhFOCwweDk0LDB4RkUsMHg3MiwweEJFLDB4NEEsMHg3NSwKLTB4MTUsMHg4MywweEJFLDB4OEEsMHgwMCwweDAwLDB4NzQsMHhCNCwweEJBLDB4NTAsMHhGRiwweEVELDB4ODksMHg4NiwweDgyLDB4MDAsCi0weDgzLDB4NEUsMHg3QSwweDA4LDB4RUIsMHhBNiwweDhELDB4QkUsMHhGNCwweDAwLDB4MDMsMHhCRSwweDg4LDB4MDAsMHhBNCwweEZGLAotMHg4NiwweDg4LDB4MDAsMHhFOCwweDZBLDB4RkUsMHg3MiwweDk0LDB4NzksMHgwNiwweDRBLDB4NzQsMHg4RiwweEU5LDB4NUIsMHhGRiwKLTB4NEEsMHg3NCwweENFLDB4RUIsMHhFMSwweDkwLDB4NTAsMHhFOCwweDExLDB4Q0MsMHg4QiwweDQ2LDB4NzQsMHgzOSwweDQ2LDB4NzIsCi0weDc0LDB4MjcsMHgxRSwweDU2LDB4NTEsMHgzMywweEM5LDB4QzUsMHg3NiwweDBDLDB4QUQsMHg3NCwweDEwLDB4NzgsMHgwOSwweDAzLAotMHhDOCwweDA1LDB4MDEsMHgwMCwweDI0LDB4RkUsMHgwMywweEYwLDB4M0IsMHg3NiwweDEwLDB4NzYsMHhFRCwweDI5LDB4NEUsMHg3NiwKLTB4MDEsMHg0RSwweDc4LDB4RTgsMHgzNywweENDLDB4NTksMHg1RSwweDFGLDB4NTgsMHhDMywweDkwLDB4QzQsMHg3RSwweDEwLDB4MjYsCi0weDhCLDB4MUQsMHg4MywweEMzLDB4MDMsMHgyNiwweDg5LDB4MUQsMHg0QiwweDAzLDB4RkIsMHhBQiwweDkxLDB4QUEsMHhCOCwweDAzLAotMHgwMCwweDI5LDB4NDYsMHg3OCwweDAxLDB4NDYsMHg3NiwweDI5LDB4NDYsMHg3NCwweEMzLDB4OTAsMHhDNCwweDdFLDB4MTAsMHgyNiwKLTB4OEIsMHgxRCwweDQzLDB4MjYsMHg4OSwweDFELDB4NDMsMHgwMywweEZCLDB4QUEsMHhGRiwweDRFLDB4NzgsMHhGRiwweDQ2LDB4NzYsCi0weEZGLDB4NEUsMHg3NCwweEMzLDB4RTgsMHhFNSwweEZGLDB4QzMsMHg4MCwweDgxLDB4ODQsMHg4NSwweDgyLDB4ODMsMHg4NiwweDg3LAotMHg1MCwweDUzLDB4OEEsMHhEQywweDgzLDB4RTMsMHgwRSwweEQxLDB4RUIsMHgyRSwweDhBLDB4ODcsMHg5OCwweDNCLDB4MDgsMHg4NiwKLTB4QjAsMHgwMCwweEZFLDB4ODYsMHhCMSwweDAwLDB4QjAsMHgwQSwweEU4LDB4ODcsMHhENCwweDVCLDB4NTgsMHhDMywweDUwLDB4OEEsCi0weEM4LDB4QjgsMHhGRiwweDAwLDB4RTgsMHg5NSwweEZGLDB4NTgsMHhDMywweDkwLDB4OEEsMHg4NiwweEJCLDB4MDAsMHhFOCwweEFCLAotMHhGRiwweEMzLDB4RTgsMHhDQiwweEZGLDB4RTgsMHhGMiwweEZGLDB4QzMsMHg5MCwweEU4LDB4QzMsMHhGRiwweEU4LDB4QjQsMHhGRiwKLTB4QzMsMHg5MCwweDMzLDB4QzAsMHhFOCwweDk1LDB4RkYsMHhDMywweEI4LDB4RkYsMHgwMCwweDMzLDB4QzksMHhFOCwweDZDLDB4RkYsCi0weEMzLDB4OTAsMHhCOCwweEZGLDB4MDEsMHhCMSwweDEwLDB4RTgsMHg2MiwweEZGLDB4QzMsMHg5MCwweEMzLDB4RkMsMHgzQiwweEUyLAotMHgzQiwweEYyLDB4M0IsMHhGMiwweDNCLDB4RkMsMHgzQiwweEUyLDB4M0IsMHhFOCwweDNCLDB4RTgsMHgzQiwweEZDLDB4M0IsMHhFMiwKLTB4M0IsMHhFOCwweDNCLDB4RTgsMHgzQiwweEZDLDB4M0IsMHhFMiwweDNCLDB4RTIsMHgzQiwweEUyLDB4M0IsMHgwMCwweDEwLDB4MDAsCi0weDAwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLAotMHgwMCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwKLTB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDAsMHg1MSwweDUzLDB4OEIsCi0weDRFLDB4MzgsMHg4MSwweEUxLDB4RkYsMHhFRSwweEE4LDB4MDQsMHg3NCwweDA0LDB4ODEsMHhDOSwweDAwLDB4MDEsMHg4QSwweEUwLAotMHg4MCwweEU0LDB4MDMsMHgyNCwweDE4LDB4RDAsMHhFNCwweDBBLDB4QzQsMHgzMywweERCLDB4OEEsMHhEOCwweDJFLDB4OEIsMHg4NywKLTB4RkQsMHgzQiwweDg5LDB4NDYsMHg3QywweDJFLDB4MEIsMHg4RiwweDFELDB4M0MsMHg4OSwweDRFLDB4MzgsMHhEMSwweEVCLDB4MkUsCi0weDhBLDB4QTcsMHgzRCwweDNDLDB4NUIsMHg1OSwweEMzLDB4QUMsMHg0OSwweDNDLDB4MDEsMHg3MiwweDFELDB4NzQsMHgyMCwweDNDLAotMHgwMywweDcyLDB4MjMsMHg3NCwweDI4LDB4M0MsMHgwOCwweDcyLDB4MkIsMHg3NCwweDMwLDB4M0MsMHgyMCwweDcyLDB4MzcsMHg3NCwKLTB4M0EsMHhCQiwweERBLDB4M0IsMHgzMiwweEU0LDB4ODksMHg1RSwweDdFLDB4QzMsMHhCQiwweEEwLDB4M0IsMHhFQiwweEY1LDB4QkIsCi0weDk0LDB4M0IsMHhCNCwweDAxLDB4RUIsMHhGMCwweEJCLDB4RkMsMHgzQiwweEI0LDB4MDIsMHhFQiwweEU5LDB4QkIsMHhFMiwweDNCLAotMHhCNCwweDAzLDB4RUIsMHhFMiwweEJCLDB4QkUsMHgzQiwweEI0LDB4MDQsMHhFQiwweERCLDB4QkIsMHhDQSwweDNCLDB4QUMsMHg0OSwKLTB4ODgsMHg4NiwweEJCLDB4MDAsMHhFQiwweENFLDB4QkIsMHhEMiwweDNCLDB4RUIsMHhGMywweEJCLDB4RkMsMHgzQiwweEVCLDB4QzQsCi0weEE5LDB4MDQsMHgwMCwweDc1LDB4RDEsMHhBOSwweDA4LDB4MDAsMHg3NSwweERBLDB4RUIsMHhEMSwweDhCLDB4NUUsMHg3NCwweDhCLAotMHg0RSwweDc4LDB4M0IsMHhDQiwweDcyLDB4MDIsMHg4QiwweENCLDB4M0IsMHhDOCwweDcyLDB4MDIsMHg4QiwweEM4LDB4OEIsMHhDMSwKLTB4RTMsMHgyQywweEM0LDB4N0UsMHgxMCwweDhCLDB4REYsMHgyNiwweDAzLDB4M0QsMHg0NywweDQ3LDB4RjcsMHg0NiwweDdBLDB4MDEsCi0weDAwLDB4NzUsMHgxQywweEY3LDB4QzcsMHgwMSwweDAwLDB4NzQsMHgwMiwweDQ5LDB4QTQsMHhEMSwweEU5LDB4RjMsMHhBNSwweDczLAotMHgwMSwweEE0LDB4MjYsMHgwMSwweDA3LDB4MjksMHg0NiwweDc4LDB4MDEsMHg0NiwweDc2LDB4MjksMHg0NiwweDc0LDB4QzMsMHg1MCwKLTB4NTMsMHhCQiwweDdGLDB4N0YsMHhGNywweEM3LDB4MDEsMHgwMCwweDc0LDB4MDUsMHg0OSwweEFDLDB4MjIsMHhDMywweEFBLDB4RDEsCi0weEU5LDB4RTMsMHgxRCwweDlDLDB4QUQsMHgyMywweEMzLDB4QUIsMHg0OSwweDc0LDB4MTQsMHhBRCwweDIzLDB4QzMsMHhBQiwweDQ5LAotMHg3NCwweDBELDB4QUQsMHgyMywweEMzLDB4QUIsMHg0OSwweDc0LDB4MDYsMHhBRCwweDIzLDB4QzMsMHhBQiwweEUyLDB4RTUsMHg5RCwKLTB4NzMsMHgwNCwweEFDLDB4MjIsMHhDMywweEFCLDB4NUIsMHg1OCwweEVCLDB4QjgsMHhFOCwweENFLDB4QzksMHg4QiwweDVFLDB4MzgsCi0weEY3LDB4QzMsMHgxMCwweDA0LDB4NzUsMHgwMSwweEMzLDB4RjcsMHhDMywweDQwLDB4MDAsMHg3NCwweDA1LDB4RTgsMHhCOCwweEUzLAotMHhFQiwweDAzLDB4RTgsMHhBOCwweEUzLDB4ODEsMHg2NiwweDM4LDB4RUYsMHhGQiwweEY2LDB4QzMsMHgxMCwweDc0LDB4M0MsMHhGNiwKLTB4QzMsMHgwMiwweDc0LDB4MDYsMHhFNCwweEQ4LDB4MEMsMHgwMSwweEU2LDB4RDgsMHhGNiwweEMzLDB4MDQsMHg3NCwweDExLDB4ODMsCi0weEMyLDB4MDgsMHg4QSwweDg2LDB4QTcsMHgwMCwweDBDLDB4MDEsMHhFRSwweDg4LDB4ODYsMHhBNywweDAwLDB4ODMsMHhFQSwweDA4LAotMHhGNiwweEMzLDB4MDgsMHg3NCwweDBGLDB4RTgsMHg4QiwweEUzLDB4NzIsMHgwQSwweDhBLDB4ODYsMHhDMCwweDAwLDB4RTYsMHgzOCwKLTB4QjAsMHgyMywweEU2LDB4MEEsMHhGNywweEMzLDB4MDAsMHgwNCwweDc1LDB4MDEsMHhDMywweEY3LDB4QzMsMHgwMCwweDA4LDB4NzUsCi0weEY5LDB4OEEsMHg4NiwweEE1LDB4MDAsMHhGNiwweEMzLDB4NDAsMHg3NSwweDBELDB4QTgsMHgxMCwweDc1LDB4RUMsMHgwQywweDEwLAotMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhDMywweEE4LDB4MDEsMHg3NSwweERGLDB4ODMsMHhDMiwweDAyLDB4MEMsMHgwNSwKLTB4RUUsMHg4OCwweDg2LDB4QTUsMHgwMCwweEMzLDB4QjAsMHgwMCwweEU4LDB4NDcsMHhEMiwweEVCLDB4MEYsMHhCMCwweDAyLDB4RTgsCi0weDkwLDB4MEUsMHhFQiwweDA4LDB4ODMsMHg2NiwweDM4LDB4REYsMHg4MywweDRFLDB4N0EsMHgwMiwweDMzLDB4QzAsMHg4RSwweEQ4LAotMHhGQSwweEEwLDB4OTIsMHgxMiwweDQwLDB4QTIsMHg5MiwweDEyLDB4M0MsMHgwNSwweDcyLDB4MUUsMHhDNiwweDA2LDB4OTIsMHgxMiwKLTB4MDAsMHhGQiwweEIwLDB4MDEsMHhFOCwweDZCLDB4MEUsMHhGQSwweEExLDB4MjYsMHgwMSwweDIzLDB4MDYsMHgyQSwweDAxLDB4QTgsCi0weDAxLDB4NzUsMHgwNywweEU4LDB4RTIsMHgwNywweEU4LDB4NjEsMHgwOSwweDkwLDB4QjAsMHgwMCwweEU4LDB4MzcsMHhEMiwweEZCLAotMHg4NSwweEVELDB4NzQsMHhCOSwweEZBLDB4RjcsMHg0NiwweDdBLDB4NDYsMHgwMCwweDc1LDB4QzAsMHg4QiwweDQ2LDB4NzgsMHgzRCwKLTB4MEEsMHgwMCwweDcyLDB4QjAsMHg4QiwweDRFLDB4NzQsMHg4MywweEY5LDB4NTAsMHg3MiwweDlBLDB4ODMsMHg2NiwweDM4LDB4REYsCi0weEM1LDB4NzYsMHgxNCwweDhCLDB4NDYsMHgzQSwweDg1LDB4QzAsMHg3NSwweDU4LDB4QUQsMHg4NSwweEMwLDB4NzUsMHgwRiwweEU4LAotMHhGOCwweEZFLDB4RjcsMHg0NiwweDdBLDB4MDgsMHgwMCwweDc0LDB4OTMsMHhFOCwweEEwLDB4RkEsMHhFQiwweDhFLDB4M0IsMHg3NiwKLTB4MDQsMHg3NiwweDIxLDB4QjksMHgwMiwweDAwLDB4MzksMHg0RSwweDJFLDB4NzcsMHgwNSwweEM3LDB4NDYsMHgyRSwweDAwLDB4MDAsCi0weDU2LDB4OEIsMHg3NiwweDJDLDB4ODksMHg3NiwweDA0LDB4QzcsMHgwNCwweDAwLDB4MDAsMHg0NiwweDQ2LDB4ODksMHg3NiwweDJDLAotMHgyOSwweDRFLDB4MkUsMHg1RSwweDg1LDB4QzAsMHg3OSwweDE3LDB4RjYsMHhDNCwweDEwLDB4NzQsMHgwNSwweEZGLDB4NTYsMHg3QywKLTB4RUIsMHgwMywweEZGLDB4NTYsMHg3RSwweDg5LDB4NzYsMHgxNCwweEIwLDB4MEMsMHhFOCwweDg1LDB4RDEsMHhFQiwweDg2LDB4ODksCi0weDQ2LDB4M0EsMHhGRiwweDk2LDB4ODAsMHgwMCwweDI5LDB4NDYsMHgzQSwweDg5LDB4NzYsMHgxNCwweEIwLDB4MEMsMHhFOCwweDcxLAotMHhEMSwweEU5LDB4NzEsMHhGRiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MTAsMHgwMiwKLTB4MDEsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwKLTB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDAwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg0RSwweDQxLDB4NzgsMHg0MSwweEQwLDB4NDEsMHhGNCwweDQxLDB4MDYsMHg0MiwweDE4LDB4NDIsCi0weEMzLDB4OTAsMHg4RSwweDQ2LDB4MDIsMHg4QiwweDdFLDB4MjIsMHg4OSwweDdFLDB4NkMsMHg4MCwweDY2LDB4MjcsMHhGRCwweDhCLAotMHg1NiwweDI0LDB4ODMsMHhGQSwweDA0LDB4NzIsMHhFOSwweDgzLDB4RUEsMHgwMiwweDhCLDB4RDksMHgzQiwweENBLDB4NzYsMHgwMiwKLTB4OEIsMHhDQSwweEIwLDB4MEEsMHg1NywweDUxLDB4OEIsMHhGRSwweEYyLDB4QUUsMHg4QiwweEMxLDB4NTksMHg1RiwweDc1LDB4MUUsCi0weDUwLDB4NDAsMHgyQiwweEM4LDB4NzQsMHgwNiwweDJCLDB4RDEsMHgyQiwweEQ5LDB4RjMsMHhBNCwweDU5LDB4NEIsMHg0QSwweDRBLAotMHhCMCwweDBELDB4QUEsMHhBNCwweDNCLDB4Q0EsMHg3NiwweDAyLDB4OEIsMHhDQSwweEUzLDB4MTMsMHhFQiwweEQ0LDB4MkIsMHhEOSwKLTB4RjcsMHhDNiwweDAxLDB4MDAsMHg3NCwweDAyLDB4QTQsMHg0OSwweEQxLDB4RTksMHhGMywweEE1LDB4NzMsMHgwMSwweEE0LDB4ODksCi0weDdFLDB4MjIsMHgyQiwweDdFLDB4NkMsMHgyOSwweDdFLDB4MjQsMHgwMSwweDdFLDB4MUEsMHg4QiwweENCLDB4ODAsMHg3RSwweDI2LAotMHgwMiwweDc0LDB4MDUsMHg4MCwweDY2LDB4MjYsMHhGRCwweEMzLDB4NjAsMHhCMCwweEZELDB4RTgsMHgxOCwweDAzLDB4NjEsMHhDMywKLTB4QzMsMHg5MCwweEU4LDB4N0MsMHgwMiwweDcyLDB4RjksMHg5MCwweDgzLDB4NEUsMHgyNiwweDIwLDB4OEIsMHg0NiwweDZBLDB4ODksCi0weDQ2LDB4NkUsMHg4QiwweDQ2LDB4NDgsMHgwRCwweDA0LDB4MDAsMHgyNSwweEJGLDB4RkYsMHg4OSwweDQ2LDB4NDgsMHhCMCwweDA2LAotMHhFOCwweEJGLDB4Q0YsMHhDMywweDg5LDB4N0UsMHgyMiwweDJCLDB4N0UsMHg2QywweDAxLDB4N0UsMHgxQSwweDI5LDB4N0UsMHgyNCwKLTB4ODAsMHg3RSwweDI2LDB4MDIsMHg3NCwweDA1LDB4ODMsMHg2NiwweDI2LDB4RkQsMHhDMywweDYwLDB4QjAsMHhGRCwweEU4LDB4RDUsCi0weDAyLDB4NjEsMHhDMywweDkwLDB4OEEsMHhCRSwweEMyLDB4MDAsMHhFQiwweDI0LDB4RjcsMHg0NiwweDQ4LDB4NDAsMHgwMCwweDc1LAotMHhCMSwweDhFLDB4NDYsMHgwMiwweDhCLDB4N0UsMHgyMiwweDg5LDB4N0UsMHg2QywweDhCLDB4NTYsMHgyNCwweDgzLDB4RUEsMHgwQSwKLTB4NzgsMHg5RSwweDAzLDB4RDcsMHg4MCwweDY2LDB4MjcsMHhGRCwweDMzLDB4QzAsMHg4QSwweEJFLDB4QzIsMHgwMCwweEUzLDB4QjQsCi0weDNCLDB4RkEsMHg3NywweEIwLDB4QUMsMHg0OSwweDkzLDB4MkUsMHg4QSwweDg3LDB4RDQsMHgzRSwweDkzLDB4MjIsMHhERiwweDc1LAotMHgxNywweEFBLDB4RTMsMHhBMCwweDNCLDB4RkEsMHg3NywweDlDLDB4QUMsMHg0OSwweDkzLDB4MkUsMHg4QSwweDg3LDB4RDQsMHgzRSwKLTB4OTMsMHgyMiwweERGLDB4NzUsMHgwMywweEFBLDB4RUIsMHhENiwweEY2LDB4QzMsMHg3RiwweDc1LDB4MDUsMHhGRiwweDQ2LDB4NjYsCi0weEVCLDB4REYsMHhGNiwweEMzLDB4NDAsMHg3NSwweDBDLDB4OEIsMHhEOCwweDgzLDB4RUIsMHgwOCwweEQxLDB4RTMsMHgyRSwweEZGLAotMHhBNywweEQ0LDB4M0YsMHhGRiwweDQ2LDB4NjYsMHgyQywweDIwLDB4RUIsMHhDNywweDg1LDB4QzAsMHg3NCwweDJDLDB4ODksMHg0NiwKLTB4NkEsMHg4MywweDRFLDB4NDgsMHg0MCwweDg5LDB4N0UsMHgyMiwweDJCLDB4N0UsMHg2QywweDAxLDB4N0UsMHgxQSwweDI5LDB4N0UsCi0weDI0LDB4ODAsMHg3RSwweDI2LDB4MDIsMHg3NCwweDA4LDB4ODMsMHg2NiwweDI2LDB4RkQsMHhFOCwweEEzLDB4MDEsMHhDMywweDYwLAotMHhCMCwweEZELDB4RTgsMHgzMSwweDAyLDB4NjEsMHhFOCwweDk4LDB4MDEsMHhDMywweEU5LDB4NTcsMHhGRiwweDkwLDB4OEIsMHg1RSwKLTB4NjYsMHg0QiwweDc4LDB4MDMsMHg4OSwweDVFLDB4NjYsMHhBQSwweDhCLDB4NUUsMHg2NCwweEY3LDB4QzMsMHgwMCwweDIwLDB4NzUsCi0weDAzLDB4RTksMHg0MCwweEZGLDB4RjcsMHhDMywweDQwLDB4MDAsMHg3NCwweDA4LDB4OEEsMHg4NiwweEMxLDB4MDAsMHhBQSwweEU5LAotMHgzMiwweEZGLDB4QjgsMHgzMiwweDAwLDB4RUIsMHhBMywweDkwLDB4OEIsMHg1RSwweDY2LDB4ODksMHg1RSwweDY4LDB4ODMsMHhDMywKLTB4MDgsMHg4MCwweEUzLDB4RjgsMHg4OSwweDVFLDB4NjYsMHg4QiwweDVFLDB4NjQsMHg4MSwweEUzLDB4MDAsMHgxOCwweDgxLDB4RkIsCi0weDAwLDB4MTgsMHg3NCwweDJELDB4QUEsMHg4NSwweERCLDB4NzQsMHgyNSwweEY3LDB4NDYsMHg2NCwweDQwLDB4MDAsMHg3NSwweDE4LAotMHg4MSwweEZCLDB4MDAsMHgxMCwweDc0LDB4MEMsMHg4QiwweDQ2LDB4NjYsMHgyQiwweDQ2LDB4NjgsMHhDMSwweEUwLDB4MDQsMHhFOSwKLTB4NjgsMHhGRiwweEI4LDB4NjQsMHgwMCwweEU5LDB4NjIsMHhGRiwweDhBLDB4ODYsMHhDMSwweDAwLDB4QUEsMHhBQSwweEU5LDB4RTMsCi0weEZFLDB4NTEsMHg4QiwweDRFLDB4NjYsMHgyQiwweDRFLDB4NjgsMHhCMCwweDIwLDB4RjMsMHhBQSwweDU5LDB4RTksMHhENCwweEZFLAotMHg4QiwweDVFLDB4NjYsMHg4OSwweDVFLDB4NjgsMHg4QiwweDVFLDB4NjQsMHhGNywweEMzLDB4MjQsMHgwMCwweDc0LDB4MTAsMHhDNywKLTB4NDYsMHg2NiwweDAwLDB4MDAsMHhGNywweEMzLDB4MDQsMHgwMCwweDc0LDB4MDUsMHhCMCwweDBELDB4QUEsMHhCMCwweDBBLDB4QUEsCi0weEVCLDB4NDgsMHg5MCwweDkwLDB4QUEsMHhGNywweDQ2LDB4NjQsMHgwMCwweDQwLDB4NzQsMHgwNiwweEI4LDB4RDAsMHgwNywweEU5LAotMHgxOCwweEZGLDB4RTksMHg5RiwweEZFLDB4OTAsMHhBQSwweEY3LDB4NDYsMHg2NCwweDAwLDB4ODAsMHg3NCwweDA2LDB4QjgsMHhEMCwKLTB4MDcsMHhFOSwweDA2LDB4RkYsMHhFOSwweDhELDB4RkUsMHg5MCwweDhCLDB4NUUsMHg2NiwweDg5LDB4NUUsMHg2OCwweDg1LDB4REIsCi0weDc1LDB4MEMsMHg4QiwweDVFLDB4NjQsMHhGNywweEMzLDB4MTAsMHgwMCwweDc0LDB4MDYsMHhFOSwweDc2LDB4RkUsMHg4QiwweDVFLAotMHg2NCwweEY3LDB4QzMsMHgwOCwweDAwLDB4NzQsMHgyNywweEIwLDB4MEEsMHhBQSwweEY3LDB4QzMsMHgyMCwweDAwLDB4NzUsMHgxRiwKLTB4RjcsMHhDMywweDAwLDB4MDEsMHg3NSwweDAzLDB4RTksMHg1QiwweEZFLDB4RjcsMHhDMywweDQwLDB4MDAsMHg3NSwweDA2LDB4QjgsCi0weDY0LDB4MDAsMHhFOSwweEM1LDB4RkUsMHg4QSwweDg2LDB4QzEsMHgwMCwweEFBLDB4QUEsMHhFOSwweDQ2LDB4RkUsMHhBQSwweEM3LAotMHg0NiwweDY2LDB4MDAsMHgwMCwweEY3LDB4QzMsMHgwMCwweDA2LDB4NzQsMHhGMSwweEY3LDB4QzMsMHg0MCwweDAwLDB4NzQsMHgxOSwKLTB4OEEsMHg4NiwweEMxLDB4MDAsMHg4MSwweEUzLDB4MDAsMHgwNiwweDgxLDB4RkIsMHgwMCwweDA0LDB4NzIsMHgwNiwweDc2LDB4MDIsCi0weEFBLDB4QUEsMHhBQSwweEFBLDB4QUEsMHhBQSwweEU5LDB4MUIsMHhGRSwweDgxLDB4RTMsMHgwMCwweDA2LDB4ODEsMHhGQiwweDAwLAotMHgwNCwweDcyLDB4MEUsMHg3NiwweDA2LDB4QjgsMHg5NiwweDAwLDB4RTksMHg3RiwweEZFLDB4QjgsMHg2NCwweDAwLDB4RTksMHg3OSwKLTB4RkUsMHg4QiwweDQ2LDB4NjgsMHhFOSwweDczLDB4RkUsMHg5MCwweDM2LDB4OEIsMHgwRSwweERBLDB4MTIsMHg4MywweEY5LDB4MzIsCi0weDczLDB4MUQsMHgxRSwweDA2LDB4MzMsMHhDMCwweDhFLDB4RDgsMHg4RSwweEMwLDB4OEQsMHg3NiwweDRDLDB4QkYsMHhEQywweDEyLAotMHgwMywweEY5LDB4QTUsMHhBNSwweEE1LDB4ODMsMHhDMSwweDA2LDB4ODksMHgwRSwweERBLDB4MTIsMHgwNywweDFGLDB4QzMsMHhCMCwKLTB4MDgsMHhFOCwweDZFLDB4Q0QsMHhDMywweDkwLDB4ODMsMHg2NiwweDQ4LDB4RkUsMHhFOCwweDkzLDB4QzQsMHhFOCwweEM4LDB4RkYsCi0weEMzLDB4RjYsMHg0NiwweDI3LDB4MDIsMHg3NSwweDBGLDB4OUMsMHhGQSwweDgzLDB4N0UsMHgxQSwweDAwLDB4NzQsMHgwOSwweDgwLAotMHg0RSwweDI3LDB4MDEsMHg5RCwweEY5LDB4QzMsMHhGOCwweEMzLDB4NTAsMHg1MiwweEY3LDB4NDYsMHgzOCwweDQwLDB4MDAsMHg3NCwKLTB4MUQsMHhFOCwweDM0LDB4REUsMHg4MywweEMyLDB4MEEsMHhFQywweEE4LDB4NDAsMHg3NSwweDI3LDB4ODMsMHhFQSwweDA4LDB4OEEsCi0weDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVFLDB4NUEsMHg1OCwweEVCLDB4RDEsMHhFOCwweDBDLAotMHhERSwweDhBLDB4ODYsMHhBNSwweDAwLDB4MjQsMHhGQiwweDBDLDB4MDIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg1QSwKLTB4NTgsMHhFQiwweEJDLDB4ODAsMHg0RSwweDI3LDB4MDIsMHg1QSwweDU4LDB4OUQsMHhGOCwweEMzLDB4MDgsMHg0NiwweDI2LDB4OUMsCi0weEZBLDB4OEEsMHg4RSwweEE1LDB4MDAsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzUsMHgxNCwweEY2LDB4QzEsMHgwNiwweDc0LAotMHgyMywweEU4LDB4RDksMHhERCwweDhBLDB4QzEsMHgyNCwweEY5LDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4OUQsMHhDMywKLTB4RjYsMHhDMSwweDAyLDB4NzQsMHgwRiwweEU4LDB4RDAsMHhERCwweDgzLDB4QzIsMHgwMiwweDhBLDB4QzEsMHgyNCwweEZELDB4ODgsCi0weDg2LDB4QTUsMHgwMCwweEVFLDB4OUQsMHhDMywweDhCLDB4NUUsMHgyNiwweDIyLDB4QzMsMHg4OCwweDQ2LDB4MjYsMHg3NCwweDAxLAotMHhDMywweDgwLDB4NjYsMHgyNywweEZELDB4OUMsMHhGQSwweDhBLDB4OEUsMHhBNSwweDAwLDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwKLTB4NzUsMHgxNiwweEY2LDB4QzEsMHgwNCwweDc1LDB4MEYsMHhFOCwweDkzLDB4REQsMHg4QSwweEMxLDB4MjQsMHhGRCwweDBDLDB4MDQsCi0weDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweDlELDB4QzMsMHhGNiwweEMxLDB4MDIsMHg3NSwweEY5LDB4RTgsMHg4OCwweERELAotMHg4MywweEMyLDB4MEEsMHhFQywweEE4LDB4MjAsMHg3NSwweDBFLDB4ODMsMHhFQSwweDA4LDB4OEEsMHhDMSwweDBDLDB4MDIsMHg4OCwKLTB4ODYsMHhBNSwweDAwLDB4RUUsMHg5RCwweEMzLDB4ODMsMHhFQSwweDBBLDB4MzMsMHhDOSwweDhBLDB4NEUsMHgxQywweDhCLDB4NDYsCi0weDFBLDB4M0IsMHhDOCwweDczLDB4MUIsMHgwMSwweDRFLDB4MkEsMHgyQiwweEMxLDB4ODksMHg0NiwweDFBLDB4MUUsMHhDNSwweDc2LAotMHgwMCwweEYzLDB4NkUsMHgxRiwweDg5LDB4NzYsMHgwMCwweDgzLDB4QzIsMHgwMiwweDhBLDB4ODYsMHhBNSwweDAwLDB4RUIsMHhDRCwKLTB4ODUsMHhDMCwweDc0LDB4MTIsMHgwMSwweDQ2LDB4MkEsMHg4QiwweEM4LDB4MUUsMHhDNSwweDc2LDB4MDAsMHhGMywweDZFLDB4MUYsCi0weDg5LDB4NzYsMHgwMCwweDg5LDB4NEUsMHgxQSwweEY2LDB4QzcsMHgwMSwweDc1LDB4MjMsMHg4MCwweENCLDB4MDIsMHg4OSwweDVFLAotMHgyNiwweEU4LDB4MDgsMHhDMywweDgzLDB4QzIsMHgwMiwweDhBLDB4ODYsMHhBNSwweDAwLDB4MjQsMHhGRCwweEVFLDB4ODgsMHg4NiwKLTB4QTUsMHgwMCwweEY2LDB4QzcsMHgxMCwweDc1LDB4MDUsMHhCMCwweDAyLDB4RTgsMHgxNiwweENDLDB4OUQsMHhDMywweDgzLDB4QzIsCi0weDAyLDB4OEEsMHg4NiwweEE1LDB4MDAsMHhFQiwweDg2LDB4OTAsMHg4QiwweEQxLDB4OEIsMHg0NiwweDI0LDB4M0IsMHhDOCwweDc2LAotMHgwMiwweDhCLDB4QzgsMHgyQiwweEQxLDB4MkIsMHhDMSwweDhCLDB4RDksMHhFMywweDIyLDB4ODAsMHg2NiwweDI3LDB4RkQsMHg4RSwKLTB4NDYsMHgwMiwweDhCLDB4N0UsMHgyMiwweEY3LDB4QzYsMHgwMSwweDAwLDB4NzQsMHgwMiwweEE0LDB4NDksMHhEMSwweEU5LDB4RjMsCi0weEE1LDB4NzMsMHgwMSwweEE0LDB4ODksMHg3RSwweDIyLDB4ODksMHg0NiwweDI0LDB4MDEsMHg1RSwweDFBLDB4OEIsMHhDQSwweDgwLAotMHg3RSwweDI2LDB4MDIsMHg3NCwweDA1LDB4ODAsMHg2NiwweDI2LDB4RkQsMHhDMywweDYwLDB4QjAsMHhGRCwweEU4LDB4RjYsMHhGRSwKLTB4NjEsMHhDMywweDUwLDB4RTQsMHgwQSwweDg0LDB4QzAsMHg3NSwweDBBLDB4ODYsMHg4NiwweEExLDB4MDAsMHg4NCwweEMwLDB4NzQsCi0weDBBLDB4RTYsMHgwQSwweDU4LDB4MEMsMHgyMCwweDg5LDB4NDYsMHg0OCwweEY5LDB4QzMsMHg1OCwweDI0LDB4REYsMHg4OSwweDQ2LAotMHg0OCwweEY4LDB4QzMsMHg5MCwweEZCLDB4QjAsMHgwMiwweEU4LDB4RTgsMHgwNywweEZBLDB4RTgsMHgyRSwweDAxLDB4RkIsMHhCMCwKLTB4MDEsMHhFOCwweERFLDB4MDcsMHhGQSwweEIwLDB4MDIsMHhFOCwweEJDLDB4Q0IsMHhGQiwweDg1LDB4RUQsMHg3NCwweEU1LDB4RkEsCi0weDhFLDB4NUUsMHgwQSwweEZCLDB4OTAsMHhGQSwweDhCLDB4NDYsMHg0OCwweDhCLDB4NzYsMHg0MCwweEE4LDB4OEMsMHg3NSwweERFLAotMHhBOCwweDIwLDB4NzQsMHgxQSwweDUwLDB4RTgsMHg1NSwweERDLDB4NTgsMHhFOCwweEE2LDB4RkYsMHg3MywweDEwLDB4QjAsMHgwMiwKLTB4RTgsMHg1RiwweENCLDB4RUIsMHhDOSwweDkwLDB4MjUsMHhGRiwweDAwLDB4OEIsMHhDOCwweEVCLDB4MzYsMHg5MCwweEE4LDB4MDEsCi0weDc1LDB4MjIsMHg0NiwweDgzLDB4RTYsMHhGRSwweDNCLDB4NzYsMHgwOCwweDc0LDB4NzksMHhBRCwweDhBLDB4RkMsMHhCMywweEYwLAotMHgyMiwweEZCLDB4M0EsMHhGQiwweDc0LDB4RTAsMHgzQSwweEJFLDB4QTAsMHgwMCwweDc0LDB4MkUsMHhFOCwweEQyLDB4RkQsMHg3MywKLTB4NzcsMHhFQiwweDlCLDB4OTAsMHg4QSwweEUwLDB4MjQsMHhGQywweDg4LDB4NDYsMHg0OCwweDhCLDB4NEUsMHg0QSwweEY2LDB4QzQsCi0weDAyLDB4NzQsMHgxRCwweEU4LDB4QkIsMHhGRCwweDcyLDB4ODYsMHhFOCwweDEzLDB4RjMsMHg4OSwweDc2LDB4NDAsMHhFMywweDkzLAotMHg4MywweDRFLDB4NDgsMHgwMywweDg5LDB4NEUsMHg0QSwweEU5LDB4NzQsMHhGRiwweDI1LDB4RkYsMHgwRiwweDhCLDB4QzgsMHg5MCwKLTB4OEIsMHg4NiwweDk4LDB4MDAsMHg4NSwweEMwLDB4NzQsMHgxQSwweDUxLDB4OEEsMHg4RSwweEEwLDB4MDAsMHhDMCwweEU5LDB4MDQsCi0weEJBLDB4MDEsMHgwMCwweEQzLDB4RTIsMHg1OSwweDIzLDB4QzIsMHg3NCwweDA4LDB4MDMsMHhGMSwweDg5LDB4NzYsMHg0MCwweEU5LAotMHg2MSwweEZGLDB4RkYsMHg1NiwweDYyLDB4RTMsMHhGNSwweDgzLDB4NEUsMHg0OCwweDAxLDB4ODksMHg0RSwweDRBLDB4ODksMHg3NiwKLTB4NDAsMHhFOSwweDNBLDB4RkYsMHg4MSwweDRFLDB4MjYsMHgwMCwweDEwLDB4OEIsMHg0NiwweDUwLDB4M0IsMHg0NiwweDQ2LDB4NzcsCi0weDAzLDB4RTgsMHg1MiwweEZELDB4RTksMHgyNywweEZGLDB4OTAsMHg4OCwweEJFLDB4QTAsMHgwMCwweEVCLDB4QUMsMHgwQSwweDA2LAotMHg5MCwweDEyLDB4OEEsMHhFMCwweEJBLDB4MDYsMHgwMSwweEIwLDB4MDQsMHhFRSwweEVDLDB4ODQsMHhDMCwweDc1LDB4MTIsMHhCMCwKLTB4MDQsMHhFRSwweDhBLDB4QzQsMHhFRSwweDMyLDB4RTQsMHhBOCwweDgwLDB4NzQsMHgwNiwweEM3LDB4MDYsMHg4NCwweDEyLDB4MDAsCi0weDAwLDB4ODgsMHgyNiwweDkwLDB4MTIsMHhDMywweDBBLDB4MDYsMHg5MCwweDEyLDB4OEEsMHhFMCwweEJBLDB4MDYsMHgwMSwweEVDLAotMHhBOCwweDAxLDB4NzUsMHhFRCwweEJBLDB4MDgsMHgwMSwweDhBLDB4QzQsMHhFRSwweDMyLDB4RTQsMHhBOCwweDgwLDB4NzQsMHhFMSwKLTB4QzcsMHgwNiwweDg0LDB4MTIsMHgwMCwweDAwLDB4ODgsMHgyNiwweDkwLDB4MTIsMHhDMywweDkwLDB4MzYsMHhGNywweDA2LDB4MjQsCi0weDAxLDB4MDEsMHgwMCwweDc1LDB4MzAsMHgzNiwweDhCLDB4MEUsMHhEQSwweDEyLDB4ODAsMHhGOSwweDM2LDB4NzMsMHgyNiwweDMzLAotMHhDMCwweDhFLDB4QzAsMHg4RSwweEQ4LDB4QkYsMHhEQywweDEyLDB4MDMsMHhGOSwweEIwLDB4MDgsMHhFOCwweDc3LDB4Q0EsMHg4NSwKLTB4RUQsMHg3NCwweDBFLDB4OEQsMHg3NiwweDRDLDB4QTUsMHhBNSwweEE1LDB4ODAsMHhDMSwweDA2LDB4ODAsMHhGOSwweDM2LDB4NzIsCi0weEU5LDB4ODksMHgwRSwweERBLDB4MTIsMHhDMywweEMzLDB4OTAsMHhGNywweDA2LDB4MjYsMHgwMSwweDAxLDB4MDAsMHg3NSwweEY2LAotMHg4QiwweDBFLDB4MjAsMHgxMywweDg1LDB4QzksMHg3NSwweEVFLDB4MzMsMHhDMCwweDhFLDB4QzAsMHg4RSwweEQ4LDB4QkYsMHgyNCwKLTB4MTMsMHhCOSwweDM2LDB4MDAsMHhCMCwweDBBLDB4RTgsMHgzRCwweENBLDB4ODUsMHhFRCwweDc1LDB4MDYsMHhFOSwweDEyLDB4MDEsCi0weEU5LDB4MEEsMHgwMSwweDMzLDB4REIsMHg4QSwweDQ2LDB4NEMsMHg4QSwweEE2LDB4QjMsMHgwMCwweEZFLDB4Q0MsMHg3OCwweDBFLAotMHg4OCwweEE2LDB4QjMsMHgwMCwweDBBLDB4REMsMHhCNCwweDBBLDB4QUIsMHg4MywweEU5LDB4MDIsMHg3NiwweEUyLDB4OEEsMHhBNiwKLTB4QjIsMHgwMCwweEZFLDB4Q0MsMHg3OCwweDBFLDB4ODgsMHhBNiwweEIyLDB4MDAsMHgwQSwweERDLDB4QjQsMHgwOCwweEFCLDB4ODMsCi0weEU5LDB4MDIsMHg3NiwweENDLDB4OEEsMHhBNiwweEIxLDB4MDAsMHhGRSwweENDLDB4NzgsMHgxOCwweDhBLDB4QkUsMHhCMCwweDAwLAotMHg3NSwweDA0LDB4ODgsMHhBNiwweEIwLDB4MDAsMHg4OCwweEE2LDB4QjEsMHgwMCwweDBBLDB4REMsMHg4QSwweEU3LDB4QUIsMHg4MywKLTB4RTksMHgwMiwweDc2LDB4QUMsMHg4QSwweEE2LDB4QjQsMHgwMCwweEZFLDB4Q0MsMHg3OCwweDFGLDB4ODgsMHhBNiwweEI0LDB4MDAsCi0weDBBLDB4REMsMHhCNCwweDBCLDB4QUIsMHg4QSwweDg2LDB4QkMsMHgwMCwweDhBLDB4QTYsMHhCRCwweDAwLDB4QUIsMHg4QiwweDg2LAotMHhCRSwweDAwLDB4QUIsMHg4MywweEU5LDB4MDYsMHg3NiwweDg4LDB4OEEsMHg0NiwweDRDLDB4OEEsMHhBNiwweEI2LDB4MDAsMHhGRSwKLTB4Q0MsMHg3OCwweDE5LDB4ODgsMHhBNiwweEI2LDB4MDAsMHgwQSwweERDLDB4QjQsMHgwQywweEFCLDB4RTgsMHhEQiwweENCLDB4QUIsCi0weDhCLDB4NDYsMHgyQSwweEFCLDB4ODMsMHhFOSwweDA2LDB4NzYsMHg3NCwweDhBLDB4NDYsMHg0QywweDhBLDB4QTYsMHhCNywweDAwLAotMHhGRSwweENDLDB4NzgsMHgxOSwweDg4LDB4QTYsMHhCNywweDAwLDB4MEEsMHhEQywweEI0LDB4MEQsMHhBQiwweEU4LDB4QkEsMHhDQiwKLTB4QUIsMHg4QiwweDQ2LDB4MzQsMHhBQiwweDgzLDB4RTksMHgwNiwweDc2LDB4NTMsMHg4QSwweDQ2LDB4NEMsMHg4QSwweEE2LDB4QjgsCi0weDAwLDB4RkUsMHhDQywweDc4LDB4MTksMHg4OCwweEE2LDB4QjgsMHgwMCwweDBBLDB4REMsMHhCNCwweDBFLDB4QUIsMHhBMSwweDUwLAotMHgxMiwweEFCLDB4QTEsMHg1MiwweDEyLDB4QUIsMHg4MywweEU5LDB4MDYsMHg3NiwweDMyLDB4OEEsMHg0NiwweDRDLDB4OEEsMHhBNiwKLTB4QjUsMHgwMCwweEZFLDB4Q0MsMHg3OCwweDE4LDB4ODgsMHhBNiwweEI1LDB4MDAsMHgwQSwweERDLDB4QjQsMHgwRiwweEFCLDB4OEIsCi0weDg2LDB4OUEsMHgwMCwweEFCLDB4OEIsMHg4NiwweDlDLDB4MDAsMHhBQiwweDgzLDB4RTksMHgwNiwweDc2LDB4MEYsMHg4NCwweERCLAotMHg3NSwweDAzLDB4RTksMHhFRiwweEZFLDB4QjAsMHgwQSwweEU4LDB4RjgsMHhDOCwweEU5LDB4RTcsMHhGRSwweEIwLDB4MEEsMHhFOCwKLTB4RjAsMHhDOCwweEY3LDB4RDksMHg4MywweEMxLDB4MzYsMHg4QiwweEMxLDB4MEQsMHg4MCwweDAwLDB4ODYsMHhDNCwweEEzLDB4MjIsCi0weDEzLDB4NDEsMHg0MSwweDg5LDB4MEUsMHgyMCwweDEzLDB4QzMsMHhBMSwweDg0LDB4MTIsMHgyQiwweEMxLDB4NzIsMHgxMSwweEEzLAotMHg4NCwweDEyLDB4QkUsMHgyMiwweDEzLDB4RDEsMHhFOSwweEYzLDB4NkYsMHg5MCwweDg5LDB4MEUsMHgyMCwweDEzLDB4RjgsMHhDMywKLTB4RjksMHhDMywweEMzLDB4ODEsMHhFRiwweDZBLDB4MTMsMHg3NCwweEY5LDB4OEIsMHhDNywweDBELDB4ODAsMHgwMCwweDg2LDB4QzQsCi0weEEzLDB4NjgsMHgxMywweDQ3LDB4NDcsMHg4OSwweDNFLDB4NjYsMHgxMywweEMzLDB4RjcsMHgwNiwweDJBLDB4MDEsMHgwMSwweDAwLAotMHg3NSwweEUwLDB4OEIsMHgwRSwweDY2LDB4MTMsMHhFMywweDA3LDB4ODAsMHhGOSwweDIwLDB4NzcsMHhENSwweDQ5LDB4NDksMHgzMywKLTB4QzAsMHg4RSwweEMwLDB4OEUsMHhEOCwweEJGLDB4NkEsMHgxMywweDhCLDB4RjcsMHgwMywweEY5LDB4ODMsMHhDNiwweDM0LDB4M0IsCi0weEZFLDB4NzcsMHhDMCwweEIwLDB4MEUsMHhFOCwweEFFLDB4QzgsMHg4NSwweEVELDB4NzQsMHhCNywweDhBLDB4NDYsMHg0QywweDhBLAotMHhCNiwweEI5LDB4MDAsMHhGRSwweENFLDB4NzgsMHgxNSwweDg4LDB4QjYsMHhCOSwweDAwLDB4OEEsMHhBNiwweEE5LDB4MDAsMHg4MCwKLTB4Q0MsMHhDMCwweEFCLDB4ODQsMHhGNiwweDc0LDB4MDUsMHhCMCwweDBFLDB4RTgsMHg1NiwweEM4LDB4OEEsMHhCNiwweEJBLDB4MDAsCi0weEZFLDB4Q0UsMHg3OCwweENCLDB4OEEsMHg5RSwweEE5LDB4MDAsMHg4QSwweEJFLDB4QUIsMHgwMCwweDhBLDB4NTYsMHgzRiwweDhBLAotMHhGMywweDMyLDB4RjcsMHgwQSwweEI2LDB4QUMsMHgwMCwweEM2LDB4ODYsMHhBQywweDAwLDB4MDAsMHgyMiwweEYyLDB4NzQsMHg0QiwKLTB4RjYsMHhDNiwweDA4LDB4NzQsMHgwRiwweEI0LDB4MDIsMHhGNiwweEMzLDB4MDgsMHg3NSwweDAyLDB4QjQsMHgwMywweEFCLDB4ODAsCi0weEU2LDB4RjcsMHg3NCwweDM3LDB4RjYsMHhDNiwweDAxLDB4NzQsMHgwRiwweEI0LDB4MDAsMHhGNiwweEMzLDB4MDEsMHg3NSwweDAyLAotMHhCNCwweDAxLDB4QUIsMHg4MCwweEU2LDB4RkUsMHg3NCwweDIzLDB4RjYsMHhDNiwweDAyLDB4NzQsMHgwRiwweEI0LDB4MDQsMHhGNiwKLTB4QzMsMHgwMiwweDc1LDB4MDIsMHhCNCwweDA1LDB4QUIsMHg4MCwweEU2LDB4RkQsMHg3NCwweDBGLDB4RjYsMHhDNiwweDA0LDB4NzQsCi0weDBBLDB4QjQsMHgwNiwweEY2LDB4QzMsMHgwNCwweDc1LDB4MDIsMHhCNCwweDA3LDB4QUIsMHhDNiwweDg2LDB4QkEsMHgwMCwweDAwLAotMHg4OCwweDlFLDB4QUIsMHgwMCwweEU5LDB4NTgsMHhGRiwweDkwLDB4QTEsMHg4NCwweDEyLDB4MkIsMHhDMSwweDcyLDB4MTEsMHhBMywKLTB4ODQsMHgxMiwweEJFLDB4NjgsMHgxMywweEQxLDB4RTksMHhGMywweDZGLDB4OTAsMHg4OSwweDBFLDB4NjYsMHgxMywweEY4LDB4QzMsCi0weEY5LDB4QzMsMHhBMSwweDg0LDB4MTIsMHg0MSwweDQxLDB4MkIsMHhDMSwweDcyLDB4MjMsMHhBMywweDg0LDB4MTIsMHg4QiwweEMxLAotMHg0OCwweDQ4LDB4MzIsMHhFNCwweDBDLDB4ODAsMHg4NiwweEM0LDB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwweDkwLDB4QkUsMHhEQywKLTB4MTIsMHg0OSwweDQ5LDB4RDEsMHhFOSwweEYzLDB4NkYsMHg5MCwweDg5LDB4MEUsMHhEQSwweDEyLDB4RjgsMHhDMywweEY5LDB4QzMsCi0weDhBLDB4QzgsMHg4QSwweDQ2LDB4NEMsMHhCNCwweDAxLDB4ODMsMHhFQiwweDA2LDB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwweDkwLAotMHhCOCwweDAxLDB4MDAsMHhFRiwweDkwLDB4OTAsMHg5MCwweDkwLDB4OTAsMHg4QSwweEMxLDB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwKLTB4OTAsMHhFOSwweDk3LDB4MDAsMHhFOSwweEFDLDB4MDAsMHgzMywweEMwLDB4OEUsMHhEOCwweDg5LDB4MUUsMHg4NCwweDEyLDB4QzMsCi0weDM2LDB4OEIsMHgxRSwweDg0LDB4MTIsMHhGQiwweDkwLDB4RkEsMHhCMCwweDBDLDB4RTgsMHg4OSwweEM3LDB4ODUsMHhFRCwweDc0LAotMHhFNiwweEM1LDB4NzYsMHgwQywweDgzLDB4RkIsMHgxNCwweDcyLDB4REIsMHhGQiwweDkwLDB4RkEsMHhBRCwweDg1LDB4QzAsMHg3OCwKLTB4QUYsMHg3NCwweEUyLDB4OEIsMHhGRSwweDAzLDB4RjgsMHgzNiwweDhCLDB4MEUsMHg4NiwweDEyLDB4M0IsMHhDMSwweDc3LDB4MDIsCi0weDhCLDB4QzgsMHg4MywweEVCLDB4MDQsMHgzQiwweEQ5LDB4NzcsMHgwMiwweDhCLDB4Q0IsMHgzMywweEMwLDB4OEEsMHg0NiwweDRDLAotMHhFRiwweDkwLDB4OTAsMHg5MCwweDkwLDB4OTAsMHg4QiwweEMxLDB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwweDkwLDB4NDEsMHg4MCwKLTB4RTEsMHhGRSwweDJCLDB4RDksMHg1MSwweEQxLDB4RTksMHhGMywweDZGLDB4OTAsMHg1OSwweDhCLDB4QzcsMHg0MCwweDI0LDB4RkUsCi0weDNCLDB4QzYsMHg3NCwweDI3LDB4MkIsMHhGRSwweDRFLDB4NEUsMHg1MywweDhCLDB4NUUsMHgxMCwweDNCLDB4RjMsMHg3MiwweDEzLAotMHgwMywweDFGLDB4ODMsMHhDMywweDAzLDB4ODAsMHhFMywweEZFLDB4QzcsMHgwNywweDAwLDB4MDAsMHg4MywweDZFLDB4NzQsMHgwMiwKLTB4ODksMHg1RSwweDEwLDB4NUIsMHg4OSwweDNDLDB4ODksMHg3NiwweDBDLDB4RUIsMHg4OSwweDg5LDB4NzYsMHgwQywweDM5LDB4NzYsCi0weDEwLDB4NzcsMHg4MSwweDcyLDB4MDgsMHg4MywweDNDLDB4MDAsMHg3NCwweDAzLDB4RTksMHg3NywweEZGLDB4RTgsMHgwRCwweEJFLAotMHhFOSwweDYyLDB4RkYsMHgzNiwweDg5LDB4MUUsMHg4NCwweDEyLDB4QjAsMHgwQywweEU4LDB4QjUsMHhDNiwweDMzLDB4QzAsMHg4RSwKLTB4RDgsMHhDMywweEExLDB4ODQsMHgxMiwweDNELDB4MTAsMHgwMCwweDcyLDB4NzcsMHhCQSwweDA0LDB4MDEsMHgzQiwweDA2LDB4ODgsCi0weDEyLDB4NzUsMHgwNiwweEM3LDB4MDYsMHg3RSwweDEyLDB4MDAsMHgwMCwweDhCLDB4MEUsMHhEQSwweDEyLDB4RTMsMHgwQiwweEU4LAotMHhEMCwweEZFLDB4NzIsMHg1NywweEM3LDB4MDYsMHg3RSwweDEyLDB4RkYsMHg3RiwweDhCLDB4MEUsMHgyMCwweDEzLDB4RTMsMHgwQiwKLTB4RTgsMHhBNSwweEZELDB4NzIsMHg0NiwweEM3LDB4MDYsMHg3RSwweDEyLDB4RkYsMHg3RiwweDhCLDB4MEUsMHg2NiwweDEzLDB4RTMsCi0weDBCLDB4RTgsMHg5NCwweEZFLDB4NzIsMHgzNSwweEM3LDB4MDYsMHg3RSwweDEyLDB4RkYsMHg3RiwweEExLDB4MjgsMHgwMSwweEE5LAotMHgwMSwweDAwLDB4NzUsMHgwMywweEU4LDB4RjksMHhGRSwweDgwLDB4M0UsMHg4RCwweDEyLDB4MDAsMHg3NSwweDFELDB4QTEsMHg4NCwKLTB4MTIsMHgzRCwweDIwLDB4MDAsMHg3NiwweDE1LDB4M0IsMHgwNiwweDgyLDB4MTIsMHg3NiwweDA5LDB4QTEsMHg3RSwweDEyLDB4M0IsCi0weDA2LDB4ODAsMHgxMiwweDcyLDB4MEMsMHg4MCwweDBFLDB4OTAsMHgxMiwweDgwLDB4QzMsMHhCMCwweDgwLDB4RkYsMHgxNiwweDdDLAotMHgxMiwweEMzLDB4ODAsMHgwRSwweDkwLDB4MTIsMHg0MCwweEMzLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgxNywKLTB4OUMsMHgwRSwweEU4LDB4QjcsMHhDOCwweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MjAsMHg5QywweDBFLDB4RTgsCi0weEFBLDB4QzgsMHg2QSwweDAwLDB4MUYsMHhDNiwweDA2LDB4OTMsMHgxMiwweDE2LDB4OUMsMHgwRSwweEU4LDB4OUQsMHhDOCwweDkwLAotMHhCQSwweDA2LDB4MDEsMHhFQywweEE4LDB4MjAsMHg3NSwweENBLDB4RkIsMHg5MCwweEZBLDB4QkEsMHgwNCwweDAxLDB4RUQsMHg5MCwKLTB4OTAsMHg5MCwweDkwLDB4OTAsMHgzQSwweDA2LDB4OTQsMHgxMiwweDc3LDB4QkUsMHgzMywweERCLDB4OEEsMHhEOCwweEQxLDB4RTMsCi0weDJFLDB4OEIsMHhBRiwweDQ0LDB4MDAsMHhDNCwweDdFLDB4MDgsMHg4NSwweEZGLDB4NzQsMHhCOSwweEY2LDB4QzQsMHhDMCwweDc1LAotMHg1NSwweDMyLDB4QzAsMHhDMSwweEUwLDB4MDIsMHg4MCwweEU0LDB4RjAsMHg4QiwweEYwLDB4RUQsMHg5MCwweDkwLDB4OTAsMHg5MCwKLTB4OTAsMHg4NSwweEMwLDB4NzQsMHhCQiwweDhCLDB4QzgsMHg0MSwweDgwLDB4RTEsMHhGRSwweDBCLDB4QzYsMHg4QiwweDVFLDB4NTAsCi0weDRCLDB4NEIsMHgyQiwweEQ5LDB4NzgsMHg5QywweEFCLDB4OEIsMHhDMSwweDQwLDB4NDAsMHgwMSwweDQ2LDB4NEUsMHhEMSwweEU5LAotMHhGMywweDZELDB4OTAsMHg4OSwweDVFLDB4NTAsMHg4OSwweDdFLDB4MDgsMHg4QiwweDQ2LDB4MjYsMHg4MCwweEU0LDB4RUYsMHg4OSwKLTB4NDYsMHgyNiwweEY2LDB4QzQsMHgwMSwweDc1LDB4MEMsMHhGNywweDQ2LDB4NDgsMHgwQywweDAwLDB4NzUsMHgwNSwweEIwLDB4MDIsCi0weEU4LDB4N0YsMHhDNSwweEU5LDB4N0EsMHhGRiwweDg2LDB4QzQsMHg4QiwweEM4LDB4ODMsMHhFMSwweDNGLDB4NDEsMHg4MCwweEUxLAotMHhGRSwweEUzLDB4MEEsMHgzQywweDgwLDB4NzIsMHgwOSwweDI0LDB4M0YsMHhCNCwweEYwLDB4RUIsMHhCMCwweEU5LDB4NjAsMHhGRiwKLTB4MjUsMHgzRiwweDAwLDB4MzMsMHhGRiwweDhFLDB4QzcsMHhCRiwweDk2LDB4MTIsMHg4QiwweEY3LDB4RDEsMHhFOSwweEYzLDB4NkQsCi0weDkwLDB4OEIsMHhDOCwweEU4LDB4NDgsMHhFRCwweEU5LDB4NDcsMHhGRiwweDkwLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLAotMHgxMiwweDFCLDB4OUMsMHgwRSwweEU4LDB4RDUsMHhDNywweDkwLDB4NjAsMHgxRSwweDA2LDB4MzMsMHhDMCwweDhFLDB4RDgsMHg4RSwKLTB4QzAsMHhCQSwweDA2LDB4MDEsMHhFQywweEE4LDB4MDQsMHg3NCwweEUxLDB4QjAsMHgwNiwweEVFLDB4RUMsMHhBMiwweDhDLDB4MTIsCi0weEE4LDB4NDAsMHg3NCwweDExLDB4QTEsMHg4OCwweDEyLDB4QTMsMHg4NCwweDEyLDB4QzYsMHgwNiwweDhELDB4MTIsMHgwMCwweEU4LAotMHg2MCwweEZFLDB4QTAsMHg4QywweDEyLDB4QTgsMHg4MCwweDc0LDB4MDMsMHhFOCwweDA0LDB4RkYsMHhCOCwweDAwLDB4ODAsMHhCQSwKLTB4MjIsMHhGRiwweEVGLDB4MDcsMHgxRiwweDYxLDB4Q0YsMHg5MCwweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MUIsCi0weDlDLDB4MEUsMHhFOCwweDg3LDB4QzcsMHg5MCwweDYwLDB4MUUsMHgwNiwweDMzLDB4QzAsMHg4RSwweEQ4LDB4OEUsMHhDMCwweEJBLAotMHgwNiwweDAxLDB4RUMsMHhBOCwweDA0LDB4NzQsMHhFMSwweEJBLDB4MDgsMHgwMSwweEVDLDB4QTIsMHg4QywweDEyLDB4QTgsMHg0MCwKLTB4NzQsMHgxMSwweEExLDB4ODgsMHgxMiwweEEzLDB4ODQsMHgxMiwweEM2LDB4MDYsMHg4RCwweDEyLDB4MDAsMHhFOCwweDEyLDB4RkUsCi0weEEwLDB4OEMsMHgxMiwweEE4LDB4ODAsMHg3NCwweDAzLDB4RTgsMHhCNiwweEZFLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLAotMHhFRiwweDA3LDB4MUYsMHg2MSwweENGLDB4OTAsMHhFRSwweDg2LDB4RTAsMHhFRSwweDg2LDB4RTAsMHhFQywweDg2LDB4RTAsMHhFQywKLTB4ODYsMHhFMCwweDgwLDB4RTEsMHhGRSwweEYzLDB4NkMsMHg5MCwweDgwLDB4RTEsMHhGRSwweEYzLDB4NkUsMHg5MCwweDA1LDB4MDAsCi0weDc1LDB4NDcsMHhBOCwweDRCLDB4MDUsMHgwMCwweDc1LDB4NDgsMHhBOCwweDRCLDB4MDUsMHgwMCwweEEzLDB4NDgsMHhBOCwweDRCLAotMHgwNSwweDAwLDB4MzUsMHg0OSwweEE4LDB4NEIsMHgwNiwweDAwLDB4OTgsMHg0OCwweDk2LDB4NEIsMHgwNiwweDAwLDB4QkEsMHg0OCwKLTB4OTYsMHg0QiwweDA2LDB4MDAsMHhDMywweDQ4LDB4OTYsMHg0QiwweDA2LDB4MDAsMHhDQiwweDQ4LDB4OTYsMHg0QiwweDA2LDB4MDAsCi0weDIwLDB4NDksMHg5NiwweDRCLDB4MDYsMHgwMCwweDI4LDB4NDksMHg5NiwweDRCLDB4MDYsMHgwMCwweDRFLDB4NEEsMHg5QywweDRCLAotMHgwNiwweDAwLDB4N0IsMHg0QSwweDlDLDB4NEIsMHgwNSwweDAwLDB4OUUsMHg0QSwweEEyLDB4NEIsMHgwNSwweDAwLDB4RUMsMHg0QSwKLTB4QTIsMHg0QiwweDAwLDB4MDAsMHgxRSwweDA2LDB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc0LDB4MDksMHhBMCwweDA2LDB4MDEsCi0weDI0LDB4MzAsMHgzQywweDMwLDB4NzQsMHgxQSwweDhDLDB4QzgsMHg4RSwweEQ4LDB4OEUsMHhDMCwweEJCLDB4QUUsMHg0QiwweDhCLAotMHgwRiwweEUzLDB4MEQsMHg4QiwweDdGLDB4MDIsMHg4QiwweDc3LDB4MDQsMHhGMywweEE0LDB4ODMsMHhDMywweDA2LDB4RUIsMHhFRiwKLTB4MDcsMHgxRiwweEMzLDB4OTAsMHgzMywweEMwLDB4QTMsMHgzRSwweDAxLDB4QjksMHgwQywweDAxLDB4QkUsMHg0MCwweDAxLDB4OEIsCi0weEZFLDB4ODEsMHhDNiwweEI0LDB4MEYsMHg4OSwweDA0LDB4OEIsMHhDNiwweDJCLDB4RjEsMHgzQiwweEM3LDB4NzcsMHhGNiwweEEzLAotMHgzQywweDAxLDB4QzMsMHg5MCwweDFFLDB4MDYsMHg2MCwweDM2LDB4OEIsMHgyRSwweDNFLDB4MDEsMHg4QiwweDVFLDB4MDAsMHgzQiwKLTB4RUIsMHg3NCwweDJCLDB4OEIsMHg3NiwweDAyLDB4ODksMHgxQywweDg5LDB4NzcsMHgwMiwweDM2LDB4QTEsMHgzQywweDAxLDB4ODksCi0weDQ2LDB4MDAsMHgzNiwweDg5LDB4MkUsMHgzQywweDAxLDB4OEIsMHhFQiwweEZGLDB4NEUsMHgwNiwweDc0LDB4MDgsMHg4QiwweDZFLAotMHgwMCwweEZGLDB4NEUsMHgwNiwweDc1LDB4RjgsMHgzNiwweDg5LDB4MkUsMHgzRSwweDAxLDB4OEIsMHg2NiwweDA0LDB4NjEsMHgwNywKLTB4MUYsMHhDMywweDFFLDB4MDYsMHg2MCwweDM2LDB4OEIsMHgyRSwweDNFLDB4MDEsMHg5OCwweDg5LDB4NDYsMHgwNiwweDg5LDB4NjYsCi0weDA0LDB4M0IsMHg2RSwweDAwLDB4NzQsMHgxMCwweDhCLDB4NkUsMHgwMCwweEZGLDB4NEUsMHgwNiwweDc1LDB4RjgsMHgzNiwweDg5LAotMHgyRSwweDNFLDB4MDEsMHg4QiwweDY2LDB4MDQsMHg2MSwweDA3LDB4MUYsMHhDMywweEMzLDB4OTAsMHgxRSwweDA2LDB4NjAsMHg5QywKLTB4RkEsMHgzMywweEVELDB4OEUsMHhERCwweDhCLDB4MkUsMHgzQywweDAxLDB4ODUsMHhFRCwweDc0LDB4M0QsMHg4QiwweDRFLDB4MDAsCi0weDg5LDB4MEUsMHgzQywweDAxLDB4OEIsMHhDQywweDhELDB4QTYsMHgwQSwweDAxLDB4NTYsMHgxRSwweDA2LDB4NjAsMHg4OSwweDY2LAotMHgwNCwweEM3LDB4NDYsMHgwOCwweDBGLDB4MUEsMHhDNywweDQ2LDB4MDYsMHgwMSwweDAwLDB4OEIsMHgxRSwweDNFLDB4MDEsMHg4NSwKLTB4REIsMHg3NCwweDFELDB4OEIsMHhDNSwweDg3LDB4MDcsMHg4OSwweDQ2LDB4MDAsMHg4OSwweDVFLDB4MDIsMHg4QiwweEQ4LDB4ODksCi0weDZGLDB4MDIsMHg4QiwweEUxLDB4OUQsMHg2MSwweDA3LDB4MUYsMHhGOCwweEMzLDB4OUQsMHg2MSwweDA3LDB4MUYsMHhGOSwweEMzLAotMHg4OSwweDJFLDB4M0UsMHgwMSwweDg5LDB4NkUsMHgwMCwweDg5LDB4NkUsMHgwMiwweDg3LDB4RTEsMHg5RCwweDhCLDB4RTEsMHhFQiwKLTB4RTQsMHgwMCwweDBELDB4MEEsMHg1NCwweDY1LDB4NzIsMHg2RCwweDY5LDB4NkUsMHg2MSwweDZDLDB4NzMsMHgyMCwweDczLDB4NzUsCi0weDcwLDB4NzAsMHg2RiwweDcyLDB4NzQsMHg2NSwweDY0LDB4M0EsMHgwRCwweDBBLDB4MzEsMHgyOSwweDIwLDB4NDEsMHg0RSwweDUzLAotMHg0OSwweDIwLDB4NjMsMHg2RiwweDZELDB4NzAsMHg2MSwweDc0LDB4NjksMHg2MiwweDZDLDB4NjUsMHgwRCwweDBBLDB4MzIsMHgyOSwKLTB4MjAsMHg1NywweDc5LDB4NzMsMHg2NSwweDIwLDB4MzMsMHgzMCwweDBELDB4MEEsMHg1MCwweDZDLDB4NjUsMHg2MSwweDczLDB4NjUsCi0weDIwLDB4NzMsMHg2NSwweDZDLDB4NjUsMHg2MywweDc0LDB4M0EsMHgyMCwweDAwLDB4MEQsMHgwQSwweDYzLDB4NkYsMHg2NCwweDY1LAotMHgyMCwweDczLDB4NjUsMHg2NywweDZELDB4NjUsMHg2RSwweDc0LDB4M0QsMHgwMCwweDBELDB4MEEsMHg0RCwweDZGLDB4NkUsMHg2OSwKLTB4NzQsMHg2RiwweDcyLDB4MjAsMHg3NiwweDMyLDB4MkUsMHgzNSwweDBBLDB4MEQsMHgwQSwweDNFLDB4MDAsMHgwRCwweDBBLDB4NTAsCi0weDYxLDB4NzIsMHg2NCwweDZGLDB4NkUsMHgzRiwweDAwLDB4MEQsMHgwQSwweDRFLDB4NkYsMHgyMCwweDYxLDB4NjQsMHg2NCwweDcyLAotMHg2NSwweDczLDB4NzMsMHgyMCwweDczLDB4NzAsMHg2NSwweDYzLDB4NjksMHg2NiwweDY5LDB4NjUsMHg2NCwweDAwLDB4MEQsMHgwQSwKLTB4M0EsMHgwMCwweDBELDB4MEEsMHgwMCwweDRDLDB4NkYsMHg2MywweDNELDB4MDAsMHgwRCwweDBBLDB4NDYsMHg0MSwweDU0LDB4NDEsCi0weDRDLDB4MjAsMHg0NSwweDUyLDB4NTIsMHg0RiwweDUyLDB4M0QsMHgwMCwweDBELDB4MEEsMHg0RCwweDZGLDB4NkUsMHg2OSwweDc0LAotMHg2RiwweDcyLDB4MjAsMHg2MywweDZGLDB4NkQsMHg2RCwweDYxLDB4NkUsMHg2NCwweDczLDB4M0EsMHgyRCwweDBELDB4MEEsMHgyMCwKLTB4MjAsMHgyMCwweDQ0LDB4MkMsMHg2NCwweDVCLDB4NUIsMHg3OCwweDc4LDB4NzgsMHg3OCwweDNBLDB4NUQsMHg3OCwweDc4LDB4NzgsCi0weDc4LDB4NUQsMHgyMCwweDJELDB4MjAsMHg2NCwweDc1LDB4NkQsMHg3MCwweDIwLDB4NkQsMHg2NSwweDZELDB4NkYsMHg3MiwweDc5LAotMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NEMsMHgyQywweDZDLDB4NUIsMHg1QiwweDc4LDB4NzgsMHg3OCwweDc4LDB4M0EsMHg1RCwKLTB4NzgsMHg3OCwweDc4LDB4NzgsMHg1RCwweDIwLDB4MkQsMHgyMCwweDY0LDB4NzUsMHg2RCwweDcwLDB4MjAsMHg3MywweDY5LDB4NkUsCi0weDY3LDB4NkMsMHg2NSwweDIwLDB4NkMsMHg2OSwweDZFLDB4NjUsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NDUsMHgyQywweDY1LAotMHg1QiwweDVCLDB4NzgsMHg3OCwweDc4LDB4NzgsMHgzQSwweDVELDB4NzgsMHg3OCwweDc4LDB4NzgsMHg1RCwweDIwLDB4MkQsMHgyMCwKLTB4NjUsMHg2NCwweDY5LDB4NzQsMHgyMCwweDZELDB4NjUsMHg2RCwweDZGLDB4NzIsMHg3OSwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsCi0weDQ2LDB4MkMsMHg2NiwweDVCLDB4NUIsMHg3OCwweDc4LDB4NzgsMHg3OCwweDIwLDB4NUQsMHg3OCwweDc4LDB4NzgsMHg3OCwweDVELAotMHgyMCwweDJELDB4MjAsMHg2NiwweDY5LDB4NkMsMHg2QywweDIwLDB4NkQsMHg2NSwweDZELDB4NkYsMHg3MiwweDc5LDB4MjAsMHg3MCwKLTB4NjEsMHg3MiwweDYxLDB4NjcsMHg3MiwweDYxLDB4NzAsMHg2OCwweDczLDB4MEQsMHgwQSwweDIwLDB4MjAsMHgyMCwweDQ5LDB4NUIsCi0weDc4LDB4NzgsMHg3OCwweDc4LDB4NUQsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDJELAotMHgyMCwweDc3LDB4NkYsMHg3MiwweDY0LDB4MjAsMHg2OSwweDZFLDB4NzAsMHg3NSwweDc0LDB4MjAsMHg2NiwweDcyLDB4NkYsMHg2RCwKLTB4MjAsMHg3MCwweDZGLDB4NzIsMHg3NCwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg2OSwweDVCLDB4NzgsMHg3OCwweDc4LDB4NzgsCi0weDVELDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjIsMHg3OSwweDc0LAotMHg2NSwweDIwLDB4NjksMHg2RSwweDcwLDB4NzUsMHg3NCwweDIwLDB4NjYsMHg3MiwweDZGLDB4NkQsMHgyMCwweDcwLDB4NkYsMHg3MiwKLTB4NzQsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NEYsMHg3OCwweDc4LDB4NzgsMHg3OCwweDIwLDB4NzgsMHg3OCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDZGLDB4NzUsMHg3NCwweDcwLDB4NzUsMHg3NCwweDIwLAotMHg3NywweDZGLDB4NzIsMHg2NCwweDIwLDB4NzQsMHg2RiwweDIwLDB4NzAsMHg2RiwweDcyLDB4NzQsMHgwRCwweDBBLDB4MjAsMHgyMCwKLTB4MjAsMHg2RiwweDc4LDB4NzgsMHg3OCwweDc4LDB4MjAsMHg3OCwweDc4LDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyRCwweDIwLDB4NkYsMHg3NSwweDc0LDB4NzAsMHg3NSwweDc0LDB4MjAsMHg2MiwweDc5LDB4NzQsMHg2NSwweDIwLAotMHg3NCwweDZGLDB4MjAsMHg3MCwweDZGLDB4NzIsMHg3NCwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg0NywweDVCLDB4NUIsMHg3OCwKLTB4NzgsMHg3OCwweDc4LDB4M0EsMHg1RCwweDc4LDB4NzgsMHg3OCwweDc4LDB4NUQsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjcsCi0weDZGLDB4NzQsMHg2RiwweDIwLDB4NjEsMHg2NCwweDY0LDB4NzIsMHg2NSwweDczLDB4NzMsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLAotMHg1NywweDVCLDB4NUIsMHg3OCwweDc4LDB4NzgsMHg3OCwweDNBLDB4NUQsMHg3OCwweDc4LDB4NzgsMHg3OCwweDVELDB4MjAsMHgyMCwKLTB4MjAsMHgyRCwweDIwLDB4NzcsMHg2MSwweDc0LDB4NjMsMHg2OCwweDIwLDB4NjEsMHgyMCwweDc3LDB4NkYsMHg3MiwweDY0LDB4MEQsCi0weDBBLDB4MjAsMHgyMCwweDIwLDB4NDMsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDY5LDB4NkUsMHg3NCwweDY1LDB4NzIsMHg3MiwweDc1LDB4NzAsMHg3NCwKLTB4NzMsMHgyMCwweDZGLDB4NjYsMHg2NiwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg1MywweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjksMHg2RSwweDc0LAotMHg2NSwweDcyLDB4NzIsMHg3NSwweDcwLDB4NzQsMHg3MywweDIwLDB4NkYsMHg2RSwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg3MywKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDJELDB4MjAsMHg3MywweDY5LDB4NkUsMHg2NywweDZDLDB4NjUsMHgyMCwweDczLDB4NzQsMHg2NSwweDcwLDB4MEQsMHgwQSwweDIwLAotMHgyMCwweDIwLDB4NDIsMHg3OCwweDc4LDB4NzgsMHg3OCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwKLTB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDYyLDB4NzIsMHg2NSwweDYxLDB4NkIsMHg3MCwweDZGLDB4NjksMHg2RSwweDc0LDB4MjAsCi0weDczLDB4NjUsMHg3NCwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg2MiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjIsMHg3MiwweDY1LDB4NjEsMHg2QiwKLTB4NzAsMHg2RiwweDY5LDB4NkUsMHg3NCwweDIwLDB4NjMsMHg2QywweDY1LDB4NjEsMHg3MiwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsCi0weDUyLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDJELDB4MjAsMHg3MiwweDY1LDB4NzMsMHg3NCwweDYxLDB4NzIsMHg3NCwweDIwLDB4NjIsMHg3MiwweDY1LDB4NjEsMHg2QiwKLTB4NzAsMHg2RiwweDY5LDB4NkUsMHg3NCwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg3MiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NzIsMHg2NSwweDY3LAotMHg2OSwweDczLDB4NzQsMHg2NSwweDcyLDB4NzMsMHgyMCwweDYxLDB4NzQsMHgyMCwweDYyLDB4NzIsMHg2QiwweDcwLDB4NzQsMHgwRCwKLTB4MEEsMHgyMCwweDIwLDB4MjAsMHg1OCwweDJDLDB4NzgsMHgyMCwweDZFLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjUsMHg3OCwweDYxLDB4NkQsMHg2OSwweDZFLDB4NjUsMHgyMCwweDYzLAotMHg2OCwweDYxLDB4NkUsMHg2RSwweDY1LDB4NkMsMHgyMCwweDZFLDB4MEQsMHgwQSwweDIwLDB4MjAsMHgyMCwweDQ4LDB4MkMsMHgzRiwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDJELDB4MjAsCi0weDc0LDB4NjgsMHg2OSwweDczLDB4MjAsMHg2RCwweDY1LDB4NzMsMHg3MywweDYxLDB4NjcsMHg2NSwweDAwLDB4MUIsMHg1QiwweDMyLAotMHg0QSwweDFCLDB4NUIsMHgzMSwweDNCLDB4MzEsMHg0OCwweDQxLDB4NEUsMHg1MywweDQ5LDB4MjAsMHg1NCwweDY1LDB4NzIsMHg2RCwKLTB4NjksMHg2RSwweDYxLDB4NkMsMHgwRCwweDBBLDB4MEEsMHgwMCwweDFCLDB4NUIsMHg0QiwweDAwLDB4MUIsMHg1QiwweDRBLDB4MDAsCi0weDFCLDB4NUIsMHgzMiwweDRBLDB4MUIsMHg1QiwweDMxLDB4M0IsMHgzMSwweDQ4LDB4MDAsMHgxQiwweDVCLDB4NDQsMHgyMCwweDFCLAotMHg1QiwweDQ0LDB4MDAsMHgxQiwweDVCLDB4MzEsMHgzQiwweDM3LDB4MzIsMHg0OCwweDAwLDB4MUIsMHg1QiwweDAwLDB4M0IsMHgwMCwKLTB4NDgsMHgwMCwweDFCLDB4NUIsMHg3MywweDAwLDB4MUIsMHg1QiwweDc1LDB4MDAsMHgxQiwweDdBLDB4MkIsMHgwQiwweDdGLDB4MUIsCi0weDdBLDB4MkUsMHgwQywweDdGLDB4MUIsMHg3QSwweDJELDB4MDgsMHg3RiwweDFCLDB4N0EsMHgyQywweDBBLDB4N0YsMHgxQiwweDdBLAotMHgyMiwweDA4LDB4N0YsMHgxQSwweDU3LDB4NzksMHg3MywweDY1LDB4MjAsMHgzMywweDMwLDB4MjAsMHg1NCwweDY1LDB4NzIsMHg2RCwKLTB4NjksMHg2RSwweDYxLDB4NkMsMHgwRCwweDBBLDB4MDAsMHgxQiwweDU0LDB4MDAsMHgxQiwweDU5LDB4MDAsMHgxQSwweDAwLDB4MUUsCi0weDAwLDB4MDgsMHgyMCwweDA4LDB4MDAsMHgwMCwweDFCLDB4M0QsMHgwMCwweDAwLDB4MDAsMHgxQiwweDQ2LDB4MDAsMHgwRCwweDAwLAotMHgzRiwweDQ0LDB4NjQsMHg0NSwweDY1LDB4NDYsMHg2NiwweDQ3LDB4NjcsMHg0OCwweDY4LDB4NDksMHg2OSwweDRGLDB4NkYsMHg0MywKLTB4NjMsMHg1MywweDczLDB4NDIsMHg2MiwweDUyLDB4NzIsMHg1NywweDc3LDB4NTgsMHg3OCwweDRDLDB4NkMsMHgzQywweDYwLDB4RDQsCi0weDU3LDB4RDQsMHg1NywweDUwLDB4NTgsMHg1MCwweDU4LDB4RDYsMHg1OSwweEQ2LDB4NTksMHhCNCwweDU5LDB4QjQsMHg1OSwweDNDLAotMHg2MCwweDNDLDB4NjAsMHg2QywweDU3LDB4NDgsMHg1NywweDI2LDB4NTcsMHgwNiwweDU3LDB4OTAsMHg1NywweDkwLDB4NTcsMHg5OCwKLTB4NTcsMHg0OCwweDVGLDB4MEMsMHg1RiwweDU4LDB4NUYsMHgzMywweDVGLDB4NDAsMHg1RiwweEEwLDB4NTcsMHhBMCwweDU3LDB4RkUsCi0weDU5LDB4RkUsMHg1OSwweERDLDB4NTcsMHhEQywweDU3LDB4ODgsMHg2MSwweDk4LDB4NjEsMHhDMCwweDYxLDB4Q0MsMHg2MSwweEQ4LAotMHg2MSwweEY2LDB4NjEsMHgwMiwweDYyLDB4MjIsMHg2MiwweEY4LDB4NTYsMHg0QSwweDYyLDB4NTgsMHg2MiwweDYwLDB4NTksMHgyMCwKLTB4MjAsMHg2NiwweDZDLDB4NjEsMHg2NywweDczLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MSwweDc4LDB4M0QsMHgwMCwweDIwLDB4MjAsCi0weDYyLDB4NzgsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NzgsMHgzRCwweDAwLDB4MjAsMHgyMCwweDY0LDB4NzgsMHgzRCwweDAwLAotMHgyMCwweDIwLDB4NjMsMHg3MywweDNELDB4MDAsMHgyMCwweDIwLDB4NjQsMHg3MywweDNELDB4MDAsMHgyMCwweDIwLDB4NjUsMHg3MywKLTB4M0QsMHgwMCwweDIwLDB4MjAsMHg3MywweDczLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2NCwweDY5LDB4M0QsMHgwMCwweDIwLDB4MjAsCi0weDczLDB4NjksMHgzRCwweDAwLDB4MjAsMHgyMCwweDYyLDB4NzAsMHgzRCwweDAwLDB4MjAsMHgyMCwweDczLDB4NzAsMHgzRCwweDAwLAotMHgyMCwweDIwLDB4NjksMHg3MCwweDNELDB4MDAsMHgyMCwweDYzLDB4NjgsMHg2MSwweDZFLDB4NjUsMHg2QywweDNELDB4MDAsMHgyMCwKLTB4MjAsMHgyMCwweDIwLDB4NzMsMHg2NSwweDY3LDB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OSwweDVGLDB4NzMsMHg3NCwweDcyLDB4M0QsCi0weDAwLDB4MjAsMHg3NCwweDY5LDB4NUYsMHg3NCwweDZGLDB4NzMsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY5LDB4NUYsMHg2RCwweDYxLAotMHg3OCwweDNELDB4MDAsMHgyMCwweDc0LDB4NjksMHg1RiwweDYyLDB4NjEsMHg3MywweDNELDB4MDAsMHgyMCwweDc0LDB4NjksMHg1RiwKLTB4NzMsMHg2OSwweDdBLDB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OSwweDVGLDB4NzMsMHg3NCwweDY2LDB4M0QsMHgwMCwweDIwLDB4NzQsCi0weDY5LDB4NUYsMHg3MiwweDZGLDB4NkYsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY5LDB4NUYsMHg2NiwweDZDLDB4NjcsMHgzRCwweDAwLAotMHgyMCwweDc0LDB4NjksMHg1RiwweDc0LDB4NkYsMHg3NCwweDNELDB4MDAsMHgyMCwweDcyLDB4NjksMHg1RiwweDcwLDB4NjMsMHg2RSwKLTB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NzMsMHg3NCwweDcyLDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NzMsCi0weDc0LDB4NjYsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg3MiwweDZGLDB4NkYsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY5LAotMHg1RiwweDYyLDB4NjEsMHg3MywweDNELDB4MDAsMHgyMCwweDcyLDB4NjksMHg1RiwweDczLDB4NjksMHg3QSwweDNELDB4MDAsMHgyMCwKLTB4NzIsMHg2OSwweDVGLDB4NzQsMHg2RiwweDc0LDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NkQsMHg2OSwweDZFLDB4M0QsCi0weDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg2NiwweDZDLDB4NjcsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg3NCwweDZGLAotMHg3MywweDNELDB4MDAsMHgyMCwweDcyLDB4NjksMHg1RiwweDc0LDB4NjgsMHg3MiwweDNELDB4MDAsMHgyMCwweDc0LDB4NjgsMHg1RiwKLTB4NzMsMHg3NCwweDY2LDB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OCwweDVGLDB4NzMsMHg3NCwweDcyLDB4M0QsMHgwMCwweDIwLDB4NzQsCi0weDY4LDB4NUYsMHg2MiwweDYxLDB4NzMsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY4LDB4NUYsMHg3MywweDY5LDB4N0EsMHgzRCwweDAwLAotMHgyMCwweDc0LDB4NjgsMHg1RiwweDc0LDB4NzIsMHg2NywweDNELDB4MDAsMHgyMCwweDc0LDB4NjgsMHg1RiwweDY2LDB4NkMsMHg2NywKLTB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OCwweDVGLDB4NjMsMHg2RSwweDc0LDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OCwweDVGLDB4NzMsCi0weDc0LDB4NzIsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY4LDB4NUYsMHg3MywweDc0LDB4NjYsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY4LAotMHg1RiwweDYyLDB4NjEsMHg3MywweDNELDB4MDAsMHgyMCwweDcyLDB4NjgsMHg1RiwweDczLDB4NjksMHg3QSwweDNELDB4MDAsMHgyMCwKLTB4NzIsMHg2OCwweDVGLDB4NzMsMHg3MCwweDYxLDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OCwweDVGLDB4NjEsMHg3MywweDZGLDB4M0QsCi0weDAwLDB4MjAsMHg3MiwweDY4LDB4NUYsMHg3MiwweDZGLDB4NkYsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY4LDB4NUYsMHg2NiwweDZDLAotMHg2NywweDNELDB4MDAsMHgyMCwweDZELDB4NUYsMHg2MywweDYxLDB4NzIsMHg2NSwweDNELDB4MDAsMHgyMCwweDcwLDB4NzQsMHg1RiwKLTB4NjYsMHg2QywweDZGLDB4M0QsMHgwMCwweDIwLDB4NjEsMHg3MywweDVGLDB4NjYsMHg2QywweDZGLDB4M0QsMHgwMCwweDIwLDB4NzIsCi0weDZELDB4NUYsMHg2NiwweDZDLDB4NkYsMHgzRCwweDAwLDB4MjAsMHgyMCwweDIwLDB4NzEsMHg1RiwweDY5LDB4NkUsMHgzRCwweDAwLAotMHgyMCwweDIwLDB4NzEsMHg1RiwweDZGLDB4NzUsMHg3NCwweDNELDB4MDAsMHgyMCwweDcxLDB4NUYsMHg2NCwweDcyLDB4NjEsMHg2RSwKLTB4M0QsMHgwMCwweDIwLDB4MjAsMHg3MSwweDVGLDB4NzQsMHg2OSwweDZELDB4M0QsMHgwMCwweDIwLDB4MjAsMHgyMCwweDcxLDB4NUYsCi0weDY2LDB4NjMsMHgzRCwweDAwLDB4MjAsMHg3MSwweDVGLDB4NzMsMHg3NCwweDYxLDB4NzQsMHgzRCwweDAwLDB4MjAsMHg3MSwweDVGLAotMHg2NCwweDYxLDB4NzQsMHg2MSwweDNELDB4MDAsMHgyMCwweDcxLDB4NUYsMHg2RCwweDZGLDB4NjQsMHg2RCwweDNELDB4MDAsMHgyMCwKLTB4NjgsMHg2MSwweDZFLDB4NjQsMHg1RiwweDZGLDB4M0QsMHgwMCwweDIwLDB4NjgsMHg2MSwweDZFLDB4NjQsMHg1RiwweDYyLDB4M0QsCi0weDAwLDB4MjAsMHg2OCwweDYxLDB4NkUsMHg2NCwweDVGLDB4NjUsMHgzRCwweDAwLDB4MjAsMHg2OCwweDYxLDB4NkUsMHg2NCwweDVGLAotMHg2OSwweDNELDB4MDAsMHgyMCwweDIwLDB4NkYsMHg3MCwweDZGLDB4NzMsMHg3NCwweDNELDB4MDAsMHgyMCwweDIwLDB4NzQsMHg2OSwKLTB4NkQsMHg2NSwweDZGLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg3NSwweDczLDB4NzQsMHg2RCwweDMxLDB4M0QsMHgwMCwweDIwLDB4NjMsCi0weDc1LDB4NzMsMHg3NCwweDZELDB4MzIsMHgzRCwweDAwLDB4MjAsMHg2MywweDc1LDB4NzMsMHg3NCwweDZELDB4NjQsMHgzRCwweDAwLAotMHgyMCwweDc0LDB4NzgsMHg3MiwweDYxLDB4NzQsMHg2NSwweDNELDB4MDAsMHgyMCwweDcyLDB4NzgsMHg3MiwweDYxLDB4NzQsMHg2NSwKLTB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NkQsMHg2MSwweDcwLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg1RiwweDYxLDB4NjQsCi0weDY0LDB4NzIsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLDB4NjEsMHg2OSwweDczLDB4NzIsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLAotMHg3OCwweDc0LDB4NjEsMHg2NywweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg2NCwweDY1LDB4NjYsMHg3MiwweDNELDB4MDAsMHgyMCwKLTB4NjMsMHg1RiwweDY2LDB4NkMsMHg3MywweDY4LDB4M0QsMHgwMCwweDIwLDB4NzQsMHg3OCwweDZELDB4NjEsMHg3OCwweDczLDB4M0QsCi0weDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg2NSwweDZELDB4NzMsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NUYsMHg2QywweDczLAotMHg3MiwweDNELDB4MDAsMHgyMCwweDIwLDB4NjMsMHg1RiwweDY5LDB4NjUsMHg3MiwweDNELDB4MDAsMHgyMCwweDIwLDB4NjMsMHg1RiwKLTB4NjYsMHg2MywweDcyLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NkQsMHg2MywweDcyLDB4M0QsMHgwMCwweDIwLDB4MjAsCi0weDYzLDB4NUYsMHg2QywweDYzLDB4NzIsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NUYsMHg2NCwweDczLDB4NzMsMHgzRCwweDAwLAotMHgyMCwweDYzLDB4NUYsMHg2NCwweDczLDB4NzMsMHg2OSwweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg2NCwweDczLDB4NzMsMHg3MiwKLTB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NjksMHg3MywweDcyLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NjMsCi0weDYxLDB4NzIsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NUYsMHg2NSwweDY2LDB4NzIsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLAotMHg2NSwweDcyLDB4NzMsMHg3NCwweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg2NSwweDYzLDB4NkUsMHg3NCwweDNELDB4MDAsMHgyMCwKLTB4NjMsMHg1RiwweDYyLDB4NzIsMHg2QiwweDYzLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg1RiwweDYyLDB4NkYsMHg2QiwweDYzLDB4M0QsCi0weDAwLDB4MjAsMHg2MywweDVGLDB4NzIsMHg2NSwweDcwLDB4NkMsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLDB4NjMsMHg2MywweDczLAotMHg3MiwweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg3MywweDc0LDB4NzQsMHgzMSwweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg3MywKLTB4NzQsMHg3NCwweDMyLDB4M0QsMHgwMCwweDJCLDB4QzAsMHg4RSwweEQ4LDB4OEUsMHhDMCwweEU4LDB4QzIsMHgwMCwweEU4LDB4RTUsCi0weDAwLDB4RkEsMHhCRiwweDg0LDB4MDAsMHhDNywweDA1LDB4REMsMHg1NiwweDhDLDB4NEQsMHgwMiwweEJGLDB4MEMsMHgwMCwweEM3LAotMHgwNSwweDZFLDB4NUUsMHg4QywweDRELDB4MDIsMHhCRiwweDA0LDB4MDAsMHhDNywweDA1LDB4QkEsMHg1RSwweDhDLDB4NEQsMHgwMiwKLTB4RTgsMHhGMSwweDAwLDB4OTAsMHhFOCwweDQ5LDB4MDEsMHhFOCwweDE2LDB4MDAsMHhGNCwweDkwLDB4RTgsMHhFNSwweDAwLDB4QkUsCi0weEJBLDB4NEQsMHhFOCwweDA5LDB4MEMsMHhBMCwweDkzLDB4MTIsMHhFOCwweDVELDB4MEMsMHhFOCwweEMyLDB4MDksMHhFQiwweEU0LAotMHhFOCwweEQ1LDB4MEMsMHhFOCwweEM0LDB4MEMsMHgwQSwweEMwLDB4NzQsMHhGNiwweDhCLDB4MUUsMHhGOCwweDc5LDB4M0MsMHgwRCwKLTB4NzQsMHgyRSwweDNDLDB4MDgsMHg3NCwweDE3LDB4M0MsMHg3RiwweDc0LDB4MTMsMHg4MywweEZCLDB4MjAsMHg3RiwweEUxLDB4ODgsCi0weDg3LDB4RDYsMHg3OSwweDQzLDB4ODksMHgxRSwweEY4LDB4NzksMHhFOCwweDc3LDB4MEMsMHhFQiwweEQzLDB4MEIsMHhEQiwweDc0LAotMHhDRiwweDRCLDB4ODksMHgxRSwweEY4LDB4NzksMHg4QiwweDM2LDB4MTYsMHg3QSwweEU4LDB4QzEsMHgwQiwweEVCLDB4QzEsMHg5MCwKLTB4RTgsMHgwMiwweDAwLDB4RUIsMHhCQiwweEM2LDB4ODcsMHhENiwweDc5LDB4MDAsMHgwQiwweERCLDB4NzQsMHgxRSwweEEwLDB4RDYsCi0weDc5LDB4QkYsMHg2MCwweDUxLDB4QjksMHgxRCwweDAwLDB4OEIsMHhEOSwweDA2LDB4MEUsMHgwNywweEYyLDB4QUUsMHgwNywweDc1LAotMHgxNywweDQxLDB4MkIsMHhEOSwweEQxLDB4RTMsMHgyRSwweEZGLDB4OTcsMHg3RCwweDUxLDB4OTAsMHgzMywweEMwLDB4QTMsMHhGOCwKLTB4NzksMHhCRSwweDg5LDB4NEQsMHhFOCwweDg3LDB4MEIsMHhDMywweEJFLDB4OEQsMHg0RCwweEU4LDB4ODAsMHgwQiwweEVCLDB4RUMsCi0weEJBLDB4MDAsMHgwMiwweEIwLDB4OTMsMHhFRSwweEIwLDB4NTUsMHhFRSwweEJBLDB4MTAsMHgwMiwweEIwLDB4OTMsMHhFRSwweEIwLAotMHhBQSwweEVFLDB4QkEsMHgwMCwweDAyLDB4RUMsMHgzQywweDU1LDB4NzUsMHgwOCwweEJBLDB4MTAsMHgwMiwweEVDLDB4M0MsMHhBQSwKLTB4NzQsMHgwMywweEU4LDB4MkYsMHhGNiwweEMzLDB4QkEsMHgwNCwweDAyLDB4QjAsMHgxQSwweEVFLDB4QjAsMHgyMCwweEVFLDB4QjAsCi0weDMwLDB4RUUsMHhCMCwweDQwLDB4RUUsMHhCMCwweDgwLDB4RUUsMHhCQSwweDAwLDB4MDIsMHhCMCwweDEzLDB4RUUsMHhCMCwweDA3LAotMHhFRSwweEJBLDB4MDgsMHgwMiwweEIwLDB4ODAsMHhFRSwweEJBLDB4MDIsMHgwMiwweEIwLDB4QkIsMHhFRSwweEJBLDB4MDQsMHgwMiwKLTB4QjAsMHgwNSwweEVFLDB4QzMsMHhDNiwweDA2LDB4Q0EsMHgxMywweDAxLDB4QzcsMHgwNiwweEY4LDB4NzksMHgwMCwweDAwLDB4QzYsCi0weDA2LDB4RjYsMHg3OSwweDAxLDB4QzcsMHgwNiwweEQwLDB4NzksMHgwMCwweDAwLDB4QzcsMHgwNiwweEQyLDB4NzksMHgwMCwweDAwLAotMHhDNywweDA2LDB4RDQsMHg3OSwweDAwLDB4MDAsMHhDNywweDA2LDB4RkEsMHg3OSwweDAwLDB4MDAsMHhDNywweDA2LDB4RkMsMHg3OSwKLTB4MDAsMHgwMCwweEM3LDB4MDYsMHhGRSwweDc5LDB4MDAsMHgwMCwweEM3LDB4MDYsMHgwMCwweDdBLDB4MDAsMHgwMCwweEM3LDB4MDYsCi0weDAyLDB4N0EsMHhDRSwweDU5LDB4OEMsMHgwRSwweDA0LDB4N0EsMHhDNywweDA2LDB4MDYsMHg3QSwweDAwLDB4MDAsMHhDNywweDA2LAotMHgyNywweDdBLDB4MDAsMHgwMCwweEM2LDB4MDYsMHgyOSwweDdBLDB4MDAsMHhDNiwweDA2LDB4MkEsMHg3QSwweDAwLDB4QzMsMHg5MCwKLTB4QkUsMHgyMiwweDRELDB4RTgsMHhDOCwweDBBLDB4RTgsMHgzRiwweDAwLDB4MkMsMHgzMSwweDNDLDB4MDEsMHg3NywweEY3LDB4RTgsCi0weDgxLDB4MDksMHg4QiwweDM2LDB4MEMsMHg3QSwweEU4LDB4QjUsMHgwQSwweEJFLDB4NkEsMHg0RCwweEU4LDB4QUYsMHgwQSwweDBFLAotMHg1OCwweEU4LDB4RjgsMHgwQSwweEJFLDB4N0EsMHg0RCwweEU4LDB4QTQsMHgwQSwweEMzLDB4OTAsMHg2MCwweEQxLDB4RTMsMHg4MywKLTB4RkIsMHgxOCwweDczLDB4MTEsMHgxRSwweEJBLDB4MDAsMHgwMCwweDhFLDB4REEsMHgyRSwweEZGLDB4OTcsMHhCNywweDUxLDB4OEIsCi0weEVDLDB4ODksMHg0NiwweDEwLDB4MUYsMHg2MSwweENGLDB4OTAsMHhFOCwweDRGLDB4MEIsMHgwQSwweEMwLDB4NzUsMHgwNSwweEU4LAotMHg1NiwweDBCLDB4RUIsMHhGNCwweEMzLDB4OTAsMHg4MywweDNFLDB4RjgsMHg3OSwweDAxLDB4NzQsMHgxNiwweEJFLDB4RDcsMHg3OSwKLTB4RTgsMHgzMSwweDBBLDB4OEIsMHhEMCwweEFDLDB4M0MsMHgyQywweDc0LDB4MDQsMHgzQywweDIwLDB4NzUsMHgwNSwweEU4LDB4MjMsCi0weDBBLDB4RUUsMHhDMywweEU5LDB4RDIsMHhGRSwweDgzLDB4M0UsMHhGOCwweDc5LDB4MDEsMHg3NCwweEY2LDB4QkUsMHhENywweDc5LAotMHhFOCwweDExLDB4MEEsMHg4QiwweEQwLDB4QUMsMHgzQywweDJDLDB4NzQsMHgwOCwweDNDLDB4MjAsMHg3NCwweDA0LDB4RTksMHhCNywKLTB4RkUsMHg5MCwweEU4LDB4RkYsMHgwOSwweEVGLDB4QzMsMHg5MCwweDhCLDB4MTYsMHgwNiwweDdBLDB4ODMsMHgzRSwweEY4LDB4NzksCi0weDAxLDB4NzQsMHgwQiwweEJFLDB4RDcsMHg3OSwweEU4LDB4RUIsMHgwOSwweDhCLDB4RDAsMHhBMywweDA2LDB4N0EsMHhCMCwweDIwLAotMHhFOCwweDU3LDB4MEIsMHg4QiwweDE2LDB4MDYsMHg3QSwweEVDLDB4RTgsMHg2RiwweDBCLDB4QzMsMHg4QiwweDE2LDB4MDYsMHg3QSwKLTB4ODMsMHgzRSwweEY4LDB4NzksMHgwMSwweDc0LDB4MEIsMHhCRSwweEQ3LDB4NzksMHhFOCwweEM3LDB4MDksMHg4QiwweEQwLDB4QTMsCi0weDA2LDB4N0EsMHhCMCwweDIwLDB4RTgsMHgzMywweDBCLDB4OEIsMHgxNiwweDA2LDB4N0EsMHhFRCwweEU4LDB4NjcsMHgwQiwweEMzLAotMHhGQSwweEM2LDB4MDYsMHhGNiwweDc5LDB4MDAsMHhDMywweDkwLDB4QzYsMHgwNiwweEY2LDB4NzksMHgwMSwweEZCLDB4QzMsMHg5MCwKLTB4MDYsMHhFOCwweDU4LDB4MDksMHhCMCwweDIwLDB4RTgsMHgxMSwweDBCLDB4MjYsMHg4QiwweDA1LDB4RTgsMHg0NywweDBCLDB4QjAsCi0weDA4LDB4RTgsMHgwNiwweDBCLDB4RTgsMHgwMywweDBCLDB4RTgsMHgwMCwweDBCLDB4RTgsMHhGRCwweDBBLDB4QjgsMHgwMSwweDAwLAotMHhFOCwweENGLDB4RjQsMHhCQSwweDAyLDB4MDIsMHhFQywweDI0LDB4MDEsMHg3NSwweDAyLDB4RUIsMHhEQywweEJBLDB4MDYsMHgwMiwKLTB4RUMsMHgwNywweEMzLDB4OTAsMHhDNywweDA2LDB4MDgsMHg3QSwweDEwLDB4MDAsMHhFQiwweDA2LDB4QzcsMHgwNiwweDA4LDB4N0EsCi0weDAxLDB4MDAsMHgwNiwweDhFLDB4MDYsMHhGQywweDc5LDB4OEIsMHgzRSwweEZBLDB4NzksMHhFOCwweDBFLDB4MDksMHhFOCwweDBCLAotMHgwMCwweDg5LDB4M0UsMHhGQSwweDc5LDB4OEMsMHgwNiwweEZDLDB4NzksMHgwNywweEMzLDB4OTAsMHhCRSwweEIyLDB4NEQsMHhFOCwKLTB4N0MsMHgwOSwweDhCLDB4MTYsMHgwOCwweDdBLDB4NTIsMHhFOCwweDJBLDB4MDksMHhFOCwweDBGLDB4MEEsMHhFOCwweDBDLDB4MEEsCi0weDMzLDB4REIsMHhCOSwweDEwLDB4MDAsMHg5MCwweDI2LDB4OEEsMHgwMSwweEU4LDB4QkMsMHgwOSwweEU4LDB4RkQsMHgwOSwweDQzLAotMHhFMiwweEY0LDB4RTgsMHhGNywweDA5LDB4RTgsMHhGNCwweDA5LDB4MzMsMHhEQiwweEI5LDB4MTAsMHgwMCwweDkwLDB4MjYsMHg4QSwKLTB4MDEsMHgzQywweDIwLDB4NzIsMHgwNSwweDNDLDB4N0UsMHg3NiwweDAzLDB4OTAsMHhCMCwweDJFLDB4RTgsMHhFMywweDA5LDB4NDMsCi0weEUyLDB4RUMsMHhCRSwweEIyLDB4NEQsMHhFOCwweDM2LDB4MDksMHg4MywweEM3LDB4MTAsMHg1QSwweDRBLDB4NzUsMHhCNywweEMzLAotMHgwNiwweDhFLDB4MDYsMHgwMCwweDdBLDB4OEIsMHgzRSwweEZFLDB4NzksMHhFOCwweEEwLDB4MDgsMHg4OSwweDNFLDB4RkUsMHg3OSwKLTB4OEMsMHgwNiwweDAwLDB4N0EsMHg1NywweDhCLDB4MzYsMHgwRSwweDdBLDB4RTgsMHgxMiwweDA5LDB4QzcsMHgwNiwweDA4LDB4N0EsCi0weDEwLDB4MDAsMHhCQSwweDAwLDB4MDIsMHhFOCwweEU4LDB4MDAsMHhFOCwweDgxLDB4RkYsMHg1RiwweEJBLDB4MDAsMHgwMCwweEU4LAotMHhERSwweDAwLDB4QkUsMHhCNSwweDRELDB4RTgsMHhGNiwweDA4LDB4OEMsMHhDMCwweEU4LDB4M0YsMHgwOSwweEIwLDB4M0EsMHhFOCwKLTB4OTAsMHgwOSwweDhCLDB4QzcsMHhFOCwweDM1LDB4MDksMHhFOCwweDdFLDB4MDgsMHhFOCwweEMzLDB4MDAsMHg5MCwweEU4LDB4QjcsCi0weDA5LDB4RTgsMHhBNiwweDA5LDB4MEEsMHhDMCwweDc0LDB4RjYsMHgzQywweDBCLDB4NzUsMHgwNiwweDgzLDB4RUYsMHgxMCwweEVCLAotMHgxOSwweDkwLDB4M0MsMHgwQSwweDc1LDB4MDYsMHg4MywweEM3LDB4MTAsMHhFQiwweDBGLDB4OTAsMHgzQywweDBDLDB4NzUsMHgwNCwKLTB4NDcsMHhFQiwweDA3LDB4OTAsMHgzQywweDA4LDB4NzUsMHgyNCwweDRGLDB4OTAsMHg4QiwweDM2LDB4RkUsMHg3OSwweDhCLDB4QzcsCi0weDJCLDB4QzYsMHgzRCwweDAwLDB4MDEsMHg3MiwweEE1LDB4M0QsMHgxMCwweDAxLDB4NzIsMHgwNCwweDgzLDB4RUUsMHgyMCwweDkwLAotMHg4MywweEM2LDB4MTAsMHg4OSwweDM2LDB4RkUsMHg3OSwweDU3LDB4OEIsMHhGRSwweEVCLDB4ODAsMHgzQywweDJFLDB4NzUsMHgwOCwKLTB4QkEsMHgwMSwweDEzLDB4RTgsMHg2QSwweDAwLDB4MDcsMHhDMywweEM2LDB4MDYsMHgwQSwweDdBLDB4MDIsMHgzMiwweEM5LDB4OTAsCi0weDNDLDB4MzAsMHg3MiwweDRDLDB4M0MsMHgzOSwweDc2LDB4MEMsMHgyNCwweDVGLDB4M0MsMHg0MSwweDcyLDB4NDIsMHgzQywweDQ2LAotMHg3NywweDNFLDB4MkMsMHgwNywweDJDLDB4MzAsMHg1MCwweEU4LDB4Q0MsMHgwOCwweDU4LDB4MDIsMHhDOCwweEZFLDB4MEUsMHgwQSwKLTB4N0EsMHg3NCwweDBGLDB4QzAsMHhFMSwweDA0LDB4RTgsMHgyRiwweDA5LDB4RTgsMHgxRSwweDA5LDB4MEEsMHhDMCwweDc0LDB4RjYsCi0weEVCLDB4Q0UsMHgyNiwweDg4LDB4MEQsMHhFOCwweEUwLDB4MDcsMHg4QSwweEQwLDB4RTgsMHgyMywweDAwLDB4OEEsMHhDMSwweDNDLAotMHgyMCwweDcyLDB4MDUsMHgzQywweDdFLDB4NzYsMHgwMywweDkwLDB4QjAsMHgyRSwweEU4LDB4RDUsMHgwOCwweEU5LDB4NzAsMHhGRiwKLTB4RTgsMHhDNSwweDA3LDB4RTgsMHgwQSwweDAwLDB4MjYsMHg4QSwweDA1LDB4RTgsMHg3QywweDA4LDB4RTksMHgxRCwweEZGLDB4OTAsCi0weEY2LDB4MDYsMHgyNiwweDdBLDB4MDIsMHg3NSwweDAyLDB4ODYsMHhGMiwweDUyLDB4OEIsMHgzNiwweDFBLDB4N0EsMHhFOCwweDBELAotMHgwOCwweDVBLDB4NTIsMHg4QSwweEM2LDB4MDIsMHgwNiwweDI0LDB4N0EsMHhGNiwweDA2LDB4MjYsMHg3QSwweDAxLDB4NzUsMHgwNiwKLTB4RTgsMHg5RiwweDA4LDB4RUIsMHgwRCwweDkwLDB4MzIsMHhFNCwweEU4LDB4MEQsMHgwOCwweDhCLDB4MzYsMHgxQywweDdBLDB4RTgsCi0weEVDLDB4MDcsMHg1QSwweDhBLDB4QzIsMHgwMiwweDA2LDB4MjUsMHg3QSwweEY2LDB4MDYsMHgyNiwweDdBLDB4MDEsMHg3NSwweDA2LAotMHhFOCwweDdGLDB4MDgsMHhFQiwweDA2LDB4OTAsMHgzMiwweEU0LDB4RTgsMHhFRCwweDA3LDB4OEIsMHgzNiwweDFFLDB4N0EsMHhFOCwKLTB4Q0MsMHgwNywweEMzLDB4OTAsMHgwNiwweDhFLDB4MDYsMHgwNCwweDdBLDB4OEIsMHgzRSwweDAyLDB4N0EsMHhFOCwweDNDLDB4MDcsCi0weDg5LDB4M0UsMHgwMiwweDdBLDB4OEMsMHgwNiwweDA0LDB4N0EsMHgwNywweEZGLDB4MUUsMHgwMiwweDdBLDB4QzMsMHhCRSwweDk3LAotMHg0RCwweEU4LDB4QUEsMHgwNywweENCLDB4OTAsMHgwNiwweDU3LDB4QkUsMHhENywweDc5LDB4RTgsMHg2NiwweDA3LDB4OEIsMHhEOCwKLTB4RTgsMHg2MSwweDA3LDB4OEIsMHhDOCwweDJCLDB4Q0IsMHg3OCwweDExLDB4OEUsMHhDMywweEJGLDB4MDAsMHgwMCwweEI4LDB4RkYsCi0weEZGLDB4NTEsMHhCOSwweDA4LDB4MDAsMHhGMywweEFCLDB4NTksMHhFMiwweEY3LDB4NUYsMHgwNywweEMzLDB4OTAsMHgwNiwweEJFLAotMHhENywweDc5LDB4RTgsMHgzRiwweDA3LDB4OEIsMHhEOCwweEQxLDB4RTMsMHgyRSwweDhCLDB4OUYsMHg0NCwweDAwLDB4QkUsMHgyNiwKLTB4NTIsMHhFOCwweEYxLDB4MDgsMHg4QiwweEMzLDB4RTgsMHhERCwweDA4LDB4QjgsMHgwMSwweDAwLDB4RTgsMHg3MywweEYyLDB4RTgsCi0weEUwLDB4MDgsMHhCRSwweDJGLDB4NTIsMHhFOCwweERELDB4MDgsMHg4QiwweDQ3LDB4MTgsMHhFOCwweEM4LDB4MDgsMHhCRSwweDc3LAotMHg1MiwweEU4LDB4RDEsMHgwOCwweDhCLDB4NDcsMHgyNiwweEU4LDB4QkMsMHgwOCwweEJFLDB4NTMsMHg1MiwweEU4LDB4QzUsMHgwOCwKLTB4OEIsMHg0NywweDFFLDB4RTgsMHhCMCwweDA4LDB4QkUsMHg1QywweDUyLDB4RTgsMHhCOSwweDA4LDB4OEIsMHg0NywweDIwLDB4RTgsCi0weEE0LDB4MDgsMHhCRSwweDZFLDB4NTIsMHhFOCwweEFELDB4MDgsMHg4QiwweDQ3LDB4MjQsMHhFOCwweDk4LDB4MDgsMHhCRSwweDgwLAotMHg1MiwweEU4LDB4QTEsMHgwOCwweDhCLDB4NDcsMHgyQSwweEU4LDB4OEMsMHgwOCwweEU4LDB4OTUsMHgwOCwweEJFLDB4MzgsMHg1MiwKLTB4RTgsMHg5MiwweDA4LDB4OEIsMHgwNywweEU4LDB4N0UsMHgwOCwweEJFLDB4NDEsMHg1MiwweEU4LDB4ODcsMHgwOCwweDhCLDB4NDcsCi0weDFBLDB4RTgsMHg3MiwweDA4LDB4QkUsMHg0QSwweDUyLDB4RTgsMHg3QiwweDA4LDB4OEIsMHg0NywweDFDLDB4RTgsMHg2NiwweDA4LAotMHhCRSwweDY1LDB4NTIsMHhFOCwweDZGLDB4MDgsMHg4QiwweDQ3LDB4MjIsMHhFOCwweDVBLDB4MDgsMHhFOCwweDYzLDB4MDgsMHhCRSwKLTB4RDEsMHg1MiwweEU4LDB4NjAsMHgwOCwweDhCLDB4NDcsMHgzOCwweEU4LDB4NEIsMHgwOCwweEJFLDB4QUQsMHg1MiwweEU4LDB4NTQsCi0weDA4LDB4OEIsMHg0NywweDMwLDB4RTgsMHgzRiwweDA4LDB4QkUsMHhCNiwweDUyLDB4RTgsMHg0OCwweDA4LDB4OEIsMHg0NywweDMyLAotMHhFOCwweDMzLDB4MDgsMHhCRSwweEE0LDB4NTIsMHhFOCwweDNDLDB4MDgsMHg4QiwweDQ3LDB4MkUsMHhFOCwweDI3LDB4MDgsMHhCRSwKLTB4QkYsMHg1MiwweEU4LDB4MzAsMHgwOCwweDhCLDB4NDcsMHgzNCwweEU4LDB4MUIsMHgwOCwweEU4LDB4MjQsMHgwOCwweEJFLDB4ODksCi0weDUyLDB4RTgsMHgyMSwweDA4LDB4OEIsMHg0NywweDA0LDB4RTgsMHgwQywweDA4LDB4QkUsMHg5MiwweDUyLDB4RTgsMHgxNSwweDA4LAotMHg4QiwweDQ3LDB4MTQsMHhFOCwweDAwLDB4MDgsMHhCRSwweDlCLDB4NTIsMHhFOCwweDA5LDB4MDgsMHg4QiwweDQ3LDB4MkMsMHhFOCwKLTB4RjQsMHgwNywweEJFLDB4QzgsMHg1MiwweEU4LDB4RkQsMHgwNywweDhCLDB4NDcsMHgzNiwweEU4LDB4RTgsMHgwNywweEJFLDB4REEsCi0weDUyLDB4RTgsMHhGMSwweDA3LDB4OEIsMHg0NywweDNBLDB4RTgsMHhEQywweDA3LDB4QkUsMHhFMywweDUyLDB4RTgsMHhFNSwweDA3LAotMHg4QiwweDQ3LDB4M0MsMHhFOCwweEQwLDB4MDcsMHhFOCwweEQ5LDB4MDcsMHhCRSwweDE5LDB4NTMsMHhFOCwweEQ2LDB4MDcsMHg4QiwKLTB4NDcsMHg0OCwweEU4LDB4QzEsMHgwNywweEJFLDB4RkUsMHg1MiwweEU4LDB4Q0EsMHgwNywweDhCLDB4NDcsMHg0MiwweEU4LDB4QjUsCi0weDA3LDB4QkUsMHgwNywweDUzLDB4RTgsMHhCRSwweDA3LDB4OEIsMHg0NywweDQ0LDB4RTgsMHhBOSwweDA3LDB4QkUsMHg3QywweDUzLAotMHhFOCwweEIyLDB4MDcsMHg4QiwweDQ3LDB4NEMsMHhFOCwweDlELDB4MDcsMHhCRSwweDg1LDB4NTMsMHhFOCwweEE2LDB4MDcsMHg4QiwKLTB4NDcsMHg0RSwweEU4LDB4OTEsMHgwNywweEJFLDB4OEUsMHg1MywweEU4LDB4OUEsMHgwNywweDhCLDB4NDcsMHg1MCwweEU4LDB4ODUsCi0weDA3LDB4RTgsMHg4RSwweDA3LDB4QkUsMHgyMiwweDUzLDB4RTgsMHg4QiwweDA3LDB4OEIsMHg0NywweDRBLDB4RTgsMHg3NiwweDA3LAotMHhCRSwweEVDLDB4NTIsMHhFOCwweDdGLDB4MDcsMHg4QiwweDQ3LDB4MDgsMHhFOCwweDZBLDB4MDcsMHhCRSwweEY1LDB4NTIsMHhFOCwKLTB4NzMsMHgwNywweDhCLDB4NDcsMHg0MCwweEU4LDB4NUUsMHgwNywweEJFLDB4MTAsMHg1MywweEU4LDB4NjcsMHgwNywweDhCLDB4NDcsCi0weDQ2LDB4RTgsMHg1MiwweDA3LDB4RTgsMHg1QiwweDA3LDB4QkUsMHg2QSwweDUzLDB4RTgsMHg1OCwweDA3LDB4OEIsMHg0NywweDdBLAotMHhFOCwweDQzLDB4MDcsMHhCRSwweDNELDB4NTMsMHhFOCwweDRDLDB4MDcsMHg4QiwweDQ3LDB4NzAsMHhFOCwweDM3LDB4MDcsMHhCRSwKLTB4NDYsMHg1MywweEU4LDB4NDAsMHgwNywweDhCLDB4NDcsMHg3MiwweEU4LDB4MkIsMHgwNywweEJFLDB4NEYsMHg1MywweEU4LDB4MzQsCi0weDA3LDB4OEIsMHg0NywweDc0LDB4RTgsMHgxRiwweDA3LDB4RTgsMHgyOCwweDA3LDB4QkUsMHgyQiwweDUzLDB4RTgsMHgyNSwweDA3LAotMHg4QiwweDQ3LDB4MEMsMHhFOCwweDEwLDB4MDcsMHhCRSwweDM0LDB4NTMsMHhFOCwweDE5LDB4MDcsMHg4QiwweDQ3LDB4MTAsMHhFOCwKLTB4MDQsMHgwNywweEJFLDB4NTgsMHg1MywweEU4LDB4MEQsMHgwNywweDhCLDB4NDcsMHg3NiwweEU4LDB4RjgsMHgwNiwweEJFLDB4NjEsCi0weDUzLDB4RTgsMHgwMSwweDA3LDB4OEIsMHg0NywweDc4LDB4RTgsMHhFQywweDA2LDB4QkUsMHg3MywweDUzLDB4RTgsMHhGNSwweDA2LAotMHg4QiwweDQ3LDB4M0UsMHhFOCwweEUwLDB4MDYsMHhFOCwweEU5LDB4MDYsMHhCRSwweDk3LDB4NTMsMHhFOCwweEU2LDB4MDYsMHg4QiwKLTB4NDcsMHg1MiwweEU4LDB4RDEsMHgwNiwweEJFLDB4QTAsMHg1MywweEU4LDB4REEsMHgwNiwweDhCLDB4NDcsMHg1NCwweEU4LDB4QzUsCi0weDA2LDB4QkUsMHhBOSwweDUzLDB4RTgsMHhDRSwweDA2LDB4OEIsMHg0NywweDU2LDB4RTgsMHhCOSwweDA2LDB4QkUsMHhCMiwweDUzLAotMHhFOCwweEMyLDB4MDYsMHg4QiwweDQ3LDB4NTgsMHhFOCwweEFELDB4MDYsMHhCRSwweEJCLDB4NTMsMHhFOCwweEI2LDB4MDYsMHg4QiwKLTB4NDcsMHg1QSwweEU4LDB4QTEsMHgwNiwweEJFLDB4QzQsMHg1MywweEU4LDB4QUEsMHgwNiwweDhCLDB4NDcsMHg1QywweEU4LDB4OTUsCi0weDA2LDB4RTgsMHg5RSwweDA2LDB4QkUsMHhDRCwweDUzLDB4RTgsMHg5QiwweDA2LDB4OEIsMHg0NywweDVFLDB4RTgsMHg4NiwweDA2LAotMHhCRSwweEQ2LDB4NTMsMHhFOCwweDhGLDB4MDYsMHg4QiwweDQ3LDB4NjAsMHhFOCwweDdBLDB4MDYsMHhCRSwweERGLDB4NTMsMHhFOCwKLTB4ODMsMHgwNiwweDhCLDB4NDcsMHg2MiwweEU4LDB4NkUsMHgwNiwweEJFLDB4RTgsMHg1MywweEU4LDB4NzcsMHgwNiwweDhCLDB4NDcsCi0weDdDLDB4RTgsMHg2MiwweDA2LDB4QkUsMHhGMSwweDUzLDB4RTgsMHg2QiwweDA2LDB4OEIsMHg0NywweDdFLDB4RTgsMHg1NiwweDA2LAotMHhCRSwweEZBLDB4NTMsMHhFOCwweDVGLDB4MDYsMHg4QiwweDg3LDB4ODAsMHgwMCwweEU4LDB4NDksMHgwNiwweEU4LDB4NTIsMHgwNiwKLTB4QkUsMHg0MiwweDU0LDB4RTgsMHg0RiwweDA2LDB4OEIsMHg4NywweDlFLDB4MDAsMHhFOCwweDM5LDB4MDYsMHhCRSwweDAzLDB4NTQsCi0weEU4LDB4NDIsMHgwNiwweDhCLDB4NDcsMHg2NCwweEU4LDB4MkQsMHgwNiwweEJFLDB4MEMsMHg1NCwweEU4LDB4MzYsMHgwNiwweDhCLAotMHg0NywweDZFLDB4RTgsMHgyMSwweDA2LDB4QkUsMHgxNSwweDU0LDB4RTgsMHgyQSwweDA2LDB4OEIsMHg4NywweDhFLDB4MDAsMHhFOCwKLTB4MTQsMHgwNiwweEJFLDB4MUUsMHg1NCwweEU4LDB4MUQsMHgwNiwweDhCLDB4ODcsMHg5MCwweDAwLDB4RTgsMHgwNywweDA2LDB4QkUsCi0weDI3LDB4NTQsMHhFOCwweDEwLDB4MDYsMHg4QiwweDg3LDB4OTIsMHgwMCwweEU4LDB4RkEsMHgwNSwweEU4LDB4MDMsMHgwNiwweEJFLAotMHgzMCwweDU0LDB4RTgsMHgwMCwweDA2LDB4OEIsMHg4NywweDk0LDB4MDAsMHhFOCwweEVBLDB4MDUsMHhCRSwweDM5LDB4NTQsMHhFOCwKLTB4RjMsMHgwNSwweDhCLDB4ODcsMHg5NiwweDAwLDB4RTgsMHhERCwweDA1LDB4QkUsMHg2RiwweDU0LDB4RTgsMHhFNiwweDA1LDB4OEIsCi0weDg3LDB4OTgsMHgwMCwweEU4LDB4RDAsMHgwNSwweEJFLDB4NUQsMHg1NCwweEU4LDB4RDksMHgwNSwweDhBLDB4ODcsMHhBMCwweDAwLAotMHhFOCwweEE3LDB4MDUsMHhCRSwweDU0LDB4NTQsMHhFOCwweENDLDB4MDUsMHg4QSwweDQ3LDB4MjgsMHhFOCwweDlCLDB4MDUsMHhCRSwKLTB4NjYsMHg1NCwweEU4LDB4QzAsMHgwNSwweDhBLDB4ODcsMHhBMSwweDAwLDB4RTgsMHg4RSwweDA1LDB4RTgsMHhCMywweDA1LDB4QkUsCi0weDc4LDB4NTQsMHhFOCwweEIwLDB4MDUsMHg4QSwweDg3LDB4QTIsMHgwMCwweEU4LDB4N0UsMHgwNSwweEJFLDB4ODEsMHg1NCwweEU4LAotMHhBMywweDA1LDB4OEEsMHg4NywweEEzLDB4MDAsMHhFOCwweDcxLDB4MDUsMHhCRSwweDhBLDB4NTQsMHhFOCwweDk2LDB4MDUsMHg4QSwKLTB4ODcsMHhBNCwweDAwLDB4RTgsMHg2NCwweDA1LDB4QkUsMHg5MywweDU0LDB4RTgsMHg4OSwweDA1LDB4OEEsMHg4NywweEE1LDB4MDAsCi0weEU4LDB4NTcsMHgwNSwweEJFLDB4OUMsMHg1NCwweEU4LDB4N0MsMHgwNSwweDhBLDB4ODcsMHhBNiwweDAwLDB4RTgsMHg0QSwweDA1LAotMHhCRSwweEE1LDB4NTQsMHhFOCwweDZGLDB4MDUsMHg4QSwweDg3LDB4QTcsMHgwMCwweEU4LDB4M0QsMHgwNSwweEJFLDB4QUUsMHg1NCwKLTB4RTgsMHg2MiwweDA1LDB4OEEsMHg4NywweEE4LDB4MDAsMHhFOCwweDMwLDB4MDUsMHhFOCwweDU1LDB4MDUsMHhCRSwweEI3LDB4NTQsCi0weEU4LDB4NTIsMHgwNSwweDhBLDB4ODcsMHhBOSwweDAwLDB4RTgsMHgyMCwweDA1LDB4QkUsMHhDMCwweDU0LDB4RTgsMHg0NSwweDA1LAotMHg4QSwweDg3LDB4QUEsMHgwMCwweEU4LDB4MTMsMHgwNSwweEJFLDB4QzksMHg1NCwweEU4LDB4MzgsMHgwNSwweDhBLDB4ODcsMHhBQiwKLTB4MDAsMHhFOCwweDA2LDB4MDUsMHhCRSwweEQyLDB4NTQsMHhFOCwweDJCLDB4MDUsMHg4QSwweDg3LDB4QUQsMHgwMCwweEU4LDB4RjksCi0weDA0LDB4QkUsMHhEQiwweDU0LDB4RTgsMHgxRSwweDA1LDB4OEEsMHg4NywweEFFLDB4MDAsMHhFOCwweEVDLDB4MDQsMHhCRSwweEU0LAotMHg1NCwweEU4LDB4MTEsMHgwNSwweDhBLDB4ODcsMHhBRiwweDAwLDB4RTgsMHhERiwweDA0LDB4QkUsMHhFRCwweDU0LDB4RTgsMHgwNCwKLTB4MDUsMHg4QSwweDg3LDB4QjAsMHgwMCwweEU4LDB4RDIsMHgwNCwweEU4LDB4RjcsMHgwNCwweEJFLDB4RjYsMHg1NCwweEU4LDB4RjQsCi0weDA0LDB4OEEsMHg4NywweEIxLDB4MDAsMHhFOCwweEMyLDB4MDQsMHhCRSwweEZGLDB4NTQsMHhFOCwweEU3LDB4MDQsMHg4QSwweDg3LAotMHhCMiwweDAwLDB4RTgsMHhCNSwweDA0LDB4QkUsMHgwOCwweDU1LDB4RTgsMHhEQSwweDA0LDB4OEEsMHg4NywweEIzLDB4MDAsMHhFOCwKLTB4QTgsMHgwNCwweEJFLDB4MTEsMHg1NSwweEU4LDB4Q0QsMHgwNCwweDhBLDB4ODcsMHhCQiwweDAwLDB4RTgsMHg5QiwweDA0LDB4RTgsCi0weEMwLDB4MDQsMHhCRSwweDFBLDB4NTUsMHhFOCwweEJELDB4MDQsMHg4QSwweDg3LDB4QkMsMHgwMCwweEU4LDB4OEIsMHgwNCwweEJFLAotMHgyMywweDU1LDB4RTgsMHhCMCwweDA0LDB4OEEsMHg4NywweEJFLDB4MDAsMHhFOCwweDdFLDB4MDQsMHhCRSwweDJDLDB4NTUsMHhFOCwKLTB4QTMsMHgwNCwweDhBLDB4ODcsMHhCRiwweDAwLDB4RTgsMHg3MSwweDA0LDB4RTgsMHg5NiwweDA0LDB4MDcsMHhDMywweDYwLDB4MDYsCi0weDFFLDB4MTYsMHg4QiwweEVDLDB4RkYsMHg0RSwweDE2LDB4RjcsMHg0NiwweDFBLDB4MDAsMHgwMiwweDc0LDB4MDEsMHhGQiwweEI4LAotMHgwMCwweDAwLDB4OEUsMHhEOCwweDhFLDB4QzAsMHg4OSwweDJFLDB4MkQsMHg3QSwweEU4LDB4Q0IsMHgwMCwweDgxLDB4NjYsMHgxQSwKLTB4RkYsMHhGRSwweEM2LDB4MDYsMHgyQSwweDdBLDB4MDAsMHhFOCwweEQ4LDB4MDAsMHhCOCwweDAwLDB4NUYsMHhBMywweDJCLDB4N0EsCi0weEU4LDB4NUQsMHgwMCwweDgwLDB4M0UsMHgyQSwweDdBLDB4MDAsMHg3NCwweDBBLDB4ODEsMHg0RSwweDFBLDB4MDAsMHgwMSwweEM2LAotMHgwNiwweDJBLDB4N0EsMHgwMCwweDE3LDB4MUYsMHgwNywweDYxLDB4Q0YsMHg5MCwweDYwLDB4MDYsMHgxRSwweDE2LDB4OEIsMHhFQywKLTB4RjcsMHg0NiwweDFBLDB4MDAsMHgwMiwweDc0LDB4MDEsMHhGQiwweEI4LDB4MDAsMHgwMCwweDhFLDB4RDgsMHg4RSwweEMwLDB4ODksCi0weDJFLDB4MkQsMHg3QSwweDgxLDB4NjYsMHgxQSwweEZGLDB4RkUsMHhDNiwweDA2LDB4MkEsMHg3QSwweDAwLDB4RTgsMHg5MiwweDAwLAotMHhCOCwweDAwLDB4NUYsMHhBMywweDJCLDB4N0EsMHhFOCwweDE3LDB4MDAsMHg4MCwweDNFLDB4MkEsMHg3QSwweDAwLDB4NzQsMHgwQSwKLTB4ODEsMHg0RSwweDFBLDB4MDAsMHgwMSwweEM2LDB4MDYsMHgyQSwweDdBLDB4MDAsMHgxNywweDFGLDB4MDcsMHg2MSwweENGLDB4OTAsCi0weEI4LDB4RjAsMHgwMCwweEU4LDB4OEMsMHhFRCwweEZGLDB4MjYsMHgyQiwweDdBLDB4QzMsMHg5MCwweDA2LDB4NTMsMHg1NiwweDgwLAotMHgzRSwweDI5LDB4N0EsMHgwMCwweDc0LDB4MDMsMHhFOCwweDNGLDB4MDAsMHhCRSwweEQ3LDB4NzksMHhFOCwweDI1LDB4MDIsMHg4QiwKLTB4RDgsMHhBMywweDI3LDB4N0EsMHgyRSwweDhBLDB4MDcsMHhBMiwweDI5LDB4N0EsMHhCMCwweENDLDB4MkUsMHg4OCwweDA3LDB4NUUsCi0weDVCLDB4MDcsMHhDMywweEM2LDB4MDYsMHgyQSwweDdBLDB4MDAsMHhCOCwweDBBLDB4NUYsMHhBMywweDJCLDB4N0EsMHhDMywweDkwLAotMHg4QiwweDJFLDB4MkQsMHg3QSwweEU4LDB4MkIsMHgwMCwweEMzLDB4QzYsMHgwNiwweDJBLDB4N0EsMHgwMSwweEU4LDB4MDgsMHgwMCwKLTB4QjgsMHgwQSwweDVGLDB4QTMsMHgyQiwweDdBLDB4QzMsMHg5MCwweDU3LDB4ODAsMHgzRSwweDI5LDB4N0EsMHgwMCwweDc0LDB4MEYsCi0weDhCLDB4M0UsMHgyNywweDdBLDB4QTAsMHgyOSwweDdBLDB4MkUsMHg4OCwweDA1LDB4QzYsMHgwNiwweDI5LDB4N0EsMHgwMCwweDVGLAotMHhDMywweDkwLDB4QkUsMHhCMiwweDRELDB4RTgsMHgwNiwweDAyLDB4QkUsMHhEOCwweDUxLDB4RTgsMHgwMCwweDAyLDB4RkYsMHg3NiwKLTB4MTQsMHg1OCwweEU4LDB4NDcsMHgwMiwweEJFLDB4REUsMHg1MSwweEU4LDB4RjMsMHgwMSwweEZGLDB4NzYsMHgwRSwweDU4LDB4RTgsCi0weDNBLDB4MDIsMHhCRSwweEU0LDB4NTEsMHhFOCwweEU2LDB4MDEsMHhGRiwweDc2LDB4MTIsMHg1OCwweEU4LDB4MkQsMHgwMiwweEJFLAotMHhFQSwweDUxLDB4RTgsMHhEOSwweDAxLDB4RkYsMHg3NiwweDEwLDB4NTgsMHhFOCwweDIwLDB4MDIsMHhCRSwweDE0LDB4NTIsMHhFOCwKLTB4Q0MsMHgwMSwweEZGLDB4NzYsMHgwQSwweDU4LDB4RTgsMHgxMywweDAyLDB4QkUsMHgxQSwweDUyLDB4RTgsMHhCRiwweDAxLDB4RkYsCi0weDc2LDB4MEMsMHg1OCwweEU4LDB4MDYsMHgwMiwweEJFLDB4Q0YsMHg1MSwweEU4LDB4QjIsMHgwMSwweEZGLDB4NzYsMHgxQSwweDU4LAotMHhFOCwweEY5LDB4MDEsMHhCRSwweEIyLDB4NEQsMHhFOCwweEE1LDB4MDEsMHhCRSwweEYwLDB4NTEsMHhFOCwweDlGLDB4MDEsMHhGRiwKLTB4NzYsMHgxOCwweDU4LDB4RTgsMHhFNiwweDAxLDB4QkUsMHhGNiwweDUxLDB4RTgsMHg5MiwweDAxLDB4RkYsMHg3NiwweDAyLDB4NTgsCi0weEU4LDB4RDksMHgwMSwweEJFLDB4RkMsMHg1MSwweEU4LDB4ODUsMHgwMSwweEZGLDB4NzYsMHgwNCwweDU4LDB4RTgsMHhDQywweDAxLAotMHhCRSwweDAyLDB4NTIsMHhFOCwweDc4LDB4MDEsMHhGRiwweDc2LDB4MDAsMHg1OCwweEU4LDB4QkYsMHgwMSwweEJFLDB4MDgsMHg1MiwKLTB4RTgsMHg2QiwweDAxLDB4RkYsMHg3NiwweDA2LDB4NTgsMHhFOCwweEIyLDB4MDEsMHhCRSwweDBFLDB4NTIsMHhFOCwweDVFLDB4MDEsCi0weEZGLDB4NzYsMHgwOCwweDU4LDB4RTgsMHhBNSwweDAxLDB4QkUsMHgyMCwweDUyLDB4RTgsMHg1MSwweDAxLDB4RkYsMHg3NiwweDE2LAotMHg1OCwweEU4LDB4OTgsMHgwMSwweEJFLDB4ODksMHg0RCwweEU4LDB4NDQsMHgwMSwweEMzLDB4OTAsMHhCRSwweEM5LDB4NEQsMHhFOCwKLTB4M0MsMHgwMSwweEMzLDB4M0MsMHgwMCwweDc0LDB4MDUsMHgzQywweDAxLDB4NzQsMHg1OSwweEMzLDB4QzcsMHgwNiwweDBDLDB4N0EsCi0weENELDB4NTAsMHhDNywweDA2LDB4MEUsMHg3QSwweEYwLDB4NTAsMHhDNywweDA2LDB4MTAsMHg3QSwweEU4LDB4NTAsMHhDNywweDA2LAotMHgxMiwweDdBLDB4RUMsMHg1MCwweEM3LDB4MDYsMHgxNCwweDdBLDB4RjQsMHg1MCwweEM3LDB4MDYsMHgxNiwweDdBLDB4RkIsMHg1MCwKLTB4QzcsMHgwNiwweDE4LDB4N0EsMHgwMywweDUxLDB4QzcsMHgwNiwweDFBLDB4N0EsMHgwQiwweDUxLDB4QzcsMHgwNiwweDFDLDB4N0EsCi0weDBFLDB4NTEsMHhDNywweDA2LDB4MUUsMHg3QSwweDEwLDB4NTEsMHhDNywweDA2LDB4MjAsMHg3QSwweDEyLDB4NTEsMHhDNywweDA2LAotMHgyMiwweDdBLDB4MTYsMHg1MSwweEM2LDB4MDYsMHgyNCwweDdBLDB4MDEsMHhDNiwweDA2LDB4MjUsMHg3QSwweDAxLDB4QzYsMHgwNiwKLTB4MjYsMHg3QSwweDAzLDB4QzMsMHhDNywweDA2LDB4MEMsMHg3QSwweDFBLDB4NTEsMHhDNywweDA2LDB4MEUsMHg3QSwweDRELDB4NTEsCi0weEM3LDB4MDYsMHgxMCwweDdBLDB4NDcsMHg1MSwweEM3LDB4MDYsMHgxMiwweDdBLDB4NEEsMHg1MSwweEM3LDB4MDYsMHgxNCwweDdBLAotMHg0RiwweDUxLDB4QzcsMHgwNiwweDE2LDB4N0EsMHg1MSwweDUxLDB4QzcsMHgwNiwweDE4LDB4N0EsMHg1NSwweDUxLDB4QzcsMHgwNiwKLTB4MUEsMHg3QSwweDU2LDB4NTEsMHhDNywweDA2LDB4MUMsMHg3QSwweDU5LDB4NTEsMHhDNywweDA2LDB4MUUsMHg3QSwweDVBLDB4NTEsCi0weEM3LDB4MDYsMHgyMCwweDdBLDB4NUIsMHg1MSwweEM3LDB4MDYsMHgyMiwweDdBLDB4NUUsMHg1MSwweEM2LDB4MDYsMHgyNCwweDdBLAotMHgyMCwweEM2LDB4MDYsMHgyNSwweDdBLDB4MjAsMHhDNiwweDA2LDB4MjYsMHg3QSwweDAyLDB4QzMsMHhBMSwweEY4LDB4NzksMHg0OCwKLTB4NzQsMHgxNCwweEJFLDB4RDcsMHg3OSwweEU4LDB4M0MsMHgwMCwweDhCLDB4RjgsMHhBQywweDNDLDB4M0EsMHg3NSwweDA3LDB4OEUsCi0weEM3LDB4RTgsMHgzMCwweDAwLDB4OEIsMHhGOCwweEMzLDB4OTAsMHg4QiwweEM3LDB4MkIsMHgwNiwweEZFLDB4NzksMHg4QSwweEYwLAotMHgyNCwweDBGLDB4OEEsMHhEMCwweDAyLDB4RDAsMHgwMiwweEQwLDB4ODAsMHhDMiwweDBCLDB4QzAsMHhFRSwweDA0LDB4ODAsMHhDNiwKLTB4MDMsMHgwNCwweDNELDB4QzMsMHg4QywweEMwLDB4RTgsMHg5MywweDAwLDB4QjAsMHgzQSwweEU4LDB4RTQsMHgwMCwweDhCLDB4QzcsCi0weEU4LDB4ODksMHgwMCwweEMzLDB4NTEsMHgzMywweEM5LDB4OTAsMHhBQywweDNDLDB4MjAsMHg3NCwweEZCLDB4OTAsMHgwQSwweEMwLAotMHg3NCwweDI2LDB4MkMsMHgzMCwweDcyLDB4MjIsMHgzQywweDA5LDB4NzYsMHgxNCwweDNDLDB4MTEsMHg3MiwweDFBLDB4MkMsMHgwNywKLTB4M0MsMHgwRiwweDc2LDB4MEEsMHgzQywweDJBLDB4NzIsMHgxMCwweDJDLDB4MjAsMHgzQywweDBGLDB4NzcsMHgwQSwweDk4LDB4QzEsCi0weEUxLDB4MDQsMHgwMywweEM4LDB4QUMsMHhFQiwweEQ3LDB4OTAsMHg0RSwweDhCLDB4QzEsMHg1OSwweEMzLDB4OTAsMHgwNiwweDhDLAotMHhDOCwweDhFLDB4QzAsMHhFOCwweDAyLDB4MDAsMHgwNywweEMzLDB4MjYsMHg4QSwweDA0LDB4NDYsMHgwQSwweEMwLDB4NzQsMHgwNiwKLTB4RTgsMHg4RiwweDAwLDB4RUIsMHhGMywweDkwLDB4QzMsMHg5MCwweDBCLDB4QzAsMHg3NCwweDdBLDB4NTEsMHgzMywweEQyLDB4QjksCi0weEU4LDB4MDMsMHhGNywweEYxLDB4OEIsMHhDQSwweEU4LDB4MDMsMHgwMCwweDhCLDB4QzEsMHg1OSwweEJBLDB4NjQsMHgwMCwweEY2LAotMHhGMiwweEU4LDB4MEMsMHgwMCwweDhBLDB4QzQsMHg5OCwweEIyLDB4MEEsMHhGNiwweEYyLDB4RTgsMHgwMiwweDAwLDB4OEEsMHhDNCwKLTB4NTAsMHgwQSwweEYwLDB4NzQsMHgwNSwweDA0LDB4MzAsMHhFOCwweDU4LDB4MDAsMHg1OCwweEMzLDB4ODYsMHhDNCwweEU4LDB4MDcsCi0weDAwLDB4ODYsMHhDNCwweEU4LDB4MDIsMHgwMCwweEMzLDB4OTAsMHhDMSwweEM4LDB4MDQsMHhFOCwweDA4LDB4MDAsMHhDMSwweEMwLAotMHgwNCwweEU4LDB4MDIsMHgwMCwweEMzLDB4OTAsMHg1MywweDUwLDB4MjQsMHgwRiwweEJCLDB4Q0EsMHg2MiwweDJFLDB4RDcsMHhFOCwKLTB4MzAsMHgwMCwweDU4LDB4NUIsMHhDMywweDkwLDB4ODYsMHhDNCwweEU4LDB4MDcsMHgwMCwweDg2LDB4QzQsMHhFOCwweDAyLDB4MDAsCi0weEMzLDB4OTAsMHg1MCwweEI5LDB4MDgsMHgwMCwweDhBLDB4RTAsMHgzMiwweEMwLDB4RDEsMHhDMCwweDA0LDB4MzAsMHhFOCwweDExLAotMHgwMCwweEUyLDB4RjUsMHg1OCwweEMzLDB4OTAsMHhCMCwweDMwLDB4RTgsMHgwNywweDAwLDB4QzMsMHhCMCwweDIwLDB4RTgsMHgwMSwKLTB4MDAsMHhDMywweDU2LDB4OEIsMHgzNiwweEQwLDB4NzksMHg4OCwweDg0LDB4RDAsMHg3NywweDQ2LDB4ODEsMHhFNiwweEZGLDB4MDEsCi0weEZGLDB4MDYsMHhENCwweDc5LDB4ODksMHgzNiwweEQwLDB4NzksMHg4MSwweDNFLDB4RDQsMHg3OSwweEZFLDB4MDEsMHg3NSwweDA4LAotMHg1NiwweEU4LDB4MTQsMHgwMCwweDVFLDB4RUIsMHhGMSwweDkwLDB4NUUsMHhDMywweEJBLDB4MDIsMHgwMiwweEVDLDB4MjQsMHgwMSwKLTB4NzQsMHgwNCwweEJBLDB4MDYsMHgwMiwweEVDLDB4QzMsMHg5MCwweDgwLDB4M0UsMHhGNiwweDc5LDB4MDAsMHg3NCwweDA5LDB4NjAsCi0weEI4LDB4MDEsMHgwMCwweEU4LDB4MkMsMHhFQSwweDYxLDB4OTAsMHhCQSwweDAyLDB4MDIsMHhFQywweEE4LDB4MDQsMHg3NCwweDI4LAotMHg4QiwweDM2LDB4RDIsMHg3OSwweDgzLDB4M0UsMHhENCwweDc5LDB4MDAsMHg3NCwweDFELDB4OEEsMHg4NCwweEQwLDB4NzcsMHg0NiwKLTB4ODEsMHhFNiwweEZGLDB4MDEsMHg4OSwweDM2LDB4RDIsMHg3OSwweEZGLDB4MEUsMHhENCwweDc5LDB4QkEsMHgwNiwweDAyLDB4RUUsCi0weEJBLDB4MDIsMHgwMiwweEVDLDB4QTgsMHgwNCwweDc1LDB4REMsMHhBMSwweEQ0LDB4NzksMHhDMywweDUyLDB4QkEsMHgwNiwweDAyLAotMHhFRSwweDVBLDB4QzMsMHg5MCwweDUyLDB4NTAsMHhCQSwweDAyLDB4MDIsMHhFQywweEE4LDB4MDQsMHg3NCwweDA4LDB4NTgsMHg1QSwKLTB4RTgsMHhFOSwweEZGLDB4RjksMHhDMywweDkwLDB4NTgsMHg1QSwweEY4LDB4QzMsMHg1MiwweDUwLDB4QkEsMHgwMiwweDAyLDB4RUMsCi0weEE4LDB4MDQsMHg3NCwweEZCLDB4NTgsMHg1QSwweEU4LDB4RDMsMHhGRiwweEMzLDB4MzAsMHgzMSwweDMyLDB4MzMsMHgzNCwweDM1LAotMHgzNiwweDM3LDB4MzgsMHgzOSwweDQxLDB4NDIsMHg0MywweDQ0LDB4NDUsMHg0NiwweDUzLDB4NTAsMHg4QSwweEUwLDB4ODAsMHhFNCwKLTB4MEYsMHhCQiwweENBLDB4NjIsMHhDMCwweEU4LDB4MDQsMHgyRSwweEQ3LDB4RTgsMHhDRSwweEZGLDB4OEEsMHhDNCwweDJFLDB4RDcsCi0weEU4LDB4QzcsMHhGRiwweDU4LDB4NUIsMHhDMywweDg2LDB4RTAsMHhFOCwweERGLDB4RkYsMHg4NiwweEUwLDB4RTgsMHhEQSwweEZGLAotMHhDMywweDkwLDB4QkUsMHhCMiwweDRELDB4NTAsMHgyRSwweEFDLDB4M0MsMHgwMCwweDc0LDB4MDUsMHhFOCwweEFCLDB4RkYsMHhFQiwKLTB4RjUsMHg1OCwweEMzLDB4OTAsMHhDOCwweDA4LDB4MDAsMHgwMCwweDU2LDB4NTcsMHg4QiwweDc2LDB4MDQsMHhCRiwweDA0LDB4MDAsCi0weEM3LDB4NDYsMHhGQywweDAwLDB4MDAsMHhDNywweDQ2LDB4RkEsMHgwMCwweDAwLDB4QzcsMHg0NiwweEY4LDB4MDAsMHgwMCwweDgzLAotMHg3RSwweDA2LDB4MDAsMHg3NSwweDBFLDB4NTYsMHhFOCwweEI2LDB4MEUsMHg1OSwweDBCLDB4QzAsMHg3NSwweDA1LDB4OEIsMHhDNywKLTB4RTksMHg1QiwweDAxLDB4OEIsMHg0NiwweEZDLDB4ODksMHg0NiwweEZFLDB4MEIsMHhGRiwweDc1LDB4MDUsMHhCOCwweDAxLDB4MDAsCi0weEVCLDB4MDIsMHgzMywweEMwLDB4NTAsMHg1NiwweEU4LDB4QTQsMHgwRCwweDU5LDB4NTksMHhCNCwweDAwLDB4ODksMHg0NiwweEZDLAotMHg4QiwweDVFLDB4RkMsMHg4MywweEZCLDB4MDgsMHg3NiwweDAzLDB4RTksMHgyQiwweDAxLDB4RDEsMHhFMywweDJFLDB4RkYsMHhBNywKLTB4QjIsMHg2NCwweEI4LDB4MDMsMHgwMCwweEU5LDB4MjYsMHgwMSwweDgzLDB4N0UsMHhGQSwweDAwLDB4NzQsMHgxNCwweEM3LDB4NDYsCi0weEZBLDB4MDAsMHgwMCwweDhBLDB4NDQsMHg1OCwweDk4LDB4NTAsMHg4QSwweDQ0LDB4NTksMHg5OCwweDUwLDB4RTgsMHhDMiwweDBGLAotMHg1OSwweDU5LDB4ODMsMHg3RSwweEY4LDB4MDAsMHg3NCwweDBBLDB4QzcsMHg0NiwweEY4LDB4MDAsMHgwMCwweDU2LDB4RTgsMHg5QiwKLTB4MDgsMHg1OSwweDgzLDB4N0UsMHgwNiwweDAwLDB4NzUsMHgwNSwweDhCLDB4QzcsMHhFOSwweEYxLDB4MDAsMHg4MywweEZGLDB4MDQsCi0weDc1LDB4MDMsMHhFOSwweEU2LDB4MDAsMHg4QiwweEM3LDB4RTksMHhFNCwweDAwLDB4ODMsMHg3RSwweEZFLDB4MDAsMHg3NSwweDAzLAotMHhCRiwweDAyLDB4MDAsMHhFOSwweEQ1LDB4MDAsMHg4MywweDdFLDB4RkUsMHgwMCwweDc1LDB4MDMsMHhCRiwweDAxLDB4MDAsMHhFOSwKLTB4QzksMHgwMCwweDhCLDB4NUUsMHhGRSwweDgzLDB4RkIsMHgwNywweDc2LDB4MDMsMHhFOSwweDg2LDB4MDAsMHhEMSwweEUzLDB4MkUsCi0weEZGLDB4QTcsMHhBMiwweDY0LDB4MzMsMHhGRiwweEU5LDB4N0YsMHgwMCwweEJGLDB4MDQsMHgwMCwweDgwLDB4N0MsMHg1OCwweDBGLAotMHg3NCwweDIyLDB4ODMsMHg3RSwweEY4LDB4MDAsMHg3NSwweDFDLDB4RkUsMHg0NCwweDU4LDB4NkEsMHgwOCwweDU2LDB4RTgsMHg3RSwKLTB4MEMsMHg1OSwweDU5LDB4OEEsMHg0NCwweDU4LDB4MDQsMHg4MCwweDUwLDB4NTYsMHhFOCwweDcyLDB4MEMsMHg1OSwweDU5LDB4QzcsCi0weDQ2LDB4RkEsMHgwMSwweDAwLDB4ODMsMHg3RSwweEY4LDB4MDAsMHg3NCwweDBBLDB4QzcsMHg0NiwweEY4LDB4MDAsMHgwMCwweDU2LAotMHhFOCwweDE5LDB4MDgsMHg1OSwweEVCLDB4NDIsMHhCRiwweDA0LDB4MDAsMHg4MCwweDdDLDB4NTgsMHgwMCwweDc0LDB4MjIsMHg4MywKLTB4N0UsMHhGOCwweDAwLDB4NzUsMHgxQywweEZFLDB4NEMsMHg1OCwweDZBLDB4MDgsMHg1NiwweEU4LDB4NDEsMHgwQywweDU5LDB4NTksCi0weDhBLDB4NDQsMHg1OCwweDA0LDB4ODAsMHg1MCwweDU2LDB4RTgsMHgzNSwweDBDLDB4NTksMHg1OSwweEM3LDB4NDYsMHhGQSwweDAxLAotMHgwMCwweDgzLDB4N0UsMHhGOCwweDAwLDB4NzQsMHgwQSwweEM3LDB4NDYsMHhGOCwweDAwLDB4MDAsMHg1NiwweEU4LDB4REMsMHgwNywKLTB4NTksMHhFQiwweDA1LDB4QkYsMHgwNCwweDAwLDB4RUIsMHgwMCwweEVCLDB4MzEsMHhCRiwweDA0LDB4MDAsMHhFQiwweDJDLDB4QzcsCi0weDQ2LDB4RjgsMHgwMSwweDAwLDB4NkEsMHgwOCwweDU2LDB4RTgsMHgwNSwweDBDLDB4NTksMHg1OSwweDgwLDB4N0MsMHg1OCwweDA5LAotMHg3RCwweDA0LDB4QjAsMHgwRiwweEVCLDB4MDIsMHhCMCwweDAwLDB4MDQsMHg4MCwweDUwLDB4NTYsMHhFOCwweEYwLDB4MEIsMHg1OSwKLTB4NTksMHhCRiwweDA0LDB4MDAsMHhFQiwweDA1LDB4QkYsMHgwNCwweDAwLDB4RUIsMHgwMCwweEU5LDB4QTUsMHhGRSwweDVGLDB4NUUsCi0weEM5LDB4QzMsMHhFNCwweDYzLDB4NjMsMHg2NCwweDYzLDB4NjQsMHg2MywweDY0LDB4NjMsMHg2NCwweEU5LDB4NjMsMHgyNiwweDY0LAotMHg1MSwweDY0LDB4NzgsMHg2MywweEJBLDB4NjMsMHhDNiwweDYzLDB4OTYsMHg2NCwweEQyLDB4NjMsMHg2QSwweDY0LDB4NkEsMHg2NCwKLTB4NkYsMHg2NCwweDcyLDB4NjMsMHhDOCwweDA4LDB4MDAsMHgwMCwweDU2LDB4NTcsMHg4QiwweDc2LDB4MDQsMHg4QiwweDdFLDB4MDgsCi0weDZBLDB4MDEsMHg1NiwweEU4LDB4QTksMHgwQiwweDU5LDB4NTksMHg4QSwweDQ2LDB4MDYsMHhDMCwweEUwLDB4MDYsMHgwNCwweDgwLAotMHg1MCwweDU2LDB4RTgsMHg5QSwweDBCLDB4NTksMHg1OSwweEM3LDB4NDYsMHhGRSwweDAwLDB4MDAsMHg4OSwweDdFLDB4RjgsMHhFQiwKLTB4MDMsMHhGRiwweDQ2LDB4RkUsMHg4QiwweDVFLDB4RjgsMHhGRiwweDQ2LDB4RjgsMHg4MCwweDNGLDB4MDAsMHg3NSwweEYyLDB4ODMsCi0weDdFLDB4RkUsMHgxMCwweDdELDB4MjUsMHhCOCwweDEwLDB4MDAsMHgyQiwweDQ2LDB4RkUsMHhEMSwweEY4LDB4ODksMHg0NiwweEZDLAotMHhDNywweDQ2LDB4RkEsMHgwMCwweDAwLDB4RUIsMHgwQiwweDZBLDB4MjAsMHg1NiwweEU4LDB4NjIsMHgwQiwweDU5LDB4NTksMHhGRiwKLTB4NDYsMHhGQSwweDhCLDB4NDYsMHhGQSwweDNCLDB4NDYsMHhGQywweDdDLDB4RUQsMHhFQiwweDBDLDB4OEIsMHhERiwweDQ3LDB4OEEsCi0weDA3LDB4NTAsMHg1NiwweEU4LDB4NDksMHgwQiwweDU5LDB4NTksMHg4MCwweDNELDB4MDAsMHg3NSwweEVGLDB4NkEsMHgwMiwweDU2LAotMHhFOCwweDNDLDB4MEIsMHg1OSwweDU5LDB4RUIsMHgwMCwweDVGLDB4NUUsMHhDOSwweEMzLDB4QzgsMHgwNCwweDAwLDB4MDAsMHg1NiwKLTB4NTcsMHg4QiwweDdFLDB4MDQsMHhDNywweDQ2LDB4RkUsMHgwMCwweDAwLDB4QkUsMHgxNCwweDAwLDB4RTksMHgwOSwweDAxLDB4OEIsCi0weDVFLDB4RkUsMHg4MywweEMzLDB4MDQsMHgyQiwweERGLDB4OEEsMHg4NywweEFDLDB4MEIsMHg4OCwweDQ0LDB4NUEsMHhDNiwweDQ0LAotMHg1OCwweDA4LDB4OEEsMHg0NiwweEZFLDB4ODgsMHg0NCwweDU5LDB4QzcsMHg0NCwweDA2LDB4MDAsMHgwMCwweEM2LDB4NDQsMHgxOSwKLTB4MDAsMHhDNiwweDQ0LDB4MUEsMHgwMCwweEM2LDB4NDQsMHgxQiwweDAwLDB4QzYsMHg0NCwweDFELDB4MEQsMHhDNiwweDQ0LDB4MUUsCi0weDAzLDB4QzYsMHg0NCwweDFGLDB4MDAsMHhDNiwweDQ0LDB4MjAsMHgwMCwweEM2LDB4NDQsMHgyMSwweDAwLDB4QzYsMHg0NCwweDVCLAotMHgwMCwweEM2LDB4NDQsMHg1RCwweDAwLDB4QzYsMHg0NCwweDVFLDB4MDAsMHhDNiwweDQ0LDB4NUYsMHgwMCwweEM2LDB4NDQsMHg2MCwKLTB4MDAsMHhDNywweDQ2LDB4RkMsMHgwMCwweDAwLDB4RUIsMHgwRCwweDhCLDB4NUUsMHhGQywweEQxLDB4RTMsMHhDNywweDQwLDB4MzAsCi0weDAwLDB4MDAsMHhGRiwweDQ2LDB4RkMsMHg4MywweDdFLDB4RkMsMHgxMCwweDdDLDB4RUQsMHhDNywweDQ2LDB4RkMsMHgwMCwweDAwLAotMHhFQiwweDBBLDB4OEIsMHg1RSwweEZDLDB4QzYsMHg0MCwweDUwLDB4MDAsMHhGRiwweDQ2LDB4RkMsMHg4MywweDdFLDB4RkMsMHgwNCwKLTB4N0MsMHhGMCwweEM3LDB4NDQsMHg1NCwweDAwLDB4MDAsMHhDNywweDQ0LDB4NTYsMHgwMCwweDAwLDB4OEEsMHg0NCwweDVBLDB4OTgsCi0weEJBLDB4RjgsMHgwMCwweDIzLDB4RDAsMHhCOCwweDA1LDB4MDAsMHgwQiwweEMyLDB4ODksMHg0NiwweEZDLDB4OUMsMHhGQSwweDhBLAotMHg0NiwweEZDLDB4QkEsMHhGRSwweDAwLDB4RUUsMHhCQSwweDAwLDB4MDAsMHhFQywweDlELDB4MjQsMHgwOCwweDg4LDB4NDYsMHhGQywKLTB4ODMsMHg3RSwweEZDLDB4MDAsMHg3NSwweDAyLDB4RUIsMHg0QSwweEZGLDB4NzYsMHhGRSwweEU4LDB4N0EsMHgwQywweDU5LDB4NjgsCi0weDM1LDB4MDIsMHg1NiwweEU4LDB4MzIsMHgwQSwweDU5LDB4NTksMHgwQiwweEMwLDB4NzUsMHgzNCwweDY4LDB4MzgsMHgwMiwweDU2LAotMHhFOCwweDI1LDB4MEEsMHg1OSwweDU5LDB4MEIsMHhDMCwweDc1LDB4MjcsMHg2OCwweDQyLDB4MDIsMHg1NiwweEU4LDB4MTgsMHgwQSwKLTB4NTksMHg1OSwweDBCLDB4QzAsMHg3NSwweDFBLDB4NjgsMHg0QywweDAyLDB4NTYsMHhFOCwweDBCLDB4MEEsMHg1OSwweDU5LDB4MEIsCi0weEMwLDB4NzUsMHgwRCwweDY4LDB4NTYsMHgwMiwweDU2LDB4RTgsMHhGRSwweDA5LDB4NTksMHg1OSwweDBCLDB4QzAsMHg3NCwweDAyLAotMHhFQiwweDAwLDB4RkYsMHg0NiwweEZFLDB4ODMsMHhDNiwweDYyLDB4MzksMHg3RSwweEZFLDB4N0QsMHgwMywweEU5LDB4RUYsMHhGRSwKLTB4RUIsMHgwMCwweDVGLDB4NUUsMHhDOSwweEMzLDB4QzgsMHgwOCwweDAwLDB4MDAsMHg1NiwweDU3LDB4OEIsMHg0NiwweDA0LDB4QkEsCi0weDYyLDB4MDAsMHhGNywweEVBLDB4MDUsMHgxNCwweDAwLDB4OEIsMHhGMCwweDgzLDB4N0UsMHgwNiwweDAwLDB4NzQsMHgwNSwweEI4LAotMHgxMCwweDAwLDB4RUIsMHgwMywweEI4LDB4MDgsMHgwMCwweDg5LDB4NDQsMHgwNCwweDhBLDB4NDYsMHgwOCwweDg4LDB4NDQsMHg1QywKLTB4NTYsMHhFOCwweDU5LDB4MDQsMHg1OSwweDhCLDB4RjgsMHg4QiwweEM3LDB4ODksMHg0NCwweDU2LDB4ODksMHg0NCwweDU0LDB4OEEsCi0weDQ0LDB4NUQsMHg4OCwweDQ0LDB4MkYsMHgwQiwweEZGLDB4NzUsMHgxRCwweDY4LDB4QzIsMHgwRiwweDZBLDB4MDEsMHg1NiwweEU4LAotMHgwMiwweEZFLDB4ODMsMHhDNCwweDA2LDB4RUIsMHgwMCwweDZBLDB4MDEsMHg1NiwweEU4LDB4NDcsMHhGQywweDU5LDB4NTksMHgwQiwKLTB4QzAsMHg3NSwweEY0LDB4QkYsMHgwMSwweDAwLDB4ODksMHg3RSwweEZBLDB4QjksMHgwNSwweDAwLDB4QkIsMHhFOSwweDZBLDB4MkUsCi0weDhCLDB4MDcsMHgzQiwweDQ2LDB4RkEsMHg3NCwweDA3LDB4NDMsMHg0MywweEUyLDB4RjQsMHhFOSwweEE0LDB4MDMsMHgyRSwweEZGLAotMHg2NywweDBBLDB4QzcsMHg0NCwweDA2LDB4MDIsMHgwMCwweEM3LDB4NDQsMHgwOCwweEY0LDB4MDgsMHg4QiwweDVFLDB4MDQsMHhEMSwKLTB4RTMsMHg4QiwweDg3LDB4RkMsMHgwOCwweDg5LDB4NDQsMHgwQSwweDMzLDB4QzAsMHg4QiwweEY4LDB4ODksMHg0NCwweDU0LDB4RTksCi0weDgwLDB4MDMsMHg1NiwweEU4LDB4QkIsMHgwNSwweDU5LDB4QkYsMHgwMSwweDAwLDB4OEEsMHg0NCwweDVELDB4ODgsMHg0NCwweDYwLAotMHhFOSwweDZGLDB4MDMsMHg4MywweDdDLDB4MDQsMHgwOCwweDc1LDB4MzAsMHg4MCwweDdDLDB4NUMsMHgwMSwweDc1LDB4MTUsMHg4QSwKLTB4NDQsMHg1RCwweEI0LDB4MDAsMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHhFNCwweDA4LDB4NTYsMHhFOCwweEY3LDB4MDgsCi0weDU5LDB4NTksMHhFQiwweDEzLDB4OEEsMHg0NCwweDVELDB4QjQsMHgwMCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4RkYsMHhCNywweEM0LAotMHgwOCwweDU2LDB4RTgsMHhFMiwweDA4LDB4NTksMHg1OSwweEVCLDB4MkUsMHg4MCwweDdDLDB4NUMsMHgwMSwweDc1LDB4MTUsMHg4QSwKLTB4NDQsMHg1RCwweEI0LDB4MDAsMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHhENCwweDA4LDB4NTYsMHhFOCwweEM3LDB4MDgsCi0weDU5LDB4NTksMHhFQiwweDEzLDB4OEEsMHg0NCwweDVELDB4QjQsMHgwMCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4RkYsMHhCNywweEI0LAotMHgwOCwweDU2LDB4RTgsMHhCMiwweDA4LDB4NTksMHg1OSwweDZBLDB4MDEsMHg1NiwweEU4LDB4ODcsMHhGQiwweDU5LDB4NTksMHg4QiwKLTB4RDgsMHg4MywweEZCLDB4MDMsMHg3NywweDJBLDB4RDEsMHhFMywweDJFLDB4RkYsMHhBNywweEUxLDB4NkEsMHhCRiwweDAxLDB4MDAsCi0weDhBLDB4NDQsMHg1RCwweDg4LDB4NDQsMHg1RSwweEVCLDB4MTgsMHg4QSwweDQ0LDB4NUQsMHgwNCwweEZGLDB4MjQsMHgwNywweDg4LAotMHg0NCwweDVELDB4RUIsMHgwQywweDhBLDB4NDQsMHg1RCwweEZFLDB4QzAsMHgyNCwweDA3LDB4ODgsMHg0NCwweDVELDB4RUIsMHgwMCwKLTB4RTksMHhDRiwweDAyLDB4OEEsMHg0NCwweDVELDB4QjQsMHgwMCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4RkYsMHhCNywweEZELDB4MDIsCi0weDU2LDB4RTgsMHg2MywweDA4LDB4NTksMHg1OSwweDY4LDB4MUQsMHgwMywweDU2LDB4RTgsMHg1QSwweDA4LDB4NTksMHg1OSwweDZBLAotMHgwMSwweDU2LDB4RTgsMHgyRiwweEZCLDB4NTksMHg1OSwweDhCLDB4RDgsMHg4MywweEZCLDB4MDMsMHg3NywweDM2LDB4RDEsMHhFMywKLTB4MkUsMHhGRiwweEE3LDB4RDksMHg2QSwweEJGLDB4MDEsMHgwMCwweDhBLDB4NDQsMHg1RCwweDg4LDB4NDQsMHg1RiwweEVCLDB4MjQsCi0weDhBLDB4NDQsMHg1RCwweDA0LDB4RkYsMHg4QSwweDU0LDB4MDQsMHg4MCwweEMyLDB4RkYsMHgyMiwweEMyLDB4ODgsMHg0NCwweDVELAotMHhFQiwweDEyLDB4OEEsMHg0NCwweDVELDB4RkUsMHhDMCwweDhBLDB4NTQsMHgwNCwweDgwLDB4QzIsMHhGRiwweDIyLDB4QzIsMHg4OCwKLTB4NDQsMHg1RCwweEVCLDB4MDAsMHhFOSwweDZCLDB4MDIsMHg4QiwweDVDLDB4MDYsMHg4MywweEMzLDB4RkUsMHhEMSwweEUzLDB4OEIsCi0weDQwLDB4MDgsMHg4OSwweDA0LDB4OEIsMHgxQywweEZGLDB4NzcsMHgwNiwweDZBLDB4MDAsMHg1NiwweEU4LDB4ODUsMHhGQywweDgzLAotMHhDNCwweDA2LDB4OEIsMHg1QywweDA2LDB4NEIsMHhEMSwweEUzLDB4OEIsMHg0MCwweDA4LDB4ODksMHg0NCwweDAyLDB4OEIsMHg1QywKLTB4MDIsMHhGRiwweDc3LDB4MDYsMHg2QSwweDAxLDB4NTYsMHhFOCwweDZBLDB4RkMsMHg4MywweEM0LDB4MDYsMHg2QSwweDAxLDB4NTYsCi0weEU4LDB4QjEsMHhGQSwweDU5LDB4NTksMHg4QiwweEQ4LDB4ODMsMHhGQiwweDAzLDB4NzYsMHgwMywweEU5LDB4MUYsMHgwMiwweEQxLAotMHhFMywweDJFLDB4RkYsMHhBNywweEQxLDB4NkEsMHg4QiwweDVDLDB4MDIsMHg4QiwweDQ3LDB4MDQsMHg4OSwweDQ0LDB4MDIsMHg4QiwKLTB4NUMsMHgwMiwweDgwLDB4M0YsMHg0NCwweDc1LDB4MEQsMHg4QiwweDVDLDB4MDIsMHg4QSwweDQ3LDB4MDEsMHhCNCwweDAwLDB4M0IsCi0weDQ0LDB4MDQsMHg3RCwweEUyLDB4OEIsMHg0NiwweDA0LDB4RDEsMHhFMCwweDhCLDB4MUMsMHgwMywweEQ4LDB4OEIsMHg0NCwweDAyLAotMHg4OSwweDQ3LDB4MDgsMHg4QiwweDVDLDB4MDYsMHg0QiwweEQxLDB4RTMsMHg4QiwweDQ0LDB4MDIsMHg4OSwweDQwLDB4MDgsMHhFOSwKLTB4REUsMHgwMSwweDhCLDB4NUMsMHgwMiwweDhCLDB4NDcsMHgwMiwweDg5LDB4NDQsMHgwMiwweDhCLDB4NUMsMHgwMiwweDgwLDB4M0YsCi0weDQ0LDB4NzUsMHgwRCwweDhCLDB4NUMsMHgwMiwweDhBLDB4NDcsMHgwMSwweEI0LDB4MDAsMHgzQiwweDQ0LDB4MDQsMHg3RCwweEUyLAotMHg4QiwweDQ2LDB4MDQsMHhEMSwweEUwLDB4OEIsMHgxQywweDAzLDB4RDgsMHg4QiwweDQ0LDB4MDIsMHg4OSwweDQ3LDB4MDgsMHg4QiwKLTB4NUMsMHgwNiwweDRCLDB4RDEsMHhFMywweDhCLDB4NDQsMHgwMiwweDg5LDB4NDAsMHgwOCwweEU5LDB4QTIsMHgwMSwweEJGLDB4MDEsCi0weDAwLDB4RTksMHg5QywweDAxLDB4OEIsMHg1QywweDAyLDB4OEEsMHgwNywweEI0LDB4MDAsMHg4OSwweDQ2LDB4RjgsMHhCOSwweDBDLAotMHgwMCwweEJCLDB4QTEsMHg2QSwweDJFLDB4OEIsMHgwNywweDNCLDB4NDYsMHhGOCwweDc0LDB4MDcsMHg0MywweDQzLDB4RTIsMHhGNCwKLTB4RTksMHg3NywweDAxLDB4MkUsMHhGRiwweDY3LDB4MTgsMHg4QiwweDQ2LDB4MDQsMHhEMSwweEUwLDB4OEIsMHg1QywweDAyLDB4MDMsCi0weEQ4LDB4OEIsMHg0NywweDA4LDB4OEIsMHg1QywweDA2LDB4RkYsMHg0NCwweDA2LDB4RDEsMHhFMywweDg5LDB4NDAsMHgwOCwweDhCLAotMHgxQywweDgwLDB4N0YsMHgwMSwweDAwLDB4NzQsMHgxMiwweDhCLDB4NUMsMHgwMiwweDhBLDB4NDcsMHgwMSwweDhCLDB4MUMsMHg4QSwKLTB4NTcsMHgwMSwweEI2LDB4MDAsMHg4QiwweERBLDB4ODgsMHg0MCwweDE4LDB4RTksMHg0MCwweDAxLDB4RkYsMHg0QywweDA2LDB4RTksCi0weDNBLDB4MDEsMHg4QiwweDVDLDB4MDIsMHg4QSwweDQ3LDB4MDEsMHg4QiwweDFDLDB4OEEsMHg1NywweDAxLDB4QjYsMHgwMCwweDhCLAotMHhEQSwweDg4LDB4NDAsMHgxOCwweEU5LDB4MjUsMHgwMSwweDhCLDB4NUMsMHgwMiwweDhBLDB4NDcsMHgwMSwweDhCLDB4MUMsMHg4QSwKLTB4NTcsMHgwMSwweEI2LDB4MDAsMHg4QiwweERBLDB4ODgsMHg0MCwweDE4LDB4RkYsMHg0QywweDA2LDB4RTksMHgwRCwweDAxLDB4OEIsCi0weDVDLDB4MDIsMHg4QSwweDQ3LDB4MDEsMHg4QiwweDFDLDB4OEEsMHg1NywweDAxLDB4QjYsMHgwMCwweDhCLDB4REEsMHgzMCwweDQwLAotMHgxOCwweEU5LDB4RjgsMHgwMCwweEI4LDB4RjAsMHgxMCwweDhCLDB4RjgsMHg4OSwweDQ0LDB4NTQsMHg4QSwweDQ0LDB4NUYsMHg4OCwKLTB4NDQsMHg1RCwweEU5LDB4RTcsMHgwMCwweDhBLDB4NDQsMHgxQywweDk4LDB4M0QsMHgwMiwweDAwLDB4NzQsMHgwNywweDNELDB4MDMsCi0weDAwLDB4NzQsMHgwMiwweEVCLDB4MDcsMHhDNywweDQ2LDB4RkUsMHgwMCwweDAwLDB4RUIsMHgyQiwweDhBLDB4NDQsMHgxQywweDk4LAotMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHg2OSwweDAyLDB4NTYsMHhFOCwweDZCLDB4MDYsMHg1OSwweDU5LDB4NkEsMHgwMSwKLTB4NTYsMHhFOCwweDQwLDB4RjksMHg1OSwweDU5LDB4ODksMHg0NiwweEZFLDB4ODMsMHg3RSwweEZFLDB4MDAsMHg3NCwweDA2LDB4ODMsCi0weDdFLDB4RkUsMHgwMywweDc1LDB4RTksMHhFQiwweDAwLDB4ODMsMHg3RSwweEZFLDB4MDMsMHg3NCwweDYyLDB4OEEsMHg0NCwweDFDLAotMHg5OCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4RkYsMHhCNywweDZELDB4MDIsMHg1NiwweEU4LDB4M0EsMHgwNiwweDU5LDB4NTksMHg1NiwKLTB4RTgsMHg0RCwweDk3LDB4NTksMHg4OSwweDQ2LDB4RkMsMHg4QiwweDVFLDB4RkMsMHg4MywweEVCLDB4RkUsMHg4MywweEZCLDB4MDMsCi0weDc3LDB4MzMsMHhEMSwweEUzLDB4MkUsMHhGRiwweEE3LDB4OTksMHg2QSwweDY4LDB4QUMsMHgwMiwweDU2LDB4RTgsMHgxNywweDA2LAotMHg1OSwweDU5LDB4RUIsMHgyMywweDY4LDB4OEYsMHgwMiwweDU2LDB4RTgsMHgwQywweDA2LDB4NTksMHg1OSwweEVCLDB4MTgsMHg2OCwKLTB4NzUsMHgwMiwweDU2LDB4RTgsMHgwMSwweDA2LDB4NTksMHg1OSwweEVCLDB4MEQsMHg2OCwweEM2LDB4MDIsMHg1NiwweEU4LDB4RjYsCi0weDA1LDB4NTksMHg1OSwweEVCLDB4MDIsMHhFQiwweDAwLDB4NkEsMHgwMSwweDU2LDB4RTgsMHhDNywweEY4LDB4NTksMHg1OSwweEJGLAotMHgwMSwweDAwLDB4RUIsMHgzOCwweDY4LDB4REQsMHgwMiwweDU2LDB4RTgsMHhEQywweDA1LDB4NTksMHg1OSwweDZBLDB4MDEsMHg1NiwKLTB4RTgsMHhCMSwweEY4LDB4NTksMHg1OSwweEJGLDB4MDEsMHgwMCwweEVCLDB4MjIsMHhCOCwweEQwLDB4MzAsMHg4QiwweEY4LDB4ODksCi0weDQ0LDB4NTQsMHg4QSwweDQ0LDB4NjAsMHg4OCwweDQ0LDB4NUQsMHhFQiwweDEyLDB4QjgsMHhFMCwweDIwLDB4OEIsMHhGOCwweDg5LAotMHg0NCwweDU0LDB4OEEsMHg0NCwweDVFLDB4ODgsMHg0NCwweDVELDB4RUIsMHgwMiwweEVCLDB4MDAsMHhFQiwweDAyLDB4RUIsMHgwMCwKLTB4RUIsMHgwMCwweEU5LDB4NDEsMHhGQywweDVGLDB4NUUsMHhDOSwweEMzLDB4MTksMHg2QSwweDI0LDB4NkEsMHgyRiwweDZBLDB4M0EsCi0weDZBLDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDQxLDB4MDAsMHg0MiwweDAwLDB4NDMsMHgwMCwweDQ0LAotMHgwMCwweDgwLDB4MDAsMHg4MSwweDAwLDB4ODIsMHgwMCwweEZGLDB4MDAsMHgxNywweDY5LDB4NTQsMHg2QSwweDdBLDB4NkEsMHhBNSwKLTB4NjksMHg1MiwweDY5LDB4OTQsMHg2OSwweDZBLDB4NkEsMHg2NywweDY5LDB4NTIsMHg2OSwweDdGLDB4NjksMHg2NywweDY5LDB4NEMsCi0weDY5LDB4RjQsMHg2OCwweDc2LDB4NjgsMHhCMiwweDY4LDB4RUUsMHg2OCwweEY1LDB4NjcsMHgwMCwweDY4LDB4MTIsMHg2OCwweEY1LAotMHg2NywweDlELDB4NjcsMHhBOCwweDY3LDB4QjQsMHg2NywweDlELDB4NjcsMHgwMCwweDAwLDB4MDEsMHgwMCwweEYwLDB4MTAsMHhFMCwKLTB4MjAsMHhEMCwweDMwLDB4MjcsMHg2OCwweEYyLDB4NjYsMHhDMywweDY3LDB4MjMsMHg2NywweDEyLDB4NjcsMHhDOCwweDA0LDB4MDAsCi0weDAwLDB4NTYsMHg1NywweDhCLDB4NzYsMHgwNCwweDhBLDB4NDQsMHg1OSwweDk4LDB4ODksMHg0NiwweEZDLDB4NkEsMHgwOSwweDhCLAotMHg0NiwweEZDLDB4MDUsMHg4NCwweDAxLDB4NTAsMHhFOCwweDkzLDB4MDgsMHg1OSwweDU5LDB4OEIsMHhGOCwweDhCLDB4QzcsMHgyNSwKLTB4MDAsMHhGMCwweDNELDB4MDAsMHgxMCwweDc1LDB4NTUsMHg4QiwweEM3LDB4MjUsMHhGMCwweDAwLDB4M0QsMHhGMCwweDAwLDB4NzUsCi0weDRCLDB4OEIsMHhDNywweDI1LDB4MDAsMHgwRiwweEMxLDB4RjgsMHgwOCwweDg5LDB4NDYsMHhGRSwweDhCLDB4NDQsMHgwNCwweDNCLAotMHg0NiwweEZFLDB4N0QsMHgwNSwweDMzLDB4QzAsMHhFOSwweEVGLDB4MDAsMHg4QiwweEM3LDB4MjUsMHgwRiwweDAwLDB4QkEsMHgwRiwKLTB4MDAsMHgyQiwweEQwLDB4M0IsMHg1NiwweEZFLDB4NzQsMHgwNSwweDMzLDB4QzAsMHhFOSwweERCLDB4MDAsMHhDNywweDQ0LDB4MDIsCi0weDA0LDB4MDksMHg4QSwweDQ2LDB4RkUsMHg4OCwweDQ0LDB4NUYsMHg4OCwweDQ0LDB4NUQsMHg4QiwweDVFLDB4RkMsMHhEMSwweEUzLAotMHhDNywweDg3LDB4RkMsMHgwOCwweDA0LDB4MDksMHhCOCwweEYwLDB4MTAsMHhFOSwweEJDLDB4MDAsMHg4QiwweEM3LDB4MjUsMHgwMCwKLTB4RjAsMHgzRCwweDAwLDB4MjAsMHg3NSwweDUyLDB4OEIsMHhDNywweDI1LDB4RjAsMHgwMCwweDNELDB4RTAsMHgwMCwweDc1LDB4NDgsCi0weDhCLDB4QzcsMHgyNSwweDAwLDB4MEYsMHhDMSwweEY4LDB4MDgsMHg4OSwweDQ2LDB4RkUsMHg4MywweDdFLDB4RkUsMHgwOCwweDdFLAotMHgwNSwweDMzLDB4QzAsMHhFOSwweDkyLDB4MDAsMHg4QiwweEM3LDB4MjUsMHgwRiwweDAwLDB4QkEsMHgwRiwweDAwLDB4MkIsMHhEMCwKLTB4M0IsMHg1NiwweEZFLDB4NzQsMHgwNSwweDMzLDB4QzAsMHhFQiwweDdGLDB4OTAsMHhDNywweDQ0LDB4MDIsMHgwQywweDA5LDB4OEEsCi0weDQ2LDB4RkUsMHg4OCwweDQ0LDB4NUUsMHg4OCwweDQ0LDB4NUQsMHg4QiwweDVFLDB4RkMsMHhEMSwweEUzLDB4QzcsMHg4NywweEZDLAotMHgwOCwweDBDLDB4MDksMHhCOCwweEUwLDB4MjAsMHhFQiwweDYwLDB4OEIsMHhDNywweDI1LDB4MDAsMHhGMCwweDNELDB4MDAsMHgzMCwKLTB4NzUsMHg1MiwweDhCLDB4QzcsMHgyNSwweEYwLDB4MDAsMHgzRCwweEQwLDB4MDAsMHg3NSwweDQ4LDB4OEIsMHhDNywweDI1LDB4MDAsCi0weDBGLDB4QzEsMHhGOCwweDA4LDB4ODksMHg0NiwweEZFLDB4OEIsMHg0NCwweDA0LDB4M0IsMHg0NiwweEZFLDB4N0QsMHgwNCwweDMzLAotMHhDMCwweEVCLDB4MzUsMHg4QiwweEM3LDB4MjUsMHgwRiwweDAwLDB4QkEsMHgwRiwweDAwLDB4MkIsMHhEMCwweDNCLDB4NTYsMHhGRSwKLTB4NzQsMHgwNCwweDMzLDB4QzAsMHhFQiwweDIyLDB4QzcsMHg0NCwweDAyLDB4MTQsMHgwOSwweDhBLDB4NDYsMHhGRSwweDg4LDB4NDQsCi0weDYwLDB4ODgsMHg0NCwweDVELDB4OEIsMHg1RSwweEZDLDB4RDEsMHhFMywweEM3LDB4ODcsMHhGQywweDA4LDB4MTQsMHgwOSwweEI4LAotMHhEMCwweDMwLDB4RUIsMHgwNCwweDMzLDB4QzAsMHhFQiwweDAwLDB4NUYsMHg1RSwweEM5LDB4QzMsMHhDOCwweDA2LDB4MDAsMHgwMCwKLTB4NTYsMHg4QiwweDc2LDB4MDQsMHg2QSwweDA4LDB4NTYsMHhFOCwweDM1LDB4MDQsMHg1OSwweDU5LDB4OEEsMHg0NCwweDU4LDB4MDQsCi0weDgwLDB4NTAsMHg1NiwweEU4LDB4MjksMHgwNCwweDU5LDB4NTksMHg4QiwweDQ0LDB4NTQsMHgzQiwweDQ0LDB4NTYsMHg3NSwweDBBLAotMHg4QSwweDQ0LDB4NUQsMHgzQSwweDQ0LDB4MkYsMHg3NSwweDAyLDB4RUIsMHg2NCwweDhCLDB4NDQsMHg1NCwweDg5LDB4NDQsMHg1NiwKLTB4OEIsMHg1QywweDAyLDB4OEEsMHg0NywweDAxLDB4ODgsMHg0NCwweDJGLDB4OEEsMHg0NCwweDVELDB4QjQsMHgwMCwweEMxLDB4RTAsCi0weDA4LDB4OEIsMHg1NCwweDU0LDB4MEIsMHhEMCwweDhBLDB4NDQsMHg1RCwweEI0LDB4MDAsMHhCQiwweDBGLDB4MDAsMHgyQiwweEQ4LAotMHgwQiwweEQzLDB4ODksMHg1NiwweEZFLDB4NkEsMHgxMCwweDhBLDB4NDQsMHg1OSwweDk4LDB4MDUsMHgwNCwweDAwLDB4OTksMHgwNSwKLTB4NDAsMHgwMSwweDgzLDB4RDIsMHgwMCwweDUyLDB4NTAsMHhFOCwweDU0LDB4MDgsMHg4MywweEM0LDB4MDYsMHg4OSwweDU2LDB4RkMsCi0weDg5LDB4NDYsMHhGQSwweDhCLDB4NDYsMHhGRSwweDA5LDB4NDYsMHhGQSwweDgzLDB4NEUsMHhGQywweDAwLDB4NkEsMHgxOSwweEZGLAotMHg3NiwweEZDLDB4RkYsMHg3NiwweEZBLDB4RTgsMHg3MywweDA3LDB4ODMsMHhDNCwweDA2LDB4RTgsMHhGRSwweDA3LDB4NUUsMHhDOSwKLTB4QzMsMHhDOCwweDFDLDB4MDAsMHgwMCwweDU2LDB4NTcsMHg4QiwweDVFLDB4MDQsMHg4QSwweDQ3LDB4NTksMHg5OCwweDhCLDB4RjAsCi0weDhCLDB4NUUsMHgwNCwweDhBLDB4NDcsMHg1RCwweEI0LDB4MDAsMHg4OSwweDQ2LDB4RTYsMHg4MywweDdFLDB4RTYsMHgwMCwweDdELAotMHgwQSwweDhCLDB4NUUsMHgwNCwweDhCLDB4NDcsMHgwNCwweDQ4LDB4ODksMHg0NiwweEU2LDB4OEIsMHg1RSwweDA0LDB4OEIsMHg0NywKLTB4MDQsMHgzQiwweDQ2LDB4RTYsMHg3RiwweDA1LDB4QzcsMHg0NiwweEU2LDB4MDAsMHgwMCwweDhCLDB4NUUsMHgwNCwweDhBLDB4NDYsCi0weEU2LDB4ODgsMHg0NywweDVELDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweEM2LDB4NDcsMHgwMiwweDIwLAotMHg4QiwweERFLDB4RDEsMHhFMywweDhCLDB4OUYsMHg1OSwweDAyLDB4QzYsMHg0NywweDAzLDB4MzAsMHg4QiwweERFLDB4RDEsMHhFMywKLTB4OEIsMHg5RiwweDYxLDB4MDIsMHhDNiwweDQ3LDB4MDIsMHgyMCwweDhCLDB4REUsMHhEMSwweEUzLDB4OEIsMHg5RiwweDYxLDB4MDIsCi0weEM2LDB4NDcsMHgwMywweDMwLDB4OEIsMHg0NiwweEU2LDB4ODksMHg0NiwweEZBLDB4ODMsMHg3RSwweEZBLDB4MDAsMHg3NCwweDE4LAotMHg4QiwweDQ2LDB4RkEsMHhCQiwweDBBLDB4MDAsMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwKLTB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweDg4LDB4NTcsMHgwMywweEJCLDB4MEEsMHgwMCwweDhCLDB4NDYsMHhGQSwweDMzLDB4RDIsCi0weEY3LDB4RjMsMHg4OSwweDQ2LDB4RkEsMHg4MywweDdFLDB4RkEsMHgwMCwweDc0LDB4MTgsMHg4QiwweDQ2LDB4RkEsMHhCQiwweDBBLAotMHgwMCwweDMzLDB4RDIsMHhGNywweEYzLDB4ODAsMHhDMiwweDMwLDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwKLTB4ODgsMHg1NywweDAyLDB4OEIsMHg0NiwweEU2LDB4ODksMHg0NiwweEZBLDB4ODMsMHg3RSwweEZBLDB4MDAsMHg3NCwweDE4LDB4OEIsCi0weDQ2LDB4RkEsMHhCQiwweDBBLDB4MDAsMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwweEUzLAotMHg4QiwweDlGLDB4NjEsMHgwMiwweDg4LDB4NTcsMHgwMywweEJCLDB4MEEsMHgwMCwweDhCLDB4NDYsMHhGQSwweDMzLDB4RDIsMHhGNywKLTB4RjMsMHg4OSwweDQ2LDB4RkEsMHg4MywweDdFLDB4RkEsMHgwMCwweDc0LDB4MTgsMHg4QiwweDQ2LDB4RkEsMHhCQiwweDBBLDB4MDAsCi0weDMzLDB4RDIsMHhGNywweEYzLDB4ODAsMHhDMiwweDMwLDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NjEsMHgwMiwweDg4LAotMHg1NywweDAyLDB4OEIsMHg1RSwweEU2LDB4RDEsMHhFMywweEZGLDB4QjcsMHgxMiwweDAyLDB4NkEsMHgwMCwweEZGLDB4NzYsMHgwNCwKLTB4RTgsMHhEMSwweEY2LDB4ODMsMHhDNCwweDA2LDB4NjgsMHhEMywweDBGLDB4NkEsMHgwMSwweEZGLDB4NzYsMHgwNCwweEU4LDB4QzMsCi0weEY2LDB4ODMsMHhDNCwweDA2LDB4RkYsMHg3NiwweEU2LDB4NTYsMHhFOCwweDAxLDB4OTMsMHg1OSwweDU5LDB4ODksMHg1NiwweEYyLAotMHg4OSwweDQ2LDB4RjAsMHhGRiwweDc2LDB4RTYsMHg1NiwweEU4LDB4MTQsMHg5MywweDU5LDB4NTksMHg4OSwweDU2LDB4RUUsMHg4OSwKLTB4NDYsMHhFQywweDlDLDB4RkEsMHhDNCwweDVFLDB4RjAsMHgyNiwweDhCLDB4MDcsMHg4OSwweDQ2LDB4RUEsMHhDNCwweDVFLDB4RUMsCi0weDI2LDB4OEIsMHgwNywweDg5LDB4NDYsMHhFOCwweEJBLDB4NTAsMHhGRiwweEVELDB4ODksMHg0NiwweEZFLDB4OUQsMHhDNywweDQ2LAotMHhFNCwweDAxLDB4MDAsMHhFOCwweEVFLDB4QTAsMHhCQSwweDUwLDB4RkYsMHhFRCwweDg5LDB4NDYsMHhGQywweDhCLDB4NDYsMHhGQywKLTB4MkIsMHg0NiwweEZFLDB4M0QsMHhFOCwweDAzLDB4NzMsMHgwMywweEU5LDB4ODAsMHgwMSwweDlDLDB4RkEsMHhCQSwweDUwLDB4RkYsCi0weEVELDB4ODksMHg0NiwweEZDLDB4OEIsMHg0NiwweEZDLDB4MkIsMHg0NiwweEZFLDB4ODksMHg0NiwweEY4LDB4QzQsMHg1RSwweEYwLAotMHgyNiwweDhCLDB4MDcsMHgyQiwweDQ2LDB4RUEsMHg4OSwweDQ2LDB4RjYsMHhDNCwweDVFLDB4RjAsMHgyNiwweDhCLDB4MDcsMHg4OSwKLTB4NDYsMHhFQSwweEM0LDB4NUUsMHhFQywweDI2LDB4OEIsMHgwNywweDJCLDB4NDYsMHhFOCwweDg5LDB4NDYsMHhGNCwweEM0LDB4NUUsCi0weEVDLDB4MjYsMHg4QiwweDA3LDB4ODksMHg0NiwweEU4LDB4QkEsMHg1MCwweEZGLDB4RUQsMHg4OSwweDQ2LDB4RkUsMHg5RCwweDgxLAotMHg3RSwweEY4LDB4RTgsMHgwMywweDc2LDB4MUMsMHhGRiwweDc2LDB4RjgsMHhGRiwweDc2LDB4RjYsMHhFOCwweDc2LDB4MDEsMHg1OSwKLTB4NTksMHg4OSwweDQ2LDB4RjYsMHhGRiwweDc2LDB4RjgsMHhGRiwweDc2LDB4RjQsMHhFOCwweDY4LDB4MDEsMHg1OSwweDU5LDB4ODksCi0weDQ2LDB4RjQsMHhCRiwweDBFLDB4MDAsMHhFQiwweDE3LDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweEM2LAotMHgwMSwweDIwLDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NjEsMHgwMiwweEM2LDB4MDEsMHgyMCwweDQ3LDB4ODMsMHhGRiwKLTB4MTEsMHg3NiwweEU0LDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweEM2LDB4NDcsMHgwRCwweDMwLDB4OEIsCi0weERFLDB4RDEsMHhFMywweDhCLDB4OUYsMHg2MSwweDAyLDB4QzYsMHg0NywweDBELDB4MzAsMHg4MywweDdFLDB4RjYsMHgwOSwweDc3LAotMHgwNSwweEI4LDB4MEQsMHgwMCwweEVCLDB4MjYsMHg4MywweDdFLDB4RjYsMHg2MywweDc3LDB4MDUsMHhCOCwweDBFLDB4MDAsMHhFQiwKLTB4MUIsMHg4MSwweDdFLDB4RjYsMHhFNywweDAzLDB4NzcsMHgwNSwweEI4LDB4MEYsMHgwMCwweEVCLDB4MEYsMHg4MSwweDdFLDB4RjYsCi0weDBGLDB4MjcsMHg3NywweDA1LDB4QjgsMHgxMCwweDAwLDB4RUIsMHgwMywweEI4LDB4MTEsMHgwMCwweDhCLDB4RjgsMHhFQiwweDI1LAotMHg4QiwweDQ2LDB4RjYsMHhCQiwweDBBLDB4MDAsMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwKLTB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweDg4LDB4MTEsMHg0RiwweEJCLDB4MEEsMHgwMCwweDhCLDB4NDYsMHhGNiwweDMzLDB4RDIsCi0weEY3LDB4RjMsMHg4OSwweDQ2LDB4RjYsMHg4MywweDdFLDB4RjYsMHgwMCwweDc1LDB4RDUsMHg4MywweDdFLDB4RjQsMHgwOSwweDc3LAotMHgwNSwweEI4LDB4MEQsMHgwMCwweEVCLDB4MjYsMHg4MywweDdFLDB4RjQsMHg2MywweDc3LDB4MDUsMHhCOCwweDBFLDB4MDAsMHhFQiwKLTB4MUIsMHg4MSwweDdFLDB4RjQsMHhFNywweDAzLDB4NzcsMHgwNSwweEI4LDB4MEYsMHgwMCwweEVCLDB4MEYsMHg4MSwweDdFLDB4RjQsCi0weDBGLDB4MjcsMHg3NywweDA1LDB4QjgsMHgxMCwweDAwLDB4RUIsMHgwMywweEI4LDB4MTEsMHgwMCwweDhCLDB4RjgsMHhFQiwweDI1LAotMHg4QiwweDQ2LDB4RjQsMHhCQiwweDBBLDB4MDAsMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwKLTB4RTMsMHg4QiwweDlGLDB4NjEsMHgwMiwweDg4LDB4MTEsMHg0RiwweEJCLDB4MEEsMHgwMCwweDhCLDB4NDYsMHhGNCwweDMzLDB4RDIsCi0weEY3LDB4RjMsMHg4OSwweDQ2LDB4RjQsMHg4MywweDdFLDB4RjQsMHgwMCwweDc1LDB4RDUsMHg4QiwweERFLDB4RDEsMHhFMywweEZGLAotMHhCNywweDU5LDB4MDIsMHhGRiwweDc2LDB4MDQsMHhFOCwweDZFLDB4MDAsMHg1OSwweDU5LDB4OEIsMHhERSwweEQxLDB4RTMsMHhGRiwKLTB4QjcsMHg2MSwweDAyLDB4RkYsMHg3NiwweDA0LDB4RTgsMHg1RSwweDAwLDB4NTksMHg1OSwweDZBLDB4MDAsMHhGRiwweDc2LDB4MDQsCi0weEU4LDB4MzEsMHhGMywweDU5LDB4NTksMHg4QiwweEQ4LDB4ODMsMHhGQiwweDA0LDB4NzcsMHgxRiwweEQxLDB4RTMsMHgyRSwweEZGLAotMHhBNywweDFCLDB4NzAsMHhFQiwweDIyLDB4QzcsMHg0NiwweEU0LDB4MDAsMHgwMCwweEZGLDB4NEUsMHhFNiwweEVCLDB4MEMsMHhDNywKLTB4NDYsMHhFNCwweDAwLDB4MDAsMHhGRiwweDQ2LDB4RTYsMHhFQiwweDAyLDB4RUIsMHgwMCwweDgzLDB4N0UsMHhFNCwweDAwLDB4NzQsCi0weDAzLDB4RTksMHgyQSwweEZFLDB4RTksMHhENCwweEZDLDB4NUYsMHg1RSwweEM5LDB4QzMsMHhGMywweDZGLDB4RjUsMHg2RiwweEZGLAotMHg2RiwweEYzLDB4NkYsMHgwOSwweDcwLDB4NTUsMHg4QiwweEVDLDB4OEIsMHg0NiwweDA0LDB4QjksMHhFOCwweDAzLDB4RjcsMHhFMSwKLTB4OEIsMHg0RSwweDA2LDB4RjcsMHhGMSwweDVELDB4QzMsMHg1NSwweDhCLDB4RUMsMHg1NiwweDhCLDB4NzYsMHgwNiwweEVCLDB4MEUsCi0weDhCLDB4REUsMHg0NiwweDhBLDB4MDcsMHg1MCwweEZGLDB4NzYsMHgwNCwweEU4LDB4MzMsMHgwMCwweDU5LDB4NTksMHg4MCwweDNDLAotMHgwMCwweDc1LDB4RUQsMHhFQiwweDAwLDB4NUUsMHg1RCwweEMzLDB4NTUsMHg4QiwweEVDLDB4NTYsMHg4QiwweDc2LDB4MDYsMHhFQiwKLTB4MTQsMHg4QiwweERFLDB4NDYsMHg4QSwweDA3LDB4NTAsMHhGRiwweDc2LDB4MDQsMHhFOCwweDQ1LDB4MDAsMHg1OSwweDU5LDB4MEIsCi0weEMwLDB4NzQsMHgwMiwweEVCLDB4MDcsMHg4MCwweDNDLDB4MDAsMHg3NSwweEU3LDB4RUIsMHgwMCwweDVFLDB4NUQsMHhDMywweEM4LAotMHgwMiwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsMHgwNCwweDhBLDB4NDQsMHg1QSwweDk4LDB4ODksMHg0NiwweEZFLDB4OUMsMHhGQSwKLTB4OEEsMHg0NiwweEZFLDB4QkEsMHhGRSwweDAwLDB4RUUsMHhCQSwweDAyLDB4MDAsMHhFQywweEE4LDB4MDIsMHg3NCwweDA2LDB4OUQsCi0weEU4LDB4OTEsMHg5RSwweEVCLDB4RTksMHhCQSwweDAwLDB4MDAsMHg4QSwweDQ2LDB4MDYsMHhFRSwweDlELDB4RUIsMHgwMCwweDVFLAotMHhDOSwweEMzLDB4QzgsMHgwNCwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsMHgwNCwweDhBLDB4NDQsMHg1QSwweDk4LDB4ODksMHg0NiwKLTB4RkUsMHhFOCwweEU2LDB4QTEsMHg4OSwweDQ2LDB4RkMsMHhFOCwweEUwLDB4QTEsMHgyQiwweDQ2LDB4RkMsMHgzRCwweEI4LDB4MEIsCi0weDc2LDB4MDUsMHhCOCwweDAxLDB4MDAsMHhFQiwweDIzLDB4OUMsMHhGQSwweDhBLDB4NDYsMHhGRSwweEJBLDB4RkUsMHgwMCwweEVFLAotMHhCQSwweDAyLDB4MDAsMHhFQywweEE4LDB4MDIsMHg3NCwweDA2LDB4OUQsMHhFOCwweDQ4LDB4OUUsMHhFQiwweEQ5LDB4QkEsMHgwMCwKLTB4MDAsMHg4QSwweDQ2LDB4MDYsMHhFRSwweDlELDB4MzMsMHhDMCwweEVCLDB4MDAsMHg1RSwweEM5LDB4QzMsMHhDOCwweDA0LDB4MDAsCi0weDAwLDB4NTYsMHg1NywweDhCLDB4NzYsMHgwNCwweDgzLDB4N0UsMHgwNiwweDAwLDB4NzQsMHgwNywweDU2LDB4RTgsMHgwMywweDAxLAotMHg1OSwweEVCLDB4MDUsMHg1NiwweEU4LDB4QTIsMHgwMCwweDU5LDB4ODgsMHg0NiwweEZGLDB4ODAsMHg3RSwweEZGLDB4MDgsMHg3NywKLTB4MDYsMHg4QSwweDQ2LDB4RkYsMHhFOSwweDg0LDB4MDAsMHg4MCwweDdFLDB4RkYsMHgwRiwweDc2LDB4MDMsMHhFQiwweDc5LDB4OTAsCi0weDhBLDB4NDYsMHhGRiwweEI0LDB4MDAsMHgyRCwweDBBLDB4MDAsMHg4QiwweEQ4LDB4ODMsMHhGQiwweDA0LDB4NzcsMHg2NywweEQxLAotMHhFMywweDJFLDB4RkYsMHhBNywweEFGLDB4NzEsMHhCMCwweDAwLDB4RUIsMHg2MSwweDU2LDB4RTgsMHg2QiwweDAwLDB4NTksMHhCNCwKLTB4MDAsMHgyNSwweDBGLDB4MDAsMHg4OSwweDQ2LDB4RkMsMHg1NiwweEU4LDB4NUUsMHgwMCwweDU5LDB4QjQsMHgwMCwweDhCLDB4RjgsCi0weDU2LDB4RTgsMHg1NSwweDAwLDB4NTksMHhCNCwweDAwLDB4QzEsMHhFMCwweDA4LDB4OEIsMHhENywweDAzLDB4RDAsMHg4QiwweEZBLAotMHg4QiwweDVFLDB4RkMsMHhEMSwweEUzLDB4ODksMHg3OCwweDMwLDB4RUIsMHgyRSwweDU2LDB4RTgsMHgzQiwweDAwLDB4NTksMHg4OCwKLTB4NDQsMHg1QiwweEVCLDB4MjQsMHg1NiwweEU4LDB4MzEsMHgwMCwweDU5LDB4ODgsMHg0NCwweDUwLDB4NTYsMHhFOCwweDI5LDB4MDAsCi0weDU5LDB4ODgsMHg0NCwweDUxLDB4NTYsMHhFOCwweDIxLDB4MDAsMHg1OSwweDg4LDB4NDQsMHg1MiwweDU2LDB4RTgsMHgxOSwweDAwLAotMHg1OSwweDg4LDB4NDQsMHg1MywweEVCLDB4MDIsMHhFQiwweDAwLDB4RTksMHg1QiwweEZGLDB4NUYsMHg1RSwweEM5LDB4QzMsMHg0NiwKLTB4NzEsMHhBNiwweDcxLDB4NEEsMHg3MSwweDdBLDB4NzEsMHg4NCwweDcxLDB4QzgsMHgwNCwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsCi0weDA0LDB4OEEsMHg0NCwweDVBLDB4OTgsMHg4OSwweDQ2LDB4RkUsMHg5QywweEZBLDB4OEEsMHg0NiwweEZFLDB4QkEsMHhGRSwweDAwLAotMHhFRSwweEJBLDB4MDIsMHgwMCwweEVDLDB4QTgsMHgwMSwweDc1LDB4MDYsMHg5RCwweEU4LDB4NTcsMHg5RCwweEVCLDB4RTksMHhCQSwKLTB4MDAsMHgwMCwweEVDLDB4ODgsMHg0NiwweEZELDB4OUQsMHg4QSwweDQ2LDB4RkQsMHhFQiwweDAwLDB4NUUsMHhDOSwweEMzLDB4QzgsCi0weDAyLDB4MDAsMHgwMCwweDU2LDB4OEIsMHg3NiwweDA0LDB4OEEsMHg0NCwweDVBLDB4OTgsMHg4OSwweDQ2LDB4RkUsMHg5QywweEZBLAotMHg4QSwweDQ2LDB4RkUsMHhCQSwweEZFLDB4MDAsMHhFRSwweEJBLDB4MDIsMHgwMCwweEVDLDB4MzIsMHhFNCwweDI0LDB4MDEsMHg5RCwKLTB4NUUsMHhDOSwweEMzLDB4QzgsMHgwNiwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsMHgwNCwweDhBLDB4NDQsMHg1QSwweDk4LDB4ODksCi0weDQ2LDB4RkUsMHhFOCwweDg1LDB4QTAsMHg4OSwweDQ2LDB4RkEsMHhFOCwweDdGLDB4QTAsMHgyQiwweDQ2LDB4RkEsMHgzRCwweEI4LAotMHgwQiwweDc2LDB4MDQsMHhCMCwweDA4LDB4RUIsMHgyNCwweDlDLDB4RkEsMHg4QSwweDQ2LDB4RkUsMHhCQSwweEZFLDB4MDAsMHhFRSwKLTB4QkEsMHgwMiwweDAwLDB4RUMsMHhBOCwweDAxLDB4NzUsMHgwNiwweDlELDB4RTgsMHhFOCwweDlDLDB4RUIsMHhEQSwweEJBLDB4MDAsCi0weDAwLDB4RUMsMHg4OCwweDQ2LDB4RkQsMHg5RCwweDhBLDB4NDYsMHhGRCwweEVCLDB4MDAsMHg1RSwweEM5LDB4QzMsMHg1NSwweDhCLAotMHhFQywweDU2LDB4OEIsMHg1NiwweDA0LDB4OEEsMHg0NiwweDA2LDB4RUUsMHgzMywweEY2LDB4RUIsMHgwMywweDUwLDB4NTgsMHg0NiwKLTB4ODMsMHhGRSwweDE0LDB4N0MsMHhGOCwweDVFLDB4NUQsMHhDMywweEM4LDB4MDIsMHgwMCwweDAwLDB4NTYsMHg4QiwweDU2LDB4MDQsCi0weEVDLDB4ODgsMHg0NiwweEZGLDB4MzMsMHhGNiwweEVCLDB4MDMsMHg1MCwweDU4LDB4NDYsMHg4MywweEZFLDB4MTQsMHg3QywweEY4LAotMHg4QSwweDQ2LDB4RkYsMHhFQiwweDAwLDB4NUUsMHhDOSwweEMzLDB4QzgsMHgwMiwweDAwLDB4MDAsMHg1NiwweDU3LDB4OEIsMHg3NiwKLTB4MDQsMHg4MywweDNFLDB4QjAsMHgwQiwweDAwLDB4NzUsMHgxRiwweEJBLDB4ODgsMHgwMSwweEIwLDB4MDAsMHhFRSwweEJBLDB4ODYsCi0weDAxLDB4QjAsMHgwMCwweEVFLDB4NkEsMHgwOSwweDZBLDB4MDAsMHg2OCwweDMwLDB4MDEsMHhFOCwweDdELDB4MDEsMHg4MywweEM0LAotMHgwNiwweEM3LDB4MDYsMHhCMCwweDBCLDB4MDEsMHgwMCwweDZBLDB4MDksMHg4QiwweEM2LDB4MDUsMHg4MCwweDAxLDB4NTAsMHhFOCwKLTB4REEsMHgwMCwweDU5LDB4NTksMHg4QiwweEY4LDB4OEIsMHhDNywweEMxLDB4RTgsMHgwQywweDI1LDB4MEYsMHgwMCwweDg5LDB4NDYsCi0weEZFLDB4OEIsMHhDNywweEMxLDB4RTgsMHgwOCwweDI1LDB4MEYsMHgwMCwweDhCLDB4NTYsMHhGRSwweDgzLDB4RjIsMHgwQywweDNCLAotMHhDMiwweDc1LDB4MjEsMHg4QiwweEM3LDB4QzEsMHhFOCwweDA0LDB4MjUsMHgwRiwweDAwLDB4OEIsMHg1NiwweEZFLDB4ODMsMHhGMiwKLTB4MDYsMHgzQiwweEMyLDB4NzUsMHgwRiwweDhCLDB4QzcsMHgyNSwweDBGLDB4MDAsMHg4QiwweDU2LDB4RkUsMHg4MywweEYyLDB4MDksCi0weDNCLDB4QzIsMHg3NCwweDBELDB4NkEsMHgwNywweDU2LDB4RTgsMHgzOCwweDAwLDB4NTksMHg1OSwweEM3LDB4NDYsMHhGRSwweDA3LAotMHgwMCwweDhBLDB4NDYsMHhGRSwweDA0LDB4ODAsMHhBMiwweDMzLDB4MDIsMHg4QiwweEM2LDB4QkEsMHg2MiwweDAwLDB4RjcsMHhFQSwKLTB4OEEsMHg1NiwweEZFLDB4OEIsMHhEOCwweDg4LDB4OTcsMHg2QywweDAwLDB4NjgsMHgzMiwweDAyLDB4OEIsMHhDNiwweEJBLDB4NjIsCi0weDAwLDB4RjcsMHhFQSwweDA1LDB4MTQsMHgwMCwweDUwLDB4RTgsMHgwRSwweEZELDB4NTksMHg1OSwweEVCLDB4MDAsMHg1RiwweDVFLAotMHhDOSwweEMzLDB4QzgsMHgwMiwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsMHgwNiwweDgzLDB4RTYsMHgwRiwweDhCLDB4QzYsMHhDMSwKLTB4RTAsMHgwQywweDhCLDB4RDYsMHg4MywweEYyLDB4MEMsMHhDMSwweEUyLDB4MDgsMHgwQiwweEMyLDB4OEIsMHhENiwweDgzLDB4RjIsCi0weDA2LDB4QzEsMHhFMiwweDA0LDB4MEIsMHhDMiwweDhCLDB4RDYsMHg4MywweEYyLDB4MDksMHgwQiwweEMyLDB4ODksMHg0NiwweEZFLAotMHg2QSwweDE5LDB4NkEsMHgxMCwweDhCLDB4NDYsMHgwNCwweDk5LDB4MDUsMHg0MCwweDAxLDB4ODMsMHhEMiwweDAwLDB4NTIsMHg1MCwKLTB4RTgsMHg2QiwweDAxLDB4ODMsMHhDNCwweDA2LDB4MEIsMHg0NiwweEZFLDB4ODMsMHhDQSwweDAwLDB4NTIsMHg1MCwweEU4LDB4OUEsCi0weDAwLDB4ODMsMHhDNCwweDA2LDB4RTgsMHgyNSwweDAxLDB4RUIsMHgwMCwweDVFLDB4QzksMHhDMywweDU1LDB4OEIsMHhFQywweDU2LAotMHg1NywweDMzLDB4RkYsMHg2QSwweDAxLDB4NjgsMHg4NiwweDAxLDB4RTgsMHhBMywweEZFLDB4NTksMHg1OSwweEIxLDB4MTAsMHgyQSwKLTB4NEUsMHgwNiwweEQzLDB4NjYsMHgwNCwweDMzLDB4RjYsMHhFQiwweDJFLDB4ODEsMHg3RSwweDA0LDB4MDAsMHg4MCwweDcyLDB4MDQsCi0weEIwLDB4MDEsMHhFQiwweDAyLDB4QjAsMHgwMCwweDUwLDB4NjgsMHg4OCwweDAxLDB4RTgsMHg4MSwweEZFLDB4NTksMHg1OSwweDZBLAotMHgwMywweDY4LDB4ODYsMHgwMSwweEU4LDB4NzcsMHhGRSwweDU5LDB4NTksMHg2QSwweDAxLDB4NjgsMHg4NiwweDAxLDB4RTgsMHg2RCwKLTB4RkUsMHg1OSwweDU5LDB4RDEsMHg2NiwweDA0LDB4NDYsMHgzQiwweDc2LDB4MDYsMHg3QywweENELDB4MzMsMHhGNiwweEVCLDB4MjQsCi0weEQxLDB4RTcsMHg2QSwweDAzLDB4NjgsMHg4NiwweDAxLDB4RTgsMHg1NCwweEZFLDB4NTksMHg1OSwweDZBLDB4MDEsMHg2OCwweDg2LAotMHgwMSwweEU4LDB4NEEsMHhGRSwweDU5LDB4NTksMHg2OCwweDg4LDB4MDEsMHhFOCwweDVDLDB4RkUsMHg1OSwweDk4LDB4MjUsMHgwMSwKLTB4MDAsMHgwQiwweEY4LDB4NDYsMHg4MywweEZFLDB4MTAsMHg3QywweEQ3LDB4NkEsMHgwMCwweDY4LDB4ODYsMHgwMSwweEU4LDB4MkQsCi0weEZFLDB4NTksMHg1OSwweDhCLDB4QzcsMHhFQiwweDAwLDB4NUYsMHg1RSwweDVELDB4QzMsMHg1NSwweDhCLDB4RUMsMHg1NiwweDU3LAotMHg4QiwweDdFLDB4MDgsMHg2QSwweDAxLDB4NjgsMHg4NiwweDAxLDB4RTgsMHgxMywweEZFLDB4NTksMHg1OSwweEI4LDB4MjAsMHgwMCwKLTB4MkIsMHhDNywweDUwLDB4RkYsMHg3NiwweDA2LDB4RkYsMHg3NiwweDA0LDB4RTgsMHhBMiwweDAwLDB4ODMsMHhDNCwweDA2LDB4ODksCi0weDU2LDB4MDYsMHg4OSwweDQ2LDB4MDQsMHgzMywweEY2LDB4RUIsMHg0NywweDgxLDB4N0UsMHgwNiwweDAwLDB4ODAsMHg3MiwweDBDLAotMHg3NSwweDA2LDB4ODMsMHg3RSwweDA0LDB4MDAsMHg3MiwweDA0LDB4QjAsMHgwMSwweEVCLDB4MDIsMHhCMCwweDAwLDB4NTAsMHg2OCwKLTB4ODgsMHgwMSwweEU4LDB4RDksMHhGRCwweDU5LDB4NTksMHg2QSwweDAzLDB4NjgsMHg4NiwweDAxLDB4RTgsMHhDRiwweEZELDB4NTksCi0weDU5LDB4NkEsMHgwMSwweDY4LDB4ODYsMHgwMSwweEU4LDB4QzUsMHhGRCwweDU5LDB4NTksMHg2QSwweDAxLDB4RkYsMHg3NiwweDA2LAotMHhGRiwweDc2LDB4MDQsMHhFOCwweDU4LDB4MDAsMHg4MywweEM0LDB4MDYsMHg4OSwweDU2LDB4MDYsMHg4OSwweDQ2LDB4MDQsMHg0NiwKLTB4M0IsMHhGNywweDdDLDB4QjUsMHg2QSwweDAwLDB4NjgsMHg4NiwweDAxLDB4RTgsMHhBMiwweEZELDB4NTksMHg1OSwweDZBLDB4MDAsCi0weDY4LDB4ODYsMHgwMSwweEU4LDB4OTgsMHhGRCwweDU5LDB4NTksMHg1RiwweDVFLDB4NUQsMHhDMywweDU1LDB4OEIsMHhFQywweDU2LAotMHg2QSwweDAxLDB4NjgsMHg4NiwweDAxLDB4RTgsMHg4NiwweEZELDB4NTksMHg1OSwweDMzLDB4RjYsMHhFQiwweDAwLDB4NjgsMHg4OCwKLTB4MDEsMHhFOCwweDk0LDB4RkQsMHg1OSwweEE4LDB4MDEsMHg3NSwweDA4LDB4OEIsMHhDNiwweDQ2LDB4M0QsMHg2NCwweDAwLDB4N0MsCi0weEVELDB4NkEsMHgwMCwweDY4LDB4ODYsMHgwMSwweEU4LDB4NjUsMHhGRCwweDU5LDB4NTksMHg1RSwweDVELDB4QzMsMHhDOCwweDA0LAotMHgwMCwweDAwLDB4OEIsMHg0NiwweDA0LDB4OEIsMHg1NiwweDA2LDB4OEIsMHg0RSwweDA4LDB4RTMsMHgwNiwweEQxLDB4RTAsMHhEMSwKLTB4RDIsMHhFMiwweEZBLDB4ODksMHg0NiwweEZDLDB4ODksMHg1NiwweEZFLDB4OEIsMHg1NiwweEZFLDB4OEIsMHg0NiwweEZDLDB4RUIsCi0weDAwLDB4QzksMHhDMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHg1MCwweDcyLDB4NjUsMHg3NiwweDY5LDB4NkYsMHg3NSwweDczLDB4MjAsMHg0RCwweDY1LDB4NkUsMHg3NSwweDAwLDB4NDIsMHg2NSwKLTB4NjcsMHg2OSwweDZFLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsCi0weDIwLDB4MzAsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMSwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDMyLAotMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMywweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDM0LDB4MDAsMHg1MCwKLTB4NkYsMHg3MiwweDc0LDB4MjAsMHgzNSwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDM2LDB4MDAsMHg1MCwweDZGLDB4NzIsCi0weDc0LDB4MjAsMHgzNywweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDM4LDB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLAotMHgzOSwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDMxLDB4MzAsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMSwKLTB4MzEsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMSwweDMyLDB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4MzEsCi0weDMzLDB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4MzEsMHgzNCwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDMxLAotMHgzNSwweDAwLDB4OUMsMHgwMSwweEEzLDB4MDEsMHhBQSwweDAxLDB4QjEsMHgwMSwweEI4LDB4MDEsMHhCRiwweDAxLDB4QzYsMHgwMSwKLTB4Q0QsMHgwMSwweEQ0LDB4MDEsMHhEQiwweDAxLDB4RTIsMHgwMSwweEVBLDB4MDEsMHhGMiwweDAxLDB4RkEsMHgwMSwweDAyLDB4MDIsCi0weDBBLDB4MDIsMHgwOCwweDAwLDB4MDAsMHgwNywweDgxLDB4MDAsMHgwMywweDgwLDB4ODAsMHg4MCwweDlGLDB4OTEsMHg5NSwweDkxLAotMHg5RiwweDAwLDB4MDMsMHg4MSwweDg0LDB4OEUsMHg5NSwweDg0LDB4ODQsMHg4NCwweDg0LDB4MDAsMHgwMywweDgyLDB4ODQsMHg4NCwKLTB4ODQsMHg4NCwweDk1LDB4OEUsMHg4NCwweDAwLDB4MDQsMHg4OCwweDAwLDB4QjIsMHgwQiwweEM2LDB4MEIsMHhEQSwweDBCLDB4RUUsCi0weDBCLDB4MDIsMHgwQywweDE2LDB4MEMsMHgyQSwweDBDLDB4M0UsMHgwQywweDUyLDB4MEMsMHg3NywweDBDLDB4OUMsMHgwQywweEJFLAotMHgwQywweEUwLDB4MEMsMHgwMiwweDBELDB4MDEsMHg4MCwweDIwLDB4NTQsMHg2NSwweDczLDB4NzQsMHgyMCwweDUwLDB4NjEsMHg3MywKLTB4NzMsMHg2NSwweDY0LDB4MjAsMHgxRiwweDIwLDB4NTAsMHg3MiwweDY1LDB4NzMsMHg3MywweDIwLDB4ODAsMHgwMiwweDAwLDB4MDEsCi0weDgwLDB4MjAsMHg0RCwweDY5LDB4NzMsMHg3MywweDY5LDB4NkUsMHg2NywweDIwLDB4NTIsMHg3OCwweDIwLDB4NDQsMHg2MSwweDc0LAotMHg2MSwweDFGLDB4MjAsMHg1MCwweDcyLDB4NjUsMHg3MywweDczLDB4MjAsMHg4MCwweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHg0MiwKLTB4NjEsMHg2NCwweDIwLDB4NTIsMHg3OCwweDIwLDB4NDQsMHg2MSwweDc0LDB4NjEsMHgyMCwweDFGLDB4MjAsMHg1MCwweDcyLDB4NjUsCi0weDczLDB4NzMsMHgyMCwweDgwLDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDU4LDB4NkQsMHg3NCwweDcyLDB4MjAsMHg0MiwweDc1LAotMHg3MywweDc5LDB4MUYsMHgyMCwweDUwLDB4NzIsMHg2NSwweDczLDB4NzMsMHgyMCwweDgwLDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwKLTB4NkUsMHg2RiwweDc0LDB4MjAsMHg2MywweDc1LDB4NzIsMHg3MiwweDY1LDB4NkUsMHg3NCwweDZDLDB4NzksMHgxRiwweDIwLDB4MjAsCi0weDY5LDB4NkQsMHg3MCwweDZDLDB4NjUsMHg2RCwweDY1LDB4NkUsMHg3NCwweDY1LDB4NjQsMHgwMiwweDAwLDB4MjQsMHgwRCwweDJGLAotMHgwRCwweDNBLDB4MEQsMHg0NSwweDBELDB4NTAsMHgwRCwweDVCLDB4MEQsMHg2NiwweDBELDB4NzEsMHgwRCwweDdDLDB4MEQsMHg4NywKLTB4MEQsMHg5MiwweDBELDB4OUQsMHgwRCwweEE4LDB4MEQsMHhCMywweDBELDB4QkUsMHgwRCwweEM5LDB4MEQsMHg1MywweDgwLDB4MkMsCi0weDMyLDB4NTQsMHg0NCwweDIwLDB4NTMsMHg4NiwweDJDLDB4MzMsMHg0NCwweDU0LDB4NTIsMHgyMCwweDUzLDB4ODIsMHgyQywweDMzLAotMHg1MiwweDU0LDB4NTMsMHgyMCwweDFGLDB4NTMsMHg4MSwweDJDLDB4MzIsMHg1MiwweDQ0LDB4MjAsMHg1MywweDg1LDB4MkMsMHgzMiwKLTB4NDMsMHg0NCwweDIwLDB4NTMsMHg4MywweDJDLDB4MzMsMHg0MywweDU0LDB4NTMsMHgyMCwweDUzLDB4ODQsMHgyQywweDMzLDB4NDQsCi0weDUzLDB4NTIsMHgyMCwweDUzLDB4ODcsMHgyQywweDMyLDB4NTIsMHg0OSwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLAotMHg0NCwweDQzLDB4NDQsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMyLDB4MzAsMHgxRiwweDI3LDB4NTMsMHg4NSwKLTB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksCi0weDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1MywweDUyLAotMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMxLDB4MzEsMHgxRiwweDI3LDB4NTMsMHg4NCwweDJFLDB4MzEsMHg4MSwKLTB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsCi0weDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDMsMHg1NCwweDUzLDB4MjAsMHgyRCwweDIwLAotMHg3MCwweDY5LDB4NkUsMHgyMCwweDM0LDB4MUYsMHgyNywweDUzLDB4ODMsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwKLTB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsCi0weDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NDksMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMyLAotMHgzMiwweDFGLDB4MjcsMHg1MywweDg3LDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwKLTB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsCi0weDIwLDB4MjAsMHg0NCwweDU0LDB4NTIsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM2LDB4MkYsMHgzOCwweDFGLAotMHgyNywweDUzLDB4ODYsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwKLTB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsCi0weDUyLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzUsMHgxRiwweDI3LDB4NTMsMHg4MiwweDJFLAotMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwKLTB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NTIsMHg3OCwweDQ0LDB4MjAsCi0weDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMyLDB4MUYsMHgyNywweDUzLDB4ODEsMHgyRSwweDMwLDB4NTMsMHg0RCwweDgxLAotMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywKLTB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1NCwweDc4LDB4NDQsMHgyMCwweDJELDB4MjAsCi0weDcwLDB4NjksMHg2RSwweDIwLDB4MzMsMHgxRiwweDI3LDB4NTMsMHg4MCwweDJFLDB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLAotMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwKLTB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDQ0LDB4NDMsMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksCi0weDZFLDB4MjAsMHgzNSwweDFGLDB4MjcsMHg1MywweDg1LDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLAotMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwKLTB4MDEsMHg4MCwweDIwLDB4MjAsMHg0NCwweDUzLDB4NTIsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM1LDB4MUYsCi0weDI3LDB4NTMsMHg4NCwweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LAotMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwKLTB4NDMsMHg1NCwweDUzLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMSwweDFGLDB4MjcsMHg1MywweDgzLDB4MkUsCi0weDMxLDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLAotMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDQ5LDB4MjAsMHgyRCwKLTB4MjAsMHgyOCwweDZFLDB4MkUsMHg2MywweDJFLDB4MjksMHgxRiwweDI3LDB4NTMsMHg4NywweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsCi0weDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsMHg4RCwweDhFLAotMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1NCwweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwKLTB4NkUsMHgyMCwweDMyLDB4MUYsMHgyNywweDUzLDB4ODYsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsCi0weDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLAotMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzcsMHgxRiwKLTB4MjcsMHg1MywweDgyLDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsCi0weDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLAotMHg1MiwweDc4LDB4NDQsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM2LDB4MUYsMHgyNywweDUzLDB4ODEsMHgyRSwKLTB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsCi0weDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1NCwweDc4LAotMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzMsMHgxRiwweDI3LDB4NTMsMHg4MCwweDJFLDB4MzAsMHg1MywKLTB4NEQsMHg4MSwweDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsCi0weDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDQ0LDB4NDMsMHg0NCwweDIwLAotMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNSwweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODUsMHgyRSwKLTB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsCi0weDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1MywweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNSwweDFGLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDI3LDB4NTMsMHg4NCwweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwKLTB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDMsMHg1NCwweDUzLDB4MjAsCi0weDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMxLDB4MUYsMHgyMCwweDIwLDB4MjAsMHgyMCwweDI3LDB4NTMsMHg4MywweDJFLAotMHgzMSwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwKLTB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDQ5LDB4MjAsMHgyRCwweDIwLDB4MjgsMHg2RSwweDJFLDB4NjMsMHgyRSwweDI5LDB4MUYsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDg3LDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLAotMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg0NCwweDU0LDB4NTIsMHgyMCwKLTB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzIsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDg2LDB4MkUsCi0weDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLAotMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzcsMHgxRiwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODIsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsCi0weDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NzgsMHg0NCwweDIwLAotMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNiwweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODEsMHgyRSwKLTB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsCi0weDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDU0LDB4NzgsMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLAotMHgzMywweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODAsMHgyRSwweDMwLDB4NTMsMHg0RCwweDgxLDB4ODIsMHg2MywKLTB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsCi0weDQ0LDB4NDMsMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzIsMHgzMCwweDFGLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDI3LDB4NTMsMHg4NSwweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwKLTB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1MywweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsCi0weDY5LDB4NkUsMHgyMCwweDMxLDB4MzEsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDg0LDB4MkUsMHgzMSwweDgxLAotMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwKLTB4MjAsMHgyMCwweDQzLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzQsMHgxRiwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyNywweDUzLDB4ODMsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LAotMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NDksMHgyMCwweDJELDB4MjAsMHg3MCwKLTB4NjksMHg2RSwweDIwLDB4MzIsMHgzMiwweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODcsMHgyRSwweDMxLDB4ODEsCi0weDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLAotMHgyMCwweDIwLDB4NDQsMHg1NCwweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNiwweDJGLDB4MzgsMHgxRiwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODYsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsCi0weDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NTQsMHg1MywweDIwLAotMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNSwweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODIsMHgyRSwKLTB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsCi0weDAxLDB4ODAsMHgyMCwweDIwLDB4NTIsMHg3OCwweDQ0LDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMiwweDFGLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDI3LDB4NTMsMHg4MSwweDJFLDB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwKLTB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDU0LDB4NzgsCi0weDQ0LDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMywweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLAotMHg4MCwweDJFLDB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwKLTB4ODcsMHgyNywweDAyLDB4MDAsMHg2OCwweDA0LDB4OTYsMHgwNCwweEI2LDB4MDMsMHgzQywweDA0LDB4MEUsMHgwNCwweDg5LDB4MDMsCi0weDVDLDB4MDMsMHhFMiwweDAzLDB4NjAsMHgwOCwweDhBLDB4MDgsMHhCRSwweDA3LDB4MzgsMHgwOCwweDBFLDB4MDgsMHg5NSwweDA3LAotMHg2QywweDA3LDB4RTYsMHgwNywweDFDLDB4MDUsMHg3NCwweDA1LDB4RkEsMHgwNSwweEM0LDB4MDQsMHhGMCwweDA0LDB4Q0MsMHgwNSwKLTB4QTAsMHgwNSwweDQ4LDB4MDUsMHg3OCwweDA2LDB4QzgsMHgwNiwweDQyLDB4MDcsMHgyOCwweDA2LDB4NTAsMHgwNiwweDE4LDB4MDcsCi0weEYwLDB4MDYsMHhBMCwweDA2LDB4MDAsMHgwMCwweEY0LDB4MDgsMHhGNCwweDA4LDB4RDQsMHgwRCwweDA0LDB4MDksMHgwNCwweDA5LAotMHgwNCwweDA5LDB4MDQsMHgwOSwweDQyLDB4MDAsMHgwQywweDA5LDB4MUMsMHgwOSwweEU1LDB4MEQsMHgwMiwweDAwLDB4MTQsMHgwOSwKLTB4MDQsMHgwOSwweEY0LDB4MEQsMHg0MywweDAwLDB4MUMsMHgwOSwweDBDLDB4MDksMHgwNSwweDBFLDB4MDAsMHgwNCwweDA0LDB4MDksCi0weDE0LDB4MDksMHgxMiwweDBFLDB4MkMsMHgwOSwweDJDLDB4MDksMHgyQywweDA5LDB4MkMsMHgwOSwweDAwLDB4MDAsMHgzQywweDA5LAotMHg2QywweDA5LDB4MUUsMHgwRSwweDc0LDB4MDksMHg3NCwweDA5LDB4NzQsMHgwOSwweDc0LDB4MDksMHgwMCwweDAxLDB4NEMsMHgwOSwKLTB4MkMsMHgwOSwweDJELDB4MEUsMHg3NCwweDA5LDB4NzQsMHgwOSwweDc0LDB4MDksMHg3NCwweDA5LDB4MDAsMHgwMiwweDVDLDB4MDksCi0weDNDLDB4MDksMHgzRCwweDBFLDB4NzQsMHgwOSwweDc0LDB4MDksMHg3NCwweDA5LDB4NzQsMHgwOSwweDAwLDB4MDMsMHg2QywweDA5LAotMHg0QywweDA5LDB4NEQsMHgwRSwweDc0LDB4MDksMHg3NCwweDA5LDB4NzQsMHgwOSwweDc0LDB4MDksMHhGRiwweDAwLDB4MkMsMHgwOSwKLTB4NUMsMHgwOSwweDAwLDB4MDAsMHgwMCwweDA1LDB4ODQsMHgwOSwweEVDLDB4MDksMHg1RSwweDBFLDB4RjQsMHgwOSwweEY0LDB4MDksCi0weEY0LDB4MDksMHhGNCwweDA5LDB4MDAsMHgwNiwweDk0LDB4MDksMHg3NCwweDA5LDB4NjgsMHgwRSwweEFDLDB4MEEsMHhBQywweDBBLAotMHhBQywweDBBLDB4QUMsMHgwQSwweDAwLDB4MDcsMHhBNCwweDA5LDB4ODQsMHgwOSwweDcyLDB4MEUsMHhCQywweDBBLDB4QkMsMHgwQSwKLTB4QkMsMHgwQSwweEJDLDB4MEEsMHgwMCwweDA4LDB4QjQsMHgwOSwweDk0LDB4MDksMHg3QywweDBFLDB4RDQsMHgwQSwweEQ0LDB4MEEsCi0weEQ0LDB4MEEsMHhENCwweDBBLDB4MDAsMHgwQiwweEM0LDB4MDksMHhBNCwweDA5LDB4ODMsMHgwRSwweEZDLDB4MEEsMHhGQywweDBBLAotMHhGQywweDBBLDB4RkMsMHgwQSwweDAwLDB4MEMsMHhENCwweDA5LDB4QjQsMHgwOSwweDkwLDB4MEUsMHgxNCwweDBCLDB4MTQsMHgwQiwKLTB4MTQsMHgwQiwweDE0LDB4MEIsMHgwMCwweDAyLDB4RTQsMHgwOSwweEM0LDB4MDksMHhBMCwweDBFLDB4MkMsMHgwQiwweDJDLDB4MEIsCi0weDJDLDB4MEIsMHgyQywweDBCLDB4MDQsMHgwMCwweEVDLDB4MDksMHhENCwweDA5LDB4MEUsMHgwMCwweEZGLDB4MDAsMHg3NCwweDA5LAotMHhFNCwweDA5LDB4MDAsMHgwMCwweDgyLDB4MDEsMHhGQywweDA5LDB4QTQsMHgwQSwweEFDLDB4MEUsMHg4MiwweDAyLDB4MDQsMHgwQSwKLTB4RjQsMHgwOSwweEFGLDB4MEUsMHg4MiwweDAzLDB4MEMsMHgwQSwweEZDLDB4MDksMHhCMiwweDBFLDB4ODIsMHgwNCwweDE0LDB4MEEsCi0weDA0LDB4MEEsMHhCNiwweDBFLDB4ODIsMHgwNSwweDFDLDB4MEEsMHgwQywweDBBLDB4QkMsMHgwRSwweDgyLDB4MDYsMHgyNCwweDBBLAotMHgxNCwweDBBLDB4QzAsMHgwRSwweDgyLDB4MDcsMHgyQywweDBBLDB4MUMsMHgwQSwweEM0LDB4MEUsMHg4MiwweDA4LDB4MzQsMHgwQSwKLTB4MjQsMHgwQSwweEM4LDB4MEUsMHg4MiwweDA5LDB4M0MsMHgwQSwweDJDLDB4MEEsMHhDQywweDBFLDB4ODIsMHgwQSwweDQ0LDB4MEEsCi0weDM0LDB4MEEsMHhEMSwweDBFLDB4ODIsMHgxMCwweDRDLDB4MEEsMHgzQywweDBBLDB4RDYsMHgwRSwweDgyLDB4MEIsMHg1NCwweDBBLAotMHg0NCwweDBBLDB4REIsMHgwRSwweDgyLDB4MTEsMHg1QywweDBBLDB4NEMsMHgwQSwweEUwLDB4MEUsMHg4MiwweDBDLDB4NjQsMHgwQSwKLTB4NTQsMHgwQSwweEU1LDB4MEUsMHg4MiwweDEyLDB4NkMsMHgwQSwweDVDLDB4MEEsMHhFQSwweDBFLDB4ODIsMHgwRCwweDc0LDB4MEEsCi0weDY0LDB4MEEsMHhFRiwweDBFLDB4ODIsMHgwRSwweDdDLDB4MEEsMHg2QywweDBBLDB4RjQsMHgwRSwweDgyLDB4MEYsMHg4NCwweDBBLAotMHg3NCwweDBBLDB4RkIsMHgwRSwweDgyLDB4MTMsMHg4QywweDBBLDB4N0MsMHgwQSwweDAyLDB4MEYsMHg4MiwweDE0LDB4OTQsMHgwQSwKLTB4ODQsMHgwQSwweDA5LDB4MEYsMHg4MiwweDE1LDB4OUMsMHgwQSwweDhDLDB4MEEsMHgxMCwweDBGLDB4ODIsMHgxNiwweEE0LDB4MEEsCi0weDk0LDB4MEEsMHgxNywweDBGLDB4ODIsMHgxNywweEY0LDB4MDksMHg5QywweDBBLDB4MUUsMHgwRiwweDgyLDB4MDIsMHhCNCwweDBBLAotMHhCNCwweDBBLDB4MjYsMHgwRiwweDgyLDB4MDMsMHhBQywweDBBLDB4QUMsMHgwQSwweDJELDB4MEYsMHg4MiwweDAwLDB4QzQsMHgwQSwKLTB4Q0MsMHgwQSwweDM0LDB4MEYsMHg4MiwweDAxLDB4Q0MsMHgwQSwweEJDLDB4MEEsMHgzRiwweDBGLDB4ODIsMHgwMiwweEJDLDB4MEEsCi0weEM0LDB4MEEsMHg0RCwweDBGLDB4ODIsMHgwMCwweERDLDB4MEEsMHhGNCwweDBBLDB4NTksMHgwRiwweDgyLDB4MDEsMHhFNCwweDBBLAotMHhENCwweDBBLDB4NjMsMHgwRiwweDgyLDB4MDIsMHhFQywweDBBLDB4REMsMHgwQSwweDZFLDB4MEYsMHg4MiwweDAzLDB4RjQsMHgwQSwKLTB4RTQsMHgwQSwweDdBLDB4MEYsMHg4MiwweDA0LDB4RDQsMHgwQSwweEVDLDB4MEEsMHg4NywweDBGLDB4ODIsMHgwMCwweDA0LDB4MEIsCi0weDBDLDB4MEIsMHg5MywweDBGLDB4ODIsMHgwMSwweDBDLDB4MEIsMHhGQywweDBBLDB4OUIsMHgwRiwweDgyLDB4MDIsMHhGQywweDBBLAotMHgwNCwweDBCLDB4QTcsMHgwRiwweDgyLDB4MDAsMHgxQywweDBCLDB4MjQsMHgwQiwweEIwLDB4MEYsMHg4MiwweDAxLDB4MjQsMHgwQiwKLTB4MTQsMHgwQiwweEI1LDB4MEYsMHg4MiwweDAyLDB4MTQsMHgwQiwweDFDLDB4MEIsMHhCRSwweDBGLDB4NDQsMHgwMCwweDM0LDB4MEIsCi0weEE0LDB4MEIsMHg5QywweDAxLDB4NDQsMHgwMSwweDNDLDB4MEIsMHgyQywweDBCLDB4QTMsMHgwMSwweDQ0LDB4MDIsMHg0NCwweDBCLAotMHgzNCwweDBCLDB4QUEsMHgwMSwweDQ0LDB4MDMsMHg0QywweDBCLDB4M0MsMHgwQiwweEIxLDB4MDEsMHg0NCwweDA0LDB4NTQsMHgwQiwKLTB4NDQsMHgwQiwweEI4LDB4MDEsMHg0NCwweDA1LDB4NUMsMHgwQiwweDRDLDB4MEIsMHhCRiwweDAxLDB4NDQsMHgwNiwweDY0LDB4MEIsCi0weDU0LDB4MEIsMHhDNiwweDAxLDB4NDQsMHgwNywweDZDLDB4MEIsMHg1QywweDBCLDB4Q0QsMHgwMSwweDQ0LDB4MDgsMHg3NCwweDBCLAotMHg2NCwweDBCLDB4RDQsMHgwMSwweDQ0LDB4MDksMHg3QywweDBCLDB4NkMsMHgwQiwweERCLDB4MDEsMHg0NCwweDBBLDB4ODQsMHgwQiwKLTB4NzQsMHgwQiwweEUyLDB4MDEsMHg0NCwweDBCLDB4OEMsMHgwQiwweDdDLDB4MEIsMHhFQSwweDAxLDB4NDQsMHgwQywweDk0LDB4MEIsCi0weDg0LDB4MEIsMHhGMiwweDAxLDB4NDQsMHgwRCwweDlDLDB4MEIsMHg4QywweDBCLDB4RkEsMHgwMSwweDQ0LDB4MEUsMHhBNCwweDBCLAotMHg5NCwweDBCLDB4MDIsMHgwMiwweDQ0LDB4MEYsMHgyQywweDBCLDB4OUMsMHgwQiwweDBBLDB4MDIsMHgxNywweDFGLDB4MEYsMHgyRiwKLTB4MDAsMHgwMCwweDAxLDB4ODAsMHg3OCwweDc4LDB4M0EsMHgyMCwweDc0LDB4NzgsMHgyMCwweDYzLDB4NzAsMHg3MywweDIwLDB4MkEsCi0weDJBLDB4MkEsMHgyQSwweDJBLDB4MDIsMHgwMCwweDAxLDB4ODAsMHg3OCwweDc4LDB4M0EsMHgyMCwweDc0LDB4NzgsMHgyMCwweDYzLAotMHg3MCwweDczLDB4MjAsMHgyQSwweDJBLDB4MkEsMHgyQSwweDJBLDB4MDIsMHgwMCwweDAxLDB4ODAsMHg3OCwweDc4LDB4M0EsMHgyMCwKLTB4NzQsMHg3OCwweDIwLDB4NjMsMHg3MCwweDczLDB4MjAsMHgyQSwweDJBLDB4MkEsMHgyQSwweDJBLDB4MDIsMHgwMCwweDAxLDB4ODAsCi0weDc4LDB4NzgsMHgzQSwweDIwLDB4NzQsMHg3OCwweDIwLDB4NjMsMHg3MCwweDczLDB4MjAsMHgyQSwweDJBLDB4MkEsMHgyQSwweDJBLAotMHgwMiwweDAwLDB4MDEsMHhDMCwweDc4LDB4NzgsMHgzQSwweDIwLDB4NzIsMHg2MywweDIwLDB4NjMsMHg3MCwweDczLDB4MjAsMHgyQSwKLTB4MkEsMHgyQSwweDJBLDB4MkEsMHgwMiwweDAwLDB4MDEsMHhDMCwweDc4LDB4NzgsMHgzQSwweDIwLDB4NzIsMHg2MywweDIwLDB4NjMsCi0weDcwLDB4NzMsMHgyMCwweDJBLDB4MkEsMHgyQSwweDJBLDB4MkEsMHgwMiwweDAwLDB4MDEsMHhDMCwweDc4LDB4NzgsMHgzQSwweDIwLAotMHg3MiwweDYzLDB4MjAsMHg2MywweDcwLDB4NzMsMHgyMCwweDJBLDB4MkEsMHgyQSwweDJBLDB4MkEsMHgwMiwweDAwLDB4MDEsMHhDMCwKLTB4NzgsMHg3OCwweDNBLDB4MjAsMHg3MiwweDYzLDB4MjAsMHg2MywweDcwLDB4NzMsMHgyMCwweDJBLDB4MkEsMHgyQSwweDJBLDB4MkEsCi0weDAyLDB4MDAsMHgwMSwweDgwLDB4NDksMHg2RSwweDczLDB4NzQsMHg2MSwweDZDLDB4NkMsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLAotMHg2MiwweDYxLDB4NjMsMHg2QiwweDFGLDB4NTAsMHg3MiwweDY1LDB4NzMsMHg3MywweDIwLDB4ODAsMHgyMCwweDc0LDB4NkYsMHgyMCwKLTB4NzMsMHg3NCwweDYxLDB4NzIsMHg3NCwweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHg0MywweDYxLDB4NjIsMHg2QywweDY1LDB4MjAsCi0weDc0LDB4NkYsMHgyMCwweDUyLDB4NjUsMHg2RCwweDZGLDB4NzQsMHg2NSwweDFGLDB4NTAsMHg3MiwweDY1LDB4NzMsMHg3MywweDIwLAotMHg4MCwweDIwLDB4NzQsMHg2RiwweDIwLDB4NzMsMHg3NCwweDYxLDB4NzIsMHg3NCwweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHg0QywKLTB4NkYsMHg2MywweDYxLDB4NkMsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLDB4NjIsMHg2MSwweDYzLDB4NkIsMHgyMCwweDFGLDB4MjAsCi0weDIwLDB4NTIsMHg3NSwweDZFLDB4NkUsMHg2OSwweDZFLDB4NjcsMHgyMCwweDJFLDB4MkUsMHgyRSwweDAyLDB4MDAsMHgwMSwweDgwLAotMHg1MiwweDY1LDB4NkQsMHg2RiwweDc0LDB4NjUsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLDB4NjIsMHg2MSwweDYzLDB4NkIsMHgyMCwKLTB4MUYsMHgyMCwweDIwLDB4NTIsMHg3NSwweDZFLDB4NkUsMHg2OSwweDZFLDB4NjcsMHgyMCwweDJFLDB4MkUsMHgyRSwweDAyLDB4MDAsCi0weDAxLDB4ODAsMHgyMCwweDQ5LDB4NkUsMHg3NCwweDcyLDB4NkUsMHg2QywweDIwLDB4NEMsMHg2RiwweDZGLDB4NzAsMHg2MiwweDYxLAotMHg2MywweDZCLDB4MUYsMHgyMCwweDIwLDB4NTIsMHg3NSwweDZFLDB4NkUsMHg2OSwweDZFLDB4NjcsMHgyMCwweDJFLDB4MkUsMHgyRSwKLTB4MDIsMHgwMCwweDAxLDB4ODAsMHg1NCwweDcyLDB4NjEsMHg2RSwweDczLDB4NkQsMHg2OSwweDc0LDB4MjAsMHg1MCwweDYxLDB4NzQsCi0weDc0LDB4NjUsMHg3MiwweDZFLDB4MUYsMHgyMCwweDIwLDB4NTIsMHg3NSwweDZFLDB4NkUsMHg2OSwweDZFLDB4NjcsMHgyMCwweDJFLAotMHgyRSwweDJFLDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4MzAsMHgzQSwweDIwLDB4MjcsMHg0MywweDgwLDB4MDAsMHgwMSwKLTB4ODAsMHgyMCwweDIwLDB4MzEsMHgzQSwweDIwLDB4MjcsMHg0MywweDgxLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDMyLDB4M0EsCi0weDIwLDB4MjcsMHg0MywweDgyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDMzLDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4MywweDAwLAotMHgwMSwweDgwLDB4MjAsMHgyMCwweDM0LDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4NCwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHgzNSwKLTB4M0EsMHgyMCwweDI3LDB4NDMsMHg4NSwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHgzNiwweDNBLDB4MjAsMHgyNywweDQzLDB4ODYsCi0weDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHgzNywweDNBLDB4MjAsMHgyNywweDQzLDB4ODcsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLAotMHgzOCwweDNBLDB4MjAsMHgyNywweDQzLDB4ODgsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4MzksMHgzQSwweDIwLDB4MjcsMHg0MywKLTB4ODksMHgwMCwweDAxLDB4ODAsMHgyMCwweDMxLDB4MzAsMHgzQSwweDIwLDB4MjcsMHg0MywweDhBLDB4MDAsMHgwMSwweDgwLDB4MjAsCi0weDMxLDB4MzEsMHgzQSwweDIwLDB4MjcsMHg0MywweDhCLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgzMSwweDMyLDB4M0EsMHgyMCwweDI3LAotMHg0MywweDhDLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgzMSwweDMzLDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4RCwweDAwLDB4MDEsMHg4MCwKLTB4MjAsMHgzMSwweDM0LDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4RSwweDAwLDB4MDEsMHg4MCwweDIwLDB4MzEsMHgzNSwweDNBLDB4MjAsCi0weDI3LDB4NDMsMHg4RiwweDAwLDB4MkEsMHgyQSwweDIwLDB4NEQsMHg2MSwweDY5LDB4NkUsMHgyMCwweDIwLDB4NEQsMHg2NSwweDZFLAotMHg3NSwweDIwLDB4MkEsMHgyQSwweDAwLDB4NEQsMHg2RiwweDZFLDB4NjksMHg3NCwweDZGLDB4NzIsMHgyMCwweDYxLDB4MjAsMHg1MCwKLTB4NkYsMHg3MiwweDc0LDB4MDAsMHg0RCwweDZGLDB4NkUsMHg2OSwweDc0LDB4NkYsMHg3MiwweDIwLDB4NjEsMHgyMCwweDUzLDB4NjksCi0weDY3LDB4NkUsMHg2MSwweDZDLDB4MDAsMHg0NSwweDczLDB4NzQsMHg2OSwweDZELDB4NjEsMHg3NCwweDY1LDB4MjAsMHg0MywweDUwLAotMHg1MywweDAwLDB4NDQsMHg2OSwweDYxLDB4NjcsMHg2RSwweDZGLDB4NzMsMHg3NCwweDY5LDB4NjMsMHg3MywweDAwLDB4NEMsMHg2RiwKLTB4NjMsMHg2MSwweDZDLDB4MjAsMHg0QywweDZGLDB4NkYsMHg3MCwweDYyLDB4NjEsMHg2MywweDZCLDB4MDAsMHg1MiwweDY1LDB4NkQsCi0weDZGLDB4NzQsMHg2NSwweDIwLDB4NEMsMHg2RiwweDZGLDB4NzAsMHg2MiwweDYxLDB4NjMsMHg2QiwweDAwLDB4NDksMHg2RSwweDc0LAotMHg3MiwweDZFLDB4NkMsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLDB4NjIsMHg2MSwweDYzLDB4NkIsMHgwMCwweDU0LDB4NzIsMHg2MSwKLTB4NkUsMHg3MywweDZELDB4NjksMHg3NCwweDIwLDB4NTAsMHg2MSwweDc0LDB4NzQsMHg2NSwweDcyLDB4NkUsMHgwMCwweDQyLDB4NjEsCi0weDc1LDB4NjQsMHgyMCwweDUyLDB4NjEsMHg3NCwweDY1LDB4MDAsMHg0NCwweDYxLDB4NzQsMHg2MSwweDIwLDB4NDIsMHg2OSwweDc0LAotMHg3MywweDAwLDB4NTMsMHg3NCwweDZGLDB4NzAsMHgyMCwweDQyLDB4NjksMHg3NCwweDczLDB4MDAsMHg1MCwweDYxLDB4NzIsMHg2OSwKLTB4NzQsMHg3OSwweDAwLDB4NDQsMHg2MSwweDc0LDB4NjEsMHgyMCwweDUwLDB4NjEsMHg3NCwweDc0LDB4NjUsMHg3MiwweDZFLDB4MDAsCi0weDU0LDB4NzgsMHgyMCwweDQ2LDB4NkMsMHg2RiwweDc3LDB4MjAsMHg0MywweDZGLDB4NkUsMHg3NCwweDcyLDB4NkYsMHg2QywweDAwLAotMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4NEUsMHg3NSwweDZELDB4NjIsMHg2NSwweDcyLDB4MDAsMHgzNSwweDMwLDB4MDAsMHgzNywKLTB4MzUsMHgwMCwweDMxLDB4MzEsMHgzMCwweDAwLDB4MzEsMHgzMywweDM0LDB4MkUsMHgzNSwweDAwLDB4MzEsMHgzNSwweDMwLDB4MDAsCi0weDMyLDB4MzAsMHgzMCwweDAwLDB4MzMsMHgzMCwweDMwLDB4MDAsMHgzNiwweDMwLDB4MzAsMHgwMCwweDMxLDB4MzIsMHgzMCwweDMwLAotMHgwMCwweDMxLDB4MzgsMHgzMCwweDMwLDB4MDAsMHgzMiwweDMwLDB4MzAsMHgzMCwweDAwLDB4MzIsMHgzNCwweDMwLDB4MzAsMHgwMCwKLTB4MzMsMHgzNiwweDMwLDB4MzAsMHgwMCwweDM0LDB4MzgsMHgzMCwweDMwLDB4MDAsMHgzNywweDMyLDB4MzAsMHgzMCwweDAwLDB4MzksCi0weDM2LDB4MzAsMHgzMCwweDAwLDB4MzEsMHgzOSwweDJDLDB4MzIsMHgzMCwweDMwLDB4MDAsMHgzMywweDM4LDB4MkMsMHgzNCwweDMwLAotMHgzMCwweDAwLDB4MzUsMHgzNiwweDJDLDB4MzAsMHgzMCwweDMwLDB4MDAsMHgzNSwweDM3LDB4MkMsMHgzNiwweDMwLDB4MzAsMHgwMCwKLTB4MzYsMHgzNCwweDJDLDB4MzAsMHgzMCwweDMwLDB4MDAsMHgzNywweDM2LDB4MkMsMHgzOCwweDMwLDB4MzAsMHgwMCwweDMxLDB4MzEsCi0weDM1LDB4MkMsMHgzMiwweDMwLDB4MzAsMHgwMCwweDM3LDB4MjAsMHg2MiwweDY5LDB4NzQsMHg3MywweDAwLDB4MzgsMHgyMCwweDYyLAotMHg2OSwweDc0LDB4NzMsMHgwMCwweDMxLDB4MjAsMHg3MywweDc0LDB4NkYsMHg3MCwweDIwLDB4NjIsMHg2OSwweDc0LDB4MDAsMHgzMSwKLTB4MkUsMHgzNSwweDIwLDB4NzMsMHg3NCwweDZGLDB4NzAsMHgyMCwweDYyLDB4NjksMHg3NCwweDczLDB4MDAsMHgzMiwweDIwLDB4NzMsCi0weDc0LDB4NkYsMHg3MCwweDIwLDB4NjIsMHg2OSwweDc0LDB4NzMsMHgwMCwweDZFLDB4NkYsMHgyMCwweDcwLDB4NjEsMHg3MiwweDY5LAotMHg3NCwweDc5LDB4MDAsMHg2RiwweDY0LDB4NjQsMHgyMCwweDcwLDB4NjEsMHg3MiwweDY5LDB4NzQsMHg3OSwweDAwLDB4NjUsMHg3NiwKLTB4NjUsMHg2RSwweDIwLDB4NzAsMHg2MSwweDcyLDB4NjksMHg3NCwweDc5LDB4MDAsMHg3MywweDcwLDB4NjEsMHg2MywweDY1LDB4MjAsCi0weDcwLDB4NjEsMHg3MiwweDY5LDB4NzQsMHg3OSwweDAwLDB4NkQsMHg2MSwweDcyLDB4NkIsMHgyMCwweDcwLDB4NjEsMHg3MiwweDY5LAotMHg3NCwweDc5LDB4MDAsMHg0MywweDZGLDB4NkMsMHg3NSwweDZELDB4NkUsMHg3MywweDAwLDB4NDIsMHg2MSwweDcyLDB4NjIsMHg2NSwKLTB4NzIsMHgyMCwweDUwLDB4NkYsMHg2QywweDY1LDB4MDAsMHg1NSwweDU1LDB4NTUsMHg1NSwweDU1LDB4MkUsMHgyRSwweDJFLDB4MDAsCi0weDRFLDB4NkYsMHg2RSwweDY1LDB4MDAsMHg1OCwweDZGLDB4NkUsMHgyRiwweDU4LDB4NkYsMHg2NiwweDY2LDB4MDAsMHg0MywweDU0LAotMHg1MywweDAwLDB4NTAsMHg3MiwweDY1LDB4NzMsMHg3MywweDIwLDB4ODAsMHgyMCwweDY2LDB4NkYsMHg3MiwweDIwLDB4NkQsMHg2NSwKLTB4NkUsMHg3NSwweDAwLDB4MjgsMHg2MywweDZGLDB4NzUsMHg2RSwweDc0LDB4NjksMHg2RSwweDY3LDB4MkUsMHgyRSwweDJFLDB4MjksCi0weDAwLDB4MDAsMHg2NSwweDRFLDB4NjQsMHgyMCwweDRGLDB4NjYsMHgyMCwweDQzLDB4NkYsMHg0NCwweDY1LDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwMi9pcDJiYXNlLmMgYi9kcml2ZXJzL2NoYXIvaXAyL2lwMmJhc2UuYwppbmRleCA0MzVjY2ZjLi44MTU1ZTI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXAyL2lwMmJhc2UuYworKysgYi9kcml2ZXJzL2NoYXIvaXAyL2lwMmJhc2UuYwpAQCAtMjEsMTAgKzIxLDkgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAiaXAydHlwZXMuaCIJCQotI2luY2x1ZGUgImZpcF9maXJtLmgiCQkvLyB0aGUgbWVhdAogCiBpbnQKLWlwMl9sb2FkbWFpbihpbnQgKiwgaW50ICAqLCB1bnNpZ25lZCBjaGFyICosIGludCApOyAvLyByZWYgaW50byBpcDJtYWluLmMKK2lwMl9sb2FkbWFpbihpbnQgKiwgaW50ICopOyAvLyByZWYgaW50byBpcDJtYWluLmMKIAogLyogTm90ZTogQWRkIGNvbXBpbGVkIGluIGRlZmF1bHRzIHRvIHRoZXNlIGFycmF5cywgbm90IHRvIHRoZSBzdHJ1Y3R1cmUKIAlpbiBpcDIuaCBhbnkgbG9uZ2VyLiAgVGhhdCBzdHJ1Y3R1cmUgV0lMTCBnZXQgb3ZlcnJpZGRlbgpAQCAtNTIsNyArNTEsNyBAQAogCQlpcnFbMF0gPSBpcnFbMV0gPSBpcnFbMl0gPSBpcnFbM10gPSAwOwogCX0KIAotCXJldHVybiBpcDJfbG9hZG1haW4oaW8saXJxLCh1bnNpZ25lZCBjaGFyICopZmlwX2Zpcm0sc2l6ZW9mKGZpcF9maXJtKSk7CisJcmV0dXJuIGlwMl9sb2FkbWFpbihpbywgaXJxKTsKIH0KIG1vZHVsZV9pbml0KGlwMl9pbml0KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwMi9pcDJtYWluLmMgYi9kcml2ZXJzL2NoYXIvaXAyL2lwMm1haW4uYwppbmRleCBjMTJjZjhmLi45YTIzOTRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXAyL2lwMm1haW4uYworKysgYi9kcml2ZXJzL2NoYXIvaXAyL2lwMm1haW4uYwpAQCAtOTgsNiArOTgsOSBAQAogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAogI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CkBAIC0xNTUsOSArMTU4LDcgQEAKIHN0YXRpYyBjaGFyICpwY0lwbCAgICAJCSA9ICJpcDJpcGwiOwogCiAvLyBjaGVlenkga2x1ZGdlIG9yIGdlbml1cyAtIHlvdSBkZWNpZGU/Ci1pbnQgaXAyX2xvYWRtYWluKGludCAqLCBpbnQgKiwgdW5zaWduZWQgY2hhciAqLCBpbnQpOwotc3RhdGljIHVuc2lnbmVkIGNoYXIgKkZpcF9maXJtd2FyZTsKLXN0YXRpYyBpbnQgRmlwX2Zpcm13YXJlX3NpemU7CitpbnQgaXAyX2xvYWRtYWluKGludCAqLCBpbnQgKik7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIEZ1bmN0aW9uIFByb3RvdHlwZXMgKi8KQEAgLTIwOCw3ICsyMDksNyBAQAogc3RhdGljIGludCBEdW1wVHJhY2VCdWZmZXIoY2hhciBfX3VzZXIgKiwgaW50KTsKIHN0YXRpYyBpbnQgRHVtcEZpZm9CdWZmZXIoIGNoYXIgX191c2VyICosIGludCk7CiAKLXN0YXRpYyB2b2lkIGlwMl9pbml0X2JvYXJkKGludCk7CitzdGF0aWMgdm9pZCBpcDJfaW5pdF9ib2FyZChpbnQsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqKTsKIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBmaW5kX2Vpc2FfYm9hcmQoaW50KTsKIAogLyoqKioqKioqKioqKioqKi8KQEAgLTQ3NCw4ICs0NzUsMjcgQEAKIC8qIFNBX1JBTkRPTSAgIC0gY2FuIGJlIHNvdXJjZSBmb3IgY2VydC4gcmFuZG9tIG51bWJlciBnZW5lcmF0b3JzICovCiAjZGVmaW5lIElQMl9TQV9GTEFHUwkwCiAKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqaXAyX3JlcXVlc3RfZmlybXdhcmUodm9pZCkKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CisKKwlwZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX3NpbXBsZSgiaXAyIiwgMCwgTlVMTCwgMCk7CisJaWYgKElTX0VSUihwZGV2KSkgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byByZWdpc3RlciBwbGF0Zm9ybSBkZXZpY2UgZm9yIGlwMlxuIik7CisJCXJldHVybiBOVUxMOworCX0KKwlpZiAocmVxdWVzdF9maXJtd2FyZSgmZncsICJpbnRlbGxpcG9ydDIuYmluIiwgJnBkZXYtPmRldikpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gbG9hZCBmaXJtd2FyZSAnaW50ZWxsaXBvcnQyLmJpbidcbiIpOworCQlmdyA9IE5VTEw7CisJfQorCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHBkZXYpOworCXJldHVybiBmdzsKK30KKwogaW50Ci1pcDJfbG9hZG1haW4oaW50ICppb3AsIGludCAqaXJxcCwgdW5zaWduZWQgY2hhciAqZmlybXdhcmUsIGludCBmaXJtc2l6ZSkgCitpcDJfbG9hZG1haW4oaW50ICppb3AsIGludCAqaXJxcCkKIHsKIAlpbnQgaSwgaiwgYm94OwogCWludCBlcnIgPSAwOwpAQCAtNDgzLDYgKzUwMyw3IEBACiAJaTJlQm9yZFN0clB0ciBwQiA9IE5VTEw7CiAJaW50IHJjID0gLTE7CiAJc3RhdGljIHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2X2kgPSBOVUxMOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgPSBOVUxMOwogCiAJaXAydHJhY2UgKElUUkNfTk9fUE9SVCwgSVRSQ19JTklULCBJVFJDX0VOVEVSLCAwICk7CiAKQEAgLTUxNiw5ICs1MzcsNiBAQAogCX0KIAlwb2xsX29ubHkgPSAhcG9sbF9vbmx5OwogCi0JRmlwX2Zpcm13YXJlID0gZmlybXdhcmU7Ci0JRmlwX2Zpcm13YXJlX3NpemUgPSBmaXJtc2l6ZTsKLQogCS8qIEFubm91bmNlIG91ciBwcmVzZW5jZSAqLwogCXByaW50ayggS0VSTl9JTkZPICIlcyB2ZXJzaW9uICVzXG4iLCBwY05hbWUsIHBjVmVyc2lvbiApOwogCkBAIC02MzgsMTAgKzY1NiwxOCBAQAogCQl9CiAJfQogCWZvciAoIGkgPSAwOyBpIDwgSVAyX01BWF9CT0FSRFM7ICsraSApIHsKKwkJLyogV2UgZG9uJ3Qgd2FudCB0byByZXF1ZXN0IHRoZSBmaXJtd2FyZSB1bmxlc3Mgd2UgaGF2ZSBhdAorCQkgICBsZWFzdCBvbmUgYm9hcmQgKi8KIAkJaWYgKCBpMkJvYXJkUHRyVGFibGVbaV0gIT0gTlVMTCApIHsKLQkJCWlwMl9pbml0X2JvYXJkKCBpICk7CisJCQlpZiAoIWZ3KQorCQkJCWZ3ID0gaXAyX3JlcXVlc3RfZmlybXdhcmUoKTsKKwkJCWlmICghZncpCisJCQkJYnJlYWs7CisJCQlpcDJfaW5pdF9ib2FyZChpLCBmdyk7CiAJCX0KIAl9CisJaWYgKGZ3KQorCQlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAogCWlwMnRyYWNlIChJVFJDX05PX1BPUlQsIElUUkNfSU5JVCwgMiwgMCApOwogCkBAIC03NjksNyArNzk1LDcgQEAKIC8qIGFyZSByZXBvcnRlZCBvbiB0aGUgY29uc29sZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIHZvaWQKLWlwMl9pbml0X2JvYXJkKCBpbnQgYm9hcmRudW0gKQoraXAyX2luaXRfYm9hcmQoaW50IGJvYXJkbnVtLCBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQogewogCWludCBpOwogCWludCBucG9ydHMgPSAwLCBuYm94ZXMgPSAwOwpAQCAtNzg5LDcgKzgxNSw3IEBACiAJCWdvdG8gZXJyX2luaXRpYWxpemU7CiAJfQogCi0JaWYgKCBpaURvd25sb2FkQWxsICggcEIsIChsb2FkSGRyU3RyUHRyKUZpcF9maXJtd2FyZSwgMSwgRmlwX2Zpcm13YXJlX3NpemUgKQorCWlmICggaWlEb3dubG9hZEFsbCAoIHBCLCAobG9hZEhkclN0clB0cilmdy0+ZGF0YSwgMSwgZnctPnNpemUgKQogCSAgICAhPSBJSV9ET1dOX0dPT0QgKSB7CiAJCXByaW50ayAoIEtFUk5fRVJSICJJUDI6IGZhaWxlZCB0byBkb3dubG9hZCBsb2Fkd2FyZVxuIiApOwogCQlnb3RvIGVycl9yZWxlYXNlX3JlZ2lvbjsKQEAgLTI5MDgsNDIgKzI5MzQsMTEgQEAKIHN0YXRpYyBpbnQKIGlwMl9pcGxfb3Blbiggc3RydWN0IGlub2RlICpwSW5vZGUsIHN0cnVjdCBmaWxlICpwRmlsZSApCiB7Ci0JdW5zaWduZWQgaW50IGlwbG1pbm9yID0gaW1pbm9yKHBJbm9kZSk7Ci0JaTJlQm9yZFN0clB0ciBwQjsKLQlpMkNoYW5TdHJQdHIgIHBDaDsKIAogI2lmZGVmIElQMkRFQlVHX0lQTAogCXByaW50ayAoS0VSTl9ERUJVRyAiSVAySVBMOiBvcGVuXG4iICk7CiAjZW5kaWYKLQotCXN3aXRjaChpcGxtaW5vcikgewotCS8vIFRoZXNlIGFyZSB0aGUgSVBMIGRldmljZXMKLQljYXNlIDA6Ci0JY2FzZSA0OgotCWNhc2UgODoKLQljYXNlIDEyOgotCQlicmVhazsKLQotCS8vIFRoZXNlIGFyZSB0aGUgc3RhdHVzIGRldmljZXMKLQljYXNlIDE6Ci0JY2FzZSA1OgotCWNhc2UgOToKLQljYXNlIDEzOgotCQlicmVhazsKLQotCS8vIFRoZXNlIGFyZSB0aGUgZGVidWcgZGV2aWNlcwotCWNhc2UgMjoKLQljYXNlIDY6Ci0JY2FzZSAxMDoKLQljYXNlIDE0OgotCQlwQiA9IGkyQm9hcmRQdHJUYWJsZVtpcGxtaW5vciAvIDRdOwotCQlwQ2ggPSAoaTJDaGFuU3RyUHRyKSBwQi0+aTJlQ2hhbm5lbFB0cjsKLQkJYnJlYWs7Ci0KLQkvLyBUaGlzIGlzIHRoZSB0cmFjZSBkZXZpY2UKLQljYXNlIDM6Ci0JCWJyZWFrOwotCX0KKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXAyNy1ydGMuYyBiL2RyaXZlcnMvY2hhci9pcDI3LXJ0Yy5jCmluZGV4IDg2ZTY1MzguLmVjOWQwNDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9pcDI3LXJ0Yy5jCisrKyBiL2RyaXZlcnMvY2hhci9pcDI3LXJ0Yy5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8bGludXgvYmNkLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KQEAgLTE2MywxNSArMTY0LDE4IEBACiAKIHN0YXRpYyBpbnQgcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfaXJxKCZydGNfbG9jayk7CiAKIAlpZiAocnRjX3N0YXR1cyAmIFJUQ19JU19PUEVOKSB7CiAJCXNwaW5fdW5sb2NrX2lycSgmcnRjX2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCiAJcnRjX3N0YXR1cyB8PSBSVENfSVNfT1BFTjsKIAlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZGV2aW50Zi5jIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9kZXZpbnRmLmMKaW5kZXggMDI0NmEyYjguLmMxMWE0MDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZGV2aW50Zi5jCisrKyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZGV2aW50Zi5jCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBhdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKIHN0cnVjdCBpcG1pX2ZpbGVfcHJpdmF0ZQogewpAQCAtMTAwLDcgKzEwMSw5IEBACiAJc3RydWN0IGlwbWlfZmlsZV9wcml2YXRlICpwcml2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCWludCAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ7CiAKKwlsb2NrX2tlcm5lbCgpOyAvKiBjb3VsZCByYWNlIGFnYWluc3Qgb3BlbigpIG90aGVyd2lzZSAqLwogCXJlc3VsdCA9IGZhc3luY19oZWxwZXIoZmQsIGZpbGUsIG9uLCAmcHJpdi0+ZmFzeW5jX3F1ZXVlKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gKHJlc3VsdCk7CiB9CkBAIC0xMjEsNiArMTI0LDcgQEAKIAlpZiAoIXByaXYpCiAJCXJldHVybiAtRU5PTUVNOwogCisJbG9ja19rZXJuZWwoKTsKIAlwcml2LT5maWxlID0gZmlsZTsKIAogCXJ2ID0gaXBtaV9jcmVhdGVfdXNlcihpZl9udW0sCkBAIC0xMjksNyArMTMzLDcgQEAKIAkJCSAgICAgICYocHJpdi0+dXNlcikpOwogCWlmIChydikgewogCQlrZnJlZShwcml2KTsKLQkJcmV0dXJuIHJ2OworCQlnb3RvIG91dDsKIAl9CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBwcml2OwpAQCAtMTQ0LDcgKzE0OCw5IEBACiAJcHJpdi0+ZGVmYXVsdF9yZXRyaWVzID0gLTE7CiAJcHJpdi0+ZGVmYXVsdF9yZXRyeV90aW1lX21zID0gMDsKIAotCXJldHVybiAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcnY7CiB9CiAKIHN0YXRpYyBpbnQgaXBtaV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV93YXRjaGRvZy5jIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV93YXRjaGRvZy5jCmluZGV4IDFiOWE4NzAuLjIzNWZhYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfd2F0Y2hkb2cuYworKysgYi9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3dhdGNoZG9nLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2lwbWkuaD4KICNpbmNsdWRlIDxsaW51eC9pcG1pX3NtaS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvd2F0Y2hkb2cuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpAQCAtNzU1LDkgKzc1Niw4IEBACiAJCXJ2ID0gaXBtaV9oZWFydGJlYXQoKTsKIAkJaWYgKHJ2KQogCQkJcmV0dXJuIHJ2OwotCQlyZXR1cm4gMTsKIAl9Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGxlbjsKIH0KIAogc3RhdGljIHNzaXplX3QgaXBtaV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLApAQCAtODE5LDYgKzgxOSw4IEBACiAJCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICZpcG1pX3dkb2dfb3BlbikpCiAJCQlyZXR1cm4gLUVCVVNZOwogCisJCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CisKIAkJLyoKIAkJICogRG9uJ3Qgc3RhcnQgdGhlIHRpbWVyIG5vdywgbGV0IGl0IHN0YXJ0IG9uIHRoZQogCQkgKiBmaXJzdCBoZWFydGJlYXQuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbGNkLmMgYi9kcml2ZXJzL2NoYXIvbGNkLmMKaW5kZXggNGZlOTIwNi4uMWMyOWIyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2xjZC5jCisrKyBiL2RyaXZlcnMvY2hhci9sY2QuYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTQxNCw2ICs0MTUsOCBAQAogCiBzdGF0aWMgaW50IGxjZF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CisKIAlpZiAoIWxjZF9wcmVzZW50KQogCQlyZXR1cm4gLUVOWElPOwogCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9scC5jIGIvZHJpdmVycy9jaGFyL2xwLmMKaW5kZXggNjBhYzY0Mi4uNzFhYmI0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2xwLmMKKysrIGIvZHJpdmVycy9jaGFyL2xwLmMKQEAgLTEyNiw2ICsxMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGxpbnV4L3BhcnBvcnQuaD4KICN1bmRlZiBMUF9TVEFUUwpAQCAtNDg5LDE0ICs0OTAsMjEgQEAKIHN0YXRpYyBpbnQgbHBfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQogewogCXVuc2lnbmVkIGludCBtaW5vciA9IGltaW5vcihpbm9kZSk7CisJaW50IHJldCA9IDA7CiAKLQlpZiAobWlub3IgPj0gTFBfTk8pCi0JCXJldHVybiAtRU5YSU87Ci0JaWYgKChMUF9GKG1pbm9yKSAmIExQX0VYSVNUKSA9PSAwKQotCQlyZXR1cm4gLUVOWElPOwotCWlmICh0ZXN0X2FuZF9zZXRfYml0KExQX0JVU1lfQklUX1BPUywgJkxQX0YobWlub3IpKSkKLQkJcmV0dXJuIC1FQlVTWTsKLQorCWxvY2tfa2VybmVsKCk7CisJaWYgKG1pbm9yID49IExQX05PKSB7CisJCXJldCA9IC1FTlhJTzsKKwkJZ290byBvdXQ7CisJfQorCWlmICgoTFBfRihtaW5vcikgJiBMUF9FWElTVCkgPT0gMCkgeworCQlyZXQgPSAtRU5YSU87CisJCWdvdG8gb3V0OworCX0KKwlpZiAodGVzdF9hbmRfc2V0X2JpdChMUF9CVVNZX0JJVF9QT1MsICZMUF9GKG1pbm9yKSkpIHsKKwkJcmV0ID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CiAJLyogSWYgQUJPUlRPUEVOIGlzIHNldCBhbmQgdGhlIHByaW50ZXIgaXMgb2ZmbGluZSBvciBvdXQgb2YgcGFwZXIsCiAJICAgd2UgbWF5IHN0aWxsIHdhbnQgdG8gb3BlbiBpdCB0byBwZXJmb3JtIGlvY3RsKClzLiAgVGhlcmVmb3JlIHdlCiAJICAgaGF2ZSBjb21tYW5kZWVyZWQgT19OT05CTE9DSywgZXZlbiB0aG91Z2ggaXQgaXMgYmVpbmcgdXNlZCBpbgpAQCAtNTEwLDIxICs1MTgsMjUgQEAKIAkJaWYgKHN0YXR1cyAmIExQX1BPVVRQQSkgewogCQkJcHJpbnRrKEtFUk5fSU5GTyAibHAlZCBvdXQgb2YgcGFwZXJcbiIsIG1pbm9yKTsKIAkJCUxQX0YobWlub3IpICY9IH5MUF9CVVNZOwotCQkJcmV0dXJuIC1FTk9TUEM7CisJCQlyZXQgPSAtRU5PU1BDOworCQkJZ290byBvdXQ7CiAJCX0gZWxzZSBpZiAoIShzdGF0dXMgJiBMUF9QU0VMRUNEKSkgewogCQkJcHJpbnRrKEtFUk5fSU5GTyAibHAlZCBvZmYtbGluZVxuIiwgbWlub3IpOwogCQkJTFBfRihtaW5vcikgJj0gfkxQX0JVU1k7Ci0JCQlyZXR1cm4gLUVJTzsKKwkJCXJldCA9IC1FSU87CisJCQlnb3RvIG91dDsKIAkJfSBlbHNlIGlmICghKHN0YXR1cyAmIExQX1BFUlJPUlApKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgImxwJWQgcHJpbnRlciBlcnJvclxuIiwgbWlub3IpOwogCQkJTFBfRihtaW5vcikgJj0gfkxQX0JVU1k7Ci0JCQlyZXR1cm4gLUVJTzsKKwkJCXJldCA9IC1FSU87CisJCQlnb3RvIG91dDsKIAkJfQogCX0KIAlscF90YWJsZVttaW5vcl0ubHBfYnVmZmVyID0ga21hbGxvYyhMUF9CVUZGRVJfU0laRSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFscF90YWJsZVttaW5vcl0ubHBfYnVmZmVyKSB7CiAJCUxQX0YobWlub3IpICY9IH5MUF9CVVNZOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CiAJfQogCS8qIERldGVybWluZSBpZiB0aGUgcGVyaXBoZXJhbCBzdXBwb3J0cyBFQ1AgbW9kZSAqLwogCWxwX2NsYWltX3BhcnBvcnRfb3JfYmxvY2sgKCZscF90YWJsZVttaW5vcl0pOwpAQCAtNTQwLDcgKzU1Miw5IEBACiAJcGFycG9ydF9uZWdvdGlhdGUgKGxwX3RhYmxlW21pbm9yXS5kZXYtPnBvcnQsIElFRUUxMjg0X01PREVfQ09NUEFUKTsKIAlscF9yZWxlYXNlX3BhcnBvcnQgKCZscF90YWJsZVttaW5vcl0pOwogCWxwX3RhYmxlW21pbm9yXS5jdXJyZW50X21vZGUgPSBJRUVFMTI4NF9NT0RFX0NPTVBBVDsKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBscF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbWJjcy5jIGIvZHJpdmVycy9jaGFyL21iY3MuYwppbmRleCBmNDcxNmFkLi5hY2Q4ZTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvbWJjcy5jCisrKyBiL2RyaXZlcnMvY2hhci9tYmNzLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KQEAgLTM4MiwxNSArMzgzLDE5IEBACiAJc3RydWN0IG1iY3Nfc29mdCAqc29mdDsKIAlpbnQgbWlub3I7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gaW1pbm9yKGlwKTsKIAorCS8qIE5vdGhpbmcgcHJvdGVjdHMgYWNjZXNzIHRvIHRoaXMgbGlzdC4uLiAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkoc29mdCwgJnNvZnRfbGlzdCwgbGlzdCkgewogCQlpZiAoc29mdC0+bmFzaWQgPT0gbWlub3IpIHsKIAkJCWZwLT5wcml2YXRlX2RhdGEgPSBzb2Z0LT5jeGRldjsKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQogCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRU5PREVWOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbWVtLmMgYi9kcml2ZXJzL2NoYXIvbWVtLmMKaW5kZXggOTM0ZmZhZi4uMDcwZTIyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL21lbS5jCisrKyBiL2RyaXZlcnMvY2hhci9tZW0uYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KICNpbmNsdWRlIDxsaW51eC9zcGxpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wZm4uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTg4OSw2ICs4OTAsOSBAQAogCiBzdGF0aWMgaW50IG1lbW9yeV9vcGVuKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApCiB7CisJaW50IHJldCA9IDA7CisKKwlsb2NrX2tlcm5lbCgpOwogCXN3aXRjaCAoaW1pbm9yKGlub2RlKSkgewogCQljYXNlIDE6CiAJCQlmaWxwLT5mX29wID0gJm1lbV9mb3BzOwpAQCAtOTMyLDExICs5MzYsMTMgQEAKIAkJCWJyZWFrOwogI2VuZGlmCiAJCWRlZmF1bHQ6CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4gLUVOWElPOwogCX0KIAlpZiAoZmlscC0+Zl9vcCAmJiBmaWxwLT5mX29wLT5vcGVuKQotCQlyZXR1cm4gZmlscC0+Zl9vcC0+b3Blbihpbm9kZSxmaWxwKTsKLQlyZXR1cm4gMDsKKwkJcmV0ID0gZmlscC0+Zl9vcC0+b3Blbihpbm9kZSxmaWxwKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbWVtb3J5X2ZvcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbWlzYy5jIGIvZHJpdmVycy9jaGFyL21pc2MuYwppbmRleCBlYWFjZTBkLi42ZTE1NjNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvbWlzYy5jCisrKyBiL2RyaXZlcnMvY2hhci9taXNjLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC90dHkuaD4KICNpbmNsdWRlIDxsaW51eC9rbW9kLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogLyoKICAqIEhlYWQgZW50cnkgZm9yIHRoZSBkb3VibHkgbGlua2VkIG1pc2NkZXZpY2UgbGlzdApAQCAtMTE4LDYgKzExOSw3IEBACiAJaW50IGVyciA9IC1FTk9ERVY7CiAJY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqb2xkX2ZvcHMsICpuZXdfZm9wcyA9IE5VTEw7CiAJCisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZtaXNjX210eCk7CiAJCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjLCAmbWlzY19saXN0LCBsaXN0KSB7CkBAIC0xNTUsNiArMTU3LDcgQEAKIAlmb3BzX3B1dChvbGRfZm9wcyk7CiBmYWlsOgogCW11dGV4X3VubG9jaygmbWlzY19tdHgpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbW94YS5jIGIvZHJpdmVycy9jaGFyL21veGEuYwppbmRleCBkNTdkM2E2Li5lMjEzNDZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvbW94YS5jCisrKyBiL2RyaXZlcnMvY2hhci9tb3hhLmMKQEAgLTcyMSw3ICs3MjEsNyBAQAogCiBzdGF0aWMgaW50IG1veGFfbG9hZF9mdyhzdHJ1Y3QgbW94YV9ib2FyZF9jb25mICpicmQsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCiB7Ci0Jdm9pZCAqcHRyID0gZnctPmRhdGE7CisJY29uc3Qgdm9pZCAqcHRyID0gZnctPmRhdGE7CiAJY2hhciByc25bNjRdOwogCXUxNiBsZW5zWzVdOwogCXNpemVfdCBsZW47CkBAIC03MzQsNyArNzM0LDcgQEAKIAkJdTggbW9kZWw7CS8qIEMyMThUPTEsIEMzMjBUPTIsIENQMjA0PTMgKi8KIAkJdTggcmVzZXJ2ZWQyWzhdOwogCQlfX2xlMTYgbGVuWzVdOwotCX0gKmhkciA9IHB0cjsKKwl9IGNvbnN0ICpoZHIgPSBwdHI7CiAKIAlCVUlMRF9CVUdfT04oQVJSQVlfU0laRShoZHItPmxlbikgIT0gQVJSQVlfU0laRShsZW5zKSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9td2F2ZS9td2F2ZWRkLmMgYi9kcml2ZXJzL2NoYXIvbXdhdmUvbXdhdmVkZC5jCmluZGV4IDhkMTQ4MjMuLjUwMjQzZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9td2F2ZS9td2F2ZWRkLmMKKysrIGIvZHJpdmVycy9jaGFyL213YXZlL213YXZlZGQuYwpAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsXzgyNTAuaD4KICNpbmNsdWRlICJzbWFwaS5oIgpAQCAtMTAwLDYgKzEwMSw3IEBACiAJUFJJTlRLXzIoVFJBQ0VfTVdBVkUsCiAJCSJtd2F2ZWRkOjptd2F2ZV9vcGVuLCBleGl0IHJldHVybiByZXR2YWwgJXhcbiIsIHJldHZhbCk7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiByZXR2YWw7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9udnJhbS5jIGIvZHJpdmVycy9jaGFyL252cmFtLmMKaW5kZXggOThkZWMzOC4uMTk3Y2Q3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL252cmFtLmMKKysrIGIvZHJpdmVycy9jaGFyL252cmFtLmMKQEAgLTEwNyw2ICsxMDcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTMzMywxMiArMzM0LDE0IEBACiBzdGF0aWMgaW50CiBudnJhbV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZudnJhbV9zdGF0ZV9sb2NrKTsKIAogCWlmICgobnZyYW1fb3Blbl9jbnQgJiYgKGZpbGUtPmZfZmxhZ3MgJiBPX0VYQ0wpKSB8fAogCSAgICAobnZyYW1fb3Blbl9tb2RlICYgTlZSQU1fRVhDTCkgfHwKIAkgICAgKChmaWxlLT5mX21vZGUgJiAyKSAmJiAobnZyYW1fb3Blbl9tb2RlICYgTlZSQU1fV1JJVEUpKSkgewogCQlzcGluX3VubG9jaygmbnZyYW1fc3RhdGVfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKQEAgLTM0OSw2ICszNTIsNyBAQAogCW52cmFtX29wZW5fY250Kys7CiAKIAlzcGluX3VubG9jaygmbnZyYW1fc3RhdGVfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcGM4NzM2eF9ncGlvLmMgYi9kcml2ZXJzL2NoYXIvcGM4NzM2eF9ncGlvLmMKaW5kZXggZWNmYWYxOC4uYjkzMGRlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3BjODczNnhfZ3Bpby5jCisrKyBiL2RyaXZlcnMvY2hhci9wYzg3MzZ4X2dwaW8uYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvbnNjX2dwaW8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKICNkZWZpbmUgREVWTkFNRSAicGM4NzM2eF9ncGlvIgpAQCAtMjE3LDYgKzIxOCw3IEBACiAJdW5zaWduZWQgbSA9IGltaW5vcihpbm9kZSk7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gJnBjODczNnhfZ3Bpb19vcHM7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCWRldl9kYmcoJnBkZXYtPmRldiwgIm9wZW4gJWRcbiIsIG0pOwogCiAJaWYgKG0gPj0gUEM4NzM2WF9HUElPX0NUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3BjbWNpYS9jbTQwMDBfY3MuYyBiL2RyaXZlcnMvY2hhci9wY21jaWEvY200MDAwX2NzLmMKaW5kZXggNGE5MzNkNC4uNTljYTM1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3BjbWNpYS9jbTQwMDBfY3MuYworKysgYi9kcml2ZXJzL2NoYXIvcGNtY2lhL2NtNDAwMF9jcy5jCkBAIC0zMiw4ICszMiw5IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdHJldi5oPgotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KIAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgpAQCAtMTQwNSwxMSArMTQwNiwxMSBAQAogCURFQlVHUCgzLCBkZXYsICI8LSBzdG9wX21vbml0b3JcbiIpOwogfQogCi1zdGF0aWMgaW50IGNtbV9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKLQkJICAgICB1bnNpZ25lZCBsb25nIGFyZykKK3N0YXRpYyBsb25nIGNtbV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiB7CiAJc3RydWN0IGNtNDAwMF9kZXYgKmRldiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKIAl1bnNpZ25lZCBpbnQgaW9iYXNlID0gZGV2LT5wX2Rldi0+aW8uQmFzZVBvcnQxOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxwLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOwogCXN0cnVjdCBwY21jaWFfZGV2aWNlICpsaW5rOwogCWludCBzaXplOwogCWludCByYzsKQEAgLTE0MjYsMzggKzE0MjcsNDIgQEAKIAlERUJVR1AoMywgZGV2LCAiY21tX2lvY3RsKGRldmljZT0lZC4lZCkgJXNcbiIsIGltYWpvcihpbm9kZSksCiAJICAgICAgIGltaW5vcihpbm9kZSksIGlvY3RsX25hbWVzW19JT0NfTlIoY21kKV0pOwogCisJbG9ja19rZXJuZWwoKTsKKwlyYyA9IC1FTk9ERVY7CiAJbGluayA9IGRldl90YWJsZVtpbWlub3IoaW5vZGUpXTsKIAlpZiAoIXBjbWNpYV9kZXZfcHJlc2VudChsaW5rKSkgewogCQlERUJVR1AoNCwgZGV2LCAiREVWX09LIGZhbHNlXG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCWdvdG8gb3V0OwogCX0KIAogCWlmICh0ZXN0X2JpdChJU19DTU1fQUJTRU5ULCAmZGV2LT5mbGFncykpIHsKIAkJREVCVUdQKDQsIGRldiwgIkNNTV9BQlNFTlQgZmxhZyBzZXRcbiIpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJZ290byBvdXQ7CiAJfQorCXJjID0gRUlOVkFMOwogCiAJaWYgKF9JT0NfVFlQRShjbWQpICE9IENNX0lPQ19NQUdJQykgewogCQlERUJVR1AoNCwgZGV2LCAiaW9jdHlwZSBtaXNtYXRjaFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOworCQlnb3RvIG91dDsKIAl9CiAJaWYgKF9JT0NfTlIoY21kKSA+IENNX0lPQ19NQVhOUikgewogCQlERUJVR1AoNCwgZGV2LCAiaW9jbnIgbWlzbWF0Y2hcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKKwkJZ290byBvdXQ7CiAJfQogCXNpemUgPSBfSU9DX1NJWkUoY21kKTsKLQlyYyA9IDA7CisJcmMgPSAtRUZBVUxUOwogCURFQlVHUCg0LCBkZXYsICJpb2NkaXI9JS40eCBpb2NyPSUuNHggaW9jdz0lLjR4IGlvY3NpemU9JWQgY21kPSUuNHhcbiIsCiAJICAgICAgX0lPQ19ESVIoY21kKSwgX0lPQ19SRUFELCBfSU9DX1dSSVRFLCBzaXplLCBjbWQpOwogCiAJaWYgKF9JT0NfRElSKGNtZCkgJiBfSU9DX1JFQUQpIHsKIAkJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCBhcmdwLCBzaXplKSkKLQkJCXJldHVybiAtRUZBVUxUOworCQkJZ290byBvdXQ7CiAJfQogCWlmIChfSU9DX0RJUihjbWQpICYgX0lPQ19XUklURSkgewogCQlpZiAoIWFjY2Vzc19vayhWRVJJRllfUkVBRCwgYXJncCwgc2l6ZSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKKwkJCWdvdG8gb3V0OwogCX0KKwlyYyA9IDA7CiAKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgQ01fSU9DR1NUQVRVUzoKQEAgLTE0NzcsOSArMTQ4Miw5IEBACiAJCQlpZiAodGVzdF9iaXQoSVNfQkFEX0NBUkQsICZkZXYtPmZsYWdzKSkKIAkJCQlzdGF0dXMgfD0gQ01fQkFEX0NBUkQ7CiAJCQlpZiAoY29weV90b191c2VyKGFyZ3AsICZzdGF0dXMsIHNpemVvZihpbnQpKSkKLQkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCQlyYyA9IC1FRkFVTFQ7CiAJCX0KLQkJcmV0dXJuIDA7CisJCWJyZWFrOwogCWNhc2UgQ01fSU9DR0FUUjoKIAkJREVCVUdQKDQsIGRldiwgIi4uLiBpbiBDTV9JT0NHQVRSXG4iKTsKIAkJewpAQCAtMTQ5MiwyNSArMTQ5NywyOSBAQAogCQkJICAgICAgfHwgKHRlc3RfYml0KElTX0FUUl9QUkVTRU5ULCAodm9pZCAqKSZkZXYtPmZsYWdzKQogCQkJCSAgIT0gMCkpKSkgewogCQkJCWlmIChmaWxwLT5mX2ZsYWdzICYgT19OT05CTE9DSykKLQkJCQkJcmV0dXJuIC1FQUdBSU47Ci0JCQkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKwkJCQkJcmMgPSAtRUFHQUlOOworCQkJCWVsc2UKKwkJCQkJcmMgPSAtRVJFU1RBUlRTWVM7CisJCQkJYnJlYWs7CiAJCQl9CiAKKwkJCXJjID0gLUVGQVVMVDsKIAkJCWlmICh0ZXN0X2JpdChJU19BVFJfVkFMSUQsICZkZXYtPmZsYWdzKSA9PSAwKSB7CiAJCQkJdG1wID0gLTE7CiAJCQkJaWYgKGNvcHlfdG9fdXNlcigmKGF0cmVxLT5hdHJfbGVuKSwgJnRtcCwKIAkJCQkJCSBzaXplb2YoaW50KSkpCi0JCQkJCXJldHVybiAtRUZBVUxUOworCQkJCQlicmVhazsKIAkJCX0gZWxzZSB7CiAJCQkJaWYgKGNvcHlfdG9fdXNlcihhdHJlcS0+YXRyLCBkZXYtPmF0ciwKIAkJCQkJCSBkZXYtPmF0cl9sZW4pKQotCQkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCQkJYnJlYWs7CiAKIAkJCQl0bXAgPSBkZXYtPmF0cl9sZW47CiAJCQkJaWYgKGNvcHlfdG9fdXNlcigmKGF0cmVxLT5hdHJfbGVuKSwgJnRtcCwgc2l6ZW9mKGludCkpKQotCQkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCQkJYnJlYWs7CiAJCQl9Ci0JCQlyZXR1cm4gMDsKKwkJCXJjID0gMDsKKwkJCWJyZWFrOwogCQl9CiAJY2FzZSBDTV9JT0NBUkRPRkY6CiAKQEAgLTE1MzgsOCArMTU0NywxMCBAQAogCQkJICAgICAgfHwgKHRlc3RfYW5kX3NldF9iaXQoTE9DS19JTywgKHZvaWQgKikmZGV2LT5mbGFncykKIAkJCQkgID09IDApKSkpIHsKIAkJCQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCQkJCXJldHVybiAtRUFHQUlOOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJCXJjID0gLUVBR0FJTjsKKwkJCQllbHNlCisJCQkJCXJjID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCQkJLyogU2V0IEZsYWdzMCA9IDB4NDIgKi8KIAkJCURFQlVHUCg0LCBkZXYsICJTZXQgRmxhZ3MwPTB4NDIgXG4iKTsKQEAgLTE1NTQsOCArMTU2NSwxMCBAQAogCQkJICAgICAgfHwgKHRlc3RfYml0KElTX0FUUl9WQUxJRCwgKHZvaWQgKikmZGV2LT5mbGFncykgIT0KIAkJCQkgIDApKSkpIHsKIAkJCQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCQkJCXJldHVybiAtRUFHQUlOOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJCXJjID0gLUVBR0FJTjsKKwkJCQllbHNlCisJCQkJCXJjID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCQl9CiAJCS8qIHJlbGVhc2UgbG9jayAqLwpAQCAtMTU2OCw4ICsxNTgxLDEwIEBACiAJCQlzdHJ1Y3QgcHRzcmVxIGtybnB0c3JlcTsKIAogCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZrcm5wdHNyZXEsIGFyZ3AsCi0JCQkJCSAgIHNpemVvZihzdHJ1Y3QgcHRzcmVxKSkpCi0JCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQkJCSAgIHNpemVvZihzdHJ1Y3QgcHRzcmVxKSkpIHsKKwkJCQlyYyA9IC1FRkFVTFQ7CisJCQkJYnJlYWs7CisJCQl9CiAKIAkJCXJjID0gMDsKIAkJCURFQlVHUCg0LCBkZXYsICIuLi4gaW4gQ01fSU9DU1BUU1xuIik7CkBAIC0xNTgwLDggKzE1OTUsMTAgQEAKIAkJCSAgICAgIHx8ICh0ZXN0X2JpdChJU19BVFJfUFJFU0VOVCwgKHZvaWQgKikmZGV2LT5mbGFncykKIAkJCQkgICE9IDApKSkpIHsKIAkJCQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCQkJCXJldHVybiAtRUFHQUlOOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJCXJjID0gLUVBR0FJTjsKKwkJCQllbHNlCisJCQkJCXJjID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCQkJLyogZ2V0IElPIGxvY2sgKi8KIAkJCWlmICh3YWl0X2V2ZW50X2ludGVycnVwdGlibGUKQEAgLTE1OTAsOCArMTYwNywxMCBAQAogCQkJICAgICAgfHwgKHRlc3RfYW5kX3NldF9iaXQoTE9DS19JTywgKHZvaWQgKikmZGV2LT5mbGFncykKIAkJCQkgID09IDApKSkpIHsKIAkJCQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCQkJCXJldHVybiAtRUFHQUlOOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJCXJjID0gLUVBR0FJTjsKKwkJCQllbHNlCisJCQkJCXJjID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCiAJCQlpZiAoKHJjID0gc2V0X3Byb3RvY29sKGRldiwgJmtybnB0c3JlcSkpICE9IDApIHsKQEAgLTE2MDQsNyArMTYyMyw3IEBACiAJCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJmRldi0+aW9xKTsKIAogCQl9Ci0JCXJldHVybiByYzsKKwkJYnJlYWs7CiAjaWZkZWYgUENNQ0lBX0RFQlVHCiAJY2FzZSBDTV9JT1NEQkdMVkw6CS8qIHNldCBkZWJ1ZyBsb2cgbGV2ZWwgKi8KIAkJewpAQCAtMTYxMiwxOCArMTYzMSwyMCBAQAogCiAJCQlvbGRfcGNfZGVidWcgPSBwY19kZWJ1ZzsKIAkJCWlmIChjb3B5X2Zyb21fdXNlcigmcGNfZGVidWcsIGFyZ3AsIHNpemVvZihpbnQpKSkKLQkJCQlyZXR1cm4gLUVGQVVMVDsKLQotCQkJaWYgKG9sZF9wY19kZWJ1ZyAhPSBwY19kZWJ1ZykKKwkJCQlyYyA9IC1FRkFVTFQ7CisJCQllbHNlIGlmIChvbGRfcGNfZGVidWcgIT0gcGNfZGVidWcpCiAJCQkJREVCVUdQKDAsIGRldiwgIkNoYW5nZWQgZGVidWcgbG9nIGxldmVsICIKIAkJCQkgICAgICAgInRvICVpXG4iLCBwY19kZWJ1Zyk7CiAJCX0KLQkJcmV0dXJuIHJjOworCQlicmVhazsKICNlbmRpZgogCWRlZmF1bHQ6CiAJCURFQlVHUCg0LCBkZXYsICIuLi4gaW4gZGVmYXVsdCAodW5rbm93biBJT0NUTCBjb2RlKVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOworCQlyYyA9IC1FTk9UVFk7CiAJfQorb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyBpbnQgY21tX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCkBAIC0xNjMxLDE2ICsxNjUyLDIyIEBACiAJc3RydWN0IGNtNDAwMF9kZXYgKmRldjsKIAlzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluazsKIAlpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOworCWludCByZXQ7CiAKIAlpZiAobWlub3IgPj0gQ000MDAwX01BWF9ERVYpCiAJCXJldHVybiAtRU5PREVWOwogCisJbG9ja19rZXJuZWwoKTsKIAlsaW5rID0gZGV2X3RhYmxlW21pbm9yXTsKLQlpZiAobGluayA9PSBOVUxMIHx8ICFwY21jaWFfZGV2X3ByZXNlbnQobGluaykpCi0JCXJldHVybiAtRU5PREVWOworCWlmIChsaW5rID09IE5VTEwgfHwgIXBjbWNpYV9kZXZfcHJlc2VudChsaW5rKSkgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAKLQlpZiAobGluay0+b3BlbikKLQkJcmV0dXJuIC1FQlVTWTsKKwlpZiAobGluay0+b3BlbikgeworCQlyZXQgPSAtRUJVU1k7CisJCWdvdG8gb3V0OworCX0KIAogCWRldiA9IGxpbmstPnByaXY7CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gZGV2OwpAQCAtMTY2MCw4ICsxNjg3LDEwIEBACiAJICogdmFpbGQgPSBibG9jayB1bnRpbCB2YWxpZCAob3IgY2FyZAogCSAqIGluc2VydGVkKQogCSAqLwotCWlmIChmaWxwLT5mX2ZsYWdzICYgT19OT05CTE9DSykKLQkJcmV0dXJuIC1FQUdBSU47CisJaWYgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSB7CisJCXJldCA9IC1FQUdBSU47CisJCWdvdG8gb3V0OworCX0KIAogCWRldi0+bWRlbGF5ID0gVF81ME1TRUM7CiAKQEAgLTE2NzEsNyArMTcwMCwxMCBAQAogCWxpbmstPm9wZW4gPSAxOwkJLyogb25seSBvbmUgb3BlbiBwZXIgZGV2aWNlICovCiAKIAlERUJVR1AoMiwgZGV2LCAiPC0gY21tX29wZW5cbiIpOwotCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKKwlyZXQgPSBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBjbW1fY2xvc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCkBAIC0xODk3LDcgKzE5MjksNyBAQAogCS5vd25lcgk9IFRISVNfTU9EVUxFLAogCS5yZWFkCT0gY21tX3JlYWQsCiAJLndyaXRlCT0gY21tX3dyaXRlLAotCS5pb2N0bAk9IGNtbV9pb2N0bCwKKwkudW5sb2NrZWRfaW9jdGwJPSBjbW1faW9jdGwsCiAJLm9wZW4JPSBjbW1fb3BlbiwKIAkucmVsZWFzZT0gY21tX2Nsb3NlLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9wY21jaWEvY200MDQwX2NzLmMgYi9kcml2ZXJzL2NoYXIvcGNtY2lhL2NtNDA0MF9jcy5jCmluZGV4IDAzNTA4NGMuLjYxODFmOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9wY21jaWEvY200MDQwX2NzLmMKKysrIGIvZHJpdmVycy9jaGFyL3BjbWNpYS9jbTQwNDBfY3MuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTQ0OCwyMyArNDQ5LDMwIEBACiAJc3RydWN0IHJlYWRlcl9kZXYgKmRldjsKIAlzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluazsKIAlpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOworCWludCByZXQ7CiAKIAlpZiAobWlub3IgPj0gQ01fTUFYX0RFVikKIAkJcmV0dXJuIC1FTk9ERVY7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWxpbmsgPSBkZXZfdGFibGVbbWlub3JdOwotCWlmIChsaW5rID09IE5VTEwgfHwgIXBjbWNpYV9kZXZfcHJlc2VudChsaW5rKSkKLQkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKGxpbmsgPT0gTlVMTCB8fCAhcGNtY2lhX2Rldl9wcmVzZW50KGxpbmspKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAotCWlmIChsaW5rLT5vcGVuKQotCQlyZXR1cm4gLUVCVVNZOworCWlmIChsaW5rLT5vcGVuKSB7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CisJfQogCiAJZGV2ID0gbGluay0+cHJpdjsKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBkZXY7CiAKIAlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spIHsKIAkJREVCVUdQKDQsIGRldiwgImZpbGVwLT5mX2ZsYWdzIE9fTk9OQkxPQ0sgc2V0XG4iKTsKLQkJcmV0dXJuIC1FQUdBSU47CisJCXJldCA9IC1FQUdBSU47CisJCWdvdG8gb3V0OwogCX0KIAogCWxpbmstPm9wZW4gPSAxOwpAQCAtNDczLDcgKzQ4MSwxMCBAQAogCW1vZF90aW1lcigmZGV2LT5wb2xsX3RpbWVyLCBqaWZmaWVzICsgUE9MTF9QRVJJT0QpOwogCiAJREVCVUdQKDIsIGRldiwgIjwtIGNtNDA0MF9vcGVuIChzdWNjZXNzZnVsbHkpXG4iKTsKLQlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CisJcmV0ID0gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgY200MDQwX2Nsb3NlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3BjbWNpYS9pcHdpcmVsZXNzL2hhcmR3YXJlLmMgYi9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvaGFyZHdhcmUuYwppbmRleCBiYTYzNDBhLi45MjkxMDFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvaGFyZHdhcmUuYworKysgYi9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvaGFyZHdhcmUuYwpAQCAtNTkwLDggKzU5MCwxMCBAQAogCQlwYWNrZXQgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgaXB3X3J4X3BhY2tldCkgKwogCQkJCW9sZF9wYWNrZXQtPmxlbmd0aCArIG1pbmltdW1fZnJlZV9zcGFjZSwKIAkJCQlHRlBfQVRPTUlDKTsKLQkJaWYgKCFwYWNrZXQpCisJCWlmICghcGFja2V0KSB7CisJCQlrZnJlZShvbGRfcGFja2V0KTsKIAkJCXJldHVybiBOVUxMOworCQl9CiAJCW1lbWNweShwYWNrZXQsIG9sZF9wYWNrZXQsCiAJCQkJc2l6ZW9mKHN0cnVjdCBpcHdfcnhfcGFja2V0KQogCQkJCQkrIG9sZF9wYWNrZXQtPmxlbmd0aCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvbWFpbi5jIGIvZHJpdmVycy9jaGFyL3BjbWNpYS9pcHdpcmVsZXNzL21haW4uYwppbmRleCAwMGM3Zjg0Li5jYzdkY2VhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvbWFpbi5jCisrKyBiL2RyaXZlcnMvY2hhci9wY21jaWEvaXB3aXJlbGVzcy9tYWluLmMKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIAotI2luY2x1ZGUgPHBjbWNpYS92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3JlZy5oPgogI2luY2x1ZGUgPHBjbWNpYS9kZXZpY2VfaWQuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9wcGRldi5jIGIvZHJpdmVycy9jaGFyL3BwZGV2LmMKaW5kZXggM2FhYjgzNy4uZjZlNmFjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3BwZGV2LmMKKysrIGIvZHJpdmVycy9jaGFyL3BwZGV2LmMKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9wcGRldi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAogI2RlZmluZSBQUF9WRVJTSU9OICJwcGRldjogdXNlci1zcGFjZSBwYXJhbGxlbCBwb3J0IGRyaXZlciIKQEAgLTYzOCw2ICs2MzksNyBAQAogCXVuc2lnbmVkIGludCBtaW5vciA9IGltaW5vcihpbm9kZSk7CiAJc3RydWN0IHBwX3N0cnVjdCAqcHA7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCWlmIChtaW5vciA+PSBQQVJQT1JUX01BWCkKIAkJcmV0dXJuIC1FTlhJTzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3Jhdy5jIGIvZHJpdmVycy9jaGFyL3Jhdy5jCmluZGV4IGJiZmEwZTIuLjUwNWZjYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9yYXcuYworKysgYi9kcml2ZXJzL2NoYXIvcmF3LmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIApAQCAtNTMsNiArNTQsNyBAQAogCQlyZXR1cm4gMDsKIAl9CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJnJhd19tdXRleCk7CiAKIAkvKgpAQCAtNzksNiArODEsNyBAQAogCQkJYmRldi0+YmRfaW5vZGUtPmlfbWFwcGluZzsKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBiZGV2OwogCW11dGV4X3VubG9jaygmcmF3X211dGV4KTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIG91dDI6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcnRjLmMgYi9kcml2ZXJzL2NoYXIvcnRjLmMKaW5kZXggNWY4MGE5ZC4uZmE5MmE4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3J0Yy5jCisrKyBiL2RyaXZlcnMvY2hhci9ydGMuYwpAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zeXNjdGwuaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8bGludXgvYmNkLmg+CkBAIC02NzgsMTIgKzY3OSwxMyBAQAogCQlpZiAoYXJnICE9ICgxPDx0bXApKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKKwkJcnRjX2ZyZXEgPSBhcmc7CisKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnJ0Y19sb2NrLCBmbGFncyk7CiAJCWlmIChocGV0X3NldF9wZXJpb2RpY19mcmVxKGFyZykpIHsKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJ0Y19sb2NrLCBmbGFncyk7CiAJCQlyZXR1cm4gMDsKIAkJfQotCQlydGNfZnJlcSA9IGFyZzsKIAogCQl2YWwgPSBDTU9TX1JFQUQoUlRDX0ZSRVFfU0VMRUNUKSAmIDB4ZjA7CiAJCXZhbCB8PSAoMTYgLSB0bXApOwpAQCAtNzMzLDYgKzczNSw3IEBACiAgKiBuZWVkZWQgaGVyZS4gT3IgYW55d2hlcmUgZWxzZSBpbiB0aGlzIGRyaXZlci4gKi8KIHN0YXRpYyBpbnQgcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfaXJxKCZydGNfbG9jayk7CiAKIAlpZiAocnRjX3N0YXR1cyAmIFJUQ19JU19PUEVOKQpAQCAtNzQyLDEwICs3NDUsMTIgQEAKIAogCXJ0Y19pcnFfZGF0YSA9IDA7CiAJc3Bpbl91bmxvY2tfaXJxKCZydGNfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiBvdXRfYnVzeToKIAlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIC1FQlVTWTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3NjeDIwMF9ncGlvLmMgYi9kcml2ZXJzL2NoYXIvc2N4MjAwX2dwaW8uYwppbmRleCA5OWU1MjcyLi4xZDkxMDA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvc2N4MjAwX2dwaW8uYworKysgYi9kcml2ZXJzL2NoYXIvc2N4MjAwX2dwaW8uYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKQEAgLTUxLDYgKzUyLDcgQEAKIAl1bnNpZ25lZCBtID0gaW1pbm9yKGlub2RlKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSAmc2N4MjAwX2dwaW9fb3BzOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlpZiAobSA+PSBNQVhfUElOUykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3Nuc2MuYyBiL2RyaXZlcnMvY2hhci9zbnNjLmMKaW5kZXggOGZlMDk5YS4uMGI3OTlhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3Nuc2MuYworKysgYi9kcml2ZXJzL2NoYXIvc25zYy5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS9zbi9pby5oPgogI2luY2x1ZGUgPGFzbS9zbi9zbl9zYWwuaD4KICNpbmNsdWRlIDxhc20vc24vbW9kdWxlLmg+CkBAIC0xMDQsNiArMTA1LDcgQEAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBzZDsKIAogCS8qIGhvb2sgdGhpcyBzdWJjaGFubmVsIHVwIHRvIHRoZSBzeXN0ZW0gY29udHJvbGxlciBpbnRlcnJ1cHQgKi8KKwlsb2NrX2tlcm5lbCgpOwogCXJ2ID0gcmVxdWVzdF9pcnEoU0dJX1VBUlRfVkVDVE9SLCBzY2Rydl9pbnRlcnJ1cHQsCiAJCQkgSVJRRl9TSEFSRUQgfCBJUlFGX0RJU0FCTEVELAogCQkJIFNZU0NUTF9CQVNFTkFNRSwgc2QpOwpAQCAtMTExLDkgKzExMywxMCBAQAogCQlpYTY0X3NuX2lydHJfY2xvc2Uoc2QtPnNkX25hc2lkLCBzZC0+c2Rfc3ViY2gpOwogCQlrZnJlZShzZCk7CiAJCXByaW50aygiJXM6IGlycSByZXF1ZXN0IGZhaWxlZCAoJWQpXG4iLCBfX2Z1bmNfXywgcnYpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQotCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvc29ueXBpLmMgYi9kcml2ZXJzL2NoYXIvc29ueXBpLmMKaW5kZXggNTg1MzNkZS4uODVlMGViNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3NvbnlwaS5jCisrKyBiL2RyaXZlcnMvY2hhci9zb255cGkuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2tmaWZvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC05MDYsMTIgKzkwNywxNCBAQAogCiBzdGF0aWMgaW50IHNvbnlwaV9taXNjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZzb255cGlfZGV2aWNlLmxvY2spOwogCS8qIEZsdXNoIGlucHV0IHF1ZXVlIG9uIGZpcnN0IG9wZW4gKi8KIAlpZiAoIXNvbnlwaV9kZXZpY2Uub3Blbl9jb3VudCkKIAkJa2ZpZm9fcmVzZXQoc29ueXBpX2RldmljZS5maWZvKTsKIAlzb255cGlfZGV2aWNlLm9wZW5fY291bnQrKzsKIAltdXRleF91bmxvY2soJnNvbnlwaV9kZXZpY2UubG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdGIwMjE5LmMgYi9kcml2ZXJzL2NoYXIvdGIwMjE5LmMKaW5kZXggNGM0MzFjYi4uNjA2MmI2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3RiMDIxOS5jCisrKyBiL2RyaXZlcnMvY2hhci90YjAyMTkuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vcmVib290Lmg+CkBAIC0yMzYsNiArMjM3LDcgQEAKIHsKIAl1bnNpZ25lZCBpbnQgbWlub3I7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCW1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlzd2l0Y2ggKG1pbm9yKSB7CiAJY2FzZSAwOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3RsY2xrLmMgYi9kcml2ZXJzL2NoYXIvdGxjbGsuYwppbmRleCAzNWU1ODAzLi44ZjIyODRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvdGxjbGsuYworKysgYi9kcml2ZXJzL2NoYXIvdGxjbGsuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CkBAIC0yMDQsMTEgKzIwNSwxNCBAQAogewogCWludCByZXN1bHQ7CiAKLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmdXNlZmxhZ3MpKQotCQlyZXR1cm4gLUVCVVNZOworCWxvY2tfa2VybmVsKCk7CisJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJnVzZWZsYWdzKSkgeworCQlyZXN1bHQgPSAtRUJVU1k7CiAJCS8qIHRoaXMgbGVnYWN5IGRldmljZSBpcyBhbHdheXMgb25lIHBlciBzeXN0ZW0gYW5kIGl0IGRvZXNuJ3QKIAkJICoga25vdyBob3cgdG8gaGFuZGxlIG11bHRpcGxlIGNvbmN1cnJlbnQgY2xpZW50cy4KIAkJICovCisJCWdvdG8gb3V0OworCX0KIAogCS8qIE1ha2Ugc3VyZSB0aGVyZSBpcyBubyBpbnRlcnJ1cHQgcGVuZGluZyB3aGlsZQogCSAqIGluaXRpYWxpc2luZyBpbnRlcnJ1cHQgaGFuZGxlciAqLwpAQCAtMjE4LDEzICsyMjIsMTQgQEAKIAkgKiB3ZSBjYW4ndCBzaGFyZSB0aGlzIElSUSAqLwogCXJlc3VsdCA9IHJlcXVlc3RfaXJxKHRlbGNsa19pbnRlcnJ1cHQsICZ0bGNsa19pbnRlcnJ1cHQsCiAJCQkgICAgIElSUUZfRElTQUJMRUQsICJ0ZWxjb19jbG9jayIsIHRsY2xrX2ludGVycnVwdCk7Ci0JaWYgKHJlc3VsdCA9PSAtRUJVU1kpIHsKKwlpZiAocmVzdWx0ID09IC1FQlVTWSkKIAkJcHJpbnRrKEtFUk5fRVJSICJ0bGNsazogSW50ZXJydXB0IGNhbid0IGJlIHJlc2VydmVkLlxuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCWluYihUTENMS19SRUc2KTsJLyogQ2xlYXIgaW50ZXJydXB0IGV2ZW50cyAqLworCWVsc2UKKwkJaW5iKFRMQ0xLX1JFRzYpOwkvKiBDbGVhciBpbnRlcnJ1cHQgZXZlbnRzICovCiAKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIGludCB0bGNsa19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3RwbS90cG0uYyBiL2RyaXZlcnMvY2hhci90cG0vdHBtLmMKaW5kZXggYTVkOGJjYi4uZTFmYzE5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3RwbS90cG0uYworKysgYi9kcml2ZXJzL2NoYXIvdHBtL3RwbS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSAidHBtLmgiCiAKQEAgLTg5Nyw2ICs4OTgsNyBAQAogCWludCByYyA9IDAsIG1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlzdHJ1Y3QgdHBtX2NoaXAgKmNoaXAgPSBOVUxMLCAqcG9zOwogCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2soJmRyaXZlcl9sb2NrKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCAmdHBtX2NoaXBfbGlzdCwgbGlzdCkgewpAQCAtOTI2LDE2ICs5MjgsMTkgQEAKIAlpZiAoY2hpcC0+ZGF0YV9idWZmZXIgPT0gTlVMTCkgewogCQljaGlwLT5udW1fb3BlbnMtLTsKIAkJcHV0X2RldmljZShjaGlwLT5kZXYpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAogCWF0b21pY19zZXQoJmNoaXAtPmRhdGFfcGVuZGluZywgMCk7CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBjaGlwOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogZXJyX291dDoKIAlzcGluX3VubG9jaygmZHJpdmVyX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmM7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh0cG1fb3Blbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdHBtL3RwbV90aXMuYyBiL2RyaXZlcnMvY2hhci90cG0vdHBtX3Rpcy5jCmluZGV4IDEzYTRiZGQuLmM3YTk3N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90cG0vdHBtX3Rpcy5jCisrKyBiL2RyaXZlcnMvY2hhci90cG0vdHBtX3Rpcy5jCkBAIC02MjMsNiArNjIzLDcgQEAKIAl7IklGWDAxMDIiLCAwfSwJCS8qIEluZmluZW9uICovCiAJeyJCQ00wMTAxIiwgMH0sCQkvKiBCcm9hZGNvbSAqLwogCXsiTlNDMTIwMCIsIDB9LAkJLyogTmF0aW9uYWwgKi8KKwl7IklDTzAxMDIiLCAwfSwJCS8qIEludGVsICovCiAJLyogQWRkIG5ldyBoZXJlICovCiAJeyIiLCAwfSwJCS8qIFVzZXIgU3BlY2lmaWVkICovCiAJeyIiLCAwfQkJCS8qIFRlcm1pbmF0b3IgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci90dHlfaW8uYyBiL2RyaXZlcnMvY2hhci90dHlfaW8uYwppbmRleCBlOTRiZWUwLi4wNDdhMTczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvdHR5X2lvLmMKKysrIGIvZHJpdmVycy9jaGFyL3R0eV9pby5jCkBAIC0yNjY1LDcgKzI2NjUsNyBAQAogICoJCSAtPnNpZ2xvY2sgcHJvdGVjdHMgLT5zaWduYWwvLT5zaWdoYW5kCiAgKi8KIAotc3RhdGljIGludCB0dHlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3N0YXRpYyBpbnQgX190dHlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OwogCWludCBub2N0dHksIHJldHZhbDsKQEAgLTI3NzksNiArMjc3OSwxOSBAQAogCXJldHVybiAwOwogfQogCisvKiBCS0wgcHVzaGRvd246IHNjYXJ5IGNvZGUgYXZvaWRhbmNlIHdyYXBwZXIgKi8KK3N0YXRpYyBpbnQgdHR5X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJaW50IHJldDsKKworCWxvY2tfa2VybmVsKCk7CisJcmV0ID0gX190dHlfb3Blbihpbm9kZSwgZmlscCk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7Cit9CisKKworCiAjaWZkZWYgQ09ORklHX1VOSVg5OF9QVFlTCiAvKioKICAqCXB0bXhfb3BlbgkJLQlvcGVuIGEgdW5peCA5OCBwdHkgbWFzdGVyCkBAIC0yNzkyLDcgKzI4MDUsNyBAQAogICoJCWFsbG9jYXRlZF9wdHlzX2xvY2sgaGFuZGxlcyB0aGUgbGlzdCBvZiBmcmVlIHB0eSBudW1iZXJzCiAgKi8KIAotc3RhdGljIGludCBwdG14X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCitzdGF0aWMgaW50IF9fcHRteF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewogCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CiAJaW50IHJldHZhbDsKQEAgLTI4MzEsNiArMjg0NCwxNiBAQAogCWRldnB0c19raWxsX2luZGV4KGluZGV4KTsKIAlyZXR1cm4gcmV0dmFsOwogfQorCitzdGF0aWMgaW50IHB0bXhfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlpbnQgcmV0OworCisJbG9ja19rZXJuZWwoKTsKKwlyZXQgPSBfX3B0bXhfb3Blbihpbm9kZSwgZmlscCk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7Cit9CiAjZW5kaWYKIAogLyoqCkBAIC0yODg2LDE1ICsyOTA5LDE2IEBACiB7CiAJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXR2YWw7CisJaW50IHJldHZhbCA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXR0eSA9IChzdHJ1Y3QgdHR5X3N0cnVjdCAqKWZpbHAtPnByaXZhdGVfZGF0YTsKIAlpZiAodHR5X3BhcmFub2lhX2NoZWNrKHR0eSwgZmlscC0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgInR0eV9mYXN5bmMiKSkKLQkJcmV0dXJuIDA7CisJCWdvdG8gb3V0OwogCiAJcmV0dmFsID0gZmFzeW5jX2hlbHBlcihmZCwgZmlscCwgb24sICZ0dHktPmZhc3luYyk7CiAJaWYgKHJldHZhbCA8PSAwKQotCQlyZXR1cm4gcmV0dmFsOworCQlnb3RvIG91dDsKIAogCWlmIChvbikgewogCQllbnVtIHBpZF90eXBlIHR5cGU7CkBAIC0yOTEyLDEyICsyOTM2LDE1IEBACiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnR0eS0+Y3RybF9sb2NrLCBmbGFncyk7CiAJCXJldHZhbCA9IF9fZl9zZXRvd24oZmlscCwgcGlkLCB0eXBlLCAwKTsKIAkJaWYgKHJldHZhbCkKLQkJCXJldHVybiByZXR2YWw7CisJCQlnb3RvIG91dDsKIAl9IGVsc2UgewogCQlpZiAoIXR0eS0+ZmFzeW5jICYmICF3YWl0cXVldWVfYWN0aXZlKCZ0dHktPnJlYWRfd2FpdCkpCiAJCQl0dHktPm1pbmltdW1fdG9fd2FrZSA9IE5fVFRZX0JVRl9TSVpFOwogCX0KLQlyZXR1cm4gMDsKKwlyZXR2YWwgPSAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0dmFsOwogfQogCiAvKioKQEAgLTMzMjIsNyArMzM0OSw3IEBACiAJCW1zbGVlcF9pbnRlcnJ1cHRpYmxlKGR1cmF0aW9uKTsKIAl0dHktPm9wcy0+YnJlYWtfY3RsKHR0eSwgMCk7CiAJdHR5X3dyaXRlX3VubG9jayh0dHkpOwotCWlmICghc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCisJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKQogCQlyZXR1cm4gLUVJTlRSOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3ZjX3NjcmVlbi5jIGIvZHJpdmVycy9jaGFyL3ZjX3NjcmVlbi5jCmluZGV4IDgzYWVlZGQuLmVlYmZhZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci92Y19zY3JlZW4uYworKysgYi9kcml2ZXJzL2NoYXIvdmNfc2NyZWVuLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rYmRfa2Vybi5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CkBAIC00NjAsOSArNDYxLDEzIEBACiB2Y3Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAl1bnNpZ25lZCBpbnQgY3VycmNvbnMgPSBpbWlub3IoaW5vZGUpICYgMTI3OworCWludCByZXQgPSAwOworCQorCWxvY2tfa2VybmVsKCk7CiAJaWYoY3VycmNvbnMgJiYgIXZjX2NvbnNfYWxsb2NhdGVkKGN1cnJjb25zLTEpKQotCQlyZXR1cm4gLUVOWElPOwotCXJldHVybiAwOworCQlyZXQgPSAtRU5YSU87CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHZjc19mb3BzID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3Zpb3RhcGUuYyBiL2RyaXZlcnMvY2hhci92aW90YXBlLmMKaW5kZXggYzM5ZGRhZi4uOTc3ZjdkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3Zpb3RhcGUuYworKysgYi9kcml2ZXJzL2NoYXIvdmlvdGFwZS5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9pb2N0bHMuaD4KQEAgLTY4Nyw2ICs2ODgsNyBAQAogCWlmIChvcCA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWxvY2tfa2VybmVsKCk7CiAJZ2V0X2Rldl9pbmZvKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUsICZkZXZpKTsKIAogCS8qIE5vdGU6IFdlIGN1cnJlbnRseSBvbmx5IHN1cHBvcnQgb25lIG1vZGUhICovCkBAIC03MTcsNiArNzE5LDcgQEAKIAogZnJlZV9vcDoKIAlmcmVlX29wX3N0cnVjdChvcCk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci92cjQxeHhfZ2l1LmMgYi9kcml2ZXJzL2NoYXIvdnI0MXh4X2dpdS5jCmluZGV4IGU1ZWQwOTEuLmZmZTliNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci92cjQxeHhfZ2l1LmMKKysrIGIvZHJpdmVycy9jaGFyL3ZyNDF4eF9naXUuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCkBAIC01NDcsNiArNTQ4LDcgQEAKIHsKIAl1bnNpZ25lZCBpbnQgcGluOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlwaW4gPSBpbWlub3IoaW5vZGUpOwogCWlmIChwaW4gPj0gZ2l1X25yX3BpbnMpCiAJCXJldHVybiAtRUJBREY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIveGlsaW54X2h3aWNhcC94aWxpbnhfaHdpY2FwLmMgYi9kcml2ZXJzL2NoYXIveGlsaW54X2h3aWNhcC94aWxpbnhfaHdpY2FwLmMKaW5kZXggM2VkZjFmYy4uMWUxYjgxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3hpbGlueF9od2ljYXAveGlsaW54X2h3aWNhcC5jCisrKyBiL2RyaXZlcnMvY2hhci94aWxpbnhfaHdpY2FwL3hpbGlueF9od2ljYXAuYwpAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgogI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgpAQCAtNTA0LDExICs1MDUsMTIgQEAKIAlzdHJ1Y3QgaHdpY2FwX2RydmRhdGEgKmRydmRhdGE7CiAJaW50IHN0YXR1czsKIAorCWxvY2tfa2VybmVsKCk7CiAJZHJ2ZGF0YSA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LCBzdHJ1Y3QgaHdpY2FwX2RydmRhdGEsIGNkZXYpOwogCiAJc3RhdHVzID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkcnZkYXRhLT5zZW0pOwogCWlmIChzdGF0dXMpCi0JCXJldHVybiBzdGF0dXM7CisJCWdvdG8gb3V0OwogCiAJaWYgKGRydmRhdGEtPmlzX29wZW4pIHsKIAkJc3RhdHVzID0gLUVCVVNZOwpAQCAtNTI4LDYgKzUzMCw4IEBACiAKICBlcnJvcjoKIAltdXRleF91bmxvY2soJmRydmRhdGEtPnNlbSk7Cisgb3V0OgorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsb2Nrc291cmNlL2FjcGlfcG0uYyBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvYWNwaV9wbS5jCmluZGV4IDdiNDZmYWYuLjVjYTFkODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvYWNwaV9wbS5jCisrKyBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvYWNwaV9wbS5jCkBAIC0yMTUsMyArMjE1LDIyIEBACiAgKiBidXQgd2Ugc3RpbGwgbmVlZCB0byBsb2FkIGJlZm9yZSBkZXZpY2VfaW5pdGNhbGwKICAqLwogZnNfaW5pdGNhbGwoaW5pdF9hY3BpX3BtX2Nsb2Nrc291cmNlKTsKKworLyoKKyAqIEFsbG93IGFuIG92ZXJyaWRlIG9mIHRoZSBJT1BvcnQuIFN0dXBpZCBCSU9TZXMgZG8gbm90IHRlbGwgdXMgYWJvdXQKKyAqIHRoZSBQTVRpbWVyLCBidXQgd2UgbWlnaHQga25vdyB3aGVyZSBpdCBpcy4KKyAqLworc3RhdGljIGludCBfX2luaXQgcGFyc2VfcG10bXIoY2hhciAqYXJnKQoreworCXVuc2lnbmVkIGxvbmcgYmFzZTsKKworCWlmIChzdHJpY3Rfc3RydG91bChhcmcsIDE2LCAmYmFzZSkpCisJCXJldHVybiAtRUlOVkFMOworCisJcHJpbnRrKEtFUk5fSU5GTyAiUE1UTVIgSU9Qb3J0IG92ZXJyaWRlOiAweCUwNHggLT4gMHglMDRseFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClwbXRtcl9pb3BvcnQsIGJhc2UpOworCXBtdG1yX2lvcG9ydCA9IGJhc2U7CisKKwlyZXR1cm4gMTsKK30KK19fc2V0dXAoInBtdG1yPSIsIHBhcnNlX3BtdG1yKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29ubmVjdG9yL2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9jb25uZWN0b3IvY29ubmVjdG9yLmMKaW5kZXggODVlMmJhNy4uYmY0ODMwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jb25uZWN0b3IvY29ubmVjdG9yLmMKKysrIGIvZHJpdmVycy9jb25uZWN0b3IvY29ubmVjdG9yLmMKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2Nvbm5lY3Rvci5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAKICNpbmNsdWRlIDxuZXQvc29jay5oPgogCkBAIC00MDMsNiArNDA1LDQwIEBACiAJbXV0ZXhfdW5sb2NrKCZub3RpZnlfbG9jayk7CiB9CiAKK3N0YXRpYyBpbnQgY25fcHJvY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKKwlzdHJ1Y3QgY25fcXVldWVfZGV2ICpkZXYgPSBjZGV2LmNiZGV2OworCXN0cnVjdCBjbl9jYWxsYmFja19lbnRyeSAqY2JxOworCisJc2VxX3ByaW50ZihtLCAiTmFtZSAgICAgICAgICAgIElEXG4iKTsKKworCXNwaW5fbG9ja19iaCgmZGV2LT5xdWV1ZV9sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2JxLCAmZGV2LT5xdWV1ZV9saXN0LCBjYWxsYmFja19lbnRyeSkgeworCQlzZXFfcHJpbnRmKG0sICIlLTE1cyAldToldVxuIiwKKwkJCSAgIGNicS0+aWQubmFtZSwKKwkJCSAgIGNicS0+aWQuaWQuaWR4LAorCQkJICAgY2JxLT5pZC5pZC52YWwpOworCX0KKworCXNwaW5fdW5sb2NrX2JoKCZkZXYtPnF1ZXVlX2xvY2spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY25fcHJvY19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBjbl9wcm9jX3Nob3csIE5VTEwpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBjbl9maWxlX29wcyA9IHsKKwkub3duZXIgICA9IFRISVNfTU9EVUxFLAorCS5vcGVuICAgID0gY25fcHJvY19vcGVuLAorCS5yZWFkICAgID0gc2VxX3JlYWQsCisJLmxsc2VlayAgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBzaW5nbGVfcmVsZWFzZQorfTsKKwogc3RhdGljIGludCBfX2RldmluaXQgY25faW5pdCh2b2lkKQogewogCXN0cnVjdCBjbl9kZXYgKmRldiA9ICZjZGV2OwpAQCAtNDM0LDYgKzQ3MCw4IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAorCXByb2NfbmV0X2ZvcHNfY3JlYXRlKCZpbml0X25ldCwgImNvbm5lY3RvciIsIFNfSVJVR08sICZjbl9maWxlX29wcyk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDQzLDYgKzQ4MSw4IEBACiAKIAljbl9hbHJlYWR5X2luaXRpYWxpemVkID0gMDsKIAorCXByb2NfbmV0X3JlbW92ZSgmaW5pdF9uZXQsICJjb25uZWN0b3IiKTsKKwogCWNuX2RlbF9jYWxsYmFjaygmZGV2LT5pZCk7CiAJY25fcXVldWVfZnJlZV9kZXYoZGV2LT5jYmRldik7CiAJbmV0bGlua19rZXJuZWxfcmVsZWFzZShkZXYtPm5scyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9LY29uZmlnIGIvZHJpdmVycy9jcnlwdG8vS2NvbmZpZwppbmRleCA0M2I3MWI2Li5lNTIyMTQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NyeXB0by9LY29uZmlnCisrKyBiL2RyaXZlcnMvY3J5cHRvL0tjb25maWcKQEAgLTE3NCw0ICsxNzQsMzAgQEAKIAkgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBlbmFibGUgdGhlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCiAJICBvbiB0aGUgSElGTiA3OTV4IGNyeXB0byBhZGFwdGVycy4KIAorY29uZmlnIENSWVBUT19ERVZfVEFMSVRPUworCXRyaXN0YXRlICJUYWxpdG9zIEZyZWVzY2FsZSBTZWN1cml0eSBFbmdpbmUgKFNFQykiCisJc2VsZWN0IENSWVBUT19BTEdBUEkKKwlzZWxlY3QgQ1JZUFRPX0FVVEhFTkMKKwlzZWxlY3QgSFdfUkFORE9NCisJZGVwZW5kcyBvbiBGU0xfU09DCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIHRvIHVzZSB0aGUgRnJlZXNjYWxlIFNlY3VyaXR5IEVuZ2luZSAoU0VDKQorCSAgdG8gb2ZmbG9hZCBjcnlwdG9ncmFwaGljIGFsZ29yaXRobSBjb21wdXRhdGlvbi4KKworCSAgVGhlIEZyZWVzY2FsZSBTRUMgaXMgcHJlc2VudCBvbiBQb3dlclFVSUNDICdFJyBwcm9jZXNzb3JzLCBzdWNoCisJICBhcyB0aGUgTVBDODM0OUUgYW5kIE1QQzg1NDhFLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCB0YWxpdG9zLgorCitjb25maWcgQ1JZUFRPX0RFVl9JWFA0WFgKKwl0cmlzdGF0ZSAiRHJpdmVyIGZvciBJWFA0eHggY3J5cHRvIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiIKKwlkZXBlbmRzIG9uIEFSQ0hfSVhQNFhYCisJc2VsZWN0IENSWVBUT19ERVMKKwlzZWxlY3QgQ1JZUFRPX0FMR0FQSQorCXNlbGVjdCBDUllQVE9fQVVUSEVOQworCXNlbGVjdCBDUllQVE9fQkxLQ0lQSEVSCisJaGVscAorCSAgRHJpdmVyIGZvciB0aGUgSVhQNHh4IE5QRSBjcnlwdG8gZW5naW5lLgorCiBlbmRpZiAjIENSWVBUT19IVwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vTWFrZWZpbGUgYi9kcml2ZXJzL2NyeXB0by9NYWtlZmlsZQppbmRleCBjMDMyN2YwLi43MzU1N2IyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NyeXB0by9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2NyeXB0by9NYWtlZmlsZQpAQCAtMiwzICsyLDUgQEAKIG9iai0kKENPTkZJR19DUllQVE9fREVWX1BBRExPQ0tfU0hBKSArPSBwYWRsb2NrLXNoYS5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0RFVl9HRU9ERSkgKz0gZ2VvZGUtYWVzLm8KIG9iai0kKENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCkgKz0gaGlmbl83OTV4Lm8KK29iai0kKENPTkZJR19DUllQVE9fREVWX1RBTElUT1MpICs9IHRhbGl0b3Mubworb2JqLSQoQ09ORklHX0NSWVBUT19ERVZfSVhQNFhYKSArPSBpeHA0eHhfY3J5cHRvLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2hpZm5fNzk1eC5jIGIvZHJpdmVycy9jcnlwdG8vaGlmbl83OTV4LmMKaW5kZXggODFmM2Y5NS4uNGQyMmIyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vaGlmbl83OTV4LmMKKysrIGIvZHJpdmVycy9jcnlwdG8vaGlmbl83OTV4LmMKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgogI2luY2x1ZGUgPGxpbnV4L2h3X3JhbmRvbS5oPgogI2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+CkBAIC0zNjksNyArMzY4LDkgQEAKICNkZWZpbmUJSElGTl9EX0RTVF9SU0laRQkJODAqNAogI2RlZmluZQlISUZOX0RfUkVTX1JTSVpFCQkyNCo0CiAKLSNkZWZpbmUgSElGTl9RVUVVRV9MRU5HVEgJCUhJRk5fRF9DTURfUlNJWkUtNQorI2RlZmluZSBISUZOX0RfRFNUX0RBTElHTgkJNAorCisjZGVmaW5lIEhJRk5fUVVFVUVfTEVOR1RICQlISUZOX0RfQ01EX1JTSVpFLTEKIAogI2RlZmluZSBBRVNfTUlOX0tFWV9TSVpFCQkxNgogI2RlZmluZSBBRVNfTUFYX0tFWV9TSVpFCQkzMgpAQCAtNTM1LDEwICs1MzYsMTAgQEAKICAqLwogc3RydWN0IGhpZm5fbWFjX2NvbW1hbmQKIHsKLQl2b2xhdGlsZSB1MTYgCQltYXNrczsKLQl2b2xhdGlsZSB1MTYgCQloZWFkZXJfc2tpcDsKLQl2b2xhdGlsZSB1MTYgCQlzb3VyY2VfY291bnQ7Ci0Jdm9sYXRpbGUgdTE2IAkJcmVzZXJ2ZWQ7CisJdm9sYXRpbGUgX19sZTE2IAltYXNrczsKKwl2b2xhdGlsZSBfX2xlMTYgCWhlYWRlcl9za2lwOworCXZvbGF0aWxlIF9fbGUxNiAJc291cmNlX2NvdW50OworCXZvbGF0aWxlIF9fbGUxNiAJcmVzZXJ2ZWQ7CiB9OwogCiAjZGVmaW5lCUhJRk5fTUFDX0NNRF9BTEdfTUFTSwkJMHgwMDAxCkBAIC01NjQsMTAgKzU2NSwxMCBAQAogCiBzdHJ1Y3QgaGlmbl9jb21wX2NvbW1hbmQKIHsKLQl2b2xhdGlsZSB1MTYgCQltYXNrczsKLQl2b2xhdGlsZSB1MTYgCQloZWFkZXJfc2tpcDsKLQl2b2xhdGlsZSB1MTYgCQlzb3VyY2VfY291bnQ7Ci0Jdm9sYXRpbGUgdTE2IAkJcmVzZXJ2ZWQ7CisJdm9sYXRpbGUgX19sZTE2IAltYXNrczsKKwl2b2xhdGlsZSBfX2xlMTYgCWhlYWRlcl9za2lwOworCXZvbGF0aWxlIF9fbGUxNiAJc291cmNlX2NvdW50OworCXZvbGF0aWxlIF9fbGUxNiAJcmVzZXJ2ZWQ7CiB9OwogCiAjZGVmaW5lCUhJRk5fQ09NUF9DTURfU1JDTEVOX00JCTB4YzAwMApAQCAtNTgzLDEwICs1ODQsMTAgQEAKIAogc3RydWN0IGhpZm5fYmFzZV9yZXN1bHQKIHsKLQl2b2xhdGlsZSB1MTYgCQlmbGFnczsKLQl2b2xhdGlsZSB1MTYgCQlzZXNzaW9uOwotCXZvbGF0aWxlIHUxNiAJCXNyY19jbnQ7CQkvKiAxNTowIG9mIHNvdXJjZSBjb3VudCAqLwotCXZvbGF0aWxlIHUxNiAJCWRzdF9jbnQ7CQkvKiAxNTowIG9mIGRlc3QgY291bnQgKi8KKwl2b2xhdGlsZSBfX2xlMTYgCWZsYWdzOworCXZvbGF0aWxlIF9fbGUxNiAJc2Vzc2lvbjsKKwl2b2xhdGlsZSBfX2xlMTYgCXNyY19jbnQ7CQkvKiAxNTowIG9mIHNvdXJjZSBjb3VudCAqLworCXZvbGF0aWxlIF9fbGUxNiAJZHN0X2NudDsJCS8qIDE1OjAgb2YgZGVzdCBjb3VudCAqLwogfTsKIAogI2RlZmluZQlISUZOX0JBU0VfUkVTX0RTVE9WRVJSVU4JMHgwMjAwCS8qIGRlc3RpbmF0aW9uIG92ZXJydW4gKi8KQEAgLTU5Nyw4ICs1OTgsOCBAQAogCiBzdHJ1Y3QgaGlmbl9jb21wX3Jlc3VsdAogewotCXZvbGF0aWxlIHUxNiAJCWZsYWdzOwotCXZvbGF0aWxlIHUxNiAJCWNyYzsKKwl2b2xhdGlsZSBfX2xlMTYJCWZsYWdzOworCXZvbGF0aWxlIF9fbGUxNgkJY3JjOwogfTsKIAogI2RlZmluZQlISUZOX0NPTVBfUkVTX0xDQl9NCQkweGZmMDAJLyogbG9uZ2l0dWRpbmFsIGNoZWNrIGJ5dGUgKi8KQEAgLTYwOSw4ICs2MTAsOCBAQAogCiBzdHJ1Y3QgaGlmbl9tYWNfcmVzdWx0CiB7Ci0Jdm9sYXRpbGUgdTE2IAkJZmxhZ3M7Ci0Jdm9sYXRpbGUgdTE2IAkJcmVzZXJ2ZWQ7CisJdm9sYXRpbGUgX19sZTE2IAlmbGFnczsKKwl2b2xhdGlsZSBfX2xlMTYgCXJlc2VydmVkOwogCS8qIGZvbGxvd2VkIGJ5IDAsIDYsIDgsIG9yIDEwIHUxNidzIG9mIHRoZSBNQUMsIHRoZW4gY3J5cHQgKi8KIH07CiAKQEAgLTYxOSw4ICs2MjAsOCBAQAogCiBzdHJ1Y3QgaGlmbl9jcnlwdF9yZXN1bHQKIHsKLQl2b2xhdGlsZSB1MTYgCQlmbGFnczsKLQl2b2xhdGlsZSB1MTYgCQlyZXNlcnZlZDsKKwl2b2xhdGlsZSBfX2xlMTYJCWZsYWdzOworCXZvbGF0aWxlIF9fbGUxNgkJcmVzZXJ2ZWQ7CiB9OwogCiAjZGVmaW5lCUhJRk5fQ1JZUFRfUkVTX1NSQ19OT1RaRVJPCTB4MDAwMQkvKiBzb3VyY2UgZXhwaXJlZCAqLwpAQCAtNjg2LDEyICs2ODcsMTIgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIGhpZm5fd3JpdGVfMChzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIHZhbCkKIHsKLQl3cml0ZWwodmFsLCBkZXYtPmJhclswXSArIHJlZyk7CisJd3JpdGVsKChfX2ZvcmNlIHUzMiljcHVfdG9fbGUzMih2YWwpLCBkZXYtPmJhclswXSArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBoaWZuX3dyaXRlXzEoc3RydWN0IGhpZm5fZGV2aWNlICpkZXYsIHUzMiByZWcsIHUzMiB2YWwpCiB7Ci0Jd3JpdGVsKHZhbCwgZGV2LT5iYXJbMV0gKyByZWcpOworCXdyaXRlbCgoX19mb3JjZSB1MzIpY3B1X3RvX2xlMzIodmFsKSwgZGV2LT5iYXJbMV0gKyByZWcpOwogfQogCiBzdGF0aWMgdm9pZCBoaWZuX3dhaXRfcHVjKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2KQpAQCAtODk0LDcgKzg5NSw3IEBACiAJY2hhciAqb2ZmdGJsID0gTlVMTDsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBzaXplb2YocGNpMmlkKS9zaXplb2YocGNpMmlkWzBdKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocGNpMmlkKTsgaSsrKSB7CiAJCWlmIChwY2kyaWRbaV0ucGNpX3ZlbmRvciA9PSBkZXYtPnBkZXYtPnZlbmRvciAmJgogCQkJCXBjaTJpZFtpXS5wY2lfcHJvZCA9PSBkZXYtPnBkZXYtPmRldmljZSkgewogCQkJb2ZmdGJsID0gcGNpMmlkW2ldLmNhcmRfaWQ7CkBAIC0xMDM3LDE0ICsxMDM4LDE0IEBACiAJaGlmbl93cml0ZV8wKGRldiwgSElGTl8wX1BVSUVSLCBISUZOX1BVSUVSX0RTVE9WRVIpOwogCiAJLyogd3JpdGUgYWxsIDQgcmluZyBhZGRyZXNzIHJlZ2lzdGVycyAqLwotCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1JBUiwgX19jcHVfdG9fbGUzMihkcHRyICsKLQkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIGNtZHJbMF0pKSk7Ci0JaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9TUkFSLCBfX2NwdV90b19sZTMyKGRwdHIgKwotCQkJCW9mZnNldG9mKHN0cnVjdCBoaWZuX2RtYSwgc3JjclswXSkpKTsKLQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0RSQVIsIF9fY3B1X3RvX2xlMzIoZHB0ciArCi0JCQkJb2Zmc2V0b2Yoc3RydWN0IGhpZm5fZG1hLCBkc3RyWzBdKSkpOwotCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfUlJBUiwgX19jcHVfdG9fbGUzMihkcHRyICsKLQkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIHJlc3JbMF0pKSk7CisJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9DUkFSLCBkcHRyICsKKwkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIGNtZHJbMF0pKTsKKwloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX1NSQVIsIGRwdHIgKworCQkJCW9mZnNldG9mKHN0cnVjdCBoaWZuX2RtYSwgc3JjclswXSkpOworCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfRFJBUiwgZHB0ciArCisJCQkJb2Zmc2V0b2Yoc3RydWN0IGhpZm5fZG1hLCBkc3RyWzBdKSk7CisJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9SUkFSLCBkcHRyICsKKwkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIHJlc3JbMF0pKTsKIAogCW1kZWxheSgyKTsKICNpZiAwCkBAIC0xMTY2LDEwOSArMTE2NywxNSBAQAogCXJldHVybiBjbWRfbGVuOwogfQogCi1zdGF0aWMgaW50IGhpZm5fc2V0dXBfc3JjX2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAotCQl1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgc2l6ZSkKLXsKLQlzdHJ1Y3QgaGlmbl9kbWEgKmRtYSA9IChzdHJ1Y3QgaGlmbl9kbWEgKilkZXYtPmRlc2NfdmlydDsKLQlpbnQgaWR4OwotCWRtYV9hZGRyX3QgYWRkcjsKLQotCWFkZHIgPSBwY2lfbWFwX3BhZ2UoZGV2LT5wZGV2LCBwYWdlLCBvZmZzZXQsIHNpemUsIFBDSV9ETUFfVE9ERVZJQ0UpOwotCi0JaWR4ID0gZG1hLT5zcmNpOwotCi0JZG1hLT5zcmNyW2lkeF0ucCA9IF9fY3B1X3RvX2xlMzIoYWRkcik7Ci0JZG1hLT5zcmNyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoc2l6ZSkgfCBISUZOX0RfVkFMSUQgfAotCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX05PSU5WQUxJRCB8IEhJRk5fRF9MQVNUOwotCi0JaWYgKCsraWR4ID09IEhJRk5fRF9TUkNfUlNJWkUpIHsKLQkJZG1hLT5zcmNyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9EX1ZBTElEIHwKLQkJCQlISUZOX0RfSlVNUCB8Ci0JCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOwotCQlpZHggPSAwOwotCX0KLQotCWRtYS0+c3JjaSA9IGlkeDsKLQlkbWEtPnNyY3UrKzsKLQotCWlmICghKGRldi0+ZmxhZ3MgJiBISUZOX0ZMQUdfU1JDX0JVU1kpKSB7Ci0JCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1NSLCBISUZOX0RNQUNTUl9TX0NUUkxfRU5BKTsKLQkJZGV2LT5mbGFncyB8PSBISUZOX0ZMQUdfU1JDX0JVU1k7Ci0JfQotCi0JcmV0dXJuIHNpemU7Ci19Ci0KLXN0YXRpYyB2b2lkIGhpZm5fc2V0dXBfcmVzX2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7Ci0KLQlkbWEtPnJlc3JbZG1hLT5yZXNpXS5sID0gX19jcHVfdG9fbGUzMihISUZOX1VTRURfUkVTVUxUIHwKLQkJCUhJRk5fRF9WQUxJRCB8IEhJRk5fRF9MQVNUKTsKLQkvKgotCSAqIGRtYS0+cmVzcltkbWEtPnJlc2ldLmwgPSBfX2NwdV90b19sZTMyKEhJRk5fTUFYX1JFU1VMVCB8IEhJRk5fRF9WQUxJRCB8Ci0JICoJCQkJCUhJRk5fRF9MQVNUIHwgSElGTl9EX05PSU5WQUxJRCk7Ci0JICovCi0KLQlpZiAoKytkbWEtPnJlc2kgPT0gSElGTl9EX1JFU19SU0laRSkgewotCQlkbWEtPnJlc3JbSElGTl9EX1JFU19SU0laRV0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9EX1ZBTElEIHwKLQkJCQlISUZOX0RfSlVNUCB8IEhJRk5fRF9NQVNLRE9ORUlSUSB8IEhJRk5fRF9MQVNUKTsKLQkJZG1hLT5yZXNpID0gMDsKLQl9Ci0KLQlkbWEtPnJlc3UrKzsKLQotCWlmICghKGRldi0+ZmxhZ3MgJiBISUZOX0ZMQUdfUkVTX0JVU1kpKSB7Ci0JCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1NSLCBISUZOX0RNQUNTUl9SX0NUUkxfRU5BKTsKLQkJZGV2LT5mbGFncyB8PSBISUZOX0ZMQUdfUkVTX0JVU1k7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBoaWZuX3NldHVwX2RzdF9kZXNjKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKLQkJdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBzaXplKQotewotCXN0cnVjdCBoaWZuX2RtYSAqZG1hID0gKHN0cnVjdCBoaWZuX2RtYSAqKWRldi0+ZGVzY192aXJ0OwotCWludCBpZHg7Ci0JZG1hX2FkZHJfdCBhZGRyOwotCi0JYWRkciA9IHBjaV9tYXBfcGFnZShkZXYtPnBkZXYsIHBhZ2UsIG9mZnNldCwgc2l6ZSwgUENJX0RNQV9GUk9NREVWSUNFKTsKLQotCWlkeCA9IGRtYS0+ZHN0aTsKLQlkbWEtPmRzdHJbaWR4XS5wID0gX19jcHVfdG9fbGUzMihhZGRyKTsKLQlkbWEtPmRzdHJbaWR4XS5sID0gX19jcHVfdG9fbGUzMihzaXplIHwJSElGTl9EX1ZBTElEIHwKLQkJCUhJRk5fRF9NQVNLRE9ORUlSUSB8IEhJRk5fRF9OT0lOVkFMSUQgfCBISUZOX0RfTEFTVCk7Ci0KLQlpZiAoKytpZHggPT0gSElGTl9EX0RTVF9SU0laRSkgewotCQlkbWEtPmRzdHJbaWR4XS5sID0gX19jcHVfdG9fbGUzMihISUZOX0RfVkFMSUQgfAotCQkJCUhJRk5fRF9KVU1QIHwgSElGTl9EX01BU0tET05FSVJRIHwKLQkJCQlISUZOX0RfTEFTVCB8IEhJRk5fRF9OT0lOVkFMSUQpOwotCQlpZHggPSAwOwotCX0KLQlkbWEtPmRzdGkgPSBpZHg7Ci0JZG1hLT5kc3R1Kys7Ci0KLQlpZiAoIShkZXYtPmZsYWdzICYgSElGTl9GTEFHX0RTVF9CVVNZKSkgewotCQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0NTUiwgSElGTl9ETUFDU1JfRF9DVFJMX0VOQSk7Ci0JCWRldi0+ZmxhZ3MgfD0gSElGTl9GTEFHX0RTVF9CVVNZOwotCX0KLX0KLQotc3RhdGljIGludCBoaWZuX3NldHVwX2RtYShzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnNwYWdlLCB1bnNpZ25lZCBpbnQgc29mZiwKLQkJc3RydWN0IHBhZ2UgKmRwYWdlLCB1bnNpZ25lZCBpbnQgZG9mZiwgdW5zaWduZWQgaW50IG5ieXRlcywgdm9pZCAqcHJpdiwKLQkJc3RydWN0IGhpZm5fY29udGV4dCAqY3R4KQorc3RhdGljIGludCBoaWZuX3NldHVwX2NtZF9kZXNjKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2LAorCQlzdHJ1Y3QgaGlmbl9jb250ZXh0ICpjdHgsIHZvaWQgKnByaXYsIHVuc2lnbmVkIGludCBuYnl0ZXMpCiB7CiAJc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7CiAJaW50IGNtZF9sZW4sIHNhX2lkeDsKIAl1OCAqYnVmLCAqYnVmX3BvczsKIAl1MTYgbWFzazsKIAotCWRwcmludGsoIiVzOiBzcGFnZTogJXAsIHNvZmZzZXQ6ICV1LCBkcGFnZTogJXAsIGRvZmZzZXQ6ICV1LCBuYnl0ZXM6ICV1LCBwcml2OiAlcCwgY3R4OiAlcC5cbiIsCi0JCQlkZXYtPm5hbWUsIHNwYWdlLCBzb2ZmLCBkcGFnZSwgZG9mZiwgbmJ5dGVzLCBwcml2LCBjdHgpOwotCi0Jc2FfaWR4ID0gZG1hLT5yZXNpOwotCi0JaGlmbl9zZXR1cF9zcmNfZGVzYyhkZXYsIHNwYWdlLCBzb2ZmLCBuYnl0ZXMpOwotCisJc2FfaWR4ID0gZG1hLT5jbWRpOwogCWJ1Zl9wb3MgPSBidWYgPSBkbWEtPmNvbW1hbmRfYnVmc1tkbWEtPmNtZGldOwogCiAJbWFzayA9IDA7CkBAIC0xMzcwLDE2ICsxMjc3LDExMyBAQAogCQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0NTUiwgSElGTl9ETUFDU1JfQ19DVFJMX0VOQSk7CiAJCWRldi0+ZmxhZ3MgfD0gSElGTl9GTEFHX0NNRF9CVVNZOwogCX0KLQotCWhpZm5fc2V0dXBfZHN0X2Rlc2MoZGV2LCBkcGFnZSwgZG9mZiwgbmJ5dGVzKTsKLQloaWZuX3NldHVwX3Jlc19kZXNjKGRldik7Ci0KIAlyZXR1cm4gMDsKIAogZXJyX291dDoKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAorc3RhdGljIGludCBoaWZuX3NldHVwX3NyY19kZXNjKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKKwkJdW5zaWduZWQgaW50IG9mZnNldCwgdW5zaWduZWQgaW50IHNpemUpCit7CisJc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7CisJaW50IGlkeDsKKwlkbWFfYWRkcl90IGFkZHI7CisKKwlhZGRyID0gcGNpX21hcF9wYWdlKGRldi0+cGRldiwgcGFnZSwgb2Zmc2V0LCBzaXplLCBQQ0lfRE1BX1RPREVWSUNFKTsKKworCWlkeCA9IGRtYS0+c3JjaTsKKworCWRtYS0+c3JjcltpZHhdLnAgPSBfX2NwdV90b19sZTMyKGFkZHIpOworCWRtYS0+c3JjcltpZHhdLmwgPSBfX2NwdV90b19sZTMyKHNpemUgfCBISUZOX0RfVkFMSUQgfAorCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOworCisJaWYgKCsraWR4ID09IEhJRk5fRF9TUkNfUlNJWkUpIHsKKwkJZG1hLT5zcmNyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9EX1ZBTElEIHwKKwkJCQlISUZOX0RfSlVNUCB8CisJCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOworCQlpZHggPSAwOworCX0KKworCWRtYS0+c3JjaSA9IGlkeDsKKwlkbWEtPnNyY3UrKzsKKworCWlmICghKGRldi0+ZmxhZ3MgJiBISUZOX0ZMQUdfU1JDX0JVU1kpKSB7CisJCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1NSLCBISUZOX0RNQUNTUl9TX0NUUkxfRU5BKTsKKwkJZGV2LT5mbGFncyB8PSBISUZOX0ZMQUdfU1JDX0JVU1k7CisJfQorCisJcmV0dXJuIHNpemU7Cit9CisKK3N0YXRpYyB2b2lkIGhpZm5fc2V0dXBfcmVzX2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7CisKKwlkbWEtPnJlc3JbZG1hLT5yZXNpXS5sID0gX19jcHVfdG9fbGUzMihISUZOX1VTRURfUkVTVUxUIHwKKwkJCUhJRk5fRF9WQUxJRCB8IEhJRk5fRF9MQVNUKTsKKwkvKgorCSAqIGRtYS0+cmVzcltkbWEtPnJlc2ldLmwgPSBfX2NwdV90b19sZTMyKEhJRk5fTUFYX1JFU1VMVCB8IEhJRk5fRF9WQUxJRCB8CisJICoJCQkJCUhJRk5fRF9MQVNUKTsKKwkgKi8KKworCWlmICgrK2RtYS0+cmVzaSA9PSBISUZOX0RfUkVTX1JTSVpFKSB7CisJCWRtYS0+cmVzcltISUZOX0RfUkVTX1JTSVpFXS5sID0gX19jcHVfdG9fbGUzMihISUZOX0RfVkFMSUQgfAorCQkJCUhJRk5fRF9KVU1QIHwgSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOworCQlkbWEtPnJlc2kgPSAwOworCX0KKworCWRtYS0+cmVzdSsrOworCisJaWYgKCEoZGV2LT5mbGFncyAmIEhJRk5fRkxBR19SRVNfQlVTWSkpIHsKKwkJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9DU1IsIEhJRk5fRE1BQ1NSX1JfQ1RSTF9FTkEpOworCQlkZXYtPmZsYWdzIHw9IEhJRk5fRkxBR19SRVNfQlVTWTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGhpZm5fc2V0dXBfZHN0X2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAorCQl1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIHNpemUpCit7CisJc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7CisJaW50IGlkeDsKKwlkbWFfYWRkcl90IGFkZHI7CisKKwlhZGRyID0gcGNpX21hcF9wYWdlKGRldi0+cGRldiwgcGFnZSwgb2Zmc2V0LCBzaXplLCBQQ0lfRE1BX0ZST01ERVZJQ0UpOworCisJaWR4ID0gZG1hLT5kc3RpOworCWRtYS0+ZHN0cltpZHhdLnAgPSBfX2NwdV90b19sZTMyKGFkZHIpOworCWRtYS0+ZHN0cltpZHhdLmwgPSBfX2NwdV90b19sZTMyKHNpemUgfAlISUZOX0RfVkFMSUQgfAorCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOworCisJaWYgKCsraWR4ID09IEhJRk5fRF9EU1RfUlNJWkUpIHsKKwkJZG1hLT5kc3RyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9EX1ZBTElEIHwKKwkJCQlISUZOX0RfSlVNUCB8IEhJRk5fRF9NQVNLRE9ORUlSUSB8CisJCQkJSElGTl9EX0xBU1QpOworCQlpZHggPSAwOworCX0KKwlkbWEtPmRzdGkgPSBpZHg7CisJZG1hLT5kc3R1Kys7CisKKwlpZiAoIShkZXYtPmZsYWdzICYgSElGTl9GTEFHX0RTVF9CVVNZKSkgeworCQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0NTUiwgSElGTl9ETUFDU1JfRF9DVFJMX0VOQSk7CisJCWRldi0+ZmxhZ3MgfD0gSElGTl9GTEFHX0RTVF9CVVNZOworCX0KK30KKworc3RhdGljIGludCBoaWZuX3NldHVwX2RtYShzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnNwYWdlLCB1bnNpZ25lZCBpbnQgc29mZiwKKwkJc3RydWN0IHBhZ2UgKmRwYWdlLCB1bnNpZ25lZCBpbnQgZG9mZiwgdW5zaWduZWQgaW50IG5ieXRlcywgdm9pZCAqcHJpdiwKKwkJc3RydWN0IGhpZm5fY29udGV4dCAqY3R4KQoreworCWRwcmludGsoIiVzOiBzcGFnZTogJXAsIHNvZmZzZXQ6ICV1LCBkcGFnZTogJXAsIGRvZmZzZXQ6ICV1LCBuYnl0ZXM6ICV1LCBwcml2OiAlcCwgY3R4OiAlcC5cbiIsCisJCQlkZXYtPm5hbWUsIHNwYWdlLCBzb2ZmLCBkcGFnZSwgZG9mZiwgbmJ5dGVzLCBwcml2LCBjdHgpOworCisJaGlmbl9zZXR1cF9zcmNfZGVzYyhkZXYsIHNwYWdlLCBzb2ZmLCBuYnl0ZXMpOworCWhpZm5fc2V0dXBfY21kX2Rlc2MoZGV2LCBjdHgsIHByaXYsIG5ieXRlcyk7CisJaGlmbl9zZXR1cF9kc3RfZGVzYyhkZXYsIGRwYWdlLCBkb2ZmLCBuYnl0ZXMpOworCWhpZm5fc2V0dXBfcmVzX2Rlc2MoZGV2KTsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBhYmxrY2lwaGVyX3dhbGtfaW5pdChzdHJ1Y3QgYWJsa2NpcGhlcl93YWxrICp3LAogCQlpbnQgbnVtLCBnZnBfdCBnZnBfZmxhZ3MpCiB7CkBAIC0xNDMxLDcgKzE0MzUsNyBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXdoaWxlIChzaXplKSB7Ci0JCWNvcHkgPSBtaW4oZHJlc3QsIHNyYy0+bGVuZ3RoKTsKKwkJY29weSA9IG1pbihkcmVzdCwgbWluKHNpemUsIHNyYy0+bGVuZ3RoKSk7CiAKIAkJc2FkZHIgPSBrbWFwX2F0b21pYyhzZ19wYWdlKHNyYyksIEtNX1NPRlRJUlExKTsKIAkJbWVtY3B5KGRhZGRyLCBzYWRkciArIHNyYy0+b2Zmc2V0LCBjb3B5KTsKQEAgLTE0NTgsMTAgKzE0NjIsNiBAQAogc3RhdGljIGludCBhYmxrY2lwaGVyX3dhbGsoc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxLAogCQlzdHJ1Y3QgYWJsa2NpcGhlcl93YWxrICp3KQogewotCXVuc2lnbmVkIGJsb2Nrc2l6ZSA9Ci0JCWNyeXB0b19hYmxrY2lwaGVyX2Jsb2Nrc2l6ZShjcnlwdG9fYWJsa2NpcGhlcl9yZXF0Zm0ocmVxKSk7Ci0JdW5zaWduZWQgYWxpZ25tYXNrID0KLQkJY3J5cHRvX2FibGtjaXBoZXJfYWxpZ25tYXNrKGNyeXB0b19hYmxrY2lwaGVyX3JlcXRmbShyZXEpKTsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNyYywgKmRzdCwgKnQ7CiAJdm9pZCAqZGFkZHI7CiAJdW5zaWduZWQgaW50IG5ieXRlcyA9IHJlcS0+bmJ5dGVzLCBvZmZzZXQsIGNvcHksIGRpZmY7CkBAIC0xNDc3LDE2ICsxNDc3LDE0IEBACiAJCWRzdCA9ICZyZXEtPmRzdFtpZHhdOwogCiAJCWRwcmludGsoIlxuJXM6IHNsZW46ICV1LCBkbGVuOiAldSwgc29mZjogJXUsIGRvZmY6ICV1LCBvZmZzZXQ6ICV1LCAiCi0JCQkJImJsb2Nrc2l6ZTogJXUsIG5ieXRlczogJXUuXG4iLAorCQkJCSJuYnl0ZXM6ICV1LlxuIiwKIAkJCQlfX2Z1bmNfXywgc3JjLT5sZW5ndGgsIGRzdC0+bGVuZ3RoLCBzcmMtPm9mZnNldCwKLQkJCQlkc3QtPm9mZnNldCwgb2Zmc2V0LCBibG9ja3NpemUsIG5ieXRlcyk7CisJCQkJZHN0LT5vZmZzZXQsIG9mZnNldCwgbmJ5dGVzKTsKIAotCQlpZiAoc3JjLT5sZW5ndGggJiAoYmxvY2tzaXplIC0gMSkgfHwKLQkJCQlzcmMtPm9mZnNldCAmIChhbGlnbm1hc2sgLSAxKSB8fAotCQkJCWRzdC0+bGVuZ3RoICYgKGJsb2Nrc2l6ZSAtIDEpIHx8Ci0JCQkJZHN0LT5vZmZzZXQgJiAoYWxpZ25tYXNrIC0gMSkgfHwKLQkJCQlvZmZzZXQpIHsKLQkJCXVuc2lnbmVkIHNsZW4gPSBzcmMtPmxlbmd0aCAtIG9mZnNldDsKKwkJaWYgKCFJU19BTElHTkVEKGRzdC0+b2Zmc2V0LCBISUZOX0RfRFNUX0RBTElHTikgfHwKKwkJICAgICFJU19BTElHTkVEKGRzdC0+bGVuZ3RoLCBISUZOX0RfRFNUX0RBTElHTikgfHwKKwkJICAgIG9mZnNldCkgeworCQkJdW5zaWduZWQgc2xlbiA9IG1pbihzcmMtPmxlbmd0aCAtIG9mZnNldCwgbmJ5dGVzKTsKIAkJCXVuc2lnbmVkIGRsZW4gPSBQQUdFX1NJWkU7CiAKIAkJCXQgPSAmdy0+Y2FjaGVbaWR4XTsKQEAgLTE0OTgsOCArMTQ5Niw4IEBACiAKIAkJCWlkeCArPSBlcnI7CiAKLQkJCWNvcHkgPSBzbGVuICYgfihibG9ja3NpemUgLSAxKTsKLQkJCWRpZmYgPSBzbGVuICYgKGJsb2Nrc2l6ZSAtIDEpOworCQkJY29weSA9IHNsZW4gJiB+KEhJRk5fRF9EU1RfREFMSUdOIC0gMSk7CisJCQlkaWZmID0gc2xlbiAmIChISUZOX0RfRFNUX0RBTElHTiAtIDEpOwogCiAJCQlpZiAoZGxlbiA8IG5ieXRlcykgewogCQkJCS8qCkBAIC0xNTA3LDcgKzE1MDUsNyBAQAogCQkJCSAqIHRvIHB1dCB0aGVyZSBhZGRpdGlvbmFsIGJsb2Nrc2l6ZWQgY2h1bmssCiAJCQkJICogc28gd2UgbWFyayB0aGF0IHBhZ2UgYXMgY29udGFpbmluZyBvbmx5CiAJCQkJICogYmxvY2tzaXplIGFsaWduZWQgY2h1bmtzOgotCQkJCSAqIAl0LT5sZW5ndGggPSAoc2xlbiAmIH4oYmxvY2tzaXplIC0gMSkpOworCQkJCSAqIAl0LT5sZW5ndGggPSAoc2xlbiAmIH4oSElGTl9EX0RTVF9EQUxJR04gLSAxKSk7CiAJCQkJICogYW5kIGluY3JlYXNlIG51bWJlciBvZiBieXRlcyB0byBiZSBwcm9jZXNzZWQKIAkJCQkgKiBpbiBuZXh0IGNodW5rOgogCQkJCSAqIAluYnl0ZXMgKz0gZGlmZjsKQEAgLTE1NDQsNyArMTU0Miw3IEBACiAKIAkJCWt1bm1hcF9hdG9taWMoZGFkZHIsIEtNX1NPRlRJUlEwKTsKIAkJfSBlbHNlIHsKLQkJCW5ieXRlcyAtPSBzcmMtPmxlbmd0aDsKKwkJCW5ieXRlcyAtPSBtaW4oc3JjLT5sZW5ndGgsIG5ieXRlcyk7CiAJCQlpZHgrKzsKIAkJfQogCkBAIC0xNTYzLDE0ICsxNTYxLDEwIEBACiAJc3RydWN0IGhpZm5fY29udGV4dCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgocmVxLT5iYXNlLnRmbSk7CiAJc3RydWN0IGhpZm5fZGV2aWNlICpkZXYgPSBjdHgtPmRldjsKIAlzdHJ1Y3QgcGFnZSAqc3BhZ2UsICpkcGFnZTsKLQl1bnNpZ25lZCBsb25nIHNvZmYsIGRvZmYsIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgc29mZiwgZG9mZiwgZGxlbiwgZmxhZ3M7CiAJdW5zaWduZWQgaW50IG5ieXRlcyA9IHJlcS0+bmJ5dGVzLCBpZHggPSAwLCBsZW47CiAJaW50IGVyciA9IC1FSU5WQUwsIHNnX251bTsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNyYywgKmRzdCwgKnQ7Ci0JdW5zaWduZWQgYmxvY2tzaXplID0KLQkJY3J5cHRvX2FibGtjaXBoZXJfYmxvY2tzaXplKGNyeXB0b19hYmxrY2lwaGVyX3JlcXRmbShyZXEpKTsKLQl1bnNpZ25lZCBhbGlnbm1hc2sgPQotCQljcnlwdG9fYWJsa2NpcGhlcl9hbGlnbm1hc2soY3J5cHRvX2FibGtjaXBoZXJfcmVxdGZtKHJlcSkpOwogCiAJaWYgKGN0eC0+aXYgJiYgIWN0eC0+aXZzaXplICYmIGN0eC0+bW9kZSAhPSBBQ1JZUFRPX01PREVfRUNCKQogCQlnb3RvIGVycl9vdXRfZXhpdDsKQEAgLTE1NzgsMTcgKzE1NzIsMTQgQEAKIAljdHgtPndhbGsuZmxhZ3MgPSAwOwogCiAJd2hpbGUgKG5ieXRlcykgewotCQlzcmMgPSAmcmVxLT5zcmNbaWR4XTsKIAkJZHN0ID0gJnJlcS0+ZHN0W2lkeF07CisJCWRsZW4gPSBtaW4oZHN0LT5sZW5ndGgsIG5ieXRlcyk7CiAKLQkJaWYgKHNyYy0+bGVuZ3RoICYgKGJsb2Nrc2l6ZSAtIDEpIHx8Ci0JCQkJc3JjLT5vZmZzZXQgJiAoYWxpZ25tYXNrIC0gMSkgfHwKLQkJCQlkc3QtPmxlbmd0aCAmIChibG9ja3NpemUgLSAxKSB8fAotCQkJCWRzdC0+b2Zmc2V0ICYgKGFsaWdubWFzayAtIDEpKSB7CisJCWlmICghSVNfQUxJR05FRChkc3QtPm9mZnNldCwgSElGTl9EX0RTVF9EQUxJR04pIHx8CisJCSAgICAhSVNfQUxJR05FRChkbGVuLCBISUZOX0RfRFNUX0RBTElHTikpCiAJCQljdHgtPndhbGsuZmxhZ3MgfD0gQVNZTkNfRkxBR1NfTUlTQUxJR05FRDsKLQkJfQogCi0JCW5ieXRlcyAtPSBzcmMtPmxlbmd0aDsKKwkJbmJ5dGVzIC09IGRsZW47CiAJCWlkeCsrOwogCX0KIApAQCAtMTYwMiw3ICsxNTkzLDEwIEBACiAJaWR4ID0gMDsKIAogCXNnX251bSA9IGFibGtjaXBoZXJfd2FsayhyZXEsICZjdHgtPndhbGspOwotCisJaWYgKHNnX251bSA8IDApIHsKKwkJZXJyID0gc2dfbnVtOworCQlnb3RvIGVycl9vdXRfZXhpdDsKKwl9CiAJYXRvbWljX3NldCgmY3R4LT5zZ19udW0sIHNnX251bSk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5sb2NrLCBmbGFncyk7CkBAIC0xNjQwLDcgKzE2MzQsNyBAQAogCQlpZiAoZXJyKQogCQkJZ290byBlcnJfb3V0OwogCi0JCW5ieXRlcyAtPSBsZW47CisJCW5ieXRlcyAtPSBtaW4obGVuLCBuYnl0ZXMpOwogCX0KIAogCWRldi0+YWN0aXZlID0gSElGTl9ERUZBVUxUX0FDVElWRV9OVU07CkBAIC0xNjUxLDcgKzE2NDUsNyBAQAogZXJyX291dDoKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmxvY2ssIGZsYWdzKTsKIGVycl9vdXRfZXhpdDoKLQlpZiAoZXJyICYmIHByaW50a19yYXRlbGltaXQoKSkKKwlpZiAoZXJyKQogCQlkcHJpbnRrKCIlczogaXY6ICVwIFslZF0sIGtleTogJXAgWyVkXSwgbW9kZTogJXUsIG9wOiAldSwgIgogCQkJCSJ0eXBlOiAldSwgZXJyOiAlZC5cbiIsCiAJCQlkZXYtPm5hbWUsIGN0eC0+aXYsIGN0eC0+aXZzaXplLApAQCAtMTc0NSw4ICsxNzM5LDcgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAl3aGlsZSAoc2l6ZSkgewotCi0JCWNvcHkgPSBtaW4oZHN0LT5sZW5ndGgsIHNyZXN0KTsKKwkJY29weSA9IG1pbihzcmVzdCwgbWluKGRzdC0+bGVuZ3RoLCBzaXplKSk7CiAKIAkJZGFkZHIgPSBrbWFwX2F0b21pYyhzZ19wYWdlKGRzdCksIEtNX0lSUTApOwogCQltZW1jcHkoZGFkZHIgKyBkc3QtPm9mZnNldCArIG9mZnNldCwgc2FkZHIsIGNvcHkpOwpAQCAtMTgwMyw3ICsxNzk2LDcgQEAKIAkJCQkJc2dfcGFnZShkc3QpLCBkc3QtPmxlbmd0aCwgbmJ5dGVzKTsKIAogCQkJCWlmICghdC0+bGVuZ3RoKSB7Ci0JCQkJCW5ieXRlcyAtPSBkc3QtPmxlbmd0aDsKKwkJCQkJbmJ5dGVzIC09IG1pbihkc3QtPmxlbmd0aCwgbmJ5dGVzKTsKIAkJCQkJaWR4Kys7CiAJCQkJCWNvbnRpbnVlOwogCQkJCX0KQEAgLTIyMDIsOSArMjE5NSw5IEBACiAJCXJldHVybiBlcnI7CiAKIAlpZiAoZGV2LT5zdGFydGVkIDwgSElGTl9RVUVVRV9MRU5HVEggJiYJZGV2LT5xdWV1ZS5xbGVuKQotCQllcnIgPSBoaWZuX3Byb2Nlc3NfcXVldWUoZGV2KTsKKwkJaGlmbl9wcm9jZXNzX3F1ZXVlKGRldik7CiAKLQlyZXR1cm4gZXJyOworCXJldHVybiAtRUlOUFJPR1JFU1M7CiB9CiAKIC8qCkBAIC0yMzY0LDcgKzIzNTcsNyBAQAogCSAqIDNERVMgRUNCLCBDQkMsIENGQiBhbmQgT0ZCIG1vZGVzLgogCSAqLwogCXsKLQkJLm5hbWUgPSAiY2ZiKGRlczNfZWRlKSIsIC5kcnZfbmFtZSA9ICJoaWZuLTNkZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJjZmIoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gImNmYi0zZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlISUZOXzNERVNfS0VZX0xFTkdUSCwKIAkJCS5tYXhfa2V5c2l6ZQk9CUhJRk5fM0RFU19LRVlfTEVOR1RILApAQCAtMjM3NCw3ICsyMzY3LDcgQEAKIAkJfSwKIAl9LAogCXsKLQkJLm5hbWUgPSAib2ZiKGRlczNfZWRlKSIsIC5kcnZfbmFtZSA9ICJoaWZuLTNkZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJvZmIoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gIm9mYi0zZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlISUZOXzNERVNfS0VZX0xFTkdUSCwKIAkJCS5tYXhfa2V5c2l6ZQk9CUhJRk5fM0RFU19LRVlfTEVOR1RILApAQCAtMjM4NCw4ICsyMzc3LDkgQEAKIAkJfSwKIAl9LAogCXsKLQkJLm5hbWUgPSAiY2JjKGRlczNfZWRlKSIsIC5kcnZfbmFtZSA9ICJoaWZuLTNkZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJjYmMoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gImNiYy0zZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CisJCQkuaXZzaXplCQk9CUhJRk5fSVZfTEVOR1RILAogCQkJLm1pbl9rZXlzaXplCT0JSElGTl8zREVTX0tFWV9MRU5HVEgsCiAJCQkubWF4X2tleXNpemUJPQlISUZOXzNERVNfS0VZX0xFTkdUSCwKIAkJCS5zZXRrZXkJCT0JaGlmbl9zZXRrZXksCkBAIC0yMzk0LDcgKzIzODgsNyBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJlY2IoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gImhpZm4tM2RlcyIsIC5ic2l6ZSA9IDgsCisJCS5uYW1lID0gImVjYihkZXMzX2VkZSkiLCAuZHJ2X25hbWUgPSAiZWNiLTNkZXMiLCAuYnNpemUgPSA4LAogCQkuYWJsa2NpcGhlciA9IHsKIAkJCS5taW5fa2V5c2l6ZQk9CUhJRk5fM0RFU19LRVlfTEVOR1RILAogCQkJLm1heF9rZXlzaXplCT0JSElGTl8zREVTX0tFWV9MRU5HVEgsCkBAIC0yNDA4LDcgKzI0MDIsNyBAQAogCSAqIERFUyBFQ0IsIENCQywgQ0ZCIGFuZCBPRkIgbW9kZXMuCiAJICovCiAJewotCQkubmFtZSA9ICJjZmIoZGVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWRlcyIsIC5ic2l6ZSA9IDgsCisJCS5uYW1lID0gImNmYihkZXMpIiwgLmRydl9uYW1lID0gImNmYi1kZXMiLCAuYnNpemUgPSA4LAogCQkuYWJsa2NpcGhlciA9IHsKIAkJCS5taW5fa2V5c2l6ZQk9CUhJRk5fREVTX0tFWV9MRU5HVEgsCiAJCQkubWF4X2tleXNpemUJPQlISUZOX0RFU19LRVlfTEVOR1RILApAQCAtMjQxOCw3ICsyNDEyLDcgQEAKIAkJfSwKIAl9LAogCXsKLQkJLm5hbWUgPSAib2ZiKGRlcykiLCAuZHJ2X25hbWUgPSAiaGlmbi1kZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJvZmIoZGVzKSIsIC5kcnZfbmFtZSA9ICJvZmItZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlISUZOX0RFU19LRVlfTEVOR1RILAogCQkJLm1heF9rZXlzaXplCT0JSElGTl9ERVNfS0VZX0xFTkdUSCwKQEAgLTI0MjgsOCArMjQyMiw5IEBACiAJCX0sCiAJfSwKIAl7Ci0JCS5uYW1lID0gImNiYyhkZXMpIiwgLmRydl9uYW1lID0gImhpZm4tZGVzIiwgLmJzaXplID0gOCwKKwkJLm5hbWUgPSAiY2JjKGRlcykiLCAuZHJ2X25hbWUgPSAiY2JjLWRlcyIsIC5ic2l6ZSA9IDgsCiAJCS5hYmxrY2lwaGVyID0geworCQkJLml2c2l6ZQkJPQlISUZOX0lWX0xFTkdUSCwKIAkJCS5taW5fa2V5c2l6ZQk9CUhJRk5fREVTX0tFWV9MRU5HVEgsCiAJCQkubWF4X2tleXNpemUJPQlISUZOX0RFU19LRVlfTEVOR1RILAogCQkJLnNldGtleQkJPQloaWZuX3NldGtleSwKQEAgLTI0MzgsNyArMjQzMyw3IEBACiAJCX0sCiAJfSwKIAl7Ci0JCS5uYW1lID0gImVjYihkZXMpIiwgLmRydl9uYW1lID0gImhpZm4tZGVzIiwgLmJzaXplID0gOCwKKwkJLm5hbWUgPSAiZWNiKGRlcykiLCAuZHJ2X25hbWUgPSAiZWNiLWRlcyIsIC5ic2l6ZSA9IDgsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JSElGTl9ERVNfS0VZX0xFTkdUSCwKIAkJCS5tYXhfa2V5c2l6ZQk9CUhJRk5fREVTX0tFWV9MRU5HVEgsCkBAIC0yNDUyLDcgKzI0NDcsNyBAQAogCSAqIEFFUyBFQ0IsIENCQywgQ0ZCIGFuZCBPRkIgbW9kZXMuCiAJICovCiAJewotCQkubmFtZSA9ICJlY2IoYWVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWFlcyIsIC5ic2l6ZSA9IDE2LAorCQkubmFtZSA9ICJlY2IoYWVzKSIsIC5kcnZfbmFtZSA9ICJlY2ItYWVzIiwgLmJzaXplID0gMTYsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JQUVTX01JTl9LRVlfU0laRSwKIAkJCS5tYXhfa2V5c2l6ZQk9CUFFU19NQVhfS0VZX1NJWkUsCkBAIC0yNDYyLDggKzI0NTcsOSBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJjYmMoYWVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWFlcyIsIC5ic2l6ZSA9IDE2LAorCQkubmFtZSA9ICJjYmMoYWVzKSIsIC5kcnZfbmFtZSA9ICJjYmMtYWVzIiwgLmJzaXplID0gMTYsCiAJCS5hYmxrY2lwaGVyID0geworCQkJLml2c2l6ZQkJPQlISUZOX0FFU19JVl9MRU5HVEgsCiAJCQkubWluX2tleXNpemUJPQlBRVNfTUlOX0tFWV9TSVpFLAogCQkJLm1heF9rZXlzaXplCT0JQUVTX01BWF9LRVlfU0laRSwKIAkJCS5zZXRrZXkJCT0JaGlmbl9zZXRrZXksCkBAIC0yNDcyLDcgKzI0NjgsNyBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJjZmIoYWVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWFlcyIsIC5ic2l6ZSA9IDE2LAorCQkubmFtZSA9ICJjZmIoYWVzKSIsIC5kcnZfbmFtZSA9ICJjZmItYWVzIiwgLmJzaXplID0gMTYsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JQUVTX01JTl9LRVlfU0laRSwKIAkJCS5tYXhfa2V5c2l6ZQk9CUFFU19NQVhfS0VZX1NJWkUsCkBAIC0yNDgyLDcgKzI0NzgsNyBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJvZmIoYWVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWFlcyIsIC5ic2l6ZSA9IDE2LAorCQkubmFtZSA9ICJvZmIoYWVzKSIsIC5kcnZfbmFtZSA9ICJvZmItYWVzIiwgLmJzaXplID0gMTYsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JQUVTX01JTl9LRVlfU0laRSwKIAkJCS5tYXhfa2V5c2l6ZQk9CUFFU19NQVhfS0VZX1NJWkUsCkBAIC0yNTE0LDE1ICsyNTEwLDE0IEBACiAJCXJldHVybiAtRU5PTUVNOwogCiAJc25wcmludGYoYWxnLT5hbGcuY3JhX25hbWUsIENSWVBUT19NQVhfQUxHX05BTUUsICIlcyIsIHQtPm5hbWUpOwotCXNucHJpbnRmKGFsZy0+YWxnLmNyYV9kcml2ZXJfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgdC0+ZHJ2X25hbWUpOworCXNucHJpbnRmKGFsZy0+YWxnLmNyYV9kcml2ZXJfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzLSVzIiwKKwkJIHQtPmRydl9uYW1lLCBkZXYtPm5hbWUpOwogCiAJYWxnLT5hbGcuY3JhX3ByaW9yaXR5ID0gMzAwOwogCWFsZy0+YWxnLmNyYV9mbGFncyA9IENSWVBUT19BTEdfVFlQRV9BQkxLQ0lQSEVSIHwgQ1JZUFRPX0FMR19BU1lOQzsKIAlhbGctPmFsZy5jcmFfYmxvY2tzaXplID0gdC0+YnNpemU7CiAJYWxnLT5hbGcuY3JhX2N0eHNpemUgPSBzaXplb2Yoc3RydWN0IGhpZm5fY29udGV4dCk7Ci0JYWxnLT5hbGcuY3JhX2FsaWdubWFzayA9IDE1OwotCWlmICh0LT5ic2l6ZSA9PSA4KQotCQlhbGctPmFsZy5jcmFfYWxpZ25tYXNrID0gMzsKKwlhbGctPmFsZy5jcmFfYWxpZ25tYXNrID0gMDsKIAlhbGctPmFsZy5jcmFfdHlwZSA9ICZjcnlwdG9fYWJsa2NpcGhlcl90eXBlOwogCWFsZy0+YWxnLmNyYV9tb2R1bGUgPSBUSElTX01PRFVMRTsKIAlhbGctPmFsZy5jcmFfdS5hYmxrY2lwaGVyID0gdC0+YWJsa2NpcGhlcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2l4cDR4eF9jcnlwdG8uYyBiL2RyaXZlcnMvY3J5cHRvL2l4cDR4eF9jcnlwdG8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmExMDdmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jcnlwdG8vaXhwNHh4X2NyeXB0by5jCkBAIC0wLDAgKzEsMTUwNiBAQAorLyoKKyAqIEludGVsIElYUDR4eCBOUEUtQyBjcnlwdG8gZHJpdmVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBIb2huc3RhZWR0IDxjaG9obnN0YWVkdEBpbm5vbWluYXRlLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHZlcnNpb24gMiBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWFwb29sLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcnRuZXRsaW5rLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKworI2luY2x1ZGUgPGNyeXB0by9jdHIuaD4KKyNpbmNsdWRlIDxjcnlwdG8vZGVzLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2Flcy5oPgorI2luY2x1ZGUgPGNyeXB0by9zaGEuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYWxnYXBpLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2FlYWQuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYXV0aGVuYy5oPgorI2luY2x1ZGUgPGNyeXB0by9zY2F0dGVyd2Fsay5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvbnBlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcW1nci5oPgorCisjZGVmaW5lIE1BWF9LRVlMRU4gMzIKKworLyogaGFzaDogY2Znd29yZCArIDIgKiBkaWdlc3RsZW47IGNyeXB0OiBrZXlsZW4gKyBjZmd3b3JkICovCisjZGVmaW5lIE5QRV9DVFhfTEVOIDgwCisjZGVmaW5lIEFFU19CTE9DSzEyOCAxNgorCisjZGVmaW5lIE5QRV9PUF9IQVNIX1ZFUklGWSAgIDB4MDEKKyNkZWZpbmUgTlBFX09QX0NDTV9FTkFCTEUgICAgMHgwNAorI2RlZmluZSBOUEVfT1BfQ1JZUFRfRU5BQkxFICAweDA4CisjZGVmaW5lIE5QRV9PUF9IQVNIX0VOQUJMRSAgIDB4MTAKKyNkZWZpbmUgTlBFX09QX05PVF9JTl9QTEFDRSAgMHgyMAorI2RlZmluZSBOUEVfT1BfSE1BQ19ESVNBQkxFICAweDQwCisjZGVmaW5lIE5QRV9PUF9DUllQVF9FTkNSWVBUIDB4ODAKKworI2RlZmluZSBOUEVfT1BfQ0NNX0dFTl9NSUMgICAweGNjCisjZGVmaW5lIE5QRV9PUF9IQVNIX0dFTl9JQ1YgIDB4NTAKKyNkZWZpbmUgTlBFX09QX0VOQ19HRU5fS0VZICAgMHhjOQorCisjZGVmaW5lIE1PRF9FQ0IgICAgIDB4MDAwMAorI2RlZmluZSBNT0RfQ1RSICAgICAweDEwMDAKKyNkZWZpbmUgTU9EX0NCQ19FTkMgMHgyMDAwCisjZGVmaW5lIE1PRF9DQkNfREVDIDB4MzAwMAorI2RlZmluZSBNT0RfQ0NNX0VOQyAweDQwMDAKKyNkZWZpbmUgTU9EX0NDTV9ERUMgMHg1MDAwCisKKyNkZWZpbmUgS0VZTEVOXzEyOCAgNAorI2RlZmluZSBLRVlMRU5fMTkyICA2CisjZGVmaW5lIEtFWUxFTl8yNTYgIDgKKworI2RlZmluZSBDSVBIX0RFQ1IgICAweDAwMDAKKyNkZWZpbmUgQ0lQSF9FTkNSICAgMHgwNDAwCisKKyNkZWZpbmUgTU9EX0RFUyAgICAgMHgwMDAwCisjZGVmaW5lIE1PRF9UREVBMiAgIDB4MDEwMAorI2RlZmluZSBNT0RfM0RFUyAgIDB4MDIwMAorI2RlZmluZSBNT0RfQUVTICAgICAweDA4MDAKKyNkZWZpbmUgTU9EX0FFUzEyOCAgKDB4MDgwMCB8IEtFWUxFTl8xMjgpCisjZGVmaW5lIE1PRF9BRVMxOTIgICgweDA5MDAgfCBLRVlMRU5fMTkyKQorI2RlZmluZSBNT0RfQUVTMjU2ICAoMHgwYTAwIHwgS0VZTEVOXzI1NikKKworI2RlZmluZSBNQVhfSVZMRU4gICAxNgorI2RlZmluZSBOUEVfSUQgICAgICAyICAvKiBOUEUgQyAqLworI2RlZmluZSBOUEVfUUxFTiAgICAxNgorLyogU3BhY2UgZm9yIHJlZ2lzdGVyaW5nIHdoZW4gdGhlIGZpcnN0CisgKiBOUEVfUUxFTiBjcnlwdF9jdGwgYXJlIGJ1c3kgKi8KKyNkZWZpbmUgTlBFX1FMRU5fVE9UQUwgNjQKKworI2RlZmluZSBTRU5EX1FJRCAgICAyOQorI2RlZmluZSBSRUNWX1FJRCAgICAzMAorCisjZGVmaW5lIENUTF9GTEFHX1VOVVNFRAkJMHgwMDAwCisjZGVmaW5lIENUTF9GTEFHX1VTRUQJCTB4MTAwMAorI2RlZmluZSBDVExfRkxBR19QRVJGT1JNX0FCTEsJMHgwMDAxCisjZGVmaW5lIENUTF9GTEFHX0dFTl9JQ1YJMHgwMDAyCisjZGVmaW5lIENUTF9GTEFHX0dFTl9SRVZBRVMJMHgwMDA0CisjZGVmaW5lIENUTF9GTEFHX1BFUkZPUk1fQUVBRAkweDAwMDgKKyNkZWZpbmUgQ1RMX0ZMQUdfTUFTSwkJMHgwMDBmCisKKyNkZWZpbmUgSE1BQ19JUEFEX1ZBTFVFICAgMHgzNgorI2RlZmluZSBITUFDX09QQURfVkFMVUUgICAweDVDCisjZGVmaW5lIEhNQUNfUEFEX0JMT0NLTEVOIFNIQTFfQkxPQ0tfU0laRQorCisjZGVmaW5lIE1ENV9ESUdFU1RfU0laRSAgIDE2CisKK3N0cnVjdCBidWZmZXJfZGVzYyB7CisJdTMyIHBoeXNfbmV4dDsKKwl1MTYgYnVmX2xlbjsKKwl1MTYgcGt0X2xlbjsKKwl1MzIgcGh5c19hZGRyOworCXUzMiBfX3Jlc2VydmVkWzRdOworCXN0cnVjdCBidWZmZXJfZGVzYyAqbmV4dDsKK307CisKK3N0cnVjdCBjcnlwdF9jdGwgeworCXU4IG1vZGU7CQkvKiBOUEVfT1BfKiAgb3BlcmF0aW9uIG1vZGUgKi8KKwl1OCBpbml0X2xlbjsKKwl1MTYgcmVzZXJ2ZWQ7CisJdTggaXZbTUFYX0lWTEVOXTsJLyogSVYgZm9yIENCQyBtb2RlIG9yIENUUiBJViBmb3IgQ1RSIG1vZGUgKi8KKwl1MzIgaWN2X3Jldl9hZXM7CS8qIGljdiBvciByZXYgYWVzICovCisJdTMyIHNyY19idWY7CisJdTMyIGRzdF9idWY7CisJdTE2IGF1dGhfb2ZmczsJCS8qIEF1dGhlbnRpY2F0aW9uIHN0YXJ0IG9mZnNldCAqLworCXUxNiBhdXRoX2xlbjsJCS8qIEF1dGhlbnRpY2F0aW9uIGRhdGEgbGVuZ3RoICovCisJdTE2IGNyeXB0X29mZnM7CQkvKiBDcnlwdGlvbiBzdGFydCBvZmZzZXQgKi8KKwl1MTYgY3J5cHRfbGVuOwkJLyogQ3J5cHRpb24gZGF0YSBsZW5ndGggKi8KKwl1MzIgYWFkQWRkcjsJCS8qIEFkZGl0aW9uYWwgQXV0aCBEYXRhIEFkZHIgZm9yIENDTSBtb2RlICovCisJdTMyIGNyeXB0b19jdHg7CQkvKiBOUEUgQ3J5cHRvIFBhcmFtIHN0cnVjdHVyZSBhZGRyZXNzICovCisKKwkvKiBVc2VkIGJ5IEhvc3Q6IDQqNCBieXRlcyovCisJdW5zaWduZWQgY3RsX2ZsYWdzOworCXVuaW9uIHsKKwkJc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqYWJsa19yZXE7CisJCXN0cnVjdCBhZWFkX3JlcXVlc3QgKmFlYWRfcmVxOworCQlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtOworCX0gZGF0YTsKKwlzdHJ1Y3QgYnVmZmVyX2Rlc2MgKnJlZ2lzdF9idWY7CisJdTggKnJlZ2lzdF9wdHI7Cit9OworCitzdHJ1Y3QgYWJsa19jdHggeworCXN0cnVjdCBidWZmZXJfZGVzYyAqc3JjOworCXN0cnVjdCBidWZmZXJfZGVzYyAqZHN0OworCXVuc2lnbmVkIHNyY19uZW50czsKKwl1bnNpZ25lZCBkc3RfbmVudHM7Cit9OworCitzdHJ1Y3QgYWVhZF9jdHggeworCXN0cnVjdCBidWZmZXJfZGVzYyAqYnVmZmVyOworCXVuc2lnbmVkIHNob3J0IGFzc29jX25lbnRzOworCXVuc2lnbmVkIHNob3J0IHNyY19uZW50czsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgaXZsaXN0OworCS8qIHVzZWQgd2hlbiB0aGUgaG1hYyBpcyBub3Qgb24gb25lIHNnIGVudHJ5ICovCisJdTggKmhtYWNfdmlydDsKKwlpbnQgZW5jcnlwdDsKK307CisKK3N0cnVjdCBpeF9oYXNoX2FsZ28geworCXUzMiBjZmd3b3JkOworCXVuc2lnbmVkIGNoYXIgKmljdjsKK307CisKK3N0cnVjdCBpeF9zYV9kaXIgeworCXVuc2lnbmVkIGNoYXIgKm5wZV9jdHg7CisJZG1hX2FkZHJfdCBucGVfY3R4X3BoeXM7CisJaW50IG5wZV9jdHhfaWR4OworCXU4IG5wZV9tb2RlOworfTsKKworc3RydWN0IGl4cF9jdHggeworCXN0cnVjdCBpeF9zYV9kaXIgZW5jcnlwdDsKKwlzdHJ1Y3QgaXhfc2FfZGlyIGRlY3J5cHQ7CisJaW50IGF1dGhrZXlfbGVuOworCXU4IGF1dGhrZXlbTUFYX0tFWUxFTl07CisJaW50IGVuY2tleV9sZW47CisJdTggZW5ja2V5W01BWF9LRVlMRU5dOworCXU4IHNhbHRbTUFYX0lWTEVOXTsKKwl1OCBub25jZVtDVFJfUkZDMzY4Nl9OT05DRV9TSVpFXTsKKwl1bnNpZ25lZCBzYWx0ZWQ7CisJYXRvbWljX3QgY29uZmlndXJpbmc7CisJc3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjsKK307CisKK3N0cnVjdCBpeHBfYWxnIHsKKwlzdHJ1Y3QgY3J5cHRvX2FsZyBjcnlwdG87CisJY29uc3Qgc3RydWN0IGl4X2hhc2hfYWxnbyAqaGFzaDsKKwl1MzIgY2ZnX2VuYzsKKwl1MzIgY2ZnX2RlYzsKKworCWludCByZWdpc3RlcmVkOworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpeF9oYXNoX2FsZ28gaGFzaF9hbGdfbWQ1ID0geworCS5jZmd3b3JkCT0gMHhBQTAxMDAwNCwKKwkuaWN2CQk9ICJceDAxXHgyM1x4NDVceDY3XHg4OVx4QUJceENEXHhFRiIKKwkJCSAgIlx4RkVceERDXHhCQVx4OThceDc2XHg1NFx4MzJceDEwIiwKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGl4X2hhc2hfYWxnbyBoYXNoX2FsZ19zaGExID0geworCS5jZmd3b3JkCT0gMHgwMDAwMDAwNSwKKwkuaWN2CQk9ICJceDY3XHg0NVx4MjNceDAxXHhFRlx4Q0RceEFCXHg4OVx4OThceEJBIgorCQkJICAiXHhEQ1x4RkVceDEwXHgzMlx4NTRceDc2XHhDM1x4RDJceEUxXHhGMCIsCit9OworCitzdGF0aWMgc3RydWN0IG5wZSAqbnBlX2M7CitzdGF0aWMgc3RydWN0IGRtYV9wb29sICpidWZmZXJfcG9vbCA9IE5VTEw7CitzdGF0aWMgc3RydWN0IGRtYV9wb29sICpjdHhfcG9vbCA9IE5VTEw7CisKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRfY3RsICpjcnlwdF92aXJ0ID0gTlVMTDsKK3N0YXRpYyBkbWFfYWRkcl90IGNyeXB0X3BoeXM7CisKK3N0YXRpYyBpbnQgc3VwcG9ydF9hZXMgPSAxOworCitzdGF0aWMgdm9pZCBkZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJcmV0dXJuOworfQorCisjZGVmaW5lIERSSVZFUl9OQU1FICJpeHA0eHhfY3J5cHRvIgorc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHNldWRvX2RldiA9IHsKKwkubmFtZSA9IERSSVZFUl9OQU1FLAorCS5pZCAgID0gMCwKKwkubnVtX3Jlc291cmNlcyA9IDAsCisJLmRldiAgPSB7CisJCS5jb2hlcmVudF9kbWFfbWFzayA9IERNQV8zMkJJVF9NQVNLLAorCQkucmVsZWFzZSA9IGRldl9yZWxlYXNlLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcHNldWRvX2Rldi5kZXY7CisKK3N0YXRpYyBpbmxpbmUgZG1hX2FkZHJfdCBjcnlwdF92aXJ0MnBoeXMoc3RydWN0IGNyeXB0X2N0bCAqdmlydCkKK3sKKwlyZXR1cm4gY3J5cHRfcGh5cyArICh2aXJ0IC0gY3J5cHRfdmlydCkgKiBzaXplb2Yoc3RydWN0IGNyeXB0X2N0bCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNyeXB0X2N0bCAqY3J5cHRfcGh5czJ2aXJ0KGRtYV9hZGRyX3QgcGh5cykKK3sKKwlyZXR1cm4gY3J5cHRfdmlydCArIChwaHlzIC0gY3J5cHRfcGh5cykgLyBzaXplb2Yoc3RydWN0IGNyeXB0X2N0bCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTMyIGNpcGhlcl9jZmdfZW5jKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZih0Zm0tPl9fY3J0X2FsZywgc3RydWN0IGl4cF9hbGcsY3J5cHRvKS0+Y2ZnX2VuYzsKK30KKworc3RhdGljIGlubGluZSB1MzIgY2lwaGVyX2NmZ19kZWMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHRmbS0+X19jcnRfYWxnLCBzdHJ1Y3QgaXhwX2FsZyxjcnlwdG8pLT5jZmdfZGVjOworfQorCitzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpeF9oYXNoX2FsZ28gKml4X2hhc2goc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHRmbS0+X19jcnRfYWxnLCBzdHJ1Y3QgaXhwX2FsZywgY3J5cHRvKS0+aGFzaDsKK30KKworc3RhdGljIGludCBzZXR1cF9jcnlwdF9kZXNjKHZvaWQpCit7CisJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgY3J5cHRfY3RsKSAhPSA2NCk7CisJY3J5cHRfdmlydCA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsCisJCQlOUEVfUUxFTiAqIHNpemVvZihzdHJ1Y3QgY3J5cHRfY3RsKSwKKwkJCSZjcnlwdF9waHlzLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNyeXB0X3ZpcnQpCisJCXJldHVybiAtRU5PTUVNOworCW1lbXNldChjcnlwdF92aXJ0LCAwLCBOUEVfUUxFTiAqIHNpemVvZihzdHJ1Y3QgY3J5cHRfY3RsKSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzcGlubG9ja190IGRlc2NfbG9jazsKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRfY3RsICpnZXRfY3J5cHRfZGVzYyh2b2lkKQoreworCWludCBpOworCXN0YXRpYyBpbnQgaWR4ID0gMDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRlc2NfbG9jaywgZmxhZ3MpOworCisJaWYgKHVubGlrZWx5KCFjcnlwdF92aXJ0KSkKKwkJc2V0dXBfY3J5cHRfZGVzYygpOworCWlmICh1bmxpa2VseSghY3J5cHRfdmlydCkpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzY19sb2NrLCBmbGFncyk7CisJCXJldHVybiBOVUxMOworCX0KKwlpID0gaWR4OworCWlmIChjcnlwdF92aXJ0W2ldLmN0bF9mbGFncyA9PSBDVExfRkxBR19VTlVTRUQpIHsKKwkJaWYgKCsraWR4ID49IE5QRV9RTEVOKQorCQkJaWR4ID0gMDsKKwkJY3J5cHRfdmlydFtpXS5jdGxfZmxhZ3MgPSBDVExfRkxBR19VU0VEOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjX2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIGNyeXB0X3ZpcnQgK2k7CisJfSBlbHNlIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzY19sb2NrLCBmbGFncyk7CisJCXJldHVybiBOVUxMOworCX0KK30KKworc3RhdGljIHNwaW5sb2NrX3QgZW1lcmdfbG9jazsKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRfY3RsICpnZXRfY3J5cHRfZGVzY19lbWVyZyh2b2lkKQoreworCWludCBpOworCXN0YXRpYyBpbnQgaWR4ID0gTlBFX1FMRU47CisJc3RydWN0IGNyeXB0X2N0bCAqZGVzYzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGVzYyA9IGdldF9jcnlwdF9kZXNjKCk7CisJaWYgKGRlc2MpCisJCXJldHVybiBkZXNjOworCWlmICh1bmxpa2VseSghY3J5cHRfdmlydCkpCisJCXJldHVybiBOVUxMOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmVtZXJnX2xvY2ssIGZsYWdzKTsKKwlpID0gaWR4OworCWlmIChjcnlwdF92aXJ0W2ldLmN0bF9mbGFncyA9PSBDVExfRkxBR19VTlVTRUQpIHsKKwkJaWYgKCsraWR4ID49IE5QRV9RTEVOX1RPVEFMKQorCQkJaWR4ID0gTlBFX1FMRU47CisJCWNyeXB0X3ZpcnRbaV0uY3RsX2ZsYWdzID0gQ1RMX0ZMQUdfVVNFRDsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW1lcmdfbG9jaywgZmxhZ3MpOworCQlyZXR1cm4gY3J5cHRfdmlydCAraTsKKwl9IGVsc2UgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbWVyZ19sb2NrLCBmbGFncyk7CisJCXJldHVybiBOVUxMOworCX0KK30KKworc3RhdGljIHZvaWQgZnJlZV9idWZfY2hhaW4oc3RydWN0IGJ1ZmZlcl9kZXNjICpidWYsIHUzMiBwaHlzKQoreworCXdoaWxlIChidWYpIHsKKwkJc3RydWN0IGJ1ZmZlcl9kZXNjICpidWYxOworCQl1MzIgcGh5czE7CisKKwkJYnVmMSA9IGJ1Zi0+bmV4dDsKKwkJcGh5czEgPSBidWYtPnBoeXNfbmV4dDsKKwkJZG1hX3Bvb2xfZnJlZShidWZmZXJfcG9vbCwgYnVmLCBwaHlzKTsKKwkJYnVmID0gYnVmMTsKKwkJcGh5cyA9IHBoeXMxOworCX0KK30KKworc3RhdGljIHN0cnVjdCB0YXNrbGV0X3N0cnVjdCBjcnlwdG9fZG9uZV90YXNrbGV0OworCitzdGF0aWMgdm9pZCBmaW5pc2hfc2NhdHRlcmVkX2htYWMoc3RydWN0IGNyeXB0X2N0bCAqY3J5cHQpCit7CisJc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxID0gY3J5cHQtPmRhdGEuYWVhZF9yZXE7CisJc3RydWN0IGFlYWRfY3R4ICpyZXFfY3R4ID0gYWVhZF9yZXF1ZXN0X2N0eChyZXEpOworCXN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtID0gY3J5cHRvX2FlYWRfcmVxdGZtKHJlcSk7CisJaW50IGF1dGhzaXplID0gY3J5cHRvX2FlYWRfYXV0aHNpemUodGZtKTsKKwlpbnQgZGVjcnlwdGxlbiA9IHJlcS0+Y3J5cHRsZW4gLSBhdXRoc2l6ZTsKKworCWlmIChyZXFfY3R4LT5lbmNyeXB0KSB7CisJCXNjYXR0ZXJ3YWxrX21hcF9hbmRfY29weShyZXFfY3R4LT5obWFjX3ZpcnQsCisJCQlyZXEtPnNyYywgZGVjcnlwdGxlbiwgYXV0aHNpemUsIDEpOworCX0KKwlkbWFfcG9vbF9mcmVlKGJ1ZmZlcl9wb29sLCByZXFfY3R4LT5obWFjX3ZpcnQsIGNyeXB0LT5pY3ZfcmV2X2Flcyk7Cit9CisKK3N0YXRpYyB2b2lkIG9uZV9wYWNrZXQoZG1hX2FkZHJfdCBwaHlzKQoreworCXN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0OworCXN0cnVjdCBpeHBfY3R4ICpjdHg7CisJaW50IGZhaWxlZDsKKwllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBzcmNfZGlyZWN0aW9uID0gRE1BX0JJRElSRUNUSU9OQUw7CisKKwlmYWlsZWQgPSBwaHlzICYgMHgxID8gLUVCQURNU0cgOiAwOworCXBoeXMgJj0gfjB4MzsKKwljcnlwdCA9IGNyeXB0X3BoeXMydmlydChwaHlzKTsKKworCXN3aXRjaCAoY3J5cHQtPmN0bF9mbGFncyAmIENUTF9GTEFHX01BU0spIHsKKwljYXNlIENUTF9GTEFHX1BFUkZPUk1fQUVBRDogeworCQlzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEgPSBjcnlwdC0+ZGF0YS5hZWFkX3JlcTsKKwkJc3RydWN0IGFlYWRfY3R4ICpyZXFfY3R4ID0gYWVhZF9yZXF1ZXN0X2N0eChyZXEpOworCQlkbWFfdW5tYXBfc2coZGV2LCByZXEtPmFzc29jLCByZXFfY3R4LT5hc3NvY19uZW50cywKKwkJCQlETUFfVE9fREVWSUNFKTsKKwkJZG1hX3VubWFwX3NnKGRldiwgJnJlcV9jdHgtPml2bGlzdCwgMSwgRE1BX0JJRElSRUNUSU9OQUwpOworCQlkbWFfdW5tYXBfc2coZGV2LCByZXEtPnNyYywgcmVxX2N0eC0+c3JjX25lbnRzLAorCQkJCURNQV9CSURJUkVDVElPTkFMKTsKKworCQlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5idWZmZXIsIGNyeXB0LT5zcmNfYnVmKTsKKwkJaWYgKHJlcV9jdHgtPmhtYWNfdmlydCkgeworCQkJZmluaXNoX3NjYXR0ZXJlZF9obWFjKGNyeXB0KTsKKwkJfQorCQlyZXEtPmJhc2UuY29tcGxldGUoJnJlcS0+YmFzZSwgZmFpbGVkKTsKKwkJYnJlYWs7CisJfQorCWNhc2UgQ1RMX0ZMQUdfUEVSRk9STV9BQkxLOiB7CisJCXN0cnVjdCBhYmxrY2lwaGVyX3JlcXVlc3QgKnJlcSA9IGNyeXB0LT5kYXRhLmFibGtfcmVxOworCQlzdHJ1Y3QgYWJsa19jdHggKnJlcV9jdHggPSBhYmxrY2lwaGVyX3JlcXVlc3RfY3R4KHJlcSk7CisJCWludCBuZW50czsKKwkJaWYgKHJlcV9jdHgtPmRzdCkgeworCQkJbmVudHMgPSByZXFfY3R4LT5kc3RfbmVudHM7CisJCQlkbWFfdW5tYXBfc2coZGV2LCByZXEtPmRzdCwgbmVudHMsIERNQV9GUk9NX0RFVklDRSk7CisJCQlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5kc3QsIGNyeXB0LT5kc3RfYnVmKTsKKwkJCXNyY19kaXJlY3Rpb24gPSBETUFfVE9fREVWSUNFOworCQl9CisJCW5lbnRzID0gcmVxX2N0eC0+c3JjX25lbnRzOworCQlkbWFfdW5tYXBfc2coZGV2LCByZXEtPnNyYywgbmVudHMsIHNyY19kaXJlY3Rpb24pOworCQlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5zcmMsIGNyeXB0LT5zcmNfYnVmKTsKKwkJcmVxLT5iYXNlLmNvbXBsZXRlKCZyZXEtPmJhc2UsIGZhaWxlZCk7CisJCWJyZWFrOworCX0KKwljYXNlIENUTF9GTEFHX0dFTl9JQ1Y6CisJCWN0eCA9IGNyeXB0b190Zm1fY3R4KGNyeXB0LT5kYXRhLnRmbSk7CisJCWRtYV9wb29sX2ZyZWUoY3R4X3Bvb2wsIGNyeXB0LT5yZWdpc3RfcHRyLAorCQkJCWNyeXB0LT5yZWdpc3RfYnVmLT5waHlzX2FkZHIpOworCQlkbWFfcG9vbF9mcmVlKGJ1ZmZlcl9wb29sLCBjcnlwdC0+cmVnaXN0X2J1ZiwgY3J5cHQtPnNyY19idWYpOworCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3R4LT5jb25maWd1cmluZykpCisJCQljb21wbGV0ZSgmY3R4LT5jb21wbGV0aW9uKTsKKwkJYnJlYWs7CisJY2FzZSBDVExfRkxBR19HRU5fUkVWQUVTOgorCQljdHggPSBjcnlwdG9fdGZtX2N0eChjcnlwdC0+ZGF0YS50Zm0pOworCQkqKHUzMiopY3R4LT5kZWNyeXB0Lm5wZV9jdHggJj0gY3B1X3RvX2JlMzIofkNJUEhfRU5DUik7CisJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjdHgtPmNvbmZpZ3VyaW5nKSkKKwkJCWNvbXBsZXRlKCZjdHgtPmNvbXBsZXRpb24pOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlCVUcoKTsKKwl9CisJY3J5cHQtPmN0bF9mbGFncyA9IENUTF9GTEFHX1VOVVNFRDsKK30KKworc3RhdGljIHZvaWQgaXJxaGFuZGxlcih2b2lkICpfdW51c2VkKQoreworCXRhc2tsZXRfc2NoZWR1bGUoJmNyeXB0b19kb25lX3Rhc2tsZXQpOworfQorCitzdGF0aWMgdm9pZCBjcnlwdG9fZG9uZV9hY3Rpb24odW5zaWduZWQgbG9uZyBhcmcpCit7CisJaW50IGk7CisKKwlmb3IoaT0wOyBpPDQ7IGkrKykgeworCQlkbWFfYWRkcl90IHBoeXMgPSBxbWdyX2dldF9lbnRyeShSRUNWX1FJRCk7CisJCWlmICghcGh5cykKKwkJCXJldHVybjsKKwkJb25lX3BhY2tldChwaHlzKTsKKwl9CisJdGFza2xldF9zY2hlZHVsZSgmY3J5cHRvX2RvbmVfdGFza2xldCk7Cit9CisKK3N0YXRpYyBpbnQgaW5pdF9peHBfY3J5cHRvKHZvaWQpCit7CisJaW50IHJldCA9IC1FTk9ERVY7CisKKwlpZiAoISAoIH4oKklYUDRYWF9FWFBfQ0ZHMikgJiAoSVhQNFhYX0ZFQVRVUkVfSEFTSCB8CisJCQkJSVhQNFhYX0ZFQVRVUkVfQUVTIHwgSVhQNFhYX0ZFQVRVUkVfREVTKSkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJpeHBfY3J5cHRvOiBObyBIVyBjcnlwdG8gYXZhaWxhYmxlXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJbnBlX2MgPSBucGVfcmVxdWVzdChOUEVfSUQpOworCWlmICghbnBlX2MpCisJCXJldHVybiByZXQ7CisKKwlpZiAoIW5wZV9ydW5uaW5nKG5wZV9jKSkgeworCQlucGVfbG9hZF9maXJtd2FyZShucGVfYywgbnBlX25hbWUobnBlX2MpLCBkZXYpOworCX0KKworCS8qIGJ1ZmZlcl9wb29sIHdpbGwgYWxzbyBiZSB1c2VkIHRvIHNvbWV0aW1lcyBzdG9yZSB0aGUgaG1hYywKKwkgKiBzbyBhc3N1cmUgaXQgaXMgbGFyZ2UgZW5vdWdoCisJICovCisJQlVJTERfQlVHX09OKFNIQTFfRElHRVNUX1NJWkUgPiBzaXplb2Yoc3RydWN0IGJ1ZmZlcl9kZXNjKSk7CisJYnVmZmVyX3Bvb2wgPSBkbWFfcG9vbF9jcmVhdGUoImJ1ZmZlciIsIGRldiwKKwkJCXNpemVvZihzdHJ1Y3QgYnVmZmVyX2Rlc2MpLCAzMiwgMCk7CisJcmV0ID0gLUVOT01FTTsKKwlpZiAoIWJ1ZmZlcl9wb29sKSB7CisJCWdvdG8gZXJyOworCX0KKwljdHhfcG9vbCA9IGRtYV9wb29sX2NyZWF0ZSgiY29udGV4dCIsIGRldiwKKwkJCU5QRV9DVFhfTEVOLCAxNiwgMCk7CisJaWYgKCFjdHhfcG9vbCkgeworCQlnb3RvIGVycjsKKwl9CisJcmV0ID0gcW1ncl9yZXF1ZXN0X3F1ZXVlKFNFTkRfUUlELCBOUEVfUUxFTl9UT1RBTCwgMCwgMCk7CisJaWYgKHJldCkKKwkJZ290byBlcnI7CisJcmV0ID0gcW1ncl9yZXF1ZXN0X3F1ZXVlKFJFQ1ZfUUlELCBOUEVfUUxFTiwgMCwgMCk7CisJaWYgKHJldCkgeworCQlxbWdyX3JlbGVhc2VfcXVldWUoU0VORF9RSUQpOworCQlnb3RvIGVycjsKKwl9CisJcW1ncl9zZXRfaXJxKFJFQ1ZfUUlELCBRVUVVRV9JUlFfU1JDX05PVF9FTVBUWSwgaXJxaGFuZGxlciwgTlVMTCk7CisJdGFza2xldF9pbml0KCZjcnlwdG9fZG9uZV90YXNrbGV0LCBjcnlwdG9fZG9uZV9hY3Rpb24sIDApOworCisJcW1ncl9lbmFibGVfaXJxKFJFQ1ZfUUlEKTsKKwlyZXR1cm4gMDsKK2VycjoKKwlpZiAoY3R4X3Bvb2wpCisJCWRtYV9wb29sX2Rlc3Ryb3koY3R4X3Bvb2wpOworCWlmIChidWZmZXJfcG9vbCkKKwkJZG1hX3Bvb2xfZGVzdHJveShidWZmZXJfcG9vbCk7CisJbnBlX3JlbGVhc2UobnBlX2MpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHJlbGVhc2VfaXhwX2NyeXB0byh2b2lkKQoreworCXFtZ3JfZGlzYWJsZV9pcnEoUkVDVl9RSUQpOworCXRhc2tsZXRfa2lsbCgmY3J5cHRvX2RvbmVfdGFza2xldCk7CisKKwlxbWdyX3JlbGVhc2VfcXVldWUoU0VORF9RSUQpOworCXFtZ3JfcmVsZWFzZV9xdWV1ZShSRUNWX1FJRCk7CisKKwlkbWFfcG9vbF9kZXN0cm95KGN0eF9wb29sKTsKKwlkbWFfcG9vbF9kZXN0cm95KGJ1ZmZlcl9wb29sKTsKKworCW5wZV9yZWxlYXNlKG5wZV9jKTsKKworCWlmIChjcnlwdF92aXJ0KSB7CisJCWRtYV9mcmVlX2NvaGVyZW50KGRldiwKKwkJCU5QRV9RTEVOX1RPVEFMICogc2l6ZW9mKCBzdHJ1Y3QgY3J5cHRfY3RsKSwKKwkJCWNyeXB0X3ZpcnQsIGNyeXB0X3BoeXMpOworCX0KKwlyZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIHJlc2V0X3NhX2RpcihzdHJ1Y3QgaXhfc2FfZGlyICpkaXIpCit7CisJbWVtc2V0KGRpci0+bnBlX2N0eCwgMCwgTlBFX0NUWF9MRU4pOworCWRpci0+bnBlX2N0eF9pZHggPSAwOworCWRpci0+bnBlX21vZGUgPSAwOworfQorCitzdGF0aWMgaW50IGluaXRfc2FfZGlyKHN0cnVjdCBpeF9zYV9kaXIgKmRpcikKK3sKKwlkaXItPm5wZV9jdHggPSBkbWFfcG9vbF9hbGxvYyhjdHhfcG9vbCwgR0ZQX0tFUk5FTCwgJmRpci0+bnBlX2N0eF9waHlzKTsKKwlpZiAoIWRpci0+bnBlX2N0eCkgeworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJcmVzZXRfc2FfZGlyKGRpcik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfc2FfZGlyKHN0cnVjdCBpeF9zYV9kaXIgKmRpcikKK3sKKwltZW1zZXQoZGlyLT5ucGVfY3R4LCAwLCBOUEVfQ1RYX0xFTik7CisJZG1hX3Bvb2xfZnJlZShjdHhfcG9vbCwgZGlyLT5ucGVfY3R4LCBkaXItPm5wZV9jdHhfcGh5cyk7Cit9CisKK3N0YXRpYyBpbnQgaW5pdF90Zm0oc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwlpbnQgcmV0OworCisJYXRvbWljX3NldCgmY3R4LT5jb25maWd1cmluZywgMCk7CisJcmV0ID0gaW5pdF9zYV9kaXIoJmN0eC0+ZW5jcnlwdCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwlyZXQgPSBpbml0X3NhX2RpcigmY3R4LT5kZWNyeXB0KTsKKwlpZiAocmV0KSB7CisJCWZyZWVfc2FfZGlyKCZjdHgtPmVuY3J5cHQpOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGluaXRfdGZtX2FibGsoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwl0Zm0tPmNydF9hYmxrY2lwaGVyLnJlcXNpemUgPSBzaXplb2Yoc3RydWN0IGFibGtfY3R4KTsKKwlyZXR1cm4gaW5pdF90Zm0odGZtKTsKK30KKworc3RhdGljIGludCBpbml0X3RmbV9hZWFkKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJdGZtLT5jcnRfYWVhZC5yZXFzaXplID0gc2l6ZW9mKHN0cnVjdCBhZWFkX2N0eCk7CisJcmV0dXJuIGluaXRfdGZtKHRmbSk7Cit9CisKK3N0YXRpYyB2b2lkIGV4aXRfdGZtKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJZnJlZV9zYV9kaXIoJmN0eC0+ZW5jcnlwdCk7CisJZnJlZV9zYV9kaXIoJmN0eC0+ZGVjcnlwdCk7Cit9CisKK3N0YXRpYyBpbnQgcmVnaXN0ZXJfY2hhaW5fdmFyKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIHU4IHhwYWQsIHUzMiB0YXJnZXQsCisJCWludCBpbml0X2xlbiwgdTMyIGN0eF9hZGRyLCBjb25zdCB1OCAqa2V5LCBpbnQga2V5X2xlbikKK3sKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwlzdHJ1Y3QgY3J5cHRfY3RsICpjcnlwdDsKKwlzdHJ1Y3QgYnVmZmVyX2Rlc2MgKmJ1ZjsKKwlpbnQgaTsKKwl1OCAqcGFkOworCXUzMiBwYWRfcGh5cywgYnVmX3BoeXM7CisKKwlCVUlMRF9CVUdfT04oTlBFX0NUWF9MRU4gPCBITUFDX1BBRF9CTE9DS0xFTik7CisJcGFkID0gZG1hX3Bvb2xfYWxsb2MoY3R4X3Bvb2wsIEdGUF9LRVJORUwsICZwYWRfcGh5cyk7CisJaWYgKCFwYWQpCisJCXJldHVybiAtRU5PTUVNOworCWJ1ZiA9IGRtYV9wb29sX2FsbG9jKGJ1ZmZlcl9wb29sLCBHRlBfS0VSTkVMLCAmYnVmX3BoeXMpOworCWlmICghYnVmKSB7CisJCWRtYV9wb29sX2ZyZWUoY3R4X3Bvb2wsIHBhZCwgcGFkX3BoeXMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJY3J5cHQgPSBnZXRfY3J5cHRfZGVzY19lbWVyZygpOworCWlmICghY3J5cHQpIHsKKwkJZG1hX3Bvb2xfZnJlZShjdHhfcG9vbCwgcGFkLCBwYWRfcGh5cyk7CisJCWRtYV9wb29sX2ZyZWUoYnVmZmVyX3Bvb2wsIGJ1ZiwgYnVmX3BoeXMpOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisKKwltZW1jcHkocGFkLCBrZXksIGtleV9sZW4pOworCW1lbXNldChwYWQgKyBrZXlfbGVuLCAwLCBITUFDX1BBRF9CTE9DS0xFTiAtIGtleV9sZW4pOworCWZvciAoaSA9IDA7IGkgPCBITUFDX1BBRF9CTE9DS0xFTjsgaSsrKSB7CisJCXBhZFtpXSBePSB4cGFkOworCX0KKworCWNyeXB0LT5kYXRhLnRmbSA9IHRmbTsKKwljcnlwdC0+cmVnaXN0X3B0ciA9IHBhZDsKKwljcnlwdC0+cmVnaXN0X2J1ZiA9IGJ1ZjsKKworCWNyeXB0LT5hdXRoX29mZnMgPSAwOworCWNyeXB0LT5hdXRoX2xlbiA9IEhNQUNfUEFEX0JMT0NLTEVOOworCWNyeXB0LT5jcnlwdG9fY3R4ID0gY3R4X2FkZHI7CisJY3J5cHQtPnNyY19idWYgPSBidWZfcGh5czsKKwljcnlwdC0+aWN2X3Jldl9hZXMgPSB0YXJnZXQ7CisJY3J5cHQtPm1vZGUgPSBOUEVfT1BfSEFTSF9HRU5fSUNWOworCWNyeXB0LT5pbml0X2xlbiA9IGluaXRfbGVuOworCWNyeXB0LT5jdGxfZmxhZ3MgfD0gQ1RMX0ZMQUdfR0VOX0lDVjsKKworCWJ1Zi0+bmV4dCA9IDA7CisJYnVmLT5idWZfbGVuID0gSE1BQ19QQURfQkxPQ0tMRU47CisJYnVmLT5wa3RfbGVuID0gMDsKKwlidWYtPnBoeXNfYWRkciA9IHBhZF9waHlzOworCisJYXRvbWljX2luYygmY3R4LT5jb25maWd1cmluZyk7CisJcW1ncl9wdXRfZW50cnkoU0VORF9RSUQsIGNyeXB0X3ZpcnQycGh5cyhjcnlwdCkpOworCUJVR19PTihxbWdyX3N0YXRfb3ZlcmZsb3coU0VORF9RSUQpKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZXR1cF9hdXRoKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIGludCBlbmNyeXB0LCB1bnNpZ25lZCBhdXRoc2l6ZSwKKwkJY29uc3QgdTggKmtleSwgaW50IGtleV9sZW4sIHVuc2lnbmVkIGRpZ2VzdF9sZW4pCit7CisJdTMyIGl0YXJnZXQsIG90YXJnZXQsIG5wZV9jdHhfYWRkcjsKKwl1bnNpZ25lZCBjaGFyICpjaW5mbzsKKwlpbnQgaW5pdF9sZW4sIHJldCA9IDA7CisJdTMyIGNmZ3dvcmQ7CisJc3RydWN0IGl4X3NhX2RpciAqZGlyOworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCWNvbnN0IHN0cnVjdCBpeF9oYXNoX2FsZ28gKmFsZ287CisKKwlkaXIgPSBlbmNyeXB0ID8gJmN0eC0+ZW5jcnlwdCA6ICZjdHgtPmRlY3J5cHQ7CisJY2luZm8gPSBkaXItPm5wZV9jdHggKyBkaXItPm5wZV9jdHhfaWR4OworCWFsZ28gPSBpeF9oYXNoKHRmbSk7CisKKwkvKiB3cml0ZSBjZmcgd29yZCB0byBjcnlwdGluZm8gKi8KKwljZmd3b3JkID0gYWxnby0+Y2Znd29yZCB8ICggYXV0aHNpemUgPDwgNik7IC8qIChhdXRoc2l6ZS80KSA8PCA4ICovCisJKih1MzIqKWNpbmZvID0gY3B1X3RvX2JlMzIoY2Znd29yZCk7CisJY2luZm8gKz0gc2l6ZW9mKGNmZ3dvcmQpOworCisJLyogd3JpdGUgSUNWIHRvIGNyeXB0aW5mbyAqLworCW1lbWNweShjaW5mbywgYWxnby0+aWN2LCBkaWdlc3RfbGVuKTsKKwljaW5mbyArPSBkaWdlc3RfbGVuOworCisJaXRhcmdldCA9IGRpci0+bnBlX2N0eF9waHlzICsgZGlyLT5ucGVfY3R4X2lkeAorCQkJCSsgc2l6ZW9mKGFsZ28tPmNmZ3dvcmQpOworCW90YXJnZXQgPSBpdGFyZ2V0ICsgZGlnZXN0X2xlbjsKKwlpbml0X2xlbiA9IGNpbmZvIC0gKGRpci0+bnBlX2N0eCArIGRpci0+bnBlX2N0eF9pZHgpOworCW5wZV9jdHhfYWRkciA9IGRpci0+bnBlX2N0eF9waHlzICsgZGlyLT5ucGVfY3R4X2lkeDsKKworCWRpci0+bnBlX2N0eF9pZHggKz0gaW5pdF9sZW47CisJZGlyLT5ucGVfbW9kZSB8PSBOUEVfT1BfSEFTSF9FTkFCTEU7CisKKwlpZiAoIWVuY3J5cHQpCisJCWRpci0+bnBlX21vZGUgfD0gTlBFX09QX0hBU0hfVkVSSUZZOworCisJcmV0ID0gcmVnaXN0ZXJfY2hhaW5fdmFyKHRmbSwgSE1BQ19PUEFEX1ZBTFVFLCBvdGFyZ2V0LAorCQkJaW5pdF9sZW4sIG5wZV9jdHhfYWRkciwga2V5LCBrZXlfbGVuKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXJldHVybiByZWdpc3Rlcl9jaGFpbl92YXIodGZtLCBITUFDX0lQQURfVkFMVUUsIGl0YXJnZXQsCisJCQlpbml0X2xlbiwgbnBlX2N0eF9hZGRyLCBrZXksIGtleV9sZW4pOworfQorCitzdGF0aWMgaW50IGdlbl9yZXZfYWVzX2tleShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0OworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCXN0cnVjdCBpeF9zYV9kaXIgKmRpciA9ICZjdHgtPmRlY3J5cHQ7CisKKwljcnlwdCA9IGdldF9jcnlwdF9kZXNjX2VtZXJnKCk7CisJaWYgKCFjcnlwdCkgeworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisJKih1MzIqKWRpci0+bnBlX2N0eCB8PSBjcHVfdG9fYmUzMihDSVBIX0VOQ1IpOworCisJY3J5cHQtPmRhdGEudGZtID0gdGZtOworCWNyeXB0LT5jcnlwdF9vZmZzID0gMDsKKwljcnlwdC0+Y3J5cHRfbGVuID0gQUVTX0JMT0NLMTI4OworCWNyeXB0LT5zcmNfYnVmID0gMDsKKwljcnlwdC0+Y3J5cHRvX2N0eCA9IGRpci0+bnBlX2N0eF9waHlzOworCWNyeXB0LT5pY3ZfcmV2X2FlcyA9IGRpci0+bnBlX2N0eF9waHlzICsgc2l6ZW9mKHUzMik7CisJY3J5cHQtPm1vZGUgPSBOUEVfT1BfRU5DX0dFTl9LRVk7CisJY3J5cHQtPmluaXRfbGVuID0gZGlyLT5ucGVfY3R4X2lkeDsKKwljcnlwdC0+Y3RsX2ZsYWdzIHw9IENUTF9GTEFHX0dFTl9SRVZBRVM7CisKKwlhdG9taWNfaW5jKCZjdHgtPmNvbmZpZ3VyaW5nKTsKKwlxbWdyX3B1dF9lbnRyeShTRU5EX1FJRCwgY3J5cHRfdmlydDJwaHlzKGNyeXB0KSk7CisJQlVHX09OKHFtZ3Jfc3RhdF9vdmVyZmxvdyhTRU5EX1FJRCkpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNldHVwX2NpcGhlcihzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCBpbnQgZW5jcnlwdCwKKwkJY29uc3QgdTggKmtleSwgaW50IGtleV9sZW4pCit7CisJdTggKmNpbmZvOworCXUzMiBjaXBoZXJfY2ZnOworCXUzMiBrZXlsZW5fY2ZnID0gMDsKKwlzdHJ1Y3QgaXhfc2FfZGlyICpkaXI7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJdTMyICpmbGFncyA9ICZ0Zm0tPmNydF9mbGFnczsKKworCWRpciA9IGVuY3J5cHQgPyAmY3R4LT5lbmNyeXB0IDogJmN0eC0+ZGVjcnlwdDsKKwljaW5mbyA9IGRpci0+bnBlX2N0eDsKKworCWlmIChlbmNyeXB0KSB7CisJCWNpcGhlcl9jZmcgPSBjaXBoZXJfY2ZnX2VuYyh0Zm0pOworCQlkaXItPm5wZV9tb2RlIHw9IE5QRV9PUF9DUllQVF9FTkNSWVBUOworCX0gZWxzZSB7CisJCWNpcGhlcl9jZmcgPSBjaXBoZXJfY2ZnX2RlYyh0Zm0pOworCX0KKwlpZiAoY2lwaGVyX2NmZyAmIE1PRF9BRVMpIHsKKwkJc3dpdGNoIChrZXlfbGVuKSB7CisJCQljYXNlIDE2OiBrZXlsZW5fY2ZnID0gTU9EX0FFUzEyOCB8IEtFWUxFTl8xMjg7IGJyZWFrOworCQkJY2FzZSAyNDoga2V5bGVuX2NmZyA9IE1PRF9BRVMxOTIgfCBLRVlMRU5fMTkyOyBicmVhazsKKwkJCWNhc2UgMzI6IGtleWxlbl9jZmcgPSBNT0RfQUVTMjU2IHwgS0VZTEVOXzI1NjsgYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCSpmbGFncyB8PSBDUllQVE9fVEZNX1JFU19CQURfS0VZX0xFTjsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQljaXBoZXJfY2ZnIHw9IGtleWxlbl9jZmc7CisJfSBlbHNlIGlmIChjaXBoZXJfY2ZnICYgTU9EXzNERVMpIHsKKwkJY29uc3QgdTMyICpLID0gKGNvbnN0IHUzMiAqKWtleTsKKwkJaWYgKHVubGlrZWx5KCEoKEtbMF0gXiBLWzJdKSB8IChLWzFdIF4gS1szXSkpIHx8CisJCQkgICAgICEoKEtbMl0gXiBLWzRdKSB8IChLWzNdIF4gS1s1XSkpKSkKKwkJeworCQkJKmZsYWdzIHw9IENSWVBUT19URk1fUkVTX0JBRF9LRVlfU0NIRUQ7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0gZWxzZSB7CisJCXUzMiB0bXBbREVTX0VYUEtFWV9XT1JEU107CisJCWlmIChkZXNfZWtleSh0bXAsIGtleSkgPT0gMCkgeworCQkJKmZsYWdzIHw9IENSWVBUT19URk1fUkVTX1dFQUtfS0VZOworCQl9CisJfQorCS8qIHdyaXRlIGNmZyB3b3JkIHRvIGNyeXB0aW5mbyAqLworCSoodTMyKiljaW5mbyA9IGNwdV90b19iZTMyKGNpcGhlcl9jZmcpOworCWNpbmZvICs9IHNpemVvZihjaXBoZXJfY2ZnKTsKKworCS8qIHdyaXRlIGNpcGhlciBrZXkgdG8gY3J5cHRpbmZvICovCisJbWVtY3B5KGNpbmZvLCBrZXksIGtleV9sZW4pOworCS8qIE5QRSB3YW50cyBrZXlsZW4gc2V0IHRvIERFUzNfRURFX0tFWV9TSVpFIGV2ZW4gZm9yIHNpbmdsZSBERVMgKi8KKwlpZiAoa2V5X2xlbiA8IERFUzNfRURFX0tFWV9TSVpFICYmICEoY2lwaGVyX2NmZyAmIE1PRF9BRVMpKSB7CisJCW1lbXNldChjaW5mbyArIGtleV9sZW4sIDAsIERFUzNfRURFX0tFWV9TSVpFIC1rZXlfbGVuKTsKKwkJa2V5X2xlbiA9IERFUzNfRURFX0tFWV9TSVpFOworCX0KKwlkaXItPm5wZV9jdHhfaWR4ID0gc2l6ZW9mKGNpcGhlcl9jZmcpICsga2V5X2xlbjsKKwlkaXItPm5wZV9tb2RlIHw9IE5QRV9PUF9DUllQVF9FTkFCTEU7CisJaWYgKChjaXBoZXJfY2ZnICYgTU9EX0FFUykgJiYgIWVuY3J5cHQpIHsKKwkJcmV0dXJuIGdlbl9yZXZfYWVzX2tleSh0Zm0pOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjb3VudF9zZyhzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgbmJ5dGVzKQoreworCWludCBpOworCWZvciAoaSA9IDA7IG5ieXRlcyA+IDA7IGkrKywgc2cgPSBzZ19uZXh0KHNnKSkKKwkJbmJ5dGVzIC09IHNnLT5sZW5ndGg7CisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgYnVmZmVyX2Rlc2MgKmNoYWludXBfYnVmZmVycyhzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAorCQkJdW5zaWduZWQgbmJ5dGVzLCBzdHJ1Y3QgYnVmZmVyX2Rlc2MgKmJ1ZiwgZ2ZwX3QgZmxhZ3MpCit7CisJaW50IG5lbnRzID0gMDsKKworCXdoaWxlIChuYnl0ZXMgPiAwKSB7CisJCXN0cnVjdCBidWZmZXJfZGVzYyAqbmV4dF9idWY7CisJCXUzMiBuZXh0X2J1Zl9waHlzOworCQl1bnNpZ25lZCBsZW4gPSBtaW4obmJ5dGVzLCBzZ19kbWFfbGVuKHNnKSk7CisKKwkJbmVudHMrKzsKKwkJbmJ5dGVzIC09IGxlbjsKKwkJaWYgKCFidWYtPnBoeXNfYWRkcikgeworCQkJYnVmLT5waHlzX2FkZHIgPSBzZ19kbWFfYWRkcmVzcyhzZyk7CisJCQlidWYtPmJ1Zl9sZW4gPSBsZW47CisJCQlidWYtPm5leHQgPSBOVUxMOworCQkJYnVmLT5waHlzX25leHQgPSAwOworCQkJZ290byBuZXh0OworCQl9CisJCS8qIFR3byBjb25zZWN1dGl2ZSBjaHVua3Mgb24gb25lIHBhZ2UgbWF5IGJlIGhhbmRsZWQgYnkgdGhlIG9sZAorCQkgKiBidWZmZXIgZGVzY3JpcHRvciwgaW5jcmVhc2VkIGJ5IHRoZSBsZW5ndGggb2YgdGhlIG5ldyBvbmUKKwkJICovCisJCWlmIChzZ19kbWFfYWRkcmVzcyhzZykgPT0gYnVmLT5waHlzX2FkZHIgKyBidWYtPmJ1Zl9sZW4pIHsKKwkJCWJ1Zi0+YnVmX2xlbiArPSBsZW47CisJCQlnb3RvIG5leHQ7CisJCX0KKwkJbmV4dF9idWYgPSBkbWFfcG9vbF9hbGxvYyhidWZmZXJfcG9vbCwgZmxhZ3MsICZuZXh0X2J1Zl9waHlzKTsKKwkJaWYgKCFuZXh0X2J1ZikKKwkJCXJldHVybiBOVUxMOworCQlidWYtPm5leHQgPSBuZXh0X2J1ZjsKKwkJYnVmLT5waHlzX25leHQgPSBuZXh0X2J1Zl9waHlzOworCisJCWJ1ZiA9IG5leHRfYnVmOworCQlidWYtPm5leHQgPSBOVUxMOworCQlidWYtPnBoeXNfbmV4dCA9IDA7CisJCWJ1Zi0+cGh5c19hZGRyID0gc2dfZG1hX2FkZHJlc3Moc2cpOworCQlidWYtPmJ1Zl9sZW4gPSBsZW47CituZXh0OgorCQlpZiAobmJ5dGVzID4gMCkgeworCQkJc2cgPSBzZ19uZXh0KHNnKTsKKwkJfQorCX0KKwlyZXR1cm4gYnVmOworfQorCitzdGF0aWMgaW50IGFibGtfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWJsa2NpcGhlciAqdGZtLCBjb25zdCB1OCAqa2V5LAorCQkJdW5zaWduZWQgaW50IGtleV9sZW4pCit7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b19hYmxrY2lwaGVyX2N0eCh0Zm0pOworCXUzMiAqZmxhZ3MgPSAmdGZtLT5iYXNlLmNydF9mbGFnczsKKwlpbnQgcmV0OworCisJaW5pdF9jb21wbGV0aW9uKCZjdHgtPmNvbXBsZXRpb24pOworCWF0b21pY19pbmMoJmN0eC0+Y29uZmlndXJpbmcpOworCisJcmVzZXRfc2FfZGlyKCZjdHgtPmVuY3J5cHQpOworCXJlc2V0X3NhX2RpcigmY3R4LT5kZWNyeXB0KTsKKworCWN0eC0+ZW5jcnlwdC5ucGVfbW9kZSA9IE5QRV9PUF9ITUFDX0RJU0FCTEU7CisJY3R4LT5kZWNyeXB0Lm5wZV9tb2RlID0gTlBFX09QX0hNQUNfRElTQUJMRTsKKworCXJldCA9IHNldHVwX2NpcGhlcigmdGZtLT5iYXNlLCAwLCBrZXksIGtleV9sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCXJldCA9IHNldHVwX2NpcGhlcigmdGZtLT5iYXNlLCAxLCBrZXksIGtleV9sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJaWYgKCpmbGFncyAmIENSWVBUT19URk1fUkVTX1dFQUtfS0VZKSB7CisJCWlmICgqZmxhZ3MgJiBDUllQVE9fVEZNX1JFUV9XRUFLX0tFWSkgeworCQkJcmV0ID0gLUVJTlZBTDsKKwkJfSBlbHNlIHsKKwkJCSpmbGFncyAmPSB+Q1JZUFRPX1RGTV9SRVNfV0VBS19LRVk7CisJCX0KKwl9CitvdXQ6CisJaWYgKCFhdG9taWNfZGVjX2FuZF90ZXN0KCZjdHgtPmNvbmZpZ3VyaW5nKSkKKwkJd2FpdF9mb3JfY29tcGxldGlvbigmY3R4LT5jb21wbGV0aW9uKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFibGtfcmZjMzY4Nl9zZXRrZXkoc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICp0Zm0sIGNvbnN0IHU4ICprZXksCisJCXVuc2lnbmVkIGludCBrZXlfbGVuKQoreworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWJsa2NpcGhlcl9jdHgodGZtKTsKKworCS8qIHRoZSBub25jZSBpcyBzdG9yZWQgaW4gYnl0ZXMgYXQgZW5kIG9mIGtleSAqLworCWlmIChrZXlfbGVuIDwgQ1RSX1JGQzM2ODZfTk9OQ0VfU0laRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltZW1jcHkoY3R4LT5ub25jZSwga2V5ICsgKGtleV9sZW4gLSBDVFJfUkZDMzY4Nl9OT05DRV9TSVpFKSwKKwkJCUNUUl9SRkMzNjg2X05PTkNFX1NJWkUpOworCisJa2V5X2xlbiAtPSBDVFJfUkZDMzY4Nl9OT05DRV9TSVpFOworCXJldHVybiBhYmxrX3NldGtleSh0Zm0sIGtleSwga2V5X2xlbik7Cit9CisKK3N0YXRpYyBpbnQgYWJsa19wZXJmb3JtKHN0cnVjdCBhYmxrY2lwaGVyX3JlcXVlc3QgKnJlcSwgaW50IGVuY3J5cHQpCit7CisJc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICp0Zm0gPSBjcnlwdG9fYWJsa2NpcGhlcl9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX2FibGtjaXBoZXJfY3R4KHRmbSk7CisJdW5zaWduZWQgaXZzaXplID0gY3J5cHRvX2FibGtjaXBoZXJfaXZzaXplKHRmbSk7CisJaW50IHJldCA9IC1FTk9NRU07CisJc3RydWN0IGl4X3NhX2RpciAqZGlyOworCXN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0OworCXVuc2lnbmVkIGludCBuYnl0ZXMgPSByZXEtPm5ieXRlcywgbmVudHM7CisJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gc3JjX2RpcmVjdGlvbiA9IERNQV9CSURJUkVDVElPTkFMOworCXN0cnVjdCBhYmxrX2N0eCAqcmVxX2N0eCA9IGFibGtjaXBoZXJfcmVxdWVzdF9jdHgocmVxKTsKKwlnZnBfdCBmbGFncyA9IHJlcS0+YmFzZS5mbGFncyAmIENSWVBUT19URk1fUkVRX01BWV9TTEVFUCA/CisJCQkJR0ZQX0tFUk5FTCA6IEdGUF9BVE9NSUM7CisKKwlpZiAocW1ncl9zdGF0X2Z1bGwoU0VORF9RSUQpKQorCQlyZXR1cm4gLUVBR0FJTjsKKwlpZiAoYXRvbWljX3JlYWQoJmN0eC0+Y29uZmlndXJpbmcpKQorCQlyZXR1cm4gLUVBR0FJTjsKKworCWRpciA9IGVuY3J5cHQgPyAmY3R4LT5lbmNyeXB0IDogJmN0eC0+ZGVjcnlwdDsKKworCWNyeXB0ID0gZ2V0X2NyeXB0X2Rlc2MoKTsKKwlpZiAoIWNyeXB0KQorCQlyZXR1cm4gcmV0OworCisJY3J5cHQtPmRhdGEuYWJsa19yZXEgPSByZXE7CisJY3J5cHQtPmNyeXB0b19jdHggPSBkaXItPm5wZV9jdHhfcGh5czsKKwljcnlwdC0+bW9kZSA9IGRpci0+bnBlX21vZGU7CisJY3J5cHQtPmluaXRfbGVuID0gZGlyLT5ucGVfY3R4X2lkeDsKKworCWNyeXB0LT5jcnlwdF9vZmZzID0gMDsKKwljcnlwdC0+Y3J5cHRfbGVuID0gbmJ5dGVzOworCisJQlVHX09OKGl2c2l6ZSAmJiAhcmVxLT5pbmZvKTsKKwltZW1jcHkoY3J5cHQtPml2LCByZXEtPmluZm8sIGl2c2l6ZSk7CisJaWYgKHJlcS0+c3JjICE9IHJlcS0+ZHN0KSB7CisJCWNyeXB0LT5tb2RlIHw9IE5QRV9PUF9OT1RfSU5fUExBQ0U7CisJCW5lbnRzID0gY291bnRfc2cocmVxLT5kc3QsIG5ieXRlcyk7CisJCS8qIFRoaXMgd2FzIG5ldmVyIHRlc3RlZCBieSBJbnRlbAorCQkgKiBmb3IgbW9yZSB0aGFuIG9uZSBkc3QgYnVmZmVyLCBJIHRoaW5rLiAqLworCQlCVUdfT04obmVudHMgIT0gMSk7CisJCXJlcV9jdHgtPmRzdF9uZW50cyA9IG5lbnRzOworCQlkbWFfbWFwX3NnKGRldiwgcmVxLT5kc3QsIG5lbnRzLCBETUFfRlJPTV9ERVZJQ0UpOworCQlyZXFfY3R4LT5kc3QgPSBkbWFfcG9vbF9hbGxvYyhidWZmZXJfcG9vbCwgZmxhZ3MsJmNyeXB0LT5kc3RfYnVmKTsKKwkJaWYgKCFyZXFfY3R4LT5kc3QpCisJCQlnb3RvIHVubWFwX3NnX2Rlc3Q7CisJCXJlcV9jdHgtPmRzdC0+cGh5c19hZGRyID0gMDsKKwkJaWYgKCFjaGFpbnVwX2J1ZmZlcnMocmVxLT5kc3QsIG5ieXRlcywgcmVxX2N0eC0+ZHN0LCBmbGFncykpCisJCQlnb3RvIGZyZWVfYnVmX2Rlc3Q7CisJCXNyY19kaXJlY3Rpb24gPSBETUFfVE9fREVWSUNFOworCX0gZWxzZSB7CisJCXJlcV9jdHgtPmRzdCA9IE5VTEw7CisJCXJlcV9jdHgtPmRzdF9uZW50cyA9IDA7CisJfQorCW5lbnRzID0gY291bnRfc2cocmVxLT5zcmMsIG5ieXRlcyk7CisJcmVxX2N0eC0+c3JjX25lbnRzID0gbmVudHM7CisJZG1hX21hcF9zZyhkZXYsIHJlcS0+c3JjLCBuZW50cywgc3JjX2RpcmVjdGlvbik7CisKKwlyZXFfY3R4LT5zcmMgPSBkbWFfcG9vbF9hbGxvYyhidWZmZXJfcG9vbCwgZmxhZ3MsICZjcnlwdC0+c3JjX2J1Zik7CisJaWYgKCFyZXFfY3R4LT5zcmMpCisJCWdvdG8gdW5tYXBfc2dfc3JjOworCXJlcV9jdHgtPnNyYy0+cGh5c19hZGRyID0gMDsKKwlpZiAoIWNoYWludXBfYnVmZmVycyhyZXEtPnNyYywgbmJ5dGVzLCByZXFfY3R4LT5zcmMsIGZsYWdzKSkKKwkJZ290byBmcmVlX2J1Zl9zcmM7CisKKwljcnlwdC0+Y3RsX2ZsYWdzIHw9IENUTF9GTEFHX1BFUkZPUk1fQUJMSzsKKwlxbWdyX3B1dF9lbnRyeShTRU5EX1FJRCwgY3J5cHRfdmlydDJwaHlzKGNyeXB0KSk7CisJQlVHX09OKHFtZ3Jfc3RhdF9vdmVyZmxvdyhTRU5EX1FJRCkpOworCXJldHVybiAtRUlOUFJPR1JFU1M7CisKK2ZyZWVfYnVmX3NyYzoKKwlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5zcmMsIGNyeXB0LT5zcmNfYnVmKTsKK3VubWFwX3NnX3NyYzoKKwlkbWFfdW5tYXBfc2coZGV2LCByZXEtPnNyYywgcmVxX2N0eC0+c3JjX25lbnRzLCBzcmNfZGlyZWN0aW9uKTsKK2ZyZWVfYnVmX2Rlc3Q6CisJaWYgKHJlcS0+c3JjICE9IHJlcS0+ZHN0KSB7CisJCWZyZWVfYnVmX2NoYWluKHJlcV9jdHgtPmRzdCwgY3J5cHQtPmRzdF9idWYpOwordW5tYXBfc2dfZGVzdDoKKwkJZG1hX3VubWFwX3NnKGRldiwgcmVxLT5zcmMsIHJlcV9jdHgtPmRzdF9uZW50cywKKwkJCURNQV9GUk9NX0RFVklDRSk7CisJfQorCWNyeXB0LT5jdGxfZmxhZ3MgPSBDVExfRkxBR19VTlVTRUQ7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhYmxrX2VuY3J5cHQoc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBhYmxrX3BlcmZvcm0ocmVxLCAxKTsKK30KKworc3RhdGljIGludCBhYmxrX2RlY3J5cHQoc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBhYmxrX3BlcmZvcm0ocmVxLCAwKTsKK30KKworc3RhdGljIGludCBhYmxrX3JmYzM2ODZfY3J5cHQoc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fYWJsa2NpcGhlciAqdGZtID0gY3J5cHRvX2FibGtjaXBoZXJfcmVxdGZtKHJlcSk7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b19hYmxrY2lwaGVyX2N0eCh0Zm0pOworCXU4IGl2W0NUUl9SRkMzNjg2X0JMT0NLX1NJWkVdOworCXU4ICppbmZvID0gcmVxLT5pbmZvOworCWludCByZXQ7CisKKwkvKiBzZXQgdXAgY291bnRlciBibG9jayAqLworICAgICAgICBtZW1jcHkoaXYsIGN0eC0+bm9uY2UsIENUUl9SRkMzNjg2X05PTkNFX1NJWkUpOworCW1lbWNweShpdiArIENUUl9SRkMzNjg2X05PTkNFX1NJWkUsIGluZm8sIENUUl9SRkMzNjg2X0lWX1NJWkUpOworCisJLyogaW5pdGlhbGl6ZSBjb3VudGVyIHBvcnRpb24gb2YgY291bnRlciBibG9jayAqLworCSooX19iZTMyICopKGl2ICsgQ1RSX1JGQzM2ODZfTk9OQ0VfU0laRSArIENUUl9SRkMzNjg2X0lWX1NJWkUpID0KKwkJY3B1X3RvX2JlMzIoMSk7CisKKwlyZXEtPmluZm8gPSBpdjsKKwlyZXQgPSBhYmxrX3BlcmZvcm0ocmVxLCAxKTsKKwlyZXEtPmluZm8gPSBpbmZvOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaG1hY19pbmNvbnNpc3RlbnQoc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgdW5zaWduZWQgc3RhcnQsCisJCXVuc2lnbmVkIGludCBuYnl0ZXMpCit7CisJaW50IG9mZnNldCA9IDA7CisKKwlpZiAoIW5ieXRlcykKKwkJcmV0dXJuIDA7CisKKwlmb3IgKDs7KSB7CisJCWlmIChzdGFydCA8IG9mZnNldCArIHNnLT5sZW5ndGgpCisJCQlicmVhazsKKworCQlvZmZzZXQgKz0gc2ctPmxlbmd0aDsKKwkJc2cgPSBzZ19uZXh0KHNnKTsKKwl9CisJcmV0dXJuIChzdGFydCArIG5ieXRlcyA+IG9mZnNldCArIHNnLT5sZW5ndGgpOworfQorCitzdGF0aWMgaW50IGFlYWRfcGVyZm9ybShzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEsIGludCBlbmNyeXB0LAorCQlpbnQgY3J5cHRvZmZzZXQsIGludCBlZmZfY3J5cHRsZW4sIHU4ICppdikKK3sKKwlzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSA9IGNyeXB0b19hZWFkX3JlcXRmbShyZXEpOworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgodGZtKTsKKwl1bnNpZ25lZCBpdnNpemUgPSBjcnlwdG9fYWVhZF9pdnNpemUodGZtKTsKKwl1bnNpZ25lZCBhdXRoc2l6ZSA9IGNyeXB0b19hZWFkX2F1dGhzaXplKHRmbSk7CisJaW50IHJldCA9IC1FTk9NRU07CisJc3RydWN0IGl4X3NhX2RpciAqZGlyOworCXN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0OworCXVuc2lnbmVkIGludCBjcnlwdGxlbiwgbmVudHM7CisJc3RydWN0IGJ1ZmZlcl9kZXNjICpidWY7CisJc3RydWN0IGFlYWRfY3R4ICpyZXFfY3R4ID0gYWVhZF9yZXF1ZXN0X2N0eChyZXEpOworCWdmcF90IGZsYWdzID0gcmVxLT5iYXNlLmZsYWdzICYgQ1JZUFRPX1RGTV9SRVFfTUFZX1NMRUVQID8KKwkJCQlHRlBfS0VSTkVMIDogR0ZQX0FUT01JQzsKKworCWlmIChxbWdyX3N0YXRfZnVsbChTRU5EX1FJRCkpCisJCXJldHVybiAtRUFHQUlOOworCWlmIChhdG9taWNfcmVhZCgmY3R4LT5jb25maWd1cmluZykpCisJCXJldHVybiAtRUFHQUlOOworCisJaWYgKGVuY3J5cHQpIHsKKwkJZGlyID0gJmN0eC0+ZW5jcnlwdDsKKwkJY3J5cHRsZW4gPSByZXEtPmNyeXB0bGVuOworCX0gZWxzZSB7CisJCWRpciA9ICZjdHgtPmRlY3J5cHQ7CisJCS8qIHJlcS0+Y3J5cHRsZW4gaW5jbHVkZXMgdGhlIGF1dGhzaXplIHdoZW4gZGVjcnlwdGluZyAqLworCQljcnlwdGxlbiA9IHJlcS0+Y3J5cHRsZW4gLWF1dGhzaXplOworCQllZmZfY3J5cHRsZW4gLT0gYXV0aHNpemU7CisJfQorCWNyeXB0ID0gZ2V0X2NyeXB0X2Rlc2MoKTsKKwlpZiAoIWNyeXB0KQorCQlyZXR1cm4gcmV0OworCisJY3J5cHQtPmRhdGEuYWVhZF9yZXEgPSByZXE7CisJY3J5cHQtPmNyeXB0b19jdHggPSBkaXItPm5wZV9jdHhfcGh5czsKKwljcnlwdC0+bW9kZSA9IGRpci0+bnBlX21vZGU7CisJY3J5cHQtPmluaXRfbGVuID0gZGlyLT5ucGVfY3R4X2lkeDsKKworCWNyeXB0LT5jcnlwdF9vZmZzID0gY3J5cHRvZmZzZXQ7CisJY3J5cHQtPmNyeXB0X2xlbiA9IGVmZl9jcnlwdGxlbjsKKworCWNyeXB0LT5hdXRoX29mZnMgPSAwOworCWNyeXB0LT5hdXRoX2xlbiA9IHJlcS0+YXNzb2NsZW4gKyBpdnNpemUgKyBjcnlwdGxlbjsKKwlCVUdfT04oaXZzaXplICYmICFyZXEtPml2KTsKKwltZW1jcHkoY3J5cHQtPml2LCByZXEtPml2LCBpdnNpemUpOworCisJaWYgKHJlcS0+c3JjICE9IHJlcS0+ZHN0KSB7CisJCUJVRygpOyAvKiAtRU5PVFNVUCBiZWNhdXNlIG9mIG15IGxhenluZXNzICovCisJfQorCisJcmVxX2N0eC0+YnVmZmVyID0gZG1hX3Bvb2xfYWxsb2MoYnVmZmVyX3Bvb2wsIGZsYWdzLCAmY3J5cHQtPnNyY19idWYpOworCWlmICghcmVxX2N0eC0+YnVmZmVyKQorCQlnb3RvIG91dDsKKwlyZXFfY3R4LT5idWZmZXItPnBoeXNfYWRkciA9IDA7CisJLyogQVNTT0MgZGF0YSAqLworCW5lbnRzID0gY291bnRfc2cocmVxLT5hc3NvYywgcmVxLT5hc3NvY2xlbik7CisJcmVxX2N0eC0+YXNzb2NfbmVudHMgPSBuZW50czsKKwlkbWFfbWFwX3NnKGRldiwgcmVxLT5hc3NvYywgbmVudHMsIERNQV9UT19ERVZJQ0UpOworCWJ1ZiA9IGNoYWludXBfYnVmZmVycyhyZXEtPmFzc29jLCByZXEtPmFzc29jbGVuLCByZXFfY3R4LT5idWZmZXIsZmxhZ3MpOworCWlmICghYnVmKQorCQlnb3RvIHVubWFwX3NnX2Fzc29jOworCS8qIElWICovCisJc2dfaW5pdF90YWJsZSgmcmVxX2N0eC0+aXZsaXN0LCAxKTsKKwlzZ19zZXRfYnVmKCZyZXFfY3R4LT5pdmxpc3QsIGl2LCBpdnNpemUpOworCWRtYV9tYXBfc2coZGV2LCAmcmVxX2N0eC0+aXZsaXN0LCAxLCBETUFfQklESVJFQ1RJT05BTCk7CisJYnVmID0gY2hhaW51cF9idWZmZXJzKCZyZXFfY3R4LT5pdmxpc3QsIGl2c2l6ZSwgYnVmLCBmbGFncyk7CisJaWYgKCFidWYpCisJCWdvdG8gdW5tYXBfc2dfaXY7CisJaWYgKHVubGlrZWx5KGhtYWNfaW5jb25zaXN0ZW50KHJlcS0+c3JjLCBjcnlwdGxlbiwgYXV0aHNpemUpKSkgeworCQkvKiBUaGUgMTIgaG1hYyBieXRlcyBhcmUgc2NhdHRlcmVkLAorCQkgKiB3ZSBuZWVkIHRvIGNvcHkgdGhlbSBpbnRvIGEgc2FmZSBidWZmZXIgKi8KKwkJcmVxX2N0eC0+aG1hY192aXJ0ID0gZG1hX3Bvb2xfYWxsb2MoYnVmZmVyX3Bvb2wsIGZsYWdzLAorCQkJCSZjcnlwdC0+aWN2X3Jldl9hZXMpOworCQlpZiAodW5saWtlbHkoIXJlcV9jdHgtPmhtYWNfdmlydCkpCisJCQlnb3RvIHVubWFwX3NnX2l2OworCQlpZiAoIWVuY3J5cHQpIHsKKwkJCXNjYXR0ZXJ3YWxrX21hcF9hbmRfY29weShyZXFfY3R4LT5obWFjX3ZpcnQsCisJCQkJcmVxLT5zcmMsIGNyeXB0bGVuLCBhdXRoc2l6ZSwgMCk7CisJCX0KKwkJcmVxX2N0eC0+ZW5jcnlwdCA9IGVuY3J5cHQ7CisJfSBlbHNlIHsKKwkJcmVxX2N0eC0+aG1hY192aXJ0ID0gTlVMTDsKKwl9CisJLyogQ3J5cHQgKi8KKwluZW50cyA9IGNvdW50X3NnKHJlcS0+c3JjLCBjcnlwdGxlbiArIGF1dGhzaXplKTsKKwlyZXFfY3R4LT5zcmNfbmVudHMgPSBuZW50czsKKwlkbWFfbWFwX3NnKGRldiwgcmVxLT5zcmMsIG5lbnRzLCBETUFfQklESVJFQ1RJT05BTCk7CisJYnVmID0gY2hhaW51cF9idWZmZXJzKHJlcS0+c3JjLCBjcnlwdGxlbiArIGF1dGhzaXplLCBidWYsIGZsYWdzKTsKKwlpZiAoIWJ1ZikKKwkJZ290byB1bm1hcF9zZ19zcmM7CisJaWYgKCFyZXFfY3R4LT5obWFjX3ZpcnQpIHsKKwkJY3J5cHQtPmljdl9yZXZfYWVzID0gYnVmLT5waHlzX2FkZHIgKyBidWYtPmJ1Zl9sZW4gLSBhdXRoc2l6ZTsKKwl9CisJY3J5cHQtPmN0bF9mbGFncyB8PSBDVExfRkxBR19QRVJGT1JNX0FFQUQ7CisJcW1ncl9wdXRfZW50cnkoU0VORF9RSUQsIGNyeXB0X3ZpcnQycGh5cyhjcnlwdCkpOworCUJVR19PTihxbWdyX3N0YXRfb3ZlcmZsb3coU0VORF9RSUQpKTsKKwlyZXR1cm4gLUVJTlBST0dSRVNTOwordW5tYXBfc2dfc3JjOgorCWRtYV91bm1hcF9zZyhkZXYsIHJlcS0+c3JjLCByZXFfY3R4LT5zcmNfbmVudHMsIERNQV9CSURJUkVDVElPTkFMKTsKKwlpZiAocmVxX2N0eC0+aG1hY192aXJ0KSB7CisJCWRtYV9wb29sX2ZyZWUoYnVmZmVyX3Bvb2wsIHJlcV9jdHgtPmhtYWNfdmlydCwKKwkJCQljcnlwdC0+aWN2X3Jldl9hZXMpOworCX0KK3VubWFwX3NnX2l2OgorCWRtYV91bm1hcF9zZyhkZXYsICZyZXFfY3R4LT5pdmxpc3QsIDEsIERNQV9CSURJUkVDVElPTkFMKTsKK3VubWFwX3NnX2Fzc29jOgorCWRtYV91bm1hcF9zZyhkZXYsIHJlcS0+YXNzb2MsIHJlcV9jdHgtPmFzc29jX25lbnRzLCBETUFfVE9fREVWSUNFKTsKKwlmcmVlX2J1Zl9jaGFpbihyZXFfY3R4LT5idWZmZXIsIGNyeXB0LT5zcmNfYnVmKTsKK291dDoKKwljcnlwdC0+Y3RsX2ZsYWdzID0gQ1RMX0ZMQUdfVU5VU0VEOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWVhZF9zZXR1cChzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSwgdW5zaWduZWQgaW50IGF1dGhzaXplKQoreworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgodGZtKTsKKwl1MzIgKmZsYWdzID0gJnRmbS0+YmFzZS5jcnRfZmxhZ3M7CisJdW5zaWduZWQgZGlnZXN0X2xlbiA9IGNyeXB0b19hZWFkX2FsZyh0Zm0pLT5tYXhhdXRoc2l6ZTsKKwlpbnQgcmV0OworCisJaWYgKCFjdHgtPmVuY2tleV9sZW4gJiYgIWN0eC0+YXV0aGtleV9sZW4pCisJCXJldHVybiAwOworCWluaXRfY29tcGxldGlvbigmY3R4LT5jb21wbGV0aW9uKTsKKwlhdG9taWNfaW5jKCZjdHgtPmNvbmZpZ3VyaW5nKTsKKworCXJlc2V0X3NhX2RpcigmY3R4LT5lbmNyeXB0KTsKKwlyZXNldF9zYV9kaXIoJmN0eC0+ZGVjcnlwdCk7CisKKwlyZXQgPSBzZXR1cF9jaXBoZXIoJnRmbS0+YmFzZSwgMCwgY3R4LT5lbmNrZXksIGN0eC0+ZW5ja2V5X2xlbik7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisJcmV0ID0gc2V0dXBfY2lwaGVyKCZ0Zm0tPmJhc2UsIDEsIGN0eC0+ZW5ja2V5LCBjdHgtPmVuY2tleV9sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCXJldCA9IHNldHVwX2F1dGgoJnRmbS0+YmFzZSwgMCwgYXV0aHNpemUsIGN0eC0+YXV0aGtleSwKKwkJCWN0eC0+YXV0aGtleV9sZW4sIGRpZ2VzdF9sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCXJldCA9IHNldHVwX2F1dGgoJnRmbS0+YmFzZSwgMSwgYXV0aHNpemUsICBjdHgtPmF1dGhrZXksCisJCQljdHgtPmF1dGhrZXlfbGVuLCBkaWdlc3RfbGVuKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCWlmICgqZmxhZ3MgJiBDUllQVE9fVEZNX1JFU19XRUFLX0tFWSkgeworCQlpZiAoKmZsYWdzICYgQ1JZUFRPX1RGTV9SRVFfV0VBS19LRVkpIHsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlnb3RvIG91dDsKKwkJfSBlbHNlIHsKKwkJCSpmbGFncyAmPSB+Q1JZUFRPX1RGTV9SRVNfV0VBS19LRVk7CisJCX0KKwl9CitvdXQ6CisJaWYgKCFhdG9taWNfZGVjX2FuZF90ZXN0KCZjdHgtPmNvbmZpZ3VyaW5nKSkKKwkJd2FpdF9mb3JfY29tcGxldGlvbigmY3R4LT5jb21wbGV0aW9uKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFlYWRfc2V0YXV0aHNpemUoc3RydWN0IGNyeXB0b19hZWFkICp0Zm0sIHVuc2lnbmVkIGludCBhdXRoc2l6ZSkKK3sKKwlpbnQgbWF4ID0gY3J5cHRvX2FlYWRfYWxnKHRmbSktPm1heGF1dGhzaXplID4+IDI7CisKKwlpZiAoKGF1dGhzaXplPj4yKSA8IDEgfHwgKGF1dGhzaXplPj4yKSA+IG1heCB8fCAoYXV0aHNpemUgJiAzKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJcmV0dXJuIGFlYWRfc2V0dXAodGZtLCBhdXRoc2l6ZSk7Cit9CisKK3N0YXRpYyBpbnQgYWVhZF9zZXRrZXkoc3RydWN0IGNyeXB0b19hZWFkICp0Zm0sIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgodGZtKTsKKwlzdHJ1Y3QgcnRhdHRyICpydGEgPSAoc3RydWN0IHJ0YXR0ciAqKWtleTsKKwlzdHJ1Y3QgY3J5cHRvX2F1dGhlbmNfa2V5X3BhcmFtICpwYXJhbTsKKworCWlmICghUlRBX09LKHJ0YSwga2V5bGVuKSkKKwkJZ290byBiYWRrZXk7CisJaWYgKHJ0YS0+cnRhX3R5cGUgIT0gQ1JZUFRPX0FVVEhFTkNfS0VZQV9QQVJBTSkKKwkJZ290byBiYWRrZXk7CisJaWYgKFJUQV9QQVlMT0FEKHJ0YSkgPCBzaXplb2YoKnBhcmFtKSkKKwkJZ290byBiYWRrZXk7CisKKwlwYXJhbSA9IFJUQV9EQVRBKHJ0YSk7CisJY3R4LT5lbmNrZXlfbGVuID0gYmUzMl90b19jcHUocGFyYW0tPmVuY2tleWxlbik7CisKKwlrZXkgKz0gUlRBX0FMSUdOKHJ0YS0+cnRhX2xlbik7CisJa2V5bGVuIC09IFJUQV9BTElHTihydGEtPnJ0YV9sZW4pOworCisJaWYgKGtleWxlbiA8IGN0eC0+ZW5ja2V5X2xlbikKKwkJZ290byBiYWRrZXk7CisKKwljdHgtPmF1dGhrZXlfbGVuID0ga2V5bGVuIC0gY3R4LT5lbmNrZXlfbGVuOworCW1lbWNweShjdHgtPmVuY2tleSwga2V5ICsgY3R4LT5hdXRoa2V5X2xlbiwgY3R4LT5lbmNrZXlfbGVuKTsKKwltZW1jcHkoY3R4LT5hdXRoa2V5LCBrZXksIGN0eC0+YXV0aGtleV9sZW4pOworCisJcmV0dXJuIGFlYWRfc2V0dXAodGZtLCBjcnlwdG9fYWVhZF9hdXRoc2l6ZSh0Zm0pKTsKK2JhZGtleToKKwljdHgtPmVuY2tleV9sZW4gPSAwOworCWNyeXB0b19hZWFkX3NldF9mbGFncyh0Zm0sIENSWVBUT19URk1fUkVTX0JBRF9LRVlfTEVOKTsKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGludCBhZWFkX2VuY3J5cHQoc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxKQoreworCXVuc2lnbmVkIGl2c2l6ZSA9IGNyeXB0b19hZWFkX2l2c2l6ZShjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKSk7CisJcmV0dXJuIGFlYWRfcGVyZm9ybShyZXEsIDEsIHJlcS0+YXNzb2NsZW4gKyBpdnNpemUsCisJCQlyZXEtPmNyeXB0bGVuLCByZXEtPml2KTsKK30KKworc3RhdGljIGludCBhZWFkX2RlY3J5cHQoc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxKQoreworCXVuc2lnbmVkIGl2c2l6ZSA9IGNyeXB0b19hZWFkX2l2c2l6ZShjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKSk7CisJcmV0dXJuIGFlYWRfcGVyZm9ybShyZXEsIDAsIHJlcS0+YXNzb2NsZW4gKyBpdnNpemUsCisJCQlyZXEtPmNyeXB0bGVuLCByZXEtPml2KTsKK30KKworc3RhdGljIGludCBhZWFkX2dpdmVuY3J5cHQoc3RydWN0IGFlYWRfZ2l2Y3J5cHRfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtID0gYWVhZF9naXZjcnlwdF9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KHRmbSk7CisJdW5zaWduZWQgbGVuLCBpdnNpemUgPSBjcnlwdG9fYWVhZF9pdnNpemUodGZtKTsKKwlfX2JlNjQgc2VxOworCisJLyogY29waWVkIGZyb20gZXNlcWl2LmMgKi8KKwlpZiAoIWN0eC0+c2FsdGVkKSB7CisJCWdldF9yYW5kb21fYnl0ZXMoY3R4LT5zYWx0LCBpdnNpemUpOworCQljdHgtPnNhbHRlZCA9IDE7CisJfQorCW1lbWNweShyZXEtPmFyZXEuaXYsIGN0eC0+c2FsdCwgaXZzaXplKTsKKwlsZW4gPSBpdnNpemU7CisJaWYgKGl2c2l6ZSA+IHNpemVvZih1NjQpKSB7CisJCW1lbXNldChyZXEtPmdpdiwgMCwgaXZzaXplIC0gc2l6ZW9mKHU2NCkpOworCQlsZW4gPSBzaXplb2YodTY0KTsKKwl9CisJc2VxID0gY3B1X3RvX2JlNjQocmVxLT5zZXEpOworCW1lbWNweShyZXEtPmdpdiArIGl2c2l6ZSAtIGxlbiwgJnNlcSwgbGVuKTsKKwlyZXR1cm4gYWVhZF9wZXJmb3JtKCZyZXEtPmFyZXEsIDEsIHJlcS0+YXJlcS5hc3NvY2xlbiwKKwkJCXJlcS0+YXJlcS5jcnlwdGxlbiAraXZzaXplLCByZXEtPmdpdik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaXhwX2FsZyBpeHA0eHhfYWxnb3NbXSA9IHsKK3sKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiY2JjKGRlcykiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWJsa2NpcGhlciA9IHsKKwkJCS5taW5fa2V5c2l6ZQk9IERFU19LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IERFU19LRVlfU0laRSwKKwkJCS5pdnNpemUJCT0gREVTX0JMT0NLX1NJWkUsCisJCQkuZ2VuaXYJCT0gImVzZXFpdiIsCisJCQl9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0RFUyB8IE1PRF9DQkNfRU5DIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF9ERVMgfCBNT0RfQ0JDX0RFQyB8IEtFWUxFTl8xOTIsCisKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiZWNiKGRlcykiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWJsa2NpcGhlciA9IHsKKwkJCS5taW5fa2V5c2l6ZQk9IERFU19LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IERFU19LRVlfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfREVTIHwgTU9EX0VDQiB8IEtFWUxFTl8xOTIsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfREVTIHwgTU9EX0VDQiB8IEtFWUxFTl8xOTIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImNiYyhkZXMzX2VkZSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gREVTM19FREVfS0VZX1NJWkUsCisJCQkubWF4X2tleXNpemUJPSBERVMzX0VERV9LRVlfU0laRSwKKwkJCS5pdnNpemUJCT0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJCS5nZW5pdgkJPSAiZXNlcWl2IiwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfM0RFUyB8IE1PRF9DQkNfRU5DIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF8zREVTIHwgTU9EX0NCQ19ERUMgfCBLRVlMRU5fMTkyLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJlY2IoZGVzM19lZGUpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWJsa2NpcGhlciA9IHsKKwkJCS5taW5fa2V5c2l6ZQk9IERFUzNfRURFX0tFWV9TSVpFLAorCQkJLm1heF9rZXlzaXplCT0gREVTM19FREVfS0VZX1NJWkUsCisJCQl9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EXzNERVMgfCBNT0RfRUNCIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF8zREVTIHwgTU9EX0VDQiB8IEtFWUxFTl8xOTIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImNiYyhhZXMpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFibGtjaXBoZXIgPSB7CisJCQkubWluX2tleXNpemUJPSBBRVNfTUlOX0tFWV9TSVpFLAorCQkJLm1heF9rZXlzaXplCT0gQUVTX01BWF9LRVlfU0laRSwKKwkJCS5pdnNpemUJCT0gQUVTX0JMT0NLX1NJWkUsCisJCQkuZ2VuaXYJCT0gImVzZXFpdiIsCisJCQl9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfRU5DLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfREVDLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJlY2IoYWVzKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gQUVTX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gQUVTX01JTl9LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IEFFU19NQVhfS0VZX1NJWkUsCisJCQl9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9FQ0IsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfQUVTIHwgTU9EX0VDQiwKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiY3RyKGFlcykiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IEFFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWJsa2NpcGhlciA9IHsKKwkJCS5taW5fa2V5c2l6ZQk9IEFFU19NSU5fS0VZX1NJWkUsCisJCQkubWF4X2tleXNpemUJPSBBRVNfTUFYX0tFWV9TSVpFLAorCQkJLml2c2l6ZQkJPSBBRVNfQkxPQ0tfU0laRSwKKwkJCS5nZW5pdgkJPSAiZXNlcWl2IiwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfQUVTIHwgTU9EX0NUUiwKKwkuY2ZnX2RlYyA9IENJUEhfRU5DUiB8IE1PRF9BRVMgfCBNT0RfQ1RSLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJyZmMzNjg2KGN0cihhZXMpKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gQUVTX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gQUVTX01JTl9LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IEFFU19NQVhfS0VZX1NJWkUsCisJCQkuaXZzaXplCQk9IEFFU19CTE9DS19TSVpFLAorCQkJLmdlbml2CQk9ICJlc2VxaXYiLAorCQkJLnNldGtleQkJPSBhYmxrX3JmYzM2ODZfc2V0a2V5LAorCQkJLmVuY3J5cHQJPSBhYmxrX3JmYzM2ODZfY3J5cHQsCisJCQkuZGVjcnlwdAk9IGFibGtfcmZjMzY4Nl9jcnlwdCB9CisJCX0KKwl9LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9DVFIsCisJLmNmZ19kZWMgPSBDSVBIX0VOQ1IgfCBNT0RfQUVTIHwgTU9EX0NUUiwKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiYXV0aGVuYyhobWFjKG1kNSksY2JjKGRlcykpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBERVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFlYWQgPSB7CisJCQkuaXZzaXplCQk9IERFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gTUQ1X0RJR0VTVF9TSVpFLAorCQkJfQorCQl9CisJfSwKKwkuaGFzaCA9ICZoYXNoX2FsZ19tZDUsCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfREVTIHwgTU9EX0NCQ19FTkMgfCBLRVlMRU5fMTkyLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EX0RFUyB8IE1PRF9DQkNfREVDIHwgS0VZTEVOXzE5MiwKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiYXV0aGVuYyhobWFjKG1kNSksY2JjKGRlczNfZWRlKSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hZWFkID0geworCQkJLml2c2l6ZQkJPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gTUQ1X0RJR0VTVF9TSVpFLAorCQkJfQorCQl9CisJfSwKKwkuaGFzaCA9ICZoYXNoX2FsZ19tZDUsCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfM0RFUyB8IE1PRF9DQkNfRU5DIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF8zREVTIHwgTU9EX0NCQ19ERUMgfCBLRVlMRU5fMTkyLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJhdXRoZW5jKGhtYWMoc2hhMSksY2JjKGRlcykpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBERVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFlYWQgPSB7CisJCQkuaXZzaXplCQk9IERFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gU0hBMV9ESUdFU1RfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmhhc2ggPSAmaGFzaF9hbGdfc2hhMSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF9ERVMgfCBNT0RfQ0JDX0VOQyB8IEtFWUxFTl8xOTIsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfREVTIHwgTU9EX0NCQ19ERUMgfCBLRVlMRU5fMTkyLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJhdXRoZW5jKGhtYWMoc2hhMSksY2JjKGRlczNfZWRlKSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hZWFkID0geworCQkJLml2c2l6ZQkJPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gU0hBMV9ESUdFU1RfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmhhc2ggPSAmaGFzaF9hbGdfc2hhMSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF8zREVTIHwgTU9EX0NCQ19FTkMgfCBLRVlMRU5fMTkyLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EXzNERVMgfCBNT0RfQ0JDX0RFQyB8IEtFWUxFTl8xOTIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImF1dGhlbmMoaG1hYyhtZDUpLGNiYyhhZXMpKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gQUVTX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hZWFkID0geworCQkJLml2c2l6ZQkJPSBBRVNfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZQk9IE1ENV9ESUdFU1RfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmhhc2ggPSAmaGFzaF9hbGdfbWQ1LAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfRU5DLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfREVDLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJhdXRoZW5jKGhtYWMoc2hhMSksY2JjKGFlcykpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFlYWQgPSB7CisJCQkuaXZzaXplCQk9IEFFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gU0hBMV9ESUdFU1RfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmhhc2ggPSAmaGFzaF9hbGdfc2hhMSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF9BRVMgfCBNT0RfQ0JDX0VOQywKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF9BRVMgfCBNT0RfQ0JDX0RFQywKK30gfTsKKworI2RlZmluZSBJWFBfUE9TVEZJWCAiLWl4cDR4eCIKK3N0YXRpYyBpbnQgX19pbml0IGl4cF9tb2R1bGVfaW5pdCh2b2lkKQoreworCWludCBudW0gPSBBUlJBWV9TSVpFKGl4cDR4eF9hbGdvcyk7CisJaW50IGksZXJyIDsKKworCWlmIChwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnBzZXVkb19kZXYpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXNwaW5fbG9ja19pbml0KCZkZXNjX2xvY2spOworCXNwaW5fbG9ja19pbml0KCZlbWVyZ19sb2NrKTsKKworCWVyciA9IGluaXRfaXhwX2NyeXB0bygpOworCWlmIChlcnIpIHsKKwkJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoJnBzZXVkb19kZXYpOworCQlyZXR1cm4gZXJyOworCX0KKwlmb3IgKGk9MDsgaTwgbnVtOyBpKyspIHsKKwkJc3RydWN0IGNyeXB0b19hbGcgKmNyYSA9ICZpeHA0eHhfYWxnb3NbaV0uY3J5cHRvOworCisJCWlmIChzbnByaW50ZihjcmEtPmNyYV9kcml2ZXJfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwKKwkJCSIlcyJJWFBfUE9TVEZJWCwgY3JhLT5jcmFfbmFtZSkgPj0KKwkJCUNSWVBUT19NQVhfQUxHX05BTUUpCisJCXsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICghc3VwcG9ydF9hZXMgJiYgKGl4cDR4eF9hbGdvc1tpXS5jZmdfZW5jICYgTU9EX0FFUykpIHsKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICghaXhwNHh4X2FsZ29zW2ldLmhhc2gpIHsKKwkJCS8qIGJsb2NrIGNpcGhlcnMgKi8KKwkJCWNyYS0+Y3JhX3R5cGUgPSAmY3J5cHRvX2FibGtjaXBoZXJfdHlwZTsKKwkJCWNyYS0+Y3JhX2ZsYWdzID0gQ1JZUFRPX0FMR19UWVBFX0FCTEtDSVBIRVIgfAorCQkJCQkgQ1JZUFRPX0FMR19BU1lOQzsKKwkJCWlmICghY3JhLT5jcmFfYWJsa2NpcGhlci5zZXRrZXkpCisJCQkJY3JhLT5jcmFfYWJsa2NpcGhlci5zZXRrZXkgPSBhYmxrX3NldGtleTsKKwkJCWlmICghY3JhLT5jcmFfYWJsa2NpcGhlci5lbmNyeXB0KQorCQkJCWNyYS0+Y3JhX2FibGtjaXBoZXIuZW5jcnlwdCA9IGFibGtfZW5jcnlwdDsKKwkJCWlmICghY3JhLT5jcmFfYWJsa2NpcGhlci5kZWNyeXB0KQorCQkJCWNyYS0+Y3JhX2FibGtjaXBoZXIuZGVjcnlwdCA9IGFibGtfZGVjcnlwdDsKKwkJCWNyYS0+Y3JhX2luaXQgPSBpbml0X3RmbV9hYmxrOworCQl9IGVsc2UgeworCQkJLyogYXV0aGVuYyAqLworCQkJY3JhLT5jcmFfdHlwZSA9ICZjcnlwdG9fYWVhZF90eXBlOworCQkJY3JhLT5jcmFfZmxhZ3MgPSBDUllQVE9fQUxHX1RZUEVfQUVBRCB8CisJCQkJCSBDUllQVE9fQUxHX0FTWU5DOworCQkJY3JhLT5jcmFfYWVhZC5zZXRrZXkgPSBhZWFkX3NldGtleTsKKwkJCWNyYS0+Y3JhX2FlYWQuc2V0YXV0aHNpemUgPSBhZWFkX3NldGF1dGhzaXplOworCQkJY3JhLT5jcmFfYWVhZC5lbmNyeXB0ID0gYWVhZF9lbmNyeXB0OworCQkJY3JhLT5jcmFfYWVhZC5kZWNyeXB0ID0gYWVhZF9kZWNyeXB0OworCQkJY3JhLT5jcmFfYWVhZC5naXZlbmNyeXB0ID0gYWVhZF9naXZlbmNyeXB0OworCQkJY3JhLT5jcmFfaW5pdCA9IGluaXRfdGZtX2FlYWQ7CisJCX0KKwkJY3JhLT5jcmFfY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgaXhwX2N0eCk7CisJCWNyYS0+Y3JhX21vZHVsZSA9IFRISVNfTU9EVUxFOworCQljcmEtPmNyYV9hbGlnbm1hc2sgPSAzOworCQljcmEtPmNyYV9wcmlvcml0eSA9IDMwMDsKKwkJY3JhLT5jcmFfZXhpdCA9IGV4aXRfdGZtOworCQlpZiAoY3J5cHRvX3JlZ2lzdGVyX2FsZyhjcmEpKQorCQkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gcmVnaXN0ZXIgJyVzJ1xuIiwKKwkJCQljcmEtPmNyYV9uYW1lKTsKKwkJZWxzZQorCQkJaXhwNHh4X2FsZ29zW2ldLnJlZ2lzdGVyZWQgPSAxOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGl4cF9tb2R1bGVfZXhpdCh2b2lkKQoreworCWludCBudW0gPSBBUlJBWV9TSVpFKGl4cDR4eF9hbGdvcyk7CisJaW50IGk7CisKKwlmb3IgKGk9MDsgaTwgbnVtOyBpKyspIHsKKwkJaWYgKGl4cDR4eF9hbGdvc1tpXS5yZWdpc3RlcmVkKQorCQkJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZpeHA0eHhfYWxnb3NbaV0uY3J5cHRvKTsKKwl9CisJcmVsZWFzZV9peHBfY3J5cHRvKCk7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoJnBzZXVkb19kZXYpOworfQorCittb2R1bGVfaW5pdChpeHBfbW9kdWxlX2luaXQpOworbW9kdWxlX2V4aXQoaXhwX21vZHVsZV9leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0FVVEhPUigiQ2hyaXN0aWFuIEhvaG5zdGFlZHQgPGNob2huc3RhZWR0QGlubm9taW5hdGUuY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJJWFA0eHggaGFyZHdhcmUgY3J5cHRvIik7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stYWVzLmMgYi9kcml2ZXJzL2NyeXB0by9wYWRsb2NrLWFlcy5jCmluZGV4IGJiMzBlYjkuLjU0YTJhMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stYWVzLmMKKysrIGIvZHJpdmVycy9jcnlwdG8vcGFkbG9jay1hZXMuYwpAQCAtMzg1LDEyICszODUsMTIgQEAKIAlpbnQgcmV0OwogCiAJaWYgKCFjcHVfaGFzX3hjcnlwdCkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJWSUEgUGFkTG9jayBub3QgZGV0ZWN0ZWQuXG4iKTsKKwkJcHJpbnRrKEtFUk5fTk9USUNFIFBGWCAiVklBIFBhZExvY2sgbm90IGRldGVjdGVkLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAogCWlmICghY3B1X2hhc194Y3J5cHRfZW5hYmxlZCkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJWSUEgUGFkTG9jayBkZXRlY3RlZCwgYnV0IG5vdCBlbmFibGVkLiBIbW0sIHN0cmFuZ2UuLi5cbiIpOworCQlwcmludGsoS0VSTl9OT1RJQ0UgUEZYICJWSUEgUGFkTG9jayBkZXRlY3RlZCwgYnV0IG5vdCBlbmFibGVkLiBIbW0sIHN0cmFuZ2UuLi5cbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stc2hhLmMgYi9kcml2ZXJzL2NyeXB0by9wYWRsb2NrLXNoYS5jCmluZGV4IGM2NjZiNGUuLjQwZDU2ODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stc2hhLmMKKysrIGIvZHJpdmVycy9jcnlwdG8vcGFkbG9jay1zaGEuYwpAQCAtMjU0LDEyICsyNTQsMTIgQEAKIAlpbnQgcmMgPSAtRU5PREVWOwogCiAJaWYgKCFjcHVfaGFzX3BoZSkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJWSUEgUGFkTG9jayBIYXNoIEVuZ2luZSBub3QgZGV0ZWN0ZWQuXG4iKTsKKwkJcHJpbnRrKEtFUk5fTk9USUNFIFBGWCAiVklBIFBhZExvY2sgSGFzaCBFbmdpbmUgbm90IGRldGVjdGVkLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAogCWlmICghY3B1X2hhc19waGVfZW5hYmxlZCkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJWSUEgUGFkTG9jayBkZXRlY3RlZCwgYnV0IG5vdCBlbmFibGVkLiBIbW0sIHN0cmFuZ2UuLi5cbiIpOworCQlwcmludGsoS0VSTl9OT1RJQ0UgUEZYICJWSUEgUGFkTG9jayBkZXRlY3RlZCwgYnV0IG5vdCBlbmFibGVkLiBIbW0sIHN0cmFuZ2UuLi5cbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3RhbGl0b3MuYyBiL2RyaXZlcnMvY3J5cHRvL3RhbGl0b3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTE5NDNkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5jCkBAIC0wLDAgKzEsMTU5NyBAQAorLyoKKyAqIHRhbGl0b3MgLSBGcmVlc2NhbGUgSW50ZWdyYXRlZCBTZWN1cml0eSBFbmdpbmUgKFNFQykgZGV2aWNlIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLgorICoKKyAqIFNjYXR0ZXJsaXN0IENyeXB0byBBUEkgZ2x1ZSBjb2RlIGNvcGllZCBmcm9tIGZpbGVzIHdpdGggdGhlIGZvbGxvd2luZzoKKyAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA3IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KKyAqCisgKiBDcnlwdG8gYWxnb3JpdGhtIHJlZ2lzdHJhdGlvbiBjb2RlIGNvcGllZCBmcm9tIGhpZm4gZHJpdmVyOgorICogMjAwNysgQ29weXJpZ2h0IChjKSBFdmdlbml5IFBvbHlha292IDxqb2hucG9sQDJrYS5taXB0LnJ1PgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorI2luY2x1ZGUgPGxpbnV4L2h3X3JhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvcnRuZXRsaW5rLmg+CisKKyNpbmNsdWRlIDxjcnlwdG8vYWxnYXBpLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2Flcy5oPgorI2luY2x1ZGUgPGNyeXB0by9kZXMuaD4KKyNpbmNsdWRlIDxjcnlwdG8vc2hhLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2FlYWQuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYXV0aGVuYy5oPgorCisjaW5jbHVkZSAidGFsaXRvcy5oIgorCisjZGVmaW5lIFRBTElUT1NfVElNRU9VVCAxMDAwMDAKKyNkZWZpbmUgVEFMSVRPU19NQVhfREFUQV9MRU4gNjU1MzUKKworI2RlZmluZSBERVNDX1RZUEUoZGVzY19oZHIpICgoYmUzMl90b19jcHUoZGVzY19oZHIpID4+IDMpICYgMHgxZikKKyNkZWZpbmUgUFJJTUFSWV9FVShkZXNjX2hkcikgKChiZTMyX3RvX2NwdShkZXNjX2hkcikgPj4gMjgpICYgMHhmKQorI2RlZmluZSBTRUNPTkRBUllfRVUoZGVzY19oZHIpICgoYmUzMl90b19jcHUoZGVzY19oZHIpID4+IDE2KSAmIDB4ZikKKworLyogZGVzY3JpcHRvciBwb2ludGVyIGVudHJ5ICovCitzdHJ1Y3QgdGFsaXRvc19wdHIgeworCV9fYmUxNiBsZW47CS8qIGxlbmd0aCAqLworCXU4IGpfZXh0ZW50OwkvKiBqdW1wIHRvIHNnIGxpbmsgdGFibGUgYW5kL29yIGV4dGVudCAqLworCXU4IGVwdHI7CS8qIGV4dGVuZGVkIGFkZHJlc3MgKi8KKwlfX2JlMzIgcHRyOwkvKiBhZGRyZXNzICovCit9OworCisvKiBkZXNjcmlwdG9yICovCitzdHJ1Y3QgdGFsaXRvc19kZXNjIHsKKwlfX2JlMzIgaGRyOwkJCS8qIGhlYWRlciBoaWdoIGJpdHMgKi8KKwlfX2JlMzIgaGRyX2xvOwkJCS8qIGhlYWRlciBsb3cgYml0cyAqLworCXN0cnVjdCB0YWxpdG9zX3B0ciBwdHJbN107CS8qIHB0ci9sZW4gcGFpciBhcnJheSAqLworfTsKKworLyoqCisgKiB0YWxpdG9zX3JlcXVlc3QgLSBkZXNjcmlwdG9yIHN1Ym1pc3Npb24gcmVxdWVzdAorICogQGRlc2M6IGRlc2NyaXB0b3IgcG9pbnRlciAoa2VybmVsIHZpcnR1YWwpCisgKiBAZG1hX2Rlc2M6IGRlc2NyaXB0b3IncyBwaHlzaWNhbCBidXMgYWRkcmVzcworICogQGNhbGxiYWNrOiB3aG9tIHRvIGNhbGwgd2hlbiBkZXNjcmlwdG9yIHByb2Nlc3NpbmcgaXMgZG9uZQorICogQGNvbnRleHQ6IGNhbGxlciBjb250ZXh0IChvcHRpb25hbCkKKyAqLworc3RydWN0IHRhbGl0b3NfcmVxdWVzdCB7CisJc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYzsKKwlkbWFfYWRkcl90IGRtYV9kZXNjOworCXZvaWQgKCpjYWxsYmFjaykgKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYywKKwkgICAgICAgICAgICAgICAgICB2b2lkICpjb250ZXh0LCBpbnQgZXJyb3IpOworCXZvaWQgKmNvbnRleHQ7Cit9OworCitzdHJ1Y3QgdGFsaXRvc19wcml2YXRlIHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJc3RydWN0IG9mX2RldmljZSAqb2ZkZXY7CisJdm9pZCBfX2lvbWVtICpyZWc7CisJaW50IGlycTsKKworCS8qIFNFQyB2ZXJzaW9uIGdlb21ldHJ5IChmcm9tIGRldmljZSB0cmVlIG5vZGUpICovCisJdW5zaWduZWQgaW50IG51bV9jaGFubmVsczsKKwl1bnNpZ25lZCBpbnQgY2hmaWZvX2xlbjsKKwl1bnNpZ25lZCBpbnQgZXhlY191bml0czsKKwl1bnNpZ25lZCBpbnQgZGVzY190eXBlczsKKworCS8qIG5leHQgY2hhbm5lbCB0byBiZSBhc3NpZ25lZCBuZXh0IGluY29taW5nIGRlc2NyaXB0b3IgKi8KKwlhdG9taWNfdCBsYXN0X2NoYW47CisKKwkvKiBwZXItY2hhbm5lbCByZXF1ZXN0IGZpZm8gKi8KKwlzdHJ1Y3QgdGFsaXRvc19yZXF1ZXN0ICoqZmlmbzsKKworCS8qCisJICogbGVuZ3RoIG9mIHRoZSByZXF1ZXN0IGZpZm8KKwkgKiBmaWZvX2xlbiBpcyBjaGZpZm9fbGVuIHJvdW5kZWQgdXAgdG8gbmV4dCBwb3dlciBvZiAyCisJICogc28gd2UgY2FuIHVzZSBiaXR3aXNlIG9wcyB0byB3cmFwCisJICovCisJdW5zaWduZWQgaW50IGZpZm9fbGVuOworCisJLyogcGVyLWNoYW5uZWwgaW5kZXggdG8gbmV4dCBmcmVlIGRlc2NyaXB0b3IgcmVxdWVzdCAqLworCWludCAqaGVhZDsKKworCS8qIHBlci1jaGFubmVsIGluZGV4IHRvIG5leHQgaW4tcHJvZ3Jlc3MvZG9uZSBkZXNjcmlwdG9yIHJlcXVlc3QgKi8KKwlpbnQgKnRhaWw7CisKKwkvKiBwZXItY2hhbm5lbCByZXF1ZXN0IHN1Ym1pc3Npb24gKGhlYWQpIGFuZCByZWxlYXNlICh0YWlsKSBsb2NrcyAqLworCXNwaW5sb2NrX3QgKmhlYWRfbG9jazsKKwlzcGlubG9ja190ICp0YWlsX2xvY2s7CisKKwkvKiByZXF1ZXN0IGNhbGxiYWNrIHRhc2tsZXQgKi8KKwlzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgZG9uZV90YXNrOworCXN0cnVjdCB0YXNrbGV0X3N0cnVjdCBlcnJvcl90YXNrOworCisJLyogbGlzdCBvZiByZWdpc3RlcmVkIGFsZ29yaXRobXMgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGFsZ19saXN0OworCisJLyogaHdybmcgZGV2aWNlICovCisJc3RydWN0IGh3cm5nIHJuZzsKK307CisKKy8qCisgKiBtYXAgdmlydHVhbCBzaW5nbGUgKGNvbnRpZ3VvdXMpIHBvaW50ZXIgdG8gaC93IGRlc2NyaXB0b3IgcG9pbnRlcgorICovCitzdGF0aWMgdm9pZCBtYXBfc2luZ2xlX3RhbGl0b3NfcHRyKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgdGFsaXRvc19wdHIgKnRhbGl0b3NfcHRyLAorCQkJCSAgIHVuc2lnbmVkIHNob3J0IGxlbiwgdm9pZCAqZGF0YSwKKwkJCQkgICB1bnNpZ25lZCBjaGFyIGV4dGVudCwKKwkJCQkgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCit7CisJdGFsaXRvc19wdHItPmxlbiA9IGNwdV90b19iZTE2KGxlbik7CisJdGFsaXRvc19wdHItPnB0ciA9IGNwdV90b19iZTMyKGRtYV9tYXBfc2luZ2xlKGRldiwgZGF0YSwgbGVuLCBkaXIpKTsKKwl0YWxpdG9zX3B0ci0+al9leHRlbnQgPSBleHRlbnQ7Cit9CisKKy8qCisgKiB1bm1hcCBidXMgc2luZ2xlIChjb250aWd1b3VzKSBoL3cgZGVzY3JpcHRvciBwb2ludGVyCisgKi8KK3N0YXRpYyB2b2lkIHVubWFwX3NpbmdsZV90YWxpdG9zX3B0cihzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgICBzdHJ1Y3QgdGFsaXRvc19wdHIgKnRhbGl0b3NfcHRyLAorCQkJCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQoreworCWRtYV91bm1hcF9zaW5nbGUoZGV2LCBiZTMyX3RvX2NwdSh0YWxpdG9zX3B0ci0+cHRyKSwKKwkJCSBiZTE2X3RvX2NwdSh0YWxpdG9zX3B0ci0+bGVuKSwgZGlyKTsKK30KKworc3RhdGljIGludCByZXNldF9jaGFubmVsKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGNoKQoreworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBpbnQgdGltZW91dCA9IFRBTElUT1NfVElNRU9VVDsKKworCXNldGJpdHMzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NDQ1IoY2gpLCBUQUxJVE9TX0NDQ1JfUkVTRVQpOworCisJd2hpbGUgKChpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUihjaCkpICYgVEFMSVRPU19DQ0NSX1JFU0VUKQorCSAgICAgICAmJiAtLXRpbWVvdXQpCisJCWNwdV9yZWxheCgpOworCisJaWYgKHRpbWVvdXQgPT0gMCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZXNldCBjaGFubmVsICVkXG4iLCBjaCk7CisJCXJldHVybiAtRUlPOworCX0KKworCS8qIHNldCBkb25lIHdyaXRlYmFjayBhbmQgSVJRICovCisJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUl9MTyhjaCksIFRBTElUT1NfQ0NDUl9MT19DRFdFIHwKKwkJICBUQUxJVE9TX0NDQ1JfTE9fQ0RJRSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByZXNldF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBpbnQgdGltZW91dCA9IFRBTElUT1NfVElNRU9VVDsKKworCXNldGJpdHMzMihwcml2LT5yZWcgKyBUQUxJVE9TX01DUiwgVEFMSVRPU19NQ1JfU1dSKTsKKworCXdoaWxlICgoaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX01DUikgJiBUQUxJVE9TX01DUl9TV1IpCisJICAgICAgICYmIC0tdGltZW91dCkKKwkJY3B1X3JlbGF4KCk7CisKKwlpZiAodGltZW91dCA9PSAwKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlc2V0IGRldmljZVxuIik7CisJCXJldHVybiAtRUlPOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogUmVzZXQgYW5kIGluaXRpYWxpemUgdGhlIGRldmljZQorICovCitzdGF0aWMgaW50IGluaXRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50IGNoLCBlcnI7CisKKwkvKgorCSAqIE1hc3RlciByZXNldAorCSAqIGVycmF0YSBkb2N1bWVudGF0aW9uOiB3YXJuaW5nOiBjZXJ0YWluIFNFQyBpbnRlcnJ1cHRzCisJICogYXJlIG5vdCBmdWxseSBjbGVhcmVkIGJ5IHdyaXRpbmcgdGhlIE1DUjpTV1IgYml0LAorCSAqIHNldCBiaXQgdHdpY2UgdG8gY29tcGxldGVseSByZXNldAorCSAqLworCWVyciA9IHJlc2V0X2RldmljZShkZXYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwllcnIgPSByZXNldF9kZXZpY2UoZGV2KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJLyogcmVzZXQgY2hhbm5lbHMgKi8KKwlmb3IgKGNoID0gMDsgY2ggPCBwcml2LT5udW1fY2hhbm5lbHM7IGNoKyspIHsKKwkJZXJyID0gcmVzZXRfY2hhbm5lbChkZXYsIGNoKTsKKwkJaWYgKGVycikKKwkJCXJldHVybiBlcnI7CisJfQorCisJLyogZW5hYmxlIGNoYW5uZWwgZG9uZSBhbmQgZXJyb3IgaW50ZXJydXB0cyAqLworCXNldGJpdHMzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lNUiwgVEFMSVRPU19JTVJfSU5JVCk7CisJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfSU1SX0xPLCBUQUxJVE9TX0lNUl9MT19JTklUKTsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIHRhbGl0b3Nfc3VibWl0IC0gc3VibWl0cyBhIGRlc2NyaXB0b3IgdG8gdGhlIGRldmljZSBmb3IgcHJvY2Vzc2luZworICogQGRldjoJdGhlIFNFQyBkZXZpY2UgdG8gYmUgdXNlZAorICogQGRlc2M6CXRoZSBkZXNjcmlwdG9yIHRvIGJlIHByb2Nlc3NlZCBieSB0aGUgZGV2aWNlCisgKiBAY2FsbGJhY2s6CXdob20gdG8gY2FsbCB3aGVuIHByb2Nlc3NpbmcgaXMgY29tcGxldGUKKyAqIEBjb250ZXh0OglhIGhhbmRsZSBmb3IgdXNlIGJ5IGNhbGxlciAob3B0aW9uYWwpCisgKgorICogZGVzYyBtdXN0IGNvbnRhaW4gdmFsaWQgZG1hLW1hcHBlZCAoYnVzIHBoeXNpY2FsKSBhZGRyZXNzIHBvaW50ZXJzLgorICogY2FsbGJhY2sgbXVzdCBjaGVjayBlcnIgYW5kIGZlZWRiYWNrIGluIGRlc2NyaXB0b3IgaGVhZGVyCisgKiBmb3IgZGV2aWNlIHByb2Nlc3Npbmcgc3RhdHVzLgorICovCitzdGF0aWMgaW50IHRhbGl0b3Nfc3VibWl0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYywKKwkJCSAgdm9pZCAoKmNhbGxiYWNrKShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCSAgIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MsCisJCQkJCSAgIHZvaWQgKmNvbnRleHQsIGludCBlcnJvciksCisJCQkgIHZvaWQgKmNvbnRleHQpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCB0YWxpdG9zX3JlcXVlc3QgKnJlcXVlc3Q7CisJdW5zaWduZWQgbG9uZyBmbGFncywgY2g7CisJaW50IGhlYWQ7CisKKwkvKiBzZWxlY3QgZG9uZSBub3RpZmljYXRpb24gKi8KKwlkZXNjLT5oZHIgfD0gREVTQ19IRFJfRE9ORV9OT1RJRlk7CisKKwkvKiBlbXVsYXRlIFNFQydzIHJvdW5kLXJvYmluIGNoYW5uZWwgZmlmbyBwb2xsaW5nIHNjaGVtZSAqLworCWNoID0gYXRvbWljX2luY19yZXR1cm4oJnByaXYtPmxhc3RfY2hhbikgJiAocHJpdi0+bnVtX2NoYW5uZWxzIC0gMSk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+aGVhZF9sb2NrW2NoXSwgZmxhZ3MpOworCisJaGVhZCA9IHByaXYtPmhlYWRbY2hdOworCXJlcXVlc3QgPSAmcHJpdi0+Zmlmb1tjaF1baGVhZF07CisKKwlpZiAocmVxdWVzdC0+ZGVzYykgeworCQkvKiByZXF1ZXN0IHF1ZXVlIGlzIGZ1bGwgKi8KKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+aGVhZF9sb2NrW2NoXSwgZmxhZ3MpOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisKKwkvKiBtYXAgZGVzY3JpcHRvciBhbmQgc2F2ZSBjYWxsZXIgZGF0YSAqLworCXJlcXVlc3QtPmRtYV9kZXNjID0gZG1hX21hcF9zaW5nbGUoZGV2LCBkZXNjLCBzaXplb2YoKmRlc2MpLAorCQkJCQkgICBETUFfQklESVJFQ1RJT05BTCk7CisJcmVxdWVzdC0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKKwlyZXF1ZXN0LT5jb250ZXh0ID0gY29udGV4dDsKKworCS8qIGluY3JlbWVudCBmaWZvIGhlYWQgKi8KKwlwcml2LT5oZWFkW2NoXSA9IChwcml2LT5oZWFkW2NoXSArIDEpICYgKHByaXYtPmZpZm9fbGVuIC0gMSk7CisKKwlzbXBfd21iKCk7CisJcmVxdWVzdC0+ZGVzYyA9IGRlc2M7CisKKwkvKiBHTyEgKi8KKwl3bWIoKTsKKwlvdXRfYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0ZGX0xPKGNoKSwgcmVxdWVzdC0+ZG1hX2Rlc2MpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+aGVhZF9sb2NrW2NoXSwgZmxhZ3MpOworCisJcmV0dXJuIC1FSU5QUk9HUkVTUzsKK30KKworLyoKKyAqIHByb2Nlc3Mgd2hhdCB3YXMgZG9uZSwgbm90aWZ5IGNhbGxiYWNrIG9mIGVycm9yIGlmIG5vdAorICovCitzdGF0aWMgdm9pZCBmbHVzaF9jaGFubmVsKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGNoLCBpbnQgZXJyb3IsIGludCByZXNldF9jaCkKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IHRhbGl0b3NfcmVxdWVzdCAqcmVxdWVzdCwgc2F2ZWRfcmVxOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHRhaWwsIHN0YXR1czsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT50YWlsX2xvY2tbY2hdLCBmbGFncyk7CisKKwl0YWlsID0gcHJpdi0+dGFpbFtjaF07CisJd2hpbGUgKHByaXYtPmZpZm9bY2hdW3RhaWxdLmRlc2MpIHsKKwkJcmVxdWVzdCA9ICZwcml2LT5maWZvW2NoXVt0YWlsXTsKKworCQkvKiBkZXNjcmlwdG9ycyB3aXRoIHRoZWlyIGRvbmUgYml0cyBzZXQgZG9uJ3QgZ2V0IHRoZSBlcnJvciAqLworCQlybWIoKTsKKwkJaWYgKChyZXF1ZXN0LT5kZXNjLT5oZHIgJiBERVNDX0hEUl9ET05FKSA9PSBERVNDX0hEUl9ET05FKQorCQkJc3RhdHVzID0gMDsKKwkJZWxzZQorCQkJaWYgKCFlcnJvcikKKwkJCQlicmVhazsKKwkJCWVsc2UKKwkJCQlzdGF0dXMgPSBlcnJvcjsKKworCQlkbWFfdW5tYXBfc2luZ2xlKGRldiwgcmVxdWVzdC0+ZG1hX2Rlc2MsCisJCQlzaXplb2Yoc3RydWN0IHRhbGl0b3NfZGVzYyksIERNQV9CSURJUkVDVElPTkFMKTsKKworCQkvKiBjb3B5IGVudHJpZXMgc28gd2UgY2FuIGNhbGwgY2FsbGJhY2sgb3V0c2lkZSBsb2NrICovCisJCXNhdmVkX3JlcS5kZXNjID0gcmVxdWVzdC0+ZGVzYzsKKwkJc2F2ZWRfcmVxLmNhbGxiYWNrID0gcmVxdWVzdC0+Y2FsbGJhY2s7CisJCXNhdmVkX3JlcS5jb250ZXh0ID0gcmVxdWVzdC0+Y29udGV4dDsKKworCQkvKiByZWxlYXNlIHJlcXVlc3QgZW50cnkgaW4gZmlmbyAqLworCQlzbXBfd21iKCk7CisJCXJlcXVlc3QtPmRlc2MgPSBOVUxMOworCisJCS8qIGluY3JlbWVudCBmaWZvIHRhaWwgKi8KKwkJcHJpdi0+dGFpbFtjaF0gPSAodGFpbCArIDEpICYgKHByaXYtPmZpZm9fbGVuIC0gMSk7CisKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+dGFpbF9sb2NrW2NoXSwgZmxhZ3MpOworCQlzYXZlZF9yZXEuY2FsbGJhY2soZGV2LCBzYXZlZF9yZXEuZGVzYywgc2F2ZWRfcmVxLmNvbnRleHQsCisJCQkJICAgc3RhdHVzKTsKKwkJLyogY2hhbm5lbCBtYXkgcmVzdW1lIHByb2Nlc3NpbmcgaW4gc2luZ2xlIGRlc2MgZXJyb3IgY2FzZSAqLworCQlpZiAoZXJyb3IgJiYgIXJlc2V0X2NoICYmIHN0YXR1cyA9PSBlcnJvcikKKwkJCXJldHVybjsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPnRhaWxfbG9ja1tjaF0sIGZsYWdzKTsKKwkJdGFpbCA9IHByaXYtPnRhaWxbY2hdOworCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPnRhaWxfbG9ja1tjaF0sIGZsYWdzKTsKK30KKworLyoKKyAqIHByb2Nlc3MgY29tcGxldGVkIHJlcXVlc3RzIGZvciBjaGFubmVscyB0aGF0IGhhdmUgZG9uZSBzdGF0dXMKKyAqLworc3RhdGljIHZvaWQgdGFsaXRvc19kb25lKHVuc2lnbmVkIGxvbmcgZGF0YSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAoc3RydWN0IGRldmljZSAqKWRhdGE7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludCBjaDsKKworCWZvciAoY2ggPSAwOyBjaCA8IHByaXYtPm51bV9jaGFubmVsczsgY2grKykKKwkJZmx1c2hfY2hhbm5lbChkZXYsIGNoLCAwLCAwKTsKK30KKworLyoKKyAqIGxvY2F0ZSBjdXJyZW50IChvZmZlbmRpbmcpIGRlc2NyaXB0b3IKKyAqLworc3RhdGljIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmN1cnJlbnRfZGVzYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBjaCkKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50IHRhaWwgPSBwcml2LT50YWlsW2NoXTsKKwlkbWFfYWRkcl90IGN1cl9kZXNjOworCisJY3VyX2Rlc2MgPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0RQUl9MTyhjaCkpOworCisJd2hpbGUgKHByaXYtPmZpZm9bY2hdW3RhaWxdLmRtYV9kZXNjICE9IGN1cl9kZXNjKSB7CisJCXRhaWwgPSAodGFpbCArIDEpICYgKHByaXYtPmZpZm9fbGVuIC0gMSk7CisJCWlmICh0YWlsID09IHByaXYtPnRhaWxbY2hdKSB7CisJCQlkZXZfZXJyKGRldiwgImNvdWxkbid0IGxvY2F0ZSBjdXJyZW50IGRlc2NyaXB0b3JcbiIpOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKwl9CisKKwlyZXR1cm4gcHJpdi0+Zmlmb1tjaF1bdGFpbF0uZGVzYzsKK30KKworLyoKKyAqIHVzZXIgZGlhZ25vc3RpY3M7IHJlcG9ydCByb290IGNhdXNlIG9mIGVycm9yIGJhc2VkIG9uIGV4ZWN1dGlvbiB1bml0IHN0YXR1cworICovCitzdGF0aWMgdm9pZCByZXBvcnRfZXVfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LCBpbnQgY2gsIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludCBpOworCisJc3dpdGNoIChkZXNjLT5oZHIgJiBERVNDX0hEUl9TRUwwX01BU0spIHsKKwljYXNlIERFU0NfSERSX1NFTDBfQUZFVToKKwkJZGV2X2VycihkZXYsICJBRkVVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0FGRVVJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0FGRVVJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX0RFVToKKwkJZGV2X2VycihkZXYsICJERVVJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfREVVSVNSKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19ERVVJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX01ERVVBOgorCWNhc2UgREVTQ19IRFJfU0VMMF9NREVVQjoKKwkJZGV2X2VycihkZXYsICJNREVVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX01ERVVJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX01ERVVJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX1JORzoKKwkJZGV2X2VycihkZXYsICJSTkdVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1JOR1VJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1JOR1VJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX1BLRVU6CisJCWRldl9lcnIoZGV2LCAiUEtFVUlTUiAweCUwOHhfJTA4eFxuIiwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19QS0VVSVNSKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19QS0VVSVNSX0xPKSk7CisJCWJyZWFrOworCWNhc2UgREVTQ19IRFJfU0VMMF9BRVNVOgorCQlkZXZfZXJyKGRldiwgIkFFU1VJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQUVTVUlTUiksCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQUVTVUlTUl9MTykpOworCQlicmVhazsKKwljYXNlIERFU0NfSERSX1NFTDBfQ1JDVToKKwkJZGV2X2VycihkZXYsICJDUkNVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NSQ1VJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NSQ1VJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX0tFVToKKwkJZGV2X2VycihkZXYsICJLRVVJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfS0VVSVNSKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19LRVVJU1JfTE8pKTsKKwkJYnJlYWs7CisJfQorCisJc3dpdGNoIChkZXNjLT5oZHIgJiBERVNDX0hEUl9TRUwxX01BU0spIHsKKwljYXNlIERFU0NfSERSX1NFTDFfTURFVUE6CisJY2FzZSBERVNDX0hEUl9TRUwxX01ERVVCOgorCQlkZXZfZXJyKGRldiwgIk1ERVVJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfTURFVUlTUiksCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfTURFVUlTUl9MTykpOworCQlicmVhazsKKwljYXNlIERFU0NfSERSX1NFTDFfQ1JDVToKKwkJZGV2X2VycihkZXYsICJDUkNVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NSQ1VJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NSQ1VJU1JfTE8pKTsKKwkJYnJlYWs7CisJfQorCisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKKwkJZGV2X2VycihkZXYsICJERVNDQlVGIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0RFU0NCVUYoY2gpICsgOCppKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19ERVNDQlVGX0xPKGNoKSArIDgqaSkpOworfQorCisvKgorICogcmVjb3ZlciBmcm9tIGVycm9yIGludGVycnVwdHMKKyAqLworc3RhdGljIHZvaWQgdGFsaXRvc19lcnJvcih1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gKHN0cnVjdCBkZXZpY2UgKilkYXRhOworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBpbnQgdGltZW91dCA9IFRBTElUT1NfVElNRU9VVDsKKwlpbnQgY2gsIGVycm9yLCByZXNldF9kZXYgPSAwLCByZXNldF9jaCA9IDA7CisJdTMyIGlzciwgaXNyX2xvLCB2LCB2X2xvOworCisJaXNyID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lTUik7CisJaXNyX2xvID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lTUl9MTyk7CisKKwlmb3IgKGNoID0gMDsgY2ggPCBwcml2LT5udW1fY2hhbm5lbHM7IGNoKyspIHsKKwkJLyogc2tpcCBjaGFubmVscyB3aXRob3V0IGVycm9ycyAqLworCQlpZiAoIShpc3IgJiAoMSA8PCAoY2ggKiAyICsgMSkpKSkKKwkJCWNvbnRpbnVlOworCisJCWVycm9yID0gLUVJTlZBTDsKKworCQl2ID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NDUFNSKGNoKSk7CisJCXZfbG8gPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NQU1JfTE8oY2gpKTsKKworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fRE9GKSB7CisJCQlkZXZfZXJyKGRldiwgImRvdWJsZSBmZXRjaCBmaWZvIG92ZXJmbG93IGVycm9yXG4iKTsKKwkJCWVycm9yID0gLUVBR0FJTjsKKwkJCXJlc2V0X2NoID0gMTsKKwkJfQorCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fU09GKSB7CisJCQkvKiBoL3cgZHJvcHBlZCBkZXNjcmlwdG9yICovCisJCQlkZXZfZXJyKGRldiwgInNpbmdsZSBmZXRjaCBmaWZvIG92ZXJmbG93IGVycm9yXG4iKTsKKwkJCWVycm9yID0gLUVBR0FJTjsKKwkJfQorCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fTURURSkKKwkJCWRldl9lcnIoZGV2LCAibWFzdGVyIGRhdGEgdHJhbnNmZXIgZXJyb3JcbiIpOworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fU0dETFopCisJCQlkZXZfZXJyKGRldiwgInMvZyBkYXRhIGxlbmd0aCB6ZXJvIGVycm9yXG4iKTsKKwkJaWYgKHZfbG8gJiBUQUxJVE9TX0NDUFNSX0xPX0ZQWikKKwkJCWRldl9lcnIoZGV2LCAiZmV0Y2ggcG9pbnRlciB6ZXJvIGVycm9yXG4iKTsKKwkJaWYgKHZfbG8gJiBUQUxJVE9TX0NDUFNSX0xPX0lESCkKKwkJCWRldl9lcnIoZGV2LCAiaWxsZWdhbCBkZXNjcmlwdG9yIGhlYWRlciBlcnJvclxuIik7CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19JRVUpCisJCQlkZXZfZXJyKGRldiwgImludmFsaWQgZXhlY3V0aW9uIHVuaXQgZXJyb3JcbiIpOworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fRVUpCisJCQlyZXBvcnRfZXVfZXJyb3IoZGV2LCBjaCwgY3VycmVudF9kZXNjKGRldiwgY2gpKTsKKwkJaWYgKHZfbG8gJiBUQUxJVE9TX0NDUFNSX0xPX0dCKQorCQkJZGV2X2VycihkZXYsICJnYXRoZXIgYm91bmRhcnkgZXJyb3JcbiIpOworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fR1JMKQorCQkJZGV2X2VycihkZXYsICJnYXRoZXIgcmV0dXJuL2xlbmd0aCBlcnJvclxuIik7CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19TQikKKwkJCWRldl9lcnIoZGV2LCAic2NhdHRlciBib3VuZGFyeSBlcnJvclxuIik7CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19TUkwpCisJCQlkZXZfZXJyKGRldiwgInNjYXR0ZXIgcmV0dXJuL2xlbmd0aCBlcnJvclxuIik7CisKKwkJZmx1c2hfY2hhbm5lbChkZXYsIGNoLCBlcnJvciwgcmVzZXRfY2gpOworCisJCWlmIChyZXNldF9jaCkgeworCQkJcmVzZXRfY2hhbm5lbChkZXYsIGNoKTsKKwkJfSBlbHNlIHsKKwkJCXNldGJpdHMzMihwcml2LT5yZWcgKyBUQUxJVE9TX0NDQ1IoY2gpLAorCQkJCSAgVEFMSVRPU19DQ0NSX0NPTlQpOworCQkJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUl9MTyhjaCksIDApOworCQkJd2hpbGUgKChpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUihjaCkpICYKKwkJCSAgICAgICBUQUxJVE9TX0NDQ1JfQ09OVCkgJiYgLS10aW1lb3V0KQorCQkJCWNwdV9yZWxheCgpOworCQkJaWYgKHRpbWVvdXQgPT0gMCkgeworCQkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlc3RhcnQgY2hhbm5lbCAlZFxuIiwKKwkJCQkJY2gpOworCQkJCXJlc2V0X2RldiA9IDE7CisJCQl9CisJCX0KKwl9CisJaWYgKHJlc2V0X2RldiB8fCBpc3IgJiB+VEFMSVRPU19JU1JfQ0hFUlIgfHwgaXNyX2xvKSB7CisJCWRldl9lcnIoZGV2LCAiZG9uZSBvdmVyZmxvdywgaW50ZXJuYWwgdGltZSBvdXQsIG9yIHJuZ3UgZXJyb3I6ICIKKwkJICAgICAgICAiSVNSIDB4JTA4eF8lMDh4XG4iLCBpc3IsIGlzcl9sbyk7CisKKwkJLyogcHVyZ2UgcmVxdWVzdCBxdWV1ZXMgKi8KKwkJZm9yIChjaCA9IDA7IGNoIDwgcHJpdi0+bnVtX2NoYW5uZWxzOyBjaCsrKQorCQkJZmx1c2hfY2hhbm5lbChkZXYsIGNoLCAtRUlPLCAxKTsKKworCQkvKiByZXNldCBhbmQgcmVpbml0aWFsaXplIHRoZSBkZXZpY2UgKi8KKwkJaW5pdF9kZXZpY2UoZGV2KTsKKwl9Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCB0YWxpdG9zX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGRhdGE7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXUzMiBpc3IsIGlzcl9sbzsKKworCWlzciA9IGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19JU1IpOworCWlzcl9sbyA9IGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19JU1JfTE8pOworCisJLyogYWNrICovCisJb3V0X2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19JQ1IsIGlzcik7CisJb3V0X2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19JQ1JfTE8sIGlzcl9sbyk7CisKKwlpZiAodW5saWtlbHkoKGlzciAmIH5UQUxJVE9TX0lTUl9DSERPTkUpIHx8IGlzcl9sbykpCisJCXRhbGl0b3NfZXJyb3IoKHVuc2lnbmVkIGxvbmcpZGF0YSk7CisJZWxzZQorCQlpZiAobGlrZWx5KGlzciAmIFRBTElUT1NfSVNSX0NIRE9ORSkpCisJCQl0YXNrbGV0X3NjaGVkdWxlKCZwcml2LT5kb25lX3Rhc2spOworCisJcmV0dXJuIChpc3IgfHwgaXNyX2xvKSA/IElSUV9IQU5ETEVEIDogSVJRX05PTkU7Cit9CisKKy8qCisgKiBod3JuZworICovCitzdGF0aWMgaW50IHRhbGl0b3Nfcm5nX2RhdGFfcHJlc2VudChzdHJ1Y3QgaHdybmcgKnJuZywgaW50IHdhaXQpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gKHN0cnVjdCBkZXZpY2UgKilybmctPnByaXY7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXUzMiBvZmw7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMjA7IGkrKykgeworCQlvZmwgPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfUk5HVVNSX0xPKSAmCisJCSAgICAgIFRBTElUT1NfUk5HVVNSX0xPX09GTDsKKwkJaWYgKG9mbCB8fCAhd2FpdCkKKwkJCWJyZWFrOworCQl1ZGVsYXkoMTApOworCX0KKworCXJldHVybiAhIW9mbDsKK30KKworc3RhdGljIGludCB0YWxpdG9zX3JuZ19kYXRhX3JlYWQoc3RydWN0IGh3cm5nICpybmcsIHUzMiAqZGF0YSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAoc3RydWN0IGRldmljZSAqKXJuZy0+cHJpdjsKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwkvKiBybmcgZmlmbyByZXF1aXJlcyA2NC1iaXQgYWNjZXNzZXMgKi8KKwkqZGF0YSA9IGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19STkdVX0ZJRk8pOworCSpkYXRhID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1JOR1VfRklGT19MTyk7CisKKwlyZXR1cm4gc2l6ZW9mKHUzMik7Cit9CisKK3N0YXRpYyBpbnQgdGFsaXRvc19ybmdfaW5pdChzdHJ1Y3QgaHdybmcgKnJuZykKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAoc3RydWN0IGRldmljZSAqKXJuZy0+cHJpdjsKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdW5zaWduZWQgaW50IHRpbWVvdXQgPSBUQUxJVE9TX1RJTUVPVVQ7CisKKwlzZXRiaXRzMzIocHJpdi0+cmVnICsgVEFMSVRPU19STkdVUkNSX0xPLCBUQUxJVE9TX1JOR1VSQ1JfTE9fU1IpOworCXdoaWxlICghKGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19STkdVU1JfTE8pICYgVEFMSVRPU19STkdVU1JfTE9fUkQpCisJICAgICAgICYmIC0tdGltZW91dCkKKwkJY3B1X3JlbGF4KCk7CisJaWYgKHRpbWVvdXQgPT0gMCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZXNldCBybmcgaHdcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwkvKiBzdGFydCBnZW5lcmF0aW5nICovCisJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfUk5HVURTUl9MTywgMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0YWxpdG9zX3JlZ2lzdGVyX3JuZyhzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJcHJpdi0+cm5nLm5hbWUJCT0gZGV2X2RyaXZlcl9zdHJpbmcoZGV2KSwKKwlwcml2LT5ybmcuaW5pdAkJPSB0YWxpdG9zX3JuZ19pbml0LAorCXByaXYtPnJuZy5kYXRhX3ByZXNlbnQJPSB0YWxpdG9zX3JuZ19kYXRhX3ByZXNlbnQsCisJcHJpdi0+cm5nLmRhdGFfcmVhZAk9IHRhbGl0b3Nfcm5nX2RhdGFfcmVhZCwKKwlwcml2LT5ybmcucHJpdgkJPSAodW5zaWduZWQgbG9uZylkZXY7CisKKwlyZXR1cm4gaHdybmdfcmVnaXN0ZXIoJnByaXYtPnJuZyk7Cit9CisKK3N0YXRpYyB2b2lkIHRhbGl0b3NfdW5yZWdpc3Rlcl9ybmcoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCWh3cm5nX3VucmVnaXN0ZXIoJnByaXYtPnJuZyk7Cit9CisKKy8qCisgKiBjcnlwdG8gYWxnCisgKi8KKyNkZWZpbmUgVEFMSVRPU19DUkFfUFJJT1JJVFkJCTMwMDAKKyNkZWZpbmUgVEFMSVRPU19NQVhfS0VZX1NJWkUJCTY0CisjZGVmaW5lIFRBTElUT1NfTUFYX0lWX0xFTkdUSAkJMTYgLyogbWF4IG9mIEFFU19CTE9DS19TSVpFLCBERVMzX0VERV9CTE9DS19TSVpFICovCisKKyNkZWZpbmUgTUQ1X0RJR0VTVF9TSVpFICAgMTYKKworc3RydWN0IHRhbGl0b3NfY3R4IHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJX19iZTMyIGRlc2NfaGRyX3RlbXBsYXRlOworCXU4IGtleVtUQUxJVE9TX01BWF9LRVlfU0laRV07CisJdTggaXZbVEFMSVRPU19NQVhfSVZfTEVOR1RIXTsKKwl1bnNpZ25lZCBpbnQga2V5bGVuOworCXVuc2lnbmVkIGludCBlbmNrZXlsZW47CisJdW5zaWduZWQgaW50IGF1dGhrZXlsZW47CisJdW5zaWduZWQgaW50IGF1dGhzaXplOworfTsKKworc3RhdGljIGludCBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUoc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jLAorCQkJCQkJIHVuc2lnbmVkIGludCBhdXRoc2l6ZSkKK3sKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKworCWN0eC0+YXV0aHNpemUgPSBhdXRoc2l6ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFlYWRfYXV0aGVuY19zZXRrZXkoc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jLAorCQkJCQkgICAgY29uc3QgdTggKmtleSwgdW5zaWduZWQgaW50IGtleWxlbikKK3sKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwlzdHJ1Y3QgcnRhdHRyICpydGEgPSAodm9pZCAqKWtleTsKKwlzdHJ1Y3QgY3J5cHRvX2F1dGhlbmNfa2V5X3BhcmFtICpwYXJhbTsKKwl1bnNpZ25lZCBpbnQgYXV0aGtleWxlbjsKKwl1bnNpZ25lZCBpbnQgZW5ja2V5bGVuOworCisJaWYgKCFSVEFfT0socnRhLCBrZXlsZW4pKQorCQlnb3RvIGJhZGtleTsKKworCWlmIChydGEtPnJ0YV90eXBlICE9IENSWVBUT19BVVRIRU5DX0tFWUFfUEFSQU0pCisJCWdvdG8gYmFka2V5OworCisJaWYgKFJUQV9QQVlMT0FEKHJ0YSkgPCBzaXplb2YoKnBhcmFtKSkKKwkJZ290byBiYWRrZXk7CisKKwlwYXJhbSA9IFJUQV9EQVRBKHJ0YSk7CisJZW5ja2V5bGVuID0gYmUzMl90b19jcHUocGFyYW0tPmVuY2tleWxlbik7CisKKwlrZXkgKz0gUlRBX0FMSUdOKHJ0YS0+cnRhX2xlbik7CisJa2V5bGVuIC09IFJUQV9BTElHTihydGEtPnJ0YV9sZW4pOworCisJaWYgKGtleWxlbiA8IGVuY2tleWxlbikKKwkJZ290byBiYWRrZXk7CisKKwlhdXRoa2V5bGVuID0ga2V5bGVuIC0gZW5ja2V5bGVuOworCisJaWYgKGtleWxlbiA+IFRBTElUT1NfTUFYX0tFWV9TSVpFKQorCQlnb3RvIGJhZGtleTsKKworCW1lbWNweSgmY3R4LT5rZXksIGtleSwga2V5bGVuKTsKKworCWN0eC0+a2V5bGVuID0ga2V5bGVuOworCWN0eC0+ZW5ja2V5bGVuID0gZW5ja2V5bGVuOworCWN0eC0+YXV0aGtleWxlbiA9IGF1dGhrZXlsZW47CisKKwlyZXR1cm4gMDsKKworYmFka2V5OgorCWNyeXB0b19hZWFkX3NldF9mbGFncyhhdXRoZW5jLCBDUllQVE9fVEZNX1JFU19CQURfS0VZX0xFTik7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKKy8qCisgKiBpcHNlY19lc3BfZWRlc2MgLSBzL3ctZXh0ZW5kZWQgaXBzZWNfZXNwIGRlc2NyaXB0b3IKKyAqIEBzcmNfbmVudHM6IG51bWJlciBvZiBzZWdtZW50cyBpbiBpbnB1dCBzY2F0dGVybGlzdAorICogQGRzdF9uZW50czogbnVtYmVyIG9mIHNlZ21lbnRzIGluIG91dHB1dCBzY2F0dGVybGlzdAorICogQGRtYV9sZW46IGxlbmd0aCBvZiBkbWEgbWFwcGVkIGxpbmtfdGJsIHNwYWNlCisgKiBAZG1hX2xpbmtfdGJsOiBidXMgcGh5c2ljYWwgYWRkcmVzcyBvZiBsaW5rX3RibAorICogQGRlc2M6IGgvdyBkZXNjcmlwdG9yCisgKiBAbGlua190Ymw6IGlucHV0IGFuZCBvdXRwdXQgaC93IGxpbmsgdGFibGVzIChpZiB7c3JjLGRzdH1fbmVudHMgPiAxKQorICoKKyAqIGlmIGRlY3J5cHRpbmcgKHdpdGggYXV0aGNoZWNrKSwgb3IgZWl0aGVyIG9uZSBvZiBzcmNfbmVudHMgb3IgZHN0X25lbnRzCisgKiBpcyBncmVhdGVyIHRoYW4gMSwgYW4gaW50ZWdyaXR5IGNoZWNrIHZhbHVlIGlzIGNvbmNhdGVuYXRlZCB0byB0aGUgZW5kCisgKiBvZiBsaW5rX3RibCBkYXRhCisgKi8KK3N0cnVjdCBpcHNlY19lc3BfZWRlc2MgeworCWludCBzcmNfbmVudHM7CisJaW50IGRzdF9uZW50czsKKwlpbnQgZG1hX2xlbjsKKwlkbWFfYWRkcl90IGRtYV9saW5rX3RibDsKKwlzdHJ1Y3QgdGFsaXRvc19kZXNjIGRlc2M7CisJc3RydWN0IHRhbGl0b3NfcHRyIGxpbmtfdGJsWzBdOworfTsKKworc3RhdGljIHZvaWQgaXBzZWNfZXNwX3VubWFwKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICBzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYywKKwkJCSAgICBzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICphcmVxKQoreworCXVubWFwX3NpbmdsZV90YWxpdG9zX3B0cihkZXYsICZlZGVzYy0+ZGVzYy5wdHJbNl0sIERNQV9GUk9NX0RFVklDRSk7CisJdW5tYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmVkZXNjLT5kZXNjLnB0clszXSwgRE1BX1RPX0RFVklDRSk7CisJdW5tYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmVkZXNjLT5kZXNjLnB0clsyXSwgRE1BX1RPX0RFVklDRSk7CisJdW5tYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmVkZXNjLT5kZXNjLnB0clswXSwgRE1BX1RPX0RFVklDRSk7CisKKwlkbWFfdW5tYXBfc2coZGV2LCBhcmVxLT5hc3NvYywgMSwgRE1BX1RPX0RFVklDRSk7CisKKwlpZiAoYXJlcS0+c3JjICE9IGFyZXEtPmRzdCkgeworCQlkbWFfdW5tYXBfc2coZGV2LCBhcmVxLT5zcmMsIGVkZXNjLT5zcmNfbmVudHMgPyA6IDEsCisJCQkgICAgIERNQV9UT19ERVZJQ0UpOworCQlkbWFfdW5tYXBfc2coZGV2LCBhcmVxLT5kc3QsIGVkZXNjLT5kc3RfbmVudHMgPyA6IDEsCisJCQkgICAgIERNQV9GUk9NX0RFVklDRSk7CisJfSBlbHNlIHsKKwkJZG1hX3VubWFwX3NnKGRldiwgYXJlcS0+c3JjLCBlZGVzYy0+c3JjX25lbnRzID8gOiAxLAorCQkJICAgICBETUFfQklESVJFQ1RJT05BTCk7CisJfQorCisJaWYgKGVkZXNjLT5kbWFfbGVuKQorCQlkbWFfdW5tYXBfc2luZ2xlKGRldiwgZWRlc2MtPmRtYV9saW5rX3RibCwgZWRlc2MtPmRtYV9sZW4sCisJCQkJIERNQV9CSURJUkVDVElPTkFMKTsKK30KKworLyoKKyAqIGlwc2VjX2VzcCBkZXNjcmlwdG9yIGNhbGxiYWNrcworICovCitzdGF0aWMgdm9pZCBpcHNlY19lc3BfZW5jcnlwdF9kb25lKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgdGFsaXRvc19kZXNjICpkZXNjLCB2b2lkICpjb250ZXh0LAorCQkJCSAgIGludCBlcnIpCit7CisJc3RydWN0IGFlYWRfcmVxdWVzdCAqYXJlcSA9IGNvbnRleHQ7CisJc3RydWN0IGlwc2VjX2VzcF9lZGVzYyAqZWRlc2MgPQorCQkgY29udGFpbmVyX29mKGRlc2MsIHN0cnVjdCBpcHNlY19lc3BfZWRlc2MsIGRlc2MpOworCXN0cnVjdCBjcnlwdG9fYWVhZCAqYXV0aGVuYyA9IGNyeXB0b19hZWFkX3JlcXRmbShhcmVxKTsKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXZvaWQgKmljdmRhdGE7CisKKwlpcHNlY19lc3BfdW5tYXAoZGV2LCBlZGVzYywgYXJlcSk7CisKKwkvKiBjb3B5IHRoZSBnZW5lcmF0ZWQgSUNWIHRvIGRzdCAqLworCWlmIChlZGVzYy0+ZG1hX2xlbikgeworCQlpY3ZkYXRhID0gJmVkZXNjLT5saW5rX3RibFtlZGVzYy0+c3JjX25lbnRzICsKKwkJCQkJICAgZWRlc2MtPmRzdF9uZW50cyArIDFdOworCQlzZyA9IHNnX2xhc3QoYXJlcS0+ZHN0LCBlZGVzYy0+ZHN0X25lbnRzKTsKKwkJbWVtY3B5KChjaGFyICopc2dfdmlydChzZykgKyBzZy0+bGVuZ3RoIC0gY3R4LT5hdXRoc2l6ZSwKKwkJICAgICAgIGljdmRhdGEsIGN0eC0+YXV0aHNpemUpOworCX0KKworCWtmcmVlKGVkZXNjKTsKKworCWFlYWRfcmVxdWVzdF9jb21wbGV0ZShhcmVxLCBlcnIpOworfQorCitzdGF0aWMgdm9pZCBpcHNlY19lc3BfZGVjcnlwdF9kb25lKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgdGFsaXRvc19kZXNjICpkZXNjLCB2b2lkICpjb250ZXh0LAorCQkJCSAgIGludCBlcnIpCit7CisJc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxID0gY29udGV4dDsKKwlzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYyA9CisJCSBjb250YWluZXJfb2YoZGVzYywgc3RydWN0IGlwc2VjX2VzcF9lZGVzYywgZGVzYyk7CisJc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jID0gY3J5cHRvX2FlYWRfcmVxdGZtKHJlcSk7CisJc3RydWN0IHRhbGl0b3NfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgoYXV0aGVuYyk7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKKwl2b2lkICppY3ZkYXRhOworCisJaXBzZWNfZXNwX3VubWFwKGRldiwgZWRlc2MsIHJlcSk7CisKKwlpZiAoIWVycikgeworCQkvKiBhdXRoIGNoZWNrICovCisJCWlmIChlZGVzYy0+ZG1hX2xlbikKKwkJCWljdmRhdGEgPSAmZWRlc2MtPmxpbmtfdGJsW2VkZXNjLT5zcmNfbmVudHMgKworCQkJCQkJICAgZWRlc2MtPmRzdF9uZW50cyArIDFdOworCQllbHNlCisJCQlpY3ZkYXRhID0gJmVkZXNjLT5saW5rX3RibFswXTsKKworCQlzZyA9IHNnX2xhc3QocmVxLT5kc3QsIGVkZXNjLT5kc3RfbmVudHMgPyA6IDEpOworCQllcnIgPSBtZW1jbXAoaWN2ZGF0YSwgKGNoYXIgKilzZ192aXJ0KHNnKSArIHNnLT5sZW5ndGggLQorCQkJICAgICBjdHgtPmF1dGhzaXplLCBjdHgtPmF1dGhzaXplKSA/IC1FQkFETVNHIDogMDsKKwl9CisKKwlrZnJlZShlZGVzYyk7CisKKwlhZWFkX3JlcXVlc3RfY29tcGxldGUocmVxLCBlcnIpOworfQorCisvKgorICogY29udmVydCBzY2F0dGVybGlzdCB0byBTRUMgaC93IGxpbmsgdGFibGUgZm9ybWF0CisgKiBzdG9wIGF0IGNyeXB0bGVuIGJ5dGVzCisgKi8KK3N0YXRpYyBpbnQgc2dfdG9fbGlua190Ymwoc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywgaW50IHNnX2NvdW50LAorCQkJICAgaW50IGNyeXB0bGVuLCBzdHJ1Y3QgdGFsaXRvc19wdHIgKmxpbmtfdGJsX3B0cikKK3sKKwlpbnQgbl9zZyA9IHNnX2NvdW50OworCisJd2hpbGUgKG5fc2ctLSkgeworCQlsaW5rX3RibF9wdHItPnB0ciA9IGNwdV90b19iZTMyKHNnX2RtYV9hZGRyZXNzKHNnKSk7CisJCWxpbmtfdGJsX3B0ci0+bGVuID0gY3B1X3RvX2JlMTYoc2dfZG1hX2xlbihzZykpOworCQlsaW5rX3RibF9wdHItPmpfZXh0ZW50ID0gMDsKKwkJbGlua190YmxfcHRyKys7CisJCWNyeXB0bGVuIC09IHNnX2RtYV9sZW4oc2cpOworCQlzZyA9IHNnX25leHQoc2cpOworCX0KKworCS8qIGFkanVzdCAoZGVjcmVhc2UpIGxhc3Qgb25lIChvciB0d28pIGVudHJ5J3MgbGVuIHRvIGNyeXB0bGVuICovCisJbGlua190YmxfcHRyLS07CisJd2hpbGUgKGxpbmtfdGJsX3B0ci0+bGVuIDw9ICgtY3J5cHRsZW4pKSB7CisJCS8qIEVtcHR5IHRoaXMgZW50cnksIGFuZCBtb3ZlIHRvIHByZXZpb3VzIG9uZSAqLworCQljcnlwdGxlbiArPSBiZTE2X3RvX2NwdShsaW5rX3RibF9wdHItPmxlbik7CisJCWxpbmtfdGJsX3B0ci0+bGVuID0gMDsKKwkJc2dfY291bnQtLTsKKwkJbGlua190YmxfcHRyLS07CisJfQorCWxpbmtfdGJsX3B0ci0+bGVuID0gY3B1X3RvX2JlMTYoYmUxNl90b19jcHUobGlua190YmxfcHRyLT5sZW4pCisJCQkJCSsgY3J5cHRsZW4pOworCisJLyogdGFnIGVuZCBvZiBsaW5rIHRhYmxlICovCisJbGlua190YmxfcHRyLT5qX2V4dGVudCA9IERFU0NfUFRSX0xOS1RCTF9SRVRVUk47CisKKwlyZXR1cm4gc2dfY291bnQ7Cit9CisKKy8qCisgKiBmaWxsIGluIGFuZCBzdWJtaXQgaXBzZWNfZXNwIGRlc2NyaXB0b3IKKyAqLworc3RhdGljIGludCBpcHNlY19lc3Aoc3RydWN0IGlwc2VjX2VzcF9lZGVzYyAqZWRlc2MsIHN0cnVjdCBhZWFkX3JlcXVlc3QgKmFyZXEsCisJCSAgICAgdTggKmdpdiwgdTY0IHNlcSwKKwkJICAgICB2b2lkICgqY2FsbGJhY2spIChzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgICAgIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MsCisJCQkJICAgICAgIHZvaWQgKmNvbnRleHQsIGludCBlcnJvcikpCit7CisJc3RydWN0IGNyeXB0b19hZWFkICphZWFkID0gY3J5cHRvX2FlYWRfcmVxdGZtKGFyZXEpOworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KGFlYWQpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2OworCXN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MgPSAmZWRlc2MtPmRlc2M7CisJdW5zaWduZWQgaW50IGNyeXB0bGVuID0gYXJlcS0+Y3J5cHRsZW47CisJdW5zaWduZWQgaW50IGF1dGhzaXplID0gY3R4LT5hdXRoc2l6ZTsKKwl1bnNpZ25lZCBpbnQgaXZzaXplOworCWludCBzZ19jb3VudDsKKworCS8qIGhtYWMga2V5ICovCisJbWFwX3NpbmdsZV90YWxpdG9zX3B0cihkZXYsICZkZXNjLT5wdHJbMF0sIGN0eC0+YXV0aGtleWxlbiwgJmN0eC0+a2V5LAorCQkJICAgICAgIDAsIERNQV9UT19ERVZJQ0UpOworCS8qIGhtYWMgZGF0YSAqLworCW1hcF9zaW5nbGVfdGFsaXRvc19wdHIoZGV2LCAmZGVzYy0+cHRyWzFdLCBzZ192aXJ0KGFyZXEtPnNyYykgLQorCQkJICAgICAgIHNnX3ZpcnQoYXJlcS0+YXNzb2MpLCBzZ192aXJ0KGFyZXEtPmFzc29jKSwgMCwKKwkJCSAgICAgICBETUFfVE9fREVWSUNFKTsKKwkvKiBjaXBoZXIgaXYgKi8KKwlpdnNpemUgPSBjcnlwdG9fYWVhZF9pdnNpemUoYWVhZCk7CisJbWFwX3NpbmdsZV90YWxpdG9zX3B0cihkZXYsICZkZXNjLT5wdHJbMl0sIGl2c2l6ZSwgZ2l2ID86IGFyZXEtPml2LCAwLAorCQkJICAgICAgIERNQV9UT19ERVZJQ0UpOworCisJLyogY2lwaGVyIGtleSAqLworCW1hcF9zaW5nbGVfdGFsaXRvc19wdHIoZGV2LCAmZGVzYy0+cHRyWzNdLCBjdHgtPmVuY2tleWxlbiwKKwkJCSAgICAgICAoY2hhciAqKSZjdHgtPmtleSArIGN0eC0+YXV0aGtleWxlbiwgMCwKKwkJCSAgICAgICBETUFfVE9fREVWSUNFKTsKKworCS8qCisJICogY2lwaGVyIGluCisJICogbWFwIGFuZCBhZGp1c3QgY2lwaGVyIGxlbiB0byBhZWFkIHJlcXVlc3QgY3J5cHRsZW4uCisJICogZXh0ZW50IGlzIGJ5dGVzIG9mIEhNQUMgcG9zdHBlbmRlZCB0byBjaXBoZXJ0ZXh0LAorCSAqIHR5cGljYWxseSAxMiBmb3IgaXBzZWMKKwkgKi8KKwlkZXNjLT5wdHJbNF0ubGVuID0gY3B1X3RvX2JlMTYoY3J5cHRsZW4pOworCWRlc2MtPnB0cls0XS5qX2V4dGVudCA9IGF1dGhzaXplOworCisJaWYgKGFyZXEtPnNyYyA9PSBhcmVxLT5kc3QpCisJCXNnX2NvdW50ID0gZG1hX21hcF9zZyhkZXYsIGFyZXEtPnNyYywgZWRlc2MtPnNyY19uZW50cyA/IDogMSwKKwkJCQkgICAgICBETUFfQklESVJFQ1RJT05BTCk7CisJZWxzZQorCQlzZ19jb3VudCA9IGRtYV9tYXBfc2coZGV2LCBhcmVxLT5zcmMsIGVkZXNjLT5zcmNfbmVudHMgPyA6IDEsCisJCQkJICAgICAgRE1BX1RPX0RFVklDRSk7CisKKwlpZiAoc2dfY291bnQgPT0gMSkgeworCQlkZXNjLT5wdHJbNF0ucHRyID0gY3B1X3RvX2JlMzIoc2dfZG1hX2FkZHJlc3MoYXJlcS0+c3JjKSk7CisJfSBlbHNlIHsKKwkJc2dfY291bnQgPSBzZ190b19saW5rX3RibChhcmVxLT5zcmMsIHNnX2NvdW50LCBjcnlwdGxlbiwKKwkJCQkJICAmZWRlc2MtPmxpbmtfdGJsWzBdKTsKKwkJaWYgKHNnX2NvdW50ID4gMSkgeworCQkJZGVzYy0+cHRyWzRdLmpfZXh0ZW50IHw9IERFU0NfUFRSX0xOS1RCTF9KVU1QOworCQkJZGVzYy0+cHRyWzRdLnB0ciA9IGNwdV90b19iZTMyKGVkZXNjLT5kbWFfbGlua190YmwpOworCQkJZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoY3R4LT5kZXYsIGVkZXNjLT5kbWFfbGlua190YmwsCisJCQkJCQkgICBlZGVzYy0+ZG1hX2xlbiwgRE1BX0JJRElSRUNUSU9OQUwpOworCQl9IGVsc2UgeworCQkJLyogT25seSBvbmUgc2VnbWVudCBub3csIHNvIG5vIGxpbmsgdGJsIG5lZWRlZCAqLworCQkJZGVzYy0+cHRyWzRdLnB0ciA9IGNwdV90b19iZTMyKHNnX2RtYV9hZGRyZXNzKGFyZXEtPnNyYykpOworCQl9CisJfQorCisJLyogY2lwaGVyIG91dCAqLworCWRlc2MtPnB0cls1XS5sZW4gPSBjcHVfdG9fYmUxNihjcnlwdGxlbik7CisJZGVzYy0+cHRyWzVdLmpfZXh0ZW50ID0gYXV0aHNpemU7CisKKwlpZiAoYXJlcS0+c3JjICE9IGFyZXEtPmRzdCkgeworCQlzZ19jb3VudCA9IGRtYV9tYXBfc2coZGV2LCBhcmVxLT5kc3QsIGVkZXNjLT5kc3RfbmVudHMgPyA6IDEsCisJCQkJICAgICAgRE1BX0ZST01fREVWSUNFKTsKKwl9CisKKwlpZiAoc2dfY291bnQgPT0gMSkgeworCQlkZXNjLT5wdHJbNV0ucHRyID0gY3B1X3RvX2JlMzIoc2dfZG1hX2FkZHJlc3MoYXJlcS0+ZHN0KSk7CisJfSBlbHNlIHsKKwkJc3RydWN0IHRhbGl0b3NfcHRyICpsaW5rX3RibF9wdHIgPQorCQkJJmVkZXNjLT5saW5rX3RibFtlZGVzYy0+c3JjX25lbnRzXTsKKwkJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKKworCQlkZXNjLT5wdHJbNV0ucHRyID0gY3B1X3RvX2JlMzIoKHN0cnVjdCB0YWxpdG9zX3B0ciAqKQorCQkJCQkgICAgICAgZWRlc2MtPmRtYV9saW5rX3RibCArCisJCQkJCSAgICAgICBlZGVzYy0+c3JjX25lbnRzKTsKKwkJaWYgKGFyZXEtPnNyYyA9PSBhcmVxLT5kc3QpIHsKKwkJCW1lbWNweShsaW5rX3RibF9wdHIsICZlZGVzYy0+bGlua190YmxbMF0sCisJCQkgICAgICAgZWRlc2MtPnNyY19uZW50cyAqIHNpemVvZihzdHJ1Y3QgdGFsaXRvc19wdHIpKTsKKwkJfSBlbHNlIHsKKwkJCXNnX2NvdW50ID0gc2dfdG9fbGlua190YmwoYXJlcS0+ZHN0LCBzZ19jb3VudCwgY3J5cHRsZW4sCisJCQkJCQkgIGxpbmtfdGJsX3B0cik7CisJCX0KKwkJbGlua190YmxfcHRyICs9IHNnX2NvdW50IC0gMTsKKworCQkvKiBoYW5kbGUgY2FzZSB3aGVyZSBzZ19sYXN0IGNvbnRhaW5zIHRoZSBJQ1YgZXhjbHVzaXZlbHkgKi8KKwkJc2cgPSBzZ19sYXN0KGFyZXEtPmRzdCwgZWRlc2MtPmRzdF9uZW50cyk7CisJCWlmIChzZy0+bGVuZ3RoID09IGN0eC0+YXV0aHNpemUpCisJCQlsaW5rX3RibF9wdHItLTsKKworCQlsaW5rX3RibF9wdHItPmpfZXh0ZW50ID0gMDsKKwkJbGlua190YmxfcHRyKys7CisJCWxpbmtfdGJsX3B0ci0+al9leHRlbnQgPSBERVNDX1BUUl9MTktUQkxfUkVUVVJOOworCQlsaW5rX3RibF9wdHItPmxlbiA9IGNwdV90b19iZTE2KGF1dGhzaXplKTsKKworCQkvKiBpY3YgZGF0YSBmb2xsb3dzIGxpbmsgdGFibGVzICovCisJCWxpbmtfdGJsX3B0ci0+cHRyID0gY3B1X3RvX2JlMzIoKHN0cnVjdCB0YWxpdG9zX3B0ciAqKQorCQkJCQkJZWRlc2MtPmRtYV9saW5rX3RibCArCisJCQkJCSAgICAgICAgZWRlc2MtPnNyY19uZW50cyArCisJCQkJCQllZGVzYy0+ZHN0X25lbnRzICsgMSk7CisKKwkJZGVzYy0+cHRyWzVdLmpfZXh0ZW50IHw9IERFU0NfUFRSX0xOS1RCTF9KVU1QOworCQlkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShjdHgtPmRldiwgZWRlc2MtPmRtYV9saW5rX3RibCwKKwkJCQkJICAgZWRlc2MtPmRtYV9sZW4sIERNQV9CSURJUkVDVElPTkFMKTsKKwl9CisKKwkvKiBpdiBvdXQgKi8KKwltYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmRlc2MtPnB0cls2XSwgaXZzaXplLCBjdHgtPml2LCAwLAorCQkJICAgICAgIERNQV9GUk9NX0RFVklDRSk7CisKKwlyZXR1cm4gdGFsaXRvc19zdWJtaXQoZGV2LCBkZXNjLCBjYWxsYmFjaywgYXJlcSk7Cit9CisKKworLyoKKyAqIGRlcml2ZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gc2NhdHRlcmxpc3QKKyAqLworc3RhdGljIGludCBzZ19jb3VudChzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnX2xpc3QsIGludCBuYnl0ZXMpCit7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZyA9IHNnX2xpc3Q7CisJaW50IHNnX25lbnRzID0gMDsKKworCXdoaWxlIChuYnl0ZXMpIHsKKwkJc2dfbmVudHMrKzsKKwkJbmJ5dGVzIC09IHNnLT5sZW5ndGg7CisJCXNnID0gc2dfbmV4dChzZyk7CisJfQorCisJcmV0dXJuIHNnX25lbnRzOworfQorCisvKgorICogYWxsb2NhdGUgYW5kIG1hcCB0aGUgaXBzZWNfZXNwIGV4dGVuZGVkIGRlc2NyaXB0b3IKKyAqLworc3RhdGljIHN0cnVjdCBpcHNlY19lc3BfZWRlc2MgKmlwc2VjX2VzcF9lZGVzY19hbGxvYyhzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICphcmVxLAorCQkJCQkJICAgICBpbnQgaWN2X3N0YXNoaW5nKQoreworCXN0cnVjdCBjcnlwdG9fYWVhZCAqYXV0aGVuYyA9IGNyeXB0b19hZWFkX3JlcXRmbShhcmVxKTsKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwlzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYzsKKwlpbnQgc3JjX25lbnRzLCBkc3RfbmVudHMsIGFsbG9jX2xlbiwgZG1hX2xlbjsKKworCWlmIChhcmVxLT5jcnlwdGxlbiArIGN0eC0+YXV0aHNpemUgPiBUQUxJVE9TX01BWF9EQVRBX0xFTikgeworCQlkZXZfZXJyKGN0eC0+ZGV2LCAiY3J5cHRsZW4gZXhjZWVkcyBoL3cgbWF4IGxpbWl0XG4iKTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJfQorCisJc3JjX25lbnRzID0gc2dfY291bnQoYXJlcS0+c3JjLCBhcmVxLT5jcnlwdGxlbiArIGN0eC0+YXV0aHNpemUpOworCXNyY19uZW50cyA9IChzcmNfbmVudHMgPT0gMSkgPyAwIDogc3JjX25lbnRzOworCisJaWYgKGFyZXEtPmRzdCA9PSBhcmVxLT5zcmMpIHsKKwkJZHN0X25lbnRzID0gc3JjX25lbnRzOworCX0gZWxzZSB7CisJCWRzdF9uZW50cyA9IHNnX2NvdW50KGFyZXEtPmRzdCwgYXJlcS0+Y3J5cHRsZW4gKyBjdHgtPmF1dGhzaXplKTsKKwkJZHN0X25lbnRzID0gKGRzdF9uZW50cyA9PSAxKSA/IDAgOiBzcmNfbmVudHM7CisJfQorCisJLyoKKwkgKiBhbGxvY2F0ZSBzcGFjZSBmb3IgYmFzZSBlZGVzYyBwbHVzIHRoZSBsaW5rIHRhYmxlcywKKwkgKiBhbGxvd2luZyBmb3IgYSBzZXBhcmF0ZSBlbnRyeSBmb3IgdGhlIGdlbmVyYXRlZCBJQ1YgKCsgMSksCisJICogYW5kIHRoZSBJQ1YgZGF0YSBpdHNlbGYKKwkgKi8KKwlhbGxvY19sZW4gPSBzaXplb2Yoc3RydWN0IGlwc2VjX2VzcF9lZGVzYyk7CisJaWYgKHNyY19uZW50cyB8fCBkc3RfbmVudHMpIHsKKwkJZG1hX2xlbiA9IChzcmNfbmVudHMgKyBkc3RfbmVudHMgKyAxKSAqCisJCQkJIHNpemVvZihzdHJ1Y3QgdGFsaXRvc19wdHIpICsgY3R4LT5hdXRoc2l6ZTsKKwkJYWxsb2NfbGVuICs9IGRtYV9sZW47CisJfSBlbHNlIHsKKwkJZG1hX2xlbiA9IDA7CisJCWFsbG9jX2xlbiArPSBpY3Zfc3Rhc2hpbmcgPyBjdHgtPmF1dGhzaXplIDogMDsKKwl9CisKKwllZGVzYyA9IGttYWxsb2MoYWxsb2NfbGVuLCBHRlBfRE1BKTsKKwlpZiAoIWVkZXNjKSB7CisJCWRldl9lcnIoY3R4LT5kZXYsICJjb3VsZCBub3QgYWxsb2NhdGUgZWRlc2NyaXB0b3JcbiIpOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwl9CisKKwllZGVzYy0+c3JjX25lbnRzID0gc3JjX25lbnRzOworCWVkZXNjLT5kc3RfbmVudHMgPSBkc3RfbmVudHM7CisJZWRlc2MtPmRtYV9sZW4gPSBkbWFfbGVuOworCWVkZXNjLT5kbWFfbGlua190YmwgPSBkbWFfbWFwX3NpbmdsZShjdHgtPmRldiwgJmVkZXNjLT5saW5rX3RibFswXSwKKwkJCQkJICAgICBlZGVzYy0+ZG1hX2xlbiwgRE1BX0JJRElSRUNUSU9OQUwpOworCisJcmV0dXJuIGVkZXNjOworfQorCitzdGF0aWMgaW50IGFlYWRfYXV0aGVuY19lbmNyeXB0KHN0cnVjdCBhZWFkX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX2FlYWQgKmF1dGhlbmMgPSBjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwlzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYzsKKworCS8qIGFsbG9jYXRlIGV4dGVuZGVkIGRlc2NyaXB0b3IgKi8KKwllZGVzYyA9IGlwc2VjX2VzcF9lZGVzY19hbGxvYyhyZXEsIDApOworCWlmIChJU19FUlIoZWRlc2MpKQorCQlyZXR1cm4gUFRSX0VSUihlZGVzYyk7CisKKwkvKiBzZXQgZW5jcnlwdCAqLworCWVkZXNjLT5kZXNjLmhkciA9IGN0eC0+ZGVzY19oZHJfdGVtcGxhdGUgfCBERVNDX0hEUl9NT0RFMF9FTkNSWVBUOworCisJcmV0dXJuIGlwc2VjX2VzcChlZGVzYywgcmVxLCBOVUxMLCAwLCBpcHNlY19lc3BfZW5jcnlwdF9kb25lKTsKK30KKworc3RhdGljIGludCBhZWFkX2F1dGhlbmNfZGVjcnlwdChzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jID0gY3J5cHRvX2FlYWRfcmVxdGZtKHJlcSk7CisJc3RydWN0IHRhbGl0b3NfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgoYXV0aGVuYyk7CisJdW5zaWduZWQgaW50IGF1dGhzaXplID0gY3R4LT5hdXRoc2l6ZTsKKwlzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYzsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXZvaWQgKmljdmRhdGE7CisKKwlyZXEtPmNyeXB0bGVuIC09IGF1dGhzaXplOworCisJLyogYWxsb2NhdGUgZXh0ZW5kZWQgZGVzY3JpcHRvciAqLworCWVkZXNjID0gaXBzZWNfZXNwX2VkZXNjX2FsbG9jKHJlcSwgMSk7CisJaWYgKElTX0VSUihlZGVzYykpCisJCXJldHVybiBQVFJfRVJSKGVkZXNjKTsKKworCS8qIHN0YXNoIGluY29taW5nIElDViBmb3IgbGF0ZXIgY21wIHdpdGggSUNWIGdlbmVyYXRlZCBieSB0aGUgaC93ICovCisJaWYgKGVkZXNjLT5kbWFfbGVuKQorCQlpY3ZkYXRhID0gJmVkZXNjLT5saW5rX3RibFtlZGVzYy0+c3JjX25lbnRzICsKKwkJCQkJICAgZWRlc2MtPmRzdF9uZW50cyArIDFdOworCWVsc2UKKwkJaWN2ZGF0YSA9ICZlZGVzYy0+bGlua190YmxbMF07CisKKwlzZyA9IHNnX2xhc3QocmVxLT5zcmMsIGVkZXNjLT5zcmNfbmVudHMgPyA6IDEpOworCisJbWVtY3B5KGljdmRhdGEsIChjaGFyICopc2dfdmlydChzZykgKyBzZy0+bGVuZ3RoIC0gY3R4LT5hdXRoc2l6ZSwKKwkgICAgICAgY3R4LT5hdXRoc2l6ZSk7CisKKwkvKiBkZWNyeXB0ICovCisJZWRlc2MtPmRlc2MuaGRyID0gY3R4LT5kZXNjX2hkcl90ZW1wbGF0ZSB8IERFU0NfSERSX0RJUl9JTkJPVU5EOworCisJcmV0dXJuIGlwc2VjX2VzcChlZGVzYywgcmVxLCBOVUxMLCAwLCBpcHNlY19lc3BfZGVjcnlwdF9kb25lKTsKK30KKworc3RhdGljIGludCBhZWFkX2F1dGhlbmNfZ2l2ZW5jcnlwdCgKKwlzdHJ1Y3QgYWVhZF9naXZjcnlwdF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGFlYWRfcmVxdWVzdCAqYXJlcSA9ICZyZXEtPmFyZXE7CisJc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jID0gY3J5cHRvX2FlYWRfcmVxdGZtKGFyZXEpOworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KGF1dGhlbmMpOworCXN0cnVjdCBpcHNlY19lc3BfZWRlc2MgKmVkZXNjOworCisJLyogYWxsb2NhdGUgZXh0ZW5kZWQgZGVzY3JpcHRvciAqLworCWVkZXNjID0gaXBzZWNfZXNwX2VkZXNjX2FsbG9jKGFyZXEsIDApOworCWlmIChJU19FUlIoZWRlc2MpKQorCQlyZXR1cm4gUFRSX0VSUihlZGVzYyk7CisKKwkvKiBzZXQgZW5jcnlwdCAqLworCWVkZXNjLT5kZXNjLmhkciA9IGN0eC0+ZGVzY19oZHJfdGVtcGxhdGUgfCBERVNDX0hEUl9NT0RFMF9FTkNSWVBUOworCisJbWVtY3B5KHJlcS0+Z2l2LCBjdHgtPml2LCBjcnlwdG9fYWVhZF9pdnNpemUoYXV0aGVuYykpOworCisJcmV0dXJuIGlwc2VjX2VzcChlZGVzYywgYXJlcSwgcmVxLT5naXYsIHJlcS0+c2VxLAorCQkJIGlwc2VjX2VzcF9lbmNyeXB0X2RvbmUpOworfQorCitzdHJ1Y3QgdGFsaXRvc19hbGdfdGVtcGxhdGUgeworCWNoYXIgbmFtZVtDUllQVE9fTUFYX0FMR19OQU1FXTsKKwljaGFyIGRyaXZlcl9uYW1lW0NSWVBUT19NQVhfQUxHX05BTUVdOworCXVuc2lnbmVkIGludCBibG9ja3NpemU7CisJc3RydWN0IGFlYWRfYWxnIGFlYWQ7CisJc3RydWN0IGRldmljZSAqZGV2OworCV9fYmUzMiBkZXNjX2hkcl90ZW1wbGF0ZTsKK307CisKK3N0YXRpYyBzdHJ1Y3QgdGFsaXRvc19hbGdfdGVtcGxhdGUgZHJpdmVyX2FsZ3NbXSA9IHsKKwkvKiBzaW5nbGUtcGFzcyBpcHNlY19lc3AgZGVzY3JpcHRvciAqLworCXsKKwkJLm5hbWUgPSAiYXV0aGVuYyhobWFjKHNoYTEpLGNiYyhhZXMpKSIsCisJCS5kcml2ZXJfbmFtZSA9ICJhdXRoZW5jLWhtYWMtc2hhMS1jYmMtYWVzLXRhbGl0b3MiLAorCQkuYmxvY2tzaXplID0gQUVTX0JMT0NLX1NJWkUsCisJCS5hZWFkID0geworCQkJLnNldGtleSA9IGFlYWRfYXV0aGVuY19zZXRrZXksCisJCQkuc2V0YXV0aHNpemUgPSBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUsCisJCQkuZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19lbmNyeXB0LAorCQkJLmRlY3J5cHQgPSBhZWFkX2F1dGhlbmNfZGVjcnlwdCwKKwkJCS5naXZlbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2dpdmVuY3J5cHQsCisJCQkuZ2VuaXYgPSAiPGJ1aWx0LWluPiIsCisJCQkuaXZzaXplID0gQUVTX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUgPSBTSEExX0RJR0VTVF9TSVpFLAorCQkJfSwKKwkJLmRlc2NfaGRyX3RlbXBsYXRlID0gREVTQ19IRFJfVFlQRV9JUFNFQ19FU1AgfAorCQkJICAgICAgICAgICAgIERFU0NfSERSX1NFTDBfQUVTVSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0FFU1VfQ0JDIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfU0VMMV9NREVVQSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfSU5JVCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfUEFEIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9TSEExX0hNQUMsCisJfSwKKwl7CisJCS5uYW1lID0gImF1dGhlbmMoaG1hYyhzaGExKSxjYmMoZGVzM19lZGUpKSIsCisJCS5kcml2ZXJfbmFtZSA9ICJhdXRoZW5jLWhtYWMtc2hhMS1jYmMtM2Rlcy10YWxpdG9zIiwKKwkJLmJsb2Nrc2l6ZSA9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5hZWFkID0geworCQkJLnNldGtleSA9IGFlYWRfYXV0aGVuY19zZXRrZXksCisJCQkuc2V0YXV0aHNpemUgPSBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUsCisJCQkuZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19lbmNyeXB0LAorCQkJLmRlY3J5cHQgPSBhZWFkX2F1dGhlbmNfZGVjcnlwdCwKKwkJCS5naXZlbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2dpdmVuY3J5cHQsCisJCQkuZ2VuaXYgPSAiPGJ1aWx0LWluPiIsCisJCQkuaXZzaXplID0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZSA9IFNIQTFfRElHRVNUX1NJWkUsCisJCQl9LAorCQkuZGVzY19oZHJfdGVtcGxhdGUgPSBERVNDX0hEUl9UWVBFX0lQU0VDX0VTUCB8CisJCQkgICAgICAgICAgICAgREVTQ19IRFJfU0VMMF9ERVUgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfQ0JDIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTBfREVVXzNERVMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9TRUwxX01ERVVBIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9JTklUIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9QQUQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1NIQTFfSE1BQywKKwl9LAorCXsKKwkJLm5hbWUgPSAiYXV0aGVuYyhobWFjKHNoYTI1NiksY2JjKGFlcykpIiwKKwkJLmRyaXZlcl9uYW1lID0gImF1dGhlbmMtaG1hYy1zaGEyNTYtY2JjLWFlcy10YWxpdG9zIiwKKwkJLmJsb2Nrc2l6ZSA9IEFFU19CTE9DS19TSVpFLAorCQkuYWVhZCA9IHsKKwkJCS5zZXRrZXkgPSBhZWFkX2F1dGhlbmNfc2V0a2V5LAorCQkJLnNldGF1dGhzaXplID0gYWVhZF9hdXRoZW5jX3NldGF1dGhzaXplLAorCQkJLmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZW5jcnlwdCwKKwkJCS5kZWNyeXB0ID0gYWVhZF9hdXRoZW5jX2RlY3J5cHQsCisJCQkuZ2l2ZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19naXZlbmNyeXB0LAorCQkJLmdlbml2ID0gIjxidWlsdC1pbj4iLAorCQkJLml2c2l6ZSA9IEFFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplID0gU0hBMjU2X0RJR0VTVF9TSVpFLAorCQkJfSwKKwkJLmRlc2NfaGRyX3RlbXBsYXRlID0gREVTQ19IRFJfVFlQRV9JUFNFQ19FU1AgfAorCQkJICAgICAgICAgICAgIERFU0NfSERSX1NFTDBfQUVTVSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0FFU1VfQ0JDIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfU0VMMV9NREVVQSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfSU5JVCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfUEFEIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9TSEEyNTZfSE1BQywKKwl9LAorCXsKKwkJLm5hbWUgPSAiYXV0aGVuYyhobWFjKHNoYTI1NiksY2JjKGRlczNfZWRlKSkiLAorCQkuZHJpdmVyX25hbWUgPSAiYXV0aGVuYy1obWFjLXNoYTI1Ni1jYmMtM2Rlcy10YWxpdG9zIiwKKwkJLmJsb2Nrc2l6ZSA9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5hZWFkID0geworCQkJLnNldGtleSA9IGFlYWRfYXV0aGVuY19zZXRrZXksCisJCQkuc2V0YXV0aHNpemUgPSBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUsCisJCQkuZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19lbmNyeXB0LAorCQkJLmRlY3J5cHQgPSBhZWFkX2F1dGhlbmNfZGVjcnlwdCwKKwkJCS5naXZlbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2dpdmVuY3J5cHQsCisJCQkuZ2VuaXYgPSAiPGJ1aWx0LWluPiIsCisJCQkuaXZzaXplID0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZSA9IFNIQTI1Nl9ESUdFU1RfU0laRSwKKwkJCX0sCisJCS5kZXNjX2hkcl90ZW1wbGF0ZSA9IERFU0NfSERSX1RZUEVfSVBTRUNfRVNQIHwKKwkJCSAgICAgICAgICAgICBERVNDX0hEUl9TRUwwX0RFVSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0RFVV9DQkMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfM0RFUyB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX1NFTDFfTURFVUEgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX0lOSVQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1BBRCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfU0hBMjU2X0hNQUMsCisJfSwKKwl7CisJCS5uYW1lID0gImF1dGhlbmMoaG1hYyhtZDUpLGNiYyhhZXMpKSIsCisJCS5kcml2ZXJfbmFtZSA9ICJhdXRoZW5jLWhtYWMtbWQ1LWNiYy1hZXMtdGFsaXRvcyIsCisJCS5ibG9ja3NpemUgPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmFlYWQgPSB7CisJCQkuc2V0a2V5ID0gYWVhZF9hdXRoZW5jX3NldGtleSwKKwkJCS5zZXRhdXRoc2l6ZSA9IGFlYWRfYXV0aGVuY19zZXRhdXRoc2l6ZSwKKwkJCS5lbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2VuY3J5cHQsCisJCQkuZGVjcnlwdCA9IGFlYWRfYXV0aGVuY19kZWNyeXB0LAorCQkJLmdpdmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZ2l2ZW5jcnlwdCwKKwkJCS5nZW5pdiA9ICI8YnVpbHQtaW4+IiwKKwkJCS5pdnNpemUgPSBBRVNfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZSA9IE1ENV9ESUdFU1RfU0laRSwKKwkJCX0sCisJCS5kZXNjX2hkcl90ZW1wbGF0ZSA9IERFU0NfSERSX1RZUEVfSVBTRUNfRVNQIHwKKwkJCSAgICAgICAgICAgICBERVNDX0hEUl9TRUwwX0FFU1UgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9BRVNVX0NCQyB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX1NFTDFfTURFVUEgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX0lOSVQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1BBRCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfTUQ1X0hNQUMsCisJfSwKKwl7CisJCS5uYW1lID0gImF1dGhlbmMoaG1hYyhtZDUpLGNiYyhkZXMzX2VkZSkpIiwKKwkJLmRyaXZlcl9uYW1lID0gImF1dGhlbmMtaG1hYy1tZDUtY2JjLTNkZXMtdGFsaXRvcyIsCisJCS5ibG9ja3NpemUgPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkuYWVhZCA9IHsKKwkJCS5zZXRrZXkgPSBhZWFkX2F1dGhlbmNfc2V0a2V5LAorCQkJLnNldGF1dGhzaXplID0gYWVhZF9hdXRoZW5jX3NldGF1dGhzaXplLAorCQkJLmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZW5jcnlwdCwKKwkJCS5kZWNyeXB0ID0gYWVhZF9hdXRoZW5jX2RlY3J5cHQsCisJCQkuZ2l2ZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19naXZlbmNyeXB0LAorCQkJLmdlbml2ID0gIjxidWlsdC1pbj4iLAorCQkJLml2c2l6ZSA9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUgPSBNRDVfRElHRVNUX1NJWkUsCisJCQl9LAorCQkuZGVzY19oZHJfdGVtcGxhdGUgPSBERVNDX0hEUl9UWVBFX0lQU0VDX0VTUCB8CisJCQkgICAgICAgICAgICAgREVTQ19IRFJfU0VMMF9ERVUgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfQ0JDIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTBfREVVXzNERVMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9TRUwxX01ERVVBIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9JTklUIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9QQUQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX01ENV9ITUFDLAorCX0KK307CisKK3N0cnVjdCB0YWxpdG9zX2NyeXB0b19hbGcgeworCXN0cnVjdCBsaXN0X2hlYWQgZW50cnk7CisJc3RydWN0IGRldmljZSAqZGV2OworCV9fYmUzMiBkZXNjX2hkcl90ZW1wbGF0ZTsKKwlzdHJ1Y3QgY3J5cHRvX2FsZyBjcnlwdG9fYWxnOworfTsKKworc3RhdGljIGludCB0YWxpdG9zX2NyYV9pbml0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGNyeXB0b19hbGcgKmFsZyA9IHRmbS0+X19jcnRfYWxnOworCXN0cnVjdCB0YWxpdG9zX2NyeXB0b19hbGcgKnRhbGl0b3NfYWxnID0KKwkJIGNvbnRhaW5lcl9vZihhbGcsIHN0cnVjdCB0YWxpdG9zX2NyeXB0b19hbGcsIGNyeXB0b19hbGcpOworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKworCS8qIHVwZGF0ZSBjb250ZXh0IHdpdGggcHRyIHRvIGRldiAqLworCWN0eC0+ZGV2ID0gdGFsaXRvc19hbGctPmRldjsKKwkvKiBjb3B5IGRlc2NyaXB0b3IgaGVhZGVyIHRlbXBsYXRlIHZhbHVlICovCisJY3R4LT5kZXNjX2hkcl90ZW1wbGF0ZSA9IHRhbGl0b3NfYWxnLT5kZXNjX2hkcl90ZW1wbGF0ZTsKKworCS8qIHJhbmRvbSBmaXJzdCBJViAqLworCWdldF9yYW5kb21fYnl0ZXMoY3R4LT5pdiwgVEFMSVRPU19NQVhfSVZfTEVOR1RIKTsKKworCXJldHVybiAwOworfQorCisvKgorICogZ2l2ZW4gdGhlIGFsZydzIGRlc2NyaXB0b3IgaGVhZGVyIHRlbXBsYXRlLCBkZXRlcm1pbmUgd2hldGhlciBkZXNjcmlwdG9yCisgKiB0eXBlIGFuZCBwcmltYXJ5L3NlY29uZGFyeSBleGVjdXRpb24gdW5pdHMgcmVxdWlyZWQgbWF0Y2ggdGhlIGh3CisgKiBjYXBhYmlsaXRpZXMgZGVzY3JpcHRpb24gcHJvdmlkZWQgaW4gdGhlIGRldmljZSB0cmVlIG5vZGUuCisgKi8KK3N0YXRpYyBpbnQgaHdfc3VwcG9ydHMoc3RydWN0IGRldmljZSAqZGV2LCBfX2JlMzIgZGVzY19oZHJfdGVtcGxhdGUpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludCByZXQ7CisKKwlyZXQgPSAoMSA8PCBERVNDX1RZUEUoZGVzY19oZHJfdGVtcGxhdGUpICYgcHJpdi0+ZGVzY190eXBlcykgJiYKKwkgICAgICAoMSA8PCBQUklNQVJZX0VVKGRlc2NfaGRyX3RlbXBsYXRlKSAmIHByaXYtPmV4ZWNfdW5pdHMpOworCisJaWYgKFNFQ09OREFSWV9FVShkZXNjX2hkcl90ZW1wbGF0ZSkpCisJCXJldCA9IHJldCAmJiAoMSA8PCBTRUNPTkRBUllfRVUoZGVzY19oZHJfdGVtcGxhdGUpCisJCSAgICAgICAgICAgICAgJiBwcml2LT5leGVjX3VuaXRzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZleGl0IHRhbGl0b3NfcmVtb3ZlKHN0cnVjdCBvZl9kZXZpY2UgKm9mZGV2KQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZvZmRldi0+ZGV2OworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlzdHJ1Y3QgdGFsaXRvc19jcnlwdG9fYWxnICp0X2FsZywgKm47CisJaW50IGk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodF9hbGcsIG4sICZwcml2LT5hbGdfbGlzdCwgZW50cnkpIHsKKwkJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZ0X2FsZy0+Y3J5cHRvX2FsZyk7CisJCWxpc3RfZGVsKCZ0X2FsZy0+ZW50cnkpOworCQlrZnJlZSh0X2FsZyk7CisJfQorCisJaWYgKGh3X3N1cHBvcnRzKGRldiwgREVTQ19IRFJfU0VMMF9STkcpKQorCQl0YWxpdG9zX3VucmVnaXN0ZXJfcm5nKGRldik7CisKKwlrZnJlZShwcml2LT50YWlsKTsKKwlrZnJlZShwcml2LT5oZWFkKTsKKworCWlmIChwcml2LT5maWZvKQorCQlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+bnVtX2NoYW5uZWxzOyBpKyspCisJCQlrZnJlZShwcml2LT5maWZvW2ldKTsKKworCWtmcmVlKHByaXYtPmZpZm8pOworCWtmcmVlKHByaXYtPmhlYWRfbG9jayk7CisJa2ZyZWUocHJpdi0+dGFpbF9sb2NrKTsKKworCWlmIChwcml2LT5pcnEgIT0gTk9fSVJRKSB7CisJCWZyZWVfaXJxKHByaXYtPmlycSwgZGV2KTsKKwkJaXJxX2Rpc3Bvc2VfbWFwcGluZyhwcml2LT5pcnEpOworCX0KKworCXRhc2tsZXRfa2lsbCgmcHJpdi0+ZG9uZV90YXNrKTsKKwl0YXNrbGV0X2tpbGwoJnByaXYtPmVycm9yX3Rhc2spOworCisJaW91bm1hcChwcml2LT5yZWcpOworCisJZGV2X3NldF9kcnZkYXRhKGRldiwgTlVMTCk7CisKKwlrZnJlZShwcml2KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHRhbGl0b3NfY3J5cHRvX2FsZyAqdGFsaXRvc19hbGdfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkJICAgIHN0cnVjdCB0YWxpdG9zX2FsZ190ZW1wbGF0ZQorCQkJCQkJICAgICAgICAgICAqdGVtcGxhdGUpCit7CisJc3RydWN0IHRhbGl0b3NfY3J5cHRvX2FsZyAqdF9hbGc7CisJc3RydWN0IGNyeXB0b19hbGcgKmFsZzsKKworCXRfYWxnID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHRhbGl0b3NfY3J5cHRvX2FsZyksIEdGUF9LRVJORUwpOworCWlmICghdF9hbGcpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJYWxnID0gJnRfYWxnLT5jcnlwdG9fYWxnOworCisJc25wcmludGYoYWxnLT5jcmFfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgdGVtcGxhdGUtPm5hbWUpOworCXNucHJpbnRmKGFsZy0+Y3JhX2RyaXZlcl9uYW1lLCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLAorCQkgdGVtcGxhdGUtPmRyaXZlcl9uYW1lKTsKKwlhbGctPmNyYV9tb2R1bGUgPSBUSElTX01PRFVMRTsKKwlhbGctPmNyYV9pbml0ID0gdGFsaXRvc19jcmFfaW5pdDsKKwlhbGctPmNyYV9wcmlvcml0eSA9IFRBTElUT1NfQ1JBX1BSSU9SSVRZOworCWFsZy0+Y3JhX2ZsYWdzID0gQ1JZUFRPX0FMR19UWVBFX0FFQUQgfCBDUllQVE9fQUxHX0FTWU5DOworCWFsZy0+Y3JhX2Jsb2Nrc2l6ZSA9IHRlbXBsYXRlLT5ibG9ja3NpemU7CisJYWxnLT5jcmFfYWxpZ25tYXNrID0gMDsKKwlhbGctPmNyYV90eXBlID0gJmNyeXB0b19hZWFkX3R5cGU7CisJYWxnLT5jcmFfY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgdGFsaXRvc19jdHgpOworCWFsZy0+Y3JhX3UuYWVhZCA9IHRlbXBsYXRlLT5hZWFkOworCisJdF9hbGctPmRlc2NfaGRyX3RlbXBsYXRlID0gdGVtcGxhdGUtPmRlc2NfaGRyX3RlbXBsYXRlOworCXRfYWxnLT5kZXYgPSBkZXY7CisKKwlyZXR1cm4gdF9hbGc7Cit9CisKK3N0YXRpYyBpbnQgdGFsaXRvc19wcm9iZShzdHJ1Y3Qgb2ZfZGV2aWNlICpvZmRldiwKKwkJCSBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaCkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmb2ZkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gb2ZkZXYtPm5vZGU7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdjsKKwljb25zdCB1bnNpZ25lZCBpbnQgKnByb3A7CisJaW50IGksIGVycjsKKworCXByaXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdGFsaXRvc19wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRldl9zZXRfZHJ2ZGF0YShkZXYsIHByaXYpOworCisJcHJpdi0+b2ZkZXYgPSBvZmRldjsKKworCXRhc2tsZXRfaW5pdCgmcHJpdi0+ZG9uZV90YXNrLCB0YWxpdG9zX2RvbmUsICh1bnNpZ25lZCBsb25nKWRldik7CisJdGFza2xldF9pbml0KCZwcml2LT5lcnJvcl90YXNrLCB0YWxpdG9zX2Vycm9yLCAodW5zaWduZWQgbG9uZylkZXYpOworCisJcHJpdi0+aXJxID0gaXJxX29mX3BhcnNlX2FuZF9tYXAobnAsIDApOworCisJaWYgKHByaXYtPmlycSA9PSBOT19JUlEpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gbWFwIGlycVxuIik7CisJCWVyciA9IC1FSU5WQUw7CisJCWdvdG8gZXJyX291dDsKKwl9CisKKwkvKiBnZXQgdGhlIGlycSBsaW5lICovCisJZXJyID0gcmVxdWVzdF9pcnEocHJpdi0+aXJxLCB0YWxpdG9zX2ludGVycnVwdCwgMCwKKwkJCSAgZGV2X2RyaXZlcl9zdHJpbmcoZGV2KSwgZGV2KTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3QgaXJxICVkXG4iLCBwcml2LT5pcnEpOworCQlpcnFfZGlzcG9zZV9tYXBwaW5nKHByaXYtPmlycSk7CisJCXByaXYtPmlycSA9IE5PX0lSUTsKKwkJZ290byBlcnJfb3V0OworCX0KKworCXByaXYtPnJlZyA9IG9mX2lvbWFwKG5wLCAwKTsKKwlpZiAoIXByaXYtPnJlZykgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBvZl9pb21hcFxuIik7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gZXJyX291dDsKKwl9CisKKwkvKiBnZXQgU0VDIHZlcnNpb24gY2FwYWJpbGl0aWVzIGZyb20gZGV2aWNlIHRyZWUgKi8KKwlwcm9wID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiZnNsLG51bS1jaGFubmVscyIsIE5VTEwpOworCWlmIChwcm9wKQorCQlwcml2LT5udW1fY2hhbm5lbHMgPSAqcHJvcDsKKworCXByb3AgPSBvZl9nZXRfcHJvcGVydHkobnAsICJmc2wsY2hhbm5lbC1maWZvLWxlbiIsIE5VTEwpOworCWlmIChwcm9wKQorCQlwcml2LT5jaGZpZm9fbGVuID0gKnByb3A7CisKKwlwcm9wID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiZnNsLGV4ZWMtdW5pdHMtbWFzayIsIE5VTEwpOworCWlmIChwcm9wKQorCQlwcml2LT5leGVjX3VuaXRzID0gKnByb3A7CisKKwlwcm9wID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiZnNsLGRlc2NyaXB0b3ItdHlwZXMtbWFzayIsIE5VTEwpOworCWlmIChwcm9wKQorCQlwcml2LT5kZXNjX3R5cGVzID0gKnByb3A7CisKKwlpZiAoIWlzX3Bvd2VyX29mXzIocHJpdi0+bnVtX2NoYW5uZWxzKSB8fCAhcHJpdi0+Y2hmaWZvX2xlbiB8fAorCSAgICAhcHJpdi0+ZXhlY191bml0cyB8fCAhcHJpdi0+ZGVzY190eXBlcykgeworCQlkZXZfZXJyKGRldiwgImludmFsaWQgcHJvcGVydHkgZGF0YSBpbiBkZXZpY2UgdHJlZSBub2RlXG4iKTsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBlcnJfb3V0OworCX0KKworCW9mX25vZGVfcHV0KG5wKTsKKwlucCA9IE5VTEw7CisKKwlwcml2LT5oZWFkX2xvY2sgPSBrbWFsbG9jKHNpemVvZihzcGlubG9ja190KSAqIHByaXYtPm51bV9jaGFubmVscywKKwkJCQkgIEdGUF9LRVJORUwpOworCXByaXYtPnRhaWxfbG9jayA9IGttYWxsb2Moc2l6ZW9mKHNwaW5sb2NrX3QpICogcHJpdi0+bnVtX2NoYW5uZWxzLAorCQkJCSAgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2LT5oZWFkX2xvY2sgfHwgIXByaXYtPnRhaWxfbG9jaykgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBmaWZvIGxvY2tzXG4iKTsKKwkJZXJyID0gLUVOT01FTTsKKwkJZ290byBlcnJfb3V0OworCX0KKworCWZvciAoaSA9IDA7IGkgPCBwcml2LT5udW1fY2hhbm5lbHM7IGkrKykgeworCQlzcGluX2xvY2tfaW5pdCgmcHJpdi0+aGVhZF9sb2NrW2ldKTsKKwkJc3Bpbl9sb2NrX2luaXQoJnByaXYtPnRhaWxfbG9ja1tpXSk7CisJfQorCisJcHJpdi0+ZmlmbyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB0YWxpdG9zX3JlcXVlc3QgKikgKgorCQkJICAgICBwcml2LT5udW1fY2hhbm5lbHMsIEdGUF9LRVJORUwpOworCWlmICghcHJpdi0+ZmlmbykgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSByZXF1ZXN0IGZpZm9cbiIpOworCQllcnIgPSAtRU5PTUVNOworCQlnb3RvIGVycl9vdXQ7CisJfQorCisJcHJpdi0+Zmlmb19sZW4gPSByb3VuZHVwX3Bvd19vZl90d28ocHJpdi0+Y2hmaWZvX2xlbik7CisKKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+bnVtX2NoYW5uZWxzOyBpKyspIHsKKwkJcHJpdi0+Zmlmb1tpXSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB0YWxpdG9zX3JlcXVlc3QpICoKKwkJCQkJcHJpdi0+Zmlmb19sZW4sIEdGUF9LRVJORUwpOworCQlpZiAoIXByaXYtPmZpZm9baV0pIHsKKwkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHJlcXVlc3QgZmlmbyAlZFxuIiwgaSk7CisJCQllcnIgPSAtRU5PTUVNOworCQkJZ290byBlcnJfb3V0OworCQl9CisJfQorCisJcHJpdi0+aGVhZCA9IGt6YWxsb2Moc2l6ZW9mKGludCkgKiBwcml2LT5udW1fY2hhbm5lbHMsIEdGUF9LRVJORUwpOworCXByaXYtPnRhaWwgPSBremFsbG9jKHNpemVvZihpbnQpICogcHJpdi0+bnVtX2NoYW5uZWxzLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByaXYtPmhlYWQgfHwgIXByaXYtPnRhaWwpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gYWxsb2NhdGUgcmVxdWVzdCBpbmRleCBzcGFjZVxuIik7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gZXJyX291dDsKKwl9CisKKwkvKiByZXNldCBhbmQgaW5pdGlhbGl6ZSB0aGUgaC93ICovCisJZXJyID0gaW5pdF9kZXZpY2UoZGV2KTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgZGV2aWNlXG4iKTsKKwkJZ290byBlcnJfb3V0OworCX0KKworCS8qIHJlZ2lzdGVyIHRoZSBSTkcsIGlmIGF2YWlsYWJsZSAqLworCWlmIChod19zdXBwb3J0cyhkZXYsIERFU0NfSERSX1NFTDBfUk5HKSkgeworCQllcnIgPSB0YWxpdG9zX3JlZ2lzdGVyX3JuZyhkZXYpOworCQlpZiAoZXJyKSB7CisJCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdpc3RlciBod3JuZzogJWRcbiIsIGVycik7CisJCQlnb3RvIGVycl9vdXQ7CisJCX0gZWxzZQorCQkJZGV2X2luZm8oZGV2LCAiaHdybmdcbiIpOworCX0KKworCS8qIHJlZ2lzdGVyIGNyeXB0byBhbGdvcml0aG1zIHRoZSBkZXZpY2Ugc3VwcG9ydHMgKi8KKwlJTklUX0xJU1RfSEVBRCgmcHJpdi0+YWxnX2xpc3QpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZHJpdmVyX2FsZ3MpOyBpKyspIHsKKwkJaWYgKGh3X3N1cHBvcnRzKGRldiwgZHJpdmVyX2FsZ3NbaV0uZGVzY19oZHJfdGVtcGxhdGUpKSB7CisJCQlzdHJ1Y3QgdGFsaXRvc19jcnlwdG9fYWxnICp0X2FsZzsKKworCQkJdF9hbGcgPSB0YWxpdG9zX2FsZ19hbGxvYyhkZXYsICZkcml2ZXJfYWxnc1tpXSk7CisJCQlpZiAoSVNfRVJSKHRfYWxnKSkgeworCQkJCWVyciA9IFBUUl9FUlIodF9hbGcpOworCQkJCWdvdG8gZXJyX291dDsKKwkJCX0KKworCQkJZXJyID0gY3J5cHRvX3JlZ2lzdGVyX2FsZygmdF9hbGctPmNyeXB0b19hbGcpOworCQkJaWYgKGVycikgeworCQkJCWRldl9lcnIoZGV2LCAiJXMgYWxnIHJlZ2lzdHJhdGlvbiBmYWlsZWRcbiIsCisJCQkJCXRfYWxnLT5jcnlwdG9fYWxnLmNyYV9kcml2ZXJfbmFtZSk7CisJCQkJa2ZyZWUodF9hbGcpOworCQkJfSBlbHNlIHsKKwkJCQlsaXN0X2FkZF90YWlsKCZ0X2FsZy0+ZW50cnksICZwcml2LT5hbGdfbGlzdCk7CisJCQkJZGV2X2luZm8oZGV2LCAiJXNcbiIsCisJCQkJCSB0X2FsZy0+Y3J5cHRvX2FsZy5jcmFfZHJpdmVyX25hbWUpOworCQkJfQorCQl9CisJfQorCisJcmV0dXJuIDA7CisKK2Vycl9vdXQ6CisJdGFsaXRvc19yZW1vdmUob2ZkZXYpOworCWlmIChucCkKKwkJb2Zfbm9kZV9wdXQobnApOworCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHN0cnVjdCBvZl9kZXZpY2VfaWQgdGFsaXRvc19tYXRjaFtdID0geworCXsKKwkJLmNvbXBhdGlibGUgPSAiZnNsLHNlYzIuMCIsCisJfSwKKwl7fSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0YWxpdG9zX21hdGNoKTsKKworc3RhdGljIHN0cnVjdCBvZl9wbGF0Zm9ybV9kcml2ZXIgdGFsaXRvc19kcml2ZXIgPSB7CisJLm5hbWUgPSAidGFsaXRvcyIsCisJLm1hdGNoX3RhYmxlID0gdGFsaXRvc19tYXRjaCwKKwkucHJvYmUgPSB0YWxpdG9zX3Byb2JlLAorCS5yZW1vdmUgPSBfX2RldmV4aXRfcCh0YWxpdG9zX3JlbW92ZSksCit9OworCitzdGF0aWMgaW50IF9faW5pdCB0YWxpdG9zX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gb2ZfcmVnaXN0ZXJfcGxhdGZvcm1fZHJpdmVyKCZ0YWxpdG9zX2RyaXZlcik7Cit9Cittb2R1bGVfaW5pdCh0YWxpdG9zX2luaXQpOworCitzdGF0aWMgdm9pZCBfX2V4aXQgdGFsaXRvc19leGl0KHZvaWQpCit7CisJb2ZfdW5yZWdpc3Rlcl9wbGF0Zm9ybV9kcml2ZXIoJnRhbGl0b3NfZHJpdmVyKTsKK30KK21vZHVsZV9leGl0KHRhbGl0b3NfZXhpdCk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9BVVRIT1IoIktpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkZyZWVzY2FsZSBpbnRlZ3JhdGVkIHNlY3VyaXR5IGVuZ2luZSAoU0VDKSBkcml2ZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3RhbGl0b3MuaCBiL2RyaXZlcnMvY3J5cHRvL3RhbGl0b3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDhhNDA1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5oCkBAIC0wLDAgKzEsMTk5IEBACisvKgorICogRnJlZXNjYWxlIFNFQyAodGFsaXRvcykgZGV2aWNlIHJlZ2lzdGVyIGFuZCBkZXNjcmlwdG9yIGhlYWRlciBkZWZpbmVzCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDggRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworLyoKKyAqIFRBTElUT1NfeHh4X0xPIGFkZHJlc3NlcyBwb2ludCB0byB0aGUgbG93IGRhdGEgYml0cyAoMzItNjMpIG9mIHRoZSByZWdpc3RlcgorICovCisKKy8qIGdsb2JhbCByZWdpc3RlciBvZmZzZXQgYWRkcmVzc2VzICovCisjZGVmaW5lIFRBTElUT1NfTUNSCQkJMHgxMDMwICAvKiBtYXN0ZXIgY29udHJvbCByZWdpc3RlciAqLworI2RlZmluZSBUQUxJVE9TX01DUl9MTwkJCTB4MTAzOAorI2RlZmluZSAgIFRBTElUT1NfTUNSX1NXUgkJMHgxICAgICAvKiBzL3cgcmVzZXQgKi8KKyNkZWZpbmUgVEFMSVRPU19JTVIJCQkweDEwMDggIC8qIGludGVycnVwdCBtYXNrIHJlZ2lzdGVyICovCisjZGVmaW5lICAgVEFMSVRPU19JTVJfSU5JVAkJMHgxMGZmZiAvKiBlbmFibGUgY2hhbm5lbCBJUlFzICovCisjZGVmaW5lIFRBTElUT1NfSU1SX0xPCQkJMHgxMDBDCisjZGVmaW5lICAgVEFMSVRPU19JTVJfTE9fSU5JVAkJMHgyMDAwMCAvKiBhbGxvdyBSTkdVIGVycm9yIElSUXMgKi8KKyNkZWZpbmUgVEFMSVRPU19JU1IJCQkweDEwMTAgIC8qIGludGVycnVwdCBzdGF0dXMgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0lTUl9DSEVSUgkJMHhhYSAgICAvKiBjaGFubmVsIGVycm9ycyBtYXNrICovCisjZGVmaW5lICAgVEFMSVRPU19JU1JfQ0hET05FCQkweDU1ICAgIC8qIGNoYW5uZWwgZG9uZSBtYXNrICovCisjZGVmaW5lIFRBTElUT1NfSVNSX0xPCQkJMHgxMDE0CisjZGVmaW5lIFRBTElUT1NfSUNSCQkJMHgxMDE4ICAvKiBpbnRlcnJ1cHQgY2xlYXIgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgVEFMSVRPU19JQ1JfTE8JCQkweDEwMUMKKworLyogY2hhbm5lbCByZWdpc3RlciBhZGRyZXNzIHN0cmlkZSAqLworI2RlZmluZSBUQUxJVE9TX0NIX1NUUklERQkJMHgxMDAKKworLyogY2hhbm5lbCBjb25maWd1cmF0aW9uIHJlZ2lzdGVyICAqLworI2RlZmluZSBUQUxJVE9TX0NDQ1IoY2gpCQkoY2ggKiBUQUxJVE9TX0NIX1NUUklERSArIDB4MTEwOCkKKyNkZWZpbmUgICBUQUxJVE9TX0NDQ1JfQ09OVAkJMHgyICAgIC8qIGNoYW5uZWwgY29udGludWUgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDQ1JfUkVTRVQJCTB4MSAgICAvKiBjaGFubmVsIHJlc2V0ICovCisjZGVmaW5lIFRBTElUT1NfQ0NDUl9MTyhjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTBjKQorI2RlZmluZSAgIFRBTElUT1NfQ0NDUl9MT19DRFdFCQkweDEwICAgLyogY2hhbi4gZG9uZSB3cml0ZWJhY2sgZW5hYi4gKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDQ1JfTE9fTlQJCTB4NCAgICAvKiBub3RpZmljYXRpb24gdHlwZSAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NDUl9MT19DRElFCQkweDIgICAgLyogY2hhbm5lbCBkb25lIElSUSBlbmFibGUgKi8KKworLyogQ0NQU1I6IGNoYW5uZWwgcG9pbnRlciBzdGF0dXMgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgVEFMSVRPU19DQ1BTUihjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTEwKQorI2RlZmluZSBUQUxJVE9TX0NDUFNSX0xPKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExMTQpCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19ET0YJCTB4ODAwMCAvKiBkb3VibGUgRkYgd3JpdGUgb2Zsb3cgZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX1NPRgkJMHg0MDAwIC8qIHNpbmdsZSBGRiB3cml0ZSBvZmxvdyBlcnJvciAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NQU1JfTE9fTURURQkJMHgyMDAwIC8qIG1hc3RlciBkYXRhIHRyYW5zZmVyIGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19TR0RMWgkweDEwMDAgLyogcy9nIGRhdGEgbGVuIHplcm8gZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX0ZQWgkJMHgwODAwIC8qIGZldGNoIHB0ciB6ZXJvIGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19JREgJCTB4MDQwMCAvKiBpbGxlZ2FsIGRlc2MgaGRyIGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19JRVUJCTB4MDIwMCAvKiBpbnZhbGlkIEVVIGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19FVQkJMHgwMTAwIC8qIEVVIGVycm9yIGRldGVjdGVkICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19HQgkJMHgwMDgwIC8qIGdhdGhlciBib3VuZGFyeSBlcnJvciAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NQU1JfTE9fR1JMCQkweDAwNDAgLyogZ2F0aGVyIHJldHVybi9sZW5ndGggZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX1NCCQkweDAwMjAgLyogc2NhdHRlciBib3VuZGFyeSBlcnJvciAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NQU1JfTE9fU1JMCQkweDAwMTAgLyogc2NhdHRlciByZXR1cm4vbGVuZ3RoIGVycm9yICovCisKKy8qIGNoYW5uZWwgZmV0Y2ggZmlmbyByZWdpc3RlciAqLworI2RlZmluZSBUQUxJVE9TX0ZGKGNoKQkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTQ4KQorI2RlZmluZSBUQUxJVE9TX0ZGX0xPKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExNGMpCisKKy8qIGN1cnJlbnQgZGVzY3JpcHRvciBwb2ludGVyIHJlZ2lzdGVyICovCisjZGVmaW5lIFRBTElUT1NfQ0RQUihjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTQwKQorI2RlZmluZSBUQUxJVE9TX0NEUFJfTE8oY2gpCQkoY2ggKiBUQUxJVE9TX0NIX1NUUklERSArIDB4MTE0NCkKKworLyogZGVzY3JpcHRvciBidWZmZXIgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgVEFMSVRPU19ERVNDQlVGKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExODApCisjZGVmaW5lIFRBTElUT1NfREVTQ0JVRl9MTyhjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTg0KQorCisvKiBnYXRoZXIgbGluayB0YWJsZSAqLworI2RlZmluZSBUQUxJVE9TX0dBVEhFUihjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMWMwKQorI2RlZmluZSBUQUxJVE9TX0dBVEhFUl9MTyhjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMWM0KQorCisvKiBzY2F0dGVyIGxpbmsgdGFibGUgKi8KKyNkZWZpbmUgVEFMSVRPU19TQ0FUVEVSKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExZTApCisjZGVmaW5lIFRBTElUT1NfU0NBVFRFUl9MTyhjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMWU0KQorCisvKiBleGVjdXRpb24gdW5pdCBpbnRlcnJ1cHQgc3RhdHVzIHJlZ2lzdGVycyAqLworI2RlZmluZSBUQUxJVE9TX0RFVUlTUgkJCTB4MjAzMCAvKiBERVMgdW5pdCAqLworI2RlZmluZSBUQUxJVE9TX0RFVUlTUl9MTwkJMHgyMDM0CisjZGVmaW5lIFRBTElUT1NfQUVTVUlTUgkJCTB4NDAzMCAvKiBBRVMgdW5pdCAqLworI2RlZmluZSBUQUxJVE9TX0FFU1VJU1JfTE8JCTB4NDAzNAorI2RlZmluZSBUQUxJVE9TX01ERVVJU1IJCQkweDYwMzAgLyogbWVzc2FnZSBkaWdlc3QgdW5pdCAqLworI2RlZmluZSBUQUxJVE9TX01ERVVJU1JfTE8JCTB4NjAzNAorI2RlZmluZSBUQUxJVE9TX0FGRVVJU1IJCQkweDgwMzAgLyogYXJjNCB1bml0ICovCisjZGVmaW5lIFRBTElUT1NfQUZFVUlTUl9MTwkJMHg4MDM0CisjZGVmaW5lIFRBTElUT1NfUk5HVUlTUgkJCTB4YTAzMCAvKiByYW5kb20gbnVtYmVyIHVuaXQgKi8KKyNkZWZpbmUgVEFMSVRPU19STkdVSVNSX0xPCQkweGEwMzQKKyNkZWZpbmUgVEFMSVRPU19STkdVU1IJCQkweGEwMjggLyogcm5nIHN0YXR1cyAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VTUl9MTwkJMHhhMDJjCisjZGVmaW5lICAgVEFMSVRPU19STkdVU1JfTE9fUkQJCTB4MQkvKiByZXNldCBkb25lICovCisjZGVmaW5lICAgVEFMSVRPU19STkdVU1JfTE9fT0ZMCQkweGZmMDAwMC8qIG91dHB1dCBGSUZPIGxlbmd0aCAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VEU1IJCQkweGEwMTAJLyogZGF0YSBzaXplICovCisjZGVmaW5lIFRBTElUT1NfUk5HVURTUl9MTwkJMHhhMDE0CisjZGVmaW5lIFRBTElUT1NfUk5HVV9GSUZPCQkweGE4MDAJLyogb3V0cHV0IEZJRk8gKi8KKyNkZWZpbmUgVEFMSVRPU19STkdVX0ZJRk9fTE8JCTB4YTgwNAkvKiBvdXRwdXQgRklGTyAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VSQ1IJCQkweGEwMTgJLyogcmVzZXQgY29udHJvbCAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VSQ1JfTE8JCTB4YTAxYworI2RlZmluZSAgIFRBTElUT1NfUk5HVVJDUl9MT19TUgkJMHgxCS8qIHNvZnR3YXJlIHJlc2V0ICovCisjZGVmaW5lIFRBTElUT1NfUEtFVUlTUgkJCTB4YzAzMCAvKiBwdWJsaWMga2V5IHVuaXQgKi8KKyNkZWZpbmUgVEFMSVRPU19QS0VVSVNSX0xPCQkweGMwMzQKKyNkZWZpbmUgVEFMSVRPU19LRVVJU1IJCQkweGUwMzAgLyoga2FzdW1pIHVuaXQgKi8KKyNkZWZpbmUgVEFMSVRPU19LRVVJU1JfTE8JCTB4ZTAzNAorI2RlZmluZSBUQUxJVE9TX0NSQ1VJU1IJCQkweGYwMzAgLyogY3ljbGljIHJlZHVuZGFuY3kgY2hlY2sgdW5pdCovCisjZGVmaW5lIFRBTElUT1NfQ1JDVUlTUl9MTwkJMHhmMDM0CisKKy8qCisgKiB0YWxpdG9zIGRlc2NyaXB0b3IgaGVhZGVyIChoZHIpIGJpdHMKKyAqLworCisvKiB3cml0dGVuIGJhY2sgd2hlbiBkb25lICovCisjZGVmaW5lIERFU0NfSERSX0RPTkUJCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4ZmYwMDAwMDApCisKKy8qIHByaW1hcnkgZXhlY3V0aW9uIHVuaXQgc2VsZWN0ICovCisjZGVmaW5lCURFU0NfSERSX1NFTDBfTUFTSwkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweGYwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX0FGRVUJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgxMDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9ERVUJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgyMDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9NREVVQQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDMwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX01ERVVCCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4YjAwMDAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDBfUk5HCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4NDAwMDAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDBfUEtFVQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDUwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX0FFU1UJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHg2MDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9LRVUJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHg3MDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9DUkNVCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4ODAwMDAwMDApCisKKy8qIHByaW1hcnkgZXhlY3V0aW9uIHVuaXQgbW9kZSAoTU9ERTApIGFuZCBkZXJpdmF0aXZlcyAqLworI2RlZmluZQlERVNDX0hEUl9NT0RFMF9FTkNSWVBUCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAxMDAwMDApCisjZGVmaW5lCURFU0NfSERSX01PREUwX0FFU1VfQ0JDCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAyMDAwMDApCisjZGVmaW5lCURFU0NfSERSX01PREUwX0RFVV9DQkMJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDQwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfREVVXzNERVMJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDIwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9JTklUCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMTAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9ITUFDCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDgwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9QQUQJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDQwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9NRDUJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDIwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9TSEEyNTYJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMTAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX1NIQTEJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX01ENV9ITUFDCShERVNDX0hEUl9NT0RFMF9NREVVX01ENSB8IFwKKwkJCQkJIERFU0NfSERSX01PREUwX01ERVVfSE1BQykKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9TSEEyNTZfSE1BQwkoREVTQ19IRFJfTU9ERTBfTURFVV9TSEEyNTYgfCBcCisJCQkJCSBERVNDX0hEUl9NT0RFMF9NREVVX0hNQUMpCisjZGVmaW5lCURFU0NfSERSX01PREUwX01ERVVfU0hBMV9ITUFDCShERVNDX0hEUl9NT0RFMF9NREVVX1NIQTEgfCBcCisJCQkJCSBERVNDX0hEUl9NT0RFMF9NREVVX0hNQUMpCisKKy8qIHNlY29uZGFyeSBleGVjdXRpb24gdW5pdCBzZWxlY3QgKFNFTDEpICovCisjZGVmaW5lCURFU0NfSERSX1NFTDFfTUFTSwkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMGYwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwxX01ERVVBCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMzAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDFfTURFVUIJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDBiMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMV9DUkNVCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwODAwMDApCisKKy8qIHNlY29uZGFyeSBleGVjdXRpb24gdW5pdCBtb2RlIChNT0RFMSkgYW5kIGRlcml2YXRpdmVzICovCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfSU5JVAlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDEwMDApCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfSE1BQwlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDA4MDApCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfUEFECQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDA0MDApCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfTUQ1CQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDAyMDApCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfU0hBMjU2CV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDEwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9TSEExCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9NRDVfSE1BQwkoREVTQ19IRFJfTU9ERTFfTURFVV9NRDUgfCBcCisJCQkJCSBERVNDX0hEUl9NT0RFMV9NREVVX0hNQUMpCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfU0hBMjU2X0hNQUMJKERFU0NfSERSX01PREUxX01ERVVfU0hBMjU2IHwgXAorCQkJCQkgREVTQ19IRFJfTU9ERTFfTURFVV9ITUFDKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMV9NREVVX1NIQTFfSE1BQwkoREVTQ19IRFJfTU9ERTFfTURFVV9TSEExIHwgXAorCQkJCQkgREVTQ19IRFJfTU9ERTFfTURFVV9ITUFDKQorCisvKiBkaXJlY3Rpb24gb2Ygb3ZlcmFsbCBkYXRhIGZsb3cgKERJUikgKi8KKyNkZWZpbmUJREVTQ19IRFJfRElSX0lOQk9VTkQJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDAwMikKKworLyogcmVxdWVzdCBkb25lIG5vdGlmaWNhdGlvbiAoRE4pICovCisjZGVmaW5lCURFU0NfSERSX0RPTkVfTk9USUZZCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDAwMDEpCisKKy8qIGRlc2NyaXB0b3IgdHlwZXMgKi8KKyNkZWZpbmUgREVTQ19IRFJfVFlQRV9BRVNVX0NUUl9OT05TTk9PUAkJX19jb25zdGFudF9jcHVfdG9fYmUzMigwIDw8IDMpCisjZGVmaW5lIERFU0NfSERSX1RZUEVfSVBTRUNfRVNQCQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigxIDw8IDMpCisjZGVmaW5lIERFU0NfSERSX1RZUEVfQ09NTU9OX05PTlNOT09QX05PX0FGRVUJX19jb25zdGFudF9jcHVfdG9fYmUzMigyIDw8IDMpCisjZGVmaW5lIERFU0NfSERSX1RZUEVfSE1BQ19TTk9PUF9OT19BRkVVCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoNCA8PCAzKQorCisvKiBsaW5rIHRhYmxlIGV4dGVudCBmaWVsZCBiaXRzICovCisjZGVmaW5lIERFU0NfUFRSX0xOS1RCTF9KVU1QCQkJMHg4MAorI2RlZmluZSBERVNDX1BUUl9MTktUQkxfUkVUVVJOCQkJMHgwMgorI2RlZmluZSBERVNDX1BUUl9MTktUQkxfTkVYVAkJCTB4MDEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlyZXdpcmUvZnctc2JwMi5jIGIvZHJpdmVycy9maXJld2lyZS9mdy1zYnAyLmMKaW5kZXggYjI0NThiYi4uMjI3ZDJlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJld2lyZS9mdy1zYnAyLmMKKysrIGIvZHJpdmVycy9maXJld2lyZS9mdy1zYnAyLmMKQEAgLTEwNTEsNyArMTA1MSw4IEBACiAJCQlicmVhazsKIAogCQljYXNlIFNCUDJfQ1NSX0xPR0lDQUxfVU5JVF9ESVJFQ1RPUlk6Ci0JCQlpZiAoc2JwMl9zY2FuX2xvZ2ljYWxfdW5pdF9kaXIodGd0LCBjaS5wICsgdmFsdWUpIDwgMCkKKwkJCS8qIEFkanVzdCBmb3IgdGhlIGluY3JlbWVudCBpbiB0aGUgaXRlcmF0b3IgKi8KKwkJCWlmIChzYnAyX3NjYW5fbG9naWNhbF91bml0X2Rpcih0Z3QsIGNpLnAgLSAxICsgdmFsdWUpIDwgMCkKIAkJCQlyZXR1cm4gLUVOT01FTTsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL0tjb25maWcgYi9kcml2ZXJzL2Zpcm13YXJlL0tjb25maWcKaW5kZXggZGMyY2VjNi4uZWJiOWU1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJtd2FyZS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvS2NvbmZpZwpAQCAtMjYsNiArMjYsMTYgQEAKIAkgIGtlcm5lbC4gU2F5IE4gaWYgeW91IHdhbnQgRUREIGVuYWJsZWQgYnkgZGVmYXVsdC4gRUREIGNhbiBiZSBkeW5hbWljYWxseSBzZXQKIAkgIHVzaW5nIHRoZSBrZXJuZWwgcGFyYW1ldGVyICdlZGQ9e29ufHNraXBtYnJ8b2ZmfScuCiAKK2NvbmZpZyBGSVJNV0FSRV9NRU1NQVAKKyAgICBib29sICJBZGQgZmlybXdhcmUtcHJvdmlkZWQgbWVtb3J5IG1hcCB0byBzeXNmcyIgaWYgRU1CRURERUQKKyAgICBkZWZhdWx0IChYODZfNjQgfHwgWDg2XzMyKQorICAgIGhlbHAKKyAgICAgIEFkZCB0aGUgZmlybXdhcmUtcHJvdmlkZWQgKHVubW9kaWZpZWQpIG1lbW9yeSBtYXAgdG8gL3N5cy9maXJtd2FyZS9tZW1tYXAuCisgICAgICBUaGF0IG1lbW9yeSBtYXAgaXMgdXNlZCBmb3IgZXhhbXBsZSBieSBrZXhlYyB0byBzZXQgdXAgcGFyYW1ldGVyIGFyZWEKKyAgICAgIGZvciB0aGUgbmV4dCBrZXJuZWwsIGJ1dCBjYW4gYWxzbyBiZSB1c2VkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCisKKyAgICAgIFNlZSBhbHNvIERvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtZmlybXdhcmUtbWVtbWFwLgorCiBjb25maWcgRUZJX1ZBUlMKIAl0cmlzdGF0ZSAiRUZJIFZhcmlhYmxlIFN1cHBvcnQgdmlhIHN5c2ZzIgogCWRlcGVuZHMgb24gRUZJCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL01ha2VmaWxlIGIvZHJpdmVycy9maXJtd2FyZS9NYWtlZmlsZQppbmRleCA0YzkxNDcxLi4xYzNjMTczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Zpcm13YXJlL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvTWFrZWZpbGUKQEAgLTEwLDMgKzEwLDQgQEAKIG9iai0kKENPTkZJR19ETUlJRCkJCSs9IGRtaS1pZC5vCiBvYmotJChDT05GSUdfSVNDU0lfSUJGVF9GSU5EKQkrPSBpc2NzaV9pYmZ0X2ZpbmQubwogb2JqLSQoQ09ORklHX0lTQ1NJX0lCRlQpCSs9IGlzY3NpX2liZnQubworb2JqLSQoQ09ORklHX0ZJUk1XQVJFX01FTU1BUCkJKz0gbWVtbWFwLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvZGVsbF9yYnUuYyBiL2RyaXZlcnMvZmlybXdhcmUvZGVsbF9yYnUuYwppbmRleCA2YThiMWUwLi43NDMwZTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Zpcm13YXJlL2RlbGxfcmJ1LmMKKysrIGIvZHJpdmVycy9maXJtd2FyZS9kZWxsX3JidS5jCkBAIC0yMjAsNyArMjIwLDcgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCi1zdGF0aWMgaW50IHBhY2tldGl6ZV9kYXRhKHZvaWQgKmRhdGEsIHNpemVfdCBsZW5ndGgpCitzdGF0aWMgaW50IHBhY2tldGl6ZV9kYXRhKGNvbnN0IHU4ICpkYXRhLCBzaXplX3QgbGVuZ3RoKQogewogCWludCByYyA9IDA7CiAJaW50IGRvbmUgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9kbWlfc2Nhbi5jIGIvZHJpdmVycy9maXJtd2FyZS9kbWlfc2Nhbi5jCmluZGV4IGM1ZTNlZDcuLjQ1NTU3NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlybXdhcmUvZG1pX3NjYW4uYworKysgYi9kcml2ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMKQEAgLTgsNiArOCwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxhc20vZG1pLmg+CiAKKy8qCisgKiBETUkgc3RhbmRzIGZvciAiRGVza3RvcCBNYW5hZ2VtZW50IEludGVyZmFjZSIuICBJdCBpcyBwYXJ0CisgKiBvZiBhbmQgYW4gYW50ZWNlZGVudCB0bywgU01CSU9TLCB3aGljaCBzdGFuZHMgZm9yIFN5c3RlbQorICogTWFuYWdlbWVudCBCSU9TLiAgU2VlIGZ1cnRoZXI6IGh0dHA6Ly93d3cuZG10Zi5vcmcvc3RhbmRhcmRzCisgKi8KIHN0YXRpYyBjaGFyIGRtaV9lbXB0eV9zdHJpbmdbXSA9ICIgICAgICAgICI7CiAKIHN0YXRpYyBjb25zdCBjaGFyICogX19pbml0IGRtaV9zdHJpbmdfbm9zYXZlKGNvbnN0IHN0cnVjdCBkbWlfaGVhZGVyICpkbSwgdTggcykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvbWVtbWFwLmMgYi9kcml2ZXJzL2Zpcm13YXJlL21lbW1hcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyMzM5OWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2Zpcm13YXJlL21lbW1hcC5jCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICogbGludXgvZHJpdmVycy9maXJtd2FyZS9tZW1tYXAuYworICogIENvcHlyaWdodCAoQykgMjAwOCBTVVNFIExJTlVYIFByb2R1Y3RzIEdtYkgKKyAqICBieSBCZXJuaGFyZCBXYWxsZSA8YndhbGxlQHN1c2UuZGU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjIuMCBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUtbWFwLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CisKKy8qCisgKiBEYXRhIHR5cGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKy8qCisgKiBGaXJtd2FyZSBtYXAgZW50cnkuIEJlY2F1c2UgZmlybXdhcmUgbWVtb3J5IG1hcHMgYXJlIGZsYXQgYW5kIG5vdAorICogaGllcmFyY2hpY2FsLCBpdCdzIG9rIHRvIG9yZ2FuaXNlIHRoZW0gaW4gYSBsaW5rZWQgbGlzdC4gTm8gcGFyZW50CisgKiBpbmZvcm1hdGlvbiBpcyBuZWNlc3NhcnkgYXMgZm9yIHRoZSByZXNvdXJjZSB0cmVlLgorICovCitzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5IHsKKwlyZXNvdXJjZV9zaXplX3QJCXN0YXJ0OwkvKiBzdGFydCBvZiB0aGUgbWVtb3J5IHJhbmdlICovCisJcmVzb3VyY2Vfc2l6ZV90CQllbmQ7CS8qIGVuZCBvZiB0aGUgbWVtb3J5IHJhbmdlIChpbmNsLikgKi8KKwljb25zdCBjaGFyCQkqdHlwZTsJLyogdHlwZSBvZiB0aGUgbWVtb3J5IHJhbmdlICovCisJc3RydWN0IGxpc3RfaGVhZAlsaXN0OwkvKiBlbnRyeSBmb3IgdGhlIGxpbmtlZCBsaXN0ICovCisJc3RydWN0IGtvYmplY3QJCWtvYmo7ICAgLyoga29iamVjdCBmb3IgZWFjaCBlbnRyeSAqLworfTsKKworLyoKKyAqIEZvcndhcmQgZGVjbGFyYXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3N0YXRpYyBzc2l6ZV90IG1lbW1hcF9hdHRyX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKTsKK3N0YXRpYyBzc2l6ZV90IHN0YXJ0X3Nob3coc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnksIGNoYXIgKmJ1Zik7CitzdGF0aWMgc3NpemVfdCBlbmRfc2hvdyhzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeSwgY2hhciAqYnVmKTsKK3N0YXRpYyBzc2l6ZV90IHR5cGVfc2hvdyhzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeSwgY2hhciAqYnVmKTsKKworLyoKKyAqIFN0YXRpYyBkYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworc3RydWN0IG1lbW1hcF9hdHRyaWJ1dGUgeworCXN0cnVjdCBhdHRyaWJ1dGUgYXR0cjsKKwlzc2l6ZV90ICgqc2hvdykoc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnksIGNoYXIgKmJ1Zik7Cit9OworCitzdHJ1Y3QgbWVtbWFwX2F0dHJpYnV0ZSBtZW1tYXBfc3RhcnRfYXR0ciA9IF9fQVRUUl9STyhzdGFydCk7CitzdHJ1Y3QgbWVtbWFwX2F0dHJpYnV0ZSBtZW1tYXBfZW5kX2F0dHIgICA9IF9fQVRUUl9STyhlbmQpOworc3RydWN0IG1lbW1hcF9hdHRyaWJ1dGUgbWVtbWFwX3R5cGVfYXR0ciAgPSBfX0FUVFJfUk8odHlwZSk7CisKKy8qCisgKiBUaGVzZSBhcmUgZGVmYXVsdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIGFkZGVkIGZvciBldmVyeSBtZW1tYXAgZW50cnkuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpkZWZfYXR0cnNbXSA9IHsKKwkmbWVtbWFwX3N0YXJ0X2F0dHIuYXR0ciwKKwkmbWVtbWFwX2VuZF9hdHRyLmF0dHIsCisJJm1lbW1hcF90eXBlX2F0dHIuYXR0ciwKKwlOVUxMCit9OworCitzdGF0aWMgc3RydWN0IHN5c2ZzX29wcyBtZW1tYXBfYXR0cl9vcHMgPSB7CisJLnNob3cgPSBtZW1tYXBfYXR0cl9zaG93LAorfTsKKworc3RhdGljIHN0cnVjdCBrb2JqX3R5cGUgbWVtbWFwX2t0eXBlID0geworCS5zeXNmc19vcHMJPSAmbWVtbWFwX2F0dHJfb3BzLAorCS5kZWZhdWx0X2F0dHJzCT0gZGVmX2F0dHJzLAorfTsKKworLyoKKyAqIFJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworLyoKKyAqIEZpcm13YXJlIG1lbW9yeSBtYXAgZW50cmllcworICovCitzdGF0aWMgTElTVF9IRUFEKG1hcF9lbnRyaWVzKTsKKworLyoqCisgKiBDb21tb24gaW1wbGVtZW50YXRpb24gb2YgZmlybXdhcmVfbWFwX2FkZCgpIGFuZCBmaXJtd2FyZV9tYXBfYWRkX2Vhcmx5KCkKKyAqIHdoaWNoIGV4cGVjdHMgYSBwcmUtYWxsb2NhdGVkIHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkuCisgKgorICogQHN0YXJ0OiBTdGFydCBvZiB0aGUgbWVtb3J5IHJhbmdlLgorICogQGVuZDogICBFbmQgb2YgdGhlIG1lbW9yeSByYW5nZSAoaW5jbHVzaXZlKS4KKyAqIEB0eXBlOiAgVHlwZSBvZiB0aGUgbWVtb3J5IHJhbmdlLgorICogQGVudHJ5OiBQcmUtYWxsb2NhdGVkIChlaXRoZXIga21hbGxvYygpIG9yIGJvb3RtZW0gYWxsb2NhdG9yKSwgdW5pbml0aWFsaXNlZAorICogICAgICAgICBlbnRyeS4KKyAqLworc3RhdGljIGludCBmaXJtd2FyZV9tYXBfYWRkX2VudHJ5KHJlc291cmNlX3NpemVfdCBzdGFydCwgcmVzb3VyY2Vfc2l6ZV90IGVuZCwKKwkJCQkgIGNvbnN0IGNoYXIgKnR5cGUsCisJCQkJICBzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeSkKK3sKKwlCVUdfT04oc3RhcnQgPiBlbmQpOworCisJZW50cnktPnN0YXJ0ID0gc3RhcnQ7CisJZW50cnktPmVuZCA9IGVuZDsKKwllbnRyeS0+dHlwZSA9IHR5cGU7CisJSU5JVF9MSVNUX0hFQUQoJmVudHJ5LT5saXN0KTsKKwlrb2JqZWN0X2luaXQoJmVudHJ5LT5rb2JqLCAmbWVtbWFwX2t0eXBlKTsKKworCWxpc3RfYWRkX3RhaWwoJmVudHJ5LT5saXN0LCAmbWFwX2VudHJpZXMpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBTZWUgPGxpbnV4L2Zpcm13YXJlLW1hcC5oPiBmb3IgZG9jdW1lbnRhdGlvbi4KKyAqLworaW50IGZpcm13YXJlX21hcF9hZGQocmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3QgZW5kLAorCQkgICAgIGNvbnN0IGNoYXIgKnR5cGUpCit7CisJc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnk7CisKKwllbnRyeSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkpLCBHRlBfQVRPTUlDKTsKKwlXQVJOX09OKCFlbnRyeSk7CisJaWYgKCFlbnRyeSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXR1cm4gZmlybXdhcmVfbWFwX2FkZF9lbnRyeShzdGFydCwgZW5kLCB0eXBlLCBlbnRyeSk7Cit9CisKKy8qCisgKiBTZWUgPGxpbnV4L2Zpcm13YXJlLW1hcC5oPiBmb3IgZG9jdW1lbnRhdGlvbi4KKyAqLworaW50IF9faW5pdCBmaXJtd2FyZV9tYXBfYWRkX2Vhcmx5KHJlc291cmNlX3NpemVfdCBzdGFydCwgcmVzb3VyY2Vfc2l6ZV90IGVuZCwKKwkJCQkgIGNvbnN0IGNoYXIgKnR5cGUpCit7CisJc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnk7CisKKwllbnRyeSA9IGFsbG9jX2Jvb3RtZW1fbG93KHNpemVvZihzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5KSk7CisJV0FSTl9PTighZW50cnkpOworCWlmICghZW50cnkpCisJCXJldHVybiAtRU5PTUVNOworCisJcmV0dXJuIGZpcm13YXJlX21hcF9hZGRfZW50cnkoc3RhcnQsIGVuZCwgdHlwZSwgZW50cnkpOworfQorCisvKgorICogU3lzZnMgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCitzdGF0aWMgc3NpemVfdCBzdGFydF9zaG93KHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5LCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiMHglbGx4XG4iLCBlbnRyeS0+c3RhcnQpOworfQorCitzdGF0aWMgc3NpemVfdCBlbmRfc2hvdyhzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeSwgY2hhciAqYnVmKQoreworCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIjB4JWxseFxuIiwgZW50cnktPmVuZCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHR5cGVfc2hvdyhzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeSwgY2hhciAqYnVmKQoreworCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVzXG4iLCBlbnRyeS0+dHlwZSk7Cit9CisKKyNkZWZpbmUgdG9fbWVtbWFwX2F0dHIoX2F0dHIpIGNvbnRhaW5lcl9vZihfYXR0ciwgc3RydWN0IG1lbW1hcF9hdHRyaWJ1dGUsIGF0dHIpCisjZGVmaW5lIHRvX21lbW1hcF9lbnRyeShvYmopIGNvbnRhaW5lcl9vZihvYmosIHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnksIGtvYmopCisKK3N0YXRpYyBzc2l6ZV90IG1lbW1hcF9hdHRyX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5ID0gdG9fbWVtbWFwX2VudHJ5KGtvYmopOworCXN0cnVjdCBtZW1tYXBfYXR0cmlidXRlICptZW1tYXBfYXR0ciA9IHRvX21lbW1hcF9hdHRyKGF0dHIpOworCisJcmV0dXJuIG1lbW1hcF9hdHRyLT5zaG93KGVudHJ5LCBidWYpOworfQorCisvKgorICogSW5pdGlhbGlzZXMgc3R1ZmYgYW5kIGFkZHMgdGhlIGVudHJpZXMgaW4gdGhlIG1hcF9lbnRyaWVzIGxpc3QgdG8KKyAqIHN5c2ZzLiBJbXBvcnRhbnQgaXMgdGhhdCBmaXJtd2FyZV9tYXBfYWRkKCkgYW5kIGZpcm13YXJlX21hcF9hZGRfZWFybHkoKQorICogbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGxhdGVfaW5pdGNhbGwuCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IG1lbW1hcF9pbml0KHZvaWQpCit7CisJaW50IGkgPSAwOworCXN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5OworCXN0cnVjdCBrc2V0ICptZW1tYXBfa3NldDsKKworCW1lbW1hcF9rc2V0ID0ga3NldF9jcmVhdGVfYW5kX2FkZCgibWVtbWFwIiwgTlVMTCwgZmlybXdhcmVfa29iaik7CisJV0FSTl9PTighbWVtbWFwX2tzZXQpOworCWlmICghbWVtbWFwX2tzZXQpCisJCXJldHVybiAtRU5PTUVNOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJm1hcF9lbnRyaWVzLCBsaXN0KSB7CisJCWVudHJ5LT5rb2JqLmtzZXQgPSBtZW1tYXBfa3NldDsKKwkJa29iamVjdF9hZGQoJmVudHJ5LT5rb2JqLCBOVUxMLCAiJWQiLCBpKyspOworCX0KKworCXJldHVybiAwOworfQorbGF0ZV9pbml0Y2FsbChtZW1tYXBfaW5pdCk7CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3Bpby9LY29uZmlnIGIvZHJpdmVycy9ncGlvL0tjb25maWcKaW5kZXggYmJkMjgzNC4uMDA4YzM4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncGlvL0tjb25maWcKKysrIGIvZHJpdmVycy9ncGlvL0tjb25maWcKQEAgLTI4LDEyICsyOCwxOCBAQAogY29tbWVudCAiSTJDIEdQSU8gZXhwYW5kZXJzOiIKIAogY29uZmlnIEdQSU9fUENBOTUzWAotCXRyaXN0YXRlICJQQ0E5NTN4IEkvTyBwb3J0cyIKKwl0cmlzdGF0ZSAiUENBOTUzeCwgUENBOTU1eCwgYW5kIE1BWDczMTAgSS9PIHBvcnRzIgogCWRlcGVuZHMgb24gSTJDCiAJaGVscAotCSAgU2F5IHllcyBoZXJlIHRvIHN1cHBvcnQgdGhlIFBDQTk1MzQgKDgtYml0KSwgUENBOTUzNSAoMTYtYml0KSwKLQkgIFBDQTk1MzYgKDQtYml0KSwgUENBOTUzNyAoNC1iaXQpLCBQQ0E5NTM4ICg4LWJpdCksIGFuZCBQQ0E5NTM5Ci0JICAoMTYtYml0KSBJL08gcG9ydHMuIFRoZXNlIHBhcnRzIGFyZSBtYWRlIGJ5IE5YUCBhbmQgVEkuCisJICBTYXkgeWVzIGhlcmUgdG8gcHJvdmlkZSBhY2Nlc3MgdG8gc2V2ZXJhbCByZWdpc3Rlci1vcmllbnRlZAorCSAgU01CdXMgSS9PIGV4cGFuZGVycywgbWFkZSBtb3N0bHkgYnkgTlhQIG9yIFRJLiAgQ29tcGF0aWJsZQorCSAgbW9kZWxzIGluY2x1ZGU6CisKKwkgIDQgYml0czoJcGNhOTUzNiwgcGNhOTUzNworCisJICA4IGJpdHM6CW1heDczMTAsIHBjYTk1MzQsIHBjYTk1MzgsIHBjYTk1NTQsIHBjYTk1NTcKKworCSAgMTYgYml0czoJcGNhOTUzNSwgcGNhOTUzOSwgcGNhOTU1NQogCiAJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBwY2E5NTN4LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncGlvL3BjYTk1M3guYyBiL2RyaXZlcnMvZ3Bpby9wY2E5NTN4LmMKaW5kZXggN2U0MGU4YS4uYTM4MDczMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncGlvL3BjYTk1M3guYworKysgYi9kcml2ZXJzL2dwaW8vcGNhOTUzeC5jCkBAIC0zMyw3ICszMyw3IEBACiAJeyAicGNhOTU1NCIsIDgsIH0sCiAJeyAicGNhOTU1NSIsIDE2LCB9LAogCXsgInBjYTk1NTciLCA4LCB9LAotCS8qIFJFVklTSVQgc2V2ZXJhbCBwY2E5NTV4IHBhcnRzIHNob3VsZCB3b3JrIGhlcmUgdG9vICovCisJeyAibWF4NzMxMCIsIDgsIH0sCiAJeyB9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIHBjYTk1M3hfaWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTU2NmNmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvTWFrZWZpbGUKQEAgLTAsMCArMSBAQAorb2JqLXkJCQkrPSBkcm0vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9LY29uZmlnCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZjlhOTcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTAsMCArMSwyNiBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgOj0gLUlpbmNsdWRlL2RybQorCitkcm0teSAgICAgICA6PQlkcm1fYXV0aC5vIGRybV9idWZzLm8gZHJtX2NvbnRleHQubyBkcm1fZG1hLm8gZHJtX2RyYXdhYmxlLm8gXAorCQlkcm1fZHJ2Lm8gZHJtX2ZvcHMubyBkcm1faW9jdGwubyBkcm1faXJxLm8gXAorCQlkcm1fbG9jay5vIGRybV9tZW1vcnkubyBkcm1fcHJvYy5vIGRybV9zdHViLm8gZHJtX3ZtLm8gXAorCQlkcm1fYWdwc3VwcG9ydC5vIGRybV9zY2F0dGVyLm8gYXRpX3BjaWdhcnQubyBkcm1fcGNpLm8gXAorCQlkcm1fc3lzZnMubyBkcm1faGFzaHRhYi5vIGRybV9zbWFuLm8gZHJtX21tLm8KKworZHJtLSQoQ09ORklHX0NPTVBBVCkgKz0gZHJtX2lvYzMyLm8KKworb2JqLSQoQ09ORklHX0RSTSkJKz0gZHJtLm8KK29iai0kKENPTkZJR19EUk1fVERGWCkJKz0gdGRmeC8KK29iai0kKENPTkZJR19EUk1fUjEyOCkJKz0gcjEyOC8KK29iai0kKENPTkZJR19EUk1fUkFERU9OKSs9IHJhZGVvbi8KK29iai0kKENPTkZJR19EUk1fTUdBKQkrPSBtZ2EvCitvYmotJChDT05GSUdfRFJNX0k4MTApCSs9IGk4MTAvCitvYmotJChDT05GSUdfRFJNX0k4MzApCSs9IGk4MzAvCitvYmotJChDT05GSUdfRFJNX0k5MTUpICArPSBpOTE1Lworb2JqLSQoQ09ORklHX0RSTV9TSVMpICAgKz0gc2lzLworb2JqLSQoQ09ORklHX0RSTV9TQVZBR0UpKz0gc2F2YWdlLworb2JqLSQoQ09ORklHX0RSTV9WSUEpCSs9dmlhLworCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL1JFQURNRS5kcm0gYi9kcml2ZXJzL2dwdS9kcm0vUkVBRE1FLmRybQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9SRUFETUUuZHJtCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vUkVBRE1FLmRybQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9hdGlfcGNpZ2FydC5jIGIvZHJpdmVycy9ncHUvZHJtL2F0aV9wY2lnYXJ0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vYXRpX3BjaWdhcnQuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2F0aV9wY2lnYXJ0LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2FncHN1cHBvcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYWdwc3VwcG9ydC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9hZ3BzdXBwb3J0LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fYWdwc3VwcG9ydC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9hdXRoLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fYXV0aC5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fYnVmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9idWZzLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2J1ZnMuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9idWZzLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29udGV4dC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9jb250ZXh0LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29udGV4dC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZG1hLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2RtYS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2RtYS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9kcmF3YWJsZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcmF3YWJsZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9kcmF3YWJsZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2RyYXdhYmxlLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUxYTUzZgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCkBAIC0wLDAgKzEsNDcxIEBACisvKioKKyAqIFxmaWxlIGRybV9mb3BzLmMKKyAqIEZpbGUgb3BlcmF0aW9ucyBmb3IgRFJNCisgKgorICogXGF1dGhvciBSaWNrYXJkIEUuIChSaWspIEZhaXRoIDxmYWl0aEB2YWxpbnV4LmNvbT4KKyAqIFxhdXRob3IgRGFyeWxsIFN0cmF1c3MgPGRhcnlsbEB2YWxpbnV4LmNvbT4KKyAqIFxhdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICovCisKKy8qCisgKiBDcmVhdGVkOiBNb24gSmFuICA0IDA4OjU4OjMxIDE5OTkgYnkgZmFpdGhAdmFsaW51eC5jb20KKyAqCisgKiBDb3B5cmlnaHQgMTk5OSBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBTdW5ueXZhbGUsIENhbGlmb3JuaWEuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBWQSBMSU5VWCBTWVNURU1TIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlICJkcm1QLmgiCisjaW5jbHVkZSAiZHJtX3NhcmVhLmgiCisjaW5jbHVkZSA8bGludXgvcG9sbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CisKK3N0YXRpYyBpbnQgZHJtX29wZW5faGVscGVyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwLAorCQkJICAgc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworCitzdGF0aWMgaW50IGRybV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fbG9jYWxfbWFwX3QgKm1hcDsKKwlpbnQgaTsKKwlpbnQgcmV0OworCXUzMiBzYXJlYXBhZ2U7CisKKwlpZiAoZGV2LT5kcml2ZXItPmZpcnN0b3BlbikgeworCQlyZXQgPSBkZXYtPmRyaXZlci0+Zmlyc3RvcGVuKGRldik7CisJCWlmIChyZXQgIT0gMCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJZGV2LT5tYWdpY2ZyZWUubmV4dCA9IE5VTEw7CisKKwkvKiBwcmVidWlsZCB0aGUgU0FSRUEgKi8KKwlzYXJlYXBhZ2UgPSBtYXhfdCh1bnNpZ25lZCwgU0FSRUFfTUFYLCBQQUdFX1NJWkUpOworCWkgPSBkcm1fYWRkbWFwKGRldiwgMCwgc2FyZWFwYWdlLCBfRFJNX1NITSwgX0RSTV9DT05UQUlOU19MT0NLLCAmbWFwKTsKKwlpZiAoaSAhPSAwKQorCQlyZXR1cm4gaTsKKworCWF0b21pY19zZXQoJmRldi0+aW9jdGxfY291bnQsIDApOworCWF0b21pY19zZXQoJmRldi0+dm1hX2NvdW50LCAwKTsKKwlkZXYtPmJ1Zl91c2UgPSAwOworCWF0b21pY19zZXQoJmRldi0+YnVmX2FsbG9jLCAwKTsKKworCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0hBVkVfRE1BKSkgeworCQlpID0gZHJtX2RtYV9zZXR1cChkZXYpOworCQlpZiAoaSA8IDApCisJCQlyZXR1cm4gaTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkZXYtPmNvdW50cyk7IGkrKykKKwkJYXRvbWljX3NldCgmZGV2LT5jb3VudHNbaV0sIDApOworCisJZHJtX2h0X2NyZWF0ZSgmZGV2LT5tYWdpY2xpc3QsIERSTV9NQUdJQ19IQVNIX09SREVSKTsKKwlJTklUX0xJU1RfSEVBRCgmZGV2LT5tYWdpY2ZyZWUpOworCisJZGV2LT5zaWdkYXRhLmxvY2sgPSBOVUxMOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldi0+bG9jay5sb2NrX3F1ZXVlKTsKKwlkZXYtPnF1ZXVlX2NvdW50ID0gMDsKKwlkZXYtPnF1ZXVlX3Jlc2VydmVkID0gMDsKKwlkZXYtPnF1ZXVlX3Nsb3RzID0gMDsKKwlkZXYtPnF1ZXVlbGlzdCA9IE5VTEw7CisJZGV2LT5pcnFfZW5hYmxlZCA9IDA7CisJZGV2LT5jb250ZXh0X2ZsYWcgPSAwOworCWRldi0+aW50ZXJydXB0X2ZsYWcgPSAwOworCWRldi0+ZG1hX2ZsYWcgPSAwOworCWRldi0+bGFzdF9jb250ZXh0ID0gMDsKKwlkZXYtPmxhc3Rfc3dpdGNoID0gMDsKKwlkZXYtPmxhc3RfY2hlY2tlZCA9IDA7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5jb250ZXh0X3dhaXQpOworCWRldi0+aWZfdmVyc2lvbiA9IDA7CisKKwlkZXYtPmN0eF9zdGFydCA9IDA7CisJZGV2LT5sY2tfc3RhcnQgPSAwOworCisJZGV2LT5idWZfYXN5bmMgPSBOVUxMOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldi0+YnVmX3JlYWRlcnMpOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldi0+YnVmX3dyaXRlcnMpOworCisJRFJNX0RFQlVHKCJcbiIpOworCisJLyoKKwkgKiBUaGUga2VybmVsJ3MgY29udGV4dCBjb3VsZCBiZSBjcmVhdGVkIGhlcmUsIGJ1dCBpcyBub3cgY3JlYXRlZAorCSAqIGluIGRybV9kbWFfZW5xdWV1ZS4gIFRoaXMgaXMgbW9yZSByZXNvdXJjZS1lZmZpY2llbnQgZm9yCisJICogaGFyZHdhcmUgdGhhdCBkb2VzIG5vdCBkbyBETUEsIGJ1dCBtYXkgbWVhbiB0aGF0CisJICogZHJtX3NlbGVjdF9xdWV1ZSBmYWlscyBiZXR3ZWVuIHRoZSB0aW1lIHRoZSBpbnRlcnJ1cHQgaXMKKwkgKiBpbml0aWFsaXplZCBhbmQgdGhlIHRpbWUgdGhlIHF1ZXVlcyBhcmUgaW5pdGlhbGl6ZWQuCisJICovCisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBPcGVuIGZpbGUuCisgKgorICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZQorICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyLgorICogXHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4KKyAqCisgKiBTZWFyY2hlcyB0aGUgRFJNIGRldmljZSB3aXRoIHRoZSBzYW1lIG1pbm9yIG51bWJlciwgY2FsbHMgb3Blbl9oZWxwZXIoKSwgYW5kCisgKiBpbmNyZW1lbnRzIHRoZSBkZXZpY2Ugb3BlbiBjb3VudC4gSWYgdGhlIG9wZW4gY291bnQgd2FzIHByZXZpb3VzIGF0IHplcm8sCisgKiBpLmUuLCBpdCdzIHRoZSBmaXJzdCB0aGF0IHRoZSBkZXZpY2UgaXMgb3BlbiwgdGhlbiBjYWxscyBzZXR1cCgpLgorICovCitpbnQgZHJtX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IE5VTEw7CisJaW50IG1pbm9yX2lkID0gaW1pbm9yKGlub2RlKTsKKwlzdHJ1Y3QgZHJtX21pbm9yICptaW5vcjsKKwlpbnQgcmV0Y29kZSA9IDA7CisKKwltaW5vciA9IGlkcl9maW5kKCZkcm1fbWlub3JzX2lkciwgbWlub3JfaWQpOworCWlmICghbWlub3IpCisJCXJldHVybiAtRU5PREVWOworCisJaWYgKCEoZGV2ID0gbWlub3ItPmRldikpCisJCXJldHVybiAtRU5PREVWOworCisJcmV0Y29kZSA9IGRybV9vcGVuX2hlbHBlcihpbm9kZSwgZmlscCwgZGV2KTsKKwlpZiAoIXJldGNvZGUpIHsKKwkJYXRvbWljX2luYygmZGV2LT5jb3VudHNbX0RSTV9TVEFUX09QRU5TXSk7CisJCXNwaW5fbG9jaygmZGV2LT5jb3VudF9sb2NrKTsKKwkJaWYgKCFkZXYtPm9wZW5fY291bnQrKykgeworCQkJc3Bpbl91bmxvY2soJmRldi0+Y291bnRfbG9jayk7CisJCQlyZXR1cm4gZHJtX3NldHVwKGRldik7CisJCX0KKwkJc3Bpbl91bmxvY2soJmRldi0+Y291bnRfbG9jayk7CisJfQorCisJcmV0dXJuIHJldGNvZGU7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9vcGVuKTsKKworLyoqCisgKiBGaWxlIFxjIG9wZW4gb3BlcmF0aW9uLgorICoKKyAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUuCisgKiBccGFyYW0gZmlscCBmaWxlIHBvaW50ZXIuCisgKgorICogUHV0cyB0aGUgZGV2LT5mb3BzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGRldmljZSBtaW5vciBudW1iZXIgaW50bworICogXHAgZmlscCwgY2FsbCB0aGUgXGMgb3BlbiBtZXRob2QsIGFuZCByZXN0b3JlIHRoZSBmaWxlIG9wZXJhdGlvbnMuCisgKi8KK2ludCBkcm1fc3R1Yl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBOVUxMOworCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yOworCWludCBtaW5vcl9pZCA9IGltaW5vcihpbm9kZSk7CisJaW50IGVyciA9IC1FTk9ERVY7CisJY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqb2xkX2ZvcHM7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwkvKiBCS0wgcHVzaGRvd246IG5vdGUgdGhhdCBub3RoaW5nIGVsc2Ugc2VyaWFsaXplcyBpZHJfZmluZCgpICovCisJbG9ja19rZXJuZWwoKTsKKwltaW5vciA9IGlkcl9maW5kKCZkcm1fbWlub3JzX2lkciwgbWlub3JfaWQpOworCWlmICghbWlub3IpCisJCWdvdG8gb3V0OworCisJaWYgKCEoZGV2ID0gbWlub3ItPmRldikpCisJCWdvdG8gb3V0OworCisJb2xkX2ZvcHMgPSBmaWxwLT5mX29wOworCWZpbHAtPmZfb3AgPSBmb3BzX2dldCgmZGV2LT5kcml2ZXItPmZvcHMpOworCWlmIChmaWxwLT5mX29wLT5vcGVuICYmIChlcnIgPSBmaWxwLT5mX29wLT5vcGVuKGlub2RlLCBmaWxwKSkpIHsKKwkJZm9wc19wdXQoZmlscC0+Zl9vcCk7CisJCWZpbHAtPmZfb3AgPSBmb3BzX2dldChvbGRfZm9wcyk7CisJfQorCWZvcHNfcHV0KG9sZF9mb3BzKTsKKworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gZXJyOworfQorCisvKioKKyAqIENoZWNrIHdoZXRoZXIgRFJJIHdpbGwgcnVuIG9uIHRoaXMgQ1BVLgorICoKKyAqIFxyZXR1cm4gbm9uLXplcm8gaWYgdGhlIERSSSB3aWxsIHJ1biBvbiB0aGlzIENQVSwgb3IgemVybyBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQgZHJtX2NwdV92YWxpZCh2b2lkKQoreworI2lmIGRlZmluZWQoX19pMzg2X18pCisJaWYgKGJvb3RfY3B1X2RhdGEueDg2ID09IDMpCisJCXJldHVybiAwOwkvKiBObyBjbXB4Y2hnIG9uIGEgMzg2ICovCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9fc3BhcmNfXykgJiYgIWRlZmluZWQoX19zcGFyY192OV9fKQorCXJldHVybiAwOwkJLyogTm8gY21weGNoZyBiZWZvcmUgdjkgc3BhcmMuICovCisjZW5kaWYKKwlyZXR1cm4gMTsKK30KKworLyoqCisgKiBDYWxsZWQgd2hlbmV2ZXIgYSBwcm9jZXNzIG9wZW5zIC9kZXYvZHJtLgorICoKKyAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUuCisgKiBccGFyYW0gZmlscCBmaWxlIHBvaW50ZXIuCisgKiBccGFyYW0gZGV2IGRldmljZS4KKyAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgbnVtYmVyIG9uIGZhaWx1cmUuCisgKgorICogQ3JlYXRlcyBhbmQgaW5pdGlhbGl6ZXMgYSBkcm1fZmlsZSBzdHJ1Y3R1cmUgZm9yIHRoZSBmaWxlIHByaXZhdGUgZGF0YSBpbiBccAorICogZmlscCBhbmQgYWRkIGl0IGludG8gdGhlIGRvdWJsZSBsaW5rZWQgbGlzdCBpbiBccCBkZXYuCisgKi8KK3N0YXRpYyBpbnQgZHJtX29wZW5faGVscGVyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwLAorCQkJICAgc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJaW50IG1pbm9yX2lkID0gaW1pbm9yKGlub2RlKTsKKwlzdHJ1Y3QgZHJtX2ZpbGUgKnByaXY7CisJaW50IHJldDsKKworCWlmIChmaWxwLT5mX2ZsYWdzICYgT19FWENMKQorCQlyZXR1cm4gLUVCVVNZOwkvKiBObyBleGNsdXNpdmUgb3BlbnMgKi8KKwlpZiAoIWRybV9jcHVfdmFsaWQoKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlEUk1fREVCVUcoInBpZCA9ICVkLCBtaW5vciA9ICVkXG4iLCB0YXNrX3BpZF9ucihjdXJyZW50KSwgbWlub3JfaWQpOworCisJcHJpdiA9IGRybV9hbGxvYyhzaXplb2YoKnByaXYpLCBEUk1fTUVNX0ZJTEVTKTsKKwlpZiAoIXByaXYpCisJCXJldHVybiAtRU5PTUVNOworCisJbWVtc2V0KHByaXYsIDAsIHNpemVvZigqcHJpdikpOworCWZpbHAtPnByaXZhdGVfZGF0YSA9IHByaXY7CisJcHJpdi0+ZmlscCA9IGZpbHA7CisJcHJpdi0+dWlkID0gY3VycmVudC0+ZXVpZDsKKwlwcml2LT5waWQgPSB0YXNrX3BpZF9ucihjdXJyZW50KTsKKwlwcml2LT5taW5vciA9IGlkcl9maW5kKCZkcm1fbWlub3JzX2lkciwgbWlub3JfaWQpOworCXByaXYtPmlvY3RsX2NvdW50ID0gMDsKKwkvKiBmb3IgY29tcGF0aWJpbGl0eSByb290IGlzIGFsd2F5cyBhdXRoZW50aWNhdGVkICovCisJcHJpdi0+YXV0aGVudGljYXRlZCA9IGNhcGFibGUoQ0FQX1NZU19BRE1JTik7CisJcHJpdi0+bG9ja19jb3VudCA9IDA7CisKKwlJTklUX0xJU1RfSEVBRCgmcHJpdi0+bGhlYWQpOworCisJaWYgKGRldi0+ZHJpdmVyLT5vcGVuKSB7CisJCXJldCA9IGRldi0+ZHJpdmVyLT5vcGVuKGRldiwgcHJpdik7CisJCWlmIChyZXQgPCAwKQorCQkJZ290byBvdXRfZnJlZTsKKwl9CisKKwltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJaWYgKGxpc3RfZW1wdHkoJmRldi0+ZmlsZWxpc3QpKQorCQlwcml2LT5tYXN0ZXIgPSAxOworCisJbGlzdF9hZGQoJnByaXYtPmxoZWFkLCAmZGV2LT5maWxlbGlzdCk7CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKyNpZmRlZiBfX2FscGhhX18KKwkvKgorCSAqIERlZmF1bHQgdGhlIGhvc2UKKwkgKi8KKwlpZiAoIWRldi0+aG9zZSkgeworCQlzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldjsKKwkJcGNpX2RldiA9IHBjaV9nZXRfY2xhc3MoUENJX0NMQVNTX0RJU1BMQVlfVkdBIDw8IDgsIE5VTEwpOworCQlpZiAocGNpX2RldikgeworCQkJZGV2LT5ob3NlID0gcGNpX2Rldi0+c3lzZGF0YTsKKwkJCXBjaV9kZXZfcHV0KHBjaV9kZXYpOworCQl9CisJCWlmICghZGV2LT5ob3NlKSB7CisJCQlzdHJ1Y3QgcGNpX2J1cyAqYiA9IHBjaV9idXNfYihwY2lfcm9vdF9idXNlcy5uZXh0KTsKKwkJCWlmIChiKQorCQkJCWRldi0+aG9zZSA9IGItPnN5c2RhdGE7CisJCX0KKwl9CisjZW5kaWYKKworCXJldHVybiAwOworICAgICAgb3V0X2ZyZWU6CisJZHJtX2ZyZWUocHJpdiwgc2l6ZW9mKCpwcml2KSwgRFJNX01FTV9GSUxFUyk7CisJZmlscC0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKKwlyZXR1cm4gcmV0OworfQorCisvKiogTm8tb3AuICovCitpbnQgZHJtX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxwLCBpbnQgb24pCit7CisJc3RydWN0IGRybV9maWxlICpwcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwcml2LT5taW5vci0+ZGV2OworCWludCByZXRjb2RlOworCisJRFJNX0RFQlVHKCJmZCA9ICVkLCBkZXZpY2UgPSAweCVseFxuIiwgZmQsCisJCSAgKGxvbmcpb2xkX2VuY29kZV9kZXYocHJpdi0+bWlub3ItPmRldmljZSkpOworCXJldGNvZGUgPSBmYXN5bmNfaGVscGVyKGZkLCBmaWxwLCBvbiwgJmRldi0+YnVmX2FzeW5jKTsKKwlpZiAocmV0Y29kZSA8IDApCisJCXJldHVybiByZXRjb2RlOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fZmFzeW5jKTsKKworLyoqCisgKiBSZWxlYXNlIGZpbGUuCisgKgorICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZQorICogXHBhcmFtIGZpbGVfcHJpdiBEUk0gZmlsZSBwcml2YXRlLgorICogXHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4KKyAqCisgKiBJZiB0aGUgaGFyZHdhcmUgbG9jayBpcyBoZWxkIHRoZW4gZnJlZSBpdCwgYW5kIHRha2UgaXQgYWdhaW4gZm9yIHRoZSBrZXJuZWwKKyAqIGNvbnRleHQgc2luY2UgaXQncyBuZWNlc3NhcnkgdG8gcmVjbGFpbSBidWZmZXJzLiBVbmxpbmsgdGhlIGZpbGUgcHJpdmF0ZQorICogZGF0YSBmcm9tIGl0cyBsaXN0IGFuZCBmcmVlIGl0LiBEZWNyZWFzZXMgdGhlIG9wZW4gY291bnQgYW5kIGlmIGl0IHJlYWNoZXMKKyAqIHplcm8gY2FsbHMgZHJtX2xhc3RjbG9zZSgpLgorICovCitpbnQgZHJtX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZpbGVfcHJpdi0+bWlub3ItPmRldjsKKwlpbnQgcmV0Y29kZSA9IDA7CisKKwlsb2NrX2tlcm5lbCgpOworCisJRFJNX0RFQlVHKCJvcGVuX2NvdW50ID0gJWRcbiIsIGRldi0+b3Blbl9jb3VudCk7CisKKwlpZiAoZGV2LT5kcml2ZXItPnByZWNsb3NlKQorCQlkZXYtPmRyaXZlci0+cHJlY2xvc2UoZGV2LCBmaWxlX3ByaXYpOworCisJLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwkgKiBCZWdpbiBpbmxpbmUgZHJtX3JlbGVhc2UKKwkgKi8KKworCURSTV9ERUJVRygicGlkID0gJWQsIGRldmljZSA9IDB4JWx4LCBvcGVuX2NvdW50ID0gJWRcbiIsCisJCSAgdGFza19waWRfbnIoY3VycmVudCksCisJCSAgKGxvbmcpb2xkX2VuY29kZV9kZXYoZmlsZV9wcml2LT5taW5vci0+ZGV2aWNlKSwKKwkJICBkZXYtPm9wZW5fY291bnQpOworCisJaWYgKGRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnNfbG9ja2VkICYmIGRldi0+bG9jay5od19sb2NrKSB7CisJCWlmIChkcm1faV9oYXZlX2h3X2xvY2soZGV2LCBmaWxlX3ByaXYpKSB7CisJCQlkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzX2xvY2tlZChkZXYsIGZpbGVfcHJpdik7CisJCX0gZWxzZSB7CisJCQl1bnNpZ25lZCBsb25nIGVuZHRpbWUgPSBqaWZmaWVzICsgMyAqIERSTV9IWjsKKwkJCWludCBsb2NrZWQgPSAwOworCisJCQlkcm1faWRsZWxvY2tfdGFrZSgmZGV2LT5sb2NrKTsKKworCQkJLyoKKwkJCSAqIFdhaXQgZm9yIGEgd2hpbGUuCisJCQkgKi8KKworCQkJZG97CisJCQkJc3Bpbl9sb2NrX2JoKCZkZXYtPmxvY2suc3BpbmxvY2spOworCQkJCWxvY2tlZCA9IGRldi0+bG9jay5pZGxlX2hhc19sb2NrOworCQkJCXNwaW5fdW5sb2NrX2JoKCZkZXYtPmxvY2suc3BpbmxvY2spOworCQkJCWlmIChsb2NrZWQpCisJCQkJCWJyZWFrOworCQkJCXNjaGVkdWxlKCk7CisJCQl9IHdoaWxlICghdGltZV9hZnRlcl9lcShqaWZmaWVzLCBlbmR0aW1lKSk7CisKKwkJCWlmICghbG9ja2VkKSB7CisJCQkJRFJNX0VSUk9SKCJyZWNsYWltX2J1ZmZlcnNfbG9ja2VkKCkgZGVhZGxvY2suIFBsZWFzZSByZXdvcmsgdGhpc1xuIgorCQkJCQkgICJcdGRyaXZlciB0byB1c2UgcmVjbGFpbV9idWZmZXJzX2lkbGVsb2NrZWQoKSBpbnN0ZWFkLlxuIgorCQkJCQkgICJcdEkgd2lsbCBnbyBvbiByZWNsYWltaW5nIHRoZSBidWZmZXJzIGFueXdheS5cbiIpOworCQkJfQorCisJCQlkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzX2xvY2tlZChkZXYsIGZpbGVfcHJpdik7CisJCQlkcm1faWRsZWxvY2tfcmVsZWFzZSgmZGV2LT5sb2NrKTsKKwkJfQorCX0KKworCWlmIChkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzX2lkbGVsb2NrZWQgJiYgZGV2LT5sb2NrLmh3X2xvY2spIHsKKworCQlkcm1faWRsZWxvY2tfdGFrZSgmZGV2LT5sb2NrKTsKKwkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkKGRldiwgZmlsZV9wcml2KTsKKwkJZHJtX2lkbGVsb2NrX3JlbGVhc2UoJmRldi0+bG9jayk7CisKKwl9CisKKwlpZiAoZHJtX2lfaGF2ZV9od19sb2NrKGRldiwgZmlsZV9wcml2KSkgeworCQlEUk1fREVCVUcoIkZpbGUgJXAgcmVsZWFzZWQsIGZyZWVpbmcgbG9jayBmb3IgY29udGV4dCAlZFxuIiwKKwkJCSAgZmlscCwgX0RSTV9MT0NLSU5HX0NPTlRFWFQoZGV2LT5sb2NrLmh3X2xvY2stPmxvY2spKTsKKworCQlkcm1fbG9ja19mcmVlKCZkZXYtPmxvY2ssCisJCQkgICAgICBfRFJNX0xPQ0tJTkdfQ09OVEVYVChkZXYtPmxvY2suaHdfbG9jay0+bG9jaykpOworCX0KKworCisJaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfSEFWRV9ETUEpICYmCisJICAgICFkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzX2xvY2tlZCkgeworCQlkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzKGRldiwgZmlsZV9wcml2KTsKKwl9CisKKwlkcm1fZmFzeW5jKC0xLCBmaWxwLCAwKTsKKworCW11dGV4X2xvY2soJmRldi0+Y3R4bGlzdF9tdXRleCk7CisJaWYgKCFsaXN0X2VtcHR5KCZkZXYtPmN0eGxpc3QpKSB7CisJCXN0cnVjdCBkcm1fY3R4X2xpc3QgKnBvcywgKm47CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBvcywgbiwgJmRldi0+Y3R4bGlzdCwgaGVhZCkgeworCQkJaWYgKHBvcy0+dGFnID09IGZpbGVfcHJpdiAmJgorCQkJICAgIHBvcy0+aGFuZGxlICE9IERSTV9LRVJORUxfQ09OVEVYVCkgeworCQkJCWlmIChkZXYtPmRyaXZlci0+Y29udGV4dF9kdG9yKQorCQkJCQlkZXYtPmRyaXZlci0+Y29udGV4dF9kdG9yKGRldiwKKwkJCQkJCQkJICBwb3MtPmhhbmRsZSk7CisKKwkJCQlkcm1fY3R4Yml0bWFwX2ZyZWUoZGV2LCBwb3MtPmhhbmRsZSk7CisKKwkJCQlsaXN0X2RlbCgmcG9zLT5oZWFkKTsKKwkJCQlkcm1fZnJlZShwb3MsIHNpemVvZigqcG9zKSwgRFJNX01FTV9DVFhMSVNUKTsKKwkJCQktLWRldi0+Y3R4X2NvdW50OworCQkJfQorCQl9CisJfQorCW11dGV4X3VubG9jaygmZGV2LT5jdHhsaXN0X211dGV4KTsKKworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAoZmlsZV9wcml2LT5yZW1vdmVfYXV0aF9vbl9jbG9zZSA9PSAxKSB7CisJCXN0cnVjdCBkcm1fZmlsZSAqdGVtcDsKKworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRlbXAsICZkZXYtPmZpbGVsaXN0LCBsaGVhZCkKKwkJCXRlbXAtPmF1dGhlbnRpY2F0ZWQgPSAwOworCX0KKwlsaXN0X2RlbCgmZmlsZV9wcml2LT5saGVhZCk7CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlpZiAoZGV2LT5kcml2ZXItPnBvc3RjbG9zZSkKKwkJZGV2LT5kcml2ZXItPnBvc3RjbG9zZShkZXYsIGZpbGVfcHJpdik7CisJZHJtX2ZyZWUoZmlsZV9wcml2LCBzaXplb2YoKmZpbGVfcHJpdiksIERSTV9NRU1fRklMRVMpOworCisJLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwkgKiBFbmQgaW5saW5lIGRybV9yZWxlYXNlCisJICovCisKKwlhdG9taWNfaW5jKCZkZXYtPmNvdW50c1tfRFJNX1NUQVRfQ0xPU0VTXSk7CisJc3Bpbl9sb2NrKCZkZXYtPmNvdW50X2xvY2spOworCWlmICghLS1kZXYtPm9wZW5fY291bnQpIHsKKwkJaWYgKGF0b21pY19yZWFkKCZkZXYtPmlvY3RsX2NvdW50KSB8fCBkZXYtPmJsb2NrZWQpIHsKKwkJCURSTV9FUlJPUigiRGV2aWNlIGJ1c3k6ICVkICVkXG4iLAorCQkJCSAgYXRvbWljX3JlYWQoJmRldi0+aW9jdGxfY291bnQpLCBkZXYtPmJsb2NrZWQpOworCQkJc3Bpbl91bmxvY2soJmRldi0+Y291bnRfbG9jayk7CisJCQl1bmxvY2tfa2VybmVsKCk7CisJCQlyZXR1cm4gLUVCVVNZOworCQl9CisJCXNwaW5fdW5sb2NrKCZkZXYtPmNvdW50X2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CisJCXJldHVybiBkcm1fbGFzdGNsb3NlKGRldik7CisJfQorCXNwaW5fdW5sb2NrKCZkZXYtPmNvdW50X2xvY2spOworCisJdW5sb2NrX2tlcm5lbCgpOworCisJcmV0dXJuIHJldGNvZGU7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9yZWxlYXNlKTsKKworLyoqIE5vLW9wLiAqLwordW5zaWduZWQgaW50IGRybV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3QgKndhaXQpCit7CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9wb2xsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2hhc2h0YWIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faGFzaHRhYi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9oYXNodGFiLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1faGFzaHRhYi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9pb2MzMi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2MzMi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9pb2MzMi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2lvY3RsLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1faXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9pcnEuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fbG9jay5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9sb2NrLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2xvY2suYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9sb2NrLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWVtb3J5LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21lbW9yeS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNzcwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21lbW9yeS5jCkBAIC0wLDAgKzEsMTg2IEBACisvKioKKyAqIFxmaWxlIGRybV9tZW1vcnkuYworICogTWVtb3J5IG1hbmFnZW1lbnQgd3JhcHBlcnMgZm9yIERSTQorICoKKyAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+CisgKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KKyAqLworCisvKgorICogQ3JlYXRlZDogVGh1IEZlYiAgNCAxNDowMDozNCAxOTk5IGJ5IGZhaXRoQHZhbGludXguY29tCisgKgorICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgorI2luY2x1ZGUgImRybVAuaCIKKworI2lmZGVmIERFQlVHX01FTU9SWQorI2luY2x1ZGUgImRybV9tZW1vcnlfZGVidWcuaCIKKyNlbHNlCisKKy8qKiBOby1vcC4gKi8KK3ZvaWQgZHJtX21lbV9pbml0KHZvaWQpCit7Cit9CisKKy8qKgorICogQ2FsbGVkIHdoZW4gIi9wcm9jL2RyaS8lZGV2JS9tZW0iIGlzIHJlYWQuCisgKgorICogXHBhcmFtIGJ1ZiBvdXRwdXQgYnVmZmVyLgorICogXHBhcmFtIHN0YXJ0IHN0YXJ0IG9mIG91dHB1dCBkYXRhLgorICogXHBhcmFtIG9mZnNldCByZXF1ZXN0ZWQgc3RhcnQgb2Zmc2V0LgorICogXHBhcmFtIGxlbiByZXF1ZXN0ZWQgbnVtYmVyIG9mIGJ5dGVzLgorICogXHBhcmFtIGVvZiB3aGV0aGVyIHRoZXJlIGlzIG5vIG1vcmUgZGF0YSB0byByZXR1cm4uCisgKiBccGFyYW0gZGF0YSBwcml2YXRlIGRhdGEuCisgKiBccmV0dXJuIG51bWJlciBvZiB3cml0dGVuIGJ5dGVzLgorICoKKyAqIE5vLW9wLgorICovCitpbnQgZHJtX21lbV9pbmZvKGNoYXIgKmJ1ZiwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsCisJCSBpbnQgbGVuLCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKK3sKKwlyZXR1cm4gMDsKK30KKworLyoqIFdyYXBwZXIgYXJvdW5kIGttYWxsb2MoKSBhbmQga2ZyZWUoKSAqLwordm9pZCAqZHJtX3JlYWxsb2Modm9pZCAqb2xkcHQsIHNpemVfdCBvbGRzaXplLCBzaXplX3Qgc2l6ZSwgaW50IGFyZWEpCit7CisJdm9pZCAqcHQ7CisKKwlpZiAoIShwdCA9IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCkpKQorCQlyZXR1cm4gTlVMTDsKKwlpZiAob2xkcHQgJiYgb2xkc2l6ZSkgeworCQltZW1jcHkocHQsIG9sZHB0LCBvbGRzaXplKTsKKwkJa2ZyZWUob2xkcHQpOworCX0KKwlyZXR1cm4gcHQ7Cit9CisKKyNpZiBfX09TX0hBU19BR1AKK3N0YXRpYyB2b2lkICphZ3BfcmVtYXAodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCXVuc2lnbmVkIGxvbmcgKnBoeXNfYWRkcl9tYXAsIGksIG51bV9wYWdlcyA9CisJICAgIFBBR0VfQUxJR04oc2l6ZSkgLyBQQUdFX1NJWkU7CisJc3RydWN0IGRybV9hZ3BfbWVtICphZ3BtZW07CisJc3RydWN0IHBhZ2UgKipwYWdlX21hcDsKKwl2b2lkICphZGRyOworCisJc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7CisKKyNpZmRlZiBfX2FscGhhX18KKwlvZmZzZXQgLT0gZGV2LT5ob3NlLT5tZW1fc3BhY2UtPnN0YXJ0OworI2VuZGlmCisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGFncG1lbSwgJmRldi0+YWdwLT5tZW1vcnksIGhlYWQpCisJCWlmIChhZ3BtZW0tPmJvdW5kIDw9IG9mZnNldAorCQkgICAgJiYgKGFncG1lbS0+Ym91bmQgKyAoYWdwbWVtLT5wYWdlcyA8PCBQQUdFX1NISUZUKSkgPj0KKwkJICAgIChvZmZzZXQgKyBzaXplKSkKKwkJCWJyZWFrOworCWlmICghYWdwbWVtKQorCQlyZXR1cm4gTlVMTDsKKworCS8qCisJICogT0ssIHdlJ3JlIG1hcHBpbmcgQUdQIHNwYWNlIG9uIGEgY2hpcHNldC9wbGF0Zm9ybSBvbiB3aGljaCBtZW1vcnkgYWNjZXNzZXMgYnkKKwkgKiB0aGUgQ1BVIGRvIG5vdCBnZXQgcmVtYXBwZWQgYnkgdGhlIEdBUlQuICBXZSBmaXggdGhpcyBieSB1c2luZyB0aGUga2VybmVsJ3MKKwkgKiBwYWdlLXRhYmxlIGluc3RlYWQgKHRoYXQncyBwcm9iYWJseSBmYXN0ZXIgYW55aG93Li4uKS4KKwkgKi8KKwkvKiBub3RlOiB1c2Ugdm1hbGxvYygpIGJlY2F1c2UgbnVtX3BhZ2VzIGNvdWxkIGJlIGxhcmdlLi4uICovCisJcGFnZV9tYXAgPSB2bWFsbG9jKG51bV9wYWdlcyAqIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSk7CisJaWYgKCFwYWdlX21hcCkKKwkJcmV0dXJuIE5VTEw7CisKKwlwaHlzX2FkZHJfbWFwID0KKwkgICAgYWdwbWVtLT5tZW1vcnktPm1lbW9yeSArIChvZmZzZXQgLSBhZ3BtZW0tPmJvdW5kKSAvIFBBR0VfU0laRTsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhZ2VzOyArK2kpCisJCXBhZ2VfbWFwW2ldID0gcGZuX3RvX3BhZ2UocGh5c19hZGRyX21hcFtpXSA+PiBQQUdFX1NISUZUKTsKKwlhZGRyID0gdm1hcChwYWdlX21hcCwgbnVtX3BhZ2VzLCBWTV9JT1JFTUFQLCBQQUdFX0FHUCk7CisJdmZyZWUocGFnZV9tYXApOworCisJcmV0dXJuIGFkZHI7Cit9CisKKy8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfYWxsb2NhdGVfbWVtb3J5KCkgKi8KK0RSTV9BR1BfTUVNICpkcm1fYWxsb2NfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgcGFnZXMsIHUzMiB0eXBlKQoreworCXJldHVybiBkcm1fYWdwX2FsbG9jYXRlX21lbW9yeShkZXYtPmFncC0+YnJpZGdlLCBwYWdlcywgdHlwZSk7Cit9CisKKy8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfZnJlZV9tZW1vcnkoKSAqLworaW50IGRybV9mcmVlX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgaW50IHBhZ2VzKQoreworCXJldHVybiBkcm1fYWdwX2ZyZWVfbWVtb3J5KGhhbmRsZSkgPyAwIDogLUVJTlZBTDsKK30KKworLyoqIFdyYXBwZXIgYXJvdW5kIGFncF9iaW5kX21lbW9yeSgpICovCitpbnQgZHJtX2JpbmRfYWdwKERSTV9BR1BfTUVNICogaGFuZGxlLCB1bnNpZ25lZCBpbnQgc3RhcnQpCit7CisJcmV0dXJuIGRybV9hZ3BfYmluZF9tZW1vcnkoaGFuZGxlLCBzdGFydCk7Cit9CisKKy8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfdW5iaW5kX21lbW9yeSgpICovCitpbnQgZHJtX3VuYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUpCit7CisJcmV0dXJuIGRybV9hZ3BfdW5iaW5kX21lbW9yeShoYW5kbGUpOworfQorCisjZWxzZSAgLyogIF9fT1NfSEFTX0FHUCAgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCAqYWdwX3JlbWFwKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlyZXR1cm4gTlVMTDsKK30KKworI2VuZGlmCQkJCS8qIGFncCAqLworCisjZW5kaWYJCQkJLyogZGVidWdfbWVtb3J5ICovCisKK3ZvaWQgZHJtX2NvcmVfaW9yZW1hcChzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYKKwkgICAgZGV2LT5hZ3AgJiYgZGV2LT5hZ3AtPmNhbnRfdXNlX2FwZXJ0dXJlICYmIG1hcC0+dHlwZSA9PSBfRFJNX0FHUCkKKwkJbWFwLT5oYW5kbGUgPSBhZ3BfcmVtYXAobWFwLT5vZmZzZXQsIG1hcC0+c2l6ZSwgZGV2KTsKKwllbHNlCisJCW1hcC0+aGFuZGxlID0gaW9yZW1hcChtYXAtPm9mZnNldCwgbWFwLT5zaXplKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2NvcmVfaW9yZW1hcCk7CisKK3ZvaWQgZHJtX2NvcmVfaW9yZW1hcF93YyhzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCW1hcC0+aGFuZGxlID0gaW9yZW1hcF93YyhtYXAtPm9mZnNldCwgbWFwLT5zaXplKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2NvcmVfaW9yZW1hcF93Yyk7Cit2b2lkIGRybV9jb3JlX2lvcmVtYXBmcmVlKHN0cnVjdCBkcm1fbWFwICptYXAsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJaWYgKCFtYXAtPmhhbmRsZSB8fCAhbWFwLT5zaXplKQorCQlyZXR1cm47CisKKwlpZiAoZHJtX2NvcmVfaGFzX0FHUChkZXYpICYmCisJICAgIGRldi0+YWdwICYmIGRldi0+YWdwLT5jYW50X3VzZV9hcGVydHVyZSAmJiBtYXAtPnR5cGUgPT0gX0RSTV9BR1ApCisJCXZ1bm1hcChtYXAtPmhhbmRsZSk7CisJZWxzZQorCQlpb3VubWFwKG1hcC0+aGFuZGxlKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2NvcmVfaW9yZW1hcGZyZWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fbW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fbW0uYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGNpLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX3BjaS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX3BjaS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9wcm9jLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2MuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fcHJvYy5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2MuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fc2NhdHRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zY2F0dGVyLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX3NjYXR0ZXIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9zY2F0dGVyLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3NtYW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc21hbi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9zbWFuLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fc21hbi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9zdHViLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N0dWIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fc3R1Yi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX3N0dWIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fc3lzZnMuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV92bS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV92bS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX3ZtLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pODEwL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k4MTAvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM4NDRlYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pODEwL01ha2VmaWxlCkBAIC0wLDAgKzEsOCBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgOj0gLUlpbmNsdWRlL2RybQoraTgxMC15IDo9IGk4MTBfZHJ2Lm8gaTgxMF9kbWEubworCitvYmotJChDT05GSUdfRFJNX0k4MTApCSs9IGk4MTAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODEwX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kbWEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODEwX2RtYS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTgxMC9pODEwX2RtYS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k4MTBfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTgxMC9pODEwX2Rydi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k4MTBfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTgxMF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZHJ2LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTgxMF9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kcnYuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k4MzAvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTgzMC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjQyZWUwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k4MzAvTWFrZWZpbGUKQEAgLTAsMCArMSw4IEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCitpODMwLXkgOj0gaTgzMF9kcnYubyBpODMwX2RtYS5vIGk4MzBfaXJxLm8KKworb2JqLSQoQ09ORklHX0RSTV9JODMwKSArPSBpODMwLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTgzMF9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pODMwL2k4MzBfZG1hLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTgzMF9kbWEuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k4MzAvaTgzMF9kbWEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODMwX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k4MzAvaTgzMF9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODMwX2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTgzMC9pODMwX2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k4MzBfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTgzMC9pODMwX2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k4MzBfZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pODMwL2k4MzBfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTgzMF9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pODMwL2k4MzBfaXJxLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTgzMF9pcnEuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k4MzAvaTgzMF9pcnEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWU2MDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTAsMCArMSwxMCBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgOj0gLUlpbmNsdWRlL2RybQoraTkxNS15IDo9IGk5MTVfZHJ2Lm8gaTkxNV9kbWEubyBpOTE1X2lycS5vIGk5MTVfbWVtLm8KKworaTkxNS0kKENPTkZJR19DT01QQVQpICAgKz0gaTkxNV9pb2MzMi5vCisKK29iai0kKENPTkZJR19EUk1fSTkxNSkgICs9IGk5MTUubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pOTE1X2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pOTE1X2RtYS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k5MTVfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTkxNV9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pOTE1X2lvYzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lvYzMyLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTkxNV9pb2MzMi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lvYzMyLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmMDM2MTEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0wLDAgKzEsNjIzIEBACisvKiBpOTE1X2lycS5jIC0tIElSUSBzdXBwb3J0IGZvciB0aGUgSTkxNSAtKi0gbGludXgtYyAtKi0KKyAqLworLyoKKyAqIENvcHlyaWdodCAyMDAzIFR1bmdzdGVuIEdyYXBoaWNzLCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyAqIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KKyAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlCisgKiBuZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucworICogb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisgKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULgorICogSU4gTk8gRVZFTlQgU0hBTEwgVFVOR1NURU4gR1JBUEhJQ1MgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisgKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorICogU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpbmNsdWRlICJkcm1QLmgiCisjaW5jbHVkZSAiZHJtLmgiCisjaW5jbHVkZSAiaTkxNV9kcm0uaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCisjZGVmaW5lIFVTRVJfSU5UX0ZMQUcgKDE8PDEpCisjZGVmaW5lIFZTWU5DX1BJUEVCX0ZMQUcgKDE8PDUpCisjZGVmaW5lIFZTWU5DX1BJUEVBX0ZMQUcgKDE8PDcpCisKKyNkZWZpbmUgTUFYX05PUElEICgodTMyKX4wKQorCisvKioKKyAqIEVtaXQgYmxpdHMgZm9yIHNjaGVkdWxlZCBidWZmZXIgc3dhcHMuCisgKgorICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSBIVyBsb2NrIGhlbGQuCisgKi8KK3N0YXRpYyB2b2lkIGk5MTVfdmJsYW5rX3Rhc2tsZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CisJc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwgKnRtcCwgaGl0cywgKmhpdDsKKwlpbnQgbmhpdHMsIG5yZWN0cywgc2xpY2VbMl0sIHVwcGVyWzJdLCBsb3dlclsyXSwgaTsKKwl1bnNpZ25lZCBjb3VudGVyWzJdID0geyBhdG9taWNfcmVhZCgmZGV2LT52YmxfcmVjZWl2ZWQpLAorCQkJCWF0b21pY19yZWFkKCZkZXYtPnZibF9yZWNlaXZlZDIpIH07CisJc3RydWN0IGRybV9kcmF3YWJsZV9pbmZvICpkcnc7CisJZHJtX2k5MTVfc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OworCXUzMiBjcHAgPSBkZXZfcHJpdi0+Y3BwOworCXUzMiBjbWQgPSAoY3BwID09IDQpID8gKFhZX1NSQ19DT1BZX0JMVF9DTUQgfAorCQkJCVhZX1NSQ19DT1BZX0JMVF9XUklURV9BTFBIQSB8CisJCQkJWFlfU1JDX0NPUFlfQkxUX1dSSVRFX1JHQikKKwkJCSAgICAgOiBYWV9TUkNfQ09QWV9CTFRfQ01EOworCXUzMiBzcmNfcGl0Y2ggPSBzYXJlYV9wcml2LT5waXRjaCAqIGNwcDsKKwl1MzIgZHN0X3BpdGNoID0gc2FyZWFfcHJpdi0+cGl0Y2ggKiBjcHA7CisJdTMyIHJvcGNwcCA9ICgweGNjIDw8IDE2KSB8ICgoY3BwIC0gMSkgPDwgMjQpOworCVJJTkdfTE9DQUxTOworCisJaWYgKElTX0k5NjVHKGRldikgJiYgc2FyZWFfcHJpdi0+ZnJvbnRfdGlsZWQpIHsKKwkJY21kIHw9IFhZX1NSQ19DT1BZX0JMVF9EU1RfVElMRUQ7CisJCWRzdF9waXRjaCA+Pj0gMjsKKwl9CisJaWYgKElTX0k5NjVHKGRldikgJiYgc2FyZWFfcHJpdi0+YmFja190aWxlZCkgeworCQljbWQgfD0gWFlfU1JDX0NPUFlfQkxUX1NSQ19USUxFRDsKKwkJc3JjX3BpdGNoID4+PSAyOworCX0KKworCURSTV9ERUJVRygiXG4iKTsKKworCUlOSVRfTElTVF9IRUFEKCZoaXRzKTsKKworCW5oaXRzID0gbnJlY3RzID0gMDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCisJLyogRmluZCBidWZmZXIgc3dhcHMgc2NoZWR1bGVkIGZvciB0aGlzIHZlcnRpY2FsIGJsYW5rICovCisJbGlzdF9mb3JfZWFjaF9zYWZlKGxpc3QsIHRtcCwgJmRldl9wcml2LT52Ymxfc3dhcHMuaGVhZCkgeworCQlkcm1faTkxNV92Ymxfc3dhcF90ICp2Ymxfc3dhcCA9CisJCQlsaXN0X2VudHJ5KGxpc3QsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOworCisJCWlmICgoY291bnRlclt2Ymxfc3dhcC0+cGlwZV0gLSB2Ymxfc3dhcC0+c2VxdWVuY2UpID4gKDE8PDIzKSkKKwkJCWNvbnRpbnVlOworCisJCWxpc3RfZGVsKGxpc3QpOworCQlkZXZfcHJpdi0+c3dhcHNfcGVuZGluZy0tOworCisJCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7CisJCXNwaW5fbG9jaygmZGV2LT5kcndfbG9jayk7CisKKwkJZHJ3ID0gZHJtX2dldF9kcmF3YWJsZV9pbmZvKGRldiwgdmJsX3N3YXAtPmRyd19pZCk7CisKKwkJaWYgKCFkcncpIHsKKwkJCXNwaW5fdW5sb2NrKCZkZXYtPmRyd19sb2NrKTsKKwkJCWRybV9mcmVlKHZibF9zd2FwLCBzaXplb2YoKnZibF9zd2FwKSwgRFJNX01FTV9EUklWRVIpOworCQkJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWxpc3RfZm9yX2VhY2goaGl0LCAmaGl0cykgeworCQkJZHJtX2k5MTVfdmJsX3N3YXBfdCAqc3dhcF9jbXAgPQorCQkJCWxpc3RfZW50cnkoaGl0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKKwkJCXN0cnVjdCBkcm1fZHJhd2FibGVfaW5mbyAqZHJ3X2NtcCA9CisJCQkJZHJtX2dldF9kcmF3YWJsZV9pbmZvKGRldiwgc3dhcF9jbXAtPmRyd19pZCk7CisKKwkJCWlmIChkcndfY21wICYmCisJCQkgICAgZHJ3X2NtcC0+cmVjdHNbMF0ueTEgPiBkcnctPnJlY3RzWzBdLnkxKSB7CisJCQkJbGlzdF9hZGRfdGFpbChsaXN0LCBoaXQpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJc3Bpbl91bmxvY2soJmRldi0+ZHJ3X2xvY2spOworCisJCS8qIExpc3Qgb2YgaGl0cyB3YXMgZW1wdHksIG9yIHdlIHJlYWNoZWQgdGhlIGVuZCBvZiBpdCAqLworCQlpZiAoaGl0ID09ICZoaXRzKQorCQkJbGlzdF9hZGRfdGFpbChsaXN0LCBoaXRzLnByZXYpOworCisJCW5oaXRzKys7CisKKwkJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7CisJfQorCisJaWYgKG5oaXRzID09IDApIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKKwkJcmV0dXJuOworCX0KKworCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7CisKKwlpOTE1X2tlcm5lbF9sb3N0X2NvbnRleHQoZGV2KTsKKworCWlmIChJU19JOTY1RyhkZXYpKSB7CisJCUJFR0lOX0xQX1JJTkcoNCk7CisKKwkJT1VUX1JJTkcoR0ZYX09QX0RSQVdSRUNUX0lORk9fSTk2NSk7CisJCU9VVF9SSU5HKDApOworCQlPVVRfUklORygoKHNhcmVhX3ByaXYtPndpZHRoIC0gMSkgJiAweGZmZmYpIHwgKChzYXJlYV9wcml2LT5oZWlnaHQgLSAxKSA8PCAxNikpOworCQlPVVRfUklORygwKTsKKwkJQURWQU5DRV9MUF9SSU5HKCk7CisJfSBlbHNlIHsKKwkJQkVHSU5fTFBfUklORyg2KTsKKworCQlPVVRfUklORyhHRlhfT1BfRFJBV1JFQ1RfSU5GTyk7CisJCU9VVF9SSU5HKDApOworCQlPVVRfUklORygwKTsKKwkJT1VUX1JJTkcoc2FyZWFfcHJpdi0+d2lkdGggfCBzYXJlYV9wcml2LT5oZWlnaHQgPDwgMTYpOworCQlPVVRfUklORyhzYXJlYV9wcml2LT53aWR0aCB8IHNhcmVhX3ByaXYtPmhlaWdodCA8PCAxNik7CisJCU9VVF9SSU5HKDApOworCisJCUFEVkFOQ0VfTFBfUklORygpOworCX0KKworCXNhcmVhX3ByaXYtPmN0eE93bmVyID0gRFJNX0tFUk5FTF9DT05URVhUOworCisJdXBwZXJbMF0gPSB1cHBlclsxXSA9IDA7CisJc2xpY2VbMF0gPSBtYXgoc2FyZWFfcHJpdi0+cGlwZUFfaCAvIG5oaXRzLCAxKTsKKwlzbGljZVsxXSA9IG1heChzYXJlYV9wcml2LT5waXBlQl9oIC8gbmhpdHMsIDEpOworCWxvd2VyWzBdID0gc2FyZWFfcHJpdi0+cGlwZUFfeSArIHNsaWNlWzBdOworCWxvd2VyWzFdID0gc2FyZWFfcHJpdi0+cGlwZUJfeSArIHNsaWNlWzBdOworCisJc3Bpbl9sb2NrKCZkZXYtPmRyd19sb2NrKTsKKworCS8qIEVtaXQgYmxpdHMgZm9yIGJ1ZmZlciBzd2FwcywgcGFydGl0aW9uaW5nIGJvdGggb3V0cHV0cyBpbnRvIGFzIG1hbnkKKwkgKiBzbGljZXMgYXMgdGhlcmUgYXJlIGJ1ZmZlciBzd2FwcyBzY2hlZHVsZWQgaW4gb3JkZXIgdG8gYXZvaWQgdGVhcmluZworCSAqIChiYXNlZCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGEgc2luZ2xlIGJ1ZmZlciBzd2FwIHdvdWxkIGFsd2F5cworCSAqIGNvbXBsZXRlIGJlZm9yZSBzY2Fub3V0IHN0YXJ0cykuCisJICovCisJZm9yIChpID0gMDsgaSsrIDwgbmhpdHM7CisJICAgICB1cHBlclswXSA9IGxvd2VyWzBdLCBsb3dlclswXSArPSBzbGljZVswXSwKKwkgICAgIHVwcGVyWzFdID0gbG93ZXJbMV0sIGxvd2VyWzFdICs9IHNsaWNlWzFdKSB7CisJCWlmIChpID09IG5oaXRzKQorCQkJbG93ZXJbMF0gPSBsb3dlclsxXSA9IHNhcmVhX3ByaXYtPmhlaWdodDsKKworCQlsaXN0X2Zvcl9lYWNoKGhpdCwgJmhpdHMpIHsKKwkJCWRybV9pOTE1X3ZibF9zd2FwX3QgKnN3YXBfaGl0ID0KKwkJCQlsaXN0X2VudHJ5KGhpdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7CisJCQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqcmVjdDsKKwkJCWludCBudW1fcmVjdHMsIHBpcGU7CisJCQl1bnNpZ25lZCBzaG9ydCB0b3AsIGJvdHRvbTsKKworCQkJZHJ3ID0gZHJtX2dldF9kcmF3YWJsZV9pbmZvKGRldiwgc3dhcF9oaXQtPmRyd19pZCk7CisKKwkJCWlmICghZHJ3KQorCQkJCWNvbnRpbnVlOworCisJCQlyZWN0ID0gZHJ3LT5yZWN0czsKKwkJCXBpcGUgPSBzd2FwX2hpdC0+cGlwZTsKKwkJCXRvcCA9IHVwcGVyW3BpcGVdOworCQkJYm90dG9tID0gbG93ZXJbcGlwZV07CisKKwkJCWZvciAobnVtX3JlY3RzID0gZHJ3LT5udW1fcmVjdHM7IG51bV9yZWN0cy0tOyByZWN0KyspIHsKKwkJCQlpbnQgeTEgPSBtYXgocmVjdC0+eTEsIHRvcCk7CisJCQkJaW50IHkyID0gbWluKHJlY3QtPnkyLCBib3R0b20pOworCisJCQkJaWYgKHkxID49IHkyKQorCQkJCQljb250aW51ZTsKKworCQkJCUJFR0lOX0xQX1JJTkcoOCk7CisKKwkJCQlPVVRfUklORyhjbWQpOworCQkJCU9VVF9SSU5HKHJvcGNwcCB8IGRzdF9waXRjaCk7CisJCQkJT1VUX1JJTkcoKHkxIDw8IDE2KSB8IHJlY3QtPngxKTsKKwkJCQlPVVRfUklORygoeTIgPDwgMTYpIHwgcmVjdC0+eDIpOworCQkJCU9VVF9SSU5HKHNhcmVhX3ByaXYtPmZyb250X29mZnNldCk7CisJCQkJT1VUX1JJTkcoKHkxIDw8IDE2KSB8IHJlY3QtPngxKTsKKwkJCQlPVVRfUklORyhzcmNfcGl0Y2gpOworCQkJCU9VVF9SSU5HKHNhcmVhX3ByaXYtPmJhY2tfb2Zmc2V0KTsKKworCQkJCUFEVkFOQ0VfTFBfUklORygpOworCQkJfQorCQl9CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5kcndfbG9jaywgaXJxZmxhZ3MpOworCisJbGlzdF9mb3JfZWFjaF9zYWZlKGhpdCwgdG1wLCAmaGl0cykgeworCQlkcm1faTkxNV92Ymxfc3dhcF90ICpzd2FwX2hpdCA9CisJCQlsaXN0X2VudHJ5KGhpdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7CisKKwkJbGlzdF9kZWwoaGl0KTsKKworCQlkcm1fZnJlZShzd2FwX2hpdCwgc2l6ZW9mKCpzd2FwX2hpdCksIERSTV9NRU1fRFJJVkVSKTsKKwl9Cit9CisKK2lycXJldHVybl90IGk5MTVfZHJpdmVyX2lycV9oYW5kbGVyKERSTV9JUlFfQVJHUykKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gKHN0cnVjdCBkcm1fZGV2aWNlICopIGFyZzsKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCXUxNiB0ZW1wOworCXUzMiBwaXBlYV9zdGF0cywgcGlwZWJfc3RhdHM7CisKKwlwaXBlYV9zdGF0cyA9IEk5MTVfUkVBRChJOTE1UkVHX1BJUEVBU1RBVCk7CisJcGlwZWJfc3RhdHMgPSBJOTE1X1JFQUQoSTkxNVJFR19QSVBFQlNUQVQpOworCisJdGVtcCA9IEk5MTVfUkVBRDE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOworCisJdGVtcCAmPSAoVVNFUl9JTlRfRkxBRyB8IFZTWU5DX1BJUEVBX0ZMQUcgfCBWU1lOQ19QSVBFQl9GTEFHKTsKKworCURSTV9ERUJVRygiJXMgZmxhZz0lMDh4XG4iLCBfX0ZVTkNUSU9OX18sIHRlbXApOworCisJaWYgKHRlbXAgPT0gMCkKKwkJcmV0dXJuIElSUV9OT05FOworCisJSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IsIHRlbXApOworCSh2b2lkKSBJOTE1X1JFQUQxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SKTsKKwlEUk1fUkVBRE1FTU9SWUJBUlJJRVIoKTsKKworCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID0gUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KTsKKworCWlmICh0ZW1wICYgVVNFUl9JTlRfRkxBRykKKwkJRFJNX1dBS0VVUCgmZGV2X3ByaXYtPmlycV9xdWV1ZSk7CisKKwlpZiAodGVtcCAmIChWU1lOQ19QSVBFQV9GTEFHIHwgVlNZTkNfUElQRUJfRkxBRykpIHsKKwkJaW50IHZibGFua19waXBlID0gZGV2X3ByaXYtPnZibGFua19waXBlOworCisJCWlmICgodmJsYW5rX3BpcGUgJgorCQkgICAgIChEUk1fSTkxNV9WQkxBTktfUElQRV9BIHwgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQikpCisJCSAgICA9PSAoRFJNX0k5MTVfVkJMQU5LX1BJUEVfQSB8IERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpKSB7CisJCQlpZiAodGVtcCAmIFZTWU5DX1BJUEVBX0ZMQUcpCisJCQkJYXRvbWljX2luYygmZGV2LT52YmxfcmVjZWl2ZWQpOworCQkJaWYgKHRlbXAgJiBWU1lOQ19QSVBFQl9GTEFHKQorCQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkMik7CisJCX0gZWxzZSBpZiAoKCh0ZW1wICYgVlNZTkNfUElQRUFfRkxBRykgJiYKKwkJCSAgICAodmJsYW5rX3BpcGUgJiBEUk1fSTkxNV9WQkxBTktfUElQRV9BKSkgfHwKKwkJCSAgICgodGVtcCAmIFZTWU5DX1BJUEVCX0ZMQUcpICYmCisJCQkgICAgKHZibGFua19waXBlICYgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQikpKQorCQkJYXRvbWljX2luYygmZGV2LT52YmxfcmVjZWl2ZWQpOworCisJCURSTV9XQUtFVVAoJmRldi0+dmJsX3F1ZXVlKTsKKwkJZHJtX3ZibF9zZW5kX3NpZ25hbHMoZGV2KTsKKworCQlpZiAoZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmcgPiAwKQorCQkJZHJtX2xvY2tlZF90YXNrbGV0KGRldiwgaTkxNV92YmxhbmtfdGFza2xldCk7CisJCUk5MTVfV1JJVEUoSTkxNVJFR19QSVBFQVNUQVQsCisJCQlwaXBlYV9zdGF0c3xJOTE1X1ZCTEFOS19JTlRFUlJVUFRfRU5BQkxFfAorCQkJSTkxNV9WQkxBTktfQ0xFQVIpOworCQlJOTE1X1dSSVRFKEk5MTVSRUdfUElQRUJTVEFULAorCQkJcGlwZWJfc3RhdHN8STkxNV9WQkxBTktfSU5URVJSVVBUX0VOQUJMRXwKKwkJCUk5MTVfVkJMQU5LX0NMRUFSKTsKKwl9CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpbnQgaTkxNV9lbWl0X2lycShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlSSU5HX0xPQ0FMUzsKKworCWk5MTVfa2VybmVsX2xvc3RfY29udGV4dChkZXYpOworCisJRFJNX0RFQlVHKCJcbiIpOworCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZW5xdWV1ZSA9ICsrZGV2X3ByaXYtPmNvdW50ZXI7CisKKwlpZiAoZGV2X3ByaXYtPmNvdW50ZXIgPiAweDdGRkZGRkZGVUwpCisJCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2VucXVldWUgPSBkZXZfcHJpdi0+Y291bnRlciA9IDE7CisKKwlCRUdJTl9MUF9SSU5HKDYpOworCU9VVF9SSU5HKENNRF9TVE9SRV9EV09SRF9JRFgpOworCU9VVF9SSU5HKDIwKTsKKwlPVVRfUklORyhkZXZfcHJpdi0+Y291bnRlcik7CisJT1VUX1JJTkcoMCk7CisJT1VUX1JJTkcoMCk7CisJT1VUX1JJTkcoR0ZYX09QX1VTRVJfSU5URVJSVVBUKTsKKwlBRFZBTkNFX0xQX1JJTkcoKTsKKworCXJldHVybiBkZXZfcHJpdi0+Y291bnRlcjsKK30KKworc3RhdGljIGludCBpOTE1X3dhaXRfaXJxKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgaXJxX25yKQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IHJldCA9IDA7CisKKwlEUk1fREVCVUcoImlycV9ucj0lZCBicmVhZGNydW1iPSVkXG4iLCBpcnFfbnIsCisJCSAgUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KSk7CisKKwlpZiAoUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KSA+PSBpcnFfbnIpCisJCXJldHVybiAwOworCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBlcmZfYm94ZXMgfD0gSTkxNV9CT1hfV0FJVDsKKworCURSTV9XQUlUX09OKHJldCwgZGV2X3ByaXYtPmlycV9xdWV1ZSwgMyAqIERSTV9IWiwKKwkJICAgIFJFQURfQlJFQURDUlVNQihkZXZfcHJpdikgPj0gaXJxX25yKTsKKworCWlmIChyZXQgPT0gLUVCVVNZKSB7CisJCURSTV9FUlJPUigiRUJVU1kgLS0gcmVjOiAlZCBlbWl0dGVkOiAlZFxuIiwKKwkJCSAgUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KSwgKGludClkZXZfcHJpdi0+Y291bnRlcik7CisJfQorCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2ggPSBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaTkxNV9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSwKKwkJCQkgICAgICBhdG9taWNfdCAqY291bnRlcikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwl1bnNpZ25lZCBpbnQgY3VyX3ZibGFuazsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCURSTV9XQUlUX09OKHJldCwgZGV2LT52YmxfcXVldWUsIDMgKiBEUk1fSFosCisJCSAgICAoKChjdXJfdmJsYW5rID0gYXRvbWljX3JlYWQoY291bnRlcikpCisJCQktICpzZXF1ZW5jZSkgPD0gKDE8PDIzKSkpOworCisJKnNlcXVlbmNlID0gY3VyX3ZibGFuazsKKworCXJldHVybiByZXQ7Cit9CisKKworaW50IGk5MTVfZHJpdmVyX3ZibGFua193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpCit7CisJcmV0dXJuIGk5MTVfZHJpdmVyX3ZibGFua19kb193YWl0KGRldiwgc2VxdWVuY2UsICZkZXYtPnZibF9yZWNlaXZlZCk7Cit9CisKK2ludCBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdDIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSkKK3sKKwlyZXR1cm4gaTkxNV9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoZGV2LCBzZXF1ZW5jZSwgJmRldi0+dmJsX3JlY2VpdmVkMik7Cit9CisKKy8qIE5lZWRzIHRoZSBsb2NrIGFzIGl0IHRvdWNoZXMgdGhlIHJpbmcuCisgKi8KK2ludCBpOTE1X2lycV9lbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX2k5MTVfaXJxX2VtaXRfdCAqZW1pdCA9IGRhdGE7CisJaW50IHJlc3VsdDsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlpZiAoIWRldl9wcml2KSB7CisJCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXN1bHQgPSBpOTE1X2VtaXRfaXJxKGRldik7CisKKwlpZiAoRFJNX0NPUFlfVE9fVVNFUihlbWl0LT5pcnFfc2VxLCAmcmVzdWx0LCBzaXplb2YoaW50KSkpIHsKKwkJRFJNX0VSUk9SKCJjb3B5X3RvX3VzZXJcbiIpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogRG9lc24ndCBuZWVkIHRoZSBoYXJkd2FyZSBsb2NrLgorICovCitpbnQgaTkxNV9pcnFfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9pOTE1X2lycV93YWl0X3QgKmlycXdhaXQgPSBkYXRhOworCisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIGk5MTVfd2FpdF9pcnEoZGV2LCBpcnF3YWl0LT5pcnFfc2VxKTsKK30KKworc3RhdGljIHZvaWQgaTkxNV9lbmFibGVfaW50ZXJydXB0IChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdTE2IGZsYWc7CisKKwlmbGFnID0gMDsKKwlpZiAoZGV2X3ByaXYtPnZibGFua19waXBlICYgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQSkKKwkJZmxhZyB8PSBWU1lOQ19QSVBFQV9GTEFHOworCWlmIChkZXZfcHJpdi0+dmJsYW5rX3BpcGUgJiBEUk1fSTkxNV9WQkxBTktfUElQRV9CKQorCQlmbGFnIHw9IFZTWU5DX1BJUEVCX0ZMQUc7CisKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfRU5BQkxFX1IsIFVTRVJfSU5UX0ZMQUcgfCBmbGFnKTsKK30KKworLyogU2V0IHRoZSB2YmxhbmsgbW9uaXRvciBwaXBlCisgKi8KK2ludCBpOTE1X3ZibGFua19waXBlX3NldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9pOTE1X3ZibGFua19waXBlX3QgKnBpcGUgPSBkYXRhOworCisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHBpcGUtPnBpcGUgJiB+KERSTV9JOTE1X1ZCTEFOS19QSVBFX0F8RFJNX0k5MTVfVkJMQU5LX1BJUEVfQikpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBpbnZhbGlkIHBpcGUgMHgleFxuIiwgcGlwZS0+cGlwZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldl9wcml2LT52YmxhbmtfcGlwZSA9IHBpcGUtPnBpcGU7CisKKwlpOTE1X2VuYWJsZV9pbnRlcnJ1cHQgKGRldik7CisKKwlyZXR1cm4gMDsKK30KKworaW50IGk5MTVfdmJsYW5rX3BpcGVfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX2k5MTVfdmJsYW5rX3BpcGVfdCAqcGlwZSA9IGRhdGE7CisJdTE2IGZsYWc7CisKKwlpZiAoIWRldl9wcml2KSB7CisJCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlmbGFnID0gSTkxNV9SRUFEKEk5MTVSRUdfSU5UX0VOQUJMRV9SKTsKKwlwaXBlLT5waXBlID0gMDsKKwlpZiAoZmxhZyAmIFZTWU5DX1BJUEVBX0ZMQUcpCisJCXBpcGUtPnBpcGUgfD0gRFJNX0k5MTVfVkJMQU5LX1BJUEVfQTsKKwlpZiAoZmxhZyAmIFZTWU5DX1BJUEVCX0ZMQUcpCisJCXBpcGUtPnBpcGUgfD0gRFJNX0k5MTVfVkJMQU5LX1BJUEVfQjsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIFNjaGVkdWxlIGJ1ZmZlciBzd2FwIGF0IGdpdmVuIHZlcnRpY2FsIGJsYW5rLgorICovCitpbnQgaTkxNV92Ymxhbmtfc3dhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9pOTE1X3ZibGFua19zd2FwX3QgKnN3YXAgPSBkYXRhOworCWRybV9pOTE1X3ZibF9zd2FwX3QgKnZibF9zd2FwOworCXVuc2lnbmVkIGludCBwaXBlLCBzZXF0eXBlLCBjdXJzZXE7CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0OworCisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fRVJST1IoIiVzIGNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cm90YXRpb24pIHsKKwkJRFJNX0RFQlVHKCJSb3RhdGlvbiBub3Qgc3VwcG9ydGVkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHN3YXAtPnNlcXR5cGUgJiB+KF9EUk1fVkJMQU5LX1JFTEFUSVZFIHwgX0RSTV9WQkxBTktfQUJTT0xVVEUgfAorCQkJICAgICBfRFJNX1ZCTEFOS19TRUNPTkRBUlkgfCBfRFJNX1ZCTEFOS19ORVhUT05NSVNTKSkgeworCQlEUk1fRVJST1IoIkludmFsaWQgc2VxdWVuY2UgdHlwZSAweCV4XG4iLCBzd2FwLT5zZXF0eXBlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcGlwZSA9IChzd2FwLT5zZXF0eXBlICYgX0RSTV9WQkxBTktfU0VDT05EQVJZKSA/IDEgOiAwOworCisJc2VxdHlwZSA9IHN3YXAtPnNlcXR5cGUgJiAoX0RSTV9WQkxBTktfUkVMQVRJVkUgfCBfRFJNX1ZCTEFOS19BQlNPTFVURSk7CisKKwlpZiAoIShkZXZfcHJpdi0+dmJsYW5rX3BpcGUgJiAoMSA8PCBwaXBlKSkpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIHBpcGUgJWRcbiIsIHBpcGUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5kcndfbG9jaywgaXJxZmxhZ3MpOworCisJaWYgKCFkcm1fZ2V0X2RyYXdhYmxlX2luZm8oZGV2LCBzd2FwLT5kcmF3YWJsZSkpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5kcndfbG9jaywgaXJxZmxhZ3MpOworCQlEUk1fREVCVUcoIkludmFsaWQgZHJhd2FibGUgSUQgJWRcbiIsIHN3YXAtPmRyYXdhYmxlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5kcndfbG9jaywgaXJxZmxhZ3MpOworCisJY3Vyc2VxID0gYXRvbWljX3JlYWQocGlwZSA/ICZkZXYtPnZibF9yZWNlaXZlZDIgOiAmZGV2LT52YmxfcmVjZWl2ZWQpOworCisJaWYgKHNlcXR5cGUgPT0gX0RSTV9WQkxBTktfUkVMQVRJVkUpCisJCXN3YXAtPnNlcXVlbmNlICs9IGN1cnNlcTsKKworCWlmICgoY3Vyc2VxIC0gc3dhcC0+c2VxdWVuY2UpIDw9ICgxPDwyMykpIHsKKwkJaWYgKHN3YXAtPnNlcXR5cGUgJiBfRFJNX1ZCTEFOS19ORVhUT05NSVNTKSB7CisJCQlzd2FwLT5zZXF1ZW5jZSA9IGN1cnNlcSArIDE7CisJCX0gZWxzZSB7CisJCQlEUk1fREVCVUcoIk1pc3NlZCB0YXJnZXQgc2VxdWVuY2VcbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKKworCWxpc3RfZm9yX2VhY2gobGlzdCwgJmRldl9wcml2LT52Ymxfc3dhcHMuaGVhZCkgeworCQl2Ymxfc3dhcCA9IGxpc3RfZW50cnkobGlzdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7CisKKwkJaWYgKHZibF9zd2FwLT5kcndfaWQgPT0gc3dhcC0+ZHJhd2FibGUgJiYKKwkJICAgIHZibF9zd2FwLT5waXBlID09IHBpcGUgJiYKKwkJICAgIHZibF9zd2FwLT5zZXF1ZW5jZSA9PSBzd2FwLT5zZXF1ZW5jZSkgeworCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKKwkJCURSTV9ERUJVRygiQWxyZWFkeSBzY2hlZHVsZWRcbiIpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCisJaWYgKGRldl9wcml2LT5zd2Fwc19wZW5kaW5nID49IDEwMCkgeworCQlEUk1fREVCVUcoIlRvbyBtYW55IHN3YXBzIHF1ZXVlZFxuIik7CisJCXJldHVybiAtRUJVU1k7CisJfQorCisJdmJsX3N3YXAgPSBkcm1fY2FsbG9jKDEsIHNpemVvZigqdmJsX3N3YXApLCBEUk1fTUVNX0RSSVZFUik7CisKKwlpZiAoIXZibF9zd2FwKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSB0byBxdWV1ZSBzd2FwXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJRFJNX0RFQlVHKCJcbiIpOworCisJdmJsX3N3YXAtPmRyd19pZCA9IHN3YXAtPmRyYXdhYmxlOworCXZibF9zd2FwLT5waXBlID0gcGlwZTsKKwl2Ymxfc3dhcC0+c2VxdWVuY2UgPSBzd2FwLT5zZXF1ZW5jZTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCisJbGlzdF9hZGRfdGFpbCgmdmJsX3N3YXAtPmhlYWQsICZkZXZfcHJpdi0+dmJsX3N3YXBzLmhlYWQpOworCWRldl9wcml2LT5zd2Fwc19wZW5kaW5nKys7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIGRybV9kbWEuaCBob29rcworKi8KK3ZvaWQgaTkxNV9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0hXU1RBTSwgMHhmZmZlKTsKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfTUFTS19SLCAweDApOworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9FTkFCTEVfUiwgMHgwKTsKK30KKwordm9pZCBpOTE1X2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKworCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+c3dhcHNfbG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT52Ymxfc3dhcHMuaGVhZCk7CisJZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmcgPSAwOworCisJaWYgKCFkZXZfcHJpdi0+dmJsYW5rX3BpcGUpCisJCWRldl9wcml2LT52YmxhbmtfcGlwZSA9IERSTV9JOTE1X1ZCTEFOS19QSVBFX0E7CisJaTkxNV9lbmFibGVfaW50ZXJydXB0KGRldik7CisJRFJNX0lOSVRfV0FJVFFVRVVFKCZkZXZfcHJpdi0+aXJxX3F1ZXVlKTsKK30KKwordm9pZCBpOTE1X2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdTE2IHRlbXA7CisKKwlpZiAoIWRldl9wcml2KQorCQlyZXR1cm47CisKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19IV1NUQU0sIDB4ZmZmZik7CisJSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX01BU0tfUiwgMHhmZmZmKTsKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfRU5BQkxFX1IsIDB4MCk7CisKKwl0ZW1wID0gSTkxNV9SRUFEMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUik7CisJSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IsIHRlbXApOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pOTE1X21lbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9tZW0uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pOTE1X21lbS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21lbS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL21nYS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDY4NDc4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYS9NYWtlZmlsZQpAQCAtMCwwICsxLDExIEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCittZ2EteSA6PSBtZ2FfZHJ2Lm8gbWdhX2RtYS5vIG1nYV9zdGF0ZS5vIG1nYV93YXJwLm8gbWdhX2lycS5vCisKK21nYS0kKENPTkZJR19DT01QQVQpICs9IG1nYV9pb2MzMi5vCisKK29iai0kKENPTkZJR19EUk1fTUdBKQkrPSBtZ2EubworCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2RtYS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9kbWEuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZG1hLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vbWdhX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZHJ2LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vbWdhX2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9tZ2FfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2FfZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV9pb2MzMi5jIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfaW9jMzIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2FfaW9jMzIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfaW9jMzIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9tZ2FfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9pcnEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2FfaXJxLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2lycS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV9zdGF0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2Ffc3RhdGUuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2Ffc3RhdGUuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL21nYS9tZ2Ffc3RhdGUuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9tZ2FfdWNvZGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3Vjb2RlLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vbWdhX3Vjb2RlLmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3Vjb2RlLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vbWdhX3dhcnAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3dhcnAuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2Ffd2FycC5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vbWdhL21nYV93YXJwLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yMTI4L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNjNzJhZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yMTI4L01ha2VmaWxlCkBAIC0wLDAgKzEsMTAgQEAKKyMKKyMgTWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZQorIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KKworY2NmbGFncy15IDo9IC1JaW5jbHVkZS9kcm0KK3IxMjgteSAgIDo9IHIxMjhfZHJ2Lm8gcjEyOF9jY2UubyByMTI4X3N0YXRlLm8gcjEyOF9pcnEubworCityMTI4LSQoQ09ORklHX0NPTVBBVCkgICArPSByMTI4X2lvYzMyLm8KKworb2JqLSQoQ09ORklHX0RSTV9SMTI4KQkrPSByMTI4Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcjEyOF9jY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfY2NlLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9jY2UuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9jY2UuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMTI4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9yMTI4X2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3IxMjhfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3IxMjhfZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcjEyOF9pb2MzMi5jIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9pb2MzMi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3IxMjhfaW9jMzIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9pb2MzMi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3IxMjhfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2lycS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3IxMjhfaXJxLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfaXJxLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcjEyOF9zdGF0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9zdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3IxMjhfc3RhdGUuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9zdGF0ZS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWI1MjFlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9NYWtlZmlsZQpAQCAtMCwwICsxLDEwIEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCityYWRlb24teSA6PSByYWRlb25fZHJ2Lm8gcmFkZW9uX2NwLm8gcmFkZW9uX3N0YXRlLm8gcmFkZW9uX21lbS5vIHJhZGVvbl9pcnEubyByMzAwX2NtZGJ1Zi5vCisKK3JhZGVvbi0kKENPTkZJR19DT01QQVQpICs9IHJhZGVvbl9pb2MzMi5vCisKK29iai0kKENPTkZJR19EUk1fUkFERU9OKSs9IHJhZGVvbi5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3IzMDBfY21kYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IzMDBfY21kYnVmLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjMwMF9jbWRidWYuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwX2NtZGJ1Zi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3IzMDBfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IzMDBfcmVnLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjMwMF9yZWcuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwX3JlZy5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3AuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGRlODFhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3AuYwpAQCAtMCwwICsxLDE3NzMgQEAKKy8qIHJhZGVvbl9jcC5jIC0tIENQIHN1cHBvcnQgZm9yIFJhZGVvbiAtKi0gbGludXgtYyAtKi0gKi8KKy8qCisgKiBDb3B5cmlnaHQgMjAwMCBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBGcmVtb250LCBDYWxpZm9ybmlhLgorICogQ29weXJpZ2h0IDIwMDcgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqICAgIEtldmluIEUuIE1hcnRpbiA8bWFydGluQHZhbGludXguY29tPgorICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICovCisKKyNpbmNsdWRlICJkcm1QLmgiCisjaW5jbHVkZSAiZHJtLmgiCisjaW5jbHVkZSAicmFkZW9uX2RybS5oIgorI2luY2x1ZGUgInJhZGVvbl9kcnYuaCIKKyNpbmNsdWRlICJyMzAwX3JlZy5oIgorCisjaW5jbHVkZSAicmFkZW9uX21pY3JvY29kZS5oIgorCisjZGVmaW5lIFJBREVPTl9GSUZPX0RFQlVHCTAKKworc3RhdGljIGludCByYWRlb25fZG9fY2xlYW51cF9jcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CisKK3N0YXRpYyB1MzIgUjUwMF9SRUFEX01DSU5EKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCit7CisJdTMyIHJldDsKKwlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDB4N2YwMDAwIHwgKGFkZHIgJiAweGZmKSk7CisJcmV0ID0gUkFERU9OX1JFQUQoUjUyMF9NQ19JTkRfREFUQSk7CisJUkFERU9OX1dSSVRFKFI1MjBfTUNfSU5EX0lOREVYLCAwKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdTMyIFJTNDgwX1JFQURfTUNJTkQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKK3sKKwl1MzIgcmV0OworCVJBREVPTl9XUklURShSUzQ4MF9OQl9NQ19JTkRFWCwgYWRkciAmIDB4ZmYpOworCXJldCA9IFJBREVPTl9SRUFEKFJTNDgwX05CX01DX0RBVEEpOworCVJBREVPTl9XUklURShSUzQ4MF9OQl9NQ19JTkRFWCwgMHhmZik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHUzMiBSUzY5MF9SRUFEX01DSU5EKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCit7CisJdTMyIHJldDsKKwlSQURFT05fV1JJVEUoUlM2OTBfTUNfSU5ERVgsIChhZGRyICYgUlM2OTBfTUNfSU5ERVhfTUFTSykpOworCXJldCA9IFJBREVPTl9SRUFEKFJTNjkwX01DX0RBVEEpOworCVJBREVPTl9XUklURShSUzY5MF9NQ19JTkRFWCwgUlM2OTBfTUNfSU5ERVhfTUFTSyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHUzMiBJR1BfUkVBRF9NQ0lORChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIGludCBhZGRyKQoreworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKQorCQlyZXR1cm4gUlM2OTBfUkVBRF9NQ0lORChkZXZfcHJpdiwgYWRkcik7CisJZWxzZQorCQlyZXR1cm4gUlM0ODBfUkVBRF9NQ0lORChkZXZfcHJpdiwgYWRkcik7Cit9CisKK3UzMiByYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpCit7CisKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjUxNSkKKwkJcmV0dXJuIFI1MDBfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlY1MTVfTUNfRkJfTE9DQVRJT04pOworCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApCisJCXJldHVybiBSUzY5MF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzY5MF9NQ19GQl9MT0NBVElPTik7CisJZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPiBDSElQX1JWNTE1KQorCQlyZXR1cm4gUjUwMF9SRUFEX01DSU5EKGRldl9wcml2LCBSNTIwX01DX0ZCX0xPQ0FUSU9OKTsKKwllbHNlCisJCXJldHVybiBSQURFT05fUkVBRChSQURFT05fTUNfRkJfTE9DQVRJT04pOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fd3JpdGVfZmJfbG9jYXRpb24oZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCB1MzIgZmJfbG9jKQoreworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTE1KQorCQlSNTAwX1dSSVRFX01DSU5EKFJWNTE1X01DX0ZCX0xPQ0FUSU9OLCBmYl9sb2MpOworCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApCisJCVJTNjkwX1dSSVRFX01DSU5EKFJTNjkwX01DX0ZCX0xPQ0FUSU9OLCBmYl9sb2MpOworCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID4gQ0hJUF9SVjUxNSkKKwkJUjUwMF9XUklURV9NQ0lORChSNTIwX01DX0ZCX0xPQ0FUSU9OLCBmYl9sb2MpOworCWVsc2UKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9NQ19GQl9MT0NBVElPTiwgZmJfbG9jKTsKK30KKworc3RhdGljIHZvaWQgcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHUzMiBhZ3BfbG9jKQoreworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTE1KQorCQlSNTAwX1dSSVRFX01DSU5EKFJWNTE1X01DX0FHUF9MT0NBVElPTiwgYWdwX2xvYyk7CisJZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKKwkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX0xPQ0FUSU9OLCBhZ3BfbG9jKTsKKwllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+IENISVBfUlY1MTUpCisJCVI1MDBfV1JJVEVfTUNJTkQoUjUyMF9NQ19BR1BfTE9DQVRJT04sIGFncF9sb2MpOworCWVsc2UKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9NQ19BR1BfTE9DQVRJT04sIGFncF9sb2MpOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fd3JpdGVfYWdwX2Jhc2UoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCB1NjQgYWdwX2Jhc2UpCit7CisJdTMyIGFncF9iYXNlX2hpID0gdXBwZXJfMzJfYml0cyhhZ3BfYmFzZSk7CisJdTMyIGFncF9iYXNlX2xvID0gYWdwX2Jhc2UgJiAweGZmZmZmZmZmOworCisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpIHsKKwkJUjUwMF9XUklURV9NQ0lORChSVjUxNV9NQ19BR1BfQkFTRSwgYWdwX2Jhc2VfbG8pOworCQlSNTAwX1dSSVRFX01DSU5EKFJWNTE1X01DX0FHUF9CQVNFXzIsIGFncF9iYXNlX2hpKTsKKwl9IGVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApIHsKKwkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX0JBU0UsIGFncF9iYXNlX2xvKTsKKwkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX0JBU0VfMiwgYWdwX2Jhc2VfaGkpOworCX0gZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPiBDSElQX1JWNTE1KSB7CisJCVI1MDBfV1JJVEVfTUNJTkQoUjUyMF9NQ19BR1BfQkFTRSwgYWdwX2Jhc2VfbG8pOworCQlSNTAwX1dSSVRFX01DSU5EKFI1MjBfTUNfQUdQX0JBU0VfMiwgYWdwX2Jhc2VfaGkpOworCX0gZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzQ4MCkgeworCQlSQURFT05fV1JJVEUoUkFERU9OX0FHUF9CQVNFLCBhZ3BfYmFzZV9sbyk7CisJCVJBREVPTl9XUklURShSUzQ4MF9BR1BfQkFTRV8yLCAwKTsKKwl9IGVsc2UgeworCQlSQURFT05fV1JJVEUoUkFERU9OX0FHUF9CQVNFLCBhZ3BfYmFzZV9sbyk7CisJCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+PSBDSElQX1IyMDApCisJCQlSQURFT05fV1JJVEUoUkFERU9OX0FHUF9CQVNFXzIsIGFncF9iYXNlX2hpKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgUkFERU9OX1JFQURfUExMKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgYWRkcikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCisJUkFERU9OX1dSSVRFOChSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCwgYWRkciAmIDB4MWYpOworCXJldHVybiBSQURFT05fUkVBRChSQURFT05fQ0xPQ0tfQ05UTF9EQVRBKTsKK30KKworc3RhdGljIHUzMiBSQURFT05fUkVBRF9QQ0lFKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCit7CisJUkFERU9OX1dSSVRFOChSQURFT05fUENJRV9JTkRFWCwgYWRkciAmIDB4ZmYpOworCXJldHVybiBSQURFT05fUkVBRChSQURFT05fUENJRV9EQVRBKTsKK30KKworI2lmIFJBREVPTl9GSUZPX0RFQlVHCitzdGF0aWMgdm9pZCByYWRlb25fc3RhdHVzKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJcHJpbnRrKCIlczpcbiIsIF9fZnVuY19fKTsKKwlwcmludGsoIlJCQk1fU1RBVFVTID0gMHglMDh4XG4iLAorCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NUQVRVUykpOworCXByaW50aygiQ1BfUkJfUlRQUiA9IDB4JTA4eFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUikpOworCXByaW50aygiQ1BfUkJfV1RQUiA9IDB4JTA4eFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQ1BfUkJfV1BUUikpOworCXByaW50aygiQUlDX0NOVEwgPSAweCUwOHhcbiIsCisJICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19DTlRMKSk7CisJcHJpbnRrKCJBSUNfU1RBVCA9IDB4JTA4eFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX1NUQVQpKTsKKwlwcmludGsoIkFJQ19QVF9CQVNFID0gMHglMDh4XG4iLAorCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9BSUNfUFRfQkFTRSkpOworCXByaW50aygiVExCX0FERFIgPSAweCUwOHhcbiIsCisJICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19UTEJfQUREUikpOworCXByaW50aygiVExCX0RBVEEgPSAweCUwOHhcbiIsCisJICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19UTEJfREFUQSkpOworfQorI2VuZGlmCisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIEVuZ2luZSwgRklGTyBjb250cm9sCisgKi8KKworc3RhdGljIGludCByYWRlb25fZG9fcGl4Y2FjaGVfZmx1c2goZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwl1MzIgdG1wOworCWludCBpOworCisJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOworCisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIDw9IENISVBfUlYyODApIHsKKwkJdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCk7CisJCXRtcCB8PSBSQURFT05fUkIzRF9EQ19GTFVTSF9BTEw7CisJCVJBREVPTl9XUklURShSQURFT05fUkIzRF9EU1RDQUNIRV9DVExTVEFULCB0bXApOworCisJCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyBpKyspIHsKKwkJCWlmICghKFJBREVPTl9SRUFEKFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQpCisJCQkgICAgICAmIFJBREVPTl9SQjNEX0RDX0JVU1kpKSB7CisJCQkJcmV0dXJuIDA7CisJCQl9CisJCQlEUk1fVURFTEFZKDEpOworCQl9CisJfSBlbHNlIHsKKwkJLyogM0QgKi8KKwkJdG1wID0gUkFERU9OX1JFQUQoUjMwMF9SQjNEX0RTVENBQ0hFX0NUTFNUQVQpOworCQl0bXAgfD0gUkFERU9OX1JCM0RfRENfRkxVU0hfQUxMOworCQlSQURFT05fV1JJVEUoUjMwMF9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIHRtcCk7CisKKwkJLyogMkQgKi8KKwkJdG1wID0gUkFERU9OX1JFQUQoUjMwMF9EU1RDQUNIRV9DVExTVEFUKTsKKwkJdG1wIHw9IFJBREVPTl9SQjNEX0RDX0ZMVVNIX0FMTDsKKwkJUkFERU9OX1dSSVRFKFIzMDBfRFNUQ0FDSEVfQ1RMU1RBVCwgdG1wKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CisJCQlpZiAoIShSQURFT05fUkVBRChSMzAwX0RTVENBQ0hFX0NUTFNUQVQpCisJCQkgICYgUkFERU9OX1JCM0RfRENfQlVTWSkpIHsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJCURSTV9VREVMQVkoMSk7CisJCX0KKwl9CisKKyNpZiBSQURFT05fRklGT19ERUJVRworCURSTV9FUlJPUigiZmFpbGVkIVxuIik7CisJcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7CisjZW5kaWYKKwlyZXR1cm4gLUVCVVNZOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9kb193YWl0X2Zvcl9maWZvKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBlbnRyaWVzKQoreworCWludCBpOworCisJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOworCisJZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IGkrKykgeworCQlpbnQgc2xvdHMgPSAoUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU1RBVFVTKQorCQkJICAgICAmIFJBREVPTl9SQkJNX0ZJRk9DTlRfTUFTSyk7CisJCWlmIChzbG90cyA+PSBlbnRyaWVzKQorCQkJcmV0dXJuIDA7CisJCURSTV9VREVMQVkoMSk7CisJfQorCisjaWYgUkFERU9OX0ZJRk9fREVCVUcKKwlEUk1fRVJST1IoImZhaWxlZCFcbiIpOworCXJhZGVvbl9zdGF0dXMoZGV2X3ByaXYpOworI2VuZGlmCisJcmV0dXJuIC1FQlVTWTsKK30KKworc3RhdGljIGludCByYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCWludCBpLCByZXQ7CisKKwlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7CisKKwlyZXQgPSByYWRlb25fZG9fd2FpdF9mb3JfZmlmbyhkZXZfcHJpdiwgNjQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CisJCWlmICghKFJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NUQVRVUykKKwkJICAgICAgJiBSQURFT05fUkJCTV9BQ1RJVkUpKSB7CisJCQlyYWRlb25fZG9fcGl4Y2FjaGVfZmx1c2goZGV2X3ByaXYpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJRFJNX1VERUxBWSgxKTsKKwl9CisKKyNpZiBSQURFT05fRklGT19ERUJVRworCURSTV9FUlJPUigiZmFpbGVkIVxuIik7CisJcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7CisjZW5kaWYKKwlyZXR1cm4gLUVCVVNZOworfQorCitzdGF0aWMgdm9pZCByYWRlb25faW5pdF9waXBlcyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpCit7CisJdWludDMyX3QgZ2JfdGlsZV9jb25maWcsIGdiX3BpcGVfc2VsID0gMDsKKworCS8qIFJTNHh4L1JTNnh4L1I0eHgvUjV4eCAqLworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+PSBDSElQX1I0MjApIHsKKwkJZ2JfcGlwZV9zZWwgPSBSQURFT05fUkVBRChSNDAwX0dCX1BJUEVfU0VMRUNUKTsKKwkJZGV2X3ByaXYtPm51bV9nYl9waXBlcyA9ICgoZ2JfcGlwZV9zZWwgPj4gMTIpICYgMHgzKSArIDE7CisJfSBlbHNlIHsKKwkJLyogUjN4eCAqLworCQlpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjMwMCkgfHwKKwkJICAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1IzNTApKSB7CisJCQlkZXZfcHJpdi0+bnVtX2diX3BpcGVzID0gMjsKKwkJfSBlbHNlIHsKKwkJCS8qIFIzVnh4ICovCisJCQlkZXZfcHJpdi0+bnVtX2diX3BpcGVzID0gMTsKKwkJfQorCX0KKwlEUk1fSU5GTygiTnVtIHBpcGVzOiAlZFxuIiwgZGV2X3ByaXYtPm51bV9nYl9waXBlcyk7CisKKwlnYl90aWxlX2NvbmZpZyA9IChSMzAwX0VOQUJMRV9USUxJTkcgfCBSMzAwX1RJTEVfU0laRV8xNiAvKnwgUjMwMF9TVUJQSVhFTF8xXzE2Ki8pOworCisJc3dpdGNoIChkZXZfcHJpdi0+bnVtX2diX3BpcGVzKSB7CisJY2FzZSAyOiBnYl90aWxlX2NvbmZpZyB8PSBSMzAwX1BJUEVfQ09VTlRfUjMwMDsgYnJlYWs7CisJY2FzZSAzOiBnYl90aWxlX2NvbmZpZyB8PSBSMzAwX1BJUEVfQ09VTlRfUjQyMF8zUDsgYnJlYWs7CisJY2FzZSA0OiBnYl90aWxlX2NvbmZpZyB8PSBSMzAwX1BJUEVfQ09VTlRfUjQyMDsgYnJlYWs7CisJZGVmYXVsdDoKKwljYXNlIDE6IGdiX3RpbGVfY29uZmlnIHw9IFIzMDBfUElQRV9DT1VOVF9SVjM1MDsgYnJlYWs7CisJfQorCisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID49IENISVBfUlY1MTUpIHsKKwkJUkFERU9OX1dSSVRFX1BMTChSNTAwX0RZTl9TQ0xLX1BXTUVNX1BJUEUsICgxIHwgKChnYl9waXBlX3NlbCA+PiA4KSAmIDB4ZikgPDwgNCkpOworCQlSQURFT05fV1JJVEUoUjUwMF9TVV9SRUdfREVTVCwgKCgxIDw8IGRldl9wcml2LT5udW1fZ2JfcGlwZXMpIC0gMSkpOworCX0KKwlSQURFT05fV1JJVEUoUjMwMF9HQl9USUxFX0NPTkZJRywgZ2JfdGlsZV9jb25maWcpOworCXJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKKwlSQURFT05fV1JJVEUoUjMwMF9EU1RfUElQRV9DT05GSUcsIFJBREVPTl9SRUFEKFIzMDBfRFNUX1BJUEVfQ09ORklHKSB8IFIzMDBfUElQRV9BVVRPX0NPTkZJRyk7CisJUkFERU9OX1dSSVRFKFIzMDBfUkIyRF9EU1RDQUNIRV9NT0RFLCAoUkFERU9OX1JFQUQoUjMwMF9SQjJEX0RTVENBQ0hFX01PREUpIHwKKwkJCQkJICAgICAgIFIzMDBfRENfQVVUT0ZMVVNIX0VOQUJMRSB8CisJCQkJCSAgICAgICBSMzAwX0RDX0RDX0RJU0FCTEVfSUdOT1JFX1BFKSk7CisKKworfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBDUCBjb250cm9sLCBpbml0aWFsaXphdGlvbgorICovCisKKy8qIExvYWQgdGhlIG1pY3JvY29kZSBmb3IgdGhlIENQICovCitzdGF0aWMgdm9pZCByYWRlb25fY3BfbG9hZF9taWNyb2NvZGUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwlpbnQgaTsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlyYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7CisKKwlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9BRERSLCAwKTsKKwlpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjEwMCkgfHwKKwkgICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYxMDApIHx8CisJICAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWMjAwKSB8fAorCSAgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzEwMCkgfHwKKwkgICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlMyMDApKSB7CisJCURSTV9JTkZPKCJMb2FkaW5nIFIxMDAgTWljcm9jb2RlXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKKwkJCQkgICAgIFIxMDBfY3BfbWljcm9jb2RlW2ldWzFdKTsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAorCQkJCSAgICAgUjEwMF9jcF9taWNyb2NvZGVbaV1bMF0pOworCQl9CisJfSBlbHNlIGlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMjAwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjI1MCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYyODApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTMzAwKSkgeworCQlEUk1fSU5GTygiTG9hZGluZyBSMjAwIE1pY3JvY29kZVxuIik7CisJCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgeworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUgsCisJCQkJICAgICBSMjAwX2NwX21pY3JvY29kZVtpXVsxXSk7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBTCwKKwkJCQkgICAgIFIyMDBfY3BfbWljcm9jb2RlW2ldWzBdKTsKKwkJfQorCX0gZWxzZSBpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjMwMCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjM1MCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYzNTApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWMzgwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzQ4MCkpIHsKKwkJRFJNX0lORk8oIkxvYWRpbmcgUjMwMCBNaWNyb2NvZGVcbiIpOworCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAorCQkJCSAgICAgUjMwMF9jcF9taWNyb2NvZGVbaV1bMV0pOworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCisJCQkJICAgICBSMzAwX2NwX21pY3JvY29kZVtpXVswXSk7CisJCX0KKwl9IGVsc2UgaWYgKCgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1I0MjApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNDEwKSkgeworCQlEUk1fSU5GTygiTG9hZGluZyBSNDAwIE1pY3JvY29kZVxuIik7CisJCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgeworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUgsCisJCQkJICAgICBSNDIwX2NwX21pY3JvY29kZVtpXVsxXSk7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBTCwKKwkJCQkgICAgIFI0MjBfY3BfbWljcm9jb2RlW2ldWzBdKTsKKwkJfQorCX0gZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkgeworCQlEUk1fSU5GTygiTG9hZGluZyBSUzY5MCBNaWNyb2NvZGVcbiIpOworCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAorCQkJCSAgICAgUlM2OTBfY3BfbWljcm9jb2RlW2ldWzFdKTsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAorCQkJCSAgICAgUlM2OTBfY3BfbWljcm9jb2RlW2ldWzBdKTsKKwkJfQorCX0gZWxzZSBpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1I1MjApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTMwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SNTgwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjU2MCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1NzApKSB7CisJCURSTV9JTkZPKCJMb2FkaW5nIFI1MDAgTWljcm9jb2RlXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKKwkJCQkgICAgIFI1MjBfY3BfbWljcm9jb2RlW2ldWzFdKTsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAorCQkJCSAgICAgUjUyMF9jcF9taWNyb2NvZGVbaV1bMF0pOworCQl9CisJfQorfQorCisvKiBGbHVzaCBhbnkgcGVuZGluZyBjb21tYW5kcyB0byB0aGUgQ1AuICBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQganVzdAorICogcHJpb3IgdG8gYSB3YWl0IGZvciBpZGxlLCBhcyBpdCBpbmZvcm1zIHRoZSBlbmdpbmUgdGhhdCB0aGUgY29tbWFuZAorICogc3RyZWFtIGlzIGVuZGluZy4KKyAqLworc3RhdGljIHZvaWQgcmFkZW9uX2RvX2NwX2ZsdXNoKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJRFJNX0RFQlVHKCJcbiIpOworI2lmIDAKKwl1MzIgdG1wOworCisJdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1dQVFIpIHwgKDEgPDwgMzEpOworCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUiwgdG1wKTsKKyNlbmRpZgorfQorCisvKiBXYWl0IGZvciB0aGUgQ1AgdG8gZ28gaWRsZS4KKyAqLworaW50IHJhZGVvbl9kb19jcF9pZGxlKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJUklOR19MT0NBTFM7CisJRFJNX0RFQlVHKCJcbiIpOworCisJQkVHSU5fUklORyg2KTsKKworCVJBREVPTl9QVVJHRV9DQUNIRSgpOworCVJBREVPTl9QVVJHRV9aQ0FDSEUoKTsKKwlSQURFT05fV0FJVF9VTlRJTF9JRExFKCk7CisKKwlBRFZBTkNFX1JJTkcoKTsKKwlDT01NSVRfUklORygpOworCisJcmV0dXJuIHJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKK30KKworLyogU3RhcnQgdGhlIENvbW1hbmQgUHJvY2Vzc29yLgorICovCitzdGF0aWMgdm9pZCByYWRlb25fZG9fY3Bfc3RhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwlSSU5HX0xPQ0FMUzsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlyYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7CisKKwlSQURFT05fV1JJVEUoUkFERU9OX0NQX0NTUV9DTlRMLCBkZXZfcHJpdi0+Y3BfbW9kZSk7CisKKwlkZXZfcHJpdi0+Y3BfcnVubmluZyA9IDE7CisKKwlCRUdJTl9SSU5HKDYpOworCisJUkFERU9OX1BVUkdFX0NBQ0hFKCk7CisJUkFERU9OX1BVUkdFX1pDQUNIRSgpOworCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKKworCUFEVkFOQ0VfUklORygpOworCUNPTU1JVF9SSU5HKCk7Cit9CisKKy8qIFJlc2V0IHRoZSBDb21tYW5kIFByb2Nlc3Nvci4gIFRoaXMgd2lsbCBub3QgZmx1c2ggYW55IHBlbmRpbmcKKyAqIGNvbW1hbmRzLCBzbyB5b3UgbXVzdCB3YWl0IGZvciB0aGUgQ1AgY29tbWFuZCBzdHJlYW0gdG8gY29tcGxldGUKKyAqIGJlZm9yZSBjYWxsaW5nIHRoaXMgcm91dGluZS4KKyAqLworc3RhdGljIHZvaWQgcmFkZW9uX2RvX2NwX3Jlc2V0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJdTMyIGN1cl9yZWFkX3B0cjsKKwlEUk1fREVCVUcoIlxuIik7CisKKwljdXJfcmVhZF9wdHIgPSBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUik7CisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9XUFRSLCBjdXJfcmVhZF9wdHIpOworCVNFVF9SSU5HX0hFQUQoZGV2X3ByaXYsIGN1cl9yZWFkX3B0cik7CisJZGV2X3ByaXYtPnJpbmcudGFpbCA9IGN1cl9yZWFkX3B0cjsKK30KKworLyogU3RvcCB0aGUgQ29tbWFuZCBQcm9jZXNzb3IuICBUaGlzIHdpbGwgbm90IGZsdXNoIGFueSBwZW5kaW5nCisgKiBjb21tYW5kcywgc28geW91IG11c3QgZmx1c2ggdGhlIGNvbW1hbmQgc3RyZWFtIGFuZCB3YWl0IGZvciB0aGUgQ1AKKyAqIHRvIGdvIGlkbGUgYmVmb3JlIGNhbGxpbmcgdGhpcyByb3V0aW5lLgorICovCitzdGF0aWMgdm9pZCByYWRlb25fZG9fY3Bfc3RvcChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCURSTV9ERUJVRygiXG4iKTsKKworCVJBREVPTl9XUklURShSQURFT05fQ1BfQ1NRX0NOVEwsIFJBREVPTl9DU1FfUFJJRElTX0lORERJUyk7CisKKwlkZXZfcHJpdi0+Y3BfcnVubmluZyA9IDA7Cit9CisKKy8qIFJlc2V0IHRoZSBlbmdpbmUuICBUaGlzIHdpbGwgc3RvcCB0aGUgQ1AgaWYgaXQgaXMgcnVubmluZy4KKyAqLworc3RhdGljIGludCByYWRlb25fZG9fZW5naW5lX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJdTMyIGNsb2NrX2NudGxfaW5kZXggPSAwLCBtY2xrX2NudGwgPSAwLCByYmJtX3NvZnRfcmVzZXQ7CisJRFJNX0RFQlVHKCJcbiIpOworCisJcmFkZW9uX2RvX3BpeGNhY2hlX2ZsdXNoKGRldl9wcml2KTsKKworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA8PSBDSElQX1JWNDEwKSB7CisJCS8qIG1heSBuZWVkIHNvbWV0aGluZyBzaW1pbGFyIGZvciBuZXdlciBjaGlwcyAqLworCQljbG9ja19jbnRsX2luZGV4ID0gUkFERU9OX1JFQUQoUkFERU9OX0NMT0NLX0NOVExfSU5ERVgpOworCQltY2xrX2NudGwgPSBSQURFT05fUkVBRF9QTEwoZGV2LCBSQURFT05fTUNMS19DTlRMKTsKKworCQlSQURFT05fV1JJVEVfUExMKFJBREVPTl9NQ0xLX0NOVEwsIChtY2xrX2NudGwgfAorCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX01DTEtBIHwKKwkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9NQ0xLQiB8CisJCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fWUNMS0EgfAorCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX1lDTEtCIHwKKwkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9NQyB8CisJCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fQUlDKSk7CisJfQorCisJcmJibV9zb2Z0X3Jlc2V0ID0gUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU09GVF9SRVNFVCk7CisKKwlSQURFT05fV1JJVEUoUkFERU9OX1JCQk1fU09GVF9SRVNFVCwgKHJiYm1fc29mdF9yZXNldCB8CisJCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX0NQIHwKKwkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfSEkgfAorCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9TRSB8CisJCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX1JFIHwKKwkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfUFAgfAorCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9FMiB8CisJCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX1JCKSk7CisJUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU09GVF9SRVNFVCk7CisJUkFERU9OX1dSSVRFKFJBREVPTl9SQkJNX1NPRlRfUkVTRVQsIChyYmJtX3NvZnRfcmVzZXQgJgorCQkJCQkgICAgICB+KFJBREVPTl9TT0ZUX1JFU0VUX0NQIHwKKwkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX0hJIHwKKwkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1NFIHwKKwkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1JFIHwKKwkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1BQIHwKKwkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX0UyIHwKKwkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1JCKSkpOworCVJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NPRlRfUkVTRVQpOworCisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIDw9IENISVBfUlY0MTApIHsKKwkJUkFERU9OX1dSSVRFX1BMTChSQURFT05fTUNMS19DTlRMLCBtY2xrX2NudGwpOworCQlSQURFT05fV1JJVEUoUkFERU9OX0NMT0NLX0NOVExfSU5ERVgsIGNsb2NrX2NudGxfaW5kZXgpOworCQlSQURFT05fV1JJVEUoUkFERU9OX1JCQk1fU09GVF9SRVNFVCwgcmJibV9zb2Z0X3Jlc2V0KTsKKwl9CisKKwkvKiBzZXR1cCB0aGUgcmFzdGVyIHBpcGVzICovCisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID49IENISVBfUjMwMCkKKwkgICAgcmFkZW9uX2luaXRfcGlwZXMoZGV2X3ByaXYpOworCisJLyogUmVzZXQgdGhlIENQIHJpbmcgKi8KKwlyYWRlb25fZG9fY3BfcmVzZXQoZGV2X3ByaXYpOworCisJLyogVGhlIENQIGlzIG5vIGxvbmdlciBydW5uaW5nIGFmdGVyIGFuIGVuZ2luZSByZXNldCAqLworCWRldl9wcml2LT5jcF9ydW5uaW5nID0gMDsKKworCS8qIFJlc2V0IGFueSBwZW5kaW5nIHZlcnRleCwgaW5kaXJlY3QgYnVmZmVycyAqLworCXJhZGVvbl9mcmVlbGlzdF9yZXNldChkZXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9pbml0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAorCQkJCSAgICAgICBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCXUzMiByaW5nX3N0YXJ0LCBjdXJfcmVhZF9wdHI7CisJdTMyIHRtcDsKKworCS8qIEluaXRpYWxpemUgdGhlIG1lbW9yeSBjb250cm9sbGVyLiBXaXRoIG5ldyBtZW1vcnkgbWFwLCB0aGUgZmIgbG9jYXRpb24KKwkgKiBpcyBub3QgY2hhbmdlZCwgaXQgc2hvdWxkIGhhdmUgYmVlbiBwcm9wZXJseSBpbml0aWFsaXplZCBhbHJlYWR5LiBQYXJ0CisJICogb2YgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgY29kZSBiZWxvdyBpcyBib2d1cywgYXNzdW1pbmcgdGhlIEdBUlQgaXMKKwkgKiBhbHdheXMgYXBwZW5kZWQgdG8gdGhlIGZiIHdoaWNoIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgY2FzZQorCSAqLworCWlmICghZGV2X3ByaXYtPm5ld19tZW1tYXApCisJCXJhZGVvbl93cml0ZV9mYl9sb2NhdGlvbihkZXZfcHJpdiwKKwkJCSAgICAgKChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAtIDEpICYgMHhmZmZmMDAwMCkKKwkJCSAgICAgfCAoZGV2X3ByaXYtPmZiX2xvY2F0aW9uID4+IDE2KSk7CisKKyNpZiBfX09TX0hBU19BR1AKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgeworCQlyYWRlb25fd3JpdGVfYWdwX2Jhc2UoZGV2X3ByaXYsIGRldi0+YWdwLT5iYXNlKTsKKworCQlyYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRldl9wcml2LAorCQkJICAgICAoKChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAtIDEgKworCQkJCWRldl9wcml2LT5nYXJ0X3NpemUpICYgMHhmZmZmMDAwMCkgfAorCQkJICAgICAgKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ID4+IDE2KSkpOworCisJCXJpbmdfc3RhcnQgPSAoZGV2X3ByaXYtPmNwX3JpbmctPm9mZnNldAorCQkJICAgICAgLSBkZXYtPmFncC0+YmFzZQorCQkJICAgICAgKyBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisJfSBlbHNlCisjZW5kaWYKKwkJcmluZ19zdGFydCA9IChkZXZfcHJpdi0+Y3BfcmluZy0+b2Zmc2V0CisJCQkgICAgICAtICh1bnNpZ25lZCBsb25nKWRldi0+c2ctPnZpcnR1YWwKKwkJCSAgICAgICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOworCisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9CQVNFLCByaW5nX3N0YXJ0KTsKKworCS8qIFNldCB0aGUgd3JpdGUgcG9pbnRlciBkZWxheSAqLworCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUl9ERUxBWSwgMCk7CisKKwkvKiBJbml0aWFsaXplIHRoZSByaW5nIGJ1ZmZlcidzIHJlYWQgYW5kIHdyaXRlIHBvaW50ZXJzICovCisJY3VyX3JlYWRfcHRyID0gUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1JQVFIpOworCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUiwgY3VyX3JlYWRfcHRyKTsKKwlTRVRfUklOR19IRUFEKGRldl9wcml2LCBjdXJfcmVhZF9wdHIpOworCWRldl9wcml2LT5yaW5nLnRhaWwgPSBjdXJfcmVhZF9wdHI7CisKKyNpZiBfX09TX0hBU19BR1AKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgeworCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1JQVFJfQUREUiwKKwkJCSAgICAgZGV2X3ByaXYtPnJpbmdfcnB0ci0+b2Zmc2V0CisJCQkgICAgIC0gZGV2LT5hZ3AtPmJhc2UgKyBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisJfSBlbHNlCisjZW5kaWYKKwl7CisJCXN0cnVjdCBkcm1fc2dfbWVtICplbnRyeSA9IGRldi0+c2c7CisJCXVuc2lnbmVkIGxvbmcgdG1wX29mcywgcGFnZV9vZnM7CisKKwkJdG1wX29mcyA9IGRldl9wcml2LT5yaW5nX3JwdHItPm9mZnNldCAtCisJCQkJKHVuc2lnbmVkIGxvbmcpZGV2LT5zZy0+dmlydHVhbDsKKwkJcGFnZV9vZnMgPSB0bXBfb2ZzID4+IFBBR0VfU0hJRlQ7CisKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9SUFRSX0FERFIsIGVudHJ5LT5idXNhZGRyW3BhZ2Vfb2ZzXSk7CisJCURSTV9ERUJVRygicmluZyBycHRyOiBvZmZzZXQ9MHglMDhseCBoYW5kbGU9MHglMDhseFxuIiwKKwkJCSAgKHVuc2lnbmVkIGxvbmcpZW50cnktPmJ1c2FkZHJbcGFnZV9vZnNdLAorCQkJICBlbnRyeS0+aGFuZGxlICsgdG1wX29mcyk7CisJfQorCisJLyogU2V0IHJpbmcgYnVmZmVyIHNpemUgKi8KKyNpZmRlZiBfX0JJR19FTkRJQU4KKwlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX0NOVEwsCisJCSAgICAgUkFERU9OX0JVRl9TV0FQXzMyQklUIHwKKwkJICAgICAoZGV2X3ByaXYtPnJpbmcuZmV0Y2hfc2l6ZV9sMm93IDw8IDE4KSB8CisJCSAgICAgKGRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlX2wycXcgPDwgOCkgfAorCQkgICAgIGRldl9wcml2LT5yaW5nLnNpemVfbDJxdyk7CisjZWxzZQorCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfQ05UTCwKKwkJICAgICAoZGV2X3ByaXYtPnJpbmcuZmV0Y2hfc2l6ZV9sMm93IDw8IDE4KSB8CisJCSAgICAgKGRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlX2wycXcgPDwgOCkgfAorCQkgICAgIGRldl9wcml2LT5yaW5nLnNpemVfbDJxdyk7CisjZW5kaWYKKworCS8qIFN0YXJ0IHdpdGggYXNzdW1pbmcgdGhhdCB3cml0ZWJhY2sgZG9lc24ndCB3b3JrICovCisJZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA9IDA7CisKKwkvKiBJbml0aWFsaXplIHRoZSBzY3JhdGNoIHJlZ2lzdGVyIHBvaW50ZXIuICBUaGlzIHdpbGwgY2F1c2UKKwkgKiB0aGUgc2NyYXRjaCByZWdpc3RlciB2YWx1ZXMgdG8gYmUgd3JpdHRlbiBvdXQgdG8gbWVtb3J5CisJICogd2hlbmV2ZXIgdGhleSBhcmUgdXBkYXRlZC4KKwkgKgorCSAqIFdlIHNpbXBseSBwdXQgdGhpcyBiZWhpbmQgdGhlIHJpbmcgcmVhZCBwb2ludGVyLCB0aGlzIHdvcmtzCisJICogd2l0aCBQQ0kgR0FSVCBhcyB3ZWxsIGFzICh3aGF0ZXZlciBraW5kIG9mKSBBR1AgR0FSVAorCSAqLworCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9BRERSLCBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUl9BRERSKQorCQkgICAgICsgUkFERU9OX1NDUkFUQ0hfUkVHX09GRlNFVCk7CisKKwlkZXZfcHJpdi0+c2NyYXRjaCA9ICgoX192b2xhdGlsZV9fIHUzMiAqKQorCQkJICAgICBkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUgKworCQkJICAgICAoUkFERU9OX1NDUkFUQ0hfUkVHX09GRlNFVCAvIHNpemVvZih1MzIpKSk7CisKKwlSQURFT05fV1JJVEUoUkFERU9OX1NDUkFUQ0hfVU1TSywgMHg3KTsKKworCS8qIFR1cm4gb24gYnVzIG1hc3RlcmluZyAqLworCXRtcCA9IFJBREVPTl9SRUFEKFJBREVPTl9CVVNfQ05UTCkgJiB+UkFERU9OX0JVU19NQVNURVJfRElTOworCVJBREVPTl9XUklURShSQURFT05fQlVTX0NOVEwsIHRtcCk7CisKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSA9IGRldl9wcml2LT5zY3JhdGNoWzBdID0gMDsKKwlSQURFT05fV1JJVEUoUkFERU9OX0xBU1RfRlJBTUVfUkVHLCBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSk7CisKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCA9IGRldl9wcml2LT5zY3JhdGNoWzFdID0gMDsKKwlSQURFT05fV1JJVEUoUkFERU9OX0xBU1RfRElTUEFUQ0hfUkVHLAorCQkgICAgIGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoKTsKKworCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2NsZWFyID0gZGV2X3ByaXYtPnNjcmF0Y2hbMl0gPSAwOworCVJBREVPTl9XUklURShSQURFT05fTEFTVF9DTEVBUl9SRUcsIGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2NsZWFyKTsKKworCXJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKKworCS8qIFN5bmMgZXZlcnl0aGluZyB1cCAqLworCVJBREVPTl9XUklURShSQURFT05fSVNZTkNfQ05UTCwKKwkJICAgICAoUkFERU9OX0lTWU5DX0FOWTJEX0lETEUzRCB8CisJCSAgICAgIFJBREVPTl9JU1lOQ19BTlkzRF9JRExFMkQgfAorCQkgICAgICBSQURFT05fSVNZTkNfV0FJVF9JRExFR1VJIHwKKwkJICAgICAgUkFERU9OX0lTWU5DX0NQU0NSQVRDSF9JRExFR1VJKSk7CisKK30KKworc3RhdGljIHZvaWQgcmFkZW9uX3Rlc3Rfd3JpdGViYWNrKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJdTMyIHRtcDsKKworCS8qIFdyaXRlYmFjayBkb2Vzbid0IHNlZW0gdG8gd29yayBldmVyeXdoZXJlLCB0ZXN0IGl0IGhlcmUgYW5kIHBvc3NpYmx5CisJICogZW5hYmxlIGl0IGlmIGl0IGFwcGVhcnMgdG8gd29yaworCSAqLworCURSTV9XUklURTMyKGRldl9wcml2LT5yaW5nX3JwdHIsIFJBREVPTl9TQ1JBVENIT0ZGKDEpLCAwKTsKKwlSQURFT05fV1JJVEUoUkFERU9OX1NDUkFUQ0hfUkVHMSwgMHhkZWFkYmVlZik7CisKKwlmb3IgKHRtcCA9IDA7IHRtcCA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IHRtcCsrKSB7CisJCWlmIChEUk1fUkVBRDMyKGRldl9wcml2LT5yaW5nX3JwdHIsIFJBREVPTl9TQ1JBVENIT0ZGKDEpKSA9PQorCQkgICAgMHhkZWFkYmVlZikKKwkJCWJyZWFrOworCQlEUk1fVURFTEFZKDEpOworCX0KKworCWlmICh0bXAgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0KSB7CisJCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAxOworCQlEUk1fSU5GTygid3JpdGViYWNrIHRlc3Qgc3VjY2VlZGVkIGluICVkIHVzZWNzXG4iLCB0bXApOworCX0gZWxzZSB7CisJCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAwOworCQlEUk1fSU5GTygid3JpdGViYWNrIHRlc3QgZmFpbGVkXG4iKTsKKwl9CisJaWYgKHJhZGVvbl9ub193YiA9PSAxKSB7CisJCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAwOworCQlEUk1fSU5GTygid3JpdGViYWNrIGZvcmNlZCBvZmZcbiIpOworCX0KKworCWlmICghZGV2X3ByaXYtPndyaXRlYmFja193b3JrcykgeworCQkvKiBEaXNhYmxlIHdyaXRlYmFjayB0byBhdm9pZCB1bm5lY2Vzc2FyeSBidXMgbWFzdGVyIHRyYW5zZmVyICovCisJCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfQ05UTCwgUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX0NOVEwpIHwKKwkJCSAgICAgUkFERU9OX1JCX05PX1VQREFURSk7CisJCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9VTVNLLCAwKTsKKwl9Cit9CisKKy8qIEVuYWJsZSBvciBkaXNhYmxlIElHUCBHQVJUIG9uIHRoZSBjaGlwICovCitzdGF0aWMgdm9pZCByYWRlb25fc2V0X2lncGdhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IG9uKQoreworCXUzMiB0ZW1wOworCisJaWYgKG9uKSB7CisJCURSTV9ERUJVRygicHJvZ3JhbW1pbmcgaWdwIGdhcnQgJTA4WCAlMDhsWCAlMDhYXG4iLAorCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCwKKwkJCSAgKGxvbmcpZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkciwKKwkJCSAgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7CisKKwkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9NQ19NSVNDX0NOVEwpOworCQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKKwkJCUlHUF9XUklURV9NQ0lORChSUzQ4MF9NQ19NSVNDX0NOVEwsIChSUzQ4MF9HQVJUX0lOREVYX1JFR19FTiB8CisJCQkJCQkJICAgICBSUzY5MF9CTE9DS19HRlhfRDNfRU4pKTsKKwkJZWxzZQorCQkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX01DX01JU0NfQ05UTCwgUlM0ODBfR0FSVF9JTkRFWF9SRUdfRU4pOworCisJCUlHUF9XUklURV9NQ0lORChSUzQ4MF9BR1BfQUREUkVTU19TUEFDRV9TSVpFLCAoUlM0ODBfR0FSVF9FTiB8CisJCQkJCQkJICAgICAgIFJTNDgwX1ZBX1NJWkVfMzJNQikpOworCisJCXRlbXAgPSBJR1BfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM0ODBfR0FSVF9GRUFUVVJFX0lEKTsKKwkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0dBUlRfRkVBVFVSRV9JRCwgKFJTNDgwX0hBTkdfRU4gfAorCQkJCQkJCVJTNDgwX1RMQl9FTkFCTEUgfAorCQkJCQkJCVJTNDgwX0dUV19MQUNfRU4gfAorCQkJCQkJCVJTNDgwXzFMRVZFTF9HQVJUKSk7CisKKwkJdGVtcCA9IGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIgJiAweGZmZmZmMDAwOworCQl0ZW1wIHw9ICh1cHBlcl8zMl9iaXRzKGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpICYgMHhmZikgPDwgNDsKKwkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0dBUlRfQkFTRSwgdGVtcCk7CisKKwkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9BR1BfTU9ERV9DTlRMKTsKKwkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0FHUF9NT0RFX0NOVEwsICgoMSA8PCBSUzQ4MF9SRVFfVFlQRV9TTk9PUF9TSElGVCkgfAorCQkJCQkJICAgICAgUlM0ODBfUkVRX1RZUEVfU05PT1BfRElTKSk7CisKKwkJcmFkZW9uX3dyaXRlX2FncF9iYXNlKGRldl9wcml2LCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisKKwkJZGV2X3ByaXYtPmdhcnRfc2l6ZSA9IDMyKjEwMjQqMTAyNDsKKwkJdGVtcCA9ICgoKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IC0gMSArIGRldl9wcml2LT5nYXJ0X3NpemUpICYKKwkJCSAweGZmZmYwMDAwKSB8IChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA+PiAxNikpOworCisJCXJhZGVvbl93cml0ZV9hZ3BfbG9jYXRpb24oZGV2X3ByaXYsIHRlbXApOworCisJCXRlbXAgPSBJR1BfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM0ODBfQUdQX0FERFJFU1NfU1BBQ0VfU0laRSk7CisJCUlHUF9XUklURV9NQ0lORChSUzQ4MF9BR1BfQUREUkVTU19TUEFDRV9TSVpFLCAoUlM0ODBfR0FSVF9FTiB8CisJCQkJCQkJICAgICAgIFJTNDgwX1ZBX1NJWkVfMzJNQikpOworCisJCWRvIHsKKwkJCXRlbXAgPSBJR1BfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM0ODBfR0FSVF9DQUNIRV9DTlRSTCk7CisJCQlpZiAoKHRlbXAgJiBSUzQ4MF9HQVJUX0NBQ0hFX0lOVkFMSURBVEUpID09IDApCisJCQkJYnJlYWs7CisJCQlEUk1fVURFTEFZKDEpOworCQl9IHdoaWxlICgxKTsKKworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfR0FSVF9DQUNIRV9DTlRSTCwKKwkJCQlSUzQ4MF9HQVJUX0NBQ0hFX0lOVkFMSURBVEUpOworCisJCWRvIHsKKwkJCXRlbXAgPSBJR1BfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM0ODBfR0FSVF9DQUNIRV9DTlRSTCk7CisJCQlpZiAoKHRlbXAgJiBSUzQ4MF9HQVJUX0NBQ0hFX0lOVkFMSURBVEUpID09IDApCisJCQkJYnJlYWs7CisJCQlEUk1fVURFTEFZKDEpOworCQl9IHdoaWxlICgxKTsKKworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfR0FSVF9DQUNIRV9DTlRSTCwgMCk7CisJfSBlbHNlIHsKKwkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0FHUF9BRERSRVNTX1NQQUNFX1NJWkUsIDApOworCX0KK30KKworc3RhdGljIHZvaWQgcmFkZW9uX3NldF9wY2llZ2FydChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LCBpbnQgb24pCit7CisJdTMyIHRtcCA9IFJBREVPTl9SRUFEX1BDSUUoZGV2X3ByaXYsIFJBREVPTl9QQ0lFX1RYX0dBUlRfQ05UTCk7CisJaWYgKG9uKSB7CisKKwkJRFJNX0RFQlVHKCJwcm9ncmFtbWluZyBwY2llICUwOFggJTA4bFggJTA4WFxuIiwKKwkJCSAgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQsCisJCQkgIChsb25nKWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIsCisJCQkgIGRldl9wcml2LT5nYXJ0X3NpemUpOworCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9ESVNDQVJEX1JEX0FERFJfTE8sCisJCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfQkFTRSwKKwkJCQkgIGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpOworCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9HQVJUX1NUQVJUX0xPLAorCQkJCSAgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOworCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9HQVJUX0VORF9MTywKKwkJCQkgIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ICsKKwkJCQkgIGRldl9wcml2LT5nYXJ0X3NpemUgLSAxKTsKKworCQlyYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRldl9wcml2LCAweGZmZmZmZmMwKTsgLyogPz8gKi8KKworCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9HQVJUX0NOVEwsCisJCQkJICBSQURFT05fUENJRV9UWF9HQVJUX0VOKTsKKwl9IGVsc2UgeworCQlSQURFT05fV1JJVEVfUENJRShSQURFT05fUENJRV9UWF9HQVJUX0NOVEwsCisJCQkJICB0bXAgJiB+UkFERU9OX1BDSUVfVFhfR0FSVF9FTik7CisJfQorfQorCisvKiBFbmFibGUgb3IgZGlzYWJsZSBQQ0kgR0FSVCBvbiB0aGUgY2hpcCAqLworc3RhdGljIHZvaWQgcmFkZW9uX3NldF9wY2lnYXJ0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBvbikKK3sKKwl1MzIgdG1wOworCisJaWYgKCgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKSB8fAorCSAgICAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0lHUEdBUlQpKSB7CisJCXJhZGVvbl9zZXRfaWdwZ2FydChkZXZfcHJpdiwgb24pOworCQlyZXR1cm47CisJfQorCisJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKSB7CisJCXJhZGVvbl9zZXRfcGNpZWdhcnQoZGV2X3ByaXYsIG9uKTsKKwkJcmV0dXJuOworCX0KKworCXRtcCA9IFJBREVPTl9SRUFEKFJBREVPTl9BSUNfQ05UTCk7CisKKwlpZiAob24pIHsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfQ05UTCwKKwkJCSAgICAgdG1wIHwgUkFERU9OX1BDSUdBUlRfVFJBTlNMQVRFX0VOKTsKKworCQkvKiBzZXQgUENJIEdBUlQgcGFnZS10YWJsZSBiYXNlIGFkZHJlc3MKKwkJICovCisJCVJBREVPTl9XUklURShSQURFT05fQUlDX1BUX0JBU0UsIGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpOworCisJCS8qIHNldCBhZGRyZXNzIHJhbmdlIGZvciBQQ0kgYWRkcmVzcyB0cmFuc2xhdGUKKwkJICovCisJCVJBREVPTl9XUklURShSQURFT05fQUlDX0xPX0FERFIsIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfSElfQUREUiwgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQKKwkJCSAgICAgKyBkZXZfcHJpdi0+Z2FydF9zaXplIC0gMSk7CisKKwkJLyogVHVybiBvZmYgQUdQIGFwZXJ0dXJlIC0tIGlzIHRoaXMgcmVxdWlyZWQgZm9yIFBDSSBHQVJUPworCQkgKi8KKwkJcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkZXZfcHJpdiwgMHhmZmZmZmZjMCk7CisJCVJBREVPTl9XUklURShSQURFT05fQUdQX0NPTU1BTkQsIDApOwkvKiBjbGVhciBBR1BfQ09NTUFORCAqLworCX0gZWxzZSB7CisJCVJBREVPTl9XUklURShSQURFT05fQUlDX0NOVEwsCisJCQkgICAgIHRtcCAmIH5SQURFT05fUENJR0FSVF9UUkFOU0xBVEVfRU4pOworCX0KK30KKworc3RhdGljIGludCByYWRlb25fZG9faW5pdF9jcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgZHJtX3JhZGVvbl9pbml0X3QgKiBpbml0KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwkvKiBpZiB3ZSByZXF1aXJlIG5ldyBtZW1vcnkgbWFwIGJ1dCB3ZSBkb24ndCBoYXZlIGl0IGZhaWwgKi8KKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9ORVdfTUVNTUFQKSAmJiAhZGV2X3ByaXYtPm5ld19tZW1tYXApIHsKKwkJRFJNX0VSUk9SKCJDYW5ub3QgaW5pdGlhbGlzZSBEUk0gb24gdGhpcyBjYXJkXG5UaGlzIGNhcmQgcmVxdWlyZXMgYSBuZXcgWC5vcmcgRERYIGZvciAzRFxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChpbml0LT5pc19wY2kgJiYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApKSB7CisJCURSTV9ERUJVRygiRm9yY2luZyBBR1AgY2FyZCB0byBQQ0kgbW9kZVxuIik7CisJCWRldl9wcml2LT5mbGFncyAmPSB+UkFERU9OX0lTX0FHUDsKKwl9IGVsc2UgaWYgKCEoZGV2X3ByaXYtPmZsYWdzICYgKFJBREVPTl9JU19BR1AgfCBSQURFT05fSVNfUENJIHwgUkFERU9OX0lTX1BDSUUpKQorCQkgICAmJiAhaW5pdC0+aXNfcGNpKSB7CisJCURSTV9ERUJVRygiUmVzdG9yaW5nIEFHUCBmbGFnXG4iKTsKKwkJZGV2X3ByaXYtPmZsYWdzIHw9IFJBREVPTl9JU19BR1A7CisJfQorCisJaWYgKCghKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApKSAmJiAhZGV2LT5zZykgeworCQlEUk1fRVJST1IoIlBDSSBHQVJUIG1lbW9yeSBub3QgYWxsb2NhdGVkIVxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldl9wcml2LT51c2VjX3RpbWVvdXQgPSBpbml0LT51c2VjX3RpbWVvdXQ7CisJaWYgKGRldl9wcml2LT51c2VjX3RpbWVvdXQgPCAxIHx8CisJICAgIGRldl9wcml2LT51c2VjX3RpbWVvdXQgPiBSQURFT05fTUFYX1VTRUNfVElNRU9VVCkgeworCQlEUk1fREVCVUcoIlRJTUVPVVQgcHJvYmxlbSFcbiIpOworCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBFbmFibGUgdmJsYW5rIG9uIENSVEMxIGZvciBvbGRlciBYIHNlcnZlcnMKKwkgKi8KKwlkZXZfcHJpdi0+dmJsYW5rX2NydGMgPSBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMTsKKworCXN3aXRjaChpbml0LT5mdW5jKSB7CisJY2FzZSBSQURFT05fSU5JVF9SMjAwX0NQOgorCQlkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPSBVQ09ERV9SMjAwOworCQlicmVhazsKKwljYXNlIFJBREVPTl9JTklUX1IzMDBfQ1A6CisJCWRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9IFVDT0RFX1IzMDA7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9IFVDT0RFX1IxMDA7CisJfQorCisJZGV2X3ByaXYtPmRvX2JveGVzID0gMDsKKwlkZXZfcHJpdi0+Y3BfbW9kZSA9IGluaXQtPmNwX21vZGU7CisKKwkvKiBXZSBkb24ndCBzdXBwb3J0IGFueXRoaW5nIG90aGVyIHRoYW4gYnVzLW1hc3RlcmluZyByaW5nIG1vZGUsCisJICogYnV0IHRoZSByaW5nIGNhbiBiZSBpbiBlaXRoZXIgQUdQIG9yIFBDSSBzcGFjZSBmb3IgdGhlIHJpbmcKKwkgKiByZWFkIHBvaW50ZXIuCisJICovCisJaWYgKChpbml0LT5jcF9tb2RlICE9IFJBREVPTl9DU1FfUFJJQk1fSU5ERElTKSAmJgorCSAgICAoaW5pdC0+Y3BfbW9kZSAhPSBSQURFT05fQ1NRX1BSSUJNX0lOREJNKSkgeworCQlEUk1fREVCVUcoIkJBRCBjcF9tb2RlICgleCkhXG4iLCBpbml0LT5jcF9tb2RlKTsKKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJc3dpdGNoIChpbml0LT5mYl9icHApIHsKKwljYXNlIDE2OgorCQlkZXZfcHJpdi0+Y29sb3JfZm10ID0gUkFERU9OX0NPTE9SX0ZPUk1BVF9SR0I1NjU7CisJCWJyZWFrOworCWNhc2UgMzI6CisJZGVmYXVsdDoKKwkJZGV2X3ByaXYtPmNvbG9yX2ZtdCA9IFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjg4ODg7CisJCWJyZWFrOworCX0KKwlkZXZfcHJpdi0+ZnJvbnRfb2Zmc2V0ID0gaW5pdC0+ZnJvbnRfb2Zmc2V0OworCWRldl9wcml2LT5mcm9udF9waXRjaCA9IGluaXQtPmZyb250X3BpdGNoOworCWRldl9wcml2LT5iYWNrX29mZnNldCA9IGluaXQtPmJhY2tfb2Zmc2V0OworCWRldl9wcml2LT5iYWNrX3BpdGNoID0gaW5pdC0+YmFja19waXRjaDsKKworCXN3aXRjaCAoaW5pdC0+ZGVwdGhfYnBwKSB7CisJY2FzZSAxNjoKKwkJZGV2X3ByaXYtPmRlcHRoX2ZtdCA9IFJBREVPTl9ERVBUSF9GT1JNQVRfMTZCSVRfSU5UX1o7CisJCWJyZWFrOworCWNhc2UgMzI6CisJZGVmYXVsdDoKKwkJZGV2X3ByaXYtPmRlcHRoX2ZtdCA9IFJBREVPTl9ERVBUSF9GT1JNQVRfMjRCSVRfSU5UX1o7CisJCWJyZWFrOworCX0KKwlkZXZfcHJpdi0+ZGVwdGhfb2Zmc2V0ID0gaW5pdC0+ZGVwdGhfb2Zmc2V0OworCWRldl9wcml2LT5kZXB0aF9waXRjaCA9IGluaXQtPmRlcHRoX3BpdGNoOworCisJLyogSGFyZHdhcmUgc3RhdGUgZm9yIGRlcHRoIGNsZWFycy4gIFJlbW92ZSB0aGlzIGlmL3doZW4gd2Ugbm8KKwkgKiBsb25nZXIgY2xlYXIgdGhlIGRlcHRoIGJ1ZmZlciB3aXRoIGEgM0QgcmVjdGFuZ2xlLiAgSGFyZC1jb2RlCisJICogYWxsIHZhbHVlcyB0byBwcmV2ZW50IHVud2FudGVkIDNEIHN0YXRlIGZyb20gc2xpcHBpbmcgdGhyb3VnaAorCSAqIGFuZCBzY3Jld2luZyB3aXRoIHRoZSBjbGVhciBvcGVyYXRpb24uCisJICovCisJZGV2X3ByaXYtPmRlcHRoX2NsZWFyLnJiM2RfY250bCA9IChSQURFT05fUExBTkVfTUFTS19FTkFCTEUgfAorCQkJCQkgICAoZGV2X3ByaXYtPmNvbG9yX2ZtdCA8PCAxMCkgfAorCQkJCQkgICAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09CisJCQkJCSAgICBVQ09ERV9SMTAwID8gUkFERU9OX1pCTE9DSzE2IDogMCkpOworCisJZGV2X3ByaXYtPmRlcHRoX2NsZWFyLnJiM2RfenN0ZW5jaWxjbnRsID0KKwkgICAgKGRldl9wcml2LT5kZXB0aF9mbXQgfAorCSAgICAgUkFERU9OX1pfVEVTVF9BTFdBWVMgfAorCSAgICAgUkFERU9OX1NURU5DSUxfVEVTVF9BTFdBWVMgfAorCSAgICAgUkFERU9OX1NURU5DSUxfU19GQUlMX1JFUExBQ0UgfAorCSAgICAgUkFERU9OX1NURU5DSUxfWlBBU1NfUkVQTEFDRSB8CisJICAgICBSQURFT05fU1RFTkNJTF9aRkFJTF9SRVBMQUNFIHwgUkFERU9OX1pfV1JJVEVfRU5BQkxFKTsKKworCWRldl9wcml2LT5kZXB0aF9jbGVhci5zZV9jbnRsID0gKFJBREVPTl9GRkFDRV9DVUxMX0NXIHwKKwkJCQkJIFJBREVPTl9CRkFDRV9TT0xJRCB8CisJCQkJCSBSQURFT05fRkZBQ0VfU09MSUQgfAorCQkJCQkgUkFERU9OX0ZMQVRfU0hBREVfVlRYX0xBU1QgfAorCQkJCQkgUkFERU9OX0RJRkZVU0VfU0hBREVfRkxBVCB8CisJCQkJCSBSQURFT05fQUxQSEFfU0hBREVfRkxBVCB8CisJCQkJCSBSQURFT05fU1BFQ1VMQVJfU0hBREVfRkxBVCB8CisJCQkJCSBSQURFT05fRk9HX1NIQURFX0ZMQVQgfAorCQkJCQkgUkFERU9OX1ZUWF9QSVhfQ0VOVEVSX09HTCB8CisJCQkJCSBSQURFT05fUk9VTkRfTU9ERV9UUlVOQyB8CisJCQkJCSBSQURFT05fUk9VTkRfUFJFQ184VEhfUElYKTsKKworCisJZGV2X3ByaXYtPnJpbmdfb2Zmc2V0ID0gaW5pdC0+cmluZ19vZmZzZXQ7CisJZGV2X3ByaXYtPnJpbmdfcnB0cl9vZmZzZXQgPSBpbml0LT5yaW5nX3JwdHJfb2Zmc2V0OworCWRldl9wcml2LT5idWZmZXJzX29mZnNldCA9IGluaXQtPmJ1ZmZlcnNfb2Zmc2V0OworCWRldl9wcml2LT5nYXJ0X3RleHR1cmVzX29mZnNldCA9IGluaXQtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0OworCisJZGV2X3ByaXYtPnNhcmVhID0gZHJtX2dldHNhcmVhKGRldik7CisJaWYgKCFkZXZfcHJpdi0+c2FyZWEpIHsKKwkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBzYXJlYSFcbiIpOworCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlkZXZfcHJpdi0+Y3BfcmluZyA9IGRybV9jb3JlX2ZpbmRtYXAoZGV2LCBpbml0LT5yaW5nX29mZnNldCk7CisJaWYgKCFkZXZfcHJpdi0+Y3BfcmluZykgeworCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIGNwIHJpbmcgcmVnaW9uIVxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlkZXZfcHJpdi0+cmluZ19ycHRyID0gZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPnJpbmdfcnB0cl9vZmZzZXQpOworCWlmICghZGV2X3ByaXYtPnJpbmdfcnB0cikgeworCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIHJpbmcgcmVhZCBwb2ludGVyIVxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlkZXYtPmFncF9idWZmZXJfdG9rZW4gPSBpbml0LT5idWZmZXJzX29mZnNldDsKKwlkZXYtPmFncF9idWZmZXJfbWFwID0gZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPmJ1ZmZlcnNfb2Zmc2V0KTsKKwlpZiAoIWRldi0+YWdwX2J1ZmZlcl9tYXApIHsKKwkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBkbWEgYnVmZmVyIHJlZ2lvbiFcbiIpOworCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoaW5pdC0+Z2FydF90ZXh0dXJlc19vZmZzZXQpIHsKKwkJZGV2X3ByaXYtPmdhcnRfdGV4dHVyZXMgPQorCQkgICAgZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0KTsKKwkJaWYgKCFkZXZfcHJpdi0+Z2FydF90ZXh0dXJlcykgeworCQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBHQVJUIHRleHR1cmUgcmVnaW9uIVxuIik7CisJCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdiA9CisJICAgIChkcm1fcmFkZW9uX3NhcmVhX3QgKikgKCh1OCAqKSBkZXZfcHJpdi0+c2FyZWEtPmhhbmRsZSArCisJCQkJICAgIGluaXQtPnNhcmVhX3ByaXZfb2Zmc2V0KTsKKworI2lmIF9fT1NfSEFTX0FHUAorCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCWRybV9jb3JlX2lvcmVtYXAoZGV2X3ByaXYtPmNwX3JpbmcsIGRldik7CisJCWRybV9jb3JlX2lvcmVtYXAoZGV2X3ByaXYtPnJpbmdfcnB0ciwgZGV2KTsKKwkJZHJtX2NvcmVfaW9yZW1hcChkZXYtPmFncF9idWZmZXJfbWFwLCBkZXYpOworCQlpZiAoIWRldl9wcml2LT5jcF9yaW5nLT5oYW5kbGUgfHwKKwkJICAgICFkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUgfHwKKwkJICAgICFkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUpIHsKKwkJCURSTV9FUlJPUigiY291bGQgbm90IGZpbmQgaW9yZW1hcCBhZ3AgcmVnaW9ucyFcbiIpOworCQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJfSBlbHNlCisjZW5kaWYKKwl7CisJCWRldl9wcml2LT5jcF9yaW5nLT5oYW5kbGUgPSAodm9pZCAqKWRldl9wcml2LT5jcF9yaW5nLT5vZmZzZXQ7CisJCWRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSA9CisJCSAgICAodm9pZCAqKWRldl9wcml2LT5yaW5nX3JwdHItPm9mZnNldDsKKwkJZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlID0KKwkJICAgICh2b2lkICopZGV2LT5hZ3BfYnVmZmVyX21hcC0+b2Zmc2V0OworCisJCURSTV9ERUJVRygiZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSAlcFxuIiwKKwkJCSAgZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSk7CisJCURSTV9ERUJVRygiZGV2X3ByaXYtPnJpbmdfcnB0ci0+aGFuZGxlICVwXG4iLAorCQkJICBkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUpOworCQlEUk1fREVCVUcoImRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZSAlcFxuIiwKKwkJCSAgZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlKTsKKwl9CisKKwlkZXZfcHJpdi0+ZmJfbG9jYXRpb24gPSAocmFkZW9uX3JlYWRfZmJfbG9jYXRpb24oZGV2X3ByaXYpICYgMHhmZmZmKSA8PCAxNjsKKwlkZXZfcHJpdi0+ZmJfc2l6ZSA9CisJCSgocmFkZW9uX3JlYWRfZmJfbG9jYXRpb24oZGV2X3ByaXYpICYgMHhmZmZmMDAwMHUpICsgMHgxMDAwMCkKKwkJLSBkZXZfcHJpdi0+ZmJfbG9jYXRpb247CisKKwlkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0ID0gKCgoZGV2X3ByaXYtPmZyb250X3BpdGNoIC8gNjQpIDw8IDIyKSB8CisJCQkJCSgoZGV2X3ByaXYtPmZyb250X29mZnNldAorCQkJCQkgICsgZGV2X3ByaXYtPmZiX2xvY2F0aW9uKSA+PiAxMCkpOworCisJZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0ID0gKCgoZGV2X3ByaXYtPmJhY2tfcGl0Y2ggLyA2NCkgPDwgMjIpIHwKKwkJCQkgICAgICAgKChkZXZfcHJpdi0+YmFja19vZmZzZXQKKwkJCQkJICsgZGV2X3ByaXYtPmZiX2xvY2F0aW9uKSA+PiAxMCkpOworCisJZGV2X3ByaXYtPmRlcHRoX3BpdGNoX29mZnNldCA9ICgoKGRldl9wcml2LT5kZXB0aF9waXRjaCAvIDY0KSA8PCAyMikgfAorCQkJCQkoKGRldl9wcml2LT5kZXB0aF9vZmZzZXQKKwkJCQkJICArIGRldl9wcml2LT5mYl9sb2NhdGlvbikgPj4gMTApKTsKKworCWRldl9wcml2LT5nYXJ0X3NpemUgPSBpbml0LT5nYXJ0X3NpemU7CisKKwkvKiBOZXcgbGV0J3Mgc2V0IHRoZSBtZW1vcnkgbWFwIC4uLiAqLworCWlmIChkZXZfcHJpdi0+bmV3X21lbW1hcCkgeworCQl1MzIgYmFzZSA9IDA7CisKKwkJRFJNX0lORk8oIlNldHRpbmcgR0FSVCBsb2NhdGlvbiBiYXNlZCBvbiBuZXcgbWVtb3J5IG1hcFxuIik7CisKKwkJLyogSWYgdXNpbmcgQUdQLCB0cnkgdG8gbG9jYXRlIHRoZSBBR1AgYXBlcnR1cmUgYXQgdGhlIHNhbWUKKwkJICogbG9jYXRpb24gaW4gdGhlIGNhcmQgYW5kIG9uIHRoZSBidXMsIHRob3VnaCB3ZSBoYXZlIHRvCisJCSAqIGFsaWduIGl0IGRvd24uCisJCSAqLworI2lmIF9fT1NfSEFTX0FHUAorCQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgeworCQkJYmFzZSA9IGRldi0+YWdwLT5iYXNlOworCQkJLyogQ2hlY2sgaWYgdmFsaWQgKi8KKwkJCWlmICgoYmFzZSArIGRldl9wcml2LT5nYXJ0X3NpemUgLSAxKSA+PSBkZXZfcHJpdi0+ZmJfbG9jYXRpb24gJiYKKwkJCSAgICBiYXNlIDwgKGRldl9wcml2LT5mYl9sb2NhdGlvbiArIGRldl9wcml2LT5mYl9zaXplIC0gMSkpIHsKKwkJCQlEUk1fSU5GTygiQ2FuJ3QgdXNlIEFHUCBiYXNlIEAweCUwOGx4LCB3b24ndCBmaXRcbiIsCisJCQkJCSBkZXYtPmFncC0+YmFzZSk7CisJCQkJYmFzZSA9IDA7CisJCQl9CisJCX0KKyNlbmRpZgorCQkvKiBJZiBub3Qgb3IgaWYgQUdQIGlzIGF0IDAgKE1hY3MpLCB0cnkgdG8gcHV0IGl0IGVsc2V3aGVyZSAqLworCQlpZiAoYmFzZSA9PSAwKSB7CisJCQliYXNlID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsgZGV2X3ByaXYtPmZiX3NpemU7CisJCQlpZiAoYmFzZSA8IGRldl9wcml2LT5mYl9sb2NhdGlvbiB8fAorCQkJICAgICgoYmFzZSArIGRldl9wcml2LT5nYXJ0X3NpemUpICYgMHhmZmZmZmZmZnVsKSA8IGJhc2UpCisJCQkJYmFzZSA9IGRldl9wcml2LT5mYl9sb2NhdGlvbgorCQkJCQktIGRldl9wcml2LT5nYXJ0X3NpemU7CisJCX0KKwkJZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgPSBiYXNlICYgMHhmZmMwMDAwMHU7CisJCWlmIChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAhPSBiYXNlKQorCQkJRFJNX0lORk8oIkdBUlQgYWxpZ25lZCBkb3duIGZyb20gMHglMDh4IHRvIDB4JTA4eFxuIiwKKwkJCQkgYmFzZSwgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOworCX0gZWxzZSB7CisJCURSTV9JTkZPKCJTZXR0aW5nIEdBUlQgbG9jYXRpb24gYmFzZWQgb24gb2xkIG1lbW9yeSBtYXBcbiIpOworCQlkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA9IGRldl9wcml2LT5mYl9sb2NhdGlvbiArCisJCQlSQURFT05fUkVBRChSQURFT05fQ09ORklHX0FQRVJfU0laRSk7CisJfQorCisjaWYgX19PU19IQVNfQUdQCisJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApCisJCWRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0ID0gKGRldi0+YWdwX2J1ZmZlcl9tYXAtPm9mZnNldAorCQkJCQkJIC0gZGV2LT5hZ3AtPmJhc2UKKwkJCQkJCSArIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwllbHNlCisjZW5kaWYKKwkJZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQgPSAoZGV2LT5hZ3BfYnVmZmVyX21hcC0+b2Zmc2V0CisJCQkJCS0gKHVuc2lnbmVkIGxvbmcpZGV2LT5zZy0+dmlydHVhbAorCQkJCQkrIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKworCURSTV9ERUJVRygiZGV2X3ByaXYtPmdhcnRfc2l6ZSAlZFxuIiwgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7CisJRFJNX0RFQlVHKCJkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAweCV4XG4iLCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisJRFJNX0RFQlVHKCJkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCAweCVseFxuIiwKKwkJICBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCk7CisKKwlkZXZfcHJpdi0+cmluZy5zdGFydCA9ICh1MzIgKikgZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZTsKKwlkZXZfcHJpdi0+cmluZy5lbmQgPSAoKHUzMiAqKSBkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlCisJCQkgICAgICArIGluaXQtPnJpbmdfc2l6ZSAvIHNpemVvZih1MzIpKTsKKwlkZXZfcHJpdi0+cmluZy5zaXplID0gaW5pdC0+cmluZ19zaXplOworCWRldl9wcml2LT5yaW5nLnNpemVfbDJxdyA9IGRybV9vcmRlcihpbml0LT5yaW5nX3NpemUgLyA4KTsKKworCWRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlID0gLyogaW5pdC0+cnB0cl91cGRhdGUgKi8gNDA5NjsKKwlkZXZfcHJpdi0+cmluZy5ycHRyX3VwZGF0ZV9sMnF3ID0gZHJtX29yZGVyKCAvKiBpbml0LT5ycHRyX3VwZGF0ZSAqLyA0MDk2IC8gOCk7CisKKwlkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplID0gLyogaW5pdC0+ZmV0Y2hfc2l6ZSAqLyAzMjsKKwlkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplX2wyb3cgPSBkcm1fb3JkZXIoIC8qIGluaXQtPmZldGNoX3NpemUgKi8gMzIgLyAxNik7CisJZGV2X3ByaXYtPnJpbmcudGFpbF9tYXNrID0gKGRldl9wcml2LT5yaW5nLnNpemUgLyBzaXplb2YodTMyKSkgLSAxOworCisJZGV2X3ByaXYtPnJpbmcuaGlnaF9tYXJrID0gUkFERU9OX1JJTkdfSElHSF9NQVJLOworCisjaWYgX19PU19IQVNfQUdQCisJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsKKwkJLyogVHVybiBvZmYgUENJIEdBUlQgKi8KKwkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAwKTsKKwl9IGVsc2UKKyNlbmRpZgorCXsKKwkJZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKKwkJLyogaWYgd2UgaGF2ZSBhbiBvZmZzZXQgc2V0IGZyb20gdXNlcnNwYWNlICovCisJCWlmIChkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXRfc2V0KSB7CisJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyID0KKwkJCSAgICBkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQgKyBkZXZfcHJpdi0+ZmJfbG9jYXRpb247CisJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcub2Zmc2V0ID0KKwkJCSAgICBkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQgKyBkZXZfcHJpdi0+ZmJfYXBlcl9vZmZzZXQ7CisJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcuc2l6ZSA9CisJCQkgICAgZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9zaXplOworCisJCQlkcm1fY29yZV9pb3JlbWFwX3djKCZkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcsIGRldik7CisJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmFkZHIgPQorCQkJICAgIGRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZy5oYW5kbGU7CisKKwkJCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkKKwkJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfcmVnX2lmID0gRFJNX0FUSV9HQVJUX1BDSUU7CisJCQllbHNlCisJCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3JlZ19pZiA9IERSTV9BVElfR0FSVF9QQ0k7CisJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfdGFibGVfbG9jYXRpb24gPQorCQkJICAgIERSTV9BVElfR0FSVF9GQjsKKworCQkJRFJNX0RFQlVHKCJTZXR0aW5nIHBoeXNfcGNpX2dhcnQgdG8gJXAgJTA4bFhcbiIsCisJCQkJICBkZXZfcHJpdi0+Z2FydF9pbmZvLmFkZHIsCisJCQkJICBkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQpOworCQl9IGVsc2UgeworCQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19JR1BHQVJUKQorCQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF9yZWdfaWYgPSBEUk1fQVRJX0dBUlRfSUdQOworCQkJZWxzZQorCQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF9yZWdfaWYgPSBEUk1fQVRJX0dBUlRfUENJOworCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3RhYmxlX2xvY2F0aW9uID0KKwkJCSAgICBEUk1fQVRJX0dBUlRfTUFJTjsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uYWRkciA9IE5VTEw7CisJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyID0gMDsKKwkJCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkgeworCQkJCURSTV9FUlJPUgorCQkJCSAgICAoIkNhbm5vdCB1c2UgUENJIEV4cHJlc3Mgd2l0aG91dCBHQVJUIGluIEZCIG1lbW9yeVxuIik7CisJCQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCX0KKwkJfQorCisJCWlmICghZHJtX2F0aV9wY2lnYXJ0X2luaXQoZGV2LCAmZGV2X3ByaXYtPmdhcnRfaW5mbykpIHsKKwkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGluaXQgUENJIEdBUlQhXG4iKTsKKwkJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCisJCS8qIFR1cm4gb24gUENJIEdBUlQgKi8KKwkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAxKTsKKwl9CisKKwlyYWRlb25fY3BfbG9hZF9taWNyb2NvZGUoZGV2X3ByaXYpOworCXJhZGVvbl9jcF9pbml0X3JpbmdfYnVmZmVyKGRldiwgZGV2X3ByaXYpOworCisJZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKKworCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKKwlyYWRlb25fdGVzdF93cml0ZWJhY2soZGV2X3ByaXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2RvX2NsZWFudXBfY3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlEUk1fREVCVUcoIlxuIik7CisKKwkvKiBNYWtlIHN1cmUgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgaGVyZSBiZWNhdXNlIHRoZSB1bmluc3RhbGwgaW9jdGwKKwkgKiBtYXkgbm90IGhhdmUgYmVlbiBjYWxsZWQgZnJvbSB1c2Vyc3BhY2UgYW5kIGFmdGVyIGRldl9wcml2YXRlCisJICogaXMgZnJlZWQsIGl0J3MgdG9vIGxhdGUuCisJICovCisJaWYgKGRldi0+aXJxX2VuYWJsZWQpCisJCWRybV9pcnFfdW5pbnN0YWxsKGRldik7CisKKyNpZiBfX09TX0hBU19BR1AKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgeworCQlpZiAoZGV2X3ByaXYtPmNwX3JpbmcgIT0gTlVMTCkgeworCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoZGV2X3ByaXYtPmNwX3JpbmcsIGRldik7CisJCQlkZXZfcHJpdi0+Y3BfcmluZyA9IE5VTEw7CisJCX0KKwkJaWYgKGRldl9wcml2LT5yaW5nX3JwdHIgIT0gTlVMTCkgeworCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoZGV2X3ByaXYtPnJpbmdfcnB0ciwgZGV2KTsKKwkJCWRldl9wcml2LT5yaW5nX3JwdHIgPSBOVUxMOworCQl9CisJCWlmIChkZXYtPmFncF9idWZmZXJfbWFwICE9IE5VTEwpIHsKKwkJCWRybV9jb3JlX2lvcmVtYXBmcmVlKGRldi0+YWdwX2J1ZmZlcl9tYXAsIGRldik7CisJCQlkZXYtPmFncF9idWZmZXJfbWFwID0gTlVMTDsKKwkJfQorCX0gZWxzZQorI2VuZGlmCisJeworCisJCWlmIChkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyKSB7CisJCQkvKiBUdXJuIG9mZiBQQ0kgR0FSVCAqLworCQkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAwKTsKKwkJCWlmICghZHJtX2F0aV9wY2lnYXJ0X2NsZWFudXAoZGV2LCAmZGV2X3ByaXYtPmdhcnRfaW5mbykpCisJCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY2xlYW51cCBQQ0kgR0FSVCFcbiIpOworCQl9CisKKwkJaWYgKGRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF90YWJsZV9sb2NhdGlvbiA9PSBEUk1fQVRJX0dBUlRfRkIpCisJCXsKKwkJCWRybV9jb3JlX2lvcmVtYXBmcmVlKCZkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcsIGRldik7CisJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmFkZHIgPSAwOworCQl9CisJfQorCS8qIG9ubHkgY2xlYXIgdG8gdGhlIHN0YXJ0IG9mIGZsYWdzICovCisJbWVtc2V0KGRldl9wcml2LCAwLCBvZmZzZXRvZihkcm1fcmFkZW9uX3ByaXZhdGVfdCwgZmxhZ3MpKTsKKworCXJldHVybiAwOworfQorCisvKiBUaGlzIGNvZGUgd2lsbCByZWluaXQgdGhlIFJhZGVvbiBDUCBoYXJkd2FyZSBhZnRlciBhIHJlc3VtZSBmcm9tIGRpc2MuCisgKiBBRkFJSywgaXQgd291bGQgYmUgdmVyeSBkaWZmaWN1bHQgdG8gcGlja2xlIHRoZSBzdGF0ZSBhdCBzdXNwZW5kIHRpbWUsIHNvCisgKiBoZXJlIHdlIG1ha2Ugc3VyZSB0aGF0IGFsbCBSYWRlb24gaGFyZHdhcmUgaW5pdGlhbGlzYXRpb24gaXMgcmUtZG9uZSB3aXRob3V0CisgKiBhZmZlY3RpbmcgcnVubmluZyBhcHBsaWNhdGlvbnMuCisgKgorICogQ2hhcmwgUC4gQm90aGEgPGh0dHA6Ly9jcGJvdGhhLm5ldD4KKyAqLworc3RhdGljIGludCByYWRlb25fZG9fcmVzdW1lX2NwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwlpZiAoIWRldl9wcml2KSB7CisJCURSTV9FUlJPUigiQ2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlEUk1fREVCVUcoIlN0YXJ0aW5nIHJhZGVvbl9kb19yZXN1bWVfY3AoKVxuIik7CisKKyNpZiBfX09TX0hBU19BR1AKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgeworCQkvKiBUdXJuIG9mZiBQQ0kgR0FSVCAqLworCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDApOworCX0gZWxzZQorI2VuZGlmCisJeworCQkvKiBUdXJuIG9uIFBDSSBHQVJUICovCisJCXJhZGVvbl9zZXRfcGNpZ2FydChkZXZfcHJpdiwgMSk7CisJfQorCisJcmFkZW9uX2NwX2xvYWRfbWljcm9jb2RlKGRldl9wcml2KTsKKwlyYWRlb25fY3BfaW5pdF9yaW5nX2J1ZmZlcihkZXYsIGRldl9wcml2KTsKKworCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKKwlyYWRlb25fZW5hYmxlX2ludGVycnVwdChkZXYpOworCisJRFJNX0RFQlVHKCJyYWRlb25fZG9fcmVzdW1lX2NwKCkgY29tcGxldGVcbiIpOworCisJcmV0dXJuIDA7Cit9CisKK2ludCByYWRlb25fY3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1fcmFkZW9uX2luaXRfdCAqaW5pdCA9IGRhdGE7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJaWYgKGluaXQtPmZ1bmMgPT0gUkFERU9OX0lOSVRfUjMwMF9DUCkKKwkJcjMwMF9pbml0X3JlZ19mbGFncyhkZXYpOworCisJc3dpdGNoIChpbml0LT5mdW5jKSB7CisJY2FzZSBSQURFT05fSU5JVF9DUDoKKwljYXNlIFJBREVPTl9JTklUX1IyMDBfQ1A6CisJY2FzZSBSQURFT05fSU5JVF9SMzAwX0NQOgorCQlyZXR1cm4gcmFkZW9uX2RvX2luaXRfY3AoZGV2LCBpbml0KTsKKwljYXNlIFJBREVPTl9DTEVBTlVQX0NQOgorCQlyZXR1cm4gcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwl9CisKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworaW50IHJhZGVvbl9jcF9zdGFydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCURSTV9ERUJVRygiXG4iKTsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlpZiAoZGV2X3ByaXYtPmNwX3J1bm5pbmcpIHsKKwkJRFJNX0RFQlVHKCJ3aGlsZSBDUCBydW5uaW5nXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmIChkZXZfcHJpdi0+Y3BfbW9kZSA9PSBSQURFT05fQ1NRX1BSSURJU19JTkRESVMpIHsKKwkJRFJNX0RFQlVHKCJjYWxsZWQgd2l0aCBib2d1cyBDUCBtb2RlICglZClcbiIsCisJCQkgIGRldl9wcml2LT5jcF9tb2RlKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmFkZW9uX2RvX2NwX3N0YXJ0KGRldl9wcml2KTsKKworCXJldHVybiAwOworfQorCisvKiBTdG9wIHRoZSBDUC4gIFRoZSBlbmdpbmUgbXVzdCBoYXZlIGJlZW4gaWRsZWQgYmVmb3JlIGNhbGxpbmcgdGhpcworICogcm91dGluZS4KKyAqLworaW50IHJhZGVvbl9jcF9zdG9wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9jcF9zdG9wX3QgKnN0b3AgPSBkYXRhOworCWludCByZXQ7CisJRFJNX0RFQlVHKCJcbiIpOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCWlmICghZGV2X3ByaXYtPmNwX3J1bm5pbmcpCisJCXJldHVybiAwOworCisJLyogRmx1c2ggYW55IHBlbmRpbmcgQ1AgY29tbWFuZHMuICBUaGlzIGVuc3VyZXMgYW55IG91dHN0YW5kaW5nCisJICogY29tbWFuZHMgYXJlIGV4ZWN0dXRlZCBieSB0aGUgZW5naW5lIGJlZm9yZSB3ZSB0dXJuIGl0IG9mZi4KKwkgKi8KKwlpZiAoc3RvcC0+Zmx1c2gpIHsKKwkJcmFkZW9uX2RvX2NwX2ZsdXNoKGRldl9wcml2KTsKKwl9CisKKwkvKiBJZiB3ZSBmYWlsIHRvIG1ha2UgdGhlIGVuZ2luZSBnbyBpZGxlLCB3ZSByZXR1cm4gYW4gZXJyb3IKKwkgKiBjb2RlIHNvIHRoYXQgdGhlIERSTSBpb2N0bCB3cmFwcGVyIGNhbiB0cnkgYWdhaW4uCisJICovCisJaWYgKHN0b3AtPmlkbGUpIHsKKwkJcmV0ID0gcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwkvKiBGaW5hbGx5LCB3ZSBjYW4gdHVybiBvZmYgdGhlIENQLiAgSWYgdGhlIGVuZ2luZSBpc24ndCBpZGxlLAorCSAqIHdlIHdpbGwgZ2V0IHNvbWUgZHJvcHBlZCB0cmlhbmdsZXMgYXMgdGhleSB3b24ndCBiZSBmdWxseQorCSAqIHJlbmRlcmVkIGJlZm9yZSB0aGUgQ1AgaXMgc2h1dCBkb3duLgorCSAqLworCXJhZGVvbl9kb19jcF9zdG9wKGRldl9wcml2KTsKKworCS8qIFJlc2V0IHRoZSBlbmdpbmUgKi8KKwlyYWRlb25fZG9fZW5naW5lX3Jlc2V0KGRldik7CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCByYWRlb25fZG9fcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpLCByZXQ7CisKKwlpZiAoZGV2X3ByaXYpIHsKKwkJaWYgKGRldl9wcml2LT5jcF9ydW5uaW5nKSB7CisJCQkvKiBTdG9wIHRoZSBjcCAqLworCQkJd2hpbGUgKChyZXQgPSByYWRlb25fZG9fY3BfaWRsZShkZXZfcHJpdikpICE9IDApIHsKKwkJCQlEUk1fREVCVUcoInJhZGVvbl9kb19jcF9pZGxlICVkXG4iLCByZXQpOworI2lmZGVmIF9fbGludXhfXworCQkJCXNjaGVkdWxlKCk7CisjZWxzZQorCQkJCXRzbGVlcCgmcmV0LCBQWkVSTywgInJkbnJlbCIsIDEpOworI2VuZGlmCisJCQl9CisJCQlyYWRlb25fZG9fY3Bfc3RvcChkZXZfcHJpdik7CisJCQlyYWRlb25fZG9fZW5naW5lX3Jlc2V0KGRldik7CisJCX0KKworCQkvKiBEaXNhYmxlICphbGwqIGludGVycnVwdHMgKi8KKwkJaWYgKGRldl9wcml2LT5tbWlvKQkvKiByZW1vdmUgdGhpcyBhZnRlciBwZXJtYW5lbnQgYWRkbWFwcyAqLworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9HRU5fSU5UX0NOVEwsIDApOworCisJCWlmIChkZXZfcHJpdi0+bW1pbykgewkvKiByZW1vdmUgYWxsIHN1cmZhY2VzICovCisJCQlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7CisJCQkJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9JTkZPICsgMTYgKiBpLCAwKTsKKwkJCQlSQURFT05fV1JJVEUoUkFERU9OX1NVUkZBQ0UwX0xPV0VSX0JPVU5EICsKKwkJCQkJICAgICAxNiAqIGksIDApOworCQkJCVJBREVPTl9XUklURShSQURFT05fU1VSRkFDRTBfVVBQRVJfQk9VTkQgKworCQkJCQkgICAgIDE2ICogaSwgMCk7CisJCQl9CisJCX0KKworCQkvKiBGcmVlIG1lbW9yeSBoZWFwIHN0cnVjdHVyZXMgKi8KKwkJcmFkZW9uX21lbV90YWtlZG93bigmKGRldl9wcml2LT5nYXJ0X2hlYXApKTsKKwkJcmFkZW9uX21lbV90YWtlZG93bigmKGRldl9wcml2LT5mYl9oZWFwKSk7CisKKwkJLyogZGVhbGxvY2F0ZSBrZXJuZWwgcmVzb3VyY2VzICovCisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJfQorfQorCisvKiBKdXN0IHJlc2V0IHRoZSBDUCByaW5nLiAgQ2FsbGVkIGFzIHBhcnQgb2YgYW4gWCBTZXJ2ZXIgZW5naW5lIHJlc2V0LgorICovCitpbnQgcmFkZW9uX2NwX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJRFJNX0RFQlVHKCJcbiIpOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0RFQlVHKCJjYWxsZWQgYmVmb3JlIGluaXQgZG9uZVxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJhZGVvbl9kb19jcF9yZXNldChkZXZfcHJpdik7CisKKwkvKiBUaGUgQ1AgaXMgbm8gbG9uZ2VyIHJ1bm5pbmcgYWZ0ZXIgYW4gZW5naW5lIHJlc2V0ICovCisJZGV2X3ByaXYtPmNwX3J1bm5pbmcgPSAwOworCisJcmV0dXJuIDA7Cit9CisKK2ludCByYWRlb25fY3BfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCURSTV9ERUJVRygiXG4iKTsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlyZXR1cm4gcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOworfQorCisvKiBBZGRlZCBieSBDaGFybCBQLiBCb3RoYSB0byBjYWxsIHJhZGVvbl9kb19yZXN1bWVfY3AoKS4KKyAqLworaW50IHJhZGVvbl9jcF9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisKKwlyZXR1cm4gcmFkZW9uX2RvX3Jlc3VtZV9jcChkZXYpOworfQorCitpbnQgcmFkZW9uX2VuZ2luZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlEUk1fREVCVUcoIlxuIik7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJcmV0dXJuIHJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKK30KKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogRnVsbHNjcmVlbiBtb2RlCisgKi8KKworLyogS1c6IERlcHJlY2F0ZWQgdG8gc2F5IHRoZSBsZWFzdDoKKyAqLworaW50IHJhZGVvbl9mdWxsc2NyZWVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXJldHVybiAwOworfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBGcmVlbGlzdCBtYW5hZ2VtZW50CisgKi8KKworLyogT3JpZ2luYWwgY29tbWVudDogRklYTUU6IFJPVEFURV9CVUZTIGlzIGEgaGFjayB0byBjeWNsZSB0aHJvdWdoCisgKiAgIGJ1ZnMgdW50aWwgZnJlZWxpc3QgY29kZSBpcyB1c2VkLiAgTm90ZSB0aGlzIGhpZGVzIGEgcHJvYmxlbSB3aXRoCisgKiAgIHRoZSBzY3JhdGNoIHJlZ2lzdGVyICogKHVzZWQgdG8ga2VlcCB0cmFjayBvZiBsYXN0IGJ1ZmZlcgorICogICBjb21wbGV0ZWQpIGJlaW5nIHdyaXR0ZW4gdG8gYmVmb3JlICogdGhlIGxhc3QgYnVmZmVyIGhhcyBhY3R1YWxseQorICogICBjb21wbGV0ZWQgcmVuZGVyaW5nLgorICoKKyAqIEtXOiAgSXQncyBhbHNvIGEgZ29vZCB3YXkgdG8gZmluZCBmcmVlIGJ1ZmZlcnMgcXVpY2tseS4KKyAqCisgKiBLVzogSWRlYWxseSB0aGlzIGxvb3Agd291bGRuJ3QgZXhpc3QsIGFuZCBmcmVlbGlzdF9nZXQgd291bGRuJ3QKKyAqIHNsZWVwLiAgSG93ZXZlciwgYnVncyBpbiBvbGRlciB2ZXJzaW9ucyBvZiByYWRlb25fYWNjZWwuYyBtZWFuIHRoYXQKKyAqIHdlIGVzc2VudGlhbGx5IGhhdmUgdG8gZG8gdGhpcywgZWxzZSBvbGQgY2xpZW50cyB3aWxsIGJyZWFrLgorICoKKyAqIEhvd2V2ZXIsIGl0IGRvZXMgbGVhdmUgb3BlbiBhIHBvdGVudGlhbCBkZWFkbG9jayB3aGVyZSBhbGwgdGhlCisgKiBidWZmZXJzIGFyZSBoZWxkIGJ5IG90aGVyIGNsaWVudHMsIHdoaWNoIGNhbid0IHJlbGVhc2UgdGhlbSBiZWNhdXNlCisgKiB0aGV5IGNhbid0IGdldCB0aGUgbG9jay4KKyAqLworCitzdHJ1Y3QgZHJtX2J1ZiAqcmFkZW9uX2ZyZWVsaXN0X2dldChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9idWZfcHJpdl90ICpidWZfcHJpdjsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWludCBpLCB0OworCWludCBzdGFydDsKKworCWlmICgrK2Rldl9wcml2LT5sYXN0X2J1ZiA+PSBkbWEtPmJ1Zl9jb3VudCkKKwkJZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKKworCXN0YXJ0ID0gZGV2X3ByaXYtPmxhc3RfYnVmOworCisJZm9yICh0ID0gMDsgdCA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IHQrKykgeworCQl1MzIgZG9uZV9hZ2UgPSBHRVRfU0NSQVRDSCgxKTsKKwkJRFJNX0RFQlVHKCJkb25lX2FnZSA9ICVkXG4iLCBkb25lX2FnZSk7CisJCWZvciAoaSA9IHN0YXJ0OyBpIDwgZG1hLT5idWZfY291bnQ7IGkrKykgeworCQkJYnVmID0gZG1hLT5idWZsaXN0W2ldOworCQkJYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOworCQkJaWYgKGJ1Zi0+ZmlsZV9wcml2ID09IE5VTEwgfHwgKGJ1Zi0+cGVuZGluZyAmJgorCQkJCQkJICAgICAgIGJ1Zl9wcml2LT5hZ2UgPD0KKwkJCQkJCSAgICAgICBkb25lX2FnZSkpIHsKKwkJCQlkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMrKzsKKwkJCQlidWYtPnBlbmRpbmcgPSAwOworCQkJCXJldHVybiBidWY7CisJCQl9CisJCQlzdGFydCA9IDA7CisJCX0KKworCQlpZiAodCkgeworCQkJRFJNX1VERUxBWSgxKTsKKwkJCWRldl9wcml2LT5zdGF0cy5mcmVlbGlzdF9sb29wcysrOworCQl9CisJfQorCisJRFJNX0RFQlVHKCJyZXR1cm5pbmcgTlVMTCFcbiIpOworCXJldHVybiBOVUxMOworfQorCisjaWYgMAorc3RydWN0IGRybV9idWYgKnJhZGVvbl9mcmVlbGlzdF9nZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXY7CisJc3RydWN0IGRybV9idWYgKmJ1ZjsKKwlpbnQgaSwgdDsKKwlpbnQgc3RhcnQ7CisJdTMyIGRvbmVfYWdlID0gRFJNX1JFQUQzMihkZXZfcHJpdi0+cmluZ19ycHRyLCBSQURFT05fU0NSQVRDSE9GRigxKSk7CisKKwlpZiAoKytkZXZfcHJpdi0+bGFzdF9idWYgPj0gZG1hLT5idWZfY291bnQpCisJCWRldl9wcml2LT5sYXN0X2J1ZiA9IDA7CisKKwlzdGFydCA9IGRldl9wcml2LT5sYXN0X2J1ZjsKKwlkZXZfcHJpdi0+c3RhdHMuZnJlZWxpc3RfbG9vcHMrKzsKKworCWZvciAodCA9IDA7IHQgPCAyOyB0KyspIHsKKwkJZm9yIChpID0gc3RhcnQ7IGkgPCBkbWEtPmJ1Zl9jb3VudDsgaSsrKSB7CisJCQlidWYgPSBkbWEtPmJ1Zmxpc3RbaV07CisJCQlidWZfcHJpdiA9IGJ1Zi0+ZGV2X3ByaXZhdGU7CisJCQlpZiAoYnVmLT5maWxlX3ByaXYgPT0gMCB8fCAoYnVmLT5wZW5kaW5nICYmCisJCQkJCQkgICAgYnVmX3ByaXYtPmFnZSA8PQorCQkJCQkJICAgIGRvbmVfYWdlKSkgeworCQkJCWRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcysrOworCQkJCWJ1Zi0+cGVuZGluZyA9IDA7CisJCQkJcmV0dXJuIGJ1ZjsKKwkJCX0KKwkJfQorCQlzdGFydCA9IDA7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisjZW5kaWYKKwordm9pZCByYWRlb25fZnJlZWxpc3RfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpOworCisJZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgZG1hLT5idWZfY291bnQ7IGkrKykgeworCQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmID0gZG1hLT5idWZsaXN0W2ldOworCQlkcm1fcmFkZW9uX2J1Zl9wcml2X3QgKmJ1Zl9wcml2ID0gYnVmLT5kZXZfcHJpdmF0ZTsKKwkJYnVmX3ByaXYtPmFnZSA9IDA7CisJfQorfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBDUCBjb21tYW5kIHN1Ym1pc3Npb24KKyAqLworCitpbnQgcmFkZW9uX3dhaXRfcmluZyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LCBpbnQgbikKK3sKKwlkcm1fcmFkZW9uX3JpbmdfYnVmZmVyX3QgKnJpbmcgPSAmZGV2X3ByaXYtPnJpbmc7CisJaW50IGk7CisJdTMyIGxhc3RfaGVhZCA9IEdFVF9SSU5HX0hFQUQoZGV2X3ByaXYpOworCisJZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IGkrKykgeworCQl1MzIgaGVhZCA9IEdFVF9SSU5HX0hFQUQoZGV2X3ByaXYpOworCisJCXJpbmctPnNwYWNlID0gKGhlYWQgLSByaW5nLT50YWlsKSAqIHNpemVvZih1MzIpOworCQlpZiAocmluZy0+c3BhY2UgPD0gMCkKKwkJCXJpbmctPnNwYWNlICs9IHJpbmctPnNpemU7CisJCWlmIChyaW5nLT5zcGFjZSA+IG4pCisJCQlyZXR1cm4gMDsKKworCQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7CisKKwkJaWYgKGhlYWQgIT0gbGFzdF9oZWFkKQorCQkJaSA9IDA7CisJCWxhc3RfaGVhZCA9IGhlYWQ7CisKKwkJRFJNX1VERUxBWSgxKTsKKwl9CisKKwkvKiBGSVhNRTogVGhpcyByZXR1cm4gdmFsdWUgaXMgaWdub3JlZCBpbiB0aGUgQkVHSU5fUklORyBtYWNybyEgKi8KKyNpZiBSQURFT05fRklGT19ERUJVRworCXJhZGVvbl9zdGF0dXMoZGV2X3ByaXYpOworCURSTV9FUlJPUigiZmFpbGVkIVxuIik7CisjZW5kaWYKKwlyZXR1cm4gLUVCVVNZOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9jcF9nZXRfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCQkgc3RydWN0IGRybV9kbWEgKiBkKQoreworCWludCBpOworCXN0cnVjdCBkcm1fYnVmICpidWY7CisKKwlmb3IgKGkgPSBkLT5ncmFudGVkX2NvdW50OyBpIDwgZC0+cmVxdWVzdF9jb3VudDsgaSsrKSB7CisJCWJ1ZiA9IHJhZGVvbl9mcmVlbGlzdF9nZXQoZGV2KTsKKwkJaWYgKCFidWYpCisJCQlyZXR1cm4gLUVCVVNZOwkvKiBOT1RFOiBicm9rZW4gY2xpZW50ICovCisKKwkJYnVmLT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7CisKKwkJaWYgKERSTV9DT1BZX1RPX1VTRVIoJmQtPnJlcXVlc3RfaW5kaWNlc1tpXSwgJmJ1Zi0+aWR4LAorCQkJCSAgICAgc2l6ZW9mKGJ1Zi0+aWR4KSkpCisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJaWYgKERSTV9DT1BZX1RPX1VTRVIoJmQtPnJlcXVlc3Rfc2l6ZXNbaV0sICZidWYtPnRvdGFsLAorCQkJCSAgICAgc2l6ZW9mKGJ1Zi0+dG90YWwpKSkKKwkJCXJldHVybiAtRUZBVUxUOworCisJCWQtPmdyYW50ZWRfY291bnQrKzsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludCByYWRlb25fY3BfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOworCWludCByZXQgPSAwOworCXN0cnVjdCBkcm1fZG1hICpkID0gZGF0YTsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwkvKiBQbGVhc2UgZG9uJ3Qgc2VuZCB1cyBidWZmZXJzLgorCSAqLworCWlmIChkLT5zZW5kX2NvdW50ICE9IDApIHsKKwkJRFJNX0VSUk9SKCJQcm9jZXNzICVkIHRyeWluZyB0byBzZW5kICVkIGJ1ZmZlcnMgdmlhIGRybURNQVxuIiwKKwkJCSAgRFJNX0NVUlJFTlRQSUQsIGQtPnNlbmRfY291bnQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBXZSdsbCBzZW5kIHlvdSBidWZmZXJzLgorCSAqLworCWlmIChkLT5yZXF1ZXN0X2NvdW50IDwgMCB8fCBkLT5yZXF1ZXN0X2NvdW50ID4gZG1hLT5idWZfY291bnQpIHsKKwkJRFJNX0VSUk9SKCJQcm9jZXNzICVkIHRyeWluZyB0byBnZXQgJWQgYnVmZmVycyAob2YgJWQgbWF4KVxuIiwKKwkJCSAgRFJNX0NVUlJFTlRQSUQsIGQtPnJlcXVlc3RfY291bnQsIGRtYS0+YnVmX2NvdW50KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZC0+Z3JhbnRlZF9jb3VudCA9IDA7CisKKwlpZiAoZC0+cmVxdWVzdF9jb3VudCkgeworCQlyZXQgPSByYWRlb25fY3BfZ2V0X2J1ZmZlcnMoZGV2LCBmaWxlX3ByaXYsIGQpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK2ludCByYWRlb25fZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXY7CisJaW50IHJldCA9IDA7CisKKwlkZXZfcHJpdiA9IGRybV9hbGxvYyhzaXplb2YoZHJtX3JhZGVvbl9wcml2YXRlX3QpLCBEUk1fTUVNX0RSSVZFUik7CisJaWYgKGRldl9wcml2ID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJbWVtc2V0KGRldl9wcml2LCAwLCBzaXplb2YoZHJtX3JhZGVvbl9wcml2YXRlX3QpKTsKKwlkZXYtPmRldl9wcml2YXRlID0gKHZvaWQgKilkZXZfcHJpdjsKKwlkZXZfcHJpdi0+ZmxhZ3MgPSBmbGFnczsKKworCXN3aXRjaCAoZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIHsKKwljYXNlIENISVBfUjEwMDoKKwljYXNlIENISVBfUlYyMDA6CisJY2FzZSBDSElQX1IyMDA6CisJY2FzZSBDSElQX1IzMDA6CisJY2FzZSBDSElQX1IzNTA6CisJY2FzZSBDSElQX1I0MjA6CisJY2FzZSBDSElQX1JWNDEwOgorCWNhc2UgQ0hJUF9SVjUxNToKKwljYXNlIENISVBfUjUyMDoKKwljYXNlIENISVBfUlY1NzA6CisJY2FzZSBDSElQX1I1ODA6CisJCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSEFTX0hJRVJaOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkvKiBhbGwgb3RoZXIgY2hpcHMgaGF2ZSBubyBoaWVyYXJjaGljYWwgeiBidWZmZXIgKi8KKwkJYnJlYWs7CisJfQorCisJaWYgKGRybV9kZXZpY2VfaXNfYWdwKGRldikpCisJCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSVNfQUdQOworCWVsc2UgaWYgKGRybV9kZXZpY2VfaXNfcGNpZShkZXYpKQorCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX1BDSUU7CisJZWxzZQorCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX1BDSTsKKworCURSTV9ERUJVRygiJXMgY2FyZCBkZXRlY3RlZFxuIiwKKwkJICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApID8gIkFHUCIgOiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkgPyAiUENJRSIgOiAiUENJIikpKSk7CisJcmV0dXJuIHJldDsKK30KKworLyogQ3JlYXRlIG1hcHBpbmdzIGZvciByZWdpc3RlcnMgYW5kIGZyYW1lYnVmZmVyIHNvIHVzZXJsYW5kIGRvZXNuJ3QgbmVjZXNzYXJpbHkKKyAqIGhhdmUgdG8gZmluZCB0aGVtLgorICovCitpbnQgcmFkZW9uX2RyaXZlcl9maXJzdG9wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlpbnQgcmV0OworCWRybV9sb2NhbF9tYXBfdCAqbWFwOworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwlkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemUgPSBSQURFT05fUENJR0FSVF9UQUJMRV9TSVpFOworCisJcmV0ID0gZHJtX2FkZG1hcChkZXYsIGRybV9nZXRfcmVzb3VyY2Vfc3RhcnQoZGV2LCAyKSwKKwkJCSBkcm1fZ2V0X3Jlc291cmNlX2xlbihkZXYsIDIpLCBfRFJNX1JFR0lTVEVSUywKKwkJCSBfRFJNX1JFQURfT05MWSwgJmRldl9wcml2LT5tbWlvKTsKKwlpZiAocmV0ICE9IDApCisJCXJldHVybiByZXQ7CisKKwlkZXZfcHJpdi0+ZmJfYXBlcl9vZmZzZXQgPSBkcm1fZ2V0X3Jlc291cmNlX3N0YXJ0KGRldiwgMCk7CisJcmV0ID0gZHJtX2FkZG1hcChkZXYsIGRldl9wcml2LT5mYl9hcGVyX29mZnNldCwKKwkJCSBkcm1fZ2V0X3Jlc291cmNlX2xlbihkZXYsIDApLCBfRFJNX0ZSQU1FX0JVRkZFUiwKKwkJCSBfRFJNX1dSSVRFX0NPTUJJTklORywgJm1hcCk7CisJaWYgKHJldCAhPSAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7Cit9CisKK2ludCByYWRlb25fZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwlEUk1fREVCVUcoIlxuIik7CisJZHJtX2ZyZWUoZGV2X3ByaXYsIHNpemVvZigqZGV2X3ByaXYpLCBEUk1fTUVNX0RSSVZFUik7CisKKwlkZXYtPmRldl9wcml2YXRlID0gTlVMTDsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9yYWRlb25fZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9pb2MzMi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25faW9jMzIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9yYWRlb25faW9jMzIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25faW9jMzIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25faXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9pcnEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9yYWRlb25faXJxLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lycS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9tZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21lbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9tZW0uYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbWVtLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX21pY3JvY29kZS5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbWljcm9jb2RlLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcmFkZW9uX21pY3JvY29kZS5oCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9taWNyb2NvZGUuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25fc3RhdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3N0YXRlLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcmFkZW9uX3N0YXRlLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3N0YXRlLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zYXZhZ2UvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4Zjg0YWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL01ha2VmaWxlCkBAIC0wLDAgKzEsOSBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgPSAtSWluY2x1ZGUvZHJtCitzYXZhZ2UteSA6PSBzYXZhZ2VfZHJ2Lm8gc2F2YWdlX2JjaS5vIHNhdmFnZV9zdGF0ZS5vCisKK29iai0kKENPTkZJR19EUk1fU0FWQUdFKSs9IHNhdmFnZS5vCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2F2YWdlX2JjaS5jIGIvZHJpdmVycy9ncHUvZHJtL3NhdmFnZS9zYXZhZ2VfYmNpLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vc2F2YWdlX2JjaS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9iY2kuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9zYXZhZ2VfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zYXZhZ2VfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9zYXZhZ2Uvc2F2YWdlX2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9zYXZhZ2Uvc2F2YWdlX2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3NhdmFnZS9zYXZhZ2VfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2F2YWdlX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9zdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9zdGF0ZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9zdGF0ZS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2lzL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDFjMDYxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9NYWtlZmlsZQpAQCAtMCwwICsxLDEwIEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA9IC1JaW5jbHVkZS9kcm0KK3Npcy15IDo9IHNpc19kcnYubyBzaXNfbW0ubworCitvYmotJChDT05GSUdfRFJNX1NJUykgICArPSBzaXMubworCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2lzX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9zaXNfZHJ2LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vc2lzX2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vc2lzL3Npc19kcnYuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9zaXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vc2lzL3Npc19kcnYuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zaXNfZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9zaXMvc2lzX2Rydi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3Npc19tbS5jIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9zaXNfbW0uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zaXNfbW0uYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3Npcy9zaXNfbW0uYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RkZngvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdGRmeC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzc5ZjI5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RkZngvTWFrZWZpbGUKQEAgLTAsMCArMSw4IEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCit0ZGZ4LXkgOj0gdGRmeF9kcnYubworCitvYmotJChDT05GSUdfRFJNX1RERlgpCSs9IHRkZngubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS90ZGZ4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3RkZngvdGRmeF9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS90ZGZ4X2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdGRmeC90ZGZ4X2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3RkZnhfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdGRmeC90ZGZ4X2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3RkZnhfZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS90ZGZ4L3RkZnhfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aWEvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1OWUyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL01ha2VmaWxlCkBAIC0wLDAgKzEsOCBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgOj0gLUlpbmNsdWRlL2RybQordmlhLXkgICAgOj0gdmlhX2lycS5vIHZpYV9kcnYubyB2aWFfbWFwLm8gdmlhX21tLm8gdmlhX2RtYS5vIHZpYV92ZXJpZmllci5vIHZpYV92aWRlby5vIHZpYV9kbWFibGl0Lm8KKworb2JqLSQoQ09ORklHX0RSTV9WSUEpCSs9dmlhLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhXzNkX3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfM2RfcmVnLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhXzNkX3JlZy5oCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV8zZF9yZWcuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS92aWFfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfZG1hLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2RtYS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kbWFibGl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX2RtYWJsaXQuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1hYmxpdC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kbWFibGl0LmggYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX2RtYWJsaXQuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1hYmxpdC5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2Rydi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9kcnYuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX2Rydi5oCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kcnYuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS92aWFfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9pcnEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfaXJxLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2lycS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9tYXAuYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX21hcC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9tYXAuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfbWFwLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX21tLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9tbS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tbS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV92ZXJpZmllci5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfdmVyaWZpZXIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfdmVyaWZpZXIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfdmVyaWZpZXIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS92aWFfdmVyaWZpZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZlcmlmaWVyLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX3ZlcmlmaWVyLmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZlcmlmaWVyLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX3ZpZGVvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92aWRlby5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV92aWRlby5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92aWRlby5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWRyYXcuYyBiL2RyaXZlcnMvaGlkL2hpZHJhdy5jCmluZGV4IDFjYTZmNDYuLjJmZGU2YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL2hpZHJhdy5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZHJhdy5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9oaWQuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxsaW51eC9oaWRyYXcuaD4KIApAQCAtMTU3LDYgKzE1OCw3IEBACiAJc3RydWN0IGhpZHJhd19saXN0ICpsaXN0OwogCWludCBlcnIgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAlpZiAoIShsaXN0ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGhpZHJhd19saXN0KSwgR0ZQX0tFUk5FTCkpKSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gb3V0OwpAQCAtMTgzLDYgKzE4NSw3IEBACiBvdXRfdW5sb2NrOgogCXNwaW5fdW5sb2NrKCZtaW5vcnNfbG9jayk7CiBvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnI7CiAKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vaGRhcHMuYyBiL2RyaXZlcnMvaHdtb24vaGRhcHMuYwppbmRleCAyNmRmMDZmLi41MGYyMjY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2hkYXBzLmMKKysrIGIvZHJpdmVycy9od21vbi9oZGFwcy5jCkBAIC01MTYsMTcgKzUxNiwyMyBAQAogCUhEQVBTX0RNSV9NQVRDSF9OT1JNQUwoIklCTSIsICJUaGlua1BhZCBSNTEiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgUjUyIiksCiAJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiTEVOT1ZPIiwgIlRoaW5rUGFkIFI2MWkiKSwKKwlIREFQU19ETUlfTUFUQ0hfSU5WRVJUKCJMRU5PVk8iLCAiVGhpbmtQYWQgUjYxIiksCiAJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiSUJNIiwgIlRoaW5rUGFkIFQ0MXAiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgVDQxIiksCiAJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiSUJNIiwgIlRoaW5rUGFkIFQ0MnAiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgVDQyIiksCiAJSERBUFNfRE1JX01BVENIX05PUk1BTCgiSUJNIiwgIlRoaW5rUGFkIFQ0MyIpLAogCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBUNjAiKSwKKwlIREFQU19ETUlfTUFUQ0hfSU5WRVJUKCJMRU5PVk8iLCAiVGhpbmtQYWQgVDYxcCIpLAogCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBUNjEiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgWDQwIiksCiAJSERBUFNfRE1JX01BVENIX05PUk1BTCgiSUJNIiwgIlRoaW5rUGFkIFg0MSIpLAogCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBYNjAiKSwKKwlIREFQU19ETUlfTUFUQ0hfSU5WRVJUKCJMRU5PVk8iLCAiVGhpbmtQYWQgWDYxcyIpLAorCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBYNjEiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgWjYwbSIpLAorCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBaNjFtIiksCisJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiTEVOT1ZPIiwgIlRoaW5rUGFkIFo2MXAiKSwKIAl7IC5pZGVudCA9IE5VTEwgfQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYWxnb3MvaTJjLWFsZ28tYml0LmMgYi9kcml2ZXJzL2kyYy9hbGdvcy9pMmMtYWxnby1iaXQuYwppbmRleCAzNTgxMjgyLi5lYjhmNzJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9hbGdvcy9pMmMtYWxnby1iaXQuYworKysgYi9kcml2ZXJzL2kyYy9hbGdvcy9pMmMtYWxnby1iaXQuYwpAQCAtMzIwLDcgKzMyMCw3IEBACiAJCSAgICAgICB1bnNpZ25lZCBjaGFyIGFkZHIsIGludCByZXRyaWVzKQogewogCXN0cnVjdCBpMmNfYWxnb19iaXRfZGF0YSAqYWRhcCA9IGkyY19hZGFwLT5hbGdvX2RhdGE7Ci0JaW50IGksIHJldCA9IC0xOworCWludCBpLCByZXQgPSAwOwogCiAJZm9yIChpID0gMDsgaSA8PSByZXRyaWVzOyBpKyspIHsKIAkJcmV0ID0gaTJjX291dGIoaTJjX2FkYXAsIGFkZHIpOwpAQCAtNTA4LDcgKzUwOCw3IEBACiAJCQlhZGRyIF49IDE7CiAJCXJldCA9IHRyeV9hZGRyZXNzKGkyY19hZGFwLCBhZGRyLCByZXRyaWVzKTsKIAkJaWYgKChyZXQgIT0gMSkgJiYgIW5ha19vaykKLQkJCXJldHVybiAtRVJFTU9URUlPOworCQkJcmV0dXJuIC1FTlhJTzsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2FsZ29zL2kyYy1hbGdvLXBjYS5jIGIvZHJpdmVycy9pMmMvYWxnb3MvaTJjLWFsZ28tcGNhLmMKaW5kZXggZTk1NGEyMGIuLmQ1MGIzMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2FsZ29zL2kyYy1hbGdvLXBjYS5jCisrKyBiL2RyaXZlcnMvaTJjL2FsZ29zL2kyYy1hbGdvLXBjYS5jCkBAIC0xODIsNyArMTgyLDcgQEAKIAl9CiAJaWYgKHN0YXRlICE9IDB4ZjgpIHsKIAkJZGV2X2RiZygmaTJjX2FkYXAtPmRldiwgImJ1cyBpcyBub3QgaWRsZS4gc3RhdHVzIGlzICUjMDR4XG4iLCBzdGF0ZSk7Ci0JCXJldHVybiAtRUlPOworCQlyZXR1cm4gLUVBR0FJTjsKIAl9CiAKIAlERUIxKCJ7e3sgWEZFUiAlZCBtZXNzYWdlc1xuIiwgbnVtKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2FsZ29zL2kyYy1hbGdvLXBjZi5jIGIvZHJpdmVycy9pMmMvYWxnb3MvaTJjLWFsZ28tcGNmLmMKaW5kZXggODkwN2IwMS4uMWUzMjhkMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2FsZ29zL2kyYy1hbGdvLXBjZi5jCisrKyBiL2RyaXZlcnMvaTJjL2FsZ29zL2kyYy1hbGdvLXBjZi5jCkBAIC03OCw2ICs3OCwzNiBAQAogCXNldF9wY2YoYWRhcCwgMSwgSTJDX1BDRl9TVE9QKTsKIH0KIAorc3RhdGljIHZvaWQgaGFuZGxlX2xhYihzdHJ1Y3QgaTJjX2FsZ29fcGNmX2RhdGEgKmFkYXAsIGNvbnN0IGludCAqc3RhdHVzKQoreworCURFQjIocHJpbnRrKEtFUk5fSU5GTworCQkiaTJjLWFsZ28tcGNmLm86IGxvc3QgYXJiaXRyYXRpb24gKENTUiAweCUwMngpXG4iLAorCQkgKnN0YXR1cykpOworCisJLyogQ2xlYW51cCBmcm9tIExBQiAtLSByZXNldCBhbmQgZW5hYmxlIEVTTy4KKwkgKiBUaGlzIHJlc2V0cyB0aGUgUENGODU4NDsgc2luY2Ugd2UndmUgbG9zdCB0aGUgYnVzLCBubworCSAqIGZ1cnRoZXIgYXR0ZW1wdHMgc2hvdWxkIGJlIG1hZGUgYnkgY2FsbGVycyB0byBjbGVhbiB1cAorCSAqIChubyBpMmNfc3RvcCgpIGV0Yy4pCisJICovCisJc2V0X3BjZihhZGFwLCAxLCBJMkNfUENGX1BJTik7CisJc2V0X3BjZihhZGFwLCAxLCBJMkNfUENGX0VTTyk7CisKKwkvKiBXZSBwYXVzZSBmb3IgYSB0aW1lIHBlcmlvZCBzdWZmaWNpZW50IGZvciBhbnkgcnVubmluZworCSAqIEkyQyB0cmFuc2FjdGlvbiB0byBjb21wbGV0ZSAtLSB0aGUgYXJiaXRyYXRpb24gbG9naWMgd29uJ3QKKwkgKiB3b3JrIHByb3Blcmx5IHVudGlsIHRoZSBuZXh0IFNUQVJUIGlzIHNlZW4uCisJICogSXQgaXMgYXNzdW1lZCB0aGUgYnVzIGRyaXZlciBvciBjbGllbnQgaGFzIHNldCBhIHByb3BlciB2YWx1ZS4KKwkgKgorCSAqIFJFVklTSVQ6IHNob3VsZCBwcm9iYWJseSB1c2UgbXNsZWVwIGluc3RlYWQgb2YgbWRlbGF5IGlmIHdlCisJICoga25vdyB3ZSBjYW4gc2xlZXAuCisJICovCisJaWYgKGFkYXAtPmxhYl9tZGVsYXkpCisJCW1kZWxheShhZGFwLT5sYWJfbWRlbGF5KTsKKworCURFQjIocHJpbnRrKEtFUk5fSU5GTworCQkiaTJjLWFsZ28tcGNmLm86IHJlc2V0IExBQiBjb25kaXRpb24gKENTUiAweCUwMngpXG4iLAorCQlnZXRfcGNmKGFkYXAsIDEpKSk7Cit9CisKIHN0YXRpYyBpbnQgd2FpdF9mb3JfYmIoc3RydWN0IGkyY19hbGdvX3BjZl9kYXRhICphZGFwKSB7CiAKIAlpbnQgdGltZW91dCA9IERFRl9USU1FT1VUOwpAQCAtMTA5LDIzICsxMzksNyBAQAogCQkqc3RhdHVzID0gZ2V0X3BjZihhZGFwLCAxKTsKIAl9CiAJaWYgKCpzdGF0dXMgJiBJMkNfUENGX0xBQikgewotCQlERUIyKHByaW50ayhLRVJOX0lORk8gCi0JCQkiaTJjLWFsZ28tcGNmLm86IGxvc3QgYXJiaXRyYXRpb24gKENTUiAweCUwMngpXG4iLAotCQkJICpzdGF0dXMpKTsKLQkJLyogQ2xlYW51cCBmcm9tIExBQi0tIHJlc2V0IGFuZCBlbmFibGUgRVNPLgotCQkgKiBUaGlzIHJlc2V0cyB0aGUgUENGODU4NDsgc2luY2Ugd2UndmUgbG9zdCB0aGUgYnVzLCBubwotCQkgKiBmdXJ0aGVyIGF0dGVtcHRzIHNob3VsZCBiZSBtYWRlIGJ5IGNhbGxlcnMgdG8gY2xlYW4gdXAgCi0JCSAqIChubyBpMmNfc3RvcCgpIGV0Yy4pCi0JCSAqLwotCQlzZXRfcGNmKGFkYXAsIDEsIEkyQ19QQ0ZfUElOKTsKLQkJc2V0X3BjZihhZGFwLCAxLCBJMkNfUENGX0VTTyk7Ci0JCS8qIFRPRE86IHdlIHNob3VsZCBwYXVzZSBmb3IgYSB0aW1lIHBlcmlvZCBzdWZmaWNpZW50IGZvciBhbnkKLQkJICogcnVubmluZyBJMkMgdHJhbnNhY3Rpb24gdG8gY29tcGxldGUtLSB0aGUgYXJiaXRyYXRpb24KLQkJICogbG9naWMgd29uJ3Qgd29yayBwcm9wZXJseSB1bnRpbCB0aGUgbmV4dCBTVEFSVCBpcyBzZWVuLgotCQkgKi8KLQkJREVCMihwcmludGsoS0VSTl9JTkZPIAotCQkJImkyYy1hbGdvLXBjZi5vOiByZXNldCBMQUIgY29uZGl0aW9uIChDU1IgMHglMDJ4KVxuIiwgCi0JCQlnZXRfcGNmKGFkYXAsMSkpKTsKKwkJaGFuZGxlX2xhYihhZGFwLCBzdGF0dXMpOwogCQlyZXR1cm4oLUVJTlRSKTsKIAl9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9LY29uZmlnIGIvZHJpdmVycy9pMmMvYnVzc2VzL0tjb25maWcKaW5kZXggNDg0MzhjYy4uNmVlOTk3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL0tjb25maWcKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL0tjb25maWcKQEAgLTQsNiArNCw5IEBACiAKIG1lbnUgIkkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydCIKIAorY29tbWVudCAiUEMgU01CdXMgaG9zdCBjb250cm9sbGVyIGRyaXZlcnMiCisJZGVwZW5kcyBvbiBQQ0kKKwogY29uZmlnIEkyQ19BTEkxNTM1CiAJdHJpc3RhdGUgIkFMSSAxNTM1IgogCWRlcGVuZHMgb24gUENJCkBAIC03Myw2ICs3NiwxODYgQEAKIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIGkyYy1hbWQ4MTExLgogCitjb25maWcgSTJDX0k4MDEKKwl0cmlzdGF0ZSAiSW50ZWwgODI4MDEgKElDSCkiCisJZGVwZW5kcyBvbiBQQ0kKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUgSW50ZWwKKwkgIDgwMSBmYW1pbHkgb2YgbWFpbmJvYXJkIEkyQyBpbnRlcmZhY2VzLiAgU3BlY2lmaWNhbGx5LCB0aGUgZm9sbG93aW5nCisJICB2ZXJzaW9ucyBvZiB0aGUgY2hpcHNldCBhcmUgc3VwcG9ydGVkOgorCSAgICA4MjgwMUFBCisJICAgIDgyODAxQUIKKwkgICAgODI4MDFCQQorCSAgICA4MjgwMUNBL0NBTQorCSAgICA4MjgwMURCCisJICAgIDgyODAxRUIvRVIgKElDSDUvSUNINVIpCisJICAgIDYzMDBFU0IKKwkgICAgSUNINgorCSAgICBJQ0g3CisJICAgIEVTQjIKKwkgICAgSUNIOAorCSAgICBJQ0g5CisJICAgIFRvbGFwYWkKKwkgICAgSUNIMTAKKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLWk4MDEuCisKK2NvbmZpZyBJMkNfSVNDSAorCXRyaXN0YXRlICJJbnRlbCBTQ0ggU01CdXMgMS4wIgorCWRlcGVuZHMgb24gUENJCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgU01CdXMgY29udHJvbGxlciBvbiB0aGUgSW50ZWwgU0NICisJICBiYXNlZCBzeXN0ZW1zLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy1pc2NoLgorCitjb25maWcgSTJDX1BJSVg0CisJdHJpc3RhdGUgIkludGVsIFBJSVg0IGFuZCBjb21wYXRpYmxlIChBVEkvU2VydmVyd29ya3MvQnJvYWRjb20vU01TQykiCisJZGVwZW5kcyBvbiBQQ0kKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUgSW50ZWwKKwkgIFBJSVg0IGZhbWlseSBvZiBtYWluYm9hcmQgSTJDIGludGVyZmFjZXMuICBTcGVjaWZpY2FsbHksIHRoZSBmb2xsb3dpbmcKKwkgIHZlcnNpb25zIG9mIHRoZSBjaGlwc2V0IGFyZSBzdXBwb3J0ZWQgKG5vdGUgdGhhdCBTZXJ2ZXJ3b3JrcyBpcyBwYXJ0CisJICBvZiBCcm9hZGNvbSk6CisJICAgIEludGVsIFBJSVg0CisJICAgIEludGVsIDQ0ME1YCisJICAgIEFUSSBJWFAyMDAKKwkgICAgQVRJIElYUDMwMAorCSAgICBBVEkgSVhQNDAwCisJICAgIEFUSSBTQjYwMAorCSAgICBBVEkgU0I3MDAKKwkgICAgQVRJIFNCODAwCisJICAgIFNlcnZlcndvcmtzIE9TQjQKKwkgICAgU2VydmVyd29ya3MgQ1NCNQorCSAgICBTZXJ2ZXJ3b3JrcyBDU0I2CisJICAgIFNlcnZlcndvcmtzIEhULTEwMDAKKwkgICAgU01TQyBWaWN0b3J5NjYKKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXBpaXg0LgorCitjb25maWcgSTJDX05GT1JDRTIKKwl0cmlzdGF0ZSAiTnZpZGlhIG5Gb3JjZTIsIG5Gb3JjZTMgYW5kIG5Gb3JjZTQiCisJZGVwZW5kcyBvbiBQQ0kKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUgTnZpZGlhCisJICBuRm9yY2UyLCBuRm9yY2UzIGFuZCBuRm9yY2U0IGZhbWlsaWVzIG9mIG1haW5ib2FyZCBJMkMgaW50ZXJmYWNlcy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLW5mb3JjZTIuCisKK2NvbmZpZyBJMkNfTkZPUkNFMl9TNDk4NQorCXRyaXN0YXRlICJTTUJ1cyBtdWx0aXBsZXhpbmcgb24gdGhlIFR5YW4gUzQ5ODUiCisJZGVwZW5kcyBvbiBJMkNfTkZPUkNFMiAmJiBFWFBFUklNRU5UQUwKKwloZWxwCisJICBFbmFibGluZyB0aGlzIG9wdGlvbiB3aWxsIGFkZCBzcGVjaWZpYyBTTUJ1cyBzdXBwb3J0IGZvciB0aGUgVHlhbgorCSAgUzQ5ODUgbW90aGVyYm9hcmQuICBPbiB0aGlzIDQtQ1BVIGJvYXJkLCB0aGUgU01CdXMgaXMgbXVsdGlwbGV4ZWQKKwkgIG92ZXIgNCBkaWZmZXJlbnQgY2hhbm5lbHMsIHdoZXJlIHRoZSB2YXJpb3VzIG1lbW9yeSBtb2R1bGUgRUVQUk9NcworCSAgbGl2ZS4gIFNheWluZyB5ZXMgaGVyZSB3aWxsIGdpdmUgeW91IGFjY2VzcyB0byB0aGVzZSBpbiBhZGRpdGlvbgorCSAgdG8gdGhlIHRydW5rLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBpMmMtbmZvcmNlMi1zNDk4NS4KKworY29uZmlnIEkyQ19TSVM1NTk1CisJdHJpc3RhdGUgIlNpUyA1NTk1IgorCWRlcGVuZHMgb24gUENJCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlCisJICBTaVM1NTk1IFNNQnVzIChhIHN1YnNldCBvZiBJMkMpIGludGVyZmFjZS4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXNpczU1OTUuCisKK2NvbmZpZyBJMkNfU0lTNjMwCisJdHJpc3RhdGUgIlNpUyA2MzAvNzMwIgorCWRlcGVuZHMgb24gUENJCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlCisJICBTaVM2MzAgYW5kIFNpUzczMCBTTUJ1cyAoYSBzdWJzZXQgb2YgSTJDKSBpbnRlcmZhY2UuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy1zaXM2MzAuCisKK2NvbmZpZyBJMkNfU0lTOTZYCisJdHJpc3RhdGUgIlNpUyA5NngiCisJZGVwZW5kcyBvbiBQQ0kKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUgU2lTCisJICA5NnggU01CdXMgKGEgc3Vic2V0IG9mIEkyQykgaW50ZXJmYWNlcy4gIFNwZWNpZmljYWxseSwgdGhlIGZvbGxvd2luZworCSAgY2hpcHNldHMgYXJlIHN1cHBvcnRlZDoKKwkgICAgNjQ1Lzk2MQorCSAgICA2NDVEWC85NjEKKwkgICAgNjQ1RFgvOTYyCisJICAgIDY0OC85NjEKKwkgICAgNjUwLzk2MQorCSAgICA3MzUKKwkgICAgNzQ1CisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy1zaXM5NnguCisKK2NvbmZpZyBJMkNfVklBCisJdHJpc3RhdGUgIlZJQSBWVDgyQzU4NkIiCisJZGVwZW5kcyBvbiBQQ0kgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19BTEdPQklUCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlIFZJQQorICAgICAgICAgIDgyQzU4NkIgSTJDIGludGVyZmFjZQorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBpMmMtdmlhLgorCitjb25maWcgSTJDX1ZJQVBSTworCXRyaXN0YXRlICJWSUEgVlQ4MkM1OTYvODJDNjg2LzgyeHggYW5kIENYNzAwIgorCWRlcGVuZHMgb24gUENJCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlIFZJQQorCSAgVlQ4MkM1OTYgYW5kIGxhdGVyIFNNQnVzIGludGVyZmFjZS4gIFNwZWNpZmljYWxseSwgdGhlIGZvbGxvd2luZworCSAgY2hpcHNldHMgYXJlIHN1cHBvcnRlZDoKKwkgICAgVlQ4MkM1OTZBL0IKKwkgICAgVlQ4MkM2ODZBL0IKKwkgICAgVlQ4MjMxCisJICAgIFZUODIzMy9BCisJICAgIFZUODIzNQorCSAgICBWVDgyMzdSL0EvUworCSAgICBWVDgyNTEKKwkgICAgQ1g3MDAKKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXZpYXByby4KKworY29tbWVudCAiTWFjIFNNQnVzIGhvc3QgY29udHJvbGxlciBkcml2ZXJzIgorCWRlcGVuZHMgb24gUFBDX0NIUlAgfHwgUFBDX1BNQUMKKworY29uZmlnIEkyQ19IWURSQQorCXRyaXN0YXRlICJDSFJQIEFwcGxlIEh5ZHJhIE1hYyBJL08gSTJDIGludGVyZmFjZSIKKwlkZXBlbmRzIG9uIFBDSSAmJiBQUENfQ0hSUCAmJiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgSTJDX0FMR09CSVQKKwloZWxwCisJICBUaGlzIHN1cHBvcnRzIHRoZSB1c2Ugb2YgdGhlIEkyQyBpbnRlcmZhY2UgaW4gdGhlIEFwcGxlIEh5ZHJhIE1hYworCSAgSS9PIGNoaXAgb24gc29tZSBDSFJQIG1hY2hpbmVzIChlLmcuIHRoZSBMb25nVHJhaWwpLiAgU2F5IFkgaWYgeW91CisJICBoYXZlIHN1Y2ggYSBtYWNoaW5lLgorCisJICBUaGlzIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLWh5ZHJhLgorCitjb25maWcgSTJDX1BPV0VSTUFDCisJdHJpc3RhdGUgIlBvd2VybWFjIEkyQyBpbnRlcmZhY2UiCisJZGVwZW5kcyBvbiBQUENfUE1BQworCWRlZmF1bHQgeQorCWhlbHAKKwkgIFRoaXMgZXhwb3NlcyB0aGUgdmFyaW91cyBQb3dlck1hYyBpMmMgaW50ZXJmYWNlcyB0byB0aGUgbGludXggaTJjCisJICBsYXllciBhbmQgdG8gdXNlcmxhbmQuIEl0IGlzIHVzZWQgYnkgdmFyaW91cyBkcml2ZXJzIG9uIHRoZSBQb3dlck1hYworCSAgcGxhdGZvcm0sIGFuZCBzaG91bGQgZ2VuZXJhbGx5IGJlIGVuYWJsZWQuCisKKwkgIFRoaXMgc3VwcG9ydCBpcyBhbHNvIGF2YWlsYWJsZSBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBpMmMtcG93ZXJtYWMuCisKK2NvbW1lbnQgIkkyQyBzeXN0ZW0gYnVzIGRyaXZlcnMgKG1vc3RseSBlbWJlZGRlZCAvIHN5c3RlbS1vbi1jaGlwKSIKKwogY29uZmlnIEkyQ19BVDkxCiAJdHJpc3RhdGUgIkF0bWVsIEFUOTEgSTJDIFR3by1XaXJlIGludGVyZmFjZSAoVFdJKSIKIAlkZXBlbmRzIG9uIEFSQ0hfQVQ5MSAmJiBFWFBFUklNRU5UQUwgJiYgQlJPS0VOCkBAIC0xMDEsMTAgKzI4NCw5IEBACiBjb25maWcgSTJDX0JMQUNLRklOX1RXSQogCXRyaXN0YXRlICJCbGFja2ZpbiBUV0kgSTJDIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBCTEFDS0ZJTgorCWRlcGVuZHMgb24gIUJGNTYxICYmICFCRjUzMSAmJiAhQkY1MzIgJiYgIUJGNTMzCiAJaGVscAotCSAgVGhpcyBpcyB0aGUgVFdJIEkyQyBkZXZpY2UgZHJpdmVyIGZvciBCbGFja2ZpbiBCRjUyMiwgQkY1MjUsCi0JICBCRjUyNywgQkY1MzQsIEJGNTM2LCBCRjUzNyBhbmQgQkY1NHguIEZvciBvdGhlciBCbGFja2ZpbiBwcm9jZXNzb3JzLAotCSAgcGxlYXNlIGRvbid0IHVzZSB0aGlzIGRyaXZlci4KKwkgIFRoaXMgaXMgdGhlIEkyQyBidXMgZHJpdmVyIGZvciBCbGFja2ZpbiBvbi1jaGlwIFRXSSBpbnRlcmZhY2UuCiAKIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIGkyYy1iZmluLXR3aS4KQEAgLTExNyw2ICsyOTksMTYgQEAKIAloZWxwCiAJICBUaGUgdW5pdCBvZiB0aGUgVFdJIGNsb2NrIGlzIGtIei4KIAorY29uZmlnIEkyQ19DUE0KKwl0cmlzdGF0ZSAiRnJlZXNjYWxlIENQTTEgb3IgQ1BNMiAoTVBDOHh4LzgyNngpIgorCWRlcGVuZHMgb24gKENQTTEgfHwgQ1BNMikgJiYgT0ZfSTJDCisJaGVscAorCSAgVGhpcyBzdXBwb3J0cyB0aGUgdXNlIG9mIHRoZSBJMkMgaW50ZXJmYWNlIG9uIEZyZWVzY2FsZQorCSAgcHJvY2Vzc29ycyB3aXRoIENQTTEgb3IgQ1BNMi4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLWNwbS4KKwogY29uZmlnIEkyQ19EQVZJTkNJCiAJdHJpc3RhdGUgIkRhVmluY2kgSTJDIGRyaXZlciIKIAlkZXBlbmRzIG9uIEFSQ0hfREFWSU5DSQpAQCAtMTMwLDE3ICszMjIsNiBAQAogCSAgZGV2aWNlcyBzdWNoIGFzIERhVmluY2kgTklDLgogCSAgRm9yIGRldGFpbHMgcGxlYXNlIHNlZSBodHRwOi8vd3d3LnRpLmNvbS9kYXZpbmNpCiAKLWNvbmZpZyBJMkNfRUxFS1RPUgotCXRyaXN0YXRlICJFbGVrdG9yIElTQSBjYXJkIgotCWRlcGVuZHMgb24gSVNBICYmIEJST0tFTl9PTl9TTVAKLQlzZWxlY3QgSTJDX0FMR09QQ0YKLQloZWxwCi0JICBUaGlzIHN1cHBvcnRzIHRoZSBQQ0Y4NTg0IElTQSBidXMgSTJDIGFkYXB0ZXIuICBTYXkgWSBpZiB5b3Ugb3duCi0JICBzdWNoIGFuIGFkYXB0ZXIuCi0KLQkgIFRoaXMgc3VwcG9ydCBpcyBhbHNvIGF2YWlsYWJsZSBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBpMmMtZWxla3Rvci4KLQogY29uZmlnIEkyQ19HUElPCiAJdHJpc3RhdGUgIkdQSU8tYmFzZWQgYml0YmFuZ2luZyBJMkMiCiAJZGVwZW5kcyBvbiBHRU5FUklDX0dQSU8KQEAgLTE0OSwxMDQgKzMzMCw2IEBACiAJICBUaGlzIGlzIGEgdmVyeSBzaW1wbGUgYml0YmFuZ2luZyBJMkMgZHJpdmVyIHV0aWxpemluZyB0aGUKIAkgIGFyY2gtbmV1dHJhbCBHUElPIEFQSSB0byBjb250cm9sIHRoZSBTQ0wgYW5kIFNEQSBsaW5lcy4KIAotY29uZmlnIEkyQ19IWURSQQotCXRyaXN0YXRlICJDSFJQIEFwcGxlIEh5ZHJhIE1hYyBJL08gSTJDIGludGVyZmFjZSIKLQlkZXBlbmRzIG9uIFBDSSAmJiBQUENfQ0hSUCAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX0FMR09CSVQKLQloZWxwCi0JICBUaGlzIHN1cHBvcnRzIHRoZSB1c2Ugb2YgdGhlIEkyQyBpbnRlcmZhY2UgaW4gdGhlIEFwcGxlIEh5ZHJhIE1hYwotCSAgSS9PIGNoaXAgb24gc29tZSBDSFJQIG1hY2hpbmVzIChlLmcuIHRoZSBMb25nVHJhaWwpLiAgU2F5IFkgaWYgeW91Ci0JICBoYXZlIHN1Y2ggYSBtYWNoaW5lLgotCi0JICBUaGlzIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLWh5ZHJhLgotCi1jb25maWcgSTJDX0k4MDEKLQl0cmlzdGF0ZSAiSW50ZWwgODI4MDEgKElDSCkiCi0JZGVwZW5kcyBvbiBQQ0kKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUgSW50ZWwKLQkgIDgwMSBmYW1pbHkgb2YgbWFpbmJvYXJkIEkyQyBpbnRlcmZhY2VzLiAgU3BlY2lmaWNhbGx5LCB0aGUgZm9sbG93aW5nCi0JICB2ZXJzaW9ucyBvZiB0aGUgY2hpcHNldCBhcmUgc3VwcG9ydGVkOgotCSAgICA4MjgwMUFBCi0JICAgIDgyODAxQUIKLQkgICAgODI4MDFCQQotCSAgICA4MjgwMUNBL0NBTQotCSAgICA4MjgwMURCCi0JICAgIDgyODAxRUIvRVIgKElDSDUvSUNINVIpCi0JICAgIDYzMDBFU0IKLQkgICAgSUNINgotCSAgICBJQ0g3Ci0JICAgIEVTQjIKLQkgICAgSUNIOAotCSAgICBJQ0g5Ci0JICAgIFRvbGFwYWkKLQkgICAgSUNIMTAKLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLWk4MDEuCi0KLWNvbmZpZyBJMkNfSTgxMAotCXRyaXN0YXRlICJJbnRlbCA4MTAvODE1IChERVBSRUNBVEVEKSIKLQlkZWZhdWx0IG4KLQlkZXBlbmRzIG9uIFBDSQotCXNlbGVjdCBJMkNfQUxHT0JJVAotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIHRvIHRoaXMgb3B0aW9uLCBzdXBwb3J0IHdpbGwgYmUgaW5jbHVkZWQgZm9yIHRoZSBJbnRlbAotCSAgODEwLzgxNSBmYW1pbHkgb2YgbWFpbmJvYXJkIEkyQyBpbnRlcmZhY2VzLiAgU3BlY2lmaWNhbGx5LCB0aGUKLQkgIGZvbGxvd2luZyB2ZXJzaW9ucyBvZiB0aGUgY2hpcHNldCBhcmUgc3VwcG9ydGVkOgotCSAgICBpODEwQUEKLQkgICAgaTgxMEFCCi0JICAgIGk4MTBFCi0JICAgIGk4MTUKLQkgICAgaTg0NUcKLQotCSAgVGhpcyBkcml2ZXIgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB0aGUgaTgxMGZiIGFuZCBpbnRlbGZiIGRyaXZlcnMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGkyYy1pODEwLgotCi1jb25maWcgSTJDX1BYQQotCXRyaXN0YXRlICJJbnRlbCBQWEEyWFggSTJDIGFkYXB0ZXIgKEVYUEVSSU1FTlRBTCkiCi0JZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwgJiYgQVJDSF9QWEEKLQloZWxwCi0JICBJZiB5b3UgaGF2ZSBkZXZpY2VzIGluIHRoZSBQWEEgSTJDIGJ1cywgc2F5IHllcyB0byB0aGlzIG9wdGlvbi4KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGkyYy1weGEuCi0KLWNvbmZpZyBJMkNfUFhBX1NMQVZFCi0JYm9vbCAiSW50ZWwgUFhBMlhYIEkyQyBTbGF2ZSBjb21tcyBzdXBwb3J0IgotCWRlcGVuZHMgb24gSTJDX1BYQQotCWhlbHAKLQkgIFN1cHBvcnQgSTJDIHNsYXZlIG1vZGUgY29tbXVuaWNhdGlvbnMgb24gdGhlIFBYQSBJMkMgYnVzLiAgVGhpcwotCSAgaXMgbmVjZXNzYXJ5IGZvciBzeXN0ZW1zIHdoZXJlIHRoZSBQWEEgbWF5IGJlIGEgdGFyZ2V0IG9uIHRoZQotCSAgSTJDIGJ1cy4KLQotY29uZmlnIEkyQ19QSUlYNAotCXRyaXN0YXRlICJJbnRlbCBQSUlYNCBhbmQgY29tcGF0aWJsZSAoQVRJL1NlcnZlcndvcmtzL0Jyb2FkY29tL1NNU0MpIgotCWRlcGVuZHMgb24gUENJCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlIEludGVsCi0JICBQSUlYNCBmYW1pbHkgb2YgbWFpbmJvYXJkIEkyQyBpbnRlcmZhY2VzLiAgU3BlY2lmaWNhbGx5LCB0aGUgZm9sbG93aW5nCi0JICB2ZXJzaW9ucyBvZiB0aGUgY2hpcHNldCBhcmUgc3VwcG9ydGVkIChub3RlIHRoYXQgU2VydmVyd29ya3MgaXMgcGFydAotCSAgb2YgQnJvYWRjb20pOgotCSAgICBJbnRlbCBQSUlYNAotCSAgICBJbnRlbCA0NDBNWAotCSAgICBBVEkgSVhQMjAwCi0JICAgIEFUSSBJWFAzMDAKLQkgICAgQVRJIElYUDQwMAotCSAgICBBVEkgU0I2MDAKLQkgICAgQVRJIFNCNzAwCi0JICAgIEFUSSBTQjgwMAotCSAgICBTZXJ2ZXJ3b3JrcyBPU0I0Ci0JICAgIFNlcnZlcndvcmtzIENTQjUKLQkgICAgU2VydmVyd29ya3MgQ1NCNgotCSAgICBTZXJ2ZXJ3b3JrcyBIVC0xMDAwCi0JICAgIFNNU0MgVmljdG9yeTY2Ci0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGkyYy1waWl4NC4KLQogY29uZmlnIEkyQ19JQk1fSUlDCiAJdHJpc3RhdGUgIklCTSBQUEMgNHh4IG9uLWNoaXAgSTJDIGludGVyZmFjZSIKIAlkZXBlbmRzIG9uIDR4eApAQCAtMjgxLDE4ICszNjQsNiBAQAogCSAgVGhpcyBkcml2ZXIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBkcm9wcGVkIHNvb24uIFVzZSBpMmMtZ3BpbwogCSAgaW5zdGVhZC4KIAotY29uZmlnIEkyQ19QT1dFUk1BQwotCXRyaXN0YXRlICJQb3dlcm1hYyBJMkMgaW50ZXJmYWNlIgotCWRlcGVuZHMgb24gUFBDX1BNQUMKLQlkZWZhdWx0IHkKLQloZWxwCi0JICBUaGlzIGV4cG9zZXMgdGhlIHZhcmlvdXMgUG93ZXJNYWMgaTJjIGludGVyZmFjZXMgdG8gdGhlIGxpbnV4IGkyYwotCSAgbGF5ZXIgYW5kIHRvIHVzZXJsYW5kLiBJdCBpcyB1c2VkIGJ5IHZhcmlvdXMgZHJpdmVycyBvbiB0aGUgUG93ZXJNYWMKLQkgIHBsYXRmb3JtLCBhbmQgc2hvdWxkIGdlbmVyYWxseSBiZSBlbmFibGVkLgotCi0JICBUaGlzIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXBvd2VybWFjLgotCiBjb25maWcgSTJDX01QQwogCXRyaXN0YXRlICJNUEMxMDcvODI0eC84NXh4LzUyeHgvODZ4eCIKIAlkZXBlbmRzIG9uIFBQQzMyCkBAIC0zMDUsMTUgKzM3NiwxNSBAQAogCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgaTJjLW1wYy4KIAotY29uZmlnIEkyQ19ORk9SQ0UyCi0JdHJpc3RhdGUgIk52aWRpYSBuRm9yY2UyLCBuRm9yY2UzIGFuZCBuRm9yY2U0IgotCWRlcGVuZHMgb24gUENJCitjb25maWcgSTJDX01WNjRYWFgKKwl0cmlzdGF0ZSAiTWFydmVsbCBtdjY0eHh4IEkyQyBDb250cm9sbGVyIgorCWRlcGVuZHMgb24gKE1WNjRYNjAgfHwgUExBVF9PUklPTikgJiYgRVhQRVJJTUVOVEFMCiAJaGVscAotCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlIE52aWRpYQotCSAgbkZvcmNlMiwgbkZvcmNlMyBhbmQgbkZvcmNlNCBmYW1pbGllcyBvZiBtYWluYm9hcmQgSTJDIGludGVyZmFjZXMuCisJICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUKKwkgIGJ1aWx0LWluIEkyQyBpbnRlcmZhY2Ugb24gdGhlIE1hcnZlbGwgNjR4eHggbGluZSBvZiBob3N0IGJyaWRnZXMuCiAKIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGkyYy1uZm9yY2UyLgorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLW12NjR4eHguCiAKIGNvbmZpZyBJMkNfT0NPUkVTCiAJdHJpc3RhdGUgIk9wZW5Db3JlcyBJMkMgQ29udHJvbGxlciIKQEAgLTMzNiw2ICs0MDcsODkgQEAKIAkgIExpa2UgT01BUDE1MTAvMTYxMC8xNzEwLzU5MTIgYW5kIE9NQVAyNDJ4LgogCSAgRm9yIGRldGFpbHMgc2VlIGh0dHA6Ly93d3cudGkuY29tL29tYXAuCiAKK2NvbmZpZyBJMkNfUEFTRU1JCisJdHJpc3RhdGUgIlBBIFNlbWkgU01CdXMgaW50ZXJmYWNlIgorCWRlcGVuZHMgb24gUFBDX1BBU0VNSSAmJiBQQ0kKKwloZWxwCisJICBTdXBwb3J0cyB0aGUgUEEgU2VtaSBQV1JmaWNpZW50IG9uLWNoaXAgU01CdXMgaW50ZXJmYWNlcy4KKworY29uZmlnIEkyQ19QTlgKKwl0cmlzdGF0ZSAiSTJDIGJ1cyBzdXBwb3J0IGZvciBQaGlsaXBzIFBOWCB0YXJnZXRzIgorCWRlcGVuZHMgb24gQVJDSF9QTlg0MDA4CisJaGVscAorCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIFBoaWxpcHMgSVAzMjA0IEkyQyBJUCBibG9jayBtYXN0ZXIgYW5kL29yCisJICBzbGF2ZSBjb250cm9sbGVyCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy1wbnguCisKK2NvbmZpZyBJMkNfUFhBCisJdHJpc3RhdGUgIkludGVsIFBYQTJYWCBJMkMgYWRhcHRlciAoRVhQRVJJTUVOVEFMKSIKKwlkZXBlbmRzIG9uIEVYUEVSSU1FTlRBTCAmJiBBUkNIX1BYQQorCWhlbHAKKwkgIElmIHlvdSBoYXZlIGRldmljZXMgaW4gdGhlIFBYQSBJMkMgYnVzLCBzYXkgeWVzIHRvIHRoaXMgb3B0aW9uLgorCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXB4YS4KKworY29uZmlnIEkyQ19QWEFfU0xBVkUKKwlib29sICJJbnRlbCBQWEEyWFggSTJDIFNsYXZlIGNvbW1zIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBJMkNfUFhBCisJaGVscAorCSAgU3VwcG9ydCBJMkMgc2xhdmUgbW9kZSBjb21tdW5pY2F0aW9ucyBvbiB0aGUgUFhBIEkyQyBidXMuICBUaGlzCisJICBpcyBuZWNlc3NhcnkgZm9yIHN5c3RlbXMgd2hlcmUgdGhlIFBYQSBtYXkgYmUgYSB0YXJnZXQgb24gdGhlCisJICBJMkMgYnVzLgorCitjb25maWcgSTJDX1MzQzI0MTAKKwl0cmlzdGF0ZSAiUzNDMjQxMCBJMkMgRHJpdmVyIgorCWRlcGVuZHMgb24gQVJDSF9TM0MyNDEwCisJaGVscAorCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEkyQyBjb250cm9sbGVyIGluIHRoZQorCSAgU2Ftc3VuZyBTM0MyNDEwIGJhc2VkIFN5c3RlbS1vbi1DaGlwIGRldmljZXMuCisKK2NvbmZpZyBJMkNfU0g3NzYwCisJdHJpc3RhdGUgIlJlbmVzYXMgU0g3NzYwIEkyQyBDb250cm9sbGVyIgorCWRlcGVuZHMgb24gQ1BVX1NVQlRZUEVfU0g3NzYwCisJaGVscAorCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIDIgSTJDIGludGVyZmFjZXMgb24gdGhlIFJlbmVzYXMgU0g3NzYwLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBpMmMtc2g3NzYwLgorCitjb25maWcgSTJDX1NIX01PQklMRQorCXRyaXN0YXRlICJTdXBlckggTW9iaWxlIEkyQyBDb250cm9sbGVyIgorCWRlcGVuZHMgb24gU1VQRVJICisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlCisJICBidWlsdC1pbiBJMkMgaW50ZXJmYWNlIG9uIHRoZSBSZW5lc2FzIFNILU1vYmlsZSBwcm9jZXNzb3IuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy1zaF9tb2JpbGUuCisKK2NvbmZpZyBJMkNfU0lNVEVDCisJdHJpc3RhdGUgIlNpbXRlYyBHZW5lcmljIEkyQyBpbnRlcmZhY2UiCisJc2VsZWN0IEkyQ19BTEdPQklUCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IKKwkgIHRoZSBTaW10ZWMgR2VuZXJpYyBJMkMgaW50ZXJmYWNlLiBUaGlzIGRyaXZlciBpcyBmb3IgdGhlCisJICBzaW1wbGUgSTJDIGJ1cyB1c2VkIG9uIG5ld2VyIFNpbXRlYyBwcm9kdWN0cyBmb3IgZ2VuZXJhbAorCSAgSTJDLCBzdWNoIGFzIEREQyBvbiB0aGUgU2ltdGVjIEJCRDIwMTZBLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy1zaW10ZWMuCisKK2NvbmZpZyBJMkNfVkVSU0FUSUxFCisJdHJpc3RhdGUgIkFSTSBWZXJzYXRpbGUvUmVhbHZpZXcgSTJDIGJ1cyBzdXBwb3J0IgorCWRlcGVuZHMgb24gQVJDSF9WRVJTQVRJTEUgfHwgQVJDSF9SRUFMVklFVworCXNlbGVjdCBJMkNfQUxHT0JJVAorCWhlbHAKKwkgIFNheSB5ZXMgaWYgeW91IHdhbnQgdG8gc3VwcG9ydCB0aGUgSTJDIHNlcmlhbCBidXMgb24gQVJNcyBWZXJzYXRpbGUKKwkgIHJhbmdlIG9mIHBsYXRmb3Jtcy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXZlcnNhdGlsZS4KKworY29tbWVudCAiRXh0ZXJuYWwgSTJDL1NNQnVzIGFkYXB0ZXIgZHJpdmVycyIKKwogY29uZmlnIEkyQ19QQVJQT1JUCiAJdHJpc3RhdGUgIlBhcmFsbGVsIHBvcnQgYWRhcHRlciIKIAlkZXBlbmRzIG9uIFBBUlBPUlQKQEAgLTM4Myw1MCArNTM3LDEwNiBAQAogCSAgVGhpcyBzdXBwb3J0IGlzIGFsc28gYXZhaWxhYmxlIGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIGkyYy1wYXJwb3J0LWxpZ2h0LgogCi1jb25maWcgSTJDX1BBU0VNSQotCXRyaXN0YXRlICJQQSBTZW1pIFNNQnVzIGludGVyZmFjZSIKLQlkZXBlbmRzIG9uIFBQQ19QQVNFTUkgJiYgUENJCi0JaGVscAotCSAgU3VwcG9ydHMgdGhlIFBBIFNlbWkgUFdSZmljaWVudCBvbi1jaGlwIFNNQnVzIGludGVyZmFjZXMuCi0KLWNvbmZpZyBJMkNfUFJPU0FWQUdFCi0JdHJpc3RhdGUgIlMzL1ZJQSAoUHJvKVNhdmFnZSAoREVQUkVDQVRFRCkiCitjb25maWcgSTJDX1RBT1NfRVZNCisJdHJpc3RhdGUgIlRBT1MgZXZhbHVhdGlvbiBtb2R1bGUiCisJZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgU0VSSU8KKwlzZWxlY3QgU0VSSU9fU0VSUE9SVAogCWRlZmF1bHQgbgotCWRlcGVuZHMgb24gUENJCi0Jc2VsZWN0IEkyQ19BTEdPQklUCiAJaGVscAotCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlCi0JICBJMkMgYnVzIGFuZCBEREMgYnVzIG9mIHRoZSBTM1ZJQSBlbWJlZGRlZCBTYXZhZ2U0IGFuZCBQcm9TYXZhZ2U4Ci0JICBncmFwaGljcyBwcm9jZXNzb3JzLgotCSAgY2hpcHNldHMgc3VwcG9ydGVkOgotCSAgICBTMy9WSUEgS00yNjYvVlQ4Mzc1IGFrYSBQcm9TYXZhZ2U4Ci0JICAgIFMzL1ZJQSBLTTEzMy9WVDgzNjUgYWthIFNhdmFnZTQKKwkgIFRoaXMgc3VwcG9ydHMgVEFPUyBldmFsdWF0aW9uIG1vZHVsZXMgb24gc2VyaWFsIHBvcnQuIEluIG9yZGVyIHRvCisJICB1c2UgdGhpcyBkcml2ZXIsIHlvdSB3aWxsIG5lZWQgdGhlIGlucHV0YXR0YWNoIHRvb2wsIHdoaWNoIGlzIHBhcnQKKwkgIG9mIHRoZSBpbnB1dC11dGlscyBwYWNrYWdlLgogCi0JICBUaGlzIGRyaXZlciBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHRoZSBzYXZhZ2VmYiBkcml2ZXIuCisJICBJZiB1bnN1cmUsIHNheSBOLgogCiAJICBUaGlzIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXByb3NhdmFnZS4KKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy10YW9zLWV2bS4KIAotY29uZmlnIEkyQ19TM0MyNDEwCi0JdHJpc3RhdGUgIlMzQzI0MTAgSTJDIERyaXZlciIKLQlkZXBlbmRzIG9uIEFSQ0hfUzNDMjQxMAorY29uZmlnIEkyQ19USU5ZX1VTQgorCXRyaXN0YXRlICJUaW55LVVTQiBhZGFwdGVyIgorCWRlcGVuZHMgb24gVVNCCiAJaGVscAotCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEkyQyBjb250cm9sbGVyIGluIHRoZQotCSAgU2Ftc3VuZyBTM0MyNDEwIGJhc2VkIFN5c3RlbS1vbi1DaGlwIGRldmljZXMuCisJICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUKKwkgIGkyYy10aW55LXVzYiwgYSBzaW1wbGUgZG8taXQteW91cnNlbGYgVVNCIHRvIEkyQyBpbnRlcmZhY2UuIFNlZQorCSAgaHR0cDovL3d3dy5oYXJiYXVtLm9yZy90aWxsL2kyY190aW55X3VzYiBmb3IgaGFyZHdhcmUgZGV0YWlscy4KIAotY29uZmlnIEkyQ19TQVZBR0U0Ci0JdHJpc3RhdGUgIlMzIFNhdmFnZSA0IChERVBSRUNBVEVEKSIKLQlkZWZhdWx0IG4KKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy10aW55LXVzYi4KKworY29tbWVudCAiR3JhcGhpY3MgYWRhcHRlciBJMkMvRERDIGNoYW5uZWwgZHJpdmVycyIKKwlkZXBlbmRzIG9uIFBDSQorCitjb25maWcgSTJDX1ZPT0RPTzMKKwl0cmlzdGF0ZSAiVm9vZG9vIDMiCiAJZGVwZW5kcyBvbiBQQ0kKIAlzZWxlY3QgSTJDX0FMR09CSVQKIAloZWxwCiAJICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUKLQkgIFMzIFNhdmFnZSA0IEkyQyBpbnRlcmZhY2UuCi0KLQkgIFRoaXMgZHJpdmVyIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlIHNhdmFnZWZiIGRyaXZlci4KKwkgIFZvb2RvbyAzIEkyQyBpbnRlcmZhY2UuCiAKIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGkyYy1zYXZhZ2U0LgorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXZvb2RvbzMuCisKK2NvbW1lbnQgIk90aGVyIEkyQy9TTUJ1cyBidXMgZHJpdmVycyIKKworY29uZmlnIEkyQ19BQ09STgorCXRyaXN0YXRlICJBY29ybiBJT0MvSU9NRCBJMkMgYnVzIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBBUkNIX0FDT1JOCisJZGVmYXVsdCB5CisJc2VsZWN0IEkyQ19BTEdPQklUCisJaGVscAorCSAgU2F5IHllcyBpZiB5b3Ugd2FudCB0byBzdXBwb3J0IHRoZSBJMkMgYnVzIG9uIEFjb3JuIHBsYXRmb3Jtcy4KKworCSAgSWYgeW91IGRvbid0IGtub3csIHNheSBZLgorCitjb25maWcgSTJDX0VMRUtUT1IKKwl0cmlzdGF0ZSAiRWxla3RvciBJU0EgY2FyZCIKKwlkZXBlbmRzIG9uIElTQSAmJiBCUk9LRU5fT05fU01QCisJc2VsZWN0IEkyQ19BTEdPUENGCisJaGVscAorCSAgVGhpcyBzdXBwb3J0cyB0aGUgUENGODU4NCBJU0EgYnVzIEkyQyBhZGFwdGVyLiAgU2F5IFkgaWYgeW91IG93bgorCSAgc3VjaCBhbiBhZGFwdGVyLgorCisJICBUaGlzIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaTJjLWVsZWt0b3IuCisKK2NvbmZpZyBJMkNfUENBX0lTQQorCXRyaXN0YXRlICJQQ0E5NTY0IG9uIGFuIElTQSBidXMiCisJZGVwZW5kcyBvbiBJU0EKKwlzZWxlY3QgSTJDX0FMR09QQ0EKKwlkZWZhdWx0IG4KKwloZWxwCisJICBUaGlzIGRyaXZlciBzdXBwb3J0cyBJU0EgYm9hcmRzIHVzaW5nIHRoZSBQaGlsaXBzIFBDQTk1NjQKKwkgIHBhcmFsbGVsIGJ1cyB0byBJMkMgYnVzIGNvbnRyb2xsZXIuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy1wY2EtaXNhLgorCisJICBUaGlzIGRldmljZSBpcyBhbG1vc3QgdW5kZXRlY3RhYmxlIGFuZCB1c2luZyB0aGlzIGRyaXZlciBvbiBhCisJICBzeXN0ZW0gd2hpY2ggZG9lc24ndCBoYXZlIHRoaXMgZGV2aWNlIHdpbGwgcmVzdWx0IGluIGxvbmcKKwkgIGRlbGF5cyB3aGVuIEkyQy9TTUJ1cyBjaGlwIGRyaXZlcnMgYXJlIGxvYWRlZCAoZS5nLiBhdCBib290CisJICB0aW1lKS4gIElmIHVuc3VyZSwgc2F5IE4uCisKK2NvbmZpZyBJMkNfUENBX1BMQVRGT1JNCisJdHJpc3RhdGUgIlBDQTk1NjQgYXMgcGxhdGZvcm0gZGV2aWNlIgorCXNlbGVjdCBJMkNfQUxHT1BDQQorCWRlZmF1bHQgbgorCWhlbHAKKwkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIGEgbWVtb3J5IG1hcHBlZCBQaGlsaXBzIFBDQTk1NjQKKwkgIHBhcmFsbGVsIGJ1cyB0byBJMkMgYnVzIGNvbnRyb2xsZXIuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy1wY2EtcGxhdGZvcm0uCisKK2NvbmZpZyBJMkNfUE1DTVNQCisJdHJpc3RhdGUgIlBNQyBNU1AgSTJDIFRXSSBDb250cm9sbGVyIgorCWRlcGVuZHMgb24gUE1DX01TUAorCWhlbHAKKwkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBQTUMgVFdJIGNvbnRyb2xsZXIgb24gTVNQIGRldmljZXMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIG1vZHVsZS4gSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGkyYy1wbWNtc3AuCiAKIGNvbmZpZyBJMkNfU0lCWVRFCiAJdHJpc3RhdGUgIlNpQnl0ZSBTTUJ1cyBpbnRlcmZhY2UiCkBAIC00MzQsMTcgKzY0NCwxOCBAQAogCWhlbHAKIAkgIFN1cHBvcnRzIHRoZSBTaUJ5dGUgU09DIG9uLWNoaXAgSTJDIGludGVyZmFjZXMgKDIgY2hhbm5lbHMpLgogCi1jb25maWcgSTJDX1NJTVRFQwotCXRyaXN0YXRlICJTaW10ZWMgR2VuZXJpYyBJMkMgaW50ZXJmYWNlIgotCXNlbGVjdCBJMkNfQUxHT0JJVAorY29uZmlnIEkyQ19TVFVCCisJdHJpc3RhdGUgIkkyQy9TTUJ1cyBUZXN0IFN0dWIiCisJZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwgJiYgbQorCWRlZmF1bHQgJ24nCiAJaGVscAotCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IKLQkgIHRoZSBTaW10ZWMgR2VuZXJpYyBJMkMgaW50ZXJmYWNlLiBUaGlzIGRyaXZlciBpcyBmb3IgdGhlCi0JICBzaW1wbGUgSTJDIGJ1cyB1c2VkIG9uIG5ld2VyIFNpbXRlYyBwcm9kdWN0cyBmb3IgZ2VuZXJhbAotCSAgSTJDLCBzdWNoIGFzIEREQyBvbiB0aGUgU2ltdGVjIEJCRDIwMTZBLgorCSAgVGhpcyBtb2R1bGUgbWF5IGJlIHVzZWZ1bCB0byBkZXZlbG9wZXJzIG9mIFNNQnVzIGNsaWVudCBkcml2ZXJzLAorCSAgZXNwZWNpYWxseSBmb3IgY2VydGFpbiBraW5kcyBvZiBzZW5zb3IgY2hpcHMuCiAKLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXNpbXRlYy4KKwkgIElmIHlvdSBkbyBidWlsZCB0aGlzIG1vZHVsZSwgYmUgc3VyZSB0byByZWFkIHRoZSBub3RlcyBhbmQgd2FybmluZ3MKKwkgIGluIDxmaWxlOkRvY3VtZW50YXRpb24vaTJjL2kyYy1zdHViPi4KKworCSAgSWYgeW91IGRvbid0IGtub3cgd2hhdCB0byBkbyBoZXJlLCBkZWZpbml0ZWx5IHNheSBOLgogCiBjb25maWcgU0N4MjAwX0kyQwogCXRyaXN0YXRlICJOYXRTZW1pIFNDeDIwMCBJMkMgdXNpbmcgR1BJTyBwaW5zIChERVBSRUNBVEVEKSIKQEAgLTQ4OSwyMjAgKzcwMCw0IEBACiAJICBUaGlzIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgc2N4MjAwX2FjYi4KIAotY29uZmlnIEkyQ19TSVM1NTk1Ci0JdHJpc3RhdGUgIlNpUyA1NTk1IgotCWRlcGVuZHMgb24gUENJCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlCi0JICBTaVM1NTk1IFNNQnVzIChhIHN1YnNldCBvZiBJMkMpIGludGVyZmFjZS4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXNpczU1OTUuCi0KLWNvbmZpZyBJMkNfU0lTNjMwCi0JdHJpc3RhdGUgIlNpUyA2MzAvNzMwIgotCWRlcGVuZHMgb24gUENJCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlCi0JICBTaVM2MzAgYW5kIFNpUzczMCBTTUJ1cyAoYSBzdWJzZXQgb2YgSTJDKSBpbnRlcmZhY2UuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGkyYy1zaXM2MzAuCi0KLWNvbmZpZyBJMkNfU0lTOTZYCi0JdHJpc3RhdGUgIlNpUyA5NngiCi0JZGVwZW5kcyBvbiBQQ0kKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUgU2lTCi0JICA5NnggU01CdXMgKGEgc3Vic2V0IG9mIEkyQykgaW50ZXJmYWNlcy4gIFNwZWNpZmljYWxseSwgdGhlIGZvbGxvd2luZwotCSAgY2hpcHNldHMgYXJlIHN1cHBvcnRlZDoKLQkgICAgNjQ1Lzk2MQotCSAgICA2NDVEWC85NjEKLQkgICAgNjQ1RFgvOTYyCi0JICAgIDY0OC85NjEKLQkgICAgNjUwLzk2MQotCSAgICA3MzUKLQkgICAgNzQ1Ci0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGkyYy1zaXM5NnguCi0KLWNvbmZpZyBJMkNfVEFPU19FVk0KLQl0cmlzdGF0ZSAiVEFPUyBldmFsdWF0aW9uIG1vZHVsZSIKLQlkZXBlbmRzIG9uIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBTRVJJTwotCXNlbGVjdCBTRVJJT19TRVJQT1JUCi0JZGVmYXVsdCBuCi0JaGVscAotCSAgVGhpcyBzdXBwb3J0cyBUQU9TIGV2YWx1YXRpb24gbW9kdWxlcyBvbiBzZXJpYWwgcG9ydC4gSW4gb3JkZXIgdG8KLQkgIHVzZSB0aGlzIGRyaXZlciwgeW91IHdpbGwgbmVlZCB0aGUgaW5wdXRhdHRhY2ggdG9vbCwgd2hpY2ggaXMgcGFydAotCSAgb2YgdGhlIGlucHV0LXV0aWxzIHBhY2thZ2UuCi0KLQkgIElmIHVuc3VyZSwgc2F5IE4uCi0KLQkgIFRoaXMgc3VwcG9ydCBpcyBhbHNvIGF2YWlsYWJsZSBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBpMmMtdGFvcy1ldm0uCi0KLWNvbmZpZyBJMkNfU1RVQgotCXRyaXN0YXRlICJJMkMvU01CdXMgVGVzdCBTdHViIgotCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMICYmIG0KLQlkZWZhdWx0ICduJwotCWhlbHAKLQkgIFRoaXMgbW9kdWxlIG1heSBiZSB1c2VmdWwgdG8gZGV2ZWxvcGVycyBvZiBTTUJ1cyBjbGllbnQgZHJpdmVycywKLQkgIGVzcGVjaWFsbHkgZm9yIGNlcnRhaW4ga2luZHMgb2Ygc2Vuc29yIGNoaXBzLgotCi0JICBJZiB5b3UgZG8gYnVpbGQgdGhpcyBtb2R1bGUsIGJlIHN1cmUgdG8gcmVhZCB0aGUgbm90ZXMgYW5kIHdhcm5pbmdzCi0JICBpbiA8ZmlsZTpEb2N1bWVudGF0aW9uL2kyYy9pMmMtc3R1Yj4uCi0KLQkgIElmIHlvdSBkb24ndCBrbm93IHdoYXQgdG8gZG8gaGVyZSwgZGVmaW5pdGVseSBzYXkgTi4KLQotY29uZmlnIEkyQ19USU5ZX1VTQgotCXRyaXN0YXRlICJJMkMtVGlueS1VU0IiCi0JZGVwZW5kcyBvbiBVU0IKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyB0byB0aGlzIG9wdGlvbiwgc3VwcG9ydCB3aWxsIGJlIGluY2x1ZGVkIGZvciB0aGUKLQkgIGkyYy10aW55LXVzYiwgYSBzaW1wbGUgZG8taXQteW91cnNlbGYgVVNCIHRvIEkyQyBpbnRlcmZhY2UuIFNlZQotCSAgaHR0cDovL3d3dy5oYXJiYXVtLm9yZy90aWxsL2kyY190aW55X3VzYiBmb3IgaGFyZHdhcmUgZGV0YWlscy4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXRpbnktdXNiLgotCi1jb25maWcgSTJDX1ZFUlNBVElMRQotCXRyaXN0YXRlICJBUk0gVmVyc2F0aWxlL1JlYWx2aWV3IEkyQyBidXMgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIEFSQ0hfVkVSU0FUSUxFIHx8IEFSQ0hfUkVBTFZJRVcKLQlzZWxlY3QgSTJDX0FMR09CSVQKLQloZWxwCi0JICBTYXkgeWVzIGlmIHlvdSB3YW50IHRvIHN1cHBvcnQgdGhlIEkyQyBzZXJpYWwgYnVzIG9uIEFSTXMgVmVyc2F0aWxlCi0JICByYW5nZSBvZiBwbGF0Zm9ybXMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGkyYy12ZXJzYXRpbGUuCi0KLWNvbmZpZyBJMkNfQUNPUk4KLQl0cmlzdGF0ZSAiQWNvcm4gSU9DL0lPTUQgSTJDIGJ1cyBzdXBwb3J0IgotCWRlcGVuZHMgb24gQVJDSF9BQ09STgotCWRlZmF1bHQgeQotCXNlbGVjdCBJMkNfQUxHT0JJVAotCWhlbHAKLQkgIFNheSB5ZXMgaWYgeW91IHdhbnQgdG8gc3VwcG9ydCB0aGUgSTJDIGJ1cyBvbiBBY29ybiBwbGF0Zm9ybXMuCi0KLQkgIElmIHlvdSBkb24ndCBrbm93LCBzYXkgWS4KLQotY29uZmlnIEkyQ19WSUEKLQl0cmlzdGF0ZSAiVklBIDgyQzU4NkIiCi0JZGVwZW5kcyBvbiBQQ0kgJiYgRVhQRVJJTUVOVEFMCi0Jc2VsZWN0IEkyQ19BTEdPQklUCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlIFZJQQotICAgICAgICAgIDgyQzU4NkIgSTJDIGludGVyZmFjZQotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBpMmMtdmlhLgotCi1jb25maWcgSTJDX1ZJQVBSTwotCXRyaXN0YXRlICJWSUEgVlQ4MkM1OTYvODJDNjg2LzgyeHggYW5kIENYNzAwIgotCWRlcGVuZHMgb24gUENJCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlIFZJQQotCSAgVlQ4MkM1OTYgYW5kIGxhdGVyIFNNQnVzIGludGVyZmFjZS4gIFNwZWNpZmljYWxseSwgdGhlIGZvbGxvd2luZwotCSAgY2hpcHNldHMgYXJlIHN1cHBvcnRlZDoKLQkgICAgVlQ4MkM1OTZBL0IKLQkgICAgVlQ4MkM2ODZBL0IKLQkgICAgVlQ4MjMxCi0JICAgIFZUODIzMy9BCi0JICAgIFZUODIzNQotCSAgICBWVDgyMzdSL0EvUwotCSAgICBWVDgyNTEKLQkgICAgQ1g3MDAKLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXZpYXByby4KLQotY29uZmlnIEkyQ19WT09ET08zCi0JdHJpc3RhdGUgIlZvb2RvbyAzIgotCWRlcGVuZHMgb24gUENJCi0Jc2VsZWN0IEkyQ19BTEdPQklUCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlCi0JICBWb29kb28gMyBJMkMgaW50ZXJmYWNlLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBpMmMtdm9vZG9vMy4KLQotY29uZmlnIEkyQ19QQ0FfSVNBCi0JdHJpc3RhdGUgIlBDQTk1NjQgb24gYW4gSVNBIGJ1cyIKLQlkZXBlbmRzIG9uIElTQQotCXNlbGVjdCBJMkNfQUxHT1BDQQotCWRlZmF1bHQgbgotCWhlbHAKLQkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIElTQSBib2FyZHMgdXNpbmcgdGhlIFBoaWxpcHMgUENBOTU2NAotCSAgcGFyYWxsZWwgYnVzIHRvIEkyQyBidXMgY29udHJvbGxlci4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXBjYS1pc2EuCi0KLQkgIFRoaXMgZGV2aWNlIGlzIGFsbW9zdCB1bmRldGVjdGFibGUgYW5kIHVzaW5nIHRoaXMgZHJpdmVyIG9uIGEKLQkgIHN5c3RlbSB3aGljaCBkb2Vzbid0IGhhdmUgdGhpcyBkZXZpY2Ugd2lsbCByZXN1bHQgaW4gbG9uZwotCSAgZGVsYXlzIHdoZW4gSTJDL1NNQnVzIGNoaXAgZHJpdmVycyBhcmUgbG9hZGVkIChlLmcuIGF0IGJvb3QKLQkgIHRpbWUpLiAgSWYgdW5zdXJlLCBzYXkgTi4KLQotY29uZmlnIEkyQ19QQ0FfUExBVEZPUk0KLQl0cmlzdGF0ZSAiUENBOTU2NCBhcyBwbGF0Zm9ybSBkZXZpY2UiCi0Jc2VsZWN0IEkyQ19BTEdPUENBCi0JZGVmYXVsdCBuCi0JaGVscAotCSAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgYSBtZW1vcnkgbWFwcGVkIFBoaWxpcHMgUENBOTU2NAotCSAgcGFyYWxsZWwgYnVzIHRvIEkyQyBidXMgY29udHJvbGxlci4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXBjYS1wbGF0Zm9ybS4KLQotY29uZmlnIEkyQ19NVjY0WFhYCi0JdHJpc3RhdGUgIk1hcnZlbGwgbXY2NHh4eCBJMkMgQ29udHJvbGxlciIKLQlkZXBlbmRzIG9uIChNVjY0WDYwIHx8IFBMQVRfT1JJT04pICYmIEVYUEVSSU1FTlRBTAotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIHRvIHRoaXMgb3B0aW9uLCBzdXBwb3J0IHdpbGwgYmUgaW5jbHVkZWQgZm9yIHRoZQotCSAgYnVpbHQtaW4gSTJDIGludGVyZmFjZSBvbiB0aGUgTWFydmVsbCA2NHh4eCBsaW5lIG9mIGhvc3QgYnJpZGdlcy4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLW12NjR4eHguCi0KLWNvbmZpZyBJMkNfUE5YCi0JdHJpc3RhdGUgIkkyQyBidXMgc3VwcG9ydCBmb3IgUGhpbGlwcyBQTlggdGFyZ2V0cyIKLQlkZXBlbmRzIG9uIEFSQ0hfUE5YNDAwOAotCWhlbHAKLQkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBQaGlsaXBzIElQMzIwNCBJMkMgSVAgYmxvY2sgbWFzdGVyIGFuZC9vcgotCSAgc2xhdmUgY29udHJvbGxlcgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBpMmMtcG54LgotCi1jb25maWcgSTJDX1BNQ01TUAotCXRyaXN0YXRlICJQTUMgTVNQIEkyQyBUV0kgQ29udHJvbGxlciIKLQlkZXBlbmRzIG9uIFBNQ19NU1AKLQloZWxwCi0JICBUaGlzIGRyaXZlciBzdXBwb3J0cyB0aGUgUE1DIFRXSSBjb250cm9sbGVyIG9uIE1TUCBkZXZpY2VzLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBtb2R1bGUuIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBpMmMtcG1jbXNwLgotCi1jb25maWcgSTJDX1NINzc2MAotCXRyaXN0YXRlICJSZW5lc2FzIFNINzc2MCBJMkMgQ29udHJvbGxlciIKLQlkZXBlbmRzIG9uIENQVV9TVUJUWVBFX1NINzc2MAotCWhlbHAKLQkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSAyIEkyQyBpbnRlcmZhY2VzIG9uIHRoZSBSZW5lc2FzIFNINzc2MC4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgaTJjLXNoNzc2MC4KLQotY29uZmlnIEkyQ19TSF9NT0JJTEUKLQl0cmlzdGF0ZSAiU3VwZXJIIE1vYmlsZSBJMkMgQ29udHJvbGxlciIKLQlkZXBlbmRzIG9uIFNVUEVSSAotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIHRvIHRoaXMgb3B0aW9uLCBzdXBwb3J0IHdpbGwgYmUgaW5jbHVkZWQgZm9yIHRoZQotCSAgYnVpbHQtaW4gSTJDIGludGVyZmFjZSBvbiB0aGUgUmVuZXNhcyBTSC1Nb2JpbGUgcHJvY2Vzc29yLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBpMmMtc2hfbW9iaWxlLgotCiBlbmRtZW51CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvTWFrZWZpbGUgYi9kcml2ZXJzL2kyYy9idXNzZXMvTWFrZWZpbGUKaW5kZXggZThjODgyYS4uOTdkYmZhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9NYWtlZmlsZQpAQCAtMiw1NyArMiw2OCBAQAogIyBNYWtlZmlsZSBmb3IgdGhlIGkyYyBidXMgZHJpdmVycy4KICMKIAorIyBQQyBTTUJ1cyBob3N0IGNvbnRyb2xsZXIgZHJpdmVycwogb2JqLSQoQ09ORklHX0kyQ19BTEkxNTM1KQkrPSBpMmMtYWxpMTUzNS5vCiBvYmotJChDT05GSUdfSTJDX0FMSTE1NjMpCSs9IGkyYy1hbGkxNTYzLm8KIG9iai0kKENPTkZJR19JMkNfQUxJMTVYMykJKz0gaTJjLWFsaTE1eDMubwogb2JqLSQoQ09ORklHX0kyQ19BTUQ3NTYpCSs9IGkyYy1hbWQ3NTYubwogb2JqLSQoQ09ORklHX0kyQ19BTUQ3NTZfUzQ4ODIpCSs9IGkyYy1hbWQ3NTYtczQ4ODIubwogb2JqLSQoQ09ORklHX0kyQ19BTUQ4MTExKQkrPSBpMmMtYW1kODExMS5vCi1vYmotJChDT05GSUdfSTJDX0FUOTEpCQkrPSBpMmMtYXQ5MS5vCi1vYmotJChDT05GSUdfSTJDX0FVMTU1MCkJKz0gaTJjLWF1MTU1MC5vCi1vYmotJChDT05GSUdfSTJDX0JMQUNLRklOX1RXSSkJKz0gaTJjLWJmaW4tdHdpLm8KLW9iai0kKENPTkZJR19JMkNfREFWSU5DSSkJKz0gaTJjLWRhdmluY2kubwotb2JqLSQoQ09ORklHX0kyQ19FTEVLVE9SKQkrPSBpMmMtZWxla3Rvci5vCi1vYmotJChDT05GSUdfSTJDX0dQSU8pCQkrPSBpMmMtZ3Bpby5vCi1vYmotJChDT05GSUdfSTJDX0hZRFJBKQkJKz0gaTJjLWh5ZHJhLm8KIG9iai0kKENPTkZJR19JMkNfSTgwMSkJCSs9IGkyYy1pODAxLm8KLW9iai0kKENPTkZJR19JMkNfSTgxMCkJCSs9IGkyYy1pODEwLm8KLW9iai0kKENPTkZJR19JMkNfSUJNX0lJQykJKz0gaTJjLWlibV9paWMubwotb2JqLSQoQ09ORklHX0kyQ19JT1AzWFgpCSs9IGkyYy1pb3AzeHgubwotb2JqLSQoQ09ORklHX0kyQ19JWFAyMDAwKQkrPSBpMmMtaXhwMjAwMC5vCi1vYmotJChDT05GSUdfSTJDX1BPV0VSTUFDKQkrPSBpMmMtcG93ZXJtYWMubwotb2JqLSQoQ09ORklHX0kyQ19NUEMpCQkrPSBpMmMtbXBjLm8KLW9iai0kKENPTkZJR19JMkNfTVY2NFhYWCkJKz0gaTJjLW12NjR4eHgubworb2JqLSQoQ09ORklHX0kyQ19JU0NIKQkJKz0gaTJjLWlzY2gubwogb2JqLSQoQ09ORklHX0kyQ19ORk9SQ0UyKQkrPSBpMmMtbmZvcmNlMi5vCi1vYmotJChDT05GSUdfSTJDX09DT1JFUykJKz0gaTJjLW9jb3Jlcy5vCi1vYmotJChDT05GSUdfSTJDX09NQVApCQkrPSBpMmMtb21hcC5vCi1vYmotJChDT05GSUdfSTJDX1BBUlBPUlQpCSs9IGkyYy1wYXJwb3J0Lm8KLW9iai0kKENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCkJKz0gaTJjLXBhcnBvcnQtbGlnaHQubwotb2JqLSQoQ09ORklHX0kyQ19QQVNFTUkpCSs9IGkyYy1wYXNlbWkubwotb2JqLSQoQ09ORklHX0kyQ19QQ0FfSVNBKQkrPSBpMmMtcGNhLWlzYS5vCi1vYmotJChDT05GSUdfSTJDX1BDQV9QTEFURk9STSkJKz0gaTJjLXBjYS1wbGF0Zm9ybS5vCitvYmotJChDT05GSUdfSTJDX05GT1JDRTJfUzQ5ODUpCSs9IGkyYy1uZm9yY2UyLXM0OTg1Lm8KIG9iai0kKENPTkZJR19JMkNfUElJWDQpCQkrPSBpMmMtcGlpeDQubwotb2JqLSQoQ09ORklHX0kyQ19QTUNNU1ApCSs9IGkyYy1wbWNtc3Aubwotb2JqLSQoQ09ORklHX0kyQ19QTlgpCQkrPSBpMmMtcG54Lm8KLW9iai0kKENPTkZJR19JMkNfUFJPU0FWQUdFKQkrPSBpMmMtcHJvc2F2YWdlLm8KLW9iai0kKENPTkZJR19JMkNfUFhBKQkJKz0gaTJjLXB4YS5vCi1vYmotJChDT05GSUdfSTJDX1MzQzI0MTApCSs9IGkyYy1zM2MyNDEwLm8KLW9iai0kKENPTkZJR19JMkNfU0FWQUdFNCkJKz0gaTJjLXNhdmFnZTQubwotb2JqLSQoQ09ORklHX0kyQ19TSDc3NjApCSs9IGkyYy1zaDc3NjAubwotb2JqLSQoQ09ORklHX0kyQ19TSF9NT0JJTEUpCSs9IGkyYy1zaF9tb2JpbGUubwotb2JqLSQoQ09ORklHX0kyQ19TSUJZVEUpCSs9IGkyYy1zaWJ5dGUubwotb2JqLSQoQ09ORklHX0kyQ19TSU1URUMpCSs9IGkyYy1zaW10ZWMubwogb2JqLSQoQ09ORklHX0kyQ19TSVM1NTk1KQkrPSBpMmMtc2lzNTU5NS5vCiBvYmotJChDT05GSUdfSTJDX1NJUzYzMCkJKz0gaTJjLXNpczYzMC5vCiBvYmotJChDT05GSUdfSTJDX1NJUzk2WCkJKz0gaTJjLXNpczk2eC5vCi1vYmotJChDT05GSUdfSTJDX1NUVUIpCQkrPSBpMmMtc3R1Yi5vCi1vYmotJChDT05GSUdfSTJDX1RBT1NfRVZNKQkrPSBpMmMtdGFvcy1ldm0ubwotb2JqLSQoQ09ORklHX0kyQ19USU5ZX1VTQikJKz0gaTJjLXRpbnktdXNiLm8KLW9iai0kKENPTkZJR19JMkNfVkVSU0FUSUxFKQkrPSBpMmMtdmVyc2F0aWxlLm8KLW9iai0kKENPTkZJR19JMkNfQUNPUk4pCQkrPSBpMmMtYWNvcm4ubwogb2JqLSQoQ09ORklHX0kyQ19WSUEpCQkrPSBpMmMtdmlhLm8KIG9iai0kKENPTkZJR19JMkNfVklBUFJPKQkrPSBpMmMtdmlhcHJvLm8KKworIyBNYWMgU01CdXMgaG9zdCBjb250cm9sbGVyIGRyaXZlcnMKK29iai0kKENPTkZJR19JMkNfSFlEUkEpCQkrPSBpMmMtaHlkcmEubworb2JqLSQoQ09ORklHX0kyQ19QT1dFUk1BQykJKz0gaTJjLXBvd2VybWFjLm8KKworIyBFbWJlYmJlZCBzeXN0ZW0gSTJDL1NNQnVzIGhvc3QgY29udHJvbGxlciBkcml2ZXJzCitvYmotJChDT05GSUdfSTJDX0FUOTEpCQkrPSBpMmMtYXQ5MS5vCitvYmotJChDT05GSUdfSTJDX0FVMTU1MCkJKz0gaTJjLWF1MTU1MC5vCitvYmotJChDT05GSUdfSTJDX0JMQUNLRklOX1RXSSkJKz0gaTJjLWJmaW4tdHdpLm8KK29iai0kKENPTkZJR19JMkNfQ1BNKQkJKz0gaTJjLWNwbS5vCitvYmotJChDT05GSUdfSTJDX0RBVklOQ0kpCSs9IGkyYy1kYXZpbmNpLm8KK29iai0kKENPTkZJR19JMkNfR1BJTykJCSs9IGkyYy1ncGlvLm8KK29iai0kKENPTkZJR19JMkNfSUJNX0lJQykJKz0gaTJjLWlibV9paWMubworb2JqLSQoQ09ORklHX0kyQ19JT1AzWFgpCSs9IGkyYy1pb3AzeHgubworb2JqLSQoQ09ORklHX0kyQ19JWFAyMDAwKQkrPSBpMmMtaXhwMjAwMC5vCitvYmotJChDT05GSUdfSTJDX01QQykJCSs9IGkyYy1tcGMubworb2JqLSQoQ09ORklHX0kyQ19NVjY0WFhYKQkrPSBpMmMtbXY2NHh4eC5vCitvYmotJChDT05GSUdfSTJDX09DT1JFUykJKz0gaTJjLW9jb3Jlcy5vCitvYmotJChDT05GSUdfSTJDX09NQVApCQkrPSBpMmMtb21hcC5vCitvYmotJChDT05GSUdfSTJDX1BBU0VNSSkJKz0gaTJjLXBhc2VtaS5vCitvYmotJChDT05GSUdfSTJDX1BOWCkJCSs9IGkyYy1wbngubworb2JqLSQoQ09ORklHX0kyQ19QWEEpCQkrPSBpMmMtcHhhLm8KK29iai0kKENPTkZJR19JMkNfUzNDMjQxMCkJKz0gaTJjLXMzYzI0MTAubworb2JqLSQoQ09ORklHX0kyQ19TSDc3NjApCSs9IGkyYy1zaDc3NjAubworb2JqLSQoQ09ORklHX0kyQ19TSF9NT0JJTEUpCSs9IGkyYy1zaF9tb2JpbGUubworb2JqLSQoQ09ORklHX0kyQ19TSU1URUMpCSs9IGkyYy1zaW10ZWMubworb2JqLSQoQ09ORklHX0kyQ19WRVJTQVRJTEUpCSs9IGkyYy12ZXJzYXRpbGUubworCisjIEV4dGVybmFsIEkyQy9TTUJ1cyBhZGFwdGVyIGRyaXZlcnMKK29iai0kKENPTkZJR19JMkNfUEFSUE9SVCkJKz0gaTJjLXBhcnBvcnQubworb2JqLSQoQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUKQkrPSBpMmMtcGFycG9ydC1saWdodC5vCitvYmotJChDT05GSUdfSTJDX1RBT1NfRVZNKQkrPSBpMmMtdGFvcy1ldm0ubworb2JqLSQoQ09ORklHX0kyQ19USU5ZX1VTQikJKz0gaTJjLXRpbnktdXNiLm8KKworIyBHcmFwaGljcyBhZGFwdGVyIEkyQy9EREMgY2hhbm5lbCBkcml2ZXJzCiBvYmotJChDT05GSUdfSTJDX1ZPT0RPTzMpCSs9IGkyYy12b29kb28zLm8KKworIyBPdGhlciBJMkMvU01CdXMgYnVzIGRyaXZlcnMKK29iai0kKENPTkZJR19JMkNfQUNPUk4pCQkrPSBpMmMtYWNvcm4ubworb2JqLSQoQ09ORklHX0kyQ19FTEVLVE9SKQkrPSBpMmMtZWxla3Rvci5vCitvYmotJChDT05GSUdfSTJDX1BDQV9JU0EpCSs9IGkyYy1wY2EtaXNhLm8KK29iai0kKENPTkZJR19JMkNfUENBX1BMQVRGT1JNKQkrPSBpMmMtcGNhLXBsYXRmb3JtLm8KK29iai0kKENPTkZJR19JMkNfUE1DTVNQKQkrPSBpMmMtcG1jbXNwLm8KK29iai0kKENPTkZJR19JMkNfU0lCWVRFKQkrPSBpMmMtc2lieXRlLm8KK29iai0kKENPTkZJR19JMkNfU1RVQikJCSs9IGkyYy1zdHViLm8KIG9iai0kKENPTkZJR19TQ3gyMDBfQUNCKQkrPSBzY3gyMDBfYWNiLm8KIG9iai0kKENPTkZJR19TQ3gyMDBfSTJDKQkrPSBzY3gyMDBfaTJjLm8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbGkxNTM1LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWFsaTE1MzUuYwppbmRleCBmMTQzNzJhLi45Y2VhZDliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWFsaTE1MzUuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWFsaTE1MzUuYwpAQCAtMSw2ICsxLDQgQEAKIC8qCi0gICAgaTJjLWFsaTE1MzUuYyAtIFBhcnQgb2YgbG1fc2Vuc29ycywgTGludXgga2VybmVsIG1vZHVsZXMgZm9yIGhhcmR3YXJlCi0gICAgICAgICAgICAgICAgICAgIG1vbml0b3JpbmcKICAgICBDb3B5cmlnaHQgKGMpIDIwMDAgIEZyb2RvIExvb2lqYWFyZCA8ZnJvZG9sQGRkcy5ubD4sIAogICAgICAgICAgICAgICAgICAgICAgICAgUGhpbGlwIEVkZWxicm9jayA8cGhpbEBuZXRyb2VkZ2UuY29tPiwgCiAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrIEQuIFN0dWRlYmFrZXIgPG1kc3h5ejEyM0B5YWhvby5jb20+LApAQCAtNjEsNiArNTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKIApAQCAtMTU5LDYgKzE1OCwxMSBAQAogCQlnb3RvIGV4aXQ7CiAJfQogCisJcmV0dmFsID0gYWNwaV9jaGVja19yZWdpb24oYWxpMTUzNV9zbWJhLCBBTEkxNTM1X1NNQl9JT1NJWkUsCisJCQkJICAgYWxpMTUzNV9kcml2ZXIubmFtZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBleGl0OworCiAJaWYgKCFyZXF1ZXN0X3JlZ2lvbihhbGkxNTM1X3NtYmEsIEFMSTE1MzVfU01CX0lPU0laRSwKIAkJCSAgICBhbGkxNTM1X2RyaXZlci5uYW1lKSkgewogCQlkZXZfZXJyKCZkZXYtPmRldiwgIkFMSTE1MzVfc21iIHJlZ2lvbiAweCV4IGFscmVhZHkgaW4gdXNlIVxuIiwKQEAgLTI1OSw3ICsyNjMsNyBAQAogCQkJZGV2X2VycigmYWRhcC0+ZGV2LAogCQkJCSJTTUJ1cyByZXNldCBmYWlsZWQhICgweCUwMngpIC0gY29udHJvbGxlciBvciAiCiAJCQkJImRldmljZSBvbiBidXMgaXMgcHJvYmFibHkgaHVuZ1xuIiwgdGVtcCk7Ci0JCQlyZXR1cm4gLTE7CisJCQlyZXR1cm4gLUVCVVNZOwogCQl9CiAJfSBlbHNlIHsKIAkJLyogY2hlY2sgYW5kIGNsZWFyIGRvbmUgYml0ICovCkBAIC0yODEsMTIgKzI4NSwxMiBAQAogCiAJLyogSWYgdGhlIFNNQnVzIGlzIHN0aWxsIGJ1c3ksIHdlIGdpdmUgdXAgKi8KIAlpZiAodGltZW91dCA+PSBNQVhfVElNRU9VVCkgewotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVUSU1FRE9VVDsKIAkJZGV2X2VycigmYWRhcC0+ZGV2LCAiU01CdXMgVGltZW91dCFcbiIpOwogCX0KIAogCWlmICh0ZW1wICYgQUxJMTUzNV9TVFNfRkFJTCkgewotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVJTzsKIAkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiRXJyb3I6IEZhaWxlZCBidXMgdHJhbnNhY3Rpb25cbiIpOwogCX0KIApAQCAtMjk1LDcgKzI5OSw3IEBACiAJICogZG8gYSBwcmludGsuICBUaGlzIG1lYW5zIHRoYXQgYnVzIGNvbGxpc2lvbnMgZ28gdW5yZXBvcnRlZC4KIAkgKi8KIAlpZiAodGVtcCAmIEFMSTE1MzVfU1RTX0JVU0VSUikgewotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVOWElPOwogCQlkZXZfZGJnKCZhZGFwLT5kZXYsCiAJCQkiRXJyb3I6IG5vIHJlc3BvbnNlIG9yIGJ1cyBjb2xsaXNpb24gQUREPSUwMnhcbiIsCiAJCQlpbmJfcChTTUJIU1RBREQpKTsKQEAgLTMwMywxMyArMzA3LDEzIEBACiAKIAkvKiBoYXZlbid0IGV2ZXIgc2VlbiB0aGlzICovCiAJaWYgKHRlbXAgJiBBTEkxNTM1X1NUU19ERVYpIHsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FSU87CiAJCWRldl9lcnIoJmFkYXAtPmRldiwgIkVycm9yOiBkZXZpY2UgZXJyb3JcbiIpOwogCX0KIAogCS8qIGNoZWNrIHRvIHNlZSBpZiB0aGUgImNvbW1hbmQgY29tcGxldGUiIGluZGljYXRpb24gaXMgc2V0ICovCiAJaWYgKCEodGVtcCAmIEFMSTE1MzVfU1RTX0RPTkUpKSB7Ci0JCXJlc3VsdCA9IC0xOworCQlyZXN1bHQgPSAtRVRJTUVET1VUOwogCQlkZXZfZXJyKCZhZGFwLT5kZXYsICJFcnJvcjogY29tbWFuZCBuZXZlciBjb21wbGV0ZWRcbiIpOwogCX0KIApAQCAtMzMyLDcgKzMzNiw3IEBACiAJcmV0dXJuIHJlc3VsdDsKIH0KIAotLyogUmV0dXJuIC0xIG9uIGVycm9yLiAqLworLyogUmV0dXJuIG5lZ2F0aXZlIGVycm5vIG9uIGVycm9yLiAqLwogc3RhdGljIHMzMiBhbGkxNTM1X2FjY2VzcyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIHUxNiBhZGRyLAogCQkJICB1bnNpZ25lZCBzaG9ydCBmbGFncywgY2hhciByZWFkX3dyaXRlLCB1OCBjb21tYW5kLAogCQkJICBpbnQgc2l6ZSwgdW5pb24gaTJjX3NtYnVzX2RhdGEgKmRhdGEpCkBAIC0zNTcsMTAgKzM2MSw2IEBACiAJb3V0Yl9wKDB4RkYsIFNNQkhTVFNUUyk7CiAKIAlzd2l0Y2ggKHNpemUpIHsKLQljYXNlIEkyQ19TTUJVU19QUk9DX0NBTEw6Ci0JCWRldl9lcnIoJmFkYXAtPmRldiwgIkkyQ19TTUJVU19QUk9DX0NBTEwgbm90IHN1cHBvcnRlZCFcbiIpOwotCQlyZXN1bHQgPSAtMTsKLQkJZ290byBFWElUOwogCWNhc2UgSTJDX1NNQlVTX1FVSUNLOgogCQlvdXRiX3AoKChhZGRyICYgMHg3ZikgPDwgMSkgfCAocmVhZF93cml0ZSAmIDB4MDEpLAogCQkgICAgICAgU01CSFNUQUREKTsKQEAgLTQxOCwxNCArNDE4LDE2IEBACiAJCQkJb3V0Yl9wKGRhdGEtPmJsb2NrW2ldLCBTTUJCTEtEQVQpOwogCQl9CiAJCWJyZWFrOwotCX0KLQotCWlmIChhbGkxNTM1X3RyYW5zYWN0aW9uKGFkYXApKSB7Ci0JCS8qIEVycm9yIGluIHRyYW5zYWN0aW9uICovCi0JCXJlc3VsdCA9IC0xOworCWRlZmF1bHQ6CisJCWRldl93YXJuKCZhZGFwLT5kZXYsICJVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiAlZFxuIiwgc2l6ZSk7CisJCXJlc3VsdCA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIEVYSVQ7CiAJfQogCisJcmVzdWx0ID0gYWxpMTUzNV90cmFuc2FjdGlvbihhZGFwKTsKKwlpZiAocmVzdWx0KQorCQlnb3RvIEVYSVQ7CisKIAlpZiAoKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFKSB8fCAoc2l6ZSA9PSBBTEkxNTM1X1FVSUNLKSkgewogCQlyZXN1bHQgPSAwOwogCQlnb3RvIEVYSVQ7CkBAIC00NzUsNyArNDc3LDcgQEAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgYWxpMTUzNV9hZGFwdGVyID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuaWQJCT0gSTJDX0hXX1NNQlVTX0FMSTE1MzUsCi0JLmNsYXNzICAgICAgICAgID0gSTJDX0NMQVNTX0hXTU9OLAorCS5jbGFzcyAgICAgICAgICA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJLmFsZ28JCT0gJnNtYnVzX2FsZ29yaXRobSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYWxpMTU2My5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbGkxNTYzLmMKaW5kZXggNmI2ODA3NC4uZmMzZTViMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbGkxNTYzLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbGkxNTYzLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogCiAjZGVmaW5lIEFMSTE1NjNfTUFYX1RJTUVPVVQJNTAwCiAjZGVmaW5lCUFMSTE1NjNfU01CQkEJCTB4ODAKQEAgLTY3LDYgKzY4LDcgQEAKIHsKIAl1MzIgZGF0YTsKIAlpbnQgdGltZW91dDsKKwlpbnQgc3RhdHVzID0gLUVJTzsKIAogCWRldl9kYmcoJmEtPmRldiwgIlRyYW5zYWN0aW9uIChwcmUpOiBTVFM9JTAyeCwgQ05UTDE9JTAyeCwgIgogCQkiQ05UTDI9JTAyeCwgQ01EPSUwMngsIEFERD0lMDJ4LCBEQVQwPSUwMngsIERBVDE9JTAyeFxuIiwKQEAgLTEwMywxMyArMTA1LDE1IEBACiAJCS8qIElzc3VlICdraWxsJyB0byBob3N0IGNvbnRyb2xsZXIgKi8KIAkJb3V0Yl9wKEhTVF9DTlRMMl9LSUxMLFNNQl9IU1RfQ05UTDIpOwogCQlkYXRhID0gaW5iX3AoU01CX0hTVF9TVFMpOworCQlzdGF0dXMgPSAtRVRJTUVET1VUOwogIAl9CiAKIAkvKiBkZXZpY2UgZXJyb3IgLSBubyByZXNwb25zZSwgaWdub3JlIHRoZSBhdXRvZGV0ZWN0aW9uIGNhc2UgKi8KLQlpZiAoKGRhdGEgJiBIU1RfU1RTX0RFVkVSUikgJiYgKHNpemUgIT0gSFNUX0NOVEwyX1FVSUNLKSkgewotCQlkZXZfZXJyKCZhLT5kZXYsICJEZXZpY2UgZXJyb3IhXG4iKTsKKwlpZiAoZGF0YSAmIEhTVF9TVFNfREVWRVJSKSB7CisJCWlmIChzaXplICE9IEhTVF9DTlRMMl9RVUlDSykKKwkJCWRldl9lcnIoJmEtPmRldiwgIkRldmljZSBlcnJvciFcbiIpOworCQlzdGF0dXMgPSAtRU5YSU87CiAJfQotCiAJLyogYnVzIGNvbGxpc2lvbiAqLwogCWlmIChkYXRhICYgSFNUX1NUU19CVVNFUlIpIHsKIAkJZGV2X2VycigmYS0+ZGV2LCAiQnVzIGNvbGxpc2lvbiFcbiIpOwpAQCAtMTIyLDEzICsxMjYsMTQgQEAKIAkJb3V0Yl9wKDB4MCxTTUJfSFNUX0NOVEwyKTsKIAl9CiAKLQlyZXR1cm4gLTE7CisJcmV0dXJuIHN0YXR1czsKIH0KIAogc3RhdGljIGludCBhbGkxNTYzX2Jsb2NrX3N0YXJ0KHN0cnVjdCBpMmNfYWRhcHRlciAqIGEpCiB7CiAJdTMyIGRhdGE7CiAJaW50IHRpbWVvdXQ7CisJaW50IHN0YXR1cyA9IC1FSU87CiAKIAlkZXZfZGJnKCZhLT5kZXYsICJCbG9jayAocHJlKTogU1RTPSUwMngsIENOVEwxPSUwMngsICIKIAkJIkNOVEwyPSUwMngsIENNRD0lMDJ4LCBBREQ9JTAyeCwgREFUMD0lMDJ4LCBEQVQxPSUwMnhcbiIsCkBAIC0xNjQsMTMgKzE2OSwyMCBAQAogCiAJaWYgKHRpbWVvdXQgJiYgIShkYXRhICYgSFNUX1NUU19CQUQpKQogCQlyZXR1cm4gMDsKKworCWlmICh0aW1lb3V0ID09IDApCisJCXN0YXR1cyA9IC1FVElNRURPVVQ7CisKKwlpZiAoZGF0YSAmIEhTVF9TVFNfREVWRVJSKQorCQlzdGF0dXMgPSAtRU5YSU87CisKIAlkZXZfZXJyKCZhLT5kZXYsICJTTUJ1cyBFcnJvcjogJXMlcyVzJXMlc1xuIiwKLQkJdGltZW91dCA/ICJUaW1lb3V0ICIgOiAiIiwKKwkJdGltZW91dCA/ICIiIDogIlRpbWVvdXQgIiwKIAkJZGF0YSAmIEhTVF9TVFNfRkFJTCA/ICJUcmFuc2FjdGlvbiBGYWlsZWQgIiA6ICIiLAogCQlkYXRhICYgSFNUX1NUU19CVVNFUlIgPyAiTm8gcmVzcG9uc2Ugb3IgQnVzIENvbGxpc2lvbiAiIDogIiIsCiAJCWRhdGEgJiBIU1RfU1RTX0RFVkVSUiA/ICJEZXZpY2UgRXJyb3IgIiA6ICIiLAogCQkhKGRhdGEgJiBIU1RfU1RTX0RPTkUpID8gIlRyYW5zYWN0aW9uIE5ldmVyIEZpbmlzaGVkICIgOiAiIik7Ci0JcmV0dXJuIC0xOworCXJldHVybiBzdGF0dXM7CiB9CiAKIHN0YXRpYyBpbnQgYWxpMTU2M19ibG9jayhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKiBhLCB1bmlvbiBpMmNfc21idXNfZGF0YSAqIGRhdGEsIHU4IHJ3KQpAQCAtMjM1LDEwICsyNDcsNiBAQAogCiAJLyogTWFwIHRoZSBzaXplIHRvIHdoYXQgdGhlIGNoaXAgdW5kZXJzdGFuZHMgKi8KIAlzd2l0Y2ggKHNpemUpIHsKLQljYXNlIEkyQ19TTUJVU19QUk9DX0NBTEw6Ci0JCWRldl9lcnIoJmEtPmRldiwgIkkyQ19TTUJVU19QUk9DX0NBTEwgbm90IHN1cHBvcnRlZCFcbiIpOwotCQllcnJvciA9IC1FSU5WQUw7Ci0JCWJyZWFrOwogCWNhc2UgSTJDX1NNQlVTX1FVSUNLOgogCQlzaXplID0gSFNUX0NOVEwyX1FVSUNLOwogCQlicmVhazsKQEAgLTI1NCw2ICsyNjIsMTAgQEAKIAljYXNlIEkyQ19TTUJVU19CTE9DS19EQVRBOgogCQlzaXplID0gSFNUX0NOVEwyX0JMT0NLOwogCQlicmVhazsKKwlkZWZhdWx0OgorCQlkZXZfd2FybigmYS0+ZGV2LCAiVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gJWRcbiIsIHNpemUpOworCQllcnJvciA9IC1FT1BOT1RTVVBQOworCQlnb3RvIERvbmU7CiAJfQogCiAJb3V0Yl9wKCgoYWRkciAmIDB4N2YpIDw8IDEpIHwgKHJ3ICYgMHgwMSksIFNNQl9IU1RfQUREKTsKQEAgLTM0NSw2ICszNTcsMTAgQEAKIAkJfQogCX0KIAorCWlmIChhY3BpX2NoZWNrX3JlZ2lvbihhbGkxNTYzX3NtYmEsIEFMSTE1NjNfU01CX0lPU0laRSwKKwkJCSAgICAgIGFsaTE1NjNfcGNpX2RyaXZlci5uYW1lKSkKKwkJZ290byBFcnI7CisKIAlpZiAoIXJlcXVlc3RfcmVnaW9uKGFsaTE1NjNfc21iYSwgQUxJMTU2M19TTUJfSU9TSVpFLAogCQkJICAgIGFsaTE1NjNfcGNpX2RyaXZlci5uYW1lKSkgewogCQlkZXZfZXJyKCZkZXYtPmRldiwgIkNvdWxkIG5vdCBhbGxvY2F0ZSBJL08gc3BhY2UgYXQgMHglMDR4XG4iLApAQCAtMzcxLDcgKzM4Nyw3IEBACiBzdGF0aWMgc3RydWN0IGkyY19hZGFwdGVyIGFsaTE1NjNfYWRhcHRlciA9IHsKIAkub3duZXIJPSBUSElTX01PRFVMRSwKIAkuaWQJPSBJMkNfSFdfU01CVVNfQUxJMTU2MywKLQkuY2xhc3MJPSBJMkNfQ0xBU1NfSFdNT04sCisJLmNsYXNzCT0gSTJDX0NMQVNTX0hXTU9OIHwgSTJDX0NMQVNTX1NQRCwKIAkuYWxnbwk9ICZhbGkxNTYzX2FsZ29yaXRobSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYWxpMTV4My5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbGkxNXgzLmMKaW5kZXggOTNiZjg3ZC4uMjM0ZmRkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbGkxNXgzLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbGkxNXgzLmMKQEAgLTEsNiArMSw0IEBACiAvKgotICAgIGFsaTE1eDMuYyAtIFBhcnQgb2YgbG1fc2Vuc29ycywgTGludXgga2VybmVsIG1vZHVsZXMgZm9yIGhhcmR3YXJlCi0gICAgICAgICAgICAgIG1vbml0b3JpbmcKICAgICBDb3B5cmlnaHQgKGMpIDE5OTkgIEZyb2RvIExvb2lqYWFyZCA8ZnJvZG9sQGRkcy5ubD4gYW5kCiAgICAgUGhpbGlwIEVkZWxicm9jayA8cGhpbEBuZXRyb2VkZ2UuY29tPiBhbmQKICAgICBNYXJrIEQuIFN0dWRlYmFrZXIgPG1kc3h5ejEyM0B5YWhvby5jb20+CkBAIC02OCw2ICs2Niw3IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAvKiBBTEkxNVgzIFNNQnVzIGFkZHJlc3Mgb2Zmc2V0cyAqLwpAQCAtMTY2LDYgKzE2NSwxMCBAQAogCWlmKGZvcmNlX2FkZHIpCiAJCWFsaTE1eDNfc21iYSA9IGZvcmNlX2FkZHIgJiB+KEFMSTE1WDNfU01CX0lPU0laRSAtIDEpOwogCisJaWYgKGFjcGlfY2hlY2tfcmVnaW9uKGFsaTE1eDNfc21iYSwgQUxJMTVYM19TTUJfSU9TSVpFLAorCQkJICAgICAgYWxpMTV4M19kcml2ZXIubmFtZSkpCisJCXJldHVybiAtRUJVU1k7CisKIAlpZiAoIXJlcXVlc3RfcmVnaW9uKGFsaTE1eDNfc21iYSwgQUxJMTVYM19TTUJfSU9TSVpFLAogCQkJICAgIGFsaTE1eDNfZHJpdmVyLm5hbWUpKSB7CiAJCWRldl9lcnIoJkFMSTE1WDNfZGV2LT5kZXYsCkBAIC0yODIsNyArMjg1LDcgQEAKIAkJCWRldl9lcnIoJmFkYXAtPmRldiwgIlNNQnVzIHJlc2V0IGZhaWxlZCEgKDB4JTAyeCkgLSAiCiAJCQkJImNvbnRyb2xsZXIgb3IgZGV2aWNlIG9uIGJ1cyBpcyBwcm9iYWJseSBodW5nXG4iLAogCQkJCXRlbXApOwotCQkJcmV0dXJuIC0xOworCQkJcmV0dXJuIC1FQlVTWTsKIAkJfQogCX0gZWxzZSB7CiAJCS8qIGNoZWNrIGFuZCBjbGVhciBkb25lIGJpdCAqLwpAQCAtMzA0LDEyICszMDcsMTIgQEAKIAogCS8qIElmIHRoZSBTTUJ1cyBpcyBzdGlsbCBidXN5LCB3ZSBnaXZlIHVwICovCiAJaWYgKHRpbWVvdXQgPj0gTUFYX1RJTUVPVVQpIHsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FVElNRURPVVQ7CiAJCWRldl9lcnIoJmFkYXAtPmRldiwgIlNNQnVzIFRpbWVvdXQhXG4iKTsKIAl9CiAKIAlpZiAodGVtcCAmIEFMSTE1WDNfU1RTX1RFUk0pIHsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FSU87CiAJCWRldl9kYmcoJmFkYXAtPmRldiwgIkVycm9yOiBGYWlsZWQgYnVzIHRyYW5zYWN0aW9uXG4iKTsKIAl9CiAKQEAgLTMyMCw3ICszMjMsNyBAQAogCSAgVGhpcyBtZWFucyB0aGF0IGJ1cyBjb2xsaXNpb25zIGdvIHVucmVwb3J0ZWQuCiAJKi8KIAlpZiAodGVtcCAmIEFMSTE1WDNfU1RTX0NPTEwpIHsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FTlhJTzsKIAkJZGV2X2RiZygmYWRhcC0+ZGV2LAogCQkJIkVycm9yOiBubyByZXNwb25zZSBvciBidXMgY29sbGlzaW9uIEFERD0lMDJ4XG4iLAogCQkJaW5iX3AoU01CSFNUQUREKSk7CkBAIC0zMjgsNyArMzMxLDcgQEAKIAogCS8qIGhhdmVuJ3QgZXZlciBzZWVuIHRoaXMgKi8KIAlpZiAodGVtcCAmIEFMSTE1WDNfU1RTX0RFVikgewotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVJTzsKIAkJZGV2X2VycigmYWRhcC0+ZGV2LCAiRXJyb3I6IGRldmljZSBlcnJvclxuIik7CiAJfQogCWRldl9kYmcoJmFkYXAtPmRldiwgIlRyYW5zYWN0aW9uIChwb3N0KTogU1RTPSUwMngsIENOVD0lMDJ4LCBDTUQ9JTAyeCwgIgpAQCAtMzM4LDcgKzM0MSw3IEBACiAJcmV0dXJuIHJlc3VsdDsKIH0KIAotLyogUmV0dXJuIC0xIG9uIGVycm9yLiAqLworLyogUmV0dXJuIG5lZ2F0aXZlIGVycm5vIG9uIGVycm9yLiAqLwogc3RhdGljIHMzMiBhbGkxNXgzX2FjY2VzcyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKiBhZGFwLCB1MTYgYWRkciwKIAkJICAgdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwgdTggY29tbWFuZCwKIAkJICAgaW50IHNpemUsIHVuaW9uIGkyY19zbWJ1c19kYXRhICogZGF0YSkKQEAgLTM2Miw5ICszNjUsNiBAQAogCX0KIAogCXN3aXRjaCAoc2l6ZSkgewotCWNhc2UgSTJDX1NNQlVTX1BST0NfQ0FMTDoKLQkJZGV2X2VycigmYWRhcC0+ZGV2LCAiSTJDX1NNQlVTX1BST0NfQ0FMTCBub3Qgc3VwcG9ydGVkIVxuIik7Ci0JCXJldHVybiAtMTsKIAljYXNlIEkyQ19TTUJVU19RVUlDSzoKIAkJb3V0Yl9wKCgoYWRkciAmIDB4N2YpIDw8IDEpIHwgKHJlYWRfd3JpdGUgJiAweDAxKSwKIAkJICAgICAgIFNNQkhTVEFERCk7CkBAIC00MTcsMTIgKzQxNywxNiBAQAogCQl9CiAJCXNpemUgPSBBTEkxNVgzX0JMT0NLX0RBVEE7CiAJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl93YXJuKCZhZGFwLT5kZXYsICJVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiAlZFxuIiwgc2l6ZSk7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKIAlvdXRiX3Aoc2l6ZSwgU01CSFNUQ05UKTsJLyogb3V0cHV0IGNvbW1hbmQgKi8KIAotCWlmIChhbGkxNXgzX3RyYW5zYWN0aW9uKGFkYXApKQkvKiBFcnJvciBpbiB0cmFuc2FjdGlvbiAqLwotCQlyZXR1cm4gLTE7CisJdGVtcCA9IGFsaTE1eDNfdHJhbnNhY3Rpb24oYWRhcCk7CisJaWYgKHRlbXApCisJCXJldHVybiB0ZW1wOwogCiAJaWYgKChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19XUklURSkgfHwgKHNpemUgPT0gQUxJMTVYM19RVUlDSykpCiAJCXJldHVybiAwOwpAQCAtNDcwLDcgKzQ3NCw3IEBACiBzdGF0aWMgc3RydWN0IGkyY19hZGFwdGVyIGFsaTE1eDNfYWRhcHRlciA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmlkCQk9IEkyQ19IV19TTUJVU19BTEkxNVgzLAotCS5jbGFzcyAgICAgICAgICA9IEkyQ19DTEFTU19IV01PTiwKKwkuY2xhc3MgICAgICAgICAgPSBJMkNfQ0xBU1NfSFdNT04gfCBJMkNfQ0xBU1NfU1BELAogCS5hbGdvCQk9ICZzbWJ1c19hbGdvcml0aG0sCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWFtZDc1Ni1zNDg4Mi5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbWQ3NTYtczQ4ODIuYwppbmRleCBjMzhhMGExLi4yZjE1MGUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWFtZDc1Ni1zNDg4Mi5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYW1kNzU2LXM0ODgyLmMKQEAgLTU4LDcgKzU4LDcgQEAKIAkvKiBXZSBleGNsdWRlIHRoZSBtdWx0aXBsZXhlZCBhZGRyZXNzZXMgKi8KIAlpZiAoYWRkciA9PSAweDRjIHx8IChhZGRyICYgMHhmYykgPT0gMHg1MCB8fCAoYWRkciAmIDB4ZmMpID09IDB4MzAKIAkgfHwgYWRkciA9PSAweDE4KQotCQlyZXR1cm4gLTE7CisJCXJldHVybiAtRU5YSU87CiAKIAltdXRleF9sb2NrKCZhbWQ3NTZfbG9jayk7CiAKQEAgLTg2LDcgKzg2LDcgQEAKIAogCS8qIFdlIGV4Y2x1ZGUgdGhlIG5vbi1tdWx0aXBsZXhlZCBhZGRyZXNzZXMgKi8KIAlpZiAoYWRkciAhPSAweDRjICYmIChhZGRyICYgMHhmYykgIT0gMHg1MCAmJiAoYWRkciAmIDB4ZmMpICE9IDB4MzApCi0JCXJldHVybiAtMTsKKwkJcmV0dXJuIC1FTlhJTzsKIAogCW11dGV4X2xvY2soJmFtZDc1Nl9sb2NrKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbWQ3NTYuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYW1kNzU2LmMKaW5kZXggNDM1MDhkNi4uMWVhMzkyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbWQ3NTYuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWFtZDc1Ni5jCkBAIC0xLDcgKzEsNCBAQAogLyoKLSAgICBhbWQ3NTYuYyAtIFBhcnQgb2YgbG1fc2Vuc29ycywgTGludXgga2VybmVsIG1vZHVsZXMgZm9yIGhhcmR3YXJlCi0gICAgICAgICAgICAgIG1vbml0b3JpbmcKLQogICAgIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIE1lcmxpbiBIdWdoZXMgPG1lcmxpbkBtZXJsaW4ub3JnPgogCiAgICAgU2hhbWVsZXNzbHkgcmlwcGVkIGZyb20gaTJjLXBpaXg0LmM6CkBAIC00NSw2ICs0Miw3IEBACiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIAogLyogQU1ENzU2IFNNQnVzIGFkZHJlc3Mgb2Zmc2V0cyAqLwpAQCAtMTUxLDE3ICsxNDksMTcgQEAKIAl9CiAKIAlpZiAodGVtcCAmIEdTX1BSRVJSX1NUUykgewotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVOWElPOwogCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJTTUJ1cyBQcm90b2NvbCBlcnJvciAobm8gcmVzcG9uc2UpIVxuIik7CiAJfQogCiAJaWYgKHRlbXAgJiBHU19DT0xfU1RTKSB7Ci0JCXJlc3VsdCA9IC0xOworCQlyZXN1bHQgPSAtRUlPOwogCQlkZXZfd2FybigmYWRhcC0+ZGV2LCAiU01CdXMgY29sbGlzaW9uIVxuIik7CiAJfQogCiAJaWYgKHRlbXAgJiBHU19UT19TVFMpIHsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FVElNRURPVVQ7CiAJCWRldl9kYmcoJmFkYXAtPmRldiwgIlNNQnVzIHByb3RvY29sIHRpbWVvdXQhXG4iKTsKIAl9CiAKQEAgLTE4OSwyMiArMTg3LDE4IEBACiAJb3V0d19wKGludyhTTUJfR0xPQkFMX0VOQUJMRSkgfCBHRV9BQk9SVCwgU01CX0dMT0JBTF9FTkFCTEUpOwogCW1zbGVlcCgxMDApOwogCW91dHdfcChHU19DTEVBUl9TVFMsIFNNQl9HTE9CQUxfU1RBVFVTKTsKLQlyZXR1cm4gLTE7CisJcmV0dXJuIC1FSU87CiB9CiAKLS8qIFJldHVybiAtMSBvbiBlcnJvci4gKi8KKy8qIFJldHVybiBuZWdhdGl2ZSBlcnJubyBvbiBlcnJvci4gKi8KIHN0YXRpYyBzMzIgYW1kNzU2X2FjY2VzcyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKiBhZGFwLCB1MTYgYWRkciwKIAkJICB1bnNpZ25lZCBzaG9ydCBmbGFncywgY2hhciByZWFkX3dyaXRlLAogCQkgIHU4IGNvbW1hbmQsIGludCBzaXplLCB1bmlvbiBpMmNfc21idXNfZGF0YSAqIGRhdGEpCiB7CiAJaW50IGksIGxlbjsKKwlpbnQgc3RhdHVzOwogCi0JLyoqIFRPRE86IFNob3VsZCBJIHN1cHBvcnRlIHRoZSAxMC1iaXQgdHJhbnNmZXJzPyAqLwogCXN3aXRjaCAoc2l6ZSkgewotCWNhc2UgSTJDX1NNQlVTX1BST0NfQ0FMTDoKLQkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiSTJDX1NNQlVTX1BST0NfQ0FMTCBub3Qgc3VwcG9ydGVkIVxuIik7Ci0JCS8qIFRPRE86IFdlbGwuLi4gSXQgaXMgc3VwcG9ydGVkLCBJJ20ganVzdCBub3Qgc3VyZSB3aGF0IHRvIGRvIGhlcmUuLi4gKi8KLQkJcmV0dXJuIC0xOwogCWNhc2UgSTJDX1NNQlVTX1FVSUNLOgogCQlvdXR3X3AoKChhZGRyICYgMHg3ZikgPDwgMSkgfCAocmVhZF93cml0ZSAmIDB4MDEpLAogCQkgICAgICAgU01CX0hPU1RfQUREUkVTUyk7CkBAIC0yNTEsMTMgKzI0NSwxNyBAQAogCQl9CiAJCXNpemUgPSBBTUQ3NTZfQkxPQ0tfREFUQTsKIAkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X3dhcm4oJmFkYXAtPmRldiwgIlVuc3VwcG9ydGVkIHRyYW5zYWN0aW9uICVkXG4iLCBzaXplKTsKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCX0KIAogCS8qIEhvdyBhYm91dCBlbmFibGluZyBpbnRlcnJ1cHRzLi4uICovCiAJb3V0d19wKHNpemUgJiBHRV9DWUNfVFlQRV9NQVNLLCBTTUJfR0xPQkFMX0VOQUJMRSk7CiAKLQlpZiAoYW1kNzU2X3RyYW5zYWN0aW9uKGFkYXApKQkvKiBFcnJvciBpbiB0cmFuc2FjdGlvbiAqLwotCQlyZXR1cm4gLTE7CisJc3RhdHVzID0gYW1kNzU2X3RyYW5zYWN0aW9uKGFkYXApOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CiAKIAlpZiAoKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFKSB8fCAoc2l6ZSA9PSBBTUQ3NTZfUVVJQ0spKQogCQlyZXR1cm4gMDsKQEAgLTMwMSw3ICsyOTksNyBAQAogc3RydWN0IGkyY19hZGFwdGVyIGFtZDc1Nl9zbWJ1cyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmlkCQk9IEkyQ19IV19TTUJVU19BTUQ3NTYsCi0JLmNsYXNzICAgICAgICAgID0gSTJDX0NMQVNTX0hXTU9OLAorCS5jbGFzcyAgICAgICAgICA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJLmFsZ28JCT0gJnNtYnVzX2FsZ29yaXRobSwKIH07CiAKQEAgLTM2OCw2ICszNjYsMTEgQEAKIAkJYW1kNzU2X2lvcG9ydCArPSBTTUJfQUREUl9PRkZTRVQ7CiAJfQogCisJZXJyb3IgPSBhY3BpX2NoZWNrX3JlZ2lvbihhbWQ3NTZfaW9wb3J0LCBTTUJfSU9TSVpFLAorCQkJCSAgYW1kNzU2X2RyaXZlci5uYW1lKTsKKwlpZiAoZXJyb3IpCisJCXJldHVybiBlcnJvcjsKKwogCWlmICghcmVxdWVzdF9yZWdpb24oYW1kNzU2X2lvcG9ydCwgU01CX0lPU0laRSwgYW1kNzU2X2RyaXZlci5uYW1lKSkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJTTUIgcmVnaW9uIDB4JXggYWxyZWFkeSBpbiB1c2UhXG4iLAogCQkJYW1kNzU2X2lvcG9ydCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWFtZDgxMTEuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYW1kODExMS5jCmluZGV4IDVkMWEyN2UuLjM5NzIyMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYW1kODExMS5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYW1kODExMS5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CkBAIC03Nyw3ICs3OCw3IEBACiAJaWYgKCF0aW1lb3V0KSB7CiAJCWRldl93YXJuKCZzbWJ1cy0+ZGV2LT5kZXYsCiAJCQkgIlRpbWVvdXQgd2hpbGUgd2FpdGluZyBmb3IgSUJGIHRvIGNsZWFyXG4iKTsKLQkJcmV0dXJuIC0xOworCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTkzLDcgKzk0LDcgQEAKIAlpZiAoIXRpbWVvdXQpIHsKIAkJZGV2X3dhcm4oJnNtYnVzLT5kZXYtPmRldiwKIAkJCSAiVGltZW91dCB3aGlsZSB3YWl0aW5nIGZvciBPQkYgdG8gc2V0XG4iKTsKLQkJcmV0dXJuIC0xOworCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTEwMiwxNiArMTAzLDIxIEBACiBzdGF0aWMgdW5zaWduZWQgaW50IGFtZF9lY19yZWFkKHN0cnVjdCBhbWRfc21idXMgKnNtYnVzLCB1bnNpZ25lZCBjaGFyIGFkZHJlc3MsCiAJCXVuc2lnbmVkIGNoYXIgKmRhdGEpCiB7Ci0JaWYgKGFtZF9lY193YWl0X3dyaXRlKHNtYnVzKSkKLQkJcmV0dXJuIC0xOworCWludCBzdGF0dXM7CisKKwlzdGF0dXMgPSBhbWRfZWNfd2FpdF93cml0ZShzbWJ1cyk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKIAlvdXRiKEFNRF9FQ19DTURfUkQsIHNtYnVzLT5iYXNlICsgQU1EX0VDX0NNRCk7CiAKLQlpZiAoYW1kX2VjX3dhaXRfd3JpdGUoc21idXMpKQotCQlyZXR1cm4gLTE7CisJc3RhdHVzID0gYW1kX2VjX3dhaXRfd3JpdGUoc21idXMpOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CiAJb3V0YihhZGRyZXNzLCBzbWJ1cy0+YmFzZSArIEFNRF9FQ19EQVRBKTsKIAotCWlmIChhbWRfZWNfd2FpdF9yZWFkKHNtYnVzKSkKLQkJcmV0dXJuIC0xOworCXN0YXR1cyA9IGFtZF9lY193YWl0X3JlYWQoc21idXMpOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CiAJKmRhdGEgPSBpbmIoc21idXMtPmJhc2UgKyBBTURfRUNfREFUQSk7CiAKIAlyZXR1cm4gMDsKQEAgLTEyMCwxNiArMTI2LDIxIEBACiBzdGF0aWMgdW5zaWduZWQgaW50IGFtZF9lY193cml0ZShzdHJ1Y3QgYW1kX3NtYnVzICpzbWJ1cywgdW5zaWduZWQgY2hhciBhZGRyZXNzLAogCQl1bnNpZ25lZCBjaGFyIGRhdGEpCiB7Ci0JaWYgKGFtZF9lY193YWl0X3dyaXRlKHNtYnVzKSkKLQkJcmV0dXJuIC0xOworCWludCBzdGF0dXM7CisKKwlzdGF0dXMgPSBhbWRfZWNfd2FpdF93cml0ZShzbWJ1cyk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKIAlvdXRiKEFNRF9FQ19DTURfV1IsIHNtYnVzLT5iYXNlICsgQU1EX0VDX0NNRCk7CiAKLQlpZiAoYW1kX2VjX3dhaXRfd3JpdGUoc21idXMpKQotCQlyZXR1cm4gLTE7CisJc3RhdHVzID0gYW1kX2VjX3dhaXRfd3JpdGUoc21idXMpOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CiAJb3V0YihhZGRyZXNzLCBzbWJ1cy0+YmFzZSArIEFNRF9FQ19EQVRBKTsKIAotCWlmIChhbWRfZWNfd2FpdF93cml0ZShzbWJ1cykpCi0JCXJldHVybiAtMTsKKwlzdGF0dXMgPSBhbWRfZWNfd2FpdF93cml0ZShzbWJ1cyk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKIAlvdXRiKGRhdGEsIHNtYnVzLT5iYXNlICsgQU1EX0VDX0RBVEEpOwogCiAJcmV0dXJuIDA7CkBAIC0yNjcsMTIgKzI3OCwxNyBAQAogCiAJCWRlZmF1bHQ6CiAJCQlkZXZfd2FybigmYWRhcC0+ZGV2LCAiVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gJWRcbiIsIHNpemUpOwotCQkJcmV0dXJuIC0xOworCQkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCX0KIAogCWFtZF9lY193cml0ZShzbWJ1cywgQU1EX1NNQl9BRERSLCBhZGRyIDw8IDEpOwogCWFtZF9lY193cml0ZShzbWJ1cywgQU1EX1NNQl9QUlRDTCwgcHJvdG9jb2wpOwogCisJLyogRklYTUUgdGhpcyBkaXNjYXJkcyBzdGF0dXMgZnJvbSBlY19yZWFkKCk7IHNvIHRlbXBbMF0gd2lsbAorCSAqIGhvbGQgc3RhY2sgZ2FyYmFnZSAuLi4gdGhlIHJlc3Qgb2YgdGhpcyByb3V0aW5lIHdpbGwgYWN0CisJICogbm9uc2Vuc2ljYWxseS4gIElnbm9yZWQgZWNfd3JpdGUoKSBzdGF0dXMgbWlnaHQgZXhwbGFpbgorCSAqIHNvbWUgc3VjaCBmYWlsdXJlcy4uLgorCSAqLwogCWFtZF9lY19yZWFkKHNtYnVzLCBBTURfU01CX1NUUywgdGVtcCArIDApOwogCiAJaWYgKH50ZW1wWzBdICYgQU1EX1NNQl9TVFNfRE9ORSkgewpAQCAtMjg2LDcgKzMwMiw3IEBACiAJfQogCiAJaWYgKCh+dGVtcFswXSAmIEFNRF9TTUJfU1RTX0RPTkUpIHx8ICh0ZW1wWzBdICYgQU1EX1NNQl9TVFNfU1RBVFVTKSkKLQkJcmV0dXJuIC0xOworCQlyZXR1cm4gLUVJTzsKIAogCWlmIChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19XUklURSkKIAkJcmV0dXJuIDA7CkBAIC0zNTksNiArMzc1LDEwIEBACiAJc21idXMtPmJhc2UgPSBwY2lfcmVzb3VyY2Vfc3RhcnQoZGV2LCAwKTsKIAlzbWJ1cy0+c2l6ZSA9IHBjaV9yZXNvdXJjZV9sZW4oZGV2LCAwKTsKIAorCWVycm9yID0gYWNwaV9jaGVja19yZXNvdXJjZV9jb25mbGljdCgmZGV2LT5yZXNvdXJjZVswXSk7CisJaWYgKGVycm9yKQorCQlnb3RvIG91dF9rZnJlZTsKKwogCWlmICghcmVxdWVzdF9yZWdpb24oc21idXMtPmJhc2UsIHNtYnVzLT5zaXplLCBhbWQ4MTExX2RyaXZlci5uYW1lKSkgewogCQllcnJvciA9IC1FQlVTWTsKIAkJZ290byBvdXRfa2ZyZWU7CkBAIC0zNjgsNyArMzg4LDcgQEAKIAlzbnByaW50ZihzbWJ1cy0+YWRhcHRlci5uYW1lLCBzaXplb2Yoc21idXMtPmFkYXB0ZXIubmFtZSksCiAJCSJTTUJ1czIgQU1EODExMSBhZGFwdGVyIGF0ICUwNHgiLCBzbWJ1cy0+YmFzZSk7CiAJc21idXMtPmFkYXB0ZXIuaWQgPSBJMkNfSFdfU01CVVNfQU1EODExMTsKLQlzbWJ1cy0+YWRhcHRlci5jbGFzcyA9IEkyQ19DTEFTU19IV01PTjsKKwlzbWJ1cy0+YWRhcHRlci5jbGFzcyA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQ7CiAJc21idXMtPmFkYXB0ZXIuYWxnbyA9ICZzbWJ1c19hbGdvcml0aG07CiAJc21idXMtPmFkYXB0ZXIuYWxnb19kYXRhID0gc21idXM7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYXUxNTUwLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWF1MTU1MC5jCmluZGV4IGNhZTlkYzguLjY2YTA0YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYXUxNTUwLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hdTE1NTAuYwpAQCAtMjY5LDkgKzI2OSwxMyBAQAogYXUxNTUwX3hmZXIoc3RydWN0IGkyY19hZGFwdGVyICppMmNfYWRhcCwgc3RydWN0IGkyY19tc2cgKm1zZ3MsIGludCBudW0pCiB7CiAJc3RydWN0IGkyY19hdTE1NTBfZGF0YSAqYWRhcCA9IGkyY19hZGFwLT5hbGdvX2RhdGE7CisJdm9sYXRpbGUgcHNjX3NtYl90ICpzcCA9ICh2b2xhdGlsZSBwc2Nfc21iX3QgKilhZGFwLT5wc2NfYmFzZTsKIAlzdHJ1Y3QgaTJjX21zZyAqcDsKIAlpbnQgaSwgZXJyID0gMDsKIAorCXNwLT5wc2NfY3RybCA9IFBTQ19DVFJMX0VOQUJMRTsKKwlhdV9zeW5jKCk7CisKIAlmb3IgKGkgPSAwOyAhZXJyICYmIGkgPCBudW07IGkrKykgewogCQlwID0gJm1zZ3NbaV07CiAJCWVyciA9IGRvX2FkZHJlc3MoYWRhcCwgcC0+YWRkciwgcC0+ZmxhZ3MgJiBJMkNfTV9SRCwKQEAgLTI4OCw2ICsyOTIsMTAgQEAKIAkqLwogCWlmIChlcnIgPT0gMCkKIAkJZXJyID0gbnVtOworCisJc3AtPnBzY19jdHJsID0gUFNDX0NUUkxfU1VTUEVORDsKKwlhdV9zeW5jKCk7CisKIAlyZXR1cm4gZXJyOwogfQogCkBAIC0zMDIsNTMgKzMxMCwxMSBAQAogCS5mdW5jdGlvbmFsaXR5CT0gYXUxNTUwX2Z1bmMsCiB9OwogCi0vKgotICogcmVnaXN0ZXJpbmcgZnVuY3Rpb25zIHRvIGxvYWQgYWxnb3JpdGhtcyBhdCBydW50aW1lCi0gKiBQcmlvciB0byBjYWxsaW5nIHVzLCB0aGUgNTBNSHogY2xvY2sgZnJlcXVlbmN5IGFuZCByb3V0aW5nCi0gKiBtdXN0IGhhdmUgYmVlbiBzZXQgdXAgZm9yIHRoZSBQU0MgaW5kaWNhdGVkIGJ5IHRoZSBhZGFwdGVyLgotICovCi1zdGF0aWMgaW50IF9fZGV2aW5pdAotaTJjX2F1MTU1MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIHZvaWQgaTJjX2F1MTU1MF9zZXR1cChzdHJ1Y3QgaTJjX2F1MTU1MF9kYXRhICpwcml2KQogewotCXN0cnVjdCBpMmNfYXUxNTUwX2RhdGEgKnByaXY7Ci0Jdm9sYXRpbGUgcHNjX3NtYl90ICpzcDsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnI7CisJdm9sYXRpbGUgcHNjX3NtYl90ICpzcCA9ICh2b2xhdGlsZSBwc2Nfc21iX3QgKilwcml2LT5wc2NfYmFzZTsKIAl1MzIgc3RhdDsKLQlpbnQgcmV0OwogCi0JciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0JaWYgKCFyKSB7Ci0JCXJldCA9IC1FTk9ERVY7Ci0JCWdvdG8gb3V0OwotCX0KLQotCXByaXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgaTJjX2F1MTU1MF9kYXRhKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFwcml2KSB7Ci0JCXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0OwotCX0KLQotCXByaXYtPmlvYXJlYSA9IHJlcXVlc3RfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxLAotCQkJCQkgIHBkZXYtPm5hbWUpOwotCWlmICghcHJpdi0+aW9hcmVhKSB7Ci0JCXJldCA9IC1FQlVTWTsKLQkJZ290byBvdXRfbWVtOwotCX0KLQotCXByaXYtPnBzY19iYXNlID0gQ0tTRUcxQUREUihyLT5zdGFydCk7Ci0JcHJpdi0+eGZlcl90aW1lb3V0ID0gMjAwOwotCXByaXYtPmFja190aW1lb3V0ID0gMjAwOwotCi0JcHJpdi0+YWRhcC5pZCA9IEkyQ19IV19BVTE1NTBfUFNDOwotCXByaXYtPmFkYXAubnIgPSBwZGV2LT5pZDsKLQlwcml2LT5hZGFwLmFsZ28gPSAmYXUxNTUwX2FsZ287Ci0JcHJpdi0+YWRhcC5hbGdvX2RhdGEgPSBwcml2OwotCXByaXYtPmFkYXAuZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7Ci0Jc3RybGNweShwcml2LT5hZGFwLm5hbWUsICJBdTF4eHggUFNDIEkyQyIsIHNpemVvZihwcml2LT5hZGFwLm5hbWUpKTsKLQotCS8qIE5vdywgc2V0IHVwIHRoZSBQU0MgZm9yIFNNQnVzIFBJTyBtb2RlLgotCSovCi0Jc3AgPSAodm9sYXRpbGUgcHNjX3NtYl90ICopcHJpdi0+cHNjX2Jhc2U7CiAJc3AtPnBzY19jdHJsID0gUFNDX0NUUkxfRElTQUJMRTsKIAlhdV9zeW5jKCk7CiAJc3AtPnBzY19zZWwgPSBQU0NfU0VMX1BTX1NNQlVTTU9ERTsKQEAgLTM4NCw3ICszNTAsNjYgQEAKIAlkbyB7CiAJCXN0YXQgPSBzcC0+cHNjX3NtYnN0YXQ7CiAJCWF1X3N5bmMoKTsKLQl9IHdoaWxlICgoc3RhdCAmIFBTQ19TTUJTVEFUX0RSKSA9PSAwKTsKKwl9IHdoaWxlICgoc3RhdCAmIFBTQ19TTUJTVEFUX1NSKSA9PSAwKTsKKworCXNwLT5wc2NfY3RybCA9IFBTQ19DVFJMX1NVU1BFTkQ7CisJYXVfc3luYygpOworfQorCitzdGF0aWMgdm9pZCBpMmNfYXUxNTUwX2Rpc2FibGUoc3RydWN0IGkyY19hdTE1NTBfZGF0YSAqcHJpdikKK3sKKwl2b2xhdGlsZSBwc2Nfc21iX3QgKnNwID0gKHZvbGF0aWxlIHBzY19zbWJfdCAqKXByaXYtPnBzY19iYXNlOworCisJc3AtPnBzY19zbWJjZmcgPSAwOworCXNwLT5wc2NfY3RybCA9IFBTQ19DVFJMX0RJU0FCTEU7CisJYXVfc3luYygpOworfQorCisvKgorICogcmVnaXN0ZXJpbmcgZnVuY3Rpb25zIHRvIGxvYWQgYWxnb3JpdGhtcyBhdCBydW50aW1lCisgKiBQcmlvciB0byBjYWxsaW5nIHVzLCB0aGUgNTBNSHogY2xvY2sgZnJlcXVlbmN5IGFuZCByb3V0aW5nCisgKiBtdXN0IGhhdmUgYmVlbiBzZXQgdXAgZm9yIHRoZSBQU0MgaW5kaWNhdGVkIGJ5IHRoZSBhZGFwdGVyLgorICovCitzdGF0aWMgaW50IF9fZGV2aW5pdAoraTJjX2F1MTU1MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBpMmNfYXUxNTUwX2RhdGEgKnByaXY7CisJc3RydWN0IHJlc291cmNlICpyOworCWludCByZXQ7CisKKwlyID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlpZiAoIXIpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQorCisJcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBpMmNfYXUxNTUwX2RhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByaXYpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQorCisJcHJpdi0+aW9hcmVhID0gcmVxdWVzdF9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEsCisJCQkJCSAgcGRldi0+bmFtZSk7CisJaWYgKCFwcml2LT5pb2FyZWEpIHsKKwkJcmV0ID0gLUVCVVNZOworCQlnb3RvIG91dF9tZW07CisJfQorCisJcHJpdi0+cHNjX2Jhc2UgPSBDS1NFRzFBRERSKHItPnN0YXJ0KTsKKwlwcml2LT54ZmVyX3RpbWVvdXQgPSAyMDA7CisJcHJpdi0+YWNrX3RpbWVvdXQgPSAyMDA7CisKKwlwcml2LT5hZGFwLmlkID0gSTJDX0hXX0FVMTU1MF9QU0M7CisJcHJpdi0+YWRhcC5uciA9IHBkZXYtPmlkOworCXByaXYtPmFkYXAuYWxnbyA9ICZhdTE1NTBfYWxnbzsKKwlwcml2LT5hZGFwLmFsZ29fZGF0YSA9IHByaXY7CisJcHJpdi0+YWRhcC5kZXYucGFyZW50ID0gJnBkZXYtPmRldjsKKwlzdHJsY3B5KHByaXYtPmFkYXAubmFtZSwgIkF1MXh4eCBQU0MgSTJDIiwgc2l6ZW9mKHByaXYtPmFkYXAubmFtZSkpOworCisJLyogTm93LCBzZXQgdXAgdGhlIFBTQyBmb3IgU01CdXMgUElPIG1vZGUuCisJKi8KKwlpMmNfYXUxNTUwX3NldHVwKHByaXYpOwogCiAJcmV0ID0gaTJjX2FkZF9udW1iZXJlZF9hZGFwdGVyKCZwcml2LT5hZGFwKTsKIAlpZiAocmV0ID09IDApIHsKQEAgLTM5MiwxMCArNDE3LDcgQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JLyogZGlzYWJsZSB0aGUgUFNDICovCi0Jc3AtPnBzY19zbWJjZmcgPSAwOwotCXNwLT5wc2NfY3RybCA9IFBTQ19DVFJMX0RJU0FCTEU7Ci0JYXVfc3luYygpOworCWkyY19hdTE1NTBfZGlzYWJsZShwcml2KTsKIAogCXJlbGVhc2VfcmVzb3VyY2UocHJpdi0+aW9hcmVhKTsKIAlrZnJlZShwcml2LT5pb2FyZWEpOwpAQCAtNDA5LDI3ICs0MzEsMjQgQEAKIGkyY19hdTE1NTBfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IGkyY19hdTE1NTBfZGF0YSAqcHJpdiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotCXZvbGF0aWxlIHBzY19zbWJfdCAqc3AgPSAodm9sYXRpbGUgcHNjX3NtYl90ICopcHJpdi0+cHNjX2Jhc2U7CiAKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKIAlpMmNfZGVsX2FkYXB0ZXIoJnByaXYtPmFkYXApOwotCXNwLT5wc2Nfc21iY2ZnID0gMDsKLQlzcC0+cHNjX2N0cmwgPSBQU0NfQ1RSTF9ESVNBQkxFOwotCWF1X3N5bmMoKTsKKwlpMmNfYXUxNTUwX2Rpc2FibGUocHJpdik7CiAJcmVsZWFzZV9yZXNvdXJjZShwcml2LT5pb2FyZWEpOwogCWtmcmVlKHByaXYtPmlvYXJlYSk7CiAJa2ZyZWUocHJpdik7CiAJcmV0dXJuIDA7CiB9CiAKKyNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyBpbnQKIGkyY19hdTE1NTBfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7CiAJc3RydWN0IGkyY19hdTE1NTBfZGF0YSAqcHJpdiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotCXZvbGF0aWxlIHBzY19zbWJfdCAqc3AgPSAodm9sYXRpbGUgcHNjX3NtYl90ICopcHJpdi0+cHNjX2Jhc2U7CiAKLQlzcC0+cHNjX2N0cmwgPSBQU0NfQ1RSTF9TVVNQRU5EOwotCWF1X3N5bmMoKTsKKwlpMmNfYXUxNTUwX2Rpc2FibGUocHJpdik7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDM3LDE0ICs0NTYsMTUgQEAKIGkyY19hdTE1NTBfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IGkyY19hdTE1NTBfZGF0YSAqcHJpdiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotCXZvbGF0aWxlIHBzY19zbWJfdCAqc3AgPSAodm9sYXRpbGUgcHNjX3NtYl90ICopcHJpdi0+cHNjX2Jhc2U7CiAKLQlzcC0+cHNjX2N0cmwgPSBQU0NfQ1RSTF9FTkFCTEU7Ci0JYXVfc3luYygpOwotCXdoaWxlICghKHNwLT5wc2Nfc21ic3RhdCAmIFBTQ19TTUJTVEFUX1NSKSkKLQkJYXVfc3luYygpOworCWkyY19hdTE1NTBfc2V0dXAocHJpdik7CisKIAlyZXR1cm4gMDsKIH0KKyNlbHNlCisjZGVmaW5lIGkyY19hdTE1NTBfc3VzcGVuZAlOVUxMCisjZGVmaW5lIGkyY19hdTE1NTBfcmVzdW1lCU5VTEwKKyNlbmRpZgogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhdTF4cHNjX3NtYnVzX2RyaXZlciA9IHsKIAkuZHJpdmVyID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1jcG0uYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtY3BtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE2NGRlMQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtY3BtLmMKQEAgLTAsMCArMSw3NDUgQEAKKy8qCisgKiBGcmVlc2NhbGUgQ1BNMS9DUE0yIEkyQyBpbnRlcmZhY2UuCisgKiBDb3B5cmlnaHQgKGMpIDE5OTkgRGFuIE1hbGVrIChkbWFsZWtAamxjLm5ldCkuCisgKgorICogbW92ZWQgaW50byBwcm9wZXIgaTJjIGludGVyZmFjZTsKKyAqIEJyYWQgUGFya2VyIChicmFkQGhlZWx0b2UuY29tKQorICoKKyAqIFBhcnRzIGZyb20gZGJveDJfaTJjLmMgKGN2cy50dXhib3gub3JnKQorICogKEMpIDIwMDAtMjAwMSBGZWxpeCBEb21rZSAodG1iaW5jQGdteC5uZXQpLCBHaWxsZW0gKGh0b2FAZ214Lm5ldCkKKyAqCisgKiAoQykgMjAwNyBNb250YXZpc3RhIFNvZnR3YXJlLCBJbmMuCisgKiBWaXRhbHkgQm9yZHVnIDx2aXRiQGtlcm5lbC5jcmFzaGluZy5vcmc+CisgKgorICogQ29udmVydGVkIHRvIG9mX3BsYXRmb3JtX2RldmljZS4gUmVuYW1lZCB0byBpMmMtY3BtLmMuCisgKiAoQykgMjAwNywyMDA4IEpvY2hlbiBGcmllZHJpY2ggPGpvY2hlbkBzY3JhbS5kZT4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9pMmMuaD4KKyNpbmNsdWRlIDxzeXNkZXYvZnNsX3NvYy5oPgorI2luY2x1ZGUgPGFzbS9jcG0uaD4KKworLyogVHJ5IHRvIGRlZmluZSB0aGlzIGlmIHlvdSBoYXZlIGFuIG9sZGVyIENQVSAoZWFybGllciB0aGFuIHJldiBENCkgKi8KKy8qIEhvd2V2ZXIsIGJldHRlciB1c2UgYSBHUElPIGJhc2VkIGJpdGJhbmcgZHJpdmVyIGluIHRoaXMgY2FzZSA6LyAgICovCisjdW5kZWYJSTJDX0NISVBfRVJSQVRBCisKKyNkZWZpbmUgQ1BNX01BWF9SRUFEICAgIDUxMworI2RlZmluZSBDUE1fTUFYQkQgICAgICAgNAorCisjZGVmaW5lIEkyQ19FQgkJCSgweDEwKSAvKiBCaWcgZW5kaWFuIG1vZGUgKi8KKyNkZWZpbmUgSTJDX0VCX0NQTTIJCSgweDMwKSAvKiBCaWcgZW5kaWFuIG1vZGUsIG1lbW9yeSBzbm9vcCAqLworCisjZGVmaW5lIERQUkFNX0JBU0UJCSgodTggX19pb21lbSBfX2ZvcmNlICopY3BtX211cmFtX2FkZHIoMCkpCisKKy8qIEkyQyBwYXJhbWV0ZXIgUkFNLiAqLworc3RydWN0IGkyY19yYW0geworCXVzaG9ydCAgcmJhc2U7CQkvKiBSeCBCdWZmZXIgZGVzY3JpcHRvciBiYXNlIGFkZHJlc3MgKi8KKwl1c2hvcnQgIHRiYXNlOwkJLyogVHggQnVmZmVyIGRlc2NyaXB0b3IgYmFzZSBhZGRyZXNzICovCisJdV9jaGFyICByZmNyOwkJLyogUnggZnVuY3Rpb24gY29kZSAqLworCXVfY2hhciAgdGZjcjsJCS8qIFR4IGZ1bmN0aW9uIGNvZGUgKi8KKwl1c2hvcnQgIG1yYmxyOwkJLyogTWF4IHJlY2VpdmUgYnVmZmVyIGxlbmd0aCAqLworCXVpbnQgICAgcnN0YXRlOwkJLyogSW50ZXJuYWwgKi8KKwl1aW50ICAgIHJkcDsJCS8qIEludGVybmFsICovCisJdXNob3J0ICByYnB0cjsJCS8qIFJ4IEJ1ZmZlciBkZXNjcmlwdG9yIHBvaW50ZXIgKi8KKwl1c2hvcnQgIHJiYzsJCS8qIEludGVybmFsICovCisJdWludCAgICByeHRtcDsJCS8qIEludGVybmFsICovCisJdWludCAgICB0c3RhdGU7CQkvKiBJbnRlcm5hbCAqLworCXVpbnQgICAgdGRwOwkJLyogSW50ZXJuYWwgKi8KKwl1c2hvcnQgIHRicHRyOwkJLyogVHggQnVmZmVyIGRlc2NyaXB0b3IgcG9pbnRlciAqLworCXVzaG9ydCAgdGJjOwkJLyogSW50ZXJuYWwgKi8KKwl1aW50ICAgIHR4dG1wOwkJLyogSW50ZXJuYWwgKi8KKwljaGFyICAgIHJlczFbNF07CS8qIFJlc2VydmVkICovCisJdXNob3J0ICBycGJhc2U7CQkvKiBSZWxvY2F0aW9uIHBvaW50ZXIgKi8KKwljaGFyICAgIHJlczJbMl07CS8qIFJlc2VydmVkICovCit9OworCisjZGVmaW5lIEkyQ09NX1NUQVJUCTB4ODAKKyNkZWZpbmUgSTJDT01fTUFTVEVSCTB4MDEKKyNkZWZpbmUgSTJDRVJfVFhFCTB4MTAKKyNkZWZpbmUgSTJDRVJfQlVTWQkweDA0CisjZGVmaW5lIEkyQ0VSX1RYQgkweDAyCisjZGVmaW5lIEkyQ0VSX1JYQgkweDAxCisjZGVmaW5lIEkyTU9EX0VOCTB4MDEKKworLyogSTJDIFJlZ2lzdGVycyAqLworc3RydWN0IGkyY19yZWcgeworCXU4CWkybW9kOworCXU4CXJlczFbM107CisJdTgJaTJhZGQ7CisJdTgJcmVzMlszXTsKKwl1OAlpMmJyZzsKKwl1OAlyZXMzWzNdOworCXU4CWkyY29tOworCXU4CXJlczRbM107CisJdTgJaTJjZXI7CisJdTgJcmVzNVszXTsKKwl1OAlpMmNtcjsKK307CisKK3N0cnVjdCBjcG1faTJjIHsKKwljaGFyICpiYXNlOworCXN0cnVjdCBvZl9kZXZpY2UgKm9mZGV2OworCXN0cnVjdCBpMmNfYWRhcHRlciBhZGFwOworCXVpbnQgZHBfYWRkcjsKKwlpbnQgdmVyc2lvbjsgLyogQ1BNMT0xLCBDUE0yPTIgKi8KKwlpbnQgaXJxOworCWludCBjcF9jb21tYW5kOworCWludCBmcmVxOworCXN0cnVjdCBpMmNfcmVnIF9faW9tZW0gKmkyY19yZWc7CisJc3RydWN0IGkyY19yYW0gX19pb21lbSAqaTJjX3JhbTsKKwl1MTYgaTJjX2FkZHI7CisJd2FpdF9xdWV1ZV9oZWFkX3QgaTJjX3dhaXQ7CisJY2JkX3QgX19pb21lbSAqdGJhc2U7CisJY2JkX3QgX19pb21lbSAqcmJhc2U7CisJdV9jaGFyICp0eGJ1ZltDUE1fTUFYQkRdOworCXVfY2hhciAqcnhidWZbQ1BNX01BWEJEXTsKKwl1MzIgdHhkbWFbQ1BNX01BWEJEXTsKKwl1MzIgcnhkbWFbQ1BNX01BWEJEXTsKK307CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBjcG1faTJjX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IGNwbV9pMmMgKmNwbTsKKwlzdHJ1Y3QgaTJjX3JlZyBfX2lvbWVtICppMmNfcmVnOworCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCA9IGRldl9pZDsKKwlpbnQgaTsKKworCWNwbSA9IGkyY19nZXRfYWRhcGRhdGEoZGV2X2lkKTsKKwlpMmNfcmVnID0gY3BtLT5pMmNfcmVnOworCisJLyogQ2xlYXIgaW50ZXJydXB0LiAqLworCWkgPSBpbl84KCZpMmNfcmVnLT5pMmNlcik7CisJb3V0XzgoJmkyY19yZWctPmkyY2VyLCBpKTsKKworCWRldl9kYmcoJmFkYXAtPmRldiwgIkludGVycnVwdDogJXhcbiIsIGkpOworCisJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZjcG0tPmkyY193YWl0KTsKKworCXJldHVybiBpID8gSVJRX0hBTkRMRUQgOiBJUlFfTk9ORTsKK30KKworc3RhdGljIHZvaWQgY3BtX3Jlc2V0X2kyY19wYXJhbXMoc3RydWN0IGNwbV9pMmMgKmNwbSkKK3sKKwlzdHJ1Y3QgaTJjX3JhbSBfX2lvbWVtICppMmNfcmFtID0gY3BtLT5pMmNfcmFtOworCisJLyogU2V0IHVwIHRoZSBJMkMgcGFyYW1ldGVycyBpbiB0aGUgcGFyYW1ldGVyIHJhbS4gKi8KKwlvdXRfYmUxNigmaTJjX3JhbS0+dGJhc2UsICh1OCBfX2lvbWVtICopY3BtLT50YmFzZSAtIERQUkFNX0JBU0UpOworCW91dF9iZTE2KCZpMmNfcmFtLT5yYmFzZSwgKHU4IF9faW9tZW0gKiljcG0tPnJiYXNlIC0gRFBSQU1fQkFTRSk7CisKKwlpZiAoY3BtLT52ZXJzaW9uID09IDEpIHsKKwkJb3V0XzgoJmkyY19yYW0tPnRmY3IsIEkyQ19FQik7CisJCW91dF84KCZpMmNfcmFtLT5yZmNyLCBJMkNfRUIpOworCX0gZWxzZSB7CisJCW91dF84KCZpMmNfcmFtLT50ZmNyLCBJMkNfRUJfQ1BNMik7CisJCW91dF84KCZpMmNfcmFtLT5yZmNyLCBJMkNfRUJfQ1BNMik7CisJfQorCisJb3V0X2JlMTYoJmkyY19yYW0tPm1yYmxyLCBDUE1fTUFYX1JFQUQpOworCisJb3V0X2JlMzIoJmkyY19yYW0tPnJzdGF0ZSwgMCk7CisJb3V0X2JlMzIoJmkyY19yYW0tPnJkcCwgMCk7CisJb3V0X2JlMTYoJmkyY19yYW0tPnJicHRyLCAwKTsKKwlvdXRfYmUxNigmaTJjX3JhbS0+cmJjLCAwKTsKKwlvdXRfYmUzMigmaTJjX3JhbS0+cnh0bXAsIDApOworCW91dF9iZTMyKCZpMmNfcmFtLT50c3RhdGUsIDApOworCW91dF9iZTMyKCZpMmNfcmFtLT50ZHAsIDApOworCW91dF9iZTE2KCZpMmNfcmFtLT50YnB0ciwgMCk7CisJb3V0X2JlMTYoJmkyY19yYW0tPnRiYywgMCk7CisJb3V0X2JlMzIoJmkyY19yYW0tPnR4dG1wLCAwKTsKK30KKworc3RhdGljIHZvaWQgY3BtX2kyY19mb3JjZV9jbG9zZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCit7CisJc3RydWN0IGNwbV9pMmMgKmNwbSA9IGkyY19nZXRfYWRhcGRhdGEoYWRhcCk7CisJc3RydWN0IGkyY19yZWcgX19pb21lbSAqaTJjX3JlZyA9IGNwbS0+aTJjX3JlZzsKKworCWRldl9kYmcoJmFkYXAtPmRldiwgImNwbV9pMmNfZm9yY2VfY2xvc2UoKVxuIik7CisKKwljcG1fY29tbWFuZChjcG0tPmNwX2NvbW1hbmQsIENQTV9DUl9DTE9TRV9SWF9CRCk7CisKKwlvdXRfOCgmaTJjX3JlZy0+aTJjbXIsIDB4MDApOwkvKiBEaXNhYmxlIGFsbCBpbnRlcnJ1cHRzICovCisJb3V0XzgoJmkyY19yZWctPmkyY2VyLCAweGZmKTsKK30KKworc3RhdGljIHZvaWQgY3BtX2kyY19wYXJzZV9tZXNzYWdlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwKKwlzdHJ1Y3QgaTJjX21zZyAqcG1zZywgaW50IG51bSwgaW50IHR4LCBpbnQgcngpCit7CisJY2JkX3QgX19pb21lbSAqdGJkZjsKKwljYmRfdCBfX2lvbWVtICpyYmRmOworCXVfY2hhciBhZGRyOworCXVfY2hhciAqdGI7CisJdV9jaGFyICpyYjsKKwlzdHJ1Y3QgY3BtX2kyYyAqY3BtID0gaTJjX2dldF9hZGFwZGF0YShhZGFwKTsKKworCXRiZGYgPSBjcG0tPnRiYXNlICsgdHg7CisJcmJkZiA9IGNwbS0+cmJhc2UgKyByeDsKKworCWFkZHIgPSBwbXNnLT5hZGRyIDw8IDE7CisJaWYgKHBtc2ctPmZsYWdzICYgSTJDX01fUkQpCisJCWFkZHIgfD0gMTsKKworCXRiID0gY3BtLT50eGJ1Zlt0eF07CisJcmIgPSBjcG0tPnJ4YnVmW3J4XTsKKworCS8qIEFsaWduIHJlYWQgYnVmZmVyICovCisJcmIgPSAodV9jaGFyICopICgoKHVsb25nKSByYiArIDEpICYgfjEpOworCisJdGJbMF0gPSBhZGRyOwkJLyogRGV2aWNlIGFkZHJlc3MgYnl0ZSB3L3J3IGZsYWcgKi8KKworCW91dF9iZTE2KCZ0YmRmLT5jYmRfZGF0bGVuLCBwbXNnLT5sZW4gKyAxKTsKKwlvdXRfYmUxNigmdGJkZi0+Y2JkX3NjLCAwKTsKKworCWlmICghKHBtc2ctPmZsYWdzICYgSTJDX01fTk9TVEFSVCkpCisJCXNldGJpdHMxNigmdGJkZi0+Y2JkX3NjLCBCRF9JMkNfU1RBUlQpOworCisJaWYgKHR4ICsgMSA9PSBudW0pCisJCXNldGJpdHMxNigmdGJkZi0+Y2JkX3NjLCBCRF9TQ19MQVNUIHwgQkRfU0NfV1JBUCk7CisKKwlpZiAocG1zZy0+ZmxhZ3MgJiBJMkNfTV9SRCkgeworCQkvKgorCQkgKiBUbyByZWFkLCB3ZSBuZWVkIGFuIGVtcHR5IGJ1ZmZlciBvZiB0aGUgcHJvcGVyIGxlbmd0aC4KKwkJICogQWxsIHRoYXQgaXMgdXNlZCBpcyB0aGUgZmlyc3QgYnl0ZSBmb3IgYWRkcmVzcywgdGhlIHJlbWFpbmRlcgorCQkgKiBpcyBqdXN0IHVzZWQgZm9yIHRpbWluZyAoYW5kIGRvZXNuJ3QgcmVhbGx5IGhhdmUgdG8gZXhpc3QpLgorCQkgKi8KKworCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJjcG1faTJjX3JlYWQoYWJ5dGU9MHgleClcbiIsIGFkZHIpOworCisJCW91dF9iZTE2KCZyYmRmLT5jYmRfZGF0bGVuLCAwKTsKKwkJb3V0X2JlMTYoJnJiZGYtPmNiZF9zYywgQkRfU0NfRU1QVFkgfCBCRF9TQ19JTlRSUFQpOworCisJCWlmIChyeCArIDEgPT0gQ1BNX01BWEJEKQorCQkJc2V0Yml0czE2KCZyYmRmLT5jYmRfc2MsIEJEX1NDX1dSQVApOworCisJCWVpZWlvKCk7CisJCXNldGJpdHMxNigmdGJkZi0+Y2JkX3NjLCBCRF9TQ19SRUFEWSk7CisJfSBlbHNlIHsKKwkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiY3BtX2kyY193cml0ZShhYnl0ZT0weCV4KVxuIiwgYWRkcik7CisKKwkJbWVtY3B5KHRiKzEsIHBtc2ctPmJ1ZiwgcG1zZy0+bGVuKTsKKworCQllaWVpbygpOworCQlzZXRiaXRzMTYoJnRiZGYtPmNiZF9zYywgQkRfU0NfUkVBRFkgfCBCRF9TQ19JTlRSUFQpOworCX0KK30KKworc3RhdGljIGludCBjcG1faTJjX2NoZWNrX21lc3NhZ2Uoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLAorCXN0cnVjdCBpMmNfbXNnICpwbXNnLCBpbnQgdHgsIGludCByeCkKK3sKKwljYmRfdCBfX2lvbWVtICp0YmRmOworCWNiZF90IF9faW9tZW0gKnJiZGY7CisJdV9jaGFyICp0YjsKKwl1X2NoYXIgKnJiOworCXN0cnVjdCBjcG1faTJjICpjcG0gPSBpMmNfZ2V0X2FkYXBkYXRhKGFkYXApOworCisJdGJkZiA9IGNwbS0+dGJhc2UgKyB0eDsKKwlyYmRmID0gY3BtLT5yYmFzZSArIHJ4OworCisJdGIgPSBjcG0tPnR4YnVmW3R4XTsKKwlyYiA9IGNwbS0+cnhidWZbcnhdOworCisJLyogQWxpZ24gcmVhZCBidWZmZXIgKi8KKwlyYiA9ICh1X2NoYXIgKikgKCgodWludCkgcmIgKyAxKSAmIH4xKTsKKworCWVpZWlvKCk7CisJaWYgKHBtc2ctPmZsYWdzICYgSTJDX01fUkQpIHsKKwkJZGV2X2RiZygmYWRhcC0+ZGV2LCAidHggc2MgMHglMDR4LCByeCBzYyAweCUwNHhcbiIsCisJCQlpbl9iZTE2KCZ0YmRmLT5jYmRfc2MpLCBpbl9iZTE2KCZyYmRmLT5jYmRfc2MpKTsKKworCQlpZiAoaW5fYmUxNigmdGJkZi0+Y2JkX3NjKSAmIEJEX1NDX05BSykgeworCQkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiSTJDIHJlYWQ7IE5vIGFja1xuIik7CisJCQlyZXR1cm4gLUVOWElPOworCQl9CisJCWlmIChpbl9iZTE2KCZyYmRmLT5jYmRfc2MpICYgQkRfU0NfRU1QVFkpIHsKKwkJCWRldl9lcnIoJmFkYXAtPmRldiwKKwkJCQkiSTJDIHJlYWQ7IGNvbXBsZXRlIGJ1dCByYnVmIGVtcHR5XG4iKTsKKwkJCXJldHVybiAtRVJFTU9URUlPOworCQl9CisJCWlmIChpbl9iZTE2KCZyYmRmLT5jYmRfc2MpICYgQkRfU0NfT1YpIHsKKwkJCWRldl9lcnIoJmFkYXAtPmRldiwgIkkyQyByZWFkOyBPdmVycnVuXG4iKTsKKwkJCXJldHVybiAtRVJFTU9URUlPOworCQl9CisJCW1lbWNweShwbXNnLT5idWYsIHJiLCBwbXNnLT5sZW4pOworCX0gZWxzZSB7CisJCWRldl9kYmcoJmFkYXAtPmRldiwgInR4IHNjICVkIDB4JTA0eFxuIiwgdHgsCisJCQlpbl9iZTE2KCZ0YmRmLT5jYmRfc2MpKTsKKworCQlpZiAoaW5fYmUxNigmdGJkZi0+Y2JkX3NjKSAmIEJEX1NDX05BSykgeworCQkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiSTJDIHdyaXRlOyBObyBhY2tcbiIpOworCQkJcmV0dXJuIC1FTlhJTzsKKwkJfQorCQlpZiAoaW5fYmUxNigmdGJkZi0+Y2JkX3NjKSAmIEJEX1NDX1VOKSB7CisJCQlkZXZfZXJyKCZhZGFwLT5kZXYsICJJMkMgd3JpdGU7IFVuZGVycnVuXG4iKTsKKwkJCXJldHVybiAtRUlPOworCQl9CisJCWlmIChpbl9iZTE2KCZ0YmRmLT5jYmRfc2MpICYgQkRfU0NfQ0wpIHsKKwkJCWRldl9lcnIoJmFkYXAtPmRldiwgIkkyQyB3cml0ZTsgQ29sbGlzaW9uXG4iKTsKKwkJCXJldHVybiAtRUlPOworCQl9CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNwbV9pMmNfeGZlcihzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIHN0cnVjdCBpMmNfbXNnICptc2dzLCBpbnQgbnVtKQoreworCXN0cnVjdCBjcG1faTJjICpjcG0gPSBpMmNfZ2V0X2FkYXBkYXRhKGFkYXApOworCXN0cnVjdCBpMmNfcmVnIF9faW9tZW0gKmkyY19yZWcgPSBjcG0tPmkyY19yZWc7CisJc3RydWN0IGkyY19yYW0gX19pb21lbSAqaTJjX3JhbSA9IGNwbS0+aTJjX3JhbTsKKwlzdHJ1Y3QgaTJjX21zZyAqcG1zZzsKKwlpbnQgcmV0LCBpOworCWludCB0cHRyOworCWludCBycHRyOworCWNiZF90IF9faW9tZW0gKnRiZGY7CisJY2JkX3QgX19pb21lbSAqcmJkZjsKKworCWlmIChudW0gPiBDUE1fTUFYQkQpCisJCXJldHVybiAtRUlOVkFMOworCisJLyogQ2hlY2sgaWYgd2UgaGF2ZSBhbnkgb3ZlcnNpemVkIFJFQUQgcmVxdWVzdHMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKKwkJcG1zZyA9ICZtc2dzW2ldOworCQlpZiAocG1zZy0+bGVuID49IENQTV9NQVhfUkVBRCkKKwkJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIFJlc2V0IHRvIHVzZSBmaXJzdCBidWZmZXIgKi8KKwlvdXRfYmUxNigmaTJjX3JhbS0+cmJwdHIsIGluX2JlMTYoJmkyY19yYW0tPnJiYXNlKSk7CisJb3V0X2JlMTYoJmkyY19yYW0tPnRicHRyLCBpbl9iZTE2KCZpMmNfcmFtLT50YmFzZSkpOworCisJdGJkZiA9IGNwbS0+dGJhc2U7CisJcmJkZiA9IGNwbS0+cmJhc2U7CisKKwl0cHRyID0gMDsKKwlycHRyID0gMDsKKworCXdoaWxlICh0cHRyIDwgbnVtKSB7CisJCXBtc2cgPSAmbXNnc1t0cHRyXTsKKwkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiUjogJWQgVDogJWRcbiIsIHJwdHIsIHRwdHIpOworCisJCWNwbV9pMmNfcGFyc2VfbWVzc2FnZShhZGFwLCBwbXNnLCBudW0sIHRwdHIsIHJwdHIpOworCQlpZiAocG1zZy0+ZmxhZ3MgJiBJMkNfTV9SRCkKKwkJCXJwdHIrKzsKKwkJdHB0cisrOworCX0KKwkvKiBTdGFydCB0cmFuc2ZlciBub3cgKi8KKwkvKiBFbmFibGUgUlgvVFgvRXJyb3IgaW50ZXJ1cHRzICovCisJb3V0XzgoJmkyY19yZWctPmkyY21yLCBJMkNFUl9UWEUgfCBJMkNFUl9UWEIgfCBJMkNFUl9SWEIpOworCW91dF84KCZpMmNfcmVnLT5pMmNlciwgMHhmZik7CS8qIENsZWFyIGludGVycnVwdCBzdGF0dXMgKi8KKwkvKiBDaGlwIGJ1Zywgc2V0IGVuYWJsZSBoZXJlICovCisJc2V0Yml0czgoJmkyY19yZWctPmkybW9kLCBJMk1PRF9FTik7CS8qIEVuYWJsZSAqLworCS8qIEJlZ2luIHRyYW5zbWlzc2lvbiAqLworCXNldGJpdHM4KCZpMmNfcmVnLT5pMmNvbSwgSTJDT01fU1RBUlQpOworCisJdHB0ciA9IDA7CisJcnB0ciA9IDA7CisKKwl3aGlsZSAodHB0ciA8IG51bSkgeworCQkvKiBDaGVjayBmb3Igb3V0c3RhbmRpbmcgbWVzc2FnZXMgKi8KKwkJZGV2X2RiZygmYWRhcC0+ZGV2LCAidGVzdCByZWFkeS5cbiIpOworCQlwbXNnID0gJm1zZ3NbdHB0cl07CisJCWlmIChwbXNnLT5mbGFncyAmIEkyQ19NX1JEKQorCQkJcmV0ID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoY3BtLT5pMmNfd2FpdCwKKwkJCQkhKGluX2JlMTYoJnJiZGZbcnB0cl0uY2JkX3NjKSAmIEJEX1NDX0VNUFRZKSwKKwkJCQkxICogSFopOworCQllbHNlCisJCQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dChjcG0tPmkyY193YWl0LAorCQkJCSEoaW5fYmUxNigmdGJkZlt0cHRyXS5jYmRfc2MpICYgQkRfU0NfUkVBRFkpLAorCQkJCTEgKiBIWik7CisJCWlmIChyZXQgPT0gMCkgeworCQkJcmV0ID0gLUVSRU1PVEVJTzsKKwkJCWRldl9lcnIoJmFkYXAtPmRldiwgIkkyQyB0cmFuc2ZlcjogdGltZW91dFxuIik7CisJCQlnb3RvIG91dF9lcnI7CisJCX0KKwkJaWYgKHJldCA+IDApIHsKKwkJCWRldl9kYmcoJmFkYXAtPmRldiwgInJlYWR5LlxuIik7CisJCQlyZXQgPSBjcG1faTJjX2NoZWNrX21lc3NhZ2UoYWRhcCwgcG1zZywgdHB0ciwgcnB0cik7CisJCQl0cHRyKys7CisJCQlpZiAocG1zZy0+ZmxhZ3MgJiBJMkNfTV9SRCkKKwkJCQlycHRyKys7CisJCQlpZiAocmV0KQorCQkJCWdvdG8gb3V0X2VycjsKKwkJfQorCX0KKyNpZmRlZiBJMkNfQ0hJUF9FUlJBVEEKKwkvKgorCSAqIENoaXAgZXJyYXRhLCBjbGVhciBlbmFibGUuIFRoaXMgaXMgbm90IG5lZWRlZCBvbiByZXYgRDQgQ1BVcy4KKwkgKiBEaXNhYmxpbmcgSTJDIHRvbyBlYXJseSBtYXkgY2F1c2UgdG9vIHNob3J0IHN0b3AgY29uZGl0aW9uCisJICovCisJdWRlbGF5KDQpOworCWNscmJpdHM4KCZpMmNfcmVnLT5pMm1vZCwgSTJNT0RfRU4pOworI2VuZGlmCisJcmV0dXJuIChudW0pOworCitvdXRfZXJyOgorCWNwbV9pMmNfZm9yY2VfY2xvc2UoYWRhcCk7CisjaWZkZWYgSTJDX0NISVBfRVJSQVRBCisJLyoKKwkgKiBDaGlwIGVycmF0YSwgY2xlYXIgZW5hYmxlLiBUaGlzIGlzIG5vdCBuZWVkZWQgb24gcmV2IEQ0IENQVXMuCisJICovCisJY2xyYml0czgoJmkyY19yZWctPmkybW9kLCBJMk1PRF9FTik7CisjZW5kaWYKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdTMyIGNwbV9pMmNfZnVuYyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCit7CisJcmV0dXJuIEkyQ19GVU5DX0kyQyB8IChJMkNfRlVOQ19TTUJVU19FTVVMICYgfkkyQ19GVU5DX1NNQlVTX1FVSUNLKTsKK30KKworLyogLS0tLS1leHBvcnRlZCBhbGdvcml0aG0gZGF0YTogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQkqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19hbGdvcml0aG0gY3BtX2kyY19hbGdvID0geworCS5tYXN0ZXJfeGZlciA9IGNwbV9pMmNfeGZlciwKKwkuZnVuY3Rpb25hbGl0eSA9IGNwbV9pMmNfZnVuYywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2FkYXB0ZXIgY3BtX29wcyA9IHsKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJLm5hbWUJCT0gImkyYy1jcG0iLAorCS5hbGdvCQk9ICZjcG1faTJjX2FsZ28sCisJLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCit9OworCitzdGF0aWMgaW50IF9fZGV2aW5pdCBjcG1faTJjX3NldHVwKHN0cnVjdCBjcG1faTJjICpjcG0pCit7CisJc3RydWN0IG9mX2RldmljZSAqb2ZkZXYgPSBjcG0tPm9mZGV2OworCWNvbnN0IHUzMiAqZGF0YTsKKwlpbnQgbGVuLCByZXQsIGk7CisJdm9pZCBfX2lvbWVtICppMmNfYmFzZTsKKwljYmRfdCBfX2lvbWVtICp0YmRmOworCWNiZF90IF9faW9tZW0gKnJiZGY7CisJdW5zaWduZWQgY2hhciBicmc7CisKKwlkZXZfZGJnKCZjcG0tPm9mZGV2LT5kZXYsICJjcG1faTJjX3NldHVwKClcbiIpOworCisJaW5pdF93YWl0cXVldWVfaGVhZCgmY3BtLT5pMmNfd2FpdCk7CisKKwljcG0tPmlycSA9IG9mX2lycV90b19yZXNvdXJjZShvZmRldi0+bm9kZSwgMCwgTlVMTCk7CisJaWYgKGNwbS0+aXJxID09IE5PX0lSUSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBJbnN0YWxsIGludGVycnVwdCBoYW5kbGVyLiAqLworCXJldCA9IHJlcXVlc3RfaXJxKGNwbS0+aXJxLCBjcG1faTJjX2ludGVycnVwdCwgMCwgImNwbV9pMmMiLAorCQkJICAmY3BtLT5hZGFwKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyogSTJDIHBhcmFtZXRlciBSQU0gKi8KKwlpMmNfYmFzZSA9IG9mX2lvbWFwKG9mZGV2LT5ub2RlLCAxKTsKKwlpZiAoaTJjX2Jhc2UgPT0gTlVMTCkgeworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIG91dF9pcnE7CisJfQorCisJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG9mZGV2LT5ub2RlLCAiZnNsLGNwbTEtaTJjIikpIHsKKworCQkvKiBDaGVjayBmb3IgYW5kIHVzZSBhIG1pY3JvY29kZSByZWxvY2F0aW9uIHBhdGNoLiAqLworCQljcG0tPmkyY19yYW0gPSBpMmNfYmFzZTsKKwkJY3BtLT5pMmNfYWRkciA9IGluX2JlMTYoJmNwbS0+aTJjX3JhbS0+cnBiYXNlKTsKKworCQkvKgorCQkgKiBNYXliZSBzaG91bGQgdXNlIGNwbV9tdXJhbV9hbGxvYyBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcKKwkJICogdGhpcyBpbiBtaWNyb3BhdGNoLmMKKwkJICovCisJCWlmIChjcG0tPmkyY19hZGRyKSB7CisJCQljcG0tPmkyY19yYW0gPSBjcG1fbXVyYW1fYWRkcihjcG0tPmkyY19hZGRyKTsKKwkJCWlvdW5tYXAoaTJjX2Jhc2UpOworCQl9CisKKwkJY3BtLT52ZXJzaW9uID0gMTsKKworCX0gZWxzZSBpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUob2ZkZXYtPm5vZGUsICJmc2wsY3BtMi1pMmMiKSkgeworCQljcG0tPmkyY19hZGRyID0gY3BtX211cmFtX2FsbG9jKHNpemVvZihzdHJ1Y3QgaTJjX3JhbSksIDY0KTsKKwkJY3BtLT5pMmNfcmFtID0gY3BtX211cmFtX2FkZHIoY3BtLT5pMmNfYWRkcik7CisJCW91dF9iZTE2KGkyY19iYXNlLCBjcG0tPmkyY19hZGRyKTsKKwkJaW91bm1hcChpMmNfYmFzZSk7CisKKwkJY3BtLT52ZXJzaW9uID0gMjsKKworCX0gZWxzZSB7CisJCWlvdW5tYXAoaTJjX2Jhc2UpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIG91dF9pcnE7CisJfQorCisJLyogSTJDIGNvbnRyb2wvc3RhdHVzIHJlZ2lzdGVycyAqLworCWNwbS0+aTJjX3JlZyA9IG9mX2lvbWFwKG9mZGV2LT5ub2RlLCAwKTsKKwlpZiAoY3BtLT5pMmNfcmVnID09IE5VTEwpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXRfcmFtOworCX0KKworCWRhdGEgPSBvZl9nZXRfcHJvcGVydHkob2ZkZXYtPm5vZGUsICJmc2wsY3BtLWNvbW1hbmQiLCAmbGVuKTsKKwlpZiAoIWRhdGEgfHwgbGVuICE9IDQpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXRfcmVnOworCX0KKwljcG0tPmNwX2NvbW1hbmQgPSAqZGF0YTsKKworCWRhdGEgPSBvZl9nZXRfcHJvcGVydHkob2ZkZXYtPm5vZGUsICJsaW51eCxpMmMtY2xhc3MiLCAmbGVuKTsKKwlpZiAoZGF0YSAmJiBsZW4gPT0gNCkKKwkJY3BtLT5hZGFwLmNsYXNzID0gKmRhdGE7CisKKwlkYXRhID0gb2ZfZ2V0X3Byb3BlcnR5KG9mZGV2LT5ub2RlLCAiY2xvY2stZnJlcXVlbmN5IiwgJmxlbik7CisJaWYgKGRhdGEgJiYgbGVuID09IDQpCisJCWNwbS0+ZnJlcSA9ICpkYXRhOworCWVsc2UKKwkJY3BtLT5mcmVxID0gNjAwMDA7IC8qIHVzZSA2MGtIeiBpMmMgY2xvY2sgYnkgZGVmYXVsdCAqLworCisJLyoKKwkgKiBBbGxvY2F0ZSBzcGFjZSBmb3IgQ1BNX01BWEJEIHRyYW5zbWl0IGFuZCByZWNlaXZlIGJ1ZmZlcgorCSAqIGRlc2NyaXB0b3JzIGluIHRoZSBEUCByYW0uCisJICovCisJY3BtLT5kcF9hZGRyID0gY3BtX211cmFtX2FsbG9jKHNpemVvZihjYmRfdCkgKiAyICogQ1BNX01BWEJELCA4KTsKKwlpZiAoIWNwbS0+ZHBfYWRkcikgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dF9yZWc7CisJfQorCisJY3BtLT50YmFzZSA9IGNwbV9tdXJhbV9hZGRyKGNwbS0+ZHBfYWRkcik7CisJY3BtLT5yYmFzZSA9IGNwbV9tdXJhbV9hZGRyKGNwbS0+ZHBfYWRkciArIHNpemVvZihjYmRfdCkgKiBDUE1fTUFYQkQpOworCisJLyogQWxsb2NhdGUgVFggYW5kIFJYIGJ1ZmZlcnMgKi8KKworCXRiZGYgPSBjcG0tPnRiYXNlOworCXJiZGYgPSBjcG0tPnJiYXNlOworCisJZm9yIChpID0gMDsgaSA8IENQTV9NQVhCRDsgaSsrKSB7CisJCWNwbS0+cnhidWZbaV0gPSBkbWFfYWxsb2NfY29oZXJlbnQoCisJCQlOVUxMLCBDUE1fTUFYX1JFQUQgKyAxLCAmY3BtLT5yeGRtYVtpXSwgR0ZQX0tFUk5FTCk7CisJCWlmICghY3BtLT5yeGJ1ZltpXSkgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gb3V0X211cmFtOworCQl9CisJCW91dF9iZTMyKCZyYmRmW2ldLmNiZF9idWZhZGRyLCAoKGNwbS0+cnhkbWFbaV0gKyAxKSAmIH4xKSk7CisKKwkJY3BtLT50eGJ1ZltpXSA9ICh1bnNpZ25lZCBjaGFyICopZG1hX2FsbG9jX2NvaGVyZW50KAorCQkJTlVMTCwgQ1BNX01BWF9SRUFEICsgMSwgJmNwbS0+dHhkbWFbaV0sIEdGUF9LRVJORUwpOworCQlpZiAoIWNwbS0+dHhidWZbaV0pIHsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIG91dF9tdXJhbTsKKwkJfQorCQlvdXRfYmUzMigmdGJkZltpXS5jYmRfYnVmYWRkciwgY3BtLT50eGRtYVtpXSk7CisJfQorCisJLyogSW5pdGlhbGl6ZSBUeC9SeCBwYXJhbWV0ZXJzLiAqLworCisJY3BtX3Jlc2V0X2kyY19wYXJhbXMoY3BtKTsKKworCWRldl9kYmcoJmNwbS0+b2ZkZXYtPmRldiwgImkyY19yYW0gMHglcCwgaTJjX2FkZHIgMHglMDR4LCBmcmVxICVkXG4iLAorCQljcG0tPmkyY19yYW0sIGNwbS0+aTJjX2FkZHIsIGNwbS0+ZnJlcSk7CisJZGV2X2RiZygmY3BtLT5vZmRldi0+ZGV2LCAidGJhc2UgMHglMDR4LCByYmFzZSAweCUwNHhcbiIsCisJCSh1OCBfX2lvbWVtICopY3BtLT50YmFzZSAtIERQUkFNX0JBU0UsCisJCSh1OCBfX2lvbWVtICopY3BtLT5yYmFzZSAtIERQUkFNX0JBU0UpOworCisJY3BtX2NvbW1hbmQoY3BtLT5jcF9jb21tYW5kLCBDUE1fQ1JfSU5JVF9UUlgpOworCisJLyoKKwkgKiBTZWxlY3QgYW4gaW52YWxpZCBhZGRyZXNzLiBKdXN0IG1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgbG9vcGJhY2sgbW9kZQorCSAqLworCW91dF84KCZjcG0tPmkyY19yZWctPmkyYWRkLCAweDdmIDw8IDEpOworCisJLyoKKwkgKiBQRElWIGlzIHNldCB0byAwMCBpbiBpMm1vZCwgc28gYnJnY2xrLzMyIGlzIHVzZWQgYXMgaW5wdXQgdG8gdGhlCisJICogaTJjIGJhdWQgcmF0ZSBnZW5lcmF0b3IuIFRoaXMgaXMgZGl2aWRlZCBieSAyIHggKERJViArIDMpIHRvIGdldAorCSAqIHRoZSBhY3R1YWwgaTJjIGJ1cyBmcmVxdWVuY3kuCisJICovCisJYnJnID0gZ2V0X2JyZ2ZyZXEoKSAvICgzMiAqIDIgKiBjcG0tPmZyZXEpIC0gMzsKKwlvdXRfOCgmY3BtLT5pMmNfcmVnLT5pMmJyZywgYnJnKTsKKworCW91dF84KCZjcG0tPmkyY19yZWctPmkybW9kLCAweDAwKTsKKwlvdXRfOCgmY3BtLT5pMmNfcmVnLT5pMmNvbSwgSTJDT01fTUFTVEVSKTsJLyogTWFzdGVyIG1vZGUgKi8KKworCS8qIERpc2FibGUgaW50ZXJydXB0cy4gKi8KKwlvdXRfOCgmY3BtLT5pMmNfcmVnLT5pMmNtciwgMCk7CisJb3V0XzgoJmNwbS0+aTJjX3JlZy0+aTJjZXIsIDB4ZmYpOworCisJcmV0dXJuIDA7CisKK291dF9tdXJhbToKKwlmb3IgKGkgPSAwOyBpIDwgQ1BNX01BWEJEOyBpKyspIHsKKwkJaWYgKGNwbS0+cnhidWZbaV0pCisJCQlkbWFfZnJlZV9jb2hlcmVudChOVUxMLCBDUE1fTUFYX1JFQUQgKyAxLAorCQkJCWNwbS0+cnhidWZbaV0sIGNwbS0+cnhkbWFbaV0pOworCQlpZiAoY3BtLT50eGJ1ZltpXSkKKwkJCWRtYV9mcmVlX2NvaGVyZW50KE5VTEwsIENQTV9NQVhfUkVBRCArIDEsCisJCQkJY3BtLT50eGJ1ZltpXSwgY3BtLT50eGRtYVtpXSk7CisJfQorCWNwbV9tdXJhbV9mcmVlKGNwbS0+ZHBfYWRkcik7CitvdXRfcmVnOgorCWlvdW5tYXAoY3BtLT5pMmNfcmVnKTsKK291dF9yYW06CisJaWYgKChjcG0tPnZlcnNpb24gPT0gMSkgJiYgKCFjcG0tPmkyY19hZGRyKSkKKwkJaW91bm1hcChjcG0tPmkyY19yYW0pOworCWlmIChjcG0tPnZlcnNpb24gPT0gMikKKwkJY3BtX211cmFtX2ZyZWUoY3BtLT5pMmNfYWRkcik7CitvdXRfaXJxOgorCWZyZWVfaXJxKGNwbS0+aXJxLCAmY3BtLT5hZGFwKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBjcG1faTJjX3NodXRkb3duKHN0cnVjdCBjcG1faTJjICpjcG0pCit7CisJaW50IGk7CisKKwkvKiBTaHV0IGRvd24gSTJDLiAqLworCWNscmJpdHM4KCZjcG0tPmkyY19yZWctPmkybW9kLCBJMk1PRF9FTik7CisKKwkvKiBEaXNhYmxlIGludGVycnVwdHMgKi8KKwlvdXRfOCgmY3BtLT5pMmNfcmVnLT5pMmNtciwgMCk7CisJb3V0XzgoJmNwbS0+aTJjX3JlZy0+aTJjZXIsIDB4ZmYpOworCisJZnJlZV9pcnEoY3BtLT5pcnEsICZjcG0tPmFkYXApOworCisJLyogRnJlZSBhbGwgbWVtb3J5ICovCisJZm9yIChpID0gMDsgaSA8IENQTV9NQVhCRDsgaSsrKSB7CisJCWRtYV9mcmVlX2NvaGVyZW50KE5VTEwsIENQTV9NQVhfUkVBRCArIDEsCisJCQljcG0tPnJ4YnVmW2ldLCBjcG0tPnJ4ZG1hW2ldKTsKKwkJZG1hX2ZyZWVfY29oZXJlbnQoTlVMTCwgQ1BNX01BWF9SRUFEICsgMSwKKwkJCWNwbS0+dHhidWZbaV0sIGNwbS0+dHhkbWFbaV0pOworCX0KKworCWNwbV9tdXJhbV9mcmVlKGNwbS0+ZHBfYWRkcik7CisJaW91bm1hcChjcG0tPmkyY19yZWcpOworCisJaWYgKChjcG0tPnZlcnNpb24gPT0gMSkgJiYgKCFjcG0tPmkyY19hZGRyKSkKKwkJaW91bm1hcChjcG0tPmkyY19yYW0pOworCWlmIChjcG0tPnZlcnNpb24gPT0gMikKKwkJY3BtX211cmFtX2ZyZWUoY3BtLT5pMmNfYWRkcik7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZpbml0IGNwbV9pMmNfcHJvYmUoc3RydWN0IG9mX2RldmljZSAqb2ZkZXYsCisJCQkgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2gpCit7CisJaW50IHJlc3VsdCwgbGVuOworCXN0cnVjdCBjcG1faTJjICpjcG07CisJY29uc3QgdTMyICpkYXRhOworCisJY3BtID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGNwbV9pMmMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNwbSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwljcG0tPm9mZGV2ID0gb2ZkZXY7CisKKwlkZXZfc2V0X2RydmRhdGEoJm9mZGV2LT5kZXYsIGNwbSk7CisKKwljcG0tPmFkYXAgPSBjcG1fb3BzOworCWkyY19zZXRfYWRhcGRhdGEoJmNwbS0+YWRhcCwgY3BtKTsKKwljcG0tPmFkYXAuZGV2LnBhcmVudCA9ICZvZmRldi0+ZGV2OworCisJcmVzdWx0ID0gY3BtX2kyY19zZXR1cChjcG0pOworCWlmIChyZXN1bHQpIHsKKwkJZGV2X2Vycigmb2ZkZXYtPmRldiwgIlVuYWJsZSB0byBpbml0IGhhcmR3YXJlXG4iKTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisKKwkvKiByZWdpc3RlciBuZXcgYWRhcHRlciB0byBpMmMgbW9kdWxlLi4uICovCisKKwlkYXRhID0gb2ZfZ2V0X3Byb3BlcnR5KG9mZGV2LT5ub2RlLCAibGludXgsaTJjLWluZGV4IiwgJmxlbik7CisJaWYgKGRhdGEgJiYgbGVuID09IDQpIHsKKwkJY3BtLT5hZGFwLm5yID0gKmRhdGE7CisJCXJlc3VsdCA9IGkyY19hZGRfbnVtYmVyZWRfYWRhcHRlcigmY3BtLT5hZGFwKTsKKwl9IGVsc2UKKwkJcmVzdWx0ID0gaTJjX2FkZF9hZGFwdGVyKCZjcG0tPmFkYXApOworCisJaWYgKHJlc3VsdCA8IDApIHsKKwkJZGV2X2Vycigmb2ZkZXYtPmRldiwgIlVuYWJsZSB0byByZWdpc3RlciB3aXRoIEkyQ1xuIik7CisJCWdvdG8gb3V0X3NodXQ7CisJfQorCisJZGV2X2RiZygmb2ZkZXYtPmRldiwgImh3IHJvdXRpbmVzIGZvciAlcyByZWdpc3RlcmVkLlxuIiwKKwkJY3BtLT5hZGFwLm5hbWUpOworCisJLyoKKwkgKiByZWdpc3RlciBPRiBJMkMgZGV2aWNlcworCSAqLworCW9mX3JlZ2lzdGVyX2kyY19kZXZpY2VzKCZjcG0tPmFkYXAsIG9mZGV2LT5ub2RlKTsKKworCXJldHVybiAwOworb3V0X3NodXQ6CisJY3BtX2kyY19zaHV0ZG93bihjcG0pOworb3V0X2ZyZWU6CisJZGV2X3NldF9kcnZkYXRhKCZvZmRldi0+ZGV2LCBOVUxMKTsKKwlrZnJlZShjcG0pOworCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludCBfX2RldmV4aXQgY3BtX2kyY19yZW1vdmUoc3RydWN0IG9mX2RldmljZSAqb2ZkZXYpCit7CisJc3RydWN0IGNwbV9pMmMgKmNwbSA9IGRldl9nZXRfZHJ2ZGF0YSgmb2ZkZXYtPmRldik7CisKKwlpMmNfZGVsX2FkYXB0ZXIoJmNwbS0+YWRhcCk7CisKKwljcG1faTJjX3NodXRkb3duKGNwbSk7CisKKwlkZXZfc2V0X2RydmRhdGEoJm9mZGV2LT5kZXYsIE5VTEwpOworCWtmcmVlKGNwbSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgY3BtX2kyY19tYXRjaFtdID0geworCXsKKwkJLmNvbXBhdGlibGUgPSAiZnNsLGNwbTEtaTJjIiwKKwl9LAorCXsKKwkJLmNvbXBhdGlibGUgPSAiZnNsLGNwbTItaTJjIiwKKwl9LAorCXt9LAorfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgY3BtX2kyY19tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3Qgb2ZfcGxhdGZvcm1fZHJpdmVyIGNwbV9pMmNfZHJpdmVyID0geworCS5tYXRjaF90YWJsZQk9IGNwbV9pMmNfbWF0Y2gsCisJLnByb2JlCQk9IGNwbV9pMmNfcHJvYmUsCisJLnJlbW92ZQkJPSBfX2RldmV4aXRfcChjcG1faTJjX3JlbW92ZSksCisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gImZzbC1pMmMtY3BtIiwKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJfQorfTsKKworc3RhdGljIGludCBfX2luaXQgY3BtX2kyY19pbml0KHZvaWQpCit7CisJcmV0dXJuIG9mX3JlZ2lzdGVyX3BsYXRmb3JtX2RyaXZlcigmY3BtX2kyY19kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgY3BtX2kyY19leGl0KHZvaWQpCit7CisJb2ZfdW5yZWdpc3Rlcl9wbGF0Zm9ybV9kcml2ZXIoJmNwbV9pMmNfZHJpdmVyKTsKK30KKworbW9kdWxlX2luaXQoY3BtX2kyY19pbml0KTsKK21vZHVsZV9leGl0KGNwbV9pMmNfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIkpvY2hlbiBGcmllZHJpY2ggPGpvY2hlbkBzY3JhbS5kZT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiSTJDLUJ1cyBhZGFwdGVyIHJvdXRpbmVzIGZvciBDUE0gYm9hcmRzIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWRhdmluY2kuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtZGF2aW5jaS5jCmluZGV4IDdlY2JmYzQuLmFmMzg0NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtZGF2aW5jaS5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtZGF2aW5jaS5jCkBAIC04NSw2ICs4NSw3IEBACiAjZGVmaW5lIERBVklOQ0lfSTJDX01EUl9NU1QJKDEgPDwgMTApCiAjZGVmaW5lIERBVklOQ0lfSTJDX01EUl9UUlgJKDEgPDwgOSkKICNkZWZpbmUgREFWSU5DSV9JMkNfTURSX1hBCSgxIDw8IDgpCisjZGVmaW5lIERBVklOQ0lfSTJDX01EUl9STQkoMSA8PCA3KQogI2RlZmluZSBEQVZJTkNJX0kyQ19NRFJfSVJTCSgxIDw8IDUpCiAKICNkZWZpbmUgREFWSU5DSV9JMkNfSU1SX0FBUwkoMSA8PCA2KQpAQCAtMTEyLDYgKzExMyw3IEBACiAJdTgJCQkqYnVmOwogCXNpemVfdAkJCWJ1Zl9sZW47CiAJaW50CQkJaXJxOworCXU4CQkJdGVybWluYXRlOwogCXN0cnVjdCBpMmNfYWRhcHRlcglhZGFwdGVyOwogfTsKIApAQCAtMTQyLDYgKzE0NCw3IEBACiAJc3RydWN0IGRhdmluY2lfaTJjX3BsYXRmb3JtX2RhdGEgKnBkYXRhID0gZGV2LT5kZXYtPnBsYXRmb3JtX2RhdGE7CiAJdTE2IHBzYzsKIAl1MzIgY2xrOworCXUzMiBkOwogCXUzMiBjbGtoOwogCXUzMiBjbGtsOwogCXUzMiBpbnB1dF9jbG9jayA9IGNsa19nZXRfcmF0ZShkZXYtPmNsayk7CkBAIC0xNzEsMjMgKzE3NCwyOSBAQAogCSAqICAgICAgIGlmIFBTQyA+IDEgLCBkID0gNQogCSAqLwogCi0JcHNjID0gMjY7IC8qIFRvIGdldCAxTUh6IGNsb2NrICovCisJLyogZ2V0IG1pbmltdW0gb2YgNyBNSHogY2xvY2ssIGJ1dCBtYXggb2YgMTIgTUh6ICovCisJcHNjID0gKGlucHV0X2Nsb2NrIC8gNzAwMDAwMCkgLSAxOworCWlmICgoaW5wdXRfY2xvY2sgLyAocHNjICsgMSkpID4gMTIwMDAwMDApCisJCXBzYysrOwkvKiBiZXR0ZXIgdG8gcnVuIHVuZGVyIHNwZWMgdGhhbiBvdmVyICovCisJZCA9IChwc2MgPj0gMikgPyA1IDogNyAtIHBzYzsKIAotCWNsayA9ICgoaW5wdXRfY2xvY2sgLyAocHNjICsgMSkpIC8gKHBkYXRhLT5idXNfZnJlcSAqIDEwMDApKSAtIDEwOwotCWNsa2ggPSAoNTAgKiBjbGspIC8gMTAwOworCWNsayA9ICgoaW5wdXRfY2xvY2sgLyAocHNjICsgMSkpIC8gKHBkYXRhLT5idXNfZnJlcSAqIDEwMDApKSAtIChkIDw8IDEpOworCWNsa2ggPSBjbGsgPj4gMTsKIAljbGtsID0gY2xrIC0gY2xraDsKIAogCWRhdmluY2lfaTJjX3dyaXRlX3JlZyhkZXYsIERBVklOQ0lfSTJDX1BTQ19SRUcsIHBzYyk7CiAJZGF2aW5jaV9pMmNfd3JpdGVfcmVnKGRldiwgREFWSU5DSV9JMkNfQ0xLSF9SRUcsIGNsa2gpOwogCWRhdmluY2lfaTJjX3dyaXRlX3JlZyhkZXYsIERBVklOQ0lfSTJDX0NMS0xfUkVHLCBjbGtsKTsKIAotCWRldl9kYmcoZGV2LT5kZXYsICJDTEsgID0gJWRcbiIsIGNsayk7CisJZGV2X2RiZyhkZXYtPmRldiwgImlucHV0X2Nsb2NrID0gJWQsIENMSyA9ICVkXG4iLCBpbnB1dF9jbG9jaywgY2xrKTsKIAlkZXZfZGJnKGRldi0+ZGV2LCAiUFNDICA9ICVkXG4iLAogCQlkYXZpbmNpX2kyY19yZWFkX3JlZyhkZXYsIERBVklOQ0lfSTJDX1BTQ19SRUcpKTsKIAlkZXZfZGJnKGRldi0+ZGV2LCAiQ0xLTCA9ICVkXG4iLAogCQlkYXZpbmNpX2kyY19yZWFkX3JlZyhkZXYsIERBVklOQ0lfSTJDX0NMS0xfUkVHKSk7CiAJZGV2X2RiZyhkZXYtPmRldiwgIkNMS0ggPSAlZFxuIiwKIAkJZGF2aW5jaV9pMmNfcmVhZF9yZWcoZGV2LCBEQVZJTkNJX0kyQ19DTEtIX1JFRykpOworCWRldl9kYmcoZGV2LT5kZXYsICJidXNfZnJlcSA9ICVka0h6LCBidXNfZGVsYXkgPSAlZFxuIiwKKwkJcGRhdGEtPmJ1c19mcmVxLCBwZGF0YS0+YnVzX2RlbGF5KTsKIAogCS8qIFRha2UgdGhlIEkyQyBtb2R1bGUgb3V0IG9mIHJlc2V0OiAqLwogCXcgPSBkYXZpbmNpX2kyY19yZWFkX3JlZyhkZXYsIERBVklOQ0lfSTJDX01EUl9SRUcpOwpAQCAtMjMzLDcgKzI0Miw2IEBACiAJc3RydWN0IGRhdmluY2lfaTJjX2RldiAqZGV2ID0gaTJjX2dldF9hZGFwZGF0YShhZGFwKTsKIAlzdHJ1Y3QgZGF2aW5jaV9pMmNfcGxhdGZvcm1fZGF0YSAqcGRhdGEgPSBkZXYtPmRldi0+cGxhdGZvcm1fZGF0YTsKIAl1MzIgZmxhZzsKLQl1MzIgc3RhdDsKIAl1MTYgdzsKIAlpbnQgcjsKIApAQCAtMjU0LDEyICsyNjIsOSBAQAogCiAJZGF2aW5jaV9pMmNfd3JpdGVfcmVnKGRldiwgREFWSU5DSV9JMkNfQ05UX1JFRywgZGV2LT5idWZfbGVuKTsKIAotCWluaXRfY29tcGxldGlvbigmZGV2LT5jbWRfY29tcGxldGUpOworCUlOSVRfQ09NUExFVElPTihkZXYtPmNtZF9jb21wbGV0ZSk7CiAJZGV2LT5jbWRfZXJyID0gMDsKIAotCS8qIENsZWFyIGFueSBwZW5kaW5nIGludGVycnVwdHMgYnkgcmVhZGluZyB0aGUgSVZSICovCi0Jc3RhdCA9IGRhdmluY2lfaTJjX3JlYWRfcmVnKGRldiwgREFWSU5DSV9JMkNfSVZSX1JFRyk7Ci0KIAkvKiBUYWtlIEkyQyBvdXQgb2YgcmVzZXQsIGNvbmZpZ3VyZSBpdCBhcyBtYXN0ZXIgYW5kIHNldCB0aGUKIAkgKiBzdGFydCBiaXQgKi8KIAlmbGFnID0gREFWSU5DSV9JMkNfTURSX0lSUyB8IERBVklOQ0lfSTJDX01EUl9NU1QgfCBEQVZJTkNJX0kyQ19NRFJfU1RUOwpAQCAtMjgwLDIwICsyODUsMzQgQEAKIAkJTU9EX1JFR19CSVQodywgREFWSU5DSV9JMkNfSU1SX1hSRFksIDEpOwogCWRhdmluY2lfaTJjX3dyaXRlX3JlZyhkZXYsIERBVklOQ0lfSTJDX0lNUl9SRUcsIHcpOwogCisJZGV2LT50ZXJtaW5hdGUgPSAwOwogCS8qIHdyaXRlIHRoZSBkYXRhIGludG8gbW9kZSByZWdpc3RlciAqLwogCWRhdmluY2lfaTJjX3dyaXRlX3JlZyhkZXYsIERBVklOQ0lfSTJDX01EUl9SRUcsIGZsYWcpOwogCiAJciA9IHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZV90aW1lb3V0KCZkZXYtPmNtZF9jb21wbGV0ZSwKIAkJCQkJCSAgICAgIERBVklOQ0lfSTJDX1RJTUVPVVQpOwotCWRldi0+YnVmX2xlbiA9IDA7Ci0JaWYgKHIgPCAwKQotCQlyZXR1cm4gcjsKLQogCWlmIChyID09IDApIHsKIAkJZGV2X2VycihkZXYtPmRldiwgImNvbnRyb2xsZXIgdGltZWQgb3V0XG4iKTsKIAkJaTJjX2RhdmluY2lfaW5pdChkZXYpOworCQlkZXYtPmJ1Zl9sZW4gPSAwOwogCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAl9CisJaWYgKGRldi0+YnVmX2xlbikgeworCQkvKiBUaGlzIHNob3VsZCBiZSAwIGlmIGFsbCBieXRlcyB3ZXJlIHRyYW5zZmVycmVkCisJCSAqIG9yIGRldi0+Y21kX2VyciBkZW5vdGVzIGFuIGVycm9yLgorCQkgKiBBIHNpZ25hbCBtYXkgaGF2ZSBhYm9ydGVkIHRoZSB0cmFuc2Zlci4KKwkJICovCisJCWlmIChyID49IDApIHsKKwkJCWRldl9lcnIoZGV2LT5kZXYsICJhYm5vcm1hbCB0ZXJtaW5hdGlvbiBidWZfbGVuPSVpXG4iLAorCQkJCWRldi0+YnVmX2xlbik7CisJCQlyID0gLUVSRU1PVEVJTzsKKwkJfQorCQlkZXYtPnRlcm1pbmF0ZSA9IDE7CisJCXdtYigpOworCQlkZXYtPmJ1Zl9sZW4gPSAwOworCX0KKwlpZiAociA8IDApCisJCXJldHVybiByOwogCiAJLyogbm8gZXJyb3IgKi8KIAlpZiAobGlrZWx5KCFkZXYtPmNtZF9lcnIpKQpAQCAtMzM4LDEyICszNTcsMTEgQEAKIAogCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgewogCQlyZXQgPSBpMmNfZGF2aW5jaV94ZmVyX21zZyhhZGFwLCAmbXNnc1tpXSwgKGkgPT0gKG51bSAtIDEpKSk7CisJCWRldl9kYmcoZGV2LT5kZXYsICIlcyBbJWQvJWRdIHJldDogJWRcbiIsIF9fZnVuY19fLCBpICsgMSwgbnVtLAorCQkJcmV0KTsKIAkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0OwogCX0KLQotCWRldl9kYmcoZGV2LT5kZXYsICIlczolZCByZXQ6ICVkXG4iLCBfX2Z1bmNfXywgX19MSU5FX18sIHJldCk7Ci0KIAlyZXR1cm4gbnVtOwogfQogCkBAIC0zNTIsNiArMzcwLDI3IEBACiAJcmV0dXJuIEkyQ19GVU5DX0kyQyB8IChJMkNfRlVOQ19TTUJVU19FTVVMICYgfkkyQ19GVU5DX1NNQlVTX1FVSUNLKTsKIH0KIAorc3RhdGljIHZvaWQgdGVybWluYXRlX3JlYWQoc3RydWN0IGRhdmluY2lfaTJjX2RldiAqZGV2KQoreworCXUxNiB3ID0gZGF2aW5jaV9pMmNfcmVhZF9yZWcoZGV2LCBEQVZJTkNJX0kyQ19NRFJfUkVHKTsKKwl3IHw9IERBVklOQ0lfSTJDX01EUl9OQUNLOworCWRhdmluY2lfaTJjX3dyaXRlX3JlZyhkZXYsIERBVklOQ0lfSTJDX01EUl9SRUcsIHcpOworCisJLyogVGhyb3cgYXdheSBkYXRhICovCisJZGF2aW5jaV9pMmNfcmVhZF9yZWcoZGV2LCBEQVZJTkNJX0kyQ19EUlJfUkVHKTsKKwlpZiAoIWRldi0+dGVybWluYXRlKQorCQlkZXZfZXJyKGRldi0+ZGV2LCAiUkRSIElSUSB3aGlsZSBubyBkYXRhIHJlcXVlc3RlZFxuIik7Cit9CitzdGF0aWMgdm9pZCB0ZXJtaW5hdGVfd3JpdGUoc3RydWN0IGRhdmluY2lfaTJjX2RldiAqZGV2KQoreworCXUxNiB3ID0gZGF2aW5jaV9pMmNfcmVhZF9yZWcoZGV2LCBEQVZJTkNJX0kyQ19NRFJfUkVHKTsKKwl3IHw9IERBVklOQ0lfSTJDX01EUl9STSB8IERBVklOQ0lfSTJDX01EUl9TVFA7CisJZGF2aW5jaV9pMmNfd3JpdGVfcmVnKGRldiwgREFWSU5DSV9JMkNfTURSX1JFRywgdyk7CisKKwlpZiAoIWRldi0+dGVybWluYXRlKQorCQlkZXZfZXJyKGRldi0+ZGV2LCAiVERSIElSUSB3aGlsZSBubyBkYXRhIHRvIHNlbmRcbiIpOworfQorCiAvKgogICogSW50ZXJydXB0IHNlcnZpY2Ugcm91dGluZS4gVGhpcyBnZXRzIGNhbGxlZCB3aGVuZXZlciBhbiBJMkMgaW50ZXJydXB0CiAgKiBvY2N1cnMuCkBAIC0zNzIsMTIgKzQxMSwxNSBAQAogCiAJCXN3aXRjaCAoc3RhdCkgewogCQljYXNlIERBVklOQ0lfSTJDX0lWUl9BTDoKKwkJCS8qIEFyYml0cmF0aW9uIGxvc3QsIG11c3QgcmV0cnkgKi8KIAkJCWRldi0+Y21kX2VyciB8PSBEQVZJTkNJX0kyQ19TVFJfQUw7CisJCQlkZXYtPmJ1Zl9sZW4gPSAwOwogCQkJY29tcGxldGUoJmRldi0+Y21kX2NvbXBsZXRlKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgREFWSU5DSV9JMkNfSVZSX05BQ0s6CiAJCQlkZXYtPmNtZF9lcnIgfD0gREFWSU5DSV9JMkNfU1RSX05BQ0s7CisJCQlkZXYtPmJ1Zl9sZW4gPSAwOwogCQkJY29tcGxldGUoJmRldi0+Y21kX2NvbXBsZXRlKTsKIAkJCWJyZWFrOwogCkBAIC0zOTksOSArNDQxLDEwIEBACiAJCQkJZGF2aW5jaV9pMmNfd3JpdGVfcmVnKGRldiwKIAkJCQkJREFWSU5DSV9JMkNfU1RSX1JFRywKIAkJCQkJREFWSU5DSV9JMkNfSU1SX1JSRFkpOwotCQkJfSBlbHNlCi0JCQkJZGV2X2VycihkZXYtPmRldiwgIlJEUiBJUlEgd2hpbGUgbm8gIgotCQkJCQkiZGF0YSByZXF1ZXN0ZWRcbiIpOworCQkJfSBlbHNlIHsKKwkJCQkvKiBzaWduYWwgY2FuIHRlcm1pbmF0ZSB0cmFuc2ZlciAqLworCQkJCXRlcm1pbmF0ZV9yZWFkKGRldik7CisJCQl9CiAJCQlicmVhazsKIAogCQljYXNlIERBVklOQ0lfSTJDX0lWUl9YUkRZOgpAQCAtNDE4LDkgKzQ2MSwxMCBAQAogCQkJCWRhdmluY2lfaTJjX3dyaXRlX3JlZyhkZXYsCiAJCQkJCQkgICAgICBEQVZJTkNJX0kyQ19JTVJfUkVHLAogCQkJCQkJICAgICAgdyk7Ci0JCQl9IGVsc2UKLQkJCQlkZXZfZXJyKGRldi0+ZGV2LCAiVERSIElSUSB3aGlsZSBubyBkYXRhIHRvICIKLQkJCQkJInNlbmRcbiIpOworCQkJfSBlbHNlIHsKKwkJCQkvKiBzaWduYWwgY2FuIHRlcm1pbmF0ZSB0cmFuc2ZlciAqLworCQkJCXRlcm1pbmF0ZV93cml0ZShkZXYpOworCQkJfQogCQkJYnJlYWs7CiAKIAkJY2FzZSBEQVZJTkNJX0kyQ19JVlJfU0NEOgpAQCAtNDc1LDYgKzUxOSw3IEBACiAJCWdvdG8gZXJyX3JlbGVhc2VfcmVnaW9uOwogCX0KIAorCWluaXRfY29tcGxldGlvbigmZGV2LT5jbWRfY29tcGxldGUpOwogCWRldi0+ZGV2ID0gZ2V0X2RldmljZSgmcGRldi0+ZGV2KTsKIAlkZXYtPmlycSA9IGlycS0+c3RhcnQ7CiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtZWxla3Rvci5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1lbGVrdG9yLmMKaW5kZXggYjdhOTk3Ny4uN2YzOGMwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1lbGVrdG9yLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1lbGVrdG9yLmMKQEAgLTE5NiwxMyArMTk2LDExIEBACiAJLmdldG93bgkgICAgPSBwY2ZfaXNhX2dldG93biwKIAkuZ2V0Y2xvY2sgICA9IHBjZl9pc2FfZ2V0Y2xvY2ssCiAJLndhaXRmb3JwaW4gPSBwY2ZfaXNhX3dhaXRmb3JwaW4sCi0JLnVkZWxheQkgICAgPSAxMCwKLQkudGltZW91dCAgICA9IDEwMCwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgcGNmX2lzYV9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5jbGFzcwkJPSBJMkNfQ0xBU1NfSFdNT04sCisJLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJLmlkCQk9IEkyQ19IV19QX0VMRUssCiAJLmFsZ29fZGF0YQk9ICZwY2ZfaXNhX2RhdGEsCiAJLm5hbWUJCT0gImkyYy1lbGVrdG9yIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtZ3Bpby5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1ncGlvLmMKaW5kZXggN2MxYjc2Mi4uNzliNDU1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1ncGlvLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1ncGlvLmMKQEAgLTE0MCw3ICsxNDAsNyBAQAogCWFkYXAtPm93bmVyID0gVEhJU19NT0RVTEU7CiAJc25wcmludGYoYWRhcC0+bmFtZSwgc2l6ZW9mKGFkYXAtPm5hbWUpLCAiaTJjLWdwaW8lZCIsIHBkZXYtPmlkKTsKIAlhZGFwLT5hbGdvX2RhdGEgPSBiaXRfZGF0YTsKLQlhZGFwLT5jbGFzcyA9IEkyQ19DTEFTU19IV01PTjsKKwlhZGFwLT5jbGFzcyA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQ7CiAJYWRhcC0+ZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1oeWRyYS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1oeWRyYS5jCmluZGV4IGY5OTcyZjkuLjEwOThmMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaHlkcmEuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWh5ZHJhLmMKQEAgLTEsNyArMSw0IEBACiAvKgotICAgIGkyYy1oeWRyYS5jIC0gUGFydCBvZiBsbV9zZW5zb3JzLCAgTGludXgga2VybmVsIG1vZHVsZXMKLSAgICAgICAgICAgICAgICAgIGZvciBoYXJkd2FyZSBtb25pdG9yaW5nCi0KICAgICBpMmMgU3VwcG9ydCBmb3IgdGhlIEFwcGxlIGBIeWRyYScgTWFjIEkvTwogCiAgICAgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQgR2VlcnQgVXl0dGVyaG9ldmVuIDxnZWVydEBsaW51eC1tNjhrLm9yZz4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaTgwMS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODAxLmMKaW5kZXggYjBmNzcxZi4uZGM3ZWEzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODAxLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODAxLmMKQEAgLTEsMTAgKzEsOCBAQAogLyoKLSAgICBpMmMtaTgwMS5jIC0gUGFydCBvZiBsbV9zZW5zb3JzLCBMaW51eCBrZXJuZWwgbW9kdWxlcyBmb3IgaGFyZHdhcmUKLSAgICAgICAgICAgICAgbW9uaXRvcmluZwogICAgIENvcHlyaWdodCAoYykgMTk5OCAtIDIwMDIgIEZyb2RvIExvb2lqYWFyZCA8ZnJvZG9sQGRkcy5ubD4sCiAgICAgUGhpbGlwIEVkZWxicm9jayA8cGhpbEBuZXRyb2VkZ2UuY29tPiwgYW5kIE1hcmsgRC4gU3R1ZGViYWtlcgogICAgIDxtZHN4eXoxMjNAeWFob28uY29tPgotICAgIENvcHlyaWdodCAoQykgMjAwNyAgICAgICAgIEplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCAgIEplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPgogCiAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtNjQsNiArNjIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKIC8qIEk4MDEgU01CdXMgYWRkcmVzcyBvZmZzZXRzICovCkBAIC0xMjEsNiArMTIwLDEwIEBACiAjZGVmaW5lIFNNQkhTVFNUU19JTlRSCQkweDAyCiAjZGVmaW5lIFNNQkhTVFNUU19IT1NUX0JVU1kJMHgwMQogCisjZGVmaW5lIFNUQVRVU19GTEFHUwkJKFNNQkhTVFNUU19CWVRFX0RPTkUgfCBTTUJIU1RTVFNfRkFJTEVEIHwgXAorCQkJCSBTTUJIU1RTVFNfQlVTX0VSUiB8IFNNQkhTVFNUU19ERVZfRVJSIHwgXAorCQkJCSBTTUJIU1RTVFNfSU5UUikKKwogc3RhdGljIHVuc2lnbmVkIGxvbmcgaTgwMV9zbWJhOwogc3RhdGljIHVuc2lnbmVkIGNoYXIgaTgwMV9vcmlnaW5hbF9oc3RjZmc7CiBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaTgwMV9kcml2ZXI7CkBAIC0xMzIsMzEgKzEzNSw5NiBAQAogI2RlZmluZSBGRUFUVVJFX0kyQ19CTE9DS19SRUFECSgxIDw8IDMpCiBzdGF0aWMgdW5zaWduZWQgaW50IGk4MDFfZmVhdHVyZXM7CiAKLXN0YXRpYyBpbnQgaTgwMV90cmFuc2FjdGlvbihpbnQgeGFjdCkKKy8qIE1ha2Ugc3VyZSB0aGUgU01CdXMgaG9zdCBpcyByZWFkeSB0byBzdGFydCB0cmFuc21pdHRpbmcuCisgICBSZXR1cm4gMCBpZiBpdCBpcywgLUVCVVNZIGlmIGl0IGlzIG5vdC4gKi8KK3N0YXRpYyBpbnQgaTgwMV9jaGVja19wcmUodm9pZCkKIHsKLQlpbnQgdGVtcDsKLQlpbnQgcmVzdWx0ID0gMDsKLQlpbnQgdGltZW91dCA9IDA7CisJaW50IHN0YXR1czsKIAotCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJUcmFuc2FjdGlvbiAocHJlKTogQ05UPSUwMngsIENNRD0lMDJ4LCAiCi0JCSJBREQ9JTAyeCwgREFUMD0lMDJ4LCBEQVQxPSUwMnhcbiIsIGluYl9wKFNNQkhTVENOVCksCi0JCWluYl9wKFNNQkhTVENNRCksIGluYl9wKFNNQkhTVEFERCksIGluYl9wKFNNQkhTVERBVDApLAotCQlpbmJfcChTTUJIU1REQVQxKSk7CisJc3RhdHVzID0gaW5iX3AoU01CSFNUU1RTKTsKKwlpZiAoc3RhdHVzICYgU01CSFNUU1RTX0hPU1RfQlVTWSkgeworCQlkZXZfZXJyKCZJODAxX2Rldi0+ZGV2LCAiU01CdXMgaXMgYnVzeSwgY2FuJ3QgdXNlIGl0IVxuIik7CisJCXJldHVybiAtRUJVU1k7CisJfQogCi0JLyogTWFrZSBzdXJlIHRoZSBTTUJ1cyBob3N0IGlzIHJlYWR5IHRvIHN0YXJ0IHRyYW5zbWl0dGluZyAqLwotCS8qIDB4MWYgPSBGYWlsZWQsIEJ1c19FcnIsIERldl9FcnIsIEludHIsIEhvc3RfQnVzeSAqLwotCWlmICgodGVtcCA9ICgweDFmICYgaW5iX3AoU01CSFNUU1RTKSkpICE9IDB4MDApIHsKLQkJZGV2X2RiZygmSTgwMV9kZXYtPmRldiwgIlNNQnVzIGJ1c3kgKCUwMngpLiBSZXNldHRpbmcuLi5cbiIsCi0JCQl0ZW1wKTsKLQkJb3V0Yl9wKHRlbXAsIFNNQkhTVFNUUyk7Ci0JCWlmICgodGVtcCA9ICgweDFmICYgaW5iX3AoU01CSFNUU1RTKSkpICE9IDB4MDApIHsKLQkJCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJGYWlsZWQhICglMDJ4KVxuIiwgdGVtcCk7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0gZWxzZSB7Ci0JCQlkZXZfZGJnKCZJODAxX2Rldi0+ZGV2LCAiU3VjY2Vzc2Z1bCFcbiIpOworCXN0YXR1cyAmPSBTVEFUVVNfRkxBR1M7CisJaWYgKHN0YXR1cykgeworCQlkZXZfZGJnKCZJODAxX2Rldi0+ZGV2LCAiQ2xlYXJpbmcgc3RhdHVzIGZsYWdzICglMDJ4KVxuIiwKKwkJCXN0YXR1cyk7CisJCW91dGJfcChzdGF0dXMsIFNNQkhTVFNUUyk7CisJCXN0YXR1cyA9IGluYl9wKFNNQkhTVFNUUykgJiBTVEFUVVNfRkxBR1M7CisJCWlmIChzdGF0dXMpIHsKKwkJCWRldl9lcnIoJkk4MDFfZGV2LT5kZXYsCisJCQkJIkZhaWxlZCBjbGVhcmluZyBzdGF0dXMgZmxhZ3MgKCUwMngpXG4iLAorCQkJCXN0YXR1cyk7CisJCQlyZXR1cm4gLUVCVVNZOwogCQl9CiAJfQogCisJcmV0dXJuIDA7Cit9CisKKy8qIENvbnZlcnQgdGhlIHN0YXR1cyByZWdpc3RlciB0byBhbiBlcnJvciBjb2RlLCBhbmQgY2xlYXIgaXQuICovCitzdGF0aWMgaW50IGk4MDFfY2hlY2tfcG9zdChpbnQgc3RhdHVzLCBpbnQgdGltZW91dCkKK3sKKwlpbnQgcmVzdWx0ID0gMDsKKworCS8qIElmIHRoZSBTTUJ1cyBpcyBzdGlsbCBidXN5LCB3ZSBnaXZlIHVwICovCisJaWYgKHRpbWVvdXQpIHsKKwkJZGV2X2VycigmSTgwMV9kZXYtPmRldiwgIlRyYW5zYWN0aW9uIHRpbWVvdXRcbiIpOworCQkvKiB0cnkgdG8gc3RvcCB0aGUgY3VycmVudCBjb21tYW5kICovCisJCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJUZXJtaW5hdGluZyB0aGUgY3VycmVudCBvcGVyYXRpb25cbiIpOworCQlvdXRiX3AoaW5iX3AoU01CSFNUQ05UKSB8IFNNQkhTVENOVF9LSUxMLCBTTUJIU1RDTlQpOworCQltc2xlZXAoMSk7CisJCW91dGJfcChpbmJfcChTTUJIU1RDTlQpICYgKH5TTUJIU1RDTlRfS0lMTCksIFNNQkhTVENOVCk7CisKKwkJLyogQ2hlY2sgaWYgaXQgd29ya2VkICovCisJCXN0YXR1cyA9IGluYl9wKFNNQkhTVFNUUyk7CisJCWlmICgoc3RhdHVzICYgU01CSFNUU1RTX0hPU1RfQlVTWSkgfHwKKwkJICAgICEoc3RhdHVzICYgU01CSFNUU1RTX0ZBSUxFRCkpCisJCQlkZXZfZXJyKCZJODAxX2Rldi0+ZGV2LAorCQkJCSJGYWlsZWQgdGVybWluYXRpbmcgdGhlIHRyYW5zYWN0aW9uXG4iKTsKKwkJb3V0Yl9wKFNUQVRVU19GTEFHUywgU01CSFNUU1RTKTsKKwkJcmV0dXJuIC1FVElNRURPVVQ7CisJfQorCisJaWYgKHN0YXR1cyAmIFNNQkhTVFNUU19GQUlMRUQpIHsKKwkJcmVzdWx0ID0gLUVJTzsKKwkJZGV2X2VycigmSTgwMV9kZXYtPmRldiwgIlRyYW5zYWN0aW9uIGZhaWxlZFxuIik7CisJfQorCWlmIChzdGF0dXMgJiBTTUJIU1RTVFNfREVWX0VSUikgeworCQlyZXN1bHQgPSAtRU5YSU87CisJCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJObyByZXNwb25zZVxuIik7CisJfQorCWlmIChzdGF0dXMgJiBTTUJIU1RTVFNfQlVTX0VSUikgeworCQlyZXN1bHQgPSAtRUFHQUlOOworCQlkZXZfZGJnKCZJODAxX2Rldi0+ZGV2LCAiTG9zdCBhcmJpdHJhdGlvblxuIik7CisJfQorCisJaWYgKHJlc3VsdCkgeworCQkvKiBDbGVhciBlcnJvciBmbGFncyAqLworCQlvdXRiX3Aoc3RhdHVzICYgU1RBVFVTX0ZMQUdTLCBTTUJIU1RTVFMpOworCQlzdGF0dXMgPSBpbmJfcChTTUJIU1RTVFMpICYgU1RBVFVTX0ZMQUdTOworCQlpZiAoc3RhdHVzKSB7CisJCQlkZXZfd2FybigmSTgwMV9kZXYtPmRldiwgIkZhaWxlZCBjbGVhcmluZyBzdGF0dXMgIgorCQkJCSAiZmxhZ3MgYXQgZW5kIG9mIHRyYW5zYWN0aW9uICglMDJ4KVxuIiwKKwkJCQkgc3RhdHVzKTsKKwkJfQorCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbnQgaTgwMV90cmFuc2FjdGlvbihpbnQgeGFjdCkKK3sKKwlpbnQgc3RhdHVzOworCWludCByZXN1bHQ7CisJaW50IHRpbWVvdXQgPSAwOworCisJcmVzdWx0ID0gaTgwMV9jaGVja19wcmUoKTsKKwlpZiAocmVzdWx0IDwgMCkKKwkJcmV0dXJuIHJlc3VsdDsKKwogCS8qIHRoZSBjdXJyZW50IGNvbnRlbnRzIG9mIFNNQkhTVENOVCBjYW4gYmUgb3ZlcndyaXR0ZW4sIHNpbmNlIFBFQywKIAkgKiBJTlRSRU4sIFNNQlNDTUQgYXJlIHBhc3NlZCBpbiB4YWN0ICovCiAJb3V0Yl9wKHhhY3QgfCBJODAxX1NUQVJULCBTTUJIU1RDTlQpOwpAQCAtMTY0LDczICsyMzIsNDAgQEAKIAkvKiBXZSB3aWxsIGFsd2F5cyB3YWl0IGZvciBhIGZyYWN0aW9uIG9mIGEgc2Vjb25kISAqLwogCWRvIHsKIAkJbXNsZWVwKDEpOwotCQl0ZW1wID0gaW5iX3AoU01CSFNUU1RTKTsKLQl9IHdoaWxlICgodGVtcCAmIFNNQkhTVFNUU19IT1NUX0JVU1kpICYmICh0aW1lb3V0KysgPCBNQVhfVElNRU9VVCkpOworCQlzdGF0dXMgPSBpbmJfcChTTUJIU1RTVFMpOworCX0gd2hpbGUgKChzdGF0dXMgJiBTTUJIU1RTVFNfSE9TVF9CVVNZKSAmJiAodGltZW91dCsrIDwgTUFYX1RJTUVPVVQpKTsKIAotCS8qIElmIHRoZSBTTUJ1cyBpcyBzdGlsbCBidXN5LCB3ZSBnaXZlIHVwICovCi0JaWYgKHRpbWVvdXQgPj0gTUFYX1RJTUVPVVQpIHsKLQkJZGV2X2RiZygmSTgwMV9kZXYtPmRldiwgIlNNQnVzIFRpbWVvdXQhXG4iKTsKLQkJcmVzdWx0ID0gLTE7Ci0JCS8qIHRyeSB0byBzdG9wIHRoZSBjdXJyZW50IGNvbW1hbmQgKi8KLQkJZGV2X2RiZygmSTgwMV9kZXYtPmRldiwgIlRlcm1pbmF0aW5nIHRoZSBjdXJyZW50IG9wZXJhdGlvblxuIik7Ci0JCW91dGJfcChpbmJfcChTTUJIU1RDTlQpIHwgU01CSFNUQ05UX0tJTEwsIFNNQkhTVENOVCk7Ci0JCW1zbGVlcCgxKTsKLQkJb3V0Yl9wKGluYl9wKFNNQkhTVENOVCkgJiAoflNNQkhTVENOVF9LSUxMKSwgU01CSFNUQ05UKTsKLQl9CisJcmVzdWx0ID0gaTgwMV9jaGVja19wb3N0KHN0YXR1cywgdGltZW91dCA+PSBNQVhfVElNRU9VVCk7CisJaWYgKHJlc3VsdCA8IDApCisJCXJldHVybiByZXN1bHQ7CiAKLQlpZiAodGVtcCAmIFNNQkhTVFNUU19GQUlMRUQpIHsKLQkJcmVzdWx0ID0gLTE7Ci0JCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJFcnJvcjogRmFpbGVkIGJ1cyB0cmFuc2FjdGlvblxuIik7Ci0JfQotCi0JaWYgKHRlbXAgJiBTTUJIU1RTVFNfQlVTX0VSUikgewotCQlyZXN1bHQgPSAtMTsKLQkJZGV2X2VycigmSTgwMV9kZXYtPmRldiwgIkJ1cyBjb2xsaXNpb24hIFNNQnVzIG1heSBiZSBsb2NrZWQgIgotCQkJInVudGlsIG5leHQgaGFyZCByZXNldC4gKHNvcnJ5ISlcbiIpOwotCQkvKiBDbG9jayBzdG9wcyBhbmQgc2xhdmUgaXMgc3R1Y2sgaW4gbWlkLXRyYW5zbWlzc2lvbiAqLwotCX0KLQotCWlmICh0ZW1wICYgU01CSFNUU1RTX0RFVl9FUlIpIHsKLQkJcmVzdWx0ID0gLTE7Ci0JCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJFcnJvcjogbm8gcmVzcG9uc2UhXG4iKTsKLQl9Ci0KLQlpZiAoKGluYl9wKFNNQkhTVFNUUykgJiAweDFmKSAhPSAweDAwKQotCQlvdXRiX3AoaW5iKFNNQkhTVFNUUyksIFNNQkhTVFNUUyk7Ci0KLQlpZiAoKHRlbXAgPSAoMHgxZiAmIGluYl9wKFNNQkhTVFNUUykpKSAhPSAweDAwKSB7Ci0JCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJGYWlsZWQgcmVzZXQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uICIKLQkJCSIoJTAyeClcbiIsIHRlbXApOwotCX0KLQlkZXZfZGJnKCZJODAxX2Rldi0+ZGV2LCAiVHJhbnNhY3Rpb24gKHBvc3QpOiBDTlQ9JTAyeCwgQ01EPSUwMngsICIKLQkJIkFERD0lMDJ4LCBEQVQwPSUwMngsIERBVDE9JTAyeFxuIiwgaW5iX3AoU01CSFNUQ05UKSwKLQkJaW5iX3AoU01CSFNUQ01EKSwgaW5iX3AoU01CSFNUQUREKSwgaW5iX3AoU01CSFNUREFUMCksCi0JCWluYl9wKFNNQkhTVERBVDEpKTsKLQlyZXR1cm4gcmVzdWx0OworCW91dGJfcChTTUJIU1RTVFNfSU5UUiwgU01CSFNUU1RTKTsKKwlyZXR1cm4gMDsKIH0KIAogLyogd2FpdCBmb3IgSU5UUiBiaXQgYXMgYWR2aXNlZCBieSBJbnRlbCAqLwogc3RhdGljIHZvaWQgaTgwMV93YWl0X2h3cGVjKHZvaWQpCiB7CiAJaW50IHRpbWVvdXQgPSAwOwotCWludCB0ZW1wOworCWludCBzdGF0dXM7CiAKIAlkbyB7CiAJCW1zbGVlcCgxKTsKLQkJdGVtcCA9IGluYl9wKFNNQkhTVFNUUyk7Ci0JfSB3aGlsZSAoKCEodGVtcCAmIFNNQkhTVFNUU19JTlRSKSkKKwkJc3RhdHVzID0gaW5iX3AoU01CSFNUU1RTKTsKKwl9IHdoaWxlICgoIShzdGF0dXMgJiBTTUJIU1RTVFNfSU5UUikpCiAJCSAmJiAodGltZW91dCsrIDwgTUFYX1RJTUVPVVQpKTsKIAogCWlmICh0aW1lb3V0ID49IE1BWF9USU1FT1VUKSB7CiAJCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJQRUMgVGltZW91dCFcbiIpOwogCX0KLQlvdXRiX3AodGVtcCwgU01CSFNUU1RTKTsKKwlvdXRiX3Aoc3RhdHVzLCBTTUJIU1RTVFMpOwogfQogCiBzdGF0aWMgaW50IGk4MDFfYmxvY2tfdHJhbnNhY3Rpb25fYnlfYmxvY2sodW5pb24gaTJjX3NtYnVzX2RhdGEgKmRhdGEsCiAJCQkJCSAgIGNoYXIgcmVhZF93cml0ZSwgaW50IGh3cGVjKQogewogCWludCBpLCBsZW47CisJaW50IHN0YXR1czsKIAogCWluYl9wKFNNQkhTVENOVCk7IC8qIHJlc2V0IHRoZSBkYXRhIGJ1ZmZlciBpbmRleCAqLwogCkBAIC0yNDIsMTQgKzI3NywxNSBAQAogCQkJb3V0Yl9wKGRhdGEtPmJsb2NrW2krMV0sIFNNQkJMS0RBVCk7CiAJfQogCi0JaWYgKGk4MDFfdHJhbnNhY3Rpb24oSTgwMV9CTE9DS19EQVRBIHwgRU5BQkxFX0lOVDkgfAotCQkJICAgICBJODAxX1BFQ19FTiAqIGh3cGVjKSkKLQkJcmV0dXJuIC0xOworCXN0YXR1cyA9IGk4MDFfdHJhbnNhY3Rpb24oSTgwMV9CTE9DS19EQVRBIHwgRU5BQkxFX0lOVDkgfAorCQkJCSAgSTgwMV9QRUNfRU4gKiBod3BlYyk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKIAogCWlmIChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19SRUFEKSB7CiAJCWxlbiA9IGluYl9wKFNNQkhTVERBVDApOwogCQlpZiAobGVuIDwgMSB8fCBsZW4gPiBJMkNfU01CVVNfQkxPQ0tfTUFYKQotCQkJcmV0dXJuIC0xOworCQkJcmV0dXJuIC1FUFJPVE87CiAKIAkJZGF0YS0+YmxvY2tbMF0gPSBsZW47CiAJCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKQEAgLTI2NCwxMCArMzAwLDEzIEBACiB7CiAJaW50IGksIGxlbjsKIAlpbnQgc21iY21kOwotCWludCB0ZW1wOwotCWludCByZXN1bHQgPSAwOworCWludCBzdGF0dXM7CisJaW50IHJlc3VsdDsKIAlpbnQgdGltZW91dDsKLQl1bnNpZ25lZCBjaGFyIGVycm1hc2s7CisKKwlyZXN1bHQgPSBpODAxX2NoZWNrX3ByZSgpOworCWlmIChyZXN1bHQgPCAwKQorCQlyZXR1cm4gcmVzdWx0OwogCiAJbGVuID0gZGF0YS0+YmxvY2tbMF07CiAKQEAgLTI5MSwzNiArMzMwLDYgQEAKIAkJfQogCQlvdXRiX3Aoc21iY21kIHwgRU5BQkxFX0lOVDksIFNNQkhTVENOVCk7CiAKLQkJZGV2X2RiZygmSTgwMV9kZXYtPmRldiwgIkJsb2NrIChwcmUgJWQpOiBDTlQ9JTAyeCwgQ01EPSUwMngsICIKLQkJCSJBREQ9JTAyeCwgREFUMD0lMDJ4LCBEQVQxPSUwMngsIEJMS0RBVD0lMDJ4XG4iLCBpLAotCQkJaW5iX3AoU01CSFNUQ05UKSwgaW5iX3AoU01CSFNUQ01EKSwgaW5iX3AoU01CSFNUQUREKSwKLQkJCWluYl9wKFNNQkhTVERBVDApLCBpbmJfcChTTUJIU1REQVQxKSwgaW5iX3AoU01CQkxLREFUKSk7Ci0KLQkJLyogTWFrZSBzdXJlIHRoZSBTTUJ1cyBob3N0IGlzIHJlYWR5IHRvIHN0YXJ0IHRyYW5zbWl0dGluZyAqLwotCQl0ZW1wID0gaW5iX3AoU01CSFNUU1RTKTsKLQkJaWYgKGkgPT0gMSkgewotCQkJLyogRXJyb25lb3VzIGNvbmRpdGlvbnMgYmVmb3JlIHRyYW5zYWN0aW9uOgotCQkJICogQnl0ZV9Eb25lLCBGYWlsZWQsIEJ1c19FcnIsIERldl9FcnIsIEludHIsIEhvc3RfQnVzeSAqLwotCQkJZXJybWFzayA9IDB4OWY7Ci0JCX0gZWxzZSB7Ci0JCQkvKiBFcnJvbmVvdXMgY29uZGl0aW9ucyBkdXJpbmcgdHJhbnNhY3Rpb246Ci0JCQkgKiBGYWlsZWQsIEJ1c19FcnIsIERldl9FcnIsIEludHIgKi8KLQkJCWVycm1hc2sgPSAweDFlOwotCQl9Ci0JCWlmICh0ZW1wICYgZXJybWFzaykgewotCQkJZGV2X2RiZygmSTgwMV9kZXYtPmRldiwgIlNNQnVzIGJ1c3kgKCUwMngpLiAiCi0JCQkJIlJlc2V0dGluZy4uLlxuIiwgdGVtcCk7Ci0JCQlvdXRiX3AodGVtcCwgU01CSFNUU1RTKTsKLQkJCWlmICgoKHRlbXAgPSBpbmJfcChTTUJIU1RTVFMpKSAmIGVycm1hc2spICE9IDB4MDApIHsKLQkJCQlkZXZfZXJyKCZJODAxX2Rldi0+ZGV2LAotCQkJCQkiUmVzZXQgZmFpbGVkISAoJTAyeClcbiIsIHRlbXApOwotCQkJCXJldHVybiAtMTsKLQkJCX0KLQkJCWlmIChpICE9IDEpCi0JCQkJLyogaWYgZGllIGluIG1pZGRsZSBvZiBibG9jayB0cmFuc2FjdGlvbiwgZmFpbCAqLwotCQkJCXJldHVybiAtMTsKLQkJfQotCiAJCWlmIChpID09IDEpCiAJCQlvdXRiX3AoaW5iKFNNQkhTVENOVCkgfCBJODAxX1NUQVJULCBTTUJIU1RDTlQpOwogCkBAIC0zMjgsNDEgKzMzNywyOCBAQAogCQl0aW1lb3V0ID0gMDsKIAkJZG8gewogCQkJbXNsZWVwKDEpOwotCQkJdGVtcCA9IGluYl9wKFNNQkhTVFNUUyk7CisJCQlzdGF0dXMgPSBpbmJfcChTTUJIU1RTVFMpOwogCQl9Ci0JCXdoaWxlICgoISh0ZW1wICYgU01CSFNUU1RTX0JZVEVfRE9ORSkpCisJCXdoaWxlICgoIShzdGF0dXMgJiBTTUJIU1RTVFNfQllURV9ET05FKSkKIAkJICAgICAgICYmICh0aW1lb3V0KysgPCBNQVhfVElNRU9VVCkpOwogCi0JCS8qIElmIHRoZSBTTUJ1cyBpcyBzdGlsbCBidXN5LCB3ZSBnaXZlIHVwICovCi0JCWlmICh0aW1lb3V0ID49IE1BWF9USU1FT1VUKSB7Ci0JCQkvKiB0cnkgdG8gc3RvcCB0aGUgY3VycmVudCBjb21tYW5kICovCi0JCQlkZXZfZGJnKCZJODAxX2Rldi0+ZGV2LCAiVGVybWluYXRpbmcgdGhlIGN1cnJlbnQgIgotCQkJCQkJIm9wZXJhdGlvblxuIik7Ci0JCQlvdXRiX3AoaW5iX3AoU01CSFNUQ05UKSB8IFNNQkhTVENOVF9LSUxMLCBTTUJIU1RDTlQpOwotCQkJbXNsZWVwKDEpOwotCQkJb3V0Yl9wKGluYl9wKFNNQkhTVENOVCkgJiAoflNNQkhTVENOVF9LSUxMKSwKLQkJCQlTTUJIU1RDTlQpOwotCQkJcmVzdWx0ID0gLTE7Ci0JCQlkZXZfZGJnKCZJODAxX2Rldi0+ZGV2LCAiU01CdXMgVGltZW91dCFcbiIpOwotCQl9Ci0KLQkJaWYgKHRlbXAgJiBTTUJIU1RTVFNfRkFJTEVEKSB7Ci0JCQlyZXN1bHQgPSAtMTsKLQkJCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsCi0JCQkJIkVycm9yOiBGYWlsZWQgYnVzIHRyYW5zYWN0aW9uXG4iKTsKLQkJfSBlbHNlIGlmICh0ZW1wICYgU01CSFNUU1RTX0JVU19FUlIpIHsKLQkJCXJlc3VsdCA9IC0xOwotCQkJZGV2X2VycigmSTgwMV9kZXYtPmRldiwgIkJ1cyBjb2xsaXNpb24hXG4iKTsKLQkJfSBlbHNlIGlmICh0ZW1wICYgU01CSFNUU1RTX0RFVl9FUlIpIHsKLQkJCXJlc3VsdCA9IC0xOwotCQkJZGV2X2RiZygmSTgwMV9kZXYtPmRldiwgIkVycm9yOiBubyByZXNwb25zZSFcbiIpOwotCQl9CisJCXJlc3VsdCA9IGk4MDFfY2hlY2tfcG9zdChzdGF0dXMsIHRpbWVvdXQgPj0gTUFYX1RJTUVPVVQpOworCQlpZiAocmVzdWx0IDwgMCkKKwkJCXJldHVybiByZXN1bHQ7CiAKIAkJaWYgKGkgPT0gMSAmJiByZWFkX3dyaXRlID09IEkyQ19TTUJVU19SRUFECiAJCSAmJiBjb21tYW5kICE9IEkyQ19TTUJVU19JMkNfQkxPQ0tfREFUQSkgewogCQkJbGVuID0gaW5iX3AoU01CSFNUREFUMCk7Ci0JCQlpZiAobGVuIDwgMSB8fCBsZW4gPiBJMkNfU01CVVNfQkxPQ0tfTUFYKQotCQkJCXJldHVybiAtMTsKKwkJCWlmIChsZW4gPCAxIHx8IGxlbiA+IEkyQ19TTUJVU19CTE9DS19NQVgpIHsKKwkJCQlkZXZfZXJyKCZJODAxX2Rldi0+ZGV2LAorCQkJCQkiSWxsZWdhbCBTTUJ1cyBibG9jayByZWFkIHNpemUgJWRcbiIsCisJCQkJCWxlbik7CisJCQkJLyogUmVjb3ZlciAqLworCQkJCXdoaWxlIChpbmJfcChTTUJIU1RTVFMpICYgU01CSFNUU1RTX0hPU1RfQlVTWSkKKwkJCQkJb3V0Yl9wKFNNQkhTVFNUU19CWVRFX0RPTkUsIFNNQkhTVFNUUyk7CisJCQkJb3V0Yl9wKFNNQkhTVFNUU19JTlRSLCBTTUJIU1RTVFMpOworCQkJCXJldHVybiAtRVBST1RPOworCQkJfQogCQkJZGF0YS0+YmxvY2tbMF0gPSBsZW47CiAJCX0KIApAQCAtMzcxLDMwICszNjcsMTkgQEAKIAkJCWRhdGEtPmJsb2NrW2ldID0gaW5iX3AoU01CQkxLREFUKTsKIAkJaWYgKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFICYmIGkrMSA8PSBsZW4pCiAJCQlvdXRiX3AoZGF0YS0+YmxvY2tbaSsxXSwgU01CQkxLREFUKTsKLQkJaWYgKCh0ZW1wICYgMHg5ZSkgIT0gMHgwMCkKLQkJCW91dGJfcCh0ZW1wLCBTTUJIU1RTVFMpOyAgLyogc2lnbmFscyBTTUJCTEtEQVQgcmVhZHkgKi8KIAotCQlpZiAoKHRlbXAgPSAoMHgxZSAmIGluYl9wKFNNQkhTVFNUUykpKSAhPSAweDAwKSB7Ci0JCQlkZXZfZGJnKCZJODAxX2Rldi0+ZGV2LAotCQkJCSJCYWQgc3RhdHVzICglMDJ4KSBhdCBlbmQgb2YgdHJhbnNhY3Rpb25cbiIsCi0JCQkJdGVtcCk7Ci0JCX0KLQkJZGV2X2RiZygmSTgwMV9kZXYtPmRldiwgIkJsb2NrIChwb3N0ICVkKTogQ05UPSUwMngsIENNRD0lMDJ4LCAiCi0JCQkiQUREPSUwMngsIERBVDA9JTAyeCwgREFUMT0lMDJ4LCBCTEtEQVQ9JTAyeFxuIiwgaSwKLQkJCWluYl9wKFNNQkhTVENOVCksIGluYl9wKFNNQkhTVENNRCksIGluYl9wKFNNQkhTVEFERCksCi0JCQlpbmJfcChTTUJIU1REQVQwKSwgaW5iX3AoU01CSFNUREFUMSksIGluYl9wKFNNQkJMS0RBVCkpOwotCi0JCWlmIChyZXN1bHQgPCAwKQotCQkJcmV0dXJuIHJlc3VsdDsKKwkJLyogc2lnbmFscyBTTUJCTEtEQVQgcmVhZHkgKi8KKwkJb3V0Yl9wKFNNQkhTVFNUU19CWVRFX0RPTkUgfCBTTUJIU1RTVFNfSU5UUiwgU01CSFNUU1RTKTsKIAl9Ci0JcmV0dXJuIHJlc3VsdDsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGk4MDFfc2V0X2Jsb2NrX2J1ZmZlcl9tb2RlKHZvaWQpCiB7CiAJb3V0Yl9wKGluYl9wKFNNQkFVWENUTCkgfCBTTUJBVVhDVExfRTMyQiwgU01CQVVYQ1RMKTsKIAlpZiAoKGluYl9wKFNNQkFVWENUTCkgJiBTTUJBVVhDVExfRTMyQikgPT0gMCkKLQkJcmV0dXJuIC0xOworCQlyZXR1cm4gLUVJTzsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDE0LDcgKzM5OSw3IEBACiAJCX0gZWxzZSBpZiAoIShpODAxX2ZlYXR1cmVzICYgRkVBVFVSRV9JMkNfQkxPQ0tfUkVBRCkpIHsKIAkJCWRldl9lcnIoJkk4MDFfZGV2LT5kZXYsCiAJCQkJIkkyQyBibG9jayByZWFkIGlzIHVuc3VwcG9ydGVkIVxuIik7Ci0JCQlyZXR1cm4gLTE7CisJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJCX0KIAl9CiAKQEAgLTQ0OSw3ICs0MzQsNyBAQAogCXJldHVybiByZXN1bHQ7CiB9CiAKLS8qIFJldHVybiAtMSBvbiBlcnJvci4gKi8KKy8qIFJldHVybiBuZWdhdGl2ZSBlcnJubyBvbiBlcnJvci4gKi8KIHN0YXRpYyBzMzIgaTgwMV9hY2Nlc3Moc3RydWN0IGkyY19hZGFwdGVyICogYWRhcCwgdTE2IGFkZHIsCiAJCSAgICAgICB1bnNpZ25lZCBzaG9ydCBmbGFncywgY2hhciByZWFkX3dyaXRlLCB1OCBjb21tYW5kLAogCQkgICAgICAgaW50IHNpemUsIHVuaW9uIGkyY19zbWJ1c19kYXRhICogZGF0YSkKQEAgLTUxMSwxMCArNDk2LDkgQEAKIAkJCW91dGJfcChjb21tYW5kLCBTTUJIU1RDTUQpOwogCQlibG9jayA9IDE7CiAJCWJyZWFrOwotCWNhc2UgSTJDX1NNQlVTX1BST0NfQ0FMTDoKIAlkZWZhdWx0OgogCQlkZXZfZXJyKCZJODAxX2Rldi0+ZGV2LCAiVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gJWRcbiIsIHNpemUpOwotCQlyZXR1cm4gLTE7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKIAlpZiAoaHdwZWMpCS8qIGVuYWJsZS9kaXNhYmxlIGhhcmR3YXJlIFBFQyAqLwpAQCAtNTM3LDcgKzUyMSw3IEBACiAJaWYoYmxvY2spCiAJCXJldHVybiByZXQ7CiAJaWYocmV0KQotCQlyZXR1cm4gLTE7CisJCXJldHVybiByZXQ7CiAJaWYgKChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19XUklURSkgfHwgKHhhY3QgPT0gSTgwMV9RVUlDSykpCiAJCXJldHVybiAwOwogCkBAIC01NzIsNyArNTU2LDcgQEAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgaTgwMV9hZGFwdGVyID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuaWQJCT0gSTJDX0hXX1NNQlVTX0k4MDEsCi0JLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiwKKwkuY2xhc3MJCT0gSTJDX0NMQVNTX0hXTU9OIHwgSTJDX0NMQVNTX1NQRCwKIAkuYWxnbwkJPSAmc21idXNfYWxnb3JpdGhtLAogfTsKIApAQCAtNjM5LDYgKzYyMywxMCBAQAogCQlnb3RvIGV4aXQ7CiAJfQogCisJZXJyID0gYWNwaV9jaGVja19yZXNvdXJjZV9jb25mbGljdCgmZGV2LT5yZXNvdXJjZVtTTUJCQVJdKTsKKwlpZiAoZXJyKQorCQlnb3RvIGV4aXQ7CisKIAllcnIgPSBwY2lfcmVxdWVzdF9yZWdpb24oZGV2LCBTTUJCQVIsIGk4MDFfZHJpdmVyLm5hbWUpOwogCWlmIChlcnIpIHsKIAkJZGV2X2VycigmZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBTTUJ1cyByZWdpb24gIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODEwLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWk4MTAuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDJlOGQ5NC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWk4MTAuYworKysgL2Rldi9udWxsCkBAIC0xLDI2MCArMCwwIEBACi0vKgotICAgIGkyYy1pODEwLmMgLSBQYXJ0IG9mIGxtX3NlbnNvcnMsIExpbnV4IGtlcm5lbCBtb2R1bGVzIGZvciBoYXJkd2FyZQotICAgICAgICAgICAgICBtb25pdG9yaW5nCi0gICAgQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwICBGcm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+LAotICAgIFBoaWxpcCBFZGVsYnJvY2sgPHBoaWxAbmV0cm9lZGdlLmNvbT4sCi0gICAgUmFscGggTWV0emxlciA8cmprbUB0aHAudW5pLWtvZWxuLmRlPiwgYW5kCi0gICAgTWFyayBELiBTdHVkZWJha2VyIDxtZHN4eXoxMjNAeWFob28uY29tPgotICAgIAotICAgIEJhc2VkIG9uIGNvZGUgd3JpdHRlbiBieSBSYWxwaCBNZXR6bGVyIDxyamttQHRocC51bmkta29lbG4uZGU+IGFuZAotICAgIFNpbW9uIFZvZ2wKLQotICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgotKi8KLS8qCi0gICBUaGlzIGludGVyZmFjZXMgdG8gdGhlIEk4MTAvSTgxNSB0byBwcm92aWRlIGFjY2VzcyB0bwotICAgdGhlIEREQyBCdXMgYW5kIHRoZSBJMkMgQnVzLgotCi0gICBTVVBQT1JURUQgREVWSUNFUwlQQ0kgSUQKLSAgIGk4MTBBQQkJNzEyMSAgICAgICAgICAgCi0gICBpODEwQUIJCTcxMjMgICAgICAgICAgIAotICAgaTgxMEUJCTcxMjUgICAgICAgICAgIAotICAgaTgxNQkJCTExMzIgICAgICAgICAgIAotICAgaTg0NUcJCTI1NjIKLSovCi0KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvaTJjLmg+Ci0jaW5jbHVkZSA8bGludXgvaTJjLWFsZ28tYml0Lmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0KLS8qIEdQSU8gcmVnaXN0ZXIgbG9jYXRpb25zICovCi0jZGVmaW5lIEk4MTBfSU9DT05UUk9MX09GRlNFVAkweDUwMDAKLSNkZWZpbmUgSTgxMF9IVlNZTkMJCTB4MDAJLyogbm90IHVzZWQgKi8KLSNkZWZpbmUgSTgxMF9HUElPQQkJMHgxMAotI2RlZmluZSBJODEwX0dQSU9CCQkweDE0Ci0KLS8qIGJpdCBsb2NhdGlvbnMgaW4gdGhlIHJlZ2lzdGVycyAqLwotI2RlZmluZSBTQ0xfRElSX01BU0sJCTB4MDAwMQotI2RlZmluZSBTQ0xfRElSCQkJMHgwMDAyCi0jZGVmaW5lIFNDTF9WQUxfTUFTSwkJMHgwMDA0Ci0jZGVmaW5lIFNDTF9WQUxfT1VUCQkweDAwMDgKLSNkZWZpbmUgU0NMX1ZBTF9JTgkJMHgwMDEwCi0jZGVmaW5lIFNEQV9ESVJfTUFTSwkJMHgwMTAwCi0jZGVmaW5lIFNEQV9ESVIJCQkweDAyMDAKLSNkZWZpbmUgU0RBX1ZBTF9NQVNLCQkweDA0MDAKLSNkZWZpbmUgU0RBX1ZBTF9PVVQJCTB4MDgwMAotI2RlZmluZSBTREFfVkFMX0lOCQkweDEwMDAKLQotLyogaW5pdGlhbGl6YXRpb24gc3RhdGVzICovCi0jZGVmaW5lIElOSVQxCQkJMHgxCi0jZGVmaW5lIElOSVQyCQkJMHgyCi0jZGVmaW5lIElOSVQzCQkJMHg0Ci0KLS8qIGRlbGF5cyAqLwotI2RlZmluZSBDWUNMRV9ERUxBWQkJMTAKLSNkZWZpbmUgVElNRU9VVAkJCShIWiAvIDIpCi0KLXN0YXRpYyB2b2lkIF9faW9tZW0gKmlvYWRkcjsKLQotLyogVGhlIGk4MTAgR1BJTyByZWdpc3RlcnMgaGF2ZSBpbmRpdmlkdWFsIG1hc2tzIGZvciBlYWNoIGJpdAotICAgc28gd2UgbmV2ZXIgaGF2ZSB0byByZWFkIGJlZm9yZSB3cml0aW5nLiBOaWNlLiAqLwotCi1zdGF0aWMgdm9pZCBiaXRfaTgxMGkyY19zZXRzY2wodm9pZCAqZGF0YSwgaW50IHZhbCkKLXsKLQl3cml0ZWwoKHZhbCA/IFNDTF9WQUxfT1VUIDogMCkgfCBTQ0xfRElSIHwgU0NMX0RJUl9NQVNLIHwgU0NMX1ZBTF9NQVNLLAotCSAgICAgaW9hZGRyICsgSTgxMF9HUElPQik7Ci0JcmVhZGwoaW9hZGRyICsgSTgxMF9HUElPQik7CS8qIGZsdXNoIHBvc3RlZCB3cml0ZSAqLwotfQotCi1zdGF0aWMgdm9pZCBiaXRfaTgxMGkyY19zZXRzZGEodm9pZCAqZGF0YSwgaW50IHZhbCkKLXsKLSAJd3JpdGVsKCh2YWwgPyBTREFfVkFMX09VVCA6IDApIHwgU0RBX0RJUiB8IFNEQV9ESVJfTUFTSyB8IFNEQV9WQUxfTUFTSywKLQkgICAgIGlvYWRkciArIEk4MTBfR1BJT0IpOwotCXJlYWRsKGlvYWRkciArIEk4MTBfR1BJT0IpOwkvKiBmbHVzaCBwb3N0ZWQgd3JpdGUgKi8KLX0KLQotLyogVGhlIEdQSU8gcGlucyBhcmUgb3BlbiBkcmFpbiwgc28gdGhlIHBpbnMgY291bGQgYWx3YXlzIHJlbWFpbiBvdXRwdXRzLgotICAgSG93ZXZlciwgc29tZSBjaGlwIHZlcnNpb25zIGRvbid0IGxhdGNoIHRoZSBpbnB1dHMgdW5sZXNzIHRoZXkKLSAgIGFyZSBzZXQgYXMgaW5wdXRzLgotICAgV2UgcmVseSBvbiB0aGUgaTJjLWFsZ28tYml0IHJvdXRpbmVzIHRvIHNldCB0aGUgcGlucyBoaWdoIGJlZm9yZQotICAgcmVhZGluZyB0aGUgaW5wdXQgZnJvbSBvdGhlciBjaGlwcy4gRm9sbG93aW5nIGd1aWRhbmNlIGluIHRoZSA4MTUKLSAgIHByb2cuIHJlZi4gZ3VpZGUsIHdlIGRvIGEgImR1bW15IHdyaXRlIiBvZiAwIHRvIHRoZSByZWdpc3RlciBiZWZvcmUKLSAgIHJlYWRpbmcgd2hpY2ggZm9yY2VzIHRoZSBpbnB1dCB2YWx1ZSB0byBiZSBsYXRjaGVkLiBXZSBwcmVzdW1lIHRoaXMKLSAgIGFwcGxpZXMgdG8gdGhlIDgxMCBhcyB3ZWxsOyBzaG91bGRuJ3QgaHVydCBhbnl3YXkuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGdldAotICAgaTJjX2FsZ29fYml0IGJpdF90ZXN0PTEgdG8gcGFzcy4gKi8KLQotc3RhdGljIGludCBiaXRfaTgxMGkyY19nZXRzY2wodm9pZCAqZGF0YSkKLXsKLQl3cml0ZWwoU0NMX0RJUl9NQVNLLCBpb2FkZHIgKyBJODEwX0dQSU9CKTsKLQl3cml0ZWwoMCwgaW9hZGRyICsgSTgxMF9HUElPQik7Ci0JcmV0dXJuICgwICE9IChyZWFkbChpb2FkZHIgKyBJODEwX0dQSU9CKSAmIFNDTF9WQUxfSU4pKTsKLX0KLQotc3RhdGljIGludCBiaXRfaTgxMGkyY19nZXRzZGEodm9pZCAqZGF0YSkKLXsKLQl3cml0ZWwoU0RBX0RJUl9NQVNLLCBpb2FkZHIgKyBJODEwX0dQSU9CKTsKLQl3cml0ZWwoMCwgaW9hZGRyICsgSTgxMF9HUElPQik7Ci0JcmV0dXJuICgwICE9IChyZWFkbChpb2FkZHIgKyBJODEwX0dQSU9CKSAmIFNEQV9WQUxfSU4pKTsKLX0KLQotc3RhdGljIHZvaWQgYml0X2k4MTBkZGNfc2V0c2NsKHZvaWQgKmRhdGEsIGludCB2YWwpCi17Ci0Jd3JpdGVsKCh2YWwgPyBTQ0xfVkFMX09VVCA6IDApIHwgU0NMX0RJUiB8IFNDTF9ESVJfTUFTSyB8IFNDTF9WQUxfTUFTSywKLQkgICAgIGlvYWRkciArIEk4MTBfR1BJT0EpOwotCXJlYWRsKGlvYWRkciArIEk4MTBfR1BJT0EpOwkvKiBmbHVzaCBwb3N0ZWQgd3JpdGUgKi8KLX0KLQotc3RhdGljIHZvaWQgYml0X2k4MTBkZGNfc2V0c2RhKHZvaWQgKmRhdGEsIGludCB2YWwpCi17Ci0gCXdyaXRlbCgodmFsID8gU0RBX1ZBTF9PVVQgOiAwKSB8IFNEQV9ESVIgfCBTREFfRElSX01BU0sgfCBTREFfVkFMX01BU0ssCi0JICAgICBpb2FkZHIgKyBJODEwX0dQSU9BKTsKLQlyZWFkbChpb2FkZHIgKyBJODEwX0dQSU9BKTsJLyogZmx1c2ggcG9zdGVkIHdyaXRlICovCi19Ci0KLXN0YXRpYyBpbnQgYml0X2k4MTBkZGNfZ2V0c2NsKHZvaWQgKmRhdGEpCi17Ci0Jd3JpdGVsKFNDTF9ESVJfTUFTSywgaW9hZGRyICsgSTgxMF9HUElPQSk7Ci0Jd3JpdGVsKDAsIGlvYWRkciArIEk4MTBfR1BJT0EpOwotCXJldHVybiAoMCAhPSAocmVhZGwoaW9hZGRyICsgSTgxMF9HUElPQSkgJiBTQ0xfVkFMX0lOKSk7Ci19Ci0KLXN0YXRpYyBpbnQgYml0X2k4MTBkZGNfZ2V0c2RhKHZvaWQgKmRhdGEpCi17Ci0Jd3JpdGVsKFNEQV9ESVJfTUFTSywgaW9hZGRyICsgSTgxMF9HUElPQSk7Ci0Jd3JpdGVsKDAsIGlvYWRkciArIEk4MTBfR1BJT0EpOwotCXJldHVybiAoMCAhPSAocmVhZGwoaW9hZGRyICsgSTgxMF9HUElPQSkgJiBTREFfVkFMX0lOKSk7Ci19Ci0KLXN0YXRpYyBpbnQgY29uZmlnX2k4MTAoc3RydWN0IHBjaV9kZXYgKmRldikKLXsKLQl1bnNpZ25lZCBsb25nIGNhZHI7Ci0KLQkvKiBtYXAgSTgxMCBtZW1vcnkgKi8KLQljYWRyID0gZGV2LT5yZXNvdXJjZVsxXS5zdGFydDsKLQljYWRyICs9IEk4MTBfSU9DT05UUk9MX09GRlNFVDsKLQljYWRyICY9IFBDSV9CQVNFX0FERFJFU1NfTUVNX01BU0s7Ci0JaW9hZGRyID0gaW9yZW1hcF9ub2NhY2hlKGNhZHIsIDB4MTAwMCk7Ci0JaWYgKGlvYWRkcikgewotCQliaXRfaTgxMGkyY19zZXRzY2woTlVMTCwgMSk7Ci0JCWJpdF9pODEwaTJjX3NldHNkYShOVUxMLCAxKTsKLQkJYml0X2k4MTBkZGNfc2V0c2NsKE5VTEwsIDEpOwotCQliaXRfaTgxMGRkY19zZXRzZGEoTlVMTCwgMSk7Ci0JCXJldHVybiAwOwotCX0KLQlyZXR1cm4gLUVOT0RFVjsKLX0KLQotc3RhdGljIHN0cnVjdCBpMmNfYWxnb19iaXRfZGF0YSBpODEwX2kyY19iaXRfZGF0YSA9IHsKLQkuc2V0c2RhCQk9IGJpdF9pODEwaTJjX3NldHNkYSwKLQkuc2V0c2NsCQk9IGJpdF9pODEwaTJjX3NldHNjbCwKLQkuZ2V0c2RhCQk9IGJpdF9pODEwaTJjX2dldHNkYSwKLQkuZ2V0c2NsCQk9IGJpdF9pODEwaTJjX2dldHNjbCwKLQkudWRlbGF5CQk9IENZQ0xFX0RFTEFZLAotCS50aW1lb3V0CT0gVElNRU9VVCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgaTgxMF9pMmNfYWRhcHRlciA9IHsKLQkub3duZXIJCT0gVEhJU19NT0RVTEUsCi0JLmlkCQk9IEkyQ19IV19CX0k4MTAsCi0JLm5hbWUJCT0gIkk4MTAvSTgxNSBJMkMgQWRhcHRlciIsCi0JLmFsZ29fZGF0YQk9ICZpODEwX2kyY19iaXRfZGF0YSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgaTJjX2FsZ29fYml0X2RhdGEgaTgxMF9kZGNfYml0X2RhdGEgPSB7Ci0JLnNldHNkYQkJPSBiaXRfaTgxMGRkY19zZXRzZGEsCi0JLnNldHNjbAkJPSBiaXRfaTgxMGRkY19zZXRzY2wsCi0JLmdldHNkYQkJPSBiaXRfaTgxMGRkY19nZXRzZGEsCi0JLmdldHNjbAkJPSBiaXRfaTgxMGRkY19nZXRzY2wsCi0JLnVkZWxheQkJPSBDWUNMRV9ERUxBWSwKLQkudGltZW91dAk9IFRJTUVPVVQsCi19OwotCi1zdGF0aWMgc3RydWN0IGkyY19hZGFwdGVyIGk4MTBfZGRjX2FkYXB0ZXIgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5pZAkJPSBJMkNfSFdfQl9JODEwLAotCS5uYW1lCQk9ICJJODEwL0k4MTUgRERDIEFkYXB0ZXIiLAotCS5hbGdvX2RhdGEJPSAmaTgxMF9kZGNfYml0X2RhdGEsCi19OwotCi1zdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgaTgxMF9pZHNbXSBfX2RldmluaXRkYXRhID0gewotCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODEwX0lHMSkgfSwKLQl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF84MjgxMF9JRzMpIH0sCi0JeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MTBFX0lHKSB9LAotCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODE1X0NHQykgfSwKLQl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF84Mjg0NUdfSUcpIH0sCi0JeyAwLCB9LAotfTsKLQotTU9EVUxFX0RFVklDRV9UQUJMRSAocGNpLCBpODEwX2lkcyk7Ci0KLXN0YXRpYyBpbnQgX19kZXZpbml0IGk4MTBfcHJvYmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQotewotCWludCByZXR2YWw7Ci0KLQlyZXR2YWwgPSBjb25maWdfaTgxMChkZXYpOwotCWlmIChyZXR2YWwpCi0JCXJldHVybiByZXR2YWw7Ci0JZGV2X2luZm8oJmRldi0+ZGV2LCAiaTgxMC9pODE1IGkyYyBkZXZpY2UgZm91bmQuXG4iKTsKLQotCS8qIHNldCB1cCB0aGUgc3lzZnMgbGlua2FnZSB0byBvdXIgcGFyZW50IGRldmljZSAqLwotCWk4MTBfaTJjX2FkYXB0ZXIuZGV2LnBhcmVudCA9ICZkZXYtPmRldjsKLQlpODEwX2RkY19hZGFwdGVyLmRldi5wYXJlbnQgPSAmZGV2LT5kZXY7Ci0KLQlyZXR2YWwgPSBpMmNfYml0X2FkZF9idXMoJmk4MTBfaTJjX2FkYXB0ZXIpOwotCWlmIChyZXR2YWwpCi0JCXJldHVybiByZXR2YWw7Ci0JcmV0dmFsID0gaTJjX2JpdF9hZGRfYnVzKCZpODEwX2RkY19hZGFwdGVyKTsKLQlpZiAocmV0dmFsKQotCQlpMmNfZGVsX2FkYXB0ZXIoJmk4MTBfaTJjX2FkYXB0ZXIpOwotCXJldHVybiByZXR2YWw7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZGV2ZXhpdCBpODEwX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqZGV2KQotewotCWkyY19kZWxfYWRhcHRlcigmaTgxMF9kZGNfYWRhcHRlcik7Ci0JaTJjX2RlbF9hZGFwdGVyKCZpODEwX2kyY19hZGFwdGVyKTsKLQlpb3VubWFwKGlvYWRkcik7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBpODEwX2RyaXZlciA9IHsKLQkubmFtZQkJPSAiaTgxMF9zbWJ1cyIsCi0JLmlkX3RhYmxlCT0gaTgxMF9pZHMsCi0JLnByb2JlCQk9IGk4MTBfcHJvYmUsCi0JLnJlbW92ZQkJPSBfX2RldmV4aXRfcChpODEwX3JlbW92ZSksCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBpMmNfaTgxMF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIHBjaV9yZWdpc3Rlcl9kcml2ZXIoJmk4MTBfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGkyY19pODEwX2V4aXQodm9pZCkKLXsKLQlwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoJmk4MTBfZHJpdmVyKTsKLX0KLQotTU9EVUxFX0FVVEhPUigiRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5sPiwgIgotCQkiUGhpbGlwIEVkZWxicm9jayA8cGhpbEBuZXRyb2VkZ2UuY29tPiwgIgotCQkiUmFscGggTWV0emxlciA8cmprbUB0aHAudW5pLWtvZWxuLmRlPiwgIgotCQkiYW5kIE1hcmsgRC4gU3R1ZGViYWtlciA8bWRzeHl6MTIzQHlhaG9vLmNvbT4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiSTgxMC9JODE1IEkyQy9EREMgZHJpdmVyIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLW1vZHVsZV9pbml0KGkyY19pODEwX2luaXQpOwotbW9kdWxlX2V4aXQoaTJjX2k4MTBfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWlibV9paWMuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaWJtX2lpYy5jCmluZGV4IDg1ZGJmMzQuLjY1MWYyZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaWJtX2lpYy5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaWJtX2lpYy5jCkBAIC00MiwxMyArNDIsOCBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy1pZC5oPgotCi0jaWZkZWYgQ09ORklHX0lCTV9PQ1AKLSNpbmNsdWRlIDxhc20vb2NwLmg+Ci0jaW5jbHVkZSA8YXNtL2libTR4eC5oPgotI2Vsc2UKICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgotI2VuZGlmCisjaW5jbHVkZSA8bGludXgvb2ZfaTJjLmg+CiAKICNpbmNsdWRlICJpMmMtaWJtX2lpYy5oIgogCkBAIC02NjUsMTgwICs2NjAsNiBAQAogCXJldHVybiAodTgpKChvcGIgKyA5KSAvIDEwIC0gMSk7CiB9CiAKLSNpZmRlZiBDT05GSUdfSUJNX09DUAotLyoKLSAqIFJlZ2lzdGVyIHNpbmdsZSBJSUMgaW50ZXJmYWNlCi0gKi8KLXN0YXRpYyBpbnQgX19kZXZpbml0IGlpY19wcm9iZShzdHJ1Y3Qgb2NwX2RldmljZSAqb2NwKXsKLQotCXN0cnVjdCBpYm1faWljX3ByaXZhdGUqIGRldjsKLQlzdHJ1Y3QgaTJjX2FkYXB0ZXIqIGFkYXA7Ci0Jc3RydWN0IG9jcF9mdW5jX2lpY19kYXRhKiBpaWNfZGF0YSA9IG9jcC0+ZGVmLT5hZGRpdGlvbnM7Ci0JaW50IHJldDsKLQotCWlmICghaWljX2RhdGEpCi0JCXByaW50ayhLRVJOX1dBUk5JTkciaWJtLWlpYyVkOiBtaXNzaW5nIGFkZGl0aW9uYWwgZGF0YSFcbiIsCi0JCQlvY3AtPmRlZi0+aW5kZXgpOwotCi0JaWYgKCEoZGV2ID0ga3phbGxvYyhzaXplb2YoKmRldiksIEdGUF9LRVJORUwpKSkgewotCQlwcmludGsoS0VSTl9FUlIgImlibS1paWMlZDogZmFpbGVkIHRvIGFsbG9jYXRlIGRldmljZSBkYXRhXG4iLAotCQkJb2NwLT5kZWYtPmluZGV4KTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQotCi0JZGV2LT5pZHggPSBvY3AtPmRlZi0+aW5kZXg7Ci0Jb2NwX3NldF9kcnZkYXRhKG9jcCwgZGV2KTsKLQotCWlmICghcmVxdWVzdF9tZW1fcmVnaW9uKG9jcC0+ZGVmLT5wYWRkciwgc2l6ZW9mKHN0cnVjdCBpaWNfcmVncyksCi0JCQkJImlibV9paWMiKSkgewotCQlyZXQgPSAtRUJVU1k7Ci0JCWdvdG8gZmFpbDE7Ci0JfQotCi0JaWYgKCEoZGV2LT52YWRkciA9IGlvcmVtYXAob2NwLT5kZWYtPnBhZGRyLCBzaXplb2Yoc3RydWN0IGlpY19yZWdzKSkpKXsKLQkJcHJpbnRrKEtFUk5fRVJSICJpYm0taWljJWQ6IGZhaWxlZCB0byBpb3JlbWFwIGRldmljZSByZWdpc3RlcnNcbiIsCi0JCQlkZXYtPmlkeCk7Ci0JCXJldCA9IC1FTlhJTzsKLQkJZ290byBmYWlsMjsKLQl9Ci0KLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXYtPndxKTsKLQotCWRldi0+aXJxID0gaWljX2ZvcmNlX3BvbGwgPyAtMSA6IG9jcC0+ZGVmLT5pcnE7Ci0JaWYgKGRldi0+aXJxID49IDApewotCQkvKiBEaXNhYmxlIGludGVycnVwdHMgdW50aWwgd2UgZmluaXNoIGluaXRpYWxpemF0aW9uLAotCQkgICBhc3N1bWVzIGxldmVsLXNlbnNpdGl2ZSBJUlEgc2V0dXAuLi4KLQkJICovCi0JCWlpY19pbnRlcnJ1cHRfbW9kZShkZXYsIDApOwotCQlpZiAocmVxdWVzdF9pcnEoZGV2LT5pcnEsIGlpY19oYW5kbGVyLCAwLCAiSUJNIElJQyIsIGRldikpewotCQkJcHJpbnRrKEtFUk5fRVJSICJpYm0taWljJWQ6IHJlcXVlc3RfaXJxICVkIGZhaWxlZFxuIiwKLQkJCQlkZXYtPmlkeCwgZGV2LT5pcnEpOwotCQkJLyogRmFsbGJhY2sgdG8gdGhlIHBvbGxpbmcgbW9kZSAqLwotCQkJZGV2LT5pcnEgPSAtMTsKLQkJfQotCX0KLQotCWlmIChkZXYtPmlycSA8IDApCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgImlibS1paWMlZDogdXNpbmcgcG9sbGluZyBtb2RlXG4iLAotCQkJZGV2LT5pZHgpOwotCi0JLyogQm9hcmQgc3BlY2lmaWMgc2V0dGluZ3MgKi8KLQlkZXYtPmZhc3RfbW9kZSA9IGlpY19mb3JjZV9mYXN0ID8gMSA6IChpaWNfZGF0YSA/IGlpY19kYXRhLT5mYXN0X21vZGUgOiAwKTsKLQotCS8qIGNsY2tkaXYgaXMgdGhlIHNhbWUgZm9yICphbGwqIElJQyBpbnRlcmZhY2VzLAotCSAqIGJ1dCBJJ2QgcmF0aGVyIG1ha2UgYSBjb3B5IHRoYW4gaW50cm9kdWNlIGFub3RoZXIgZ2xvYmFsLiAtLWVicwotCSAqLwotCWRldi0+Y2xja2RpdiA9IGlpY19jbGNrZGl2KG9jcF9zeXNfaW5mby5vcGJfYnVzX2ZyZXEpOwotCURCRygiJWQ6IGNsY2tkaXYgPSAlZFxuIiwgZGV2LT5pZHgsIGRldi0+Y2xja2Rpdik7Ci0KLQkvKiBJbml0aWFsaXplIElJQyBpbnRlcmZhY2UgKi8KLQlpaWNfZGV2X2luaXQoZGV2KTsKLQotCS8qIFJlZ2lzdGVyIGl0IHdpdGggaTJjIGxheWVyICovCi0JYWRhcCA9ICZkZXYtPmFkYXA7Ci0JYWRhcC0+ZGV2LnBhcmVudCA9ICZvY3AtPmRldjsKLQlzdHJjcHkoYWRhcC0+bmFtZSwgIklCTSBJSUMiKTsKLQlpMmNfc2V0X2FkYXBkYXRhKGFkYXAsIGRldik7Ci0JYWRhcC0+aWQgPSBJMkNfSFdfT0NQOwotCWFkYXAtPmNsYXNzID0gSTJDX0NMQVNTX0hXTU9OOwotCWFkYXAtPmFsZ28gPSAmaWljX2FsZ287Ci0JYWRhcC0+Y2xpZW50X3JlZ2lzdGVyID0gTlVMTDsKLQlhZGFwLT5jbGllbnRfdW5yZWdpc3RlciA9IE5VTEw7Ci0JYWRhcC0+dGltZW91dCA9IDE7Ci0KLQkvKgotCSAqIElmICJkZXYtPmlkeCIgaXMgbmVnYXRpdmUgd2UgY29uc2lkZXIgaXQgYXMgemVyby4KLQkgKiBUaGUgcmVhc29uIHRvIGRvIHNvIGlzIHRvIGF2b2lkIHN5c2ZzIG5hbWVzIHRoYXQgb25seSBtYWtlCi0JICogc2Vuc2Ugd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgYWRhcHRlcnMuCi0JICovCi0JYWRhcC0+bnIgPSBkZXYtPmlkeCA+PSAwID8gZGV2LT5pZHggOiAwOwotCi0JaWYgKChyZXQgPSBpMmNfYWRkX251bWJlcmVkX2FkYXB0ZXIoYWRhcCkpIDwgMCkgewotCQlwcmludGsoS0VSTl9FUlIgImlibS1paWMlZDogZmFpbGVkIHRvIHJlZ2lzdGVyIGkyYyBhZGFwdGVyXG4iLAotCQkJZGV2LT5pZHgpOwotCQlnb3RvIGZhaWw7Ci0JfQotCi0JcHJpbnRrKEtFUk5fSU5GTyAiaWJtLWlpYyVkOiB1c2luZyAlcyBtb2RlXG4iLCBkZXYtPmlkeCwKLQkJZGV2LT5mYXN0X21vZGUgPyAiZmFzdCAoNDAwIGtIeikiIDogInN0YW5kYXJkICgxMDAga0h6KSIpOwotCi0JcmV0dXJuIDA7Ci0KLWZhaWw6Ci0JaWYgKGRldi0+aXJxID49IDApewotCQlpaWNfaW50ZXJydXB0X21vZGUoZGV2LCAwKTsKLQkJZnJlZV9pcnEoZGV2LT5pcnEsIGRldik7Ci0JfQotCi0JaW91bm1hcChkZXYtPnZhZGRyKTsKLWZhaWwyOgotCXJlbGVhc2VfbWVtX3JlZ2lvbihvY3AtPmRlZi0+cGFkZHIsIHNpemVvZihzdHJ1Y3QgaWljX3JlZ3MpKTsKLWZhaWwxOgotCW9jcF9zZXRfZHJ2ZGF0YShvY3AsIE5VTEwpOwotCWtmcmVlKGRldik7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIENsZWFudXAgaW5pdGlhbGl6ZWQgSUlDIGludGVyZmFjZQotICovCi1zdGF0aWMgdm9pZCBfX2RldmV4aXQgaWljX3JlbW92ZShzdHJ1Y3Qgb2NwX2RldmljZSAqb2NwKQotewotCXN0cnVjdCBpYm1faWljX3ByaXZhdGUqIGRldiA9IChzdHJ1Y3QgaWJtX2lpY19wcml2YXRlKilvY3BfZ2V0X2RydmRhdGEob2NwKTsKLQlCVUdfT04oZGV2ID09IE5VTEwpOwotCWlmIChpMmNfZGVsX2FkYXB0ZXIoJmRldi0+YWRhcCkpewotCQlwcmludGsoS0VSTl9FUlIgImlibS1paWMlZDogZmFpbGVkIHRvIGRlbGV0ZSBpMmMgYWRhcHRlciA6KFxuIiwKLQkJCWRldi0+aWR4KTsKLQkJLyogVGhhdCdzICp2ZXJ5KiBiYWQsIGp1c3Qgc2h1dGRvd24gSVJRIC4uLiAqLwotCQlpZiAoZGV2LT5pcnEgPj0gMCl7Ci0JCSAgICBpaWNfaW50ZXJydXB0X21vZGUoZGV2LCAwKTsKLQkJICAgIGZyZWVfaXJxKGRldi0+aXJxLCBkZXYpOwotCQkgICAgZGV2LT5pcnEgPSAtMTsKLQkJfQotCX0gZWxzZSB7Ci0JCWlmIChkZXYtPmlycSA+PSAwKXsKLQkJICAgIGlpY19pbnRlcnJ1cHRfbW9kZShkZXYsIDApOwotCQkgICAgZnJlZV9pcnEoZGV2LT5pcnEsIGRldik7Ci0JCX0KLQkJaW91bm1hcChkZXYtPnZhZGRyKTsKLQkJcmVsZWFzZV9tZW1fcmVnaW9uKG9jcC0+ZGVmLT5wYWRkciwgc2l6ZW9mKHN0cnVjdCBpaWNfcmVncykpOwotCQlrZnJlZShkZXYpOwotCX0KLX0KLQotc3RhdGljIHN0cnVjdCBvY3BfZGV2aWNlX2lkIGlibV9paWNfaWRzW10gX19kZXZpbml0ZGF0YSA9Ci17Ci0JeyAudmVuZG9yID0gT0NQX1ZFTkRPUl9JQk0sIC5mdW5jdGlvbiA9IE9DUF9GVU5DX0lJQyB9LAotCXsgLnZlbmRvciA9IE9DUF9WRU5ET1JfSU5WQUxJRCB9Ci19OwotCi1NT0RVTEVfREVWSUNFX1RBQkxFKG9jcCwgaWJtX2lpY19pZHMpOwotCi1zdGF0aWMgc3RydWN0IG9jcF9kcml2ZXIgaWJtX2lpY19kcml2ZXIgPQotewotCS5uYW1lIAkJPSAiaWljIiwKLQkuaWRfdGFibGUJPSBpYm1faWljX2lkcywKLQkucHJvYmUJCT0gaWljX3Byb2JlLAotCS5yZW1vdmUJCT0gX19kZXZleGl0X3AoaWljX3JlbW92ZSksCi0jaWYgZGVmaW5lZChDT05GSUdfUE0pCi0JLnN1c3BlbmQJPSBOVUxMLAotCS5yZXN1bWUJCT0gTlVMTCwKLSNlbmRpZgotfTsKLQotc3RhdGljIGludCBfX2luaXQgaWljX2luaXQodm9pZCkKLXsKLQlwcmludGsoS0VSTl9JTkZPICJJQk0gSUlDIGRyaXZlciB2IiBEUklWRVJfVkVSU0lPTiAiXG4iKTsKLQlyZXR1cm4gb2NwX3JlZ2lzdGVyX2RyaXZlcigmaWJtX2lpY19kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgaWljX2V4aXQodm9pZCkKLXsKLQlvY3BfdW5yZWdpc3Rlcl9kcml2ZXIoJmlibV9paWNfZHJpdmVyKTsKLX0KLQotI2Vsc2UgIC8qICFDT05GSUdfSUJNX09DUCAqLwotCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBpaWNfcmVxdWVzdF9pcnEoc3RydWN0IG9mX2RldmljZSAqb2ZkZXYsCiAJCQkJICAgICBzdHJ1Y3QgaWJtX2lpY19wcml2YXRlICpkZXYpCiB7CkBAIC04NzYsNyArNjk3LDcgQEAKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gb2ZkZXYtPm5vZGU7CiAJc3RydWN0IGlibV9paWNfcHJpdmF0ZSAqZGV2OwogCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcDsKLQljb25zdCB1MzIgKmluZGV4cCwgKmZyZXE7CisJY29uc3QgdTMyICpmcmVxOwogCWludCByZXQ7CiAKIAlkZXYgPSBremFsbG9jKHNpemVvZigqZGV2KSwgR0ZQX0tFUk5FTCk7CkBAIC04ODcsMTQgKzcwOCw2IEBACiAKIAlkZXZfc2V0X2RydmRhdGEoJm9mZGV2LT5kZXYsIGRldik7CiAKLQlpbmRleHAgPSBvZl9nZXRfcHJvcGVydHkobnAsICJpbmRleCIsIE5VTEwpOwotCWlmICghaW5kZXhwKSB7Ci0JCWRldl9lcnIoJm9mZGV2LT5kZXYsICJubyBpbmRleCBzcGVjaWZpZWRcbiIpOwotCQlyZXQgPSAtRUlOVkFMOwotCQlnb3RvIGVycm9yX2NsZWFudXA7Ci0JfQotCWRldi0+aWR4ID0gKmluZGV4cDsKLQogCWRldi0+dmFkZHIgPSBvZl9pb21hcChucCwgMCk7CiAJaWYgKGRldi0+dmFkZHIgPT0gTlVMTCkgewogCQlkZXZfZXJyKCZvZmRldi0+ZGV2LCAiZmFpbGVkIHRvIGlvbWFwIGRldmljZVxuIik7CkBAIC05MzQsMTcgKzc0NywxOSBAQAogCXN0cmxjcHkoYWRhcC0+bmFtZSwgIklCTSBJSUMiLCBzaXplb2YoYWRhcC0+bmFtZSkpOwogCWkyY19zZXRfYWRhcGRhdGEoYWRhcCwgZGV2KTsKIAlhZGFwLT5pZCA9IEkyQ19IV19PQ1A7Ci0JYWRhcC0+Y2xhc3MgPSBJMkNfQ0xBU1NfSFdNT047CisJYWRhcC0+Y2xhc3MgPSBJMkNfQ0xBU1NfSFdNT04gfCBJMkNfQ0xBU1NfU1BEOwogCWFkYXAtPmFsZ28gPSAmaWljX2FsZ287CiAJYWRhcC0+dGltZW91dCA9IDE7Ci0JYWRhcC0+bnIgPSBkZXYtPmlkeDsKIAotCXJldCA9IGkyY19hZGRfbnVtYmVyZWRfYWRhcHRlcihhZGFwKTsKKwlyZXQgPSBpMmNfYWRkX2FkYXB0ZXIoYWRhcCk7CiAJaWYgKHJldCAgPCAwKSB7CiAJCWRldl9lcnIoJm9mZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgaTJjIGFkYXB0ZXJcbiIpOwogCQlnb3RvIGVycm9yX2NsZWFudXA7CiAJfQogCisJLyogTm93IHJlZ2lzdGVyIGFsbCB0aGUgY2hpbGQgbm9kZXMgKi8KKwlvZl9yZWdpc3Rlcl9pMmNfZGV2aWNlcyhhZGFwLCBucCk7CisKIAlkZXZfaW5mbygmb2ZkZXYtPmRldiwgInVzaW5nICVzIG1vZGVcbiIsCiAJCSBkZXYtPmZhc3RfbW9kZSA/ICJmYXN0ICg0MDAga0h6KSIgOiAic3RhbmRhcmQgKDEwMCBrSHopIik7CiAKQEAgLTk4NywxMSArODAyLDcgQEAKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaWJtX2lpY19tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAiaWJtLGlpYy00MDVleCIsIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJpYm0saWljLTQwNWdwIiwgfSwKLQl7IC5jb21wYXRpYmxlID0gImlibSxpaWMtNDQwZ3AiLCB9LAotCXsgLmNvbXBhdGlibGUgPSAiaWJtLGlpYy00NDBncHgiLCB9LAotCXsgLmNvbXBhdGlibGUgPSAiaWJtLGlpYy00NDBncngiLCB9LAorCXsgLmNvbXBhdGlibGUgPSAiaWJtLGlpYyIsIH0sCiAJe30KIH07CiAKQEAgLTEwMTEsNyArODIyLDYgQEAKIHsKIAlvZl91bnJlZ2lzdGVyX3BsYXRmb3JtX2RyaXZlcigmaWJtX2lpY19kcml2ZXIpOwogfQotI2VuZGlmIC8qIENPTkZJR19JQk1fT0NQICovCiAKIG1vZHVsZV9pbml0KGlpY19pbml0KTsKIG1vZHVsZV9leGl0KGlpY19leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaW9wM3h4LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWlvcDN4eC5jCmluZGV4IDM5ODg0ZTcuLmZjMjcxNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaW9wM3h4LmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pb3AzeHguYwpAQCAtNDgyLDcgKzQ4Miw3IEBACiAJbWVtY3B5KG5ld19hZGFwdGVyLT5uYW1lLCBwZGV2LT5uYW1lLCBzdHJsZW4ocGRldi0+bmFtZSkpOwogCW5ld19hZGFwdGVyLT5pZCA9IEkyQ19IV19JT1AzWFg7CiAJbmV3X2FkYXB0ZXItPm93bmVyID0gVEhJU19NT0RVTEU7Ci0JbmV3X2FkYXB0ZXItPmNsYXNzID0gSTJDX0NMQVNTX0hXTU9OOworCW5ld19hZGFwdGVyLT5jbGFzcyA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQ7CiAJbmV3X2FkYXB0ZXItPmRldi5wYXJlbnQgPSAmcGRldi0+ZGV2OwogCW5ld19hZGFwdGVyLT5uciA9IHBkZXYtPmlkOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWlzY2guYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaXNjaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5YzAxYWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWlzY2guYwpAQCAtMCwwICsxLDMzOSBAQAorLyoKKyAgICBpMmMtaXNjaC5jIC0gTGludXgga2VybmVsIGRyaXZlciBmb3IgSW50ZWwgU0NIIGNoaXBzZXQgU01CdXMKKyAgICAtIEJhc2VkIG9uIGkyYy1waWl4NC5jCisgICAgQ29weXJpZ2h0IChjKSAxOTk4IC0gMjAwMiBGcm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+IGFuZAorICAgIFBoaWxpcCBFZGVsYnJvY2sgPHBoaWxAbmV0cm9lZGdlLmNvbT4KKyAgICAtIEludGVsIFNDSCBzdXBwb3J0CisgICAgQ29weXJpZ2h0IChjKSAyMDA3IC0gMjAwOCBKYWNvYiBKdW4gUGFuIDxqYWNvYi5qdW4ucGFuQGludGVsLmNvbT4KKworICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKworICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisqLworCisvKgorICAgU3VwcG9ydHM6CisJSW50ZWwgU0NIIGNoaXBzZXRzIChBRjgyVVMxNVcsIEFGODJVUzE1TCwgQUY4MlVMMTFMKQorICAgTm90ZTogd2UgYXNzdW1lIHRoZXJlIGNhbiBvbmx5IGJlIG9uZSBkZXZpY2UsIHdpdGggb25lIFNNQnVzIGludGVyZmFjZS4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3N0ZGRlZi5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KKworLyogU0NIIFNNQnVzIGFkZHJlc3Mgb2Zmc2V0cyAqLworI2RlZmluZSBTTUJIU1RDTlQJKDAgKyBzY2hfc21iYSkKKyNkZWZpbmUgU01CSFNUU1RTCSgxICsgc2NoX3NtYmEpCisjZGVmaW5lIFNNQkhTVEFERAkoNCArIHNjaF9zbWJhKSAvKiBUU0EgKi8KKyNkZWZpbmUgU01CSFNUQ01ECSg1ICsgc2NoX3NtYmEpCisjZGVmaW5lIFNNQkhTVERBVDAJKDYgKyBzY2hfc21iYSkKKyNkZWZpbmUgU01CSFNUREFUMQkoNyArIHNjaF9zbWJhKQorI2RlZmluZSBTTUJCTEtEQVQJKDB4MjAgKyBzY2hfc21iYSkKKworLyogY291bnQgZm9yIHJlcXVlc3RfcmVnaW9uICovCisjZGVmaW5lIFNNQklPU0laRQk2NAorCisvKiBQQ0kgQWRkcmVzcyBDb25zdGFudHMgKi8KKyNkZWZpbmUgU01CQkFfU0NICTB4NDAKKworLyogT3RoZXIgc2V0dGluZ3MgKi8KKyNkZWZpbmUgTUFYX1RJTUVPVVQJNTAwCisKKy8qIEkyQyBjb25zdGFudHMgKi8KKyNkZWZpbmUgU0NIX1FVSUNLCQkweDAwCisjZGVmaW5lIFNDSF9CWVRFCQkweDAxCisjZGVmaW5lIFNDSF9CWVRFX0RBVEEJCTB4MDIKKyNkZWZpbmUgU0NIX1dPUkRfREFUQQkJMHgwMworI2RlZmluZSBTQ0hfQkxPQ0tfREFUQQkJMHgwNQorCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgc2NoX3NtYmE7CitzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgc2NoX2RyaXZlcjsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgc2NoX2FkYXB0ZXI7CisKKy8qCisgKiBTdGFydCB0aGUgaTJjIHRyYW5zYWN0aW9uIC0tIHRoZSBpMmNfYWNjZXNzIHdpbGwgcHJlcGFyZSB0aGUgdHJhbnNhY3Rpb24KKyAqIGFuZCB0aGlzIGZ1bmN0aW9uIHdpbGwgZXhlY3V0ZSBpdC4KKyAqIHJldHVybiAwIGZvciBzdWNjZXNzIGFuZCBvdGhlcnMgZm9yIGZhaWx1cmUuCisgKi8KK3N0YXRpYyBpbnQgc2NoX3RyYW5zYWN0aW9uKHZvaWQpCit7CisJaW50IHRlbXA7CisJaW50IHJlc3VsdCA9IDA7CisJaW50IHRpbWVvdXQgPSAwOworCisJZGV2X2RiZygmc2NoX2FkYXB0ZXIuZGV2LCAiVHJhbnNhY3Rpb24gKHByZSk6IENOVD0lMDJ4LCBDTUQ9JTAyeCwgIgorCQkiQUREPSUwMngsIERBVDA9JTAyeCwgREFUMT0lMDJ4XG4iLCBpbmIoU01CSFNUQ05UKSwKKwkJaW5iKFNNQkhTVENNRCksIGluYihTTUJIU1RBREQpLCBpbmIoU01CSFNUREFUMCksCisJCWluYihTTUJIU1REQVQxKSk7CisKKwkvKiBNYWtlIHN1cmUgdGhlIFNNQnVzIGhvc3QgaXMgcmVhZHkgdG8gc3RhcnQgdHJhbnNtaXR0aW5nICovCisJdGVtcCA9IGluYihTTUJIU1RTVFMpICYgMHgwZjsKKwlpZiAodGVtcCkgeworCQkvKiBDYW4gbm90IGJlIGJ1c3kgc2luY2Ugd2UgY2hlY2tlZCBpdCBpbiBzY2hfYWNjZXNzICovCisJCWlmICh0ZW1wICYgMHgwMSkgeworCQkJZGV2X2RiZygmc2NoX2FkYXB0ZXIuZGV2LCAiQ29tcGxldGlvbiAoJTAyeCkuICIKKwkJCQkiQ2xlYXIuLi5cbiIsIHRlbXApOworCQl9CisJCWlmICh0ZW1wICYgMHgwNikgeworCQkJZGV2X2RiZygmc2NoX2FkYXB0ZXIuZGV2LCAiU01CdXMgZXJyb3IgKCUwMngpLiAiCisJCQkJIlJlc2V0dGluZy4uLlxuIiwgdGVtcCk7CisJCX0KKwkJb3V0Yih0ZW1wLCBTTUJIU1RTVFMpOworCQl0ZW1wID0gaW5iKFNNQkhTVFNUUykgJiAweDBmOworCQlpZiAodGVtcCkgeworCQkJZGV2X2Vycigmc2NoX2FkYXB0ZXIuZGV2LAorCQkJCSJTTUJ1cyBpcyBub3QgcmVhZHk6ICglMDJ4KVxuIiwgdGVtcCk7CisJCQlyZXR1cm4gLUVBR0FJTjsKKwkJfQorCX0KKworCS8qIHN0YXJ0IHRoZSB0cmFuc2FjdGlvbiBieSBzZXR0aW5nIGJpdCA0ICovCisJb3V0YihpbmIoU01CSFNUQ05UKSB8IDB4MTAsIFNNQkhTVENOVCk7CisKKwlkbyB7CisJCW1zbGVlcCgxKTsKKwkJdGVtcCA9IGluYihTTUJIU1RTVFMpICYgMHgwZjsKKwl9IHdoaWxlICgodGVtcCAmIDB4MDgpICYmICh0aW1lb3V0KysgPCBNQVhfVElNRU9VVCkpOworCisJLyogSWYgdGhlIFNNQnVzIGlzIHN0aWxsIGJ1c3ksIHdlIGdpdmUgdXAgKi8KKwlpZiAodGltZW91dCA+PSBNQVhfVElNRU9VVCkgeworCQlkZXZfZXJyKCZzY2hfYWRhcHRlci5kZXYsICJTTUJ1cyBUaW1lb3V0IVxuIik7CisJCXJlc3VsdCA9IC1FVElNRURPVVQ7CisJfQorCWlmICh0ZW1wICYgMHgwNCkgeworCQlyZXN1bHQgPSAtRUlPOworCQlkZXZfZGJnKCZzY2hfYWRhcHRlci5kZXYsICJCdXMgY29sbGlzaW9uISBTTUJ1cyBtYXkgYmUgIgorCQkJImxvY2tlZCB1bnRpbCBuZXh0IGhhcmQgcmVzZXQuIChzb3JyeSEpXG4iKTsKKwkJLyogQ2xvY2sgc3RvcHMgYW5kIHNsYXZlIGlzIHN0dWNrIGluIG1pZC10cmFuc21pc3Npb24gKi8KKwl9IGVsc2UgaWYgKHRlbXAgJiAweDAyKSB7CisJCXJlc3VsdCA9IC1FSU87CisJCWRldl9lcnIoJnNjaF9hZGFwdGVyLmRldiwgIkVycm9yOiBubyByZXNwb25zZSFcbiIpOworCX0gZWxzZSBpZiAodGVtcCAmIDB4MDEpIHsKKwkJZGV2X2RiZygmc2NoX2FkYXB0ZXIuZGV2LCAiUG9zdCBjb21wbGV0ZSFcbiIpOworCQlvdXRiKHRlbXAsIFNNQkhTVFNUUyk7CisJCXRlbXAgPSBpbmIoU01CSFNUU1RTKSAmIDB4MDc7CisJCWlmICh0ZW1wICYgMHgwNikgeworCQkJLyogQ29tcGxldGlvbiBjbGVhciBmYWlsZWQgKi8KKwkJCWRldl9kYmcoJnNjaF9hZGFwdGVyLmRldiwgIkZhaWxlZCByZXNldCBhdCBlbmQgb2YgIgorCQkJCSJ0cmFuc2FjdGlvbiAoJTAyeCksIEJ1cyBlcnJvciFcbiIsIHRlbXApOworCQl9CisJfSBlbHNlIHsKKwkJcmVzdWx0ID0gLUVOWElPOworCQlkZXZfZGJnKCZzY2hfYWRhcHRlci5kZXYsICJObyBzdWNoIGFkZHJlc3MuXG4iKTsKKwl9CisJZGV2X2RiZygmc2NoX2FkYXB0ZXIuZGV2LCAiVHJhbnNhY3Rpb24gKHBvc3QpOiBDTlQ9JTAyeCwgQ01EPSUwMngsICIKKwkJIkFERD0lMDJ4LCBEQVQwPSUwMngsIERBVDE9JTAyeFxuIiwgaW5iKFNNQkhTVENOVCksCisJCWluYihTTUJIU1RDTUQpLCBpbmIoU01CSFNUQUREKSwgaW5iKFNNQkhTVERBVDApLAorCQlpbmIoU01CSFNUREFUMSkpOworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBUaGlzIGlzIHRoZSBtYWluIGFjY2VzcyBlbnRyeSBmb3IgaTJjLXNjaCBhY2Nlc3MKKyAqIGFkYXAgaXMgaTJjX2FkYXB0ZXIgcG9pbnRlciwgYWRkciBpcyB0aGUgaTJjIGRldmljZSBidXMgYWRkcmVzcywgcmVhZF93cml0ZQorICogKDAgZm9yIHJlYWQgYW5kIDEgZm9yIHdyaXRlKSwgc2l6ZSBpcyBpMmMgdHJhbnNhY3Rpb24gdHlwZSBhbmQgZGF0YSBpcyB0aGUKKyAqIHVuaW9uIG9mIHRyYW5zYWN0aW9uIGZvciBkYXRhIHRvIGJlIHRyYW5zZmVyZWQgb3IgZGF0YSByZWFkIGZyb20gYnVzLgorICogcmV0dXJuIDAgZm9yIHN1Y2Nlc3MgYW5kIG90aGVycyBmb3IgZmFpbHVyZS4KKyAqLworc3RhdGljIHMzMiBzY2hfYWNjZXNzKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgdTE2IGFkZHIsCisJCSB1bnNpZ25lZCBzaG9ydCBmbGFncywgY2hhciByZWFkX3dyaXRlLAorCQkgdTggY29tbWFuZCwgaW50IHNpemUsIHVuaW9uIGkyY19zbWJ1c19kYXRhICpkYXRhKQoreworCWludCBpLCBsZW4sIHRlbXAsIHJjOworCisJLyogTWFrZSBzdXJlIHRoZSBTTUJ1cyBob3N0IGlzIG5vdCBidXN5ICovCisJdGVtcCA9IGluYihTTUJIU1RTVFMpICYgMHgwZjsKKwlpZiAodGVtcCAmIDB4MDgpIHsKKwkJZGV2X2RiZygmc2NoX2FkYXB0ZXIuZGV2LCAiU01CdXMgYnVzeSAoJTAyeClcbiIsIHRlbXApOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisJZGV2X2RiZygmc2NoX2FkYXB0ZXIuZGV2LCAiYWNjZXNzIHNpemU6ICVkICVzXG4iLCBzaXplLAorCQkocmVhZF93cml0ZSk/IlJFQUQiOiJXUklURSIpOworCXN3aXRjaCAoc2l6ZSkgeworCWNhc2UgSTJDX1NNQlVTX1FVSUNLOgorCQlvdXRiKChhZGRyIDw8IDEpIHwgcmVhZF93cml0ZSwgU01CSFNUQUREKTsKKwkJc2l6ZSA9IFNDSF9RVUlDSzsKKwkJYnJlYWs7CisJY2FzZSBJMkNfU01CVVNfQllURToKKwkJb3V0YigoYWRkciA8PCAxKSB8IHJlYWRfd3JpdGUsIFNNQkhTVEFERCk7CisJCWlmIChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19XUklURSkKKwkJCW91dGIoY29tbWFuZCwgU01CSFNUQ01EKTsKKwkJc2l6ZSA9IFNDSF9CWVRFOworCQlicmVhazsKKwljYXNlIEkyQ19TTUJVU19CWVRFX0RBVEE6CisJCW91dGIoKGFkZHIgPDwgMSkgfCByZWFkX3dyaXRlLCBTTUJIU1RBREQpOworCQlvdXRiKGNvbW1hbmQsIFNNQkhTVENNRCk7CisJCWlmIChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19XUklURSkKKwkJCW91dGIoZGF0YS0+Ynl0ZSwgU01CSFNUREFUMCk7CisJCXNpemUgPSBTQ0hfQllURV9EQVRBOworCQlicmVhazsKKwljYXNlIEkyQ19TTUJVU19XT1JEX0RBVEE6CisJCW91dGIoKGFkZHIgPDwgMSkgfCByZWFkX3dyaXRlLCBTTUJIU1RBREQpOworCQlvdXRiKGNvbW1hbmQsIFNNQkhTVENNRCk7CisJCWlmIChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19XUklURSkgeworCQkJb3V0YihkYXRhLT53b3JkICYgMHhmZiwgU01CSFNUREFUMCk7CisJCQlvdXRiKChkYXRhLT53b3JkICYgMHhmZjAwKSA+PiA4LCBTTUJIU1REQVQxKTsKKwkJfQorCQlzaXplID0gU0NIX1dPUkRfREFUQTsKKwkJYnJlYWs7CisJY2FzZSBJMkNfU01CVVNfQkxPQ0tfREFUQToKKwkJb3V0YigoYWRkciA8PCAxKSB8IHJlYWRfd3JpdGUsIFNNQkhTVEFERCk7CisJCW91dGIoY29tbWFuZCwgU01CSFNUQ01EKTsKKwkJaWYgKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFKSB7CisJCQlsZW4gPSBkYXRhLT5ibG9ja1swXTsKKwkJCWlmIChsZW4gPT0gMCB8fCBsZW4gPiBJMkNfU01CVVNfQkxPQ0tfTUFYKQorCQkJCXJldHVybiAtRUlOVkFMOworCQkJb3V0YihsZW4sIFNNQkhTVERBVDApOworCQkJZm9yIChpID0gMTsgaSA8PSBsZW47IGkrKykKKwkJCQlvdXRiKGRhdGEtPmJsb2NrW2ldLCBTTUJCTEtEQVQraS0xKTsKKwkJfQorCQlzaXplID0gU0NIX0JMT0NLX0RBVEE7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl93YXJuKCZhZGFwLT5kZXYsICJVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiAlZFxuIiwgc2l6ZSk7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwl9CisJZGV2X2RiZygmc2NoX2FkYXB0ZXIuZGV2LCAid3JpdGUgc2l6ZSAlZCB0byAweCUwNHhcbiIsIHNpemUsIFNNQkhTVENOVCk7CisJb3V0YigoaW5iKFNNQkhTVENOVCkgJiAweGIwKSB8IChzaXplICYgMHg3KSwgU01CSFNUQ05UKTsKKworCXJjID0gc2NoX3RyYW5zYWN0aW9uKCk7CisJaWYgKHJjKQkvKiBFcnJvciBpbiB0cmFuc2FjdGlvbiAqLworCQlyZXR1cm4gcmM7CisKKwlpZiAoKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFKSB8fCAoc2l6ZSA9PSBTQ0hfUVVJQ0spKQorCQlyZXR1cm4gMDsKKworCXN3aXRjaCAoc2l6ZSkgeworCWNhc2UgU0NIX0JZVEU6CisJY2FzZSBTQ0hfQllURV9EQVRBOgorCQlkYXRhLT5ieXRlID0gaW5iKFNNQkhTVERBVDApOworCQlicmVhazsKKwljYXNlIFNDSF9XT1JEX0RBVEE6CisJCWRhdGEtPndvcmQgPSBpbmIoU01CSFNUREFUMCkgKyAoaW5iKFNNQkhTVERBVDEpIDw8IDgpOworCQlicmVhazsKKwljYXNlIFNDSF9CTE9DS19EQVRBOgorCQlkYXRhLT5ibG9ja1swXSA9IGluYihTTUJIU1REQVQwKTsKKwkJaWYgKGRhdGEtPmJsb2NrWzBdID09IDAgfHwgZGF0YS0+YmxvY2tbMF0gPiBJMkNfU01CVVNfQkxPQ0tfTUFYKQorCQkJcmV0dXJuIC1FUFJPVE87CisJCWZvciAoaSA9IDE7IGkgPD0gZGF0YS0+YmxvY2tbMF07IGkrKykKKwkJCWRhdGEtPmJsb2NrW2ldID0gaW5iKFNNQkJMS0RBVCtpLTEpOworCQlicmVhazsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1MzIgc2NoX2Z1bmMoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKQoreworCXJldHVybiBJMkNfRlVOQ19TTUJVU19RVUlDSyB8IEkyQ19GVU5DX1NNQlVTX0JZVEUgfAorCSAgICBJMkNfRlVOQ19TTUJVU19CWVRFX0RBVEEgfCBJMkNfRlVOQ19TTUJVU19XT1JEX0RBVEEgfAorCSAgICBJMkNfRlVOQ19TTUJVU19CTE9DS19EQVRBOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19hbGdvcml0aG0gc21idXNfYWxnb3JpdGhtID0geworCS5zbWJ1c194ZmVyCT0gc2NoX2FjY2VzcywKKwkuZnVuY3Rpb25hbGl0eQk9IHNjaF9mdW5jLAorfTsKKworc3RhdGljIHN0cnVjdCBpMmNfYWRhcHRlciBzY2hfYWRhcHRlciA9IHsKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCisJLmFsZ28JCT0gJnNtYnVzX2FsZ29yaXRobSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzY2hfaWRzW10gPSB7CisJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfU0NIX0xQQykgfSwKKwl7IDAsIH0KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzY2hfaWRzKTsKKworc3RhdGljIGludCBfX2RldmluaXQgc2NoX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpkZXYsCisJCQkJY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQoreworCWludCByZXR2YWw7CisJdW5zaWduZWQgaW50IHNtYmE7CisKKwlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCBTTUJCQV9TQ0gsICZzbWJhKTsKKwlpZiAoIShzbWJhICYgKDEgPDwgMzEpKSkgeworCQlkZXZfZXJyKCZkZXYtPmRldiwgIlNNQnVzIEkvTyBzcGFjZSBkaXNhYmxlZCFcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlzY2hfc21iYSA9ICh1bnNpZ25lZCBzaG9ydClzbWJhOworCWlmIChzY2hfc21iYSA9PSAwKSB7CisJCWRldl9lcnIoJmRldi0+ZGV2LCAiU01CdXMgYmFzZSBhZGRyZXNzIHVuaW5pdGlhbGl6ZWQhXG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCWlmIChhY3BpX2NoZWNrX3JlZ2lvbihzY2hfc21iYSwgU01CSU9TSVpFLCBzY2hfZHJpdmVyLm5hbWUpKQorCQlyZXR1cm4gLUVCVVNZOworCWlmICghcmVxdWVzdF9yZWdpb24oc2NoX3NtYmEsIFNNQklPU0laRSwgc2NoX2RyaXZlci5uYW1lKSkgeworCQlkZXZfZXJyKCZkZXYtPmRldiwgIlNNQnVzIHJlZ2lvbiAweCV4IGFscmVhZHkgaW4gdXNlIVxuIiwKKwkJCXNjaF9zbWJhKTsKKwkJcmV0dXJuIC1FQlVTWTsKKwl9CisJZGV2X2RiZygmZGV2LT5kZXYsICJTTUJBID0gMHglWFxuIiwgc2NoX3NtYmEpOworCisJLyogc2V0IHVwIHRoZSBzeXNmcyBsaW5rYWdlIHRvIG91ciBwYXJlbnQgZGV2aWNlICovCisJc2NoX2FkYXB0ZXIuZGV2LnBhcmVudCA9ICZkZXYtPmRldjsKKworCXNucHJpbnRmKHNjaF9hZGFwdGVyLm5hbWUsIHNpemVvZihzY2hfYWRhcHRlci5uYW1lKSwKKwkJIlNNQnVzIFNDSCBhZGFwdGVyIGF0ICUwNHgiLCBzY2hfc21iYSk7CisKKwlyZXR2YWwgPSBpMmNfYWRkX2FkYXB0ZXIoJnNjaF9hZGFwdGVyKTsKKwlpZiAocmV0dmFsKSB7CisJCWRldl9lcnIoJmRldi0+ZGV2LCAiQ291bGRuJ3QgcmVnaXN0ZXIgYWRhcHRlciFcbiIpOworCQlyZWxlYXNlX3JlZ2lvbihzY2hfc21iYSwgU01CSU9TSVpFKTsKKwkJc2NoX3NtYmEgPSAwOworCX0KKworCXJldHVybiByZXR2YWw7Cit9CisKK3N0YXRpYyB2b2lkIF9fZGV2ZXhpdCBzY2hfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJaWYgKHNjaF9zbWJhKSB7CisJCWkyY19kZWxfYWRhcHRlcigmc2NoX2FkYXB0ZXIpOworCQlyZWxlYXNlX3JlZ2lvbihzY2hfc21iYSwgU01CSU9TSVpFKTsKKwkJc2NoX3NtYmEgPSAwOworCX0KK30KKworc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHNjaF9kcml2ZXIgPSB7CisJLm5hbWUJCT0gImlzY2hfc21idXMiLAorCS5pZF90YWJsZQk9IHNjaF9pZHMsCisJLnByb2JlCQk9IHNjaF9wcm9iZSwKKwkucmVtb3ZlCQk9IF9fZGV2ZXhpdF9wKHNjaF9yZW1vdmUpLAorfTsKKworc3RhdGljIGludCBfX2luaXQgaTJjX3NjaF9pbml0KHZvaWQpCit7CisJcmV0dXJuIHBjaV9yZWdpc3Rlcl9kcml2ZXIoJnNjaF9kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgaTJjX3NjaF9leGl0KHZvaWQpCit7CisJcGNpX3VucmVnaXN0ZXJfZHJpdmVyKCZzY2hfZHJpdmVyKTsKK30KKworTU9EVUxFX0FVVEhPUigiSmFjb2IgUGFuIDxqYWNvYi5qdW4ucGFuQGludGVsLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiSW50ZWwgU0NIIFNNQnVzIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfaW5pdChpMmNfc2NoX2luaXQpOworbW9kdWxlX2V4aXQoaTJjX3NjaF9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbXBjLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW1wYy5jCmluZGV4IGEwNzYxMjkuLjEwYjkzNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbXBjLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1tcGMuYwpAQCAtMzExLDcgKzMxMSw3IEBACiAJLm5hbWUgPSAiTVBDIGFkYXB0ZXIiLAogCS5pZCA9IEkyQ19IV19NUEMxMDcsCiAJLmFsZ28gPSAmbXBjX2FsZ28sCi0JLmNsYXNzID0gSTJDX0NMQVNTX0hXTU9OLAorCS5jbGFzcyA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJLnRpbWVvdXQgPSAxLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1tdjY0eHh4LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW12NjR4eHguYwppbmRleCAwMzZlNmE4Li45ZTgxMThkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW12NjR4eHguYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW12NjR4eHguYwpAQCAtNTMwLDcgKzUzMCw3IEBACiAJZHJ2X2RhdGEtPmFkYXB0ZXIuaWQgPSBJMkNfSFdfTVY2NFhYWDsKIAlkcnZfZGF0YS0+YWRhcHRlci5hbGdvID0gJm12NjR4eHhfaTJjX2FsZ287CiAJZHJ2X2RhdGEtPmFkYXB0ZXIub3duZXIgPSBUSElTX01PRFVMRTsKLQlkcnZfZGF0YS0+YWRhcHRlci5jbGFzcyA9IEkyQ19DTEFTU19IV01PTjsKKwlkcnZfZGF0YS0+YWRhcHRlci5jbGFzcyA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQ7CiAJZHJ2X2RhdGEtPmFkYXB0ZXIudGltZW91dCA9IHBkYXRhLT50aW1lb3V0OwogCWRydl9kYXRhLT5hZGFwdGVyLm5yID0gcGQtPmlkOwogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkLCBkcnZfZGF0YSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW5mb3JjZTItczQ5ODUuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbmZvcmNlMi1zNDk4NS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhODk5NWQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW5mb3JjZTItczQ5ODUuYwpAQCAtMCwwICsxLDI1NyBAQAorLyoKKyAqIGkyYy1uZm9yY2UyLXM0OTg1LmMgLSBpMmMtbmZvcmNlMiBleHRyYXMgZm9yIHRoZSBUeWFuIFM0OTg1IG1vdGhlcmJvYXJkCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICovCisKKy8qCisgKiBXZSBzZWxlY3QgdGhlIGNoYW5uZWxzIGJ5IHNlbmRpbmcgY29tbWFuZHMgdG8gdGhlIFBoaWxpcHMKKyAqIFBDQTk1NTYgY2hpcCBhdCBJMkMgYWRkcmVzcyAweDE4LiBUaGUgbWFpbiBhZGFwdGVyIGlzIHVzZWQgZm9yCisgKiB0aGUgbm9uLW11bHRpcGxleGVkIHBhcnQgb2YgdGhlIGJ1cywgYW5kIDQgdmlydHVhbCBhZGFwdGVycworICogYXJlIGRlZmluZWQgZm9yIHRoZSBtdWx0aXBsZXhlZCBhZGRyZXNzZXM6IDB4NTAtMHg1MyAobWVtb3J5CisgKiBtb2R1bGUgRUVQUk9NKSBsb2NhdGVkIG9uIGNoYW5uZWxzIDEtNC4gV2UgZGVmaW5lIG9uZSB2aXJ0dWFsCisgKiBhZGFwdGVyIHBlciBDUFUsIHdoaWNoIGNvcnJlc3BvbmRzIHRvIG9uZSBtdWx0aXBsZXhlZCBjaGFubmVsOgorICogICBDUFUwOiB2aXJ0dWFsIGFkYXB0ZXIgMSwgY2hhbm5lbCAxCisgKiAgIENQVTE6IHZpcnR1YWwgYWRhcHRlciAyLCBjaGFubmVsIDIKKyAqICAgQ1BVMjogdmlydHVhbCBhZGFwdGVyIDMsIGNoYW5uZWwgMworICogICBDUFUzOiB2aXJ0dWFsIGFkYXB0ZXIgNCwgY2hhbm5lbCA0CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKworZXh0ZXJuIHN0cnVjdCBpMmNfYWRhcHRlciAqbmZvcmNlMl9zbWJ1czsKKworc3RhdGljIHN0cnVjdCBpMmNfYWRhcHRlciAqczQ5ODVfYWRhcHRlcjsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2FsZ29yaXRobSAqczQ5ODVfYWxnbzsKKworLyogV3JhcHBlciBhY2Nlc3MgZnVuY3Rpb25zIGZvciBtdWx0aXBsZXhlZCBTTUJ1cyAqLworc3RhdGljIERFRklORV9NVVRFWChuZm9yY2UyX2xvY2spOworCitzdGF0aWMgczMyIG5mb3JjZTJfYWNjZXNzX3ZpcnQwKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgdTE2IGFkZHIsCisJCQkJdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwKKwkJCQl1OCBjb21tYW5kLCBpbnQgc2l6ZSwKKwkJCQl1bmlvbiBpMmNfc21idXNfZGF0YSAqZGF0YSkKK3sKKwlpbnQgZXJyb3I7CisKKwkvKiBXZSBleGNsdWRlIHRoZSBtdWx0aXBsZXhlZCBhZGRyZXNzZXMgKi8KKwlpZiAoKGFkZHIgJiAweGZjKSA9PSAweDUwIHx8IChhZGRyICYgMHhmYykgPT0gMHgzMAorCSB8fCBhZGRyID09IDB4MTgpCisJCXJldHVybiAtRU5YSU87CisKKwltdXRleF9sb2NrKCZuZm9yY2UyX2xvY2spOworCWVycm9yID0gbmZvcmNlMl9zbWJ1cy0+YWxnby0+c21idXNfeGZlcihhZGFwLCBhZGRyLCBmbGFncywgcmVhZF93cml0ZSwKKwkJCQkJCWNvbW1hbmQsIHNpemUsIGRhdGEpOworCW11dGV4X3VubG9jaygmbmZvcmNlMl9sb2NrKTsKKworCXJldHVybiBlcnJvcjsKK30KKworLyogV2UgcmVtZW1iZXIgdGhlIGxhc3QgdXNlZCBjaGFubmVscyBjb21iaW5hdGlvbiBzbyBhcyB0byBvbmx5IHN3aXRjaAorICAgY2hhbm5lbHMgd2hlbiBpdCBpcyByZWFsbHkgbmVlZGVkLiBUaGlzIGdyZWF0bHkgcmVkdWNlcyB0aGUgU01CdXMKKyAgIG92ZXJoZWFkLCBidXQgYWxzbyBhc3N1bWVzIHRoYXQgbm9ib2R5IHdpbGwgYmUgd3JpdGluZyB0byB0aGUgUENBOTU1NgorICAgaW4gb3VyIGJhY2suICovCitzdGF0aWMgdTggbGFzdF9jaGFubmVsczsKKworc3RhdGljIGlubGluZSBzMzIgbmZvcmNlMl9hY2Nlc3NfY2hhbm5lbChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIHUxNiBhZGRyLAorCQkJCQkgdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwKKwkJCQkJIHU4IGNvbW1hbmQsIGludCBzaXplLAorCQkJCQkgdW5pb24gaTJjX3NtYnVzX2RhdGEgKmRhdGEsCisJCQkJCSB1OCBjaGFubmVscykKK3sKKwlpbnQgZXJyb3I7CisKKwkvKiBXZSBleGNsdWRlIHRoZSBub24tbXVsdGlwbGV4ZWQgYWRkcmVzc2VzICovCisJaWYgKChhZGRyICYgMHhmYykgIT0gMHg1MCAmJiAoYWRkciAmIDB4ZmMpICE9IDB4MzApCisJCXJldHVybiAtRU5YSU87CisKKwltdXRleF9sb2NrKCZuZm9yY2UyX2xvY2spOworCWlmIChsYXN0X2NoYW5uZWxzICE9IGNoYW5uZWxzKSB7CisJCXVuaW9uIGkyY19zbWJ1c19kYXRhIG1wbHhkYXRhOworCQltcGx4ZGF0YS5ieXRlID0gY2hhbm5lbHM7CisKKwkJZXJyb3IgPSBuZm9yY2UyX3NtYnVzLT5hbGdvLT5zbWJ1c194ZmVyKGFkYXAsIDB4MTgsIDAsCisJCQkJCQkJSTJDX1NNQlVTX1dSSVRFLCAweDAxLAorCQkJCQkJCUkyQ19TTUJVU19CWVRFX0RBVEEsCisJCQkJCQkJJm1wbHhkYXRhKTsKKwkJaWYgKGVycm9yKQorCQkJZ290byBVTkxPQ0s7CisJCWxhc3RfY2hhbm5lbHMgPSBjaGFubmVsczsKKwl9CisJZXJyb3IgPSBuZm9yY2UyX3NtYnVzLT5hbGdvLT5zbWJ1c194ZmVyKGFkYXAsIGFkZHIsIGZsYWdzLCByZWFkX3dyaXRlLAorCQkJCQkJY29tbWFuZCwgc2l6ZSwgZGF0YSk7CisKK1VOTE9DSzoKKwltdXRleF91bmxvY2soJm5mb3JjZTJfbG9jayk7CisJcmV0dXJuIGVycm9yOworfQorCitzdGF0aWMgczMyIG5mb3JjZTJfYWNjZXNzX3ZpcnQxKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgdTE2IGFkZHIsCisJCQkJdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwKKwkJCQl1OCBjb21tYW5kLCBpbnQgc2l6ZSwKKwkJCQl1bmlvbiBpMmNfc21idXNfZGF0YSAqZGF0YSkKK3sKKwkvKiBDUFUwOiBjaGFubmVsIDEgZW5hYmxlZCAqLworCXJldHVybiBuZm9yY2UyX2FjY2Vzc19jaGFubmVsKGFkYXAsIGFkZHIsIGZsYWdzLCByZWFkX3dyaXRlLCBjb21tYW5kLAorCQkJCSAgICAgIHNpemUsIGRhdGEsIDB4MDIpOworfQorCitzdGF0aWMgczMyIG5mb3JjZTJfYWNjZXNzX3ZpcnQyKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgdTE2IGFkZHIsCisJCQkJdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwKKwkJCQl1OCBjb21tYW5kLCBpbnQgc2l6ZSwKKwkJCQl1bmlvbiBpMmNfc21idXNfZGF0YSAqZGF0YSkKK3sKKwkvKiBDUFUxOiBjaGFubmVsIDIgZW5hYmxlZCAqLworCXJldHVybiBuZm9yY2UyX2FjY2Vzc19jaGFubmVsKGFkYXAsIGFkZHIsIGZsYWdzLCByZWFkX3dyaXRlLCBjb21tYW5kLAorCQkJCSAgICAgIHNpemUsIGRhdGEsIDB4MDQpOworfQorCitzdGF0aWMgczMyIG5mb3JjZTJfYWNjZXNzX3ZpcnQzKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgdTE2IGFkZHIsCisJCQkJdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwKKwkJCQl1OCBjb21tYW5kLCBpbnQgc2l6ZSwKKwkJCQl1bmlvbiBpMmNfc21idXNfZGF0YSAqZGF0YSkKK3sKKwkvKiBDUFUyOiBjaGFubmVsIDMgZW5hYmxlZCAqLworCXJldHVybiBuZm9yY2UyX2FjY2Vzc19jaGFubmVsKGFkYXAsIGFkZHIsIGZsYWdzLCByZWFkX3dyaXRlLCBjb21tYW5kLAorCQkJCSAgICAgIHNpemUsIGRhdGEsIDB4MDgpOworfQorCitzdGF0aWMgczMyIG5mb3JjZTJfYWNjZXNzX3ZpcnQ0KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgdTE2IGFkZHIsCisJCQkJdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwKKwkJCQl1OCBjb21tYW5kLCBpbnQgc2l6ZSwKKwkJCQl1bmlvbiBpMmNfc21idXNfZGF0YSAqZGF0YSkKK3sKKwkvKiBDUFUzOiBjaGFubmVsIDQgZW5hYmxlZCAqLworCXJldHVybiBuZm9yY2UyX2FjY2Vzc19jaGFubmVsKGFkYXAsIGFkZHIsIGZsYWdzLCByZWFkX3dyaXRlLCBjb21tYW5kLAorCQkJCSAgICAgIHNpemUsIGRhdGEsIDB4MTApOworfQorCitzdGF0aWMgaW50IF9faW5pdCBuZm9yY2UyX3M0OTg1X2luaXQodm9pZCkKK3sKKwlpbnQgaSwgZXJyb3I7CisJdW5pb24gaTJjX3NtYnVzX2RhdGEgaW9jb25maWc7CisKKwkvKiBVbnJlZ2lzdGVyIHBoeXNpY2FsIGJ1cyAqLworCWlmICghbmZvcmNlMl9zbWJ1cykKKwkJcmV0dXJuIC1FTk9ERVY7CisJZXJyb3IgPSBpMmNfZGVsX2FkYXB0ZXIobmZvcmNlMl9zbWJ1cyk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJm5mb3JjZTJfc21idXMtPmRldiwgIlBoeXNpY2FsIGJ1cyByZW1vdmFsIGZhaWxlZFxuIik7CisJCWdvdG8gRVJST1IwOworCX0KKworCXByaW50ayhLRVJOX0lORk8gIkVuYWJsaW5nIFNNQnVzIG11bHRpcGxleGluZyBmb3IgVHlhbiBTNDk4NVxuIik7CisJLyogRGVmaW5lIHRoZSA1IHZpcnR1YWwgYWRhcHRlcnMgYW5kIGFsZ29yaXRobXMgc3RydWN0dXJlcyAqLworCXM0OTg1X2FkYXB0ZXIgPSBremFsbG9jKDUgKiBzaXplb2Yoc3RydWN0IGkyY19hZGFwdGVyKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzNDk4NV9hZGFwdGVyKSB7CisJCWVycm9yID0gLUVOT01FTTsKKwkJZ290byBFUlJPUjE7CisJfQorCXM0OTg1X2FsZ28gPSBremFsbG9jKDUgKiBzaXplb2Yoc3RydWN0IGkyY19hbGdvcml0aG0pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXM0OTg1X2FsZ28pIHsKKwkJZXJyb3IgPSAtRU5PTUVNOworCQlnb3RvIEVSUk9SMjsKKwl9CisKKwkvKiBGaWxsIGluIHRoZSBuZXcgc3RydWN0dXJlcyAqLworCXM0OTg1X2FsZ29bMF0gPSAqKG5mb3JjZTJfc21idXMtPmFsZ28pOworCXM0OTg1X2FsZ29bMF0uc21idXNfeGZlciA9IG5mb3JjZTJfYWNjZXNzX3ZpcnQwOworCXM0OTg1X2FkYXB0ZXJbMF0gPSAqbmZvcmNlMl9zbWJ1czsKKwlzNDk4NV9hZGFwdGVyWzBdLmFsZ28gPSBzNDk4NV9hbGdvOworCXM0OTg1X2FkYXB0ZXJbMF0uZGV2LnBhcmVudCA9IG5mb3JjZTJfc21idXMtPmRldi5wYXJlbnQ7CisJZm9yIChpID0gMTsgaSA8IDU7IGkrKykgeworCQlzNDk4NV9hbGdvW2ldID0gKihuZm9yY2UyX3NtYnVzLT5hbGdvKTsKKwkJczQ5ODVfYWRhcHRlcltpXSA9ICpuZm9yY2UyX3NtYnVzOworCQlzbnByaW50ZihzNDk4NV9hZGFwdGVyW2ldLm5hbWUsIHNpemVvZihzNDk4NV9hZGFwdGVyW2ldLm5hbWUpLAorCQkJICJTTUJ1cyBuRm9yY2UyIGFkYXB0ZXIgKENQVSVkKSIsIGkgLSAxKTsKKwkJczQ5ODVfYWRhcHRlcltpXS5hbGdvID0gczQ5ODVfYWxnbyArIGk7CisJCXM0OTg1X2FkYXB0ZXJbaV0uZGV2LnBhcmVudCA9IG5mb3JjZTJfc21idXMtPmRldi5wYXJlbnQ7CisJfQorCXM0OTg1X2FsZ29bMV0uc21idXNfeGZlciA9IG5mb3JjZTJfYWNjZXNzX3ZpcnQxOworCXM0OTg1X2FsZ29bMl0uc21idXNfeGZlciA9IG5mb3JjZTJfYWNjZXNzX3ZpcnQyOworCXM0OTg1X2FsZ29bM10uc21idXNfeGZlciA9IG5mb3JjZTJfYWNjZXNzX3ZpcnQzOworCXM0OTg1X2FsZ29bNF0uc21idXNfeGZlciA9IG5mb3JjZTJfYWNjZXNzX3ZpcnQ0OworCisJLyogQ29uZmlndXJlIHRoZSBQQ0E5NTU2IG11bHRpcGxleGVyICovCisJaW9jb25maWcuYnl0ZSA9IDB4MDA7IC8qIEFsbCBJL08gdG8gb3V0cHV0IG1vZGUgKi8KKwllcnJvciA9IG5mb3JjZTJfc21idXMtPmFsZ28tPnNtYnVzX3hmZXIobmZvcmNlMl9zbWJ1cywgMHgxOCwgMCwKKwkJCQkJCUkyQ19TTUJVU19XUklURSwgMHgwMywKKwkJCQkJCUkyQ19TTUJVU19CWVRFX0RBVEEsICZpb2NvbmZpZyk7CisJaWYgKGVycm9yKSB7CisJCWRldl9lcnIoJm5mb3JjZTJfc21idXMtPmRldiwgIlBDQTk1NTYgY29uZmlndXJhdGlvbiBmYWlsZWRcbiIpOworCQllcnJvciA9IC1FSU87CisJCWdvdG8gRVJST1IzOworCX0KKworCS8qIFJlZ2lzdGVyIHZpcnR1YWwgYWRhcHRlcnMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKSB7CisJCWVycm9yID0gaTJjX2FkZF9hZGFwdGVyKHM0OTg1X2FkYXB0ZXIgKyBpKTsKKwkJaWYgKGVycm9yKSB7CisJCQlkZXZfZXJyKCZuZm9yY2UyX3NtYnVzLT5kZXYsCisJCQkJIlZpcnR1YWwgYWRhcHRlciAlZCByZWdpc3RyYXRpb24gIgorCQkJCSJmYWlsZWQsIG1vZHVsZSBub3QgaW5zZXJ0ZWRcbiIsIGkpOworCQkJZm9yIChpLS07IGkgPj0gMDsgaS0tKQorCQkJCWkyY19kZWxfYWRhcHRlcihzNDk4NV9hZGFwdGVyICsgaSk7CisJCQlnb3RvIEVSUk9SMzsKKwkJfQorCX0KKworCXJldHVybiAwOworCitFUlJPUjM6CisJa2ZyZWUoczQ5ODVfYWxnbyk7CisJczQ5ODVfYWxnbyA9IE5VTEw7CitFUlJPUjI6CisJa2ZyZWUoczQ5ODVfYWRhcHRlcik7CisJczQ5ODVfYWRhcHRlciA9IE5VTEw7CitFUlJPUjE6CisJLyogUmVzdG9yZSBwaHlzaWNhbCBidXMgKi8KKwlpMmNfYWRkX2FkYXB0ZXIobmZvcmNlMl9zbWJ1cyk7CitFUlJPUjA6CisJcmV0dXJuIGVycm9yOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgbmZvcmNlMl9zNDk4NV9leGl0KHZvaWQpCit7CisJaWYgKHM0OTg1X2FkYXB0ZXIpIHsKKwkJaW50IGk7CisKKwkJZm9yIChpID0gMDsgaSA8IDU7IGkrKykKKwkJCWkyY19kZWxfYWRhcHRlcihzNDk4NV9hZGFwdGVyK2kpOworCQlrZnJlZShzNDk4NV9hZGFwdGVyKTsKKwkJczQ5ODVfYWRhcHRlciA9IE5VTEw7CisJfQorCWtmcmVlKHM0OTg1X2FsZ28pOworCXM0OTg1X2FsZ28gPSBOVUxMOworCisJLyogUmVzdG9yZSBwaHlzaWNhbCBidXMgKi8KKwlpZiAoaTJjX2FkZF9hZGFwdGVyKG5mb3JjZTJfc21idXMpKQorCQlkZXZfZXJyKCZuZm9yY2UyX3NtYnVzLT5kZXYsICJQaHlzaWNhbCBidXMgcmVzdG9yYXRpb24gIgorCQkJImZhaWxlZFxuIik7Cit9CisKK01PRFVMRV9BVVRIT1IoIkplYW4gRGVsdmFyZSA8a2hhbGlAbGludXgtZnIub3JnPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJTNDk4NSBTTUJ1cyBtdWx0aXBsZXhpbmciKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworbW9kdWxlX2luaXQobmZvcmNlMl9zNDk4NV9pbml0KTsKK21vZHVsZV9leGl0KG5mb3JjZTJfczQ5ODVfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW5mb3JjZTIuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbmZvcmNlMi5jCmluZGV4IDQzYzlmOGQuLjNiMTliYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbmZvcmNlMi5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbmZvcmNlMi5jCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9kbWkuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKQEAgLTEyNCw2ICsxMjUsMjAgQEAKIAogc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIG5mb3JjZTJfZHJpdmVyOwogCisvKiBGb3IgbXVsdGlwbGV4aW5nIHN1cHBvcnQsIHdlIG5lZWQgYSBnbG9iYWwgcmVmZXJlbmNlIHRvIHRoZSAxc3QKKyAgIFNNQnVzIGNoYW5uZWwgKi8KKyNpZiBkZWZpbmVkIENPTkZJR19JMkNfTkZPUkNFMl9TNDk4NSB8fCBkZWZpbmVkIENPTkZJR19JMkNfTkZPUkNFMl9TNDk4NV9NT0RVTEUKK3N0cnVjdCBpMmNfYWRhcHRlciAqbmZvcmNlMl9zbWJ1czsKK0VYUE9SVF9TWU1CT0xfR1BMKG5mb3JjZTJfc21idXMpOworCitzdGF0aWMgdm9pZCBuZm9yY2UyX3NldF9yZWZlcmVuY2Uoc3RydWN0IGkyY19hZGFwdGVyICphZGFwKQoreworCW5mb3JjZTJfc21idXMgPSBhZGFwOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBuZm9yY2UyX3NldF9yZWZlcmVuY2Uoc3RydWN0IGkyY19hZGFwdGVyICphZGFwKSB7IH0KKyNlbmRpZgorCiBzdGF0aWMgdm9pZCBuZm9yY2UyX2Fib3J0KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCkKIHsKIAlzdHJ1Y3QgbmZvcmNlMl9zbWJ1cyAqc21idXMgPSBhZGFwLT5hbGdvX2RhdGE7CkBAIC0xNTgsMTYgKzE3MywxNiBAQAogCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJTTUJ1cyBUaW1lb3V0IVxuIik7CiAJCWlmIChzbWJ1cy0+Y2FuX2Fib3J0KQogCQkJbmZvcmNlMl9hYm9ydChhZGFwKTsKLQkJcmV0dXJuIC0xOworCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAl9CiAJaWYgKCEodGVtcCAmIE5WSURJQV9TTUJfU1RTX0RPTkUpIHx8ICh0ZW1wICYgTlZJRElBX1NNQl9TVFNfU1RBVFVTKSkgewogCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJUcmFuc2FjdGlvbiBmYWlsZWQgKDB4JTAyeCkhXG4iLCB0ZW1wKTsKLQkJcmV0dXJuIC0xOworCQlyZXR1cm4gLUVJTzsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLS8qIFJldHVybiAtMSBvbiBlcnJvciAqLworLyogUmV0dXJuIG5lZ2F0aXZlIGVycm5vIG9uIGVycm9yICovCiBzdGF0aWMgczMyIG5mb3JjZTJfYWNjZXNzKHN0cnVjdCBpMmNfYWRhcHRlciAqIGFkYXAsIHUxNiBhZGRyLAogCQl1bnNpZ25lZCBzaG9ydCBmbGFncywgY2hhciByZWFkX3dyaXRlLAogCQl1OCBjb21tYW5kLCBpbnQgc2l6ZSwgdW5pb24gaTJjX3NtYnVzX2RhdGEgKiBkYXRhKQpAQCAtMTc1LDcgKzE5MCw3IEBACiAJc3RydWN0IG5mb3JjZTJfc21idXMgKnNtYnVzID0gYWRhcC0+YWxnb19kYXRhOwogCXVuc2lnbmVkIGNoYXIgcHJvdG9jb2wsIHBlYzsKIAl1OCBsZW47Ci0JaW50IGk7CisJaW50IGksIHN0YXR1czsKIAogCXByb3RvY29sID0gKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1JFQUQpID8gTlZJRElBX1NNQl9QUlRDTF9SRUFEIDoKIAkJTlZJRElBX1NNQl9QUlRDTF9XUklURTsKQEAgLTIxOSw3ICsyMzQsNyBAQAogCQkJCQkJIlRyYW5zYWN0aW9uIGZhaWxlZCAiCiAJCQkJCQkiKHJlcXVlc3RlZCBibG9jayBzaXplOiAlZClcbiIsCiAJCQkJCQlsZW4pOwotCQkJCQlyZXR1cm4gLTE7CisJCQkJCXJldHVybiAtRUlOVkFMOwogCQkJCX0KIAkJCQlvdXRiX3AobGVuLCBOVklESUFfU01CX0JDTlQpOwogCQkJCWZvciAoaSA9IDA7IGkgPCBJMkNfU01CVVNfQkxPQ0tfTUFYOyBpKyspCkBAIC0yMzEsMTQgKzI0NiwxNSBAQAogCiAJCWRlZmF1bHQ6CiAJCQlkZXZfZXJyKCZhZGFwLT5kZXYsICJVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiAlZFxuIiwgc2l6ZSk7Ci0JCQlyZXR1cm4gLTE7CisJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCiAJb3V0Yl9wKChhZGRyICYgMHg3ZikgPDwgMSwgTlZJRElBX1NNQl9BRERSKTsKIAlvdXRiX3AocHJvdG9jb2wsIE5WSURJQV9TTUJfUFJUQ0wpOwogCi0JaWYgKG5mb3JjZTJfY2hlY2tfc3RhdHVzKGFkYXApKQotCQlyZXR1cm4gLTE7CisJc3RhdHVzID0gbmZvcmNlMl9jaGVja19zdGF0dXMoYWRhcCk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKIAogCWlmIChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19XUklURSkKIAkJcmV0dXJuIDA7CkBAIC0yNjAsNyArMjc2LDcgQEAKIAkJCQlkZXZfZXJyKCZhZGFwLT5kZXYsICJUcmFuc2FjdGlvbiBmYWlsZWQgIgogCQkJCQkiKHJlY2VpdmVkIGJsb2NrIHNpemU6IDB4JTAyeClcbiIsCiAJCQkJCWxlbik7Ci0JCQkJcmV0dXJuIC0xOworCQkJCXJldHVybiAtRVBST1RPOwogCQkJfQogCQkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogCQkJCWRhdGEtPmJsb2NrW2krMV0gPSBpbmJfcChOVklESUFfU01CX0RBVEEgKyBpKTsKQEAgLTMyMSwyMSArMzM3LDI2IEBACiAJCSAgICAhPSBQQ0lCSU9TX1NVQ0NFU1NGVUwpIHsKIAkJCWRldl9lcnIoJmRldi0+ZGV2LCAiRXJyb3IgcmVhZGluZyBQQ0kgY29uZmlnIGZvciAlc1xuIiwKIAkJCQluYW1lKTsKLQkJCXJldHVybiAtMTsKKwkJCXJldHVybiAtRUlPOwogCQl9CiAKIAkJc21idXMtPmJhc2UgPSBpb2Jhc2UgJiBQQ0lfQkFTRV9BRERSRVNTX0lPX01BU0s7CiAJCXNtYnVzLT5zaXplID0gNjQ7CiAJfQogCisJZXJyb3IgPSBhY3BpX2NoZWNrX3JlZ2lvbihzbWJ1cy0+YmFzZSwgc21idXMtPnNpemUsCisJCQkJICBuZm9yY2UyX2RyaXZlci5uYW1lKTsKKwlpZiAoZXJyb3IpCisJCXJldHVybiAtMTsKKwogCWlmICghcmVxdWVzdF9yZWdpb24oc21idXMtPmJhc2UsIHNtYnVzLT5zaXplLCBuZm9yY2UyX2RyaXZlci5uYW1lKSkgewogCQlkZXZfZXJyKCZzbWJ1cy0+YWRhcHRlci5kZXYsICJFcnJvciByZXF1ZXN0aW5nIHJlZ2lvbiAlMDJ4IC4uICUwMlggZm9yICVzXG4iLAogCQkJc21idXMtPmJhc2UsIHNtYnVzLT5iYXNlK3NtYnVzLT5zaXplLTEsIG5hbWUpOwotCQlyZXR1cm4gLTE7CisJCXJldHVybiAtRUJVU1k7CiAJfQogCXNtYnVzLT5hZGFwdGVyLm93bmVyID0gVEhJU19NT0RVTEU7CiAJc21idXMtPmFkYXB0ZXIuaWQgPSBJMkNfSFdfU01CVVNfTkZPUkNFMjsKLQlzbWJ1cy0+YWRhcHRlci5jbGFzcyA9IEkyQ19DTEFTU19IV01PTjsKKwlzbWJ1cy0+YWRhcHRlci5jbGFzcyA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQ7CiAJc21idXMtPmFkYXB0ZXIuYWxnbyA9ICZzbWJ1c19hbGdvcml0aG07CiAJc21idXMtPmFkYXB0ZXIuYWxnb19kYXRhID0gc21idXM7CiAJc21idXMtPmFkYXB0ZXIuZGV2LnBhcmVudCA9ICZkZXYtPmRldjsKQEAgLTM0Niw3ICszNjcsNyBAQAogCWlmIChlcnJvcikgewogCQlkZXZfZXJyKCZzbWJ1cy0+YWRhcHRlci5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgYWRhcHRlci5cbiIpOwogCQlyZWxlYXNlX3JlZ2lvbihzbWJ1cy0+YmFzZSwgc21idXMtPnNpemUpOwotCQlyZXR1cm4gLTE7CisJCXJldHVybiBlcnJvcjsKIAl9CiAJZGV2X2luZm8oJnNtYnVzLT5hZGFwdGVyLmRldiwgIm5Gb3JjZTIgU01CdXMgYWRhcHRlciBhdCAlI3hcbiIsIHNtYnVzLT5iYXNlKTsKIAlyZXR1cm4gMDsKQEAgLTM5OCw2ICs0MTksNyBAQAogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKKwluZm9yY2UyX3NldF9yZWZlcmVuY2UoJnNtYnVzZXNbMF0uYWRhcHRlcik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTQwNiw2ICs0MjgsNyBAQAogewogCXN0cnVjdCBuZm9yY2UyX3NtYnVzICpzbWJ1c2VzID0gKHZvaWQqKSBwY2lfZ2V0X2RydmRhdGEoZGV2KTsKIAorCW5mb3JjZTJfc2V0X3JlZmVyZW5jZShOVUxMKTsKIAlpZiAoc21idXNlc1swXS5iYXNlKSB7CiAJCWkyY19kZWxfYWRhcHRlcigmc21idXNlc1swXS5hZGFwdGVyKTsKIAkJcmVsZWFzZV9yZWdpb24oc21idXNlc1swXS5iYXNlLCBzbWJ1c2VzWzBdLnNpemUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1vY29yZXMuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtb2NvcmVzLmMKaW5kZXggZjE0NTY5Mi4uZTUxOTNiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1vY29yZXMuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW9jb3Jlcy5jCkBAIC0yOSw2ICsyOSw3IEBACiAJaW50IHBvczsKIAlpbnQgbm1zZ3M7CiAJaW50IHN0YXRlOyAvKiBzZWUgU1RBVEVfICovCisJaW50IGNsb2NrX2toejsKIH07CiAKIC8qIHJlZ2lzdGVycyAqLwpAQCAtMTczLDggKzE3NCw3IEBACiAJCXJldHVybiAtRVRJTUVET1VUOwogfQogCi1zdGF0aWMgdm9pZCBvY29yZXNfaW5pdChzdHJ1Y3Qgb2NvcmVzX2kyYyAqaTJjLAotCQkJc3RydWN0IG9jb3Jlc19pMmNfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCitzdGF0aWMgdm9pZCBvY29yZXNfaW5pdChzdHJ1Y3Qgb2NvcmVzX2kyYyAqaTJjKQogewogCWludCBwcmVzY2FsZTsKIAl1OCBjdHJsID0gb2NfZ2V0cmVnKGkyYywgT0NJMkNfQ09OVFJPTCk7CkBAIC0xODIsNyArMTgyLDcgQEAKIAkvKiBtYWtlIHN1cmUgdGhlIGRldmljZSBpcyBkaXNhYmxlZCAqLwogCW9jX3NldHJlZyhpMmMsIE9DSTJDX0NPTlRST0wsIGN0cmwgJiB+KE9DSTJDX0NUUkxfRU58T0NJMkNfQ1RSTF9JRU4pKTsKIAotCXByZXNjYWxlID0gKHBkYXRhLT5jbG9ja19raHogLyAoNSoxMDApKSAtIDE7CisJcHJlc2NhbGUgPSAoaTJjLT5jbG9ja19raHogLyAoNSoxMDApKSAtIDE7CiAJb2Nfc2V0cmVnKGkyYywgT0NJMkNfUFJFTE9XLCBwcmVzY2FsZSAmIDB4ZmYpOwogCW9jX3NldHJlZyhpMmMsIE9DSTJDX1BSRUhJR0gsIHByZXNjYWxlID4+IDgpOwogCkBAIC0yMDUsNyArMjA1LDcgQEAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgb2NvcmVzX2FkYXB0ZXIgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5uYW1lCQk9ICJpMmMtb2NvcmVzIiwKLQkuY2xhc3MJCT0gSTJDX0NMQVNTX0hXTU9OLAorCS5jbGFzcwkJPSBJMkNfQ0xBU1NfSFdNT04gfCBJMkNfQ0xBU1NfU1BELAogCS5hbGdvCQk9ICZvY29yZXNfYWxnb3JpdGhtLAogfTsKIApAQCAtMjQ4LDcgKzI0OCw4IEBACiAJfQogCiAJaTJjLT5yZWdzdGVwID0gcGRhdGEtPnJlZ3N0ZXA7Ci0Jb2NvcmVzX2luaXQoaTJjLCBwZGF0YSk7CisJaTJjLT5jbG9ja19raHogPSBwZGF0YS0+Y2xvY2tfa2h6OworCW9jb3Jlc19pbml0KGkyYyk7CiAKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZpMmMtPndhaXQpOwogCXJldCA9IHJlcXVlc3RfaXJxKHJlczItPnN0YXJ0LCBvY29yZXNfaXNyLCAwLCBwZGV2LT5uYW1lLCBpMmMpOwpAQCAtMzEyLDEzICszMTMsNDAgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIENPTkZJR19QTQorc3RhdGljIGludCBvY29yZXNfaTJjX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBvY29yZXNfaTJjICppMmMgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwl1OCBjdHJsID0gb2NfZ2V0cmVnKGkyYywgT0NJMkNfQ09OVFJPTCk7CisKKwkvKiBtYWtlIHN1cmUgdGhlIGRldmljZSBpcyBkaXNhYmxlZCAqLworCW9jX3NldHJlZyhpMmMsIE9DSTJDX0NPTlRST0wsIGN0cmwgJiB+KE9DSTJDX0NUUkxfRU58T0NJMkNfQ1RSTF9JRU4pKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG9jb3Jlc19pMmNfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IG9jb3Jlc19pMmMgKmkyYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJb2NvcmVzX2luaXQoaTJjKTsKKworCXJldHVybiAwOworfQorI2Vsc2UKKyNkZWZpbmUgb2NvcmVzX2kyY19zdXNwZW5kCU5VTEwKKyNkZWZpbmUgb2NvcmVzX2kyY19yZXN1bWUJTlVMTAorI2VuZGlmCisKIC8qIHdvcmsgd2l0aCBob3RwbHVnIGFuZCBjb2xkcGx1ZyAqLwogTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpvY29yZXMtaTJjIik7CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG9jb3Jlc19pMmNfZHJpdmVyID0gewotCS5wcm9iZSAgPSBvY29yZXNfaTJjX3Byb2JlLAotCS5yZW1vdmUgPSBfX2RldmV4aXRfcChvY29yZXNfaTJjX3JlbW92ZSksCi0JLmRyaXZlciA9IHsKKwkucHJvYmUgICA9IG9jb3Jlc19pMmNfcHJvYmUsCisJLnJlbW92ZSAgPSBfX2RldmV4aXRfcChvY29yZXNfaTJjX3JlbW92ZSksCisJLnN1c3BlbmQgPSBvY29yZXNfaTJjX3N1c3BlbmQsCisJLnJlc3VtZSAgPSBvY29yZXNfaTJjX3Jlc3VtZSwKKwkuZHJpdmVyICA9IHsKIAkJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJCS5uYW1lID0gIm9jb3Jlcy1pMmMiLAogCX0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBhc2VtaS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1wYXNlbWkuYwppbmRleCAxNjAzYzgxLi5hZGYwZmJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBhc2VtaS5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcGFzZW1pLmMKQEAgLTM2NSw3ICszNjUsNyBAQAogCXNtYnVzLT5hZGFwdGVyLm93bmVyID0gVEhJU19NT0RVTEU7CiAJc25wcmludGYoc21idXMtPmFkYXB0ZXIubmFtZSwgc2l6ZW9mKHNtYnVzLT5hZGFwdGVyLm5hbWUpLAogCQkgIlBBIFNlbWkgU01CdXMgYWRhcHRlciBhdCAweCVseCIsIHNtYnVzLT5iYXNlKTsKLQlzbWJ1cy0+YWRhcHRlci5jbGFzcyA9IEkyQ19DTEFTU19IV01PTjsKKwlzbWJ1cy0+YWRhcHRlci5jbGFzcyA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQ7CiAJc21idXMtPmFkYXB0ZXIuYWxnbyA9ICZzbWJ1c19hbGdvcml0aG07CiAJc21idXMtPmFkYXB0ZXIuYWxnb19kYXRhID0gc21idXM7CiAJc21idXMtPmFkYXB0ZXIubnIgPSBQQ0lfRlVOQyhkZXYtPmRldmZuKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcGNhLXBsYXRmb3JtLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBjYS1wbGF0Zm9ybS5jCmluZGV4IDlkNzVmNTEuLjZiYjE1YWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcGNhLXBsYXRmb3JtLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1wY2EtcGxhdGZvcm0uYwpAQCAtMTYzLDcgKzE2Myw3IEBACiAKIAlpMmMtPnJlZ19iYXNlID0gaW9yZW1hcChyZXMtPnN0YXJ0LCByZXNfbGVuKHJlcykpOwogCWlmICghaTJjLT5yZWdfYmFzZSkgewotCQlyZXQgPSAtRUlPOworCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGVfcmVtYXA7CiAJfQogCWkyYy0+aW9fYmFzZSA9IHJlcy0+c3RhcnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBpaXg0LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBpaXg0LmMKaW5kZXggYWM5MTY1OS4uZWFhOWIzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1waWl4NC5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcGlpeDQuYwpAQCAtMSw2ICsxLDQgQEAKIC8qCi0gICAgcGlpeDQuYyAtIFBhcnQgb2YgbG1fc2Vuc29ycywgTGludXgga2VybmVsIG1vZHVsZXMgZm9yIGhhcmR3YXJlCi0gICAgICAgICAgICAgIG1vbml0b3JpbmcKICAgICBDb3B5cmlnaHQgKGMpIDE5OTggLSAyMDAyIEZyb2RvIExvb2lqYWFyZCA8ZnJvZG9sQGRkcy5ubD4gYW5kCiAgICAgUGhpbGlwIEVkZWxicm9jayA8cGhpbEBuZXRyb2VkZ2UuY29tPgogCkBAIC0zOSwxNiArMzcsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZG1pLmg+CisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAKLXN0cnVjdCBzZCB7Ci0JY29uc3QgdW5zaWduZWQgc2hvcnQgbWZyOwotCWNvbnN0IHVuc2lnbmVkIHNob3J0IGRldjsKLQljb25zdCB1bnNpZ25lZCBjaGFyIGZuOwotCWNvbnN0IGNoYXIgKm5hbWU7Ci19OwotCiAvKiBQSUlYNCBTTUJ1cyBhZGRyZXNzIG9mZnNldHMgKi8KICNkZWZpbmUgU01CSFNUU1RTCSgwICsgcGlpeDRfc21iYSkKICNkZWZpbmUgU01CSFNMVlNUUwkoMSArIHBpaXg0X3NtYmEpCkBAIC0xMDEsOCArOTMsNiBAQAogCQkgIkZvcmNpYmx5IGVuYWJsZSB0aGUgUElJWDQgYXQgdGhlIGdpdmVuIGFkZHJlc3MuICIKIAkJICJFWFRSRU1FTFkgREFOR0VST1VTISIpOwogCi1zdGF0aWMgaW50IHBpaXg0X3RyYW5zYWN0aW9uKHZvaWQpOwotCiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgcGlpeDRfc21iYTsKIHN0YXRpYyBpbnQgc3J2cndvcmtzX2NzYjVfZGVsYXk7CiBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgcGlpeDRfZHJpdmVyOwpAQCAtMTQxLDggKzEzMSw2IEBACiB7CiAJdW5zaWduZWQgY2hhciB0ZW1wOwogCi0JZGV2X2luZm8oJlBJSVg0X2Rldi0+ZGV2LCAiRm91bmQgJXMgZGV2aWNlXG4iLCBwY2lfbmFtZShQSUlYNF9kZXYpKTsKLQogCWlmICgoUElJWDRfZGV2LT52ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9TRVJWRVJXT1JLUykgJiYKIAkgICAgKFBJSVg0X2Rldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfU0VSVkVSV09SS1NfQ1NCNSkpCiAJCXNydnJ3b3Jrc19jc2I1X2RlbGF5ID0gMTsKQEAgLTE3MiwxNyArMTYwLDIwIEBACiAJCXBjaV9yZWFkX2NvbmZpZ193b3JkKFBJSVg0X2RldiwgU01CQkEsICZwaWl4NF9zbWJhKTsKIAkJcGlpeDRfc21iYSAmPSAweGZmZjA7CiAJCWlmKHBpaXg0X3NtYmEgPT0gMCkgewotCQkJZGV2X2VycigmUElJWDRfZGV2LT5kZXYsICJTTUIgYmFzZSBhZGRyZXNzICIKKwkJCWRldl9lcnIoJlBJSVg0X2Rldi0+ZGV2LCAiU01CdXMgYmFzZSBhZGRyZXNzICIKIAkJCQkidW5pbml0aWFsaXplZCAtIHVwZ3JhZGUgQklPUyBvciB1c2UgIgogCQkJCSJmb3JjZV9hZGRyPTB4YWRkclxuIik7CiAJCQlyZXR1cm4gLUVOT0RFVjsKIAkJfQogCX0KIAorCWlmIChhY3BpX2NoZWNrX3JlZ2lvbihwaWl4NF9zbWJhLCBTTUJJT1NJWkUsIHBpaXg0X2RyaXZlci5uYW1lKSkKKwkJcmV0dXJuIC1FQlVTWTsKKwogCWlmICghcmVxdWVzdF9yZWdpb24ocGlpeDRfc21iYSwgU01CSU9TSVpFLCBwaWl4NF9kcml2ZXIubmFtZSkpIHsKLQkJZGV2X2VycigmUElJWDRfZGV2LT5kZXYsICJTTUIgcmVnaW9uIDB4JXggYWxyZWFkeSBpbiB1c2UhXG4iLAorCQlkZXZfZXJyKCZQSUlYNF9kZXYtPmRldiwgIlNNQnVzIHJlZ2lvbiAweCV4IGFscmVhZHkgaW4gdXNlIVxuIiwKIAkJCXBpaXg0X3NtYmEpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKIAlwY2lfcmVhZF9jb25maWdfYnl0ZShQSUlYNF9kZXYsIFNNQkhTVENGRywgJnRlbXApOwpAQCAtMjI4LDEzICsyMTksMTMgQEAKIAkJCSIob3IgY29kZSBvdXQgb2YgZGF0ZSkhXG4iKTsKIAogCXBjaV9yZWFkX2NvbmZpZ19ieXRlKFBJSVg0X2RldiwgU01CUkVWLCAmdGVtcCk7Ci0JZGV2X2RiZygmUElJWDRfZGV2LT5kZXYsICJTTUJSRVYgPSAweCVYXG4iLCB0ZW1wKTsKLQlkZXZfZGJnKCZQSUlYNF9kZXYtPmRldiwgIlNNQkEgPSAweCVYXG4iLCBwaWl4NF9zbWJhKTsKKwlkZXZfaW5mbygmUElJWDRfZGV2LT5kZXYsCisJCSAiU01CdXMgSG9zdCBDb250cm9sbGVyIGF0IDB4JXgsIHJldmlzaW9uICVkXG4iLAorCQkgcGlpeDRfc21iYSwgdGVtcCk7CiAKIAlyZXR1cm4gMDsKIH0KIAotLyogQW5vdGhlciBpbnRlcm5hbGx5IHVzZWQgZnVuY3Rpb24gKi8KIHN0YXRpYyBpbnQgcGlpeDRfdHJhbnNhY3Rpb24odm9pZCkKIHsKIAlpbnQgdGVtcDsKQEAgLTI1Myw3ICsyNDQsNyBAQAogCQlvdXRiX3AodGVtcCwgU01CSFNUU1RTKTsKIAkJaWYgKCh0ZW1wID0gaW5iX3AoU01CSFNUU1RTKSkgIT0gMHgwMCkgewogCQkJZGV2X2VycigmcGlpeDRfYWRhcHRlci5kZXYsICJGYWlsZWQhICglMDJ4KVxuIiwgdGVtcCk7Ci0JCQlyZXR1cm4gLTE7CisJCQlyZXR1cm4gLUVCVVNZOwogCQl9IGVsc2UgewogCQkJZGV2X2RiZygmcGlpeDRfYWRhcHRlci5kZXYsICJTdWNjZXNzZnVsIVxuIik7CiAJCX0KQEAgLTI3NSwyMyArMjY2LDIzIEBACiAJLyogSWYgdGhlIFNNQnVzIGlzIHN0aWxsIGJ1c3ksIHdlIGdpdmUgdXAgKi8KIAlpZiAodGltZW91dCA+PSBNQVhfVElNRU9VVCkgewogCQlkZXZfZXJyKCZwaWl4NF9hZGFwdGVyLmRldiwgIlNNQnVzIFRpbWVvdXQhXG4iKTsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FVElNRURPVVQ7CiAJfQogCiAJaWYgKHRlbXAgJiAweDEwKSB7Ci0JCXJlc3VsdCA9IC0xOworCQlyZXN1bHQgPSAtRUlPOwogCQlkZXZfZXJyKCZwaWl4NF9hZGFwdGVyLmRldiwgIkVycm9yOiBGYWlsZWQgYnVzIHRyYW5zYWN0aW9uXG4iKTsKIAl9CiAKIAlpZiAodGVtcCAmIDB4MDgpIHsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FSU87CiAJCWRldl9kYmcoJnBpaXg0X2FkYXB0ZXIuZGV2LCAiQnVzIGNvbGxpc2lvbiEgU01CdXMgbWF5IGJlICIKIAkJCSJsb2NrZWQgdW50aWwgbmV4dCBoYXJkIHJlc2V0LiAoc29ycnkhKVxuIik7CiAJCS8qIENsb2NrIHN0b3BzIGFuZCBzbGF2ZSBpcyBzdHVjayBpbiBtaWQtdHJhbnNtaXNzaW9uICovCiAJfQogCiAJaWYgKHRlbXAgJiAweDA0KSB7Ci0JCXJlc3VsdCA9IC0xOworCQlyZXN1bHQgPSAtRU5YSU87CiAJCWRldl9kYmcoJnBpaXg0X2FkYXB0ZXIuZGV2LCAiRXJyb3I6IG5vIHJlc3BvbnNlIVxuIik7CiAJfQogCkBAIC0zMDksMzEgKzMwMCwyOSBAQAogCXJldHVybiByZXN1bHQ7CiB9CiAKLS8qIFJldHVybiAtMSBvbiBlcnJvci4gKi8KKy8qIFJldHVybiBuZWdhdGl2ZSBlcnJubyBvbiBlcnJvci4gKi8KIHN0YXRpYyBzMzIgcGlpeDRfYWNjZXNzKHN0cnVjdCBpMmNfYWRhcHRlciAqIGFkYXAsIHUxNiBhZGRyLAogCQkgdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwKIAkJIHU4IGNvbW1hbmQsIGludCBzaXplLCB1bmlvbiBpMmNfc21idXNfZGF0YSAqIGRhdGEpCiB7CiAJaW50IGksIGxlbjsKKwlpbnQgc3RhdHVzOwogCiAJc3dpdGNoIChzaXplKSB7Ci0JY2FzZSBJMkNfU01CVVNfUFJPQ19DQUxMOgotCQlkZXZfZXJyKCZhZGFwLT5kZXYsICJJMkNfU01CVVNfUFJPQ19DQUxMIG5vdCBzdXBwb3J0ZWQhXG4iKTsKLQkJcmV0dXJuIC0xOwogCWNhc2UgSTJDX1NNQlVTX1FVSUNLOgotCQlvdXRiX3AoKChhZGRyICYgMHg3ZikgPDwgMSkgfCAocmVhZF93cml0ZSAmIDB4MDEpLAorCQlvdXRiX3AoKGFkZHIgPDwgMSkgfCByZWFkX3dyaXRlLAogCQkgICAgICAgU01CSFNUQUREKTsKIAkJc2l6ZSA9IFBJSVg0X1FVSUNLOwogCQlicmVhazsKIAljYXNlIEkyQ19TTUJVU19CWVRFOgotCQlvdXRiX3AoKChhZGRyICYgMHg3ZikgPDwgMSkgfCAocmVhZF93cml0ZSAmIDB4MDEpLAorCQlvdXRiX3AoKGFkZHIgPDwgMSkgfCByZWFkX3dyaXRlLAogCQkgICAgICAgU01CSFNUQUREKTsKIAkJaWYgKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFKQogCQkJb3V0Yl9wKGNvbW1hbmQsIFNNQkhTVENNRCk7CiAJCXNpemUgPSBQSUlYNF9CWVRFOwogCQlicmVhazsKIAljYXNlIEkyQ19TTUJVU19CWVRFX0RBVEE6Ci0JCW91dGJfcCgoKGFkZHIgJiAweDdmKSA8PCAxKSB8IChyZWFkX3dyaXRlICYgMHgwMSksCisJCW91dGJfcCgoYWRkciA8PCAxKSB8IHJlYWRfd3JpdGUsCiAJCSAgICAgICBTTUJIU1RBREQpOwogCQlvdXRiX3AoY29tbWFuZCwgU01CSFNUQ01EKTsKIAkJaWYgKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFKQpAQCAtMzQxLDcgKzMzMCw3IEBACiAJCXNpemUgPSBQSUlYNF9CWVRFX0RBVEE7CiAJCWJyZWFrOwogCWNhc2UgSTJDX1NNQlVTX1dPUkRfREFUQToKLQkJb3V0Yl9wKCgoYWRkciAmIDB4N2YpIDw8IDEpIHwgKHJlYWRfd3JpdGUgJiAweDAxKSwKKwkJb3V0Yl9wKChhZGRyIDw8IDEpIHwgcmVhZF93cml0ZSwKIAkJICAgICAgIFNNQkhTVEFERCk7CiAJCW91dGJfcChjb21tYW5kLCBTTUJIU1RDTUQpOwogCQlpZiAocmVhZF93cml0ZSA9PSBJMkNfU01CVVNfV1JJVEUpIHsKQEAgLTM1MSwxNSArMzQwLDEzIEBACiAJCXNpemUgPSBQSUlYNF9XT1JEX0RBVEE7CiAJCWJyZWFrOwogCWNhc2UgSTJDX1NNQlVTX0JMT0NLX0RBVEE6Ci0JCW91dGJfcCgoKGFkZHIgJiAweDdmKSA8PCAxKSB8IChyZWFkX3dyaXRlICYgMHgwMSksCisJCW91dGJfcCgoYWRkciA8PCAxKSB8IHJlYWRfd3JpdGUsCiAJCSAgICAgICBTTUJIU1RBREQpOwogCQlvdXRiX3AoY29tbWFuZCwgU01CSFNUQ01EKTsKIAkJaWYgKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFKSB7CiAJCQlsZW4gPSBkYXRhLT5ibG9ja1swXTsKLQkJCWlmIChsZW4gPCAwKQotCQkJCWxlbiA9IDA7Ci0JCQlpZiAobGVuID4gMzIpCi0JCQkJbGVuID0gMzI7CisJCQlpZiAobGVuID09IDAgfHwgbGVuID4gSTJDX1NNQlVTX0JMT0NLX01BWCkKKwkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCW91dGJfcChsZW4sIFNNQkhTVERBVDApOwogCQkJaSA9IGluYl9wKFNNQkhTVENOVCk7CS8qIFJlc2V0IFNNQkJMS0RBVCAqLwogCQkJZm9yIChpID0gMTsgaSA8PSBsZW47IGkrKykKQEAgLTM2NywxMiArMzU0LDE2IEBACiAJCX0KIAkJc2l6ZSA9IFBJSVg0X0JMT0NLX0RBVEE7CiAJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl93YXJuKCZhZGFwLT5kZXYsICJVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiAlZFxuIiwgc2l6ZSk7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKIAlvdXRiX3AoKHNpemUgJiAweDFDKSArIChFTkFCTEVfSU5UOSAmIDEpLCBTTUJIU1RDTlQpOwogCi0JaWYgKHBpaXg0X3RyYW5zYWN0aW9uKCkpCS8qIEVycm9yIGluIHRyYW5zYWN0aW9uICovCi0JCXJldHVybiAtMTsKKwlzdGF0dXMgPSBwaWl4NF90cmFuc2FjdGlvbigpOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CiAKIAlpZiAoKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFKSB8fCAoc2l6ZSA9PSBQSUlYNF9RVUlDSykpCiAJCXJldHVybiAwOwpAQCAtMzg4LDYgKzM3OSw4IEBACiAJCWJyZWFrOwogCWNhc2UgUElJWDRfQkxPQ0tfREFUQToKIAkJZGF0YS0+YmxvY2tbMF0gPSBpbmJfcChTTUJIU1REQVQwKTsKKwkJaWYgKGRhdGEtPmJsb2NrWzBdID09IDAgfHwgZGF0YS0+YmxvY2tbMF0gPiBJMkNfU01CVVNfQkxPQ0tfTUFYKQorCQkJcmV0dXJuIC1FUFJPVE87CiAJCWkgPSBpbmJfcChTTUJIU1RDTlQpOwkvKiBSZXNldCBTTUJCTEtEQVQgKi8KIAkJZm9yIChpID0gMTsgaSA8PSBkYXRhLT5ibG9ja1swXTsgaSsrKQogCQkJZGF0YS0+YmxvY2tbaV0gPSBpbmJfcChTTUJCTEtEQVQpOwpAQCAtNDExLDcgKzQwNCw3IEBACiBzdGF0aWMgc3RydWN0IGkyY19hZGFwdGVyIHBpaXg0X2FkYXB0ZXIgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5pZAkJPSBJMkNfSFdfU01CVVNfUElJWDQsCi0JLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiwKKwkuY2xhc3MJCT0gSTJDX0NMQVNTX0hXTU9OIHwgSTJDX0NMQVNTX1NQRCwKIAkuYWxnbwkJPSAmc21idXNfYWxnb3JpdGhtLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1wbWNtc3AuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcG1jbXNwLmMKaW5kZXggNjNiM2UyYy4uZGNmMjA0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1wbWNtc3AuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBtY21zcC5jCkBAIC02MjIsNyArNjIyLDcgQEAKIAogc3RhdGljIHN0cnVjdCBpMmNfYWRhcHRlciBwbWNtc3B0d2lfYWRhcHRlciA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCi0JLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiwKKwkuY2xhc3MJCT0gSTJDX0NMQVNTX0hXTU9OIHwgSTJDX0NMQVNTX1NQRCwKIAkuYWxnbwkJPSAmcG1jbXNwdHdpX2FsZ28sCiAJLm5hbWUJCT0gRFJWX05BTUUsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1wcm9zYXZhZ2UuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHJvc2F2YWdlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3YzFmMWUuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1wcm9zYXZhZ2UuYworKysgL2Rldi9udWxsCkBAIC0xLDMyNSArMCwwIEBACi0vKgotICogICAga2VybmVsL2J1c3Nlcy9pMmMtcHJvc2F2YWdlLmMKLSAqCi0gKiAgICBpMmMgYnVzIGRyaXZlciBmb3IgUzMvVklBIDgzNjUvODM3NSBncmFwaGljcyBwcm9jZXNzb3IuCi0gKiAgICBDb3B5cmlnaHQgKGMpIDIwMDMgSGVuayBWZXJnb25ldCA8aGVua0Bnb2QuZHluZG5zLm9yZz4KLSAqICAgIEJhc2VkIG9uIGNvZGUgd3JpdHRlbiBieToKLSAqCUZyb2RvIExvb2lqYWFyZCA8ZnJvZG9sQGRkcy5ubD4sCi0gKglQaGlsaXAgRWRlbGJyb2NrIDxwaGlsQG5ldHJvZWRnZS5jb20+LAotICoJUmFscGggTWV0emxlciA8cmprbUB0aHAudW5pLWtvZWxuLmRlPiwgYW5kCi0gKglNYXJrIEQuIFN0dWRlYmFrZXIgPG1kc3h5ejEyM0B5YWhvby5jb20+Ci0gKglTaW1vbiBWb2dsCi0gKglhbmQgb3RoZXJzCi0gKgotICogICAgUGxlYXNlIHJlYWQgdGhlIGxtX3NlbnNvcnMgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscyBvbiB1c2UuCi0gKgotICogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCi0gKgotICovCi0vKiAgMTgtMDUtMjAwMyBIVkUgLSBjcmVhdGVkCi0gKiAgMTQtMDYtMjAwMyBIVkUgLSBhZGFwdGVkIGZvciBsbV9zZW5zb3JzMgotICogIDE3LTA2LTIwMDMgSFZFIC0gbGludXggMi41Lnh4IGNvbXBhdGlibGUKLSAqICAxOC0wNi0yMDAzIEhWRSAtIGNvZGluZ3N0eWxlCi0gKiAgMjEtMDYtMjAwMyBIVkUgLSBjb21wYXRpYmlsaXR5IGxtX3NlbnNvcnMyIGFuZCBsaW51eCAyLjUueHgKLSAqCQkgICAgIGNvZGluZ3N0eWxlLCBtbWlvIGVuYWJsZWQKLSAqCi0gKiAgVGhpcyBkcml2ZXIgaW50ZXJmYWNlcyB0byB0aGUgSTJDIGJ1cyBvZiB0aGUgVklBIG5vcnRoIGJyaWRnZSBlbWJlZGRlZAotICogIFByb1NhdmFnZTQvOCBkZXZpY2VzLiBVc2VmdWxsIGZvciBnYWluaW5nIGFjY2VzcyB0byB0aGUgVFYgRW5jb2RlciBjaGlwcy4KLSAqCi0gKiAgR3JhcGhpY3MgY29yZXM6Ci0gKiAgIFMzL1ZJQSBLTTI2Ni9WVDgzNzUgYWthIFByb1NhdmFnZTgKLSAqICAgUzMvVklBIEtNMTMzL1ZUODM2NSBha2EgU2F2YWdlNAotICoKLSAqICBUd28gc2VyaWFsIGJ1c3NlcyBhcmUgaW1wbGVtZW50ZWQ6Ci0gKiAgIFNFUklBTDEgLSBJMkMgc2VyaWFsIGNvbW11bmljYXRpb25zIGludGVyZmFjZQotICogICBTRVJJQUwyIC0gRERDMiBtb25pdG9yIGNvbW11bmljYXRpb25zIGludGVyZmFjZQotICoKLSAqICBUZXN0ZWQgb24gYSBGWDQxIG1haW5ib2FyZCwgc2VlIGh0dHA6Ly93d3cuc2h1dHRsZS5jb20KLSAqIAotICoKLSAqICBUT0RPOgotICogIC0gaW50ZWdyYXRpb24gd2l0aCBwcm9zYXZhZ2UgZnJhbWVidWZmZXIgZGV2aWNlCi0gKiAgICAoQWRkaXRpb25hbCBkb2N1bWVudGF0aW9uIG5lZWRlZCA6KAotICovCi0KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvaTJjLmg+Ci0jaW5jbHVkZSA8bGludXgvaTJjLWFsZ28tYml0Lmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0KLS8qCi0gKiBkcml2ZXIgY29uZmlndXJhdGlvbgotICovCi0jZGVmaW5lIE1BWF9CVVNTRVMJMgotCi1zdHJ1Y3Qgc19pMmNfYnVzIHsKLQl2b2lkIF9faW9tZW0gKm1tdmdhOwotCWludAlpMmNfcmVnOwotCWludAlhZGFwX29rOwotCXN0cnVjdCBpMmNfYWRhcHRlcgkJYWRhcDsKLQlzdHJ1Y3QgaTJjX2FsZ29fYml0X2RhdGEJYWxnbzsKLX07Ci0KLXN0cnVjdCBzX2kyY19jaGlwIHsKLQl2b2lkIF9faW9tZW0gKm1taW87Ci0Jc3RydWN0IHNfaTJjX2J1cwlpMmNfYnVzW01BWF9CVVNTRVNdOwotfTsKLQotCi0vKgotICogaTJjIGNvbmZpZ3VyYXRpb24KLSAqLwotI2RlZmluZSBDWUNMRV9ERUxBWQkxMAotI2RlZmluZSBUSU1FT1VUCQkoSFogLyAyKQotCi0KLS8qIAotICogUzMvVklBIDgzNjUvODM3NSByZWdpc3RlcnMKLSAqLwotI2RlZmluZSBWR0FfQ1JfSVgJMHgzZDQKLSNkZWZpbmUgVkdBX0NSX0RBVEEJMHgzZDUKLQotI2RlZmluZSBDUl9TRVJJQUwxCTB4YTAJLyogSTJDIHNlcmlhbCBjb21tdW5pY2F0aW9ucyBpbnRlcmZhY2UgKi8KLSNkZWZpbmUgTU1fU0VSSUFMMQkweGZmMjAKLSNkZWZpbmUgQ1JfU0VSSUFMMgkweGIxCS8qIEREQzIgbW9uaXRvciBjb21tdW5pY2F0aW9ucyBpbnRlcmZhY2UgKi8KLQotLyogYmFzZWQgb24gdnQ4MzY1IGRvY3VtZW50YXRpb24gKi8KLSNkZWZpbmUgSTJDX0VOQUIJMHgxMAotI2RlZmluZSBJMkNfU0NMX09VVAkweDAxCi0jZGVmaW5lIEkyQ19TREFfT1VUCTB4MDIKLSNkZWZpbmUgSTJDX1NDTF9JTgkweDA0Ci0jZGVmaW5lIEkyQ19TREFfSU4JMHgwOAotCi0jZGVmaW5lIFNFVF9DUl9JWChwLCB2YWwpCXdyaXRlYigodmFsKSwgKHApLT5tbXZnYSArIFZHQV9DUl9JWCkKLSNkZWZpbmUgU0VUX0NSX0RBVEEocCwgdmFsKQl3cml0ZWIoKHZhbCksIChwKS0+bW12Z2EgKyBWR0FfQ1JfREFUQSkKLSNkZWZpbmUgR0VUX0NSX0RBVEEocCkJCXJlYWRiKChwKS0+bW12Z2EgKyBWR0FfQ1JfREFUQSkKLQotCi0vKgotICogU2VyaWFsIGJ1cyBsaW5lIGhhbmRsaW5nCi0gKgotICogc2VyaWFsIGNvbW11bmljYXRpb25zIHJlZ2lzdGVyIGFzIHBhcmFtZXRlciBpbiBwcml2YXRlIGRhdGEKLSAqCi0gKiBUT0RPOiBsb2NrcyB3aXRoIG90aGVyIGNvZGUgc2VjdGlvbnMgYWNjZXNzaW5nIHZpZGVvIHJlZ2lzdGVycz8KLSAqLwotc3RhdGljIHZvaWQgYml0X3MzdmlhX3NldHNjbCh2b2lkICpidXMsIGludCB2YWwpCi17Ci0Jc3RydWN0IHNfaTJjX2J1cyAqcCA9IChzdHJ1Y3Qgc19pMmNfYnVzICopYnVzOwotCXVuc2lnbmVkIGludCByOwotCi0JU0VUX0NSX0lYKHAsIHAtPmkyY19yZWcpOwotCXIgPSBHRVRfQ1JfREFUQShwKTsKLQlyIHw9IEkyQ19FTkFCOwotCWlmICh2YWwpIHsKLQkJciB8PSBJMkNfU0NMX09VVDsKLQl9IGVsc2UgewotCQlyICY9IH5JMkNfU0NMX09VVDsKLQl9Ci0JU0VUX0NSX0RBVEEocCwgcik7Ci19Ci0KLXN0YXRpYyB2b2lkIGJpdF9zM3ZpYV9zZXRzZGEodm9pZCAqYnVzLCBpbnQgdmFsKQotewotCXN0cnVjdCBzX2kyY19idXMgKnAgPSAoc3RydWN0IHNfaTJjX2J1cyAqKWJ1czsKLQl1bnNpZ25lZCBpbnQgcjsKLQkKLQlTRVRfQ1JfSVgocCwgcC0+aTJjX3JlZyk7Ci0JciA9IEdFVF9DUl9EQVRBKHApOwotCXIgfD0gSTJDX0VOQUI7Ci0JaWYgKHZhbCkgewotCQlyIHw9IEkyQ19TREFfT1VUOwotCX0gZWxzZSB7Ci0JCXIgJj0gfkkyQ19TREFfT1VUOwotCX0KLQlTRVRfQ1JfREFUQShwLCByKTsKLX0KLQotc3RhdGljIGludCBiaXRfczN2aWFfZ2V0c2NsKHZvaWQgKmJ1cykKLXsKLQlzdHJ1Y3Qgc19pMmNfYnVzICpwID0gKHN0cnVjdCBzX2kyY19idXMgKilidXM7Ci0KLQlTRVRfQ1JfSVgocCwgcC0+aTJjX3JlZyk7Ci0JcmV0dXJuICgwICE9IChHRVRfQ1JfREFUQShwKSAmIEkyQ19TQ0xfSU4pKTsKLX0KLQotc3RhdGljIGludCBiaXRfczN2aWFfZ2V0c2RhKHZvaWQgKmJ1cykKLXsKLQlzdHJ1Y3Qgc19pMmNfYnVzICpwID0gKHN0cnVjdCBzX2kyY19idXMgKilidXM7Ci0KLQlTRVRfQ1JfSVgocCwgcC0+aTJjX3JlZyk7Ci0JcmV0dXJuICgwICE9IChHRVRfQ1JfREFUQShwKSAmIEkyQ19TREFfSU4pKTsKLX0KLQotCi0vKgotICogYWRhcHRlciBpbml0aWFsaXNhdGlvbgotICovCi1zdGF0aWMgaW50IGkyY19yZWdpc3Rlcl9idXMoc3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IHNfaTJjX2J1cyAqcCwgdm9pZCBfX2lvbWVtICptbXZnYSwgdTMyIGkyY19yZWcpCi17Ci0JaW50IHJldDsKLQlwLT5hZGFwLm93bmVyCSAgPSBUSElTX01PRFVMRTsKLQlwLT5hZGFwLmlkCSAgPSBJMkNfSFdfQl9TM1ZJQTsKLQlwLT5hZGFwLmFsZ29fZGF0YSA9ICZwLT5hbGdvOwotCXAtPmFkYXAuZGV2LnBhcmVudCA9ICZkZXYtPmRldjsKLQlwLT5hbGdvLnNldHNkYQkgID0gYml0X3MzdmlhX3NldHNkYTsKLQlwLT5hbGdvLnNldHNjbAkgID0gYml0X3MzdmlhX3NldHNjbDsKLQlwLT5hbGdvLmdldHNkYQkgID0gYml0X3MzdmlhX2dldHNkYTsKLQlwLT5hbGdvLmdldHNjbAkgID0gYml0X3MzdmlhX2dldHNjbDsKLQlwLT5hbGdvLnVkZWxheQkgID0gQ1lDTEVfREVMQVk7Ci0JcC0+YWxnby50aW1lb3V0CSAgPSBUSU1FT1VUOwotCXAtPmFsZ28uZGF0YQkgID0gcDsKLQlwLT5tbXZnYQkgID0gbW12Z2E7Ci0JcC0+aTJjX3JlZwkgID0gaTJjX3JlZzsKLSAgICAKLQlyZXQgPSBpMmNfYml0X2FkZF9idXMoJnAtPmFkYXApOwotCWlmIChyZXQpIHsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlwLT5hZGFwX29rID0gMTsKLQlyZXR1cm4gMDsKLX0KLQotCi0vKgotICogQ2xlYW51cCBzdHVmZgotICovCi1zdGF0aWMgdm9pZCBwcm9zYXZhZ2VfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCi17Ci0Jc3RydWN0IHNfaTJjX2NoaXAgKmNoaXA7Ci0JaW50IGksIHJldDsKLQotCWNoaXAgPSAoc3RydWN0IHNfaTJjX2NoaXAgKilwY2lfZ2V0X2RydmRhdGEoZGV2KTsKLQotCWlmICghY2hpcCkgewotCQlyZXR1cm47Ci0JfQotCWZvciAoaSA9IE1BWF9CVVNTRVMgLSAxOyBpID49IDA7IGktLSkgewotCQlpZiAoY2hpcC0+aTJjX2J1c1tpXS5hZGFwX29rID09IDApCi0JCQljb250aW51ZTsKLQotCQlyZXQgPSBpMmNfZGVsX2FkYXB0ZXIoJmNoaXAtPmkyY19idXNbaV0uYWRhcCk7Ci0JICAgICAgICBpZiAocmV0KSB7Ci0JCQlkZXZfZXJyKCZkZXYtPmRldiwgIiVzIG5vdCByZW1vdmVkXG4iLAotCQkJCWNoaXAtPmkyY19idXNbaV0uYWRhcC5uYW1lKTsKLQkJfQotCX0KLQlpZiAoY2hpcC0+bW1pbykgewotCQlpb3VubWFwKGNoaXAtPm1taW8pOwotCX0KLQlrZnJlZShjaGlwKTsKLX0KLQotCi0vKgotICogRGV0ZWN0IGNoaXAgYW5kIGluaXRpYWxpemUgaXQKLSAqLwotc3RhdGljIGludCBfX2RldmluaXQgcHJvc2F2YWdlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKLXsKLQlpbnQgcmV0OwotCXVuc2lnbmVkIGxvbmcgYmFzZSwgbGVuOwotCXN0cnVjdCBzX2kyY19jaGlwICpjaGlwOwotCXN0cnVjdCBzX2kyY19idXMgICpidXM7Ci0KLQlwY2lfc2V0X2RydmRhdGEoZGV2LCBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc19pMmNfY2hpcCksIEdGUF9LRVJORUwpKTsKLQljaGlwID0gKHN0cnVjdCBzX2kyY19jaGlwICopcGNpX2dldF9kcnZkYXRhKGRldik7Ci0JaWYgKGNoaXAgPT0gTlVMTCkgewotCQlyZXR1cm4gLUVOT01FTTsKLQl9Ci0KLQliYXNlID0gZGV2LT5yZXNvdXJjZVswXS5zdGFydCAmIFBDSV9CQVNFX0FERFJFU1NfTUVNX01BU0s7Ci0JbGVuICA9IGRldi0+cmVzb3VyY2VbMF0uZW5kIC0gYmFzZSArIDE7Ci0JY2hpcC0+bW1pbyA9IGlvcmVtYXBfbm9jYWNoZShiYXNlLCBsZW4pOwotCi0JaWYgKGNoaXAtPm1taW8gPT0gTlVMTCkgewotCQlkZXZfZXJyKCZkZXYtPmRldiwgImlvcmVtYXAgZmFpbGVkXG4iKTsKLQkJcHJvc2F2YWdlX3JlbW92ZShkZXYpOwotCQlyZXR1cm4gLUVOT0RFVjsKLQl9Ci0KLQotCS8qCi0JICogQ2hpcCBpbml0aWFsaXNhdGlvbgotCSAqLwotCS8qIFVubG9jayBFeHRlbmRlZCBJTyBTcGFjZSA/Pz8gKi8KLQotCi0JLyoKLQkgKiBpMmMgYnVzIHJlZ2lzdHJhdGlvbgotCSAqLwotCWJ1cyA9ICZjaGlwLT5pMmNfYnVzWzBdOwotCXNucHJpbnRmKGJ1cy0+YWRhcC5uYW1lLCBzaXplb2YoYnVzLT5hZGFwLm5hbWUpLAotCQkiUHJvU2F2YWdlIEkyQyBidXMgYXQgJTAyeDolMDJ4LiV4IiwKLQkJZGV2LT5idXMtPm51bWJlciwgUENJX1NMT1QoZGV2LT5kZXZmbiksIFBDSV9GVU5DKGRldi0+ZGV2Zm4pKTsKLQlyZXQgPSBpMmNfcmVnaXN0ZXJfYnVzKGRldiwgYnVzLCBjaGlwLT5tbWlvICsgMHg4MDAwLCBDUl9TRVJJQUwxKTsKLQlpZiAocmV0KSB7Ci0JCWdvdG8gZXJyX2FkYXA7Ci0JfQotCS8qCi0JICogZGRjIGJ1cyByZWdpc3RyYXRpb24KLQkgKi8KLQlidXMgPSAmY2hpcC0+aTJjX2J1c1sxXTsKLQlzbnByaW50ZihidXMtPmFkYXAubmFtZSwgc2l6ZW9mKGJ1cy0+YWRhcC5uYW1lKSwKLQkJIlByb1NhdmFnZSBEREMgYnVzIGF0ICUwMng6JTAyeC4leCIsCi0JCWRldi0+YnVzLT5udW1iZXIsIFBDSV9TTE9UKGRldi0+ZGV2Zm4pLCBQQ0lfRlVOQyhkZXYtPmRldmZuKSk7Ci0JcmV0ID0gaTJjX3JlZ2lzdGVyX2J1cyhkZXYsIGJ1cywgY2hpcC0+bW1pbyArIDB4ODAwMCwgQ1JfU0VSSUFMMik7Ci0JaWYgKHJldCkgewotCQlnb3RvIGVycl9hZGFwOwotCX0KLQlyZXR1cm4gMDsKLWVycl9hZGFwOgotCWRldl9lcnIoJmRldi0+ZGV2LCAiJXMgZmFpbGVkXG4iLCBidXMtPmFkYXAubmFtZSk7Ci0JcHJvc2F2YWdlX3JlbW92ZShkZXYpOwotCXJldHVybiByZXQ7Ci19Ci0KLQotLyoKLSAqIERhdGEgZm9yIFBDSSBkcml2ZXIgaW50ZXJmYWNlCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwcm9zYXZhZ2VfcGNpX3RibFtdID0gewotCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1MzLCBQQ0lfREVWSUNFX0lEX1MzX1NBVkFHRTQpIH0sCi0JeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUzMsIFBDSV9ERVZJQ0VfSURfUzNfUFJPU0FWQUdFOCkgfSwKLQl7IDAsIH0sCi19OwotCi1NT0RVTEVfREVWSUNFX1RBQkxFIChwY2ksIHByb3NhdmFnZV9wY2lfdGJsKTsKLQotc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHByb3NhdmFnZV9kcml2ZXIgPSB7Ci0JLm5hbWUJCT0JInByb3NhdmFnZV9zbWJ1cyIsCi0JLmlkX3RhYmxlCT0JcHJvc2F2YWdlX3BjaV90YmwsCi0JLnByb2JlCQk9CXByb3NhdmFnZV9wcm9iZSwKLQkucmVtb3ZlCQk9CXByb3NhdmFnZV9yZW1vdmUsCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBpMmNfcHJvc2F2YWdlX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gcGNpX3JlZ2lzdGVyX2RyaXZlcigmcHJvc2F2YWdlX2RyaXZlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBpMmNfcHJvc2F2YWdlX2V4aXQodm9pZCkKLXsKLQlwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoJnByb3NhdmFnZV9kcml2ZXIpOwotfQotCi1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgcHJvc2F2YWdlX3BjaV90YmwpOwotTU9EVUxFX0FVVEhPUigiSGVuayBWZXJnb25ldCIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJQcm9TYXZhZ2UgVklBIDgzNjUvODM3NSBzbWJ1cyBkcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQgKGkyY19wcm9zYXZhZ2VfaW5pdCk7Ci1tb2R1bGVfZXhpdCAoaTJjX3Byb3NhdmFnZV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS5jCmluZGV4IGViNjlmYmEuLmFmOWU2MDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEuYwpAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2kyYy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KIAogc3RydWN0IHB4YV9pMmMgewogCXNwaW5sb2NrX3QJCWxvY2s7CkBAIC05NDUsMzIgKzk0NCw2IEBACiAJLmZ1bmN0aW9uYWxpdHkJPSBpMmNfcHhhX2Z1bmN0aW9uYWxpdHksCiB9OwogCi1zdGF0aWMgdm9pZCBpMmNfcHhhX2VuYWJsZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0JaWYgKGNwdV9pc19weGEyN3goKSkgewotCQlzd2l0Y2ggKGRldi0+aWQpIHsKLQkJY2FzZSAwOgotCQkJcHhhX2dwaW9fbW9kZShHUElPMTE3X0kyQ1NDTF9NRCk7Ci0JCQlweGFfZ3Bpb19tb2RlKEdQSU8xMThfSTJDU0RBX01EKTsKLQkJCWJyZWFrOwotCQljYXNlIDE6Ci0JCQlsb2NhbF9pcnFfZGlzYWJsZSgpOwotCQkJUENGUiB8PSBQQ0ZSX1BJMkNFTjsKLQkJCWxvY2FsX2lycV9lbmFibGUoKTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBpMmNfcHhhX2Rpc2FibGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQotewotCWlmIChjcHVfaXNfcHhhMjd4KCkgJiYgZGV2LT5pZCA9PSAxKSB7Ci0JCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0JCVBDRlIgJj0gflBDRlJfUEkyQ0VOOwotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JfQotfQotCiAjZGVmaW5lIHJlc19sZW4ocikJCSgociktPmVuZCAtIChyKS0+c3RhcnQgKyAxKQogc3RhdGljIGludCBpMmNfcHhhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKIHsKQEAgLTEwMzYsNyArMTAwOSw2IEBACiAjZW5kaWYKIAogCWNsa19lbmFibGUoaTJjLT5jbGspOwotCWkyY19weGFfZW5hYmxlKGRldik7CiAKIAlpZiAocGxhdCkgewogCQlpMmMtPmFkYXAuY2xhc3MgPSBwbGF0LT5jbGFzczsKQEAgLTEwODAsNyArMTA1Miw2IEBACiAJCWZyZWVfaXJxKGlycSwgaTJjKTsKIGVyZXFpcnE6CiAJY2xrX2Rpc2FibGUoaTJjLT5jbGspOwotCWkyY19weGFfZGlzYWJsZShkZXYpOwogCWlvdW5tYXAoaTJjLT5yZWdfYmFzZSk7CiBlcmVtYXA6CiAJY2xrX3B1dChpMmMtPmNsayk7CkBAIC0xMTAzLDcgKzEwNzQsNiBAQAogCiAJY2xrX2Rpc2FibGUoaTJjLT5jbGspOwogCWNsa19wdXQoaTJjLT5jbGspOwotCWkyY19weGFfZGlzYWJsZShkZXYpOwogCiAJaW91bm1hcChpMmMtPnJlZ19iYXNlKTsKIAlyZWxlYXNlX21lbV9yZWdpb24oaTJjLT5pb2Jhc2UsIGkyYy0+aW9zaXplKTsKQEAgLTExMzQsNSArMTEwNCw1IEBACiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnB4YTJ4eC1pMmMiKTsKIAotbW9kdWxlX2luaXQoaTJjX2FkYXBfcHhhX2luaXQpOworc3Vic3lzX2luaXRjYWxsKGkyY19hZGFwX3B4YV9pbml0KTsKIG1vZHVsZV9leGl0KGkyY19hZGFwX3B4YV9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtczNjMjQxMC5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zM2MyNDEwLmMKaW5kZXggMTMwNWVmMS4uMDA3MzkwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zM2MyNDEwLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zM2MyNDEwLmMKQEAgLTI5MCwxMiArMjkwLDEyIEBACiAJCSAqIGJ1cywgb3Igc3RhcnRlZCBhIG5ldyBpMmMgbWVzc2FnZQogCQkgKi8KIAkJCi0JCWlmIChpaWNzdGF0ICAmIFMzQzI0MTBfSUlDU1RBVF9MQVNUQklUICYmCisJCWlmIChpaWNzdGF0ICYgUzNDMjQxMF9JSUNTVEFUX0xBU1RCSVQgJiYKIAkJICAgICEoaTJjLT5tc2ctPmZsYWdzICYgSTJDX01fSUdOT1JFX05BSykpIHsKIAkJCS8qIGFjayB3YXMgbm90IHJlY2VpdmVkLi4uICovCiAKIAkJCWRldl9kYmcoaTJjLT5kZXYsICJhY2sgd2FzIG5vdCByZWNlaXZlZFxuIik7Ci0JCQlzM2MyNHh4X2kyY19zdG9wKGkyYywgLUVSRU1PVEVJTyk7CisJCQlzM2MyNHh4X2kyY19zdG9wKGkyYywgLUVOWElPKTsKIAkJCWdvdG8gb3V0X2FjazsKIAkJfQogCkBAIC0zMDUsNyArMzA1LDcgQEAKIAkJCWkyYy0+c3RhdGUgPSBTVEFURV9XUklURTsKIAogCQkvKiB0ZXJtaW5hdGUgdGhlIHRyYW5zZmVyIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8KLQkJICogKHVzZWQgYnkgdGhlIGkyYyBwcm9iZSB0byBmaW5kIGRldmljZXMgKi8KKwkJICogYXMgdGhpcyBpcyB1c2VkIGJ5IHRoZSBpMmMgcHJvYmUgdG8gZmluZCBkZXZpY2VzLiAqLwogCiAJCWlmIChpc19sYXN0bXNnKGkyYykgJiYgaTJjLT5tc2ctPmxlbiA9PSAwKSB7CiAJCQlzM2MyNHh4X2kyY19zdG9wKGkyYywgMCk7CkBAIC0zMjMsNyArMzIzLDE3IEBACiAJCSAqIGVuZCBvZiB0aGUgbWVzc2FnZSwgYW5kIGlmIHNvLCB3b3JrIG91dCB3aGF0IHRvIGRvCiAJCSAqLwogCisJCWlmICghKGkyYy0+bXNnLT5mbGFncyAmIEkyQ19NX0lHTk9SRV9OQUspKSB7CisJCQlpZiAoaWljc3RhdCAmIFMzQzI0MTBfSUlDU1RBVF9MQVNUQklUKSB7CisJCQkJZGV2X2RiZyhpMmMtPmRldiwgIldSSVRFOiBObyBBY2tcbiIpOworCisJCQkJczNjMjR4eF9pMmNfc3RvcChpMmMsIC1FQ09OTlJFRlVTRUQpOworCQkJCWdvdG8gb3V0X2FjazsKKwkJCX0KKwkJfQorCiAJcmV0cnlfd3JpdGU6CisKIAkJaWYgKCFpc19tc2dlbmQoaTJjKSkgewogCQkJYnl0ZSA9IGkyYy0+bXNnLT5idWZbaTJjLT5tc2dfcHRyKytdOwogCQkJd3JpdGViKGJ5dGUsIGkyYy0+cmVncyArIFMzQzI0MTBfSUlDRFMpOwpAQCAtMzc3LDE3ICszODcsNiBAQAogCQkgKiBnb2luZyB0byBkbyBhbnkgbW9yZSByZWFkL3dyaXRlCiAJCSAqLwogCi0JCWlmICghKGkyYy0+bXNnLT5mbGFncyAmIEkyQ19NX0lHTk9SRV9OQUspICYmCi0JCSAgICAhKGlzX21zZ2xhc3QoaTJjKSAmJiBpc19sYXN0bXNnKGkyYykpKSB7Ci0KLQkJCWlmIChpaWNzdGF0ICYgUzNDMjQxMF9JSUNTVEFUX0xBU1RCSVQpIHsKLQkJCQlkZXZfZGJnKGkyYy0+ZGV2LCAiUkVBRDogTm8gQWNrXG4iKTsKLQotCQkJCXMzYzI0eHhfaTJjX3N0b3AoaTJjLCAtRUNPTk5SRUZVU0VEKTsKLQkJCQlnb3RvIG91dF9hY2s7Ci0JCQl9Ci0JCX0KLQogCQlieXRlID0gcmVhZGIoaTJjLT5yZWdzICsgUzNDMjQxMF9JSUNEUyk7CiAJCWkyYy0+bXNnLT5idWZbaTJjLT5tc2dfcHRyKytdID0gYnl0ZTsKIApAQCAtNTkxLDcgKzU5MCw3IEBACiAJCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJCS5hbGdvCQkJPSAmczNjMjR4eF9pMmNfYWxnb3JpdGhtLAogCQkucmV0cmllcwkJPSAyLAotCQkuY2xhc3MJCQk9IEkyQ19DTEFTU19IV01PTiwKKwkJLmNsYXNzCQkJPSBJMkNfQ0xBU1NfSFdNT04gfCBJMkNfQ0xBU1NfU1BELAogCX0sCiB9OwogCkBAIC05NDksMyArOTQ4LDQgQEAKIE1PRFVMRV9BVVRIT1IoIkJlbiBEb29rcywgPGJlbkBzaW10ZWMuY28udWs+Iik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0MTAtaTJjIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0NDAtaTJjIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXNhdmFnZTQuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc2F2YWdlNC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWRmNGFiLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc2F2YWdlNC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTg1ICswLDAgQEAKLS8qCi0gICAgaTJjLXNhdmFnZTQuYyAtIFBhcnQgb2YgbG1fc2Vuc29ycywgTGludXgga2VybmVsIG1vZHVsZXMgZm9yIGhhcmR3YXJlCi0gICAgICAgICAgICAgIG1vbml0b3JpbmcKLSAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMyAgVGhlIExNIFNlbnNvcnMgVGVhbQotICAgIEFsZXhhbmRlciBXb2xkIDxhd29sZEBiaWdmb290LmNvbT4KLSAgICBNYXJrIEQuIFN0dWRlYmFrZXIgPG1kc3h5ejEyM0B5YWhvby5jb20+Ci0gICAgCi0gICAgQmFzZWQgb24gaTJjLXZvb2RvbzMuYy4KLQotICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgotKi8KLQotLyogVGhpcyBpbnRlcmZhY2VzIHRvIHRoZSBJMkMgYnVzIG9mIHRoZSBTYXZhZ2U0IHRvIGdhaW4gYWNjZXNzIHRvCi0gICB0aGUgQlQ4NjkgYW5kIHBvc3NpYmx5IG90aGVyIEkyQyBkZXZpY2VzLiBUaGUgRERDIGJ1cyBpcyBub3QKLSAgIHlldCBzdXBwb3J0ZWQgYmVjYXVzZSBpdHMgcmVnaXN0ZXIgaXMgbm90IG1lbW9yeS1tYXBwZWQuCi0qLwotCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgotI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgotI2luY2x1ZGUgPGxpbnV4L2kyYy1hbGdvLWJpdC5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotCi0vKiBkZXZpY2UgSURzICovCi0jZGVmaW5lIFBDSV9DSElQX1NBVkFHRTQJMHg4QTIyCi0jZGVmaW5lIFBDSV9DSElQX1NBVkFHRTIwMDAJMHg5MTAyCi0KLSNkZWZpbmUgUkVHCQkJMHhmZjIwCS8qIFNlcmlhbCBQb3J0IDEgUmVnaXN0ZXIgKi8KLQotLyogYml0IGxvY2F0aW9ucyBpbiB0aGUgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgSTJDX0VOQUIJCTB4MDAwMDAwMjAKLSNkZWZpbmUgSTJDX1NDTF9PVVQJCTB4MDAwMDAwMDEKLSNkZWZpbmUgSTJDX1NEQV9PVVQJCTB4MDAwMDAwMDIKLSNkZWZpbmUgSTJDX1NDTF9JTgkJMHgwMDAwMDAwOAotI2RlZmluZSBJMkNfU0RBX0lOCQkweDAwMDAwMDEwCi0KLS8qIGRlbGF5cyAqLwotI2RlZmluZSBDWUNMRV9ERUxBWQkJMTAKLSNkZWZpbmUgVElNRU9VVAkJCShIWiAvIDIpCi0KLQotc3RhdGljIHZvaWQgX19pb21lbSAqaW9hZGRyOwotCi0vKiBUaGUgc2F2IEdQSU8gcmVnaXN0ZXJzIGRvbid0IGhhdmUgaW5kaXZpZHVhbCBtYXNrcyBmb3IgZWFjaCBiaXQKLSAgIHNvIHdlIGFsd2F5cyBoYXZlIHRvIHJlYWQgYmVmb3JlIHdyaXRpbmcuICovCi0KLXN0YXRpYyB2b2lkIGJpdF9zYXZpMmNfc2V0c2NsKHZvaWQgKmRhdGEsIGludCB2YWwpCi17Ci0JdW5zaWduZWQgaW50IHI7Ci0JciA9IHJlYWRsKGlvYWRkciArIFJFRyk7Ci0JaWYodmFsKQotCQlyIHw9IEkyQ19TQ0xfT1VUOwotCWVsc2UKLQkJciAmPSB+STJDX1NDTF9PVVQ7Ci0Jd3JpdGVsKHIsIGlvYWRkciArIFJFRyk7Ci0JcmVhZGwoaW9hZGRyICsgUkVHKTsJLyogZmx1c2ggcG9zdGVkIHdyaXRlICovCi19Ci0KLXN0YXRpYyB2b2lkIGJpdF9zYXZpMmNfc2V0c2RhKHZvaWQgKmRhdGEsIGludCB2YWwpCi17Ci0JdW5zaWduZWQgaW50IHI7Ci0JciA9IHJlYWRsKGlvYWRkciArIFJFRyk7Ci0JaWYodmFsKQotCQlyIHw9IEkyQ19TREFfT1VUOwotCWVsc2UKLQkJciAmPSB+STJDX1NEQV9PVVQ7Ci0Jd3JpdGVsKHIsIGlvYWRkciArIFJFRyk7Ci0JcmVhZGwoaW9hZGRyICsgUkVHKTsJLyogZmx1c2ggcG9zdGVkIHdyaXRlICovCi19Ci0KLS8qIFRoZSBHUElPIHBpbnMgYXJlIG9wZW4gZHJhaW4sIHNvIHRoZSBwaW5zIGFsd2F5cyByZW1haW4gb3V0cHV0cy4KLSAgIFdlIHJlbHkgb24gdGhlIGkyYy1hbGdvLWJpdCByb3V0aW5lcyB0byBzZXQgdGhlIHBpbnMgaGlnaCBiZWZvcmUKLSAgIHJlYWRpbmcgdGhlIGlucHV0IGZyb20gb3RoZXIgY2hpcHMuICovCi0KLXN0YXRpYyBpbnQgYml0X3NhdmkyY19nZXRzY2wodm9pZCAqZGF0YSkKLXsKLQlyZXR1cm4gKDAgIT0gKHJlYWRsKGlvYWRkciArIFJFRykgJiBJMkNfU0NMX0lOKSk7Ci19Ci0KLXN0YXRpYyBpbnQgYml0X3NhdmkyY19nZXRzZGEodm9pZCAqZGF0YSkKLXsKLQlyZXR1cm4gKDAgIT0gKHJlYWRsKGlvYWRkciArIFJFRykgJiBJMkNfU0RBX0lOKSk7Ci19Ci0KLS8qIENvbmZpZ3VyZXMgdGhlIGNoaXAgKi8KLQotc3RhdGljIGludCBjb25maWdfczQoc3RydWN0IHBjaV9kZXYgKmRldikKLXsKLQl1bnNpZ25lZCBsb25nIGNhZHI7Ci0KLQkvKiBtYXAgbWVtb3J5ICovCi0JY2FkciA9IGRldi0+cmVzb3VyY2VbMF0uc3RhcnQ7Ci0JY2FkciAmPSBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLOwotCWlvYWRkciA9IGlvcmVtYXBfbm9jYWNoZShjYWRyLCAweDAwODAwMDApOwotCWlmIChpb2FkZHIpIHsKLQkJLyogd3JpdGVsKDB4ODE2MCwgaW9hZGRyICsgUkVHMik7ICovCi0JCXdyaXRlbCgweDAwMDAwMDIwLCBpb2FkZHIgKyBSRUcpOwotCQlkZXZfaW5mbygmZGV2LT5kZXYsICJVc2luZyBTYXZhZ2U0IGF0ICVwXG4iLCBpb2FkZHIpOwotCQlyZXR1cm4gMDsKLQl9Ci0JcmV0dXJuIC1FTk9ERVY7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgaTJjX2FsZ29fYml0X2RhdGEgc2F2X2kyY19iaXRfZGF0YSA9IHsKLQkuc2V0c2RhCQk9IGJpdF9zYXZpMmNfc2V0c2RhLAotCS5zZXRzY2wJCT0gYml0X3NhdmkyY19zZXRzY2wsCi0JLmdldHNkYQkJPSBiaXRfc2F2aTJjX2dldHNkYSwKLQkuZ2V0c2NsCQk9IGJpdF9zYXZpMmNfZ2V0c2NsLAotCS51ZGVsYXkJCT0gQ1lDTEVfREVMQVksCi0JLnRpbWVvdXQJPSBUSU1FT1VUCi19OwotCi1zdGF0aWMgc3RydWN0IGkyY19hZGFwdGVyIHNhdmFnZTRfaTJjX2FkYXB0ZXIgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5pZAkJPSBJMkNfSFdfQl9TQVZBR0UsCi0JLm5hbWUJCT0gIkkyQyBTYXZhZ2U0IGFkYXB0ZXIiLAotCS5hbGdvX2RhdGEJPSAmc2F2X2kyY19iaXRfZGF0YSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzYXZhZ2U0X2lkc1tdIF9fZGV2aW5pdGRhdGEgPSB7Ci0JeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUzMsIFBDSV9DSElQX1NBVkFHRTQpIH0sCi0JeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUzMsIFBDSV9DSElQX1NBVkFHRTIwMDApIH0sCi0JeyAwLCB9Ci19OwotCi1NT0RVTEVfREVWSUNFX1RBQkxFIChwY2ksIHNhdmFnZTRfaWRzKTsKLQotc3RhdGljIGludCBfX2RldmluaXQgc2F2YWdlNF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCi17Ci0JaW50IHJldHZhbDsKLQotCXJldHZhbCA9IGNvbmZpZ19zNChkZXYpOwotCWlmIChyZXR2YWwpCi0JCXJldHVybiByZXR2YWw7Ci0KLQkvKiBzZXQgdXAgdGhlIHN5c2ZzIGxpbmthZ2UgdG8gb3VyIHBhcmVudCBkZXZpY2UgKi8KLQlzYXZhZ2U0X2kyY19hZGFwdGVyLmRldi5wYXJlbnQgPSAmZGV2LT5kZXY7Ci0KLQlyZXR1cm4gaTJjX2JpdF9hZGRfYnVzKCZzYXZhZ2U0X2kyY19hZGFwdGVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19kZXZleGl0IHNhdmFnZTRfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCi17Ci0JaTJjX2RlbF9hZGFwdGVyKCZzYXZhZ2U0X2kyY19hZGFwdGVyKTsKLQlpb3VubWFwKGlvYWRkcik7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzYXZhZ2U0X2RyaXZlciA9IHsKLQkubmFtZQkJPSAic2F2YWdlNF9zbWJ1cyIsCi0JLmlkX3RhYmxlCT0gc2F2YWdlNF9pZHMsCi0JLnByb2JlCQk9IHNhdmFnZTRfcHJvYmUsCi0JLnJlbW92ZQkJPSBfX2RldmV4aXRfcChzYXZhZ2U0X3JlbW92ZSksCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBpMmNfc2F2YWdlNF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIHBjaV9yZWdpc3Rlcl9kcml2ZXIoJnNhdmFnZTRfZHJpdmVyKTsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGkyY19zYXZhZ2U0X2V4aXQodm9pZCkKLXsKLQlwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoJnNhdmFnZTRfZHJpdmVyKTsKLX0KLQotTU9EVUxFX0FVVEhPUigiQWxleGFuZGVyIFdvbGQgPGF3b2xkQGJpZ2Zvb3QuY29tPiAiCi0JCSJhbmQgTWFyayBELiBTdHVkZWJha2VyIDxtZHN4eXoxMjNAeWFob28uY29tPiIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJTYXZhZ2U0IEkyQy9TTUJ1cyBkcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotbW9kdWxlX2luaXQoaTJjX3NhdmFnZTRfaW5pdCk7Ci1tb2R1bGVfZXhpdChpMmNfc2F2YWdlNF9leGl0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc2lieXRlLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXNpYnl0ZS5jCmluZGV4IDExNDYzNGQuLjRkZGVmYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc2lieXRlLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zaWJ5dGUuYwpAQCAtMTQzLDcgKzE0Myw3IEBACiAJY3NyX291dDMyKHNwZWVkLCBTTUJfQ1NSKGFkYXAsUl9TTUJfRlJFUSkpOwogCWNzcl9vdXQzMigwLCBTTUJfQ1NSKGFkYXAsUl9TTUJfQ09OVFJPTCkpOwogCi0JcmV0dXJuIGkyY19hZGRfYWRhcHRlcihpMmNfYWRhcCk7CisJcmV0dXJuIGkyY19hZGRfbnVtYmVyZWRfYWRhcHRlcihpMmNfYWRhcCk7CiB9CiAKIApAQCAtMTU2LDE3ICsxNTYsMTkgQEAKIAl7CiAJCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkJLmlkCQk9IEkyQ19IV19TSUJZVEUsCi0JCS5jbGFzcwkJPSBJMkNfQ0xBU1NfSFdNT04sCisJCS5jbGFzcwkJPSBJMkNfQ0xBU1NfSFdNT04gfCBJMkNfQ0xBU1NfU1BELAogCQkuYWxnbwkJPSBOVUxMLAogCQkuYWxnb19kYXRhCT0gJnNpYnl0ZV9ib2FyZF9kYXRhWzBdLAorCQkubnIJCT0gMCwKIAkJLm5hbWUJCT0gIlNpQnl0ZSBTTUJ1cyAwIiwKIAl9LAogCXsKIAkJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCQkuaWQJCT0gSTJDX0hXX1NJQllURSwKLQkJLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiwKKwkJLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJCS5hbGdvCQk9IE5VTEwsCiAJCS5hbGdvX2RhdGEJPSAmc2lieXRlX2JvYXJkX2RhdGFbMV0sCisJCS5ucgkJPSAxLAogCQkubmFtZQkJPSAiU2lCeXRlIFNNQnVzIDEiLAogCX0sCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zaXM1NTk1LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXNpczU1OTUuYwppbmRleCA5Y2E4ZjkxLi5kZmMyZDVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXNpczU1OTUuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXNpczU1OTUuYwpAQCAtMSw2ICsxLDQgQEAKIC8qCi0gICAgc2lzNTU5NS5jIC0gUGFydCBvZiBsbV9zZW5zb3JzLCBMaW51eCBrZXJuZWwgbW9kdWxlcyBmb3IgaGFyZHdhcmUKLSAgICAgICAgICAgICAgbW9uaXRvcmluZwogICAgIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSAgRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5sPiBhbmQKICAgICBQaGlsaXAgRWRlbGJyb2NrIDxwaGlsQG5ldHJvZWRnZS5jb20+CiAKQEAgLTYyLDYgKzYwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCiBzdGF0aWMgaW50IGJsYWNrbGlzdFtdID0gewpAQCAtMTc0LDYgKzE3MywxMSBAQAogCiAJLyogTkI6IFdlIGdyYWIganVzdCB0aGUgdHdvIFNNQnVzIHJlZ2lzdGVycyBoZXJlLCBidXQgdGhpcyBtYXkgc3RpbGwKIAkgKiBpbnRlcmZlcmUgd2l0aCBBQ1BJIDotKCAgKi8KKwlyZXR2YWwgPSBhY3BpX2NoZWNrX3JlZ2lvbihzaXM1NTk1X2Jhc2UgKyBTTUJfSU5ERVgsIDIsCisJCQkJICAgc2lzNTU5NV9kcml2ZXIubmFtZSk7CisJaWYgKHJldHZhbCkKKwkJcmV0dXJuIHJldHZhbDsKKwogCWlmICghcmVxdWVzdF9yZWdpb24oc2lzNTU5NV9iYXNlICsgU01CX0lOREVYLCAyLAogCQkJICAgIHNpczU1OTVfZHJpdmVyLm5hbWUpKSB7CiAJCWRldl9lcnIoJlNJUzU1OTVfZGV2LT5kZXYsICJTTUJ1cyByZWdpc3RlcnMgMHglMDR4LTB4JTA0eCBhbHJlYWR5IGluIHVzZSFcbiIsCkBAIC0yMzYsNyArMjQwLDcgQEAKIAkJc2lzNTU5NV93cml0ZShTTUJfU1RTX0hJLCB0ZW1wID4+IDgpOwogCQlpZiAoKHRlbXAgPSBzaXM1NTk1X3JlYWQoU01CX1NUU19MTykgKyAoc2lzNTU5NV9yZWFkKFNNQl9TVFNfSEkpIDw8IDgpKSAhPSAweDAwKSB7CiAJCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJGYWlsZWQhICglMDJ4KVxuIiwgdGVtcCk7Ci0JCQlyZXR1cm4gLTE7CisJCQlyZXR1cm4gLUVCVVNZOwogCQl9IGVsc2UgewogCQkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiU3VjY2Vzc2Z1bCFcbiIpOwogCQl9CkBAIC0yNTQsMTkgKzI1OCwxOSBAQAogCS8qIElmIHRoZSBTTUJ1cyBpcyBzdGlsbCBidXN5LCB3ZSBnaXZlIHVwICovCiAJaWYgKHRpbWVvdXQgPj0gTUFYX1RJTUVPVVQpIHsKIAkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiU01CdXMgVGltZW91dCFcbiIpOwotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVUSU1FRE9VVDsKIAl9CiAKIAlpZiAodGVtcCAmIDB4MTApIHsKIAkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiRXJyb3I6IEZhaWxlZCBidXMgdHJhbnNhY3Rpb25cbiIpOwotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVOWElPOwogCX0KIAogCWlmICh0ZW1wICYgMHgyMCkgewogCQlkZXZfZXJyKCZhZGFwLT5kZXYsICJCdXMgY29sbGlzaW9uISBTTUJ1cyBtYXkgYmUgbG9ja2VkIHVudGlsICIKIAkJCSJuZXh0IGhhcmQgcmVzZXQgKG9yIG5vdC4uLilcbiIpOwogCQkvKiBDbG9jayBzdG9wcyBhbmQgc2xhdmUgaXMgc3R1Y2sgaW4gbWlkLXRyYW5zbWlzc2lvbiAqLwotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVJTzsKIAl9CiAKIAl0ZW1wID0gc2lzNTU5NV9yZWFkKFNNQl9TVFNfTE8pICsgKHNpczU1OTVfcmVhZChTTUJfU1RTX0hJKSA8PCA4KTsKQEAgLTI4MiwxMSArMjg2LDEzIEBACiAJcmV0dXJuIHJlc3VsdDsKIH0KIAotLyogUmV0dXJuIC0xIG9uIGVycm9yLiAqLworLyogUmV0dXJuIG5lZ2F0aXZlIGVycm5vIG9uIGVycm9yLiAqLwogc3RhdGljIHMzMiBzaXM1NTk1X2FjY2VzcyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIHUxNiBhZGRyLAogCQkJICB1bnNpZ25lZCBzaG9ydCBmbGFncywgY2hhciByZWFkX3dyaXRlLAogCQkJICB1OCBjb21tYW5kLCBpbnQgc2l6ZSwgdW5pb24gaTJjX3NtYnVzX2RhdGEgKmRhdGEpCiB7CisJaW50IHN0YXR1czsKKwogCXN3aXRjaCAoc2l6ZSkgewogCWNhc2UgSTJDX1NNQlVTX1FVSUNLOgogCQlzaXM1NTk1X3dyaXRlKFNNQl9BRERSLCAoKGFkZHIgJiAweDdmKSA8PCAxKSB8IChyZWFkX3dyaXRlICYgMHgwMSkpOwpAQCAtMzE4LDEzICszMjQsMTQgQEAKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJZGV2X3dhcm4oJmFkYXAtPmRldiwgIlVuc3VwcG9ydGVkIHRyYW5zYWN0aW9uICVkXG4iLCBzaXplKTsKLQkJcmV0dXJuIC0xOworCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCiAJc2lzNTU5NV93cml0ZShTTUJfQ1RMX0xPLCAoKHNpemUgJiAweDBFKSkpOwogCi0JaWYgKHNpczU1OTVfdHJhbnNhY3Rpb24oYWRhcCkpCi0JCXJldHVybiAtMTsKKwlzdGF0dXMgPSBzaXM1NTk1X3RyYW5zYWN0aW9uKGFkYXApOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CiAKIAlpZiAoKHNpemUgIT0gU0lTNTU5NV9QUk9DX0NBTEwpICYmCiAJICAgICgocmVhZF93cml0ZSA9PSBJMkNfU01CVVNfV1JJVEUpIHx8IChzaXplID09IFNJUzU1OTVfUVVJQ0spKSkKQEAgLTM1OSw3ICszNjYsNyBAQAogc3RhdGljIHN0cnVjdCBpMmNfYWRhcHRlciBzaXM1NTk1X2FkYXB0ZXIgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5pZAkJPSBJMkNfSFdfU01CVVNfU0lTNTU5NSwKLQkuY2xhc3MgICAgICAgICAgPSBJMkNfQ0xBU1NfSFdNT04sCisJLmNsYXNzICAgICAgICAgID0gSTJDX0NMQVNTX0hXTU9OIHwgSTJDX0NMQVNTX1NQRCwKIAkuYWxnbwkJPSAmc21idXNfYWxnb3JpdGhtLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zaXM2MzAuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc2lzNjMwLmMKaW5kZXggMzc2NWRkNy4uZTdjNGI3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zaXM2MzAuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXNpczYzMC5jCkBAIC0xLDcgKzEsNCBAQAogLyoKLSAgICBpMmMtc2lzNjMwLmMgLSBQYXJ0IG9mIGxtX3NlbnNvcnMsIExpbnV4IGtlcm5lbCBtb2R1bGVzIGZvciBoYXJkd2FyZQotICAgICAgICAgICAgICBtb25pdG9yaW5nCi0KICAgICBDb3B5cmlnaHQgKGMpIDIwMDIsMjAwMyBBbGV4YW5kZXIgTWFseXNoIDxhbWFseXNoQHdlYi5kZT4KIAogICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC01NSw2ICs1Miw3IEBACiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIAogLyogU0lTNjMwIFNNQnVzIHJlZ2lzdGVycyAqLwpAQCAtMTM0LDcgKzEzMiw3IEBACiAKIAkJaWYgKCh0ZW1wID0gc2lzNjMwX3JlYWQoU01CX0NOVCkgJiAweDAzKSAhPSAweDAwKSB7CiAJCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJGYWlsZWQhICglMDJ4KVxuIiwgdGVtcCk7Ci0JCQlyZXR1cm4gLTE7CisJCQlyZXR1cm4gLUVCVVNZOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAJCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJTdWNjZXNzZnVsIVxuIik7CiAJCX0KQEAgLTE3NywxNyArMTc1LDE3IEBACiAJLyogSWYgdGhlIFNNQnVzIGlzIHN0aWxsIGJ1c3ksIHdlIGdpdmUgdXAgKi8KIAlpZiAodGltZW91dCA+PSBNQVhfVElNRU9VVCkgewogCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJTTUJ1cyBUaW1lb3V0IVxuIik7Ci0JCXJlc3VsdCA9IC0xOworCQlyZXN1bHQgPSAtRVRJTUVET1VUOwogCX0KIAogCWlmICh0ZW1wICYgMHgwMikgewogCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJFcnJvcjogRmFpbGVkIGJ1cyB0cmFuc2FjdGlvblxuIik7Ci0JCXJlc3VsdCA9IC0xOworCQlyZXN1bHQgPSAtRU5YSU87CiAJfQogCiAJaWYgKHRlbXAgJiAweDA0KSB7CiAJCWRldl9lcnIoJmFkYXAtPmRldiwgIkJ1cyBjb2xsaXNpb24hXG4iKTsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FSU87CiAJCS8qCiAJCSAgVEJEOiBEYXRhc2hlZXQgc2F5OgogCQkgIHRoZSBzb2Z0d2FyZSBzaG91bGQgY2xlYXIgdGhpcyBiaXQgYW5kIHJlc3RhcnQgU01CVVMgb3BlcmF0aW9uLgpAQCAtMjUwLDggKzI0OCwxMCBAQAogCQkJaWYgKGk9PTggfHwgKGxlbjw4ICYmIGk9PWxlbikpIHsKIAkJCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJzdGFydCB0cmFucyBsZW49JWQgaT0lZFxuIixsZW4gLGkpOwogCQkJCS8qIGZpcnN0IHRyYW5zYWN0aW9uICovCi0JCQkJaWYgKHNpczYzMF90cmFuc2FjdGlvbl9zdGFydChhZGFwLCBTSVM2MzBfQkxPQ0tfREFUQSwgJm9sZGNsb2NrKSkKLQkJCQkJcmV0dXJuIC0xOworCQkJCXJjID0gc2lzNjMwX3RyYW5zYWN0aW9uX3N0YXJ0KGFkYXAsCisJCQkJCQlTSVM2MzBfQkxPQ0tfREFUQSwgJm9sZGNsb2NrKTsKKwkJCQlpZiAocmMpCisJCQkJCXJldHVybiByYzsKIAkJCX0KIAkJCWVsc2UgaWYgKChpLTEpJTggPT0gNyB8fCBpPT1sZW4pIHsKIAkJCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJ0cmFuc193YWl0IGxlbj0lZCBpPSVkXG4iLGxlbixpKTsKQEAgLTI2NCw5ICsyNjQsMTAgQEAKIAkJCQkJKi8KIAkJCQkJc2lzNjMwX3dyaXRlKFNNQl9TVFMsMHgxMCk7CiAJCQkJfQotCQkJCWlmIChzaXM2MzBfdHJhbnNhY3Rpb25fd2FpdChhZGFwLCBTSVM2MzBfQkxPQ0tfREFUQSkpIHsKKwkJCQlyYyA9IHNpczYzMF90cmFuc2FjdGlvbl93YWl0KGFkYXAsCisJCQkJCQlTSVM2MzBfQkxPQ0tfREFUQSk7CisJCQkJaWYgKHJjKSB7CiAJCQkJCWRldl9kYmcoJmFkYXAtPmRldiwgInRyYW5zX3dhaXQgZmFpbGVkXG4iKTsKLQkJCQkJcmMgPSAtMTsKIAkJCQkJYnJlYWs7CiAJCQkJfQogCQkJfQpAQCAtMjc1LDEzICsyNzYsMTQgQEAKIAllbHNlIHsKIAkJLyogcmVhZCByZXF1ZXN0ICovCiAJCWRhdGEtPmJsb2NrWzBdID0gbGVuID0gMDsKLQkJaWYgKHNpczYzMF90cmFuc2FjdGlvbl9zdGFydChhZGFwLCBTSVM2MzBfQkxPQ0tfREFUQSwgJm9sZGNsb2NrKSkgewotCQkJcmV0dXJuIC0xOwotCQl9CisJCXJjID0gc2lzNjMwX3RyYW5zYWN0aW9uX3N0YXJ0KGFkYXAsCisJCQkJU0lTNjMwX0JMT0NLX0RBVEEsICZvbGRjbG9jayk7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKIAkJZG8gewotCQkJaWYgKHNpczYzMF90cmFuc2FjdGlvbl93YWl0KGFkYXAsIFNJUzYzMF9CTE9DS19EQVRBKSkgeworCQkJcmMgPSBzaXM2MzBfdHJhbnNhY3Rpb25fd2FpdChhZGFwLCBTSVM2MzBfQkxPQ0tfREFUQSk7CisJCQlpZiAocmMpIHsKIAkJCQlkZXZfZGJnKCZhZGFwLT5kZXYsICJ0cmFuc193YWl0IGZhaWxlZFxuIik7Ci0JCQkJcmMgPSAtMTsKIAkJCQlicmVhazsKIAkJCX0KIAkJCS8qIGlmIHRoaXMgZmlyc3QgdHJhbnNhY3Rpb24gdGhlbiByZWFkIGJ5dGUgY291bnQgKi8KQEAgLTMxMSwxMSArMzEzLDEzIEBACiAJcmV0dXJuIHJjOwogfQogCi0vKiBSZXR1cm4gLTEgb24gZXJyb3IuICovCisvKiBSZXR1cm4gbmVnYXRpdmUgZXJybm8gb24gZXJyb3IuICovCiBzdGF0aWMgczMyIHNpczYzMF9hY2Nlc3Moc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCB1MTYgYWRkciwKIAkJCSB1bnNpZ25lZCBzaG9ydCBmbGFncywgY2hhciByZWFkX3dyaXRlLAogCQkJIHU4IGNvbW1hbmQsIGludCBzaXplLCB1bmlvbiBpMmNfc21idXNfZGF0YSAqZGF0YSkKIHsKKwlpbnQgc3RhdHVzOworCiAJc3dpdGNoIChzaXplKSB7CiAJCWNhc2UgSTJDX1NNQlVTX1FVSUNLOgogCQkJc2lzNjMwX3dyaXRlKFNNQl9BRERSLCAoKGFkZHIgJiAweDdmKSA8PCAxKSB8IChyZWFkX3dyaXRlICYgMHgwMSkpOwpAQCAtMzUwLDEzICszNTQsMTQgQEAKIAkJCXNpemUgPSBTSVM2MzBfQkxPQ0tfREFUQTsKIAkJCXJldHVybiBzaXM2MzBfYmxvY2tfZGF0YShhZGFwLCBkYXRhLCByZWFkX3dyaXRlKTsKIAkJZGVmYXVsdDoKLQkJCXByaW50aygiVW5zdXBwb3J0ZWQgSTJDIHNpemVcbiIpOwotCQkJcmV0dXJuIC0xOwotCQkJYnJlYWs7CisJCQlkZXZfd2FybigmYWRhcC0+ZGV2LCAiVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gJWRcbiIsCisJCQkJIHNpemUpOworCQkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCX0KIAotCWlmIChzaXM2MzBfdHJhbnNhY3Rpb24oYWRhcCwgc2l6ZSkpCi0JCXJldHVybiAtMTsKKwlzdGF0dXMgPSBzaXM2MzBfdHJhbnNhY3Rpb24oYWRhcCwgc2l6ZSk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKIAogCWlmICgoc2l6ZSAhPSBTSVM2MzBfUENBTEwpICYmCiAJCSgocmVhZF93cml0ZSA9PSBJMkNfU01CVVNfV1JJVEUpIHx8IChzaXplID09IFNJUzYzMF9RVUlDSykpKSB7CkBAIC0zNzIsOSArMzc3LDYgQEAKIAkJY2FzZSBTSVM2MzBfV09SRF9EQVRBOgogCQkJZGF0YS0+d29yZCA9IHNpczYzMF9yZWFkKFNNQl9CWVRFKSArIChzaXM2MzBfcmVhZChTTUJfQllURSArIDEpIDw8IDgpOwogCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlyZXR1cm4gLTE7Ci0JCQlicmVhazsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTQzMyw2ICs0MzUsMTEgQEAKIAogCWRldl9kYmcoJnNpczYzMF9kZXYtPmRldiwgIkFDUEkgYmFzZSBhdCAweCUwNHhcbiIsIGFjcGlfYmFzZSk7CiAKKwlyZXR2YWwgPSBhY3BpX2NoZWNrX3JlZ2lvbihhY3BpX2Jhc2UgKyBTTUJfU1RTLCBTSVM2MzBfU01CX0lPUkVHSU9OLAorCQkJCSAgIHNpczYzMF9kcml2ZXIubmFtZSk7CisJaWYgKHJldHZhbCkKKwkJZ290byBleGl0OworCiAJLyogRXZlcnl0aGluZyBpcyBoYXBweSwgbGV0J3MgZ3JhYiB0aGUgbWVtb3J5IGFuZCBzZXQgdGhpbmdzIHVwLiAqLwogCWlmICghcmVxdWVzdF9yZWdpb24oYWNwaV9iYXNlICsgU01CX1NUUywgU0lTNjMwX1NNQl9JT1JFR0lPTiwKIAkJCSAgICBzaXM2MzBfZHJpdmVyLm5hbWUpKSB7CkBAIC00NTgsNyArNDY1LDcgQEAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgc2lzNjMwX2FkYXB0ZXIgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5pZAkJPSBJMkNfSFdfU01CVVNfU0lTNjMwLAotCS5jbGFzcwkJPSBJMkNfQ0xBU1NfSFdNT04sCisJLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJLmFsZ28JCT0gJnNtYnVzX2FsZ29yaXRobSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc2lzOTZ4LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXNpczk2eC5jCmluZGV4IGRjMjM1YmIuLmYxYmJhNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc2lzOTZ4LmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zaXM5NnguYwpAQCAtMSw3ICsxLDQgQEAKIC8qCi0gICAgc2lzOTZ4LmMgLSBQYXJ0IG9mIGxtX3NlbnNvcnMsIExpbnV4IGtlcm5lbCBtb2R1bGVzIGZvciBoYXJkd2FyZQotICAgICAgICAgICAgICBtb25pdG9yaW5nCi0KICAgICBDb3B5cmlnaHQgKGMpIDIwMDMgTWFyayBNLiBIb2ZmbWFuIDxtaG9mZm1hbkBsaWdodGxpbmsuY29tPgogCiAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTQwLDYgKzM3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAvKiBiYXNlIGFkZHJlc3MgcmVnaXN0ZXIgaW4gUENJIGNvbmZpZyBzcGFjZSAqLwpAQCAtMTExLDcgKzEwOSw3IEBACiAJCS8qIGNoZWNrIGl0IGFnYWluICovCiAJCWlmICgoKHRlbXAgPSBzaXM5NnhfcmVhZChTTUJfQ05UKSkgJiAweDAzKSAhPSAweDAwKSB7CiAJCQlkZXZfZGJnKCZzaXM5NnhfYWRhcHRlci5kZXYsICJGYWlsZWQgKDB4JTAyeClcbiIsIHRlbXApOwotCQkJcmV0dXJuIC0xOworCQkJcmV0dXJuIC1FQlVTWTsKIAkJfSBlbHNlIHsKIAkJCWRldl9kYmcoJnNpczk2eF9hZGFwdGVyLmRldiwgIlN1Y2Nlc3NmdWxcbiIpOwogCQl9CkBAIC0xMzYsMTkgKzEzNCwxOSBAQAogCS8qIElmIHRoZSBTTUJ1cyBpcyBzdGlsbCBidXN5LCB3ZSBnaXZlIHVwICovCiAJaWYgKHRpbWVvdXQgPj0gTUFYX1RJTUVPVVQpIHsKIAkJZGV2X2RiZygmc2lzOTZ4X2FkYXB0ZXIuZGV2LCAiU01CdXMgVGltZW91dCEgKDB4JTAyeClcbiIsIHRlbXApOwotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVUSU1FRE9VVDsKIAl9CiAKIAkvKiBkZXZpY2UgZXJyb3IgLSBwcm9iYWJseSBtaXNzaW5nIEFDSyAqLwogCWlmICh0ZW1wICYgMHgwMikgewogCQlkZXZfZGJnKCZzaXM5NnhfYWRhcHRlci5kZXYsICJGYWlsZWQgYnVzIHRyYW5zYWN0aW9uIVxuIik7Ci0JCXJlc3VsdCA9IC0xOworCQlyZXN1bHQgPSAtRU5YSU87CiAJfQogCiAJLyogYnVzIGNvbGxpc2lvbiAqLwogCWlmICh0ZW1wICYgMHgwNCkgewogCQlkZXZfZGJnKCZzaXM5NnhfYWRhcHRlci5kZXYsICJCdXMgY29sbGlzaW9uIVxuIik7Ci0JCXJlc3VsdCA9IC0xOworCQlyZXN1bHQgPSAtRUlPOwogCX0KIAogCS8qIEZpbmlzaCB1cCBieSByZXNldHRpbmcgdGhlIGJ1cyAqLwpAQCAtMTYxLDExICsxNTksMTIgQEAKIAlyZXR1cm4gcmVzdWx0OwogfQogCi0vKiBSZXR1cm4gLTEgb24gZXJyb3IuICovCisvKiBSZXR1cm4gbmVnYXRpdmUgZXJybm8gb24gZXJyb3IuICovCiBzdGF0aWMgczMyIHNpczk2eF9hY2Nlc3Moc3RydWN0IGkyY19hZGFwdGVyICogYWRhcCwgdTE2IGFkZHIsCiAJCQkgdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwKIAkJCSB1OCBjb21tYW5kLCBpbnQgc2l6ZSwgdW5pb24gaTJjX3NtYnVzX2RhdGEgKiBkYXRhKQogeworCWludCBzdGF0dXM7CiAKIAlzd2l0Y2ggKHNpemUpIHsKIAljYXNlIEkyQ19TTUJVU19RVUlDSzoKQEAgLTIwMCwyMCArMTk5LDE0IEBACiAJCQlTSVM5NnhfUFJPQ19DQUxMIDogU0lTOTZ4X1dPUkRfREFUQSk7CiAJCWJyZWFrOwogCi0JY2FzZSBJMkNfU01CVVNfQkxPQ0tfREFUQToKLQkJLyogVE8gRE86ICovCi0JCWRldl9pbmZvKCZhZGFwLT5kZXYsICJTTUJ1cyBibG9jayBub3QgaW1wbGVtZW50ZWQhXG4iKTsKLQkJcmV0dXJuIC0xOwotCQlicmVhazsKLQogCWRlZmF1bHQ6Ci0JCWRldl9pbmZvKCZhZGFwLT5kZXYsICJVbnN1cHBvcnRlZCBJMkMgc2l6ZVxuIik7Ci0JCXJldHVybiAtMTsKLQkJYnJlYWs7CisJCWRldl93YXJuKCZhZGFwLT5kZXYsICJVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiAlZFxuIiwgc2l6ZSk7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKLQlpZiAoc2lzOTZ4X3RyYW5zYWN0aW9uKHNpemUpKQotCQlyZXR1cm4gLTE7CisJc3RhdHVzID0gc2lzOTZ4X3RyYW5zYWN0aW9uKHNpemUpOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CiAKIAlpZiAoKHNpemUgIT0gU0lTOTZ4X1BST0NfQ0FMTCkgJiYKIAkJKChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19XUklURSkgfHwgKHNpemUgPT0gU0lTOTZ4X1FVSUNLKSkpCkBAIC0yNDksNyArMjQyLDcgQEAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgc2lzOTZ4X2FkYXB0ZXIgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5pZAkJPSBJMkNfSFdfU01CVVNfU0lTOTZYLAotCS5jbGFzcwkJPSBJMkNfQ0xBU1NfSFdNT04sCisJLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJLmFsZ28JCT0gJnNtYnVzX2FsZ29yaXRobSwKIH07CiAKQEAgLTI4Niw2ICsyNzksMTAgQEAKIAlkZXZfaW5mbygmZGV2LT5kZXYsICJTaVM5NnggU01CdXMgYmFzZSBhZGRyZXNzOiAweCUwNHhcbiIsCiAJCQlzaXM5Nnhfc21idXNfYmFzZSk7CiAKKwlyZXR2YWwgPSBhY3BpX2NoZWNrX3Jlc291cmNlX2NvbmZsaWN0KCZkZXYtPnJlc291cmNlW1NJUzk2eF9CQVJdKTsKKwlpZiAocmV0dmFsKQorCQlyZXR1cm4gcmV0dmFsOworCiAJLyogRXZlcnl0aGluZyBpcyBoYXBweSwgbGV0J3MgZ3JhYiB0aGUgbWVtb3J5IGFuZCBzZXQgdGhpbmdzIHVwLiAqLwogCWlmICghcmVxdWVzdF9yZWdpb24oc2lzOTZ4X3NtYnVzX2Jhc2UsIFNNQl9JT1NJWkUsCiAJCQkgICAgc2lzOTZ4X2RyaXZlci5uYW1lKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zdHViLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXN0dWIuYwppbmRleCBkMDhlZWVjLi4xYjdiMmFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXN0dWIuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXN0dWIuYwpAQCAtNDMsNyArNDMsNyBAQAogCiBzdGF0aWMgc3RydWN0IHN0dWJfY2hpcCAqc3R1Yl9jaGlwczsKIAotLyogUmV0dXJuIC0xIG9uIGVycm9yLiAqLworLyogUmV0dXJuIG5lZ2F0aXZlIGVycm5vIG9uIGVycm9yLiAqLwogc3RhdGljIHMzMiBzdHViX3hmZXIoc3RydWN0IGkyY19hZGFwdGVyICogYWRhcCwgdTE2IGFkZHIsIHVuc2lnbmVkIHNob3J0IGZsYWdzLAogCWNoYXIgcmVhZF93cml0ZSwgdTggY29tbWFuZCwgaW50IHNpemUsIHVuaW9uIGkyY19zbWJ1c19kYXRhICogZGF0YSkKIHsKQEAgLTEyMCw3ICsxMjAsNyBAQAogCiAJZGVmYXVsdDoKIAkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiVW5zdXBwb3J0ZWQgSTJDL1NNQnVzIGNvbW1hbmRcbiIpOwotCQlyZXQgPSAtMTsKKwkJcmV0ID0gLUVPUE5PVFNVUFA7CiAJCWJyZWFrOwogCX0gLyogc3dpdGNoIChzaXplKSAqLwogCkBAIC0xNDAsNyArMTQwLDcgQEAKIAogc3RhdGljIHN0cnVjdCBpMmNfYWRhcHRlciBzdHViX2FkYXB0ZXIgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5jbGFzcwkJPSBJMkNfQ0xBU1NfSFdNT04sCisJLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJLmFsZ28JCT0gJnNtYnVzX2FsZ29yaXRobSwKIAkubmFtZQkJPSAiU01CdXMgc3R1YiBkcml2ZXIiLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdGFvcy1ldm0uYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdGFvcy1ldm0uYwppbmRleCBkZTlkYjQ5Li4yMjRhYTEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXRhb3MtZXZtLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy10YW9zLWV2bS5jCkBAIC05Niw5ICs5Niw4IEBACiAJCQlzcHJpbnRmKHAsICIkJTAyWCIsIGNvbW1hbmQpOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlkZXZfZGJnKCZhZGFwdGVyLT5kZXYsICJVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiBzaXplICVkXG4iLAotCQkJc2l6ZSk7Ci0JCXJldHVybiAtRUlOVkFMOworCQlkZXZfd2FybigmYWRhcHRlci0+ZGV2LCAiVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gJWRcbiIsIHNpemUpOworCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCiAJLyogU2VuZCB0aGUgdHJhbnNhY3Rpb24gdG8gdGhlIFRBT1MgRVZNICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXZpYS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy12aWEuYwppbmRleCA2MTcxNmY2Li4yOWNlZjA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXZpYS5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdmlhLmMKQEAgLTEsNyArMSw0IEBACiAvKgotICAgIGkyYy12aWEuYyAtIFBhcnQgb2YgbG1fc2Vuc29ycywgIExpbnV4IGtlcm5lbCBtb2R1bGVzCi0gICAgICAgICAgICAgICAgZm9yIGhhcmR3YXJlIG1vbml0b3JpbmcKLQogICAgIGkyYyBTdXBwb3J0IGZvciBWaWEgVGVjaG5vbG9naWVzIDgyQzU4NkIgU291dGggQnJpZGdlCiAKICAgICBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTkgS3nDtnN0aSBNw6Rsa2tpIDxrbWFsa2tpQGNjLmh1dC5maT4KQEAgLTg3LDcgKzg0LDcgQEAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgdnQ1ODZiX2FkYXB0ZXIgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5pZAkJPSBJMkNfSFdfQl9WSUEsCi0JLmNsYXNzICAgICAgICAgID0gSTJDX0NMQVNTX0hXTU9OLAorCS5jbGFzcyAgICAgICAgICA9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJLm5hbWUJCT0gIlZJQSBpMmMiLAogCS5hbGdvX2RhdGEJPSAmYml0X2RhdGEsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy12aWFwcm8uYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdmlhcHJvLmMKaW5kZXggNzdiMTNkMC4uODYyZWIzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy12aWFwcm8uYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXZpYXByby5jCkBAIC0xLDYgKzEsNCBAQAogLyoKLSAgICBpMmMtdmlhcHJvLmMgLSBQYXJ0IG9mIGxtX3NlbnNvcnMsIExpbnV4IGtlcm5lbCBtb2R1bGVzIGZvciBoYXJkd2FyZQotICAgICAgICAgICAgICBtb25pdG9yaW5nCiAgICAgQ29weXJpZ2h0IChjKSAxOTk4IC0gMjAwMiAgRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5sPiwKICAgICBQaGlsaXAgRWRlbGJyb2NrIDxwaGlsQG5ldHJvZWRnZS5jb20+LCBLecO2c3RpIE3DpGxra2kgPGttYWxra2lAY2MuaHV0LmZpPiwKICAgICBNYXJrIEQuIFN0dWRlYmFrZXIgPG1kc3h5ejEyM0B5YWhvby5jb20+CkBAIC01MCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIAogc3RhdGljIHN0cnVjdCBwY2lfZGV2ICp2dDU5Nl9wZGV2OwpAQCAtMTUyLDcgKzE1MSw3IEBACiAJCWlmICgodGVtcCA9IGluYl9wKFNNQkhTVFNUUykpICYgMHgxRikgewogCQkJZGV2X2VycigmdnQ1OTZfYWRhcHRlci5kZXYsICJTTUJ1cyByZXNldCBmYWlsZWQhICIKIAkJCQkiKDB4JTAyeClcbiIsIHRlbXApOwotCQkJcmV0dXJuIC0xOworCQkJcmV0dXJuIC1FQlVTWTsKIAkJfQogCX0KIApAQCAtMTY3LDI0ICsxNjYsMjQgQEAKIAogCS8qIElmIHRoZSBTTUJ1cyBpcyBzdGlsbCBidXN5LCB3ZSBnaXZlIHVwICovCiAJaWYgKHRpbWVvdXQgPj0gTUFYX1RJTUVPVVQpIHsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FVElNRURPVVQ7CiAJCWRldl9lcnIoJnZ0NTk2X2FkYXB0ZXIuZGV2LCAiU01CdXMgdGltZW91dCFcbiIpOwogCX0KIAogCWlmICh0ZW1wICYgMHgxMCkgewotCQlyZXN1bHQgPSAtMTsKKwkJcmVzdWx0ID0gLUVJTzsKIAkJZGV2X2VycigmdnQ1OTZfYWRhcHRlci5kZXYsICJUcmFuc2FjdGlvbiBmYWlsZWQgKDB4JTAyeClcbiIsCiAJCQlzaXplKTsKIAl9CiAKIAlpZiAodGVtcCAmIDB4MDgpIHsKLQkJcmVzdWx0ID0gLTE7CisJCXJlc3VsdCA9IC1FSU87CiAJCWRldl9lcnIoJnZ0NTk2X2FkYXB0ZXIuZGV2LCAiU01CdXMgY29sbGlzaW9uIVxuIik7CiAJfQogCiAJaWYgKHRlbXAgJiAweDA0KSB7CiAJCWludCByZWFkID0gaW5iX3AoU01CSFNUQUREKSAmIDB4MDE7Ci0JCXJlc3VsdCA9IC0xOworCQlyZXN1bHQgPSAtRU5YSU87CiAJCS8qIFRoZSBxdWljayBhbmQgcmVjZWl2ZSBieXRlIGNvbW1hbmRzIGFyZSB1c2VkIHRvIHByb2JlCiAJCSAgIGZvciBjaGlwcywgc28gZXJyb3JzIGFyZSBleHBlY3RlZCwgYW5kIHdlIGRvbid0IHdhbnQKIAkJICAgdG8gZnJpZ2h0ZW4gdGhlIHVzZXIuICovCkBAIC0yMDIsMTIgKzIwMSwxMyBAQAogCXJldHVybiByZXN1bHQ7CiB9CiAKLS8qIFJldHVybiAtMSBvbiBlcnJvciwgMCBvbiBzdWNjZXNzICovCisvKiBSZXR1cm4gbmVnYXRpdmUgZXJybm8gb24gZXJyb3IsIDAgb24gc3VjY2VzcyAqLwogc3RhdGljIHMzMiB2dDU5Nl9hY2Nlc3Moc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCB1MTYgYWRkciwKIAkJdW5zaWduZWQgc2hvcnQgZmxhZ3MsIGNoYXIgcmVhZF93cml0ZSwgdTggY29tbWFuZCwKIAkJaW50IHNpemUsIHVuaW9uIGkyY19zbWJ1c19kYXRhICpkYXRhKQogewogCWludCBpOworCWludCBzdGF0dXM7CiAKIAlzd2l0Y2ggKHNpemUpIHsKIAljYXNlIEkyQ19TTUJVU19RVUlDSzoKQEAgLTI1OCw4ICsyNTgsOSBAQAogCiAJb3V0Yl9wKCgoYWRkciAmIDB4N2YpIDw8IDEpIHwgcmVhZF93cml0ZSwgU01CSFNUQUREKTsKIAotCWlmICh2dDU5Nl90cmFuc2FjdGlvbihzaXplKSkgLyogRXJyb3IgaW4gdHJhbnNhY3Rpb24gKi8KLQkJcmV0dXJuIC0xOworCXN0YXR1cyA9IHZ0NTk2X3RyYW5zYWN0aW9uKHNpemUpOworCWlmIChzdGF0dXMpCisJCXJldHVybiBzdGF0dXM7CiAKIAlpZiAoKHJlYWRfd3JpdGUgPT0gSTJDX1NNQlVTX1dSSVRFKSB8fCAoc2l6ZSA9PSBWVDU5Nl9RVUlDSykpCiAJCXJldHVybiAwOwpAQCAtMjg1LDkgKzI4Niw5IEBACiAJcmV0dXJuIDA7CiAKIGV4aXRfdW5zdXBwb3J0ZWQ6Ci0JZGV2X3dhcm4oJnZ0NTk2X2FkYXB0ZXIuZGV2LCAiVW5zdXBwb3J0ZWQgY29tbWFuZCBpbnZva2VkISAoMHglMDJ4KVxuIiwKKwlkZXZfd2FybigmdnQ1OTZfYWRhcHRlci5kZXYsICJVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiAlZFxuIiwKIAkJIHNpemUpOwotCXJldHVybiAtMTsKKwlyZXR1cm4gLUVPUE5PVFNVUFA7CiB9CiAKIHN0YXRpYyB1MzIgdnQ1OTZfZnVuYyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpCkBAIC0zMDksNyArMzEwLDcgQEAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIgdnQ1OTZfYWRhcHRlciA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmlkCQk9IEkyQ19IV19TTUJVU19WSUEyLAotCS5jbGFzcwkJPSBJMkNfQ0xBU1NfSFdNT04sCisJLmNsYXNzCQk9IEkyQ19DTEFTU19IV01PTiB8IEkyQ19DTEFTU19TUEQsCiAJLmFsZ28JCT0gJnNtYnVzX2FsZ29yaXRobSwKIH07CiAKQEAgLTM1NCw2ICszNTUsMTAgQEAKIAl9CiAKIGZvdW5kOgorCWVycm9yID0gYWNwaV9jaGVja19yZWdpb24odnQ1OTZfc21iYSwgOCwgdnQ1OTZfZHJpdmVyLm5hbWUpOworCWlmIChlcnJvcikKKwkJcmV0dXJuIGVycm9yOworCiAJaWYgKCFyZXF1ZXN0X3JlZ2lvbih2dDU5Nl9zbWJhLCA4LCB2dDU5Nl9kcml2ZXIubmFtZSkpIHsKIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiU01CdXMgcmVnaW9uIDB4JXggYWxyZWFkeSBpbiB1c2UhXG4iLAogCQkJdnQ1OTZfc21iYSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXZvb2RvbzMuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdm9vZG9vMy5jCmluZGV4IDg4YTM0NDcuLjFkNGFlMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdm9vZG9vMy5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtdm9vZG9vMy5jCkBAIC0xLDYgKzEsNCBAQAogLyoKLSAgICB2b29kb28zLmMgLSBQYXJ0IG9mIGxtX3NlbnNvcnMsIExpbnV4IGtlcm5lbCBtb2R1bGVzIGZvciBoYXJkd2FyZQotICAgICAgICAgICAgICBtb25pdG9yaW5nCiAgICAgQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5ICBGcm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+LAogICAgIFBoaWxpcCBFZGVsYnJvY2sgPHBoaWxAbmV0cm9lZGdlLmNvbT4sCiAgICAgUmFscGggTWV0emxlciA8cmprbUB0aHAudW5pLWtvZWxuLmRlPiwgYW5kCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvc2N4MjAwX2FjYi5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL3NjeDIwMF9hY2IuYwppbmRleCA2MWFiZTBmLi5lZDc5NGIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvc2N4MjAwX2FjYi5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9zY3gyMDBfYWNiLmMKQEAgLTQ0Miw3ICs0NDIsNyBAQAogCWFkYXB0ZXItPm93bmVyID0gVEhJU19NT0RVTEU7CiAJYWRhcHRlci0+aWQgPSBJMkNfSFdfU01CVVNfU0NYMjAwOwogCWFkYXB0ZXItPmFsZ28gPSAmc2N4MjAwX2FjYl9hbGdvcml0aG07Ci0JYWRhcHRlci0+Y2xhc3MgPSBJMkNfQ0xBU1NfSFdNT047CisJYWRhcHRlci0+Y2xhc3MgPSBJMkNfQ0xBU1NfSFdNT04gfCBJMkNfQ0xBU1NfU1BEOwogCWFkYXB0ZXItPmRldi5wYXJlbnQgPSBkZXY7CiAKIAltdXRleF9pbml0KCZpZmFjZS0+bXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvS2NvbmZpZyBiL2RyaXZlcnMvaTJjL2NoaXBzL0tjb25maWcKaW5kZXggMmRhMmVkZi4uNTBlMGE0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvY2hpcHMvS2NvbmZpZworKysgYi9kcml2ZXJzL2kyYy9jaGlwcy9LY29uZmlnCkBAIC0xNCw2ICsxNCwzMiBAQAogCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgZHMxNjgyLgogCitjb25maWcgQVQyNAorCXRyaXN0YXRlICJFRVBST01zIGZyb20gbW9zdCB2ZW5kb3JzIgorCWRlcGVuZHMgb24gU1lTRlMgJiYgRVhQRVJJTUVOVEFMCisJaGVscAorCSAgRW5hYmxlIHRoaXMgZHJpdmVyIHRvIGdldCByZWFkL3dyaXRlIHN1cHBvcnQgdG8gbW9zdCBJMkMgRUVQUk9NcywKKwkgIGFmdGVyIHlvdSBjb25maWd1cmUgdGhlIGRyaXZlciB0byBrbm93IGFib3V0IGVhY2ggRUVQUk9NIG9uCisJICB5b3VyIHRhcmdldCBib2FyZC4gIFVzZSB0aGVzZSBnZW5lcmljIGNoaXAgbmFtZXMsIGluc3RlYWQgb2YKKwkgIHZlbmRvci1zcGVjaWZpYyBvbmVzIGxpa2UgYXQyNGM2NCBvciAyNGxjMDI6CisKKwkgICAgIDI0YzAwLCAyNGMwMSwgMjRjMDIsIHNwZCAocmVhZG9ubHkgMjRjMDIpLCAyNGMwNCwgMjRjMDgsCisJICAgICAyNGMxNiwgMjRjMzIsIDI0YzY0LCAyNGMxMjgsIDI0YzI1NiwgMjRjNTEyLCAyNGMxMDI0CisKKwkgIFVubGVzcyB5b3UgbGlrZSBkYXRhIGxvc3MgcHV6emxlcywgYWx3YXlzIGJlIHN1cmUgdGhhdCBhbnkgY2hpcAorCSAgeW91IGNvbmZpZ3VyZSBhcyBhIDI0YzMyICgzMiBrYml0KSBvciBsYXJnZXIgaXMgTk9UIHJlYWxseSBhCisJICAyNGMxNiAoMTYga2JpdCkgb3Igc21hbGxlciwgYW5kIHZpY2UgdmVyc2EuIE1hcmtpbmcgdGhlIGNoaXAKKwkgIGFzIHJlYWQtb25seSB3b24ndCBoZWxwIHJlY292ZXIgZnJvbSB0aGlzLiBBbHNvLCBpZiB5b3VyIGNoaXAKKwkgIGhhcyBhbnkgc29mdHdhcmUgd3JpdGUtcHJvdGVjdCBtZWNoYW5pc20geW91IG1heSB3YW50IHRvIHJldmlldyB0aGUKKwkgIGNvZGUgdG8gbWFrZSBzdXJlIHRoaXMgZHJpdmVyIHdvbid0IHR1cm4gaXQgb24gYnkgYWNjaWRlbnQuCisKKwkgIElmIHlvdSB1c2UgdGhpcyB3aXRoIGFuIFNNQnVzIGFkYXB0ZXIgaW5zdGVhZCBvZiBhbiBJMkMgYWRhcHRlciwKKwkgIGZ1bGwgZnVuY3Rpb25hbGl0eSBpcyBub3QgYXZhaWxhYmxlLiAgT25seSBzbWFsbGVyIGRldmljZXMgYXJlCisJICBzdXBwb3J0ZWQgKDI0YzE2IGFuZCBiZWxvdywgbWF4IDQga0J5dGUpLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBhdDI0LgorCiBjb25maWcgU0VOU09SU19FRVBST00KIAl0cmlzdGF0ZSAiRUVQUk9NIHJlYWRlciIKIAlkZXBlbmRzIG9uIEVYUEVSSU1FTlRBTApAQCAtMjYsOCArNTIsOCBAQAogCSAgd2lsbCBiZSBjYWxsZWQgZWVwcm9tLgogCiBjb25maWcgU0VOU09SU19QQ0Y4NTc0Ci0JdHJpc3RhdGUgIlBoaWxpcHMgUENGODU3NCBhbmQgUENGODU3NEEiCi0JZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwKKwl0cmlzdGF0ZSAiUGhpbGlwcyBQQ0Y4NTc0IGFuZCBQQ0Y4NTc0QSAoREVQUkVDQVRFRCkiCisJZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwgJiYgR1BJT19QQ0Y4NTdYID0gIm4iCiAJZGVmYXVsdCBuCiAJaGVscAogCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIFBoaWxpcHMgUENGODU3NCBhbmQgCkBAIC0zNiwxMiArNjIsMTYgQEAKIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHBjZjg1NzQuCiAKKwkgIFRoaXMgZHJpdmVyIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgZHJvcHBlZCBzb29uLiBVc2UKKwkgIGRyaXZlcnMvZ3Bpby9wY2Y4NTd4LmMgaW5zdGVhZC4KKwogCSAgVGhlc2UgZGV2aWNlcyBhcmUgaGFyZCB0byBkZXRlY3QgYW5kIHJhcmVseSBmb3VuZCBvbiBtYWluc3RyZWFtCiAJICBoYXJkd2FyZS4gIElmIHVuc3VyZSwgc2F5IE4uCiAKIGNvbmZpZyBQQ0Y4NTc1Ci0JdHJpc3RhdGUgIlBoaWxpcHMgUENGODU3NSIKKwl0cmlzdGF0ZSAiUGhpbGlwcyBQQ0Y4NTc1IChERVBSRUNBVEVEKSIKIAlkZWZhdWx0IG4KKwlkZXBlbmRzIG9uIEdQSU9fUENGODU3WCA9ICJuIgogCWhlbHAKIAkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBQaGlsaXBzIFBDRjg1NzUgY2hpcC4KIAkgIFRoaXMgY2hpcCBpcyBhIDE2LWJpdCBJL08gZXhwYW5kZXIgZm9yIHRoZSBJMkMgYnVzLiAgU2V2ZXJhbCBvdGhlcgpAQCAtNTAsMTIgKzgwLDE1IEBACiAJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBwY2Y4NTc1LgogCisJICBUaGlzIGRyaXZlciBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIGRyb3BwZWQgc29vbi4gVXNlCisJICBkcml2ZXJzL2dwaW8vcGNmODU3eC5jIGluc3RlYWQuCisKIAkgIFRoaXMgZGV2aWNlIGlzIGhhcmQgdG8gZGV0ZWN0IGFuZCBpcyByYXJlbHkgZm91bmQgb24gbWFpbnN0cmVhbQogCSAgaGFyZHdhcmUuICBJZiB1bnN1cmUsIHNheSBOLgogCiBjb25maWcgU0VOU09SU19QQ0E5NTM5CiAJdHJpc3RhdGUgIlBoaWxpcHMgUENBOTUzOSAxNi1iaXQgSS9PIHBvcnQgKERFUFJFQ0FURUQpIgotCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMICYmIEdQSU9fUENBOTUzOSA9ICJuIgorCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMICYmIEdQSU9fUENBOTUzWCA9ICJuIgogCWhlbHAKIAkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciB0aGUgUGhpbGlwcyBQQ0E5NTM5CiAJICAxNi1iaXQgSS9PIHBvcnQuCkBAIC02NCw3ICs5Nyw3IEBACiAJICB3aWxsIGJlIGNhbGxlZCBwY2E5NTM5LgogCiAJICBUaGlzIGRyaXZlciBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIGRyb3BwZWQgc29vbi4gVXNlCi0JICBkcml2ZXJzL2dwaW8vcGNhOTUzOS5jIGluc3RlYWQuCisJICBkcml2ZXJzL2dwaW8vcGNhOTUzeC5jIGluc3RlYWQuCiAKIGNvbmZpZyBTRU5TT1JTX1BDRjg1OTEKIAl0cmlzdGF0ZSAiUGhpbGlwcyBQQ0Y4NTkxIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvTWFrZWZpbGUgYi9kcml2ZXJzL2kyYy9jaGlwcy9NYWtlZmlsZQppbmRleCBlNDdhY2EwLi4zOWUzZTY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9jaGlwcy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2kyYy9jaGlwcy9NYWtlZmlsZQpAQCAtMTAsNiArMTAsNyBAQAogIwogCiBvYmotJChDT05GSUdfRFMxNjgyKQkJKz0gZHMxNjgyLm8KK29iai0kKENPTkZJR19BVDI0KQkJKz0gYXQyNC5vCiBvYmotJChDT05GSUdfU0VOU09SU19FRVBST00pCSs9IGVlcHJvbS5vCiBvYmotJChDT05GSUdfU0VOU09SU19NQVg2ODc1KQkrPSBtYXg2ODc1Lm8KIG9iai0kKENPTkZJR19TRU5TT1JTX1BDQTk1MzkpCSs9IHBjYTk1MzkubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvYXQyNC5jIGIvZHJpdmVycy9pMmMvY2hpcHMvYXQyNC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NjRjOTQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2kyYy9jaGlwcy9hdDI0LmMKQEAgLTAsMCArMSw1ODMgQEAKKy8qCisgKiBhdDI0LmMgLSBoYW5kbGUgbW9zdCBJMkMgRUVQUk9NcworICoKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA3IERhdmlkIEJyb3duZWxsCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggV29sZnJhbSBTYW5nLCBQZW5ndXRyb25peAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2xvZzIuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvaTJjL2F0MjQuaD4KKworLyoKKyAqIEkyQyBFRVBST01zIGZyb20gbW9zdCB2ZW5kb3JzIGFyZSBpbmV4cGVuc2l2ZSBhbmQgbW9zdGx5IGludGVyY2hhbmdlYWJsZS4KKyAqIERpZmZlcmVuY2VzIGJldHdlZW4gZGlmZmVyZW50IHZlbmRvciBwcm9kdWN0IGxpbmVzIChsaWtlIEF0bWVsIEFUMjRDIG9yCisgKiBNaWNyb0NoaXAgMjRMQywgZXRjKSB3b24ndCBtdWNoIG1hdHRlciBmb3IgdHlwaWNhbCByZWFkL3dyaXRlIGFjY2Vzcy4KKyAqIFRoZXJlIGFyZSBhbHNvIEkyQyBSQU0gY2hpcHMsIGxpa2V3aXNlIGludGVyY2hhbmdlYWJsZS4gT25lIGV4YW1wbGUKKyAqIHdvdWxkIGJlIHRoZSBQQ0Y4NTcwLCB3aGljaCBhY3RzIGxpa2UgYSAyNGMwMiBFRVBST00gKDI1NiBieXRlcykuCisgKgorICogSG93ZXZlciwgbWlzY29uZmlndXJhdGlvbiBjYW4gbG9zZSBkYXRhLiAiU2V0IDE2LWJpdCBtZW1vcnkgYWRkcmVzcyIKKyAqIHRvIGEgcGFydCB3aXRoIDgtYml0IGFkZHJlc3Npbmcgd2lsbCBvdmVyd3JpdGUgZGF0YS4gV3JpdGluZyB3aXRoIHRvbworICogYmlnIGEgcGFnZSBzaXplIGFsc28gbG9zZXMgZGF0YS4gQW5kIGl0J3Mgbm90IHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhlCisgKiBjb252ZW50aW9uYWwgYWRkcmVzc2VzIDB4NTAuLjB4NTcgb25seSBob2xkIGVlcHJvbXM7IGEgUENGODU2MyBSVEMKKyAqIHVzZXMgMHg1MSwgZm9yIGp1c3Qgb25lIGV4YW1wbGUuCisgKgorICogQWNjb3JkaW5nbHksIGV4cGxpY2l0IGJvYXJkLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZGF0YSBzaG91bGQgYmUgdXNlZAorICogaW4gYWxtb3N0IGFsbCBjYXNlcy4gKE9uZSBwYXJ0aWFsIGV4Y2VwdGlvbiBpcyBhbiBTTUJ1cyB1c2VkIHRvIGFjY2VzcworICogIlNQRCIgZGF0YSBmb3IgRFJBTSBzdGlja3MuIFRob3NlIG9ubHkgdXNlIDI0YzAyIEVFUFJPTXMuKQorICoKKyAqIFNvIHRoaXMgZHJpdmVyIHVzZXMgIm5ldyBzdHlsZSIgSTJDIGRyaXZlciBiaW5kaW5nLCBleHBlY3RpbmcgdG8gYmUKKyAqIHRvbGQgd2hhdCBkZXZpY2VzIGV4aXN0LiBUaGF0IG1heSBiZSBpbiBhcmNoL1gvbWFjaC1ZL2JvYXJkLVouYyBvcgorICogc2ltaWxhciBrZXJuZWwtcmVzaWRlbnQgdGFibGVzOyBvciwgY29uZmlndXJhdGlvbiBkYXRhIGNvbWluZyBmcm9tCisgKiBhIGJvb3Rsb2FkZXIuCisgKgorICogT3RoZXIgdGhhbiBiaW5kaW5nIG1vZGVsLCBjdXJyZW50IGRpZmZlcmVuY2VzIGZyb20gImVlcHJvbSIgZHJpdmVyIGFyZQorICogdGhhdCB0aGlzIG9uZSBoYW5kbGVzIHdyaXRlIGFjY2VzcyBhbmQgaXNuJ3QgcmVzdHJpY3RlZCB0byAyNGMwMiBkZXZpY2VzLgorICogSXQgYWxzbyBoYW5kbGVzIGxhcmdlciBkZXZpY2VzICgzMiBrYml0IGFuZCB1cCkgd2l0aCB0d28tYnl0ZSBhZGRyZXNzZXMsCisgKiB3aGljaCB3b24ndCB3b3JrIG9uIHB1cmUgU01CdXMgc3lzdGVtcy4KKyAqLworCitzdHJ1Y3QgYXQyNF9kYXRhIHsKKwlzdHJ1Y3QgYXQyNF9wbGF0Zm9ybV9kYXRhIGNoaXA7CisJYm9vbCB1c2Vfc21idXM7CisKKwkvKgorCSAqIExvY2sgcHJvdGVjdHMgYWdhaW5zdCBhY3Rpdml0aWVzIGZyb20gb3RoZXIgTGludXggdGFza3MsCisJICogYnV0IG5vdCBmcm9tIGNoYW5nZXMgYnkgb3RoZXIgSTJDIG1hc3RlcnMuCisJICovCisJc3RydWN0IG11dGV4IGxvY2s7CisJc3RydWN0IGJpbl9hdHRyaWJ1dGUgYmluOworCisJdTggKndyaXRlYnVmOworCXVuc2lnbmVkIHdyaXRlX21heDsKKwl1bnNpZ25lZCBudW1fYWRkcmVzc2VzOworCisJLyoKKwkgKiBTb21lIGNoaXBzIHRpZSB1cCBtdWx0aXBsZSBJMkMgYWRkcmVzc2VzOyBkdW1teSBkZXZpY2VzIHJlc2VydmUKKwkgKiB0aGVtIGZvciB1cywgYW5kIHdlJ2xsIHVzZSB0aGVtIHdpdGggU01CdXMgY2FsbHMuCisJICovCisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudFtdOworfTsKKworLyoKKyAqIFRoaXMgcGFyYW1ldGVyIGlzIHRvIGhlbHAgdGhpcyBkcml2ZXIgYXZvaWQgYmxvY2tpbmcgb3RoZXIgZHJpdmVycyBvdXQKKyAqIG9mIEkyQyBmb3IgcG90ZW50aWFsbHkgdHJvdWJsZXNvbWUgYW1vdW50cyBvZiB0aW1lLiBXaXRoIGEgMTAwIGtIeiBJMkMKKyAqIGNsb2NrLCBvbmUgMjU2IGJ5dGUgcmVhZCB0YWtlcyBhYm91dCAxLzQzIHNlY29uZCB3aGljaCBpcyBleGNlc3NpdmU7CisgKiBidXQgdGhlIDEvMTcwIHNlY29uZCBpdCB0YWtlcyBhdCA0MDAga0h6IG1heSBiZSBxdWl0ZSByZWFzb25hYmxlOyBhbmQKKyAqIGF0IDEgTUh6IChGbSspIGEgMS80MzAgc2Vjb25kIGRlbGF5IGNvdWxkIGVhc2lseSBiZSBpbnZpc2libGUuCisgKgorICogVGhpcyB2YWx1ZSBpcyBmb3JjZWQgdG8gYmUgYSBwb3dlciBvZiB0d28gc28gdGhhdCB3cml0ZXMgYWxpZ24gb24gcGFnZXMuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBpb19saW1pdCA9IDEyODsKK21vZHVsZV9wYXJhbShpb19saW1pdCwgdWludCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKGlvX2xpbWl0LCAiTWF4aW11bSBieXRlcyBwZXIgSS9PIChkZWZhdWx0IDEyOCkiKTsKKworLyoKKyAqIFNwZWNzIG9mdGVuIGFsbG93IDUgbXNlYyBmb3IgYSBwYWdlIHdyaXRlLCBzb21ldGltZXMgMjAgbXNlYzsKKyAqIGl0J3MgaW1wb3J0YW50IHRvIHJlY292ZXIgZnJvbSB3cml0ZSB0aW1lb3V0cy4KKyAqLworc3RhdGljIHVuc2lnbmVkIHdyaXRlX3RpbWVvdXQgPSAyNTsKK21vZHVsZV9wYXJhbSh3cml0ZV90aW1lb3V0LCB1aW50LCAwKTsKK01PRFVMRV9QQVJNX0RFU0Mod3JpdGVfdGltZW91dCwgIlRpbWUgKGluIG1zKSB0byB0cnkgd3JpdGVzIChkZWZhdWx0IDI1KSIpOworCisjZGVmaW5lIEFUMjRfU0laRV9CWVRFTEVOIDUKKyNkZWZpbmUgQVQyNF9TSVpFX0ZMQUdTIDgKKworI2RlZmluZSBBVDI0X0JJVE1BU0soeCkgKEJJVCh4KSAtIDEpCisKKy8qIGNyZWF0ZSBub24temVybyBtYWdpYyB2YWx1ZSBmb3IgZ2l2ZW4gZWVwcm9tIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgQVQyNF9ERVZJQ0VfTUFHSUMoX2xlbiwgX2ZsYWdzKSAJCVwKKwkoKDEgPDwgQVQyNF9TSVpFX0ZMQUdTIHwgKF9mbGFncykpIAkJXAorCSAgICA8PCBBVDI0X1NJWkVfQllURUxFTiB8IGlsb2cyKF9sZW4pKQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgYXQyNF9pZHNbXSA9IHsKKwkvKiBuZWVkcyA4IGFkZHJlc3NlcyBhcyBBMC1BMiBhcmUgaWdub3JlZCAqLworCXsgIjI0YzAwIiwgQVQyNF9ERVZJQ0VfTUFHSUMoMTI4IC8gOCwgQVQyNF9GTEFHX1RBS0U4QUREUikgfSwKKwkvKiBvbGQgdmFyaWFudHMgY2FuJ3QgYmUgaGFuZGxlZCB3aXRoIHRoaXMgZ2VuZXJpYyBlbnRyeSEgKi8KKwl7ICIyNGMwMSIsIEFUMjRfREVWSUNFX01BR0lDKDEwMjQgLyA4LCAwKSB9LAorCXsgIjI0YzAyIiwgQVQyNF9ERVZJQ0VfTUFHSUMoMjA0OCAvIDgsIDApIH0sCisJLyogc3BkIGlzIGEgMjRjMDIgaW4gbWVtb3J5IERJTU1zICovCisJeyAic3BkIiwgQVQyNF9ERVZJQ0VfTUFHSUMoMjA0OCAvIDgsCisJCUFUMjRfRkxBR19SRUFET05MWSB8IEFUMjRfRkxBR19JUlVHTykgfSwKKwl7ICIyNGMwNCIsIEFUMjRfREVWSUNFX01BR0lDKDQwOTYgLyA4LCAwKSB9LAorCS8qIDI0cmYwOCBxdWlyayBpcyBoYW5kbGVkIGF0IGkyYy1jb3JlICovCisJeyAiMjRjMDgiLCBBVDI0X0RFVklDRV9NQUdJQyg4MTkyIC8gOCwgMCkgfSwKKwl7ICIyNGMxNiIsIEFUMjRfREVWSUNFX01BR0lDKDE2Mzg0IC8gOCwgMCkgfSwKKwl7ICIyNGMzMiIsIEFUMjRfREVWSUNFX01BR0lDKDMyNzY4IC8gOCwgQVQyNF9GTEFHX0FERFIxNikgfSwKKwl7ICIyNGM2NCIsIEFUMjRfREVWSUNFX01BR0lDKDY1NTM2IC8gOCwgQVQyNF9GTEFHX0FERFIxNikgfSwKKwl7ICIyNGMxMjgiLCBBVDI0X0RFVklDRV9NQUdJQygxMzEwNzIgLyA4LCBBVDI0X0ZMQUdfQUREUjE2KSB9LAorCXsgIjI0YzI1NiIsIEFUMjRfREVWSUNFX01BR0lDKDI2MjE0NCAvIDgsIEFUMjRfRkxBR19BRERSMTYpIH0sCisJeyAiMjRjNTEyIiwgQVQyNF9ERVZJQ0VfTUFHSUMoNTI0Mjg4IC8gOCwgQVQyNF9GTEFHX0FERFIxNikgfSwKKwl7ICIyNGMxMDI0IiwgQVQyNF9ERVZJQ0VfTUFHSUMoMTA0ODU3NiAvIDgsIEFUMjRfRkxBR19BRERSMTYpIH0sCisJeyAiYXQyNCIsIDAgfSwKKwl7IC8qIEVORCBPRiBMSVNUICovIH0KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKGkyYywgYXQyNF9pZHMpOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICogVGhpcyByb3V0aW5lIHN1cHBvcnRzIGNoaXBzIHdoaWNoIGNvbnN1bWUgbXVsdGlwbGUgSTJDIGFkZHJlc3Nlcy4gSXQKKyAqIGNvbXB1dGVzIHRoZSBhZGRyZXNzaW5nIGluZm9ybWF0aW9uIHRvIGJlIHVzZWQgZm9yIGEgZ2l2ZW4gci93IHJlcXVlc3QuCisgKiBBc3N1bWVzIHRoYXQgc2FuaXR5IGNoZWNrcyBmb3Igb2Zmc2V0IGhhcHBlbmVkIGF0IHN5c2ZzLWxheWVyLgorICovCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgKmF0MjRfdHJhbnNsYXRlX29mZnNldChzdHJ1Y3QgYXQyNF9kYXRhICphdDI0LAorCQl1bnNpZ25lZCAqb2Zmc2V0KQoreworCXVuc2lnbmVkIGk7CisKKwlpZiAoYXQyNC0+Y2hpcC5mbGFncyAmIEFUMjRfRkxBR19BRERSMTYpIHsKKwkJaSA9ICpvZmZzZXQgPj4gMTY7CisJCSpvZmZzZXQgJj0gMHhmZmZmOworCX0gZWxzZSB7CisJCWkgPSAqb2Zmc2V0ID4+IDg7CisJCSpvZmZzZXQgJj0gMHhmZjsKKwl9CisKKwlyZXR1cm4gYXQyNC0+Y2xpZW50W2ldOworfQorCitzdGF0aWMgc3NpemVfdCBhdDI0X2VlcHJvbV9yZWFkKHN0cnVjdCBhdDI0X2RhdGEgKmF0MjQsIGNoYXIgKmJ1ZiwKKwkJdW5zaWduZWQgb2Zmc2V0LCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IGkyY19tc2cgbXNnWzJdOworCXU4IG1zZ2J1ZlsyXTsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50OworCWludCBzdGF0dXMsIGk7CisKKwltZW1zZXQobXNnLCAwLCBzaXplb2YobXNnKSk7CisKKwkvKgorCSAqIFJFVklTSVQgc29tZSBtdWx0aS1hZGRyZXNzIGNoaXBzIGRvbid0IHJvbGxvdmVyIHBhZ2UgcmVhZHMgdG8KKwkgKiB0aGUgbmV4dCBzbGF2ZSBhZGRyZXNzLCBzbyB3ZSBtYXkgbmVlZCB0byB0cnVuY2F0ZSB0aGUgY291bnQuCisJICogVGhvc2UgY2hpcHMgbWlnaHQgbmVlZCBhbm90aGVyIHF1aXJrIGZsYWcuCisJICoKKwkgKiBJZiB0aGUgcmVhbCBoYXJkd2FyZSB1c2VkIGZvdXIgYWRqYWNlbnQgMjRjMDIgY2hpcHMgYW5kIHRoYXQKKwkgKiB3ZXJlIG1pc2NvbmZpZ3VyZWQgYXMgb25lIDI0YzA4LCB0aGF0IHdvdWxkIGJlIGEgc2ltaWxhciBlZmZlY3Q6CisJICogb25lICJlZXByb20iIGZpbGUgbm90IGZvdXIsIGJ1dCBsYXJnZXIgcmVhZHMgd291bGQgZmFpbCB3aGVuCisJICogdGhleSBjcm9zc2VkIGNlcnRhaW4gcGFnZXMuCisJICovCisKKwkvKgorCSAqIFNsYXZlIGFkZHJlc3MgYW5kIGJ5dGUgb2Zmc2V0IGRlcml2ZSBmcm9tIHRoZSBvZmZzZXQuIEFsd2F5cworCSAqIHNldCB0aGUgYnl0ZSBhZGRyZXNzOyBvbiBhIG11bHRpLW1hc3RlciBib2FyZCwgYW5vdGhlciBtYXN0ZXIKKwkgKiBtYXkgaGF2ZSBjaGFuZ2VkIHRoZSBjaGlwJ3MgImN1cnJlbnQiIGFkZHJlc3MgcG9pbnRlci4KKwkgKi8KKwljbGllbnQgPSBhdDI0X3RyYW5zbGF0ZV9vZmZzZXQoYXQyNCwgJm9mZnNldCk7CisKKwlpZiAoY291bnQgPiBpb19saW1pdCkKKwkJY291bnQgPSBpb19saW1pdDsKKworCS8qIFNtYWxsZXIgZWVwcm9tcyBjYW4gd29yayBnaXZlbiBzb21lIFNNQnVzIGV4dGVuc2lvbiBjYWxscyAqLworCWlmIChhdDI0LT51c2Vfc21idXMpIHsKKwkJaWYgKGNvdW50ID4gSTJDX1NNQlVTX0JMT0NLX01BWCkKKwkJCWNvdW50ID0gSTJDX1NNQlVTX0JMT0NLX01BWDsKKwkJc3RhdHVzID0gaTJjX3NtYnVzX3JlYWRfaTJjX2Jsb2NrX2RhdGEoY2xpZW50LCBvZmZzZXQsCisJCQkJY291bnQsIGJ1Zik7CisJCWRldl9kYmcoJmNsaWVudC0+ZGV2LCAic21idXMgcmVhZCAlemRAJWQgLS0+ICVkXG4iLAorCQkJCWNvdW50LCBvZmZzZXQsIHN0YXR1cyk7CisJCXJldHVybiAoc3RhdHVzIDwgMCkgPyAtRUlPIDogc3RhdHVzOworCX0KKworCS8qCisJICogV2hlbiB3ZSBoYXZlIGEgYmV0dGVyIGNob2ljZSB0aGFuIFNNQnVzIGNhbGxzLCB1c2UgYSBjb21iaW5lZAorCSAqIEkyQyBtZXNzYWdlLiBXcml0ZSBhZGRyZXNzOyB0aGVuIHJlYWQgdXAgdG8gaW9fbGltaXQgZGF0YSBieXRlcy4KKwkgKiBOb3RlIHRoYXQgcmVhZCBwYWdlIHJvbGxvdmVyIGhlbHBzIHVzIGhlcmUgKHVubGlrZSB3cml0ZXMpLgorCSAqIG1zZ2J1ZiBpcyB1OCBhbmQgd2lsbCBjYXN0IHRvIG91ciBuZWVkcy4KKwkgKi8KKwlpID0gMDsKKwlpZiAoYXQyNC0+Y2hpcC5mbGFncyAmIEFUMjRfRkxBR19BRERSMTYpCisJCW1zZ2J1ZltpKytdID0gb2Zmc2V0ID4+IDg7CisJbXNnYnVmW2krK10gPSBvZmZzZXQ7CisKKwltc2dbMF0uYWRkciA9IGNsaWVudC0+YWRkcjsKKwltc2dbMF0uYnVmID0gbXNnYnVmOworCW1zZ1swXS5sZW4gPSBpOworCisJbXNnWzFdLmFkZHIgPSBjbGllbnQtPmFkZHI7CisJbXNnWzFdLmZsYWdzID0gSTJDX01fUkQ7CisJbXNnWzFdLmJ1ZiA9IGJ1ZjsKKwltc2dbMV0ubGVuID0gY291bnQ7CisKKwlzdGF0dXMgPSBpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCBtc2csIDIpOworCWRldl9kYmcoJmNsaWVudC0+ZGV2LCAiaTJjIHJlYWQgJXpkQCVkIC0tPiAlZFxuIiwKKwkJCWNvdW50LCBvZmZzZXQsIHN0YXR1cyk7CisKKwlpZiAoc3RhdHVzID09IDIpCisJCXJldHVybiBjb3VudDsKKwllbHNlIGlmIChzdGF0dXMgPj0gMCkKKwkJcmV0dXJuIC1FSU87CisJZWxzZQorCQlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgc3NpemVfdCBhdDI0X2Jpbl9yZWFkKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYXR0ciwKKwkJY2hhciAqYnVmLCBsb2ZmX3Qgb2ZmLCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IGF0MjRfZGF0YSAqYXQyNDsKKwlzc2l6ZV90IHJldHZhbCA9IDA7CisKKwlhdDI0ID0gZGV2X2dldF9kcnZkYXRhKGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgZGV2aWNlLCBrb2JqKSk7CisKKwlpZiAodW5saWtlbHkoIWNvdW50KSkKKwkJcmV0dXJuIGNvdW50OworCisJLyoKKwkgKiBSZWFkIGRhdGEgZnJvbSBjaGlwLCBwcm90ZWN0aW5nIGFnYWluc3QgY29uY3VycmVudCB1cGRhdGVzCisJICogZnJvbSB0aGlzIGhvc3QsIGJ1dCBub3QgZnJvbSBvdGhlciBJMkMgbWFzdGVycy4KKwkgKi8KKwltdXRleF9sb2NrKCZhdDI0LT5sb2NrKTsKKworCXdoaWxlIChjb3VudCkgeworCQlzc2l6ZV90CXN0YXR1czsKKworCQlzdGF0dXMgPSBhdDI0X2VlcHJvbV9yZWFkKGF0MjQsIGJ1Ziwgb2ZmLCBjb3VudCk7CisJCWlmIChzdGF0dXMgPD0gMCkgeworCQkJaWYgKHJldHZhbCA9PSAwKQorCQkJCXJldHZhbCA9IHN0YXR1czsKKwkJCWJyZWFrOworCQl9CisJCWJ1ZiArPSBzdGF0dXM7CisJCW9mZiArPSBzdGF0dXM7CisJCWNvdW50IC09IHN0YXR1czsKKwkJcmV0dmFsICs9IHN0YXR1czsKKwl9CisKKwltdXRleF91bmxvY2soJmF0MjQtPmxvY2spOworCisJcmV0dXJuIHJldHZhbDsKK30KKworCisvKgorICogUkVWSVNJVDogZXhwb3J0IGF0MjRfYmlue3JlYWQsd3JpdGV9KCkgdG8gbGV0IG90aGVyIGtlcm5lbCBjb2RlIHVzZQorICogZWVwcm9tIGRhdGEuIEZvciBleGFtcGxlLCBpdCBtaWdodCBob2xkIGEgYm9hcmQncyBFdGhlcm5ldCBhZGRyZXNzLCBvcgorICogYm9hcmQtc3BlY2lmaWMgY2FsaWJyYXRpb24gZGF0YSBnZW5lcmF0ZWQgb24gdGhlIG1hbnVmYWN0dXJpbmcgZmxvb3IuCisgKi8KKworCisvKgorICogTm90ZSB0aGF0IGlmIHRoZSBoYXJkd2FyZSB3cml0ZS1wcm90ZWN0IHBpbiBpcyBwdWxsZWQgaGlnaCwgdGhlIHdob2xlCisgKiBjaGlwIGlzIG5vcm1hbGx5IHdyaXRlIHByb3RlY3RlZC4gQnV0IHRoZXJlIGFyZSBwbGVudHkgb2YgcHJvZHVjdAorICogdmFyaWFudHMgaGVyZSwgaW5jbHVkaW5nIE9UUCBmdXNlcyBhbmQgcGFydGlhbCBjaGlwIHByb3RlY3QuCisgKgorICogV2Ugb25seSB1c2UgcGFnZSBtb2RlIHdyaXRlczsgdGhlIGFsdGVybmF0aXZlIGlzIHNsb29vb3cuIFRoaXMgcm91dGluZQorICogd3JpdGVzIGF0IG1vc3Qgb25lIHBhZ2UuCisgKi8KK3N0YXRpYyBzc2l6ZV90IGF0MjRfZWVwcm9tX3dyaXRlKHN0cnVjdCBhdDI0X2RhdGEgKmF0MjQsIGNoYXIgKmJ1ZiwKKwkJdW5zaWduZWQgb2Zmc2V0LCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudDsKKwlzdHJ1Y3QgaTJjX21zZyBtc2c7CisJc3NpemVfdCBzdGF0dXM7CisJdW5zaWduZWQgbG9uZyB0aW1lb3V0LCB3cml0ZV90aW1lOworCXVuc2lnbmVkIG5leHRfcGFnZTsKKworCS8qIEdldCBjb3JyZXNwb25kaW5nIEkyQyBhZGRyZXNzIGFuZCBhZGp1c3Qgb2Zmc2V0ICovCisJY2xpZW50ID0gYXQyNF90cmFuc2xhdGVfb2Zmc2V0KGF0MjQsICZvZmZzZXQpOworCisJLyogd3JpdGVfbWF4IGlzIGF0IG1vc3QgYSBwYWdlICovCisJaWYgKGNvdW50ID4gYXQyNC0+d3JpdGVfbWF4KQorCQljb3VudCA9IGF0MjQtPndyaXRlX21heDsKKworCS8qIE5ldmVyIHJvbGwgb3ZlciBiYWNrd2FyZHMsIHRvIHRoZSBzdGFydCBvZiB0aGlzIHBhZ2UgKi8KKwluZXh0X3BhZ2UgPSByb3VuZHVwKG9mZnNldCArIDEsIGF0MjQtPmNoaXAucGFnZV9zaXplKTsKKwlpZiAob2Zmc2V0ICsgY291bnQgPiBuZXh0X3BhZ2UpCisJCWNvdW50ID0gbmV4dF9wYWdlIC0gb2Zmc2V0OworCisJLyogSWYgd2UnbGwgdXNlIEkyQyBjYWxscyBmb3IgSS9PLCBzZXQgdXAgdGhlIG1lc3NhZ2UgKi8KKwlpZiAoIWF0MjQtPnVzZV9zbWJ1cykgeworCQlpbnQgaSA9IDA7CisKKwkJbXNnLmFkZHIgPSBjbGllbnQtPmFkZHI7CisJCW1zZy5mbGFncyA9IDA7CisKKwkJLyogbXNnLmJ1ZiBpcyB1OCBhbmQgY2FzdHMgd2lsbCBtYXNrIHRoZSB2YWx1ZXMgKi8KKwkJbXNnLmJ1ZiA9IGF0MjQtPndyaXRlYnVmOworCQlpZiAoYXQyNC0+Y2hpcC5mbGFncyAmIEFUMjRfRkxBR19BRERSMTYpCisJCQltc2cuYnVmW2krK10gPSBvZmZzZXQgPj4gODsKKworCQltc2cuYnVmW2krK10gPSBvZmZzZXQ7CisJCW1lbWNweSgmbXNnLmJ1ZltpXSwgYnVmLCBjb3VudCk7CisJCW1zZy5sZW4gPSBpICsgY291bnQ7CisJfQorCisJLyoKKwkgKiBXcml0ZXMgZmFpbCBpZiB0aGUgcHJldmlvdXMgb25lIGRpZG4ndCBjb21wbGV0ZSB5ZXQuIFdlIG1heQorCSAqIGxvb3AgYSBmZXcgdGltZXMgdW50aWwgdGhpcyBvbmUgc3VjY2VlZHMsIHdhaXRpbmcgYXQgbGVhc3QKKwkgKiBsb25nIGVub3VnaCBmb3Igb25lIGVudGlyZSBwYWdlIHdyaXRlIHRvIHdvcmsuCisJICovCisJdGltZW91dCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKHdyaXRlX3RpbWVvdXQpOworCWRvIHsKKwkJd3JpdGVfdGltZSA9IGppZmZpZXM7CisJCWlmIChhdDI0LT51c2Vfc21idXMpIHsKKwkJCXN0YXR1cyA9IGkyY19zbWJ1c193cml0ZV9pMmNfYmxvY2tfZGF0YShjbGllbnQsCisJCQkJCW9mZnNldCwgY291bnQsIGJ1Zik7CisJCQlpZiAoc3RhdHVzID09IDApCisJCQkJc3RhdHVzID0gY291bnQ7CisJCX0gZWxzZSB7CisJCQlzdGF0dXMgPSBpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnLCAxKTsKKwkJCWlmIChzdGF0dXMgPT0gMSkKKwkJCQlzdGF0dXMgPSBjb3VudDsKKwkJfQorCQlkZXZfZGJnKCZjbGllbnQtPmRldiwgIndyaXRlICV6ZEAlZCAtLT4gJXpkICglbGQpXG4iLAorCQkJCWNvdW50LCBvZmZzZXQsIHN0YXR1cywgamlmZmllcyk7CisKKwkJaWYgKHN0YXR1cyA9PSBjb3VudCkKKwkJCXJldHVybiBjb3VudDsKKworCQkvKiBSRVZJU0lUOiBhdCBIWj0xMDAsIHRoaXMgaXMgc2xvb29vdyAqLworCQltc2xlZXAoMSk7CisJfSB3aGlsZSAodGltZV9iZWZvcmUod3JpdGVfdGltZSwgdGltZW91dCkpOworCisJcmV0dXJuIC1FVElNRURPVVQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGF0MjRfYmluX3dyaXRlKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYXR0ciwKKwkJY2hhciAqYnVmLCBsb2ZmX3Qgb2ZmLCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IGF0MjRfZGF0YSAqYXQyNDsKKwlzc2l6ZV90IHJldHZhbCA9IDA7CisKKwlhdDI0ID0gZGV2X2dldF9kcnZkYXRhKGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgZGV2aWNlLCBrb2JqKSk7CisKKwlpZiAodW5saWtlbHkoIWNvdW50KSkKKwkJcmV0dXJuIGNvdW50OworCisJLyoKKwkgKiBXcml0ZSBkYXRhIHRvIGNoaXAsIHByb3RlY3RpbmcgYWdhaW5zdCBjb25jdXJyZW50IHVwZGF0ZXMKKwkgKiBmcm9tIHRoaXMgaG9zdCwgYnV0IG5vdCBmcm9tIG90aGVyIEkyQyBtYXN0ZXJzLgorCSAqLworCW11dGV4X2xvY2soJmF0MjQtPmxvY2spOworCisJd2hpbGUgKGNvdW50KSB7CisJCXNzaXplX3QJc3RhdHVzOworCisJCXN0YXR1cyA9IGF0MjRfZWVwcm9tX3dyaXRlKGF0MjQsIGJ1Ziwgb2ZmLCBjb3VudCk7CisJCWlmIChzdGF0dXMgPD0gMCkgeworCQkJaWYgKHJldHZhbCA9PSAwKQorCQkJCXJldHZhbCA9IHN0YXR1czsKKwkJCWJyZWFrOworCQl9CisJCWJ1ZiArPSBzdGF0dXM7CisJCW9mZiArPSBzdGF0dXM7CisJCWNvdW50IC09IHN0YXR1czsKKwkJcmV0dmFsICs9IHN0YXR1czsKKwl9CisKKwltdXRleF91bmxvY2soJmF0MjQtPmxvY2spOworCisJcmV0dXJuIHJldHZhbDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIGludCBhdDI0X3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKK3sKKwlzdHJ1Y3QgYXQyNF9wbGF0Zm9ybV9kYXRhIGNoaXA7CisJYm9vbCB3cml0YWJsZTsKKwlib29sIHVzZV9zbWJ1cyA9IGZhbHNlOworCXN0cnVjdCBhdDI0X2RhdGEgKmF0MjQ7CisJaW50IGVycjsKKwl1bnNpZ25lZCBpLCBudW1fYWRkcmVzc2VzOworCWtlcm5lbF91bG9uZ190IG1hZ2ljOworCisJaWYgKGNsaWVudC0+ZGV2LnBsYXRmb3JtX2RhdGEpIHsKKwkJY2hpcCA9ICooc3RydWN0IGF0MjRfcGxhdGZvcm1fZGF0YSAqKWNsaWVudC0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJfSBlbHNlIHsKKwkJaWYgKCFpZC0+ZHJpdmVyX2RhdGEpIHsKKwkJCWVyciA9IC1FTk9ERVY7CisJCQlnb3RvIGVycl9vdXQ7CisJCX0KKwkJbWFnaWMgPSBpZC0+ZHJpdmVyX2RhdGE7CisJCWNoaXAuYnl0ZV9sZW4gPSBCSVQobWFnaWMgJiBBVDI0X0JJVE1BU0soQVQyNF9TSVpFX0JZVEVMRU4pKTsKKwkJbWFnaWMgPj49IEFUMjRfU0laRV9CWVRFTEVOOworCQljaGlwLmZsYWdzID0gbWFnaWMgJiBBVDI0X0JJVE1BU0soQVQyNF9TSVpFX0ZMQUdTKTsKKwkJLyoKKwkJICogVGhpcyBpcyBzbG93LCBidXQgd2UgY2FuJ3Qga25vdyBhbGwgZWVwcm9tcywgc28gd2UgYmV0dGVyCisJCSAqIHBsYXkgc2FmZS4gU3BlY2lmeWluZyBjdXN0b20gZWVwcm9tLXR5cGVzIHZpYSBwbGF0Zm9ybV9kYXRhCisJCSAqIGlzIHJlY29tbWVuZGVkIGFueWhvdy4KKwkJICovCisJCWNoaXAucGFnZV9zaXplID0gMTsKKwl9CisKKwlpZiAoIWlzX3Bvd2VyX29mXzIoY2hpcC5ieXRlX2xlbikpCisJCWRldl93YXJuKCZjbGllbnQtPmRldiwKKwkJCSJieXRlX2xlbiBsb29rcyBzdXNwaWNpb3VzIChubyBwb3dlciBvZiAyKSFcbiIpOworCWlmICghaXNfcG93ZXJfb2ZfMihjaGlwLnBhZ2Vfc2l6ZSkpCisJCWRldl93YXJuKCZjbGllbnQtPmRldiwKKwkJCSJwYWdlX3NpemUgbG9va3Mgc3VzcGljaW91cyAobm8gcG93ZXIgb2YgMikhXG4iKTsKKworCS8qIFVzZSBJMkMgb3BlcmF0aW9ucyB1bmxlc3Mgd2UncmUgc3R1Y2sgd2l0aCBTTUJ1cyBleHRlbnNpb25zLiAqLworCWlmICghaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkoY2xpZW50LT5hZGFwdGVyLCBJMkNfRlVOQ19JMkMpKSB7CisJCWlmIChjaGlwLmZsYWdzICYgQVQyNF9GTEFHX0FERFIxNikgeworCQkJZXJyID0gLUVQRk5PU1VQUE9SVDsKKwkJCWdvdG8gZXJyX291dDsKKwkJfQorCQlpZiAoIWkyY19jaGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwKKwkJCQlJMkNfRlVOQ19TTUJVU19SRUFEX0kyQ19CTE9DSykpIHsKKwkJCWVyciA9IC1FUEZOT1NVUFBPUlQ7CisJCQlnb3RvIGVycl9vdXQ7CisJCX0KKwkJdXNlX3NtYnVzID0gdHJ1ZTsKKwl9CisKKwlpZiAoY2hpcC5mbGFncyAmIEFUMjRfRkxBR19UQUtFOEFERFIpCisJCW51bV9hZGRyZXNzZXMgPSA4OworCWVsc2UKKwkJbnVtX2FkZHJlc3NlcyA9CURJVl9ST1VORF9VUChjaGlwLmJ5dGVfbGVuLAorCQkJKGNoaXAuZmxhZ3MgJiBBVDI0X0ZMQUdfQUREUjE2KSA/IDY1NTM2IDogMjU2KTsKKworCWF0MjQgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYXQyNF9kYXRhKSArCisJCW51bV9hZGRyZXNzZXMgKiBzaXplb2Yoc3RydWN0IGkyY19jbGllbnQgKiksIEdGUF9LRVJORUwpOworCWlmICghYXQyNCkgeworCQllcnIgPSAtRU5PTUVNOworCQlnb3RvIGVycl9vdXQ7CisJfQorCisJbXV0ZXhfaW5pdCgmYXQyNC0+bG9jayk7CisJYXQyNC0+dXNlX3NtYnVzID0gdXNlX3NtYnVzOworCWF0MjQtPmNoaXAgPSBjaGlwOworCWF0MjQtPm51bV9hZGRyZXNzZXMgPSBudW1fYWRkcmVzc2VzOworCisJLyoKKwkgKiBFeHBvcnQgdGhlIEVFUFJPTSBieXRlcyB0aHJvdWdoIHN5c2ZzLCBzaW5jZSB0aGF0J3MgY29udmVuaWVudC4KKwkgKiBCeSBkZWZhdWx0LCBvbmx5IHJvb3Qgc2hvdWxkIHNlZSB0aGUgZGF0YSAobWF5YmUgcGFzc3dvcmRzIGV0YykKKwkgKi8KKwlhdDI0LT5iaW4uYXR0ci5uYW1lID0gImVlcHJvbSI7CisJYXQyNC0+YmluLmF0dHIubW9kZSA9IGNoaXAuZmxhZ3MgJiBBVDI0X0ZMQUdfSVJVR08gPyBTX0lSVUdPIDogU19JUlVTUjsKKwlhdDI0LT5iaW4uYXR0ci5vd25lciA9IFRISVNfTU9EVUxFOworCWF0MjQtPmJpbi5yZWFkID0gYXQyNF9iaW5fcmVhZDsKKwlhdDI0LT5iaW4uc2l6ZSA9IGNoaXAuYnl0ZV9sZW47CisKKwl3cml0YWJsZSA9ICEoY2hpcC5mbGFncyAmIEFUMjRfRkxBR19SRUFET05MWSk7CisJaWYgKHdyaXRhYmxlKSB7CisJCWlmICghdXNlX3NtYnVzIHx8IGkyY19jaGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwKKwkJCQlJMkNfRlVOQ19TTUJVU19XUklURV9JMkNfQkxPQ0spKSB7CisKKwkJCXVuc2lnbmVkIHdyaXRlX21heCA9IGNoaXAucGFnZV9zaXplOworCisJCQlhdDI0LT5iaW4ud3JpdGUgPSBhdDI0X2Jpbl93cml0ZTsKKwkJCWF0MjQtPmJpbi5hdHRyLm1vZGUgfD0gU19JV1VTUjsKKworCQkJaWYgKHdyaXRlX21heCA+IGlvX2xpbWl0KQorCQkJCXdyaXRlX21heCA9IGlvX2xpbWl0OworCQkJaWYgKHVzZV9zbWJ1cyAmJiB3cml0ZV9tYXggPiBJMkNfU01CVVNfQkxPQ0tfTUFYKQorCQkJCXdyaXRlX21heCA9IEkyQ19TTUJVU19CTE9DS19NQVg7CisJCQlhdDI0LT53cml0ZV9tYXggPSB3cml0ZV9tYXg7CisKKwkJCS8qIGJ1ZmZlciAoZGF0YSArIGFkZHJlc3MgYXQgdGhlIGJlZ2lubmluZykgKi8KKwkJCWF0MjQtPndyaXRlYnVmID0ga21hbGxvYyh3cml0ZV9tYXggKyAyLCBHRlBfS0VSTkVMKTsKKwkJCWlmICghYXQyNC0+d3JpdGVidWYpIHsKKwkJCQllcnIgPSAtRU5PTUVNOworCQkJCWdvdG8gZXJyX3N0cnVjdDsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWRldl93YXJuKCZjbGllbnQtPmRldiwKKwkJCQkiY2Fubm90IHdyaXRlIGR1ZSB0byBjb250cm9sbGVyIHJlc3RyaWN0aW9ucy4iKTsKKwkJfQorCX0KKworCWF0MjQtPmNsaWVudFswXSA9IGNsaWVudDsKKworCS8qIHVzZSBkdW1teSBkZXZpY2VzIGZvciBtdWx0aXBsZS1hZGRyZXNzIGNoaXBzICovCisJZm9yIChpID0gMTsgaSA8IG51bV9hZGRyZXNzZXM7IGkrKykgeworCQlhdDI0LT5jbGllbnRbaV0gPSBpMmNfbmV3X2R1bW15KGNsaWVudC0+YWRhcHRlciwKKwkJCQkJY2xpZW50LT5hZGRyICsgaSk7CisJCWlmICghYXQyNC0+Y2xpZW50W2ldKSB7CisJCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgImFkZHJlc3MgMHglMDJ4IHVuYXZhaWxhYmxlXG4iLAorCQkJCQljbGllbnQtPmFkZHIgKyBpKTsKKwkJCWVyciA9IC1FQUREUklOVVNFOworCQkJZ290byBlcnJfY2xpZW50czsKKwkJfQorCX0KKworCWVyciA9IHN5c2ZzX2NyZWF0ZV9iaW5fZmlsZSgmY2xpZW50LT5kZXYua29iaiwgJmF0MjQtPmJpbik7CisJaWYgKGVycikKKwkJZ290byBlcnJfY2xpZW50czsKKworCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIGF0MjQpOworCisJZGV2X2luZm8oJmNsaWVudC0+ZGV2LCAiJVpkIGJ5dGUgJXMgRUVQUk9NICVzXG4iLAorCQlhdDI0LT5iaW4uc2l6ZSwgY2xpZW50LT5uYW1lLAorCQl3cml0YWJsZSA/ICIod3JpdGFibGUpIiA6ICIocmVhZC1vbmx5KSIpOworCWRldl9kYmcoJmNsaWVudC0+ZGV2LAorCQkicGFnZV9zaXplICVkLCBudW1fYWRkcmVzc2VzICVkLCB3cml0ZV9tYXggJWQlc1xuIiwKKwkJY2hpcC5wYWdlX3NpemUsIG51bV9hZGRyZXNzZXMsCisJCWF0MjQtPndyaXRlX21heCwKKwkJdXNlX3NtYnVzID8gIiwgdXNlX3NtYnVzIiA6ICIiKTsKKworCXJldHVybiAwOworCitlcnJfY2xpZW50czoKKwlmb3IgKGkgPSAxOyBpIDwgbnVtX2FkZHJlc3NlczsgaSsrKQorCQlpZiAoYXQyNC0+Y2xpZW50W2ldKQorCQkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGF0MjQtPmNsaWVudFtpXSk7CisKKwlrZnJlZShhdDI0LT53cml0ZWJ1Zik7CitlcnJfc3RydWN0OgorCWtmcmVlKGF0MjQpOworZXJyX291dDoKKwlkZXZfZGJnKCZjbGllbnQtPmRldiwgInByb2JlIGVycm9yICVkXG4iLCBlcnIpOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZleGl0IGF0MjRfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IGF0MjRfZGF0YSAqYXQyNDsKKwlpbnQgaTsKKworCWF0MjQgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKwlzeXNmc19yZW1vdmVfYmluX2ZpbGUoJmNsaWVudC0+ZGV2LmtvYmosICZhdDI0LT5iaW4pOworCisJZm9yIChpID0gMTsgaSA8IGF0MjQtPm51bV9hZGRyZXNzZXM7IGkrKykKKwkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGF0MjQtPmNsaWVudFtpXSk7CisKKwlrZnJlZShhdDI0LT53cml0ZWJ1Zik7CisJa2ZyZWUoYXQyNCk7CisJaTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgTlVMTCk7CisJcmV0dXJuIDA7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBhdDI0X2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJhdDI0IiwKKwkJLm93bmVyID0gVEhJU19NT0RVTEUsCisJfSwKKwkucHJvYmUgPSBhdDI0X3Byb2JlLAorCS5yZW1vdmUgPSBfX2RldmV4aXRfcChhdDI0X3JlbW92ZSksCisJLmlkX3RhYmxlID0gYXQyNF9pZHMsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBhdDI0X2luaXQodm9pZCkKK3sKKwlpb19saW1pdCA9IHJvdW5kZG93bl9wb3dfb2ZfdHdvKGlvX2xpbWl0KTsKKwlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmF0MjRfZHJpdmVyKTsKK30KK21vZHVsZV9pbml0KGF0MjRfaW5pdCk7CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBhdDI0X2V4aXQodm9pZCkKK3sKKwlpMmNfZGVsX2RyaXZlcigmYXQyNF9kcml2ZXIpOworfQorbW9kdWxlX2V4aXQoYXQyNF9leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJEcml2ZXIgZm9yIG1vc3QgSTJDIEVFUFJPTXMiKTsKK01PRFVMRV9BVVRIT1IoIkRhdmlkIEJyb3duZWxsIGFuZCBXb2xmcmFtIFNhbmciKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2VlcHJvbS5jIGIvZHJpdmVycy9pMmMvY2hpcHMvZWVwcm9tLmMKaW5kZXggN2RlZTAwMWUuLjM3M2VhOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2NoaXBzL2VlcHJvbS5jCisrKyBiL2RyaXZlcnMvaTJjL2NoaXBzL2VlcHJvbS5jCkBAIC0xLDE1ICsxLDkgQEAKIC8qCi0gICAgZWVwcm9tLmMgLSBQYXJ0IG9mIGxtX3NlbnNvcnMsIExpbnV4IGtlcm5lbCBtb2R1bGVzIGZvciBoYXJkd2FyZQotICAgICAgICAgICAgICAgbW9uaXRvcmluZwogICAgIENvcHlyaWdodCAoQykgMTk5OCwgMTk5OSAgRnJvZG8gTG9vaWphYXJkIDxmcm9kb2xAZGRzLm5sPiBhbmQKIAkJCSAgICAgICBQaGlsaXAgRWRlbGJyb2NrIDxwaGlsQG5ldHJvZWRnZS5jb20+CiAgICAgQ29weXJpZ2h0IChDKSAyMDAzIEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+CiAgICAgQ29weXJpZ2h0IChDKSAyMDAzIElCTSBDb3JwLgotCi0gICAgMjAwNC0wMS0xNiAgSmVhbiBEZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+Ci0gICAgRGl2aWRlIHRoZSBlZXByb20gaW4gMzItYnl0ZSAoYXJiaXRyYXJ5KSBzbGljZXMuIFRoaXMgc2lnbmlmaWNhbnRseQotICAgIHNwZWVkcyBzZW5zb3JzIHVwLCBhcyB3ZWxsIGFzIHZhcmlvdXMgc2NyaXB0cyB1c2luZyB0aGUgZWVwcm9tCi0gICAgbW9kdWxlLgorICAgIENvcHlyaWdodCAoQykgMjAwNCBKZWFuIERlbHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9yZz4KIAogICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKQEAgLTc4LDcgKzcyLDcgQEAKIHN0YXRpYyB2b2lkIGVlcHJvbV91cGRhdGVfY2xpZW50KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHU4IHNsaWNlKQogewogCXN0cnVjdCBlZXByb21fZGF0YSAqZGF0YSA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOwotCWludCBpLCBqOworCWludCBpOwogCiAJbXV0ZXhfbG9jaygmZGF0YS0+dXBkYXRlX2xvY2spOwogCkBAIC05MywxNSArODcsMTIgQEAKIAkJCQkJCQkhPSAzMikKIAkJCQkJZ290byBleGl0OwogCQl9IGVsc2UgewotCQkJaWYgKGkyY19zbWJ1c193cml0ZV9ieXRlKGNsaWVudCwgc2xpY2UgPDwgNSkpIHsKLQkJCQlkZXZfZGJnKCZjbGllbnQtPmRldiwgImVlcHJvbSByZWFkIHN0YXJ0IGhhcyBmYWlsZWQhXG4iKTsKLQkJCQlnb3RvIGV4aXQ7Ci0JCQl9Ci0JCQlmb3IgKGkgPSBzbGljZSA8PCA1OyBpIDwgKHNsaWNlICsgMSkgPDwgNTsgaSsrKSB7Ci0JCQkJaiA9IGkyY19zbWJ1c19yZWFkX2J5dGUoY2xpZW50KTsKLQkJCQlpZiAoaiA8IDApCisJCQlmb3IgKGkgPSBzbGljZSA8PCA1OyBpIDwgKHNsaWNlICsgMSkgPDwgNTsgaSArPSAyKSB7CisJCQkJaW50IHdvcmQgPSBpMmNfc21idXNfcmVhZF93b3JkX2RhdGEoY2xpZW50LCBpKTsKKwkJCQlpZiAod29yZCA8IDApCiAJCQkJCWdvdG8gZXhpdDsKLQkJCQlkYXRhLT5kYXRhW2ldID0gKHU4KSBqOworCQkJCWRhdGEtPmRhdGFbaV0gPSB3b3JkICYgMHhmZjsKKwkJCQlkYXRhLT5kYXRhW2kgKyAxXSA9IHdvcmQgPj4gODsKIAkJCX0KIAkJfQogCQlkYXRhLT5sYXN0X3VwZGF0ZWRbc2xpY2VdID0gamlmZmllczsKQEAgLTE1OSwyNCArMTUwLDMzIEBACiAKIHN0YXRpYyBpbnQgZWVwcm9tX2F0dGFjaF9hZGFwdGVyKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKIHsKKwlpZiAoIShhZGFwdGVyLT5jbGFzcyAmIChJMkNfQ0xBU1NfRERDIHwgSTJDX0NMQVNTX1NQRCkpKQorCQlyZXR1cm4gMDsKIAlyZXR1cm4gaTJjX3Byb2JlKGFkYXB0ZXIsICZhZGRyX2RhdGEsIGVlcHJvbV9kZXRlY3QpOwogfQogCiAvKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBpMmNfcHJvYmUgKi8KIHN0YXRpYyBpbnQgZWVwcm9tX2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCBhZGRyZXNzLCBpbnQga2luZCkKIHsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqbmV3X2NsaWVudDsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50OwogCXN0cnVjdCBlZXByb21fZGF0YSAqZGF0YTsKIAlpbnQgZXJyID0gMDsKIAotCS8qIFRoZXJlIGFyZSB0aHJlZSB3YXlzIHdlIGNhbiByZWFkIHRoZSBFRVBST00gZGF0YToKKwkvKiBFRElEIEVFUFJPTXMgYXJlIG9mdGVuIDI0QzAwIEVFUFJPTXMsIHdoaWNoIGFuc3dlciB0byBhbGwKKwkgICBhZGRyZXNzZXMgMHg1MC0weDU3LCBidXQgd2Ugb25seSBjYXJlIGFib3V0IDB4NTAuIFNvIGRlY2xpbmUKKwkgICBhdHRhY2hpbmcgdG8gYWRkcmVzc2VzID49IDB4NTEgb24gRERDIGJ1c2VzICovCisJaWYgKCEoYWRhcHRlci0+Y2xhc3MgJiBJMkNfQ0xBU1NfU1BEKSAmJiBhZGRyZXNzID49IDB4NTEpCisJCWdvdG8gZXhpdDsKKworCS8qIFRoZXJlIGFyZSBmb3VyIHdheXMgd2UgY2FuIHJlYWQgdGhlIEVFUFJPTSBkYXRhOgogCSAgICgxKSBJMkMgYmxvY2sgcmVhZHMgKGZhc3RlciwgYnV0IHVuc3VwcG9ydGVkIGJ5IG1vc3QgYWRhcHRlcnMpCi0JICAgKDIpIENvbnNlY3V0aXZlIGJ5dGUgcmVhZHMgKDEwMCUgb3ZlcmhlYWQpCi0JICAgKDMpIFJlZ3VsYXIgYnl0ZSBkYXRhIHJlYWRzICgyMDAlIG92ZXJoZWFkKQotCSAgIFRoZSB0aGlyZCBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkIGJ5IHRoaXMgZHJpdmVyIGJlY2F1c2UgYWxsCi0JICAga25vd24gYWRhcHRlcnMgc3VwcG9ydCBhdCBsZWFzdCB0aGUgc2Vjb25kLiAqLwotCWlmICghaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkoYWRhcHRlciwgSTJDX0ZVTkNfU01CVVNfUkVBRF9CWVRFX0RBVEEKLQkJCQkJICAgIHwgSTJDX0ZVTkNfU01CVVNfQllURSkpCisJICAgKDIpIFdvcmQgcmVhZHMgKDEyOCUgb3ZlcmhlYWQpCisJICAgKDMpIENvbnNlY3V0aXZlIGJ5dGUgcmVhZHMgKDg4JSBvdmVyaGVhZCwgdW5zYWZlKQorCSAgICg0KSBSZWd1bGFyIGJ5dGUgZGF0YSByZWFkcyAoMjY1JSBvdmVyaGVhZCkKKwkgICBUaGUgdGhpcmQgYW5kIGZvdXJ0aCBtZXRob2RzIGFyZSBub3QgaW1wbGVtZW50ZWQgYnkgdGhpcyBkcml2ZXIKKwkgICBiZWNhdXNlIGFsbCBrbm93biBhZGFwdGVycyBzdXBwb3J0IG9uZSBvZiB0aGUgZmlyc3QgdHdvLiAqLworCWlmICghaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkoYWRhcHRlciwgSTJDX0ZVTkNfU01CVVNfUkVBRF9XT1JEX0RBVEEpCisJICYmICFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShhZGFwdGVyLCBJMkNfRlVOQ19TTUJVU19SRUFEX0kyQ19CTE9DSykpCiAJCWdvdG8gZXhpdDsKIAogCWlmICghKGRhdGEgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZWVwcm9tX2RhdGEpLCBHRlBfS0VSTkVMKSkpIHsKQEAgLTE4NCw1MCArMTg0LDQ5IEBACiAJCWdvdG8gZXhpdDsKIAl9CiAKLQluZXdfY2xpZW50ID0gJmRhdGEtPmNsaWVudDsKKwljbGllbnQgPSAmZGF0YS0+Y2xpZW50OwogCW1lbXNldChkYXRhLT5kYXRhLCAweGZmLCBFRVBST01fU0laRSk7Ci0JaTJjX3NldF9jbGllbnRkYXRhKG5ld19jbGllbnQsIGRhdGEpOwotCW5ld19jbGllbnQtPmFkZHIgPSBhZGRyZXNzOwotCW5ld19jbGllbnQtPmFkYXB0ZXIgPSBhZGFwdGVyOwotCW5ld19jbGllbnQtPmRyaXZlciA9ICZlZXByb21fZHJpdmVyOwotCW5ld19jbGllbnQtPmZsYWdzID0gMDsKKwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBkYXRhKTsKKwljbGllbnQtPmFkZHIgPSBhZGRyZXNzOworCWNsaWVudC0+YWRhcHRlciA9IGFkYXB0ZXI7CisJY2xpZW50LT5kcml2ZXIgPSAmZWVwcm9tX2RyaXZlcjsKIAogCS8qIEZpbGwgaW4gdGhlIHJlbWFpbmluZyBjbGllbnQgZmllbGRzICovCi0Jc3RybGNweShuZXdfY2xpZW50LT5uYW1lLCAiZWVwcm9tIiwgSTJDX05BTUVfU0laRSk7Ci0JZGF0YS0+dmFsaWQgPSAwOworCXN0cmxjcHkoY2xpZW50LT5uYW1lLCAiZWVwcm9tIiwgSTJDX05BTUVfU0laRSk7CiAJbXV0ZXhfaW5pdCgmZGF0YS0+dXBkYXRlX2xvY2spOwogCWRhdGEtPm5hdHVyZSA9IFVOS05PV047CiAKIAkvKiBUZWxsIHRoZSBJMkMgbGF5ZXIgYSBuZXcgY2xpZW50IGhhcyBhcnJpdmVkICovCi0JaWYgKChlcnIgPSBpMmNfYXR0YWNoX2NsaWVudChuZXdfY2xpZW50KSkpCisJaWYgKChlcnIgPSBpMmNfYXR0YWNoX2NsaWVudChjbGllbnQpKSkKIAkJZ290byBleGl0X2tmcmVlOwogCiAJLyogRGV0ZWN0IHRoZSBWYWlvIG5hdHVyZSBvZiBFRVBST01zLgogCSAgIFdlIHVzZSB0aGUgIlBDRy0iIG9yICJWR04tIiBwcmVmaXggYXMgdGhlIHNpZ25hdHVyZS4gKi8KLQlpZiAoYWRkcmVzcyA9PSAweDU3KSB7CisJaWYgKGFkZHJlc3MgPT0gMHg1NworCSAmJiBpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShhZGFwdGVyLCBJMkNfRlVOQ19TTUJVU19SRUFEX0JZVEVfREFUQSkpIHsKIAkJY2hhciBuYW1lWzRdOwogCi0JCW5hbWVbMF0gPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEobmV3X2NsaWVudCwgMHg4MCk7Ci0JCW5hbWVbMV0gPSBpMmNfc21idXNfcmVhZF9ieXRlKG5ld19jbGllbnQpOwotCQluYW1lWzJdID0gaTJjX3NtYnVzX3JlYWRfYnl0ZShuZXdfY2xpZW50KTsKLQkJbmFtZVszXSA9IGkyY19zbWJ1c19yZWFkX2J5dGUobmV3X2NsaWVudCk7CisJCW5hbWVbMF0gPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCAweDgwKTsKKwkJbmFtZVsxXSA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIDB4ODEpOworCQluYW1lWzJdID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgMHg4Mik7CisJCW5hbWVbM10gPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCAweDgzKTsKIAogCQlpZiAoIW1lbWNtcChuYW1lLCAiUENHLSIsIDQpIHx8ICFtZW1jbXAobmFtZSwgIlZHTi0iLCA0KSkgewotCQkJZGV2X2luZm8oJm5ld19jbGllbnQtPmRldiwgIlZhaW8gRUVQUk9NIGRldGVjdGVkLCAiCisJCQlkZXZfaW5mbygmY2xpZW50LT5kZXYsICJWYWlvIEVFUFJPTSBkZXRlY3RlZCwgIgogCQkJCSAiZW5hYmxpbmcgcHJpdmFjeSBwcm90ZWN0aW9uXG4iKTsKIAkJCWRhdGEtPm5hdHVyZSA9IFZBSU87CiAJCX0KIAl9CiAKIAkvKiBjcmVhdGUgdGhlIHN5c2ZzIGVlcHJvbSBmaWxlICovCi0JZXJyID0gc3lzZnNfY3JlYXRlX2Jpbl9maWxlKCZuZXdfY2xpZW50LT5kZXYua29iaiwgJmVlcHJvbV9hdHRyKTsKKwllcnIgPSBzeXNmc19jcmVhdGVfYmluX2ZpbGUoJmNsaWVudC0+ZGV2LmtvYmosICZlZXByb21fYXR0cik7CiAJaWYgKGVycikKIAkJZ290byBleGl0X2RldGFjaDsKIAogCXJldHVybiAwOwogCiBleGl0X2RldGFjaDoKLQlpMmNfZGV0YWNoX2NsaWVudChuZXdfY2xpZW50KTsKKwlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOwogZXhpdF9rZnJlZToKIAlrZnJlZShkYXRhKTsKIGV4aXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9pc3AxMzAxX29tYXAuYyBiL2RyaXZlcnMvaTJjL2NoaXBzL2lzcDEzMDFfb21hcC5jCmluZGV4IGIxYjQ1ZGQuLjAzYTMzZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2NoaXBzL2lzcDEzMDFfb21hcC5jCisrKyBiL2RyaXZlcnMvaTJjL2NoaXBzL2lzcDEzMDFfb21hcC5jCkBAIC03Miw3ICs3Miw3IEBACiB9OwogCiAKLS8qIGJpdHMgaW4gT1RHX0NUUkxfUkVHICovCisvKiBiaXRzIGluIE9UR19DVFJMICovCiAKICNkZWZpbmUJT1RHX1hDRUlWX09VVFBVVFMgXAogCShPVEdfQVNFU1NWTER8T1RHX0JTRVNTRU5EfE9UR19CU0VTU1ZMRHxPVEdfVkJVU1ZMRHxPVEdfSUQpCkBAIC0xODYsOCArMTg2LDggQEAKIAogLyogb3BlcmF0aW9uYWwgcmVnaXN0ZXJzICovCiAjZGVmaW5lCUlTUDEzMDFfTU9ERV9DT05UUk9MXzEJCTB4MDQJLyogdTggcmVhZCwgc2V0LCArMSBjbGVhciAqLwotIwlkZWZpbmUJTUMxX1NQRUVEX1JFRwkJKDEgPDwgMCkKLSMJZGVmaW5lCU1DMV9TVVNQRU5EX1JFRwkJKDEgPDwgMSkKKyMJZGVmaW5lCU1DMV9TUEVFRAkJKDEgPDwgMCkKKyMJZGVmaW5lCU1DMV9TVVNQRU5ECQkoMSA8PCAxKQogIwlkZWZpbmUJTUMxX0RBVF9TRTAJCSgxIDw8IDIpCiAjCWRlZmluZQlNQzFfVFJBTlNQQVJFTlQJCSgxIDw8IDMpCiAjCWRlZmluZQlNQzFfQkRJU19BQ09OX0VOCSgxIDw8IDQpCkBAIC0yNzQsNyArMjc0LDcgQEAKIAlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9VTkRFRklORUQ7CiAKIAkvLyBpc3AxMzAxX3NldF9iaXRzKGlzcCwgSVNQMTMwMV9NT0RFX0NPTlRST0xfMiwgTUMyX0dMT0JBTF9QV1JfRE4pOwotCWlzcDEzMDFfc2V0X2JpdHMoaXNwLCBJU1AxMzAxX01PREVfQ09OVFJPTF8xLCBNQzFfU1VTUEVORF9SRUcpOworCWlzcDEzMDFfc2V0X2JpdHMoaXNwLCBJU1AxMzAxX01PREVfQ09OVFJPTF8xLCBNQzFfU1VTUEVORCk7CiAKIAlpc3AxMzAxX2NsZWFyX2JpdHMoaXNwLCBJU1AxMzAxX09UR19DT05UUk9MXzEsIE9URzFfSURfUFVMTERPV04pOwogCWlzcDEzMDFfY2xlYXJfYml0cyhpc3AsIElTUDEzMDFfTU9ERV9DT05UUk9MXzEsIE1DMV9EQVRfU0UwKTsKQEAgLTI4Myw3ICsyODMsNyBAQAogc3RhdGljIHZvaWQgcG93ZXJfdXAoc3RydWN0IGlzcDEzMDEgKmlzcCkKIHsKIAkvLyBpc3AxMzAxX2NsZWFyX2JpdHMoaXNwLCBJU1AxMzAxX01PREVfQ09OVFJPTF8yLCBNQzJfR0xPQkFMX1BXUl9ETik7Ci0JaXNwMTMwMV9jbGVhcl9iaXRzKGlzcCwgSVNQMTMwMV9NT0RFX0NPTlRST0xfMSwgTUMxX1NVU1BFTkRfUkVHKTsKKwlpc3AxMzAxX2NsZWFyX2JpdHMoaXNwLCBJU1AxMzAxX01PREVfQ09OVFJPTF8xLCBNQzFfU1VTUEVORCk7CiAKIAkvKiBkbyB0aGlzIG9ubHkgd2hlbiBjcHUgaXMgZHJpdmluZyB0cmFuc2NlaXZlciwKIAkgKiBzbyBob3N0IHdvbid0IHNlZSBhIGxvdyBzcGVlZCBkZXZpY2UuLi4KQEAgLTM2MCw2ICszNjAsOCBAQAogLyogY2FsbGVkIGZyb20gaXJxIGhhbmRsZXJzICovCiBzdGF0aWMgdm9pZCBhX2lkbGUoc3RydWN0IGlzcDEzMDEgKmlzcCwgY29uc3QgY2hhciAqdGFnKQogeworCXUzMiBsOworCiAJaWYgKGlzcC0+b3RnLnN0YXRlID09IE9UR19TVEFURV9BX0lETEUpCiAJCXJldHVybjsKIApAQCAtMzczLDEzICszNzUsMTcgQEAKIAkJZ2FkZ2V0X3N1c3BlbmQoaXNwKTsKIAl9CiAJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQV9JRExFOwotCWlzcC0+bGFzdF9vdGdfY3RybCA9IE9UR19DVFJMX1JFRyA9IE9UR19DVFJMX1JFRyAmIE9UR19YQ0VJVl9PVVRQVVRTOworCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKSAmIE9UR19YQ0VJVl9PVVRQVVRTOworCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKKwlpc3AtPmxhc3Rfb3RnX2N0cmwgPSBsOwogCXByX2RlYnVnKCIgIC0tPiAlcy8lc1xuIiwgc3RhdGVfbmFtZShpc3ApLCB0YWcpOwogfQogCiAvKiBjYWxsZWQgZnJvbSBpcnEgaGFuZGxlcnMgKi8KIHN0YXRpYyB2b2lkIGJfaWRsZShzdHJ1Y3QgaXNwMTMwMSAqaXNwLCBjb25zdCBjaGFyICp0YWcpCiB7CisJdTMyIGw7CisKIAlpZiAoaXNwLT5vdGcuc3RhdGUgPT0gT1RHX1NUQVRFX0JfSURMRSkKIAkJcmV0dXJuOwogCkBAIC0zOTMsNyArMzk5LDkgQEAKIAkJZ2FkZ2V0X3N1c3BlbmQoaXNwKTsKIAl9CiAJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQl9JRExFOwotCWlzcC0+bGFzdF9vdGdfY3RybCA9IE9UR19DVFJMX1JFRyA9IE9UR19DVFJMX1JFRyAmIE9UR19YQ0VJVl9PVVRQVVRTOworCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKSAmIE9UR19YQ0VJVl9PVVRQVVRTOworCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKKwlpc3AtPmxhc3Rfb3RnX2N0cmwgPSBsOwogCXByX2RlYnVnKCIgIC0tPiAlcy8lc1xuIiwgc3RhdGVfbmFtZShpc3ApLCB0YWcpOwogfQogCkBAIC00MDYsNyArNDE0LDcgQEAKIAl1OAlzcmMgPSBpc3AxMzAxX2dldF91OChpc3AsIElTUDEzMDFfSU5URVJSVVBUX1NPVVJDRSk7CiAKIAlwcl9kZWJ1Zygib3RnOiAlMDZ4LCAlcyAlcywgb3RnLyUwMnggc3RhdC8lMDJ4LiUwMnhcbiIsCi0JCU9UR19DVFJMX1JFRywgbGFiZWwsIHN0YXRlX25hbWUoaXNwKSwKKwkJb21hcF9yZWFkbChPVEdfQ1RSTCksIGxhYmVsLCBzdGF0ZV9uYW1lKGlzcCksCiAJCWN0cmwsIHN0YXR1cywgc3JjKTsKIAkvKiBtb2RlIGNvbnRyb2wgYW5kIGlycSBlbmFibGVzIGRvbid0IGNoYW5nZSBtdWNoICovCiAjZW5kaWYKQEAgLTQyOSw3ICs0MzcsNyBAQAogc3RhdGljIHZvaWQgY2hlY2tfc3RhdGUoc3RydWN0IGlzcDEzMDEgKmlzcCwgY29uc3QgY2hhciAqdGFnKQogewogCWVudW0gdXNiX290Z19zdGF0ZQlzdGF0ZSA9IE9UR19TVEFURV9VTkRFRklORUQ7Ci0JdTgJCQlmc20gPSBPVEdfVEVTVF9SRUcgJiAweDBmZjsKKwl1OAkJCWZzbSA9IG9tYXBfcmVhZHcoT1RHX1RFU1QpICYgMHgwZmY7CiAJdW5zaWduZWQJCWV4dHJhID0gMDsKIAogCXN3aXRjaCAoZnNtKSB7CkBAIC00OTQsNyArNTAyLDggQEAKIAlpZiAoaXNwLT5vdGcuc3RhdGUgPT0gc3RhdGUgJiYgIWV4dHJhKQogCQlyZXR1cm47CiAJcHJfZGVidWcoIm90ZzogJXMgRlNNICVzLyUwMngsICVzLCAlMDZ4XG4iLCB0YWcsCi0JCXN0YXRlX3N0cmluZyhzdGF0ZSksIGZzbSwgc3RhdGVfbmFtZShpc3ApLCBPVEdfQ1RSTF9SRUcpOworCQlzdGF0ZV9zdHJpbmcoc3RhdGUpLCBmc20sIHN0YXRlX25hbWUoaXNwKSwKKwkJb21hcF9yZWFkbChPVEdfQ1RSTCkpOwogfQogCiAjZWxzZQpAQCAtNTA4LDEwICs1MTcsMTEgQEAKIHsKIAl1MzIJb3RnX2N0cmw7CiAKLQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRwotCQkJJiBPVEdfQ1RSTF9NQVNLCi0JCQkmIH5PVEdfWENFSVZfSU5QVVRTCi0JCQkmIH4oT1RHX0lEfE9UR19BU0VTU1ZMRHxPVEdfVkJVU1ZMRCk7CisJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKSAmIE9UR19DVFJMX01BU0s7CisJb3RnX2N0cmwgJj0gfk9UR19YQ0VJVl9JTlBVVFM7CisJb3RnX2N0cmwgJj0gfihPVEdfSUR8T1RHX0FTRVNTVkxEfE9UR19WQlVTVkxEKTsKKworCiAJaWYgKGludF9zcmMgJiBJTlRSX1NFU1NfVkxEKQogCQlvdGdfY3RybCB8PSBPVEdfQVNFU1NWTEQ7CiAJZWxzZSBpZiAoaXNwLT5vdGcuc3RhdGUgPT0gT1RHX1NUQVRFX0FfV0FJVF9WRkFMTCkgewpAQCAtNTM0LDcgKzU0NCw3IEBACiAJCQlyZXR1cm47CiAJCX0KIAl9Ci0JT1RHX0NUUkxfUkVHID0gb3RnX2N0cmw7CisJb21hcF93cml0ZWwob3RnX2N0cmwsIE9UR19DVFJMKTsKIH0KIAogLyogb3V0cHV0cyBmcm9tIElTUDEzMDFfT1RHX1NUQVRVUyAqLwpAQCAtNTQyLDE1ICs1NTIsMTQgQEAKIHsKIAl1MzIJb3RnX2N0cmw7CiAKLQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRwotCQkJJiBPVEdfQ1RSTF9NQVNLCi0JCQkmIH5PVEdfWENFSVZfSU5QVVRTCi0JCQkmIH4oT1RHX0JTRVNTVkxEfE9UR19CU0VTU0VORCk7CisJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKSAmIE9UR19DVFJMX01BU0s7CisJb3RnX2N0cmwgJj0gfk9UR19YQ0VJVl9JTlBVVFM7CisJb3RnX2N0cmwgJj0gfihPVEdfQlNFU1NWTEQgfCBPVEdfQlNFU1NFTkQpOwogCWlmIChvdGdfc3RhdHVzICYgT1RHX0JfU0VTU19WTEQpCiAJCW90Z19jdHJsIHw9IE9UR19CU0VTU1ZMRDsKIAllbHNlIGlmIChvdGdfc3RhdHVzICYgT1RHX0JfU0VTU19FTkQpCiAJCW90Z19jdHJsIHw9IE9UR19CU0VTU0VORDsKLQlPVEdfQ1RSTF9SRUcgPSBvdGdfY3RybDsKKwlvbWFwX3dyaXRlbChvdGdfY3RybCwgT1RHX0NUUkwpOwogfQogCiAvKiBpbnB1dHMgZ29pbmcgdG8gSVNQMTMwMSAqLwpAQCAtNTU5LDcgKzU2OCw3IEBACiAJdTMyCW90Z19jdHJsLCBvdGdfY2hhbmdlOwogCXU4CXNldCA9IE9URzFfRE1fUFVMTERPV04sIGNsciA9IE9URzFfRE1fUFVMTFVQOwogCi0Jb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUc7CisJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKIAlvdGdfY2hhbmdlID0gb3RnX2N0cmwgXiBpc3AtPmxhc3Rfb3RnX2N0cmw7CiAJaXNwLT5sYXN0X290Z19jdHJsID0gb3RnX2N0cmw7CiAJb3RnX2N0cmwgPSBvdGdfY3RybCAmIE9UR19YQ0VJVl9JTlBVVFM7CkBAIC02MzksNiArNjQ4LDggQEAKIAogCS8qIEhOUCBzd2l0Y2ggdG8gaG9zdCBvciBwZXJpcGhlcmFsOyBhbmQgU1JQICovCiAJaWYgKG90Z19jaGFuZ2UgJiBPVEdfUFVMTFVQKSB7CisJCXUzMiBsOworCiAJCXN3aXRjaCAoaXNwLT5vdGcuc3RhdGUpIHsKIAkJY2FzZSBPVEdfU1RBVEVfQl9JRExFOgogCQkJaWYgKGNsciAmIE9URzFfRFBfUFVMTFVQKQpAQCAtNjU1LDcgKzY2Niw5IEBACiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKIAkJfQotCQlPVEdfQ1RSTF9SRUcgfD0gT1RHX1BVTExVUDsKKwkJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOworCQlsIHw9IE9UR19QVUxMVVA7CisJCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKIAl9CiAKIAljaGVja19zdGF0ZShpc3AsIF9fZnVuY19fKTsKQEAgLTY2NCwyMCArNjc3LDIwIEBACiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBvbWFwX290Z19pcnEoaW50IGlycSwgdm9pZCAqX2lzcCkKIHsKLQl1MTYJCW90Z19pcnEgPSBPVEdfSVJRX1NSQ19SRUc7CisJdTE2CQlvdGdfaXJxID0gb21hcF9yZWFkdyhPVEdfSVJRX1NSQyk7CiAJdTMyCQlvdGdfY3RybDsKIAlpbnQJCXJldCA9IElSUV9OT05FOwogCXN0cnVjdCBpc3AxMzAxCSppc3AgPSBfaXNwOwogCiAJLyogdXBkYXRlIElTUDEzMDEgdHJhbnNjaWV2ZXIgZnJvbSBPVEcgY29udHJvbGxlciAqLwogCWlmIChvdGdfaXJxICYgT1BSVF9DSEcpIHsKLQkJT1RHX0lSUV9TUkNfUkVHID0gT1BSVF9DSEc7CisJCW9tYXBfd3JpdGV3KE9QUlRfQ0hHLCBPVEdfSVJRX1NSQyk7CiAJCWlzcDEzMDFfZGVmZXJfd29yayhpc3AsIFdPUktfVVBEQVRFX0lTUCk7CiAJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJLyogU1JQIHRvIGJlY29tZSBiX3BlcmlwaGVyYWwgZmFpbGVkICovCiAJfSBlbHNlIGlmIChvdGdfaXJxICYgQl9TUlBfVE1ST1VUKSB7Ci0JCXByX2RlYnVnKCJvdGc6IEJfU1JQX1RJTUVPVVQsICUwNnhcbiIsIE9UR19DVFJMX1JFRyk7CisJCXByX2RlYnVnKCJvdGc6IEJfU1JQX1RJTUVPVVQsICUwNnhcbiIsIG9tYXBfcmVhZGwoT1RHX0NUUkwpKTsKIAkJbm90cmVzcG9uZGluZyhpc3ApOwogCiAJCS8qIGdhZGdldCBkcml2ZXJzIHRoYXQgY2FyZSBzaG91bGQgbW9uaXRvciBhbGwga2luZHMgb2YKQEAgLTY4NywzMSArNzAwLDMxIEBACiAJCWlmIChpc3AtPm90Zy5zdGF0ZSA9PSBPVEdfU1RBVEVfQl9TUlBfSU5JVCkKIAkJCWJfaWRsZShpc3AsICJzcnBfdGltZW91dCIpOwogCi0JCU9UR19JUlFfU1JDX1JFRyA9IEJfU1JQX1RNUk9VVDsKKwkJb21hcF93cml0ZXcoQl9TUlBfVE1ST1VULCBPVEdfSVJRX1NSQyk7CiAJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJLyogSE5QIHRvIGJlY29tZSBiX2hvc3QgZmFpbGVkICovCiAJfSBlbHNlIGlmIChvdGdfaXJxICYgQl9ITlBfRkFJTCkgewogCQlwcl9kZWJ1Zygib3RnOiAlcyBCX0hOUF9GQUlMLCAlMDZ4XG4iLAotCQkJCXN0YXRlX25hbWUoaXNwKSwgT1RHX0NUUkxfUkVHKTsKKwkJCQlzdGF0ZV9uYW1lKGlzcCksIG9tYXBfcmVhZGwoT1RHX0NUUkwpKTsKIAkJbm90cmVzcG9uZGluZyhpc3ApOwogCi0JCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHOworCQlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOwogCQlvdGdfY3RybCB8PSBPVEdfQlVTRFJPUDsKIAkJb3RnX2N0cmwgJj0gT1RHX0NUUkxfTUFTSyAmIH5PVEdfWENFSVZfSU5QVVRTOwotCQlPVEdfQ1RSTF9SRUcgPSBvdGdfY3RybDsKKwkJb21hcF93cml0ZWwob3RnX2N0cmwsIE9UR19DVFJMKTsKIAogCQkvKiBzdWJzZXQgb2YgYl9wZXJpcGhlcmFsKCkuLi4gKi8KIAkJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQl9QRVJJUEhFUkFMOwogCQlwcl9kZWJ1ZygiICAtLT4gYl9wZXJpcGhlcmFsXG4iKTsKIAotCQlPVEdfSVJRX1NSQ19SRUcgPSBCX0hOUF9GQUlMOworCQlvbWFwX3dyaXRldyhCX0hOUF9GQUlMLCBPVEdfSVJRX1NSQyk7CiAJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJLyogZGV0ZWN0IFNSUCBmcm9tIEItZGV2aWNlIC4uLiAqLwogCX0gZWxzZSBpZiAob3RnX2lycSAmIEFfU1JQX0RFVEVDVCkgewogCQlwcl9kZWJ1Zygib3RnOiAlcyBTUlBfREVURUNULCAlMDZ4XG4iLAotCQkJCXN0YXRlX25hbWUoaXNwKSwgT1RHX0NUUkxfUkVHKTsKKwkJCQlzdGF0ZV9uYW1lKGlzcCksIG9tYXBfcmVhZGwoT1RHX0NUUkwpKTsKIAogCQlpc3AxMzAxX2RlZmVyX3dvcmsoaXNwLCBXT1JLX1VQREFURV9PVEcpOwogCQlzd2l0Y2ggKGlzcC0+b3RnLnN0YXRlKSB7CkBAIC03MTksNDkgKzczMiw0OSBAQAogCQkJaWYgKCFpc3AtPm90Zy5ob3N0KQogCQkJCWJyZWFrOwogCQkJaXNwMTMwMV9kZWZlcl93b3JrKGlzcCwgV09SS19IT1NUX1JFU1VNRSk7Ci0JCQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRzsKKwkJCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CiAJCQlvdGdfY3RybCB8PSBPVEdfQV9CVVNSRVE7CiAJCQlvdGdfY3RybCAmPSB+KE9UR19CVVNEUk9QfE9UR19CX0JVU1JFUSkKIAkJCQkJJiB+T1RHX1hDRUlWX0lOUFVUUwogCQkJCQkmIE9UR19DVFJMX01BU0s7Ci0JCQlPVEdfQ1RSTF9SRUcgPSBvdGdfY3RybDsKKwkJCW9tYXBfd3JpdGVsKG90Z19jdHJsLCBPVEdfQ1RSTCk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwogCQl9CiAKLQkJT1RHX0lSUV9TUkNfUkVHID0gQV9TUlBfREVURUNUOworCQlvbWFwX3dyaXRldyhBX1NSUF9ERVRFQ1QsIE9UR19JUlFfU1JDKTsKIAkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkvKiB0aW1lciBleHBpcmVkOiAgVChhX3dhaXRfYmNvbikgYW5kIG1heWJlIFQoYV93YWl0X3ZyaXNlKQogCSAqIHdlIGRvbid0IHRyYWNrIHRoZW0gc2VwYXJhdGVseQogCSAqLwogCX0gZWxzZSBpZiAob3RnX2lycSAmIEFfUkVRX1RNUk9VVCkgewotCQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRzsKKwkJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKIAkJcHJfaW5mbygib3RnOiBCQ09OX1RNT1VUIGZyb20gJXMsICUwNnhcbiIsCiAJCQkJc3RhdGVfbmFtZShpc3ApLCBvdGdfY3RybCk7CiAJCW5vdHJlc3BvbmRpbmcoaXNwKTsKIAogCQlvdGdfY3RybCB8PSBPVEdfQlVTRFJPUDsKIAkJb3RnX2N0cmwgJj0gfk9UR19BX0JVU1JFUSAmIE9UR19DVFJMX01BU0sgJiB+T1RHX1hDRUlWX0lOUFVUUzsKLQkJT1RHX0NUUkxfUkVHID0gb3RnX2N0cmw7CisJCW9tYXBfd3JpdGVsKG90Z19jdHJsLCBPVEdfQ1RSTCk7CiAJCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0FfV0FJVF9WRkFMTDsKIAotCQlPVEdfSVJRX1NSQ19SRUcgPSBBX1JFUV9UTVJPVVQ7CisJCW9tYXBfd3JpdGV3KEFfUkVRX1RNUk9VVCwgT1RHX0lSUV9TUkMpOwogCQlyZXQgPSBJUlFfSEFORExFRDsKIAogCS8qIEEtc3VwcGxpZWQgdm9sdGFnZSBmZWxsIHRvbyBsb3c7IG92ZXJjdXJyZW50ICovCiAJfSBlbHNlIGlmIChvdGdfaXJxICYgQV9WQlVTX0VSUikgewotCQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRzsKKwkJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKIAkJcHJpbnRrKEtFUk5fRVJSICJvdGc6ICVzLCBWQlVTX0VSUiAlMDR4IGN0cmwgJTA2eFxuIiwKIAkJCXN0YXRlX25hbWUoaXNwKSwgb3RnX2lycSwgb3RnX2N0cmwpOwogCiAJCW90Z19jdHJsIHw9IE9UR19CVVNEUk9QOwogCQlvdGdfY3RybCAmPSB+T1RHX0FfQlVTUkVRICYgT1RHX0NUUkxfTUFTSyAmIH5PVEdfWENFSVZfSU5QVVRTOwotCQlPVEdfQ1RSTF9SRUcgPSBvdGdfY3RybDsKKwkJb21hcF93cml0ZWwob3RnX2N0cmwsIE9UR19DVFJMKTsKIAkJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQV9WQlVTX0VSUjsKIAotCQlPVEdfSVJRX1NSQ19SRUcgPSBBX1ZCVVNfRVJSOworCQlvbWFwX3dyaXRldyhBX1ZCVVNfRVJSLCBPVEdfSVJRX1NSQyk7CiAJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJLyogc3dpdGNoIGRyaXZlcjsgdGhlIHRyYW5zY2lldmVyIGNvZGUgYWN0aXZhdGVzIGl0LApAQCAtNzcwLDcgKzc4Myw3IEBACiAJfSBlbHNlIGlmIChvdGdfaXJxICYgRFJJVkVSX1NXSVRDSCkgewogCQlpbnQJa2ljayA9IDA7CiAKLQkJb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUc7CisJCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CiAJCXByaW50ayhLRVJOX05PVElDRSAib3RnOiAlcywgU1dJVENIIHRvICVzLCBjdHJsICUwNnhcbiIsCiAJCQkJc3RhdGVfbmFtZShpc3ApLAogCQkJCShvdGdfY3RybCAmIE9UR19EUklWRVJfU0VMKQpAQCAtNzkzLDcgKzgwNiw3IEBACiAJCX0gZWxzZSB7CiAJCQlpZiAoIShvdGdfY3RybCAmIE9UR19JRCkpIHsKIAkJCQlvdGdfY3RybCAmPSBPVEdfQ1RSTF9NQVNLICYgfk9UR19YQ0VJVl9JTlBVVFM7Ci0JCQkJT1RHX0NUUkxfUkVHID0gb3RnX2N0cmwgfCBPVEdfQV9CVVNSRVE7CisJCQkJb21hcF93cml0ZWwob3RnX2N0cmwgfCBPVEdfQV9CVVNSRVEsIE9UR19DVFJMKTsKIAkJCX0KIAogCQkJaWYgKGlzcC0+b3RnLmhvc3QpIHsKQEAgLTgxOCw3ICs4MzEsNyBAQAogCQkJfQogCQl9CiAKLQkJT1RHX0lSUV9TUkNfUkVHID0gRFJJVkVSX1NXSVRDSDsKKwkJb21hcF93cml0ZXcoRFJJVkVSX1NXSVRDSCwgT1RHX0lSUV9TUkMpOwogCQlyZXQgPSBJUlFfSEFORExFRDsKIAogCQlpZiAoa2ljaykKQEAgLTgzNCwxMiArODQ3LDE1IEBACiAKIHN0YXRpYyBpbnQgb3RnX2luaXQoc3RydWN0IGlzcDEzMDEgKmlzcCkKIHsKKwl1MzIgbDsKKwogCWlmICghb3RnX2RldikKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlkdW1wX3JlZ3MoaXNwLCBfX2Z1bmNfXyk7CiAJLyogc29tZSBvZiB0aGVzZSB2YWx1ZXMgYXJlIGJvYXJkLXNwZWNpZmljLi4uICovCi0JT1RHX1NZU0NPTl8yX1JFRyB8PSBPVEdfRU4KKwlsID0gb21hcF9yZWFkbChPVEdfU1lTQ09OXzIpOworCWwgfD0gT1RHX0VOCiAJCS8qIGZvciBCLWRldmljZTogKi8KIAkJfCBTUlBfR1BEQVRBCQkvKiA5bXNlYyBCZGV2IEQrIHB1bHNlICovCiAJCXwgU1JQX0dQRFZCVVMJCS8qIGRpc2NoYXJnZSBhZnRlciBWQlVTIHB1bHNlICovCkBAIC04NDksMTggKzg2NSwyMiBAQAogCQl8IFNSUF9EUFcJCS8qIGRldGVjdCAxNjcrbnMgU1JQIHB1bHNlcyAqLwogCQl8IFNSUF9EQVRBIHwgU1JQX1ZCVVMJLyogYWNjZXB0IGJvdGgga2luZHMgb2YgU1JQIHB1bHNlICovCiAJCTsKKwlvbWFwX3dyaXRlbChsLCBPVEdfU1lTQ09OXzIpOwogCiAJdXBkYXRlX290ZzEoaXNwLCBpc3AxMzAxX2dldF91OChpc3AsIElTUDEzMDFfSU5URVJSVVBUX1NPVVJDRSkpOwogCXVwZGF0ZV9vdGcyKGlzcCwgaXNwMTMwMV9nZXRfdTgoaXNwLCBJU1AxMzAxX09UR19TVEFUVVMpKTsKIAogCWNoZWNrX3N0YXRlKGlzcCwgX19mdW5jX18pOwogCXByX2RlYnVnKCJvdGc6ICVzLCAlcyAlMDZ4XG4iLAotCQkJc3RhdGVfbmFtZShpc3ApLCBfX2Z1bmNfXywgT1RHX0NUUkxfUkVHKTsKKwkJCXN0YXRlX25hbWUoaXNwKSwgX19mdW5jX18sIG9tYXBfcmVhZGwoT1RHX0NUUkwpKTsKIAotCU9UR19JUlFfRU5fUkVHID0gRFJJVkVSX1NXSVRDSCB8IE9QUlRfQ0hHCisJb21hcF93cml0ZXcoRFJJVkVSX1NXSVRDSCB8IE9QUlRfQ0hHCiAJCQl8IEJfU1JQX1RNUk9VVCB8IEJfSE5QX0ZBSUwKLQkJCXwgQV9WQlVTX0VSUiB8IEFfU1JQX0RFVEVDVCB8IEFfUkVRX1RNUk9VVDsKLQlPVEdfU1lTQ09OXzJfUkVHIHw9IE9UR19FTjsKKwkJCXwgQV9WQlVTX0VSUiB8IEFfU1JQX0RFVEVDVCB8IEFfUkVRX1RNUk9VVCwgT1RHX0lSUV9FTik7CisKKwlsID0gb21hcF9yZWFkbChPVEdfU1lTQ09OXzIpOworCWwgfD0gT1RHX0VOOworCW9tYXBfd3JpdGVsKGwsIE9UR19TWVNDT05fMik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTkyNyw3ICs5NDcsMTEgQEAKIAogc3RhdGljIHZvaWQgYl9wZXJpcGhlcmFsKHN0cnVjdCBpc3AxMzAxICppc3ApCiB7Ci0JT1RHX0NUUkxfUkVHID0gT1RHX0NUUkxfUkVHICYgT1RHX1hDRUlWX09VVFBVVFM7CisJdTMyIGw7CisKKwlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCkgJiBPVEdfWENFSVZfT1VUUFVUUzsKKwlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CisKIAl1c2JfZ2FkZ2V0X3ZidXNfY29ubmVjdChpc3AtPm90Zy5nYWRnZXQpOwogCiAjaWZkZWYJQ09ORklHX1VTQl9PVEcKQEAgLTk5OSw2ICsxMDIzLDggQEAKIAkJCWlzcF9ic3RhdCA9IDA7CiAJCX0KIAl9IGVsc2UgeworCQl1MzIgbDsKKwogCQkvKiBpZiB1c2VyIHVucGx1Z2dlZCBtaW5pLUEgZW5kIG9mIGNhYmxlLAogCQkgKiBkb24ndCBieXBhc3MgQV9XQUlUX1ZGQUxMLgogCQkgKi8KQEAgLTEwMTksOCArMTA0NSw5IEBACiAJCQkJaXNwMTMwMV9jbGVhcl9iaXRzKGlzcCwgSVNQMTMwMV9NT0RFX0NPTlRST0xfMSwKIAkJCQkJCU1DMV9CRElTX0FDT05fRU4pOwogCQkJCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0JfSURMRTsKLQkJCQlPVEdfQ1RSTF9SRUcgJj0gT1RHX0NUUkxfUkVHICYgT1RHX0NUUkxfTUFTSwotCQkJCQkJJiB+T1RHX0NUUkxfQklUUzsKKwkJCQlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCkgJiBPVEdfQ1RSTF9NQVNLOworCQkJCWwgJj0gfk9UR19DVFJMX0JJVFM7CisJCQkJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBPVEdfU1RBVEVfQl9JRExFOgogCQkJCWJyZWFrOwpAQCAtMTA0Niw3ICsxMDczLDggQEAKIAkJCS8qIEZBTExUSFJPVUdIICovCiAJCWNhc2UgT1RHX1NUQVRFX0JfU1JQX0lOSVQ6CiAJCQliX2lkbGUoaXNwLCBfX2Z1bmNfXyk7Ci0JCQlPVEdfQ1RSTF9SRUcgJj0gT1RHX0NUUkxfUkVHICYgT1RHX1hDRUlWX09VVFBVVFM7CisJCQlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCkgJiBPVEdfWENFSVZfT1VUUFVUUzsKKwkJCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKIAkJCS8qIEZBTExUSFJPVUdIICovCiAJCWNhc2UgT1RHX1NUQVRFX0JfSURMRToKIAkJCWlmIChpc3AtPm90Zy5nYWRnZXQgJiYgKGlzcF9ic3RhdCAmIE9UR19CX1NFU1NfVkxEKSkgewpAQCAtMTEzMCwxMSArMTE1OCwxMSBAQAogCQkJY2FzZSBPVEdfU1RBVEVfQV9XQUlUX1ZSSVNFOgogCQkJCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0FfSE9TVDsKIAkJCQlwcl9kZWJ1ZygiICAtLT4gYV9ob3N0XG4iKTsKLQkJCQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRzsKKwkJCQlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOwogCQkJCW90Z19jdHJsIHw9IE9UR19BX0JVU1JFUTsKIAkJCQlvdGdfY3RybCAmPSB+KE9UR19CVVNEUk9QfE9UR19CX0JVU1JFUSkKIAkJCQkJCSYgT1RHX0NUUkxfTUFTSzsKLQkJCQlPVEdfQ1RSTF9SRUcgPSBvdGdfY3RybDsKKwkJCQlvbWFwX3dyaXRlbChvdGdfY3RybCwgT1RHX0NUUkwpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBPVEdfU1RBVEVfQl9XQUlUX0FDT046CiAJCQkJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQl9IT1NUOwpAQCAtMTI3NCw3ICsxMzAyLDcgQEAKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlpZiAoIWhvc3QpIHsKLQkJT1RHX0lSUV9FTl9SRUcgPSAwOworCQlvbWFwX3dyaXRldygwLCBPVEdfSVJRX0VOKTsKIAkJcG93ZXJfZG93bihpc3ApOwogCQlpc3AtPm90Zy5ob3N0ID0gMDsKIAkJcmV0dXJuIDA7CkBAIC0xMzI1LDEyICsxMzUzLDEzIEBACiBpc3AxMzAxX3NldF9wZXJpcGhlcmFsKHN0cnVjdCBvdGdfdHJhbnNjZWl2ZXIgKm90Zywgc3RydWN0IHVzYl9nYWRnZXQgKmdhZGdldCkKIHsKIAlzdHJ1Y3QgaXNwMTMwMQkqaXNwID0gY29udGFpbmVyX29mKG90Zywgc3RydWN0IGlzcDEzMDEsIG90Zyk7CisJdTMyIGw7CiAKIAlpZiAoIW90ZyB8fCBpc3AgIT0gdGhlX3RyYW5zY2VpdmVyKQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCWlmICghZ2FkZ2V0KSB7Ci0JCU9UR19JUlFfRU5fUkVHID0gMDsKKwkJb21hcF93cml0ZXcoMCwgT1RHX0lSUV9FTik7CiAJCWlmICghaXNwLT5vdGcuZGVmYXVsdF9hKQogCQkJZW5hYmxlX3ZidXNfZHJhdyhpc3AsIDApOwogCQl1c2JfZ2FkZ2V0X3ZidXNfZGlzY29ubmVjdChpc3AtPm90Zy5nYWRnZXQpOwpAQCAtMTM1MSw5ICsxMzgwLDExIEBACiAJaXNwLT5vdGcuZ2FkZ2V0ID0gZ2FkZ2V0OwogCS8vIEZJWE1FIHVwZGF0ZSBpdHMgcmVmY291bnQKIAotCU9UR19DVFJMX1JFRyA9IChPVEdfQ1RSTF9SRUcgJiBPVEdfQ1RSTF9NQVNLCi0JCQkJJiB+KE9UR19YQ0VJVl9PVVRQVVRTfE9UR19DVFJMX0JJVFMpKQotCQkJfCBPVEdfSUQ7CisJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpICYgT1RHX0NUUkxfTUFTSzsKKwlsICY9IH4oT1RHX1hDRUlWX09VVFBVVFN8T1RHX0NUUkxfQklUUyk7CisJbCB8PSBPVEdfSUQ7CisJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOworCiAJcG93ZXJfdXAoaXNwKTsKIAlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9CX0lETEU7CiAKQEAgLTE0MDUsMTYgKzE0MzYsMTcgQEAKIAkJCXx8IGlzcC0+b3RnLnN0YXRlICE9IE9UR19TVEFURV9CX0lETEUpCiAJCXJldHVybiAtRU5PREVWOwogCi0Jb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUc7CisJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKIAlpZiAoIShvdGdfY3RybCAmIE9UR19CU0VTU0VORCkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJb3RnX2N0cmwgfD0gT1RHX0JfQlVTUkVROwogCW90Z19jdHJsICY9IH5PVEdfQV9CVVNSRVEgJiBPVEdfQ1RSTF9NQVNLOwotCU9UR19DVFJMX1JFRyA9IG90Z19jdHJsOworCW9tYXBfd3JpdGVsKG90Z19jdHJsLCBPVEdfQ1RSTCk7CiAJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQl9TUlBfSU5JVDsKIAotCXByX2RlYnVnKCJvdGc6IFNSUCwgJXMgLi4uICUwNnhcbiIsIHN0YXRlX25hbWUoaXNwKSwgT1RHX0NUUkxfUkVHKTsKKwlwcl9kZWJ1Zygib3RnOiBTUlAsICVzIC4uLiAlMDZ4XG4iLCBzdGF0ZV9uYW1lKGlzcCksCisJCQlvbWFwX3JlYWRsKE9UR19DVFJMKSk7CiAjaWZkZWYJQ09ORklHX1VTQl9PVEcKIAljaGVja19zdGF0ZShpc3AsIF9fZnVuY19fKTsKICNlbmRpZgpAQCAtMTQyNiw2ICsxNDU4LDcgQEAKIHsKICNpZmRlZglDT05GSUdfVVNCX09URwogCXN0cnVjdCBpc3AxMzAxCSppc3AgPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgaXNwMTMwMSwgb3RnKTsKKwl1MzIgbDsKIAogCWlmICghZGV2IHx8IGlzcCAhPSB0aGVfdHJhbnNjZWl2ZXIpCiAJCXJldHVybiAtRU5PREVWOwpAQCAtMTQ1Miw3ICsxNDg1LDkgQEAKICNlbmRpZgogCQkvKiBjYWxsZXIgbXVzdCBzdXNwZW5kIHRoZW4gY2xlYXIgQV9CVVNSRVEgKi8KIAkJdXNiX2dhZGdldF92YnVzX2Nvbm5lY3QoaXNwLT5vdGcuZ2FkZ2V0KTsKLQkJT1RHX0NUUkxfUkVHIHw9IE9UR19BX1NFVEJfSE5QRU47CisJCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKKwkJbCB8PSBPVEdfQV9TRVRCX0hOUEVOOworCQlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CiAKIAkJYnJlYWs7CiAJY2FzZSBPVEdfU1RBVEVfQV9QRVJJUEhFUkFMOgpAQCAtMTQ2Miw3ICsxNDk3LDcgQEAKIAkJcmV0dXJuIC1FSUxTRVE7CiAJfQogCXByX2RlYnVnKCJvdGc6IEhOUCAlcywgJTA2eCAuLi5cbiIsCi0JCXN0YXRlX25hbWUoaXNwKSwgT1RHX0NUUkxfUkVHKTsKKwkJc3RhdGVfbmFtZShpc3ApLCBvbWFwX3JlYWRsKE9UR19DVFJMKSk7CiAJY2hlY2tfc3RhdGUoaXNwLCBfX2Z1bmNfXyk7CiAJcmV0dXJuIDA7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvbWF4Njg3NS5jIGIvZHJpdmVycy9pMmMvY2hpcHMvbWF4Njg3NS5jCmluZGV4IGNmNTA3YjMuLjVhMDI4NWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2NoaXBzL21heDY4NzUuYworKysgYi9kcml2ZXJzL2kyYy9jaGlwcy9tYXg2ODc1LmMKQEAgLTE3MCw3ICsxNzAsNyBAQAogCXN0cnVjdCBpMmNfY2xpZW50ICpyZWFsX2NsaWVudDsKIAlzdHJ1Y3QgaTJjX2NsaWVudCAqZmFrZV9jbGllbnQ7CiAJc3RydWN0IG1heDY4NzVfZGF0YSAqZGF0YTsKLQlpbnQgZXJyID0gMDsKKwlpbnQgZXJyOwogCiAJaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShhZGFwdGVyLCBJMkNfRlVOQ19TTUJVU19XUklURV9CWVRFX0RBVEEKIAkJCQkgICAgIHwgSTJDX0ZVTkNfU01CVVNfUkVBRF9CWVRFKSkKQEAgLTE5NSw3ICsxOTUsNiBAQAogCXJlYWxfY2xpZW50LT5hZGRyID0gYWRkcmVzczsKIAlyZWFsX2NsaWVudC0+YWRhcHRlciA9IGFkYXB0ZXI7CiAJcmVhbF9jbGllbnQtPmRyaXZlciA9ICZtYXg2ODc1X2RyaXZlcjsKLQlyZWFsX2NsaWVudC0+ZmxhZ3MgPSAwOwogCXN0cmxjcHkocmVhbF9jbGllbnQtPm5hbWUsICJtYXg2ODc1IiwgSTJDX05BTUVfU0laRSk7CiAJbXV0ZXhfaW5pdCgmZGF0YS0+dXBkYXRlX2xvY2spOwogCkBAIC0yMDQsNyArMjAzLDYgQEAKIAlmYWtlX2NsaWVudC0+YWRkciA9IGFkZHJlc3MgfCAxOwogCWZha2VfY2xpZW50LT5hZGFwdGVyID0gYWRhcHRlcjsKIAlmYWtlX2NsaWVudC0+ZHJpdmVyID0gJm1heDY4NzVfZHJpdmVyOwotCWZha2VfY2xpZW50LT5mbGFncyA9IDA7CiAJc3RybGNweShmYWtlX2NsaWVudC0+bmFtZSwgIm1heDY4NzUgc3ViY2xpZW50IiwgSTJDX05BTUVfU0laRSk7CiAKIAlpZiAoKGVyciA9IGkyY19hdHRhY2hfY2xpZW50KHJlYWxfY2xpZW50KSkgIT0gMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL3BjYTk1MzkuYyBiL2RyaXZlcnMvaTJjL2NoaXBzL3BjYTk1MzkuYwppbmRleCBmNDNjNGU3Li41OGFiN2YyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9jaGlwcy9wY2E5NTM5LmMKKysrIGIvZHJpdmVycy9pMmMvY2hpcHMvcGNhOTUzOS5jCkBAIC0xMTMsNyArMTEzLDcgQEAKIC8qIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGkyY19wcm9iZSAqLwogc3RhdGljIGludCBwY2E5NTM5X2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCBhZGRyZXNzLCBpbnQga2luZCkKIHsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqbmV3X2NsaWVudDsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50OwogCXN0cnVjdCBwY2E5NTM5X2RhdGEgKmRhdGE7CiAJaW50IGVyciA9IDA7CiAKQEAgLTEyNywyOSArMTI3LDI4IEBACiAJCWdvdG8gZXhpdDsKIAl9CiAKLQluZXdfY2xpZW50ID0gJmRhdGEtPmNsaWVudDsKLQlpMmNfc2V0X2NsaWVudGRhdGEobmV3X2NsaWVudCwgZGF0YSk7Ci0JbmV3X2NsaWVudC0+YWRkciA9IGFkZHJlc3M7Ci0JbmV3X2NsaWVudC0+YWRhcHRlciA9IGFkYXB0ZXI7Ci0JbmV3X2NsaWVudC0+ZHJpdmVyID0gJnBjYTk1MzlfZHJpdmVyOwotCW5ld19jbGllbnQtPmZsYWdzID0gMDsKKwljbGllbnQgPSAmZGF0YS0+Y2xpZW50OworCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIGRhdGEpOworCWNsaWVudC0+YWRkciA9IGFkZHJlc3M7CisJY2xpZW50LT5hZGFwdGVyID0gYWRhcHRlcjsKKwljbGllbnQtPmRyaXZlciA9ICZwY2E5NTM5X2RyaXZlcjsKIAogCWlmIChraW5kIDwgMCkgewogCQkvKiBEZXRlY3Rpb246IHRoZSBwY2E5NTM5IG9ubHkgaGFzIDggcmVnaXN0ZXJzICgwLTcpLgogCQkgICBBIHJlYWQgb2YgNyBzaG91bGQgc3VjY2VlZCwgYnV0IGEgcmVhZCBvZiA4IHNob3VsZCBmYWlsLiAqLwotCQlpZiAoKGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShuZXdfY2xpZW50LCA3KSA8IDApIHx8Ci0JCSAgICAoaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKG5ld19jbGllbnQsIDgpID49IDApKQorCQlpZiAoKGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIDcpIDwgMCkgfHwKKwkJICAgIChpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCA4KSA+PSAwKSkKIAkJCWdvdG8gZXhpdF9rZnJlZTsKIAl9CiAKLQlzdHJsY3B5KG5ld19jbGllbnQtPm5hbWUsICJwY2E5NTM5IiwgSTJDX05BTUVfU0laRSk7CisJc3RybGNweShjbGllbnQtPm5hbWUsICJwY2E5NTM5IiwgSTJDX05BTUVfU0laRSk7CiAKIAkvKiBUZWxsIHRoZSBJMkMgbGF5ZXIgYSBuZXcgY2xpZW50IGhhcyBhcnJpdmVkICovCi0JaWYgKChlcnIgPSBpMmNfYXR0YWNoX2NsaWVudChuZXdfY2xpZW50KSkpCisJaWYgKChlcnIgPSBpMmNfYXR0YWNoX2NsaWVudChjbGllbnQpKSkKIAkJZ290byBleGl0X2tmcmVlOwogCiAJLyogUmVnaXN0ZXIgc3lzZnMgaG9va3MgKi8KLQllcnIgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJm5ld19jbGllbnQtPmRldi5rb2JqLAorCWVyciA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmY2xpZW50LT5kZXYua29iaiwKIAkJCQkgJnBjYTk1MzlfZGVmYXR0cl9ncm91cCk7CiAJaWYgKGVycikKIAkJZ290byBleGl0X2RldGFjaDsKQEAgLTE1Nyw3ICsxNTYsNyBAQAogCXJldHVybiAwOwogCiBleGl0X2RldGFjaDoKLQlpMmNfZGV0YWNoX2NsaWVudChuZXdfY2xpZW50KTsKKwlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOwogZXhpdF9rZnJlZToKIAlrZnJlZShkYXRhKTsKIGV4aXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9wY2Y4NTc0LmMgYi9kcml2ZXJzL2kyYy9jaGlwcy9wY2Y4NTc0LmMKaW5kZXggZTViMzEzMi4uMWIzZGIyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvY2hpcHMvcGNmODU3NC5jCisrKyBiL2RyaXZlcnMvaTJjL2NoaXBzL3BjZjg1NzQuYwpAQCAtMSw2ICsxLDQgQEAKIC8qCi0gICAgcGNmODU3NC5jIC0gUGFydCBvZiBsbV9zZW5zb3JzLCBMaW51eCBrZXJuZWwgbW9kdWxlcyBmb3IgaGFyZHdhcmUKLSAgICAgICAgICAgICBtb25pdG9yaW5nCiAgICAgQ29weXJpZ2h0IChjKSAyMDAwICBGcm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+LCAKICAgICAgICAgICAgICAgICAgICAgICAgIFBoaWxpcCBFZGVsYnJvY2sgPHBoaWxAbmV0cm9lZGdlLmNvbT4sCiAgICAgICAgICAgICAgICAgICAgICAgICBEYW4gRWF0b24gPGRhbi5lYXRvbkByb2NrZXRsb2dpeC5jb20+CkBAIC0xMjksNyArMTI3LDcgQEAKIC8qIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGkyY19wcm9iZSAqLwogc3RhdGljIGludCBwY2Y4NTc0X2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCBhZGRyZXNzLCBpbnQga2luZCkKIHsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqbmV3X2NsaWVudDsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50OwogCXN0cnVjdCBwY2Y4NTc0X2RhdGEgKmRhdGE7CiAJaW50IGVyciA9IDA7CiAJY29uc3QgY2hhciAqY2xpZW50X25hbWUgPSAiIjsKQEAgLTE0NCwxMiArMTQyLDExIEBACiAJCWdvdG8gZXhpdDsKIAl9CiAKLQluZXdfY2xpZW50ID0gJmRhdGEtPmNsaWVudDsKLQlpMmNfc2V0X2NsaWVudGRhdGEobmV3X2NsaWVudCwgZGF0YSk7Ci0JbmV3X2NsaWVudC0+YWRkciA9IGFkZHJlc3M7Ci0JbmV3X2NsaWVudC0+YWRhcHRlciA9IGFkYXB0ZXI7Ci0JbmV3X2NsaWVudC0+ZHJpdmVyID0gJnBjZjg1NzRfZHJpdmVyOwotCW5ld19jbGllbnQtPmZsYWdzID0gMDsKKwljbGllbnQgPSAmZGF0YS0+Y2xpZW50OworCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIGRhdGEpOworCWNsaWVudC0+YWRkciA9IGFkZHJlc3M7CisJY2xpZW50LT5hZGFwdGVyID0gYWRhcHRlcjsKKwljbGllbnQtPmRyaXZlciA9ICZwY2Y4NTc0X2RyaXZlcjsKIAogCS8qIE5vdywgd2Ugd291bGQgZG8gdGhlIHJlbWFpbmluZyBkZXRlY3Rpb24uIEJ1dCB0aGUgUENGODU3NCBpcyBwbGFpbmx5CiAJICAgaW1wb3NzaWJsZSB0byBkZXRlY3QhIFN0dXBpZCBjaGlwLiAqLwpAQCAtMTY4LDIzICsxNjUsMjMgQEAKIAkJY2xpZW50X25hbWUgPSAicGNmODU3NCI7CiAKIAkvKiBGaWxsIGluIHRoZSByZW1haW5pbmcgY2xpZW50IGZpZWxkcyBhbmQgcHV0IGl0IGludG8gdGhlIGdsb2JhbCBsaXN0ICovCi0Jc3RybGNweShuZXdfY2xpZW50LT5uYW1lLCBjbGllbnRfbmFtZSwgSTJDX05BTUVfU0laRSk7CisJc3RybGNweShjbGllbnQtPm5hbWUsIGNsaWVudF9uYW1lLCBJMkNfTkFNRV9TSVpFKTsKIAogCS8qIFRlbGwgdGhlIEkyQyBsYXllciBhIG5ldyBjbGllbnQgaGFzIGFycml2ZWQgKi8KLQlpZiAoKGVyciA9IGkyY19hdHRhY2hfY2xpZW50KG5ld19jbGllbnQpKSkKKwlpZiAoKGVyciA9IGkyY19hdHRhY2hfY2xpZW50KGNsaWVudCkpKQogCQlnb3RvIGV4aXRfZnJlZTsKIAkKIAkvKiBJbml0aWFsaXplIHRoZSBQQ0Y4NTc0IGNoaXAgKi8KLQlwY2Y4NTc0X2luaXRfY2xpZW50KG5ld19jbGllbnQpOworCXBjZjg1NzRfaW5pdF9jbGllbnQoY2xpZW50KTsKIAogCS8qIFJlZ2lzdGVyIHN5c2ZzIGhvb2tzICovCi0JZXJyID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZuZXdfY2xpZW50LT5kZXYua29iaiwgJnBjZjg1NzRfYXR0cl9ncm91cCk7CisJZXJyID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZjbGllbnQtPmRldi5rb2JqLCAmcGNmODU3NF9hdHRyX2dyb3VwKTsKIAlpZiAoZXJyKQogCQlnb3RvIGV4aXRfZGV0YWNoOwogCXJldHVybiAwOwogCiAgICAgICBleGl0X2RldGFjaDoKLQlpMmNfZGV0YWNoX2NsaWVudChuZXdfY2xpZW50KTsKKwlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOwogICAgICAgZXhpdF9mcmVlOgogCWtmcmVlKGRhdGEpOwogICAgICAgZXhpdDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL3BjZjg1OTEuYyBiL2RyaXZlcnMvaTJjL2NoaXBzL3BjZjg1OTEuYwppbmRleCA2NmM3YzNiLi5kYjczNTM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9jaGlwcy9wY2Y4NTkxLmMKKysrIGIvZHJpdmVycy9pMmMvY2hpcHMvcGNmODU5MS5jCkBAIC0xLDYgKzEsNCBAQAogLyoKLSAgICBwY2Y4NTkxLmMgLSBQYXJ0IG9mIGxtX3NlbnNvcnMsIExpbnV4IGtlcm5lbCBtb2R1bGVzIGZvciBoYXJkd2FyZQotICAgICAgICAgICAgICAgIG1vbml0b3JpbmcKICAgICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CiAgICAgUG9ydGVkIHRvIExpbnV4IDIuNiBieSBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+IHdpdGggCiAgICAgdGhlIGhlbHAgb2YgSmVhbiBEZWx2YXJlIDxraGFsaUBsaW51eC1mci5vcmc+CkBAIC0xOTAsNyArMTg4LDcgQEAKIC8qIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGkyY19wcm9iZSAqLwogc3RhdGljIGludCBwY2Y4NTkxX2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCBhZGRyZXNzLCBpbnQga2luZCkKIHsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqbmV3X2NsaWVudDsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50OwogCXN0cnVjdCBwY2Y4NTkxX2RhdGEgKmRhdGE7CiAJaW50IGVyciA9IDA7CiAKQEAgLTIwNSwxMiArMjAzLDExIEBACiAJCWdvdG8gZXhpdDsKIAl9CiAJCi0JbmV3X2NsaWVudCA9ICZkYXRhLT5jbGllbnQ7Ci0JaTJjX3NldF9jbGllbnRkYXRhKG5ld19jbGllbnQsIGRhdGEpOwotCW5ld19jbGllbnQtPmFkZHIgPSBhZGRyZXNzOwotCW5ld19jbGllbnQtPmFkYXB0ZXIgPSBhZGFwdGVyOwotCW5ld19jbGllbnQtPmRyaXZlciA9ICZwY2Y4NTkxX2RyaXZlcjsKLQluZXdfY2xpZW50LT5mbGFncyA9IDA7CisJY2xpZW50ID0gJmRhdGEtPmNsaWVudDsKKwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBkYXRhKTsKKwljbGllbnQtPmFkZHIgPSBhZGRyZXNzOworCWNsaWVudC0+YWRhcHRlciA9IGFkYXB0ZXI7CisJY2xpZW50LT5kcml2ZXIgPSAmcGNmODU5MV9kcml2ZXI7CiAKIAkvKiBOb3csIHdlIHdvdWxkIGRvIHRoZSByZW1haW5pbmcgZGV0ZWN0aW9uLiBCdXQgdGhlIFBDRjg1OTEgaXMgcGxhaW5seQogCSAgIGltcG9zc2libGUgdG8gZGV0ZWN0ISBTdHVwaWQgY2hpcC4gKi8KQEAgLTIyMSwzMSArMjE4LDMxIEBACiAKIAkvKiBGaWxsIGluIHRoZSByZW1haW5pbmcgY2xpZW50IGZpZWxkcyBhbmQgcHV0IGl0IGludG8gdGhlIGdsb2JhbCAKIAkgICBsaXN0ICovCi0Jc3RybGNweShuZXdfY2xpZW50LT5uYW1lLCAicGNmODU5MSIsIEkyQ19OQU1FX1NJWkUpOworCXN0cmxjcHkoY2xpZW50LT5uYW1lLCAicGNmODU5MSIsIEkyQ19OQU1FX1NJWkUpOwogCW11dGV4X2luaXQoJmRhdGEtPnVwZGF0ZV9sb2NrKTsKIAogCS8qIFRlbGwgdGhlIEkyQyBsYXllciBhIG5ldyBjbGllbnQgaGFzIGFycml2ZWQgKi8KLQlpZiAoKGVyciA9IGkyY19hdHRhY2hfY2xpZW50KG5ld19jbGllbnQpKSkKKwlpZiAoKGVyciA9IGkyY19hdHRhY2hfY2xpZW50KGNsaWVudCkpKQogCQlnb3RvIGV4aXRfa2ZyZWU7CiAKIAkvKiBJbml0aWFsaXplIHRoZSBQQ0Y4NTkxIGNoaXAgKi8KLQlwY2Y4NTkxX2luaXRfY2xpZW50KG5ld19jbGllbnQpOworCXBjZjg1OTFfaW5pdF9jbGllbnQoY2xpZW50KTsKIAogCS8qIFJlZ2lzdGVyIHN5c2ZzIGhvb2tzICovCi0JZXJyID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZuZXdfY2xpZW50LT5kZXYua29iaiwgJnBjZjg1OTFfYXR0cl9ncm91cCk7CisJZXJyID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZjbGllbnQtPmRldi5rb2JqLCAmcGNmODU5MV9hdHRyX2dyb3VwKTsKIAlpZiAoZXJyKQogCQlnb3RvIGV4aXRfZGV0YWNoOwogCiAJLyogUmVnaXN0ZXIgaW5wdXQyIGlmIG5vdCBpbiAidHdvIGRpZmZlcmVudGlhbCBpbnB1dHMiIG1vZGUgKi8KIAlpZiAoaW5wdXRfbW9kZSAhPSAzKSB7Ci0JCWlmICgoZXJyID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZuZXdfY2xpZW50LT5kZXYsCisJCWlmICgoZXJyID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZjbGllbnQtPmRldiwKIAkJCQkJICAgICAgJmRldl9hdHRyX2luMl9pbnB1dCkpKQogCQkJZ290byBleGl0X3N5c2ZzX3JlbW92ZTsKIAl9CiAKIAkvKiBSZWdpc3RlciBpbnB1dDMgb25seSBpbiAiZm91ciBzaW5nbGUgZW5kZWQgaW5wdXRzIiBtb2RlICovCiAJaWYgKGlucHV0X21vZGUgPT0gMCkgewotCQlpZiAoKGVyciA9IGRldmljZV9jcmVhdGVfZmlsZSgmbmV3X2NsaWVudC0+ZGV2LAorCQlpZiAoKGVyciA9IGRldmljZV9jcmVhdGVfZmlsZSgmY2xpZW50LT5kZXYsCiAJCQkJCSAgICAgICZkZXZfYXR0cl9pbjNfaW5wdXQpKSkKIAkJCWdvdG8gZXhpdF9zeXNmc19yZW1vdmU7CiAJfQpAQCAtMjUzLDEwICsyNTAsMTAgQEAKIAlyZXR1cm4gMDsKIAogZXhpdF9zeXNmc19yZW1vdmU6Ci0Jc3lzZnNfcmVtb3ZlX2dyb3VwKCZuZXdfY2xpZW50LT5kZXYua29iaiwgJnBjZjg1OTFfYXR0cl9ncm91cF9vcHQpOwotCXN5c2ZzX3JlbW92ZV9ncm91cCgmbmV3X2NsaWVudC0+ZGV2LmtvYmosICZwY2Y4NTkxX2F0dHJfZ3JvdXApOworCXN5c2ZzX3JlbW92ZV9ncm91cCgmY2xpZW50LT5kZXYua29iaiwgJnBjZjg1OTFfYXR0cl9ncm91cF9vcHQpOworCXN5c2ZzX3JlbW92ZV9ncm91cCgmY2xpZW50LT5kZXYua29iaiwgJnBjZjg1OTFfYXR0cl9ncm91cCk7CiBleGl0X2RldGFjaDoKLQlpMmNfZGV0YWNoX2NsaWVudChuZXdfY2xpZW50KTsKKwlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOwogZXhpdF9rZnJlZToKIAlrZnJlZShkYXRhKTsKIGV4aXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9pMmMtY29yZS5jIGIvZHJpdmVycy9pMmMvaTJjLWNvcmUuYwppbmRleCBkMDE3NWY0Li4wYTc5Zjc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9pMmMtY29yZS5jCisrKyBiL2RyaXZlcnMvaTJjL2kyYy1jb3JlLmMKQEAgLTI5LDEzICsyOSwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9pZHIuaD4KLSNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgogI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KICNpbmNsdWRlIDxsaW51eC9pcnFmbGFncy5oPgotI2luY2x1ZGUgPGxpbnV4L3NlbWFwaG9yZS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKICNpbmNsdWRlICJpMmMtY29yZS5oIgpAQCAtNDQsNyArNDIsOSBAQAogc3RhdGljIERFRklORV9NVVRFWChjb3JlX2xvY2spOwogc3RhdGljIERFRklORV9JRFIoaTJjX2FkYXB0ZXJfaWRyKTsKIAotI2RlZmluZSBpc19uZXdzdHlsZV9kcml2ZXIoZCkgKChkKS0+cHJvYmUgfHwgKGQpLT5yZW1vdmUpCisjZGVmaW5lIGlzX25ld3N0eWxlX2RyaXZlcihkKSAoKGQpLT5wcm9iZSB8fCAoZCktPnJlbW92ZSB8fCAoZCktPmRldGVjdCkKKworc3RhdGljIGludCBpMmNfZGV0ZWN0KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgc3RydWN0IGkyY19kcml2ZXIgKmRyaXZlcik7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtMTAzLDE5ICsxMDMsMTQgQEAKIHsKIAlzdHJ1Y3QgaTJjX2NsaWVudAkqY2xpZW50ID0gdG9faTJjX2NsaWVudChkZXYpOwogCXN0cnVjdCBpMmNfZHJpdmVyCSpkcml2ZXIgPSB0b19pMmNfZHJpdmVyKGRldi0+ZHJpdmVyKTsKLQljb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQ7CiAJaW50IHN0YXR1czsKIAotCWlmICghZHJpdmVyLT5wcm9iZSkKKwlpZiAoIWRyaXZlci0+cHJvYmUgfHwgIWRyaXZlci0+aWRfdGFibGUpCiAJCXJldHVybiAtRU5PREVWOwogCWNsaWVudC0+ZHJpdmVyID0gZHJpdmVyOwogCWRldl9kYmcoZGV2LCAicHJvYmVcbiIpOwogCi0JaWYgKGRyaXZlci0+aWRfdGFibGUpCi0JCWlkID0gaTJjX21hdGNoX2lkKGRyaXZlci0+aWRfdGFibGUsIGNsaWVudCk7Ci0JZWxzZQotCQlpZCA9IE5VTEw7Ci0Jc3RhdHVzID0gZHJpdmVyLT5wcm9iZShjbGllbnQsIGlkKTsKKwlzdGF0dXMgPSBkcml2ZXItPnByb2JlKGNsaWVudCwgaTJjX21hdGNoX2lkKGRyaXZlci0+aWRfdGFibGUsIGNsaWVudCkpOwogCWlmIChzdGF0dXMpCiAJCWNsaWVudC0+ZHJpdmVyID0gTlVMTDsKIAlyZXR1cm4gc3RhdHVzOwpAQCAtMjA4LDcgKzIwMyw3IEBACiAJeyB9LAogfTsKIAotc3RhdGljIHN0cnVjdCBidXNfdHlwZSBpMmNfYnVzX3R5cGUgPSB7CitzdHJ1Y3QgYnVzX3R5cGUgaTJjX2J1c190eXBlID0gewogCS5uYW1lCQk9ICJpMmMiLAogCS5kZXZfYXR0cnMJPSBpMmNfZGV2X2F0dHJzLAogCS5tYXRjaAkJPSBpMmNfZGV2aWNlX21hdGNoLApAQCAtMjE5LDYgKzIxNCw3IEBACiAJLnN1c3BlbmQJPSBpMmNfZGV2aWNlX3N1c3BlbmQsCiAJLnJlc3VtZQkJPSBpMmNfZGV2aWNlX3Jlc3VtZSwKIH07CitFWFBPUlRfU1lNQk9MX0dQTChpMmNfYnVzX3R5cGUpOwogCiAKIC8qKgpAQCAtMzA2LDYgKzMwMiwxNCBAQAogCQlyZXR1cm47CiAJfQogCisJaWYgKGFkYXB0ZXItPmNsaWVudF91bnJlZ2lzdGVyKSB7CisJCWlmIChhZGFwdGVyLT5jbGllbnRfdW5yZWdpc3RlcihjbGllbnQpKSB7CisJCQlkZXZfd2FybigmY2xpZW50LT5kZXYsCisJCQkJICJjbGllbnRfdW5yZWdpc3RlciBbJXNdIGZhaWxlZFxuIiwKKwkJCQkgY2xpZW50LT5uYW1lKTsKKwkJfQorCX0KKwogCW11dGV4X2xvY2soJmFkYXB0ZXItPmNsaXN0X2xvY2spOwogCWxpc3RfZGVsKCZjbGllbnQtPmxpc3QpOwogCW11dGV4X3VubG9jaygmYWRhcHRlci0+Y2xpc3RfbG9jayk7CkBAIC00MTYsNiArNDIwLDEwIEBACiAJc3RydWN0IGkyY19kcml2ZXIgKmRyaXZlciA9IHRvX2kyY19kcml2ZXIoZCk7CiAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwID0gZGF0YTsKIAorCS8qIERldGVjdCBzdXBwb3J0ZWQgZGV2aWNlcyBvbiB0aGF0IGJ1cywgYW5kIGluc3RhbnRpYXRlIHRoZW0gKi8KKwlpMmNfZGV0ZWN0KGFkYXAsIGRyaXZlcik7CisKKwkvKiBMZXQgbGVnYWN5IGRyaXZlcnMgc2NhbiB0aGlzIGJ1cyBmb3IgbWF0Y2hpbmcgZGV2aWNlcyAqLwogCWlmIChkcml2ZXItPmF0dGFjaF9hZGFwdGVyKSB7CiAJCS8qIFdlIGlnbm9yZSB0aGUgcmV0dXJuIGNvZGU7IGlmIGl0IGZhaWxzLCB0b28gYmFkICovCiAJCWRyaXZlci0+YXR0YWNoX2FkYXB0ZXIoYWRhcCk7CkBAIC00NTUsNyArNDYzLDcgQEAKIAlpZiAoYWRhcC0+bnIgPCBfX2kyY19maXJzdF9keW5hbWljX2J1c19udW0pCiAJCWkyY19zY2FuX3N0YXRpY19ib2FyZF9pbmZvKGFkYXApOwogCi0JLyogbGV0IGxlZ2FjeSBkcml2ZXJzIHNjYW4gdGhpcyBidXMgZm9yIG1hdGNoaW5nIGRldmljZXMgKi8KKwkvKiBOb3RpZnkgZHJpdmVycyAqLwogCWR1bW15ID0gYnVzX2Zvcl9lYWNoX2RydigmaTJjX2J1c190eXBlLCBOVUxMLCBhZGFwLAogCQkJCSBpMmNfZG9fYWRkX2FkYXB0ZXIpOwogCkBAIC01NjEsOCArNTY5LDE5IEBACiB7CiAJc3RydWN0IGkyY19kcml2ZXIgKmRyaXZlciA9IHRvX2kyY19kcml2ZXIoZCk7CiAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0gZGF0YTsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCAqX247CiAJaW50IHJlczsKIAorCS8qIFJlbW92ZSB0aGUgZGV2aWNlcyB3ZSBjcmVhdGVkIG91cnNlbHZlcyAqLworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjbGllbnQsIF9uLCAmZHJpdmVyLT5jbGllbnRzLCBkZXRlY3RlZCkgeworCQlpZiAoY2xpZW50LT5hZGFwdGVyID09IGFkYXB0ZXIpIHsKKwkJCWRldl9kYmcoJmFkYXB0ZXItPmRldiwgIlJlbW92aW5nICVzIGF0IDB4JXhcbiIsCisJCQkJY2xpZW50LT5uYW1lLCBjbGllbnQtPmFkZHIpOworCQkJbGlzdF9kZWwoJmNsaWVudC0+ZGV0ZWN0ZWQpOworCQkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGNsaWVudCk7CisJCX0KKwl9CisKIAlpZiAoIWRyaXZlci0+ZGV0YWNoX2FkYXB0ZXIpCiAJCXJldHVybiAwOwogCXJlcyA9IGRyaXZlci0+ZGV0YWNoX2FkYXB0ZXIoYWRhcHRlcik7CkBAIC01ODIsOCArNjAxLDcgQEAKICAqLwogaW50IGkyY19kZWxfYWRhcHRlcihzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCiB7Ci0Jc3RydWN0IGxpc3RfaGVhZCAgKml0ZW0sICpfbjsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50OworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsICpfbjsKIAlpbnQgcmVzID0gMDsKIAogCW11dGV4X2xvY2soJmNvcmVfbG9jayk7CkBAIC02MDQsMTAgKzYyMiw5IEBACiAKIAkvKiBkZXRhY2ggYW55IGFjdGl2ZSBjbGllbnRzLiBUaGlzIG11c3QgYmUgZG9uZSBmaXJzdCwgYmVjYXVzZQogCSAqIGl0IGNhbiBmYWlsOyBpbiB3aGljaCBjYXNlIHdlIGdpdmUgdXAuICovCi0JbGlzdF9mb3JfZWFjaF9zYWZlKGl0ZW0sIF9uLCAmYWRhcC0+Y2xpZW50cykgeworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjbGllbnQsIF9uLCAmYWRhcC0+Y2xpZW50cywgbGlzdCkgewogCQlzdHJ1Y3QgaTJjX2RyaXZlcgkqZHJpdmVyOwogCi0JCWNsaWVudCA9IGxpc3RfZW50cnkoaXRlbSwgc3RydWN0IGkyY19jbGllbnQsIGxpc3QpOwogCQlkcml2ZXIgPSBjbGllbnQtPmRyaXZlcjsKIAogCQkvKiBuZXcgc3R5bGUsIGZvbGxvdyBzdGFuZGFyZCBkcml2ZXIgbW9kZWwgKi8KQEAgLTY0Niw2ICs2NjMsMjAgQEAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCitzdGF0aWMgaW50IF9fYXR0YWNoX2FkYXB0ZXIoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9IHRvX2kyY19hZGFwdGVyKGRldik7CisJc3RydWN0IGkyY19kcml2ZXIgKmRyaXZlciA9IGRhdGE7CisKKwlpMmNfZGV0ZWN0KGFkYXB0ZXIsIGRyaXZlcik7CisKKwkvKiBMZWdhY3kgZHJpdmVycyBzY2FuIGkyYyBidXNzZXMgZGlyZWN0bHkgKi8KKwlpZiAoZHJpdmVyLT5hdHRhY2hfYWRhcHRlcikKKwkJZHJpdmVyLT5hdHRhY2hfYWRhcHRlcihhZGFwdGVyKTsKKworCXJldHVybiAwOworfQorCiAvKgogICogQW4gaTJjX2RyaXZlciBpcyB1c2VkIHdpdGggb25lIG9yIG1vcmUgaTJjX2NsaWVudCAoZGV2aWNlKSBub2RlcyB0byBhY2Nlc3MKICAqIGkyYyBzbGF2ZSBjaGlwcywgb24gYSBidXMgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHNvbWUgaTJjX2FkYXB0ZXIuICBUaGVyZQpAQCAtNjg1LDIzICs3MTYsNTkgQEAKIAogCXByX2RlYnVnKCJpMmMtY29yZTogZHJpdmVyIFslc10gcmVnaXN0ZXJlZFxuIiwgZHJpdmVyLT5kcml2ZXIubmFtZSk7CiAKLQkvKiBsZWdhY3kgZHJpdmVycyBzY2FuIGkyYyBidXNzZXMgZGlyZWN0bHkgKi8KLQlpZiAoZHJpdmVyLT5hdHRhY2hfYWRhcHRlcikgewotCQlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXI7Ci0KLQkJZG93bigmaTJjX2FkYXB0ZXJfY2xhc3Muc2VtKTsKLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShhZGFwdGVyLCAmaTJjX2FkYXB0ZXJfY2xhc3MuZGV2aWNlcywKLQkJCQkgICAgZGV2Lm5vZGUpIHsKLQkJCWRyaXZlci0+YXR0YWNoX2FkYXB0ZXIoYWRhcHRlcik7Ci0JCX0KLQkJdXAoJmkyY19hZGFwdGVyX2NsYXNzLnNlbSk7Ci0JfQorCUlOSVRfTElTVF9IRUFEKCZkcml2ZXItPmNsaWVudHMpOworCS8qIFdhbGsgdGhlIGFkYXB0ZXJzIHRoYXQgYXJlIGFscmVhZHkgcHJlc2VudCAqLworCWNsYXNzX2Zvcl9lYWNoX2RldmljZSgmaTJjX2FkYXB0ZXJfY2xhc3MsIGRyaXZlciwgX19hdHRhY2hfYWRhcHRlcik7CiAKIAltdXRleF91bmxvY2soJmNvcmVfbG9jayk7CiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKGkyY19yZWdpc3Rlcl9kcml2ZXIpOwogCitzdGF0aWMgaW50IF9fZGV0YWNoX2FkYXB0ZXIoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9IHRvX2kyY19hZGFwdGVyKGRldik7CisJc3RydWN0IGkyY19kcml2ZXIgKmRyaXZlciA9IGRhdGE7CisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgKl9uOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNsaWVudCwgX24sICZkcml2ZXItPmNsaWVudHMsIGRldGVjdGVkKSB7CisJCWRldl9kYmcoJmFkYXB0ZXItPmRldiwgIlJlbW92aW5nICVzIGF0IDB4JXhcbiIsCisJCQljbGllbnQtPm5hbWUsIGNsaWVudC0+YWRkcik7CisJCWxpc3RfZGVsKCZjbGllbnQtPmRldGVjdGVkKTsKKwkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGNsaWVudCk7CisJfQorCisJaWYgKGlzX25ld3N0eWxlX2RyaXZlcihkcml2ZXIpKQorCQlyZXR1cm4gMDsKKworCS8qIEhhdmUgYSBsb29rIGF0IGVhY2ggYWRhcHRlciwgaWYgY2xpZW50cyBvZiB0aGlzIGRyaXZlciBhcmUgc3RpbGwKKwkgKiBhdHRhY2hlZC4gSWYgc28sIGRldGFjaCB0aGVtIHRvIGJlIGFibGUgdG8ga2lsbCB0aGUgZHJpdmVyCisJICogYWZ0ZXJ3YXJkcy4KKwkgKi8KKwlpZiAoZHJpdmVyLT5kZXRhY2hfYWRhcHRlcikgeworCQlpZiAoZHJpdmVyLT5kZXRhY2hfYWRhcHRlcihhZGFwdGVyKSkKKwkJCWRldl9lcnIoJmFkYXB0ZXItPmRldiwKKwkJCQkiZGV0YWNoX2FkYXB0ZXIgZmFpbGVkIGZvciBkcml2ZXIgWyVzXVxuIiwKKwkJCQlkcml2ZXItPmRyaXZlci5uYW1lKTsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCAqX247CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNsaWVudCwgX24sICZhZGFwdGVyLT5jbGllbnRzLCBsaXN0KSB7CisJCQlpZiAoY2xpZW50LT5kcml2ZXIgIT0gZHJpdmVyKQorCQkJCWNvbnRpbnVlOworCQkJZGV2X2RiZygmYWRhcHRlci0+ZGV2LAorCQkJCSJkZXRhY2hpbmcgY2xpZW50IFslc10gYXQgMHglMDJ4XG4iLAorCQkJCWNsaWVudC0+bmFtZSwgY2xpZW50LT5hZGRyKTsKKwkJCWlmIChkcml2ZXItPmRldGFjaF9jbGllbnQoY2xpZW50KSkKKwkJCQlkZXZfZXJyKCZhZGFwdGVyLT5kZXYsICJkZXRhY2hfY2xpZW50ICIKKwkJCQkJImZhaWxlZCBmb3IgY2xpZW50IFslc10gYXQgMHglMDJ4XG4iLAorCQkJCQljbGllbnQtPm5hbWUsIGNsaWVudC0+YWRkcik7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKiBpMmNfZGVsX2RyaXZlciAtIHVucmVnaXN0ZXIgSTJDIGRyaXZlcgogICogQGRyaXZlcjogdGhlIGRyaXZlciBiZWluZyB1bnJlZ2lzdGVyZWQKQEAgLTcwOSw0OCArNzc2LDEwIEBACiAgKi8KIHZvaWQgaTJjX2RlbF9kcml2ZXIoc3RydWN0IGkyY19kcml2ZXIgKmRyaXZlcikKIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkICAgKml0ZW0yLCAqX247Ci0Jc3RydWN0IGkyY19jbGllbnQgICpjbGllbnQ7Ci0Jc3RydWN0IGkyY19hZGFwdGVyICphZGFwOwotCiAJbXV0ZXhfbG9jaygmY29yZV9sb2NrKTsKIAotCS8qIG5ldy1zdHlsZSBkcml2ZXI/ICovCi0JaWYgKGlzX25ld3N0eWxlX2RyaXZlcihkcml2ZXIpKQotCQlnb3RvIHVucmVnaXN0ZXI7CisJY2xhc3NfZm9yX2VhY2hfZGV2aWNlKCZpMmNfYWRhcHRlcl9jbGFzcywgZHJpdmVyLCBfX2RldGFjaF9hZGFwdGVyKTsKIAotCS8qIEhhdmUgYSBsb29rIGF0IGVhY2ggYWRhcHRlciwgaWYgY2xpZW50cyBvZiB0aGlzIGRyaXZlciBhcmUgc3RpbGwKLQkgKiBhdHRhY2hlZC4gSWYgc28sIGRldGFjaCB0aGVtIHRvIGJlIGFibGUgdG8ga2lsbCB0aGUgZHJpdmVyCi0JICogYWZ0ZXJ3YXJkcy4KLQkgKi8KLQlkb3duKCZpMmNfYWRhcHRlcl9jbGFzcy5zZW0pOwotCWxpc3RfZm9yX2VhY2hfZW50cnkoYWRhcCwgJmkyY19hZGFwdGVyX2NsYXNzLmRldmljZXMsIGRldi5ub2RlKSB7Ci0JCWlmIChkcml2ZXItPmRldGFjaF9hZGFwdGVyKSB7Ci0JCQlpZiAoZHJpdmVyLT5kZXRhY2hfYWRhcHRlcihhZGFwKSkgewotCQkJCWRldl9lcnIoJmFkYXAtPmRldiwgImRldGFjaF9hZGFwdGVyIGZhaWxlZCAiCi0JCQkJCSJmb3IgZHJpdmVyIFslc11cbiIsCi0JCQkJCWRyaXZlci0+ZHJpdmVyLm5hbWUpOwotCQkJfQotCQl9IGVsc2UgewotCQkJbGlzdF9mb3JfZWFjaF9zYWZlKGl0ZW0yLCBfbiwgJmFkYXAtPmNsaWVudHMpIHsKLQkJCQljbGllbnQgPSBsaXN0X2VudHJ5KGl0ZW0yLCBzdHJ1Y3QgaTJjX2NsaWVudCwgbGlzdCk7Ci0JCQkJaWYgKGNsaWVudC0+ZHJpdmVyICE9IGRyaXZlcikKLQkJCQkJY29udGludWU7Ci0JCQkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiZGV0YWNoaW5nIGNsaWVudCBbJXNdICIKLQkJCQkJImF0IDB4JTAyeFxuIiwgY2xpZW50LT5uYW1lLAotCQkJCQljbGllbnQtPmFkZHIpOwotCQkJCWlmIChkcml2ZXItPmRldGFjaF9jbGllbnQoY2xpZW50KSkgewotCQkJCQlkZXZfZXJyKCZhZGFwLT5kZXYsICJkZXRhY2hfY2xpZW50ICIKLQkJCQkJCSJmYWlsZWQgZm9yIGNsaWVudCBbJXNdIGF0ICIKLQkJCQkJCSIweCUwMnhcbiIsIGNsaWVudC0+bmFtZSwKLQkJCQkJCWNsaWVudC0+YWRkcik7Ci0JCQkJfQotCQkJfQotCQl9Ci0JfQotCXVwKCZpMmNfYWRhcHRlcl9jbGFzcy5zZW0pOwotCi0gdW5yZWdpc3RlcjoKIAlkcml2ZXJfdW5yZWdpc3RlcigmZHJpdmVyLT5kcml2ZXIpOwogCXByX2RlYnVnKCJpMmMtY29yZTogZHJpdmVyIFslc10gdW5yZWdpc3RlcmVkXG4iLCBkcml2ZXItPmRyaXZlci5uYW1lKTsKIApAQCAtODYzLDggKzg5Miw5IEBACiAgKi8KIHN0cnVjdCBpMmNfY2xpZW50ICppMmNfdXNlX2NsaWVudChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQogewotCWdldF9kZXZpY2UoJmNsaWVudC0+ZGV2KTsKLQlyZXR1cm4gY2xpZW50OworCWlmIChjbGllbnQgJiYgZ2V0X2RldmljZSgmY2xpZW50LT5kZXYpKQorCQlyZXR1cm4gY2xpZW50OworCXJldHVybiBOVUxMOwogfQogRVhQT1JUX1NZTUJPTChpMmNfdXNlX2NsaWVudCk7CiAKQEAgLTg3Niw3ICs5MDYsOCBAQAogICovCiB2b2lkIGkyY19yZWxlYXNlX2NsaWVudChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQogewotCXB1dF9kZXZpY2UoJmNsaWVudC0+ZGV2KTsKKwlpZiAoY2xpZW50KQorCQlwdXRfZGV2aWNlKCZjbGllbnQtPmRldik7CiB9CiBFWFBPUlRfU1lNQk9MKGkyY19yZWxlYXNlX2NsaWVudCk7CiAKQEAgLTk0MiwxMCArOTczLDM5IEBACiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAorLyoqCisgKiBpMmNfdHJhbnNmZXIgLSBleGVjdXRlIGEgc2luZ2xlIG9yIGNvbWJpbmVkIEkyQyBtZXNzYWdlCisgKiBAYWRhcDogSGFuZGxlIHRvIEkyQyBidXMKKyAqIEBtc2dzOiBPbmUgb3IgbW9yZSBtZXNzYWdlcyB0byBleGVjdXRlIGJlZm9yZSBTVE9QIGlzIGlzc3VlZCB0bworICoJdGVybWluYXRlIHRoZSBvcGVyYXRpb247IGVhY2ggbWVzc2FnZSBiZWdpbnMgd2l0aCBhIFNUQVJULgorICogQG51bTogTnVtYmVyIG9mIG1lc3NhZ2VzIHRvIGJlIGV4ZWN1dGVkLgorICoKKyAqIFJldHVybnMgbmVnYXRpdmUgZXJybm8sIGVsc2UgdGhlIG51bWJlciBvZiBtZXNzYWdlcyBleGVjdXRlZC4KKyAqCisgKiBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgdGhhdCBlYWNoIG1lc3NhZ2UgYmUgc2VudCB0bworICogdGhlIHNhbWUgc2xhdmUgYWRkcmVzcywgYWx0aG91Z2ggdGhhdCBpcyB0aGUgbW9zdCBjb21tb24gbW9kZWwuCisgKi8KIGludCBpMmNfdHJhbnNmZXIoc3RydWN0IGkyY19hZGFwdGVyICogYWRhcCwgc3RydWN0IGkyY19tc2cgKm1zZ3MsIGludCBudW0pCiB7CiAJaW50IHJldDsKIAorCS8qIFJFVklTSVQgdGhlIGZhdWx0IHJlcG9ydGluZyBtb2RlbCBoZXJlIGlzIHdlYWs6CisJICoKKwkgKiAgLSBXaGVuIHdlIGdldCBhbiBlcnJvciBhZnRlciByZWNlaXZpbmcgTiBieXRlcyBmcm9tIGEgc2xhdmUsCisJICogICAgdGhlcmUgaXMgbm8gd2F5IHRvIHJlcG9ydCAiTiIuCisJICoKKwkgKiAgLSBXaGVuIHdlIGdldCBhIE5BSyBhZnRlciB0cmFuc21pdHRpbmcgTiBieXRlcyB0byBhIHNsYXZlLAorCSAqICAgIHRoZXJlIGlzIG5vIHdheSB0byByZXBvcnQgIk4iIC4uLiBvciB0byBsZXQgdGhlIG1hc3RlcgorCSAqICAgIGNvbnRpbnVlIGV4ZWN1dGluZyB0aGUgcmVzdCBvZiB0aGlzIGNvbWJpbmVkIG1lc3NhZ2UsIGlmCisJICogICAgdGhhdCdzIHRoZSBhcHByb3ByaWF0ZSByZXNwb25zZS4KKwkgKgorCSAqICAtIFdoZW4gZm9yIGV4YW1wbGUgIm51bSIgaXMgdHdvIGFuZCB3ZSBzdWNjZXNzZnVsbHkgY29tcGxldGUKKwkgKiAgICB0aGUgZmlyc3QgbWVzc2FnZSBidXQgZ2V0IGFuIGVycm9yIHBhcnQgd2F5IHRocm91Z2ggdGhlCisJICogICAgc2Vjb25kLCBpdCdzIHVuY2xlYXIgd2hldGhlciB0aGF0IHNob3VsZCBiZSByZXBvcnRlZCBhcworCSAqICAgIG9uZSAoZGlzY2FyZGluZyBzdGF0dXMgb24gdGhlIHNlY29uZCBtZXNzYWdlKSBvciBlcnJubworCSAqICAgIChkaXNjYXJkaW5nIHN0YXR1cyBvbiB0aGUgZmlyc3Qgb25lKS4KKwkgKi8KKwogCWlmIChhZGFwLT5hbGdvLT5tYXN0ZXJfeGZlcikgewogI2lmZGVmIERFQlVHCiAJCWZvciAocmV0ID0gMDsgcmV0IDwgbnVtOyByZXQrKykgewpAQCAtOTcxLDExICsxMDMxLDE5IEBACiAJCXJldHVybiByZXQ7CiAJfSBlbHNlIHsKIAkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiSTJDIGxldmVsIHRyYW5zZmVycyBub3Qgc3VwcG9ydGVkXG4iKTsKLQkJcmV0dXJuIC1FTk9TWVM7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiB9CiBFWFBPUlRfU1lNQk9MKGkyY190cmFuc2Zlcik7CiAKKy8qKgorICogaTJjX21hc3Rlcl9zZW5kIC0gaXNzdWUgYSBzaW5nbGUgSTJDIG1lc3NhZ2UgaW4gbWFzdGVyIHRyYW5zbWl0IG1vZGUKKyAqIEBjbGllbnQ6IEhhbmRsZSB0byBzbGF2ZSBkZXZpY2UKKyAqIEBidWY6IERhdGEgdGhhdCB3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIHNsYXZlCisgKiBAY291bnQ6IEhvdyBtYW55IGJ5dGVzIHRvIHdyaXRlCisgKgorICogUmV0dXJucyBuZWdhdGl2ZSBlcnJubywgb3IgZWxzZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCisgKi8KIGludCBpMmNfbWFzdGVyX3NlbmQoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCxjb25zdCBjaGFyICpidWYgLGludCBjb3VudCkKIHsKIAlpbnQgcmV0OwpAQCAtOTk1LDYgKzEwNjMsMTQgQEAKIH0KIEVYUE9SVF9TWU1CT0woaTJjX21hc3Rlcl9zZW5kKTsKIAorLyoqCisgKiBpMmNfbWFzdGVyX3JlY3YgLSBpc3N1ZSBhIHNpbmdsZSBJMkMgbWVzc2FnZSBpbiBtYXN0ZXIgcmVjZWl2ZSBtb2RlCisgKiBAY2xpZW50OiBIYW5kbGUgdG8gc2xhdmUgZGV2aWNlCisgKiBAYnVmOiBXaGVyZSB0byBzdG9yZSBkYXRhIHJlYWQgZnJvbSBzbGF2ZQorICogQGNvdW50OiBIb3cgbWFueSBieXRlcyB0byByZWFkCisgKgorICogUmV0dXJucyBuZWdhdGl2ZSBlcnJubywgb3IgZWxzZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQuCisgKi8KIGludCBpMmNfbWFzdGVyX3JlY3Yoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgY2hhciAqYnVmICxpbnQgY291bnQpCiB7CiAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwPWNsaWVudC0+YWRhcHRlcjsKQEAgLTExMDMsNyArMTE3OSw3IEBACiAKIAkJZGV2X3dhcm4oJmFkYXB0ZXItPmRldiwgIlNNQnVzIFF1aWNrIGNvbW1hbmQgbm90IHN1cHBvcnRlZCwgIgogCQkJICJjYW4ndCBwcm9iZSBmb3IgY2hpcHNcbiIpOwotCQlyZXR1cm4gLTE7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKIAkvKiBQcm9iZSBlbnRyaWVzIGFyZSBkb25lIHNlY29uZCwgYW5kIGFyZSBub3QgYWZmZWN0ZWQgYnkgaWdub3JlCkBAIC0xMTU3LDYgKzEyMzMsMTc5IEBACiB9CiBFWFBPUlRfU1lNQk9MKGkyY19wcm9iZSk7CiAKKy8qIFNlcGFyYXRlIGRldGVjdGlvbiBmdW5jdGlvbiBmb3IgbmV3LXN0eWxlIGRyaXZlcnMgKi8KK3N0YXRpYyBpbnQgaTJjX2RldGVjdF9hZGRyZXNzKHN0cnVjdCBpMmNfY2xpZW50ICp0ZW1wX2NsaWVudCwgaW50IGtpbmQsCisJCQkgICAgICBzdHJ1Y3QgaTJjX2RyaXZlciAqZHJpdmVyKQoreworCXN0cnVjdCBpMmNfYm9hcmRfaW5mbyBpbmZvOworCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9IHRlbXBfY2xpZW50LT5hZGFwdGVyOworCWludCBhZGRyID0gdGVtcF9jbGllbnQtPmFkZHI7CisJaW50IGVycjsKKworCS8qIE1ha2Ugc3VyZSB0aGUgYWRkcmVzcyBpcyB2YWxpZCAqLworCWlmIChhZGRyIDwgMHgwMyB8fCBhZGRyID4gMHg3NykgeworCQlkZXZfd2FybigmYWRhcHRlci0+ZGV2LCAiSW52YWxpZCBwcm9iZSBhZGRyZXNzIDB4JTAyeFxuIiwKKwkJCSBhZGRyKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogU2tpcCBpZiBhbHJlYWR5IGluIHVzZSAqLworCWlmIChpMmNfY2hlY2tfYWRkcihhZGFwdGVyLCBhZGRyKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBNYWtlIHN1cmUgdGhlcmUgaXMgc29tZXRoaW5nIGF0IHRoaXMgYWRkcmVzcywgdW5sZXNzIGZvcmNlZCAqLworCWlmIChraW5kIDwgMCkgeworCQlpZiAoaTJjX3NtYnVzX3hmZXIoYWRhcHRlciwgYWRkciwgMCwgMCwgMCwKKwkJCQkgICBJMkNfU01CVVNfUVVJQ0ssIE5VTEwpIDwgMCkKKwkJCXJldHVybiAwOworCisJCS8qIHByZXZlbnQgMjRSRjA4IGNvcnJ1cHRpb24gKi8KKwkJaWYgKChhZGRyICYgfjB4MGYpID09IDB4NTApCisJCQlpMmNfc21idXNfeGZlcihhZGFwdGVyLCBhZGRyLCAwLCAwLCAwLAorCQkJCSAgICAgICBJMkNfU01CVVNfUVVJQ0ssIE5VTEwpOworCX0KKworCS8qIEZpbmFsbHkgY2FsbCB0aGUgY3VzdG9tIGRldGVjdGlvbiBmdW5jdGlvbiAqLworCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOworCWluZm8uYWRkciA9IGFkZHI7CisJZXJyID0gZHJpdmVyLT5kZXRlY3QodGVtcF9jbGllbnQsIGtpbmQsICZpbmZvKTsKKwlpZiAoZXJyKSB7CisJCS8qIC1FTk9ERVYgaXMgcmV0dXJuZWQgaWYgdGhlIGRldGVjdGlvbiBmYWlscy4gV2UgY2F0Y2ggaXQKKwkJICAgaGVyZSBhcyB0aGlzIGlzbid0IGFuIGVycm9yLiAqLworCQlyZXR1cm4gZXJyID09IC1FTk9ERVYgPyAwIDogZXJyOworCX0KKworCS8qIENvbnNpc3RlbmN5IGNoZWNrICovCisJaWYgKGluZm8udHlwZVswXSA9PSAnXDAnKSB7CisJCWRldl9lcnIoJmFkYXB0ZXItPmRldiwgIiVzIGRldGVjdGlvbiBmdW5jdGlvbiBwcm92aWRlZCAiCisJCQkibm8gbmFtZSBmb3IgMHgleFxuIiwgZHJpdmVyLT5kcml2ZXIubmFtZSwKKwkJCWFkZHIpOworCX0gZWxzZSB7CisJCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQ7CisKKwkJLyogRGV0ZWN0aW9uIHN1Y2NlZWRlZCwgaW5zdGFudGlhdGUgdGhlIGRldmljZSAqLworCQlkZXZfZGJnKCZhZGFwdGVyLT5kZXYsICJDcmVhdGluZyAlcyBhdCAweCUwMnhcbiIsCisJCQlpbmZvLnR5cGUsIGluZm8uYWRkcik7CisJCWNsaWVudCA9IGkyY19uZXdfZGV2aWNlKGFkYXB0ZXIsICZpbmZvKTsKKwkJaWYgKGNsaWVudCkKKwkJCWxpc3RfYWRkX3RhaWwoJmNsaWVudC0+ZGV0ZWN0ZWQsICZkcml2ZXItPmNsaWVudHMpOworCQllbHNlCisJCQlkZXZfZXJyKCZhZGFwdGVyLT5kZXYsICJGYWlsZWQgY3JlYXRpbmcgJXMgYXQgMHglMDJ4XG4iLAorCQkJCWluZm8udHlwZSwgaW5mby5hZGRyKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTJjX2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHN0cnVjdCBpMmNfZHJpdmVyICpkcml2ZXIpCit7CisJY29uc3Qgc3RydWN0IGkyY19jbGllbnRfYWRkcmVzc19kYXRhICphZGRyZXNzX2RhdGE7CisJc3RydWN0IGkyY19jbGllbnQgKnRlbXBfY2xpZW50OworCWludCBpLCBlcnIgPSAwOworCWludCBhZGFwX2lkID0gaTJjX2FkYXB0ZXJfaWQoYWRhcHRlcik7CisKKwlhZGRyZXNzX2RhdGEgPSBkcml2ZXItPmFkZHJlc3NfZGF0YTsKKwlpZiAoIWRyaXZlci0+ZGV0ZWN0IHx8ICFhZGRyZXNzX2RhdGEpCisJCXJldHVybiAwOworCisJLyogU2V0IHVwIGEgdGVtcG9yYXJ5IGNsaWVudCB0byBoZWxwIGRldGVjdCBjYWxsYmFjayAqLworCXRlbXBfY2xpZW50ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGkyY19jbGllbnQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXRlbXBfY2xpZW50KQorCQlyZXR1cm4gLUVOT01FTTsKKwl0ZW1wX2NsaWVudC0+YWRhcHRlciA9IGFkYXB0ZXI7CisKKwkvKiBGb3JjZSBlbnRyaWVzIGFyZSBkb25lIGZpcnN0LCBhbmQgYXJlIG5vdCBhZmZlY3RlZCBieSBpZ25vcmUKKwkgICBlbnRyaWVzICovCisJaWYgKGFkZHJlc3NfZGF0YS0+Zm9yY2VzKSB7CisJCWNvbnN0IHVuc2lnbmVkIHNob3J0ICogY29uc3QgKmZvcmNlcyA9IGFkZHJlc3NfZGF0YS0+Zm9yY2VzOworCQlpbnQga2luZDsKKworCQlmb3IgKGtpbmQgPSAwOyBmb3JjZXNba2luZF07IGtpbmQrKykgeworCQkJZm9yIChpID0gMDsgZm9yY2VzW2tpbmRdW2ldICE9IEkyQ19DTElFTlRfRU5EOworCQkJICAgICBpICs9IDIpIHsKKwkJCQlpZiAoZm9yY2VzW2tpbmRdW2ldID09IGFkYXBfaWQKKwkJCQkgfHwgZm9yY2VzW2tpbmRdW2ldID09IEFOWV9JMkNfQlVTKSB7CisJCQkJCWRldl9kYmcoJmFkYXB0ZXItPmRldiwgImZvdW5kIGZvcmNlICIKKwkJCQkJCSJwYXJhbWV0ZXIgZm9yIGFkYXB0ZXIgJWQsICIKKwkJCQkJCSJhZGRyIDB4JTAyeCwga2luZCAlZFxuIiwKKwkJCQkJCWFkYXBfaWQsIGZvcmNlc1traW5kXVtpICsgMV0sCisJCQkJCQlraW5kKTsKKwkJCQkJdGVtcF9jbGllbnQtPmFkZHIgPSBmb3JjZXNba2luZF1baSArIDFdOworCQkJCQllcnIgPSBpMmNfZGV0ZWN0X2FkZHJlc3ModGVtcF9jbGllbnQsCisJCQkJCQlraW5kLCBkcml2ZXIpOworCQkJCQlpZiAoZXJyKQorCQkJCQkJZ290byBleGl0X2ZyZWU7CisJCQkJfQorCQkJfQorCQl9CisJfQorCisJLyogU3RvcCBoZXJlIGlmIHdlIGNhbid0IHVzZSBTTUJVU19RVUlDSyAqLworCWlmICghaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkoYWRhcHRlciwgSTJDX0ZVTkNfU01CVVNfUVVJQ0spKSB7CisJCWlmIChhZGRyZXNzX2RhdGEtPnByb2JlWzBdID09IEkyQ19DTElFTlRfRU5ECisJCSAmJiBhZGRyZXNzX2RhdGEtPm5vcm1hbF9pMmNbMF0gPT0gSTJDX0NMSUVOVF9FTkQpCisJCQlnb3RvIGV4aXRfZnJlZTsKKworCQlkZXZfd2FybigmYWRhcHRlci0+ZGV2LCAiU01CdXMgUXVpY2sgY29tbWFuZCBub3Qgc3VwcG9ydGVkLCAiCisJCQkgImNhbid0IHByb2JlIGZvciBjaGlwc1xuIik7CisJCWVyciA9IC1FT1BOT1RTVVBQOworCQlnb3RvIGV4aXRfZnJlZTsKKwl9CisKKwkvKiBTdG9wIGhlcmUgaWYgdGhlIGNsYXNzZXMgZG8gbm90IG1hdGNoICovCisJaWYgKCEoYWRhcHRlci0+Y2xhc3MgJiBkcml2ZXItPmNsYXNzKSkKKwkJZ290byBleGl0X2ZyZWU7CisKKwkvKiBQcm9iZSBlbnRyaWVzIGFyZSBkb25lIHNlY29uZCwgYW5kIGFyZSBub3QgYWZmZWN0ZWQgYnkgaWdub3JlCisJICAgZW50cmllcyBlaXRoZXIgKi8KKwlmb3IgKGkgPSAwOyBhZGRyZXNzX2RhdGEtPnByb2JlW2ldICE9IEkyQ19DTElFTlRfRU5EOyBpICs9IDIpIHsKKwkJaWYgKGFkZHJlc3NfZGF0YS0+cHJvYmVbaV0gPT0gYWRhcF9pZAorCQkgfHwgYWRkcmVzc19kYXRhLT5wcm9iZVtpXSA9PSBBTllfSTJDX0JVUykgeworCQkJZGV2X2RiZygmYWRhcHRlci0+ZGV2LCAiZm91bmQgcHJvYmUgcGFyYW1ldGVyIGZvciAiCisJCQkJImFkYXB0ZXIgJWQsIGFkZHIgMHglMDJ4XG4iLCBhZGFwX2lkLAorCQkJCWFkZHJlc3NfZGF0YS0+cHJvYmVbaSArIDFdKTsKKwkJCXRlbXBfY2xpZW50LT5hZGRyID0gYWRkcmVzc19kYXRhLT5wcm9iZVtpICsgMV07CisJCQllcnIgPSBpMmNfZGV0ZWN0X2FkZHJlc3ModGVtcF9jbGllbnQsIC0xLCBkcml2ZXIpOworCQkJaWYgKGVycikKKwkJCQlnb3RvIGV4aXRfZnJlZTsKKwkJfQorCX0KKworCS8qIE5vcm1hbCBlbnRyaWVzIGFyZSBkb25lIGxhc3QsIHVubGVzcyBzaGFkb3dlZCBieSBhbiBpZ25vcmUgZW50cnkgKi8KKwlmb3IgKGkgPSAwOyBhZGRyZXNzX2RhdGEtPm5vcm1hbF9pMmNbaV0gIT0gSTJDX0NMSUVOVF9FTkQ7IGkgKz0gMSkgeworCQlpbnQgaiwgaWdub3JlOworCisJCWlnbm9yZSA9IDA7CisJCWZvciAoaiA9IDA7IGFkZHJlc3NfZGF0YS0+aWdub3JlW2pdICE9IEkyQ19DTElFTlRfRU5EOworCQkgICAgIGogKz0gMikgeworCQkJaWYgKChhZGRyZXNzX2RhdGEtPmlnbm9yZVtqXSA9PSBhZGFwX2lkIHx8CisJCQkgICAgIGFkZHJlc3NfZGF0YS0+aWdub3JlW2pdID09IEFOWV9JMkNfQlVTKQorCQkJICYmIGFkZHJlc3NfZGF0YS0+aWdub3JlW2ogKyAxXQorCQkJICAgID09IGFkZHJlc3NfZGF0YS0+bm9ybWFsX2kyY1tpXSkgeworCQkJCWRldl9kYmcoJmFkYXB0ZXItPmRldiwgImZvdW5kIGlnbm9yZSAiCisJCQkJCSJwYXJhbWV0ZXIgZm9yIGFkYXB0ZXIgJWQsICIKKwkJCQkJImFkZHIgMHglMDJ4XG4iLCBhZGFwX2lkLAorCQkJCQlhZGRyZXNzX2RhdGEtPmlnbm9yZVtqICsgMV0pOworCQkJCWlnbm9yZSA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKGlnbm9yZSkKKwkJCWNvbnRpbnVlOworCisJCWRldl9kYmcoJmFkYXB0ZXItPmRldiwgImZvdW5kIG5vcm1hbCBlbnRyeSBmb3IgYWRhcHRlciAlZCwgIgorCQkJImFkZHIgMHglMDJ4XG4iLCBhZGFwX2lkLAorCQkJYWRkcmVzc19kYXRhLT5ub3JtYWxfaTJjW2ldKTsKKwkJdGVtcF9jbGllbnQtPmFkZHIgPSBhZGRyZXNzX2RhdGEtPm5vcm1hbF9pMmNbaV07CisJCWVyciA9IGkyY19kZXRlY3RfYWRkcmVzcyh0ZW1wX2NsaWVudCwgLTEsIGRyaXZlcik7CisJCWlmIChlcnIpCisJCQlnb3RvIGV4aXRfZnJlZTsKKwl9CisKKyBleGl0X2ZyZWU6CisJa2ZyZWUodGVtcF9jbGllbnQpOworCXJldHVybiBlcnI7Cit9CisKIHN0cnVjdCBpMmNfY2xpZW50ICoKIGkyY19uZXdfcHJvYmVkX2RldmljZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsCiAJCSAgICAgIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyAqaW5mbywKQEAgLTEyOTUsMjkgKzE1NDQsMzggQEAKIAlpZiAocnBlYyAhPSBjcGVjKSB7CiAJCXByX2RlYnVnKCJpMmMtY29yZTogQmFkIFBFQyAweCUwMnggdnMuIDB4JTAyeFxuIiwKIAkJCXJwZWMsIGNwZWMpOwotCQlyZXR1cm4gLTE7CisJCXJldHVybiAtRUJBRE1TRzsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLXMzMiBpMmNfc21idXNfd3JpdGVfcXVpY2soc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggdmFsdWUpCi17Ci0JcmV0dXJuIGkyY19zbWJ1c194ZmVyKGNsaWVudC0+YWRhcHRlcixjbGllbnQtPmFkZHIsY2xpZW50LT5mbGFncywKLQkgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsMCxJMkNfU01CVVNfUVVJQ0ssTlVMTCk7Ci19Ci1FWFBPUlRfU1lNQk9MKGkyY19zbWJ1c193cml0ZV9xdWljayk7Ci0KKy8qKgorICogaTJjX3NtYnVzX3JlYWRfYnl0ZSAtIFNNQnVzICJyZWNlaXZlIGJ5dGUiIHByb3RvY29sCisgKiBAY2xpZW50OiBIYW5kbGUgdG8gc2xhdmUgZGV2aWNlCisgKgorICogVGhpcyBleGVjdXRlcyB0aGUgU01CdXMgInJlY2VpdmUgYnl0ZSIgcHJvdG9jb2wsIHJldHVybmluZyBuZWdhdGl2ZSBlcnJubworICogZWxzZSB0aGUgYnl0ZSByZWNlaXZlZCBmcm9tIHRoZSBkZXZpY2UuCisgKi8KIHMzMiBpMmNfc21idXNfcmVhZF9ieXRlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiB7CiAJdW5pb24gaTJjX3NtYnVzX2RhdGEgZGF0YTsKLQlpZiAoaTJjX3NtYnVzX3hmZXIoY2xpZW50LT5hZGFwdGVyLGNsaWVudC0+YWRkcixjbGllbnQtPmZsYWdzLAotCSAgICAgICAgICAgICAgICAgICBJMkNfU01CVVNfUkVBRCwwLEkyQ19TTUJVU19CWVRFLCAmZGF0YSkpCi0JCXJldHVybiAtMTsKLQllbHNlCi0JCXJldHVybiBkYXRhLmJ5dGU7CisJaW50IHN0YXR1czsKKworCXN0YXR1cyA9IGkyY19zbWJ1c194ZmVyKGNsaWVudC0+YWRhcHRlciwgY2xpZW50LT5hZGRyLCBjbGllbnQtPmZsYWdzLAorCQkJCUkyQ19TTUJVU19SRUFELCAwLAorCQkJCUkyQ19TTUJVU19CWVRFLCAmZGF0YSk7CisJcmV0dXJuIChzdGF0dXMgPCAwKSA/IHN0YXR1cyA6IGRhdGEuYnl0ZTsKIH0KIEVYUE9SVF9TWU1CT0woaTJjX3NtYnVzX3JlYWRfYnl0ZSk7CiAKKy8qKgorICogaTJjX3NtYnVzX3dyaXRlX2J5dGUgLSBTTUJ1cyAic2VuZCBieXRlIiBwcm90b2NvbAorICogQGNsaWVudDogSGFuZGxlIHRvIHNsYXZlIGRldmljZQorICogQHZhbHVlOiBCeXRlIHRvIGJlIHNlbnQKKyAqCisgKiBUaGlzIGV4ZWN1dGVzIHRoZSBTTUJ1cyAic2VuZCBieXRlIiBwcm90b2NvbCwgcmV0dXJuaW5nIG5lZ2F0aXZlIGVycm5vCisgKiBlbHNlIHplcm8gb24gc3VjY2Vzcy4KKyAqLwogczMyIGkyY19zbWJ1c193cml0ZV9ieXRlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHU4IHZhbHVlKQogewogCXJldHVybiBpMmNfc21idXNfeGZlcihjbGllbnQtPmFkYXB0ZXIsY2xpZW50LT5hZGRyLGNsaWVudC0+ZmxhZ3MsCkBAIC0xMzI1LDE3ICsxNTgzLDM1IEBACiB9CiBFWFBPUlRfU1lNQk9MKGkyY19zbWJ1c193cml0ZV9ieXRlKTsKIAorLyoqCisgKiBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEgLSBTTUJ1cyAicmVhZCBieXRlIiBwcm90b2NvbAorICogQGNsaWVudDogSGFuZGxlIHRvIHNsYXZlIGRldmljZQorICogQGNvbW1hbmQ6IEJ5dGUgaW50ZXJwcmV0ZWQgYnkgc2xhdmUKKyAqCisgKiBUaGlzIGV4ZWN1dGVzIHRoZSBTTUJ1cyAicmVhZCBieXRlIiBwcm90b2NvbCwgcmV0dXJuaW5nIG5lZ2F0aXZlIGVycm5vCisgKiBlbHNlIGEgZGF0YSBieXRlIHJlY2VpdmVkIGZyb20gdGhlIGRldmljZS4KKyAqLwogczMyIGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCB1OCBjb21tYW5kKQogewogCXVuaW9uIGkyY19zbWJ1c19kYXRhIGRhdGE7Ci0JaWYgKGkyY19zbWJ1c194ZmVyKGNsaWVudC0+YWRhcHRlcixjbGllbnQtPmFkZHIsY2xpZW50LT5mbGFncywKLQkgICAgICAgICAgICAgICAgICAgSTJDX1NNQlVTX1JFQUQsY29tbWFuZCwgSTJDX1NNQlVTX0JZVEVfREFUQSwmZGF0YSkpCi0JCXJldHVybiAtMTsKLQllbHNlCi0JCXJldHVybiBkYXRhLmJ5dGU7CisJaW50IHN0YXR1czsKKworCXN0YXR1cyA9IGkyY19zbWJ1c194ZmVyKGNsaWVudC0+YWRhcHRlciwgY2xpZW50LT5hZGRyLCBjbGllbnQtPmZsYWdzLAorCQkJCUkyQ19TTUJVU19SRUFELCBjb21tYW5kLAorCQkJCUkyQ19TTUJVU19CWVRFX0RBVEEsICZkYXRhKTsKKwlyZXR1cm4gKHN0YXR1cyA8IDApID8gc3RhdHVzIDogZGF0YS5ieXRlOwogfQogRVhQT1JUX1NZTUJPTChpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEpOwogCisvKioKKyAqIGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEgLSBTTUJ1cyAid3JpdGUgYnl0ZSIgcHJvdG9jb2wKKyAqIEBjbGllbnQ6IEhhbmRsZSB0byBzbGF2ZSBkZXZpY2UKKyAqIEBjb21tYW5kOiBCeXRlIGludGVycHJldGVkIGJ5IHNsYXZlCisgKiBAdmFsdWU6IEJ5dGUgYmVpbmcgd3JpdHRlbgorICoKKyAqIFRoaXMgZXhlY3V0ZXMgdGhlIFNNQnVzICJ3cml0ZSBieXRlIiBwcm90b2NvbCwgcmV0dXJuaW5nIG5lZ2F0aXZlIGVycm5vCisgKiBlbHNlIHplcm8gb24gc3VjY2Vzcy4KKyAqLwogczMyIGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggY29tbWFuZCwgdTggdmFsdWUpCiB7CiAJdW5pb24gaTJjX3NtYnVzX2RhdGEgZGF0YTsKQEAgLTEzNDYsMTcgKzE2MjIsMzUgQEAKIH0KIEVYUE9SVF9TWU1CT0woaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YSk7CiAKKy8qKgorICogaTJjX3NtYnVzX3JlYWRfd29yZF9kYXRhIC0gU01CdXMgInJlYWQgd29yZCIgcHJvdG9jb2wKKyAqIEBjbGllbnQ6IEhhbmRsZSB0byBzbGF2ZSBkZXZpY2UKKyAqIEBjb21tYW5kOiBCeXRlIGludGVycHJldGVkIGJ5IHNsYXZlCisgKgorICogVGhpcyBleGVjdXRlcyB0aGUgU01CdXMgInJlYWQgd29yZCIgcHJvdG9jb2wsIHJldHVybmluZyBuZWdhdGl2ZSBlcnJubworICogZWxzZSBhIDE2LWJpdCB1bnNpZ25lZCAid29yZCIgcmVjZWl2ZWQgZnJvbSB0aGUgZGV2aWNlLgorICovCiBzMzIgaTJjX3NtYnVzX3JlYWRfd29yZF9kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHU4IGNvbW1hbmQpCiB7CiAJdW5pb24gaTJjX3NtYnVzX2RhdGEgZGF0YTsKLQlpZiAoaTJjX3NtYnVzX3hmZXIoY2xpZW50LT5hZGFwdGVyLGNsaWVudC0+YWRkcixjbGllbnQtPmZsYWdzLAotCSAgICAgICAgICAgICAgICAgICBJMkNfU01CVVNfUkVBRCxjb21tYW5kLCBJMkNfU01CVVNfV09SRF9EQVRBLCAmZGF0YSkpCi0JCXJldHVybiAtMTsKLQllbHNlCi0JCXJldHVybiBkYXRhLndvcmQ7CisJaW50IHN0YXR1czsKKworCXN0YXR1cyA9IGkyY19zbWJ1c194ZmVyKGNsaWVudC0+YWRhcHRlciwgY2xpZW50LT5hZGRyLCBjbGllbnQtPmZsYWdzLAorCQkJCUkyQ19TTUJVU19SRUFELCBjb21tYW5kLAorCQkJCUkyQ19TTUJVU19XT1JEX0RBVEEsICZkYXRhKTsKKwlyZXR1cm4gKHN0YXR1cyA8IDApID8gc3RhdHVzIDogZGF0YS53b3JkOwogfQogRVhQT1JUX1NZTUJPTChpMmNfc21idXNfcmVhZF93b3JkX2RhdGEpOwogCisvKioKKyAqIGkyY19zbWJ1c193cml0ZV93b3JkX2RhdGEgLSBTTUJ1cyAid3JpdGUgd29yZCIgcHJvdG9jb2wKKyAqIEBjbGllbnQ6IEhhbmRsZSB0byBzbGF2ZSBkZXZpY2UKKyAqIEBjb21tYW5kOiBCeXRlIGludGVycHJldGVkIGJ5IHNsYXZlCisgKiBAdmFsdWU6IDE2LWJpdCAid29yZCIgYmVpbmcgd3JpdHRlbgorICoKKyAqIFRoaXMgZXhlY3V0ZXMgdGhlIFNNQnVzICJ3cml0ZSB3b3JkIiBwcm90b2NvbCwgcmV0dXJuaW5nIG5lZ2F0aXZlIGVycm5vCisgKiBlbHNlIHplcm8gb24gc3VjY2Vzcy4KKyAqLwogczMyIGkyY19zbWJ1c193cml0ZV93b3JkX2RhdGEoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggY29tbWFuZCwgdTE2IHZhbHVlKQogewogCXVuaW9uIGkyY19zbWJ1c19kYXRhIGRhdGE7CkBAIC0xMzY4LDE1ICsxNjYyLDE0IEBACiBFWFBPUlRfU1lNQk9MKGkyY19zbWJ1c193cml0ZV93b3JkX2RhdGEpOwogCiAvKioKLSAqIGkyY19zbWJ1c19yZWFkX2Jsb2NrX2RhdGEgLSBTTUJ1cyBibG9jayByZWFkIHJlcXVlc3QKKyAqIGkyY19zbWJ1c19yZWFkX2Jsb2NrX2RhdGEgLSBTTUJ1cyAiYmxvY2sgcmVhZCIgcHJvdG9jb2wKICAqIEBjbGllbnQ6IEhhbmRsZSB0byBzbGF2ZSBkZXZpY2UKLSAqIEBjb21tYW5kOiBDb21tYW5kIGJ5dGUgaXNzdWVkIHRvIGxldCB0aGUgc2xhdmUga25vdyB3aGF0IGRhdGEgc2hvdWxkCi0gKgliZSByZXR1cm5lZAorICogQGNvbW1hbmQ6IEJ5dGUgaW50ZXJwcmV0ZWQgYnkgc2xhdmUKICAqIEB2YWx1ZXM6IEJ5dGUgYXJyYXkgaW50byB3aGljaCBkYXRhIHdpbGwgYmUgcmVhZDsgYmlnIGVub3VnaCB0byBob2xkCiAgKgl0aGUgZGF0YSByZXR1cm5lZCBieSB0aGUgc2xhdmUuICBTTUJ1cyBhbGxvd3MgYXQgbW9zdCAzMiBieXRlcy4KICAqCi0gKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBpbiB0aGUgc2xhdmUncyByZXNwb25zZSwgZWxzZSBhCi0gKiBuZWdhdGl2ZSBudW1iZXIgdG8gaW5kaWNhdGUgc29tZSBraW5kIG9mIGVycm9yLgorICogVGhpcyBleGVjdXRlcyB0aGUgU01CdXMgImJsb2NrIHJlYWQiIHByb3RvY29sLCByZXR1cm5pbmcgbmVnYXRpdmUgZXJybm8KKyAqIGVsc2UgdGhlIG51bWJlciBvZiBkYXRhIGJ5dGVzIGluIHRoZSBzbGF2ZSdzIHJlc3BvbnNlLgogICoKICAqIE5vdGUgdGhhdCB1c2luZyB0aGlzIGZ1bmN0aW9uIHJlcXVpcmVzIHRoYXQgdGhlIGNsaWVudCdzIGFkYXB0ZXIgc3VwcG9ydAogICogdGhlIEkyQ19GVU5DX1NNQlVTX1JFQURfQkxPQ0tfREFUQSBmdW5jdGlvbmFsaXR5LiAgTm90IGFsbCBhZGFwdGVyIGRyaXZlcnMKQEAgLTEzODcsMTcgKzE2ODAsMjkgQEAKIAkJCSAgICAgIHU4ICp2YWx1ZXMpCiB7CiAJdW5pb24gaTJjX3NtYnVzX2RhdGEgZGF0YTsKKwlpbnQgc3RhdHVzOwogCi0JaWYgKGkyY19zbWJ1c194ZmVyKGNsaWVudC0+YWRhcHRlciwgY2xpZW50LT5hZGRyLCBjbGllbnQtPmZsYWdzLAotCSAgICAgICAgICAgICAgICAgICBJMkNfU01CVVNfUkVBRCwgY29tbWFuZCwKLQkgICAgICAgICAgICAgICAgICAgSTJDX1NNQlVTX0JMT0NLX0RBVEEsICZkYXRhKSkKLQkJcmV0dXJuIC0xOworCXN0YXR1cyA9IGkyY19zbWJ1c194ZmVyKGNsaWVudC0+YWRhcHRlciwgY2xpZW50LT5hZGRyLCBjbGllbnQtPmZsYWdzLAorCQkJCUkyQ19TTUJVU19SRUFELCBjb21tYW5kLAorCQkJCUkyQ19TTUJVU19CTE9DS19EQVRBLCAmZGF0YSk7CisJaWYgKHN0YXR1cykKKwkJcmV0dXJuIHN0YXR1czsKIAogCW1lbWNweSh2YWx1ZXMsICZkYXRhLmJsb2NrWzFdLCBkYXRhLmJsb2NrWzBdKTsKIAlyZXR1cm4gZGF0YS5ibG9ja1swXTsKIH0KIEVYUE9SVF9TWU1CT0woaTJjX3NtYnVzX3JlYWRfYmxvY2tfZGF0YSk7CiAKKy8qKgorICogaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEgLSBTTUJ1cyAiYmxvY2sgd3JpdGUiIHByb3RvY29sCisgKiBAY2xpZW50OiBIYW5kbGUgdG8gc2xhdmUgZGV2aWNlCisgKiBAY29tbWFuZDogQnl0ZSBpbnRlcnByZXRlZCBieSBzbGF2ZQorICogQGxlbmd0aDogU2l6ZSBvZiBkYXRhIGJsb2NrOyBTTUJ1cyBhbGxvd3MgYXQgbW9zdCAzMiBieXRlcworICogQHZhbHVlczogQnl0ZSBhcnJheSB3aGljaCB3aWxsIGJlIHdyaXR0ZW4uCisgKgorICogVGhpcyBleGVjdXRlcyB0aGUgU01CdXMgImJsb2NrIHdyaXRlIiBwcm90b2NvbCwgcmV0dXJuaW5nIG5lZ2F0aXZlIGVycm5vCisgKiBlbHNlIHplcm8gb24gc3VjY2Vzcy4KKyAqLwogczMyIGkyY19zbWJ1c193cml0ZV9ibG9ja19kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHU4IGNvbW1hbmQsCiAJCQkgICAgICAgdTggbGVuZ3RoLCBjb25zdCB1OCAqdmFsdWVzKQogewpAQCAtMTQxOCwxNCArMTcyMywxNiBAQAogCQkJCSAgdTggbGVuZ3RoLCB1OCAqdmFsdWVzKQogewogCXVuaW9uIGkyY19zbWJ1c19kYXRhIGRhdGE7CisJaW50IHN0YXR1czsKIAogCWlmIChsZW5ndGggPiBJMkNfU01CVVNfQkxPQ0tfTUFYKQogCQlsZW5ndGggPSBJMkNfU01CVVNfQkxPQ0tfTUFYOwogCWRhdGEuYmxvY2tbMF0gPSBsZW5ndGg7Ci0JaWYgKGkyY19zbWJ1c194ZmVyKGNsaWVudC0+YWRhcHRlcixjbGllbnQtPmFkZHIsY2xpZW50LT5mbGFncywKLQkgICAgICAgICAgICAgICAgICAgICAgSTJDX1NNQlVTX1JFQUQsY29tbWFuZCwKLQkgICAgICAgICAgICAgICAgICAgICAgSTJDX1NNQlVTX0kyQ19CTE9DS19EQVRBLCZkYXRhKSkKLQkJcmV0dXJuIC0xOworCXN0YXR1cyA9IGkyY19zbWJ1c194ZmVyKGNsaWVudC0+YWRhcHRlciwgY2xpZW50LT5hZGRyLCBjbGllbnQtPmZsYWdzLAorCQkJCUkyQ19TTUJVU19SRUFELCBjb21tYW5kLAorCQkJCUkyQ19TTUJVU19JMkNfQkxPQ0tfREFUQSwgJmRhdGEpOworCWlmIChzdGF0dXMgPCAwKQorCQlyZXR1cm4gc3RhdHVzOwogCiAJbWVtY3B5KHZhbHVlcywgJmRhdGEuYmxvY2tbMV0sIGRhdGEuYmxvY2tbMF0pOwogCXJldHVybiBkYXRhLmJsb2NrWzBdOwpAQCAtMTQ2Niw2ICsxNzczLDcgQEAKIAkgICAgICAgICAgICAgICAgICAgICAgICB9OwogCWludCBpOwogCXU4IHBhcnRpYWxfcGVjID0gMDsKKwlpbnQgc3RhdHVzOwogCiAJbXNnYnVmMFswXSA9IGNvbW1hbmQ7CiAJc3dpdGNoKHNpemUpIHsKQEAgLTE1MTUsMTAgKzE4MjMsMTAgQEAKIAkJfSBlbHNlIHsKIAkJCW1zZ1swXS5sZW4gPSBkYXRhLT5ibG9ja1swXSArIDI7CiAJCQlpZiAobXNnWzBdLmxlbiA+IEkyQ19TTUJVU19CTE9DS19NQVggKyAyKSB7Ci0JCQkJZGV2X2VycigmYWRhcHRlci0+ZGV2LCAic21idXNfYWNjZXNzIGNhbGxlZCB3aXRoICIKLQkJCQkgICAgICAgImludmFsaWQgYmxvY2sgd3JpdGUgc2l6ZSAoJWQpXG4iLAotCQkJCSAgICAgICBkYXRhLT5ibG9ja1swXSk7Ci0JCQkJcmV0dXJuIC0xOworCQkJCWRldl9lcnIoJmFkYXB0ZXItPmRldiwKKwkJCQkJIkludmFsaWQgYmxvY2sgd3JpdGUgc2l6ZSAlZFxuIiwKKwkJCQkJZGF0YS0+YmxvY2tbMF0pOworCQkJCXJldHVybiAtRUlOVkFMOwogCQkJfQogCQkJZm9yIChpID0gMTsgaSA8IG1zZ1swXS5sZW47IGkrKykKIAkJCQltc2didWYwW2ldID0gZGF0YS0+YmxvY2tbaS0xXTsKQEAgLTE1MjgsMTAgKzE4MzYsMTAgQEAKIAkJbnVtID0gMjsgLyogQW5vdGhlciBzcGVjaWFsIGNhc2UgKi8KIAkJcmVhZF93cml0ZSA9IEkyQ19TTUJVU19SRUFEOwogCQlpZiAoZGF0YS0+YmxvY2tbMF0gPiBJMkNfU01CVVNfQkxPQ0tfTUFYKSB7Ci0JCQlkZXZfZXJyKCZhZGFwdGVyLT5kZXYsICIlcyBjYWxsZWQgd2l0aCBpbnZhbGlkICIKLQkJCQkiYmxvY2sgcHJvYyBjYWxsIHNpemUgKCVkKVxuIiwgX19mdW5jX18sCisJCQlkZXZfZXJyKCZhZGFwdGVyLT5kZXYsCisJCQkJIkludmFsaWQgYmxvY2sgd3JpdGUgc2l6ZSAlZFxuIiwKIAkJCQlkYXRhLT5ibG9ja1swXSk7Ci0JCQlyZXR1cm4gLTE7CisJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCQltc2dbMF0ubGVuID0gZGF0YS0+YmxvY2tbMF0gKyAyOwogCQlmb3IgKGkgPSAxOyBpIDwgbXNnWzBdLmxlbjsgaSsrKQpAQCAtMTU0NiwxOSArMTg1NCwxOCBAQAogCQl9IGVsc2UgewogCQkJbXNnWzBdLmxlbiA9IGRhdGEtPmJsb2NrWzBdICsgMTsKIAkJCWlmIChtc2dbMF0ubGVuID4gSTJDX1NNQlVTX0JMT0NLX01BWCArIDEpIHsKLQkJCQlkZXZfZXJyKCZhZGFwdGVyLT5kZXYsICJpMmNfc21idXNfeGZlcl9lbXVsYXRlZCBjYWxsZWQgd2l0aCAiCi0JCQkJICAgICAgICJpbnZhbGlkIGJsb2NrIHdyaXRlIHNpemUgKCVkKVxuIiwKLQkJCQkgICAgICAgZGF0YS0+YmxvY2tbMF0pOwotCQkJCXJldHVybiAtMTsKKwkJCQlkZXZfZXJyKCZhZGFwdGVyLT5kZXYsCisJCQkJCSJJbnZhbGlkIGJsb2NrIHdyaXRlIHNpemUgJWRcbiIsCisJCQkJCWRhdGEtPmJsb2NrWzBdKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0KIAkJCWZvciAoaSA9IDE7IGkgPD0gZGF0YS0+YmxvY2tbMF07IGkrKykKIAkJCQltc2didWYwW2ldID0gZGF0YS0+YmxvY2tbaV07CiAJCX0KIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJZGV2X2VycigmYWRhcHRlci0+ZGV2LCAic21idXNfYWNjZXNzIGNhbGxlZCB3aXRoIGludmFsaWQgc2l6ZSAoJWQpXG4iLAotCQkgICAgICAgc2l6ZSk7Ci0JCXJldHVybiAtMTsKKwkJZGV2X2VycigmYWRhcHRlci0+ZGV2LCAiVW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gJWRcbiIsIHNpemUpOworCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCiAJaSA9ICgoZmxhZ3MgJiBJMkNfQ0xJRU5UX1BFQykgJiYgc2l6ZSAhPSBJMkNfU01CVVNfUVVJQ0sKQEAgLTE1NzYsMTMgKzE4ODMsMTUgQEAKIAkJCW1zZ1tudW0tMV0ubGVuKys7CiAJfQogCi0JaWYgKGkyY190cmFuc2ZlcihhZGFwdGVyLCBtc2csIG51bSkgPCAwKQotCQlyZXR1cm4gLTE7CisJc3RhdHVzID0gaTJjX3RyYW5zZmVyKGFkYXB0ZXIsIG1zZywgbnVtKTsKKwlpZiAoc3RhdHVzIDwgMCkKKwkJcmV0dXJuIHN0YXR1czsKIAogCS8qIENoZWNrIFBFQyBpZiBsYXN0IG1lc3NhZ2UgaXMgYSByZWFkICovCiAJaWYgKGkgJiYgKG1zZ1tudW0tMV0uZmxhZ3MgJiBJMkNfTV9SRCkpIHsKLQkJaWYgKGkyY19zbWJ1c19jaGVja19wZWMocGFydGlhbF9wZWMsICZtc2dbbnVtLTFdKSA8IDApCi0JCQlyZXR1cm4gLTE7CisJCXN0YXR1cyA9IGkyY19zbWJ1c19jaGVja19wZWMocGFydGlhbF9wZWMsICZtc2dbbnVtLTFdKTsKKwkJaWYgKHN0YXR1cyA8IDApCisJCQlyZXR1cm4gc3RhdHVzOwogCX0KIAogCWlmIChyZWFkX3dyaXRlID09IEkyQ19TTUJVU19SRUFEKQpAQCAtMTYxMCw5ICsxOTE5LDIxIEBACiAJcmV0dXJuIDA7CiB9CiAKLQorLyoqCisgKiBpMmNfc21idXNfeGZlciAtIGV4ZWN1dGUgU01CdXMgcHJvdG9jb2wgb3BlcmF0aW9ucworICogQGFkYXB0ZXI6IEhhbmRsZSB0byBJMkMgYnVzCisgKiBAYWRkcjogQWRkcmVzcyBvZiBTTUJ1cyBzbGF2ZSBvbiB0aGF0IGJ1cworICogQGZsYWdzOiBJMkNfQ0xJRU5UXyogZmxhZ3MgKHVzdWFsbHkgemVybyBvciBJMkNfQ0xJRU5UX1BFQykKKyAqIEByZWFkX3dyaXRlOiBJMkNfU01CVVNfUkVBRCBvciBJMkNfU01CVVNfV1JJVEUKKyAqIEBjb21tYW5kOiBCeXRlIGludGVycHJldGVkIGJ5IHNsYXZlLCBmb3IgcHJvdG9jb2xzIHdoaWNoIHVzZSBzdWNoIGJ5dGVzCisgKiBAcHJvdG9jb2w6IFNNQnVzIHByb3RvY29sIG9wZXJhdGlvbiB0byBleGVjdXRlLCBzdWNoIGFzIEkyQ19TTUJVU19QUk9DX0NBTEwKKyAqIEBkYXRhOiBEYXRhIHRvIGJlIHJlYWQgb3Igd3JpdHRlbgorICoKKyAqIFRoaXMgZXhlY3V0ZXMgYW4gU01CdXMgcHJvdG9jb2wgb3BlcmF0aW9uLCBhbmQgcmV0dXJucyBhIG5lZ2F0aXZlCisgKiBlcnJubyBjb2RlIGVsc2UgemVybyBvbiBzdWNjZXNzLgorICovCiBzMzIgaTJjX3NtYnVzX3hmZXIoc3RydWN0IGkyY19hZGFwdGVyICogYWRhcHRlciwgdTE2IGFkZHIsIHVuc2lnbmVkIHNob3J0IGZsYWdzLAotICAgICAgICAgICAgICAgICAgIGNoYXIgcmVhZF93cml0ZSwgdTggY29tbWFuZCwgaW50IHNpemUsCisJCSAgIGNoYXIgcmVhZF93cml0ZSwgdTggY29tbWFuZCwgaW50IHByb3RvY29sLAogICAgICAgICAgICAgICAgICAgIHVuaW9uIGkyY19zbWJ1c19kYXRhICogZGF0YSkKIHsKIAlzMzIgcmVzOwpAQCAtMTYyMiwxMSArMTk0MywxMSBAQAogCWlmIChhZGFwdGVyLT5hbGdvLT5zbWJ1c194ZmVyKSB7CiAJCW11dGV4X2xvY2soJmFkYXB0ZXItPmJ1c19sb2NrKTsKIAkJcmVzID0gYWRhcHRlci0+YWxnby0+c21idXNfeGZlcihhZGFwdGVyLGFkZHIsZmxhZ3MscmVhZF93cml0ZSwKLQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kLHNpemUsZGF0YSk7CisJCQkJCQljb21tYW5kLCBwcm90b2NvbCwgZGF0YSk7CiAJCW11dGV4X3VubG9jaygmYWRhcHRlci0+YnVzX2xvY2spOwogCX0gZWxzZQogCQlyZXMgPSBpMmNfc21idXNfeGZlcl9lbXVsYXRlZChhZGFwdGVyLGFkZHIsZmxhZ3MscmVhZF93cml0ZSwKLQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQsc2l6ZSxkYXRhKTsKKwkJCQkJICAgICAgY29tbWFuZCwgcHJvdG9jb2wsIGRhdGEpOwogCiAJcmV0dXJuIHJlczsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2kyYy1kZXYuYyBiL2RyaXZlcnMvaTJjL2kyYy1kZXYuYwppbmRleCBkMzRjMTRjLi44NjcyN2ZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9pMmMtZGV2LmMKKysrIGIvZHJpdmVycy9pMmMvaTJjLWRldi5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy1kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBpMmNkZXZfZHJpdmVyOwpAQCAtMzY2LDggKzM2Nyw3IEBACiAJcmV0dXJuIHJlczsKIH0KIAotc3RhdGljIGludCBpMmNkZXZfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCi0JCXVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQorc3RhdGljIGxvbmcgaTJjZGV2X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIHsKIAlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gKHN0cnVjdCBpMmNfY2xpZW50ICopZmlsZS0+cHJpdmF0ZV9kYXRhOwogCXVuc2lnbmVkIGxvbmcgZnVuY3M7CkBAIC00NDEsMTQgKzQ0MSwyMCBAQAogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQ7CiAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwOwogCXN0cnVjdCBpMmNfZGV2ICppMmNfZGV2OworCWludCByZXQgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAlpMmNfZGV2ID0gaTJjX2Rldl9nZXRfYnlfbWlub3IobWlub3IpOwotCWlmICghaTJjX2RldikKLQkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKCFpMmNfZGV2KSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAogCWFkYXAgPSBpMmNfZ2V0X2FkYXB0ZXIoaTJjX2Rldi0+YWRhcC0+bnIpOwotCWlmICghYWRhcCkKLQkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKCFhZGFwKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAogCS8qIFRoaXMgY3JlYXRlcyBhbiBhbm9ueW1vdXMgaTJjX2NsaWVudCwgd2hpY2ggbWF5IGxhdGVyIGJlCiAJICogcG9pbnRlZCB0byBzb21lIGFkZHJlc3MgdXNpbmcgSTJDX1NMQVZFIG9yIEkyQ19TTEFWRV9GT1JDRS4KQEAgLTQ2MCw3ICs0NjYsOCBAQAogCWNsaWVudCA9IGt6YWxsb2Moc2l6ZW9mKCpjbGllbnQpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNsaWVudCkgewogCQlpMmNfcHV0X2FkYXB0ZXIoYWRhcCk7Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKIAl9CiAJc25wcmludGYoY2xpZW50LT5uYW1lLCBJMkNfTkFNRV9TSVpFLCAiaTJjLWRldiAlZCIsIGFkYXAtPm5yKTsKIAljbGllbnQtPmRyaXZlciA9ICZpMmNkZXZfZHJpdmVyOwpAQCAtNDY4LDcgKzQ3NSw5IEBACiAJY2xpZW50LT5hZGFwdGVyID0gYWRhcDsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBjbGllbnQ7CiAKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBpMmNkZXZfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKQEAgLTQ4Nyw3ICs0OTYsNyBAQAogCS5sbHNlZWsJCT0gbm9fbGxzZWVrLAogCS5yZWFkCQk9IGkyY2Rldl9yZWFkLAogCS53cml0ZQkJPSBpMmNkZXZfd3JpdGUsCi0JLmlvY3RsCQk9IGkyY2Rldl9pb2N0bCwKKwkudW5sb2NrZWRfaW9jdGwJPSBpMmNkZXZfaW9jdGwsCiAJLm9wZW4JCT0gaTJjZGV2X29wZW4sCiAJLnJlbGVhc2UJPSBpMmNkZXZfcmVsZWFzZSwKIH07CkBAIC01NDksMTkgKzU1OCwxMiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGkyY2Rldl9kZXRhY2hfY2xpZW50KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBpMmNkZXZfZHJpdmVyID0gewogCS5kcml2ZXIgPSB7CiAJCS5uYW1lCT0gImRldl9kcml2ZXIiLAogCX0sCi0JLmlkCQk9IEkyQ19EUklWRVJJRF9JMkNERVYsCiAJLmF0dGFjaF9hZGFwdGVyCT0gaTJjZGV2X2F0dGFjaF9hZGFwdGVyLAogCS5kZXRhY2hfYWRhcHRlcgk9IGkyY2Rldl9kZXRhY2hfYWRhcHRlciwKLQkuZGV0YWNoX2NsaWVudAk9IGkyY2Rldl9kZXRhY2hfY2xpZW50LAogfTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvS2NvbmZpZyBiL2RyaXZlcnMvaWRlL0tjb25maWcKaW5kZXggOGUwN2RlMi4uY2Y3MDdjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvS2NvbmZpZworKysgYi9kcml2ZXJzL2lkZS9LY29uZmlnCkBAIC05OCw2ICs5OCw5IEBACiAKIGNvbW1lbnQgIlBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi9pZGUvaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMiCiAKK2NvbmZpZyBJREVfQVRBUEkKKwlib29sCisKIGNvbmZpZyBCTEtfREVWX0lERV9TQVRBCiAJYm9vbCAiU3VwcG9ydCBmb3IgU0FUQSAoZGVwcmVjYXRlZDsgY29uZmxpY3RzIHdpdGggbGliYXRhIFNBVEEgZHJpdmVyKSIKIAlkZWZhdWx0IG4KQEAgLTIwMSw2ICsyMDQsNyBAQAogCiBjb25maWcgQkxLX0RFVl9JREVUQVBFCiAJdHJpc3RhdGUgIkluY2x1ZGUgSURFL0FUQVBJIFRBUEUgc3VwcG9ydCIKKwlzZWxlY3QgSURFX0FUQVBJCiAJaGVscAogCSAgSWYgeW91IGhhdmUgYW4gSURFIHRhcGUgZHJpdmUgdXNpbmcgdGhlIEFUQVBJIHByb3RvY29sLCBzYXkgWS4KIAkgIEFUQVBJIGlzIGEgbmV3ZXIgcHJvdG9jb2wgdXNlZCBieSBJREUgdGFwZSBhbmQgQ0QtUk9NIGRyaXZlcywKQEAgLTIyMyw2ICsyMjcsNyBAQAogCiBjb25maWcgQkxLX0RFVl9JREVGTE9QUFkKIAl0cmlzdGF0ZSAiSW5jbHVkZSBJREUvQVRBUEkgRkxPUFBZIHN1cHBvcnQiCisJc2VsZWN0IElERV9BVEFQSQogCS0tLWhlbHAtLS0KIAkgIElmIHlvdSBoYXZlIGFuIElERSBmbG9wcHkgZHJpdmUgd2hpY2ggdXNlcyB0aGUgQVRBUEkgcHJvdG9jb2wsCiAJICBhbnN3ZXIgWS4gIEFUQVBJIGlzIGEgbmV3ZXIgcHJvdG9jb2wgdXNlZCBieSBJREUgQ0QtUk9NL3RhcGUvZmxvcHB5CkBAIC0yNDYsNiArMjUxLDcgQEAKIGNvbmZpZyBCTEtfREVWX0lERVNDU0kKIAl0cmlzdGF0ZSAiU0NTSSBlbXVsYXRpb24gc3VwcG9ydCIKIAlkZXBlbmRzIG9uIFNDU0kKKwlzZWxlY3QgSURFX0FUQVBJCiAJLS0taGVscC0tLQogCSAgV0FSTklORzogaWRlLXNjc2kgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgY2Qgd3JpdGluZyBhcHBsaWNhdGlvbnMhCiAJICBUaGUgMi42IGtlcm5lbCBzdXBwb3J0cyBkaXJlY3Qgd3JpdGluZyB0byBpZGUtY2QsIHdoaWNoIGVsaW1pbmF0ZXMKQEAgLTgyMyw2ICs4MjksMTMgQEAKIAkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gc3VwcG9ydCB0aGUgWWVsbG93c3RvbmUgUmFwSURFIGNvbnRyb2xsZXIKIAkgIG1hbnVmYWN0dXJlZCBmb3IgdXNlIHdpdGggQWNvcm4gY29tcHV0ZXJzLgogCitjb25maWcgQkxLX0RFVl9JREVfQkFTVAorCXRyaXN0YXRlICJTaW10ZWMgQkFTVCAvIFRob3Jjb20gVlIxMDAwIElERSBzdXBwb3J0IgorCWRlcGVuZHMgb24gQVJNICYmIChBUkNIX0JBU1QgfHwgTUFDSF9WUjEwMDApCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byBzdXBwb3J0IHRoZSBvbmJvYXJkIElERSBjaGFubmVscyBvbiB0aGUKKwkgIFNpbXRlYyBCQVNUIG9yIHRoZSBUaG9yY29tIFZSMTAwMAorCiBjb25maWcgSURFX0g4MzAwCiAJdHJpc3RhdGUgIkg4MzAwIElERSBzdXBwb3J0IgogCWRlcGVuZHMgb24gSDgzMDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL01ha2VmaWxlIGIvZHJpdmVycy9pZGUvTWFrZWZpbGUKaW5kZXggZjk0YjY3OS4uYTJiM2Y4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9pZGUvTWFrZWZpbGUKQEAgLTE0LDYgKzE0LDcgQEAKIGlkZS1jb3JlLXkgKz0gaWRlLm8gaWRlLWlvLm8gaWRlLWlvcHMubyBpZGUtbGliLm8gaWRlLXByb2JlLm8gaWRlLXRhc2tmaWxlLm8KIAogIyBjb3JlIElERSBjb2RlCitpZGUtY29yZS0kKENPTkZJR19JREVfQVRBUEkpCQkrPSBpZGUtYXRhcGkubwogaWRlLWNvcmUtJChDT05GSUdfQkxLX0RFVl9JREVQQ0kpCSs9IHNldHVwLXBjaS5vCiBpZGUtY29yZS0kKENPTkZJR19CTEtfREVWX0lERURNQSkJKz0gaWRlLWRtYS5vCiBpZGUtY29yZS0kKENPTkZJR19JREVfUFJPQ19GUykJCSs9IGlkZS1wcm9jLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2FybS9NYWtlZmlsZSBiL2RyaXZlcnMvaWRlL2FybS9NYWtlZmlsZQppbmRleCA1YmMyNjA1Li45MzZlN2IwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9hcm0vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9pZGUvYXJtL01ha2VmaWxlCkBAIC0xLDYgKzEsNyBAQAogCiBvYmotJChDT05GSUdfQkxLX0RFVl9JREVfSUNTSURFKQkrPSBpY3NpZGUubwogb2JqLSQoQ09ORklHX0JMS19ERVZfSURFX1JBUElERSkJKz0gcmFwaWRlLm8KK29iai0kKENPTkZJR19CTEtfREVWX0lERV9CQVNUKQkJKz0gYmFzdC1pZGUubwogb2JqLSQoQ09ORklHX0JMS19ERVZfUEFMTUNISVBfQkszNzEwKQkrPSBwYWxtX2JrMzcxMC5vCiAKIGlmZXEgKCQoQ09ORklHX0lERV9BUk0pLCBtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvYXJtL2Jhc3QtaWRlLmMgYi9kcml2ZXJzL2lkZS9hcm0vYmFzdC1pZGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZThjMjgxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9pZGUvYXJtL2Jhc3QtaWRlLmMKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA0IFNpbXRlYyBFbGVjdHJvbmljcworICogIEJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2lkZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisKKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vaXJxLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYmFzdC1tYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9iYXN0LWlycS5oPgorCisjZGVmaW5lIERSVl9OQU1FICJiYXN0LWlkZSIKKworc3RhdGljIGludCBfX2luaXQgYmFzdGlkZV9yZWdpc3Rlcih1bnNpZ25lZCBpbnQgYmFzZSwgdW5zaWduZWQgaW50IGF1eCwgaW50IGlycSkKK3sKKwlpZGVfaHdpZl90ICpod2lmOworCWh3X3JlZ3NfdCBodzsKKwlpbnQgaTsKKwl1OCBpZHhbNF0gPSB7IDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYgfTsKKworCW1lbXNldCgmaHcsIDAsIHNpemVvZihodykpOworCisJYmFzZSArPSBCQVNUX0lERV9DUzsKKwlhdXggICs9IEJBU1RfSURFX0NTOworCisJZm9yIChpID0gMDsgaSA8PSA3OyBpKyspIHsKKwkJaHcuaW9fcG9ydHNfYXJyYXlbaV0gPSAodW5zaWduZWQgbG9uZyliYXNlOworCQliYXNlICs9IDB4MjA7CisJfQorCisJaHcuaW9fcG9ydHMuY3RsX2FkZHIgPSBhdXggKyAoNiAqIDB4MjApOworCWh3LmlycSA9IGlycTsKKwlody5jaGlwc2V0ID0gaWRlX2dlbmVyaWM7CisKKwlod2lmID0gaWRlX2ZpbmRfcG9ydCgpOworCWlmIChod2lmID09IE5VTEwpCisJCWdvdG8gb3V0OworCisJaSA9IGh3aWYtPmluZGV4OworCisJaWRlX2luaXRfcG9ydF9kYXRhKGh3aWYsIGkpOworCWlkZV9pbml0X3BvcnRfaHcoaHdpZiwgJmh3KTsKKwlod2lmLT5wb3J0X29wcyA9IE5VTEw7CisKKwlpZHhbMF0gPSBpOworCisJaWRlX2RldmljZV9hZGQoaWR4LCBOVUxMKTsKK291dDoKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgYmFzdGlkZV9pbml0KHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBiYXNlID0gQkFTVF9WQV9JREVQUkkgKyBCQVNUX0lERV9DUzsKKworCS8qIHdlIGNhbiB0cmVhdCB0aGUgVlIxMDAwIGFuZCB0aGUgQkFTVCB0aGUgc2FtZSAqLworCisJaWYgKCEobWFjaGluZV9pc19iYXN0KCkgfHwgbWFjaGluZV9pc192cjEwMDAoKSkpCisJCXJldHVybiAwOworCisJcHJpbnRrKCJCQVNUOiBJREUgZHJpdmVyLCAoYykgMjAwMy0yMDA0IFNpbXRlYyBFbGVjdHJvbmljc1xuIik7CisKKwlpZiAoIXJlcXVlc3RfbWVtX3JlZ2lvbihiYXNlLCAweDQwMDAwMCwgRFJWX05BTUUpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IHJlc291cmNlcyBidXN5XG4iLCBEUlZfTkFNRSk7CisJCXJldHVybiAtRUJVU1k7CisJfQorCisJYmFzdGlkZV9yZWdpc3RlcihCQVNUX1ZBX0lERVBSSSwgQkFTVF9WQV9JREVQUklBVVgsIElSUV9JREUwKTsKKwliYXN0aWRlX3JlZ2lzdGVyKEJBU1RfVkFfSURFU0VDLCBCQVNUX1ZBX0lERVNFQ0FVWCwgSVJRX0lERTEpOworCisJcmV0dXJuIDA7Cit9CisKK21vZHVsZV9pbml0KGJhc3RpZGVfaW5pdCk7CisKK01PRFVMRV9BVVRIT1IoIkJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4iKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiU2ltdGVjIEJBU1QgLyBUaG9yY29tIFZSMTAwMCBJREUgZHJpdmVyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9hcm0vcGFsbV9iazM3MTAuYyBiL2RyaXZlcnMvaWRlL2FybS9wYWxtX2JrMzcxMC5jCmluZGV4IGNjMjQ4MDMuLjM4MzlmNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2FybS9wYWxtX2JrMzcxMC5jCisrKyBiL2RyaXZlcnMvaWRlL2FybS9wYWxtX2JrMzcxMC5jCkBAIC03NiwxOCArNzYsMTYgQEAKIAogI2luY2x1ZGUgIi4uL2lkZS10aW1pbmcuaCIKIAotc3RhdGljIGxvbmcgaWRlX3BhbG1fY2xrOworc3RhdGljIHVuc2lnbmVkIGlkZWNsa19wZXJpb2Q7IC8qIGluIG5hbm9zZWNvbmRzICovCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGFsbV9iazM3MTBfdWRtYXRpbWluZyBwYWxtX2JrMzcxMF91ZG1hdGltaW5nc1s2XSA9IHsKIAl7MTYwLCAyNDB9LAkJLyogVURNQSBNb2RlIDAgKi8KIAl7MTI1LCAxNjB9LAkJLyogVURNQSBNb2RlIDEgKi8KIAl7MTAwLCAxMjB9LAkJLyogVURNQSBNb2RlIDIgKi8KIAl7MTAwLCA5MH0sCQkvKiBVRE1BIE1vZGUgMyAqLwotCXs4NSwgIDYwfSwJCS8qIFVETUEgTW9kZSA0ICovCisJezEwMCwgNjB9LAkJLyogVURNQSBNb2RlIDQgKi8KIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICppZGVjbGtwOwotCiBzdGF0aWMgdm9pZCBwYWxtX2JrMzcxMF9zZXR1ZG1hbW9kZSh2b2lkIF9faW9tZW0gKmJhc2UsIHVuc2lnbmVkIGludCBkZXYsCiAJCQkJICAgIHVuc2lnbmVkIGludCBtb2RlKQogewpAQCAtOTcsMTAgKzk1LDEwIEBACiAKIAkvKiBETUEgRGF0YSBTZXR1cCAqLwogCXQwID0gRElWX1JPVU5EX1VQKHBhbG1fYmszNzEwX3VkbWF0aW1pbmdzW21vZGVdLmN5Y2xldGltZSwKLQkJCSAgaWRlX3BhbG1fY2xrKSAtIDE7Ci0JdGVudiA9IERJVl9ST1VORF9VUCgyMCwgaWRlX3BhbG1fY2xrKSAtIDE7CisJCQkgIGlkZWNsa19wZXJpb2QpIC0gMTsKKwl0ZW52ID0gRElWX1JPVU5EX1VQKDIwLCBpZGVjbGtfcGVyaW9kKSAtIDE7CiAJdHJwID0gRElWX1JPVU5EX1VQKHBhbG1fYmszNzEwX3VkbWF0aW1pbmdzW21vZGVdLnJwdGltZSwKLQkJCSAgIGlkZV9wYWxtX2NsaykgLSAxOworCQkJICAgaWRlY2xrX3BlcmlvZCkgLSAxOwogCiAJLyogdWRtYXRpbSBSZWdpc3RlciAqLwogCXZhbDE2ID0gcmVhZHcoYmFzZSArIEJLMzcxMF9VRE1BVElNKSAmIChkZXYgPyAweEZGMEYgOiAweEZGRjApOwpAQCAtMTQxLDggKzEzOSw4IEBACiAJY3ljbGV0aW1lID0gbWF4X3QoaW50LCB0LT5jeWNsZSwgbWluX2N5Y2xlKTsKIAogCS8qIERNQSBEYXRhIFNldHVwICovCi0JdDAgPSBESVZfUk9VTkRfVVAoY3ljbGV0aW1lLCBpZGVfcGFsbV9jbGspOwotCXRkID0gRElWX1JPVU5EX1VQKHQtPmFjdGl2ZSwgaWRlX3BhbG1fY2xrKTsKKwl0MCA9IERJVl9ST1VORF9VUChjeWNsZXRpbWUsIGlkZWNsa19wZXJpb2QpOworCXRkID0gRElWX1JPVU5EX1VQKHQtPmFjdGl2ZSwgaWRlY2xrX3BlcmlvZCk7CiAJdGt3ID0gdDAgLSB0ZCAtIDE7CiAJdGQgLT0gMTsKIApAQCAtMTY4LDkgKzE2Niw5IEBACiAJc3RydWN0IGlkZV90aW1pbmcgKnQ7CiAKIAkvKiBQSU8gRGF0YSBTZXR1cCAqLwotCXQwID0gRElWX1JPVU5EX1VQKGN5Y2xldGltZSwgaWRlX3BhbG1fY2xrKTsKKwl0MCA9IERJVl9ST1VORF9VUChjeWNsZXRpbWUsIGlkZWNsa19wZXJpb2QpOwogCXQyID0gRElWX1JPVU5EX1VQKGlkZV90aW1pbmdfZmluZF9tb2RlKFhGRVJfUElPXzAgKyBtb2RlKS0+YWN0aXZlLAotCQkJICBpZGVfcGFsbV9jbGspOworCQkJICBpZGVjbGtfcGVyaW9kKTsKIAogCXQyaSA9IHQwIC0gdDIgLSAxOwogCXQyIC09IDE7CkBAIC0xOTIsOCArMTkwLDggQEAKIAogCS8qIFRBU0tGSUxFIFNldHVwICovCiAJdCA9IGlkZV90aW1pbmdfZmluZF9tb2RlKFhGRVJfUElPXzAgKyBtb2RlKTsKLQl0MCA9IERJVl9ST1VORF9VUCh0LT5jeWM4YiwgaWRlX3BhbG1fY2xrKTsKLQl0MiA9IERJVl9ST1VORF9VUCh0LT5hY3Q4YiwgaWRlX3BhbG1fY2xrKTsKKwl0MCA9IERJVl9ST1VORF9VUCh0LT5jeWM4YiwgaWRlY2xrX3BlcmlvZCk7CisJdDIgPSBESVZfUk9VTkRfVVAodC0+YWN0OGIsIGlkZWNsa19wZXJpb2QpOwogCiAJdDJpID0gdDAgLSB0MiAtIDE7CiAJdDIgLT0gMTsKQEAgLTM1MCwyMiArMzQ4LDIyIEBACiAKIHN0YXRpYyBpbnQgX19kZXZpbml0IHBhbG1fYmszNzEwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7Ci0Jc3RydWN0IGNsayAqY2xrcDsKKwlzdHJ1Y3QgY2xrICpjbGs7CiAJc3RydWN0IHJlc291cmNlICptZW0sICppcnE7CiAJaWRlX2h3aWZfdCAqaHdpZjsKLQl1bnNpZ25lZCBsb25nIGJhc2U7CisJdW5zaWduZWQgbG9uZyBiYXNlLCByYXRlOwogCWludCBpOwogCWh3X3JlZ3NfdCBodzsKIAl1OCBpZHhbNF0gPSB7IDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYgfTsKIAotCWNsa3AgPSBjbGtfZ2V0KE5VTEwsICJJREVDTEsiKTsKLQlpZiAoSVNfRVJSKGNsa3ApKQorCWNsayA9IGNsa19nZXQoTlVMTCwgIklERUNMSyIpOworCWlmIChJU19FUlIoY2xrKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlpZGVjbGtwID0gY2xrcDsKLQljbGtfZW5hYmxlKGlkZWNsa3ApOwotCWlkZV9wYWxtX2NsayA9IGNsa19nZXRfcmF0ZShpZGVjbGtwKS8xMDAwMDA7Ci0JaWRlX3BhbG1fY2xrID0gKDEwMDAwL2lkZV9wYWxtX2NsaykgKyAxOworCWNsa19lbmFibGUoY2xrKTsKKwlyYXRlID0gY2xrX2dldF9yYXRlKGNsayk7CisJaWRlY2xrX3BlcmlvZCA9IDEwMDAwMDAwMDBVTCAvIHJhdGU7CisKIAkvKiBSZWdpc3RlciB0aGUgSURFIGludGVyZmFjZSB3aXRoIExpbnV4IEFUQSBJbnRlcmZhY2UgKi8KIAltZW1zZXQoJmh3LCAwLCBzaXplb2YoaHcpKTsKIApAQCAtNDA3LDcgKzQwNSw2IEBACiAJaWRlX2luaXRfcG9ydF9kYXRhKGh3aWYsIGkpOwogCWlkZV9pbml0X3BvcnRfaHcoaHdpZiwgJmh3KTsKIAotCWh3aWYtPm1taW8gPSAxOwogCWRlZmF1bHRfaHdpZl9tbWlvcHMoaHdpZik7CiAKIAlpZHhbMF0gPSBpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaDgzMDAvaWRlLWg4MzAwLmMgYi9kcml2ZXJzL2lkZS9oODMwMC9pZGUtaDgzMDAuYwppbmRleCBlY2Y1M2JiLi5hZTM3ZWU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9oODMwMC9pZGUtaDgzMDAuYworKysgYi9kcml2ZXJzL2lkZS9oODMwMC9pZGUtaDgzMDAuYwpAQCAtNTIsOCArNTIsNiBAQAogCWlmICh0YXNrLT50Zl9mbGFncyAmIElERV9URkxBR19GTEFHR0VEKQogCQlISUhJID0gMHhGRjsKIAotCWlkZV9zZXRfaXJxKGRyaXZlLCAxKTsKLQogCWlmICh0YXNrLT50Zl9mbGFncyAmIElERV9URkxBR19PVVRfREFUQSkKIAkJbW1fb3V0dygodGYtPmhvYl9kYXRhIDw8IDgpIHwgdGYtPmRhdGEsIGlvX3BvcnRzLT5kYXRhX2FkZHIpOwogCkBAIC05OCw3ICs5Niw3IEBACiAJfQogCiAJLyogYmUgc3VyZSB3ZSdyZSBsb29raW5nIGF0IHRoZSBsb3cgb3JkZXIgYml0cyAqLwotCW91dGIoZHJpdmUtPmN0bCAmIH4weDgwLCBpb19wb3J0cy0+Y3RsX2FkZHIpOworCW91dGIoQVRBX0RFVkNUTF9PQlMgJiB+MHg4MCwgaW9fcG9ydHMtPmN0bF9hZGRyKTsKIAogCWlmICh0YXNrLT50Zl9mbGFncyAmIElERV9URkxBR19JTl9OU0VDVCkKIAkJdGYtPm5zZWN0ICA9IGluYihpb19wb3J0cy0+bnNlY3RfYWRkcik7CkBAIC0xMTIsNyArMTEwLDcgQEAKIAkJdGYtPmRldmljZSA9IGluYihpb19wb3J0cy0+ZGV2aWNlX2FkZHIpOwogCiAJaWYgKHRhc2stPnRmX2ZsYWdzICYgSURFX1RGTEFHX0xCQTQ4KSB7Ci0JCW91dGIoZHJpdmUtPmN0bCB8IDB4ODAsIGlvX3BvcnRzLT5jdGxfYWRkcik7CisJCW91dGIoQVRBX0RFVkNUTF9PQlMgfCAweDgwLCBpb19wb3J0cy0+Y3RsX2FkZHIpOwogCiAJCWlmICh0YXNrLT50Zl9mbGFncyAmIElERV9URkxBR19JTl9IT0JfRkVBVFVSRSkKIAkJCXRmLT5ob2JfZmVhdHVyZSA9IGluYihpb19wb3J0cy0+ZmVhdHVyZV9hZGRyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS1hY3BpLmMgYi9kcml2ZXJzL2lkZS9pZGUtYWNwaS5jCmluZGV4IDlkMzYwMWYuLjZmNzA0NjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2lkZS1hY3BpLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLWFjcGkuYwpAQCAtNjAsMTUgKzYwLDE1IEBACiAjZGVmaW5lIERFQlBSSU5UKGZtdCwgYXJncy4uLikJZG8ge30gd2hpbGUgKDApCiAjZW5kaWYJLyogREVCVUdHSU5HICovCiAKLWludCBpZGVfbm9hY3BpOworc3RhdGljIGludCBpZGVfbm9hY3BpOwogbW9kdWxlX3BhcmFtX25hbWVkKG5vYWNwaSwgaWRlX25vYWNwaSwgYm9vbCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKG5vYWNwaSwgImRpc2FibGUgSURFIEFDUEkgc3VwcG9ydCIpOwogCi1pbnQgaWRlX2FjcGlndGY7CitzdGF0aWMgaW50IGlkZV9hY3BpZ3RmOwogbW9kdWxlX3BhcmFtX25hbWVkKGFjcGlndGYsIGlkZV9hY3BpZ3RmLCBib29sLCAwKTsKIE1PRFVMRV9QQVJNX0RFU0MoYWNwaWd0ZiwgImVuYWJsZSBJREUgQUNQSSBfR1RGIHN1cHBvcnQiKTsKIAotaW50IGlkZV9hY3Bpb25ib290Oworc3RhdGljIGludCBpZGVfYWNwaW9uYm9vdDsKIG1vZHVsZV9wYXJhbV9uYW1lZChhY3Bpb25ib290LCBpZGVfYWNwaW9uYm9vdCwgYm9vbCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKGFjcGlvbmJvb3QsICJjYWxsIElERSBBQ1BJIG1ldGhvZHMgb24gYm9vdCIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUtYXRhcGkuYyBiL2RyaXZlcnMvaWRlL2lkZS1hdGFwaS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4MDIwMzEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2lkZS9pZGUtYXRhcGkuYwpAQCAtMCwwICsxLDI5NiBAQAorLyoKKyAqIEFUQVBJIHN1cHBvcnQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvaWRlLmg+CisjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CisKKyNpZmRlZiBERUJVRworI2RlZmluZSBkZWJ1Z19sb2coZm10LCBhcmdzLi4uKSBcCisJcHJpbnRrKEtFUk5fSU5GTyAiaWRlOiAiIGZtdCwgIyMgYXJncykKKyNlbHNlCisjZGVmaW5lIGRlYnVnX2xvZyhmbXQsIGFyZ3MuLi4pIGRvIHt9IHdoaWxlICgwKQorI2VuZGlmCisKKy8qIFRPRE86IHVuaWZ5IHRoZSBjb2RlIHRodXMgbWFraW5nIHNvbWUgYXJndW1lbnRzIGdvIGF3YXkgKi8KK2lkZV9zdGFydHN0b3BfdCBpZGVfcGNfaW50cihpZGVfZHJpdmVfdCAqZHJpdmUsIHN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjLAorCWlkZV9oYW5kbGVyX3QgKmhhbmRsZXIsIHVuc2lnbmVkIGludCB0aW1lb3V0LCBpZGVfZXhwaXJ5X3QgKmV4cGlyeSwKKwl2b2lkICgqdXBkYXRlX2J1ZmZlcnMpKGlkZV9kcml2ZV90ICosIHN0cnVjdCBpZGVfYXRhcGlfcGMgKiksCisJdm9pZCAoKnJldHJ5X3BjKShpZGVfZHJpdmVfdCAqKSwgdm9pZCAoKmRzY19oYW5kbGUpKGlkZV9kcml2ZV90ICopLAorCXZvaWQgKCppb19idWZmZXJzKShpZGVfZHJpdmVfdCAqLCBzdHJ1Y3QgaWRlX2F0YXBpX3BjICosIHVuc2lnbmVkLCBpbnQpKQoreworCWlkZV9od2lmX3QgKmh3aWYgPSBkcml2ZS0+aHdpZjsKKwl4ZmVyX2Z1bmNfdCAqeGZlcmZ1bmM7CisJdW5zaWduZWQgaW50IHRlbXA7CisJdTE2IGJjb3VudDsKKwl1OCBzdGF0LCBpcmVhc29uLCBzY3NpID0gZHJpdmUtPnNjc2k7CisKKwlkZWJ1Z19sb2coIkVudGVyICVzIC0gaW50ZXJydXB0IGhhbmRsZXJcbiIsIF9fZnVuY19fKTsKKworCWlmIChwYy0+ZmxhZ3MgJiBQQ19GTEFHX1RJTUVET1VUKSB7CisJCXBjLT5jYWxsYmFjayhkcml2ZSk7CisJCXJldHVybiBpZGVfc3RvcHBlZDsKKwl9CisKKwkvKiBDbGVhciB0aGUgaW50ZXJydXB0ICovCisJc3RhdCA9IGlkZV9yZWFkX3N0YXR1cyhkcml2ZSk7CisKKwlpZiAocGMtPmZsYWdzICYgUENfRkxBR19ETUFfSU5fUFJPR1JFU1MpIHsKKwkJaWYgKGh3aWYtPmRtYV9vcHMtPmRtYV9lbmQoZHJpdmUpIHx8CisJCSAgICAoZHJpdmUtPm1lZGlhID09IGlkZV90YXBlICYmICFzY3NpICYmIChzdGF0ICYgRVJSX1NUQVQpKSkgeworCQkJaWYgKGRyaXZlLT5tZWRpYSA9PSBpZGVfZmxvcHB5ICYmICFzY3NpKQorCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IERNQSAlcyBlcnJvclxuIiwKKwkJCQkJZHJpdmUtPm5hbWUsIHJxX2RhdGFfZGlyKHBjLT5ycSkKKwkJCQkJCSAgICAgPyAid3JpdGUiIDogInJlYWQiKTsKKwkJCXBjLT5mbGFncyB8PSBQQ19GTEFHX0RNQV9FUlJPUjsKKwkJfSBlbHNlIHsKKwkJCXBjLT54ZmVycmVkID0gcGMtPnJlcV94ZmVyOworCQkJaWYgKHVwZGF0ZV9idWZmZXJzKQorCQkJCXVwZGF0ZV9idWZmZXJzKGRyaXZlLCBwYyk7CisJCX0KKwkJZGVidWdfbG9nKCIlczogRE1BIGZpbmlzaGVkXG4iLCBkcml2ZS0+bmFtZSk7CisJfQorCisJLyogTm8gbW9yZSBpbnRlcnJ1cHRzICovCisJaWYgKChzdGF0ICYgRFJRX1NUQVQpID09IDApIHsKKwkJZGVidWdfbG9nKCJQYWNrZXQgY29tbWFuZCBjb21wbGV0ZWQsICVkIGJ5dGVzIHRyYW5zZmVycmVkXG4iLAorCQkJICBwYy0+eGZlcnJlZCk7CisKKwkJcGMtPmZsYWdzICY9IH5QQ19GTEFHX0RNQV9JTl9QUk9HUkVTUzsKKworCQlsb2NhbF9pcnFfZW5hYmxlX2luX2hhcmRpcnEoKTsKKworCQlpZiAoZHJpdmUtPm1lZGlhID09IGlkZV90YXBlICYmICFzY3NpICYmCisJCSAgICAoc3RhdCAmIEVSUl9TVEFUKSAmJiBwYy0+Y1swXSA9PSBSRVFVRVNUX1NFTlNFKQorCQkJc3RhdCAmPSB+RVJSX1NUQVQ7CisJCWlmICgoc3RhdCAmIEVSUl9TVEFUKSB8fCAocGMtPmZsYWdzICYgUENfRkxBR19ETUFfRVJST1IpKSB7CisJCQkvKiBFcnJvciBkZXRlY3RlZCAqLworCQkJZGVidWdfbG9nKCIlczogSS9PIGVycm9yXG4iLCBkcml2ZS0+bmFtZSk7CisKKwkJCWlmIChkcml2ZS0+bWVkaWEgIT0gaWRlX3RhcGUgfHwgc2NzaSkgeworCQkJCXBjLT5ycS0+ZXJyb3JzKys7CisJCQkJaWYgKHNjc2kpCisJCQkJCWdvdG8gY21kX2ZpbmlzaGVkOworCQkJfQorCisJCQlpZiAocGMtPmNbMF0gPT0gUkVRVUVTVF9TRU5TRSkgeworCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IEkvTyBlcnJvciBpbiByZXF1ZXN0IHNlbnNlIgorCQkJCQkJIiBjb21tYW5kXG4iLCBkcml2ZS0+bmFtZSk7CisJCQkJcmV0dXJuIGlkZV9kb19yZXNldChkcml2ZSk7CisJCQl9CisKKwkJCWRlYnVnX2xvZygiW2NtZCAleF06IGNoZWNrIGNvbmRpdGlvblxuIiwgcGMtPmNbMF0pOworCisJCQkvKiBSZXRyeSBvcGVyYXRpb24gKi8KKwkJCXJldHJ5X3BjKGRyaXZlKTsKKwkJCS8qIHF1ZXVlZCwgYnV0IG5vdCBzdGFydGVkICovCisJCQlyZXR1cm4gaWRlX3N0b3BwZWQ7CisJCX0KK2NtZF9maW5pc2hlZDoKKwkJcGMtPmVycm9yID0gMDsKKwkJaWYgKChwYy0+ZmxhZ3MgJiBQQ19GTEFHX1dBSVRfRk9SX0RTQykgJiYKKwkJICAgIChzdGF0ICYgU0VFS19TVEFUKSA9PSAwKSB7CisJCQlkc2NfaGFuZGxlKGRyaXZlKTsKKwkJCXJldHVybiBpZGVfc3RvcHBlZDsKKwkJfQorCQkvKiBDb21tYW5kIGZpbmlzaGVkIC0gQ2FsbCB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gKi8KKwkJcGMtPmNhbGxiYWNrKGRyaXZlKTsKKwkJcmV0dXJuIGlkZV9zdG9wcGVkOworCX0KKworCWlmIChwYy0+ZmxhZ3MgJiBQQ19GTEFHX0RNQV9JTl9QUk9HUkVTUykgeworCQlwYy0+ZmxhZ3MgJj0gflBDX0ZMQUdfRE1BX0lOX1BST0dSRVNTOworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBUaGUgZGV2aWNlIHdhbnRzIHRvIGlzc3VlIG1vcmUgaW50ZXJydXB0cyAiCisJCQkJImluIERNQSBtb2RlXG4iLCBkcml2ZS0+bmFtZSk7CisJCWlkZV9kbWFfb2ZmKGRyaXZlKTsKKwkJcmV0dXJuIGlkZV9kb19yZXNldChkcml2ZSk7CisJfQorCS8qIEdldCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHRyYW5zZmVyIG9uIHRoaXMgaW50ZXJydXB0LiAqLworCWJjb3VudCA9IChod2lmLT5JTkIoaHdpZi0+aW9fcG9ydHMubGJhaF9hZGRyKSA8PCA4KSB8CisJCSAgaHdpZi0+SU5CKGh3aWYtPmlvX3BvcnRzLmxiYW1fYWRkcik7CisKKwlpcmVhc29uID0gaHdpZi0+SU5CKGh3aWYtPmlvX3BvcnRzLm5zZWN0X2FkZHIpOworCisJaWYgKGlyZWFzb24gJiBDRCkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBDb0QgIT0gMCBpbiAlc1xuIiwgZHJpdmUtPm5hbWUsIF9fZnVuY19fKTsKKwkJcmV0dXJuIGlkZV9kb19yZXNldChkcml2ZSk7CisJfQorCWlmICgoKGlyZWFzb24gJiBJTykgPT0gSU8pID09ICEhKHBjLT5mbGFncyAmIFBDX0ZMQUdfV1JJVElORykpIHsKKwkJLyogSG9wZWZ1bGx5LCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJlICovCisJCXByaW50ayhLRVJOX0VSUiAiJXM6IFdlIHdhbnRlZCB0byAlcywgYnV0IHRoZSBkZXZpY2Ugd2FudHMgdXMgIgorCQkJCSJ0byAlcyFcbiIsIGRyaXZlLT5uYW1lLAorCQkJCShpcmVhc29uICYgSU8pID8gIldyaXRlIiA6ICJSZWFkIiwKKwkJCQkoaXJlYXNvbiAmIElPKSA/ICJSZWFkIiA6ICJXcml0ZSIpOworCQlyZXR1cm4gaWRlX2RvX3Jlc2V0KGRyaXZlKTsKKwl9CisJaWYgKCEocGMtPmZsYWdzICYgUENfRkxBR19XUklUSU5HKSkgeworCQkvKiBSZWFkaW5nIC0gQ2hlY2sgdGhhdCB3ZSBoYXZlIGVub3VnaCBzcGFjZSAqLworCQl0ZW1wID0gcGMtPnhmZXJyZWQgKyBiY291bnQ7CisJCWlmICh0ZW1wID4gcGMtPnJlcV94ZmVyKSB7CisJCQlpZiAodGVtcCA+IHBjLT5idWZfc2l6ZSkgeworCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IFRoZSBkZXZpY2Ugd2FudHMgdG8gc2VuZCAiCisJCQkJCQkidXMgbW9yZSBkYXRhIHRoYW4gZXhwZWN0ZWQgLSAiCisJCQkJCQkiZGlzY2FyZGluZyBkYXRhXG4iLAorCQkJCQkJZHJpdmUtPm5hbWUpOworCQkJCWlmIChzY3NpKQorCQkJCQl0ZW1wID0gcGMtPmJ1Zl9zaXplIC0gcGMtPnhmZXJyZWQ7CisJCQkJZWxzZQorCQkJCQl0ZW1wID0gMDsKKwkJCQlpZiAodGVtcCkgeworCQkJCQlpZiAocGMtPnNnKQorCQkJCQkJaW9fYnVmZmVycyhkcml2ZSwgcGMsIHRlbXAsIDApOworCQkJCQllbHNlCisJCQkJCQlod2lmLT5pbnB1dF9kYXRhKGRyaXZlLCBOVUxMLAorCQkJCQkJCXBjLT5jdXJfcG9zLCB0ZW1wKTsKKwkJCQkJcHJpbnRrKEtFUk5fRVJSICIlczogdHJhbnNmZXJyZWQgJWQgb2YgIgorCQkJCQkJCSIlZCBieXRlc1xuIiwKKwkJCQkJCQlkcml2ZS0+bmFtZSwKKwkJCQkJCQl0ZW1wLCBiY291bnQpOworCQkJCX0KKwkJCQlwYy0+eGZlcnJlZCArPSB0ZW1wOworCQkJCXBjLT5jdXJfcG9zICs9IHRlbXA7CisJCQkJaWRlX3BhZF90cmFuc2Zlcihkcml2ZSwgMCwgYmNvdW50IC0gdGVtcCk7CisJCQkJaWRlX3NldF9oYW5kbGVyKGRyaXZlLCBoYW5kbGVyLCB0aW1lb3V0LAorCQkJCQkJZXhwaXJ5KTsKKwkJCQlyZXR1cm4gaWRlX3N0YXJ0ZWQ7CisJCQl9CisJCQlkZWJ1Z19sb2coIlRoZSBkZXZpY2Ugd2FudHMgdG8gc2VuZCB1cyBtb3JlIGRhdGEgdGhhbiAiCisJCQkJICAiZXhwZWN0ZWQgLSBhbGxvd2luZyB0cmFuc2ZlclxuIik7CisJCX0KKwkJeGZlcmZ1bmMgPSBod2lmLT5pbnB1dF9kYXRhOworCX0gZWxzZQorCQl4ZmVyZnVuYyA9IGh3aWYtPm91dHB1dF9kYXRhOworCisJaWYgKChkcml2ZS0+bWVkaWEgPT0gaWRlX2Zsb3BweSAmJiAhc2NzaSAmJiAhcGMtPmJ1ZikgfHwKKwkgICAgKGRyaXZlLT5tZWRpYSA9PSBpZGVfdGFwZSAmJiAhc2NzaSAmJiBwYy0+YmgpIHx8CisJICAgIChzY3NpICYmIHBjLT5zZykpCisJCWlvX2J1ZmZlcnMoZHJpdmUsIHBjLCBiY291bnQsICEhKHBjLT5mbGFncyAmIFBDX0ZMQUdfV1JJVElORykpOworCWVsc2UKKwkJeGZlcmZ1bmMoZHJpdmUsIE5VTEwsIHBjLT5jdXJfcG9zLCBiY291bnQpOworCisJLyogVXBkYXRlIHRoZSBjdXJyZW50IHBvc2l0aW9uICovCisJcGMtPnhmZXJyZWQgKz0gYmNvdW50OworCXBjLT5jdXJfcG9zICs9IGJjb3VudDsKKworCWRlYnVnX2xvZygiW2NtZCAleF0gdHJhbnNmZXJyZWQgJWQgYnl0ZXMgb24gdGhhdCBpbnRyLlxuIiwKKwkJICBwYy0+Y1swXSwgYmNvdW50KTsKKworCS8qIEFuZCBzZXQgdGhlIGludGVycnVwdCBoYW5kbGVyIGFnYWluICovCisJaWRlX3NldF9oYW5kbGVyKGRyaXZlLCBoYW5kbGVyLCB0aW1lb3V0LCBleHBpcnkpOworCXJldHVybiBpZGVfc3RhcnRlZDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGlkZV9wY19pbnRyKTsKKworc3RhdGljIHU4IGlkZV93YWl0X2lyZWFzb24oaWRlX2RyaXZlX3QgKmRyaXZlLCB1OCBpcmVhc29uKQoreworCWlkZV9od2lmX3QgKmh3aWYgPSBkcml2ZS0+aHdpZjsKKwlpbnQgcmV0cmllcyA9IDEwMDsKKworCXdoaWxlIChyZXRyaWVzLS0gJiYgKChpcmVhc29uICYgQ0QpID09IDAgfHwgKGlyZWFzb24gJiBJTykpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IChJTyxDb0QgIT0gKDAsMSkgd2hpbGUgaXNzdWluZyAiCisJCQkJImEgcGFja2V0IGNvbW1hbmQsIHJldHJ5aW5nXG4iLCBkcml2ZS0+bmFtZSk7CisJCXVkZWxheSgxMDApOworCQlpcmVhc29uID0gaHdpZi0+SU5CKGh3aWYtPmlvX3BvcnRzLm5zZWN0X2FkZHIpOworCQlpZiAocmV0cmllcyA9PSAwKSB7CisJCQlwcmludGsoS0VSTl9FUlIgIiVzOiAoSU8sQ29EICE9ICgwLDEpIHdoaWxlIGlzc3VpbmcgIgorCQkJCQkiYSBwYWNrZXQgY29tbWFuZCwgaWdub3JpbmdcbiIsCisJCQkJCWRyaXZlLT5uYW1lKTsKKwkJCWlyZWFzb24gfD0gQ0Q7CisJCQlpcmVhc29uICY9IH5JTzsKKwkJfQorCX0KKworCXJldHVybiBpcmVhc29uOworfQorCitpZGVfc3RhcnRzdG9wX3QgaWRlX3RyYW5zZmVyX3BjKGlkZV9kcml2ZV90ICpkcml2ZSwgc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMsCisJCQkJaWRlX2hhbmRsZXJfdCAqaGFuZGxlciwgdW5zaWduZWQgaW50IHRpbWVvdXQsCisJCQkJaWRlX2V4cGlyeV90ICpleHBpcnkpCit7CisJaWRlX2h3aWZfdCAqaHdpZiA9IGRyaXZlLT5od2lmOworCWlkZV9zdGFydHN0b3BfdCBzdGFydHN0b3A7CisJdTggaXJlYXNvbjsKKworCWlmIChpZGVfd2FpdF9zdGF0KCZzdGFydHN0b3AsIGRyaXZlLCBEUlFfU1RBVCwgQlVTWV9TVEFULCBXQUlUX1JFQURZKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBTdHJhbmdlLCBwYWNrZXQgY29tbWFuZCBpbml0aWF0ZWQgeWV0ICIKKwkJCQkiRFJRIGlzbid0IGFzc2VydGVkXG4iLCBkcml2ZS0+bmFtZSk7CisJCXJldHVybiBzdGFydHN0b3A7CisJfQorCisJaXJlYXNvbiA9IGh3aWYtPklOQihod2lmLT5pb19wb3J0cy5uc2VjdF9hZGRyKTsKKwlpZiAoZHJpdmUtPm1lZGlhID09IGlkZV90YXBlICYmICFkcml2ZS0+c2NzaSkKKwkJaXJlYXNvbiA9IGlkZV93YWl0X2lyZWFzb24oZHJpdmUsIGlyZWFzb24pOworCisJaWYgKChpcmVhc29uICYgQ0QpID09IDAgfHwgKGlyZWFzb24gJiBJTykpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogKElPLENvRCkgIT0gKDAsMSkgd2hpbGUgaXNzdWluZyAiCisJCQkJImEgcGFja2V0IGNvbW1hbmRcbiIsIGRyaXZlLT5uYW1lKTsKKwkJcmV0dXJuIGlkZV9kb19yZXNldChkcml2ZSk7CisJfQorCisJLyogU2V0IHRoZSBpbnRlcnJ1cHQgcm91dGluZSAqLworCWlkZV9zZXRfaGFuZGxlcihkcml2ZSwgaGFuZGxlciwgdGltZW91dCwgZXhwaXJ5KTsKKworCS8qIEJlZ2luIERNQSwgaWYgbmVjZXNzYXJ5ICovCisJaWYgKHBjLT5mbGFncyAmIFBDX0ZMQUdfRE1BX09LKSB7CisJCXBjLT5mbGFncyB8PSBQQ19GTEFHX0RNQV9JTl9QUk9HUkVTUzsKKwkJaHdpZi0+ZG1hX29wcy0+ZG1hX3N0YXJ0KGRyaXZlKTsKKwl9CisKKwkvKiBTZW5kIHRoZSBhY3R1YWwgcGFja2V0ICovCisJaWYgKChwYy0+ZmxhZ3MgJiBQQ19GTEFHX1pJUF9EUklWRSkgPT0gMCkKKwkJaHdpZi0+b3V0cHV0X2RhdGEoZHJpdmUsIE5VTEwsIHBjLT5jLCAxMik7CisKKwlyZXR1cm4gaWRlX3N0YXJ0ZWQ7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChpZGVfdHJhbnNmZXJfcGMpOworCitpZGVfc3RhcnRzdG9wX3QgaWRlX2lzc3VlX3BjKGlkZV9kcml2ZV90ICpkcml2ZSwgc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMsCisJCQkgICAgIGlkZV9oYW5kbGVyX3QgKmhhbmRsZXIsIHVuc2lnbmVkIGludCB0aW1lb3V0LAorCQkJICAgICBpZGVfZXhwaXJ5X3QgKmV4cGlyeSkKK3sKKwlpZGVfaHdpZl90ICpod2lmID0gZHJpdmUtPmh3aWY7CisJdTE2IGJjb3VudDsKKwl1OCBkbWEgPSAwOworCisJLyogV2UgaGF2ZW4ndCB0cmFuc2ZlcnJlZCBhbnkgZGF0YSB5ZXQgKi8KKwlwYy0+eGZlcnJlZCA9IDA7CisJcGMtPmN1cl9wb3MgPSBwYy0+YnVmOworCisJLyogUmVxdWVzdCB0byB0cmFuc2ZlciB0aGUgZW50aXJlIGJ1ZmZlciBhdCBvbmNlICovCisJaWYgKGRyaXZlLT5tZWRpYSA9PSBpZGVfdGFwZSAmJiAhZHJpdmUtPnNjc2kpCisJCWJjb3VudCA9IHBjLT5yZXFfeGZlcjsKKwllbHNlCisJCWJjb3VudCA9IG1pbihwYy0+cmVxX3hmZXIsIDYzICogMTAyNCk7CisKKwlpZiAocGMtPmZsYWdzICYgUENfRkxBR19ETUFfRVJST1IpIHsKKwkJcGMtPmZsYWdzICY9IH5QQ19GTEFHX0RNQV9FUlJPUjsKKwkJaWRlX2RtYV9vZmYoZHJpdmUpOworCX0KKworCWlmICgocGMtPmZsYWdzICYgUENfRkxBR19ETUFfT0spICYmIGRyaXZlLT51c2luZ19kbWEpIHsKKwkJaWYgKGRyaXZlLT5zY3NpKQorCQkJaHdpZi0+c2dfbWFwcGVkID0gMTsKKwkJZG1hID0gIWh3aWYtPmRtYV9vcHMtPmRtYV9zZXR1cChkcml2ZSk7CisJCWlmIChkcml2ZS0+c2NzaSkKKwkJCWh3aWYtPnNnX21hcHBlZCA9IDA7CisJfQorCisJaWYgKCFkbWEpCisJCXBjLT5mbGFncyAmPSB+UENfRkxBR19ETUFfT0s7CisKKwlpZGVfcGt0Y21kX3RmX2xvYWQoZHJpdmUsIGRyaXZlLT5zY3NpID8gMCA6IElERV9URkxBR19PVVRfREVWSUNFLAorCQkJICAgYmNvdW50LCBkbWEpOworCisJLyogSXNzdWUgdGhlIHBhY2tldCBjb21tYW5kICovCisJaWYgKHBjLT5mbGFncyAmIFBDX0ZMQUdfRFJRX0lOVEVSUlVQVCkgeworCQlpZGVfZXhlY3V0ZV9jb21tYW5kKGRyaXZlLCBXSU5fUEFDS0VUQ01ELCBoYW5kbGVyLAorCQkJCSAgICB0aW1lb3V0LCBOVUxMKTsKKwkJcmV0dXJuIGlkZV9zdGFydGVkOworCX0gZWxzZSB7CisJCWlkZV9leGVjdXRlX3BrdF9jbWQoZHJpdmUpOworCQlyZXR1cm4gKCpoYW5kbGVyKShkcml2ZSk7CisJfQorfQorRVhQT1JUX1NZTUJPTF9HUEwoaWRlX2lzc3VlX3BjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS1jZC5jIGIvZHJpdmVycy9pZGUvaWRlLWNkLmMKaW5kZXggNjhlN2YxOS4uZDk5ODQ3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLWNkLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLWNkLmMKQEAgLTE4OCwxNiArMTg4LDYgQEAKIAlpZGVfY2RfbG9nX2Vycm9yKGRyaXZlLT5uYW1lLCBmYWlsZWRfY29tbWFuZCwgc2Vuc2UpOwogfQogCi0vKiBJbml0aWFsaXplIGEgaWRlLWNkIHBhY2tldCBjb21tYW5kIHJlcXVlc3QgKi8KLXZvaWQgaWRlX2NkX2luaXRfcnEoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpCi17Ci0Jc3RydWN0IGNkcm9tX2luZm8gKmNkID0gZHJpdmUtPmRyaXZlcl9kYXRhOwotCi0JaWRlX2luaXRfZHJpdmVfY21kKHJxKTsKLQlycS0+Y21kX3R5cGUgPSBSRVFfVFlQRV9BVEFfUEM7Ci0JcnEtPnJxX2Rpc2sgPSBjZC0+ZGlzazsKLX0KLQogc3RhdGljIHZvaWQgY2Ryb21fcXVldWVfcmVxdWVzdF9zZW5zZShpZGVfZHJpdmVfdCAqZHJpdmUsIHZvaWQgKnNlbnNlLAogCQkJCSAgICAgIHN0cnVjdCByZXF1ZXN0ICpmYWlsZWRfY29tbWFuZCkKIHsKQEAgLTIwOCw3ICsxOTgsOSBAQAogCQlzZW5zZSA9ICZpbmZvLT5zZW5zZV9kYXRhOwogCiAJLyogc3R1ZmYgdGhlIHNlbnNlIHJlcXVlc3QgaW4gZnJvbnQgb2Ygb3VyIGN1cnJlbnQgcmVxdWVzdCAqLwotCWlkZV9jZF9pbml0X3JxKGRyaXZlLCBycSk7CisJYmxrX3JxX2luaXQoTlVMTCwgcnEpOworCXJxLT5jbWRfdHlwZSA9IFJFUV9UWVBFX0FUQV9QQzsKKwlycS0+cnFfZGlzayA9IGluZm8tPmRpc2s7CiAKIAlycS0+ZGF0YSA9IHNlbnNlOwogCXJxLT5jbWRbMF0gPSBHUENNRF9SRVFVRVNUX1NFTlNFOwpAQCAtMjE2LDExICsyMDgsMTIgQEAKIAlycS0+ZGF0YV9sZW4gPSAxODsKIAogCXJxLT5jbWRfdHlwZSA9IFJFUV9UWVBFX1NFTlNFOworCXJxLT5jbWRfZmxhZ3MgfD0gUkVRX1BSRUVNUFQ7CiAKIAkvKiBOT1RFISBTYXZlIHRoZSBmYWlsZWQgY29tbWFuZCBpbiAicnEtPmJ1ZmZlciIgKi8KIAlycS0+YnVmZmVyID0gKHZvaWQgKikgZmFpbGVkX2NvbW1hbmQ7CiAKLQkodm9pZCkgaWRlX2RvX2RyaXZlX2NtZChkcml2ZSwgcnEsIGlkZV9wcmVlbXB0KTsKKwlpZGVfZG9fZHJpdmVfY21kKGRyaXZlLCBycSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNkcm9tX2VuZF9yZXF1ZXN0KGlkZV9kcml2ZV90ICpkcml2ZSwgaW50IHVwdG9kYXRlKQpAQCAtNTM3LDggKzUzMCw4IEBACiAJCWluZm8tPmRtYSA9ICFod2lmLT5kbWFfb3BzLT5kbWFfc2V0dXAoZHJpdmUpOwogCiAJLyogc2V0IHVwIHRoZSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwotCWlkZV9wa3RjbWRfdGZfbG9hZChkcml2ZSwgSURFX1RGTEFHX09VVF9OU0VDVCB8IElERV9URkxBR19PVVRfTEJBTCB8Ci0JCQkgICBJREVfVEZMQUdfTk9fU0VMRUNUX01BU0ssIHhmZXJsZW4sIGluZm8tPmRtYSk7CisJaWRlX3BrdGNtZF90Zl9sb2FkKGRyaXZlLCBJREVfVEZMQUdfT1VUX05TRUNUIHwgSURFX1RGTEFHX09VVF9MQkFMLAorCQkJICAgeGZlcmxlbiwgaW5mby0+ZG1hKTsKIAogCWlmIChpbmZvLT5jZF9mbGFncyAmIElERV9DRF9GTEFHX0RSUV9JTlRFUlJVUFQpIHsKIAkJLyogd2FpdGluZyBmb3IgQ0RCIGludGVycnVwdCwgbm90IERNQSB5ZXQuICovCkBAIC04MzgsMzQgKzgzMSw1NCBAQAogCQl9CiB9CiAKLWludCBpZGVfY2RfcXVldWVfcGMoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpCitpbnQgaWRlX2NkX3F1ZXVlX3BjKGlkZV9kcml2ZV90ICpkcml2ZSwgY29uc3QgdW5zaWduZWQgY2hhciAqY21kLAorCQkgICAgaW50IHdyaXRlLCB2b2lkICpidWZmZXIsIHVuc2lnbmVkICpidWZmbGVuLAorCQkgICAgc3RydWN0IHJlcXVlc3Rfc2Vuc2UgKnNlbnNlLCBpbnQgdGltZW91dCwKKwkJICAgIHVuc2lnbmVkIGludCBjbWRfZmxhZ3MpCiB7Ci0Jc3RydWN0IHJlcXVlc3Rfc2Vuc2Ugc2Vuc2U7CisJc3RydWN0IGNkcm9tX2luZm8gKmluZm8gPSBkcml2ZS0+ZHJpdmVyX2RhdGE7CisJc3RydWN0IHJlcXVlc3Rfc2Vuc2UgbG9jYWxfc2Vuc2U7CiAJaW50IHJldHJpZXMgPSAxMDsKLQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBycS0+Y21kX2ZsYWdzOworCXVuc2lnbmVkIGludCBmbGFncyA9IDA7CiAKLQlpZiAocnEtPnNlbnNlID09IE5VTEwpCi0JCXJxLT5zZW5zZSA9ICZzZW5zZTsKKwlpZiAoIXNlbnNlKQorCQlzZW5zZSA9ICZsb2NhbF9zZW5zZTsKIAogCS8qIHN0YXJ0IG9mIHJldHJ5IGxvb3AgKi8KIAlkbyB7CisJCXN0cnVjdCByZXF1ZXN0ICpycTsKIAkJaW50IGVycm9yOwotCQl1bnNpZ25lZCBsb25nIHRpbWUgPSBqaWZmaWVzOwotCQlycS0+Y21kX2ZsYWdzID0gZmxhZ3M7CiAKLQkJZXJyb3IgPSBpZGVfZG9fZHJpdmVfY21kKGRyaXZlLCBycSwgaWRlX3dhaXQpOwotCQl0aW1lID0gamlmZmllcyAtIHRpbWU7CisJCXJxID0gYmxrX2dldF9yZXF1ZXN0KGRyaXZlLT5xdWV1ZSwgd3JpdGUsIF9fR0ZQX1dBSVQpOworCisJCW1lbWNweShycS0+Y21kLCBjbWQsIEJMS19NQVhfQ0RCKTsKKwkJcnEtPmNtZF90eXBlID0gUkVRX1RZUEVfQVRBX1BDOworCQlycS0+c2Vuc2UgPSBzZW5zZTsKKwkJcnEtPmNtZF9mbGFncyB8PSBjbWRfZmxhZ3M7CisJCXJxLT50aW1lb3V0ID0gdGltZW91dDsKKwkJaWYgKGJ1ZmZlcikgeworCQkJcnEtPmRhdGEgPSBidWZmZXI7CisJCQlycS0+ZGF0YV9sZW4gPSAqYnVmZmxlbjsKKwkJfQorCisJCWVycm9yID0gYmxrX2V4ZWN1dGVfcnEoZHJpdmUtPnF1ZXVlLCBpbmZvLT5kaXNrLCBycSwgMCk7CisKKwkJaWYgKGJ1ZmZlcikKKwkJCSpidWZmbGVuID0gcnEtPmRhdGFfbGVuOworCisJCWZsYWdzID0gcnEtPmNtZF9mbGFnczsKKwkJYmxrX3B1dF9yZXF1ZXN0KHJxKTsKIAogCQkvKgogCQkgKiBGSVhNRTogd2Ugc2hvdWxkIHByb2JhYmx5IGFib3J0L3JldHJ5IG9yIHNvbWV0aGluZyBpbiBjYXNlIG9mCiAJCSAqIGZhaWx1cmUuCiAJCSAqLwotCQlpZiAocnEtPmNtZF9mbGFncyAmIFJFUV9GQUlMRUQpIHsKKwkJaWYgKGZsYWdzICYgUkVRX0ZBSUxFRCkgewogCQkJLyoKIAkJCSAqIFRoZSByZXF1ZXN0IGZhaWxlZC4gIFJldHJ5IGlmIGl0IHdhcyBkdWUgdG8gYSB1bml0CiAJCQkgKiBhdHRlbnRpb24gc3RhdHVzICh1c3VhbGx5IG1lYW5zIG1lZGlhIHdhcyBjaGFuZ2VkKS4KIAkJCSAqLwotCQkJc3RydWN0IHJlcXVlc3Rfc2Vuc2UgKnJlcWJ1ZiA9IHJxLT5zZW5zZTsKKwkJCXN0cnVjdCByZXF1ZXN0X3NlbnNlICpyZXFidWYgPSBzZW5zZTsKIAogCQkJaWYgKHJlcWJ1Zi0+c2Vuc2Vfa2V5ID09IFVOSVRfQVRURU5USU9OKQogCQkJCWNkcm9tX3Nhd19tZWRpYV9jaGFuZ2UoZHJpdmUpOwpAQCAtODg1LDEwICs4OTgsMTAgQEAKIAkJfQogCiAJCS8qIGVuZCBvZiByZXRyeSBsb29wICovCi0JfSB3aGlsZSAoKHJxLT5jbWRfZmxhZ3MgJiBSRVFfRkFJTEVEKSAmJiByZXRyaWVzID49IDApOworCX0gd2hpbGUgKChmbGFncyAmIFJFUV9GQUlMRUQpICYmIHJldHJpZXMgPj0gMCk7CiAKIAkvKiByZXR1cm4gYW4gZXJyb3IgaWYgdGhlIGNvbW1hbmQgZmFpbGVkICovCi0JcmV0dXJuIChycS0+Y21kX2ZsYWdzICYgUkVRX0ZBSUxFRCkgPyAtRUlPIDogMDsKKwlyZXR1cm4gKGZsYWdzICYgUkVRX0ZBSUxFRCkgPyAtRUlPIDogMDsKIH0KIAogLyoKQEAgLTEyNjgsMjMgKzEyODEsMjAgQEAKIAogaW50IGNkcm9tX2NoZWNrX3N0YXR1cyhpZGVfZHJpdmVfdCAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0X3NlbnNlICpzZW5zZSkKIHsKLQlzdHJ1Y3QgcmVxdWVzdCByZXE7CiAJc3RydWN0IGNkcm9tX2luZm8gKmluZm8gPSBkcml2ZS0+ZHJpdmVyX2RhdGE7CiAJc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkgPSAmaW5mby0+ZGV2aW5mbzsKKwl1bnNpZ25lZCBjaGFyIGNtZFtCTEtfTUFYX0NEQl07CiAKLQlpZGVfY2RfaW5pdF9ycShkcml2ZSwgJnJlcSk7Ci0KLQlyZXEuc2Vuc2UgPSBzZW5zZTsKLQlyZXEuY21kWzBdID0gR1BDTURfVEVTVF9VTklUX1JFQURZOwotCXJlcS5jbWRfZmxhZ3MgfD0gUkVRX1FVSUVUOworCW1lbXNldChjbWQsIDAsIEJMS19NQVhfQ0RCKTsKKwljbWRbMF0gPSBHUENNRF9URVNUX1VOSVRfUkVBRFk7CiAKIAkvKgogCSAqIFNhbnlvIDMgQ0QgY2hhbmdlciB1c2VzIGJ5dGUgNyBvZiBURVNUX1VOSVRfUkVBRFkgdG8gc3dpdGNoIENEcwogCSAqIGluc3RlYWQgb2Ygc3VwcG9ydGluZyB0aGUgTE9BRF9VTkxPQUQgb3Bjb2RlLgogCSAqLwotCXJlcS5jbWRbN10gPSBjZGktPnNhbnlvX3Nsb3QgJSAzOworCWNtZFs3XSA9IGNkaS0+c2FueW9fc2xvdCAlIDM7CiAKLQlyZXR1cm4gaWRlX2NkX3F1ZXVlX3BjKGRyaXZlLCAmcmVxKTsKKwlyZXR1cm4gaWRlX2NkX3F1ZXVlX3BjKGRyaXZlLCBjbWQsIDAsIE5VTEwsIDAsIHNlbnNlLCAwLCBSRVFfUVVJRVQpOwogfQogCiBzdGF0aWMgaW50IGNkcm9tX3JlYWRfY2FwYWNpdHkoaWRlX2RyaXZlX3QgKmRyaXZlLCB1bnNpZ25lZCBsb25nICpjYXBhY2l0eSwKQEAgLTEyOTcsMTcgKzEzMDcsMTQgQEAKIAl9IGNhcGJ1ZjsKIAogCWludCBzdGF0OwotCXN0cnVjdCByZXF1ZXN0IHJlcTsKKwl1bnNpZ25lZCBjaGFyIGNtZFtCTEtfTUFYX0NEQl07CisJdW5zaWduZWQgbGVuID0gc2l6ZW9mKGNhcGJ1Zik7CiAKLQlpZGVfY2RfaW5pdF9ycShkcml2ZSwgJnJlcSk7CisJbWVtc2V0KGNtZCwgMCwgQkxLX01BWF9DREIpOworCWNtZFswXSA9IEdQQ01EX1JFQURfQ0RWRF9DQVBBQ0lUWTsKIAotCXJlcS5zZW5zZSA9IHNlbnNlOwotCXJlcS5jbWRbMF0gPSBHUENNRF9SRUFEX0NEVkRfQ0FQQUNJVFk7Ci0JcmVxLmRhdGEgPSAoY2hhciAqKSZjYXBidWY7Ci0JcmVxLmRhdGFfbGVuID0gc2l6ZW9mKGNhcGJ1Zik7Ci0JcmVxLmNtZF9mbGFncyB8PSBSRVFfUVVJRVQ7Ci0KLQlzdGF0ID0gaWRlX2NkX3F1ZXVlX3BjKGRyaXZlLCAmcmVxKTsKKwlzdGF0ID0gaWRlX2NkX3F1ZXVlX3BjKGRyaXZlLCBjbWQsIDAsICZjYXBidWYsICZsZW4sIHNlbnNlLCAwLAorCQkJICAgICAgIFJFUV9RVUlFVCk7CiAJaWYgKHN0YXQgPT0gMCkgewogCQkqY2FwYWNpdHkgPSAxICsgYmUzMl90b19jcHUoY2FwYnVmLmxiYSk7CiAJCSpzZWN0b3JzX3Blcl9mcmFtZSA9CkBAIC0xMzIxLDI0ICsxMzI4LDIwIEBACiAJCQkJaW50IGZvcm1hdCwgY2hhciAqYnVmLCBpbnQgYnVmbGVuLAogCQkJCXN0cnVjdCByZXF1ZXN0X3NlbnNlICpzZW5zZSkKIHsKLQlzdHJ1Y3QgcmVxdWVzdCByZXE7CisJdW5zaWduZWQgY2hhciBjbWRbQkxLX01BWF9DREJdOwogCi0JaWRlX2NkX2luaXRfcnEoZHJpdmUsICZyZXEpOworCW1lbXNldChjbWQsIDAsIEJMS19NQVhfQ0RCKTsKIAotCXJlcS5zZW5zZSA9IHNlbnNlOwotCXJlcS5kYXRhID0gIGJ1ZjsKLQlyZXEuZGF0YV9sZW4gPSBidWZsZW47Ci0JcmVxLmNtZF9mbGFncyB8PSBSRVFfUVVJRVQ7Ci0JcmVxLmNtZFswXSA9IEdQQ01EX1JFQURfVE9DX1BNQV9BVElQOwotCXJlcS5jbWRbNl0gPSB0cmFja25vOwotCXJlcS5jbWRbN10gPSAoYnVmbGVuID4+IDgpOwotCXJlcS5jbWRbOF0gPSAoYnVmbGVuICYgMHhmZik7Ci0JcmVxLmNtZFs5XSA9IChmb3JtYXQgPDwgNik7CisJY21kWzBdID0gR1BDTURfUkVBRF9UT0NfUE1BX0FUSVA7CisJY21kWzZdID0gdHJhY2tubzsKKwljbWRbN10gPSAoYnVmbGVuID4+IDgpOworCWNtZFs4XSA9IChidWZsZW4gJiAweGZmKTsKKwljbWRbOV0gPSAoZm9ybWF0IDw8IDYpOwogCiAJaWYgKG1zZl9mbGFnKQotCQlyZXEuY21kWzFdID0gMjsKKwkJY21kWzFdID0gMjsKIAotCXJldHVybiBpZGVfY2RfcXVldWVfcGMoZHJpdmUsICZyZXEpOworCXJldHVybiBpZGVfY2RfcXVldWVfcGMoZHJpdmUsIGNtZCwgMCwgYnVmLCAmYnVmbGVuLCBzZW5zZSwgMCwgUkVRX1FVSUVUKTsKIH0KIAogLyogVHJ5IHRvIHJlYWQgdGhlIGVudGlyZSBUT0MgZm9yIHRoZSBkaXNrIGludG8gb3VyIGludGVybmFsIGJ1ZmZlci4gKi8KQEAgLTIxMDMsMTEgKzIxMDYsNiBAQAogCQkJZ290byBmYWlsZWQ7CiAJCX0KIAl9Ci0JaWYgKGRyaXZlLT5zY3NpKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gImlkZS1jZDogcGFzc2luZyBkcml2ZSAlcyB0byBpZGUtc2NzaSAiCi0JCQkJICJlbXVsYXRpb24uXG4iLCBkcml2ZS0+bmFtZSk7Ci0JCWdvdG8gZmFpbGVkOwotCX0KIAlpbmZvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGNkcm9tX2luZm8pLCBHRlBfS0VSTkVMKTsKIAlpZiAoaW5mbyA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiJXM6IENhbid0IGFsbG9jYXRlIGEgY2Ryb20gc3RydWN0dXJlXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLWNkLmggYi9kcml2ZXJzL2lkZS9pZGUtY2QuaAppbmRleCBhNTg4MDFjLi5mZTBlYTM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtY2QuaAorKysgYi9kcml2ZXJzL2lkZS9pZGUtY2QuaApAQCAtMTQzLDggKzE0Myw4IEBACiB2b2lkIGlkZV9jZF9sb2dfZXJyb3IoY29uc3QgY2hhciAqLCBzdHJ1Y3QgcmVxdWVzdCAqLCBzdHJ1Y3QgcmVxdWVzdF9zZW5zZSAqKTsKIAogLyogaWRlLWNkLmMgZnVuY3Rpb25zIHVzZWQgYnkgaWRlLWNkX2lvY3RsLmMgKi8KLXZvaWQgaWRlX2NkX2luaXRfcnEoaWRlX2RyaXZlX3QgKiwgc3RydWN0IHJlcXVlc3QgKik7Ci1pbnQgaWRlX2NkX3F1ZXVlX3BjKGlkZV9kcml2ZV90ICosIHN0cnVjdCByZXF1ZXN0ICopOworaW50IGlkZV9jZF9xdWV1ZV9wYyhpZGVfZHJpdmVfdCAqLCBjb25zdCB1bnNpZ25lZCBjaGFyICosIGludCwgdm9pZCAqLAorCQkgICAgdW5zaWduZWQgKiwgc3RydWN0IHJlcXVlc3Rfc2Vuc2UgKiwgaW50LCB1bnNpZ25lZCBpbnQpOwogaW50IGlkZV9jZF9yZWFkX3RvYyhpZGVfZHJpdmVfdCAqLCBzdHJ1Y3QgcmVxdWVzdF9zZW5zZSAqKTsKIGludCBpZGVfY2Ryb21fZ2V0X2NhcGFiaWxpdGllcyhpZGVfZHJpdmVfdCAqLCB1OCAqKTsKIHZvaWQgaWRlX2Nkcm9tX3VwZGF0ZV9zcGVlZChpZGVfZHJpdmVfdCAqLCB1OCAqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS1jZF9pb2N0bC5jIGIvZHJpdmVycy9pZGUvaWRlLWNkX2lvY3RsLmMKaW5kZXggNmQxNDdjZS4uMjRkMDAyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLWNkX2lvY3RsLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLWNkX2lvY3RsLmMKQEAgLTEwNCw4ICsxMDQsOCBAQAogewogCXN0cnVjdCBjZHJvbV9pbmZvICpjZCA9IGRyaXZlLT5kcml2ZXJfZGF0YTsKIAlzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSA9ICZjZC0+ZGV2aW5mbzsKLQlzdHJ1Y3QgcmVxdWVzdCByZXE7CiAJY2hhciBsb2VqID0gMHgwMjsKKwl1bnNpZ25lZCBjaGFyIGNtZFtCTEtfTUFYX0NEQl07CiAKIAlpZiAoKGNkLT5jZF9mbGFncyAmIElERV9DRF9GTEFHX05PX0VKRUNUKSAmJiAhZWplY3RmbGFnKQogCQlyZXR1cm4gLUVEUklWRV9DQU5UX0RPX1RISVM7CkBAIC0xMTQsMTcgKzExNCwxNiBAQAogCWlmICgoY2QtPmNkX2ZsYWdzICYgSURFX0NEX0ZMQUdfRE9PUl9MT0NLRUQpICYmIGVqZWN0ZmxhZykKIAkJcmV0dXJuIDA7CiAKLQlpZGVfY2RfaW5pdF9ycShkcml2ZSwgJnJlcSk7Ci0KIAkvKiBvbmx5IHRlbGwgZHJpdmUgdG8gY2xvc2UgdHJheSBpZiBvcGVuLCBpZiBpdCBjYW4gZG8gdGhhdCAqLwogCWlmIChlamVjdGZsYWcgJiYgKGNkaS0+bWFzayAmIENEQ19DTE9TRV9UUkFZKSkKIAkJbG9laiA9IDA7CiAKLQlyZXEuc2Vuc2UgPSBzZW5zZTsKLQlyZXEuY21kWzBdID0gR1BDTURfU1RBUlRfU1RPUF9VTklUOwotCXJlcS5jbWRbNF0gPSBsb2VqIHwgKGVqZWN0ZmxhZyAhPSAwKTsKKwltZW1zZXQoY21kLCAwLCBCTEtfTUFYX0NEQik7CiAKLQlyZXR1cm4gaWRlX2NkX3F1ZXVlX3BjKGRyaXZlLCAmcmVxKTsKKwljbWRbMF0gPSBHUENNRF9TVEFSVF9TVE9QX1VOSVQ7CisJY21kWzRdID0gbG9laiB8IChlamVjdGZsYWcgIT0gMCk7CisKKwlyZXR1cm4gaWRlX2NkX3F1ZXVlX3BjKGRyaXZlLCBjbWQsIDAsIE5VTEwsIDAsIHNlbnNlLCAwLCAwKTsKIH0KIAogLyogTG9jayB0aGUgZG9vciBpZiBMT0NLRkxBRyBpcyBub256ZXJvOyB1bmxvY2sgaXQgb3RoZXJ3aXNlLiAqLwpAQCAtMTM0LDcgKzEzMyw2IEBACiB7CiAJc3RydWN0IGNkcm9tX2luZm8gKmNkID0gZHJpdmUtPmRyaXZlcl9kYXRhOwogCXN0cnVjdCByZXF1ZXN0X3NlbnNlIG15X3NlbnNlOwotCXN0cnVjdCByZXF1ZXN0IHJlcTsKIAlpbnQgc3RhdDsKIAogCWlmIChzZW5zZSA9PSBOVUxMKQpAQCAtMTQ0LDExICsxNDIsMTUgQEAKIAlpZiAoY2QtPmNkX2ZsYWdzICYgSURFX0NEX0ZMQUdfTk9fRE9PUkxPQ0spIHsKIAkJc3RhdCA9IDA7CiAJfSBlbHNlIHsKLQkJaWRlX2NkX2luaXRfcnEoZHJpdmUsICZyZXEpOwotCQlyZXEuc2Vuc2UgPSBzZW5zZTsKLQkJcmVxLmNtZFswXSA9IEdQQ01EX1BSRVZFTlRfQUxMT1dfTUVESVVNX1JFTU9WQUw7Ci0JCXJlcS5jbWRbNF0gPSBsb2NrZmxhZyA/IDEgOiAwOwotCQlzdGF0ID0gaWRlX2NkX3F1ZXVlX3BjKGRyaXZlLCAmcmVxKTsKKwkJdW5zaWduZWQgY2hhciBjbWRbQkxLX01BWF9DREJdOworCisJCW1lbXNldChjbWQsIDAsIEJMS19NQVhfQ0RCKTsKKworCQljbWRbMF0gPSBHUENNRF9QUkVWRU5UX0FMTE9XX01FRElVTV9SRU1PVkFMOworCQljbWRbNF0gPSBsb2NrZmxhZyA/IDEgOiAwOworCisJCXN0YXQgPSBpZGVfY2RfcXVldWVfcGMoZHJpdmUsIGNtZCwgMCwgTlVMTCwgMCwKKwkJCQkgICAgICAgc2Vuc2UsIDAsIDApOwogCX0KIAogCS8qIElmIHdlIGdvdCBhbiBpbGxlZ2FsIGZpZWxkIGVycm9yLCB0aGUgZHJpdmUKQEAgLTIwNiwzMiArMjA4LDMwIEBACiB7CiAJaWRlX2RyaXZlX3QgKmRyaXZlID0gY2RpLT5oYW5kbGU7CiAJc3RydWN0IGNkcm9tX2luZm8gKmNkID0gZHJpdmUtPmRyaXZlcl9kYXRhOwotCXN0cnVjdCByZXF1ZXN0IHJxOwogCXN0cnVjdCByZXF1ZXN0X3NlbnNlIHNlbnNlOwogCXU4IGJ1ZltBVEFQSV9DQVBBQklMSVRJRVNfUEFHRV9TSVpFXTsKIAlpbnQgc3RhdDsKLQotCWlkZV9jZF9pbml0X3JxKGRyaXZlLCAmcnEpOwotCi0JcnEuc2Vuc2UgPSAmc2Vuc2U7CisJdW5zaWduZWQgY2hhciBjbWRbQkxLX01BWF9DREJdOwogCiAJaWYgKHNwZWVkID09IDApCiAJCXNwZWVkID0gMHhmZmZmOyAvKiBzZXQgdG8gbWF4ICovCiAJZWxzZQogCQlzcGVlZCAqPSAxNzc7ICAgLyogTnggdG8ga2J5dGVzL3MgKi8KIAotCXJxLmNtZFswXSA9IEdQQ01EX1NFVF9TUEVFRDsKKwltZW1zZXQoY21kLCAwLCBCTEtfTUFYX0NEQik7CisKKwljbWRbMF0gPSBHUENNRF9TRVRfU1BFRUQ7CiAJLyogUmVhZCBEcml2ZSBzcGVlZCBpbiBrYnl0ZXMvc2Vjb25kIE1TQi9MU0IgKi8KLQlycS5jbWRbMl0gPSAoc3BlZWQgPj4gOCkgJiAweGZmOwotCXJxLmNtZFszXSA9IHNwZWVkICYgMHhmZjsKKwljbWRbMl0gPSAoc3BlZWQgPj4gOCkgJiAweGZmOworCWNtZFszXSA9IHNwZWVkICYgMHhmZjsKIAlpZiAoKGNkaS0+bWFzayAmIChDRENfQ0RfUiB8IENEQ19DRF9SVyB8IENEQ19EVkRfUikpICE9CiAJICAgIChDRENfQ0RfUiB8IENEQ19DRF9SVyB8IENEQ19EVkRfUikpIHsKIAkJLyogV3JpdGUgRHJpdmUgc3BlZWQgaW4ga2J5dGVzL3NlY29uZCBNU0IvTFNCICovCi0JCXJxLmNtZFs0XSA9IChzcGVlZCA+PiA4KSAmIDB4ZmY7Ci0JCXJxLmNtZFs1XSA9IHNwZWVkICYgMHhmZjsKKwkJY21kWzRdID0gKHNwZWVkID4+IDgpICYgMHhmZjsKKwkJY21kWzVdID0gc3BlZWQgJiAweGZmOwogCX0KIAotCXN0YXQgPSBpZGVfY2RfcXVldWVfcGMoZHJpdmUsICZycSk7CisJc3RhdCA9IGlkZV9jZF9xdWV1ZV9wYyhkcml2ZSwgY21kLCAwLCBOVUxMLCAwLCAmc2Vuc2UsIDAsIDApOwogCiAJaWYgKCFpZGVfY2Ryb21fZ2V0X2NhcGFiaWxpdGllcyhkcml2ZSwgYnVmKSkgewogCQlpZGVfY2Ryb21fdXBkYXRlX3NwZWVkKGRyaXZlLCBidWYpOwpAQCAtMjY4LDIxICsyNjgsMTkgQEAKIHsKIAlpZGVfZHJpdmVfdCAqZHJpdmUgPSBjZGktPmhhbmRsZTsKIAlpbnQgc3RhdCwgbWNubGVuOwotCXN0cnVjdCByZXF1ZXN0IHJxOwogCWNoYXIgYnVmWzI0XTsKKwl1bnNpZ25lZCBjaGFyIGNtZFtCTEtfTUFYX0NEQl07CisJdW5zaWduZWQgbGVuID0gc2l6ZW9mKGJ1Zik7CiAKLQlpZGVfY2RfaW5pdF9ycShkcml2ZSwgJnJxKTsKKwltZW1zZXQoY21kLCAwLCBCTEtfTUFYX0NEQik7CiAKLQlycS5kYXRhID0gYnVmOwotCXJxLmRhdGFfbGVuID0gc2l6ZW9mKGJ1Zik7CisJY21kWzBdID0gR1BDTURfUkVBRF9TVUJDSEFOTkVMOworCWNtZFsxXSA9IDI7CQkvKiBNU0YgYWRkcmVzc2luZyAqLworCWNtZFsyXSA9IDB4NDA7CS8qIHJlcXVlc3Qgc3ViUSBkYXRhICovCisJY21kWzNdID0gMjsJCS8qIGZvcm1hdCAqLworCWNtZFs4XSA9IGxlbjsKIAotCXJxLmNtZFswXSA9IEdQQ01EX1JFQURfU1VCQ0hBTk5FTDsKLQlycS5jbWRbMV0gPSAyOwkJLyogTVNGIGFkZHJlc3NpbmcgKi8KLQlycS5jbWRbMl0gPSAweDQwOwkvKiByZXF1ZXN0IHN1YlEgZGF0YSAqLwotCXJxLmNtZFszXSA9IDI7CQkvKiBmb3JtYXQgKi8KLQlycS5jbWRbOF0gPSBzaXplb2YoYnVmKTsKLQotCXN0YXQgPSBpZGVfY2RfcXVldWVfcGMoZHJpdmUsICZycSk7CisJc3RhdCA9IGlkZV9jZF9xdWV1ZV9wYyhkcml2ZSwgY21kLCAwLCBidWYsICZsZW4sIE5VTEwsIDAsIDApOwogCWlmIChzdGF0KQogCQlyZXR1cm4gc3RhdDsKIApAQCAtMjk4LDE0ICsyOTYsMTQgQEAKIAlpZGVfZHJpdmVfdCAqZHJpdmUgPSBjZGktPmhhbmRsZTsKIAlzdHJ1Y3QgY2Ryb21faW5mbyAqY2QgPSBkcml2ZS0+ZHJpdmVyX2RhdGE7CiAJc3RydWN0IHJlcXVlc3Rfc2Vuc2Ugc2Vuc2U7Ci0Jc3RydWN0IHJlcXVlc3QgcmVxOworCXN0cnVjdCByZXF1ZXN0ICpycTsKIAlpbnQgcmV0OwogCi0JaWRlX2NkX2luaXRfcnEoZHJpdmUsICZyZXEpOwotCXJlcS5jbWRfdHlwZSA9IFJFUV9UWVBFX1NQRUNJQUw7Ci0JcmVxLmNtZF9mbGFncyA9IFJFUV9RVUlFVDsKLQlyZXQgPSBpZGVfZG9fZHJpdmVfY21kKGRyaXZlLCAmcmVxLCBpZGVfd2FpdCk7Ci0KKwlycSA9IGJsa19nZXRfcmVxdWVzdChkcml2ZS0+cXVldWUsIFJFQUQsIF9fR0ZQX1dBSVQpOworCXJxLT5jbWRfdHlwZSA9IFJFUV9UWVBFX1NQRUNJQUw7CisJcnEtPmNtZF9mbGFncyA9IFJFUV9RVUlFVDsKKwlyZXQgPSBibGtfZXhlY3V0ZV9ycShkcml2ZS0+cXVldWUsIGNkLT5kaXNrLCBycSwgMCk7CisJYmxrX3B1dF9yZXF1ZXN0KHJxKTsKIAkvKgogCSAqIEEgcmVzZXQgd2lsbCB1bmxvY2sgdGhlIGRvb3IuIElmIGl0IHdhcyBwcmV2aW91c2x5IGxvY2tlZCwKIAkgKiBsb2NrIGl0IGFnYWluLgpAQCAtMzUxLDggKzM0OSw4IEBACiAJc3RydWN0IGF0YXBpX3RvY19lbnRyeSAqZmlyc3RfdG9jLCAqbGFzdF90b2M7CiAJdW5zaWduZWQgbG9uZyBsYmFfc3RhcnQsIGxiYV9lbmQ7CiAJaW50IHN0YXQ7Ci0Jc3RydWN0IHJlcXVlc3QgcnE7CiAJc3RydWN0IHJlcXVlc3Rfc2Vuc2Ugc2Vuc2U7CisJdW5zaWduZWQgY2hhciBjbWRbQkxLX01BWF9DREJdOwogCiAJc3RhdCA9IGlkZV9jZF9nZXRfdG9jX2VudHJ5KGRyaXZlLCB0aS0+Y2R0aV90cmswLCAmZmlyc3RfdG9jKTsKIAlpZiAoc3RhdCkKQEAgLTM3MCwxNCArMzY4LDEzIEBACiAJaWYgKGxiYV9lbmQgPD0gbGJhX3N0YXJ0KQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlkZV9jZF9pbml0X3JxKGRyaXZlLCAmcnEpOworCW1lbXNldChjbWQsIDAsIEJMS19NQVhfQ0RCKTsKIAotCXJxLnNlbnNlID0gJnNlbnNlOwotCXJxLmNtZFswXSA9IEdQQ01EX1BMQVlfQVVESU9fTVNGOwotCWxiYV90b19tc2YobGJhX3N0YXJ0LCAgICZycS5jbWRbM10sICZycS5jbWRbNF0sICZycS5jbWRbNV0pOwotCWxiYV90b19tc2YobGJhX2VuZCAtIDEsICZycS5jbWRbNl0sICZycS5jbWRbN10sICZycS5jbWRbOF0pOworCWNtZFswXSA9IEdQQ01EX1BMQVlfQVVESU9fTVNGOworCWxiYV90b19tc2YobGJhX3N0YXJ0LCAgICZjbWRbM10sICZjbWRbNF0sICZjbWRbNV0pOworCWxiYV90b19tc2YobGJhX2VuZCAtIDEsICZjbWRbNl0sICZjbWRbN10sICZjbWRbOF0pOwogCi0JcmV0dXJuIGlkZV9jZF9xdWV1ZV9wYyhkcml2ZSwgJnJxKTsKKwlyZXR1cm4gaWRlX2NkX3F1ZXVlX3BjKGRyaXZlLCBjbWQsIDAsIE5VTEwsIDAsICZzZW5zZSwgMCwgMCk7CiB9CiAKIHN0YXRpYyBpbnQgaWRlX2NkX3JlYWRfdG9jaGRyKGlkZV9kcml2ZV90ICpkcml2ZSwgdm9pZCAqYXJnKQpAQCAtNDQ3LDggKzQ0NCw5IEBACiBpbnQgaWRlX2Nkcm9tX3BhY2tldChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwKIAkJCSAgICBzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgKmNnYykKIHsKLQlzdHJ1Y3QgcmVxdWVzdCByZXE7CiAJaWRlX2RyaXZlX3QgKmRyaXZlID0gY2RpLT5oYW5kbGU7CisJdW5zaWduZWQgaW50IGZsYWdzID0gMDsKKwl1bnNpZ25lZCBsZW4gPSBjZ2MtPmJ1ZmxlbjsKIAogCWlmIChjZ2MtPnRpbWVvdXQgPD0gMCkKIAkJY2djLT50aW1lb3V0ID0gQVRBUElfV0FJVF9QQzsKQEAgLTQ1NiwyNCArNDU0LDIxIEBACiAJLyogaGVyZSB3ZSBxdWV1ZSB0aGUgY29tbWFuZHMgZnJvbSB0aGUgdW5pZm9ybSBDRC1ST00KIAkgICBsYXllci4gdGhlIHBhY2tldCBtdXN0IGJlIGNvbXBsZXRlLCBhcyB3ZSBkbyBub3QKIAkgICB0b3VjaCBpdCBhdCBhbGwuICovCi0JaWRlX2NkX2luaXRfcnEoZHJpdmUsICZyZXEpOwogCiAJaWYgKGNnYy0+ZGF0YV9kaXJlY3Rpb24gPT0gQ0dDX0RBVEFfV1JJVEUpCi0JCXJlcS5jbWRfZmxhZ3MgfD0gUkVRX1JXOworCQlmbGFncyB8PSBSRVFfUlc7CiAKLQltZW1jcHkocmVxLmNtZCwgY2djLT5jbWQsIENEUk9NX1BBQ0tFVF9TSVpFKTsKIAlpZiAoY2djLT5zZW5zZSkKIAkJbWVtc2V0KGNnYy0+c2Vuc2UsIDAsIHNpemVvZihzdHJ1Y3QgcmVxdWVzdF9zZW5zZSkpOwotCXJlcS5kYXRhID0gY2djLT5idWZmZXI7Ci0JcmVxLmRhdGFfbGVuID0gY2djLT5idWZsZW47Ci0JcmVxLnRpbWVvdXQgPSBjZ2MtPnRpbWVvdXQ7CiAKIAlpZiAoY2djLT5xdWlldCkKLQkJcmVxLmNtZF9mbGFncyB8PSBSRVFfUVVJRVQ7CisJCWZsYWdzIHw9IFJFUV9RVUlFVDsKIAotCXJlcS5zZW5zZSA9IGNnYy0+c2Vuc2U7Ci0JY2djLT5zdGF0ID0gaWRlX2NkX3F1ZXVlX3BjKGRyaXZlLCAmcmVxKTsKKwljZ2MtPnN0YXQgPSBpZGVfY2RfcXVldWVfcGMoZHJpdmUsIGNnYy0+Y21kLAorCQkJCSAgICBjZ2MtPmRhdGFfZGlyZWN0aW9uID09IENHQ19EQVRBX1dSSVRFLAorCQkJCSAgICBjZ2MtPmJ1ZmZlciwgJmxlbiwKKwkJCQkgICAgY2djLT5zZW5zZSwgY2djLT50aW1lb3V0LCBmbGFncyk7CiAJaWYgKCFjZ2MtPnN0YXQpCi0JCWNnYy0+YnVmbGVuIC09IHJlcS5kYXRhX2xlbjsKKwkJY2djLT5idWZsZW4gLT0gbGVuOwogCXJldHVybiBjZ2MtPnN0YXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUtZGlzay5jIGIvZHJpdmVycy9pZGUvaWRlLWRpc2suYwppbmRleCA4ZTA4ZDA4Li41ZjQ5YTRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtZGlzay5jCisrKyBiL2RyaXZlcnMvaWRlL2lkZS1kaXNrLmMKQEAgLTE5OCw4ICsxOTgsNyBAQAogCX0KIAogCW1lbXNldCgmdGFzaywgMCwgc2l6ZW9mKHRhc2spKTsKLQl0YXNrLnRmX2ZsYWdzID0gSURFX1RGTEFHX05PX1NFTEVDVF9NQVNLOyAgLyogRklYTUU/ICovCi0JdGFzay50Zl9mbGFncyB8PSAoSURFX1RGTEFHX1RGIHwgSURFX1RGTEFHX0RFVklDRSk7CisJdGFzay50Zl9mbGFncyA9IElERV9URkxBR19URiB8IElERV9URkxBR19ERVZJQ0U7CiAKIAlpZiAoZHJpdmUtPnNlbGVjdC5iLmxiYSkgewogCQlpZiAobGJhNDgpIHsKQEAgLTYxNyw3ICs2MTYsOCBAQAogICovCiBzdGF0aWMgaW50IHNldF9tdWx0Y291bnQoaWRlX2RyaXZlX3QgKmRyaXZlLCBpbnQgYXJnKQogewotCXN0cnVjdCByZXF1ZXN0IHJxOworCXN0cnVjdCByZXF1ZXN0ICpycTsKKwlpbnQgZXJyb3I7CiAKIAlpZiAoYXJnIDwgMCB8fCBhcmcgPiBkcml2ZS0+aWQtPm1heF9tdWx0c2VjdCkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC02MjUsMTIgKzYyNSwxMyBAQAogCWlmIChkcml2ZS0+c3BlY2lhbC5iLnNldF9tdWx0bW9kZSkKIAkJcmV0dXJuIC1FQlVTWTsKIAotCWlkZV9pbml0X2RyaXZlX2NtZCgmcnEpOwotCXJxLmNtZF90eXBlID0gUkVRX1RZUEVfQVRBX1RBU0tGSUxFOworCXJxID0gYmxrX2dldF9yZXF1ZXN0KGRyaXZlLT5xdWV1ZSwgUkVBRCwgX19HRlBfV0FJVCk7CisJcnEtPmNtZF90eXBlID0gUkVRX1RZUEVfQVRBX1RBU0tGSUxFOwogCiAJZHJpdmUtPm11bHRfcmVxID0gYXJnOwogCWRyaXZlLT5zcGVjaWFsLmIuc2V0X211bHRtb2RlID0gMTsKLQkodm9pZClpZGVfZG9fZHJpdmVfY21kKGRyaXZlLCAmcnEsIGlkZV93YWl0KTsKKwllcnJvciA9IGJsa19leGVjdXRlX3JxKGRyaXZlLT5xdWV1ZSwgTlVMTCwgcnEsIDApOworCWJsa19wdXRfcmVxdWVzdChycSk7CiAKIAlyZXR1cm4gKGRyaXZlLT5tdWx0X2NvdW50ID09IGFyZykgPyAwIDogLUVJTzsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS1kbWEuYyBiL2RyaXZlcnMvaWRlL2lkZS1kbWEuYwppbmRleCA2NTNiMWFkLi43ZWU0NGY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtZG1hLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLWRtYS5jCkBAIC00NjMsNyArNDYzLDcgQEAKIAl9CiAKIAkvKiBQUkQgdGFibGUgKi8KLQlpZiAoaHdpZi0+bW1pbykKKwlpZiAoaHdpZi0+aG9zdF9mbGFncyAmIElERV9IRkxBR19NTUlPKQogCQl3cml0ZWwoaHdpZi0+ZG1hdGFibGVfZG1hLAogCQkgICAgICAgKHZvaWQgX19pb21lbSAqKShod2lmLT5kbWFfYmFzZSArIEFUQV9ETUFfVEFCTEVfT0ZTKSk7CiAJZWxzZQpAQCAtNjkyLDcgKzY5Miw3IEBACiAJaWRlX2h3aWZfdCAqaHdpZiA9IGRyaXZlLT5od2lmOwogCXU4IHNwZWVkOwogCi0JaWYgKG5vYXV0b2RtYSB8fCBkcml2ZS0+bm9kbWEgfHwgKGRyaXZlLT5pZC0+Y2FwYWJpbGl0eSAmIDEpID09IDApCisJaWYgKGRyaXZlLT5ub2RtYSB8fCAoZHJpdmUtPmlkLT5jYXBhYmlsaXR5ICYgMSkgPT0gMCkKIAkJcmV0dXJuIDA7CiAKIAkvKiBjb25zdWx0IHRoZSBsaXN0IG9mIGtub3duICJiYWQiIGRyaXZlcyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLWZsb3BweS5jIGIvZHJpdmVycy9pZGUvaWRlLWZsb3BweS5jCmluZGV4IGYwNWZiYzIuLmIzNjg5NDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2lkZS1mbG9wcHkuYworKysgYi9kcml2ZXJzL2lkZS9pZGUtZmxvcHB5LmMKQEAgLTI4NiwxMSArMjg2LDEyIEBACiB7CiAJc3RydWN0IGlkZV9mbG9wcHlfb2JqICpmbG9wcHkgPSBkcml2ZS0+ZHJpdmVyX2RhdGE7CiAKLQlpZGVfaW5pdF9kcml2ZV9jbWQocnEpOworCWJsa19ycV9pbml0KE5VTEwsIHJxKTsKIAlycS0+YnVmZmVyID0gKGNoYXIgKikgcGM7CiAJcnEtPmNtZF90eXBlID0gUkVRX1RZUEVfU1BFQ0lBTDsKKwlycS0+Y21kX2ZsYWdzIHw9IFJFUV9QUkVFTVBUOwogCXJxLT5ycV9kaXNrID0gZmxvcHB5LT5kaXNrOwotCSh2b2lkKSBpZGVfZG9fZHJpdmVfY21kKGRyaXZlLCBycSwgaWRlX3ByZWVtcHQpOworCWlkZV9kb19kcml2ZV9jbWQoZHJpdmUsIHJxKTsKIH0KIAogc3RhdGljIHN0cnVjdCBpZGVfYXRhcGlfcGMgKmlkZWZsb3BweV9uZXh0X3BjX3N0b3JhZ2UoaWRlX2RyaXZlX3QgKmRyaXZlKQpAQCAtMzExLDUwICszMTIsNDEgQEAKIAlyZXR1cm4gKCZmbG9wcHktPnJxX3N0YWNrW2Zsb3BweS0+cnFfc3RhY2tfaW5kZXgrK10pOwogfQogCi1zdGF0aWMgdm9pZCBpZGVmbG9wcHlfcmVxdWVzdF9zZW5zZV9jYWxsYmFjayhpZGVfZHJpdmVfdCAqZHJpdmUpCitzdGF0aWMgdm9pZCBpZGVfZmxvcHB5X2NhbGxiYWNrKGlkZV9kcml2ZV90ICpkcml2ZSkKIHsKIAlpZGVmbG9wcHlfZmxvcHB5X3QgKmZsb3BweSA9IGRyaXZlLT5kcml2ZXJfZGF0YTsKLQl1OCAqYnVmID0gZmxvcHB5LT5wYy0+YnVmOworCXN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjID0gZmxvcHB5LT5wYzsKKwlpbnQgdXB0b2RhdGUgPSBwYy0+ZXJyb3IgPyAwIDogMTsKIAogCWRlYnVnX2xvZygiUmVhY2hlZCAlc1xuIiwgX19mdW5jX18pOwogCi0JaWYgKCFmbG9wcHktPnBjLT5lcnJvcikgewotCQlmbG9wcHktPnNlbnNlX2tleSA9IGJ1ZlsyXSAmIDB4MEY7Ci0JCWZsb3BweS0+YXNjID0gYnVmWzEyXTsKLQkJZmxvcHB5LT5hc2NxID0gYnVmWzEzXTsKLQkJZmxvcHB5LT5wcm9ncmVzc19pbmRpY2F0aW9uID0gYnVmWzE1XSAmIDB4ODAgPwotCQkJKHUxNilnZXRfdW5hbGlnbmVkKCh1MTYgKikmYnVmWzE2XSkgOiAweDEwMDAwOworCWlmIChmbG9wcHktPmZhaWxlZF9wYyA9PSBwYykKKwkJZmxvcHB5LT5mYWlsZWRfcGMgPSBOVUxMOwogCi0JCWlmIChmbG9wcHktPmZhaWxlZF9wYykKLQkJCWRlYnVnX2xvZygicGMgPSAleCwgc2Vuc2Uga2V5ID0gJXgsIGFzYyA9ICV4LCIKLQkJCQkJIiBhc2NxID0gJXhcbiIsCi0JCQkJCWZsb3BweS0+ZmFpbGVkX3BjLT5jWzBdLAotCQkJCQlmbG9wcHktPnNlbnNlX2tleSwKLQkJCQkJZmxvcHB5LT5hc2MsCi0JCQkJCWZsb3BweS0+YXNjcSk7Ci0JCWVsc2UKKwlpZiAocGMtPmNbMF0gPT0gR1BDTURfUkVBRF8xMCB8fCBwYy0+Y1swXSA9PSBHUENNRF9XUklURV8xMCB8fAorCSAgICAocGMtPnJxICYmIGJsa19wY19yZXF1ZXN0KHBjLT5ycSkpKQorCQl1cHRvZGF0ZSA9IDE7IC8qIEZJWE1FICovCisJZWxzZSBpZiAocGMtPmNbMF0gPT0gR1BDTURfUkVRVUVTVF9TRU5TRSkgeworCQl1OCAqYnVmID0gZmxvcHB5LT5wYy0+YnVmOworCisJCWlmICghcGMtPmVycm9yKSB7CisJCQlmbG9wcHktPnNlbnNlX2tleSA9IGJ1ZlsyXSAmIDB4MEY7CisJCQlmbG9wcHktPmFzYyA9IGJ1ZlsxMl07CisJCQlmbG9wcHktPmFzY3EgPSBidWZbMTNdOworCQkJZmxvcHB5LT5wcm9ncmVzc19pbmRpY2F0aW9uID0gYnVmWzE1XSAmIDB4ODAgPworCQkJCSh1MTYpZ2V0X3VuYWxpZ25lZCgodTE2ICopJmJ1ZlsxNl0pIDogMHgxMDAwMDsKKworCQkJaWYgKGZsb3BweS0+ZmFpbGVkX3BjKQorCQkJCWRlYnVnX2xvZygicGMgPSAleCwgIiwgZmxvcHB5LT5mYWlsZWRfcGMtPmNbMF0pOworCiAJCQlkZWJ1Z19sb2coInNlbnNlIGtleSA9ICV4LCBhc2MgPSAleCwgYXNjcSA9ICV4XG4iLAotCQkJCQlmbG9wcHktPnNlbnNlX2tleSwKLQkJCQkJZmxvcHB5LT5hc2MsCi0JCQkJCWZsb3BweS0+YXNjcSk7Ci0KLQotCQlpZGVmbG9wcHlfZW5kX3JlcXVlc3QoZHJpdmUsIDEsIDApOwotCX0gZWxzZSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRXJyb3IgaW4gUkVRVUVTVCBTRU5TRSBpdHNlbGYgLSBBYm9ydGluZyIKLQkJCQkiIHJlcXVlc3QhXG4iKTsKLQkJaWRlZmxvcHB5X2VuZF9yZXF1ZXN0KGRyaXZlLCAwLCAwKTsKKwkJCQkgIGZsb3BweS0+c2Vuc2Vfa2V5LCBmbG9wcHktPmFzYywgZmxvcHB5LT5hc2NxKTsKKwkJfSBlbHNlCisJCQlwcmludGsoS0VSTl9FUlIgIkVycm9yIGluIFJFUVVFU1QgU0VOU0UgaXRzZWxmIC0gIgorCQkJCQkiQWJvcnRpbmcgcmVxdWVzdCFcbiIpOwogCX0KLX0KIAotLyogR2VuZXJhbCBwYWNrZXQgY29tbWFuZCBjYWxsYmFjayBmdW5jdGlvbi4gKi8KLXN0YXRpYyB2b2lkIGlkZWZsb3BweV9wY19jYWxsYmFjayhpZGVfZHJpdmVfdCAqZHJpdmUpCi17Ci0JaWRlZmxvcHB5X2Zsb3BweV90ICpmbG9wcHkgPSBkcml2ZS0+ZHJpdmVyX2RhdGE7Ci0KLQlkZWJ1Z19sb2coIlJlYWNoZWQgJXNcbiIsIF9fZnVuY19fKTsKLQotCWlkZWZsb3BweV9lbmRfcmVxdWVzdChkcml2ZSwgZmxvcHB5LT5wYy0+ZXJyb3IgPyAwIDogMSwgMCk7CisJaWRlZmxvcHB5X2VuZF9yZXF1ZXN0KGRyaXZlLCB1cHRvZGF0ZSwgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIGlkZWZsb3BweV9pbml0X3BjKHN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjKQpAQCAtMzY1LDcgKzM1Nyw3IEBACiAJcGMtPnJlcV94ZmVyID0gMDsKIAlwYy0+YnVmID0gcGMtPnBjX2J1ZjsKIAlwYy0+YnVmX3NpemUgPSBJREVGTE9QUFlfUENfQlVGRkVSX1NJWkU7Ci0JcGMtPmlkZWZsb3BweV9jYWxsYmFjayA9ICZpZGVmbG9wcHlfcGNfY2FsbGJhY2s7CisJcGMtPmNhbGxiYWNrID0gaWRlX2Zsb3BweV9jYWxsYmFjazsKIH0KIAogc3RhdGljIHZvaWQgaWRlZmxvcHB5X2NyZWF0ZV9yZXF1ZXN0X3NlbnNlX2NtZChzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYykKQEAgLTM3NCw3ICszNjYsNiBAQAogCXBjLT5jWzBdID0gR1BDTURfUkVRVUVTVF9TRU5TRTsKIAlwYy0+Y1s0XSA9IDI1NTsKIAlwYy0+cmVxX3hmZXIgPSAxODsKLQlwYy0+aWRlZmxvcHB5X2NhbGxiYWNrID0gJmlkZWZsb3BweV9yZXF1ZXN0X3NlbnNlX2NhbGxiYWNrOwogfQogCiAvKgpAQCAtMzk3LDE3NCArMzg4LDE5IEBACiBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGlkZWZsb3BweV9wY19pbnRyKGlkZV9kcml2ZV90ICpkcml2ZSkKIHsKIAlpZGVmbG9wcHlfZmxvcHB5X3QgKmZsb3BweSA9IGRyaXZlLT5kcml2ZXJfZGF0YTsKLQlpZGVfaHdpZl90ICpod2lmID0gZHJpdmUtPmh3aWY7Ci0Jc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMgPSBmbG9wcHktPnBjOwotCXN0cnVjdCByZXF1ZXN0ICpycSA9IHBjLT5ycTsKLQl4ZmVyX2Z1bmNfdCAqeGZlcmZ1bmM7Ci0JdW5zaWduZWQgaW50IHRlbXA7Ci0JaW50IGRtYV9lcnJvciA9IDA7Ci0JdTE2IGJjb3VudDsKLQl1OCBzdGF0LCBpcmVhc29uOwogCi0JZGVidWdfbG9nKCJSZWFjaGVkICVzIGludGVycnVwdCBoYW5kbGVyXG4iLCBfX2Z1bmNfXyk7Ci0KLQlpZiAocGMtPmZsYWdzICYgUENfRkxBR19ETUFfSU5fUFJPR1JFU1MpIHsKLQkJZG1hX2Vycm9yID0gaHdpZi0+ZG1hX29wcy0+ZG1hX2VuZChkcml2ZSk7Ci0JCWlmIChkbWFfZXJyb3IpIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IERNQSAlcyBlcnJvclxuIiwgZHJpdmUtPm5hbWUsCi0JCQkJCXJxX2RhdGFfZGlyKHJxKSA/ICJ3cml0ZSIgOiAicmVhZCIpOwotCQkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfRE1BX0VSUk9SOwotCQl9IGVsc2UgewotCQkJcGMtPnhmZXJyZWQgPSBwYy0+cmVxX3hmZXI7Ci0JCQlpZGVmbG9wcHlfdXBkYXRlX2J1ZmZlcnMoZHJpdmUsIHBjKTsKLQkJfQotCQlkZWJ1Z19sb2coIkRNQSBmaW5pc2hlZFxuIik7Ci0JfQotCi0JLyogQ2xlYXIgdGhlIGludGVycnVwdCAqLwotCXN0YXQgPSBpZGVfcmVhZF9zdGF0dXMoZHJpdmUpOwotCi0JLyogTm8gbW9yZSBpbnRlcnJ1cHRzICovCi0JaWYgKChzdGF0ICYgRFJRX1NUQVQpID09IDApIHsKLQkJZGVidWdfbG9nKCJQYWNrZXQgY29tbWFuZCBjb21wbGV0ZWQsICVkIGJ5dGVzIHRyYW5zZmVycmVkXG4iLAotCQkJCXBjLT54ZmVycmVkKTsKLQkJcGMtPmZsYWdzICY9IH5QQ19GTEFHX0RNQV9JTl9QUk9HUkVTUzsKLQotCQlsb2NhbF9pcnFfZW5hYmxlX2luX2hhcmRpcnEoKTsKLQotCQlpZiAoKHN0YXQgJiBFUlJfU1RBVCkgfHwgKHBjLT5mbGFncyAmIFBDX0ZMQUdfRE1BX0VSUk9SKSkgewotCQkJLyogRXJyb3IgZGV0ZWN0ZWQgKi8KLQkJCWRlYnVnX2xvZygiJXM6IEkvTyBlcnJvclxuIiwgZHJpdmUtPm5hbWUpOwotCQkJcnEtPmVycm9ycysrOwotCQkJaWYgKHBjLT5jWzBdID09IEdQQ01EX1JFUVVFU1RfU0VOU0UpIHsKLQkJCQlwcmludGsoS0VSTl9FUlIgImlkZS1mbG9wcHk6IEkvTyBlcnJvciBpbiAiCi0JCQkJCSJyZXF1ZXN0IHNlbnNlIGNvbW1hbmRcbiIpOwotCQkJCXJldHVybiBpZGVfZG9fcmVzZXQoZHJpdmUpOwotCQkJfQotCQkJLyogUmV0cnkgb3BlcmF0aW9uICovCi0JCQlpZGVmbG9wcHlfcmV0cnlfcGMoZHJpdmUpOwotCQkJLyogcXVldWVkLCBidXQgbm90IHN0YXJ0ZWQgKi8KLQkJCXJldHVybiBpZGVfc3RvcHBlZDsKLQkJfQotCQlwYy0+ZXJyb3IgPSAwOwotCQlpZiAoZmxvcHB5LT5mYWlsZWRfcGMgPT0gcGMpCi0JCQlmbG9wcHktPmZhaWxlZF9wYyA9IE5VTEw7Ci0JCS8qIENvbW1hbmQgZmluaXNoZWQgLSBDYWxsIHRoZSBjYWxsYmFjayBmdW5jdGlvbiAqLwotCQlwYy0+aWRlZmxvcHB5X2NhbGxiYWNrKGRyaXZlKTsKLQkJcmV0dXJuIGlkZV9zdG9wcGVkOwotCX0KLQotCWlmIChwYy0+ZmxhZ3MgJiBQQ19GTEFHX0RNQV9JTl9QUk9HUkVTUykgewotCQlwYy0+ZmxhZ3MgJj0gflBDX0ZMQUdfRE1BX0lOX1BST0dSRVNTOwotCQlwcmludGsoS0VSTl9FUlIgImlkZS1mbG9wcHk6IFRoZSBmbG9wcHkgd2FudHMgdG8gaXNzdWUgIgotCQkJIm1vcmUgaW50ZXJydXB0cyBpbiBETUEgbW9kZVxuIik7Ci0JCWlkZV9kbWFfb2ZmKGRyaXZlKTsKLQkJcmV0dXJuIGlkZV9kb19yZXNldChkcml2ZSk7Ci0JfQotCi0JLyogR2V0IHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gdHJhbnNmZXIgKi8KLQliY291bnQgPSAoaHdpZi0+SU5CKGh3aWYtPmlvX3BvcnRzLmxiYWhfYWRkcikgPDwgOCkgfAotCQkgIGh3aWYtPklOQihod2lmLT5pb19wb3J0cy5sYmFtX2FkZHIpOwotCS8qIG9uIHRoaXMgaW50ZXJydXB0ICovCi0JaXJlYXNvbiA9IGh3aWYtPklOQihod2lmLT5pb19wb3J0cy5uc2VjdF9hZGRyKTsKLQotCWlmIChpcmVhc29uICYgQ0QpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtZmxvcHB5OiBDb0QgIT0gMCBpbiAlc1xuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gaWRlX2RvX3Jlc2V0KGRyaXZlKTsKLQl9Ci0JaWYgKCgoaXJlYXNvbiAmIElPKSA9PSBJTykgPT0gISEocGMtPmZsYWdzICYgUENfRkxBR19XUklUSU5HKSkgewotCQkvKiBIb3BlZnVsbHksIHdlIHdpbGwgbmV2ZXIgZ2V0IGhlcmUgKi8KLQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtZmxvcHB5OiBXZSB3YW50ZWQgdG8gJXMsICIsCi0JCQkJKGlyZWFzb24gJiBJTykgPyAiV3JpdGUiIDogIlJlYWQiKTsKLQkJcHJpbnRrKEtFUk5fRVJSICJidXQgdGhlIGZsb3BweSB3YW50cyB1cyB0byAlcyAhXG4iLAotCQkJCShpcmVhc29uICYgSU8pID8gIlJlYWQiIDogIldyaXRlIik7Ci0JCXJldHVybiBpZGVfZG9fcmVzZXQoZHJpdmUpOwotCX0KLQlpZiAoIShwYy0+ZmxhZ3MgJiBQQ19GTEFHX1dSSVRJTkcpKSB7Ci0JCS8qIFJlYWRpbmcgLSBDaGVjayB0aGF0IHdlIGhhdmUgZW5vdWdoIHNwYWNlICovCi0JCXRlbXAgPSBwYy0+eGZlcnJlZCArIGJjb3VudDsKLQkJaWYgKHRlbXAgPiBwYy0+cmVxX3hmZXIpIHsKLQkJCWlmICh0ZW1wID4gcGMtPmJ1Zl9zaXplKSB7Ci0JCQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtZmxvcHB5OiBUaGUgZmxvcHB5IHdhbnRzICIKLQkJCQkJInRvIHNlbmQgdXMgbW9yZSBkYXRhIHRoYW4gZXhwZWN0ZWQgIgotCQkJCQkiLSBkaXNjYXJkaW5nIGRhdGFcbiIpOwotCQkJCWlkZV9wYWRfdHJhbnNmZXIoZHJpdmUsIDAsIGJjb3VudCk7Ci0KLQkJCQlpZGVfc2V0X2hhbmRsZXIoZHJpdmUsCi0JCQkJCQkmaWRlZmxvcHB5X3BjX2ludHIsCi0JCQkJCQlJREVGTE9QUFlfV0FJVF9DTUQsCi0JCQkJCQlOVUxMKTsKLQkJCQlyZXR1cm4gaWRlX3N0YXJ0ZWQ7Ci0JCQl9Ci0JCQlkZWJ1Z19sb2coIlRoZSBmbG9wcHkgd2FudHMgdG8gc2VuZCB1cyBtb3JlIGRhdGEgdGhhbiIKLQkJCQkJIiBleHBlY3RlZCAtIGFsbG93aW5nIHRyYW5zZmVyXG4iKTsKLQkJfQotCX0KLQlpZiAocGMtPmZsYWdzICYgUENfRkxBR19XUklUSU5HKQotCQl4ZmVyZnVuYyA9IGh3aWYtPm91dHB1dF9kYXRhOwotCWVsc2UKLQkJeGZlcmZ1bmMgPSBod2lmLT5pbnB1dF9kYXRhOwotCi0JaWYgKHBjLT5idWYpCi0JCXhmZXJmdW5jKGRyaXZlLCBOVUxMLCBwYy0+Y3VyX3BvcywgYmNvdW50KTsKLQllbHNlCi0JCWlkZV9mbG9wcHlfaW9fYnVmZmVycyhkcml2ZSwgcGMsIGJjb3VudCwKLQkJCQkgICAgICAhIShwYy0+ZmxhZ3MgJiBQQ19GTEFHX1dSSVRJTkcpKTsKLQotCS8qIFVwZGF0ZSB0aGUgY3VycmVudCBwb3NpdGlvbiAqLwotCXBjLT54ZmVycmVkICs9IGJjb3VudDsKLQlwYy0+Y3VyX3BvcyArPSBiY291bnQ7Ci0KLQkvKiBBbmQgc2V0IHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBhZ2FpbiAqLwotCWlkZV9zZXRfaGFuZGxlcihkcml2ZSwgJmlkZWZsb3BweV9wY19pbnRyLCBJREVGTE9QUFlfV0FJVF9DTUQsIE5VTEwpOwotCXJldHVybiBpZGVfc3RhcnRlZDsKKwlyZXR1cm4gaWRlX3BjX2ludHIoZHJpdmUsIGZsb3BweS0+cGMsIGlkZWZsb3BweV9wY19pbnRyLAorCQkJICAgSURFRkxPUFBZX1dBSVRfQ01ELCBOVUxMLCBpZGVmbG9wcHlfdXBkYXRlX2J1ZmZlcnMsCisJCQkgICBpZGVmbG9wcHlfcmV0cnlfcGMsIE5VTEwsIGlkZV9mbG9wcHlfaW9fYnVmZmVycyk7CiB9CiAKIC8qCi0gKiBUaGlzIGlzIHRoZSBvcmlnaW5hbCByb3V0aW5lIHRoYXQgZGlkIHRoZSBwYWNrZXQgdHJhbnNmZXIuCi0gKiBJdCBmYWlscyBhdCBoaWdoIHNwZWVkcyBvbiB0aGUgSW9tZWdhIFpJUCBkcml2ZSwgc28gdGhlcmUncyBhIHNsb3dlciB2ZXJzaW9uCi0gKiBmb3IgdGhhdCBkcml2ZSBiZWxvdy4gVGhlIGFsZ29yaXRobSBpcyBjaG9zZW4gYmFzZWQgb24gZHJpdmUgdHlwZQotICovCi1zdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGlkZWZsb3BweV90cmFuc2Zlcl9wYyhpZGVfZHJpdmVfdCAqZHJpdmUpCi17Ci0JaWRlX2h3aWZfdCAqaHdpZiA9IGRyaXZlLT5od2lmOwotCWlkZV9zdGFydHN0b3BfdCBzdGFydHN0b3A7Ci0JaWRlZmxvcHB5X2Zsb3BweV90ICpmbG9wcHkgPSBkcml2ZS0+ZHJpdmVyX2RhdGE7Ci0JdTggaXJlYXNvbjsKLQotCWlmIChpZGVfd2FpdF9zdGF0KCZzdGFydHN0b3AsIGRyaXZlLCBEUlFfU1RBVCwgQlVTWV9TVEFULCBXQUlUX1JFQURZKSkgewotCQlwcmludGsoS0VSTl9FUlIgImlkZS1mbG9wcHk6IFN0cmFuZ2UsIHBhY2tldCBjb21tYW5kICIKLQkJCQkiaW5pdGlhdGVkIHlldCBEUlEgaXNuJ3QgYXNzZXJ0ZWRcbiIpOwotCQlyZXR1cm4gc3RhcnRzdG9wOwotCX0KLQlpcmVhc29uID0gaHdpZi0+SU5CKGh3aWYtPmlvX3BvcnRzLm5zZWN0X2FkZHIpOwotCWlmICgoaXJlYXNvbiAmIENEKSA9PSAwIHx8IChpcmVhc29uICYgSU8pKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiaWRlLWZsb3BweTogKElPLENvRCkgIT0gKDAsMSkgd2hpbGUgIgotCQkJCSJpc3N1aW5nIGEgcGFja2V0IGNvbW1hbmRcbiIpOwotCQlyZXR1cm4gaWRlX2RvX3Jlc2V0KGRyaXZlKTsKLQl9Ci0KLQkvKiBTZXQgdGhlIGludGVycnVwdCByb3V0aW5lICovCi0JaWRlX3NldF9oYW5kbGVyKGRyaXZlLCAmaWRlZmxvcHB5X3BjX2ludHIsIElERUZMT1BQWV9XQUlUX0NNRCwgTlVMTCk7Ci0KLQkvKiBTZW5kIHRoZSBhY3R1YWwgcGFja2V0ICovCi0JaHdpZi0+b3V0cHV0X2RhdGEoZHJpdmUsIE5VTEwsIGZsb3BweS0+cGMtPmMsIDEyKTsKLQotCXJldHVybiBpZGVfc3RhcnRlZDsKLX0KLQotCi0vKgogICogV2hhdCB3ZSBoYXZlIGhlcmUgaXMgYSBjbGFzc2ljIGNhc2Ugb2YgYSB0b3AgaGFsZiAvIGJvdHRvbSBoYWxmIGludGVycnVwdAogICogc2VydmljZSByb3V0aW5lLiBJbiBpbnRlcnJ1cHQgbW9kZSwgdGhlIGRldmljZSBzZW5kcyBhbiBpbnRlcnJ1cHQgdG8gc2lnbmFsCiAgKiB0aGF0IGl0IGlzIHJlYWR5IHRvIHJlY2VpdmUgYSBwYWNrZXQuIEhvd2V2ZXIsIHdlIG5lZWQgdG8gZGVsYXkgYWJvdXQgMi0zCiAgKiB0aWNrcyBiZWZvcmUgaXNzdWluZyB0aGUgcGFja2V0IG9yIHdlIGdldHMgaW4gdHJvdWJsZS4KLSAqCi0gKiBTbywgZm9sbG93IGNhcmVmdWxseS4gdHJhbnNmZXJfcGMxIGlzIGNhbGxlZCBhcyBhbiBpbnRlcnJ1cHQgKG9yIGRpcmVjdGx5KS4KLSAqIEluIGVpdGhlciBjYXNlLCB3aGVuIHRoZSBkZXZpY2Ugc2F5cyBpdCdzIHJlYWR5IGZvciBhIHBhY2tldCwgd2Ugc2NoZWR1bGUKLSAqIHRoZSBwYWNrZXQgdHJhbnNmZXIgdG8gb2NjdXIgYWJvdXQgMi0zIHRpY2tzIGxhdGVyIGluIHRyYW5zZmVyX3BjMi4KICAqLwotc3RhdGljIGludCBpZGVmbG9wcHlfdHJhbnNmZXJfcGMyKGlkZV9kcml2ZV90ICpkcml2ZSkKK3N0YXRpYyBpbnQgaWRlZmxvcHB5X3RyYW5zZmVyX3BjKGlkZV9kcml2ZV90ICpkcml2ZSkKIHsKIAlpZGVmbG9wcHlfZmxvcHB5X3QgKmZsb3BweSA9IGRyaXZlLT5kcml2ZXJfZGF0YTsKIApAQCAtNTc1LDI0ICs0MTEsMTkgQEAKIAlyZXR1cm4gSURFRkxPUFBZX1dBSVRfQ01EOwogfQogCi1zdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGlkZWZsb3BweV90cmFuc2Zlcl9wYzEoaWRlX2RyaXZlX3QgKmRyaXZlKQotewotCWlkZV9od2lmX3QgKmh3aWYgPSBkcml2ZS0+aHdpZjsKLQlpZGVmbG9wcHlfZmxvcHB5X3QgKmZsb3BweSA9IGRyaXZlLT5kcml2ZXJfZGF0YTsKLQlpZGVfc3RhcnRzdG9wX3Qgc3RhcnRzdG9wOwotCXU4IGlyZWFzb247CiAKLQlpZiAoaWRlX3dhaXRfc3RhdCgmc3RhcnRzdG9wLCBkcml2ZSwgRFJRX1NUQVQsIEJVU1lfU1RBVCwgV0FJVF9SRUFEWSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtZmxvcHB5OiBTdHJhbmdlLCBwYWNrZXQgY29tbWFuZCAiCi0JCQkJImluaXRpYXRlZCB5ZXQgRFJRIGlzbid0IGFzc2VydGVkXG4iKTsKLQkJcmV0dXJuIHN0YXJ0c3RvcDsKLQl9Ci0JaXJlYXNvbiA9IGh3aWYtPklOQihod2lmLT5pb19wb3J0cy5uc2VjdF9hZGRyKTsKLQlpZiAoKGlyZWFzb24gJiBDRCkgPT0gMCB8fCAoaXJlYXNvbiAmIElPKSkgewotCQlwcmludGsoS0VSTl9FUlIgImlkZS1mbG9wcHk6IChJTyxDb0QpICE9ICgwLDEpICIKLQkJCQkid2hpbGUgaXNzdWluZyBhIHBhY2tldCBjb21tYW5kXG4iKTsKLQkJcmV0dXJuIGlkZV9kb19yZXNldChkcml2ZSk7Ci0JfQorLyoKKyAqIENhbGxlZCBhcyBhbiBpbnRlcnJ1cHQgKG9yIGRpcmVjdGx5KS4gV2hlbiB0aGUgZGV2aWNlIHNheXMgaXQncyByZWFkeSBmb3IgYQorICogcGFja2V0LCB3ZSBzY2hlZHVsZSB0aGUgcGFja2V0IHRyYW5zZmVyIHRvIG9jY3VyIGFib3V0IDItMyB0aWNrcyBsYXRlciBpbgorICogdHJhbnNmZXJfcGMuCisgKi8KK3N0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRlZmxvcHB5X3N0YXJ0X3BjX3RyYW5zZmVyKGlkZV9kcml2ZV90ICpkcml2ZSkKK3sKKwlpZGVmbG9wcHlfZmxvcHB5X3QgKmZsb3BweSA9IGRyaXZlLT5kcml2ZXJfZGF0YTsKKwlzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYyA9IGZsb3BweS0+cGM7CisJaWRlX2V4cGlyeV90ICpleHBpcnk7CisJdW5zaWduZWQgaW50IHRpbWVvdXQ7CisKIAkvKgogCSAqIFRoZSBmb2xsb3dpbmcgZGVsYXkgc29sdmVzIGEgcHJvYmxlbSB3aXRoIEFUQVBJIFppcCAxMDAgZHJpdmVzCiAJICogd2hlcmUgdGhlIEJ1c3kgZmxhZyB3YXMgYXBwYXJlbnRseSBiZWluZyBkZWFzc2VydGVkIGJlZm9yZSB0aGUKQEAgLTYwMSwxMCArNDMyLDE1IEBACiAJICogNDAgYW5kIDUwbXNlYyB3b3JrIHdlbGwuIGlkZWZsb3BweV9wY19pbnRyIHdpbGwgbm90IGJlIGFjdHVhbGx5CiAJICogdXNlZCB1bnRpbCBhZnRlciB0aGUgcGFja2V0IGlzIG1vdmVkIGluIGFib3V0IDUwIG1zZWMuCiAJICovCisJaWYgKHBjLT5mbGFncyAmIFBDX0ZMQUdfWklQX0RSSVZFKSB7CisJCXRpbWVvdXQgPSBmbG9wcHktPnRpY2tzOworCQlleHBpcnkgPSAmaWRlZmxvcHB5X3RyYW5zZmVyX3BjOworCX0gZWxzZSB7CisJCXRpbWVvdXQgPSBJREVGTE9QUFlfV0FJVF9DTUQ7CisJCWV4cGlyeSA9IE5VTEw7CisJfQogCi0JaWRlX3NldF9oYW5kbGVyKGRyaXZlLCAmaWRlZmxvcHB5X3BjX2ludHIsIGZsb3BweS0+dGlja3MsCi0JCQkmaWRlZmxvcHB5X3RyYW5zZmVyX3BjMik7Ci0JcmV0dXJuIGlkZV9zdGFydGVkOworCXJldHVybiBpZGVfdHJhbnNmZXJfcGMoZHJpdmUsIHBjLCBpZGVmbG9wcHlfcGNfaW50ciwgdGltZW91dCwgZXhwaXJ5KTsKIH0KIAogc3RhdGljIHZvaWQgaWRlX2Zsb3BweV9yZXBvcnRfZXJyb3IoaWRlZmxvcHB5X2Zsb3BweV90ICpmbG9wcHksCkBAIC02MjcsMTAgKzQ2Myw2IEBACiAJCXN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjKQogewogCWlkZWZsb3BweV9mbG9wcHlfdCAqZmxvcHB5ID0gZHJpdmUtPmRyaXZlcl9kYXRhOwotCWlkZV9od2lmX3QgKmh3aWYgPSBkcml2ZS0+aHdpZjsKLQlpZGVfaGFuZGxlcl90ICpwa3RfeGZlcl9yb3V0aW5lOwotCXUxNiBiY291bnQ7Ci0JdTggZG1hOwogCiAJaWYgKGZsb3BweS0+ZmFpbGVkX3BjID09IE5VTEwgJiYKIAkgICAgcGMtPmNbMF0gIT0gR1BDTURfUkVRVUVTVF9TRU5TRSkKQEAgLTY0NSw2NSArNDc3LDE2IEBACiAJCXBjLT5lcnJvciA9IElERUZMT1BQWV9FUlJPUl9HRU5FUkFMOwogCiAJCWZsb3BweS0+ZmFpbGVkX3BjID0gTlVMTDsKLQkJcGMtPmlkZWZsb3BweV9jYWxsYmFjayhkcml2ZSk7CisJCXBjLT5jYWxsYmFjayhkcml2ZSk7CiAJCXJldHVybiBpZGVfc3RvcHBlZDsKIAl9CiAKIAlkZWJ1Z19sb2coIlJldHJ5IG51bWJlciAtICVkXG4iLCBwYy0+cmV0cmllcyk7CiAKIAlwYy0+cmV0cmllcysrOwotCS8qIFdlIGhhdmVuJ3QgdHJhbnNmZXJyZWQgYW55IGRhdGEgeWV0ICovCi0JcGMtPnhmZXJyZWQgPSAwOwotCXBjLT5jdXJfcG9zID0gcGMtPmJ1ZjsKLQliY291bnQgPSBtaW4ocGMtPnJlcV94ZmVyLCA2MyAqIDEwMjQpOwogCi0JaWYgKHBjLT5mbGFncyAmIFBDX0ZMQUdfRE1BX0VSUk9SKSB7Ci0JCXBjLT5mbGFncyAmPSB+UENfRkxBR19ETUFfRVJST1I7Ci0JCWlkZV9kbWFfb2ZmKGRyaXZlKTsKLQl9Ci0JZG1hID0gMDsKLQotCWlmICgocGMtPmZsYWdzICYgUENfRkxBR19ETUFfUkVDT01NRU5ERUQpICYmIGRyaXZlLT51c2luZ19kbWEpCi0JCWRtYSA9ICFod2lmLT5kbWFfb3BzLT5kbWFfc2V0dXAoZHJpdmUpOwotCi0JaWRlX3BrdGNtZF90Zl9sb2FkKGRyaXZlLCBJREVfVEZMQUdfTk9fU0VMRUNUX01BU0sgfAotCQkJICAgSURFX1RGTEFHX09VVF9ERVZJQ0UsIGJjb3VudCwgZG1hKTsKLQotCWlmIChkbWEpIHsKLQkJLyogQmVnaW4gRE1BLCBpZiBuZWNlc3NhcnkgKi8KLQkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfRE1BX0lOX1BST0dSRVNTOwotCQlod2lmLT5kbWFfb3BzLT5kbWFfc3RhcnQoZHJpdmUpOwotCX0KLQotCS8qIENhbiB3ZSB0cmFuc2ZlciB0aGUgcGFja2V0IHdoZW4gd2UgZ2V0IHRoZSBpbnRlcnJ1cHQgb3Igd2FpdD8gKi8KLQlpZiAoZmxvcHB5LT5mbGFncyAmIElERUZMT1BQWV9GTEFHX1pJUF9EUklWRSkgewotCQkvKiB3YWl0ICovCi0JCXBrdF94ZmVyX3JvdXRpbmUgPSAmaWRlZmxvcHB5X3RyYW5zZmVyX3BjMTsKLQl9IGVsc2UgewotCQkvKiBpbW1lZGlhdGUgKi8KLQkJcGt0X3hmZXJfcm91dGluZSA9ICZpZGVmbG9wcHlfdHJhbnNmZXJfcGM7Ci0JfQotCi0JaWYgKGZsb3BweS0+ZmxhZ3MgJiBJREVGTE9QUFlfRkxBR19EUlFfSU5URVJSVVBUKSB7Ci0JCS8qIElzc3VlIHRoZSBwYWNrZXQgY29tbWFuZCAqLwotCQlpZGVfZXhlY3V0ZV9jb21tYW5kKGRyaXZlLCBXSU5fUEFDS0VUQ01ELAotCQkJCXBrdF94ZmVyX3JvdXRpbmUsCi0JCQkJSURFRkxPUFBZX1dBSVRfQ01ELAotCQkJCU5VTEwpOwotCQlyZXR1cm4gaWRlX3N0YXJ0ZWQ7Ci0JfSBlbHNlIHsKLQkJLyogSXNzdWUgdGhlIHBhY2tldCBjb21tYW5kICovCi0JCWlkZV9leGVjdXRlX3BrdF9jbWQoZHJpdmUpOwotCQlyZXR1cm4gKCpwa3RfeGZlcl9yb3V0aW5lKSAoZHJpdmUpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgaWRlZmxvcHB5X3J3X2NhbGxiYWNrKGlkZV9kcml2ZV90ICpkcml2ZSkKLXsKLQlkZWJ1Z19sb2coIlJlYWNoZWQgJXNcbiIsIF9fZnVuY19fKTsKLQotCWlkZWZsb3BweV9lbmRfcmVxdWVzdChkcml2ZSwgMSwgMCk7Ci0JcmV0dXJuOworCXJldHVybiBpZGVfaXNzdWVfcGMoZHJpdmUsIHBjLCBpZGVmbG9wcHlfc3RhcnRfcGNfdHJhbnNmZXIsCisJCQkgICAgSURFRkxPUFBZX1dBSVRfQ01ELCBOVUxMKTsKIH0KIAogc3RhdGljIHZvaWQgaWRlZmxvcHB5X2NyZWF0ZV9wcmV2ZW50X2NtZChzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYywgaW50IHByZXZlbnQpCkBAIC04MDAsMjEgKzU4MywxOSBAQAogCXB1dF91bmFsaWduZWQoY3B1X3RvX2JlMTYoYmxvY2tzKSwgKHVuc2lnbmVkIHNob3J0ICopJnBjLT5jWzddKTsKIAlwdXRfdW5hbGlnbmVkKGNwdV90b19iZTMyKGJsb2NrKSwgKHVuc2lnbmVkIGludCAqKSAmcGMtPmNbMl0pOwogCi0JcGMtPmlkZWZsb3BweV9jYWxsYmFjayA9ICZpZGVmbG9wcHlfcndfY2FsbGJhY2s7CiAJcGMtPnJxID0gcnE7CiAJcGMtPmJfY291bnQgPSBjbWQgPT0gUkVBRCA/IDAgOiBycS0+YmlvLT5iaV9zaXplOwogCWlmIChycS0+Y21kX2ZsYWdzICYgUkVRX1JXKQogCQlwYy0+ZmxhZ3MgfD0gUENfRkxBR19XUklUSU5HOwogCXBjLT5idWYgPSBOVUxMOwogCXBjLT5yZXFfeGZlciA9IHBjLT5idWZfc2l6ZSA9IGJsb2NrcyAqIGZsb3BweS0+YmxvY2tfc2l6ZTsKLQlwYy0+ZmxhZ3MgfD0gUENfRkxBR19ETUFfUkVDT01NRU5ERUQ7CisJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfRE1BX09LOwogfQogCiBzdGF0aWMgdm9pZCBpZGVmbG9wcHlfYmxvY2twY19jbWQoaWRlZmxvcHB5X2Zsb3BweV90ICpmbG9wcHksCiAJCXN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpCiB7CiAJaWRlZmxvcHB5X2luaXRfcGMocGMpOwotCXBjLT5pZGVmbG9wcHlfY2FsbGJhY2sgPSAmaWRlZmxvcHB5X3J3X2NhbGxiYWNrOwogCW1lbWNweShwYy0+YywgcnEtPmNtZCwgc2l6ZW9mKHBjLT5jKSk7CiAJcGMtPnJxID0gcnE7CiAJcGMtPmJfY291bnQgPSBycS0+ZGF0YV9sZW47CkBAIC04MjIsNyArNjAzLDcgQEAKIAkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfV1JJVElORzsKIAlwYy0+YnVmID0gcnEtPmRhdGE7CiAJaWYgKHJxLT5iaW8pCi0JCXBjLT5mbGFncyB8PSBQQ19GTEFHX0RNQV9SRUNPTU1FTkRFRDsKKwkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfRE1BX09LOwogCS8qCiAJICogcG9zc2libHkgcHJvYmxlbWF0aWMsIGRvZXNuJ3QgbG9vayBsaWtlIGlkZS1mbG9wcHkgY29ycmVjdGx5CiAJICogaGFuZGxlZCBzY2F0dGVyZWQgcmVxdWVzdHMgaWYgZG1hIGZhaWxzLi4uCkBAIC04NzUsNyArNjU2LDE0IEBACiAJCXJldHVybiBpZGVfc3RvcHBlZDsKIAl9CiAKKwlpZiAoZmxvcHB5LT5mbGFncyAmIElERUZMT1BQWV9GTEFHX0RSUV9JTlRFUlJVUFQpCisJCXBjLT5mbGFncyB8PSBQQ19GTEFHX0RSUV9JTlRFUlJVUFQ7CisKKwlpZiAoZmxvcHB5LT5mbGFncyAmIElERUZMT1BQWV9GTEFHX1pJUF9EUklWRSkKKwkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfWklQX0RSSVZFOworCiAJcGMtPnJxID0gcnE7CisKIAlyZXR1cm4gaWRlZmxvcHB5X2lzc3VlX3BjKGRyaXZlLCBwYyk7CiB9CiAKQEAgLTg4NiwxNCArNjc0LDE2IEBACiBzdGF0aWMgaW50IGlkZWZsb3BweV9xdWV1ZV9wY190YWlsKGlkZV9kcml2ZV90ICpkcml2ZSwgc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMpCiB7CiAJc3RydWN0IGlkZV9mbG9wcHlfb2JqICpmbG9wcHkgPSBkcml2ZS0+ZHJpdmVyX2RhdGE7Ci0Jc3RydWN0IHJlcXVlc3QgcnE7CisJc3RydWN0IHJlcXVlc3QgKnJxOworCWludCBlcnJvcjsKIAotCWlkZV9pbml0X2RyaXZlX2NtZCgmcnEpOwotCXJxLmJ1ZmZlciA9IChjaGFyICopIHBjOwotCXJxLmNtZF90eXBlID0gUkVRX1RZUEVfU1BFQ0lBTDsKLQlycS5ycV9kaXNrID0gZmxvcHB5LT5kaXNrOworCXJxID0gYmxrX2dldF9yZXF1ZXN0KGRyaXZlLT5xdWV1ZSwgUkVBRCwgX19HRlBfV0FJVCk7CisJcnEtPmJ1ZmZlciA9IChjaGFyICopIHBjOworCXJxLT5jbWRfdHlwZSA9IFJFUV9UWVBFX1NQRUNJQUw7CisJZXJyb3IgPSBibGtfZXhlY3V0ZV9ycShkcml2ZS0+cXVldWUsIGZsb3BweS0+ZGlzaywgcnEsIDApOworCWJsa19wdXRfcmVxdWVzdChycSk7CiAKLQlyZXR1cm4gaWRlX2RvX2RyaXZlX2NtZChkcml2ZSwgJnJxLCBpZGVfd2FpdCk7CisJcmV0dXJuIGVycm9yOwogfQogCiAvKgpAQCAtMTYyMiwxMSArMTQxMiw2IEBACiAJCQkJIiBvZiBpZGUtZmxvcHB5XG4iLCBkcml2ZS0+bmFtZSk7CiAJCWdvdG8gZmFpbGVkOwogCX0KLQlpZiAoZHJpdmUtPnNjc2kpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLWZsb3BweTogcGFzc2luZyBkcml2ZSAlcyB0byBpZGUtc2NzaSIKLQkJCQkiIGVtdWxhdGlvbi5cbiIsIGRyaXZlLT5uYW1lKTsKLQkJZ290byBmYWlsZWQ7Ci0JfQogCWZsb3BweSA9IGt6YWxsb2Moc2l6ZW9mKGlkZWZsb3BweV9mbG9wcHlfdCksIEdGUF9LRVJORUwpOwogCWlmICghZmxvcHB5KSB7CiAJCXByaW50ayhLRVJOX0VSUiAiaWRlLWZsb3BweTogJXM6IENhbid0IGFsbG9jYXRlIGEgZmxvcHB5IgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLWlvLmMgYi9kcml2ZXJzL2lkZS9pZGUtaW8uYwppbmRleCA2OTY1MjUzLi4yODA1Nzc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtaW8uYworKysgYi9kcml2ZXJzL2lkZS9pZGUtaW8uYwpAQCAtMzU4LDMxICszNTgsNiBAQAogCiBFWFBPUlRfU1lNQk9MKGlkZV9lbmRfZHJpdmVfY21kKTsKIAotLyoqCi0gKgl0cnlfdG9fZmx1c2hfbGVmdG92ZXJfZGF0YQktCWZsdXNoIGp1bmsKLSAqCUBkcml2ZTogZHJpdmUgdG8gZmx1c2gKLSAqCi0gKgl0cnlfdG9fZmx1c2hfbGVmdG92ZXJfZGF0YSgpIGlzIGludm9rZWQgaW4gcmVzcG9uc2UgdG8gYSBkcml2ZQotICoJdW5leHBlY3RlZGx5IGhhdmluZyBpdHMgRFJRX1NUQVQgYml0IHNldC4gIEFzIGFuIGFsdGVybmF0aXZlIHRvCi0gKglyZXNldHRpbmcgdGhlIGRyaXZlLCB0aGlzIHJvdXRpbmUgdHJpZXMgdG8gY2xlYXIgdGhlIGNvbmRpdGlvbgotICoJYnkgcmVhZCBhIHNlY3RvcidzIHdvcnRoIG9mIGRhdGEgZnJvbSB0aGUgZHJpdmUuICBPZiBjb3Vyc2UsCi0gKgl0aGlzIG1heSBub3QgaGVscCBpZiB0aGUgZHJpdmUgaXMgKndhaXRpbmcqIGZvciBkYXRhIGZyb20gKnVzKi4KLSAqLwotc3RhdGljIHZvaWQgdHJ5X3RvX2ZsdXNoX2xlZnRvdmVyX2RhdGEgKGlkZV9kcml2ZV90ICpkcml2ZSkKLXsKLQlpbnQgaSA9IChkcml2ZS0+bXVsdF9jb3VudCA/IGRyaXZlLT5tdWx0X2NvdW50IDogMSkgKiBTRUNUT1JfV09SRFM7Ci0KLQlpZiAoZHJpdmUtPm1lZGlhICE9IGlkZV9kaXNrKQotCQlyZXR1cm47Ci0Jd2hpbGUgKGkgPiAwKSB7Ci0JCXUzMiBidWZmZXJbMTZdOwotCQl1MzIgd2NvdW50ID0gKGkgPiAxNikgPyAxNiA6IGk7Ci0KLQkJaSAtPSB3Y291bnQ7Ci0JCWRyaXZlLT5od2lmLT5pbnB1dF9kYXRhKGRyaXZlLCBOVUxMLCBidWZmZXIsIHdjb3VudCAqIDQpOwotCX0KLX0KLQogc3RhdGljIHZvaWQgaWRlX2tpbGxfcnEoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpCiB7CiAJaWYgKHJxLT5ycV9kaXNrKSB7CkBAIC00MjIsOCArMzk3LDExIEBACiAJfQogCiAJaWYgKChzdGF0ICYgRFJRX1NUQVQpICYmIHJxX2RhdGFfZGlyKHJxKSA9PSBSRUFEICYmCi0JICAgIChod2lmLT5ob3N0X2ZsYWdzICYgSURFX0hGTEFHX0VSUk9SX1NUT1BTX0ZJRk8pID09IDApCi0JCXRyeV90b19mbHVzaF9sZWZ0b3Zlcl9kYXRhKGRyaXZlKTsKKwkgICAgKGh3aWYtPmhvc3RfZmxhZ3MgJiBJREVfSEZMQUdfRVJST1JfU1RPUFNfRklGTykgPT0gMCkgeworCQlpbnQgbnNlY3QgPSBkcml2ZS0+bXVsdF9jb3VudCA/IGRyaXZlLT5tdWx0X2NvdW50IDogMTsKKworCQlpZGVfcGFkX3RyYW5zZmVyKGRyaXZlLCBSRUFELCBuc2VjdCAqIFNFQ1RPUl9TSVpFKTsKKwl9CiAKIAlpZiAocnEtPmVycm9ycyA+PSBFUlJPUl9NQVggfHwgYmxrX25vcmV0cnlfcmVxdWVzdChycSkpIHsKIAkJaWRlX2tpbGxfcnEoZHJpdmUsIHJxKTsKQEAgLTQ1OSw3ICs0MzcsNyBAQAogCiAJaWYgKGlkZV9yZWFkX3N0YXR1cyhkcml2ZSkgJiAoQlVTWV9TVEFUIHwgRFJRX1NUQVQpKQogCQkvKiBmb3JjZSBhbiBhYm9ydCAqLwotCQlod2lmLT5PVVRCU1lOQyhkcml2ZSwgV0lOX0lETEVJTU1FRElBVEUsCisJCWh3aWYtPk9VVEJTWU5DKGh3aWYsIFdJTl9JRExFSU1NRURJQVRFLAogCQkJICAgICAgIGh3aWYtPmlvX3BvcnRzLmNvbW1hbmRfYWRkcik7CiAKIAlpZiAocnEtPmVycm9ycyA+PSBFUlJPUl9NQVgpIHsKQEAgLTE1MzksODggKzE1MTcsMzAgQEAKIH0KIAogLyoqCi0gKglpZGVfaW5pdF9kcml2ZV9jbWQJLQlpbml0aWFsaXplIGEgZHJpdmUgY29tbWFuZCByZXF1ZXN0Ci0gKglAcnE6IHJlcXVlc3Qgb2JqZWN0Ci0gKgotICoJSW5pdGlhbGl6ZSBhIHJlcXVlc3QgYmVmb3JlIHdlIGZpbGwgaXQgaW4gYW5kIHNlbmQgaXQgZG93biB0bwotICoJaWRlX2RvX2RyaXZlX2NtZC4gQ29tbWFuZHMgbXVzdCBiZSBzZXQgdXAgYnkgdGhpcyBmdW5jdGlvbi4gUmlnaHQKLSAqCW5vdyBpdCBkb2Vzbid0IGRvIGEgbG90LCBidXQgaWYgdGhhdCBjaGFuZ2VzIGFidXNlcnMgd2lsbCBoYXZlIGEKLSAqCW5hc3R5IHN1cnByaXNlLgotICovCi0KLXZvaWQgaWRlX2luaXRfZHJpdmVfY21kIChzdHJ1Y3QgcmVxdWVzdCAqcnEpCi17Ci0JYmxrX3JxX2luaXQoTlVMTCwgcnEpOwotfQotCi1FWFBPUlRfU1lNQk9MKGlkZV9pbml0X2RyaXZlX2NtZCk7Ci0KLS8qKgogICoJaWRlX2RvX2RyaXZlX2NtZAktCWlzc3VlIElERSBzcGVjaWFsIGNvbW1hbmQKICAqCUBkcml2ZTogZGV2aWNlIHRvIGlzc3VlIGNvbW1hbmQKICAqCUBycTogcmVxdWVzdCB0byBpc3N1ZQotICoJQGFjdGlvbjogYWN0aW9uIGZvciBwcm9jZXNzaW5nCiAgKgogICoJVGhpcyBmdW5jdGlvbiBpc3N1ZXMgYSBzcGVjaWFsIElERSBkZXZpY2UgcmVxdWVzdAogICoJb250byB0aGUgcmVxdWVzdCBxdWV1ZS4KICAqCi0gKglJZiBhY3Rpb24gaXMgaWRlX3dhaXQsIHRoZW4gdGhlIHJxIGlzIHF1ZXVlZCBhdCB0aGUgZW5kIG9mIHRoZQotICoJcmVxdWVzdCBxdWV1ZSwgYW5kIHRoZSBmdW5jdGlvbiBzbGVlcHMgdW50aWwgaXQgaGFzIGJlZW4gcHJvY2Vzc2VkLgotICoJVGhpcyBpcyBmb3IgdXNlIHdoZW4gaW52b2tlZCBmcm9tIGFuIGlvY3RsIGhhbmRsZXIuCi0gKgotICoJSWYgYWN0aW9uIGlzIGlkZV9wcmVlbXB0LCB0aGVuIHRoZSBycSBpcyBxdWV1ZWQgYXQgdGhlIGhlYWQgb2YKLSAqCXRoZSByZXF1ZXN0IHF1ZXVlLCBkaXNwbGFjaW5nIHRoZSBjdXJyZW50bHktYmVpbmctcHJvY2Vzc2VkCi0gKglyZXF1ZXN0IGFuZCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nCi0gKglmb3IgdGhlIG5ldyBycSB0byBiZSBjb21wbGV0ZWQuICBUaGlzIGlzIFZFUlkgREFOR0VST1VTLCBhbmQgaXMKLSAqCWludGVuZGVkIGZvciBjYXJlZnVsIHVzZSBieSB0aGUgQVRBUEkgdGFwZS9jZHJvbSBkcml2ZXIgY29kZS4KLSAqCi0gKglJZiBhY3Rpb24gaXMgaWRlX2VuZCwgdGhlbiB0aGUgcnEgaXMgcXVldWVkIGF0IHRoZSBlbmQgb2YgdGhlCi0gKglyZXF1ZXN0IHF1ZXVlLCBhbmQgdGhlIGZ1bmN0aW9uIHJldHVybnMgaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nCi0gKglmb3IgdGhlIG5ldyBycSB0byBiZSBjb21wbGV0ZWQuIFRoaXMgaXMgYWdhaW4gaW50ZW5kZWQgZm9yIGNhcmVmdWwKLSAqCXVzZSBieSB0aGUgQVRBUEkgdGFwZS9jZHJvbSBkcml2ZXIgY29kZS4KKyAqCXRoZSBycSBpcyBxdWV1ZWQgYXQgdGhlIGhlYWQgb2YgdGhlIHJlcXVlc3QgcXVldWUsIGRpc3BsYWNpbmcKKyAqCXRoZSBjdXJyZW50bHktYmVpbmctcHJvY2Vzc2VkIHJlcXVlc3QgYW5kIHRoaXMgZnVuY3Rpb24KKyAqCXJldHVybnMgaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgbmV3IHJxIHRvIGJlCisgKgljb21wbGV0ZWQuICBUaGlzIGlzIFZFUlkgREFOR0VST1VTLCBhbmQgaXMgaW50ZW5kZWQgZm9yCisgKgljYXJlZnVsIHVzZSBieSB0aGUgQVRBUEkgdGFwZS9jZHJvbSBkcml2ZXIgY29kZS4KICAqLwotIAotaW50IGlkZV9kb19kcml2ZV9jbWQgKGlkZV9kcml2ZV90ICpkcml2ZSwgc3RydWN0IHJlcXVlc3QgKnJxLCBpZGVfYWN0aW9uX3QgYWN0aW9uKQorCit2b2lkIGlkZV9kb19kcml2ZV9jbWQoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpZGVfaHdncm91cF90ICpod2dyb3VwID0gSFdHUk9VUChkcml2ZSk7Ci0JREVDTEFSRV9DT01QTEVUSU9OX09OU1RBQ0sod2FpdCk7Ci0JaW50IHdoZXJlID0gRUxFVkFUT1JfSU5TRVJUX0JBQ0ssIGVycjsKLQlpbnQgbXVzdF93YWl0ID0gKGFjdGlvbiA9PSBpZGVfd2FpdCB8fCBhY3Rpb24gPT0gaWRlX2hlYWRfd2FpdCk7Ci0KLQlycS0+ZXJyb3JzID0gMDsKLQotCS8qCi0JICogd2UgbmVlZCB0byBob2xkIGFuIGV4dHJhIHJlZmVyZW5jZSB0byByZXF1ZXN0IGZvciBzYWZlIGluc3BlY3Rpb24KLQkgKiBhZnRlciBjb21wbGV0aW9uCi0JICovCi0JaWYgKG11c3Rfd2FpdCkgewotCQlycS0+cmVmX2NvdW50Kys7Ci0JCXJxLT5lbmRfaW9fZGF0YSA9ICZ3YWl0OwotCQlycS0+ZW5kX2lvID0gYmxrX2VuZF9zeW5jX3JxOwotCX0KIAogCXNwaW5fbG9ja19pcnFzYXZlKCZpZGVfbG9jaywgZmxhZ3MpOwotCWlmIChhY3Rpb24gPT0gaWRlX3ByZWVtcHQpCi0JCWh3Z3JvdXAtPnJxID0gTlVMTDsKLQlpZiAoYWN0aW9uID09IGlkZV9wcmVlbXB0IHx8IGFjdGlvbiA9PSBpZGVfaGVhZF93YWl0KSB7Ci0JCXdoZXJlID0gRUxFVkFUT1JfSU5TRVJUX0ZST05UOwotCQlycS0+Y21kX2ZsYWdzIHw9IFJFUV9QUkVFTVBUOwotCX0KLQlfX2Vsdl9hZGRfcmVxdWVzdChkcml2ZS0+cXVldWUsIHJxLCB3aGVyZSwgMCk7Ci0JaWRlX2RvX3JlcXVlc3QoaHdncm91cCwgSURFX05PX0lSUSk7CisJaHdncm91cC0+cnEgPSBOVUxMOworCV9fZWx2X2FkZF9yZXF1ZXN0KGRyaXZlLT5xdWV1ZSwgcnEsIEVMRVZBVE9SX0lOU0VSVF9GUk9OVCwgMSk7CisJX19nZW5lcmljX3VucGx1Z19kZXZpY2UoZHJpdmUtPnF1ZXVlKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpZGVfbG9jaywgZmxhZ3MpOwotCi0JZXJyID0gMDsKLQlpZiAobXVzdF93YWl0KSB7Ci0JCXdhaXRfZm9yX2NvbXBsZXRpb24oJndhaXQpOwotCQlpZiAocnEtPmVycm9ycykKLQkJCWVyciA9IC1FSU87Ci0KLQkJYmxrX3B1dF9yZXF1ZXN0KHJxKTsKLQl9Ci0KLQlyZXR1cm4gZXJyOwogfQogCiBFWFBPUlRfU1lNQk9MKGlkZV9kb19kcml2ZV9jbWQpOwpAQCAtMTYzNyw2ICsxNTU3LDggQEAKIAl0YXNrLnRmLmxiYWggICAgPSAoYmNvdW50ID4+IDgpICYgMHhmZjsKIAogCWlkZV90Zl9kdW1wKGRyaXZlLT5uYW1lLCAmdGFzay50Zik7CisJaWRlX3NldF9pcnEoZHJpdmUsIDEpOworCVNFTEVDVF9NQVNLKGRyaXZlLCAwKTsKIAlkcml2ZS0+aHdpZi0+dGZfbG9hZChkcml2ZSwgJnRhc2spOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUtaW9wcy5jIGIvZHJpdmVycy9pZGUvaWRlLWlvcHMuYwppbmRleCAwZGFmOTIzLi44MGFkNGYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtaW9wcy5jCisrKyBiL2RyaXZlcnMvaWRlL2lkZS1pb3BzLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAlvdXRiKHZhbCwgcG9ydCk7CiB9CiAKLXN0YXRpYyB2b2lkIGlkZV9vdXRic3luYyAoaWRlX2RyaXZlX3QgKmRyaXZlLCB1OCBhZGRyLCB1bnNpZ25lZCBsb25nIHBvcnQpCitzdGF0aWMgdm9pZCBpZGVfb3V0YnN5bmMoaWRlX2h3aWZfdCAqaHdpZiwgdTggYWRkciwgdW5zaWduZWQgbG9uZyBwb3J0KQogewogCW91dGIoYWRkciwgcG9ydCk7CiB9CkBAIC02OCw3ICs2OCw3IEBACiAJd3JpdGViKHZhbHVlLCAodm9pZCBfX2lvbWVtICopIHBvcnQpOwogfQogCi1zdGF0aWMgdm9pZCBpZGVfbW1fb3V0YnN5bmMgKGlkZV9kcml2ZV90ICpkcml2ZSwgdTggdmFsdWUsIHVuc2lnbmVkIGxvbmcgcG9ydCkKK3N0YXRpYyB2b2lkIGlkZV9tbV9vdXRic3luYyhpZGVfaHdpZl90ICpod2lmLCB1OCB2YWx1ZSwgdW5zaWduZWQgbG9uZyBwb3J0KQogewogCXdyaXRlYih2YWx1ZSwgKHZvaWQgX19pb21lbSAqKSBwb3J0KTsKIH0KQEAgLTk1LDcgKzk1LDcgQEAKIAlod2lmLT5PVVRCKGRyaXZlLT5zZWxlY3QuYWxsLCBod2lmLT5pb19wb3J0cy5kZXZpY2VfYWRkcik7CiB9CiAKLXN0YXRpYyB2b2lkIFNFTEVDVF9NQVNLKGlkZV9kcml2ZV90ICpkcml2ZSwgaW50IG1hc2spCit2b2lkIFNFTEVDVF9NQVNLKGlkZV9kcml2ZV90ICpkcml2ZSwgaW50IG1hc2spCiB7CiAJY29uc3Qgc3RydWN0IGlkZV9wb3J0X29wcyAqcG9ydF9vcHMgPSBkcml2ZS0+aHdpZi0+cG9ydF9vcHM7CiAKQEAgLTEyMCwxMSArMTIwLDYgQEAKIAlpZiAodGFzay0+dGZfZmxhZ3MgJiBJREVfVEZMQUdfRkxBR0dFRCkKIAkJSElISSA9IDB4RkY7CiAKLQlpZGVfc2V0X2lycShkcml2ZSwgMSk7Ci0KLQlpZiAoKHRhc2stPnRmX2ZsYWdzICYgSURFX1RGTEFHX05PX1NFTEVDVF9NQVNLKSA9PSAwKQotCQlTRUxFQ1RfTUFTSyhkcml2ZSwgMCk7Ci0KIAlpZiAodGFzay0+dGZfZmxhZ3MgJiBJREVfVEZMQUdfT1VUX0RBVEEpIHsKIAkJdTE2IGRhdGEgPSAodGYtPmhvYl9kYXRhIDw8IDgpIHwgdGYtPmRhdGE7CiAKQEAgLTE5MSw3ICsxODYsNyBAQAogCX0KIAogCS8qIGJlIHN1cmUgd2UncmUgbG9va2luZyBhdCB0aGUgbG93IG9yZGVyIGJpdHMgKi8KLQl0Zl9vdXRiKGRyaXZlLT5jdGwgJiB+MHg4MCwgaW9fcG9ydHMtPmN0bF9hZGRyKTsKKwl0Zl9vdXRiKEFUQV9ERVZDVExfT0JTICYgfjB4ODAsIGlvX3BvcnRzLT5jdGxfYWRkcik7CiAKIAlpZiAodGFzay0+dGZfZmxhZ3MgJiBJREVfVEZMQUdfSU5fTlNFQ1QpCiAJCXRmLT5uc2VjdCAgPSB0Zl9pbmIoaW9fcG9ydHMtPm5zZWN0X2FkZHIpOwpAQCAtMjA1LDcgKzIwMCw3IEBACiAJCXRmLT5kZXZpY2UgPSB0Zl9pbmIoaW9fcG9ydHMtPmRldmljZV9hZGRyKTsKIAogCWlmICh0YXNrLT50Zl9mbGFncyAmIElERV9URkxBR19MQkE0OCkgewotCQl0Zl9vdXRiKGRyaXZlLT5jdGwgfCAweDgwLCBpb19wb3J0cy0+Y3RsX2FkZHIpOworCQl0Zl9vdXRiKEFUQV9ERVZDVExfT0JTIHwgMHg4MCwgaW9fcG9ydHMtPmN0bF9hZGRyKTsKIAogCQlpZiAodGFzay0+dGZfZmxhZ3MgJiBJREVfVEZMQUdfSU5fSE9CX0ZFQVRVUkUpCiAJCQl0Zi0+aG9iX2ZlYXR1cmUgPSB0Zl9pbmIoaW9fcG9ydHMtPmZlYXR1cmVfYWRkcik7CkBAIC02ODksOSArNjg0LDkgQEAKIAkgKi8KIAogCVNFTEVDVF9NQVNLKGRyaXZlLCAxKTsKLQlpZGVfc2V0X2lycShkcml2ZSwgMSk7CisJaWRlX3NldF9pcnEoZHJpdmUsIDApOwogCW1zbGVlcCg1MCk7Ci0JaHdpZi0+T1VUQlNZTkMoZHJpdmUsIFdJTl9JREVOVElGWSwgaHdpZi0+aW9fcG9ydHMuY29tbWFuZF9hZGRyKTsKKwlod2lmLT5PVVRCU1lOQyhod2lmLCBXSU5fSURFTlRJRlksIGh3aWYtPmlvX3BvcnRzLmNvbW1hbmRfYWRkcik7CiAJdGltZW91dCA9IGppZmZpZXMgKyBXQUlUX1dPUlNUQ0FTRTsKIAlkbyB7CiAJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQpKSB7CkBAIC03NDQsOSArNzM5LDYgQEAKIAlpbnQgZXJyb3IgPSAwOwogCXU4IHN0YXQ7CiAKLS8vCXdoaWxlIChIV0dST1VQKGRyaXZlKS0+YnVzeSkKLS8vCQltc2xlZXAoNTApOwotCiAjaWZkZWYgQ09ORklHX0JMS19ERVZfSURFRE1BCiAJaWYgKGh3aWYtPmRtYV9vcHMpCS8qIGNoZWNrIGlmIGhvc3Qgc3VwcG9ydHMgRE1BICovCiAJCWh3aWYtPmRtYV9vcHMtPmRtYV9ob3N0X3NldChkcml2ZSwgMCk7CkBAIC03ODEsNyArNzczLDcgQEAKIAlpZGVfc2V0X2lycShkcml2ZSwgMCk7CiAJaHdpZi0+T1VUQihzcGVlZCwgaW9fcG9ydHMtPm5zZWN0X2FkZHIpOwogCWh3aWYtPk9VVEIoU0VURkVBVFVSRVNfWEZFUiwgaW9fcG9ydHMtPmZlYXR1cmVfYWRkcik7Ci0JaHdpZi0+T1VUQlNZTkMoZHJpdmUsIFdJTl9TRVRGRUFUVVJFUywgaW9fcG9ydHMtPmNvbW1hbmRfYWRkcik7CisJaHdpZi0+T1VUQlNZTkMoaHdpZiwgV0lOX1NFVEZFQVRVUkVTLCBpb19wb3J0cy0+Y29tbWFuZF9hZGRyKTsKIAlpZiAoZHJpdmUtPnF1aXJrX2xpc3QgPT0gMikKIAkJaWRlX3NldF9pcnEoZHJpdmUsIDEpOwogCkBAIC04ODksNyArODgxLDcgQEAKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZpZGVfbG9jaywgZmxhZ3MpOwogCV9faWRlX3NldF9oYW5kbGVyKGRyaXZlLCBoYW5kbGVyLCB0aW1lb3V0LCBleHBpcnkpOwotCWh3aWYtPk9VVEJTWU5DKGRyaXZlLCBjbWQsIGh3aWYtPmlvX3BvcnRzLmNvbW1hbmRfYWRkcik7CisJaHdpZi0+T1VUQlNZTkMoaHdpZiwgY21kLCBod2lmLT5pb19wb3J0cy5jb21tYW5kX2FkZHIpOwogCS8qCiAJICogRHJpdmUgdGFrZXMgNDAwblMgdG8gcmVzcG9uZCwgd2UgbXVzdCBhdm9pZCB0aGUgSVJRIGJlaW5nCiAJICogc2VydmljZWQgYmVmb3JlIHRoYXQuCkBAIC05MDcsNyArODk5LDcgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmlkZV9sb2NrLCBmbGFncyk7Ci0JaHdpZi0+T1VUQlNZTkMoZHJpdmUsIFdJTl9QQUNLRVRDTUQsIGh3aWYtPmlvX3BvcnRzLmNvbW1hbmRfYWRkcik7CisJaHdpZi0+T1VUQlNZTkMoaHdpZiwgV0lOX1BBQ0tFVENNRCwgaHdpZi0+aW9fcG9ydHMuY29tbWFuZF9hZGRyKTsKIAluZGVsYXkoNDAwKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpZGVfbG9jaywgZmxhZ3MpOwogfQpAQCAtMTEwMiw3ICsxMDk0LDcgQEAKIAkJcHJlX3Jlc2V0KGRyaXZlKTsKIAkJU0VMRUNUX0RSSVZFKGRyaXZlKTsKIAkJdWRlbGF5ICgyMCk7Ci0JCWh3aWYtPk9VVEJTWU5DKGRyaXZlLCBXSU5fU1JTVCwgaW9fcG9ydHMtPmNvbW1hbmRfYWRkcik7CisJCWh3aWYtPk9VVEJTWU5DKGh3aWYsIFdJTl9TUlNULCBpb19wb3J0cy0+Y29tbWFuZF9hZGRyKTsKIAkJbmRlbGF5KDQwMCk7CiAJCWh3Z3JvdXAtPnBvbGxfdGltZW91dCA9IGppZmZpZXMgKyBXQUlUX1dPUlNUQ0FTRTsKIAkJaHdncm91cC0+cG9sbGluZyA9IDE7CkBAIC0xMTMzLDE0ICsxMTI1LDE0IEBACiAJICogcmVjb3ZlciBmcm9tIHJlc2V0IHZlcnkgcXVpY2tseSwgc2F2aW5nIHVzIHRoZSBmaXJzdCA1MG1zIHdhaXQgdGltZS4KIAkgKi8KIAkvKiBzZXQgU1JTVCBhbmQgbklFTiAqLwotCWh3aWYtPk9VVEJTWU5DKGRyaXZlLCBkcml2ZS0+Y3RsfDYsIGlvX3BvcnRzLT5jdGxfYWRkcik7CisJaHdpZi0+T1VUQlNZTkMoaHdpZiwgQVRBX0RFVkNUTF9PQlMgfCA2LCBpb19wb3J0cy0+Y3RsX2FkZHIpOwogCS8qIG1vcmUgdGhhbiBlbm91Z2ggdGltZSAqLwogCXVkZWxheSgxMCk7CiAJaWYgKGRyaXZlLT5xdWlya19saXN0ID09IDIpCi0JCWN0bCA9IGRyaXZlLT5jdGw7CS8qIGNsZWFyIFNSU1QgYW5kIG5JRU4gKi8KKwkJY3RsID0gQVRBX0RFVkNUTF9PQlM7CQkvKiBjbGVhciBTUlNUIGFuZCBuSUVOICovCiAJZWxzZQotCQljdGwgPSBkcml2ZS0+Y3RsIHwgMjsJLyogY2xlYXIgU1JTVCwgbGVhdmUgbklFTiAqLwotCWh3aWYtPk9VVEJTWU5DKGRyaXZlLCBjdGwsIGlvX3BvcnRzLT5jdGxfYWRkcik7CisJCWN0bCA9IEFUQV9ERVZDVExfT0JTIHwgMjsJLyogY2xlYXIgU1JTVCwgbGVhdmUgbklFTiAqLworCWh3aWYtPk9VVEJTWU5DKGh3aWYsIGN0bCwgaW9fcG9ydHMtPmN0bF9hZGRyKTsKIAkvKiBtb3JlIHRoYW4gZW5vdWdoIHRpbWUgKi8KIAl1ZGVsYXkoMTApOwogCWh3Z3JvdXAtPnBvbGxfdGltZW91dCA9IGppZmZpZXMgKyBXQUlUX1dPUlNUQ0FTRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS1wcm9iZS5jIGIvZHJpdmVycy9pZGUvaWRlLXByb2JlLmMKaW5kZXggMzgwZmEwYy4uZDIxZTUxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLXByb2JlLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLXByb2JlLmMKQEAgLTI5Myw3ICsyOTMsNyBAQAogCQlod2lmLT5PVVRCKDAsIGlvX3BvcnRzLT5mZWF0dXJlX2FkZHIpOwogCiAJLyogYXNrIGRyaXZlIGZvciBJRCAqLwotCWh3aWYtPk9VVEJTWU5DKGRyaXZlLCBjbWQsIGlvX3BvcnRzLT5jb21tYW5kX2FkZHIpOworCWh3aWYtPk9VVEJTWU5DKGh3aWYsIGNtZCwgaHdpZi0+aW9fcG9ydHMuY29tbWFuZF9hZGRyKTsKIAogCXRpbWVvdXQgPSAoKGNtZCA9PSBXSU5fSURFTlRJRlkpID8gV0FJVF9XT1JTVENBU0UgOiBXQUlUX1BJREVOVElGWSkgLyAyOwogCXRpbWVvdXQgKz0gamlmZmllczsKQEAgLTQ3OCw5ICs0NzgsOSBAQAogCQkJcHJpbnRrKEtFUk5fRVJSICIlczogbm8gcmVzcG9uc2UgKHN0YXR1cyA9IDB4JTAyeCksICIKIAkJCQkJInJlc2V0dGluZyBkcml2ZVxuIiwgZHJpdmUtPm5hbWUsIHN0YXQpOwogCQkJbXNsZWVwKDUwKTsKLQkJCWh3aWYtPk9VVEIoZHJpdmUtPnNlbGVjdC5hbGwsIGlvX3BvcnRzLT5kZXZpY2VfYWRkcik7CisJCQlTRUxFQ1RfRFJJVkUoZHJpdmUpOwogCQkJbXNsZWVwKDUwKTsKLQkJCWh3aWYtPk9VVEJTWU5DKGRyaXZlLCBXSU5fU1JTVCwgaW9fcG9ydHMtPmNvbW1hbmRfYWRkcik7CisJCQlod2lmLT5PVVRCU1lOQyhod2lmLCBXSU5fU1JTVCwgaW9fcG9ydHMtPmNvbW1hbmRfYWRkcik7CiAJCQkodm9pZClpZGVfYnVzeV9zbGVlcChod2lmKTsKIAkJCXJjID0gdHJ5X3RvX2lkZW50aWZ5KGRyaXZlLCBjbWQpOwogCQl9CkBAIC01MTYsNyArNTE2LDcgQEAKIAlwcmludGsoIiVzOiBlbmFibGluZyAlcyAtLSAiLCBod2lmLT5uYW1lLCBkcml2ZS0+aWQtPm1vZGVsKTsKIAlTRUxFQ1RfRFJJVkUoZHJpdmUpOwogCW1zbGVlcCg1MCk7Ci0JaHdpZi0+T1VUQlNZTkMoZHJpdmUsIEVYQUJZVEVfRU5BQkxFX05FU1QsIGh3aWYtPmlvX3BvcnRzLmNvbW1hbmRfYWRkcik7CisJaHdpZi0+T1VUQlNZTkMoaHdpZiwgRVhBQllURV9FTkFCTEVfTkVTVCwgaHdpZi0+aW9fcG9ydHMuY29tbWFuZF9hZGRyKTsKIAogCWlmIChpZGVfYnVzeV9zbGVlcChod2lmKSkgewogCQlwcmludGsoS0VSTl9DT05UICJmYWlsZWQgKHRpbWVvdXQpXG4iKTsKQEAgLTY0Niw4ICs2NDYsNiBAQAogCQlnb3RvIG91dDsKIAl9CiAKLQlnZXRfZGV2aWNlKCZod2lmLT5nZW5kZXYpOwotCiAJaHdpZi0+cG9ydGRldiA9IGRldmljZV9jcmVhdGVfZHJ2ZGF0YShpZGVfcG9ydF9jbGFzcywgJmh3aWYtPmdlbmRldiwKIAkJCQkJICAgICAgTUtERVYoMCwgMCksIGh3aWYsIGh3aWYtPm5hbWUpOwogCWlmIChJU19FUlIoaHdpZi0+cG9ydGRldikpIHsKQEAgLTEwNjcsNyArMTA2NSw3IEBACiAKIAkJaWYgKGlvX3BvcnRzLT5jdGxfYWRkcikKIAkJCS8qIGNsZWFyIG5JRU4gKi8KLQkJCWh3aWYtPk9VVEIoMHgwOCwgaW9fcG9ydHMtPmN0bF9hZGRyKTsKKwkJCWh3aWYtPk9VVEJTWU5DKGh3aWYsIEFUQV9ERVZDVExfT0JTLCBpb19wb3J0cy0+Y3RsX2FkZHIpOwogCiAJCWlmIChyZXF1ZXN0X2lycShod2lmLT5pcnEsJmlkZV9pbnRyLHNhLGh3aWYtPm5hbWUsaHdncm91cCkpCiAJICAgICAgIAkJZ290byBvdXRfdW5saW5rOwpAQCAtMTIyMCwxNiArMTIxOCwxMiBAQAogCWNvbXBsZXRlKCZkcml2ZS0+Z2VuZGV2X3JlbF9jb21wKTsKIH0KIAotI2lmbmRlZiBpZGVfZGVmYXVsdF9pcnEKLSNkZWZpbmUgaWRlX2RlZmF1bHRfaXJxKGlycSkgMAotI2VuZGlmCi0KIHN0YXRpYyBpbnQgaHdpZl9pbml0KGlkZV9od2lmX3QgKmh3aWYpCiB7CiAJaW50IG9sZF9pcnE7CiAKIAlpZiAoIWh3aWYtPmlycSkgewotCQlod2lmLT5pcnEgPSBpZGVfZGVmYXVsdF9pcnEoaHdpZi0+aW9fcG9ydHMuZGF0YV9hZGRyKTsKKwkJaHdpZi0+aXJxID0gX19pZGVfZGVmYXVsdF9pcnEoaHdpZi0+aW9fcG9ydHMuZGF0YV9hZGRyKTsKIAkJaWYgKCFod2lmLT5pcnEpIHsKIAkJCXByaW50aygiJXM6IERJU0FCTEVELCBOTyBJUlFcbiIsIGh3aWYtPm5hbWUpOwogCQkJcmV0dXJuIDA7CkBAIC0xMjU5LDcgKzEyNTMsNyBAQAogCSAqCUl0IGZhaWxlZCB0byBpbml0aWFsaXNlLiBGaW5kIHRoZSBkZWZhdWx0IElSUSBmb3IgCiAJICoJdGhpcyBwb3J0IGFuZCB0cnkgdGhhdC4KIAkgKi8KLQlod2lmLT5pcnEgPSBpZGVfZGVmYXVsdF9pcnEoaHdpZi0+aW9fcG9ydHMuZGF0YV9hZGRyKTsKKwlod2lmLT5pcnEgPSBfX2lkZV9kZWZhdWx0X2lycShod2lmLT5pb19wb3J0cy5kYXRhX2FkZHIpOwogCWlmICghaHdpZi0+aXJxKSB7CiAJCXByaW50aygiJXM6IERpc2FibGVkIHVuYWJsZSB0byBnZXQgSVJRICVkLlxuIiwKIAkJCWh3aWYtPm5hbWUsIG9sZF9pcnEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLXByb2MuYyBiL2RyaXZlcnMvaWRlL2lkZS1wcm9jLmMKaW5kZXggNTVlYzdmNy4uOGFmODhiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLXByb2MuYworKysgYi9kcml2ZXJzL2lkZS9pZGUtcHJvYy5jCkBAIC03Niw3ICs3Niw3IEBACiAJaWRlX2h3aWZfdAkqaHdpZiA9IChpZGVfaHdpZl90ICopIGRhdGE7CiAJaW50CQlsZW47CiAKLQlpZiAoaHdpZiAmJiBod2lmLT5tYXRlICYmIGh3aWYtPm1hdGUtPnByZXNlbnQpCisJaWYgKGh3aWYgJiYgaHdpZi0+bWF0ZSkKIAkJbGVuID0gc3ByaW50ZihwYWdlLCAiJXNcbiIsIGh3aWYtPm1hdGUtPm5hbWUpOwogCWVsc2UKIAkJbGVuID0gc3ByaW50ZihwYWdlLCAiKG5vbmUpXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS10YXBlLmMgYi9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jCmluZGV4IDFlMWYyNjMuLmY5Y2YxNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2lkZS10YXBlLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLXRhcGUuYwpAQCAtMTQ0LDkgKzE0NCw2IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKiogRW5kIG9mIHR1bmFibGUgcGFyYW1ldGVycyAqKioqKioqKioqKioqKioqKioqKioqKi8KIAotLyogUmVhZC9Xcml0ZSBlcnJvciBzaW11bGF0aW9uICovCi0jZGVmaW5lIFNJTVVMQVRFX0VSUk9SUwkJCTAKLQogLyogdGFwZSBkaXJlY3Rpb25zICovCiBlbnVtIHsKIAlJREVUQVBFX0RJUl9OT05FICA9ICgxIDw8IDApLApAQCAtNDQyLDcgKzQzOSw3IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCBpZGV0YXBlX3VwZGF0ZV9idWZmZXJzKHN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjKQorc3RhdGljIHZvaWQgaWRldGFwZV91cGRhdGVfYnVmZmVycyhpZGVfZHJpdmVfdCAqZHJpdmUsIHN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjKQogewogCXN0cnVjdCBpZGV0YXBlX2JoICpiaCA9IHBjLT5iaDsKIAlpbnQgY291bnQ7CkBAIC01MDYsMTggKzUwMyw2IEBACiAJcmV0dXJuICgmdGFwZS0+cnFfc3RhY2tbdGFwZS0+cnFfc3RhY2tfaW5kZXgrK10pOwogfQogCi1zdGF0aWMgdm9pZCBpZGV0YXBlX2luaXRfcGMoc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMpCi17Ci0JbWVtc2V0KHBjLT5jLCAwLCAxMik7Ci0JcGMtPnJldHJpZXMgPSAwOwotCXBjLT5mbGFncyA9IDA7Ci0JcGMtPnJlcV94ZmVyID0gMDsKLQlwYy0+YnVmID0gcGMtPnBjX2J1ZjsKLQlwYy0+YnVmX3NpemUgPSBJREVUQVBFX1BDX0JVRkZFUl9TSVpFOwotCXBjLT5iaCA9IE5VTEw7Ci0JcGMtPmJfZGF0YSA9IE5VTEw7Ci19Ci0KIC8qCiAgKiBjYWxsZWQgb24gZWFjaCBmYWlsZWQgcGFja2V0IGNvbW1hbmQgcmV0cnkgdG8gYW5hbHl6ZSB0aGUgcmVxdWVzdCBzZW5zZS4gV2UKICAqIGN1cnJlbnRseSBkbyBub3QgdXRpbGl6ZSB0aGlzIGluZm9ybWF0aW9uLgpAQCAtNTM4LDggKzUyMyw4IEBACiAJaWYgKHBjLT5mbGFncyAmIFBDX0ZMQUdfRE1BX0VSUk9SKSB7CiAJCXBjLT54ZmVycmVkID0gcGMtPnJlcV94ZmVyIC0KIAkJCXRhcGUtPmJsa19zaXplICoKLQkJCWJlMzJfdG9fY3B1KGdldF91bmFsaWduZWQoKHUzMiAqKSZzZW5zZVszXSkpOwotCQlpZGV0YXBlX3VwZGF0ZV9idWZmZXJzKHBjKTsKKwkJCWdldF91bmFsaWduZWRfYmUzMigmc2Vuc2VbM10pOworCQlpZGV0YXBlX3VwZGF0ZV9idWZmZXJzKGRyaXZlLCBwYyk7CiAJfQogCiAJLyoKQEAgLTYzNCwyMSArNjE5LDc4IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRldGFwZV9yZXF1ZXN0X3NlbnNlX2NhbGxiYWNrKGlkZV9kcml2ZV90ICpkcml2ZSkKK3N0YXRpYyB2b2lkIGlkZV90YXBlX2NhbGxiYWNrKGlkZV9kcml2ZV90ICpkcml2ZSkKIHsKIAlpZGV0YXBlX3RhcGVfdCAqdGFwZSA9IGRyaXZlLT5kcml2ZXJfZGF0YTsKKwlzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYyA9IHRhcGUtPnBjOworCWludCB1cHRvZGF0ZSA9IHBjLT5lcnJvciA/IDAgOiAxOwogCiAJZGVidWdfbG9nKERCR19QUk9DUywgIkVudGVyICVzXG4iLCBfX2Z1bmNfXyk7CiAKLQlpZiAoIXRhcGUtPnBjLT5lcnJvcikgewotCQlpZGV0YXBlX2FuYWx5emVfZXJyb3IoZHJpdmUsIHRhcGUtPnBjLT5idWYpOwotCQlpZGV0YXBlX2VuZF9yZXF1ZXN0KGRyaXZlLCAxLCAwKTsKLQl9IGVsc2UgewotCQlwcmludGsoS0VSTl9FUlIgImlkZS10YXBlOiBFcnJvciBpbiBSRVFVRVNUIFNFTlNFIGl0c2VsZiAtICIKLQkJCQkiQWJvcnRpbmcgcmVxdWVzdCFcbiIpOwotCQlpZGV0YXBlX2VuZF9yZXF1ZXN0KGRyaXZlLCAwLCAwKTsKKwlpZiAodGFwZS0+ZmFpbGVkX3BjID09IHBjKQorCQl0YXBlLT5mYWlsZWRfcGMgPSBOVUxMOworCisJaWYgKHBjLT5jWzBdID09IFJFUVVFU1RfU0VOU0UpIHsKKwkJaWYgKHVwdG9kYXRlKQorCQkJaWRldGFwZV9hbmFseXplX2Vycm9yKGRyaXZlLCBwYy0+YnVmKTsKKwkJZWxzZQorCQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtdGFwZTogRXJyb3IgaW4gUkVRVUVTVCBTRU5TRSAiCisJCQkJCSJpdHNlbGYgLSBBYm9ydGluZyByZXF1ZXN0IVxuIik7CisJfSBlbHNlIGlmIChwYy0+Y1swXSA9PSBSRUFEXzYgfHwgcGMtPmNbMF0gPT0gV1JJVEVfNikgeworCQlzdHJ1Y3QgcmVxdWVzdCAqcnEgPSBkcml2ZS0+aHdpZi0+aHdncm91cC0+cnE7CisJCWludCBibG9ja3MgPSBwYy0+eGZlcnJlZCAvIHRhcGUtPmJsa19zaXplOworCisJCXRhcGUtPmF2Z19zaXplICs9IGJsb2NrcyAqIHRhcGUtPmJsa19zaXplOworCisJCWlmICh0aW1lX2FmdGVyX2VxKGppZmZpZXMsIHRhcGUtPmF2Z190aW1lICsgSFopKSB7CisJCQl0YXBlLT5hdmdfc3BlZWQgPSB0YXBlLT5hdmdfc2l6ZSAqIEhaIC8KKwkJCQkoamlmZmllcyAtIHRhcGUtPmF2Z190aW1lKSAvIDEwMjQ7CisJCQl0YXBlLT5hdmdfc2l6ZSA9IDA7CisJCQl0YXBlLT5hdmdfdGltZSA9IGppZmZpZXM7CisJCX0KKworCQl0YXBlLT5maXJzdF9mcmFtZSArPSBibG9ja3M7CisJCXJxLT5jdXJyZW50X25yX3NlY3RvcnMgLT0gYmxvY2tzOworCisJCWlmIChwYy0+ZXJyb3IpCisJCQl1cHRvZGF0ZSA9IHBjLT5lcnJvcjsKKwl9IGVsc2UgaWYgKHBjLT5jWzBdID09IFJFQURfUE9TSVRJT04gJiYgdXB0b2RhdGUpIHsKKwkJdTggKnJlYWRwb3MgPSB0YXBlLT5wYy0+YnVmOworCisJCWRlYnVnX2xvZyhEQkdfU0VOU0UsICJCT1AgLSAlc1xuIiwKKwkJCQkocmVhZHBvc1swXSAmIDB4ODApID8gIlllcyIgOiAiTm8iKTsKKwkJZGVidWdfbG9nKERCR19TRU5TRSwgIkVPUCAtICVzXG4iLAorCQkJCShyZWFkcG9zWzBdICYgMHg0MCkgPyAiWWVzIiA6ICJObyIpOworCisJCWlmIChyZWFkcG9zWzBdICYgMHg0KSB7CisJCQlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogQmxvY2sgbG9jYXRpb24gaXMgdW5rbm93biIKKwkJCQkJICJ0byB0aGUgdGFwZVxuIik7CisJCQljbGVhcl9iaXQoSURFVEFQRV9GTEFHX0FERFJFU1NfVkFMSUQsICZ0YXBlLT5mbGFncyk7CisJCQl1cHRvZGF0ZSA9IDA7CisJCX0gZWxzZSB7CisJCQlkZWJ1Z19sb2coREJHX1NFTlNFLCAiQmxvY2sgTG9jYXRpb24gLSAldVxuIiwKKwkJCQkJYmUzMl90b19jcHUoKih1MzIgKikmcmVhZHBvc1s0XSkpOworCisJCQl0YXBlLT5wYXJ0aXRpb24gPSByZWFkcG9zWzFdOworCQkJdGFwZS0+Zmlyc3RfZnJhbWUgPSBiZTMyX3RvX2NwdSgqKHUzMiAqKSZyZWFkcG9zWzRdKTsKKwkJCXNldF9iaXQoSURFVEFQRV9GTEFHX0FERFJFU1NfVkFMSUQsICZ0YXBlLT5mbGFncyk7CisJCX0KIAl9Ci0JcmV0dXJuIGlkZV9zdG9wcGVkOworCisJaWRldGFwZV9lbmRfcmVxdWVzdChkcml2ZSwgdXB0b2RhdGUsIDApOworfQorCitzdGF0aWMgdm9pZCBpZGV0YXBlX2luaXRfcGMoc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMpCit7CisJbWVtc2V0KHBjLT5jLCAwLCAxMik7CisJcGMtPnJldHJpZXMgPSAwOworCXBjLT5mbGFncyA9IDA7CisJcGMtPnJlcV94ZmVyID0gMDsKKwlwYy0+YnVmID0gcGMtPnBjX2J1ZjsKKwlwYy0+YnVmX3NpemUgPSBJREVUQVBFX1BDX0JVRkZFUl9TSVpFOworCXBjLT5iaCA9IE5VTEw7CisJcGMtPmJfZGF0YSA9IE5VTEw7CisJcGMtPmNhbGxiYWNrID0gaWRlX3RhcGVfY2FsbGJhY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGlkZXRhcGVfY3JlYXRlX3JlcXVlc3Rfc2Vuc2VfY21kKHN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjKQpAQCAtNjU3LDcgKzY5OSw2IEBACiAJcGMtPmNbMF0gPSBSRVFVRVNUX1NFTlNFOwogCXBjLT5jWzRdID0gMjA7CiAJcGMtPnJlcV94ZmVyID0gMjA7Ci0JcGMtPmlkZXRhcGVfY2FsbGJhY2sgPSAmaWRldGFwZV9yZXF1ZXN0X3NlbnNlX2NhbGxiYWNrOwogfQogCiBzdGF0aWMgdm9pZCBpZGV0YXBlX2luaXRfcnEoc3RydWN0IHJlcXVlc3QgKnJxLCB1OCBjbWQpCkBAIC02ODgsOSArNzI5LDEwIEBACiAJc3RydWN0IGlkZV90YXBlX29iaiAqdGFwZSA9IGRyaXZlLT5kcml2ZXJfZGF0YTsKIAogCWlkZXRhcGVfaW5pdF9ycShycSwgUkVRX0lERVRBUEVfUEMxKTsKKwlycS0+Y21kX2ZsYWdzIHw9IFJFUV9QUkVFTVBUOwogCXJxLT5idWZmZXIgPSAoY2hhciAqKSBwYzsKIAlycS0+cnFfZGlzayA9IHRhcGUtPmRpc2s7Ci0JKHZvaWQpIGlkZV9kb19kcml2ZV9jbWQoZHJpdmUsIHJxLCBpZGVfcHJlZW1wdCk7CisJaWRlX2RvX2RyaXZlX2NtZChkcml2ZSwgcnEpOwogfQogCiAvKgpAQCAtNjk4LDcgKzc0MCw3IEBACiAgKglsYXN0IHBhY2tldCBjb21tYW5kLiBXZSBxdWV1ZSBhIHJlcXVlc3Qgc2Vuc2UgcGFja2V0IGNvbW1hbmQgaW4KICAqCXRoZSBoZWFkIG9mIHRoZSByZXF1ZXN0IGxpc3QuCiAgKi8KLXN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRldGFwZV9yZXRyeV9wYyAoaWRlX2RyaXZlX3QgKmRyaXZlKQorc3RhdGljIHZvaWQgaWRldGFwZV9yZXRyeV9wYyhpZGVfZHJpdmVfdCAqZHJpdmUpCiB7CiAJaWRldGFwZV90YXBlX3QgKnRhcGUgPSBkcml2ZS0+ZHJpdmVyX2RhdGE7CiAJc3RydWN0IGlkZV9hdGFwaV9wYyAqcGM7CkBAIC03MTAsNyArNzUyLDYgQEAKIAlpZGV0YXBlX2NyZWF0ZV9yZXF1ZXN0X3NlbnNlX2NtZChwYyk7CiAJc2V0X2JpdChJREVUQVBFX0ZMQUdfSUdOT1JFX0RTQywgJnRhcGUtPmZsYWdzKTsKIAlpZGV0YXBlX3F1ZXVlX3BjX2hlYWQoZHJpdmUsIHBjLCBycSk7Ci0JcmV0dXJuIGlkZV9zdG9wcGVkOwogfQogCiAvKgpAQCAtNzI3LDcgKzc2OCwyNiBAQAogCWlkZV9zdGFsbF9xdWV1ZShkcml2ZSwgdGFwZS0+ZHNjX3BvbGxfZnJlcSk7CiB9CiAKLXR5cGVkZWYgdm9pZCBpZGV0YXBlX2lvX2J1ZihpZGVfZHJpdmVfdCAqLCBzdHJ1Y3QgaWRlX2F0YXBpX3BjICosIHVuc2lnbmVkIGludCk7CitzdGF0aWMgdm9pZCBpZGVfdGFwZV9oYW5kbGVfZHNjKGlkZV9kcml2ZV90ICpkcml2ZSkKK3sKKwlpZGV0YXBlX3RhcGVfdCAqdGFwZSA9IGRyaXZlLT5kcml2ZXJfZGF0YTsKKworCS8qIE1lZGlhIGFjY2VzcyBjb21tYW5kICovCisJdGFwZS0+ZHNjX3BvbGxpbmdfc3RhcnQgPSBqaWZmaWVzOworCXRhcGUtPmRzY19wb2xsX2ZyZXEgPSBJREVUQVBFX0RTQ19NQV9GQVNUOworCXRhcGUtPmRzY190aW1lb3V0ID0gamlmZmllcyArIElERVRBUEVfRFNDX01BX1RJTUVPVVQ7CisJLyogQWxsb3cgaWRlLmMgdG8gaGFuZGxlIG90aGVyIHJlcXVlc3RzICovCisJaWRldGFwZV9wb3N0cG9uZV9yZXF1ZXN0KGRyaXZlKTsKK30KKworc3RhdGljIHZvaWQgaWRlX3RhcGVfaW9fYnVmZmVycyhpZGVfZHJpdmVfdCAqZHJpdmUsIHN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjLAorCQkJCXVuc2lnbmVkIGludCBiY291bnQsIGludCB3cml0ZSkKK3sKKwlpZiAod3JpdGUpCisJCWlkZXRhcGVfb3V0cHV0X2J1ZmZlcnMoZHJpdmUsIHBjLCBiY291bnQpOworCWVsc2UKKwkJaWRldGFwZV9pbnB1dF9idWZmZXJzKGRyaXZlLCBwYywgYmNvdW50KTsKK30KIAogLyoKICAqIFRoaXMgaXMgdGhlIHVzdWFsIGludGVycnVwdCBoYW5kbGVyIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGR1cmluZyBhIHBhY2tldApAQCAtNzM4LDE2OSArNzk4LDExIEBACiAgKi8KIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRldGFwZV9wY19pbnRyKGlkZV9kcml2ZV90ICpkcml2ZSkKIHsKLQlpZGVfaHdpZl90ICpod2lmID0gZHJpdmUtPmh3aWY7CiAJaWRldGFwZV90YXBlX3QgKnRhcGUgPSBkcml2ZS0+ZHJpdmVyX2RhdGE7Ci0Jc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMgPSB0YXBlLT5wYzsKLQl4ZmVyX2Z1bmNfdCAqeGZlcmZ1bmM7Ci0JaWRldGFwZV9pb19idWYgKmlvYnVmOwotCXVuc2lnbmVkIGludCB0ZW1wOwotI2lmIFNJTVVMQVRFX0VSUk9SUwotCXN0YXRpYyBpbnQgZXJyb3Jfc2ltX2NvdW50OwotI2VuZGlmCi0JdTE2IGJjb3VudDsKLQl1OCBzdGF0LCBpcmVhc29uOwogCi0JZGVidWdfbG9nKERCR19QUk9DUywgIkVudGVyICVzIC0gaW50ZXJydXB0IGhhbmRsZXJcbiIsIF9fZnVuY19fKTsKLQotCS8qIENsZWFyIHRoZSBpbnRlcnJ1cHQgKi8KLQlzdGF0ID0gaWRlX3JlYWRfc3RhdHVzKGRyaXZlKTsKLQotCWlmIChwYy0+ZmxhZ3MgJiBQQ19GTEFHX0RNQV9JTl9QUk9HUkVTUykgewotCQlpZiAoaHdpZi0+ZG1hX29wcy0+ZG1hX2VuZChkcml2ZSkgfHwgKHN0YXQgJiBFUlJfU1RBVCkpIHsKLQkJCS8qCi0JCQkgKiBBIERNQSBlcnJvciBpcyBzb21ldGltZXMgZXhwZWN0ZWQuIEZvciBleGFtcGxlLAotCQkJICogaWYgdGhlIHRhcGUgaXMgY3Jvc3NpbmcgYSBmaWxlbWFyayBkdXJpbmcgYQotCQkJICogUkVBRCBjb21tYW5kLCBpdCB3aWxsIGlzc3VlIGFuIGlycSBhbmQgcG9zaXRpb24KLQkJCSAqIGl0c2VsZiBiZWZvcmUgdGhlIGZpbGVtYXJrLCBzbyB0aGF0IG9ubHkgYSBwYXJ0aWFsCi0JCQkgKiBkYXRhIHRyYW5zZmVyIHdpbGwgb2NjdXIgKHdoaWNoIGNhdXNlcyB0aGUgRE1BCi0JCQkgKiBlcnJvcikuIEluIHRoYXQgY2FzZSwgd2Ugd2lsbCBsYXRlciBhc2sgdGhlIHRhcGUKLQkJCSAqIGhvdyBtdWNoIGJ5dGVzIG9mIHRoZSBvcmlnaW5hbCByZXF1ZXN0IHdlcmUKLQkJCSAqIGFjdHVhbGx5IHRyYW5zZmVycmVkICh3ZSBjYW4ndCByZWNlaXZlIHRoYXQKLQkJCSAqIGluZm9ybWF0aW9uIGZyb20gdGhlIERNQSBlbmdpbmUgb24gbW9zdCBjaGlwc2V0cykuCi0JCQkgKi8KLQotCQkJLyoKLQkJCSAqIE9uIHRoZSBjb250cmFyeSwgYSBETUEgZXJyb3IgaXMgbmV2ZXIgZXhwZWN0ZWQ7Ci0JCQkgKiBpdCB1c3VhbGx5IGluZGljYXRlcyBhIGhhcmR3YXJlIGVycm9yIG9yIGFib3J0LgotCQkJICogSWYgdGhlIHRhcGUgY3Jvc3NlcyBhIGZpbGVtYXJrIGR1cmluZyBhIFJFQUQKLQkJCSAqIGNvbW1hbmQsIGl0IHdpbGwgaXNzdWUgYW4gaXJxIGFuZCBwb3NpdGlvbiBpdHNlbGYKLQkJCSAqIGFmdGVyIHRoZSBmaWxlbWFyayAobm90IGJlZm9yZSkuIE9ubHkgYSBwYXJ0aWFsCi0JCQkgKiBkYXRhIHRyYW5zZmVyIHdpbGwgb2NjdXIsIGJ1dCBubyBETUEgZXJyb3IuCi0JCQkgKiAoQVMsIDE5IEFwciAyMDAxKQotCQkJICovCi0JCQlwYy0+ZmxhZ3MgfD0gUENfRkxBR19ETUFfRVJST1I7Ci0JCX0gZWxzZSB7Ci0JCQlwYy0+eGZlcnJlZCA9IHBjLT5yZXFfeGZlcjsKLQkJCWlkZXRhcGVfdXBkYXRlX2J1ZmZlcnMocGMpOwotCQl9Ci0JCWRlYnVnX2xvZyhEQkdfUFJPQ1MsICJETUEgZmluaXNoZWRcbiIpOwotCi0JfQotCi0JLyogTm8gbW9yZSBpbnRlcnJ1cHRzICovCi0JaWYgKChzdGF0ICYgRFJRX1NUQVQpID09IDApIHsKLQkJZGVidWdfbG9nKERCR19TRU5TRSwgIlBhY2tldCBjb21tYW5kIGNvbXBsZXRlZCwgJWQgYnl0ZXMiCi0JCQkJIiB0cmFuc2ZlcnJlZFxuIiwgcGMtPnhmZXJyZWQpOwotCi0JCXBjLT5mbGFncyAmPSB+UENfRkxBR19ETUFfSU5fUFJPR1JFU1M7Ci0JCWxvY2FsX2lycV9lbmFibGUoKTsKLQotI2lmIFNJTVVMQVRFX0VSUk9SUwotCQlpZiAoKHBjLT5jWzBdID09IFdSSVRFXzYgfHwgcGMtPmNbMF0gPT0gUkVBRF82KSAmJgotCQkgICAgKCsrZXJyb3Jfc2ltX2NvdW50ICUgMTAwKSA9PSAwKSB7Ci0JCQlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogJXM6IHNpbXVsYXRpbmcgZXJyb3JcbiIsCi0JCQkJdGFwZS0+bmFtZSk7Ci0JCQlzdGF0IHw9IEVSUl9TVEFUOwotCQl9Ci0jZW5kaWYKLQkJaWYgKChzdGF0ICYgRVJSX1NUQVQpICYmIHBjLT5jWzBdID09IFJFUVVFU1RfU0VOU0UpCi0JCQlzdGF0ICY9IH5FUlJfU1RBVDsKLQkJaWYgKChzdGF0ICYgRVJSX1NUQVQpIHx8IChwYy0+ZmxhZ3MgJiBQQ19GTEFHX0RNQV9FUlJPUikpIHsKLQkJCS8qIEVycm9yIGRldGVjdGVkICovCi0JCQlkZWJ1Z19sb2coREJHX0VSUiwgIiVzOiBJL08gZXJyb3JcbiIsIHRhcGUtPm5hbWUpOwotCi0JCQlpZiAocGMtPmNbMF0gPT0gUkVRVUVTVF9TRU5TRSkgewotCQkJCXByaW50ayhLRVJOX0VSUiAiaWRlLXRhcGU6IEkvTyBlcnJvciBpbiByZXF1ZXN0IgotCQkJCQkJIiBzZW5zZSBjb21tYW5kXG4iKTsKLQkJCQlyZXR1cm4gaWRlX2RvX3Jlc2V0KGRyaXZlKTsKLQkJCX0KLQkJCWRlYnVnX2xvZyhEQkdfRVJSLCAiW2NtZCAleF06IGNoZWNrIGNvbmRpdGlvblxuIiwKLQkJCQkJcGMtPmNbMF0pOwotCi0JCQkvKiBSZXRyeSBvcGVyYXRpb24gKi8KLQkJCXJldHVybiBpZGV0YXBlX3JldHJ5X3BjKGRyaXZlKTsKLQkJfQotCQlwYy0+ZXJyb3IgPSAwOwotCQlpZiAoKHBjLT5mbGFncyAmIFBDX0ZMQUdfV0FJVF9GT1JfRFNDKSAmJgotCQkgICAgKHN0YXQgJiBTRUVLX1NUQVQpID09IDApIHsKLQkJCS8qIE1lZGlhIGFjY2VzcyBjb21tYW5kICovCi0JCQl0YXBlLT5kc2NfcG9sbGluZ19zdGFydCA9IGppZmZpZXM7Ci0JCQl0YXBlLT5kc2NfcG9sbF9mcmVxID0gSURFVEFQRV9EU0NfTUFfRkFTVDsKLQkJCXRhcGUtPmRzY190aW1lb3V0ID0gamlmZmllcyArIElERVRBUEVfRFNDX01BX1RJTUVPVVQ7Ci0JCQkvKiBBbGxvdyBpZGUuYyB0byBoYW5kbGUgb3RoZXIgcmVxdWVzdHMgKi8KLQkJCWlkZXRhcGVfcG9zdHBvbmVfcmVxdWVzdChkcml2ZSk7Ci0JCQlyZXR1cm4gaWRlX3N0b3BwZWQ7Ci0JCX0KLQkJaWYgKHRhcGUtPmZhaWxlZF9wYyA9PSBwYykKLQkJCXRhcGUtPmZhaWxlZF9wYyA9IE5VTEw7Ci0JCS8qIENvbW1hbmQgZmluaXNoZWQgLSBDYWxsIHRoZSBjYWxsYmFjayBmdW5jdGlvbiAqLwotCQlyZXR1cm4gcGMtPmlkZXRhcGVfY2FsbGJhY2soZHJpdmUpOwotCX0KLQotCWlmIChwYy0+ZmxhZ3MgJiBQQ19GTEFHX0RNQV9JTl9QUk9HUkVTUykgewotCQlwYy0+ZmxhZ3MgJj0gflBDX0ZMQUdfRE1BX0lOX1BST0dSRVNTOwotCQlwcmludGsoS0VSTl9FUlIgImlkZS10YXBlOiBUaGUgdGFwZSB3YW50cyB0byBpc3N1ZSBtb3JlICIKLQkJCQkiaW50ZXJydXB0cyBpbiBETUEgbW9kZVxuIik7Ci0JCXByaW50ayhLRVJOX0VSUiAiaWRlLXRhcGU6IERNQSBkaXNhYmxlZCwgcmV2ZXJ0aW5nIHRvIFBJT1xuIik7Ci0JCWlkZV9kbWFfb2ZmKGRyaXZlKTsKLQkJcmV0dXJuIGlkZV9kb19yZXNldChkcml2ZSk7Ci0JfQotCS8qIEdldCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHRyYW5zZmVyIG9uIHRoaXMgaW50ZXJydXB0LiAqLwotCWJjb3VudCA9IChod2lmLT5JTkIoaHdpZi0+aW9fcG9ydHMubGJhaF9hZGRyKSA8PCA4KSB8Ci0JCSAgaHdpZi0+SU5CKGh3aWYtPmlvX3BvcnRzLmxiYW1fYWRkcik7Ci0KLQlpcmVhc29uID0gaHdpZi0+SU5CKGh3aWYtPmlvX3BvcnRzLm5zZWN0X2FkZHIpOwotCi0JaWYgKGlyZWFzb24gJiBDRCkgewotCQlwcmludGsoS0VSTl9FUlIgImlkZS10YXBlOiBDb0QgIT0gMCBpbiAlc1xuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gaWRlX2RvX3Jlc2V0KGRyaXZlKTsKLQl9Ci0JaWYgKCgoaXJlYXNvbiAmIElPKSA9PSBJTykgPT0gISEocGMtPmZsYWdzICYgUENfRkxBR19XUklUSU5HKSkgewotCQkvKiBIb3BlZnVsbHksIHdlIHdpbGwgbmV2ZXIgZ2V0IGhlcmUgKi8KLQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtdGFwZTogV2Ugd2FudGVkIHRvICVzLCAiLAotCQkJCShpcmVhc29uICYgSU8pID8gIldyaXRlIiA6ICJSZWFkIik7Ci0JCXByaW50ayhLRVJOX0VSUiAiaWRlLXRhcGU6IGJ1dCB0aGUgdGFwZSB3YW50cyB1cyB0byAlcyAhXG4iLAotCQkJCShpcmVhc29uICYgSU8pID8gIlJlYWQiIDogIldyaXRlIik7Ci0JCXJldHVybiBpZGVfZG9fcmVzZXQoZHJpdmUpOwotCX0KLQlpZiAoIShwYy0+ZmxhZ3MgJiBQQ19GTEFHX1dSSVRJTkcpKSB7Ci0JCS8qIFJlYWRpbmcgLSBDaGVjayB0aGF0IHdlIGhhdmUgZW5vdWdoIHNwYWNlICovCi0JCXRlbXAgPSBwYy0+eGZlcnJlZCArIGJjb3VudDsKLQkJaWYgKHRlbXAgPiBwYy0+cmVxX3hmZXIpIHsKLQkJCWlmICh0ZW1wID4gcGMtPmJ1Zl9zaXplKSB7Ci0JCQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtdGFwZTogVGhlIHRhcGUgd2FudHMgdG8gIgotCQkJCQkic2VuZCB1cyBtb3JlIGRhdGEgdGhhbiBleHBlY3RlZCAiCi0JCQkJCSItIGRpc2NhcmRpbmcgZGF0YVxuIik7Ci0JCQkJaWRlX3BhZF90cmFuc2Zlcihkcml2ZSwgMCwgYmNvdW50KTsKLQkJCQlpZGVfc2V0X2hhbmRsZXIoZHJpdmUsICZpZGV0YXBlX3BjX2ludHIsCi0JCQkJCQlJREVUQVBFX1dBSVRfQ01ELCBOVUxMKTsKLQkJCQlyZXR1cm4gaWRlX3N0YXJ0ZWQ7Ci0JCQl9Ci0JCQlkZWJ1Z19sb2coREJHX1NFTlNFLCAiVGhlIHRhcGUgd2FudHMgdG8gc2VuZCB1cyBtb3JlICIKLQkJCQkiZGF0YSB0aGFuIGV4cGVjdGVkIC0gYWxsb3dpbmcgdHJhbnNmZXJcbiIpOwotCQl9Ci0JCWlvYnVmID0gJmlkZXRhcGVfaW5wdXRfYnVmZmVyczsKLQkJeGZlcmZ1bmMgPSBod2lmLT5pbnB1dF9kYXRhOwotCX0gZWxzZSB7Ci0JCWlvYnVmID0gJmlkZXRhcGVfb3V0cHV0X2J1ZmZlcnM7Ci0JCXhmZXJmdW5jID0gaHdpZi0+b3V0cHV0X2RhdGE7Ci0JfQotCi0JaWYgKHBjLT5iaCkKLQkJaW9idWYoZHJpdmUsIHBjLCBiY291bnQpOwotCWVsc2UKLQkJeGZlcmZ1bmMoZHJpdmUsIE5VTEwsIHBjLT5jdXJfcG9zLCBiY291bnQpOwotCi0JLyogVXBkYXRlIHRoZSBjdXJyZW50IHBvc2l0aW9uICovCi0JcGMtPnhmZXJyZWQgKz0gYmNvdW50OwotCXBjLT5jdXJfcG9zICs9IGJjb3VudDsKLQotCWRlYnVnX2xvZyhEQkdfU0VOU0UsICJbY21kICV4XSB0cmFuc2ZlcnJlZCAlZCBieXRlcyBvbiB0aGF0IGludHIuXG4iLAotCQkJcGMtPmNbMF0sIGJjb3VudCk7Ci0KLQkvKiBBbmQgc2V0IHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBhZ2FpbiAqLwotCWlkZV9zZXRfaGFuZGxlcihkcml2ZSwgJmlkZXRhcGVfcGNfaW50ciwgSURFVEFQRV9XQUlUX0NNRCwgTlVMTCk7Ci0JcmV0dXJuIGlkZV9zdGFydGVkOworCXJldHVybiBpZGVfcGNfaW50cihkcml2ZSwgdGFwZS0+cGMsIGlkZXRhcGVfcGNfaW50ciwgSURFVEFQRV9XQUlUX0NNRCwKKwkJCSAgIE5VTEwsIGlkZXRhcGVfdXBkYXRlX2J1ZmZlcnMsIGlkZXRhcGVfcmV0cnlfcGMsCisJCQkgICBpZGVfdGFwZV9oYW5kbGVfZHNjLCBpZGVfdGFwZV9pb19idWZmZXJzKTsKIH0KIAogLyoKQEAgLTk0MSw1NiArODQzLDE2IEBACiAgKi8KIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRldGFwZV90cmFuc2Zlcl9wYyhpZGVfZHJpdmVfdCAqZHJpdmUpCiB7Ci0JaWRlX2h3aWZfdCAqaHdpZiA9IGRyaXZlLT5od2lmOwogCWlkZXRhcGVfdGFwZV90ICp0YXBlID0gZHJpdmUtPmRyaXZlcl9kYXRhOwotCXN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjID0gdGFwZS0+cGM7Ci0JaW50IHJldHJpZXMgPSAxMDA7Ci0JaWRlX3N0YXJ0c3RvcF90IHN0YXJ0c3RvcDsKLQl1OCBpcmVhc29uOwogCi0JaWYgKGlkZV93YWl0X3N0YXQoJnN0YXJ0c3RvcCwgZHJpdmUsIERSUV9TVEFULCBCVVNZX1NUQVQsIFdBSVRfUkVBRFkpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiaWRlLXRhcGU6IFN0cmFuZ2UsIHBhY2tldCBjb21tYW5kIGluaXRpYXRlZCAiCi0JCQkJInlldCBEUlEgaXNuJ3QgYXNzZXJ0ZWRcbiIpOwotCQlyZXR1cm4gc3RhcnRzdG9wOwotCX0KLQlpcmVhc29uID0gaHdpZi0+SU5CKGh3aWYtPmlvX3BvcnRzLm5zZWN0X2FkZHIpOwotCXdoaWxlIChyZXRyaWVzLS0gJiYgKChpcmVhc29uICYgQ0QpID09IDAgfHwgKGlyZWFzb24gJiBJTykpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiaWRlLXRhcGU6IChJTyxDb0QgIT0gKDAsMSkgd2hpbGUgaXNzdWluZyAiCi0JCQkJImEgcGFja2V0IGNvbW1hbmQsIHJldHJ5aW5nXG4iKTsKLQkJdWRlbGF5KDEwMCk7Ci0JCWlyZWFzb24gPSBod2lmLT5JTkIoaHdpZi0+aW9fcG9ydHMubnNlY3RfYWRkcik7Ci0JCWlmIChyZXRyaWVzID09IDApIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiaWRlLXRhcGU6IChJTyxDb0QgIT0gKDAsMSkgd2hpbGUgIgotCQkJCQkiaXNzdWluZyBhIHBhY2tldCBjb21tYW5kLCBpZ25vcmluZ1xuIik7Ci0JCQlpcmVhc29uIHw9IENEOwotCQkJaXJlYXNvbiAmPSB+SU87Ci0JCX0KLQl9Ci0JaWYgKChpcmVhc29uICYgQ0QpID09IDAgfHwgKGlyZWFzb24gJiBJTykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtdGFwZTogKElPLENvRCkgIT0gKDAsMSkgd2hpbGUgaXNzdWluZyAiCi0JCQkJImEgcGFja2V0IGNvbW1hbmRcbiIpOwotCQlyZXR1cm4gaWRlX2RvX3Jlc2V0KGRyaXZlKTsKLQl9Ci0JLyogU2V0IHRoZSBpbnRlcnJ1cHQgcm91dGluZSAqLwotCWlkZV9zZXRfaGFuZGxlcihkcml2ZSwgJmlkZXRhcGVfcGNfaW50ciwgSURFVEFQRV9XQUlUX0NNRCwgTlVMTCk7Ci0jaWZkZWYgQ09ORklHX0JMS19ERVZfSURFRE1BCi0JLyogQmVnaW4gRE1BLCBpZiBuZWNlc3NhcnkgKi8KLQlpZiAocGMtPmZsYWdzICYgUENfRkxBR19ETUFfSU5fUFJPR1JFU1MpCi0JCWh3aWYtPmRtYV9vcHMtPmRtYV9zdGFydChkcml2ZSk7Ci0jZW5kaWYKLQkvKiBTZW5kIHRoZSBhY3R1YWwgcGFja2V0ICovCi0JaHdpZi0+b3V0cHV0X2RhdGEoZHJpdmUsIE5VTEwsIHBjLT5jLCAxMik7Ci0KLQlyZXR1cm4gaWRlX3N0YXJ0ZWQ7CisJcmV0dXJuIGlkZV90cmFuc2Zlcl9wYyhkcml2ZSwgdGFwZS0+cGMsIGlkZXRhcGVfcGNfaW50ciwKKwkJCSAgICAgICBJREVUQVBFX1dBSVRfQ01ELCBOVUxMKTsKIH0KIAogc3RhdGljIGlkZV9zdGFydHN0b3BfdCBpZGV0YXBlX2lzc3VlX3BjKGlkZV9kcml2ZV90ICpkcml2ZSwKIAkJc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMpCiB7Ci0JaWRlX2h3aWZfdCAqaHdpZiA9IGRyaXZlLT5od2lmOwogCWlkZXRhcGVfdGFwZV90ICp0YXBlID0gZHJpdmUtPmRyaXZlcl9kYXRhOwotCWludCBkbWFfb2sgPSAwOwotCXUxNiBiY291bnQ7CiAKIAlpZiAodGFwZS0+cGMtPmNbMF0gPT0gUkVRVUVTVF9TRU5TRSAmJgogCSAgICBwYy0+Y1swXSA9PSBSRVFVRVNUX1NFTlNFKSB7CkBAIC0xMDI1LDUwICs4ODcsMTUgQEAKIAkJCXBjLT5lcnJvciA9IElERVRBUEVfRVJST1JfR0VORVJBTDsKIAkJfQogCQl0YXBlLT5mYWlsZWRfcGMgPSBOVUxMOwotCQlyZXR1cm4gcGMtPmlkZXRhcGVfY2FsbGJhY2soZHJpdmUpOworCQlwYy0+Y2FsbGJhY2soZHJpdmUpOworCQlyZXR1cm4gaWRlX3N0b3BwZWQ7CiAJfQogCWRlYnVnX2xvZyhEQkdfU0VOU0UsICJSZXRyeSAjJWQsIGNtZCA9ICUwMlhcbiIsIHBjLT5yZXRyaWVzLCBwYy0+Y1swXSk7CiAKIAlwYy0+cmV0cmllcysrOwotCS8qIFdlIGhhdmVuJ3QgdHJhbnNmZXJyZWQgYW55IGRhdGEgeWV0ICovCi0JcGMtPnhmZXJyZWQgPSAwOwotCXBjLT5jdXJfcG9zID0gcGMtPmJ1ZjsKLQkvKiBSZXF1ZXN0IHRvIHRyYW5zZmVyIHRoZSBlbnRpcmUgYnVmZmVyIGF0IG9uY2UgKi8KLQliY291bnQgPSBwYy0+cmVxX3hmZXI7CiAKLQlpZiAocGMtPmZsYWdzICYgUENfRkxBR19ETUFfRVJST1IpIHsKLQkJcGMtPmZsYWdzICY9IH5QQ19GTEFHX0RNQV9FUlJPUjsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiaWRlLXRhcGU6IERNQSBkaXNhYmxlZCwgIgotCQkJCSJyZXZlcnRpbmcgdG8gUElPXG4iKTsKLQkJaWRlX2RtYV9vZmYoZHJpdmUpOwotCX0KLQlpZiAoKHBjLT5mbGFncyAmIFBDX0ZMQUdfRE1BX1JFQ09NTUVOREVEKSAmJiBkcml2ZS0+dXNpbmdfZG1hKQotCQlkbWFfb2sgPSAhaHdpZi0+ZG1hX29wcy0+ZG1hX3NldHVwKGRyaXZlKTsKLQotCWlkZV9wa3RjbWRfdGZfbG9hZChkcml2ZSwgSURFX1RGTEFHX05PX1NFTEVDVF9NQVNLIHwKLQkJCSAgIElERV9URkxBR19PVVRfREVWSUNFLCBiY291bnQsIGRtYV9vayk7Ci0KLQlpZiAoZG1hX29rKQotCQkvKiBXaWxsIGJlZ2luIERNQSBsYXRlciAqLwotCQlwYy0+ZmxhZ3MgfD0gUENfRkxBR19ETUFfSU5fUFJPR1JFU1M7Ci0JaWYgKHRlc3RfYml0KElERVRBUEVfRkxBR19EUlFfSU5URVJSVVBULCAmdGFwZS0+ZmxhZ3MpKSB7Ci0JCWlkZV9leGVjdXRlX2NvbW1hbmQoZHJpdmUsIFdJTl9QQUNLRVRDTUQsICZpZGV0YXBlX3RyYW5zZmVyX3BjLAotCQkJCSAgICBJREVUQVBFX1dBSVRfQ01ELCBOVUxMKTsKLQkJcmV0dXJuIGlkZV9zdGFydGVkOwotCX0gZWxzZSB7Ci0JCWlkZV9leGVjdXRlX3BrdF9jbWQoZHJpdmUpOwotCQlyZXR1cm4gaWRldGFwZV90cmFuc2Zlcl9wYyhkcml2ZSk7Ci0JfQotfQotCi1zdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGlkZXRhcGVfcGNfY2FsbGJhY2soaWRlX2RyaXZlX3QgKmRyaXZlKQotewotCWlkZXRhcGVfdGFwZV90ICp0YXBlID0gZHJpdmUtPmRyaXZlcl9kYXRhOwotCi0JZGVidWdfbG9nKERCR19QUk9DUywgIkVudGVyICVzXG4iLCBfX2Z1bmNfXyk7Ci0KLQlpZGV0YXBlX2VuZF9yZXF1ZXN0KGRyaXZlLCB0YXBlLT5wYy0+ZXJyb3IgPyAwIDogMSwgMCk7Ci0JcmV0dXJuIGlkZV9zdG9wcGVkOworCXJldHVybiBpZGVfaXNzdWVfcGMoZHJpdmUsIHBjLCBpZGV0YXBlX3RyYW5zZmVyX3BjLAorCQkJICAgIElERVRBUEVfV0FJVF9DTUQsIE5VTEwpOwogfQogCiAvKiBBIG1vZGUgc2Vuc2UgY29tbWFuZCBpcyB1c2VkIHRvICJzZW5zZSIgdGFwZSBwYXJhbWV0ZXJzLiAqLwpAQCAtMTA5Niw3ICs5MjMsNiBAQAogCQlwYy0+cmVxX3hmZXIgPSAyNDsKIAllbHNlCiAJCXBjLT5yZXFfeGZlciA9IDUwOwotCXBjLT5pZGV0YXBlX2NhbGxiYWNrID0gJmlkZXRhcGVfcGNfY2FsbGJhY2s7CiB9CiAKIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRldGFwZV9tZWRpYV9hY2Nlc3NfZmluaXNoZWQoaWRlX2RyaXZlX3QgKmRyaXZlKQpAQCAtMTExNCw4MCArOTQwLDQxIEBACiAJCQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtdGFwZTogJXM6IEkvTyBlcnJvciwgIiwKIAkJCQkJCXRhcGUtPm5hbWUpOwogCQkJLyogUmV0cnkgb3BlcmF0aW9uICovCi0JCQlyZXR1cm4gaWRldGFwZV9yZXRyeV9wYyhkcml2ZSk7CisJCQlpZGV0YXBlX3JldHJ5X3BjKGRyaXZlKTsKKwkJCXJldHVybiBpZGVfc3RvcHBlZDsKIAkJfQogCQlwYy0+ZXJyb3IgPSAwOwotCQlpZiAodGFwZS0+ZmFpbGVkX3BjID09IHBjKQotCQkJdGFwZS0+ZmFpbGVkX3BjID0gTlVMTDsKIAl9IGVsc2UgewogCQlwYy0+ZXJyb3IgPSBJREVUQVBFX0VSUk9SX0dFTkVSQUw7CiAJCXRhcGUtPmZhaWxlZF9wYyA9IE5VTEw7CiAJfQotCXJldHVybiBwYy0+aWRldGFwZV9jYWxsYmFjayhkcml2ZSk7Ci19Ci0KLXN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRldGFwZV9yd19jYWxsYmFjayhpZGVfZHJpdmVfdCAqZHJpdmUpCi17Ci0JaWRldGFwZV90YXBlX3QgKnRhcGUgPSBkcml2ZS0+ZHJpdmVyX2RhdGE7Ci0Jc3RydWN0IHJlcXVlc3QgKnJxID0gSFdHUk9VUChkcml2ZSktPnJxOwotCWludCBibG9ja3MgPSB0YXBlLT5wYy0+eGZlcnJlZCAvIHRhcGUtPmJsa19zaXplOwotCi0JdGFwZS0+YXZnX3NpemUgKz0gYmxvY2tzICogdGFwZS0+YmxrX3NpemU7Ci0KLQlpZiAodGltZV9hZnRlcl9lcShqaWZmaWVzLCB0YXBlLT5hdmdfdGltZSArIEhaKSkgewotCQl0YXBlLT5hdmdfc3BlZWQgPSB0YXBlLT5hdmdfc2l6ZSAqIEhaIC8KLQkJCQkoamlmZmllcyAtIHRhcGUtPmF2Z190aW1lKSAvIDEwMjQ7Ci0JCXRhcGUtPmF2Z19zaXplID0gMDsKLQkJdGFwZS0+YXZnX3RpbWUgPSBqaWZmaWVzOwotCX0KLQlkZWJ1Z19sb2coREJHX1BST0NTLCAiRW50ZXIgJXNcbiIsIF9fZnVuY19fKTsKLQotCXRhcGUtPmZpcnN0X2ZyYW1lICs9IGJsb2NrczsKLQlycS0+Y3VycmVudF9ucl9zZWN0b3JzIC09IGJsb2NrczsKLQotCWlmICghdGFwZS0+cGMtPmVycm9yKQotCQlpZGV0YXBlX2VuZF9yZXF1ZXN0KGRyaXZlLCAxLCAwKTsKLQllbHNlCi0JCWlkZXRhcGVfZW5kX3JlcXVlc3QoZHJpdmUsIHRhcGUtPnBjLT5lcnJvciwgMCk7CisJcGMtPmNhbGxiYWNrKGRyaXZlKTsKIAlyZXR1cm4gaWRlX3N0b3BwZWQ7CiB9CiAKLXN0YXRpYyB2b2lkIGlkZXRhcGVfY3JlYXRlX3JlYWRfY21kKGlkZXRhcGVfdGFwZV90ICp0YXBlLAotCQlzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYywKLQkJdW5zaWduZWQgaW50IGxlbmd0aCwgc3RydWN0IGlkZXRhcGVfYmggKmJoKQorc3RhdGljIHZvaWQgaWRlX3RhcGVfY3JlYXRlX3J3X2NtZChpZGV0YXBlX3RhcGVfdCAqdGFwZSwKKwkJc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMsIHVuc2lnbmVkIGludCBsZW5ndGgsCisJCXN0cnVjdCBpZGV0YXBlX2JoICpiaCwgdTggb3Bjb2RlKQogewogCWlkZXRhcGVfaW5pdF9wYyhwYyk7Ci0JcGMtPmNbMF0gPSBSRUFEXzY7CiAJcHV0X3VuYWxpZ25lZChjcHVfdG9fYmUzMihsZW5ndGgpLCAodW5zaWduZWQgaW50ICopICZwYy0+Y1sxXSk7CiAJcGMtPmNbMV0gPSAxOwotCXBjLT5pZGV0YXBlX2NhbGxiYWNrID0gJmlkZXRhcGVfcndfY2FsbGJhY2s7CiAJcGMtPmJoID0gYmg7Ci0JYXRvbWljX3NldCgmYmgtPmJfY291bnQsIDApOwogCXBjLT5idWYgPSBOVUxMOwogCXBjLT5idWZfc2l6ZSA9IGxlbmd0aCAqIHRhcGUtPmJsa19zaXplOwogCXBjLT5yZXFfeGZlciA9IHBjLT5idWZfc2l6ZTsKIAlpZiAocGMtPnJlcV94ZmVyID09IHRhcGUtPmJ1ZmZlcl9zaXplKQotCQlwYy0+ZmxhZ3MgfD0gUENfRkxBR19ETUFfUkVDT01NRU5ERUQ7Ci19CisJCXBjLT5mbGFncyB8PSBQQ19GTEFHX0RNQV9PSzsKIAotc3RhdGljIHZvaWQgaWRldGFwZV9jcmVhdGVfd3JpdGVfY21kKGlkZXRhcGVfdGFwZV90ICp0YXBlLAotCQlzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYywKLQkJdW5zaWduZWQgaW50IGxlbmd0aCwgc3RydWN0IGlkZXRhcGVfYmggKmJoKQotewotCWlkZXRhcGVfaW5pdF9wYyhwYyk7Ci0JcGMtPmNbMF0gPSBXUklURV82OwotCXB1dF91bmFsaWduZWQoY3B1X3RvX2JlMzIobGVuZ3RoKSwgKHVuc2lnbmVkIGludCAqKSAmcGMtPmNbMV0pOwotCXBjLT5jWzFdID0gMTsKLQlwYy0+aWRldGFwZV9jYWxsYmFjayA9ICZpZGV0YXBlX3J3X2NhbGxiYWNrOwotCXBjLT5mbGFncyB8PSBQQ19GTEFHX1dSSVRJTkc7Ci0JcGMtPmJoID0gYmg7Ci0JcGMtPmJfZGF0YSA9IGJoLT5iX2RhdGE7Ci0JcGMtPmJfY291bnQgPSBhdG9taWNfcmVhZCgmYmgtPmJfY291bnQpOwotCXBjLT5idWYgPSBOVUxMOwotCXBjLT5idWZfc2l6ZSA9IGxlbmd0aCAqIHRhcGUtPmJsa19zaXplOwotCXBjLT5yZXFfeGZlciA9IHBjLT5idWZfc2l6ZTsKLQlpZiAocGMtPnJlcV94ZmVyID09IHRhcGUtPmJ1ZmZlcl9zaXplKQotCQlwYy0+ZmxhZ3MgfD0gUENfRkxBR19ETUFfUkVDT01NRU5ERUQ7CisJaWYgKG9wY29kZSA9PSBSRUFEXzYpIHsKKwkJcGMtPmNbMF0gPSBSRUFEXzY7CisJCWF0b21pY19zZXQoJmJoLT5iX2NvdW50LCAwKTsKKwl9IGVsc2UgaWYgKG9wY29kZSA9PSBXUklURV82KSB7CisJCXBjLT5jWzBdID0gV1JJVEVfNjsKKwkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfV1JJVElORzsKKwkJcGMtPmJfZGF0YSA9IGJoLT5iX2RhdGE7CisJCXBjLT5iX2NvdW50ID0gYXRvbWljX3JlYWQoJmJoLT5iX2NvdW50KTsKKwl9CiB9CiAKIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRldGFwZV9kb19yZXF1ZXN0KGlkZV9kcml2ZV90ICpkcml2ZSwKQEAgLTEyMTEsOCArOTk4LDEwIEBACiAJfQogCiAJLyogUmV0cnkgYSBmYWlsZWQgcGFja2V0IGNvbW1hbmQgKi8KLQlpZiAodGFwZS0+ZmFpbGVkX3BjICYmIHRhcGUtPnBjLT5jWzBdID09IFJFUVVFU1RfU0VOU0UpCi0JCXJldHVybiBpZGV0YXBlX2lzc3VlX3BjKGRyaXZlLCB0YXBlLT5mYWlsZWRfcGMpOworCWlmICh0YXBlLT5mYWlsZWRfcGMgJiYgdGFwZS0+cGMtPmNbMF0gPT0gUkVRVUVTVF9TRU5TRSkgeworCQlwYyA9IHRhcGUtPmZhaWxlZF9wYzsKKwkJZ290byBvdXQ7CisJfQogCiAJaWYgKHBvc3Rwb25lZF9ycSAhPSBOVUxMKQogCQlpZiAocnEgIT0gcG9zdHBvbmVkX3JxKSB7CkBAIC0xMjYyLDE0ICsxMDUxLDE2IEBACiAJfQogCWlmIChycS0+Y21kWzBdICYgUkVRX0lERVRBUEVfUkVBRCkgewogCQlwYyA9IGlkZXRhcGVfbmV4dF9wY19zdG9yYWdlKGRyaXZlKTsKLQkJaWRldGFwZV9jcmVhdGVfcmVhZF9jbWQodGFwZSwgcGMsIHJxLT5jdXJyZW50X25yX3NlY3RvcnMsCi0JCQkJCShzdHJ1Y3QgaWRldGFwZV9iaCAqKXJxLT5zcGVjaWFsKTsKKwkJaWRlX3RhcGVfY3JlYXRlX3J3X2NtZCh0YXBlLCBwYywgcnEtPmN1cnJlbnRfbnJfc2VjdG9ycywKKwkJCQkJKHN0cnVjdCBpZGV0YXBlX2JoICopcnEtPnNwZWNpYWwsCisJCQkJCVJFQURfNik7CiAJCWdvdG8gb3V0OwogCX0KIAlpZiAocnEtPmNtZFswXSAmIFJFUV9JREVUQVBFX1dSSVRFKSB7CiAJCXBjID0gaWRldGFwZV9uZXh0X3BjX3N0b3JhZ2UoZHJpdmUpOwotCQlpZGV0YXBlX2NyZWF0ZV93cml0ZV9jbWQodGFwZSwgcGMsIHJxLT5jdXJyZW50X25yX3NlY3RvcnMsCi0JCQkJCSAoc3RydWN0IGlkZXRhcGVfYmggKilycS0+c3BlY2lhbCk7CisJCWlkZV90YXBlX2NyZWF0ZV9yd19jbWQodGFwZSwgcGMsIHJxLT5jdXJyZW50X25yX3NlY3RvcnMsCisJCQkJCSAoc3RydWN0IGlkZXRhcGVfYmggKilycS0+c3BlY2lhbCwKKwkJCQkJIFdSSVRFXzYpOwogCQlnb3RvIG91dDsKIAl9CiAJaWYgKHJxLT5jbWRbMF0gJiBSRVFfSURFVEFQRV9QQzEpIHsKQEAgLTEyODQsNiArMTA3NSw5IEBACiAJfQogCUJVRygpOwogb3V0OgorCWlmICh0ZXN0X2JpdChJREVUQVBFX0ZMQUdfRFJRX0lOVEVSUlVQVCwgJnRhcGUtPmZsYWdzKSkKKwkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfRFJRX0lOVEVSUlVQVDsKKwogCXJldHVybiBpZGV0YXBlX2lzc3VlX3BjKGRyaXZlLCBwYyk7CiB9CiAKQEAgLTE0NDcsNDAgKzEyNDEsNiBAQAogCX0KIH0KIAotc3RhdGljIGlkZV9zdGFydHN0b3BfdCBpZGV0YXBlX3JlYWRfcG9zaXRpb25fY2FsbGJhY2soaWRlX2RyaXZlX3QgKmRyaXZlKQotewotCWlkZXRhcGVfdGFwZV90ICp0YXBlID0gZHJpdmUtPmRyaXZlcl9kYXRhOwotCXU4ICpyZWFkcG9zID0gdGFwZS0+cGMtPmJ1ZjsKLQotCWRlYnVnX2xvZyhEQkdfUFJPQ1MsICJFbnRlciAlc1xuIiwgX19mdW5jX18pOwotCi0JaWYgKCF0YXBlLT5wYy0+ZXJyb3IpIHsKLQkJZGVidWdfbG9nKERCR19TRU5TRSwgIkJPUCAtICVzXG4iLAotCQkJCShyZWFkcG9zWzBdICYgMHg4MCkgPyAiWWVzIiA6ICJObyIpOwotCQlkZWJ1Z19sb2coREJHX1NFTlNFLCAiRU9QIC0gJXNcbiIsCi0JCQkJKHJlYWRwb3NbMF0gJiAweDQwKSA/ICJZZXMiIDogIk5vIik7Ci0KLQkJaWYgKHJlYWRwb3NbMF0gJiAweDQpIHsKLQkJCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBCbG9jayBsb2NhdGlvbiBpcyB1bmtub3duIgotCQkJCQkgInRvIHRoZSB0YXBlXG4iKTsKLQkJCWNsZWFyX2JpdChJREVUQVBFX0ZMQUdfQUREUkVTU19WQUxJRCwgJnRhcGUtPmZsYWdzKTsKLQkJCWlkZXRhcGVfZW5kX3JlcXVlc3QoZHJpdmUsIDAsIDApOwotCQl9IGVsc2UgewotCQkJZGVidWdfbG9nKERCR19TRU5TRSwgIkJsb2NrIExvY2F0aW9uIC0gJXVcbiIsCi0JCQkJCWJlMzJfdG9fY3B1KCoodTMyICopJnJlYWRwb3NbNF0pKTsKLQotCQkJdGFwZS0+cGFydGl0aW9uID0gcmVhZHBvc1sxXTsKLQkJCXRhcGUtPmZpcnN0X2ZyYW1lID0KLQkJCQliZTMyX3RvX2NwdSgqKHUzMiAqKSZyZWFkcG9zWzRdKTsKLQkJCXNldF9iaXQoSURFVEFQRV9GTEFHX0FERFJFU1NfVkFMSUQsICZ0YXBlLT5mbGFncyk7Ci0JCQlpZGV0YXBlX2VuZF9yZXF1ZXN0KGRyaXZlLCAxLCAwKTsKLQkJfQotCX0gZWxzZSB7Ci0JCWlkZXRhcGVfZW5kX3JlcXVlc3QoZHJpdmUsIDAsIDApOwotCX0KLQlyZXR1cm4gaWRlX3N0b3BwZWQ7Ci19Ci0KIC8qCiAgKiBXcml0ZSBhIGZpbGVtYXJrIGlmIHdyaXRlX2ZpbGVtYXJrPTEuIEZsdXNoIHRoZSBkZXZpY2UgYnVmZmVycyB3aXRob3V0CiAgKiB3cml0aW5nIGEgZmlsZW1hcmsgb3RoZXJ3aXNlLgpAQCAtMTQ5MiwxNCArMTI1MiwxMiBAQAogCXBjLT5jWzBdID0gV1JJVEVfRklMRU1BUktTOwogCXBjLT5jWzRdID0gd3JpdGVfZmlsZW1hcms7CiAJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfV0FJVF9GT1JfRFNDOwotCXBjLT5pZGV0YXBlX2NhbGxiYWNrID0gJmlkZXRhcGVfcGNfY2FsbGJhY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGlkZXRhcGVfY3JlYXRlX3Rlc3RfdW5pdF9yZWFkeV9jbWQoc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMpCiB7CiAJaWRldGFwZV9pbml0X3BjKHBjKTsKIAlwYy0+Y1swXSA9IFRFU1RfVU5JVF9SRUFEWTsKLQlwYy0+aWRldGFwZV9jYWxsYmFjayA9ICZpZGV0YXBlX3BjX2NhbGxiYWNrOwogfQogCiAvKgpAQCAtMTUxOCwxMiArMTI3NiwxNiBAQAogc3RhdGljIGludCBpZGV0YXBlX3F1ZXVlX3BjX3RhaWwoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYykKIHsKIAlzdHJ1Y3QgaWRlX3RhcGVfb2JqICp0YXBlID0gZHJpdmUtPmRyaXZlcl9kYXRhOwotCXN0cnVjdCByZXF1ZXN0IHJxOworCXN0cnVjdCByZXF1ZXN0ICpycTsKKwlpbnQgZXJyb3I7CiAKLQlpZGV0YXBlX2luaXRfcnEoJnJxLCBSRVFfSURFVEFQRV9QQzEpOwotCXJxLmJ1ZmZlciA9IChjaGFyICopIHBjOwotCXJxLnJxX2Rpc2sgPSB0YXBlLT5kaXNrOwotCXJldHVybiBpZGVfZG9fZHJpdmVfY21kKGRyaXZlLCAmcnEsIGlkZV93YWl0KTsKKwlycSA9IGJsa19nZXRfcmVxdWVzdChkcml2ZS0+cXVldWUsIFJFQUQsIF9fR0ZQX1dBSVQpOworCXJxLT5jbWRfdHlwZSA9IFJFUV9UWVBFX1NQRUNJQUw7CisJcnEtPmNtZFswXSA9IFJFUV9JREVUQVBFX1BDMTsKKwlycS0+YnVmZmVyID0gKGNoYXIgKilwYzsKKwllcnJvciA9IGJsa19leGVjdXRlX3JxKGRyaXZlLT5xdWV1ZSwgdGFwZS0+ZGlzaywgcnEsIDApOworCWJsa19wdXRfcmVxdWVzdChycSk7CisJcmV0dXJuIGVycm9yOwogfQogCiBzdGF0aWMgdm9pZCBpZGV0YXBlX2NyZWF0ZV9sb2FkX3VubG9hZF9jbWQoaWRlX2RyaXZlX3QgKmRyaXZlLApAQCAtMTUzMyw3ICsxMjk1LDYgQEAKIAlwYy0+Y1swXSA9IFNUQVJUX1NUT1A7CiAJcGMtPmNbNF0gPSBjbWQ7CiAJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfV0FJVF9GT1JfRFNDOwotCXBjLT5pZGV0YXBlX2NhbGxiYWNrID0gJmlkZXRhcGVfcGNfY2FsbGJhY2s7CiB9CiAKIHN0YXRpYyBpbnQgaWRldGFwZV93YWl0X3JlYWR5KGlkZV9kcml2ZV90ICpkcml2ZSwgdW5zaWduZWQgbG9uZyB0aW1lb3V0KQpAQCAtMTU4NSw3ICsxMzQ2LDYgQEAKIAlpZGV0YXBlX2luaXRfcGMocGMpOwogCXBjLT5jWzBdID0gUkVBRF9QT1NJVElPTjsKIAlwYy0+cmVxX3hmZXIgPSAyMDsKLQlwYy0+aWRldGFwZV9jYWxsYmFjayA9ICZpZGV0YXBlX3JlYWRfcG9zaXRpb25fY2FsbGJhY2s7CiB9CiAKIHN0YXRpYyBpbnQgaWRldGFwZV9yZWFkX3Bvc2l0aW9uKGlkZV9kcml2ZV90ICpkcml2ZSkKQEAgLTE2MTMsNyArMTM3Myw2IEBACiAJcHV0X3VuYWxpZ25lZChjcHVfdG9fYmUzMihibG9jayksICh1bnNpZ25lZCBpbnQgKikgJnBjLT5jWzNdKTsKIAlwYy0+Y1s4XSA9IHBhcnRpdGlvbjsKIAlwYy0+ZmxhZ3MgfD0gUENfRkxBR19XQUlUX0ZPUl9EU0M7Ci0JcGMtPmlkZXRhcGVfY2FsbGJhY2sgPSAmaWRldGFwZV9wY19jYWxsYmFjazsKIH0KIAogc3RhdGljIGludCBpZGV0YXBlX2NyZWF0ZV9wcmV2ZW50X2NtZChpZGVfZHJpdmVfdCAqZHJpdmUsCkBAIC0xNjI4LDcgKzEzODcsNiBAQAogCWlkZXRhcGVfaW5pdF9wYyhwYyk7CiAJcGMtPmNbMF0gPSBBTExPV19NRURJVU1fUkVNT1ZBTDsKIAlwYy0+Y1s0XSA9IHByZXZlbnQ7Ci0JcGMtPmlkZXRhcGVfY2FsbGJhY2sgPSAmaWRldGFwZV9wY19jYWxsYmFjazsKIAlyZXR1cm4gMTsKIH0KIApAQCAtMTcwMCwyNiArMTQ1OCwzMyBAQAogCQkJCSBzdHJ1Y3QgaWRldGFwZV9iaCAqYmgpCiB7CiAJaWRldGFwZV90YXBlX3QgKnRhcGUgPSBkcml2ZS0+ZHJpdmVyX2RhdGE7Ci0Jc3RydWN0IHJlcXVlc3QgcnE7CisJc3RydWN0IHJlcXVlc3QgKnJxOworCWludCByZXQsIGVycm9yczsKIAogCWRlYnVnX2xvZyhEQkdfU0VOU0UsICIlczogY21kPSVkXG4iLCBfX2Z1bmNfXywgY21kKTsKIAotCWlkZXRhcGVfaW5pdF9ycSgmcnEsIGNtZCk7Ci0JcnEucnFfZGlzayA9IHRhcGUtPmRpc2s7Ci0JcnEuc3BlY2lhbCA9ICh2b2lkICopYmg7Ci0JcnEuc2VjdG9yID0gdGFwZS0+Zmlyc3RfZnJhbWU7Ci0JcnEubnJfc2VjdG9ycwkJPSBibG9ja3M7Ci0JcnEuY3VycmVudF9ucl9zZWN0b3JzCT0gYmxvY2tzOwotCSh2b2lkKSBpZGVfZG9fZHJpdmVfY21kKGRyaXZlLCAmcnEsIGlkZV93YWl0KTsKKwlycSA9IGJsa19nZXRfcmVxdWVzdChkcml2ZS0+cXVldWUsIFJFQUQsIF9fR0ZQX1dBSVQpOworCXJxLT5jbWRfdHlwZSA9IFJFUV9UWVBFX1NQRUNJQUw7CisJcnEtPmNtZFswXSA9IGNtZDsKKwlycS0+cnFfZGlzayA9IHRhcGUtPmRpc2s7CisJcnEtPnNwZWNpYWwgPSAodm9pZCAqKWJoOworCXJxLT5zZWN0b3IgPSB0YXBlLT5maXJzdF9mcmFtZTsKKwlycS0+bnJfc2VjdG9ycyA9IGJsb2NrczsKKwlycS0+Y3VycmVudF9ucl9zZWN0b3JzID0gYmxvY2tzOworCWJsa19leGVjdXRlX3JxKGRyaXZlLT5xdWV1ZSwgdGFwZS0+ZGlzaywgcnEsIDApOworCisJZXJyb3JzID0gcnEtPmVycm9yczsKKwlyZXQgPSB0YXBlLT5ibGtfc2l6ZSAqIChibG9ja3MgLSBycS0+Y3VycmVudF9ucl9zZWN0b3JzKTsKKwlibGtfcHV0X3JlcXVlc3QocnEpOwogCiAJaWYgKChjbWQgJiAoUkVRX0lERVRBUEVfUkVBRCB8IFJFUV9JREVUQVBFX1dSSVRFKSkgPT0gMCkKIAkJcmV0dXJuIDA7CiAKIAlpZiAodGFwZS0+bWVyZ2VfYmgpCiAJCWlkZXRhcGVfaW5pdF9tZXJnZV9idWZmZXIodGFwZSk7Ci0JaWYgKHJxLmVycm9ycyA9PSBJREVUQVBFX0VSUk9SX0dFTkVSQUwpCisJaWYgKGVycm9ycyA9PSBJREVUQVBFX0VSUk9SX0dFTkVSQUwpCiAJCXJldHVybiAtRUlPOwotCXJldHVybiAodGFwZS0+YmxrX3NpemUgKiAoYmxvY2tzLXJxLmN1cnJlbnRfbnJfc2VjdG9ycykpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIGlkZXRhcGVfY3JlYXRlX2lucXVpcnlfY21kKHN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjKQpAQCAtMTcyOCw3ICsxNDkzLDYgQEAKIAlwYy0+Y1swXSA9IElOUVVJUlk7CiAJcGMtPmNbNF0gPSAyNTQ7CiAJcGMtPnJlcV94ZmVyID0gMjU0OwotCXBjLT5pZGV0YXBlX2NhbGxiYWNrID0gJmlkZXRhcGVfcGNfY2FsbGJhY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGlkZXRhcGVfY3JlYXRlX3Jld2luZF9jbWQoaWRlX2RyaXZlX3QgKmRyaXZlLApAQCAtMTczNyw3ICsxNTAxLDYgQEAKIAlpZGV0YXBlX2luaXRfcGMocGMpOwogCXBjLT5jWzBdID0gUkVaRVJPX1VOSVQ7CiAJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfV0FJVF9GT1JfRFNDOwotCXBjLT5pZGV0YXBlX2NhbGxiYWNrID0gJmlkZXRhcGVfcGNfY2FsbGJhY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGlkZXRhcGVfY3JlYXRlX2VyYXNlX2NtZChzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYykKQEAgLTE3NDYsNyArMTUwOSw2IEBACiAJcGMtPmNbMF0gPSBFUkFTRTsKIAlwYy0+Y1sxXSA9IDE7CiAJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfV0FJVF9GT1JfRFNDOwotCXBjLT5pZGV0YXBlX2NhbGxiYWNrID0gJmlkZXRhcGVfcGNfY2FsbGJhY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGlkZXRhcGVfY3JlYXRlX3NwYWNlX2NtZChzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYywgaW50IGNvdW50LCB1OCBjbWQpCkBAIC0xNzU2LDcgKzE1MTgsNiBAQAogCXB1dF91bmFsaWduZWQoY3B1X3RvX2JlMzIoY291bnQpLCAodW5zaWduZWQgaW50ICopICZwYy0+Y1sxXSk7CiAJcGMtPmNbMV0gPSBjbWQ7CiAJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfV0FJVF9GT1JfRFNDOwotCXBjLT5pZGV0YXBlX2NhbGxiYWNrID0gJmlkZXRhcGVfcGNfY2FsbGJhY2s7CiB9CiAKIC8qIFF1ZXVlIHVwIGEgY2hhcmFjdGVyIGRldmljZSBvcmlnaW5hdGVkIHdyaXRlIHJlcXVlc3QuICovCkBAIC0yNDIxLDkgKzIxODIsMTIgQEAKIAlpZiAoaSA+PSBNQVhfSFdJRlMgKiBNQVhfRFJJVkVTKQogCQlyZXR1cm4gLUVOWElPOwogCisJbG9ja19rZXJuZWwoKTsKIAl0YXBlID0gaWRlX3RhcGVfY2hyZGV2X2dldChpKTsKLQlpZiAoIXRhcGUpCisJaWYgKCF0YXBlKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTlhJTzsKKwl9CiAKIAlkZWJ1Z19sb2coREJHX0NIUkRFViwgIkVudGVyICVzXG4iLCBfX2Z1bmNfXyk7CiAKQEAgLTI0ODIsMTAgKzIyNDYsMTIgQEAKIAkJCX0KIAkJfQogCX0KKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIG91dF9wdXRfdGFwZToKIAlpZGVfdGFwZV9wdXQodGFwZSk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXR2YWw7CiB9CiAKQEAgLTI3NDYsOSArMjUxMiw4IEBACiAJICogRW5zdXJlIHRoYXQgdGhlIG51bWJlciB3ZSBnb3QgbWFrZXMgc2Vuc2U7IGxpbWl0IGl0IHdpdGhpbgogCSAqIElERVRBUEVfRFNDX1JXX01JTiBhbmQgSURFVEFQRV9EU0NfUldfTUFYLgogCSAqLwotCXRhcGUtPmJlc3RfZHNjX3J3X2ZyZXEgPSBtYXhfdCh1bnNpZ25lZCBsb25nLAotCQkJCW1pbl90KHVuc2lnbmVkIGxvbmcsIHQsIElERVRBUEVfRFNDX1JXX01BWCksCi0JCQkJSURFVEFQRV9EU0NfUldfTUlOKTsKKwl0YXBlLT5iZXN0X2RzY19yd19mcmVxID0gY2xhbXBfdCh1bnNpZ25lZCBsb25nLCB0LCBJREVUQVBFX0RTQ19SV19NSU4sCisJCQkJCSBJREVUQVBFX0RTQ19SV19NQVgpOwogCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiAlcyA8LT4gJXM6ICVkS0JwcywgJWQqJWRrQiBidWZmZXIsICIKIAkJIiVsdW1zIHREU0Mlc1xuIiwKIAkJZHJpdmUtPm5hbWUsIHRhcGUtPm5hbWUsICoodTE2ICopJnRhcGUtPmNhcHNbMTRdLApAQCAtMjkwMCwxMSArMjY2NSw2IEBACiAJCQkJIiB0aGUgZHJpdmVyXG4iLCBkcml2ZS0+bmFtZSk7CiAJCWdvdG8gZmFpbGVkOwogCX0KLQlpZiAoZHJpdmUtPnNjc2kpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6IHBhc3NpbmcgZHJpdmUgJXMgdG8gaWRlLXNjc2kiCi0JCQkJICIgZW11bGF0aW9uLlxuIiwgZHJpdmUtPm5hbWUpOwotCQlnb3RvIGZhaWxlZDsKLQl9CiAJdGFwZSA9IGt6YWxsb2Moc2l6ZW9mKGlkZXRhcGVfdGFwZV90KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKHRhcGUgPT0gTlVMTCkgewogCQlwcmludGsoS0VSTl9FUlIgImlkZS10YXBlOiAlczogQ2FuJ3QgYWxsb2NhdGUgYSB0YXBlIHN0cnVjdFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS10YXNrZmlsZS5jIGIvZHJpdmVycy9pZGUvaWRlLXRhc2tmaWxlLmMKaW5kZXggYWI1NDVmZi4uY2Y1NWE0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLXRhc2tmaWxlLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLXRhc2tmaWxlLmMKQEAgLTEwOSwxMyArMTA5LDE1IEBACiAKIAlpZiAoKHRhc2stPnRmX2ZsYWdzICYgSURFX1RGTEFHX0RNQV9QSU9fRkFMTEJBQ0spID09IDApIHsKIAkJaWRlX3RmX2R1bXAoZHJpdmUtPm5hbWUsIHRmKTsKKwkJaWRlX3NldF9pcnEoZHJpdmUsIDEpOworCQlTRUxFQ1RfTUFTSyhkcml2ZSwgMCk7CiAJCWh3aWYtPnRmX2xvYWQoZHJpdmUsIHRhc2spOwogCX0KIAogCXN3aXRjaCAodGFzay0+ZGF0YV9waGFzZSkgewogCWNhc2UgVEFTS0ZJTEVfTVVMVElfT1VUOgogCWNhc2UgVEFTS0ZJTEVfT1VUOgotCQlod2lmLT5PVVRCU1lOQyhkcml2ZSwgdGYtPmNvbW1hbmQsIGh3aWYtPmlvX3BvcnRzLmNvbW1hbmRfYWRkcik7CisJCWh3aWYtPk9VVEJTWU5DKGh3aWYsIHRmLT5jb21tYW5kLCBod2lmLT5pb19wb3J0cy5jb21tYW5kX2FkZHIpOwogCQluZGVsYXkoNDAwKTsJLyogRklYTUUgKi8KIAkJcmV0dXJuIHByZV90YXNrX291dF9pbnRyKGRyaXZlLCB0YXNrLT5ycSk7CiAJY2FzZSBUQVNLRklMRV9NVUxUSV9JTjoKQEAgLTQ5MiwxMSArNDk0LDEyIEBACiAKIGludCBpZGVfcmF3X3Rhc2tmaWxlKGlkZV9kcml2ZV90ICpkcml2ZSwgaWRlX3Rhc2tfdCAqdGFzaywgdTggKmJ1ZiwgdTE2IG5zZWN0KQogewotCXN0cnVjdCByZXF1ZXN0IHJxOworCXN0cnVjdCByZXF1ZXN0ICpycTsKKwlpbnQgZXJyb3I7CiAKLQlibGtfcnFfaW5pdChOVUxMLCAmcnEpOwotCXJxLmNtZF90eXBlID0gUkVRX1RZUEVfQVRBX1RBU0tGSUxFOwotCXJxLmJ1ZmZlciA9IGJ1ZjsKKwlycSA9IGJsa19nZXRfcmVxdWVzdChkcml2ZS0+cXVldWUsIFJFQUQsIF9fR0ZQX1dBSVQpOworCXJxLT5jbWRfdHlwZSA9IFJFUV9UWVBFX0FUQV9UQVNLRklMRTsKKwlycS0+YnVmZmVyID0gYnVmOwogCiAJLyoKIAkgKiAoa3MpIFdlIHRyYW5zZmVyIGN1cnJlbnRseSBvbmx5IHdob2xlIHNlY3RvcnMuCkBAIC01MDQsMTYgKzUwNywxOSBAQAogCSAqIGlmIHdlIHdvdWxkIGZpbmQgYSBzb2x1dGlvbiB0byB0cmFuc2ZlciBhbnkgc2l6ZS4KIAkgKiBUbyBzdXBwb3J0IHNwZWNpYWwgY29tbWFuZHMgbGlrZSBSRUFEIExPTkcuCiAJICovCi0JcnEuaGFyZF9ucl9zZWN0b3JzID0gcnEubnJfc2VjdG9ycyA9IG5zZWN0OwotCXJxLmhhcmRfY3VyX3NlY3RvcnMgPSBycS5jdXJyZW50X25yX3NlY3RvcnMgPSBuc2VjdDsKKwlycS0+aGFyZF9ucl9zZWN0b3JzID0gcnEtPm5yX3NlY3RvcnMgPSBuc2VjdDsKKwlycS0+aGFyZF9jdXJfc2VjdG9ycyA9IHJxLT5jdXJyZW50X25yX3NlY3RvcnMgPSBuc2VjdDsKIAogCWlmICh0YXNrLT50Zl9mbGFncyAmIElERV9URkxBR19XUklURSkKLQkJcnEuY21kX2ZsYWdzIHw9IFJFUV9SVzsKKwkJcnEtPmNtZF9mbGFncyB8PSBSRVFfUlc7CiAKLQlycS5zcGVjaWFsID0gdGFzazsKLQl0YXNrLT5ycSA9ICZycTsKKwlycS0+c3BlY2lhbCA9IHRhc2s7CisJdGFzay0+cnEgPSBycTsKIAotCXJldHVybiBpZGVfZG9fZHJpdmVfY21kKGRyaXZlLCAmcnEsIGlkZV93YWl0KTsKKwllcnJvciA9IGJsa19leGVjdXRlX3JxKGRyaXZlLT5xdWV1ZSwgTlVMTCwgcnEsIDApOworCWJsa19wdXRfcmVxdWVzdChycSk7CisKKwlyZXR1cm4gZXJyb3I7CiB9CiAKIEVYUE9SVF9TWU1CT0woaWRlX3Jhd190YXNrZmlsZSk7CkBAIC03MzksMTIgKzc0NSwxNCBAQAogCXN0cnVjdCBoZF9kcml2ZWlkICppZCA9IGRyaXZlLT5pZDsKIAogCWlmIChOVUxMID09ICh2b2lkICopIGFyZykgewotCQlzdHJ1Y3QgcmVxdWVzdCBycTsKKwkJc3RydWN0IHJlcXVlc3QgKnJxOwogCi0JCWlkZV9pbml0X2RyaXZlX2NtZCgmcnEpOwotCQlycS5jbWRfdHlwZSA9IFJFUV9UWVBFX0FUQV9UQVNLRklMRTsKKwkJcnEgPSBibGtfZ2V0X3JlcXVlc3QoZHJpdmUtPnF1ZXVlLCBSRUFELCBfX0dGUF9XQUlUKTsKKwkJcnEtPmNtZF90eXBlID0gUkVRX1RZUEVfQVRBX1RBU0tGSUxFOworCQllcnIgPSBibGtfZXhlY3V0ZV9ycShkcml2ZS0+cXVldWUsIE5VTEwsIHJxLCAwKTsKKwkJYmxrX3B1dF9yZXF1ZXN0KHJxKTsKIAotCQlyZXR1cm4gaWRlX2RvX2RyaXZlX2NtZChkcml2ZSwgJnJxLCBpZGVfd2FpdCk7CisJCXJldHVybiBlcnI7CiAJfQogCiAJaWYgKGNvcHlfZnJvbV91c2VyKGFyZ3MsICh2b2lkIF9fdXNlciAqKWFyZywgNCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUtdGltaW5nLmggYi9kcml2ZXJzL2lkZS9pZGUtdGltaW5nLmgKaW5kZXggM2IxMmZmZS4uMmU5MWM1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLXRpbWluZy5oCisrKyBiL2RyaXZlcnMvaWRlL2lkZS10aW1pbmcuaApAQCAtOTUsNyArOTUsNiBAQAogI2RlZmluZSBJREVfVElNSU5HX1VETUEJCTB4ODAKICNkZWZpbmUgSURFX1RJTUlOR19BTEwJCTB4ZmYKIAotI2RlZmluZSBGSVQodix2bWluLHZtYXgpCW1heF90KHNob3J0LG1pbl90KHNob3J0LHYsdm1heCksdm1pbikKICNkZWZpbmUgRU5PVUdIKHYsdW5pdCkJCSgoKHYpLTEpLyh1bml0KSsxKQogI2RlZmluZSBFWih2LHVuaXQpCQkoKHYpP0VOT1VHSCh2LHVuaXQpOjApCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS5jIGIvZHJpdmVycy9pZGUvaWRlLmMKaW5kZXggYzc1OGRjYi4uMmI4NDUzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvaWRlLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLmMKQEAgLTg2LDEzICs4NiwxMCBAQAogCQkJCQlJREU2X01BSk9SLCBJREU3X01BSk9SLAogCQkJCQlJREU4X01BSk9SLCBJREU5X01BSk9SIH07CiAKLXN0YXRpYyBpbnQgaWRlYnVzX3BhcmFtZXRlcjsJLyogaG9sZHMgdGhlICJpZGVidXM9IiBwYXJhbWV0ZXIgKi8KLXN0YXRpYyBpbnQgc3lzdGVtX2J1c19zcGVlZDsJLyogaG9sZHMgd2hhdCB3ZSB0aGluayBpcyBWRVNBL1BDSSBidXMgc3BlZWQgKi8KLQogREVGSU5FX01VVEVYKGlkZV9jZmdfbXR4KTsKLSBfX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcCBERUZJTkVfU1BJTkxPQ0soaWRlX2xvY2spOwogCi1pbnQgbm9hdXRvZG1hID0gMDsKK19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wIERFRklORV9TUElOTE9DSyhpZGVfbG9jayk7CitFWFBPUlRfU1lNQk9MKGlkZV9sb2NrKTsKIAogaWRlX2h3aWZfdCBpZGVfaHdpZnNbTUFYX0hXSUZTXTsJLyogbWFzdGVyIGRhdGEgcmVwb3NpdG9yeSAqLwogCkBAIC0xMzksNyArMTM2LDYgQEAKIAkJZHJpdmUtPm1lZGlhCQkJPSBpZGVfZGlzazsKIAkJZHJpdmUtPnNlbGVjdC5hbGwJCT0gKHVuaXQ8PDQpfDB4YTA7CiAJCWRyaXZlLT5od2lmCQkJPSBod2lmOwotCQlkcml2ZS0+Y3RsCQkJPSAweDA4OwogCQlkcml2ZS0+cmVhZHlfc3RhdAkJPSBSRUFEWV9TVEFUOwogCQlkcml2ZS0+YmFkX3dzdGF0CQk9IEJBRF9XX1NUQVQ7CiAJCWRyaXZlLT5zcGVjaWFsLmIucmVjYWxpYnJhdGUJPSAxOwpAQCAtMTU0LDMyICsxNTAsOSBAQAogCX0KIH0KIAotLyoKLSAqIGluaXRfaWRlX2RhdGEoKSBzZXRzIHJlYXNvbmFibGUgZGVmYXVsdCB2YWx1ZXMgaW50byBhbGwgZmllbGRzCi0gKiBvZiBhbGwgaW5zdGFuY2VzIG9mIHRoZSBod2lmcyBhbmQgZHJpdmVzLCBidXQgb25seSBvbiB0aGUgZmlyc3QgY2FsbC4KLSAqIFN1YnNlcXVlbnQgY2FsbHMgaGF2ZSBubyBlZmZlY3QgKHRoZXkgZG9uJ3Qgd2lwZSBvdXQgYW55dGhpbmcpLgotICoKLSAqIFRoaXMgcm91dGluZSBpcyBub3JtYWxseSBjYWxsZWQgYXQgZHJpdmVyIGluaXRpYWxpemF0aW9uIHRpbWUsCi0gKiBidXQgbWF5IGFsc28gYmUgY2FsbGVkIE1VQ0ggZWFybGllciBkdXJpbmcga2VybmVsICJjb21tYW5kLWxpbmUiCi0gKiBwYXJhbWV0ZXIgcHJvY2Vzc2luZy4gIEFzIHN1Y2gsIHdlIGNhbm5vdCBkZXBlbmQgb24gYW55IG90aGVyIHBhcnRzCi0gKiBvZiB0aGUga2VybmVsIChzdWNoIGFzIG1lbW9yeSBhbGxvY2F0aW9uKSB0byBiZSBmdW5jdGlvbmluZyB5ZXQuCi0gKgotICogVGhpcyBpcyB0b28gYmFkLCBhcyBvdGhlcndpc2Ugd2UgY291bGQgZHluYW1pY2FsbHkgYWxsb2NhdGUgdGhlCi0gKiBpZGVfZHJpdmVfdCBzdHJ1Y3RzIGFzIG5lZWRlZCwgcmF0aGVyIHRoYW4gYWx3YXlzIGNvbnN1bWluZyBtZW1vcnkKLSAqIGZvciB0aGUgbWF4IHBvc3NpYmxlIG51bWJlciAoTUFYX0hXSUZTICogTUFYX0RSSVZFUykgb2YgdGhlbS4KLSAqCi0gKiBGSVhNRTogV2Ugc2hvdWxkIHN0dWZmIHRoZSBzZXR1cCBkYXRhIGludG8gX19pbml0IGFuZCBjb3B5IHRoZQotICogcmVsZXZhbnQgaHdpZnMvYWxsb2NhdGUgdGhlbSBwcm9wZXJseSBkdXJpbmcgYm9vdC4KLSAqLwotI2RlZmluZSBNQUdJQ19DT09LSUUgMHgxMjM0NTY3OAogc3RhdGljIHZvaWQgX19pbml0IGluaXRfaWRlX2RhdGEgKHZvaWQpCiB7CiAJdW5zaWduZWQgaW50IGluZGV4OwotCXN0YXRpYyB1bnNpZ25lZCBsb25nIG1hZ2ljX2Nvb2tpZSA9IE1BR0lDX0NPT0tJRTsKLQotCWlmIChtYWdpY19jb29raWUgIT0gTUFHSUNfQ09PS0lFKQotCQlyZXR1cm47CQkvKiBhbHJlYWR5IGluaXRpYWxpemVkICovCi0JbWFnaWNfY29va2llID0gMDsKIAogCS8qIEluaXRpYWxpc2UgYWxsIGludGVyZmFjZSBzdHJ1Y3R1cmVzICovCiAJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgTUFYX0hXSUZTOyArK2luZGV4KSB7CkBAIC0xODksMzggKzE2Miw2IEBACiAJfQogfQogCi0vKioKLSAqCWlkZV9zeXN0ZW1fYnVzX3NwZWVkCS0JZ3Vlc3MgYnVzIHNwZWVkCi0gKgotICoJaWRlX3N5c3RlbV9idXNfc3BlZWQoKSByZXR1cm5zIHdoYXQgd2UgdGhpbmsgaXMgdGhlIHN5c3RlbSBWRVNBL1BDSQotICoJYnVzIHNwZWVkIChpbiBNSHopLiBUaGlzIGlzIHVzZWQgZm9yIGNhbGN1bGF0aW5nIGludGVyZmFjZSBQSU8gdGltaW5ncy4KLSAqCVRoZSBkZWZhdWx0IGlzIDQwIGZvciBrbm93biBQQ0kgc3lzdGVtcywgNTAgb3RoZXJ3aXNlLgotICoJVGhlICJpZGVidXM9eHgiIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGlzIHZhbHVlLgotICoJVGhlIGFjdHVhbCB2YWx1ZSB0byBiZSB1c2VkIGlzIGNvbXB1dGVkL2Rpc3BsYXllZCB0aGUgZmlyc3QgdGltZQotICoJdGhyb3VnaC4gRHJpdmVycyBzaG91bGQgb25seSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LgotICoKLSAqCVJldHVybnMgYSBndWVzc2VkIHNwZWVkIGluIE1Iei4KLSAqLwotCi1zdGF0aWMgaW50IGlkZV9zeXN0ZW1fYnVzX3NwZWVkKHZvaWQpCi17Ci0jaWZkZWYgQ09ORklHX1BDSQotCXN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfZGVmYXVsdFtdID0gewotCQl7IFBDSV9ERVZJQ0UoUENJX0FOWV9JRCwgUENJX0FOWV9JRCkgfSwKLQkJeyB9Ci0JfTsKLSNlbHNlCi0jZGVmaW5lIHBjaV9kZWZhdWx0IDAKLSNlbmRpZiAvKiBDT05GSUdfUENJICovCi0KLQkvKiB1c2VyIHN1cHBsaWVkIHZhbHVlICovCi0JaWYgKGlkZWJ1c19wYXJhbWV0ZXIpCi0JCXJldHVybiBpZGVidXNfcGFyYW1ldGVyOwotCi0JLyogc2FmZSBkZWZhdWx0IHZhbHVlIGZvciBQQ0kgb3IgVkVTQSBhbmQgUENJKi8KLQlyZXR1cm4gcGNpX2Rldl9wcmVzZW50KHBjaV9kZWZhdWx0KSA/IDMzIDogNTA7Ci19Ci0KIHZvaWQgaWRlX3JlbW92ZV9wb3J0X2Zyb21faHdncm91cChpZGVfaHdpZl90ICpod2lmKQogewogCWlkZV9od2dyb3VwX3QgKmh3Z3JvdXAgPSBod2lmLT5od2dyb3VwOwpAQCAtMzE1LDEzICsyNTYsMTQgQEAKIAogCUJVR19PTihpbl9pbnRlcnJ1cHQoKSk7CiAJQlVHX09OKGlycXNfZGlzYWJsZWQoKSk7Ci0JbXV0ZXhfbG9jaygmaWRlX2NmZ19tdHgpOwotCXNwaW5fbG9ja19pcnEoJmlkZV9sb2NrKTsKLQlpZiAoIWh3aWYtPnByZXNlbnQpCi0JCWdvdG8gYWJvcnQ7Ci0JX19pZGVfcG9ydF91bnJlZ2lzdGVyX2RldmljZXMoaHdpZik7Ci0JaHdpZi0+cHJlc2VudCA9IDA7CiAKKwltdXRleF9sb2NrKCZpZGVfY2ZnX210eCk7CisKKwlzcGluX2xvY2tfaXJxKCZpZGVfbG9jayk7CisJaWYgKGh3aWYtPnByZXNlbnQpIHsKKwkJX19pZGVfcG9ydF91bnJlZ2lzdGVyX2RldmljZXMoaHdpZik7CisJCWh3aWYtPnByZXNlbnQgPSAwOworCX0KIAlzcGluX3VubG9ja19pcnEoJmlkZV9sb2NrKTsKIAogCWlkZV9wcm9jX3VucmVnaXN0ZXJfcG9ydChod2lmKTsKQEAgLTM1MSwxNiArMjkzLDE1IEBACiAJYmxrX3VucmVnaXN0ZXJfcmVnaW9uKE1LREVWKGh3aWYtPm1ham9yLCAwKSwgTUFYX0RSSVZFUzw8UEFSVE5fQklUUyk7CiAJa2ZyZWUoaHdpZi0+c2dfdGFibGUpOwogCXVucmVnaXN0ZXJfYmxrZGV2KGh3aWYtPm1ham9yLCBod2lmLT5uYW1lKTsKLQlzcGluX2xvY2tfaXJxKCZpZGVfbG9jayk7CiAKIAlpZiAoaHdpZi0+ZG1hX2Jhc2UpCiAJCWlkZV9yZWxlYXNlX2RtYV9lbmdpbmUoaHdpZik7CiAKKwlzcGluX2xvY2tfaXJxKCZpZGVfbG9jayk7CiAJLyogcmVzdG9yZSBod2lmIGRhdGEgdG8gcHJpc3RpbmUgc3RhdHVzICovCiAJaWRlX2luaXRfcG9ydF9kYXRhKGh3aWYsIGh3aWYtPmluZGV4KTsKLQotYWJvcnQ6CiAJc3Bpbl91bmxvY2tfaXJxKCZpZGVfbG9jayk7CisKIAltdXRleF91bmxvY2soJmlkZV9jZmdfbXR4KTsKIH0KIApAQCAtNDk4LDcgKzQzOSw3IEBACiAKIGludCBzZXRfcGlvX21vZGUoaWRlX2RyaXZlX3QgKmRyaXZlLCBpbnQgYXJnKQogewotCXN0cnVjdCByZXF1ZXN0IHJxOworCXN0cnVjdCByZXF1ZXN0ICpycTsKIAlpZGVfaHdpZl90ICpod2lmID0gZHJpdmUtPmh3aWY7CiAJY29uc3Qgc3RydWN0IGlkZV9wb3J0X29wcyAqcG9ydF9vcHMgPSBod2lmLT5wb3J0X29wczsKIApAQCAtNTEyLDEyICs0NTMsMTUgQEAKIAlpZiAoZHJpdmUtPnNwZWNpYWwuYi5zZXRfdHVuZSkKIAkJcmV0dXJuIC1FQlVTWTsKIAotCWlkZV9pbml0X2RyaXZlX2NtZCgmcnEpOwotCXJxLmNtZF90eXBlID0gUkVRX1RZUEVfQVRBX1RBU0tGSUxFOworCXJxID0gYmxrX2dldF9yZXF1ZXN0KGRyaXZlLT5xdWV1ZSwgUkVBRCwgX19HRlBfV0FJVCk7CisJcnEtPmNtZF90eXBlID0gUkVRX1RZUEVfQVRBX1RBU0tGSUxFOwogCiAJZHJpdmUtPnR1bmVfcmVxID0gKHU4KSBhcmc7CiAJZHJpdmUtPnNwZWNpYWwuYi5zZXRfdHVuZSA9IDE7Ci0JKHZvaWQpIGlkZV9kb19kcml2ZV9jbWQoZHJpdmUsICZycSwgaWRlX3dhaXQpOworCisJYmxrX2V4ZWN1dGVfcnEoZHJpdmUtPnF1ZXVlLCBOVUxMLCBycSwgMCk7CisJYmxrX3B1dF9yZXF1ZXN0KHJxKTsKKwogCXJldHVybiAwOwogfQogCkBAIC01MzcsMjUgKzQ4MSwxMSBAQAogCXJldHVybiAwOwogfQogCi0vKioKLSAqCXN5c3RlbV9idXNfY2xvY2sJLQljbG9jayBndWVzcwotICoKLSAqCUV4dGVybmFsIHZlcnNpb24gb2YgdGhlIGJ1cyBjbG9jayBndWVzcyB1c2VkIGJ5IHZlcnkgb2xkIElERSBkcml2ZXJzCi0gKglmb3IgdGhpbmdzIGxpa2UgVkxCIHRpbWluZ3MuIFNob3VsZCBub3QgYmUgdXNlZC4KLSAqLwotCi1pbnQgc3lzdGVtX2J1c19jbG9jayAodm9pZCkKLXsKLQlyZXR1cm4gc3lzdGVtX2J1c19zcGVlZDsKLX0KLQotRVhQT1JUX1NZTUJPTChzeXN0ZW1fYnVzX2Nsb2NrKTsKLQogc3RhdGljIGludCBnZW5lcmljX2lkZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IG1lc2cpCiB7CiAJaWRlX2RyaXZlX3QgKmRyaXZlID0gZGV2LT5kcml2ZXJfZGF0YTsKIAlpZGVfaHdpZl90ICpod2lmID0gSFdJRihkcml2ZSk7Ci0Jc3RydWN0IHJlcXVlc3QgcnE7CisJc3RydWN0IHJlcXVlc3QgKnJxOwogCXN0cnVjdCByZXF1ZXN0X3BtX3N0YXRlIHJxcG07CiAJaWRlX3Rhc2tfdCBhcmdzOwogCWludCByZXQ7CkBAIC01NjQsMTggKzQ5NCwxOSBAQAogCWlmICghKGRyaXZlLT5kbiAlIDIpKQogCQlpZGVfYWNwaV9nZXRfdGltaW5nKGh3aWYpOwogCi0JYmxrX3JxX2luaXQoTlVMTCwgJnJxKTsKIAltZW1zZXQoJnJxcG0sIDAsIHNpemVvZihycXBtKSk7CiAJbWVtc2V0KCZhcmdzLCAwLCBzaXplb2YoYXJncykpOwotCXJxLmNtZF90eXBlID0gUkVRX1RZUEVfUE1fU1VTUEVORDsKLQlycS5zcGVjaWFsID0gJmFyZ3M7Ci0JcnEuZGF0YSA9ICZycXBtOworCXJxID0gYmxrX2dldF9yZXF1ZXN0KGRyaXZlLT5xdWV1ZSwgUkVBRCwgX19HRlBfV0FJVCk7CisJcnEtPmNtZF90eXBlID0gUkVRX1RZUEVfUE1fU1VTUEVORDsKKwlycS0+c3BlY2lhbCA9ICZhcmdzOworCXJxLT5kYXRhID0gJnJxcG07CiAJcnFwbS5wbV9zdGVwID0gaWRlX3BtX3N0YXRlX3N0YXJ0X3N1c3BlbmQ7CiAJaWYgKG1lc2cuZXZlbnQgPT0gUE1fRVZFTlRfUFJFVEhBVykKIAkJbWVzZy5ldmVudCA9IFBNX0VWRU5UX0ZSRUVaRTsKIAlycXBtLnBtX3N0YXRlID0gbWVzZy5ldmVudDsKIAotCXJldCA9IGlkZV9kb19kcml2ZV9jbWQoZHJpdmUsICZycSwgaWRlX3dhaXQpOworCXJldCA9IGJsa19leGVjdXRlX3JxKGRyaXZlLT5xdWV1ZSwgTlVMTCwgcnEsIDApOworCWJsa19wdXRfcmVxdWVzdChycSk7CiAJLyogb25seSBjYWxsIEFDUEkgX1BTMyBhZnRlciBib3RoIGRyaXZlcnMgYXJlIHN1c3BlbmRlZCAqLwogCWlmICghcmV0ICYmICgoKGRyaXZlLT5kbiAlIDIpICYmIGh3aWYtPmRyaXZlc1swXS5wcmVzZW50CiAJCSAmJiBod2lmLT5kcml2ZXNbMV0ucHJlc2VudCkKQEAgLTU4OSw3ICs1MjAsNyBAQAogewogCWlkZV9kcml2ZV90ICpkcml2ZSA9IGRldi0+ZHJpdmVyX2RhdGE7CiAJaWRlX2h3aWZfdCAqaHdpZiA9IEhXSUYoZHJpdmUpOwotCXN0cnVjdCByZXF1ZXN0IHJxOworCXN0cnVjdCByZXF1ZXN0ICpycTsKIAlzdHJ1Y3QgcmVxdWVzdF9wbV9zdGF0ZSBycXBtOwogCWlkZV90YXNrX3QgYXJnczsKIAlpbnQgZXJyOwpAQCAtNjAyLDE2ICs1MzMsMTggQEAKIAogCWlkZV9hY3BpX2V4ZWNfdGZzKGRyaXZlKTsKIAotCWJsa19ycV9pbml0KE5VTEwsICZycSk7CiAJbWVtc2V0KCZycXBtLCAwLCBzaXplb2YocnFwbSkpOwogCW1lbXNldCgmYXJncywgMCwgc2l6ZW9mKGFyZ3MpKTsKLQlycS5jbWRfdHlwZSA9IFJFUV9UWVBFX1BNX1JFU1VNRTsKLQlycS5zcGVjaWFsID0gJmFyZ3M7Ci0JcnEuZGF0YSA9ICZycXBtOworCXJxID0gYmxrX2dldF9yZXF1ZXN0KGRyaXZlLT5xdWV1ZSwgUkVBRCwgX19HRlBfV0FJVCk7CisJcnEtPmNtZF90eXBlID0gUkVRX1RZUEVfUE1fUkVTVU1FOworCXJxLT5jbWRfZmxhZ3MgfD0gUkVRX1BSRUVNUFQ7CisJcnEtPnNwZWNpYWwgPSAmYXJnczsKKwlycS0+ZGF0YSA9ICZycXBtOwogCXJxcG0ucG1fc3RlcCA9IGlkZV9wbV9zdGF0ZV9zdGFydF9yZXN1bWU7CiAJcnFwbS5wbV9zdGF0ZSA9IFBNX0VWRU5UX09OOwogCi0JZXJyID0gaWRlX2RvX2RyaXZlX2NtZChkcml2ZSwgJnJxLCBpZGVfaGVhZF93YWl0KTsKKwllcnIgPSBibGtfZXhlY3V0ZV9ycShkcml2ZS0+cXVldWUsIE5VTEwsIHJxLCAxKTsKKwlibGtfcHV0X3JlcXVlc3QocnEpOwogCiAJaWYgKGVyciA9PSAwICYmIGRldi0+ZHJpdmVyKSB7CiAJCWlkZV9kcml2ZXJfdCAqZHJ2ID0gdG9faWRlX2RyaXZlcihkZXYtPmRyaXZlcik7CkBAIC03NjQsMjEyICs2OTcsNiBAQAogCiBFWFBPUlRfU1lNQk9MKGdlbmVyaWNfaWRlX2lvY3RsKTsKIAotLyoKLSAqIHN0cmlkeCgpIHJldHVybnMgdGhlIG9mZnNldCBvZiBjIHdpdGhpbiBzLAotICogb3IgLTEgaWYgYyBpcyAnXDAnIG9yIG5vdCBmb3VuZCB3aXRoaW4gcy4KLSAqLwotc3RhdGljIGludCBfX2luaXQgc3RyaWR4IChjb25zdCBjaGFyICpzLCBjaGFyIGMpCi17Ci0JY2hhciAqaSA9IHN0cmNocihzLCBjKTsKLQlyZXR1cm4gKGkgJiYgYykgPyBpIC0gcyA6IC0xOwotfQotCi0vKgotICogbWF0Y2hfcGFybSgpIGRvZXMgcGFyc2luZyBmb3IgaWRlX3NldHVwKCk6Ci0gKgotICogMS4gdGhlIGZpcnN0IGNoYXIgb2YgcyBtdXN0IGJlICc9Jy4KLSAqIDIuIGlmIHRoZSByZW1haW5kZXIgbWF0Y2hlcyBvbmUgb2YgdGhlIHN1cHBsaWVkIGtleXdvcmRzLAotICogICAgIHRoZSBpbmRleCAoMSBiYXNlZCkgb2YgdGhlIGtleXdvcmQgaXMgbmVnYXRlZCBhbmQgcmV0dXJuZWQuCi0gKiAzLiBpZiB0aGUgcmVtYWluZGVyIGlzIGEgc2VyaWVzIG9mIG5vIG1vcmUgdGhhbiBtYXhfdmFscyBudW1iZXJzCi0gKiAgICAgc2VwYXJhdGVkIGJ5IGNvbW1hcywgdGhlIG51bWJlcnMgYXJlIHNhdmVkIGluIHZhbHNbXSBhbmQgYQotICogICAgIGNvdW50IG9mIGhvdyBtYW55IHdlcmUgc2F2ZWQgaXMgcmV0dXJuZWQuICBCYXNlMTAgaXMgYXNzdW1lZCwKLSAqICAgICBhbmQgYmFzZTE2IGlzIGFsbG93ZWQgd2hlbiBwcmVmaXhlZCB3aXRoICIweCIuCi0gKiA0LiBvdGhlcndpc2UsIHplcm8gaXMgcmV0dXJuZWQuCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IG1hdGNoX3Bhcm0gKGNoYXIgKnMsIGNvbnN0IGNoYXIgKmtleXdvcmRzW10sIGludCB2YWxzW10sIGludCBtYXhfdmFscykKLXsKLQlzdGF0aWMgY29uc3QgY2hhciAqZGVjaW1hbCA9ICIwMTIzNDU2Nzg5IjsKLQlzdGF0aWMgY29uc3QgY2hhciAqaGV4ID0gIjAxMjM0NTY3ODlhYmNkZWYiOwotCWludCBpLCBuOwotCi0JaWYgKCpzKysgPT0gJz0nKSB7Ci0JCS8qCi0JCSAqIFRyeSBtYXRjaGluZyBhZ2FpbnN0IHRoZSBzdXBwbGllZCBrZXl3b3JkcywKLQkJICogYW5kIHJldHVybiAtKGluZGV4KzEpIGlmIHdlIG1hdGNoIG9uZQotCQkgKi8KLQkJaWYgKGtleXdvcmRzICE9IE5VTEwpIHsKLQkJCWZvciAoaSA9IDA7ICprZXl3b3JkcyAhPSBOVUxMOyArK2kpIHsKLQkJCQlpZiAoIXN0cmNtcChzLCAqa2V5d29yZHMrKykpCi0JCQkJCXJldHVybiAtKGkrMSk7Ci0JCQl9Ci0JCX0KLQkJLyoKLQkJICogTG9vayBmb3IgYSBzZXJpZXMgb2Ygbm8gbW9yZSB0aGFuICJtYXhfdmFscyIKLQkJICogbnVtZXJpYyB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGNvbW1hcywgaW4gYmFzZTEwLAotCQkgKiBvciBiYXNlMTYgd2hlbiBwcmVmaXhlZCB3aXRoICIweCIuCi0JCSAqIFJldHVybiBhIGNvdW50IG9mIGhvdyBtYW55IHdlcmUgZm91bmQuCi0JCSAqLwotCQlmb3IgKG4gPSAwOyAoaSA9IHN0cmlkeChkZWNpbWFsLCAqcykpID49IDA7KSB7Ci0JCQl2YWxzW25dID0gaTsKLQkJCXdoaWxlICgoaSA9IHN0cmlkeChkZWNpbWFsLCAqKytzKSkgPj0gMCkKLQkJCQl2YWxzW25dID0gKHZhbHNbbl0gKiAxMCkgKyBpOwotCQkJaWYgKCpzID09ICd4JyAmJiAhdmFsc1tuXSkgewotCQkJCXdoaWxlICgoaSA9IHN0cmlkeChoZXgsICorK3MpKSA+PSAwKQotCQkJCQl2YWxzW25dID0gKHZhbHNbbl0gKiAweDEwKSArIGk7Ci0JCQl9Ci0JCQlpZiAoKytuID09IG1heF92YWxzKQotCQkJCWJyZWFrOwotCQkJaWYgKCpzID09ICcsJyB8fCAqcyA9PSAnOycpCi0JCQkJKytzOwotCQl9Ci0JCWlmICghKnMpCi0JCQlyZXR1cm4gbjsKLQl9Ci0JcmV0dXJuIDA7CS8qIHplcm8gPSBub3RoaW5nIG1hdGNoZWQgKi8KLX0KLQotLyoKLSAqIGlkZV9zZXR1cCgpIGdldHMgY2FsbGVkIFZFUlkgRUFSTFkgZHVyaW5nIGluaXRpYWxpemF0aW9uLAotICogdG8gaGFuZGxlIGtlcm5lbCAiY29tbWFuZCBsaW5lIiBzdHJpbmdzIGJlZ2lubmluZyB3aXRoICJoZHg9IiBvciAiaWRlIi4KLSAqCi0gKiBSZW1lbWJlciB0byB1cGRhdGUgRG9jdW1lbnRhdGlvbi9pZGUvaWRlLnR4dCBpZiB5b3UgY2hhbmdlIHNvbWV0aGluZyBoZXJlLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBpZGVfc2V0dXAoY2hhciAqcykKLXsKLQlpZGVfaHdpZl90ICpod2lmOwotCWlkZV9kcml2ZV90ICpkcml2ZTsKLQl1bnNpZ25lZCBpbnQgaHcsIHVuaXQ7Ci0JaW50IHZhbHNbM107Ci0JY29uc3QgY2hhciBtYXhfZHJpdmUgPSAnYScgKyAoKE1BWF9IV0lGUyAqIE1BWF9EUklWRVMpIC0gMSk7Ci0KLQlpZiAoc3RybmNtcChzLCJoZCIsMikgPT0gMCAmJiBzWzJdID09ICc9JykJLyogaGQ9IGlzIGZvciBoZC5jICAgKi8KLQkJcmV0dXJuIDA7CQkJCS8qIGRyaXZlciBhbmQgbm90IHVzICovCi0KLQlpZiAoc3RybmNtcChzLCJpZGUiLDMpICYmIHN0cm5jbXAocywiaWRlYnVzIiw2KSAmJiBzdHJuY21wKHMsImhkIiwyKSkKLQkJcmV0dXJuIDA7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJpZGVfc2V0dXA6ICVzIiwgcyk7Ci0JaW5pdF9pZGVfZGF0YSAoKTsKLQotI2lmZGVmIENPTkZJR19CTEtfREVWX0lERURPVUJMRVIKLQlpZiAoIXN0cmNtcChzLCAiaWRlPWRvdWJsZXIiKSkgewotCQlleHRlcm4gaW50IGlkZV9kb3VibGVyOwotCi0JCXByaW50aygiIDogRW5hYmxlZCBzdXBwb3J0IGZvciBJREUgZG91YmxlcnNcbiIpOwotCQlpZGVfZG91YmxlciA9IDE7Ci0JCWdvdG8gb2Jzb2xldGVfb3B0aW9uOwotCX0KLSNlbmRpZiAvKiBDT05GSUdfQkxLX0RFVl9JREVET1VCTEVSICovCi0KLQlpZiAoIXN0cmNtcChzLCAiaWRlPW5vZG1hIikpIHsKLQkJcHJpbnRrKCIgOiBQcmV2ZW50ZWQgRE1BXG4iKTsKLQkJbm9hdXRvZG1hID0gMTsKLQkJZ290byBvYnNvbGV0ZV9vcHRpb247Ci0JfQotCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSURFQUNQSQotCWlmICghc3RyY21wKHMsICJpZGU9bm9hY3BpIikpIHsKLQkJLy9wcmludGsoIiA6IERpc2FibGUgSURFIEFDUEkgc3VwcG9ydC5cbiIpOwotCQlpZGVfbm9hY3BpID0gMTsKLQkJZ290byBvYnNvbGV0ZV9vcHRpb247Ci0JfQotCWlmICghc3RyY21wKHMsICJpZGU9YWNwaWd0ZiIpKSB7Ci0JCS8vcHJpbnRrKCIgOiBFbmFibGUgSURFIEFDUEkgX0dURiBzdXBwb3J0LlxuIik7Ci0JCWlkZV9hY3BpZ3RmID0gMTsKLQkJZ290byBvYnNvbGV0ZV9vcHRpb247Ci0JfQotCWlmICghc3RyY21wKHMsICJpZGU9YWNwaW9uYm9vdCIpKSB7Ci0JCS8vcHJpbnRrKCIgOiBDYWxsIElERSBBQ1BJIG1ldGhvZHMgb24gYm9vdC5cbiIpOwotCQlpZGVfYWNwaW9uYm9vdCA9IDE7Ci0JCWdvdG8gb2Jzb2xldGVfb3B0aW9uOwotCX0KLSNlbmRpZiAvKiBDT05GSUdfQkxLX0RFVl9JREVBQ1BJICovCi0KLQkvKgotCSAqIExvb2sgZm9yIGRyaXZlIG9wdGlvbnM6ICAiaGR4PSIKLQkgKi8KLQlpZiAoc1swXSA9PSAnaCcgJiYgc1sxXSA9PSAnZCcgJiYgc1syXSA+PSAnYScgJiYgc1syXSA8PSBtYXhfZHJpdmUpIHsKLQkJY29uc3QgY2hhciAqaGRfd29yZHNbXSA9IHsKLQkJCSJub25lIiwgIm5vcHJvYmUiLCAibm93ZXJyIiwgImNkcm9tIiwgIm5vZG1hIiwKLQkJCSItNiIsICItNyIsICItOCIsICItOSIsICItMTAiLAotCQkJIm5vZmx1c2giLCAicmVtYXAiLCAicmVtYXA2MyIsICJzY3NpIiwgTlVMTCB9OwotCQl1bml0ID0gc1syXSAtICdhJzsKLQkJaHcgICA9IHVuaXQgLyBNQVhfRFJJVkVTOwotCQl1bml0ID0gdW5pdCAlIE1BWF9EUklWRVM7Ci0JCWh3aWYgPSAmaWRlX2h3aWZzW2h3XTsKLQkJZHJpdmUgPSAmaHdpZi0+ZHJpdmVzW3VuaXRdOwotCQlpZiAoc3RybmNtcChzICsgNCwgImlkZS0iLCA0KSA9PSAwKSB7Ci0JCQlzdHJsY3B5KGRyaXZlLT5kcml2ZXJfcmVxLCBzICsgNCwgc2l6ZW9mKGRyaXZlLT5kcml2ZXJfcmVxKSk7Ci0JCQlnb3RvIG9ic29sZXRlX29wdGlvbjsKLQkJfQotCQlzd2l0Y2ggKG1hdGNoX3Bhcm0oJnNbM10sIGhkX3dvcmRzLCB2YWxzLCAzKSkgewotCQkJY2FzZSAtMTogLyogIm5vbmUiICovCi0JCQljYXNlIC0yOiAvKiAibm9wcm9iZSIgKi8KLQkJCQlkcml2ZS0+bm9wcm9iZSA9IDE7Ci0JCQkJZ290byBvYnNvbGV0ZV9vcHRpb247Ci0JCQljYXNlIC0zOiAvKiAibm93ZXJyIiAqLwotCQkJCWRyaXZlLT5iYWRfd3N0YXQgPSBCQURfUl9TVEFUOwotCQkJCWdvdG8gb2Jzb2xldGVfb3B0aW9uOwotCQkJY2FzZSAtNDogLyogImNkcm9tIiAqLwotCQkJCWRyaXZlLT5wcmVzZW50ID0gMTsKLQkJCQlkcml2ZS0+bWVkaWEgPSBpZGVfY2Ryb207Ci0JCQkJLyogYW4gQVRBUEkgZGV2aWNlIGlnbm9yZXMgRFJEWSAqLwotCQkJCWRyaXZlLT5yZWFkeV9zdGF0ID0gMDsKLQkJCQlnb3RvIG9ic29sZXRlX29wdGlvbjsKLQkJCWNhc2UgLTU6IC8qIG5vZG1hICovCi0JCQkJZHJpdmUtPm5vZG1hID0gMTsKLQkJCQlnb3RvIG9ic29sZXRlX29wdGlvbjsKLQkJCWNhc2UgLTExOiAvKiBub2ZsdXNoICovCi0JCQkJZHJpdmUtPm5vZmx1c2ggPSAxOwotCQkJCWdvdG8gb2Jzb2xldGVfb3B0aW9uOwotCQkJY2FzZSAtMTI6IC8qICJyZW1hcCIgKi8KLQkJCQlkcml2ZS0+cmVtYXBfMF90b18xID0gMTsKLQkJCQlnb3RvIG9ic29sZXRlX29wdGlvbjsKLQkJCWNhc2UgLTEzOiAvKiAicmVtYXA2MyIgKi8KLQkJCQlkcml2ZS0+c2VjdDAgPSA2MzsKLQkJCQlnb3RvIG9ic29sZXRlX29wdGlvbjsKLQkJCWNhc2UgLTE0OiAvKiAic2NzaSIgKi8KLQkJCQlkcml2ZS0+c2NzaSA9IDE7Ci0JCQkJZ290byBvYnNvbGV0ZV9vcHRpb247Ci0JCQljYXNlIDM6IC8qIGN5bCxoZWFkLHNlY3QgKi8KLQkJCQlkcml2ZS0+bWVkaWEJPSBpZGVfZGlzazsKLQkJCQlkcml2ZS0+cmVhZHlfc3RhdCA9IFJFQURZX1NUQVQ7Ci0JCQkJZHJpdmUtPmN5bAk9IGRyaXZlLT5iaW9zX2N5bCAgPSB2YWxzWzBdOwotCQkJCWRyaXZlLT5oZWFkCT0gZHJpdmUtPmJpb3NfaGVhZCA9IHZhbHNbMV07Ci0JCQkJZHJpdmUtPnNlY3QJPSBkcml2ZS0+Ymlvc19zZWN0ID0gdmFsc1syXTsKLQkJCQlkcml2ZS0+cHJlc2VudAk9IDE7Ci0JCQkJZHJpdmUtPmZvcmNlZF9nZW9tID0gMTsKLQkJCQlnb3RvIG9ic29sZXRlX29wdGlvbjsKLQkJCWRlZmF1bHQ6Ci0JCQkJZ290byBiYWRfb3B0aW9uOwotCQl9Ci0JfQotCi0JaWYgKHNbMF0gIT0gJ2knIHx8IHNbMV0gIT0gJ2QnIHx8IHNbMl0gIT0gJ2UnKQotCQlnb3RvIGJhZF9vcHRpb247Ci0JLyoKLQkgKiBMb29rIGZvciBidXMgc3BlZWQgb3B0aW9uOiAgImlkZWJ1cz0iCi0JICovCi0JaWYgKHNbM10gPT0gJ2InICYmIHNbNF0gPT0gJ3UnICYmIHNbNV0gPT0gJ3MnKSB7Ci0JCWlmIChtYXRjaF9wYXJtKCZzWzZdLCBOVUxMLCB2YWxzLCAxKSAhPSAxKQotCQkJZ290byBiYWRfb3B0aW9uOwotCQlpZiAodmFsc1swXSA+PSAyMCAmJiB2YWxzWzBdIDw9IDY2KSB7Ci0JCQlpZGVidXNfcGFyYW1ldGVyID0gdmFsc1swXTsKLQkJfSBlbHNlCi0JCQlwcmludGsoIiAtLSBCQUQgQlVTIFNQRUVEISBFeHBlY3RlZCB2YWx1ZSBmcm9tIDIwIHRvIDY2Iik7Ci0JCWdvdG8gb2Jzb2xldGVfb3B0aW9uOwotCX0KLQotYmFkX29wdGlvbjoKLQlwcmludGsoIiAtLSBCQUQgT1BUSU9OXG4iKTsKLQlyZXR1cm4gMTsKLW9ic29sZXRlX29wdGlvbjoKLQlwcmludGsoIiAtLSBPQlNPTEVURSBPUFRJT04sIFdJTEwgQkUgUkVNT1ZFRCBTT09OIVxuIik7Ci0JcmV0dXJuIDE7Ci19Ci0KLUVYUE9SVF9TWU1CT0woaWRlX2xvY2spOwotCiBzdGF0aWMgaW50IGlkZV9idXNfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2KQogewogCXJldHVybiAxOwpAQCAtMTA5NCwxMyArODIxLDYgQEAKIAogRVhQT1JUX1NZTUJPTF9HUEwoaWRlX2J1c190eXBlKTsKIAotc3RhdGljIHZvaWQgaWRlX3BvcnRfY2xhc3NfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpwb3J0ZGV2KQotewotCWlkZV9od2lmX3QgKmh3aWYgPSBkZXZfZ2V0X2RydmRhdGEocG9ydGRldik7Ci0KLQlwdXRfZGV2aWNlKCZod2lmLT5nZW5kZXYpOwotfQotCiBpbnQgaWRlX3ZsYl9jbGs7CiBFWFBPUlRfU1lNQk9MX0dQTChpZGVfdmxiX2Nsayk7CiAKQEAgLTEyODgsMTEgKzEwMDgsNiBAQAogCWludCByZXQ7CiAKIAlwcmludGsoS0VSTl9JTkZPICJVbmlmb3JtIE11bHRpLVBsYXRmb3JtIEUtSURFIGRyaXZlclxuIik7Ci0Jc3lzdGVtX2J1c19zcGVlZCA9IGlkZV9zeXN0ZW1fYnVzX3NwZWVkKCk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJpZGU6IEFzc3VtaW5nICVkTUh6IHN5c3RlbSBidXMgc3BlZWQgIgotCQkJICJmb3IgUElPIG1vZGVzJXNcbiIsIHN5c3RlbV9idXNfc3BlZWQsCi0JCQlpZGVidXNfcGFyYW1ldGVyID8gIiIgOiAiOyBvdmVycmlkZSB3aXRoIGlkZWJ1cz14eCIpOwogCiAJcmV0ID0gYnVzX3JlZ2lzdGVyKCZpZGVfYnVzX3R5cGUpOwogCWlmIChyZXQgPCAwKSB7CkBAIC0xMzA1LDcgKzEwMjAsNiBAQAogCQlyZXQgPSBQVFJfRVJSKGlkZV9wb3J0X2NsYXNzKTsKIAkJZ290byBvdXRfcG9ydF9jbGFzczsKIAl9Ci0JaWRlX3BvcnRfY2xhc3MtPmRldl9yZWxlYXNlID0gaWRlX3BvcnRfY2xhc3NfcmVsZWFzZTsKIAogCWluaXRfaWRlX2RhdGEoKTsKIApAQCAtMTMxOSwzMiArMTAzMyw3IEBACiAJcmV0dXJuIHJldDsKIH0KIAotI2lmZGVmIE1PRFVMRQotc3RhdGljIGNoYXIgKm9wdGlvbnMgPSBOVUxMOwotbW9kdWxlX3BhcmFtKG9wdGlvbnMsIGNoYXJwLCAwKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX29wdGlvbnMgKGNoYXIgKmxpbmUpCi17Ci0JY2hhciAqbmV4dCA9IGxpbmU7Ci0KLQlpZiAobGluZSA9PSBOVUxMIHx8ICEqbGluZSkKLQkJcmV0dXJuOwotCXdoaWxlICgobGluZSA9IG5leHQpICE9IE5VTEwpIHsKLSAJCWlmICgobmV4dCA9IHN0cmNocihsaW5lLCcgJykpICE9IE5VTEwpCi0JCQkqbmV4dCsrID0gMDsKLQkJaWYgKCFpZGVfc2V0dXAobGluZSkpCi0JCQlwcmludGsgKEtFUk5fSU5GTyAiVW5rbm93biBvcHRpb24gJyVzJ1xuIiwgbGluZSk7Ci0JfQotfQotCi1pbnQgX19pbml0IGluaXRfbW9kdWxlICh2b2lkKQotewotCXBhcnNlX29wdGlvbnMob3B0aW9ucyk7Ci0JcmV0dXJuIGlkZV9pbml0KCk7Ci19Ci0KLXZvaWQgX19leGl0IGNsZWFudXBfbW9kdWxlICh2b2lkKQorc3RhdGljIHZvaWQgX19leGl0IGlkZV9leGl0KHZvaWQpCiB7CiAJcHJvY19pZGVfZGVzdHJveSgpOwogCkBAIC0xMzUzLDEwICsxMDQyLDcgQEAKIAlidXNfdW5yZWdpc3RlcigmaWRlX2J1c190eXBlKTsKIH0KIAotI2Vsc2UgLyogIU1PRFVMRSAqLwotCi1fX3NldHVwKCIiLCBpZGVfc2V0dXApOwotCiBtb2R1bGVfaW5pdChpZGVfaW5pdCk7Cittb2R1bGVfZXhpdChpZGVfZXhpdCk7CiAKLSNlbmRpZiAvKiBNT0RVTEUgKi8KK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9hbGkxNHh4LmMgYi9kcml2ZXJzL2lkZS9sZWdhY3kvYWxpMTR4eC5jCmluZGV4IDkwYzY1Y2YuLjA1MjEyNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9hbGkxNHh4LmMKKysrIGIvZHJpdmVycy9pZGUvbGVnYWN5L2FsaTE0eHguYwpAQCAtMTE2LDcgKzExNiw3IEBACiAJaW50IHRpbWUxLCB0aW1lMjsKIAl1OCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQ7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgYnVzX3NwZWVkID0gaWRlX3ZsYl9jbGsgPyBpZGVfdmxiX2NsayA6IHN5c3RlbV9idXNfY2xvY2soKTsKKwlpbnQgYnVzX3NwZWVkID0gaWRlX3ZsYl9jbGsgPyBpZGVfdmxiX2NsayA6IDUwOwogCiAJLyogY2FsY3VsYXRlIHRpbWluZywgYWNjb3JkaW5nIHRvIFBJTyBtb2RlICovCiAJdGltZTEgPSBpZGVfcGlvX2N5Y2xlX3RpbWUoZHJpdmUsIHBpbyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9sZWdhY3kvZ2F5bGUuYyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9nYXlsZS5jCmluZGV4IGZlZDdkODEuLmI3ODk0MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9nYXlsZS5jCisrKyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9nYXlsZS5jCkBAIC02NCw5ICs2NCw3IEBACiAjZGVmaW5lIEdBWUxFX0hBU19DT05UUk9MX1JFRwkoIWlkZV9kb3VibGVyKQogI2RlZmluZSBHQVlMRV9JREVSRUdfU0laRQkoaWRlX2RvdWJsZXIgPyAweDEwMDAgOiAweDIwMDApCiAKLWludCBpZGVfZG91YmxlciA9IDA7CS8qIHN1cHBvcnQgSURFIGRvdWJsZXJzPyAqLwotRVhQT1JUX1NZTUJPTF9HUEwoaWRlX2RvdWJsZXIpOwotCitzdGF0aWMgaW50IGlkZV9kb3VibGVyOwogbW9kdWxlX3BhcmFtX25hbWVkKGRvdWJsZXIsIGlkZV9kb3VibGVyLCBib29sLCAwKTsKIE1PRFVMRV9QQVJNX0RFU0MoZG91YmxlciwgImVuYWJsZSBzdXBwb3J0IGZvciBJREUgZG91YmxlcnMiKTsKICNlbmRpZiAvKiBDT05GSUdfQkxLX0RFVl9JREVET1VCTEVSICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9sZWdhY3kvaHQ2NTYwYi5jIGIvZHJpdmVycy9pZGUvbGVnYWN5L2h0NjU2MGIuYwppbmRleCA0ZmU1MTZkLi5kZDZkZmIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9sZWdhY3kvaHQ2NTYwYi5jCisrKyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9odDY1NjBiLmMKQEAgLTIxMiw3ICsyMTIsNyBAQAogewogCWludCBhY3RpdmVfdGltZSwgcmVjb3ZlcnlfdGltZTsKIAlpbnQgYWN0aXZlX2N5Y2xlcywgcmVjb3ZlcnlfY3ljbGVzOwotCWludCBidXNfc3BlZWQgPSBpZGVfdmxiX2NsayA/IGlkZV92bGJfY2xrIDogc3lzdGVtX2J1c19jbG9jaygpOworCWludCBidXNfc3BlZWQgPSBpZGVfdmxiX2NsayA/IGlkZV92bGJfY2xrIDogNTA7CiAKICAgICAgICAgaWYgKHBpbykgewogCQl1bnNpZ25lZCBpbnQgY3ljbGVfdGltZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9pZGUtY3MuYyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9pZGUtY3MuYwppbmRleCAzMzgxNDI0Li44ZGJmNGQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9sZWdhY3kvaWRlLWNzLmMKKysrIGIvZHJpdmVycy9pZGUvbGVnYWN5L2lkZS1jcy5jCkBAIC02MywxMSArNjMsMTEgQEAKIAogI2RlZmluZSBJTlRfTU9EVUxFX1BBUk0obiwgdikgc3RhdGljIGludCBuID0gdjsgbW9kdWxlX3BhcmFtKG4sIGludCwgMCkKIAotI2lmZGVmIFBDTUNJQV9ERUJVRwotSU5UX01PRFVMRV9QQVJNKHBjX2RlYnVnLCBQQ01DSUFfREVCVUcpOworI2lmZGVmIENPTkZJR19QQ01DSUFfREVCVUcKK0lOVF9NT0RVTEVfUEFSTShwY19kZWJ1ZywgMCk7CiAjZGVmaW5lIERFQlVHKG4sIGFyZ3MuLi4pIGlmIChwY19kZWJ1Zz4obikpIHByaW50ayhLRVJOX0RFQlVHIGFyZ3MpCi1zdGF0aWMgY2hhciAqdmVyc2lvbiA9Ci0iaWRlLWNzLmMgMS4zIDIwMDIvMTAvMjYgMDU6NDU6MzEgKERhdmlkIEhpbmRzKSI7CisvKnN0YXRpYyBjaGFyICp2ZXJzaW9uID0KKyJpZGUtY3MuYyAxLjMgMjAwMi8xMC8yNiAwNTo0NTozMSAoRGF2aWQgSGluZHMpIjsqLwogI2Vsc2UKICNkZWZpbmUgREVCVUcobiwgYXJncy4uLikKICNlbmRpZgpAQCAtMzc1LDcgKzM3NSw3IEBACiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi12b2lkIGlkZV9yZWxlYXNlKHN0cnVjdCBwY21jaWFfZGV2aWNlICpsaW5rKQorc3RhdGljIHZvaWQgaWRlX3JlbGVhc2Uoc3RydWN0IHBjbWNpYV9kZXZpY2UgKmxpbmspCiB7CiAgICAgaWRlX2luZm9fdCAqaW5mbyA9IGxpbmstPnByaXY7CiAgICAgaWRlX2h3aWZfdCAqaHdpZiA9IGluZm8tPmh3aWY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9sZWdhY3kvcWQ2NXh4LmMgYi9kcml2ZXJzL2lkZS9sZWdhY3kvcWQ2NXh4LmMKaW5kZXggNjQyNGFmMS4uNTFkYmE4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvbGVnYWN5L3FkNjV4eC5jCisrKyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9xZDY1eHguYwpAQCAtMTEwLDcgKzExMCw3IEBACiAKIHN0YXRpYyB1OCBxZDY1MDBfY29tcHV0ZV90aW1pbmcgKGlkZV9od2lmX3QgKmh3aWYsIGludCBhY3RpdmVfdGltZSwgaW50IHJlY292ZXJ5X3RpbWUpCiB7Ci0JaW50IGNsayA9IGlkZV92bGJfY2xrID8gaWRlX3ZsYl9jbGsgOiBzeXN0ZW1fYnVzX2Nsb2NrKCk7CisJaW50IGNsayA9IGlkZV92bGJfY2xrID8gaWRlX3ZsYl9jbGsgOiA1MDsKIAl1OCBhY3RfY3ljLCByZWNfY3ljOwogCiAJaWYgKGNsayA8PSAzMykgewpAQCAtMTMyLDcgKzEzMiw3IEBACiAKIHN0YXRpYyB1OCBxZDY1ODBfY29tcHV0ZV90aW1pbmcgKGludCBhY3RpdmVfdGltZSwgaW50IHJlY292ZXJ5X3RpbWUpCiB7Ci0JaW50IGNsayA9IGlkZV92bGJfY2xrID8gaWRlX3ZsYl9jbGsgOiBzeXN0ZW1fYnVzX2Nsb2NrKCk7CisJaW50IGNsayA9IGlkZV92bGJfY2xrID8gaWRlX3ZsYl9jbGsgOiA1MDsKIAl1OCBhY3RfY3ljLCByZWNfY3ljOwogCiAJYWN0X2N5YyA9IDE3IC0gSURFX0lOKGFjdGl2ZV90aW1lICAgKiBjbGsgLyAxMDAwICsgMSwgMiwgMTcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL2FlYzYyeHguYyBiL2RyaXZlcnMvaWRlL3BjaS9hZWM2Mnh4LmMKaW5kZXggN2Y0NmMyMi4uYWU3YTQzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvcGNpL2FlYzYyeHguYworKysgYi9kcml2ZXJzL2lkZS9wY2kvYWVjNjJ4eC5jCkBAIC0xNDAsNyArMTQwLDcgQEAKIAogc3RhdGljIHVuc2lnbmVkIGludCBfX2RldmluaXQgaW5pdF9jaGlwc2V0X2FlYzYyeHgoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3QgY2hhciAqbmFtZSkKIHsKLQlpbnQgYnVzX3NwZWVkID0gaWRlX3BjaV9jbGsgPyBpZGVfcGNpX2NsayA6IHN5c3RlbV9idXNfY2xvY2soKTsKKwlpbnQgYnVzX3NwZWVkID0gaWRlX3BjaV9jbGsgPyBpZGVfcGNpX2NsayA6IDMzOwogCiAJaWYgKGJ1c19zcGVlZCA8PSAzMykKIAkJcGNpX3NldF9kcnZkYXRhKGRldiwgKHZvaWQgKikgYWVjNnh4eF8zM19iYXNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BjaS9hbGltMTV4My5jIGIvZHJpdmVycy9pZGUvcGNpL2FsaW0xNXgzLmMKaW5kZXggZjIxMjlkNS4uZjJkZTAwYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9hbGltMTV4My5jCisrKyBiL2RyaXZlcnMvaWRlL3BjaS9hbGltMTV4My5jCkBAIC03Miw3ICs3Miw3IEBACiAJaW50IHNfdGltZSwgYV90aW1lLCBjX3RpbWU7CiAJdTggc19jbGMsIGFfY2xjLCByX2NsYzsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBidXNfc3BlZWQgPSBpZGVfcGNpX2NsayA/IGlkZV9wY2lfY2xrIDogc3lzdGVtX2J1c19jbG9jaygpOworCWludCBidXNfc3BlZWQgPSBpZGVfcGNpX2NsayA/IGlkZV9wY2lfY2xrIDogMzM7CiAJaW50IHBvcnQgPSBod2lmLT5jaGFubmVsID8gMHg1YyA6IDB4NTg7CiAJaW50IHBvcnRGSUZPID0gaHdpZi0+Y2hhbm5lbCA/IDB4NTUgOiAweDU0OwogCXU4IGNkX2RtYV9maWZvID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BjaS9hbWQ3NHh4LmMgYi9kcml2ZXJzL2lkZS9wY2kvYW1kNzR4eC5jCmluZGV4IGVmY2Y1NDMuLmFkMjIyMjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9hbWQ3NHh4LmMKKysrIGIvZHJpdmVycy9pZGUvcGNpL2FtZDc0eHguYwpAQCAtNTMsMjAgKzUzLDIwIEBACiAJdTggdCA9IDAsIG9mZnNldCA9IGFtZF9vZmZzZXQoZGV2KTsKIAogCXBjaV9yZWFkX2NvbmZpZ19ieXRlKGRldiwgQU1EX0FERFJFU1NfU0VUVVAgKyBvZmZzZXQsICZ0KTsKLQl0ID0gKHQgJiB+KDMgPDwgKCgzIC0gZG4pIDw8IDEpKSkgfCAoKEZJVCh0aW1pbmctPnNldHVwLCAxLCA0KSAtIDEpIDw8ICgoMyAtIGRuKSA8PCAxKSk7CisJdCA9ICh0ICYgfigzIDw8ICgoMyAtIGRuKSA8PCAxKSkpIHwgKChjbGFtcF92YWwodGltaW5nLT5zZXR1cCwgMSwgNCkgLSAxKSA8PCAoKDMgLSBkbikgPDwgMSkpOwogCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYsIEFNRF9BRERSRVNTX1NFVFVQICsgb2Zmc2V0LCB0KTsKIAogCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYsIEFNRF84QklUX1RJTUlORyArIG9mZnNldCArICgxIC0gKGRuID4+IDEpKSwKLQkJKChGSVQodGltaW5nLT5hY3Q4YiwgMSwgMTYpIC0gMSkgPDwgNCkgfCAoRklUKHRpbWluZy0+cmVjOGIsIDEsIDE2KSAtIDEpKTsKKwkJKChjbGFtcF92YWwodGltaW5nLT5hY3Q4YiwgMSwgMTYpIC0gMSkgPDwgNCkgfCAoY2xhbXBfdmFsKHRpbWluZy0+cmVjOGIsIDEsIDE2KSAtIDEpKTsKIAogCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYsIEFNRF9EUklWRV9USU1JTkcgKyBvZmZzZXQgKyAoMyAtIGRuKSwKLQkJKChGSVQodGltaW5nLT5hY3RpdmUsIDEsIDE2KSAtIDEpIDw8IDQpIHwgKEZJVCh0aW1pbmctPnJlY292ZXIsIDEsIDE2KSAtIDEpKTsKKwkJKChjbGFtcF92YWwodGltaW5nLT5hY3RpdmUsIDEsIDE2KSAtIDEpIDw8IDQpIHwgKGNsYW1wX3ZhbCh0aW1pbmctPnJlY292ZXIsIDEsIDE2KSAtIDEpKTsKIAogCXN3aXRjaCAodWRtYV9tYXNrKSB7Ci0JY2FzZSBBVEFfVURNQTI6IHQgPSB0aW1pbmctPnVkbWEgPyAoMHhjMCB8IChGSVQodGltaW5nLT51ZG1hLCAyLCA1KSAtIDIpKSA6IDB4MDM7IGJyZWFrOwotCWNhc2UgQVRBX1VETUE0OiB0ID0gdGltaW5nLT51ZG1hID8gKDB4YzAgfCBhbWRfY3ljMnVkbWFbRklUKHRpbWluZy0+dWRtYSwgMiwgMTApXSkgOiAweDAzOyBicmVhazsKLQljYXNlIEFUQV9VRE1BNTogdCA9IHRpbWluZy0+dWRtYSA/ICgweGMwIHwgYW1kX2N5YzJ1ZG1hW0ZJVCh0aW1pbmctPnVkbWEsIDEsIDEwKV0pIDogMHgwMzsgYnJlYWs7Ci0JY2FzZSBBVEFfVURNQTY6IHQgPSB0aW1pbmctPnVkbWEgPyAoMHhjMCB8IGFtZF9jeWMydWRtYVtGSVQodGltaW5nLT51ZG1hLCAxLCAxNSldKSA6IDB4MDM7IGJyZWFrOworCWNhc2UgQVRBX1VETUEyOiB0ID0gdGltaW5nLT51ZG1hID8gKDB4YzAgfCAoY2xhbXBfdmFsKHRpbWluZy0+dWRtYSwgMiwgNSkgLSAyKSkgOiAweDAzOyBicmVhazsKKwljYXNlIEFUQV9VRE1BNDogdCA9IHRpbWluZy0+dWRtYSA/ICgweGMwIHwgYW1kX2N5YzJ1ZG1hW2NsYW1wX3ZhbCh0aW1pbmctPnVkbWEsIDIsIDEwKV0pIDogMHgwMzsgYnJlYWs7CisJY2FzZSBBVEFfVURNQTU6IHQgPSB0aW1pbmctPnVkbWEgPyAoMHhjMCB8IGFtZF9jeWMydWRtYVtjbGFtcF92YWwodGltaW5nLT51ZG1hLCAxLCAxMCldKSA6IDB4MDM7IGJyZWFrOworCWNhc2UgQVRBX1VETUE2OiB0ID0gdGltaW5nLT51ZG1hID8gKDB4YzAgfCBhbWRfY3ljMnVkbWFbY2xhbXBfdmFsKHRpbWluZy0+dWRtYSwgMSwgMTUpXSkgOiAweDAzOyBicmVhazsKIAlkZWZhdWx0OiByZXR1cm47CiAJfQogCkBAIC0xNzksNyArMTc5LDcgQEAKICAqIERldGVybWluZSB0aGUgc3lzdGVtIGJ1cyBjbG9jay4KICAqLwogCi0JYW1kX2Nsb2NrID0gKGlkZV9wY2lfY2xrID8gaWRlX3BjaV9jbGsgOiBzeXN0ZW1fYnVzX2Nsb2NrKCkpICogMTAwMDsKKwlhbWRfY2xvY2sgPSAoaWRlX3BjaV9jbGsgPyBpZGVfcGNpX2NsayA6IDMzKSAqIDEwMDA7CiAKIAlzd2l0Y2ggKGFtZF9jbG9jaykgewogCQljYXNlIDMzMDAwOiBhbWRfY2xvY2sgPSAzMzMzMzsgYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9wY2kvY21kNjQwLmMgYi9kcml2ZXJzL2lkZS9wY2kvY21kNjQwLmMKaW5kZXggYjM4YTE5ODAuLmNkMWJhMTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9jbWQ2NDAuYworKysgYi9kcml2ZXJzL2lkZS9wY2kvY21kNjQwLmMKQEAgLTUyNSwxMiArNTI1LDEwIEBACiAJdTggc2V0dXBfY291bnQsIGFjdGl2ZV9jb3VudCwgcmVjb3ZlcnlfY291bnQsIHJlY292ZXJ5X2NvdW50MiwgY3ljbGVfY291bnQ7CiAJaW50IGJ1c19zcGVlZDsKIAotCWlmIChjbWQ2NDBfdmxiICYmIGlkZV92bGJfY2xrKQotCQlidXNfc3BlZWQgPSBpZGVfdmxiX2NsazsKLQllbHNlIGlmICghY21kNjQwX3ZsYiAmJiBpZGVfcGNpX2NsaykKLQkJYnVzX3NwZWVkID0gaWRlX3BjaV9jbGs7CisJaWYgKGNtZDY0MF92bGIpCisJCWJ1c19zcGVlZCA9IGlkZV92bGJfY2xrID8gaWRlX3ZsYl9jbGsgOiA1MDsKIAllbHNlCi0JCWJ1c19zcGVlZCA9IHN5c3RlbV9idXNfY2xvY2soKTsKKwkJYnVzX3NwZWVkID0gaWRlX3BjaV9jbGsgPyBpZGVfcGNpX2NsayA6IDMzOwogCiAJaWYgKHBpb19tb2RlID4gNSkKIAkJcGlvX21vZGUgPSA1OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL2NtZDY0eC5jIGIvZHJpdmVycy9pZGUvcGNpL2NtZDY0eC5jCmluZGV4IDA4Njc0NzEuLmNhNDc3NGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9jbWQ2NHguYworKysgYi9kcml2ZXJzL2lkZS9wY2kvY21kNjR4LmMKQEAgLTY5LDcgKzY5LDcgQEAKIHN0YXRpYyB2b2lkIHByb2dyYW1fY3ljbGVfdGltZXMgKGlkZV9kcml2ZV90ICpkcml2ZSwgaW50IGN5Y2xlX3RpbWUsIGludCBhY3RpdmVfdGltZSkKIHsKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gdG9fcGNpX2Rldihkcml2ZS0+aHdpZi0+ZGV2KTsKLQlpbnQgY2xvY2tfdGltZSA9IDEwMDAgLyAoaWRlX3BjaV9jbGsgPyBpZGVfcGNpX2NsayA6IHN5c3RlbV9idXNfY2xvY2soKSk7CisJaW50IGNsb2NrX3RpbWUgPSAxMDAwIC8gKGlkZV9wY2lfY2xrID8gaWRlX3BjaV9jbGsgOiAzMyk7CiAJdTggIGN5Y2xlX2NvdW50LCBhY3RpdmVfY291bnQsIHJlY292ZXJ5X2NvdW50LCBkcnd0aW07CiAJc3RhdGljIGNvbnN0IHU4IHJlY292ZXJ5X3ZhbHVlc1tdID0KIAkJezE1LCAxNSwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAwfTsKQEAgLTEyOCw3ICsxMjgsNyBAQAogCQkJICAgIGlkZV9waW9fdGltaW5nc1twaW9dLmFjdGl2ZV90aW1lKTsKIAogCXNldHVwX2NvdW50ID0gcXVhbnRpemVfdGltaW5nKGlkZV9waW9fdGltaW5nc1twaW9dLnNldHVwX3RpbWUsCi0JCQkxMDAwIC8gKGlkZV9wY2lfY2xrID8gaWRlX3BjaV9jbGsgOiBzeXN0ZW1fYnVzX2Nsb2NrKCkpKTsKKwkJCTEwMDAgLyAoaWRlX3BjaV9jbGsgPyBpZGVfcGNpX2NsayA6IDMzKSk7CiAKIAkvKgogCSAqIFRoZSBwcmltYXJ5IGNoYW5uZWwgaGFzIGluZGl2aWR1YWwgYWRkcmVzcyBzZXR1cCB0aW1pbmcgcmVnaXN0ZXJzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9wY2kvY3k4MmM2OTMuYyBiL2RyaXZlcnMvaWRlL3BjaS9jeTgyYzY5My5jCmluZGV4IDc3Y2MyMmMuLjhjNTM0YWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9jeTgyYzY5My5jCisrKyBiL2RyaXZlcnMvaWRlL3BjaS9jeTgyYzY5My5jCkBAIC0xMzQsNyArMTM0LDcgQEAKIHN0YXRpYyB2b2lkIGNvbXB1dGVfY2xvY2tzKHU4IHBpbywgcGlvX2Nsb2Nrc190ICpwX3BjbGspCiB7CiAJaW50IGNsazEsIGNsazI7Ci0JaW50IGJ1c19zcGVlZCA9IGlkZV9wY2lfY2xrID8gaWRlX3BjaV9jbGsgOiBzeXN0ZW1fYnVzX2Nsb2NrKCk7CisJaW50IGJ1c19zcGVlZCA9IGlkZV9wY2lfY2xrID8gaWRlX3BjaV9jbGsgOiAzMzsKIAogCS8qIHdlIGRvbid0IGNoZWNrIGFnYWluc3QgQ1k4MkM2OTMncyBtaW4gYW5kIG1heCBzcGVlZCwKIAkgKiBzbyB5b3UgY2FuIHBsYXkgd2l0aCB0aGUgaWRlYnVzPXh4IHBhcmFtZXRlcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL2hwdDM2Ni5jIGIvZHJpdmVycy9pZGUvcGNpL2hwdDM2Ni5jCmluZGV4IGM5MjlkYWQuLjM5N2M2Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9ocHQzNjYuYworKysgYi9kcml2ZXJzL2lkZS9wY2kvaHB0MzY2LmMKQEAgLTc1OSw4ICs3NTksNyBAQAogCQkJCWVuYWJsZV9pcnEgKGh3aWYtPmlycSk7CiAJCX0KIAl9IGVsc2UKLQkJb3V0YihtYXNrID8gKGRyaXZlLT5jdGwgfCAyKSA6IChkcml2ZS0+Y3RsICYgfjIpLAotCQkgICAgIGh3aWYtPmlvX3BvcnRzLmN0bF9hZGRyKTsKKwkJb3V0YihBVEFfREVWQ1RMX09CUyB8IChtYXNrID8gMiA6IDApLCBod2lmLT5pb19wb3J0cy5jdGxfYWRkcik7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9wY2kvaXQ4MjEzLmMgYi9kcml2ZXJzL2lkZS9wY2kvaXQ4MjEzLmMKaW5kZXggOTA1M2M4NzcuLjJiNzFiZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9pdDgyMTMuYworKysgYi9kcml2ZXJzL2lkZS9wY2kvaXQ4MjEzLmMKQEAgLTE4NCw4ICsxODQsNyBAQAogCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBpdDgyMTNfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogewotCWlkZV9zZXR1cF9wY2lfZGV2aWNlKGRldiwgJml0ODIxM19jaGlwc2V0c1tpZC0+ZHJpdmVyX2RhdGFdKTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gaWRlX3NldHVwX3BjaV9kZXZpY2UoZGV2LCAmaXQ4MjEzX2NoaXBzZXRzW2lkLT5kcml2ZXJfZGF0YV0pOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaXQ4MjEzX3BjaV90YmxbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BjaS9uczg3NDE1LmMgYi9kcml2ZXJzL2lkZS9wY2kvbnM4NzQxNS5jCmluZGV4IGZlYzQ5NTUuLjQ1YmE3MWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9uczg3NDE1LmMKKysrIGIvZHJpdmVycy9pZGUvcGNpL25zODc0MTUuYwpAQCAtNzYsNyArNzYsNyBAQAogCX0KIAogCS8qIGJlIHN1cmUgd2UncmUgbG9va2luZyBhdCB0aGUgbG93IG9yZGVyIGJpdHMgKi8KLQlvdXRiKGRyaXZlLT5jdGwgJiB+MHg4MCwgaW9fcG9ydHMtPmN0bF9hZGRyKTsKKwlvdXRiKEFUQV9ERVZDVExfT0JTICYgfjB4ODAsIGlvX3BvcnRzLT5jdGxfYWRkcik7CiAKIAlpZiAodGFzay0+dGZfZmxhZ3MgJiBJREVfVEZMQUdfSU5fTlNFQ1QpCiAJCXRmLT5uc2VjdCAgPSBpbmIoaW9fcG9ydHMtPm5zZWN0X2FkZHIpOwpAQCAtOTAsNyArOTAsNyBAQAogCQl0Zi0+ZGV2aWNlID0gc3VwZXJpb19pZGVfaW5iKGlvX3BvcnRzLT5kZXZpY2VfYWRkcik7CiAKIAlpZiAodGFzay0+dGZfZmxhZ3MgJiBJREVfVEZMQUdfTEJBNDgpIHsKLQkJb3V0Yihkcml2ZS0+Y3RsIHwgMHg4MCwgaW9fcG9ydHMtPmN0bF9hZGRyKTsKKwkJb3V0YihBVEFfREVWQ1RMX09CUyB8IDB4ODAsIGlvX3BvcnRzLT5jdGxfYWRkcik7CiAKIAkJaWYgKHRhc2stPnRmX2ZsYWdzICYgSURFX1RGTEFHX0lOX0hPQl9GRUFUVVJFKQogCQkJdGYtPmhvYl9mZWF0dXJlID0gaW5iKGlvX3BvcnRzLT5mZWF0dXJlX2FkZHIpOwpAQCAtMjI1LDEwICsyMjUsNiBAQAogCXJldHVybiAxOwogfQogCi0jaWZuZGVmIGlkZV9kZWZhdWx0X2lycQotI2RlZmluZSBpZGVfZGVmYXVsdF9pcnEoaXJxKSAwCi0jZW5kaWYKLQogc3RhdGljIHZvaWQgX19kZXZpbml0IGluaXRfaHdpZl9uczg3NDE1IChpZGVfaHdpZl90ICpod2lmKQogewogCXN0cnVjdCBwY2lfZGV2ICpkZXYgPSB0b19wY2lfZGV2KGh3aWYtPmRldik7CkBAIC0yODgsNyArMjg0LDcgQEAKIAl9CiAKIAlpZiAoIXVzaW5nX2ludGEpCi0JCWh3aWYtPmlycSA9IGlkZV9kZWZhdWx0X2lycShod2lmLT5pb19wb3J0cy5kYXRhX2FkZHIpOworCQlod2lmLT5pcnEgPSBfX2lkZV9kZWZhdWx0X2lycShod2lmLT5pb19wb3J0cy5kYXRhX2FkZHIpOwogCWVsc2UgaWYgKCFod2lmLT5pcnEgJiYgaHdpZi0+bWF0ZSAmJiBod2lmLT5tYXRlLT5pcnEpCiAJCWh3aWYtPmlycSA9IGh3aWYtPm1hdGUtPmlycTsJLyogc2hhcmUgSVJRIHdpdGggbWF0ZSAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9wY2kvc2NjX3BhdGEuYyBiL2RyaXZlcnMvaWRlL3BjaS9zY2NfcGF0YS5jCmluZGV4IDkxMGZiMDAuLjE1ODRlYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9zY2NfcGF0YS5jCisrKyBiL2RyaXZlcnMvaWRlL3BjaS9zY2NfcGF0YS5jCkBAIC0xNDgsMTEgKzE0OCw4IEBACiAJb3V0X2JlMzIoKHZvaWQqKXBvcnQsIGFkZHIpOwogfQogCi1zdGF0aWMgdm9pZAotc2NjX2lkZV9vdXRic3luYyhpZGVfZHJpdmVfdCAqIGRyaXZlLCB1OCBhZGRyLCB1bnNpZ25lZCBsb25nIHBvcnQpCitzdGF0aWMgdm9pZCBzY2NfaWRlX291dGJzeW5jKGlkZV9od2lmX3QgKmh3aWYsIHU4IGFkZHIsIHVuc2lnbmVkIGxvbmcgcG9ydCkKIHsKLQlpZGVfaHdpZl90ICpod2lmID0gSFdJRihkcml2ZSk7Ci0KIAlvdXRfYmUzMigodm9pZCopcG9ydCwgYWRkcik7CiAJZWllaW8oKTsKIAlpbl9iZTMyKCh2b2lkKikoaHdpZi0+ZG1hX2Jhc2UgKyAweDAxYykpOwpAQCAtNjYyLDggKzY1OSw2IEBACiAJaWYgKHRhc2stPnRmX2ZsYWdzICYgSURFX1RGTEFHX0ZMQUdHRUQpCiAJCUhJSEkgPSAweEZGOwogCi0JaWRlX3NldF9pcnEoZHJpdmUsIDEpOwotCiAJaWYgKHRhc2stPnRmX2ZsYWdzICYgSURFX1RGTEFHX09VVF9EQVRBKQogCQlvdXRfYmUzMigodm9pZCAqKWlvX3BvcnRzLT5kYXRhX2FkZHIsCiAJCQkgKHRmLT5ob2JfZGF0YSA8PCA4KSB8IHRmLT5kYXRhKTsKQEAgLTcwOCw3ICs3MDMsNyBAQAogCX0KIAogCS8qIGJlIHN1cmUgd2UncmUgbG9va2luZyBhdCB0aGUgbG93IG9yZGVyIGJpdHMgKi8KLQlzY2NfaWRlX291dGIoZHJpdmUtPmN0bCAmIH4weDgwLCBpb19wb3J0cy0+Y3RsX2FkZHIpOworCXNjY19pZGVfb3V0YihBVEFfREVWQ1RMX09CUyAmIH4weDgwLCBpb19wb3J0cy0+Y3RsX2FkZHIpOwogCiAJaWYgKHRhc2stPnRmX2ZsYWdzICYgSURFX1RGTEFHX0lOX05TRUNUKQogCQl0Zi0+bnNlY3QgID0gc2NjX2lkZV9pbmIoaW9fcG9ydHMtPm5zZWN0X2FkZHIpOwpAQCAtNzIyLDcgKzcxNyw3IEBACiAJCXRmLT5kZXZpY2UgPSBzY2NfaWRlX2luYihpb19wb3J0cy0+ZGV2aWNlX2FkZHIpOwogCiAJaWYgKHRhc2stPnRmX2ZsYWdzICYgSURFX1RGTEFHX0xCQTQ4KSB7Ci0JCXNjY19pZGVfb3V0Yihkcml2ZS0+Y3RsIHwgMHg4MCwgaW9fcG9ydHMtPmN0bF9hZGRyKTsKKwkJc2NjX2lkZV9vdXRiKEFUQV9ERVZDVExfT0JTIHwgMHg4MCwgaW9fcG9ydHMtPmN0bF9hZGRyKTsKIAogCQlpZiAodGFzay0+dGZfZmxhZ3MgJiBJREVfVEZMQUdfSU5fSE9CX0ZFQVRVUkUpCiAJCQl0Zi0+aG9iX2ZlYXR1cmUgPSBzY2NfaWRlX2luYihpb19wb3J0cy0+ZmVhdHVyZV9hZGRyKTsKQEAgLTc5NSw3ICs3OTAsNiBAQAogCiAJaHdpZi0+ZG1hX2Jhc2UgPSBkbWFfYmFzZTsKIAlod2lmLT5jb25maWdfZGF0YSA9IHBvcnRzLT5jdGw7Ci0JaHdpZi0+bW1pbyA9IDE7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL3NnaWlvYzQuYyBiL2RyaXZlcnMvaWRlL3BjaS9zZ2lpb2M0LmMKaW5kZXggMTZhMGJjZS4uMjQ1MTNlM2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9zZ2lpb2M0LmMKKysrIGIvZHJpdmVycy9pZGUvcGNpL3NnaWlvYzQuYwpAQCAtMTExLDcgKzExMSw3IEBACiBzdGF0aWMgdm9pZAogc2dpaW9jNF9tYXNrcHJvYyhpZGVfZHJpdmVfdCAqIGRyaXZlLCBpbnQgbWFzaykKIHsKLQl3cml0ZWIobWFzayA/IChkcml2ZS0+Y3RsIHwgMikgOiAoZHJpdmUtPmN0bCAmIH4yKSwKKwl3cml0ZWIoQVRBX0RFVkNUTF9PQlMgfCAobWFzayA/IDIgOiAwKSwKIAkgICAgICAgKHZvaWQgX19pb21lbSAqKWRyaXZlLT5od2lmLT5pb19wb3J0cy5jdGxfYWRkcik7CiB9CiAKQEAgLTM2OSw4ICszNjksNyBAQAogCWh3aWYtPnNnX21heF9uZW50cyA9IElPQzRfUFJEX0VOVFJJRVM7CiAKIAlwYWQgPSBwY2lfYWxsb2NfY29uc2lzdGVudChkZXYsIElPQzRfSURFX0NBQ0hFTElORV9TSVpFLAotCQkJCSAgIChkbWFfYWRkcl90ICopICYoaHdpZi0+ZG1hX3N0YXR1cykpOwotCisJCQkJICAgKGRtYV9hZGRyX3QgKikmaHdpZi0+ZXh0cmFfYmFzZSk7CiAJaWYgKHBhZCkgewogCQlpZGVfc2V0X2h3aWZkYXRhKGh3aWYsIHBhZCk7CiAJCXJldHVybiAwOwpAQCAtNDM5LDcgKzQzOCw3IEBACiAKIAkvKiBBZGRyZXNzIG9mIHRoZSBFbmRpbmcgRE1BICovCiAJbWVtc2V0KGlkZV9nZXRfaHdpZmRhdGEoaHdpZiksIDAsIElPQzRfSURFX0NBQ0hFTElORV9TSVpFKTsKLQllbmRpbmdfZG1hX2FkZHIgPSBjcHVfdG9fbGUzMihod2lmLT5kbWFfc3RhdHVzKTsKKwllbmRpbmdfZG1hX2FkZHIgPSBjcHVfdG9fbGUzMihod2lmLT5leHRyYV9iYXNlKTsKIAl3cml0ZWwoZW5kaW5nX2RtYV9hZGRyLCAodm9pZCBfX2lvbWVtICopKGRtYV9iYXNlICsgSU9DNF9ETUFfRU5EX0FERFIgKiA0KSk7CiAKIAl3cml0ZWwoZG1hX2RpcmVjdGlvbiwgKHZvaWQgX19pb21lbSAqKWlvYzRfZG1hX2FkZHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL3NpaW1hZ2UuYyBiL2RyaXZlcnMvaWRlL3BjaS9zaWltYWdlLmMKaW5kZXggMDAwNmI5ZS4uYjc1ZTliYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvcGNpL3NpaW1hZ2UuYworKysgYi9kcml2ZXJzL2lkZS9wY2kvc2lpbWFnZS5jCkBAIC05NCw3ICs5NCw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlID0gKHVuc2lnbmVkIGxvbmcpaHdpZi0+aHdpZl9kYXRhOwogCiAJYmFzZSArPSAweEEwICsgcjsKLQlpZiAoaHdpZi0+bW1pbykKKwlpZiAoaHdpZi0+aG9zdF9mbGFncyAmIElERV9IRkxBR19NTUlPKQogCQliYXNlICs9IGh3aWYtPmNoYW5uZWwgPDwgNjsKIAllbHNlCiAJCWJhc2UgKz0gaHdpZi0+Y2hhbm5lbCA8PCA0OwpAQCAtMTE3LDcgKzExNyw3IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlCT0gKHVuc2lnbmVkIGxvbmcpaHdpZi0+aHdpZl9kYXRhOwogCiAJYmFzZSArPSAweEEwICsgcjsKLQlpZiAoaHdpZi0+bW1pbykKKwlpZiAoaHdpZi0+aG9zdF9mbGFncyAmIElERV9IRkxBR19NTUlPKQogCQliYXNlICs9IGh3aWYtPmNoYW5uZWwgPDwgNjsKIAllbHNlCiAJCWJhc2UgKz0gaHdpZi0+Y2hhbm5lbCA8PCA0OwpAQCAtMTkwLDcgKzE5MCw5IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlCT0gKHVuc2lnbmVkIGxvbmcpaHdpZi0+aHdpZl9kYXRhOwogCXU4IHNjc2MsIG1hc2sJCT0gMDsKIAotCXNjc2MgPSBzaWxfaW9yZWFkOChkZXYsIGJhc2UgKyAoaHdpZi0+bW1pbyA/IDB4NEEgOiAweDhBKSk7CisJYmFzZSArPSAoaHdpZi0+aG9zdF9mbGFncyAmIElERV9IRkxBR19NTUlPKSA/IDB4NEEgOiAweDhBOworCisJc2NzYyA9IHNpbF9pb3JlYWQ4KGRldiwgYmFzZSk7CiAKIAlzd2l0Y2ggKHNjc2MgJiAweDMwKSB7CiAJY2FzZSAweDEwOgkvKiAxMzMgKi8KQEAgLTIzOCw4ICsyNDAsOSBAQAogCXVuc2lnbmVkIGxvbmcgdGZhZGRyCT0gc2lpbWFnZV9zZWxyZWcoaHdpZiwJMHgwMik7CiAJdW5zaWduZWQgbG9uZyBiYXNlCT0gKHVuc2lnbmVkIGxvbmcpaHdpZi0+aHdpZl9kYXRhOwogCXU4IHRmX3BpbwkJPSBwaW87Ci0JdTggYWRkcl9tYXNrCQk9IGh3aWYtPmNoYW5uZWwgPyAoaHdpZi0+bW1pbyA/IDB4RjQgOiAweDg0KQotCQkJCQkJOiAoaHdpZi0+bW1pbyA/IDB4QjQgOiAweDgwKTsKKwl1OCBtbWlvCQkJPSAoaHdpZi0+aG9zdF9mbGFncyAmIElERV9IRkxBR19NTUlPKSA/IDEgOiAwOworCXU4IGFkZHJfbWFzawkJPSBod2lmLT5jaGFubmVsID8gKG1taW8gPyAweEY0IDogMHg4NCkKKwkJCQkJCTogKG1taW8gPyAweEI0IDogMHg4MCk7CiAJdTggbW9kZQkJCT0gMDsKIAl1OCB1bml0CQkJPSBkcml2ZS0+c2VsZWN0LmIudW5pdDsKIApAQCAtMjkwLDEzICsyOTMsMTMgQEAKIAl1MTYgdWx0cmEgPSAwLCBtdWx0aQk9IDA7CiAJdTggbW9kZSA9IDAsIHVuaXQJPSBkcml2ZS0+c2VsZWN0LmIudW5pdDsKIAl1bnNpZ25lZCBsb25nIGJhc2UJPSAodW5zaWduZWQgbG9uZylod2lmLT5od2lmX2RhdGE7Ci0JdTggc2NzYyA9IDAsIGFkZHJfbWFzawk9IGh3aWYtPmNoYW5uZWwgPwotCQkJCQkoaHdpZi0+bW1pbyA/IDB4RjQgOiAweDg0KSA6Ci0JCQkJCShod2lmLT5tbWlvID8gMHhCNCA6IDB4ODApOworCXU4IG1taW8JCQk9IChod2lmLT5ob3N0X2ZsYWdzICYgSURFX0hGTEFHX01NSU8pID8gMSA6IDA7CisJdTggc2NzYyA9IDAsIGFkZHJfbWFzawk9IGh3aWYtPmNoYW5uZWwgPyAobW1pbyA/IDB4RjQgOiAweDg0KQorCQkJCQkJOiAobW1pbyA/IDB4QjQgOiAweDgwKTsKIAl1bnNpZ25lZCBsb25nIG1hCT0gc2lpbWFnZV9zZWxkZXYoZHJpdmUsIDB4MDgpOwogCXVuc2lnbmVkIGxvbmcgdWEJPSBzaWltYWdlX3NlbGRldihkcml2ZSwgMHgwQyk7CiAKLQlzY3NjICA9IHNpbF9pb3JlYWQ4IChkZXYsIGJhc2UgKyAoaHdpZi0+bW1pbyA/IDB4NEEgOiAweDhBKSk7CisJc2NzYyAgPSBzaWxfaW9yZWFkOCAoZGV2LCBiYXNlICsgKG1taW8gPyAweDRBIDogMHg4QSkpOwogCW1vZGUgID0gc2lsX2lvcmVhZDggKGRldiwgYmFzZSArIGFkZHJfbWFzayk7CiAJbXVsdGkgPSBzaWxfaW9yZWFkMTYoZGV2LCBtYSk7CiAJdWx0cmEgPSBzaWxfaW9yZWFkMTYoZGV2LCB1YSk7CkBAIC0zOTEsNyArMzk0LDcgQEAKIAogc3RhdGljIGludCBzaWltYWdlX2RtYV90ZXN0X2lycShpZGVfZHJpdmVfdCAqZHJpdmUpCiB7Ci0JaWYgKGRyaXZlLT5od2lmLT5tbWlvKQorCWlmIChkcml2ZS0+aHdpZi0+aG9zdF9mbGFncyAmIElERV9IRkxBR19NTUlPKQogCQlyZXR1cm4gc2lpbWFnZV9tbWlvX2RtYV90ZXN0X2lycShkcml2ZSk7CiAJZWxzZQogCQlyZXR1cm4gc2lpbWFnZV9pb19kbWFfdGVzdF9pcnEoZHJpdmUpOwpAQCAtNjQwLDggKzY0Myw2IEBACiAJaHdpZi0+aXJxID0gZGV2LT5pcnE7CiAKIAlod2lmLT5kbWFfYmFzZSA9ICh1bnNpZ25lZCBsb25nKWFkZHIgKyAoY2ggPyAweDA4IDogMHgwMCk7Ci0KLQlod2lmLT5tbWlvID0gMTsKIH0KIAogc3RhdGljIGludCBpc19kZXZfc2VhZ2F0ZV9zYXRhKGlkZV9kcml2ZV90ICpkcml2ZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BjaS92aWE4MmN4eHguYyBiL2RyaXZlcnMvaWRlL3BjaS92aWE4MmN4eHguYwppbmRleCA1NjZlMGVjLi4zZWQ5NzI4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvcGNpL3ZpYTgyY3h4eC5jCisrKyBiL2RyaXZlcnMvaWRlL3BjaS92aWE4MmN4eHguYwpAQCAtMTIwLDIxICsxMjAsMjEgQEAKIAogCWlmICh+dmRldi0+dmlhX2NvbmZpZy0+ZmxhZ3MgJiBWSUFfQkFEX0FTVCkgewogCQlwY2lfcmVhZF9jb25maWdfYnl0ZShkZXYsIFZJQV9BRERSRVNTX1NFVFVQLCAmdCk7Ci0JCXQgPSAodCAmIH4oMyA8PCAoKDMgLSBkbikgPDwgMSkpKSB8ICgoRklUKHRpbWluZy0+c2V0dXAsIDEsIDQpIC0gMSkgPDwgKCgzIC0gZG4pIDw8IDEpKTsKKwkJdCA9ICh0ICYgfigzIDw8ICgoMyAtIGRuKSA8PCAxKSkpIHwgKChjbGFtcF92YWwodGltaW5nLT5zZXR1cCwgMSwgNCkgLSAxKSA8PCAoKDMgLSBkbikgPDwgMSkpOwogCQlwY2lfd3JpdGVfY29uZmlnX2J5dGUoZGV2LCBWSUFfQUREUkVTU19TRVRVUCwgdCk7CiAJfQogCiAJcGNpX3dyaXRlX2NvbmZpZ19ieXRlKGRldiwgVklBXzhCSVRfVElNSU5HICsgKDEgLSAoZG4gPj4gMSkpLAotCQkoKEZJVCh0aW1pbmctPmFjdDhiLCAxLCAxNikgLSAxKSA8PCA0KSB8IChGSVQodGltaW5nLT5yZWM4YiwgMSwgMTYpIC0gMSkpOworCQkoKGNsYW1wX3ZhbCh0aW1pbmctPmFjdDhiLCAxLCAxNikgLSAxKSA8PCA0KSB8IChjbGFtcF92YWwodGltaW5nLT5yZWM4YiwgMSwgMTYpIC0gMSkpOwogCiAJcGNpX3dyaXRlX2NvbmZpZ19ieXRlKGRldiwgVklBX0RSSVZFX1RJTUlORyArICgzIC0gZG4pLAotCQkoKEZJVCh0aW1pbmctPmFjdGl2ZSwgMSwgMTYpIC0gMSkgPDwgNCkgfCAoRklUKHRpbWluZy0+cmVjb3ZlciwgMSwgMTYpIC0gMSkpOworCQkoKGNsYW1wX3ZhbCh0aW1pbmctPmFjdGl2ZSwgMSwgMTYpIC0gMSkgPDwgNCkgfCAoY2xhbXBfdmFsKHRpbWluZy0+cmVjb3ZlciwgMSwgMTYpIC0gMSkpOwogCiAJc3dpdGNoICh2ZGV2LT52aWFfY29uZmlnLT51ZG1hX21hc2spIHsKLQljYXNlIEFUQV9VRE1BMjogdCA9IHRpbWluZy0+dWRtYSA/ICgweGUwIHwgKEZJVCh0aW1pbmctPnVkbWEsIDIsIDUpIC0gMikpIDogMHgwMzsgYnJlYWs7Ci0JY2FzZSBBVEFfVURNQTQ6IHQgPSB0aW1pbmctPnVkbWEgPyAoMHhlOCB8IChGSVQodGltaW5nLT51ZG1hLCAyLCA5KSAtIDIpKSA6IDB4MGY7IGJyZWFrOwotCWNhc2UgQVRBX1VETUE1OiB0ID0gdGltaW5nLT51ZG1hID8gKDB4ZTAgfCAoRklUKHRpbWluZy0+dWRtYSwgMiwgOSkgLSAyKSkgOiAweDA3OyBicmVhazsKLQljYXNlIEFUQV9VRE1BNjogdCA9IHRpbWluZy0+dWRtYSA/ICgweGUwIHwgKEZJVCh0aW1pbmctPnVkbWEsIDIsIDkpIC0gMikpIDogMHgwNzsgYnJlYWs7CisJY2FzZSBBVEFfVURNQTI6IHQgPSB0aW1pbmctPnVkbWEgPyAoMHhlMCB8IChjbGFtcF92YWwodGltaW5nLT51ZG1hLCAyLCA1KSAtIDIpKSA6IDB4MDM7IGJyZWFrOworCWNhc2UgQVRBX1VETUE0OiB0ID0gdGltaW5nLT51ZG1hID8gKDB4ZTggfCAoY2xhbXBfdmFsKHRpbWluZy0+dWRtYSwgMiwgOSkgLSAyKSkgOiAweDBmOyBicmVhazsKKwljYXNlIEFUQV9VRE1BNTogdCA9IHRpbWluZy0+dWRtYSA/ICgweGUwIHwgKGNsYW1wX3ZhbCh0aW1pbmctPnVkbWEsIDIsIDkpIC0gMikpIDogMHgwNzsgYnJlYWs7CisJY2FzZSBBVEFfVURNQTY6IHQgPSB0aW1pbmctPnVkbWEgPyAoMHhlMCB8IChjbGFtcF92YWwodGltaW5nLT51ZG1hLCAyLCA5KSAtIDIpKSA6IDB4MDc7IGJyZWFrOwogCWRlZmF1bHQ6IHJldHVybjsKIAl9CiAKQEAgLTM0MCw3ICszNDAsNyBAQAogCSAqIERldGVybWluZSBzeXN0ZW0gYnVzIGNsb2NrLgogCSAqLwogCi0JdmlhX2Nsb2NrID0gKGlkZV9wY2lfY2xrID8gaWRlX3BjaV9jbGsgOiBzeXN0ZW1fYnVzX2Nsb2NrKCkpICogMTAwMDsKKwl2aWFfY2xvY2sgPSAoaWRlX3BjaV9jbGsgPyBpZGVfcGNpX2NsayA6IDMzKSAqIDEwMDA7CiAKIAlzd2l0Y2ggKHZpYV9jbG9jaykgewogCQljYXNlIDMzMDAwOiB2aWFfY2xvY2sgPSAzMzMzMzsgYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9wcGMvcG1hYy5jIGIvZHJpdmVycy9pZGUvcHBjL3BtYWMuYwppbmRleCBiYTJkNTg3Li5kY2IyYzQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9wcGMvcG1hYy5jCisrKyBiL2RyaXZlcnMvaWRlL3BwYy9wbWFjLmMKQEAgLTQ4MCwxMyArNDgwLDEzIEBACiAJCXBtYWNfaWRlX3NlbGVjdHByb2MoZHJpdmUpOwogfQogCi1zdGF0aWMgdm9pZAotcG1hY19vdXRic3luYyhpZGVfZHJpdmVfdCAqZHJpdmUsIHU4IHZhbHVlLCB1bnNpZ25lZCBsb25nIHBvcnQpCitzdGF0aWMgdm9pZCBwbWFjX291dGJzeW5jKGlkZV9od2lmX3QgKmh3aWYsIHU4IHZhbHVlLCB1bnNpZ25lZCBsb25nIHBvcnQpCiB7CiAJdTMyIHRtcDsKIAkKIAl3cml0ZWIodmFsdWUsICh2b2lkIF9faW9tZW0gKikgcG9ydCk7Ci0JdG1wID0gcmVhZGwoUE1BQ19JREVfUkVHKElERV9USU1JTkdfQ09ORklHKSk7CisJdG1wID0gcmVhZGwoKHZvaWQgX19pb21lbSAqKShod2lmLT5pb19wb3J0cy5kYXRhX2FkZHIKKwkJCQkgICAgICsgSURFX1RJTUlOR19DT05GSUcpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3NldHVwLXBjaS5jIGIvZHJpdmVycy9pZGUvc2V0dXAtcGNpLmMKaW5kZXggNTE3MTYwMS4uYWJjZmIxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvc2V0dXAtcGNpLmMKKysrIGIvZHJpdmVycy9pZGUvc2V0dXAtcGNpLmMKQEAgLTg3LDcgKzg3LDcgQEAKIAl1bnNpZ25lZCBsb25nIGRtYV9iYXNlID0gMDsKIAl1OCBkbWFfc3RhdCA9IDA7CiAKLQlpZiAoaHdpZi0+bW1pbykKKwlpZiAoaHdpZi0+aG9zdF9mbGFncyAmIElERV9IRkxBR19NTUlPKQogCQlyZXR1cm4gaHdpZi0+ZG1hX2Jhc2U7CiAKIAlpZiAoaHdpZi0+bWF0ZSAmJiBod2lmLT5tYXRlLT5kbWFfYmFzZSkgewpAQCAtMzc0LDcgKzM3NCw3IEBACiAJCWlmIChiYXNlID09IDAgfHwgaWRlX3BjaV9zZXRfbWFzdGVyKGRldiwgZC0+bmFtZSkgPCAwKQogCQkJcmV0dXJuIC0xOwogCi0JCWlmIChod2lmLT5tbWlvKQorCQlpZiAoaHdpZi0+aG9zdF9mbGFncyAmIElERV9IRkxBR19NTUlPKQogCQkJcHJpbnRrKEtFUk5fSU5GTyAiICAgICVzOiBNTUlPLURNQVxuIiwgaHdpZi0+bmFtZSk7CiAJCWVsc2UKIAkJCXByaW50ayhLRVJOX0lORk8gIiAgICAlczogQk0tRE1BIGF0IDB4JTA0bHgtMHglMDRseFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FkZHIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FkZHIuYwppbmRleCA3ODFlYTU5Li4wOWEyYmVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZGRyLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWRkci5jCkBAIC00LDI4ICs0LDMzIEBACiAgKiBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNSwgTWVsbGFub3ggVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUgSW50ZWwgQ29ycG9yYXRpb24uICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKLSAqIFRoaXMgU29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGljZW5zZXM6CisgKiBUaGlzIHNvZnR3YXJlIGlzIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYSBjaG9pY2Ugb2Ygb25lIG9mIHR3bworICogbGljZW5zZXMuICBZb3UgbWF5IGNob29zZSB0byBiZSBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIsIGF2YWlsYWJsZSBmcm9tIHRoZSBmaWxlCisgKiBDT1BZSU5HIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLCBvciB0aGUKKyAqIE9wZW5JQi5vcmcgQlNEIGxpY2Vuc2UgYmVsb3c6CiAgKgotICogMSkgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiQ29tbW9uIFB1YmxpYyBMaWNlbnNlIDEuMCIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2NwbC5waHAuCisgKiAgICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvcgorICogICAgIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZworICogICAgIGNvbmRpdGlvbnMgYXJlIG1ldDoKICAqCi0gKiAyKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJUaGUgQlNEIExpY2Vuc2UiIGEgY29weSBvZiB3aGljaCBpcwotICogICAgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lci4KICAqCi0gKiAzKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIiIGEKLSAqICAgIGNvcHkgb2Ygd2hpY2ggaXMgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICAgICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIExpY2Vuc2VlIGhhcyB0aGUgcmlnaHQgdG8gY2hvb3NlIG9uZSBvZiB0aGUgYWJvdmUgbGljZW5zZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSBhbmQgb25lIG9mIHRoZSBsaWNlbnNlIG5vdGljZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbgotICogYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgpAQCAtMTAwLDYgKzEwNSw3IEBACiAJbWVtY3B5KGRldl9hZGRyLT5icm9hZGNhc3QsIGRldi0+YnJvYWRjYXN0LCBNQVhfQUREUl9MRU4pOwogCWlmIChkc3RfZGV2X2FkZHIpCiAJCW1lbWNweShkZXZfYWRkci0+ZHN0X2Rldl9hZGRyLCBkc3RfZGV2X2FkZHIsIE1BWF9BRERSX0xFTik7CisJZGV2X2FkZHItPnNyY19kZXYgPSBkZXY7CiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKHJkbWFfY29weV9hZGRyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FnZW50LmggYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZ2VudC5oCmluZGV4IGZiOWVkMTQuLjY2NjkyODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FnZW50LmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWdlbnQuaApAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogYWdlbnQuaCAxMzg5IDIwMDQtMTItMjcgMjI6NTY6NDdaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBfX0FHRU5UX0hfCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jYWNoZS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY2FjaGUuYwppbmRleCBlODVmNzAxLi42ODg4MzU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jYWNoZS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NhY2hlLmMKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGNhY2hlLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbS5jCmluZGV4IGE0N2ZlNjQuLjU1NzM4ZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY20uYwpAQCAtMzEsOCArMzEsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogY20uYyA0MzExIDIwMDUtMTItMDUgMTg6NDI6MDFaIHNlYW4uaGVmdHkgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jCmluZGV4IDY3MWYxMzcuLmFlMTFkNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jCkBAIC00LDI5ICs0LDMzIEBACiAgKiBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNSwgTWVsbGFub3ggVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgotICogVGhpcyBTb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciBvbmUgb2YgdGhlIGZvbGxvd2luZyBsaWNlbnNlczoKKyAqIFRoaXMgc29mdHdhcmUgaXMgYXZhaWxhYmxlIHRvIHlvdSB1bmRlciBhIGNob2ljZSBvZiBvbmUgb2YgdHdvCisgKiBsaWNlbnNlcy4gIFlvdSBtYXkgY2hvb3NlIHRvIGJlIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiwgYXZhaWxhYmxlIGZyb20gdGhlIGZpbGUKKyAqIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUsIG9yIHRoZQorICogT3BlbklCLm9yZyBCU0QgbGljZW5zZSBiZWxvdzoKICAqCi0gKiAxKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJDb21tb24gUHVibGljIExpY2Vuc2UgMS4wIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvY3BsLnBocC4KKyAqICAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yCisgKiAgICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nCisgKiAgICAgY29uZGl0aW9ucyBhcmUgbWV0OgogICoKLSAqIDIpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIlRoZSBCU0QgTGljZW5zZSIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyLgogICoKLSAqIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiIgYQotICogICAgY29weSBvZiB3aGljaCBpcyBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogTGljZW5zZWUgaGFzIHRoZSByaWdodCB0byBjaG9vc2Ugb25lIG9mIHRoZSBhYm92ZSBsaWNlbnNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlIGFuZCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gKiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CkBAIC0xMjYsOCArMTMwLDcgQEAKIAogCXN0cnVjdCBjb21wbGV0aW9uCWNvbXA7CiAJYXRvbWljX3QJCXJlZmNvdW50OwotCXdhaXRfcXVldWVfaGVhZF90CXdhaXRfcmVtb3ZlOwotCWF0b21pY190CQlkZXZfcmVtb3ZlOworCXN0cnVjdCBtdXRleAkJaGFuZGxlcl9tdXRleDsKIAogCWludAkJCWJhY2tsb2c7CiAJaW50CQkJdGltZW91dF9tczsKQEAgLTM1MSwyNiArMzU0LDE1IEBACiAJCWNvbXBsZXRlKCZpZF9wcml2LT5jb21wKTsKIH0KIAotc3RhdGljIGludCBjbWFfZGlzYWJsZV9yZW1vdmUoc3RydWN0IHJkbWFfaWRfcHJpdmF0ZSAqaWRfcHJpdiwKK3N0YXRpYyBpbnQgY21hX2Rpc2FibGVfY2FsbGJhY2soc3RydWN0IHJkbWFfaWRfcHJpdmF0ZSAqaWRfcHJpdiwKIAkJCSAgICAgIGVudW0gY21hX3N0YXRlIHN0YXRlKQogewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpZF9wcml2LT5sb2NrLCBmbGFncyk7Ci0JaWYgKGlkX3ByaXYtPnN0YXRlID09IHN0YXRlKSB7Ci0JCWF0b21pY19pbmMoJmlkX3ByaXYtPmRldl9yZW1vdmUpOwotCQlyZXQgPSAwOwotCX0gZWxzZQotCQlyZXQgPSAtRUlOVkFMOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlkX3ByaXYtPmxvY2ssIGZsYWdzKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBjbWFfZW5hYmxlX3JlbW92ZShzdHJ1Y3QgcmRtYV9pZF9wcml2YXRlICppZF9wcml2KQotewotCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZpZF9wcml2LT5kZXZfcmVtb3ZlKSkKLQkJd2FrZV91cCgmaWRfcHJpdi0+d2FpdF9yZW1vdmUpOworCW11dGV4X2xvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOworCWlmIChpZF9wcml2LT5zdGF0ZSAhPSBzdGF0ZSkgeworCQltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgY21hX2hhc19jbV9kZXYoc3RydWN0IHJkbWFfaWRfcHJpdmF0ZSAqaWRfcHJpdikKQEAgLTM5NSw4ICszODcsNyBAQAogCW11dGV4X2luaXQoJmlkX3ByaXYtPnFwX211dGV4KTsKIAlpbml0X2NvbXBsZXRpb24oJmlkX3ByaXYtPmNvbXApOwogCWF0b21pY19zZXQoJmlkX3ByaXYtPnJlZmNvdW50LCAxKTsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZpZF9wcml2LT53YWl0X3JlbW92ZSk7Ci0JYXRvbWljX3NldCgmaWRfcHJpdi0+ZGV2X3JlbW92ZSwgMCk7CisJbXV0ZXhfaW5pdCgmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJSU5JVF9MSVNUX0hFQUQoJmlkX3ByaXYtPmxpc3Rlbl9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmaWRfcHJpdi0+bWNfbGlzdCk7CiAJZ2V0X3JhbmRvbV9ieXRlcygmaWRfcHJpdi0+c2VxX251bSwgc2l6ZW9mIGlkX3ByaXYtPnNlcV9udW0pOwpAQCAtOTIzLDcgKzkxNCw3IEBACiAJc3RydWN0IHJkbWFfY21fZXZlbnQgZXZlbnQ7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoY21hX2Rpc2FibGVfcmVtb3ZlKGlkX3ByaXYsIENNQV9DT05ORUNUKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2soaWRfcHJpdiwgQ01BX0NPTk5FQ1QpKQogCQlyZXR1cm4gMDsKIAogCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZiBldmVudCk7CkBAIC05NzAsNyArOTYxLDcgQEAKIAkJZXZlbnQucGFyYW0uY29ubi5wcml2YXRlX2RhdGFfbGVuID0gSUJfQ01fUkVKX1BSSVZBVEVfREFUQV9TSVpFOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9FUlIgIlJETUEgQ01BOiB1bmV4cGVjdGVkIElCIENNIGV2ZW50OiAlZCIsCisJCXByaW50ayhLRVJOX0VSUiAiUkRNQSBDTUE6IHVuZXhwZWN0ZWQgSUIgQ00gZXZlbnQ6ICVkXG4iLAogCQkgICAgICAgaWJfZXZlbnQtPmV2ZW50KTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtOTgwLDEyICs5NzEsMTIgQEAKIAkJLyogRGVzdHJveSB0aGUgQ00gSUQgYnkgcmV0dXJuaW5nIGEgbm9uLXplcm8gdmFsdWUuICovCiAJCWlkX3ByaXYtPmNtX2lkLmliID0gTlVMTDsKIAkJY21hX2V4Y2goaWRfcHJpdiwgQ01BX0RFU1RST1lJTkcpOwotCQljbWFfZW5hYmxlX3JlbW92ZShpZF9wcml2KTsKKwkJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAkJcmRtYV9kZXN0cm95X2lkKCZpZF9wcml2LT5pZCk7CiAJCXJldHVybiByZXQ7CiAJfQogb3V0OgotCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtOTk4LDYgKzk4OSw3IEBACiAJdW5pb24gY21hX2lwX2FkZHIgKnNyYywgKmRzdDsKIAlfX2JlMTYgcG9ydDsKIAl1OCBpcF92ZXI7CisJaW50IHJldDsKIAogCWlmIChjbWFfZ2V0X25ldF9pbmZvKGliX2V2ZW50LT5wcml2YXRlX2RhdGEsIGxpc3Rlbl9pZC0+cHMsCiAJCQkgICAgICZpcF92ZXIsICZwb3J0LCAmc3JjLCAmZHN0KSkKQEAgLTEwMjIsMTAgKzEwMTQsMTEgQEAKIAlpZiAocnQtPm51bV9wYXRocyA9PSAyKQogCQlydC0+cGF0aF9yZWNbMV0gPSAqaWJfZXZlbnQtPnBhcmFtLnJlcV9yY3ZkLmFsdGVybmF0ZV9wYXRoOwogCi0JaWJfYWRkcl9zZXRfc2dpZCgmcnQtPmFkZHIuZGV2X2FkZHIsICZydC0+cGF0aF9yZWNbMF0uc2dpZCk7CiAJaWJfYWRkcl9zZXRfZGdpZCgmcnQtPmFkZHIuZGV2X2FkZHIsICZydC0+cGF0aF9yZWNbMF0uZGdpZCk7Ci0JaWJfYWRkcl9zZXRfcGtleSgmcnQtPmFkZHIuZGV2X2FkZHIsIGJlMTZfdG9fY3B1KHJ0LT5wYXRoX3JlY1swXS5wa2V5KSk7Ci0JcnQtPmFkZHIuZGV2X2FkZHIuZGV2X3R5cGUgPSBSRE1BX05PREVfSUJfQ0E7CisJcmV0ID0gcmRtYV90cmFuc2xhdGVfaXAoJmlkLT5yb3V0ZS5hZGRyLnNyY19hZGRyLAorCQkJCSZpZC0+cm91dGUuYWRkci5kZXZfYWRkcik7CisJaWYgKHJldCkKKwkJZ290byBkZXN0cm95X2lkOwogCiAJaWRfcHJpdiA9IGNvbnRhaW5lcl9vZihpZCwgc3RydWN0IHJkbWFfaWRfcHJpdmF0ZSwgaWQpOwogCWlkX3ByaXYtPnN0YXRlID0gQ01BX0NPTk5FQ1Q7CkBAIC0xMDk1LDcgKzEwODgsNyBAQAogCWludCBvZmZzZXQsIHJldDsKIAogCWxpc3Rlbl9pZCA9IGNtX2lkLT5jb250ZXh0OwotCWlmIChjbWFfZGlzYWJsZV9yZW1vdmUobGlzdGVuX2lkLCBDTUFfTElTVEVOKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2sobGlzdGVuX2lkLCBDTUFfTElTVEVOKSkKIAkJcmV0dXJuIC1FQ09OTkFCT1JURUQ7CiAKIAltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YgZXZlbnQpOwpAQCAtMTExNiw3ICsxMTA5LDcgQEAKIAkJZ290byBvdXQ7CiAJfQogCi0JYXRvbWljX2luYygmY29ubl9pZC0+ZGV2X3JlbW92ZSk7CisJbXV0ZXhfbG9ja19uZXN0ZWQoJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgsIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKIAltdXRleF9sb2NrKCZsb2NrKTsKIAlyZXQgPSBjbWFfYWNxdWlyZV9kZXYoY29ubl9pZCk7CiAJbXV0ZXhfdW5sb2NrKCZsb2NrKTsKQEAgLTExMzgsNyArMTEzMSw3IEBACiAJCSAgICAhY21hX2lzX3VkX3BzKGNvbm5faWQtPmlkLnBzKSkKIAkJCWliX3NlbmRfY21fbXJhKGNtX2lkLCBDTUFfQ01fTVJBX1NFVFRJTkcsIE5VTEwsIDApOwogCQltdXRleF91bmxvY2soJmxvY2spOwotCQljbWFfZW5hYmxlX3JlbW92ZShjb25uX2lkKTsKKwkJbXV0ZXhfdW5sb2NrKCZjb25uX2lkLT5oYW5kbGVyX211dGV4KTsKIAkJZ290byBvdXQ7CiAJfQogCkBAIC0xMTQ3LDExICsxMTQwLDExIEBACiAKIHJlbGVhc2VfY29ubl9pZDoKIAljbWFfZXhjaChjb25uX2lkLCBDTUFfREVTVFJPWUlORyk7Ci0JY21hX2VuYWJsZV9yZW1vdmUoY29ubl9pZCk7CisJbXV0ZXhfdW5sb2NrKCZjb25uX2lkLT5oYW5kbGVyX211dGV4KTsKIAlyZG1hX2Rlc3Ryb3lfaWQoJmNvbm5faWQtPmlkKTsKIAogb3V0OgotCWNtYV9lbmFibGVfcmVtb3ZlKGxpc3Rlbl9pZCk7CisJbXV0ZXhfdW5sb2NrKCZsaXN0ZW5faWQtPmhhbmRsZXJfbXV0ZXgpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTEyMTcsNyArMTIxMCw3IEBACiAJc3RydWN0IHNvY2thZGRyX2luICpzaW47CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoY21hX2Rpc2FibGVfcmVtb3ZlKGlkX3ByaXYsIENNQV9DT05ORUNUKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2soaWRfcHJpdiwgQ01BX0NPTk5FQ1QpKQogCQlyZXR1cm4gMDsKIAogCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZiBldmVudCk7CkBAIC0xMjYxLDEyICsxMjU0LDEyIEBACiAJCS8qIERlc3Ryb3kgdGhlIENNIElEIGJ5IHJldHVybmluZyBhIG5vbi16ZXJvIHZhbHVlLiAqLwogCQlpZF9wcml2LT5jbV9pZC5pdyA9IE5VTEw7CiAJCWNtYV9leGNoKGlkX3ByaXYsIENNQV9ERVNUUk9ZSU5HKTsKLQkJY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJCXJkbWFfZGVzdHJveV9pZCgmaWRfcHJpdi0+aWQpOwogCQlyZXR1cm4gcmV0OwogCX0KIAotCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTI4Miw3ICsxMjc1LDcgQEAKIAlzdHJ1Y3QgaWJfZGV2aWNlX2F0dHIgYXR0cjsKIAogCWxpc3Rlbl9pZCA9IGNtX2lkLT5jb250ZXh0OwotCWlmIChjbWFfZGlzYWJsZV9yZW1vdmUobGlzdGVuX2lkLCBDTUFfTElTVEVOKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2sobGlzdGVuX2lkLCBDTUFfTElTVEVOKSkKIAkJcmV0dXJuIC1FQ09OTkFCT1JURUQ7CiAKIAkvKiBDcmVhdGUgYSBuZXcgUkRNQSBpZCBmb3IgdGhlIG5ldyBJVyBDTSBJRCAqLwpAQCAtMTI5NCwxOSArMTI4NywxOSBAQAogCQlnb3RvIG91dDsKIAl9CiAJY29ubl9pZCA9IGNvbnRhaW5lcl9vZihuZXdfY21faWQsIHN0cnVjdCByZG1hX2lkX3ByaXZhdGUsIGlkKTsKLQlhdG9taWNfaW5jKCZjb25uX2lkLT5kZXZfcmVtb3ZlKTsKKwltdXRleF9sb2NrX25lc3RlZCgmY29ubl9pZC0+aGFuZGxlcl9tdXRleCwgU0lOR0xFX0RFUFRIX05FU1RJTkcpOwogCWNvbm5faWQtPnN0YXRlID0gQ01BX0NPTk5FQ1Q7CiAKIAlkZXYgPSBpcF9kZXZfZmluZCgmaW5pdF9uZXQsIGl3X2V2ZW50LT5sb2NhbF9hZGRyLnNpbl9hZGRyLnNfYWRkcik7CiAJaWYgKCFkZXYpIHsKIAkJcmV0ID0gLUVBRERSTk9UQVZBSUw7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGNvbm5faWQpOworCQltdXRleF91bmxvY2soJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQobmV3X2NtX2lkKTsKIAkJZ290byBvdXQ7CiAJfQogCXJldCA9IHJkbWFfY29weV9hZGRyKCZjb25uX2lkLT5pZC5yb3V0ZS5hZGRyLmRldl9hZGRyLCBkZXYsIE5VTEwpOwogCWlmIChyZXQpIHsKLQkJY21hX2VuYWJsZV9yZW1vdmUoY29ubl9pZCk7CisJCW11dGV4X3VubG9jaygmY29ubl9pZC0+aGFuZGxlcl9tdXRleCk7CiAJCXJkbWFfZGVzdHJveV9pZChuZXdfY21faWQpOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xMzE1LDcgKzEzMDgsNyBAQAogCXJldCA9IGNtYV9hY3F1aXJlX2Rldihjb25uX2lkKTsKIAltdXRleF91bmxvY2soJmxvY2spOwogCWlmIChyZXQpIHsKLQkJY21hX2VuYWJsZV9yZW1vdmUoY29ubl9pZCk7CisJCW11dGV4X3VubG9jaygmY29ubl9pZC0+aGFuZGxlcl9tdXRleCk7CiAJCXJkbWFfZGVzdHJveV9pZChuZXdfY21faWQpOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xMzMxLDcgKzEzMjQsNyBAQAogCiAJcmV0ID0gaWJfcXVlcnlfZGV2aWNlKGNvbm5faWQtPmlkLmRldmljZSwgJmF0dHIpOwogCWlmIChyZXQpIHsKLQkJY21hX2VuYWJsZV9yZW1vdmUoY29ubl9pZCk7CisJCW11dGV4X3VubG9jaygmY29ubl9pZC0+aGFuZGxlcl9tdXRleCk7CiAJCXJkbWFfZGVzdHJveV9pZChuZXdfY21faWQpOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xMzQ3LDE0ICsxMzQwLDE3IEBACiAJCS8qIFVzZXIgd2FudHMgdG8gZGVzdHJveSB0aGUgQ00gSUQgKi8KIAkJY29ubl9pZC0+Y21faWQuaXcgPSBOVUxMOwogCQljbWFfZXhjaChjb25uX2lkLCBDTUFfREVTVFJPWUlORyk7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGNvbm5faWQpOworCQltdXRleF91bmxvY2soJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQoJmNvbm5faWQtPmlkKTsKKwkJZ290byBvdXQ7CiAJfQogCisJbXV0ZXhfdW5sb2NrKCZjb25uX2lkLT5oYW5kbGVyX211dGV4KTsKKwogb3V0OgogCWlmIChkZXYpCiAJCWRldl9wdXQoZGV2KTsKLQljbWFfZW5hYmxlX3JlbW92ZShsaXN0ZW5faWQpOworCW11dGV4X3VubG9jaygmbGlzdGVuX2lkLT5oYW5kbGVyX211dGV4KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xNDQ2LDcgKzE0NDIsNyBAQAogCXJldCA9IHJkbWFfbGlzdGVuKGlkLCBpZF9wcml2LT5iYWNrbG9nKTsKIAlpZiAocmV0KQogCQlwcmludGsoS0VSTl9XQVJOSU5HICJSRE1BIENNQTogY21hX2xpc3Rlbl9vbl9kZXYsIGVycm9yICVkLCAiCi0JCSAgICAgICAibGlzdGVuaW5nIG9uIGRldmljZSAlcyIsIHJldCwgY21hX2Rldi0+ZGV2aWNlLT5uYW1lKTsKKwkJICAgICAgICJsaXN0ZW5pbmcgb24gZGV2aWNlICVzXG4iLCByZXQsIGNtYV9kZXYtPmRldmljZS0+bmFtZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNtYV9saXN0ZW5fb25fYWxsKHN0cnVjdCByZG1hX2lkX3ByaXZhdGUgKmlkX3ByaXYpCkBAIC0xNTg2LDcgKzE1ODIsNyBAQAogCXN0cnVjdCByZG1hX2lkX3ByaXZhdGUgKmlkX3ByaXYgPSB3b3JrLT5pZDsKIAlpbnQgZGVzdHJveSA9IDA7CiAKLQlhdG9taWNfaW5jKCZpZF9wcml2LT5kZXZfcmVtb3ZlKTsKKwltdXRleF9sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAlpZiAoIWNtYV9jb21wX2V4Y2goaWRfcHJpdiwgd29yay0+b2xkX3N0YXRlLCB3b3JrLT5uZXdfc3RhdGUpKQogCQlnb3RvIG91dDsKIApAQCAtMTU5NSw3ICsxNTkxLDcgQEAKIAkJZGVzdHJveSA9IDE7CiAJfQogb3V0OgotCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJY21hX2RlcmVmX2lkKGlkX3ByaXYpOwogCWlmIChkZXN0cm95KQogCQlyZG1hX2Rlc3Ryb3lfaWQoJmlkX3ByaXYtPmlkKTsKQEAgLTE3NTgsNyArMTc1NCw3IEBACiAJc3RydWN0IHJkbWFfY21fZXZlbnQgZXZlbnQ7CiAKIAltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YgZXZlbnQpOwotCWF0b21pY19pbmMoJmlkX3ByaXYtPmRldl9yZW1vdmUpOworCW11dGV4X2xvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCiAJLyoKIAkgKiBHcmFiIG11dGV4IHRvIGJsb2NrIHJkbWFfZGVzdHJveV9pZCgpIGZyb20gcmVtb3ZpbmcgdGhlIGRldmljZSB3aGlsZQpAQCAtMTc4NywxMyArMTc4MywxMyBAQAogCiAJaWYgKGlkX3ByaXYtPmlkLmV2ZW50X2hhbmRsZXIoJmlkX3ByaXYtPmlkLCAmZXZlbnQpKSB7CiAJCWNtYV9leGNoKGlkX3ByaXYsIENNQV9ERVNUUk9ZSU5HKTsKLQkJY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJCWNtYV9kZXJlZl9pZChpZF9wcml2KTsKIAkJcmRtYV9kZXN0cm95X2lkKCZpZF9wcml2LT5pZCk7CiAJCXJldHVybjsKIAl9CiBvdXQ6Ci0JY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAljbWFfZGVyZWZfaWQoaWRfcHJpdik7CiB9CiAKQEAgLTIxMjAsNyArMjExNiw3IEBACiAJc3RydWN0IGliX2NtX3NpZHJfcmVwX2V2ZW50X3BhcmFtICpyZXAgPSAmaWJfZXZlbnQtPnBhcmFtLnNpZHJfcmVwX3JjdmQ7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoY21hX2Rpc2FibGVfcmVtb3ZlKGlkX3ByaXYsIENNQV9DT05ORUNUKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2soaWRfcHJpdiwgQ01BX0NPTk5FQ1QpKQogCQlyZXR1cm4gMDsKIAogCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZiBldmVudCk7CkBAIC0yMTUxLDcgKzIxNDcsNyBAQAogCQlldmVudC5zdGF0dXMgPSAwOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9FUlIgIlJETUEgQ01BOiB1bmV4cGVjdGVkIElCIENNIGV2ZW50OiAlZCIsCisJCXByaW50ayhLRVJOX0VSUiAiUkRNQSBDTUE6IHVuZXhwZWN0ZWQgSUIgQ00gZXZlbnQ6ICVkXG4iLAogCQkgICAgICAgaWJfZXZlbnQtPmV2ZW50KTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMjE2MSwxMiArMjE1NywxMiBAQAogCQkvKiBEZXN0cm95IHRoZSBDTSBJRCBieSByZXR1cm5pbmcgYSBub24temVybyB2YWx1ZS4gKi8KIAkJaWRfcHJpdi0+Y21faWQuaWIgPSBOVUxMOwogCQljbWFfZXhjaChpZF9wcml2LCBDTUFfREVTVFJPWUlORyk7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCQltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQoJmlkX3ByaXYtPmlkKTsKIAkJcmV0dXJuIHJldDsKIAl9CiBvdXQ6Ci0JY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yNTY0LDggKzI1NjAsOCBAQAogCWludCByZXQ7CiAKIAlpZF9wcml2ID0gbWMtPmlkX3ByaXY7Ci0JaWYgKGNtYV9kaXNhYmxlX3JlbW92ZShpZF9wcml2LCBDTUFfQUREUl9CT1VORCkgJiYKLQkgICAgY21hX2Rpc2FibGVfcmVtb3ZlKGlkX3ByaXYsIENNQV9BRERSX1JFU09MVkVEKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2soaWRfcHJpdiwgQ01BX0FERFJfQk9VTkQpICYmCisJICAgIGNtYV9kaXNhYmxlX2NhbGxiYWNrKGlkX3ByaXYsIENNQV9BRERSX1JFU09MVkVEKSkKIAkJcmV0dXJuIDA7CiAKIAltdXRleF9sb2NrKCZpZF9wcml2LT5xcF9tdXRleCk7CkBAIC0yNTkwLDEyICsyNTg2LDEyIEBACiAJcmV0ID0gaWRfcHJpdi0+aWQuZXZlbnRfaGFuZGxlcigmaWRfcHJpdi0+aWQsICZldmVudCk7CiAJaWYgKHJldCkgewogCQljbWFfZXhjaChpZF9wcml2LCBDTUFfREVTVFJPWUlORyk7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCQltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQoJmlkX3ByaXYtPmlkKTsKIAkJcmV0dXJuIDA7CiAJfQogCi0JY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjc1NCw2ICsyNzUwLDcgQEAKIHsKIAlzdHJ1Y3QgcmRtYV9jbV9ldmVudCBldmVudDsKIAllbnVtIGNtYV9zdGF0ZSBzdGF0ZTsKKwlpbnQgcmV0ID0gMDsKIAogCS8qIFJlY29yZCB0aGF0IHdlIHdhbnQgdG8gcmVtb3ZlIHRoZSBkZXZpY2UgKi8KIAlzdGF0ZSA9IGNtYV9leGNoKGlkX3ByaXYsIENNQV9ERVZJQ0VfUkVNT1ZBTCk7CkBAIC0yNzYxLDE1ICsyNzU4LDE4IEBACiAJCXJldHVybiAwOwogCiAJY21hX2NhbmNlbF9vcGVyYXRpb24oaWRfcHJpdiwgc3RhdGUpOwotCXdhaXRfZXZlbnQoaWRfcHJpdi0+d2FpdF9yZW1vdmUsICFhdG9taWNfcmVhZCgmaWRfcHJpdi0+ZGV2X3JlbW92ZSkpOworCW11dGV4X2xvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCiAJLyogQ2hlY2sgZm9yIGRlc3RydWN0aW9uIGZyb20gYW5vdGhlciBjYWxsYmFjay4gKi8KIAlpZiAoIWNtYV9jb21wKGlkX3ByaXYsIENNQV9ERVZJQ0VfUkVNT1ZBTCkpCi0JCXJldHVybiAwOworCQlnb3RvIG91dDsKIAogCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZiBldmVudCk7CiAJZXZlbnQuZXZlbnQgPSBSRE1BX0NNX0VWRU5UX0RFVklDRV9SRU1PVkFMOwotCXJldHVybiBpZF9wcml2LT5pZC5ldmVudF9oYW5kbGVyKCZpZF9wcml2LT5pZCwgJmV2ZW50KTsKKwlyZXQgPSBpZF9wcml2LT5pZC5ldmVudF9oYW5kbGVyKCZpZF9wcml2LT5pZCwgJmV2ZW50KTsKK291dDoKKwltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIGNtYV9wcm9jZXNzX3JlbW92ZShzdHJ1Y3QgY21hX2RldmljZSAqY21hX2RldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NvcmVfcHJpdi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY29yZV9wcml2LmgKaW5kZXggN2FkNDdhNC4uMDVhYzM2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY29yZV9wcml2LmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY29yZV9wcml2LmgKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGNvcmVfcHJpdi5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIF9DT1JFX1BSSVZfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYwppbmRleCA1YWM1ZmZlLi43OTEzYjgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogZGV2aWNlLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2Ztcl9wb29sLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9mbXJfcG9vbC5jCmluZGV4IDEyODZkYzEuLjQ1MDcwNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2Ztcl9wb29sLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZm1yX3Bvb2wuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogZm1yX3Bvb2wuYyAyNzMwIDIwMDUtMDYtMjggMTY6NDM6MDNaIHNlYW4uaGVmdHkgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3ByaXYuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9wcml2LmgKaW5kZXggOGI3NTAxMC4uMDVjZTMzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3ByaXYuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcHJpdi5oCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtYWRfcHJpdi5oIDU1OTYgMjAwNi0wMy0wMyAwMTowMDowN1ogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2lmbmRlZiBfX0lCX01BRF9QUklWX0hfXwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9ybXBwLmMKaW5kZXggYTVlMmEzMS4uZDBlZjdkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcm1wcC5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtYWRfcm1wcC5jIDE5MjEgMjAwNS0wMy0wMiAyMjo1ODo0NFogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2luY2x1ZGUgIm1hZF9wcml2LmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcm1wcC5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuaAppbmRleCBmMDYxNmZkLi4zZDMzNmJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcm1wcC5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9ybXBwLmgKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG1hZF9ybXBwLmggMTkyMSAyMDA1LTAyLTI1IDIyOjU4OjQ0WiBzZWFuLmhlZnR5ICQKICAqLwogCiAjaWZuZGVmIF9fTUFEX1JNUFBfSF9fCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9wYWNrZXIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3BhY2tlci5jCmluZGV4IGM5NzJkNzIuLjAxOWJkNGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3BhY2tlci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3BhY2tlci5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBwYWNrZXIuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc2FfcXVlcnkuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3NhX3F1ZXJ5LmMKaW5kZXggY2Y0NzRlYy4uMTM0MWRlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc2FfcXVlcnkuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9zYV9xdWVyeS5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBzYV9xdWVyeS5jIDI4MTEgMjAwNS0wNy0wNiAxODoxMTo0M1ogaGFsciAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtMzYxLDcgKzM1OSw3IEBACiB7CiAJc3RydWN0IGliX3NhX3BvcnQgKnBvcnQgPQogCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGliX3NhX3BvcnQsIHVwZGF0ZV90YXNrKTsKLQlzdHJ1Y3QgaWJfc2Ffc21fYWggKm5ld19haCwgKm9sZF9haDsKKwlzdHJ1Y3QgaWJfc2Ffc21fYWggKm5ld19haDsKIAlzdHJ1Y3QgaWJfcG9ydF9hdHRyIHBvcnRfYXR0cjsKIAlzdHJ1Y3QgaWJfYWhfYXR0ciAgIGFoX2F0dHI7CiAKQEAgLTM5NywxMiArMzk1LDkgQEAKIAl9CiAKIAlzcGluX2xvY2tfaXJxKCZwb3J0LT5haF9sb2NrKTsKLQlvbGRfYWggPSBwb3J0LT5zbV9haDsKIAlwb3J0LT5zbV9haCA9IG5ld19haDsKIAlzcGluX3VubG9ja19pcnEoJnBvcnQtPmFoX2xvY2spOwogCi0JaWYgKG9sZF9haCkKLQkJa3JlZl9wdXQoJm9sZF9haC0+cmVmLCBmcmVlX3NtX2FoKTsKIH0KIAogc3RhdGljIHZvaWQgaWJfc2FfZXZlbnQoc3RydWN0IGliX2V2ZW50X2hhbmRsZXIgKmhhbmRsZXIsIHN0cnVjdCBpYl9ldmVudCAqZXZlbnQpCkBAIC00MTMsOCArNDA4LDE3IEBACiAJICAgIGV2ZW50LT5ldmVudCA9PSBJQl9FVkVOVF9QS0VZX0NIQU5HRSB8fAogCSAgICBldmVudC0+ZXZlbnQgPT0gSUJfRVZFTlRfU01fQ0hBTkdFICAgfHwKIAkgICAgZXZlbnQtPmV2ZW50ID09IElCX0VWRU5UX0NMSUVOVF9SRVJFR0lTVEVSKSB7Ci0JCXN0cnVjdCBpYl9zYV9kZXZpY2UgKnNhX2RldjsKLQkJc2FfZGV2ID0gY29udGFpbmVyX29mKGhhbmRsZXIsIHR5cGVvZigqc2FfZGV2KSwgZXZlbnRfaGFuZGxlcik7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJCXN0cnVjdCBpYl9zYV9kZXZpY2UgKnNhX2RldiA9CisJCQljb250YWluZXJfb2YoaGFuZGxlciwgdHlwZW9mKCpzYV9kZXYpLCBldmVudF9oYW5kbGVyKTsKKwkJc3RydWN0IGliX3NhX3BvcnQgKnBvcnQgPQorCQkJJnNhX2Rldi0+cG9ydFtldmVudC0+ZWxlbWVudC5wb3J0X251bSAtIHNhX2Rldi0+c3RhcnRfcG9ydF07CisKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmFoX2xvY2ssIGZsYWdzKTsKKwkJaWYgKHBvcnQtPnNtX2FoKQorCQkJa3JlZl9wdXQoJnBvcnQtPnNtX2FoLT5yZWYsIGZyZWVfc21fYWgpOworCQlwb3J0LT5zbV9haCA9IE5VTEw7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmFoX2xvY2ssIGZsYWdzKTsKIAogCQlzY2hlZHVsZV93b3JrKCZzYV9kZXYtPnBvcnRbZXZlbnQtPmVsZW1lbnQucG9ydF9udW0gLQogCQkJCQkgICAgc2FfZGV2LT5zdGFydF9wb3J0XS51cGRhdGVfdGFzayk7CkBAIC01MTksNiArNTIzLDEwIEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZxdWVyeS0+cG9ydC0+YWhfbG9jaywgZmxhZ3MpOworCWlmICghcXVlcnktPnBvcnQtPnNtX2FoKSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXJ5LT5wb3J0LT5haF9sb2NrLCBmbGFncyk7CisJCXJldHVybiAtRUFHQUlOOworCX0KIAlrcmVmX2dldCgmcXVlcnktPnBvcnQtPnNtX2FoLT5yZWYpOwogCXF1ZXJ5LT5zbV9haCA9IHF1ZXJ5LT5wb3J0LT5zbV9haDsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWVyeS0+cG9ydC0+YWhfbG9jaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc3lzZnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3N5c2ZzLmMKaW5kZXggOTU3NTY1NS4uNGQxMDQyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc3lzZnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9zeXNmcy5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBzeXNmcy5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSAiY29yZV9wcml2LmgiCkBAIC02NjUsNiArNjYzLDEyMCBAQAogCS5kZXZfdWV2ZW50ID0gaWJfZGV2aWNlX3VldmVudCwKIH07CiAKKy8qIFNob3cgYSBnaXZlbiBhbiBhdHRyaWJ1dGUgaW4gdGhlIHN0YXRpc3RpY3MgZ3JvdXAgKi8KK3N0YXRpYyBzc2l6ZV90IHNob3dfcHJvdG9jb2xfc3RhdChjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXZpY2UsCisJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZiwKKwkJCSAgICB1bnNpZ25lZCBvZmZzZXQpCit7CisJc3RydWN0IGliX2RldmljZSAqZGV2ID0gY29udGFpbmVyX29mKGRldmljZSwgc3RydWN0IGliX2RldmljZSwgZGV2KTsKKwl1bmlvbiByZG1hX3Byb3RvY29sX3N0YXRzIHN0YXRzOworCXNzaXplX3QgcmV0OworCisJcmV0ID0gZGV2LT5nZXRfcHJvdG9jb2xfc3RhdHMoZGV2LCAmc3RhdHMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlbGx1XG4iLAorCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgKCh1NjQgKikgJnN0YXRzKVtvZmZzZXRdKTsKK30KKworLyogZ2VuZXJhdGUgYSByZWFkLW9ubHkgaXdhcnAgc3RhdGlzdGljcyBhdHRyaWJ1dGUgKi8KKyNkZWZpbmUgSVdfU1RBVFNfRU5UUlkobmFtZSkJCQkJCQlcCitzdGF0aWMgc3NpemVfdCBzaG93XyMjbmFtZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UsCQkJXAorCQkJICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikJXAorewkJCQkJCQkJCVwKKwlyZXR1cm4gc2hvd19wcm90b2NvbF9zdGF0KGRldmljZSwgYXR0ciwgYnVmLAkJCVwKKwkJCQkgIG9mZnNldG9mKHN0cnVjdCBpd19wcm90b2NvbF9zdGF0cywgbmFtZSkgLyBcCisJCQkJICBzaXplb2YgKHU2NCkpOwkJCVwKK30JCQkJCQkJCQlcCitzdGF0aWMgREVWSUNFX0FUVFIobmFtZSwgU19JUlVHTywgc2hvd18jI25hbWUsIE5VTEwpCisKK0lXX1NUQVRTX0VOVFJZKGlwSW5SZWNlaXZlcyk7CitJV19TVEFUU19FTlRSWShpcEluSGRyRXJyb3JzKTsKK0lXX1NUQVRTX0VOVFJZKGlwSW5Ub29CaWdFcnJvcnMpOworSVdfU1RBVFNfRU5UUlkoaXBJbk5vUm91dGVzKTsKK0lXX1NUQVRTX0VOVFJZKGlwSW5BZGRyRXJyb3JzKTsKK0lXX1NUQVRTX0VOVFJZKGlwSW5Vbmtub3duUHJvdG9zKTsKK0lXX1NUQVRTX0VOVFJZKGlwSW5UcnVuY2F0ZWRQa3RzKTsKK0lXX1NUQVRTX0VOVFJZKGlwSW5EaXNjYXJkcyk7CitJV19TVEFUU19FTlRSWShpcEluRGVsaXZlcnMpOworSVdfU1RBVFNfRU5UUlkoaXBPdXRGb3J3RGF0YWdyYW1zKTsKK0lXX1NUQVRTX0VOVFJZKGlwT3V0UmVxdWVzdHMpOworSVdfU1RBVFNfRU5UUlkoaXBPdXREaXNjYXJkcyk7CitJV19TVEFUU19FTlRSWShpcE91dE5vUm91dGVzKTsKK0lXX1NUQVRTX0VOVFJZKGlwUmVhc21UaW1lb3V0KTsKK0lXX1NUQVRTX0VOVFJZKGlwUmVhc21SZXFkcyk7CitJV19TVEFUU19FTlRSWShpcFJlYXNtT0tzKTsKK0lXX1NUQVRTX0VOVFJZKGlwUmVhc21GYWlscyk7CitJV19TVEFUU19FTlRSWShpcEZyYWdPS3MpOworSVdfU1RBVFNfRU5UUlkoaXBGcmFnRmFpbHMpOworSVdfU1RBVFNfRU5UUlkoaXBGcmFnQ3JlYXRlcyk7CitJV19TVEFUU19FTlRSWShpcEluTWNhc3RQa3RzKTsKK0lXX1NUQVRTX0VOVFJZKGlwT3V0TWNhc3RQa3RzKTsKK0lXX1NUQVRTX0VOVFJZKGlwSW5CY2FzdFBrdHMpOworSVdfU1RBVFNfRU5UUlkoaXBPdXRCY2FzdFBrdHMpOworSVdfU1RBVFNfRU5UUlkodGNwUnRvQWxnb3JpdGhtKTsKK0lXX1NUQVRTX0VOVFJZKHRjcFJ0b01pbik7CitJV19TVEFUU19FTlRSWSh0Y3BSdG9NYXgpOworSVdfU1RBVFNfRU5UUlkodGNwTWF4Q29ubik7CitJV19TVEFUU19FTlRSWSh0Y3BBY3RpdmVPcGVucyk7CitJV19TVEFUU19FTlRSWSh0Y3BQYXNzaXZlT3BlbnMpOworSVdfU1RBVFNfRU5UUlkodGNwQXR0ZW1wdEZhaWxzKTsKK0lXX1NUQVRTX0VOVFJZKHRjcEVzdGFiUmVzZXRzKTsKK0lXX1NUQVRTX0VOVFJZKHRjcEN1cnJFc3RhYik7CitJV19TVEFUU19FTlRSWSh0Y3BJblNlZ3MpOworSVdfU1RBVFNfRU5UUlkodGNwT3V0U2Vncyk7CitJV19TVEFUU19FTlRSWSh0Y3BSZXRyYW5zU2Vncyk7CitJV19TVEFUU19FTlRSWSh0Y3BJbkVycnMpOworSVdfU1RBVFNfRU5UUlkodGNwT3V0UnN0cyk7CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppd19wcm90b19zdGF0c19hdHRyc1tdID0geworCSZkZXZfYXR0cl9pcEluUmVjZWl2ZXMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJbkhkckVycm9ycy5hdHRyLAorCSZkZXZfYXR0cl9pcEluVG9vQmlnRXJyb3JzLmF0dHIsCisJJmRldl9hdHRyX2lwSW5Ob1JvdXRlcy5hdHRyLAorCSZkZXZfYXR0cl9pcEluQWRkckVycm9ycy5hdHRyLAorCSZkZXZfYXR0cl9pcEluVW5rbm93blByb3Rvcy5hdHRyLAorCSZkZXZfYXR0cl9pcEluVHJ1bmNhdGVkUGt0cy5hdHRyLAorCSZkZXZfYXR0cl9pcEluRGlzY2FyZHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJbkRlbGl2ZXJzLmF0dHIsCisJJmRldl9hdHRyX2lwT3V0Rm9yd0RhdGFncmFtcy5hdHRyLAorCSZkZXZfYXR0cl9pcE91dFJlcXVlc3RzLmF0dHIsCisJJmRldl9hdHRyX2lwT3V0RGlzY2FyZHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBPdXROb1JvdXRlcy5hdHRyLAorCSZkZXZfYXR0cl9pcFJlYXNtVGltZW91dC5hdHRyLAorCSZkZXZfYXR0cl9pcFJlYXNtUmVxZHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBSZWFzbU9Lcy5hdHRyLAorCSZkZXZfYXR0cl9pcFJlYXNtRmFpbHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBGcmFnT0tzLmF0dHIsCisJJmRldl9hdHRyX2lwRnJhZ0ZhaWxzLmF0dHIsCisJJmRldl9hdHRyX2lwRnJhZ0NyZWF0ZXMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJbk1jYXN0UGt0cy5hdHRyLAorCSZkZXZfYXR0cl9pcE91dE1jYXN0UGt0cy5hdHRyLAorCSZkZXZfYXR0cl9pcEluQmNhc3RQa3RzLmF0dHIsCisJJmRldl9hdHRyX2lwT3V0QmNhc3RQa3RzLmF0dHIsCisJJmRldl9hdHRyX3RjcFJ0b0FsZ29yaXRobS5hdHRyLAorCSZkZXZfYXR0cl90Y3BSdG9NaW4uYXR0ciwKKwkmZGV2X2F0dHJfdGNwUnRvTWF4LmF0dHIsCisJJmRldl9hdHRyX3RjcE1heENvbm4uYXR0ciwKKwkmZGV2X2F0dHJfdGNwQWN0aXZlT3BlbnMuYXR0ciwKKwkmZGV2X2F0dHJfdGNwUGFzc2l2ZU9wZW5zLmF0dHIsCisJJmRldl9hdHRyX3RjcEF0dGVtcHRGYWlscy5hdHRyLAorCSZkZXZfYXR0cl90Y3BFc3RhYlJlc2V0cy5hdHRyLAorCSZkZXZfYXR0cl90Y3BDdXJyRXN0YWIuYXR0ciwKKwkmZGV2X2F0dHJfdGNwSW5TZWdzLmF0dHIsCisJJmRldl9hdHRyX3RjcE91dFNlZ3MuYXR0ciwKKwkmZGV2X2F0dHJfdGNwUmV0cmFuc1NlZ3MuYXR0ciwKKwkmZGV2X2F0dHJfdGNwSW5FcnJzLmF0dHIsCisJJmRldl9hdHRyX3RjcE91dFJzdHMuYXR0ciwKKwlOVUxMCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBpd19zdGF0c19ncm91cCA9IHsKKwkubmFtZQk9ICJwcm90b19zdGF0cyIsCisJLmF0dHJzCT0gaXdfcHJvdG9fc3RhdHNfYXR0cnMsCit9OworCiBpbnQgaWJfZGV2aWNlX3JlZ2lzdGVyX3N5c2ZzKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpjbGFzc19kZXYgPSAmZGV2aWNlLT5kZXY7CkBAIC03MDcsNiArODE5LDEyIEBACiAJCX0KIAl9CiAKKwlpZiAoZGV2aWNlLT5ub2RlX3R5cGUgPT0gUkRNQV9OT0RFX1JOSUMgJiYgZGV2aWNlLT5nZXRfcHJvdG9jb2xfc3RhdHMpIHsKKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZjbGFzc19kZXYtPmtvYmosICZpd19zdGF0c19ncm91cCk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl9wdXQ7CisJfQorCiAJcmV0dXJuIDA7CiAKIGVycl9wdXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y20uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbS5jCmluZGV4IGQ3YTY4ODEuLjk0OTQwMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbS5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB1Y20uYyA0MzExIDIwMDUtMTItMDUgMTg6NDI6MDFaIHNlYW4uaGVmdHkgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CkBAIC00NSw2ICs0Myw3IEBACiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2lkci5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKQEAgLTExNTksNiArMTE1OCw3IEBACiB7CiAJc3RydWN0IGliX3VjbV9maWxlICpmaWxlOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlmaWxlID0ga21hbGxvYyhzaXplb2YoKmZpbGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWZpbGUpCiAJCXJldHVybiAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdWNtYS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdWNtYS5jCmluZGV4IGNhNGNmM2EuLjE5NWY5NzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbWEuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y21hLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbi5oPgogI2luY2x1ZGUgPGxpbnV4L2luNi5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8cmRtYS9yZG1hX3VzZXJfY20uaD4KICNpbmNsdWRlIDxyZG1hL2liX21hcnNoYWxsLmg+CkBAIC0xMTU2LDYgKzExNTcsNyBAQAogCWlmICghZmlsZSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlsb2NrX2tlcm5lbCgpOwogCUlOSVRfTElTVF9IRUFEKCZmaWxlLT5ldmVudF9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmZmlsZS0+Y3R4X2xpc3QpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmZpbGUtPnBvbGxfd2FpdCk7CkBAIC0xMTYzLDYgKzExNjUsNyBAQAogCiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gZmlsZTsKIAlmaWxlLT5maWxwID0gZmlscDsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VkX2hlYWRlci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdWRfaGVhZGVyLmMKaW5kZXggOTk3YzA3ZC4uOGVjNzg3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdWRfaGVhZGVyLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdWRfaGVhZGVyLmMKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IHVkX2hlYWRlci5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYwppbmRleCBhMTc2OGRiLi42ZjdjMDk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbS5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB1dmVyYnNfbWVtLmMgMjc0MyAyMDA1LTA2LTI4IDIyOjI3OjU5WiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXNlcl9tYWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VzZXJfbWFkLmMKaW5kZXggODQwZWRlOS4uMjY4YTJkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXNlcl9tYWQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91c2VyX21hZC5jCkBAIC0zMSw4ICszMSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB1c2VyX21hZC5jIDU1OTYgMjAwNi0wMy0wMyAwMTowMDowN1ogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNzc3LDYgKzc3NSwxOSBAQAogfQogI2VuZGlmCiAKKy8qCisgKiBpYl91bWFkX29wZW4oKSBkb2VzIG5vdCBuZWVkIHRoZSBCS0w6CisgKgorICogIC0gdW1hZF9wb3J0W10gYWNjZXNzZXMgYXJlIHByb3RlY3RlZCBieSBwb3J0X2xvY2ssIHRoZQorICogICAgaWJfdW1hZF9wb3J0IHN0cnVjdHVyZXMgYXJlIHByb3Blcmx5IHJlZmVyZW5jZSBjb3VudGVkLCBhbmQKKyAqICAgIGV2ZXJ5dGhpbmcgZWxzZSBpcyBwdXJlbHkgbG9jYWwgdG8gdGhlIGZpbGUgYmVpbmcgY3JlYXRlZCwgc28KKyAqICAgIHJhY2VzIGFnYWluc3Qgb3RoZXIgb3BlbiBjYWxscyBhcmUgbm90IGEgcHJvYmxlbTsKKyAqICAtIHRoZSBpb2N0bCBtZXRob2QgZG9lcyBub3QgYWZmZWN0IGFueSBnbG9iYWwgc3RhdGUgb3V0c2lkZSBvZiB0aGUKKyAqICAgIGZpbGUgc3RydWN0dXJlIGJlaW5nIG9wZXJhdGVkIG9uOworICogIC0gdGhlIHBvcnQgaXMgYWRkZWQgdG8gdW1hZF9wb3J0W10gYXMgdGhlIGxhc3QgcGFydCBvZiBtb2R1bGUKKyAqICAgIGluaXRpYWxpemF0aW9uIHNvIHRoZSBvcGVuIG1ldGhvZCB3aWxsIGVpdGhlciBpbW1lZGlhdGVseSBydW4KKyAqICAgIC1FTlhJTywgb3IgYWxsIHJlcXVpcmVkIGluaXRpYWxpemF0aW9uIHdpbGwgYmUgZG9uZS4KKyAqLwogc3RhdGljIGludCBpYl91bWFkX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJc3RydWN0IGliX3VtYWRfcG9ydCAqcG9ydDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJicy5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzLmgKaW5kZXggMzc2YTU3Yy4uYjNlYTk1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzLmgKQEAgLTMyLDggKzMyLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IHV2ZXJicy5oIDI1NTkgMjAwNS0wNi0wNiAxOTo0MzoxNlogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIFVWRVJCU19ICmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfY21kLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfY21kLmMKaW5kZXggMmMzYmZmNS4uNTZmZWFiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX2NtZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19jbWQuYwpAQCAtMzEsOCArMzEsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogdXZlcmJzX2NtZC5jIDI3MDggMjAwNS0wNi0yNCAxNzoyNzoyMVogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPgpAQCAtOTE5LDcgKzkxNyw3IEBACiAJCXJlc3AtPndjW2ldLm9wY29kZSAJICAgPSB3Y1tpXS5vcGNvZGU7CiAJCXJlc3AtPndjW2ldLnZlbmRvcl9lcnIgCSAgID0gd2NbaV0udmVuZG9yX2VycjsKIAkJcmVzcC0+d2NbaV0uYnl0ZV9sZW4gCSAgID0gd2NbaV0uYnl0ZV9sZW47Ci0JCXJlc3AtPndjW2ldLmltbV9kYXRhIAkgICA9IChfX3UzMiBfX2ZvcmNlKSB3Y1tpXS5pbW1fZGF0YTsKKwkJcmVzcC0+d2NbaV0uZXguaW1tX2RhdGEgICAgPSAoX191MzIgX19mb3JjZSkgd2NbaV0uZXguaW1tX2RhdGE7CiAJCXJlc3AtPndjW2ldLnFwX251bSAJICAgPSB3Y1tpXS5xcC0+cXBfbnVtOwogCQlyZXNwLT53Y1tpXS5zcmNfcXAgCSAgID0gd2NbaV0uc3JjX3FwOwogCQlyZXNwLT53Y1tpXS53Y19mbGFncyAJICAgPSB3Y1tpXS53Y19mbGFnczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfbWFpbi5jCmluZGV4IGNhZWQ0MmIuLmFlZWU4NTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYwpAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogdXZlcmJzX21haW4uYyAyNzMzIDIwMDUtMDYtMjggMTk6MTQ6MzRaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNjEwLDYgKzYwOCwxOCBAQAogCQlyZXR1cm4gZmlsZS0+ZGV2aWNlLT5pYl9kZXYtPm1tYXAoZmlsZS0+dWNvbnRleHQsIHZtYSk7CiB9CiAKKy8qCisgKiBpYl91dmVyYnNfb3BlbigpIGRvZXMgbm90IG5lZWQgdGhlIEJLTDoKKyAqCisgKiAgLSBkZXZfdGFibGVbXSBhY2Nlc3NlcyBhcmUgcHJvdGVjdGVkIGJ5IG1hcF9sb2NrLCB0aGUKKyAqICAgIGliX3V2ZXJic19kZXZpY2Ugc3RydWN0dXJlcyBhcmUgcHJvcGVybHkgcmVmZXJlbmNlIGNvdW50ZWQsIGFuZAorICogICAgZXZlcnl0aGluZyBlbHNlIGlzIHB1cmVseSBsb2NhbCB0byB0aGUgZmlsZSBiZWluZyBjcmVhdGVkLCBzbworICogICAgcmFjZXMgYWdhaW5zdCBvdGhlciBvcGVuIGNhbGxzIGFyZSBub3QgYSBwcm9ibGVtOworICogIC0gdGhlcmUgaXMgbm8gaW9jdGwgbWV0aG9kIHRvIHJhY2UgYWdhaW5zdDsKKyAqICAtIHRoZSBkZXZpY2UgaXMgYWRkZWQgdG8gZGV2X3RhYmxlW10gYXMgdGhlIGxhc3QgcGFydCBvZiBtb2R1bGUKKyAqICAgIGluaXRpYWxpemF0aW9uLCB0aGUgb3BlbiBtZXRob2Qgd2lsbCBlaXRoZXIgaW1tZWRpYXRlbHkgcnVuCisgKiAgICAtRU5YSU8sIG9yIGFsbCByZXF1aXJlZCBpbml0aWFsaXphdGlvbiB3aWxsIGJlIGRvbmUuCisgKi8KIHN0YXRpYyBpbnQgaWJfdXZlcmJzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJc3RydWN0IGliX3V2ZXJic19kZXZpY2UgKmRldjsKQEAgLTY1MSw3ICs2NjEsNiBAQAogCiBlcnI6CiAJa3JlZl9wdXQoJmRldi0+cmVmLCBpYl91dmVyYnNfcmVsZWFzZV9kZXYpOwotCiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3ZlcmJzLmMKaW5kZXggMDUwNDIwOC4uYTdkYTliZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3ZlcmJzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdmVyYnMuYwpAQCAtMzQsOCArMzQsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogdmVyYnMuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CkBAIC0zMTcsNyArMzE1LDYgQEAKIH0gcXBfc3RhdGVfdGFibGVbSUJfUVBTX0VSUiArIDFdW0lCX1FQU19FUlIgKyAxXSA9IHsKIAlbSUJfUVBTX1JFU0VUXSA9IHsKIAkJW0lCX1FQU19SRVNFVF0gPSB7IC52YWxpZCA9IDEgfSwKLQkJW0lCX1FQU19FUlJdICAgPSB7IC52YWxpZCA9IDEgfSwKIAkJW0lCX1FQU19JTklUXSAgPSB7CiAJCQkudmFsaWQgPSAxLAogCQkJLnJlcV9wYXJhbSA9IHsKQEAgLTc1NSw2ICs3NTIsNTIgQEAKIH0KIEVYUE9SVF9TWU1CT0woaWJfZGVyZWdfbXIpOwogCitzdHJ1Y3QgaWJfbXIgKmliX2FsbG9jX2Zhc3RfcmVnX21yKHN0cnVjdCBpYl9wZCAqcGQsIGludCBtYXhfcGFnZV9saXN0X2xlbikKK3sKKwlzdHJ1Y3QgaWJfbXIgKm1yOworCisJaWYgKCFwZC0+ZGV2aWNlLT5hbGxvY19mYXN0X3JlZ19tcikKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT1NZUyk7CisKKwltciA9IHBkLT5kZXZpY2UtPmFsbG9jX2Zhc3RfcmVnX21yKHBkLCBtYXhfcGFnZV9saXN0X2xlbik7CisKKwlpZiAoIUlTX0VSUihtcikpIHsKKwkJbXItPmRldmljZSAgPSBwZC0+ZGV2aWNlOworCQltci0+cGQgICAgICA9IHBkOworCQltci0+dW9iamVjdCA9IE5VTEw7CisJCWF0b21pY19pbmMoJnBkLT51c2VjbnQpOworCQlhdG9taWNfc2V0KCZtci0+dXNlY250LCAwKTsKKwl9CisKKwlyZXR1cm4gbXI7Cit9CitFWFBPUlRfU1lNQk9MKGliX2FsbG9jX2Zhc3RfcmVnX21yKTsKKworc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqaWJfYWxsb2NfZmFzdF9yZWdfcGFnZV9saXN0KHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKKwkJCQkJCQkgIGludCBtYXhfcGFnZV9saXN0X2xlbikKK3sKKwlzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICpwYWdlX2xpc3Q7CisKKwlpZiAoIWRldmljZS0+YWxsb2NfZmFzdF9yZWdfcGFnZV9saXN0KQorCQlyZXR1cm4gRVJSX1BUUigtRU5PU1lTKTsKKworCXBhZ2VfbGlzdCA9IGRldmljZS0+YWxsb2NfZmFzdF9yZWdfcGFnZV9saXN0KGRldmljZSwgbWF4X3BhZ2VfbGlzdF9sZW4pOworCisJaWYgKCFJU19FUlIocGFnZV9saXN0KSkgeworCQlwYWdlX2xpc3QtPmRldmljZSA9IGRldmljZTsKKwkJcGFnZV9saXN0LT5tYXhfcGFnZV9saXN0X2xlbiA9IG1heF9wYWdlX2xpc3RfbGVuOworCX0KKworCXJldHVybiBwYWdlX2xpc3Q7Cit9CitFWFBPUlRfU1lNQk9MKGliX2FsbG9jX2Zhc3RfcmVnX3BhZ2VfbGlzdCk7CisKK3ZvaWQgaWJfZnJlZV9mYXN0X3JlZ19wYWdlX2xpc3Qoc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqcGFnZV9saXN0KQoreworCXBhZ2VfbGlzdC0+ZGV2aWNlLT5mcmVlX2Zhc3RfcmVnX3BhZ2VfbGlzdChwYWdlX2xpc3QpOworfQorRVhQT1JUX1NZTUJPTChpYl9mcmVlX2Zhc3RfcmVnX3BhZ2VfbGlzdCk7CisKIC8qIE1lbW9yeSB3aW5kb3dzICovCiAKIHN0cnVjdCBpYl9tdyAqaWJfYWxsb2NfbXcoc3RydWN0IGliX3BkICpwZCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMl9ybmljLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzJfcm5pYy5jCmluZGV4IGIxNDQxYWViLi5kZDA1YzQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzJfcm5pYy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMl9ybmljLmMKQEAgLTQ1NCw3ICs0NTQsNyBAQAogCSAgICAoSUJfREVWSUNFX1JFU0laRV9NQVhfV1IgfAogCSAgICAgSUJfREVWSUNFX0NVUlJfUVBfU1RBVEVfTU9EIHwKIAkgICAgIElCX0RFVklDRV9TWVNfSU1BR0VfR1VJRCB8Ci0JICAgICBJQl9ERVZJQ0VfWkVST19TVEFHIHwKKwkgICAgIElCX0RFVklDRV9MT0NBTF9ETUFfTEtFWSB8CiAJICAgICBJQl9ERVZJQ0VfTUVNX1dJTkRPVyk7CiAKIAkvKiBBbGxvY2F0ZSB0aGUgcXB0cl9hcnJheSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb19oYWwuYwppbmRleCAzZjQ0MWZjLi5mNmQ1NzQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb19oYWwuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb19oYWwuYwpAQCAtMTQ1LDcgKzE0NSw5IEBACiAJfQogCXdxZSA9IChzdHJ1Y3QgdDNfbW9kaWZ5X3FwX3dyICopIHNrYl9wdXQoc2tiLCBzaXplb2YoKndxZSkpOwogCW1lbXNldCh3cWUsIDAsIHNpemVvZigqd3FlKSk7Ci0JYnVpbGRfZndfcml3cmgoKHN0cnVjdCBmd19yaXdyaCAqKSB3cWUsIFQzX1dSX1FQX01PRCwgMywgMCwgcXBpZCwgNyk7CisJYnVpbGRfZndfcml3cmgoKHN0cnVjdCBmd19yaXdyaCAqKSB3cWUsIFQzX1dSX1FQX01PRCwKKwkJICAgICAgIFQzX0NPTVBMRVRJT05fRkxBRyB8IFQzX05PVElGWV9GTEFHLCAwLCBxcGlkLCA3LAorCQkgICAgICAgVDNfU09QRU9QKTsKIAl3cWUtPmZsYWdzID0gY3B1X3RvX2JlMzIoTU9EUVBfV1JJVEVfRUMpOwogCXNnZV9jbWQgPSBxcGlkIDw8IDggfCAzOwogCXdxZS0+c2dlX2NtZCA9IGNwdV90b19iZTY0KHNnZV9jbWQpOwpAQCAtMjc2LDcgKzI3OCw3IEBACiAJaWYgKCF3cS0+cXBpZCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQl3cS0+cnEgPSBremFsbG9jKGRlcHRoICogc2l6ZW9mKHU2NCksIEdGUF9LRVJORUwpOworCXdxLT5ycSA9IGt6YWxsb2MoZGVwdGggKiBzaXplb2Yoc3RydWN0IHQzX3N3cnEpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXdxLT5ycSkKIAkJZ290byBlcnIxOwogCkBAIC0zMDAsNiArMzAyLDcgQEAKIAlpZiAoIWtlcm5lbF9kb21haW4pCiAJCXdxLT51ZGIgPSAodTY0KXJkZXZfcC0+cm5pY19pbmZvLnVkYmVsbF9waHlzYmFzZSArCiAJCQkJCSh3cS0+cXBpZCA8PCByZGV2X3AtPnFwc2hpZnQpOworCXdxLT5yZGV2ID0gcmRldl9wOwogCVBEQkcoIiVzIHFwaWQgMHgleCBkb29yYmVsbCAweCVwIHVkYiAweCVsbHhcbiIsIF9fZnVuY19fLAogCSAgICAgd3EtPnFwaWQsIHdxLT5kb29yYmVsbCwgKHVuc2lnbmVkIGxvbmcgbG9uZykgd3EtPnVkYik7CiAJcmV0dXJuIDA7CkBAIC01NTgsNyArNTYxLDcgQEAKIAl3cWUgPSAoc3RydWN0IHQzX21vZGlmeV9xcF93ciAqKSBza2JfcHV0KHNrYiwgc2l6ZW9mKCp3cWUpKTsKIAltZW1zZXQod3FlLCAwLCBzaXplb2YoKndxZSkpOwogCWJ1aWxkX2Z3X3Jpd3JoKChzdHJ1Y3QgZndfcml3cmggKikgd3FlLCBUM19XUl9RUF9NT0QsIDAsIDAsCi0JCSAgICAgICBUM19DVExfUVBfVElELCA3KTsKKwkJICAgICAgIFQzX0NUTF9RUF9USUQsIDcsIFQzX1NPUEVPUCk7CiAJd3FlLT5mbGFncyA9IGNwdV90b19iZTMyKE1PRFFQX1dSSVRFX0VDKTsKIAlzZ2VfY21kID0gKDNVTEwgPDwgNTYpIHwgRldfUklfU0dFRUNfU1RBUlQgPDwgOCB8IDM7CiAJd3FlLT5zZ2VfY21kID0gY3B1X3RvX2JlNjQoc2dlX2NtZCk7CkBAIC02NzQsNyArNjc3LDcgQEAKIAkJYnVpbGRfZndfcml3cmgoKHN0cnVjdCBmd19yaXdyaCAqKSB3cWUsIFQzX1dSX0JQLCBmbGFnLAogCQkJICAgICAgIFFfR0VOQklUKHJkZXZfcC0+Y3RybF9xcC53cHRyLAogCQkJCQlUM19DVFJMX1FQX1NJWkVfTE9HMiksIFQzX0NUUkxfUVBfSUQsCi0JCQkgICAgICAgd3JfbGVuKTsKKwkJCSAgICAgICB3cl9sZW4sIFQzX1NPUEVPUCk7CiAJCWlmIChmbGFnID09IFQzX0NPTVBMRVRJT05fRkxBRykKIAkJCXJpbmdfZG9vcmJlbGwocmRldl9wLT5jdHJsX3FwLmRvb3JiZWxsLCBUM19DVFJMX1FQX0lEKTsKIAkJbGVuIC09IDk2OwpAQCAtODE2LDYgKzgxOSwxMyBAQAogCQkJICAgICAwLCAwKTsKIH0KIAoraW50IGN4aW9fYWxsb2NhdGVfc3RhZyhzdHJ1Y3QgY3hpb19yZGV2ICpyZGV2X3AsIHUzMiAqc3RhZywgdTMyIHBkaWQsIHUzMiBwYmxfc2l6ZSwgdTMyIHBibF9hZGRyKQoreworCSpzdGFnID0gVDNfU1RBR19VTlNFVDsKKwlyZXR1cm4gX19jeGlvX3RwdF9vcChyZGV2X3AsIDAsIHN0YWcsIDAsIHBkaWQsIFRQVF9OT05fU0hBUkVEX01SLAorCQkJICAgICAwLCAwLCAwVUxMLCAwLCAwLCBwYmxfc2l6ZSwgcGJsX2FkZHIpOworfQorCiBpbnQgY3hpb19yZG1hX2luaXQoc3RydWN0IGN4aW9fcmRldiAqcmRldl9wLCBzdHJ1Y3QgdDNfcmRtYV9pbml0X2F0dHIgKmF0dHIpCiB7CiAJc3RydWN0IHQzX3JkbWFfaW5pdF93ciAqd3FlOwpAQCAtMTI1NywxMyArMTI2NywxNiBAQAogCQl3cS0+c3FfcnB0ciA9IENRRV9XUklEX1NRX1dQVFIoKmh3X2NxZSk7CiAJCVBEQkcoIiVzIGNvbXBsZXRpbmcgc3EgaWR4ICVsZFxuIiwgX19mdW5jX18sCiAJCSAgICAgUV9QVFIySURYKHdxLT5zcV9ycHRyLCB3cS0+c3Ffc2l6ZV9sb2cyKSk7Ci0JCSpjb29raWUgPSAod3EtPnNxICsKLQkJCSAgIFFfUFRSMklEWCh3cS0+c3FfcnB0ciwgd3EtPnNxX3NpemVfbG9nMikpLT53cl9pZDsKKwkJKmNvb2tpZSA9IHdxLT5zcVtRX1BUUjJJRFgod3EtPnNxX3JwdHIsIHdxLT5zcV9zaXplX2xvZzIpXS53cl9pZDsKIAkJd3EtPnNxX3JwdHIrKzsKIAl9IGVsc2UgewogCQlQREJHKCIlcyBjb21wbGV0aW5nIHJxIGlkeCAlbGRcbiIsIF9fZnVuY19fLAogCQkgICAgIFFfUFRSMklEWCh3cS0+cnFfcnB0ciwgd3EtPnJxX3NpemVfbG9nMikpOwotCQkqY29va2llID0gKih3cS0+cnEgKyBRX1BUUjJJRFgod3EtPnJxX3JwdHIsIHdxLT5ycV9zaXplX2xvZzIpKTsKKwkJKmNvb2tpZSA9IHdxLT5ycVtRX1BUUjJJRFgod3EtPnJxX3JwdHIsIHdxLT5ycV9zaXplX2xvZzIpXS53cl9pZDsKKwkJaWYgKHdxLT5ycVtRX1BUUjJJRFgod3EtPnJxX3JwdHIsIHdxLT5ycV9zaXplX2xvZzIpXS5wYmxfYWRkcikKKwkJCWN4aW9faGFsX3BibHBvb2xfZnJlZSh3cS0+cmRldiwKKwkJCQl3cS0+cnFbUV9QVFIySURYKHdxLT5ycV9ycHRyLAorCQkJCXdxLT5ycV9zaXplX2xvZzIpXS5wYmxfYWRkciwgVDNfU1RBRzBfUEJMX1NJWkUpOwogCQl3cS0+cnFfcnB0cisrOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb19oYWwuaAppbmRleCA2ZTEyOGY2Li42NTZmZTQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb19oYWwuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb19oYWwuaApAQCAtNDUsMTUgKzQ1LDE3IEBACiAjZGVmaW5lIFQzX0NUUkxfUVBfU0laRV9MT0cyICA4CiAjZGVmaW5lIFQzX0NUUkxfQ1FfSUQgICAgMAogCi0vKiBUQkQgKi8KICNkZWZpbmUgVDNfTUFYX05VTV9SSSAoMTw8MTUpCiAjZGVmaW5lIFQzX01BWF9OVU1fUVAgKDE8PDE1KQogI2RlZmluZSBUM19NQVhfTlVNX0NRICgxPDwxNSkKICNkZWZpbmUgVDNfTUFYX05VTV9QRCAoMTw8MTUpCiAjZGVmaW5lIFQzX01BWF9QQkxfU0laRSAyNTYKICNkZWZpbmUgVDNfTUFYX1JRX1NJWkUgMTAyNAorI2RlZmluZSBUM19NQVhfUVBfREVQVEggKFQzX01BWF9SUV9TSVpFLTEpCisjZGVmaW5lIFQzX01BWF9DUV9ERVBUSCA4MTkyCiAjZGVmaW5lIFQzX01BWF9OVU1fU1RBRyAoMTw8MTUpCiAjZGVmaW5lIFQzX01BWF9NUl9TSVpFIDB4MTAwMDAwMDAwVUxMCisjZGVmaW5lIFQzX1BBR0VTSVpFX01BU0sgMHhmZmZmMDAwICAvKiA0S0ItMTI4TUIgKi8KIAogI2RlZmluZSBUM19TVEFHX1VOU0VUIDB4ZmZmZmZmZmYKIApAQCAtMTY1LDYgKzE2Nyw3IEBACiBpbnQgY3hpb19kZXJlZ19tZW0oc3RydWN0IGN4aW9fcmRldiAqcmRldiwgdTMyIHN0YWcsIHUzMiBwYmxfc2l6ZSwKIAkJICAgdTMyIHBibF9hZGRyKTsKIGludCBjeGlvX2FsbG9jYXRlX3dpbmRvdyhzdHJ1Y3QgY3hpb19yZGV2ICpyZGV2LCB1MzIgKiBzdGFnLCB1MzIgcGRpZCk7CitpbnQgY3hpb19hbGxvY2F0ZV9zdGFnKHN0cnVjdCBjeGlvX3JkZXYgKnJkZXYsIHUzMiAqc3RhZywgdTMyIHBkaWQsIHUzMiBwYmxfc2l6ZSwgdTMyIHBibF9hZGRyKTsKIGludCBjeGlvX2RlYWxsb2NhdGVfd2luZG93KHN0cnVjdCBjeGlvX3JkZXYgKnJkZXYsIHUzMiBzdGFnKTsKIGludCBjeGlvX3JkbWFfaW5pdChzdHJ1Y3QgY3hpb19yZGV2ICpyZGV2LCBzdHJ1Y3QgdDNfcmRtYV9pbml0X2F0dHIgKmF0dHIpOwogdm9pZCBjeGlvX3JlZ2lzdGVyX2V2X2NiKGN4aW9faGFsX2V2X2NhbGxiYWNrX2Z1bmNfdCBldl9jYik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb193ci5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9fd3IuaAppbmRleCBmMWEyNWE4Li4wNDYxOGY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb193ci5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9jeGlvX3dyLmgKQEAgLTM5LDYgKzM5LDkgQEAKIAogI2RlZmluZSBUM19NQVhfU0dFICAgICAgNAogI2RlZmluZSBUM19NQVhfSU5MSU5FCTY0CisjZGVmaW5lIFQzX1NUQUcwX1BCTF9TSVpFICgyICogVDNfTUFYX1NHRSA8PCAzKQorI2RlZmluZSBUM19TVEFHMF9NQVhfUEJFX0xFTiAoMTI4ICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIFQzX1NUQUcwX1BBR0VfU0hJRlQgMTUKIAogI2RlZmluZSBRX0VNUFRZKHJwdHIsd3B0cikgKChycHRyKT09KHdwdHIpKQogI2RlZmluZSBRX0ZVTEwocnB0cix3cHRyLHNpemVfbG9nMikgICggKCgod3B0ciktKHJwdHIpKT4+KHNpemVfbG9nMikpICYmIFwKQEAgLTcyLDcgKzc1LDggQEAKIAlUM19XUl9CSU5EID0gRldfV1JPUENPREVfUklfQklORF9NVywKIAlUM19XUl9SQ1YgPSBGV19XUk9QQ09ERV9SSV9SRUNFSVZFLAogCVQzX1dSX0lOSVQgPSBGV19XUk9QQ09ERV9SSV9SRE1BX0lOSVQsCi0JVDNfV1JfUVBfTU9EID0gRldfV1JPUENPREVfUklfTU9ESUZZX1FQCisJVDNfV1JfUVBfTU9EID0gRldfV1JPUENPREVfUklfTU9ESUZZX1FQLAorCVQzX1dSX0ZBU1RSRUcgPSBGV19XUk9QQ09ERV9SSV9GQVNUUkVHSVNURVJfTVIKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCiBlbnVtIHQzX3JkbWFfb3Bjb2RlIHsKQEAgLTg5LDcgKzkzLDggQEAKIAlUM19GQVNUX1JFR0lTVEVSLAogCVQzX0xPQ0FMX0lOViwKIAlUM19RUF9NT0QsCi0JVDNfQllQQVNTCisJVDNfQllQQVNTLAorCVQzX1JETUFfUkVBRF9SRVFfV0lUSF9JTlYsCiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIAogc3RhdGljIGlubGluZSBlbnVtIHQzX3JkbWFfb3Bjb2RlIHdyMm9wY29kZShlbnVtIHQzX3dyX29wY29kZSB3cm9wKQpAQCAtMTAzLDYgKzEwOCw3IEBACiAJCWNhc2UgVDNfV1JfQklORDogcmV0dXJuIFQzX0JJTkRfTVc7CiAJCWNhc2UgVDNfV1JfSU5JVDogcmV0dXJuIFQzX1JETUFfSU5JVDsKIAkJY2FzZSBUM19XUl9RUF9NT0Q6IHJldHVybiBUM19RUF9NT0Q7CisJCWNhc2UgVDNfV1JfRkFTVFJFRzogcmV0dXJuIFQzX0ZBU1RfUkVHSVNURVI7CiAJCWRlZmF1bHQ6IGJyZWFrOwogCX0KIAlyZXR1cm4gLTE7CkBAIC0xNzAsMTEgKzE3Niw1NCBAQAogCXN0cnVjdCB0M19zZ2Ugc2dsW1QzX01BWF9TR0VdOwkvKiA0KyAqLwogfTsKIAorI2RlZmluZSBUM19NQVhfRkFTVFJFR19ERVBUSCAyNAorI2RlZmluZSBUM19NQVhfRkFTVFJFR19GUkFHIDEwCisKK3N0cnVjdCB0M19mYXN0cmVnX3dyIHsKKwlzdHJ1Y3QgZndfcml3cmggd3JoOwkvKiAwICovCisJdW5pb24gdDNfd3JpZCB3cmlkOwkvKiAxICovCisJX19iZTMyIHN0YWc7CQkvKiAyICovCisJX19iZTMyIGxlbjsKKwlfX2JlMzIgdmFfYmFzZV9oaTsJLyogMyAqLworCV9fYmUzMiB2YV9iYXNlX2xvX2ZibzsKKwlfX2JlMzIgcGFnZV90eXBlX3Blcm1zOyAvKiA0ICovCisJX19iZTMyIHJlc2VydmVkMTsKKwlfX2JlNjQgcGJsX2FkZHJzWzBdOwkvKiA1KyAqLworfTsKKworLyoKKyAqIElmIGEgZmFzdHJlZyB3ciBzcGFucyBtdWx0aXBsZSB3cWVzLCB0aGVuIHRoZSAybmQgZnJhZ21lbnQgbG9vayBsaWtlIHRoaXMuCisgKi8KK3N0cnVjdCB0M19wYmxfZnJhZyB7CisJc3RydWN0IGZ3X3Jpd3JoIHdyaDsJLyogMCAqLworCV9fYmU2NCBwYmxfYWRkcnNbMTRdOwkvKiAxLi4xNCAqLworfTsKKworI2RlZmluZSBTX0ZSX1BBR0VfQ09VTlQJCTI0CisjZGVmaW5lIE1fRlJfUEFHRV9DT1VOVAkJMHhmZgorI2RlZmluZSBWX0ZSX1BBR0VfQ09VTlQoeCkJKCh4KSA8PCBTX0ZSX1BBR0VfQ09VTlQpCisjZGVmaW5lIEdfRlJfUEFHRV9DT1VOVCh4KQkoKCgoeCkgPj4gU19GUl9QQUdFX0NPVU5UKSkgJiBNX0ZSX1BBR0VfQ09VTlQpCisKKyNkZWZpbmUgU19GUl9QQUdFX1NJWkUJCTE2CisjZGVmaW5lIE1fRlJfUEFHRV9TSVpFCQkweDFmCisjZGVmaW5lIFZfRlJfUEFHRV9TSVpFKHgpCSgoeCkgPDwgU19GUl9QQUdFX1NJWkUpCisjZGVmaW5lIEdfRlJfUEFHRV9TSVpFKHgpCSgoKCh4KSA+PiBTX0ZSX1BBR0VfU0laRSkpICYgTV9GUl9QQUdFX1NJWkUpCisKKyNkZWZpbmUgU19GUl9UWVBFCQk4CisjZGVmaW5lIE1fRlJfVFlQRQkJMHgxCisjZGVmaW5lIFZfRlJfVFlQRSh4KQkJKCh4KSA8PCBTX0ZSX1RZUEUpCisjZGVmaW5lIEdfRlJfVFlQRSh4KQkJKCgoKHgpID4+IFNfRlJfVFlQRSkpICYgTV9GUl9UWVBFKQorCisjZGVmaW5lIFNfRlJfUEVSTVMJCTAKKyNkZWZpbmUgTV9GUl9QRVJNUwkJMHhmZgorI2RlZmluZSBWX0ZSX1BFUk1TKHgpCQkoKHgpIDw8IFNfRlJfUEVSTVMpCisjZGVmaW5lIEdfRlJfUEVSTVMoeCkJCSgoKCh4KSA+PiBTX0ZSX1BFUk1TKSkgJiBNX0ZSX1BFUk1TKQorCiBzdHJ1Y3QgdDNfbG9jYWxfaW52X3dyIHsKIAlzdHJ1Y3QgZndfcml3cmggd3JoOwkvKiAwICovCiAJdW5pb24gdDNfd3JpZCB3cmlkOwkvKiAxICovCiAJX19iZTMyIHN0YWc7CQkvKiAyICovCi0JX19iZTMyIHJlc2VydmVkMzsKKwlfX2JlMzIgcmVzZXJ2ZWQ7CiB9OwogCiBzdHJ1Y3QgdDNfcmRtYV93cml0ZV93ciB7CkBAIC0xOTMsNyArMjQyLDggQEAKIAlzdHJ1Y3QgZndfcml3cmggd3JoOwkvKiAwICovCiAJdW5pb24gdDNfd3JpZCB3cmlkOwkvKiAxICovCiAJdTggcmRtYW9wOwkJLyogMiAqLwotCXU4IHJlc2VydmVkWzNdOworCXU4IGxvY2FsX2ludjsKKwl1OCByZXNlcnZlZFsyXTsKIAlfX2JlMzIgcmVtX3N0YWc7CiAJX19iZTY0IHJlbV90bzsJCS8qIDMgKi8KIAlfX2JlMzIgbG9jYWxfc3RhZzsJLyogNCAqLwpAQCAtMjAxLDE4ICsyNTEsNiBAQAogCV9fYmU2NCBsb2NhbF90bzsJLyogNSAqLwogfTsKIAotZW51bSB0M19hZGRyX3R5cGUgewotCVQzX1ZBX0JBU0VEX1RPID0gMHgwLAotCVQzX1pFUk9fQkFTRURfVE8gPSAweDEKLX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotCi1lbnVtIHQzX21lbV9wZXJtcyB7Ci0JVDNfTUVNX0FDQ0VTU19MT0NBTF9SRUFEID0gMHgxLAotCVQzX01FTV9BQ0NFU1NfTE9DQUxfV1JJVEUgPSAweDIsCi0JVDNfTUVNX0FDQ0VTU19SRU1fUkVBRCA9IDB4NCwKLQlUM19NRU1fQUNDRVNTX1JFTV9XUklURSA9IDB4OAotfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7Ci0KIHN0cnVjdCB0M19iaW5kX213X3dyIHsKIAlzdHJ1Y3QgZndfcml3cmggd3JoOwkvKiAwICovCiAJdW5pb24gdDNfd3JpZCB3cmlkOwkvKiAxICovCkBAIC0zMzYsNiArMzc0LDExIEBACiAJX19iZTY0IGdlbmJpdDsKIH07CiAKK3N0cnVjdCB0M193cV9pbl9lcnIgeworCXU2NCBmbGl0WzEzXTsKKwl1NjQgZXJyOworfTsKKwogZW51bSByZG1hX2luaXRfd3JfZmxhZ3MgewogCU1QQV9JTklUSUFUT1IgPSAoMTw8MCksCiAJUFJJVl9RUCA9ICgxPDwxKSwKQEAgLTM0NiwxMyArMzg5LDE2IEBACiAJc3RydWN0IHQzX3JkbWFfd3JpdGVfd3Igd3JpdGU7CiAJc3RydWN0IHQzX3JkbWFfcmVhZF93ciByZWFkOwogCXN0cnVjdCB0M19yZWNlaXZlX3dyIHJlY3Y7CisJc3RydWN0IHQzX2Zhc3RyZWdfd3IgZmFzdHJlZzsKKwlzdHJ1Y3QgdDNfcGJsX2ZyYWcgcGJsX2ZyYWc7CiAJc3RydWN0IHQzX2xvY2FsX2ludl93ciBsb2NhbF9pbnY7CiAJc3RydWN0IHQzX2JpbmRfbXdfd3IgYmluZDsKIAlzdHJ1Y3QgdDNfYnlwYXNzX3dyIGJ5cGFzczsKIAlzdHJ1Y3QgdDNfcmRtYV9pbml0X3dyIGluaXQ7CiAJc3RydWN0IHQzX21vZGlmeV9xcF93ciBxcF9tb2Q7CiAJc3RydWN0IHQzX2dlbmJpdCBnZW5iaXQ7Ci0JdTY0IGZsaXRbMTZdOworCXN0cnVjdCB0M193cV9pbl9lcnIgd3FfaW5fZXJyOworCV9fYmU2NCBmbGl0WzE2XTsKIH07CiAKICNkZWZpbmUgVDNfU1FfQ1FFX0ZMSVQJICAxMwpAQCAtMzY2LDEyICs0MTIsMTggQEAKIAlyZXR1cm4gR19GV19SSVdSX09QKGJlMzJfdG9fY3B1KHdxZS0+b3Bfc2VvcF9mbGFncykpOwogfQogCitlbnVtIHQzX3dyX2hkcl9iaXRzIHsKKwlUM19FT1AgPSAxLAorCVQzX1NPUCA9IDIsCisJVDNfU09QRU9QID0gVDNfRU9QfFQzX1NPUCwKK307CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBidWlsZF9md19yaXdyaChzdHJ1Y3QgZndfcml3cmggKndxZSwgZW51bSB0M193cl9vcGNvZGUgb3AsCiAJCQkJICBlbnVtIHQzX3dyX2ZsYWdzIGZsYWdzLCB1OCBnZW5iaXQsIHUzMiB0aWQsCi0JCQkJICB1OCBsZW4pCisJCQkJICB1OCBsZW4sIHU4IHNvcGVvcCkKIHsKIAl3cWUtPm9wX3Nlb3BfZmxhZ3MgPSBjcHVfdG9fYmUzMihWX0ZXX1JJV1JfT1Aob3ApIHwKLQkJCQkJIFZfRldfUklXUl9TT1BFT1AoTV9GV19SSVdSX1NPUEVPUCkgfAorCQkJCQkgVl9GV19SSVdSX1NPUEVPUChzb3Blb3ApIHwKIAkJCQkJIFZfRldfUklXUl9GTEFHUyhmbGFncykpOwogCXdtYigpOwogCXdxZS0+Z2VuX3RpZF9sZW4gPSBjcHVfdG9fYmUzMihWX0ZXX1JJV1JfR0VOKGdlbmJpdCkgfApAQCAtNDA0LDYgKzQ1Niw3IEBACiB9OwogCiBlbnVtIHRwdF9tZW1fcGVybSB7CisJVFBUX01XX0JJTkQgPSAweDEwLAogCVRQVF9MT0NBTF9SRUFEID0gMHg4LAogCVRQVF9MT0NBTF9XUklURSA9IDB4NCwKIAlUUFRfUkVNT1RFX1JFQUQgPSAweDIsCkBAIC02MTUsNiArNjY4LDExIEBACiAJaW50CQkJc2lnbmFsZWQ7CiB9OwogCitzdHJ1Y3QgdDNfc3dycSB7CisJX191NjQJCQl3cl9pZDsKKwlfX3UzMgkJCXBibF9hZGRyOworfTsKKwogLyoKICAqIEEgVDMgV1EgaW1wbGVtZW50cyBib3RoIHRoZSBTUSBhbmQgUlEuCiAgKi8KQEAgLTYzMSwxNCArNjg5LDE1IEBACiAJdTMyIHNxX3dwdHI7CQkJLyogc3Ffd3B0ciAtIHNxX3JwdHIgPT0gY291bnQgb2YgKi8KIAl1MzIgc3FfcnB0cjsJCQkvKiBwZW5kaW5nIHdycyAqLwogCXUzMiBzcV9zaXplX2xvZzI7CQkvKiBzcSBzaXplICovCi0JdTY0ICpycTsJCQkvKiBTVyBSUSAoaG9sZHMgY29uc3VtZXIgd3JfaWRzICovCisJc3RydWN0IHQzX3N3cnEgKnJxOwkJLyogU1cgUlEgKGhvbGRzIGNvbnN1bWVyIHdyX2lkcyAqLwogCXUzMiBycV93cHRyOwkJCS8qIHJxX3dwdHIgLSBycV9ycHRyID09IGNvdW50IG9mICovCiAJdTMyIHJxX3JwdHI7CQkJLyogcGVuZGluZyB3cnMgKi8KLQl1NjQgKnJxX29sZGVzdF93cjsJCS8qIG9sZGVzdCB3ciBvbiB0aGUgU1cgUlEgKi8KKwlzdHJ1Y3QgdDNfc3dycSAqcnFfb2xkZXN0X3dyOwkvKiBvbGRlc3Qgd3Igb24gdGhlIFNXIFJRICovCiAJdTMyIHJxX3NpemVfbG9nMjsJCS8qIHJxIHNpemUgKi8KIAl1MzIgcnFfYWRkcjsJCQkvKiBycSBhZGFwdGVyIGFkZHJlc3MgKi8KIAl2b2lkIF9faW9tZW0gKmRvb3JiZWxsOwkJLyoga2VybmVsIGRiICovCiAJdTY0IHVkYjsJCQkvKiB1c2VyIGRiIGlmIGFueSAqLworCXN0cnVjdCBjeGlvX3JkZXYgKnJkZXY7CiB9OwogCiBzdHJ1Y3QgdDNfY3EgewpAQCAtNjU5LDcgKzcxOCw3IEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjeGlvX3NldF93cV9pbl9lcnJvcihzdHJ1Y3QgdDNfd3EgKndxKQogewotCXdxLT5xdWV1ZS0+ZmxpdFsxM10gPSAxOworCXdxLT5xdWV1ZS0+d3FfaW5fZXJyLmVyciA9IDE7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHQzX2NxZSAqY3hpb19uZXh0X2h3X2NxZShzdHJ1Y3QgdDNfY3EgKmNxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2guYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoLmMKaW5kZXggNzE1NTRlYS4uNDQ4OWM4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2guYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaC5jCkBAIC03MSwxOCArNzEsMTYgQEAKIAlpZHJfaW5pdCgmcm5pY3AtPm1taWRyKTsKIAlzcGluX2xvY2tfaW5pdCgmcm5pY3AtPmxvY2spOwogCi0Jcm5pY3AtPmF0dHIudmVuZG9yX2lkID0gMHgxNjg7Ci0Jcm5pY3AtPmF0dHIudmVuZG9yX3BhcnRfaWQgPSA3OwogCXJuaWNwLT5hdHRyLm1heF9xcHMgPSBUM19NQVhfTlVNX1FQIC0gMzI7Ci0Jcm5pY3AtPmF0dHIubWF4X3dycyA9ICgxVUwgPDwgMjQpIC0gMTsKKwlybmljcC0+YXR0ci5tYXhfd3JzID0gVDNfTUFYX1FQX0RFUFRIOwogCXJuaWNwLT5hdHRyLm1heF9zZ2VfcGVyX3dyID0gVDNfTUFYX1NHRTsKIAlybmljcC0+YXR0ci5tYXhfc2dlX3Blcl9yZG1hX3dyaXRlX3dyID0gVDNfTUFYX1NHRTsKIAlybmljcC0+YXR0ci5tYXhfY3FzID0gVDNfTUFYX05VTV9DUSAtIDE7Ci0Jcm5pY3AtPmF0dHIubWF4X2NxZXNfcGVyX2NxID0gKDFVTCA8PCAyNCkgLSAxOworCXJuaWNwLT5hdHRyLm1heF9jcWVzX3Blcl9jcSA9IFQzX01BWF9DUV9ERVBUSDsKIAlybmljcC0+YXR0ci5tYXhfbWVtX3JlZ3MgPSBjeGlvX251bV9zdGFncygmcm5pY3AtPnJkZXYpOwogCXJuaWNwLT5hdHRyLm1heF9waHlzX2J1Zl9lbnRyaWVzID0gVDNfTUFYX1BCTF9TSVpFOwogCXJuaWNwLT5hdHRyLm1heF9wZHMgPSBUM19NQVhfTlVNX1BEIC0gMTsKLQlybmljcC0+YXR0ci5tZW1fcGdzaXplc19iaXRtYXNrID0gMHg3RkZGOwkvKiA0S0ItMTI4TUIgKi8KKwlybmljcC0+YXR0ci5tZW1fcGdzaXplc19iaXRtYXNrID0gVDNfUEFHRVNJWkVfTUFTSzsKIAlybmljcC0+YXR0ci5tYXhfbXJfc2l6ZSA9IFQzX01BWF9NUl9TSVpFOwogCXJuaWNwLT5hdHRyLmNhbl9yZXNpemVfd3EgPSAwOwogCXJuaWNwLT5hdHRyLm1heF9yZG1hX3JlYWRzX3Blcl9xcCA9IDg7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaC5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2guaAppbmRleCBkMjQwOWE1Li4zNzczNDUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaC5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoLmgKQEAgLTQ4LDggKzQ4LDYgQEAKIHN0cnVjdCBpd2NoX21yOwogCiBzdHJ1Y3QgaXdjaF9ybmljX2F0dHJpYnV0ZXMgewotCXUzMiB2ZW5kb3JfaWQ7Ci0JdTMyIHZlbmRvcl9wYXJ0X2lkOwogCXUzMiBtYXhfcXBzOwogCXUzMiBtYXhfd3JzOwkJCQkvKiBNYXggZm9yIGFueSBTUS9SUSAqLwogCXUzMiBtYXhfc2dlX3Blcl93cjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX2NxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9jcS5jCmluZGV4IDRlZThjY2QuLmNmNTQ3NGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX2NxLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfY3EuYwpAQCAtODEsNiArODEsNyBAQAogCXdjLT53cl9pZCA9IGNvb2tpZTsKIAl3Yy0+cXAgPSAmcWhwLT5pYnFwOwogCXdjLT52ZW5kb3JfZXJyID0gQ1FFX1NUQVRVUyhjcWUpOworCXdjLT53Y19mbGFncyA9IDA7CiAKIAlQREJHKCIlcyBxcGlkIDB4JXggdHlwZSAlZCBvcGNvZGUgJWQgc3RhdHVzIDB4JXggd3JpZCBoaSAweCV4ICIKIAkgICAgICJsbyAweCV4IGNvb2tpZSAweCVsbHhcbiIsIF9fZnVuY19fLApAQCAtOTQsNiArOTUsMTEgQEAKIAkJZWxzZQogCQkJd2MtPmJ5dGVfbGVuID0gMDsKIAkJd2MtPm9wY29kZSA9IElCX1dDX1JFQ1Y7CisJCWlmIChDUUVfT1BDT0RFKGNxZSkgPT0gVDNfU0VORF9XSVRIX0lOViB8fAorCQkgICAgQ1FFX09QQ09ERShjcWUpID09IFQzX1NFTkRfV0lUSF9TRV9JTlYpIHsKKwkJCXdjLT5leC5pbnZhbGlkYXRlX3JrZXkgPSBDUUVfV1JJRF9TVEFHKGNxZSk7CisJCQl3Yy0+d2NfZmxhZ3MgfD0gSUJfV0NfV0lUSF9JTlZBTElEQVRFOworCQl9CiAJfSBlbHNlIHsKIAkJc3dpdGNoIChDUUVfT1BDT0RFKGNxZSkpIHsKIAkJY2FzZSBUM19SRE1BX1dSSVRFOgpAQCAtMTA1LDE3ICsxMTEsMjAgQEAKIAkJCWJyZWFrOwogCQljYXNlIFQzX1NFTkQ6CiAJCWNhc2UgVDNfU0VORF9XSVRIX1NFOgorCQljYXNlIFQzX1NFTkRfV0lUSF9JTlY6CisJCWNhc2UgVDNfU0VORF9XSVRIX1NFX0lOVjoKIAkJCXdjLT5vcGNvZGUgPSBJQl9XQ19TRU5EOwogCQkJYnJlYWs7CiAJCWNhc2UgVDNfQklORF9NVzoKIAkJCXdjLT5vcGNvZGUgPSBJQl9XQ19CSU5EX01XOwogCQkJYnJlYWs7CiAKLQkJLyogdGhlc2UgYXJlbid0IHN1cHBvcnRlZCB5ZXQgKi8KLQkJY2FzZSBUM19TRU5EX1dJVEhfSU5WOgotCQljYXNlIFQzX1NFTkRfV0lUSF9TRV9JTlY6CiAJCWNhc2UgVDNfTE9DQUxfSU5WOgorCQkJd2MtPm9wY29kZSA9IElCX1dDX0xPQ0FMX0lOVjsKKwkJCWJyZWFrOwogCQljYXNlIFQzX0ZBU1RfUkVHSVNURVI6CisJCQl3Yy0+b3Bjb2RlID0gSUJfV0NfRkFTVF9SRUdfTVI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXByaW50ayhLRVJOX0VSUiBNT0QgIlVuZXhwZWN0ZWQgb3Bjb2RlICVkICIKIAkJCSAgICAgICAiaW4gdGhlIENRRSByZWNlaXZlZCBmb3IgUVBJRD0weCUweFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3Byb3ZpZGVyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5jCmluZGV4IDg5MzQxNzguLmI4OTY0MGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3Byb3ZpZGVyLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcHJvdmlkZXIuYwpAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIml3Y2hfcHJvdmlkZXIuaCIKICNpbmNsdWRlICJpd2NoX2NtLmgiCiAjaW5jbHVkZSAiaXdjaF91c2VyLmgiCisjaW5jbHVkZSAiY29tbW9uLmgiCiAKIHN0YXRpYyBpbnQgaXdjaF9tb2RpZnlfcG9ydChzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwKIAkJCSAgICB1OCBwb3J0LCBpbnQgcG9ydF9tb2RpZnlfbWFzaywKQEAgLTc0Nyw2ICs3NDgsNyBAQAogCW1ocC0+YXR0ci50eXBlID0gVFBUX01XOwogCW1ocC0+YXR0ci5zdGFnID0gc3RhZzsKIAltbWlkID0gKHN0YWcpID4+IDg7CisJbWhwLT5pYm13LnJrZXkgPSBzdGFnOwogCWluc2VydF9oYW5kbGUocmhwLCAmcmhwLT5tbWlkciwgbWhwLCBtbWlkKTsKIAlQREJHKCIlcyBtbWlkIDB4JXggbWhwICVwIHN0YWcgMHgleFxuIiwgX19mdW5jX18sIG1taWQsIG1ocCwgc3RhZyk7CiAJcmV0dXJuICYobWhwLT5pYm13KTsKQEAgLTc2OCw2ICs3NzAsNjggQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHN0cnVjdCBpYl9tciAqaXdjaF9hbGxvY19mYXN0X3JlZ19tcihzdHJ1Y3QgaWJfcGQgKnBkLCBpbnQgcGJsX2RlcHRoKQoreworCXN0cnVjdCBpd2NoX2RldiAqcmhwOworCXN0cnVjdCBpd2NoX3BkICpwaHA7CisJc3RydWN0IGl3Y2hfbXIgKm1ocDsKKwl1MzIgbW1pZDsKKwl1MzIgc3RhZyA9IDA7CisJaW50IHJldDsKKworCXBocCA9IHRvX2l3Y2hfcGQocGQpOworCXJocCA9IHBocC0+cmhwOworCW1ocCA9IGt6YWxsb2Moc2l6ZW9mKCptaHApLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW1ocCkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwltaHAtPnJocCA9IHJocDsKKwlyZXQgPSBpd2NoX2FsbG9jX3BibChtaHAsIHBibF9kZXB0aCk7CisJaWYgKHJldCkgeworCQlrZnJlZShtaHApOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOworCX0KKwltaHAtPmF0dHIucGJsX3NpemUgPSBwYmxfZGVwdGg7CisJcmV0ID0gY3hpb19hbGxvY2F0ZV9zdGFnKCZyaHAtPnJkZXYsICZzdGFnLCBwaHAtPnBkaWQsCisJCQkJIG1ocC0+YXR0ci5wYmxfc2l6ZSwgbWhwLT5hdHRyLnBibF9hZGRyKTsKKwlpZiAocmV0KSB7CisJCWl3Y2hfZnJlZV9wYmwobWhwKTsKKwkJa2ZyZWUobWhwKTsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwl9CisJbWhwLT5hdHRyLnBkaWQgPSBwaHAtPnBkaWQ7CisJbWhwLT5hdHRyLnR5cGUgPSBUUFRfTk9OX1NIQVJFRF9NUjsKKwltaHAtPmF0dHIuc3RhZyA9IHN0YWc7CisJbWhwLT5hdHRyLnN0YXRlID0gMTsKKwltbWlkID0gKHN0YWcpID4+IDg7CisJbWhwLT5pYm1yLnJrZXkgPSBtaHAtPmlibXIubGtleSA9IHN0YWc7CisJaW5zZXJ0X2hhbmRsZShyaHAsICZyaHAtPm1taWRyLCBtaHAsIG1taWQpOworCVBEQkcoIiVzIG1taWQgMHgleCBtaHAgJXAgc3RhZyAweCV4XG4iLCBfX2Z1bmNfXywgbW1pZCwgbWhwLCBzdGFnKTsKKwlyZXR1cm4gJihtaHAtPmlibXIpOworfQorCitzdGF0aWMgc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqaXdjaF9hbGxvY19mYXN0cmVnX3BibCgKKwkJCQkJc3RydWN0IGliX2RldmljZSAqZGV2aWNlLAorCQkJCQlpbnQgcGFnZV9saXN0X2xlbikKK3sKKwlzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICpwYWdlX2xpc3Q7CisKKwlwYWdlX2xpc3QgPSBrbWFsbG9jKHNpemVvZiAqcGFnZV9saXN0ICsgcGFnZV9saXN0X2xlbiAqIHNpemVvZih1NjQpLAorCQkJICAgIEdGUF9LRVJORUwpOworCWlmICghcGFnZV9saXN0KQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCXBhZ2VfbGlzdC0+cGFnZV9saXN0ID0gKHU2NCAqKShwYWdlX2xpc3QgKyAxKTsKKwlwYWdlX2xpc3QtPm1heF9wYWdlX2xpc3RfbGVuID0gcGFnZV9saXN0X2xlbjsKKworCXJldHVybiBwYWdlX2xpc3Q7Cit9CisKK3N0YXRpYyB2b2lkIGl3Y2hfZnJlZV9mYXN0cmVnX3BibChzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICpwYWdlX2xpc3QpCit7CisJa2ZyZWUocGFnZV9saXN0KTsKK30KKwogc3RhdGljIGludCBpd2NoX2Rlc3Ryb3lfcXAoc3RydWN0IGliX3FwICppYl9xcCkKIHsKIAlzdHJ1Y3QgaXdjaF9kZXYgKnJocDsKQEAgLTg0Myw2ICs5MDcsMTUgQEAKIAkgKi8KIAlzcXNpemUgPSByb3VuZHVwX3Bvd19vZl90d28oYXR0cnMtPmNhcC5tYXhfc2VuZF93cik7CiAJd3FzaXplID0gcm91bmR1cF9wb3dfb2ZfdHdvKHJxc2l6ZSArIHNxc2l6ZSk7CisKKwkvKgorCSAqIEtlcm5lbCB1c2VycyBuZWVkIG1vcmUgd3Egc3BhY2UgZm9yIGZhc3RyZWcgV1JzIHdoaWNoIGNhbiB0YWtlCisJICogMiBXUiBmcmFnbWVudHMuCisJICovCisJdWNvbnRleHQgPSBwZC0+dW9iamVjdCA/IHRvX2l3Y2hfdWNvbnRleHQocGQtPnVvYmplY3QtPmNvbnRleHQpIDogTlVMTDsKKwlpZiAoIXVjb250ZXh0ICYmIHdxc2l6ZSA8IChycXNpemUgKyAoMiAqIHNxc2l6ZSkpKQorCQl3cXNpemUgPSByb3VuZHVwX3Bvd19vZl90d28ocnFzaXplICsKKwkJCQlyb3VuZHVwX3Bvd19vZl90d28oYXR0cnMtPmNhcC5tYXhfc2VuZF93ciAqIDIpKTsKIAlQREJHKCIlcyB3cXNpemUgJWQgc3FzaXplICVkIHJxc2l6ZSAlZFxuIiwgX19mdW5jX18sCiAJICAgICB3cXNpemUsIHNxc2l6ZSwgcnFzaXplKTsKIAlxaHAgPSBremFsbG9jKHNpemVvZigqcWhwKSwgR0ZQX0tFUk5FTCk7CkBAIC04NTEsNyArOTI0LDYgQEAKIAlxaHAtPndxLnNpemVfbG9nMiA9IGlsb2cyKHdxc2l6ZSk7CiAJcWhwLT53cS5ycV9zaXplX2xvZzIgPSBpbG9nMihycXNpemUpOwogCXFocC0+d3Euc3Ffc2l6ZV9sb2cyID0gaWxvZzIoc3FzaXplKTsKLQl1Y29udGV4dCA9IHBkLT51b2JqZWN0ID8gdG9faXdjaF91Y29udGV4dChwZC0+dW9iamVjdC0+Y29udGV4dCkgOiBOVUxMOwogCWlmIChjeGlvX2NyZWF0ZV9xcCgmcmhwLT5yZGV2LCAhdWRhdGEsICZxaHAtPndxLAogCQkJICAgdWNvbnRleHQgPyAmdWNvbnRleHQtPnVjdHggOiAmcmhwLT5yZGV2LnVjdHgpKSB7CiAJCWtmcmVlKHFocCk7CkBAIC05MzUsMTAgKzEwMDcsMTAgQEAKIAlxaHAtPmlicXAucXBfbnVtID0gcWhwLT53cS5xcGlkOwogCWluaXRfdGltZXIoJihxaHAtPnRpbWVyKSk7CiAJUERCRygiJXMgc3FfbnVtX2VudHJpZXMgJWQsIHJxX251bV9lbnRyaWVzICVkICIKLQkgICAgICJxcGlkIDB4JTB4IHFocCAlcCBkbWFfYWRkciAweCVsbHggc2l6ZSAlZFxuIiwKKwkgICAgICJxcGlkIDB4JTB4IHFocCAlcCBkbWFfYWRkciAweCVsbHggc2l6ZSAlZCBycV9hZGRyIDB4JXhcbiIsCiAJICAgICBfX2Z1bmNfXywgcWhwLT5hdHRyLnNxX251bV9lbnRyaWVzLCBxaHAtPmF0dHIucnFfbnVtX2VudHJpZXMsCiAJICAgICBxaHAtPndxLnFwaWQsIHFocCwgKHVuc2lnbmVkIGxvbmcgbG9uZykgcWhwLT53cS5kbWFfYWRkciwKLQkgICAgIDEgPDwgcWhwLT53cS5zaXplX2xvZzIpOworCSAgICAgMSA8PCBxaHAtPndxLnNpemVfbG9nMiwgcWhwLT53cS5ycV9hZGRyKTsKIAlyZXR1cm4gJnFocC0+aWJxcDsKIH0KIApAQCAtMTAyMyw2ICsxMDk1LDI5IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB1NjQgZndfdmVyc19zdHJpbmdfdG9fdTY0KHN0cnVjdCBpd2NoX2RldiAqaXdjaF9kZXYpCit7CisJc3RydWN0IGV0aHRvb2xfZHJ2aW5mbyBpbmZvOworCXN0cnVjdCBuZXRfZGV2aWNlICpsbGRldiA9IGl3Y2hfZGV2LT5yZGV2LnQzY2Rldl9wLT5sbGRldjsKKwljaGFyICpjcCwgKm5leHQ7CisJdW5zaWduZWQgZndfbWFqLCBmd19taW4sIGZ3X21pYzsKKworCXJ0bmxfbG9jaygpOworCWxsZGV2LT5ldGh0b29sX29wcy0+Z2V0X2RydmluZm8obGxkZXYsICZpbmZvKTsKKwlydG5sX3VubG9jaygpOworCisJbmV4dCA9IGluZm8uZndfdmVyc2lvbiArIDE7CisJY3AgPSBzdHJzZXAoJm5leHQsICIuIik7CisJc3NjYW5mKGNwLCAiJWkiLCAmZndfbWFqKTsKKwljcCA9IHN0cnNlcCgmbmV4dCwgIi4iKTsKKwlzc2NhbmYoY3AsICIlaSIsICZmd19taW4pOworCWNwID0gc3Ryc2VwKCZuZXh0LCAiLiIpOworCXNzY2FuZihjcCwgIiVpIiwgJmZ3X21pYyk7CisKKwlyZXR1cm4gKCgodTY0KWZ3X21haiAmIDB4ZmZmZikgPDwgMzIpIHwgKChmd19taW4gJiAweGZmZmYpIDw8IDE2KSB8CisJICAgICAgIChmd19taWMgJiAweGZmZmYpOworfQorCiBzdGF0aWMgaW50IGl3Y2hfcXVlcnlfZGV2aWNlKHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LAogCQkJICAgICBzdHJ1Y3QgaWJfZGV2aWNlX2F0dHIgKnByb3BzKQogewpAQCAtMTAzMyw3ICsxMTI4LDEwIEBACiAJZGV2ID0gdG9faXdjaF9kZXYoaWJkZXYpOwogCW1lbXNldChwcm9wcywgMCwgc2l6ZW9mICpwcm9wcyk7CiAJbWVtY3B5KCZwcm9wcy0+c3lzX2ltYWdlX2d1aWQsIGRldi0+cmRldi50M2NkZXZfcC0+bGxkZXYtPmRldl9hZGRyLCA2KTsKKwlwcm9wcy0+aHdfdmVyID0gZGV2LT5yZGV2LnQzY2Rldl9wLT50eXBlOworCXByb3BzLT5md192ZXIgPSBmd192ZXJzX3N0cmluZ190b191NjQoZGV2KTsKIAlwcm9wcy0+ZGV2aWNlX2NhcF9mbGFncyA9IGRldi0+ZGV2aWNlX2NhcF9mbGFnczsKKwlwcm9wcy0+cGFnZV9zaXplX2NhcCA9IGRldi0+YXR0ci5tZW1fcGdzaXplc19iaXRtYXNrOwogCXByb3BzLT52ZW5kb3JfaWQgPSAodTMyKWRldi0+cmRldi5ybmljX2luZm8ucGRldi0+dmVuZG9yOwogCXByb3BzLT52ZW5kb3JfcGFydF9pZCA9ICh1MzIpZGV2LT5yZGV2LnJuaWNfaW5mby5wZGV2LT5kZXZpY2U7CiAJcHJvcHMtPm1heF9tcl9zaXplID0gZGV2LT5hdHRyLm1heF9tcl9zaXplOwpAQCAtMTA0OCw2ICsxMTQ2LDcgQEAKIAlwcm9wcy0+bWF4X21yID0gZGV2LT5hdHRyLm1heF9tZW1fcmVnczsKIAlwcm9wcy0+bWF4X3BkID0gZGV2LT5hdHRyLm1heF9wZHM7CiAJcHJvcHMtPmxvY2FsX2NhX2Fja19kZWxheSA9IDA7CisJcHJvcHMtPm1heF9mYXN0X3JlZ19wYWdlX2xpc3RfbGVuID0gVDNfTUFYX0ZBU1RSRUdfREVQVEg7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEwODgsNiArMTE4NywyOCBAQAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBpd2NoX2Rldi0+cmRldi50M2NkZXZfcC0+dHlwZSk7CiB9CiAKK3N0YXRpYyBpbnQgZndfc3VwcG9ydHNfZmFzdHJlZyhzdHJ1Y3QgaXdjaF9kZXYgKml3Y2hfZGV2KQoreworCXN0cnVjdCBldGh0b29sX2RydmluZm8gaW5mbzsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqbGxkZXYgPSBpd2NoX2Rldi0+cmRldi50M2NkZXZfcC0+bGxkZXY7CisJY2hhciAqY3AsICpuZXh0OworCXVuc2lnbmVkIGZ3X21haiwgZndfbWluOworCisJcnRubF9sb2NrKCk7CisJbGxkZXYtPmV0aHRvb2xfb3BzLT5nZXRfZHJ2aW5mbyhsbGRldiwgJmluZm8pOworCXJ0bmxfdW5sb2NrKCk7CisKKwluZXh0ID0gaW5mby5md192ZXJzaW9uKzE7CisJY3AgPSBzdHJzZXAoJm5leHQsICIuIik7CisJc3NjYW5mKGNwLCAiJWkiLCAmZndfbWFqKTsKKwljcCA9IHN0cnNlcCgmbmV4dCwgIi4iKTsKKwlzc2NhbmYoY3AsICIlaSIsICZmd19taW4pOworCisJUERCRygiJXMgbWFqICV1IG1pbiAldVxuIiwgX19mdW5jX18sIGZ3X21haiwgZndfbWluKTsKKworCXJldHVybiBmd19tYWogPiA2IHx8IChmd19tYWogPT0gNiAmJiBmd19taW4gPiAwKTsKK30KKwogc3RhdGljIHNzaXplX3Qgc2hvd19md192ZXIoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewogCXN0cnVjdCBpd2NoX2RldiAqaXdjaF9kZXYgPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgaXdjaF9kZXYsCkBAIC0xMDk2LDcgKzEyMTcsOSBAQAogCXN0cnVjdCBuZXRfZGV2aWNlICpsbGRldiA9IGl3Y2hfZGV2LT5yZGV2LnQzY2Rldl9wLT5sbGRldjsKIAogCVBEQkcoIiVzIGRldiAweCVwXG4iLCBfX2Z1bmNfXywgZGV2KTsKKwlydG5sX2xvY2soKTsKIAlsbGRldi0+ZXRodG9vbF9vcHMtPmdldF9kcnZpbmZvKGxsZGV2LCAmaW5mbyk7CisJcnRubF91bmxvY2soKTsKIAlyZXR1cm4gc3ByaW50ZihidWYsICIlc1xuIiwgaW5mby5md192ZXJzaW9uKTsKIH0KIApAQCAtMTEwOSw3ICsxMjMyLDkgQEAKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbGxkZXYgPSBpd2NoX2Rldi0+cmRldi50M2NkZXZfcC0+bGxkZXY7CiAKIAlQREJHKCIlcyBkZXYgMHglcFxuIiwgX19mdW5jX18sIGRldik7CisJcnRubF9sb2NrKCk7CiAJbGxkZXYtPmV0aHRvb2xfb3BzLT5nZXRfZHJ2aW5mbyhsbGRldiwgJmluZm8pOworCXJ0bmxfdW5sb2NrKCk7CiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJXNcbiIsIGluZm8uZHJpdmVyKTsKIH0KIApAQCAtMTEyMyw2ICsxMjQ4LDYxIEBACiAJCSAgICAgICBpd2NoX2Rldi0+cmRldi5ybmljX2luZm8ucGRldi0+ZGV2aWNlKTsKIH0KIAorc3RhdGljIGludCBpd2NoX2dldF9taWIoc3RydWN0IGliX2RldmljZSAqaWJkZXYsCisJCQl1bmlvbiByZG1hX3Byb3RvY29sX3N0YXRzICpzdGF0cykKK3sKKwlzdHJ1Y3QgaXdjaF9kZXYgKmRldjsKKwlzdHJ1Y3QgdHBfbWliX3N0YXRzIG07CisJaW50IHJldDsKKworCVBEQkcoIiVzIGliZGV2ICVwXG4iLCBfX2Z1bmNfXywgaWJkZXYpOworCWRldiA9IHRvX2l3Y2hfZGV2KGliZGV2KTsKKwlyZXQgPSBkZXYtPnJkZXYudDNjZGV2X3AtPmN0bChkZXYtPnJkZXYudDNjZGV2X3AsIFJETUFfR0VUX01JQiwgJm0pOworCWlmIChyZXQpCisJCXJldHVybiAtRU5PU1lTOworCisJbWVtc2V0KHN0YXRzLCAwLCBzaXplb2YgKnN0YXRzKTsKKwlzdGF0cy0+aXcuaXBJblJlY2VpdmVzID0gKCh1NjQpIG0uaXBJblJlY2VpdmVfaGkgPDwgMzIpICsKKwkJCQltLmlwSW5SZWNlaXZlX2xvOworCXN0YXRzLT5pdy5pcEluSGRyRXJyb3JzID0gKCh1NjQpIG0uaXBJbkhkckVycm9yc19oaSA8PCAzMikgKworCQkJCSAgbS5pcEluSGRyRXJyb3JzX2xvOworCXN0YXRzLT5pdy5pcEluQWRkckVycm9ycyA9ICgodTY0KSBtLmlwSW5BZGRyRXJyb3JzX2hpIDw8IDMyKSArCisJCQkJICAgbS5pcEluQWRkckVycm9yc19sbzsKKwlzdGF0cy0+aXcuaXBJblVua25vd25Qcm90b3MgPSAoKHU2NCkgbS5pcEluVW5rbm93blByb3Rvc19oaSA8PCAzMikgKworCQkJCSAgICAgIG0uaXBJblVua25vd25Qcm90b3NfbG87CisJc3RhdHMtPml3LmlwSW5EaXNjYXJkcyA9ICgodTY0KSBtLmlwSW5EaXNjYXJkc19oaSA8PCAzMikgKworCQkJCSBtLmlwSW5EaXNjYXJkc19sbzsKKwlzdGF0cy0+aXcuaXBJbkRlbGl2ZXJzID0gKCh1NjQpIG0uaXBJbkRlbGl2ZXJzX2hpIDw8IDMyKSArCisJCQkJIG0uaXBJbkRlbGl2ZXJzX2xvOworCXN0YXRzLT5pdy5pcE91dFJlcXVlc3RzID0gKCh1NjQpIG0uaXBPdXRSZXF1ZXN0c19oaSA8PCAzMikgKworCQkJCSAgbS5pcE91dFJlcXVlc3RzX2xvOworCXN0YXRzLT5pdy5pcE91dERpc2NhcmRzID0gKCh1NjQpIG0uaXBPdXREaXNjYXJkc19oaSA8PCAzMikgKworCQkJCSAgbS5pcE91dERpc2NhcmRzX2xvOworCXN0YXRzLT5pdy5pcE91dE5vUm91dGVzID0gKCh1NjQpIG0uaXBPdXROb1JvdXRlc19oaSA8PCAzMikgKworCQkJCSAgbS5pcE91dE5vUm91dGVzX2xvOworCXN0YXRzLT5pdy5pcFJlYXNtVGltZW91dCA9ICh1NjQpIG0uaXBSZWFzbVRpbWVvdXQ7CisJc3RhdHMtPml3LmlwUmVhc21SZXFkcyA9ICh1NjQpIG0uaXBSZWFzbVJlcWRzOworCXN0YXRzLT5pdy5pcFJlYXNtT0tzID0gKHU2NCkgbS5pcFJlYXNtT0tzOworCXN0YXRzLT5pdy5pcFJlYXNtRmFpbHMgPSAodTY0KSBtLmlwUmVhc21GYWlsczsKKwlzdGF0cy0+aXcudGNwQWN0aXZlT3BlbnMgPSAodTY0KSBtLnRjcEFjdGl2ZU9wZW5zOworCXN0YXRzLT5pdy50Y3BQYXNzaXZlT3BlbnMgPSAodTY0KSBtLnRjcFBhc3NpdmVPcGVuczsKKwlzdGF0cy0+aXcudGNwQXR0ZW1wdEZhaWxzID0gKHU2NCkgbS50Y3BBdHRlbXB0RmFpbHM7CisJc3RhdHMtPml3LnRjcEVzdGFiUmVzZXRzID0gKHU2NCkgbS50Y3BFc3RhYlJlc2V0czsKKwlzdGF0cy0+aXcudGNwT3V0UnN0cyA9ICh1NjQpIG0udGNwT3V0UnN0czsKKwlzdGF0cy0+aXcudGNwQ3VyckVzdGFiID0gKHU2NCkgbS50Y3BDdXJyRXN0YWI7CisJc3RhdHMtPml3LnRjcEluU2VncyA9ICgodTY0KSBtLnRjcEluU2Vnc19oaSA8PCAzMikgKworCQkJICAgICAgbS50Y3BJblNlZ3NfbG87CisJc3RhdHMtPml3LnRjcE91dFNlZ3MgPSAoKHU2NCkgbS50Y3BPdXRTZWdzX2hpIDw8IDMyKSArCisJCQkgICAgICAgbS50Y3BPdXRTZWdzX2xvOworCXN0YXRzLT5pdy50Y3BSZXRyYW5zU2VncyA9ICgodTY0KSBtLnRjcFJldHJhbnNTZWdfaGkgPDwgMzIpICsKKwkJCQkgIG0udGNwUmV0cmFuc1NlZ19sbzsKKwlzdGF0cy0+aXcudGNwSW5FcnJzID0gKCh1NjQpIG0udGNwSW5FcnJzX2hpIDw8IDMyKSArCisJCQkgICAgICBtLnRjcEluRXJyc19sbzsKKwlzdGF0cy0+aXcudGNwUnRvTWluID0gKHU2NCkgbS50Y3BSdG9NaW47CisJc3RhdHMtPml3LnRjcFJ0b01heCA9ICh1NjQpIG0udGNwUnRvTWF4OworCXJldHVybiAwOworfQorCiBzdGF0aWMgREVWSUNFX0FUVFIoaHdfcmV2LCBTX0lSVUdPLCBzaG93X3JldiwgTlVMTCk7CiBzdGF0aWMgREVWSUNFX0FUVFIoZndfdmVyLCBTX0lSVUdPLCBzaG93X2Z3X3ZlciwgTlVMTCk7CiBzdGF0aWMgREVWSUNFX0FUVFIoaGNhX3R5cGUsIFNfSVJVR08sIHNob3dfaGNhLCBOVUxMKTsKQEAgLTExMzIsNyArMTMxMiw3IEBACiAJJmRldl9hdHRyX2h3X3JldiwKIAkmZGV2X2F0dHJfZndfdmVyLAogCSZkZXZfYXR0cl9oY2FfdHlwZSwKLQkmZGV2X2F0dHJfYm9hcmRfaWQKKwkmZGV2X2F0dHJfYm9hcmRfaWQsCiB9OwogCiBpbnQgaXdjaF9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGl3Y2hfZGV2ICpkZXYpCkBAIC0xMTQ1LDggKzEzMjUsMTIgQEAKIAltZW1zZXQoJmRldi0+aWJkZXYubm9kZV9ndWlkLCAwLCBzaXplb2YoZGV2LT5pYmRldi5ub2RlX2d1aWQpKTsKIAltZW1jcHkoJmRldi0+aWJkZXYubm9kZV9ndWlkLCBkZXYtPnJkZXYudDNjZGV2X3AtPmxsZGV2LT5kZXZfYWRkciwgNik7CiAJZGV2LT5pYmRldi5vd25lciA9IFRISVNfTU9EVUxFOwotCWRldi0+ZGV2aWNlX2NhcF9mbGFncyA9Ci0JICAgIChJQl9ERVZJQ0VfWkVST19TVEFHIHwgSUJfREVWSUNFX01FTV9XSU5ET1cpOworCWRldi0+ZGV2aWNlX2NhcF9mbGFncyA9IElCX0RFVklDRV9MT0NBTF9ETUFfTEtFWSB8IElCX0RFVklDRV9NRU1fV0lORE9XOworCisJLyogY3hnYjMgc3VwcG9ydHMgU1RhZyAwLiAqLworCWRldi0+aWJkZXYubG9jYWxfZG1hX2xrZXkgPSAwOworCWlmIChmd19zdXBwb3J0c19mYXN0cmVnKGRldikpCisJCWRldi0+ZGV2aWNlX2NhcF9mbGFncyB8PSBJQl9ERVZJQ0VfTUVNX01HVF9FWFRFTlNJT05TOwogCiAJZGV2LT5pYmRldi51dmVyYnNfY21kX21hc2sgPQogCSAgICAoMXVsbCA8PCBJQl9VU0VSX1ZFUkJTX0NNRF9HRVRfQ09OVEVYVCkgfApAQCAtMTE5OCwxNSArMTM4MiwxNiBAQAogCWRldi0+aWJkZXYuYWxsb2NfbXcgPSBpd2NoX2FsbG9jX213OwogCWRldi0+aWJkZXYuYmluZF9tdyA9IGl3Y2hfYmluZF9tdzsKIAlkZXYtPmliZGV2LmRlYWxsb2NfbXcgPSBpd2NoX2RlYWxsb2NfbXc7Ci0KKwlkZXYtPmliZGV2LmFsbG9jX2Zhc3RfcmVnX21yID0gaXdjaF9hbGxvY19mYXN0X3JlZ19tcjsKKwlkZXYtPmliZGV2LmFsbG9jX2Zhc3RfcmVnX3BhZ2VfbGlzdCA9IGl3Y2hfYWxsb2NfZmFzdHJlZ19wYmw7CisJZGV2LT5pYmRldi5mcmVlX2Zhc3RfcmVnX3BhZ2VfbGlzdCA9IGl3Y2hfZnJlZV9mYXN0cmVnX3BibDsKIAlkZXYtPmliZGV2LmF0dGFjaF9tY2FzdCA9IGl3Y2hfbXVsdGljYXN0X2F0dGFjaDsKIAlkZXYtPmliZGV2LmRldGFjaF9tY2FzdCA9IGl3Y2hfbXVsdGljYXN0X2RldGFjaDsKIAlkZXYtPmliZGV2LnByb2Nlc3NfbWFkID0gaXdjaF9wcm9jZXNzX21hZDsKLQogCWRldi0+aWJkZXYucmVxX25vdGlmeV9jcSA9IGl3Y2hfYXJtX2NxOwogCWRldi0+aWJkZXYucG9zdF9zZW5kID0gaXdjaF9wb3N0X3NlbmQ7CiAJZGV2LT5pYmRldi5wb3N0X3JlY3YgPSBpd2NoX3Bvc3RfcmVjZWl2ZTsKLQorCWRldi0+aWJkZXYuZ2V0X3Byb3RvY29sX3N0YXRzID0gaXdjaF9nZXRfbWliOwogCiAJZGV2LT5pYmRldi5pd2NtID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGl3X2NtX3ZlcmJzKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFkZXYtPmliZGV2Lml3Y20pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcHJvdmlkZXIuaAppbmRleCA4MzYxNjNmLi5mNWNlY2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3Byb3ZpZGVyLmgKQEAgLTI5NiwxNCArMjk2LDYgQEAKIAkgICAgICAgVFBUX0xPQ0FMX1JFQUQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdTMyIGl3Y2hfaWJfdG9fbXdiaW5kX2FjY2VzcyhpbnQgYWNjKQotewotCXJldHVybiAoYWNjICYgSUJfQUNDRVNTX1JFTU9URV9XUklURSA/IFQzX01FTV9BQ0NFU1NfUkVNX1dSSVRFIDogMCkgfAotCSAgICAgICAoYWNjICYgSUJfQUNDRVNTX1JFTU9URV9SRUFEID8gVDNfTUVNX0FDQ0VTU19SRU1fUkVBRCA6IDApIHwKLQkgICAgICAgKGFjYyAmIElCX0FDQ0VTU19MT0NBTF9XUklURSA/IFQzX01FTV9BQ0NFU1NfTE9DQUxfV1JJVEUgOiAwKSB8Ci0JICAgICAgIFQzX01FTV9BQ0NFU1NfTE9DQUxfUkVBRDsKLX0KLQogZW51bSBpd2NoX21taWRfc3RhdGUgewogCUlXQ0hfU1RBR19TVEFURV9WQUxJRCwKIAlJV0NIX1NUQUdfU1RBVEVfSU5WQUxJRApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcXAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3FwLmMKaW5kZXggOTkyNjEzNy4uOWEzYmUzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcXAuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9xcC5jCkBAIC0zMywxMCArMzMsMTEgQEAKICNpbmNsdWRlICJpd2NoLmgiCiAjaW5jbHVkZSAiaXdjaF9jbS5oIgogI2luY2x1ZGUgImN4aW9faGFsLmgiCisjaW5jbHVkZSAiY3hpb19yZXNvdXJjZS5oIgogCiAjZGVmaW5lIE5PX1NVUFBPUlQgLTEKIAotc3RhdGljIGludCBpd2NoX2J1aWxkX3JkbWFfc2VuZCh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCitzdGF0aWMgaW50IGJ1aWxkX3JkbWFfc2VuZCh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCiAJCQkJdTggKiBmbGl0X2NudCkKIHsKIAlpbnQgaTsKQEAgLTQ0LDU5ICs0NSw0NCBAQAogCiAJc3dpdGNoICh3ci0+b3Bjb2RlKSB7CiAJY2FzZSBJQl9XUl9TRU5EOgotCWNhc2UgSUJfV1JfU0VORF9XSVRIX0lNTToKIAkJaWYgKHdyLT5zZW5kX2ZsYWdzICYgSUJfU0VORF9TT0xJQ0lURUQpCiAJCQl3cWUtPnNlbmQucmRtYW9wID0gVDNfU0VORF9XSVRIX1NFOwogCQllbHNlCiAJCQl3cWUtPnNlbmQucmRtYW9wID0gVDNfU0VORDsKIAkJd3FlLT5zZW5kLnJlbV9zdGFnID0gMDsKIAkJYnJlYWs7Ci0jaWYgMAkJCQkvKiBOb3QgY3VycmVudGx5IHN1cHBvcnRlZCAqLwotCWNhc2UgVFlQRV9TRU5EX0lOVkFMSURBVEU6Ci0JY2FzZSBUWVBFX1NFTkRfSU5WQUxJREFURV9JTU1FRElBVEU6Ci0JCXdxZS0+c2VuZC5yZG1hb3AgPSBUM19TRU5EX1dJVEhfSU5WOwotCQl3cWUtPnNlbmQucmVtX3N0YWcgPSBjcHVfdG9fYmUzMih3ci0+d3IucmRtYS5ya2V5KTsKKwljYXNlIElCX1dSX1NFTkRfV0lUSF9JTlY6CisJCWlmICh3ci0+c2VuZF9mbGFncyAmIElCX1NFTkRfU09MSUNJVEVEKQorCQkJd3FlLT5zZW5kLnJkbWFvcCA9IFQzX1NFTkRfV0lUSF9TRV9JTlY7CisJCWVsc2UKKwkJCXdxZS0+c2VuZC5yZG1hb3AgPSBUM19TRU5EX1dJVEhfSU5WOworCQl3cWUtPnNlbmQucmVtX3N0YWcgPSBjcHVfdG9fYmUzMih3ci0+ZXguaW52YWxpZGF0ZV9ya2V5KTsKIAkJYnJlYWs7Ci0JY2FzZSBUWVBFX1NFTkRfU0VfSU5WQUxJREFURToKLQkJd3FlLT5zZW5kLnJkbWFvcCA9IFQzX1NFTkRfV0lUSF9TRV9JTlY7Ci0JCXdxZS0+c2VuZC5yZW1fc3RhZyA9IGNwdV90b19iZTMyKHdyLT53ci5yZG1hLnJrZXkpOwotCQlicmVhazsKLSNlbmRpZgogCWRlZmF1bHQ6Ci0JCWJyZWFrOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJaWYgKHdyLT5udW1fc2dlID4gVDNfTUFYX1NHRSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJd3FlLT5zZW5kLnJlc2VydmVkWzBdID0gMDsKIAl3cWUtPnNlbmQucmVzZXJ2ZWRbMV0gPSAwOwogCXdxZS0+c2VuZC5yZXNlcnZlZFsyXSA9IDA7Ci0JaWYgKHdyLT5vcGNvZGUgPT0gSUJfV1JfU0VORF9XSVRIX0lNTSkgewotCQlwbGVuID0gNDsKLQkJd3FlLT5zZW5kLnNnbFswXS5zdGFnID0gd3ItPmV4LmltbV9kYXRhOwotCQl3cWUtPnNlbmQuc2dsWzBdLmxlbiA9IF9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMCk7Ci0JCXdxZS0+c2VuZC5udW1fc2dsZSA9IF9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMCk7Ci0JCSpmbGl0X2NudCA9IDU7Ci0JfSBlbHNlIHsKLQkJcGxlbiA9IDA7Ci0JCWZvciAoaSA9IDA7IGkgPCB3ci0+bnVtX3NnZTsgaSsrKSB7Ci0JCQlpZiAoKHBsZW4gKyB3ci0+c2dfbGlzdFtpXS5sZW5ndGgpIDwgcGxlbikgewotCQkJCXJldHVybiAtRU1TR1NJWkU7Ci0JCQl9Ci0JCQlwbGVuICs9IHdyLT5zZ19saXN0W2ldLmxlbmd0aDsKLQkJCXdxZS0+c2VuZC5zZ2xbaV0uc3RhZyA9Ci0JCQkgICAgY3B1X3RvX2JlMzIod3ItPnNnX2xpc3RbaV0ubGtleSk7Ci0JCQl3cWUtPnNlbmQuc2dsW2ldLmxlbiA9Ci0JCQkgICAgY3B1X3RvX2JlMzIod3ItPnNnX2xpc3RbaV0ubGVuZ3RoKTsKLQkJCXdxZS0+c2VuZC5zZ2xbaV0udG8gPSBjcHVfdG9fYmU2NCh3ci0+c2dfbGlzdFtpXS5hZGRyKTsKLQkJfQotCQl3cWUtPnNlbmQubnVtX3NnbGUgPSBjcHVfdG9fYmUzMih3ci0+bnVtX3NnZSk7Ci0JCSpmbGl0X2NudCA9IDQgKyAoKHdyLT5udW1fc2dlKSA8PCAxKTsKKwlwbGVuID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgd3ItPm51bV9zZ2U7IGkrKykgeworCQlpZiAoKHBsZW4gKyB3ci0+c2dfbGlzdFtpXS5sZW5ndGgpIDwgcGxlbikKKwkJCXJldHVybiAtRU1TR1NJWkU7CisKKwkJcGxlbiArPSB3ci0+c2dfbGlzdFtpXS5sZW5ndGg7CisJCXdxZS0+c2VuZC5zZ2xbaV0uc3RhZyA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxrZXkpOworCQl3cWUtPnNlbmQuc2dsW2ldLmxlbiA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxlbmd0aCk7CisJCXdxZS0+c2VuZC5zZ2xbaV0udG8gPSBjcHVfdG9fYmU2NCh3ci0+c2dfbGlzdFtpXS5hZGRyKTsKIAl9CisJd3FlLT5zZW5kLm51bV9zZ2xlID0gY3B1X3RvX2JlMzIod3ItPm51bV9zZ2UpOworCSpmbGl0X2NudCA9IDQgKyAoKHdyLT5udW1fc2dlKSA8PCAxKTsKIAl3cWUtPnNlbmQucGxlbiA9IGNwdV90b19iZTMyKHBsZW4pOwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGl3Y2hfYnVpbGRfcmRtYV93cml0ZSh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCitzdGF0aWMgaW50IGJ1aWxkX3JkbWFfd3JpdGUodW5pb24gdDNfd3IgKndxZSwgc3RydWN0IGliX3NlbmRfd3IgKndyLAogCQkJCSB1OCAqZmxpdF9jbnQpCiB7CiAJaW50IGk7CkBAIC0xMzcsMTUgKzEyMywxOCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGl3Y2hfYnVpbGRfcmRtYV9yZWFkKHVuaW9uIHQzX3dyICp3cWUsIHN0cnVjdCBpYl9zZW5kX3dyICp3ciwKK3N0YXRpYyBpbnQgYnVpbGRfcmRtYV9yZWFkKHVuaW9uIHQzX3dyICp3cWUsIHN0cnVjdCBpYl9zZW5kX3dyICp3ciwKIAkJCQl1OCAqZmxpdF9jbnQpCiB7CiAJaWYgKHdyLT5udW1fc2dlID4gMSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJd3FlLT5yZWFkLnJkbWFvcCA9IFQzX1JFQURfUkVROworCWlmICh3ci0+b3Bjb2RlID09IElCX1dSX1JETUFfUkVBRF9XSVRIX0lOVikKKwkJd3FlLT5yZWFkLmxvY2FsX2ludiA9IDE7CisJZWxzZQorCQl3cWUtPnJlYWQubG9jYWxfaW52ID0gMDsKIAl3cWUtPnJlYWQucmVzZXJ2ZWRbMF0gPSAwOwogCXdxZS0+cmVhZC5yZXNlcnZlZFsxXSA9IDA7Ci0Jd3FlLT5yZWFkLnJlc2VydmVkWzJdID0gMDsKIAl3cWUtPnJlYWQucmVtX3N0YWcgPSBjcHVfdG9fYmUzMih3ci0+d3IucmRtYS5ya2V5KTsKIAl3cWUtPnJlYWQucmVtX3RvID0gY3B1X3RvX2JlNjQod3ItPndyLnJkbWEucmVtb3RlX2FkZHIpOwogCXdxZS0+cmVhZC5sb2NhbF9zdGFnID0gY3B1X3RvX2JlMzIod3ItPnNnX2xpc3RbMF0ubGtleSk7CkBAIC0xNTUsNiArMTQ0LDU3IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgYnVpbGRfZmFzdHJlZyh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCisJCQkJdTggKmZsaXRfY250LCBpbnQgKndyX2NudCwgc3RydWN0IHQzX3dxICp3cSkKK3sKKwlpbnQgaTsKKwlfX2JlNjQgKnA7CisKKwlpZiAod3ItPndyLmZhc3RfcmVnLnBhZ2VfbGlzdF9sZW4gPiBUM19NQVhfRkFTVFJFR19ERVBUSCkKKwkJcmV0dXJuIC1FSU5WQUw7CisJKndyX2NudCA9IDE7CisJd3FlLT5mYXN0cmVnLnN0YWcgPSBjcHVfdG9fYmUzMih3ci0+d3IuZmFzdF9yZWcucmtleSk7CisJd3FlLT5mYXN0cmVnLmxlbiA9IGNwdV90b19iZTMyKHdyLT53ci5mYXN0X3JlZy5sZW5ndGgpOworCXdxZS0+ZmFzdHJlZy52YV9iYXNlX2hpID0gY3B1X3RvX2JlMzIod3ItPndyLmZhc3RfcmVnLmlvdmFfc3RhcnQgPj4gMzIpOworCXdxZS0+ZmFzdHJlZy52YV9iYXNlX2xvX2ZibyA9CisJCQkJY3B1X3RvX2JlMzIod3ItPndyLmZhc3RfcmVnLmlvdmFfc3RhcnQgJiAweGZmZmZmZmZmKTsKKwl3cWUtPmZhc3RyZWcucGFnZV90eXBlX3Blcm1zID0gY3B1X3RvX2JlMzIoCisJCVZfRlJfUEFHRV9DT1VOVCh3ci0+d3IuZmFzdF9yZWcucGFnZV9saXN0X2xlbikgfAorCQlWX0ZSX1BBR0VfU0laRSh3ci0+d3IuZmFzdF9yZWcucGFnZV9zaGlmdC0xMikgfAorCQlWX0ZSX1RZUEUoVFBUX1ZBVE8pIHwKKwkJVl9GUl9QRVJNUyhpd2NoX2liX3RvX3RwdF9hY2Nlc3Mod3ItPndyLmZhc3RfcmVnLmFjY2Vzc19mbGFncykpKTsKKwlwID0gJndxZS0+ZmFzdHJlZy5wYmxfYWRkcnNbMF07CisJZm9yIChpID0gMDsgaSA8IHdyLT53ci5mYXN0X3JlZy5wYWdlX2xpc3RfbGVuOyBpKyssIHArKykgeworCisJCS8qIElmIHdlIG5lZWQgYSAybmQgV1IsIHRoZW4gc2V0IGl0IHVwICovCisJCWlmIChpID09IFQzX01BWF9GQVNUUkVHX0ZSQUcpIHsKKwkJCSp3cl9jbnQgPSAyOworCQkJd3FlID0gKHVuaW9uIHQzX3dyICopKHdxLT5xdWV1ZSArCisJCQkJUV9QVFIySURYKCh3cS0+d3B0cisxKSwgd3EtPnNpemVfbG9nMikpOworCQkJYnVpbGRfZndfcml3cmgoKHZvaWQgKil3cWUsIFQzX1dSX0ZBU1RSRUcsIDAsCisJCQkgICAgICAgUV9HRU5CSVQod3EtPndwdHIgKyAxLCB3cS0+c2l6ZV9sb2cyKSwKKwkJCSAgICAgICAwLCAxICsgd3ItPndyLmZhc3RfcmVnLnBhZ2VfbGlzdF9sZW4gLSBUM19NQVhfRkFTVFJFR19GUkFHLAorCQkJICAgICAgIFQzX0VPUCk7CisKKwkJCXAgPSAmd3FlLT5wYmxfZnJhZy5wYmxfYWRkcnNbMF07CisJCX0KKwkJKnAgPSBjcHVfdG9fYmU2NCgodTY0KXdyLT53ci5mYXN0X3JlZy5wYWdlX2xpc3QtPnBhZ2VfbGlzdFtpXSk7CisJfQorCSpmbGl0X2NudCA9IDUgKyB3ci0+d3IuZmFzdF9yZWcucGFnZV9saXN0X2xlbjsKKwlpZiAoKmZsaXRfY250ID4gMTUpCisJCSpmbGl0X2NudCA9IDE1OworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJ1aWxkX2ludl9zdGFnKHVuaW9uIHQzX3dyICp3cWUsIHN0cnVjdCBpYl9zZW5kX3dyICp3ciwKKwkJCQl1OCAqZmxpdF9jbnQpCit7CisJd3FlLT5sb2NhbF9pbnYuc3RhZyA9IGNwdV90b19iZTMyKHdyLT5leC5pbnZhbGlkYXRlX3JrZXkpOworCXdxZS0+bG9jYWxfaW52LnJlc2VydmVkID0gMDsKKwkqZmxpdF9jbnQgPSBzaXplb2Yoc3RydWN0IHQzX2xvY2FsX2ludl93cikgPj4gMzsKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIFRCRDogdGhpcyBpcyBnb2luZyB0byBiZSBtb3ZlZCB0byBmaXJtd2FyZS4gTWlzc2luZyBwZGlkL3FwaWQgY2hlY2sgZm9yIG5vdy4KICAqLwpAQCAtMjA1LDIzICsyNDUsMTA2IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaXdjaF9idWlsZF9yZG1hX3JlY3Yoc3RydWN0IGl3Y2hfZGV2ICpyaHAsIHVuaW9uIHQzX3dyICp3cWUsCitzdGF0aWMgaW50IGJ1aWxkX3JkbWFfcmVjdihzdHJ1Y3QgaXdjaF9xcCAqcWhwLCB1bmlvbiB0M193ciAqd3FlLAogCQkJCXN0cnVjdCBpYl9yZWN2X3dyICp3cikKIHsKLQlpbnQgaTsKLQlpZiAod3ItPm51bV9zZ2UgPiBUM19NQVhfU0dFKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlpbnQgaSwgZXJyID0gMDsKKwl1MzIgcGJsX2FkZHJbVDNfTUFYX1NHRV07CisJdTggcGFnZV9zaXplW1QzX01BWF9TR0VdOworCisJZXJyID0gaXdjaF9zZ2wycGJsX21hcChxaHAtPnJocCwgd3ItPnNnX2xpc3QsIHdyLT5udW1fc2dlLCBwYmxfYWRkciwKKwkJCSAgICAgICBwYWdlX3NpemUpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisJd3FlLT5yZWN2LnBhZ2VzelswXSA9IHBhZ2Vfc2l6ZVswXTsKKwl3cWUtPnJlY3YucGFnZXN6WzFdID0gcGFnZV9zaXplWzFdOworCXdxZS0+cmVjdi5wYWdlc3pbMl0gPSBwYWdlX3NpemVbMl07CisJd3FlLT5yZWN2LnBhZ2VzelszXSA9IHBhZ2Vfc2l6ZVszXTsKIAl3cWUtPnJlY3YubnVtX3NnbGUgPSBjcHVfdG9fYmUzMih3ci0+bnVtX3NnZSk7CiAJZm9yIChpID0gMDsgaSA8IHdyLT5udW1fc2dlOyBpKyspIHsKIAkJd3FlLT5yZWN2LnNnbFtpXS5zdGFnID0gY3B1X3RvX2JlMzIod3ItPnNnX2xpc3RbaV0ubGtleSk7CiAJCXdxZS0+cmVjdi5zZ2xbaV0ubGVuID0gY3B1X3RvX2JlMzIod3ItPnNnX2xpc3RbaV0ubGVuZ3RoKTsKLQkJd3FlLT5yZWN2LnNnbFtpXS50byA9IGNwdV90b19iZTY0KHdyLT5zZ19saXN0W2ldLmFkZHIpOworCisJCS8qIHRvIGluIHRoZSBXUUUgPT0gdGhlIG9mZnNldCBpbnRvIHRoZSBwYWdlICovCisJCXdxZS0+cmVjdi5zZ2xbaV0udG8gPSBjcHVfdG9fYmU2NCgoKHUzMikgd3ItPnNnX2xpc3RbaV0uYWRkcikgJQorCQkJCSgxVUwgPDwgKDEyICsgcGFnZV9zaXplW2ldKSkpOworCisJCS8qIHBibF9hZGRyIGlzIHRoZSBhZGFwdGVycyBhZGRyZXNzIGluIHRoZSBQQkwgKi8KKwkJd3FlLT5yZWN2LnBibF9hZGRyW2ldID0gY3B1X3RvX2JlMzIocGJsX2FkZHJbaV0pOwogCX0KIAlmb3IgKDsgaSA8IFQzX01BWF9TR0U7IGkrKykgewogCQl3cWUtPnJlY3Yuc2dsW2ldLnN0YWcgPSAwOwogCQl3cWUtPnJlY3Yuc2dsW2ldLmxlbiA9IDA7CiAJCXdxZS0+cmVjdi5zZ2xbaV0udG8gPSAwOworCQl3cWUtPnJlY3YucGJsX2FkZHJbaV0gPSAwOwogCX0KKwlxaHAtPndxLnJxW1FfUFRSMklEWChxaHAtPndxLnJxX3dwdHIsCisJCQkgICAgIHFocC0+d3EucnFfc2l6ZV9sb2cyKV0ud3JfaWQgPSB3ci0+d3JfaWQ7CisJcWhwLT53cS5ycVtRX1BUUjJJRFgocWhwLT53cS5ycV93cHRyLAorCQkJICAgICBxaHAtPndxLnJxX3NpemVfbG9nMildLnBibF9hZGRyID0gMDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBidWlsZF96ZXJvX3N0YWdfcmVjdihzdHJ1Y3QgaXdjaF9xcCAqcWhwLCB1bmlvbiB0M193ciAqd3FlLAorCQkJCXN0cnVjdCBpYl9yZWN2X3dyICp3cikKK3sKKwlpbnQgaTsKKwl1MzIgcGJsX2FkZHI7CisJdTMyIHBibF9vZmZzZXQ7CisKKworCS8qCisJICogVGhlIFQzIEhXIHJlcXVpcmVzIHRoZSBQQkwgaW4gdGhlIEhXIHJlY3YgZGVzY3JpcHRvciB0byByZWZlcmVuY2UKKwkgKiBhIFBCTCBlbnRyeS4gIFNvIHdlIGFsbG9jYXRlIHRoZSBtYXggbmVlZGVkIFBCTCBtZW1vcnkgaGVyZSBhbmQgcGFzcworCSAqIGl0IHRvIHRoZSB1UCBpbiB0aGUgcmVjdiBXUi4gIFRoZSB1UCB3aWxsIGJ1aWxkIHRoZSBQQkwgYW5kIHNldHVwCisJICogdGhlIEhXIHJlY3YgZGVzY3JpcHRvci4KKwkgKi8KKwlwYmxfYWRkciA9IGN4aW9faGFsX3BibHBvb2xfYWxsb2MoJnFocC0+cmhwLT5yZGV2LCBUM19TVEFHMF9QQkxfU0laRSk7CisJaWYgKCFwYmxfYWRkcikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwkvKgorCSAqIENvbXB1dGUgdGhlIDhCIGFsaWduZWQgb2Zmc2V0LgorCSAqLworCXBibF9vZmZzZXQgPSAocGJsX2FkZHIgLSBxaHAtPnJocC0+cmRldi5ybmljX2luZm8ucGJsX2Jhc2UpID4+IDM7CisKKwl3cWUtPnJlY3YubnVtX3NnbGUgPSBjcHVfdG9fYmUzMih3ci0+bnVtX3NnZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgd3ItPm51bV9zZ2U7IGkrKykgeworCisJCS8qCisJCSAqIFVzZSBhIDEyOE1CIHBhZ2Ugc2l6ZS4gVGhpcyBhbmQgYW4gaW1wb3NlZCAxMjhNQgorCQkgKiBzZ2UgbGVuZ3RoIGxpbWl0IGFsbG93cyB1cyB0byByZXF1aXJlIG9ubHkgYSAyLWVudHJ5IEhXCisJCSAqIFBCTCBmb3IgZWFjaCBTR0UuICBUaGlzIHJlc3RyaWN0aW9uIGlzIGFjY2VwdGFibGUgc2luY2UKKwkJICogc2luY2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGFsbG9jYXRlIDEyOE1CIG9mIGNvbnRpZ3VvdXMKKwkJICogRE1BIGNvaGVyZW50IG1lbW9yeSEKKwkJICovCisJCWlmICh3ci0+c2dfbGlzdFtpXS5sZW5ndGggPiBUM19TVEFHMF9NQVhfUEJFX0xFTikKKwkJCXJldHVybiAtRUlOVkFMOworCQl3cWUtPnJlY3YucGFnZXN6W2ldID0gVDNfU1RBRzBfUEFHRV9TSElGVDsKKworCQkvKgorCQkgKiBUMyByZXN0cmljdHMgYSByZWN2IHRvIGFsbCB6ZXJvLXN0YWcgb3IgYWxsIG5vbi16ZXJvLXN0YWcuCisJCSAqLworCQlpZiAod3ItPnNnX2xpc3RbaV0ubGtleSAhPSAwKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJCXdxZS0+cmVjdi5zZ2xbaV0uc3RhZyA9IDA7CisJCXdxZS0+cmVjdi5zZ2xbaV0ubGVuID0gY3B1X3RvX2JlMzIod3ItPnNnX2xpc3RbaV0ubGVuZ3RoKTsKKwkJd3FlLT5yZWN2LnNnbFtpXS50byA9IGNwdV90b19iZTY0KHdyLT5zZ19saXN0W2ldLmFkZHIpOworCQl3cWUtPnJlY3YucGJsX2FkZHJbaV0gPSBjcHVfdG9fYmUzMihwYmxfb2Zmc2V0KTsKKwkJcGJsX29mZnNldCArPSAyOworCX0KKwlmb3IgKDsgaSA8IFQzX01BWF9TR0U7IGkrKykgeworCQl3cWUtPnJlY3YucGFnZXN6W2ldID0gMDsKKwkJd3FlLT5yZWN2LnNnbFtpXS5zdGFnID0gMDsKKwkJd3FlLT5yZWN2LnNnbFtpXS5sZW4gPSAwOworCQl3cWUtPnJlY3Yuc2dsW2ldLnRvID0gMDsKKwkJd3FlLT5yZWN2LnBibF9hZGRyW2ldID0gMDsKKwl9CisJcWhwLT53cS5ycVtRX1BUUjJJRFgocWhwLT53cS5ycV93cHRyLAorCQkJICAgICBxaHAtPndxLnJxX3NpemVfbG9nMildLndyX2lkID0gd3ItPndyX2lkOworCXFocC0+d3EucnFbUV9QVFIySURYKHFocC0+d3EucnFfd3B0ciwKKwkJCSAgICAgcWhwLT53cS5ycV9zaXplX2xvZzIpXS5wYmxfYWRkciA9IHBibF9hZGRyOwogCXJldHVybiAwOwogfQogCkBAIC0yMzgsNiArMzYxLDcgQEAKIAl1MzIgbnVtX3dyczsKIAl1bnNpZ25lZCBsb25nIGZsYWc7CiAJc3RydWN0IHQzX3N3c3EgKnNxcDsKKwlpbnQgd3JfY250ID0gMTsKIAogCXFocCA9IHRvX2l3Y2hfcXAoaWJxcCk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnFocC0+bG9jaywgZmxhZyk7CkBAIC0yNjIsMzMgKzM4Niw0NSBAQAogCQl0M193cl9mbGFncyA9IDA7CiAJCWlmICh3ci0+c2VuZF9mbGFncyAmIElCX1NFTkRfU09MSUNJVEVEKQogCQkJdDNfd3JfZmxhZ3MgfD0gVDNfU09MSUNJVEVEX0VWRU5UX0ZMQUc7Ci0JCWlmICh3ci0+c2VuZF9mbGFncyAmIElCX1NFTkRfRkVOQ0UpCi0JCQl0M193cl9mbGFncyB8PSBUM19SRUFEX0ZFTkNFX0ZMQUc7CiAJCWlmICh3ci0+c2VuZF9mbGFncyAmIElCX1NFTkRfU0lHTkFMRUQpCiAJCQl0M193cl9mbGFncyB8PSBUM19DT01QTEVUSU9OX0ZMQUc7CiAJCXNxcCA9IHFocC0+d3Euc3EgKwogCQkgICAgICBRX1BUUjJJRFgocWhwLT53cS5zcV93cHRyLCBxaHAtPndxLnNxX3NpemVfbG9nMik7CiAJCXN3aXRjaCAod3ItPm9wY29kZSkgewogCQljYXNlIElCX1dSX1NFTkQ6Ci0JCWNhc2UgSUJfV1JfU0VORF9XSVRIX0lNTToKKwkJY2FzZSBJQl9XUl9TRU5EX1dJVEhfSU5WOgorCQkJaWYgKHdyLT5zZW5kX2ZsYWdzICYgSUJfU0VORF9GRU5DRSkKKwkJCQl0M193cl9mbGFncyB8PSBUM19SRUFEX0ZFTkNFX0ZMQUc7CiAJCQl0M193cl9vcGNvZGUgPSBUM19XUl9TRU5EOwotCQkJZXJyID0gaXdjaF9idWlsZF9yZG1hX3NlbmQod3FlLCB3ciwgJnQzX3dyX2ZsaXRfY250KTsKKwkJCWVyciA9IGJ1aWxkX3JkbWFfc2VuZCh3cWUsIHdyLCAmdDNfd3JfZmxpdF9jbnQpOwogCQkJYnJlYWs7CiAJCWNhc2UgSUJfV1JfUkRNQV9XUklURToKIAkJY2FzZSBJQl9XUl9SRE1BX1dSSVRFX1dJVEhfSU1NOgogCQkJdDNfd3Jfb3Bjb2RlID0gVDNfV1JfV1JJVEU7Ci0JCQllcnIgPSBpd2NoX2J1aWxkX3JkbWFfd3JpdGUod3FlLCB3ciwgJnQzX3dyX2ZsaXRfY250KTsKKwkJCWVyciA9IGJ1aWxkX3JkbWFfd3JpdGUod3FlLCB3ciwgJnQzX3dyX2ZsaXRfY250KTsKIAkJCWJyZWFrOwogCQljYXNlIElCX1dSX1JETUFfUkVBRDoKKwkJY2FzZSBJQl9XUl9SRE1BX1JFQURfV0lUSF9JTlY6CiAJCQl0M193cl9vcGNvZGUgPSBUM19XUl9SRUFEOwogCQkJdDNfd3JfZmxhZ3MgPSAwOyAvKiBUMyByZWFkcyBhcmUgYWx3YXlzIHNpZ25hbGVkICovCi0JCQllcnIgPSBpd2NoX2J1aWxkX3JkbWFfcmVhZCh3cWUsIHdyLCAmdDNfd3JfZmxpdF9jbnQpOworCQkJZXJyID0gYnVpbGRfcmRtYV9yZWFkKHdxZSwgd3IsICZ0M193cl9mbGl0X2NudCk7CiAJCQlpZiAoZXJyKQogCQkJCWJyZWFrOwogCQkJc3FwLT5yZWFkX2xlbiA9IHdxZS0+cmVhZC5sb2NhbF9sZW47CiAJCQlpZiAoIXFocC0+d3Eub2xkZXN0X3JlYWQpCiAJCQkJcWhwLT53cS5vbGRlc3RfcmVhZCA9IHNxcDsKIAkJCWJyZWFrOworCQljYXNlIElCX1dSX0ZBU1RfUkVHX01SOgorCQkJdDNfd3Jfb3Bjb2RlID0gVDNfV1JfRkFTVFJFRzsKKwkJCWVyciA9IGJ1aWxkX2Zhc3RyZWcod3FlLCB3ciwgJnQzX3dyX2ZsaXRfY250LAorCQkJCQkJICZ3cl9jbnQsICZxaHAtPndxKTsKKwkJCWJyZWFrOworCQljYXNlIElCX1dSX0xPQ0FMX0lOVjoKKwkJCWlmICh3ci0+c2VuZF9mbGFncyAmIElCX1NFTkRfRkVOQ0UpCisJCQkJdDNfd3JfZmxhZ3MgfD0gVDNfTE9DQUxfRkVOQ0VfRkxBRzsKKwkJCXQzX3dyX29wY29kZSA9IFQzX1dSX0lOVl9TVEFHOworCQkJZXJyID0gYnVpbGRfaW52X3N0YWcod3FlLCB3ciwgJnQzX3dyX2ZsaXRfY250KTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJUERCRygiJXMgcG9zdCBvZiB0eXBlPSVkIFRCRCFcbiIsIF9fZnVuY19fLAogCQkJICAgICB3ci0+b3Bjb2RlKTsKQEAgLTMwNywxNCArNDQzLDE1IEBACiAKIAkJYnVpbGRfZndfcml3cmgoKHZvaWQgKikgd3FlLCB0M193cl9vcGNvZGUsIHQzX3dyX2ZsYWdzLAogCQkJICAgICAgIFFfR0VOQklUKHFocC0+d3Eud3B0ciwgcWhwLT53cS5zaXplX2xvZzIpLAotCQkJICAgICAgIDAsIHQzX3dyX2ZsaXRfY250KTsKKwkJCSAgICAgICAwLCB0M193cl9mbGl0X2NudCwKKwkJCSAgICAgICAod3JfY250ID09IDEpID8gVDNfU09QRU9QIDogVDNfU09QKTsKIAkJUERCRygiJXMgY29va2llIDB4JWxseCB3cSBpZHggMHgleCBzd3NxIGlkeCAlbGQgb3Bjb2RlICVkXG4iLAogCQkgICAgIF9fZnVuY19fLCAodW5zaWduZWQgbG9uZyBsb25nKSB3ci0+d3JfaWQsIGlkeCwKIAkJICAgICBRX1BUUjJJRFgocWhwLT53cS5zcV93cHRyLCBxaHAtPndxLnNxX3NpemVfbG9nMiksCiAJCSAgICAgc3FwLT5vcGNvZGUpOwogCQl3ciA9IHdyLT5uZXh0OwogCQludW1fd3JzLS07Ci0JCSsrKHFocC0+d3Eud3B0cik7CisJCXFocC0+d3Eud3B0ciArPSB3cl9jbnQ7CiAJCSsrKHFocC0+d3Euc3Ffd3B0cik7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnFocC0+bG9jaywgZmxhZyk7CkBAIC0zNDUsMjEgKzQ4MiwyNyBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJd2hpbGUgKHdyKSB7CisJCWlmICh3ci0+bnVtX3NnZSA+IFQzX01BWF9TR0UpIHsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQkqYmFkX3dyID0gd3I7CisJCQlicmVhazsKKwkJfQogCQlpZHggPSBRX1BUUjJJRFgocWhwLT53cS53cHRyLCBxaHAtPndxLnNpemVfbG9nMik7CiAJCXdxZSA9ICh1bmlvbiB0M193ciAqKSAocWhwLT53cS5xdWV1ZSArIGlkeCk7CiAJCWlmIChudW1fd3JzKQotCQkJZXJyID0gaXdjaF9idWlsZF9yZG1hX3JlY3YocWhwLT5yaHAsIHdxZSwgd3IpOworCQkJaWYgKHdyLT5zZ19saXN0WzBdLmxrZXkpCisJCQkJZXJyID0gYnVpbGRfcmRtYV9yZWN2KHFocCwgd3FlLCB3cik7CisJCQllbHNlCisJCQkJZXJyID0gYnVpbGRfemVyb19zdGFnX3JlY3YocWhwLCB3cWUsIHdyKTsKIAkJZWxzZQogCQkJZXJyID0gLUVOT01FTTsKIAkJaWYgKGVycikgewogCQkJKmJhZF93ciA9IHdyOwogCQkJYnJlYWs7CiAJCX0KLQkJcWhwLT53cS5ycVtRX1BUUjJJRFgocWhwLT53cS5ycV93cHRyLCBxaHAtPndxLnJxX3NpemVfbG9nMildID0KLQkJCXdyLT53cl9pZDsKIAkJYnVpbGRfZndfcml3cmgoKHZvaWQgKikgd3FlLCBUM19XUl9SQ1YsIFQzX0NPTVBMRVRJT05fRkxBRywKIAkJCSAgICAgICBRX0dFTkJJVChxaHAtPndxLndwdHIsIHFocC0+d3Euc2l6ZV9sb2cyKSwKLQkJCSAgICAgICAwLCBzaXplb2Yoc3RydWN0IHQzX3JlY2VpdmVfd3IpID4+IDMpOworCQkJICAgICAgIDAsIHNpemVvZihzdHJ1Y3QgdDNfcmVjZWl2ZV93cikgPj4gMywgVDNfU09QRU9QKTsKIAkJUERCRygiJXMgY29va2llIDB4JWxseCBpZHggMHgleCBycV93cHRyIDB4JXggcndfcnB0ciAweCV4ICIKIAkJICAgICAid3FlICVwIFxuIiwgX19mdW5jX18sICh1bnNpZ25lZCBsb25nIGxvbmcpIHdyLT53cl9pZCwKIAkJICAgICBpZHgsIHFocC0+d3EucnFfd3B0ciwgcWhwLT53cS5ycV9ycHRyLCB3cWUpOwpAQCAtNDE5LDEwICs1NjIsMTAgQEAKIAlzZ2wubGtleSA9IG13X2JpbmQtPm1yLT5sa2V5OwogCXNnbC5sZW5ndGggPSBtd19iaW5kLT5sZW5ndGg7CiAJd3FlLT5iaW5kLnJlc2VydmVkID0gMDsKLQl3cWUtPmJpbmQudHlwZSA9IFQzX1ZBX0JBU0VEX1RPOworCXdxZS0+YmluZC50eXBlID0gVFBUX1ZBVE87CiAKIAkvKiBUQkQ6IGNoZWNrIHBlcm1zICovCi0Jd3FlLT5iaW5kLnBlcm1zID0gaXdjaF9pYl90b19td2JpbmRfYWNjZXNzKG13X2JpbmQtPm13X2FjY2Vzc19mbGFncyk7CisJd3FlLT5iaW5kLnBlcm1zID0gaXdjaF9pYl90b190cHRfYWNjZXNzKG13X2JpbmQtPm13X2FjY2Vzc19mbGFncyk7CiAJd3FlLT5iaW5kLm1yX3N0YWcgPSBjcHVfdG9fYmUzMihtd19iaW5kLT5tci0+bGtleSk7CiAJd3FlLT5iaW5kLm13X3N0YWcgPSBjcHVfdG9fYmUzMihtdy0+cmtleSk7CiAJd3FlLT5iaW5kLm13X2xlbiA9IGNwdV90b19iZTMyKG13X2JpbmQtPmxlbmd0aCk7CkBAIC00MzAsNyArNTczLDcgQEAKIAllcnIgPSBpd2NoX3NnbDJwYmxfbWFwKHJocCwgJnNnbCwgMSwgJnBibF9hZGRyLCAmcGFnZV9zaXplKTsKIAlpZiAoZXJyKSB7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnFocC0+bG9jaywgZmxhZyk7Ci0JICAgICAgICByZXR1cm4gZXJyOworCQlyZXR1cm4gZXJyOwogCX0KIAl3cWUtPnNlbmQud3JpZC5pZDAuaGkgPSBxaHAtPndxLnNxX3dwdHI7CiAJc3FwID0gcWhwLT53cS5zcSArIFFfUFRSMklEWChxaHAtPndxLnNxX3dwdHIsIHFocC0+d3Euc3Ffc2l6ZV9sb2cyKTsKQEAgLTQ0MSwxMCArNTg0LDkgQEAKIAlzcXAtPnNpZ25hbGVkID0gKG13X2JpbmQtPnNlbmRfZmxhZ3MgJiBJQl9TRU5EX1NJR05BTEVEKTsKIAl3cWUtPmJpbmQubXJfcGJsX2FkZHIgPSBjcHVfdG9fYmUzMihwYmxfYWRkcik7CiAJd3FlLT5iaW5kLm1yX3BhZ2VzeiA9IHBhZ2Vfc2l6ZTsKLQl3cWUtPmZsaXRbVDNfU1FfQ09PS0lFX0ZMSVRdID0gbXdfYmluZC0+d3JfaWQ7CiAJYnVpbGRfZndfcml3cmgoKHZvaWQgKil3cWUsIFQzX1dSX0JJTkQsIHQzX3dyX2ZsYWdzLAogCQkgICAgICAgUV9HRU5CSVQocWhwLT53cS53cHRyLCBxaHAtPndxLnNpemVfbG9nMiksIDAsCi0JCQkgICAgICAgIHNpemVvZihzdHJ1Y3QgdDNfYmluZF9td193cikgPj4gMyk7CisJCSAgICAgICBzaXplb2Yoc3RydWN0IHQzX2JpbmRfbXdfd3IpID4+IDMsIFQzX1NPUEVPUCk7CiAJKysocWhwLT53cS53cHRyKTsKIAkrKyhxaHAtPndxLnNxX3dwdHIpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnFocC0+bG9jaywgZmxhZyk7CkBAIC03NTgsNyArOTAwLDggQEAKIAlpbml0X2F0dHIucXBfZG1hX3NpemUgPSAoMVVMIDw8IHFocC0+d3Euc2l6ZV9sb2cyKTsKIAlpbml0X2F0dHIucnFlX2NvdW50ID0gaXdjaF9ycWVzX3Bvc3RlZChxaHApOwogCWluaXRfYXR0ci5mbGFncyA9IHFocC0+YXR0ci5tcGFfYXR0ci5pbml0aWF0b3IgPyBNUEFfSU5JVElBVE9SIDogMDsKLQlpbml0X2F0dHIuZmxhZ3MgfD0gY2FwYWJsZShDQVBfTkVUX0JJTkRfU0VSVklDRSkgPyBQUklWX1FQIDogMDsKKwlpZiAoIXFocC0+aWJxcC51b2JqZWN0KQorCQlpbml0X2F0dHIuZmxhZ3MgfD0gUFJJVl9RUDsKIAlpZiAocGVlcjJwZWVyKSB7CiAJCWluaXRfYXR0ci5ydHJfdHlwZSA9IFJUUl9SRUFEOwogCQlpZiAoaW5pdF9hdHRyLm9yZCA9PSAwICYmIHFocC0+YXR0ci5tcGFfYXR0ci5pbml0aWF0b3IpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX2lycS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9pcnEuYwppbmRleCBjZTFhYjA1Li4wNzkyZDkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX2lycS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfaXJxLmMKQEAgLTUzMSw3ICs1MzEsNyBAQAogewogCXN0cnVjdCBlaGNhX2VxICplcSA9ICZzaGNhLT5lcTsKIAlzdHJ1Y3QgZWhjYV9lcWVfY2FjaGVfZW50cnkgKmVxZV9jYWNoZSA9IGVxLT5lcWVfY2FjaGU7Ci0JdTY0IGVxZV92YWx1ZTsKKwl1NjQgZXFlX3ZhbHVlLCByZXQ7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgZXFlX2NudCwgaTsKIAlpbnQgZXFfZW1wdHkgPSAwOwpAQCAtNTgzLDggKzU4MywxMyBAQAogCQkJZWhjYV9kYmcoJnNoY2EtPmliX2RldmljZSwKIAkJCQkgIk5vIGVxZSBmb3VuZCBmb3IgaXJxIGV2ZW50Iik7CiAJCWdvdG8gdW5sb2NrX2lycV9zcGlubG9jazsKLQl9IGVsc2UgaWYgKCFpc19pcnEpCisJfSBlbHNlIGlmICghaXNfaXJxKSB7CisJCXJldCA9IGhpcHpfaF9lb2koZXEtPmlzdCk7CisJCWlmIChyZXQgIT0gSF9TVUNDRVNTKQorCQkJZWhjYV9lcnIoJnNoY2EtPmliX2RldmljZSwKKwkJCQkgImJhZCByZXR1cm4gY29kZSBFT0kgLXJjID0gJWxkXG4iLCByZXQpOwogCQllaGNhX2RiZygmc2hjYS0+aWJfZGV2aWNlLCAiZGVhZG1hbiBmb3VuZCAleCBlcWUiLCBlcWVfY250KTsKKwl9CiAJaWYgKHVubGlrZWx5KGVxZV9jbnQgPT0gRUhDQV9FUUVfQ0FDSEVfU0laRSkpCiAJCWVoY2FfZGJnKCZzaGNhLT5pYl9kZXZpY2UsICJ0b28gbWFueSBlcWVzIGZvciBvbmUgaXJxIGV2ZW50Iik7CiAJLyogZW5hYmxlIGlycSBmb3IgbmV3IHBhY2tldHMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9tYWluLmMKaW5kZXggNDgyMTAzZS4uNTk4ODQ0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9tYWluLmMKQEAgLTkyMyw2ICs5MjMsNyBAQAogCX0sCiAJe30sCiB9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZWhjYV9kZXZpY2VfdGFibGUpOwogCiBzdGF0aWMgc3RydWN0IG9mX3BsYXRmb3JtX2RyaXZlciBlaGNhX2RyaXZlciA9IHsKIAkubmFtZSAgICAgICAgPSAiZWhjYSIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX3JlcXMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfcmVxcy5jCmluZGV4IGYwOTNiMDAuLmRkOWJjNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfcmVxcy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfcmVxcy5jCkBAIC01NDQsOCArNTQ0LDE2IEBACiAJCSAgIHN0cnVjdCBpYl9yZWN2X3dyICpyZWN2X3dyLAogCQkgICBzdHJ1Y3QgaWJfcmVjdl93ciAqKmJhZF9yZWN2X3dyKQogewotCXJldHVybiBpbnRlcm5hbF9wb3N0X3JlY3YoY29udGFpbmVyX29mKHFwLCBzdHJ1Y3QgZWhjYV9xcCwgaWJfcXApLAotCQkJCSAgcXAtPmRldmljZSwgcmVjdl93ciwgYmFkX3JlY3Zfd3IpOworCXN0cnVjdCBlaGNhX3FwICpteV9xcCA9IGNvbnRhaW5lcl9vZihxcCwgc3RydWN0IGVoY2FfcXAsIGliX3FwKTsKKworCS8qIFJlamVjdCBXUiBpZiBRUCBpcyBpbiBSRVNFVCBzdGF0ZSAqLworCWlmICh1bmxpa2VseShteV9xcC0+c3RhdGUgPT0gSUJfUVBTX1JFU0VUKSkgeworCQllaGNhX2VycihxcC0+ZGV2aWNlLCAiSW52YWxpZCBRUCBzdGF0ZSAgcXBfc3RhdGU9JWQgcXBuPSV4IiwKKwkJCSBteV9xcC0+c3RhdGUsIHFwLT5xcF9udW0pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gaW50ZXJuYWxfcG9zdF9yZWN2KG15X3FwLCBxcC0+ZGV2aWNlLCByZWN2X3dyLCBiYWRfcmVjdl93cik7CiB9CiAKIGludCBlaGNhX3Bvc3Rfc3JxX3JlY3Yoc3RydWN0IGliX3NycSAqc3JxLApAQCAtNjgxLDcgKzY4OSw3IEBACiAJd2MtPmRsaWRfcGF0aF9iaXRzID0gY3FlLT5kbGlkOwogCXdjLT5zcmNfcXAgPSBjcWUtPnJlbW90ZV9xcF9udW1iZXI7CiAJd2MtPndjX2ZsYWdzID0gY3FlLT53X2NvbXBsZXRpb25fZmxhZ3M7Ci0Jd2MtPmltbV9kYXRhID0gY3B1X3RvX2JlMzIoY3FlLT5pbW1lZGlhdGVfZGF0YSk7CisJd2MtPmV4LmltbV9kYXRhID0gY3B1X3RvX2JlMzIoY3FlLT5pbW1lZGlhdGVfZGF0YSk7CiAJd2MtPnNsID0gY3FlLT5zZXJ2aWNlX2xldmVsOwogCiBwb2xsX2NxX29uZV9leGl0MDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2hjcF9pZi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvaGNwX2lmLmMKaW5kZXggNTI0NWUxMy4uNDE1ZDNhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvaGNwX2lmLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvaGNwX2lmLmMKQEAgLTkzMywzICs5MzMsMTMgQEAKIAkJCQkgICAgICAgcl9jYiwKIAkJCQkgICAgICAgMCwgMCwgMCwgMCk7CiB9CisKK3U2NCBoaXB6X2hfZW9pKGludCBpcnEpCit7CisJdW5zaWduZWQgbG9uZyB4aXJyOworCisJaW9zeW5jKCk7CisJeGlyciA9ICgweGZmVUxMIDw8IDI0KSB8IGlycTsKKworCXJldHVybiBwbHBhcl9oY2FsbF9ub3JldHMoSF9FT0ksIHhpcnIpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvaGNwX2lmLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9oY3BfaWYuaAppbmRleCA2MGNlMDJiLi4yYzNjNmUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9oY3BfaWYuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9oY3BfaWYuaApAQCAtMjYwLDUgKzI2MCw2IEBACiAJCSAgICAgIGNvbnN0IHU2NCByZXNzb3VyY2VfaGFuZGxlLAogCQkgICAgICB2b2lkICpyYmxvY2ssCiAJCSAgICAgIHVuc2lnbmVkIGxvbmcgKmJ5dGVfY291bnQpOwordTY0IGhpcHpfaF9lb2koaW50IGlycSk7CiAKICNlbmRpZiAvKiBfX0hDUF9JRl9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9jcS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2NxLmMKaW5kZXggYTAzYmQyOC4uZDM4NWU0MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9jcS5jCkBAIC04Miw3ICs4Miw3IEBACiAJCXdjLT51cXVldWVbaGVhZF0ub3Bjb2RlID0gZW50cnktPm9wY29kZTsKIAkJd2MtPnVxdWV1ZVtoZWFkXS52ZW5kb3JfZXJyID0gZW50cnktPnZlbmRvcl9lcnI7CiAJCXdjLT51cXVldWVbaGVhZF0uYnl0ZV9sZW4gPSBlbnRyeS0+Ynl0ZV9sZW47Ci0JCXdjLT51cXVldWVbaGVhZF0uaW1tX2RhdGEgPSAoX191MzIgX19mb3JjZSllbnRyeS0+aW1tX2RhdGE7CisJCXdjLT51cXVldWVbaGVhZF0uZXguaW1tX2RhdGEgPSAoX191MzIgX19mb3JjZSkgZW50cnktPmV4LmltbV9kYXRhOwogCQl3Yy0+dXF1ZXVlW2hlYWRdLnFwX251bSA9IGVudHJ5LT5xcC0+cXBfbnVtOwogCQl3Yy0+dXF1ZXVlW2hlYWRdLnNyY19xcCA9IGVudHJ5LT5zcmNfcXA7CiAJCXdjLT51cXVldWVbaGVhZF0ud2NfZmxhZ3MgPSBlbnRyeS0+d2NfZmxhZ3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfZmlsZV9vcHMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9maWxlX29wcy5jCmluZGV4IGI0NzJiMTUuLjM1ZjMwMWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9maWxlX29wcy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9maWxlX29wcy5jCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KIAogI2luY2x1ZGUgImlwYXRoX2tlcm5lbC5oIgpAQCAtMTgxNSw2ICsxODE2LDcgQEAKIHN0YXRpYyBpbnQgaXBhdGhfb3BlbihzdHJ1Y3QgaW5vZGUgKmluLCBzdHJ1Y3QgZmlsZSAqZnApCiB7CiAJLyogVGhlIHJlYWwgd29yayBpcyBwZXJmb3JtZWQgbGF0ZXIgaW4gaXBhdGhfYXNzaWduX3BvcnQoKSAqLworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJZnAtPnByaXZhdGVfZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBpcGF0aF9maWxlZGF0YSksIEdGUF9LRVJORUwpOwogCXJldHVybiBmcC0+cHJpdmF0ZV9kYXRhID8gMCA6IC1FTk9NRU07CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfaWJhNzIyMC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2liYTcyMjAuYwppbmRleCA4ZWVlNzgzLi5mYjcwNzEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfaWJhNzIyMC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9pYmE3MjIwLmMKQEAgLTIyMjgsOCArMjIyOCw4IEBACiAJCTB4ZmZmZmZmZmYsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKIAkJMHg0MDAwMDAwMSwgMHgxMzg4LCAweDE1ZSwgLyogcmVzdCAwJ3MgKi8KIAkJfTsKLQlkY250ID0gc2l6ZW9mKG1hZHBheWxvYWRfc3RhcnQpL3NpemVvZihtYWRwYXlsb2FkX3N0YXJ0WzBdKTsKLQloY250ID0gc2l6ZW9mKGhkcikvc2l6ZW9mKGhkclswXSk7CisJZGNudCA9IEFSUkFZX1NJWkUobWFkcGF5bG9hZF9zdGFydCk7CisJaGNudCA9IEFSUkFZX1NJWkUoaGRyKTsKIAlpZiAoIXN3YXBwZWQpIHsKIAkJLyogZm9yIG1haW50YWluYWJpbGl0eSwgZG8gaXQgYXQgcnVudGltZSAqLwogCQlmb3IgKGkgPSAwOyBpIDwgaGNudDsgaSsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfbWFkLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfbWFkLmMKaW5kZXggNWY5MzE1ZC4uYmU0ZmM5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX21hZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9tYWQuYwpAQCAtMTExLDkgKzExMSw5IEBACiAJbmlwLT5yZXZpc2lvbiA9IGNwdV90b19iZTMyKChtYWpyZXYgPDwgMTYpIHwgbWlucmV2KTsKIAluaXAtPmxvY2FsX3BvcnRfbnVtID0gcG9ydDsKIAl2ZW5kb3IgPSBkZC0+aXBhdGhfdmVuZG9yaWQ7Ci0JbmlwLT52ZW5kb3JfaWRbMF0gPSAwOwotCW5pcC0+dmVuZG9yX2lkWzFdID0gdmVuZG9yID4+IDg7Ci0JbmlwLT52ZW5kb3JfaWRbMl0gPSB2ZW5kb3I7CisJbmlwLT52ZW5kb3JfaWRbMF0gPSBJUEFUSF9TUkNfT1VJXzE7CisJbmlwLT52ZW5kb3JfaWRbMV0gPSBJUEFUSF9TUkNfT1VJXzI7CisJbmlwLT52ZW5kb3JfaWRbMl0gPSBJUEFUSF9TUkNfT1VJXzM7CiAKIAlyZXR1cm4gcmVwbHkoc21wKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9yYy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3JjLmMKaW5kZXggMTA4ZGY2Ni4uOTc3MTA1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3JjLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3JjLmMKQEAgLTE3MDMsMTEgKzE3MDMsMTEgQEAKIAljYXNlIE9QKFNFTkRfTEFTVF9XSVRIX0lNTUVESUFURSk6CiAJc2VuZF9sYXN0X2ltbToKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UgewogCQkJLyogSW1tZWRpYXRlIGRhdGEgY29tZXMgYWZ0ZXIgQlRIICovCi0JCQl3Yy5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CiAJCX0KIAkJaGRyc2l6ZSArPSA0OwogCQl3Yy53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3J1Yy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3J1Yy5jCmluZGV4IGE0YjU1MjEuLmFmMDUxZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9ydWMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfcnVjLmMKQEAgLTMzMSw3ICszMzEsNyBAQAogCXN3aXRjaCAod3FlLT53ci5vcGNvZGUpIHsKIAljYXNlIElCX1dSX1NFTkRfV0lUSF9JTU06CiAJCXdjLndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCXdjLmltbV9kYXRhID0gd3FlLT53ci5leC5pbW1fZGF0YTsKKwkJd2MuZXguaW1tX2RhdGEgPSB3cWUtPndyLmV4LmltbV9kYXRhOwogCQkvKiBGQUxMVEhST1VHSCAqLwogCWNhc2UgSUJfV1JfU0VORDoKIAkJaWYgKCFpcGF0aF9nZXRfcndxZShxcCwgMCkpCkBAIC0zNDIsNyArMzQyLDcgQEAKIAkJaWYgKHVubGlrZWx5KCEocXAtPnFwX2FjY2Vzc19mbGFncyAmIElCX0FDQ0VTU19SRU1PVEVfV1JJVEUpKSkKIAkJCWdvdG8gaW52X2VycjsKIAkJd2Mud2NfZmxhZ3MgPSBJQl9XQ19XSVRIX0lNTTsKLQkJd2MuaW1tX2RhdGEgPSB3cWUtPndyLmV4LmltbV9kYXRhOworCQl3Yy5leC5pbW1fZGF0YSA9IHdxZS0+d3IuZXguaW1tX2RhdGE7CiAJCWlmICghaXBhdGhfZ2V0X3J3cWUocXAsIDEpKQogCQkJZ290byBybnJfbmFrOwogCQkvKiBGQUxMVEhST1VHSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3VjLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWMuYwppbmRleCAwNTk2ZWMxLi44MmNjNTg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWMuYwpAQCAtMzc5LDExICszNzksMTEgQEAKIAljYXNlIE9QKFNFTkRfTEFTVF9XSVRIX0lNTUVESUFURSk6CiAJc2VuZF9sYXN0X2ltbToKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UgewogCQkJLyogSW1tZWRpYXRlIGRhdGEgY29tZXMgYWZ0ZXIgQlRIICovCi0JCQl3Yy5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CiAJCX0KIAkJaGRyc2l6ZSArPSA0OwogCQl3Yy53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwpAQCAtNDgzLDExICs0ODMsMTEgQEAKIAljYXNlIE9QKFJETUFfV1JJVEVfTEFTVF9XSVRIX0lNTUVESUFURSk6CiAJcmRtYV9sYXN0X2ltbToKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UgewogCQkJLyogSW1tZWRpYXRlIGRhdGEgY29tZXMgYWZ0ZXIgQlRIICovCi0JCQl3Yy5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CiAJCX0KIAkJaGRyc2l6ZSArPSA0OwogCQl3Yy53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3VkLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWQuYwppbmRleCA3N2NhOGNhLi4zNmFhMjQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWQuYwpAQCAtOTYsNyArOTYsNyBAQAogCiAJaWYgKHN3cWUtPndyLm9wY29kZSA9PSBJQl9XUl9TRU5EX1dJVEhfSU1NKSB7CiAJCXdjLndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCXdjLmltbV9kYXRhID0gc3dxZS0+d3IuZXguaW1tX2RhdGE7CisJCXdjLmV4LmltbV9kYXRhID0gc3dxZS0+d3IuZXguaW1tX2RhdGE7CiAJfQogCiAJLyoKQEAgLTQ5MiwxNCArNDkyLDE0IEBACiAJaWYgKHFwLT5pYnFwLnFwX251bSA+IDEgJiYKIAkgICAgb3Bjb2RlID09IElCX09QQ09ERV9VRF9TRU5EX09OTFlfV0lUSF9JTU1FRElBVEUpIHsKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UKLQkJCXdjLmltbV9kYXRhID0gb2hkci0+dS51ZC5pbW1fZGF0YTsKKwkJCXdjLmV4LmltbV9kYXRhID0gb2hkci0+dS51ZC5pbW1fZGF0YTsKIAkJd2Mud2NfZmxhZ3MgPSBJQl9XQ19XSVRIX0lNTTsKIAkJaGRyc2l6ZSArPSBzaXplb2YodTMyKTsKIAl9IGVsc2UgaWYgKG9wY29kZSA9PSBJQl9PUENPREVfVURfU0VORF9PTkxZKSB7Ci0JCXdjLmltbV9kYXRhID0gMDsKKwkJd2MuZXguaW1tX2RhdGEgPSAwOwogCQl3Yy53Y19mbGFncyA9IDA7CiAJfSBlbHNlIHsKIAkJZGV2LT5uX3BrdF9kcm9wcysrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdmVyYnMuYwppbmRleCA3Nzc5MTY1Li45ZTIzYWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdmVyYnMuYwpAQCAtMTQ5Nyw3ICsxNDk3LDggQEAKIAkJSUJfREVWSUNFX1NZU19JTUFHRV9HVUlEIHwgSUJfREVWSUNFX1JDX1JOUl9OQUtfR0VOIHwKIAkJSUJfREVWSUNFX1BPUlRfQUNUSVZFX0VWRU5UIHwgSUJfREVWSUNFX1NSUV9SRVNJWkU7CiAJcHJvcHMtPnBhZ2Vfc2l6ZV9jYXAgPSBQQUdFX1NJWkU7Ci0JcHJvcHMtPnZlbmRvcl9pZCA9IGRldi0+ZGQtPmlwYXRoX3ZlbmRvcmlkOworCXByb3BzLT52ZW5kb3JfaWQgPQorCQlJUEFUSF9TUkNfT1VJXzEgPDwgMTYgfCBJUEFUSF9TUkNfT1VJXzIgPDwgOCB8IElQQVRIX1NSQ19PVUlfMzsKIAlwcm9wcy0+dmVuZG9yX3BhcnRfaWQgPSBkZXYtPmRkLT5pcGF0aF9kZXZpY2VpZDsKIAlwcm9wcy0+aHdfdmVyID0gZGV2LT5kZC0+aXBhdGhfcGNpcmV2OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9jcS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvY3EuYwppbmRleCA0NTIxMzE5Li4yOTlmMjA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L2NxLmMKQEAgLTY2MywxOCArNjYzLDE4IEBACiAKIAkJc3dpdGNoIChjcWUtPm93bmVyX3NyX29wY29kZSAmIE1MWDRfQ1FFX09QQ09ERV9NQVNLKSB7CiAJCWNhc2UgTUxYNF9SRUNWX09QQ09ERV9SRE1BX1dSSVRFX0lNTToKLQkJCXdjLT5vcGNvZGUgICA9IElCX1dDX1JFQ1ZfUkRNQV9XSVRIX0lNTTsKLQkJCXdjLT53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwotCQkJd2MtPmltbV9kYXRhID0gY3FlLT5pbW1lZF9yc3NfaW52YWxpZDsKKwkJCXdjLT5vcGNvZGUJPSBJQl9XQ19SRUNWX1JETUFfV0lUSF9JTU07CisJCQl3Yy0+d2NfZmxhZ3MJPSBJQl9XQ19XSVRIX0lNTTsKKwkJCXdjLT5leC5pbW1fZGF0YSA9IGNxZS0+aW1tZWRfcnNzX2ludmFsaWQ7CiAJCQlicmVhazsKIAkJY2FzZSBNTFg0X1JFQ1ZfT1BDT0RFX1NFTkQ6CiAJCQl3Yy0+b3Bjb2RlICAgPSBJQl9XQ19SRUNWOwogCQkJd2MtPndjX2ZsYWdzID0gMDsKIAkJCWJyZWFrOwogCQljYXNlIE1MWDRfUkVDVl9PUENPREVfU0VORF9JTU06Ci0JCQl3Yy0+b3Bjb2RlICAgPSBJQl9XQ19SRUNWOwotCQkJd2MtPndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCQl3Yy0+aW1tX2RhdGEgPSBjcWUtPmltbWVkX3Jzc19pbnZhbGlkOworCQkJd2MtPm9wY29kZQk9IElCX1dDX1JFQ1Y7CisJCQl3Yy0+d2NfZmxhZ3MJPSBJQl9XQ19XSVRIX0lNTTsKKwkJCXdjLT5leC5pbW1fZGF0YSA9IGNxZS0+aW1tZWRfcnNzX2ludmFsaWQ7CiAJCQlicmVhazsKIAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCmluZGV4IDRjMWU3MmYuLmNkY2EzYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCkBAIC0yNTUsNyArMjU1LDggQEAKIAkJCXJldHVybiBJQl9NQURfUkVTVUxUX1NVQ0NFU1M7CiAJfSBlbHNlIGlmIChpbl9tYWQtPm1hZF9oZHIubWdtdF9jbGFzcyA9PSBJQl9NR01UX0NMQVNTX1BFUkZfTUdNVCB8fAogCQkgICBpbl9tYWQtPm1hZF9oZHIubWdtdF9jbGFzcyA9PSBNTFg0X0lCX1ZFTkRPUl9DTEFTUzEgICB8fAotCQkgICBpbl9tYWQtPm1hZF9oZHIubWdtdF9jbGFzcyA9PSBNTFg0X0lCX1ZFTkRPUl9DTEFTUzIpIHsKKwkJICAgaW5fbWFkLT5tYWRfaGRyLm1nbXRfY2xhc3MgPT0gTUxYNF9JQl9WRU5ET1JfQ0xBU1MyICAgfHwKKwkJICAgaW5fbWFkLT5tYWRfaGRyLm1nbXRfY2xhc3MgPT0gSUJfTUdNVF9DTEFTU19DT05HX01HTVQpIHsKIAkJaWYgKGluX21hZC0+bWFkX2hkci5tZXRob2QgICE9IElCX01HTVRfTUVUSE9EX0dFVCAmJgogCQkgICAgaW5fbWFkLT5tYWRfaGRyLm1ldGhvZCAgIT0gSUJfTUdNVF9NRVRIT0RfU0VUKQogCQkJcmV0dXJuIElCX01BRF9SRVNVTFRfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYwppbmRleCA0ZDYxZTMyLi5iY2Y1MDY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jCkBAIC05MCw3ICs5MCw4IEBACiAJcHJvcHMtPmRldmljZV9jYXBfZmxhZ3MgICAgPSBJQl9ERVZJQ0VfQ0hBTkdFX1BIWV9QT1JUIHwKIAkJSUJfREVWSUNFX1BPUlRfQUNUSVZFX0VWRU5UCQl8CiAJCUlCX0RFVklDRV9TWVNfSU1BR0VfR1VJRAkJfAotCQlJQl9ERVZJQ0VfUkNfUk5SX05BS19HRU47CisJCUlCX0RFVklDRV9SQ19STlJfTkFLX0dFTgkJfAorCQlJQl9ERVZJQ0VfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLOwogCWlmIChkZXYtPmRldi0+Y2Fwcy5mbGFncyAmIE1MWDRfREVWX0NBUF9GTEFHX0JBRF9QS0VZX0NOVFIpCiAJCXByb3BzLT5kZXZpY2VfY2FwX2ZsYWdzIHw9IElCX0RFVklDRV9CQURfUEtFWV9DTlRSOwogCWlmIChkZXYtPmRldi0+Y2Fwcy5mbGFncyAmIE1MWDRfREVWX0NBUF9GTEFHX0JBRF9RS0VZX0NOVFIpCkBAIC00MzcsNyArNDM4LDkgQEAKIHN0YXRpYyBpbnQgbWx4NF9pYl9tY2dfYXR0YWNoKHN0cnVjdCBpYl9xcCAqaWJxcCwgdW5pb24gaWJfZ2lkICpnaWQsIHUxNiBsaWQpCiB7CiAJcmV0dXJuIG1seDRfbXVsdGljYXN0X2F0dGFjaCh0b19tZGV2KGlicXAtPmRldmljZSktPmRldiwKLQkJCQkgICAgICZ0b19tcXAoaWJxcCktPm1xcCwgZ2lkLT5yYXcpOworCQkJCSAgICAgJnRvX21xcChpYnFwKS0+bXFwLCBnaWQtPnJhdywKKwkJCQkgICAgICEhKHRvX21xcChpYnFwKS0+ZmxhZ3MgJgorCQkJCQlNTFg0X0lCX1FQX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSykpOwogfQogCiBzdGF0aWMgaW50IG1seDRfaWJfbWNnX2RldGFjaChzdHJ1Y3QgaWJfcXAgKmlicXAsIHVuaW9uIGliX2dpZCAqZ2lkLCB1MTYgbGlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWx4NF9pYi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWx4NF9pYi5oCmluZGV4IDVjZjk5NDcuLmM0Y2Y1YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21seDRfaWIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tbHg0X2liLmgKQEAgLTEwMSw3ICsxMDEsOCBAQAogfTsKIAogZW51bSBtbHg0X2liX3FwX2ZsYWdzIHsKLQlNTFg0X0lCX1FQX0xTTwkJPSAxIDw8IDAKKwlNTFg0X0lCX1FQX0xTTwkJCQk9IDEgPDwgMCwKKwlNTFg0X0lCX1FQX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSwk9IDEgPDwgMSwKIH07CiAKIHN0cnVjdCBtbHg0X2liX3FwIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L3FwLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9xcC5jCmluZGV4IGE4MGRmMjIuLjg5ZWI2Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L3FwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvcXAuYwpAQCAtMTI5LDkgKzEyOSwxMCBAQAogCWludCBpbmQ7CiAJdm9pZCAqYnVmOwogCV9fYmUzMiBzdGFtcDsKKwlzdHJ1Y3QgbWx4NF93cWVfY3RybF9zZWcgKmN0cmw7CiAKLQlzID0gcm91bmR1cChzaXplLCAxVSA8PCBxcC0+c3Eud3FlX3NoaWZ0KTsKIAlpZiAocXAtPnNxX21heF93cWVzX3Blcl93ciA+IDEpIHsKKwkJcyA9IHJvdW5kdXAoc2l6ZSwgMVUgPDwgcXAtPnNxLndxZV9zaGlmdCk7CiAJCWZvciAoaSA9IDA7IGkgPCBzOyBpICs9IDY0KSB7CiAJCQlpbmQgPSAoaSA+PiBxcC0+c3Eud3FlX3NoaWZ0KSArIG47CiAJCQlzdGFtcCA9IGluZCAmIHFwLT5zcS53cWVfY250ID8gY3B1X3RvX2JlMzIoMHg3ZmZmZmZmZikgOgpAQCAtMTQxLDcgKzE0Miw4IEBACiAJCQkqd3FlID0gc3RhbXA7CiAJCX0KIAl9IGVsc2UgewotCQlidWYgPSBnZXRfc2VuZF93cWUocXAsIG4gJiAocXAtPnNxLndxZV9jbnQgLSAxKSk7CisJCWN0cmwgPSBidWYgPSBnZXRfc2VuZF93cWUocXAsIG4gJiAocXAtPnNxLndxZV9jbnQgLSAxKSk7CisJCXMgPSAoY3RybC0+ZmVuY2Vfc2l6ZSAmIDB4M2YpIDw8IDQ7CiAJCWZvciAoaSA9IDY0OyBpIDwgczsgaSArPSA2NCkgewogCQkJd3FlID0gYnVmICsgaTsKIAkJCSp3cWUgPSBjcHVfdG9fYmUzMigweGZmZmZmZmZmKTsKQEAgLTQ1MiwxOSArNDU0LDggQEAKIAlzcGluX2xvY2tfaW5pdCgmcXAtPnJxLmxvY2spOwogCiAJcXAtPnN0YXRlCSA9IElCX1FQU19SRVNFVDsKLQlxcC0+YXRvbWljX3JkX2VuID0gMDsKLQlxcC0+cmVzcF9kZXB0aCAgID0gMDsKLQotCXFwLT5ycS5oZWFkCSAgICA9IDA7Ci0JcXAtPnJxLnRhaWwJICAgID0gMDsKLQlxcC0+c3EuaGVhZAkgICAgPSAwOwotCXFwLT5zcS50YWlsCSAgICA9IDA7Ci0JcXAtPnNxX25leHRfd3FlICAgICA9IDA7Ci0KIAlpZiAoaW5pdF9hdHRyLT5zcV9zaWdfdHlwZSA9PSBJQl9TSUdOQUxfQUxMX1dSKQogCQlxcC0+c3Ffc2lnbmFsX2JpdHMgPSBjcHVfdG9fYmUzMihNTFg0X1dRRV9DVFJMX0NRX1VQREFURSk7Ci0JZWxzZQotCQlxcC0+c3Ffc2lnbmFsX2JpdHMgPSAwOwogCiAJZXJyID0gc2V0X3JxX3NpemUoZGV2LCAmaW5pdF9hdHRyLT5jYXAsICEhcGQtPnVvYmplY3QsICEhaW5pdF9hdHRyLT5zcnEsIHFwKTsKIAlpZiAoZXJyKQpAQCAtNTA5LDYgKzUwMCw5IEBACiAJfSBlbHNlIHsKIAkJcXAtPnNxX25vX3ByZWZldGNoID0gMDsKIAorCQlpZiAoaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgJiBJQl9RUF9DUkVBVEVfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLKQorCQkJcXAtPmZsYWdzIHw9IE1MWDRfSUJfUVBfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLOworCiAJCWlmIChpbml0X2F0dHItPmNyZWF0ZV9mbGFncyAmIElCX1FQX0NSRUFURV9JUE9JQl9VRF9MU08pCiAJCQlxcC0+ZmxhZ3MgfD0gTUxYNF9JQl9RUF9MU087CiAKQEAgLTY4MiwxMCArNjc2LDE1IEBACiAJc3RydWN0IG1seDRfaWJfcXAgKnFwOwogCWludCBlcnI7CiAKLQkvKiBXZSBvbmx5IHN1cHBvcnQgTFNPLCBhbmQgb25seSBmb3Iga2VybmVsIFVEIFFQcy4gKi8KLQlpZiAoaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgJiB+SUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTykKKwkvKgorCSAqIFdlIG9ubHkgc3VwcG9ydCBMU08gYW5kIG11bHRpY2FzdCBsb29wYmFjayBibG9ja2luZywgYW5kCisJICogb25seSBmb3Iga2VybmVsIFVEIFFQcy4KKwkgKi8KKwlpZiAoaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgJiB+KElCX1FQX0NSRUFURV9JUE9JQl9VRF9MU08gfAorCQkJCQlJQl9RUF9DUkVBVEVfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci0JaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYgSUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTyAmJgorCisJaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYmCiAJICAgIChwZC0+dW9iamVjdCB8fCBpbml0X2F0dHItPnFwX3R5cGUgIT0gSUJfUVBUX1VEKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKQEAgLTY5NCw3ICs2OTMsNyBAQAogCWNhc2UgSUJfUVBUX1VDOgogCWNhc2UgSUJfUVBUX1VEOgogCXsKLQkJcXAgPSBrbWFsbG9jKHNpemVvZiAqcXAsIEdGUF9LRVJORUwpOworCQlxcCA9IGt6YWxsb2Moc2l6ZW9mICpxcCwgR0ZQX0tFUk5FTCk7CiAJCWlmICghcXApCiAJCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIApAQCAtNzE1LDcgKzcxNCw3IEBACiAJCWlmIChwZC0+dW9iamVjdCkKIAkJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCi0JCXNxcCA9IGttYWxsb2Moc2l6ZW9mICpzcXAsIEdGUF9LRVJORUwpOworCQlzcXAgPSBremFsbG9jKHNpemVvZiAqc3FwLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFzcXApCiAJCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIApAQCAtOTA2LDcgKzkwNSw4IEBACiAJCQkgICAgICAgYXR0ci0+cGF0aF9tdHUpOwogCQkJZ290byBvdXQ7CiAJCX0KLQkJY29udGV4dC0+bXR1X21zZ21heCA9IChhdHRyLT5wYXRoX210dSA8PCA1KSB8IDMxOworCQljb250ZXh0LT5tdHVfbXNnbWF4ID0gKGF0dHItPnBhdGhfbXR1IDw8IDUpIHwKKwkJCWlsb2cyKGRldi0+ZGV2LT5jYXBzLm1heF9tc2dfc3opOwogCX0KIAogCWlmIChxcC0+cnEud3FlX2NudCkKQEAgLTEwNjMsNiArMTA2Myw4IEBACiAJCWZvciAoaSA9IDA7IGkgPCBxcC0+c3Eud3FlX2NudDsgKytpKSB7CiAJCQljdHJsID0gZ2V0X3NlbmRfd3FlKHFwLCBpKTsKIAkJCWN0cmwtPm93bmVyX29wY29kZSA9IGNwdV90b19iZTMyKDEgPDwgMzEpOworCQkJaWYgKHFwLT5zcV9tYXhfd3Flc19wZXJfd3IgPT0gMSkKKwkJCQljdHJsLT5mZW5jZV9zaXplID0gMSA8PCAocXAtPnNxLndxZV9zaGlmdCAtIDQpOwogCiAJCQlzdGFtcF9zZW5kX3dxZShxcCwgaSwgMSA8PCBxcC0+c3Eud3FlX3NoaWZ0KTsKIAkJfQpAQCAtMTEyNywyMyArMTEyOSw2IEBACiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBpYl9xcF9hdHRyIG1seDRfaWJfcXBfYXR0ciA9IHsgLnBvcnRfbnVtID0gMSB9Owotc3RhdGljIGNvbnN0IGludCBtbHg0X2liX3FwX2F0dHJfbWFza190YWJsZVtJQl9RUFRfVUQgKyAxXSA9IHsKLQkJW0lCX1FQVF9VRF0gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCQlJQl9RUF9QT1JUCQkJfAotCQkJCUlCX1FQX1FLRVkpLAotCQlbSUJfUVBUX1VDXSAgPSAoSUJfUVBfUEtFWV9JTkRFWAkJfAotCQkJCUlCX1FQX1BPUlQJCQl8Ci0JCQkJSUJfUVBfQUNDRVNTX0ZMQUdTKSwKLQkJW0lCX1FQVF9SQ10gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCQlJQl9RUF9QT1JUCQkJfAotCQkJCUlCX1FQX0FDQ0VTU19GTEFHUyksCi0JCVtJQl9RUFRfU01JXSA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQkJSUJfUVBfUUtFWSksCi0JCVtJQl9RUFRfR1NJXSA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQkJSUJfUVBfUUtFWSksCi19OwotCiBpbnQgbWx4NF9pYl9tb2RpZnlfcXAoc3RydWN0IGliX3FwICppYnFwLCBzdHJ1Y3QgaWJfcXBfYXR0ciAqYXR0ciwKIAkJICAgICAgaW50IGF0dHJfbWFzaywgc3RydWN0IGliX3VkYXRhICp1ZGF0YSkKIHsKQEAgLTExODYsMTUgKzExNzEsNiBAQAogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAoY3VyX3N0YXRlID09IElCX1FQU19SRVNFVCAmJiBuZXdfc3RhdGUgPT0gSUJfUVBTX0VSUikgewotCQllcnIgPSBfX21seDRfaWJfbW9kaWZ5X3FwKGlicXAsICZtbHg0X2liX3FwX2F0dHIsCi0JCQkJCSAgbWx4NF9pYl9xcF9hdHRyX21hc2tfdGFibGVbaWJxcC0+cXBfdHlwZV0sCi0JCQkJCSAgSUJfUVBTX1JFU0VULCBJQl9RUFNfSU5JVCk7Ci0JCWlmIChlcnIpCi0JCQlnb3RvIG91dDsKLQkJY3VyX3N0YXRlID0gSUJfUVBTX0lOSVQ7Ci0JfQotCiAJZXJyID0gX19tbHg0X2liX21vZGlmeV9xcChpYnFwLCBhdHRyLCBhdHRyX21hc2ssIGN1cl9zdGF0ZSwgbmV3X3N0YXRlKTsKIAogb3V0OgpAQCAtMTg2NSw2ICsxODQxLDEzIEBACiAKIAlxcF9pbml0X2F0dHItPmNhcAkgICAgID0gcXBfYXR0ci0+Y2FwOwogCisJcXBfaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgPSAwOworCWlmIChxcC0+ZmxhZ3MgJiBNTFg0X0lCX1FQX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSykKKwkJcXBfaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgfD0gSUJfUVBfQ1JFQVRFX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSzsKKworCWlmIChxcC0+ZmxhZ3MgJiBNTFg0X0lCX1FQX0xTTykKKwkJcXBfaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgfD0gSUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTzsKKwogb3V0OgogCW11dGV4X3VubG9jaygmcXAtPm11dGV4KTsKIAlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2FsbG9jYXRvci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2FsbG9jYXRvci5jCmluZGV4IGE3NjMwNjcuLmM1Y2NjMmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9hbGxvY2F0b3IuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfYWxsb2NhdG9yLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX2FsbG9jYXRvci5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9hdi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2F2LmMKaW5kZXggNGIxMTFhOC4uMzJmNmM2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2F2LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2F2LmMKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX2F2LmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jYXRhcy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NhdGFzLmMKaW5kZXggZTk0ODE1OC4uY2M0NDBmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NhdGFzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NhdGFzLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KQEAgLTEyOCw3ICsxMjYsNiBAQAogc3RhdGljIHZvaWQgcG9sbF9jYXRhcyh1bnNpZ25lZCBsb25nIGRldl9wdHIpCiB7CiAJc3RydWN0IG10aGNhX2RldiAqZGV2ID0gKHN0cnVjdCBtdGhjYV9kZXYgKikgZGV2X3B0cjsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IGRldi0+Y2F0YXNfZXJyLnNpemU7ICsraSkKQEAgLTEzNywxMyArMTM0LDggQEAKIAkJCXJldHVybjsKIAkJfQogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNhdGFzX2xvY2ssIGZsYWdzKTsKLQlpZiAoIWRldi0+Y2F0YXNfZXJyLnN0b3ApCi0JCW1vZF90aW1lcigmZGV2LT5jYXRhc19lcnIudGltZXIsCi0JCQkgIGppZmZpZXMgKyBNVEhDQV9DQVRBU19QT0xMX0lOVEVSVkFMKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjYXRhc19sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm47CisJbW9kX3RpbWVyKCZkZXYtPmNhdGFzX2Vyci50aW1lciwKKwkJICByb3VuZF9qaWZmaWVzKGppZmZpZXMgKyBNVEhDQV9DQVRBU19QT0xMX0lOVEVSVkFMKSk7CiB9CiAKIHZvaWQgbXRoY2Ffc3RhcnRfY2F0YXNfcG9sbChzdHJ1Y3QgbXRoY2FfZGV2ICpkZXYpCkBAIC0xNTEsNyArMTQzLDYgQEAKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAKIAlpbml0X3RpbWVyKCZkZXYtPmNhdGFzX2Vyci50aW1lcik7Ci0JZGV2LT5jYXRhc19lcnIuc3RvcCA9IDA7CiAJZGV2LT5jYXRhc19lcnIubWFwICA9IE5VTEw7CiAKIAlhZGRyID0gcGNpX3Jlc291cmNlX3N0YXJ0KGRldi0+cGRldiwgMCkgKwpAQCAtMTgyLDEwICsxNzMsNiBAQAogCiB2b2lkIG10aGNhX3N0b3BfY2F0YXNfcG9sbChzdHJ1Y3QgbXRoY2FfZGV2ICpkZXYpCiB7Ci0Jc3Bpbl9sb2NrX2lycSgmY2F0YXNfbG9jayk7Ci0JZGV2LT5jYXRhc19lcnIuc3RvcCA9IDE7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZjYXRhc19sb2NrKTsKLQogCWRlbF90aW1lcl9zeW5jKCZkZXYtPmNhdGFzX2Vyci50aW1lcik7CiAKIAlpZiAoZGV2LT5jYXRhc19lcnIubWFwKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmMKaW5kZXggNTRkMjMwZS4uYzMzZTFjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NtZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jbWQuYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfY21kLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmgKaW5kZXggODkyOGNhNC4uNmVmZDMyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NtZC5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jbWQuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfY21kLmggMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgTVRIQ0FfQ01EX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jb25maWdfcmVnLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY29uZmlnX3JlZy5oCmluZGV4IGFmYTU2YmYuLjc1NjcxZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jb25maWdfcmVnLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NvbmZpZ19yZWcuaApAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfY29uZmlnX3JlZy5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIE1USENBX0NPTkZJR19SRUdfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY3EuYwppbmRleCAyMDQwMWQyLi5kOWY0NzM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY3EuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY3EuYwpAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfY3EuYyAxMzY5IDIwMDQtMTItMjAgMTY6MTc6MDdaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KQEAgLTYyMiwxMyArNjIwLDEzIEBACiAJCWNhc2UgSUJfT1BDT0RFX1NFTkRfTEFTVF9XSVRIX0lNTUVESUFURToKIAkJY2FzZSBJQl9PUENPREVfU0VORF9PTkxZX1dJVEhfSU1NRURJQVRFOgogCQkJZW50cnktPndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCQllbnRyeS0+aW1tX2RhdGEgPSBjcWUtPmltbV9ldHlwZV9wa2V5X2VlYzsKKwkJCWVudHJ5LT5leC5pbW1fZGF0YSA9IGNxZS0+aW1tX2V0eXBlX3BrZXlfZWVjOwogCQkJZW50cnktPm9wY29kZSA9IElCX1dDX1JFQ1Y7CiAJCQlicmVhazsKIAkJY2FzZSBJQl9PUENPREVfUkRNQV9XUklURV9MQVNUX1dJVEhfSU1NRURJQVRFOgogCQljYXNlIElCX09QQ09ERV9SRE1BX1dSSVRFX09OTFlfV0lUSF9JTU1FRElBVEU6CiAJCQllbnRyeS0+d2NfZmxhZ3MgPSBJQl9XQ19XSVRIX0lNTTsKLQkJCWVudHJ5LT5pbW1fZGF0YSA9IGNxZS0+aW1tX2V0eXBlX3BrZXlfZWVjOworCQkJZW50cnktPmV4LmltbV9kYXRhID0gY3FlLT5pbW1fZXR5cGVfcGtleV9lZWM7CiAJCQllbnRyeS0+b3Bjb2RlID0gSUJfV0NfUkVDVl9SRE1BX1dJVEhfSU1NOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZGV2LmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZGV2LmgKaW5kZXggN2JjMzJmOC4uZWU0ZDA3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2Rldi5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9kZXYuaApAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfZGV2LmggMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgTVRIQ0FfREVWX0gKQEAgLTI3OSw3ICsyNzcsNiBAQAogc3RydWN0IG10aGNhX2NhdGFzX2VyciB7CiAJdTY0CQkJYWRkcjsKIAl1MzIgX19pb21lbQkgICAgICAgKm1hcDsKLQl1bnNpZ25lZCBsb25nCQlzdG9wOwogCXUzMgkJCXNpemU7CiAJc3RydWN0IHRpbWVyX2xpc3QJdGltZXI7CiAJc3RydWN0IGxpc3RfaGVhZAlsaXN0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2Rvb3JiZWxsLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZG9vcmJlbGwuaAppbmRleCBiMzc0ZGMzLi4xNGY1MWVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZG9vcmJlbGwuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZG9vcmJlbGwuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfZG9vcmJlbGwuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZXEuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9lcS5jCmluZGV4IDhiZGU3ZjkuLjRlMzZhYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9lcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9lcS5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9lcS5jIDEzODIgMjAwNC0xMi0yNCAwMjoyMTowMlogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWQuYwppbmRleCA4YjdlODNlLi42NDA0NDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWFkLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21hZC5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9tYWQuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWluLmMKaW5kZXggMjAwY2YxM2YuLmZiOWY5MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21haW4uYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfbWFpbi5jIDEzOTYgMjAwNC0xMi0yOCAwNDoxMDoyN1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWNnLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWNnLmMKaW5kZXggYThhZDA3Mi4uM2Y1Zjk0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21jZy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tY2cuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfbWNnLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWVtZnJlZS5jCmluZGV4IGQ1ODYyZTUuLjFmN2QxYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21lbWZyZWUuYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZCQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW0uaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWVtZnJlZS5oCmluZGV4IGExYWIwNjguLmRhOWI4ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21lbWZyZWUuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZCQKICAqLwogCiAjaWZuZGVmIE1USENBX01FTUZSRUVfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21yLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbXIuYwppbmRleCA4MjAyMDVkLi44NDg5YjFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbXIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbXIuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfbXIuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wZC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3BkLmMKaW5kZXggYzFlOTUwNy4uMjY2ZjE0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3BkLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3BkLmMKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3BkLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb2ZpbGUuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm9maWxlLmMKaW5kZXggNjA1YThkNS4uZDE2OGMyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb2ZpbGUuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvZmlsZS5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9wcm9maWxlLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm9maWxlLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvZmlsZS5oCmluZGV4IGU3NmNiNjIuLjYyYjAwOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm9maWxlLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb2ZpbGUuaApAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfcHJvZmlsZS5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIE1USENBX1BST0ZJTEVfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb3ZpZGVyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuYwppbmRleCBiZTM0Zjk5Li44N2FkODg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuYwpAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfcHJvdmlkZXIuYyA0ODU5IDIwMDYtMDEtMDkgMjE6NTU6MTBaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPHJkbWEvaWJfc21pLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm92aWRlci5oCmluZGV4IDkzNGJmOTUuLmM2MjFmODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm92aWRlci5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm92aWRlci5oCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9wcm92aWRlci5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIE1USENBX1BST1ZJREVSX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9xcC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3FwLmMKaW5kZXggMDlkYzM2MS4uZjUwODFiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3FwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3FwLmMKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3FwLmMgMTM1NSAyMDA0LTEyLTE3IDE1OjIzOjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KQEAgLTg1MCwyMyArODQ4LDYgQEAKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGliX3FwX2F0dHIgZHVtbXlfaW5pdF9hdHRyID0geyAucG9ydF9udW0gPSAxIH07Ci1zdGF0aWMgY29uc3QgaW50IGR1bW15X2luaXRfYXR0cl9tYXNrW10gPSB7Ci0JW0lCX1FQVF9VRF0gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCUlCX1FQX1BPUlQJCQl8Ci0JCQlJQl9RUF9RS0VZKSwKLQlbSUJfUVBUX1VDXSAgPSAoSUJfUVBfUEtFWV9JTkRFWAkJfAotCQkJSUJfUVBfUE9SVAkJCXwKLQkJCUlCX1FQX0FDQ0VTU19GTEFHUyksCi0JW0lCX1FQVF9SQ10gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCUlCX1FQX1BPUlQJCQl8Ci0JCQlJQl9RUF9BQ0NFU1NfRkxBR1MpLAotCVtJQl9RUFRfU01JXSA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQlJQl9RUF9RS0VZKSwKLQlbSUJfUVBUX0dTSV0gPSAoSUJfUVBfUEtFWV9JTkRFWAkJfAotCQkJSUJfUVBfUUtFWSksCi19OwotCiBpbnQgbXRoY2FfbW9kaWZ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwgc3RydWN0IGliX3FwX2F0dHIgKmF0dHIsIGludCBhdHRyX21hc2ssCiAJCSAgICBzdHJ1Y3QgaWJfdWRhdGEgKnVkYXRhKQogewpAQCAtOTI4LDE1ICs5MDksNiBAQAogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAoY3VyX3N0YXRlID09IElCX1FQU19SRVNFVCAmJiBuZXdfc3RhdGUgPT0gSUJfUVBTX0VSUikgewotCQllcnIgPSBfX210aGNhX21vZGlmeV9xcChpYnFwLCAmZHVtbXlfaW5pdF9hdHRyLAotCQkJCQlkdW1teV9pbml0X2F0dHJfbWFza1tpYnFwLT5xcF90eXBlXSwKLQkJCQkJSUJfUVBTX1JFU0VULCBJQl9RUFNfSU5JVCk7Ci0JCWlmIChlcnIpCi0JCQlnb3RvIG91dDsKLQkJY3VyX3N0YXRlID0gSUJfUVBTX0lOSVQ7Ci0JfQotCiAJZXJyID0gX19tdGhjYV9tb2RpZnlfcXAoaWJxcCwgYXR0ciwgYXR0cl9tYXNrLCBjdXJfc3RhdGUsIG5ld19zdGF0ZSk7CiAKIG91dDoKQEAgLTEyNzcsMTAgKzEyNDksMTAgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKgotCSAqIEZvciBNTFggdHJhbnNwb3J0IHdlIG5lZWQgMiBleHRyYSBTL0cgZW50cmllczoKKwkgKiBGb3IgTUxYIHRyYW5zcG9ydCB3ZSBuZWVkIDIgZXh0cmEgc2VuZCBnYXRoZXIgZW50cmllczoKIAkgKiBvbmUgZm9yIHRoZSBoZWFkZXIgYW5kIG9uZSBmb3IgdGhlIGNoZWNrc3VtIGF0IHRoZSBlbmQKIAkgKi8KLQlpZiAocXAtPnRyYW5zcG9ydCA9PSBNTFggJiYgY2FwLT5tYXhfcmVjdl9zZ2UgKyAyID4gZGV2LT5saW1pdHMubWF4X3NnKQorCWlmIChxcC0+dHJhbnNwb3J0ID09IE1MWCAmJiBjYXAtPm1heF9zZW5kX3NnZSArIDIgPiBkZXYtPmxpbWl0cy5tYXhfc2cpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKG10aGNhX2lzX21lbWZyZWUoZGV2KSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Jlc2V0LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcmVzZXQuYwppbmRleCA5MTkzNGYyLi5hY2I2ODE3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Jlc2V0LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Jlc2V0LmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3Jlc2V0LmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2Ffc3JxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2Ffc3JxLmMKaW5kZXggYTVmZmZmNi4uNGZhYmU2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3NycS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9zcnEuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2Ffc3JxLmMgMzA0NyAyMDA1LTA4LTEwIDAzOjU5OjM1WiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfdWFyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfdWFyLmMKaW5kZXggOGI3Mjg0OC4uY2E1OTAwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Vhci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV91YXIuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZCQKICAqLwogCiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4JCS8qIFBBR0VfU0hJRlQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV91c2VyLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfdXNlci5oCmluZGV4IGUxMjYyYzkuLjVmZTU2ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV91c2VyLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3VzZXIuaApAQCAtMjksNyArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKICAqLwogCiAjaWZuZGVmIE1USENBX1VTRVJfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3dxZS5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3dxZS5oCmluZGV4IGIzNTUxYTguLjM0MWE1YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV93cWUuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2Ffd3FlLmgKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3dxZS5oIDMwNDcgMjAwNS0wOC0xMCAwMzo1OTozNVogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIE1USENBX1dRRV9ICmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lcy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXMuYwppbmRleCBhNGU5MjY5Li5kMjg4NGU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lcy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzLmMKQEAgLTMyOCw3ICszMjgsNyBAQAogCQlzZXRfd3FlXzMyYml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9XUUVfSURfSURYLCBuZXNxcC0+aHdxcC5xcF9pZCk7CiAJCXU2NHRlbXAgPSAodTY0KW5lc3FwLT5uZXNxcF9jb250ZXh0X3BiYXNlOwogCQlzZXRfd3FlXzY0Yml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9RUF9XUUVfQ09OVEVYVF9MT1dfSURYLCB1NjR0ZW1wKTsKLQkJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lcy5oCmluZGV4IDYxYjQ2ZTkuLjM5YmQ4OTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXMuaApAQCAtOTQsOSArOTQsNiBAQAogCiAjZGVmaW5lIE1BWF9EUENfSVRFUkFUSU9OUyAgICAgICAgICAgICAgIDEyOAogCi0jZGVmaW5lIE5FU19DUVBfUkVRVUVTVF9OT19ET09SQkVMTF9SSU5HIDAKLSNkZWZpbmUgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwgICAgMQotCiAjZGVmaW5lIE5FU19EUlZfT1BUX0VOQUJMRV9NUEFfVkVSXzAgICAgIDB4MDAwMDAwMDEKICNkZWZpbmUgTkVTX0RSVl9PUFRfRElTQUJMRV9NUEFfQ1JDICAgICAgMHgwMDAwMDAwMgogI2RlZmluZSBORVNfRFJWX09QVF9ESVNBQkxFX0ZJUlNUX1dSSVRFICAweDAwMDAwMDA0CkBAIC01MzgsNyArNTM1LDExIEBACiB2b2lkIG5lc193cml0ZV8xMEdfcGh5X3JlZyhzdHJ1Y3QgbmVzX2RldmljZSAqLCB1MTYsIHU4LCB1MTYsIHUxNik7CiB2b2lkIG5lc19yZWFkXzEwR19waHlfcmVnKHN0cnVjdCBuZXNfZGV2aWNlICosIHU4LCB1OCwgdTE2KTsKIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKm5lc19nZXRfY3FwX3JlcXVlc3Qoc3RydWN0IG5lc19kZXZpY2UgKik7Ci12b2lkIG5lc19wb3N0X2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICosIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKiwgaW50KTsKK3ZvaWQgbmVzX2ZyZWVfY3FwX3JlcXVlc3Qoc3RydWN0IG5lc19kZXZpY2UgKm5lc2RldiwKKwkJCSAgc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3QpOwordm9pZCBuZXNfcHV0X2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYsCisJCQkgc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3QpOwordm9pZCBuZXNfcG9zdF9jcXBfcmVxdWVzdChzdHJ1Y3QgbmVzX2RldmljZSAqLCBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICopOwogaW50IG5lc19hcnBfdGFibGUoc3RydWN0IG5lc19kZXZpY2UgKiwgdTMyLCB1OCAqLCB1MzIpOwogdm9pZCBuZXNfbWhfZml4KHVuc2lnbmVkIGxvbmcpOwogdm9pZCBuZXNfY2xjKHVuc2lnbmVkIGxvbmcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfY20uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2NtLmMKaW5kZXggOWE0YjQwZi4uNmFhNTMxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfY20uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc19jbS5jCkBAIC0xNjAzLDcgKzE2MDMsNiBAQAogCQkJcmV0dXJuIE5VTEw7CiAJCX0KIAotCQltZW1zZXQobGlzdGVuZXIsIDAsIHNpemVvZihzdHJ1Y3QgbmVzX2NtX2xpc3RlbmVyKSk7CiAJCWxpc3RlbmVyLT5sb2NfYWRkciA9IGh0b25sKGNtX2luZm8tPmxvY19hZGRyKTsKIAkJbGlzdGVuZXItPmxvY19wb3J0ID0gaHRvbnMoY21faW5mby0+bG9jX3BvcnQpOwogCQlsaXN0ZW5lci0+cmV1c2VkX25vZGUgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2h3LmMKaW5kZXggZDMyNzhmMS4uODVmMjZkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc19ody5jCkBAIC0zOTgsNyArMzk4LDcgQEAKIAluZXNhZGFwdGVyLT5iYXNlX3BkID0gMTsKIAogCW5lc2FkYXB0ZXItPmRldmljZV9jYXBfZmxhZ3MgPQotCQlJQl9ERVZJQ0VfWkVST19TVEFHIHwgSUJfREVWSUNFX01FTV9XSU5ET1c7CisJCUlCX0RFVklDRV9MT0NBTF9ETUFfTEtFWSB8IElCX0RFVklDRV9NRU1fV0lORE9XOwogCiAJbmVzYWRhcHRlci0+YWxsb2NhdGVkX3FwcyA9ICh1bnNpZ25lZCBsb25nICopJigoKHVuc2lnbmVkIGNoYXIgKiluZXNhZGFwdGVyKQogCQkJWyhzaXplb2Yoc3RydWN0IG5lc19hZGFwdGVyKSsoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLTEpKSYofihzaXplb2YodW5zaWduZWQgbG9uZyktMSkpXSk7CkBAIC0yNzEwLDM5ICsyNzEwLDExIEBACiAJCQkJCWJhcnJpZXIoKTsKIAkJCQkJY3FwX3JlcXVlc3QtPnJlcXVlc3RfZG9uZSA9IDE7CiAJCQkJCXdha2VfdXAoJmNxcF9yZXF1ZXN0LT53YWl0cSk7Ci0JCQkJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQkJCQluZXNfZGVidWcoTkVTX0RCR19DUVAsICJDUVAgcmVxdWVzdCAlcCAob3Bjb2RlIDB4JTAyWCkgZnJlZWQuXG4iLAotCQkJCQkJCQljcXBfcmVxdWVzdCwKLQkJCQkJCQkJbGUzMl90b19jcHUoY3FwX3JlcXVlc3QtPmNxcF93cWUud3FlX3dvcmRzW05FU19DUVBfV1FFX09QQ09ERV9JRFhdKSYweDNmKTsKLQkJCQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCQkJCX0gZWxzZSB7Ci0JCQkJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJCX0KLQkJCQkJfQotCQkJCX0gZWxzZSBpZiAoY3FwX3JlcXVlc3QtPmNhbGxiYWNrKSB7Ci0JCQkJCS8qIEVudm9rZSB0aGUgY2FsbGJhY2sgcm91dGluZSAqLwotCQkJCQljcXBfcmVxdWVzdC0+Y3FwX2NhbGxiYWNrKG5lc2RldiwgY3FwX3JlcXVlc3QpOwotCQkJCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCQkJfSBlbHNlIHsKLQkJCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCQl9CisJCQkJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAJCQkJfSBlbHNlIHsKLQkJCQkJbmVzX2RlYnVnKE5FU19EQkdfQ1FQLCAiQ1FQIHJlcXVlc3QgJXAgKG9wY29kZSAweCUwMlgpIGZyZWVkLlxuIiwKLQkJCQkJCQljcXBfcmVxdWVzdCwKLQkJCQkJCQlsZTMyX3RvX2NwdShjcXBfcmVxdWVzdC0+Y3FwX3dxZS53cWVfd29yZHNbTkVTX0NRUF9XUUVfT1BDT0RFX0lEWF0pICYgMHgzZik7Ci0JCQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJCQl9IGVsc2UgewotCQkJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCX0KKwkJCQkJaWYgKGNxcF9yZXF1ZXN0LT5jYWxsYmFjaykKKwkJCQkJCWNxcF9yZXF1ZXN0LT5jcXBfY2FsbGJhY2sobmVzZGV2LCBjcXBfcmVxdWVzdCk7CisJCQkJCW5lc19mcmVlX2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCQkJCX0KIAkJCX0gZWxzZSB7CiAJCQkJd2FrZV91cCgmbmVzZGV2LT5jcXAud2FpdHEpOwpAQCAtMzE0OSw3ICszMTIxLDYgQEAKIHsKIAlzdHJ1Y3QgbmVzX2RldmljZSAqbmVzZGV2ID0gbmVzdm5pYy0+bmVzZGV2OwogCXN0cnVjdCBuZXNfaHdfY3FwX3dxZSAqY3FwX3dxZTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0OwogCWludCByZXQgPSAwOwogCXUxNiBtYWpvcl9jb2RlOwpAQCAtMzE3Niw3ICszMTQ3LDcgQEAKIAluZXNfZGVidWcoTkVTX0RCR19RUCwgIldhaXRpbmcgZm9yIENRUCBjb21wbGV0aW9uIGZvciBBUEJWVC5cbiIpOwogCiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAlpZiAoYWRkX3BvcnQgPT0gTkVTX01BTkFHRV9BUEJWVF9BREQpCiAJCXJldCA9IHdhaXRfZXZlbnRfdGltZW91dChjcXBfcmVxdWVzdC0+d2FpdHEsIChjcXBfcmVxdWVzdC0+cmVxdWVzdF9kb25lICE9IDApLApAQCAtMzE4NCwxNSArMzE1NSw5IEBACiAJbmVzX2RlYnVnKE5FU19EQkdfUVAsICJDb21wbGV0ZWQsIHJldD0ldSwgIENRUCBNYWpvcjpNaW5vciBjb2RlcyA9IDB4JTA0WDoweCUwNFhcbiIsCiAJCQlyZXQsIGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlLCBjcXBfcmVxdWVzdC0+bWlub3JfY29kZSk7CiAJbWFqb3JfY29kZSA9IGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlOwotCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQl9IGVsc2UgewotCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCX0KLQl9CisKKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOworCiAJaWYgKCFyZXQpCiAJCXJldHVybiAtRVRJTUU7CiAJZWxzZSBpZiAobWFqb3JfY29kZSkKQEAgLTMyNTIsNyArMzIxNyw3IEBACiAJCQluZXNkZXYtPmNxcC5zcV9oZWFkLCBuZXNkZXYtPmNxcC5zcV90YWlsKTsKIAogCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMSk7Ci0JbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogfQogCiAKQEAgLTMyNjIsNyArMzIyNyw2IEBACiB2b2lkIGZsdXNoX3dxZXMoc3RydWN0IG5lc19kZXZpY2UgKm5lc2Rldiwgc3RydWN0IG5lc19xcCAqbmVzcXAsCiAJCXUzMiB3aGljaF93cSwgdTMyIHdhaXRfY29tcGxldGlvbikKIHsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0OwogCXN0cnVjdCBuZXNfaHdfY3FwX3dxZSAqY3FwX3dxZTsKIAlpbnQgcmV0OwpAQCAtMzI4NSw3ICszMjQ5LDcgQEAKIAkJCWNwdV90b19sZTMyKE5FU19DUVBfRkxVU0hfV1FFUyB8IHdoaWNoX3dxKTsKIAljcXBfd3FlLT53cWVfd29yZHNbTkVTX0NRUF9XUUVfSURfSURYXSA9IGNwdV90b19sZTMyKG5lc3FwLT5od3FwLnFwX2lkKTsKIAotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCWlmICh3YWl0X2NvbXBsZXRpb24pIHsKIAkJLyogV2FpdCBmb3IgQ1FQICovCkBAIC0zMjk0LDE0ICszMjU4LDYgQEAKIAkJbmVzX2RlYnVnKE5FU19EQkdfUVAsICJGbHVzaCBTUSBRUCBXUUVzIGNvbXBsZXRlZCwgcmV0PSV1LCIKIAkJCQkiIENRUCBNYWpvcjpNaW5vciBjb2RlcyA9IDB4JTA0WDoweCUwNFhcbiIsCiAJCQkJcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwgY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUpOwotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9CisJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2h3LmgKaW5kZXggNzQ1YmY5NC4uN2I4MWUwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc19ody5oCkBAIC0xMTcyLDcgKzExNzIsNyBAQAogCXUzMiAgICBtY3JxX3FwX2lkOwogCXN0cnVjdCBuZXNfdWNvbnRleHQgKm1jcnFfdWNvbnRleHQ7CiAJc3RydWN0IG5lc19jcXBfcmVxdWVzdCogKCpnZXRfY3FwX3JlcXVlc3QpKHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYpOwotCXZvaWQgKCpwb3N0X2NxcF9yZXF1ZXN0KShzdHJ1Y3QgbmVzX2RldmljZSosIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKiwgaW50KTsKKwl2b2lkICgqcG9zdF9jcXBfcmVxdWVzdCkoc3RydWN0IG5lc19kZXZpY2UqLCBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICopOwogCWludCAoKm1jcnFfbWNhc3RfZmlsdGVyKSggc3RydWN0IG5lc192bmljKiBuZXN2bmljLCBfX3U4KiBkbWlfYWRkciApOwogCXN0cnVjdCBuZXRfZGV2aWNlX3N0YXRzIG5ldHN0YXRzOwogCS8qIHVzZWQgdG8gcHV0IHRoZSBuZXRkZXYgb24gdGhlIGFkYXB0ZXJzIGxvZ2ljYWwgcG9ydCBsaXN0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc191dGlscy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfdXRpbHMuYwppbmRleCBmZTgzZDFiLi5mYjhjYmQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc191dGlscy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX3V0aWxzLmMKQEAgLTU2NywxMiArNTY3LDM2IEBACiAJcmV0dXJuIGNxcF9yZXF1ZXN0OwogfQogCit2b2lkIG5lc19mcmVlX2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYsCisJCQkgIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwluZXNfZGVidWcoTkVTX0RCR19DUVAsICJDUVAgcmVxdWVzdCAlcCAob3Bjb2RlIDB4JTAyWCkgZnJlZWQuXG4iLAorCQkgIGNxcF9yZXF1ZXN0LAorCQkgIGxlMzJfdG9fY3B1KGNxcF9yZXF1ZXN0LT5jcXBfd3FlLndxZV93b3Jkc1tORVNfQ1FQX1dRRV9PUENPREVfSURYXSkgJiAweDNmKTsKKworCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgeworCQlrZnJlZShjcXBfcmVxdWVzdCk7CisJfSBlbHNlIHsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKKwkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOworCX0KK30KKwordm9pZCBuZXNfcHV0X2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYsCisJCQkgc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3QpCit7CisJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpCisJCW5lc19mcmVlX2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOworfQogCiAvKioKICAqIG5lc19wb3N0X2NxcF9yZXF1ZXN0CiAgKi8KIHZvaWQgbmVzX3Bvc3RfY3FwX3JlcXVlc3Qoc3RydWN0IG5lc19kZXZpY2UgKm5lc2RldiwKLQkJc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3QsIGludCByaW5nX2Rvb3JiZWxsKQorCQkJICBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICpjcXBfcmVxdWVzdCkKIHsKIAlzdHJ1Y3QgbmVzX2h3X2NxcF93cWUgKmNxcF93cWU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTYwMCwxMCArNjI0LDkgQEAKIAkJCQluZXNkZXYtPmNxcC5zcV9oZWFkLCBuZXNkZXYtPmNxcC5zcV90YWlsLCBuZXNkZXYtPmNxcC5zcV9zaXplLAogCQkJCWNxcF9yZXF1ZXN0LT53YWl0aW5nLCBhdG9taWNfcmVhZCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSk7CiAJCWJhcnJpZXIoKTsKLQkJaWYgKHJpbmdfZG9vcmJlbGwpIHsKLQkJCS8qIFJpbmcgZG9vcmJlbGwgKDEgV1FFcykgKi8KLQkJCW5lc193cml0ZTMyKG5lc2Rldi0+cmVncytORVNfV1FFX0FMTE9DLCAweDAxODAwMDAwIHwgbmVzZGV2LT5jcXAucXBfaWQpOwotCQl9CisKKwkJLyogUmluZyBkb29yYmVsbCAoMSBXUUVzKSAqLworCQluZXNfd3JpdGUzMihuZXNkZXYtPnJlZ3MrTkVTX1dRRV9BTExPQywgMHgwMTgwMDAwMCB8IG5lc2Rldi0+Y3FwLnFwX2lkKTsKIAogCQliYXJyaWVyKCk7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc192ZXJicy5jCmluZGV4IGQ2MTdkYTkuLmUzOTM5ZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX3ZlcmJzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfdmVyYnMuYwpAQCAtNTUsNyArNTUsNiBAQAogICogbmVzX2FsbG9jX213CiAgKi8KIHN0YXRpYyBzdHJ1Y3QgaWJfbXcgKm5lc19hbGxvY19tdyhzdHJ1Y3QgaWJfcGQgKmlicGQpIHsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBuZXNfcGQgKm5lc3BkID0gdG9fbmVzcGQoaWJwZCk7CiAJc3RydWN0IG5lc192bmljICpuZXN2bmljID0gdG9fbmVzdm5pYyhpYnBkLT5kZXZpY2UpOwogCXN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYgPSBuZXN2bmljLT5uZXNkZXY7CkBAIC0xMTksNyArMTE4LDcgQEAKIAlzZXRfd3FlXzMyYml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9TVEFHX1dRRV9TVEFHX0lEWCwgc3RhZyk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDIpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCS8qIFdhaXQgZm9yIENRUCAqLwogCXJldCA9IHdhaXRfZXZlbnRfdGltZW91dChjcXBfcmVxdWVzdC0+d2FpdHEsIChjcXBfcmVxdWVzdC0+cmVxdWVzdF9kb25lICE9IDApLApAQCAtMTI4LDE1ICsxMjcsNyBAQAogCQkJIiBDUVAgTWFqb3I6TWlub3IgY29kZXMgPSAweCUwNFg6MHglMDRYLlxuIiwKIAkJCXN0YWcsIHJldCwgY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUsIGNxcF9yZXF1ZXN0LT5taW5vcl9jb2RlKTsKIAlpZiAoKCFyZXQpIHx8IChjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSkpIHsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQorCQluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCQlrZnJlZShuZXNtcik7CiAJCW5lc19mcmVlX3Jlc291cmNlKG5lc2FkYXB0ZXIsIG5lc2FkYXB0ZXItPmFsbG9jYXRlZF9tcnMsIHN0YWdfaW5kZXgpOwogCQlpZiAoIXJldCkgewpAQCAtMTQ0LDE3ICsxMzUsOCBAQAogCQl9IGVsc2UgewogCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAJCX0KLQl9IGVsc2UgewotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9CiAJfQorCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAluZXNtci0+aWJtdy5ya2V5ID0gc3RhZzsKIAluZXNtci0+bW9kZSA9IElXTkVTX01FTVJFR19UWVBFX01XOwpAQCAtMTc4LDcgKzE2MCw2IEBACiAJc3RydWN0IG5lc19od19jcXBfd3FlICpjcXBfd3FlOwogCXN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0OwogCWludCBlcnIgPSAwOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHJldDsKIAogCS8qIERlYWxsb2NhdGUgdGhlIHdpbmRvdyB3aXRoIHRoZSBhZGFwdGVyICovCkBAIC0xOTQsNyArMTc1LDcgQEAKIAlzZXRfd3FlXzMyYml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9TVEFHX1dRRV9TVEFHX0lEWCwgaWJtdy0+cmtleSk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDIpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCS8qIFdhaXQgZm9yIENRUCAqLwogCW5lc19kZWJ1ZyhORVNfREJHX01SLCAiV2FpdGluZyBmb3IgZGVhbGxvY2F0ZSBTVGFnIDB4JTA4WCB0byBjb21wbGV0ZS5cbiIsCkBAIC0yMDQsMzIgKzE4NSwxMiBAQAogCW5lc19kZWJ1ZyhORVNfREJHX01SLCAiRGVhbGxvY2F0ZSBTVGFnIGNvbXBsZXRlZCwgd2FpdF9ldmVudF90aW1lb3V0IHJldCA9ICV1LCIKIAkJCSIgQ1FQIE1ham9yOk1pbm9yIGNvZGVzID0gMHglMDRYOjB4JTA0WC5cbiIsCiAJCQlyZXQsIGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlLCBjcXBfcmVxdWVzdC0+bWlub3JfY29kZSk7Ci0JaWYgKCghcmV0KSB8fCAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpKSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KLQkJaWYgKCFyZXQpIHsKLQkJCWVyciA9IC1FVElNRTsKLQkJfSBlbHNlIHsKLQkJCWVyciA9IC1FSU87Ci0JCX0KLQl9IGVsc2UgewotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9Ci0JfQorCWlmICghcmV0KQorCQllcnIgPSAtRVRJTUU7CisJZWxzZSBpZiAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpCisJCWVyciA9IC1FSU87CisKKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJbmVzX2ZyZWVfcmVzb3VyY2UobmVzYWRhcHRlciwgbmVzYWRhcHRlci0+YWxsb2NhdGVkX21ycywKIAkJCShpYm13LT5ya2V5ICYgMHgwZmZmZmYwMCkgPj4gOCk7CkBAIC01MTYsNyArNDc3LDcgQEAKIAkJCShuZXNmbXItPm5lc21yLnBibHNfdXNlZC0xKSA6IG5lc2Ztci0+bmVzbXIucGJsc191c2VkKTsKIAogCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMik7Ci0JbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJLyogV2FpdCBmb3IgQ1FQICovCiAJcmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KGNxcF9yZXF1ZXN0LT53YWl0cSwgKGNxcF9yZXF1ZXN0LT5yZXF1ZXN0X2RvbmUgIT0gMCksCkBAIC01MjYsMjkgKzQ4NywxMSBAQAogCQkJc3RhZywgcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwgY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUpOwogCiAJaWYgKCghcmV0KSB8fCAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpKSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KKwkJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAkJcmV0ID0gKCFyZXQpID8gLUVUSU1FIDogLUVJTzsKIAkJZ290byBmYWlsZWRfbGVhZl92cGJsX3BhZ2VzX2FsbG9jOwotCX0gZWxzZSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KIAl9Ci0KKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCW5lc2Ztci0+bmVzbXIuaWJmbXIubGtleSA9IHN0YWc7CiAJbmVzZm1yLT5uZXNtci5pYmZtci5ya2V5ID0gc3RhZzsKIAluZXNmbXItPmF0dHIgPSAqaWJmbXJfYXR0cjsKQEAgLTE0NzQsNyArMTQxNyw3IEBACiAJCQlzZXRfd3FlXzY0Yml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9RUF9XUUVfQ09OVEVYVF9MT1dfSURYLCB1NjR0ZW1wKTsKIAogCQkJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQkJCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwkJCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJCQkvKiBXYWl0IGZvciBDUVAgKi8KIAkJCW5lc19kZWJ1ZyhORVNfREJHX1FQLCAiV2FpdGluZyBmb3IgY3JlYXRlIGlXQVJQIFFQJXUgdG8gY29tcGxldGUuXG4iLApAQCAtMTQ4NywxNSArMTQzMCw3IEBACiAJCQkJCW5lc3FwLT5od3FwLnFwX2lkLCByZXQsIG5lc2Rldi0+Y3FwLnNxX2hlYWQsIG5lc2Rldi0+Y3FwLnNxX3RhaWwsCiAJCQkJCWNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlLCBjcXBfcmVxdWVzdC0+bWlub3JfY29kZSk7CiAJCQlpZiAoKCFyZXQpIHx8IChjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSkpIHsKLQkJCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCQkJfSBlbHNlIHsKLQkJCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCQl9Ci0JCQkJfQorCQkJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAJCQkJbmVzX2ZyZWVfcmVzb3VyY2UobmVzYWRhcHRlciwgbmVzYWRhcHRlci0+YWxsb2NhdGVkX3FwcywgcXBfbnVtKTsKIAkJCQluZXNfZnJlZV9xcF9tZW0obmVzZGV2LCBuZXNxcCx2aXJ0X3dxcyk7CiAJCQkJa2ZyZWUobmVzcXAtPmFsbG9jYXRlZF9idWZmZXIpOwpAQCAtMTUwNCwxOCArMTQzOSwxMCBAQAogCQkJCX0gZWxzZSB7CiAJCQkJCXJldHVybiBFUlJfUFRSKC1FSU8pOwogCQkJCX0KLQkJCX0gZWxzZSB7Ci0JCQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQkJCX0gZWxzZSB7Ci0JCQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJfQotCQkJCX0KIAkJCX0KIAorCQkJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKKwogCQkJaWYgKGlicGQtPnVvYmplY3QpIHsKIAkJCQl1cmVzcC5tbWFwX3NxX2RiX2luZGV4ID0gbmVzcXAtPm1tYXBfc3FfZGJfaW5kZXg7CiAJCQkJdXJlc3AuYWN0dWFsX3NxX3NpemUgPSBzcV9zaXplOwpAQCAtMTgxNyw3ICsxNzQ0LDcgQEAKIAkJCWNwdV90b19sZTMyKCgodTMyKSgodTY0dGVtcCkgPj4gMzMpKSAmIDB4N0ZGRkZGRkYpOwogCiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAkvKiBXYWl0IGZvciBDUVAgKi8KIAluZXNfZGVidWcoTkVTX0RCR19DUSwgIldhaXRpbmcgZm9yIGNyZWF0ZSBpV0FSUCBDUSV1IHRvIGNvbXBsZXRlLlxuIiwKQEAgLTE4MjcsMzIgKzE3NTQsMTUgQEAKIAluZXNfZGVidWcoTkVTX0RCR19DUSwgIkNyZWF0ZSBpV0FSUCBDUSV1IGNvbXBsZXRlZCwgd2FpdF9ldmVudF90aW1lb3V0IHJldCA9ICVkLlxuIiwKIAkJCW5lc2NxLT5od19jcS5jcV9udW1iZXIsIHJldCk7CiAJaWYgKCghcmV0KSB8fCAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpKSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KKwkJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAkJaWYgKCFjb250ZXh0KQogCQkJcGNpX2ZyZWVfY29uc2lzdGVudChuZXNkZXYtPnBjaWRldiwgbmVzY3EtPmNxX21lbV9zaXplLCBtZW0sCiAJCQkJCW5lc2NxLT5od19jcS5jcV9wYmFzZSk7CiAJCW5lc19mcmVlX3Jlc291cmNlKG5lc2FkYXB0ZXIsIG5lc2FkYXB0ZXItPmFsbG9jYXRlZF9jcXMsIGNxX251bSk7CiAJCWtmcmVlKG5lc2NxKTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTyk7Ci0JfSBlbHNlIHsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQogCX0KKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJaWYgKGNvbnRleHQpIHsKIAkJLyogZnJlZSB0aGUgbmVzcGJsICovCkBAIC0xOTMxLDcgKzE4NDEsNyBAQAogCQkobmVzY3EtPmh3X2NxLmNxX251bWJlciB8ICgodTMyKVBDSV9GVU5DKG5lc2Rldi0+cGNpZGV2LT5kZXZmbikgPDwgMTYpKSk7CiAJbmVzX2ZyZWVfcmVzb3VyY2UobmVzYWRhcHRlciwgbmVzYWRhcHRlci0+YWxsb2NhdGVkX2NxcywgbmVzY3EtPmh3X2NxLmNxX251bWJlcik7CiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAkvKiBXYWl0IGZvciBDUVAgKi8KIAluZXNfZGVidWcoTkVTX0RCR19DUSwgIldhaXRpbmcgZm9yIGRlc3Ryb3kgaVdBUlAgQ1EldSB0byBjb21wbGV0ZS5cbiIsCkBAIC0xOTQyLDM3ICsxODUyLDE4IEBACiAJCQkiIENRUCBNYWpvcjpNaW5vciBjb2RlcyA9IDB4JTA0WDoweCUwNFguXG4iLAogCQkJbmVzY3EtPmh3X2NxLmNxX251bWJlciwgcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwKIAkJCWNxcF9yZXF1ZXN0LT5taW5vcl9jb2RlKTsKLQlpZiAoKCFyZXQpIHx8IChjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSkpIHsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQotCQlpZiAoIXJldCkgewotCQkJbmVzX2RlYnVnKE5FU19EQkdfQ1EsICJpV0FSUCBDUSV1IGRlc3Ryb3kgdGltZW91dCBleHBpcmVkXG4iLAorCWlmICghcmV0KSB7CisJCW5lc19kZWJ1ZyhORVNfREJHX0NRLCAiaVdBUlAgQ1EldSBkZXN0cm95IHRpbWVvdXQgZXhwaXJlZFxuIiwKIAkJCQkJbmVzY3EtPmh3X2NxLmNxX251bWJlcik7Ci0JCQlyZXQgPSAtRVRJTUU7Ci0JCX0gZWxzZSB7Ci0JCQluZXNfZGVidWcoTkVTX0RCR19DUSwgImlXQVJQIENRJXUgZGVzdHJveSBmYWlsZWRcbiIsCisJCXJldCA9IC1FVElNRTsKKwl9IGVsc2UgaWYgKGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlKSB7CisJCW5lc19kZWJ1ZyhORVNfREJHX0NRLCAiaVdBUlAgQ1EldSBkZXN0cm95IGZhaWxlZFxuIiwKIAkJCQkJbmVzY3EtPmh3X2NxLmNxX251bWJlcik7Ci0JCQlyZXQgPSAtRUlPOwotCQl9CisJCXJldCA9IC1FSU87CiAJfSBlbHNlIHsKIAkJcmV0ID0gMDsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQogCX0KKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJaWYgKG5lc2NxLT5jcV9tZW1fc2l6ZSkKIAkJcGNpX2ZyZWVfY29uc2lzdGVudChuZXNkZXYtPnBjaWRldiwgbmVzY3EtPmNxX21lbV9zaXplLApAQCAtMjA5Niw3ICsxOTg3LDcgQEAKIAliYXJyaWVyKCk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDIpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCS8qIFdhaXQgZm9yIENRUCAqLwogCXJldCA9IHdhaXRfZXZlbnRfdGltZW91dChjcXBfcmVxdWVzdC0+d2FpdHEsICgwICE9IGNxcF9yZXF1ZXN0LT5yZXF1ZXN0X2RvbmUpLApAQCAtMjEwNSwxNSArMTk5Niw4IEBACiAJCQkiIENRUCBNYWpvcjpNaW5vciBjb2RlcyA9IDB4JTA0WDoweCUwNFguXG4iLAogCQkJc3RhZywgcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwgY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUpOwogCW1ham9yX2NvZGUgPSBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZTsKLQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJfSBlbHNlIHsKLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQl9Ci0JfQorCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CisKIAlpZiAoIXJldCkKIAkJcmV0dXJuIC1FVElNRTsKIAllbHNlIGlmIChtYWpvcl9jb2RlKQpAQCAtMjc1NCw3ICsyNjM4LDcgQEAKIAlzZXRfd3FlXzMyYml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9TVEFHX1dRRV9TVEFHX0lEWCwgaWJfbXItPnJrZXkpOwogCiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAkvKiBXYWl0IGZvciBDUVAgKi8KIAluZXNfZGVidWcoTkVTX0RCR19NUiwgIldhaXRpbmcgZm9yIGRlYWxsb2NhdGUgU1RhZyAweCUwOFggY29tcGxldGVkXG4iLCBpYl9tci0+cmtleSk7CkBAIC0yNzcxLDE1ICsyNjU1LDkgQEAKIAogCW1ham9yX2NvZGUgPSBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZTsKIAltaW5vcl9jb2RlID0gY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGU7Ci0JaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCX0gZWxzZSB7Ci0JCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJfQotCX0KKworCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CisKIAlpZiAoIXJldCkgewogCQluZXNfZGVidWcoTkVTX0RCR19NUiwgIlRpbWVvdXQgd2FpdGluZyB0byBkZXN0cm95IFNUYWcsIgogCQkJCSIgaWJfbXI9JXAsIHJrZXkgPSAweCUwOFhcbiIsCkBAIC0yOTA0LDcgKzI3ODIsNiBAQAogCS8qIHN0cnVjdCBpd19jbV9pZCAqY21faWQgPSBuZXNxcC0+Y21faWQ7ICovCiAJLyogc3RydWN0IGl3X2NtX2V2ZW50IGNtX2V2ZW50OyAqLwogCXN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0OwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHJldDsKIAl1MTYgbWFqb3JfY29kZTsKIApAQCAtMjkzMiw3ICsyODA5LDcgQEAKIAlzZXRfd3FlXzY0Yml0X3ZhbHVlKGNxcF93cWUtPndxZV93b3JkcywgTkVTX0NRUF9RUF9XUUVfQ09OVEVYVF9MT1dfSURYLCAodTY0KW5lc3FwLT5uZXNxcF9jb250ZXh0X3BiYXNlKTsKIAogCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMik7Ci0JbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJLyogV2FpdCBmb3IgQ1FQICovCiAJaWYgKHdhaXRfY29tcGxldGlvbikgewpAQCAtMjk1MCwxNSArMjgyNyw5IEBACiAJCQkJCW5lc3FwLT5od3FwLnFwX2lkLCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwKIAkJCQkJY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUsIG5leHRfaXdhcnBfc3RhdGUpOwogCQl9Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KKworCQluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOworCiAJCWlmICghcmV0KQogCQkJcmV0dXJuIC1FVElNRTsKIAkJZWxzZSBpZiAobWFqb3JfY29kZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvS2NvbmZpZyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvS2NvbmZpZwppbmRleCAxZjc2YmFkLi42OTE1MjVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL0tjb25maWcKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9LY29uZmlnCkBAIC0xLDYgKzEsNyBAQAogY29uZmlnIElORklOSUJBTkRfSVBPSUIKIAl0cmlzdGF0ZSAiSVAtb3Zlci1JbmZpbmlCYW5kIgogCWRlcGVuZHMgb24gTkVUREVWSUNFUyAmJiBJTkVUICYmIChJUFY2IHx8IElQVjY9bikKKwlzZWxlY3QgSU5FVF9MUk8KIAktLS1oZWxwLS0tCiAJICBTdXBwb3J0IGZvciB0aGUgSVAtb3Zlci1JbmZpbmlCYW5kIHByb3RvY29sIChJUG9JQikuIFRoaXMKIAkgIHRyYW5zcG9ydHMgSVAgcGFja2V0cyBvdmVyIEluZmluaUJhbmQgc28geW91IGNhbiB1c2UgeW91ciBJQgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYi5oCmluZGV4IGNhMTI2ZmMuLmIwZmZjOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liLmgKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlwb2liLmggMTM1OCAyMDA0LTEyLTE3IDIyOjAwOjExWiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgX0lQT0lCX0gKQEAgLTUyLDkgKzUwLDE2IEBACiAjaW5jbHVkZSA8cmRtYS9pYl92ZXJicy5oPgogI2luY2x1ZGUgPHJkbWEvaWJfcGFjay5oPgogI2luY2x1ZGUgPHJkbWEvaWJfc2EuaD4KKyNpbmNsdWRlIDxsaW51eC9pbmV0X2xyby5oPgogCiAvKiBjb25zdGFudHMgKi8KIAorZW51bSBpcG9pYl9mbHVzaF9sZXZlbCB7CisJSVBPSUJfRkxVU0hfTElHSFQsCisJSVBPSUJfRkxVU0hfTk9STUFMLAorCUlQT0lCX0ZMVVNIX0hFQVZZCit9OworCiBlbnVtIHsKIAlJUE9JQl9FTkNBUF9MRU4JCSAgPSA0LAogCkBAIC02NSw4ICs3MCw4IEBACiAJSVBPSUJfQ01fQlVGX1NJWkUJICA9IElQT0lCX0NNX01UVSAgKyBJUE9JQl9FTkNBUF9MRU4sCiAJSVBPSUJfQ01fSEVBRF9TSVpFCSAgPSBJUE9JQl9DTV9CVUZfU0laRSAlIFBBR0VfU0laRSwKIAlJUE9JQl9DTV9SWF9TRwkJICA9IEFMSUdOKElQT0lCX0NNX0JVRl9TSVpFLCBQQUdFX1NJWkUpIC8gUEFHRV9TSVpFLAotCUlQT0lCX1JYX1JJTkdfU0laRQkgID0gMTI4LAotCUlQT0lCX1RYX1JJTkdfU0laRQkgID0gNjQsCisJSVBPSUJfUlhfUklOR19TSVpFCSAgPSAyNTYsCisJSVBPSUJfVFhfUklOR19TSVpFCSAgPSAxMjgsCiAJSVBPSUJfTUFYX1FVRVVFX1NJWkUJICA9IDgxOTIsCiAJSVBPSUJfTUlOX1FVRVVFX1NJWkUJICA9IDIsCiAJSVBPSUJfQ01fTUFYX0NPTk5fUVAJICA9IDQwOTYsCkBAIC04NCw3ICs4OSw2IEBACiAJSVBPSUJfRkxBR19TVUJJTlRFUkZBQ0UJICA9IDUsCiAJSVBPSUJfTUNBU1RfUlVOCQkgID0gNiwKIAlJUE9JQl9TVE9QX1JFQVBFUgkgID0gNywKLQlJUE9JQl9NQ0FTVF9TVEFSVEVECSAgPSA4LAogCUlQT0lCX0ZMQUdfQURNSU5fQ00JICA9IDksCiAJSVBPSUJfRkxBR19VTUNBU1QJICA9IDEwLAogCUlQT0lCX0ZMQUdfQ1NVTQkJICA9IDExLApAQCAtOTYsNyArMTAwLDExIEBACiAJSVBPSUJfTUNBU1RfRkxBR19CVVNZCSAgPSAyLAkvKiBqb2luaW5nIG9yIGFscmVhZHkgam9pbmVkICovCiAJSVBPSUJfTUNBU1RfRkxBR19BVFRBQ0hFRCA9IDMsCiAKKwlJUE9JQl9NQVhfTFJPX0RFU0NSSVBUT1JTID0gOCwKKwlJUE9JQl9MUk9fTUFYX0FHR1IgCSAgPSA2NCwKKwogCU1BWF9TRU5EX0NRRQkJICA9IDE2LAorCUlQT0lCX0NNX0NPUFlCUkVBSwkgID0gMjU2LAogfTsKIAogI2RlZmluZQlJUE9JQl9PUF9SRUNWICAgKDF1bCA8PCAzMSkKQEAgLTE0OSw2ICsxNTcsMTEgQEAKIAl1NjQJCW1hcHBpbmdbTUFYX1NLQl9GUkFHUyArIDFdOwogfTsKIAorc3RydWN0IGlwb2liX2NtX3R4X2J1ZiB7CisJc3RydWN0IHNrX2J1ZmYgKnNrYjsKKwl1NjQJCW1hcHBpbmc7Cit9OworCiBzdHJ1Y3QgaWJfY21faWQ7CiAKIHN0cnVjdCBpcG9pYl9jbV9kYXRhIHsKQEAgLTIwNyw3ICsyMjAsNyBAQAogCXN0cnVjdCBuZXRfZGV2aWNlICAgKmRldjsKIAlzdHJ1Y3QgaXBvaWJfbmVpZ2ggICpuZWlnaDsKIAlzdHJ1Y3QgaXBvaWJfcGF0aCAgICpwYXRoOwotCXN0cnVjdCBpcG9pYl90eF9idWYgKnR4X3Jpbmc7CisJc3RydWN0IGlwb2liX2NtX3R4X2J1ZiAqdHhfcmluZzsKIAl1bnNpZ25lZAkgICAgIHR4X2hlYWQ7CiAJdW5zaWduZWQJICAgICB0eF90YWlsOwogCXVuc2lnbmVkIGxvbmcJICAgICBmbGFnczsKQEAgLTI0OSw2ICsyNjIsMTEgQEAKIAl1MTYgICAgIG1heF9jb2FsZXNjZWRfZnJhbWVzOwogfTsKIAorc3RydWN0IGlwb2liX2xybyB7CisJc3RydWN0IG5ldF9scm9fbWdyIGxyb19tZ3I7CisJc3RydWN0IG5ldF9scm9fZGVzYyBscm9fZGVzY1tJUE9JQl9NQVhfTFJPX0RFU0NSSVBUT1JTXTsKK307CisKIC8qCiAgKiBEZXZpY2UgcHJpdmF0ZSBsb2NraW5nOiB0eF9sb2NrIHByb3RlY3RzIG1lbWJlcnMgdXNlZCBpbiBUWCBmYXN0CiAgKiBwYXRoIChhbmQgd2UgdXNlIExMVFggc28gdXBwZXIgbGF5ZXJzIGRvbid0IGRvIGV4dHJhIGxvY2tpbmcpLgpAQCAtMjY0LDcgKzI4Miw2IEBACiAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0Jc3RydWN0IG11dGV4IG1jYXN0X211dGV4OwogCXN0cnVjdCBtdXRleCB2bGFuX211dGV4OwogCiAJc3RydWN0IHJiX3Jvb3QgIHBhdGhfdHJlZTsKQEAgLTI3NiwxMCArMjkzLDExIEBACiAKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIHBrZXlfcG9sbF90YXNrOwogCXN0cnVjdCBkZWxheWVkX3dvcmsgbWNhc3RfdGFzazsKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZmx1c2hfdGFzazsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZmx1c2hfbGlnaHQ7CisJc3RydWN0IHdvcmtfc3RydWN0IGZsdXNoX25vcm1hbDsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZmx1c2hfaGVhdnk7CiAJc3RydWN0IHdvcmtfc3RydWN0IHJlc3RhcnRfdGFzazsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGFoX3JlYXBfdGFzazsKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcGtleV9ldmVudF90YXNrOwogCiAJc3RydWN0IGliX2RldmljZSAqY2E7CiAJdTgJCSAgcG9ydDsKQEAgLTMzNSw2ICszNTMsOCBAQAogCWludAloY2FfY2FwczsKIAlzdHJ1Y3QgaXBvaWJfZXRodG9vbF9zdCBldGh0b29sOwogCXN0cnVjdCB0aW1lcl9saXN0IHBvbGxfdGltZXI7CisKKwlzdHJ1Y3QgaXBvaWJfbHJvIGxybzsKIH07CiAKIHN0cnVjdCBpcG9pYl9haCB7CkBAIC0zNTksNiArMzc5LDcgQEAKIAogCXN0cnVjdCByYl9ub2RlCSAgICAgIHJiX25vZGU7CiAJc3RydWN0IGxpc3RfaGVhZCAgICAgIGxpc3Q7CisJaW50ICAJCSAgICAgIHZhbGlkOwogfTsKIAogc3RydWN0IGlwb2liX25laWdoIHsKQEAgLTQyMywxMSArNDQ0LDE0IEBACiAJCXN0cnVjdCBpcG9pYl9haCAqYWRkcmVzcywgdTMyIHFwbik7CiB2b2lkIGlwb2liX3JlYXBfYWgoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKIAordm9pZCBpcG9pYl9tYXJrX3BhdGhzX2ludmFsaWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiB2b2lkIGlwb2liX2ZsdXNoX3BhdGhzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwogc3RydWN0IGlwb2liX2Rldl9wcml2ICppcG9pYl9pbnRmX2FsbG9jKGNvbnN0IGNoYXIgKmZvcm1hdCk7CiAKIGludCBpcG9pYl9pYl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWJfZGV2aWNlICpjYSwgaW50IHBvcnQpOwotdm9pZCBpcG9pYl9pYl9kZXZfZmx1c2goc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKK3ZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoX2xpZ2h0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7Cit2b2lkIGlwb2liX2liX2Rldl9mbHVzaF9ub3JtYWwoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKK3ZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoX2hlYXZ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CiB2b2lkIGlwb2liX3BrZXlfZXZlbnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKIHZvaWQgaXBvaWJfaWJfZGV2X2NsZWFudXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiAKQEAgLTQ2Niw5ICs0OTAsNyBAQAogI2VuZGlmCiAKIGludCBpcG9pYl9tY2FzdF9hdHRhY2goc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2IG1saWQsCi0JCSAgICAgICB1bmlvbiBpYl9naWQgKm1naWQpOwotaW50IGlwb2liX21jYXN0X2RldGFjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgbWxpZCwKLQkJICAgICAgIHVuaW9uIGliX2dpZCAqbWdpZCk7CisJCSAgICAgICB1bmlvbiBpYl9naWQgKm1naWQsIGludCBzZXRfcWtleSk7CiAKIGludCBpcG9pYl9pbml0X3FwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwogaW50IGlwb2liX3RyYW5zcG9ydF9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWJfZGV2aWNlICpjYSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2NtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2NtLmMKaW5kZXggOTdlNjdkMy4uMGYyZDMwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9jbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfY20uYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZCQKICAqLwogCiAjaW5jbHVkZSA8cmRtYS9pYl9jbS5oPgpAQCAtMTEzLDE4ICsxMTEsMjAgQEAKIH0KIAogc3RhdGljIGludCBpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCi0JCQkJCXN0cnVjdCBpcG9pYl9jbV9yeCAqcngsIGludCBpZCkKKwkJCQkJc3RydWN0IGlwb2liX2NtX3J4ICpyeCwKKwkJCQkJc3RydWN0IGliX3JlY3Zfd3IgKndyLAorCQkJCQlzdHJ1Y3QgaWJfc2dlICpzZ2UsIGludCBpZCkKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBpYl9yZWN2X3dyICpiYWRfd3I7CiAJaW50IGksIHJldDsKIAotCXByaXYtPmNtLnJ4X3dyLndyX2lkID0gaWQgfCBJUE9JQl9PUF9DTSB8IElQT0lCX09QX1JFQ1Y7CisJd3ItPndyX2lkID0gaWQgfCBJUE9JQl9PUF9DTSB8IElQT0lCX09QX1JFQ1Y7CiAKIAlmb3IgKGkgPSAwOyBpIDwgSVBPSUJfQ01fUlhfU0c7ICsraSkKLQkJcHJpdi0+Y20ucnhfc2dlW2ldLmFkZHIgPSByeC0+cnhfcmluZ1tpZF0ubWFwcGluZ1tpXTsKKwkJc2dlW2ldLmFkZHIgPSByeC0+cnhfcmluZ1tpZF0ubWFwcGluZ1tpXTsKIAotCXJldCA9IGliX3Bvc3RfcmVjdihyeC0+cXAsICZwcml2LT5jbS5yeF93ciwgJmJhZF93cik7CisJcmV0ID0gaWJfcG9zdF9yZWN2KHJ4LT5xcCwgd3IsICZiYWRfd3IpOwogCWlmICh1bmxpa2VseShyZXQpKSB7CiAJCWlwb2liX3dhcm4ocHJpdiwgInBvc3QgcmVjdiBmYWlsZWQgZm9yIGJ1ZiAlZCAoJWQpXG4iLCBpZCwgcmV0KTsKIAkJaXBvaWJfY21fZG1hX3VubWFwX3J4KHByaXYsIElQT0lCX0NNX1JYX1NHIC0gMSwKQEAgLTMyMiwxMCArMzIyLDMzIEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIGlwb2liX2NtX2luaXRfcnhfd3Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQlzdHJ1Y3QgaWJfcmVjdl93ciAqd3IsCisJCQkJc3RydWN0IGliX3NnZSAqc2dlKQoreworCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+Y20ubnVtX2ZyYWdzOyArK2kpCisJCXNnZVtpXS5sa2V5ID0gcHJpdi0+bXItPmxrZXk7CisKKwlzZ2VbMF0ubGVuZ3RoID0gSVBPSUJfQ01fSEVBRF9TSVpFOworCWZvciAoaSA9IDE7IGkgPCBwcml2LT5jbS5udW1fZnJhZ3M7ICsraSkKKwkJc2dlW2ldLmxlbmd0aCA9IFBBR0VfU0laRTsKKworCXdyLT5uZXh0ICAgID0gTlVMTDsKKwl3ci0+c2dfbGlzdCA9IHByaXYtPmNtLnJ4X3NnZTsKKwl3ci0+bnVtX3NnZSA9IHByaXYtPmNtLm51bV9mcmFnczsKK30KKwogc3RhdGljIGludCBpcG9pYl9jbV9ub25zcnFfaW5pdF9yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWJfY21faWQgKmNtX2lkLAogCQkJCSAgIHN0cnVjdCBpcG9pYl9jbV9yeCAqcngpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgaWJfcmVjdl93ciB3cjsKKwkJc3RydWN0IGliX3NnZSBzZ2VbSVBPSUJfQ01fUlhfU0ddOworCX0gKnQ7CiAJaW50IHJldDsKIAlpbnQgaTsKIApAQCAtMzMzLDYgKzM1NiwxNCBAQAogCWlmICghcngtPnJ4X3JpbmcpCiAJCXJldHVybiAtRU5PTUVNOwogCisJdCA9IGttYWxsb2Moc2l6ZW9mICp0LCBHRlBfS0VSTkVMKTsKKwlpZiAoIXQpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwlpcG9pYl9jbV9pbml0X3J4X3dyKGRldiwgJnQtPndyLCB0LT5zZ2UpOworCiAJc3Bpbl9sb2NrX2lycSgmcHJpdi0+bG9jayk7CiAKIAlpZiAocHJpdi0+Y20ubm9uc3JxX2Nvbm5fcXAgPj0gaXBvaWJfbWF4X2Nvbm5fcXApIHsKQEAgLTM1MSw4ICszODIsOCBAQAogCQkJaXBvaWJfd2Fybihwcml2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHJlY2VpdmUgYnVmZmVyICVkXG4iLCBpKTsKIAkJCQlyZXQgPSAtRU5PTUVNOwogCQkJCWdvdG8gZXJyX2NvdW50OwotCQkJfQotCQlyZXQgPSBpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxKGRldiwgcngsIGkpOworCQl9CisJCXJldCA9IGlwb2liX2NtX3Bvc3RfcmVjZWl2ZV9ub25zcnEoZGV2LCByeCwgJnQtPndyLCB0LT5zZ2UsIGkpOwogCQlpZiAocmV0KSB7CiAJCQlpcG9pYl93YXJuKHByaXYsICJpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxICIKIAkJCQkgICAiZmFpbGVkIGZvciBidWYgJWRcbiIsIGkpOwpAQCAtMzYzLDYgKzM5NCw4IEBACiAKIAlyeC0+cmVjdl9jb3VudCA9IGlwb2liX3JlY3ZxX3NpemU7CiAKKwlrZnJlZSh0KTsKKwogCXJldHVybiAwOwogCiBlcnJfY291bnQ6CkBAIC0zNzEsNiArNDA0LDcgQEAKIAlzcGluX3VubG9ja19pcnEoJnByaXYtPmxvY2spOwogCiBlcnJfZnJlZToKKwlrZnJlZSh0KTsKIAlpcG9pYl9jbV9mcmVlX3J4X3JpbmcoZGV2LCByeC0+cnhfcmluZyk7CiAKIAlyZXR1cm4gcmV0OwpAQCAtNTI1LDYgKzU1OSw3IEBACiAJdTY0IG1hcHBpbmdbSVBPSUJfQ01fUlhfU0ddOwogCWludCBmcmFnczsKIAlpbnQgaGFzX3NycTsKKwlzdHJ1Y3Qgc2tfYnVmZiAqc21hbGxfc2tiOwogCiAJaXBvaWJfZGJnX2RhdGEocHJpdiwgImNtIHJlY3YgY29tcGxldGlvbjogaWQgJWQsIHN0YXR1czogJWRcbiIsCiAJCSAgICAgICB3cl9pZCwgd2MtPnN0YXR1cyk7CkBAIC01NzksNiArNjE0LDIzIEBACiAJCX0KIAl9CiAKKwlpZiAod2MtPmJ5dGVfbGVuIDwgSVBPSUJfQ01fQ09QWUJSRUFLKSB7CisJCWludCBkbGVuID0gd2MtPmJ5dGVfbGVuOworCisJCXNtYWxsX3NrYiA9IGRldl9hbGxvY19za2IoZGxlbiArIDEyKTsKKwkJaWYgKHNtYWxsX3NrYikgeworCQkJc2tiX3Jlc2VydmUoc21hbGxfc2tiLCAxMik7CisJCQlpYl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShwcml2LT5jYSwgcnhfcmluZ1t3cl9pZF0ubWFwcGluZ1swXSwKKwkJCQkJCSAgIGRsZW4sIERNQV9GUk9NX0RFVklDRSk7CisJCQlza2JfY29weV9mcm9tX2xpbmVhcl9kYXRhKHNrYiwgc21hbGxfc2tiLT5kYXRhLCBkbGVuKTsKKwkJCWliX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHByaXYtPmNhLCByeF9yaW5nW3dyX2lkXS5tYXBwaW5nWzBdLAorCQkJCQkJICAgICAgZGxlbiwgRE1BX0ZST01fREVWSUNFKTsKKwkJCXNrYl9wdXQoc21hbGxfc2tiLCBkbGVuKTsKKwkJCXNrYiA9IHNtYWxsX3NrYjsKKwkJCWdvdG8gY29waWVkOworCQl9CisJfQorCiAJZnJhZ3MgPSBQQUdFX0FMSUdOKHdjLT5ieXRlX2xlbiAtIG1pbih3Yy0+Ynl0ZV9sZW4sCiAJCQkJCSAgICAgICh1bnNpZ25lZClJUE9JQl9DTV9IRUFEX1NJWkUpKSAvIFBBR0VfU0laRTsKIApAQCAtNjAxLDYgKzY1Myw3IEBACiAKIAlza2JfcHV0X2ZyYWdzKHNrYiwgSVBPSUJfQ01fSEVBRF9TSVpFLCB3Yy0+Ynl0ZV9sZW4sIG5ld3NrYik7CiAKK2NvcGllZDoKIAlza2ItPnByb3RvY29sID0gKChzdHJ1Y3QgaXBvaWJfaGVhZGVyICopIHNrYi0+ZGF0YSktPnByb3RvOwogCXNrYl9yZXNldF9tYWNfaGVhZGVyKHNrYik7CiAJc2tiX3B1bGwoc2tiLCBJUE9JQl9FTkNBUF9MRU4pOwpAQCAtNjIwLDcgKzY3MywxMCBAQAogCQkJaXBvaWJfd2Fybihwcml2LCAiaXBvaWJfY21fcG9zdF9yZWNlaXZlX3NycSBmYWlsZWQgIgogCQkJCSAgICJmb3IgYnVmICVkXG4iLCB3cl9pZCk7CiAJfSBlbHNlIHsKLQkJaWYgKHVubGlrZWx5KGlwb2liX2NtX3Bvc3RfcmVjZWl2ZV9ub25zcnEoZGV2LCBwLCB3cl9pZCkpKSB7CisJCWlmICh1bmxpa2VseShpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxKGRldiwgcCwKKwkJCQkJCQkgICZwcml2LT5jbS5yeF93ciwKKwkJCQkJCQkgIHByaXYtPmNtLnJ4X3NnZSwKKwkJCQkJCQkgIHdyX2lkKSkpIHsKIAkJCS0tcC0+cmVjdl9jb3VudDsKIAkJCWlwb2liX3dhcm4ocHJpdiwgImlwb2liX2NtX3Bvc3RfcmVjZWl2ZV9ub25zcnEgZmFpbGVkICIKIAkJCQkgICAiZm9yIGJ1ZiAlZFxuIiwgd3JfaWQpOwpAQCAtNjQ3LDcgKzcwMyw3IEBACiB2b2lkIGlwb2liX2NtX3NlbmQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlwb2liX2NtX3R4ICp0eCkKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwotCXN0cnVjdCBpcG9pYl90eF9idWYgKnR4X3JlcTsKKwlzdHJ1Y3QgaXBvaWJfY21fdHhfYnVmICp0eF9yZXE7CiAJdTY0IGFkZHI7CiAKIAlpZiAodW5saWtlbHkoc2tiLT5sZW4gPiB0eC0+bXR1KSkgewpAQCAtNjc4LDcgKzczNCw3IEBACiAJCXJldHVybjsKIAl9CiAKLQl0eF9yZXEtPm1hcHBpbmdbMF0gPSBhZGRyOworCXR4X3JlcS0+bWFwcGluZyA9IGFkZHI7CiAKIAlpZiAodW5saWtlbHkocG9zdF9zZW5kKHByaXYsIHR4LCB0eC0+dHhfaGVhZCAmIChpcG9pYl9zZW5kcV9zaXplIC0gMSksCiAJCQkgICAgICAgYWRkciwgc2tiLT5sZW4pKSkgewpAQCAtNzAzLDcgKzc1OSw3IEBACiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgaXBvaWJfY21fdHggKnR4ID0gd2MtPnFwLT5xcF9jb250ZXh0OwogCXVuc2lnbmVkIGludCB3cl9pZCA9IHdjLT53cl9pZCAmIH5JUE9JQl9PUF9DTTsKLQlzdHJ1Y3QgaXBvaWJfdHhfYnVmICp0eF9yZXE7CisJc3RydWN0IGlwb2liX2NtX3R4X2J1ZiAqdHhfcmVxOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlpcG9pYl9kYmdfZGF0YShwcml2LCAiY20gc2VuZCBjb21wbGV0aW9uOiBpZCAlZCwgc3RhdHVzOiAlZFxuIiwKQEAgLTcxNyw3ICs3NzMsNyBAQAogCiAJdHhfcmVxID0gJnR4LT50eF9yaW5nW3dyX2lkXTsKIAotCWliX2RtYV91bm1hcF9zaW5nbGUocHJpdi0+Y2EsIHR4X3JlcS0+bWFwcGluZ1swXSwgdHhfcmVxLT5za2ItPmxlbiwgRE1BX1RPX0RFVklDRSk7CisJaWJfZG1hX3VubWFwX3NpbmdsZShwcml2LT5jYSwgdHhfcmVxLT5tYXBwaW5nLCB0eF9yZXEtPnNrYi0+bGVuLCBETUFfVE9fREVWSUNFKTsKIAogCS8qIEZJWE1FOiBpcyB0aGlzIHJpZ2h0PyBTaG91bGRuJ3Qgd2Ugb25seSBpbmNyZW1lbnQgb24gc3VjY2Vzcz8gKi8KIAkrK2Rldi0+c3RhdHMudHhfcGFja2V0czsKQEAgLTEwODcsNyArMTE0Myw3IEBACiBzdGF0aWMgdm9pZCBpcG9pYl9jbV90eF9kZXN0cm95KHN0cnVjdCBpcG9pYl9jbV90eCAqcCkKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihwLT5kZXYpOwotCXN0cnVjdCBpcG9pYl90eF9idWYgKnR4X3JlcTsKKwlzdHJ1Y3QgaXBvaWJfY21fdHhfYnVmICp0eF9yZXE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1bnNpZ25lZCBsb25nIGJlZ2luOwogCkBAIC0xMTE1LDcgKzExNzEsNyBAQAogCiAJd2hpbGUgKChpbnQpIHAtPnR4X3RhaWwgLSAoaW50KSBwLT50eF9oZWFkIDwgMCkgewogCQl0eF9yZXEgPSAmcC0+dHhfcmluZ1twLT50eF90YWlsICYgKGlwb2liX3NlbmRxX3NpemUgLSAxKV07Ci0JCWliX2RtYV91bm1hcF9zaW5nbGUocHJpdi0+Y2EsIHR4X3JlcS0+bWFwcGluZ1swXSwgdHhfcmVxLT5za2ItPmxlbiwKKwkJaWJfZG1hX3VubWFwX3NpbmdsZShwcml2LT5jYSwgdHhfcmVxLT5tYXBwaW5nLCB0eF9yZXEtPnNrYi0+bGVuLAogCQkJCSAgICBETUFfVE9fREVWSUNFKTsKIAkJZGV2X2tmcmVlX3NrYl9hbnkodHhfcmVxLT5za2IpOwogCQkrK3AtPnR4X3RhaWw7CkBAIC0xMzg0LDcgKzE0NDAsOSBAQAogCQlpcG9pYl93YXJuKHByaXYsICJlbmFibGluZyBjb25uZWN0ZWQgbW9kZSAiCiAJCQkgICAid2lsbCBjYXVzZSBtdWx0aWNhc3QgcGFja2V0IGRyb3BzXG4iKTsKIAorCQlydG5sX2xvY2soKTsKIAkJZGV2LT5mZWF0dXJlcyAmPSB+KE5FVElGX0ZfSVBfQ1NVTSB8IE5FVElGX0ZfU0cgfCBORVRJRl9GX1RTTyk7CisJCXJ0bmxfdW5sb2NrKCk7CiAJCXByaXYtPnR4X3dyLnNlbmRfZmxhZ3MgJj0gfklCX1NFTkRfSVBfQ1NVTTsKIAogCQlpcG9pYl9mbHVzaF9wYXRocyhkZXYpOwpAQCAtMTM5MywxNCArMTQ1MSwxNiBAQAogCiAJaWYgKCFzdHJjbXAoYnVmLCAiZGF0YWdyYW1cbiIpKSB7CiAJCWNsZWFyX2JpdChJUE9JQl9GTEFHX0FETUlOX0NNLCAmcHJpdi0+ZmxhZ3MpOwotCQlkZXYtPm10dSA9IG1pbihwcml2LT5tY2FzdF9tdHUsIGRldi0+bXR1KTsKLQkJaXBvaWJfZmx1c2hfcGF0aHMoZGV2KTsKIAorCQlydG5sX2xvY2soKTsKIAkJaWYgKHRlc3RfYml0KElQT0lCX0ZMQUdfQ1NVTSwgJnByaXYtPmZsYWdzKSkgewogCQkJZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX0lQX0NTVU0gfCBORVRJRl9GX1NHOwogCQkJaWYgKHByaXYtPmhjYV9jYXBzICYgSUJfREVWSUNFX1VEX1RTTykKIAkJCQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfVFNPOwogCQl9CisJCWRldl9zZXRfbXR1KGRldiwgbWluKHByaXYtPm1jYXN0X210dSwgZGV2LT5tdHUpKTsKKwkJcnRubF91bmxvY2soKTsKKwkJaXBvaWJfZmx1c2hfcGF0aHMoZGV2KTsKIAogCQlyZXR1cm4gY291bnQ7CiAJfQpAQCAtMTQ4NSwxNSArMTU0NSw3IEBACiAJCXByaXYtPmNtLm51bV9mcmFncyAgPSBJUE9JQl9DTV9SWF9TRzsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+Y20ubnVtX2ZyYWdzOyArK2kpCi0JCXByaXYtPmNtLnJ4X3NnZVtpXS5sa2V5CT0gcHJpdi0+bXItPmxrZXk7Ci0KLQlwcml2LT5jbS5yeF9zZ2VbMF0ubGVuZ3RoID0gSVBPSUJfQ01fSEVBRF9TSVpFOwotCWZvciAoaSA9IDE7IGkgPCBwcml2LT5jbS5udW1fZnJhZ3M7ICsraSkKLQkJcHJpdi0+Y20ucnhfc2dlW2ldLmxlbmd0aCA9IFBBR0VfU0laRTsKLQlwcml2LT5jbS5yeF93ci5uZXh0ID0gTlVMTDsKLQlwcml2LT5jbS5yeF93ci5zZ19saXN0ID0gcHJpdi0+Y20ucnhfc2dlOwotCXByaXYtPmNtLnJ4X3dyLm51bV9zZ2UgPSBwcml2LT5jbS5udW1fZnJhZ3M7CisJaXBvaWJfY21faW5pdF9yeF93cihkZXYsICZwcml2LT5jbS5yeF93ciwgcHJpdi0+Y20ucnhfc2dlKTsKIAogCWlmIChpcG9pYl9jbV9oYXNfc3JxKGRldikpIHsKIAkJZm9yIChpID0gMDsgaSA8IGlwb2liX3JlY3ZxX3NpemU7ICsraSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9ldGh0b29sLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2V0aHRvb2wuYwppbmRleCAxMDI3OWI3Li42NmFmNWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2V0aHRvb2wuYwpAQCAtODYsMTEgKzg2LDU3IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyIGlwb2liX3N0YXRzX2tleXNbXVtFVEhfR1NUUklOR19MRU5dID0geworCSJMUk8gYWdncmVnYXRlZCIsICJMUk8gZmx1c2hlZCIsCisJIkxSTyBhdmcgYWdnciIsICJMUk8gbm8gZGVzYyIKK307CisKK3N0YXRpYyB2b2lkIGlwb2liX2dldF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHUzMiBzdHJpbmdzZXQsIHU4ICpkYXRhKQoreworCXN3aXRjaCAoc3RyaW5nc2V0KSB7CisJY2FzZSBFVEhfU1NfU1RBVFM6CisJCW1lbWNweShkYXRhLCAqaXBvaWJfc3RhdHNfa2V5cywJc2l6ZW9mKGlwb2liX3N0YXRzX2tleXMpKTsKKwkJYnJlYWs7CisJfQorfQorCitzdGF0aWMgaW50IGlwb2liX2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzc2V0KQoreworCXN3aXRjaCAoc3NldCkgeworCWNhc2UgRVRIX1NTX1NUQVRTOgorCQlyZXR1cm4gQVJSQVlfU0laRShpcG9pYl9zdGF0c19rZXlzKTsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJfQorfQorCitzdGF0aWMgdm9pZCBpcG9pYl9nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJCXN0cnVjdCBldGh0b29sX3N0YXRzICpzdGF0cywgdWludDY0X3QgKmRhdGEpCit7CisJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlpbnQgaW5kZXggPSAwOworCisJLyogR2V0IExSTyBzdGF0aXN0aWNzICovCisJZGF0YVtpbmRleCsrXSA9IHByaXYtPmxyby5scm9fbWdyLnN0YXRzLmFnZ3JlZ2F0ZWQ7CisJZGF0YVtpbmRleCsrXSA9IHByaXYtPmxyby5scm9fbWdyLnN0YXRzLmZsdXNoZWQ7CisJaWYgKHByaXYtPmxyby5scm9fbWdyLnN0YXRzLmZsdXNoZWQpCisJCWRhdGFbaW5kZXgrK10gPSBwcml2LT5scm8ubHJvX21nci5zdGF0cy5hZ2dyZWdhdGVkIC8KKwkJCQlwcml2LT5scm8ubHJvX21nci5zdGF0cy5mbHVzaGVkOworCWVsc2UKKwkJZGF0YVtpbmRleCsrXSA9IDA7CisJZGF0YVtpbmRleCsrXSA9IHByaXYtPmxyby5scm9fbWdyLnN0YXRzLm5vX2Rlc2M7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgaXBvaWJfZXRodG9vbF9vcHMgPSB7CiAJLmdldF9kcnZpbmZvCQk9IGlwb2liX2dldF9kcnZpbmZvLAogCS5nZXRfdHNvCQk9IGV0aHRvb2xfb3BfZ2V0X3RzbywKIAkuZ2V0X2NvYWxlc2NlCQk9IGlwb2liX2dldF9jb2FsZXNjZSwKIAkuc2V0X2NvYWxlc2NlCQk9IGlwb2liX3NldF9jb2FsZXNjZSwKKwkuZ2V0X2ZsYWdzCQk9IGV0aHRvb2xfb3BfZ2V0X2ZsYWdzLAorCS5zZXRfZmxhZ3MJCT0gZXRodG9vbF9vcF9zZXRfZmxhZ3MsCisJLmdldF9zdHJpbmdzCQk9IGlwb2liX2dldF9zdHJpbmdzLAorCS5nZXRfc3NldF9jb3VudAkJPSBpcG9pYl9nZXRfc3NldF9jb3VudCwKKwkuZ2V0X2V0aHRvb2xfc3RhdHMJPSBpcG9pYl9nZXRfZXRodG9vbF9zdGF0cywKIH07CiAKIHZvaWQgaXBvaWJfc2V0X2V0aHRvb2xfb3BzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2ZzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2ZzLmMKaW5kZXggOGI4ODJiYi4uOTYxYzU4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9mcy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfZnMuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaXBvaWJfZnMuYyAxMzg5IDIwMDQtMTItMjcgMjI6NTY6NDdaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9pYi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9pYi5jCmluZGV4IGY0MjliY2UuLjY2Y2FmYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfaWIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2liLmMKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlwb2liX2liLmMgMTM4NiAyMDA0LTEyLTI3IDE2OjIzOjE3WiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgpAQCAtMjkwLDcgKzI4OCwxMCBAQAogCWlmICh0ZXN0X2JpdChJUE9JQl9GTEFHX0NTVU0sICZwcml2LT5mbGFncykgJiYgbGlrZWx5KHdjLT5jc3VtX29rKSkKIAkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9VTk5FQ0VTU0FSWTsKIAotCW5ldGlmX3JlY2VpdmVfc2tiKHNrYik7CisJaWYgKGRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX0xSTykKKwkJbHJvX3JlY2VpdmVfc2tiKCZwcml2LT5scm8ubHJvX21nciwgc2tiLCBOVUxMKTsKKwllbHNlCisJCW5ldGlmX3JlY2VpdmVfc2tiKHNrYik7CiAKIHJlcG9zdDoKIAlpZiAodW5saWtlbHkoaXBvaWJfaWJfcG9zdF9yZWNlaXZlKGRldiwgd3JfaWQpKSkKQEAgLTQ0Miw2ICs0NDMsOSBAQAogCX0KIAogCWlmIChkb25lIDwgYnVkZ2V0KSB7CisJCWlmIChkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9MUk8pCisJCQlscm9fZmx1c2hfYWxsKCZwcml2LT5scm8ubHJvX21ncik7CisKIAkJbmV0aWZfcnhfY29tcGxldGUoZGV2LCBuYXBpKTsKIAkJaWYgKHVubGlrZWx5KGliX3JlcV9ub3RpZnlfY3EocHJpdi0+cmVjdl9jcSwKIAkJCQkJICAgICAgSUJfQ1FfTkVYVF9DT01QIHwKQEAgLTg5OCw3ICs5MDIsOCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBfX2lwb2liX2liX2Rldl9mbHVzaChzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYsIGludCBwa2V5X2V2ZW50KQorc3RhdGljIHZvaWQgX19pcG9pYl9pYl9kZXZfZmx1c2goc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2LAorCQkJCWVudW0gaXBvaWJfZmx1c2hfbGV2ZWwgbGV2ZWwpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpjcHJpdjsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gcHJpdi0+ZGV2OwpAQCAtOTExLDcgKzkxNiw3IEBACiAJICogdGhlIHBhcmVudCBpcyBkb3duLgogCSAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkoY3ByaXYsICZwcml2LT5jaGlsZF9pbnRmcywgbGlzdCkKLQkJX19pcG9pYl9pYl9kZXZfZmx1c2goY3ByaXYsIHBrZXlfZXZlbnQpOworCQlfX2lwb2liX2liX2Rldl9mbHVzaChjcHJpdiwgbGV2ZWwpOwogCiAJbXV0ZXhfdW5sb2NrKCZwcml2LT52bGFuX211dGV4KTsKIApAQCAtOTI1LDcgKzkzMCw3IEBACiAJCXJldHVybjsKIAl9CiAKLQlpZiAocGtleV9ldmVudCkgeworCWlmIChsZXZlbCA9PSBJUE9JQl9GTFVTSF9IRUFWWSkgewogCQlpZiAoaWJfZmluZF9wa2V5KHByaXYtPmNhLCBwcml2LT5wb3J0LCBwcml2LT5wa2V5LCAmbmV3X2luZGV4KSkgewogCQkJY2xlYXJfYml0KElQT0lCX1BLRVlfQVNTSUdORUQsICZwcml2LT5mbGFncyk7CiAJCQlpcG9pYl9pYl9kZXZfZG93bihkZXYsIDApOwpAQCAtOTQzLDExICs5NDgsMTUgQEAKIAkJcHJpdi0+cGtleV9pbmRleCA9IG5ld19pbmRleDsKIAl9CiAKLQlpcG9pYl9kYmcocHJpdiwgImZsdXNoaW5nXG4iKTsKKwlpZiAobGV2ZWwgPT0gSVBPSUJfRkxVU0hfTElHSFQpIHsKKwkJaXBvaWJfbWFya19wYXRoc19pbnZhbGlkKGRldik7CisJCWlwb2liX21jYXN0X2Rldl9mbHVzaChkZXYpOworCX0KIAotCWlwb2liX2liX2Rldl9kb3duKGRldiwgMCk7CisJaWYgKGxldmVsID49IElQT0lCX0ZMVVNIX05PUk1BTCkKKwkJaXBvaWJfaWJfZGV2X2Rvd24oZGV2LCAwKTsKIAotCWlmIChwa2V5X2V2ZW50KSB7CisJaWYgKGxldmVsID09IElQT0lCX0ZMVVNIX0hFQVZZKSB7CiAJCWlwb2liX2liX2Rldl9zdG9wKGRldiwgMCk7CiAJCWlwb2liX2liX2Rldl9vcGVuKGRldik7CiAJfQpAQCAtOTU3LDI3ICs5NjYsMzQgQEAKIAkgKiB3ZSBnZXQgaGVyZSwgZG9uJ3QgYnJpbmcgaXQgYmFjayB1cCBpZiBpdCdzIG5vdCBjb25maWd1cmVkIHVwCiAJICovCiAJaWYgKHRlc3RfYml0KElQT0lCX0ZMQUdfQURNSU5fVVAsICZwcml2LT5mbGFncykpIHsKLQkJaXBvaWJfaWJfZGV2X3VwKGRldik7CisJCWlmIChsZXZlbCA+PSBJUE9JQl9GTFVTSF9OT1JNQUwpCisJCQlpcG9pYl9pYl9kZXZfdXAoZGV2KTsKIAkJaXBvaWJfbWNhc3RfcmVzdGFydF90YXNrKCZwcml2LT5yZXN0YXJ0X3Rhc2spOwogCX0KIH0KIAotdm9pZCBpcG9pYl9pYl9kZXZfZmx1c2goc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQordm9pZCBpcG9pYl9pYl9kZXZfZmx1c2hfbGlnaHQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9Ci0JCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYsIGZsdXNoX3Rhc2spOworCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGlwb2liX2Rldl9wcml2LCBmbHVzaF9saWdodCk7CiAKLQlpcG9pYl9kYmcocHJpdiwgIkZsdXNoaW5nICVzXG4iLCBwcml2LT5kZXYtPm5hbWUpOwotCV9faXBvaWJfaWJfZGV2X2ZsdXNoKHByaXYsIDApOworCV9faXBvaWJfaWJfZGV2X2ZsdXNoKHByaXYsIElQT0lCX0ZMVVNIX0xJR0hUKTsKIH0KIAotdm9pZCBpcG9pYl9wa2V5X2V2ZW50KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3ZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoX25vcm1hbChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0KLQkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpcG9pYl9kZXZfcHJpdiwgcGtleV9ldmVudF90YXNrKTsKKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpcG9pYl9kZXZfcHJpdiwgZmx1c2hfbm9ybWFsKTsKIAotCWlwb2liX2RiZyhwcml2LCAiRmx1c2hpbmcgJXMgYW5kIHJlc3RhcnRpbmcgaXRzIFFQXG4iLCBwcml2LT5kZXYtPm5hbWUpOwotCV9faXBvaWJfaWJfZGV2X2ZsdXNoKHByaXYsIDEpOworCV9faXBvaWJfaWJfZGV2X2ZsdXNoKHByaXYsIElQT0lCX0ZMVVNIX05PUk1BTCk7Cit9CisKK3ZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoX2hlYXZ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPQorCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGlwb2liX2Rldl9wcml2LCBmbHVzaF9oZWF2eSk7CisKKwlfX2lwb2liX2liX2Rldl9mbHVzaChwcml2LCBJUE9JQl9GTFVTSF9IRUFWWSk7CiB9CiAKIHZvaWQgaXBvaWJfaWJfZGV2X2NsZWFudXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMKaW5kZXggMjQ0MjA5MC4uOGJlOWVhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlwb2liX21haW4uYyAxMzc3IDIwMDQtMTItMjMgMTk6NTc6MTJaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgImlwb2liLmgiCkBAIC02Miw2ICs2MCwxNSBAQAogbW9kdWxlX3BhcmFtX25hbWVkKHJlY3ZfcXVldWVfc2l6ZSwgaXBvaWJfcmVjdnFfc2l6ZSwgaW50LCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MocmVjdl9xdWV1ZV9zaXplLCAiTnVtYmVyIG9mIGRlc2NyaXB0b3JzIGluIHJlY2VpdmUgcXVldWUiKTsKIAorc3RhdGljIGludCBscm87Cittb2R1bGVfcGFyYW0obHJvLCBib29sLCAwNDQ0KTsKK01PRFVMRV9QQVJNX0RFU0MobHJvLCAgIkVuYWJsZSBMUk8gKExhcmdlIFJlY2VpdmUgT2ZmbG9hZCkiKTsKKworc3RhdGljIGludCBscm9fbWF4X2FnZ3IgPSBJUE9JQl9MUk9fTUFYX0FHR1I7Cittb2R1bGVfcGFyYW0obHJvX21heF9hZ2dyLCBpbnQsIDA2NDQpOworTU9EVUxFX1BBUk1fREVTQyhscm9fbWF4X2FnZ3IsICJMUk86IE1heCBwYWNrZXRzIHRvIGJlIGFnZ3JlZ2F0ZWQgIgorCQkiKGRlZmF1bHQgPSA2NCkiKTsKKwogI2lmZGVmIENPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHCiBpbnQgaXBvaWJfZGVidWdfbGV2ZWw7CiAKQEAgLTM1MCw2ICszNTcsMjMgQEAKIAogI2VuZGlmIC8qIENPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHICovCiAKK3ZvaWQgaXBvaWJfbWFya19wYXRoc19pbnZhbGlkKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlzdHJ1Y3QgaXBvaWJfcGF0aCAqcGF0aCwgKnRwOworCisJc3Bpbl9sb2NrX2lycSgmcHJpdi0+bG9jayk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGF0aCwgdHAsICZwcml2LT5wYXRoX2xpc3QsIGxpc3QpIHsKKwkJaXBvaWJfZGJnKHByaXYsICJtYXJrIHBhdGggTElEIDB4JTA0eCBHSUQgIiBJUE9JQl9HSURfRk1UICIgaW52YWxpZFxuIiwKKwkJCWJlMTZfdG9fY3B1KHBhdGgtPnBhdGhyZWMuZGxpZCksCisJCQlJUE9JQl9HSURfQVJHKHBhdGgtPnBhdGhyZWMuZGdpZCkpOworCQlwYXRoLT52YWxpZCA9ICAwOworCX0KKworCXNwaW5fdW5sb2NrX2lycSgmcHJpdi0+bG9jayk7Cit9CisKIHZvaWQgaXBvaWJfZmx1c2hfcGF0aHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwpAQCAtMzg2LDYgKzQxMCw3IEBACiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHBhdGgtPmRldjsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBpcG9pYl9haCAqYWggPSBOVUxMOworCXN0cnVjdCBpcG9pYl9haCAqb2xkX2FoOwogCXN0cnVjdCBpcG9pYl9uZWlnaCAqbmVpZ2gsICp0bjsKIAlzdHJ1Y3Qgc2tfYnVmZl9oZWFkIHNrcXVldWU7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKQEAgLTQwOSw2ICs0MzQsNyBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKIAorCW9sZF9haCAgID0gcGF0aC0+YWg7CiAJcGF0aC0+YWggPSBhaDsKIAogCWlmIChhaCkgewpAQCAtNDIxLDYgKzQ0NywxNyBAQAogCQkJX19za2JfcXVldWVfdGFpbCgmc2txdWV1ZSwgc2tiKTsKIAogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobmVpZ2gsIHRuLCAmcGF0aC0+bmVpZ2hfbGlzdCwgbGlzdCkgeworCQkJaWYgKG5laWdoLT5haCkgeworCQkJCVdBUk5fT04obmVpZ2gtPmFoICE9IG9sZF9haCk7CisJCQkJLyoKKwkJCQkgKiBEcm9wcGluZyB0aGUgYWggcmVmZXJlbmNlIGluc2lkZQorCQkJCSAqIHByaXYtPmxvY2sgaXMgc2FmZSBoZXJlLCBiZWNhdXNlIHdlCisJCQkJICogd2lsbCBob2xkIG9uZSBtb3JlIHJlZmVyZW5jZSBmcm9tCisJCQkJICogdGhlIG9yaWdpbmFsIHZhbHVlIG9mIHBhdGgtPmFoIChpZQorCQkJCSAqIG9sZF9haCkuCisJCQkJICovCisJCQkJaXBvaWJfcHV0X2FoKG5laWdoLT5haCk7CisJCQl9CiAJCQlrcmVmX2dldCgmcGF0aC0+YWgtPnJlZik7CiAJCQluZWlnaC0+YWggPSBwYXRoLT5haDsKIAkJCW1lbWNweSgmbmVpZ2gtPmRnaWQucmF3LCAmcGF0aC0+cGF0aHJlYy5kZ2lkLnJhdywKQEAgLTQ0Myw2ICs0ODAsNyBAQAogCQkJd2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKCZuZWlnaC0+cXVldWUpKSkKIAkJCQlfX3NrYl9xdWV1ZV90YWlsKCZza3F1ZXVlLCBza2IpOwogCQl9CisJCXBhdGgtPnZhbGlkID0gMTsKIAl9CiAKIAlwYXRoLT5xdWVyeSA9IE5VTEw7CkBAIC00NTAsNiArNDg4LDkgQEAKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKIAorCWlmIChvbGRfYWgpCisJCWlwb2liX3B1dF9haChvbGRfYWgpOworCiAJd2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKCZza3F1ZXVlKSkpIHsKIAkJc2tiLT5kZXYgPSBkZXY7CiAJCWlmIChkZXZfcXVldWVfeG1pdChza2IpKQpAQCAtNjIzLDggKzY2NCw5IEBACiAJc3Bpbl9sb2NrKCZwcml2LT5sb2NrKTsKIAogCXBhdGggPSBfX3BhdGhfZmluZChkZXYsIHBoZHItPmh3YWRkciArIDQpOwotCWlmICghcGF0aCkgewotCQlwYXRoID0gcGF0aF9yZWNfY3JlYXRlKGRldiwgcGhkci0+aHdhZGRyICsgNCk7CisJaWYgKCFwYXRoIHx8ICFwYXRoLT52YWxpZCkgeworCQlpZiAoIXBhdGgpCisJCQlwYXRoID0gcGF0aF9yZWNfY3JlYXRlKGRldiwgcGhkci0+aHdhZGRyICsgNCk7CiAJCWlmIChwYXRoKSB7CiAJCQkvKiBwdXQgcHNldWRvaGVhZGVyIGJhY2sgb24gZm9yIG5leHQgdGltZSAqLwogCQkJc2tiX3B1c2goc2tiLCBzaXplb2YgKnBoZHIpOwpAQCAtOTM4LDYgKzk4MCw1NCBAQAogCS5jcmVhdGUJPSBpcG9pYl9oYXJkX2hlYWRlciwKIH07CiAKK3N0YXRpYyBpbnQgZ2V0X3NrYl9oZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdm9pZCAqKmlwaGRyLAorCQkgICAgICAgdm9pZCAqKnRjcGgsIHU2NCAqaGRyX2ZsYWdzLCB2b2lkICpwcml2KQoreworCXVuc2lnbmVkIGludCBpcF9sZW47CisJc3RydWN0IGlwaGRyICppcGg7CisKKwlpZiAodW5saWtlbHkoc2tiLT5wcm90b2NvbCAhPSBodG9ucyhFVEhfUF9JUCkpKQorCQlyZXR1cm4gLTE7CisKKwkvKgorCSAqIEluIHRoZSBmdXR1cmUgd2UgbWF5IGFkZCBhbiBlbHNlIGNsYXVzZSB0aGF0IHZlcmlmaWVzIHRoZQorCSAqIGNoZWNrc3VtIGFuZCBhbGxvd3MgZGV2aWNlcyB3aGljaCBkbyBub3QgY2FsY3VsYXRlIGNoZWNrc3VtCisJICogdG8gdXNlIExSTy4KKwkgKi8KKwlpZiAodW5saWtlbHkoc2tiLT5pcF9zdW1tZWQgIT0gQ0hFQ0tTVU1fVU5ORUNFU1NBUlkpKQorCQlyZXR1cm4gLTE7CisKKwkvKiBDaGVjayBmb3Igbm9uLVRDUCBwYWNrZXQgKi8KKwlza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKKwlpcGggPSBpcF9oZHIoc2tiKTsKKwlpZiAoaXBoLT5wcm90b2NvbCAhPSBJUFBST1RPX1RDUCkKKwkJcmV0dXJuIC0xOworCisJaXBfbGVuID0gaXBfaGRybGVuKHNrYik7CisJc2tiX3NldF90cmFuc3BvcnRfaGVhZGVyKHNrYiwgaXBfbGVuKTsKKwkqdGNwaCA9IHRjcF9oZHIoc2tiKTsKKworCS8qIGNoZWNrIGlmIElQIGhlYWRlciBhbmQgVENQIGhlYWRlciBhcmUgY29tcGxldGUgKi8KKwlpZiAobnRvaHMoaXBoLT50b3RfbGVuKSA8IGlwX2xlbiArIHRjcF9oZHJsZW4oc2tiKSkKKwkJcmV0dXJuIC0xOworCisJKmhkcl9mbGFncyA9IExST19JUFY0IHwgTFJPX1RDUDsKKwkqaXBoZHIgPSBpcGg7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaXBvaWJfbHJvX3NldHVwKHN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdikKK3sKKwlwcml2LT5scm8ubHJvX21nci5tYXhfYWdncgkgPSBscm9fbWF4X2FnZ3I7CisJcHJpdi0+bHJvLmxyb19tZ3IubWF4X2Rlc2MJID0gSVBPSUJfTUFYX0xST19ERVNDUklQVE9SUzsKKwlwcml2LT5scm8ubHJvX21nci5scm9fYXJyCSA9IHByaXYtPmxyby5scm9fZGVzYzsKKwlwcml2LT5scm8ubHJvX21nci5nZXRfc2tiX2hlYWRlciA9IGdldF9za2JfaGRyOworCXByaXYtPmxyby5scm9fbWdyLmZlYXR1cmVzCSA9IExST19GX05BUEk7CisJcHJpdi0+bHJvLmxyb19tZ3IuZGV2CQkgPSBwcml2LT5kZXY7CisJcHJpdi0+bHJvLmxyb19tZ3IuaXBfc3VtbWVkX2FnZ3IgPSBDSEVDS1NVTV9VTk5FQ0VTU0FSWTsKK30KKwogc3RhdGljIHZvaWQgaXBvaWJfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwpAQCAtOTc3LDEwICsxMDY3LDExIEBACiAKIAlwcml2LT5kZXYgPSBkZXY7CiAKKwlpcG9pYl9scm9fc2V0dXAocHJpdik7CisKIAlzcGluX2xvY2tfaW5pdCgmcHJpdi0+bG9jayk7CiAJc3Bpbl9sb2NrX2luaXQoJnByaXYtPnR4X2xvY2spOwogCi0JbXV0ZXhfaW5pdCgmcHJpdi0+bWNhc3RfbXV0ZXgpOwogCW11dGV4X2luaXQoJnByaXYtPnZsYW5fbXV0ZXgpOwogCiAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPnBhdGhfbGlzdCk7CkBAIC05ODksOSArMTA4MCwxMCBAQAogCUlOSVRfTElTVF9IRUFEKCZwcml2LT5tdWx0aWNhc3RfbGlzdCk7CiAKIAlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+cGtleV9wb2xsX3Rhc2ssIGlwb2liX3BrZXlfcG9sbCk7Ci0JSU5JVF9XT1JLKCZwcml2LT5wa2V5X2V2ZW50X3Rhc2ssIGlwb2liX3BrZXlfZXZlbnQpOwogCUlOSVRfREVMQVlFRF9XT1JLKCZwcml2LT5tY2FzdF90YXNrLCAgIGlwb2liX21jYXN0X2pvaW5fdGFzayk7Ci0JSU5JVF9XT1JLKCZwcml2LT5mbHVzaF90YXNrLCAgIGlwb2liX2liX2Rldl9mbHVzaCk7CisJSU5JVF9XT1JLKCZwcml2LT5mbHVzaF9saWdodCwgICBpcG9pYl9pYl9kZXZfZmx1c2hfbGlnaHQpOworCUlOSVRfV09SSygmcHJpdi0+Zmx1c2hfbm9ybWFsLCAgIGlwb2liX2liX2Rldl9mbHVzaF9ub3JtYWwpOworCUlOSVRfV09SSygmcHJpdi0+Zmx1c2hfaGVhdnksICAgaXBvaWJfaWJfZGV2X2ZsdXNoX2hlYXZ5KTsKIAlJTklUX1dPUksoJnByaXYtPnJlc3RhcnRfdGFzaywgaXBvaWJfbWNhc3RfcmVzdGFydF90YXNrKTsKIAlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+YWhfcmVhcF90YXNrLCBpcG9pYl9yZWFwX2FoKTsKIH0KQEAgLTExNTQsNiArMTI0Niw5IEBACiAJCXByaXYtPmRldi0+ZmVhdHVyZXMgfD0gTkVUSUZfRl9TRyB8IE5FVElGX0ZfSVBfQ1NVTTsKIAl9CiAKKwlpZiAobHJvKQorCQlwcml2LT5kZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfTFJPOworCiAJLyoKIAkgKiBTZXQgdGhlIGZ1bGwgbWVtYmVyc2hpcCBiaXQsIHNvIHRoYXQgd2Ugam9pbiB0aGUgcmlnaHQKIAkgKiBicm9hZGNhc3QgZ3JvdXAsIGV0Yy4KQEAgLTEzMDQsNiArMTM5OSwxMiBAQAogCWlwb2liX21heF9jb25uX3FwID0gbWluKGlwb2liX21heF9jb25uX3FwLCBJUE9JQl9DTV9NQVhfQ09OTl9RUCk7CiAjZW5kaWYKIAorCS8qCisJICogV2hlbiBjb3B5aW5nIHNtYWxsIHJlY2VpdmVkIHBhY2tldHMsIHdlIG9ubHkgY29weSBmcm9tIHRoZQorCSAqIGxpbmVhciBkYXRhIHBhcnQgb2YgdGhlIFNLQiwgc28gd2UgcmVseSBvbiB0aGlzIGNvbmRpdGlvbi4KKwkgKi8KKwlCVUlMRF9CVUdfT04oSVBPSUJfQ01fQ09QWUJSRUFLID4gSVBPSUJfQ01fSEVBRF9TSVpFKTsKKwogCXJldCA9IGlwb2liX3JlZ2lzdGVyX2RlYnVnZnMoKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tdWx0aWNhc3QuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbXVsdGljYXN0LmMKaW5kZXggM2Y2NjNmYi4uMWZjYzlhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tdWx0aWNhc3QuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX211bHRpY2FzdC5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpcG9pYl9tdWx0aWNhc3QuYyAxMzYyIDIwMDQtMTItMTggMTU6NTY6MjlaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgpAQCAtMTg4LDYgKzE4Niw3IEBACiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgaXBvaWJfYWggKmFoOwogCWludCByZXQ7CisJaW50IHNldF9xa2V5ID0gMDsKIAogCW1jYXN0LT5tY21lbWJlciA9ICptY21lbWJlcjsKIApAQCAtMjAyLDYgKzIwMSw3IEBACiAJCXByaXYtPnFrZXkgPSBiZTMyX3RvX2NwdShwcml2LT5icm9hZGNhc3QtPm1jbWVtYmVyLnFrZXkpOwogCQlzcGluX3VubG9ja19pcnEoJnByaXYtPmxvY2spOwogCQlwcml2LT50eF93ci53ci51ZC5yZW1vdGVfcWtleSA9IHByaXYtPnFrZXk7CisJCXNldF9xa2V5ID0gMTsKIAl9CiAKIAlpZiAoIXRlc3RfYml0KElQT0lCX01DQVNUX0ZMQUdfU0VORE9OTFksICZtY2FzdC0+ZmxhZ3MpKSB7CkBAIC0yMTQsNyArMjE0LDcgQEAKIAkJfQogCiAJCXJldCA9IGlwb2liX21jYXN0X2F0dGFjaChkZXYsIGJlMTZfdG9fY3B1KG1jYXN0LT5tY21lbWJlci5tbGlkKSwKLQkJCQkJICZtY2FzdC0+bWNtZW1iZXIubWdpZCk7CisJCQkJCSAmbWNhc3QtPm1jbWVtYmVyLm1naWQsIHNldF9xa2V5KTsKIAkJaWYgKHJldCA8IDApIHsKIAkJCWlwb2liX3dhcm4ocHJpdiwgImNvdWxkbid0IGF0dGFjaCBRUCB0byBtdWx0aWNhc3QgZ3JvdXAgIgogCQkJCSAgIElQT0lCX0dJRF9GTVQgIlxuIiwKQEAgLTU3NSw4ICs1NzUsMTEgQEAKIAogCXByaXYtPm1jYXN0X210dSA9IElQT0lCX1VEX01UVShpYl9tdHVfZW51bV90b19pbnQocHJpdi0+YnJvYWRjYXN0LT5tY21lbWJlci5tdHUpKTsKIAotCWlmICghaXBvaWJfY21fYWRtaW5fZW5hYmxlZChkZXYpKQotCQlkZXYtPm10dSA9IG1pbihwcml2LT5tY2FzdF9tdHUsIHByaXYtPmFkbWluX210dSk7CisJaWYgKCFpcG9pYl9jbV9hZG1pbl9lbmFibGVkKGRldikpIHsKKwkJcnRubF9sb2NrKCk7CisJCWRldl9zZXRfbXR1KGRldiwgbWluKHByaXYtPm1jYXN0X210dSwgcHJpdi0+YWRtaW5fbXR1KSk7CisJCXJ0bmxfdW5sb2NrKCk7CisJfQogCiAJaXBvaWJfZGJnX21jYXN0KHByaXYsICJzdWNjZXNzZnVsbHkgam9pbmVkIGFsbCBtdWx0aWNhc3QgZ3JvdXBzXG4iKTsKIApAQCAtNTk0LDEwICs1OTcsNiBAQAogCQlxdWV1ZV9kZWxheWVkX3dvcmsoaXBvaWJfd29ya3F1ZXVlLCAmcHJpdi0+bWNhc3RfdGFzaywgMCk7CiAJbXV0ZXhfdW5sb2NrKCZtY2FzdF9tdXRleCk7CiAKLQlzcGluX2xvY2tfaXJxKCZwcml2LT5sb2NrKTsKLQlzZXRfYml0KElQT0lCX01DQVNUX1NUQVJURUQsICZwcml2LT5mbGFncyk7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZwcml2LT5sb2NrKTsKLQogCXJldHVybiAwOwogfQogCkBAIC02MDcsMTAgKzYwNiw2IEBACiAKIAlpcG9pYl9kYmdfbWNhc3QocHJpdiwgInN0b3BwaW5nIG11bHRpY2FzdCB0aHJlYWRcbiIpOwogCi0Jc3Bpbl9sb2NrX2lycSgmcHJpdi0+bG9jayk7Ci0JY2xlYXJfYml0KElQT0lCX01DQVNUX1NUQVJURUQsICZwcml2LT5mbGFncyk7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZwcml2LT5sb2NrKTsKLQogCW11dGV4X2xvY2soJm1jYXN0X211dGV4KTsKIAljbGVhcl9iaXQoSVBPSUJfTUNBU1RfUlVOLCAmcHJpdi0+ZmxhZ3MpOwogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPm1jYXN0X3Rhc2spOwpAQCAtNjM1LDEwICs2MzAsMTAgQEAKIAkJCQlJUE9JQl9HSURfQVJHKG1jYXN0LT5tY21lbWJlci5tZ2lkKSk7CiAKIAkJLyogUmVtb3ZlIG91cnNlbHZlcyBmcm9tIHRoZSBtdWx0aWNhc3QgZ3JvdXAgKi8KLQkJcmV0ID0gaXBvaWJfbWNhc3RfZGV0YWNoKGRldiwgYmUxNl90b19jcHUobWNhc3QtPm1jbWVtYmVyLm1saWQpLAotCQkJCQkgJm1jYXN0LT5tY21lbWJlci5tZ2lkKTsKKwkJcmV0ID0gaWJfZGV0YWNoX21jYXN0KHByaXYtPnFwLCAmbWNhc3QtPm1jbWVtYmVyLm1naWQsCisJCQkJICAgICAgYmUxNl90b19jcHUobWNhc3QtPm1jbWVtYmVyLm1saWQpKTsKIAkJaWYgKHJldCkKLQkJCWlwb2liX3dhcm4ocHJpdiwgImlwb2liX21jYXN0X2RldGFjaCBmYWlsZWQgKHJlc3VsdCA9ICVkKVxuIiwgcmV0KTsKKwkJCWlwb2liX3dhcm4ocHJpdiwgImliX2RldGFjaF9tY2FzdCBmYWlsZWQgKHJlc3VsdCA9ICVkKVxuIiwgcmV0KTsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmVyYnMuYwppbmRleCA4NzY2ZDI5Li42ODMyNTExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZlcmJzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92ZXJicy5jCkBAIC0yOSwyNCArMjksMTcgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlwb2liX3ZlcmJzLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlICJpcG9pYi5oIgogCi1pbnQgaXBvaWJfbWNhc3RfYXR0YWNoKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiBtbGlkLCB1bmlvbiBpYl9naWQgKm1naWQpCitpbnQgaXBvaWJfbWNhc3RfYXR0YWNoKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiBtbGlkLCB1bmlvbiBpYl9naWQgKm1naWQsIGludCBzZXRfcWtleSkKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwotCXN0cnVjdCBpYl9xcF9hdHRyICpxcF9hdHRyOworCXN0cnVjdCBpYl9xcF9hdHRyICpxcF9hdHRyID0gTlVMTDsKIAlpbnQgcmV0OwogCXUxNiBwa2V5X2luZGV4OwogCi0JcmV0ID0gLUVOT01FTTsKLQlxcF9hdHRyID0ga21hbGxvYyhzaXplb2YgKnFwX2F0dHIsIEdGUF9LRVJORUwpOwotCWlmICghcXBfYXR0cikKLQkJZ290byBvdXQ7Ci0KIAlpZiAoaWJfZmluZF9wa2V5KHByaXYtPmNhLCBwcml2LT5wb3J0LCBwcml2LT5wa2V5LCAmcGtleV9pbmRleCkpIHsKIAkJY2xlYXJfYml0KElQT0lCX1BLRVlfQVNTSUdORUQsICZwcml2LT5mbGFncyk7CiAJCXJldCA9IC1FTlhJTzsKQEAgLTU0LDE4ICs0NywyMyBAQAogCX0KIAlzZXRfYml0KElQT0lCX1BLRVlfQVNTSUdORUQsICZwcml2LT5mbGFncyk7CiAKLQkvKiBzZXQgY29ycmVjdCBRS2V5IGZvciBRUCAqLwotCXFwX2F0dHItPnFrZXkgPSBwcml2LT5xa2V5OwotCXJldCA9IGliX21vZGlmeV9xcChwcml2LT5xcCwgcXBfYXR0ciwgSUJfUVBfUUtFWSk7Ci0JaWYgKHJldCkgewotCQlpcG9pYl93YXJuKHByaXYsICJmYWlsZWQgdG8gbW9kaWZ5IFFQLCByZXQgPSAlZFxuIiwgcmV0KTsKLQkJZ290byBvdXQ7CisJaWYgKHNldF9xa2V5KSB7CisJCXJldCA9IC1FTk9NRU07CisJCXFwX2F0dHIgPSBrbWFsbG9jKHNpemVvZiAqcXBfYXR0ciwgR0ZQX0tFUk5FTCk7CisJCWlmICghcXBfYXR0cikKKwkJCWdvdG8gb3V0OworCisJCS8qIHNldCBjb3JyZWN0IFFLZXkgZm9yIFFQICovCisJCXFwX2F0dHItPnFrZXkgPSBwcml2LT5xa2V5OworCQlyZXQgPSBpYl9tb2RpZnlfcXAocHJpdi0+cXAsIHFwX2F0dHIsIElCX1FQX1FLRVkpOworCQlpZiAocmV0KSB7CisJCQlpcG9pYl93YXJuKHByaXYsICJmYWlsZWQgdG8gbW9kaWZ5IFFQLCByZXQgPSAlZFxuIiwgcmV0KTsKKwkJCWdvdG8gb3V0OworCQl9CiAJfQogCiAJLyogYXR0YWNoIFFQIHRvIG11bHRpY2FzdCBncm91cCAqLwotCW11dGV4X2xvY2soJnByaXYtPm1jYXN0X211dGV4KTsKIAlyZXQgPSBpYl9hdHRhY2hfbWNhc3QocHJpdi0+cXAsIG1naWQsIG1saWQpOwotCW11dGV4X3VubG9jaygmcHJpdi0+bWNhc3RfbXV0ZXgpOwogCWlmIChyZXQpCiAJCWlwb2liX3dhcm4ocHJpdiwgImZhaWxlZCB0byBhdHRhY2ggdG8gbXVsdGljYXN0IGdyb3VwLCByZXQgPSAlZFxuIiwgcmV0KTsKIApAQCAtNzQsMjAgKzcyLDYgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgaXBvaWJfbWNhc3RfZGV0YWNoKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiBtbGlkLCB1bmlvbiBpYl9naWQgKm1naWQpCi17Ci0Jc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKLQlpbnQgcmV0OwotCi0JbXV0ZXhfbG9jaygmcHJpdi0+bWNhc3RfbXV0ZXgpOwotCXJldCA9IGliX2RldGFjaF9tY2FzdChwcml2LT5xcCwgbWdpZCwgbWxpZCk7Ci0JbXV0ZXhfdW5sb2NrKCZwcml2LT5tY2FzdF9tdXRleCk7Ci0JaWYgKHJldCkKLQkJaXBvaWJfd2Fybihwcml2LCAiaWJfZGV0YWNoX21jYXN0IGZhaWxlZCAocmVzdWx0ID0gJWQpXG4iLCByZXQpOwotCi0JcmV0dXJuIHJldDsKLX0KLQogaW50IGlwb2liX2luaXRfcXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwpAQCAtMjAxLDcgKzE4NSwxMCBAQAogCWluaXRfYXR0ci5yZWN2X2NxID0gcHJpdi0+cmVjdl9jcTsKIAogCWlmIChwcml2LT5oY2FfY2FwcyAmIElCX0RFVklDRV9VRF9UU08pCi0JCWluaXRfYXR0ci5jcmVhdGVfZmxhZ3MgPSBJQl9RUF9DUkVBVEVfSVBPSUJfVURfTFNPOworCQlpbml0X2F0dHIuY3JlYXRlX2ZsYWdzIHw9IElCX1FQX0NSRUFURV9JUE9JQl9VRF9MU087CisKKwlpZiAocHJpdi0+aGNhX2NhcHMgJiBJQl9ERVZJQ0VfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLKQorCQlpbml0X2F0dHIuY3JlYXRlX2ZsYWdzIHw9IElCX1FQX0NSRUFURV9CTE9DS19NVUxUSUNBU1RfTE9PUEJBQ0s7CiAKIAlpZiAoZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfU0cpCiAJCWluaXRfYXR0ci5jYXAubWF4X3NlbmRfc2dlID0gTUFYX1NLQl9GUkFHUyArIDE7CkBAIC0yODksMTUgKzI3NiwxNyBAQAogCWlmIChyZWNvcmQtPmVsZW1lbnQucG9ydF9udW0gIT0gcHJpdi0+cG9ydCkKIAkJcmV0dXJuOwogCi0JaWYgKHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfUE9SVF9FUlIgICAgfHwKLQkgICAgcmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9QT1JUX0FDVElWRSB8fAotCSAgICByZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX0xJRF9DSEFOR0UgIHx8Ci0JICAgIHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfU01fQ0hBTkdFICAgfHwKKwlpcG9pYl9kYmcocHJpdiwgIkV2ZW50ICVkIG9uIGRldmljZSAlcyBwb3J0ICVkXG4iLCByZWNvcmQtPmV2ZW50LAorCQkgIHJlY29yZC0+ZGV2aWNlLT5uYW1lLCByZWNvcmQtPmVsZW1lbnQucG9ydF9udW0pOworCisJaWYgKHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfU01fQ0hBTkdFIHx8CiAJICAgIHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfQ0xJRU5UX1JFUkVHSVNURVIpIHsKLQkJaXBvaWJfZGJnKHByaXYsICJQb3J0IHN0YXRlIGNoYW5nZSBldmVudFxuIik7Ci0JCXF1ZXVlX3dvcmsoaXBvaWJfd29ya3F1ZXVlLCAmcHJpdi0+Zmx1c2hfdGFzayk7CisJCXF1ZXVlX3dvcmsoaXBvaWJfd29ya3F1ZXVlLCAmcHJpdi0+Zmx1c2hfbGlnaHQpOworCX0gZWxzZSBpZiAocmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9QT1JUX0VSUiB8fAorCQkgICByZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX1BPUlRfQUNUSVZFIHx8CisJCSAgIHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfTElEX0NIQU5HRSkgeworCQlxdWV1ZV93b3JrKGlwb2liX3dvcmtxdWV1ZSwgJnByaXYtPmZsdXNoX25vcm1hbCk7CiAJfSBlbHNlIGlmIChyZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX1BLRVlfQ0hBTkdFKSB7Ci0JCWlwb2liX2RiZyhwcml2LCAiUF9LZXkgY2hhbmdlIGV2ZW50IG9uIHBvcnQ6JWRcbiIsIHByaXYtPnBvcnQpOwotCQlxdWV1ZV93b3JrKGlwb2liX3dvcmtxdWV1ZSwgJnByaXYtPnBrZXlfZXZlbnRfdGFzayk7CisJCXF1ZXVlX3dvcmsoaXBvaWJfd29ya3F1ZXVlLCAmcHJpdi0+Zmx1c2hfaGVhdnkpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMKaW5kZXggMWNkYjVjZi4uYjA4ZWI1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlwb2liX3ZsYW4uYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzY3NpX2lzZXIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmMKaW5kZXggYWViNThjYS4uMzU2ZmFjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzY3NpX2lzZXIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNjc2lfaXNlci5jCkBAIC00Miw5ICs0Miw2IEBACiAgKglaaGVueXUgV2FuZwogICogTW9kaWZpZWQgYnk6CiAgKiAgICAgIEVyZXogWmlsYmVyCi0gKgotICoKLSAqICRJZDogaXNjc2lfaXNlci5jIDY5NjUgMjAwNi0wNS0wNyAxMTozNjoyMFogb2dlcmxpdHogJAogICovCiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzY3NpX2lzZXIuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmgKaW5kZXggYThjMWIzMC4uMGUxMDcwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzY3NpX2lzZXIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNjc2lfaXNlci5oCkBAIC0zNiw4ICszNiw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpc2NzaV9pc2VyLmggNzA1MSAyMDA2LTA1LTEwIDEyOjI5OjExWiBvZ2VybGl0eiAkCiAgKi8KICNpZm5kZWYgX19JU0NTSV9JU0VSX0hfXwogI2RlZmluZSBfX0lTQ1NJX0lTRVJfSF9fCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl9pbml0aWF0b3IuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX2luaXRpYXRvci5jCmluZGV4IDA4ZGM4MWMuLjMxYWQ0OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX2luaXRpYXRvci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX2luaXRpYXRvci5jCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpc2VyX2luaXRpYXRvci5jIDY5NjQgMjAwNi0wNS0wNyAxMToxMTo0M1ogb2dlcmxpdHogJAogICovCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfbWVtb3J5LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl9tZW1vcnkuYwppbmRleCBjYWM1MGM0Li44MWU0OWNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl9tZW1vcnkuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl9tZW1vcnkuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaXNlcl9tZW1vcnkuYyA2OTY0IDIwMDYtMDUtMDcgMTE6MTE6NDNaIG9nZXJsaXR6ICQKICAqLwogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX3ZlcmJzLmMKaW5kZXggZDE5Y2ZlNi4uNzdjYWJlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl92ZXJicy5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpc2VyX3ZlcmJzLmMgNzA1MSAyMDA2LTA1LTEwIDEyOjI5OjExWiBvZ2VybGl0eiAkCiAgKi8KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwL2liX3NycC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmMKaW5kZXggNDM1MTQ1Ny4uZWQ3YzVmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3NycC5jIDM5MzIgMjAwNS0xMS0wMSAxNzoxOToyOVogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC00OSw4ICs0Nyw2IEBACiAjaW5jbHVkZSA8c2NzaS9zcnAuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfdHJhbnNwb3J0X3NycC5oPgogCi0jaW5jbHVkZSA8cmRtYS9pYl9jYWNoZS5oPgotCiAjaW5jbHVkZSAiaWJfc3JwLmgiCiAKICNkZWZpbmUgRFJWX05BTUUJImliX3NycCIKQEAgLTE4MywxMCArMTc5LDEwIEBACiAJaWYgKCFhdHRyKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXJldCA9IGliX2ZpbmRfY2FjaGVkX3BrZXkodGFyZ2V0LT5zcnBfaG9zdC0+c3JwX2Rldi0+ZGV2LAotCQkJCSAgdGFyZ2V0LT5zcnBfaG9zdC0+cG9ydCwKLQkJCQkgIGJlMTZfdG9fY3B1KHRhcmdldC0+cGF0aC5wa2V5KSwKLQkJCQkgICZhdHRyLT5wa2V5X2luZGV4KTsKKwlyZXQgPSBpYl9maW5kX3BrZXkodGFyZ2V0LT5zcnBfaG9zdC0+c3JwX2Rldi0+ZGV2LAorCQkJICAgdGFyZ2V0LT5zcnBfaG9zdC0+cG9ydCwKKwkJCSAgIGJlMTZfdG9fY3B1KHRhcmdldC0+cGF0aC5wa2V5KSwKKwkJCSAgICZhdHRyLT5wa2V5X2luZGV4KTsKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKIApAQCAtMTg4Myw4ICsxODc5LDcgQEAKIAlpZiAocmV0KQogCQlnb3RvIGVycjsKIAotCWliX2dldF9jYWNoZWRfZ2lkKGhvc3QtPnNycF9kZXYtPmRldiwgaG9zdC0+cG9ydCwgMCwKLQkJCSAgJnRhcmdldC0+cGF0aC5zZ2lkKTsKKwlpYl9xdWVyeV9naWQoaG9zdC0+c3JwX2Rldi0+ZGV2LCBob3N0LT5wb3J0LCAwLCAmdGFyZ2V0LT5wYXRoLnNnaWQpOwogCiAJc2hvc3RfcHJpbnRrKEtFUk5fREVCVUcsIHRhcmdldC0+c2NzaV9ob3N0LCBQRlgKIAkJICAgICAibmV3IHRhcmdldDogaWRfZXh0ICUwMTZsbHggaW9jX2d1aWQgJTAxNmxseCBwa2V5ICUwNHggIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmggYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL3NycC9pYl9zcnAuaAppbmRleCA2M2QyYWU3Mi4uZTE4NWI5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmgKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3NycC5oIDM5MzIgMjAwNS0xMS0wMSAxNzoxOToyOVogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIElCX1NSUF9ICmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2ZmLWNvcmUuYyBiL2RyaXZlcnMvaW5wdXQvZmYtY29yZS5jCmluZGV4IGVlYmM3MjQuLjcyYzYzZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvZmYtY29yZS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvZmYtY29yZS5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAKIC8qCiAgKiBDaGVjayB0aGF0IHRoZSBlZmZlY3RfaWQgaXMgYSB2YWxpZCBlZmZlY3QgYW5kIHdoZXRoZXIgdGhlIHVzZXIKQEAgLTE2Niw4ICsxNjcsMTAgQEAKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKIAorCXNwaW5fbG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CiAJZmYtPmVmZmVjdHNbaWRdID0gKmVmZmVjdDsKIAlmZi0+ZWZmZWN0X293bmVyc1tpZF0gPSBmaWxlOworCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAogIG91dDoKIAltdXRleF91bmxvY2soJmZmLT5tdXRleCk7CkBAIC0xODksMTUgKzE5MiwyMSBAQAogCWlmIChlcnJvcikKIAkJcmV0dXJuIGVycm9yOwogCisJc3Bpbl9sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAlmZi0+cGxheWJhY2soZGV2LCBlZmZlY3RfaWQsIDApOworCWZmLT5lZmZlY3Rfb3duZXJzW2VmZmVjdF9pZF0gPSBOVUxMOworCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAogCWlmIChmZi0+ZXJhc2UpIHsKIAkJZXJyb3IgPSBmZi0+ZXJhc2UoZGV2LCBlZmZlY3RfaWQpOwotCQlpZiAoZXJyb3IpCi0JCQlyZXR1cm4gZXJyb3I7Ci0JfQorCQlpZiAoZXJyb3IpIHsKKwkJCXNwaW5fbG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CisJCQlmZi0+ZWZmZWN0X293bmVyc1tlZmZlY3RfaWRdID0gZmlsZTsKKwkJCXNwaW5fdW5sb2NrX2lycSgmZGV2LT5ldmVudF9sb2NrKTsKIAotCWZmLT5lZmZlY3Rfb3duZXJzW2VmZmVjdF9pZF0gPSBOVUxMOworCQkJcmV0dXJuIGVycm9yOworCQl9CisJfQogCiAJcmV0dXJuIDA7CiB9CkBAIC0yNjMsOCArMjcyLDYgQEAKIAlpZiAodHlwZSAhPSBFVl9GRikKIAkJcmV0dXJuIDA7CiAKLQltdXRleF9sb2NrKCZmZi0+bXV0ZXgpOwotCiAJc3dpdGNoIChjb2RlKSB7CiAJY2FzZSBGRl9HQUlOOgogCQlpZiAoIXRlc3RfYml0KEZGX0dBSU4sIGRldi0+ZmZiaXQpIHx8IHZhbHVlID4gMHhmZmZmKQpAQCAtMjg2LDcgKzI5Myw2IEBACiAJCWJyZWFrOwogCX0KIAotCW11dGV4X3VubG9jaygmZmYtPm11dGV4KTsKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGlucHV0X2ZmX2V2ZW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvaW5wdXQuYyBiL2RyaXZlcnMvaW5wdXQvaW5wdXQuYwppbmRleCAyNzAwNmZjLi40MDhkZjBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2lucHV0LmMKKysrIGIvZHJpdmVycy9pbnB1dC9pbnB1dC5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKIE1PRFVMRV9BVVRIT1IoIlZvanRlY2ggUGF2bGlrIDx2b2p0ZWNoQHN1c2UuY3o+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIklucHV0IGNvcmUiKTsKQEAgLTE1ODgsMTMgKzE1ODksMTcgQEAKIAogc3RhdGljIGludCBpbnB1dF9vcGVuX2ZpbGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0Jc3RydWN0IGlucHV0X2hhbmRsZXIgKmhhbmRsZXIgPSBpbnB1dF90YWJsZVtpbWlub3IoaW5vZGUpID4+IDVdOworCXN0cnVjdCBpbnB1dF9oYW5kbGVyICpoYW5kbGVyOwogCWNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKm9sZF9mb3BzLCAqbmV3X2ZvcHMgPSBOVUxMOwogCWludCBlcnI7CiAKKwlsb2NrX2tlcm5lbCgpOwogCS8qIE5vIGxvYWQtb24tZGVtYW5kIGhlcmU/ICovCi0JaWYgKCFoYW5kbGVyIHx8ICEobmV3X2ZvcHMgPSBmb3BzX2dldChoYW5kbGVyLT5mb3BzKSkpCi0JCXJldHVybiAtRU5PREVWOworCWhhbmRsZXIgPSBpbnB1dF90YWJsZVtpbWlub3IoaW5vZGUpID4+IDVdOworCWlmICghaGFuZGxlciB8fCAhKG5ld19mb3BzID0gZm9wc19nZXQoaGFuZGxlci0+Zm9wcykpKSB7CisJCWVyciA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAogCS8qCiAJICogVGhhdCdzIF9yZWFsbHlfIG9kZC4gVXN1YWxseSBOVUxMIC0+b3BlbiBtZWFucyAibm90aGluZyBzcGVjaWFsIiwKQEAgLTE2MDIsNyArMTYwNyw4IEBACiAJICovCiAJaWYgKCFuZXdfZm9wcy0+b3BlbikgewogCQlmb3BzX3B1dChuZXdfZm9wcyk7Ci0JCXJldHVybiAtRU5PREVWOworCQllcnIgPSAtRU5PREVWOworCQlnb3RvIG91dDsKIAl9CiAJb2xkX2ZvcHMgPSBmaWxlLT5mX29wOwogCWZpbGUtPmZfb3AgPSBuZXdfZm9wczsKQEAgLTE2MTQsNiArMTYyMCw4IEBACiAJCWZpbGUtPmZfb3AgPSBmb3BzX2dldChvbGRfZm9wcyk7CiAJfQogCWZvcHNfcHV0KG9sZF9mb3BzKTsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL2hwX3NkY19ydGMuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9ocF9zZGNfcnRjLmMKaW5kZXggNDVlNWQwNS4uNDlkOGFiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9taXNjL2hwX3NkY19ydGMuYworKysgYi9kcml2ZXJzL2lucHV0L21pc2MvaHBfc2RjX3J0Yy5jCkBAIC0zNSw2ICszNSw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9ocF9zZGMuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC00MDgsNiArNDA5LDcgQEAKIAogc3RhdGljIGludCBocF9zZGNfcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKICAgICAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy91aW5wdXQuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy91aW5wdXQuYwppbmRleCBhNTZhZDRiLi4yYmNmYTBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvdWlucHV0LmMKKysrIGIvZHJpdmVycy9pbnB1dC9taXNjL3VpbnB1dC5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvdWlucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogc3RhdGljIGludCB1aW5wdXRfZGV2X2V2ZW50KHN0cnVjdCBpbnB1dF9kZXYgKmRldiwgdW5zaWduZWQgaW50IHR5cGUsIHVuc2lnbmVkIGludCBjb2RlLCBpbnQgdmFsdWUpCiB7CkBAIC0yMjIsNiArMjIzLDcgQEAKIAlpZiAoIW5ld2RldikKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2luaXQoJm5ld2Rldi0+bXV0ZXgpOwogCXNwaW5fbG9ja19pbml0KCZuZXdkZXYtPnJlcXVlc3RzX2xvY2spOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJm5ld2Rldi0+cmVxdWVzdHNfd2FpdHEpOwpAQCAtMjI5LDYgKzIzMSw3IEBACiAJbmV3ZGV2LT5zdGF0ZSA9IFVJU1RfTkVXX0RFVklDRTsKIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IG5ld2RldjsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbW91c2VkZXYuYyBiL2RyaXZlcnMvaW5wdXQvbW91c2VkZXYuYwppbmRleCBiOTg5NzQ4Li44MTM3ZTUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlZGV2LmMKKysrIGIvZHJpdmVycy9pbnB1dC9tb3VzZWRldi5jCkBAIC0xNCw2ICsxNCw3IEBACiAjZGVmaW5lIE1PVVNFREVWX01JWAkJMzEKIAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC01NDUsMTYgKzU0NiwyMSBAQAogCWlmIChpID49IE1PVVNFREVWX01JTk9SUykKIAkJcmV0dXJuIC1FTk9ERVY7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWVycm9yID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZtb3VzZWRldl90YWJsZV9tdXRleCk7Ci0JaWYgKGVycm9yKQorCWlmIChlcnJvcikgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiBlcnJvcjsKKwl9CiAJbW91c2VkZXYgPSBtb3VzZWRldl90YWJsZVtpXTsKIAlpZiAobW91c2VkZXYpCiAJCWdldF9kZXZpY2UoJm1vdXNlZGV2LT5kZXYpOwogCW11dGV4X3VubG9jaygmbW91c2VkZXZfdGFibGVfbXV0ZXgpOwogCi0JaWYgKCFtb3VzZWRldikKKwlpZiAoIW1vdXNlZGV2KSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9ERVY7CisJfQogCiAJY2xpZW50ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1vdXNlZGV2X2NsaWVudCksIEdGUF9LRVJORUwpOwogCWlmICghY2xpZW50KSB7CkBAIC01NzMsNiArNTc5LDcgQEAKIAkJZ290byBlcnJfZnJlZV9jbGllbnQ7CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBjbGllbnQ7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiAgZXJyX2ZyZWVfY2xpZW50OgpAQCAtNTgwLDYgKzU4Nyw3IEBACiAJa2ZyZWUoY2xpZW50KTsKICBlcnJfcHV0X21vdXNlZGV2OgogCXB1dF9kZXZpY2UoJm1vdXNlZGV2LT5kZXYpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gZXJyb3I7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvc2VyaW8vc2VyaW9fcmF3LmMgYi9kcml2ZXJzL2lucHV0L3NlcmlvL3NlcmlvX3Jhdy5jCmluZGV4IDA0MDM2MjIuLmM5Mzk3YzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvc2VyaW8vc2VyaW9fcmF3LmMKKysrIGIvZHJpdmVycy9pbnB1dC9zZXJpby9zZXJpb19yYXcuYwpAQCAtMTAsNiArMTAsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaW8uaD4KQEAgLTgxLDkgKzgyLDEwIEBACiAJc3RydWN0IHNlcmlvX3Jhd19saXN0ICpsaXN0OwogCWludCByZXR2YWwgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAlyZXR2YWwgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJnNlcmlvX3Jhd19tdXRleCk7CiAJaWYgKHJldHZhbCkKLQkJcmV0dXJuIHJldHZhbDsKKwkJZ290byBvdXRfYmtsOwogCiAJaWYgKCEoc2VyaW9fcmF3ID0gc2VyaW9fcmF3X2xvY2F0ZShpbWlub3IoaW5vZGUpKSkpIHsKIAkJcmV0dmFsID0gLUVOT0RFVjsKQEAgLTEwOCw2ICsxMTAsOCBAQAogCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZzZXJpb19yYXdfbXV0ZXgpOworb3V0X2JrbDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldHZhbDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC94ZW4ta2JkZnJvbnQuYyBiL2RyaXZlcnMvaW5wdXQveGVuLWtiZGZyb250LmMKaW5kZXggMGY0N2Y0Ni4uOWNlM2IzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC94ZW4ta2JkZnJvbnQuYworKysgYi9kcml2ZXJzL2lucHV0L3hlbi1rYmRmcm9udC5jCkBAIC02Niw2ICs2Niw5IEBACiAJCWNhc2UgWEVOS0JEX1RZUEVfTU9USU9OOgogCQkJaW5wdXRfcmVwb3J0X3JlbChkZXYsIFJFTF9YLCBldmVudC0+bW90aW9uLnJlbF94KTsKIAkJCWlucHV0X3JlcG9ydF9yZWwoZGV2LCBSRUxfWSwgZXZlbnQtPm1vdGlvbi5yZWxfeSk7CisJCQlpZiAoZXZlbnQtPm1vdGlvbi5yZWxfeikKKwkJCQlpbnB1dF9yZXBvcnRfcmVsKGRldiwgUkVMX1dIRUVMLAorCQkJCQkJIC1ldmVudC0+bW90aW9uLnJlbF96KTsKIAkJCWJyZWFrOwogCQljYXNlIFhFTktCRF9UWVBFX0tFWToKIAkJCWRldiA9IE5VTEw7CkBAIC04NCw2ICs4Nyw5IEBACiAJCWNhc2UgWEVOS0JEX1RZUEVfUE9TOgogCQkJaW5wdXRfcmVwb3J0X2FicyhkZXYsIEFCU19YLCBldmVudC0+cG9zLmFic194KTsKIAkJCWlucHV0X3JlcG9ydF9hYnMoZGV2LCBBQlNfWSwgZXZlbnQtPnBvcy5hYnNfeSk7CisJCQlpZiAoZXZlbnQtPnBvcy5yZWxfeikKKwkJCQlpbnB1dF9yZXBvcnRfcmVsKGRldiwgUkVMX1dIRUVMLAorCQkJCQkJIC1ldmVudC0+cG9zLnJlbF96KTsKIAkJCWJyZWFrOwogCQl9CiAJCWlmIChkZXYpCkBAIC0xNTIsNyArMTU4LDcgQEAKIAlwdHItPmV2Yml0WzBdID0gQklUKEVWX0tFWSkgfCBCSVQoRVZfUkVMKSB8IEJJVChFVl9BQlMpOwogCWZvciAoaSA9IEJUTl9MRUZUOyBpIDw9IEJUTl9UQVNLOyBpKyspCiAJCXNldF9iaXQoaSwgcHRyLT5rZXliaXQpOwotCXB0ci0+cmVsYml0WzBdID0gQklUKFJFTF9YKSB8IEJJVChSRUxfWSk7CisJcHRyLT5yZWxiaXRbMF0gPSBCSVQoUkVMX1gpIHwgQklUKFJFTF9ZKSB8IEJJVChSRUxfV0hFRUwpOwogCWlucHV0X3NldF9hYnNfcGFyYW1zKHB0ciwgQUJTX1gsIDAsIFhFTkZCX1dJRFRILCAwLCAwKTsKIAlpbnB1dF9zZXRfYWJzX3BhcmFtcyhwdHIsIEFCU19ZLCAwLCBYRU5GQl9IRUlHSFQsIDAsIDApOwogCkBAIC0yOTQsNiArMzAwLDE2IEBACiAJCSAqLwogCQlpZiAoZGV2LT5zdGF0ZSAhPSBYZW5idXNTdGF0ZUNvbm5lY3RlZCkKIAkJCWdvdG8gSW5pdFdhaXQ7IC8qIG5vIEluaXRXYWl0IHNlZW4geWV0LCBmdWRnZSBpdCAqLworCisJCS8qIFNldCBpbnB1dCBhYnMgcGFyYW1zIHRvIG1hdGNoIGJhY2tlbmQgc2NyZWVuIHJlcyAqLworCQlpZiAoeGVuYnVzX3NjYW5mKFhCVF9OSUwsIGluZm8tPnhiZGV2LT5vdGhlcmVuZCwKKwkJCQkgIndpZHRoIiwgIiVkIiwgJnZhbCkgPiAwKQorCQkJaW5wdXRfc2V0X2Fic19wYXJhbXMoaW5mby0+cHRyLCBBQlNfWCwgMCwgdmFsLCAwLCAwKTsKKworCQlpZiAoeGVuYnVzX3NjYW5mKFhCVF9OSUwsIGluZm8tPnhiZGV2LT5vdGhlcmVuZCwKKwkJCQkgImhlaWdodCIsICIlZCIsICZ2YWwpID4gMCkKKwkJCWlucHV0X3NldF9hYnNfcGFyYW1zKGluZm8tPnB0ciwgQUJTX1ksIDAsIHZhbCwgMCwgMCk7CisKIAkJYnJlYWs7CiAKIAljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKQEAgLTMzNyw0ICszNTMsNiBAQAogbW9kdWxlX2luaXQoeGVua2JkX2luaXQpOwogbW9kdWxlX2V4aXQoeGVua2JkX2NsZWFudXApOwogCitNT0RVTEVfREVTQ1JJUFRJT04oIlhlbiB2aXJ0dWFsIGtleWJvYXJkL3BvaW50ZXIgZGV2aWNlIGZyb250ZW5kIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQUxJQVMoInhlbjp2a2JkIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vY2FwaS9jYXBpLmMgYi9kcml2ZXJzL2lzZG4vY2FwaS9jYXBpLmMKaW5kZXggNmNhMGJiOS4uMjA5NTE1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2NhcGkvY2FwaS5jCisrKyBiL2RyaXZlcnMvaXNkbi9jYXBpL2NhcGkuYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogI2lmZGVmIENPTkZJR19JU0ROX0NBUElfTUlERExFV0FSRQpAQCAtOTgzLDEzICs5ODQsMTcgQEAKIHN0YXRpYyBpbnQKIGNhcGlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwlpbnQgcmV0OworCQorCWxvY2tfa2VybmVsKCk7CiAJaWYgKGZpbGUtPnByaXZhdGVfZGF0YSkKLQkJcmV0dXJuIC1FRVhJU1Q7Ci0KLQlpZiAoKGZpbGUtPnByaXZhdGVfZGF0YSA9IGNhcGlkZXZfYWxsb2MoKSkgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7CisJCXJldCA9IC1FRVhJU1Q7CisJZWxzZSBpZiAoKGZpbGUtPnByaXZhdGVfZGF0YSA9IGNhcGlkZXZfYWxsb2MoKSkgPT0gTlVMTCkKKwkJcmV0ID0gLUVOT01FTTsKKwllbHNlCisJCXJldCA9IG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YW1udC5jIGIvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFtbnQuYwppbmRleCBjOTA5Mjg5Li4xZTg1Zjc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YW1udC5jCisrKyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhbW50LmMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAogI2luY2x1ZGUgInBsYXRmb3JtLmgiCkBAIC0xMjcsMTQgKzEyOCwxOSBAQAogCiBzdGF0aWMgaW50IG1haW50X29wZW4oc3RydWN0IGlub2RlICppbm8sIHN0cnVjdCBmaWxlICpmaWxlcCkKIHsKKwlpbnQgcmV0OworCisJbG9ja19rZXJuZWwoKTsKIAkvKiBvbmx5IG9uZSBvcGVuIGlzIGFsbG93ZWQsIHNvIHdlIHRlc3QKIAkgICBpdCBhdG9taWNhbGx5ICovCiAJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJm9wZW5lZCkpCi0JCXJldHVybiAoLUVCVVNZKTsKLQotCWZpbGVwLT5wcml2YXRlX2RhdGEgPSBOVUxMOwotCi0JcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vLCBmaWxlcCk7CisJCXJldCA9IC1FQlVTWTsKKwllbHNlIHsKKwkJZmlsZXAtPnByaXZhdGVfZGF0YSA9IE5VTEw7CisJCXJldCA9IG5vbnNlZWthYmxlX29wZW4oaW5vLCBmaWxlcCk7CisJfQorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IG1haW50X2Nsb3NlKHN0cnVjdCBpbm9kZSAqaW5vLCBzdHJ1Y3QgZmlsZSAqZmlsZXApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YXNpLmMgYi9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YXNpLmMKaW5kZXggNzhmMTQxZS4uZjQ5NjlmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzaS5jCisrKyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc2kuYwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2tidWZmLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogCiAjaW5jbHVkZSAicGxhdGZvcm0uaCIKQEAgLTQwMCw2ICs0MDEsNyBAQAogCiBzdGF0aWMgaW50IHVtX2lkaV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuICgwKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzbWFpbi5jIGIvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzbWFpbi5jCmluZGV4IDE2YTg3NGIuLmZiYmNiMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc21haW4uYworKysgYi9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YXNtYWluLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L2ttb2QuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSAicGxhdGZvcm0uaCIKICN1bmRlZiBJRF9NQVNLCkBAIC01ODAsNiArNTgxLDcgQEAKICAqLwogc3RhdGljIGludCBkaXZhc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuICgwKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2k0bC9pc2RuX2NvbW1vbi5jIGIvZHJpdmVycy9pc2RuL2k0bC9pc2RuX2NvbW1vbi5jCmluZGV4IDBmM2M2NmQuLjcxODhjNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9pNGwvaXNkbl9jb21tb24uYworKysgYi9kcml2ZXJzL2lzZG4vaTRsL2lzZG5fY29tbW9uLmMKQEAgLTE3MzIsNyArMTczMiw3IEBACiAJaW50IGNoaWR4OwogCWludCByZXR2YWwgPSAtRU5PREVWOwogCi0KKwlsb2NrX2tlcm5lbCgpOwogCWlmIChtaW5vciA9PSBJU0ROX01JTk9SX1NUQVRVUykgewogCQlpbmZvc3RydWN0ICpwOwogCkBAIC0xNzgzLDYgKzE3ODMsNyBAQAogI2VuZGlmCiAgb3V0OgogCW5vbnNlZWthYmxlX29wZW4oaW5vLCBmaWxlcCk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXR2YWw7CiB9CiAKQEAgLTE5NzcsOCArMTk3OCwxMCBAQAogCWlmICghc2tiKQogCQlyZXR1cm4gLUVOT01FTTsKIAlza2JfcmVzZXJ2ZShza2IsIGhsKTsKLQlpZiAoY29weV9mcm9tX3VzZXIoc2tiX3B1dChza2IsIGxlbiksIGJ1ZiwgbGVuKSkKKwlpZiAoY29weV9mcm9tX3VzZXIoc2tiX3B1dChza2IsIGxlbiksIGJ1ZiwgbGVuKSkgeworCQlkZXZfa2ZyZWVfc2tiKHNrYik7CiAJCXJldHVybiAtRUZBVUxUOworCX0KIAlyZXQgPSBkZXYtPmRydltkcnZpZHhdLT5pbnRlcmZhY2UtPndyaXRlYnVmX3NrYihkcnZpZHgsIGNoYW4sIDEsIHNrYik7CiAJaWYgKHJldCA8PSAwKQogCQlkZXZfa2ZyZWVfc2tiKHNrYik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2xndWVzdC9LY29uZmlnIGIvZHJpdmVycy9sZ3Vlc3QvS2NvbmZpZwppbmRleCA2YjhkYmI5Li43NmYyYjM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2xndWVzdC9LY29uZmlnCisrKyBiL2RyaXZlcnMvbGd1ZXN0L0tjb25maWcKQEAgLTEsNiArMSw2IEBACiBjb25maWcgTEdVRVNUCiAJdHJpc3RhdGUgIkxpbnV4IGh5cGVydmlzb3IgZXhhbXBsZSBjb2RlIgotCWRlcGVuZHMgb24gWDg2XzMyICYmIEVYUEVSSU1FTlRBTCAmJiAhWDg2X1BBRSAmJiBGVVRFWCAmJiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBFWFBFUklNRU5UQUwgJiYgIVg4Nl9QQUUgJiYgRlVURVggJiYgIVg4Nl9WT1lBR0VSCiAJc2VsZWN0IEhWQ19EUklWRVIKIAktLS1oZWxwLS0tCiAJICBUaGlzIGlzIGEgdmVyeSBzaW1wbGUgbW9kdWxlIHdoaWNoIGFsbG93cyB5b3UgdG8gcnVuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2xndWVzdC9sZy5oIGIvZHJpdmVycy9sZ3Vlc3QvbGcuaAppbmRleCAwMDViZDA0Li41ZmFlZmVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2xndWVzdC9sZy5oCisrKyBiL2RyaXZlcnMvbGd1ZXN0L2xnLmgKQEAgLTEzNiw3ICsxMzYsNiBAQAogICogZmlyc3Qgc3RlcCBpbiB0aGUgbWlncmF0aW9uIHRvIHRoZSBrZXJuZWwgdHlwZXMuICBwdGVfcGZuIGlzIGFscmVhZHkgZGVmaW5lZAogICogaW4gdGhlIGtlcm5lbC4gKi8KICNkZWZpbmUgcGdkX2ZsYWdzKHgpCShwZ2RfdmFsKHgpICYgflBBR0VfTUFTSykKLSNkZWZpbmUgcHRlX2ZsYWdzKHgpCShwdGVfdmFsKHgpICYgflBBR0VfTUFTSykKICNkZWZpbmUgcGdkX3Bmbih4KQkocGdkX3ZhbCh4KSA+PiBQQUdFX1NISUZUKQogCiAvKiBpbnRlcnJ1cHRzX2FuZF90cmFwcy5jOiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWNpbnRvc2gvYWRiLmMgYi9kcml2ZXJzL21hY2ludG9zaC9hZGIuYwppbmRleCBkYmFhZDM5Li40MGM3MGJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21hY2ludG9zaC9hZGIuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC9hZGIuYwpAQCAtNjQ0LDEyICs2NDQsMTggQEAKIHN0YXRpYyBpbnQgYWRiX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJc3RydWN0IGFkYmRldl9zdGF0ZSAqc3RhdGU7CisJaW50IHJldCA9IDA7CiAKLQlpZiAoaW1pbm9yKGlub2RlKSA+IDAgfHwgYWRiX2NvbnRyb2xsZXIgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTlhJTzsKKwlsb2NrX2tlcm5lbCgpOworCWlmIChpbWlub3IoaW5vZGUpID4gMCB8fCBhZGJfY29udHJvbGxlciA9PSBOVUxMKSB7CisJCXJldCA9IC1FTlhJTzsKKwkJZ290byBvdXQ7CisJfQogCXN0YXRlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGFkYmRldl9zdGF0ZSksIEdGUF9LRVJORUwpOwotCWlmIChzdGF0ZSA9PSAwKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoc3RhdGUgPT0gMCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKKwl9CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gc3RhdGU7CiAJc3Bpbl9sb2NrX2luaXQoJnN0YXRlLT5sb2NrKTsKIAlhdG9taWNfc2V0KCZzdGF0ZS0+bl9wZW5kaW5nLCAwKTsKQEAgLTY1Nyw3ICs2NjMsOSBAQAogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnN0YXRlLT53YWl0X3F1ZXVlKTsKIAlzdGF0ZS0+aW51c2UgPSAxOwogCi0JcmV0dXJuIDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgYWRiX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21hY2ludG9zaC9hbnMtbGNkLmMgYi9kcml2ZXJzL21hY2ludG9zaC9hbnMtbGNkLmMKaW5kZXggNzNjNTBiYy4uNmE4MjIxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tYWNpbnRvc2gvYW5zLWxjZC5jCisrKyBiL2RyaXZlcnMvbWFjaW50b3NoL2Fucy1sY2QuYwpAQCAtMyw2ICszLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgpAQCAtMTE5LDYgKzEyMCw3IEBACiBzdGF0aWMgaW50CiBhbnNsY2Rfb3Blbiggc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlsZSApCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWNpbnRvc2gvc211LmMgYi9kcml2ZXJzL21hY2ludG9zaC9zbXUuYwppbmRleCBkODZkNTdhLi4zMmNiMDI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21hY2ludG9zaC9zbXUuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC9zbXUuYwpAQCAtMTksNiArMTksNyBAQAogICogICAgdGhlIHVzZXJsYW5kIGludGVyZmFjZQogICovCiAKKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CkBAIC0xMDg2LDEwICsxMDg3LDEyIEBACiAJcHAtPm1vZGUgPSBzbXVfZmlsZV9jb21tYW5kczsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZwcC0+d2FpdCk7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9ja19pcnFzYXZlKCZzbXVfY2xpc3RfbG9jaywgZmxhZ3MpOwogCWxpc3RfYWRkKCZwcC0+bGlzdCwgJnNtdV9jbGlzdCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc211X2NsaXN0X2xvY2ssIGZsYWdzKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBwcDsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWFjaW50b3NoL3ZpYS1wbXUuYyBiL2RyaXZlcnMvbWFjaW50b3NoL3ZpYS1wbXUuYwppbmRleCBkNjM2NWE5Li5kNTI0ZGMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21hY2ludG9zaC92aWEtcG11LmMKKysrIGIvZHJpdmVycy9tYWNpbnRvc2gvdmlhLXBtdS5jCkBAIC0xOCw2ICsxOCw3IEBACiAgKgogICovCiAjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CkBAIC0yMDQ3LDYgKzIwNDgsNyBAQAogCXBwLT5yYl9nZXQgPSBwcC0+cmJfcHV0ID0gMDsKIAlzcGluX2xvY2tfaW5pdCgmcHAtPmxvY2spOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnBwLT53YWl0KTsKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9ja19pcnFzYXZlKCZhbGxfcHZ0X2xvY2ssIGZsYWdzKTsKICNpZiBkZWZpbmVkKENPTkZJR19JTlBVVF9BREJISUQpICYmIGRlZmluZWQoQ09ORklHX1BNQUNfQkFDS0xJR0hUKQogCXBwLT5iYWNrbGlnaHRfbG9ja2VyID0gMDsKQEAgLTIwNTQsNiArMjA1Niw3IEBACiAJbGlzdF9hZGQoJnBwLT5saXN0LCAmYWxsX3BtdV9wdnQpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFsbF9wdnRfbG9jaywgZmxhZ3MpOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHBwOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1jcnlwdC5jIGIvZHJpdmVycy9tZC9kbS1jcnlwdC5jCmluZGV4IDgzNWRlZjEuLmFiNmE2MWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tY3J5cHQuYworKysgYi9kcml2ZXJzL21kL2RtLWNyeXB0LmMKQEAgLTQzMiw2ICs0MzIsNyBAQAogCQljYXNlIDA6CiAJCQlhdG9taWNfZGVjKCZjdHgtPnBlbmRpbmcpOwogCQkJY3R4LT5zZWN0b3IrKzsKKwkJCWNvbmRfcmVzY2hlZCgpOwogCQkJY29udGludWU7CiAKIAkJLyogZXJyb3IgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvbGluZWFyLmMgYi9kcml2ZXJzL21kL2xpbmVhci5jCmluZGV4IDEwNzQ4MjQuLjZhODY2ZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvbGluZWFyLmMKKysrIGIvZHJpdmVycy9tZC9saW5lYXIuYwpAQCAtNTAsMTcgKzUwLDE5IEBACiAvKioKICAqCWxpbmVhcl9tZXJnZWFibGVfYnZlYyAtLSB0ZWxsIGJpbyBsYXllciBpZiB0d28gcmVxdWVzdHMgY2FuIGJlIG1lcmdlZAogICoJQHE6IHJlcXVlc3QgcXVldWUKLSAqCUBiaW86IHRoZSBidWZmZXIgaGVhZCB0aGF0J3MgYmVlbiBidWlsdCB1cCBzbyBmYXIKKyAqCUBidm06IHByb3BlcnRpZXMgb2YgbmV3IGJpbwogICoJQGJpb3ZlYzogdGhlIHJlcXVlc3QgdGhhdCBjb3VsZCBiZSBtZXJnZWQgdG8gaXQuCiAgKgogICoJUmV0dXJuIGFtb3VudCBvZiBieXRlcyB3ZSBjYW4gdGFrZSBhdCB0aGlzIG9mZnNldAogICovCi1zdGF0aWMgaW50IGxpbmVhcl9tZXJnZWFibGVfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IGJpbyAqYmlvLCBzdHJ1Y3QgYmlvX3ZlYyAqYmlvdmVjKQorc3RhdGljIGludCBsaW5lYXJfbWVyZ2VhYmxlX2J2ZWMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCisJCQkJIHN0cnVjdCBidmVjX21lcmdlX2RhdGEgKmJ2bSwKKwkJCQkgc3RydWN0IGJpb192ZWMgKmJpb3ZlYykKIHsKIAltZGRldl90ICptZGRldiA9IHEtPnF1ZXVlZGF0YTsKIAlkZXZfaW5mb190ICpkZXYwOwotCXVuc2lnbmVkIGxvbmcgbWF4c2VjdG9ycywgYmlvX3NlY3RvcnMgPSBiaW8tPmJpX3NpemUgPj4gOTsKLQlzZWN0b3JfdCBzZWN0b3IgPSBiaW8tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJpby0+YmlfYmRldik7CisJdW5zaWduZWQgbG9uZyBtYXhzZWN0b3JzLCBiaW9fc2VjdG9ycyA9IGJ2bS0+Ymlfc2l6ZSA+PiA5OworCXNlY3Rvcl90IHNlY3RvciA9IGJ2bS0+Ymlfc2VjdG9yICsgZ2V0X3N0YXJ0X3NlY3QoYnZtLT5iaV9iZGV2KTsKIAogCWRldjAgPSB3aGljaF9kZXYobWRkZXYsIHNlY3Rvcik7CiAJbWF4c2VjdG9ycyA9IChkZXYwLT5zaXplIDw8IDEpIC0gKHNlY3RvciAtIChkZXYwLT5vZmZzZXQ8PDEpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvbWQuYyBiL2RyaXZlcnMvbWQvbWQuYwppbmRleCA3Y2Y1MTJhLi4yNTgwYWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL21kLmMKKysrIGIvZHJpdmVycy9tZC9tZC5jCkBAIC0zODk3LDggKzM4OTcsMTAgQEAKIAogCQltZF9wcm9iZShkZXYsIE5VTEwsIE5VTEwpOwogCQltZGRldiA9IG1kZGV2X2ZpbmQoZGV2KTsKLQkJaWYgKCFtZGRldikgewotCQkJcHJpbnRrKEtFUk5fRVJSIAorCQlpZiAoIW1kZGV2IHx8ICFtZGRldi0+Z2VuZGlzaykgeworCQkJaWYgKG1kZGV2KQorCQkJCW1kZGV2X3B1dChtZGRldik7CisJCQlwcmludGsoS0VSTl9FUlIKIAkJCQkibWQ6IGNhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIG1kIGRyaXZlLlxuIik7CiAJCQlicmVhazsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkMC5jIGIvZHJpdmVycy9tZC9yYWlkMC5jCmluZGV4IDkxNGMwNGQuLmJjYmI4MjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDAuYworKysgYi9kcml2ZXJzL21kL3JhaWQwLmMKQEAgLTI0MSwxOCArMjQxLDIwIEBACiAvKioKICAqCXJhaWQwX21lcmdlYWJsZV9idmVjIC0tIHRlbGwgYmlvIGxheWVyIGlmIGEgdHdvIHJlcXVlc3RzIGNhbiBiZSBtZXJnZWQKICAqCUBxOiByZXF1ZXN0IHF1ZXVlCi0gKglAYmlvOiB0aGUgYnVmZmVyIGhlYWQgdGhhdCdzIGJlZW4gYnVpbHQgdXAgc28gZmFyCisgKglAYnZtOiBwcm9wZXJ0aWVzIG9mIG5ldyBiaW8KICAqCUBiaW92ZWM6IHRoZSByZXF1ZXN0IHRoYXQgY291bGQgYmUgbWVyZ2VkIHRvIGl0LgogICoKICAqCVJldHVybiBhbW91bnQgb2YgYnl0ZXMgd2UgY2FuIGFjY2VwdCBhdCB0aGlzIG9mZnNldAogICovCi1zdGF0aWMgaW50IHJhaWQwX21lcmdlYWJsZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBiaW9fdmVjICpiaW92ZWMpCitzdGF0aWMgaW50IHJhaWQwX21lcmdlYWJsZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAorCQkJCXN0cnVjdCBidmVjX21lcmdlX2RhdGEgKmJ2bSwKKwkJCQlzdHJ1Y3QgYmlvX3ZlYyAqYmlvdmVjKQogewogCW1kZGV2X3QgKm1kZGV2ID0gcS0+cXVldWVkYXRhOwotCXNlY3Rvcl90IHNlY3RvciA9IGJpby0+Ymlfc2VjdG9yICsgZ2V0X3N0YXJ0X3NlY3QoYmlvLT5iaV9iZGV2KTsKKwlzZWN0b3JfdCBzZWN0b3IgPSBidm0tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJ2bS0+YmlfYmRldik7CiAJaW50IG1heDsKIAl1bnNpZ25lZCBpbnQgY2h1bmtfc2VjdG9ycyA9IG1kZGV2LT5jaHVua19zaXplID4+IDk7Ci0JdW5zaWduZWQgaW50IGJpb19zZWN0b3JzID0gYmlvLT5iaV9zaXplID4+IDk7CisJdW5zaWduZWQgaW50IGJpb19zZWN0b3JzID0gYnZtLT5iaV9zaXplID4+IDk7CiAKIAltYXggPSAgKGNodW5rX3NlY3RvcnMgLSAoKHNlY3RvciAmIChjaHVua19zZWN0b3JzIC0gMSkpICsgYmlvX3NlY3RvcnMpKSA8PCA5OwogCWlmIChtYXggPCAwKSBtYXggPSAwOyAvKiBiaW9fYWRkIGNhbm5vdCBoYW5kbGUgYSBuZWdhdGl2ZSByZXR1cm4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDEwLmMgYi9kcml2ZXJzL21kL3JhaWQxMC5jCmluZGV4IDFkZTE3ZGEuLjIyYmIyYjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDEwLmMKKysrIGIvZHJpdmVycy9tZC9yYWlkMTAuYwpAQCAtNDM5LDI2ICs0MzksMjcgQEAKIC8qKgogICoJcmFpZDEwX21lcmdlYWJsZV9idmVjIC0tIHRlbGwgYmlvIGxheWVyIGlmIGEgdHdvIHJlcXVlc3RzIGNhbiBiZSBtZXJnZWQKICAqCUBxOiByZXF1ZXN0IHF1ZXVlCi0gKglAYmlvOiB0aGUgYnVmZmVyIGhlYWQgdGhhdCdzIGJlZW4gYnVpbHQgdXAgc28gZmFyCisgKglAYnZtOiBwcm9wZXJ0aWVzIG9mIG5ldyBiaW8KICAqCUBiaW92ZWM6IHRoZSByZXF1ZXN0IHRoYXQgY291bGQgYmUgbWVyZ2VkIHRvIGl0LgogICoKICAqCVJldHVybiBhbW91bnQgb2YgYnl0ZXMgd2UgY2FuIGFjY2VwdCBhdCB0aGlzIG9mZnNldAogICogICAgICBJZiBuZWFyX2NvcGllcyA9PSByYWlkX2Rpc2ssIHRoZXJlIGFyZSBubyBzdHJpcGluZyBpc3N1ZXMsCiAgKiAgICAgIGJ1dCBpbiB0aGF0IGNhc2UsIHRoZSBmdW5jdGlvbiBpc24ndCBjYWxsZWQgYXQgYWxsLgogICovCi1zdGF0aWMgaW50IHJhaWQxMF9tZXJnZWFibGVfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IGJpbyAqYmlvLAotCQkJCXN0cnVjdCBiaW9fdmVjICpiaW9fdmVjKQorc3RhdGljIGludCByYWlkMTBfbWVyZ2VhYmxlX2J2ZWMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCisJCQkJIHN0cnVjdCBidmVjX21lcmdlX2RhdGEgKmJ2bSwKKwkJCQkgc3RydWN0IGJpb192ZWMgKmJpb3ZlYykKIHsKIAltZGRldl90ICptZGRldiA9IHEtPnF1ZXVlZGF0YTsKLQlzZWN0b3JfdCBzZWN0b3IgPSBiaW8tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJpby0+YmlfYmRldik7CisJc2VjdG9yX3Qgc2VjdG9yID0gYnZtLT5iaV9zZWN0b3IgKyBnZXRfc3RhcnRfc2VjdChidm0tPmJpX2JkZXYpOwogCWludCBtYXg7CiAJdW5zaWduZWQgaW50IGNodW5rX3NlY3RvcnMgPSBtZGRldi0+Y2h1bmtfc2l6ZSA+PiA5OwotCXVuc2lnbmVkIGludCBiaW9fc2VjdG9ycyA9IGJpby0+Ymlfc2l6ZSA+PiA5OworCXVuc2lnbmVkIGludCBiaW9fc2VjdG9ycyA9IGJ2bS0+Ymlfc2l6ZSA+PiA5OwogCiAJbWF4ID0gIChjaHVua19zZWN0b3JzIC0gKChzZWN0b3IgJiAoY2h1bmtfc2VjdG9ycyAtIDEpKSArIGJpb19zZWN0b3JzKSkgPDwgOTsKIAlpZiAobWF4IDwgMCkgbWF4ID0gMDsgLyogYmlvX2FkZCBjYW5ub3QgaGFuZGxlIGEgbmVnYXRpdmUgcmV0dXJuICovCi0JaWYgKG1heCA8PSBiaW9fdmVjLT5idl9sZW4gJiYgYmlvX3NlY3RvcnMgPT0gMCkKLQkJcmV0dXJuIGJpb192ZWMtPmJ2X2xlbjsKKwlpZiAobWF4IDw9IGJpb3ZlYy0+YnZfbGVuICYmIGJpb19zZWN0b3JzID09IDApCisJCXJldHVybiBiaW92ZWMtPmJ2X2xlbjsKIAllbHNlCiAJCXJldHVybiBtYXg7CiB9CkBAIC0yMTM3LDYgKzIxMzgsOCBAQAogCQkgICAgIXRlc3RfYml0KEluX3N5bmMsICZkaXNrLT5yZGV2LT5mbGFncykpIHsKIAkJCWRpc2stPmhlYWRfcG9zaXRpb24gPSAwOwogCQkJbWRkZXYtPmRlZ3JhZGVkKys7CisJCQlpZiAoZGlzay0+cmRldikKKwkJCQljb25mLT5mdWxsc3luYyA9IDE7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDUuYyBiL2RyaXZlcnMvbWQvcmFpZDUuYwppbmRleCBjMzdlMjU2Li45Y2U3MTU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL3JhaWQ1LmMKKysrIGIvZHJpdmVycy9tZC9yYWlkNS5jCkBAIC0yMDE3LDEyICsyMDE3LDcgQEAKIAkJCSAqLwogCQkJcy0+dXB0b2RhdGUrKzsKIAkJCXJldHVybiAwOyAvKiB1cHRvZGF0ZSArIGNvbXB1dGUgPT0gZGlza3MgKi8KLQkJfSBlbHNlIGlmICgocy0+dXB0b2RhdGUgPCBkaXNrcyAtIDEpICYmCi0JCQl0ZXN0X2JpdChSNV9JbnN5bmMsICZkZXYtPmZsYWdzKSkgewotCQkJLyogTm90ZTogd2UgaG9sZCBvZmYgY29tcHV0ZSBvcGVyYXRpb25zIHdoaWxlIGNoZWNrcyBhcmUKLQkJCSAqIGluIGZsaWdodCwgYnV0IHdlIHN0aWxsIHByZWZlciAnY29tcHV0ZScgb3ZlciAncmVhZCcKLQkJCSAqIGhlbmNlIHdlIG9ubHkgcmVhZCBpZiAodXB0b2RhdGUgPCAqIGRpc2tzLTEpCi0JCQkgKi8KKwkJfSBlbHNlIGlmICh0ZXN0X2JpdChSNV9JbnN5bmMsICZkZXYtPmZsYWdzKSkgewogCQkJc2V0X2JpdChSNV9MT0NLRUQsICZkZXYtPmZsYWdzKTsKIAkJCXNldF9iaXQoUjVfV2FudHJlYWQsICZkZXYtPmZsYWdzKTsKIAkJCWlmICghdGVzdF9hbmRfc2V0X2JpdChTVFJJUEVfT1BfSU8sICZzaC0+b3BzLnBlbmRpbmcpKQpAQCAtMjg5OCw2ICsyODkzLDggQEAKIAogCQlmb3IgKGkgPSBjb25mLT5yYWlkX2Rpc2tzOyBpLS07ICkgewogCQkJc2V0X2JpdChSNV9XYW50d3JpdGUsICZzaC0+ZGV2W2ldLmZsYWdzKTsKKwkJCXNldF9iaXQoUjVfTE9DS0VELCAmZGV2LT5mbGFncyk7CisJCQlzLmxvY2tlZCsrOwogCQkJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KFNUUklQRV9PUF9JTywgJnNoLT5vcHMucGVuZGluZykpCiAJCQkJc2gtPm9wcy5jb3VudCsrOwogCQl9CkBAIC0yOTExLDYgKzI5MDgsNyBAQAogCQkJY29uZi0+cmFpZF9kaXNrcyk7CiAJCXMubG9ja2VkICs9IGhhbmRsZV93cml0ZV9vcGVyYXRpb25zNShzaCwgMSwgMSk7CiAJfSBlbHNlIGlmIChzLmV4cGFuZGVkICYmCisJCSAgIHMubG9ja2VkID09IDAgJiYKIAkJIXRlc3RfYml0KFNUUklQRV9PUF9QT1NUWE9SLCAmc2gtPm9wcy5wZW5kaW5nKSkgewogCQljbGVhcl9iaXQoU1RSSVBFX0VYUEFORF9SRUFEWSwgJnNoLT5zdGF0ZSk7CiAJCWF0b21pY19kZWMoJmNvbmYtPnJlc2hhcGVfc3RyaXBlcyk7CkBAIC0zMzE2LDE1ICszMzE0LDE3IEBACiAvKiBXZSB3YW50IHJlYWQgcmVxdWVzdHMgdG8gYWxpZ24gd2l0aCBjaHVua3Mgd2hlcmUgcG9zc2libGUsCiAgKiBidXQgd3JpdGUgcmVxdWVzdHMgZG9uJ3QgbmVlZCB0by4KICAqLwotc3RhdGljIGludCByYWlkNV9tZXJnZWFibGVfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IGJpbyAqYmlvLCBzdHJ1Y3QgYmlvX3ZlYyAqYmlvdmVjKQorc3RhdGljIGludCByYWlkNV9tZXJnZWFibGVfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwKKwkJCQlzdHJ1Y3QgYnZlY19tZXJnZV9kYXRhICpidm0sCisJCQkJc3RydWN0IGJpb192ZWMgKmJpb3ZlYykKIHsKIAltZGRldl90ICptZGRldiA9IHEtPnF1ZXVlZGF0YTsKLQlzZWN0b3JfdCBzZWN0b3IgPSBiaW8tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJpby0+YmlfYmRldik7CisJc2VjdG9yX3Qgc2VjdG9yID0gYnZtLT5iaV9zZWN0b3IgKyBnZXRfc3RhcnRfc2VjdChidm0tPmJpX2JkZXYpOwogCWludCBtYXg7CiAJdW5zaWduZWQgaW50IGNodW5rX3NlY3RvcnMgPSBtZGRldi0+Y2h1bmtfc2l6ZSA+PiA5OwotCXVuc2lnbmVkIGludCBiaW9fc2VjdG9ycyA9IGJpby0+Ymlfc2l6ZSA+PiA5OworCXVuc2lnbmVkIGludCBiaW9fc2VjdG9ycyA9IGJ2bS0+Ymlfc2l6ZSA+PiA5OwogCi0JaWYgKGJpb19kYXRhX2RpcihiaW8pID09IFdSSVRFKQorCWlmICgoYnZtLT5iaV9ydyAmIDEpID09IFdSSVRFKQogCQlyZXR1cm4gYmlvdmVjLT5idl9sZW47IC8qIGFsd2F5cyBhbGxvdyB3cml0ZXMgdG8gYmUgbWVyZ2VhYmxlICovCiAKIAltYXggPSAgKGNodW5rX3NlY3RvcnMgLSAoKHNlY3RvciAmIChjaHVua19zZWN0b3JzIC0gMSkpICsgYmlvX3NlY3RvcnMpKSA8PCA5OwpAQCAtNDMwNSw3ICs0MzA1LDkgQEAKIAkJCQkiIGRpc2sgJWRcbiIsIGJkZXZuYW1lKHJkZXYtPmJkZXYsYiksCiAJCQkJcmFpZF9kaXNrKTsKIAkJCXdvcmtpbmdfZGlza3MrKzsKLQkJfQorCQl9IGVsc2UKKwkJCS8qIENhbm5vdCByZWx5IG9uIGJpdG1hcCB0byBjb21wbGV0ZSByZWNvdmVyeSAqLworCQkJY29uZi0+ZnVsbHN5bmMgPSAxOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi9pci1rZXltYXBzLmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi9pci1rZXltYXBzLmMKaW5kZXggYTM0ODU4MS4uOGZhOTFmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vaXIta2V5bWFwcy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL2lyLWtleW1hcHMuYwpAQCAtMjIwMSwzICsyMjAxLDQxIEBACiAJWzB4MjVdID0gS0VZX1BPV0VSLAkJLyogcG93ZXIgKi8KIH07CiBFWFBPUlRfU1lNQk9MX0dQTChpcl9jb2Rlc19wb3dlcmNvbG9yX3JlYWxfYW5nZWwpOworCitJUl9LRVlUQUJfVFlQRSBpcl9jb2Rlc19hdmVybWVkaWFfYTE2ZFtJUl9LRVlUQUJfU0laRV0gPSB7CisJWzB4MjBdID0gS0VZX0xJU1QsCisJWzB4MDBdID0gS0VZX1BPV0VSLAorCVsweDI4XSA9IEtFWV8xLAorCVsweDE4XSA9IEtFWV8yLAorCVsweDM4XSA9IEtFWV8zLAorCVsweDI0XSA9IEtFWV80LAorCVsweDE0XSA9IEtFWV81LAorCVsweDM0XSA9IEtFWV82LAorCVsweDJjXSA9IEtFWV83LAorCVsweDFjXSA9IEtFWV84LAorCVsweDNjXSA9IEtFWV85LAorCVsweDEyXSA9IEtFWV9TVUJUSVRMRSwKKwlbMHgyMl0gPSBLRVlfMCwKKwlbMHgzMl0gPSBLRVlfUkVXSU5ELAorCVsweDNhXSA9IEtFWV9TSFVGRkxFLAorCVsweDAyXSA9IEtFWV9QUklOVCwKKwlbMHgxMV0gPSBLRVlfQ0hBTk5FTERPV04sCisJWzB4MzFdID0gS0VZX0NIQU5ORUxVUCwKKwlbMHgwY10gPSBLRVlfWk9PTSwKKwlbMHgxZV0gPSBLRVlfVk9MVU1FRE9XTiwKKwlbMHgzZV0gPSBLRVlfVk9MVU1FVVAsCisJWzB4MGFdID0gS0VZX01VVEUsCisJWzB4MDRdID0gS0VZX0FVRElPLAorCVsweDI2XSA9IEtFWV9SRUNPUkQsCisJWzB4MDZdID0gS0VZX1BMQVksCisJWzB4MzZdID0gS0VZX1NUT1AsCisJWzB4MTZdID0gS0VZX1BBVVNFLAorCVsweDJlXSA9IEtFWV9SRVdJTkQsCisJWzB4MGVdID0gS0VZX0ZBU1RGT1JXQVJELAorCVsweDMwXSA9IEtFWV9URVhULAorCVsweDIxXSA9IEtFWV9HUkVFTiwKKwlbMHgwMV0gPSBLRVlfQkxVRSwKKwlbMHgwOF0gPSBLRVlfRVBHLAorCVsweDJhXSA9IEtFWV9NRU5VLAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKGlyX2NvZGVzX2F2ZXJtZWRpYV9hMTZkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGExODI3MS1jb21tb24uYyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGExODI3MS1jb21tb24uYwppbmRleCBmMTg5NGZlLi42ZmI1YjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdGRhMTgyNzEtY29tbW9uLmMKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWNvbW1vbi5jCkBAIC02NDksOSArNjQ5LDE3IEBACiAJdTggdmFsOwogCiAJaW50IHJldCA9IHRkYTE4MjcxX2xvb2t1cF9tYXAoZmUsIFJGX0NBTCwgZnJlcSwgJnZhbCk7CisJLyogVGhlIFREQTE4MjcxSEQvQzEgcmZfY2FsIG1hcCBsb29rdXAgaXMgZXhwZWN0ZWQgdG8gZ28gb3V0IG9mIHJhbmdlCisJICogZm9yIGZyZXF1ZW5jaWVzIGFib3ZlIDYxLjEgTUh6LiAgSW4gdGhlc2UgY2FzZXMsIHRoZSBpbnRlcm5hbCBSRgorCSAqIHRyYWNraW5nIGZpbHRlcnMgY2FsaWJyYXRpb24gbWVjaGFuaXNtIGlzIHVzZWQuCisJICoKKwkgKiBUaGVyZSBpcyBubyBuZWVkIHRvIHdhcm4gdGhlIHVzZXIgYWJvdXQgdGhpcy4KKwkgKi8KKwlpZiAocmV0IDwgMCkKKwkJZ290byBmYWlsOwogCiAJcmVnc1tSX0VCMTRdID0gdmFsOwotCitmYWlsOgogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGExODI3MS1mZS5jIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWZlLmMKaW5kZXggODljMDFmYi4uOTMwNjNjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWZlLmMKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWZlLmMKQEAgLTQ1LDYgKzQ1LDIxIEBACiAJCQkJCSAgIFREQTE4MjcxX01BSU5fUExMLCBmb3JjZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCB0ZGExODI3MV9zZXRfaWZfbm90Y2goc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUpCit7CisJc3RydWN0IHRkYTE4MjcxX3ByaXYgKnByaXYgPSBmZS0+dHVuZXJfcHJpdjsKKwl1bnNpZ25lZCBjaGFyICpyZWdzID0gcHJpdi0+dGRhMTgyNzFfcmVnczsKKworCXN3aXRjaCAocHJpdi0+bW9kZSkgeworCWNhc2UgVERBMTgyNzFfQU5BTE9HOgorCQlyZWdzW1JfTVBEXSAgJj0gfjB4ODA7IC8qIElGIG5vdGNoID0gMCAqLworCQlicmVhazsKKwljYXNlIFREQTE4MjcxX0RJR0lUQUw6CisJCXJlZ3NbUl9NUERdICB8PSAweDgwOyAvKiBJRiBub3RjaCA9IDEgKi8KKwkJYnJlYWs7CisJfQorfQorCiBzdGF0aWMgaW50IHRkYTE4MjcxX2NoYW5uZWxfY29uZmlndXJhdGlvbihzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwKIAkJCQkJICBzdHJ1Y3QgdGRhMTgyNzFfc3RkX21hcF9pdGVtICptYXAsCiAJCQkJCSAgdTMyIGZyZXEsIHUzMiBidykKQEAgLTYwLDI1ICs3NSwxOCBAQAogCXJlZ3NbUl9FUDNdICAmPSB+MHgxZjsgLyogY2xlYXIgc3RkIGJpdHMgKi8KIAlyZWdzW1JfRVAzXSAgfD0gKG1hcC0+YWdjX21vZGUgPDwgMykgfCBtYXAtPnN0ZDsKIAotCS8qIHNldCByZmFnYyB0byBoaWdoIHNwZWVkIG1vZGUgKi8KLQlyZWdzW1JfRVAzXSAmPSB+MHgwNDsKKwlpZiAocHJpdi0+aWQgPT0gVERBMTgyNzFIREMyKSB7CisJCS8qIHNldCByZmFnYyB0byBoaWdoIHNwZWVkIG1vZGUgKi8KKwkJcmVnc1tSX0VQM10gJj0gfjB4MDQ7CisJfQogCiAJLyogc2V0IGNhbCBtb2RlIHRvIG5vcm1hbCAqLwogCXJlZ3NbUl9FUDRdICAmPSB+MHgwMzsKIAotCS8qIHVwZGF0ZSBJRiBvdXRwdXQgbGV2ZWwgJiBJRiBub3RjaCBmcmVxdWVuY3kgKi8KKwkvKiB1cGRhdGUgSUYgb3V0cHV0IGxldmVsICovCiAJcmVnc1tSX0VQNF0gICY9IH4weDFjOyAvKiBjbGVhciBpZiBsZXZlbCBiaXRzICovCiAJcmVnc1tSX0VQNF0gIHw9IChtYXAtPmlmX2x2bCA8PCAyKTsKIAotCXN3aXRjaCAocHJpdi0+bW9kZSkgewotCWNhc2UgVERBMTgyNzFfQU5BTE9HOgotCQlyZWdzW1JfTVBEXSAgJj0gfjB4ODA7IC8qIElGIG5vdGNoID0gMCAqLwotCQlicmVhazsKLQljYXNlIFREQTE4MjcxX0RJR0lUQUw6Ci0JCXJlZ3NbUl9NUERdICB8PSAweDgwOyAvKiBJRiBub3RjaCA9IDEgKi8KLQkJYnJlYWs7Ci0JfQotCiAJLyogdXBkYXRlIEZNX1JGbiAqLwogCXJlZ3NbUl9FUDRdICAmPSB+MHg4MDsKIAlyZWdzW1JfRVA0XSAgfD0gbWFwLT5mbV9yZm4gPDwgNzsKQEAgLTk1LDYgKzEwMyw5IEBACiAJLyogZGlzYWJsZSBQb3dlciBMZXZlbCBJbmRpY2F0b3IgKi8KIAlyZWdzW1JfRVAxXSAgfD0gMHg0MDsKIAorCS8qIG1ha2Ugc3VyZSB0aGVybW9tZXRlciBpcyBvZmYgKi8KKwlyZWdzW1JfVE1dICAgJj0gfjB4MTA7CisKIAkvKiBmcmVxdWVuY3kgZGVwZW5kZW50IHBhcmFtZXRlcnMgKi8KIAogCXRkYTE4MjcxX2NhbGNfaXJfbWVhc3VyZShmZSwgJmZyZXEpOwpAQCAtMTM1LDYgKzE0Niw3IEBACiAJc3dpdGNoIChwcml2LT5yb2xlKSB7CiAJY2FzZSBUREExODI3MV9NQVNURVI6CiAJCXRkYTE4MjcxX2NhbGNfbWFpbl9wbGwoZmUsIE4pOworCQl0ZGExODI3MV9zZXRfaWZfbm90Y2goZmUpOwogCQl0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX01QRCwgNCk7CiAJCWJyZWFrOwogCWNhc2UgVERBMTgyNzFfU0xBVkU6CkBAIC0xNDIsNiArMTU0LDcgQEAKIAkJdGRhMTgyNzFfd3JpdGVfcmVncyhmZSwgUl9DUEQsIDQpOwogCiAJCXJlZ3NbUl9NUERdID0gcmVnc1tSX0NQRF0gJiAweDdmOworCQl0ZGExODI3MV9zZXRfaWZfbm90Y2goZmUpOwogCQl0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX01QRCwgMSk7CiAJCWJyZWFrOwogCX0KQEAgLTE2MCwxMiArMTczLDE0IEBACiAKIAltc2xlZXAoMjApOwogCi0JLyogc2V0IHJmYWdjIHRvIG5vcm1hbCBzcGVlZCBtb2RlICovCi0JaWYgKG1hcC0+Zm1fcmZuKQotCQlyZWdzW1JfRVAzXSAmPSB+MHgwNDsKLQllbHNlCi0JCXJlZ3NbUl9FUDNdIHw9IDB4MDQ7Ci0JcmV0ID0gdGRhMTgyNzFfd3JpdGVfcmVncyhmZSwgUl9FUDMsIDEpOworCWlmIChwcml2LT5pZCA9PSBUREExODI3MUhEQzIpIHsKKwkJLyogc2V0IHJmYWdjIHRvIG5vcm1hbCBzcGVlZCBtb2RlICovCisJCWlmIChtYXAtPmZtX3JmbikKKwkJCXJlZ3NbUl9FUDNdICY9IH4weDA0OworCQllbHNlCisJCQlyZWdzW1JfRVAzXSB8PSAweDA0OworCQlyZXQgPSB0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX0VQMywgMSk7CisJfQogZmFpbDoKIAlyZXR1cm4gcmV0OwogfQpAQCAtNTA3LDcgKzUyMiw3IEBACiAJLyogc2V0IGNhbCBtb2RlIHRvIG5vcm1hbCAqLwogCXJlZ3NbUl9FUDRdICAmPSB+MHgwMzsKIAotCS8qIHVwZGF0ZSBJRiBvdXRwdXQgbGV2ZWwgJiBJRiBub3RjaCBmcmVxdWVuY3kgKi8KKwkvKiB1cGRhdGUgSUYgb3V0cHV0IGxldmVsICovCiAJcmVnc1tSX0VQNF0gICY9IH4weDFjOyAvKiBjbGVhciBpZiBsZXZlbCBiaXRzICovCiAKIAlyZXQgPSB0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX0VQMywgMik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdHVuZXIteGMyMDI4LmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdHVuZXIteGMyMDI4LmMKaW5kZXggMGNiZGUxNy4uMzBlYjA3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3R1bmVyLXhjMjAyOC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90dW5lci14YzIwMjguYwpAQCAtMjU0LDcgKzI1NCw3IEBACiB7CiAJc3RydWN0IHhjMjAyOF9kYXRhICAgICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdyAgID0gTlVMTDsKLQl1bnNpZ25lZCBjaGFyICAgICAgICAgKnAsICplbmRwOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgICAqcCwgKmVuZHA7CiAJaW50ICAgICAgICAgICAgICAgICAgIHJjID0gMDsKIAlpbnQJCSAgICAgIG4sIG5fYXJyYXk7CiAJY2hhcgkJICAgICAgbmFtZVszM107CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMveGM1MDAwLmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMveGM1MDAwLmMKaW5kZXggY2VhZTZkYi4uNDg3OGQ2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy94YzUwMDAuYwpAQCAtMTc3LDYgKzE3Nyw3IEBACiAJeyJGTSBSYWRpby1JTlBVVDEiLCAgIDB4MDIwOCwgMHg5MDAyfQogfTsKIAorc3RhdGljIGludCAgeGM1MDAwX2lzX2Zpcm13YXJlX2xvYWRlZChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSk7CiBzdGF0aWMgaW50ICB4YzUwMDBfd3JpdGVyZWdzKHN0cnVjdCB4YzUwMDBfcHJpdiAqcHJpdiwgdTggKmJ1ZiwgdTggbGVuKTsKIHN0YXRpYyBpbnQgIHhjNTAwMF9yZWFkcmVncyhzdHJ1Y3QgeGM1MDAwX3ByaXYgKnByaXYsIHU4ICpidWYsIHU4IGxlbik7CiBzdGF0aWMgdm9pZCB4YzUwMDBfVHVuZXJSZXNldChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSk7CkBAIC0yNzcsNyArMjc4LDcgQEAKIAlyZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW50IHhjX2xvYWRfaTJjX3NlcXVlbmNlKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLCB1OCBpMmNfc2VxdWVuY2VbXSkKK3N0YXRpYyBpbnQgeGNfbG9hZF9pMmNfc2VxdWVuY2Uoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsIGNvbnN0IHU4ICppMmNfc2VxdWVuY2UpCiB7CiAJc3RydWN0IHhjNTAwMF9wcml2ICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7CiAKQEAgLTM1Miw3ICszNTMsNyBAQAogCiBzdGF0aWMgaW50IHhjX3NodXRkb3duKHN0cnVjdCB4YzUwMDBfcHJpdiAqcHJpdikKIHsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gWENfUkVTVUxUX1NVQ0NFU1M7CiAJLyogRml4bWU6IGNhbm5vdCBicmluZyB0dW5lciBiYWNrIGFsaXZlIG9uY2Ugc2h1dGRvd24KIAkgKiAgICAgICAgd2l0aG91dCByZWxvYWRpbmcgdGhlIGRyaXZlciBtb2R1bGVzLgogCSAqICAgIHJldHVybiB4Y193cml0ZV9yZWcocHJpdiwgWFJFR19QT1dFUl9ET1dOLCAwKTsKQEAgLTY4NSw2ICs2ODYsMjUgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCB4YzUwMDBfaXNfZmlybXdhcmVfbG9hZGVkKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlKQoreworCXN0cnVjdCB4YzUwMDBfcHJpdiAqcHJpdiA9IGZlLT50dW5lcl9wcml2OworCWludCByZXQ7CisJdTE2IGlkOworCisJcmV0ID0geGM1MDAwX3JlYWRyZWcocHJpdiwgWFJFR19QUk9EVUNUX0lELCAmaWQpOworCWlmIChyZXQgPT0gWENfUkVTVUxUX1NVQ0NFU1MpIHsKKwkJaWYgKGlkID09IFhDX1BST0RVQ1RfSURfRldfTk9UX0xPQURFRCkKKwkJCXJldCA9IFhDX1JFU1VMVF9SRVNFVF9GQUlMVVJFOworCQllbHNlCisJCQlyZXQgPSBYQ19SRVNVTFRfU1VDQ0VTUzsKKwl9CisKKwlkcHJpbnRrKDEsICIlcygpIHJldHVybnMgJXMgaWQgPSAweCV4XG4iLCBfX2Z1bmNfXywKKwkJcmV0ID09IFhDX1JFU1VMVF9TVUNDRVNTID8gIlRydWUiIDogIkZhbHNlIiwgaWQpOworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBpbnQgeGNfbG9hZF9md19hbmRfaW5pdF90dW5lcihzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSk7CiAKIHN0YXRpYyBpbnQgeGM1MDAwX3NldF9hbmFsb2dfcGFyYW1zKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLApAQCAtNjkzLDcgKzcxMyw3IEBACiAJc3RydWN0IHhjNTAwMF9wcml2ICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7CiAJaW50IHJldDsKIAotCWlmKHByaXYtPmZ3bG9hZGVkID09IDApCisJaWYgKHhjNTAwMF9pc19maXJtd2FyZV9sb2FkZWQoZmUpICE9IFhDX1JFU1VMVF9TVUNDRVNTKQogCQl4Y19sb2FkX2Z3X2FuZF9pbml0X3R1bmVyKGZlKTsKIAogCWRwcmludGsoMSwgIiVzKCkgZnJlcXVlbmN5PSVkIChpbiB1bml0cyBvZiA2Mi41a2h6KVxuIiwKQEAgLTgwOCwxMSArODI4LDEwIEBACiAJc3RydWN0IHhjNTAwMF9wcml2ICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAocHJpdi0+Zndsb2FkZWQgPT0gMCkgeworCWlmICh4YzUwMDBfaXNfZmlybXdhcmVfbG9hZGVkKGZlKSAhPSBYQ19SRVNVTFRfU1VDQ0VTUykgewogCQlyZXQgPSB4YzUwMDBfZnd1cGxvYWQoZmUpOwogCQlpZiAocmV0ICE9IFhDX1JFU1VMVF9TVUNDRVNTKQogCQkJcmV0dXJuIHJldDsKLQkJcHJpdi0+Zndsb2FkZWQgPSAxOwogCX0KIAogCS8qIFN0YXJ0IHRoZSB0dW5lciBzZWxmLWNhbGlicmF0aW9uIHByb2Nlc3MgKi8KQEAgLTg1Miw3ICs4NzEsNiBAQAogCQlyZXR1cm4gLUVSRU1PVEVJTzsKIAl9CiAJZWxzZSB7Ci0JCS8qIHByaXYtPmZ3bG9hZGVkID0gMDsgKi8KIAkJcmV0dXJuIFhDX1JFU1VMVF9TVUNDRVNTOwogCX0KIH0KQEAgLTkzMyw3ICs5NTEsNiBAQAogCQkJY2ZnLT5pMmNfYWRkcmVzcyk7CiAJCXByaW50ayhLRVJOX0lORk8KIAkJCSJ4YzUwMDA6IEZpcm13YXJlIGhhcyBiZWVuIGxvYWRlZCBwcmV2aW91c2x5XG4iKTsKLQkJcHJpdi0+Zndsb2FkZWQgPSAxOwogCQlicmVhazsKIAljYXNlIFhDX1BST0RVQ1RfSURfRldfTk9UX0xPQURFRDoKIAkJcHJpbnRrKEtFUk5fSU5GTwpAQCAtOTQxLDcgKzk1OCw2IEBACiAJCQljZmctPmkyY19hZGRyZXNzKTsKIAkJcHJpbnRrKEtFUk5fSU5GTwogCQkJInhjNTAwMDogRmlybXdhcmUgaGFzIG5vdCBiZWVuIGxvYWRlZCBwcmV2aW91c2x5XG4iKTsKLQkJcHJpdi0+Zndsb2FkZWQgPSAwOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlwcmludGsoS0VSTl9FUlIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy94YzUwMDBfcHJpdi5oIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMF9wcml2LmgKaW5kZXggZWNlYmZlNC4uYTcyYTk4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMF9wcml2LmgKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMF9wcml2LmgKQEAgLTMwLDcgKzMwLDYgQEAKIAl1MzIgYmFuZHdpZHRoOwogCXU4ICB2aWRlb19zdGFuZGFyZDsKIAl1OCAgcmZfbW9kZTsKLQl1OCAgZndsb2FkZWQ7CiAKIAl2b2lkICpkZXZwdHI7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLWNvcmUvZHZiZGV2LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJkZXYuYwppbmRleCA4YjU2ZDkyLi5lMjA4YTYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJkZXYuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJkZXYuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJkdmJkZXYuaCIKIAogc3RhdGljIGludCBkdmJkZXZfZGVidWc7CkBAIC03NCw2ICs3NSw3IEBACiB7CiAJc3RydWN0IGR2Yl9kZXZpY2UgKmR2YmRldjsKIAorCWxvY2tfa2VybmVsKCk7CiAJZHZiZGV2ID0gZHZiZGV2X2ZpbmRfZGV2aWNlIChpbWlub3IoaW5vZGUpKTsKIAogCWlmIChkdmJkZXYgJiYgZHZiZGV2LT5mb3BzKSB7CkBAIC05MCw4ICs5MiwxMCBAQAogCQkJZmlsZS0+Zl9vcCA9IGZvcHNfZ2V0KG9sZF9mb3BzKTsKIAkJfQogCQlmb3BzX3B1dChvbGRfZm9wcyk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIGVycjsKIAl9CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRU5PREVWOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2N4dXNiLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2N4dXNiLmMKaW5kZXggNzIwZmNkMS4uMDI4NjE1NjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvY3h1c2IuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2N4dXNiLmMKQEAgLTI0LDYgKzI0LDcgQEAKICAqIHNlZSBEb2N1bWVudGF0aW9uL2R2Yi9SRUFETUUuZHZiLXVzYiBmb3IgbW9yZSBpbmZvcm1hdGlvbgogICovCiAjaW5jbHVkZSA8bWVkaWEvdHVuZXIuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAKICNpbmNsdWRlICJjeHVzYi5oIgogCkBAIC03MDAsMTIgKzcwMSwyNiBAQAogCiAJCWlmIChmdy0+ZGF0YVtpZG9mZl0gPT0gKFVTQl9WSURfRFZJQ08gJiAweGZmKSAmJgogCQkgICAgZnctPmRhdGFbaWRvZmYgKyAxXSA9PSBVU0JfVklEX0RWSUNPID4+IDgpIHsKLQkJCWZ3LT5kYXRhW2lkb2ZmICsgMl0gPQorCQkJc3RydWN0IGZpcm13YXJlIG5ld19mdzsKKwkJCXU4ICpuZXdfZndfZGF0YSA9IHZtYWxsb2MoZnctPnNpemUpOworCQkJaW50IHJldDsKKworCQkJaWYgKCFuZXdfZndfZGF0YSkKKwkJCQlyZXR1cm4gLUVOT01FTTsKKworCQkJbWVtY3B5KG5ld19md19kYXRhLCBmdy0+ZGF0YSwgZnctPnNpemUpOworCQkJbmV3X2Z3LnNpemUgPSBmdy0+c2l6ZTsKKwkJCW5ld19mdy5kYXRhID0gbmV3X2Z3X2RhdGE7CisKKwkJCW5ld19md19kYXRhW2lkb2ZmICsgMl0gPQogCQkJCWxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSArIDE7Ci0JCQlmdy0+ZGF0YVtpZG9mZiArIDNdID0KKwkJCW5ld19md19kYXRhW2lkb2ZmICsgM10gPQogCQkJCWxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSA+PiA4OwogCi0JCQlyZXR1cm4gdXNiX2N5cHJlc3NfbG9hZF9maXJtd2FyZSh1ZGV2LCBmdywgQ1lQUkVTU19GWDIpOworCQkJcmV0ID0gdXNiX2N5cHJlc3NfbG9hZF9maXJtd2FyZSh1ZGV2LCAmbmV3X2Z3LAorCQkJCQkJCUNZUFJFU1NfRlgyKTsKKwkJCXZmcmVlKG5ld19md19kYXRhKTsKKwkJCXJldHVybiByZXQ7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvZ2w4NjEuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvZ2w4NjEuYwppbmRleCAwYThhYzY0Li4wMzdmN2ZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2dsODYxLmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9nbDg2MS5jCkBAIC00Nyw2ICs0Nyw4IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAorCW1zbGVlcCgxKTsgLyogYXZvaWQgSTJDIGVycm9ycyAqLworCiAJcmV0dXJuIHVzYl9jb250cm9sX21zZyhkLT51ZGV2LCB1c2JfcmN2Y3RybHBpcGUoZC0+dWRldiwgMCksIHJlcSwgdHlwZSwKIAkJCSAgICAgICB2YWx1ZSwgaW5kZXgsIHJidWYsIHJsZW4sIDIwMDApOwogfQpAQCAtOTIsMTYgKzk0LDYgQEAKIH07CiAKIC8qIENhbGxiYWNrcyBmb3IgRFZCIFVTQiAqLwotc3RhdGljIGludCBnbDg2MV9pZGVudGlmeV9zdGF0ZShzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiwKLQkJCQlzdHJ1Y3QgZHZiX3VzYl9kZXZpY2VfcHJvcGVydGllcyAqcHJvcHMsCi0JCQkJc3RydWN0IGR2Yl91c2JfZGV2aWNlX2Rlc2NyaXB0aW9uICoqZGVzYywKLQkJCQlpbnQgKmNvbGQpCi17Ci0JKmNvbGQgPSAwOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBzdHJ1Y3QgemwxMDM1M19jb25maWcgZ2w4NjFfemwxMDM1M19jb25maWcgPSB7CiAJLmRlbW9kX2FkZHJlc3MgPSAweDBmLAogCS5ub190dW5lciA9IDEsCkBAIC0xNzIsNyArMTY0LDYgQEAKIAogCS5zaXplX29mX3ByaXYgICAgID0gMCwKIAotCS5pZGVudGlmeV9zdGF0ZSAgID0gZ2w4NjFfaWRlbnRpZnlfc3RhdGUsCiAJLm51bV9hZGFwdGVycyA9IDEsCiAJLmFkYXB0ZXIgPSB7ewogCkBAIC0xOTQsMTMgKzE4NSwxNSBAQAogCiAJLm51bV9kZXZpY2VfZGVzY3MgPSAyLAogCS5kZXZpY2VzID0gewotCQl7ICAgIk1TSSBNZWdhIFNreSA1NTgwMSBEVkItVCBVU0IyLjAiLAotCQkJeyAmZ2w4NjFfdGFibGVbMF0sIE5VTEwgfSwKLQkJCXsgTlVMTCB9LAorCQl7CisJCQkubmFtZSA9ICJNU0kgTWVnYSBTa3kgNTU4MDEgRFZCLVQgVVNCMi4wIiwKKwkJCS5jb2xkX2lkcyA9IHsgTlVMTCB9LAorCQkJLndhcm1faWRzID0geyAmZ2w4NjFfdGFibGVbMF0sIE5VTEwgfSwKIAkJfSwKLQkJeyAgICJBLUxJTksgRFRVIERWQi1UIFVTQjIuMCIsCi0JCQl7ICZnbDg2MV90YWJsZVsxXSwgTlVMTCB9LAotCQkJeyBOVUxMIH0sCisJCXsKKwkJCS5uYW1lID0gIkEtTElOSyBEVFUgRFZCLVQgVVNCMi4wIiwKKwkJCS5jb2xkX2lkcyA9IHsgTlVMTCB9LAorCQkJLndhcm1faWRzID0geyAmZ2w4NjFfdGFibGVbMV0sIE5VTEwgfSwKIAkJfSwKIAl9CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9ncDhwc2suYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvZ3A4cHNrLmMKaW5kZXggMjY1MzEyMC4uZDk2NWE5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9ncDhwc2suYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2dwOHBzay5jCkBAIC04Niw3ICs4Niw4IEBACiB7CiAJaW50IHJldDsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3ID0gTlVMTDsKLQl1OCAqcHRyLCAqYnVmOworCWNvbnN0IHU4ICpwdHI7CisJdTggKmJ1ZjsKIAlpZiAoKHJldCA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBiY200NTAwX2Zpcm13YXJlLAogCQkJCQkmZC0+dWRldi0+ZGV2KSkgIT0gMCkgewogCQllcnIoImRpZCBub3QgZmluZCB0aGUgYmNtNDUwMCBmaXJtd2FyZSBmaWxlLiAoJXMpICIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvdW10LTAxMC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi91bXQtMDEwLmMKaW5kZXggOWU3NjUzYi4uMTE4YWFiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi91bXQtMDEwLmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi91bXQtMDEwLmMKQEAgLTEwNyw3ICsxMDcsNyBAQAogCQkJLyogcGFyYW1ldGVyIGZvciB0aGUgTVBFRzItZGF0YSB0cmFuc2ZlciAqLwogCQkJLnN0cmVhbSA9IHsKIAkJCQkudHlwZSA9IFVTQl9CVUxLLAotCQkJCS5jb3VudCA9IDIwLAorCQkJCS5jb3VudCA9IE1BWF9OT19VUkJTX0ZPUl9EQVRBX1NUUkVBTSwKIAkJCQkuZW5kcG9pbnQgPSAweDA2LAogCQkJCS51ID0gewogCQkJCQkuYnVsayA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9hdTg1MjIuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9hdTg1MjIuYwppbmRleCAwODRhMjgwLi4wMzkwMGQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvYXU4NTIyLmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2F1ODUyMi5jCkBAIC00NjMsMTAgKzQ2MywxMyBAQAogCQkJICAgICAgIHN0cnVjdCBkdmJfZnJvbnRlbmRfcGFyYW1ldGVycyAqcCkKIHsKIAlzdHJ1Y3QgYXU4NTIyX3N0YXRlICpzdGF0ZSA9IGZlLT5kZW1vZHVsYXRvcl9wcml2OworCWludCByZXQgPSAtRUlOVkFMOwogCiAJZHByaW50aygiJXMoZnJlcXVlbmN5PSVkKVxuIiwgX19mdW5jX18sIHAtPmZyZXF1ZW5jeSk7CiAKLQlzdGF0ZS0+Y3VycmVudF9mcmVxdWVuY3kgPSBwLT5mcmVxdWVuY3k7CisJaWYgKChzdGF0ZS0+Y3VycmVudF9mcmVxdWVuY3kgPT0gcC0+ZnJlcXVlbmN5KSAmJgorCSAgICAoc3RhdGUtPmN1cnJlbnRfbW9kdWxhdGlvbiA9PSBwLT51LnZzYi5tb2R1bGF0aW9uKSkKKwkJcmV0dXJuIDA7CiAKIAlhdTg1MjJfZW5hYmxlX21vZHVsYXRpb24oZmUsIHAtPnUudnNiLm1vZHVsYXRpb24pOwogCkBAIC00NzYsMTEgKzQ3OSwxNiBAQAogCWlmIChmZS0+b3BzLnR1bmVyX29wcy5zZXRfcGFyYW1zKSB7CiAJCWlmIChmZS0+b3BzLmkyY19nYXRlX2N0cmwpCiAJCQlmZS0+b3BzLmkyY19nYXRlX2N0cmwoZmUsIDEpOwotCQlmZS0+b3BzLnR1bmVyX29wcy5zZXRfcGFyYW1zKGZlLCBwKTsKKwkJcmV0ID0gZmUtPm9wcy50dW5lcl9vcHMuc2V0X3BhcmFtcyhmZSwgcCk7CiAJCWlmIChmZS0+b3BzLmkyY19nYXRlX2N0cmwpCiAJCQlmZS0+b3BzLmkyY19nYXRlX2N0cmwoZmUsIDApOwogCX0KIAorCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJc3RhdGUtPmN1cnJlbnRfZnJlcXVlbmN5ID0gcC0+ZnJlcXVlbmN5OworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTQ5OCw2ICs1MDYsMTYgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBhdTg1MjJfc2xlZXAoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUpCit7CisJc3RydWN0IGF1ODUyMl9zdGF0ZSAqc3RhdGUgPSBmZS0+ZGVtb2R1bGF0b3JfcHJpdjsKKwlkcHJpbnRrKCIlcygpXG4iLCBfX2Z1bmNfXyk7CisKKwlzdGF0ZS0+Y3VycmVudF9mcmVxdWVuY3kgPSAwOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgYXU4NTIyX3JlYWRfc3RhdHVzKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLCBmZV9zdGF0dXNfdCAqc3RhdHVzKQogewogCXN0cnVjdCBhdTg1MjJfc3RhdGUgKnN0YXRlID0gZmUtPmRlbW9kdWxhdG9yX3ByaXY7CkBAIC01MDksMTAgKzUyNyw4IEBACiAJaWYgKHN0YXRlLT5jdXJyZW50X21vZHVsYXRpb24gPT0gVlNCXzgpIHsKIAkJZHByaW50aygiJXMoKSBDaGVja2luZyBWU0JfOFxuIiwgX19mdW5jX18pOwogCQlyZWcgPSBhdTg1MjJfcmVhZHJlZyhzdGF0ZSwgMHg0MDg4KTsKLQkJaWYgKHJlZyAmIDB4MDEpCi0JCQkqc3RhdHVzIHw9IEZFX0hBU19WSVRFUkJJOwotCQlpZiAocmVnICYgMHgwMikKLQkJCSpzdGF0dXMgfD0gRkVfSEFTX0xPQ0sgfCBGRV9IQVNfU1lOQzsKKwkJaWYgKChyZWcgJiAweDAzKSA9PSAweDAzKQorCQkJKnN0YXR1cyB8PSBGRV9IQVNfTE9DSyB8IEZFX0hBU19TWU5DIHwgRkVfSEFTX1ZJVEVSQkk7CiAJfSBlbHNlIHsKIAkJZHByaW50aygiJXMoKSBDaGVja2luZyBRQU1cbiIsIF9fZnVuY19fKTsKIAkJcmVnID0gYXU4NTIyX3JlYWRyZWcoc3RhdGUsIDB4NDU0MSk7CkBAIC02NzIsNiArNjg4LDcgQEAKIAl9LAogCiAJLmluaXQgICAgICAgICAgICAgICAgID0gYXU4NTIyX2luaXQsCisJLnNsZWVwICAgICAgICAgICAgICAgID0gYXU4NTIyX3NsZWVwLAogCS5pMmNfZ2F0ZV9jdHJsICAgICAgICA9IGF1ODUyMl9pMmNfZ2F0ZV9jdHJsLAogCS5zZXRfZnJvbnRlbmQgICAgICAgICA9IGF1ODUyMl9zZXRfZnJvbnRlbmQsCiAJLmdldF9mcm9udGVuZCAgICAgICAgID0gYXU4NTIyX2dldF9mcm9udGVuZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9iY20zNTEwLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvYmNtMzUxMC5jCmluZGV4IGQyNjhlNjUuLmNmNWU1NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9iY20zNTEwLmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2JjbTM1MTAuYwpAQCAtNTkwLDcgKzU5MCw4IEBACiAgKi8KICNkZWZpbmUgQkNNMzUxMF9ERUZBVUxUX0ZJUk1XQVJFICJkdmItZmUtYmNtMzUxMC0wMS5mdyIKIAotc3RhdGljIGludCBiY20zNTEwX3dyaXRlX3JhbShzdHJ1Y3QgYmNtMzUxMF9zdGF0ZSAqc3QsIHUxNiBhZGRyLCB1OCAqYiwgdTE2IGxlbikKK3N0YXRpYyBpbnQgYmNtMzUxMF93cml0ZV9yYW0oc3RydWN0IGJjbTM1MTBfc3RhdGUgKnN0LCB1MTYgYWRkciwgY29uc3QgdTggKmIsCisJCQkgICAgIHUxNiBsZW4pCiB7CiAJaW50IHJldCA9IDAsaTsKIAliY20zNTEwX3JlZ2lzdGVyX3ZhbHVlIHZILCB2TCx2RDsKQEAgLTYxNCw3ICs2MTUsNyBAQAogCXN0cnVjdCBiY20zNTEwX3N0YXRlKiBzdCA9IGZlLT5kZW1vZHVsYXRvcl9wcml2OwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CiAJdTE2IGFkZHIsbGVuOwotCXU4ICAqYjsKKwljb25zdCB1OCAqYjsKIAlpbnQgcmV0LGk7CiAKIAlkZWJfaW5mbygicmVxdWVzdGluZyBmaXJtd2FyZVxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvbnh0MjAweC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL254dDIwMHguYwppbmRleCAyM2QwMjI4Li5hZjI5ODM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvbnh0MjAweC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9ueHQyMDB4LmMKQEAgLTkzLDcgKzkzLDggQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBueHQyMDB4X3dyaXRlYnl0ZXMgKHN0cnVjdCBueHQyMDB4X3N0YXRlKiBzdGF0ZSwgdTggcmVnLCB1OCAqYnVmLCB1OCBsZW4pCitzdGF0aWMgaW50IG54dDIwMHhfd3JpdGVieXRlcyAoc3RydWN0IG54dDIwMHhfc3RhdGUqIHN0YXRlLCB1OCByZWcsCisJCQkgICAgICAgY29uc3QgdTggKmJ1ZiwgdTggbGVuKQogewogCXU4IGJ1ZjIgW2xlbisxXTsKIAlpbnQgZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL29yNTEyMTEuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9vcjUxMjExLmMKaW5kZXggN2VhYTQ3Ni4uNmFmZTEyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL29yNTEyMTEuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvb3I1MTIxMS5jCkBAIC02OSw3ICs2OSw3IEBACiAJdTMyIGN1cnJlbnRfZnJlcXVlbmN5OwogfTsKIAotc3RhdGljIGludCBpMmNfd3JpdGVieXRlcyAoc3RydWN0IG9yNTEyMTFfc3RhdGUqIHN0YXRlLCB1OCByZWcsIHU4ICpidWYsCitzdGF0aWMgaW50IGkyY193cml0ZWJ5dGVzIChzdHJ1Y3Qgb3I1MTIxMV9zdGF0ZSogc3RhdGUsIHU4IHJlZywgY29uc3QgdTggKmJ1ZiwKIAkJCSAgIGludCBsZW4pCiB7CiAJaW50IGVycjsKQEAgLTc3LDcgKzc3LDcgQEAKIAltc2cuYWRkcgk9IHJlZzsKIAltc2cuZmxhZ3MJPSAwOwogCW1zZy5sZW4JCT0gbGVuOwotCW1zZy5idWYJCT0gYnVmOworCW1zZy5idWYJCT0gKHU4ICopYnVmOwogCiAJaWYgKChlcnIgPSBpMmNfdHJhbnNmZXIgKHN0YXRlLT5pMmMsICZtc2csIDEpKSAhPSAxKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIm9yNTEyMTE6IGkyY193cml0ZWJ5dGVzIGVycm9yICIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zcDg4NzAuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zcDg4NzAuYwppbmRleCBhYTc4YWExLi4xYzlhOWI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3A4ODcwLmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3NwODg3MC5jCkBAIC05OCw3ICs5OCw3IEBACiBzdGF0aWMgaW50IHNwODg3MF9maXJtd2FyZV91cGxvYWQgKHN0cnVjdCBzcDg4NzBfc3RhdGUqIHN0YXRlLCBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQogewogCXN0cnVjdCBpMmNfbXNnIG1zZzsKLQljaGFyICpmd19idWYgPSBmdy0+ZGF0YTsKKwljb25zdCBjaGFyICpmd19idWYgPSBmdy0+ZGF0YTsKIAlpbnQgZndfcG9zOwogCXU4IHR4X2J1ZlsyNTVdOwogCWludCB0eF9sZW47CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3A4ODd4LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3A4ODd4LmMKaW5kZXggNDlmNTU4Ny4uNDU0MzYwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3NwODg3eC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zcDg4N3guYwpAQCAtMTQwLDcgKzE0MCw3IEBACiAJdTggYnVmIFtCTE9DS1NJWkUrMl07CiAJaW50IGk7CiAJaW50IGZ3X3NpemUgPSBmdy0+c2l6ZTsKLQl1bnNpZ25lZCBjaGFyICptZW0gPSBmdy0+ZGF0YTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICptZW0gPSBmdy0+ZGF0YTsKIAogCWRwcmludGsoIiVzXG4iLCBfX2Z1bmNfXyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zdHYwMjk5LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3R2MDI5OS5jCmluZGV4IDE3NTU2MTguLjM1NDM1YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zdHYwMjk5LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3N0djAyOTkuYwpAQCAtNjMsNiArNjMsNyBAQAogCXUzMiBzeW1ib2xfcmF0ZTsKIAlmZV9jb2RlX3JhdGVfdCBmZWNfaW5uZXI7CiAJaW50IGVycm1vZGU7CisJdTMyIHVjYmxvY2tzOwogfTsKIAogI2RlZmluZSBTVEFUVVNfQkVSIDAKQEAgLTUwMSw4ICs1MDIsMTAgQEAKIHsKIAlzdHJ1Y3Qgc3R2MDI5OV9zdGF0ZSogc3RhdGUgPSBmZS0+ZGVtb2R1bGF0b3JfcHJpdjsKIAotCWlmIChzdGF0ZS0+ZXJybW9kZSAhPSBTVEFUVVNfQkVSKSByZXR1cm4gMDsKLQkqYmVyID0gKHN0djAyOTlfcmVhZHJlZyAoc3RhdGUsIDB4MWQpIDw8IDgpIHwgc3R2MDI5OV9yZWFkcmVnIChzdGF0ZSwgMHgxZSk7CisJaWYgKHN0YXRlLT5lcnJtb2RlICE9IFNUQVRVU19CRVIpCisJCXJldHVybiAtRU5PU1lTOworCisJKmJlciA9IHN0djAyOTlfcmVhZHJlZyhzdGF0ZSwgMHgxZSkgfCAoc3R2MDI5OV9yZWFkcmVnKHN0YXRlLCAweDFkKSA8PCA4KTsKIAogCXJldHVybiAwOwogfQpAQCAtNTQwLDggKzU0MywxMiBAQAogewogCXN0cnVjdCBzdHYwMjk5X3N0YXRlKiBzdGF0ZSA9IGZlLT5kZW1vZHVsYXRvcl9wcml2OwogCi0JaWYgKHN0YXRlLT5lcnJtb2RlICE9IFNUQVRVU19VQ0JMT0NLUykgKnVjYmxvY2tzID0gMDsKLQllbHNlICp1Y2Jsb2NrcyA9IChzdHYwMjk5X3JlYWRyZWcgKHN0YXRlLCAweDFkKSA8PCA4KSB8IHN0djAyOTlfcmVhZHJlZyAoc3RhdGUsIDB4MWUpOworCWlmIChzdGF0ZS0+ZXJybW9kZSAhPSBTVEFUVVNfVUNCTE9DS1MpCisJCXJldHVybiAtRU5PU1lTOworCisJc3RhdGUtPnVjYmxvY2tzICs9IHN0djAyOTlfcmVhZHJlZyhzdGF0ZSwgMHgxZSk7CisJc3RhdGUtPnVjYmxvY2tzICs9IChzdHYwMjk5X3JlYWRyZWcoc3RhdGUsIDB4MWQpIDw8IDgpOworCSp1Y2Jsb2NrcyA9IHN0YXRlLT51Y2Jsb2NrczsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDIzLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvdGRhMTAwMjMuYwppbmRleCAwNzI3YjgwLi5jNmZmNWI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvdGRhMTAwMjMuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvdGRhMTAwMjMuYwpAQCAtMTE2LDkgKzExNiwxMiBAQAogCWludCByZXQ7CiAKIAlyZXQgPSBpMmNfdHJhbnNmZXIgKHN0YXRlLT5pMmMsIG1zZywgMik7Ci0JaWYgKHJldCAhPSAyKQotCQlwcmludGsoIkRWQjogVERBMTAwMjM6ICVzOiByZWFkcmVnIGVycm9yIChyZXQgPT0gJWkpXG4iLAotCQkJCSBfX2Z1bmNfXywgcmV0KTsKKwlpZiAocmV0ICE9IDIpIHsKKwkJaW50IG51bSA9IHN0YXRlLT5mcm9udGVuZC5kdmIgPyBzdGF0ZS0+ZnJvbnRlbmQuZHZiLT5udW0gOiAtMTsKKwkJcHJpbnRrKEtFUk5fRVJSICJEVkI6IFREQTEwMDIzKCVkKTogJXM6IHJlYWRyZWcgZXJyb3IgIgorCQkJIihyZWcgPT0gMHglMDJ4LCByZXQgPT0gJWkpXG4iLAorCQkJbnVtLCBfX2Z1bmNfXywgcmVnLCByZXQpOworCX0KIAlyZXR1cm4gYjFbMF07CiB9CiAKQEAgLTEyOSwxMSArMTMyLDEyIEBACiAJaW50IHJldDsKIAogCXJldCA9IGkyY190cmFuc2ZlciAoc3RhdGUtPmkyYywgJm1zZywgMSk7Ci0JaWYgKHJldCAhPSAxKQotCQlwcmludGsoIkRWQjogVERBMTAwMjMoJWQpOiAlcywgd3JpdGVyZWcgZXJyb3IgIgorCWlmIChyZXQgIT0gMSkgeworCQlpbnQgbnVtID0gc3RhdGUtPmZyb250ZW5kLmR2YiA/IHN0YXRlLT5mcm9udGVuZC5kdmItPm51bSA6IC0xOworCQlwcmludGsoS0VSTl9FUlIgIkRWQjogVERBMTAwMjMoJWQpOiAlcywgd3JpdGVyZWcgZXJyb3IgIgogCQkJIihyZWcgPT0gMHglMDJ4LCB2YWwgPT0gMHglMDJ4LCByZXQgPT0gJWkpXG4iLAotCQkJc3RhdGUtPmZyb250ZW5kLmR2Yi0+bnVtLCBfX2Z1bmNfXywgcmVnLCBkYXRhLCByZXQpOwotCisJCQludW0sIF9fZnVuY19fLCByZWcsIGRhdGEsIHJldCk7CisJfQogCXJldHVybiAocmV0ICE9IDEpID8gLUVSRU1PVEVJTyA6IDA7CiB9CiAKQEAgLTQ2NCw3ICs0NjgsNyBAQAogCWludCBpOwogCiAJLyogYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgaW50ZXJuYWwgc3RhdGUgKi8KLQlzdGF0ZSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB0ZGExMDAyM19zdGF0ZSksIEdGUF9LRVJORUwpOworCXN0YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHRkYTEwMDIzX3N0YXRlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKHN0YXRlID09IE5VTEwpIGdvdG8gZXJyb3I7CiAKIAkvKiBzZXR1cCB0aGUgc3RhdGUgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDA0OC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDQ4LmMKaW5kZXggMDkwZmI3ZC4uMGFiOGQ4NmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDA0OC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDA0OC5jCkBAIC0yMzMsNyArMjMzLDcgQEAKIH0KIAogc3RhdGljIGludCB0ZGExMDA0OF93cml0ZXJlZ2J1bGsoc3RydWN0IHRkYTEwMDQ4X3N0YXRlICpzdGF0ZSwgdTggcmVnLAotCXU4ICpkYXRhLCB1MTYgbGVuKQorCQkJCSBjb25zdCB1OCAqZGF0YSwgdTE2IGxlbikKIHsKIAlpbnQgcmV0ID0gLUVSRU1PVEVJTzsKIAlzdHJ1Y3QgaTJjX21zZyBtc2c7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvdGRhMTAwNHguYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDA0eC5jCmluZGV4IDQ5OTczODQuLjE0NjVmZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDA0eC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDA0eC5jCkBAIC0zMTcsNyArMzE3LDcgQEAKIH0KIAogc3RhdGljIGludCB0ZGExMDA0eF9kb191cGxvYWQoc3RydWN0IHRkYTEwMDR4X3N0YXRlICpzdGF0ZSwKLQkJCSAgICAgIHVuc2lnbmVkIGNoYXIgKm1lbSwgdW5zaWduZWQgaW50IGxlbiwKKwkJCSAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1lbSwgdW5zaWduZWQgaW50IGxlbiwKIAkJCSAgICAgIHU4IGRzcENvZGVDb3VudGVyUmVnLCB1OCBkc3BDb2RlSW5SZWcpCiB7CiAJdTggYnVmWzY1XTsKQEAgLTEyNDgsMTEgKzEyNDgsMTQgQEAKIAkJCQkgICAgIHN0cnVjdCBpMmNfYWRhcHRlciogaTJjKQogewogCXN0cnVjdCB0ZGExMDA0eF9zdGF0ZSAqc3RhdGU7CisJaW50IGlkOwogCiAJLyogYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgaW50ZXJuYWwgc3RhdGUgKi8KIAlzdGF0ZSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB0ZGExMDA0eF9zdGF0ZSksIEdGUF9LRVJORUwpOwotCWlmICghc3RhdGUpCisJaWYgKCFzdGF0ZSkgeworCQlwcmludGsoS0VSTl9FUlIgIkNhbid0IGFsb2NhdGUgbWVtb3J5IGZvciB0ZGExMDA0NSBzdGF0ZVxuIik7CiAJCXJldHVybiBOVUxMOworCX0KIAogCS8qIHNldHVwIHRoZSBzdGF0ZSAqLwogCXN0YXRlLT5jb25maWcgPSBjb25maWc7CkBAIC0xMjYwLDcgKzEyNjMsMTUgQEAKIAlzdGF0ZS0+ZGVtb2RfdHlwZSA9IFREQTEwMDRYX0RFTU9EX1REQTEwMDQ1OwogCiAJLyogY2hlY2sgaWYgdGhlIGRlbW9kIGlzIHRoZXJlICovCi0JaWYgKHRkYTEwMDR4X3JlYWRfYnl0ZShzdGF0ZSwgVERBMTAwNFhfQ0hJUElEKSAhPSAweDI1KSB7CisJaWQgPSB0ZGExMDA0eF9yZWFkX2J5dGUoc3RhdGUsIFREQTEwMDRYX0NISVBJRCk7CisJaWYgKGlkIDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgInRkYTEwMDQ1OiBjaGlwIGlzIG5vdCBhbnN3ZXJpbmcuIEdpdmluZyB1cC5cbiIpOworCQlrZnJlZShzdGF0ZSk7CisJCXJldHVybiBOVUxMOworCX0KKworCWlmIChpZCAhPSAweDI1KSB7CisJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCB0ZGExMDA0eCBJRCA9IDB4JTAyeC4gQ2FuJ3QgcHJvY2VlZFxuIiwgaWQpOwogCQlrZnJlZShzdGF0ZSk7CiAJCXJldHVybiBOVUxMOwogCX0KQEAgLTEzMDcsMTEgKzEzMTgsMTQgQEAKIAkJCQkgICAgIHN0cnVjdCBpMmNfYWRhcHRlciogaTJjKQogewogCXN0cnVjdCB0ZGExMDA0eF9zdGF0ZSAqc3RhdGU7CisJaW50IGlkOwogCiAJLyogYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgaW50ZXJuYWwgc3RhdGUgKi8KIAlzdGF0ZSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB0ZGExMDA0eF9zdGF0ZSksIEdGUF9LRVJORUwpOwotCWlmICghc3RhdGUpCisJaWYgKCFzdGF0ZSkgeworCQlwcmludGsoS0VSTl9FUlIgIkNhbid0IGFsb2NhdGUgbWVtb3J5IGZvciB0ZGExMDA0NiBzdGF0ZVxuIik7CiAJCXJldHVybiBOVUxMOworCX0KIAogCS8qIHNldHVwIHRoZSBzdGF0ZSAqLwogCXN0YXRlLT5jb25maWcgPSBjb25maWc7CkBAIC0xMzE5LDcgKzEzMzMsMTQgQEAKIAlzdGF0ZS0+ZGVtb2RfdHlwZSA9IFREQTEwMDRYX0RFTU9EX1REQTEwMDQ2OwogCiAJLyogY2hlY2sgaWYgdGhlIGRlbW9kIGlzIHRoZXJlICovCi0JaWYgKHRkYTEwMDR4X3JlYWRfYnl0ZShzdGF0ZSwgVERBMTAwNFhfQ0hJUElEKSAhPSAweDQ2KSB7CisJaWQgPSB0ZGExMDA0eF9yZWFkX2J5dGUoc3RhdGUsIFREQTEwMDRYX0NISVBJRCk7CisJaWYgKGlkIDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgInRkYTEwMDQ2OiBjaGlwIGlzIG5vdCBhbnN3ZXJpbmcuIEdpdmluZyB1cC5cbiIpOworCQlrZnJlZShzdGF0ZSk7CisJCXJldHVybiBOVUxMOworCX0KKwlpZiAoaWQgIT0gMHg0NikgeworCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgdGRhMTAwNHggSUQgPSAweCUwMnguIENhbid0IHByb2NlZWRcbiIsIGlkKTsKIAkJa2ZyZWUoc3RhdGUpOwogCQlyZXR1cm4gTlVMTDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9LY29uZmlnIGIvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvS2NvbmZpZwppbmRleCBkNDMzOWIxLi4wNzY0M2UwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9LY29uZmlnCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0cGNpL0tjb25maWcKQEAgLTEwMSw2ICsxMDEsNyBAQAogY29uZmlnIERWQl9CVURHRVRfQ0kKIAl0cmlzdGF0ZSAiQnVkZ2V0IGNhcmRzIHdpdGggb25ib2FyZCBDSSBjb25uZWN0b3IiCiAJZGVwZW5kcyBvbiBEVkJfQlVER0VUX0NPUkUgJiYgSTJDCisJZGVwZW5kcyBvbiBJTlBVVCAjIGR1ZSB0byBJUgogCXNlbGVjdCBEVkJfU1RWMDI5NyBpZiAhRFZCX0ZFX0NVU1RPTUlTRQogCXNlbGVjdCBEVkJfU1RWMDI5OSBpZiAhRFZCX0ZFX0NVU1RPTUlTRQogCXNlbGVjdCBEVkJfVERBMTAwNFggaWYgIURWQl9GRV9DVVNUT01JU0UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0cGNpL2F2NzExMF9ody5jIGIvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvYXY3MTEwX2h3LmMKaW5kZXggOWQ4MTA3NC4uM2EzZjUyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvYXY3MTEwX2h3LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvYXY3MTEwX2h3LmMKQEAgLTQyNyw2ICs0MjcsNyBAQAogCQkJaWYgKGVycikgewogCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IHRpbWVvdXQgd2FpdGluZyBvbiBidXN5ICVzIFFVRVVFXG4iLAogCQkJCQlfX2Z1bmNfXywgdHlwZSk7CisJCQkJYXY3MTEwLT5hcm1fZXJyb3JzKys7CiAJCQkJcmV0dXJuIC1FVElNRURPVVQ7CiAJCQl9CiAJCQltc2xlZXAoMSk7CkBAIC04NTMsMTAgKzg1NCw4IEBACiAKIHN0YXRpYyBpbmxpbmUgaW50IFdhaXRVbnRpbEJtcExvYWRlZChzdHJ1Y3QgYXY3MTEwICphdjcxMTApCiB7Ci0JaW50IHJldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZV90aW1lb3V0KGF2NzExMC0+Ym1wcSwKKwlpbnQgcmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KGF2NzExMC0+Ym1wcSwKIAkJCQlhdjcxMTAtPmJtcF9zdGF0ZSAhPSBCTVBfTE9BRElORywgMTAqSFopOwotCWlmIChyZXQgPT0gLUVSRVNUQVJUU1lTKQotCQlyZXR1cm4gcmV0OwogCWlmIChyZXQgPT0gMCkgewogCQlwcmludGsoImR2Yi10dHBjaTogd2FybmluZzogdGltZW91dCB3YWl0aW5nIGluIExvYWRCaXRtYXA6ICVkLCAlZFxuIiwKIAkJICAgICAgIHJldCwgYXY3MTEwLT5ibXBfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItYnVkZ2V0L2R2Yi10dHVzYi1idWRnZXQuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWJ1ZGdldC9kdmItdHR1c2ItYnVkZ2V0LmMKaW5kZXggNWQyZDgxYS4uYmMyMDQzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItYnVkZ2V0L2R2Yi10dHVzYi1idWRnZXQuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1idWRnZXQvZHZiLXR0dXNiLWJ1ZGdldC5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgogCiAjaW5jbHVkZSAiZHZiX2Zyb250ZW5kLmgiCiAjaW5jbHVkZSAiZG14ZGV2LmgiCkBAIC0yODUsMTMgKzI4NiwxOSBAQAogCXJldHVybiBpOwogfQogCi0jaW5jbHVkZSAiZHZiLXR0dXNiLWRzcGJvb3Rjb2RlLmgiCi0KIHN0YXRpYyBpbnQgdHR1c2JfYm9vdF9kc3Aoc3RydWN0IHR0dXNiICp0dHVzYikKIHsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogCWludCBpLCBlcnI7CiAJdTggYls0MF07CiAKKwllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgInR0dXNiLWJ1ZGdldC9kc3Bib290Y29kZS5iaW4iLAorCQkJICAgICAgICZ0dHVzYi0+ZGV2LT5kZXYpOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ0dHVzYi1idWRnZXQ6IGZhaWxlZCB0byByZXF1ZXN0IGZpcm13YXJlXG4iKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKIAkvKiBCb290QmxvY2sgKi8KIAliWzBdID0gMHhhYTsKIAliWzJdID0gMHgxMzsKQEAgLTI5OSw4ICszMDYsOCBAQAogCiAJLyogdXBsb2FkIGRzcCBjb2RlIGluIDMyIGJ5dGUgc3RlcHMgKDM2IGRpZG4ndCB3b3JrIGZvciBtZSAuLi4pICovCiAJLyogMzIgaXMgbWF4IHBhY2tldCBzaXplLCBubyBtZXNzYWdlcyBzaG91bGQgYmUgc3BsaXR0ZWQuICovCi0JZm9yIChpID0gMDsgaSA8IHNpemVvZihkc3BfYm9vdGNvZGUpOyBpICs9IDI4KSB7Ci0JCW1lbWNweSgmYls0XSwgJmRzcF9ib290Y29kZVtpXSwgMjgpOworCWZvciAoaSA9IDA7IGkgPCBmdy0+c2l6ZTsgaSArPSAyOCkgeworCQltZW1jcHkoJmJbNF0sICZmdy0+ZGF0YVtpXSwgMjgpOwogCiAJCWJbMV0gPSArK3R0dXNiLT5jOwogCkBAIC0xODIwLDMgKzE4MjcsNCBAQAogTU9EVUxFX0FVVEhPUigiSG9sZ2VyIFdhZWNodGxlciA8aG9sZ2VyQGNvbnZlcmdlbmNlLmRlPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJUVFVTQiBEVkIgRHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfRklSTVdBUkUoInR0dXNiLWJ1ZGdldC9kc3Bib290Y29kZS5iaW4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWJ1ZGdldC9kdmItdHR1c2ItZHNwYm9vdGNvZGUuaCBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWJ1ZGdldC9kdmItdHR1c2ItZHNwYm9vdGNvZGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGMzY2Q1NC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1idWRnZXQvZHZiLXR0dXNiLWRzcGJvb3Rjb2RlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjQ0ICswLDAgQEAKLQotI2luY2x1ZGUgPGFzbS90eXBlcy5oPgotCi1zdGF0aWMgdTggZHNwX2Jvb3Rjb2RlIFtdID0gewotCTB4MDgsIDB4YWEsIDB4MDAsIDB4MTgsIDB4MDAsIDB4MDMsIDB4MDgsIDB4MDAsCi0JMHgwMCwgMHgxMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHg4MCwgMHgxOCwgMHg1ZiwKLQkweDAwLCAweDAwLCAweDAxLCAweDgwLCAweDc3LCAweDE4LCAweDJhLCAweGViLAotCTB4NmIsIDB4ZjgsIDB4MDAsIDB4MTgsIDB4MDMsIDB4ZmYsIDB4NjgsIDB4ZjgsCi0JMHgwMCwgMHgxOCwgMHhmZiwgMHhmZSwgMHhmNywgMHhiOCwgMHhmNywgMHhiZSwKLQkweGY2LCAweGI5LCAweGY0LCAweGEwLCAweGY2LCAweGI3LCAweGY2LCAweGI1LAotCTB4ZjYsIDB4YjYsIDB4ZjAsIDB4MjAsIDB4MTksIDB4ZGYsIDB4ZjEsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHhmOCwgMHg0ZCwgMHgwMSwgMHhhYiwgMHhmNiwgMHhiOCwKLQkweGYwLCAweDIwLCAweDE5LCAweGRmLCAweGYwLCAweDczLCAweDAxLCAweGE1LAotCTB4N2UsIDB4ZjgsIDB4MDAsIDB4MTIsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg0NywgMHhmOCwgMHgwMCwgMHgxMSwgMHg3ZSwgMHg5MiwgMHgwMCwgMHhmOCwKLQkweDAwLCAweDExLCAweGYwLCAweDAwLCAweDAwLCAweDAxLCAweDdlLCAweGY4LAotCTB4MDAsIDB4MTEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4NmMsIDB4ODksCi0JMHgwMSwgMHg5YSwgMHhmNywgMHhiOCwgMHhlZSwgMHhmYywgMHhmMCwgMHgyMCwKLQkweGZmLCAweGZmLCAweGYxLCAweDAwLCAweDAwLCAweDAxLCAweGY4LCAweDRkLAotCTB4MDEsIDB4YmYsIDB4ZjIsIDB4NzMsIDB4MDEsIDB4YjksIDB4NGUsIDB4MDIsCi0JMHhmNCwgMHg5NSwgMHhmNSwgMHhlMywgMHg1NiwgMHgwMiwgMHg3ZSwgMHgwMCwKLQkweDExLCAweDAwLCAweGZhLCAweDRjLCAweDAxLCAweGI3LCAweDZiLCAweDAzLAotCTB4MDAsIDB4MDEsIDB4ZjYsIDB4YjgsIDB4ZWUsIDB4MDQsIDB4ZjAsIDB4NzQsCi0JMHgwZCwgMHhhNywgMHhmMCwgMHg3NCwgMHgwMSwgMHhjNSwgMHg0YSwgMHgxMSwKLQkweDRhLCAweDE2LCAweDcyLCAweDExLCAweDJhLCAweGU2LCAweDEwLCAweGY4LAotCTB4MDAsIDB4MTEsIDB4ZmEsIDB4NDUsIDB4MDEsIDB4ZGIsIDB4ZjQsIDB4OTUsCi0JMHhlZSwgMHhmZiwgMHg0OCwgMHgxMSwgMHhmMCwgMHgwMCwgMHgyYSwgMHhjNiwKLQkweDg4LCAweDE2LCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDEwLCAweGVlLAotCTB4ZmYsIDB4ZmYsIDB4ZjQsIDB4ZTMsIDB4NmMsIDB4ZTksIDB4ZmYsIDB4ZmYsCi0JMHgwMSwgMHhkNSwgMHgxMCwgMHhmOCwgMHgyYSwgMHhlNywgMHhmOCwgMHg0NSwKLQkweDAxLCAweGUyLCAweDEwLCAweGY4LCAweDJhLCAweGU3LCAweGY0LCAweGUzLAotCTB4ZjAsIDB4NzQsIDB4MDEsIDB4ZmYsIDB4ZWUsIDB4MDEsIDB4OGEsIDB4MTYsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHhmNywgMHhiOCwgMHhlOSwgMHgyMCwKLQkweDRhLCAweDExLCAweDA5LCAweGY4LCAweDJhLCAweGU2LCAweGY4LCAweDRlLAotCTB4MDEsIDB4ZjMsIDB4ZjIsIDB4NzMsIDB4MDEsIDB4ZmQsIDB4ZjQsIDB4OTUsCi0JMHhlOCwgMHgwMSwgMHg3MiwgMHgxMSwgMHgyYSwgMHhlNiwgMHg0OSwgMHgxMSwKLQkweDgwLCAweGUxLCAweDJhLCAweGM2LCAweGYzLCAweDAwLCAweDAwLCAweDAxLAotCTB4ZTgsIDB4MDAsIDB4ODEsIDB4ZjgsIDB4MmEsIDB4ZTYsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHhmNCwgMHg5NSwgMHhmMCwgMHg3MywgMHgwMiwgMHgwMCwKLQkweDEwLCAweGY4LCAweDJhLCAweDBmLCAweGZjLCAweDAwLCAweDRhLCAweDExLAotCTB4ZjAsIDB4NzQsIDB4MDIsIDB4MDIsIDB4ODAsIDB4ZjgsIDB4MmEsIDB4MTAsCi0JMHg3MywgMHgwOCwgMHgwMCwgMHgwOSwgMHg0MCwgMHhmOCwgMHgyYSwgMHgxNSwKLQkweDgyLCAweGY4LCAweDAwLCAweDExLCAweGY0LCAweDk1LCAweDc3LCAweDEwLAotCTB4MDMsIDB4ZTgsIDB4ZjUsIDB4YTksIDB4ZjgsIDB4MzAsIDB4MDIsIDB4MjEsCi0JMHg3MSwgMHhmOCwgMHgyYSwgMHgxMCwgMHgyYSwgMHgxNSwgMHg1NiwgMHhmOCwKLQkweDJhLCAweDBjLCAweGYwLCAweGUzLCAweDRlLCAweGY4LCAweDJhLCAweDE2LAotCTB4ZTgsIDB4MDAsIDB4NGUsIDB4ZjgsIDB4MmEsIDB4MGMsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHg0YSwgMHgwNiwgMHg0YSwgMHgwNywgMHg0YSwgMHgxZCwKLQkweDY4LCAweGY4LCAweDAwLCAweDA3LCAweDdkLCAweDNmLCAweDY5LCAweGY4LAotCTB4MDAsIDB4MDcsIDB4NDAsIDB4MDAsIDB4NjgsIDB4ZjgsIDB4MDAsIDB4MWQsCi0JMHhmZiwgMHhmYywgMHg2YiwgMHhmOCwgMHgyYSwgMHgwZiwgMHgwMCwgMHgwMSwKLQkweDhhLCAweDFkLCAweDhhLCAweDA3LCAweDhhLCAweDA2LCAweGY0LCAweGViLAotCTB4ZWUsIDB4ZmQsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4MGYsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHhmYiwgMHg4MCwgMHgxOSwgMHg0YywKLQkweGY0LCAweDk1LCAweGU4LCAweDAwLCAweDgwLCAweGY4LCAweDJhLCAweDExLAotCTB4ZjksIDB4ODAsIDB4MTksIDB4MDcsIDB4ODAsIDB4ZjgsIDB4MmEsIDB4MGUsCi0JMHhmOSwgMHg4MCwgMHgxNiwgMHg2NiwgMHg3NiwgMHgwMCwgMHgyYSwgMHgxMiwKLQkweDEwLCAweGY4LCAweDJhLCAweDExLCAweGY5LCAweDgwLCAweDE4LCAweGUzLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4MGUsIDB4ZjksIDB4ODAsIDB4MTYsIDB4NjYsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHgwZSwgMHhmOSwgMHg4MCwgMHgxNiwgMHg4NywKLQkweGVlLCAweDAzLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweGY2LCAweGI4LAotCTB4ZjQsIDB4OTUsIDB4ZjAsIDB4MjAsIDB4ODAsIDB4MDAsIDB4MTEsIDB4ZjgsCi0JMHgyYSwgMHg1YSwgMHhmOCwgMHg0ZCwgMHgwMiwgMHg5MywgMHgxMSwgMHhmOCwKLQkweDJhLCAweDlmLCAweGY4LCAweDRjLCAweDAyLCAweDdjLCAweDc3LCAweDEyLAotCTB4MmEsIDB4MzksIDB4NDksIDB4MTIsIDB4MDEsIDB4ZjgsIDB4MmEsIDB4OWYsCi0JMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3MSwgMHg4MSwKLQkweDAwLCAweDExLCAweDZjLCAweGUxLCAweGZmLCAweGFiLCAweDAyLCAweDkzLAotCTB4NmIsIDB4ZjgsIDB4MmEsIDB4OWYsIDB4MDAsIDB4MDEsIDB4ZTksIDB4MDUsCi0JMHgwMSwgMHhlMiwgMHgwMCwgMHgwMywgMHg4MSwgMHhmOCwgMHgyYSwgMHhhMCwKLQkweGYwLCAweDczLCAweDAyLCAweDk1LCAweDcyLCAweDExLCAweDJhLCAweDlmLAotCTB4ZjQsIDB4OTUsIDB4MTAsIDB4ZTEsIDB4MmEsIDB4MzksIDB4NmIsIDB4ZjgsCi0JMHgyYSwgMHg5ZiwgMHgwMCwgMHgwMSwgMHgxMSwgMHhmOCwgMHgyYSwgMHg5ZiwKLQkweDA5LCAweGY4LCAweDJhLCAweGEwLCAweGY4LCAweDRjLCAweDAyLCAweDkzLAotCTB4NzYsIDB4ZjgsIDB4MmEsIDB4NWEsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsCi0JMHgyYSwgMHg5ZiwgMHgwMCwgMHgwMCwgMHg3NiwgMHhmOCwgMHgyYSwgMHhhMCwKLQkweDAwLCAweDAwLCAweDg4LCAweDExLCAweGY0LCAweDk1LCAweDQ4LCAweDExLAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHg1YSwgMHhmOCwgMHg0NCwgMHgwMiwgMHhiMiwKLQkweDc2LCAweGY4LCAweDJhLCAweDVhLCAweDAwLCAweDAxLCAweGYwLCAweDc0LAotCTB4MDIsIDB4NTgsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsCi0JMHg4MCwgMHgwMCwgMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwgMHgwMiwgMHhiMiwKLQkweDQ4LCAweDExLCAweGYwLCAweDMwLCAweDAwLCAweGZmLCAweDgwLCAweDAwLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4NWIsIDB4ZjksIDB4ODAsIDB4MTgsIDB4ZDYsCi0JMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHhmNCwgMHg5NSwKLQkweDRhLCAweDA4LCAweDRhLCAweDA5LCAweDRhLCAweDBhLCAweDRhLCAweDBiLAotCTB4NGEsIDB4MGMsIDB4NGEsIDB4MGQsIDB4NGEsIDB4MTAsIDB4NGEsIDB4MTEsCi0JMHg0YSwgMHgxMiwgMHg0YSwgMHgxMywgMHg0YSwgMHgxNCwgMHg0YSwgMHgxNSwKLQkweDRhLCAweDE2LCAweDRhLCAweDE3LCAweDRhLCAweDE3LCAweDRhLCAweDE5LAotCTB4NGEsIDB4MGUsIDB4NGEsIDB4MDYsIDB4NGEsIDB4MDcsIDB4NGEsIDB4MWEsCi0JMHg0YSwgMHgxZCwgMHg0YSwgMHgxYiwgMHg0YSwgMHgxYywgMHg2OCwgMHhmOCwKLQkweDAwLCAweDA3LCAweDdkLCAweDNmLCAweDY5LCAweGY4LCAweDAwLCAweDA3LAotCTB4NDAsIDB4MDAsIDB4NjgsIDB4ZjgsIDB4MDAsIDB4MWQsIDB4ZmYsIDB4ZmMsCi0JMHg0OCwgMHgxOCwgMHg2OCwgMHhmOCwgMHgwMCwgMHgxOCwgMHhmZiwgMHhmZSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDRhLCAweDA4LCAweGVlLCAweGZkLAotCTB4ZjAsIDB4NzQsIDB4MDIsIDB4NTgsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMCwgMHg4MCwgMHgwMCwgMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwKLQkweDAyLCAweGVmLCAweDQ4LCAweDExLCAweGYwLCAweDMwLCAweDAwLCAweGZmLAotCTB4ODAsIDB4MDAsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4NWIsIDB4ZjksIDB4ODAsCi0JMHgxOCwgMHhkNiwgMHhlZSwgMHgwMywgMHg4YSwgMHgxOCwgMHhmNCwgMHg5NSwKLQkweDhhLCAweDFjLCAweDhhLCAweDFiLCAweDhhLCAweDFkLCAweDhhLCAweDFhLAotCTB4OGEsIDB4MDcsIDB4OGEsIDB4MDYsIDB4OGEsIDB4MGUsIDB4OGEsIDB4MTksCi0JMHg4YSwgMHgxNywgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwgMHg4YSwgMHgxNSwKLQkweDhhLCAweDE0LCAweDhhLCAweDEzLCAweDhhLCAweDEyLCAweDhhLCAweDExLAotCTB4OGEsIDB4MTAsIDB4OGEsIDB4MGQsIDB4OGEsIDB4MGMsIDB4OGEsIDB4MGIsCi0JMHg4YSwgMHgwYSwgMHg4YSwgMHgwOSwgMHg4YSwgMHgwOCwgMHhmNCwgMHhlYiwKLQkweDRhLCAweDExLCAweDc3LCAweDExLCAweDJhLCAweDM5LCAweDc2LCAweDgxLAotCTB4MDAsIDB4NTUsIDB4NzcsIDB4MTIsIDB4MmEsIDB4MTgsIDB4MTAsIDB4ZTIsCi0JMHgwMCwgMHgwMSwgMHg4MCwgMHhlMSwgMHgwMCwgMHgwMSwgMHgxMCwgMHhlMiwKLQkweDAwLCAweDAyLCAweDgwLCAweGUxLCAweDAwLCAweDAyLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDQsCi0JMHgwMCwgMHhhYSwgMHhmMCwgMHg3NCwgMHgwMiwgMHg5OCwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweDg4LCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsIDB4NmYsIDB4ZjgsIDB4MmEsIDB4OWUsCi0JMHgwYywgMHg4OCwgMHhlOCwgMHhmZiwgMHgxOCwgMHhlMSwgMHgwMCwgMHgwMSwKLQkweDFhLCAweGY4LCAweDJhLCAweDllLCAweGYwLCAweDMwLCAweDFmLCAweGZmLAotCTB4ODAsIDB4ZjgsIDB4MmEsIDB4OWUsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwgMHgyYSwgMHgzOSwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDU1LCAweDc3LCAweDEyLCAweDJhLCAweDE4LCAweDExLCAweGUyLAotCTB4MDAsIDB4MDEsIDB4ODEsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4MTEsIDB4ZTIsCi0JMHgwMCwgMHgwMiwgMHg4MSwgMHhlMSwgMHgwMCwgMHgwMiwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDAzLCAweDAwLCAweDAyLCAweDQ4LCAweDA4LCAweDZmLCAweGUxLAotCTB4MDAsIDB4MDQsIDB4MGMsIDB4OTgsIDB4ZjAsIDB4MzAsIDB4MDAsIDB4ZmYsCi0JMHg4MCwgMHhlMSwgMHgwMCwgMHgwNSwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweGFhLCAweGYwLCAweDc0LCAweDAyLCAweDk4LCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NzcsIDB4MTEsIDB4MmEsIDB4MzksCi0JMHg3NiwgMHg4MSwgMHgwMCwgMHg1NSwgMHg3NywgMHgxMiwgMHgyYSwgMHgxOCwKLQkweDEwLCAweGUyLCAweDAwLCAweDAxLCAweDgwLCAweGUxLCAweDAwLCAweDAxLAotCTB4MTAsIDB4ZTIsIDB4MDAsIDB4MDIsIDB4ODAsIDB4ZTEsIDB4MDAsIDB4MDIsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgwNCwgMHg0OCwgMHgxMSwKLQkweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDg4LCAweDEyLCAweGY0LCAweDk1LAotCTB4NzcsIDB4MTMsIDB4MmEsIDB4NzYsIDB4ZTksIDB4MDAsIDB4ZTUsIDB4OTgsCi0JMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwgMHhmNiwgMHhiOCwgMHg0OCwgMHgwYiwKLQkweDA4LCAweGY4LCAweDJhLCAweDNjLCAweGY4LCAweDQzLCAweDAzLCAweDcxLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4YWEsIDB4ZjAsIDB4NzQsIDB4MDIsIDB4OTgsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmMCwKLQkweDg4LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDcxLCAweDgxLAotCTB4MDAsIDB4MTQsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MTUsCi0JMHg0OSwgMHgxMSwgMHhmMywgMHgwMCwgMHgwMCwgMHgwMiwgMHg4OSwgMHgxMSwKLQkweGU3LCAweDgyLCAweDZkLCAweGVhLCAweDAwLCAweDA0LCAweGU3LCAweDgzLAotCTB4NmQsIDB4ZWIsIDB4MDAsIDB4MGEsIDB4NzcsIDB4MWEsIDB4MDAsIDB4MDUsCi0JMHhmMCwgMHg3MiwgMHgwMywgMHhhYSwgMHgxMSwgMHg4MSwgMHhmMiwgMHhlOCwKLQkweDgwLCAweDgyLCAweGU5LCAweGZmLCAweDE5LCAweGUxLCAweDAwLCAweDAxLAotCTB4ZjEsIDB4YTAsIDB4ODEsIDB4OTIsIDB4MTEsIDB4ZTEsIDB4MDAsIDB4MGMsCi0JMHhmMiwgMHhlOCwgMHg4MCwgMHg4MywgMHhlOSwgMHhmZiwgMHgxOSwgMHhlMSwKLQkweDAwLCAweDBkLCAweGYxLCAweGEwLCAweDgxLCAweDkzLCAweDZkLCAweGU5LAotCTB4MDAsIDB4MDIsIDB4NDgsIDB4MTgsIDB4NDksIDB4MTgsIDB4NzAsIDB4MDAsCi0JMHgwMCwgMHgxNSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNCwgMHhmMywgMHgwMCwKLQkweDAwLCAweDBhLCAweDgwLCAweDAxLCAweDgxLCAweDAyLCAweGYyLCAweDc0LAotCTB4MGUsIDB4NTQsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTQsIDB4ZWUsIDB4MTAsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhmMCwgMHg3NCwKLQkweDBjLCAweDVlLCAweDgwLCAweGY4LCAweDJhLCAweDVjLCAweDc3LCAweDEyLAotCTB4MmEsIDB4MzksIDB4NzYsIDB4ODIsIDB4MDAsIDB4NTUsIDB4NzcsIDB4MTEsCi0JMHgyYSwgMHgxOCwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwMSwgMHg4MCwgMHhlMiwKLQkweDAwLCAweDAxLCAweDEwLCAweGUxLCAweDAwLCAweDAyLCAweDgwLCAweGUyLAotCTB4MDAsIDB4MDIsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MWMsCi0JMHhmNiwgMHhiOCwgMHg1NiwgMHhmOCwgMHgyYSwgMHgxNiwgMHhmMCwgMHhmMCwKLQkweGYwLCAweGY4LCAweDgwLCAweGUyLCAweDAwLCAweDA3LCAweDU2LCAweGY4LAotCTB4MmEsIDB4MTYsIDB4ZjEsIDB4ZjAsIDB4ZTgsIDB4ZmYsIDB4ZjIsIDB4ODAsCi0JMHg4MCwgMHhlMiwgMHgwMCwgMHgwNiwgMHg1NiwgMHhmOCwgMHgyYSwgMHgxNiwKLQkweGYxLCAweGY4LCAweGU4LCAweGZmLCAweGYyLCAweDgwLCAweDgwLCAweGUyLAotCTB4MDAsIDB4MDUsIDB4NTcsIDB4ZjgsIDB4MmEsIDB4MTYsIDB4ZTgsIDB4ZmYsCi0JMHhmMiwgMHg4MCwgMHg4MCwgMHhlMiwgMHgwMCwgMHgwNCwgMHg1NiwgMHhmOCwKLQkweDI3LCAweDZjLCAweGYwLCAweGYwLCAweGYwLCAweGY4LCAweDgwLCAweGUyLAotCTB4MDAsIDB4MGIsIDB4NTYsIDB4ZjgsIDB4MjcsIDB4NmMsIDB4ZjEsIDB4ZjAsCi0JMHhlOCwgMHhmZiwgMHhmMiwgMHg4MCwgMHg4MCwgMHhlMiwgMHgwMCwgMHgwYSwKLQkweDU2LCAweGY4LCAweDI3LCAweDZjLCAweGYxLCAweGY4LCAweGU4LCAweGZmLAotCTB4ZjIsIDB4ODAsIDB4ODAsIDB4ZTIsIDB4MDAsIDB4MDksIDB4ZTgsIDB4ZmYsCi0JMHg1NywgMHhmOCwgMHgyNywgMHg2YywgMHhmMiwgMHg4MCwgMHg4MCwgMHhlMiwKLQkweDAwLCAweDA4LCAweDU2LCAweGY4LCAweDI3LCAweDZhLCAweGYwLCAweGYwLAotCTB4ZjAsIDB4ZjgsIDB4ODAsIDB4ZTIsIDB4MDAsIDB4MGYsIDB4NTYsIDB4ZjgsCi0JMHgyNywgMHg2YSwgMHhmMSwgMHhmMCwgMHhlOCwgMHhmZiwgMHhmMiwgMHg4MCwKLQkweDgwLCAweGUyLCAweDAwLCAweDBlLCAweDU2LCAweGY4LCAweDI3LCAweDZhLAotCTB4ZjEsIDB4ZjgsIDB4ZTgsIDB4ZmYsIDB4ZjIsIDB4ODAsIDB4ODAsIDB4ZTIsCi0JMHgwMCwgMHgwZCwgMHg1NywgMHhmOCwgMHgyNywgMHg2YSwgMHhlOCwgMHhmZiwKLQkweGYyLCAweDgwLCAweDgwLCAweGUyLCAweDAwLCAweDBjLCAweDc2LCAweGUyLAotCTB4MDAsIDB4MTMsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MTIsCi0JMHgwMCwgMHgwMCwgMHg2ZiwgMHhmOCwgMHgyYSwgMHg1YywgMHgwYywgMHg1OCwKLQkweDgwLCAweGUyLCAweDAwLCAweDExLCAweGU4LCAweGZmLCAweDE4LCAweGY4LAotCTB4MmEsIDB4NWMsIDB4ODAsIDB4ZTIsIDB4MDAsIDB4MTAsIDB4NzYsIDB4ZTIsCi0JMHgwMCwgMHgxNywgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMiwgMHgwMCwgMHgxNiwKLQkweDAwLCAweDAwLCAweDZmLCAweGY4LCAweDJhLCAweDllLCAweDBjLCAweDU4LAotCTB4ODAsIDB4ZTIsIDB4MDAsIDB4MTUsIDB4ZTgsIDB4ZmYsIDB4MTgsIDB4ZjgsCi0JMHgyYSwgMHg5ZSwgMHg4MCwgMHhlMiwgMHgwMCwgMHgxNCwgMHg3NiwgMHhlMiwKLQkweDAwLCAweDFiLCAweDAwLCAweDAwLCAweDc2LCAweGUyLCAweDAwLCAweDFhLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MTksIDB4MDAsIDB4MDAsCi0JMHg3MCwgMHhlMiwgMHgwMCwgMHgxOCwgMHgyNywgMHg2ZSwgMHg3NiwgMHhlMiwKLQkweDAwLCAweDFmLCAweDAwLCAweDAwLCAweDc2LCAweGUyLCAweDAwLCAweDFlLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MWQsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHhlMiwgMHgwMCwgMHgxYywgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMiwKLQkweDAwLCAweDIwLCAweDAwLCAweGFhLCAweGYwLCAweDc0LCAweDAyLCAweDk4LAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHgzOCwgMHhmOCwgMHg0NSwgMHgwNCwgMHhlZCwKLQkweDc3LCAweDEyLCAweDJhLCAweDE4LCAweDEwLCAweGUyLCAweDAwLCAweDAyLAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MDgsCi0JMHg2ZCwgMHhlOSwgMHhmZiwgMHhkZiwgMHhmNiwgMHhhOSwgMHhmOCwgMHgyMCwKLQkweDA0LCAweDc1LCAweGYwLCAweDczLCAweDA0LCAweDdkLCAweGYwLCAweDEwLAotCTB4MDAsIDB4MjEsIDB4ZjAsIDB4MDAsIDB4MWEsIDB4ODMsIDB4NDgsIDB4MDgsCi0JMHg3ZSwgMHhmOCwgMHgwMCwgMHgwOCwgMHhmNCwgMHhlMiwgMHhmMCwgMHg3NCwKLQkweDAzLCAweDBhLCAweGYwLCAweDczLCAweDA0LCAweGVhLCAweDQ4LCAweDEyLAotCTB4ZjIsIDB4NzQsIDB4MDMsIDB4MjMsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsCi0JMHhmMiwgMHg3NCwgMHgwMywgMHgzNiwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwKLQkweGYwLCAweDczLCAweDA0LCAweGVhLCAweDc3LCAweDExLCAweDJhLCAweDE4LAotCTB4ZTgsIDB4ZmYsIDB4NmYsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4MGQsIDB4NDgsCi0JMHgxOCwgMHhlMSwgMHgwMCwgMHgwNSwgMHhmMiwgMHg3NCwgMHgwOSwgMHg2OSwKLQkweGY0LCAweDk1LCAweGYyLCAweGEwLCAweGYwLCAweDc0LCAweDAzLCAweDM2LAotCTB4ZjAsIDB4NzMsIDB4MDQsIDB4ZWEsIDB4NzcsIDB4MTEsIDB4MmEsIDB4MTgsCi0JMHhlOCwgMHhmZiwgMHg2ZiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwZCwgMHg0OCwKLQkweDE4LCAweGUxLCAweDAwLCAweDA1LCAweGYyLCAweDc0LCAweDA5LCAweDQxLAotCTB4ZjQsIDB4OTUsIDB4ZjIsIDB4YTAsIDB4ZjAsIDB4NzQsIDB4MDMsIDB4MzYsCi0JMHhmMCwgMHg3MywgMHgwNCwgMHhlYSwgMHhmMCwgMHg3NCwgMHgwMywgMHg1NywKLQkweGYwLCAweDczLCAweDA0LCAweGVhLCAweDEwLCAweGY4LCAweDJhLCAweDFjLAotCTB4ZjAsIDB4NzQsIDB4MTIsIDB4YTQsIDB4ZjIsIDB4NzQsIDB4MDMsIDB4MzYsCi0JMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwgMHhmMCwgMHg3MywgMHgwNCwgMHhlYSwKLQkweDQ4LCAweDEyLCAweGYyLCAweDc0LCAweDAzLCAweDgwLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDQsIDB4ZjIsIDB4NzQsIDB4MDMsIDB4MzYsIDB4ZjQsIDB4OTUsCi0JMHhlOCwgMHgwMCwgMHhmMCwgMHg3MywgMHgwNCwgMHhlYSwgMHgxMCwgMHhmOCwKLQkweDJhLCAweDFjLCAweGYwLCAweDc0LCAweDEyLCAweGM1LCAweGYyLCAweDc0LAotCTB4MDMsIDB4MzYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsIDB4ZjAsIDB4NzMsCi0JMHgwNCwgMHhlYSwgMHg3NywgMHgxMSwgMHgyYSwgMHgxOCwgMHhlOCwgMHhmZiwKLQkweDZmLCAweGUxLCAweDAwLCAweDA2LCAweDBkLCAweDQ4LCAweDE4LCAweGUxLAotCTB4MDAsIDB4MDcsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHhmMiwgMHhhMCwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxMiwgMHg4MCwgMHgwMSwKLQkweDEwLCAweGUxLCAweDAwLCAweDA0LCAweGYwLCAweDc0LCAweDBlLCAweDdhLAotCTB4ZjIsIDB4NzQsIDB4MDMsIDB4MzYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHhmMCwgMHg3MywgMHgwNCwgMHhlYSwgMHhmMCwgMHg3NCwgMHgwMywgMHhiYywKLQkweDc2LCAweGY4LCAweDJhLCAweDM4LCAweDAwLCAweDAwLCAweGVlLCAweDAyLAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NzcsIDB4MTEsCi0JMHgyYSwgMHgzOSwgMHg3NiwgMHg4MSwgMHgwMCwgMHg1NSwgMHg3NywgMHgxMiwKLQkweDJhLCAweDE4LCAweDEwLCAweGUyLCAweDAwLCAweDAxLCAweDgwLCAweGUxLAotCTB4MDAsIDB4MDEsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MDIsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgwOSwKLQkweDQ4LCAweDExLCAweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDg4LCAweDEyLAotCTB4ZjQsIDB4OTUsIDB4NzcsIDB4MTMsIDB4MmEsIDB4ODYsIDB4ZTksIDB4MDAsCi0JMHhlNSwgMHg5OCwgMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwgMHhmNiwgMHhiOCwKLQkweDQ4LCAweDBiLCAweDA4LCAweGY4LCAweDJhLCAweDNjLCAweGY4LCAweDQzLAotCTB4MDUsIDB4MGEsIDB4NzYsIDB4ODIsIDB4MDAsIDB4YWEsIDB4ZjAsIDB4NzQsCi0JMHgwMiwgMHg5OCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDc3LCAweDExLCAweDJhLCAweDM5LCAweDc2LCAweDgxLCAweDAwLCAweDU1LAotCTB4NzcsIDB4MTMsIDB4MmEsIDB4MTgsIDB4MTAsIDB4ZTMsIDB4MDAsIDB4MDEsCi0JMHg4MCwgMHhlMSwgMHgwMCwgMHgwMSwgMHgxMCwgMHhlMywgMHgwMCwgMHgwMiwKLQkweDgwLCAweGUxLCAweDAwLCAweDAyLCAweDEzLCAweGUzLCAweDAwLCAweDAzLAotCTB4ODEsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4NDgsIDB4MTEsIDB4NzcsIDB4MTEsCi0JMHgwMCwgMHgwMCwgMHhmOCwgMHg0ZCwgMHgwNSwgMHg0NCwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDA0LCAweDg4LCAweDEyLCAweDQ4LCAweDEzLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDQsIDB4ODgsIDB4MTMsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsCi0JMHhlNSwgMHg5OCwgMHg2ZCwgMHg5MSwgMHhmNiwgMHhiOCwgMHg0OCwgMHgxMSwKLQkweDA4LCAweGY4LCAweDJhLCAweDNjLCAweGY4LCAweDQzLCAweDA1LCAweDNhLAotCTB4ZjAsIDB4MjAsIDB4MmEsIDB4MzksIDB4NDksIDB4MTEsIDB4ZjUsIDB4MDAsCi0JMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDA0LCAweDAwLCAweGFhLCAweGYwLCAweDc0LCAweDAyLCAweDk4LAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NzcsIDB4MTEsCi0JMHgyYSwgMHgzOSwgMHg3NiwgMHg4MSwgMHgwMCwgMHg1NSwgMHg3NywgMHgxMiwKLQkweDJhLCAweDE4LCAweDEwLCAweGUyLCAweDAwLCAweDAxLCAweDgwLCAweGUxLAotCTB4MDAsIDB4MDEsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MDIsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgwYywKLQkweDQ4LCAweDExLCAweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDg4LCAweDEyLAotCTB4ZjQsIDB4OTUsIDB4NzcsIDB4MTMsIDB4MmEsIDB4N2EsIDB4ZTksIDB4MDAsCi0JMHhlNSwgMHg5OCwgMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwgMHhmNiwgMHhiOCwKLQkweDQ4LCAweDBiLCAweDA4LCAweGY4LCAweDJhLCAweDNjLCAweGY4LCAweDQzLAotCTB4MDUsIDB4NmEsIDB4NzYsIDB4ODIsIDB4MDAsIDB4YWEsIDB4ZjAsIDB4NzQsCi0JMHgwMiwgMHg5OCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDc3LCAweDExLCAweDJhLCAweDM5LCAweDc2LCAweDgxLCAweDAwLCAweDU1LAotCTB4NzcsIDB4MTIsIDB4MmEsIDB4MTgsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MDEsCi0JMHg4MCwgMHhlMSwgMHgwMCwgMHgwMSwgMHgxMCwgMHhlMiwgMHgwMCwgMHgwMiwKLQkweDgwLCAweGUxLCAweDAwLCAweDAyLCAweDc2LCAweGUxLCAweDAwLCAweDAzLAotCTB4MDAsIDB4MTksIDB4NDgsIDB4MTEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsCi0JMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMywgMHgyYSwgMHg1ZCwKLQkweGU5LCAweDAwLCAweGU1LCAweDk4LCAweGYzLCAweDAwLCAweDAwLCAweDAxLAotCTB4ZjYsIDB4YjgsIDB4NDgsIDB4MGIsIDB4MDgsIDB4ZjgsIDB4MmEsIDB4M2MsCi0JMHhmOCwgMHg0MywgMHgwNSwgMHg5MywgMHg3NiwgMHg4MiwgMHgwMCwgMHhhYSwKLQkweGYwLCAweDc0LCAweDAyLCAweDk4LCAweDhhLCAweDExLCAweGZjLCAweDAwLAotCTB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4MzgsCi0JMHhmOCwgMHg0NCwgMHgwNSwgMHhlMywgMHgxMCwgMHhmOCwgMHgyYSwgMHhhMSwKLQkweGY4LCAweDQ0LCAweDA1LCAweGJhLCAweDZjLCAweGUxLCAweGZmLCAweDU2LAotCTB4MDUsIDB4ZTMsIDB4NzIsIDB4MTIsIDB4MmEsIDB4YTEsIDB4ZjQsIDB4OTUsCi0JMHg3MCwgMHhlMiwgMHgyYSwgMHgxOCwgMHgwMCwgMHgxMSwgMHg2YiwgMHhmOCwKLQkweDJhLCAweGExLCAweDAwLCAweDAxLCAweGYwLCAweDczLCAweDA1LCAweGUzLAotCTB4NzIsIDB4MTIsIDB4MmEsIDB4YTEsIDB4ZjQsIDB4OTUsIDB4NzAsIDB4ZTIsCi0JMHgyYSwgMHgxOCwgMHgwMCwgMHgxMSwgMHgxMCwgMHhmOCwgMHgyYSwgMHhhMSwKLQkweGYwLCAweDAwLCAweDAwLCAweDAxLCAweDg4LCAweDEyLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NmUsIDB4ZTIsIDB4ZmYsIDB4ZmMsIDB4MDUsIDB4ZDEsCi0JMHg3MywgMHgxMiwgMHgyYSwgMHhhMSwgMHg0OCwgMHgxMSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDA1LCAweDgwLCAweGY4LCAweDJhLCAweGEyLCAweDEwLCAweGY4LAotCTB4MmEsIDB4YTEsIDB4MDgsIDB4ZjgsIDB4MmEsIDB4YTIsIDB4ZjgsIDB4NDQsCi0JMHgwNSwgMHhlMywgMHg2YywgMHhlMSwgMHhmZiwgMHhhYiwgMHgwNSwgMHhkZCwKLQkweDc2LCAweGY4LCAweDJhLCAweDM4LCAweDAwLCAweDAxLCAweDc2LCAweGY4LAotCTB4MmEsIDB4YTEsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4YTIsCi0JMHgwMCwgMHgwMCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHhmNCwgMHg5NSwKLQkweDRhLCAweDA4LCAweDRhLCAweDA5LCAweDRhLCAweDBhLCAweDRhLCAweDBiLAotCTB4NGEsIDB4MGMsIDB4NGEsIDB4MGQsIDB4NGEsIDB4MTAsIDB4NGEsIDB4MTEsCi0JMHg0YSwgMHgxMiwgMHg0YSwgMHgxMywgMHg0YSwgMHgxNCwgMHg0YSwgMHgxNSwKLQkweDRhLCAweDE2LCAweDRhLCAweDE3LCAweDRhLCAweDE3LCAweDRhLCAweDE5LAotCTB4NGEsIDB4MGUsIDB4NGEsIDB4MDYsIDB4NGEsIDB4MDcsIDB4NGEsIDB4MWEsCi0JMHg0YSwgMHgxZCwgMHg0YSwgMHgxYiwgMHg0YSwgMHgxYywgMHg2OCwgMHhmOCwKLQkweDAwLCAweDA3LCAweDdkLCAweDNmLCAweDY5LCAweGY4LCAweDAwLCAweDA3LAotCTB4NDAsIDB4MDAsIDB4NjgsIDB4ZjgsIDB4MDAsIDB4MWQsIDB4ZmYsIDB4ZmMsCi0JMHg0OCwgMHgxOCwgMHg2OCwgMHhmOCwgMHgwMCwgMHgxOCwgMHhmZiwgMHhmZSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDRhLCAweDA4LCAweGVlLCAweGZmLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4NWIsIDB4ZjksIDB4ODAsIDB4MTgsIDB4MDQsCi0JMHhmMCwgMHg3NCwgMHgwNSwgMHhhMiwgMHhlZSwgMHgwMSwgMHg4YSwgMHgxOCwKLQkweGY0LCAweDk1LCAweDhhLCAweDFjLCAweDhhLCAweDFiLCAweDhhLCAweDFkLAotCTB4OGEsIDB4MWEsIDB4OGEsIDB4MDcsIDB4OGEsIDB4MDYsIDB4OGEsIDB4MGUsCi0JMHg4YSwgMHgxOSwgMHg4YSwgMHgxNywgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwKLQkweDhhLCAweDE1LCAweDhhLCAweDE0LCAweDhhLCAweDEzLCAweDhhLCAweDEyLAotCTB4OGEsIDB4MTEsIDB4OGEsIDB4MTAsIDB4OGEsIDB4MGQsIDB4OGEsIDB4MGMsCi0JMHg4YSwgMHgwYiwgMHg4YSwgMHgwYSwgMHg4YSwgMHgwOSwgMHg4YSwgMHgwOCwKLQkweGY0LCAweGViLCAweGVlLCAweGZkLCAweDc2LCAweGY4LCAweDJhLCAweDM4LAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4NWEsIDB4MDAsIDB4MDAsCi0JMHhlOCwgMHgwMSwgMHg0ZSwgMHgwMCwgMHhmYiwgMHg4MCwgMHgxNywgMHhkNiwKLQkweGY0LCAweDk1LCAweGU4LCAweDAxLCAweDgwLCAweGY4LCAweDJhLCAweDViLAotCTB4NzYsIDB4MDAsIDB4MmEsIDB4OGYsIDB4ZjksIDB4ODAsIDB4MTYsIDB4YWEsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHg1YiwgMHhmOSwgMHg4MCwgMHgxNywgMHg1YywKLQkweDEwLCAweGY4LCAweDJhLCAweDViLCAweGY5LCAweDgwLCAweDE3LCAweDZmLAotCTB4ZmIsIDB4ODAsIDB4MTYsIDB4NjYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MWEsCi0JMHhmYiwgMHg4MCwgMHgxNiwgMHg4NywgMHhmNCwgMHg5NSwgMHhlOCwgMHgxYSwKLQkweGZiLCAweDgwLCAweDE2LCAweDY2LCAweGY0LCAweDk1LCAweGU4LCAweDFiLAotCTB4ZmIsIDB4ODAsIDB4MTYsIDB4ODcsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MWIsCi0JMHhlZSwgMHgwMywgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDEzLCAweDAyLCAweDg4LCAweDExLCAweGU4LCAweDAwLCAweGY4LCAweDRkLAotCTB4MDYsIDB4NmEsIDB4ZjMsIDB4MTAsIDB4MDAsIDB4MDEsIDB4ODksIDB4MWEsCi0JMHhmNCwgMHg5NSwgMHhmMCwgMHg3MiwgMHgwNiwgMHg2OSwgMHgxYywgMHg5MSwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweDg4LCAweDExLAotCTB4MTIsIDB4MDMsIDB4MTEsIDB4MDIsIDB4ZjgsIDB4NDUsIDB4MDYsIDB4NzksCi0JMHhmMCwgMHgxMCwgMHgwMCwgMHgwMSwgMHg4OCwgMHgxYSwgMHhmNCwgMHg5NSwKLQkweGYwLCAweDcyLCAweDA2LCAweDc4LCAweDgxLCAweDkxLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzEsIDB4MDIsCi0JMHgwMCwgMHgxMSwgMHgxMSwgMHgwMywgMHg2MSwgMHhmOCwgMHgwMCwgMHgxMSwKLQkweDAwLCAweDAxLCAweGY4LCAweDMwLCAweDA2LCAweDkxLCAweGY2LCAweGI4LAotCTB4NmYsIDB4ZjgsIDB4MDAsIDB4MTEsIDB4MGMsIDB4MWYsIDB4ODgsIDB4MTEsCi0JMHhmMywgMHhlOCwgMHhlOCwgMHhmZiwgMHgxOCwgMHg4MSwgMHhmMSwgMHhhMCwKLQkweDgxLCAweDgxLCAweGYwLCAweDczLCAweDA2LCAweDlkLCAweGY2LCAweGI4LAotCTB4NmYsIDB4ZjgsIDB4MDAsIDB4MTEsIDB4MGMsIDB4MWYsIDB4ODgsIDB4MTEsCi0JMHhmMywgMHgzMCwgMHgwMCwgMHhmZiwgMHhmMCwgMHgyMCwgMHhmZiwgMHgwMCwKLQkweDE4LCAweDgxLCAweGYxLCAweGEwLCAweDgxLCAweDgxLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4MTEsIDB4MDIsCi0JMHg2MSwgMHhmOCwgMHgwMCwgMHgwYiwgMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwKLQkweDA2LCAweGIxLCAweDQ5LCAweDBiLCAweGY2LCAweDFmLCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsIDB4ZjIsIDB4NzMsCi0JMHgwNiwgMHhiOCwgMHhmMCwgMHgzMCwgMHgwMCwgMHhmZiwgMHg0OSwgMHgwYiwKLQkweGY2LCAweDFmLCAweDg4LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LAotCTB4MTIsIDB4ODEsIDB4ZjQsIDB4NzgsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MSwgMHgwMiwgMHgwMCwgMHgxMiwKLQkweDEzLCAweDAzLCAweDg4LCAweDExLCAweGU4LCAweDAwLCAweGY4LCAweDRkLAotCTB4MDYsIDB4Y2MsIDB4ZjMsIDB4MTAsIDB4MDAsIDB4MDEsIDB4ODksIDB4MWEsCi0JMHhmNCwgMHg5NSwgMHhmMCwgMHg3MiwgMHgwNiwgMHhjYiwgMHgxMSwgMHg5MiwKLQkweGYyLCAweGMwLCAweDgxLCAweDkxLCAweDhhLCAweDExLCAweGZjLCAweDAwLAotCTB4ODgsIDB4MTIsIDB4MTIsIDB4MDIsIDB4NzEsIDB4MDEsIDB4MDAsIDB4MTMsCi0JMHhmOCwgMHg0NSwgMHgwNiwgMHhkYiwgMHhmMCwgMHgxMCwgMHgwMCwgMHgwMSwKLQkweDg4LCAweDFhLCAweGY0LCAweDk1LCAweGYwLCAweDcyLCAweDA2LCAweGRhLAotCTB4ZTUsIDB4OTgsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsCi0JMHg4OCwgMHgxMSwgMHgxMSwgMHgwNCwgMHgxMCwgMHgwNiwgMHg3MSwgMHgwNSwKLQkweDAwLCAweDEyLCAweDYxLCAweGY4LCAweDAwLCAweDEyLCAweDAwLCAweDAxLAotCTB4ZjgsIDB4MjAsIDB4MDYsIDB4ZWEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHhmNiwgMHhiOCwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHg2ZiwgMHhmOCwKLQkweDAwLCAweDEyLCAweDBmLCAweDFmLCAweDQ4LCAweDA4LCAweDgxLCAweDAwLAotCTB4ZjQsIDB4N2YsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4NzQsIDB4MDYsIDB4YmEsCi0JMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwgMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweGVlLCAweGZlLCAweDg4LCAweDEyLAotCTB4MTEsIDB4MDQsIDB4MTAsIDB4MDYsIDB4NzEsIDB4MDUsIDB4MDAsIDB4MTMsCi0JMHg2MSwgMHhmOCwgMHgwMCwgMHgxMywgMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwKLQkweDA3LCAweDA5LCAweGYwLCAweDAwLCAweDAwLCAweDAxLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDEsIDB4ODgsIDB4MTEsIDB4ZjYsIDB4YjgsIDB4NmYsIDB4ZjgsCi0JMHgwMCwgMHgxMywgMHgwZiwgMHgxZiwgMHg4MSwgMHgwMCwgMHg0OCwgMHgxMSwKLQkweGY0LCAweDdmLCAweDgwLCAweDAxLCAweGYyLCAweDc0LCAweDA2LCAweGNlLAotCTB4ZjQsIDB4OTUsIDB4NDgsIDB4MTIsIDB4NDgsIDB4MTEsIDB4ZjAsIDB4MzAsCi0JMHhmZiwgMHhmZSwgMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweDRhLCAweDE2LCAweDRhLCAweDE3LCAweGVlLCAweGZjLAotCTB4ZjQsIDB4OTUsIDB4ODAsIDB4MDIsIDB4NzEsIDB4MDgsIDB4MDAsIDB4MTYsCi0JMHgxMCwgMHgwOSwgMHg3MSwgMHgwYiwgMHgwMCwgMHgxNywgMHg4MCwgMHgwMywKLQkweDcxLCAweDBhLCAweDAwLCAweDExLCAweDQ4LCAweDE3LCAweGY4LCAweDQ1LAotCTB4MDcsIDB4M2YsIDB4NzAsIDB4MDAsIDB4MDAsIDB4MTEsIDB4MTAsIDB4MDMsCi0JMHhmMCwgMHg3NCwgMHgwNiwgMHg5ZiwgMHg4MCwgMHgwMSwgMHg3MCwgMHgwMCwKLQkweDAwLCAweDE2LCAweDEwLCAweDAyLCAweGYwLCAweDc0LCAweDA2LCAweDdiLAotCTB4NmQsIDB4OTEsIDB4NmQsIDB4OTYsIDB4NmMsIDB4ZWYsIDB4ZmYsIDB4ZmYsCi0JMHgwNywgMHgyZiwgMHhlZSwgMHgwNCwgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweGVlLCAweGZlLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4ZTgsIDB4MDgsIDB4ZjgsIDB4MmEsIDB4ZTksCi0JMHhmOCwgMHg0NSwgMHgwNywgMHg2NCwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDYyLCAweGY4LCAweDJhLCAweGU5LCAweDAwLCAweDVlLCAweGYyLCAweDc0LAotCTB4MTIsIDB4MGIsIDB4ZjAsIDB4MDAsIDB4MzAsIDB4NDAsIDB4NzIsIDB4MTEsCi0JMHgyYSwgMHhlOSwgMHg3NywgMHgxMCwgMHgwMCwgMHgwZiwgMHhmNSwgMHhhOSwKLQkweGY4LCAweDIwLCAweDA3LCAweDYxLCAweDZiLCAweGY4LCAweDJhLCAweGU5LAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsIDB4MDcsIDB4NjQsIDB4NzYsIDB4ZjgsCi0JMHgyYSwgMHhlOSwgMHgwMCwgMHgwMCwgMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweDg4LCAweDExLCAweGU4LCAweDAwLAotCTB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDgsIDB4ZTgsIDB4MDAsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwOSwgMHhmNiwgMHhiOCwKLQkweGY0LCAweDk1LCAweGYwLCAweDIwLCAweGZjLCAweDNmLCAweDc1LCAweGY4LAotCTB4MDAsIDB4MDgsIDB4MDAsIDB4MGQsIDB4ZjAsIDB4MjAsIDB4MGMsIDB4MzAsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwYywgMHg3NiwgMHhmOCwKLQkweDJhLCAweGU4LCAweDAwLCAweDAwLCAweDc2LCAweGY4LCAweDJhLCAweGU5LAotCTB4MDAsIDB4MDAsIDB4NmMsIDB4ODEsIDB4MDcsIDB4OTIsIDB4NzYsIDB4ZjgsCi0JMHgyYSwgMHhlYSwgMHgwMCwgMHgwMCwgMHhmYiwgMHg4MCwgMHgxNiwgMHg3NiwKLQkweGY0LCAweDk1LCAweGU4LCAweDEwLCAweGU4LCAweDAwLCAweDc1LCAweGY4LAotCTB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4ZjAsIDB4NzMsIDB4MDcsIDB4YTgsCi0JMHg3NiwgMHhmOCwgMHgyYSwgMHhlYSwgMHgwMCwgMHgwMSwgMHhmYiwgMHg4MCwKLQkweDE2LCAweDY2LCAweGY0LCAweDk1LCAweGU4LCAweDEwLCAweGZiLCAweDgwLAotCTB4MTYsIDB4ODcsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MTAsIDB4ZTgsIDB4MDAsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHhmNiwgMHhiOCwKLQkweGY0LCAweDk1LCAweGYwLCAweDIwLCAweGZmLCAweGZmLCAweDc1LCAweGY4LAotCTB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHhmNCwgMHg5NSwgMHg0YSwgMHgwOCwgMHg0YSwgMHgwOSwgMHg0YSwgMHgwYSwKLQkweDRhLCAweDA2LCAweDRhLCAweDA3LCAweDRhLCAweDFkLCAweDY4LCAweGY4LAotCTB4MDAsIDB4MDcsIDB4N2QsIDB4M2YsIDB4NjksIDB4ZjgsIDB4MDAsIDB4MDcsCi0JMHg0MCwgMHgwMCwgMHg2OCwgMHhmOCwgMHgwMCwgMHgxZCwgMHhmZiwgMHhmYywKLQkweDEwLCAweGY4LCAweDJhLCAweGVhLCAweGY4LCAweDQ1LCAweDA3LCAweGUxLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4ZTgsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHhmMCwgMHgzMCwgMHgwMCwgMHgwZiwgMHg4MCwgMHhmOCwgMHgyYSwgMHhlOCwKLQkweDEwLCAweGY4LCAweDJhLCAweGU4LCAweGY4LCAweDQ0LCAweDA3LCAweGQ2LAotCTB4ZjYsIDB4YjgsIDB4ZjQsIDB4OTUsIDB4ZjAsIDB4MjAsIDB4ZmMsIDB4M2YsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwZCwgMHhmMCwgMHgyMCwKLQkweDBjLCAweDMwLCAweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDBjLAotCTB4ZTgsIDB4MDAsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsCi0JMHhmNiwgMHhiOCwgMHhmNCwgMHg5NSwgMHhmMCwgMHgyMCwgMHhmZiwgMHhmZiwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweDhhLCAweDFkLAotCTB4OGEsIDB4MDcsIDB4OGEsIDB4MDYsIDB4OGEsIDB4MGEsIDB4OGEsIDB4MDksCi0JMHg4YSwgMHgwOCwgMHhmNCwgMHhlYiwgMHhlZSwgMHhmZiwgMHhmMiwgMHg3NCwKLQkweDA3LCAweDY3LCAweGY0LCAweDk1LCAweGU4LCAweDAxLCAweGVlLCAweDAxLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MDcsIDB4NGEsIDB4MWQsIDB4NjgsIDB4ZjgsCi0JMHgwMCwgMHgwNywgMHg3ZCwgMHgzZiwgMHg2OSwgMHhmOCwgMHgwMCwgMHgwNywKLQkweDQwLCAweDAwLCAweDY4LCAweGY4LCAweDAwLCAweDFkLCAweGZmLCAweGZjLAotCTB4OGEsIDB4MWQsIDB4OGEsIDB4MDcsIDB4ZjQsIDB4ZWIsIDB4NGEsIDB4MTEsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHgyOCwgMHg3NiwgMHg4MSwgMHgyNCwgMHgwMCwKLQkweGU4LCAweDAwLCAweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDAxLAotCTB4ZjIsIDB4NzQsIDB4MDcsIDB4NjcsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHgxZCwgMHg2OCwgMHg4MSwgMHgwMCwgMHg3ZiwKLQkweGY2LCAweGI4LCAweGY0LCAweDk1LCAweGYwLCAweDIwLCAweGZmLCAweDgwLAotCTB4NzcsIDB4MTEsIDB4MDAsIDB4MWQsIDB4ZjAsIDB4MzAsIDB4MDEsIDB4MDAsCi0JMHgxYSwgMHg4MSwgMHg4MCwgMHg4MSwgMHhmMCwgMHg3NCwgMHgwYSwgMHgzMywKLQkweGYwLCAweDc0LCAweDExLCAweGFjLCAweGY5LCAweDgwLCAweDEzLCAweDI1LAotCTB4ZjksIDB4ODAsIDB4MTYsIDB4NTMsIDB4ZjksIDB4ODAsIDB4MTcsIDB4ODIsCi0JMHhmMCwgMHg3NCwgMHgwNiwgMHgyZiwgMHhmOSwgMHg4MCwgMHgxNCwgMHhiMiwKLQkweGY5LCAweDgwLCAweDE5LCAweDEwLCAweGYwLCAweDc0LCAweDBkLCAweGUzLAotCTB4ZjAsIDB4NzQsIDB4MDcsIDB4ZTgsIDB4ZjAsIDB4NzQsIDB4MDIsIDB4MzYsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHg2MCwgMHhmOCwKLQkweDI3LCAweDdiLCAweGZmLCAweGZmLCAweGY4LCAweDMwLCAweDA4LCAweDM5LAotCTB4NzEsIDB4ZjgsIDB4MjcsIDB4N2IsIDB4MjcsIDB4NzksIDB4NjAsIDB4ZjgsCi0JMHgyNywgMHg3OSwgMHhmZiwgMHhmZiwgMHhmOCwgMHgzMCwgMHgwOCwgMHhiMiwKLQkweDEwLCAweGY4LCAweDI5LCAweDg2LCAweDA4LCAweGY4LCAweDI3LCAweDc5LAotCTB4ZjAsIDB4MzAsIDB4N2YsIDB4ZmYsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMCwgMHg0MCwgMHgwMCwgMHhmNiwgMHhhOSwgMHhmOCwgMHgzMCwKLQkweDA4LCAweDU4LCAweDEwLCAweGY4LCAweDI3LCAweDc5LCAweDA4LCAweGY4LAotCTB4MjcsIDB4N2EsIDB4ZjAsIDB4MzAsIDB4N2YsIDB4ZmYsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHg0MCwgMHgwMCwgMHhmNiwgMHhhOSwKLQkweGY4LCAweDIwLCAweDA4LCAweDYzLCAweDc2LCAweGY4LCAweDI3LCAweDc5LAotCTB4ZmYsIDB4ZmYsIDB4NzYsIDB4ZjgsIDB4MjcsIDB4N2IsIDB4ZmYsIDB4ZmYsCi0JMHhmNywgMHhiOCwgMHhmMiwgMHg3MywgMHgwOCwgMHhkOSwgMHhmMCwgMHgyMCwKLQkweGZmLCAweGZmLCAweGY2LCAweGI4LCAweDU2LCAweGY4LCAweDI3LCAweDc0LAotCTB4ZjAsIDB4ZjksIDB4ODgsIDB4MTEsIDB4NTYsIDB4ZjgsIDB4MjcsIDB4NzIsCi0JMHhmMCwgMHhmOSwgMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweGU3LCAweDIwLCAweGY0LCAweGE5LCAweGY4LCAweDMwLCAweDA4LCAweDhmLAotCTB4ZjEsIDB4MjAsIDB4MjcsIDB4N2MsIDB4NDgsIDB4MTEsIDB4ZjYsIDB4MDAsCi0JMHg4OCwgMHgxMywgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHgxMCwgMHg4MywKLQkweDA4LCAweGY4LCAweDI3LCAweDc5LCAweGYwLCAweDMwLCAweDdmLCAweGZmLAotCTB4ODgsIDB4MTMsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4NDAsIDB4MDAsCi0JMHhmNSwgMHhhYiwgMHhmOCwgMHgzMCwgMHgwOCwgMHg4ZiwgMHg2ZCwgMHg5MSwKLQkweDQ4LCAweDExLCAweGYwLCAweDMwLCAweDAxLCAweGZmLCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZTcsIDB4MjAsIDB4ZjcsIDB4YTksIDB4ZjgsIDB4MzAsCi0JMHgwOCwgMHg3NCwgMHg2ZCwgMHg4OSwgMHg0OCwgMHgxMSwgMHhmMCwgMHgzMCwKLQkweDAxLCAweGZmLCAweGYwLCAweGU3LCAweGY0LCAweDk1LCAweDQ4LCAweDA4LAotCTB4NGUsIDB4ZjgsIDB4MjcsIDB4NzQsIDB4NDgsIDB4MDgsIDB4ZjEsIDB4ZjksCi0JMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwKLQkweDI3LCAweDdjLCAweDI3LCAweDdhLCAweDYwLCAweGY4LCAweDI3LCAweDdiLAotCTB4ZmYsIDB4ZmYsIDB4ZjgsIDB4MzAsIDB4MDgsIDB4YWIsIDB4NDgsIDB4MDgsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg3MiwgMHg3NiwgMHhmOCwgMHgyNywgMHg3YiwKLQkweGZmLCAweGZmLCAweDc2LCAweGY4LCAweDI3LCAweDc5LCAweGZmLCAweGZmLAotCTB4ZjIsIDB4NzMsIDB4MDgsIDB4ZDksIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHg0NCwgMHhmOCwgMHgyNywgMHg3MywgMHg0MCwgMHhmOCwgMHgyNywgMHg3NSwKLQkweDgyLCAweGY4LCAweDAwLCAweDExLCAweGY0LCAweDk1LCAweDc3LCAweDEwLAotCTB4ODAsIDB4MDAsIDB4ZjYsIDB4YTksIDB4ZjgsIDB4MjAsIDB4MDgsIDB4ZDgsCi0JMHhmNiwgMHhiOCwgMHgxMCwgMHhmOCwgMHgyNywgMHg3MywgMHhmMCwgMHgwMCwKLQkweDgwLCAweDAwLCAweDQ4LCAweDA4LCAweDRlLCAweGY4LCAweDI3LCAweDc0LAotCTB4NDgsIDB4MDgsIDB4ZjAsIDB4ZjksIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwgMHgyNywgMHg3YywgMHgyNywgMHg3YSwKLQkweGY3LCAweGI4LCAweDU3LCAweGY4LCAweDI3LCAweDc0LCAweGYwLCAweDYyLAotCTB4ZmYsIDB4ZmYsIDB4ZjAsIDB4NDAsIDB4ZmYsIDB4ODAsIDB4ZjIsIDB4ODAsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg3NCwgMHhlOCwgMHgwMCwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LCAweGVlLCAweGZiLAotCTB4MTEsIDB4ZjgsIDB4MjcsIDB4NzEsIDB4MDksIDB4ZjgsIDB4MjcsIDB4NzMsCi0JMHg4OSwgMHgxMSwgMHg4OCwgMHgxMCwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweGY2LCAweGE5LCAweGY4LCAweDIwLCAweDA4LCAweGVkLCAweGYyLCAweDczLAotCTB4MDksIDB4MGUsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsIDB4ZjYsIDB4MjAsCi0JMHg3NiwgMHgwMCwgMHgwMCwgMHg0MSwgMHhmMCwgMHg3NCwgMHgxMiwgMHhlZSwKLQkweDg4LCAweDE2LCAweGY0LCAweDk1LCAweGY3LCAweGI4LCAweDZkLCAweDk2LAotCTB4MTAsIDB4ZjgsIDB4MDAsIDB4MTYsIDB4ZjgsIDB4NDcsIDB4MDksIDB4MGEsCi0JMHhlNywgMHg2MSwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHg3NiwgMHgwMSwKLQkweDAwLCAweDgwLCAweDc2LCAweDAyLCAweDAwLCAweGZmLCAweDc2LCAweDAzLAotCTB4MDAsIDB4MDAsIDB4ZjIsIDB4NzQsIDB4MGMsIDB4YjksIDB4ZjQsIDB4OTUsCi0JMHhlOCwgMHgwMCwgMHg2YywgMHhlOSwgMHhmZiwgMHhmZiwgMHgwOCwgMHhmYiwKLQkweDczLCAweDE2LCAweDAwLCAweDBlLCAweGYwLCAweDY2LCAweDAwLCAweDQxLAotCTB4ZWUsIDB4MDUsIDB4OGEsIDB4MTYsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MSwgMHgwMiwgMHgwMCwgMHgxMywKLQkweGY2LCAweGI4LCAweDc3LCAweDExLCAweDdmLCAweGZmLCAweDU3LCAweGY4LAotCTB4MjcsIDB4NzIsIDB4NDgsIDB4MTEsIDB4ZjIsIDB4ODAsIDB4ZjAsIDB4MDAsCi0JMHg4MCwgMHgwMCwgMHg4OCwgMHgxMSwgMHhmNiwgMHg0MCwgMHhmMCwgMHhlMCwKLQkweGYxLCAweGYxLCAweGU4LCAweDAxLCAweGYyLCAweDgwLCAweDgwLCAweGY4LAotCTB4MjcsIDB4NzgsIDB4NzcsIDB4MTIsIDB4ODAsIDB4MDAsIDB4NTcsIDB4ZjgsCi0JMHgyNywgMHg3MiwgMHg0OCwgMHgxMiwgMHhmMiwgMHg4MCwgMHg4OCwgMHgxMiwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgyLCAweDA5LCAweDM4LAotCTB4ZTgsIDB4MDAsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsCi0JMHhmMCwgMHg3MywgMHgwOSwgMHgzZCwgMHhmMCwgMHgyMCwgMHg4MCwgMHgwMSwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDAxLCAweDcwLCAweDgxLAotCTB4MDAsIDB4MTMsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHhmMCwgMHgzMCwgMHg3ZiwgMHhmZiwgMHgxMSwgMHhmOCwgMHgyOSwgMHg4NiwKLQkweGY1LCAweDIwLCAweGYzLCAweDMwLCAweDdmLCAweGZmLCAweDg5LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4NDAsIDB4MDAsIDB4ZjYsIDB4YTksCi0JMHhmOCwgMHgyMCwgMHgwOSwgMHg1NCwgMHhmMiwgMHg3MywgMHgwOSwgMHg2NywKLQkweGY0LCAweDk1LCAweGU4LCAweDAyLCAweDZmLCAweGY4LCAweDI3LCAweDdhLAotCTB4MGQsIDB4MjAsIDB4ZjMsIDB4MzAsIDB4N2YsIDB4ZmYsIDB4ODksIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHg0MCwgMHgwMCwgMHhmNiwgMHhhOSwKLQkweGY4LCAweDIwLCAweDA5LCAweDY0LCAweGYyLCAweDczLCAweDA5LCAweDY3LAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDEsIDB4ODAsIDB4ZjgsIDB4MjcsIDB4N2IsCi0JMHhlOCwgMHgwMCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDExLCAweGY4LCAweDI5LCAweDg2LCAweGY1LCAweDIwLCAweGYzLCAweDMwLAotCTB4N2YsIDB4ZmYsIDB4ODksIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsCi0JMHg0MCwgMHgwMCwgMHhmNiwgMHhhOSwgMHhmOCwgMHgyMCwgMHgwOSwgMHg3YSwKLQkweGYyLCAweDczLCAweDA5LCAweDhkLCAweGY0LCAweDk1LCAweGU4LCAweDAyLAotCTB4NmYsIDB4ZjgsIDB4MjcsIDB4N2EsIDB4MGQsIDB4MjAsIDB4ZjMsIDB4MzAsCi0JMHg3ZiwgMHhmZiwgMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwKLQkweDQwLCAweDAwLCAweGY2LCAweGE5LCAweGY4LCAweDIwLCAweDA5LCAweDhhLAotCTB4ZjIsIDB4NzMsIDB4MDksIDB4OGQsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDEsCi0JMHg4MCwgMHhmOCwgMHgyNywgMHg3OSwgMHhlOCwgMHgwMCwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweGY0LCAweDk1LCAweDcxLCAweDAyLAotCTB4MDAsIDB4MTIsIDB4ODgsIDB4MTEsIDB4ZjYsIDB4YjgsIDB4NTcsIDB4ZjgsCi0JMHgyNywgMHg3MiwgMHhmMCwgMHgyMCwgMHg3ZiwgMHhmZiwgMHhmMiwgMHg4MCwKLQkweGYwLCAweDAwLCAweDgwLCAweDAwLCAweDgwLCAweDgxLCAweDU3LCAweGY4LAotCTB4MjcsIDB4NzIsIDB4ZTgsIDB4MDEsIDB4ZjMsIDB4ZjEsIDB4ZjIsIDB4ODAsCi0JMHg4MCwgMHhmOCwgMHgyNywgMHg3OCwgMHg3NywgMHgxMSwgMHg4MCwgMHgwMCwKLQkweDQ4LCAweDExLCAweDU3LCAweGY4LCAweDI3LCAweDcyLCAweGYyLCAweDgwLAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODEsCi0JMHgwOSwgMHhiNSwgMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDAxLCAweGYwLCAweDczLCAweDA5LCAweGJhLCAweGYwLCAweDIwLAotCTB4ODAsIDB4MDEsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsCi0JMHg0NSwgMHhmOCwgMHgyNywgMHg3MSwgMHg0MywgMHhmOCwgMHgyNywgMHg3MywKLQkweDgzLCAweGY4LCAweDAwLCAweDExLCAweGY0LCAweDk1LCAweGU3LCAweDIwLAotCTB4ZjYsIDB4YTksIDB4ZjgsIDB4MzAsIDB4MDksIDB4YzksIDB4ZjIsIDB4NzMsCi0JMHgwOSwgMHhlNCwgMHg3NywgMHgxMiwgMHgwMCwgMHgwMCwgMHg1NywgMHhmOCwKLQkweDI3LCAweDcyLCAweGYwLCAweDIwLCAweDdmLCAweGZmLCAweGYyLCAweDgwLAotCTB4NDksIDB4MTIsIDB4ZjUsIDB4MDAsIDB4ZjMsIDB4MDAsIDB4ODAsIDB4MDAsCi0JMHg2MSwgMHhmOCwgMHgwMCwgMHgwYiwgMHg4MCwgMHgwMCwgMHhmOCwgMHgzMCwKLQkweDA5LCAweGRjLCAweGYxLCAweDIwLCAweDgwLCAweDAwLCAweGY1LCAweDIwLAotCTB4ODksIDB4MTIsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTIsIDB4NmYsIDB4ZjgsCi0JMHgyNywgMHg3MywgMHgwZCwgMHgwMCwgMHhmNCwgMHg5NSwgMHg0OSwgMHgwYiwKLQkweDRmLCAweGY4LCAweDI3LCAweDcyLCAweDhhLCAweDExLCAweGZlLCAweDAwLAotCTB4NDgsIDB4MTIsIDB4ZjQsIDB4OTUsIDB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsCi0JMHg0YSwgMHgxNywgMHhlZSwgMHhmYywgMHhmNCwgMHg5NSwgMHg3MSwgMHgwOCwKLQkweDAwLCAweDE2LCAweDg4LCAweDE3LCAweGYwLCAweDc0LCAweDA4LCAweDMwLAotCTB4NDgsIDB4MTgsIDB4NzAsIDB4MDAsIDB4MDAsIDB4MTYsIDB4ZjIsIDB4NzQsCi0JMHgwOSwgMHg4ZiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgxLCAweDBhLCAweDBhLAotCTB4ZjIsIDB4NzQsIDB4MDgsIDB4ZGIsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTYsCi0JMHg0OCwgMHgxOCwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNiwgMHhmMiwgMHg3NCwKLQkweDA5LCAweDhmLCAweGYwLCAweDAwLCAweDAwLCAweDAyLCAweDg4LCAweDExLAotCTB4MTAsIDB4MDIsIDB4NzAsIDB4MDEsIDB4MDAsIDB4MTEsIDB4ODAsIDB4MDAsCi0JMHhmMiwgMHg3NCwgMHgwNiwgMHhjZSwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxNywKLQkweDQ5LCAweDExLCAweDQ4LCAweDE3LCAweGY2LCAweDAwLCAweDg4LCAweDE3LAotCTB4ZTcsIDB4NjAsIDB4ZjUsIDB4YTksIDB4ZjgsIDB4MjAsIDB4MGEsIDB4MmQsCi0JMHg0OCwgMHgxNiwgMHhmNiwgMHgyMCwgMHg4OCwgMHgxMSwgMHg0OCwgMHgxOCwKLQkweDcwLCAweDAwLCAweDAwLCAweDExLCAweGYyLCAweDc0LCAweDA5LCAweDhmLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4ODgsIDB4MTEsIDB4NzAsIDB4MDEsCi0JMHgwMCwgMHgxMSwgMHgxMCwgMHgwMiwgMHg4MCwgMHgwMCwgMHhmMiwgMHg3NCwKLQkweDA2LCAweGNlLCAweGY0LCAweDk1LCAweDQ4LCAweDE3LCAweGVlLCAweDA0LAotCTB4NDgsIDB4MTYsIDB4OGEsIDB4MTcsIDB4OGEsIDB4MTYsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHhlZSwgMHhmZCwgMHhlOCwgMHgwMCwgMHg0ZSwgMHhmOCwKLQkweDI3LCAweDcwLCAweGU4LCAweDAwLCAweDRlLCAweGY4LCAweDI3LCAweDcyLAotCTB4ZTgsIDB4MDAsIDB4NGUsIDB4ZjgsIDB4MjcsIDB4NzQsIDB4ZTgsIDB4MDAsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg3NiwgMHg3NiwgMHhmOCwgMHgyNywgMHg3OSwKLQkweGZmLCAweGZmLCAweDc2LCAweGY4LCAweDI3LCAweDdhLCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZjgsIDB4MjcsIDB4N2IsIDB4ZmYsIDB4ZmYsIDB4NzYsIDB4ZjgsCi0JMHgyNywgMHg3OCwgMHgwMCwgMHgwMCwgMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwKLQkweDAwLCAweDA4LCAweDAwLCAweDAxLCAweDc2LCAweDAwLCAweDAwLCAweDAwLAotCTB4NzYsIDB4MDEsIDB4MDIsIDB4MDAsIDB4ZjIsIDB4NzQsIDB4MTIsIDB4ZGMsCi0JMHhmMCwgMHgyMCwgMHgyNywgMHg3YywgMHhlZSwgMHgwMywgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweGVlLCAweGZjLCAweGY0LCAweDk1LCAweDRlLCAweDAwLAotCTB4NzcsIDB4MTIsIDB4N2YsIDB4ZmYsIDB4ZjYsIDB4YjgsIDB4NDksIDB4MTIsCi0JMHhmMSwgMHg4MCwgMHhmMywgMHgwMCwgMHg4MCwgMHgwMCwgMHg4OSwgMHgxMiwKLQkweGYwLCAweGUwLCAweGYxLCAweGYxLCAweDRmLCAweDAyLCAweGU5LCAweDAxLAotCTB4ZjQsIDB4OTUsIDB4NDgsIDB4MGIsIDB4ZjUsIDB4NDAsIDB4NTYsIDB4MDIsCi0JMHhmMSwgMHg4MCwgMHg4MSwgMHhmOCwgMHgyNywgMHg3OCwgMHg3NywgMHgxMSwKLQkweDgwLCAweDAwLCAweDU2LCAweDAwLCAweDQ5LCAweDExLCAweGYxLCAweDgwLAotCTB4ODksIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODEsCi0JMHgwYSwgMHg4MSwgMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDAxLCAweGYwLCAweDczLCAweDBhLCAweDg2LCAweGYwLCAweDIwLAotCTB4ODAsIDB4MDEsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsCi0JMHgxMCwgMHg4MiwgMHhlZSwgMHgwNCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweGVlLCAweGZlLCAweGY0LCAweDk1LCAweDRlLCAweDAwLAotCTB4NzcsIDB4MTEsIDB4N2YsIDB4ZmYsIDB4ZjYsIDB4YjgsIDB4NDksIDB4MTEsCi0JMHhmMSwgMHg4MCwgMHhmMywgMHgwMCwgMHg4MCwgMHgwMCwgMHg4OSwgMHgxMSwKLQkweGYwLCAweGUwLCAweGYxLCAweGYxLCAweGU4LCAweDAxLCAweGYyLCAweDgwLAotCTB4ODAsIDB4ZjgsIDB4MjcsIDB4NzgsIDB4NTYsIDB4MDAsIDB4ZjEsIDB4MjAsCi0JMHg4MCwgMHgwMCwgMHhmMSwgMHg4MCwgMHhmNCwgMHg5NSwgMHg0OSwgMHgwYiwKLQkweGY4LCAweDRkLCAweDBhLCAweGFiLCAweGYwLCAweDIwLCAweDgwLCAweDAxLAotCTB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsCi0JMHgwYSwgMHhhZiwgMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDAxLCAweGVlLCAweDAyLCAweDQ4LCAweDExLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTIsIDB4MTMsIDB4MDIsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHgwMCwgMHhmOCwgMHg0ZCwgMHgwYSwgMHhjYiwKLQkweGYzLCAweDEwLCAweDAwLCAweDAxLCAweDg5LCAweDFhLCAweGY0LCAweDk1LAotCTB4ZjAsIDB4NzIsIDB4MGEsIDB4Y2EsIDB4NDgsIDB4MTEsIDB4MWMsIDB4ZjgsCi0JMHgyOSwgMHg3ZSwgMHg4OCwgMHgxMSwgMHgxMSwgMHhmOCwgMHgyOSwgMHg3ZSwKLQkweGYyLCAweDAwLCAweDAwLCAweDAxLCAweDgwLCAweGY4LCAweDI5LCAweDdlLAotCTB4ODEsIDB4OTIsIDB4NDgsIDB4MTEsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MSwgMHgwMiwgMHgwMCwgMHgxMSwKLQkweDg4LCAweDEyLCAweGY2LCAweGI4LCAweGYwLCAweDIwLCAweDdmLCAweGZmLAotCTB4NTcsIDB4ZjgsIDB4MjcsIDB4NzAsIDB4ZjIsIDB4ODAsIDB4ZjAsIDB4MDAsCi0JMHg4MCwgMHgwMCwgMHg4MCwgMHg4MiwgMHg1NywgMHhmOCwgMHgyNywgMHg3MCwKLQkweGU4LCAweDAxLCAweGYzLCAweGYxLCAweGYyLCAweDgwLCAweDgwLCAweGY4LAotCTB4MjcsIDB4NzgsIDB4NzcsIDB4MTIsIDB4ODAsIDB4MDAsIDB4NDgsIDB4MTIsCi0JMHg1NywgMHhmOCwgMHgyNywgMHg3MCwgMHhmMiwgMHg4MCwgMHg4OCwgMHgxMiwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgyLCAweDBhLCAweGY0LAotCTB4ZTgsIDB4MDAsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsCi0JMHhmMCwgMHg3MywgMHgwYSwgMHhmOSwgMHhmMCwgMHgyMCwgMHg4MCwgMHgwMSwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDAxLCAweDQ1LCAweGY4LAotCTB4MjcsIDB4NzUsIDB4ZTcsIDB4MTAsIDB4NDMsIDB4ZjgsIDB4MjcsIDB4NzEsCi0JMHg4MywgMHhmOCwgMHgwMCwgMHgxMiwgMHg2ZCwgMHhlOCwgMHgwMCwgMHgwNCwKLQkweDZkLCAweDhhLCAweGY2LCAweGFhLCAweGY4LCAweDMwLCAweDBiLCAweDBhLAotCTB4ZjIsIDB4NzMsIDB4MGIsIDB4MjUsIDB4NzcsIDB4MTEsIDB4MDAsIDB4MDAsCi0JMHg1NywgMHhmOCwgMHgyNywgMHg3MCwgMHhmMCwgMHgyMCwgMHg3ZiwgMHhmZiwKLQkweGYyLCAweDgwLCAweDQ5LCAweDExLCAweGY1LCAweDAwLCAweGYzLCAweDAwLAotCTB4ODAsIDB4MDAsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MGIsIDB4ODAsIDB4MDAsCi0JMHhmOCwgMHgzMCwgMHgwYiwgMHgxZCwgMHhmMSwgMHgyMCwgMHg4MCwgMHgwMCwKLQkweGY1LCAweDIwLCAweDg5LCAweDExLCAweGY0LCAweDk1LCAweDQ4LCAweDExLAotCTB4NmYsIDB4ZjgsIDB4MjcsIDB4NzEsIDB4MGQsIDB4MDAsIDB4ZjQsIDB4OTUsCi0JMHg0OSwgMHgwYiwgMHg0ZiwgMHhmOCwgMHgyNywgMHg3MCwgMHg0OCwgMHgxMSwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LAotCTB4NGEsIDB4MTcsIDB4ZWUsIDB4ZjAsIDB4ODgsIDB4MTcsIDB4MTAsIDB4MTcsCi0JMHg4MCwgMHgwNSwgMHgxMCwgMHgxNiwgMHg4MCwgMHgwNiwgMHgxMCwgMHgxNSwKLQkweDgwLCAweDA3LCAweDcxLCAweDE0LCAweDAwLCAweDExLCAweDEwLCAweDA1LAotCTB4ZjAsIDB4MzAsIDB4MDAsIDB4MDEsIDB4ODgsIDB4MTAsIDB4MTAsIDB4MDYsCi0JMHhmMCwgMHgzMCwgMHgwMCwgMHgwMSwgMHg4MCwgMHgwOCwgMHg0OSwgMHgxMSwKLQkweDEwLCAweDA1LCAweGY2LCAweDAxLCAweDgwLCAweDA5LCAweDEwLCAweDA2LAotCTB4NjEsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsIDB4ZjgsIDB4MjAsCi0JMHgwYiwgMHg0YiwgMHgxMCwgMHgwOSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDgwLCAweDA5LCAweDcxLCAweDA4LCAweDAwLCAweDEyLCAweGY0LCAweGFhLAotCTB4ZjgsIDB4MzAsIDB4MGIsIDB4NTQsIDB4MTAsIDB4MDksIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHg4MCwgMHgwOSwgMHgxMiwgMHgwOSwgMHg0OSwgMHgxMSwKLQkweGY0LCAweDdmLCAweDgwLCAweDA5LCAweGY2LCAweDIwLCAweDgwLCAweDBhLAotCTB4NTYsIDB4ZjgsIDB4MjcsIDB4NzAsIDB4NGUsIDB4MGMsIDB4MTAsIDB4MDksCi0JMHg4MCwgMHgwMCwgMHg0OCwgMHgxOCwgMHhmMiwgMHg3NCwgMHgwYSwgMHhjZSwKLQkweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDg4LCAweDE2LCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NmMsIDB4ODYsIDB4MGIsIDB4NmQsIDB4ZjIsIDB4NzMsCi0JMHgwYywgMHg1OSwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwgMHhmNiwgMHhiOCwKLQkweGY0LCAweDk1LCAweDU2LCAweDBjLCAweGYwLCAweGY5LCAweDg4LCAweDEyLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NzAsIDB4ZTIsIDB4MjcsIDB4N2MsCi0JMHgyOSwgMHg4NiwgMHhlOCwgMHgwMCwgMHg4MCwgMHgwZSwgMHg0OCwgMHgxMSwKLQkweGY4LCAweDQ1LCAweDBiLCAweGNjLCAweDc3LCAweDEwLCAweDAwLCAweDAxLAotCTB4ZjQsIDB4YTksIDB4ZjgsIDB4MzAsIDB4MGIsIDB4ODksIDB4NmMsIDB4ZTEsCi0JMHhmZiwgMHhmZCwgMHgwYiwgMHg4YiwgMHgxMCwgMHhlNywgMHgwMCwgMHgwMiwKLQkweDgwLCAweDBlLCAweGYwLCAweDczLCAweDBiLCAweDhiLCAweDEwLCAweDg3LAotCTB4ODAsIDB4MGUsIDB4ZTcsIDB4MTAsIDB4ZjUsIDB4YWUsIDB4ZjgsIDB4MjAsCi0JMHgwYiwgMHhiMiwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNywgMHg3MCwgMHgwMSwKLQkweDAwLCAweDE2LCAweDEwLCAweDA0LCAweGYwLCAweDc0LCAweDA2LCAweGNlLAotCTB4NDgsIDB4MTcsIDB4NDksIDB4MTYsIDB4ZjYsIDB4MDAsIDB4ODgsIDB4MTcsCi0JMHg0OCwgMHgxMSwgMHhmNiwgMHgyMCwgMHg4OCwgMHgxMSwgMHgxMCwgMHgwOSwKLQkweGY2LCAweDIwLCAweDgwLCAweDAwLCAweDQ4LCAweDE4LCAweGYyLCAweDc0LAotCTB4MGEsIDB4Y2UsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4ODgsIDB4MTYsCi0JMHgxMCwgMHgwNCwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNywgMHg3MCwgMHgwMSwKLQkweDAwLCAweDExLCAweGYwLCAweDc0LCAweDA2LCAweGNlLCAweDQ4LCAweDExLAotCTB4MDAsIDB4MDQsIDB4ODAsIDB4MDQsIDB4ZjAsIDB4NzMsIDB4MGIsIDB4YmMsCi0JMHg3MCwgMHgwMCwgMHgwMCwgMHgxNywgMHg3MCwgMHgwMSwgMHgwMCwgMHgxMSwKLQkweDEwLCAweDA0LCAweGYwLCAweDc0LCAweDA2LCAweGNlLCAweDQ4LCAweDExLAotCTB4MDAsIDB4MDQsIDB4ODAsIDB4MDQsIDB4NDksIDB4MTEsIDB4NDgsIDB4MTYsCi0JMHhmNiwgMHgyMCwgMHg4OCwgMHgxNiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweDZjLCAweDg2LCAweDBiLCAweGNjLCAweDEwLCAweDBhLCAweDgwLCAweDAwLAotCTB4NDgsIDB4MTgsIDB4ZjIsIDB4NzQsIDB4MGEsIDB4Y2UsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwNCwgMHg4OCwgMHgxNiwgMHgxMiwgMHgwYSwgMHhmOCwgMHg0NSwKLQkweDBjLCAweDMzLCAweDcxLCAweDBhLCAweDAwLCAweDEwLCAweGY0LCAweGFlLAotCTB4ZjgsIDB4MzAsIDB4MGMsIDB4MWMsIDB4NDgsIDB4MTYsIDB4ZjAsIDB4ZTEsCi0JMHg4OCwgMHgxMSwgMHgxMiwgMHgwOCwgMHhmOCwgMHg0NSwgMHgwYiwgMHhkYiwKLQkweDZkLCAweDg5LCAweDEyLCAweDA3LCAweGY4LCAweDQ1LCAweDBiLCAweGU5LAotCTB4MTAsIDB4MDcsIDB4ODAsIDB4MDAsIDB4NzAsIDB4MDIsIDB4MDAsIDB4MTEsCi0JMHgxMCwgMHgwNiwgMHg4MCwgMHgwMSwgMHgxMCwgMHgwNCwgMHhmMCwgMHg3NCwKLQkweDA2LCAweGRjLCAweGYwLCAweDczLCAweDBiLCAweGVmLCAweDQ4LCAweDExLAotCTB4NmYsIDB4MDAsIDB4MGMsIDB4OWYsIDB4MTAsIDB4MDQsIDB4ZjAsIDB4NzQsCi0JMHgwYSwgMHhiMywgMHgxMSwgMHgwZSwgMHhmMSwgMHhjMCwgMHg4MSwgMHgwZSwKLQkweDEwLCAweDA2LCAweDQ5LCAweDExLCAweGY2LCAweDAwLCAweDgwLCAweDA2LAotCTB4MTAsIDB4MDUsIDB4ZjYsIDB4MjAsIDB4ODgsIDB4MTEsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHg0OCwgMHgwOCwgMHg2ZiwgMHgwMCwgMHgwYywgMHg5ZiwKLQkweDQ4LCAweDE4LCAweGYyLCAweDc0LCAweDBhLCAweGNlLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDQsIDB4MTIsIDB4MDcsIDB4ZjgsIDB4NDUsIDB4MGMsIDB4MTEsCi0JMHgxMCwgMHgwNywgMHg4MCwgMHgwMCwgMHg3MCwgMHgwMiwgMHgwMCwgMHgxMSwKLQkweDEwLCAweDA2LCAweDgwLCAweDAxLCAweDEwLCAweDA0LCAweGYwLCAweDc0LAotCTB4MDYsIDB4ZGMsIDB4ZjAsIDB4NzMsIDB4MGMsIDB4MTcsIDB4NDgsIDB4MTEsCi0JMHg2ZiwgMHgwMCwgMHgwYywgMHg5ZiwgMHgxMCwgMHgwNCwgMHhmMCwgMHg3NCwKLQkweDBhLCAweGIzLCAweDExLCAweDBlLCAweGYxLCAweGMwLCAweDgxLCAweDBlLAotCTB4ZjAsIDB4NzMsIDB4MGMsIDB4MzMsIDB4MTIsIDB4MDcsIDB4ZjgsIDB4NDUsCi0JMHgwYywgMHgyYSwgMHgxMCwgMHgwNywgMHg4MCwgMHgwMCwgMHgxMCwgMHgwNiwKLQkweDgwLCAweDAxLCAweDEwLCAweDA1LCAweDgwLCAweDAyLCAweDEwLCAweDA0LAotCTB4ZjAsIDB4NzQsIDB4MDYsIDB4ZGMsIDB4ZjAsIDB4NzMsIDB4MGMsIDB4MzAsCi0JMHgxMiwgMHgwNSwgMHg2ZiwgMHgwMCwgMHgwYywgMHg5ZiwgMHgxMCwgMHgwNCwKLQkweGYwLCAweDc0LCAweDBhLCAweGIzLCAweDExLCAweDBlLCAweGYxLCAweGMwLAotCTB4ODEsIDB4MGUsIDB4NzYsIDB4MDAsIDB4MDAsIDB4MDEsIDB4NDgsIDB4MTgsCi0JMHhmMiwgMHg3NCwgMHgwYSwgMHhjZSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNCwKLQkweDcxLCAweDA0LCAweDAwLCAweDExLCAweDcwLCAweDgxLCAweDI5LCAweDg2LAotCTB4MTAsIDB4MGUsIDB4MWMsIDB4ZjgsIDB4MjksIDB4ODYsIDB4ODAsIDB4MGUsCi0JMHg3NiwgMHgwMCwgMHgwMCwgMHgwMSwgMHg0OCwgMHgxOCwgMHhmMiwgMHg3NCwKLQkweDBhLCAweGNlLCAweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDEwLCAweDBlLAotCTB4NzEsIDB4MDQsIDB4MDAsIDB4MTEsIDB4ODAsIDB4ODEsIDB4MTAsIDB4ZjgsCi0JMHgyOSwgMHg4NiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHhmMCwgMHgzMCwKLQkweDdmLCAweGZmLCAweDgwLCAweGY4LCAweDI5LCAweDg2LCAweDEwLCAweDA5LAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MDksIDB4ZWUsIDB4MTAsCi0JMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDEwLCAweGY4LCAweDI3LCAweDc1LCAweDA4LCAweGY4LCAweDI3LCAweDcxLAotCTB4ZjAsIDB4MTAsIDB4MDAsIDB4MDEsIDB4NDgsIDB4MDgsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwgMHhlZSwgMHhmZiwgMHhmNCwgMHg5NSwKLQkweDcxLCAweDA0LCAweDAwLCAweDE2LCAweGYwLCAweDAwLCAweDAwLCAweDAxLAotCTB4NDgsIDB4MDgsIDB4NGUsIDB4ZjgsIDB4MjksIDB4N2MsIDB4NmQsIDB4ZWUsCi0JMHhmZiwgMHhmZCwgMHg0OCwgMHgxNiwgMHhmOCwgMHg0NSwgMHgwYywgMHg5OSwKLQkweDU2LCAweGY4LCAweDI5LCAweDdjLCAweGYwLCAweDc0LCAweDBhLCAweDVhLAotCTB4ODgsIDB4MTEsIDB4MTAsIDB4ZjgsIDB4MjksIDB4N2QsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHg0OCwgMHgwOCwgMHg0ZSwgMHhmOCwgMHgyOSwgMHg3YywKLQkweDEwLCAweGY4LCAweDI5LCAweDgyLCAweGYwLCAweDAwLCAweDAwLCAweDAxLAotCTB4ODgsIDB4MTAsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4YTksCi0JMHhmYSwgMHgzMCwgMHgwYywgMHg5NiwgMHg4MCwgMHhmOCwgMHgyOSwgMHg4MiwKLQkweDU2LCAweGY4LCAweDI5LCAweDgwLCAweGYwLCAweDAwLCAweDAwLCAweDAxLAotCTB4NGUsIDB4ZjgsIDB4MjksIDB4ODAsIDB4NzMsIDB4MTEsIDB4MjksIDB4ODIsCi0JMHg2YywgMHhlZSwgMHhmZiwgMHhmZiwgMHgwYywgMHg3NiwgMHhlZSwgMHgwMSwKLQkweDhhLCAweDE2LCAweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLAotCTB4NzYsIDB4ZjgsIDB4MjksIDB4ODQsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsCi0JMHgyOSwgMHg4NSwgMHgwMCwgMHgwMSwgMHhlOCwgMHgwMCwgMHg0ZSwgMHhmOCwKLQkweDJhLCAweDBjLCAweDc2LCAweGY4LCAweDI5LCAweDg2LCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZjgsIDB4MjksIDB4ODcsIDB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsCi0JMHgyOSwgMHg4OCwgMHg3NiwgMHg4MSwgMHhhYSwgMHhhYSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDAxLCAweGFhLCAweGFhLCAweDc2LCAweGUxLCAweDAwLCAweDAyLAotCTB4MDAsIDB4MDAsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHhlZSwgMHhmYywgMHhmNCwgMHg5NSwgMHg3MSwgMHgwNiwgMHgwMCwgMHgxNCwKLQkweDcxLCAweDA3LCAweDAwLCAweDEzLCAweDcxLCAweDA4LCAweDAwLCAweDEyLAotCTB4NzEsIDB4MDksIDB4MDAsIDB4MTUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4ZmYsCi0JMHhmNCwgMHhhYSwgMHhmOCwgMHgzMCwgMHgwZCwgMHg0NCwgMHg0OSwgMHgxMywKLQkweDUzLCAweGY4LCAweDJhLCAweDBjLCAweDRmLCAweGY4LCAweDJhLCAweDBjLAotCTB4NzMsIDB4MTIsIDB4MDAsIDB4MGUsIDB4ZjEsIDB4NjYsIDB4MDAsIDB4MGQsCi0JMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHgwMCwgMHgwMSwKLQkweDcxLCAweGUxLCAweDI0LCAweDAwLCAweDAwLCAweDExLCAweGY0LCAweGE5LAotCTB4ZjgsIDB4MzAsIDB4MGQsIDB4MTcsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MDIsCi0JMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwgMHgwYywgMHhlYywgMHg3NywgMHgxMSwKLQkweDI5LCAweDhhLCAweDc2LCAweDgxLCAweDAwLCAweDAwLCAweGU4LCAweDAwLAotCTB4NzcsIDB4MTQsIDB4MDAsIDB4MDAsIDB4NzcsIDB4MTMsIDB4MDAsIDB4MDAsCi0JMHhmMCwgMHg3MywgMHgwZCwgMHg0OCwgMHg2YywgMHg4MywgMHgwYywgMHhmYSwKLQkweDc3LCAweDExLCAweDI5LCAweDhhLCAweDQ4LCAweDEyLCAweGYwLCAweGU4LAotCTB4ZjAsIDB4NDAsIDB4ODAsIDB4MDAsIDB4ODAsIDB4ODEsIDB4ZTgsIDB4MDAsCi0JMHg3NywgMHgxNCwgMHgwMCwgMHgwMCwgMHhmMCwgMHg3MywgMHgwZCwgMHg0OCwKLQkweDQ5LCAweDEzLCAweGYzLCAweDQwLCAweDgwLCAweDAwLCAweDgxLCAweGY4LAotCTB4MjksIDB4OGEsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MTUsIDB4MDAsIDB4MDEsCi0JMHhmOCwgMHgyMCwgMHgwZCwgMHgwNywgMHg2OSwgMHhmOCwgMHgyOSwgMHg4YSwKLQkweDQwLCAweDAwLCAweDYxLCAweGY4LCAweDAwLCAweDE0LCAweDAwLCAweDAxLAotCTB4ZjgsIDB4MjAsIDB4MGQsIDB4MGYsIDB4NjksIDB4ZjgsIDB4MjksIDB4OGEsCi0JMHgyMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgyOSwgMHg4YSwgMHg0OSwgMHgxMiwKLQkweGYzLCAweGU4LCAweDFiLCAweDgxLCAweDgxLCAweDgxLCAweGYwLCAweDczLAotCTB4MGQsIDB4NDgsIDB4MTEsIDB4ZjgsIDB4MjksIDB4ODQsIDB4ZjgsIDB4NGMsCi0JMHgwZCwgMHgzNywgMHg3NywgMHgxMSwgMHgyOSwgMHg4OCwgMHg3NiwgMHg4MSwKLQkweGFhLCAweGFhLCAweDExLCAweGY4LCAweDI5LCAweDg1LCAweGYzLCAweDEwLAotCTB4MDAsIDB4MDEsIDB4ZjMsIDB4NDAsIDB4YWEsIDB4MDAsIDB4ODEsIDB4ZTEsCi0JMHgwMCwgMHgwMSwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMiwgMHg4MCwgMHgwMSwKLQkweDcwLCAweDAyLCAweDAwLCAweDE0LCAweDcwLCAweDAzLCAweDAwLCAweDEzLAotCTB4ZjIsIDB4NzQsIDB4MGIsIDB4MjgsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsCi0JMHg3MSwgMHhmOCwgMHgyOSwgMHg4NSwgMHgyOSwgMHg4NCwgMHhmMCwgMHg3MywKLQkweDBkLCAweDczLCAweDc2LCAweDAwLCAweDAwLCAweDAwLCAweDgwLCAweDAxLAotCTB4NzYsIDB4MDIsIDB4MDAsIDB4MDAsIDB4NzAsIDB4MDMsIDB4MDAsIDB4MTMsCi0JMHhmMiwgMHg3NCwgMHgwYiwgMHgyOCwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwKLQkweGYwLCAweDczLCAweDBkLCAweDczLCAweDc3LCAweDExLCAweDI5LCAweDhhLAotCTB4NzAsIDB4ODEsIDB4MDAsIDB4MTMsIDB4MTEsIDB4ZjgsIDB4MjksIDB4ODQsCi0JMHhmOCwgMHg0YywgMHgwZCwgMHg2OCwgMHg3NywgMHgxMSwgMHgyOSwgMHg4OCwKLQkweDc2LCAweDgxLCAweGFhLCAweGFhLCAweDExLCAweGY4LCAweDI5LCAweDg1LAotCTB4ZjMsIDB4MTAsIDB4MDAsIDB4MDEsIDB4ZjMsIDB4NDAsIDB4YWEsIDB4MDAsCi0JMHg4MSwgMHhlMSwgMHgwMCwgMHgwMSwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMywKLQkweDgwLCAweDAxLCAweDcwLCAweDAyLCAweDAwLCAweDE0LCAweDcwLCAweDAzLAotCTB4MDAsIDB4MTMsIDB4ZjIsIDB4NzQsIDB4MGIsIDB4MjgsIDB4ZjQsIDB4OTUsCi0JMHg0OCwgMHgxMSwgMHg3MSwgMHhmOCwgMHgyOSwgMHg4NSwgMHgyOSwgMHg4NCwKLQkweGYwLCAweDczLCAweDBkLCAweDczLCAweDc2LCAweDAwLCAweDAwLCAweDAxLAotCTB4ODAsIDB4MDEsIDB4NzAsIDB4MDIsIDB4MDAsIDB4MTQsIDB4NzAsIDB4MDMsCi0JMHgwMCwgMHgxMywgMHhmMiwgMHg3NCwgMHgwYiwgMHgyOCwgMHhmNCwgMHg5NSwKLQkweDQ4LCAweDExLCAweDZiLCAweGY4LCAweDI5LCAweDg0LCAweGZmLCAweGZmLAotCTB4ZWUsIDB4MDQsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHhmNSwgMHg0MCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgwYiwgMHhmNCwgMHg3OCwKLQkweDg4LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweGUxLAotCTB4ZmYsIDB4YjksIDB4MGQsIDB4ODgsIDB4ZjIsIDB4NzMsIDB4MGQsIDB4YTUsCi0JMHhmNCwgMHg5NSwgMHhlOCwgMHg2MCwgMHhmMiwgMHgwMCwgMHgwMCwgMHgwNiwKLQkweDYxLCAweGY4LCAweDAwLCAweDExLCAweDAwLCAweDIwLCAweGY4LCAweDMwLAotCTB4MGQsIDB4OTgsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MGIsIDB4MDAsIDB4MDEsCi0JMHhmOCwgMHgyMCwgMHgwZCwgMHhhMywgMHhmMiwgMHgwMCwgMHgwMCwgMHgwNywKLQkweGYwLCAweDczLCAweDBkLCAweGEzLCAweDYxLCAweGY4LCAweDAwLCAweDBiLAotCTB4MDAsIDB4MDEsIDB4ZjgsIDB4MjAsIDB4MGQsIDB4YTEsIDB4ZjIsIDB4NzMsCi0JMHgwZCwgMHhhMywgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDAyLCAweDQ4LCAweDA4LCAweGY0LCAweDdmLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4ZWUsIDB4ZmYsIDB4ZjAsIDB4NzQsIDB4MDcsIDB4ZmQsCi0JMHhmMCwgMHg3NCwgMHgwNywgMHg0NCwgMHhmMCwgMHg3NCwgMHgwZCwgMHhiNCwKLQkweGYwLCAweDc0LCAweDAyLCAweDA1LCAweGYwLCAweDc0LCAweDA0LCAweDYwLAotCTB4ZjAsIDB4NzMsIDB4MGQsIDB4YWEsIDB4ZWUsIDB4ZmQsIDB4MTAsIDB4ZjgsCi0JMHgyYSwgMHhhMywgMHhmOCwgMHg0NCwgMHgwZCwgMHhjYiwgMHgxMCwgMHhmOCwKLQkweDJhLCAweGE0LCAweGY4LCAweDQ1LCAweDBkLCAweGQ3LCAweDc2LCAweDAwLAotCTB4MDIsIDB4MDAsIDB4ZjIsIDB4NzQsIDB4MDksIDB4ZTgsIDB4ZjAsIDB4MjAsCi0JMHgyMiwgMHgwMCwgMHg3NiwgMHhmOCwgMHgyYSwgMHhhNCwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGY4LCAweDJhLCAweGE3LCAweDAwLCAweDAwLCAweGYwLCAweDczLAotCTB4MGQsIDB4ZDcsIDB4NzYsIDB4MDAsIDB4MDIsIDB4MDAsIDB4ZjIsIDB4NzQsCi0JMHgwOSwgMHhlOCwgMHhmMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHg3NiwgMHhmOCwKLQkweDJhLCAweGEzLCAweDAwLCAweDAwLCAweDc2LCAweGY4LCAweDJhLCAweGE3LAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4NzQsIDB4MGMsIDB4NWUsIDB4ZjAsIDB4ZTAsCi0JMHhmMCwgMHgxMCwgMHgzYSwgMHg5OCwgMHhmOCwgMHg0NywgMHgwZCwgMHhlMSwKLQkweDc2LCAweGY4LCAweDI3LCAweDZlLCAweDAwLCAweDAwLCAweGVlLCAweDAzLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsIDB4NzcsIDB4MTEsCi0JMHgyMCwgMHgwMCwgMHg3NiwgMHgwMCwgMHhhYSwgMHhhYSwgMHg3NiwgMHgwMSwKLQkweDAyLCAweDAwLCAweGYyLCAweDc0LCAweDA2LCAweDZjLCAweGY0LCAweDk1LAotCTB4NDgsIDB4MTEsIDB4NzYsIDB4MDAsIDB4NTUsIDB4NTUsIDB4NzYsIDB4MDEsCi0JMHgwMiwgMHgwMCwgMHg0OCwgMHgxMSwgMHhmMiwgMHg3NCwgMHgwNiwgMHg2YywKLQkweGYwLCAweDAwLCAweDAyLCAweDAwLCAweDc2LCAweGY4LCAweDJhLCAweGEzLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4YTQsIDB4MDAsIDB4MDAsCi0JMHhlOCwgMHgwMCwgMHg0ZSwgMHgwMCwgMHhmYiwgMHg4MCwgMHgxNSwgMHgzZSwKLQkweGY0LCAweDk1LCAweGU4LCAweDA0LCAweDgwLCAweGY4LCAweDJhLCAweGE1LAotCTB4NzYsIDB4MDAsIDB4MmEsIDB4YTgsIDB4ZjksIDB4ODAsIDB4MTQsIDB4ODcsCi0JMHg3NiwgMHgwMCwgMHgyYSwgMHhhZCwgMHhmYiwgMHg4MCwgMHgxMywgMHg2MiwKLQkweGY0LCAweDk1LCAweGU4LCAweDAyLCAweDEwLCAweGY4LCAweDJhLCAweGE1LAotCTB4ZjksIDB4ODAsIDB4MTQsIDB4NjMsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4NjYsCi0JMHhmNCwgMHg5NSwgMHhlOCwgMHgxYywgMHhmYiwgMHg4MCwgMHgxNiwgMHg4NywKLQkweGY0LCAweDk1LCAweGU4LCAweDFjLCAweGU4LCAweDAxLCAweDRlLCAweDAwLAotCTB4ZmIsIDB4ODAsIDB4MTcsIDB4ZDYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHg4MCwgMHhmOCwgMHgyYSwgMHhhNiwgMHg3NiwgMHgwMCwgMHgyYSwgMHhiNywKLQkweGY5LCAweDgwLCAweDE2LCAweGFhLCAweDEwLCAweGY4LCAweDJhLCAweGE2LAotCTB4ZjksIDB4ODAsIDB4MTcsIDB4NWMsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4YTYsCi0JMHhmOSwgMHg4MCwgMHgxNywgMHg2ZiwgMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweGY0LCAweDk1LCAweDRhLCAweDA4LCAweDRhLCAweDA5LAotCTB4NGEsIDB4MGEsIDB4NGEsIDB4MDcsIDB4NGEsIDB4MWQsIDB4NjgsIDB4ZjgsCi0JMHgwMCwgMHgwNywgMHg3ZCwgMHgzZiwgMHg2OSwgMHhmOCwgMHgwMCwgMHgwNywKLQkweDQwLCAweDAwLCAweDY4LCAweGY4LCAweDAwLCAweDFkLCAweGZmLCAweGZjLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4YTcsIDB4ZjgsIDB4NDQsIDB4MGUsIDB4NGIsCi0JMHg3NiwgMHhmOCwgMHgyYSwgMHhhMywgMHgwMCwgMHgwMSwgMHhmMCwgMHg3MywKLQkweDBlLCAweDRlLCAweDc2LCAweGY4LCAweDJhLCAweGE0LCAweDAwLCAweDAxLAotCTB4OGEsIDB4MWQsIDB4OGEsIDB4MDcsIDB4OGEsIDB4MGEsIDB4OGEsIDB4MDksCi0JMHg4YSwgMHgwOCwgMHhmNCwgMHhlYiwgMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwKLQkweDRhLCAweDE3LCAweGVlLCAweGZlLCAweDg4LCAweDBlLCAweDcxLCAweDA4LAotCTB4MDAsIDB4MTYsIDB4NzEsIDB4MDYsIDB4MDAsIDB4MTcsIDB4MTEsIDB4MDcsCi0JMHhmMCwgMHg2NiwgMHgwMCwgMHgwZCwgMHhmMCwgMHgwMCwgMHgyNSwgMHhhMCwKLQkweDg4LCAweDExLCAweDc2LCAweDAxLCAweDAwLCAweDA2LCAweDgxLCAweDAwLAotCTB4ZjIsIDB4NzQsIDB4MDYsIDB4Y2UsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg3NiwgMHgwMSwgMHgwMCwgMHgwNiwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNiwKLQkweDQ4LCAweDExLCAweGYyLCAweDc0LCAweDA2LCAweGNlLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDcsIDB4NzAsIDB4ODEsIDB4MDAsIDB4MTcsIDB4ZWUsIDB4MDIsCi0JMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweDg4LCAweDBlLCAweDcxLCAweDAyLCAweDAwLCAweDEyLAotCTB4MTEsIDB4MDMsIDB4ZjAsIDB4NjYsIDB4MDAsIDB4MGQsIDB4ZjAsIDB4MDAsCi0JMHgyNCwgMHgwMCwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MCwgMHg4MSwKLQkweDAwLCAweDEyLCAweDZlLCAweGUyLCAweGZmLCAweGZlLCAweDBlLCAweDhkLAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsIDB4ZTgsIDB4MDEsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHhmZiwKLQkweDc2LCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MGIsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGMsCi0JMHgwMCwgMHgwMCwgMHg4MSwgMHhlMSwgMHgwMCwgMHgwMSwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweGVlLCAweGZjLCAweDg4LCAweDBlLAotCTB4ZjQsIDB4OTUsIDB4ZjEsIDB4NjYsIDB4MDAsIDB4MGQsIDB4ZjMsIDB4MDAsCi0JMHgyNCwgMHgwMCwgMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweDc2LCAweGUxLCAweDAwLCAweDBjLCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MGIsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDIsCi0JMHgwMCwgMHgwMSwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHg3NiwgMHgwMSwKLQkweDAwLCAweDAwLCAweDgwLCAweDAyLCAweDc2LCAweDAzLCAweDAwLCAweDAwLAotCTB4ZjIsIDB4NzQsIDB4MGMsIDB4YjksIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHhlZSwgMHgwNCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDg4LCAweDE5LCAweGY0LCAweDk1LCAweDczLCAweDE5LCAweDAwLCAweDBlLAotCTB4ZjEsIDB4NjYsIDB4MDAsIDB4MGQsIDB4ZjIsIDB4MDAsIDB4MjQsIDB4MDAsCi0JMHg3NywgMHgxNSwgMHgyNSwgMHhhMCwgMHg3NywgMHgxNCwgMHgwMCwgMHgwMCwKLQkweDc3LCAweDFhLCAweDAwLCAweDFmLCAweGYwLCAweDcyLCAweDBmLCAweDE0LAotCTB4ZjYsIDB4YjgsIDB4NDksIDB4MTksIDB4MDksIDB4ODUsIDB4ZjgsIDB4NGMsCi0JMHgwZiwgMHgxMywgMHhmMSwgMHgwMCwgMHgwMCwgMHgwNSwgMHg4OSwgMHgxMSwKLQkweDQ5LCAweDE1LCAweGYzLCAweDAwLCAweDAwLCAweDAxLCAweDg5LCAweDEzLAotCTB4NDksIDB4MTUsIDB4ZjMsIDB4MDAsIDB4MDAsIDB4MDcsIDB4ODksIDB4MTIsCi0JMHgxMSwgMHg5MywgMHgxZCwgMHg5MSwgMHgxOSwgMHg5MiwgMHg4OSwgMHgxMCwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgwLCAweDBmLCAweDEzLAotCTB4MTEsIDB4OTMsIDB4MWQsIDB4OTEsIDB4MTksIDB4OTIsIDB4ODksIDB4MTAsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg2YywgMHg4MCwgMHgwZiwgMHgxMywKLQkweDExLCAweDkzLCAweDFkLCAweDkxLCAweDE5LCAweDkyLCAweDg5LCAweDEwLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODAsIDB4MGYsIDB4MTMsCi0JMHgxMSwgMHg5MywgMHgxZCwgMHg5MSwgMHgxOSwgMHg5MiwgMHg4OSwgMHgxMCwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgwLCAweDBmLCAweDEzLAotCTB4MTEsIDB4OTMsIDB4MWQsIDB4OTEsIDB4MTksIDB4OTIsIDB4ODksIDB4MTAsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg2YywgMHg4MCwgMHgwZiwgMHgxMywKLQkweDExLCAweDkzLCAweDFkLCAweDkxLCAweDE5LCAweDkyLCAweDg5LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODEsIDB4MGYsIDB4MTMsCi0JMHg2ZCwgMHg5NCwgMHg2ZCwgMHhlZCwgMHgwMCwgMHgwZCwgMHg0OCwgMHgxNCwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LAotCTB4NGEsIDB4MTcsIDB4ZWUsIDB4ZjgsIDB4ODgsIDB4MTcsIDB4MTAsIDB4MGQsCi0JMHg4MCwgMHgwNCwgMHgxMCwgMHgwYywgMHg4MCwgMHgwNSwgMHg3MSwgMHgwZSwKLQkweDAwLCAweDE2LCAweDczLCAweDE3LCAweDAwLCAweDBlLCAweGYwLCAweDY2LAotCTB4MDAsIDB4MGQsIDB4ZjAsIDB4MDAsIDB4MjQsIDB4MDAsIDB4ODgsIDB4MTEsCi0JMHgxMCwgMHhmOCwgMHgyNywgMHg2MywgMHhmOCwgMHg0NSwgMHgwZiwgMHgzMiwKLQkweGYyLCAweDc0LCAweDBlLCAweDlmLCAweGY0LCAweDk1LCAweDQ4LCAweDE3LAotCTB4MTAsIDB4ZjgsIDB4MjcsIDB4NjAsIDB4ZjgsIDB4NDQsIDB4MGYsIDB4M2QsCi0JMHg2MCwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwKLQkweDBmLCAweDZkLCAweGYwLCAweDczLCAweDExLCAweDMzLCAweDEwLCAweDA0LAotCTB4ODAsIDB4MDAsIDB4MTAsIDB4MDUsIDB4ZjAsIDB4NzQsIDB4MDYsIDB4OWYsCi0JMHgxMSwgMHgwNCwgMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwgMHg4MSwgMHgwNCwKLQkweDZkLCAweDhlLCAweDc3LCAweDEwLCAweDAwLCAweDAxLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDIsIDB4MDAsIDB4MTIsIDB4ZjQsIDB4YWEsIDB4ZjgsIDB4MzAsCi0JMHgwZiwgMHg2MiwgMHg3NywgMHgxMCwgMHgwMCwgMHgwMiwgMHhmNCwgMHhhYSwKLQkweGY4LCAweDMwLCAweDBmLCAweDZkLCAweDQ1LCAweGUxLCAweDAwLCAweDBiLAotCTB4ODgsIDB4MTAsIDB4NDMsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4ODMsIDB4ZjgsCi0JMHgwMCwgMHgxMiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhhYSwKLQkweGY4LCAweDMwLCAweDBmLCAweDZkLCAweGYwLCAweDczLCAweDBmLCAweDk2LAotCTB4ZjUsIDB4MDAsIDB4ODEsIDB4MDQsIDB4NDksIDB4MTYsIDB4ZjUsIDB4MjAsCi0JMHg4OSwgMHgxNiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwYywgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDAwLCAweDQ4LCAweDE2LAotCTB4ZjgsIDB4NDUsIDB4MTEsIDB4MzMsIDB4ZjcsIDB4YjgsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHgwMCwgMHgxMiwgMHgxMCwgMHhmOCwgMHgwMCwgMHgxMiwKLQkweGYwLCAweDEwLCAweDAwLCAweDAzLCAweGY4LCAweDQ2LCAweDBmLCAweDhjLAotCTB4MTAsIDB4ZjgsIDB4MDAsIDB4MTIsIDB4ZjAsIDB4MTAsIDB4MDAsIDB4MDMsCi0JMHhmOCwgMHg0NSwgMHgxMCwgMHgxNiwgMHg3NywgMHgxMCwgMHgwMCwgMHgwMSwKLQkweGY0LCAweGFhLCAweGY4LCAweDMwLCAweDBmLCAweDljLCAweDc3LCAweDEwLAotCTB4MDAsIDB4MDIsIDB4ZjQsIDB4YWEsIDB4ZjgsIDB4MzAsIDB4MGYsIDB4YTgsCi0JMHhmMCwgMHg3MywgMHgwZiwgMHg5NiwgMHg3NywgMHgxMCwgMHgwMCwgMHgwNCwKLQkweGY0LCAweGFhLCAweGY4LCAweDMwLCAweDEwLCAweGI3LCAweDc3LCAweDEwLAotCTB4MDAsIDB4MDUsIDB4ZjQsIDB4YWEsIDB4ZjgsIDB4MzAsIDB4MTAsIDB4YmMsCi0JMHhmMiwgMHg3NCwgMHgwZSwgMHg5ZiwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxNywKLQkweGYwLCAweDczLCAweDExLCAweDMxLCAweDc2LCAweGUxLCAweDAwLCAweDBjLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGIsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDAyLCAweDAwLCAweDAyLCAweDExLCAweGUxLCAweDAwLCAweDBjLAotCTB4ZTgsIDB4MDMsIDB4ZjYsIDB4MjAsIDB4ODksIDB4MTIsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMCwgMHgwMCwgMHgwMywgMHhmNSwgMHhhYSwgMHhmOCwgMHgzMCwKLQkweDBmLCAweGI2LCAweDZiLCAweGY4LCAweDI3LCAweDZmLCAweDAwLCAweDAxLAotCTB4ODgsIDB4MTAsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjUsIDB4YWUsCi0JMHhmOCwgMHgyMCwgMHgwZiwgMHhiZCwgMHg0OCwgMHgxNiwgMHg4MCwgMHgwNiwKLQkweDg4LCAweDEzLCAweGY0LCAweDk1LCAweDc3LCAweDEwLCAweDAwLCAweDAzLAotCTB4ZjYsIDB4YWIsIDB4ZjgsIDB4MjAsIDB4MGYsIDB4YzgsIDB4NmIsIDB4ZjgsCi0JMHgyNywgMHg2ZiwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwNiwgMHhmOCwgMHg0NSwKLQkweDEwLCAweDAwLCAweDEwLCAweGUxLCAweDAwLCAweDA0LCAweDgwLCAweDAwLAotCTB4MTAsIDB4MDUsIDB4ODAsIDB4MDEsIDB4MTAsIDB4MDQsIDB4ODAsIDB4MDIsCi0JMHgxMCwgMHgwNiwgMHg4MCwgMHgwMywgMHg0OCwgMHgxMSwgMHhmMiwgMHg3NCwKLQkweDA3LCAweDFlLCAweGYwLCAweDAwLCAweDAwLCAweDA1LCAweDEwLCAweDA2LAotCTB4MDAsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4ODAsIDB4ZTEsIDB4MDAsIDB4MDQsCi0JMHgxMCwgMHgwNiwgMHgwMCwgMHhlMSwgMHgwMCwgMHgwYywgMHg4MCwgMHhlMSwKLQkweDAwLCAweDBjLCAweDg4LCAweDEyLCAweDExLCAweDA2LCAweDEwLCAweDA0LAotCTB4ZjYsIDB4MDAsIDB4ODAsIDB4MDQsIDB4NDgsIDB4MTYsIDB4ZjYsIDB4MjAsCi0JMHg4OCwgMHgxNiwgMHg4OSwgMHgxMywgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwKLQkweDAwLCAweDAzLCAweGY2LCAweGFiLCAweGY4LCAweDIwLCAweDBmLCAweGY1LAotCTB4NmIsIDB4ZjgsIDB4MjcsIDB4NmYsIDB4MDAsIDB4MDEsIDB4NzcsIDB4MTAsCi0JMHgwMCwgMHgwYywgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgxMywKLQkweGY2LCAweGFiLCAweGY4LCAweDIwLCAweDEwLCAweDAwLCAweDZiLCAweGY4LAotCTB4MjcsIDB4NmYsIDB4MDAsIDB4MDEsIDB4NmMsIDB4ZTIsIDB4ZmYsIDB4ZmQsCi0JMHgxMSwgMHgzMSwgMHhmNiwgMHhiOCwgMHg2ZiwgMHhlMSwgMHgwMCwgMHgwNSwKLQkweDBjLCAweDQ4LCAweDZmLCAweGUxLCAweDAwLCAweDA2LCAweDBjLCAweDE4LAotCTB4ZjAsIDB4MzAsIDB4MGYsIDB4ZmYsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDMsCi0JMHg4MCwgMHhlMSwgMHgwMCwgMHgwYiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDAzLCAweDQ4LCAweDE2LCAweGY4LCAweDQ1LCAweDExLCAweDMzLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4MDAsIDB4MTIsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwYiwgMHg0OSwgMHgxMiwgMHhmNiwgMHgyMCwgMHg4OCwgMHgxMywKLQkweGU4LCAweDBjLCAweGY2LCAweDIwLCAweDg4LCAweDEwLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4ZjUsIDB4YWIsIDB4ZjgsIDB4MjAsIDB4MTAsIDB4MjcsCi0JMHg0OCwgMHgxMywgMHg4MCwgMHgwNiwgMHg4OCwgMHgxMCwgMHhmNCwgMHg5NSwKLQkweGY0LCAweDk1LCAweGY1LCAweGFlLCAweGY4LCAweDIwLCAweDEwLCAweDMwLAotCTB4NzAsIDB4MDYsIDB4MDAsIDB4MTYsIDB4MTIsIDB4MDYsIDB4ZjgsIDB4NDUsCi0JMHgxMCwgMHg1ZiwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwNCwgMHg4MCwgMHgwMCwKLQkweDEwLCAweDA1LCAweDgwLCAweDAxLCAweDEwLCAweDA0LCAweDgwLCAweDAyLAotCTB4MTAsIDB4MDYsIDB4ODAsIDB4MDMsIDB4NDgsIDB4MTEsIDB4ZjIsIDB4NzQsCi0JMHgwNywgMHgxZSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNSwgMHgxMCwgMHgwNiwKLQkweDAwLCAweGUxLCAweDAwLCAweDA0LCAweDgwLCAweGUxLCAweDAwLCAweDA0LAotCTB4MTAsIDB4MDYsIDB4MDAsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwYywgMHg4OCwgMHgxMiwgMHgxMSwgMHgwNiwgMHgxMCwgMHgwNCwKLQkweGY2LCAweDAwLCAweDgwLCAweDA0LCAweDQ4LCAweDE2LCAweGY2LCAweDIwLAotCTB4ODgsIDB4MTYsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MGMsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgxMywgMHhmNiwgMHhhYiwKLQkweGY4LCAweDIwLCAweDEwLCAweDVmLCAweDZiLCAweGY4LCAweDI3LCAweDZmLAotCTB4MDAsIDB4MDEsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MGMsIDB4ZjYsIDB4YWEsCi0JMHhmOCwgMHgyMCwgMHgxMCwgMHg2YiwgMHhmMiwgMHg3NCwgMHgwZSwgMHg5ZiwKLQkweGY0LCAweDk1LCAweDQ4LCAweDE3LCAweDcxLCAweGUxLCAweDAwLCAweDBjLAotCTB4MDAsIDB4MTIsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MGMsIDB4ZjQsIDB4YWEsCi0JMHhmOCwgMHgzMCwgMHgxMCwgMHg3YywgMHg3NywgMHgxMCwgMHgwMCwgMHgwYywKLQkweDcxLCAweGUxLCAweDAwLCAweDBiLCAweDAwLCAweDEzLCAweGY2LCAweGFiLAotCTB4ZjgsIDB4MzAsIDB4MTAsIDB4YjQsIDB4ZTcsIDB4MzAsIDB4ZjcsIDB4YWEsCi0JMHhmOCwgMHgzMCwgMHgxMCwgMHhiNCwgMHhmMiwgMHg3NCwgMHgwZSwgMHhjMSwKLQkweGY0LCAweDk1LCAweDQ4LCAweDE3LCAweDg4LCAweDEyLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NmMsIDB4ODIsIDB4MTAsIDB4OGQsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDA1LCAweGYwLCAweDczLCAweDEwLCAweGI0LCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDIsIDB4MDAsIDB4MDQsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MGMsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwYiwgMHgwMCwgMHgxMiwgMHhmNSwgMHhhYSwKLQkweGY4LCAweDIwLCAweDEwLCAweDlhLCAweGYwLCAweDczLCAweDEwLCAweDljLAotCTB4NzcsIDB4MTIsIDB4MDAsIDB4MGMsIDB4NzYsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHg3MCwgMHgwMSwgMHgwMCwgMHgxMiwgMHg3MCwgMHgwMiwgMHgwMCwgMHgxNywKLQkweDc2LCAweDAzLCAweDAwLCAweDAxLCAweDQ4LCAweDExLCAweGYyLCAweDc0LAotCTB4MGMsIDB4YjksIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDUsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMCwgMHgwMCwgMHgwYywKLQkweDcxLCAweGUxLCAweDAwLCAweDBiLCAweDAwLCAweDEyLCAweGY2LCAweGFhLAotCTB4ZjgsIDB4MjAsIDB4MTEsIDB4MWMsIDB4NDgsIDB4MTYsIDB4ZjgsIDB4NDUsCi0JMHgxMSwgMHgzMywgMHg2MCwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwNSwKLQkweGY4LCAweDIwLCAweDEwLCAweGRmLCAweDEwLCAweGUxLCAweDAwLCAweDBiLAotCTB4MDgsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4MTEsIDB4ZTEsIDB4MDAsIDB4MDQsCi0JMHhmOCwgMHg0ZCwgMHgxMCwgMHhjNywgMHg2YiwgMHhmOCwgMHgyNywgMHg2ZiwKLQkweDAwLCAweDAxLCAweDg4LCAweDEwLCAweGY0LCAweDk1LCAweGY0LCAweDk1LAotCTB4ZjUsIDB4YWUsIDB4ZjgsIDB4MjAsIDB4MTAsIDB4Y2YsIDB4NDgsIDB4MTYsCi0JMHhmNCwgMHg5NSwgMHg0OCwgMHgwOCwgMHhmOCwgMHg0NSwgMHgxMSwgMHgxNiwKLQkweDZmLCAweGUxLCAweDAwLCAweDBjLCAweDBkLCAweDAwLCAweDgxLCAweGUxLAotCTB4MDAsIDB4MGMsIDB4MTEsIDB4MDQsIDB4ZjUsIDB4MDAsIDB4ODEsIDB4MDQsCi0JMHg0OSwgMHgxNiwgMHhmNSwgMHgyMCwgMHg4OSwgMHgxNiwgMHhmMCwgMHg3MywKLQkweDExLCAweDBlLCAweDEwLCAweGUxLCAweDAwLCAweDBiLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MGMsIDB4MDAsIDB4MTIsIDB4ODgsIDB4MTAsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHhmNiwgMHhhYSwgMHhmOCwgMHgzMCwgMHgxMSwgMHgxNiwKLQkweDQ5LCAweDEyLCAweGY2LCAweDIwLCAweDg4LCAweDEwLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4ZjUsIDB4YWUsIDB4ZjgsIDB4MjAsIDB4MTAsIDB4ZjMsCi0JMHg0OCwgMHgxNiwgMHg4MCwgMHgwNiwgMHg0OCwgMHgwOCwgMHhmOCwgMHg0NSwKLQkweDExLCAweDE2LCAweDEwLCAweDA0LCAweDcwLCAweDAyLCAweDAwLCAweDE3LAotCTB4ODAsIDB4MDAsIDB4NzYsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDYsCi0JMHg4MCwgMHgwMSwgMHgxMCwgMHgwNSwgMHhmMCwgMHg3NCwgMHgwYywgMHhiOSwKLQkweDEwLCAweDA2LCAweDAwLCAweGUxLCAweDAwLCAweDBjLCAweDgwLCAweGUxLAotCTB4MDAsIDB4MGMsIDB4MTEsIDB4MDYsIDB4MTAsIDB4MDQsIDB4ZjYsIDB4MDAsCi0JMHg4MCwgMHgwNCwgMHg0OCwgMHgxNiwgMHhmNiwgMHgyMCwgMHg4OCwgMHgxNiwKLQkweDEwLCAweGUxLCAweDAwLCAweDBjLCAweDA4LCAweGUxLCAweDAwLCAweDBiLAotCTB4ZjgsIDB4NDUsIDB4MTEsIDB4MWMsIDB4ZjAsIDB4NzMsIDB4MTEsIDB4MzEsCi0JMHhmMiwgMHg3NCwgMHgwZSwgMHg5ZiwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxNywKLQkweGYwLCAweDczLCAweDExLCAweDMzLCAweDc2LCAweGUxLCAweDAwLCAweDBjLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGIsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMSwgMHgxMCwgMHgwNCwKLQkweDgwLCAweDAwLCAweDEwLCAweDA1LCAweGYwLCAweDc0LCAweDA2LCAweDlmLAotCTB4ODgsIDB4MTIsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4ZmYsCi0JMHhmNCwgMHhhYSwgMHhmOCwgMHgzMCwgMHgxMSwgMHgzMywgMHg2YywgMHg4NiwKLQkweDBmLCAweDcwLCAweGVlLCAweDA4LCAweDhhLCAweDE3LCAweDhhLCAweDE2LAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmMsCi0JMHhmNCwgMHg5NSwgMHg3MSwgMHgwNiwgMHgwMCwgMHgxMiwgMHg4OCwgMHgxMSwKLQkweDczLCAweDEyLCAweDAwLCAweDBlLCAweGYxLCAweDY2LCAweDAwLCAweDBkLAotCTB4ZjMsIDB4MDAsIDB4MjQsIDB4MDAsIDB4ODksIDB4MTQsIDB4MTMsIDB4ODEsCi0JMHhmNywgMHg3YSwgMHhmMywgMHgzMCwgMHgwMCwgMHgwMSwgMHg4MSwgMHhmOCwKLQkweDI3LCAweDYwLCAweDEzLCAweGUxLCAweDAwLCAweDAxLCAweGY3LCAweDdjLAotCTB4ZjMsIDB4MzAsIDB4MDAsIDB4MDMsIDB4ODEsIDB4ZjgsIDB4MjcsIDB4NjEsCi0JMHhlOSwgMHgwZiwgMHgxOSwgMHhlMSwgMHgwMCwgMHgwMSwgMHg4MSwgMHhmOCwKLQkweDI3LCAweDYyLCAweDcxLCAweGU0LCAweDAwLCAweDAzLCAweDAwLCAweDEzLAotCTB4ZjYsIDB4YjgsIDB4NDksIDB4MTMsIDB4ZjMsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHhmMywgMHgzMCwgMHgwMCwgMHgwZiwgMHg0OSwgMHgwYiwgMHgwOSwgMHhmOCwKLQkweDI3LCAweDYyLCAweGY4LCAweDRkLCAweDExLCAweDc1LCAweDc3LCAweDEwLAotCTB4MDAsIDB4ZmYsIDB4ZjQsIDB4YWIsIDB4ZjgsIDB4MzAsIDB4MTEsIDB4NzUsCi0JMHg1NywgMHhmOCwgMHgyNywgMHg2YywgMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDRmLCAweGY4LCAweDI3LCAweDZjLCAweDc2LCAweGY4LCAweDI3LCAweDYzLAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsIDB4MTEsIDB4NzgsIDB4NzYsIDB4ZjgsCi0JMHgyNywgMHg2MywgMHgwMCwgMHgwMCwgMHg3MCwgMHhlNCwgMHgwMCwgMHgwMywKLQkweDI3LCAweDYyLCAweDc2LCAweGY4LCAweDI3LCAweDY0LCAweDAwLCAweDAwLAotCTB4MTEsIDB4ZjgsIDB4MjcsIDB4NjEsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MGIsCi0JMHgwMCwgMHgwMiwgMHhmOCwgMHgyMCwgMHgxMSwgMHg4ZCwgMHhlOSwgMHgwMSwKLQkweDZmLCAweGUxLCAweDAwLCAweDAyLCAweDBmLCAweDE4LCAweDgxLCAweGY4LAotCTB4MjcsIDB4NjQsIDB4MTEsIDB4ZjgsIDB4MjcsIDB4NjEsIDB4NjEsIDB4ZjgsCi0JMHgwMCwgMHgwYiwgMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwgMHgxMSwgMHhhOSwKLQkweDEwLCAweGY4LCAweDI3LCAweDY0LCAweGYxLCAweDAwLCAweDAwLCAweDA0LAotCTB4ODksIDB4MTMsIDB4ZTksIDB4YjgsIDB4ZjUsIDB4MjAsIDB4ODEsIDB4ZjgsCi0JMHgyNywgMHg2NSwgMHg2MCwgMHg4NCwgMHgwMCwgMHgwMiwgMHhmOCwgMHgyMCwKLQkweDExLCAweGE5LCAweDcwLCAweDAwLCAweDAwLCAweDExLCAweDcwLCAweDAxLAotCTB4MDAsIDB4MTMsIDB4NzAsIDB4MDIsIDB4MjcsIDB4NjUsIDB4ZjIsIDB4NzQsCi0JMHgwZiwgMHgxOCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMiwgMHhlZSwgMHgwNCwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LAotCTB4NGEsIDB4MTcsIDB4ZWUsIDB4ZmMsIDB4ZTgsIDB4MDAsIDB4NGUsIDB4ZjgsCi0JMHgyNywgMHg2NiwgMHhlOCwgMHgwMCwgMHg0ZSwgMHhmOCwgMHgyNywgMHg2OCwKLQkweGU4LCAweDAwLCAweDRlLCAweGY4LCAweDI3LCAweDZjLCAweGU4LCAweDAwLAotCTB4NGUsIDB4ZjgsIDB4MjcsIDB4NmEsIDB4NzcsIDB4MTIsIDB4MjcsIDB4NDAsCi0JMHg3NywgMHgxMSwgMHgyNCwgMHgwMCwgMHg3NywgMHgxYSwgMHgwMCwgMHgxZiwKLQkweGYwLCAweDcyLCAweDExLCAweGRiLCAweDcwLCAweDkyLCAweDAwLCAweDExLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDAzLCAweDAwLCAweGZmLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MGMsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGIsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwKLQkweDZkLCAweGU5LCAweDAwLCAweDBkLCAweGYwLCAweDIwLCAweDI1LCAweGEwLAotCTB4ZjEsIDB4MDAsIDB4MDAsIDB4MDcsIDB4ODksIDB4MTEsIDB4ZjEsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHg4MSwgMHgwMiwgMHg4OCwgMHgxNiwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDE3LCAweDAwLCAweDIwLCAweDc2LCAweDg2LCAweDAwLCAweGZmLAotCTB4NzYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NzYsIDB4MDEsIDB4MDAsIDB4MDYsCi0JMHgxMCwgMHgwMiwgMHhmMCwgMHg3NCwgMHgwNiwgMHg2YywgMHg3NiwgMHgwMCwKLQkweDAwLCAweDAwLCAweDc2LCAweDAxLCAweDAwLCAweDA2LCAweGYyLCAweDc0LAotCTB4MDYsIDB4NmMsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsIDB4MTAsIDB4MDIsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgwZCwgMHg4MCwgMHgwMiwgMHg2ZCwgMHhlOSwKLQkweDAwLCAweDBkLCAweDZkLCAweGVlLCAweDAwLCAweDBkLCAweDZjLCAweGVmLAotCTB4ZmYsIDB4ZmYsIDB4MTEsIDB4ZTgsIDB4ZjAsIDB4NzQsIDB4MGMsIDB4OWQsCi0JMHhlZSwgMHgwNCwgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LCAweDRhLCAweDE3LAotCTB4ZWUsIDB4ZmEsIDB4ODgsIDB4MTEsIDB4MTAsIDB4MGEsIDB4NDksIDB4MTEsCi0JMHhmOCwgMHg0ZCwgMHgxMiwgMHg5ZiwgMHg0OCwgMHgwOCwgMHhmOCwgMHg0NSwKLQkweDEyLCAweDlmLCAweDgwLCAweDA0LCAweDEyLCAweDgxLCAweGY1LCAweDc4LAotCTB4ODksIDB4MTIsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ZTIsCi0JMHhmZiwgMHhiOSwgMHgxMiwgMHg4YSwgMHg2MSwgMHhmOCwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDgwLCAweGY4LCAweDMwLCAweDEyLCAweDhhLCAweDEzLCAweGUxLAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4ZTgsIDB4ZjcsIDB4NzgsIDB4ZjEsIDB4YTAsCi0JMHhmMiwgMHgzMCwgMHgxZiwgMHhmZiwgMHg4OCwgMHgxNywgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEyLCAweDI0LCAweDAwLCAweDc3LCAweDE2LCAweDAwLCAweDAwLAotCTB4NzcsIDB4MTMsIDB4MDAsIDB4MjAsIDB4ZjYsIDB4YjgsIDB4NDgsIDB4MTcsCi0JMHgwOCwgMHhlMiwgMHgwMCwgMHgwMSwgMHhmOCwgMHg0NSwgMHgxMiwgMHg0MiwKLQkweDZkLCAweGVhLCAweDAwLCAweDBkLCAweDZkLCAweDk2LCAweDZjLCAweGViLAotCTB4ZmYsIDB4ZmYsIDB4MTIsIDB4MzQsIDB4ZjAsIDB4NzMsIDB4MTIsIDB4OTAsCi0JMHg1NiwgMHhmOCwgMHgyNywgMHg2YSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDRlLCAweGY4LCAweDI3LCAweDZhLCAweDYwLCAweDgyLCAweDAwLCAweDAxLAotCTB4ZjgsIDB4MzAsIDB4MTIsIDB4NTQsIDB4NzAsIDB4MDAsIDB4MDAsIDB4MTYsCi0JMHhmMiwgMHg3NCwgMHgxMSwgMHgzOCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwKLQkweGYwLCAweDczLCAweDEyLCAweDkwLCAweDcwLCAweDAwLCAweDAwLCAweDE2LAotCTB4ZjIsIDB4NzQsIDB4MTEsIDB4MzgsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsCi0JMHg3MiwgMHgxMCwgMHgyYSwgMHg5ZSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhhZiwKLQkweGY4LCAweDMwLCAweDEyLCAweDZlLCAweDc2LCAweDAwLCAweDAwLCAweDAwLAotCTB4NzYsIDB4MDEsIDB4MDAsIDB4YmMsIDB4NzAsIDB4MDIsIDB4MDAsIDB4MTYsCi0JMHg3NiwgMHgwMywgMHgwMCwgMHgwMCwgMHhmMiwgMHg3NCwgMHgwYywgMHhiOSwKLQkweGY0LCAweDk1LCAweDQ4LCAweDExLCAweGYwLCAweDczLCAweDEyLCAweDkwLAotCTB4MTAsIDB4ZjgsIDB4MjcsIDB4NmUsIDB4ZjgsIDB4NDQsIDB4MTIsIDB4OTAsCi0JMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHg3NiwgMHgwMSwgMHgwMCwgMHhiYywKLQkweDcwLCAweDAyLCAweDAwLCAweDE2LCAweDc2LCAweDAzLCAweDAwLCAweDAwLAotCTB4ZjIsIDB4NzQsIDB4MGMsIDB4YjksIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsCi0JMHhmMCwgMHg3NCwgMHgwYywgMHg1ZSwgMHhmMCwgMHhlMCwgMHhmMCwgMHgxMCwKLQkweDEzLCAweDg4LCAweGY4LCAweDQyLCAweDEyLCAweDkwLCAweDc2LCAweGY4LAotCTB4MjcsIDB4NmUsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsIDB4MTIsIDB4OTAsCi0JMHg1NiwgMHhmOCwgMHgyNywgMHg2NiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDRlLCAweGY4LCAweDI3LCAweDY2LCAweDZkLCAweGU5LCAweDAwLCAweDVlLAotCTB4NTYsIDB4ZjgsIDB4MjcsIDB4NjgsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg2OCwgMHg3MSwgMHgwNCwgMHgwMCwgMHgxMiwKLQkweDZlLCAweGVhLCAweGZmLCAweGZmLCAweDEyLCAweDE4LCAweDcwLCAweDA0LAotCTB4MDAsIDB4MTIsIDB4ZWUsIDB4MDYsIDB4OGEsIDB4MTcsIDB4OGEsIDB4MTYsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmZSwKLQkweDg4LCAweDBlLCAweGY0LCAweDk1LCAweGYwLCAweDY2LCAweDAwLCAweDBkLAotCTB4ZjAsIDB4MDAsIDB4MjUsIDB4YTAsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg3NiwgMHg4MSwgMHgwMCwgMHhmZiwgMHg3NiwgMHgwMCwKLQkweDAwLCAweDAwLCAweDc2LCAweDAxLCAweDAwLCAweDA2LCAweGYyLCAweDc0LAotCTB4MDYsIDB4NmMsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4NzYsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHgwMSwgMHgwMCwgMHgwNiwgMHg0OCwgMHgxMSwKLQkweGYyLCAweDc0LCAweDA2LCAweDZjLCAweGYwLCAweDAwLCAweDAwLCAweDA3LAotCTB4ZWUsIDB4MDIsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHg4OCwgMHgwZSwgMHhmNCwgMHg5NSwgMHhmMCwgMHg2NiwgMHgwMCwgMHgwZCwKLQkweGYwLCAweDAwLCAweDI0LCAweDAwLCAweDg4LCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmYsCi0JMHg3NiwgMHg4MSwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDAzLCAweDAwLCAweGZmLAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHgxMywgMHgwMywgMHg4OCwgMHgxMSwgMHhmYSwgMHg0ZCwgMHgxMiwgMHhlYywKLQkweDcxLCAweDAyLCAweDAwLCAweDEyLCAweGYzLCAweDEwLCAweDAwLCAweDAxLAotCTB4ODksIDB4MWEsIDB4ZjQsIDB4OTUsIDB4ZjAsIDB4NzIsIDB4MTIsIDB4ZWIsCi0JMHg3MCwgMHg5MSwgMHgwMCwgMHgxMiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweGY0LCAweDk1LCAweDRhLCAweDBiLCAweDRhLCAweDBjLCAweDRhLCAweDBkLAotCTB4ZjcsIDB4YjgsIDB4ZWUsIDB4ZmUsIDB4MTAsIDB4ZjgsIDB4MDAsIDB4MDgsCi0JMHgxMSwgMHgwNiwgMHhmMSwgMHhjMCwgMHg4MywgMHgwMCwgMHhmNCwgMHg4NSwKLQkweDExLCAweDA2LCAweGY3LCAweDg1LCAweDgxLCAweDA2LCAweGY2LCAweGI4LAotCTB4ZWMsIDB4MGYsIDB4MWUsIDB4MDYsIDB4NjEsIDB4MDAsIDB4ODAsIDB4MDAsCi0JMHhmOCwgMHgyMCwgMHgxMywgMHgwNSwgMHhmNCwgMHg4NCwgMHhlZSwgMHgwMiwKLQkweDhhLCAweDBkLCAweDhhLCAweDBjLCAweDhhLCAweDBiLCAweGZjLCAweDAwLAotCTB4ZjQsIDB4OTUsIDB4NGEsIDB4MGIsIDB4NGEsIDB4MGMsIDB4NGEsIDB4MGQsCi0JMHhlZSwgMHhmZSwgMHhmNywgMHhiOCwgMHg4MCwgMHgwMCwgMHgxMCwgMHhmOCwKLQkweDAwLCAweDA4LCAweGY0LCAweDg1LCAweDExLCAweDA2LCAweGY3LCAweDg1LAotCTB4ODEsIDB4MDYsIDB4ZjYsIDB4YjgsIDB4ZWMsIDB4MGYsIDB4MWUsIDB4MDYsCi0JMHhmMCwgMHhmMCwgMHg2MSwgMHgwMCwgMHg4MCwgMHgwMCwgMHhmOCwgMHgyMCwKLQkweDEzLCAweDIwLCAweGY0LCAweDg0LCAweGVlLCAweDAyLCAweDhhLCAweDBkLAotCTB4OGEsIDB4MGMsIDB4OGEsIDB4MGIsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwgMHg3NiwgMHg4MSwgMHgyZSwgMHhlYywKLQkweDc3LCAweDExLCAweDAwLCAweDdiLCAweGVlLCAweGZmLCAweDcxLCAweDgxLAotCTB4MDAsIDB4MTEsIDB4ZWUsIDB4MDEsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDEsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4NjIsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4NzYsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHg5MiwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDk0LCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4YjAsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4YjMsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHhiZSwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweGJmLCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4YzEsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4YzMsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHhjNSwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweGM3LCAweDAwLCAweDAwLCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwgMHg0YSwgMHgxNywgMHhlZSwgMHhmZiwKLQkweGY0LCAweDk1LCAweDcxLCAweDA2LCAweDAwLCAweDE2LCAweGZiLCAweDgwLAotCTB4MTYsIDB4YTIsIDB4ODgsIDB4MTcsIDB4ZjQsIDB4OTUsIDB4ZjcsIDB4YjgsCi0JMHgxMCwgMHhmOCwgMHgwMCwgMHgxNywgMHhmMCwgMHgxMCwgMHgwMCwgMHgwMiwKLQkweGZhLCAweDQ2LCAweDEzLCAweDg4LCAweDc3LCAweDExLCAweDAwLCAweDAwLAotCTB4MTAsIDB4ZjgsIDB4MDAsIDB4MTcsIDB4ZjAsIDB4MTAsIDB4MDAsIDB4MDIsCi0JMHhmOCwgMHg0NSwgMHgxMywgMHhmOSwgMHgxMCwgMHhmOCwgMHgwMCwgMHgxNywKLQkweGY4LCAweDQ1LCAweDE0LCAweDM5LCAweDEwLCAweGY4LCAweDAwLCAweDE3LAotCTB4ZjAsIDB4MTAsIDB4MDAsIDB4MDEsIDB4ZjgsIDB4NDUsIDB4MTQsIDB4MWYsCi0JMHhmMCwgMHg3MywgMHgxNCwgMHg1MiwgMHgxMCwgMHhmOCwgMHgwMCwgMHgxNywKLQkweGYwLCAweDEwLCAweDAwLCAweDAzLCAweGY4LCAweDQ1LCAweDEzLCAweGQzLAotCTB4MTAsIDB4ZjgsIDB4MDAsIDB4MTcsIDB4ZjAsIDB4MTAsIDB4MDAsIDB4MDYsCi0JMHhmOCwgMHg0NCwgMHgxNCwgMHg1MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg3YiwKLQkweDcxLCAweDgyLCAweDAwLCAweDE0LCAweDYxLCAweGU0LCAweDAwLCAweDA3LAotCTB4MDAsIDB4NDAsIDB4ZjgsIDB4MzAsIDB4MTQsIDB4NTIsIDB4NDksIDB4MTQsCi0JMHg0OCwgMHgxNywgMHhmNiwgMHgwMCwgMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEzLCAweDAwLCAweDU1LCAweDc3LCAweDExLCAweDAwLCAweDU3LAotCTB4NmQsIDB4ZWEsIDB4MDAsIDB4M2IsIDB4ZTUsIDB4MDEsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwNiwgMHg4MCwgMHg4MSwgMHg0OCwgMHgxNCwgMHgwMCwgMHhmOCwKLQkweDAwLCAweDE3LCAweDg4LCAweDEyLCAweGY0LCAweDk1LCAweDc3LCAweDExLAotCTB4MDAsIDB4NTUsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4NDAsIDB4ODAsIDB4ODEsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwgMHgwMCwgMHgwNywKLQkweDgwLCAweDgxLCAweDc3LCAweDExLCAweDAwLCAweDU1LCAweDEwLCAweGUyLAotCTB4MDAsIDB4NDUsIDB4ODAsIDB4ODEsIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDgsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHg1NywgMHg4MCwgMHg4MSwgMHg3NywgMHgxMSwKLQkweDAwLCAweDU1LCAweDEwLCAweGUyLCAweDAwLCAweDRhLCAweDgwLCAweDgxLAotCTB4NzcsIDB4MTEsIDB4MDAsIDB4NTcsIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDksCi0JMHg4MCwgMHg4MSwgMHhmMiwgMHg3MywgMHgxNCwgMHg1MiwgMHg3NywgMHgxMSwKLQkweDAzLCAweGMwLCAweDc3LCAweDEyLCAweDAwLCAweDdiLCAweDEwLCAweDgyLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4ODgsIDB4MTMsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg5NiwgMHgxYiwgMHhmOCwgMHgzMCwgMHgxNCwgMHg1MiwKLQkweDEwLCAweGUzLCAweDAwLCAweDM1LCAweDc3LCAweDEyLCAweDAwLCAweDU1LAotCTB4ODAsIDB4ODIsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTcsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwNCwgMHg4MCwgMHg4MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NSwKLQkweDEwLCAweGUzLCAweDAwLCAweDM3LCAweDgwLCAweDgyLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTcsIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDUsIDB4ODAsIDB4ODIsCi0JMHg0OCwgMHgxMSwgMHhmMCwgMHg0MCwgMHgwMCwgMHgxMCwgMHhmMiwgMHg3MywKLQkweDE0LCAweDUwLCAweGYwLCAweDQwLCAweDAwLCAweDIwLCAweDc3LCAweDEyLAotCTB4MDAsIDB4N2IsIDB4MTAsIDB4ODIsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDcsCi0JMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg5NiwgMHgwZCwKLQkweGY4LCAweDMwLCAweDE0LCAweDUyLCAweDEwLCAweGUyLCAweDAwLCAweDM0LAotCTB4NzcsIDB4MTMsIDB4MDAsIDB4NTUsIDB4ODAsIDB4ODMsIDB4NzcsIDB4MTMsCi0JMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwgMHgwMCwgMHgwMiwgMHg4MCwgMHg4MywKLQkweDEwLCAweGUyLCAweDAwLCAweDM2LCAweDc3LCAweDEyLCAweDAwLCAweDU1LAotCTB4ODAsIDB4ODIsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTcsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwMywgMHg4MCwgMHg4MiwgMHg0OCwgMHgxMSwgMHhmMCwgMHg0MCwKLQkweDAwLCAweDA0LCAweGYyLCAweDczLCAweDE0LCAweDUwLCAweGYwLCAweDQwLAotCTB4MDAsIDB4MDgsIDB4NzcsIDB4MTIsIDB4MDAsIDB4N2IsIDB4MTAsIDB4ODIsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgwNywgMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwKLQkweGY0LCAweDk1LCAweDk2LCAweDBlLCAweGY4LCAweDMwLCAweDE0LCAweDUyLAotCTB4MTAsIDB4ZTIsIDB4MDAsIDB4MzMsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTUsCi0JMHg4MCwgMHg4MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwKLQkweDAwLCAweDAxLCAweDgwLCAweDgyLCAweDQ4LCAweDExLCAweGYyLCAweDczLAotCTB4MTQsIDB4NTAsIDB4ZjAsIDB4NDAsIDB4MDAsIDB4MDIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg3YiwgMHgxMCwgMHg4MiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNywKLQkweDg4LCAweDEyLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDk2LCAweDBmLAotCTB4ZjgsIDB4MzAsIDB4MTQsIDB4NTIsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MzIsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHg1NSwgMHg3NywgMHgxMywgMHgwMCwgMHg1NywKLQkweDgwLCAweDgyLCAweDQ4LCAweDExLCAweGU3LCAweDYyLCAweGYwLCAweDQwLAotCTB4MDAsIDB4MDEsIDB4ZTUsIDB4MDEsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHg3YiwgMHg0OCwgMHgxMSwgMHg3MSwgMHg4MiwKLQkweDAwLCAweDEyLCAweDFhLCAweGUyLCAweDAwLCAweDA3LCAweDgwLCAweGUyLAotCTB4MDAsIDB4MDcsIDB4ZjksIDB4ODAsIDB4MTYsIDB4OWEsIDB4ZWUsIDB4MDEsCi0JMHg4YSwgMHgxNywgMHg0OCwgMHgxMSwgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDg4LCAweDExLCAweDc3LCAweDBlLAotCTB4MDAsIDB4MDUsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTUsIDB4ZTgsIDB4MDQsCi0JMHhmNiwgMHhiOCwgMHgyOCwgMHhlMSwgMHgwMCwgMHgwMiwgMHhlZSwgMHhmZiwKLQkweDgwLCAweDgyLCAweDc3LCAweDEyLCAweDAwLCAweDU3LCAweGYwLCAweDIwLAotCTB4ODAsIDB4MDAsIDB4ZWUsIDB4MDEsIDB4MWEsIDB4ODIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NywgMHg4MCwgMHg4MiwgMHhlOCwgMHgwMSwgMHgzMiwgMHhlMSwKLQkweDAwLCAweDAyLCAweGY1LCAweDgyLCAweDc3LCAweDExLCAweDAwLCAweDU0LAotCTB4ZjYsIDB4OTMsIDB4MTgsIDB4ODEsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTQsCi0JMHhmMiwgMHhhMCwgMHg4MCwgMHg4MSwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDRhLCAweDE2LCAweGY0LCAweDk1LAotCTB4NzEsIDB4MDQsIDB4MDAsIDB4MTEsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsCi0JMHg4OCwgMHgxNiwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NSwKLQkweDEwLCAweGU2LCAweDAwLCAweDAzLCAweDgwLCAweDgyLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTYsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4NzcsIDB4MTMsCi0JMHgwMCwgMHg1NiwgMHg4MCwgMHg4MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NiwKLQkweDEwLCAweGUxLCAweDAwLCAweDAzLCAweDgwLCAweDgyLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDQsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTYsIDB4ODAsIDB4ODIsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHg1NiwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwMSwKLQkweDgwLCAweDgyLCAweGU3LCAweDEyLCAweGU1LCAweDAxLCAweGY5LCAweDgwLAotCTB4MTYsIDB4OWEsIDB4OGEsIDB4MTYsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwgMHg0YSwgMHgxNywgMHhlZSwgMHhmOSwKLQkweDc3LCAweDExLCAweDAwLCAweDdiLCAweDc2LCAweDAwLCAweDAwLCAweDE2LAotCTB4NzYsIDB4MDEsIDB4MDAsIDB4MTcsIDB4NzYsIDB4MDIsIDB4MDAsIDB4MWEsCi0JMHg3NiwgMHgwMywgMHgwMCwgMHgxYiwgMHg3NiwgMHgwNCwgMHgwMCwgMHgxYywKLQkweDc2LCAweDA1LCAweDAwLCAweDFkLCAweDcxLCAweDgxLCAweDAwLCAweDE3LAotCTB4NzEsIDB4ZTcsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTEsIDB4MTAsIDB4ODEsCi0JMHhmOCwgMHg0NCwgMHgxNCwgMHhkZiwgMHhmOSwgMHg4MCwgMHgxNiwgMHg1MywKLQkweGY2LCAweGI4LCAweGZiLCAweDgwLCAweDE1LCAweDg1LCAweGYwLCAweDIwLAotCTB4ZmYsIDB4ZmYsIDB4ZjYsIDB4YjgsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4MDgsCi0JMHhmMCwgMHgyMCwgMHhmZiwgMHhmZiwgMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwKLQkweDcxLCAweDgxLCAweDAwLCAweDE3LCAweDc2LCAweGU3LCAweDAwLCAweDA2LAotCTB4MDAsIDB4MDEsIDB4NDgsIDB4MTcsIDB4NzcsIDB4MTYsIDB4MDAsIDB4MDAsCi0JMHg3NywgMHgxMCwgMHgwMCwgMHgwNCwgMHg3NywgMHgxNSwgMHgwMCwgMHgwMywKLQkweDc3LCAweDE0LCAweDAwLCAweDAyLCAweDc3LCAweDEzLCAweDAwLCAweDAxLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MzksIDB4NzYsIDB4ZTcsIDB4MDAsIDB4MDgsCi0JMHgwMCwgMHgxZiwgMHg3NiwgMHhlNywgMHgwMCwgMHgwNywgMHgwMCwgMHgwMCwKLQkweDg4LCAweDBlLCAweDc3LCAweDFhLCAweDAwLCAweDA1LCAweDQ4LCAweDE3LAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDksIDB4ODgsIDB4MTIsIDB4NDgsIDB4MTgsCi0JMHg4OCwgMHgxOSwgMHhlOCwgMHgwMCwgMHhmMCwgMHg3MiwgMHgxNSwgMHgyYywKLQkweDczLCAweDE5LCAweDAwLCAweDExLCAweDc2LCAweDgyLCAweDAwLCAweDAwLAotCTB4MTEsIDB4OTEsIDB4NzMsIDB4MTEsIDB4MDAsIDB4MTksIDB4NzAsIDB4ZTIsCi0JMHgwMCwgMHgwMywgMHgwMCwgMHgxNiwgMHg3MCwgMHhlMiwgMHgwMCwgMHgwNCwKLQkweDAwLCAweDEzLCAweDcwLCAweGUyLCAweDAwLCAweDA1LCAweDAwLCAweDE0LAotCTB4ODEsIDB4ZTIsIDB4MDAsIDB4MDEsIDB4NzAsIDB4ZTIsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxNSwgMHg3MCwgMHhlMiwgMHgwMCwgMHgwNywgMHgwMCwgMHgxMCwKLQkweDgwLCAweGUyLCAweDAwLCAweDAyLCAweDczLCAweDBlLCAweDAwLCAweDExLAotCTB4ZjEsIDB4MDAsIDB4MDAsIDB4MWUsIDB4NmQsIDB4ZWUsIDB4MDAsIDB4MDUsCi0JMHg2ZCwgMHhlYiwgMHgwMCwgMHgwNSwgMHg2ZCwgMHhlYywgMHgwMCwgMHgwNSwKLQkweDZkLCAweGVkLCAweDAwLCAweDA1LCAweDZkLCAweGU4LCAweDAwLCAweDA1LAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4ODEsIDB4OTEsIDB4NmQsIDB4ZWEsCi0JMHgwMCwgMHgwOCwgMHg3MywgMHgxMSwgMHgwMCwgMHgwZSwgMHhlZSwgMHgwNywKLQkweDc2LCAweGU3LCAweDAwLCAweDQxLCAweDAwLCAweDI0LCAweDc2LCAweGU3LAotCTB4MDAsIDB4NDYsIDB4MDAsIDB4MjUsIDB4NzYsIDB4ZTcsIDB4MDAsIDB4NGIsCi0JMHgwMCwgMHgyNiwgMHg3NiwgMHhlNywgMHgwMCwgMHg1MCwgMHgwMCwgMHgyNywKLQkweDhhLCAweDE3LCAweDhhLCAweDE2LCAweDhhLCAweDExLCAweGY0LCAweGU0LAotCTB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsIDB4ZWUsIDB4ZmUsIDB4ODgsIDB4MTEsCi0JMHg1NiwgMHgwNiwgMHg0ZSwgMHgwMCwgMHhmOSwgMHg4MCwgMHgxNiwgMHhhMiwKLQkweGY3LCAweGI4LCAweDEwLCAweGY4LCAweDAwLCAweDExLCAweGYwLCAweDEwLAotCTB4ZmYsIDB4ZmYsIDB4ZmEsIDB4NDUsIDB4MTUsIDB4NjAsIDB4NzcsIDB4MTYsCi0JMHhmZiwgMHhmZiwgMHg3NywgMHgxMiwgMHgwMCwgMHg3YiwgMHg0OSwgMHgxMSwKLQkweDEwLCAweDgyLCAweGY2LCAweDAzLCAweGYwLCAweDAwLCAweDAwLCAweDA5LAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsCi0JMHhmOCwgMHg0NCwgMHgxNSwgMHg3MSwgMHhmMiwgMHg3MywgMHgxNSwgMHg3MSwKLQkweGY0LCAweDk1LCAweGU3LCAweDE2LCAweDc3LCAweDExLCAweDAwLCAweDdiLAotCTB4MTAsIDB4ODEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDksIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMiwgMHgwMCwgMHgwNiwgMHgxMCwgMHg4MSwKLQkweGY4LCAweDQ1LCAweDE1LCAweDVjLCAweDZlLCAweGVhLCAweGZmLCAweGZmLAotCTB4MTUsIDB4NjksIDB4NmQsIDB4ZTksIDB4MDAsIDB4MDgsIDB4NzYsIDB4ODYsCi0JMHgwMCwgMHgwMSwgMHhlOSwgMHgwMSwgMHg1NiwgMHgwMCwgMHhmMSwgMHg4MCwKLQkweDEwLCAweGY4LCAweDAwLCAweDBiLCAweGY4LCAweDQ1LCAweDE1LCAweDdlLAotCTB4ZmIsIDB4ODAsIDB4MTUsIDB4ODUsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTYsCi0JMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHhlZSwgMHgwMiwgMHg0OCwgMHgxNiwKLQkweDhhLCAweDE2LCAweDhhLCAweDExLCAweGY0LCAweGU0LCAweDRhLCAweDExLAotCTB4ZWUsIDB4ZmYsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHhmZiwgMHhmZiwgMHhmNCwgMHhhOSwKLQkweGY4LCAweDMwLCAweDE1LCAweGM0LCAweDEwLCAweGUxLCAweDAwLCAweDAzLAotCTB4NzcsIDB4MTIsIDB4MDAsIDB4NTUsIDB4ODAsIDB4ODIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMiwKLQkweDAwLCAweDU2LCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTYsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMiwKLQkweDAwLCAweDU2LCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDIsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDgsIDB4MzIsIDB4ZjgsCi0JMHgwMCwgMHgwOCwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NCwgMHhlOCwgMHgwMSwKLQkweGY0LCAweDgyLCAweGY0LCAweDkzLCAweDE4LCAweDgyLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTQsIDB4ZjAsIDB4NDAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4ODIsCi0JMHgxMCwgMHhlMSwgMHgwMCwgMHgwMSwgMHhmOSwgMHg4MCwgMHgxNiwgMHg3NiwKLQkweDEwLCAweGUxLCAweDAwLCAweDAxLCAweGY5LCAweDgwLCAweDE2LCAweDY2LAotCTB4ZjAsIDB4NzMsIDB4MTYsIDB4MDMsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsCi0JMHg3MSwgMHg4MSwgMHgwMCwgMHgxMSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNywKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDksIDB4ZjksIDB4ODAsIDB4MTUsIDB4ODUsIDB4NzcsIDB4MTEsCi0JMHgwMCwgMHg3YiwgMHg3MSwgMHg4MSwgMHgwMCwgMHgxMSwgMHgxMCwgMHhlMSwKLQkweDAwLCAweDA5LCAweGZiLCAweDgwLCAweDE1LCAweDg1LCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDgsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4NzEsIDB4ODEsCi0JMHgwMCwgMHgxMSwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwOSwgMHhmYiwgMHg4MCwKLQkweDE1LCAweDg1LCAweGYwLCAweDAwLCAweDAwLCAweDEwLCAweDc3LCAweDExLAotCTB4MDAsIDB4N2IsIDB4NzEsIDB4ODEsIDB4MDAsIDB4MTEsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwOSwgMHhmYiwgMHg4MCwgMHgxNSwgMHg4NSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDE4LCAweDc3LCAweDExLCAweDAwLCAweDdiLCAweDcxLCAweDgxLAotCTB4MDAsIDB4MTEsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MDksIDB4ZmIsIDB4ODAsCi0JMHgxNSwgMHg4NSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgyMCwgMHg3NywgMHgxMSwKLQkweDAwLCAweDdiLCAweDcxLCAweDgxLCAweDAwLCAweDExLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDksIDB4ZmIsIDB4ODAsIDB4MTUsIDB4ODUsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgyOCwgMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHhlZSwgMHgwMSwKLQkweDhhLCAweDExLCAweGY0LCAweGU0LCAweDRhLCAweDExLCAweGVlLCAweGZmLAotCTB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMCwgMHhmZiwgMHhmZiwgMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwKLQkweDE2LCAweDQxLCAweDc3LCAweDExLCAweDAwLCAweDU1LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MWUsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc3LCAweDExLCAweDAwLCAweDU2LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc3LCAweDExLCAweDAwLCAweDU2LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc3LCAweDExLCAweDAwLCAweDU2LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4ZjIsIDB4NzMsCi0JMHgxNiwgMHg0ZSwgMHg3NiwgMHg4MSwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwKLQkweDAwLCAweDdiLCAweDcxLCAweDgxLCAweDAwLCAweDExLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDcsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsCi0JMHgxMCwgMHhlMSwgMHgwMCwgMHgzOSwgMHhmOSwgMHg4MCwgMHgxNiwgMHgwOCwKLQkweGY5LCAweDgwLCAweDE2LCAweDlhLCAweGVlLCAweDAxLCAweDhhLCAweDExLAotCTB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsCi0JMHgxMCwgMHg4MSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNCwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDEwLCAweDgxLCAweGZhLCAweDQ0LAotCTB4MTYsIDB4NjMsIDB4ZjQsIDB4OTUsIDB4ZWUsIDB4ZmYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMSwgMHhlZSwgMHgwMSwgMHg4YSwgMHgxMSwgMHhmNCwgMHhlNCwKLQkweGYwLCAweDEwLCAweDAwLCAweDEwLCAweDRhLCAweDExLCAweDMyLCAweGY4LAotCTB4MDAsIDB4MDgsIDB4ZWUsIDB4ZmYsIDB4NzcsIDB4MTEsIDB4MDAsIDB4MDEsCi0JMHhlOCwgMHgwMSwgMHhlZSwgMHgwMSwgMHhmNCwgMHg4MiwgMHgxYSwgMHg4MSwKLQkweDgwLCAweDgxLCAweDhhLCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweGU0LAotCTB4ZjAsIDB4MTAsIDB4MDAsIDB4MTAsIDB4NGEsIDB4MTEsIDB4MzIsIDB4ZjgsCi0JMHgwMCwgMHgwOCwgMHhlZSwgMHhmZiwgMHhlOCwgMHgwMSwgMHg3NywgMHgxMSwKLQkweDAwLCAweDAwLCAweGY0LCAweDgyLCAweGVlLCAweDAxLCAweGY0LCAweDkzLAotCTB4MTgsIDB4ODEsIDB4ODAsIDB4ODEsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHhmMCwgMHgxMCwgMHgwMCwgMHgxMCwKLQkweDc3LCAweDExLCAweDAwLCAweDAwLCAweDMyLCAweGY4LCAweDAwLCAweDA4LAotCTB4ZWUsIDB4ZmYsIDB4MTEsIDB4ODEsIDB4ZTgsIDB4MDEsIDB4ZWUsIDB4MDEsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHgwMCwgMHhmNCwgMHg4MiwgMHhmMiwgMHhhMCwKLQkweDgwLCAweDgxLCAweDhhLCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweGU0LAotCTB4ZjIsIDB4NzMsIDB4MTYsIDB4OWUsIDB4ZjYsIDB4YmIsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwKLQkweGYyLCAweDczLCAweDE2LCAweGE2LCAweGY3LCAweGJiLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwgMHhmNCwgMHg5NSwgMHg3MSwgMHgwNCwKLQkweDAwLCAweDE2LCAweGZiLCAweDgwLCAweDE2LCAweGEyLCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwZSwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwZSwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDgwLCAweDgyLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwZCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwKLQkweDEwLCAweGU2LCAweDAwLCAweDBkLCAweDgwLCAweDgyLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MGMsCi0JMHgxMCwgMHhlNiwgMHgwMCwgMHgwYywgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDgwLCAweDgyLCAweDcxLCAweGUxLCAweDAwLCAweDA1LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MGIsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwYiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwKLQkweDgwLCAweDgyLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MGEsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwYSwgMHg4MCwgMHg4MiwKLQkweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MDAsIDB4MDksIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDksIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDA4LAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwOCwgMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDA3LCAweDEwLCAweGU2LAotCTB4MDAsIDB4MDcsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsCi0JMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDA2LCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDYsIDB4ODAsIDB4ODIsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDA1LCAweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLAotCTB4MTAsIDB4ZTYsIDB4MDAsIDB4MDUsIDB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwNCwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDEwLCAweGU2LAotCTB4MDAsIDB4MDQsIDB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMywgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDEwLCAweGU2LCAweDAwLCAweDAzLAotCTB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwMiwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwMiwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDgwLCAweDgyLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwMSwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwMSwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDgwLCAweDgyLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMywgMHhlNywgMHg2MiwKLQkweGU1LCAweDAxLCAweGY5LCAweDgwLCAweDE2LCAweDlhLCAweDhhLCAweDE2LAotCTB4OGEsIDB4MTEsIDB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwKLQkweDAwLCAweDEyLCAweGVlLCAweGZmLCAweDc2LCAweDgyLCAweDAwLCAweDAwLAotCTB4ZWUsIDB4MDEsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTEsCi0JMHg2OSwgMHg4MSwgMHgwMCwgMHgwMSwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDg4LCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHhlZSwgMHhmZiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMSwgMHhlZSwgMHgwMSwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDExLCAweDY5LCAweDgxLAotCTB4MDAsIDB4MDEsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwgMHgxMCwgMHg4MSwKLQkweGYwLCAweDAwLCAweDAwLCAweDk0LCAweDg4LCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsIDB4ZmEsIDB4NDQsIDB4MTcsIDB4OWMsCi0JMHhmNCwgMHg5NSwgMHhlZSwgMHhmZiwgMHhmOSwgMHg4MCwgMHgxNiwgMHg1MywKLQkweDc3LCAweDExLCAweDAwLCAweDdiLCAweDEwLCAweDgxLCAweGYwLCAweDAwLAotCTB4MDAsIDB4OTQsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsCi0JMHg3NiwgMHg4MSwgMHgwMCwgMHgwMSwgMHhlZSwgMHgwMSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDAyLAotCTB4MDAsIDB4MjEsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MjAsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgyMywgMHg3NiwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDIyLCAweDc2LCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MzgsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDcsIDB4MDAsIDB4MzksCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwOCwgMHgwMCwgMHgxNSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDA5LCAweDAwLCAweDE0LCAweDc2LCAweGUxLCAweDAwLCAweDBhLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGIsIDB4MDAsIDB4NDEsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwYywgMHgwMCwgMHg0MCwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDBkLCAweDAwLCAweDQzLCAweDc2LCAweGUxLCAweDAwLCAweDBlLAotCTB4MDAsIDB4NDIsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGYsIDB4MDAsIDB4NDgsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgxMCwgMHgwMCwgMHg0OSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDExLCAweDAwLCAweDFiLCAweDc2LCAweGUxLCAweDAwLCAweDEyLAotCTB4MDAsIDB4MWEsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHhlZSwgMHhmZCwgMHg4OCwgMHgxMSwgMHg1NiwgMHgwNiwKLQkweDRlLCAweDAwLCAweGY5LCAweDgwLCAweDE2LCAweGEyLCAweDc3LCAweDEyLAotCTB4MDAsIDB4N2IsIDB4NzcsIDB4MGUsIDB4MDAsIDB4MDksIDB4MTAsIDB4ODIsCi0JMHgyOCwgMHhmOCwgMHgwMCwgMHgxMSwgMHhmMCwgMHgwMCwgMHgwMCwgMHg5NSwKLQkweDg4LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDEwLCAweDgxLAotCTB4ZjgsIDB4NDUsIDB4MTcsIDB4ZjAsIDB4ZjIsIDB4NzMsIDB4MTcsIDB4ZmQsCi0JMHg3NywgMHgxMSwgMHhmZiwgMHhmZiwgMHg3NiwgMHg4MSwgMHgwMCwgMHgwMSwKLQkweGU5LCAweDAxLCAweDU2LCAweDAwLCAweGYxLCAweDgwLCAweDEwLCAweGY4LAotCTB4MDAsIDB4MGIsIDB4ZjgsIDB4NDUsIDB4MTcsIDB4ZmQsIDB4ZmIsIDB4ODAsCi0JMHgxOCwgMHgxMCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwgMHhmOSwgMHg4MCwKLQkweDE2LCAweDlhLCAweGVlLCAweDAzLCAweDQ4LCAweDExLCAweDhhLCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhlZSwgMHhmZiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMSwKLQkweDAwLCAweDExLCAweGVlLCAweDAxLCAweDEwLCAweDgxLCAweDhhLCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmYsCi0JMHhmYiwgMHg4MCwgMHgxNiwgMHhhMiwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEwLCAweGZmLCAweGZmLCAweGY0LCAweGE5LCAweGY4LCAweDMwLAotCTB4MTgsIDB4YzMsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDEsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDAwLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MDIsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAzLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDA0LCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwNSwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwNiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAxLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDcsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDIwLCAweDAwLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MDgsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDA5LAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDBhLCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwYiwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwYywgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MGQsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDAwLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MGUsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHgxMCwgMHhlMSwKLQkweDAwLCAweDA3LCAweGY5LCAweDgwLCAweDE2LCAweDc2LCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDgsIDB4ZjksIDB4ODAsIDB4MTYsIDB4NzYsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwNywgMHhmOSwgMHg4MCwgMHgxNiwgMHg2NiwgMHgxMCwgMHhlMSwKLQkweDAwLCAweDA4LCAweGY5LCAweDgwLCAweDE2LCAweDY2LCAweGYwLCAweDczLAotCTB4MTgsIDB4ZDEsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4MTAsIDB4ODEsCi0JMHhmYiwgMHg4MCwgMHgxOCwgMHgxMCwgMHhmMCwgMHgwMCwgMHgwMCwgMHg5NSwKLQkweDc3LCAweDExLCAweDAwLCAweDdiLCAweDEwLCAweDgxLCAweGZiLCAweDgwLAotCTB4MTgsIDB4MTAsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4OWUsIDB4ZjksIDB4ODAsCi0JMHgxNiwgMHg5YSwgMHhlZSwgMHgwMSwgMHg4YSwgMHgxMSwgMHhmNCwgMHhlNCwKLQkweDRhLCAweDExLCAweDg4LCAweDExLCAweGVlLCAweGZmLCAweGY0LCAweDk1LAotCTB4MTAsIDB4MDQsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MTEsCi0JMHhlZSwgMHgwMSwgMHg4MCwgMHg4MSwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDRhLCAweDE2LCAweGY0LCAweDk1LAotCTB4NzEsIDB4MDQsIDB4MDAsIDB4MTYsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsCi0JMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDEwLCAweDEwLCAweGU2LAotCTB4MDAsIDB4MDEsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MTIsCi0JMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgxMiwKLQkweDEwLCAweGU2LCAweDAwLCAweDAyLCAweDgwLCAweDgyLCAweGU3LCAweDYyLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MTMsIDB4ZTUsIDB4MDEsCi0JMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDg4LCAweDExLCAweGVlLCAweGZmLAotCTB4ZWUsIDB4MDEsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4OGEsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwKLQkweDAwLCAweDdiLCAweDEwLCAweDgxLCAweGYwLCAweDAwLCAweDAwLCAweGIzLAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsCi0JMHhmYSwgMHg0NCwgMHgxOSwgMHgyYSwgMHhmNCwgMHg5NSwgMHhlZSwgMHhmZiwKLQkweGY5LCAweDgwLCAweDE2LCAweDUzLCAweDc3LCAweDExLCAweDAwLCAweDdiLAotCTB4MTAsIDB4ODEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4YjMsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3NiwgMHg4MSwgMHgwMCwgMHgwMSwKLQkweGVlLCAweDAxLCAweDc2LCAweGUxLCAweDAwLCAweDAxLCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MTMsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwMywgMHgwMCwgMHgyNiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwKLQkweDAwLCAweDI1LCAweDc2LCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDI0LAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwNywgMHgwMCwgMHgxNywgMHg3NiwgMHhlMSwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDMyLCAweDc2LCAweGUxLCAweDAwLCAweDA5LCAweDAwLCAweDMxLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MGEsIDB4MDAsIDB4MzAsIDB4OGEsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwKLQkweDRhLCAweDE3LCAweGVlLCAweGZmLCAweGY0LCAweDk1LCAweDcxLCAweDA2LAotCTB4MDAsIDB4MTcsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNywgMHhiOCwgMHgxMCwgMHhmOCwgMHgwMCwgMHgxMSwKLQkweGYwLCAweDEwLCAweGZmLCAweGZmLCAweGZhLCAweDQ1LCAweDE5LCAweDczLAotCTB4NzcsIDB4MTYsIDB4ZmYsIDB4ZmYsIDB4NzcsIDB4MTIsIDB4MDAsIDB4N2IsCi0JMHg3NywgMHgwZSwgMHgwMCwgMHgwNSwgMHgxMCwgMHg4MiwgMHgyOCwgMHhmOCwKLQkweDAwLCAweDExLCAweGYwLCAweDAwLCAweDAwLCAweGI0LCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsIDB4ZjgsIDB4NDQsCi0JMHgxOSwgMHg4NCwgMHhmMiwgMHg3MywgMHgxOSwgMHg4NCwgMHhmNCwgMHg5NSwKLQkweGU3LCAweDE2LCAweDc3LCAweDExLCAweDAwLCAweDdiLCAweDEwLCAweDgxLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4YjQsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHgwMiwgMHgxMCwgMHg4MSwgMHhmOCwgMHg0NSwKLQkweDE5LCAweDZmLCAweDZlLCAweGVhLCAweGZmLCAweGZmLCAweDE5LCAweDdjLAotCTB4NmQsIDB4ZTksIDB4MDAsIDB4MDUsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MTcsCi0JMHgwMCwgMHgwMSwgMHhmYSwgMHgyMCwgMHgxOSwgMHg4ZiwgMHg3NiwgMHg4NiwKLQkweDAwLCAweDAxLCAweGZiLCAweDgwLCAweDE5LCAweDk3LCAweGY0LCAweDk1LAotCTB4NDgsIDB4MTYsIDB4ZjksIDB4ODAsIDB4MTYsIDB4OWEsIDB4ZWUsIDB4MDEsCi0JMHg4YSwgMHgxNywgMHg0OCwgMHgxNiwgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweGVlLCAweGZmLCAweGZiLCAweDgwLAotCTB4MTYsIDB4YTIsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsCi0JMHhmZiwgMHhmZiwgMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwgMHgxOSwgMHhjYywKLQkweDcxLCAweGUxLCAweDAwLCAweDAyLCAweDAwLCAweDEyLCAweDY5LCAweDgyLAotCTB4MDAsIDB4MTAsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MTIsCi0JMHg2OCwgMHg4MiwgMHhmNywgMHhmZiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDEyLCAweDY4LCAweDgyLCAweGZiLCAweGZmLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDIsIDB4MDAsIDB4MTIsIDB4NjgsIDB4ODIsIDB4ZmYsIDB4ZjAsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweGZmLCAweGZmLCAweDcxLCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4ZmYsIDB4ZmYsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDIsCi0JMHgwMCwgMHgxMiwgMHg2OSwgMHg4MiwgMHgwMCwgMHgyMCwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDAyLCAweDAwLCAweDExLCAweGYyLCAweDczLCAweDE5LCAweGRhLAotCTB4NjgsIDB4ODEsIDB4ZmYsIDB4ZWYsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsCi0JMHgxMCwgMHg4MSwgMHhmYiwgMHg4MCwgMHgxOSwgMHg5NywgMHhmMCwgMHgwMCwKLQkweDAwLCAweGI0LCAweDc3LCAweDExLCAweDAwLCAweDdiLCAweDEwLCAweDgxLAotCTB4ZmIsIDB4ODAsIDB4MTksIDB4OTcsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4YjksCi0JMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHhlZSwgMHgwMSwgMHg4YSwgMHgxMSwKLQkweGY0LCAweGU0LCAweDAwLCAweGE0LCAweDAwLCAweDAwLCAweDE5LCAweGRmLAotCTB4MDAsIDB4MDEsIDB4MmEsIDB4ZTYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHgyYSwgMHhlNywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgyYSwgMHgxMiwKLQkweDBjLCAweDAxLCAweGMzLCAweDRmLCAweDAwLCAweDAwLCAweDAwLCAweDAxLAotCTB4MmEsIDB4MTUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MmEsIDB4MTYsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxOSwgMHgyYSwgMHg1ZCwKLQkweDAwLCAweDQzLCAweDAwLCAweDZmLCAweDAwLCAweDcwLCAweDAwLCAweDc5LAotCTB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjgsCi0JMHgwMCwgMHg3NCwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NCwgMHgwMCwgMHg2NSwKLQkweDAwLCAweDYzLCAweDAwLCAweDY4LCAweDAwLCAweDZlLCAweDAwLCAweDZmLAotCTB4MDAsIDB4NTQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NmUsCi0JMHgwMCwgMHg2NCwgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MSwgMHgwMCwgMHg0NywKLQkweDAwLCAweDAwLCAweDAwLCAweDA0LCAweDJhLCAweDc2LCAweDAwLCAweDMwLAotCTB4MDAsIDB4MmUsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MGMsCi0JMHgyYSwgMHg3YSwgMHgwMCwgMHg0NiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg2MiwKLQkweDAwLCAweDIwLCAweDAwLCAweDMyLCAweDAwLCAweDM3LCAweDAwLCAweDIwLAotCTB4MDAsIDB4MzIsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MzEsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwOSwgMHgyYSwgMHg4NiwgMHgwMCwgMHgzMSwKLQkweDAwLCAweDM0LCAweDAwLCAweDNhLCAweDAwLCAweDMzLCAweDAwLCAweDM1LAotCTB4MDAsIDB4M2EsIDB4MDAsIDB4MzMsIDB4MDAsIDB4MzMsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwZiwgMHgyYSwgMHg4ZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAxLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDJhLCAweDllLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDEsIDB4MmEsIDB4OWYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHgyYSwgMHhhMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgyYSwgMHhhMSwKLQkweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDJhLCAweGEyLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDEsIDB4MjksIDB4N2UsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsCi0JMHgyOSwgMHg4MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDI5LCAweDgyLCAweGZmLCAweGZmLCAweDAwLCAweDAxLCAweDJhLCAweGE3LAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDUsIDB4MmEsIDB4YTgsIDB4NzEsIDB4NDEsCi0JMHgyMCwgMHgwMCwgMHgyMCwgMHgwMCwgMHgwMCwgMHgyMywgMHgwNCwgMHgwMCwKLQkweDAwLCAweDBhLCAweDJhLCAweGFkLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDBmLCAweDJhLCAweGI3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4NDAsIDB4MDAsIDB4YTAsIDB4ODIsIDB4NDAsCi0JMHgwMCwgMHgwOCwgMHgzMCwgMHg3ZiwgMHgwMCwgMHg4MCwgMHgwMSwgMHg4MCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MjcsIDB4NmUsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHgyNywgMHg2ZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDA5LCAweDAwLCAweDAwLCAweDFhLCAweDgzLCAweDA0LCAweGU4LAotCTB4MDQsIDB4Y2YsIDB4MDQsIDB4YzUsIDB4MDQsIDB4YmEsIDB4MDQsIDB4YjAsCi0JMHgwNCwgMHhhYywgMHgwNCwgMHg5YywgMHgwNCwgMHg4YywgMHgwNCwgMHg4MSwKLQkweDAwLCAweDc4LCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhhYSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwMiwgMHgyMywgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA1LCAweGU1LCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDIsIDB4YjUsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwZSwgMHgzMywgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDAwLCAweDAwLAotfTsKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItZGVjL3R0dXNiX2RlYy5jIGIvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItZGVjL3R0dXNiX2RlYy5jCmluZGV4IGZlZmRjMDUuLmRlNTgyOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWRlYy90dHVzYl9kZWMuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1kZWMvdHR1c2JfZGVjLmMKQEAgLTEyNzUsNyArMTI3NSw3IEBACiAJdTggYjFbXSA9IHsgMHg2MSB9OwogCXU4ICpiOwogCWNoYXIgaWRzdHJpbmdbMjFdOwotCXU4ICpmaXJtd2FyZSA9IE5VTEw7CisJY29uc3QgdTggKmZpcm13YXJlID0gTlVMTDsKIAlzaXplX3QgZmlybXdhcmVfc2l6ZSA9IDA7CiAJdTE2IGZpcm13YXJlX2NzdW0gPSAwOwogCV9fYmUxNiBmaXJtd2FyZV9jc3VtX25zOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9yYWRpby9taXJvcGNtMjAtcmRzLmMgYi9kcml2ZXJzL21lZGlhL3JhZGlvL21pcm9wY20yMC1yZHMuYwppbmRleCAwNmRmZWQ5Li4zZTg0MGY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3JhZGlvL21pcm9wY20yMC1yZHMuYworKysgYi9kcml2ZXJzL21lZGlhL3JhZGlvL21pcm9wY20yMC1yZHMuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgpAQCAtMjcsMTMgKzI4LDE2IEBACiAJaWYgKHJkc191c2VycykKIAkJcmV0dXJuIC1FQlVTWTsKIAorCWxvY2tfa2VybmVsKCk7CiAJcmRzX3VzZXJzKys7CiAJaWYgKCh0ZXh0X2J1ZmZlcj1rbWFsbG9jKDY2LCBHRlBfS0VSTkVMKSkgPT0gMCkgewogCQlyZHNfdXNlcnMtLTsKIAkJcHJpbnRrKEtFUk5fTk9USUNFICJhY2ktcmRzOiBPdXQgb2YgbWVtb3J5IGJ5IG9wZW4oKS4uLlxuIik7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL0tjb25maWcKaW5kZXggM2IyNmZiZDMuLjVjY2IwYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vS2NvbmZpZworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL0tjb25maWcKQEAgLTc5Myw2ICs3OTMsMTQgQEAKIAogaWYgVjRMX1VTQl9EUklWRVJTICYmIFVTQgogCitjb25maWcgVVNCX1ZJREVPX0NMQVNTCisJdHJpc3RhdGUgIlVTQiBWaWRlbyBDbGFzcyAoVVZDKSIKKwktLS1oZWxwLS0tCisJICBTdXBwb3J0IGZvciB0aGUgVVNCIFZpZGVvIENsYXNzIChVVkMpLiAgQ3VycmVudGx5IG9ubHkgdmlkZW8KKwkgIGlucHV0IGRldmljZXMsIHN1Y2ggYXMgd2ViY2FtcywgYXJlIHN1cHBvcnRlZC4KKworCSAgRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlOiA8aHR0cDovL2xpbnV4LXV2Yy5iZXJsaW9zLmRlLz4KKwogc291cmNlICJkcml2ZXJzL21lZGlhL3ZpZGVvL3B2cnVzYjIvS2NvbmZpZyIKIAogc291cmNlICJkcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9LY29uZmlnIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9NYWtlZmlsZSBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vTWFrZWZpbGUKaW5kZXggZGZmMGQ2YS4uZWNiYmZhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9NYWtlZmlsZQorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL01ha2VmaWxlCkBAIC0xMzYsNiArMTM2LDggQEAKIAogb2JqLSQoQ09ORklHX1ZJREVPX0FVMDgyOCkgKz0gYXUwODI4LwogCitvYmotJChDT05GSUdfVVNCX1ZJREVPX0NMQVNTKQkrPSB1dmMvCisKIEVYVFJBX0NGTEFHUyArPSAtSWRyaXZlcnMvbWVkaWEvZHZiL2R2Yi1jb3JlCiBFWFRSQV9DRkxBR1MgKz0gLUlkcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMKIEVYVFJBX0NGTEFHUyArPSAtSWRyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9hdTA4MjgvYXUwODI4LWNhcmRzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2F1MDgyOC9hdTA4MjgtY2FyZHMuYwppbmRleCBhMmE2OTgzLi44OThlMTIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2F1MDgyOC9hdTA4MjgtY2FyZHMuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2F1MDgyOC9hdTA4MjgtY2FyZHMuYwpAQCAtNzcsOCArNzcsMTQgQEAKIAogCS8qIE1ha2Ugc3VyZSB3ZSBzdXBwb3J0IHRoZSBib2FyZCBtb2RlbCAqLwogCXN3aXRjaCAodHYubW9kZWwpIHsKKwljYXNlIDcyMDAwOiAvKiBXaW5UVi1IVlI5NTBxIChSZXRhaWwsIElSLCBBVFNDL1FBTSAqLwogCWNhc2UgNzIwMDE6IC8qIFdpblRWLUhWUjk1MHEgKFJldGFpbCwgSVIsIEFUU0MvUUFNIGFuZCBiYXNpYyBhbmFsb2cgdmlkZW8gKi8KKwljYXNlIDcyMjExOiAvKiBXaW5UVi1IVlI5NTBxIChPRU0sIElSLCBBVFNDL1FBTSBhbmQgYmFzaWMgYW5hbG9nIHZpZGVvICovCisJY2FzZSA3MjIyMTogLyogV2luVFYtSFZSOTUwcSAoT0VNLCBJUiwgQVRTQy9RQU0gYW5kIGJhc2ljIGFuYWxvZyB2aWRlbyAqLworCWNhc2UgNzIyMzE6IC8qIFdpblRWLUhWUjk1MHEgKE9FTSwgSVIsIEFUU0MvUUFNIGFuZCBiYXNpYyBhbmFsb2cgdmlkZW8gKi8KKwljYXNlIDcyMjQxOiAvKiBXaW5UVi1IVlI5NTBxIChPRU0sIE5vIElSLCBBVFNDL1FBTSBhbmQgYmFzaWMgYW5hbG9nIHZpZGVvICovCiAJY2FzZSA3MjMwMTogLyogV2luVFYtSFZSODUwIChSZXRhaWwsIElSLCBBVFNDIGFuZCBiYXNpYyBhbmFsb2cgdmlkZW8gKi8KKwljYXNlIDcyNTAwOiAvKiBXaW5UVi1IVlI5NTBxIChPRU0sIE5vIElSLCBBVFNDL1FBTSAqLwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogd2FybmluZzogIgpAQCAtMTc1LDYgKzE4MSwxOCBAQAogCQkuZHJpdmVyX2luZm8gPSBBVTA4MjhfQk9BUkRfSEFVUFBBVUdFX0hWUjg1MCB9LAogCXsgVVNCX0RFVklDRSgweDBmZTksIDB4ZDYyMCksCiAJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9EVklDT19GVVNJT05IRFRWNyB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzIxMCksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzIxNyksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzIxYiksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzIxZiksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzI4MCksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDBmZDksIDB4MDAwOCksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAogCXsgfSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vYnQ4eHgvYnR0di1jYXJkcy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9idDh4eC9idHR2LWNhcmRzLmMKaW5kZXggOGVmMDQyNC4uMWM1NmFlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9idDh4eC9idHR2LWNhcmRzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9idDh4eC9idHR2LWNhcmRzLmMKQEAgLTM3NjgsNyArMzc2OCw4IEBACiAjZGVmaW5lIEJUVFZfQUxUX0RDTEsJCTB4MTAwMDAwCiAjZGVmaW5lIEJUVFZfQUxUX05DT05GSUcJMHg4MDAwMDAKIAotc3RhdGljIGludCBfX2RldmluaXQgcHZyX2FsdGVyYV9sb2FkKHN0cnVjdCBidHR2ICpidHYsIHU4ICptaWNybywgdTMyIG1pY3JvbGVuKQorc3RhdGljIGludCBfX2RldmluaXQgcHZyX2FsdGVyYV9sb2FkKHN0cnVjdCBidHR2ICpidHYsIGNvbnN0IHU4ICptaWNybywKKwkJCQkgICAgIHUzMiBtaWNyb2xlbikKIHsKIAl1MzIgbjsKIAl1OCBiaXRzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jcGlhMi9jcGlhMl9jb3JlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2NwaWEyL2NwaWEyX2NvcmUuYwppbmRleCBjOGI5ZmRiLi5mMmU4YjFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2NwaWEyL2NwaWEyX2NvcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2NwaWEyL2NwaWEyX2NvcmUuYwpAQCAtMzMsMTEgKzMzLDEwIEBACiAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CiAKIC8qICNkZWZpbmUgX0NQSUEyX0RFQlVHXyAqLwogCi0jaW5jbHVkZSAiY3BpYTJwYXRjaC5oIgotCiAjaWZkZWYgX0NQSUEyX0RFQlVHXwogCiBzdGF0aWMgY29uc3QgY2hhciAqYmxvY2tfbmFtZVtdID0gewpAQCAtODkzLDI0ICs4OTIsNTMgQEAKICAqICBhcHBseV92cF9wYXRjaAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgY3BpYTJfc2VuZF9vbmVieXRlX2NvbW1hbmQoc3RydWN0IGNhbWVyYV9kYXRhICpjYW0sCisJCQkJICAgICAgc3RydWN0IGNwaWEyX2NvbW1hbmQgKmNtZCwKKwkJCQkgICAgICB1OCBzdGFydCwgdTggZGF0dW0pCit7CisJY21kLT5idWZmZXIuYmxvY2tfZGF0YVswXSA9IGRhdHVtOworCWNtZC0+c3RhcnQgPSBzdGFydDsKKwljbWQtPnJlZ19jb3VudCA9IDE7CisJcmV0dXJuIGNwaWEyX3NlbmRfY29tbWFuZChjYW0sIGNtZCk7Cit9CisKIHN0YXRpYyBpbnQgYXBwbHlfdnBfcGF0Y2goc3RydWN0IGNhbWVyYV9kYXRhICpjYW0pCiB7Ci0JaW50IGksIGo7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwljb25zdCBjaGFyIGZ3X25hbWVbXSA9ICJjcGlhMi9zdHYwNjcyX3ZwNC5iaW4iOworCWludCBpLCByZXQ7CiAJc3RydWN0IGNwaWEyX2NvbW1hbmQgY21kOwogCisJcmV0ID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIGZ3X25hbWUsICZjYW0tPmRldi0+ZGV2KTsKKwlpZiAocmV0KSB7CisJCXByaW50ayhLRVJOX0VSUiAiY3BpYTI6IGZhaWxlZCB0byBsb2FkIFZQIHBhdGNoIFwiJXNcIlxuIiwKKwkJICAgICAgIGZ3X25hbWUpOworCQlyZXR1cm4gcmV0OworCX0KKwogCWNtZC5yZXFfbW9kZSA9IENBTUVSQUFDQ0VTU19UWVBFX1JFUEVBVCB8IENBTUVSQUFDQ0VTU19WUDsKIAljbWQuZGlyZWN0aW9uID0gVFJBTlNGRVJfV1JJVEU7CiAKLQlmb3IgKGkgPSAwOyBpIDwgUEFUQ0hfREFUQV9TSVpFOyBpKyspIHsKLQkJZm9yIChqID0gMDsgaiA8IHBhdGNoX2RhdGFbaV0uY291bnQ7IGorKykgewotCQkJY21kLmJ1ZmZlci5ibG9ja19kYXRhW2pdID0gcGF0Y2hfZGF0YVtpXS5kYXRhW2pdOwotCQl9CisJLyogRmlyc3Qgc2VuZCB0aGUgc3RhcnQgYWRkcmVzcy4uLiAqLworCWNwaWEyX3NlbmRfb25lYnl0ZV9jb21tYW5kKGNhbSwgJmNtZCwgMHgwQSwgZnctPmRhdGFbMF0pOyAvKiBoaSAqLworCWNwaWEyX3NlbmRfb25lYnl0ZV9jb21tYW5kKGNhbSwgJmNtZCwgMHgwQiwgZnctPmRhdGFbMV0pOyAvKiBsbyAqLwogCi0JCWNtZC5zdGFydCA9IHBhdGNoX2RhdGFbaV0ucmVnOwotCQljbWQucmVnX2NvdW50ID0gcGF0Y2hfZGF0YVtpXS5jb3VudDsKKwkvKiAuLi4gZm9sbG93ZWQgYnkgdGhlIGRhdGEgcGF5bG9hZCAqLworCWZvciAoaSA9IDI7IGkgPCBmdy0+c2l6ZTsgaSArPSA2NCkgeworCQljbWQuc3RhcnQgPSAweDBDOyAvKiBEYXRhICovCisJCWNtZC5yZWdfY291bnQgPSBtaW5fdChpbnQsIDY0LCBmdy0+c2l6ZSAtIGkpOworCQltZW1jcHkoY21kLmJ1ZmZlci5ibG9ja19kYXRhLCAmZnctPmRhdGFbaV0sIGNtZC5yZWdfY291bnQpOwogCQljcGlhMl9zZW5kX2NvbW1hbmQoY2FtLCAmY21kKTsKIAl9CiAKKwkvKiBOZXh0IHNlbmQgdGhlIHN0YXJ0IGFkZHJlc3MuLi4gKi8KKwljcGlhMl9zZW5kX29uZWJ5dGVfY29tbWFuZChjYW0sICZjbWQsIDB4MEEsIGZ3LT5kYXRhWzBdKTsgLyogaGkgKi8KKwljcGlhMl9zZW5kX29uZWJ5dGVfY29tbWFuZChjYW0sICZjbWQsIDB4MEIsIGZ3LT5kYXRhWzFdKTsgLyogbG8gKi8KKworCS8qIC4uLiBmb2xsb3dlZCBieSB0aGUgJ2dvdG8nIGNvbW1hbmQgKi8KKwljcGlhMl9zZW5kX29uZWJ5dGVfY29tbWFuZChjYW0sICZjbWQsIDB4MEQsIDEpOworCisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3BpYTIvY3BpYTJwYXRjaC5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9jcGlhMi9jcGlhMnBhdGNoLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmMDg1ZmIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jcGlhMi9jcGlhMnBhdGNoLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMzMgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCi0gKiAgRmlsZW5hbWU6IGNwaWEycGF0Y2guaAotICoKLSAqICBDb3B5cmlnaHQgMjAwMSwgU1RNaWNyb2xlY3Ryb25pY3MsIEluYy4KLSAqCi0gKiAgQ29udGFjdDogIHN0ZXZlLm1pbGxlckBzdC5jb20KLSAqCi0gKiAgRGVzY3JpcHRpb246Ci0gKiAgICAgVGhpcyBmaWxlIGNvbnRhaW5zIHBhdGNoIGRhdGEgZm9yIHRoZSBDUGlBMiAoc3R2MDY3MikgVlA0LgotICoKLSAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLSNpZm5kZWYgQ1BJQTJfUEFUQ0hfSEVBREVSCi0jZGVmaW5lIENQSUEyX1BBVENIX0hFQURFUgotCi10eXBlZGVmIHN0cnVjdCB7Ci0JdW5zaWduZWQgY2hhciByZWc7Ci0JdW5zaWduZWQgY2hhciBjb3VudDsKLQljb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhOwotfSBjcGlhMl9wYXRjaDsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc3RhcnRfYWRkcmVzc19oaVsxXSA9IHsKLQkweDAxCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzdGFydF9hZGRyZXNzX2xvWzFdID0gewotCTB4QkMKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrMFs2NF0gPSB7Ci0JMHhFMywgMHgwMiwgMHhFMywgMHgwMywgMHhFMywgMHgwNCwgMHhFMywgMHgwNSwKLQkweEUzLCAweDA2LCAweEUzLCAweDA3LCAweDkzLCAweDQ0LCAweDU2LCAweEQ0LAotCTB4OTMsIDB4NEUsIDB4NTYsIDB4NTEsIDB4OTMsIDB4NEUsIDB4NTEsIDB4RDYsCi0JMHg5MywgMHg0RSwgMHg0RiwgMHg1NCwgMHg5MywgMHg0RSwgMHg5MiwgMHg0RiwKLQkweDkyLCAweEE0LCAweDkzLCAweDA1LCAweDkyLCAweEY0LCAweDkzLCAweDFCLAotCTB4OTIsIDB4OTIsIDB4OTEsIDB4RTYsIDB4OTIsIDB4MzYsIDB4OTIsIDB4NzQsCi0JMHg5MiwgMHg0QSwgMHg5MiwgMHg4QywgMHg5MiwgMHg4RSwgMHhDOCwgMHhEMCwKLQkweDBCLCAweDQyLCAweDAyLCAweEEwLCAweENBLCAweDkyLCAweDA5LCAweDAyCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazFbNjRdID0gewotCTB4QzksIDB4MTAsIDB4MEEsIDB4MEEsIDB4MEEsIDB4ODEsIDB4RTMsIDB4QjgsCi0JMHhFMywgMHhCMCwgMHhFMywgMHhBOCwgMHhFMywgMHhBMCwgMHhFMywgMHg5OCwKLQkweEUzLCAweDkwLCAweEUxLCAweDAwLCAweENGLCAweEQ3LCAweDBBLCAweDEyLAotCTB4Q0MsIDB4OTUsIDB4MDgsIDB4QjIsIDB4MEEsIDB4MTgsIDB4RTEsIDB4MDAsCi0JMHgwMSwgMHhFRSwgMHgwQywgMHgwOCwgMHg0QSwgMHgxMiwgMHhDOCwgMHgxOCwKLQkweEYwLCAweDlBLCAweEMwLCAweDIyLCAweEYzLCAweDFDLCAweDRBLCAweDEzLAotCTB4RjMsIDB4MTQsIDB4QzgsIDB4QTAsIDB4RjIsIDB4MTQsIDB4RjIsIDB4MUMsCi0JMHhFQiwgMHgxMywgMHhEMywgMHhBMiwgMHg2MywgMHgxNiwgMHg0OCwgMHg5RQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2syWzY0XSA9IHsKLQkweEYwLCAweDE4LCAweEE0LCAweDAzLCAweEYzLCAweDkzLCAweEMwLCAweDU4LAotCTB4RjcsIDB4MTMsIDB4NTEsIDB4OUMsIDB4RTksIDB4MjAsIDB4Q0YsIDB4RUYsCi0JMHg2MywgMHhGOSwgMHg5MiwgMHgyRSwgMHhEMywgMHg1RiwgMHg2MywgMHhGQSwKLQkweDkyLCAweDJFLCAweEQzLCAweDY3LCAweDYzLCAweEZCLCAweDkyLCAweDJFLAotCTB4RDMsIDB4NkYsIDB4RTksIDB4MUEsIDB4NjMsIDB4MTYsIDB4NDgsIDB4QTcsCi0JMHhGMCwgMHgyMCwgMHhBNCwgMHgwNiwgMHhGMywgMHg5NCwgMHhDMCwgMHgyNywKLQkweEY3LCAweDE0LCAweEY1LCAweDEzLCAweDUxLCAweDlELCAweEY2LCAweDEzLAotCTB4NjMsIDB4MTgsIDB4QzQsIDB4MjAsIDB4Q0IsIDB4RUYsIDB4NjMsIDB4RkMKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrM1s2NF0gPSB7Ci0JMHg5MiwgMHgyRSwgMHhEMywgMHg3NywgMHg2MywgMHhGRCwgMHg5MiwgMHgyRSwKLQkweEQzLCAweDdGLCAweDYzLCAweEZFLCAweDkyLCAweDJFLCAweEQzLCAweDg3LAotCTB4NjMsIDB4RkYsIDB4OTIsIDB4MkUsIDB4RDMsIDB4OEYsIDB4NjQsIDB4MzgsCi0JMHg5MiwgMHgyRSwgMHhEMywgMHg5NywgMHg2NCwgMHgzOSwgMHg5MiwgMHgyRSwKLQkweEQzLCAweDlGLCAweEUxLCAweDAwLCAweEY1LCAweDNBLCAweEY0LCAweDNCLAotCTB4RjcsIDB4QkYsIDB4RjIsIDB4QkMsIDB4RjIsIDB4M0QsIDB4RTEsIDB4MDAsCi0JMHg4MCwgMHg4NywgMHg5MCwgMHg4MCwgMHg1MSwgMHhENSwgMHgwMiwgMHgyMiwKLQkweDAyLCAweDMyLCAweDRCLCAweEQzLCAweEY3LCAweDExLCAweDBCLCAweERBCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazRbNjRdID0gewotCTB4RTEsIDB4MDAsIDB4MEUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MEQsIDB4QjUsCi0JMHhFMywgMHgwMiwgMHg0OCwgMHg1NSwgMHhFNSwgMHgxMiwgMHhBNCwgMHgwMSwKLQkweEU4LCAweDFCLCAweEUzLCAweDkwLCAweEYwLCAweDE4LCAweEE0LCAweDAxLAotCTB4RTgsIDB4QkYsIDB4OEQsIDB4QjgsIDB4NEIsIDB4RDEsIDB4NEIsIDB4RDgsCi0JMHgwQiwgMHhDQiwgMHgwQiwgMHhDMiwgMHhFMSwgMHgwMCwgMHhFMywgMHgwMiwKLQkweEUzLCAweDAzLCAweDUyLCAweEQzLCAweDYwLCAweDU5LCAweEU2LCAweDkzLAotCTB4MEQsIDB4MjIsIDB4NTIsIDB4RDQsIDB4RTYsIDB4OTMsIDB4MEQsIDB4MkEsCi0JMHhFMywgMHg5OCwgMHhFMywgMHg5MCwgMHhFMSwgMHgwMCwgMHgwMiwgMHg1RAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2s1WzY0XSA9IHsKLQkweDAyLCAweDYzLCAweEUzLCAweDAyLCAweEM4LCAweDEyLCAweDAyLCAweENBLAotCTB4QzgsIDB4NTIsIDB4MDIsIDB4QzIsIDB4ODIsIDB4NjgsIDB4RTMsIDB4MDIsCi0JMHhDOCwgMHgxNCwgMHgwMiwgMHhDQSwgMHhDOCwgMHg5MCwgMHgwMiwgMHhDMiwKLQkweDBBLCAweEQwLCAweEM5LCAweDkzLCAweDBBLCAweERBLCAweENDLCAweEQyLAotCTB4MEEsIDB4RTIsIDB4NjMsIDB4MTIsIDB4MDIsIDB4REEsIDB4MEEsIDB4OTgsCi0JMHgwQSwgMHhBMCwgMHgwQSwgMHhBOCwgMHhFMywgMHg5MCwgMHhFMSwgMHgwMCwKLQkweEUzLCAweDAyLCAweDBBLCAweEQwLCAweEM5LCAweDkzLCAweDBBLCAweERBLAotCTB4Q0MsIDB4RDIsIDB4MEEsIDB4RTIsIDB4NjMsIDB4MTIsIDB4MDIsIDB4REEKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrNls2NF0gPSB7Ci0JMHgwQSwgMHg5OCwgMHgwQSwgMHhBMCwgMHgwQSwgMHhBOCwgMHg0OSwgMHg5MSwKLQkweEU1LCAweDZBLCAweEE0LCAweDA0LCAweEM4LCAweDEyLCAweDAyLCAweENBLAotCTB4QzgsIDB4NTIsIDB4ODIsIDB4ODksIDB4QzgsIDB4MTQsIDB4MDIsIDB4Q0EsCi0JMHhDOCwgMHg5MCwgMHgwMiwgMHhDMiwgMHhFMywgMHg5MCwgMHhFMSwgMHgwMCwKLQkweDA4LCAweDYwLCAweEUxLCAweDAwLCAweDQ4LCAweDUzLCAweEU4LCAweDk3LAotCTB4MDgsIDB4NUEsIDB4RTEsIDB4MDAsIDB4RTMsIDB4MDIsIDB4RTMsIDB4MDMsCi0JMHg1NCwgMHhEMywgMHg2MCwgMHg1OSwgMHhFNiwgMHg5MywgMHgwRCwgMHg1MiwKLQkweEUzLCAweDk4LCAweEUzLCAweDkwLCAweEUxLCAweDAwLCAweDAyLCAweDlDCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazdbNjRdID0gewotCTB4RTMsIDB4MDIsIDB4NTUsIDB4MTMsIDB4OTMsIDB4MTcsIDB4NTUsIDB4MTMsCi0JMHg5MywgMHgxNywgMHhFMywgMHg5MCwgMHhFMSwgMHgwMCwgMHg3NSwgMHgzMCwKLQkweEUzLCAweDAyLCAweEUzLCAweDAzLCAweDU1LCAweDU1LCAweDYwLCAweDU5LAotCTB4RTYsIDB4OTMsIDB4MEQsIDB4QjIsIDB4RTMsIDB4OTgsIDB4RTMsIDB4OTAsCi0JMHhFMSwgMHgwMCwgMHgwMiwgMHhBRSwgMHhFNywgMHg5MiwgMHhFOSwgMHgxOCwKLQkweEVBLCAweDlBLCAweEU4LCAweDk4LCAweEU4LCAweDEwLCAweEU4LCAweDExLAotCTB4RTgsIDB4NTEsIDB4RDIsIDB4REEsIDB4RDIsIDB4RjMsIDB4RTgsIDB4MTMsCi0JMHhEMiwgMHhGQSwgMHhFOCwgMHg1MCwgMHhEMiwgMHhFQSwgMHhFOCwgMHhEMAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2s4WzY0XSA9IHsKLQkweEU4LCAweEQxLCAweEQzLCAweDBBLCAweDAzLCAweDA5LCAweDQ4LCAweDIzLAotCTB4RTUsIDB4MkMsIDB4QTAsIDB4MDMsIDB4NDgsIDB4MjQsIDB4RUEsIDB4MUMsCi0JMHgwMywgMHgwOCwgMHhEMiwgMHhFMywgMHhEMywgMHgwMywgMHhEMywgMHgxMywKLQkweEUxLCAweDAwLCAweDAyLCAweENCLCAweDA1LCAweDkzLCAweDU3LCAweDkzLAotCTB4RjAsIDB4OUEsIDB4QUMsIDB4MEIsIDB4RTMsIDB4MDcsIDB4OTIsIDB4RUEsCi0JMHhFMiwgMHg5RiwgMHhFNSwgMHgwNiwgMHhFMywgMHhCMCwgMHhBMCwgMHgwMiwKLQkweEVCLCAweDFFLCAweDgyLCAweEQ3LCAweEVBLCAweDFFLCAweEUyLCAweDNCLAotCTB4ODUsIDB4OUIsIDB4RTksIDB4MUUsIDB4QzgsIDB4OTAsIDB4ODUsIDB4OTQKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrOVs2NF0gPSB7Ci0JMHgwMiwgMHhERSwgMHgwNSwgMHg4MCwgMHg1NywgMHg5MywgMHhGMCwgMHhCQSwKLQkweEFDLCAweDA2LCAweDkyLCAweEVBLCAweEUyLCAweEJGLCAweEU1LCAweDA2LAotCTB4QTAsIDB4MDEsIDB4RUIsIDB4QkYsIDB4ODUsIDB4ODgsIDB4RTksIDB4M0UsCi0JMHhDOCwgMHg5MCwgMHg4NSwgMHg4MSwgMHhFOSwgMHgzRSwgMHhGMCwgMHhCQSwKLQkweEYzLCAweDM5LCAweEYwLCAweDNBLCAweDYwLCAweDE3LCAweEYwLCAweDNBLAotCTB4QzAsIDB4OTAsIDB4RjAsIDB4QkEsIDB4RTEsIDB4MDAsIDB4MDAsIDB4M0YsCi0JMHhFMywgMHgwMiwgMHhFMywgMHgwMywgMHg1OCwgMHgxMCwgMHg2MCwgMHg1OSwKLQkweEU2LCAweDkzLCAweDBELCAweEEyLCAweDU4LCAweDEyLCAweEU2LCAweDkzCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazEwWzY0XSA9IHsKLQkweDBELCAweEFBLCAweEUzLCAweDk4LCAweEUzLCAweDkwLCAweEUxLCAweDAwLAotCTB4MDMsIDB4MDEsIDB4RTEsIDB4MDAsIDB4MDMsIDB4MDMsIDB4OUIsIDB4N0QsCi0JMHg4QiwgMHg4QiwgMHhFMywgMHgwMiwgMHhFMywgMHgwMywgMHg1OCwgMHg1NiwKLQkweDYwLCAweDU5LCAweEU2LCAweDkzLCAweDBELCAweEJBLCAweEUzLCAweDk4LAotCTB4RTMsIDB4OTAsIDB4RTEsIDB4MDAsIDB4MDMsIDB4MEYsIDB4OTMsIDB4MTEsCi0JMHhFMSwgMHgwMCwgMHhFMywgMHgwMiwgMHg0QSwgMHgxMSwgMHgwQiwgMHg0MiwKLQkweDkxLCAweEFGLCAweEUzLCAweDkwLCAweEUxLCAweDAwLCAweEYyLCAweDkxLAotCTB4RjAsIDB4OTEsIDB4QTMsIDB4RkUsIDB4RTEsIDB4MDAsIDB4NjAsIDB4OTIKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrMTFbNjRdID0gewotCTB4QzAsIDB4NUYsIDB4RjAsIDB4MTMsIDB4RjAsIDB4MTMsIDB4NTksIDB4NUIsCi0JMHhFMiwgMHgxMywgMHhGMCwgMHgxMSwgMHg1QSwgMHgxOSwgMHhFMiwgMHgxMywKLQkweEUxLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDI3LCAweDY4LCAweDYxLAotCTB4NzYsIDB4NjEsIDB4NkUsIDB4NjEsIDB4MDAsIDB4MDYsIDB4MDMsIDB4MkMsCi0JMHhFMywgMHgwMiwgMHhFMywgMHgwMywgMHhFOSwgMHgzOCwgMHg1OSwgMHgxNSwKLQkweDU5LCAweDVBLCAweEYyLCAweDlBLCAweEJDLCAweDBCLCAweEE0LCAweDBBLAotCTB4NTksIDB4MUUsIDB4RjMsIDB4MTEsIDB4RjAsIDB4MUEsIDB4RTIsIDB4QkIsCi0JMHg1OSwgMHgxNSwgMHhGMCwgMHgxMSwgMHgxOSwgMHgyQSwgMHhFNSwgMHgwMgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2sxMls1NF0gPSB7Ci0JMHhBNCwgMHgwMSwgMHhFQiwgMHhCRiwgMHhFMywgMHg5OCwgMHhFMywgMHg5MCwKLQkweEUxLCAweDAwLCAweDAzLCAweDQyLCAweDE5LCAweDI4LCAweEUxLCAweDAwLAotCTB4RTksIDB4MzAsIDB4NjAsIDB4NzksIDB4RTEsIDB4MDAsIDB4RTMsIDB4MDMsCi0JMHhFMywgMHgwNywgMHg2MCwgMHg3OSwgMHg5MywgMHg0RSwgMHhFMywgMHhCOCwKLQkweEUzLCAweDk4LCAweEUxLCAweDAwLCAweEU5LCAweDFBLCAweEYwLCAweDFGLAotCTB4RTIsIDB4MzMsIDB4RjAsIDB4OTEsIDB4RTIsIDB4OTIsIDB4RTAsIDB4MzIsCi0JMHhGMCwgMHgzMSwgMHhFMSwgMHgwMCwgMHgwMCwgMHgwMAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZG9fY2FsbFsxXSA9IHsKLQkweDAxCi19OwotCi0KLSNkZWZpbmUgUEFUQ0hfREFUQV9TSVpFIDE4Ci0KLXN0YXRpYyBjb25zdCBjcGlhMl9wYXRjaCBwYXRjaF9kYXRhW1BBVENIX0RBVEFfU0laRV0gPSB7Ci0JezB4MEEsIHNpemVvZihzdGFydF9hZGRyZXNzX2hpKSwgc3RhcnRfYWRkcmVzc19oaX0KLQksCQkJLy8gMAotCXsweDBCLCBzaXplb2Yoc3RhcnRfYWRkcmVzc19sbyksIHN0YXJ0X2FkZHJlc3NfbG99Ci0JLAkJCS8vIDEKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrMCksIHBhdGNoX2Jsb2NrMH0KLQksCQkJLy8gMgotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2sxKSwgcGF0Y2hfYmxvY2sxfQotCSwJCQkvLyAzCi0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazIpLCBwYXRjaF9ibG9jazJ9Ci0JLAkJCS8vIDQKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrMyksIHBhdGNoX2Jsb2NrM30KLQksCQkJLy8gNQotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2s0KSwgcGF0Y2hfYmxvY2s0fQotCSwJCQkvLyA2Ci0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazUpLCBwYXRjaF9ibG9jazV9Ci0JLAkJCS8vIDcKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrNiksIHBhdGNoX2Jsb2NrNn0KLQksCQkJLy8gOAotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2s3KSwgcGF0Y2hfYmxvY2s3fQotCSwJCQkvLyA5Ci0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazgpLCBwYXRjaF9ibG9jazh9Ci0JLAkJCS8vIDEwCi0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazkpLCBwYXRjaF9ibG9jazl9Ci0JLAkJCS8vMTEKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrMTApLCBwYXRjaF9ibG9jazEwfQotCSwJCQkvLyAxMgotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2sxMSksIHBhdGNoX2Jsb2NrMTF9Ci0JLAkJCS8vIDEzCi0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazEyKSwgcGF0Y2hfYmxvY2sxMn0KLQksCQkJLy8gMTQKLQl7MHgwQSwgc2l6ZW9mKHN0YXJ0X2FkZHJlc3NfaGkpLCBzdGFydF9hZGRyZXNzX2hpfQotCSwJCQkvLyAxNQotCXsweDBCLCBzaXplb2Yoc3RhcnRfYWRkcmVzc19sbyksIHN0YXJ0X2FkZHJlc3NfbG99Ci0JLAkJCS8vIDE2Ci0JezB4MEQsIHNpemVvZihkb19jYWxsKSwgZG9fY2FsbH0JLy8xNwotfTsKLQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9LY29uZmlnIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L0tjb25maWcKaW5kZXggNWY5NDI2OS4uOWFlZmRjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L0tjb25maWcKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L0tjb25maWcKQEAgLTEwLDggKzEwLDggQEAKIAlzZWxlY3QgVklERU9fVFZFRVBST00KIAlzZWxlY3QgVklERU9fQ1gyMzQxWAogCXNlbGVjdCBWSURFT19DUzUzNDUKLQlzZWxlY3QgRFZCX1M1SDE0MDkKLQlzZWxlY3QgTUVESUFfVFVORVJfTVhMNTAwNVMKKwlzZWxlY3QgRFZCX1M1SDE0MDkgaWYgIURWQl9GRV9DVVNUT01JU0UKKwlzZWxlY3QgTUVESUFfVFVORVJfTVhMNTAwNVMgaWYgIURWQl9GRV9DVVNUT01JU0UKIAktLS1oZWxwLS0tCiAJICBUaGlzIGlzIGEgdmlkZW80bGludXggZHJpdmVyIGZvciBDb25leGFudCBjeDIzNDE4IGJhc2VkCiAJICBQQ0kgY29tYm8gdmlkZW8gcmVjb3JkZXIgZGV2aWNlcy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWNvcmUuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWNvcmUuYwppbmRleCA5YTI2NzUxLi5mYWNhNDNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1jb3JlLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtY29yZS5jCkBAIC02OSw2ICs2OSw1OCBAQAogCQkJICAgICBvcl92YWx1ZSk7CiB9CiAKK2ludCBjeDE4X2F2X3dyaXRlX25vX2FjZmcoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdTggdmFsdWUsIGludCBub19hY2ZnX21hc2spCit7CisJaW50IHJldHZhbDsKKwl1MzIgc2F2ZWRfcmVnWzhdID0gezB9OworCisJaWYgKG5vX2FjZmdfbWFzayAmIENYQURFQ19OT19BQ0ZHX0FGRSkgeworCQlzYXZlZF9yZWdbMF0gPSBjeDE4X2F2X3JlYWQ0KGN4LCBDWEFERUNfQ0hJUF9DVFJMKTsKKwkJc2F2ZWRfcmVnWzFdID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX0FGRV9DVFJMKTsKKwl9CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfUExMKSB7CisJCXNhdmVkX3JlZ1syXSA9IGN4MThfYXZfcmVhZDQoY3gsIENYQURFQ19QTExfQ1RSTDEpOworCQlzYXZlZF9yZWdbM10gPSBjeDE4X2F2X3JlYWQ0KGN4LCBDWEFERUNfVklEX1BMTF9GUkFDKTsKKwl9CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfVklEKSB7CisJCXNhdmVkX3JlZ1s0XSA9IGN4MThfYXZfcmVhZDQoY3gsIENYQURFQ19IT1JJWl9USU1fQ1RSTCk7CisJCXNhdmVkX3JlZ1s1XSA9IGN4MThfYXZfcmVhZDQoY3gsIENYQURFQ19WRVJUX1RJTV9DVFJMKTsKKwkJc2F2ZWRfcmVnWzZdID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX1NSQ19DT01CX0NGRyk7CisJCXNhdmVkX3JlZ1s3XSA9IGN4MThfYXZfcmVhZDQoY3gsIENYQURFQ19DSFJPTUFfVkJJT0ZGX0NGRyk7CisJfQorCisJcmV0dmFsID0gY3gxOF9hdl93cml0ZShjeCwgYWRkciwgdmFsdWUpOworCisJaWYgKG5vX2FjZmdfbWFzayAmIENYQURFQ19OT19BQ0ZHX0FGRSkgeworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX0NISVBfQ1RSTCwgc2F2ZWRfcmVnWzBdKTsKKwkJY3gxOF9hdl93cml0ZTQoY3gsIENYQURFQ19BRkVfQ1RSTCwgIHNhdmVkX3JlZ1sxXSk7CisJfQorCisJaWYgKG5vX2FjZmdfbWFzayAmIENYQURFQ19OT19BQ0ZHX1BMTCkgeworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX1BMTF9DVFJMMSwgICAgc2F2ZWRfcmVnWzJdKTsKKwkJY3gxOF9hdl93cml0ZTQoY3gsIENYQURFQ19WSURfUExMX0ZSQUMsIHNhdmVkX3JlZ1szXSk7CisJfQorCisJaWYgKG5vX2FjZmdfbWFzayAmIENYQURFQ19OT19BQ0ZHX1ZJRCkgeworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX0hPUklaX1RJTV9DVFJMLCAgICBzYXZlZF9yZWdbNF0pOworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX1ZFUlRfVElNX0NUUkwsICAgICBzYXZlZF9yZWdbNV0pOworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX1NSQ19DT01CX0NGRywgICAgICBzYXZlZF9yZWdbNl0pOworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX0NIUk9NQV9WQklPRkZfQ0ZHLCBzYXZlZF9yZWdbN10pOworCX0KKworCXJldHVybiByZXR2YWw7Cit9CisKK2ludCBjeDE4X2F2X2FuZF9vcl9ub19hY2ZnKHN0cnVjdCBjeDE4ICpjeCwgdTE2IGFkZHIsIHVuc2lnbmVkIGFuZF9tYXNrLAorCQkJICAgdTggb3JfdmFsdWUsIGludCBub19hY2ZnX21hc2spCit7CisJcmV0dXJuIGN4MThfYXZfd3JpdGVfbm9fYWNmZyhjeCwgYWRkciwKKwkJCQkgICAgIChjeDE4X2F2X3JlYWQoY3gsIGFkZHIpICYgYW5kX21hc2spIHwKKwkJCQkgICAgIG9yX3ZhbHVlLCBub19hY2ZnX21hc2spOworfQorCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiBzdGF0aWMgaW50IHNldF9pbnB1dChzdHJ1Y3QgY3gxOCAqY3gsIGVudW0gY3gxOF9hdl92aWRlb19pbnB1dCB2aWRfaW5wdXQsCkBAIC0xNzAsMTMgKzIyMiwxNSBAQAogCiAJLyogRm9sbG93IHN0ZXAgOGMgYW5kIDhkIG9mIHNlY3Rpb24gMy4xNiBpbiB0aGUgY3gxOF9hdiBkYXRhc2hlZXQgKi8KIAlpZiAoc3RkICYgVjRMMl9TVERfU0VDQU0pCi0JCWN4MThfYXZfd3JpdGUoY3gsIDB4NDAyLCAwKTsKKwkJY3gxOF9hdl93cml0ZV9ub19hY2ZnKGN4LCAweDQwMiwgMCwgQ1hBREVDX05PX0FDRkdfQUxMKTsKIAllbHNlIHsKLQkJY3gxOF9hdl93cml0ZShjeCwgMHg0MDIsIDB4MDQpOworCQljeDE4X2F2X3dyaXRlX25vX2FjZmcoY3gsIDB4NDAyLCAweDA0LCBDWEFERUNfTk9fQUNGR19BTEwpOwogCQljeDE4X2F2X3dyaXRlKGN4LCAweDQ5ZiwgKHN0ZCAmIFY0TDJfU1REX05UU0MpID8gMHgxNCA6IDB4MTEpOwogCX0KLQljeDE4X2F2X2FuZF9vcihjeCwgMHg0MDEsIH4weDYwLCAwKTsKLQljeDE4X2F2X2FuZF9vcihjeCwgMHg0MDEsIH4weDYwLCAweDYwKTsKKwljeDE4X2F2X2FuZF9vcl9ub19hY2ZnKGN4LCAweDQwMSwgfjB4NjAsIDAsCisJCQkJQ1hBREVDX05PX0FDRkdfUExMIHwgQ1hBREVDX05PX0FDRkdfVklEKTsKKwljeDE4X2F2X2FuZF9vcl9ub19hY2ZnKGN4LCAweDQwMSwgfjB4NjAsIDB4NjAsCisJCQkJQ1hBREVDX05PX0FDRkdfUExMIHwgQ1hBREVDX05PX0FDRkdfVklEKTsKIAogCWlmIChzdGQgJiBWNEwyX1NURF81MjVfNjApIHsKIAkJaWYgKHN0ZCA9PSBWNEwyX1NURF9OVFNDX01fSlApIHsKQEAgLTIyOCw3ICsyODIsNyBAQAogCiAJCWlmICgodmlkX2lucHV0ICYgfjB4ZmYwKSB8fAogCQkgICAgbHVtYSA8IENYMThfQVZfU1ZJREVPX0xVTUExIHx8Ci0JCSAgICBsdW1hID4gQ1gxOF9BVl9TVklERU9fTFVNQTQgfHwKKwkJICAgIGx1bWEgPiBDWDE4X0FWX1NWSURFT19MVU1BOCB8fAogCQkgICAgY2hyb21hIDwgQ1gxOF9BVl9TVklERU9fQ0hST01BNCB8fAogCQkgICAgY2hyb21hID4gQ1gxOF9BVl9TVklERU9fQ0hST01BOCkgewogCQkJQ1gxOF9FUlIoIjB4JTA0eCBpcyBub3QgYSB2YWxpZCB2aWRlbyBpbnB1dCFcbiIsCkBAIC0yNjIsNyArMzE2LDggQEAKIAogCWN4MThfYXZfd3JpdGUoY3gsIDB4MTAzLCByZWcpOwogCS8qIFNldCBJTlBVVF9NT0RFIHRvIENvbXBvc2l0ZSAoMCkgb3IgUy1WaWRlbyAoMSkgKi8KLQljeDE4X2F2X2FuZF9vcihjeCwgMHg0MDEsIH4weDYsIGlzX2NvbXBvc2l0ZSA/IDAgOiAweDAyKTsKKwljeDE4X2F2X2FuZF9vcl9ub19hY2ZnKGN4LCAweDQwMSwgfjB4NiwgaXNfY29tcG9zaXRlID8gMCA6IDB4MDIsCisJCQkJQ1hBREVDX05PX0FDRkdfUExMIHwgQ1hBREVDX05PX0FDRkdfVklEKTsKIAkvKiBTZXQgQ0hfU0VMX0FEQzIgdG8gMSBpZiBpbnB1dCBjb21lcyBmcm9tIENIMyAqLwogCWN4MThfYXZfYW5kX29yKGN4LCAweDEwMiwgfjB4MiwgKHJlZyAmIDB4ODApID09IDAgPyAyIDogMCk7CiAJLyogU2V0IERVQUxfTU9ERV9BREMyIHRvIDEgaWYgaW5wdXQgY29tZXMgZnJvbSBib3RoIENIMiBhbmQgQ0gzICovCkBAIC0zMTgsMTIgKzM3MywxMiBAQAogCSAgIFRoaXMgaGFwcGVucyBmb3IgZXhhbXBsZSB3aXRoIHRoZSBZdWFuIE1QQzYyMi4gKi8KIAlpZiAoZm10ID49IDQgJiYgZm10IDwgOCkgewogCQkvKiBTZXQgZm9ybWF0IHRvIE5UU0MtTSAqLwotCQljeDE4X2F2X2FuZF9vcihjeCwgMHg0MDAsIH4weGYsIDEpOworCQljeDE4X2F2X2FuZF9vcl9ub19hY2ZnKGN4LCAweDQwMCwgfjB4ZiwgMSwgQ1hBREVDX05PX0FDRkdfQUZFKTsKIAkJLyogVHVybiBvZmYgTENPTUIgKi8KIAkJY3gxOF9hdl9hbmRfb3IoY3gsIDB4NDdiLCB+NiwgMCk7CiAJfQotCWN4MThfYXZfYW5kX29yKGN4LCAweDQwMCwgfjB4ZiwgZm10KTsKLQljeDE4X2F2X2FuZF9vcihjeCwgMHg0MDMsIH4weDMsIHBhbF9tKTsKKwljeDE4X2F2X2FuZF9vcl9ub19hY2ZnKGN4LCAweDQwMCwgfjB4ZiwgZm10LCBDWEFERUNfTk9fQUNGR19BRkUpOworCWN4MThfYXZfYW5kX29yX25vX2FjZmcoY3gsIDB4NDAzLCB+MHgzLCBwYWxfbSwgQ1hBREVDX05PX0FDRkdfQUxMKTsKIAljeDE4X2F2X3ZiaV9zZXR1cChjeCk7CiAJaW5wdXRfY2hhbmdlKGN4KTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWNvcmUuaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWNvcmUuaAppbmRleCA3ODY5MDFkLi5jMTcyODIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1jb3JlLmgKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtY29yZS5oCkBAIC0zNywxMiArMzcsMTYgQEAKIAlDWDE4X0FWX0NPTVBPU0lURTcsCiAJQ1gxOF9BVl9DT01QT1NJVEU4LAogCi0JLyogUy1WaWRlbyBpbnB1dHMgY29uc2lzdCBvZiBvbmUgbHVtYSBpbnB1dCAoSW4xLUluNCkgT1JlZCB3aXRoIG9uZQorCS8qIFMtVmlkZW8gaW5wdXRzIGNvbnNpc3Qgb2Ygb25lIGx1bWEgaW5wdXQgKEluMS1JbjgpIE9SZWQgd2l0aCBvbmUKIAkgICBjaHJvbWEgaW5wdXQgKEluNS1JbjgpICovCiAJQ1gxOF9BVl9TVklERU9fTFVNQTEgPSAweDEwLAogCUNYMThfQVZfU1ZJREVPX0xVTUEyID0gMHgyMCwKIAlDWDE4X0FWX1NWSURFT19MVU1BMyA9IDB4MzAsCiAJQ1gxOF9BVl9TVklERU9fTFVNQTQgPSAweDQwLAorCUNYMThfQVZfU1ZJREVPX0xVTUE1ID0gMHg1MCwKKwlDWDE4X0FWX1NWSURFT19MVU1BNiA9IDB4NjAsCisJQ1gxOF9BVl9TVklERU9fTFVNQTcgPSAweDcwLAorCUNYMThfQVZfU1ZJREVPX0xVTUE4ID0gMHg4MCwKIAlDWDE4X0FWX1NWSURFT19DSFJPTUE0ID0gMHg0MDAsCiAJQ1gxOF9BVl9TVklERU9fQ0hST01BNSA9IDB4NTAwLAogCUNYMThfQVZfU1ZJREVPX0NIUk9NQTYgPSAweDYwMCwKQEAgLTI5MSwxNCArMjk1LDI0IEBACiAjZGVmaW5lIENYQURFQ19TRUxFQ1RfQVVESU9fU1RBTkRBUkRfRk0gICAgMHhGOSAgLyogRk0gcmFkaW8gKi8KICNkZWZpbmUgQ1hBREVDX1NFTEVDVF9BVURJT19TVEFOREFSRF9BVVRPICAweEZGICAvKiBBdXRvIGRldGVjdCAqLwogCisvKiBGbGFncyBvbiB3aGF0IHRvIHByZXNlcnZlIG9uIHdyaXRlIHRvIDB4NDAwLTB4NDAzIHdpdGggY3gxOF9hdl8uKl9ub19hY2ZnKCkqLworI2RlZmluZSBDWEFERUNfTk9fQUNGR19BRkUJMHgwMSAvKiBQcmVzZXJ2ZSAweDEwMC0weDEwNyAqLworI2RlZmluZSBDWEFERUNfTk9fQUNGR19QTEwJMHgwMiAvKiBQcmVzZXJ2ZSAweDEwOC0weDEwZiAqLworI2RlZmluZSBDWEFERUNfTk9fQUNGR19WSUQJMHgwNCAvKiBQcmVzZXJ2ZSAweDQ3MC0weDQ3ZiAqLworI2RlZmluZSBDWEFERUNfTk9fQUNGR19BTEwJMHgwNworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogY3gxOF9hdi1jb3JlLmMgCQkJCQkJCSAgICovCiBpbnQgY3gxOF9hdl93cml0ZShzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyLCB1OCB2YWx1ZSk7CiBpbnQgY3gxOF9hdl93cml0ZTQoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdTMyIHZhbHVlKTsKK2ludCBjeDE4X2F2X3dyaXRlX25vX2FjZmcoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdTggdmFsdWUsCisJCQkJaW50IG5vX2FjZmdfbWFzayk7CiB1OCBjeDE4X2F2X3JlYWQoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkcik7CiB1MzIgY3gxOF9hdl9yZWFkNChzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyKTsKIGludCBjeDE4X2F2X2FuZF9vcihzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyLCB1bnNpZ25lZCBtYXNrLCB1OCB2YWx1ZSk7CiBpbnQgY3gxOF9hdl9hbmRfb3I0KHN0cnVjdCBjeDE4ICpjeCwgdTE2IGFkZHIsIHUzMiBtYXNrLCB1MzIgdmFsdWUpOworaW50IGN4MThfYXZfYW5kX29yX25vX2FjZmcoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdW5zaWduZWQgbWFzaywgdTggdmFsdWUsCisJCQkJaW50IG5vX2FjZmdfbWFzayk7CiBpbnQgY3gxOF9hdl9jbWQoc3RydWN0IGN4MTggKmN4LCB1bnNpZ25lZCBpbnQgY21kLCB2b2lkICphcmcpOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtZmlybXdhcmUuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWZpcm13YXJlLmMKaW5kZXggNTI2ZTE0Mi4uYTFhNmFmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtZmlybXdhcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1maXJtd2FyZS5jCkBAIC0yOSw3ICsyOSw3IEBACiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdyA9IE5VTEw7CiAJdTMyIHNpemU7CiAJdTMyIHY7Ci0JdTggKnB0cjsKKwljb25zdCB1OCAqcHRyOwogCWludCBpOwogCiAJaWYgKHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBGV0ZJTEUsICZjeC0+ZGV2LT5kZXYpICE9IDApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNhcmRzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1jYXJkcy5jCmluZGV4IGJhY2NkMDcuLmMyNmUwZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNhcmRzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtY2FyZHMuYwpAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiY3gxOC1kcml2ZXIuaCIKICNpbmNsdWRlICJjeDE4LWNhcmRzLmgiCisjaW5jbHVkZSAiY3gxOC1hdi1jb3JlLmgiCiAjaW5jbHVkZSAiY3gxOC1pMmMuaCIKICNpbmNsdWRlIDxtZWRpYS9jczUzNDUuaD4KIApAQCAtNTQsMjIgKzU1LDIyIEBACiAJLmh3X2FsbCA9IENYMThfSFdfVFZFRVBST00gfCBDWDE4X0hXX1RVTkVSIHwKIAkJICBDWDE4X0hXX0NTNTM0NSB8IENYMThfSFdfRFZCLAogCS52aWRlb19pbnB1dHMgPSB7Ci0JCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMjM0MThfQ09NUE9TSVRFNyB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLCBDWDIzNDE4X1NWSURFTzEgICAgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gyMzQxOF9DT01QT1NJVEUzIH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzIsICAgIDIsIENYMjM0MThfU1ZJREVPMiAgICB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUyLCAyLCBDWDIzNDE4X0NPTVBPU0lURTQgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfVklEX1RVTkVSLCAgMCwgQ1gxOF9BVl9DT01QT1NJVEU3IH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzEsICAgIDEsIENYMThfQVZfU1ZJREVPMSAgICB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUxLCAxLCBDWDE4X0FWX0NPTVBPU0lURTMgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMiwgICAgMiwgQ1gxOF9BVl9TVklERU8yICAgIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTIsIDIsIENYMThfQVZfQ09NUE9TSVRFNCB9LAogCX0sCiAJLmF1ZGlvX2lucHV0cyA9IHsKIAkJeyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkgIENYMjM0MThfQVVESU84LCBDUzUzNDVfSU5fMSB8IENTNTM0NV9NQ0xLXzFfNSB9LAorCQkgIENYMThfQVZfQVVESU84LCBDUzUzNDVfSU5fMSB8IENTNTM0NV9NQ0xLXzFfNSB9LAogCQl7IENYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMSwKLQkJICBDWDIzNDE4X0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzIgfSwKKwkJICBDWDE4X0FWX0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzIgfSwKIAkJeyBDWDE4X0NBUkRfSU5QVVRfTElORV9JTjIsCi0JCSAgQ1gyMzQxOF9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8yIH0sCisJCSAgQ1gxOF9BVl9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8zIH0sCiAJfSwKIAkucmFkaW9faW5wdXQgPSB7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCQkgQ1gyMzQxOF9BVURJT19TRVJJQUwsIDAgfSwKKwkJCSBDWDE4X0FWX0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzQgfSwKIAkuZGRyID0gewogCQkvKiBFU01UIE0xM1MxMjgzMjRBLTVCIG1lbW9yeSAqLwogCQkuY2hpcF9jb25maWcgPSAweDAwMywKQEAgLTgxLDYgKzgyLDExIEBACiAJfSwKIAkuZ3Bpb19pbml0LmluaXRpYWxfdmFsdWUgPSAweDMwMDEsCiAJLmdwaW9faW5pdC5kaXJlY3Rpb24gPSAweDMwMDEsCisJLmdwaW9faTJjX3NsYXZlX3Jlc2V0ID0geworCQkuYWN0aXZlX2xvX21hc2sgPSAweDMwMDEsCisJCS5tc2Vjc19hc3NlcnRlZCA9IDEwLAorCQkubXNlY3NfcmVjb3ZlcnkgPSA0MCwKKwl9LAogCS5pMmMgPSAmY3gxOF9pMmNfc3RkLAogfTsKIApAQCAtOTQsMjIgKzEwMCwyMiBAQAogCS5od19hbGwgPSBDWDE4X0hXX1RWRUVQUk9NIHwgQ1gxOF9IV19UVU5FUiB8CiAJCSAgQ1gxOF9IV19DUzUzNDUgfCBDWDE4X0hXX0RWQiwKIAkudmlkZW9faW5wdXRzID0gewotCQl7IENYMThfQ0FSRF9JTlBVVF9WSURfVFVORVIsICAwLCBDWDIzNDE4X0NPTVBPU0lURTcgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMSwgICAgMSwgQ1gyMzQxOF9TVklERU8xICAgIH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTEsIDEsIENYMjM0MThfQ09NUE9TSVRFMyB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8yLCAgICAyLCBDWDIzNDE4X1NWSURFTzIgICAgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMiwgMiwgQ1gyMzQxOF9DT01QT1NJVEU0IH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMThfQVZfQ09NUE9TSVRFNyB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLCBDWDE4X0FWX1NWSURFTzEgICAgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gxOF9BVl9DT01QT1NJVEUzIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzIsICAgIDIsIENYMThfQVZfU1ZJREVPMiAgICB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUyLCAyLCBDWDE4X0FWX0NPTVBPU0lURTQgfSwKIAl9LAogCS5hdWRpb19pbnB1dHMgPSB7CiAJCXsgQ1gxOF9DQVJEX0lOUFVUX0FVRF9UVU5FUiwKLQkJICBDWDIzNDE4X0FVRElPOCwgQ1M1MzQ1X0lOXzEgfCBDUzUzNDVfTUNMS18xXzUgfSwKKwkJICBDWDE4X0FWX0FVRElPOCwgQ1M1MzQ1X0lOXzEgfCBDUzUzNDVfTUNMS18xXzUgfSwKIAkJeyBDWDE4X0NBUkRfSU5QVVRfTElORV9JTjEsCi0JCSAgQ1gyMzQxOF9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8yIH0sCisJCSAgQ1gxOF9BVl9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8yIH0sCiAJCXsgQ1gxOF9DQVJEX0lOUFVUX0xJTkVfSU4yLAotCQkgIENYMjM0MThfQVVESU9fU0VSSUFMLCBDUzUzNDVfSU5fMiB9LAorCQkgIENYMThfQVZfQVVESU9fU0VSSUFMLCBDUzUzNDVfSU5fMyB9LAogCX0sCiAJLnJhZGlvX2lucHV0ID0geyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkJIENYMjM0MThfQVVESU9fU0VSSUFMLCAwIH0sCisJCQkgQ1gxOF9BVl9BVURJT19TRVJJQUwsIENTNTM0NV9JTl80IH0sCiAJLmRkciA9IHsKIAkJLyogU2Ftc3VuZyBLNEQyNjMyMzhHLVZDMzMgbWVtb3J5ICovCiAJCS5jaGlwX2NvbmZpZyA9IDB4MDAzLApAQCAtMTIxLDYgKzEyNywxMSBAQAogCX0sCiAJLmdwaW9faW5pdC5pbml0aWFsX3ZhbHVlID0gMHgzMDAxLAogCS5ncGlvX2luaXQuZGlyZWN0aW9uID0gMHgzMDAxLAorCS5ncGlvX2kyY19zbGF2ZV9yZXNldCA9IHsKKwkJLmFjdGl2ZV9sb19tYXNrID0gMHgzMDAxLAorCQkubXNlY3NfYXNzZXJ0ZWQgPSAxMCwKKwkJLm1zZWNzX3JlY292ZXJ5ID0gNDAsCisJfSwKIAkuaTJjID0gJmN4MThfaTJjX3N0ZCwKIH07CiAKQEAgLTE0MSwxOSArMTUyLDE5IEBACiAJLmh3X2F1ZGlvX2N0cmwgPSBDWDE4X0hXX0NYMjM0MTgsCiAJLmh3X2FsbCA9IENYMThfSFdfVFVORVIsCiAJLnZpZGVvX2lucHV0cyA9IHsKLQkJeyBDWDE4X0NBUkRfSU5QVVRfVklEX1RVTkVSLCAgMCwgQ1gyMzQxOF9DT01QT1NJVEUyIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMThfQVZfQ09NUE9TSVRFMiB9LAogCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLAotCQkJQ1gyMzQxOF9TVklERU9fTFVNQTMgfCBDWDIzNDE4X1NWSURFT19DSFJPTUE0IH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTEsIDEsIENYMjM0MThfQ09NUE9TSVRFMSB9LAorCQkJQ1gxOF9BVl9TVklERU9fTFVNQTMgfCBDWDE4X0FWX1NWSURFT19DSFJPTUE0IH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTEsIDEsIENYMThfQVZfQ09NUE9TSVRFMSB9LAogCX0sCiAJLmF1ZGlvX2lucHV0cyA9IHsKIAkJeyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkgIENYMjM0MThfQVVESU84LCAwIH0sCisJCSAgQ1gxOF9BVl9BVURJTzgsIDAgfSwKIAkJeyBDWDE4X0NBUkRfSU5QVVRfTElORV9JTjEsCi0JCSAgQ1gyMzQxOF9BVURJT19TRVJJQUwsIDAgfSwKKwkJICBDWDE4X0FWX0FVRElPX1NFUklBTCwgMCB9LAogCX0sCiAJLnJhZGlvX2lucHV0ID0geyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkJIENYMjM0MThfQVVESU9fU0VSSUFMLCAwIH0sCisJCQkgQ1gxOF9BVl9BVURJT19TRVJJQUwsIDAgfSwKIAkudHVuZXJzID0gewogCQl7IC5zdGQgPSBWNEwyX1NURF9BTEwsIC50dW5lciA9IFRVTkVSX1hDMjAyOCB9LAogCX0sCkBAIC0xODMsMjMgKzE5NCwyNiBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCBjeDE4X2NhcmQgY3gxOF9jYXJkX21wYzcxOCA9IHsKIAkudHlwZSA9IENYMThfQ0FSRF9ZVUFOX01QQzcxOCwKIAkubmFtZSA9ICJZdWFuIE1QQzcxOCIsCi0JLmNvbW1lbnQgPSAiTm90IHlldCBzdXBwb3J0ZWQhXG4iLAotCS52NGwyX2NhcGFiaWxpdGllcyA9IDAsCisJLmNvbW1lbnQgPSAiU29tZSBDb21wb3NpdGUgYW5kIFMtVmlkZW8gaW5wdXRzIGFyZSBjdXJyZW50bHkgd29ya2luZy5cbiIsCisJLnY0bDJfY2FwYWJpbGl0aWVzID0gQ1gxOF9DQVBfRU5DT0RFUiwKIAkuaHdfYXVkaW9fY3RybCA9IENYMThfSFdfQ1gyMzQxOCwKIAkuaHdfYWxsID0gQ1gxOF9IV19UVU5FUiwKIAkudmlkZW9faW5wdXRzID0gewotCQl7IENYMThfQ0FSRF9JTlBVVF9WSURfVFVORVIsICAwLCBDWDIzNDE4X0NPTVBPU0lURTcgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMSwgICAgMSwgQ1gyMzQxOF9TVklERU8xICAgIH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTEsIDEsIENYMjM0MThfQ09NUE9TSVRFMyB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9WSURfVFVORVIsICAwLCBDWDE4X0FWX0NPTVBPU0lURTIgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMSwgICAgMSwKKwkJCQlDWDE4X0FWX1NWSURFT19MVU1BMyB8IENYMThfQVZfU1ZJREVPX0NIUk9NQTQgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gxOF9BVl9DT01QT1NJVEUxIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzIsICAgIDIsCisJCQkJQ1gxOF9BVl9TVklERU9fTFVNQTcgfCBDWDE4X0FWX1NWSURFT19DSFJPTUE4IH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTIsIDIsIENYMThfQVZfQ09NUE9TSVRFNiB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUzLCAyLCBDWDE4X0FWX0NPTVBPU0lURTMgfSwKIAl9LAogCS5hdWRpb19pbnB1dHMgPSB7Ci0JCXsgQ1gxOF9DQVJEX0lOUFVUX0FVRF9UVU5FUiwKLQkJICBDWDIzNDE4X0FVRElPOCwgMCB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMSwKLQkJICBDWDIzNDE4X0FVRElPX1NFUklBTCwgMCB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsIENYMThfQVZfQVVESU81LCAgICAgICAwIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0xJTkVfSU4xLCAgQ1gxOF9BVl9BVURJT19TRVJJQUwsIDAgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfTElORV9JTjIsICBDWDE4X0FWX0FVRElPX1NFUklBTCwgMCB9LAogCX0sCi0JLnJhZGlvX2lucHV0ID0geyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkJIENYMjM0MThfQVVESU9fU0VSSUFMLCAwIH0sCisJLnJhZGlvX2lucHV0ID0geyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLCBDWDE4X0FWX0FVRElPX1NFUklBTCwgMCB9LAogCS50dW5lcnMgPSB7CiAJCS8qIFhDMzAyOCB0dW5lciAqLwogCQl7IC5zdGQgPSBWNEwyX1NURF9BTEwsIC50dW5lciA9IFRVTkVSX1hDMjAyOCB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtY2FyZHMuaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNhcmRzLmgKaW5kZXggYmNjYjY3Zi4uZGMyZGQ5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtY2FyZHMuaAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1jYXJkcy5oCkBAIC0zNiwzNiArMzYsNiBAQAogI2RlZmluZQlDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMiAJNQogI2RlZmluZQlDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMyAJNgogCi1lbnVtIGN4MzQxODBfdmlkZW9faW5wdXQgewotCS8qIENvbXBvc2l0ZSB2aWRlbyBpbnB1dHMgSW4xLUluOCAqLwotCUNYMjM0MThfQ09NUE9TSVRFMSA9IDEsCi0JQ1gyMzQxOF9DT01QT1NJVEUyLAotCUNYMjM0MThfQ09NUE9TSVRFMywKLQlDWDIzNDE4X0NPTVBPU0lURTQsCi0JQ1gyMzQxOF9DT01QT1NJVEU1LAotCUNYMjM0MThfQ09NUE9TSVRFNiwKLQlDWDIzNDE4X0NPTVBPU0lURTcsCi0JQ1gyMzQxOF9DT01QT1NJVEU4LAotCi0JLyogUy1WaWRlbyBpbnB1dHMgY29uc2lzdCBvZiBvbmUgbHVtYSBpbnB1dCAoSW4xLUluNCkgT1JlZCB3aXRoIG9uZQotCSAgIGNocm9tYSBpbnB1dCAoSW41LUluOCkgKi8KLQlDWDIzNDE4X1NWSURFT19MVU1BMSA9IDB4MTAsCi0JQ1gyMzQxOF9TVklERU9fTFVNQTIgPSAweDIwLAotCUNYMjM0MThfU1ZJREVPX0xVTUEzID0gMHgzMCwKLQlDWDIzNDE4X1NWSURFT19MVU1BNCA9IDB4NDAsCi0JQ1gyMzQxOF9TVklERU9fQ0hST01BNCA9IDB4NDAwLAotCUNYMjM0MThfU1ZJREVPX0NIUk9NQTUgPSAweDUwMCwKLQlDWDIzNDE4X1NWSURFT19DSFJPTUE2ID0gMHg2MDAsCi0JQ1gyMzQxOF9TVklERU9fQ0hST01BNyA9IDB4NzAwLAotCUNYMjM0MThfU1ZJREVPX0NIUk9NQTggPSAweDgwMCwKLQotCS8qIFMtVmlkZW8gYWxpYXNlcyBmb3IgY29tbW9uIGx1bWEvY2hyb21hIGNvbWJpbmF0aW9ucyAqLwotCUNYMjM0MThfU1ZJREVPMSA9IDB4NTEwLAotCUNYMjM0MThfU1ZJREVPMiA9IDB4NjIwLAotCUNYMjM0MThfU1ZJREVPMyA9IDB4NzMwLAotCUNYMjM0MThfU1ZJREVPNCA9IDB4ODQwLAotfTsKLQogLyogYXVkaW8gaW5wdXRzICovCiAjZGVmaW5lCUNYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIJMQogI2RlZmluZQlDWDE4X0NBUkRfSU5QVVRfTElORV9JTjEgCTIKQEAgLTc1LDE2ICs0NSw2IEBACiAjZGVmaW5lIENYMThfQ0FSRF9NQVhfQVVESU9fSU5QVVRTIDMKICNkZWZpbmUgQ1gxOF9DQVJEX01BWF9UVU5FUlMgIAkgICAyCiAKLWVudW0gY3gyMzQxOF9hdWRpb19pbnB1dCB7Ci0JLyogQXVkaW8gaW5wdXRzOiBzZXJpYWwgb3IgSW40LUluOCAqLwotCUNYMjM0MThfQVVESU9fU0VSSUFMLAotCUNYMjM0MThfQVVESU80ID0gNCwKLQlDWDIzNDE4X0FVRElPNSwKLQlDWDIzNDE4X0FVRElPNiwKLQlDWDIzNDE4X0FVRElPNywKLQlDWDIzNDE4X0FVRElPOCwKLX07Ci0KIC8qIFY0TDIgY2FwYWJpbGl0eSBhbGlhc2VzICovCiAjZGVmaW5lIENYMThfQ0FQX0VOQ09ERVIgKFY0TDJfQ0FQX1ZJREVPX0NBUFRVUkUgfCBWNEwyX0NBUF9UVU5FUiB8IFwKIAkJCSAgVjRMMl9DQVBfQVVESU8gfCBWNEwyX0NBUF9SRUFEV1JJVEUpCkBAIC0xMTgsNiArNzgsMTMgQEAKIAl1MzIgaW5pdGlhbF92YWx1ZTsKIH07CiAKK3N0cnVjdCBjeDE4X2dwaW9faTJjX3NsYXZlX3Jlc2V0IHsKKwl1MzIgYWN0aXZlX2xvX21hc2s7IC8qIEdQSU8gb3V0cHV0cyB0aGF0IHJlc2V0IGkyYyBjaGlwcyB3aGVuIGxvdyAqLworCXUzMiBhY3RpdmVfaGlfbWFzazsgLyogR1BJTyBvdXRwdXRzIHRoYXQgcmVzZXQgaTJjIGNoaXBzIHdoZW4gaGlnaCAqLworCWludCBtc2Vjc19hc3NlcnRlZDsgLyogdGltZSBwZXJpb2QgcmVzZXQgbXVzdCByZW1haW4gYXNzZXJ0ZWQgKi8KKwlpbnQgbXNlY3NfcmVjb3Zlcnk7IC8qIHRpbWUgYWZ0ZXIgZGVhc3NlcnQgZm9yIGNoaXBzIHRvIGJlIHJlYWR5ICovCit9OworCiBzdHJ1Y3QgY3gxOF9jYXJkX3R1bmVyIHsKIAl2NGwyX3N0ZF9pZCBzdGQ7IAkvKiBzdGFuZGFyZCBmb3Igd2hpY2ggdGhlIHR1bmVyIGlzIHN1aXRhYmxlICovCiAJaW50IAkgICAgdHVuZXI7IAkvKiB0dW5lciBJRCAoZnJvbSB0dW5lci5oKSAqLwpAQCAtMTU0LDcgKzEyMSw4IEBACiAKIAkvKiBHUElPIGNhcmQtc3BlY2lmaWMgc2V0dGluZ3MgKi8KIAl1OCB4Y2VpdmVfcGluOyAJCS8qIFhDZWl2ZSB0dW5lciBHUElPIHJlc2V0IHBpbiAqLwotCXN0cnVjdCBjeDE4X2dwaW9faW5pdCAJCWdwaW9faW5pdDsKKwlzdHJ1Y3QgY3gxOF9ncGlvX2luaXQgCQkgZ3Bpb19pbml0OworCXN0cnVjdCBjeDE4X2dwaW9faTJjX3NsYXZlX3Jlc2V0IGdwaW9faTJjX3NsYXZlX3Jlc2V0OwogCiAJc3RydWN0IGN4MThfY2FyZF90dW5lciB0dW5lcnNbQ1gxOF9DQVJEX01BWF9UVU5FUlNdOwogCXN0cnVjdCBjeDE4X2NhcmRfdHVuZXJfaTJjICppMmM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1kdmIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWR2Yi5jCmluZGV4IGM5NzQ0MTcuLmNhZTM4OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWR2Yi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWR2Yi5jCkBAIC02OSwxMSArNjksMjEgQEAKIAlzdHJ1Y3QgZHZiX2RlbXV4ICpkZW11eCA9IGZlZWQtPmRlbXV4OwogCXN0cnVjdCBjeDE4X3N0cmVhbSAqc3RyZWFtID0gKHN0cnVjdCBjeDE4X3N0cmVhbSAqKSBkZW11eC0+cHJpdjsKIAlzdHJ1Y3QgY3gxOCAqY3ggPSBzdHJlYW0tPmN4OwotCWludCByZXQgPSAtRUlOVkFMOworCWludCByZXQ7CiAJdTMyIHY7CiAKIAlDWDE4X0RFQlVHX0lORk8oIlN0YXJ0IGZlZWQ6IHBpZCA9IDB4JXggaW5kZXggPSAlZFxuIiwKIAkJCWZlZWQtPnBpZCwgZmVlZC0+aW5kZXgpOworCisJbXV0ZXhfbG9jaygmY3gtPnNlcmlhbGl6ZV9sb2NrKTsKKwlyZXQgPSBjeDE4X2luaXRfb25fZmlyc3Rfb3BlbihjeCk7CisJbXV0ZXhfdW5sb2NrKCZjeC0+c2VyaWFsaXplX2xvY2spOworCWlmIChyZXQpIHsKKwkJQ1gxOF9FUlIoIkZhaWxlZCB0byBpbml0aWFsaXplIGZpcm13YXJlIHN0YXJ0aW5nIERWQiBmZWVkXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJcmV0ID0gLUVJTlZBTDsKKwogCXN3aXRjaCAoY3gtPmNhcmQtPnR5cGUpIHsKIAljYXNlIENYMThfQ0FSRF9IVlJfMTYwMF9FU01UOgogCWNhc2UgQ1gxOF9DQVJEX0hWUl8xNjAwX1NBTVNVTkc6CkBAIC0xMDEsNiArMTExLDExIEBACiAJCWlmIChzdHJlYW0tPmR2Yi5mZWVkaW5nKysgPT0gMCkgewogCQkJQ1gxOF9ERUJVR19JTkZPKCJTdGFydGluZyBUcmFuc3BvcnQgRE1BXG4iKTsKIAkJCXJldCA9IGN4MThfc3RhcnRfdjRsMl9lbmNvZGVfc3RyZWFtKHN0cmVhbSk7CisJCQlpZiAocmV0IDwgMCkgeworCQkJCUNYMThfREVCVUdfSU5GTygKKwkJCQkJIkZhaWxlZCB0byBzdGFydCBUcmFuc3BvcnQgRE1BXG4iKTsKKwkJCQlzdHJlYW0tPmR2Yi5mZWVkaW5nLS07CisJCQl9CiAJCX0gZWxzZQogCQkJcmV0ID0gMDsKIAkJbXV0ZXhfdW5sb2NrKCZzdHJlYW0tPmR2Yi5mZWVkbG9jayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1ncGlvLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1ncGlvLmMKaW5kZXggY2ViNjM2NS4uYjMwMjgzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZ3Bpby5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWdwaW8uYwpAQCAtNTMsMTAgKzUzLDM0IEBACiAJd3JpdGVfcmVnKCgoZGlyICYgMHhmZmZmKSA8PCAxNikgfCAodmFsICYgMHhmZmZmKSwKIAkJCUNYMThfUkVHX0dQSU9fT1VUMSk7CiAJd3JpdGVfcmVnKGRpciAmIDB4ZmZmZjAwMDAsIENYMThfUkVHX0dQSU9fRElSMik7Ci0Jd3JpdGVfcmVnKChkaXIgJiAweGZmZmYwMDAwKSB8ICgodmFsICYgMHhmZmZmMDAwMCkgPj4gMTYpLAorCXdyaXRlX3JlZ19zeW5jKChkaXIgJiAweGZmZmYwMDAwKSB8ICgodmFsICYgMHhmZmZmMDAwMCkgPj4gMTYpLAogCQkJQ1gxOF9SRUdfR1BJT19PVVQyKTsKIH0KIAordm9pZCBjeDE4X3Jlc2V0X2kyY19zbGF2ZXNfZ3BpbyhzdHJ1Y3QgY3gxOCAqY3gpCit7CisJY29uc3Qgc3RydWN0IGN4MThfZ3Bpb19pMmNfc2xhdmVfcmVzZXQgKnA7CisKKwlwID0gJmN4LT5jYXJkLT5ncGlvX2kyY19zbGF2ZV9yZXNldDsKKworCWlmICgocC0+YWN0aXZlX2xvX21hc2sgfCBwLT5hY3RpdmVfaGlfbWFzaykgPT0gMCkKKwkJcmV0dXJuOworCisJLyogQXNzdW1pbmcgdGhhdCB0aGUgbWFza3MgYXJlIGEgc3Vic2V0IG9mIHRoZSBiaXRzIGluIGdwaW9fZGlyICovCisKKwkvKiBBc3NlcnQgKi8KKwljeC0+Z3Bpb192YWwgPQorCQkoY3gtPmdwaW9fdmFsIHwgcC0+YWN0aXZlX2hpX21hc2spICYgfihwLT5hY3RpdmVfbG9fbWFzayk7CisJZ3Bpb193cml0ZShjeCk7CisJc2NoZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUobXNlY3NfdG9famlmZmllcyhwLT5tc2Vjc19hc3NlcnRlZCkpOworCisJLyogRGVhc3NlcnQgKi8KKwljeC0+Z3Bpb192YWwgPQorCQkoY3gtPmdwaW9fdmFsIHwgcC0+YWN0aXZlX2xvX21hc2spICYgfihwLT5hY3RpdmVfaGlfbWFzayk7CisJZ3Bpb193cml0ZShjeCk7CisJc2NoZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUobXNlY3NfdG9famlmZmllcyhwLT5tc2Vjc19yZWNvdmVyeSkpOworfQorCiB2b2lkIGN4MThfZ3Bpb19pbml0KHN0cnVjdCBjeDE4ICpjeCkKIHsKIAljeC0+Z3Bpb19kaXIgPSBjeC0+Y2FyZC0+Z3Bpb19pbml0LmRpcmVjdGlvbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWdwaW8uaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWdwaW8uaAppbmRleCA0MWJhYzg4Li41MjVjMzI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1ncGlvLmgKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZ3Bpby5oCkBAIC0yMSw0ICsyMSw1IEBACiAgKi8KIAogdm9pZCBjeDE4X2dwaW9faW5pdChzdHJ1Y3QgY3gxOCAqY3gpOwordm9pZCBjeDE4X3Jlc2V0X2kyY19zbGF2ZXNfZ3BpbyhzdHJ1Y3QgY3gxOCAqY3gpOwogaW50IGN4MThfcmVzZXRfdHVuZXJfZ3Bpbyh2b2lkICpkZXYsIGludCBjbWQsIGludCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1pMmMuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWkyYy5jCmluZGV4IDFkNmM1MWEuLjY4MGJjNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWkyYy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWkyYy5jCkBAIC00MDUsNiArNDA1LDggQEAKIAljeDE4X3NldHNjbCgmY3gtPmkyY19hbGdvX2NiX2RhdGFbMV0sIDEpOwogCWN4MThfc2V0c2RhKCZjeC0+aTJjX2FsZ29fY2JfZGF0YVsxXSwgMSk7CiAKKwljeDE4X3Jlc2V0X2kyY19zbGF2ZXNfZ3BpbyhjeCk7CisKIAlyZXR1cm4gaTJjX2JpdF9hZGRfYnVzKCZjeC0+aTJjX2FkYXBbMF0pIHx8CiAJCWkyY19iaXRfYWRkX2J1cygmY3gtPmkyY19hZGFwWzFdKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gyNTg0MC9jeDI1ODQwLWNvcmUuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gyNTg0MC9jeDI1ODQwLWNvcmUuYwppbmRleCA2MDdlZmRjLi4xZGE2ZjEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MjU4NDAvY3gyNTg0MC1jb3JlLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtY29yZS5jCkBAIC00MzMsNyArNDMzLDcgQEAKIAkJaW50IGNocm9tYSA9IHZpZF9pbnB1dCAmIDB4ZjAwOwogCiAJCWlmICgodmlkX2lucHV0ICYgfjB4ZmYwKSB8fAotCQkgICAgbHVtYSA8IENYMjU4NDBfU1ZJREVPX0xVTUExIHx8IGx1bWEgPiBDWDI1ODQwX1NWSURFT19MVU1BNCB8fAorCQkgICAgbHVtYSA8IENYMjU4NDBfU1ZJREVPX0xVTUExIHx8IGx1bWEgPiBDWDI1ODQwX1NWSURFT19MVU1BOCB8fAogCQkgICAgY2hyb21hIDwgQ1gyNTg0MF9TVklERU9fQ0hST01BNCB8fCBjaHJvbWEgPiBDWDI1ODQwX1NWSURFT19DSFJPTUE4KSB7CiAJCQl2NGxfZXJyKGNsaWVudCwgIjB4JTA0eCBpcyBub3QgYSB2YWxpZCB2aWRlbyBpbnB1dCFcbiIsCiAJCQkJdmlkX2lucHV0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gyNTg0MC9jeDI1ODQwLWZpcm13YXJlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MjU4NDAvY3gyNTg0MC1maXJtd2FyZS5jCmluZGV4IDYyMGQyOTUuLjhkNDg5YTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gyNTg0MC9jeDI1ODQwLWZpcm13YXJlLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtZmlybXdhcmUuYwpAQCAtNzksNyArNzksNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGZ3X3dyaXRlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHU4ICpkYXRhLCBpbnQgc2l6ZSkKK3N0YXRpYyBpbnQgZndfd3JpdGUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgY29uc3QgdTggKmRhdGEsIGludCBzaXplKQogewogCWlmIChpMmNfbWFzdGVyX3NlbmQoY2xpZW50LCBkYXRhLCBzaXplKSA8IHNpemUpIHsKIAkJdjRsX2VycihjbGllbnQsICJmaXJtd2FyZSBsb2FkIGkyYyBmYWlsdXJlXG4iKTsKQEAgLTkzLDcgKzkzLDggQEAKIHsKIAlzdHJ1Y3QgY3gyNTg0MF9zdGF0ZSAqc3RhdGUgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3ID0gTlVMTDsKLQl1OCBidWZmZXJbNF0sICpwdHI7CisJdTggYnVmZmVyW0ZXU0VORF07CisJY29uc3QgdTggKnB0cjsKIAlpbnQgc2l6ZSwgcmV0dmFsOwogCiAJaWYgKHN0YXRlLT5pc19jeDIzODg1KQpAQCAtMTA4LDI5ICsxMDksMjMgQEAKIAogCWJ1ZmZlclswXSA9IDB4MDg7CiAJYnVmZmVyWzFdID0gMHgwMjsKLQlidWZmZXJbMl0gPSBmdy0+ZGF0YVswXTsKLQlidWZmZXJbM10gPSBmdy0+ZGF0YVsxXTsKLQlyZXR2YWwgPSBmd193cml0ZShjbGllbnQsIGJ1ZmZlciwgNCk7CiAKLQlpZiAocmV0dmFsIDwgMCkgewotCQlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKLQkJcmV0dXJuIHJldHZhbDsKLQl9Ci0KLQlzaXplID0gZnctPnNpemUgLSAyOworCXNpemUgPSBmdy0+c2l6ZTsKIAlwdHIgPSBmdy0+ZGF0YTsKIAl3aGlsZSAoc2l6ZSA+IDApIHsKLQkJcHRyWzBdID0gMHgwODsKLQkJcHRyWzFdID0gMHgwMjsKLQkJcmV0dmFsID0gZndfd3JpdGUoY2xpZW50LCBwdHIsIG1pbihGV1NFTkQsIHNpemUgKyAyKSk7CisJCWludCBsZW4gPSBtaW4oRldTRU5EIC0gMiwgc2l6ZSk7CisKKwkJbWVtY3B5KGJ1ZmZlciArIDIsIHB0ciwgbGVuKTsKKworCQlyZXR2YWwgPSBmd193cml0ZShjbGllbnQsIGJ1ZmZlciwgbGVuICsgMik7CiAKIAkJaWYgKHJldHZhbCA8IDApIHsKIAkJCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCQkJcmV0dXJuIHJldHZhbDsKIAkJfQogCi0JCXNpemUgLT0gRldTRU5EIC0gMjsKLQkJcHRyICs9IEZXU0VORCAtIDI7CisJCXNpemUgLT0gbGVuOworCQlwdHIgKz0gbGVuOwogCX0KIAogCWVuZF9md19sb2FkKGNsaWVudCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4ODgvY3g4OC1hbHNhLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4ODgvY3g4OC1hbHNhLmMKaW5kZXggZTk3NmZjNi4uODBjODg4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDg4L2N4ODgtYWxzYS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3g4OC9jeDg4LWFsc2EuYwpAQCAtMzMyLDYgKzMzMiwxMiBAQAogCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CiAJaW50IGVycjsKIAorCWlmICghY2hpcCkgeworCQlwcmludGsoS0VSTl9FUlIgIkJVRzogY3g4OCBjYW4ndCBmaW5kIGRldmljZSBzdHJ1Y3QuIgorCQkJCSIgQ2FuJ3QgcHJvY2VlZCB3aXRoIG9wZW5cbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKIAllcnIgPSBzbmRfcGNtX2h3X2NvbnN0cmFpbnRfcG93MihydW50aW1lLCAwLCBTTkRSVl9QQ01fSFdfUEFSQU1fUEVSSU9EUyk7CiAJaWYgKGVyciA8IDApCiAJCWdvdG8gX2Vycm9yOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9kYWJmaXJtd2FyZS5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9kYWJmaXJtd2FyZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYmQ5MjYzLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZGFiZmlybXdhcmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDE0MTUgKzAsMCBAQAotLyoKLSAqIGRhYmRhdGEuaCAtIGRhYiB1c2IgZmlybXdhcmUgYW5kIGJpdHN0cmVhbSBkYXRhCi0gKgotICogQ29weXJpZ2h0IChDKSAxOTk5IEJheUNvbSBHbWJICi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCByZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlCi0gKiBjb2RlIHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBjb21tZW50IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbi4KLSAqLwotCi1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBmaXJtd2FyZVtdID0gewotCi17ICAyLCAweDAwMDAsIDAsIHsweDIxLDB4NTd9IH0sCi17ICAzLCAweDAwMDMsIDAsIHsweDAyLDB4MDEsMHg2Nn0gfSwKLXsgIDMsIDB4MDAwYiwgMCwgezB4MDIsMHgwMSwweDY2fSB9LAoteyAgMywgMHgwMDEzLCAwLCB7MHgwMiwweDAxLDB4NjZ9IH0sCi17ICAzLCAweDAwMWIsIDAsIHsweDAyLDB4MDEsMHg2Nn0gfSwKLXsgIDMsIDB4MDAyMywgMCwgezB4MDIsMHgwMSwweDY2fSB9LAoteyAgMywgMHgwMDJiLCAwLCB7MHgwMiwweDAxLDB4NjZ9IH0sCi17ICAzLCAweDAwMzMsIDAsIHsweDAyLDB4MDMsMHgwZn0gfSwKLXsgIDMsIDB4MDAzYiwgMCwgezB4MDIsMHgwMSwweDY2fSB9LAoteyAgMywgMHgwMDQzLCAwLCB7MHgwMiwweDAxLDB4MDB9IH0sCi17ICAzLCAweDAwNGIsIDAsIHsweDAyLDB4MDEsMHg2Nn0gfSwKLXsgIDMsIDB4MDA1MywgMCwgezB4MDIsMHgwMSwweDY2fSB9LAoteyAgMywgMHgwMDViLCAwLCB7MHgwMiwweDA0LDB4YmR9IH0sCi17ICAzLCAweDAwNjMsIDAsIHsweDAyLDB4MDEsMHg2N30gfSwKLXsgIDMsIDB4MDEwMCwgMCwgezB4MDIsMHgwYywweDVhfSB9LAoteyAgMywgMHgwMTA0LCAwLCB7MHgwMiwweDAxLDB4ZWR9IH0sCi17ICAzLCAweDAxMDgsIDAsIHsweDAyLDB4MDIsMHg1MX0gfSwKLXsgIDMsIDB4MDEwYywgMCwgezB4MDIsMHgwMiwweDdjfSB9LAoteyAgMywgMHgwMTEwLCAwLCB7MHgwMiwweDAyLDB4ZTR9IH0sCi17ICAxLCAweDAxMTQsIDAsIHsweDMyfSB9LAoteyAgMSwgMHgwMTE4LCAwLCB7MHgzMn0gfSwKLXsgIDMsIDB4MDExYywgMCwgezB4MDIsMHgwNSwweGZkfSB9LAoteyAgMywgMHgwMTIwLCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxMjQsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDEyOCwgMCwgezB4MDIsMHgwNCwweDNjfSB9LAoteyAgMywgMHgwMTJjLCAwLCB7MHgwMiwweDA0LDB4NmF9IH0sCi17ICAzLCAweDAxMzAsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDEzNCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTM4LCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxM2MsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDE0MCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTQ0LCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxNDgsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDE0YywgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTUwLCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxNTQsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgMTAsIDB4MDE1NywgMCwgezB4NzUsMHg4MSwweDdmLDB4ZTUsMHg4MiwweDYwLDB4MDMsMHgwMiwweDAxLDB4NjF9IH0sCi17ICA1LCAweDAxNjEsIDAsIHsweDEyLDB4MDcsMHg2ZiwweDIxLDB4NjR9IH0sCi17ICAxLCAweDAxNjYsIDAsIHsweDMyfSB9LAoteyAxNCwgMHgwMTY3LCAwLCB7MHhjMCwweGQwLDB4YzAsMHg4NiwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhlMCwweDkwLDB4N2YsMHg5NywweGUwfSB9LAoteyAxNCwgMHgwMTc1LCAwLCB7MHg0NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4NjksMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSB9LAoteyAxNCwgMHgwMTgzLCAwLCB7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSB9LAoteyAxNCwgMHgwMTkxLCAwLCB7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwfSB9LAoteyAgMywgMHgwMTlmLCAwLCB7MHg1NSwweDdmLDB4ZjB9IH0sCi17IDE0LCAweDAxYTIsIDAsIHsweDkwLDB4N2YsMHg5YSwweGUwLDB4MzAsMHhlNCwweDIzLDB4OTAsMHg3ZiwweDY4LDB4ZjAsMHhmMCwweGYwLDB4ZjB9IH0sCi17IDE0LCAweDAxYjAsIDAsIHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjB9IH0sCi17IDE0LCAweDAxYmUsIDAsIHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjB9IH0sCi17IDE0LCAweDAxY2MsIDAsIHsweGU1LDB4ZDgsMHhjMiwweGUzLDB4ZjUsMHhkOCwweGQwLDB4ZTAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ODZ9IH0sCi17ICAzLCAweDAxZGEsIDAsIHsweGQwLDB4ZDAsMHgzMn0gfSwKLXsgIDgsIDB4MDFkZCwgMCwgezB4NzUsMHg4NiwweDAwLDB4OTAsMHhmZiwweGMzLDB4N2MsMHgwNX0gfSwKLXsgIDcsIDB4MDFlNSwgMCwgezB4YTMsMHhlNSwweDgyLDB4NDUsMHg4MywweDcwLDB4Zjl9IH0sCi17ICAxLCAweDAxZWMsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgwMWVkLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweGQwfSB9LAoteyAxNCwgMHgwMWZiLCAwLCB7MHg3NSwweGQwLDB4MDAsMHhjMCwweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTQsMHhmNSwweDkxfSB9LAoteyAxMywgMHgwMjA5LCAwLCB7MHg5MCwweDg4LDB4MDAsMHhlMCwweGY1LDB4NDEsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAyLDB4ZjAsMHg5MH0gfSwKLXsgIDksIDB4MDIxNiwgMCwgezB4N2YsMHhhYiwweDc0LDB4MDIsMHhmMCwweGU1LDB4MzIsMHg2MCwweDIxfSB9LAoteyAgNCwgMHgwMjFmLCAwLCB7MHg3YSwweDAwLDB4N2IsMHgwMH0gfSwKLXsgMTEsIDB4MDIyMywgMCwgezB4YzMsMHhlYSwweDk0LDB4MTgsMHhlYiwweDY0LDB4ODAsMHg5NCwweDgwLDB4NTAsMHgxMn0gfSwKLXsgMTQsIDB4MDIyZSwgMCwgezB4OTAsMHg3ZiwweDY5LDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweDBhLDB4YmEsMHgwMH0gfSwKLXsgIDIsIDB4MDIzYywgMCwgezB4MDEsMHgwYn0gfSwKLXsgIDIsIDB4MDIzZSwgMCwgezB4ODAsMHhlM30gfSwKLXsgIDIsIDB4MDI0MCwgMCwgezB4ZDAsMHg4Nn0gfSwKLXsgMTQsIDB4MDI0MiwgMCwgezB4ZDAsMHhkMCwweGQwLDB4MDMsMHhkMCwweDAyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMH0gfSwKLXsgIDEsIDB4MDI1MCwgMCwgezB4MzJ9IH0sCi17IDE0LCAweDAyNTEsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGQwLDB4NzUsMHhkMCwweDAwLDB4YzB9IH0sCi17IDE0LCAweDAyNWYsIDAsIHsweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTQsMHhmNSwweDkxLDB4OTAsMHg3ZiwweGFiLDB4NzR9IH0sCi17ICA0LCAweDAyNmQsIDAsIHsweDA0LDB4ZjAsMHhkMCwweDg2fSB9LAoteyAxMSwgMHgwMjcxLCAwLCB7MHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxNCwgMHgwMjdjLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0fSB9LAoteyAxNCwgMHgwMjhhLCAwLCB7MHhjMCwweDA1LDB4YzAsMHgwNiwweGMwLDB4MDcsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4ZDAsMHg3NSwweGQwfSB9LAoteyAxMywgMHgwMjk4LCAwLCB7MHgwMCwweGMwLDB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNCwweGY1LDB4OTEsMHg5MH0gfSwKLXsgMTIsIDB4MDJhNSwgMCwgezB4N2YsMHhhYiwweDc0LDB4MDgsMHhmMCwweDc1LDB4NmUsMHgwMCwweDc1LDB4NmYsMHgwMiwweDEyfSB9LAoteyAgNiwgMHgwMmIxLCAwLCB7MHgxMSwweDQ0LDB4NzUsMHg3MCwweDM5LDB4NzV9IH0sCi17ICA2LCAweDAyYjcsIDAsIHsweDcxLDB4MGMsMHg3NSwweDcyLDB4MDIsMHgxMn0gfSwKLXsgMTIsIDB4MDJiZCwgMCwgezB4MTEsMHg3NSwweDkwLDB4N2YsMHhkNiwweGU0LDB4ZjAsMHg3NSwweGQ4LDB4MjAsMHhkMCwweDg2fSB9LAoteyAxNCwgMHgwMmM5LCAwLCB7MHhkMCwweGQwLDB4ZDAsMHgwMSwweGQwLDB4MDAsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDUsMHhkMCwweDA0fSB9LAoteyAxMywgMHgwMmQ3LCAwLCB7MHhkMCwweDAzLDB4ZDAsMHgwMiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTQsIDB4MDJlNCwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHg3NSwweGQwLDB4MDAsMHhjMH0gfSwKLXsgMTQsIDB4MDJmMiwgMCwgezB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNCwweGY1LDB4OTEsMHg5MCwweDdmLDB4YWIsMHg3NH0gfSwKLXsgIDQsIDB4MDMwMCwgMCwgezB4MTAsMHhmMCwweGQwLDB4ODZ9IH0sCi17IDExLCAweDAzMDQsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDE0LCAweDAzMGYsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDR9IH0sCi17IDE0LCAweDAzMWQsIDAsIHsweGMwLDB4MDUsMHhjMCwweDA2LDB4YzAsMHgwNywweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHhkMCwweDc1LDB4ZDB9IH0sCi17IDEyLCAweDAzMmIsIDAsIHsweDAwLDB4YzAsMHg4NiwweDc1LDB4ODYsMHgwMCwweDc1LDB4NmUsMHgwMCwweDc1LDB4NmYsMHgwMn0gfSwKLXsgIDcsIDB4MDMzNywgMCwgezB4MTIsMHgxMSwweDQ0LDB4NzUsMHg3MCwweDQwLDB4NzV9IH0sCi17ICA2LCAweDAzM2UsIDAsIHsweDcxLDB4MGMsMHg3NSwweDcyLDB4MDIsMHgxMn0gfSwKLXsgMTQsIDB4MDM0NCwgMCwgezB4MTEsMHg3NSwweDkwLDB4N2YsMHhkNiwweDc0LDB4MDIsMHhmMCwweDkwLDB4N2YsMHhkNiwweDc0LDB4MDYsMHhmMH0gfSwKLXsgIDUsIDB4MDM1MiwgMCwgezB4NzUsMHhkOCwweDEwLDB4ZDAsMHg4Nn0gfSwKLXsgMTQsIDB4MDM1NywgMCwgezB4ZDAsMHhkMCwweGQwLDB4MDEsMHhkMCwweDAwLDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDA1LDB4ZDAsMHgwNH0gfSwKLXsgMTMsIDB4MDM2NSwgMCwgezB4ZDAsMHgwMywweGQwLDB4MDIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDEzLCAweDAzNzIsIDAsIHsweDkwLDB4N2YsMHhhNSwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHhhNiwweDc0LDB4OWEsMHhmMCwweDEyfSB9LAoteyAxMiwgMHgwMzdmLCAwLCB7MHgxMCwweDFiLDB4OTAsMHg3ZiwweGE2LDB4ZTUsMHg0MiwweGYwLDB4MTIsMHgxMCwweDFiLDB4OTB9IH0sCi17IDEzLCAweDAzOGIsIDAsIHsweDdmLDB4YTYsMHhlNSwweDQzLDB4ZjAsMHgxMiwweDEwLDB4MWIsMHg5MCwweDdmLDB4YTUsMHg3NCwweDQwfSB9LAoteyAgMSwgMHgwMzk4LCAwLCB7MHhmMH0gfSwKLXsgIDEsIDB4MDM5OSwgMCwgezB4MjJ9IH0sCi17IDEzLCAweDAzOWEsIDAsIHsweDkwLDB4N2YsMHhhNSwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHhhNiwweDc0LDB4OWEsMHhmMCwweDEyfSB9LAoteyAxMiwgMHgwM2E3LCAwLCB7MHgxMCwweDFiLDB4OTAsMHg3ZiwweGE2LDB4ZTUsMHg0NCwweGYwLDB4MTIsMHgxMCwweDFiLDB4OTB9IH0sCi17IDEyLCAweDAzYjMsIDAsIHsweDdmLDB4YTYsMHhlNSwweDQ1LDB4ZjAsMHgxMiwweDEwLDB4MWIsMHg5MCwweDdmLDB4YTYsMHhlNX0gfSwKLXsgMTEsIDB4MDNiZiwgMCwgezB4NDYsMHhmMCwweDEyLDB4MTAsMHgxYiwweDkwLDB4N2YsMHhhNSwweDc0LDB4NDAsMHhmMH0gfSwKLXsgIDEsIDB4MDNjYSwgMCwgezB4MjJ9IH0sCi17IDEwLCAweDAzY2IsIDAsIHsweDc1LDB4NDQsMHgwMiwweDc1LDB4NDUsMHgwMCwweDc1LDB4NDYsMHgwMCwweDEyfSB9LAoteyAgOSwgMHgwM2Q1LCAwLCB7MHgwMywweDlhLDB4NzUsMHg0MiwweDAzLDB4NzUsMHg0MywweDAwLDB4MTJ9IH0sCi17ICAyLCAweDAzZGUsIDAsIHsweDAzLDB4NzJ9IH0sCi17ICAxLCAweDAzZTAsIDAsIHsweDIyfSB9LAoteyAxMiwgMHgwM2UxLCAwLCB7MHg5MCwweDg4LDB4MDAsMHhlNSwweDM2LDB4ZjAsMHg5MCwweDg4LDB4MDAsMHg3NCwweDEwLDB4MjV9IH0sCi17ICA5LCAweDAzZWQsIDAsIHsweDM2LDB4ZjAsMHgxMiwweDAxLDB4ZGQsMHg3NSwweDQyLDB4MDEsMHg3NX0gfSwKLXsgIDksIDB4MDNmNiwgMCwgezB4NDMsMHgxOCwweDEyLDB4MDMsMHg3MiwweDc1LDB4NDQsMHgwMiwweDc1fSB9LAoteyAgOSwgMHgwM2ZmLCAwLHsweDQ1LDB4MDAsMHg3NSwweDQ2LDB4MDAsMHgxMiwweDAzLDB4OWEsMHg3NX0gfSwKLXsgIDgsIDB4MDQwOCwgMCx7MHg0MiwweDAzLDB4NzUsMHg0MywweDQ0LDB4MTIsMHgwMywweDcyfSB9LAoteyAgMSwgMHgwNDEwLCAwLHsweDIyfSB9LAoteyAxNCwgMHgwNDExLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweDc1LDB4ZDAsMHgwMCwweGMwfSB9LAoteyAxNCwgMHgwNDFmLCAwLCB7MHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU0LDB4ZjUsMHg5MSwweDkwLDB4N2YsMHhhYSwweDc0fSB9LAoteyAgNCwgMHgwNDJkLCAwLCB7MHgwMiwweGYwLDB4ZDAsMHg4Nn0gfSwKLXsgMTEsIDB4MDQzMSwgMCwgezB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTQsIDB4MDQzYywgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHg3NSwweGQwLDB4MDAsMHhjMH0gfSwKLXsgMTQsIDB4MDQ0YSwgMCwgezB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNCwweGY1LDB4OTEsMHg5MCwweDdmLDB4YTksMHg3NH0gfSwKLXsgIDcsIDB4MDQ1OCwgMCwgezB4MDQsMHhmMCwweDc1LDB4MzAsMHgwMSwweGQwLDB4ODZ9IH0sCi17IDExLCAweDA0NWYsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDE0LCAweDA0NmEsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGQwLDB4NzUsMHhkMCwweDAwLDB4YzB9IH0sCi17IDE0LCAweDA0NzgsIDAsIHsweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTQsMHhmNSwweDkxLDB4OTAsMHg3ZiwweGFhLDB4NzR9IH0sCi17ICA3LCAweDA0ODYsIDAsIHsweDA0LDB4ZjAsMHg3NSwweDMxLDB4MDEsMHhkMCwweDg2fSB9LAoteyAxMSwgMHgwNDhkLCAwLCB7MHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxNCwgMHgwNDk4LCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweDc1LDB4ZDAsMHgwMCwweGMwfSB9LAoteyAxMiwgMHgwNGE2LCAwLCB7MHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU1LDB4ZjUsMHg5MSwweGQwLDB4ODZ9IH0sCi17IDExLCAweDA0YjIsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDE0LCAweDA0YmQsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGQwLDB4NzUsMHhkMCwweDAwLDB4YzB9IH0sCi17IDEyLCAweDA0Y2IsIDAsIHsweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTcsMHhmNSwweDkxLDB4ZDAsMHg4Nn0gfSwKLXsgMTEsIDB4MDRkNywgMCwgezB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTIsIDB4MDRlMiwgMCwgezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmYSwweDhhLDB4MjAsMHg5MCwweDdmLDB4OTYsMHhlNCwweGYwfSB9LAoteyAgMSwgMHgwNGVlLCAwLCB7MHgyMn0gfSwKLXsgIDcsIDB4MDRlZiwgMCwgezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmYSwweDhhLDB4MjF9IH0sCi17ICAxLCAweDA0ZjYsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgwNGY3LCAwLCB7MHg5MCwweDE3LDB4MTMsMHhlMCwweGZhLDB4OTAsMHgxNywweDE1LDB4ZTAsMHhmYiwweDc0LDB4ODAsMHgyYSwweGZhfSB9LAoteyAxNCwgMHgwNTA1LCAwLCB7MHg3NCwweDgwLDB4MmIsMHhmYiwweGVhLDB4MDMsMHgwMywweDU0LDB4M2YsMHhmYywweGVhLDB4YzQsMHgyMywweDU0fSB9LAoteyAxNCwgMHgwNTEzLCAwLCB7MHgxZiwweGZhLDB4MmMsMHhmYSwweGViLDB4MDMsMHgwMywweDU0LDB4M2YsMHhmYywweGViLDB4YzQsMHgyMywweDU0fSB9LAoteyAxMSwgMHgwNTIxLCAwLCB7MHgxZiwweGZiLDB4MmMsMHhmYiwweDkwLDB4MTcsMHgwYSwweGUwLDB4ZmMsMHg2MCwweDAyfSB9LAoteyAgMiwgMHgwNTJjLCAwLCB7MHg3YSwweDAwfSB9LAoteyAgNywgMHgwNTJlLCAwLCB7MHg5MCwweDE3LDB4MGMsMHhlMCwweGZjLDB4NjAsMHgwMn0gfSwKLXsgIDIsIDB4MDUzNSwgMCwgezB4N2IsMHgwMH0gfSwKLXsgMTEsIDB4MDUzNywgMCwgezB4ZWEsMHgyYiwweGZjLDB4YzMsMHgxMywweGY1LDB4M2EsMHg3NSwweDQ0LDB4MDIsMHg4Yn0gfSwKLXsgIDcsIDB4MDU0MiwgMCwgezB4NDUsMHg4YSwweDQ2LDB4MTIsMHgwMywweDlhLDB4NzV9IH0sCi17ICA5LCAweDA1NDksIDAsIHsweDZlLDB4MDgsMHg3NSwweDZmLDB4MDAsMHgxMiwweDExLDB4NDQsMHg3NX0gfSwKLXsgIDQsIDB4MDU1MiwgMCwgezB4NzAsMHg0NywweDc1LDB4NzF9IH0sCi17ICA4LCAweDA1NTYsIDAsIHsweDBjLDB4NzUsMHg3MiwweDAyLDB4MTIsMHgxMSwweDc1LDB4ODV9IH0sCi17ICA1LCAweDA1NWUsIDAsIHsweDNhLDB4NzMsMHgxMiwweDExLDB4YTB9IH0sCi17ICAxLCAweDA1NjMsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgwNTY0LCAwLCB7MHg5MCwweDdmLDB4OTYsMHhlMCwweGZhLDB4OTAsMHg3ZiwweDk2LDB4NzQsMHg4MCwweDY1LDB4MDIsMHhmMCwweDkwfSB9LAoteyAxNCwgMHgwNTcyLCAwLCB7MHg3ZiwweGViLDB4ZTAsMHhmYSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmIsMHg5MCwweDdmLDB4ZWYsMHhlMCwweGZjfSB9LAoteyAxNCwgMHgwNTgwLCAwLCB7MHgzMywweDk1LDB4ZTAsMHhmZCwweDhjLDB4MDUsMHg3YywweDAwLDB4OTAsMHg3ZiwweGVlLDB4ZTAsMHhmZSwweDMzfSB9LAoteyAxNCwgMHgwNThlLCAwLCB7MHg5NSwweGUwLDB4ZmYsMHhlYywweDJlLDB4ZmMsMHhlZCwweDNmLDB4ZmQsMHg5MCwweDdmLDB4ZTksMHhlMCwweGZlfSB9LAoteyAgNSwgMHgwNTljLCAwLCB7MHhiZSwweDAxLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwNWExLCAwLCB7MHgwMiwweDA1LDB4Zjl9IH0sCi17ICA2LCAweDA1YTQsIDAsIHsweGJjLDB4MDEsMHgyMSwweGJkLDB4MDAsMHgxZX0gfSwKLXsgMTQsIDB4MDVhYSwgMCwgezB4ZWEsMHhjNCwweDAzLDB4NTQsMHhmOCwweGZjLDB4ZWIsMHgyNSwweGUwLDB4ZmQsMHgyYywweDI0LDB4MDAsMHhmY30gfSwKLXsgMTQsIDB4MDViOCwgMCwgezB4ZTQsMHgzNCwweDE3LDB4ZmQsMHg5MCwweDdlLDB4YzAsMHhlMCwweGZlLDB4OGMsMHg4MiwweDhkLDB4ODMsMHhmMH0gfSwKLXsgIDIsIDB4MDVjNiwgMCwgezB4ODAsMHgzMX0gfSwKLXsgMTQsIDB4MDVjOCwgMCwgezB4ZWEsMHhjNCwweDAzLDB4NTQsMHhmOCwweGZhLDB4ZWIsMHgyNSwweGUwLDB4ZmIsMHgyYSwweGZhLDB4MjQsMHgwMH0gfSwKLXsgMTQsIDB4MDVkNiwgMCwgezB4ZmIsMHhlNCwweDM0LDB4MTcsMHhmYywweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmQsMHg4YiwweDgyLDB4OGMsMHg4M30gfSwKLXsgMTQsIDB4MDVlNCwgMCwgezB4ZjAsMHg3NCwweDAxLDB4MmEsMHgyNCwweDAwLDB4ZmEsMHhlNCwweDM0LDB4MTcsMHhmYiwweDkwLDB4N2UsMHhjMX0gfSwKLXsgIDcsIDB4MDVmMiwgMCwgezB4ZTAsMHhmYywweDhhLDB4ODIsMHg4YiwweDgzLDB4ZjB9IH0sCi17ICAzLCAweDA1ZjksIDAsIHsweDc1LDB4MzgsMHgwMX0gfSwKLXsgIDEsIDB4MDVmYywgMCwgezB4MjJ9IH0sCi17IDE0LCAweDA1ZmQsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDR9IH0sCi17IDE0LCAweDA2MGIsIDAsIHsweGMwLDB4MDUsMHhjMCwweDA2LDB4YzAsMHgwNywweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHhkMCwweDc1LDB4ZDB9IH0sCi17IDEzLCAweDA2MTksIDAsIHsweDAwLDB4YzAsMHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU0LDB4ZjUsMHg5MSwweDkwfSB9LAoteyAxMywgMHgwNjI2LCAwLCB7MHg3ZiwweGFhLDB4NzQsMHgwMSwweGYwLDB4MTIsMHgwNSwweDY0LDB4NzUsMHgzNywweDAwLDB4ZDAsMHg4Nn0gfSwKLXsgMTQsIDB4MDYzMywgMCwgezB4ZDAsMHhkMCwweGQwLDB4MDEsMHhkMCwweDAwLDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDA1LDB4ZDAsMHgwNH0gfSwKLXsgMTMsIDB4MDY0MSwgMCwgezB4ZDAsMHgwMywweGQwLDB4MDIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDE0LCAweDA2NGUsIDAsIHsweDkwLDB4N2YsMHhlYiwweGUwLDB4ZmEsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZiLDB4OTAsMHg3ZiwweGVlLDB4ZTB9IH0sCi17IDE0LCAweDA2NWMsIDAsIHsweGZjLDB4MzMsMHg5NSwweGUwLDB4ZmQsMHg5MCwweDdmLDB4OTYsMHhlMCwweGZlLDB4OTAsMHg3ZiwweDk2LDB4NzR9IH0sCi17IDE0LCAweDA2NmEsIDAsIHsweDgwLDB4NjUsMHgwNiwweGYwLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHgwMSwweGYwLDB4ZWEsMHhjNCwweDAzLDB4NTR9IH0sCi17IDE0LCAweDA2NzgsIDAsIHsweGY4LDB4ZmUsMHhlYiwweDI1LDB4ZTAsMHhmYiwweDJlLDB4ZmUsMHgyNCwweDAwLDB4ZmIsMHhlNCwweDM0LDB4MTd9IH0sCi17IDE0LCAweDA2ODYsIDAsIHsweGZmLDB4OGIsMHg4MiwweDhmLDB4ODMsMHhlMCwweGZiLDB4NzQsMHgwMSwweDJlLDB4MjQsMHgwMCwweGZlLDB4ZTR9IH0sCi17IDE0LCAweDA2OTQsIDAsIHsweDM0LDB4MTcsMHhmZiwweDhlLDB4ODIsMHg4ZiwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlOSwweGUwLDB4ZmZ9IH0sCi17ICAzLCAweDA2YTIsIDAsIHsweGJmLDB4ODEsMHgwYX0gfSwKLXsgMTAsIDB4MDZhNSwgMCwgezB4OTAsMHg3ZiwweDAwLDB4ZWIsMHhmMCwweDkwLDB4N2YsMHgwMSwweGVlLDB4ZjB9IH0sCi17ICA4LCAweDA2YWYsIDAsIHsweDkwLDB4N2YsMHhlOSwweGUwLDB4ZmIsMHhiYiwweDgyLDB4MWF9IH0sCi17ICAzLCAweDA2YjcsIDAsIHsweGJhLDB4MDEsMHgwY30gfSwKLXsgMTIsIDB4MDZiYSwgMCwgezB4OTAsMHg3ZiwweDAwLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHgwMSwweGU0LDB4ZjAsMHg4MCwweDBifSB9LAoteyAxMSwgMHgwNmM2LCAwLCB7MHg5MCwweDdmLDB4MDAsMHhlNCwweGYwLDB4OTAsMHg3ZiwweDAxLDB4NzQsMHhiNSwweGYwfSB9LAoteyAgOCwgMHgwNmQxLCAwLCB7MHg5MCwweDdmLDB4ZTksMHhlMCwweGZiLDB4YmIsMHg4MywweDFifSB9LAoteyAgMywgMHgwNmQ5LCAwLCB7MHhiYSwweDAxLDB4MGR9IH0sCi17IDEzLCAweDA2ZGMsIDAsIHsweDkwLDB4N2YsMHgwMCwweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHgwMSwweGU0LDB4ZjAsMHg4MCwweDBifSB9LAoteyAxMSwgMHgwNmU5LCAwLCB7MHg5MCwweDdmLDB4MDAsMHhlNCwweGYwLDB4OTAsMHg3ZiwweDAxLDB4NzQsMHgxMiwweGYwfSB9LAoteyAgOCwgMHgwNmY0LCAwLCB7MHg5MCwweDdmLDB4ZTksMHhlMCwweGZiLDB4YmIsMHg4NCwweDFjfSB9LAoteyAgMywgMHgwNmZjLCAwLCB7MHhiYSwweDAxLDB4MGR9IH0sCi17IDEzLCAweDA2ZmYsIDAsIHsweDkwLDB4N2YsMHgwMCwweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHgwMSwweGU0LDB4ZjAsMHg4MCwweDBjfSB9LAoteyAxMiwgMHgwNzBjLCAwLCB7MHg5MCwweDdmLDB4MDAsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4MDEsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICA1LCAweDA3MTgsIDAsIHsweDkwLDB4N2YsMHhiNSwweGVjLDB4ZjB9IH0sCi17ICAxLCAweDA3MWQsIDAsIHsweDIyfSB9LAoteyAxMiwgMHgwNzFlLCAwLCB7MHg3NSwweDM2LDB4MGQsMHg5MCwweDg4LDB4MDAsMHg3NCwweDFkLDB4ZjAsMHg3NSwweDZiLDB4ODB9IH0sCi17IDEwLCAweDA3MmEsIDAsIHsweDc1LDB4NmMsMHgzYywweDEyLDB4MTAsMHhlMiwweDc1LDB4NmIsMHg4MCwweDc1fSB9LAoteyAgOSwgMHgwNzM0LCAwLCB7MHg2YywweDBmLDB4MTIsMHgxMCwweGUyLDB4NzUsMHg2YiwweDgwLDB4NzV9IH0sCi17ICA5LCAweDA3M2QsIDAsIHsweDZjLDB4MDYsMHgxMiwweDEwLDB4ZTIsMHg3NSwweDZiLDB4ODAsMHg3NX0gfSwKLXsgIDcsIDB4MDc0NiwgMCwgezB4NmMsMHgwMSwweDEyLDB4MTAsMHhlMiwweDdhLDB4MDB9IH0sCi17ICAzLCAweDA3NGQsIDAsIHsweGJhLDB4ZmYsMHgwMH0gfSwKLXsgIDIsIDB4MDc1MCwgMCwgezB4NTAsMHgwYX0gfSwKLXsgMTAsIDB4MDc1MiwgMCwgezB4YzAsMHgwMiwweDEyLDB4MDEsMHhkZCwweGQwLDB4MDIsMHgwYSwweDgwLDB4ZjF9IH0sCi17IDEwLCAweDA3NWMsIDAsIHsweDc1LDB4NmIsMHg4MCwweDc1LDB4NmMsMHgzYywweDEyLDB4MTAsMHhlMiwweDc1fSB9LAoteyAgOCwgMHgwNzY2LCAwLCB7MHg2YiwweDgwLDB4NzUsMHg2YywweDBmLDB4MTIsMHgxMCwweGUyfSB9LAoteyAgMSwgMHgwNzZlLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MDc2ZiwgMCwgezB4OTAsMHg3ZiwweGExLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhhZiwweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHg5Mn0gfSwKLXsgMTQsIDB4MDc3ZCwgMCwgezB4NzQsMHgwMiwweGYwLDB4NzUsMHg4ZSwweDMxLDB4NzUsMHg4OSwweDIxLDB4NzUsMHg4OCwweDAwLDB4NzUsMHhjOH0gfSwKLXsgMTQsIDB4MDc4YiwgMCwgezB4MDAsMHg3NSwweDhkLDB4NDAsMHg3NSwweDk4LDB4NDAsMHg3NSwweGMwLDB4NDAsMHg3NSwweDg3LDB4MDAsMHg3NX0gfSwKLXsgIDksIDB4MDc5OSwgMCwgezB4MjAsMHgwMCwweDc1LDB4MjEsMHgwMCwweDc1LDB4MjIsMHgwMCwweDc1fSB9LAoteyAgNSwgMHgwN2EyLCAwLCB7MHgyMywweDAwLDB4NzUsMHg0NywweDAwfSB9LAoteyAgNywgMHgwN2E3LCAwLCB7MHhjMywweGU1LDB4NDcsMHg5NCwweDIwLDB4NTAsMHgxMX0gfSwKLXsgMTMsIDB4MDdhZSwgMCwgezB4ZTUsMHg0NywweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDE3LDB4ZjUsMHg4MywweGU0LDB4ZjB9IH0sCi17ICA0LCAweDA3YmIsIDAsIHsweDA1LDB4NDcsMHg4MCwweGU4fSB9LAoteyAgOSwgMHgwN2JmLCAwLCB7MHhlNCwweGY1LDB4NDAsMHhmNSwweDNmLDB4ZTQsMHhmNSwweDNjLDB4ZjV9IH0sCi17ICA3LCAweDA3YzgsIDAsIHsweDNiLDB4ZTQsMHhmNSwweDNlLDB4ZjUsMHgzZCwweDc1fSB9LAoteyAxMSwgMHgwN2NmLCAwLCB7MHgzMiwweDAwLDB4NzUsMHgzNywweDAwLDB4NzUsMHgzOSwweDAwLDB4OTAsMHg3ZiwweDkzfSB9LAoteyAxNCwgMHgwN2RhLCAwLCB7MHg3NCwweDNjLDB4ZjAsMHg5MCwweDdmLDB4OWMsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDdmLDB4OTYsMHg3NCwweDgwfSB9LAoteyAxNCwgMHgwN2U4LCAwLCB7MHhmMCwweDkwLDB4N2YsMHg5NCwweDc0LDB4NzAsMHhmMCwweDkwLDB4N2YsMHg5ZCwweDc0LDB4OGYsMHhmMCwweDkwfSB9LAoteyAxNCwgMHgwN2Y2LCAwLCB7MHg3ZiwweDk3LDB4ZTQsMHhmMCwweDkwLDB4N2YsMHg5NSwweDc0LDB4YzIsMHhmMCwweDkwLDB4N2YsMHg5OCwweDc0fSB9LAoteyAxNCwgMHgwODA0LCAwLCB7MHgyOCwweGYwLDB4OTAsMHg3ZiwweDllLDB4NzQsMHgyOCwweGYwLDB4OTAsMHg3ZiwweGYwLDB4ZTQsMHhmMCwweDkwfSB9LAoteyAxNCwgMHgwODEyLCAwLCB7MHg3ZiwweGYxLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhmMiwweGU0LDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHhlNCwweGYwfSB9LAoteyAxNCwgMHgwODIwLCAwLCB7MHg5MCwweDdmLDB4ZjQsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGY1LDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhmNiwweGU0fSB9LAoteyAxNCwgMHgwODJlLCAwLCB7MHhmMCwweDkwLDB4N2YsMHhmNywweGU0LDB4ZjAsMHg5MCwweDdmLDB4ZjgsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGY5fSB9LAoteyAxNCwgMHgwODNjLCAwLCB7MHg3NCwweDM4LDB4ZjAsMHg5MCwweDdmLDB4ZmEsMHg3NCwweGEwLDB4ZjAsMHg5MCwweDdmLDB4ZmIsMHg3NCwweGEwfSB9LAoteyAxNCwgMHgwODRhLCAwLCB7MHhmMCwweDkwLDB4N2YsMHhmYywweDc0LDB4YTAsMHhmMCwweDkwLDB4N2YsMHhmZCwweDc0LDB4YTAsMHhmMCwweDkwfSB9LAoteyAxNCwgMHgwODU4LCAwLCB7MHg3ZiwweGZlLDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweGUwfSB9LAoteyAxNCwgMHgwODY2LCAwLCB7MHg3NCwweDAzLDB4ZjAsMHg5MCwweDdmLDB4ZTEsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4ZGQsMHg3NCwweDgwfSB9LAoteyAxMSwgMHgwODc0LCAwLCB7MHhmMCwweDEyLDB4MTIsMHg0MywweDEyLDB4MDcsMHgxZSwweDdhLDB4MDAsMHg3YiwweDAwfSB9LAoteyAgOSwgMHgwODdmLCAwLCB7MHhjMywweGVhLDB4OTQsMHgxZSwweGViLDB4OTQsMHgwMCwweDUwLDB4MTd9IH0sCi17IDEyLCAweDA4ODgsIDAsIHsweDkwLDB4ODgsMHgwMCwweGUwLDB4ZjUsMHg0NywweDkwLDB4ODgsMHgwYiwweGUwLDB4ZjUsMHg0N30gfSwKLXsgIDksIDB4MDg5NCwgMCwgezB4OTAsMHg3ZiwweDY4LDB4ZjAsMHgwYSwweGJhLDB4MDAsMHgwMSwweDBifSB9LAoteyAgMiwgMHgwODlkLCAwLCB7MHg4MCwweGUwfSB9LAoteyAxMiwgMHgwODlmLCAwLCB7MHgxMiwweDAzLDB4ZTEsMHg5MCwweDdmLDB4ZDYsMHhlNCwweGYwLDB4N2EsMHgwMCwweDdiLDB4MDB9IH0sCi17IDEzLCAweDA4YWIsIDAsIHsweDhhLDB4MDQsMHg4YiwweDA1LDB4YzMsMHhlYSwweDk0LDB4ZTAsMHhlYiwweDk0LDB4MmUsMHg1MCwweDFhfSB9LAoteyAxNCwgMHgwOGI4LCAwLCB7MHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgwMSwweGRkLDB4ZDAsMHgwNSwweGQwfSB9LAoteyAxMCwgMHgwOGM2LCAwLCB7MHgwNCwweGQwLDB4MDMsMHhkMCwweDAyLDB4MGEsMHhiYSwweDAwLDB4MDEsMHgwYn0gfSwKLXsgIDIsIDB4MDhkMCwgMCwgezB4ODAsMHhkOX0gfSwKLXsgMTMsIDB4MDhkMiwgMCwgezB4OTAsMHg3ZiwweGQ2LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3ZiwweGQ2LDB4NzQsMHgwNiwweGYwLDB4OTB9IH0sCi17IDE0LCAweDA4ZGYsIDAsIHsweDdmLDB4ZGUsMHg3NCwweDA1LDB4ZjAsMHg5MCwweDdmLDB4ZGYsMHg3NCwweDA1LDB4ZjAsMHg5MCwweDdmLDB4YWN9IH0sCi17IDE0LCAweDA4ZWQsIDAsIHsweGU0LDB4ZjAsMHg5MCwweDdmLDB4YWQsMHg3NCwweDA1LDB4ZjAsMHg3NSwweGE4LDB4ODAsMHg3NSwweGY4LDB4MTB9IH0sCi17IDEzLCAweDA4ZmIsIDAsIHsweDkwLDB4N2YsMHhhZSwweDc0LDB4MGIsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODgsMHhmMCwweDkwfSB9LAoteyAxMiwgMHgwOTA4LCAwLCB7MHg3ZiwweGFiLDB4NzQsMHgwOCwweGYwLDB4NzUsMHhlOCwweDExLDB4NzUsMHgzMiwweDAxLDB4NzV9IH0sCi17IDEyLCAweDA5MTQsIDAsIHsweDMxLDB4MDAsMHg3NSwweDMwLDB4MDAsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MDQsMHhmN30gfSwKLXsgMTAsIDB4MDkyMCwgMCwgezB4ZDAsMHgwNSwweGQwLDB4MDQsMHg3NSwweDM0LDB4MDAsMHg3NSwweDM1LDB4MDF9IH0sCi17IDEzLCAweDA5MmEsIDAsIHsweDkwLDB4N2YsMHhhZSwweDc0LDB4MDMsMHhmMCwweDhjLDB4MDIsMHhiYSwweDAwLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwOTM3LCAwLCB7MHgwMiwweDBhLDB4M2Z9IH0sCi17IDEyLCAweDA5M2EsIDAsIHsweDg1LDB4MzMsMHgzNCwweDkwLDB4N2YsMHg5ZCwweDc0LDB4OGYsMHhmMCwweDkwLDB4N2YsMHg5N30gfSwKLXsgMTQsIDB4MDk0NiwgMCwgezB4NzQsMHgwOCwweGYwLDB4OTAsMHg3ZiwweDlkLDB4NzQsMHg4OCwweGYwLDB4OTAsMHg3ZiwweDlhLDB4ZTAsMHhmYX0gfSwKLXsgMTIsIDB4MDk1NCwgMCwgezB4NzQsMHgwNSwweDVhLDB4ZjUsMHgzMywweDkwLDB4N2YsMHg5ZCwweDc0LDB4OGYsMHhmMCwweDkwfSB9LAoteyAxMywgMHgwOTYwLCAwLCB7MHg3ZiwweDk3LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3ZiwweDlkLDB4NzQsMHg4MiwweGYwLDB4ZTUsMHgzM30gfSwKLXsgMTMsIDB4MDk2ZCwgMCwgezB4MjUsMHhlMCwweGZhLDB4OTAsMHg3ZiwweDlhLDB4ZTAsMHg1NCwweDA1LDB4ZmIsMHg0YSwweGY1LDB4MzN9IH0sCi17ICAyLCAweDA5N2EsIDAsIHsweDYwLDB4MGN9IH0sCi17IDEyLCAweDA5N2MsIDAsIHsweDkwLDB4N2YsMHg5NiwweGUwLDB4ZmEsMHg5MCwweDdmLDB4OTYsMHg3NCwweDgwLDB4NGEsMHhmMH0gfSwKLXsgMTEsIDB4MDk4OCwgMCwgezB4NzUsMHg2ZSwweDAwLDB4NzUsMHg2ZiwweDAwLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMn0gfSwKLXsgMTQsIDB4MDk5MywgMCwgezB4MTEsMHg0NCwweGQwLDB4MDUsMHhkMCwweDA0LDB4OTAsMHgxNywweDEzLDB4ZTAsMHhmYSwweDc0LDB4ODAsMHgyYX0gfSwKLXsgIDYsIDB4MDlhMSwgMCwgezB4ZmEsMHhlNSwweDMzLDB4YjQsMHgwNCwweDI5fSB9LAoteyAgMywgMHgwOWE3LCAwLCB7MHhiYSwweGEwLDB4MDB9IH0sCi17ICAyLCAweDA5YWEsIDAsIHsweDUwLDB4MjR9IH0sCi17IDEzLCAweDA5YWMsIDAsIHsweDkwLDB4MTcsMHgxMywweGUwLDB4MDQsMHhmYiwweDBiLDB4OTAsMHgxNywweDEzLDB4ZWIsMHhmMCwweDkwfSB9LAoteyAxNCwgMHgwOWI5LCAwLCB7MHgxNywweDEzLDB4ZTAsMHhmYiwweDkwLDB4MTcsMHgxNSwweGYwLDB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1fSB9LAoteyAgOSwgMHgwOWM3LCAwLCB7MHgxMiwweDA0LDB4ZjcsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwLDB4MDJ9IH0sCi17ICA1LCAweDA5ZDAsIDAsIHsweGU1LDB4MzMsMHhiNCwweDAyLDB4MjZ9IH0sCi17ICA2LCAweDA5ZDUsIDAsIHsweGMzLDB4NzQsMHgwNCwweDlhLDB4NTAsMHgyMH0gfSwKLXsgMTMsIDB4MDlkYiwgMCwgezB4OTAsMHgxNywweDEzLDB4ZTAsMHhmYSwweDFhLDB4MWEsMHg5MCwweDE3LDB4MTMsMHhlYSwweGYwLDB4OTB9IH0sCi17IDEzLCAweDA5ZTgsIDAsIHsweDE3LDB4MTMsMHhlMCwweGZhLDB4OTAsMHgxNywweDE1LDB4ZjAsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyfSB9LAoteyAgNiwgMHgwOWY1LCAwLCB7MHgwNCwweGY3LDB4ZDAsMHgwNSwweGQwLDB4MDR9IH0sCi17ICA1LCAweDA5ZmIsIDAsIHsweGU1LDB4MzMsMHhiNCwweDA4LDB4MWR9IH0sCi17ICA0LCAweDBhMDAsIDAsIHsweGU1LDB4MzQsMHg3MCwweDE5fSB9LAoteyAxMCwgMHgwYTA0LCAwLCB7MHg3NCwweDAxLDB4MjUsMHgzNSwweDU0LDB4MGYsMHhmNSwweDM1LDB4ODUsMHgzNX0gfSwKLXsgMTIsIDB4MGEwZSwgMCwgezB4NzUsMHg3NSwweDc2LDB4MDAsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTMsMHhmZSwweGQwfSB9LAoteyAgMywgMHgwYTFhLCAwLCB7MHgwNSwweGQwLDB4MDR9IH0sCi17ICA1LCAweDBhMWQsIDAsIHsweGU1LDB4MzMsMHhiNCwweDAxLDB4MWR9IH0sCi17ICA0LCAweDBhMjIsIDAsIHsweGU1LDB4MzQsMHg3MCwweDE5fSB9LAoteyAxMCwgMHgwYTI2LCAwLCB7MHhlNSwweDM1LDB4MjQsMHhmZiwweDU0LDB4MGYsMHhmNSwweDM1LDB4ODUsMHgzNX0gfSwKLXsgMTIsIDB4MGEzMCwgMCwgezB4NzUsMHg3NSwweDc2LDB4MDAsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTMsMHhmZSwweGQwfSB9LAoteyAgMywgMHgwYTNjLCAwLCB7MHgwNSwweGQwLDB4MDR9IH0sCi17IDE0LCAweDBhM2YsIDAsIHsweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgwMSwweGRkLDB4ZDAsMHgwNSwweGQwLDB4MDQsMHg5MCwweDdmLDB4OTZ9IH0sCi17IDE0LCAweDBhNGQsIDAsIHsweGUwLDB4ZmEsMHg5MCwweDdmLDB4OTYsMHg3NCwweDdmLDB4NWEsMHhmMCwweDkwLDB4N2YsMHg5NywweDc0LDB4MDh9IH0sCi17IDEwLCAweDBhNWIsIDAsIHsweGYwLDB4YzMsMHhlYywweDk0LDB4MDAsMHhlZCwweDk0LDB4MDIsMHg0MCwweDA4fSB9LAoteyAgOCwgMHgwYTY1LCAwLCB7MHg5MCwweDdmLDB4OTYsMHhlMCwweGZhLDB4MjAsMHhlNiwweDA4fSB9LAoteyAgOCwgMHgwYTZkLCAwLCB7MHhjMywweGU0LDB4OWMsMHg3NCwweDA4LDB4OWQsMHg1MCwweDEzfSB9LAoteyAxNCwgMHgwYTc1LCAwLCB7MHg5MCwweDdmLDB4OTYsMHhlMCwweGZhLDB4OTAsMHg3ZiwweDk2LDB4NzQsMHg0MCwweDY1LDB4MDIsMHhmMCwweDdjfSB9LAoteyAgNSwgMHgwYTgzLCAwLCB7MHgwMCwweDdkLDB4MDAsMHg4MCwweDA1fSB9LAoteyAgNSwgMHgwYTg4LCAwLCB7MHgwYywweGJjLDB4MDAsMHgwMSwweDBkfSB9LAoteyAgNSwgMHgwYThkLCAwLCB7MHhlNSwweDM4LDB4YjQsMHgwMSwweDBlfSB9LAoteyAxMywgMHgwYTkyLCAwLCB7MHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MDQsMHhmNywweGQwLDB4MDUsMHhkMCwweDA0LDB4NzUsMHgzOH0gfSwKLXsgIDEsIDB4MGE5ZiwgMCwgezB4MDB9IH0sCi17ICA3LCAweDBhYTAsIDAsIHsweGU1LDB4MzEsMHg3MCwweDAzLDB4MDIsMHgwOSwweDJhfSB9LAoteyAxMCwgMHgwYWE3LCAwLCB7MHg5MCwweDdmLDB4YzksMHhlMCwweGZhLDB4NzAsMHgwMywweDAyLDB4MGMsMHgyZH0gfSwKLXsgMTQsIDB4MGFiMSwgMCwgezB4OTAsMHg3ZiwweDk2LDB4ZTAsMHhmYSwweDkwLDB4N2YsMHg5NiwweDc0LDB4ODAsMHg2NSwweDAyLDB4ZjAsMHg5MH0gfSwKLXsgIDksIDB4MGFiZiwgMCwgezB4N2QsMHhjMCwweGUwLDB4ZmEsMHhiYSwweDJjLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwYWM4LCAwLCB7MHgwMiwweDBiLDB4MzZ9IH0sCi17ICA1LCAweDBhY2IsIDAsIHsweDc1LDB4MzIsMHgwMCwweDdiLDB4MDB9IH0sCi17ICAzLCAweDBhZDAsIDAsIHsweGJiLDB4NjQsMHgwMH0gfSwKLXsgIDIsIDB4MGFkMywgMCwgezB4NTAsMHgxY30gfSwKLXsgMTQsIDB4MGFkNSwgMCwgezB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MDEsMHhkZCwweGQwLDB4MDUsMHhkMH0gfSwKLXsgMTMsIDB4MGFlMywgMCwgezB4MDQsMHhkMCwweDAzLDB4ZDAsMHgwMiwweDkwLDB4ODgsMHgwZiwweGUwLDB4ZjUsMHg0NywweDBiLDB4ODB9IH0sCi17ICAxLCAweDBhZjAsIDAsIHsweGRmfSB9LAoteyAxMywgMHgwYWYxLCAwLCB7MHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDA3LDB4MWUsMHgxMiwweDAzLDB4ZTEsMHgxMn0gfSwKLXsgMTIsIDB4MGFmZSwgMCwgezB4MDQsMHhmNywweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDAsMHgwMiwweDc1LDB4NmUsMHgwMCwweDc1fSB9LAoteyAxMywgMHgwYjBhLCAwLCB7MHg2ZiwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMSwweDQ0LDB4ZDAsMHgwNX0gfSwKLXsgIDksIDB4MGIxNywgMCwgezB4ZDAsMHgwNCwweGQwLDB4MDIsMHg3NSwweDcwLDB4NGQsMHg3NSwweDcxfSB9LAoteyAxMSwgMHgwYjIwLCAwLCB7MHgwYywweDc1LDB4NzIsMHgwMiwweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyfSB9LAoteyAxMSwgMHgwYjJiLCAwLCB7MHgxMSwweDc1LDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMCwweDAyLDB4MDIsMHgwYywweDJkfSB9LAoteyAgMywgMHgwYjM2LCAwLCB7MHhiYSwweDJhLDB4M2J9IH0sCi17IDEzLCAweDBiMzksIDAsIHsweDkwLDB4N2YsMHg5OCwweDc0LDB4MjAsMHhmMCwweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyfSB9LAoteyAxNCwgMHgwYjQ2LCAwLCB7MHgwMSwweGRkLDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMCwweDAyLDB4OTAsMHg3ZiwweDk4LDB4NzQsMHgyOCwweGYwfSB9LAoteyAgMiwgMHgwYjU0LCAwLCB7MHg3YiwweDAwfSB9LAoteyAgMywgMHgwYjU2LCAwLCB7MHhiYiwweDBhLDB4MDB9IH0sCi17ICA1LCAweDBiNTksIDAsIHsweDQwLDB4MDMsMHgwMiwweDBjLDB4MmR9IH0sCi17IDE0LCAweDBiNWUsIDAsIHsweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDAxLDB4ZGQsMHhkMCwweDA1LDB4ZDB9IH0sCi17ICA4LCAweDBiNmMsIDAsIHsweDA0LDB4ZDAsMHgwMywweGQwLDB4MDIsMHgwYiwweDgwLDB4ZTJ9IH0sCi17ICAzLCAweDBiNzQsIDAsIHsweGJhLDB4MmIsMHgxYX0gfSwKLXsgIDgsIDB4MGI3NywgMCwgezB4OTAsMHg3ZiwweGM5LDB4ZTAsMHhmYiwweGJiLDB4NDAsMHgxMn0gfSwKLXsgMTQsIDB4MGI3ZiwgMCwgezB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMiwweDA1LDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMH0gfSwKLXsgIDQsIDB4MGI4ZCwgMCwgezB4MDIsMHgwMiwweDBjLDB4MmR9IH0sCi17ICAzLCAweDBiOTEsIDAsIHsweGJhLDB4MTAsMHgxZn0gfSwKLXsgMTQsIDB4MGI5NCwgMCwgezB4OTAsMHg3ZiwweDk2LDB4ZTAsMHhmYiwweDkwLDB4N2YsMHg5NiwweDc0LDB4ODAsMHg2NSwweDAzLDB4ZjAsMHhjMH0gfSwKLXsgMTQsIDB4MGJhMiwgMCwgezB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTAsMHgzZCwweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDAsMHgwMn0gfSwKLXsgIDMsIDB4MGJiMCwgMCwgezB4MDIsMHgwYywweDJkfSB9LAoteyAgMywgMHgwYmIzLCAwLCB7MHhiYSwweDExLDB4MTJ9IH0sCi17IDE0LCAweDBiYjYsIDAsIHsweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTAsMHg2YSwweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDB9IH0sCi17ICA0LCAweDBiYzQsIDAsIHsweDAyLDB4MDIsMHgwYywweDJkfSB9LAoteyAgMywgMHgwYmM4LCAwLCB7MHhiYSwweDEyLDB4MTJ9IH0sCi17IDE0LCAweDBiY2IsIDAsIHsweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTAsMHg4ZiwweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDB9IH0sCi17ICA0LCAweDBiZDksIDAsIHsweDAyLDB4MDIsMHgwYywweDJkfSB9LAoteyAgMywgMHgwYmRkLCAwLCB7MHhiYSwweDEzLDB4MGJ9IH0sCi17IDExLCAweDBiZTAsIDAsIHsweDkwLDB4N2QsMHhjMSwweGUwLDB4ZmIsMHg5MCwweDg4LDB4MDAsMHhmMCwweDgwLDB4NDJ9IH0sCi17ICAzLCAweDBiZWIsIDAsIHsweGJhLDB4MTQsMHgxMX0gfSwKLXsgMTQsIDB4MGJlZSwgMCwgezB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMSwweGRkLDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMH0gfSwKLXsgIDMsIDB4MGJmYywgMCwgezB4MDIsMHg4MCwweDJlfSB9LAoteyAgMywgMHgwYmZmLCAwLCB7MHhiYSwweDE1LDB4MWR9IH0sCi17IDEyLCAweDBjMDIsIDAsIHsweDkwLDB4N2QsMHhjMSwweGUwLDB4ZjUsMHg3NSwweDkwLDB4N2QsMHhjMiwweGUwLDB4ZjUsMHg3Nn0gfSwKLXsgMTQsIDB4MGMwZSwgMCwgezB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMywweGZlLDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMH0gfSwKLXsgIDMsIDB4MGMxYywgMCwgezB4MDIsMHg4MCwweDBlfSB9LAoteyAgMywgMHgwYzFmLCAwLCB7MHhiYSwweDE2LDB4MGJ9IH0sCi17IDExLCAweDBjMjIsIDAsIHsweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgxMywweGEzLDB4ZDAsMHgwNSwweGQwLDB4MDR9IH0sCi17IDExLCAweDBjMmQsIDAsIHsweDkwLDB4N2YsMHhjOSwweGU0LDB4ZjAsMHg3NSwweDMxLDB4MDAsMHgwMiwweDA5LDB4MmF9IH0sCi17ICAxLCAweDBjMzgsIDAsIHsweDIyfSB9LAoteyAgNywgMHgwYzM5LCAwLCB7MHg1MywweDU1LDB4NTAsMHg0NSwweDRlLDB4NDQsMHgwMH0gfSwKLXsgIDcsIDB4MGM0MCwgMCwgezB4NTIsMHg0NSwweDUzLDB4NTUsMHg0ZCwweDQ1LDB4MDB9IH0sCi17ICA2LCAweDBjNDcsIDAsIHsweDIwLDB4NTYsMHg2ZiwweDZjLDB4MjAsMHgwMH0gfSwKLXsgMTMsIDB4MGM0ZCwgMCwgezB4NDQsMHg0MSwweDQyLDB4NTUsMHg1MywweDQyLDB4MjAsMHg3NiwweDMxLDB4MmUsMHgzMCwweDMwLDB4MDB9IH0sCi17IDE0LCAweDBjNWEsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDR9IH0sCi17IDE0LCAweDBjNjgsIDAsIHsweGMwLDB4MDUsMHhjMCwweDA2LDB4YzAsMHgwNywweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHhkMCwweDc1LDB4ZDB9IH0sCi17IDEzLCAweDBjNzYsIDAsIHsweDAwLDB4YzAsMHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU0LDB4ZjUsMHg5MSwweDkwfSB9LAoteyAxNCwgMHgwYzgzLCAwLCB7MHg3ZiwweGFiLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGU4LDB4ZTAsMHhmYSwweDkwLDB4N2YsMHhlOSwweGUwfSB9LAoteyAgNiwgMHgwYzkxLCAwLCB7MHhmYiwweGJiLDB4MDAsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBjOTcsIDAsIHsweDAyLDB4MGQsMHgzOH0gfSwKLXsgIDMsIDB4MGM5YSwgMCwgezB4YmEsMHg4MCwweDE0fSB9LAoteyAxNCwgMHgwYzlkLCAwLCB7MHg5MCwweDdmLDB4MDAsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4MDEsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGI1fSB9LAoteyAgNiwgMHgwY2FiLCAwLCB7MHg3NCwweDAyLDB4ZjAsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICA1LCAweDBjYjEsIDAsIHsweGJhLDB4ODIsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBjYjYsIDAsIHsweDAyLDB4MGQsMHgxZH0gfSwKLXsgIDgsIDB4MGNiOSwgMCwgezB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmYywweGJjLDB4MDEsMHgwMH0gfSwKLXsgIDIsIDB4MGNjMSwgMCwgezB4NDAsMHgyMX0gfSwKLXsgIDYsIDB4MGNjMywgMCwgezB4YzMsMHg3NCwweDA3LDB4OWMsMHg0MCwweDFifSB9LAoteyAxNCwgMHgwY2M5LCAwLCB7MHhlYywweDI0LDB4ZmYsMHgyNSwweGUwLDB4ZmQsMHgyNCwweGM2LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1fSB9LAoteyAxMywgMHgwY2Q3LCAwLCB7MHg4MywweGUwLDB4ZmQsMHg1MywweDA1LDB4MDEsMHg5MCwweDdmLDB4MDAsMHhlZCwweGYwLDB4ODAsMHgyYn0gfSwKLXsgIDMsIDB4MGNlNCwgMCwgezB4YmMsMHg4MSwweDAwfSB9LAoteyAgMiwgMHgwY2U3LCAwLCB7MHg0MCwweDIxfSB9LAoteyAgNiwgMHgwY2U5LCAwLCB7MHhjMywweDc0LDB4ODcsMHg5YywweDQwLDB4MWJ9IH0sCi17IDE0LCAweDBjZWYsIDAsIHsweGVjLDB4MjQsMHg3ZiwweDI1LDB4ZTAsMHhmYywweDI0LDB4YjYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjV9IH0sCi17IDEzLCAweDBjZmQsIDAsIHsweDgzLDB4ZTAsMHhmYywweDUzLDB4MDQsMHgwMSwweDkwLDB4N2YsMHgwMCwweGVjLDB4ZjAsMHg4MCwweDA1fSB9LAoteyAgNSwgMHgwZDBhLCAwLCB7MHg5MCwweDdmLDB4MDAsMHhlNCwweGYwfSB9LAoteyAxNCwgMHgwZDBmLCAwLCB7MHg5MCwweDdmLDB4MDEsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4MDIsMHgwZSwweGNkfSB9LAoteyAgNSwgMHgwZDFkLCAwLCB7MHhiYSwweDgxLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZDIyLCAwLCB7MHgwMiwweDBlLDB4YzV9IH0sCi17IDE0LCAweDBkMjUsIDAsIHsweDkwLDB4N2YsMHgwMCwweGU0LDB4ZjAsMHg5MCwweDdmLDB4MDEsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzR9IH0sCi17ICA1LCAweDBkMzMsIDAsIHsweDAyLDB4ZjAsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICAzLCAweDBkMzgsIDAsIHsweGJiLDB4MDEsMHgyZH0gfSwKLXsgIDYsIDB4MGQzYiwgMCwgezB4YmEsMHgwMCwweDAzLDB4MDIsMHgwZSwweGNkfSB9LAoteyAgMywgMHgwZDQxLCAwLCB7MHhiYSwweDAyLDB4MTF9IH0sCi17IDEzLCAweDBkNDQsIDAsIHsweDc1LDB4NTksMHgwMCwweGMwLDB4MDIsMHhjMCwweDAzLDB4MTIsMHgwZSwweGYwLDB4ZDAsMHgwMywweGQwfSB9LAoteyAgNCwgMHgwZDUxLCAwLCB7MHgwMiwweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDUsIDB4MGQ1NSwgMCwgezB4YmEsMHgyMSwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGQ1YSwgMCwgezB4MDIsMHgwZSwweGNkfSB9LAoteyAxMSwgMHgwZDVkLCAwLCB7MHg3NSwweDM3LDB4MDEsMHg5MCwweDdmLDB4YzUsMHhlNCwweGYwLDB4MDIsMHgwZSwweGNkfSB9LAoteyAgMywgMHgwZDY4LCAwLCB7MHhiYiwweDAzLDB4MWZ9IH0sCi17ICA2LCAweDBkNmIsIDAsIHsweGJhLDB4MDAsMHgwMywweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDUsIDB4MGQ3MSwgMCwgezB4YmEsMHgwMiwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGQ3NiwgMCwgezB4MDIsMHgwZSwweGNkfSB9LAoteyAxMywgMHgwZDc5LCAwLCB7MHg3NSwweDU5LDB4MDEsMHhjMCwweDAyLDB4YzAsMHgwMywweDEyLDB4MGUsMHhmMCwweGQwLDB4MDMsMHhkMH0gfSwKLXsgIDQsIDB4MGQ4NiwgMCwgezB4MDIsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICAzLCAweDBkOGEsIDAsIHsweGJiLDB4MDYsMHg1NH0gfSwKLXsgIDUsIDB4MGQ4ZCwgMCwgezB4YmEsMHg4MCwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGQ5MiwgMCwgezB4MDIsMHgwZSwweGM1fSB9LAoteyAgOCwgMHgwZDk1LCAwLCB7MHg5MCwweDdmLDB4ZWIsMHhlMCwweGZjLDB4YmMsMHgwMSwweDE1fSB9LAoteyAxMiwgMHgwZDlkLCAwLCB7MHg3YywweGZiLDB4N2QsMHgwZiwweDhkLDB4MDYsMHg3ZiwweDAwLDB4OTAsMHg3ZiwweGQ0LDB4ZWV9IH0sCi17ICA5LCAweDBkYTksIDAsIHsweGYwLDB4OTAsMHg3ZiwweGQ1LDB4ZWMsMHhmMCwweDAyLDB4MGUsMHhjZH0gfSwKLXsgMTAsIDB4MGRiMiwgMCwgezB4OTAsMHg3ZiwweGViLDB4ZTAsMHhmYywweGJjLDB4MDIsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBkYmMsIDAsIHsweDAyLDB4MGUsMHhjNX0gfSwKLXsgMTAsIDB4MGRiZiwgMCwgezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmYywweGJjLDB4MDAsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBkYzksIDAsIHsweDAyLDB4MGUsMHhjNX0gfSwKLXsgMTIsIDB4MGRjYywgMCwgezB4N2MsMHgzYiwweDdkLDB4MGYsMHg4ZCwweDA2LDB4N2YsMHgwMCwweDkwLDB4N2YsMHhkNCwweGVlfSB9LAoteyAgOSwgMHgwZGQ4LCAwLCB7MHhmMCwweDkwLDB4N2YsMHhkNSwweGVjLDB4ZjAsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICA2LCAweDBkZTEsIDAsIHsweGJiLDB4MDcsMHgwMywweDAyLDB4MGUsMHhjNX0gfSwKLXsgIDMsIDB4MGRlNywgMCwgezB4YmIsMHgwOCwweDEwfSB9LAoteyAxMywgMHgwZGVhLCAwLCB7MHhhYywweDQ4LDB4OTAsMHg3ZiwweDAwLDB4ZWMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDMsIDB4MGRmNywgMCwgezB4MDIsMHgwZSwweGNkfSB9LAoteyAgMywgMHgwZGZhLCAwLCB7MHhiYiwweDA5LDB4MzF9IH0sCi17ICA1LCAweDBkZmQsIDAsIHsweGJhLDB4MDAsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBlMDIsIDAsIHsweDAyLDB4MGUsMHhjNX0gfSwKLXsgMTQsIDB4MGUwNSwgMCwgezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmYywweGMzLDB4NzQsMHgwMSwweDljLDB4NTAsMHgwMywweDAyLDB4MGUsMHhjNX0gfSwKLXsgIDgsIDB4MGUxMywgMCwgezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmYywweGJjLDB4MDAsMHgwYX0gfSwKLXsgMTAsIDB4MGUxYiwgMCwgezB4OTAsMHgxNywweDIxLDB4ZTQsMHhmMCwweDkwLDB4MTcsMHgyMiwweGU0LDB4ZjB9IH0sCi17ICA5LCAweDBlMjUsIDAsIHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjUsMHg0OCwweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDMsIDB4MGUyZSwgMCwgezB4YmIsMHgwYSwweDI3fSB9LAoteyAgNSwgMHgwZTMxLCAwLCB7MHhiYSwweDgxLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZTM2LCAwLCB7MHgwMiwweDBlLDB4YzV9IH0sCi17IDE0LCAweDBlMzksIDAsIHsweDkwLDB4N2YsMHhlYywweGUwLDB4ZmEsMHgyNCwweDIwLDB4ZmEsMHhlNCwweDM0LDB4MTcsMHhmYywweDhhLDB4ODJ9IH0sCi17IDE0LCAweDBlNDcsIDAsIHsweDhjLDB4ODMsMHhlMCwweGZhLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAzLCAweDBlNTUsIDAsIHsweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDUsIDB4MGU1OCwgMCwgezB4YmIsMHgwYiwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGU1ZCwgMCwgezB4MDIsMHgwZSwweGE5fSB9LAoteyAxMywgMHgwZTYwLCAwLCB7MHg5MCwweDE3LDB4MjAsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmYSwweGJhLDB4MDEsMHgxYX0gfSwKLXsgIDgsIDB4MGU2ZCwgMCwgezB4OTAsMHg3ZiwweGVkLDB4ZTAsMHhmYSwweGJhLDB4MDAsMHgxMn0gfSwKLXsgMTQsIDB4MGU3NSwgMCwgezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmYSwweDkwLDB4MTcsMHgyMSwweGYwLDB4YzAsMHgwMywweDEyLDB4MDQsMHhlMn0gfSwKLXsgIDQsIDB4MGU4MywgMCwgezB4ZDAsMHgwMywweDgwLDB4NDZ9IH0sCi17ICA4LCAweDBlODcsIDAsIHsweDkwLDB4N2YsMHhlYywweGUwLDB4ZmEsMHhiYSwweDAyLDB4M2V9IH0sCi17ICA4LCAweDBlOGYsIDAsIHsweDkwLDB4N2YsMHhlZCwweGUwLDB4ZmEsMHhiYSwweDAwLDB4MzZ9IH0sCi17IDEzLCAweDBlOTcsIDAsIHsweGMwLDB4MDMsMHgxMiwweDA0LDB4ZWYsMHhkMCwweDAzLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmYSwweDkwfSB9LAoteyAgNSwgMHgwZWE0LCAwLCB7MHgxNywweDIyLDB4ZjAsMHg4MCwweDI0fSB9LAoteyAgNSwgMHgwZWE5LCAwLCB7MHhiYiwweDEyLDB4MDIsMHg4MCwweDE3fSB9LAoteyAgNSwgMHgwZWFlLCAwLCB7MHhiYiwweDgxLDB4MDIsMHg4MCwweDBkfSB9LAoteyAgNSwgMHgwZWIzLCAwLCB7MHhiYiwweDgzLDB4MDIsMHg4MCwweDA4fSB9LAoteyAgNSwgMHgwZWI4LCAwLCB7MHhiYiwweDgyLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZWJkLCAwLCB7MHhiYiwweDg0LDB4MDV9IH0sCi17ICA1LCAweDBlYzAsIDAsIHsweDEyLDB4MDYsMHg0ZSwweDgwLDB4MDh9IH0sCi17ICA4LCAweDBlYzUsIDAsIHsweDkwLDB4N2YsMHhiNCwweDc0LDB4MDMsMHhmMCwweDgwLDB4MDZ9IH0sCi17ICA2LCAweDBlY2QsIDAsIHsweDkwLDB4N2YsMHhiNCwweDc0LDB4MDIsMHhmMH0gfSwKLXsgIDIsIDB4MGVkMywgMCwgezB4ZDAsMHg4Nn0gfSwKLXsgMTQsIDB4MGVkNSwgMCwgezB4ZDAsMHhkMCwweGQwLDB4MDEsMHhkMCwweDAwLDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDA1LDB4ZDAsMHgwNH0gfSwKLXsgMTMsIDB4MGVlMywgMCwgezB4ZDAsMHgwMywweGQwLDB4MDIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDExLCAweDBlZjAsIDAsIHsweDkwLDB4N2YsMHhlYywweGUwLDB4ZjUsMHg1YSwweGMzLDB4OTQsMHgwMSwweDQwLDB4MWR9IH0sCi17ICA3LCAweDBlZmIsIDAsIHsweGMzLDB4NzQsMHgwNywweDk1LDB4NWEsMHg0MCwweDE2fSB9LAoteyAxMywgMHgwZjAyLCAwLCB7MHhlNSwweDVhLDB4MjQsMHhmZiwweDI1LDB4ZTAsMHhmYSwweDI0LDB4YzYsMHhmNSwweDgyLDB4ZTQsMHgzNH0gfSwKLXsgIDksIDB4MGYwZiwgMCwgezB4N2YsMHhmNSwweDgzLDB4YWEsMHg1OSwweGVhLDB4ZjAsMHg4MCwweDIyfSB9LAoteyAgNywgMHgwZjE4LCAwLCB7MHhjMywweGU1LDB4NWEsMHg5NCwweDgxLDB4NDAsMHgxYn0gfSwKLXsgIDcsIDB4MGYxZiwgMCwgezB4YzMsMHg3NCwweDg3LDB4OTUsMHg1YSwweDQwLDB4MTR9IH0sCi17IDEzLCAweDBmMjYsIDAsIHsweGU1LDB4NWEsMHgyNCwweGZmLDB4MjUsMHhlMCwweGZhLDB4MjQsMHhiNiwweGY1LDB4ODIsMHhlNCwweDM0fSB9LAoteyAgNywgMHgwZjMzLCAwLCB7MHg3ZiwweGY1LDB4ODMsMHhhYSwweDU5LDB4ZWEsMHhmMH0gfSwKLXsgIDEsIDB4MGYzYSwgMCwgezB4MjJ9IH0sCi17IDE0LCAweDBmM2IsIDAsIHsweDA5LDB4MDIsMHhiYSwweDAwLDB4MDMsMHgwMSwweDAwLDB4NDAsMHgwMCwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDB9IH0sCi17IDE0LCAweDBmNDksIDAsIHsweDAxLDB4MDEsMHgwMCwweDAwLDB4MDksMHgyNCwweDAxLDB4MDAsMHgwMSwweDNkLDB4MDAsMHgwMSwweDAxLDB4MGN9IH0sCi17IDE0LCAweDBmNTcsIDAsIHsweDI0LDB4MDIsMHgwMSwweDEwLDB4MDcsMHgwMCwweDAyLDB4MDMsMHgwMCwweDAwLDB4MDAsMHgwZCwweDI0LDB4MDZ9IH0sCi17IDE0LCAweDBmNjUsIDAsIHsweDAzLDB4MDEsMHgwMiwweDE1LDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMCwweDAwLDB4MDksMHgyNCwweDAzLDB4MDJ9IH0sCi17IDE0LCAweDBmNzMsIDAsIHsweDAxLDB4MDEsMHgwMCwweDAxLDB4MDAsMHgwOSwweDI0LDB4MDMsMHgwNCwweDAyLDB4MDMsMHgwMCwweDAzLDB4MDB9IH0sCi17IDE0LCAweDBmODEsIDAsIHsweDA5LDB4MjQsMHgwMywweDA1LDB4MDMsMHgwNiwweDAwLDB4MDEsMHgwMCwweDA5LDB4MDQsMHgwMSwweDAwLDB4MDB9IH0sCi17IDE0LCAweDBmOGYsIDAsIHsweDAxLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDd9IH0sCi17IDE0LCAweDBmOWQsIDAsIHsweDI0LDB4MDEsMHgwMiwweDAxLDB4MDEsMHgwMCwweDBiLDB4MjQsMHgwMiwweDAxLDB4MDIsMHgwMiwweDEwLDB4MDF9IH0sCi17IDE0LCAweDBmYWIsIDAsIHsweDgwLDB4YmIsMHgwMCwweDA5LDB4MDUsMHg4OCwweDA1LDB4MDAsMHgwMSwweDAxLDB4MDAsMHgwMCwweDA3LDB4MjV9IH0sCi17IDE0LCAweDBmYjksIDAsIHsweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOSwweDA0LDB4MDIsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17IDE0LCAweDBmYzcsIDAsIHsweDA3LDB4MDUsMHg4MiwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDAyLDB4MDIsMHg0MCwweDAwLDB4MDB9IH0sCi17IDE0LCAweDBmZDUsIDAsIHsweDA5LDB4MDQsMHgwMiwweDAxLDB4MDMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHg4MiwweDAyLDB4NDB9IH0sCi17IDE0LCAweDBmZTMsIDAsIHsweDAwLDB4MDAsMHgwNywweDA1LDB4MDIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA5LDB4MDUsMHg4OSwweDA1LDB4YTB9IH0sCi17IDEwLCAweDBmZjEsIDAsIHsweDAxLDB4MDEsMHgwMCwweDAwLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHhmZiwweDAwfSB9LAoteyAxNCwgMHgwZmZiLCAwLCB7MHgxMiwweDAxLDB4MDAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDcsMHgwNSwweDk5LDB4OTksMHgwMCwweDAxfSB9LAoteyAxNCwgMHgxMDA5LCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHgwMiwweGJhfSB9LAoteyAgNCwgMHgxMDE3LCAwLCB7MHgwMCwweDAzLDB4MDEsMHgwMH0gfSwKLXsgIDIsIDB4MTAxYiwgMCwgezB4N2EsMHgwMH0gfSwKLXsgIDMsIDB4MTAxZCwgMCwgezB4YmEsMHgwNSwweDAwfSB9LAoteyAgMiwgMHgxMDIwLCAwLCB7MHg1MCwweDE3fSB9LAoteyAgOCwgMHgxMDIyLCAwLCB7MHg5MCwweDdmLDB4YTUsMHhlMCwweGZiLDB4MzAsMHhlMCwweDA1fSB9LAoteyAgNSwgMHgxMDJhLCAwLCB7MHg5MCwweDAwLDB4MDEsMHg4MCwweDBkfSB9LAoteyAxMCwgMHgxMDJmLCAwLCB7MHhjMCwweDAyLDB4MTIsMHgwMSwweGRkLDB4ZDAsMHgwMiwweDBhLDB4ODAsMHhlNH0gfSwKLXsgIDMsIDB4MTAzOSwgMCwgezB4OTAsMHgwMCwweDAxfSB9LAoteyAgMSwgMHgxMDNjLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MTAzZCwgMCwgezB4OTAsMHg3ZCwweGMxLDB4ZTAsMHhmOSwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmYiwweDdjLDB4MDAsMHg3ZH0gfSwKLXsgIDQsIDB4MTA0YiwgMCwgezB4N2UsMHhlYiwweDYwLDB4MTJ9IH0sCi17IDE0LCAweDEwNGYsIDAsIHsweDg5LDB4ODIsMHg4YSwweDgzLDB4ZTAsMHhhMywweGE5LDB4ODIsMHhhYSwweDgzLDB4OGMsMHg4MiwweDhkLDB4ODN9IH0sCi17ICA0LCAweDEwNWQsIDAsIHsweGYwLDB4MGMsMHhkYiwweGVlfSB9LAoteyAgOCwgMHgxMDYxLCAwLCB7MHg5MCwweDdkLDB4YzMsMHhlMCwweDkwLDB4N2YsMHhiOSwweGYwfSB9LAoteyAgMSwgMHgxMDY5LCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MTA2YSwgMCwgezB4OTAsMHg3ZCwweGMxLDB4ZTAsMHhmOSwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmYiwweDdjLDB4YzQsMHg3ZH0gfSwKLXsgIDQsIDB4MTA3OCwgMCwgezB4N2QsMHhlYiwweDYwLDB4ZTV9IH0sCi17IDE0LCAweDEwN2MsIDAsIHsweDhjLDB4ODIsMHg4ZCwweDgzLDB4ZTAsMHgwYywweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjAsMHhhMywweGE5LDB4ODJ9IH0sCi17ICA0LCAweDEwOGEsIDAsIHsweGFhLDB4ODMsMHhkYiwweGVlfSB9LAoteyAgMSwgMHgxMDhlLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MTA4ZiwgMCwgezB4OTAsMHg3ZiwweGE1LDB4NzQsMHg4MCwweGYwLDB4MDUsMHg4NiwweDkwLDB4N2QsMHhjMSwweGUwLDB4MDUsMHg4Nn0gfSwKLXsgMTQsIDB4MTA5ZCwgMCwgezB4YTMsMHhmMCwweDEyLDB4MTAsMHgxYiwweDkwLDB4N2YsMHhhNiwweDA1LDB4ODYsMHhhMywweGEzLDB4ZTAsMHhmOX0gfSwKLXsgIDUsIDB4MTBhYiwgMCwgezB4NjAsMHgxNiwweGEzLDB4MDUsMHg4Nn0gfSwKLXsgMTMsIDB4MTBiMCwgMCwgezB4OTAsMHg3ZiwweGE2LDB4MDUsMHg4NiwweGUwLDB4YTMsMHgwNSwweDg2LDB4ZjAsMHhjMCwweDAxLDB4MTJ9IH0sCi17ICA2LCAweDEwYmQsIDAsIHsweDEwLDB4MWIsMHhkMCwweDAxLDB4ZDksMHhlZH0gfSwKLXsgIDYsIDB4MTBjMywgMCwgezB4OTAsMHg3ZiwweGE1LDB4NzQsMHg0MCwweGYwfSB9LAoteyAgMSwgMHgxMGM5LCAwLCB7MHgyMn0gfSwKLXsgIDgsIDB4MTBjYSwgMCwgezB4OTAsMHg4OCwweDAyLDB4NzQsMHgwMSwweGYwLDB4N2EsMHgwMH0gfSwKLXsgIDMsIDB4MTBkMiwgMCwgezB4YmEsMHhmZiwweDAwfSB9LAoteyAgMiwgMHgxMGQ1LCAwLCB7MHg1MCwweDBhfSB9LAoteyAxMCwgMHgxMGQ3LCAwLCB7MHhjMCwweDAyLDB4MTIsMHgwMSwweGRkLDB4ZDAsMHgwMiwweDBhLDB4ODAsMHhmMX0gfSwKLXsgIDEsIDB4MTBlMSwgMCwgezB4MjJ9IH0sCi17ICA1LCAweDEwZTIsIDAsIHsweGU1LDB4NmIsMHhiNCwweGMwLDB4MDh9IH0sCi17ICA4LCAweDEwZTcsIDAsIHsweDkwLDB4ODgsMHgwMywweGU1LDB4NmMsMHhmMCwweDgwLDB4MDZ9IH0sCi17ICA2LCAweDEwZWYsIDAsIHsweDkwLDB4ODgsMHgwMiwweGU1LDB4NmMsMHhmMH0gfSwKLXsgIDQsIDB4MTBmNSwgMCwgezB4N2EsMHgwMCwweDdiLDB4MDB9IH0sCi17IDExLCAweDEwZjksIDAsIHsweGMzLDB4ZWEsMHg5NCwweDMyLDB4ZWIsMHg2NCwweDgwLDB4OTQsMHg4MCwweDUwLDB4MDd9IH0sCi17ICA1LCAweDExMDQsIDAsIHsweDBhLDB4YmEsMHgwMCwweDAxLDB4MGJ9IH0sCi17ICAyLCAweDExMDksIDAsIHsweDgwLDB4ZWV9IH0sCi17ICAxLCAweDExMGIsIDAsIHsweDIyfSB9LAoteyAxMCwgMHgxMTBjLCAwLCB7MHg5MCwweDg4LDB4MDMsMHhlNSwweDZkLDB4ZjAsMHgwNSwweDM5LDB4N2EsMHgwMH0gfSwKLXsgIDMsIDB4MTExNiwgMCwgezB4YmEsMHgyOCwweDAwfSB9LAoteyAgMiwgMHgxMTE5LCAwLCB7MHg1MCwweDAzfSB9LAoteyAgMywgMHgxMTFiLCAwLCB7MHgwYSwweDgwLDB4Zjh9IH0sCi17ICA1LCAweDExMWUsIDAsIHsweGU1LDB4MzksMHhiNCwweDEwLDB4MDh9IH0sCi17ICA4LCAweDExMjMsIDAsIHsweDkwLDB4ODgsMHgwMiwweDc0LDB4YzAsMHhmMCwweDgwLDB4MGV9IH0sCi17ICA1LCAweDExMmIsIDAsIHsweGU1LDB4MzksMHhiNCwweDIwLDB4MDl9IH0sCi17ICA5LCAweDExMzAsIDAsIHsweDkwLDB4ODgsMHgwMiwweDc0LDB4ODAsMHhmMCwweDc1LDB4MzksMHgwMH0gfSwKLXsgIDIsIDB4MTEzOSwgMCwgezB4N2EsMHgwMH0gfSwKLXsgIDMsIDB4MTEzYiwgMCwgezB4YmEsMHgyOCwweDAwfSB9LAoteyAgMiwgMHgxMTNlLCAwLCB7MHg1MCwweDAzfSB9LAoteyAgMywgMHgxMTQwLCAwLCB7MHgwYSwweDgwLDB4Zjh9IH0sCi17ICAxLCAweDExNDMsIDAsIHsweDIyfSB9LAoteyAgNCwgMHgxMTQ0LCAwLCB7MHhlNSwweDZmLDB4NjAsMHgwMn0gfSwKLXsgIDIsIDB4MTE0OCwgMCwgezB4ODAsMHgwN30gfSwKLXsgIDcsIDB4MTE0YSwgMCwgezB4N2EsMHgwMCwweDc1LDB4MzksMHgwMCwweDgwLDB4MDV9IH0sCi17ICA1LCAweDExNTEsIDAsIHsweDdhLDB4NDAsMHg3NSwweDM5LDB4MTB9IH0sCi17ICA5LCAweDExNTYsIDAsIHsweGU1LDB4NmUsMHgyYSwweGZhLDB4ZTUsMHg2ZSwweDI1LDB4MzksMHhmNX0gfSwKLXsgMTAsIDB4MTE1ZiwgMCwgezB4MzksMHg5MCwweDg4LDB4MDIsMHg3NCwweDgwLDB4MmEsMHhmMCwweDdhLDB4MDB9IH0sCi17ICA4LCAweDExNjksIDAsIHsweGMzLDB4ZWEsMHg2NCwweDgwLDB4OTQsMHhhOCwweDUwLDB4MDN9IH0sCi17ICAzLCAweDExNzEsIDAsIHsweDBhLDB4ODAsMHhmNX0gfSwKLXsgIDEsIDB4MTE3NCwgMCwgezB4MjJ9IH0sCi17ICA2LCAweDExNzUsIDAsIHsweGFhLDB4NzAsMHhhYiwweDcxLDB4YWMsMHg3Mn0gfSwKLXsgMTIsIDB4MTE3YiwgMCwgezB4OGEsMHg4MiwweDhiLDB4ODMsMHg4YywweGYwLDB4MTIsMHgxNCwweGVlLDB4ZmQsMHg2MCwweDE4fSB9LAoteyAxMywgMHgxMTg3LCAwLCB7MHg4ZCwweDZkLDB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0LDB4MTIsMHgxMSwweDBjLDB4ZDAsMHgwNH0gfSwKLXsgIDksIDB4MTE5NCwgMCwgezB4ZDAsMHgwMywweGQwLDB4MDIsMHgwYSwweGJhLDB4MDAsMHgwMSwweDBifSB9LAoteyAgMiwgMHgxMTlkLCAwLCB7MHg4MCwweGRjfSB9LAoteyAgMSwgMHgxMTlmLCAwLCB7MHgyMn0gfSwKLXsgMTMsIDB4MTFhMCwgMCwgezB4ZTUsMHg3MywweGM0LDB4NTQsMHgwZiwweGZhLDB4NTMsMHgwMiwweDBmLDB4YzMsMHg3NCwweDA5LDB4OWF9IH0sCi17ICAyLCAweDExYWQsIDAsIHsweDUwLDB4MDZ9IH0sCi17ICA2LCAweDExYWYsIDAsIHsweDc0LDB4MzcsMHgyYSwweGZiLDB4ODAsMHgwNH0gfSwKLXsgIDQsIDB4MTFiNSwgMCwgezB4NzQsMHgzMCwweDJhLDB4ZmJ9IH0sCi17IDEyLCAweDExYjksIDAsIHsweDhiLDB4NmQsMHhjMCwweDAzLDB4MTIsMHgxMSwweDBjLDB4ZDAsMHgwMywweGFhLDB4NzMsMHg1M30gfSwKLXsgIDgsIDB4MTFjNSwgMCwgezB4MDIsMHgwZiwweGMzLDB4NzQsMHgwOSwweDlhLDB4NTAsMHgwNn0gfSwKLXsgIDYsIDB4MTFjZCwgMCwgezB4NzQsMHgzNywweDJhLDB4ZmIsMHg4MCwweDA0fSB9LAoteyAgNCwgMHgxMWQzLCAwLCB7MHg3NCwweDMwLDB4MmEsMHhmYn0gfSwKLXsgIDUsIDB4MTFkNywgMCwgezB4OGIsMHg2ZCwweDEyLDB4MTEsMHgwY30gfSwKLXsgIDEsIDB4MTFkYywgMCwgezB4MjJ9IH0sCi17ICA3LCAweDExZGQsIDAsIHsweDkwLDB4N2QsMHhjMywweGUwLDB4ZmEsMHg2MCwweDBmfSB9LAoteyAxMiwgMHgxMWU0LCAwLCB7MHg5MCwweDdkLDB4YzEsMHhlMCwweGY1LDB4NmUsMHg5MCwweDdkLDB4YzIsMHhlMCwweGY1LDB4NmZ9IH0sCi17ICAzLCAweDExZjAsIDAsIHsweDEyLDB4MTEsMHg0NH0gfSwKLXsgMTIsIDB4MTFmMywgMCwgezB4OTAsMHg3ZCwweGZmLDB4ZTQsMHhmMCwweDc1LDB4NzAsMHhjNCwweDc1LDB4NzEsMHg3ZCwweDc1fSB9LAoteyAgNSwgMHgxMWZmLCAwLCB7MHg3MiwweDAxLDB4MTIsMHgxMSwweDc1fSB9LAoteyAgMSwgMHgxMjA0LCAwLCB7MHgyMn0gfSwKLXsgIDIsIDB4MTIwNSwgMCwgezB4N2EsMHgwNH0gfSwKLXsgIDMsIDB4MTIwNywgMCwgezB4YmEsMHg0MCwweDAwfSB9LAoteyAgMiwgMHgxMjBhLCAwLCB7MHg1MCwweDM2fSB9LAoteyAxNCwgMHgxMjBjLCAwLCB7MHhlYSwweDI0LDB4YzAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdkLDB4ZjUsMHg4MywweGUwLDB4ZmIsMHg3YywweDAwfSB9LAoteyAgMywgMHgxMjFhLCAwLCB7MHhiYywweDA4LDB4MDB9IH0sCi17ICAyLCAweDEyMWQsIDAsIHsweDUwLDB4MjB9IH0sCi17ICA2LCAweDEyMWYsIDAsIHsweDhiLDB4MDUsMHhlZCwweDMwLDB4ZTcsMHgwYn0gfSwKLXsgMTEsIDB4MTIyNSwgMCwgezB4OTAsMHg3ZiwweDk2LDB4NzQsMHg0MiwweGYwLDB4NzQsMHhjMywweGYwLDB4ODAsMHgwOH0gfSwKLXsgIDgsIDB4MTIzMCwgMCwgezB4OTAsMHg3ZiwweDk2LDB4ZTQsMHhmMCwweDc0LDB4ODEsMHhmMH0gfSwKLXsgIDcsIDB4MTIzOCwgMCwgezB4ZWIsMHgyNSwweGUwLDB4ZmIsMHgwYywweDgwLDB4ZGJ9IH0sCi17ICAzLCAweDEyM2YsIDAsIHsweDBhLDB4ODAsMHhjNX0gfSwKLXsgIDEsIDB4MTI0MiwgMCwgezB4MjJ9IH0sCi17ICA0LCAweDEyNDMsIDAsIHsweDdhLDB4MDAsMHg3YiwweGVmfSB9LAoteyAgMywgMHgxMjQ3LCAwLCB7MHhiYSwweDEwLDB4MDB9IH0sCi17ICAyLCAweDEyNGEsIDAsIHsweDUwLDB4MjB9IH0sCi17IDE0LCAweDEyNGMsIDAsIHsweDc0LDB4MTEsMHgyYiwweGZiLDB4MjQsMHgwMCwweGZjLDB4ZTQsMHgzNCwweDE4LDB4ZmQsMHg4YywweDgyLDB4OGR9IH0sCi17IDE0LCAweDEyNWEsIDAsIHsweDgzLDB4ZTQsMHhmMCwweGVhLDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4MTksMHhmNSwweDgzLDB4ZTR9IH0sCi17ICA0LCAweDEyNjgsIDAsIHsweGYwLDB4MGEsMHg4MCwweGRifSB9LAoteyAgMSwgMHgxMjZjLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MTI2ZCwgMCwgezB4NzQsMHhmOCwweDI0LDB4MDAsMHhmNSwweDgyLDB4NzQsMHgwMywweDM0LDB4ODQsMHhmNSwweDgzLDB4ZTQsMHhmMH0gfSwKLXsgMTQsIDB4MTI3YiwgMCwgezB4NzQsMHhmOSwweDI0LDB4MDAsMHhmNSwweDgyLDB4NzQsMHgwMywweDM0LDB4ODQsMHhmNSwweDgzLDB4ZTQsMHhmMH0gfSwKLXsgMTQsIDB4MTI4OSwgMCwgezB4NzQsMHhmYSwweDI0LDB4MDAsMHhmNSwweDgyLDB4NzQsMHgwMywweDM0LDB4ODQsMHhmNSwweDgzLDB4ZTQsMHhmMH0gfSwKLXsgMTQsIDB4MTI5NywgMCwgezB4NzQsMHhmYiwweDI0LDB4MDAsMHhmNSwweDgyLDB4NzQsMHgwMywweDM0LDB4ODQsMHhmNSwweDgzLDB4ZTQsMHhmMH0gfSwKLXsgMTQsIDB4MTJhNSwgMCwgezB4NzQsMHhmZiwweDI0LDB4MDAsMHhmNSwweDgyLDB4NzQsMHgwMywweDM0LDB4ODQsMHhmNSwweDgzLDB4ZTQsMHhmMH0gfSwKLXsgIDEsIDB4MTJiMywgMCwgezB4MjJ9IH0sCi17IDE0LCAweDEyYjQsIDAsIHsweDEyLDB4MDMsMHhjYiwweDEyLDB4MTIsMHg2ZCwweDdhLDB4YzAsMHg3YiwweDg3LDB4N2MsMHgwMSwweDc0LDB4MDF9IH0sCi17IDE0LCAweDEyYzIsIDAsIHsweDJhLDB4ZmQsMHhlNCwweDNiLDB4ZmUsMHg4YywweDA3LDB4OGEsMHg4MiwweDhiLDB4ODMsMHg4YywweGYwLDB4NzR9IH0sCi17IDE0LCAweDEyZDAsIDAsIHsweDAxLDB4MTIsMHgxNCwweGJmLDB4MmQsMHhmYSwweGU0LDB4M2UsMHhmYiwweDhmLDB4MDQsMHg4ZCwweDgyLDB4OGV9IH0sCi17IDE0LCAweDEyZGUsIDAsIHsweDgzLDB4OGYsMHhmMCwweDc0LDB4MDYsMHgxMiwweDE0LDB4YmYsMHg3NCwweDAxLDB4MmEsMHhmZCwweGU0LDB4M2J9IH0sCi17IDE0LCAweDEyZWMsIDAsIHsweGZlLDB4OGMsMHgwNywweDhhLDB4ODIsMHg4YiwweDgzLDB4OGMsMHhmMCwweGU0LDB4MTIsMHgxNCwweGJmLDB4NzR9IH0sCi17IDE0LCAweDEyZmEsIDAsIHsweDAxLDB4MmQsMHhmYSwweGU0LDB4M2UsMHhmYiwweDhmLDB4MDQsMHg4ZCwweDgyLDB4OGUsMHg4MywweDhmLDB4ZjB9IH0sCi17IDE0LCAweDEzMDgsIDAsIHsweDc0LDB4MGIsMHgxMiwweDE0LDB4YmYsMHg3NCwweDAxLDB4MmEsMHhmZCwweGU0LDB4M2IsMHhmZSwweDhjLDB4MDd9IH0sCi17IDE0LCAweDEzMTYsIDAsIHsweDhhLDB4ODIsMHg4YiwweDgzLDB4OGMsMHhmMCwweDc0LDB4MDgsMHgxMiwweDE0LDB4YmYsMHg3NCwweDAxLDB4MmR9IH0sCi17IDE0LCAweDEzMjQsIDAsIHsweGZhLDB4ZTQsMHgzZSwweGZiLDB4OGYsMHgwNCwweDhkLDB4ODIsMHg4ZSwweDgzLDB4OGYsMHhmMCwweDc0LDB4MDF9IH0sCi17IDE0LCAweDEzMzIsIDAsIHsweDEyLDB4MTQsMHhiZiwweDJhLDB4ZmQsMHhlNCwweDNiLDB4ZmUsMHg4YywweDA3LDB4OGEsMHg4MiwweDhiLDB4ODN9IH0sCi17IDE0LCAweDEzNDAsIDAsIHsweDhjLDB4ZjAsMHhlNCwweDEyLDB4MTQsMHhiZiwweDc0LDB4MDEsMHgyZCwweGZhLDB4ZTQsMHgzZSwweGZiLDB4OGZ9IH0sCi17IDE0LCAweDEzNGUsIDAsIHsweDA0LDB4OGQsMHg4MiwweDhlLDB4ODMsMHg4ZiwweGYwLDB4NzQsMHgwMywweDEyLDB4MTQsMHhiZiwweDdkLDB4MDB9IH0sCi17ICAzLCAweDEzNWMsIDAsIHsweGJkLDB4MDYsMHgwMH0gfSwKLXsgIDIsIDB4MTM1ZiwgMCwgezB4NTAsMHgxMn0gfSwKLXsgMTEsIDB4MTM2MSwgMCwgezB4OGEsMHg4MiwweDhiLDB4ODMsMHg4YywweGYwLDB4MGEsMHhiYSwweDAwLDB4MDEsMHgwYn0gfSwKLXsgIDcsIDB4MTM2YywgMCwgezB4ZTQsMHgxMiwweDE0LDB4YmYsMHgwZCwweDgwLDB4ZTl9IH0sCi17IDEzLCAweDEzNzMsIDAsIHsweDhhLDB4ODIsMHg4YiwweDgzLDB4OGMsMHhmMCwweGU1LDB4NzQsMHgxMiwweDE0LDB4YmYsMHg3NCwweGY5fSB9LAoteyAxNCwgMHgxMzgwLCAwLCB7MHgyNCwweDAwLDB4ZjUsMHg4MiwweDc0LDB4MDMsMHgzNCwweDg0LDB4ZjUsMHg4MywweDc0LDB4MGYsMHhmMCwweDc0fSB9LAoteyAxNCwgMHgxMzhlLCAwLCB7MHhmZSwweDI0LDB4MDAsMHhmNSwweDgyLDB4NzQsMHgwMywweDM0LDB4ODQsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwfSB9LAoteyAgNiwgMHgxMzljLCAwLCB7MHgxMiwweDAzLDB4ZTEsMHgxMiwweDA0LDB4Zjd9IH0sCi17ICAxLCAweDEzYTIsIDAsIHsweDIyfSB9LAoteyAxMywgMHgxM2EzLCAwLCB7MHg5MCwweDdkLDB4YzEsMHhlMCwweGZhLDB4MjQsMHgwMCwweGZiLDB4ZTQsMHgzNCwweDE5LDB4ZmMsMHg5MH0gfSwKLXsgMTQsIDB4MTNiMCwgMCwgezB4N2QsMHhjMiwweGUwLDB4ZmQsMHg4YiwweDgyLDB4OGMsMHg4MywweGYwLDB4NzUsMHhmMCwweDExLDB4ZWEsMHhhNH0gfSwKLXsgIDMsIDB4MTNiZSwgMCwgezB4ZmEsMHg3YiwweDAwfSB9LAoteyAgMywgMHgxM2MxLCAwLCB7MHhiYiwweDEwLDB4MDB9IH0sCi17ICAyLCAweDEzYzQsIDAsIHsweDUwLDB4MjR9IH0sCi17IDE0LCAweDEzYzYsIDAsIHsweGVhLDB4MjQsMHgwMCwweGZjLDB4ZTQsMHgzNCwweDE4LDB4ZmQsMHhlYiwweDJjLDB4ZmMsMHhlNCwweDNkLDB4ZmR9IH0sCi17IDE0LCAweDEzZDQsIDAsIHsweDc0LDB4MDQsMHgyYiwweDI0LDB4YzAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdkLDB4ZjUsMHg4MywweGUwLDB4ZmV9IH0sCi17ICA4LCAweDEzZTIsIDAsIHsweDhjLDB4ODIsMHg4ZCwweDgzLDB4ZjAsMHgwYiwweDgwLDB4ZDd9IH0sCi17IDE0LCAweDEzZWEsIDAsIHsweGVhLDB4MjQsMHgwMCwweGZhLDB4ZTQsMHgzNCwweDE4LDB4ZmIsMHg3NCwweDEwLDB4MmEsMHhmNSwweDgyLDB4ZTR9IH0sCi17ICA1LCAweDEzZjgsIDAsIHsweDNiLDB4ZjUsMHg4MywweGU0LDB4ZjB9IH0sCi17ICAxLCAweDEzZmQsIDAsIHsweDIyfSB9LAoteyAgNCwgMHgxM2ZlLCAwLCB7MHhlNSwweDc2LDB4NjAsMHgwMn0gfSwKLXsgIDIsIDB4MTQwMiwgMCwgezB4ODAsMHgxNn0gfSwKLXsgMTIsIDB4MTQwNCwgMCwgezB4NzQsMHgwZiwweDU1LDB4NzUsMHhmYSwweDhhLDB4NzUsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0fSB9LAoteyAxMCwgMHgxNDEwLCAwLCB7MHgzNCwweDE5LDB4ZjUsMHg4MywweGUwLDB4ZjUsMHg3NCwweDEyLDB4MTIsMHhiNH0gfSwKLXsgMTAsIDB4MTQxYSwgMCwgezB4MTIsMHgxMCwweGNhLDB4NzUsMHg2ZSwweDAwLDB4NzUsMHg2ZiwweDAwLDB4MTJ9IH0sCi17ICA2LCAweDE0MjQsIDAsIHsweDExLDB4NDQsMHg3NSwweDcwLDB4YjksMHg3NX0gfSwKLXsgIDYsIDB4MTQyYSwgMCwgezB4NzEsMHgxNCwweDc1LDB4NzIsMHgwMiwweDEyfSB9LAoteyAxMSwgMHgxNDMwLCAwLCB7MHgxMSwweDc1LDB4ZTUsMHg3NiwweGI0LDB4MDIsMHgwNCwweDc0LDB4MDEsMHg4MCwweDAxfSB9LAoteyAgMSwgMHgxNDNiLCAwLCB7MHhlNH0gfSwKLXsgIDMsIDB4MTQzYywgMCwgezB4ZmEsMHg3MCwweDBmfSB9LAoteyAxMiwgMHgxNDNmLCAwLCB7MHg3NCwweDAxLDB4MjUsMHg3NSwweGY1LDB4NzMsMHhjMCwweDAyLDB4MTIsMHgxMSwweGEwLDB4ZDB9IH0sCi17ICAzLCAweDE0NGIsIDAsIHsweDAyLDB4ODAsMHgwYX0gfSwKLXsgMTAsIDB4MTQ0ZSwgMCwgezB4ODUsMHg3NSwweDczLDB4YzAsMHgwMiwweDEyLDB4MTEsMHhhMCwweGQwLDB4MDJ9IH0sCi17IDEyLCAweDE0NTgsIDAsIHsweDc1LDB4NmUsMHgwMCwweDc1LDB4NmYsMHgwMSwweGMwLDB4MDIsMHgxMiwweDExLDB4NDQsMHhkMH0gfSwKLXsgIDQsIDB4MTQ2NCwgMCwgezB4MDIsMHhlYSwweDcwLDB4MWF9IH0sCi17IDEzLCAweDE0NjgsIDAsIHsweDc1LDB4ZjAsMHgxMSwweGU1LDB4NzUsMHhhNCwweGZhLDB4MjQsMHgwMCwweGZhLDB4ZTQsMHgzNCwweDE4fSB9LAoteyAgOSwgMHgxNDc1LCAwLCB7MHhmYiwweDhhLDB4NzAsMHg4YiwweDcxLDB4NzUsMHg3MiwweDAxLDB4MTJ9IH0sCi17ICA0LCAweDE0N2UsIDAsIHsweDExLDB4NzUsMHg4MCwweDM2fSB9LAoteyAgMiwgMHgxNDgyLCAwLCB7MHg3YSwweDAwfSB9LAoteyAgMywgMHgxNDg0LCAwLCB7MHhiYSwweDEwLDB4MDB9IH0sCi17ICAyLCAweDE0ODcsIDAsIHsweDUwLDB4MmZ9IH0sCi17IDEzLCAweDE0ODksIDAsIHsweGVhLDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4MTksMHhmNSwweDgzLDB4ZTAsMHhmYiwweGU1fSB9LAoteyAgNCwgMHgxNDk2LCAwLCB7MHg3NSwweGI1LDB4MDMsMHgxYn0gfSwKLXsgMTQsIDB4MTQ5YSwgMCwgezB4NzUsMHhmMCwweDExLDB4ZWEsMHhhNCwweGZiLDB4MjQsMHgwMCwweGZiLDB4ZTQsMHgzNCwweDE4LDB4ZmMsMHg4Yn0gfSwKLXsgIDksIDB4MTRhOCwgMCwgezB4NzAsMHg4YywweDcxLDB4NzUsMHg3MiwweDAxLDB4YzAsMHgwMiwweDEyfSB9LAoteyAgNCwgMHgxNGIxLCAwLCB7MHgxMSwweDc1LDB4ZDAsMHgwMn0gfSwKLXsgIDMsIDB4MTRiNSwgMCwgezB4MGEsMHg4MCwweGNjfSB9LAoteyAgMSwgMHgxNGI4LCAwLCB7MHgyMn0gfSwKLXsgIDYsIDB4MTRiOSwgMCwgezB4NTAsMHg3MiwweDZmLDB4NjcsMHgyMCwweDAwfSB9LAoteyAxNCwgMHgxNGJmLCAwLCB7MHhjOCwweGMwLDB4ZTAsMHhjOCwweGMwLDB4ZTAsMHhlNSwweGYwLDB4NjAsMHgwYiwweDE0LDB4NjAsMHgwZiwweDE0fSB9LAoteyAgNywgMHgxNGNkLCAwLCB7MHg2MCwweDExLDB4MTQsMHg2MCwweDEyLDB4ODAsMHgxNX0gfSwKLXsgIDcsIDB4MTRkNCwgMCwgezB4ZDAsMHhlMCwweGE4LDB4ODIsMHhmNiwweDgwLDB4MGV9IH0sCi17ICA1LCAweDE0ZGIsIDAsIHsweGQwLDB4ZTAsMHhmMCwweDgwLDB4MDl9IH0sCi17ICA0LCAweDE0ZTAsIDAsIHsweGQwLDB4ZTAsMHg4MCwweDA1fSB9LAoteyAgNSwgMHgxNGU0LCAwLCB7MHhkMCwweGUwLDB4YTgsMHg4MiwweGYyfSB9LAoteyAgNCwgMHgxNGU5LCAwLCB7MHhjOCwweGQwLDB4ZTAsMHhjOH0gfSwKLXsgIDEsIDB4MTRlZCwgMCwgezB4MjJ9IH0sCi17IDE0LCAweDE0ZWUsIDAsIHsweGM4LDB4YzAsMHhlMCwweGU1LDB4ZjAsMHg2MCwweDBkLDB4MTQsMHg2MCwweDBmLDB4MTQsMHg2MCwweDBmLDB4MTR9IH0sCi17ICA2LCAweDE0ZmMsIDAsIHsweDYwLDB4MTAsMHg3NCwweGZmLDB4ODAsMHgwZn0gfSwKLXsgIDUsIDB4MTUwMiwgMCwgezB4YTgsMHg4MiwweGU2LDB4ODAsMHgwYX0gfSwKLXsgIDMsIDB4MTUwNywgMCwgezB4ZTAsMHg4MCwweDA3fSB9LAoteyAgNCwgMHgxNTBhLCAwLCB7MHhlNCwweDkzLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MTUwZSwgMCwgezB4YTgsMHg4MiwweGUyfSB9LAoteyAgNCwgMHgxNTExLCAwLCB7MHhmOCwweGQwLDB4ZTAsMHhjOH0gfSwKLXsgIDEsIDB4MTUxNSwgMCwgezB4MjJ9IH0sCi17ICAwLCAweDAwMDAsIDEsIHswfSB9Ci0KLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGJpdHN0cmVhbVtdID0gewotCi0weDAwLDB4MDksMHgwRiwweEYwLDB4MEYsMHhGMCwweDBGLDB4RjAsIDB4MEYsMHhGMCwweDAwLDB4MDAsMHgwMSwweDYxLDB4MDAsMHgwRCwKLTB4NjQsMHg2MSwweDYyLDB4NzUsMHg3MywweDYyLDB4NzQsMHg3MiwgMHgyRSwweDZFLDB4NjMsMHg2NCwweDAwLDB4NjIsMHgwMCwweDBCLAotMHg3MywweDMxLDB4MzAsMHg3OCwweDZDLDB4NzYsMHg3MSwweDMxLCAweDMwLDB4MzAsMHgwMCwweDYzLDB4MDAsMHgwQiwweDMxLDB4MzksCi0weDM5LDB4MzksMHgyRiwweDMwLDB4MzksMHgyRiwweDMyLDB4MzQsIDB4MDAsMHg2NCwweDAwLDB4MDksMHgzMSwweDMwLDB4M0EsMHgzNCwKLTB4MzIsMHgzQSwweDM0LDB4MzYsMHgwMCwweDY1LDB4MDAsMHgwMCwgMHgyRSwweEMwLDB4RkYsMHgyMCwweDE3LDB4NUYsMHg5RiwweDVCLAotMHhGRSwweEZCLDB4QkIsMHhCNywweEJCLDB4QkIsMHhGQiwweEJGLCAweEFGLDB4RUYsMHhGQiwweERGLDB4QjcsMHhGQiwweEZCLDB4N0YsCi0weEJGLDB4QjcsMHhFRiwweEYyLDB4RkYsMHhGQiwweEZFLDB4RkYsIDB4RkYsMHhFRiwweEZGLDB4RkUsMHhGRiwweEJGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEFGLDB4RkYsMHhGQSwweEZGLDB4RkYsMHhGRiwgMHhDOSwweEZGLDB4RkYsMHhGRiwweERGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZCLDB4RkYsMHhBMywweEZGLDB4RkIsCi0weEZFLDB4RkYsMHhCRiwweEVGLDB4RTMsMHhGRSwweEZGLDB4QkYsIDB4RTMsMHhGRSwweEZGLDB4QkYsMHg2RiwweEZCLDB4RjYsMHhGRiwKLTB4QkYsMHhGRiwweDQ3LDB4RkYsMHhGRiwweDlGLDB4RUUsMHhGOSwgMHhGRSwweENGLDB4OUYsMHhFRiwweEZCLDB4Q0YsMHg5QiwweEVFLAotMHhGOCwweEZFLDB4RUYsMHg4RiwweEVFLDB4RkIsMHhGRSwweDBCLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGQiwweEZGLDB4RkYsIDB4QkYsMHhGRiwweEZGLDB4RkMsMHgxNywweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkYsMHg3RiwgMHhGRiwweEZGLDB4RkIsMHhGRiwweEZGLDB4N0YsMHhGRiwweEZGLAotMHhGQywweDNGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRSwweDVGLDB4RkYsIDB4RkYsMHhGRCwweEZGLDB4RkYsMHhEQiwweEZGLDB4RkQsMHhGRiwKLTB4NzcsMHhGRiwweEZELDB4RkYsMHhGRiwweERGLDB4RkUsMHhGRCwgMHhGRiwweEZGLDB4RjIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZELDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RTEsCi0weDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweDNGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhFMywweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEJGLAotMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4NjcsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weDdGLDB4RkYsMHhGRiwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweERGLDB4RkYsMHhGRiwweEZGLDB4MkYsMHhGRiwKLTB4RjMsMHhGRCwweEZGLDB4N0YsMHhERSwweEY3LDB4RkQsMHhGRiwgMHg3RiwweEY3LDB4N0QsMHhGRiwweDdGLDB4REYsMHhGNywweEJELAotMHhGRiwweDdGLDB4RkYsMHgxRiwweEZGLDB4RUYsMHhGQiwweEZFLCAweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEVGLDB4RkIsCi0weEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4RkYsIDB4M0YsMHhGRSwweDdGLDB4OUYsMHhFNywweEY5LDB4RkUsMHg3RiwKLTB4OUYsMHhFNywweEZBLDB4N0YsMHg5RiwweEU3LDB4RjksMHhGRSwgMHg3RiwweDlGLDB4RTcsMHhGRiwweEZDLDB4N0YsMHhCRiwweEJGLAotMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwweEI3LCAweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsCi0weEZGLDB4RTAsMHhGRCwweEY5LDB4RkUsMHg3RiwweDlGLDB4RTcsIDB4RjksMHhGRSwweDdGLDB4OUQsMHhGOSwweEZFLDB4N0QsMHg5RCwKLTB4RTcsMHhGOSwweEZFLDB4N0YsMHg5RiwweEVELDB4RUQsMHhGRiwgMHhGRCwweEZGLDB4N0YsMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLAotMHhERiwweEZELDB4RkYsMHg3RiwweERGLDB4RjcsMHhGRCwweEZGLCAweDdGLDB4REYsMHhGRiwweDlCLDB4RkYsMHhFRiwweEZCLDB4RkUsCi0weEZCLDB4QkYsMHhFRiwweEJCLDB4RkUsMHhGRiwweEFGLDB4QkIsIDB4QkUsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhGRiwKLTB4QjcsMHhCRiwweERCLDB4RjYsMHhCRCwweEJGLDB4NkIsMHhEQiwgMHhGNiwweEY5LDB4QkYsMHg1QiwweEQ2LDB4RjksMHhCRiwweDZGLAotMHhEQiwweEY2LDB4RkQsMHhCRiwweEZGLDB4MEUsMHhGRiwweEZGLCAweEZGLDB4RkYsMHg1RiwweEZGLDB4RjcsMHhGRiwweEZGLDB4N0YsCi0weEY3LDB4QkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhERiwweDlGLDB4RkYsMHhGRiwweEZGLDB4RkUsMHhGRiwKLTB4RkYsMHhFRiwweEZFLDB4RkUsMHhGRiwweEZGLDB4NzcsMHhGRiwgMHhGQiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGOCwweDNGLAotMHhGRiwweEZELDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEY0LDB4N0YsMHhGRiwweEZFLDB4RkQsIDB4QkUsMHhGRiwweERGLDB4RkUsMHhGRiwweEZGLDB4RUYsMHg3RiwKLTB4RkYsMHhDRiwweEZGLDB4Q0YsMHhGRiwweEZGLDB4RkYsMHhERiwgMHhFNiwweEZGLDB4RkYsMHg3RiwweERGLDB4RjcsMHhERCwweDdGLAotMHg3RiwweERGLDB4RjcsMHhGRiwweDdGLDB4REYsMHhENywweEZELCAweEZGLDB4N0YsMHhERiwweEY3LDB4RkYsMHhDRCwweEZGLDB4RjIsCi0weEZGLDB4RkYsMHg0RiwweDdGLDB4RjQsMHhGRiwweEZGLDB4RkYsIDB4RTcsMHhFRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEJCLDB4RkYsMHhFRiwweEZGLDB4RkUsMHhGRiwgMHhGRiwweEZGLDB4RUYsMHhGRiwweEZGLDB4RUYsMHhGRiwweEZCLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweDY1LCAweEVGLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRCwweEVGLDB4RkYsCi0weEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkUsMHhDRiwweERGLDB4RkUsMHhGRiwKLTB4RkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjMsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRSwweERGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRSwweEJGLDB4RkYsIDB4RkYsMHhGRiwweEUzLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEVGLDB4RUIsMHhGRiwweEZFLDB4QkYsMHhGRiwgMHhFQiwweEZGLDB4RkMsMHg3RiwweEZGLDB4RkYsMHhGRiwweEVFLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERCwweEZGLCAweEQ2LDB4RkYsMHhGRCwweEJGLDB4RkYsMHhGQiwweEZGLDB4RkUsCi0weEZELDB4RkYsMHhGRiwweEZELDB4RUYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4REUsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRCwweEZGLDB4N0YsMHhCRiwgMHhGRiwweDVGLDB4REYsMHhGRiwweEZGLDB4QkYsMHg3NywweEZGLAotMHhGRiwweEZGLDB4N0YsMHhENywweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4QzMsMHhGRiwweEZGLDB4RkYsMHhGRiwweERGLDB4RUYsCi0weEZGLDB4RkYsMHhGRSwweEZCLDB4RkYsMHhGRiwweERGLDB4QkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFRCwweEZGLDB4QjcsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhBRiwweDdGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4REYsMHhCRiwweERGLDB4RjMsMHhGRCwweEZCLDB4RkYsMHg1QiwKLTB4RkQsMHhGRiwweEJGLDB4RUYsMHhGNywweEZGLDB4RkYsMHg3RCwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEY4LDB4M0IsMHhGRiwweEJGLAotMHg2RiwweEZGLDB4RkUsMHhGRiwweEJGLDB4RkYsMHhFQiwweDdELCAweEZGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RjIsMHg3RiwweEZDLDB4RkYsMHgzRiwweERGLDB4RUQsIDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEVGLDB4NUYsMHhGNywKLTB4QjUsMHhGRiwweEVGLDB4RkYsMHhGRiwweEZGLDB4RTAsMHgzRiwgMHg5RiwweDlFLDB4RkYsMHhGRiwweEVGLDB4RkYsMHhERiwweEZGLAotMHhCRiwweDVGLDB4QkYsMHhDRiwweEYzLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweDY5LDB4QUYsMHgzMywweEZELDB4RkYsCi0weEZCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQywweEZGLDB4N0YsIDB4RDksMHhGRiwweERGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNSwKLTB4QTMsMHhERiwweDZFLDB4REUsMHhGRiwweEZGLDB4QkQsMHhGRiwgMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkUsMHhFNywweEZELAotMHhGRiwweEZGLDB4RkYsMHhGOSwweEVGLDB4QzYsMHhGRSwweEI3LCAweEFELDB4RTUsMHhGOSwweEZGLDB4RkYsMHhGRiwweENGLDB4RkYsCi0weEZGLDB4RkYsMHhDRCwweEZCLDB4N0YsMHhGRiwweEZGLDB4RkYsIDB4RjksMHhGNiwweDBGLDB4REYsMHhFQywweENGLDB4N0YsMHhGRiwKLTB4RkIsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZELDB4RkYsMHhGRSwgMHhGOSwweEZELDB4N0YsMHhGRiwweDdGLDB4RkYsMHhGOSwweDVCLAotMHhGRiwweDczLDB4REMsMHhGRCwweDdCLDB4REYsMHhGRiwweEZGLCAweEZGLDB4N0IsMHhGRiwweEZGLDB4RjcsMHg1MywweEQ2LDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEQ4LDB4OUYsMHhGRSwweEZGLDB4RUYsIDB4N0YsMHhFRSwweEZGLDB4RkYsMHhGRiwweEZCLDB4RUQsMHhFRCwKLTB4RkQsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZCLDB4N0YsMHhGRiwgMHhFMiwweDdGLDB4RkYsMHg2RiwweEQ4LDB4NTcsMHhGNywweEZGLAotMHhGRiwweEZGLDB4REYsMHhGRiwweEU4LDB4RkYsMHhGRiwweEZELCAweEZGLDB4RkYsMHhGQywweDdGLDB4RkYsMHhFNCwweEZGLDB4RkIsCi0weEVGLDB4RkIsMHhGRSwweERGLDB4QjcsMHhFRCwweEZGLDB4RkUsIDB4REYsMHg3RiwweEZGLDB4RkUsMHg3RiwweEI3LDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweDg5LDB4RkYsMHhGRiwweENGLDB4RjMsMHhGRSwgMHg3RiwweEZGLDB4RUYsMHhGRiwweEZFLDB4N0UsMHg3RiwweEZCLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEYxLCAweEZGLDB4RUIsMHg3QSwweEQ1LDB4QkYsMHg2RiwweERCLDB4QkUsCi0weEZELDB4QjcsMHhEOCwweEY2LDB4RTUsMHhCRiwweDZGLDB4RkIsIDB4RkUsMHhGNSwweEJELDB4N0UsMHgwNiwweEZGLDB4REYsMHhGNywKLTB4RkIsMHhGNiwweEZGLDB4M0YsMHhGRiwweERCLDB4RkYsMHhGRiwgMHg2RiwweEZCLDB4RjcsMHhGRiwweEZGLDB4RkYsMHhGQiwweEZFLAotMHhGNywweEFGLDB4RkYsMHhCNywweEVELDB4RUYsMHhGNywweEZFLCAweEZGLDB4RkYsMHhERiwweEZGLDB4RkUsMHhGRiwweEVGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEJGLDB4RjcsMHhGQywweDFGLDB4RUUsIDB4RkIsMHhGRSwweEJELDB4RkYsMHg3RiwweDVGLDB4RDcsMHhGRCwKLTB4RkIsMHg0MywweEZGLDB4RkYsMHhGRCwweEZGLDB4NUYsMHhGRiwgMHhGNywweEZGLDB4RjksMHgzRiwweEZGLDB4Q0YsMHhGMywweEZELAotMHhGNywweDdFLDB4RUYsMHhBNywweEY5LDB4RkUsMHg4RiwweEE3LCAweEU5LDB4RjMsMHg3RSwweDlGLDB4RkIsMHhGOCwweEZGLDB4RkYsCi0weDNGLDB4RkQsMHg3RiwweDVGLDB4REYsMHhGRCwweEZGLDB4RkYsIDB4NUYsMHhGRiwweEZELDB4NUYsMHhGRiwweEZGLDB4N0YsMHhGRCwKLTB4N0YsMHhGRCwweDlGLDB4RkYsMHhFMCwweEZGLDB4RkEsMHhGOCwgMHhCRSwweDZGLDB4OUYsMHhFNiwweEY4LDB4QkUsMHgzRiwweDlBLAotMHhGOSwweEJFLDB4NkYsMHg5RiwweEUyLDB4RjksMHhGRSwweDZGLCAweDlGLDB4RjksMHhGRiwweEY1LDB4RkQsMHg3RiwweENGLDB4REYsCi0weEZELDB4RkQsMHg3RiwweEZGLDB4RjUsMHhGRiwweEZGLDB4RkYsIDB4RjcsMHhGNSwweEZELDB4MEYsMHhEQiwweEZGLDB4RDMsMHhGRiwKLTB4RUIsMHhGQSwweEZGLDB4RkYsMHhCRiwweEZGLDB4RkEsMHhGRiwgMHhGRiwweENCLDB4RkIsMHhGRSwweEZGLDB4RkYsMHhFQiwweEZBLAotMHhGRSwweEZGLDB4RkYsMHhCNywweEZGLDB4RkYsMHhGRiwweEZGLCAweEJGLDB4RkYsMHhERiwweEY1LDB4RkYsMHhGRiwweEQ3LDB4RkYsCi0weEZGLDB4RkYsMHhERiwweEQ3LDB4RjUsMHhGRiwweDdGLDB4RkUsIDB4NEYsMHhGRiwweEZELDB4RkYsMHg3RiwweDdGLDB4RkYsMHhBRCwKLTB4RUIsMHhGQiwweEZGLDB4QUQsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhBRiwweEVCLDB4RkIsMHhGRiwweEZDLDB4MEQsMHhGRiwweEZGLAotMHhERiwweEQyLDB4RkQsMHhGRiwweEZGLDB4RkQsMHhGNiwweEZGLCAweEZGLDB4N0YsMHhGRiwweEZGLDB4MUYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkIsMHgzRiwweDdELDB4RUIsMHgzMiwweEZFLDB4QkYsIDB4MkYsMHhFQiwweEZBLDB4QUUsMHhCRCwweEUwLDB4RkEsMHg3RSwKLTB4QkYsMHhBRCwweEVCLDB4RkEsMHhGRSwweEJGLDB4RjUsMHg3RiwgMHhGRiwweERFLDB4RkUsMHhFMywweEZCLDB4RkYsMHhGRiwweEZGLAotMHhERiwweEVGLDB4NEYsMHhERiwweEZGLDB4N0YsMHhERiwweEZGLCAweEY3LDB4RkYsMHhGRiwweEY4LDB4N0YsMHhGRiwweEZGLDB4RUYsCi0weEZCLDB4RkYsMHhGRiwweEZGLDB4RUYsMHhGRiwweEZGLDB4REYsIDB4RUQsMHhGQiwweERGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwKLTB4ODEsMHhGRiwweEZGLDB4RkYsMHhGRiwweDNGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkUsMHhERCwweEZFLDB4RUYsMHhGRCwweEZGLAotMHhGRiwweEZCLDB4RkUsMHhGNywweEZGLDB4OTMsMHhGRCwweEZCLCAweDdFLDB4RkYsMHhGRSwweDg3LDB4RTksMHhGRiwweDdGLDB4QjMsCi0weDlGLDB4RkUsMHhGRSwweEZGLDB4QUYsMHhGRCwweEZFLDB4N0UsIDB4M0YsMHhGRSwweDY3LDB4RkYsMHhGRiwweEY3LDB4RkYsMHhGRiwKLTB4RkMsMHhGNywweERGLDB4RkQsMHhGRiwweDdGLDB4RkYsMHhGRiwgMHg3RiwweDZELDB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweDJGLAotMHhGRiwweEJGLDB4RkYsMHhGRiwweEVFLDB4RkYsMHhCRSwweEZGLCAweEZGLDB4RkUsMHhGRiwweEVGLDB4RkYsMHhGRiwweEZFLDB4RkYsCi0weEVGLDB4RkYsMHhGRiwweEZBLDB4NUYsMHhGRiwweEZGLDB4RkIsIDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGQiwweEZFLDB4RkQsMHhGRiwKLTB4RkUsMHhGRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4N0YsMHhGRiwgMHhGRSwweEJGLDB4REYsMHhGRiwweEZCLDB4RkYsMHhGRiwweEY3LAotMHhGQywweEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweDdGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGMiwweDdGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RjMsMHhGRiwweEZGLDB4RkYsMHhFRiwweEZCLDB4RkYsMHhGRiwKLTB4RkYsMHhERiwweEUyLDB4RkYsMHhGRiwweEZCLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZCLDB4RTcsMHhGRiwweEZELAotMHhGRiwweEZGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwweEVELCAweEVGLDB4RkQsMHhGRiwweEZGLDB4REYsMHhENywweEY1LDB4RkQsCi0weDdGLDB4NUQsMHhGRCwweEZGLDB4N0YsMHhERiwweDk3LDB4RjQsIDB4RkQsMHg3QiwweDVGLDB4RkYsMHhDOSwweEZGLDB4RkIsMHhGRSwKLTB4RkYsMHhCRiwweEZGLDB4NUYsMHhGRiwweEZGLDB4RjcsMHhGRiwgMHhFRiwweEZELDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEY3LDB4RkYsMHhENywweEZELDB4N0QsMHg3RiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEVGLDB4REYsMHhGNywweEZELDB4RkYsCi0weEJCLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRSwweEUzLDB4RkYsIDB4RjksMHhGRSwweDdGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwKLTB4QkYsMHhGOSwweEZFLDB4RkYsMHg5RiwweEVGLDB4RjksMHhGRSwgMHhGRiwweEJGLDB4RjMsMHhEQSwweEZGLDB4MzcsMHhDRCwweEYzLAotMHg3QywweERGLDB4MzcsMHhDRCwweEYzLDB4N0YsMHgzNywweENELCAweEYzLDB4N0MsMHhERiwweDM3LDB4Q0MsMHhGMywweDdGLDB4NUEsCi0weEJELDB4RjYsMHhGRCwweEJGLDB4NkYsMHhEQiwweEY2LDB4RkQsIDB4QkYsMHg2RiwweERFLDB4RkQsMHhCRiwweDZGLDB4REIsMHhGNiwKLTB4RkQsMHhCRiwweDZGLDB4RkUsMHhGMSwweDZGLDB4RUIsMHg3QSwgMHhERSwweEI3LDB4QUQsMHhFQiwweDdBLDB4REUsMHhCNywweEFGLAotMHg3QSwweERFLDB4QjcsMHhBRCwweEVCLDB4N0EsMHhERSwweEI3LCAweEZGLDB4N0UsMHhGRiwweEZFLDB4Q0QsMHhCMywweDZDLDB4REIsCi0weDM2LDB4Q0QsMHhCMywweDZDLDB4REUsMHhDRCwweEIzLDB4NkMsIDB4REIsMHgzNiwweENELDB4QjMsMHg2QywweERGLDB4QzksMHhCRiwKLTB4RjcsMHhCRCwweEVGLDB4N0EsMHg5RSwweEE3LDB4QTksMHhFQSwgMHg3QSwweEI3LDB4QkQsMHhFQSwweDdCLDB4REUsMHhBNywweEJELAotMHhDQSwweDcyLDB4OEQsMHg5MSwweEZGLDB4RUYsMHhGQiwweEZFLCAweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGNywweEVGLDB4RkIsCi0weEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4RkUsIDB4ODcsMHhGRiwweEY2LDB4RkQsMHhCRiwweDZGLDB4REIsMHhGNiwKLTB4RkQsMHhCRiwweDZGLDB4RjYsMHhGRCwweEJGLDB4NkYsMHhEQiwgMHhGNiwweEZELDB4QkYsMHg2RiwweEZFLDB4NEYsMHhGRiwweEJGLAotMHhFRiwweEJCLDB4RUUsMHhGQiwweEJFLDB4RUYsMHhCQiwweEVGLCAweEJFLDB4RUYsMHhCQiwweEVFLDB4RkIsMHhCRSwweEVGLDB4QkIsCi0weEVGLDB4RkMsMHg1RiwweEZGLDB4RkYsMHhGRiwweDNGLDB4Q0YsIDB4RjMsMHhGQywweEZGLDB4M0YsMHhDRiwweEZDLDB4RkYsMHgzRiwKLTB4Q0YsMHhGMywweEZDLDB4RkYsMHgzRiwweENGLDB4RkQsMHg5RiwgMHhGRSwweEJGLDB4QUYsMHhFQiwweEZBLDB4RkUsMHhCRiwweEFGLAotMHhFQiwweEZFLDB4QkYsMHhBRiwweEVCLDB4RkEsMHhGRSwweEJGLCAweEFGLDB4RUIsMHhGRiwweEUxLDB4NkYsMHhGRCwweEZGLDB4N0YsCi0weERGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwweEZELDB4RkYsIDB4N0YsMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsMHhGRiwKLTB4N0EsMHhCRiwweEZCLDB4RkUsMHhERiwweEI3LDB4RUQsMHhGQiwgMHg3RSwweERGLDB4QjcsMHhGQiwweDdFLDB4REYsMHhCNywweEVELAotMHhGQiwweDdFLDB4REYsMHhCNywweEZGLDB4QzksMHhGRiwweEZGLCAweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsCi0weEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUUsIDB4RkIsMHhGRSwweEJCLDB4RkYsMHhGRSwweEZGLDB4QkYsMHhFRiwKLTB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZFLDB4RkYsMHhCRiwgMHhFRiwweEZCLDB4RkUsMHhGRiwweDNGLDB4Q0YsMHhGRiwweEU3LAotMHhGRSwweEZGLDB4RjUsMHhGRCwweDc3LDB4NUQsMHhENywweDM1LCAweERELDB4NzcsMHhENywweEY1LDB4Q0QsMHg3QiwweDVELDB4RDcsCi0weEY1LDB4REQsMHg3NywweEZFLDB4MjcsMHhGRiwweEZGLDB4OEIsIDB4RTIsMHhGOCwweEJFLDB4MkYsMHg4QiwweEUyLDB4RjksMHhBRiwKLTB4OEIsMHhFMiwweEY4LDB4QkUsMHgyRiwweDhCLDB4RTIsMHhGOSwgMHhGRSwweDFGLDB4RkYsMHg1RiwweEQ3LDB4RjUsMHhGRCwweDdGLAotMHg1RiwweEQ3LDB4RjUsMHhGRiwweDVGLDB4RDcsMHhGNSwweEZELCAweDdGLDB4NUYsMHhENywweEY1LDB4RkYsMHhGQSwweDNGLDB4RkUsCi0weEJGLDB4QUYsMHhFQiwweEZBLDB4RkUsMHhCRiwweEFGLDB4RUIsIDB4RUMsMHhCRiwweEFGLDB4RUIsMHhGQSwweEZFLDB4QkYsMHhBRiwKLTB4RUIsMHhGRiwweEZFLDB4N0YsMHhGRCwweDdGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEU2LCAweEZGLDB4RkEsMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsCi0weEY3LDB4RkMsMHhGRiwweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsIDB4REYsMHhGNywweEZELDB4RkYsMHhGNSwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweDAyLDB4RkYsMHhGRSwweEJGLDB4QUIsMHhFQiwweEZBLCAweEJFLDB4QkYsMHgyMywweEVCLDB4REUsMHgxRiwweEFGLDB4RUEsCi0weEZBLDB4RkUsMHhBRiwweEFGLDB4RUIsMHhGRCwweDk3LDB4RkYsIDB4RjMsMHhGQywweDdCLDB4MUYsMHhDRiwweEYxLDB4RkMsMHg3RiwKLTB4MUYsMHhGMSwweEZDLDB4NzcsMHgxRiwweENELDB4RjEsMHhGQywgMHhGRiwweDFGLDB4RkUsMHg4NywweEZGLDB4QUYsMHhFRiwweEZBLAotMHhGRSwweEZGLDB4QUYsMHhFRiwweEZBLDB4RkQsMHhCRiwweDJCLCAweEZCLDB4N0UsMHhCRiwweEJGLDB4RUIsMHhGQiwweEZCLDB4RkIsCi0weERGLDB4RkYsMHhGQiwweEY3LDB4RkYsMHhGRiwweDdGLDB4RjcsIDB4RjcsMHhGRiwweEZELDB4REYsMHhGRSwweEZDLDB4REYsMHhGRiwKLTB4REYsMHhGRiwweEZELDB4RkYsMHhEQSwweEJGLDB4RkYsMHhCQiwgMHhFRiwweEZCLDB4RjksMHhGRiwweEJFLDB4RUYsMHhGQiwweEZCLAotMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLCAweEZGLDB4RjcsMHg3RiwweEZELDB4RDcsMHhGRiwweEZGLDB4N0YsCi0weEZGLDB4RkYsMHhGRiwweEZFLDB4RjcsMHhGRiwweEZFLDB4RkYsIDB4RjcsMHhGRiwweEZGLDB4N0YsMHhGRiwweEZGLDB4RUMsMHhGRiwKLTB4RkYsMHhGRSwweERGLDB4QkYsMHhGRiwweEZCLDB4RkUsMHhGRiwgMHhCQiwweDY4LDB4QUUsMHgxRiwweEFFLDB4RkIsMHhGQiwweEZGLAotMHhGRiwweEJGLDB4RkYsMHhENSwweEZGLDB4N0YsMHhGRiwweEZGLCAweEY3LDB4RkUsMHhGRSwweEZGLDB4QkYsMHhFRiwweDlGLDB4RkQsCi0weDdGLDB4RkYsMHhDQiwweEZGLDB4RkYsMHhERiwweEZGLDB4RkYsIDB4QkIsMHhGNywweEJGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERiwKLTB4RkYsMHhCRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4REUsMHgzRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4QTcsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RUYsMHhGRiwweDdGLDB4RkIsMHhGRCwweEZCLCAweDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhDRiwweEYzLDB4N0MsCi0weEZGLDB4N0YsMHg4RCwweDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkIsMHhGRiwweEY3LDB4RkIsMHhGRSwweEZELDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEY3LDB4RkQsMHhGRiwweDdGLDB4RkQsMHgxRiwgMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4QkYsMHhERiwweEZGLAotMHhGRiwweEZFLDB4NUMsMHhGRiwweDZELDB4RkYsMHg3RiwweEFCLCAweEU3LDB4RjEsMHhGRiwweEZELDB4OUYsMHhGRiwweEZGLDB4QUQsCi0weEVCLDB4N0EsMHgzRiwweDFGLDB4RkYsMHhGRiwweEZFLDB4QkYsIDB4QUYsMHhGMywweERFLDB4RjUsMHhGRiwweDhGLDB4RkIsMHhERiwKLTB4RTYsMHg3RiwweEZGLDB4REYsMHhGMywweEZELDB4RkYsMHg3RSwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGNywweEYzLAotMHg3RiwweERGLDB4RjcsMHhFRiwweEZGLDB4RjYsMHgzRiwweDlGLCAweERGLDB4RkYsMHhGRiwweEVFLDB4RkYsMHhGRiwweEVGLDB4RkIsCi0weEZGLDB4RkYsMHhGOSwweEZCLDB4RkUsMHg0RiwweEJGLDB4RUYsIDB4QkIsMHhGRiwweDY5LDB4QUYsMHhBRiwweEZDLDB4RkYsMHgzRiwKLTB4REQsMHhGRiwweEZDLDB4QkYsMHg4RiwweEZGLDB4RkQsMHhGMywgMHhCRiwweEVELDB4OUUsMHhGQywweEJGLDB4NkYsMHhGNSwweEQzLAotMHhERiwweEZGLDB4REIsMHhENiwweEY1LDB4RUYsMHhGRCwweEZFLCAweEZGLDB4QjksMHhGRiwweDFGLDB4RDIsMHhBOSwweEFGLDB4RkYsCi0weERCLDB4RjcsMHhCRiwweEVGLDB4NDYsMHhGRiwweEZGLDB4QUQsIDB4RUIsMHg3QSwweERGLDB4RUYsMHhGNywweEZGLDB4N0YsMHhGNywKLTB4OUYsMHhFRCwweEZGLDB4N0YsMHhGRiwweEFELDB4RUIsMHg3RiwgMHhGNSwweDZGLDB4RkYsMHhGRCwweEZCLDB4RDYsMHhGNCwweEY3LAotMHhGQiwweEY5LDB4N0UsMHg3RiwweEZGLDB4NUYsMHhDMiwweEZFLCAweEJGLDB4RkQsMHhGQiwweDMzLDB4REYsMHhGOSwweDVCLDB4RkYsCi0weEZGLDB4REQsMHg2NywweDdELDB4Q0YsMHhFRiwweERCLDB4RUMsIDB4RkYsMHg3NywweERELDB4RjcsMHhGRCwweEZGLDB4RkYsMHhERSwKLTB4QTcsMHhCRiwweEQ0LDB4OUYsMHhGRiwweEZGLDB4QkYsMHhFRiwgMHhGRSwweEZGLDB4REYsMHhFRiwweEJCLDB4RkYsMHhGRiwweEVGLAotMHhFQiwweEZBLDB4RkYsMHhFRiwweEJELDB4RkIsMHhGRiwweEUyLCAweDdGLDB4RkYsMHhERiwweERGLDB4RjcsMHhGRCwweEJGLDB4QkIsCi0weDczLDB4RjcsMHhGRCwweDdGLDB4REYsMHhERSwweEY3LDB4QkYsIDB4RUEsMHhEQiwweEY2LDB4RkYsMHhENiwweEZGLDB4RkYsMHg2NiwKLTB4RkYsMHhCRSwweEZGLDB4QkYsMHg2QiwweEQ5LDB4RjYsMHhERiwgMHhGRiwweEZCLDB4N0UsMHg3RiwweEI3LDB4N0UsMHhGRiwweEZFLAotMHhGRiwweENELDB4RkYsMHhGRSwweDdGLDB4RkYsMHhGQywweEZELCAweDNGLDB4RkIsMHhGQiwweEY3LDB4RkYsMHhGRiwweEZCLDB4RjYsCi0weDdELDB4RkUsMHg3RiwweEZGLDB4RkMsMHhGRiwweEI5LDB4RkYsIDB4RjksMHhGQSwweEZFLDB4QkYsMHhBRiwweDVCLDB4RDYsMHhFRCwKLTB4QUQsMHg3QiwweEY2LDB4RjksMHhCRiwweEVGLDB4RjgsMHhGQSwgMHhGRSwweEJGLDB4RkUsMHhFNiwweEZGLDB4RkYsMHhGNywweEZELAotMHhGRiwweDdGLDB4QkYsMHhFRiwweEYzLDB4RkYsMHhGRiwweDZGLCAweEY3LDB4RkUsMHhGRiwweEZGLDB4RjcsMHhGRCwweEZFLDB4RjcsCi0weEVGLDB4RkYsMHhGQiwweEVGLDB4RkIsMHg3RSwweERFLDB4RkUsIDB4RkYsMHhCRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkIsMHhGRiwKLTB4RkYsMHhFRiwweEZCLDB4NkYsMHhGQywweDFGLDB4RkUsMHhFNywgMHhGRiwweEZGLDB4RkYsMHhFRiwweEZGLDB4RDMsMHhCNCwweEJCLAotMHhGRiwweEZGLDB4RkQsMHhCRiwweDZGLDB4RTMsMHhGRSwweEZGLCAweEJGLDB4RkMsMHhCRiwweEY3LDB4Q0YsMHhGNywweEZELDB4RkYsCi0weDJGLDB4REYsMHhBQiwweEVBLDB4RkYsMHhERiwweEU3LDB4RUEsIDB4OUEsMHhBRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4RjUsMHgzRiwKLTB4RkQsMHg3RSwweEZGLDB4RDcsMHhGNSwweEZCLDB4RkYsMHhGRCwgMHhGNywweEZGLDB4N0YsMHhGRSwweEY3LDB4RkQsMHhGRiwweEQ3LAotMHhGRiwweEQ3LDB4N0YsMHhFRSwweDdGLDB4RkEsMHg3OSwweEZFLCAweDJGLDB4OEIsMHhFNiwweEY5LDB4RkUsMHgzRiwweDlFLDB4RjksCi0weEJFLDB4MkYsMHgwQiwweEU3LDB4RjksMHhGRSwweDJGLDB4OUYsIDB4RkQsMHhGRiwweEZFLDB4N0QsMHg3RiwweDVGLDB4RDcsMHhGRiwKLTB4RkYsMHg3RiwweEZGLDB4RkQsMHhGRiwweDdGLDB4NUYsMHg5NywgMHhGRiwweEZELDB4N0YsMHg1RiwweEZGLDB4RTMsMHhGRiwweEZGLAotMHhGQSwweEZFLDB4QkYsMHhBRiwweEZCLDB4RkIsMHhGRiwweEZGLCAweENGLDB4RUIsMHhGRSwweEJGLDB4QUYsMHhGRiwweEZBLDB4RkUsCi0weEJGLDB4RkYsMHg4NywweEZGLDB4RkYsMHhGNSwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZELDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGRiwKLTB4RkIsMHhGRiwweEZGLDB4RjUsMHhGRiwweEZGLDB4RkUsMHgwRiwgMHhGRiwweEZELDB4RUIsMHhGRiwweEZGLDB4RjcsMHhGRiwweEVGLAotMHg3QiwweERGLDB4RkUsMHhGRiwweEZGLDB4REYsMHhGNywweEZELCAweEVCLDB4N0YsMHhERiwweEZGLDB4NUYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkQsMHhCRiwweEZGLDB4N0UsMHhGQSwweEJGLDB4QzcsIDB4REIsMHhGNywweEJELDB4M0YsMHhGQiwweEZGLDB4RjYsMHhGRiwKLTB4RkEsMHhBRiwweEZGLDB4RUIsMHhGQSwweEZFLDB4M0YsMHgyRiwgMHhFQSwweEZBLDB4M0UsMHhBRCwweEM5LDB4QkEsMHhGNiwweEFELAotMHhBRiwweEVCLDB4RkEsMHhGNiwweEJGLDB4RkUsMHg3RiwweEZGLCAweEZGLDB4RkQsMHhGRiwweEYxLDB4N0YsMHgzRiwweENGLDB4RjEsCi0weEVGLDB4RkYsMHg3RiwweEZGLDB4QkMsMHhERiwweERGLDB4RjcsIDB4REQsMHhGRiwweEUwLDB4N0YsMHhGRiwweEZGLDB4RkUsMHhGRiwKLTB4RkEsMHhFQywweEJCLDB4N0YsMHg1RiwweEZGLDB4RkIsMHhFQywgMHhGRiwweEVGLDB4QjcsMHhGRiwweEY3LDB4RkYsMHhGRiwweEI1LAotMHhGRiwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhFRSwweERGLCAweDVGLDB4REYsMHhERSwweEZGLDB4QUUsMHhFNywweDc3LDB4RkYsCi0weEZGLDB4REYsMHhGNywweEZGLDB4RTMsMHhGRiwweEZBLDB4QkIsIDB4RkUsMHhGRiwweEFGLDB4RkQsMHhGQiwweEZFLDB4QkYsMHhBQiwKLTB4RjksMHhGRSwweEZGLDB4QkYsMHg3RiwweEJGLDB4RkUsMHhCRCwgMHhGRSwweEQ3LDB4RkYsMHg5RiwweEZELDB4RkYsMHhCRSwweEVGLAotMHhGRiwweEVFLDB4RkQsMHhCQiwweDVCLDB4RUYsMHhGRiwweDdGLCAweEVGLDB4RkYsMHhFRiwweEZGLDB4N0YsMHhGRiwweDRGLDB4RkYsCi0weEVGLDB4RkIsMHhCQywweEZDLDB4RkYsMHhGRiwweEZGLDB4RkUsIDB4RkUsMHhGRCwweEZBLDB4RkUsMHhGQiwweEZGLDB4RkQsMHhGMywKLTB4RkIsMHhGRiwweEY4LDB4NUYsMHhGRiwweEZGLDB4RDcsMHhGNSwgMHhGRCwweERGLDB4RUYsMHhGRiwweEYzLDB4REMsMHg1RiwweENFLAotMHhGNSwweEJELDB4RkYsMHhGRiwweEQ3LDB4RkYsMHhGRiwweEY5LCAweDNGLDB4RkYsMHhERiwweEY3LDB4RkYsMHhGRSwweEZGLDB4RkQsCi0weEZGLDB4RkIsMHhGRiwweEY3LDB4QjksMHg3RCwweEZFLDB4REYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGOSwweDdGLDB4RkYsMHhGRSwKLTB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGNywgMHhGNiwweEZGLDB4QkYsMHhGMSwweEY4LDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEUwLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGOSwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RUYsMHhFRiwweEZGLDB4RkYsCi0weDlCLDB4RkIsMHg3RiwweEZGLDB4RkYsMHhGRiwweEMxLDB4RkYsIDB4REYsMHhGRiwweDNGLDB4NUYsMHhENywweEJGLDB4RUYsMHhCQiwKLTB4REUsMHhFRSwweEZGLDB4N0YsMHhERiwweEZGLDB4RkUsMHhGNSwgMHg3RiwweERGLDB4RkYsMHg5OSwweEZGLDB4RkYsMHhGQSwweEZGLAotMHhCRiwweEZELDB4RUIsMHg3QSwweEZGLDB4QjcsMHhGRSwweEZFLCAweEZGLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRCwweEJGLDB4RkYsCi0weDk3LDB4RkYsMHhGRCwweEY3LDB4RkYsMHg3RiwweEY3LDB4RkYsIDB4RkYsMHhGRCwweDVGLDB4RkUsMHhGMywweEY5LDB4REYsMHhERiwKLTB4RkYsMHhGRiwweEZDLDB4RkYsMHhGRiwweDgzLDB4RkYsMHhGRiwgMHhGRSwweEZGLDB4OUUsMHhFQywweEZCLDB4RUUsMHhGRiwweDlGLAotMHhCRiwweEVGLDB4RkYsMHhGRSwweEVELDB4N0IsMHhGRiwweEZGLCAweEZGLDB4RjEsMHg1QSwweEZGLDB4RkYsMHhGRCwweEZGLDB4N0MsCi0weDY5LDB4M0IsMHhERiwweEZGLDB4N0YsMHgxRiwweERGLDB4RkYsIDB4RkQsMHhCQSwweEZGLDB4RkYsMHhGQiwweEZGLDB4NUIsMHhCRCwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhENywweEI2LDB4RUQsMHhFOSwgMHhGRiwweEQ2LDB4QkQsMHg2RiwweDVGLDB4RkIsMHhGRiwweEVGLAotMHhGRiwweDVGLDB4RkUsMHhGNiwweDZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RjcsMHhFQiwweDdBLDB4REYsMHhGRiwweDlGLDB4N0YsCi0weDdGLDB4RkYsMHhCNywweEZGLDB4RkYsMHhGRSwweERGLDB4RkYsIDB4NkMsMHhGRiwweEZCLDB4RkYsMHhCQiwweDZGLDB4RUIsMHhGRSwKLTB4Q0MsMHhGNywweEE1LDB4RkEsMHg1QywweEY1LDB4NzUsMHhCQiwgMHhCNywweERGLDB4RkUsMHg2RiwweDVGLDB4QzUsMHhCRiwweEZELAotMHg3QiwweEZFLDB4RkYsMHg5NSwweEU3LDB4MjksMHhDRiwweDRGLCAweEY1LDB4OTEsMHhFRSwweDZCLDB4REYsMHhFRiwweEZELDB4NTQsCi0weEY1LDB4QkQsMHhCMSwweEZGLDB4RUYsMHhFRSwweEZCLDB4QkUsIDB4QkYsMHhBRiwweEZFLDB4REUsMHhCRCwweDZGLDB4REEsMHhGMiwKLTB4RkYsMHhBRiwweEJFLDB4RkYsMHhGRiwweEZELDB4N0UsMHhBNywgMHhGRiwweEY3LDB4RkYsMHhCRiwweEVGLDB4N0IsMHhGNiwweEZELAotMHhCRCwweDRBLDB4RjIsMHg4NSwweDg1LDB4QkYsMHg1QiwweEZFLCAweEI1LDB4RkQsMHhGQSwweEZGLDB4NEYsMHhGRiwweEZFLDB4REYsCi0weEZGLDB4RUQsMHhGRiwweEJGLDB4RkYsMHhCRiwweDdGLDB4RkUsIDB4RkYsMHhCNywweDZELDB4RkYsMHhGNywweEJGLDB4QkYsMHhFRiwKLTB4RkQsMHgxRiwweEZGLDB4RkUsMHg3RCwweEZGLDB4NjcsMHhGRiwgMHhGRiwweEZGLDB4M0YsMHg3RiwweEZFLDB4QkYsMHhGRiwweEU3LAotMHhERiwweEU3LDB4RkYsMHhFRiwweDZCLDB4RkMsMHgxRiwweEZGLCAweEJGLDB4RUYsMHhGQiwweEZFLDB4REUsMHhCRiwweEFGLDB4RkEsCi0weEZGLDB4QjYsMHhFRiwweEY5LDB4RkUsMHhGRiwweDhGLDB4RUYsIDB4REIsMHhFRiwweEFCLDB4NkYsMHhGQiwweEZFLDB4RkYsMHhGRiwKLTB4RUYsMHhGRCwweEZGLDB4N0YsMHhGRiwweEZGLDB4REUsMHhGRiwgMHhGRiwweEVGLDB4RkYsMHhGRiwweEZGLDB4M0YsMHhGRiwweDZDLAotMHhGRiwweEJGLDB4RkIsMHhGRiwweEZFLDB4RkYsMHhGQiwweEZFLCAweERGLDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGRiwweEJGLDB4RkYsCi0weEZGLDB4RkUsMHhGQiwweEZGLDB4RDUsMHg3RiwweEZGLDB4RkYsIDB4RUYsMHhGQiwweEZGLDB4RkYsMHhCRiwweEVGLDB4NDMsMHhCNSwKLTB4RkQsMHg2RiwweENGLDB4RDYsMHhCRSwweDNGLDB4N0YsMHhEQiwgMHhGRSwweEMzLDB4RkYsMHhGRCwweEZGLDB4QUYsMHhFQiwweEZCLAotMHhGQywweEZGLDB4M0UsMHhFRiwweEU4LDB4RkEsMHhCRCwweENELCAweEFBLDB4RkUsMHhGRSwweDdELDB4Q0YsMHhGRiwweEI3LDB4RkYsCi0weEY3LDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGRiwweDc1LDB4Q0QsIDB4NTIsMHhENywweEZELDB4RkIsMHhGNywweERELDB4RkIsMHhFRiwKLTB4RUIsMHhGRiwweEZGLDB4NEYsMHhGRiwweEJGLDB4OUYsMHhFNywgMHhGOSwweEZDLDB4N0YsMHg4QiwweEMzLDB4RjksMHhBRiwweDhGLAotMHhFNywweEU5LDB4QkUsMHg3RiwweDlGLDB4RTYsMHhGOSwweEZDLCAweDVGLDB4RkYsMHhGRiwweEY3LDB4RkQsMHhGRiwweDdBLDB4NUYsCi0weEQ3LDB4RUQsMHhGRiwweEZGLDB4RDcsMHhGRiwweERELDB4N0YsIDB4RTcsMHhGRiwweEZDLDB4RkYsMHhGQywweDNGLDB4RkYsMHhGRiwKLTB4RkYsMHhGQiwweEZGLDB4RkUsMHhCRiwweEFGLDB4RkYsMHhGRCwgMHhGRiwweEVGLDB4RkYsMHhFQiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEY3LDB4N0YsMHhGRiwweDdGLDB4REYsMHhGRiwweEZELCAweEZELDB4N0YsMHhGRSwweEY3LDB4RkQsMHg3RiwweERGLDB4RkYsCi0weEZELDB4RkYsMHhGRiwweERGLDB4RkIsMHhGRiwweEVFLDB4RkYsIDB4RkIsMHhGRiwweEY3LDB4RkQsMHhGRiwweDdBLDB4REYsMHhGNSwKLTB4RkQsMHhGQSwweERGLDB4RjcsMHhGQywweEZGLDB4N0YsMHhERiwgMHhCRiwweEVELDB4RkYsMHhDOSwweEZGLDB4REYsMHhGRiwweEJGLAotMHgyRiwweEZCLDB4RkYsMHhCQywweEFELDB4RkYsMHhGNywweEZGLCAweEZGLDB4RUYsMHhEMywweEZGLDB4N0QsMHhCRiwweDZGLDB4RkYsCi0weEZBLDB4RkYsMHhGRSwweEJGLDB4QUUsMHhFQSwweEZBLDB4QkUsIDB4QUQsMHhBNSwweEVCLDB4Q0UsMHhCRiwweEE3LDB4RUIsMHg1QSwKLTB4REUsMHhCRCwweEFGLDB4NkIsMHhGRCwweDU3LDB4RkYsMHhGRiwgMHhGNCwweDdGLDB4MUYsMHg3RiwweEZELDB4RkYsMHg3RiwweDM2LAotMHhGMCwweERGLDB4NzksMHhGRiwweEZGLDB4RkYsMHhGNywweEZELCAweEJGLDB4RkYsMHg4NywweEZGLDB4RkIsMHhGMywweEZDLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweDdFLDB4RkYsMHhCRiwweERGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweEJGLDB4RjgsMHg5RiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRCwgMHhGNywweEZDLDB4QkQsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkIsMHhGOSwweEJGLDB4RkYsMHhGRiwweEVCLCAweEUyLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhBOSwweEJBLDB4MkYsCi0weEVCLDB4RjksMHhGRSwweDc3LDB4REYsMHhGNywweEZGLDB4RkYsIDB4RjksMHg3RiwweEZGLDB4RkYsMHg3RiwweEVGLDB4RDcsMHhGRiwKLTB4RkQsMHhGRiwweEZCLDB4RjUsMHhGRiwweEJGLDB4NkYsMHhERiwgMHhGRiwweEZGLDB4RkQsMHhGRiwweEZGLDB4RjAsMHhGRiwweEZGLAotMHhGRiwweDNGLDB4Q0YsMHhGRiwweEJBLDB4RUUsMHg5QiwweEJGLCAweEVFLDB4RDcsMHhGRSwweENELDB4RUYsMHhGRiwweERGLDB4QkYsCi0weEZGLDB4RkYsMHhDNSwweEZGLDB4RkYsMHhGRCwweDdGLDB4NEYsIDB4RkQsMHhGNiwweEQ5LDB4RkYsMHg0RiwweEQ2LDB4RkQsMHhCRiwKLTB4NkUsMHhGRiwweEZGLDB4RjQsMHg3RiwweEZGLDB4N0YsMHg4QiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEY3LDB4RkYsMHhGOSwweEZFLAotMHgzNywweEZGLDB4RDksMHhGQiwweEY1LDB4QUYsMHhGRCwweEZGLCAweEZGLDB4RkIsMHhGRiwweEZGLDB4MDcsMHhGRiwweEZGLDB4RkYsCi0weEZCLDB4RjcsMHhGRiwweEZELDB4RkYsMHg3QywweEZBLDB4N0UsIDB4NEYsMHhGQywweERGLDB4MUQsMHhDNywweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhBRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGQiwgMHhGRiwweEZGLDB4RkUsMHhGRSwweEZDLDB4RkYsMHg3RiwweDdGLAotMHhCRiwweEVGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHg1RiwweEZELCAweEZGLDB4RkYsMHhGRiwweEZELDB4NkYsMHg1QSwweEQ3LDB4N0IsCi0weEJFLDB4NUYsMHhGRSwweDM5LDB4RkYsMHhGNywweEZGLDB4RjcsIDB4RkQsMHhGRSwweEFBLDB4MUYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkUsMHhGRSwweEFCLDB4QUYsMHhGRCwweEZFLDB4QkYsMHhGRiwgMHhGNywweEZGLDB4N0YsMHhGRSwweDhGLDB4RTMsMHhGQiwweEVFLAotMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RUIsMHhGQiwweEZGLCAweEZELDB4QkYsMHhFRiwweERGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZCLDB4RTQsMHgzRiwweEZGLDB4REYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGMywweEVGLDB4QkIsMHhGQiwKLTB4QkYsMHhFRiwweEJCLDB4RkYsMHhENywweEJGLDB4RkYsMHhGRiwgMHhGRiwweDI5LDB4QUYsMHhGNywweEZGLDB4RkYsMHhGQiwweEZGLAotMHhGQiwweEU2LDB4RkYsMHgwRiwweEZCLDB4M0YsMHhERiwweDBGLCAweEZGLDB4QUYsMHhGRiwweEZGLDB4RkYsMHhGNSwweEMzLDB4REYsCi0weDVGLDB4RkYsMHhGRiwweEZGLDB4RkUsMHg2QiwweENBLDB4QkUsIDB4QkMsMHhGRiwweDlGLDB4RjIsMHhCRiwweEZGLDB4RkUsMHhGQSwKLTB4RkYsMHhGRiwweEVGLDB4MTYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZDLDB4REYsMHg5NywweEZELDB4NzksMHhGRiwweDM3LAotMHhFNywweDdGLDB4RkYsMHhGRiwweEI1LDB4RkYsMHhGRiwweEY2LCAweDJGLDB4RkYsMHhGRCwweEZCLDB4RkUsMHhGRiwweEZGLDB4RkQsCi0weDVGLDB4NTcsMHg1RiwweEZGLDB4REIsMHg1MiwweERGLDB4RkYsIDB4RkQsMHhCRiwweEZGLDB4RkYsMHhGQywweERCLDB4RkYsMHg3QiwKLTB4QjUsMHhGRCwweDdGLDB4RkYsMHg3MSwweDlDLDB4NkUsMHhGRiwgMHhGNiwweDM1LDB4QTUsMHg5QiwweEZGLDB4RkYsMHhGRCwweEZGLAotMHhGRiwweERCLDB4OUUsMHg3RiwweEZFLDB4RUYsMHhGQiwweEZGLCAweEZGLDB4QkQsMHhFRiwweEZGLDB4REUsMHhCNywweEY5LDB4NEIsCi0weEZGLDB4RjUsMHhFRiwweEZGLDB4RkYsMHhGRiwweEU4LDB4N0UsIDB4RkYsMHhFQSwweERGLDB4RjcsMHhGRiwweEZELDB4NjksMHg1QiwKLTB4RkMsMHg5RiwweEVGLDB4NzgsMHhENiwweEZGLDB4RUIsMHhFRiwgMHhGRiwweEZGLDB4RkYsMHhFOCwweEZGLDB4RkYsMHhFRCwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhFMywweEY5LDB4RjYsMHhCRiwweEZGLCAweEZGLDB4RkUsMHhERiwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkYsCi0weEQxLDB4RkYsMHhGRiwweEU3LDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RTcsMHhGOSwweEZGLDB4QkYsMHg3RiwweEQ5LDB4RkYsMHhGRCwKLTB4RkUsMHg3RiwweEZGLDB4RkUsMHhGRiwweEY5LDB4RkYsMHhGQiwgMHhENiwweERGLDB4QkYsMHhFRiwweDVCLDB4RDYsMHhGRiwweEJGLAotMHhGQiwweEY2LDB4RkYsMHhCRiwweEVGLDB4RjgsMHhGNiwweERELCAweEJFLDB4RkUsMHgxNiwweEZGLDB4QkYsMHhFRiwweEZGLDB4RkUsCi0weEZGLDB4QkYsMHhFRiwweEZGLDB4RkYsMHhGRiwweDZGLDB4RkIsIDB4RkYsMHhGRiwweEZGLDB4NkYsMHhGMywweEZGLDB4RjcsMHhFRiwKLTB4RkIsMHhGRiwweEJGLDB4RkYsMHhFRiwweEZFLDB4RkYsMHhCRiwgMHhGRiwweEZGLDB4RkYsMHhCRSwweEJGLDB4RkYsMHhFRiwweEZGLAotMHg3RiwweEVGLDB4RkYsMHhGRCwweDE3LDB4RkIsMHg3QiwweEZGLCAweEZGLDB4RkQsMHg3RiwweERCLDB4RjYsMHhGNCwweDdGLDB4RkEsCi0weEZFLDB4RjUsMHhCRiwweEVCLDB4RTMsMHhGNywweEZGLDB4RkYsIDB4RTksMHhCRiwweEZGLDB4QUYsMHhGNywweEZELDB4RjMsMHg3RSwKLTB4OEYsMHhBMywweEVBLDB4RkYsMHhDQiwweEYzLDB4RUUsMHhGRiwgMHhCRiwweEVGLDB4RjcsMHhGOSwweEZGLDB4RkUsMHg3RiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGNSwweEZCLDB4RjYsMHhGRiwweEY1LCAweDJGLDB4RkUsMHhGQiwweEQ3LDB4QkYsMHhGRiwweEJFLDB4REYsCi0weDlGLDB4RkYsMHhGMCwweEZGLDB4RkYsMHhGOSwweEZFLDB4N0YsIDB4OEYsMHhBMywweEY4LDB4RkUsMHg2RiwweDlGLDB4RjksMHhGNiwKLTB4MkYsMHg5RiwweEU3LDB4RjksMHhGRSwweDJGLDB4OUYsMHhFMSwgMHhGRiwweEZGLDB4RkYsMHg3RiwweERGLDB4RjcsMHhGNSwweEZELAotMHg3RiwweDdGLDB4RjUsMHhGRiwweDlGLDB4NUYsMHhGQiwweEZFLCAweEZGLDB4N0YsMHhGRiwweEZGLDB4Q0IsMHhGRiwweEZGLDB4RkIsCi0weEZFLDB4RkYsMHhCRiwweEFGLDB4RkIsMHhGRSwweEZGLDB4REYsIDB4RkUsMHhGRSwweEJGLDB4RjcsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhDNywweEZGLDB4RkYsMHhGRCwweEZGLDB4N0YsMHhERCwgMHhGNywweEZELDB4RkYsMHhGRiwweEQ3LDB4RkYsMHhGRCwweDdGLAotMHhGRiwweEZCLDB4RkQsMHhGRiwweEZGLDB4RkUsMHhFRiwweDdGLCAweEZELDB4RUYsMHhGQiwweEZFLDB4RkIsMHhGRCwweEZGLDB4N0YsCi0weERGLDB4RkQsMHhGRiwweDdBLDB4REYsMHhGNywweEZELDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4MUYsMHhGRiwweEZGLDB4RDMsMHhGNywKLTB4RkYsMHhGRiwweDZGLDB4REIsMHhGRiwweEZGLDB4RUYsMHhDQiwgMHhGNCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZFLAotMHgyOSwweEZGLDB4RTgsMHhEQSwweDc2LDB4OUYsMHhBRiwweDZBLCAweERBLDB4RkUsMHgzNSwweEVCLDB4REEsMHhENiwweEJGLDB4QUIsCi0weEVCLDB4N0EsMHhERSwweEJGLDB4RDcsMHg3RiwweEZGLDB4RkUsIDB4RkYsMHhCRiwweEVGLDB4RkQsMHhERiwweDc3LDB4QkYsMHhGRCwKLTB4MzcsMHhFRiwweEZGLDB4RUYsMHhGRiwweDNGLDB4RkYsMHhGRiwgMHhGRiwweEZFLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGNywweDdFLAotMHhERiwweEZGLDB4RkYsMHhGRiwweEZBLDB4QjcsMHg3RiwweEZGLCAweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweDg5LDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHg5RiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RTcsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4QUEsMHhGRiwweEFCLDB4RkIsMHhGQSwgMHhFRiwweEJGLDB4RkYsMHhERiwweEZBLDB4N0IsMHhCOSwweEZFLAotMHhGRSwweEZGLDB4RkQsMHhGRiwweEY3LDB4RkUsMHgzRiwweEZGLCAweEI3LDB4RkYsMHhGNywweEVFLDB4RkYsMHg3RiwweEVGLDB4RkYsCi0weEZGLDB4N0YsMHhGRiwweDFGLDB4RkIsMHhGRiwweEJGLDB4RkIsIDB4RkUsMHhGRiwweEJELDB4RkYsMHhGRiwweDJGLDB4RkYsMHhCRiwKLTB4RkYsMHg3RiwweERGLDB4RkEsMHhGRiwweEZGLDB4RkMsMHhFRSwgMHhGNSwweEYzLDB4QkUsMHhGQiwweDBGLDB4RUYsMHhGMywweEJFLAotMHhFRiwweEZDLDB4NUYsMHhGRiwweDVBLDB4RkYsMHhGNywweERGLCAweEZGLDB4RkYsMHhGRSwweEQ1LDB4RkMsMHg1RiwweEZCLDB4RjIsCi0weEZGLDB4RkYsMHgyRiwweEJCLDB4RjMsMHhGRiwweEZGLDB4QkYsIDB4RkYsMHhFRiwweEZGLDB4RUYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4QkYsMHhGRiwweEZGLDB4RkQsMHg3QiwweEZGLDB4REYsMHhCOSwgMHhGRiwweEZCLDB4RkYsMHhEOCwweDdGLDB4RkYsMHhGRiwweEZGLAotMHhGQiwweEZGLDB4RkMsMHg3RiwweDFGLDB4QkYsMHhFMCwweERGLCAweEY3LDB4RUYsMHhGRiwweEZELDB4N0YsMHhGRSwweERGLDB4RkYsCi0weEUwLDB4RkYsMHhGRiwweEZELDB4RUYsMHhGQiwweEZGLDB4RkUsIDB4RjcsMHhERiwweEZGLDB4RUIsMHg1RiwweEZGLDB4RjcsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4QkYsMHhGRiwweEZELDB4RkYsMHhGRCwgMHhGRiwweEZGLDB4RkYsMHhGNywweEZELDB4RkYsMHgzQiwweERDLAotMHhGRCwweDZELDB4N0IsMHg1RiwweDU3LDB4RjUsMHhGRCwweDdGLCAweDVGLDB4RkYsMHhCMSwweEZGLDB4RUIsMHhGRiwweEZGLDB4RkYsCi0weEZCLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhGQiwweEJFLDB4RkYsIDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEFGLDB4RkUsMHhGNywKLTB4REYsMHhERiwweEZGLDB4RkYsMHhGRiwweDdGLDB4Q0YsMHhGMywgMHhGOCwweEZGLDB4RDcsMHhGQiwweEZGLDB4NUYsMHhCRiwweEY3LAotMHhGQiwweEZGLDB4N0YsMHhGRSwweDIzLDB4RkYsMHhGRiwweEZFLCAweDdGLDB4RjMsMHhGRiwweEZCLDB4RkUsMHhGRiwweEZGLDB4RjMsCi0weEZGLDB4RkYsMHhGNSwweEY5LDB4RkYsMHgzRiwweEZGLDB4RkYsIDB4RjAsMHg5QSwweEZGLDB4QkUsMHg3RiwweEZGLDB4RkMsMHhGOSwKLTB4RkYsMHhGRCwweEFGLDB4RUIsMHhGRSwweEJGLDB4RkYsMHhDRiwgMHhGMywweEZFLDB4N0YsMHhGRiwweEZGLDB4NUIsMHhCRCwweEZGLAotMHhCQywweEVCLDB4RkYsMHhENywweEQ0LDB4QUYsMHhBRiwweEZELCAweEZGLDB4Q0YsMHhGNywweEZELDB4RkYsMHg3RiwweERGLDB4RjcsCi0weEZELDB4RkUsMHhGRiwweDZGLDB4RkYsMHhGQiwweEZGLDB4RkYsIDB4RkYsMHhGRCwweDdGLDB4NUUsMHhGRCwweEJGLDB4REIsMHhGNiwKLTB4RkQsMHhCRiwweDZGLDB4RkIsMHhFRSwweEZELDB4RkYsMHg3QSwgMHhGRiwweEZBLDB4RkIsMHhGRiwweDNGLDB4RkIsMHhCNywweDVGLAotMHhENiwweEY3LDB4MUYsMHg3MSwweERDLDB4NzcsMHgxRCwweEM3LCAweDMxLDB4REMsMHg3NywweERGLDB4RjksMHhCRiwweEY1LDB4NUIsCi0weEY0LDB4RDcsMHg5RCwweEFFLDB4RkYsMHhCRiwweEZELDB4QkYsIDB4REIsMHhGNiwweEZELDB4QkYsMHg2RiwweERCLDB4RjYsMHhGRSwKLTB4M0QsMHg4MSwweEZGLDB4RUIsMHhGRSwweEZFLDB4RkUsMHhGRiwgMHhFQiwweDdBLDB4REYsMHg3RCwweDc3LDB4N0QsMHhGNSwweDc5LAotMHhERiwweDU3LDB4REQsMHhGNSwweDdELDB4N0UsMHhFNiwweEZGLCAweEQ2LDB4M0YsMHhCRiwweDdGLDB4RkYsMHhENCwweEY1LDB4M0YsCi0weEJGLDB4RkIsMHhCRSwweEVGLDB4QjMsMHhFRSwweEZCLDB4OUUsIDB4RUYsMHhCQiwweEZFLDB4OEIsMHhGRiwweEZFLDB4REYsMHhCNywKLTB4RUQsMHhGRiwweEY3LDB4RkQsMHhGRSwweEZGLDB4RUYsMHhCQiwgMHhFRSwweEZGLDB4QkUsMHhFRiwweEJCLDB4RUUsMHhFQiwweEZDLAotMHgxRiwweEZGLDB4RkYsMHhGRCwweEZGLDB4RTcsMHhGRiwweEY3LCAweEZELDB4RkYsMHhFRiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsCi0weEZFLDB4RkYsMHhCRiwweEVCLDB4RkEsMHgxRiwweEZGLDB4QjcsIDB4RUYsMHg1QiwweEZFLDB4RkYsMHhBRiwweEVCLDB4REQsMHhFNywKLTB4REUsMHg3NywweDlELDB4RTcsMHg3OSwweERFLDB4NzcsMHg5RCwgMHhCRiwweEU2LDB4NkYsMHhGRiwweEZFLDB4RkYsMHhCRiwweEVGLAotMHhGQiwweEZFLDB4RkQsMHhCRiwweDZGLDB4RjYsMHhGRCwweEJGLCAweDZGLDB4REIsMHhGNiwweEZELDB4QkYsMHhGRiwweDdFLDB4RkYsCi0weEZGLDB4RkIsMHhGRSwweEZFLDB4RkYsMHhFRiwweEZCLDB4RkQsIDB4RUYsMHg3RSwweEY3LDB4QkQsMHhFRiwweDdCLDB4REUsMHhGNywKLTB4QkQsMHhFRiwweEZGLDB4RDUsMHhGRiwweEJGLDB4RkYsMHhFRiwgMHhGRSwweEZGLDB4RkMsMHgzRiwweDBGLDB4RTcsMHhGRSwweDdGLAotMHg5RiwweEU3LDB4RjksMHhGRSwweDdGLDB4OUYsMHhFNywweEZFLCAweEYzLDB4RkYsMHhGRSwweERGLDB4QUQsMHhERiwweDY3LDB4RUUsCi0weEZCLDB4QkYsMHhFRiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsIDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGRiwweDIzLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweDdGLDB4RkYsMHhGMywweEJDLDB4REIsMHhGRSwgMHhGQiwweEZGLDB4RkIsMHhCRSwweEY3LDB4RkIsMHhGRiwweDdGLAotMHhERiwweEZGLDB4Q0YsMHhGQiwweEZGLDB4OUYsMHhFMywweEY5LCAweEJFLDB4M0YsMHg4RiwweEU3LDB4NzksMHhGRiwweDlELDB4RTcsCi0weEY5LDB4RkUsMHg3RiwweDlGLDB4RTcsMHhGOSwweEZFLDB4NUYsIDB4RkYsMHhDRiwweEY3LDB4RkYsMHhGRiwweEZGLDB4REYsMHhGNywKLTB4RkUsMHg3RiwweEU3LDB4RjksMHhGRSwweDdGLDB4RkYsMHhGRiwgMHhGQiwweEZFLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhCRiwweEJGLAotMHhGRiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkYsMHhGRCwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNywweEZELDB4RkYsCi0weEZGLDB4M0YsMHhGRiwweEJGLDB4RkYsMHhGNywweEZGLDB4RkYsIDB4N0YsMHhERiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEU4LDB4RUYsMHhGRiwgMHg1RiwweEY3LDB4QkYsMHhGOSwweEZFLDB4REYsMHhCNywweEZELAotMHhGRiwweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwweEY3LCAweEZELDB4RkYsMHhERCwweEZGLDB4RjIsMHhGRiwweEJGLDB4RkYsCi0weEZGLDB4QkYsMHhGRiwweEZGLDB4MkYsMHhGMiwweEZGLDB4QkYsIDB4MkYsMHg3QiwweEQyLDB4RjcsMHhCRiwweDJGLDB4RkYsMHhCQiwKLTB4RkYsMHhFRSwweDhGLDB4QUYsMHhFQiwweEZBLDB4RkUsMHgzRiwgMHhBNywweDY5LDB4Q0UsMHg4RiwweEE0LDB4RUEsMHhGQSwweEVFLAotMHhCNywweEFFLDB4RUIsMHhGRCwweEM3LDB4RkYsMHhGNywweEY3LCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHg3RiwweDNFLDB4RjMsCi0weDc0LDB4RkYsMHgzRiwweDRGLDB4RkYsMHhFNywweEZGLDB4M0YsIDB4RkUsMHhBNywweEZGLDB4RkYsMHhERiwweEY3LDB4QjcsMHhGRiwKLTB4RjcsMHhGRiwweEJBLDB4RUYsMHgzNywweEVCLDB4RkIsMHhGRSwgMHhCRiwweEZCLDB4RkUsMHhGMywweEZGLDB4RjksMHhERiwweEZGLAotMHhCRiwweEZGLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLCAweEZELDB4REYsMHhGRiwweEZELDB4RkYsMHhGRiwweEZCLDB4RkUsCi0weEZELDB4RkYsMHhGQiwweEJGLDB4RkUsMHgzRiwweEVELDB4RkYsIDB4REYsMHhCRSwweDNELDB4QTcsMHhGQiwweEZBLDB4M0YsMHhFNiwKLTB4RTEsMHhGRSwweEZFLDB4M0YsMHhFRiwweEUzLDB4REYsMHhGNSwgMHg3RiwweEZFLDB4RkYsMHg3RSwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhFRiwweDZGLDB4RjYsMHhGRiwweDdELDB4RUYsMHhENywweERFLCAweEZGLDB4N0QsMHhFRiwweEZGLDB4RjIsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweDdCLDB4REUsMHhGQiwweEU2LDB4RUUsIDB4RUYsMHgzNywweDZFLDB4RjMsMHg3RSwweEVCLDB4MzcsMHhFRiwKLTB4RkYsMHhDMSwweEZGLDB4RkUsMHhGRiwweEY3LDB4RUYsMHhGRiwgMHhGRiwweEZGLDB4QkYsMHgzRiwweEQyLDB4REYsMHhCRiwweDJGLAotMHg3QiwweEUyLDB4RkYsMHhGRSwweDNCLDB4QkQsMHhEQiwweEZGLCAweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEVGLDB4RkUsCi0weEZGLDB4RkIsMHhGRiwweEZGLDB4QkYsMHhGRiwweEZCLDB4REYsIDB4RkYsMHhCRiwweEZGLDB4QjcsMHhGRiwweEZGLDB4QkYsMHhFRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4MEYsMHhGRiwgMHg3RiwweEZGLDB4MUYsMHhFRiwweEYxLDB4RkQsMHhGRiwweEY2LAotMHhBRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFRiwweEZGLCAweEZGLDB4RkYsMHhGRSwweDlGLDB4RkYsMHhGRiwweEZGLDB4NzcsCi0weEVGLDB4RjcsMHhGQiwweEZGLDB4RkUsMHg1RiwweEZGLDB4RkYsIDB4QkYsMHhDRiwweEZCLDB4RjcsMHhERCwweEY3LDB4RjUsMHhGRiwKLTB4NUYsMHhENSwweEY1LDB4RkQsMHg3RiwweDVGLDB4RDcsMHhGNSwgMHhGRiwweEZCLDB4MEYsMHhGRiwweEZGLDB4QTksMHhFQSwweDdBLAotMHhGRiwweEFGLDB4OEYsMHhGRSwweERGLDB4QUYsMHhFRiwweEZCLCAweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhERiwweEU1LDB4NUYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhCRCwweDU3LDB4RkYsIDB4RkYsMHg2RiwweDc3LDB4QkYsMHhGNywweEZCLDB4RkYsMHg3RiwKLTB4QkYsMHhGNywweEZGLDB4RkMsMHhCRiwweEZGLDB4OUYsMHhGRiwgMHhGRiwweEVGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweDFGLAotMHhDRiwweEZGLDB4RkMsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZCLCAweDY1LDB4QUYsMHhGMywweDdDLDB4RkYsMHgzRiwweERGLDB4RkYsCi0weEZELDB4RTksMHhGRSwweDdGLDB4RTcsMHhGRiwweEZFLDB4N0YsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweEUzLDB4REYsMHhGQiwKLTB4REIsMHhGNiwweEZELDB4RUYsMHg1QiwweEZCLDB4RkYsMHhERiwgMHhGQywweEZGLDB4M0YsMHhERiwweEYzLDB4RkQsMHhGRiwweDdGLAotMHhERiwweEVGLDB4NjYsMHhGRiwweERGLDB4QUQsMHhFQiwweDdBLCAweERFLDB4RjcsMHhGNywweEU3LDB4RDksMHhGRCwweDlGLDB4NjcsCi0weEQ5LDB4RjYsMHg3RCwweDlGLDB4RTcsMHhERiwweEY1LDB4NDcsIDB4RkQsMHg2NSwweDVCLDB4RDYsMHhGNCwweEZFLDB4RkYsMHhFRiwKLTB4RkYsMHg2RCwweEY2LDB4REQsMHhCNywweDZELDB4REIsMHg3NiwgMHhEQywweEI3LDB4N0QsMHhGQSwweDlCLDB4RjYsMHg2RCwweDlELAotMHg2NywweDU5LDB4REYsMHhGNywweERELDB4RkYsMHhFQiwweEZFLCAweEJGLDB4QUYsMHhFQiwweEZBLDB4RkUsMHhCRiwweEFGLDB4RTMsCi0weEQxLDB4OUYsMHhGRiwweEJELDB4QkYsMHhFRiwweEZFLDB4RjcsIDB4QkYsMHhCRiwweEY3LDB4RDcsMHg3RiwweERELDB4RjcsMHg5RCwKLTB4REYsMHg3RiwweERGLDB4RjcsMHhGRiwweEUwLDB4N0YsMHhGRCwgMHhDMSwweERGLDB4RjcsMHhGRCwweEM3LDB4N0YsMHg3RiwweEZCLAotMHhGRiwweEJCLDB4RUMsMHhGQiwweDNFLDB4RkYsMHhCRiwweEVDLCAweEZCLDB4RkYsMHhEOCwweDdGLDB4QkYsMHg2QywweEZGLDB4QkUsCi0weEZGLDB4QkYsMHhFRCwweEZGLDB4RUYsMHhGRSwweEZCLDB4QkYsIDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVFLDB4RkYsMHhDNSwKLTB4RkYsMHhBRiwweDZGLDB4RkYsMHhGQywweEZELDB4M0YsMHhFNywgMHhGRiwweEZFLDB4RkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLAotMHhFRiwweEZCLDB4RkUsMHhCRiwweDg5LDB4RkUsMHhGQSwweEJBLCAweEZFLDB4QkYsMHhBRiwweEZCLDB4RjYsMHhGNSwweEQ5LDB4N0QsCi0weDk3LDB4NjUsMHhEOSwweDc0LDB4NUQsMHg5NywweDY1LDB4RDMsIDB4RkUsMHhENiwweEZGLDB4QkYsMHhGNywweEZELDB4RkYsMHg3RiwKLTB4QkYsMHhDRiwweEZCLDB4RkUsMHhGRiwweEVGLDB4RkIsMHhGRSwgMHhGRiwweEJGLDB4RUYsMHhGQiwweEZGLDB4RjYsMHg4RiwweEZCLAotMHhGRiwweEVGLDB4RkIsMHg3RSwweERCLDB4RkUsMHhGRiwweEJFLCAweEVGLDB4RUUsMHhGQiwweEJFLDB4RUYsMHhCQiwweEVFLDB4RkIsCi0weEJFLDB4RkYsMHhGRiwweERGLDB4RkYsMHg0MywweEZGLDB4RkYsIDB4RkIsMHhFRiwweDVGLDB4QjcsMHhGRSwweDdGLDB4RTcsMHhGOSwKLTB4RkUsMHg3RiwweDlGLDB4RTcsMHhGOSwweEZFLDB4N0YsMHhGOSwgMHhCRiwweEZFLDB4QUYsMHg3NywweEZELDB4RkYsMHgyRiwweEFGLAotMHhBNywweEZFLDB4RkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLCAweEVGLDB4RkIsMHhGRSwweEZGLDB4RjEsMHg3RiwweEVGLDB4REYsCi0weEZGLDB4OTcsMHhGNSwweEVGLDB4RkYsMHhERiwweEZGLDB4RkYsIDB4QkYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwKLTB4RkYsMHhFMCwweEZGLDB4RkYsMHhGOSwweEZFLDB4MkYsMHg4QiwgMHhFMywweEY4LDB4QkUsMHg3NywweDlGLDB4RjksMHhEQSwweDc3LAotMHg5RCwweEU3LDB4NzksMHhERSwweDc3LDB4OUYsMHhERCwweEZGLCAweEZELDB4RkQsMHg3RiwweDVGLDB4RDcsMHhGRCwweEZGLDB4N0YsCi0weEU3LDB4RkUsMHg3RiwweDk3LDB4RTcsMHhGQiwweEZFLDB4RkYsIDB4QkYsMHhFRiwweEZGLDB4QUIsMHhGRiwweEVGLDB4RkEsMHhGRSwKLTB4QkYsMHhBRiwweEZGLDB4RkEsMHhGRiwweEZGLDB4REYsMHhGRiwgMHhGQiwweEZGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwweEZGLAotMHg2NywweEZGLDB4RjcsMHhGNSwweEZGLDB4RkYsMHhGRiwweERGLCAweEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFRiwweEZGLDB4QkQsIDB4RUIsMHhGRiwweEZGLDB4RjcsMHhBRCwweEVCLDB4RkYsMHhERiwKLTB4RkQsMHhGRiwweDNGLDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwgMHhERiwweEZGLDB4NUYsMHhGRiwweEY3LDB4RkYsMHhGRiwweEZELAotMHhCRiwweEZGLDB4Q0IsMHhGNCwweEZGLDB4N0YsMHhEMywweEY3LCAweEZELDB4M0YsMHg3RiwweEQzLDB4RjcsMHhGRiwweEZDLDB4M0YsCi0weEZGLDB4RUEsMHhGQSwweEJFLDB4QUYsMHhBQiwweEVCLDB4QkEsIDB4RjQsMHg5NSwweDZCLDB4NTIsMHhENCwweEFELDB4MkYsMHg0QSwKLTB4RDIsMHhGNiwweEJGLDB4RDIsMHg3RiwweEY3LDB4M0YsMHhGRiwgMHhGRiwweEYzLDB4N0YsMHhGRiwweEZGLDB4RjcsMHhGRiwweEJBLAotMHhERiwweEZCLDB4RkQsMHhGRiwweEJGLDB4RkYsMHhGQiwweEZGLCAweEY4LDB4N0YsMHhFQSwweEZGLDB4RkUsMHhGRSwweERGLDB4RkYsCi0weEY3LDB4RkYsMHg3RiwweEJCLDB4RkYsMHhGRiwweEJGLDB4REYsIDB4RkIsMHhGRiwweEZGLDB4QkYsMHhGRiwweEIxLDB4N0YsMHhGRiwKLTB4RkIsMHhFRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhCRiwgMHhDRiwweEZFLDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGNywweEZGLAotMHhGRiwweEZGLDB4RjEsMHhGRiwweDY5LDB4QkUsMHhGQSwweEJGLCAweEFGLDB4RTIsMHhGRiwweEZFLDB4RkQsMHhBRiwweEYzLDB4RkUsCi0weEZGLDB4QkYsMHhFRiwweEZCLDB4RkMsMHhGRiwweEZGLDB4MDcsIDB4RkQsMHg5NSwweERCLDB4REYsMHg3RiwweERGLDB4QUYsMHhGRiwKLTB4RjcsMHhBRiwweDM2LDB4RkUsMHhCRiwweDY1LDB4RUIsMHhGNiwgMHhGRSwweDlGLDB4NkYsMHhGRSwweDA3LDB4RkYsMHhDRiwweEZGLAotMHhGOCwweEZFLDB4RkYsMHhDRiwweEZGLDB4RjYsMHhGQSwweEU3LCAweEZCLDB4RkUsMHhGRiwweEJCLDB4RUQsMHhGOSwweEZGLDB4RkYsCi0weEZGLDB4NUYsMHhGRiwweEZGLDB4RkYsMHg3NSwweEZGLDB4RUYsIDB4N0UsMHhGRCwweEUwLDB4RTgsMHg1RSwweEQzLDB4RTUsMHhGOSwKLTB4M0UsMHg1RiwweEQ3LDB4RjcsMHhGRiwweEZBLDB4MkYsMHhGQiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweDdGLAotMHg3RiwweEQ3LDB4RjUsMHg3RCwweDVGLDB4NTcsMHhENSwweEY1LCAweEVGLDB4RkYsMHhGMywweDdGLDB4RkMsMHg3RiwweEZGLDB4QzcsCi0weEYxLDB4RkYsMHhGRiwweDFGLDB4Q0YsMHhCMCwweEZGLDB4M0YsIDB4Q0YsMHhGMywweEZDLDB4RkYsMHgzRiwweENFLDB4RkYsMHhFNCwKLTB4RkYsMHhERiwweDdGLDB4RkUsMHhGNywweEJCLDB4RkYsMHhGRiwgMHhERiwweEVGLDB4RUUsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLAotMHhCRiwweEJGLDB4RUYsMHhGRiwweEQxLDB4RkYsMHhGRiwweEZGLCAweEZELDB4RkIsMHhGRiwweEZELDB4RkYsMHhGQiwweDlGLDB4RTksCi0weEZFLDB4N0YsMHg5RiwweEU3LDB4RjksMHhGRSwweDdGLDB4QkYsIDB4RkYsMHhCMywweEZGLDB4RkYsMHhGNywweEZGLDB4RkYsMHhBRiwKLTB4RjcsMHhGRiwweEI2LDB4M0YsMHhFQiwweEZBLDB4RkUsMHhCRiwgMHhBRiwweEVCLDB4RkEsMHhGRSwweEJGLDB4RkUsMHhBNywweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEY3LDB4RkYsMHhGRiwweEZGLCAweEZFLDB4OUYsMHhGNywweEY5LDB4RkYsMHg3RiwweDlGLDB4RTcsCi0weEZGLDB4RkYsMHhGRSwweEFGLDB4NkYsMHhGRiwweEZGLDB4RkYsIDB4OUYsMHhGRiwweERGLDB4RkYsMHg3RCwweDVGLDB4REQsMHhGRiwKLTB4RkIsMHhCRiwweEU3LDB4QkIsMHhGRiwweEZCLDB4REYsMHg2RCwgMHg1RiwweDdFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhFQiwweEY3LDB4RkYsMHhFNywweEVGLDB4RjcsMHhGRiwweEZGLCAweDdGLDB4RkYsMHhGNywweEZGLDB4RkMsMHg4RiwweEZGLDB4RUYsCi0weEZELDB4RkUsMHhGRiwweEJFLDB4RjQsMHhGMiwweDdELDB4RDcsIDB4Q0YsMHhGRiwweDNGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhDRiwweDZCLDB4RkYsMHhCRiwweDNGLDB4RkIsMHhGMiwgMHhGQywweDdGLDB4RUIsMHhGRiwweDlGLDB4RkEsMHhGRiwweEZGLAotMHgzRiwweEZGLDB4RjMsMHhGRiwweEZGLDB4RkQsMHg3MCwweEY3LCAweEZGLDB4RkYsMHhCRiwweEZGLDB4RkIsMHhENywweEZFLDB4RjUsCi0weDc3LDB4RkYsMHgxNSwweERELDB4NzcsMHhGRCwweEZGLDB4N0YsIDB4REYsMHhGNywweEZCLDB4Q0QsMHhCRiwweEZGLDB4RkQsMHhGRiwKLTB4RkYsMHhERiwweDM3LDB4Q0QsMHhGOSwweEVDLDB4RkUsMHhFRiwgMHhCQiwweEY0LDB4RkIsMHgzRiwweDRGLDB4QjMsMHhGRiwweEZELAotMHhDQiwweEZGLDB4RTksMHg3RSwweDU0LDB4OUYsMHhFNSwweDRCLCAweEI3LDB4RkYsMHhERCwweDdELDB4QzcsMHg3MSwweERELDB4NzcsCi0weDVELDB4RDcsMHg3NSwweENELDB4N0YsMHhENiwweEZGLDB4RDMsIDB4RjYsMHhGOSwweDNGLDB4NkQsMHg5NSwweEFGLDB4N0YsMHhGRSwKLTB4RkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwgMHhGRSwweEY2LDB4QzcsMHhGRiwweEFELDB4N0IsMHhDQSwweEZGLAotMHhCRiwweEJGLDB4RUYsMHhGRCwweEUzLDB4REYsMHhCNywweEVELCAweEZCLDB4N0UsMHhERiwweDM3LDB4RUQsMHhFMywweEZCLDB4REYsCi0weEZGLDB4NTIsMHg1QywweDE1LDB4RkQsMHhDRiwweDdGLDB4REYsIDB4RkUsMHhFRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFQywKLTB4N0IsMHhGRSwweEZGLDB4RkUsMHgzRSwweDdGLDB4REEsMHhGNywgMHhGRCwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkIsMHhFRiwweEJCLAotMHg2RiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZGLCAweEY3LDB4N0QsMHhGRiwweEQ4LDB4RkYsMHhGRCwweEJGLDB4N0YsCi0weEZCLDB4RkYsMHhGRiwweDlGLDB4RkIsMHhGRSwweDdGLDB4OUYsIDB4RTcsMHhGOSwweEZFLDB4N0YsMHg5RiwweEVBLDB4N0YsMHhGNiwKLTB4QkYsMHhCRCwweDZBLDB4NUEsMHhGNiwweEU1LDB4QkYsMHg3NywgMHg1RiwweDZELDB4REQsMHg3NywweDVELDB4RDcsMHg3NSwweERELAotMHg3NywweEZGLDB4QTUsMHhCRiwweENGLDB4RkIsMHhGRiwweEZGLCAweEJGLDB4Q0YsMHhGQiwweEZELDB4RkYsMHhCRiwweEYzLDB4RkUsCi0weEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEZELDB4QUIsIDB4RkYsMHhCRiwweEJGLDB4RkYsMHhGQiwweEZGLDB4N0YsMHhFRiwKLTB4RkYsMHhCRSwweEZCLDB4RUUsMHhGQiwweEJFLDB4RUYsMHhCQiwgMHhFRSwweEZCLDB4QkYsMHhGRiwweEI1LDB4RkYsMHhEMCwweEJDLAotMHhGRCwweDJGLDB4NEIsMHhGNywweEZGLDB4RkYsMHg5RiwweEY5LCAweEZFLDB4N0YsMHg5RiwweEU3LDB4RjksMHhGRSwweDdGLDB4OUYsCi0weEZBLDB4OEYsMHhGRCwweEFCLDB4RkEsMHhEQSwweEJGLDB4QUYsIDB4QjMsMHhGRCwweEZGLDB4QkYsMHhGQiwweEZFLDB4RkYsMHhCRiwKLTB4RUYsMHhGQiwweEZFLDB4RjcsMHhCRiwweEZGLDB4OUYsMHhGRiwgMHg3NywweEY3LDB4QkQsMHhGRCwweDc3LDB4REYsMHhGRiwweDdFLAotMHhERiwweEVELDB4QkIsMHhGRSwweEZGLDB4QkUsMHhFRiwweEZCLCAweEZFLDB4RkYsMHhGQSwweDNGLDB4RkYsMHhCRSwweDZGLDB4OEYsCi0weEU2LDB4RjksMHhGRSwweDdGLDB4OUYsMHhDNywweEZFLDB4N0YsIDB4OUYsMHhFNywweEY5LDB4RkUsMHg3RiwweDlGLDB4RTcsMHhGQiwKLTB4N0YsMHhGRiwweDdGLDB4Q0YsMHhGRiwweEZELDB4RkYsMHhGRiwgMHhERiwweEZCLDB4QUYsMHhCRiwweEVGLDB4RkYsMHhGRSwweEZGLAotMHg5RiwweEVGLDB4RkIsMHhGRiwweEZDLDB4RkYsMHhGQiwweEZFLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RjcsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGNSwweEZGLDB4RkYsMHhGRiwweDNGLDB4REYsMHhGNywKLTB4RkYsMHhGRiwweDdGLDB4RUYsMHhGRSwweEZGLDB4QkYsMHhGRiwgMHhGQiwweEZGLDB4RkYsMHhCRiwweEVGLDB4RkYsMHhCMywweDdGLAotMHhGRiwweDdCLDB4NUUsMHhGNywweEZELDB4RkYsMHg3QiwweDdGLCAweEY3LDB4RkYsMHg3RiwweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsCi0weERGLDB4RjcsMHhGRiwweDE3LDB4RkYsMHhGRiwweEZGLDB4N0YsIDB4RkYsMHhGRiwweERELDB4RjYsMHhGQywweEJGLDB4Q0IsMHhGMiwKLTB4QkMsMHhCRiwweDJGLDB4Q0IsMHhGMiwweEZDLDB4QkYsMHhGRSwgMHg4RiwweEZGLDB4RkEsMHg3RSwweEJGLDB4QTcsMHhFQiwweERBLAotMHhGQywweEJGLDB4QUYsMHg3QSwweEZFLDB4QkYsMHhBRiwweEVBLCAweEZBLDB4RkUsMHhCRiwweEFGLDB4RjQsMHhERiwweEZFLDB4RkYsCi0weEYzLDB4M0MsMHg3RiwweDNFLDB4RkYsMHhDRiwweEY4LDB4QkYsIDB4OEYsMHhFMywweEY4LDB4RkUsMHgzRiwweDhGLDB4RTcsMHhFOCwKLTB4RkYsMHhGQywweDlGLDB4RkYsMHhGRiwweENGLDB4RUIsMHhCMywgMHhFNywweEZCLDB4N0IsMHhGMywweEZFLDB4RkYsMHhDRiwweERCLAotMHhGQiwweEZCLDB4QkYsMHg2RiwweDZGLDB4REYsMHhFQywweDdGLCAweEZGLDB4RkYsMHhGNywweEZELDB4RkQsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4QjIsMHhCRiwweEZGLDB4REUsMHhGRCwweEJELDB4RUYsIDB4RkIsMHhGNiwweERGLDB4RUEsMHhFNywweERCLDB4RkUsMHhCQiwKLTB4RkYsMHhFQiwweEZCLDB4QkYsMHg5RiwweDhGLDB4RTgsMHhGRSwgMHgzRiwweDhGLDB4QTMsMHhGOCwweEZFLDB4M0YsMHg4RiwweEZGLAotMHhGOCwweDdFLDB4RkQsMHhGRCwweDdGLDB4RkYsMHhGQiwweENELCAweEZGLDB4RkQsMHhGRiwweDVGLDB4RUYsMHhGRCwweEZGLDB4RkYsCi0weERGLDB4RjcsMHhGRCwweEZGLDB4QkUsMHg5MCwweEZGLDB4RkYsIDB4RUUsMHhGRiwweDNGLDB4QkYsMHhGMywweEJCLDB4RkUsMHhCNywKLTB4QUIsMHhGQSwweEZFLDB4QUYsMHhBRCwweEVBLDB4RkEsMHhERSwgMHhBQiwweEZGLDB4NjMsMHhGRiwweEZFLDB4RjIsMHhGRiwweEIzLAotMHhGRiwweERGLDB4RUUsMHg3RCwweEZGLDB4MDMsMHhGMSwweEY0LCAweDNGLDB4MUYsMHhDMywweEYxLDB4RUMsMHg3RiwweEZFLDB4NkYsCi0weEZGLDB4RkIsMHhGQiwweEZGLDB4OUYsMHhGRiwweEJGLDB4RkYsIDB4N0IsMHg1RiwweEZELDB4RkYsMHhERiwweEY3LDB4RkQsMHhGRCwKLTB4N0YsMHg3RiwweERGLDB4RkUsMHhDRiwweEZCLDB4RkYsMHhGRiwgMHhBRiwweEZCLDB4RkYsMHgxRiwweEVGLDB4QTUsMHhGRCwweEJGLAotMHhERiwweEZCLDB4N0QsMHhGRiwweEJGLDB4REYsMHhGQiwweEZGLCAweEZELDB4M0IsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsCi0weEFGLDB4RjMsMHhGRiwweEZCLDB4N0YsMHhCRiwweEQ3LDB4RkIsIDB4QkYsMHg3RiwweEJCLDB4RjcsMHhGRiwweEY4LDB4N0YsMHhGRiwKLTB4RkEsMHg1RiwweEQ3LDB4RkYsMHhERiwweDdGLDB4RUYsMHhGRiwgMHhGRiwweDdGLDB4REIsMHhGNywweEZELDB4RkYsMHg3RiwweERGLAotMHhCNywweEZCLDB4RUMsMHhGRiwweEZGLDB4RjcsMHhCRiwweEVGLCAweEZELDB4RkMsMHhGQiwweEZGLDB4RUYsMHhGMCwweEZFLDB4M0YsCi0weDhGLDB4RTMsMHhGOCwweEZFLDB4M0YsMHg4RiwweEVGLDB4OEQsIDB4RkYsMHhGRiwweEVGLDB4N0YsMHhCRiwweEZGLDB4RkIsMHhGRiwKLTB4REIsMHhCRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhFRiwweEQ4LDB4RkYsMHgyRSwweDdGLAotMHhCRSwweEVGLDB4RkUsMHg2RSwweEZGLDB4QkYsMHhGOSwweEZGLCAweEZGLDB4RjMsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZDLDB4NjYsMHhCRSwweDQ3LDB4RjMsMHg3RiwweERGLDB4RkUsIDB4ODcsMHg5RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RTcsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEQ2LDB4NkYsMHg3QywgMHhGQiwweDRGLDB4RDIsMHhGRiwweEZELDB4MkIsMHhGRSwweEZGLAotMHhGRiwweEZELDB4NUYsMHhENywweEQ1LDB4RjUsMHg3RCwweEZGLCAweEZGLDB4RkYsMHhCRiwweDlCLDB4RkYsMHhGRiwweERGLDB4QjcsCi0weEZGLDB4RkYsMHhERiwweEZGLDB4M0YsMHhDRiwweEZFLDB4N0YsIDB4QkYsMHhFRiwweEZCLDB4RkMsMHhGRiwweDNGLDB4RkYsMHhEOSwKLTB4QkYsMHhGRSwweDk3LDB4RUMsMHg4RiwweEI3LDB4RkUsMHg5QiwgMHg3RCwweEZELDB4QjcsMHhERCwweDc3LDB4MUQsMHhDNywweDcxLAotMHhERCwweDc3LDB4NUQsMHhENywweEYzLDB4NkYsMHhGRCwweDNGLCAweDczLDB4REQsMHhBRiwweEZELDB4N0EsMHhGRiwweEZGLDB4QUYsCi0weEZFLDB4RkQsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsIDB4RUYsMHg2NiwweDdGLDB4RkYsMHhGRiwweEJGLDB4QkYsMHhGRiwKLTB4RkIsMHhGRiwweEY3LDB4REYsMHhGRCwweEZCLDB4N0QsMHhERiwgMHhCNywweENELDB4RjMsMHg3QywweDVGLDB4M0YsMHg5MSwweDNGLAotMHhGRiwweDNELDB4RUYsMHg3QiwweEZGLDB4RkMsMHhGRiwweENBLCAweEVGLDB4RkUsMHhGRiwweEJELDB4RUYsMHhGQiwweDFFLDB4RTcsCi0weEJCLDB4RUMsMHg3RiwweEIzLDB4RkYsMHhGRCwweDlGLDB4RkYsIDB4RkYsMHhGRSwweEZGLDB4RkYsMHg3RiwweEJGLDB4RkIsMHhGRSwKLTB4RkYsMHhCRiwweEVGLDB4RkIsMHhFRSwweEZCLDB4QkYsMHhERiwgMHg2NywweEZGLDB4RkYsMHhCRiwweEVGLDB4REIsMHhGRiwweEJDLAotMHhGRSwweDdGLDB4RkIsMHhGRiwweDlGLDB4RUYsMHhGOSwweEZFLCAweDdGLDB4OUYsMHhFNywweEY5LDB4RkUsMHg4NywweEZGLDB4RUUsCi0weEZCLDB4QkUsMHhFNSwweEJGLDB4RUYsMHhGOSwweEQ3LDB4NjUsIDB4RjcsMHhERCwweEU3LDB4N0QsMHhERiwweDc3LDB4NUQsMHhENywKLTB4N0YsMHhGOCwweDlCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwgMHhGRiwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkYsMHg3RiwweENGLAotMHhGMywweEZDLDB4RkYsMHhCRiwweEVGLDB4RkYsMHhEQiwweDNGLCAweEVGLDB4RkIsMHhGRSwweEZGLDB4REYsMHhGRiwweEZFLDB4RkIsCi0weEJCLDB4RUYsMHhCRiwweEVGLDB4QkIsMHhFRSwweEZCLDB4QkUsIDB4RUYsMHhCQiwweEZGLDB4RkMsMHg3RiwweEZELDB4M0IsMHg1QiwKLTB4RDYsMHhFNSwweEZELDB4NEYsMHhDMywweEZCLDB4RkYsMHhCRiwgMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZGLAotMHhCNCwweEZGLDB4RkEsMHhCQywweDhGLDB4QjIsMHhFOSwweEQyLCAweDJFLDB4Q0YsMHhGQiwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsCi0weEZGLDB4QkYsMHhFRiwweEZCLDB4RkYsMHhFQywweEZGLDB4RkQsIDB4RkQsMHg3RiwweERGLDB4RjcsMHhFNCwweERGLDB4NUYsMHhGRiwKLTB4RkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4QzMsMHhGRiwweEVGLDB4RTYsMHhGOCwweEZFLAotMHgzRiwweDhCLDB4ODMsMHhGOSwweEZFLDB4N0YsMHhFNywweEY5LCAweEZFLDB4N0YsMHg5RiwweEU3LDB4RjksMHhGRSwweDdGLDB4MTcsCi0weEZELDB4RkYsMHhGRiwweEZGLDB4N0YsMHg1RiwweEY3LDB4MkMsIDB4RkYsMHhGRiwweEZGLDB4RkUsMHg3RiwweEZGLDB4RTcsMHhGOSwKLTB4RkUsMHg3RiwweDlGLDB4RkUsMHgyRiwweEZGLDB4RkYsMHhFRiwgMHhGRiwweEZFLDB4QkYsMHhFRiwweEFELDB4RkYsMHhGRiwweDdGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZFLDB4REYsMHhGRiwweERGLDB4RkYsMHhGRCwweEZELDB4N0YsCi0weERGLDB4RjcsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZBLDB4M0YsMHhGRSwKLTB4RjcsMHhGRCwweEVGLDB4N0EsMHhGRiwweEIxLDB4QkQsMHhGRiwgMHg3RiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsMHhGNywweEZELAotMHhGRiwweDdGLDB4RjMsMHgyNywweEZGLDB4REYsMHhGRiwweERELCAweEZGLDB4RkMsMHg5QiwweEZGLDB4Q0IsMHhGQywweEJGLDB4MkYsCi0weENCLDB4RjIsMHhGQywweEJGLDB4MkYsMHhDOSwweEZGLDB4REUsIDB4RkYsMHhERiwweEFGLDB4RUIsMHhEQSwweEZFLDB4QkIsMHhBRiwKLTB4RUIsMHhGOCwweEY3LDB4QUYsMHhFOCwweEZBLDB4RkUsMHhCRiwgMHhBRiwweEVCLDB4RjIsMHhGRiwweEZELDB4RkYsMHhGRiwweEVGLAotMHhCRCwweEQ3LDB4QkYsMHhGRiwweEZGLDB4REUsMHg4RiwweEI4LCAweERFLDB4MzcsMHg4RCwweEEzLDB4NzgsMHhEQSwweDNGLDB4OEYsCi0weEZGLDB4QTEsMHhGRiwweEZGLDB4RkIsMHhGQiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEE3LDB4QkQsMHhGQiwweDc2LDB4RkQsMHhCRiwKLTB4RUYsMHhEQiwweEZFLDB4QkIsMHhCRiwweEZFLDB4MjcsMHg3RiwgMHhGRiwweEZFLDB4RkUsMHhGRCwweEY1LDB4RkYsMHhFRiwweEY1LAotMHhERiwweDFGLDB4RTcsMHhGRCwweEZGLDB4N0YsMHhERiwweEY3LCAweEZELDB4RkYsMHhGRiwweENELDB4RkQsMHhBRSwweEZGLDB4RkEsCi0weDNFLDB4M0YsMHhBQiwweEZELDB4RjgsMHg3RSwweDhGLDB4RTMsIDB4RjgsMHhGRSwweDNFLDB4OEYsMHhFMywweEY4LDB4RkYsMHhGRSwKLTB4MUYsMHhFRiwweERGLDB4QkYsMHhGRSwweERFLDB4REYsMHhEOSwgMHhGRiwweERGLDB4QkMsMHhGRiwweEZGLDB4N0YsMHhGRiwweEVGLAotMHhGRCwweDdGLDB4REYsMHhGNywweEY5LDB4M0YsMHhGRSwweEZGLCAweEZGLDB4NkYsMHhGRSwweERFLDB4QkYsMHhGNywweEVELDB4RUEsCi0weEZELDB4OEYsMHg4MywweEY4LDB4RUEsMHgzRiwweDhGLDB4RUYsIDB4RkYsMHhGNCwweDdGLDB4RkYsMHhFRiwweEVGLDB4N0IsMHhGMywKLTB4RjEsMHg1RiwweEZGLDB4RkYsMHhGMSwweDNCLDB4N0YsMHhERiwgMHhGNywweEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFMCwweEZGLAotMHhGRiwweEZGLDB4RjcsMHhGRiwweDZGLDB4RkYsMHg3RiwweEZGLCAweEZGLDB4RjcsMHhERSwweEY3LDB4QkYsMHhFRiwweEZCLDB4RjcsCi0weEZELDB4RkYsMHhGRiwweEY1LDB4RkEsMHhGRiwweEZGLDB4RkIsIDB4RTcsMHhGRiwweEYzLDB4RjgsMHg3RiwweEYzLDB4REYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4MUYsMHhFRiwgMHhCQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELAotMHhGRiwweDdGLDB4RkYsMHg5RiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweENGLDB4RkYsMHgzNywweEZGLDB4RkYsCi0weDdGLDB4REYsMHg3NywweDVELDB4RTcsMHhGQywweEZGLDB4QkYsIDB4RjcsMHhGNSwweEZCLDB4RkYsMHhGRiwweEQ3LDB4RjUsMHhGQiwKLTB4RkYsMHhGRiwweDQ1LDB4RkQsMHg3RiwweEVBLDB4RkQsMHhCRSwgMHhCRiwweERGLDB4RjcsMHhGRiwweEZGLDB4REIsMHhGQiwweEZFLAotMHhGRiwweEJGLDB4RUYsMHhGRiwweEZGLDB4RkYsMHhGQiwweDVGLCAweDdGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkUsMHhGRiwweEVGLDB4RkQsMHhGRiwweDdGLDB4REYsIDB4RkYsMHhFRiwweEZCLDB4RjgsMHgwRiwweEYzLDB4RkYsMHhGOSwKLTB4MkUsMHhGQiwweEZFLDB4RkMsMHhGMywweEVGLDB4RkYsMHhGRiwgMHhCRiwweEZGLDB4RkIsMHhFNywweEZGLDB4RkUsMHg3RSwweEZGLAotMHhDMCwweDZCLDB4Q0YsMHhGRiwweDM0LDB4REYsMHhGMSwweEZELCAweEZGLDB4RUYsMHhGRiwweEZGLDB4RkYsMHhERiwweEY3LDB4RkQsCi0weENGLDB4N0YsMHg5QywweEZELDB4RkQsMHg2QywweEY3LDB4RkYsIDB4RjYsMHhGRCwweEVCLDB4MkIsMHg5RiwweEZGLDB4RkMsMHhGRSwKLTB4N0UsMHhGRiwweEZGLDB4RkYsMHhGRiwweEQ3LDB4RjMsMHhGNywgMHhGRiwweEZCLDB4RTEsMHhCRiwweEZGLDB4RUIsMHg3QSwweERFLAotMHhENywweEZCLDB4RkYsMHhGOSwweEZFLDB4RkYsMHhGRiwweEYzLCAweERFLDB4N0YsMHhGRCwweEU3LDB4N0YsMHhGRiwweEZELDB4QkIsCi0weEZGLDB4RkYsMHg3RSwweENDLDB4RjYsMHhBRiwweDVGLDB4N0YsIDB4RkUsMHhGNCwweDdELDB4RjcsMHhGRCwweEJCLDB4NkUsMHhEQiwKLTB4QjcsMHhGRiwweEY3LDB4REYsMHg2NiwweEZGLDB4RkYsMHhGNywgMHgzRCwweENGLDB4REUsMHhCRCwweEZGLDB4RkYsMHhERSwweERCLAotMHg4RCwweEY3LDB4N0UsMHhERiwweEI3LDB4RUYsMHg3RiwweEZGLCAweEY2LDB4ODcsMHhGRiwweEZGLDB4RUYsMHhGRSwweERFLDB4QkYsCi0weEZGLDB4RkYsMHhGRiwweEJCLDB4RUYsMHhGRCwweEZGLDB4N0IsIDB4REUsMHhGNywweDNGLDB4RkYsMHhCRiwweEZCLDB4REIsMHhGRiwKLTB4RjIsMHhCNiwweEZELDB4QkQsMHg3RiwweEU3LDB4RkYsMHhGRiwgMHhGRiwweDZGLDB4RjcsMHhGRiwweEZGLDB4RkYsMHhGRSwweDc3LAotMHhGRiwweEJGLDB4RjgsMHhBRiwweEZGLDB4REYsMHhCRiwweEZGLCAweEJGLDB4N0YsMHhGQiwweEZGLDB4RkYsMHhGRiwweERCLDB4RkUsCi0weEZGLDB4QkYsMHhGRiwweEZBLDB4RkYsMHhGRCwweEZGLDB4RjYsIDB4N0YsMHhGRiwweDlGLDB4RkYsMHhGRiwweDNGLDB4RUYsMHhGOCwKLTB4RUUsMHg3RSwweDlGLDB4QkEsMHhGRSwweEJGLDB4OEYsMHhFRiwgMHhGRSwweEZFLDB4RjksMHhGRiwweEZBLDB4N0YsMHhGRSwweDdFLAotMHhCRiwweEFGLDB4RkIsMHg5NiwweEZELDB4OUYsMHhFRiwweDVFLCAweDY1LDB4QkUsMHhFRiwweDVCLDB4QjYsMHhGRiwweEJFLDB4RTMsCi0weEZGLDB4QjUsMHhCRiwweEZGLDB4RkQsMHhGRiwweDdGLDB4RkYsIDB4RUYsMHhERiwweEZFLDB4RkYsMHhCRiwweEZCLDB4RkUsMHhGRiwKLTB4QkYsMHhDRiwweEZGLDB4RkYsMHhGRiwweEZELDB4OUIsMHhGRiwgMHhGRSwweEZCLDB4RkUsMHhERiwweEZGLDB4N0YsMHhGRiwweEY3LAotMHhGRSwweEZGLDB4REYsMHhGQiwweEZCLDB4RkUsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEI3LDB4RkUsMHhGQSwweEZGLDB4QUIsCi0weEVGLDB4RkYsMHhGRCwweEI1LDB4N0IsMHg3RiwweEZCLDB4RjcsIDB4RkQsMHhGRiwweEZGLDB4REQsMHhGRiwweEVGLDB4OEYsMHhGRiwKLTB4MkYsMHhGRiwweEZCLDB4N0MsMHhGRiwweDNGLDB4REYsMHg3MywgMHhFQiwweEZFLDB4M0YsMHhGRiwweEVGLDB4RkIsMHhGRSwweEZGLAotMHhFRiwweEZELDB4RkYsMHhCRiwweEZELDB4MEYsMHhGRiwweEZGLCAweEZGLDB4RjUsMHhGOSwweEZGLDB4N0YsMHhENywweEZELDB4RkYsCi0weERGLDB4RkYsMHhGNywweEZCLDB4RkYsMHg3RiwweEJGLDB4RkYsIDB4RkYsMHhGMCwweDlGLDB4RkYsMHhGRSwweDdGLDB4OEIsMHhFMywKLTB4RjksMHhERSwweDI3LDB4OUIsMHhFNiwweEJFLDB4N0YsMHg5QiwgMHhDMywweEY4LDB4REUsMHg3RiwweDlELDB4RTcsMHhGRSwweDdGLAotMHhGRiwweEZGLDB4NUYsMHhENywweEZGLDB4RkYsMHhGRiwweDRGLCAweEZCLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhBRiwweEZGLDB4OUYsCi0weDdGLDB4RkIsMHhGRiwweEU4LDB4RkYsMHhGRiwweEZFLDB4QkYsIDB4QUYsMHhGRiwweEZGLDB4RkUsMHhCRiwweEVGLDB4RjcsMHhGRiwKLTB4QkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjcsMHhGRiwgMHhGQywweEZGLDB4RkYsMHhGRCwweDdGLDB4RkYsMHhGRiwweEZGLAotMHhGRCwweDNGLDB4Q0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY3LCAweEZGLDB4RkQsMHg3RiwweEZGLDB4RkYsMHg5MywweEZGLDB4RkYsCi0weDdBLDB4REYsMHhGNywweEZGLDB4RkYsMHg3QiwweDdGLDB4QjcsIDB4RUYsMHhGRiwweEZGLDB4RkQsMHhCRiwweEZELDB4RkIsMHhGRiwKLTB4RjcsMHhGRiwweEQ3LDB4RkYsMHhGRiwweEZGLDB4RkMsMHg5RiwgMHg2RiwweENCLDB4RkYsMHhGNCwweEJCLDB4REYsMHhENiwweEZELAotMHhCRiwweDJGLDB4RDMsMHhGNywweEZGLDB4REYsMHhGRiwweENGLCAweEZGLDB4RkEsMHhCRSwweEJELDB4QUYsMHg2QSwweERBLDB4QkUsCi0weEJCLDB4QUIsMHgzQSwweEJFLDB4MkQsMHhBRSwweEVCLDB4REEsIDB4RjYsMHgzRiwweEFELDB4RjUsMHhERCwweEZGLDB4Q0YsMHhGMSwKLTB4RkYsMHhGOSwweDdGLDB4RkYsMHg3MywweEZFLDB4RkYsMHhDRiwgMHhDMywweEY0LDB4RjcsMHgyRiwweEYzLDB4RkYsMHhGQywweEZGLAotMHg3QywweDFGLDB4RkYsMHgzRiwweDRGLDB4RkYsMHg3RSwweEZGLCAweEVGLDB4QkQsMHhGNiwweEZFLDB4RkYsMHgyQiwweEVGLDB4REMsCi0weEZCLDB4RkQsMHhGRiwweEZCLDB4RkYsMHhFQSwweDdCLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQiwweEY3LDB4REYsMHhGRiwKLTB4RTMsMHg3RCwweEZGLDB4QjcsMHhGRiwweEJGLDB4RkYsMHhGRiwgMHhERiwweEZGLDB4RjgsMHhGRiwweEJGLDB4RkYsMHhCRiwweEVCLAotMHhFNywweEZBLDB4RkUsMHgzRCwweEJGLDB4RTksMHhGQywweEJGLCAweEZGLDB4RkEsMHhGQiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RDksCi0weEZGLDB4RkYsMHhGRiwweEY2LDB4N0YsMHhGRiwweEY2LDB4N0QsIDB4RkYsMHhERiwweENGLDB4RkQsMHhCRiwweEZCLDB4RUYsMHg3RSwKLTB4RkYsMHg3RiwweEZGLDB4RkYsMHhEMywweEZGLDB4RkQsMHhGQiwgMHhGRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RUYsMHhGRiwweEJGLAotMHhGRSwweEZGLDB4RjcsMHhFRiwweEZGLDB4RkYsMHhGRiwweEZCLCAweEZGLDB4ODcsMHhGRiwweEZELDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weDdCLDB4RkUsMHhGRiwweEZFLDB4M0IsMHhGNywweEY3LDB4RkYsIDB4M0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4MEYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGNywgMHhGRiwweEZGLDB4QUQsMHhGRiwweEZFLDB4RjcsMHhGRiwweEZGLAotMHg1RiwweEZGLDB4RkYsMHhERiwweEZGLDB4RkQsMHhGRiwweEY1LCAweEZGLDB4REYsMHhGRiwweEJELDB4RkYsMHhFOSwweEZGLDB4QzcsCi0weEYzLDB4RkYsMHhGRiwweEY3LDB4RkYsMHhGMywweEZGLDB4RjgsIDB4M0IsMHhGRiwweEZGLDB4N0IsMHhERiwweEJGLDB4RkIsMHhFRiwKLTB4RkIsMHhGRiwweEZCLDB4RjcsMHhGNywweEJCLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkIsMHhGRiwweEZFLDB4N0YsMHhGMywweDdGLAotMHg1RSwweEI3LDB4QkYsMHhGRCwweDdGLDB4RkYsMHhGOSwweDdGLCAweEZCLDB4RkYsMHhFQiwweEZELDB4N0YsMHg3RiwweEZGLDB4RUYsCi0weEZCLDB4RTAsMHgzRiwweEZFLDB4QkYsMHhCRiwweERGLDB4RkYsIDB4N0UsMHhGRiwweEY3LDB4RkYsMHhGRiwweEZFLDB4QkYsMHhGRiwKLTB4REIsMHg3OCwweEZGLDB4RkYsMHhGRiwweEVFLDB4QTEsMHhCRiwgMHhGNSwweERFLDB4RkIsMHhGNywweEZGLDB4RkIsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkIsMHhGRiwweEZGLDB4RDcsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhFRiwweEYwLDB4RkYsMHhGRiwweEZGLDB4RjMsCi0weEY3LDB4RkYsMHhFRiwweEZGLDB4RTcsMHhDRiwweEZGLDB4RkIsIDB4RkYsMHhFRiwweEZGLDB4RkYsMHg5RiwweDlGLDB4RUYsMHhGQywKLTB4MTYsMHhCRiwweEZFLDB4RjMsMHhFNCwweEZGLDB4RkYsMHhDNiwgMHhGRiwweEU3LDB4RkYsMHhGRiwweEZELDB4RkYsMHhCRiwweEZGLAotMHhGRiwweDNGLDB4RkYsMHhCRiwweEQ2LDB4QUYsMHg3RiwweEZFLCAweDZCLDB4N0UsMHg3RiwweEZGLDB4QUYsMHhGRiwweEZGLDB4QkYsCi0weEZGLDB4NUYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZFLDB4RkYsIDB4RkYsMHhCRCwweERCLDB4RkYsMHhGRSwweDVGLDB4RjIsMHhGRiwKLTB4RkYsMHg1RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhFRiwweDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERSwweEJGLAotMHhGRiwweEZGLDB4RUYsMHhGQiwweDc3LDB4RkUsMHhCRCwweDdGLCAweDVGLDB4RkYsMHhGRiwweEZGLDB4REYsMHg2RiwweEVELDB4RkYsCi0weEZELDB4RkYsMHg3RiwweEZELDB4NkYsMHhGRiwweEZGLDB4NzcsIDB4REEsMHhDRiwweEZELDB4NUYsMHhGRiwweEJGLDB4RkYsMHhGRiwKLTB4REYsMHg3RiwweEZGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHg2NiwweDdGLDB4RkYsMHhGRSwweEJGLDB4RTcsMHhCRiwweEZBLAotMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4REYsMHhGRiwweDU5LCAweEVGLDB4RkYsMHhFRiwweEZCLDB4N0YsMHg4OSwweEZGLDB4RkYsCi0weEU5LDB4RkYsMHg2RiwweEZGLDB4RjUsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweDdGLDB4RjIsMHhGNywweEZGLDB4RkYsMHhFRiwKLTB4RjgsMHg3RiwweEZCLDB4RkYsMHhGRCwweEZGLDB4RkYsMHhEOSwgMHhGRiwweEVGLDB4QkIsMHhGRiwweEZGLDB4RkYsMHhCRiwweEVGLAotMHhERSwweEZGLDB4RkYsMHg5RiwweDdGLDB4REYsMHhGRiwweEY3LCAweEZGLDB4RkYsMHhGRiwweEZGLDB4REYsMHhGRiwweEZGLDB4QUYsCi0weEZGLDB4RkYsMHhGNywweDNGLDB4RUIsMHg5RiwweEZFLDB4N0YsIDB4OUUsMHg3RiwweDlGLDB4RkUsMHg4NywweEZGLDB4RUQsMHhEQiwKLTB4NTYsMHhGRiwweEJGLDB4QUYsMHgwQiwweEQyLDB4RkYsMHhFRiwgMHhEQiwweDZFLDB4N0QsMHhCRCwweDZGLDB4RjgsMHhGRSwweDNGLAotMHhGQSwweDVCLDB4RkYsMHhGRCwweEJGLDB4RUYsMHhGRiwweEJGLCAweDZGLDB4REIsMHhFNiwweEZGLDB4RkYsMHgzRiwweEZGLDB4REYsCi0weEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhEQSwweDNGLDB4RkYsIDB4RkIsMHhGRSwweEZFLDB4RkYsMHhGRiwweERGLDB4RjcsMHhCRCwKLTB4RkYsMHhGRCwweEZGLDB4RkUsMHhGRiwweEZCLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RjEsMHg1RiwweEZELDB4OUYsMHhERiwweEZELAotMHhGRiwweEZELDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweDc2LCAweEZBLDB4RkYsMHhGRiwweDdGLDB4RTMsMHhGOCwweEZGLDB4QUUsCi0weEZGLDB4RkIsMHg3RSwweDlELDB4NzMsMHhGRiwweEZBLDB4N0YsIDB4REYsMHhGRiwweEZGLDB4N0YsMHhGRiwweEZCLDB4Q0QsMHhGRiwKLTB4N0YsMHhFRiwweEZCLDB4RkYsMHhGRCwweEZGLDB4RjcsMHg3RiwgMHg3RiwweEVGLDB4RkYsMHhFRCwweEZGLDB4RkYsMHhGRiwweEI1LAotMHhGRiwweEJGLDB4RkYsMHhCRiwweEZELDB4RUYsMHhEQiwweEY3LCAweEZGLDB4OTMsMHhGRiwweEVGLDB4RTIsMHhGOSwweEJFLDB4N0YsCi0weDhCLDB4RTcsMHhGOSwweEZFLDB4NkIsMHhFNywweEY5LDB4RkUsIDB4N0YsMHg5RiwweEU3LDB4RjksMHhGRSwweDdGLDB4NDcsMHhGRiwKLTB4RkYsMHhGRCwweEZGLDB4OUYsMHhGRiwweEQ3LDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RjUsMHhGRiwweDlGLDB4RkYsMHhGNywweEZFLAotMHhGRiwweEJGLDB4RkUsMHg2RiwweEZGLDB4RkYsMHhGQiwweEZGLCAweEZGLDB4RkYsMHhBRiwweEZGLDB4RkYsMHhGRiwweDdGLDB4RkIsCi0weEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsIDB4REYsMHhGRiwweEZGLDB4RjcsMHhGRiwweEZGLDB4RkYsMHhERiwKLTB4RkYsMHhGRiwweEZGLDB4NUYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHg1RiwweEZCLDB4RkUsMHhGRiwweEY4LDB4MzcsMHhGRiwweEZGLAotMHhFRiwweEZGLDB4N0YsMHhGRSwweEJGLDB4RkYsMHhGRiwweEZFLCAweEJGLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhCRiwweEZELDB4RkYsCi0weDdGLDB4RkEsMHg3RiwweEZGLDB4RkYsMHg2RiwweEZGLDB4RkYsIDB4N0QsMHhGRiwweENGLDB4RkYsMHhGRiwweEZGLDB4NEYsMHhGRiwKLTB4RjIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkEsMHhCRiwgMHhGRiwweEFFLDB4RUIsMHhGQSwweEZFLDB4QkIsMHhBRCwweEVCLAotMHhGQSwweEY3LDB4QUYsMHg2QiwweEZBLDB4RjYsMHhCRiwweDI1LCAweEU5LDB4RjIsMHg3RiwweDQ1LDB4RkYsMHhGRiwweEZELDB4RjcsCi0weEY3LDB4QkYsMHhGRiwweERGLDB4RkYsMHhGRiwweEJGLDB4RkIsIDB4RkYsMHhERiwweEYzLDB4RkYsMHhGNywweDNGLDB4Q0YsMHhGRiwKLTB4QTEsMHhGRiwweEZGLDB4QkYsMHhFNywweEZGLDB4RkYsMHg3RiwgMHhGRiwweDNELDB4RkYsMHhGRiwweEZGLDB4RjcsMHhGRiwweDJGLAotMHhGRiwweEZCLDB4RjUsMHg3RiwweEZFLDB4NTcsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjcsCi0weDNGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZELDB4RkUsIDB4RjcsMHhFRSwweEFGLDB4RkUsMHhFRSwweEU3LDB4RkEsMHhGRiwKLTB4RkUsMHg5RCwweEY5LDB4NUUsMHhGRSwweEZGLDB4RUIsMHhGRiwgMHhGRiwweERGLDB4QTcsMHhGRiwweEZGLDB4RkYsMHhGQywweERCLAotMHhGRiwweEZGLDB4RkYsMHg3RSwweEZCLDB4RkYsMHhGRiwweEVGLCAweEZCLDB4RkQsMHhGRiwweERCLDB4RkYsMHhGRiwweEZGLDB4RUYsCi0weEZGLDB4RkYsMHhGRiwweEZELDB4QkYsMHhGRSwweEJGLDB4RkYsIDB4NkYsMHg3RiwweEZGLDB4RjcsMHhGRiwweEZGLDB4RjksMHhGRiwKLTB4RjcsMHhGRiwweEJGLDB4REUsMHhGNywweEZGLDB4RkYsMHhGRiwgMHhGQSwweDdGLDB4RkQsMHhCRiwweDVGLDB4RkYsMHhGRiwweEJGLAotMHhGRiwweEVELDB4RkYsMHhGNywweEJGLDB4RkYsMHhGRiwweEVGLCAweEZGLDB4REYsMHhGRiwweEZGLDB4RkYsMHhFNiwweEZGLDB4RkIsCi0weDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY3LDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RUIsMHhGRiwKLTB4RkQsMHhGRiwweEY1LDB4RkYsMHhGNiwweDdGLDB4REYsMHhCRCwgMHhDRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4REYsMHhGRiwweEZGLAotMHhGRiwweEY5LDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEUzLCAweEZGLDB4RUUsMHhCRiwweEZGLDB4N0QsMHhFRiwweEZFLDB4RkYsCi0weEZGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkUsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFNywweEZGLDB4QjUsMHhBRSwKLTB4RkYsMHhGRiwweEI2LDB4RkUsMHhCRiwweEZGLDB4RkYsMHhCRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweDI3LDB4RkYsMHhFRiwweEZFLDB4N0YsMHhERiwweEZGLCAweDdFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRCwweEZGLDB4RjcsMHhGOSwweDlGLDB4RkYsIDB4NUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHg3RiwKLTB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHgwRiwweEZGLDB4RTcsMHhCRiwweEZFLAotMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQywweEJGLCAweEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4QzQsCi0weDZCLDB4RkYsMHgyOSwweDFGLDB4RkIsMHhBRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RUYsMHgxQiwweEZFLDB4RkYsMHhGQywKLTB4NkYsMHhGRiwweEZGLDB4RkQsMHg2QSwweEY3LDB4RDcsMHhGNSwgMHhCRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRSwweEJGLDB4RkYsMHhGRiwweEZBLDB4RkYsMHhGRiwweEY3LCAweEZCLDB4REQsMHhCRiwweEZGLDB4RTcsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweDdGLDB4RkYsIDB4RkYsMHhGNSwweEZGLDB4RkYsMHhGNywweEZELDB4QjMsMHhFRiwKLTB4RkQsMHg3RSwweDVELDB4RkYsMHhGRCwweEZGLDB4RkYsMHhGRiwgMHhGRCwweDdGLDB4RDIsMHhGNSwweEZCLDB4N0UsMHhDQiwweEI3LAotMHhGRiwweEZGLDB4RkYsMHhDNiwweEZGLDB4RkQsMHhFRSwweDYzLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNiwweEZELDB4NjUsCi0weDVCLDB4REYsMHhGRiwweEQ1LDB4RkYsMHhGRiwweEZGLDB4RjYsIDB4RTcsMHhCRiwweEY3LDB4QTksMHhGRiwweEZGLDB4RUQsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhFQiwweEZGLDB4RkYsMHhGRiwgMHhBRiwweEZGLDB4RkYsMHhGRiwweEY4LDB4MUIsMHhGRiwweEUzLAotMHhEMCwweEJGLDB4RkYsMHhFMSwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RDcsMHhGRiwweEZGLDB4RkYsMHg1RiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhBRiwweEZGLDB4REIsMHg3NiwweEJGLDB4RkYsIDB4N0YsMHhGRiwweEJGLDB4RUYsMHhGRSwweEZGLDB4QkYsMHhFRiwKLTB4RkIsMHhGRSwweEZGLDB4RkYsMHhGRiwweEJGLDB4RjIsMHg3RiwgMHhGRiwweDlGLDB4RkUsMHhCRCwweEZFLDB4N0YsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RjcsMHgzRiwweEVDLDB4N0YsMHhGNiwweDk1LDB4QkIsCi0weEVGLDB4RjgsMHhGRSwweEZDLDB4QkYsMHgyRiwweERBLDB4RkMsIDB4QkYsMHgyRiwweENCLDB4RjIsMHhGQywweEJGLDB4RUYsMHhGRiwKLTB4QTksMHhCRiwweENGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRSwgMHhERCwweEI3LDB4NkQsMHhGNiwweEQ5LDB4QjYsMHg2RCwweDlCLAotMHg3NiwweEQ5LDB4QkYsMHhGQiwweEZELDB4QTMsMHhGRiwweEJGLCAweEVGLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRiwweDdGLDB4REYsCi0weEZELDB4RUYsMHg3QiwweERFLDB4RjcsMHhGRCwweEVGLDB4N0YsIDB4RkYsMHhGRiwweDA1LDB4RkYsMHhGQSwweEZFLDB4N0YsMHhFRiwKLTB4RTMsMHhGRiwweEZGLDB4RkQsMHg3RiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweDVGLDB4RkYsMHhGRiwweEZELDB4N0YsMHhGQiwweEFGLAotMHhGRiwweDYzLDB4QzgsMHhGRiwweEJGLDB4RUYsMHhGRiwweEZGLCAweEZBLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRSwweDlGLDB4RjcsCi0weEZGLDB4RkEsMHhCRiwweEZFLDB4OUYsMHhGQiwweDdGLDB4RkYsIDB4RkYsMHhFRiwweEQ3LDB4RkYsMHhGRiwweEY1LDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZELDB4N0YsMHhGRiwweEZGLDB4QkYsMHhGRiwgMHhGOSwweEJGLDB4RkYsMHhCRSwweDI3LDB4OUYsMHhFNywweEY5LAotMHhGRSwweDdGLDB4OEIsMHhFNywweEZFLDB4N0YsMHg5RiwweEUyLCAweEY5LDB4RkUsMHg3RiwweDlGLDB4RTcsMHhGMSwweDdGLDB4RkYsCi0weEZGLDB4RkYsMHhGQiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RDcsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNSwweEZGLDB4RkYsMHhGRiwKLTB4RDcsMHhGRiwweEZBLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwgMHhGRCwweEZGLDB4RkYsMHhGRiwweEFGLDB4RjcsMHhGRiwweEZGLAotMHhGRiwweEVCLDB4RkYsMHhGRiwweEZGLDB4QUYsMHhGRiwweEM0LCAweEZGLDB4RjcsMHhGRiwweEZGLDB4RUYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4NUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEQ3LDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFQiwweEZGLDB4RkIsMHg3QSwKLTB4REYsMHhGNywweEZELDB4RkYsMHhGRiwweEZFLDB4QkYsMHhGRiwgMHhGRiwweDdGLDB4RkYsMHhBRiwweEZGLDB4RkYsMHhGRiwweEY3LAotMHhFRiwweEUzLDB4RkYsMHhERCwweEQyLDB4RkYsMHhERiwweEZGLCAweEZGLDB4RjIsMHhGQywweEJGLDB4Q0IsMHhGNiwweEZELDB4QkYsCi0weDJGLDB4Q0IsMHhGRiwweDdGLDB4REYsMHhERSwweEFGLDB4RkYsIDB4REEsMHhFRSwweEJGLDB4QUYsMHhFOSwweEZBLDB4RjQsMHhCRCwKLTB4QUYsMHg1QSwweEFFLDB4QkIsMHhBQiwweDZCLDB4REEsMHhERSwgMHhCRiwweEFELDB4RDcsMHg1RSwweEZGLDB4RkYsMHhCRiwweEZDLAotMHhGRiwweERGLDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweERGLCAweEY3LDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweEZGLDB4RkEsCi0weDFGLDB4RkYsMHhGRSwweEZCLDB4RUYsMHhCRiwweEZELDB4RkYsIDB4RkQsMHhCRCwweDc3LDB4RkYsMHhGRiwweEZGLDB4RkYsMHg5RCwKLTB4RUYsMHhGRiwweEZGLDB4RkYsMHhFRiwweDdELDB4RkYsMHhGQiwgMHhGRSwweEVGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY3LAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEVFLCAweEJGLDB4RTQsMHhGQiwweEZGLDB4RkUsMHgzRiwweEZFLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEFGLDB4RUEsMHhGRSwweEJGLDB4QUYsIDB4RUIsMHhGQSwweEZFLDB4RkYsMHhGRiwweEZGLDB4NTUsMHhGNiwKLTB4RkYsMHhGRSwweEY3LDB4RkYsMHg3RiwweEZGLDB4RUIsMHhGNywgMHg1RiwweEM1LDB4RkQsMHg3RiwweDVGLDB4RDcsMHhGNSwweEZGLAotMHg2RiwweEZCLDB4RkYsMHg4QSwweEZGLDB4RkYsMHhGRiwweEZGLCAweEVCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQiwweEJGLDB4QkYsCi0weEVGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZCLDB4RkYsIDB4NzcsMHhERiwweEZCLDB4RkYsMHhGRCwweDdGLDB4RUYsMHhGRiwKLTB4RkYsMHhGRiwweEJGLDB4N0YsMHhGRiwweERGLDB4QkYsMHhGRiwgMHhGQiwweEZGLDB4RkYsMHhGRiwweEZFLDB4RUYsMHhERiwweEZGLAotMHhGRSwweEZGLDB4OUYsMHhFRiwweDdELDB4RkYsMHhGNywweEZGLCAweDdGLDB4RkYsMHhGRiwweERGLDB4RjcsMHhGRCwweEZGLDB4RUYsCi0weERGLDB4RkYsMHhERiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweEZGLDB4RkYsMHhGQiwKLTB4RkQsMHhGRiwweEJGLDB4REYsMHhEMSwweEZGLDB4RjgsMHgzQiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHg3RSwweERCLDB4RkQsMHhGRiwweDc3LDB4REIsMHhCNywweDdELCAweEJGLDB4RkIsMHhGRiwweEY4LDB4N0YsMHhFRCwweDdCLDB4NUUsCi0weEZGLDB4RkUsMHhGRiwweEZGLDB4NEYsMHhENywweEZELDB4N0YsIDB4REYsMHhENywweEY1LDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGRiwKLTB4RjIsMHgzRiwweEZFLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEJGLDB4RUYsMHhGRSwweEZGLDB4M0IsMHhFRSwweEZGLAotMHhGQywweEVGLDB4RkYsMHhGRiwweEZGLDB4ODUsMHhGRiwweEZELCAweEZFLDB4RkYsMHhGNSwweEZGLDB4RkYsMHhGRSwweEZGLDB4REYsCi0weEZCLDB4RkYsMHg1RiwweEJGLDB4RkYsMHhGRCwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEE4LDB4RkYsMHhGRiwweDlGLDB4OUUsMHhGRiwKLTB4RkYsMHhGRiwweDdGLDB4RjMsMHhGRiwweEZGLDB4Q0YsMHhGRiwgMHhGNywweEZELDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGQywweDE2LAotMHhCRiwweENGLDB4QTMsMHhFNSwweEVGLDB4N0YsMHhGRiwweEYzLCAweEU0LDB4RkYsMHhDRiwweDkzLDB4RkMsMHhGRiwweDNGLDB4Q0YsCi0weEZGLDB4RkYsMHhGRiwweEQ2LDB4MEYsMHg3RCwweEJGLDB4NkUsIDB4RkIsMHhGNCwweEZDLDB4QUYsMHg2RCwweERCLDB4NzcsMHhCNywKLTB4NkQsMHhEQiwweEY2LDB4RkQsMHhCRiwweEZGLDB4RkYsMHhGRiwgMHhCRiwweDlCLDB4RkEsMHhERSwweEI3LDB4QjcsMHhFRCwweEY5LAotMHg3RSwweEI3LDB4QUMsMHhFQiwweEQ2LDB4QjMsMHhBRCwweEVCLCAweDdBLDB4REYsMHhGRiwweEZGLDB4RkYsMHhEOCwweEJGLDB4RkYsCi0weEI3LDB4RUQsMHg5RiwweDZGLDB4REQsMHhGNywweDY4LDB4REIsIDB4MzcsMHhCMywweDZDLDB4REIsMHgzNiwweENELDB4QjMsMHg3RiwKLTB4RkYsMHg3RiwweEY1LDB4NkYsMHhGRCwweEVGLDB4NzksMHgzRCwgMHhGNywweDkzLDB4RTQsMHg3QSwweDlFLDB4QUQsMHhFQSwweDdBLAotMHg5RSwweEY3LDB4QkQsMHhFRiwweEZGLDB4RkYsMHhGRiwweDc2LCAweDdGLDB4RkIsMHhDNiwweEZGLDB4QkIsMHhFRiwweERBLDB4RkUsCi0weEZELDB4QkYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsIDB4RkYsMHhGRiwweEZCLDB4RkYsMHhBNSwweEZGLDB4RkQsMHhBQiwKLTB4NkYsMHg3OCwweERFLDB4MTcsMHg4RiwweDc5LDB4REYsMHhGRCwgMHhGRiwweDdGLDB4REYsMHhGNywweEZELDB4RkYsMHhGRiwweEZCLAotMHhGRiwweEZCLDB4RkYsMHhFRiwweEZCLDB4RUYsMHhGQiwweEZFLCAweEZGLDB4QkIsMHhEQSwweEYzLDB4RUYsMHgzQiwweENFLDB4RjMsCi0weEJDLDB4RUYsMHgzRiwweENGLDB4REYsMHhGRiwweEI3LDB4RkYsIDB4RkYsMHhGRiwweENGLDB4NzMsMHhGRiwweEJGLDB4RUYsMHhGRiwKLTB4RjMsMHhGRiwweDNGLDB4Q0YsMHhGMywweEZDLDB4RkYsMHgzRCwgMHhDRiwweDlGLDB4RkUsMHgwNywweEZGLDB4QUYsMHhFQiwweEZFLAotMHhGRCwweEJGLDB4RUYsMHhFQiwweEZBLDB4RkYsMHhBRiwweEVCLCAweEZBLDB4RkUsMHhCRiwweEFGLDB4RkIsMHhGRSwweDNGLDB4RkIsCi0weDlCLDB4RkYsMHg3RiwweERGLDB4RkYsMHhGMywweEZFLDB4RkYsIDB4REUsMHhGNywweEJGLDB4N0IsMHhERSwweEY3LDB4QkQsMHhFRiwKLTB4N0IsMHhGRSwweEZGLDB4RkYsMHhERiwweDNGLDB4RkUsMHhGRiwgMHhCNywweEZGLDB4RUYsMHhGNywweEZGLDB4QkYsMHhFRCwweEZFLAotMHhERiwweEI3LDB4RUQsMHhGQiwweDdFLDB4REYsMHhGRiwweEZGLCAweEZGLDB4RkQsMHg1RiwweEVGLDB4RUIsMHhGQSwweEZFLDB4RjUsCi0weEJGLDB4NkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkUsMHhGOCwweEZGLDB4QTgsMHhGRiwKLTB4RkYsMHhCRiwweEVGLDB4RkIsMHg2QSwweEZCLDB4QjcsMHhFRiwgMHhGQiwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLAotMHhFRiwweEZCLDB4RkYsMHhFMCwweEZGLDB4RkYsMHhGRCwweDdGLCAweDVDLDB4RDcsMHg3RCwweERGLDB4RjMsMHg1QywweEY1LDB4Q0QsCi0weDczLDB4NUUsMHhENywweEI1LDB4RkQsMHg3RiwweEVGLDB4RkYsIDB4REIsMHhGRiwweEZGLDB4RTIsMHhGOCwweEJFLDB4MkYsMHg4RiwKLTB4RTcsMHhGOCwweEJFLDB4NkIsMHhFMiwweEY4LDB4QkUsMHgyRiwgMHg4QiwweEUyLDB4RjksMHhGRSwweDdGLDB4RTcsMHhGRiwweEQ3LAotMHhGNSwweEZELDB4N0YsMHhGRiwweEY3LDB4RjUsMHhGRCwweDdGLCAweEQ3LDB4RjUsMHhGRCwweDdGLDB4NUYsMHhENywweEY1LDB4RkYsCi0weEZGLDB4RkYsMHg4RiwweEZGLDB4QUYsMHhFQiwweEZBLDB4RkYsIDB4RkYsMHhCRiwweEVCLDB4RkEsMHhGRiwweDJGLDB4RUIsMHhGQSwKLTB4RkUsMHhCRiwweEFGLDB4RUIsMHhGRiwweEZGLDB4RkUsMHg1RiwgMHhGRiwweDVGLDB4RkYsMHhGRiwweEZELDB4RkYsMHhGRiwweEQ3LAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4QkYsMHhGRSwweEI3LDB4RkQsCi0weEZGLDB4N0UsMHhERiwweEY3LDB4QUQsMHhGRiwweDdGLDB4RjcsIDB4RkQsMHhGRiwweDdGLDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwKLTB4RjYsMHg3RiwweEZGLDB4RkYsMHhGRiwweERCLDB4RjYsMHhGQywgMHhBRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjcsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RUMsMHhCRiwweEZGLCAweEFGLDB4RUIsMHhGQSwweEY2LDB4QUIsMHg4RiwweEVCLDB4RkEsCi0weEY3LDB4QTUsMHhFQiwweEZBLDB4QkUsMHhCRiwweEFGLDB4RUIsIDB4RkEsMHhGRiwweDZELDB4RkYsMHhGRiwweDdGLDB4REYsMHgzMywKLTB4REQsMHhGRiwweDdGLDB4RkUsMHhGNywweEZDLDB4N0YsMHhGQiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEE5LAotMHhGRiwweEZELDB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweERGLCAweEZGLDB4RkYsMHhFRiwweEVGLDB4RkQsMHhGRiwweDdGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZFLDB4QTcsMHhGRiwweEZGLDB4RkYsIDB4NzcsMHhERiwweEY3LDB4RkQsMHg5RiwweDdGLDB4RkUsMHg3NywKLTB4RUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEFGLDB4QkYsMHhBRiwweEZGLDB4RjksMHhCRSwweEJGLAotMHg4RiwweEZCLDB4RkUsMHhGRSwweEVGLDB4RkIsMHhGRSwweEZGLCAweEJGLDB4RUYsMHhGQiwweEZGLDB4RkYsMHhGRCwweERGLDB4NkYsCi0weEVGLDB4RkYsMHg3RiwweEZGLDB4QkYsMHhCRiwweERGLDB4RkYsIDB4RkMsMHhGRiwweERGLDB4RjcsMHhGRCwweEVGLDB4N0YsMHhERiwKLTB4RkYsMHhGRiwweEZGLDB4M0YsMHhGNiwweEZGLDB4Q0YsMHhGRiwgMHhEQiwweEZCLDB4RjcsMHhGRiwweEVCLDB4N0EsMHhGRiwweEZGLAotMHhGRiwweEJGLDB4RUYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEZFLCAweDZELDB4RkQsMHhGRiwweDVGLDB4RkIsMHhGRiwweEZGLDB4RjcsCi0weEZGLDB4NUYsMHhGNSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGOCwweEZGLDB4RkIsMHhGRiwKLTB4RkYsMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RTcsMHhGNiwgMHhCRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhGRiwweEZGLAotMHhGRiwweEM5LDB4RkYsMHhGRiwweEZGLDB4QkQsMHhGRiwweEJGLCAweEFGLDB4RUYsMHhFRiwweDNGLDB4RDEsMHhGQywweDdGLDB4RkIsCi0weEM3LDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEUzLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGRiwweEZGLDB4NzcsMHhGRiwKLTB4REYsMHhCNywweEZELDB4RjcsMHhGRCwweEY3LDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHg1NywweEZGLDB4RjcsMHhBNSwweEZELAotMHgzRiwweERGLDB4QkYsMHhCRiwweEZFLDB4N0YsMHhGRiwweEZGLCAweEZGLDB4REYsMHhGQSwweEZELDB4RkYsMHhGRiwweEZGLDB4RkUsCi0weDg3LDB4RkYsMHhFOSwweEZGLDB4RkUsMHhFRiwweEJGLDB4RUYsIDB4RkUsMHhGRSwweEZGLDB4RUYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQSwweDlGLDB4RkYsMHgzRiwgMHhGRiwweEZELDB4RkQsMHg1NywweERGLDB4RkQsMHhGMywweEZGLAotMHhERiwweEZELDB4RkYsMHg1RiwweERGLDB4RjUsMHhGRCwweEZGLCAweEZGLDB4RjksMHg4RiwweEZGLDB4RkYsMHhGRiwweEVFLDB4N0YsCi0weEZGLDB4RkYsMHhCRiwweDVFLDB4RkUsMHhFQywweEZCLDB4M0YsIDB4N0YsMHg5RiwweEVGLDB4RjksMHhGRiwweEZGLDB4Q0QsMHg2QiwKLTB4RkYsMHhGRiwweEZGLDB4QzUsMHhGMywweEZDLDB4RkEsMHgzOCwgMHhGRiwweEFGLDB4M0YsMHhFRSwweDdGLDB4OUYsMHhGRiwweEQ5LAotMHhGRiwweEZGLDB4RkQsMHg3QSwweEY3LDB4RkYsMHhGMywweEZGLCAweEFGLDB4NkYsMHhEQiwweEYyLDB4QjksMHhFOSwweEZCLDB4RkYsCi0weEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhFRiwweEZGLDB4RkIsIDB4QzUsMHhCRiwweEZGLDB4RUYsMHhGRiwweDVFLDB4QjcsMHhBRCwKLTB4Q0QsMHg3OSwweDdDLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4OTMsMHhGRiwweEVGLAotMHhFQSwweEZFLDB4QkYsMHhFRiwweDVCLDB4RDIsMHhDRCwweEY1LCAweDZELDB4NzcsMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsCi0weEZGLDB4RkYsMHg2NiwweEZGLDB4RDUsMHg2NSwweDdELDB4NUYsIDB4NzUsMHg5RCwweDY1LDB4N0YsMHhENiwweEZCLDB4NEYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjYsMHhDNywgMHhGRiwweEJGLDB4RUYsMHhGQSwweEZFLDB4RkYsMHhCRiwweEVCLAotMHhGRiwweERGLDB4RkYsMHg3RSwweEZGLDB4RkYsMHhFRiwweEZELCAweDdFLDB4RDcsMHhGRiwweDc4LDB4REYsMHhGRiwweDVGLDB4REYsCi0weEY1LDB4QkYsMHg3RiwweERGLDB4QzUsMHhGRiwweDNGLDB4RjYsIDB4N0UsMHhGRiwweDBGLDB4RUYsMHhGMiwweDNFLDB4QkYsMHhGRiwKLTB4RkIsMHgzRiwweEZGLDB4RkIsMHg3RiwweEZGLDB4QjMsMHhGRSwgMHhGQiwweEY2LDB4RkQsMHhGRiwweERBLDB4RjcsMHhGRCwweEZGLAotMHg3RiwweERGLDB4RjcsMHhCRiwweEZGLDB4RkEsMHg3RiwweEZGLCAweEZGLDB4RkYsMHhGRiwweDlGLDB4RkYsMHhGMywweERDLDB4RjksCi0weEJGLDB4Q0UsMHhFNywweEY5LDB4RkUsMHg3RiwweDlGLDB4RTcsIDB4RkYsMHhGRiwweEUyLDB4N0YsMHhGRSwweEZGLDB4QkYsMHhFRiwKLTB4RUIsMHhGQSwweEZGLDB4OUYsMHg2NywweDFFLDB4RkYsMHg4RiwgMHhFNywweEY4LDB4RkUsMHg3RiwweDhGLDB4RUYsMHhGRiwweEJELAotMHhCRiwweEZGLDB4RkIsMHhGRiwweEZGLDB4REYsMHhGNywweEZGLCAweEZDLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZELDB4QjMsMHhGRiwweEZGLDB4RUYsIDB4RkYsMHhGRiwweEJGLDB4RUQsMHhGRiwweEZCLDB4RUUsMHhGRSwKLTB4RkYsMHhGRiwweEVGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEI1LDB4RkYsMHhCNywweEZELDB4RkQsMHg2RSwweEZGLAotMHhGRiwweEZFLDB4RkQsMHgyRiwweEQ4LDB4RkUsMHhCRiwweDhGLCAweEVCLDB4RjksMHhGRSwweDNGLDB4RkYsMHhGQSwweENGLDB4RkYsCi0weEU3LDB4RDksMHhGQSwweEJGLDB4REYsMHg3NywweEZDLDB4RkIsIDB4M0YsMHhBQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwKLTB4RkYsMHhGRiwweEVFLDB4MUYsMHhGRiwweERGLDB4RjcsMHhGRiwgMHhGRiwweEZGLDB4NUYsMHg5NywweDM1LDB4QkYsMHg1RSwweEZFLAotMHhCRiwweEVGLDB4RkYsMHhGNywweEZELDB4RkYsMHhGRiwweEZBLCAweEJGLDB4RkYsMHhCRSwweDZGLDB4OUYsMHhFNywweEY4LDB4QkUsCi0weDJGLDB4OEIsMHg2NiwweDk0LDB4N0QsMHg5RCwweEU3LDB4RjksIDB4RkUsMHg3RiwweDlGLDB4RTcsMHhGMSwweDdGLDB4RkYsMHhGRiwKLTB4RkYsMHhGNywweEY1LDB4RkQsMHg3RiwweDVGLDB4RkIsMHhGRCwgMHg5RSwweEZGLDB4RkIsMHhGRSwweEZGLDB4RkYsMHhFRiwweEZGLAotMHhGRiwweEEwLDB4RkYsMHhGRiwweEZGLDB4QkYsMHhFRiwweEVCLCAweEZBLDB4RkUsMHhCRiwweEI3LDB4RjcsMHhGNywweEZGLDB4RkYsCi0weEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweERELDB4RkYsIDB4RkQsMHhGRiwweEZGLDB4RkYsMHhENywweEZGLDB4RkYsMHhGRiwKLTB4N0YsMHhGNSwweEZGLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRiwgMHhCRiwweEZGLDB4RkYsMHhBQiwweEZFLDB4RkIsMHhGRSwweEZGLAotMHhGNywweEFGLDB4RkYsMHhGRiwweERFLDB4RjcsMHhFQiwweDVGLCAweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwweEZGLDB4RkYsCi0weEIzLDB4RkYsMHhDOSwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RDYsMHhGRiwweEZGLDB4Q0IsMHhGRiwweEZGLDB4REYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQywweDhGLDB4RkYsMHhCQSwgMHhCRSwweEJGLDB4QUYsMHhFQiwweDc4LDB4RkUsMHhCNywweEFELAotMHgzQSwweEZFLDB4QjcsMHhBRiwweEVCLDB4N0EsMHhGRSwweEJGLCAweEFGLDB4RkYsMHg5RiwweEZGLDB4RkYsMHhERiwweEZDLDB4RkYsCi0weEZGLDB4RkUsMHhDMywweEZFLDB4RkYsMHhGRiwweDMzLDB4RkMsIDB4RkYsMHhCRiwweERGLDB4RjMsMHhGRiwweEZGLDB4QkIsMHg5RiwKLTB4RkYsMHhGRiwweEZGLDB4RUIsMHhERiwweEZGLDB4RkYsMHhBRiwgMHhGNywweDZGLDB4RjksMHhCRiwweEVGLDB4RkQsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhFMywweDdGLDB4RkYsMHhGRiwweEZGLCAweEZCLDB4RkYsMHhGRiwweEJGLDB4RkQsMHhGQiwweEY3LDB4RkYsCi0weERGLDB4RjcsMHhGRiwweEZFLDB4RUYsMHg1RiwweEJELDB4RkYsIDB4RkEsMHhGRiwweEY4LDB4RkYsMHhCRiwweEFGLDB4RkIsMHhGRSwKLTB4RkUsMHgzRiwweEVGLDB4RTgsMHhGRiwweERGLDB4RjMsMHhGRCwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RUQsMHhGRiwweEZCLAotMHhGRCwweEZGLDB4QUYsMHhGRiwweEZGLDB4RkUsMHhGRSwweEJGLCAweERCLDB4RkYsMHhGRiwweEZGLDB4QkYsMHhGRiwweERGLDB4RkYsCi0weEZELDB4RkYsMHhDQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4QkYsMHg2RiwweEZGLDB4N0YsMHhCNywweEIzLDB4RkYsMHhGRiwKLTB4REYsMHhGRiwweEZCLDB4RUYsMHhGRiwweEZGLDB4RkYsMHgwNywgMHhGRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RUQsMHhGRiwweEY1LAotMHg3QywweEZGLDB4N0YsMHhGRSwweEZGLDB4RkYsMHhFRiwweENGLCAweEZGLDB4RkIsMHhGRiwweEZGLDB4MkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RjMsMHhGRiwweEZCLDB4RkYsMHhGRSwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwKLTB4RkQsMHgxQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkUsMHg3QywweEZGLDB4RkYsMHhGRiwweEZGLAotMHhFRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhCRiwweDdGLCAweEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weERCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsIDB4RkYsMHhGRiwweEYwLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZCLDB4RkYsMHhERiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhCRiwweEZFLAotMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RUYsMHhGRSwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhFRiwweEZBLDB4QjUsMHhGRiwweEZGLDB4RkYsIDB4RjcsMHhGNywweEZGLDB4RkYsMHhGRiwweEZGLDB4REYsMHhGQiwKLTB4RkMsMHhGRiwweEZGLDB4RkUsMHhGRiwweDdGLDB4REYsMHhCRiwgMHhGRiwweENCLDB4QkYsMHhGOSwweEZFLDB4N0YsMHg5RiwweEU3LAotMHhGOSwweEZFLDB4N0YsMHg5NywweEUxLDB4RkUsMHg3OSwweDlGLCAweEU3LDB4RkQsMHhGRSwweDdGLDB4REYsMHhGRSwweDM3LDB4RkYsCi0weEZCLDB4REUsMHhERSwweEJELDB4RUYsMHhGMywweEZFLDB4RkIsIDB4QUYsMHhFQiwweEZFLDB4RkYsMHhGRiwweENGLDB4RkYsMHhGRSwKLTB4RkYsMHhCRiwweEZGLDB4OEYsMHhGRiwweEVGLDB4RkIsMHhGRSwgMHhGRiwweEJGLDB4RTcsMHhGOSwweDVFLDB4N0YsMHhFRiwweEZCLAotMHhEQSwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEZELCAweDFGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4REYsCi0weEZGLDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGNywweEZCLDB4N0YsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQywweDNGLDB4RkYsMHhCRiwKLTB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4N0IsMHg3RiwgMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QjUsMHhFRiwweEZCLAotMHhCRiwweEZBLDB4N0YsMHhGQywweEZGLDB4M0YsMHhDRiwweEYzLCAweEZDLDB4RkYsMHgzRiwweENGLDB4QkMsMHhGRiwweDNGLDB4RUYsCi0weEYzLDB4RkMsMHhGRSwweDNGLDB4Q0YsMHhGRiwweEVFLDB4RUYsIDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4NkEsMHhENywKLTB4QjcsMHhGQiwweEY4LDB4RkYsMHhCNywweEVGLDB4QkEsMHhGRSwgMHhGRiwweEJGLDB4N0YsMHhFOSwweEZGLDB4RjksMHg3RSwweDVGLAotMHg5NywweEU1LDB4RjksMHhGRSwweDdGLDB4QkYsMHhGOSwweDdFLCAweDVGLDB4OUYsMHhFNSwweEZCLDB4RkUsMHg1RiwweEI3LDB4RkYsCi0weEEzLDB4RkYsMHhGNywweEZELDB4RkYsMHg3RiwweERGLDB4RjcsIDB4RkQsMHhGRiwweDVFLDB4RjcsMHg3RCwweEZGLDB4NzcsMHhERiwKLTB4RjcsMHhGRCwweEZGLDB4N0YsMHhGRiwweEQ3LDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4REYsMHhGQiwweDdGLAotMHhGRiwweEZGLDB4RUYsMHhGRiwweEZFLDB4RkIsMHhGRiwweEZGLCAweEJGLDB4RkUsMHg4RiwweEZGLDB4REYsMHhGNywweEZELDB4RkQsCi0weDdGLDB4REYsMHhGNywweEZELDB4M0UsMHhERiwweEY1LDB4QkQsIDB4RkYsMHg3RiwweERGLDB4RjcsMHhGRCwweEY3LDB4RkYsMHg5RiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZELDB4RkYsMHhCRSwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRCwweDNGLDB4RkYsMHhERiwweEY3LCAweEZELDB4RkYsMHg3RiwweERGLDB4RjcsMHhGRCwweEZGLDB4Q0YsCi0weDc3LDB4RkMsMHhGRiwweDVGLDB4REYsMHhGNywweEZELDB4RkYsIDB4RjQsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZELDB4RkYsMHhGRiwweEZGLDB4RUUsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEVELDB4RkIsMHhGRiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhFOSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEQzLDB4RkYsMHhGRiwKLTB4QkYsMHgzRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhGMywgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkUsMHhGRiwweEY3LCAweEZGLDB4RkYsMHhGRiwweEZGLDB4MTcsMHhGRiwweEZGLDB4RkYsCi0weERGLDB4RkYsMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4REYsMHhERiwweEZGLDB4RkQsMHhGRiwweEZGLDB4REYsMHhGNywKLTB4RkYsMHg0RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZELAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZFLDB4RkYsMHg5RiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweDdGLDB4RkYsIDB4RkYsMHhGRiwweDdBLDB4M0YsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEYyLAotMHg3RiwweEZGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEY4LCAweEZFLDB4RkYsMHhCRiwweEZCLDB4RkUsMHhGRiwweDhGLDB4RUMsCi0weEZCLDB4RkUsMHhGRiwweEJGLDB4RjgsMHhGNywweEZFLDB4RkYsIDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRCwweEJGLDB4Q0YsMHhFQywKLTB4RkYsMHgzRiwweEVGLDB4REIsMHhGOCwweEZGLDB4QkYsMHhDRiwgMHhGRiwweEY5LDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGQiwweEZGLAotMHhGRiwweEZGLDB4RUYsMHhGQiwweERGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwweEJCLDB4RkYsCi0weEVGLDB4RkIsMHhGRSwweEVGLDB4QkYsMHhFRSwweEVCLDB4RkIsIDB4RkUsMHhGRiwweEVGLDB4RkUsMHhFRSwweEJGLDB4RkUsMHhFQiwKLTB4RkYsMHhFRiwweEZGLDB4MTcsMHhGRiwweDdFLDB4RUIsMHhCQiwgMHhGRSwweEJGLDB4QkUsMHhGQiwweEVGLDB4NUIsMHhGNywweEJELAotMHhGQiwweENGLDB4QkYsMHhCRiwweEJCLDB4RkIsMHg3RSwweENDLCAweEVGLDB4RkYKLQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZGFidXNiLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2RhYnVzYi5jCmluZGV4IDhkMWY4ZWUuLjQ4ZjRiOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZGFidXNiLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9kYWJ1c2IuYwpAQCAtMzgsOSArMzgsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9paGV4Lmg+CiAKICNpbmNsdWRlICJkYWJ1c2IuaCIKLSNpbmNsdWRlICJkYWJmaXJtd2FyZS5oIgogCiAvKgogICogVmVyc2lvbiBJbmZvcm1hdGlvbgpAQCAtMjk3LDcgKzI5OCw4IEBACiAJcmV0dXJuIHJldDsKIH0KIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotc3RhdGljIGludCBkYWJ1c2Jfd3JpdGVtZW0gKHBkYWJ1c2JfdCBzLCBpbnQgcG9zLCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuKQorc3RhdGljIGludCBkYWJ1c2Jfd3JpdGVtZW0gKHBkYWJ1c2JfdCBzLCBpbnQgcG9zLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLAorCQkJICAgIGludCBsZW4pCiB7CiAJaW50IHJldDsKIAl1bnNpZ25lZCBjaGFyICp0cmFuc2Zlcl9idWZmZXIgPSAga21hbGxvYyAobGVuLCBHRlBfS0VSTkVMKTsKQEAgLTMyNCwyNCArMzI2LDM1IEBACiBzdGF0aWMgaW50IGRhYnVzYl9sb2FkbWVtIChwZGFidXNiX3QgcywgY29uc3QgY2hhciAqZm5hbWUpCiB7CiAJaW50IHJldDsKLQlQSU5URUxfSEVYX1JFQ09SRCBwdHIgPSBmaXJtd2FyZTsKKwljb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogCiAJZGJnKCJFbnRlciBkYWJ1c2JfbG9hZG1lbSAoaW50ZXJuYWwpIik7CiAKKwlyZXQgPSByZXF1ZXN0X2loZXhfZmlybXdhcmUoJmZ3LCAiZGFidXNiL2Zpcm13YXJlLmZ3IiwgJnMtPnVzYmRldi0+ZGV2KTsKKwlpZiAocmV0KSB7CisJCWVycigiRmFpbGVkIHRvIGxvYWQgXCJkYWJ1c2IvZmlybXdhcmUuZndcIjogJWRcbiIsIHJldCk7CisJCWdvdG8gb3V0OworCX0KIAlyZXQgPSBkYWJ1c2JfODA1MV9yZXNldCAocywgMSk7Ci0Jd2hpbGUgKHB0ci0+VHlwZSA9PSAwKSB7CiAKLQkJZGJnKCJkYWJ1c2Jfd3JpdGVtZW06ICUwNFggJXAgJWQpIiwgcHRyLT5BZGRyZXNzLCBwdHItPkRhdGEsIHB0ci0+TGVuZ3RoKTsKKwlmb3IgKHJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilmdy0+ZGF0YTsgcmVjOworCSAgICAgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCWRiZygiZGFidXNiX3dyaXRlbWVtOiAlMDRYICVwICVkKSIsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCSAgICByZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CiAKLQkJcmV0ID0gZGFidXNiX3dyaXRlbWVtIChzLCBwdHItPkFkZHJlc3MsIHB0ci0+RGF0YSwgcHRyLT5MZW5ndGgpOworCQlyZXQgPSBkYWJ1c2Jfd3JpdGVtZW0ocywgYmUzMl90b19jcHUocmVjLT5hZGRyKSwgcmVjLT5kYXRhLAorCQkJCSAgICAgICBiZTE2X3RvX2NwdShyZWMtPmxlbikpOwogCQlpZiAocmV0IDwgMCkgewotCQkJZXJyKCJkYWJ1c2Jfd3JpdGVtZW0gZmFpbGVkICglZCAlMDRYICVwICVkKSIsIHJldCwgcHRyLT5BZGRyZXNzLCBwdHItPkRhdGEsIHB0ci0+TGVuZ3RoKTsKKwkJCWVycigiZGFidXNiX3dyaXRlbWVtIGZhaWxlZCAoJWQgJTA0WCAlcCAlZCkiLCByZXQsCisJCQkgICAgYmUzMl90b19jcHUocmVjLT5hZGRyKSwgcmVjLT5kYXRhLAorCQkJICAgIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CiAJCQlicmVhazsKIAkJfQotCQlwdHIrKzsKIAl9CiAJcmV0ID0gZGFidXNiXzgwNTFfcmVzZXQgKHMsIDApOwotCisJcmVsZWFzZV9maXJtd2FyZShmdyk7Cisgb3V0OgogCWRiZygiZGFidXNiX2xvYWRtZW06IGV4aXQiKTsKIAogCXJldHVybiByZXQ7CkBAIC0zNzYsOSArMzg5LDkgQEAKIHN0YXRpYyBpbnQgZGFidXNiX2ZwZ2FfZG93bmxvYWQgKHBkYWJ1c2JfdCBzLCBjb25zdCBjaGFyICpmbmFtZSkKIHsKIAlwYnVsa190cmFuc2Zlcl90IGIgPSBrbWFsbG9jIChzaXplb2YgKGJ1bGtfdHJhbnNmZXJfdCksIEdGUF9LRVJORUwpOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CiAJdW5zaWduZWQgaW50IGJsZW4sIG47CiAJaW50IHJldDsKLQl1bnNpZ25lZCBjaGFyICpidWYgPSBiaXRzdHJlYW07CiAKIAlkYmcoIkVudGVyIGRhYnVzYl9mcGdhX2Rvd25sb2FkIChpbnRlcm5hbCkiKTsKIApAQCAtMzg3LDEwICs0MDAsMTYgQEAKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCisJcmV0ID0gcmVxdWVzdF9maXJtd2FyZSgmZncsICJkYWJ1c2IvYml0c3RyZWFtLmJpbiIsICZzLT51c2JkZXYtPmRldik7CisJaWYgKHJldCkgeworCQllcnIoIkZhaWxlZCB0byBsb2FkIFwiZGFidXNiL2JpdHN0cmVhbS5iaW5cIjogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCiAJYi0+cGlwZSA9IDE7CiAJcmV0ID0gZGFidXNiX2ZwZ2FfY2xlYXIgKHMsIGIpOwogCW1kZWxheSAoMTApOwotCWJsZW4gPSBidWZbNzNdICsgKGJ1Zls3Ml0gPDwgOCk7CisJYmxlbiA9IGZ3LT5kYXRhWzczXSArIChmdy0+ZGF0YVs3Ml0gPDwgOCk7CiAKIAlkYmcoIkJpdHN0cmVhbSBsZW46ICVpIiwgYmxlbik7CiAKQEAgLTQwMiw3ICs0MjEsNyBAQAogCWZvciAobiA9IDA7IG4gPD0gYmxlbiArIDYwOyBuICs9IDYwKSB7CiAJCS8vIHNvbWUgY2Nsa3MgZm9yIHN0YXJ0dXAKIAkJYi0+c2l6ZSA9IDY0OwotCQltZW1jcHkgKGItPmRhdGEgKyA0LCBidWYgKyA3NCArIG4sIDYwKTsKKwkJbWVtY3B5IChiLT5kYXRhICsgNCwgZnctPmRhdGEgKyA3NCArIG4sIDYwKTsKIAkJcmV0ID0gZGFidXNiX2J1bGsgKHMsIGIpOwogCQlpZiAocmV0IDwgMCkgewogCQkJZXJyKCJkYWJ1c2JfYnVsayBmYWlsZWQuIik7CkBAIC00MTMsNiArNDMyLDcgQEAKIAogCXJldCA9IGRhYnVzYl9mcGdhX2luaXQgKHMsIGIpOwogCWtmcmVlIChiKTsKKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAogCWRiZygiZXhpdCBkYWJ1c2JfZnBnYV9kb3dubG9hZCIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtYXVkaW8uYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1hdWRpby5jCmluZGV4IDkyYjJhNmQuLjNjMDA2MTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1hdWRpby5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1hdWRpby5jCkBAIC0yNjgsNiArMjY4LDEyIEBACiAKIAlkcHJpbnRrKCJvcGVuaW5nIGRldmljZSBhbmQgdHJ5aW5nIHRvIGFjcXVpcmUgZXhjbHVzaXZlIGxvY2tcbiIpOwogCisJaWYgKCFkZXYpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJCVUc6IGVtMjh4eCBjYW4ndCBmaW5kIGRldmljZSBzdHJ1Y3QuIgorCQkJCSIgQ2FuJ3QgcHJvY2VlZCB3aXRoIG9wZW5cbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKIAkvKiBTZXRzIHZvbHVtZSwgbXV0ZSwgZXRjICovCiAKIAlkZXYtPm11dGUgPSAwOwpAQCAtNDE1LDYgKzQyMSwxMiBAQAogCXN0YXRpYyBpbnQgICAgICAgICAgZGV2bnI7CiAJaW50ICAgICAgICAgICAgICAgICByZXQsIGVycjsKIAorCWlmIChkZXYtPmhhc19hdWRpb19jbGFzcykgeworCQkvKiBUaGlzIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBleHRlbnNpb24gKGluIHRoaXMgY2FzZQorCQkgICB0aGUgZGV2aWNlIGlzIGV4cGVjdGluZyB0aGUgc25kLXVzYi1hdWRpbyBtb2R1bGUgKi8KKwkJcmV0dXJuIDA7CisJfQorCiAJcHJpbnRrKEtFUk5fSU5GTyAiZW0yOHh4LWF1ZGlvLmM6IHByb2JpbmcgZm9yIGVtMjh4MSAiCiAJCQkgIm5vbiBzdGFuZGFyZCB1c2JhdWRpb1xuIik7CiAJcHJpbnRrKEtFUk5fSU5GTyAiZW0yOHh4LWF1ZGlvLmM6IENvcHlyaWdodCAoQykgMjAwNiBNYXJrdXMgIgpAQCAtNDU4LDYgKzQ3MCwxMiBAQAogCWlmIChkZXYgPT0gTlVMTCkKIAkJcmV0dXJuIDA7CiAKKwlpZiAoZGV2LT5oYXNfYXVkaW9fY2xhc3MpIHsKKwkJLyogVGhpcyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZXh0ZW5zaW9uIChpbiB0aGlzIGNhc2UKKwkJICAgdGhlIGRldmljZSBpcyBleHBlY3RpbmcgdGhlIHNuZC11c2ItYXVkaW8gbW9kdWxlICovCisJCXJldHVybiAwOworCX0KKwogCWlmIChkZXYtPmFkZXYpIHsKIAkJc25kX2NhcmRfZnJlZShkZXYtPmFkZXYtPnNuZGNhcmQpOwogCQlrZnJlZShkZXYtPmFkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWNhcmRzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtY2FyZHMuYwppbmRleCAzZTRmM2M3Li44Y2JkYTQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtY2FyZHMuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtY2FyZHMuYwpAQCAtMTU3LDYgKzE1Nyw3IEBACiAJCS50ZGE5ODg3X2NvbmYgPSBUREE5ODg3X1BSRVNFTlQsCiAJCS50dW5lcl90eXBlICAgPSBUVU5FUl9YQzIwMjgsCiAJCS5tdHNfZmlybXdhcmUgPSAxLAorCQkuaGFzX2R2YiAgICAgICAgPSAxLAogCQkuZGVjb2RlciAgICAgID0gRU0yOFhYX1RWUDUxNTAsCiAJCS5pbnB1dCAgICAgICAgICA9IHsgewogCQkJLnR5cGUgICAgID0gRU0yOFhYX1ZNVVhfVEVMRVZJU0lPTiwKQEAgLTUyNCw2ICs1MjUsOSBAQAogCXJjID0gZW0yOHh4X3JlYWRfcmVnKGRldiwgRU0yOFhYX1IwQV9DSElQSUQpOwogCWlmIChyYyA+IDApIHsKIAkJc3dpdGNoIChyYykgeworCQljYXNlIENISVBfSURfRU0yODYwOgorCQkJZW0yOHh4X2luZm8oImNoaXAgSUQgaXMgZW0yODYwXG4iKTsKKwkJCWJyZWFrOwogCQljYXNlIENISVBfSURfRU0yODgzOgogCQkJZW0yOHh4X2luZm8oImNoaXAgSUQgaXMgZW0yODgyL2VtMjg4M1xuIik7CiAJCQlkZXYtPndhaXRfYWZ0ZXJfd3JpdGUgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWR2Yi5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWR2Yi5jCmluZGV4IDhjZjQ5ODMuLjBiMjMzM2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1kdmIuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtZHZiLmMKQEAgLTM4Miw2ICszODIsMTEgQEAKIAlpbnQgcmVzdWx0ID0gMDsKIAlzdHJ1Y3QgZW0yOHh4X2R2YiAqZHZiOwogCisJaWYgKCFkZXYtPmhhc19kdmIpIHsKKwkJLyogVGhpcyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZXh0ZW5zaW9uICovCisJCXJldHVybiAwOworCX0KKwogCWR2YiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBlbTI4eHhfZHZiKSwgR0ZQX0tFUk5FTCk7CiAKIAlpZiAoZHZiID09IE5VTEwpIHsKQEAgLTQ0NCw2ICs0NDksMTEgQEAKIAogc3RhdGljIGludCBkdmJfZmluaShzdHJ1Y3QgZW0yOHh4ICpkZXYpCiB7CisJaWYgKCFkZXYtPmhhc19kdmIpIHsKKwkJLyogVGhpcyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZXh0ZW5zaW9uICovCisJCXJldHVybiAwOworCX0KKwogCWlmIChkZXYtPmR2YikgewogCQl1bnJlZ2lzdGVyX2R2YihkZXYtPmR2Yik7CiAJCWRldi0+ZHZiID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1yZWcuaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1yZWcuaAppbmRleCA5MDU4YmVkLi5mYWMxYWIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtcmVnLmgKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LXJlZy5oCkBAIC04NCw1ICs4NCw2IEBACiAKIC8qIEZJWE1FOiBOZWVkIHRvIGJlIHBvcHVsYXRlZCB3aXRoIHRoZSBvdGhlciBjaGlwIElEJ3MgKi8KIGVudW0gZW0yOHh4X2NoaXBfaWQgeworCUNISVBfSURfRU0yODYwID0gMzQsCiAJQ0hJUF9JRF9FTTI4ODMgPSAzNiwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtdmlkZW8uYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC12aWRlby5jCmluZGV4IGZiMTYzZWMuLjI4NWJjNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC12aWRlby5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC12aWRlby5jCkBAIC0xODQ4LDMyICsxODQ4LDI4IEBACiAKIGludCBlbTI4eHhfcmVnaXN0ZXJfZXh0ZW5zaW9uKHN0cnVjdCBlbTI4eHhfb3BzICpvcHMpCiB7Ci0Jc3RydWN0IGVtMjh4eCAqaCwgKmRldiA9IE5VTEw7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGgsICZlbTI4eHhfZGV2bGlzdCwgZGV2bGlzdCkKLQkJZGV2ID0gaDsKKwlzdHJ1Y3QgZW0yOHh4ICpkZXYgPSBOVUxMOwogCiAJbXV0ZXhfbG9jaygmZW0yOHh4X2V4dGVuc2lvbl9kZXZsaXN0X2xvY2spOwogCWxpc3RfYWRkX3RhaWwoJm9wcy0+bmV4dCwgJmVtMjh4eF9leHRlbnNpb25fZGV2bGlzdCk7Ci0JaWYgKGRldikKLQkJb3BzLT5pbml0KGRldik7Ci0KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmVtMjh4eF9kZXZsaXN0LCBkZXZsaXN0KSB7CisJCWlmIChkZXYpCisJCQlvcHMtPmluaXQoZGV2KTsKKwl9CiAJcHJpbnRrKEtFUk5fSU5GTyAiRW0yOHh4OiBJbml0aWFsaXplZCAoJXMpIGV4dGVuc2lvblxuIiwgb3BzLT5uYW1lKTsKIAltdXRleF91bmxvY2soJmVtMjh4eF9leHRlbnNpb25fZGV2bGlzdF9sb2NrKTsKLQogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChlbTI4eHhfcmVnaXN0ZXJfZXh0ZW5zaW9uKTsKIAogdm9pZCBlbTI4eHhfdW5yZWdpc3Rlcl9leHRlbnNpb24oc3RydWN0IGVtMjh4eF9vcHMgKm9wcykKIHsKLQlzdHJ1Y3QgZW0yOHh4ICpoLCAqZGV2ID0gTlVMTDsKKwlzdHJ1Y3QgZW0yOHh4ICpkZXYgPSBOVUxMOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShoLCAmZW0yOHh4X2Rldmxpc3QsIGRldmxpc3QpCi0JCWRldiA9IGg7Ci0KLQlpZiAoZGV2KQotCQlvcHMtPmZpbmkoZGV2KTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmVtMjh4eF9kZXZsaXN0LCBkZXZsaXN0KSB7CisJCWlmIChkZXYpCisJCQlvcHMtPmZpbmkoZGV2KTsKKwl9CiAKIAltdXRleF9sb2NrKCZlbTI4eHhfZXh0ZW5zaW9uX2Rldmxpc3RfbG9jayk7CiAJcHJpbnRrKEtFUk5fSU5GTyAiRW0yOHh4OiBSZW1vdmVkICglcykgZXh0ZW5zaW9uXG4iLCBvcHMtPm5hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9vdjc2NzAuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vb3Y3NjcwLmMKaW5kZXggMmJjNmJkYy4uZDdiZmQzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9vdjc2NzAuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL292NzY3MC5jCkBAIC00MDYsOCArNDA2LDEwIEBACiAJaW50IHJldDsKIAogCXJldCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjLCByZWcpOwotCWlmIChyZXQgPj0gMCkKKwlpZiAocmV0ID49IDApIHsKIAkJKnZhbHVlID0gKHVuc2lnbmVkIGNoYXIpIHJldDsKKwkJcmV0ID0gMDsKKwl9CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9weGFfY2FtZXJhLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3B4YV9jYW1lcmEuYwppbmRleCA3Y2M4ZTliLi41ZWM1YmI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3B4YV9jYW1lcmEuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3B4YV9jYW1lcmEuYwpAQCAtMTAxOSwxMiArMTAxOSwxMiBAQAogCXN0cnVjdCBweGFfY2FtZXJhX2RldiAqcGNkZXY7CiAJc3RydWN0IHJlc291cmNlICpyZXM7CiAJdm9pZCBfX2lvbWVtICpiYXNlOwotCXVuc2lnbmVkIGludCBpcnE7CisJaW50IGlycTsKIAlpbnQgZXJyID0gMDsKIAogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoIXJlcyB8fCAhaXJxKSB7CisJaWYgKCFyZXMgfHwgaXJxIDwgMCkgewogCQllcnIgPSAtRU5PREVWOwogCQlnb3RvIGV4aXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtYWxzYS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtYWxzYS5jCmluZGV4IGJhMzA4MjQuLmYxMThkZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWFsc2EuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1hbHNhLmMKQEAgLTYxMyw5ICs2MTMsMTUgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwogCXNuZF9jYXJkX3NhYTcxMzRfcGNtX3QgKnBjbTsKIAlzbmRfY2FyZF9zYWE3MTM0X3QgKnNhYTcxMzQgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBzYWE3MTM0LT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXY7CiAJaW50IGFtdXgsIGVycjsKIAorCWlmICghc2FhNzEzNCkgeworCQlwcmludGsoS0VSTl9FUlIgIkJVRzogc2FhNzEzNCBjYW4ndCBmaW5kIGRldmljZSBzdHJ1Y3QuIgorCQkJCSIgQ2FuJ3QgcHJvY2VlZCB3aXRoIG9wZW5cbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisJZGV2ID0gc2FhNzEzNC0+ZGV2OwogCW11dGV4X2xvY2soJmRldi0+ZG1hc291bmQubG9jayk7CiAKIAlkZXYtPmRtYXNvdW5kLnJlYWRfY291bnQgID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWNhcmRzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1jYXJkcy5jCmluZGV4IGIxMTE5MDMuLjI2MThjZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWNhcmRzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtY2FyZHMuYwpAQCAtNDExNCwxMSArNDExNCw3IEBACiAJCS5yYWRpb190eXBlICAgICA9IFVOU0VULAogCQkudHVuZXJfYWRkcgk9IEFERFJfVU5TRVQsCiAJCS5yYWRpb19hZGRyCT0gQUREUl9VTlNFVCwKLQkJIC8qCi0JCSAgICBUT0RPOgogCQkgLm1wZWcgICAgICAgICAgID0gU0FBNzEzNF9NUEVHX0RWQiwKLQkJICovCi0KIAkJIC5pbnB1dHMgICAgICAgICA9IHt7CiAJCQkgLm5hbWUgPSBuYW1lX3R2LAogCQkJIC52bXV4ID0gMSwKQEAgLTQxNTcsNyArNDE1Myw3IEBACiAJCX0gfSwKIAkJLnJhZGlvID0gewogCQkJLm5hbWUgPSBuYW1lX3JhZGlvLAotCQkJLmFtdXggPSBMSU5FMSwKKwkJCS5hbXV4ID0gVFYsCiAJCX0sCiAJfSwKIAlbU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfTTExNV0gPSB7CkBAIC00MTY3LDYgKzQxNjMsNyBAQAogCQkucmFkaW9fdHlwZSAgICAgPSBVTlNFVCwKIAkJLnR1bmVyX2FkZHIJPSBBRERSX1VOU0VULAogCQkucmFkaW9fYWRkcgk9IEFERFJfVU5TRVQsCisJCS5tcGVnICAgICAgICAgICA9IFNBQTcxMzRfTVBFR19EVkIsCiAJCS5pbnB1dHMgICAgICAgICA9IHt7CiAJCQkubmFtZSA9IG5hbWVfdHYsCiAJCQkudm11eCA9IDEsCkBAIC01MzUxLDIyICs1MzQ4LDIxIEBACiB7CiAJc3dpdGNoIChjb21tYW5kKSB7CiAJY2FzZSBYQzIwMjhfVFVORVJfUkVTRVQ6Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQTU9ERTAgPj4gMiwgMHgwNmUyMDAwMCwgMHgwNmUyMDAwMCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDA2YTIwMDAwLCAweDA2YTIwMDAwKTsKLQkJbWRlbGF5KDI1MCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQTU9ERTAgPj4gMiwgMHgwNmUyMDAwMCwgMCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDA2YTIwMDAwLCAwKTsKLQkJbWRlbGF5KDI1MCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQTU9ERTAgPj4gMiwgMHgwNmUyMDAwMCwgMHgwNmUyMDAwMCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDA2YTIwMDAwLCAweDA2YTIwMDAwKTsKLQkJbWRlbGF5KDI1MCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzM19BTkFMT0dfSU9fU0VMRUNUID4+IDIsIDB4MDIsIDB4MDIpOwotCQlzYWFfYW5kb3JsKFNBQTcxMzRfQU5BTE9HX0lOX0NUUkwxID4+IDIsIDB4ODEsIDB4ODEpOwotCQlzYWFfYW5kb3JsKFNBQTcxMzRfQVVESU9fQ0xPQ0swID4+IDIsIDB4MDMxODdkZTcsIDB4MDMxODdkZTcpOwotCQlzYWFfYW5kb3JsKFNBQTcxMzRfQVVESU9fUExMX0NUUkwgPj4gMiwgMHgwMywgMHgwMyk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9BVURJT19DTE9DS1NfUEVSX0ZJRUxEMCA+PiAyLAotCQkJICAgMHgwMDAxZTAwMCwgMHgwMDAxZTAwMCk7Ci0JCXJldHVybiAwOworCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUFNUQVRVUzAgPj4gMiwgMHgwMDAwODAwMCwgMHgwMDAwMDAwMCk7CisJCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDAwMDA4MDAwLCAweDAwMDA4MDAwKTsKKwkJc3dpdGNoIChkZXYtPmJvYXJkKSB7CisJCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQ0FSREJVU181MDY6CisJCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjMsIDApOworCQkJbXNsZWVwKDEwKTsKKwkJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMywgMSk7CisJCWJyZWFrOworCQljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6CisJCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjEsIDApOworCQkJbXNsZWVwKDEwKTsKKwkJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMSwgMSk7CisJCWJyZWFrOworCQl9CisJcmV0dXJuIDA7CiAJfQogCXJldHVybiAtRUlOVkFMOwogfQpAQCAtNTU1Myw5ICs1NTQ5LDcgQEAKIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BTVEFUVVMwID4+IDIsIDB4MDgwMDAwMDAsIDB4MDAwMDAwMDApOwogCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0NBUkRCVVM6Ci0JY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9DQVJEQlVTXzUwNjoKIAljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX00xMTU6Ci0JY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9BMTZEOgogCQkvKiBwb3dlci1kb3duIHR1bmVyIGNoaXAgKi8KIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BNT0RFMCA+PiAyLCAgIDB4ZmZmZmZmZmYsIDApOwogCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUFNUQVRVUzAgPj4gMiwgMHhmZmZmZmZmZiwgMCk7CkBAIC01NTY1LDYgKzU1NTksMTggQEAKIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BTVEFUVVMwID4+IDIsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOwogCQltc2xlZXAoMTApOwogCQlicmVhazsKKwljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0NBUkRCVVNfNTA2OgorCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjMsIDApOworCQltc2xlZXAoMTApOworCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjMsIDEpOworCQlicmVhazsKKwljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6CisJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMSwgMCk7CisJCW1zbGVlcCgxMCk7CisJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMSwgMSk7CisJCW1zbGVlcCgxKTsKKwkJZGV2LT5oYXNfcmVtb3RlID0gU0FBNzEzNF9SRU1PVEVfR1BJTzsKKwkJYnJlYWs7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX0JFSE9MRF9DT0xVTUJVU19UVkZNOgogCQkvKiBwb3dlci1kb3duIHR1bmVyIGNoaXAgKi8KIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BNT0RFMCA+PiAyLCAgIDB4MDAwQTgwMDQsIDB4MDAwQTgwMDQpOwpAQCAtNTYxNSw3ICs1NjIxLDggQEAKIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BNT0RFMCA+PiAyLCAgIDB4ODAwNDAxMDAsIDB4ODAwNDAxMDApOwogCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUFNUQVRVUzAgPj4gMiwgMHg4MDA0MDEwMCwgMHgwMDA0MDEwMCk7CiAJCXByaW50aygiJXM6ICVzOiBoeWJyaWQgYW5hbG9nL2R2YiBjYXJkXG4iCi0JCSAgICAgICAiJXM6IFNvcnJ5LCBvbmx5IHRoZSBhbmFsb2cgaW5wdXRzIGFyZSBzdXBwb3J0ZWQgZm9yIG5vdy5cbiIsCisJCSAgICAgICAiJXM6IFNvcnJ5LCBvbmx5IGFuYWxvZyBzLXZpZGVvIGFuZCBjb21wb3NpdGUgaW5wdXQgIgorCQkgICAgICAgImFyZSBzdXBwb3J0ZWQgZm9yIG5vdy5cbiIsCiAJCQlkZXYtPm5hbWUsIGNhcmQoZGV2KS5uYW1lLCBkZXYtPm5hbWUpOwogCQlicmVhazsKIAl9CkBAIC01Njc1LDYgKzU2ODIsNyBAQAogCiAJCXN3aXRjaCAoZGV2LT5ib2FyZCkgewogCQljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6CisJCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQ0FSREJVU181MDY6CiAJCQljdGwuZGVtb2QgPSBYQzMwMjhfRkVfWkFSTElOSzQ1NjsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtZHZiLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1kdmIuYwppbmRleCA0NjlmOTNhLi4zNDFiMTAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1kdmIuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1kdmIuYwpAQCAtMTUzLDEyICsxNTMsMTIgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtdDM1Ml9hdmVyX2ExNmRfaW5pdChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSkKK3N0YXRpYyBpbnQgbXQzNTJfYXZlcm1lZGlhX3hjMzAyOF9pbml0KHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlKQogewotCXN0YXRpYyB1OCBjbG9ja19jb25maWcgW10gID0geyBDTE9DS19DVEwsICAweDM4LCAweDJkIH07Ci0Jc3RhdGljIHU4IHJlc2V0IFtdICAgICAgICAgPSB7IFJFU0VULCAgICAgIDB4ODAgfTsKLQlzdGF0aWMgdTggYWRjX2N0bF8xX2NmZyBbXSA9IHsgQURDX0NUTF8xLCAgMHg0MCB9OwotCXN0YXRpYyB1OCBhZ2NfY2ZnIFtdICAgICAgID0geyBBR0NfVEFSR0VULCAweDI4LCAweGEwIH07CisJc3RhdGljIHU4IGNsb2NrX2NvbmZpZyBbXSAgPSB7IENMT0NLX0NUTCwgMHgzOCwgMHgyZCB9OworCXN0YXRpYyB1OCByZXNldCBbXSAgICAgICAgID0geyBSRVNFVCwgMHg4MCB9OworCXN0YXRpYyB1OCBhZGNfY3RsXzFfY2ZnIFtdID0geyBBRENfQ1RMXzEsIDB4NDAgfTsKKwlzdGF0aWMgdTggYWdjX2NmZyBbXSAgICAgICA9IHsgQUdDX1RBUkdFVCwgMHhlIH07CiAJc3RhdGljIHU4IGNhcHRfcmFuZ2VfY2ZnW10gPSB7IENBUFRfUkFOR0UsIDB4MzMgfTsKIAogCW10MzUyX3dyaXRlKGZlLCBjbG9ja19jb25maWcsICAgc2l6ZW9mKGNsb2NrX2NvbmZpZykpOwpAQCAtMTY3LDEyICsxNjcsOSBAQAogCW10MzUyX3dyaXRlKGZlLCBhZGNfY3RsXzFfY2ZnLCAgc2l6ZW9mKGFkY19jdGxfMV9jZmcpKTsKIAltdDM1Ml93cml0ZShmZSwgYWdjX2NmZywgICAgICAgIHNpemVvZihhZ2NfY2ZnKSk7CiAJbXQzNTJfd3JpdGUoZmUsIGNhcHRfcmFuZ2VfY2ZnLCBzaXplb2YoY2FwdF9yYW5nZV9jZmcpKTsKLQogCXJldHVybiAwOwogfQogCi0KLQogc3RhdGljIGludCBtdDM1Ml9waW5uYWNsZV90dW5lcl9zZXRfcGFyYW1zKHN0cnVjdCBkdmJfZnJvbnRlbmQqIGZlLAogCQkJCQkgICBzdHJ1Y3QgZHZiX2Zyb250ZW5kX3BhcmFtZXRlcnMqIHBhcmFtcykKIHsKQEAgLTIxNSwxNCArMjEyLDEwIEBACiAJLmRlbW9kX2luaXQgICAgPSBtdDM1Ml9hdmVyNzc3X2luaXQsCiB9OwogCi1zdGF0aWMgc3RydWN0IG10MzUyX2NvbmZpZyBhdmVybWVkaWFfMTZkID0gewotCS5kZW1vZF9hZGRyZXNzID0gMHhmLAotCS5kZW1vZF9pbml0ICAgID0gbXQzNTJfYXZlcl9hMTZkX2luaXQsCi19OwotCi1zdGF0aWMgc3RydWN0IG10MzUyX2NvbmZpZyBhdmVybWVkaWFfZTUwNnJfbXQzNTJfZGV2ID0geworc3RhdGljIHN0cnVjdCBtdDM1Ml9jb25maWcgYXZlcm1lZGlhX3hjMzAyOF9tdDM1Ml9kZXYgPSB7CiAJLmRlbW9kX2FkZHJlc3MgICA9ICgweDFlID4+IDEpLAogCS5ub190dW5lciAgICAgICAgPSAxLAorCS5kZW1vZF9pbml0ICAgICAgPSBtdDM1Ml9hdmVybWVkaWFfeGMzMDI4X2luaXQsCiB9OwogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTk3NSw5ICs5NjgsMTAgQEAKIAkJfQogCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6Ci0JCWRwcmludGsoImF2ZXJ0diBBMTZEIGR2YiBzZXR1cFxuIik7Ci0JCWRldi0+ZHZiLmZyb250ZW5kID0gZHZiX2F0dGFjaChtdDM1Ml9hdHRhY2gsICZhdmVybWVkaWFfMTZkLAotCQkJCQkgICAgICAgJmRldi0+aTJjX2FkYXApOworCQlkcHJpbnRrKCJBdmVyTWVkaWEgQTE2RCBkdmIgc2V0dXBcbiIpOworCQlkZXYtPmR2Yi5mcm9udGVuZCA9IGR2Yl9hdHRhY2gobXQzNTJfYXR0YWNoLAorCQkJCQkJJmF2ZXJtZWRpYV94YzMwMjhfbXQzNTJfZGV2LAorCQkJCQkJJmRldi0+aTJjX2FkYXApOwogCQlhdHRhY2hfeGMzMDI4ID0gMTsKIAkJYnJlYWs7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX01ENzEzNDoKQEAgLTEwOTEsNyArMTA4NSw4IEBACiAJCQkJCWFkc190ZWNoX2R1b19jb25maWcudHVuZXJfYWRkcmVzcyk7CiAJCQkJZ290byBkZXR0YWNoX2Zyb250ZW5kOwogCQkJfQotCQl9CisJCX0gZWxzZQorCQkJd3ByaW50aygiZmFpbGVkIHRvIGF0dGFjaCB0ZGExMDA0NlxuIik7CiAJCWJyZWFrOwogCWNhc2UgU0FBNzEzNF9CT0FSRF9URVZJT05fRFZCVF8yMjBSRjoKIAkJaWYgKGNvbmZpZ3VyZV90ZGE4Mjd4X2ZlKGRldiwgJnRldmlvbl9kdmJ0MjIwcmZfY29uZmlnLApAQCAtMTI2MCwxMSArMTI1NSwxNCBAQAogCQkJZ290byBkZXR0YWNoX2Zyb250ZW5kOwogCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0NBUkRCVVNfNTA2OgorCQlkcHJpbnRrKCJBdmVyTWVkaWEgRTUwNlIgZHZiIHNldHVwXG4iKTsKKwkJc2FhNzEzNF9zZXRfZ3BpbyhkZXYsIDI1LCAwKTsKKwkJbXNsZWVwKDEwKTsKKwkJc2FhNzEzNF9zZXRfZ3BpbyhkZXYsIDI1LCAxKTsKIAkJZGV2LT5kdmIuZnJvbnRlbmQgPSBkdmJfYXR0YWNoKG10MzUyX2F0dGFjaCwKLQkJCQkJICAgICAgICZhdmVybWVkaWFfZTUwNnJfbXQzNTJfZGV2LAotCQkJCQkgICAgICAgJmRldi0+aTJjX2FkYXApOworCQkJCQkJJmF2ZXJtZWRpYV94YzMwMjhfbXQzNTJfZGV2LAorCQkJCQkJJmRldi0+aTJjX2FkYXApOwogCQlhdHRhY2hfeGMzMDI4ID0gMTsKLQkJYnJlYWs7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX01ENzEzNF9CUklER0VfMjoKIAkJZGV2LT5kdmIuZnJvbnRlbmQgPSBkdmJfYXR0YWNoKHRkYTEwMDg2X2F0dGFjaCwKIAkJCQkJCSZzZDE4NzhfNG0sICZkZXYtPmkyY19hZGFwKTsKQEAgLTEzMzgsNyArMTMzNiw4IEBACiAJcmV0dXJuIHJldDsKIAogZGV0dGFjaF9mcm9udGVuZDoKLQlkdmJfZnJvbnRlbmRfZGV0YWNoKGRldi0+ZHZiLmZyb250ZW5kKTsKKwlpZiAoZGV2LT5kdmIuZnJvbnRlbmQpCisJCWR2Yl9mcm9udGVuZF9kZXRhY2goZGV2LT5kdmIuZnJvbnRlbmQpOwogCWRldi0+ZHZiLmZyb250ZW5kID0gTlVMTDsKIAogCXJldHVybiAtMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWVtcHJlc3MuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWVtcHJlc3MuYwppbmRleCA4MTQzMWVlLi4zYWU3MWEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1lbXByZXNzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtZW1wcmVzcy5jCkBAIC0xMTAsOSArMTEwLDEwIEBACiB7CiAJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKKwltdXRleF9sb2NrKCZkZXYtPmVtcHJlc3NfdHNxLnZiX2xvY2spOworCiAJdmlkZW9idWZfc3RvcCgmZGV2LT5lbXByZXNzX3RzcSk7CiAJdmlkZW9idWZfbW1hcF9mcmVlKCZkZXYtPmVtcHJlc3NfdHNxKTsKLQlkZXYtPmVtcHJlc3NfdXNlcnMtLTsKIAogCS8qIHN0b3AgdGhlIGVuY29kZXIgKi8KIAl0c19yZXNldF9lbmNvZGVyKGRldik7CkBAIC0xMjEsNiArMTIyLDEwIEBACiAJc2FhX3dyaXRlYihTQUE3MTM0X0FVRElPX01VVEVfQ1RSTCwKIAkJc2FhX3JlYWRiKFNBQTcxMzRfQVVESU9fTVVURV9DVFJMKSB8ICgxIDw8IDYpKTsKIAorCWRldi0+ZW1wcmVzc191c2Vycy0tOworCisJbXV0ZXhfdW5sb2NrKCZkZXYtPmVtcHJlc3NfdHNxLnZiX2xvY2spOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTIxOCw4ICsyMjMsNyBAQAogc3RhdGljIGludCBlbXByZXNzX2dfZm10X2NhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAkJCQlzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYpCiB7Ci0Jc3RydWN0IHNhYTcxMzRfZmggKmZoID0gcHJpdjsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZoLT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKIAlzYWE3MTM0X2kyY19jYWxsX2NsaWVudHMoZGV2LCBWSURJT0NfR19GTVQsIGYpOwogCkBAIC0yMzIsOCArMjM2LDcgQEAKIHN0YXRpYyBpbnQgZW1wcmVzc19zX2ZtdF9jYXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJCQkJc3RydWN0IHY0bDJfZm9ybWF0ICpmKQogewotCXN0cnVjdCBzYWE3MTM0X2ZoICpmaCA9IHByaXY7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaC0+ZGV2OworCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJc2FhNzEzNF9pMmNfY2FsbF9jbGllbnRzKGRldiwgVklESU9DX1NfRk1ULCBmKTsKIApAQCAtMjQ3LDggKzI1MCw3IEBACiBzdGF0aWMgaW50IGVtcHJlc3NfcmVxYnVmcyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAkJCQkJc3RydWN0IHY0bDJfcmVxdWVzdGJ1ZmZlcnMgKnApCiB7Ci0Jc3RydWN0IHNhYTcxMzRfZmggKmZoID0gcHJpdjsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZoLT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKIAlyZXR1cm4gdmlkZW9idWZfcmVxYnVmcygmZGV2LT5lbXByZXNzX3RzcSwgcCk7CiB9CkBAIC0yNTYsMjQgKzI1OCwyMSBAQAogc3RhdGljIGludCBlbXByZXNzX3F1ZXJ5YnVmKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCQkJCQlzdHJ1Y3QgdjRsMl9idWZmZXIgKmIpCiB7Ci0Jc3RydWN0IHNhYTcxMzRfZmggKmZoID0gcHJpdjsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZoLT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKIAlyZXR1cm4gdmlkZW9idWZfcXVlcnlidWYoJmRldi0+ZW1wcmVzc190c3EsIGIpOwogfQogCiBzdGF0aWMgaW50IGVtcHJlc3NfcWJ1ZihzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwgc3RydWN0IHY0bDJfYnVmZmVyICpiKQogewotCXN0cnVjdCBzYWE3MTM0X2ZoICpmaCA9IHByaXY7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaC0+ZGV2OworCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJcmV0dXJuIHZpZGVvYnVmX3FidWYoJmRldi0+ZW1wcmVzc190c3EsIGIpOwogfQogCiBzdGF0aWMgaW50IGVtcHJlc3NfZHFidWYoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsIHN0cnVjdCB2NGwyX2J1ZmZlciAqYikKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXJldHVybiB2aWRlb2J1Zl9kcWJ1ZigmZGV2LT5lbXByZXNzX3RzcSwgYiwKIAkJCQlmaWxlLT5mX2ZsYWdzICYgT19OT05CTE9DSyk7CkBAIC0yODIsOCArMjgxLDcgQEAKIHN0YXRpYyBpbnQgZW1wcmVzc19zdHJlYW1vbihzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAkJCQkJZW51bSB2NGwyX2J1Zl90eXBlIHR5cGUpCiB7Ci0Jc3RydWN0IHNhYTcxMzRfZmggKmZoID0gcHJpdjsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZoLT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKIAlyZXR1cm4gdmlkZW9idWZfc3RyZWFtb24oJmRldi0+ZW1wcmVzc190c3EpOwogfQpAQCAtMjkxLDggKzI4OSw3IEBACiBzdGF0aWMgaW50IGVtcHJlc3Nfc3RyZWFtb2ZmKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCQkJCQllbnVtIHY0bDJfYnVmX3R5cGUgdHlwZSkKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXJldHVybiB2aWRlb2J1Zl9zdHJlYW1vZmYoJmRldi0+ZW1wcmVzc190c3EpOwogfQpAQCAtMzAwLDggKzI5Nyw3IEBACiBzdGF0aWMgaW50IGVtcHJlc3Nfc19leHRfY3RybHMoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJCQkgICAgICAgc3RydWN0IHY0bDJfZXh0X2NvbnRyb2xzICpjdHJscykKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCS8qIGNvdW50ID09IDAgaXMgYWJ1c2VkIGluIHNhYTY3NTJocy5jLCBzbyB0aGF0IHNwZWNpYWwKIAkJY2FzZSBpcyBoYW5kbGVkIGhlcmUgZXhwbGljaXRseS4gKi8KQEAgLTMyMCw4ICszMTYsNyBAQAogc3RhdGljIGludCBlbXByZXNzX2dfZXh0X2N0cmxzKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCQkJICAgICAgIHN0cnVjdCB2NGwyX2V4dF9jb250cm9scyAqY3RybHMpCiB7Ci0Jc3RydWN0IHNhYTcxMzRfZmggKmZoID0gcHJpdjsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZoLT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKIAlpZiAoY3RybHMtPmN0cmxfY2xhc3MgIT0gVjRMMl9DVFJMX0NMQVNTX01QRUcpCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtaW5wdXQuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWlucHV0LmMKaW5kZXggOTE5NjMyYi4uNzZlNjUwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtaW5wdXQuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pbnB1dC5jCkBAIC0zMjMsNiArMzIzLDE1IEBACiAJCXNhYV9zZXRiKFNBQTcxMzRfR1BJT19HUE1PREUxLCAweDEpOwogCQlzYWFfc2V0YihTQUE3MTM0X0dQSU9fR1BTVEFUVVMxLCAweDEpOwogCQlicmVhazsKKwljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6CisJCWlyX2NvZGVzICAgICA9IGlyX2NvZGVzX2F2ZXJtZWRpYV9hMTZkOworCQltYXNrX2tleWNvZGUgPSAweDAyRjIwMDsKKwkJbWFza19rZXlkb3duID0gMHgwMDA0MDA7CisJCXBvbGxpbmcgICAgICA9IDUwOyAvKiBtcyAqLworCQkvKiBXaXRob3V0IHRoaXMgd2Ugd29uJ3QgcmVjZWl2ZSBrZXkgdXAgZXZlbnRzICovCisJCXNhYV9zZXRiKFNBQTcxMzRfR1BJT19HUE1PREUxLCAweDEpOworCQlzYWFfc2V0YihTQUE3MTM0X0dQSU9fR1BTVEFUVVMxLCAweDEpOworCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfS1dPUkxEX1RFUk1JTkFUT1I6CiAJCWlyX2NvZGVzICAgICA9IGlyX2NvZGVzX3BpeGVsdmlldzsKIAkJbWFza19rZXljb2RlID0gMHgwMDAwMWY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NvY19jYW1lcmEuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc29jX2NhbWVyYS5jCmluZGV4IGExYjkyNDQuLmQwMTViZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc29jX2NhbWVyYS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc29jX2NhbWVyYS5jCkBAIC03NjMsMTUgKzc2Myw2IEBACiAJLm93bmVyCT0gVEhJU19NT0RVTEUsCiB9OwogCi0vKgotICogSW1hZ2UgY2FwdHVyZSBob3N0IC0gdGhpcyBpcyBhIGhvc3QgZGV2aWNlLCBub3QgYSBidXMgZGV2aWNlLCBzbywKLSAqIG5vIGJ1cyByZWZlcmVuY2UsIG5vIHByb2JpbmcuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgY2xhc3Mgc29jX2NhbWVyYV9ob3N0X2NsYXNzID0gewotCS5vd25lcgkJPSBUSElTX01PRFVMRSwKLQkubmFtZQkJPSAiY2FtZXJhX2hvc3QiLAotfTsKLQogc3RhdGljIHZvaWQgZHVtbXlfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiB9CkBAIC04MDEsNyArNzkyLDYgQEAKIAogCS8qIE51bWJlciBtaWdodCBiZSBlcXVhbCB0byB0aGUgcGxhdGZvcm0gZGV2aWNlIElEICovCiAJc3ByaW50ZihpY2ktPmRldi5idXNfaWQsICJjYW1lcmFfaG9zdCVkIiwgaWNpLT5ucik7Ci0JaWNpLT5kZXYuY2xhc3MgPSAmc29jX2NhbWVyYV9ob3N0X2NsYXNzOwogCiAJbXV0ZXhfbG9jaygmbGlzdF9sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGl4LCAmaG9zdHMsIGxpc3QpIHsKQEAgLTEwMDMsMTQgKzk5Myw5IEBACiAJcmV0ID0gZHJpdmVyX3JlZ2lzdGVyKCZpY19kcnYpOwogCWlmIChyZXQpCiAJCWdvdG8gZWRydnI7Ci0JcmV0ID0gY2xhc3NfcmVnaXN0ZXIoJnNvY19jYW1lcmFfaG9zdF9jbGFzcyk7Ci0JaWYgKHJldCkKLQkJZ290byBlY2xyOwogCiAJcmV0dXJuIDA7CiAKLWVjbHI6Ci0JZHJpdmVyX3VucmVnaXN0ZXIoJmljX2Rydik7CiBlZHJ2cjoKIAlidXNfdW5yZWdpc3Rlcigmc29jX2NhbWVyYV9idXNfdHlwZSk7CiAJcmV0dXJuIHJldDsKQEAgLTEwMTgsNyArMTAwMyw2IEBACiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBzb2NfY2FtZXJhX2V4aXQodm9pZCkKIHsKLQljbGFzc191bnJlZ2lzdGVyKCZzb2NfY2FtZXJhX2hvc3RfY2xhc3MpOwogCWRyaXZlcl91bnJlZ2lzdGVyKCZpY19kcnYpOwogCWJ1c191bnJlZ2lzdGVyKCZzb2NfY2FtZXJhX2J1c190eXBlKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXNidmlkZW8vdmljYW0uYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXNidmlkZW8vdmljYW0uYwppbmRleCAxN2Y1NDJkLi40MGQwNTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3VzYnZpZGVvL3ZpY2FtLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91c2J2aWRlby92aWNhbS5jCkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaWhleC5oPgogI2luY2x1ZGUgInVzYnZpZGVvLmgiCiAKIC8vICNkZWZpbmUgVklDQU1fREVCVUcKQEAgLTcwLDI4NCArNzIsNiBAQAogCiAjZGVmaW5lIFZJQ0FNX0hFQURFUl9TSVpFICAgICAgIDY0CiAKLS8qIE5vdCBzdXJlIHdoYXQgYWxsIHRoZSBieXRlcyBpbiB0aGVzZSBjaGFyCi0gKiBhcnJheXMgZG8sIGJ1dCB0aGV5J3JlIG5lY2Vzc2FyeSB0byBtYWtlCi0gKiB0aGUgY2FtZXJhIHdvcmsuCi0gKi8KLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc2V0dXAxW10gPSB7Ci0JMHhCNiwgMHhDMywgMHgxRiwgMHgwMCwgMHgwMiwgMHg2NCwgMHhFNywgMHg2NywKLQkweEZELCAweEZGLCAweDBFLCAweEMwLCAweEU3LCAweDA5LCAweERFLCAweDAwLAotCTB4OEUsIDB4MDAsIDB4QzAsIDB4MDksIDB4NDAsIDB4MDMsIDB4QzAsIDB4MTcsCi0JMHg0NCwgMHgwMywgMHg0QiwgMHhBRiwgMHhDMCwgMHgwNywgMHgwMCwgMHgwMCwKLQkweDRCLCAweEFGLCAweDk3LCAweENGLCAweDAwLCAweDAwCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzZXR1cDJbXSA9IHsKLQkweEI2LCAweEMzLCAweDAzLCAweDAwLCAweDAzLCAweDY0LCAweDE4LCAweDAwLAotCTB4MDAsIDB4MDAKLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHNldHVwM1tdID0gewotCTB4QjYsIDB4QzMsIDB4MDEsIDB4MDAsIDB4MDYsIDB4NjQsIDB4MDAsIDB4MDAKLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHNldHVwNFtdID0gewotCTB4QjYsIDB4QzMsIDB4OEYsIDB4MDYsIDB4MDIsIDB4NjQsIDB4RTcsIDB4MDcsCi0JMHgwMCwgMHgwMCwgMHgwOCwgMHhDMCwgMHhFNywgMHgwNywgMHgwMCwgMHgwMCwKLQkweDNFLCAweEMwLCAweEU3LCAweDA3LCAweDU0LCAweDAxLCAweEFBLCAweDAwLAotCTB4RTcsIDB4MDcsIDB4QzgsIDB4MDUsIDB4QjYsIDB4MDAsIDB4RTcsIDB4MDcsCi0JMHg0MiwgMHgwMSwgMHhEMiwgMHgwMCwgMHhFNywgMHgwNywgMHg3QywgMHgwMCwKLQkweDE2LCAweDAwLCAweEU3LCAweDA3LCAweDU2LCAweDAwLCAweDE4LCAweDAwLAotCTB4RTcsIDB4MDcsIDB4MDYsIDB4MDAsIDB4OTIsIDB4QzAsIDB4RTcsIDB4MDcsCi0JMHgwMCwgMHgwMCwgMHgxRSwgMHhDMCwgMHhFNywgMHgwNywgMHhGRiwgMHhGRiwKLQkweDIyLCAweEMwLCAweEU3LCAweDA3LCAweDA0LCAweDAwLCAweDI0LCAweEMwLAotCTB4RTcsIDB4MDcsIDB4RUMsIDB4MjcsIDB4MjgsIDB4QzAsIDB4RTcsIDB4MDcsCi0JMHgxNiwgMHgwMSwgMHg4RSwgMHgwMCwgMHhFNywgMHg4NywgMHgwMSwgMHgwMCwKLQkweDBFLCAweEMwLCAweDk3LCAweENGLCAweEQ3LCAweDA5LCAweDAwLCAweEMwLAotCTB4RTcsIDB4NzcsIDB4MDEsIDB4MDAsIDB4OTIsIDB4QzAsIDB4MDksIDB4QzEsCi0JMHhFNywgMHgwOSwgMHhGRSwgMHgwNSwgMHgyNCwgMHgwMSwgMHhFNywgMHgwOSwKLQkweDA0LCAweDA2LCAweDI2LCAweDAxLCAweEU3LCAweDA3LCAweDA3LCAweDAwLAotCTB4OTIsIDB4QzAsIDB4RTcsIDB4MDUsIDB4MDAsIDB4QzAsIDB4QzAsIDB4REYsCi0JMHg5NywgMHhDRiwgMHgxNywgMHgwMCwgMHg1NywgMHgwMCwgMHgxNywgMHgwMiwKLQkweEQ3LCAweDA5LCAweDAwLCAweEMwLCAweEU3LCAweDc3LCAweDAxLCAweDAwLAotCTB4OTIsIDB4QzAsIDB4MEEsIDB4QzEsIDB4RTcsIDB4NTcsIDB4RkYsIDB4RkYsCi0JMHhGQSwgMHgwNSwgMHgwRCwgMHhDMCwgMHhFNywgMHg1NywgMHgwMCwgMHgwMCwKLQkweEZBLCAweDA1LCAweDBGLCAweEMwLCAweDlGLCAweEFGLCAweEM2LCAweDAwLAotCTB4RTcsIDB4MDUsIDB4MDAsIDB4QzAsIDB4QzgsIDB4MDUsIDB4QzEsIDB4MDUsCi0JMHhDMCwgMHgwNSwgMHhDMCwgMHhERiwgMHg5NywgMHhDRiwgMHgyNywgMHhEQSwKLQkweEZBLCAweDA1LCAweEVGLCAweDA3LCAweDAxLCAweDAwLCAweDBCLCAweDA2LAotCTB4NzMsIDB4Q0YsIDB4OUYsIDB4QUYsIDB4NzgsIDB4MDEsIDB4OUYsIDB4QUYsCi0JMHgxQSwgMHgwMywgMHg2RSwgMHhDRiwgMHhFNywgMHgwOSwgMHhGQywgMHgwNSwKLQkweDI0LCAweDAxLCAweEU3LCAweDA5LCAweDAyLCAweDA2LCAweDI2LCAweDAxLAotCTB4RTcsIDB4MDcsIDB4MDcsIDB4MDAsIDB4OTIsIDB4QzAsIDB4RTcsIDB4MDksCi0JMHhGQywgMHgwNSwgMHhGRSwgMHgwNSwgMHhFNywgMHgwOSwgMHgwMiwgMHgwNiwKLQkweDA0LCAweDA2LCAweEU3LCAweDA5LCAweDAwLCAweDA2LCAweEZDLCAweDA1LAotCTB4RTcsIDB4MDksIDB4RkUsIDB4MDUsIDB4MDAsIDB4MDYsIDB4MjcsIDB4REEsCi0JMHhGQSwgMHgwNSwgMHhFNywgMHg1NywgMHgwMSwgMHgwMCwgMHhGQSwgMHgwNSwKLQkweDAyLCAweENBLCAweDA0LCAweEMwLCAweDk3LCAweENGLCAweDlGLCAweEFGLAotCTB4NjYsIDB4MDUsIDB4OTcsIDB4Q0YsIDB4RTcsIDB4MDcsIDB4NDAsIDB4MDAsCi0JMHgwMiwgMHgwNiwgMHhDOCwgMHgwOSwgMHhGQywgMHgwNSwgMHg5RiwgMHhBRiwKLQkweERBLCAweDAyLCAweDk3LCAweENGLCAweENGLCAweDE3LCAweDAyLCAweDAwLAotCTB4RUYsIDB4NTcsIDB4ODEsIDB4MDAsIDB4MDksIDB4MDYsIDB4OUYsIDB4QTAsCi0JMHhCNiwgMHgwMSwgMHhFRiwgMHg1NywgMHg4MCwgMHgwMCwgMHgwOSwgMHgwNiwKLQkweDlGLCAweEEwLCAweDQwLCAweDAyLCAweEVGLCAweDU3LCAweDAxLCAweDAwLAotCTB4MEIsIDB4MDYsIDB4OUYsIDB4QTAsIDB4NDYsIDB4MDMsIDB4RTcsIDB4MDcsCi0JMHgwMSwgMHgwMCwgMHgwQSwgMHhDMCwgMHg0NiwgMHhBRiwgMHg0NywgMHhBRiwKLQkweDlGLCAweEFGLCAweDQwLCAweDAyLCAweEU3LCAweDA3LCAweDJFLCAweDAwLAotCTB4MEEsIDB4QzAsIDB4RUYsIDB4ODcsIDB4ODAsIDB4MDAsIDB4MDksIDB4MDYsCi0JMHg5NywgMHhDRiwgMHgwMCwgMHgwRSwgMHgwMSwgMHgwMCwgMHhDMCwgMHg1NywKLQkweDUxLCAweDAwLCAweDlGLCAweEMwLCAweDlFLCAweDAyLCAweEMwLCAweDU3LAotCTB4NTAsIDB4MDAsIDB4MjAsIDB4QzAsIDB4QzAsIDB4NTcsIDB4NTUsIDB4MDAsCi0JMHgxMiwgMHhDMCwgMHhDMCwgMHg1NywgMHg1NiwgMHgwMCwgMHg5RiwgMHhDMCwKLQkweDcyLCAweDAyLCAweDlGLCAweENGLCAweEQ2LCAweDAyLCAweEMxLCAweDBCLAotCTB4MDgsIDB4MDYsIDB4MDEsIDB4RDAsIDB4NkYsIDB4OTAsIDB4MDgsIDB4MDYsCi0JMHhDMCwgMHgwNywgMHgwOCwgMHgwMCwgMHhDMSwgMHgwQiwgMHgwOCwgMHgwNiwKLQkweDlGLCAweEFGLCAweDI4LCAweDA1LCAweDk3LCAweENGLCAweDJGLCAweDBFLAotCTB4MDIsIDB4MDAsIDB4MDgsIDB4MDYsIDB4QzAsIDB4MDcsIDB4MDgsIDB4MDAsCi0JMHhDMSwgMHgwQiwgMHgwOCwgMHgwNiwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwKLQkweDlGLCAweENGLCAweEQ2LCAweDAyLCAweDJGLCAweDBFLCAweDAyLCAweDAwLAotCTB4MDksIDB4MDYsIDB4RUYsIDB4ODcsIDB4ODAsIDB4MDAsIDB4MDksIDB4MDYsCi0JMHg5RiwgMHhDRiwgMHhENiwgMHgwMiwgMHhFRiwgMHg2NywgMHg3RiwgMHhGRiwKLQkweDA5LCAweDA2LCAweEU3LCAweDY3LCAweEZGLCAweEZELCAweDIyLCAweEMwLAotCTB4RTcsIDB4NjcsIDB4RUYsIDB4RkYsIDB4MjQsIDB4QzAsIDB4RTcsIDB4ODcsCi0JMHgxMCwgMHgwMCwgMHgyOCwgMHhDMCwgMHg5RiwgMHhBRiwgMHhCOCwgMHgwNSwKLQkweEU3LCAweDg3LCAweEUwLCAweDIxLCAweDI0LCAweEMwLCAweDlGLCAweEFGLAotCTB4QTgsIDB4MDUsIDB4RTcsIDB4ODcsIDB4MDgsIDB4MDAsIDB4MjQsIDB4QzAsCi0JMHhFNywgMHg2NywgMHhERiwgMHhGRiwgMHgyNCwgMHhDMCwgMHhDOCwgMHgwNywKLQkweDBBLCAweDAwLCAweEMwLCAweDA3LCAweDAwLCAweDAwLCAweEMxLCAweDA3LAotCTB4MDEsIDB4MDAsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4OUYsIDB4QUYsCi0JMHhCOCwgMHgwNSwgMHhDMCwgMHgwNywgMHg5RSwgMHgwMCwgMHg5RiwgMHhBRiwKLQkweDQ0LCAweDA1LCAweEU3LCAweDY3LCAweEZGLCAweEZFLCAweDI0LCAweEMwLAotCTB4QzAsIDB4MDksIDB4MjAsIDB4QzAsIDB4RTcsIDB4ODcsIDB4MDAsIDB4MDEsCi0JMHgyNCwgMHhDMCwgMHhDMCwgMHg3NywgMHgwMCwgMHgwMiwgMHgwRiwgMHhDMSwKLQkweEU3LCAweDY3LCAweEY3LCAweEZGLCAweDI0LCAweEMwLCAweEU3LCAweDY3LAotCTB4RjcsIDB4RkYsIDB4MjQsIDB4QzAsIDB4RTcsIDB4ODcsIDB4MDgsIDB4MDAsCi0JMHgyNCwgMHhDMCwgMHgwOCwgMHhEQSwgMHg1RSwgMHhDMSwgMHhFRiwgMHgwNywKLQkweDgwLCAweDAwLCAweDA5LCAweDA2LCAweDk3LCAweENGLCAweEVGLCAweDA3LAotCTB4MDEsIDB4MDAsIDB4MEEsIDB4MDYsIDB4OTcsIDB4Q0YsIDB4RUYsIDB4MDcsCi0JMHgwMCwgMHgwMCwgMHgwQiwgMHgwNiwgMHhFRiwgMHgwNywgMHgwMCwgMHgwMCwKLQkweDBBLCAweDA2LCAweEVGLCAweDY3LCAweDdGLCAweEZGLCAweDA5LCAweDA2LAotCTB4RUYsIDB4MDcsIDB4MDAsIDB4MDAsIDB4MEQsIDB4MDYsIDB4RTcsIDB4NjcsCi0JMHhFRiwgMHhGRiwgMHgyOCwgMHhDMCwgMHhFNywgMHg2NywgMHgxNywgMHhEOCwKLQkweDI0LCAweEMwLCAweEU3LCAweDA3LCAweDAwLCAweDAwLCAweDFFLCAweEMwLAotCTB4RTcsIDB4MDcsIDB4RkYsIDB4RkYsIDB4MjIsIDB4QzAsIDB4OTcsIDB4Q0YsCi0JMHhDOCwgMHgwNywgMHgwRSwgMHgwNiwgMHg5RiwgMHhBRiwgMHhEQSwgMHgwMiwKLQkweEU3LCAweDA3LCAweDAwLCAweDAwLCAweEYyLCAweDA1LCAweEU3LCAweDA3LAotCTB4MTAsIDB4MDAsIDB4RjYsIDB4MDUsIDB4RTcsIDB4MDcsIDB4MEUsIDB4MDYsCi0JMHhGNCwgMHgwNSwgMHhFNywgMHgwNywgMHhENiwgMHgwMiwgMHhGOCwgMHgwNSwKLQkweEM4LCAweDA3LCAweEYyLCAweDA1LCAweEMxLCAweDA3LCAweDAwLCAweDgwLAotCTB4NTAsIDB4QUYsIDB4OTcsIDB4Q0YsIDB4MkYsIDB4MEMsIDB4MDIsIDB4MDAsCi0JMHgwNywgMHgwNiwgMHgyRiwgMHgwQywgMHgwNCwgMHgwMCwgMHgwNiwgMHgwNiwKLQkweEU3LCAweDA3LCAweDAwLCAweDAwLCAweEYyLCAweDA1LCAweEU3LCAweDA3LAotCTB4MTAsIDB4MDAsIDB4RjYsIDB4MDUsIDB4RTcsIDB4MDcsIDB4RTIsIDB4MDUsCi0JMHhGNCwgMHgwNSwgMHhFNywgMHgwNywgMHhDRSwgMHgwMiwgMHhGOCwgMHgwNSwKLQkweEM4LCAweDA3LCAweEYyLCAweDA1LCAweEMxLCAweDA3LCAweDAwLCAweDgwLAotCTB4NTEsIDB4QUYsIDB4OTcsIDB4Q0YsIDB4OUYsIDB4QUYsIDB4NjYsIDB4MDQsCi0JMHg5RiwgMHhBRiwgMHgxQSwgMHgwMywgMHg1OSwgMHhBRiwgMHg5NywgMHhDRiwKLQkweEMwLCAweDA3LCAweDBFLCAweDAwLCAweEMxLCAweDBCLCAweDBDLCAweDA2LAotCTB4NDEsIDB4RDEsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4QzAsIDB4MDcsCi0JMHgzQywgMHgwMCwgMHg5RiwgMHhBRiwgMHg0NCwgMHgwNSwgMHg2OCwgMHgwMCwKLQkweEMwLCAweDA3LCAweDNCLCAweDAwLCAweDlGLCAweEFGLCAweDQ0LCAweDA1LAotCTB4NkYsIDB4MDAsIDB4MEMsIDB4MDYsIDB4NjgsIDB4MDAsIDB4RTAsIDB4MDcsCi0JMHgwNCwgMHgwMSwgMHhFOCwgMHgwQiwgMHgwQSwgMHgwNiwgMHhFOCwgMHgwNywKLQkweDAwLCAweDAwLCAweEUwLCAweDA3LCAweDAwLCAweDAyLCAweEUwLCAweDA3LAotCTB4RUMsIDB4MDEsIDB4RTAsIDB4MDcsIDB4RkMsIDB4RkYsIDB4OTcsIDB4Q0YsCi0JMHhFNywgMHgwNywgMHhGRiwgMHhGRiwgMHhGQSwgMHgwNSwgMHhFRiwgMHgwNywKLQkweDAwLCAweDAwLCAweDBCLCAweDA2LCAweEU3LCAweDA3LCAweDBFLCAweDA2LAotCTB4MjQsIDB4MDEsIDB4RTcsIDB4MDcsIDB4MEUsIDB4MDYsIDB4RkUsIDB4MDUsCi0JMHhFNywgMHgwNywgMHg0MCwgMHgwMCwgMHgyNiwgMHgwMSwgMHhFNywgMHgwNywKLQkweDQwLCAweDAwLCAweDA0LCAweDA2LCAweEU3LCAweDA3LCAweDA3LCAweDAwLAotCTB4OTIsIDB4QzAsIDB4OTcsIDB4Q0YsIDB4RUYsIDB4MDcsIDB4MDIsIDB4MDAsCi0JMHgwQiwgMHgwNiwgMHg5RiwgMHhBRiwgMHg3OCwgMHgwMSwgMHhFRiwgMHg3NywKLQkweDgwLCAweDAwLCAweDA3LCAweDA2LCAweDlGLCAweEMwLCAweDE0LCAweDA0LAotCTB4RUYsIDB4NzcsIDB4MDEsIDB4MDAsIDB4MDcsIDB4MDYsIDB4MzcsIDB4QzAsCi0JMHhFRiwgMHg3NywgMHgwMSwgMHgwMCwgMHgwRCwgMHgwNiwgMHgwRiwgMHhDMSwKLQkweEVGLCAweDA3LCAweDAxLCAweDAwLCAweDBELCAweDA2LCAweEMwLCAweDA3LAotCTB4MDIsIDB4MDAsIDB4QzEsIDB4MDcsIDB4MzAsIDB4MDAsIDB4OUYsIDB4QUYsCi0JMHgyOCwgMHgwNSwgMHhDMCwgMHgwNywgMHgwMSwgMHgwMCwgMHhDMSwgMHgwNywKLQkweDAyLCAweDAwLCAweDlGLCAweEFGLCAweDI4LCAweDA1LCAweEM4LCAweDA3LAotCTB4RkYsIDB4NEYsIDB4OUYsIDB4QUYsIDB4QTgsIDB4MDUsIDB4QzAsIDB4MDcsCi0JMHgzOCwgMHgwMCwgMHg5RiwgMHhBRiwgMHg0NCwgMHgwNSwgMHhDMSwgMHg3NywKLQkweDAzLCAweDAwLCAweDAyLCAweEMxLCAweDA4LCAweERBLCAweDc1LCAweEMxLAotCTB4QzEsIDB4NzcsIDB4MDEsIDB4MDAsIDB4MEEsIDB4QzEsIDB4QzAsIDB4MDcsCi0JMHgwMSwgMHgwMCwgMHhDMSwgMHgwNywgMHgwMiwgMHgwMCwgMHg5RiwgMHhBRiwKLQkweDI4LCAweDA1LCAweEVGLCAweDA3LCAweDAxLCAweDAwLCAweDA2LCAweDA2LAotCTB4MkMsIDB4Q0YsIDB4QzAsIDB4MDcsIDB4MDEsIDB4MDAsIDB4QzEsIDB4MDcsCi0JMHgwNCwgMHgwMCwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHhFRiwgMHgwNywKLQkweDAwLCAweDAwLCAweDA2LCAweDA2LCAweDIyLCAweENGLCAweEVGLCAweDA3LAotCTB4MDAsIDB4MDAsIDB4MEQsIDB4MDYsIDB4RUYsIDB4NTcsIDB4MDEsIDB4MDAsCi0JMHgwNiwgMHgwNiwgMHgxQiwgMHhDMCwgMHhDMCwgMHgwNywgMHgwMSwgMHgwMCwKLQkweEMxLCAweDA3LCAweDAxLCAweDAwLCAweDlGLCAweEFGLCAweDI4LCAweDA1LAotCTB4QzAsIDB4MDcsIDB4MDIsIDB4MDAsIDB4QzEsIDB4MDcsIDB4MzAsIDB4MDAsCi0JMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHhDOCwgMHgwNywgMHhGRiwgMHg0RiwKLQkweDlGLCAweEFGLCAweEE4LCAweDA1LCAweEMwLCAweDA3LCAweDM4LCAweDAwLAotCTB4OUYsIDB4QUYsIDB4NDQsIDB4MDUsIDB4QzEsIDB4NjcsIDB4MDMsIDB4MDAsCi0JMHhDMSwgMHg1NywgMHgwMywgMHgwMCwgMHgwMiwgMHhDMCwgMHgwOCwgMHhEQSwKLQkweDczLCAweEMxLCAweEMwLCAweDA3LCAweDAyLCAweDAwLCAweEMxLCAweDA3LAotCTB4MTIsIDB4MDAsIDB4RUYsIDB4NTcsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MDYsCi0JMHgwMiwgMHhDMCwgMHhDMSwgMHgwNywgMHgyMywgMHgwMCwgMHg5RiwgMHhBRiwKLQkweDI4LCAweDA1LCAweEMwLCAweDA3LCAweDE0LCAweDAwLCAweEMxLCAweDBCLAotCTB4RUEsIDB4MDUsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4QzAsIDB4MDcsCi0JMHgzRSwgMHgwMCwgMHg5RiwgMHhBRiwgMHgwQSwgMHgwNSwgMHhFNywgMHgwOSwKLQkweEU0LCAweDA1LCAweEZBLCAweDA1LCAweDI3LCAweEQ4LCAweEZBLCAweDA1LAotCTB4RTcsIDB4MDcsIDB4MEUsIDB4MDYsIDB4RkMsIDB4MDUsIDB4RTcsIDB4MDcsCi0JMHg0RSwgMHgwNiwgMHgwMCwgMHgwNiwgMHhFNywgMHgwNywgMHg0MCwgMHgwMCwKLQkweDAyLCAweDA2LCAweDlGLCAweEFGLCAweDY2LCAweDA1LCAweDlGLCAweEFGLAotCTB4QzYsIDB4MDAsIDB4OTcsIDB4Q0YsIDB4QzEsIDB4MEIsIDB4RTIsIDB4MDUsCi0JMHg0MSwgMHhEMCwgMHgwMSwgMHhEMiwgMHhDMSwgMHgxNywgMHgyMywgMHgwMCwKLQkweDlGLCAweEFGLCAweERDLCAweDA0LCAweEMwLCAweDA3LCAweDA0LCAweDAwLAotCTB4QzEsIDB4MEIsIDB4RTMsIDB4MDUsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsCi0JMHhDMCwgMHgwNywgMHgwNiwgMHgwMCwgMHhDMSwgMHgwOSwgMHhFNiwgMHgwNSwKLQkweDlGLCAweEFGLCAweDI4LCAweDA1LCAweEMwLCAweDA3LCAweDA3LCAweDAwLAotCTB4QzEsIDB4MDksIDB4RTYsIDB4MDUsIDB4QzEsIDB4RDEsIDB4OUYsIDB4QUYsCi0JMHgyOCwgMHgwNSwgMHhDMCwgMHgwNywgMHgwQiwgMHgwMCwgMHhDMSwgMHgwOSwKLQkweEU4LCAweDA1LCAweDlGLCAweEFGLCAweDI4LCAweDA1LCAweEMwLCAweDA3LAotCTB4MEMsIDB4MDAsIDB4QzEsIDB4MDksIDB4RTgsIDB4MDUsIDB4QzEsIDB4RDEsCi0JMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHhDMCwgMHgwNywgMHgwRCwgMHgwMCwKLQkweEMxLCAweDA3LCAweDA5LCAweDAwLCAweDlGLCAweEFGLCAweDI4LCAweDA1LAotCTB4QzAsIDB4MDcsIDB4MDMsIDB4MDAsIDB4QzEsIDB4MDcsIDB4MzIsIDB4MDAsCi0JMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHhDMCwgMHgwNywgMHgwRiwgMHgwMCwKLQkweEMxLCAweDA3LCAweDAwLCAweDAwLCAweDlGLCAweEFGLCAweDI4LCAweDA1LAotCTB4OTcsIDB4Q0YsIDB4RTcsIDB4NjcsIDB4RkYsIDB4RDksIDB4MjQsIDB4QzAsCi0JMHhDOCwgMHgwNywgMHgwQSwgMHgwMCwgMHg0MCwgMHgwMCwgMHhDMCwgMHg2NywKLQkweDAwLCAweDAyLCAweDI3LCAweDgwLCAweDI0LCAweEMwLCAweEU3LCAweDg3LAotCTB4MDAsIDB4MDQsIDB4MjQsIDB4QzAsIDB4RTcsIDB4NjcsIDB4RkYsIDB4RjksCi0JMHgyNCwgMHhDMCwgMHgwMSwgMHhEMiwgMHgwOCwgMHhEQSwgMHg3MiwgMHhDMSwKLQkweEU3LCAweDg3LCAweDAwLCAweDIwLCAweDI0LCAweEMwLCAweDk3LCAweENGLAotCTB4MjcsIDB4MDAsIDB4MUUsIDB4QzAsIDB4RTcsIDB4ODcsIDB4RkYsIDB4MDAsCi0JMHgyMiwgMHhDMCwgMHhFNywgMHg2NywgMHg3RiwgMHhGRiwgMHgyNCwgMHhDMCwKLQkweEU3LCAweDg3LCAweDgwLCAweDAwLCAweDI0LCAweEMwLCAweEU3LCAweDg3LAotCTB4ODAsIDB4MDAsIDB4MjQsIDB4QzAsIDB4OTcsIDB4Q0YsIDB4OUYsIDB4QUYsCi0JMHgwQSwgMHgwNSwgMHg2NywgMHgwMCwgMHgxRSwgMHhDMCwgMHhFNywgMHg2NywKLQkweEJGLCAweEZGLCAweDI0LCAweEMwLCAweEU3LCAweDg3LCAweDQwLCAweDAwLAotCTB4MjQsIDB4QzAsIDB4RTcsIDB4ODcsIDB4NDAsIDB4MDAsIDB4MjQsIDB4QzAsCi0JMHg5NywgMHhDRiwgMHg5RiwgMHhBRiwgMHgwQSwgMHgwNSwgMHhFNywgMHg2NywKLQkweDAwLCAweEZGLCAweDIyLCAweEMwLCAweEU3LCAweDY3LCAweEZGLCAweEZFLAotCTB4MjQsIDB4QzAsIDB4RTcsIDB4NjcsIDB4RkYsIDB4RkUsIDB4MjQsIDB4QzAsCi0JMHhDMSwgMHgwOSwgMHgyMCwgMHhDMCwgMHhFNywgMHg4NywgMHgwMCwgMHgwMSwKLQkweDI0LCAweEMwLCAweDk3LCAweENGLCAweEMwLCAweDA3LCAweDQwLCAweDAwLAotCTB4QzgsIDB4MDksIDB4RkMsIDB4MDUsIDB4RTcsIDB4NjcsIDB4MDAsIDB4RkYsCi0JMHgyMiwgMHhDMCwgMHhFNywgMHg2NywgMHhGRiwgMHhGRSwgMHgyNCwgMHhDMCwKLQkweEU3LCAweDY3LCAweEJGLCAweEZGLCAweDI0LCAweEMwLCAweEU3LCAweDY3LAotCTB4QkYsIDB4RkYsIDB4MjQsIDB4QzAsIDB4MDAsIDB4REEsIDB4RTgsIDB4MDksCi0JMHgyMCwgMHhDMCwgMHhFNywgMHg4NywgMHg0MCwgMHgwMCwgMHgyNCwgMHhDMCwKLQkweEU3LCAweDg3LCAweDQwLCAweDAwLCAweDI0LCAweEMwLCAweDAwLCAweERBLAotCTB4RTgsIDB4MDksIDB4MjAsIDB4QzAsIDB4NkQsIDB4QzEsIDB4RTcsIDB4ODcsCi0JMHgwMCwgMHgwMSwgMHgyNCwgMHhDMCwgMHg5NywgMHhDRiwgMHhFNywgMHgwNywKLQkweDMyLCAweDAwLCAweDEyLCAweEMwLCAweEU3LCAweDc3LCAweDAwLCAweDgwLAotCTB4MTIsIDB4QzAsIDB4N0MsIDB4QzAsIDB4OTcsIDB4Q0YsIDB4RTcsIDB4MDcsCi0JMHgyMCwgMHg0RSwgMHgxMiwgMHhDMCwgMHhFNywgMHg3NywgMHgwMCwgMHg4MCwKLQkweDEyLCAweEMwLCAweDdDLCAweEMwLCAweDk3LCAweENGLCAweDA5LCAweDAyLAotCTB4MTksIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDAsIDB4ODAsIDB4OTYsIDB4MDksCi0JMHgwNCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDA3LCAweDA1LCAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzZXR1cDVbXSA9IHsKLQkweEI2LCAweEMzLCAweDJGLCAweDAxLCAweDAzLCAweDY0LCAweDBFLCAweDAwLAotCTB4MTQsIDB4MDAsIDB4MUEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4MjYsIDB4MDAsCi0JMHg0QSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2QSwgMHgwMCwgMHg5MiwgMHgwMCwKLQkweDlBLCAweDAwLCAweEEwLCAweDAwLCAweEIyLCAweDAwLCAweEI4LCAweDAwLAotCTB4QkUsIDB4MDAsIDB4QzIsIDB4MDAsIDB4QzgsIDB4MDAsIDB4Q0UsIDB4MDAsCi0JMHhEQywgMHgwMCwgMHhEQSwgMHgwMCwgMHhFMiwgMHgwMCwgMHhFMCwgMHgwMCwKLQkweEU4LCAweDAwLCAweEU2LCAweDAwLCAweEVFLCAweDAwLCAweEVDLCAweDAwLAotCTB4RjIsIDB4MDAsIDB4RjgsIDB4MDAsIDB4MDIsIDB4MDEsIDB4MEEsIDB4MDEsCi0JMHgwRSwgMHgwMSwgMHgxMiwgMHgwMSwgMHgxRSwgMHgwMSwgMHgyMiwgMHgwMSwKLQkweDI4LCAweDAxLCAweDJDLCAweDAxLCAweDMyLCAweDAxLCAweDM2LCAweDAxLAotCTB4NDQsIDB4MDEsIDB4NTAsIDB4MDEsIDB4NUUsIDB4MDEsIDB4NzIsIDB4MDEsCi0JMHg3NiwgMHgwMSwgMHg3QSwgMHgwMSwgMHg4MCwgMHgwMSwgMHg4OCwgMHgwMSwKLQkweDhDLCAweDAxLCAweDk0LCAweDAxLCAweDlDLCAweDAxLCAweEEwLCAweDAxLAotCTB4QTQsIDB4MDEsIDB4QUEsIDB4MDEsIDB4QjAsIDB4MDEsIDB4QjQsIDB4MDEsCi0JMHhCQSwgMHgwMSwgMHhEMCwgMHgwMSwgMHhEQSwgMHgwMSwgMHhGNiwgMHgwMSwKLQkweEZBLCAweDAxLCAweDAyLCAweDAyLCAweDM0LCAweDAyLCAweDNDLCAweDAyLAotCTB4NDQsIDB4MDIsIDB4NEEsIDB4MDIsIDB4NTAsIDB4MDIsIDB4NTYsIDB4MDIsCi0JMHg3NCwgMHgwMiwgMHg3OCwgMHgwMiwgMHg3RSwgMHgwMiwgMHg4NCwgMHgwMiwKLQkweDhBLCAweDAyLCAweDg4LCAweDAyLCAweDkwLCAweDAyLCAweDhFLCAweDAyLAotCTB4OTQsIDB4MDIsIDB4QTIsIDB4MDIsIDB4QTgsIDB4MDIsIDB4QUUsIDB4MDIsCi0JMHhCNCwgMHgwMiwgMHhCQSwgMHgwMiwgMHhCOCwgMHgwMiwgMHhDMCwgMHgwMiwKLQkweEJFLCAweDAyLCAweEM0LCAweDAyLCAweEQwLCAweDAyLCAweEQ0LCAweDAyLAotCTB4RTAsIDB4MDIsIDB4RTYsIDB4MDIsIDB4RUUsIDB4MDIsIDB4RjgsIDB4MDIsCi0JMHhGQywgMHgwMiwgMHgwNiwgMHgwMywgMHgxRSwgMHgwMywgMHgyNCwgMHgwMywKLQkweDI4LCAweDAzLCAweDMwLCAweDAzLCAweDJFLCAweDAzLCAweDNDLCAweDAzLAotCTB4NEEsIDB4MDMsIDB4NEUsIDB4MDMsIDB4NTQsIDB4MDMsIDB4NTgsIDB4MDMsCi0JMHg1RSwgMHgwMywgMHg2NiwgMHgwMywgMHg2RSwgMHgwMywgMHg3QSwgMHgwMywKLQkweDg2LCAweDAzLCAweDhFLCAweDAzLCAweDk2LCAweDAzLCAweEIyLCAweDAzLAotCTB4QjgsIDB4MDMsIDB4QzYsIDB4MDMsIDB4Q0MsIDB4MDMsIDB4RDQsIDB4MDMsCi0JMHhEQSwgMHgwMywgMHhFOCwgMHgwMywgMHhGNCwgMHgwMywgMHhGQywgMHgwMywKLQkweDA0LCAweDA0LCAweDIwLCAweDA0LCAweDJBLCAweDA0LCAweDMyLCAweDA0LAotCTB4MzYsIDB4MDQsIDB4M0UsIDB4MDQsIDB4NDQsIDB4MDQsIDB4NDIsIDB4MDQsCi0JMHg0OCwgMHgwNCwgMHg0RSwgMHgwNCwgMHg0QywgMHgwNCwgMHg1NCwgMHgwNCwKLQkweDUyLCAweDA0LCAweDVBLCAweDA0LCAweDVFLCAweDA0LCAweDYyLCAweDA0LAotCTB4NjgsIDB4MDQsIDB4NzQsIDB4MDQsIDB4N0MsIDB4MDQsIDB4ODAsIDB4MDQsCi0JMHg4OCwgMHgwNCwgMHg4QywgMHgwNCwgMHg5NCwgMHgwNCwgMHg5QSwgMHgwNCwKLQkweEEyLCAweDA0LCAweEE2LCAweDA0LCAweEFFLCAweDA0LCAweEI0LCAweDA0LAotCTB4QzAsIDB4MDQsIDB4Q0MsIDB4MDQsIDB4RDgsIDB4MDQsIDB4MkEsIDB4MDUsCi0JMHg0NiwgMHgwNSwgMHg2QywgMHgwNSwgMHgwMCwgMHgwMAotfTsKLQogLyogcnZtYWxsb2MgLyBydmZyZWUgY29waWVkIGZyb20gdXNidmlkZW8uYwogICoKICAqIE5vdCBzdXJlIHdoeSB0aGVzZSBhcmUgbm90IHlldCBub24tc3RhdGljcyB3aGljaCBJIGNhbiByZWZlcmVuY2UgdGhyb3VnaApAQCAtNDY0LDI4ICsxODgsMjggQEAKIHN0YXRpYyBpbnQKIGluaXRpYWxpemVfY2FtZXJhKHN0cnVjdCB2aWNhbV9jYW1lcmEgKmNhbSkKIHsKLQljb25zdCBzdHJ1Y3QgewotCQl1OCAqZGF0YTsKLQkJdTMyIHNpemU7Ci0JfSBmaXJtd2FyZVtdID0gewotCQl7IC5kYXRhID0gc2V0dXAxLCAuc2l6ZSA9IHNpemVvZihzZXR1cDEpIH0sCi0JCXsgLmRhdGEgPSBzZXR1cDIsIC5zaXplID0gc2l6ZW9mKHNldHVwMikgfSwKLQkJeyAuZGF0YSA9IHNldHVwMywgLnNpemUgPSBzaXplb2Yoc2V0dXAzKSB9LAotCQl7IC5kYXRhID0gc2V0dXA0LCAuc2l6ZSA9IHNpemVvZihzZXR1cDQpIH0sCi0JCXsgLmRhdGEgPSBzZXR1cDUsIC5zaXplID0gc2l6ZW9mKHNldHVwNSkgfSwKLQkJeyAuZGF0YSA9IHNldHVwMywgLnNpemUgPSBzaXplb2Yoc2V0dXAzKSB9LAotCQl7IC5kYXRhID0gTlVMTCwgLnNpemUgPSAwIH0KLQl9OworCWludCBlcnI7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAotCWludCBlcnIsIGk7CisJZXJyID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZmdywgInZpY2FtL2Zpcm13YXJlLmZ3IiwgJmNhbS0+dWRldi0+ZGV2KTsKKwlpZiAoZXJyKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGxvYWQgXCJ2aWNhbS9maXJtd2FyZS5md1wiOiAlZFxuIiwKKwkJICAgICAgIGVycik7CisJCXJldHVybiBlcnI7CisJfQogCi0JZm9yIChpID0gMCwgZXJyID0gMDsgZmlybXdhcmVbaV0uZGF0YSAmJiAhZXJyOyBpKyspIHsKLQkJbWVtY3B5KGNhbS0+Y250cmxidWYsIGZpcm13YXJlW2ldLmRhdGEsIGZpcm13YXJlW2ldLnNpemUpOworCWZvciAocmVjID0gKHZvaWQgKilmdy0+ZGF0YTsgcmVjOyByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJbWVtY3B5KGNhbS0+Y250cmxidWYsIHJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pKTsKIAogCQllcnIgPSBzZW5kX2NvbnRyb2xfbXNnKGNhbSwgMHhmZiwgMCwgMCwKLQkJCQkgICAgICAgY2FtLT5jbnRybGJ1ZiwgZmlybXdhcmVbaV0uc2l6ZSk7CisJCQkJICAgICAgIGNhbS0+Y250cmxidWYsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CisJCWlmIChlcnIpCisJCQlicmVhazsKIAl9CiAKKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKKwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTEyMjYsMyArOTUwLDQgQEAKIE1PRFVMRV9BVVRIT1IoRFJJVkVSX0FVVEhPUik7CiBNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0ZJUk1XQVJFKCJ2aWNhbS9maXJtd2FyZS5mdyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91dmMvTWFrZWZpbGUgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjhjMTk5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvTWFrZWZpbGUKQEAgLTAsMCArMSwzIEBACit1dmN2aWRlby1vYmpzICA6PSB1dmNfZHJpdmVyLm8gdXZjX3F1ZXVlLm8gdXZjX3Y0bDIubyB1dmNfdmlkZW8ubyB1dmNfY3RybC5vIFwKKwkJICB1dmNfc3RhdHVzLm8gdXZjX2lzaWdodC5vCitvYmotJChDT05GSUdfVVNCX1ZJREVPX0NMQVNTKSArPSB1dmN2aWRlby5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfY3RybC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2N0cmwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGVlNDZkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2N0cmwuYwpAQCAtMCwwICsxLDEyNTYgQEAKKy8qCisgKiAgICAgIHV2Y19jdHJsLmMgIC0tICBVU0IgVmlkZW8gQ2xhc3MgZHJpdmVyIC0gQ29udHJvbHMKKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwNS0yMDA4CisgKiAgICAgICAgICBMYXVyZW50IFBpbmNoYXJ0IChsYXVyZW50LnBpbmNoYXJ0QHNreW5ldC5iZSkKKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxsaW51eC92aWRlb2RldjIuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKworI2luY2x1ZGUgInV2Y3ZpZGVvLmgiCisKKyNkZWZpbmUgVVZDX0NUUkxfTkRBVEEJCTIKKyNkZWZpbmUgVVZDX0NUUkxfREFUQV9DVVJSRU5UCTAKKyNkZWZpbmUgVVZDX0NUUkxfREFUQV9CQUNLVVAJMQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIENvbnRyb2wsIGZvcm1hdHMsIC4uLgorICovCisKK3N0YXRpYyBzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyB1dmNfY3RybHNbXSA9IHsKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0JSSUdIVE5FU1NfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDAsCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9DT05UUkFTVF9DT05UUk9MLAorCQkuaW5kZXgJCT0gMSwKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0hVRV9DT05UUk9MLAorCQkuaW5kZXgJCT0gMiwKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUgfCBVVkNfQ09OVFJPTF9BVVRPX1VQREFURSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfU0FUVVJBVElPTl9DT05UUk9MLAorCQkuaW5kZXgJCT0gMywKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1NIQVJQTkVTU19DT05UUk9MLAorCQkuaW5kZXgJCT0gNCwKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0dBTU1BX0NPTlRST0wsCisJCS5pbmRleAkJPSA1LAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfQkFDS0xJR0hUX0NPTVBFTlNBVElPTl9DT05UUk9MLAorCQkuaW5kZXgJCT0gOCwKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0dBSU5fQ09OVFJPTCwKKwkJLmluZGV4CQk9IDksCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9QT1dFUl9MSU5FX0ZSRVFVRU5DWV9DT05UUk9MLAorCQkuaW5kZXgJCT0gMTAsCisJCS5zaXplCQk9IDEsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9IVUVfQVVUT19DT05UUk9MLAorCQkuaW5kZXgJCT0gMTEsCisJCS5zaXplCQk9IDEsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX0NVUgorCQkJCXwgVVZDX0NPTlRST0xfR0VUX0RFRiB8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfQUVfTU9ERV9DT05UUk9MLAorCQkuaW5kZXgJCT0gMSwKKwkJLnNpemUJCT0gMSwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfQ1VSCisJCQkJfCBVVkNfQ09OVFJPTF9HRVRfREVGIHwgVVZDX0NPTlRST0xfR0VUX1JFUworCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9BRV9QUklPUklUWV9DT05UUk9MLAorCQkuaW5kZXgJCT0gMiwKKwkJLnNpemUJCT0gMSwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfQ1VSCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0VYUE9TVVJFX1RJTUVfQUJTT0xVVEVfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDMsCisJCS5zaXplCQk9IDQsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0ZPQ1VTX0FCU09MVVRFX0NPTlRST0wsCisJCS5pbmRleAkJPSA1LAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSB8IFVWQ19DT05UUk9MX0FVVE9fVVBEQVRFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0ZPQ1VTX0FVVE9fQ09OVFJPTCwKKwkJLmluZGV4CQk9IDE3LAorCQkuc2l6ZQkJPSAxLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9DVVIKKwkJCQl8IFVWQ19DT05UUk9MX0dFVF9ERUYgfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9XSElURV9CQUxBTkNFX1RFTVBFUkFUVVJFX0FVVE9fQ09OVFJPTCwKKwkJLmluZGV4CQk9IDEyLAorCQkuc2l6ZQkJPSAxLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9DVVIKKwkJCQl8IFVWQ19DT05UUk9MX0dFVF9ERUYgfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9XSElURV9CQUxBTkNFX1RFTVBFUkFUVVJFX0NPTlRST0wsCisJCS5pbmRleAkJPSA2LAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSB8IFVWQ19DT05UUk9MX0FVVE9fVVBEQVRFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9XSElURV9CQUxBTkNFX0NPTVBPTkVOVF9BVVRPX0NPTlRST0wsCisJCS5pbmRleAkJPSAxMywKKwkJLnNpemUJCT0gMSwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfQ1VSCisJCQkJfCBVVkNfQ09OVFJPTF9HRVRfREVGIHwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfV0hJVEVfQkFMQU5DRV9DT01QT05FTlRfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDcsCisJCS5zaXplCQk9IDQsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFIHwgVVZDX0NPTlRST0xfQVVUT19VUERBVEUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXZjX21lbnVfaW5mbyBwb3dlcl9saW5lX2ZyZXF1ZW5jeV9jb250cm9sc1tdID0geworCXsgMCwgIkRpc2FibGVkIiB9LAorCXsgMSwgIjUwIEh6IiB9LAorCXsgMiwgIjYwIEh6IiB9LAorfTsKKworc3RhdGljIHN0cnVjdCB1dmNfbWVudV9pbmZvIGV4cG9zdXJlX2F1dG9fY29udHJvbHNbXSA9IHsKKwl7IDEsICJNYW51YWwgTW9kZSIgfSwKKwl7IDIsICJBdXRvIE1vZGUiIH0sCisJeyA0LCAiU2h1dHRlciBQcmlvcml0eSBNb2RlIiB9LAorCXsgOCwgIkFwZXJ0dXJlIFByaW9yaXR5IE1vZGUiIH0sCit9OworCitzdGF0aWMgc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgdXZjX2N0cmxfbWFwcGluZ3NbXSA9IHsKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9CUklHSFRORVNTLAorCQkubmFtZQkJPSAiQnJpZ2h0bmVzcyIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0JSSUdIVE5FU1NfQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfQ09OVFJBU1QsCisJCS5uYW1lCQk9ICJDb250cmFzdCIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0NPTlRSQVNUX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfSFVFLAorCQkubmFtZQkJPSAiSHVlIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfSFVFX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1NJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX1NBVFVSQVRJT04sCisJCS5uYW1lCQk9ICJTYXR1cmF0aW9uIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfU0FUVVJBVElPTl9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX1NIQVJQTkVTUywKKwkJLm5hbWUJCT0gIlNoYXJwbmVzcyIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1NIQVJQTkVTU19DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0dBTU1BLAorCQkubmFtZQkJPSAiR2FtbWEiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9HQU1NQV9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0JBQ0tMSUdIVF9DT01QRU5TQVRJT04sCisJCS5uYW1lCQk9ICJCYWNrbGlnaHQgQ29tcGVuc2F0aW9uIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfQkFDS0xJR0hUX0NPTVBFTlNBVElPTl9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0dBSU4sCisJCS5uYW1lCQk9ICJHYWluIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfR0FJTl9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX1BPV0VSX0xJTkVfRlJFUVVFTkNZLAorCQkubmFtZQkJPSAiUG93ZXIgTGluZSBGcmVxdWVuY3kiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9QT1dFUl9MSU5FX0ZSRVFVRU5DWV9DT05UUk9MLAorCQkuc2l6ZQkJPSAyLAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9NRU5VLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX0VOVU0sCisJCS5tZW51X2luZm8JPSBwb3dlcl9saW5lX2ZyZXF1ZW5jeV9jb250cm9scywKKwkJLm1lbnVfY291bnQJPSBBUlJBWV9TSVpFKHBvd2VyX2xpbmVfZnJlcXVlbmN5X2NvbnRyb2xzKSwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0hVRV9BVVRPLAorCQkubmFtZQkJPSAiSHVlLCBBdXRvIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfSFVFX0FVVE9fQ09OVFJPTCwKKwkJLnNpemUJCT0gMSwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfQk9PTEVBTiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9CT09MRUFOLAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfRVhQT1NVUkVfQVVUTywKKwkJLm5hbWUJCT0gIkV4cG9zdXJlLCBBdXRvIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9BRV9NT0RFX0NPTlRST0wsCisJCS5zaXplCQk9IDQsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX01FTlUsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfQklUTUFTSywKKwkJLm1lbnVfaW5mbwk9IGV4cG9zdXJlX2F1dG9fY29udHJvbHMsCisJCS5tZW51X2NvdW50CT0gQVJSQVlfU0laRShleHBvc3VyZV9hdXRvX2NvbnRyb2xzKSwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0VYUE9TVVJFX0FVVE9fUFJJT1JJVFksCisJCS5uYW1lCQk9ICJFeHBvc3VyZSwgQXV0byBQcmlvcml0eSIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfQUVfUFJJT1JJVFlfQ09OVFJPTCwKKwkJLnNpemUJCT0gMSwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfQk9PTEVBTiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9CT09MRUFOLAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfRVhQT1NVUkVfQUJTT0xVVEUsCisJCS5uYW1lCQk9ICJFeHBvc3VyZSAoQWJzb2x1dGUpIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9FWFBPU1VSRV9USU1FX0FCU09MVVRFX0NPTlRST0wsCisJCS5zaXplCQk9IDMyLAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfQVVUT19XSElURV9CQUxBTkNFLAorCQkubmFtZQkJPSAiV2hpdGUgQmFsYW5jZSBUZW1wZXJhdHVyZSwgQXV0byIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1dISVRFX0JBTEFOQ0VfVEVNUEVSQVRVUkVfQVVUT19DT05UUk9MLAorCQkuc2l6ZQkJPSAxLAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9CT09MRUFOLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX0JPT0xFQU4sCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9XSElURV9CQUxBTkNFX1RFTVBFUkFUVVJFLAorCQkubmFtZQkJPSAiV2hpdGUgQmFsYW5jZSBUZW1wZXJhdHVyZSIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1dISVRFX0JBTEFOQ0VfVEVNUEVSQVRVUkVfQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9BVVRPX1dISVRFX0JBTEFOQ0UsCisJCS5uYW1lCQk9ICJXaGl0ZSBCYWxhbmNlIENvbXBvbmVudCwgQXV0byIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1dISVRFX0JBTEFOQ0VfQ09NUE9ORU5UX0FVVE9fQ09OVFJPTCwKKwkJLnNpemUJCT0gMSwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfQk9PTEVBTiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9CT09MRUFOLAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfQkxVRV9CQUxBTkNFLAorCQkubmFtZQkJPSAiV2hpdGUgQmFsYW5jZSBCbHVlIENvbXBvbmVudCIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1dISVRFX0JBTEFOQ0VfQ09NUE9ORU5UX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1NJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX1JFRF9CQUxBTkNFLAorCQkubmFtZQkJPSAiV2hpdGUgQmFsYW5jZSBSZWQgQ29tcG9uZW50IiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfV0hJVEVfQkFMQU5DRV9DT01QT05FTlRfQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMTYsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1NJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0ZPQ1VTX0FCU09MVVRFLAorCQkubmFtZQkJPSAiRm9jdXMgKGFic29sdXRlKSIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfRk9DVVNfQUJTT0xVVEVfQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9GT0NVU19BVVRPLAorCQkubmFtZQkJPSAiRm9jdXMsIEF1dG8iLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0ZPQ1VTX0FVVE9fQ09OVFJPTCwKKwkJLnNpemUJCT0gMSwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfQk9PTEVBTiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9CT09MRUFOLAorCX0sCit9OworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFV0aWxpdHkgZnVuY3Rpb25zCisgKi8KKworc3RhdGljIGlubGluZSBfX3U4ICp1dmNfY3RybF9kYXRhKHN0cnVjdCB1dmNfY29udHJvbCAqY3RybCwgaW50IGlkKQoreworCXJldHVybiBjdHJsLT5kYXRhICsgaWQgKiBjdHJsLT5pbmZvLT5zaXplOworfQorCitzdGF0aWMgaW5saW5lIGludCB1dmNfZ2V0X2JpdChjb25zdCBfX3U4ICpkYXRhLCBpbnQgYml0KQoreworCXJldHVybiAoZGF0YVtiaXQgPj4gM10gPj4gKGJpdCAmIDcpKSAmIDE7Cit9CisKKy8qIEV4dHJhY3QgdGhlIGJpdCBzdHJpbmcgc3BlY2lmaWVkIGJ5IG1hcHBpbmctPm9mZnNldCBhbmQgbWFwcGluZy0+c2l6ZQorICogZnJvbSB0aGUgbGl0dGxlLWVuZGlhbiBkYXRhIHN0b3JlZCBhdCAnZGF0YScgYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzCisgKiBhIHNpZ25lZCAzMmJpdCBpbnRlZ2VyLiBTaWduIGV4dGVuc2lvbiB3aWxsIGJlIHBlcmZvcm1lZCBpZiB0aGUgbWFwcGluZworICogcmVmZXJlbmNlcyBhIHNpZ25lZCBkYXRhIHR5cGUuCisgKi8KK3N0YXRpYyBfX3MzMiB1dmNfZ2V0X2xlX3ZhbHVlKGNvbnN0IF9fdTggKmRhdGEsCisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcHBpbmcpCit7CisJaW50IGJpdHMgPSBtYXBwaW5nLT5zaXplOworCWludCBvZmZzZXQgPSBtYXBwaW5nLT5vZmZzZXQ7CisJX19zMzIgdmFsdWUgPSAwOworCV9fdTggbWFzazsKKworCWRhdGEgKz0gb2Zmc2V0IC8gODsKKwlvZmZzZXQgJj0gNzsKKwltYXNrID0gKCgxTEwgPDwgYml0cykgLSAxKSA8PCBvZmZzZXQ7CisKKwlmb3IgKDsgYml0cyA+IDA7IGRhdGErKykgeworCQlfX3U4IGJ5dGUgPSAqZGF0YSAmIG1hc2s7CisJCXZhbHVlIHw9IG9mZnNldCA+IDAgPyAoYnl0ZSA+PiBvZmZzZXQpIDogKGJ5dGUgPDwgKC1vZmZzZXQpKTsKKwkJYml0cyAtPSA4IC0gKG9mZnNldCA+IDAgPyBvZmZzZXQgOiAwKTsKKwkJb2Zmc2V0IC09IDg7CisJCW1hc2sgPSAoMSA8PCBiaXRzKSAtIDE7CisJfQorCisJLyogU2lnbi1leHRlbmQgdGhlIHZhbHVlIGlmIG5lZWRlZCAqLworCWlmIChtYXBwaW5nLT5kYXRhX3R5cGUgPT0gVVZDX0NUUkxfREFUQV9UWVBFX1NJR05FRCkKKwkJdmFsdWUgfD0gLSh2YWx1ZSAmICgxIDw8IChtYXBwaW5nLT5zaXplIC0gMSkpKTsKKworCXJldHVybiB2YWx1ZTsKK30KKworLyogU2V0IHRoZSBiaXQgc3RyaW5nIHNwZWNpZmllZCBieSBtYXBwaW5nLT5vZmZzZXQgYW5kIG1hcHBpbmctPnNpemUKKyAqIGluIHRoZSBsaXR0bGUtZW5kaWFuIGRhdGEgc3RvcmVkIGF0ICdkYXRhJyB0byB0aGUgdmFsdWUgJ3ZhbHVlJy4KKyAqLworc3RhdGljIHZvaWQgdXZjX3NldF9sZV92YWx1ZShfX3MzMiB2YWx1ZSwgX191OCAqZGF0YSwKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwcGluZykKK3sKKwlpbnQgYml0cyA9IG1hcHBpbmctPnNpemU7CisJaW50IG9mZnNldCA9IG1hcHBpbmctPm9mZnNldDsKKwlfX3U4IG1hc2s7CisKKwlkYXRhICs9IG9mZnNldCAvIDg7CisJb2Zmc2V0ICY9IDc7CisKKwlmb3IgKDsgYml0cyA+IDA7IGRhdGErKykgeworCQltYXNrID0gKCgxTEwgPDwgYml0cykgLSAxKSA8PCBvZmZzZXQ7CisJCSpkYXRhID0gKCpkYXRhICYgfm1hc2spIHwgKCh2YWx1ZSA8PCBvZmZzZXQpICYgbWFzayk7CisJCXZhbHVlID4+PSBvZmZzZXQgPyBvZmZzZXQgOiA4OworCQliaXRzIC09IDggLSBvZmZzZXQ7CisJCW9mZnNldCA9IDA7CisJfQorfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFRlcm1pbmFsIGFuZCB1bml0IG1hbmFnZW1lbnQKKyAqLworCitzdGF0aWMgY29uc3QgX191OCB1dmNfcHJvY2Vzc2luZ19ndWlkWzE2XSA9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HOworc3RhdGljIGNvbnN0IF9fdTggdXZjX2NhbWVyYV9ndWlkWzE2XSA9IFVWQ19HVUlEX1VWQ19DQU1FUkE7CitzdGF0aWMgY29uc3QgX191OCB1dmNfbWVkaWFfdHJhbnNwb3J0X2lucHV0X2d1aWRbMTZdID0KKwlVVkNfR1VJRF9VVkNfTUVESUFfVFJBTlNQT1JUX0lOUFVUOworCitzdGF0aWMgaW50IHV2Y19lbnRpdHlfbWF0Y2hfZ3VpZChzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5LCBfX3U4IGd1aWRbMTZdKQoreworCXN3aXRjaCAoVVZDX0VOVElUWV9UWVBFKGVudGl0eSkpIHsKKwljYXNlIElUVF9DQU1FUkE6CisJCXJldHVybiBtZW1jbXAodXZjX2NhbWVyYV9ndWlkLCBndWlkLCAxNikgPT0gMDsKKworCWNhc2UgSVRUX01FRElBX1RSQU5TUE9SVF9JTlBVVDoKKwkJcmV0dXJuIG1lbWNtcCh1dmNfbWVkaWFfdHJhbnNwb3J0X2lucHV0X2d1aWQsIGd1aWQsIDE2KSA9PSAwOworCisJY2FzZSBWQ19QUk9DRVNTSU5HX1VOSVQ6CisJCXJldHVybiBtZW1jbXAodXZjX3Byb2Nlc3NpbmdfZ3VpZCwgZ3VpZCwgMTYpID09IDA7CisKKwljYXNlIFZDX0VYVEVOU0lPTl9VTklUOgorCQlyZXR1cm4gbWVtY21wKGVudGl0eS0+ZXh0ZW5zaW9uLmd1aWRFeHRlbnNpb25Db2RlLAorCQkJICAgICAgZ3VpZCwgMTYpID09IDA7CisKKwlkZWZhdWx0OgorCQlyZXR1cm4gMDsKKwl9Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVVZDIENvbnRyb2xzCisgKi8KKworc3RhdGljIHZvaWQgX191dmNfZmluZF9jb250cm9sKHN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHksIF9fdTMyIHY0bDJfaWQsCisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKiptYXBwaW5nLCBzdHJ1Y3QgdXZjX2NvbnRyb2wgKipjb250cm9sLAorCWludCBuZXh0KQoreworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybDsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwOworCXVuc2lnbmVkIGludCBpOworCisJaWYgKGVudGl0eSA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgZW50aXR5LT5uY29udHJvbHM7ICsraSkgeworCQljdHJsID0gJmVudGl0eS0+Y29udHJvbHNbaV07CisJCWlmIChjdHJsLT5pbmZvID09IE5VTEwpCisJCQljb250aW51ZTsKKworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwgJmN0cmwtPmluZm8tPm1hcHBpbmdzLCBsaXN0KSB7CisJCQlpZiAoKG1hcC0+aWQgPT0gdjRsMl9pZCkgJiYgIW5leHQpIHsKKwkJCQkqY29udHJvbCA9IGN0cmw7CisJCQkJKm1hcHBpbmcgPSBtYXA7CisJCQkJcmV0dXJuOworCQkJfQorCisJCQlpZiAoKCptYXBwaW5nID09IE5VTEwgfHwgKCptYXBwaW5nKS0+aWQgPiBtYXAtPmlkKSAmJgorCQkJICAgIChtYXAtPmlkID4gdjRsMl9pZCkgJiYgbmV4dCkgeworCQkJCSpjb250cm9sID0gY3RybDsKKwkJCQkqbWFwcGluZyA9IG1hcDsKKwkJCX0KKwkJfQorCX0KK30KKworc3RydWN0IHV2Y19jb250cm9sICp1dmNfZmluZF9jb250cm9sKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlfX3UzMiB2NGwyX2lkLCBzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqKm1hcHBpbmcpCit7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsID0gTlVMTDsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCWludCBuZXh0ID0gdjRsMl9pZCAmIFY0TDJfQ1RSTF9GTEFHX05FWFRfQ1RSTDsKKworCSptYXBwaW5nID0gTlVMTDsKKworCS8qIE1hc2sgdGhlIHF1ZXJ5IGZsYWdzLiAqLworCXY0bDJfaWQgJj0gVjRMMl9DVFJMX0lEX01BU0s7CisKKwkvKiBGaW5kIHRoZSBjb250cm9sLiAqLworCV9fdXZjX2ZpbmRfY29udHJvbCh2aWRlby0+cHJvY2Vzc2luZywgdjRsMl9pZCwgbWFwcGluZywgJmN0cmwsIG5leHQpOworCWlmIChjdHJsICYmICFuZXh0KQorCQlyZXR1cm4gY3RybDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmdmlkZW8tPml0ZXJtcywgY2hhaW4pIHsKKwkJX191dmNfZmluZF9jb250cm9sKGVudGl0eSwgdjRsMl9pZCwgbWFwcGluZywgJmN0cmwsIG5leHQpOworCQlpZiAoY3RybCAmJiAhbmV4dCkKKwkJCXJldHVybiBjdHJsOworCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmdmlkZW8tPmV4dGVuc2lvbnMsIGNoYWluKSB7CisJCV9fdXZjX2ZpbmRfY29udHJvbChlbnRpdHksIHY0bDJfaWQsIG1hcHBpbmcsICZjdHJsLCBuZXh0KTsKKwkJaWYgKGN0cmwgJiYgIW5leHQpCisJCQlyZXR1cm4gY3RybDsKKwl9CisKKwlpZiAoY3RybCA9PSBOVUxMICYmICFuZXh0KQorCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJDb250cm9sIDB4JTA4eCBub3QgZm91bmQuXG4iLAorCQkJCXY0bDJfaWQpOworCisJcmV0dXJuIGN0cmw7Cit9CisKK2ludCB1dmNfcXVlcnlfdjRsMl9jdHJsKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdjRsMl9xdWVyeWN0cmwgKnY0bDJfY3RybCkKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmw7CisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcHBpbmc7CisJc3RydWN0IHV2Y19tZW51X2luZm8gKm1lbnU7CisJdW5zaWduZWQgaW50IGk7CisJX191OCBkYXRhWzhdOworCWludCByZXQ7CisKKwljdHJsID0gdXZjX2ZpbmRfY29udHJvbCh2aWRlbywgdjRsMl9jdHJsLT5pZCwgJm1hcHBpbmcpOworCWlmIChjdHJsID09IE5VTEwpCisJCXJldHVybiAtRUlOVkFMOworCisJdjRsMl9jdHJsLT5pZCA9IG1hcHBpbmctPmlkOworCXY0bDJfY3RybC0+dHlwZSA9IG1hcHBpbmctPnY0bDJfdHlwZTsKKwlzdHJuY3B5KHY0bDJfY3RybC0+bmFtZSwgbWFwcGluZy0+bmFtZSwgc2l6ZW9mIHY0bDJfY3RybC0+bmFtZSk7CisJdjRsMl9jdHJsLT5mbGFncyA9IDA7CisKKwlpZiAoIShjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX1NFVF9DVVIpKQorCQl2NGwyX2N0cmwtPmZsYWdzIHw9IFY0TDJfQ1RSTF9GTEFHX1JFQURfT05MWTsKKworCWlmIChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0dFVF9ERUYpIHsKKwkJaWYgKChyZXQgPSB1dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBHRVRfREVGLCBjdHJsLT5lbnRpdHktPmlkLAorCQkJCXZpZGVvLT5kZXYtPmludGZudW0sIGN0cmwtPmluZm8tPnNlbGVjdG9yLAorCQkJCSZkYXRhLCBjdHJsLT5pbmZvLT5zaXplKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKwkJdjRsMl9jdHJsLT5kZWZhdWx0X3ZhbHVlID0gdXZjX2dldF9sZV92YWx1ZShkYXRhLCBtYXBwaW5nKTsKKwl9CisKKwlpZiAobWFwcGluZy0+djRsMl90eXBlID09IFY0TDJfQ1RSTF9UWVBFX01FTlUpIHsKKwkJdjRsMl9jdHJsLT5taW5pbXVtID0gMDsKKwkJdjRsMl9jdHJsLT5tYXhpbXVtID0gbWFwcGluZy0+bWVudV9jb3VudCAtIDE7CisJCXY0bDJfY3RybC0+c3RlcCA9IDE7CisKKwkJbWVudSA9IG1hcHBpbmctPm1lbnVfaW5mbzsKKwkJZm9yIChpID0gMDsgaSA8IG1hcHBpbmctPm1lbnVfY291bnQ7ICsraSwgKyttZW51KSB7CisJCQlpZiAobWVudS0+dmFsdWUgPT0gdjRsMl9jdHJsLT5kZWZhdWx0X3ZhbHVlKSB7CisJCQkJdjRsMl9jdHJsLT5kZWZhdWx0X3ZhbHVlID0gaTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCXJldHVybiAwOworCX0KKworCWlmIChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0dFVF9NSU4pIHsKKwkJaWYgKChyZXQgPSB1dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBHRVRfTUlOLCBjdHJsLT5lbnRpdHktPmlkLAorCQkJCXZpZGVvLT5kZXYtPmludGZudW0sIGN0cmwtPmluZm8tPnNlbGVjdG9yLAorCQkJCSZkYXRhLCBjdHJsLT5pbmZvLT5zaXplKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKwkJdjRsMl9jdHJsLT5taW5pbXVtID0gdXZjX2dldF9sZV92YWx1ZShkYXRhLCBtYXBwaW5nKTsKKwl9CisJaWYgKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfR0VUX01BWCkgeworCQlpZiAoKHJldCA9IHV2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIEdFVF9NQVgsIGN0cmwtPmVudGl0eS0+aWQsCisJCQkJdmlkZW8tPmRldi0+aW50Zm51bSwgY3RybC0+aW5mby0+c2VsZWN0b3IsCisJCQkJJmRhdGEsIGN0cmwtPmluZm8tPnNpemUpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCQl2NGwyX2N0cmwtPm1heGltdW0gPSB1dmNfZ2V0X2xlX3ZhbHVlKGRhdGEsIG1hcHBpbmcpOworCX0KKwlpZiAoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9HRVRfUkVTKSB7CisJCWlmICgocmV0ID0gdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgR0VUX1JFUywgY3RybC0+ZW50aXR5LT5pZCwKKwkJCQl2aWRlby0+ZGV2LT5pbnRmbnVtLCBjdHJsLT5pbmZvLT5zZWxlY3RvciwKKwkJCQkmZGF0YSwgY3RybC0+aW5mby0+c2l6ZSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisJCXY0bDJfY3RybC0+c3RlcCA9IHV2Y19nZXRfbGVfdmFsdWUoZGF0YSwgbWFwcGluZyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIENvbnRyb2wgdHJhbnNhY3Rpb25zCisgKgorICogVG8gbWFrZSBleHRlbmRlZCBzZXQgb3BlcmF0aW9ucyBhcyBhdG9taWMgYXMgdGhlIGhhcmR3YXJlIGFsbG93cywgY29udHJvbHMKKyAqIGFyZSBoYW5kbGVkIHVzaW5nIGJlZ2luL2NvbW1pdC9yb2xsYmFjayBvcGVyYXRpb25zLgorICoKKyAqIEF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzZXQgcmVxdWVzdCwgdXZjX2N0cmxfYmVnaW4gc2hvdWxkIGJlIGNhbGxlZCB0bworICogaW5pdGlhbGl6ZSB0aGUgcmVxdWVzdC4gVGhpcyBmdW5jdGlvbiBhY3F1aXJlcyB0aGUgY29udHJvbCBsb2NrLgorICoKKyAqIFdoZW4gc2V0dGluZyBhIGNvbnRyb2wsIHRoZSBuZXcgdmFsdWUgaXMgc3RvcmVkIGluIHRoZSBjb250cm9sIGRhdGEgZmllbGQKKyAqIGF0IHBvc2l0aW9uIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVC4gVGhlIGNvbnRyb2wgaXMgdGhlbiBtYXJrZWQgYXMgZGlydHkgZm9yCisgKiBsYXRlciBwcm9jZXNzaW5nLiBJZiB0aGUgVVZDIGFuZCBWNEwyIGNvbnRyb2wgc2l6ZXMgZGlmZmVyLCB0aGUgY3VycmVudAorICogdmFsdWUgaXMgbG9hZGVkIGZyb20gdGhlIGhhcmR3YXJlIGJlZm9yZSBzdG9yaW5nIHRoZSBuZXcgdmFsdWUgaW4gdGhlIGRhdGEKKyAqIGZpZWxkLgorICoKKyAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIGNvbnRyb2xzIGluIHRoZSB0cmFuc2FjdGlvbiwgdXZjX2N0cmxfY29tbWl0IG9yCisgKiB1dmNfY3RybF9yb2xsYmFjayBtdXN0IGJlIGNhbGxlZCB0byBhcHBseSB0aGUgcGVuZGluZyBjaGFuZ2VzIHRvIHRoZQorICogaGFyZHdhcmUgb3IgcmV2ZXJ0IHRoZW0uIFdoZW4gYXBwbHlpbmcgY2hhbmdlcywgYWxsIGNvbnRyb2xzIG1hcmtlZCBhcworICogZGlydHkgd2lsbCBiZSBtb2RpZmllZCBpbiB0aGUgVVZDIGRldmljZSwgYW5kIHRoZSBkaXJ0eSBmbGFnIHdpbGwgYmUKKyAqIGNsZWFyZWQuIFdoZW4gcmV2ZXJ0aW5nIGNvbnRyb2xzLCB0aGUgY29udHJvbCBkYXRhIGZpZWxkCisgKiBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQgaXMgcmV2ZXJ0ZWQgdG8gaXRzIHByZXZpb3VzIHZhbHVlCisgKiAoVVZDX0NUUkxfREFUQV9CQUNLVVApIGZvciBhbGwgZGlydHkgY29udHJvbHMuIEJvdGggZnVuY3Rpb25zIHJlbGVhc2UgdGhlCisgKiBjb250cm9sIGxvY2suCisgKi8KK2ludCB1dmNfY3RybF9iZWdpbihzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pCit7CisJcmV0dXJuIG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmdmlkZW8tPmN0cmxfbXV0ZXgpID8gLUVSRVNUQVJUU1lTIDogMDsKK30KKworc3RhdGljIGludCB1dmNfY3RybF9jb21taXRfZW50aXR5KHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsCisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eSwgaW50IHJvbGxiYWNrKQoreworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybDsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0OworCisJaWYgKGVudGl0eSA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKworCWZvciAoaSA9IDA7IGkgPCBlbnRpdHktPm5jb250cm9sczsgKytpKSB7CisJCWN0cmwgPSAmZW50aXR5LT5jb250cm9sc1tpXTsKKwkJaWYgKGN0cmwtPmluZm8gPT0gTlVMTCB8fCAhY3RybC0+ZGlydHkpCisJCQljb250aW51ZTsKKworCQlpZiAoIXJvbGxiYWNrKQorCQkJcmV0ID0gdXZjX3F1ZXJ5X2N0cmwoZGV2LCBTRVRfQ1VSLCBjdHJsLT5lbnRpdHktPmlkLAorCQkJCWRldi0+aW50Zm51bSwgY3RybC0+aW5mby0+c2VsZWN0b3IsCisJCQkJdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLAorCQkJCWN0cmwtPmluZm8tPnNpemUpOworCQllbHNlCisJCQlyZXQgPSAwOworCisJCWlmIChyb2xsYmFjayB8fCByZXQgPCAwKQorCQkJbWVtY3B5KHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwKKwkJCSAgICAgICB1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQkFDS1VQKSwKKwkJCSAgICAgICBjdHJsLT5pbmZvLT5zaXplKTsKKworCQlpZiAoKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfR0VUX0NVUikgPT0gMCkKKwkJCWN0cmwtPmxvYWRlZCA9IDA7CisKKwkJY3RybC0+ZGlydHkgPSAwOworCisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworaW50IF9fdXZjX2N0cmxfY29tbWl0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywgaW50IHJvbGxiYWNrKQoreworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisJaW50IHJldCA9IDA7CisKKwkvKiBGaW5kIHRoZSBjb250cm9sLiAqLworCXJldCA9IHV2Y19jdHJsX2NvbW1pdF9lbnRpdHkodmlkZW8tPmRldiwgdmlkZW8tPnByb2Nlc3NpbmcsIHJvbGxiYWNrKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBkb25lOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZ2aWRlby0+aXRlcm1zLCBjaGFpbikgeworCQlyZXQgPSB1dmNfY3RybF9jb21taXRfZW50aXR5KHZpZGVvLT5kZXYsIGVudGl0eSwgcm9sbGJhY2spOworCQlpZiAocmV0IDwgMCkKKwkJCWdvdG8gZG9uZTsKKwl9CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJnZpZGVvLT5leHRlbnNpb25zLCBjaGFpbikgeworCQlyZXQgPSB1dmNfY3RybF9jb21taXRfZW50aXR5KHZpZGVvLT5kZXYsIGVudGl0eSwgcm9sbGJhY2spOworCQlpZiAocmV0IDwgMCkKKwkJCWdvdG8gZG9uZTsKKwl9CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZ2aWRlby0+Y3RybF9tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworaW50IHV2Y19jdHJsX2dldChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2wgKnhjdHJsKQoreworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybDsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwcGluZzsKKwlzdHJ1Y3QgdXZjX21lbnVfaW5mbyAqbWVudTsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0OworCisJY3RybCA9IHV2Y19maW5kX2NvbnRyb2wodmlkZW8sIHhjdHJsLT5pZCwgJm1hcHBpbmcpOworCWlmIChjdHJsID09IE5VTEwgfHwgKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfR0VUX0NVUikgPT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIWN0cmwtPmxvYWRlZCkgeworCQlyZXQgPSB1dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBHRVRfQ1VSLCBjdHJsLT5lbnRpdHktPmlkLAorCQkJCXZpZGVvLT5kZXYtPmludGZudW0sIGN0cmwtPmluZm8tPnNlbGVjdG9yLAorCQkJCXV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwKKwkJCQljdHJsLT5pbmZvLT5zaXplKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCWlmICgoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9BVVRPX1VQREFURSkgPT0gMCkKKwkJCWN0cmwtPmxvYWRlZCA9IDE7CisJfQorCisJeGN0cmwtPnZhbHVlID0gdXZjX2dldF9sZV92YWx1ZSgKKwkJdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLCBtYXBwaW5nKTsKKworCWlmIChtYXBwaW5nLT52NGwyX3R5cGUgPT0gVjRMMl9DVFJMX1RZUEVfTUVOVSkgeworCQltZW51ID0gbWFwcGluZy0+bWVudV9pbmZvOworCQlmb3IgKGkgPSAwOyBpIDwgbWFwcGluZy0+bWVudV9jb3VudDsgKytpLCArK21lbnUpIHsKKwkJCWlmIChtZW51LT52YWx1ZSA9PSB4Y3RybC0+dmFsdWUpIHsKKwkJCQl4Y3RybC0+dmFsdWUgPSBpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludCB1dmNfY3RybF9zZXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB2NGwyX2V4dF9jb250cm9sICp4Y3RybCkKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmw7CisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcHBpbmc7CisJczMyIHZhbHVlID0geGN0cmwtPnZhbHVlOworCWludCByZXQ7CisKKwljdHJsID0gdXZjX2ZpbmRfY29udHJvbCh2aWRlbywgeGN0cmwtPmlkLCAmbWFwcGluZyk7CisJaWYgKGN0cmwgPT0gTlVMTCB8fCAoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9TRVRfQ1VSKSA9PSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChtYXBwaW5nLT52NGwyX3R5cGUgPT0gVjRMMl9DVFJMX1RZUEVfTUVOVSkgeworCQlpZiAodmFsdWUgPCAwIHx8IHZhbHVlID49IG1hcHBpbmctPm1lbnVfY291bnQpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJdmFsdWUgPSBtYXBwaW5nLT5tZW51X2luZm9bdmFsdWVdLnZhbHVlOworCX0KKworCWlmICghY3RybC0+bG9hZGVkICYmIChjdHJsLT5pbmZvLT5zaXplICogOCkgIT0gbWFwcGluZy0+c2l6ZSkgeworCQlpZiAoKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfR0VUX0NVUikgPT0gMCkgeworCQkJbWVtc2V0KHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwKKwkJCQkwLCBjdHJsLT5pbmZvLT5zaXplKTsKKwkJfSBlbHNlIHsKKwkJCXJldCA9IHV2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIEdFVF9DVVIsCisJCQkJY3RybC0+ZW50aXR5LT5pZCwgdmlkZW8tPmRldi0+aW50Zm51bSwKKwkJCQljdHJsLT5pbmZvLT5zZWxlY3RvciwKKwkJCQl1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksCisJCQkJY3RybC0+aW5mby0+c2l6ZSk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0OworCQl9CisKKwkJaWYgKChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0FVVE9fVVBEQVRFKSA9PSAwKQorCQkJY3RybC0+bG9hZGVkID0gMTsKKwl9CisKKwlpZiAoIWN0cmwtPmRpcnR5KSB7CisJCW1lbWNweSh1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQkFDS1VQKSwKKwkJICAgICAgIHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwKKwkJICAgICAgIGN0cmwtPmluZm8tPnNpemUpOworCX0KKworCXV2Y19zZXRfbGVfdmFsdWUodmFsdWUsCisJCXV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwgbWFwcGluZyk7CisKKwljdHJsLT5kaXJ0eSA9IDE7CisJY3RybC0+bW9kaWZpZWQgPSAxOworCXJldHVybiAwOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogRHluYW1pYyBjb250cm9scworICovCisKK2ludCB1dmNfeHVfY3RybF9xdWVyeShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHV2Y194dV9jb250cm9sICp4Y3RybCwgaW50IHNldCkKK3sKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybCA9IE5VTEw7CisJdW5zaWduZWQgaW50IGksIGZvdW5kID0gMDsKKwlfX3U4ICpkYXRhOworCWludCByZXQ7CisKKwkvKiBGaW5kIHRoZSBleHRlbnNpb24gdW5pdC4gKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJnZpZGVvLT5leHRlbnNpb25zLCBjaGFpbikgeworCQlpZiAoZW50aXR5LT5pZCA9PSB4Y3RybC0+dW5pdCkKKwkJCWJyZWFrOworCX0KKworCWlmIChlbnRpdHktPmlkICE9IHhjdHJsLT51bml0KSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkV4dGVuc2lvbiB1bml0ICV1IG5vdCBmb3VuZC5cbiIsCisJCQl4Y3RybC0+dW5pdCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIEZpbmQgdGhlIGNvbnRyb2wuICovCisJZm9yIChpID0gMDsgaSA8IGVudGl0eS0+bmNvbnRyb2xzOyArK2kpIHsKKwkJY3RybCA9ICZlbnRpdHktPmNvbnRyb2xzW2ldOworCQlpZiAoY3RybC0+aW5mbyA9PSBOVUxMKQorCQkJY29udGludWU7CisKKwkJaWYgKGN0cmwtPmluZm8tPnNlbGVjdG9yID09IHhjdHJsLT5zZWxlY3RvcikgeworCQkJZm91bmQgPSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIWZvdW5kKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwKKwkJCSJDb250cm9sICIgVVZDX0dVSURfRk9STUFUICIvJXUgbm90IGZvdW5kLlxuIiwKKwkJCVVWQ19HVUlEX0FSR1MoZW50aXR5LT5leHRlbnNpb24uZ3VpZEV4dGVuc2lvbkNvZGUpLAorCQkJeGN0cmwtPnNlbGVjdG9yKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogVmFsaWRhdGUgY29udHJvbCBkYXRhIHNpemUuICovCisJaWYgKGN0cmwtPmluZm8tPnNpemUgIT0geGN0cmwtPnNpemUpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKChzZXQgJiYgIShjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX1NFVF9DVVIpKSB8fAorCSAgICAoIXNldCAmJiAhKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfR0VUX0NVUikpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJnZpZGVvLT5jdHJsX211dGV4KSkKKwkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKworCW1lbWNweSh1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQkFDS1VQKSwKKwkgICAgICAgdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLAorCSAgICAgICB4Y3RybC0+c2l6ZSk7CisJZGF0YSA9IHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKTsKKworCWlmIChzZXQgJiYgY29weV9mcm9tX3VzZXIoZGF0YSwgeGN0cmwtPmRhdGEsIHhjdHJsLT5zaXplKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIG91dDsKKwl9CisKKwlyZXQgPSB1dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBzZXQgPyBTRVRfQ1VSIDogR0VUX0NVUiwgeGN0cmwtPnVuaXQsCisJCQkgICAgIHZpZGVvLT5kZXYtPmludGZudW0sIHhjdHJsLT5zZWxlY3RvciwgZGF0YSwKKwkJCSAgICAgeGN0cmwtPnNpemUpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIG91dDsKKworCWlmICghc2V0ICYmIGNvcHlfdG9fdXNlcih4Y3RybC0+ZGF0YSwgZGF0YSwgeGN0cmwtPnNpemUpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0OworCX0KKworb3V0OgorCWlmIChyZXQpCisJCW1lbWNweSh1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksCisJCSAgICAgICB1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQkFDS1VQKSwKKwkJICAgICAgIHhjdHJsLT5zaXplKTsKKworCW11dGV4X3VubG9jaygmdmlkZW8tPmN0cmxfbXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBTdXNwZW5kL3Jlc3VtZQorICovCisKKy8qCisgKiBSZXN0b3JlIGNvbnRyb2wgdmFsdWVzIGFmdGVyIHJlc3VtZSwgc2tpcHBpbmcgY29udHJvbHMgdGhhdCBoYXZlbid0IGJlZW4KKyAqIGNoYW5nZWQuCisgKgorICogVE9ETworICogLSBEb24ndCByZXN0b3JlIG1vZGlmaWVkIGNvbnRyb2xzIHRoYXQgYXJlIGJhY2sgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZS4KKyAqIC0gSGFuZGxlIHJlc3RvcmUgb3JkZXIgKEF1dG8tRXhwb3N1cmUgTW9kZSBzaG91bGQgYmUgcmVzdG9yZWQgYmVmb3JlCisgKiAgIEV4cG9zdXJlIFRpbWUpLgorICovCitpbnQgdXZjX2N0cmxfcmVzdW1lX2RldmljZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybDsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisKKwkvKiBXYWxrIHRoZSBlbnRpdGllcyBsaXN0IGFuZCByZXN0b3JlIGNvbnRyb2xzIHdoZW4gcG9zc2libGUuICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZkZXYtPmVudGl0aWVzLCBsaXN0KSB7CisKKwkJZm9yIChpID0gMDsgaSA8IGVudGl0eS0+bmNvbnRyb2xzOyArK2kpIHsKKwkJCWN0cmwgPSAmZW50aXR5LT5jb250cm9sc1tpXTsKKworCQkJaWYgKGN0cmwtPmluZm8gPT0gTlVMTCB8fCAhY3RybC0+bW9kaWZpZWQgfHwKKwkJCSAgICAoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9SRVNUT1JFKSA9PSAwKQorCQkJCWNvbnRpbnVlOworCisJCQlwcmludGsoS0VSTl9JTkZPICJyZXN0b3JpbmcgY29udHJvbCAiIFVWQ19HVUlEX0ZPUk1BVAorCQkJCSIvJXUvJXVcbiIsIFVWQ19HVUlEX0FSR1MoY3RybC0+aW5mby0+ZW50aXR5KSwKKwkJCQljdHJsLT5pbmZvLT5pbmRleCwgY3RybC0+aW5mby0+c2VsZWN0b3IpOworCQkJY3RybC0+ZGlydHkgPSAxOworCQl9CisKKwkJcmV0ID0gdXZjX2N0cmxfY29tbWl0X2VudGl0eShkZXYsIGVudGl0eSwgMCk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIENvbnRyb2wgYW5kIG1hcHBpbmcgaGFuZGxpbmcKKyAqLworCitzdGF0aWMgdm9pZCB1dmNfY3RybF9hZGRfY3RybChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LAorCXN0cnVjdCB1dmNfY29udHJvbF9pbmZvICppbmZvKQoreworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsID0gTlVMTDsKKwlpbnQgcmV0LCBmb3VuZCA9IDA7CisJdW5zaWduZWQgaW50IGk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJmRldi0+ZW50aXRpZXMsIGxpc3QpIHsKKwkJaWYgKCF1dmNfZW50aXR5X21hdGNoX2d1aWQoZW50aXR5LCBpbmZvLT5lbnRpdHkpKQorCQkJY29udGludWU7CisKKwkJZm9yIChpID0gMDsgaSA8IGVudGl0eS0+bmNvbnRyb2xzOyArK2kpIHsKKwkJCWN0cmwgPSAmZW50aXR5LT5jb250cm9sc1tpXTsKKwkJCWlmIChjdHJsLT5pbmRleCA9PSBpbmZvLT5pbmRleCkgeworCQkJCWZvdW5kID0gMTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCWlmIChmb3VuZCkKKwkJCWJyZWFrOworCX0KKworCWlmICghZm91bmQpCisJCXJldHVybjsKKworCWlmIChVVkNfRU5USVRZX1RZUEUoZW50aXR5KSA9PSBWQ19FWFRFTlNJT05fVU5JVCkgeworCQkvKiBDaGVjayBpZiB0aGUgZGV2aWNlIGNvbnRyb2wgaW5mb3JtYXRpb24gYW5kIGxlbmd0aCBtYXRjaAorCQkgKiB0aGUgdXNlciBzdXBwbGllZCBpbmZvcm1hdGlvbi4KKwkJICovCisJCV9fdTMyIGZsYWdzOworCQlfX2xlMTYgc2l6ZTsKKwkJX191OCBpbmY7CisKKwkJaWYgKChyZXQgPSB1dmNfcXVlcnlfY3RybChkZXYsIEdFVF9MRU4sIGN0cmwtPmVudGl0eS0+aWQsCisJCQlkZXYtPmludGZudW0sIGluZm8tPnNlbGVjdG9yLCAoX191OCAqKSZzaXplLCAyKSkgPCAwKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJHRVRfTEVOIGZhaWxlZCBvbiAiCisJCQkJImNvbnRyb2wgIiBVVkNfR1VJRF9GT1JNQVQgIi8ldSAoJWQpLlxuIiwKKwkJCQlVVkNfR1VJRF9BUkdTKGluZm8tPmVudGl0eSksIGluZm8tPnNlbGVjdG9yLAorCQkJCXJldCk7CisJCQlyZXR1cm47CisJCX0KKworCQlpZiAoaW5mby0+c2l6ZSAhPSBsZTE2X3RvX2NwdShzaXplKSkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiQ29udHJvbCAiIFVWQ19HVUlEX0ZPUk1BVAorCQkJCSIvJXUgc2l6ZSBkb2Vzbid0IG1hdGNoIHVzZXIgc3VwcGxpZWQgIgorCQkJCSJ2YWx1ZS5cbiIsIFVWQ19HVUlEX0FSR1MoaW5mby0+ZW50aXR5KSwKKwkJCQlpbmZvLT5zZWxlY3Rvcik7CisJCQlyZXR1cm47CisJCX0KKworCQlpZiAoKHJldCA9IHV2Y19xdWVyeV9jdHJsKGRldiwgR0VUX0lORk8sIGN0cmwtPmVudGl0eS0+aWQsCisJCQlkZXYtPmludGZudW0sIGluZm8tPnNlbGVjdG9yLCAmaW5mLCAxKSkgPCAwKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJHRVRfSU5GTyBmYWlsZWQgb24gIgorCQkJCSJjb250cm9sICIgVVZDX0dVSURfRk9STUFUICIvJXUgKCVkKS5cbiIsCisJCQkJVVZDX0dVSURfQVJHUyhpbmZvLT5lbnRpdHkpLCBpbmZvLT5zZWxlY3RvciwKKwkJCQlyZXQpOworCQkJcmV0dXJuOworCQl9CisKKwkJZmxhZ3MgPSBpbmZvLT5mbGFnczsKKwkJaWYgKCgoZmxhZ3MgJiBVVkNfQ09OVFJPTF9HRVRfQ1VSKSAmJiAhKGluZiAmICgxIDw8IDApKSkgfHwKKwkJICAgICgoZmxhZ3MgJiBVVkNfQ09OVFJPTF9TRVRfQ1VSKSAmJiAhKGluZiAmICgxIDw8IDEpKSkpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkNvbnRyb2wgIgorCQkJCVVWQ19HVUlEX0ZPUk1BVCAiLyV1IGZsYWdzIGRvbid0IG1hdGNoICIKKwkJCQkic3VwcG9ydGVkIG9wZXJhdGlvbnMuXG4iLAorCQkJCVVWQ19HVUlEX0FSR1MoaW5mby0+ZW50aXR5KSwgaW5mby0+c2VsZWN0b3IpOworCQkJcmV0dXJuOworCQl9CisJfQorCisJY3RybC0+aW5mbyA9IGluZm87CisJY3RybC0+ZGF0YSA9IGttYWxsb2MoY3RybC0+aW5mby0+c2l6ZSAqIFVWQ19DVFJMX05EQVRBLCBHRlBfS0VSTkVMKTsKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJBZGRlZCBjb250cm9sICIgVVZDX0dVSURfRk9STUFUICIvJXUgIgorCQkidG8gZGV2aWNlICVzIGVudGl0eSAldVxuIiwgVVZDX0dVSURfQVJHUyhjdHJsLT5pbmZvLT5lbnRpdHkpLAorCQljdHJsLT5pbmZvLT5zZWxlY3RvciwgZGV2LT51ZGV2LT5kZXZwYXRoLCBlbnRpdHktPmlkKTsKK30KKworLyoKKyAqIEFkZCBhbiBpdGVtIHRvIHRoZSBVVkMgY29udHJvbCBpbmZvcm1hdGlvbiBsaXN0LCBhbmQgaW5zdGFudGlhdGUgYSBjb250cm9sCisgKiBzdHJ1Y3R1cmUgZm9yIGVhY2ggZGV2aWNlIHRoYXQgc3VwcG9ydHMgdGhlIGNvbnRyb2wuCisgKi8KK2ludCB1dmNfY3RybF9hZGRfaW5mbyhzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqaW5mbykKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqY3RybDsKKwlzdHJ1Y3QgdXZjX2RldmljZSAqZGV2OworCWludCByZXQgPSAwOworCisJLyogRmluZCBtYXRjaGluZyBjb250cm9scyBieSB3YWxraW5nIHRoZSBkZXZpY2VzLCBlbnRpdGllcyBhbmQKKwkgKiBjb250cm9scyBsaXN0LgorCSAqLworCW11dGV4X2xvY2soJnV2Y19kcml2ZXIuY3RybF9tdXRleCk7CisKKwkvKiBGaXJzdCBjaGVjayBpZiB0aGUgbGlzdCBjb250YWlucyBhIGNvbnRyb2wgbWF0Y2hpbmcgdGhlIG5ldyBvbmUuCisJICogQmFpbCBvdXQgaWYgaXQgZG9lcy4KKwkgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0cmwsICZ1dmNfZHJpdmVyLmNvbnRyb2xzLCBsaXN0KSB7CisJCWlmIChtZW1jbXAoY3RybC0+ZW50aXR5LCBpbmZvLT5lbnRpdHksIDE2KSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChjdHJsLT5zZWxlY3RvciA9PSBpbmZvLT5zZWxlY3RvcikgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiQ29udHJvbCAiCisJCQkJVVZDX0dVSURfRk9STUFUICIvJXUgaXMgYWxyZWFkeSBkZWZpbmVkLlxuIiwKKwkJCQlVVkNfR1VJRF9BUkdTKGluZm8tPmVudGl0eSksIGluZm8tPnNlbGVjdG9yKTsKKwkJCXJldCA9IC1FRVhJU1Q7CisJCQlnb3RvIGVuZDsKKwkJfQorCQlpZiAoY3RybC0+aW5kZXggPT0gaW5mby0+aW5kZXgpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkNvbnRyb2wgIgorCQkJCVVWQ19HVUlEX0ZPUk1BVCAiLyV1IHdvdWxkIG92ZXJ3cml0ZSBpbmRleCAiCisJCQkJIiVkLlxuIiwgVVZDX0dVSURfQVJHUyhpbmZvLT5lbnRpdHkpLAorCQkJCWluZm8tPnNlbGVjdG9yLCBpbmZvLT5pbmRleCk7CisJCQlyZXQgPSAtRUVYSVNUOworCQkJZ290byBlbmQ7CisJCX0KKwl9CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJnV2Y19kcml2ZXIuZGV2aWNlcywgbGlzdCkKKwkJdXZjX2N0cmxfYWRkX2N0cmwoZGV2LCBpbmZvKTsKKworCUlOSVRfTElTVF9IRUFEKCZpbmZvLT5tYXBwaW5ncyk7CisJbGlzdF9hZGRfdGFpbCgmaW5mby0+bGlzdCwgJnV2Y19kcml2ZXIuY29udHJvbHMpOworZW5kOgorCW11dGV4X3VubG9jaygmdXZjX2RyaXZlci5jdHJsX211dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCitpbnQgdXZjX2N0cmxfYWRkX21hcHBpbmcoc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcHBpbmcpCit7CisJc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmluZm87CisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcDsKKwlpbnQgcmV0ID0gLUVJTlZBTDsKKworCWlmIChtYXBwaW5nLT5pZCAmIH5WNEwyX0NUUkxfSURfTUFTSykgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJDYW4ndCBhZGQgbWFwcGluZyAnJXMnIHdpdGggIgorCQkJImludmFsaWQgY29udHJvbCBpZCAweCUwOHhcbiIsIG1hcHBpbmctPm5hbWUsCisJCQltYXBwaW5nLT5pZCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCW11dGV4X2xvY2soJnV2Y19kcml2ZXIuY3RybF9tdXRleCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShpbmZvLCAmdXZjX2RyaXZlci5jb250cm9scywgbGlzdCkgeworCQlpZiAobWVtY21wKGluZm8tPmVudGl0eSwgbWFwcGluZy0+ZW50aXR5LCAxNikgfHwKKwkJCWluZm8tPnNlbGVjdG9yICE9IG1hcHBpbmctPnNlbGVjdG9yKQorCQkJY29udGludWU7CisKKwkJaWYgKGluZm8tPnNpemUgKiA4IDwgbWFwcGluZy0+c2l6ZSArIG1hcHBpbmctPm9mZnNldCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiTWFwcGluZyAnJXMnIHdvdWxkICIKKwkJCQkib3ZlcmZsb3cgY29udHJvbCAiIFVWQ19HVUlEX0ZPUk1BVCAiLyV1XG4iLAorCQkJCW1hcHBpbmctPm5hbWUsIFVWQ19HVUlEX0FSR1MoaW5mby0+ZW50aXR5KSwKKwkJCQlpbmZvLT5zZWxlY3Rvcik7CisJCQlyZXQgPSAtRU9WRVJGTE9XOworCQkJZ290byBlbmQ7CisJCX0KKworCQkvKiBDaGVjayBpZiB0aGUgbGlzdCBjb250YWlucyBhIG1hcHBpbmcgbWF0Y2hpbmcgdGhlIG5ldyBvbmUuCisJCSAqIEJhaWwgb3V0IGlmIGl0IGRvZXMuCisJCSAqLworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1hcCwgJmluZm8tPm1hcHBpbmdzLCBsaXN0KSB7CisJCQlpZiAobWFwLT5pZCA9PSBtYXBwaW5nLT5pZCkgeworCQkJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIk1hcHBpbmcgJyVzJyBpcyAiCisJCQkJCSJhbHJlYWR5IGRlZmluZWQuXG4iLCBtYXBwaW5nLT5uYW1lKTsKKwkJCQlyZXQgPSAtRUVYSVNUOworCQkJCWdvdG8gZW5kOworCQkJfQorCQl9CisKKwkJbWFwcGluZy0+Y3RybCA9IGluZm87CisJCWxpc3RfYWRkX3RhaWwoJm1hcHBpbmctPmxpc3QsICZpbmZvLT5tYXBwaW5ncyk7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkFkZGluZyBtYXBwaW5nICVzIHRvIGNvbnRyb2wgIgorCQkJVVZDX0dVSURfRk9STUFUICIvJXUuXG4iLCBtYXBwaW5nLT5uYW1lLAorCQkJVVZDX0dVSURfQVJHUyhpbmZvLT5lbnRpdHkpLCBpbmZvLT5zZWxlY3Rvcik7CisKKwkJcmV0ID0gMDsKKwkJYnJlYWs7CisJfQorZW5kOgorCW11dGV4X3VubG9jaygmdXZjX2RyaXZlci5jdHJsX211dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogSW5pdGlhbGl6ZSBkZXZpY2UgY29udHJvbHMuCisgKi8KK2ludCB1dmNfY3RybF9pbml0X2RldmljZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB1dmNfY29udHJvbF9pbmZvICppbmZvOworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybDsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCXVuc2lnbmVkIGludCBpOworCisJLyogV2FsayB0aGUgZW50aXRpZXMgbGlzdCBhbmQgaW5zdGFudGlhdGUgY29udHJvbHMgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJmRldi0+ZW50aXRpZXMsIGxpc3QpIHsKKwkJdW5zaWduZWQgaW50IGJDb250cm9sU2l6ZSA9IDAsIG5jb250cm9scyA9IDA7CisJCV9fdTggKmJtQ29udHJvbHMgPSBOVUxMOworCisJCWlmIChVVkNfRU5USVRZX1RZUEUoZW50aXR5KSA9PSBWQ19FWFRFTlNJT05fVU5JVCkgeworCQkJYm1Db250cm9scyA9IGVudGl0eS0+ZXh0ZW5zaW9uLmJtQ29udHJvbHM7CisJCQliQ29udHJvbFNpemUgPSBlbnRpdHktPmV4dGVuc2lvbi5iQ29udHJvbFNpemU7CisJCX0gZWxzZSBpZiAoVVZDX0VOVElUWV9UWVBFKGVudGl0eSkgPT0gVkNfUFJPQ0VTU0lOR19VTklUKSB7CisJCQlibUNvbnRyb2xzID0gZW50aXR5LT5wcm9jZXNzaW5nLmJtQ29udHJvbHM7CisJCQliQ29udHJvbFNpemUgPSBlbnRpdHktPnByb2Nlc3NpbmcuYkNvbnRyb2xTaXplOworCQl9IGVsc2UgaWYgKFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpID09IElUVF9DQU1FUkEpIHsKKwkJCWJtQ29udHJvbHMgPSBlbnRpdHktPmNhbWVyYS5ibUNvbnRyb2xzOworCQkJYkNvbnRyb2xTaXplID0gZW50aXR5LT5jYW1lcmEuYkNvbnRyb2xTaXplOworCQl9CisKKwkJZm9yIChpID0gMDsgaSA8IGJDb250cm9sU2l6ZTsgKytpKQorCQkJbmNvbnRyb2xzICs9IGh3ZWlnaHQ4KGJtQ29udHJvbHNbaV0pOworCisJCWlmIChuY29udHJvbHMgPT0gMCkKKwkJCWNvbnRpbnVlOworCisJCWVudGl0eS0+Y29udHJvbHMgPSBremFsbG9jKG5jb250cm9scypzaXplb2YgKmN0cmwsIEdGUF9LRVJORUwpOworCQlpZiAoZW50aXR5LT5jb250cm9scyA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJZW50aXR5LT5uY29udHJvbHMgPSBuY29udHJvbHM7CisKKwkJY3RybCA9IGVudGl0eS0+Y29udHJvbHM7CisJCWZvciAoaSA9IDA7IGkgPCBiQ29udHJvbFNpemUgKiA4OyArK2kpIHsKKwkJCWlmICh1dmNfZ2V0X2JpdChibUNvbnRyb2xzLCBpKSA9PSAwKQorCQkJCWNvbnRpbnVlOworCisJCQljdHJsLT5lbnRpdHkgPSBlbnRpdHk7CisJCQljdHJsLT5pbmRleCA9IGk7CisJCQljdHJsKys7CisJCX0KKwl9CisKKwkvKiBXYWxrIHRoZSBjb250cm9scyBpbmZvIGxpc3QgYW5kIGFzc29jaWF0ZSB0aGVtIHdpdGggdGhlIGRldmljZQorCSAqIGNvbnRyb2xzLCB0aGVuIGFkZCB0aGUgZGV2aWNlIHRvIHRoZSBnbG9iYWwgZGV2aWNlIGxpc3QuIFRoaXMgaGFzCisJICogdG8gYmUgZG9uZSB3aGlsZSBob2xkaW5nIHRoZSBjb250cm9scyBsb2NrLCB0byBtYWtlIHN1cmUKKwkgKiB1dmNfY3RybF9hZGRfaW5mbygpIHdpbGwgbm90IGdldCBjYWxsZWQgaW4tYmV0d2Vlbi4KKwkgKi8KKwltdXRleF9sb2NrKCZ1dmNfZHJpdmVyLmN0cmxfbXV0ZXgpOworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW5mbywgJnV2Y19kcml2ZXIuY29udHJvbHMsIGxpc3QpCisJCXV2Y19jdHJsX2FkZF9jdHJsKGRldiwgaW5mbyk7CisKKwlsaXN0X2FkZF90YWlsKCZkZXYtPmxpc3QsICZ1dmNfZHJpdmVyLmRldmljZXMpOworCW11dGV4X3VubG9jaygmdXZjX2RyaXZlci5jdHJsX211dGV4KTsKKworCXJldHVybiAwOworfQorCisvKgorICogQ2xlYW51cCBkZXZpY2UgY29udHJvbHMuCisgKi8KK3ZvaWQgdXZjX2N0cmxfY2xlYW51cF9kZXZpY2Uoc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCXVuc2lnbmVkIGludCBpOworCisJLyogUmVtb3ZlIHRoZSBkZXZpY2UgZnJvbSB0aGUgZ2xvYmFsIGRldmljZXMgbGlzdCAqLworCW11dGV4X2xvY2soJnV2Y19kcml2ZXIuY3RybF9tdXRleCk7CisJaWYgKGRldi0+bGlzdC5uZXh0ICE9IE5VTEwpCisJCWxpc3RfZGVsKCZkZXYtPmxpc3QpOworCW11dGV4X3VubG9jaygmdXZjX2RyaXZlci5jdHJsX211dGV4KTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmZGV2LT5lbnRpdGllcywgbGlzdCkgeworCQlmb3IgKGkgPSAwOyBpIDwgZW50aXR5LT5uY29udHJvbHM7ICsraSkKKwkJCWtmcmVlKGVudGl0eS0+Y29udHJvbHNbaV0uZGF0YSk7CisKKwkJa2ZyZWUoZW50aXR5LT5jb250cm9scyk7CisJfQorfQorCit2b2lkIHV2Y19jdHJsX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqY3RybCA9IHV2Y19jdHJsczsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqY2VuZCA9IGN0cmwgKyBBUlJBWV9TSVpFKHV2Y19jdHJscyk7CisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcHBpbmcgPSB1dmNfY3RybF9tYXBwaW5nczsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWVuZCA9CisJCW1hcHBpbmcgKyBBUlJBWV9TSVpFKHV2Y19jdHJsX21hcHBpbmdzKTsKKworCWZvciAoOyBjdHJsIDwgY2VuZDsgKytjdHJsKQorCQl1dmNfY3RybF9hZGRfaW5mbyhjdHJsKTsKKworCWZvciAoOyBtYXBwaW5nIDwgbWVuZDsgKyttYXBwaW5nKQorCQl1dmNfY3RybF9hZGRfbWFwcGluZyhtYXBwaW5nKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19kcml2ZXIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19kcml2ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGNlZDU4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2RyaXZlci5jCkBAIC0wLDAgKzEsMTk1NSBAQAorLyoKKyAqICAgICAgdXZjX2RyaXZlci5jICAtLSAgVVNCIFZpZGVvIENsYXNzIGRyaXZlcgorICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDgKKyAqICAgICAgICAgIExhdXJlbnQgUGluY2hhcnQgKGxhdXJlbnQucGluY2hhcnRAc2t5bmV0LmJlKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworLyoKKyAqIFRoaXMgZHJpdmVyIGFpbXMgdG8gc3VwcG9ydCB2aWRlbyBpbnB1dCBkZXZpY2VzIGNvbXBsaWFudCB3aXRoIHRoZSAnVVNCCisgKiBWaWRlbyBDbGFzcycgc3BlY2lmaWNhdGlvbi4KKyAqCisgKiBUaGUgZHJpdmVyIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgZGVwcmVjYXRlZCB2NGwxIGludGVyZmFjZS4gSXQgaW1wbGVtZW50cyB0aGUKKyAqIG1tYXAgY2FwdHVyZSBtZXRob2Qgb25seSwgYW5kIGRvZXNuJ3QgZG8gYW55IGltYWdlIGZvcm1hdCBjb252ZXJzaW9uIGluCisgKiBzb2Z0d2FyZS4gSWYgeW91ciB1c2VyLXNwYWNlIGFwcGxpY2F0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBZVVlWIG9yIE1KUEVHLCBmaXgKKyAqIGl0IDotKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGUgTUpQRUcgZGF0YSBoYXZlIGJlZW4gc3RyaXBwZWQgZnJvbSB0aGVpcgorICogSHVmZm1hbiB0YWJsZXMgKERIVCBtYXJrZXIpLCB5b3Ugd2lsbCBuZWVkIHRvIGFkZCBpdCBiYWNrIGlmIHlvdXIgSlBFRworICogY29kZWMgY2FuJ3QgaGFuZGxlIE1KUEVHIGRhdGEuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisKKyNpbmNsdWRlIDxtZWRpYS92NGwyLWNvbW1vbi5oPgorCisjaW5jbHVkZSAidXZjdmlkZW8uaCIKKworI2RlZmluZSBEUklWRVJfQVVUSE9SCQkiTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBza3luZXQuYmU+IgorI2RlZmluZSBEUklWRVJfREVTQwkJIlVTQiBWaWRlbyBDbGFzcyBkcml2ZXIiCisjaWZuZGVmIERSSVZFUl9WRVJTSU9OCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OCQkidjAuMS4wIgorI2VuZGlmCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgdXZjX3F1aXJrc19wYXJhbTsKK3Vuc2lnbmVkIGludCB1dmNfdHJhY2VfcGFyYW07CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQ29udHJvbCwgZm9ybWF0cywgLi4uCisgKi8KKworc3RhdGljIHN0cnVjdCB1dmNfZm9ybWF0X2Rlc2MgdXZjX2ZtdHNbXSA9IHsKKwl7CisJCS5uYW1lCQk9ICJZVVYgNDoyOjIgKFlVWVYpIiwKKwkJLmd1aWQJCT0gVVZDX0dVSURfRk9STUFUX1lVWTIsCisJCS5mY2MJCT0gVjRMMl9QSVhfRk1UX1lVWVYsCisJfSwKKwl7CisJCS5uYW1lCQk9ICJZVVYgNDoyOjAgKE5WMTIpIiwKKwkJLmd1aWQJCT0gVVZDX0dVSURfRk9STUFUX05WMTIsCisJCS5mY2MJCT0gVjRMMl9QSVhfRk1UX05WMTIsCisJfSwKKwl7CisJCS5uYW1lCQk9ICJNSlBFRyIsCisJCS5ndWlkCQk9IFVWQ19HVUlEX0ZPUk1BVF9NSlBFRywKKwkJLmZjYwkJPSBWNEwyX1BJWF9GTVRfTUpQRUcsCisJfSwKKwl7CisJCS5uYW1lCQk9ICJZVlUgNDoyOjAgKFlWMTIpIiwKKwkJLmd1aWQJCT0gVVZDX0dVSURfRk9STUFUX1lWMTIsCisJCS5mY2MJCT0gVjRMMl9QSVhfRk1UX1lWVTQyMCwKKwl9LAorCXsKKwkJLm5hbWUJCT0gIllVViA0OjI6MCAoSTQyMCkiLAorCQkuZ3VpZAkJPSBVVkNfR1VJRF9GT1JNQVRfSTQyMCwKKwkJLmZjYwkJPSBWNEwyX1BJWF9GTVRfWVVWNDIwLAorCX0sCisJeworCQkubmFtZQkJPSAiWVVWIDQ6MjoyIChVWVZZKSIsCisJCS5ndWlkCQk9IFVWQ19HVUlEX0ZPUk1BVF9VWVZZLAorCQkuZmNjCQk9IFY0TDJfUElYX0ZNVF9VWVZZLAorCX0sCisJeworCQkubmFtZQkJPSAiR3JleXNjYWxlIiwKKwkJLmd1aWQJCT0gVVZDX0dVSURfRk9STUFUX1k4MDAsCisJCS5mY2MJCT0gVjRMMl9QSVhfRk1UX0dSRVksCisJfSwKKwl7CisJCS5uYW1lCQk9ICJSR0IgQmF5ZXIiLAorCQkuZ3VpZAkJPSBVVkNfR1VJRF9GT1JNQVRfQlk4LAorCQkuZmNjCQk9IFY0TDJfUElYX0ZNVF9TQkdHUjgsCisJfSwKK307CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXRpbGl0eSBmdW5jdGlvbnMKKyAqLworCitzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKnV2Y19maW5kX2VuZHBvaW50KHN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmFsdHMsCisJCV9fdTggZXBhZGRyKQoreworCXN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqZXA7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWx0cy0+ZGVzYy5iTnVtRW5kcG9pbnRzOyArK2kpIHsKKwkJZXAgPSAmYWx0cy0+ZW5kcG9pbnRbaV07CisJCWlmIChlcC0+ZGVzYy5iRW5kcG9pbnRBZGRyZXNzID09IGVwYWRkcikKKwkJCXJldHVybiBlcDsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHN0cnVjdCB1dmNfZm9ybWF0X2Rlc2MgKnV2Y19mb3JtYXRfYnlfZ3VpZChjb25zdCBfX3U4IGd1aWRbMTZdKQoreworCXVuc2lnbmVkIGludCBsZW4gPSBBUlJBWV9TSVpFKHV2Y19mbXRzKTsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkgeworCQlpZiAobWVtY21wKGd1aWQsIHV2Y19mbXRzW2ldLmd1aWQsIDE2KSA9PSAwKQorCQkJcmV0dXJuICZ1dmNfZm10c1tpXTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIF9fdTMyIHV2Y19jb2xvcnNwYWNlKGNvbnN0IF9fdTggcHJpbWFyaWVzKQoreworCXN0YXRpYyBjb25zdCBfX3U4IGNvbG9ycHJpbWFyaWVzW10gPSB7CisJCTAsCisJCVY0TDJfQ09MT1JTUEFDRV9TUkdCLAorCQlWNEwyX0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9NLAorCQlWNEwyX0NPTE9SU1BBQ0VfNDcwX1NZU1RFTV9CRywKKwkJVjRMMl9DT0xPUlNQQUNFX1NNUFRFMTcwTSwKKwkJVjRMMl9DT0xPUlNQQUNFX1NNUFRFMjQwTSwKKwl9OworCisJaWYgKHByaW1hcmllcyA8IEFSUkFZX1NJWkUoY29sb3JwcmltYXJpZXMpKQorCQlyZXR1cm4gY29sb3JwcmltYXJpZXNbcHJpbWFyaWVzXTsKKworCXJldHVybiAwOworfQorCisvKiBTaW1wbGlmeSBhIGZyYWN0aW9uIHVzaW5nIGEgc2ltcGxlIGNvbnRpbnVlZCBmcmFjdGlvbiBkZWNvbXBvc2l0aW9uLiBUaGUKKyAqIGlkZWEgaGVyZSBpcyB0byBjb252ZXJ0IGZyYWN0aW9ucyBzdWNoIGFzIDMzMzMzMy8xMDAwMDAwMCB0byAxLzMwIHVzaW5nCisgKiAzMiBiaXQgYXJpdGhtZXRpYyBvbmx5LiBUaGUgYWxnb3JpdGhtIGlzIG5vdCBwZXJmZWN0IGFuZCByZWxpZXMgdXBvbiB0d28KKyAqIGFyYml0cmFyeSBwYXJhbWV0ZXJzIHRvIHJlbW92ZSBub24tc2lnbmlmaWNhdGl2ZSB0ZXJtcyBmcm9tIHRoZSBzaW1wbGUKKyAqIGNvbnRpbnVlZCBmcmFjdGlvbiBkZWNvbXBvc2l0aW9uLiBVc2luZyA4IGFuZCAzMzMgZm9yIG5fdGVybXMgYW5kIHRocmVzaG9sZAorICogcmVzcGVjdGl2ZWx5IHNlZW1zIHRvIGdpdmUgbmljZSByZXN1bHRzLgorICovCit2b2lkIHV2Y19zaW1wbGlmeV9mcmFjdGlvbih1aW50MzJfdCAqbnVtZXJhdG9yLCB1aW50MzJfdCAqZGVub21pbmF0b3IsCisJCXVuc2lnbmVkIGludCBuX3Rlcm1zLCB1bnNpZ25lZCBpbnQgdGhyZXNob2xkKQoreworCXVpbnQzMl90ICphbjsKKwl1aW50MzJfdCB4LCB5LCByOworCXVuc2lnbmVkIGludCBpLCBuOworCisJYW4gPSBrbWFsbG9jKG5fdGVybXMgKiBzaXplb2YgKmFuLCBHRlBfS0VSTkVMKTsKKwlpZiAoYW4gPT0gTlVMTCkKKwkJcmV0dXJuOworCisJLyogQ29udmVydCB0aGUgZnJhY3Rpb24gdG8gYSBzaW1wbGUgY29udGludWVkIGZyYWN0aW9uLiBTZWUKKwkgKiBodHRwOi8vbWF0aGZvcnVtLm9yZy9kci5tYXRoL2ZhcS9mYXEuZnJhY3Rpb25zLmh0bWwKKwkgKiBTdG9wIGlmIHRoZSBjdXJyZW50IHRlcm0gaXMgYmlnZ2VyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGdpdmVuCisJICogdGhyZXNob2xkLgorCSAqLworCXggPSAqbnVtZXJhdG9yOworCXkgPSAqZGVub21pbmF0b3I7CisKKwlmb3IgKG4gPSAwOyBuIDwgbl90ZXJtcyAmJiB5ICE9IDA7ICsrbikgeworCQlhbltuXSA9IHggLyB5OworCQlpZiAoYW5bbl0gPj0gdGhyZXNob2xkKSB7CisJCQlpZiAobiA8IDIpCisJCQkJbisrOworCQkJYnJlYWs7CisJCX0KKworCQlyID0geCAtIGFuW25dICogeTsKKwkJeCA9IHk7CisJCXkgPSByOworCX0KKworCS8qIEV4cGFuZCB0aGUgc2ltcGxlIGNvbnRpbnVlZCBmcmFjdGlvbiBiYWNrIHRvIGFuIGludGVnZXIgZnJhY3Rpb24uICovCisJeCA9IDA7CisJeSA9IDE7CisKKwlmb3IgKGkgPSBuOyBpID4gMDsgLS1pKSB7CisJCXIgPSB5OworCQl5ID0gYW5baS0xXSAqIHkgKyB4OworCQl4ID0gcjsKKwl9CisKKwkqbnVtZXJhdG9yID0geTsKKwkqZGVub21pbmF0b3IgPSB4OworCWtmcmVlKGFuKTsKK30KKworLyogQ29udmVydCBhIGZyYWN0aW9uIHRvIGEgZnJhbWUgaW50ZXJ2YWwgaW4gMTAwbnMgbXVsdGlwbGVzLiBUaGUgaWRlYSBoZXJlIGlzCisgKiB0byBjb21wdXRlIG51bWVyYXRvciAvIGRlbm9taW5hdG9yICogMTAwMDAwMDAgdXNpbmcgMzIgYml0IGZpeGVkIHBvaW50CisgKiBhcml0aG1ldGljIG9ubHkuCisgKi8KK3VpbnQzMl90IHV2Y19mcmFjdGlvbl90b19pbnRlcnZhbCh1aW50MzJfdCBudW1lcmF0b3IsIHVpbnQzMl90IGRlbm9taW5hdG9yKQoreworCXVpbnQzMl90IG11bHRpcGxpZXI7CisKKwkvKiBTYXR1cmF0ZSB0aGUgcmVzdWx0IGlmIHRoZSBvcGVyYXRpb24gd291bGQgb3ZlcmZsb3cuICovCisJaWYgKGRlbm9taW5hdG9yID09IDAgfHwKKwkgICAgbnVtZXJhdG9yL2Rlbm9taW5hdG9yID49ICgodWludDMyX3QpLTEpLzEwMDAwMDAwKQorCQlyZXR1cm4gKHVpbnQzMl90KS0xOworCisJLyogRGl2aWRlIGJvdGggdGhlIGRlbm9taW5hdG9yIGFuZCB0aGUgbXVsdGlwbGllciBieSB0d28gdW50aWwKKwkgKiBudW1lcmF0b3IgKiBtdWx0aXBsaWVyIGRvZXNuJ3Qgb3ZlcmZsb3cuIElmIGFueW9uZSBrbm93cyBhIGJldHRlcgorCSAqIGFsZ29yaXRobSBwbGVhc2UgbGV0IG1lIGtub3cuCisJICovCisJbXVsdGlwbGllciA9IDEwMDAwMDAwOworCXdoaWxlIChudW1lcmF0b3IgPiAoKHVpbnQzMl90KS0xKS9tdWx0aXBsaWVyKSB7CisJCW11bHRpcGxpZXIgLz0gMjsKKwkJZGVub21pbmF0b3IgLz0gMjsKKwl9CisKKwlyZXR1cm4gZGVub21pbmF0b3IgPyBudW1lcmF0b3IgKiBtdWx0aXBsaWVyIC8gZGVub21pbmF0b3IgOiAwOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFRlcm1pbmFsIGFuZCB1bml0IG1hbmFnZW1lbnQKKyAqLworCitzdGF0aWMgc3RydWN0IHV2Y19lbnRpdHkgKnV2Y19lbnRpdHlfYnlfaWQoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwgaW50IGlkKQoreworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJmRldi0+ZW50aXRpZXMsIGxpc3QpIHsKKwkJaWYgKGVudGl0eS0+aWQgPT0gaWQpCisJCQlyZXR1cm4gZW50aXR5OworCX0KKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgc3RydWN0IHV2Y19lbnRpdHkgKnV2Y19lbnRpdHlfYnlfcmVmZXJlbmNlKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsCisJaW50IGlkLCBzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5KQoreworCXVuc2lnbmVkIGludCBpOworCisJaWYgKGVudGl0eSA9PSBOVUxMKQorCQllbnRpdHkgPSBsaXN0X2VudHJ5KCZkZXYtPmVudGl0aWVzLCBzdHJ1Y3QgdXZjX2VudGl0eSwgbGlzdCk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2NvbnRpbnVlKGVudGl0eSwgJmRldi0+ZW50aXRpZXMsIGxpc3QpIHsKKwkJc3dpdGNoIChVVkNfRU5USVRZX1RZUEUoZW50aXR5KSkgeworCQljYXNlIFRUX1NUUkVBTUlORzoKKwkJCWlmIChlbnRpdHktPm91dHB1dC5iU291cmNlSUQgPT0gaWQpCisJCQkJcmV0dXJuIGVudGl0eTsKKwkJCWJyZWFrOworCisJCWNhc2UgVkNfUFJPQ0VTU0lOR19VTklUOgorCQkJaWYgKGVudGl0eS0+cHJvY2Vzc2luZy5iU291cmNlSUQgPT0gaWQpCisJCQkJcmV0dXJuIGVudGl0eTsKKwkJCWJyZWFrOworCisJCWNhc2UgVkNfU0VMRUNUT1JfVU5JVDoKKwkJCWZvciAoaSA9IDA7IGkgPCBlbnRpdHktPnNlbGVjdG9yLmJOckluUGluczsgKytpKQorCQkJCWlmIChlbnRpdHktPnNlbGVjdG9yLmJhU291cmNlSURbaV0gPT0gaWQpCisJCQkJCXJldHVybiBlbnRpdHk7CisJCQlicmVhazsKKworCQljYXNlIFZDX0VYVEVOU0lPTl9VTklUOgorCQkJZm9yIChpID0gMDsgaSA8IGVudGl0eS0+ZXh0ZW5zaW9uLmJOckluUGluczsgKytpKQorCQkJCWlmIChlbnRpdHktPmV4dGVuc2lvbi5iYVNvdXJjZUlEW2ldID09IGlkKQorCQkJCQlyZXR1cm4gZW50aXR5OworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBEZXNjcmlwdG9ycyBoYW5kbGluZworICovCisKK3N0YXRpYyBpbnQgdXZjX3BhcnNlX2Zvcm1hdChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LAorCXN0cnVjdCB1dmNfc3RyZWFtaW5nICpzdHJlYW1pbmcsIHN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQsCisJX191MzIgKippbnRlcnZhbHMsIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IGJ1ZmxlbikKK3sKKwlzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiA9IHN0cmVhbWluZy0+aW50ZjsKKwlzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICphbHRzID0gaW50Zi0+Y3VyX2FsdHNldHRpbmc7CisJc3RydWN0IHV2Y19mb3JtYXRfZGVzYyAqZm10ZGVzYzsKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICpzdGFydCA9IGJ1ZmZlcjsKKwl1bnNpZ25lZCBpbnQgaW50ZXJ2YWw7CisJdW5zaWduZWQgaW50IGksIG47CisJX191OCBmdHlwZTsKKworCWZvcm1hdC0+dHlwZSA9IGJ1ZmZlclsyXTsKKwlmb3JtYXQtPmluZGV4ID0gYnVmZmVyWzNdOworCisJc3dpdGNoIChidWZmZXJbMl0pIHsKKwljYXNlIFZTX0ZPUk1BVF9VTkNPTVBSRVNTRUQ6CisJY2FzZSBWU19GT1JNQVRfRlJBTUVfQkFTRUQ6CisJCWlmIChidWZsZW4gPCAyNykgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyIKKwkJCSAgICAgICAiaW50ZXJmYWNlICVkIEZPUk1BVCBlcnJvclxuIiwKKwkJCSAgICAgICBkZXYtPnVkZXYtPmRldm51bSwKKwkJCSAgICAgICBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQkvKiBGaW5kIHRoZSBmb3JtYXQgZGVzY3JpcHRvciBmcm9tIGl0cyBHVUlELiAqLworCQlmbXRkZXNjID0gdXZjX2Zvcm1hdF9ieV9ndWlkKCZidWZmZXJbNV0pOworCisJCWlmIChmbXRkZXNjICE9IE5VTEwpIHsKKwkJCXN0cm5jcHkoZm9ybWF0LT5uYW1lLCBmbXRkZXNjLT5uYW1lLAorCQkJCXNpemVvZiBmb3JtYXQtPm5hbWUpOworCQkJZm9ybWF0LT5mY2MgPSBmbXRkZXNjLT5mY2M7CisJCX0gZWxzZSB7CisJCQl1dmNfcHJpbnRrKEtFUk5fSU5GTywgIlVua25vd24gdmlkZW8gZm9ybWF0ICIKKwkJCQlVVkNfR1VJRF9GT1JNQVQgIlxuIiwKKwkJCQlVVkNfR1VJRF9BUkdTKCZidWZmZXJbNV0pKTsKKwkJCXNucHJpbnRmKGZvcm1hdC0+bmFtZSwgc2l6ZW9mIGZvcm1hdC0+bmFtZSwKKwkJCQlVVkNfR1VJRF9GT1JNQVQsIFVWQ19HVUlEX0FSR1MoJmJ1ZmZlcls1XSkpOworCQkJZm9ybWF0LT5mY2MgPSAwOworCQl9CisKKwkJZm9ybWF0LT5icHAgPSBidWZmZXJbMjFdOworCQlpZiAoYnVmZmVyWzJdID09IFZTX0ZPUk1BVF9VTkNPTVBSRVNTRUQpIHsKKwkJCWZ0eXBlID0gVlNfRlJBTUVfVU5DT01QUkVTU0VEOworCQl9IGVsc2UgeworCQkJZnR5cGUgPSBWU19GUkFNRV9GUkFNRV9CQVNFRDsKKwkJCWlmIChidWZmZXJbMjddKQorCQkJCWZvcm1hdC0+ZmxhZ3MgPSBVVkNfRk1UX0ZMQUdfQ09NUFJFU1NFRDsKKwkJfQorCQlicmVhazsKKworCWNhc2UgVlNfRk9STUFUX01KUEVHOgorCQlpZiAoYnVmbGVuIDwgMTEpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmciCisJCQkgICAgICAgImludGVyZmFjZSAlZCBGT1JNQVQgZXJyb3JcbiIsCisJCQkgICAgICAgZGV2LT51ZGV2LT5kZXZudW0sCisJCQkgICAgICAgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJc3RybmNweShmb3JtYXQtPm5hbWUsICJNSlBFRyIsIHNpemVvZiBmb3JtYXQtPm5hbWUpOworCQlmb3JtYXQtPmZjYyA9IFY0TDJfUElYX0ZNVF9NSlBFRzsKKwkJZm9ybWF0LT5mbGFncyA9IFVWQ19GTVRfRkxBR19DT01QUkVTU0VEOworCQlmb3JtYXQtPmJwcCA9IDA7CisJCWZ0eXBlID0gVlNfRlJBTUVfTUpQRUc7CisJCWJyZWFrOworCisJY2FzZSBWU19GT1JNQVRfRFY6CisJCWlmIChidWZsZW4gPCA5KSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIgorCQkJICAgICAgICJpbnRlcmZhY2UgJWQgRk9STUFUIGVycm9yXG4iLAorCQkJICAgICAgIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJICAgICAgIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXN3aXRjaCAoYnVmZmVyWzhdICYgMHg3ZikgeworCQljYXNlIDA6CisJCQlzdHJuY3B5KGZvcm1hdC0+bmFtZSwgIlNELURWIiwgc2l6ZW9mIGZvcm1hdC0+bmFtZSk7CisJCQlicmVhazsKKwkJY2FzZSAxOgorCQkJc3RybmNweShmb3JtYXQtPm5hbWUsICJTREwtRFYiLCBzaXplb2YgZm9ybWF0LT5uYW1lKTsKKwkJCWJyZWFrOworCQljYXNlIDI6CisJCQlzdHJuY3B5KGZvcm1hdC0+bmFtZSwgIkhELURWIiwgc2l6ZW9mIGZvcm1hdC0+bmFtZSk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmciCisJCQkgICAgICAgImludGVyZmFjZSAlZDogdW5rbm93biBEViBmb3JtYXQgJXVcbiIsCisJCQkgICAgICAgZGV2LT51ZGV2LT5kZXZudW0sCisJCQkgICAgICAgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyLCBidWZmZXJbOF0pOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlzdHJuY2F0KGZvcm1hdC0+bmFtZSwgYnVmZmVyWzhdICYgKDEgPDwgNykgPyAiIDYwSHoiIDogIiA1MEh6IiwKKwkJCXNpemVvZiBmb3JtYXQtPm5hbWUpOworCisJCWZvcm1hdC0+ZmNjID0gVjRMMl9QSVhfRk1UX0RWOworCQlmb3JtYXQtPmZsYWdzID0gVVZDX0ZNVF9GTEFHX0NPTVBSRVNTRUQgfCBVVkNfRk1UX0ZMQUdfU1RSRUFNOworCQlmb3JtYXQtPmJwcCA9IDA7CisJCWZ0eXBlID0gMDsKKworCQkvKiBDcmVhdGUgYSBkdW1teSBmcmFtZSBkZXNjcmlwdG9yLiAqLworCQlmcmFtZSA9ICZmb3JtYXQtPmZyYW1lWzBdOworCQltZW1zZXQoJmZvcm1hdC0+ZnJhbWVbMF0sIDAsIHNpemVvZiBmb3JtYXQtPmZyYW1lWzBdKTsKKwkJZnJhbWUtPmJGcmFtZUludGVydmFsVHlwZSA9IDE7CisJCWZyYW1lLT5kd0RlZmF1bHRGcmFtZUludGVydmFsID0gMTsKKwkJZnJhbWUtPmR3RnJhbWVJbnRlcnZhbCA9ICppbnRlcnZhbHM7CisJCSooKmludGVydmFscykrKyA9IDE7CisJCWZvcm1hdC0+bmZyYW1lcyA9IDE7CisJCWJyZWFrOworCisJY2FzZSBWU19GT1JNQVRfTVBFRzJUUzoKKwljYXNlIFZTX0ZPUk1BVF9TVFJFQU1fQkFTRUQ6CisJCS8qIE5vdCBzdXBwb3J0ZWQgeWV0LiAqLworCWRlZmF1bHQ6CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmciCisJCSAgICAgICAiaW50ZXJmYWNlICVkIHVuc3VwcG9ydGVkIGZvcm1hdCAldVxuIiwKKwkJICAgICAgIGRldi0+dWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIsCisJCSAgICAgICBidWZmZXJbMl0pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiRm91bmQgZm9ybWF0ICVzLlxuIiwgZm9ybWF0LT5uYW1lKTsKKworCWJ1ZmxlbiAtPSBidWZmZXJbMF07CisJYnVmZmVyICs9IGJ1ZmZlclswXTsKKworCS8qIFBhcnNlIHRoZSBmcmFtZSBkZXNjcmlwdG9ycy4gT25seSB1bmNvbXByZXNzZWQsIE1KUEVHIGFuZCBmcmFtZQorCSAqIGJhc2VkIGZvcm1hdHMgaGF2ZSBmcmFtZSBkZXNjcmlwdG9ycy4KKwkgKi8KKwl3aGlsZSAoYnVmbGVuID4gMiAmJiBidWZmZXJbMl0gPT0gZnR5cGUpIHsKKwkJZnJhbWUgPSAmZm9ybWF0LT5mcmFtZVtmb3JtYXQtPm5mcmFtZXNdOworCisJCWlmIChmdHlwZSAhPSBWU19GUkFNRV9GUkFNRV9CQVNFRCkKKwkJCW4gPSBidWZsZW4gPiAyNSA/IGJ1ZmZlclsyNV0gOiAwOworCQllbHNlCisJCQluID0gYnVmbGVuID4gMjEgPyBidWZmZXJbMjFdIDogMDsKKworCQluID0gbiA/IG4gOiAzOworCisJCWlmIChidWZsZW4gPCAyNiArIDQqbikgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyIKKwkJCSAgICAgICAiaW50ZXJmYWNlICVkIEZSQU1FIGVycm9yXG4iLCBkZXYtPnVkZXYtPmRldm51bSwKKwkJCSAgICAgICBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlmcmFtZS0+YkZyYW1lSW5kZXggPSBidWZmZXJbM107CisJCWZyYW1lLT5ibUNhcGFiaWxpdGllcyA9IGJ1ZmZlcls0XTsKKwkJZnJhbWUtPndXaWR0aCA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlcls1XSk7CisJCWZyYW1lLT53SGVpZ2h0ID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzddKTsKKwkJZnJhbWUtPmR3TWluQml0UmF0ZSA9IGxlMzJfdG9fY3B1cCgoX19sZTMyICopJmJ1ZmZlcls5XSk7CisJCWZyYW1lLT5kd01heEJpdFJhdGUgPSBsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKSZidWZmZXJbMTNdKTsKKwkJaWYgKGZ0eXBlICE9IFZTX0ZSQU1FX0ZSQU1FX0JBU0VEKSB7CisJCQlmcmFtZS0+ZHdNYXhWaWRlb0ZyYW1lQnVmZmVyU2l6ZSA9CisJCQkJbGUzMl90b19jcHVwKChfX2xlMzIgKikmYnVmZmVyWzE3XSk7CisJCQlmcmFtZS0+ZHdEZWZhdWx0RnJhbWVJbnRlcnZhbCA9CisJCQkJbGUzMl90b19jcHVwKChfX2xlMzIgKikmYnVmZmVyWzIxXSk7CisJCQlmcmFtZS0+YkZyYW1lSW50ZXJ2YWxUeXBlID0gYnVmZmVyWzI1XTsKKwkJfSBlbHNlIHsKKwkJCWZyYW1lLT5kd01heFZpZGVvRnJhbWVCdWZmZXJTaXplID0gMDsKKwkJCWZyYW1lLT5kd0RlZmF1bHRGcmFtZUludGVydmFsID0KKwkJCQlsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKSZidWZmZXJbMTddKTsKKwkJCWZyYW1lLT5iRnJhbWVJbnRlcnZhbFR5cGUgPSBidWZmZXJbMjFdOworCQl9CisJCWZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWwgPSAqaW50ZXJ2YWxzOworCisJCS8qIFNldmVyYWwgVVZDIGNoaXBzZXRzIHNjcmV3IHVwIGR3TWF4VmlkZW9GcmFtZUJ1ZmZlclNpemUKKwkJICogY29tcGxldGVseS4gT2JzZXJ2ZWQgYmVoYXZpb3VycyByYW5nZSBmcm9tIHNldHRpbmcgdGhlCisJCSAqIHZhbHVlIHRvIDEuMXggdGhlIGFjdHVhbCBmcmFtZSBzaXplIG9mIGhhcmR3aXJpbmcgdGhlCisJCSAqIDE2IGxvdyBiaXRzIHRvIDAuIFRoaXMgcmVzdWx0cyBpbiBhIGhpZ2hlciB0aGFuIG5lY2Vzc2FyeQorCQkgKiBtZW1vcnkgdXNhZ2UgYXMgd2VsbCBhcyBhIHdyb25nIGltYWdlIHNpemUgaW5mb3JtYXRpb24uIEZvcgorCQkgKiB1bmNvbXByZXNzZWQgZm9ybWF0cyB0aGlzIGNhbiBiZSBmaXhlZCBieSBjb21wdXRpbmcgdGhlCisJCSAqIHZhbHVlIGZyb20gdGhlIGZyYW1lIHNpemUuCisJCSAqLworCQlpZiAoIShmb3JtYXQtPmZsYWdzICYgVVZDX0ZNVF9GTEFHX0NPTVBSRVNTRUQpKQorCQkJZnJhbWUtPmR3TWF4VmlkZW9GcmFtZUJ1ZmZlclNpemUgPSBmb3JtYXQtPmJwcAorCQkJCSogZnJhbWUtPndXaWR0aCAqIGZyYW1lLT53SGVpZ2h0IC8gODsKKworCQkvKiBTb21lIGJvZ3VzIGRldmljZXMgcmVwb3J0IGR3TWluRnJhbWVJbnRlcnZhbCBlcXVhbCB0bworCQkgKiBkd01heEZyYW1lSW50ZXJ2YWwgYW5kIGhhdmUgZHdGcmFtZUludGVydmFsU3RlcCBzZXQgdG8KKwkJICogemVyby4gU2V0dGluZyBhbGwgbnVsbCBpbnRlcnZhbHMgdG8gMSBmaXhlcyB0aGUgcHJvYmxlbSBhbmQKKwkJICogc29tZSBvdGhlciBkaXZpc2lvbnMgYnkgemVybyB3aGljaCBjb3VsZCBoYXBwZW4uCisJCSAqLworCQlmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7CisJCQlpbnRlcnZhbCA9IGxlMzJfdG9fY3B1cCgoX19sZTMyICopJmJ1ZmZlclsyNis0KmldKTsKKwkJCSooKmludGVydmFscykrKyA9IGludGVydmFsID8gaW50ZXJ2YWwgOiAxOworCQl9CisKKwkJLyogTWFrZSBzdXJlIHRoYXQgdGhlIGRlZmF1bHQgZnJhbWUgaW50ZXJ2YWwgc3RheXMgYmV0d2VlbgorCQkgKiB0aGUgYm91bmRhcmllcy4KKwkJICovCisJCW4gLT0gZnJhbWUtPmJGcmFtZUludGVydmFsVHlwZSA/IDEgOiAyOworCQlmcmFtZS0+ZHdEZWZhdWx0RnJhbWVJbnRlcnZhbCA9CisJCQltaW4oZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFtuXSwKKwkJCSAgICBtYXgoZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFswXSwKKwkJCQlmcmFtZS0+ZHdEZWZhdWx0RnJhbWVJbnRlcnZhbCkpOworCisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICItICV1eCV1ICgldS4ldSBmcHMpXG4iLAorCQkJZnJhbWUtPndXaWR0aCwgZnJhbWUtPndIZWlnaHQsCisJCQkxMDAwMDAwMC9mcmFtZS0+ZHdEZWZhdWx0RnJhbWVJbnRlcnZhbCwKKwkJCSgxMDAwMDAwMDAvZnJhbWUtPmR3RGVmYXVsdEZyYW1lSW50ZXJ2YWwpJTEwKTsKKworCQlmb3JtYXQtPm5mcmFtZXMrKzsKKwkJYnVmbGVuIC09IGJ1ZmZlclswXTsKKwkJYnVmZmVyICs9IGJ1ZmZlclswXTsKKwl9CisKKwlpZiAoYnVmbGVuID4gMiAmJiBidWZmZXJbMl0gPT0gVlNfU1RJTExfSU1BR0VfRlJBTUUpIHsKKwkJYnVmbGVuIC09IGJ1ZmZlclswXTsKKwkJYnVmZmVyICs9IGJ1ZmZlclswXTsKKwl9CisKKwlpZiAoYnVmbGVuID4gMiAmJiBidWZmZXJbMl0gPT0gVlNfQ09MT1JGT1JNQVQpIHsKKwkJaWYgKGJ1ZmxlbiA8IDYpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmciCisJCQkgICAgICAgImludGVyZmFjZSAlZCBDT0xPUkZPUk1BVCBlcnJvclxuIiwKKwkJCSAgICAgICBkZXYtPnVkZXYtPmRldm51bSwKKwkJCSAgICAgICBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlmb3JtYXQtPmNvbG9yc3BhY2UgPSB1dmNfY29sb3JzcGFjZShidWZmZXJbM10pOworCisJCWJ1ZmxlbiAtPSBidWZmZXJbMF07CisJCWJ1ZmZlciArPSBidWZmZXJbMF07CisJfQorCisJcmV0dXJuIGJ1ZmZlciAtIHN0YXJ0OworfQorCitzdGF0aWMgaW50IHV2Y19wYXJzZV9zdHJlYW1pbmcoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwKKwlzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKK3sKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZyAqc3RyZWFtaW5nID0gTlVMTDsKKwlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0OworCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lOworCXN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmFsdHMgPSAmaW50Zi0+YWx0c2V0dGluZ1swXTsKKwl1bnNpZ25lZCBjaGFyICpfYnVmZmVyLCAqYnVmZmVyID0gYWx0cy0+ZXh0cmE7CisJaW50IF9idWZsZW4sIGJ1ZmxlbiA9IGFsdHMtPmV4dHJhbGVuOworCXVuc2lnbmVkIGludCBuZm9ybWF0cyA9IDAsIG5mcmFtZXMgPSAwLCBuaW50ZXJ2YWxzID0gMDsKKwl1bnNpZ25lZCBpbnQgc2l6ZSwgaSwgbiwgcDsKKwlfX3UzMiAqaW50ZXJ2YWw7CisJX191MTYgcHNpemU7CisJaW50IHJldCA9IC1FSU5WQUw7CisKKwlpZiAoaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZVN1YkNsYXNzCisJCSE9IFNDX1ZJREVPU1RSRUFNSU5HKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgaW50ZXJmYWNlICVkIGlzbid0IGEgIgorCQkJInZpZGVvIHN0cmVhbWluZyBpbnRlcmZhY2VcbiIsIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJaW50Zi0+YWx0c2V0dGluZ1swXS5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAodXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2UoJnV2Y19kcml2ZXIuZHJpdmVyLCBpbnRmLCBkZXYpKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgaW50ZXJmYWNlICVkIGlzIGFscmVhZHkgIgorCQkJImNsYWltZWRcbiIsIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJaW50Zi0+YWx0c2V0dGluZ1swXS5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzdHJlYW1pbmcgPSBremFsbG9jKHNpemVvZiAqc3RyZWFtaW5nLCBHRlBfS0VSTkVMKTsKKwlpZiAoc3RyZWFtaW5nID09IE5VTEwpIHsKKwkJdXNiX2RyaXZlcl9yZWxlYXNlX2ludGVyZmFjZSgmdXZjX2RyaXZlci5kcml2ZXIsIGludGYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwltdXRleF9pbml0KCZzdHJlYW1pbmctPm11dGV4KTsKKwlzdHJlYW1pbmctPmludGYgPSB1c2JfZ2V0X2ludGYoaW50Zik7CisJc3RyZWFtaW5nLT5pbnRmbnVtID0gaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZU51bWJlcjsKKworCS8qIFRoZSBQaWNvIGlNYWdlIHdlYmNhbSBoYXMgaXRzIGNsYXNzLXNwZWNpZmljIGludGVyZmFjZSBkZXNjcmlwdG9ycworCSAqIGFmdGVyIHRoZSBlbmRwb2ludCBkZXNjcmlwdG9ycy4KKwkgKi8KKwlpZiAoYnVmbGVuID09IDApIHsKKwkJZm9yIChpID0gMDsgaSA8IGFsdHMtPmRlc2MuYk51bUVuZHBvaW50czsgKytpKSB7CisJCQlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmVwID0gJmFsdHMtPmVuZHBvaW50W2ldOworCisJCQlpZiAoZXAtPmV4dHJhbGVuID09IDApCisJCQkJY29udGludWU7CisKKwkJCWlmIChlcC0+ZXh0cmFsZW4gPiAyICYmCisJCQkgICAgZXAtPmV4dHJhWzFdID09IFVTQl9EVF9DU19JTlRFUkZBQ0UpIHsKKwkJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAidHJ5aW5nIGV4dHJhIGRhdGEgIgorCQkJCQkiZnJvbSBlbmRwb2ludCAldS5cbiIsIGkpOworCQkJCWJ1ZmZlciA9IGFsdHMtPmVuZHBvaW50W2ldLmV4dHJhOworCQkJCWJ1ZmxlbiA9IGFsdHMtPmVuZHBvaW50W2ldLmV4dHJhbGVuOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJLyogU2tpcCB0aGUgc3RhbmRhcmQgaW50ZXJmYWNlIGRlc2NyaXB0b3JzLiAqLworCXdoaWxlIChidWZsZW4gPiAyICYmIGJ1ZmZlclsxXSAhPSBVU0JfRFRfQ1NfSU5URVJGQUNFKSB7CisJCWJ1ZmxlbiAtPSBidWZmZXJbMF07CisJCWJ1ZmZlciArPSBidWZmZXJbMF07CisJfQorCisJaWYgKGJ1ZmxlbiA8PSAyKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJubyBjbGFzcy1zcGVjaWZpYyBzdHJlYW1pbmcgIgorCQkJImludGVyZmFjZSBkZXNjcmlwdG9ycyBmb3VuZC5cbiIpOworCQlnb3RvIGVycm9yOworCX0KKworCS8qIFBhcnNlIHRoZSBoZWFkZXIgZGVzY3JpcHRvci4gKi8KKwlpZiAoYnVmZmVyWzJdID09IFZTX09VVFBVVF9IRUFERVIpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyBpbnRlcmZhY2UgIgorCQkJIiVkIE9VVFBVVCBIRUFERVIgZGVzY3JpcHRvciBpcyBub3Qgc3VwcG9ydGVkLlxuIiwKKwkJCWRldi0+dWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQlnb3RvIGVycm9yOworCX0gZWxzZSBpZiAoYnVmZmVyWzJdID09IFZTX0lOUFVUX0hFQURFUikgeworCQlwID0gYnVmbGVuID49IDUgPyBidWZmZXJbM10gOiAwOworCQluID0gYnVmbGVuID49IDEyID8gYnVmZmVyWzEyXSA6IDA7CisKKwkJaWYgKGJ1ZmxlbiA8IDEzICsgcCpuIHx8IGJ1ZmZlclsyXSAhPSBWU19JTlBVVF9IRUFERVIpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmcgIgorCQkJCSJpbnRlcmZhY2UgJWQgSU5QVVQgSEVBREVSIGRlc2NyaXB0b3IgaXMgIgorCQkJCSJpbnZhbGlkLlxuIiwgZGV2LT51ZGV2LT5kZXZudW0sCisJCQkJYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCWdvdG8gZXJyb3I7CisJCX0KKworCQlzdHJlYW1pbmctPmhlYWRlci5iTnVtRm9ybWF0cyA9IHA7CisJCXN0cmVhbWluZy0+aGVhZGVyLmJFbmRwb2ludEFkZHJlc3MgPSBidWZmZXJbNl07CisJCXN0cmVhbWluZy0+aGVhZGVyLmJtSW5mbyA9IGJ1ZmZlcls3XTsKKwkJc3RyZWFtaW5nLT5oZWFkZXIuYlRlcm1pbmFsTGluayA9IGJ1ZmZlcls4XTsKKwkJc3RyZWFtaW5nLT5oZWFkZXIuYlN0aWxsQ2FwdHVyZU1ldGhvZCA9IGJ1ZmZlcls5XTsKKwkJc3RyZWFtaW5nLT5oZWFkZXIuYlRyaWdnZXJTdXBwb3J0ID0gYnVmZmVyWzEwXTsKKwkJc3RyZWFtaW5nLT5oZWFkZXIuYlRyaWdnZXJVc2FnZSA9IGJ1ZmZlclsxMV07CisJCXN0cmVhbWluZy0+aGVhZGVyLmJDb250cm9sU2l6ZSA9IG47CisKKwkJc3RyZWFtaW5nLT5oZWFkZXIuYm1hQ29udHJvbHMgPSBrbWFsbG9jKHAqbiwgR0ZQX0tFUk5FTCk7CisJCWlmIChzdHJlYW1pbmctPmhlYWRlci5ibWFDb250cm9scyA9PSBOVUxMKSB7CisJCQlyZXQgPSAtRU5PTUVNOworCQkJZ290byBlcnJvcjsKKwkJfQorCisJCW1lbWNweShzdHJlYW1pbmctPmhlYWRlci5ibWFDb250cm9scywgJmJ1ZmZlclsxM10sIHAqbik7CisJfSBlbHNlIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyBpbnRlcmZhY2UgIgorCQkJIiVkIEhFQURFUiBkZXNjcmlwdG9yIG5vdCBmb3VuZC5cbiIsIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwlidWZsZW4gLT0gYnVmZmVyWzBdOworCWJ1ZmZlciArPSBidWZmZXJbMF07CisKKwlfYnVmZmVyID0gYnVmZmVyOworCV9idWZsZW4gPSBidWZsZW47CisKKwkvKiBDb3VudCB0aGUgZm9ybWF0IGFuZCBmcmFtZSBkZXNjcmlwdG9ycy4gKi8KKwl3aGlsZSAoX2J1ZmxlbiA+IDIpIHsKKwkJc3dpdGNoIChfYnVmZmVyWzJdKSB7CisJCWNhc2UgVlNfRk9STUFUX1VOQ09NUFJFU1NFRDoKKwkJY2FzZSBWU19GT1JNQVRfTUpQRUc6CisJCWNhc2UgVlNfRk9STUFUX0ZSQU1FX0JBU0VEOgorCQkJbmZvcm1hdHMrKzsKKwkJCWJyZWFrOworCisJCWNhc2UgVlNfRk9STUFUX0RWOgorCQkJLyogRFYgZm9ybWF0IGhhcyBubyBmcmFtZSBkZXNjcmlwdG9yLiBXZSB3aWxsIGNyZWF0ZSBhCisJCQkgKiBkdW1teSBmcmFtZSBkZXNjcmlwdG9yIHdpdGggYSBkdW1teSBmcmFtZSBpbnRlcnZhbC4KKwkJCSAqLworCQkJbmZvcm1hdHMrKzsKKwkJCW5mcmFtZXMrKzsKKwkJCW5pbnRlcnZhbHMrKzsKKwkJCWJyZWFrOworCisJCWNhc2UgVlNfRk9STUFUX01QRUcyVFM6CisJCWNhc2UgVlNfRk9STUFUX1NUUkVBTV9CQVNFRDoKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmcgIgorCQkJCSJpbnRlcmZhY2UgJWQgRk9STUFUICV1IGlzIG5vdCBzdXBwb3J0ZWQuXG4iLAorCQkJCWRldi0+dWRldi0+ZGV2bnVtLAorCQkJCWFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlciwgX2J1ZmZlclsyXSk7CisJCQlicmVhazsKKworCQljYXNlIFZTX0ZSQU1FX1VOQ09NUFJFU1NFRDoKKwkJY2FzZSBWU19GUkFNRV9NSlBFRzoKKwkJCW5mcmFtZXMrKzsKKwkJCWlmIChfYnVmbGVuID4gMjUpCisJCQkJbmludGVydmFscyArPSBfYnVmZmVyWzI1XSA/IF9idWZmZXJbMjVdIDogMzsKKwkJCWJyZWFrOworCisJCWNhc2UgVlNfRlJBTUVfRlJBTUVfQkFTRUQ6CisJCQluZnJhbWVzKys7CisJCQlpZiAoX2J1ZmxlbiA+IDIxKQorCQkJCW5pbnRlcnZhbHMgKz0gX2J1ZmZlclsyMV0gPyBfYnVmZmVyWzIxXSA6IDM7CisJCQlicmVhazsKKwkJfQorCisJCV9idWZsZW4gLT0gX2J1ZmZlclswXTsKKwkJX2J1ZmZlciArPSBfYnVmZmVyWzBdOworCX0KKworCWlmIChuZm9ybWF0cyA9PSAwKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmcgaW50ZXJmYWNlICIKKwkJCSIlZCBoYXMgbm8gc3VwcG9ydGVkIGZvcm1hdHMgZGVmaW5lZC5cbiIsCisJCQlkZXYtPnVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwlzaXplID0gbmZvcm1hdHMgKiBzaXplb2YgKmZvcm1hdCArIG5mcmFtZXMgKiBzaXplb2YgKmZyYW1lCisJICAgICArIG5pbnRlcnZhbHMgKiBzaXplb2YgKmludGVydmFsOworCWZvcm1hdCA9IGt6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7CisJaWYgKGZvcm1hdCA9PSBOVUxMKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyb3I7CisJfQorCisJZnJhbWUgPSAoc3RydWN0IHV2Y19mcmFtZSAqKSZmb3JtYXRbbmZvcm1hdHNdOworCWludGVydmFsID0gKF9fdTMyICopJmZyYW1lW25mcmFtZXNdOworCisJc3RyZWFtaW5nLT5mb3JtYXQgPSBmb3JtYXQ7CisJc3RyZWFtaW5nLT5uZm9ybWF0cyA9IG5mb3JtYXRzOworCisJLyogUGFyc2UgdGhlIGZvcm1hdCBkZXNjcmlwdG9ycy4gKi8KKwl3aGlsZSAoYnVmbGVuID4gMikgeworCQlzd2l0Y2ggKGJ1ZmZlclsyXSkgeworCQljYXNlIFZTX0ZPUk1BVF9VTkNPTVBSRVNTRUQ6CisJCWNhc2UgVlNfRk9STUFUX01KUEVHOgorCQljYXNlIFZTX0ZPUk1BVF9EVjoKKwkJY2FzZSBWU19GT1JNQVRfRlJBTUVfQkFTRUQ6CisJCQlmb3JtYXQtPmZyYW1lID0gZnJhbWU7CisJCQlyZXQgPSB1dmNfcGFyc2VfZm9ybWF0KGRldiwgc3RyZWFtaW5nLCBmb3JtYXQsCisJCQkJJmludGVydmFsLCBidWZmZXIsIGJ1Zmxlbik7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlnb3RvIGVycm9yOworCisJCQlmcmFtZSArPSBmb3JtYXQtPm5mcmFtZXM7CisJCQlmb3JtYXQrKzsKKworCQkJYnVmbGVuIC09IHJldDsKKwkJCWJ1ZmZlciArPSByZXQ7CisJCQljb250aW51ZTsKKworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKworCQlidWZsZW4gLT0gYnVmZmVyWzBdOworCQlidWZmZXIgKz0gYnVmZmVyWzBdOworCX0KKworCS8qIFBhcnNlIHRoZSBhbHRlcm5hdGUgc2V0dGluZ3MgdG8gZmluZCB0aGUgbWF4aW11bSBiYW5kd2lkdGguICovCisJZm9yIChpID0gMDsgaSA8IGludGYtPm51bV9hbHRzZXR0aW5nOyArK2kpIHsKKwkJc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICplcDsKKwkJYWx0cyA9ICZpbnRmLT5hbHRzZXR0aW5nW2ldOworCQllcCA9IHV2Y19maW5kX2VuZHBvaW50KGFsdHMsCisJCQkJc3RyZWFtaW5nLT5oZWFkZXIuYkVuZHBvaW50QWRkcmVzcyk7CisJCWlmIChlcCA9PSBOVUxMKQorCQkJY29udGludWU7CisKKwkJcHNpemUgPSBsZTE2X3RvX2NwdShlcC0+ZGVzYy53TWF4UGFja2V0U2l6ZSk7CisJCXBzaXplID0gKHBzaXplICYgMHgwN2ZmKSAqICgxICsgKChwc2l6ZSA+PiAxMSkgJiAzKSk7CisJCWlmIChwc2l6ZSA+IHN0cmVhbWluZy0+bWF4cHNpemUpCisJCQlzdHJlYW1pbmctPm1heHBzaXplID0gcHNpemU7CisJfQorCisJbGlzdF9hZGRfdGFpbCgmc3RyZWFtaW5nLT5saXN0LCAmZGV2LT5zdHJlYW1pbmcpOworCXJldHVybiAwOworCitlcnJvcjoKKwl1c2JfZHJpdmVyX3JlbGVhc2VfaW50ZXJmYWNlKCZ1dmNfZHJpdmVyLmRyaXZlciwgaW50Zik7CisJdXNiX3B1dF9pbnRmKGludGYpOworCWtmcmVlKHN0cmVhbWluZy0+Zm9ybWF0KTsKKwlrZnJlZShzdHJlYW1pbmctPmhlYWRlci5ibWFDb250cm9scyk7CisJa2ZyZWUoc3RyZWFtaW5nKTsKKwlyZXR1cm4gcmV0OworfQorCisvKiBQYXJzZSB2ZW5kb3Itc3BlY2lmaWMgZXh0ZW5zaW9ucy4gKi8KK3N0YXRpYyBpbnQgdXZjX3BhcnNlX3ZlbmRvcl9jb250cm9sKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsCisJY29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgYnVmbGVuKQoreworCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gZGV2LT51ZGV2OworCXN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmFsdHMgPSBkZXYtPmludGYtPmN1cl9hbHRzZXR0aW5nOworCXN0cnVjdCB1dmNfZW50aXR5ICp1bml0OworCXVuc2lnbmVkIGludCBuLCBwOworCWludCBoYW5kbGVkID0gMDsKKworCXN3aXRjaCAobGUxNl90b19jcHUoZGV2LT51ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSkgeworCWNhc2UgMHgwNDZkOgkJLyogTG9naXRlY2ggKi8KKwkJaWYgKGJ1ZmZlclsxXSAhPSAweDQxIHx8IGJ1ZmZlclsyXSAhPSAweDAxKQorCQkJYnJlYWs7CisKKwkJLyogTG9naXRlY2ggaW1wbGVtZW50cyBzZXZlcmFsIHZlbmRvciBzcGVjaWZpYyBmdW5jdGlvbnMKKwkJICogdGhyb3VnaCB2ZW5kb3Igc3BlY2lmaWMgZXh0ZW5zaW9uIHVuaXRzIChMWFUpLgorCQkgKgorCQkgKiBUaGUgTFhVIGRlc2NyaXB0b3JzIGFyZSBzaW1pbGFyIHRvIFhVIGRlc2NyaXB0b3JzCisJCSAqIChzZWUgIlVTQiBEZXZpY2UgVmlkZW8gQ2xhc3MgZm9yIFZpZGVvIERldmljZXMiLCBzZWN0aW9uCisJCSAqIDMuNy4yLjYgIkV4dGVuc2lvbiBVbml0IERlc2NyaXB0b3IiKSB3aXRoIHRoZSBmb2xsb3dpbmcKKwkJICogZGlmZmVyZW5jZXM6CisJCSAqCisJCSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJICogMAkJYkxlbmd0aAkJMQkgTnVtYmVyCisJCSAqCVNpemUgb2YgdGhpcyBkZXNjcmlwdG9yLCBpbiBieXRlczogMjQrcCtuKjIKKwkJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkgKiAyMytwK24JYm1Db250cm9sc1R5cGUJTglCaXRtYXAKKwkJICogCUluZGl2aWR1YWwgYml0cyBpbiB0aGUgc2V0IGFyZSBkZWZpbmVkOgorCQkgKiAJMDogQWJzb2x1dGUKKwkJICogCTE6IFJlbGF0aXZlCisJCSAqCisJCSAqIAlUaGlzIGJpdHNldCBpcyBtYXBwZWQgZXhhY3RseSB0aGUgc2FtZSBhcyBibUNvbnRyb2xzLgorCQkgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCSAqIDIzK3ArbioyCWJSZXNlcnZlZAkxCUJvb2xlYW4KKwkJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkgKiAyNCtwK24qMglpRXh0ZW5zaW9uCTEJSW5kZXgKKwkJICoJSW5kZXggb2YgYSBzdHJpbmcgZGVzY3JpcHRvciB0aGF0IGRlc2NyaWJlcyB0aGlzCisJCSAqCWV4dGVuc2lvbiB1bml0LgorCQkgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCSAqLworCQlwID0gYnVmbGVuID49IDIyID8gYnVmZmVyWzIxXSA6IDA7CisJCW4gPSBidWZsZW4gPj0gMjUgKyBwID8gYnVmZmVyWzIyK3BdIDogMDsKKworCQlpZiAoYnVmbGVuIDwgMjUgKyBwICsgMipuKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBFWFRFTlNJT05fVU5JVCBlcnJvclxuIiwKKwkJCQl1ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlicmVhazsKKwkJfQorCisJCXVuaXQgPSBremFsbG9jKHNpemVvZiAqdW5pdCArIHAgKyAyKm4sIEdGUF9LRVJORUwpOworCQlpZiAodW5pdCA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJdW5pdC0+aWQgPSBidWZmZXJbM107CisJCXVuaXQtPnR5cGUgPSBWQ19FWFRFTlNJT05fVU5JVDsKKwkJbWVtY3B5KHVuaXQtPmV4dGVuc2lvbi5ndWlkRXh0ZW5zaW9uQ29kZSwgJmJ1ZmZlcls0XSwgMTYpOworCQl1bml0LT5leHRlbnNpb24uYk51bUNvbnRyb2xzID0gYnVmZmVyWzIwXTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJOckluUGlucyA9CisJCQlsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbMjFdKTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJhU291cmNlSUQgPSAoX191OCAqKXVuaXQgKyBzaXplb2YgKnVuaXQ7CisJCW1lbWNweSh1bml0LT5leHRlbnNpb24uYmFTb3VyY2VJRCwgJmJ1ZmZlclsyMl0sIHApOworCQl1bml0LT5leHRlbnNpb24uYkNvbnRyb2xTaXplID0gYnVmZmVyWzIyK3BdOworCQl1bml0LT5leHRlbnNpb24uYm1Db250cm9scyA9IChfX3U4ICopdW5pdCArIHNpemVvZiAqdW5pdCArIHA7CisJCXVuaXQtPmV4dGVuc2lvbi5ibUNvbnRyb2xzVHlwZSA9IChfX3U4ICopdW5pdCArIHNpemVvZiAqdW5pdAorCQkJCQkgICAgICAgKyBwICsgbjsKKwkJbWVtY3B5KHVuaXQtPmV4dGVuc2lvbi5ibUNvbnRyb2xzLCAmYnVmZmVyWzIzK3BdLCAyKm4pOworCisJCWlmIChidWZmZXJbMjQrcCsyKm5dICE9IDApCisJCQl1c2Jfc3RyaW5nKHVkZXYsIGJ1ZmZlclsyNCtwKzIqbl0sIHVuaXQtPm5hbWUsCisJCQkJICAgc2l6ZW9mIHVuaXQtPm5hbWUpOworCQllbHNlCisJCQlzcHJpbnRmKHVuaXQtPm5hbWUsICJFeHRlbnNpb24gJXUiLCBidWZmZXJbM10pOworCisJCWxpc3RfYWRkX3RhaWwoJnVuaXQtPmxpc3QsICZkZXYtPmVudGl0aWVzKTsKKwkJaGFuZGxlZCA9IDE7CisJCWJyZWFrOworCX0KKworCXJldHVybiBoYW5kbGVkOworfQorCitzdGF0aWMgaW50IHV2Y19wYXJzZV9zdGFuZGFyZF9jb250cm9sKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsCisJY29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgYnVmbGVuKQoreworCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gZGV2LT51ZGV2OworCXN0cnVjdCB1dmNfZW50aXR5ICp1bml0LCAqdGVybTsKKwlzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZjsKKwlzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICphbHRzID0gZGV2LT5pbnRmLT5jdXJfYWx0c2V0dGluZzsKKwl1bnNpZ25lZCBpbnQgaSwgbiwgcCwgbGVuOworCV9fdTE2IHR5cGU7CisKKwlzd2l0Y2ggKGJ1ZmZlclsyXSkgeworCWNhc2UgVkNfSEVBREVSOgorCQluID0gYnVmbGVuID49IDEyID8gYnVmZmVyWzExXSA6IDA7CisKKwkJaWYgKGJ1ZmxlbiA8IDEyIHx8IGJ1ZmxlbiA8IDEyICsgbikgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgSEVBREVSIGVycm9yXG4iLCB1ZGV2LT5kZXZudW0sCisJCQkJYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZGV2LT51dmNfdmVyc2lvbiA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlclszXSk7CisJCWRldi0+Y2xvY2tfZnJlcXVlbmN5ID0gbGUzMl90b19jcHVwKChfX2xlMzIgKikmYnVmZmVyWzddKTsKKworCQkvKiBQYXJzZSBhbGwgVVNCIFZpZGVvIFN0cmVhbWluZyBpbnRlcmZhY2VzLiAqLworCQlmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7CisJCQlpbnRmID0gdXNiX2lmbnVtX3RvX2lmKHVkZXYsIGJ1ZmZlclsxMitpXSk7CisJCQlpZiAoaW50ZiA9PSBOVUxMKSB7CisJCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCAiCisJCQkJCSJpbnRlcmZhY2UgJWQgZG9lc24ndCBleGlzdHNcbiIsCisJCQkJCXVkZXYtPmRldm51bSwgaSk7CisJCQkJY29udGludWU7CisJCQl9CisKKwkJCXV2Y19wYXJzZV9zdHJlYW1pbmcoZGV2LCBpbnRmKTsKKwkJfQorCQlicmVhazsKKworCWNhc2UgVkNfSU5QVVRfVEVSTUlOQUw6CisJCWlmIChidWZsZW4gPCA4KSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBJTlBVVF9URVJNSU5BTCBlcnJvclxuIiwKKwkJCQl1ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCS8qIE1ha2Ugc3VyZSB0aGUgdGVybWluYWwgdHlwZSBNU0IgaXMgbm90IG51bGwsIG90aGVyd2lzZSBpdAorCQkgKiBjb3VsZCBiZSBjb25mdXNlZCB3aXRoIGEgdW5pdC4KKwkJICovCisJCXR5cGUgPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbNF0pOworCQlpZiAoKHR5cGUgJiAweGZmMDApID09IDApIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIElOUFVUX1RFUk1JTkFMICVkIGhhcyBpbnZhbGlkICIKKwkJCQkidHlwZSAweCUwNHgsIHNraXBwaW5nXG4iLCB1ZGV2LT5kZXZudW0sCisJCQkJYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyLAorCQkJCWJ1ZmZlclszXSwgdHlwZSk7CisJCQlyZXR1cm4gMDsKKwkJfQorCisJCW4gPSAwOworCQlwID0gMDsKKwkJbGVuID0gODsKKworCQlpZiAodHlwZSA9PSBJVFRfQ0FNRVJBKSB7CisJCQluID0gYnVmbGVuID49IDE1ID8gYnVmZmVyWzE0XSA6IDA7CisJCQlsZW4gPSAxNTsKKworCQl9IGVsc2UgaWYgKHR5cGUgPT0gSVRUX01FRElBX1RSQU5TUE9SVF9JTlBVVCkgeworCQkJbiA9IGJ1ZmxlbiA+PSA5ID8gYnVmZmVyWzhdIDogMDsKKwkJCXAgPSBidWZsZW4gPj0gMTAgKyBuID8gYnVmZmVyWzkrbl0gOiAwOworCQkJbGVuID0gMTA7CisJCX0KKworCQlpZiAoYnVmbGVuIDwgbGVuICsgbiArIHApIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIElOUFVUX1RFUk1JTkFMIGVycm9yXG4iLAorCQkJCXVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJdGVybSA9IGt6YWxsb2Moc2l6ZW9mICp0ZXJtICsgbiArIHAsIEdGUF9LRVJORUwpOworCQlpZiAodGVybSA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJdGVybS0+aWQgPSBidWZmZXJbM107CisJCXRlcm0tPnR5cGUgPSB0eXBlIHwgVVZDX1RFUk1fSU5QVVQ7CisKKwkJaWYgKFVWQ19FTlRJVFlfVFlQRSh0ZXJtKSA9PSBJVFRfQ0FNRVJBKSB7CisJCQl0ZXJtLT5jYW1lcmEuYkNvbnRyb2xTaXplID0gbjsKKwkJCXRlcm0tPmNhbWVyYS5ibUNvbnRyb2xzID0gKF9fdTggKil0ZXJtICsgc2l6ZW9mICp0ZXJtOworCQkJdGVybS0+Y2FtZXJhLndPYmplY3RpdmVGb2NhbExlbmd0aE1pbiA9CisJCQkJbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzhdKTsKKwkJCXRlcm0tPmNhbWVyYS53T2JqZWN0aXZlRm9jYWxMZW5ndGhNYXggPQorCQkJCWxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlclsxMF0pOworCQkJdGVybS0+Y2FtZXJhLndPY3VsYXJGb2NhbExlbmd0aCA9CisJCQkJbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzEyXSk7CisJCQltZW1jcHkodGVybS0+Y2FtZXJhLmJtQ29udHJvbHMsICZidWZmZXJbMTVdLCBuKTsKKwkJfSBlbHNlIGlmIChVVkNfRU5USVRZX1RZUEUodGVybSkgPT0gSVRUX01FRElBX1RSQU5TUE9SVF9JTlBVVCkgeworCQkJdGVybS0+bWVkaWEuYkNvbnRyb2xTaXplID0gbjsKKwkJCXRlcm0tPm1lZGlhLmJtQ29udHJvbHMgPSAoX191OCAqKXRlcm0gKyBzaXplb2YgKnRlcm07CisJCQl0ZXJtLT5tZWRpYS5iVHJhbnNwb3J0TW9kZVNpemUgPSBwOworCQkJdGVybS0+bWVkaWEuYm1UcmFuc3BvcnRNb2RlcyA9IChfX3U4ICopdGVybQorCQkJCQkJICAgICArIHNpemVvZiAqdGVybSArIG47CisJCQltZW1jcHkodGVybS0+bWVkaWEuYm1Db250cm9scywgJmJ1ZmZlcls5XSwgbik7CisJCQltZW1jcHkodGVybS0+bWVkaWEuYm1UcmFuc3BvcnRNb2RlcywgJmJ1ZmZlclsxMCtuXSwgcCk7CisJCX0KKworCQlpZiAoYnVmZmVyWzddICE9IDApCisJCQl1c2Jfc3RyaW5nKHVkZXYsIGJ1ZmZlcls3XSwgdGVybS0+bmFtZSwKKwkJCQkgICBzaXplb2YgdGVybS0+bmFtZSk7CisJCWVsc2UgaWYgKFVWQ19FTlRJVFlfVFlQRSh0ZXJtKSA9PSBJVFRfQ0FNRVJBKQorCQkJc3ByaW50Zih0ZXJtLT5uYW1lLCAiQ2FtZXJhICV1IiwgYnVmZmVyWzNdKTsKKwkJZWxzZSBpZiAoVVZDX0VOVElUWV9UWVBFKHRlcm0pID09IElUVF9NRURJQV9UUkFOU1BPUlRfSU5QVVQpCisJCQlzcHJpbnRmKHRlcm0tPm5hbWUsICJNZWRpYSAldSIsIGJ1ZmZlclszXSk7CisJCWVsc2UKKwkJCXNwcmludGYodGVybS0+bmFtZSwgIklucHV0ICV1IiwgYnVmZmVyWzNdKTsKKworCQlsaXN0X2FkZF90YWlsKCZ0ZXJtLT5saXN0LCAmZGV2LT5lbnRpdGllcyk7CisJCWJyZWFrOworCisJY2FzZSBWQ19PVVRQVVRfVEVSTUlOQUw6CisJCWlmIChidWZsZW4gPCA5KSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBPVVRQVVRfVEVSTUlOQUwgZXJyb3JcbiIsCisJCQkJdWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQkvKiBNYWtlIHN1cmUgdGhlIHRlcm1pbmFsIHR5cGUgTVNCIGlzIG5vdCBudWxsLCBvdGhlcndpc2UgaXQKKwkJICogY291bGQgYmUgY29uZnVzZWQgd2l0aCBhIHVuaXQuCisJCSAqLworCQl0eXBlID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzRdKTsKKwkJaWYgKCh0eXBlICYgMHhmZjAwKSA9PSAwKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBPVVRQVVRfVEVSTUlOQUwgJWQgaGFzIGludmFsaWQgIgorCQkJCSJ0eXBlIDB4JTA0eCwgc2tpcHBpbmdcbiIsIHVkZXYtPmRldm51bSwKKwkJCQlhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIsIGJ1ZmZlclszXSwgdHlwZSk7CisJCQlyZXR1cm4gMDsKKwkJfQorCisJCXRlcm0gPSBremFsbG9jKHNpemVvZiAqdGVybSwgR0ZQX0tFUk5FTCk7CisJCWlmICh0ZXJtID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQl0ZXJtLT5pZCA9IGJ1ZmZlclszXTsKKwkJdGVybS0+dHlwZSA9IHR5cGUgfCBVVkNfVEVSTV9PVVRQVVQ7CisJCXRlcm0tPm91dHB1dC5iU291cmNlSUQgPSBidWZmZXJbN107CisKKwkJaWYgKGJ1ZmZlcls4XSAhPSAwKQorCQkJdXNiX3N0cmluZyh1ZGV2LCBidWZmZXJbOF0sIHRlcm0tPm5hbWUsCisJCQkJICAgc2l6ZW9mIHRlcm0tPm5hbWUpOworCQllbHNlCisJCQlzcHJpbnRmKHRlcm0tPm5hbWUsICJPdXRwdXQgJXUiLCBidWZmZXJbM10pOworCisJCWxpc3RfYWRkX3RhaWwoJnRlcm0tPmxpc3QsICZkZXYtPmVudGl0aWVzKTsKKwkJYnJlYWs7CisKKwljYXNlIFZDX1NFTEVDVE9SX1VOSVQ6CisJCXAgPSBidWZsZW4gPj0gNSA/IGJ1ZmZlcls0XSA6IDA7CisKKwkJaWYgKGJ1ZmxlbiA8IDUgfHwgYnVmbGVuIDwgNiArIHApIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIFNFTEVDVE9SX1VOSVQgZXJyb3JcbiIsCisJCQkJdWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQl1bml0ID0ga3phbGxvYyhzaXplb2YgKnVuaXQgKyBwLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHVuaXQgPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCXVuaXQtPmlkID0gYnVmZmVyWzNdOworCQl1bml0LT50eXBlID0gYnVmZmVyWzJdOworCQl1bml0LT5zZWxlY3Rvci5iTnJJblBpbnMgPSBidWZmZXJbNF07CisJCXVuaXQtPnNlbGVjdG9yLmJhU291cmNlSUQgPSAoX191OCAqKXVuaXQgKyBzaXplb2YgKnVuaXQ7CisJCW1lbWNweSh1bml0LT5zZWxlY3Rvci5iYVNvdXJjZUlELCAmYnVmZmVyWzVdLCBwKTsKKworCQlpZiAoYnVmZmVyWzUrcF0gIT0gMCkKKwkJCXVzYl9zdHJpbmcodWRldiwgYnVmZmVyWzUrcF0sIHVuaXQtPm5hbWUsCisJCQkJICAgc2l6ZW9mIHVuaXQtPm5hbWUpOworCQllbHNlCisJCQlzcHJpbnRmKHVuaXQtPm5hbWUsICJTZWxlY3RvciAldSIsIGJ1ZmZlclszXSk7CisKKwkJbGlzdF9hZGRfdGFpbCgmdW5pdC0+bGlzdCwgJmRldi0+ZW50aXRpZXMpOworCQlicmVhazsKKworCWNhc2UgVkNfUFJPQ0VTU0lOR19VTklUOgorCQluID0gYnVmbGVuID49IDggPyBidWZmZXJbN10gOiAwOworCQlwID0gZGV2LT51dmNfdmVyc2lvbiA+PSAweDAxMTAgPyAxMCA6IDk7CisKKwkJaWYgKGJ1ZmxlbiA8IHAgKyBuKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBQUk9DRVNTSU5HX1VOSVQgZXJyb3JcbiIsCisJCQkJdWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQl1bml0ID0ga3phbGxvYyhzaXplb2YgKnVuaXQgKyBuLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHVuaXQgPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCXVuaXQtPmlkID0gYnVmZmVyWzNdOworCQl1bml0LT50eXBlID0gYnVmZmVyWzJdOworCQl1bml0LT5wcm9jZXNzaW5nLmJTb3VyY2VJRCA9IGJ1ZmZlcls0XTsKKwkJdW5pdC0+cHJvY2Vzc2luZy53TWF4TXVsdGlwbGllciA9CisJCQlsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbNV0pOworCQl1bml0LT5wcm9jZXNzaW5nLmJDb250cm9sU2l6ZSA9IGJ1ZmZlcls3XTsKKwkJdW5pdC0+cHJvY2Vzc2luZy5ibUNvbnRyb2xzID0gKF9fdTggKil1bml0ICsgc2l6ZW9mICp1bml0OworCQltZW1jcHkodW5pdC0+cHJvY2Vzc2luZy5ibUNvbnRyb2xzLCAmYnVmZmVyWzhdLCBuKTsKKwkJaWYgKGRldi0+dXZjX3ZlcnNpb24gPj0gMHgwMTEwKQorCQkJdW5pdC0+cHJvY2Vzc2luZy5ibVZpZGVvU3RhbmRhcmRzID0gYnVmZmVyWzkrbl07CisKKwkJaWYgKGJ1ZmZlcls4K25dICE9IDApCisJCQl1c2Jfc3RyaW5nKHVkZXYsIGJ1ZmZlcls4K25dLCB1bml0LT5uYW1lLAorCQkJCSAgIHNpemVvZiB1bml0LT5uYW1lKTsKKwkJZWxzZQorCQkJc3ByaW50Zih1bml0LT5uYW1lLCAiUHJvY2Vzc2luZyAldSIsIGJ1ZmZlclszXSk7CisKKwkJbGlzdF9hZGRfdGFpbCgmdW5pdC0+bGlzdCwgJmRldi0+ZW50aXRpZXMpOworCQlicmVhazsKKworCWNhc2UgVkNfRVhURU5TSU9OX1VOSVQ6CisJCXAgPSBidWZsZW4gPj0gMjIgPyBidWZmZXJbMjFdIDogMDsKKwkJbiA9IGJ1ZmxlbiA+PSAyNCArIHAgPyBidWZmZXJbMjIrcF0gOiAwOworCisJCWlmIChidWZsZW4gPCAyNCArIHAgKyBuKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBFWFRFTlNJT05fVU5JVCBlcnJvclxuIiwKKwkJCQl1ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXVuaXQgPSBremFsbG9jKHNpemVvZiAqdW5pdCArIHAgKyBuLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHVuaXQgPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCXVuaXQtPmlkID0gYnVmZmVyWzNdOworCQl1bml0LT50eXBlID0gYnVmZmVyWzJdOworCQltZW1jcHkodW5pdC0+ZXh0ZW5zaW9uLmd1aWRFeHRlbnNpb25Db2RlLCAmYnVmZmVyWzRdLCAxNik7CisJCXVuaXQtPmV4dGVuc2lvbi5iTnVtQ29udHJvbHMgPSBidWZmZXJbMjBdOworCQl1bml0LT5leHRlbnNpb24uYk5ySW5QaW5zID0KKwkJCWxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlclsyMV0pOworCQl1bml0LT5leHRlbnNpb24uYmFTb3VyY2VJRCA9IChfX3U4ICopdW5pdCArIHNpemVvZiAqdW5pdDsKKwkJbWVtY3B5KHVuaXQtPmV4dGVuc2lvbi5iYVNvdXJjZUlELCAmYnVmZmVyWzIyXSwgcCk7CisJCXVuaXQtPmV4dGVuc2lvbi5iQ29udHJvbFNpemUgPSBidWZmZXJbMjIrcF07CisJCXVuaXQtPmV4dGVuc2lvbi5ibUNvbnRyb2xzID0gKF9fdTggKil1bml0ICsgc2l6ZW9mICp1bml0ICsgcDsKKwkJbWVtY3B5KHVuaXQtPmV4dGVuc2lvbi5ibUNvbnRyb2xzLCAmYnVmZmVyWzIzK3BdLCBuKTsKKworCQlpZiAoYnVmZmVyWzIzK3Arbl0gIT0gMCkKKwkJCXVzYl9zdHJpbmcodWRldiwgYnVmZmVyWzIzK3Arbl0sIHVuaXQtPm5hbWUsCisJCQkJICAgc2l6ZW9mIHVuaXQtPm5hbWUpOworCQllbHNlCisJCQlzcHJpbnRmKHVuaXQtPm5hbWUsICJFeHRlbnNpb24gJXUiLCBidWZmZXJbM10pOworCisJCWxpc3RfYWRkX3RhaWwoJnVuaXQtPmxpc3QsICZkZXYtPmVudGl0aWVzKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiRm91bmQgYW4gdW5rbm93biBDU19JTlRFUkZBQ0UgIgorCQkJImRlc2NyaXB0b3IgKCV1KVxuIiwgYnVmZmVyWzJdKTsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3BhcnNlX2NvbnRyb2woc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICphbHRzID0gZGV2LT5pbnRmLT5jdXJfYWx0c2V0dGluZzsKKwl1bnNpZ25lZCBjaGFyICpidWZmZXIgPSBhbHRzLT5leHRyYTsKKwlpbnQgYnVmbGVuID0gYWx0cy0+ZXh0cmFsZW47CisJaW50IHJldDsKKworCS8qIFBhcnNlIHRoZSBkZWZhdWx0IGFsdGVybmF0ZSBzZXR0aW5nIG9ubHksIGFzIHRoZSBVVkMgc3BlY2lmaWNhdGlvbgorCSAqIGRlZmluZXMgYSBzaW5nbGUgYWx0ZXJuYXRlIHNldHRpbmcsIHRoZSBkZWZhdWx0IGFsdGVybmF0ZSBzZXR0aW5nCisJICogemVyby4KKwkgKi8KKworCXdoaWxlIChidWZsZW4gPiAyKSB7CisJCWlmICh1dmNfcGFyc2VfdmVuZG9yX2NvbnRyb2woZGV2LCBidWZmZXIsIGJ1ZmxlbikgfHwKKwkJICAgIGJ1ZmZlclsxXSAhPSBVU0JfRFRfQ1NfSU5URVJGQUNFKQorCQkJZ290byBuZXh0X2Rlc2NyaXB0b3I7CisKKwkJaWYgKChyZXQgPSB1dmNfcGFyc2Vfc3RhbmRhcmRfY29udHJvbChkZXYsIGJ1ZmZlciwgYnVmbGVuKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKworbmV4dF9kZXNjcmlwdG9yOgorCQlidWZsZW4gLT0gYnVmZmVyWzBdOworCQlidWZmZXIgKz0gYnVmZmVyWzBdOworCX0KKworCS8qIENoZWNrIGlmIHRoZSBvcHRpb25hbCBzdGF0dXMgZW5kcG9pbnQgaXMgcHJlc2VudC4gKi8KKwlpZiAoYWx0cy0+ZGVzYy5iTnVtRW5kcG9pbnRzID09IDEpIHsKKwkJc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICplcCA9ICZhbHRzLT5lbmRwb2ludFswXTsKKwkJc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yICpkZXNjID0gJmVwLT5kZXNjOworCisJCWlmICh1c2JfZW5kcG9pbnRfaXNfaW50X2luKGRlc2MpICYmCisJCSAgICBsZTE2X3RvX2NwdShkZXNjLT53TWF4UGFja2V0U2l6ZSkgPj0gOCAmJgorCQkgICAgZGVzYy0+YkludGVydmFsICE9IDApIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJGb3VuZCBhIFN0YXR1cyBlbmRwb2ludCAiCisJCQkJIihhZGRyICUwMngpLlxuIiwgZGVzYy0+YkVuZHBvaW50QWRkcmVzcyk7CisJCQlkZXYtPmludF9lcCA9IGVwOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVVNCIHByb2JlIGFuZCBkaXNjb25uZWN0CisgKi8KKworLyoKKyAqIFVucmVnaXN0ZXIgdGhlIHZpZGVvIGRldmljZXMuCisgKi8KK3N0YXRpYyB2b2lkIHV2Y191bnJlZ2lzdGVyX3ZpZGVvKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJaWYgKGRldi0+dmlkZW8udmRldikgeworCQlpZiAoZGV2LT52aWRlby52ZGV2LT5taW5vciA9PSAtMSkKKwkJCXZpZGVvX2RldmljZV9yZWxlYXNlKGRldi0+dmlkZW8udmRldik7CisJCWVsc2UKKwkJCXZpZGVvX3VucmVnaXN0ZXJfZGV2aWNlKGRldi0+dmlkZW8udmRldik7CisJCWRldi0+dmlkZW8udmRldiA9IE5VTEw7CisJfQorfQorCisvKgorICogU2NhbiB0aGUgVVZDIGRlc2NyaXB0b3JzIHRvIGxvY2F0ZSBhIGNoYWluIHN0YXJ0aW5nIGF0IGFuIE91dHB1dCBUZXJtaW5hbAorICogYW5kIGNvbnRhaW5pbmcgdGhlIGZvbGxvd2luZyB1bml0czoKKyAqCisgKiAtIGEgVVNCIFN0cmVhbWluZyBPdXRwdXQgVGVybWluYWwKKyAqIC0gemVybyBvciBvbmUgUHJvY2Vzc2luZyBVbml0CisgKiAtIHplcm8sIG9uZSBvciBtb2RlIHNpbmdsZS1pbnB1dCBTZWxlY3RvciBVbml0cworICogLSB6ZXJvIG9yIG9uZSBtdWx0aXBsZS1pbnB1dCBTZWxlY3RvciBVbml0cywgcHJvdmlkZWQgYWxsIGlucHV0cyBhcmUKKyAqICAgY29ubmVjdGVkIHRvIGlucHV0IHRlcm1pbmFscworICogLSB6ZXJvLCBvbmUgb3IgbW9kZSBzaW5nbGUtaW5wdXQgRXh0ZW5zaW9uIFVuaXRzCisgKiAtIG9uZSBDYW1lcmEgSW5wdXQgVGVybWluYWwsIG9yIG9uZSBvciBtb3JlIEV4dGVybmFsIHRlcm1pbmFscy4KKyAqCisgKiBBIHNpZGUgZm9yd2FyZCBzY2FuIGlzIG1hZGUgb24gZWFjaCBkZXRlY3RlZCBlbnRpdHkgdG8gY2hlY2sgZm9yIGFkZGl0aW9uYWwKKyAqIGV4dGVuc2lvbiB1bml0cy4KKyAqLworc3RhdGljIGludCB1dmNfc2Nhbl9jaGFpbl9lbnRpdHkoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHkpCit7CisJc3dpdGNoIChVVkNfRU5USVRZX1RZUEUoZW50aXR5KSkgeworCWNhc2UgVkNfRVhURU5TSU9OX1VOSVQ6CisJCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfUFJPQkUpCisJCQlwcmludGsoIiA8LSBYVSAlZCIsIGVudGl0eS0+aWQpOworCisJCWlmIChlbnRpdHktPmV4dGVuc2lvbi5iTnJJblBpbnMgIT0gMSkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIkV4dGVuc2lvbiB1bml0ICVkIGhhcyBtb3JlICIKKwkJCQkidGhhbiAxIGlucHV0IHBpbi5cbiIsIGVudGl0eS0+aWQpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJbGlzdF9hZGRfdGFpbCgmZW50aXR5LT5jaGFpbiwgJnZpZGVvLT5leHRlbnNpb25zKTsKKwkJYnJlYWs7CisKKwljYXNlIFZDX1BST0NFU1NJTkdfVU5JVDoKKwkJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9QUk9CRSkKKwkJCXByaW50aygiIDwtIFBVICVkIiwgZW50aXR5LT5pZCk7CisKKwkJaWYgKHZpZGVvLT5wcm9jZXNzaW5nICE9IE5VTEwpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJGb3VuZCBtdWx0aXBsZSAiCisJCQkJIlByb2Nlc3NpbmcgVW5pdHMgaW4gY2hhaW4uXG4iKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCisJCXZpZGVvLT5wcm9jZXNzaW5nID0gZW50aXR5OworCQlicmVhazsKKworCWNhc2UgVkNfU0VMRUNUT1JfVU5JVDoKKwkJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9QUk9CRSkKKwkJCXByaW50aygiIDwtIFNVICVkIiwgZW50aXR5LT5pZCk7CisKKwkJLyogU2luZ2xlLWlucHV0IHNlbGVjdG9yIHVuaXRzIGFyZSBpZ25vcmVkLiAqLworCQlpZiAoZW50aXR5LT5zZWxlY3Rvci5iTnJJblBpbnMgPT0gMSkKKwkJCWJyZWFrOworCisJCWlmICh2aWRlby0+c2VsZWN0b3IgIT0gTlVMTCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIkZvdW5kIG11bHRpcGxlIFNlbGVjdG9yICIKKwkJCQkiVW5pdHMgaW4gY2hhaW4uXG4iKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCisJCXZpZGVvLT5zZWxlY3RvciA9IGVudGl0eTsKKwkJYnJlYWs7CisKKwljYXNlIElUVF9WRU5ET1JfU1BFQ0lGSUM6CisJY2FzZSBJVFRfQ0FNRVJBOgorCWNhc2UgSVRUX01FRElBX1RSQU5TUE9SVF9JTlBVVDoKKwkJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9QUk9CRSkKKwkJCXByaW50aygiIDwtIElUICVkXG4iLCBlbnRpdHktPmlkKTsKKworCQlsaXN0X2FkZF90YWlsKCZlbnRpdHktPmNoYWluLCAmdmlkZW8tPml0ZXJtcyk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIlVuc3VwcG9ydGVkIGVudGl0eSB0eXBlICIKKwkJCSIweCUwNHggZm91bmQgaW4gY2hhaW4uXG4iLCBVVkNfRU5USVRZX1RZUEUoZW50aXR5KSk7CisJCXJldHVybiAtMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1dmNfc2Nhbl9jaGFpbl9mb3J3YXJkKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5LCBzdHJ1Y3QgdXZjX2VudGl0eSAqcHJldikKK3sKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZm9yd2FyZDsKKwlpbnQgZm91bmQ7CisKKwkvKiBGb3J3YXJkIHNjYW4gKi8KKwlmb3J3YXJkID0gTlVMTDsKKwlmb3VuZCA9IDA7CisKKwl3aGlsZSAoMSkgeworCQlmb3J3YXJkID0gdXZjX2VudGl0eV9ieV9yZWZlcmVuY2UodmlkZW8tPmRldiwgZW50aXR5LT5pZCwKKwkJCWZvcndhcmQpOworCQlpZiAoZm9yd2FyZCA9PSBOVUxMKQorCQkJYnJlYWs7CisKKwkJaWYgKFVWQ19FTlRJVFlfVFlQRShmb3J3YXJkKSAhPSBWQ19FWFRFTlNJT05fVU5JVCB8fAorCQkgICAgZm9yd2FyZCA9PSBwcmV2KQorCQkJY29udGludWU7CisKKwkJaWYgKGZvcndhcmQtPmV4dGVuc2lvbi5iTnJJblBpbnMgIT0gMSkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIkV4dGVuc2lvbiB1bml0ICVkIGhhcyIKKwkJCQkibW9yZSB0aGFuIDEgaW5wdXQgcGluLlxuIiwgZW50aXR5LT5pZCk7CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQlsaXN0X2FkZF90YWlsKCZmb3J3YXJkLT5jaGFpbiwgJnZpZGVvLT5leHRlbnNpb25zKTsKKwkJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9QUk9CRSkgeworCQkJaWYgKCFmb3VuZCkKKwkJCQlwcmludGsoIiAoLT4gWFUiKTsKKworCQkJcHJpbnRrKCIgJWQiLCBmb3J3YXJkLT5pZCk7CisJCQlmb3VuZCA9IDE7CisJCX0KKwl9CisJaWYgKGZvdW5kKQorCQlwcmludGsoIikiKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHV2Y19zY2FuX2NoYWluX2JhY2t3YXJkKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5KQoreworCXN0cnVjdCB1dmNfZW50aXR5ICp0ZXJtOworCWludCBpZCA9IC0xLCBpOworCisJc3dpdGNoIChVVkNfRU5USVRZX1RZUEUoZW50aXR5KSkgeworCWNhc2UgVkNfRVhURU5TSU9OX1VOSVQ6CisJCWlkID0gZW50aXR5LT5leHRlbnNpb24uYmFTb3VyY2VJRFswXTsKKwkJYnJlYWs7CisKKwljYXNlIFZDX1BST0NFU1NJTkdfVU5JVDoKKwkJaWQgPSBlbnRpdHktPnByb2Nlc3NpbmcuYlNvdXJjZUlEOworCQlicmVhazsKKworCWNhc2UgVkNfU0VMRUNUT1JfVU5JVDoKKwkJLyogU2luZ2xlLWlucHV0IHNlbGVjdG9yIHVuaXRzIGFyZSBpZ25vcmVkLiAqLworCQlpZiAoZW50aXR5LT5zZWxlY3Rvci5iTnJJblBpbnMgPT0gMSkgeworCQkJaWQgPSBlbnRpdHktPnNlbGVjdG9yLmJhU291cmNlSURbMF07CisJCQlicmVhazsKKwkJfQorCisJCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfUFJPQkUpCisJCQlwcmludGsoIiA8LSBJVCIpOworCisJCXZpZGVvLT5zZWxlY3RvciA9IGVudGl0eTsKKwkJZm9yIChpID0gMDsgaSA8IGVudGl0eS0+c2VsZWN0b3IuYk5ySW5QaW5zOyArK2kpIHsKKwkJCWlkID0gZW50aXR5LT5zZWxlY3Rvci5iYVNvdXJjZUlEW2ldOworCQkJdGVybSA9IHV2Y19lbnRpdHlfYnlfaWQodmlkZW8tPmRldiwgaWQpOworCQkJaWYgKHRlcm0gPT0gTlVMTCB8fCAhVVZDX0VOVElUWV9JU19JVEVSTSh0ZXJtKSkgeworCQkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJTZWxlY3RvciB1bml0ICVkICIKKwkJCQkJImlucHV0ICVkIGlzbid0IGNvbm5lY3RlZCB0byBhbiAiCisJCQkJCSJpbnB1dCB0ZXJtaW5hbFxuIiwgZW50aXR5LT5pZCwgaSk7CisJCQkJcmV0dXJuIC0xOworCQkJfQorCisJCQlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX1BST0JFKQorCQkJCXByaW50aygiICVkIiwgdGVybS0+aWQpOworCisJCQlsaXN0X2FkZF90YWlsKCZ0ZXJtLT5jaGFpbiwgJnZpZGVvLT5pdGVybXMpOworCQkJdXZjX3NjYW5fY2hhaW5fZm9yd2FyZCh2aWRlbywgdGVybSwgZW50aXR5KTsKKwkJfQorCisJCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfUFJPQkUpCisJCQlwcmludGsoIlxuIik7CisKKwkJaWQgPSAwOworCQlicmVhazsKKwl9CisKKwlyZXR1cm4gaWQ7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3NjYW5fY2hhaW4oc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKQoreworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHksICpwcmV2OworCWludCBpZDsKKworCWVudGl0eSA9IHZpZGVvLT5vdGVybTsKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX1BST0JFLCAiU2Nhbm5pbmcgVVZDIGNoYWluOiBPVCAlZCIsIGVudGl0eS0+aWQpOworCWlkID0gZW50aXR5LT5vdXRwdXQuYlNvdXJjZUlEOworCXdoaWxlIChpZCAhPSAwKSB7CisJCXByZXYgPSBlbnRpdHk7CisJCWVudGl0eSA9IHV2Y19lbnRpdHlfYnlfaWQodmlkZW8tPmRldiwgaWQpOworCQlpZiAoZW50aXR5ID09IE5VTEwpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJGb3VuZCByZWZlcmVuY2UgdG8gIgorCQkJCSJ1bmtub3duIGVudGl0eSAlZC5cbiIsIGlkKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCisJCS8qIFByb2Nlc3MgZW50aXR5ICovCisJCWlmICh1dmNfc2Nhbl9jaGFpbl9lbnRpdHkodmlkZW8sIGVudGl0eSkgPCAwKQorCQkJcmV0dXJuIC0xOworCisJCS8qIEZvcndhcmQgc2NhbiAqLworCQlpZiAodXZjX3NjYW5fY2hhaW5fZm9yd2FyZCh2aWRlbywgZW50aXR5LCBwcmV2KSA8IDApCisJCQlyZXR1cm4gLTE7CisKKwkJLyogU3RvcCB3aGVuIGEgdGVybWluYWwgaXMgZm91bmQuICovCisJCWlmICghVVZDX0VOVElUWV9JU19VTklUKGVudGl0eSkpCisJCQlicmVhazsKKworCQkvKiBCYWNrd2FyZCBzY2FuICovCisJCWlkID0gdXZjX3NjYW5fY2hhaW5fYmFja3dhcmQodmlkZW8sIGVudGl0eSk7CisJCWlmIChpZCA8IDApCisJCQlyZXR1cm4gaWQ7CisJfQorCisJLyogSW5pdGlhbGl6ZSB0aGUgdmlkZW8gYnVmZmVycyBxdWV1ZS4gKi8KKwl1dmNfcXVldWVfaW5pdCgmdmlkZW8tPnF1ZXVlKTsKKworCXJldHVybiAwOworfQorCisvKgorICogUmVnaXN0ZXIgdGhlIHZpZGVvIGRldmljZXMuCisgKgorICogVGhlIGRyaXZlciBjdXJyZW50bHkgc3VwcG9ydHMgYSBzaW5nbGUgdmlkZW8gZGV2aWNlIHBlciBjb250cm9sIGludGVyZmFjZQorICogb25seS4gVGhlIHRlcm1pbmFsIGFuZCB1bml0cyBtdXN0IG1hdGNoIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOgorICoKKyAqIElUVF9DQU1FUkEgLT4gVkNfUFJPQ0VTU0lOR19VTklUIC0+IFZDX0VYVEVOU0lPTl9VTklUezAsbn0gLT4gVFRfU1RSRUFNSU5HCisgKgorICogVGhlIEV4dGVuc2lvbiBVbml0cywgaWYgcHJlc2VudCwgbXVzdCBoYXZlIGEgc2luZ2xlIGlucHV0IHBpbi4gVGhlCisgKiBQcm9jZXNzaW5nIFVuaXQgYW5kIEV4dGVuc2lvbiBVbml0cyBjYW4gYmUgaW4gYW55IG9yZGVyLiBBZGRpdGlvbmFsCisgKiBFeHRlbnNpb24gVW5pdHMgY29ubmVjdGVkIHRvIHRoZSBtYWluIGNoYWluIGFzIHNpbmdsZS11bml0IGJyYW5jaGVzIGFyZQorICogYWxzbyBzdXBwb3J0ZWQuCisgKi8KK3N0YXRpYyBpbnQgdXZjX3JlZ2lzdGVyX3ZpZGVvKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHZpZGVvX2RldmljZSAqdmRldjsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqdGVybTsKKwlpbnQgZm91bmQgPSAwLCByZXQ7CisKKwkvKiBDaGVjayBpZiB0aGUgY29udHJvbCBpbnRlcmZhY2UgbWF0Y2hlcyB0aGUgc3RydWN0dXJlIHdlIGV4cGVjdC4gKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRlcm0sICZkZXYtPmVudGl0aWVzLCBsaXN0KSB7CisJCXN0cnVjdCB1dmNfc3RyZWFtaW5nICpzdHJlYW1pbmc7CisKKwkJaWYgKFVWQ19FTlRJVFlfVFlQRSh0ZXJtKSAhPSBUVF9TVFJFQU1JTkcpCisJCQljb250aW51ZTsKKworCQltZW1zZXQoJmRldi0+dmlkZW8sIDAsIHNpemVvZiBkZXYtPnZpZGVvKTsKKwkJbXV0ZXhfaW5pdCgmZGV2LT52aWRlby5jdHJsX211dGV4KTsKKwkJSU5JVF9MSVNUX0hFQUQoJmRldi0+dmlkZW8uaXRlcm1zKTsKKwkJSU5JVF9MSVNUX0hFQUQoJmRldi0+dmlkZW8uZXh0ZW5zaW9ucyk7CisJCWRldi0+dmlkZW8ub3Rlcm0gPSB0ZXJtOworCQlkZXYtPnZpZGVvLmRldiA9IGRldjsKKwkJaWYgKHV2Y19zY2FuX2NoYWluKCZkZXYtPnZpZGVvKSA8IDApCisJCQljb250aW51ZTsKKworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHN0cmVhbWluZywgJmRldi0+c3RyZWFtaW5nLCBsaXN0KSB7CisJCQlpZiAoc3RyZWFtaW5nLT5oZWFkZXIuYlRlcm1pbmFsTGluayA9PSB0ZXJtLT5pZCkgeworCQkJCWRldi0+dmlkZW8uc3RyZWFtaW5nID0gc3RyZWFtaW5nOworCQkJCWZvdW5kID0gMTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCWlmIChmb3VuZCkKKwkJCWJyZWFrOworCX0KKworCWlmICghZm91bmQpIHsKKwkJdXZjX3ByaW50ayhLRVJOX0lORk8sICJObyB2YWxpZCB2aWRlbyBjaGFpbiBmb3VuZC5cbiIpOworCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9QUk9CRSkgeworCQl1dmNfcHJpbnRrKEtFUk5fSU5GTywgIkZvdW5kIGEgdmFsaWQgdmlkZW8gY2hhaW4gKCIpOworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRlcm0sICZkZXYtPnZpZGVvLml0ZXJtcywgY2hhaW4pIHsKKwkJCXByaW50aygiJWQiLCB0ZXJtLT5pZCk7CisJCQlpZiAodGVybS0+Y2hhaW4ubmV4dCAhPSAmZGV2LT52aWRlby5pdGVybXMpCisJCQkJcHJpbnRrKCIsIik7CisJCX0KKwkJcHJpbnRrKCIgLT4gJWQpLlxuIiwgZGV2LT52aWRlby5vdGVybS0+aWQpOworCX0KKworCS8qIEluaXRpYWxpemUgdGhlIHN0cmVhbWluZyBpbnRlcmZhY2Ugd2l0aCBkZWZhdWx0IHN0cmVhbWluZworCSAqIHBhcmFtZXRlcnMuCisJICovCisJaWYgKChyZXQgPSB1dmNfdmlkZW9faW5pdCgmZGV2LT52aWRlbykpIDwgMCkgeworCQl1dmNfcHJpbnRrKEtFUk5fRVJSLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIGRldmljZSAiCisJCQkiKCVkKS5cbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJLyogUmVnaXN0ZXIgdGhlIGRldmljZSB3aXRoIFY0TC4gKi8KKwl2ZGV2ID0gdmlkZW9fZGV2aWNlX2FsbG9jKCk7CisJaWYgKHZkZXYgPT0gTlVMTCkKKwkJcmV0dXJuIC0xOworCisJLyogV2UgYWxyZWFkeSBob2xkIGEgcmVmZXJlbmNlIHRvIGRldi0+dWRldi4gVGhlIHZpZGVvIGRldmljZSB3aWxsIGJlCisJICogdW5yZWdpc3RlcmVkIGJlZm9yZSB0aGUgcmVmZXJlbmNlIGlzIHJlbGVhc2VkLCBzbyB3ZSBkb24ndCBuZWVkIHRvCisJICogZ2V0IGFub3RoZXIgb25lLgorCSAqLworCXZkZXYtPmRldiA9ICZkZXYtPmludGYtPmRldjsKKwl2ZGV2LT50eXBlID0gMDsKKwl2ZGV2LT50eXBlMiA9IDA7CisJdmRldi0+bWlub3IgPSAtMTsKKwl2ZGV2LT5mb3BzID0gJnV2Y19mb3BzOworCXZkZXYtPnJlbGVhc2UgPSB2aWRlb19kZXZpY2VfcmVsZWFzZTsKKwlzdHJuY3B5KHZkZXYtPm5hbWUsIGRldi0+bmFtZSwgc2l6ZW9mIHZkZXYtPm5hbWUpOworCisJLyogU2V0IHRoZSBkcml2ZXIgZGF0YSBiZWZvcmUgY2FsbGluZyB2aWRlb19yZWdpc3Rlcl9kZXZpY2UsIG90aGVyd2lzZQorCSAqIHV2Y192NGwyX29wZW4gbWlnaHQgcmFjZSB1cy4KKwkgKgorCSAqIEZJWE1FOiB1c2Jfc2V0X2ludGZkYXRhIGhhc24ndCBiZWVuIGNhbGxlZCBzbyBmYXIuIElzIHRoYXQgYQorCSAqIAkgIHByb2JsZW0gPyBEb2VzIGFueSBmdW5jdGlvbiB3aGljaCBjb3VsZCBiZSBjYWxsZWQgaGVyZSBnZXQKKwkgKiAJICBhIHBvaW50ZXIgdG8gdGhlIHVzYl9pbnRlcmZhY2UgPworCSAqLworCWRldi0+dmlkZW8udmRldiA9IHZkZXY7CisJdmlkZW9fc2V0X2RydmRhdGEodmRldiwgJmRldi0+dmlkZW8pOworCisJaWYgKHZpZGVvX3JlZ2lzdGVyX2RldmljZSh2ZGV2LCBWRkxfVFlQRV9HUkFCQkVSLCAtMSkgPCAwKSB7CisJCWRldi0+dmlkZW8udmRldiA9IE5VTEw7CisJCXZpZGVvX2RldmljZV9yZWxlYXNlKHZkZXYpOworCQlyZXR1cm4gLTE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBEZWxldGUgdGhlIFVWQyBkZXZpY2UuCisgKgorICogQ2FsbGVkIGJ5IHRoZSBrZXJuZWwgd2hlbiB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhlIHV2Y19kZXZpY2Ugc3RydWN0dXJlCisgKiBpcyByZWxlYXNlZC4KKyAqCisgKiBVbnJlZ2lzdGVyaW5nIHRoZSB2aWRlbyBkZXZpY2VzIGlzIGRvbmUgaGVyZSBiZWNhdXNlIGV2ZXJ5IG9wZW5lZCBpbnN0YW5jZQorICogbXVzdCBiZSBjbG9zZWQgYmVmb3JlIHRoZSBkZXZpY2UgY2FuIGJlIHVucmVnaXN0ZXJlZC4gQW4gYWx0ZXJuYXRpdmUgd291bGQKKyAqIGhhdmUgYmVlbiB0byB1c2UgYW5vdGhlciByZWZlcmVuY2UgY291bnQgZm9yIHV2Y192NGwyX29wZW4vdXZjX3JlbGVhc2UsIGFuZAorICogdW5yZWdpc3RlciB0aGUgdmlkZW8gZGV2aWNlcyBvbiBkaXNjb25uZWN0IHdoZW4gdGhhdCByZWZlcmVuY2UgY291bnQgZHJvcHMKKyAqIHRvIHplcm8uCisgKgorICogQXMgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYWZ0ZXIgb3IgZHVyaW5nIGRpc2Nvbm5lY3QoKSwgYWxsIFVSQnMgaGF2ZQorICogYWxyZWFkeSBiZWVuIGNhbmNlbGVkIGJ5IHRoZSBVU0IgY29yZS4gVGhlcmUgaXMgbm8gbmVlZCB0byBraWxsIHRoZQorICogaW50ZXJydXB0IFVSQiBtYW51YWxseS4KKyAqLwordm9pZCB1dmNfZGVsZXRlKHN0cnVjdCBrcmVmICprcmVmKQoreworCXN0cnVjdCB1dmNfZGV2aWNlICpkZXYgPSBjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IHV2Y19kZXZpY2UsIGtyZWYpOworCXN0cnVjdCBsaXN0X2hlYWQgKnAsICpuOworCisJLyogVW5yZWdpc3RlciB0aGUgdmlkZW8gZGV2aWNlICovCisJdXZjX3VucmVnaXN0ZXJfdmlkZW8oZGV2KTsKKwl1c2JfcHV0X2ludGYoZGV2LT5pbnRmKTsKKwl1c2JfcHV0X2RldihkZXYtPnVkZXYpOworCisJdXZjX3N0YXR1c19jbGVhbnVwKGRldik7CisJdXZjX2N0cmxfY2xlYW51cF9kZXZpY2UoZGV2KTsKKworCWxpc3RfZm9yX2VhY2hfc2FmZShwLCBuLCAmZGV2LT5lbnRpdGllcykgeworCQlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCQllbnRpdHkgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCB1dmNfZW50aXR5LCBsaXN0KTsKKwkJa2ZyZWUoZW50aXR5KTsKKwl9CisKKwlsaXN0X2Zvcl9lYWNoX3NhZmUocCwgbiwgJmRldi0+c3RyZWFtaW5nKSB7CisJCXN0cnVjdCB1dmNfc3RyZWFtaW5nICpzdHJlYW1pbmc7CisJCXN0cmVhbWluZyA9IGxpc3RfZW50cnkocCwgc3RydWN0IHV2Y19zdHJlYW1pbmcsIGxpc3QpOworCQl1c2JfZHJpdmVyX3JlbGVhc2VfaW50ZXJmYWNlKCZ1dmNfZHJpdmVyLmRyaXZlciwKKwkJCXN0cmVhbWluZy0+aW50Zik7CisJCXVzYl9wdXRfaW50ZihzdHJlYW1pbmctPmludGYpOworCQlrZnJlZShzdHJlYW1pbmctPmZvcm1hdCk7CisJCWtmcmVlKHN0cmVhbWluZy0+aGVhZGVyLmJtYUNvbnRyb2xzKTsKKwkJa2ZyZWUoc3RyZWFtaW5nKTsKKwl9CisKKwlrZnJlZShkZXYpOworfQorCitzdGF0aWMgaW50IHV2Y19wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKKwkJICAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCit7CisJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGYpOworCXN0cnVjdCB1dmNfZGV2aWNlICpkZXY7CisJaW50IHJldDsKKworCWlmIChpZC0+aWRWZW5kb3IgJiYgaWQtPmlkUHJvZHVjdCkKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9QUk9CRSwgIlByb2Jpbmcga25vd24gVVZDIGRldmljZSAlcyAiCisJCQkJIiglMDR4OiUwNHgpXG4iLCB1ZGV2LT5kZXZwYXRoLCBpZC0+aWRWZW5kb3IsCisJCQkJaWQtPmlkUHJvZHVjdCk7CisJZWxzZQorCQl1dmNfdHJhY2UoVVZDX1RSQUNFX1BST0JFLCAiUHJvYmluZyBnZW5lcmljIFVWQyBkZXZpY2UgJXNcbiIsCisJCQkJdWRldi0+ZGV2cGF0aCk7CisKKwkvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBkZXZpY2UgYW5kIGluaXRpYWxpemUgaXQgKi8KKwlpZiAoKGRldiA9IGt6YWxsb2Moc2l6ZW9mICpkZXYsIEdGUF9LRVJORUwpKSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCUlOSVRfTElTVF9IRUFEKCZkZXYtPmVudGl0aWVzKTsKKwlJTklUX0xJU1RfSEVBRCgmZGV2LT5zdHJlYW1pbmcpOworCWtyZWZfaW5pdCgmZGV2LT5rcmVmKTsKKworCWRldi0+dWRldiA9IHVzYl9nZXRfZGV2KHVkZXYpOworCWRldi0+aW50ZiA9IHVzYl9nZXRfaW50ZihpbnRmKTsKKwlkZXYtPmludGZudW0gPSBpbnRmLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyOworCWRldi0+cXVpcmtzID0gaWQtPmRyaXZlcl9pbmZvIHwgdXZjX3F1aXJrc19wYXJhbTsKKworCWlmICh1ZGV2LT5wcm9kdWN0ICE9IE5VTEwpCisJCXN0cm5jcHkoZGV2LT5uYW1lLCB1ZGV2LT5wcm9kdWN0LCBzaXplb2YgZGV2LT5uYW1lKTsKKwllbHNlCisJCXNucHJpbnRmKGRldi0+bmFtZSwgc2l6ZW9mIGRldi0+bmFtZSwKKwkJCSJVVkMgQ2FtZXJhICglMDR4OiUwNHgpIiwKKwkJCWxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpLAorCQkJbGUxNl90b19jcHUodWRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpKTsKKworCS8qIFBhcnNlIHRoZSBWaWRlbyBDbGFzcyBjb250cm9sIGRlc2NyaXB0b3IgKi8KKwlpZiAodXZjX3BhcnNlX2NvbnRyb2woZGV2KSA8IDApIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9QUk9CRSwgIlVuYWJsZSB0byBwYXJzZSBVVkMgIgorCQkJImRlc2NyaXB0b3JzLlxuIik7CisJCWdvdG8gZXJyb3I7CisJfQorCisJdXZjX3ByaW50ayhLRVJOX0lORk8sICJGb3VuZCBVVkMgJXUuJTAydSBkZXZpY2UgJXMgKCUwNHg6JTA0eClcbiIsCisJCWRldi0+dXZjX3ZlcnNpb24gPj4gOCwgZGV2LT51dmNfdmVyc2lvbiAmIDB4ZmYsCisJCXVkZXYtPnByb2R1Y3QgPyB1ZGV2LT5wcm9kdWN0IDogIjx1bm5hbWVkPiIsCisJCWxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpLAorCQlsZTE2X3RvX2NwdSh1ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkpOworCisJaWYgKHV2Y19xdWlya3NfcGFyYW0gIT0gMCkgeworCQl1dmNfcHJpbnRrKEtFUk5fSU5GTywgIkZvcmNpbmcgZGV2aWNlIHF1aXJrcyAweCV4IGJ5IG1vZHVsZSAiCisJCQkicGFyYW1ldGVyIGZvciB0ZXN0aW5nIHB1cnBvc2UuXG4iLCB1dmNfcXVpcmtzX3BhcmFtKTsKKwkJdXZjX3ByaW50ayhLRVJOX0lORk8sICJQbGVhc2UgcmVwb3J0IHJlcXVpcmVkIHF1aXJrcyB0byB0aGUgIgorCQkJImxpbnV4LXV2Yy1kZXZlbCBtYWlsaW5nIGxpc3QuXG4iKTsKKwl9CisKKwkvKiBJbml0aWFsaXplIGNvbnRyb2xzICovCisJaWYgKHV2Y19jdHJsX2luaXRfZGV2aWNlKGRldikgPCAwKQorCQlnb3RvIGVycm9yOworCisJLyogUmVnaXN0ZXIgdGhlIHZpZGVvIGRldmljZXMgKi8KKwlpZiAodXZjX3JlZ2lzdGVyX3ZpZGVvKGRldikgPCAwKQorCQlnb3RvIGVycm9yOworCisJLyogU2F2ZSBvdXIgZGF0YSBwb2ludGVyIGluIHRoZSBpbnRlcmZhY2UgZGF0YSAqLworCXVzYl9zZXRfaW50ZmRhdGEoaW50ZiwgZGV2KTsKKworCS8qIEluaXRpYWxpemUgdGhlIGludGVycnVwdCBVUkIgKi8KKwlpZiAoKHJldCA9IHV2Y19zdGF0dXNfaW5pdChkZXYpKSA8IDApIHsKKwkJdXZjX3ByaW50ayhLRVJOX0lORk8sICJVbmFibGUgdG8gaW5pdGlhbGl6ZSB0aGUgc3RhdHVzICIKKwkJCSJlbmRwb2ludCAoJWQpLCBzdGF0dXMgaW50ZXJydXB0IHdpbGwgbm90IGJlICIKKwkJCSJzdXBwb3J0ZWQuXG4iLCByZXQpOworCX0KKworCXV2Y190cmFjZShVVkNfVFJBQ0VfUFJPQkUsICJVVkMgZGV2aWNlIGluaXRpYWxpemVkLlxuIik7CisJcmV0dXJuIDA7CisKK2Vycm9yOgorCWtyZWZfcHV0KCZkZXYtPmtyZWYsIHV2Y19kZWxldGUpOworCXJldHVybiAtRU5PREVWOworfQorCitzdGF0aWMgdm9pZCB1dmNfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKK3sKKwlzdHJ1Y3QgdXZjX2RldmljZSAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTsKKworCS8qIFNldCB0aGUgVVNCIGludGVyZmFjZSBkYXRhIHRvIE5VTEwuIFRoaXMgY2FuIGJlIGRvbmUgb3V0c2lkZSB0aGUKKwkgKiBsb2NrLCBhcyB0aGVyZSdzIG5vIG90aGVyIHJlYWRlci4KKwkgKi8KKwl1c2Jfc2V0X2ludGZkYXRhKGludGYsIE5VTEwpOworCisJaWYgKGludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJJbnRlcmZhY2VTdWJDbGFzcyA9PSBTQ19WSURFT1NUUkVBTUlORykKKwkJcmV0dXJuOworCisJLyogdXZjX3Y0bDJfb3BlbigpIG1pZ2h0IHJhY2UgdXZjX2Rpc2Nvbm5lY3QoKS4gQSBzdGF0aWMgZHJpdmVyLXdpZGUKKwkgKiBsb2NrIGlzIG5lZWRlZCB0byBwcmV2ZW50IHV2Y19kaXNjb25uZWN0IGZyb20gcmVsZWFzaW5nIGl0cworCSAqIHJlZmVyZW5jZSB0byB0aGUgdXZjX2RldmljZSBpbnN0YW5jZSBhZnRlciB1dmNfdjRsMl9vcGVuKCkgcmVjZWl2ZWQKKwkgKiB0aGUgcG9pbnRlciB0byB0aGUgZGV2aWNlICh2aWRlb19kZXZkYXRhKSBidXQgYmVmb3JlIGl0IGdvdCB0aGUKKwkgKiBjaGFuY2UgdG8gaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudCAoa3JlZl9nZXQpLgorCSAqLworCW11dGV4X2xvY2soJnV2Y19kcml2ZXIub3Blbl9tdXRleCk7CisKKwlkZXYtPnN0YXRlIHw9IFVWQ19ERVZfRElTQ09OTkVDVEVEOworCWtyZWZfcHV0KCZkZXYtPmtyZWYsIHV2Y19kZWxldGUpOworCisJbXV0ZXhfdW5sb2NrKCZ1dmNfZHJpdmVyLm9wZW5fbXV0ZXgpOworfQorCitzdGF0aWMgaW50IHV2Y19zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBwbV9tZXNzYWdlX3QgbWVzc2FnZSkKK3sKKwlzdHJ1Y3QgdXZjX2RldmljZSAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTsKKworCXV2Y190cmFjZShVVkNfVFJBQ0VfU1VTUEVORCwgIlN1c3BlbmRpbmcgaW50ZXJmYWNlICV1XG4iLAorCQlpbnRmLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKworCS8qIENvbnRyb2xzIGFyZSBjYWNoZWQgb24gdGhlIGZseSBzbyB0aGV5IGRvbid0IG5lZWQgdG8gYmUgc2F2ZWQuICovCisJaWYgKGludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJJbnRlcmZhY2VTdWJDbGFzcyA9PSBTQ19WSURFT0NPTlRST0wpCisJCXJldHVybiB1dmNfc3RhdHVzX3N1c3BlbmQoZGV2KTsKKworCWlmIChkZXYtPnZpZGVvLnN0cmVhbWluZy0+aW50ZiAhPSBpbnRmKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfU1VTUEVORCwgIlN1c3BlbmQ6IHZpZGVvIHN0cmVhbWluZyBVU0IgIgorCQkJCSJpbnRlcmZhY2UgbWlzbWF0Y2guXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIHV2Y192aWRlb19zdXNwZW5kKCZkZXYtPnZpZGVvKTsKK30KKworc3RhdGljIGludCB1dmNfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKQoreworCXN0cnVjdCB1dmNfZGV2aWNlICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpOworCWludCByZXQ7CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX1NVU1BFTkQsICJSZXN1bWluZyBpbnRlcmZhY2UgJXVcbiIsCisJCWludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCisJaWYgKGludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJJbnRlcmZhY2VTdWJDbGFzcyA9PSBTQ19WSURFT0NPTlRST0wpIHsKKwkJaWYgKChyZXQgPSB1dmNfY3RybF9yZXN1bWVfZGV2aWNlKGRldikpIDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0dXJuIHV2Y19zdGF0dXNfcmVzdW1lKGRldik7CisJfQorCisJaWYgKGRldi0+dmlkZW8uc3RyZWFtaW5nLT5pbnRmICE9IGludGYpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9TVVNQRU5ELCAiUmVzdW1lOiB2aWRlbyBzdHJlYW1pbmcgVVNCICIKKwkJCQkiaW50ZXJmYWNlIG1pc21hdGNoLlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiB1dmNfdmlkZW9fcmVzdW1lKCZkZXYtPnZpZGVvKTsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBEcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIGNsZWFudXAKKyAqLworCisvKgorICogVGhlIExvZ2l0ZWNoIGNhbWVyYXMgbGlzdGVkIGJlbG93IGhhdmUgdGhlaXIgaW50ZXJmYWNlIGNsYXNzIHNldCB0bworICogVkVORE9SX1NQRUMgYmVjYXVzZSB0aGV5IGRvbid0IGFubm91bmNlIHRoZW1zZWx2ZXMgYXMgVVZDIGRldmljZXMsIGV2ZW4KKyAqIHRob3VnaCB0aGV5IGFyZSBjb21wbGlhbnQuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCB1dmNfaWRzW10gPSB7CisJLyogQUxpIE01NjA2IChDbGV2byBNNTQwU1IpICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDAyLAorCSAgLmlkUHJvZHVjdAkJPSAweDU2MDYsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogQ3JlYXRpdmUgTGl2ZSEgT3B0aWEgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0MWUsCisJICAuaWRQcm9kdWN0CQk9IDB4NDA1NywKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBNaWNyb3NvZnQgTGlmZWNhbSBOWC02MDAwICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDVlLAorCSAgLmlkUHJvZHVjdAkJPSAweDAwZjgsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogTWljcm9zb2Z0IExpZmVjYW0gVlgtNzAwMCAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQ1ZSwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwNzIzLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIExvZ2l0ZWNoIFF1aWNrY2FtIEZ1c2lvbiAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQ2ZCwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwOGMxLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WRU5ET1JfU1BFQywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAgfSwKKwkvKiBMb2dpdGVjaCBRdWlja2NhbSBPcmJpdCBNUCAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQ2ZCwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwOGMyLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WRU5ET1JfU1BFQywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAgfSwKKwkvKiBMb2dpdGVjaCBRdWlja2NhbSBQcm8gZm9yIE5vdGVib29rICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDZkLAorCSAgLmlkUHJvZHVjdAkJPSAweDA4YzMsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZFTkRPUl9TUEVDLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCB9LAorCS8qIExvZ2l0ZWNoIFF1aWNrY2FtIFBybyA1MDAwICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDZkLAorCSAgLmlkUHJvZHVjdAkJPSAweDA4YzUsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZFTkRPUl9TUEVDLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCB9LAorCS8qIExvZ2l0ZWNoIFF1aWNrY2FtIE9FTSBEZWxsIE5vdGVib29rICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDZkLAorCSAgLmlkUHJvZHVjdAkJPSAweDA4YzYsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZFTkRPUl9TUEVDLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCB9LAorCS8qIExvZ2l0ZWNoIFF1aWNrY2FtIE9FTSBDaXNjbyBWVCBDYW1lcmEgSUkgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0NmQsCisJICAuaWRQcm9kdWN0CQk9IDB4MDhjNywKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVkVORE9SX1NQRUMsCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwIH0sCisJLyogQXBwbGUgQnVpbHQtSW4gaVNpZ2h0ICovCisJeyAubWF0Y2hfZmxhZ3MgICAgICAgICAgPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA1YWMsCisJICAuaWRQcm9kdWN0CQk9IDB4ODUwMSwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MgICAgICA9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MgICA9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sICAgPSAwLAorCSAgLmRyaXZlcl9pbmZvIAkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYCisJCQkJfCBVVkNfUVVJUktfQlVJTFRJTl9JU0lHSFQgfSwKKwkvKiBHZW5lc3lzIExvZ2ljIFVTQiAyLjAgUEMgQ2FtZXJhICovCisJeyAubWF0Y2hfZmxhZ3MgICAgICAgICAgPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvciAgICAgICAgICAgICA9IDB4MDVlMywKKwkgIC5pZFByb2R1Y3QgICAgICAgICAgICA9IDB4MDUwNSwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MgICAgICA9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MgICA9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sICAgPSAwLAorCSAgLmRyaXZlcl9pbmZvICAgICAgICAgID0gVVZDX1FVSVJLX1NUUkVBTV9OT19GSUQgfSwKKwkvKiBTaWxpY29uIE1vdGlvbiBTTTM3MSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDkwYywKKwkgIC5pZFByb2R1Y3QJCT0gMHhiMzcxLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIE1UNjIyNyAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MGU4ZCwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwMDA0LAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIFN5bnRlayAoSFAgU3BhcnRhbikgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDE3NGYsCisJICAuaWRQcm9kdWN0CQk9IDB4NTIxMiwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19TVFJFQU1fTk9fRklEIH0sCisJLyogU3ludGVrIChBc3VzIFUzUykgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDE3NGYsCisJICAuaWRQcm9kdWN0CQk9IDB4OGEzMywKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19TVFJFQU1fTk9fRklEIH0sCisJLyogRWNhbW0gUGljbyBpTWFnZSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MThjZCwKKwkgIC5pZFByb2R1Y3QJCT0gMHhjYWZlLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX0VYVFJBRklFTERTIH0sCisJLyogQm9kZWxpbiBQcm9TY29wZUhSICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWX0hJCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MTlhYiwKKwkgIC5pZFByb2R1Y3QJCT0gMHgxMDAwLAorCSAgLmJjZERldmljZV9oaQkJPSAweDAxMjYsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfU1RBVFVTX0lOVEVSVkFMIH0sCisJLyogU2lHbWEgTWljcm8gVVNCIFdlYiBDYW1lcmEgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDFjNGYsCisJICAuaWRQcm9kdWN0CQk9IDB4MzAwMCwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVgKKwkJCQl8IFVWQ19RVUlSS19JR05PUkVfU0VMRUNUT1JfVU5JVH0sCisJLyogQWNlciBPRU0gV2ViY2FtIC0gVW5rbm93biB2ZW5kb3IgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDU5ODYsCisJICAuaWRQcm9kdWN0CQk9IDB4MDEwMCwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBQYWNrYXJkIEJlbGwgT0VNIFdlYmNhbSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4NTk4NiwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwMTAxLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIEFjZXIgQ3J5c3RhbCBFeWUgd2ViY2FtICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHg1OTg2LAorCSAgLmlkUHJvZHVjdAkJPSAweDAxMDIsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogQWNlciBPcmJpQ2FtIC0gVW5rbm93biB2ZW5kb3IgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDU5ODYsCisJICAuaWRQcm9kdWN0CQk9IDB4MDIwMCwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBHZW5lcmljIFVTQiBWaWRlbyBDbGFzcyAqLworCXsgVVNCX0lOVEVSRkFDRV9JTkZPKFVTQl9DTEFTU19WSURFTywgMSwgMCkgfSwKKwl7fQorfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHV2Y19pZHMpOworCitzdHJ1Y3QgdXZjX2RyaXZlciB1dmNfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lCQk9ICJ1dmN2aWRlbyIsCisJCS5wcm9iZQkJPSB1dmNfcHJvYmUsCisJCS5kaXNjb25uZWN0CT0gdXZjX2Rpc2Nvbm5lY3QsCisJCS5zdXNwZW5kCT0gdXZjX3N1c3BlbmQsCisJCS5yZXN1bWUJCT0gdXZjX3Jlc3VtZSwKKwkJLmlkX3RhYmxlCT0gdXZjX2lkcywKKwkJLnN1cHBvcnRzX2F1dG9zdXNwZW5kID0gMSwKKwl9LAorfTsKKworc3RhdGljIGludCBfX2luaXQgdXZjX2luaXQodm9pZCkKK3sKKwlpbnQgcmVzdWx0OworCisJSU5JVF9MSVNUX0hFQUQoJnV2Y19kcml2ZXIuZGV2aWNlcyk7CisJSU5JVF9MSVNUX0hFQUQoJnV2Y19kcml2ZXIuY29udHJvbHMpOworCW11dGV4X2luaXQoJnV2Y19kcml2ZXIub3Blbl9tdXRleCk7CisJbXV0ZXhfaW5pdCgmdXZjX2RyaXZlci5jdHJsX211dGV4KTsKKworCXV2Y19jdHJsX2luaXQoKTsKKworCXJlc3VsdCA9IHVzYl9yZWdpc3RlcigmdXZjX2RyaXZlci5kcml2ZXIpOworCWlmIChyZXN1bHQgPT0gMCkKKwkJcHJpbnRrKEtFUk5fSU5GTyBEUklWRVJfREVTQyAiICgiIERSSVZFUl9WRVJTSU9OICIpXG4iKTsKKwlyZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgdXZjX2NsZWFudXAodm9pZCkKK3sKKwl1c2JfZGVyZWdpc3RlcigmdXZjX2RyaXZlci5kcml2ZXIpOworfQorCittb2R1bGVfaW5pdCh1dmNfaW5pdCk7Cittb2R1bGVfZXhpdCh1dmNfY2xlYW51cCk7CisKK21vZHVsZV9wYXJhbV9uYW1lZChxdWlya3MsIHV2Y19xdWlya3NfcGFyYW0sIHVpbnQsIFNfSVJVR098U19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKHF1aXJrcywgIkZvcmNlZCBkZXZpY2UgcXVpcmtzIik7Cittb2R1bGVfcGFyYW1fbmFtZWQodHJhY2UsIHV2Y190cmFjZV9wYXJhbSwgdWludCwgU19JUlVHT3xTX0lXVVNSKTsKK01PRFVMRV9QQVJNX0RFU0ModHJhY2UsICJUcmFjZSBsZXZlbCBiaXRtYXNrIik7CisKK01PRFVMRV9BVVRIT1IoRFJJVkVSX0FVVEhPUik7CitNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX1ZFUlNJT04oRFJJVkVSX1ZFUlNJT04pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2lzaWdodC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2lzaWdodC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3YmRlZmQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfaXNpZ2h0LmMKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiAgICAgIHV2Y19pc2lnaHQuYyAgLS0gIFVTQiBWaWRlbyBDbGFzcyBkcml2ZXIgLSBpU2lnaHQgc3VwcG9ydAorICoKKyAqCUNvcHlyaWdodCAoQykgMjAwNi0yMDA3CisgKgkJSXZhbiBOLiBabGF0ZXYgPGNvbnRhY3RAaS1uei5uZXQ+CisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKworI2luY2x1ZGUgInV2Y3ZpZGVvLmgiCisKKy8qIEJ1aWx0LWluIGlTaWdodCB3ZWJjYW1zIGltcGxlbWVudHMgbW9zdCBvZiBVVkMgMS4wIGV4Y2VwdCBhCisgKiBkaWZmZXJlbnQgcGFja2V0IGZvcm1hdC4gSW5zdGVhZCBvZiBzZW5kaW5nIGEgaGVhZGVyIGF0IHRoZQorICogYmVnaW5uaW5nIG9mIGVhY2ggaXNvY2hyb25vdXMgdHJhbnNmZXIgcGF5bG9hZCwgdGhlIHdlYmNhbSBzZW5kcyBhCisgKiBzaW5nbGUgaGVhZGVyIHBlciBpbWFnZSAob24gaXRzIG93biBpbiBhIHBhY2tldCksIGZvbGxvd2VkIGJ5CisgKiBwYWNrZXRzIGNvbnRhaW5pbmcgZGF0YSBvbmx5LgorICoKKyAqIE9mZnNldCAgIFNpemUgKGJ5dGVzKQlEZXNjcmlwdGlvbgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAweDAwIAkxICAgCUhlYWRlciBsZW5ndGgKKyAqIDB4MDEgCTEgICAJRmxhZ3MgKFVWQy1jb21wbGlhbnQpCisgKiAweDAyIAk0ICAgCUFsd2F5cyBlcXVhbCB0byAnMTEyMjMzNDQnCisgKiAweDA2IAk4ICAgCUFsd2F5cyBlcXVhbCB0byAnZGVhZGJlZWZkZWFkZmFjZScKKyAqIDB4MGUgCTE2ICAJVW5rbm93bgorICoKKyAqIFRoZSBoZWFkZXIgY2FuIGJlIHByZWZpeGVkIGJ5IGFuIG9wdGlvbmFsLCB1bmtub3duLXB1cnBvc2UgYnl0ZS4KKyAqLworCitzdGF0aWMgaW50IGlzaWdodF9kZWNvZGUoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsIHN0cnVjdCB1dmNfYnVmZmVyICpidWYsCisJCWNvbnN0IF9fdTggKmRhdGEsIHVuc2lnbmVkIGludCBsZW4pCit7CisJc3RhdGljIGNvbnN0IF9fdTggaGRyW10gPSB7CisJCTB4MTEsIDB4MjIsIDB4MzMsIDB4NDQsCisJCTB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsCisJCTB4ZGUsIDB4YWQsIDB4ZmEsIDB4Y2UKKwl9OworCisJdW5zaWduZWQgaW50IG1heGxlbiwgbmJ5dGVzOworCV9fdTggKm1lbTsKKwlpbnQgaXNfaGVhZGVyID0gMDsKKworCWlmIChidWYgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoKGxlbiA+PSAxNCAmJiBtZW1jbXAoJmRhdGFbMl0sIGhkciwgMTIpID09IDApIHx8CisJICAgIChsZW4gPj0gMTUgJiYgbWVtY21wKCZkYXRhWzNdLCBoZHIsIDEyKSA9PSAwKSkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiaVNpZ2h0IGhlYWRlciBmb3VuZFxuIik7CisJCWlzX2hlYWRlciA9IDE7CisJfQorCisJLyogU3luY2hyb25pemUgdG8gdGhlIGlucHV0IHN0cmVhbSBieSB3YWl0aW5nIGZvciBhIGhlYWRlciBwYWNrZXQuICovCisJaWYgKGJ1Zi0+c3RhdGUgIT0gVVZDX0JVRl9TVEFURV9BQ1RJVkUpIHsKKwkJaWYgKCFpc19oZWFkZXIpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJEcm9wcGluZyBwYWNrZXQgKG91dCBvZiAiCisJCQkJICAic3luYykuXG4iKTsKKwkJCXJldHVybiAwOworCQl9CisKKwkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfQUNUSVZFOworCX0KKworCS8qIE1hcmsgdGhlIGJ1ZmZlciBhcyBkb25lIGlmIHdlJ3JlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBuZXcgZnJhbWUuCisJICoKKwkgKiBFbXB0eSBidWZmZXJzIChieXRlc3VzZWQgPT0gMCkgZG9uJ3QgdHJpZ2dlciBlbmQgb2YgZnJhbWUgZGV0ZWN0aW9uCisJICogYXMgaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHJldHVybiBhbiBlbXB0eSBidWZmZXIuCisJICovCisJaWYgKGlzX2hlYWRlciAmJiBidWYtPmJ1Zi5ieXRlc3VzZWQgIT0gMCkgeworCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9ET05FOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisKKwkvKiBDb3B5IHRoZSB2aWRlbyBkYXRhIHRvIHRoZSBidWZmZXIuIFNraXAgaGVhZGVyIHBhY2tldHMsIGFzIHRoZXkKKwkgKiBjb250YWluIG5vIGRhdGEuCisJICovCisJaWYgKCFpc19oZWFkZXIpIHsKKwkJbWF4bGVuID0gYnVmLT5idWYubGVuZ3RoIC0gYnVmLT5idWYuYnl0ZXN1c2VkOworCQltZW0gPSBxdWV1ZS0+bWVtICsgYnVmLT5idWYubS5vZmZzZXQgKyBidWYtPmJ1Zi5ieXRlc3VzZWQ7CisJCW5ieXRlcyA9IG1pbihsZW4sIG1heGxlbik7CisJCW1lbWNweShtZW0sIGRhdGEsIG5ieXRlcyk7CisJCWJ1Zi0+YnVmLmJ5dGVzdXNlZCArPSBuYnl0ZXM7CisKKwkJaWYgKGxlbiA+IG1heGxlbiB8fCBidWYtPmJ1Zi5ieXRlc3VzZWQgPT0gYnVmLT5idWYubGVuZ3RoKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiRnJhbWUgY29tcGxldGUgIgorCQkJCSAgIihvdmVyZmxvdykuXG4iKTsKKwkJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX0RPTkU7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCB1dmNfdmlkZW9fZGVjb2RlX2lzaWdodChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZikKK3sKKwlpbnQgcmV0LCBpOworCisJZm9yIChpID0gMDsgaSA8IHVyYi0+bnVtYmVyX29mX3BhY2tldHM7ICsraSkgeworCQlpZiAodXJiLT5pc29fZnJhbWVfZGVzY1tpXS5zdGF0dXMgPCAwKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiVVNCIGlzb2Nocm9ub3VzIGZyYW1lICIKKwkJCQkgICJsb3N0ICglZCkuXG4iLAorCQkJCSAgdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5zdGF0dXMpOworCQl9CisKKwkJLyogRGVjb2RlIHRoZSBwYXlsb2FkIHBhY2tldC4KKwkJICogdXZjX3ZpZGVvX2RlY29kZSBpcyBlbnRlcmVkIHR3aWNlIHdoZW4gYSBmcmFtZSB0cmFuc2l0aW9uCisJCSAqIGhhcyBiZWVuIGRldGVjdGVkIGJlY2F1c2UgdGhlIGVuZCBvZiBmcmFtZSBjYW4gb25seSBiZQorCQkgKiByZWxpYWJseSBkZXRlY3RlZCB3aGVuIHRoZSBmaXJzdCBwYWNrZXQgb2YgdGhlIG5ldyBmcmFtZQorCQkgKiBpcyBwcm9jZXNzZWQuIFRoZSBmaXJzdCBwYXNzIGRldGVjdHMgdGhlIHRyYW5zaXRpb24gYW5kCisJCSAqIGNsb3NlcyB0aGUgcHJldmlvdXMgZnJhbWUncyBidWZmZXIsIHRoZSBzZWNvbmQgcGFzcworCQkgKiBwcm9jZXNzZXMgdGhlIGRhdGEgb2YgdGhlIGZpcnN0IHBheWxvYWQgb2YgdGhlIG5ldyBmcmFtZS4KKwkJICovCisJCWRvIHsKKwkJCXJldCA9IGlzaWdodF9kZWNvZGUoJnZpZGVvLT5xdWV1ZSwgYnVmLAorCQkJCQl1cmItPnRyYW5zZmVyX2J1ZmZlciArCisJCQkJCXVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0ub2Zmc2V0LAorCQkJCQl1cmItPmlzb19mcmFtZV9kZXNjW2ldLmFjdHVhbF9sZW5ndGgpOworCisJCQlpZiAoYnVmID09IE5VTEwpCisJCQkJYnJlYWs7CisKKwkJCWlmIChidWYtPnN0YXRlID09IFVWQ19CVUZfU1RBVEVfRE9ORSB8fAorCQkJICAgIGJ1Zi0+c3RhdGUgPT0gVVZDX0JVRl9TVEFURV9FUlJPUikKKwkJCQlidWYgPSB1dmNfcXVldWVfbmV4dF9idWZmZXIoJnZpZGVvLT5xdWV1ZSwgYnVmKTsKKwkJfSB3aGlsZSAocmV0ID09IC1FQUdBSU4pOworCX0KK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19xdWV1ZS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3F1ZXVlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDkyM2YwZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19xdWV1ZS5jCkBAIC0wLDAgKzEsNDc3IEBACisvKgorICogICAgICB1dmNfcXVldWUuYyAgLS0gIFVTQiBWaWRlbyBDbGFzcyBkcml2ZXIgLSBCdWZmZXJzIG1hbmFnZW1lbnQKKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwNS0yMDA4CisgKiAgICAgICAgICBMYXVyZW50IFBpbmNoYXJ0IChsYXVyZW50LnBpbmNoYXJ0QHNreW5ldC5iZSkKKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZpZGVvZGV2Mi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKyNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorCisjaW5jbHVkZSAidXZjdmlkZW8uaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBWaWRlbyBidWZmZXJzIHF1ZXVlIG1hbmFnZW1lbnQuCisgKgorICogVmlkZW8gcXVldWVzIGlzIGluaXRpYWxpemVkIGJ5IHV2Y19xdWV1ZV9pbml0KCkuIFRoZSBmdW5jdGlvbiBwZXJmb3JtcworICogYmFzaWMgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHV2Y192aWRlb19xdWV1ZSBzdHJ1Y3QgYW5kIG5ldmVyIGZhaWxzLgorICoKKyAqIFZpZGVvIGJ1ZmZlciBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIGFyZSBwZXJmb3JtZWQgYnkgdXZjX2FsbG9jX2J1ZmZlcnMgYW5kCisgKiB1dmNfZnJlZV9idWZmZXJzIHJlc3BlY3RpdmVseS4gVGhlIGZvcm1lciBhY3F1aXJlcyB0aGUgdmlkZW8gcXVldWUgbG9jaywKKyAqIHdoaWxlIHRoZSBsYXRlciBtdXN0IGJlIGNhbGxlZCB3aXRoIHRoZSBsb2NrIGhlbGQgKHNvIHRoYXQgYWxsb2NhdGlvbiBjYW4KKyAqIGZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgYnVmZmVycykuIFRyeWluZyB0byBmcmVlIGJ1ZmZlcnMgdGhhdCBhcmUgbWFwcGVkCisgKiB0byB1c2VyIHNwYWNlIHdpbGwgcmV0dXJuIC1FQlVTWS4KKyAqCisgKiBWaWRlbyBidWZmZXJzIGFyZSBtYW5hZ2VkIHVzaW5nIHR3byBxdWV1ZXMuIEhvd2V2ZXIsIHVubGlrZSBtb3N0IFVTQiB2aWRlbworICogZHJpdmVycyB3aGljaCB1c2UgYW4gaW4gcXVldWUgYW5kIGFuIG91dCBxdWV1ZSwgd2UgdXNlIGEgbWFpbiBxdWV1ZSB3aGljaAorICogaG9sZHMgYWxsIHF1ZXVlZCBidWZmZXJzIChib3RoICdlbXB0eScgYW5kICdkb25lJyBidWZmZXJzKSwgYW5kIGFuIGlycQorICogcXVldWUgd2hpY2ggaG9sZHMgZW1wdHkgYnVmZmVycy4gVGhpcyBkZXNpZ24gKGNvcGllZCBmcm9tIHZpZGVvLWJ1ZikKKyAqIG1pbmltaXplcyBsb2NraW5nIGluIGludGVycnVwdCwgYXMgb25seSBvbmUgcXVldWUgaXMgc2hhcmVkIGJldHdlZW4KKyAqIGludGVycnVwdCBhbmQgdXNlciBjb250ZXh0cy4KKyAqCisgKiBVc2UgY2FzZXMKKyAqIC0tLS0tLS0tLQorICoKKyAqIFVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlLCBhbGwgb3BlcmF0aW9ucyB3aGljaCBtb2RpZnkgdGhlIGlycSBidWZmZXJzIHF1ZXVlCisgKiBhcmUgcHJvdGVjdGVkIGJ5IHRoZSBpcnEgc3BpbmxvY2suCisgKgorICogMS4gVGhlIHVzZXIgcXVldWVzIHRoZSBidWZmZXJzLCBzdGFydHMgc3RyZWFtaW5nIGFuZCBkZXF1ZXVlcyBhIGJ1ZmZlci4KKyAqCisgKiAgICBUaGUgYnVmZmVycyBhcmUgYWRkZWQgdG8gdGhlIG1haW4gYW5kIGlycSBxdWV1ZXMuIEJvdGggb3BlcmF0aW9ucyBhcmUKKyAqICAgIHByb3RlY3RlZCBieSB0aGUgcXVldWUgbG9jaywgYW5kIHRoZSBsYXRlcnQgaXMgcHJvdGVjdGVkIGJ5IHRoZSBpcnEKKyAqICAgIHNwaW5sb2NrIGFzIHdlbGwuCisgKgorICogICAgVGhlIGNvbXBsZXRpb24gaGFuZGxlciBmZXRjaGVzIGEgYnVmZmVyIGZyb20gdGhlIGlycSBxdWV1ZSBhbmQgZmlsbHMgaXQKKyAqICAgIHdpdGggdmlkZW8gZGF0YS4gSWYgbm8gYnVmZmVyIGlzIGF2YWlsYWJsZSAoaXJxIHF1ZXVlIGVtcHR5KSwgdGhlIGhhbmRsZXIKKyAqICAgIHJldHVybnMgaW1tZWRpYXRlbHkuCisgKgorICogICAgV2hlbiB0aGUgYnVmZmVyIGlzIGZ1bGwsIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgcmVtb3ZlcyBpdCBmcm9tIHRoZSBpcnEKKyAqICAgIHF1ZXVlLCBtYXJrcyBpdCBhcyByZWFkeSAoVVZDX0JVRl9TVEFURV9ET05FKSBhbmQgd2FrZSBpdHMgd2FpdCBxdWV1ZS4KKyAqICAgIEF0IHRoYXQgcG9pbnQsIGFueSBwcm9jZXNzIHdhaXRpbmcgb24gdGhlIGJ1ZmZlciB3aWxsIGJlIHdva2VuIHVwLiBJZiBhCisgKiAgICBwcm9jZXNzIHRyaWVzIHRvIGRlcXVldWUgYSBidWZmZXIgYWZ0ZXIgaXQgaGFzIGJlZW4gbWFya2VkIHJlYWR5LCB0aGUKKyAqICAgIGRlcXVlaW5nIHdpbGwgc3VjY2VlZCBpbW1lZGlhdGVseS4KKyAqCisgKiAyLiBCdWZmZXJzIGFyZSBxdWV1ZWQsIHVzZXIgaXMgd2FpdGluZyBvbiBhIGJ1ZmZlciBhbmQgdGhlIGRldmljZSBnZXRzCisgKiAgICBkaXNjb25uZWN0ZWQuCisgKgorICogICAgV2hlbiB0aGUgZGV2aWNlIGlzIGRpc2Nvbm5lY3RlZCwgdGhlIGtlcm5lbCBjYWxscyB0aGUgY29tcGxldGlvbiBoYW5kbGVyCisgKiAgICB3aXRoIGFuIGFwcHJvcHJpYXRlIHN0YXR1cyBjb2RlLiBUaGUgaGFuZGxlciBtYXJrcyBhbGwgYnVmZmVycyBpbiB0aGUKKyAqICAgIGlycSBxdWV1ZSBhcyBiZWluZyBlcnJvbmVvdXMgKFVWQ19CVUZfU1RBVEVfRVJST1IpIGFuZCB3YWtlcyB0aGVtIHVwIHNvCisgKiAgICB0aGF0IGFueSBwcm9jZXNzIHdhaXRpbmcgb24gYSBidWZmZXIgZ2V0cyB3b2tlbiB1cC4KKyAqCisgKiAgICBXYWtpbmcgdXAgdXAgdGhlIGZpcnN0IGJ1ZmZlciBvbiB0aGUgaXJxIGxpc3QgaXMgbm90IGVub3VnaCwgYXMgdGhlCisgKiAgICBwcm9jZXNzIHdhaXRpbmcgb24gdGhlIGJ1ZmZlciBtaWdodCByZXN0YXJ0IHRoZSBkZXF1ZXVlIG9wZXJhdGlvbgorICogICAgaW1tZWRpYXRlbHkuCisgKgorICovCisKK3ZvaWQgdXZjX3F1ZXVlX2luaXQoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUpCit7CisJbXV0ZXhfaW5pdCgmcXVldWUtPm11dGV4KTsKKwlzcGluX2xvY2tfaW5pdCgmcXVldWUtPmlycWxvY2spOworCUlOSVRfTElTVF9IRUFEKCZxdWV1ZS0+bWFpbnF1ZXVlKTsKKwlJTklUX0xJU1RfSEVBRCgmcXVldWUtPmlycXF1ZXVlKTsKK30KKworLyoKKyAqIEFsbG9jYXRlIHRoZSB2aWRlbyBidWZmZXJzLgorICoKKyAqIFBhZ2VzIGFyZSByZXNlcnZlZCB0byBtYWtlIHN1cmUgdGhleSB3aWxsIG5vdCBiZSBzd2FwZWQsIGFzIHRoZXkgd2lsbCBiZQorICogZmlsbGVkIGluIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIuCisgKgorICogQnVmZmVycyB3aWxsIGJlIGluZGl2aWR1YWxseSBtYXBwZWQsIHNvIHRoZXkgbXVzdCBhbGwgYmUgcGFnZSBhbGlnbmVkLgorICovCitpbnQgdXZjX2FsbG9jX2J1ZmZlcnMoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsIHVuc2lnbmVkIGludCBuYnVmZmVycywKKwkJdW5zaWduZWQgaW50IGJ1Zmxlbmd0aCkKK3sKKwl1bnNpZ25lZCBpbnQgYnVmc2l6ZSA9IFBBR0VfQUxJR04oYnVmbGVuZ3RoKTsKKwl1bnNpZ25lZCBpbnQgaTsKKwl2b2lkICptZW0gPSBOVUxMOworCWludCByZXQ7CisKKwlpZiAobmJ1ZmZlcnMgPiBVVkNfTUFYX1ZJREVPX0JVRkZFUlMpCisJCW5idWZmZXJzID0gVVZDX01BWF9WSURFT19CVUZGRVJTOworCisJbXV0ZXhfbG9jaygmcXVldWUtPm11dGV4KTsKKworCWlmICgocmV0ID0gdXZjX2ZyZWVfYnVmZmVycyhxdWV1ZSkpIDwgMCkKKwkJZ290byBkb25lOworCisJLyogQmFpbCBvdXQgaWYgbm8gYnVmZmVycyBzaG91bGQgYmUgYWxsb2NhdGVkLiAqLworCWlmIChuYnVmZmVycyA9PSAwKQorCQlnb3RvIGRvbmU7CisKKwkvKiBEZWNyZW1lbnQgdGhlIG51bWJlciBvZiBidWZmZXJzIHVudGlsIGFsbG9jYXRpb24gc3VjY2VlZHMuICovCisJZm9yICg7IG5idWZmZXJzID4gMDsgLS1uYnVmZmVycykgeworCQltZW0gPSB2bWFsbG9jXzMyKG5idWZmZXJzICogYnVmc2l6ZSk7CisJCWlmIChtZW0gIT0gTlVMTCkKKwkJCWJyZWFrOworCX0KKworCWlmIChtZW0gPT0gTlVMTCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGRvbmU7CisJfQorCisJZm9yIChpID0gMDsgaSA8IG5idWZmZXJzOyArK2kpIHsKKwkJbWVtc2V0KCZxdWV1ZS0+YnVmZmVyW2ldLCAwLCBzaXplb2YgcXVldWUtPmJ1ZmZlcltpXSk7CisJCXF1ZXVlLT5idWZmZXJbaV0uYnVmLmluZGV4ID0gaTsKKwkJcXVldWUtPmJ1ZmZlcltpXS5idWYubS5vZmZzZXQgPSBpICogYnVmc2l6ZTsKKwkJcXVldWUtPmJ1ZmZlcltpXS5idWYubGVuZ3RoID0gYnVmbGVuZ3RoOworCQlxdWV1ZS0+YnVmZmVyW2ldLmJ1Zi50eXBlID0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFOworCQlxdWV1ZS0+YnVmZmVyW2ldLmJ1Zi5zZXF1ZW5jZSA9IDA7CisJCXF1ZXVlLT5idWZmZXJbaV0uYnVmLmZpZWxkID0gVjRMMl9GSUVMRF9OT05FOworCQlxdWV1ZS0+YnVmZmVyW2ldLmJ1Zi5tZW1vcnkgPSBWNEwyX01FTU9SWV9NTUFQOworCQlxdWV1ZS0+YnVmZmVyW2ldLmJ1Zi5mbGFncyA9IDA7CisJCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnF1ZXVlLT5idWZmZXJbaV0ud2FpdCk7CisJfQorCisJcXVldWUtPm1lbSA9IG1lbTsKKwlxdWV1ZS0+Y291bnQgPSBuYnVmZmVyczsKKwlxdWV1ZS0+YnVmX3NpemUgPSBidWZzaXplOworCXJldCA9IG5idWZmZXJzOworCitkb25lOgorCW11dGV4X3VubG9jaygmcXVldWUtPm11dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogRnJlZSB0aGUgdmlkZW8gYnVmZmVycy4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdpdGggdGhlIHF1ZXVlIGxvY2sgaGVsZC4KKyAqLworaW50IHV2Y19mcmVlX2J1ZmZlcnMoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUpCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgcXVldWUtPmNvdW50OyArK2kpIHsKKwkJaWYgKHF1ZXVlLT5idWZmZXJbaV0udm1hX3VzZV9jb3VudCAhPSAwKQorCQkJcmV0dXJuIC1FQlVTWTsKKwl9CisKKwlpZiAocXVldWUtPmNvdW50KSB7CisJCXZmcmVlKHF1ZXVlLT5tZW0pOworCQlxdWV1ZS0+Y291bnQgPSAwOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX3V2Y19xdWVyeV9idWZmZXIoc3RydWN0IHV2Y19idWZmZXIgKmJ1ZiwKKwkJc3RydWN0IHY0bDJfYnVmZmVyICp2NGwyX2J1ZikKK3sKKwltZW1jcHkodjRsMl9idWYsICZidWYtPmJ1Ziwgc2l6ZW9mICp2NGwyX2J1Zik7CisKKwlpZiAoYnVmLT52bWFfdXNlX2NvdW50KQorCQl2NGwyX2J1Zi0+ZmxhZ3MgfD0gVjRMMl9CVUZfRkxBR19NQVBQRUQ7CisKKwlzd2l0Y2ggKGJ1Zi0+c3RhdGUpIHsKKwljYXNlIFVWQ19CVUZfU1RBVEVfRVJST1I6CisJY2FzZSBVVkNfQlVGX1NUQVRFX0RPTkU6CisJCXY0bDJfYnVmLT5mbGFncyB8PSBWNEwyX0JVRl9GTEFHX0RPTkU7CisJCWJyZWFrOworCWNhc2UgVVZDX0JVRl9TVEFURV9RVUVVRUQ6CisJY2FzZSBVVkNfQlVGX1NUQVRFX0FDVElWRToKKwkJdjRsMl9idWYtPmZsYWdzIHw9IFY0TDJfQlVGX0ZMQUdfUVVFVUVEOworCQlicmVhazsKKwljYXNlIFVWQ19CVUZfU1RBVEVfSURMRToKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9Cit9CisKK2ludCB1dmNfcXVlcnlfYnVmZmVyKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCQlzdHJ1Y3QgdjRsMl9idWZmZXIgKnY0bDJfYnVmKQoreworCWludCByZXQgPSAwOworCisJbXV0ZXhfbG9jaygmcXVldWUtPm11dGV4KTsKKwlpZiAodjRsMl9idWYtPmluZGV4ID49IHF1ZXVlLT5jb3VudCkgeworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGRvbmU7CisJfQorCisJX191dmNfcXVlcnlfYnVmZmVyKCZxdWV1ZS0+YnVmZmVyW3Y0bDJfYnVmLT5pbmRleF0sIHY0bDJfYnVmKTsKKworZG9uZToKKyAgICAgICBtdXRleF91bmxvY2soJnF1ZXVlLT5tdXRleCk7CisgICAgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFF1ZXVlIGEgdmlkZW8gYnVmZmVyLiBBdHRlbXB0aW5nIHRvIHF1ZXVlIGEgYnVmZmVyIHRoYXQgaGFzIGFscmVhZHkgYmVlbgorICogcXVldWVkIHdpbGwgcmV0dXJuIC1FSU5WQUwuCisgKi8KK2ludCB1dmNfcXVldWVfYnVmZmVyKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCXN0cnVjdCB2NGwyX2J1ZmZlciAqdjRsMl9idWYpCit7CisJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQgPSAwOworCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQVBUVVJFLCAiUXVldWluZyBidWZmZXIgJXUuXG4iLCB2NGwyX2J1Zi0+aW5kZXgpOworCisJaWYgKHY0bDJfYnVmLT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSB8fAorCSAgICB2NGwyX2J1Zi0+bWVtb3J5ICE9IFY0TDJfTUVNT1JZX01NQVApIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQVBUVVJFLCAiW0VdIEludmFsaWQgYnVmZmVyIHR5cGUgKCV1KSAiCisJCQkiYW5kL29yIG1lbW9yeSAoJXUpLlxuIiwgdjRsMl9idWYtPnR5cGUsCisJCQl2NGwyX2J1Zi0+bWVtb3J5KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJbXV0ZXhfbG9jaygmcXVldWUtPm11dGV4KTsKKwlpZiAodjRsMl9idWYtPmluZGV4ID49IHF1ZXVlLT5jb3VudCkgIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQVBUVVJFLCAiW0VdIE91dCBvZiByYW5nZSBpbmRleC5cbiIpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGRvbmU7CisJfQorCisJYnVmID0gJnF1ZXVlLT5idWZmZXJbdjRsMl9idWYtPmluZGV4XTsKKwlpZiAoYnVmLT5zdGF0ZSAhPSBVVkNfQlVGX1NUQVRFX0lETEUpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQVBUVVJFLCAiW0VdIEludmFsaWQgYnVmZmVyIHN0YXRlICIKKwkJCSIoJXUpLlxuIiwgYnVmLT5zdGF0ZSk7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZG9uZTsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcXVldWUtPmlycWxvY2ssIGZsYWdzKTsKKwlpZiAocXVldWUtPmZsYWdzICYgVVZDX1FVRVVFX0RJU0NPTk5FQ1RFRCkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWV1ZS0+aXJxbG9jaywgZmxhZ3MpOworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIGRvbmU7CisJfQorCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX1FVRVVFRDsKKwlidWYtPmJ1Zi5ieXRlc3VzZWQgPSAwOworCWxpc3RfYWRkX3RhaWwoJmJ1Zi0+c3RyZWFtLCAmcXVldWUtPm1haW5xdWV1ZSk7CisJbGlzdF9hZGRfdGFpbCgmYnVmLT5xdWV1ZSwgJnF1ZXVlLT5pcnFxdWV1ZSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXVldWUtPmlycWxvY2ssIGZsYWdzKTsKKworZG9uZToKKwltdXRleF91bmxvY2soJnF1ZXVlLT5tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB1dmNfcXVldWVfd2FpdG9uKHN0cnVjdCB1dmNfYnVmZmVyICpidWYsIGludCBub25ibG9ja2luZykKK3sKKwlpZiAobm9uYmxvY2tpbmcpIHsKKwkJcmV0dXJuIChidWYtPnN0YXRlICE9IFVWQ19CVUZfU1RBVEVfUVVFVUVEICYmCisJCQlidWYtPnN0YXRlICE9IFVWQ19CVUZfU1RBVEVfQUNUSVZFKQorCQkJPyAwIDogLUVBR0FJTjsKKwl9CisKKwlyZXR1cm4gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGJ1Zi0+d2FpdCwKKwkJYnVmLT5zdGF0ZSAhPSBVVkNfQlVGX1NUQVRFX1FVRVVFRCAmJgorCQlidWYtPnN0YXRlICE9IFVWQ19CVUZfU1RBVEVfQUNUSVZFKTsKK30KKworLyoKKyAqIERlcXVldWUgYSB2aWRlbyBidWZmZXIuIElmIG5vbmJsb2NraW5nIGlzIGZhbHNlLCBibG9jayB1bnRpbCBhIGJ1ZmZlciBpcworICogYXZhaWxhYmxlLgorICovCitpbnQgdXZjX2RlcXVldWVfYnVmZmVyKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCQlzdHJ1Y3QgdjRsMl9idWZmZXIgKnY0bDJfYnVmLCBpbnQgbm9uYmxvY2tpbmcpCit7CisJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZjsKKwlpbnQgcmV0ID0gMDsKKworCWlmICh2NGwyX2J1Zi0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUgfHwKKwkgICAgdjRsMl9idWYtPm1lbW9yeSAhPSBWNEwyX01FTU9SWV9NTUFQKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FQVFVSRSwgIltFXSBJbnZhbGlkIGJ1ZmZlciB0eXBlICgldSkgIgorCQkJImFuZC9vciBtZW1vcnkgKCV1KS5cbiIsIHY0bDJfYnVmLT50eXBlLAorCQkJdjRsMl9idWYtPm1lbW9yeSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCW11dGV4X2xvY2soJnF1ZXVlLT5tdXRleCk7CisJaWYgKGxpc3RfZW1wdHkoJnF1ZXVlLT5tYWlucXVldWUpKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FQVFVSRSwgIltFXSBFbXB0eSBidWZmZXIgcXVldWUuXG4iKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBkb25lOworCX0KKworCWJ1ZiA9IGxpc3RfZmlyc3RfZW50cnkoJnF1ZXVlLT5tYWlucXVldWUsIHN0cnVjdCB1dmNfYnVmZmVyLCBzdHJlYW0pOworCWlmICgocmV0ID0gdXZjX3F1ZXVlX3dhaXRvbihidWYsIG5vbmJsb2NraW5nKSkgPCAwKQorCQlnb3RvIGRvbmU7CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBUFRVUkUsICJEZXF1ZXVpbmcgYnVmZmVyICV1ICgldSwgJXUgYnl0ZXMpLlxuIiwKKwkJYnVmLT5idWYuaW5kZXgsIGJ1Zi0+c3RhdGUsIGJ1Zi0+YnVmLmJ5dGVzdXNlZCk7CisKKwlzd2l0Y2ggKGJ1Zi0+c3RhdGUpIHsKKwljYXNlIFVWQ19CVUZfU1RBVEVfRVJST1I6CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FQVFVSRSwgIltXXSBDb3JydXB0ZWQgZGF0YSAiCisJCQkiKHRyYW5zbWlzc2lvbiBlcnJvcikuXG4iKTsKKwkJcmV0ID0gLUVJTzsKKwljYXNlIFVWQ19CVUZfU1RBVEVfRE9ORToKKwkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfSURMRTsKKwkJYnJlYWs7CisKKwljYXNlIFVWQ19CVUZfU1RBVEVfSURMRToKKwljYXNlIFVWQ19CVUZfU1RBVEVfUVVFVUVEOgorCWNhc2UgVVZDX0JVRl9TVEFURV9BQ1RJVkU6CisJZGVmYXVsdDoKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQVBUVVJFLCAiW0VdIEludmFsaWQgYnVmZmVyIHN0YXRlICV1ICIKKwkJCSIoZHJpdmVyIGJ1Zz8pLlxuIiwgYnVmLT5zdGF0ZSk7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZG9uZTsKKwl9CisKKwlsaXN0X2RlbCgmYnVmLT5zdHJlYW0pOworCV9fdXZjX3F1ZXJ5X2J1ZmZlcihidWYsIHY0bDJfYnVmKTsKKworZG9uZToKKwltdXRleF91bmxvY2soJnF1ZXVlLT5tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFBvbGwgdGhlIHZpZGVvIHF1ZXVlLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB2aWRlbyBxdWV1ZSBwb2xsaW5nIGFuZCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5CisgKiB0aGUgZGV2aWNlIHBvbGwgaGFuZGxlci4KKyAqLwordW5zaWduZWQgaW50IHV2Y19xdWV1ZV9wb2xsKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJcG9sbF90YWJsZSAqd2FpdCkKK3sKKwlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmOworCXVuc2lnbmVkIGludCBtYXNrID0gMDsKKworCW11dGV4X2xvY2soJnF1ZXVlLT5tdXRleCk7CisJaWYgKGxpc3RfZW1wdHkoJnF1ZXVlLT5tYWlucXVldWUpKSB7CisJCW1hc2sgfD0gUE9MTEVSUjsKKwkJZ290byBkb25lOworCX0KKwlidWYgPSBsaXN0X2ZpcnN0X2VudHJ5KCZxdWV1ZS0+bWFpbnF1ZXVlLCBzdHJ1Y3QgdXZjX2J1ZmZlciwgc3RyZWFtKTsKKworCXBvbGxfd2FpdChmaWxlLCAmYnVmLT53YWl0LCB3YWl0KTsKKwlpZiAoYnVmLT5zdGF0ZSA9PSBVVkNfQlVGX1NUQVRFX0RPTkUgfHwKKwkgICAgYnVmLT5zdGF0ZSA9PSBVVkNfQlVGX1NUQVRFX0VSUk9SKQorCQltYXNrIHw9IFBPTExJTiB8IFBPTExSRE5PUk07CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCXJldHVybiBtYXNrOworfQorCisvKgorICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIHZpZGVvIGJ1ZmZlcnMgcXVldWUuCisgKgorICogVGhlIHF1ZXVlIG11c3QgYmUgZW5hYmxlZCBiZWZvcmUgc3RhcnRpbmcgdmlkZW8gYWNxdWlzaXRpb24gYW5kIG11c3QgYmUKKyAqIGRpc2FibGVkIGFmdGVyIHN0b3BwaW5nIGl0LiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgdmlkZW8gYnVmZmVycyBxdWV1ZQorICogc3RhdGUgY2FuIGJlIHByb3Blcmx5IGluaXRpYWxpemVkIGJlZm9yZSBidWZmZXJzIGFyZSBhY2Nlc3NlZCBmcm9tIHRoZQorICogaW50ZXJydXB0IGhhbmRsZXIuCisgKgorICogRW5hYmxpbmcgdGhlIHZpZGVvIHF1ZXVlIGluaXRpYWxpemVzIHBhcmFtZXRlcnMgKHN1Y2ggYXMgc2VxdWVuY2UgbnVtYmVyLAorICogc3luYyBwYXR0ZXJuLCAuLi4pLiBJZiB0aGUgcXVldWUgaXMgYWxyZWFkeSBlbmFibGVkLCByZXR1cm4gLUVCVVNZLgorICoKKyAqIERpc2FibGluZyB0aGUgdmlkZW8gcXVldWUgY2FuY2VscyB0aGUgcXVldWUgYW5kIHJlbW92ZXMgYWxsIGJ1ZmZlcnMgZnJvbQorICogdGhlIG1haW4gcXVldWUuCisgKgorICogVGhpcyBmdW5jdGlvbiBjYW4ndCBiZSBjYWxsZWQgZnJvbSBpbnRlcnJ1cHQgY29udGV4dC4gVXNlCisgKiB1dmNfcXVldWVfY2FuY2VsKCkgaW5zdGVhZC4KKyAqLworaW50IHV2Y19xdWV1ZV9lbmFibGUoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsIGludCBlbmFibGUpCit7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldCA9IDA7CisKKwltdXRleF9sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCWlmIChlbmFibGUpIHsKKwkJaWYgKHV2Y19xdWV1ZV9zdHJlYW1pbmcocXVldWUpKSB7CisJCQlyZXQgPSAtRUJVU1k7CisJCQlnb3RvIGRvbmU7CisJCX0KKwkJcXVldWUtPnNlcXVlbmNlID0gMDsKKwkJcXVldWUtPmZsYWdzIHw9IFVWQ19RVUVVRV9TVFJFQU1JTkc7CisJfSBlbHNlIHsKKwkJdXZjX3F1ZXVlX2NhbmNlbChxdWV1ZSwgMCk7CisJCUlOSVRfTElTVF9IRUFEKCZxdWV1ZS0+bWFpbnF1ZXVlKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgcXVldWUtPmNvdW50OyArK2kpCisJCQlxdWV1ZS0+YnVmZmVyW2ldLnN0YXRlID0gVVZDX0JVRl9TVEFURV9JRExFOworCisJCXF1ZXVlLT5mbGFncyAmPSB+VVZDX1FVRVVFX1NUUkVBTUlORzsKKwl9CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBDYW5jZWwgdGhlIHZpZGVvIGJ1ZmZlcnMgcXVldWUuCisgKgorICogQ2FuY2VsbGluZyB0aGUgcXVldWUgbWFya3MgYWxsIGJ1ZmZlcnMgb24gdGhlIGlycSBxdWV1ZSBhcyBlcnJvbmVvdXMsCisgKiB3YWtlcyB0aGVtIHVwIGFuZCByZW1vdmUgdGhlbSBmcm9tIHRoZSBxdWV1ZS4KKyAqCisgKiBJZiB0aGUgZGlzY29ubmVjdCBwYXJhbWV0ZXIgaXMgc2V0LCBmdXJ0aGVyIGNhbGxzIHRvIHV2Y19xdWV1ZV9idWZmZXIgd2lsbAorICogZmFpbCB3aXRoIC1FTk9ERVYuCisgKgorICogVGhpcyBmdW5jdGlvbiBhY3F1aXJlcyB0aGUgaXJxIHNwaW5sb2NrIGFuZCBjYW4gYmUgY2FsbGVkIGZyb20gaW50ZXJydXB0CisgKiBjb250ZXh0LgorICovCit2b2lkIHV2Y19xdWV1ZV9jYW5jZWwoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsIGludCBkaXNjb25uZWN0KQoreworCXN0cnVjdCB1dmNfYnVmZmVyICpidWY7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZxdWV1ZS0+aXJxbG9jaywgZmxhZ3MpOworCXdoaWxlICghbGlzdF9lbXB0eSgmcXVldWUtPmlycXF1ZXVlKSkgeworCQlidWYgPSBsaXN0X2ZpcnN0X2VudHJ5KCZxdWV1ZS0+aXJxcXVldWUsIHN0cnVjdCB1dmNfYnVmZmVyLAorCQkJCSAgICAgICBxdWV1ZSk7CisJCWxpc3RfZGVsKCZidWYtPnF1ZXVlKTsKKwkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfRVJST1I7CisJCXdha2VfdXAoJmJ1Zi0+d2FpdCk7CisJfQorCS8qIFRoaXMgbXVzdCBiZSBwcm90ZWN0ZWQgYnkgdGhlIGlycWxvY2sgc3BpbmxvY2sgdG8gYXZvaWQgcmFjZQorCSAqIGNvbmRpdGlvbnMgYmV0d2VlbiB1dmNfcXVldWVfYnVmZmVyIGFuZCB0aGUgZGlzY29ubmVjdGlvbiBldmVudCB0aGF0CisJICogY291bGQgcmVzdWx0IGluIGFuIGludGVycnVwdGlibGUgd2FpdCBpbiB1dmNfZGVxdWV1ZV9idWZmZXIuIERvIG5vdAorCSAqIGJsaW5kbHkgcmVwbGFjZSB0aGlzIGxvZ2ljIGJ5IGNoZWNraW5nIGZvciB0aGUgVVZDX0RFVl9ESVNDT05ORUNURUQKKwkgKiBzdGF0ZSBvdXRzaWRlIHRoZSBxdWV1ZSBjb2RlLgorCSAqLworCWlmIChkaXNjb25uZWN0KQorCQlxdWV1ZS0+ZmxhZ3MgfD0gVVZDX1FVRVVFX0RJU0NPTk5FQ1RFRDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWV1ZS0+aXJxbG9jaywgZmxhZ3MpOworfQorCitzdHJ1Y3QgdXZjX2J1ZmZlciAqdXZjX3F1ZXVlX25leHRfYnVmZmVyKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCQlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmKQoreworCXN0cnVjdCB1dmNfYnVmZmVyICpuZXh0YnVmOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlpZiAoKHF1ZXVlLT5mbGFncyAmIFVWQ19RVUVVRV9EUk9QX0lOQ09NUExFVEUpICYmCisJICAgIGJ1Zi0+YnVmLmxlbmd0aCAhPSBidWYtPmJ1Zi5ieXRlc3VzZWQpIHsKKwkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfUVVFVUVEOworCQlidWYtPmJ1Zi5ieXRlc3VzZWQgPSAwOworCQlyZXR1cm4gYnVmOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZxdWV1ZS0+aXJxbG9jaywgZmxhZ3MpOworCWxpc3RfZGVsKCZidWYtPnF1ZXVlKTsKKwlpZiAoIWxpc3RfZW1wdHkoJnF1ZXVlLT5pcnFxdWV1ZSkpCisJCW5leHRidWYgPSBsaXN0X2ZpcnN0X2VudHJ5KCZxdWV1ZS0+aXJxcXVldWUsIHN0cnVjdCB1dmNfYnVmZmVyLAorCQkJCQkgICBxdWV1ZSk7CisJZWxzZQorCQluZXh0YnVmID0gTlVMTDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWV1ZS0+aXJxbG9jaywgZmxhZ3MpOworCisJYnVmLT5idWYuc2VxdWVuY2UgPSBxdWV1ZS0+c2VxdWVuY2UrKzsKKwlkb19nZXR0aW1lb2ZkYXkoJmJ1Zi0+YnVmLnRpbWVzdGFtcCk7CisKKwl3YWtlX3VwKCZidWYtPndhaXQpOworCXJldHVybiBuZXh0YnVmOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3N0YXR1cy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3N0YXR1cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlOTA4NGUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfc3RhdHVzLmMKQEAgLTAsMCArMSwyMDcgQEAKKy8qCisgKiAgICAgIHV2Y19zdGF0dXMuYyAgLS0gIFVTQiBWaWRlbyBDbGFzcyBkcml2ZXIgLSBTdGF0dXMgZW5kcG9pbnQKKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwNy0yMDA4CisgKiAgICAgICAgICBMYXVyZW50IFBpbmNoYXJ0IChsYXVyZW50LnBpbmNoYXJ0QHNreW5ldC5iZSkKKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IvaW5wdXQuaD4KKworI2luY2x1ZGUgInV2Y3ZpZGVvLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBJbnB1dCBkZXZpY2UKKyAqLworc3RhdGljIGludCB1dmNfaW5wdXRfaW5pdChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gZGV2LT51ZGV2OworCXN0cnVjdCBpbnB1dF9kZXYgKmlucHV0OworCWNoYXIgKnBoeXMgPSBOVUxMOworCWludCByZXQ7CisKKwlpbnB1dCA9IGlucHV0X2FsbG9jYXRlX2RldmljZSgpOworCWlmIChpbnB1dCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXBoeXMgPSBrbWFsbG9jKDYgKyBzdHJsZW4odWRldi0+YnVzLT5idXNfbmFtZSkgKyBzdHJsZW4odWRldi0+ZGV2cGF0aCksCisJCQlHRlBfS0VSTkVMKTsKKwlpZiAocGh5cyA9PSBOVUxMKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyb3I7CisJfQorCXNwcmludGYocGh5cywgInVzYi0lcy0lcyIsIHVkZXYtPmJ1cy0+YnVzX25hbWUsIHVkZXYtPmRldnBhdGgpOworCisJaW5wdXQtPm5hbWUgPSBkZXYtPm5hbWU7CisJaW5wdXQtPnBoeXMgPSBwaHlzOworCXVzYl90b19pbnB1dF9pZCh1ZGV2LCAmaW5wdXQtPmlkKTsKKwlpbnB1dC0+ZGV2LnBhcmVudCA9ICZkZXYtPmludGYtPmRldjsKKworCXNldF9iaXQoRVZfS0VZLCBpbnB1dC0+ZXZiaXQpOworCXNldF9iaXQoQlROXzAsIGlucHV0LT5rZXliaXQpOworCisJaWYgKChyZXQgPSBpbnB1dF9yZWdpc3Rlcl9kZXZpY2UoaW5wdXQpKSA8IDApCisJCWdvdG8gZXJyb3I7CisKKwlkZXYtPmlucHV0ID0gaW5wdXQ7CisJcmV0dXJuIDA7CisKK2Vycm9yOgorCWlucHV0X2ZyZWVfZGV2aWNlKGlucHV0KTsKKwlrZnJlZShwaHlzKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCB1dmNfaW5wdXRfY2xlYW51cChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCWlmIChkZXYtPmlucHV0KQorCQlpbnB1dF91bnJlZ2lzdGVyX2RldmljZShkZXYtPmlucHV0KTsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFN0YXR1cyBpbnRlcnJ1cHQgZW5kcG9pbnQKKyAqLworc3RhdGljIHZvaWQgdXZjX2V2ZW50X3N0cmVhbWluZyhzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LCBfX3U4ICpkYXRhLCBpbnQgbGVuKQoreworCWlmIChsZW4gPCAzKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfU1RBVFVTLCAiSW52YWxpZCBzdHJlYW1pbmcgc3RhdHVzIGV2ZW50ICIKKwkJCQkicmVjZWl2ZWQuXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChkYXRhWzJdID09IDApIHsKKwkJaWYgKGxlbiA8IDQpCisJCQlyZXR1cm47CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfU1RBVFVTLCAiQnV0dG9uIChpbnRmICV1KSAlcyBsZW4gJWRcbiIsCisJCQlkYXRhWzFdLCBkYXRhWzNdID8gInByZXNzZWQiIDogInJlbGVhc2VkIiwgbGVuKTsKKwkJaWYgKGRldi0+aW5wdXQpCisJCQlpbnB1dF9yZXBvcnRfa2V5KGRldi0+aW5wdXQsIEJUTl8wLCBkYXRhWzNdKTsKKwl9IGVsc2UgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX1NUQVRVUywgIlN0cmVhbSAldSBlcnJvciBldmVudCAlMDJ4ICUwMnggIgorCQkJImxlbiAlZC5cbiIsIGRhdGFbMV0sIGRhdGFbMl0sIGRhdGFbM10sIGxlbik7CisJfQorfQorCitzdGF0aWMgdm9pZCB1dmNfZXZlbnRfY29udHJvbChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LCBfX3U4ICpkYXRhLCBpbnQgbGVuKQoreworCWNoYXIgKmF0dHJzWzNdID0geyAidmFsdWUiLCAiaW5mbyIsICJmYWlsdXJlIiB9OworCisJaWYgKGxlbiA8IDYgfHwgZGF0YVsyXSAhPSAwIHx8IGRhdGFbNF0gPiAyKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfU1RBVFVTLCAiSW52YWxpZCBjb250cm9sIHN0YXR1cyBldmVudCAiCisJCQkJInJlY2VpdmVkLlxuIik7CisJCXJldHVybjsKKwl9CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX1NUQVRVUywgIkNvbnRyb2wgJXUvJXUgJXMgY2hhbmdlIGxlbiAlZC5cbiIsCisJCWRhdGFbMV0sIGRhdGFbM10sIGF0dHJzW2RhdGFbNF1dLCBsZW4pOworfQorCitzdGF0aWMgdm9pZCB1dmNfc3RhdHVzX2NvbXBsZXRlKHN0cnVjdCB1cmIgKnVyYikKK3sKKwlzdHJ1Y3QgdXZjX2RldmljZSAqZGV2ID0gdXJiLT5jb250ZXh0OworCWludCBsZW4sIHJldDsKKworCXN3aXRjaCAodXJiLT5zdGF0dXMpIHsKKwljYXNlIDA6CisJCWJyZWFrOworCisJY2FzZSAtRU5PRU5UOgkJLyogdXNiX2tpbGxfdXJiKCkgY2FsbGVkLiAqLworCWNhc2UgLUVDT05OUkVTRVQ6CS8qIHVzYl91bmxpbmtfdXJiKCkgY2FsbGVkLiAqLworCWNhc2UgLUVTSFVURE9XTjoJLyogVGhlIGVuZHBvaW50IGlzIGJlaW5nIGRpc2FibGVkLiAqLworCWNhc2UgLUVQUk9UTzoJCS8qIERldmljZSBpcyBkaXNjb25uZWN0ZWQgKHJlcG9ydGVkIGJ5IHNvbWUKKwkJCQkgKiBob3N0IGNvbnRyb2xsZXIpLiAqLworCQlyZXR1cm47CisKKwlkZWZhdWx0OgorCQl1dmNfcHJpbnRrKEtFUk5fV0FSTklORywgIk5vbi16ZXJvIHN0YXR1cyAoJWQpIGluIHN0YXR1cyAiCisJCQkiY29tcGxldGlvbiBoYW5kbGVyLlxuIiwgdXJiLT5zdGF0dXMpOworCQlyZXR1cm47CisJfQorCisJbGVuID0gdXJiLT5hY3R1YWxfbGVuZ3RoOworCWlmIChsZW4gPiAwKSB7CisJCXN3aXRjaCAoZGV2LT5zdGF0dXNbMF0gJiAweDBmKSB7CisJCWNhc2UgVVZDX1NUQVRVU19UWVBFX0NPTlRST0w6CisJCQl1dmNfZXZlbnRfY29udHJvbChkZXYsIGRldi0+c3RhdHVzLCBsZW4pOworCQkJYnJlYWs7CisKKwkJY2FzZSBVVkNfU1RBVFVTX1RZUEVfU1RSRUFNSU5HOgorCQkJdXZjX2V2ZW50X3N0cmVhbWluZyhkZXYsIGRldi0+c3RhdHVzLCBsZW4pOworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCXV2Y19wcmludGsoS0VSTl9JTkZPLCAidW5rbm93biBldmVudCB0eXBlICV1LlxuIiwKKwkJCQlkZXYtPnN0YXR1c1swXSk7CisJCQlicmVhazsKKwkJfQorCX0KKworCS8qIFJlc3VibWl0IHRoZSBVUkIuICovCisJdXJiLT5pbnRlcnZhbCA9IGRldi0+aW50X2VwLT5kZXNjLmJJbnRlcnZhbDsKKwlpZiAoKHJldCA9IHVzYl9zdWJtaXRfdXJiKHVyYiwgR0ZQX0FUT01JQykpIDwgMCkgeworCQl1dmNfcHJpbnRrKEtFUk5fRVJSLCAiRmFpbGVkIHRvIHJlc3VibWl0IHN0YXR1cyBVUkIgKCVkKS5cbiIsCisJCQlyZXQpOworCX0KK30KKworaW50IHV2Y19zdGF0dXNfaW5pdChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqZXAgPSBkZXYtPmludF9lcDsKKwl1bnNpZ25lZCBpbnQgcGlwZTsKKwlpbnQgaW50ZXJ2YWw7CisKKwlpZiAoZXAgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwl1dmNfaW5wdXRfaW5pdChkZXYpOworCisJZGV2LT5pbnRfdXJiID0gdXNiX2FsbG9jX3VyYigwLCBHRlBfS0VSTkVMKTsKKwlpZiAoZGV2LT5pbnRfdXJiID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJcGlwZSA9IHVzYl9yY3ZpbnRwaXBlKGRldi0+dWRldiwgZXAtPmRlc2MuYkVuZHBvaW50QWRkcmVzcyk7CisKKwkvKiBGb3IgaGlnaC1zcGVlZCBpbnRlcnJ1cHQgZW5kcG9pbnRzLCB0aGUgYkludGVydmFsIHZhbHVlIGlzIHVzZWQgYXMKKwkgKiBhbiBleHBvbmVudCBvZiB0d28uIFNvbWUgZGV2ZWxvcGVycyBmb3Jnb3QgYWJvdXQgaXQuCisJICovCisJaW50ZXJ2YWwgPSBlcC0+ZGVzYy5iSW50ZXJ2YWw7CisJaWYgKGludGVydmFsID4gMTYgJiYgZGV2LT51ZGV2LT5zcGVlZCA9PSBVU0JfU1BFRURfSElHSCAmJgorCSAgICAoZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfU1RBVFVTX0lOVEVSVkFMKSkKKwkJaW50ZXJ2YWwgPSBmbHMoaW50ZXJ2YWwpIC0gMTsKKworCXVzYl9maWxsX2ludF91cmIoZGV2LT5pbnRfdXJiLCBkZXYtPnVkZXYsIHBpcGUsCisJCWRldi0+c3RhdHVzLCBzaXplb2YgZGV2LT5zdGF0dXMsIHV2Y19zdGF0dXNfY29tcGxldGUsCisJCWRldiwgaW50ZXJ2YWwpOworCisJcmV0dXJuIHVzYl9zdWJtaXRfdXJiKGRldi0+aW50X3VyYiwgR0ZQX0tFUk5FTCk7Cit9CisKK3ZvaWQgdXZjX3N0YXR1c19jbGVhbnVwKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJdXNiX2tpbGxfdXJiKGRldi0+aW50X3VyYik7CisJdXNiX2ZyZWVfdXJiKGRldi0+aW50X3VyYik7CisJdXZjX2lucHV0X2NsZWFudXAoZGV2KTsKK30KKworaW50IHV2Y19zdGF0dXNfc3VzcGVuZChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCXVzYl9raWxsX3VyYihkZXYtPmludF91cmIpOworCXJldHVybiAwOworfQorCitpbnQgdXZjX3N0YXR1c19yZXN1bWUoc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlpZiAoZGV2LT5pbnRfdXJiID09IE5VTEwpCisJCXJldHVybiAwOworCisJcmV0dXJuIHVzYl9zdWJtaXRfdXJiKGRldi0+aW50X3VyYiwgR0ZQX0tFUk5FTCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfdjRsMi5jIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3Y0bDIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTBhNjY1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3Y0bDIuYwpAQCAtMCwwICsxLDExMDUgQEAKKy8qCisgKiAgICAgIHV2Y192NGwyLmMgIC0tICBVU0IgVmlkZW8gQ2xhc3MgZHJpdmVyIC0gVjRMMiBBUEkKKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwNS0yMDA4CisgKiAgICAgICAgICBMYXVyZW50IFBpbmNoYXJ0IChsYXVyZW50LnBpbmNoYXJ0QHNreW5ldC5iZSkKKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZpZGVvZGV2Mi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisKKyNpbmNsdWRlIDxtZWRpYS92NGwyLWNvbW1vbi5oPgorCisjaW5jbHVkZSAidXZjdmlkZW8uaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBWNEwyIGludGVyZmFjZQorICovCisKKy8qCisgKiBNYXBwaW5nIFY0TDIgY29udHJvbHMgdG8gVVZDIGNvbnRyb2xzIGNhbiBiZSBzdHJhaWdoZm9yd2FyZCBpZiBkb25lIHdlbGwuCisgKiBNb3N0IG9mIHRoZSBVVkMgY29udHJvbHMgZXhpc3QgaW4gVjRMMiwgYW5kIGNhbiBiZSBtYXBwZWQgZGlyZWN0bHkuIFNvbWUKKyAqIG11c3QgYmUgZ3JvdXBlZCAoZm9yIGluc3RhbmNlIHRoZSBSZWQgQmFsYW5jZSwgQmx1ZSBCYWxhbmNlIGFuZCBEbyBXaGl0ZQorICogQmFsYW5jZSBWNEwyIGNvbnRyb2xzIHVzZSB0aGUgV2hpdGUgQmFsYW5jZSBDb21wb25lbnQgVVZDIGNvbnRyb2wpIG9yCisgKiBvdGhlcndpc2UgdHJhbnNsYXRlZC4gVGhlIGFwcHJvYWNoIHdlIHRha2UgaGVyZSBpcyB0byB1c2UgYSB0cmFuc2xhdGlvbgorICogdGFibGUgZm9yIHRoZSBjb250cm9scyB3aGljaCBjYW4gYmUgbWFwcGVkIGRpcmVjdGx5LCBhbmQgaGFuZGxlIHRoZSBvdGhlcnMKKyAqIG1hbnVhbGx5LgorICovCitzdGF0aWMgaW50IHV2Y192NGwyX3F1ZXJ5X21lbnUoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB2NGwyX3F1ZXJ5bWVudSAqcXVlcnlfbWVudSkKK3sKKwlzdHJ1Y3QgdXZjX21lbnVfaW5mbyAqbWVudV9pbmZvOworCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXBwaW5nOworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybDsKKworCWN0cmwgPSB1dmNfZmluZF9jb250cm9sKHZpZGVvLCBxdWVyeV9tZW51LT5pZCwgJm1hcHBpbmcpOworCWlmIChjdHJsID09IE5VTEwgfHwgbWFwcGluZy0+djRsMl90eXBlICE9IFY0TDJfQ1RSTF9UWVBFX01FTlUpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHF1ZXJ5X21lbnUtPmluZGV4ID49IG1hcHBpbmctPm1lbnVfY291bnQpCisJCXJldHVybiAtRUlOVkFMOworCisJbWVudV9pbmZvID0gJm1hcHBpbmctPm1lbnVfaW5mb1txdWVyeV9tZW51LT5pbmRleF07CisJc3RybmNweShxdWVyeV9tZW51LT5uYW1lLCBtZW51X2luZm8tPm5hbWUsIDMyKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEZpbmQgdGhlIGZyYW1lIGludGVydmFsIGNsb3Nlc3QgdG8gdGhlIHJlcXVlc3RlZCBmcmFtZSBpbnRlcnZhbCBmb3IgdGhlCisgKiBnaXZlbiBmcmFtZSBmb3JtYXQgYW5kIHNpemUuIFRoaXMgc2hvdWxkIGJlIGRvbmUgYnkgdGhlIGRldmljZSBhcyBwYXJ0IG9mCisgKiB0aGUgVmlkZW8gUHJvYmUgYW5kIENvbW1pdCBuZWdvdGlhdGlvbiwgYnV0IHNvbWUgaGFyZHdhcmUgZG9uJ3QgaW1wbGVtZW50CisgKiB0aGF0IGZlYXR1cmUuCisgKi8KK3N0YXRpYyBfX3UzMiB1dmNfdHJ5X2ZyYW1lX2ludGVydmFsKHN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lLCBfX3UzMiBpbnRlcnZhbCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWlmIChmcmFtZS0+YkZyYW1lSW50ZXJ2YWxUeXBlKSB7CisJCV9fdTMyIGJlc3QgPSAtMSwgZGlzdDsKKworCQlmb3IgKGkgPSAwOyBpIDwgZnJhbWUtPmJGcmFtZUludGVydmFsVHlwZTsgKytpKSB7CisJCQlkaXN0ID0gaW50ZXJ2YWwgPiBmcmFtZS0+ZHdGcmFtZUludGVydmFsW2ldCisJCQkgICAgID8gaW50ZXJ2YWwgLSBmcmFtZS0+ZHdGcmFtZUludGVydmFsW2ldCisJCQkgICAgIDogZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFtpXSAtIGludGVydmFsOworCisJCQlpZiAoZGlzdCA+IGJlc3QpCisJCQkJYnJlYWs7CisKKwkJCWJlc3QgPSBkaXN0OworCQl9CisKKwkJaW50ZXJ2YWwgPSBmcmFtZS0+ZHdGcmFtZUludGVydmFsW2ktMV07CisJfSBlbHNlIHsKKwkJY29uc3QgX191MzIgbWluID0gZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFswXTsKKwkJY29uc3QgX191MzIgbWF4ID0gZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFsxXTsKKwkJY29uc3QgX191MzIgc3RlcCA9IGZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbMl07CisKKwkJaW50ZXJ2YWwgPSBtaW4gKyAoaW50ZXJ2YWwgLSBtaW4gKyBzdGVwLzIpIC8gc3RlcCAqIHN0ZXA7CisJCWlmIChpbnRlcnZhbCA+IG1heCkKKwkJCWludGVydmFsID0gbWF4OworCX0KKworCXJldHVybiBpbnRlcnZhbDsKK30KKworc3RhdGljIGludCB1dmNfdjRsMl90cnlfZm9ybWF0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdjRsMl9mb3JtYXQgKmZtdCwgc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCAqcHJvYmUsCisJc3RydWN0IHV2Y19mb3JtYXQgKip1dmNfZm9ybWF0LCBzdHJ1Y3QgdXZjX2ZyYW1lICoqdXZjX2ZyYW1lKQoreworCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQgPSBOVUxMOworCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lID0gTlVMTDsKKwlfX3UxNiBydywgcmg7CisJdW5zaWduZWQgaW50IGQsIG1heGQ7CisJdW5zaWduZWQgaW50IGk7CisJX191MzIgaW50ZXJ2YWw7CisJaW50IHJldCA9IDA7CisJX191OCAqZmNjOworCisJaWYgKGZtdC0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUpCisJCXJldHVybiAtRUlOVkFMOworCisJZmNjID0gKF9fdTggKikmZm10LT5mbXQucGl4LnBpeGVsZm9ybWF0OworCXV2Y190cmFjZShVVkNfVFJBQ0VfRk9STUFULCAiVHJ5aW5nIGZvcm1hdCAweCUwOHggKCVjJWMlYyVjKTogJXV4JXUuXG4iLAorCQkJZm10LT5mbXQucGl4LnBpeGVsZm9ybWF0LAorCQkJZmNjWzBdLCBmY2NbMV0sIGZjY1syXSwgZmNjWzNdLAorCQkJZm10LT5mbXQucGl4LndpZHRoLCBmbXQtPmZtdC5waXguaGVpZ2h0KTsKKworCS8qIENoZWNrIGlmIHRoZSBoYXJkd2FyZSBzdXBwb3J0cyB0aGUgcmVxdWVzdGVkIGZvcm1hdC4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgdmlkZW8tPnN0cmVhbWluZy0+bmZvcm1hdHM7ICsraSkgeworCQlmb3JtYXQgPSAmdmlkZW8tPnN0cmVhbWluZy0+Zm9ybWF0W2ldOworCQlpZiAoZm9ybWF0LT5mY2MgPT0gZm10LT5mbXQucGl4LnBpeGVsZm9ybWF0KQorCQkJYnJlYWs7CisJfQorCisJaWYgKGZvcm1hdCA9PSBOVUxMIHx8IGZvcm1hdC0+ZmNjICE9IGZtdC0+Zm10LnBpeC5waXhlbGZvcm1hdCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZPUk1BVCwgIlVuc3VwcG9ydGVkIGZvcm1hdCAweCUwOHguXG4iLAorCQkJCWZtdC0+Zm10LnBpeC5waXhlbGZvcm1hdCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIEZpbmQgdGhlIGNsb3Nlc3QgaW1hZ2Ugc2l6ZS4gVGhlIGRpc3RhbmNlIGJldHdlZW4gaW1hZ2Ugc2l6ZXMgaXMKKwkgKiB0aGUgc2l6ZSBpbiBwaXhlbHMgb2YgdGhlIG5vbi1vdmVybGFwcGluZyByZWdpb25zIGJldHdlZW4gdGhlCisJICogcmVxdWVzdGVkIHNpemUgYW5kIHRoZSBmcmFtZS1zcGVjaWZpZWQgc2l6ZS4KKwkgKi8KKwlydyA9IGZtdC0+Zm10LnBpeC53aWR0aDsKKwlyaCA9IGZtdC0+Zm10LnBpeC5oZWlnaHQ7CisJbWF4ZCA9ICh1bnNpZ25lZCBpbnQpLTE7CisKKwlmb3IgKGkgPSAwOyBpIDwgZm9ybWF0LT5uZnJhbWVzOyArK2kpIHsKKwkJX191MTYgdyA9IGZvcm1hdC0+ZnJhbWVbaV0ud1dpZHRoOworCQlfX3UxNiBoID0gZm9ybWF0LT5mcmFtZVtpXS53SGVpZ2h0OworCisJCWQgPSBtaW4odywgcncpICogbWluKGgsIHJoKTsKKwkJZCA9IHcqaCArIHJ3KnJoIC0gMipkOworCQlpZiAoZCA8IG1heGQpIHsKKwkJCW1heGQgPSBkOworCQkJZnJhbWUgPSAmZm9ybWF0LT5mcmFtZVtpXTsKKwkJfQorCisJCWlmIChtYXhkID09IDApCisJCQlicmVhazsKKwl9CisKKwlpZiAoZnJhbWUgPT0gTlVMTCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZPUk1BVCwgIlVuc3VwcG9ydGVkIHNpemUgJXV4JXUuXG4iLAorCQkJCWZtdC0+Zm10LnBpeC53aWR0aCwgZm10LT5mbXQucGl4LmhlaWdodCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIFVzZSB0aGUgZGVmYXVsdCBmcmFtZSBpbnRlcnZhbC4gKi8KKwlpbnRlcnZhbCA9IGZyYW1lLT5kd0RlZmF1bHRGcmFtZUludGVydmFsOworCXV2Y190cmFjZShVVkNfVFJBQ0VfRk9STUFULCAiVXNpbmcgZGVmYXVsdCBmcmFtZSBpbnRlcnZhbCAldS4ldSB1cyAiCisJCSIoJXUuJXUgZnBzKS5cbiIsIGludGVydmFsLzEwLCBpbnRlcnZhbCUxMCwgMTAwMDAwMDAvaW50ZXJ2YWwsCisJCSgxMDAwMDAwMDAvaW50ZXJ2YWwpJTEwKTsKKworCS8qIFNldCB0aGUgZm9ybWF0IGluZGV4LCBmcmFtZSBpbmRleCBhbmQgZnJhbWUgaW50ZXJ2YWwuICovCisJbWVtc2V0KHByb2JlLCAwLCBzaXplb2YgKnByb2JlKTsKKwlwcm9iZS0+Ym1IaW50ID0gMTsJLyogZHdGcmFtZUludGVydmFsICovCisJcHJvYmUtPmJGb3JtYXRJbmRleCA9IGZvcm1hdC0+aW5kZXg7CisJcHJvYmUtPmJGcmFtZUluZGV4ID0gZnJhbWUtPmJGcmFtZUluZGV4OworCXByb2JlLT5kd0ZyYW1lSW50ZXJ2YWwgPSB1dmNfdHJ5X2ZyYW1lX2ludGVydmFsKGZyYW1lLCBpbnRlcnZhbCk7CisJLyogU29tZSB3ZWJjYW1zIHN0YWxsIHRoZSBwcm9iZSBjb250cm9sIHNldCByZXF1ZXN0IHdoZW4gdGhlCisJICogZHdNYXhWaWRlb0ZyYW1lU2l6ZSBmaWVsZCBpcyBzZXQgdG8gemVyby4gVGhlIFVWQyBzcGVjaWZpY2F0aW9uCisJICogY2xlYXJseSBzdGF0ZXMgdGhhdCB0aGUgZmllbGQgaXMgcmVhZC1vbmx5IGZyb20gdGhlIGhvc3QsIHNvIHRoaXMKKwkgKiBpcyBhIHdlYmNhbSBidWcuIFNldCBkd01heFZpZGVvRnJhbWVTaXplIHRvIHRoZSB2YWx1ZSByZXBvcnRlZCBieQorCSAqIHRoZSB3ZWJjYW0gdG8gd29yayBhcm91bmQgdGhlIHByb2JsZW0uCisJICoKKwkgKiBUaGUgd29ya2Fyb3VuZCBjb3VsZCBwcm9iYWJseSBiZSBlbmFibGVkIGZvciBhbGwgd2ViY2Ftcywgc28gdGhlCisJICogcXVpcmsgY2FuIGJlIHJlbW92ZWQgaWYgbmVlZGVkLiBJdCdzIGN1cnJlbnRseSB1c2VmdWwgdG8gZGV0ZWN0CisJICogd2ViY2FtIGJ1Z3MgYW5kIGZpeCB0aGVtIGJlZm9yZSB0aGV5IGhpdCB0aGUgbWFya2V0IChwcm92aWRpbmcKKwkgKiBkZXZlbG9wZXJzIHRlc3QgdGhlaXIgd2ViY2FtcyB3aXRoIHRoZSBMaW51eCBkcml2ZXIgYXMgd2VsbCBhcyB3aXRoCisJICogdGhlIFdpbmRvd3MgZHJpdmVyKS4KKwkgKi8KKwlpZiAodmlkZW8tPmRldi0+cXVpcmtzICYgVVZDX1FVSVJLX1BST0JFX0VYVFJBRklFTERTKQorCQlwcm9iZS0+ZHdNYXhWaWRlb0ZyYW1lU2l6ZSA9CisJCQl2aWRlby0+c3RyZWFtaW5nLT5jdHJsLmR3TWF4VmlkZW9GcmFtZVNpemU7CisKKwkvKiBQcm9iZSB0aGUgZGV2aWNlICovCisJaWYgKChyZXQgPSB1dmNfcHJvYmVfdmlkZW8odmlkZW8sIHByb2JlKSkgPCAwKQorCQlnb3RvIGRvbmU7CisKKwlmbXQtPmZtdC5waXgud2lkdGggPSBmcmFtZS0+d1dpZHRoOworCWZtdC0+Zm10LnBpeC5oZWlnaHQgPSBmcmFtZS0+d0hlaWdodDsKKwlmbXQtPmZtdC5waXguZmllbGQgPSBWNEwyX0ZJRUxEX05PTkU7CisJZm10LT5mbXQucGl4LmJ5dGVzcGVybGluZSA9IGZvcm1hdC0+YnBwICogZnJhbWUtPndXaWR0aCAvIDg7CisJZm10LT5mbXQucGl4LnNpemVpbWFnZSA9IHByb2JlLT5kd01heFZpZGVvRnJhbWVTaXplOworCWZtdC0+Zm10LnBpeC5jb2xvcnNwYWNlID0gZm9ybWF0LT5jb2xvcnNwYWNlOworCWZtdC0+Zm10LnBpeC5wcml2ID0gMDsKKworCWlmICh1dmNfZm9ybWF0ICE9IE5VTEwpCisJCSp1dmNfZm9ybWF0ID0gZm9ybWF0OworCWlmICh1dmNfZnJhbWUgIT0gTlVMTCkKKwkJKnV2Y19mcmFtZSA9IGZyYW1lOworCitkb25lOgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfZ2V0X2Zvcm1hdChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHY0bDJfZm9ybWF0ICpmbXQpCit7CisJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdCA9IHZpZGVvLT5zdHJlYW1pbmctPmN1cl9mb3JtYXQ7CisJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWUgPSB2aWRlby0+c3RyZWFtaW5nLT5jdXJfZnJhbWU7CisKKwlpZiAoZm10LT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoZm9ybWF0ID09IE5VTEwgfHwgZnJhbWUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlmbXQtPmZtdC5waXgucGl4ZWxmb3JtYXQgPSBmb3JtYXQtPmZjYzsKKwlmbXQtPmZtdC5waXgud2lkdGggPSBmcmFtZS0+d1dpZHRoOworCWZtdC0+Zm10LnBpeC5oZWlnaHQgPSBmcmFtZS0+d0hlaWdodDsKKwlmbXQtPmZtdC5waXguZmllbGQgPSBWNEwyX0ZJRUxEX05PTkU7CisJZm10LT5mbXQucGl4LmJ5dGVzcGVybGluZSA9IGZvcm1hdC0+YnBwICogZnJhbWUtPndXaWR0aCAvIDg7CisJZm10LT5mbXQucGl4LnNpemVpbWFnZSA9IHZpZGVvLT5zdHJlYW1pbmctPmN0cmwuZHdNYXhWaWRlb0ZyYW1lU2l6ZTsKKwlmbXQtPmZtdC5waXguY29sb3JzcGFjZSA9IGZvcm1hdC0+Y29sb3JzcGFjZTsKKwlmbXQtPmZtdC5waXgucHJpdiA9IDA7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1dmNfdjRsMl9zZXRfZm9ybWF0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdjRsMl9mb3JtYXQgKmZtdCkKK3sKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sIHByb2JlOworCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQ7CisJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWU7CisJaW50IHJldDsKKworCWlmIChmbXQtPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICh1dmNfcXVldWVfc3RyZWFtaW5nKCZ2aWRlby0+cXVldWUpKQorCQlyZXR1cm4gLUVCVVNZOworCisJcmV0ID0gdXZjX3Y0bDJfdHJ5X2Zvcm1hdCh2aWRlbywgZm10LCAmcHJvYmUsICZmb3JtYXQsICZmcmFtZSk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlpZiAoKHJldCA9IHV2Y19zZXRfdmlkZW9fY3RybCh2aWRlbywgJnByb2JlLCAwKSkgPCAwKQorCQlyZXR1cm4gcmV0OworCisJbWVtY3B5KCZ2aWRlby0+c3RyZWFtaW5nLT5jdHJsLCAmcHJvYmUsIHNpemVvZiBwcm9iZSk7CisJdmlkZW8tPnN0cmVhbWluZy0+Y3VyX2Zvcm1hdCA9IGZvcm1hdDsKKwl2aWRlby0+c3RyZWFtaW5nLT5jdXJfZnJhbWUgPSBmcmFtZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHV2Y192NGwyX2dldF9zdHJlYW1wYXJtKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHY0bDJfc3RyZWFtcGFybSAqcGFybSkKK3sKKwl1aW50MzJfdCBudW1lcmF0b3IsIGRlbm9taW5hdG9yOworCisJaWYgKHBhcm0tPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW51bWVyYXRvciA9IHZpZGVvLT5zdHJlYW1pbmctPmN0cmwuZHdGcmFtZUludGVydmFsOworCWRlbm9taW5hdG9yID0gMTAwMDAwMDA7CisJdXZjX3NpbXBsaWZ5X2ZyYWN0aW9uKCZudW1lcmF0b3IsICZkZW5vbWluYXRvciwgOCwgMzMzKTsKKworCW1lbXNldChwYXJtLCAwLCBzaXplb2YgKnBhcm0pOworCXBhcm0tPnR5cGUgPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkU7CisJcGFybS0+cGFybS5jYXB0dXJlLmNhcGFiaWxpdHkgPSBWNEwyX0NBUF9USU1FUEVSRlJBTUU7CisJcGFybS0+cGFybS5jYXB0dXJlLmNhcHR1cmVtb2RlID0gMDsKKwlwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLm51bWVyYXRvciA9IG51bWVyYXRvcjsKKwlwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLmRlbm9taW5hdG9yID0gZGVub21pbmF0b3I7CisJcGFybS0+cGFybS5jYXB0dXJlLmV4dGVuZGVkbW9kZSA9IDA7CisJcGFybS0+cGFybS5jYXB0dXJlLnJlYWRidWZmZXJzID0gMDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHV2Y192NGwyX3NldF9zdHJlYW1wYXJtKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHY0bDJfc3RyZWFtcGFybSAqcGFybSkKK3sKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZSA9IHZpZGVvLT5zdHJlYW1pbmctPmN1cl9mcmFtZTsKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sIHByb2JlOworCXVpbnQzMl90IGludGVydmFsOworCWludCByZXQ7CisKKwlpZiAocGFybS0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHV2Y19xdWV1ZV9zdHJlYW1pbmcoJnZpZGVvLT5xdWV1ZSkpCisJCXJldHVybiAtRUJVU1k7CisKKwltZW1jcHkoJnByb2JlLCAmdmlkZW8tPnN0cmVhbWluZy0+Y3RybCwgc2l6ZW9mIHByb2JlKTsKKwlpbnRlcnZhbCA9IHV2Y19mcmFjdGlvbl90b19pbnRlcnZhbCgKKwkJCXBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUubnVtZXJhdG9yLAorCQkJcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5kZW5vbWluYXRvcik7CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZPUk1BVCwgIlNldHRpbmcgZnJhbWUgaW50ZXJ2YWwgdG8gJXUvJXUgKCV1KS5cbiIsCisJCQlwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLm51bWVyYXRvciwKKwkJCXBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUuZGVub21pbmF0b3IsCisJCQlpbnRlcnZhbCk7CisJcHJvYmUuZHdGcmFtZUludGVydmFsID0gdXZjX3RyeV9mcmFtZV9pbnRlcnZhbChmcmFtZSwgaW50ZXJ2YWwpOworCisJLyogUHJvYmUgdGhlIGRldmljZSB3aXRoIHRoZSBuZXcgc2V0dGluZ3MuICovCisJaWYgKChyZXQgPSB1dmNfcHJvYmVfdmlkZW8odmlkZW8sICZwcm9iZSkpIDwgMCkKKwkJcmV0dXJuIHJldDsKKworCS8qIENvbW1pdCB0aGUgbmV3IHNldHRpbmdzLiAqLworCWlmICgocmV0ID0gdXZjX3NldF92aWRlb19jdHJsKHZpZGVvLCAmcHJvYmUsIDApKSA8IDApCisJCXJldHVybiByZXQ7CisKKwltZW1jcHkoJnZpZGVvLT5zdHJlYW1pbmctPmN0cmwsICZwcm9iZSwgc2l6ZW9mIHByb2JlKTsKKworCS8qIFJldHVybiB0aGUgYWN0dWFsIGZyYW1lIHBlcmlvZC4gKi8KKwlwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLm51bWVyYXRvciA9IHByb2JlLmR3RnJhbWVJbnRlcnZhbDsKKwlwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLmRlbm9taW5hdG9yID0gMTAwMDAwMDA7CisJdXZjX3NpbXBsaWZ5X2ZyYWN0aW9uKCZwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLm51bWVyYXRvciwKKwkJCQkmcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5kZW5vbWluYXRvciwKKwkJCQk4LCAzMzMpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogUHJpdmlsZWdlIG1hbmFnZW1lbnQKKyAqLworCisvKgorICogUHJpdmlsZWdlIG1hbmFnZW1lbnQgaXMgdGhlIG11bHRpcGxlLW9wZW4gaW1wbGVtZW50YXRpb24gYmFzaXMuIFRoZSBjdXJyZW50CisgKiBpbXBsZW1lbnRhdGlvbiBpcyBjb21wbGV0ZWx5IHRyYW5zcGFyZW50IGZvciB0aGUgZW5kLXVzZXIgYW5kIGRvZXNuJ3QKKyAqIHJlcXVpcmUgZXhwbGljaXQgdXNlIG9mIHRoZSBWSURJT0NfR19QUklPUklUWSBhbmQgVklESU9DX1NfUFJJT1JJVFkgaW9jdGxzLgorICogVGhvc2UgaW9jdGxzIGVuYWJsZSBmaW5lciBjb250cm9sIG9uIHRoZSBkZXZpY2UgKGJ5IG1ha2luZyBwb3NzaWJsZSBmb3IgYQorICogdXNlciB0byByZXF1ZXN0IGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gYSBkZXZpY2UpLCBidXQgYXJlIG5vdCBtYXR1cmUgeWV0LgorICogU3dpdGNoaW5nIHRvIHRoZSBWNEwyIHByaW9yaXR5IG1lY2hhbmlzbSBtaWdodCBiZSBjb25zaWRlcmVkIGluIHRoZSBmdXR1cmUKKyAqIGlmIHRoaXMgc2l0dWF0aW9uIGNoYW5nZXMuCisgKgorICogRWFjaCBvcGVuIGluc3RhbmNlIG9mIGEgVVZDIGRldmljZSBjYW4gZWl0aGVyIGJlIGluIGEgcHJpdmlsZWdlZCBvcgorICogdW5wcml2aWxlZ2VkIHN0YXRlLiBPbmx5IGEgc2luZ2xlIGluc3RhbmNlIGNhbiBiZSBpbiBhIHByaXZpbGVnZWQgc3RhdGUgYXQKKyAqIGEgZ2l2ZW4gdGltZS4gVHJ5aW5nIHRvIHBlcmZvcm0gYW4gb3BlcmF0aW9uIHdoaWNoIHJlcXVpcmVzIHByaXZpbGVnZXMgd2lsbAorICogYXV0b21hdGljYWxseSBhY3F1aXJlIHRoZSByZXF1aXJlZCBwcml2aWxlZ2VzIGlmIHBvc3NpYmxlLCBvciByZXR1cm4gLUVCVVNZCisgKiBvdGhlcndpc2UuIFByaXZpbGVnZXMgYXJlIGRpc21pc3NlZCB3aGVuIGNsb3NpbmcgdGhlIGluc3RhbmNlLgorICoKKyAqIE9wZXJhdGlvbnMgd2hpY2ggcmVxdWlyZSBwcml2aWxlZ2VzIGFyZToKKyAqCisgKiAtIFZJRElPQ19TX0lOUFVUCisgKiAtIFZJRElPQ19TX1BBUk0KKyAqIC0gVklESU9DX1NfRk1UCisgKiAtIFZJRElPQ19UUllfRk1UCisgKiAtIFZJRElPQ19SRVFCVUZTCisgKi8KK3N0YXRpYyBpbnQgdXZjX2FjcXVpcmVfcHJpdmlsZWdlcyhzdHJ1Y3QgdXZjX2ZoICpoYW5kbGUpCit7CisJaW50IHJldCA9IDA7CisKKwkvKiBBbHdheXMgc3VjY2VlZCBpZiB0aGUgaGFuZGxlIGlzIGFscmVhZHkgcHJpdmlsZWdlZC4gKi8KKwlpZiAoaGFuZGxlLT5zdGF0ZSA9PSBVVkNfSEFORExFX0FDVElWRSkKKwkJcmV0dXJuIDA7CisKKwkvKiBDaGVjayBpZiB0aGUgZGV2aWNlIGFscmVhZHkgaGFzIGEgcHJpdmlsZWdlZCBoYW5kbGUuICovCisJbXV0ZXhfbG9jaygmdXZjX2RyaXZlci5vcGVuX211dGV4KTsKKwlpZiAoYXRvbWljX2luY19yZXR1cm4oJmhhbmRsZS0+ZGV2aWNlLT5hY3RpdmUpICE9IDEpIHsKKwkJYXRvbWljX2RlYygmaGFuZGxlLT5kZXZpY2UtPmFjdGl2ZSk7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBkb25lOworCX0KKworCWhhbmRsZS0+c3RhdGUgPSBVVkNfSEFORExFX0FDVElWRTsKKworZG9uZToKKwltdXRleF91bmxvY2soJnV2Y19kcml2ZXIub3Blbl9tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgdXZjX2Rpc21pc3NfcHJpdmlsZWdlcyhzdHJ1Y3QgdXZjX2ZoICpoYW5kbGUpCit7CisJaWYgKGhhbmRsZS0+c3RhdGUgPT0gVVZDX0hBTkRMRV9BQ1RJVkUpCisJCWF0b21pY19kZWMoJmhhbmRsZS0+ZGV2aWNlLT5hY3RpdmUpOworCisJaGFuZGxlLT5zdGF0ZSA9IFVWQ19IQU5ETEVfUEFTU0lWRTsKK30KKworc3RhdGljIGludCB1dmNfaGFzX3ByaXZpbGVnZXMoc3RydWN0IHV2Y19maCAqaGFuZGxlKQoreworCXJldHVybiBoYW5kbGUtPnN0YXRlID09IFVWQ19IQU5ETEVfQUNUSVZFOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFY0TDIgZmlsZSBvcGVyYXRpb25zCisgKi8KKworc3RhdGljIGludCB1dmNfdjRsMl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB2aWRlb19kZXZpY2UgKnZkZXY7CisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvOworCXN0cnVjdCB1dmNfZmggKmhhbmRsZTsKKwlpbnQgcmV0ID0gMDsKKworCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FMTFMsICJ1dmNfdjRsMl9vcGVuXG4iKTsKKwltdXRleF9sb2NrKCZ1dmNfZHJpdmVyLm9wZW5fbXV0ZXgpOworCXZkZXYgPSB2aWRlb19kZXZkYXRhKGZpbGUpOworCXZpZGVvID0gdmlkZW9fZ2V0X2RydmRhdGEodmRldik7CisKKwlpZiAodmlkZW8tPmRldi0+c3RhdGUgJiBVVkNfREVWX0RJU0NPTk5FQ1RFRCkgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIGRvbmU7CisJfQorCisJcmV0ID0gdXNiX2F1dG9wbV9nZXRfaW50ZXJmYWNlKHZpZGVvLT5kZXYtPmludGYpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGRvbmU7CisKKwkvKiBDcmVhdGUgdGhlIGRldmljZSBoYW5kbGUuICovCisJaGFuZGxlID0ga3phbGxvYyhzaXplb2YgKmhhbmRsZSwgR0ZQX0tFUk5FTCk7CisJaWYgKGhhbmRsZSA9PSBOVUxMKSB7CisJCXVzYl9hdXRvcG1fcHV0X2ludGVyZmFjZSh2aWRlby0+ZGV2LT5pbnRmKTsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBkb25lOworCX0KKworCWhhbmRsZS0+ZGV2aWNlID0gdmlkZW87CisJaGFuZGxlLT5zdGF0ZSA9IFVWQ19IQU5ETEVfUEFTU0lWRTsKKwlmaWxlLT5wcml2YXRlX2RhdGEgPSBoYW5kbGU7CisKKwlrcmVmX2dldCgmdmlkZW8tPmRldi0+a3JlZik7CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZ1dmNfZHJpdmVyLm9wZW5fbXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2ZGV2ID0gdmlkZW9fZGV2ZGF0YShmaWxlKTsKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8gPSB2aWRlb19nZXRfZHJ2ZGF0YSh2ZGV2KTsKKwlzdHJ1Y3QgdXZjX2ZoICpoYW5kbGUgPSAoc3RydWN0IHV2Y19maCAqKWZpbGUtPnByaXZhdGVfZGF0YTsKKworCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FMTFMsICJ1dmNfdjRsMl9yZWxlYXNlXG4iKTsKKworCS8qIE9ubHkgZnJlZSByZXNvdXJjZXMgaWYgdGhpcyBpcyBhIHByaXZpbGVnZWQgaGFuZGxlLiAqLworCWlmICh1dmNfaGFzX3ByaXZpbGVnZXMoaGFuZGxlKSkgeworCQl1dmNfdmlkZW9fZW5hYmxlKHZpZGVvLCAwKTsKKworCQltdXRleF9sb2NrKCZ2aWRlby0+cXVldWUubXV0ZXgpOworCQlpZiAodXZjX2ZyZWVfYnVmZmVycygmdmlkZW8tPnF1ZXVlKSA8IDApCisJCQl1dmNfcHJpbnRrKEtFUk5fRVJSLCAidXZjX3Y0bDJfcmVsZWFzZTogVW5hYmxlIHRvICIKKwkJCQkJImZyZWUgYnVmZmVycy5cbiIpOworCQltdXRleF91bmxvY2soJnZpZGVvLT5xdWV1ZS5tdXRleCk7CisJfQorCisJLyogUmVsZWFzZSB0aGUgZmlsZSBoYW5kbGUuICovCisJdXZjX2Rpc21pc3NfcHJpdmlsZWdlcyhoYW5kbGUpOworCWtmcmVlKGhhbmRsZSk7CisJZmlsZS0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKKworCXVzYl9hdXRvcG1fcHV0X2ludGVyZmFjZSh2aWRlby0+ZGV2LT5pbnRmKTsKKwlrcmVmX3B1dCgmdmlkZW8tPmRldi0+a3JlZiwgdXZjX2RlbGV0ZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfZG9faW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCisJCSAgICAgdW5zaWduZWQgaW50IGNtZCwgdm9pZCAqYXJnKQoreworCXN0cnVjdCB2aWRlb19kZXZpY2UgKnZkZXYgPSB2aWRlb19kZXZkYXRhKGZpbGUpOworCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbyA9IHZpZGVvX2dldF9kcnZkYXRhKHZkZXYpOworCXN0cnVjdCB1dmNfZmggKmhhbmRsZSA9IChzdHJ1Y3QgdXZjX2ZoICopZmlsZS0+cHJpdmF0ZV9kYXRhOworCWludCByZXQgPSAwOworCisJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9JT0NUTCkKKwkJdjRsX3ByaW50a19pb2N0bChjbWQpOworCisJc3dpdGNoIChjbWQpIHsKKwkvKiBRdWVyeSBjYXBhYmlsaXRpZXMgKi8KKwljYXNlIFZJRElPQ19RVUVSWUNBUDoKKwl7CisJCXN0cnVjdCB2NGwyX2NhcGFiaWxpdHkgKmNhcCA9IGFyZzsKKworCQltZW1zZXQoY2FwLCAwLCBzaXplb2YgKmNhcCk7CisJCXN0cm5jcHkoY2FwLT5kcml2ZXIsICJ1dmN2aWRlbyIsIHNpemVvZiBjYXAtPmRyaXZlcik7CisJCXN0cm5jcHkoY2FwLT5jYXJkLCB2ZGV2LT5uYW1lLCAzMik7CisJCXN0cm5jcHkoY2FwLT5idXNfaW5mbywgdmlkZW8tPmRldi0+dWRldi0+YnVzLT5idXNfbmFtZSwKKwkJCXNpemVvZiBjYXAtPmJ1c19pbmZvKTsKKwkJY2FwLT52ZXJzaW9uID0gRFJJVkVSX1ZFUlNJT05fTlVNQkVSOworCQljYXAtPmNhcGFiaWxpdGllcyA9IFY0TDJfQ0FQX1ZJREVPX0NBUFRVUkUKKwkJCQkgIHwgVjRMMl9DQVBfU1RSRUFNSU5HOworCQlicmVhazsKKwl9CisKKwkvKiBHZXQsIFNldCAmIFF1ZXJ5IGNvbnRyb2wgKi8KKwljYXNlIFZJRElPQ19RVUVSWUNUUkw6CisJCXJldHVybiB1dmNfcXVlcnlfdjRsMl9jdHJsKHZpZGVvLCBhcmcpOworCisJY2FzZSBWSURJT0NfR19DVFJMOgorCXsKKwkJc3RydWN0IHY0bDJfY29udHJvbCAqY3RybCA9IGFyZzsKKwkJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2wgeGN0cmw7CisKKwkJbWVtc2V0KCZ4Y3RybCwgMCwgc2l6ZW9mIHhjdHJsKTsKKwkJeGN0cmwuaWQgPSBjdHJsLT5pZDsKKworCQl1dmNfY3RybF9iZWdpbih2aWRlbyk7CisJCXJldCA9IHV2Y19jdHJsX2dldCh2aWRlbywgJnhjdHJsKTsKKwkJdXZjX2N0cmxfcm9sbGJhY2sodmlkZW8pOworCQlpZiAocmV0ID49IDApCisJCQljdHJsLT52YWx1ZSA9IHhjdHJsLnZhbHVlOworCQlicmVhazsKKwl9CisKKwljYXNlIFZJRElPQ19TX0NUUkw6CisJeworCQlzdHJ1Y3QgdjRsMl9jb250cm9sICpjdHJsID0gYXJnOworCQlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbCB4Y3RybDsKKworCQltZW1zZXQoJnhjdHJsLCAwLCBzaXplb2YgeGN0cmwpOworCQl4Y3RybC5pZCA9IGN0cmwtPmlkOworCQl4Y3RybC52YWx1ZSA9IGN0cmwtPnZhbHVlOworCisJCXV2Y19jdHJsX2JlZ2luKHZpZGVvKTsKKwkJcmV0ID0gdXZjX2N0cmxfc2V0KHZpZGVvLCAmeGN0cmwpOworCQlpZiAocmV0IDwgMCkgeworCQkJdXZjX2N0cmxfcm9sbGJhY2sodmlkZW8pOworCQkJcmV0dXJuIHJldDsKKwkJfQorCQlyZXQgPSB1dmNfY3RybF9jb21taXQodmlkZW8pOworCQlicmVhazsKKwl9CisKKwljYXNlIFZJRElPQ19RVUVSWU1FTlU6CisJCXJldHVybiB1dmNfdjRsMl9xdWVyeV9tZW51KHZpZGVvLCBhcmcpOworCisJY2FzZSBWSURJT0NfR19FWFRfQ1RSTFM6CisJeworCQlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbHMgKmN0cmxzID0gYXJnOworCQlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbCAqY3RybCA9IGN0cmxzLT5jb250cm9sczsKKwkJdW5zaWduZWQgaW50IGk7CisKKwkJdXZjX2N0cmxfYmVnaW4odmlkZW8pOworCQlmb3IgKGkgPSAwOyBpIDwgY3RybHMtPmNvdW50OyArK2N0cmwsICsraSkgeworCQkJcmV0ID0gdXZjX2N0cmxfZ2V0KHZpZGVvLCBjdHJsKTsKKwkJCWlmIChyZXQgPCAwKSB7CisJCQkJdXZjX2N0cmxfcm9sbGJhY2sodmlkZW8pOworCQkJCWN0cmxzLT5lcnJvcl9pZHggPSBpOworCQkJCXJldHVybiByZXQ7CisJCQl9CisJCX0KKwkJY3RybHMtPmVycm9yX2lkeCA9IDA7CisJCXJldCA9IHV2Y19jdHJsX3JvbGxiYWNrKHZpZGVvKTsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBWSURJT0NfU19FWFRfQ1RSTFM6CisJY2FzZSBWSURJT0NfVFJZX0VYVF9DVFJMUzoKKwl7CisJCXN0cnVjdCB2NGwyX2V4dF9jb250cm9scyAqY3RybHMgPSBhcmc7CisJCXN0cnVjdCB2NGwyX2V4dF9jb250cm9sICpjdHJsID0gY3RybHMtPmNvbnRyb2xzOworCQl1bnNpZ25lZCBpbnQgaTsKKworCQlyZXQgPSB1dmNfY3RybF9iZWdpbih2aWRlbyk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlmb3IgKGkgPSAwOyBpIDwgY3RybHMtPmNvdW50OyArK2N0cmwsICsraSkgeworCQkJcmV0ID0gdXZjX2N0cmxfc2V0KHZpZGVvLCBjdHJsKTsKKwkJCWlmIChyZXQgPCAwKSB7CisJCQkJdXZjX2N0cmxfcm9sbGJhY2sodmlkZW8pOworCQkJCWN0cmxzLT5lcnJvcl9pZHggPSBpOworCQkJCXJldHVybiByZXQ7CisJCQl9CisJCX0KKworCQljdHJscy0+ZXJyb3JfaWR4ID0gMDsKKworCQlpZiAoY21kID09IFZJRElPQ19TX0VYVF9DVFJMUykKKwkJCXJldCA9IHV2Y19jdHJsX2NvbW1pdCh2aWRlbyk7CisJCWVsc2UKKwkJCXJldCA9IHV2Y19jdHJsX3JvbGxiYWNrKHZpZGVvKTsKKwkJYnJlYWs7CisJfQorCisJLyogR2V0LCBTZXQgJiBFbnVtIGlucHV0ICovCisJY2FzZSBWSURJT0NfRU5VTUlOUFVUOgorCXsKKwkJY29uc3Qgc3RydWN0IHV2Y19lbnRpdHkgKnNlbGVjdG9yID0gdmlkZW8tPnNlbGVjdG9yOworCQlzdHJ1Y3QgdjRsMl9pbnB1dCAqaW5wdXQgPSBhcmc7CisJCXN0cnVjdCB1dmNfZW50aXR5ICppdGVybSA9IE5VTEw7CisJCXUzMiBpbmRleCA9IGlucHV0LT5pbmRleDsKKwkJaW50IHBpbiA9IDA7CisKKwkJaWYgKHNlbGVjdG9yID09IE5VTEwgfHwKKwkJICAgICh2aWRlby0+ZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfSUdOT1JFX1NFTEVDVE9SX1VOSVQpKSB7CisJCQlpZiAoaW5kZXggIT0gMCkKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCWl0ZXJtID0gbGlzdF9maXJzdF9lbnRyeSgmdmlkZW8tPml0ZXJtcywKKwkJCQkJc3RydWN0IHV2Y19lbnRpdHksIGNoYWluKTsKKwkJCXBpbiA9IGl0ZXJtLT5pZDsKKwkJfSBlbHNlIGlmIChwaW4gPCBzZWxlY3Rvci0+c2VsZWN0b3IuYk5ySW5QaW5zKSB7CisJCQlwaW4gPSBzZWxlY3Rvci0+c2VsZWN0b3IuYmFTb3VyY2VJRFtpbmRleF07CisJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGl0ZXJtLCB2aWRlby0+aXRlcm1zLm5leHQsIGNoYWluKSB7CisJCQkJaWYgKGl0ZXJtLT5pZCA9PSBwaW4pCisJCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJaWYgKGl0ZXJtID09IE5VTEwgfHwgaXRlcm0tPmlkICE9IHBpbikKKwkJCXJldHVybiAtRUlOVkFMOworCisJCW1lbXNldChpbnB1dCwgMCwgc2l6ZW9mICppbnB1dCk7CisJCWlucHV0LT5pbmRleCA9IGluZGV4OworCQlzdHJuY3B5KGlucHV0LT5uYW1lLCBpdGVybS0+bmFtZSwgc2l6ZW9mIGlucHV0LT5uYW1lKTsKKwkJaWYgKFVWQ19FTlRJVFlfVFlQRShpdGVybSkgPT0gSVRUX0NBTUVSQSkKKwkJCWlucHV0LT50eXBlID0gVjRMMl9JTlBVVF9UWVBFX0NBTUVSQTsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBWSURJT0NfR19JTlBVVDoKKwl7CisJCXU4IGlucHV0OworCisJCWlmICh2aWRlby0+c2VsZWN0b3IgPT0gTlVMTCB8fAorCQkgICAgKHZpZGVvLT5kZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19JR05PUkVfU0VMRUNUT1JfVU5JVCkpIHsKKwkJCSooaW50ICopYXJnID0gMDsKKwkJCWJyZWFrOworCQl9CisKKwkJcmV0ID0gdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgR0VUX0NVUiwgdmlkZW8tPnNlbGVjdG9yLT5pZCwKKwkJCXZpZGVvLT5kZXYtPmludGZudW0sIFNVX0lOUFVUX1NFTEVDVF9DT05UUk9MLAorCQkJJmlucHV0LCAxKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCSooaW50ICopYXJnID0gaW5wdXQgLSAxOworCQlicmVhazsKKwl9CisKKwljYXNlIFZJRElPQ19TX0lOUFVUOgorCXsKKwkJdTggaW5wdXQgPSAqKHUzMiAqKWFyZyArIDE7CisKKwkJaWYgKChyZXQgPSB1dmNfYWNxdWlyZV9wcml2aWxlZ2VzKGhhbmRsZSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJaWYgKHZpZGVvLT5zZWxlY3RvciA9PSBOVUxMIHx8CisJCSAgICAodmlkZW8tPmRldi0+cXVpcmtzICYgVVZDX1FVSVJLX0lHTk9SRV9TRUxFQ1RPUl9VTklUKSkgeworCQkJaWYgKGlucHV0ICE9IDEpCisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQlicmVhazsKKwkJfQorCisJCWlmIChpbnB1dCA+IHZpZGVvLT5zZWxlY3Rvci0+c2VsZWN0b3IuYk5ySW5QaW5zKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJcmV0dXJuIHV2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIFNFVF9DVVIsIHZpZGVvLT5zZWxlY3Rvci0+aWQsCisJCQl2aWRlby0+ZGV2LT5pbnRmbnVtLCBTVV9JTlBVVF9TRUxFQ1RfQ09OVFJPTCwKKwkJCSZpbnB1dCwgMSk7CisJfQorCisJLyogVHJ5LCBHZXQsIFNldCAmIEVudW0gZm9ybWF0ICovCisJY2FzZSBWSURJT0NfRU5VTV9GTVQ6CisJeworCQlzdHJ1Y3QgdjRsMl9mbXRkZXNjICpmbXQgPSBhcmc7CisJCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQ7CisKKwkJaWYgKGZtdC0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUgfHwKKwkJICAgIGZtdC0+aW5kZXggPj0gdmlkZW8tPnN0cmVhbWluZy0+bmZvcm1hdHMpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlmb3JtYXQgPSAmdmlkZW8tPnN0cmVhbWluZy0+Zm9ybWF0W2ZtdC0+aW5kZXhdOworCQlmbXQtPmZsYWdzID0gMDsKKwkJaWYgKGZvcm1hdC0+ZmxhZ3MgJiBVVkNfRk1UX0ZMQUdfQ09NUFJFU1NFRCkKKwkJCWZtdC0+ZmxhZ3MgfD0gVjRMMl9GTVRfRkxBR19DT01QUkVTU0VEOworCQlzdHJuY3B5KGZtdC0+ZGVzY3JpcHRpb24sIGZvcm1hdC0+bmFtZSwKKwkJCXNpemVvZiBmbXQtPmRlc2NyaXB0aW9uKTsKKwkJZm10LT5kZXNjcmlwdGlvbltzaXplb2YgZm10LT5kZXNjcmlwdGlvbiAtIDFdID0gMDsKKwkJZm10LT5waXhlbGZvcm1hdCA9IGZvcm1hdC0+ZmNjOworCQlicmVhazsKKwl9CisKKwljYXNlIFZJRElPQ19UUllfRk1UOgorCXsKKwkJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCBwcm9iZTsKKworCQlpZiAoKHJldCA9IHV2Y19hY3F1aXJlX3ByaXZpbGVnZXMoaGFuZGxlKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlyZXR1cm4gdXZjX3Y0bDJfdHJ5X2Zvcm1hdCh2aWRlbywgYXJnLCAmcHJvYmUsIE5VTEwsIE5VTEwpOworCX0KKworCWNhc2UgVklESU9DX1NfRk1UOgorCQlpZiAoKHJldCA9IHV2Y19hY3F1aXJlX3ByaXZpbGVnZXMoaGFuZGxlKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlyZXR1cm4gdXZjX3Y0bDJfc2V0X2Zvcm1hdCh2aWRlbywgYXJnKTsKKworCWNhc2UgVklESU9DX0dfRk1UOgorCQlyZXR1cm4gdXZjX3Y0bDJfZ2V0X2Zvcm1hdCh2aWRlbywgYXJnKTsKKworCS8qIEZyYW1lIHNpemUgZW51bWVyYXRpb24gKi8KKwljYXNlIFZJRElPQ19FTlVNX0ZSQU1FU0laRVM6CisJeworCQlzdHJ1Y3QgdjRsMl9mcm1zaXplZW51bSAqZnNpemUgPSBhcmc7CisJCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQgPSBOVUxMOworCQlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZTsKKwkJaW50IGk7CisKKwkJLyogTG9vayBmb3IgdGhlIGdpdmVuIHBpeGVsIGZvcm1hdCAqLworCQlmb3IgKGkgPSAwOyBpIDwgdmlkZW8tPnN0cmVhbWluZy0+bmZvcm1hdHM7IGkrKykgeworCQkJaWYgKHZpZGVvLT5zdHJlYW1pbmctPmZvcm1hdFtpXS5mY2MgPT0KKwkJCQkJZnNpemUtPnBpeGVsX2Zvcm1hdCkgeworCQkJCWZvcm1hdCA9ICZ2aWRlby0+c3RyZWFtaW5nLT5mb3JtYXRbaV07CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKGZvcm1hdCA9PSBOVUxMKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJaWYgKGZzaXplLT5pbmRleCA+PSBmb3JtYXQtPm5mcmFtZXMpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlmcmFtZSA9ICZmb3JtYXQtPmZyYW1lW2ZzaXplLT5pbmRleF07CisJCWZzaXplLT50eXBlID0gVjRMMl9GUk1TSVpFX1RZUEVfRElTQ1JFVEU7CisJCWZzaXplLT5kaXNjcmV0ZS53aWR0aCA9IGZyYW1lLT53V2lkdGg7CisJCWZzaXplLT5kaXNjcmV0ZS5oZWlnaHQgPSBmcmFtZS0+d0hlaWdodDsKKwkJYnJlYWs7CisJfQorCisJLyogRnJhbWUgaW50ZXJ2YWwgZW51bWVyYXRpb24gKi8KKwljYXNlIFZJRElPQ19FTlVNX0ZSQU1FSU5URVJWQUxTOgorCXsKKwkJc3RydWN0IHY0bDJfZnJtaXZhbGVudW0gKmZpdmFsID0gYXJnOworCQlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0ID0gTlVMTDsKKwkJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWUgPSBOVUxMOworCQlpbnQgaTsKKworCQkvKiBMb29rIGZvciB0aGUgZ2l2ZW4gcGl4ZWwgZm9ybWF0IGFuZCBmcmFtZSBzaXplICovCisJCWZvciAoaSA9IDA7IGkgPCB2aWRlby0+c3RyZWFtaW5nLT5uZm9ybWF0czsgaSsrKSB7CisJCQlpZiAodmlkZW8tPnN0cmVhbWluZy0+Zm9ybWF0W2ldLmZjYyA9PQorCQkJCQlmaXZhbC0+cGl4ZWxfZm9ybWF0KSB7CisJCQkJZm9ybWF0ID0gJnZpZGVvLT5zdHJlYW1pbmctPmZvcm1hdFtpXTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCQlpZiAoZm9ybWF0ID09IE5VTEwpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlmb3IgKGkgPSAwOyBpIDwgZm9ybWF0LT5uZnJhbWVzOyBpKyspIHsKKwkJCWlmIChmb3JtYXQtPmZyYW1lW2ldLndXaWR0aCA9PSBmaXZhbC0+d2lkdGggJiYKKwkJCSAgICBmb3JtYXQtPmZyYW1lW2ldLndIZWlnaHQgPT0gZml2YWwtPmhlaWdodCkgeworCQkJCWZyYW1lID0gJmZvcm1hdC0+ZnJhbWVbaV07CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKGZyYW1lID09IE5VTEwpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlpZiAoZnJhbWUtPmJGcmFtZUludGVydmFsVHlwZSkgeworCQkJaWYgKGZpdmFsLT5pbmRleCA+PSBmcmFtZS0+YkZyYW1lSW50ZXJ2YWxUeXBlKQorCQkJCXJldHVybiAtRUlOVkFMOworCisJCQlmaXZhbC0+dHlwZSA9IFY0TDJfRlJNSVZBTF9UWVBFX0RJU0NSRVRFOworCQkJZml2YWwtPmRpc2NyZXRlLm51bWVyYXRvciA9CisJCQkJZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFtmaXZhbC0+aW5kZXhdOworCQkJZml2YWwtPmRpc2NyZXRlLmRlbm9taW5hdG9yID0gMTAwMDAwMDA7CisJCQl1dmNfc2ltcGxpZnlfZnJhY3Rpb24oJmZpdmFsLT5kaXNjcmV0ZS5udW1lcmF0b3IsCisJCQkJJmZpdmFsLT5kaXNjcmV0ZS5kZW5vbWluYXRvciwgOCwgMzMzKTsKKwkJfSBlbHNlIHsKKwkJCWZpdmFsLT50eXBlID0gVjRMMl9GUk1JVkFMX1RZUEVfU1RFUFdJU0U7CisJCQlmaXZhbC0+c3RlcHdpc2UubWluLm51bWVyYXRvciA9CisJCQkJZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFswXTsKKwkJCWZpdmFsLT5zdGVwd2lzZS5taW4uZGVub21pbmF0b3IgPSAxMDAwMDAwMDsKKwkJCWZpdmFsLT5zdGVwd2lzZS5tYXgubnVtZXJhdG9yID0KKwkJCQlmcmFtZS0+ZHdGcmFtZUludGVydmFsWzFdOworCQkJZml2YWwtPnN0ZXB3aXNlLm1heC5kZW5vbWluYXRvciA9IDEwMDAwMDAwOworCQkJZml2YWwtPnN0ZXB3aXNlLnN0ZXAubnVtZXJhdG9yID0KKwkJCQlmcmFtZS0+ZHdGcmFtZUludGVydmFsWzJdOworCQkJZml2YWwtPnN0ZXB3aXNlLnN0ZXAuZGVub21pbmF0b3IgPSAxMDAwMDAwMDsKKwkJCXV2Y19zaW1wbGlmeV9mcmFjdGlvbigmZml2YWwtPnN0ZXB3aXNlLm1pbi5udW1lcmF0b3IsCisJCQkJJmZpdmFsLT5zdGVwd2lzZS5taW4uZGVub21pbmF0b3IsIDgsIDMzMyk7CisJCQl1dmNfc2ltcGxpZnlfZnJhY3Rpb24oJmZpdmFsLT5zdGVwd2lzZS5tYXgubnVtZXJhdG9yLAorCQkJCSZmaXZhbC0+c3RlcHdpc2UubWF4LmRlbm9taW5hdG9yLCA4LCAzMzMpOworCQkJdXZjX3NpbXBsaWZ5X2ZyYWN0aW9uKCZmaXZhbC0+c3RlcHdpc2Uuc3RlcC5udW1lcmF0b3IsCisJCQkJJmZpdmFsLT5zdGVwd2lzZS5zdGVwLmRlbm9taW5hdG9yLCA4LCAzMzMpOworCQl9CisJCWJyZWFrOworCX0KKworCS8qIEdldCAmIFNldCBzdHJlYW1pbmcgcGFyYW1ldGVycyAqLworCWNhc2UgVklESU9DX0dfUEFSTToKKwkJcmV0dXJuIHV2Y192NGwyX2dldF9zdHJlYW1wYXJtKHZpZGVvLCBhcmcpOworCisJY2FzZSBWSURJT0NfU19QQVJNOgorCQlpZiAoKHJldCA9IHV2Y19hY3F1aXJlX3ByaXZpbGVnZXMoaGFuZGxlKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlyZXR1cm4gdXZjX3Y0bDJfc2V0X3N0cmVhbXBhcm0odmlkZW8sIGFyZyk7CisKKwkvKiBDcm9wcGluZyBhbmQgc2NhbGluZyAqLworCWNhc2UgVklESU9DX0NST1BDQVA6CisJeworCQlzdHJ1Y3QgdjRsMl9jcm9wY2FwICpjY2FwID0gYXJnOworCQlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZSA9IHZpZGVvLT5zdHJlYW1pbmctPmN1cl9mcmFtZTsKKworCQlpZiAoY2NhcC0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQljY2FwLT5ib3VuZHMubGVmdCA9IDA7CisJCWNjYXAtPmJvdW5kcy50b3AgPSAwOworCQljY2FwLT5ib3VuZHMud2lkdGggPSBmcmFtZS0+d1dpZHRoOworCQljY2FwLT5ib3VuZHMuaGVpZ2h0ID0gZnJhbWUtPndIZWlnaHQ7CisKKwkJY2NhcC0+ZGVmcmVjdCA9IGNjYXAtPmJvdW5kczsKKworCQljY2FwLT5waXhlbGFzcGVjdC5udW1lcmF0b3IgPSAxOworCQljY2FwLT5waXhlbGFzcGVjdC5kZW5vbWluYXRvciA9IDE7CisJCWJyZWFrOworCX0KKworCWNhc2UgVklESU9DX0dfQ1JPUDoKKwljYXNlIFZJRElPQ19TX0NST1A6CisJCXJldHVybiAtRUlOVkFMOworCisJLyogQnVmZmVycyAmIHN0cmVhbWluZyAqLworCWNhc2UgVklESU9DX1JFUUJVRlM6CisJeworCQlzdHJ1Y3QgdjRsMl9yZXF1ZXN0YnVmZmVycyAqcmIgPSBhcmc7CisJCXVuc2lnbmVkIGludCBidWZzaXplID0KKwkJCXZpZGVvLT5zdHJlYW1pbmctPmN0cmwuZHdNYXhWaWRlb0ZyYW1lU2l6ZTsKKworCQlpZiAocmItPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFIHx8CisJCSAgICByYi0+bWVtb3J5ICE9IFY0TDJfTUVNT1JZX01NQVApCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlpZiAoKHJldCA9IHV2Y19hY3F1aXJlX3ByaXZpbGVnZXMoaGFuZGxlKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlyZXQgPSB1dmNfYWxsb2NfYnVmZmVycygmdmlkZW8tPnF1ZXVlLCByYi0+Y291bnQsIGJ1ZnNpemUpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJaWYgKCEodmlkZW8tPnN0cmVhbWluZy0+Y3VyX2Zvcm1hdC0+ZmxhZ3MgJgorCQkgICAgVVZDX0ZNVF9GTEFHX0NPTVBSRVNTRUQpKQorCQkJdmlkZW8tPnF1ZXVlLmZsYWdzIHw9IFVWQ19RVUVVRV9EUk9QX0lOQ09NUExFVEU7CisKKwkJcmItPmNvdW50ID0gcmV0OworCQlyZXQgPSAwOworCQlicmVhazsKKwl9CisKKwljYXNlIFZJRElPQ19RVUVSWUJVRjoKKwl7CisJCXN0cnVjdCB2NGwyX2J1ZmZlciAqYnVmID0gYXJnOworCisJCWlmIChidWYtPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJaWYgKCF1dmNfaGFzX3ByaXZpbGVnZXMoaGFuZGxlKSkKKwkJCXJldHVybiAtRUJVU1k7CisKKwkJcmV0dXJuIHV2Y19xdWVyeV9idWZmZXIoJnZpZGVvLT5xdWV1ZSwgYnVmKTsKKwl9CisKKwljYXNlIFZJRElPQ19RQlVGOgorCQlpZiAoIXV2Y19oYXNfcHJpdmlsZWdlcyhoYW5kbGUpKQorCQkJcmV0dXJuIC1FQlVTWTsKKworCQlyZXR1cm4gdXZjX3F1ZXVlX2J1ZmZlcigmdmlkZW8tPnF1ZXVlLCBhcmcpOworCisJY2FzZSBWSURJT0NfRFFCVUY6CisJCWlmICghdXZjX2hhc19wcml2aWxlZ2VzKGhhbmRsZSkpCisJCQlyZXR1cm4gLUVCVVNZOworCisJCXJldHVybiB1dmNfZGVxdWV1ZV9idWZmZXIoJnZpZGVvLT5xdWV1ZSwgYXJnLAorCQkJZmlsZS0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spOworCisJY2FzZSBWSURJT0NfU1RSRUFNT046CisJeworCQlpbnQgKnR5cGUgPSBhcmc7CisKKwkJaWYgKCp0eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWlmICghdXZjX2hhc19wcml2aWxlZ2VzKGhhbmRsZSkpCisJCQlyZXR1cm4gLUVCVVNZOworCisJCWlmICgocmV0ID0gdXZjX3ZpZGVvX2VuYWJsZSh2aWRlbywgMSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisJCWJyZWFrOworCX0KKworCWNhc2UgVklESU9DX1NUUkVBTU9GRjoKKwl7CisJCWludCAqdHlwZSA9IGFyZzsKKworCQlpZiAoKnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJaWYgKCF1dmNfaGFzX3ByaXZpbGVnZXMoaGFuZGxlKSkKKwkJCXJldHVybiAtRUJVU1k7CisKKwkJcmV0dXJuIHV2Y192aWRlb19lbmFibGUodmlkZW8sIDApOworCX0KKworCS8qIEFuYWxvZyB2aWRlbyBzdGFuZGFyZHMgbWFrZSBubyBzZW5zZSBmb3IgZGlnaXRhbCBjYW1lcmFzLiAqLworCWNhc2UgVklESU9DX0VOVU1TVEQ6CisJY2FzZSBWSURJT0NfUVVFUllTVEQ6CisJY2FzZSBWSURJT0NfR19TVEQ6CisJY2FzZSBWSURJT0NfU19TVEQ6CisKKwljYXNlIFZJRElPQ19PVkVSTEFZOgorCisJY2FzZSBWSURJT0NfRU5VTUFVRElPOgorCWNhc2UgVklESU9DX0VOVU1BVURPVVQ6CisKKwljYXNlIFZJRElPQ19FTlVNT1VUUFVUOgorCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0lPQ1RMLCAiVW5zdXBwb3J0ZWQgaW9jdGwgMHglMDh4XG4iLCBjbWQpOworCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIER5bmFtaWMgY29udHJvbHMuICovCisJY2FzZSBVVkNJT0NfQ1RSTF9BREQ6CisJeworCQlzdHJ1Y3QgdXZjX3h1X2NvbnRyb2xfaW5mbyAqeGluZm8gPSBhcmc7CisJCXN0cnVjdCB1dmNfY29udHJvbF9pbmZvICppbmZvOworCisJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKKwkJCXJldHVybiAtRVBFUk07CisKKwkJaW5mbyA9IGttYWxsb2Moc2l6ZW9mICppbmZvLCBHRlBfS0VSTkVMKTsKKwkJaWYgKGluZm8gPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCW1lbWNweShpbmZvLT5lbnRpdHksIHhpbmZvLT5lbnRpdHksIHNpemVvZiBpbmZvLT5lbnRpdHkpOworCQlpbmZvLT5pbmRleCA9IHhpbmZvLT5pbmRleDsKKwkJaW5mby0+c2VsZWN0b3IgPSB4aW5mby0+c2VsZWN0b3I7CisJCWluZm8tPnNpemUgPSB4aW5mby0+c2l6ZTsKKwkJaW5mby0+ZmxhZ3MgPSB4aW5mby0+ZmxhZ3M7CisKKwkJaW5mby0+ZmxhZ3MgfD0gVVZDX0NPTlRST0xfR0VUX01JTiB8IFVWQ19DT05UUk9MX0dFVF9NQVggfAorCQkJCVVWQ19DT05UUk9MX0dFVF9SRVMgfCBVVkNfQ09OVFJPTF9HRVRfREVGOworCisJCXJldCA9IHV2Y19jdHJsX2FkZF9pbmZvKGluZm8pOworCQlpZiAocmV0IDwgMCkKKwkJCWtmcmVlKGluZm8pOworCQlicmVhazsKKwl9CisKKwljYXNlIFVWQ0lPQ19DVFJMX01BUDoKKwl7CisJCXN0cnVjdCB1dmNfeHVfY29udHJvbF9tYXBwaW5nICp4bWFwID0gYXJnOworCQlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwOworCisJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKKwkJCXJldHVybiAtRVBFUk07CisKKwkJbWFwID0ga21hbGxvYyhzaXplb2YgKm1hcCwgR0ZQX0tFUk5FTCk7CisJCWlmIChtYXAgPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCW1hcC0+aWQgPSB4bWFwLT5pZDsKKwkJbWVtY3B5KG1hcC0+bmFtZSwgeG1hcC0+bmFtZSwgc2l6ZW9mIG1hcC0+bmFtZSk7CisJCW1lbWNweShtYXAtPmVudGl0eSwgeG1hcC0+ZW50aXR5LCBzaXplb2YgbWFwLT5lbnRpdHkpOworCQltYXAtPnNlbGVjdG9yID0geG1hcC0+c2VsZWN0b3I7CisJCW1hcC0+c2l6ZSA9IHhtYXAtPnNpemU7CisJCW1hcC0+b2Zmc2V0ID0geG1hcC0+b2Zmc2V0OworCQltYXAtPnY0bDJfdHlwZSA9IHhtYXAtPnY0bDJfdHlwZTsKKwkJbWFwLT5kYXRhX3R5cGUgPSB4bWFwLT5kYXRhX3R5cGU7CisKKwkJcmV0ID0gdXZjX2N0cmxfYWRkX21hcHBpbmcobWFwKTsKKwkJaWYgKHJldCA8IDApCisJCQlrZnJlZShtYXApOworCQlicmVhazsKKwl9CisKKwljYXNlIFVWQ0lPQ19DVFJMX0dFVDoKKwkJcmV0dXJuIHV2Y194dV9jdHJsX3F1ZXJ5KHZpZGVvLCBhcmcsIDApOworCisJY2FzZSBVVkNJT0NfQ1RSTF9TRVQ6CisJCXJldHVybiB1dmNfeHVfY3RybF9xdWVyeSh2aWRlbywgYXJnLCAxKTsKKworCWRlZmF1bHQ6CisJCWlmICgocmV0ID0gdjRsX2NvbXBhdF90cmFuc2xhdGVfaW9jdGwoaW5vZGUsIGZpbGUsIGNtZCwgYXJnLAorCQkJdXZjX3Y0bDJfZG9faW9jdGwpKSA9PSAtRU5PSU9DVExDTUQpCisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0lPQ1RMLCAiVW5rbm93biBpb2N0bCAweCUwOHhcbiIsCisJCQkJICBjbWQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCisJCSAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQUxMUywgInV2Y192NGwyX2lvY3RsXG4iKTsKKwlyZXR1cm4gdmlkZW9fdXNlcmNvcHkoaW5vZGUsIGZpbGUsIGNtZCwgYXJnLCB1dmNfdjRsMl9kb19pb2N0bCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHV2Y192NGwyX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpkYXRhLAorCQkgICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQUxMUywgInV2Y192NGwyX3JlYWQ6IG5vdCBpbXBsZW1lbnRlZC5cbiIpOworCXJldHVybiAtRU5PREVWOworfQorCisvKgorICogVk1BIG9wZXJhdGlvbnMuCisgKi8KK3N0YXRpYyB2b2lkIHV2Y192bV9vcGVuKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXN0cnVjdCB1dmNfYnVmZmVyICpidWZmZXIgPSB2bWEtPnZtX3ByaXZhdGVfZGF0YTsKKwlidWZmZXItPnZtYV91c2VfY291bnQrKzsKK30KKworc3RhdGljIHZvaWQgdXZjX3ZtX2Nsb3NlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXN0cnVjdCB1dmNfYnVmZmVyICpidWZmZXIgPSB2bWEtPnZtX3ByaXZhdGVfZGF0YTsKKwlidWZmZXItPnZtYV91c2VfY291bnQtLTsKK30KKworc3RhdGljIHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCB1dmNfdm1fb3BzID0geworCS5vcGVuCQk9IHV2Y192bV9vcGVuLAorCS5jbG9zZQkJPSB1dmNfdm1fY2xvc2UsCit9OworCitzdGF0aWMgaW50IHV2Y192NGwyX21tYXAoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXN0cnVjdCB2aWRlb19kZXZpY2UgKnZkZXYgPSB2aWRlb19kZXZkYXRhKGZpbGUpOworCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbyA9IHZpZGVvX2dldF9kcnZkYXRhKHZkZXYpOworCXN0cnVjdCB1dmNfYnVmZmVyICpidWZmZXI7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJdW5zaWduZWQgbG9uZyBhZGRyLCBzdGFydCwgc2l6ZTsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0ID0gMDsKKworCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FMTFMsICJ1dmNfdjRsMl9tbWFwXG4iKTsKKworCXN0YXJ0ID0gdm1hLT52bV9zdGFydDsKKwlzaXplID0gdm1hLT52bV9lbmQgLSB2bWEtPnZtX3N0YXJ0OworCisJbXV0ZXhfbG9jaygmdmlkZW8tPnF1ZXVlLm11dGV4KTsKKworCWZvciAoaSA9IDA7IGkgPCB2aWRlby0+cXVldWUuY291bnQ7ICsraSkgeworCQlidWZmZXIgPSAmdmlkZW8tPnF1ZXVlLmJ1ZmZlcltpXTsKKwkJaWYgKChidWZmZXItPmJ1Zi5tLm9mZnNldCA+PiBQQUdFX1NISUZUKSA9PSB2bWEtPnZtX3Bnb2ZmKQorCQkJYnJlYWs7CisJfQorCisJaWYgKGkgPT0gdmlkZW8tPnF1ZXVlLmNvdW50IHx8IHNpemUgIT0gdmlkZW8tPnF1ZXVlLmJ1Zl9zaXplKSB7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZG9uZTsKKwl9CisKKwkvKgorCSAqIFZNX0lPIG1hcmtzIHRoZSBhcmVhIGFzIGJlaW5nIGFuIG1tYXBlZCByZWdpb24gZm9yIEkvTyB0byBhCisJICogZGV2aWNlLiBJdCBhbHNvIHByZXZlbnRzIHRoZSByZWdpb24gZnJvbSBiZWluZyBjb3JlIGR1bXBlZC4KKwkgKi8KKwl2bWEtPnZtX2ZsYWdzIHw9IFZNX0lPOworCisJYWRkciA9ICh1bnNpZ25lZCBsb25nKXZpZGVvLT5xdWV1ZS5tZW0gKyBidWZmZXItPmJ1Zi5tLm9mZnNldDsKKwl3aGlsZSAoc2l6ZSA+IDApIHsKKwkJcGFnZSA9IHZtYWxsb2NfdG9fcGFnZSgodm9pZCAqKWFkZHIpOworCQlpZiAoKHJldCA9IHZtX2luc2VydF9wYWdlKHZtYSwgc3RhcnQsIHBhZ2UpKSA8IDApCisJCQlnb3RvIGRvbmU7CisKKwkJc3RhcnQgKz0gUEFHRV9TSVpFOworCQlhZGRyICs9IFBBR0VfU0laRTsKKwkJc2l6ZSAtPSBQQUdFX1NJWkU7CisJfQorCisJdm1hLT52bV9vcHMgPSAmdXZjX3ZtX29wczsKKwl2bWEtPnZtX3ByaXZhdGVfZGF0YSA9IGJ1ZmZlcjsKKwl1dmNfdm1fb3Blbih2bWEpOworCitkb25lOgorCW11dGV4X3VubG9jaygmdmlkZW8tPnF1ZXVlLm11dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IHV2Y192NGwyX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpCit7CisJc3RydWN0IHZpZGVvX2RldmljZSAqdmRldiA9IHZpZGVvX2RldmRhdGEoZmlsZSk7CisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvID0gdmlkZW9fZ2V0X2RydmRhdGEodmRldik7CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBTExTLCAidXZjX3Y0bDJfcG9sbFxuIik7CisKKwlyZXR1cm4gdXZjX3F1ZXVlX3BvbGwoJnZpZGVvLT5xdWV1ZSwgZmlsZSwgd2FpdCk7Cit9CisKK3N0cnVjdCBmaWxlX29wZXJhdGlvbnMgdXZjX2ZvcHMgPSB7CisJLm93bmVyCQk9IFRISVNfTU9EVUxFLAorCS5vcGVuCQk9IHV2Y192NGwyX29wZW4sCisJLnJlbGVhc2UJPSB1dmNfdjRsMl9yZWxlYXNlLAorCS5pb2N0bAkJPSB1dmNfdjRsMl9pb2N0bCwKKwkuY29tcGF0X2lvY3RsCT0gdjRsX2NvbXBhdF9pb2N0bDMyLAorCS5sbHNlZWsJCT0gbm9fbGxzZWVrLAorCS5yZWFkCQk9IHV2Y192NGwyX3JlYWQsCisJLm1tYXAJCT0gdXZjX3Y0bDJfbW1hcCwKKwkucG9sbAkJPSB1dmNfdjRsMl9wb2xsLAorfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y192aWRlby5jIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3ZpZGVvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZhZjFmYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y192aWRlby5jCkBAIC0wLDAgKzEsOTM0IEBACisvKgorICogICAgICB1dmNfdmlkZW8uYyAgLS0gIFVTQiBWaWRlbyBDbGFzcyBkcml2ZXIgLSBWaWRlbyBoYW5kbGluZworICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDgKKyAqICAgICAgICAgIExhdXJlbnQgUGluY2hhcnQgKGxhdXJlbnQucGluY2hhcnRAc2t5bmV0LmJlKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgorCisjaW5jbHVkZSA8bWVkaWEvdjRsMi1jb21tb24uaD4KKworI2luY2x1ZGUgInV2Y3ZpZGVvLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVVZDIENvbnRyb2xzCisgKi8KKworc3RhdGljIGludCBfX3V2Y19xdWVyeV9jdHJsKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsIF9fdTggcXVlcnksIF9fdTggdW5pdCwKKwkJCV9fdTggaW50Zm51bSwgX191OCBjcywgdm9pZCAqZGF0YSwgX191MTYgc2l6ZSwKKwkJCWludCB0aW1lb3V0KQoreworCV9fdTggdHlwZSA9IFVTQl9UWVBFX0NMQVNTIHwgVVNCX1JFQ0lQX0lOVEVSRkFDRTsKKwl1bnNpZ25lZCBpbnQgcGlwZTsKKwlpbnQgcmV0OworCisJcGlwZSA9IChxdWVyeSAmIDB4ODApID8gdXNiX3JjdmN0cmxwaXBlKGRldi0+dWRldiwgMCkKKwkJCSAgICAgIDogdXNiX3NuZGN0cmxwaXBlKGRldi0+dWRldiwgMCk7CisJdHlwZSB8PSAocXVlcnkgJiAweDgwKSA/IFVTQl9ESVJfSU4gOiBVU0JfRElSX09VVDsKKworCXJldCA9IHVzYl9jb250cm9sX21zZyhkZXYtPnVkZXYsIHBpcGUsIHF1ZXJ5LCB0eXBlLCBjcyA8PCA4LAorCQkJdW5pdCA8PCA4IHwgaW50Zm51bSwgZGF0YSwgc2l6ZSwgdGltZW91dCk7CisKKwlpZiAocmV0ICE9IHNpemUpIHsKKwkJdXZjX3ByaW50ayhLRVJOX0VSUiwgIkZhaWxlZCB0byBxdWVyeSAoJXUpIFVWQyBjb250cm9sICV1ICIKKwkJCSIodW5pdCAldSkgOiAlZCAoZXhwLiAldSkuXG4iLCBxdWVyeSwgY3MsIHVuaXQsIHJldCwKKwkJCXNpemUpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworaW50IHV2Y19xdWVyeV9jdHJsKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsIF9fdTggcXVlcnksIF9fdTggdW5pdCwKKwkJCV9fdTggaW50Zm51bSwgX191OCBjcywgdm9pZCAqZGF0YSwgX191MTYgc2l6ZSkKK3sKKwlyZXR1cm4gX191dmNfcXVlcnlfY3RybChkZXYsIHF1ZXJ5LCB1bml0LCBpbnRmbnVtLCBjcywgZGF0YSwgc2l6ZSwKKwkJCQlVVkNfQ1RSTF9DT05UUk9MX1RJTUVPVVQpOworfQorCitzdGF0aWMgdm9pZCB1dmNfZml4dXBfYnVmZmVyX3NpemUoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgKmN0cmwpCit7CisJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdDsKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZTsKKworCWlmIChjdHJsLT5iRm9ybWF0SW5kZXggPD0gMCB8fAorCSAgICBjdHJsLT5iRm9ybWF0SW5kZXggPiB2aWRlby0+c3RyZWFtaW5nLT5uZm9ybWF0cykKKwkJcmV0dXJuOworCisJZm9ybWF0ID0gJnZpZGVvLT5zdHJlYW1pbmctPmZvcm1hdFtjdHJsLT5iRm9ybWF0SW5kZXggLSAxXTsKKworCWlmIChjdHJsLT5iRnJhbWVJbmRleCA8PSAwIHx8CisJICAgIGN0cmwtPmJGcmFtZUluZGV4ID4gZm9ybWF0LT5uZnJhbWVzKQorCQlyZXR1cm47CisKKwlmcmFtZSA9ICZmb3JtYXQtPmZyYW1lW2N0cmwtPmJGcmFtZUluZGV4IC0gMV07CisKKwlpZiAoIShmb3JtYXQtPmZsYWdzICYgVVZDX0ZNVF9GTEFHX0NPTVBSRVNTRUQpIHx8CisJICAgICAoY3RybC0+ZHdNYXhWaWRlb0ZyYW1lU2l6ZSA9PSAwICYmCisJICAgICAgdmlkZW8tPmRldi0+dXZjX3ZlcnNpb24gPCAweDAxMTApKQorCQljdHJsLT5kd01heFZpZGVvRnJhbWVTaXplID0KKwkJCWZyYW1lLT5kd01heFZpZGVvRnJhbWVCdWZmZXJTaXplOworfQorCitzdGF0aWMgaW50IHV2Y19nZXRfdmlkZW9fY3RybChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCAqY3RybCwgaW50IHByb2JlLCBfX3U4IHF1ZXJ5KQoreworCV9fdTggZGF0YVszNF07CisJX191OCBzaXplOworCWludCByZXQ7CisKKwlzaXplID0gdmlkZW8tPmRldi0+dXZjX3ZlcnNpb24gPj0gMHgwMTEwID8gMzQgOiAyNjsKKwlyZXQgPSBfX3V2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIHF1ZXJ5LCAwLCB2aWRlby0+c3RyZWFtaW5nLT5pbnRmbnVtLAorCQlwcm9iZSA/IFZTX1BST0JFX0NPTlRST0wgOiBWU19DT01NSVRfQ09OVFJPTCwgJmRhdGEsIHNpemUsCisJCVVWQ19DVFJMX1NUUkVBTUlOR19USU1FT1VUKTsKKworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJY3RybC0+Ym1IaW50ID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmZGF0YVswXSk7CisJY3RybC0+YkZvcm1hdEluZGV4ID0gZGF0YVsyXTsKKwljdHJsLT5iRnJhbWVJbmRleCA9IGRhdGFbM107CisJY3RybC0+ZHdGcmFtZUludGVydmFsID0gbGUzMl90b19jcHVwKChfX2xlMzIgKikmZGF0YVs0XSk7CisJY3RybC0+d0tleUZyYW1lUmF0ZSA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmRhdGFbOF0pOworCWN0cmwtPndQRnJhbWVSYXRlID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmZGF0YVsxMF0pOworCWN0cmwtPndDb21wUXVhbGl0eSA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmRhdGFbMTJdKTsKKwljdHJsLT53Q29tcFdpbmRvd1NpemUgPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZkYXRhWzE0XSk7CisJY3RybC0+d0RlbGF5ID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmZGF0YVsxNl0pOworCWN0cmwtPmR3TWF4VmlkZW9GcmFtZVNpemUgPQorCQlsZTMyX3RvX2NwdShnZXRfdW5hbGlnbmVkKChfX2xlMzIgKikmZGF0YVsxOF0pKTsKKwljdHJsLT5kd01heFBheWxvYWRUcmFuc2ZlclNpemUgPQorCQlsZTMyX3RvX2NwdShnZXRfdW5hbGlnbmVkKChfX2xlMzIgKikmZGF0YVsyMl0pKTsKKworCWlmIChzaXplID09IDM0KSB7CisJCWN0cmwtPmR3Q2xvY2tGcmVxdWVuY3kgPQorCQkJbGUzMl90b19jcHUoZ2V0X3VuYWxpZ25lZCgoX19sZTMyICopJmRhdGFbMjZdKSk7CisJCWN0cmwtPmJtRnJhbWluZ0luZm8gPSBkYXRhWzMwXTsKKwkJY3RybC0+YlByZWZlcmVkVmVyc2lvbiA9IGRhdGFbMzFdOworCQljdHJsLT5iTWluVmVyc2lvbiA9IGRhdGFbMzJdOworCQljdHJsLT5iTWF4VmVyc2lvbiA9IGRhdGFbMzNdOworCX0gZWxzZSB7CisJCWN0cmwtPmR3Q2xvY2tGcmVxdWVuY3kgPSB2aWRlby0+ZGV2LT5jbG9ja19mcmVxdWVuY3k7CisJCWN0cmwtPmJtRnJhbWluZ0luZm8gPSAwOworCQljdHJsLT5iUHJlZmVyZWRWZXJzaW9uID0gMDsKKwkJY3RybC0+Yk1pblZlcnNpb24gPSAwOworCQljdHJsLT5iTWF4VmVyc2lvbiA9IDA7CisJfQorCisJLyogU29tZSBicm9rZW4gZGV2aWNlcyByZXR1cm4gYSBudWxsIG9yIHdyb25nIGR3TWF4VmlkZW9GcmFtZVNpemUuCisJICogVHJ5IHRvIGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgZm9ybWF0IGFuZCBmcmFtZSBkZXNjcmlwdG9yLgorCSAqLworCXV2Y19maXh1cF9idWZmZXJfc2l6ZSh2aWRlbywgY3RybCk7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHV2Y19zZXRfdmlkZW9fY3RybChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCAqY3RybCwgaW50IHByb2JlKQoreworCV9fdTggZGF0YVszNF07CisJX191OCBzaXplOworCisJc2l6ZSA9IHZpZGVvLT5kZXYtPnV2Y192ZXJzaW9uID49IDB4MDExMCA/IDM0IDogMjY7CisJbWVtc2V0KGRhdGEsIDAsIHNpemVvZiBkYXRhKTsKKworCSooX19sZTE2ICopJmRhdGFbMF0gPSBjcHVfdG9fbGUxNihjdHJsLT5ibUhpbnQpOworCWRhdGFbMl0gPSBjdHJsLT5iRm9ybWF0SW5kZXg7CisJZGF0YVszXSA9IGN0cmwtPmJGcmFtZUluZGV4OworCSooX19sZTMyICopJmRhdGFbNF0gPSBjcHVfdG9fbGUzMihjdHJsLT5kd0ZyYW1lSW50ZXJ2YWwpOworCSooX19sZTE2ICopJmRhdGFbOF0gPSBjcHVfdG9fbGUxNihjdHJsLT53S2V5RnJhbWVSYXRlKTsKKwkqKF9fbGUxNiAqKSZkYXRhWzEwXSA9IGNwdV90b19sZTE2KGN0cmwtPndQRnJhbWVSYXRlKTsKKwkqKF9fbGUxNiAqKSZkYXRhWzEyXSA9IGNwdV90b19sZTE2KGN0cmwtPndDb21wUXVhbGl0eSk7CisJKihfX2xlMTYgKikmZGF0YVsxNF0gPSBjcHVfdG9fbGUxNihjdHJsLT53Q29tcFdpbmRvd1NpemUpOworCSooX19sZTE2ICopJmRhdGFbMTZdID0gY3B1X3RvX2xlMTYoY3RybC0+d0RlbGF5KTsKKwkvKiBOb3RlOiBTb21lIG9mIHRoZSBmaWVsZHMgYmVsb3cgYXJlIG5vdCByZXF1aXJlZCBmb3IgSU4gZGV2aWNlcyAoc2VlCisJICogVVZDIHNwZWMsIDQuMy4xLjEpLCBidXQgd2Ugc3RpbGwgY29weSB0aGVtIGluIGNhc2Ugc3VwcG9ydCBmb3IgT1VUCisJICogZGV2aWNlcyBpcyBhZGRlZCBpbiB0aGUgZnV0dXJlLiAqLworCXB1dF91bmFsaWduZWQoY3B1X3RvX2xlMzIoY3RybC0+ZHdNYXhWaWRlb0ZyYW1lU2l6ZSksCisJCShfX2xlMzIgKikmZGF0YVsxOF0pOworCXB1dF91bmFsaWduZWQoY3B1X3RvX2xlMzIoY3RybC0+ZHdNYXhQYXlsb2FkVHJhbnNmZXJTaXplKSwKKwkJKF9fbGUzMiAqKSZkYXRhWzIyXSk7CisKKwlpZiAoc2l6ZSA9PSAzNCkgeworCQlwdXRfdW5hbGlnbmVkKGNwdV90b19sZTMyKGN0cmwtPmR3Q2xvY2tGcmVxdWVuY3kpLAorCQkJKF9fbGUzMiAqKSZkYXRhWzI2XSk7CisJCWRhdGFbMzBdID0gY3RybC0+Ym1GcmFtaW5nSW5mbzsKKwkJZGF0YVszMV0gPSBjdHJsLT5iUHJlZmVyZWRWZXJzaW9uOworCQlkYXRhWzMyXSA9IGN0cmwtPmJNaW5WZXJzaW9uOworCQlkYXRhWzMzXSA9IGN0cmwtPmJNYXhWZXJzaW9uOworCX0KKworCXJldHVybiBfX3V2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIFNFVF9DVVIsIDAsCisJCXZpZGVvLT5zdHJlYW1pbmctPmludGZudW0sCisJCXByb2JlID8gVlNfUFJPQkVfQ09OVFJPTCA6IFZTX0NPTU1JVF9DT05UUk9MLCAmZGF0YSwgc2l6ZSwKKwkJVVZDX0NUUkxfU1RSRUFNSU5HX1RJTUVPVVQpOworfQorCitpbnQgdXZjX3Byb2JlX3ZpZGVvKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sICpwcm9iZSkKK3sKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sIHByb2JlX21pbiwgcHJvYmVfbWF4OworCV9fdTE2IGJhbmR3aWR0aDsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0OworCisJbXV0ZXhfbG9jaygmdmlkZW8tPnN0cmVhbWluZy0+bXV0ZXgpOworCisJLyogUGVyZm9ybSBwcm9iaW5nLiBUaGUgZGV2aWNlIHNob3VsZCBhZGp1c3QgdGhlIHJlcXVlc3RlZCB2YWx1ZXMKKwkgKiBhY2NvcmRpbmcgdG8gaXRzIGNhcGFiaWxpdGllcy4gSG93ZXZlciwgc29tZSBkZXZpY2VzLCBuYW1lbHkgdGhlCisJICogZmlyc3QgZ2VuZXJhdGlvbiBVVkMgTG9naXRlY2ggd2ViY2FtcywgZG9uJ3QgaW1wbGVtZW50IHRoZSBWaWRlbworCSAqIFByb2JlIGNvbnRyb2wgcHJvcGVybHksIGFuZCBqdXN0IHJldHVybiB0aGUgbmVlZGVkIGJhbmR3aWR0aC4gRm9yCisJICogdGhhdCByZWFzb24sIGlmIHRoZSBuZWVkZWQgYmFuZHdpZHRoIGV4Y2VlZHMgdGhlIG1heGltdW0gYXZhaWxhYmxlCisJICogYmFuZHdpZHRoLCB0cnkgdG8gbG93ZXIgdGhlIHF1YWxpdHkuCisJICovCisJaWYgKChyZXQgPSB1dmNfc2V0X3ZpZGVvX2N0cmwodmlkZW8sIHByb2JlLCAxKSkgPCAwKQorCQlnb3RvIGRvbmU7CisKKwkvKiBHZXQgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzIGZvciBjb21wcmVzc2lvbiBzZXR0aW5ncy4gKi8KKwlpZiAoISh2aWRlby0+ZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfUFJPQkVfTUlOTUFYKSkgeworCQlyZXQgPSB1dmNfZ2V0X3ZpZGVvX2N0cmwodmlkZW8sICZwcm9iZV9taW4sIDEsIEdFVF9NSU4pOworCQlpZiAocmV0IDwgMCkKKwkJCWdvdG8gZG9uZTsKKwkJcmV0ID0gdXZjX2dldF92aWRlb19jdHJsKHZpZGVvLCAmcHJvYmVfbWF4LCAxLCBHRVRfTUFYKTsKKwkJaWYgKHJldCA8IDApCisJCQlnb3RvIGRvbmU7CisKKwkJcHJvYmUtPndDb21wUXVhbGl0eSA9IHByb2JlX21heC53Q29tcFF1YWxpdHk7CisJfQorCisJZm9yIChpID0gMDsgaSA8IDI7ICsraSkgeworCQlpZiAoKHJldCA9IHV2Y19zZXRfdmlkZW9fY3RybCh2aWRlbywgcHJvYmUsIDEpKSA8IDAgfHwKKwkJICAgIChyZXQgPSB1dmNfZ2V0X3ZpZGVvX2N0cmwodmlkZW8sIHByb2JlLCAxLCBHRVRfQ1VSKSkgPCAwKQorCQkJZ290byBkb25lOworCisJCWlmICh2aWRlby0+c3RyZWFtaW5nLT5pbnRmLT5udW1fYWx0c2V0dGluZyA9PSAxKQorCQkJYnJlYWs7CisKKwkJYmFuZHdpZHRoID0gcHJvYmUtPmR3TWF4UGF5bG9hZFRyYW5zZmVyU2l6ZTsKKwkJaWYgKGJhbmR3aWR0aCA8PSB2aWRlby0+c3RyZWFtaW5nLT5tYXhwc2l6ZSkKKwkJCWJyZWFrOworCisJCWlmICh2aWRlby0+ZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfUFJPQkVfTUlOTUFYKSB7CisJCQlyZXQgPSAtRU5PU1BDOworCQkJZ290byBkb25lOworCQl9CisKKwkJLyogVE9ETzogbmVnb3RpYXRlIGNvbXByZXNzaW9uIHBhcmFtZXRlcnMgKi8KKwkJcHJvYmUtPndLZXlGcmFtZVJhdGUgPSBwcm9iZV9taW4ud0tleUZyYW1lUmF0ZTsKKwkJcHJvYmUtPndQRnJhbWVSYXRlID0gcHJvYmVfbWluLndQRnJhbWVSYXRlOworCQlwcm9iZS0+d0NvbXBRdWFsaXR5ID0gcHJvYmVfbWF4LndDb21wUXVhbGl0eTsKKwkJcHJvYmUtPndDb21wV2luZG93U2l6ZSA9IHByb2JlX21pbi53Q29tcFdpbmRvd1NpemU7CisJfQorCitkb25lOgorCW11dGV4X3VubG9jaygmdmlkZW8tPnN0cmVhbWluZy0+bXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVmlkZW8gY29kZWNzCisgKi8KKworLyogVmFsdWVzIGZvciBibUhlYWRlckluZm8gKFZpZGVvIGFuZCBTdGlsbCBJbWFnZSBQYXlsb2FkIEhlYWRlcnMsIDIuNC4zLjMpICovCisjZGVmaW5lIFVWQ19TVFJFQU1fRU9ICSgxIDw8IDcpCisjZGVmaW5lIFVWQ19TVFJFQU1fRVJSCSgxIDw8IDYpCisjZGVmaW5lIFVWQ19TVFJFQU1fU1RJCSgxIDw8IDUpCisjZGVmaW5lIFVWQ19TVFJFQU1fUkVTCSgxIDw8IDQpCisjZGVmaW5lIFVWQ19TVFJFQU1fU0NSCSgxIDw8IDMpCisjZGVmaW5lIFVWQ19TVFJFQU1fUFRTCSgxIDw8IDIpCisjZGVmaW5lIFVWQ19TVFJFQU1fRU9GCSgxIDw8IDEpCisjZGVmaW5lIFVWQ19TVFJFQU1fRklECSgxIDw8IDApCisKKy8qIFZpZGVvIHBheWxvYWQgZGVjb2RpbmcgaXMgaGFuZGxlZCBieSB1dmNfdmlkZW9fZGVjb2RlX3N0YXJ0KCksCisgKiB1dmNfdmlkZW9fZGVjb2RlX2RhdGEoKSBhbmQgdXZjX3ZpZGVvX2RlY29kZV9lbmQoKS4KKyAqCisgKiB1dmNfdmlkZW9fZGVjb2RlX3N0YXJ0IGlzIGNhbGxlZCB3aXRoIFVSQiBkYXRhIGF0IHRoZSBzdGFydCBvZiBhIGJ1bGsgb3IKKyAqIGlzb2Nocm9ub3VzIHBheWxvYWQuIEl0IHByb2Nlc3NlcyBoZWFkZXIgZGF0YSBhbmQgcmV0dXJucyB0aGUgaGVhZGVyIHNpemUKKyAqIGluIGJ5dGVzIGlmIHN1Y2Nlc3NmdWwuIElmIGFuIGVycm9yIG9jY3VycywgaXQgcmV0dXJucyBhIG5lZ2F0aXZlIGVycm9yCisgKiBjb2RlLiBUaGUgZm9sbG93aW5nIGVycm9yIGNvZGVzIGhhdmUgc3BlY2lhbCBtZWFuaW5ncy4KKyAqCisgKiAtIEVBR0FJTiBpbmZvcm1zIHRoZSBjYWxsZXIgdGhhdCB0aGUgY3VycmVudCB2aWRlbyBidWZmZXIgc2hvdWxkIGJlIG1hcmtlZAorICogICBhcyBkb25lLCBhbmQgdGhhdCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBhZ2FpbiB3aXRoIHRoZSBzYW1lIGRhdGEKKyAqICAgYW5kIGEgbmV3IHZpZGVvIGJ1ZmZlci4gVGhpcyBpcyB1c2VkIHdoZW4gZW5kIG9mIGZyYW1lIGNvbmRpdGlvbnMgY2FuIGJlCisgKiAgIHJlbGlhYmx5IGRldGVjdGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZnJhbWUgb25seS4KKyAqCisgKiBJZiBhbiBlcnJvciBvdGhlciB0aGFuIC1FQUdBSU4gaXMgcmV0dXJuZWQsIHRoZSBjYWxsZXIgd2lsbCBkcm9wIHRoZSBjdXJyZW50CisgKiBwYXlsb2FkLiBObyBjYWxsIHRvIHV2Y192aWRlb19kZWNvZGVfZGF0YSBhbmQgdXZjX3ZpZGVvX2RlY29kZV9lbmQgd2lsbCBiZQorICogbWFkZSB1bnRpbCB0aGUgbmV4dCBwYXlsb2FkLiAtRU5PREFUQSBjYW4gYmUgdXNlZCB0byBkcm9wIHRoZSBjdXJyZW50CisgKiBwYXlsb2FkIGlmIG5vIG90aGVyIGVycm9yIGNvZGUgaXMgYXBwcm9wcmlhdGUuCisgKgorICogdXZjX3ZpZGVvX2RlY29kZV9kYXRhIGlzIGNhbGxlZCBmb3IgZXZlcnkgVVJCIHdpdGggVVJCIGRhdGEuIEl0IGNvcGllcyB0aGUKKyAqIGRhdGEgdG8gdGhlIHZpZGVvIGJ1ZmZlci4KKyAqCisgKiB1dmNfdmlkZW9fZGVjb2RlX2VuZCBpcyBjYWxsZWQgd2l0aCBoZWFkZXIgZGF0YSBhdCB0aGUgZW5kIG9mIGEgYnVsayBvcgorICogaXNvY2hyb25vdXMgcGF5bG9hZC4gSXQgcGVyZm9ybXMgYW55IGFkZGl0aW9uYWwgaGVhZGVyIGRhdGEgcHJvY2Vzc2luZyBhbmQKKyAqIHJldHVybnMgMCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgaWYgYW4gZXJyb3Igb2NjdXJlZC4gQXMgaGVhZGVyIGRhdGEgaGF2ZQorICogYWxyZWFkeSBiZWVuIHByb2Nlc3NlZCBieSB1dmNfdmlkZW9fZGVjb2RlX3N0YXJ0LCB0aGlzIGZ1bmN0aW9ucyBpc24ndAorICogcmVxdWlyZWQgdG8gcGVyZm9ybSBzYW5pdHkgY2hlY2tzIGEgc2Vjb25kIHRpbWUuCisgKgorICogRm9yIGlzb2Nocm9ub3VzIHRyYW5zZmVycyB3aGVyZSBhIHBheWxvYWQgaXMgYWx3YXlzIHRyYW5zZmVyZWQgaW4gYSBzaW5nbGUKKyAqIFVSQiwgdGhlIHRocmVlIGZ1bmN0aW9ucyB3aWxsIGJlIGNhbGxlZCBpbiBhIHJvdy4KKyAqCisgKiBUbyBsZXQgdGhlIGRlY29kZXIgcHJvY2VzcyBoZWFkZXIgZGF0YSBhbmQgdXBkYXRlIGl0cyBpbnRlcm5hbCBzdGF0ZSBldmVuCisgKiB3aGVuIG5vIHZpZGVvIGJ1ZmZlciBpcyBhdmFpbGFibGUsIHV2Y192aWRlb19kZWNvZGVfc3RhcnQgbXVzdCBiZSBwcmVwYXJlZAorICogdG8gYmUgY2FsbGVkIHdpdGggYSBOVUxMIGJ1ZiBwYXJhbWV0ZXIuIHV2Y192aWRlb19kZWNvZGVfZGF0YSBhbmQKKyAqIHV2Y192aWRlb19kZWNvZGVfZW5kIHdpbGwgbmV2ZXIgYmUgY2FsbGVkIHdpdGggYSBOVUxMIGJ1ZmZlci4KKyAqLworc3RhdGljIGludCB1dmNfdmlkZW9fZGVjb2RlX3N0YXJ0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZiwgY29uc3QgX191OCAqZGF0YSwgaW50IGxlbikKK3sKKwlfX3U4IGZpZDsKKworCS8qIFNhbml0eSBjaGVja3M6CisJICogLSBwYWNrZXQgbXVzdCBiZSBhdCBsZWFzdCAyIGJ5dGVzIGxvbmcKKwkgKiAtIGJIZWFkZXJMZW5ndGggdmFsdWUgbXVzdCBiZSBhdCBsZWFzdCAyIGJ5dGVzIChzZWUgYWJvdmUpCisJICogLSBiSGVhZGVyTGVuZ3RoIHZhbHVlIGNhbid0IGJlIGxhcmdlciB0aGFuIHRoZSBwYWNrZXQgc2l6ZS4KKwkgKi8KKwlpZiAobGVuIDwgMiB8fCBkYXRhWzBdIDwgMiB8fCBkYXRhWzBdID4gbGVuKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIFNraXAgcGF5bG9hZHMgbWFya2VkIHdpdGggdGhlIGVycm9yIGJpdCAoImVycm9yIGZyYW1lcyIpLiAqLworCWlmIChkYXRhWzFdICYgVVZDX1NUUkVBTV9FUlIpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIkRyb3BwaW5nIHBheWxvYWQgKGVycm9yIGJpdCAiCisJCQkgICJzZXQpLlxuIik7CisJCXJldHVybiAtRU5PREFUQTsKKwl9CisKKwlmaWQgPSBkYXRhWzFdICYgVVZDX1NUUkVBTV9GSUQ7CisKKwkvKiBTdG9yZSB0aGUgcGF5bG9hZCBGSUQgYml0IGFuZCByZXR1cm4gaW1tZWRpYXRlbHkgd2hlbiB0aGUgYnVmZmVyIGlzCisJICogTlVMTC4KKwkgKi8KKwlpZiAoYnVmID09IE5VTEwpIHsKKwkJdmlkZW8tPmxhc3RfZmlkID0gZmlkOworCQlyZXR1cm4gLUVOT0RBVEE7CisJfQorCisJLyogU3luY2hyb25pemUgdG8gdGhlIGlucHV0IHN0cmVhbSBieSB3YWl0aW5nIGZvciB0aGUgRklEIGJpdCB0byBiZQorCSAqIHRvZ2dsZWQgd2hlbiB0aGUgdGhlIGJ1ZmZlciBzdGF0ZSBpcyBub3QgVVZDX0JVRl9TVEFURV9BQ1RJVkUuCisJICogcXVldWUtPmxhc3RfZmlkIGlzIGluaXRpYWxpemVkIHRvIC0xLCBzbyB0aGUgZmlyc3QgaXNvY2hyb25vdXMKKwkgKiBmcmFtZSB3aWxsIGFsd2F5cyBiZSBpbiBzeW5jLgorCSAqCisJICogSWYgdGhlIGRldmljZSBkb2Vzbid0IHRvZ2dsZSB0aGUgRklEIGJpdCwgaW52ZXJ0IHZpZGVvLT5sYXN0X2ZpZAorCSAqIHdoZW4gdGhlIEVPRiBiaXQgaXMgc2V0IHRvIGZvcmNlIHN5bmNocm9uaXNhdGlvbiBvbiB0aGUgbmV4dCBwYWNrZXQuCisJICovCisJaWYgKGJ1Zi0+c3RhdGUgIT0gVVZDX0JVRl9TVEFURV9BQ1RJVkUpIHsKKwkJaWYgKGZpZCA9PSB2aWRlby0+bGFzdF9maWQpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJEcm9wcGluZyBwYXlsb2FkIChvdXQgb2YgIgorCQkJCSJzeW5jKS5cbiIpOworCQkJaWYgKCh2aWRlby0+ZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfU1RSRUFNX05PX0ZJRCkgJiYKKwkJCSAgICAoZGF0YVsxXSAmIFVWQ19TVFJFQU1fRU9GKSkKKwkJCQl2aWRlby0+bGFzdF9maWQgXj0gVVZDX1NUUkVBTV9GSUQ7CisJCQlyZXR1cm4gLUVOT0RBVEE7CisJCX0KKworCQkvKiBUT0RPOiBIYW5kbGUgUFRTIGFuZCBTQ1IuICovCisJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX0FDVElWRTsKKwl9CisKKwkvKiBNYXJrIHRoZSBidWZmZXIgYXMgZG9uZSBpZiB3ZSdyZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbmV3IGZyYW1lLgorCSAqIEVuZCBvZiBmcmFtZSBkZXRlY3Rpb24gaXMgYmV0dGVyIGltcGxlbWVudGVkIGJ5IGNoZWNraW5nIHRoZSBFT0YKKwkgKiBiaXQgKEZJRCBiaXQgdG9nZ2xpbmcgaXMgZGVsYXllZCBieSBvbmUgZnJhbWUgY29tcGFyZWQgdG8gdGhlIEVPRgorCSAqIGJpdCksIGJ1dCBzb21lIGRldmljZXMgZG9uJ3Qgc2V0IHRoZSBiaXQgYXQgZW5kIG9mIGZyYW1lIChhbmQgdGhlCisJICogbGFzdCBwYXlsb2FkIGNhbiBiZSBsb3N0IGFueXdheSkuIFdlIHRodXMgbXVzdCBjaGVjayBpZiB0aGUgRklEIGhhcworCSAqIGJlZW4gdG9nZ2xlZC4KKwkgKgorCSAqIHF1ZXVlLT5sYXN0X2ZpZCBpcyBpbml0aWFsaXplZCB0byAtMSwgc28gdGhlIGZpcnN0IGlzb2Nocm9ub3VzCisJICogZnJhbWUgd2lsbCBuZXZlciB0cmlnZ2VyIGFuIGVuZCBvZiBmcmFtZSBkZXRlY3Rpb24uCisJICoKKwkgKiBFbXB0eSBidWZmZXJzIChieXRlc3VzZWQgPT0gMCkgZG9uJ3QgdHJpZ2dlciBlbmQgb2YgZnJhbWUgZGV0ZWN0aW9uCisJICogYXMgaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHJldHVybiBhbiBlbXB0eSBidWZmZXIuIFRoaXMgYWxzbworCSAqIGF2b2lkcyBkZXRlY3RpbmcgYW5kIG9mIGZyYW1lIGNvbmRpdGlvbnMgYXQgRklEIHRvZ2dsaW5nIGlmIHRoZQorCSAqIHByZXZpb3VzIHBheWxvYWQgaGFkIHRoZSBFT0YgYml0IHNldC4KKwkgKi8KKwlpZiAoZmlkICE9IHZpZGVvLT5sYXN0X2ZpZCAmJiBidWYtPmJ1Zi5ieXRlc3VzZWQgIT0gMCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiRnJhbWUgY29tcGxldGUgKEZJRCBiaXQgIgorCQkJCSJ0b2dnbGVkKS5cbiIpOworCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9ET05FOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisKKwl2aWRlby0+bGFzdF9maWQgPSBmaWQ7CisKKwlyZXR1cm4gZGF0YVswXTsKK30KKworc3RhdGljIHZvaWQgdXZjX3ZpZGVvX2RlY29kZV9kYXRhKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZiwgY29uc3QgX191OCAqZGF0YSwgaW50IGxlbikKK3sKKwlzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSA9ICZ2aWRlby0+cXVldWU7CisJdW5zaWduZWQgaW50IG1heGxlbiwgbmJ5dGVzOworCXZvaWQgKm1lbTsKKworCWlmIChsZW4gPD0gMCkKKwkJcmV0dXJuOworCisJLyogQ29weSB0aGUgdmlkZW8gZGF0YSB0byB0aGUgYnVmZmVyLiAqLworCW1heGxlbiA9IGJ1Zi0+YnVmLmxlbmd0aCAtIGJ1Zi0+YnVmLmJ5dGVzdXNlZDsKKwltZW0gPSBxdWV1ZS0+bWVtICsgYnVmLT5idWYubS5vZmZzZXQgKyBidWYtPmJ1Zi5ieXRlc3VzZWQ7CisJbmJ5dGVzID0gbWluKCh1bnNpZ25lZCBpbnQpbGVuLCBtYXhsZW4pOworCW1lbWNweShtZW0sIGRhdGEsIG5ieXRlcyk7CisJYnVmLT5idWYuYnl0ZXN1c2VkICs9IG5ieXRlczsKKworCS8qIENvbXBsZXRlIHRoZSBjdXJyZW50IGZyYW1lIGlmIHRoZSBidWZmZXIgc2l6ZSB3YXMgZXhjZWVkZWQuICovCisJaWYgKGxlbiA+IG1heGxlbikgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiRnJhbWUgY29tcGxldGUgKG92ZXJmbG93KS5cbiIpOworCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9ET05FOworCX0KK30KKworc3RhdGljIHZvaWQgdXZjX3ZpZGVvX2RlY29kZV9lbmQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmLCBjb25zdCBfX3U4ICpkYXRhLCBpbnQgbGVuKQoreworCS8qIE1hcmsgdGhlIGJ1ZmZlciBhcyBkb25lIGlmIHRoZSBFT0YgbWFya2VyIGlzIHNldC4gKi8KKwlpZiAoZGF0YVsxXSAmIFVWQ19TVFJFQU1fRU9GICYmIGJ1Zi0+YnVmLmJ5dGVzdXNlZCAhPSAwKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJGcmFtZSBjb21wbGV0ZSAoRU9GIGZvdW5kKS5cbiIpOworCQlpZiAoZGF0YVswXSA9PSBsZW4pCisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiRU9GIGluIGVtcHR5IHBheWxvYWQuXG4iKTsKKwkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfRE9ORTsKKwkJaWYgKHZpZGVvLT5kZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19TVFJFQU1fTk9fRklEKQorCQkJdmlkZW8tPmxhc3RfZmlkIF49IFVWQ19TVFJFQU1fRklEOworCX0KK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVUkIgaGFuZGxpbmcKKyAqLworCisvKgorICogQ29tcGxldGlvbiBoYW5kbGVyIGZvciB2aWRlbyBVUkJzLgorICovCitzdGF0aWMgdm9pZCB1dmNfdmlkZW9fZGVjb2RlX2lzb2Moc3RydWN0IHVyYiAqdXJiLAorCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywgc3RydWN0IHV2Y19idWZmZXIgKmJ1ZikKK3sKKwl1OCAqbWVtOworCWludCByZXQsIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdXJiLT5udW1iZXJfb2ZfcGFja2V0czsgKytpKSB7CisJCWlmICh1cmItPmlzb19mcmFtZV9kZXNjW2ldLnN0YXR1cyA8IDApIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJVU0IgaXNvY2hyb25vdXMgZnJhbWUgIgorCQkJCSJsb3N0ICglZCkuXG4iLCB1cmItPmlzb19mcmFtZV9kZXNjW2ldLnN0YXR1cyk7CisJCQljb250aW51ZTsKKwkJfQorCisJCS8qIERlY29kZSB0aGUgcGF5bG9hZCBoZWFkZXIuICovCisJCW1lbSA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyICsgdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5vZmZzZXQ7CisJCWRvIHsKKwkJCXJldCA9IHV2Y192aWRlb19kZWNvZGVfc3RhcnQodmlkZW8sIGJ1ZiwgbWVtLAorCQkJCXVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0uYWN0dWFsX2xlbmd0aCk7CisJCQlpZiAocmV0ID09IC1FQUdBSU4pCisJCQkJYnVmID0gdXZjX3F1ZXVlX25leHRfYnVmZmVyKCZ2aWRlby0+cXVldWUsIGJ1Zik7CisJCX0gd2hpbGUgKHJldCA9PSAtRUFHQUlOKTsKKworCQlpZiAocmV0IDwgMCkKKwkJCWNvbnRpbnVlOworCisJCS8qIERlY29kZSB0aGUgcGF5bG9hZCBkYXRhLiAqLworCQl1dmNfdmlkZW9fZGVjb2RlX2RhdGEodmlkZW8sIGJ1ZiwgbWVtICsgcmV0LAorCQkJdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5hY3R1YWxfbGVuZ3RoIC0gcmV0KTsKKworCQkvKiBQcm9jZXNzIHRoZSBoZWFkZXIgYWdhaW4uICovCisJCXV2Y192aWRlb19kZWNvZGVfZW5kKHZpZGVvLCBidWYsIG1lbSwgcmV0KTsKKworCQlpZiAoYnVmLT5zdGF0ZSA9PSBVVkNfQlVGX1NUQVRFX0RPTkUgfHwKKwkJICAgIGJ1Zi0+c3RhdGUgPT0gVVZDX0JVRl9TVEFURV9FUlJPUikKKwkJCWJ1ZiA9IHV2Y19xdWV1ZV9uZXh0X2J1ZmZlcigmdmlkZW8tPnF1ZXVlLCBidWYpOworCX0KK30KKworc3RhdGljIHZvaWQgdXZjX3ZpZGVvX2RlY29kZV9idWxrKHN0cnVjdCB1cmIgKnVyYiwKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sIHN0cnVjdCB1dmNfYnVmZmVyICpidWYpCit7CisJdTggKm1lbTsKKwlpbnQgbGVuLCByZXQ7CisKKwltZW0gPSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKKwlsZW4gPSB1cmItPmFjdHVhbF9sZW5ndGg7CisJdmlkZW8tPmJ1bGsucGF5bG9hZF9zaXplICs9IGxlbjsKKworCS8qIElmIHRoZSBVUkIgaXMgdGhlIGZpcnN0IG9mIGl0cyBwYXlsb2FkLCBkZWNvZGUgYW5kIHNhdmUgdGhlCisJICogaGVhZGVyLgorCSAqLworCWlmICh2aWRlby0+YnVsay5oZWFkZXJfc2l6ZSA9PSAwKSB7CisJCWRvIHsKKwkJCXJldCA9IHV2Y192aWRlb19kZWNvZGVfc3RhcnQodmlkZW8sIGJ1ZiwgbWVtLCBsZW4pOworCQkJaWYgKHJldCA9PSAtRUFHQUlOKQorCQkJCWJ1ZiA9IHV2Y19xdWV1ZV9uZXh0X2J1ZmZlcigmdmlkZW8tPnF1ZXVlLCBidWYpOworCQl9IHdoaWxlIChyZXQgPT0gLUVBR0FJTik7CisKKwkJLyogSWYgYW4gZXJyb3Igb2NjdXJlZCBza2lwIHRoZSByZXN0IG9mIHRoZSBwYXlsb2FkLiAqLworCQlpZiAocmV0IDwgMCB8fCBidWYgPT0gTlVMTCkgeworCQkJdmlkZW8tPmJ1bGsuc2tpcF9wYXlsb2FkID0gMTsKKwkJCXJldHVybjsKKwkJfQorCisJCXZpZGVvLT5idWxrLmhlYWRlcl9zaXplID0gcmV0OworCQltZW1jcHkodmlkZW8tPmJ1bGsuaGVhZGVyLCBtZW0sIHZpZGVvLT5idWxrLmhlYWRlcl9zaXplKTsKKworCQltZW0gKz0gcmV0OworCQlsZW4gLT0gcmV0OworCX0KKworCS8qIFRoZSBidWZmZXIgcXVldWUgbWlnaHQgaGF2ZSBiZWVuIGNhbmNlbGxlZCB3aGlsZSBhIGJ1bGsgdHJhbnNmZXIKKwkgKiB3YXMgaW4gcHJvZ3Jlc3MsIHNvIHdlIGNhbiByZWFjaCBoZXJlIHdpdGggYnVmIGVxdWFsIHRvIE5VTEwuIE1ha2UKKwkgKiBzdXJlIGJ1ZiBpcyBuZXZlciBkZXJlZmVyZW5jZWQgaWYgTlVMTC4KKwkgKi8KKworCS8qIFByb2Nlc3MgdmlkZW8gZGF0YS4gKi8KKwlpZiAoIXZpZGVvLT5idWxrLnNraXBfcGF5bG9hZCAmJiBidWYgIT0gTlVMTCkKKwkJdXZjX3ZpZGVvX2RlY29kZV9kYXRhKHZpZGVvLCBidWYsIG1lbSwgbGVuKTsKKworCS8qIERldGVjdCB0aGUgcGF5bG9hZCBlbmQgYnkgYSBVUkIgc21hbGxlciB0aGFuIHRoZSBtYXhpbXVtIHNpemUgKG9yCisJICogYSBwYXlsb2FkIHNpemUgZXF1YWwgdG8gdGhlIG1heGltdW0pIGFuZCBwcm9jZXNzIHRoZSBoZWFkZXIgYWdhaW4uCisJICovCisJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCA8IHVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCB8fAorCSAgICB2aWRlby0+YnVsay5wYXlsb2FkX3NpemUgPj0gdmlkZW8tPmJ1bGsubWF4X3BheWxvYWRfc2l6ZSkgeworCQlpZiAoIXZpZGVvLT5idWxrLnNraXBfcGF5bG9hZCAmJiBidWYgIT0gTlVMTCkgeworCQkJdXZjX3ZpZGVvX2RlY29kZV9lbmQodmlkZW8sIGJ1ZiwgdmlkZW8tPmJ1bGsuaGVhZGVyLAorCQkJCXZpZGVvLT5idWxrLmhlYWRlcl9zaXplKTsKKwkJCWlmIChidWYtPnN0YXRlID09IFVWQ19CVUZfU1RBVEVfRE9ORSB8fAorCQkJICAgIGJ1Zi0+c3RhdGUgPT0gVVZDX0JVRl9TVEFURV9FUlJPUikKKwkJCQlidWYgPSB1dmNfcXVldWVfbmV4dF9idWZmZXIoJnZpZGVvLT5xdWV1ZSwgYnVmKTsKKwkJfQorCisJCXZpZGVvLT5idWxrLmhlYWRlcl9zaXplID0gMDsKKwkJdmlkZW8tPmJ1bGsuc2tpcF9wYXlsb2FkID0gMDsKKwkJdmlkZW8tPmJ1bGsucGF5bG9hZF9zaXplID0gMDsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHV2Y192aWRlb19jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpCit7CisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvID0gdXJiLT5jb250ZXh0OworCXN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlID0gJnZpZGVvLT5xdWV1ZTsKKwlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmID0gTlVMTDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisKKwlzd2l0Y2ggKHVyYi0+c3RhdHVzKSB7CisJY2FzZSAwOgorCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXV2Y19wcmludGsoS0VSTl9XQVJOSU5HLCAiTm9uLXplcm8gc3RhdHVzICglZCkgaW4gdmlkZW8gIgorCQkJImNvbXBsZXRpb24gaGFuZGxlci5cbiIsIHVyYi0+c3RhdHVzKTsKKworCWNhc2UgLUVOT0VOVDoJCS8qIHVzYl9raWxsX3VyYigpIGNhbGxlZC4gKi8KKwkJaWYgKHZpZGVvLT5mcm96ZW4pCisJCQlyZXR1cm47CisKKwljYXNlIC1FQ09OTlJFU0VUOgkvKiB1c2JfdW5saW5rX3VyYigpIGNhbGxlZC4gKi8KKwljYXNlIC1FU0hVVERPV046CS8qIFRoZSBlbmRwb2ludCBpcyBiZWluZyBkaXNhYmxlZC4gKi8KKwkJdXZjX3F1ZXVlX2NhbmNlbChxdWV1ZSwgdXJiLT5zdGF0dXMgPT0gLUVTSFVURE9XTik7CisJCXJldHVybjsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcXVldWUtPmlycWxvY2ssIGZsYWdzKTsKKwlpZiAoIWxpc3RfZW1wdHkoJnF1ZXVlLT5pcnFxdWV1ZSkpCisJCWJ1ZiA9IGxpc3RfZmlyc3RfZW50cnkoJnF1ZXVlLT5pcnFxdWV1ZSwgc3RydWN0IHV2Y19idWZmZXIsCisJCQkJICAgICAgIHF1ZXVlKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWV1ZS0+aXJxbG9jaywgZmxhZ3MpOworCisJdmlkZW8tPmRlY29kZSh1cmIsIHZpZGVvLCBidWYpOworCisJaWYgKChyZXQgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9BVE9NSUMpKSA8IDApIHsKKwkJdXZjX3ByaW50ayhLRVJOX0VSUiwgIkZhaWxlZCB0byByZXN1Ym1pdCB2aWRlbyBVUkIgKCVkKS5cbiIsCisJCQlyZXQpOworCX0KK30KKworLyoKKyAqIFVuaW5pdGlhbGl6ZSBpc29jaHJvbm91cy9idWxrIFVSQnMgYW5kIGZyZWUgdHJhbnNmZXIgYnVmZmVycy4KKyAqLworc3RhdGljIHZvaWQgdXZjX3VuaW5pdF92aWRlbyhzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pCit7CisJc3RydWN0IHVyYiAqdXJiOworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IFVWQ19VUkJTOyArK2kpIHsKKwkJaWYgKCh1cmIgPSB2aWRlby0+dXJiW2ldKSA9PSBOVUxMKQorCQkJY29udGludWU7CisKKwkJdXNiX2tpbGxfdXJiKHVyYik7CisJCS8qIHVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCBpcyBub3QgdG91Y2hlZCBieSBVU0IgY29yZSwgc28KKwkJICogd2UgY2FuIHVzZSBpdCBoZXJlIGFzIHRoZSBidWZmZXIgbGVuZ3RoLgorCQkgKi8KKwkJaWYgKHZpZGVvLT51cmJfYnVmZmVyW2ldKSB7CisJCQl1c2JfYnVmZmVyX2ZyZWUodmlkZW8tPmRldi0+dWRldiwKKwkJCQl1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgsCisJCQkJdmlkZW8tPnVyYl9idWZmZXJbaV0sIHVyYi0+dHJhbnNmZXJfZG1hKTsKKwkJCXZpZGVvLT51cmJfYnVmZmVyW2ldID0gTlVMTDsKKwkJfQorCisJCXVzYl9mcmVlX3VyYih1cmIpOworCQl2aWRlby0+dXJiW2ldID0gTlVMTDsKKwl9Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGlzb2Nocm9ub3VzIFVSQnMgYW5kIGFsbG9jYXRlIHRyYW5zZmVyIGJ1ZmZlcnMuIFRoZSBwYWNrZXQgc2l6ZQorICogaXMgZ2l2ZW4gYnkgdGhlIGVuZHBvaW50LgorICovCitzdGF0aWMgaW50IHV2Y19pbml0X3ZpZGVvX2lzb2Moc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqZXApCit7CisJc3RydWN0IHVyYiAqdXJiOworCXVuc2lnbmVkIGludCBucGFja2V0cywgaSwgajsKKwlfX3UxNiBwc2l6ZTsKKwlfX3UzMiBzaXplOworCisJLyogQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIGlzb2Nocm9ub3VzIHBhY2tldHMgdG8gYWxsb2NhdGUgYnkgZGl2aWRpbmcKKwkgKiB0aGUgbWF4aW11bSB2aWRlbyBmcmFtZSBzaXplIGJ5IHRoZSBwYWNrZXQgc2l6ZS4gTGltaXQgdGhlIHJlc3VsdAorCSAqIHRvIFVWQ19NQVhfSVNPX1BBQ0tFVFMuCisJICovCisJcHNpemUgPSBsZTE2X3RvX2NwdShlcC0+ZGVzYy53TWF4UGFja2V0U2l6ZSk7CisJcHNpemUgPSAocHNpemUgJiAweDA3ZmYpICogKDEgKyAoKHBzaXplID4+IDExKSAmIDMpKTsKKworCXNpemUgPSB2aWRlby0+c3RyZWFtaW5nLT5jdHJsLmR3TWF4VmlkZW9GcmFtZVNpemU7CisJaWYgKHNpemUgPiBVVkNfTUFYX0ZSQU1FX1NJWkUpCisJCXJldHVybiAtRUlOVkFMOworCisJbnBhY2tldHMgPSAoc2l6ZSArIHBzaXplIC0gMSkgLyBwc2l6ZTsKKwlpZiAobnBhY2tldHMgPiBVVkNfTUFYX0lTT19QQUNLRVRTKQorCQlucGFja2V0cyA9IFVWQ19NQVhfSVNPX1BBQ0tFVFM7CisKKwlzaXplID0gbnBhY2tldHMgKiBwc2l6ZTsKKworCWZvciAoaSA9IDA7IGkgPCBVVkNfVVJCUzsgKytpKSB7CisJCXVyYiA9IHVzYl9hbGxvY191cmIobnBhY2tldHMsIEdGUF9LRVJORUwpOworCQlpZiAodXJiID09IE5VTEwpIHsKKwkJCXV2Y191bmluaXRfdmlkZW8odmlkZW8pOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKworCQl2aWRlby0+dXJiX2J1ZmZlcltpXSA9IHVzYl9idWZmZXJfYWxsb2ModmlkZW8tPmRldi0+dWRldiwKKwkJCXNpemUsIEdGUF9LRVJORUwsICZ1cmItPnRyYW5zZmVyX2RtYSk7CisJCWlmICh2aWRlby0+dXJiX2J1ZmZlcltpXSA9PSBOVUxMKSB7CisJCQl1c2JfZnJlZV91cmIodXJiKTsKKwkJCXV2Y191bmluaXRfdmlkZW8odmlkZW8pOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKworCQl1cmItPmRldiA9IHZpZGVvLT5kZXYtPnVkZXY7CisJCXVyYi0+Y29udGV4dCA9IHZpZGVvOworCQl1cmItPnBpcGUgPSB1c2JfcmN2aXNvY3BpcGUodmlkZW8tPmRldi0+dWRldiwKKwkJCQllcC0+ZGVzYy5iRW5kcG9pbnRBZGRyZXNzKTsKKwkJdXJiLT50cmFuc2Zlcl9mbGFncyA9IFVSQl9JU09fQVNBUCB8IFVSQl9OT19UUkFOU0ZFUl9ETUFfTUFQOworCQl1cmItPmludGVydmFsID0gZXAtPmRlc2MuYkludGVydmFsOworCQl1cmItPnRyYW5zZmVyX2J1ZmZlciA9IHZpZGVvLT51cmJfYnVmZmVyW2ldOworCQl1cmItPmNvbXBsZXRlID0gdXZjX3ZpZGVvX2NvbXBsZXRlOworCQl1cmItPm51bWJlcl9vZl9wYWNrZXRzID0gbnBhY2tldHM7CisJCXVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCA9IHNpemU7CisKKwkJZm9yIChqID0gMDsgaiA8IG5wYWNrZXRzOyArK2opIHsKKwkJCXVyYi0+aXNvX2ZyYW1lX2Rlc2Nbal0ub2Zmc2V0ID0gaiAqIHBzaXplOworCQkJdXJiLT5pc29fZnJhbWVfZGVzY1tqXS5sZW5ndGggPSBwc2l6ZTsKKwkJfQorCisJCXZpZGVvLT51cmJbaV0gPSB1cmI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGJ1bGsgVVJCcyBhbmQgYWxsb2NhdGUgdHJhbnNmZXIgYnVmZmVycy4gVGhlIHBhY2tldCBzaXplIGlzCisgKiBnaXZlbiBieSB0aGUgZW5kcG9pbnQuCisgKi8KK3N0YXRpYyBpbnQgdXZjX2luaXRfdmlkZW9fYnVsayhzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICplcCkKK3sKKwlzdHJ1Y3QgdXJiICp1cmI7CisJdW5zaWduZWQgaW50IHBpcGUsIGk7CisJX191MTYgcHNpemU7CisJX191MzIgc2l6ZTsKKworCS8qIENvbXB1dGUgdGhlIGJ1bGsgVVJCIHNpemUuIFNvbWUgZGV2aWNlcyBzZXQgdGhlIG1heGltdW0gcGF5bG9hZAorCSAqIHNpemUgdG8gYSB2YWx1ZSB0b28gaGlnaCBmb3IgbWVtb3J5LWNvbnN0cmFpbmVkIGRldmljZXMuIFdlIG11c3QKKwkgKiB0aGVuIHRyYW5zZmVyIHRoZSBwYXlsb2FkIGFjY3Jvc3MgbXVsdGlwbGUgVVJCcy4gVG8gYmUgY29uc2lzdGFudAorCSAqIHdpdGggaXNvY2hyb25vdXMgbW9kZSwgYWxsb2NhdGUgbWF4aW11bSBVVkNfTUFYX0lTT19QQUNLRVRTIHBlciBidWxrCisJICogVVJCLgorCSAqLworCXBzaXplID0gbGUxNl90b19jcHUoZXAtPmRlc2Mud01heFBhY2tldFNpemUpICYgMHgwN2ZmOworCXNpemUgPSB2aWRlby0+c3RyZWFtaW5nLT5jdHJsLmR3TWF4UGF5bG9hZFRyYW5zZmVyU2l6ZTsKKwl2aWRlby0+YnVsay5tYXhfcGF5bG9hZF9zaXplID0gc2l6ZTsKKwlpZiAoc2l6ZSA+IHBzaXplICogVVZDX01BWF9JU09fUEFDS0VUUykKKwkJc2l6ZSA9IHBzaXplICogVVZDX01BWF9JU09fUEFDS0VUUzsKKworCXBpcGUgPSB1c2JfcmN2YnVsa3BpcGUodmlkZW8tPmRldi0+dWRldiwgZXAtPmRlc2MuYkVuZHBvaW50QWRkcmVzcyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgVVZDX1VSQlM7ICsraSkgeworCQl1cmIgPSB1c2JfYWxsb2NfdXJiKDAsIEdGUF9LRVJORUwpOworCQlpZiAodXJiID09IE5VTEwpIHsKKwkJCXV2Y191bmluaXRfdmlkZW8odmlkZW8pOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKworCQl2aWRlby0+dXJiX2J1ZmZlcltpXSA9IHVzYl9idWZmZXJfYWxsb2ModmlkZW8tPmRldi0+dWRldiwKKwkJCXNpemUsIEdGUF9LRVJORUwsICZ1cmItPnRyYW5zZmVyX2RtYSk7CisJCWlmICh2aWRlby0+dXJiX2J1ZmZlcltpXSA9PSBOVUxMKSB7CisJCQl1c2JfZnJlZV91cmIodXJiKTsKKwkJCXV2Y191bmluaXRfdmlkZW8odmlkZW8pOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKworCQl1c2JfZmlsbF9idWxrX3VyYih1cmIsIHZpZGVvLT5kZXYtPnVkZXYsIHBpcGUsCisJCQl2aWRlby0+dXJiX2J1ZmZlcltpXSwgc2l6ZSwgdXZjX3ZpZGVvX2NvbXBsZXRlLAorCQkJdmlkZW8pOworCQl1cmItPnRyYW5zZmVyX2ZsYWdzID0gVVJCX05PX1RSQU5TRkVSX0RNQV9NQVA7CisKKwkJdmlkZW8tPnVyYltpXSA9IHVyYjsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEluaXRpYWxpemUgaXNvY2hyb25vdXMvYnVsayBVUkJzIGFuZCBhbGxvY2F0ZSB0cmFuc2ZlciBidWZmZXJzLgorICovCitzdGF0aWMgaW50IHV2Y19pbml0X3ZpZGVvKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbykKK3sKKwlzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiA9IHZpZGVvLT5zdHJlYW1pbmctPmludGY7CisJc3RydWN0IHVzYl9ob3N0X2ludGVyZmFjZSAqYWx0czsKKwlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmVwID0gTlVMTDsKKwlpbnQgaW50Zm51bSA9IHZpZGVvLT5zdHJlYW1pbmctPmludGZudW07CisJdW5zaWduZWQgaW50IGJhbmR3aWR0aCwgcHNpemUsIGk7CisJaW50IHJldDsKKworCXZpZGVvLT5sYXN0X2ZpZCA9IC0xOworCXZpZGVvLT5idWxrLmhlYWRlcl9zaXplID0gMDsKKwl2aWRlby0+YnVsay5za2lwX3BheWxvYWQgPSAwOworCXZpZGVvLT5idWxrLnBheWxvYWRfc2l6ZSA9IDA7CisKKwlpZiAoaW50Zi0+bnVtX2FsdHNldHRpbmcgPiAxKSB7CisJCS8qIElzb2Nocm9ub3VzIGVuZHBvaW50LCBzZWxlY3QgdGhlIGFsdGVybmF0ZSBzZXR0aW5nLiAqLworCQliYW5kd2lkdGggPSB2aWRlby0+c3RyZWFtaW5nLT5jdHJsLmR3TWF4UGF5bG9hZFRyYW5zZmVyU2l6ZTsKKworCQlpZiAoYmFuZHdpZHRoID09IDApIHsKKwkJCXV2Y19wcmludGsoS0VSTl9XQVJOSU5HLCAiZGV2aWNlICVzIHJlcXVlc3RlZCBudWxsICIKKwkJCQkiYmFuZHdpZHRoLCBkZWZhdWx0aW5nIHRvIGxvd2VzdC5cbiIsCisJCQkJdmlkZW8tPnZkZXYtPm5hbWUpOworCQkJYmFuZHdpZHRoID0gMTsKKwkJfQorCisJCWZvciAoaSA9IDA7IGkgPCBpbnRmLT5udW1fYWx0c2V0dGluZzsgKytpKSB7CisJCQlhbHRzID0gJmludGYtPmFsdHNldHRpbmdbaV07CisJCQllcCA9IHV2Y19maW5kX2VuZHBvaW50KGFsdHMsCisJCQkJdmlkZW8tPnN0cmVhbWluZy0+aGVhZGVyLmJFbmRwb2ludEFkZHJlc3MpOworCQkJaWYgKGVwID09IE5VTEwpCisJCQkJY29udGludWU7CisKKwkJCS8qIENoZWNrIGlmIHRoZSBiYW5kd2lkdGggaXMgaGlnaCBlbm91Z2guICovCisJCQlwc2l6ZSA9IGxlMTZfdG9fY3B1KGVwLT5kZXNjLndNYXhQYWNrZXRTaXplKTsKKwkJCXBzaXplID0gKHBzaXplICYgMHgwN2ZmKSAqICgxICsgKChwc2l6ZSA+PiAxMSkgJiAzKSk7CisJCQlpZiAocHNpemUgPj0gYmFuZHdpZHRoKQorCQkJCWJyZWFrOworCQl9CisKKwkJaWYgKGkgPj0gaW50Zi0+bnVtX2FsdHNldHRpbmcpCisJCQlyZXR1cm4gLUVJTzsKKworCQlpZiAoKHJldCA9IHVzYl9zZXRfaW50ZXJmYWNlKHZpZGVvLT5kZXYtPnVkZXYsIGludGZudW0sIGkpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCXJldCA9IHV2Y19pbml0X3ZpZGVvX2lzb2ModmlkZW8sIGVwKTsKKwl9IGVsc2UgeworCQkvKiBCdWxrIGVuZHBvaW50LCBwcm9jZWVkIHRvIFVSQiBpbml0aWFsaXphdGlvbi4gKi8KKwkJZXAgPSB1dmNfZmluZF9lbmRwb2ludCgmaW50Zi0+YWx0c2V0dGluZ1swXSwKKwkJCQl2aWRlby0+c3RyZWFtaW5nLT5oZWFkZXIuYkVuZHBvaW50QWRkcmVzcyk7CisJCWlmIChlcCA9PSBOVUxMKQorCQkJcmV0dXJuIC1FSU87CisKKwkJcmV0ID0gdXZjX2luaXRfdmlkZW9fYnVsayh2aWRlbywgZXApOworCX0KKworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJLyogU3VibWl0IHRoZSBVUkJzLiAqLworCWZvciAoaSA9IDA7IGkgPCBVVkNfVVJCUzsgKytpKSB7CisJCWlmICgocmV0ID0gdXNiX3N1Ym1pdF91cmIodmlkZW8tPnVyYltpXSwgR0ZQX0tFUk5FTCkpIDwgMCkgeworCQkJdXZjX3ByaW50ayhLRVJOX0VSUiwgIkZhaWxlZCB0byBzdWJtaXQgVVJCICV1ICIKKwkJCQkJIiglZCkuXG4iLCBpLCByZXQpOworCQkJdXZjX3VuaW5pdF92aWRlbyh2aWRlbyk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBTdXNwZW5kL3Jlc3VtZQorICovCisKKy8qCisgKiBTdG9wIHN0cmVhbWluZyB3aXRob3V0IGRpc2FibGluZyB0aGUgdmlkZW8gcXVldWUuCisgKgorICogVG8gbGV0IHVzZXJzcGFjZSBhcHBsaWNhdGlvbnMgcmVzdW1lIHdpdGhvdXQgdHJvdWJsZSwgd2UgbXVzdCBub3QgdG91Y2ggdGhlCisgKiB2aWRlbyBidWZmZXJzIGluIGFueSB3YXkuIFdlIG1hcmsgdGhlIGRldmljZSBhcyBmcm96ZW4gdG8gbWFrZSBzdXJlIHRoZSBVUkIKKyAqIGNvbXBsZXRpb24gaGFuZGxlciB3b24ndCB0cnkgdG8gY2FuY2VsIHRoZSBxdWV1ZSB3aGVuIHdlIGtpbGwgdGhlIFVSQnMuCisgKi8KK2ludCB1dmNfdmlkZW9fc3VzcGVuZChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pCit7CisJaWYgKCF1dmNfcXVldWVfc3RyZWFtaW5nKCZ2aWRlby0+cXVldWUpKQorCQlyZXR1cm4gMDsKKworCXZpZGVvLT5mcm96ZW4gPSAxOworCXV2Y191bmluaXRfdmlkZW8odmlkZW8pOworCXVzYl9zZXRfaW50ZXJmYWNlKHZpZGVvLT5kZXYtPnVkZXYsIHZpZGVvLT5zdHJlYW1pbmctPmludGZudW0sIDApOworCXJldHVybiAwOworfQorCisvKgorICogUmVjb25maWd1cmUgdGhlIHZpZGVvIGludGVyZmFjZSBhbmQgcmVzdGFydCBzdHJlYW1pbmcgaWYgaXQgd2FzIGVuYWJsZQorICogYmVmb3JlIHN1c3BlbmQuCisgKgorICogSWYgYW4gZXJyb3Igb2NjdXJzLCBkaXNhYmxlIHRoZSB2aWRlbyBxdWV1ZS4gVGhpcyB3aWxsIHdha2UgYWxsIHBlbmRpbmcKKyAqIGJ1ZmZlcnMsIG1ha2luZyBzdXJlIHVzZXJzcGFjZSBhcHBsaWNhdGlvbnMgYXJlIG5vdGlmaWVkIG9mIHRoZSBwcm9ibGVtCisgKiBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yZXZlci4KKyAqLworaW50IHV2Y192aWRlb19yZXN1bWUoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKQoreworCWludCByZXQ7CisKKwl2aWRlby0+ZnJvemVuID0gMDsKKworCWlmICgocmV0ID0gdXZjX3NldF92aWRlb19jdHJsKHZpZGVvLCAmdmlkZW8tPnN0cmVhbWluZy0+Y3RybCwgMCkpIDwgMCkgeworCQl1dmNfcXVldWVfZW5hYmxlKCZ2aWRlby0+cXVldWUsIDApOworCQlyZXR1cm4gcmV0OworCX0KKworCWlmICghdXZjX3F1ZXVlX3N0cmVhbWluZygmdmlkZW8tPnF1ZXVlKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoKHJldCA9IHV2Y19pbml0X3ZpZGVvKHZpZGVvKSkgPCAwKQorCQl1dmNfcXVldWVfZW5hYmxlKCZ2aWRlby0+cXVldWUsIDApOworCisJcmV0dXJuIHJldDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBWaWRlbyBkZXZpY2UKKyAqLworCisvKgorICogSW5pdGlhbGl6ZSB0aGUgVVZDIHZpZGVvIGRldmljZSBieSByZXRyaWV2aW5nIHRoZSBkZWZhdWx0IGZvcm1hdCBhbmQKKyAqIGNvbW1pdHRpbmcgaXQuCisgKgorICogU29tZSBjYW1lcmFzIChuYW1lbHkgdGhlIEZ1amkgRmluZXBpeCkgc2V0IHRoZSBmb3JtYXQgYW5kIGZyYW1lCisgKiBpbmRleGVzIHRvIHplcm8uIFRoZSBVVkMgc3RhbmRhcmQgZG9lc24ndCBjbGVhcmx5IG1ha2UgdGhpcyBhIHNwZWMKKyAqIHZpb2xhdGlvbiwgc28gdHJ5IHRvIHNpbGVudGx5IGZpeCB0aGUgdmFsdWVzIGlmIHBvc3NpYmxlLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSByZWdpc3RlcmluZyB0aGUgZGV2aWNlIHdpdGggVjRMLgorICovCitpbnQgdXZjX3ZpZGVvX2luaXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKQoreworCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgKnByb2JlID0gJnZpZGVvLT5zdHJlYW1pbmctPmN0cmw7CisJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdCA9IE5VTEw7CisJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWUgPSBOVUxMOworCXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisKKwlpZiAodmlkZW8tPnN0cmVhbWluZy0+bmZvcm1hdHMgPT0gMCkgeworCQl1dmNfcHJpbnRrKEtFUk5fSU5GTywgIk5vIHN1cHBvcnRlZCB2aWRlbyBmb3JtYXRzIGZvdW5kLlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIEFsdGVybmF0ZSBzZXR0aW5nIDAgc2hvdWxkIGJlIHRoZSBkZWZhdWx0LCB5ZXQgdGhlIFhCb3ggTGl2ZSBWaXNpb24KKwkgKiBDYW0gKGFuZCBwb3NzaWJseSBvdGhlciBkZXZpY2VzKSBjcmFzaCBvciBvdGhlcndpc2UgbWlzYmVoYXZlIGlmCisJICogdGhleSBkb24ndCByZWNlaXZlIGEgU0VUX0lOVEVSRkFDRSByZXF1ZXN0IGJlZm9yZSBhbnkgb3RoZXIgdmlkZW8KKwkgKiBjb250cm9sIHJlcXVlc3QuCisJICovCisJdXNiX3NldF9pbnRlcmZhY2UodmlkZW8tPmRldi0+dWRldiwgdmlkZW8tPnN0cmVhbWluZy0+aW50Zm51bSwgMCk7CisKKwkvKiBTb21lIHdlYmNhbXMgZG9uJ3Qgc3Vwb3J0IEdFVF9ERUYgcmVxdWVzdCBvbiB0aGUgcHJvYmUgY29udHJvbC4gV2UKKwkgKiBmYWxsIGJhY2sgdG8gR0VUX0NVUiBpZiBHRVRfREVGIGZhaWxzLgorCSAqLworCWlmICgocmV0ID0gdXZjX2dldF92aWRlb19jdHJsKHZpZGVvLCBwcm9iZSwgMSwgR0VUX0RFRikpIDwgMCAmJgorCSAgICAocmV0ID0gdXZjX2dldF92aWRlb19jdHJsKHZpZGVvLCBwcm9iZSwgMSwgR0VUX0NVUikpIDwgMCkKKwkJcmV0dXJuIHJldDsKKworCS8qIENoZWNrIGlmIHRoZSBkZWZhdWx0IGZvcm1hdCBkZXNjcmlwdG9yIGV4aXN0cy4gVXNlIHRoZSBmaXJzdAorCSAqIGF2YWlsYWJsZSBmb3JtYXQgb3RoZXJ3aXNlLgorCSAqLworCWZvciAoaSA9IHZpZGVvLT5zdHJlYW1pbmctPm5mb3JtYXRzOyBpID4gMDsgLS1pKSB7CisJCWZvcm1hdCA9ICZ2aWRlby0+c3RyZWFtaW5nLT5mb3JtYXRbaS0xXTsKKwkJaWYgKGZvcm1hdC0+aW5kZXggPT0gcHJvYmUtPmJGb3JtYXRJbmRleCkKKwkJCWJyZWFrOworCX0KKworCWlmIChmb3JtYXQtPm5mcmFtZXMgPT0gMCkgeworCQl1dmNfcHJpbnRrKEtFUk5fSU5GTywgIk5vIGZyYW1lIGRlc2NyaXB0b3IgZm91bmQgZm9yIHRoZSAiCisJCQkiZGVmYXVsdCBmb3JtYXQuXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogWmVybyBiRnJhbWVJbmRleCBtaWdodCBiZSBjb3JyZWN0LiBTdHJlYW0tYmFzZWQgZm9ybWF0cyAoaW5jbHVkaW5nCisJICogTVBFRy0yIFRTIGFuZCBEVikgZG8gbm90IHN1cHBvcnQgZnJhbWVzIGJ1dCBoYXZlIGEgZHVtbXkgZnJhbWUKKwkgKiBkZXNjcmlwdG9yIHdpdGggYkZyYW1lSW5kZXggc2V0IHRvIHplcm8uIElmIHRoZSBkZWZhdWx0IGZyYW1lCisJICogZGVzY3JpcHRvciBpcyBub3QgZm91bmQsIHVzZSB0aGUgZmlyc3QgYXZhbGFibGUgZnJhbWUuCisJICovCisJZm9yIChpID0gZm9ybWF0LT5uZnJhbWVzOyBpID4gMDsgLS1pKSB7CisJCWZyYW1lID0gJmZvcm1hdC0+ZnJhbWVbaS0xXTsKKwkJaWYgKGZyYW1lLT5iRnJhbWVJbmRleCA9PSBwcm9iZS0+YkZyYW1lSW5kZXgpCisJCQlicmVhazsKKwl9CisKKwkvKiBDb21taXQgdGhlIGRlZmF1bHQgc2V0dGluZ3MuICovCisJcHJvYmUtPmJGb3JtYXRJbmRleCA9IGZvcm1hdC0+aW5kZXg7CisJcHJvYmUtPmJGcmFtZUluZGV4ID0gZnJhbWUtPmJGcmFtZUluZGV4OworCWlmICgocmV0ID0gdXZjX3NldF92aWRlb19jdHJsKHZpZGVvLCBwcm9iZSwgMCkpIDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXZpZGVvLT5zdHJlYW1pbmctPmN1cl9mb3JtYXQgPSBmb3JtYXQ7CisJdmlkZW8tPnN0cmVhbWluZy0+Y3VyX2ZyYW1lID0gZnJhbWU7CisJYXRvbWljX3NldCgmdmlkZW8tPmFjdGl2ZSwgMCk7CisKKwkvKiBTZWxlY3QgdGhlIHZpZGVvIGRlY29kaW5nIGZ1bmN0aW9uICovCisJaWYgKHZpZGVvLT5kZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19CVUlMVElOX0lTSUdIVCkKKwkJdmlkZW8tPmRlY29kZSA9IHV2Y192aWRlb19kZWNvZGVfaXNpZ2h0OworCWVsc2UgaWYgKHZpZGVvLT5zdHJlYW1pbmctPmludGYtPm51bV9hbHRzZXR0aW5nID4gMSkKKwkJdmlkZW8tPmRlY29kZSA9IHV2Y192aWRlb19kZWNvZGVfaXNvYzsKKwllbHNlCisJCXZpZGVvLT5kZWNvZGUgPSB1dmNfdmlkZW9fZGVjb2RlX2J1bGs7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSB2aWRlbyBzdHJlYW0uCisgKi8KK2ludCB1dmNfdmlkZW9fZW5hYmxlKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywgaW50IGVuYWJsZSkKK3sKKwlpbnQgcmV0OworCisJaWYgKCFlbmFibGUpIHsKKwkJdXZjX3VuaW5pdF92aWRlbyh2aWRlbyk7CisJCXVzYl9zZXRfaW50ZXJmYWNlKHZpZGVvLT5kZXYtPnVkZXYsCisJCQl2aWRlby0+c3RyZWFtaW5nLT5pbnRmbnVtLCAwKTsKKwkJdXZjX3F1ZXVlX2VuYWJsZSgmdmlkZW8tPnF1ZXVlLCAwKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKChyZXQgPSB1dmNfcXVldWVfZW5hYmxlKCZ2aWRlby0+cXVldWUsIDEpKSA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gdXZjX2luaXRfdmlkZW8odmlkZW8pOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjdmlkZW8uaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y3ZpZGVvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk5NWE3OAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y3ZpZGVvLmgKQEAgLTAsMCArMSw3OTYgQEAKKyNpZm5kZWYgX1VTQl9WSURFT19IXworI2RlZmluZSBfVVNCX1ZJREVPX0hfCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC92aWRlb2RldjIuaD4KKworCisvKgorICogRHluYW1pYyBjb250cm9scworICovCisKKy8qIERhdGEgdHlwZXMgZm9yIFVWQyBjb250cm9sIGRhdGEgKi8KKyNkZWZpbmUgVVZDX0NUUkxfREFUQV9UWVBFX1JBVwkJMAorI2RlZmluZSBVVkNfQ1RSTF9EQVRBX1RZUEVfU0lHTkVECTEKKyNkZWZpbmUgVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVECTIKKyNkZWZpbmUgVVZDX0NUUkxfREFUQV9UWVBFX0JPT0xFQU4JMworI2RlZmluZSBVVkNfQ1RSTF9EQVRBX1RZUEVfRU5VTQkJNAorI2RlZmluZSBVVkNfQ1RSTF9EQVRBX1RZUEVfQklUTUFTSwk1CisKKy8qIENvbnRyb2wgZmxhZ3MgKi8KKyNkZWZpbmUgVVZDX0NPTlRST0xfU0VUX0NVUgkoMSA8PCAwKQorI2RlZmluZSBVVkNfQ09OVFJPTF9HRVRfQ1VSCSgxIDw8IDEpCisjZGVmaW5lIFVWQ19DT05UUk9MX0dFVF9NSU4JKDEgPDwgMikKKyNkZWZpbmUgVVZDX0NPTlRST0xfR0VUX01BWAkoMSA8PCAzKQorI2RlZmluZSBVVkNfQ09OVFJPTF9HRVRfUkVTCSgxIDw8IDQpCisjZGVmaW5lIFVWQ19DT05UUk9MX0dFVF9ERUYJKDEgPDwgNSkKKy8qIENvbnRyb2wgc2hvdWxkIGJlIHNhdmVkIGF0IHN1c3BlbmQgYW5kIHJlc3RvcmVkIGF0IHJlc3VtZS4gKi8KKyNkZWZpbmUgVVZDX0NPTlRST0xfUkVTVE9SRQkoMSA8PCA2KQorLyogQ29udHJvbCBjYW4gYmUgdXBkYXRlZCBieSB0aGUgY2FtZXJhLiAqLworI2RlZmluZSBVVkNfQ09OVFJPTF9BVVRPX1VQREFURQkoMSA8PCA3KQorCisjZGVmaW5lIFVWQ19DT05UUk9MX0dFVF9SQU5HRQkoVVZDX0NPTlRST0xfR0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9NSU4gfCBcCisJCQkJIFVWQ19DT05UUk9MX0dFVF9NQVggfCBVVkNfQ09OVFJPTF9HRVRfUkVTIHwgXAorCQkJCSBVVkNfQ09OVFJPTF9HRVRfREVGKQorCitzdHJ1Y3QgdXZjX3h1X2NvbnRyb2xfaW5mbyB7CisJX191OCBlbnRpdHlbMTZdOworCV9fdTggaW5kZXg7CisJX191OCBzZWxlY3RvcjsKKwlfX3UxNiBzaXplOworCV9fdTMyIGZsYWdzOworfTsKKworc3RydWN0IHV2Y194dV9jb250cm9sX21hcHBpbmcgeworCV9fdTMyIGlkOworCV9fdTggbmFtZVszMl07CisJX191OCBlbnRpdHlbMTZdOworCV9fdTggc2VsZWN0b3I7CisKKwlfX3U4IHNpemU7CisJX191OCBvZmZzZXQ7CisJZW51bSB2NGwyX2N0cmxfdHlwZSB2NGwyX3R5cGU7CisJX191MzIgZGF0YV90eXBlOworfTsKKworc3RydWN0IHV2Y194dV9jb250cm9sIHsKKwlfX3U4IHVuaXQ7CisJX191OCBzZWxlY3RvcjsKKwlfX3UxNiBzaXplOworCV9fdTggX191c2VyICpkYXRhOworfTsKKworI2RlZmluZSBVVkNJT0NfQ1RSTF9BREQJCV9JT1coJ1UnLCAxLCBzdHJ1Y3QgdXZjX3h1X2NvbnRyb2xfaW5mbykKKyNkZWZpbmUgVVZDSU9DX0NUUkxfTUFQCQlfSU9XUignVScsIDIsIHN0cnVjdCB1dmNfeHVfY29udHJvbF9tYXBwaW5nKQorI2RlZmluZSBVVkNJT0NfQ1RSTF9HRVQJCV9JT1dSKCdVJywgMywgc3RydWN0IHV2Y194dV9jb250cm9sKQorI2RlZmluZSBVVkNJT0NfQ1RSTF9TRVQJCV9JT1coJ1UnLCA0LCBzdHJ1Y3QgdXZjX3h1X2NvbnRyb2wpCisKKyNpZmRlZiBfX0tFUk5FTF9fCisKKyNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVVkMgY29uc3RhbnRzCisgKi8KKworI2RlZmluZSBTQ19VTkRFRklORUQgICAgICAgICAgICAgICAgICAgIDB4MDAKKyNkZWZpbmUgU0NfVklERU9DT05UUk9MICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIFNDX1ZJREVPU1RSRUFNSU5HICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBTQ19WSURFT19JTlRFUkZBQ0VfQ09MTEVDVElPTiAgIDB4MDMKKworI2RlZmluZSBQQ19QUk9UT0NPTF9VTkRFRklORUQgICAgICAgICAgIDB4MDAKKworI2RlZmluZSBDU19VTkRFRklORUQgICAgICAgICAgICAgICAgICAgIDB4MjAKKyNkZWZpbmUgQ1NfREVWSUNFICAgICAgICAgICAgICAgICAgICAgICAweDIxCisjZGVmaW5lIENTX0NPTkZJR1VSQVRJT04gICAgICAgICAgICAgICAgMHgyMgorI2RlZmluZSBDU19TVFJJTkcgICAgICAgICAgICAgICAgICAgICAgIDB4MjMKKyNkZWZpbmUgQ1NfSU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAweDI0CisjZGVmaW5lIENTX0VORFBPSU5UICAgICAgICAgICAgICAgICAgICAgMHgyNQorCisvKiBWaWRlb0NvbnRyb2wgY2xhc3Mgc3BlY2lmaWMgaW50ZXJmYWNlIGRlc2NyaXB0b3IgKi8KKyNkZWZpbmUgVkNfREVTQ1JJUFRPUl9VTkRFRklORUQgICAgICAgICAweDAwCisjZGVmaW5lIFZDX0hFQURFUiAgICAgICAgICAgICAgICAgICAgICAgMHgwMQorI2RlZmluZSBWQ19JTlBVVF9URVJNSU5BTCAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgVkNfT1VUUFVUX1RFUk1JTkFMICAgICAgICAgICAgICAweDAzCisjZGVmaW5lIFZDX1NFTEVDVE9SX1VOSVQgICAgICAgICAgICAgICAgMHgwNAorI2RlZmluZSBWQ19QUk9DRVNTSU5HX1VOSVQgICAgICAgICAgICAgIDB4MDUKKyNkZWZpbmUgVkNfRVhURU5TSU9OX1VOSVQgICAgICAgICAgICAgICAweDA2CisKKy8qIFZpZGVvU3RyZWFtaW5nIGNsYXNzIHNwZWNpZmljIGludGVyZmFjZSBkZXNjcmlwdG9yICovCisjZGVmaW5lIFZTX1VOREVGSU5FRCAgICAgICAgICAgICAgICAgICAgMHgwMAorI2RlZmluZSBWU19JTlBVVF9IRUFERVIgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgVlNfT1VUUFVUX0hFQURFUiAgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIFZTX1NUSUxMX0lNQUdFX0ZSQU1FICAgICAgICAgICAgMHgwMworI2RlZmluZSBWU19GT1JNQVRfVU5DT01QUkVTU0VEICAgICAgICAgIDB4MDQKKyNkZWZpbmUgVlNfRlJBTUVfVU5DT01QUkVTU0VEICAgICAgICAgICAweDA1CisjZGVmaW5lIFZTX0ZPUk1BVF9NSlBFRyAgICAgICAgICAgICAgICAgMHgwNgorI2RlZmluZSBWU19GUkFNRV9NSlBFRyAgICAgICAgICAgICAgICAgIDB4MDcKKyNkZWZpbmUgVlNfRk9STUFUX01QRUcyVFMgICAgICAgICAgICAgICAweDBhCisjZGVmaW5lIFZTX0ZPUk1BVF9EViAgICAgICAgICAgICAgICAgICAgMHgwYworI2RlZmluZSBWU19DT0xPUkZPUk1BVCAgICAgICAgICAgICAgICAgIDB4MGQKKyNkZWZpbmUgVlNfRk9STUFUX0ZSQU1FX0JBU0VEICAgICAgICAgICAweDEwCisjZGVmaW5lIFZTX0ZSQU1FX0ZSQU1FX0JBU0VEICAgICAgICAgICAgMHgxMQorI2RlZmluZSBWU19GT1JNQVRfU1RSRUFNX0JBU0VEICAgICAgICAgIDB4MTIKKworLyogRW5kcG9pbnQgdHlwZSAqLworI2RlZmluZSBFUF9VTkRFRklORUQgICAgICAgICAgICAgICAgICAgIDB4MDAKKyNkZWZpbmUgRVBfR0VORVJBTCAgICAgICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIEVQX0VORFBPSU5UICAgICAgICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBFUF9JTlRFUlJVUFQgICAgICAgICAgICAgICAgICAgIDB4MDMKKworLyogUmVxdWVzdCBjb2RlcyAqLworI2RlZmluZSBSQ19VTkRFRklORUQgICAgICAgICAgICAgICAgICAgIDB4MDAKKyNkZWZpbmUgU0VUX0NVUiAgICAgICAgICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIEdFVF9DVVIgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MQorI2RlZmluZSBHRVRfTUlOICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODIKKyNkZWZpbmUgR0VUX01BWCAgICAgICAgICAgICAgICAgICAgICAgICAweDgzCisjZGVmaW5lIEdFVF9SRVMgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NAorI2RlZmluZSBHRVRfTEVOICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODUKKyNkZWZpbmUgR0VUX0lORk8gICAgICAgICAgICAgICAgICAgICAgICAweDg2CisjZGVmaW5lIEdFVF9ERUYgICAgICAgICAgICAgICAgICAgICAgICAgMHg4NworCisvKiBWaWRlb0NvbnRyb2wgaW50ZXJmYWNlIGNvbnRyb2xzICovCisjZGVmaW5lIFZDX0NPTlRST0xfVU5ERUZJTkVEICAgICAgICAgICAgMHgwMAorI2RlZmluZSBWQ19WSURFT19QT1dFUl9NT0RFX0NPTlRST0wgICAgIDB4MDEKKyNkZWZpbmUgVkNfUkVRVUVTVF9FUlJPUl9DT0RFX0NPTlRST0wgICAweDAyCisKKy8qIFRlcm1pbmFsIGNvbnRyb2xzICovCisjZGVmaW5lIFRFX0NPTlRST0xfVU5ERUZJTkVEICAgICAgICAgICAgMHgwMAorCisvKiBTZWxlY3RvciBVbml0IGNvbnRyb2xzICovCisjZGVmaW5lIFNVX0NPTlRST0xfVU5ERUZJTkVEICAgICAgICAgICAgMHgwMAorI2RlZmluZSBTVV9JTlBVVF9TRUxFQ1RfQ09OVFJPTCAgICAgICAgIDB4MDEKKworLyogQ2FtZXJhIFRlcm1pbmFsIGNvbnRyb2xzICovCisjZGVmaW5lIENUX0NPTlRST0xfVU5ERUZJTkVEICAgICAgICAgICAgCQkweDAwCisjZGVmaW5lIENUX1NDQU5OSU5HX01PREVfQ09OVFJPTCAgICAgICAgCQkweDAxCisjZGVmaW5lIENUX0FFX01PREVfQ09OVFJPTCAgICAgICAgICAgICAgCQkweDAyCisjZGVmaW5lIENUX0FFX1BSSU9SSVRZX0NPTlRST0wgICAgICAgICAgCQkweDAzCisjZGVmaW5lIENUX0VYUE9TVVJFX1RJTUVfQUJTT0xVVEVfQ09OVFJPTCAgICAgICAgICAgICAgIDB4MDQKKyNkZWZpbmUgQ1RfRVhQT1NVUkVfVElNRV9SRUxBVElWRV9DT05UUk9MICAgICAgICAgICAgICAgMHgwNQorI2RlZmluZSBDVF9GT0NVU19BQlNPTFVURV9DT05UUk9MICAgICAgIAkJMHgwNgorI2RlZmluZSBDVF9GT0NVU19SRUxBVElWRV9DT05UUk9MICAgICAgIAkJMHgwNworI2RlZmluZSBDVF9GT0NVU19BVVRPX0NPTlRST0wgICAgICAgICAgIAkJMHgwOAorI2RlZmluZSBDVF9JUklTX0FCU09MVVRFX0NPTlRST0wgICAgICAgIAkJMHgwOQorI2RlZmluZSBDVF9JUklTX1JFTEFUSVZFX0NPTlRST0wgICAgICAgIAkJMHgwYQorI2RlZmluZSBDVF9aT09NX0FCU09MVVRFX0NPTlRST0wgICAgICAgIAkJMHgwYgorI2RlZmluZSBDVF9aT09NX1JFTEFUSVZFX0NPTlRST0wgICAgICAgIAkJMHgwYworI2RlZmluZSBDVF9QQU5USUxUX0FCU09MVVRFX0NPTlRST0wgICAgIAkJMHgwZAorI2RlZmluZSBDVF9QQU5USUxUX1JFTEFUSVZFX0NPTlRST0wgICAgIAkJMHgwZQorI2RlZmluZSBDVF9ST0xMX0FCU09MVVRFX0NPTlRST0wgICAgICAgIAkJMHgwZgorI2RlZmluZSBDVF9ST0xMX1JFTEFUSVZFX0NPTlRST0wgICAgICAgIAkJMHgxMAorI2RlZmluZSBDVF9QUklWQUNZX0NPTlRST0wgICAgICAgICAgICAgIAkJMHgxMQorCisvKiBQcm9jZXNzaW5nIFVuaXQgY29udHJvbHMgKi8KKyNkZWZpbmUgUFVfQ09OVFJPTF9VTkRFRklORUQgICAgICAgICAgICAJCTB4MDAKKyNkZWZpbmUgUFVfQkFDS0xJR0hUX0NPTVBFTlNBVElPTl9DT05UUk9MICAgICAgICAgICAgICAgMHgwMQorI2RlZmluZSBQVV9CUklHSFRORVNTX0NPTlRST0wgICAgICAgICAgIAkJMHgwMgorI2RlZmluZSBQVV9DT05UUkFTVF9DT05UUk9MICAgICAgICAgICAgIAkJMHgwMworI2RlZmluZSBQVV9HQUlOX0NPTlRST0wgICAgICAgICAgICAgICAgIAkJMHgwNAorI2RlZmluZSBQVV9QT1dFUl9MSU5FX0ZSRVFVRU5DWV9DT05UUk9MIAkJMHgwNQorI2RlZmluZSBQVV9IVUVfQ09OVFJPTCAgICAgICAgICAgICAgICAgIAkJMHgwNgorI2RlZmluZSBQVV9TQVRVUkFUSU9OX0NPTlRST0wgICAgICAgICAgIAkJMHgwNworI2RlZmluZSBQVV9TSEFSUE5FU1NfQ09OVFJPTCAgICAgICAgICAgIAkJMHgwOAorI2RlZmluZSBQVV9HQU1NQV9DT05UUk9MICAgICAgICAgICAgICAgIAkJMHgwOQorI2RlZmluZSBQVV9XSElURV9CQUxBTkNFX1RFTVBFUkFUVVJFX0NPTlRST0wgICAgICAgICAgICAweDBhCisjZGVmaW5lIFBVX1dISVRFX0JBTEFOQ0VfVEVNUEVSQVRVUkVfQVVUT19DT05UUk9MICAgICAgIDB4MGIKKyNkZWZpbmUgUFVfV0hJVEVfQkFMQU5DRV9DT01QT05FTlRfQ09OVFJPTCAgICAgICAgICAgICAgMHgwYworI2RlZmluZSBQVV9XSElURV9CQUxBTkNFX0NPTVBPTkVOVF9BVVRPX0NPTlRST0wgICAgICAgICAweDBkCisjZGVmaW5lIFBVX0RJR0lUQUxfTVVMVElQTElFUl9DT05UUk9MICAgCQkweDBlCisjZGVmaW5lIFBVX0RJR0lUQUxfTVVMVElQTElFUl9MSU1JVF9DT05UUk9MICAgICAgICAgICAgIDB4MGYKKyNkZWZpbmUgUFVfSFVFX0FVVE9fQ09OVFJPTCAgICAgICAgICAgICAJCTB4MTAKKyNkZWZpbmUgUFVfQU5BTE9HX1ZJREVPX1NUQU5EQVJEX0NPTlRST0wgICAgICAgICAgICAgICAgMHgxMQorI2RlZmluZSBQVV9BTkFMT0dfTE9DS19TVEFUVVNfQ09OVFJPTCAgIAkJMHgxMgorCisjZGVmaW5lIExYVV9NT1RPUl9QQU5USUxUX1JFTEFUSVZFX0NPTlRST0wJCTB4MDEKKyNkZWZpbmUgTFhVX01PVE9SX1BBTlRJTFRfUkVTRVRfQ09OVFJPTAkJCTB4MDIKKyNkZWZpbmUgTFhVX01PVE9SX0ZPQ1VTX01PVE9SX0NPTlRST0wJCQkweDAzCisKKy8qIFZpZGVvU3RyZWFtaW5nIGludGVyZmFjZSBjb250cm9scyAqLworI2RlZmluZSBWU19DT05UUk9MX1VOREVGSU5FRCAgICAgICAgICAgIDB4MDAKKyNkZWZpbmUgVlNfUFJPQkVfQ09OVFJPTCAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIFZTX0NPTU1JVF9DT05UUk9MICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBWU19TVElMTF9QUk9CRV9DT05UUk9MICAgICAgICAgIDB4MDMKKyNkZWZpbmUgVlNfU1RJTExfQ09NTUlUX0NPTlRST0wgICAgICAgICAweDA0CisjZGVmaW5lIFZTX1NUSUxMX0lNQUdFX1RSSUdHRVJfQ09OVFJPTCAgMHgwNQorI2RlZmluZSBWU19TVFJFQU1fRVJST1JfQ09ERV9DT05UUk9MICAgIDB4MDYKKyNkZWZpbmUgVlNfR0VORVJBVEVfS0VZX0ZSQU1FX0NPTlRST0wgICAweDA3CisjZGVmaW5lIFZTX1VQREFURV9GUkFNRV9TRUdNRU5UX0NPTlRST0wgMHgwOAorI2RlZmluZSBWU19TWU5DX0RFTEFZX0NPTlRST0wgICAgICAgICAgIDB4MDkKKworI2RlZmluZSBUVF9WRU5ET1JfU1BFQ0lGSUMgICAgICAgICAgICAgIDB4MDEwMAorI2RlZmluZSBUVF9TVFJFQU1JTkcgICAgICAgICAgICAgICAgICAgIDB4MDEwMQorCisvKiBJbnB1dCBUZXJtaW5hbCB0eXBlcyAqLworI2RlZmluZSBJVFRfVkVORE9SX1NQRUNJRklDICAgICAgICAgICAgIDB4MDIwMAorI2RlZmluZSBJVFRfQ0FNRVJBICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMQorI2RlZmluZSBJVFRfTUVESUFfVFJBTlNQT1JUX0lOUFVUICAgICAgIDB4MDIwMgorCisvKiBPdXRwdXQgVGVybWluYWwgdHlwZXMgKi8KKyNkZWZpbmUgT1RUX1ZFTkRPUl9TUEVDSUZJQyAgICAgICAgICAgICAweDAzMDAKKyNkZWZpbmUgT1RUX0RJU1BMQVkgICAgICAgICAgICAgICAgICAgICAweDAzMDEKKyNkZWZpbmUgT1RUX01FRElBX1RSQU5TUE9SVF9PVVRQVVQgICAgICAweDAzMDIKKworLyogRXh0ZXJuYWwgVGVybWluYWwgdHlwZXMgKi8KKyNkZWZpbmUgRVhURVJOQUxfVkVORE9SX1NQRUNJRklDICAgICAgICAweDA0MDAKKyNkZWZpbmUgQ09NUE9TSVRFX0NPTk5FQ1RPUiAgICAgICAgICAgICAweDA0MDEKKyNkZWZpbmUgU1ZJREVPX0NPTk5FQ1RPUiAgICAgICAgICAgICAgICAweDA0MDIKKyNkZWZpbmUgQ09NUE9ORU5UX0NPTk5FQ1RPUiAgICAgICAgICAgICAweDA0MDMKKworI2RlZmluZSBVVkNfVEVSTV9JTlBVVAkJCTB4MDAwMAorI2RlZmluZSBVVkNfVEVSTV9PVVRQVVQJCQkweDgwMDAKKworI2RlZmluZSBVVkNfRU5USVRZX1RZUEUoZW50aXR5KQkJKChlbnRpdHkpLT50eXBlICYgMHg3ZmZmKQorI2RlZmluZSBVVkNfRU5USVRZX0lTX1VOSVQoZW50aXR5KQkoKChlbnRpdHkpLT50eXBlICYgMHhmZjAwKSA9PSAwKQorI2RlZmluZSBVVkNfRU5USVRZX0lTX1RFUk0oZW50aXR5KQkoKChlbnRpdHkpLT50eXBlICYgMHhmZjAwKSAhPSAwKQorI2RlZmluZSBVVkNfRU5USVRZX0lTX0lURVJNKGVudGl0eSkgXAorCSgoKGVudGl0eSktPnR5cGUgJiAweDgwMDApID09IFVWQ19URVJNX0lOUFVUKQorI2RlZmluZSBVVkNfRU5USVRZX0lTX09URVJNKGVudGl0eSkgXAorCSgoKGVudGl0eSktPnR5cGUgJiAweDgwMDApID09IFVWQ19URVJNX09VVFBVVCkKKworI2RlZmluZSBVVkNfU1RBVFVTX1RZUEVfQ09OVFJPTAkJMQorI2RlZmluZSBVVkNfU1RBVFVTX1RZUEVfU1RSRUFNSU5HCTIKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBHVUlEcworICovCisjZGVmaW5lIFVWQ19HVUlEX1VWQ19DQU1FUkEgXAorCXsweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCBcCisJIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDF9CisjZGVmaW5lIFVWQ19HVUlEX1VWQ19PVVRQVVQgXAorCXsweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCBcCisJIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDJ9CisjZGVmaW5lIFVWQ19HVUlEX1VWQ19NRURJQV9UUkFOU1BPUlRfSU5QVVQgXAorCXsweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCBcCisJIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDN9CisjZGVmaW5lIFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HIFwKKwl7MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgXAorCSAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAxfQorI2RlZmluZSBVVkNfR1VJRF9VVkNfU0VMRUNUT1IgXAorCXsweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCBcCisJIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDJ9CisKKyNkZWZpbmUgVVZDX0dVSURfTE9HSVRFQ0hfREVWX0lORk8gXAorCXsweDgyLCAweDA2LCAweDYxLCAweDYzLCAweDcwLCAweDUwLCAweGFiLCAweDQ5LCBcCisJIDB4YjgsIDB4Y2MsIDB4YjMsIDB4ODUsIDB4NWUsIDB4OGQsIDB4MjIsIDB4MWV9CisjZGVmaW5lIFVWQ19HVUlEX0xPR0lURUNIX1VTRVJfSFcgXAorCXsweDgyLCAweDA2LCAweDYxLCAweDYzLCAweDcwLCAweDUwLCAweGFiLCAweDQ5LCBcCisJIDB4YjgsIDB4Y2MsIDB4YjMsIDB4ODUsIDB4NWUsIDB4OGQsIDB4MjIsIDB4MWZ9CisjZGVmaW5lIFVWQ19HVUlEX0xPR0lURUNIX1ZJREVPIFwKKwl7MHg4MiwgMHgwNiwgMHg2MSwgMHg2MywgMHg3MCwgMHg1MCwgMHhhYiwgMHg0OSwgXAorCSAweGI4LCAweGNjLCAweGIzLCAweDg1LCAweDVlLCAweDhkLCAweDIyLCAweDUwfQorI2RlZmluZSBVVkNfR1VJRF9MT0dJVEVDSF9NT1RPUiBcCisJezB4ODIsIDB4MDYsIDB4NjEsIDB4NjMsIDB4NzAsIDB4NTAsIDB4YWIsIDB4NDksIFwKKwkgMHhiOCwgMHhjYywgMHhiMywgMHg4NSwgMHg1ZSwgMHg4ZCwgMHgyMiwgMHg1Nn0KKworI2RlZmluZSBVVkNfR1VJRF9GT1JNQVRfTUpQRUcgXAorCXsgJ00nLCAgJ0onLCAgJ1AnLCAgJ0cnLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCBcCisJIDB4ODAsIDB4MDAsIDB4MDAsIDB4YWEsIDB4MDAsIDB4MzgsIDB4OWIsIDB4NzF9CisjZGVmaW5lIFVWQ19HVUlEX0ZPUk1BVF9ZVVkyIFwKKwl7ICdZJywgICdVJywgICdZJywgICcyJywgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwgXAorCSAweDgwLCAweDAwLCAweDAwLCAweGFhLCAweDAwLCAweDM4LCAweDliLCAweDcxfQorI2RlZmluZSBVVkNfR1VJRF9GT1JNQVRfTlYxMiBcCisJeyAnTicsICAnVicsICAnMScsICAnMicsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDAsIFwKKwkgMHg4MCwgMHgwMCwgMHgwMCwgMHhhYSwgMHgwMCwgMHgzOCwgMHg5YiwgMHg3MX0KKyNkZWZpbmUgVVZDX0dVSURfRk9STUFUX1lWMTIgXAorCXsgJ1knLCAgJ1YnLCAgJzEnLCAgJzInLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCBcCisJIDB4ODAsIDB4MDAsIDB4MDAsIDB4YWEsIDB4MDAsIDB4MzgsIDB4OWIsIDB4NzF9CisjZGVmaW5lIFVWQ19HVUlEX0ZPUk1BVF9JNDIwIFwKKwl7ICdJJywgICc0JywgICcyJywgICcwJywgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwgXAorCSAweDgwLCAweDAwLCAweDAwLCAweGFhLCAweDAwLCAweDM4LCAweDliLCAweDcxfQorI2RlZmluZSBVVkNfR1VJRF9GT1JNQVRfVVlWWSBcCisJeyAnVScsICAnWScsICAnVicsICAnWScsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDAsIFwKKwkgMHg4MCwgMHgwMCwgMHgwMCwgMHhhYSwgMHgwMCwgMHgzOCwgMHg5YiwgMHg3MX0KKyNkZWZpbmUgVVZDX0dVSURfRk9STUFUX1k4MDAgXAorCXsgJ1knLCAgJzgnLCAgJzAnLCAgJzAnLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCBcCisJIDB4ODAsIDB4MDAsIDB4MDAsIDB4YWEsIDB4MDAsIDB4MzgsIDB4OWIsIDB4NzF9CisjZGVmaW5lIFVWQ19HVUlEX0ZPUk1BVF9CWTggXAorCXsgJ0InLCAgJ1knLCAgJzgnLCAgJyAnLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCBcCisJIDB4ODAsIDB4MDAsIDB4MDAsIDB4YWEsIDB4MDAsIDB4MzgsIDB4OWIsIDB4NzF9CisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBEcml2ZXIgc3BlY2lmaWMgY29uc3RhbnRzLgorICovCisKKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT05fTlVNQkVSCUtFUk5FTF9WRVJTSU9OKDAsIDEsIDApCisKKy8qIE51bWJlciBvZiBpc29jaHJvbm91cyBVUkJzLiAqLworI2RlZmluZSBVVkNfVVJCUwkJNQorLyogTWF4aW11bSBudW1iZXIgb2YgcGFja2V0cyBwZXIgaXNvY2hyb25vdXMgVVJCLiAqLworI2RlZmluZSBVVkNfTUFYX0lTT19QQUNLRVRTCTQwCisvKiBNYXhpbXVtIGZyYW1lIHNpemUgaW4gYnl0ZXMsIGZvciBzYW5pdHkgY2hlY2tpbmcuICovCisjZGVmaW5lIFVWQ19NQVhfRlJBTUVfU0laRQkoMTYqMTAyNCoxMDI0KQorLyogTWF4aW11bSBudW1iZXIgb2YgdmlkZW8gYnVmZmVycy4gKi8KKyNkZWZpbmUgVVZDX01BWF9WSURFT19CVUZGRVJTCTMyCisKKyNkZWZpbmUgVVZDX0NUUkxfQ09OVFJPTF9USU1FT1VUCTMwMAorI2RlZmluZSBVVkNfQ1RSTF9TVFJFQU1JTkdfVElNRU9VVAkxMDAwCisKKy8qIERldmljZXMgcXVpcmtzICovCisjZGVmaW5lIFVWQ19RVUlSS19TVEFUVVNfSU5URVJWQUwJMHgwMDAwMDAwMQorI2RlZmluZSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYCQkweDAwMDAwMDAyCisjZGVmaW5lIFVWQ19RVUlSS19QUk9CRV9FWFRSQUZJRUxEUwkweDAwMDAwMDA0CisjZGVmaW5lIFVWQ19RVUlSS19CVUlMVElOX0lTSUdIVAkweDAwMDAwMDA4CisjZGVmaW5lIFVWQ19RVUlSS19TVFJFQU1fTk9fRklECQkweDAwMDAwMDEwCisjZGVmaW5lIFVWQ19RVUlSS19JR05PUkVfU0VMRUNUT1JfVU5JVAkweDAwMDAwMDIwCisKKy8qIEZvcm1hdCBmbGFncyAqLworI2RlZmluZSBVVkNfRk1UX0ZMQUdfQ09NUFJFU1NFRAkJMHgwMDAwMDAwMQorI2RlZmluZSBVVkNfRk1UX0ZMQUdfU1RSRUFNCQkweDAwMDAwMDAyCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogU3RydWN0dXJlcy4KKyAqLworCitzdHJ1Y3QgdXZjX2RldmljZTsKKworLyogVE9ETzogUHV0IHRoZSBtb3N0IGZyZXF1ZW50bHkgYWNjZXNzZWQgZmllbGRzIGF0IHRoZSBiZWdpbm5pbmcgb2YKKyAqIHN0cnVjdHVyZXMgdG8gbWF4aW1pemUgY2FjaGUgZWZmaWNpZW5jeS4KKyAqLworc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCB7CisJX191MTYgYm1IaW50OworCV9fdTggIGJGb3JtYXRJbmRleDsKKwlfX3U4ICBiRnJhbWVJbmRleDsKKwlfX3UzMiBkd0ZyYW1lSW50ZXJ2YWw7CisJX191MTYgd0tleUZyYW1lUmF0ZTsKKwlfX3UxNiB3UEZyYW1lUmF0ZTsKKwlfX3UxNiB3Q29tcFF1YWxpdHk7CisJX191MTYgd0NvbXBXaW5kb3dTaXplOworCV9fdTE2IHdEZWxheTsKKwlfX3UzMiBkd01heFZpZGVvRnJhbWVTaXplOworCV9fdTMyIGR3TWF4UGF5bG9hZFRyYW5zZmVyU2l6ZTsKKwlfX3UzMiBkd0Nsb2NrRnJlcXVlbmN5OworCV9fdTggIGJtRnJhbWluZ0luZm87CisJX191OCAgYlByZWZlcmVkVmVyc2lvbjsKKwlfX3U4ICBiTWluVmVyc2lvbjsKKwlfX3U4ICBiTWF4VmVyc2lvbjsKK307CisKK3N0cnVjdCB1dmNfbWVudV9pbmZvIHsKKwlfX3UzMiB2YWx1ZTsKKwlfX3U4IG5hbWVbMzJdOworfTsKKworc3RydWN0IHV2Y19jb250cm9sX2luZm8geworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG1hcHBpbmdzOworCisJX191OCBlbnRpdHlbMTZdOworCV9fdTggaW5kZXg7CisJX191OCBzZWxlY3RvcjsKKworCV9fdTE2IHNpemU7CisJX191MzIgZmxhZ3M7Cit9OworCitzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCisJc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmN0cmw7CisKKwlfX3UzMiBpZDsKKwlfX3U4IG5hbWVbMzJdOworCV9fdTggZW50aXR5WzE2XTsKKwlfX3U4IHNlbGVjdG9yOworCisJX191OCBzaXplOworCV9fdTggb2Zmc2V0OworCWVudW0gdjRsMl9jdHJsX3R5cGUgdjRsMl90eXBlOworCV9fdTMyIGRhdGFfdHlwZTsKKworCXN0cnVjdCB1dmNfbWVudV9pbmZvICptZW51X2luZm87CisJX191MzIgbWVudV9jb3VudDsKK307CisKK3N0cnVjdCB1dmNfY29udHJvbCB7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqaW5mbzsKKworCV9fdTggaW5kZXg7CS8qIFVzZWQgdG8gbWF0Y2ggdGhlIHV2Y19jb250cm9sIGVudHJ5IHdpdGggYQorCQkJICAgdXZjX2NvbnRyb2xfaW5mby4gKi8KKwlfX3U4IGRpcnR5IDogMSwKKwkgICAgIGxvYWRlZCA6IDEsCisJICAgICBtb2RpZmllZCA6IDE7CisKKwlfX3U4ICpkYXRhOworfTsKKworc3RydWN0IHV2Y19mb3JtYXRfZGVzYyB7CisJY2hhciAqbmFtZTsKKwlfX3U4IGd1aWRbMTZdOworCV9fdTMyIGZjYzsKK307CisKKy8qIFRoZSB0ZXJtICdlbnRpdHknIHJlZmVycyB0byBib3RoIFVWQyB1bml0cyBhbmQgVVZDIHRlcm1pbmFscy4KKyAqCisgKiBUaGUgdHlwZSBmaWVsZCBpcyBlaXRoZXIgdGhlIHRlcm1pbmFsIHR5cGUgKHdUZXJtaW5hbFR5cGUgaW4gdGhlIHRlcm1pbmFsCisgKiBkZXNjcmlwdG9yKSwgb3IgdGhlIHVuaXQgdHlwZSAoYkRlc2NyaXB0b3JTdWJ0eXBlIGluIHRoZSB1bml0IGRlc2NyaXB0b3IpLgorICogQXMgdGhlIGJEZXNjcmlwdG9yU3VidHlwZSBmaWVsZCBpcyBvbmUgYnl0ZSBsb25nLCB0aGUgdHlwZSB2YWx1ZSB3aWxsCisgKiBhbHdheXMgaGF2ZSBhIG51bGwgTVNCIGZvciB1bml0cy4gQWxsIHRlcm1pbmFsIHR5cGVzIGRlZmluZWQgYnkgdGhlIFVWQworICogc3BlY2lmaWNhdGlvbiBoYXZlIGEgbm9uLW51bGwgTVNCLCBzbyBpdCBpcyBzYWZlIHRvIHVzZSB0aGUgTVNCIHRvCisgKiBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdW5pdHMgYW5kIHRlcm1pbmFscyBhcyBsb25nIGFzIHRoZSBkZXNjcmlwdG9yIHBhcnNpbmcKKyAqIGNvZGUgbWFrZXMgc3VyZSB0ZXJtaW5hbCB0eXBlcyBoYXZlIGEgbm9uLW51bGwgTVNCLgorICoKKyAqIEZvciB0ZXJtaW5hbHMsIHRoZSB0eXBlJ3MgbW9zdCBzaWduaWZpY2FudCBiaXQgc3RvcmVzIHRoZSB0ZXJtaW5hbAorICogZGlyZWN0aW9uIChlaXRoZXIgVVZDX1RFUk1fSU5QVVQgb3IgVVZDX1RFUk1fT1VUUFVUKS4gVGhlIHR5cGUgZmllbGQgc2hvdWxkCisgKiBhbHdheXMgYmUgYWNjZXNzZWQgd2l0aCB0aGUgVVZDX0VOVElUWV8qIG1hY3JvcyBhbmQgbmV2ZXIgZGlyZWN0bHkuCisgKi8KKworc3RydWN0IHV2Y19lbnRpdHkgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsJCS8qIEVudGl0eSBhcyBwYXJ0IG9mIGEgVVZDIGRldmljZS4gKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGNoYWluOwkJLyogRW50aXR5IGFzIHBhcnQgb2YgYSB2aWRlbyBkZXZpY2UKKwkJCQkJICogY2hhaW4uICovCisJX191OCBpZDsKKwlfX3UxNiB0eXBlOworCWNoYXIgbmFtZVs2NF07CisKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQlfX3UxNiB3T2JqZWN0aXZlRm9jYWxMZW5ndGhNaW47CisJCQlfX3UxNiB3T2JqZWN0aXZlRm9jYWxMZW5ndGhNYXg7CisJCQlfX3UxNiB3T2N1bGFyRm9jYWxMZW5ndGg7CisJCQlfX3U4ICBiQ29udHJvbFNpemU7CisJCQlfX3U4ICAqYm1Db250cm9sczsKKwkJfSBjYW1lcmE7CisKKwkJc3RydWN0IHsKKwkJCV9fdTggIGJDb250cm9sU2l6ZTsKKwkJCV9fdTggICpibUNvbnRyb2xzOworCQkJX191OCAgYlRyYW5zcG9ydE1vZGVTaXplOworCQkJX191OCAgKmJtVHJhbnNwb3J0TW9kZXM7CisJCX0gbWVkaWE7CisKKwkJc3RydWN0IHsKKwkJCV9fdTggIGJTb3VyY2VJRDsKKwkJfSBvdXRwdXQ7CisKKwkJc3RydWN0IHsKKwkJCV9fdTggIGJTb3VyY2VJRDsKKwkJCV9fdTE2IHdNYXhNdWx0aXBsaWVyOworCQkJX191OCAgYkNvbnRyb2xTaXplOworCQkJX191OCAgKmJtQ29udHJvbHM7CisJCQlfX3U4ICBibVZpZGVvU3RhbmRhcmRzOworCQl9IHByb2Nlc3Npbmc7CisKKwkJc3RydWN0IHsKKwkJCV9fdTggIGJOckluUGluczsKKwkJCV9fdTggICpiYVNvdXJjZUlEOworCQl9IHNlbGVjdG9yOworCisJCXN0cnVjdCB7CisJCQlfX3U4ICBndWlkRXh0ZW5zaW9uQ29kZVsxNl07CisJCQlfX3U4ICBiTnVtQ29udHJvbHM7CisJCQlfX3U4ICBiTnJJblBpbnM7CisJCQlfX3U4ICAqYmFTb3VyY2VJRDsKKwkJCV9fdTggIGJDb250cm9sU2l6ZTsKKwkJCV9fdTggICpibUNvbnRyb2xzOworCQkJX191OCAgKmJtQ29udHJvbHNUeXBlOworCQl9IGV4dGVuc2lvbjsKKwl9OworCisJdW5zaWduZWQgaW50IG5jb250cm9sczsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmNvbnRyb2xzOworfTsKKworc3RydWN0IHV2Y19mcmFtZSB7CisJX191OCAgYkZyYW1lSW5kZXg7CisJX191OCAgYm1DYXBhYmlsaXRpZXM7CisJX191MTYgd1dpZHRoOworCV9fdTE2IHdIZWlnaHQ7CisJX191MzIgZHdNaW5CaXRSYXRlOworCV9fdTMyIGR3TWF4Qml0UmF0ZTsKKwlfX3UzMiBkd01heFZpZGVvRnJhbWVCdWZmZXJTaXplOworCV9fdTggIGJGcmFtZUludGVydmFsVHlwZTsKKwlfX3UzMiBkd0RlZmF1bHRGcmFtZUludGVydmFsOworCV9fdTMyICpkd0ZyYW1lSW50ZXJ2YWw7Cit9OworCitzdHJ1Y3QgdXZjX2Zvcm1hdCB7CisJX191OCB0eXBlOworCV9fdTggaW5kZXg7CisJX191OCBicHA7CisJX191OCBjb2xvcnNwYWNlOworCV9fdTMyIGZjYzsKKwlfX3UzMiBmbGFnczsKKworCWNoYXIgbmFtZVszMl07CisKKwl1bnNpZ25lZCBpbnQgbmZyYW1lczsKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZTsKK307CisKK3N0cnVjdCB1dmNfc3RyZWFtaW5nX2hlYWRlciB7CisJX191OCBiTnVtRm9ybWF0czsKKwlfX3U4IGJFbmRwb2ludEFkZHJlc3M7CisJX191OCBiVGVybWluYWxMaW5rOworCV9fdTggYkNvbnRyb2xTaXplOworCV9fdTggKmJtYUNvbnRyb2xzOworCS8qIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSB1c2VkIGJ5IGlucHV0IGhlYWRlcnMgb25seS4gKi8KKwlfX3U4IGJtSW5mbzsKKwlfX3U4IGJTdGlsbENhcHR1cmVNZXRob2Q7CisJX191OCBiVHJpZ2dlclN1cHBvcnQ7CisJX191OCBiVHJpZ2dlclVzYWdlOworfTsKKworc3RydWN0IHV2Y19zdHJlYW1pbmcgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKworCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmOworCWludCBpbnRmbnVtOworCV9fdTE2IG1heHBzaXplOworCisJc3RydWN0IHV2Y19zdHJlYW1pbmdfaGVhZGVyIGhlYWRlcjsKKworCXVuc2lnbmVkIGludCBuZm9ybWF0czsKKwlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0OworCisJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCBjdHJsOworCXN0cnVjdCB1dmNfZm9ybWF0ICpjdXJfZm9ybWF0OworCXN0cnVjdCB1dmNfZnJhbWUgKmN1cl9mcmFtZTsKKworCXN0cnVjdCBtdXRleCBtdXRleDsKK307CisKK2VudW0gdXZjX2J1ZmZlcl9zdGF0ZSB7CisJVVZDX0JVRl9TVEFURV9JRExFICAgICAgID0gMCwKKwlVVkNfQlVGX1NUQVRFX1FVRVVFRCAgICAgPSAxLAorCVVWQ19CVUZfU1RBVEVfQUNUSVZFICAgICA9IDIsCisJVVZDX0JVRl9TVEFURV9ET05FICAgICAgID0gMywKKwlVVkNfQlVGX1NUQVRFX0VSUk9SICAgICAgPSA0LAorfTsKKworc3RydWN0IHV2Y19idWZmZXIgeworCXVuc2lnbmVkIGxvbmcgdm1hX3VzZV9jb3VudDsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHN0cmVhbTsKKworCS8qIFRvdWNoZWQgYnkgaW50ZXJydXB0IGhhbmRsZXIuICovCisJc3RydWN0IHY0bDJfYnVmZmVyIGJ1ZjsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHF1ZXVlOworCXdhaXRfcXVldWVfaGVhZF90IHdhaXQ7CisJZW51bSB1dmNfYnVmZmVyX3N0YXRlIHN0YXRlOworfTsKKworI2RlZmluZSBVVkNfUVVFVUVfU1RSRUFNSU5HCQkoMSA8PCAwKQorI2RlZmluZSBVVkNfUVVFVUVfRElTQ09OTkVDVEVECQkoMSA8PCAxKQorI2RlZmluZSBVVkNfUVVFVUVfRFJPUF9JTkNPTVBMRVRFCSgxIDw8IDIpCisKK3N0cnVjdCB1dmNfdmlkZW9fcXVldWUgeworCXZvaWQgKm1lbTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7CisJX191MzIgc2VxdWVuY2U7CisKKwl1bnNpZ25lZCBpbnQgY291bnQ7CisJdW5zaWduZWQgaW50IGJ1Zl9zaXplOworCXN0cnVjdCB1dmNfYnVmZmVyIGJ1ZmZlcltVVkNfTUFYX1ZJREVPX0JVRkZFUlNdOworCXN0cnVjdCBtdXRleCBtdXRleDsJLyogcHJvdGVjdHMgYnVmZmVycyBhbmQgbWFpbnF1ZXVlICovCisJc3BpbmxvY2tfdCBpcnFsb2NrOwkvKiBwcm90ZWN0cyBpcnFxdWV1ZSAqLworCisJc3RydWN0IGxpc3RfaGVhZCBtYWlucXVldWU7CisJc3RydWN0IGxpc3RfaGVhZCBpcnFxdWV1ZTsKK307CisKK3N0cnVjdCB1dmNfdmlkZW9fZGV2aWNlIHsKKwlzdHJ1Y3QgdXZjX2RldmljZSAqZGV2OworCXN0cnVjdCB2aWRlb19kZXZpY2UgKnZkZXY7CisJYXRvbWljX3QgYWN0aXZlOworCXVuc2lnbmVkIGludCBmcm96ZW4gOiAxOworCisJc3RydWN0IGxpc3RfaGVhZCBpdGVybXM7CisJc3RydWN0IHV2Y19lbnRpdHkgKm90ZXJtOworCXN0cnVjdCB1dmNfZW50aXR5ICpwcm9jZXNzaW5nOworCXN0cnVjdCB1dmNfZW50aXR5ICpzZWxlY3RvcjsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGV4dGVuc2lvbnM7CisJc3RydWN0IG11dGV4IGN0cmxfbXV0ZXg7CisKKwlzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlIHF1ZXVlOworCisJLyogVmlkZW8gc3RyZWFtaW5nIG9iamVjdCwgbXVzdCBhbHdheXMgYmUgbm9uLU5VTEwuICovCisJc3RydWN0IHV2Y19zdHJlYW1pbmcgKnN0cmVhbWluZzsKKworCXZvaWQgKCpkZWNvZGUpIChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJCXN0cnVjdCB1dmNfYnVmZmVyICpidWYpOworCisJLyogQ29udGV4dCBkYXRhIHVzZWQgYnkgdGhlIGJ1bGsgY29tcGxldGlvbiBoYW5kbGVyLiAqLworCXN0cnVjdCB7CisJCV9fdTggaGVhZGVyWzI1Nl07CisJCXVuc2lnbmVkIGludCBoZWFkZXJfc2l6ZTsKKwkJaW50IHNraXBfcGF5bG9hZDsKKwkJX191MzIgcGF5bG9hZF9zaXplOworCQlfX3UzMiBtYXhfcGF5bG9hZF9zaXplOworCX0gYnVsazsKKworCXN0cnVjdCB1cmIgKnVyYltVVkNfVVJCU107CisJY2hhciAqdXJiX2J1ZmZlcltVVkNfVVJCU107CisKKwlfX3U4IGxhc3RfZmlkOworfTsKKworZW51bSB1dmNfZGV2aWNlX3N0YXRlIHsKKwlVVkNfREVWX0RJU0NPTk5FQ1RFRCA9IDEsCit9OworCitzdHJ1Y3QgdXZjX2RldmljZSB7CisJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXY7CisJc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGY7CisJX191MzIgcXVpcmtzOworCWludCBpbnRmbnVtOworCWNoYXIgbmFtZVszMl07CisKKwllbnVtIHV2Y19kZXZpY2Vfc3RhdGUgc3RhdGU7CisJc3RydWN0IGtyZWYga3JlZjsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisKKwkvKiBWaWRlbyBjb250cm9sIGludGVyZmFjZSAqLworCV9fdTE2IHV2Y192ZXJzaW9uOworCV9fdTMyIGNsb2NrX2ZyZXF1ZW5jeTsKKworCXN0cnVjdCBsaXN0X2hlYWQgZW50aXRpZXM7CisKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSB2aWRlbzsKKworCS8qIFN0YXR1cyBJbnRlcnJ1cHQgRW5kcG9pbnQgKi8KKwlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmludF9lcDsKKwlzdHJ1Y3QgdXJiICppbnRfdXJiOworCV9fdTggc3RhdHVzWzE2XTsKKwlzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dDsKKworCS8qIFZpZGVvIFN0cmVhbWluZyBpbnRlcmZhY2VzICovCisJc3RydWN0IGxpc3RfaGVhZCBzdHJlYW1pbmc7Cit9OworCitlbnVtIHV2Y19oYW5kbGVfc3RhdGUgeworCVVWQ19IQU5ETEVfUEFTU0lWRQk9IDAsCisJVVZDX0hBTkRMRV9BQ1RJVkUJPSAxLAorfTsKKworc3RydWN0IHV2Y19maCB7CisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKmRldmljZTsKKwllbnVtIHV2Y19oYW5kbGVfc3RhdGUgc3RhdGU7Cit9OworCitzdHJ1Y3QgdXZjX2RyaXZlciB7CisJc3RydWN0IHVzYl9kcml2ZXIgZHJpdmVyOworCisJc3RydWN0IG11dGV4IG9wZW5fbXV0ZXg7CS8qIHByb3RlY3RzIGZyb20gb3Blbi9kaXNjb25uZWN0IHJhY2UgKi8KKworCXN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlczsJLyogc3RydWN0IHV2Y19kZXZpY2UgbGlzdCAqLworCXN0cnVjdCBsaXN0X2hlYWQgY29udHJvbHM7CS8qIHN0cnVjdCB1dmNfY29udHJvbF9pbmZvIGxpc3QgKi8KKwlzdHJ1Y3QgbXV0ZXggY3RybF9tdXRleDsJLyogcHJvdGVjdHMgY29udHJvbHMgYW5kIGRldmljZXMKKwkJCQkJICAgbGlzdHMgKi8KK307CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogRGVidWdnaW5nLCBwcmludGluZyBhbmQgbG9nZ2luZworICovCisKKyNkZWZpbmUgVVZDX1RSQUNFX1BST0JFCQkoMSA8PCAwKQorI2RlZmluZSBVVkNfVFJBQ0VfREVTQ1IJCSgxIDw8IDEpCisjZGVmaW5lIFVWQ19UUkFDRV9DT05UUk9MCSgxIDw8IDIpCisjZGVmaW5lIFVWQ19UUkFDRV9GT1JNQVQJKDEgPDwgMykKKyNkZWZpbmUgVVZDX1RSQUNFX0NBUFRVUkUJKDEgPDwgNCkKKyNkZWZpbmUgVVZDX1RSQUNFX0NBTExTCQkoMSA8PCA1KQorI2RlZmluZSBVVkNfVFJBQ0VfSU9DVEwJCSgxIDw8IDYpCisjZGVmaW5lIFVWQ19UUkFDRV9GUkFNRQkJKDEgPDwgNykKKyNkZWZpbmUgVVZDX1RSQUNFX1NVU1BFTkQJKDEgPDwgOCkKKyNkZWZpbmUgVVZDX1RSQUNFX1NUQVRVUwkoMSA8PCA5KQorCitleHRlcm4gdW5zaWduZWQgaW50IHV2Y190cmFjZV9wYXJhbTsKKworI2RlZmluZSB1dmNfdHJhY2UoZmxhZywgbXNnLi4uKSBcCisJZG8geyBcCisJCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBmbGFnKSBcCisJCQlwcmludGsoS0VSTl9ERUJVRyAidXZjdmlkZW86ICIgbXNnKTsgXAorCX0gd2hpbGUgKDApCisKKyNkZWZpbmUgdXZjX3ByaW50ayhsZXZlbCwgbXNnLi4uKSBcCisJcHJpbnRrKGxldmVsICJ1dmN2aWRlbzogIiBtc2cpCisKKyNkZWZpbmUgVVZDX0dVSURfRk9STUFUICIlMDJ4JTAyeCUwMnglMDJ4LSUwMnglMDJ4LSUwMnglMDJ4LSUwMnglMDJ4LSIgXAorCQkJIiUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIKKyNkZWZpbmUgVVZDX0dVSURfQVJHUyhndWlkKSBcCisJKGd1aWQpWzNdLCAgKGd1aWQpWzJdLCAgKGd1aWQpWzFdLCAgKGd1aWQpWzBdLCBcCisJKGd1aWQpWzVdLCAgKGd1aWQpWzRdLCBcCisJKGd1aWQpWzddLCAgKGd1aWQpWzZdLCBcCisJKGd1aWQpWzhdLCAgKGd1aWQpWzldLCBcCisJKGd1aWQpWzEwXSwgKGd1aWQpWzExXSwgKGd1aWQpWzEyXSwgXAorCShndWlkKVsxM10sIChndWlkKVsxNF0sIChndWlkKVsxNV0KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEludGVybmFsIGZ1bmN0aW9ucy4KKyAqLworCisvKiBDb3JlIGRyaXZlciAqLworZXh0ZXJuIHN0cnVjdCB1dmNfZHJpdmVyIHV2Y19kcml2ZXI7CitleHRlcm4gdm9pZCB1dmNfZGVsZXRlKHN0cnVjdCBrcmVmICprcmVmKTsKKworLyogVmlkZW8gYnVmZmVycyBxdWV1ZSBtYW5hZ2VtZW50LiAqLworZXh0ZXJuIHZvaWQgdXZjX3F1ZXVlX2luaXQoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUpOworZXh0ZXJuIGludCB1dmNfYWxsb2NfYnVmZmVycyhzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwkJdW5zaWduZWQgaW50IG5idWZmZXJzLCB1bnNpZ25lZCBpbnQgYnVmbGVuZ3RoKTsKK2V4dGVybiBpbnQgdXZjX2ZyZWVfYnVmZmVycyhzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSk7CitleHRlcm4gaW50IHV2Y19xdWVyeV9idWZmZXIoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJCXN0cnVjdCB2NGwyX2J1ZmZlciAqdjRsMl9idWYpOworZXh0ZXJuIGludCB1dmNfcXVldWVfYnVmZmVyKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCQlzdHJ1Y3QgdjRsMl9idWZmZXIgKnY0bDJfYnVmKTsKK2V4dGVybiBpbnQgdXZjX2RlcXVldWVfYnVmZmVyKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCQlzdHJ1Y3QgdjRsMl9idWZmZXIgKnY0bDJfYnVmLCBpbnQgbm9uYmxvY2tpbmcpOworZXh0ZXJuIGludCB1dmNfcXVldWVfZW5hYmxlKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLCBpbnQgZW5hYmxlKTsKK2V4dGVybiB2b2lkIHV2Y19xdWV1ZV9jYW5jZWwoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsIGludCBkaXNjb25uZWN0KTsKK2V4dGVybiBzdHJ1Y3QgdXZjX2J1ZmZlciAqdXZjX3F1ZXVlX25leHRfYnVmZmVyKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCQlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmKTsKK2V4dGVybiB1bnNpZ25lZCBpbnQgdXZjX3F1ZXVlX3BvbGwoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJCXN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KTsKK3N0YXRpYyBpbmxpbmUgaW50IHV2Y19xdWV1ZV9zdHJlYW1pbmcoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUpCit7CisJcmV0dXJuIHF1ZXVlLT5mbGFncyAmIFVWQ19RVUVVRV9TVFJFQU1JTkc7Cit9CisKKy8qIFY0TDIgaW50ZXJmYWNlICovCitleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1dmNfZm9wczsKKworLyogVmlkZW8gKi8KK2V4dGVybiBpbnQgdXZjX3ZpZGVvX2luaXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKTsKK2V4dGVybiBpbnQgdXZjX3ZpZGVvX3N1c3BlbmQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKTsKK2V4dGVybiBpbnQgdXZjX3ZpZGVvX3Jlc3VtZShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pOworZXh0ZXJuIGludCB1dmNfdmlkZW9fZW5hYmxlKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywgaW50IGVuYWJsZSk7CitleHRlcm4gaW50IHV2Y19wcm9iZV92aWRlbyhzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgKnByb2JlKTsKK2V4dGVybiBpbnQgdXZjX3F1ZXJ5X2N0cmwoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwgX191OCBxdWVyeSwgX191OCB1bml0LAorCQlfX3U4IGludGZudW0sIF9fdTggY3MsIHZvaWQgKmRhdGEsIF9fdTE2IHNpemUpOworZXh0ZXJuIGludCB1dmNfc2V0X3ZpZGVvX2N0cmwoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sICpjdHJsLCBpbnQgcHJvYmUpOworCisvKiBTdGF0dXMgKi8KK2V4dGVybiBpbnQgdXZjX3N0YXR1c19pbml0KHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgdXZjX3N0YXR1c19jbGVhbnVwKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCB1dmNfc3RhdHVzX3N1c3BlbmQoc3RydWN0IHV2Y19kZXZpY2UgKmRldik7CitleHRlcm4gaW50IHV2Y19zdGF0dXNfcmVzdW1lKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpOworCisvKiBDb250cm9scyAqLworZXh0ZXJuIHN0cnVjdCB1dmNfY29udHJvbCAqdXZjX2ZpbmRfY29udHJvbChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCV9fdTMyIHY0bDJfaWQsIHN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICoqbWFwcGluZyk7CitleHRlcm4gaW50IHV2Y19xdWVyeV92NGwyX2N0cmwoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdjRsMl9xdWVyeWN0cmwgKnY0bDJfY3RybCk7CisKK2V4dGVybiBpbnQgdXZjX2N0cmxfYWRkX2luZm8oc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmluZm8pOworZXh0ZXJuIGludCB1dmNfY3RybF9hZGRfbWFwcGluZyhzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwcGluZyk7CitleHRlcm4gaW50IHV2Y19jdHJsX2luaXRfZGV2aWNlKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgdXZjX2N0cmxfY2xlYW51cF9kZXZpY2Uoc3RydWN0IHV2Y19kZXZpY2UgKmRldik7CitleHRlcm4gaW50IHV2Y19jdHJsX3Jlc3VtZV9kZXZpY2Uoc3RydWN0IHV2Y19kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCB1dmNfY3RybF9pbml0KHZvaWQpOworCitleHRlcm4gaW50IHV2Y19jdHJsX2JlZ2luKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbyk7CitleHRlcm4gaW50IF9fdXZjX2N0cmxfY29tbWl0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywgaW50IHJvbGxiYWNrKTsKK3N0YXRpYyBpbmxpbmUgaW50IHV2Y19jdHJsX2NvbW1pdChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pCit7CisJcmV0dXJuIF9fdXZjX2N0cmxfY29tbWl0KHZpZGVvLCAwKTsKK30KK3N0YXRpYyBpbmxpbmUgaW50IHV2Y19jdHJsX3JvbGxiYWNrKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbykKK3sKKwlyZXR1cm4gX191dmNfY3RybF9jb21taXQodmlkZW8sIDEpOworfQorCitleHRlcm4gaW50IHV2Y19jdHJsX2dldChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB2NGwyX2V4dF9jb250cm9sICp4Y3RybCk7CitleHRlcm4gaW50IHV2Y19jdHJsX3NldChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB2NGwyX2V4dF9jb250cm9sICp4Y3RybCk7CisKK2V4dGVybiBpbnQgdXZjX3h1X2N0cmxfcXVlcnkoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdXZjX3h1X2NvbnRyb2wgKmN0cmwsIGludCBzZXQpOworCisvKiBVdGlsaXR5IGZ1bmN0aW9ucyAqLworZXh0ZXJuIHZvaWQgdXZjX3NpbXBsaWZ5X2ZyYWN0aW9uKHVpbnQzMl90ICpudW1lcmF0b3IsIHVpbnQzMl90ICpkZW5vbWluYXRvciwKKwkJdW5zaWduZWQgaW50IG5fdGVybXMsIHVuc2lnbmVkIGludCB0aHJlc2hvbGQpOworZXh0ZXJuIHVpbnQzMl90IHV2Y19mcmFjdGlvbl90b19pbnRlcnZhbCh1aW50MzJfdCBudW1lcmF0b3IsCisJCXVpbnQzMl90IGRlbm9taW5hdG9yKTsKK2V4dGVybiBzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKnV2Y19maW5kX2VuZHBvaW50KAorCQlzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICphbHRzLCBfX3U4IGVwYWRkcik7CisKKy8qIFF1aXJrcyBzdXBwb3J0ICovCit2b2lkIHV2Y192aWRlb19kZWNvZGVfaXNpZ2h0KHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmKTsKKworI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3ZpZGVvZGV2LmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3ZpZGVvZGV2LmMKaW5kZXggMzFlOGFmMC4uNzY0OTg2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby92aWRlb2Rldi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdmlkZW9kZXYuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9rbW9kLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAKQEAgLTUxLDEyICs1Miw1MSBAQAogI2RlZmluZSBWSURFT19OVU1fREVWSUNFUwkyNTYKICNkZWZpbmUgVklERU9fTkFNRSAgICAgICAgICAgICAgInZpZGVvNGxpbnV4IgogCitzdHJ1Y3Qgc3RkX2Rlc2NyIHsKKwl2NGwyX3N0ZF9pZCBzdGQ7CisJY29uc3QgY2hhciAqZGVzY3I7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHN0ZF9kZXNjciBzdGFuZGFyZHNbXSA9IHsKKwl7IFY0TDJfU1REX05UU0MsIAkiTlRTQyIgICAgICB9LAorCXsgVjRMMl9TVERfTlRTQ19NLCAJIk5UU0MtTSIgICAgfSwKKwl7IFY0TDJfU1REX05UU0NfTV9KUCwgCSJOVFNDLU0tSlAiIH0sCisJeyBWNEwyX1NURF9OVFNDX01fS1IsCSJOVFNDLU0tS1IiIH0sCisJeyBWNEwyX1NURF9OVFNDXzQ0MywgCSJOVFNDLTQ0MyIgIH0sCisJeyBWNEwyX1NURF9QQUwsIAkiUEFMIiAgICAgICB9LAorCXsgVjRMMl9TVERfUEFMX0JHLCAJIlBBTC1CRyIgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9CLCAJIlBBTC1CIiAgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9CMSwgCSJQQUwtQjEiICAgIH0sCisJeyBWNEwyX1NURF9QQUxfRywgCSJQQUwtRyIgICAgIH0sCisJeyBWNEwyX1NURF9QQUxfSCwgCSJQQUwtSCIgICAgIH0sCisJeyBWNEwyX1NURF9QQUxfSSwgCSJQQUwtSSIgICAgIH0sCisJeyBWNEwyX1NURF9QQUxfREssIAkiUEFMLURLIiAgICB9LAorCXsgVjRMMl9TVERfUEFMX0QsIAkiUEFMLUQiICAgICB9LAorCXsgVjRMMl9TVERfUEFMX0QxLCAJIlBBTC1EMSIgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9LLCAJIlBBTC1LIiAgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9NLCAJIlBBTC1NIiAgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9OLCAJIlBBTC1OIiAgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9OYywgCSJQQUwtTmMiICAgIH0sCisJeyBWNEwyX1NURF9QQUxfNjAsIAkiUEFMLTYwIiAgICB9LAorCXsgVjRMMl9TVERfU0VDQU0sIAkiU0VDQU0iICAgICB9LAorCXsgVjRMMl9TVERfU0VDQU1fQiwgCSJTRUNBTS1CIiAgIH0sCisJeyBWNEwyX1NURF9TRUNBTV9HLCAJIlNFQ0FNLUciICAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNX0gsIAkiU0VDQU0tSCIgICB9LAorCXsgVjRMMl9TVERfU0VDQU1fREssIAkiU0VDQU0tREsiICB9LAorCXsgVjRMMl9TVERfU0VDQU1fRCwgCSJTRUNBTS1EIiAgIH0sCisJeyBWNEwyX1NURF9TRUNBTV9LLCAJIlNFQ0FNLUsiICAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNX0sxLCAJIlNFQ0FNLUsxIiAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNX0wsIAkiU0VDQU0tTCIgICB9LAorCXsgVjRMMl9TVERfU0VDQU1fTEMsIAkiU0VDQU0tTGMiICB9LAorCXsgMCwgCQkJIlVua25vd24iICAgfQorfTsKKwogLyogdmlkZW80bGludXggc3RhbmRhcmQgSUQgY29udmVyc2lvbiB0byBzdGFuZGFyZCBuYW1lCiAgKi8KLWNoYXIgKnY0bDJfbm9ybV90b19uYW1lKHY0bDJfc3RkX2lkIGlkKQorY29uc3QgY2hhciAqdjRsMl9ub3JtX3RvX25hbWUodjRsMl9zdGRfaWQgaWQpCiB7Ci0JY2hhciAqbmFtZTsKIAl1MzIgbXlpZCA9IGlkOworCWludCBpOwogCiAJLyogSEFDSzogcHBjMzIgYXJjaGl0ZWN0dXJlIGRvZXNuJ3QgaGF2ZSBfX3VjbXBkaTIgZnVuY3Rpb24gdG8gaGFuZGxlCiAJICAgNjQgYml0IGNvbXBhcmF0aW9ucy4gU28sIG9uIHRoYXQgYXJjaGl0ZWN0dXJlLCB3aXRoIHNvbWUgZ2NjCkBAIC02NCwxMTAgKzEwNCwxNyBAQAogCSAqLwogCUJVR19PTihteWlkICE9IGlkKTsKIAotCXN3aXRjaCAobXlpZCkgewotCWNhc2UgVjRMMl9TVERfUEFMOgotCQluYW1lID0gIlBBTCI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0JHOgotCQluYW1lID0gIlBBTC1CRyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0RLOgotCQluYW1lID0gIlBBTC1ESyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0I6Ci0JCW5hbWUgPSAiUEFMLUIiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9CMToKLQkJbmFtZSA9ICJQQUwtQjEiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9HOgotCQluYW1lID0gIlBBTC1HIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfSDoKLQkJbmFtZSA9ICJQQUwtSCI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0k6Ci0JCW5hbWUgPSAiUEFMLUkiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9EOgotCQluYW1lID0gIlBBTC1EIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfRDE6Ci0JCW5hbWUgPSAiUEFMLUQxIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfSzoKLQkJbmFtZSA9ICJQQUwtSyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX006Ci0JCW5hbWUgPSAiUEFMLU0iOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9OOgotCQluYW1lID0gIlBBTC1OIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfTmM6Ci0JCW5hbWUgPSAiUEFMLU5jIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfNjA6Ci0JCW5hbWUgPSAiUEFMLTYwIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9OVFNDOgotCQluYW1lID0gIk5UU0MiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX05UU0NfTToKLQkJbmFtZSA9ICJOVFNDLU0iOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX05UU0NfTV9KUDoKLQkJbmFtZSA9ICJOVFNDLU0tSlAiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX05UU0NfNDQzOgotCQluYW1lID0gIk5UU0MtNDQzIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9OVFNDX01fS1I6Ci0JCW5hbWUgPSAiTlRTQy1NLUtSIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTToKLQkJbmFtZSA9ICJTRUNBTSI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU1fREs6Ci0JCW5hbWUgPSAiU0VDQU0tREsiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNX0I6Ci0JCW5hbWUgPSAiU0VDQU0tQiI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU1fRDoKLQkJbmFtZSA9ICJTRUNBTS1EIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTV9HOgotCQluYW1lID0gIlNFQ0FNLUciOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNX0g6Ci0JCW5hbWUgPSAiU0VDQU0tSCI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU1fSzoKLQkJbmFtZSA9ICJTRUNBTS1LIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTV9LMToKLQkJbmFtZSA9ICJTRUNBTS1LMSI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU1fTDoKLQkJbmFtZSA9ICJTRUNBTS1MIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTV9MQzoKLQkJbmFtZSA9ICJTRUNBTS1MQyI7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCW5hbWUgPSAiVW5rbm93biI7Ci0JCWJyZWFrOwotCX0KLQotCXJldHVybiBuYW1lOworCWZvciAoaSA9IDA7IHN0YW5kYXJkc1tpXS5zdGQ7IGkrKykKKwkJaWYgKG15aWQgPT0gc3RhbmRhcmRzW2ldLnN0ZCkKKwkJCWJyZWFrOworCXJldHVybiBzdGFuZGFyZHNbaV0uZGVzY3I7CiB9CiBFWFBPUlRfU1lNQk9MKHY0bDJfbm9ybV90b19uYW1lKTsKIAogLyogRmlsbCBpbiB0aGUgZmllbGRzIG9mIGEgdjRsMl9zdGFuZGFyZCBzdHJ1Y3R1cmUgYWNjb3JkaW5nIHRvIHRoZQogICAgJ2lkJyBhbmQgJ3RyYW5zbWlzc2lvbicgcGFyYW1ldGVycy4gIFJldHVybnMgbmVnYXRpdmUgb24gZXJyb3IuICAqLwogaW50IHY0bDJfdmlkZW9fc3RkX2NvbnN0cnVjdChzdHJ1Y3QgdjRsMl9zdGFuZGFyZCAqdnMsCi0JCQkgICAgIGludCBpZCwgY2hhciAqbmFtZSkKKwkJCSAgICAgaW50IGlkLCBjb25zdCBjaGFyICpuYW1lKQogewogCXUzMiBpbmRleCA9IHZzLT5pbmRleDsKIApAQCAtNDk2LDYgKzQ0Myw3IEBACiAKIAlpZihtaW5vcj49VklERU9fTlVNX0RFVklDRVMpCiAJCXJldHVybiAtRU5PREVWOworCWxvY2tfa2VybmVsKCk7CiAJbXV0ZXhfbG9jaygmdmlkZW9kZXZfbG9jayk7CiAJdmZsPXZpZGVvX2RldmljZVttaW5vcl07CiAJaWYodmZsPT1OVUxMKSB7CkBAIC01MDUsNiArNDUzLDcgQEAKIAkJdmZsPXZpZGVvX2RldmljZVttaW5vcl07CiAJCWlmICh2Zmw9PU5VTEwpIHsKIAkJCW11dGV4X3VubG9jaygmdmlkZW9kZXZfbG9jayk7CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4gLUVOT0RFVjsKIAkJfQogCX0KQEAgLTUxOCw2ICs0NjcsNyBAQAogCX0KIAlmb3BzX3B1dChvbGRfZm9wcyk7CiAJbXV0ZXhfdW5sb2NrKCZ2aWRlb2Rldl9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtMTIxOCw5NSArMTE2OCw0MCBAQAogCWNhc2UgVklESU9DX0VOVU1TVEQ6CiAJewogCQlzdHJ1Y3QgdjRsMl9zdGFuZGFyZCAqcCA9IGFyZzsKLQkJdjRsMl9zdGRfaWQgaWQgPSB2ZmQtPnR2bm9ybXMsY3Vycl9pZD0wOwotCQl1bnNpZ25lZCBpbnQgaW5kZXggPSBwLT5pbmRleCxpOworCQl2NGwyX3N0ZF9pZCBpZCA9IHZmZC0+dHZub3JtcywgY3Vycl9pZCA9IDA7CisJCXVuc2lnbmVkIGludCBpbmRleCA9IHAtPmluZGV4LCBpLCBqID0gMDsKKwkJY29uc3QgY2hhciAqZGVzY3IgPSAiIjsKIAotCQlpZiAoaW5kZXg8MCkgewotCQkJcmV0PS1FSU5WQUw7Ci0JCQlicmVhazsKLQkJfQotCi0JCS8qIFJldHVybiBub3JtIGFycmF5IG9uIGEgY2Fub25pY2FsIHdheSAqLwotCQlmb3IgKGk9MDtpPD0gaW5kZXggJiYgaWQ7IGkrKykgewotCQkJaWYgKCAoaWQgJiBWNEwyX1NURF9QQUwpID09IFY0TDJfU1REX1BBTCkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUw7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfQkcpID09IFY0TDJfU1REX1BBTF9CRykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfQkc7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfREspID09IFY0TDJfU1REX1BBTF9ESykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfREs7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfQikgPT0gVjRMMl9TVERfUEFMX0IpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0I7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfQjEpID09IFY0TDJfU1REX1BBTF9CMSkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfQjE7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfRykgPT0gVjRMMl9TVERfUEFMX0cpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0c7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfSCkgPT0gVjRMMl9TVERfUEFMX0gpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0g7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfSSkgPT0gVjRMMl9TVERfUEFMX0kpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0k7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfRCkgPT0gVjRMMl9TVERfUEFMX0QpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0Q7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfRDEpID09IFY0TDJfU1REX1BBTF9EMSkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfRDE7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfSykgPT0gVjRMMl9TVERfUEFMX0spIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0s7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfTSkgPT0gVjRMMl9TVERfUEFMX00pIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX007Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfTikgPT0gVjRMMl9TVERfUEFMX04pIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX047Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfTmMpID09IFY0TDJfU1REX1BBTF9OYykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfTmM7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9QQUxfNjApID09IFY0TDJfU1REX1BBTF82MCkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9QQUxfNjA7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9OVFNDKSA9PSBWNEwyX1NURF9OVFNDKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX05UU0M7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9OVFNDX00pID09IFY0TDJfU1REX05UU0NfTSkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9OVFNDX007Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9OVFNDX01fSlApID09IFY0TDJfU1REX05UU0NfTV9KUCkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9OVFNDX01fSlA7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9OVFNDXzQ0MykgPT0gVjRMMl9TVERfTlRTQ180NDMpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfTlRTQ180NDM7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9OVFNDX01fS1IpID09IFY0TDJfU1REX05UU0NfTV9LUikgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9OVFNDX01fS1I7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTSkgPT0gVjRMMl9TVERfU0VDQU0pIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU07Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTV9ESykgPT0gVjRMMl9TVERfU0VDQU1fREspIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU1fREs7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTV9CKSA9PSBWNEwyX1NURF9TRUNBTV9CKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNX0I7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTV9EKSA9PSBWNEwyX1NURF9TRUNBTV9EKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNX0Q7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTV9HKSA9PSBWNEwyX1NURF9TRUNBTV9HKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNX0c7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTV9IKSA9PSBWNEwyX1NURF9TRUNBTV9IKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNX0g7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTV9LKSA9PSBWNEwyX1NURF9TRUNBTV9LKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNX0s7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTV9LMSkgPT0gVjRMMl9TVERfU0VDQU1fSzEpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU1fSzE7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTV9MKSA9PSBWNEwyX1NURF9TRUNBTV9MKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNX0w7Ci0JCQl9IGVsc2UgaWYgKCAoaWQgJiBWNEwyX1NURF9TRUNBTV9MQykgPT0gVjRMMl9TVERfU0VDQU1fTEMpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfU0VDQU1fTEM7Ci0JCQl9IGVsc2UgeworCQkvKiBSZXR1cm4gbm9ybSBhcnJheSBpbiBhIGNhbm9uaWNhbCB3YXkgKi8KKwkJZm9yIChpID0gMDsgaSA8PSBpbmRleCAmJiBpZDsgaSsrKSB7CisJCQkvKiBsYXN0IHN0ZCB2YWx1ZSBpbiB0aGUgc3RhbmRhcmRzIGFycmF5IGlzIDAsIHNvIHRoaXMKKwkJCSAgIHdoaWxlIGFsd2F5cyBlbmRzIHRoZXJlIHNpbmNlIChpZCAmIDApID09IDAuICovCisJCQl3aGlsZSAoKGlkICYgc3RhbmRhcmRzW2pdLnN0ZCkgIT0gc3RhbmRhcmRzW2pdLnN0ZCkKKwkJCQlqKys7CisJCQljdXJyX2lkID0gc3RhbmRhcmRzW2pdLnN0ZDsKKwkJCWRlc2NyID0gc3RhbmRhcmRzW2pdLmRlc2NyOworCQkJaisrOworCQkJaWYgKGN1cnJfaWQgPT0gMCkKIAkJCQlicmVhazsKLQkJCX0KLQkJCWlkICY9IH5jdXJyX2lkOworCQkJaWYgKGN1cnJfaWQgIT0gVjRMMl9TVERfUEFMICYmCisJCQkgICAgY3Vycl9pZCAhPSBWNEwyX1NURF9TRUNBTSAmJgorCQkJICAgIGN1cnJfaWQgIT0gVjRMMl9TVERfTlRTQykKKwkJCQlpZCAmPSB+Y3Vycl9pZDsKIAkJfQotCQlpZiAoaTw9aW5kZXgpCisJCWlmIChpIDw9IGluZGV4KQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKLQkJdjRsMl92aWRlb19zdGRfY29uc3RydWN0KHAsIGN1cnJfaWQsdjRsMl9ub3JtX3RvX25hbWUoY3Vycl9pZCkpOworCQl2NGwyX3ZpZGVvX3N0ZF9jb25zdHJ1Y3QocCwgY3Vycl9pZCwgZGVzY3IpOwogCQlwLT5pbmRleCA9IGluZGV4OwogCi0JCWRiZ2FyZyAoY21kLCAiaW5kZXg9JWQsIGlkPSVMZCwgbmFtZT0lcywgZnBzPSVkLyVkLCAiCisJCWRiZ2FyZyhjbWQsICJpbmRleD0lZCwgaWQ9JUxkLCBuYW1lPSVzLCBmcHM9JWQvJWQsICIKIAkJCQkiZnJhbWVsaW5lcz0lZFxuIiwgcC0+aW5kZXgsCiAJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylwLT5pZCwgcC0+bmFtZSwKIAkJCQlwLT5mcmFtZXBlcmlvZC5udW1lcmF0b3IsCiAJCQkJcC0+ZnJhbWVwZXJpb2QuZGVub21pbmF0b3IsCiAJCQkJcC0+ZnJhbWVsaW5lcyk7CiAKLQkJcmV0PTA7CisJCXJldCA9IDA7CiAJCWJyZWFrOwogCX0KIAljYXNlIFZJRElPQ19HX1NURDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdml2aS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby92aXZpLmMKaW5kZXggODQ1YmUxOC4uNWZmOWE1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby92aXZpLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby92aXZpLmMKQEAgLTMyNywxMyArMzI3LDE0IEBACiAJaW50IGhtYXggID0gYnVmLT52Yi5oZWlnaHQ7CiAJaW50IHdtYXggID0gYnVmLT52Yi53aWR0aDsKIAlzdHJ1Y3QgdGltZXZhbCB0czsKLQljaGFyICp0bXBidWYgPSBrbWFsbG9jKHdtYXggKiAyLCBHRlBfQVRPTUlDKTsKKwljaGFyICp0bXBidWY7CiAJdm9pZCAqdmJ1ZiA9IHZpZGVvYnVmX3RvX3ZtYWxsb2MoJmJ1Zi0+dmIpOwogCi0JaWYgKCF0bXBidWYpCisJaWYgKCF2YnVmKQogCQlyZXR1cm47CiAKLQlpZiAoIXZidWYpCisJdG1wYnVmID0ga21hbGxvYyh3bWF4ICogMiwgR0ZQX0FUT01JQyk7CisJaWYgKCF0bXBidWYpCiAJCXJldHVybjsKIAogCWZvciAoaCA9IDA7IGggPCBobWF4OyBoKyspIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0YmFzZS5jIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRiYXNlLmMKaW5kZXggZGIzYzg5Mi4uZDQwZDZkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRiYXNlLmMKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRiYXNlLmMKQEAgLTE2ODYsOSArMTY4NiwxNCBAQAogCQlpb2MtPmJ1c190eXBlID0gU0FTOwogCX0KIAotCWlmIChpb2MtPmJ1c190eXBlID09IFNBUyAmJiBtcHRfbXNpX2VuYWJsZSA9PSAtMSkKLQkJaW9jLT5tc2lfZW5hYmxlID0gMTsKLQllbHNlCisJaWYgKG1wdF9tc2lfZW5hYmxlID09IC0xKSB7CisJCS8qIEVuYWJsZSBvbiBTQVMsIGRpc2FibGUgb24gRkMgYW5kIFNQSSAqLworCQlpZiAoaW9jLT5idXNfdHlwZSA9PSBTQVMpCisJCQlpb2MtPm1zaV9lbmFibGUgPSAxOworCQllbHNlCisJCQlpb2MtPm1zaV9lbmFibGUgPSAwOworCX0gZWxzZQorCQkvKiBmb2xsb3cgZmxhZzogMCAtIGRpc2FibGU7IDEgLSBlbmFibGUgKi8KIAkJaW9jLT5tc2lfZW5hYmxlID0gbXB0X21zaV9lbmFibGU7CiAKIAlpZiAoaW9jLT5lcnJhdGFfZmxhZ18xMDY0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRjdGwuYyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0Y3RsLmMKaW5kZXggZTYzMGI1MC4uYzU5NDY1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRjdGwuYworKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGN0bC5jCkBAIC01NDgsMTEgKzU0OCwxNSBAQAogbXB0Y3RsX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxlcCwgaW50IG1vZGUpCiB7CiAJTVBUX0FEQVBURVIJKmlvYzsKKwlpbnQgcmV0OwogCisJbG9ja19rZXJuZWwoKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGlvYywgJmlvY19saXN0LCBsaXN0KQogCQlpb2MtPmFlbl9ldmVudF9yZWFkX2ZsYWc9MDsKIAotCXJldHVybiBmYXN5bmNfaGVscGVyKGZkLCBmaWxlcCwgbW9kZSwgJmFzeW5jX3F1ZXVlKTsKKwlyZXQgPSBmYXN5bmNfaGVscGVyKGZkLCBmaWxlcCwgbW9kZSwgJmFzeW5jX3F1ZXVlKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRzcGkuYyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c3BpLmMKaW5kZXggMjViY2ZjZi4uMWVmZmNhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRzcGkuYworKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNwaS5jCkBAIC0xMjY2LDEzICsxMjY2LDE4IEBACiBzdGF0aWMgaW50CiBtcHRzcGlfaW9jX3Jlc2V0KE1QVF9BREFQVEVSICppb2MsIGludCByZXNldF9waGFzZSkKIHsKLQlzdHJ1Y3QgX01QVF9TQ1NJX0hPU1QgKmhkID0gc2hvc3RfcHJpdihpb2MtPnNoKTsKIAlpbnQgcmM7CiAKIAlyYyA9IG1wdHNjc2loX2lvY19yZXNldChpb2MsIHJlc2V0X3BoYXNlKTsKIAotCWlmIChyZXNldF9waGFzZSA9PSBNUFRfSU9DX1BPU1RfUkVTRVQpCisJLyogb25seSB0cnkgdG8gZG8gYSByZW5lZ290aWF0aW9uIGlmIHdlJ3JlIHByb3Blcmx5IHNldCB1cAorCSAqIGlmIHdlIGdldCBhbiBpb2MgZmF1bHQgb24gYnJpbmd1cCwgaW9jLT5zaCB3aWxsIGJlIE5VTEwgKi8KKwlpZiAocmVzZXRfcGhhc2UgPT0gTVBUX0lPQ19QT1NUX1JFU0VUICYmCisJICAgIGlvYy0+c2gpIHsKKwkJc3RydWN0IF9NUFRfU0NTSV9IT1NUICpoZCA9IHNob3N0X3ByaXYoaW9jLT5zaCk7CisKIAkJbXB0c3BpX2R2X3JlbmVnb3RpYXRlKGhkKTsKKwl9CiAKIAlyZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvaTJvL2kyb19jb25maWcuYyBiL2RyaXZlcnMvbWVzc2FnZS9pMm8vaTJvX2NvbmZpZy5jCmluZGV4IGMwZmI3N2QuLjQyMzhkZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9pMm8vaTJvX2NvbmZpZy5jCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9pMm8vaTJvX2NvbmZpZy5jCkBAIC0xMDYxLDYgKzEwNjEsNyBAQAogCWlmICghdG1wKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWxvY2tfa2VybmVsKCk7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gKHZvaWQgKikoaTJvX2NmZ19pbmZvX2lkKyspOwogCXRtcC0+ZnAgPSBmaWxlOwogCXRtcC0+ZmFzeW5jID0gTlVMTDsKQEAgLTEwNzQsNiArMTA3NSw3IEBACiAJc3Bpbl9sb2NrX2lycXNhdmUoJmkyb19jb25maWdfbG9jaywgZmxhZ3MpOwogCW9wZW5fZmlsZXMgPSB0bXA7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTJvX2NvbmZpZ19sb2NrLCBmbGFncyk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMDgyLDE1ICsxMDg0LDE3IEBACiB7CiAJdWxvbmcgaWQgPSAodWxvbmcpIGZwLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IGkyb19jZmdfaW5mbyAqcDsKKwlpbnQgcmV0ID0gLUVCQURGOwogCisJbG9ja19rZXJuZWwoKTsKIAlmb3IgKHAgPSBvcGVuX2ZpbGVzOyBwOyBwID0gcC0+bmV4dCkKIAkJaWYgKHAtPnFfaWQgPT0gaWQpCiAJCQlicmVhazsKIAotCWlmICghcCkKLQkJcmV0dXJuIC1FQkFERjsKLQotCXJldHVybiBmYXN5bmNfaGVscGVyKGZkLCBmcCwgb24sICZwLT5mYXN5bmMpOworCWlmIChwKQorCQlyZXQgPSBmYXN5bmNfaGVscGVyKGZkLCBmcCwgb24sICZwLT5mYXN5bmMpOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGNmZ19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL2F0bWVsX3B3bS5jIGIvZHJpdmVycy9taXNjL2F0bWVsX3B3bS5jCmluZGV4IDBkNWNlMDMuLjViNWExNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9hdG1lbF9wd20uYworKysgYi9kcml2ZXJzL21pc2MvYXRtZWxfcHdtLmMKQEAgLTMzMiw3ICszMzIsNyBAQAogCXAtPmJhc2UgPSBpb3JlbWFwKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEpOwogCWlmICghcC0+YmFzZSkKIAkJZ290byBmYWlsOwotCXAtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgIm1jayIpOworCXAtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgInB3bV9jbGsiKTsKIAlpZiAoSVNfRVJSKHAtPmNsaykpIHsKIAkJc3RhdHVzID0gUFRSX0VSUihwLT5jbGspOwogCQlwLT5jbGsgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL2hkcHVmdHJzL2hkcHVfY3B1c3RhdGUuYyBiL2RyaXZlcnMvbWlzYy9oZHB1ZnRycy9oZHB1X2NwdXN0YXRlLmMKaW5kZXggZmY1MWFiNi4uMTc2ZmU0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2hkcHVmdHJzL2hkcHVfY3B1c3RhdGUuYworKysgYi9kcml2ZXJzL21pc2MvaGRwdWZ0cnMvaGRwdV9jcHVzdGF0ZS5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvaGRwdV9mZWF0dXJlcy5oPgpAQCAtMTUxLDcgKzE1MiwxMyBAQAogCiBzdGF0aWMgaW50IGNwdXN0YXRlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JcmV0dXJuIGNwdXN0YXRlX2dldF9yZWYoKGZpbGUtPmZfZmxhZ3MgJiBPX0VYQ0wpKTsKKwlpbnQgcmV0OworCisJbG9ja19rZXJuZWwoKTsKKwlyZXQgPSBjcHVzdGF0ZV9nZXRfcmVmKChmaWxlLT5mX2ZsYWdzICYgT19FWENMKSk7CisJdW5sb2NrX2tlcm5lbCgpOworCisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBjcHVzdGF0ZV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL3BoYW50b20uYyBiL2RyaXZlcnMvbWlzYy9waGFudG9tLmMKaW5kZXggNzFkMWM4NC4uMTg2MTYyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL3BoYW50b20uYworKysgYi9kcml2ZXJzL21pc2MvcGhhbnRvbS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L3BoYW50b20uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgpAQCAtMjEyLDEzICsyMTMsMTcgQEAKIAlzdHJ1Y3QgcGhhbnRvbV9kZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LAogCQkJc3RydWN0IHBoYW50b21fZGV2aWNlLCBjZGV2KTsKIAorCWxvY2tfa2VybmVsKCk7CiAJbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7CiAKLQlpZiAobXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXYtPm9wZW5fbG9jaykpCisJaWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZGV2LT5vcGVuX2xvY2spKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKwl9CiAKIAlpZiAoZGV2LT5vcGVuZWQpIHsKIAkJbXV0ZXhfdW5sb2NrKCZkZXYtPm9wZW5fbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC0yMjksNyArMjM0LDcgQEAKIAlhdG9taWNfc2V0KCZkZXYtPmNvdW50ZXIsIDApOwogCWRldi0+b3BlbmVkKys7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPm9wZW5fbG9jayk7Ci0KKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9zb255LWxhcHRvcC5jIGIvZHJpdmVycy9taXNjL3NvbnktbGFwdG9wLmMKaW5kZXggMDBlNDhlMi4uNjA3NzViZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL3NvbnktbGFwdG9wLmMKKysrIGIvZHJpdmVycy9taXNjL3NvbnktbGFwdG9wLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CkBAIC0xOTI3LDggKzE5MjgsMTAgQEAKIHN0YXRpYyBpbnQgc29ueXBpX21pc2Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAkvKiBGbHVzaCBpbnB1dCBxdWV1ZSBvbiBmaXJzdCBvcGVuICovCisJbG9ja19rZXJuZWwoKTsKIAlpZiAoYXRvbWljX2luY19yZXR1cm4oJnNvbnlwaV9jb21wYXQub3Blbl9jb3VudCkgPT0gMSkKIAkJa2ZpZm9fcmVzZXQoc29ueXBpX2NvbXBhdC5maWZvKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3QvaW14bW1jLmMgYi9kcml2ZXJzL21tYy9ob3N0L2lteG1tYy5jCmluZGV4IDk1ZjMzZTguLmVlZDIxMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbW1jL2hvc3QvaW14bW1jLmMKKysrIGIvZHJpdmVycy9tbWMvaG9zdC9pbXhtbWMuYwpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21tYy9ob3N0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW1jL2NhcmQuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogCiAjaW5jbHVkZSA8YXNtL2RtYS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgpAQCAtOTIsNiArOTMsOCBAQAogCXVuc2lnbmVkIGNoYXIJCWFjdHVhbF9idXNfd2lkdGg7CiAKIAlpbnQJCQlwcmV2X2NtZF9jb2RlOworCisJc3RydWN0IGNsawkJKmNsazsKIH07CiAKICNkZWZpbmUgSU1YTUNJX1BFTkRfSVJRX2IJMApAQCAtODQxLDcgKzg0NCw3IEBACiAJCS8qIFRoZSBwcmVzY2FsZXIgaXMgNSBmb3IgUEVSQ0xLMiBlcXVhbCB0byA5Nk1IegogCQkgKiB0aGVuIDk2TUh6IC8gNSA9IDE5LjIgTUh6CiAJCSAqLwotCQljbGs9aW14X2dldF9wZXJjbGsyKCk7CisJCWNsayA9IGNsa19nZXRfcmF0ZShob3N0LT5jbGspOwogCQlwcmVzY2FsZXI9KGNsaysoQ0xLX1JBVEUqNykvOCkvQ0xLX1JBVEU7CiAJCXN3aXRjaChwcmVzY2FsZXIpIHsKIAkJY2FzZSAwOgpAQCAtOTk0LDYgKzk5NywxMyBAQAogCWhvc3QtPnJlcyA9IHI7CiAJaG9zdC0+aXJxID0gaXJxOwogCisJaG9zdC0+Y2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAicGVyY2xrMiIpOworCWlmIChJU19FUlIoaG9zdC0+Y2xrKSkgeworCQlyZXQgPSBQVFJfRVJSKGhvc3QtPmNsayk7CisJCWdvdG8gb3V0OworCX0KKwljbGtfZW5hYmxlKGhvc3QtPmNsayk7CisKIAlpbXhfZ3Bpb19tb2RlKFBCOF9QRl9TRF9EQVQwKTsKIAlpbXhfZ3Bpb19tb2RlKFBCOV9QRl9TRF9EQVQxKTsKIAlpbXhfZ3Bpb19tb2RlKFBCMTBfUEZfU0RfREFUMik7CkBAIC0xMDE3LDggKzEwMjcsOCBAQAogCWhvc3QtPmltYXNrID0gSU1YTUNJX0lOVF9NQVNLX0RFRkFVTFQ7CiAJTU1DX0lOVF9NQVNLID0gaG9zdC0+aW1hc2s7CiAKLQotCWlmKGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKCZob3N0LT5kbWEsIERSSVZFUl9OQU1FLCBETUFfUFJJT19MT1cpPDApeworCWhvc3QtPmRtYSA9IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKERSSVZFUl9OQU1FLCBETUFfUFJJT19MT1cpOworCWlmKGhvc3QtPmRtYSA8IDApIHsKIAkJZGV2X2VycihtbWNfZGV2KGhvc3QtPm1tYyksICJpbXhfZG1hX3JlcXVlc3RfYnlfcHJpbyBmYWlsZWRcbiIpOwogCQlyZXQgPSAtRUJVU1k7CiAJCWdvdG8gb3V0OwpAQCAtMTA1Myw2ICsxMDYzLDEwIEBACiAJCQlpbXhfZG1hX2ZyZWUoaG9zdC0+ZG1hKTsKIAkJCWhvc3QtPmRtYV9hbGxvY2F0ZWQ9MDsKIAkJfQorCQlpZiAoaG9zdC0+Y2xrKSB7CisJCQljbGtfZGlzYWJsZShob3N0LT5jbGspOworCQkJY2xrX3B1dChob3N0LT5jbGspOworCQl9CiAJfQogCWlmIChtbWMpCiAJCW1tY19mcmVlX2hvc3QobW1jKTsKQEAgLTEwODIsNiArMTA5Niw5IEBACiAKIAkJdGFza2xldF9raWxsKCZob3N0LT50YXNrbGV0KTsKIAorCQljbGtfZGlzYWJsZShob3N0LT5jbGspOworCQljbGtfcHV0KGhvc3QtPmNsayk7CisKIAkJcmVsZWFzZV9yZXNvdXJjZShob3N0LT5yZXMpOwogCiAJCW1tY19mcmVlX2hvc3QobW1jKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3QvcHhhbWNpLmMgYi9kcml2ZXJzL21tYy9ob3N0L3B4YW1jaS5jCmluZGV4IDY1MjEwZmMuLmQ4OTQ3NWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbW1jL2hvc3QvcHhhbWNpLmMKKysrIGIvZHJpdmVycy9tbWMvaG9zdC9weGFtY2kuYwpAQCAtMTE0LDYgKzExNCw3IEBACiAJdW5zaWduZWQgaW50IG5vYiA9IGRhdGEtPmJsb2NrczsKIAl1bnNpZ25lZCBsb25nIGxvbmcgY2xrczsKIAl1bnNpZ25lZCBpbnQgdGltZW91dDsKKwlib29sIGRhbGduID0gMDsKIAl1MzIgZGNtZDsKIAlpbnQgaTsKIApAQCAtMTUyLDYgKzE1Myw5IEBACiAJCWhvc3QtPnNnX2NwdVtpXS5kY21kID0gZGNtZCB8IGxlbmd0aDsKIAkJaWYgKGxlbmd0aCAmIDMxICYmICEoZGF0YS0+ZmxhZ3MgJiBNTUNfREFUQV9SRUFEKSkKIAkJCWhvc3QtPnNnX2NwdVtpXS5kY21kIHw9IERDTURfRU5ESVJRRU47CisJCS8qIE5vdCBhbGlnbmVkIHRvIDgtYnl0ZSBib3VuZGFyeT8gKi8KKwkJaWYgKHNnX2RtYV9hZGRyZXNzKCZkYXRhLT5zZ1tpXSkgJiAweDcpCisJCQlkYWxnbiA9IDE7CiAJCWlmIChkYXRhLT5mbGFncyAmIE1NQ19EQVRBX1JFQUQpIHsKIAkJCWhvc3QtPnNnX2NwdVtpXS5kc2FkciA9IGhvc3QtPnJlcy0+c3RhcnQgKyBNTUNfUlhGSUZPOwogCQkJaG9zdC0+c2dfY3B1W2ldLmR0YWRyID0gc2dfZG1hX2FkZHJlc3MoJmRhdGEtPnNnW2ldKTsKQEAgLTE2NSw2ICsxNjksMTUgQEAKIAlob3N0LT5zZ19jcHVbaG9zdC0+ZG1hX2xlbiAtIDFdLmRkYWRyID0gRERBRFJfU1RPUDsKIAl3bWIoKTsKIAorCS8qCisJICogVGhlIFBYQTI3eCBETUEgY29udHJvbGxlciBlbmNvdW50ZXJzIG92ZXJoZWFkIHdoZW4gd29ya2luZyB3aXRoCisJICogdW5hbGlnbmVkICh0byA4LWJ5dGUgYm91bmRhcmllcykgZGF0YSwgc28gc3dpdGNoIG9uIGJ5dGUgYWxpZ25tZW50CisJICogbW9kZSBvbmx5IGlmIHdlIGhhdmUgdW5hbGlnbmVkIGRhdGEuCisJICovCisJaWYgKGRhbGduKQorCQlEQUxHTiB8PSAoMSA8PCBob3N0LT5kbWEpOworCWVsc2UKKwkJREFMR04gJj0gKDEgPDwgaG9zdC0+ZG1hKTsKIAlEREFEUihob3N0LT5kbWEpID0gaG9zdC0+c2dfZG1hOwogCURDU1IoaG9zdC0+ZG1hKSA9IERDU1JfUlVOOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS5jIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS5jCmluZGV4IDA3YzIwNDguLmI0MTNhYTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYworKysgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmMKQEAgLTU1LDYgKzU1LDEwIEBACiAjZGVmaW5lIFNESENJX1FVSVJLXzMyQklUX0RNQV9TSVpFCQkJKDE8PDcpCiAvKiBDb250cm9sbGVyIG5lZWRzIHRvIGJlIHJlc2V0IGFmdGVyIGVhY2ggcmVxdWVzdCB0byBzdGF5IHN0YWJsZSAqLwogI2RlZmluZSBTREhDSV9RVUlSS19SRVNFVF9BRlRFUl9SRVFVRVNUCQkJKDE8PDgpCisvKiBDb250cm9sbGVyIG5lZWRzIHZvbHRhZ2UgYW5kIHBvd2VyIHdyaXRlcyB0byBoYXBwZW4gc2VwYXJhdGVseSAqLworI2RlZmluZSBTREhDSV9RVUlSS19OT19TSU1VTFRfVkREX0FORF9QT1dFUgkJKDE8PDkpCisvKiBDb250cm9sbGVyIGhhcyBhbiBvZmYtYnktb25lIGlzc3VlIHdpdGggdGltZW91dCB2YWx1ZSAqLworI2RlZmluZSBTREhDSV9RVUlSS19JTkNSX1RJTUVPVVRfQ09OVFJPTAkJKDE8PDEwKQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcGNpX2lkc1tdIF9fZGV2aW5pdGRhdGEgPSB7CiAJewpAQCAtMTE1LDcgKzExOSw4IEBACiAJCS5zdWJ2ZW5kb3IgICAgICA9IFBDSV9BTllfSUQsCiAJCS5zdWJkZXZpY2UgICAgICA9IFBDSV9BTllfSUQsCiAJCS5kcml2ZXJfZGF0YSAgICA9IFNESENJX1FVSVJLX1NJTkdMRV9QT1dFUl9XUklURSB8Ci0JCQkJICBTREhDSV9RVUlSS19SRVNFVF9DTURfREFUQV9PTl9JT1MsCisJCQkJICBTREhDSV9RVUlSS19SRVNFVF9DTURfREFUQV9PTl9JT1MgfAorCQkJCSAgU0RIQ0lfUVVJUktfQlJPS0VOX0RNQSwKIAl9LAogCiAJewpAQCAtMTI0LDcgKzEyOSwxNyBAQAogCQkuc3VidmVuZG9yICAgICAgPSBQQ0lfQU5ZX0lELAogCQkuc3ViZGV2aWNlICAgICAgPSBQQ0lfQU5ZX0lELAogCQkuZHJpdmVyX2RhdGEgICAgPSBTREhDSV9RVUlSS19TSU5HTEVfUE9XRVJfV1JJVEUgfAotCQkJCSAgU0RIQ0lfUVVJUktfUkVTRVRfQ01EX0RBVEFfT05fSU9TLAorCQkJCSAgU0RIQ0lfUVVJUktfUkVTRVRfQ01EX0RBVEFfT05fSU9TIHwKKwkJCQkgIFNESENJX1FVSVJLX0JST0tFTl9ETUEsCisJfSwKKworCXsKKwkJLnZlbmRvciAgICAgICAgID0gUENJX1ZFTkRPUl9JRF9NQVJWRUxMLAorCQkuZGV2aWNlICAgICAgICAgPSBQQ0lfREVWSUNFX0lEX01BUlZFTExfQ0FGRV9TRCwKKwkJLnN1YnZlbmRvciAgICAgID0gUENJX0FOWV9JRCwKKwkJLnN1YmRldmljZSAgICAgID0gUENJX0FOWV9JRCwKKwkJLmRyaXZlcl9kYXRhICAgID0gU0RIQ0lfUVVJUktfTk9fU0lNVUxUX1ZERF9BTkRfUE9XRVIgfAorCQkJCSAgU0RIQ0lfUVVJUktfSU5DUl9USU1FT1VUX0NPTlRST0wsCiAJfSwKIAogCXsKQEAgLTQ2OSw2ICs0ODQsMTMgQEAKIAkJCWJyZWFrOwogCX0KIAorCS8qCisJICogQ29tcGVuc2F0ZSBmb3IgYW4gb2ZmLWJ5LW9uZSBlcnJvciBpbiB0aGUgQ2FGZSBoYXJkd2FyZTsgb3RoZXJ3aXNlLAorCSAqIGEgdG9vLXNtYWxsIGNvdW50IGdpdmVzIHVzIGludGVycnVwdCB0aW1lb3V0cy4KKwkgKi8KKwlpZiAoKGhvc3QtPmNoaXAtPnF1aXJrcyAmIFNESENJX1FVSVJLX0lOQ1JfVElNRU9VVF9DT05UUk9MKSkKKwkJY291bnQrKzsKKwogCWlmIChjb3VudCA+PSAweEYpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IFRvbyBsYXJnZSB0aW1lb3V0IHJlcXVlc3RlZCFcbiIsCiAJCQltbWNfaG9zdG5hbWUoaG9zdC0+bW1jKSk7CkBAIC03NzQsNiArNzk2LDE0IEBACiAJCUJVRygpOwogCX0KIAorCS8qCisJICogQXQgbGVhc3QgdGhlIENhRmUgY2hpcCBnZXRzIGNvbmZ1c2VkIGlmIHdlIHNldCB0aGUgdm9sdGFnZQorCSAqIGFuZCBzZXQgdHVybiBvbiBwb3dlciBhdCB0aGUgc2FtZSB0aW1lLCBzbyBzZXQgdGhlIHZvbHRhZ2UgZmlyc3QuCisJICovCisJaWYgKChob3N0LT5jaGlwLT5xdWlya3MgJiBTREhDSV9RVUlSS19OT19TSU1VTFRfVkREX0FORF9QT1dFUikpCisJCXdyaXRlYihwd3IgJiB+U0RIQ0lfUE9XRVJfT04sCisJCQkJaG9zdC0+aW9hZGRyICsgU0RIQ0lfUE9XRVJfQ09OVFJPTCk7CisKIAl3cml0ZWIocHdyLCBob3N0LT5pb2FkZHIgKyBTREhDSV9QT1dFUl9DT05UUk9MKTsKIAogb3V0OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvZnRsLmMgYi9kcml2ZXJzL210ZC9mdGwuYwppbmRleCA0YTc5YjE4Li41YzI5ODcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9mdGwuYworKysgYi9kcml2ZXJzL210ZC9mdGwuYwpAQCAtMTMwLDEwICsxMzAsNiBAQAogICAgIHVfaW50MTZfdAkJRGF0YVVuaXRzOwogICAgIHVfaW50MzJfdAkJQmxvY2tzUGVyVW5pdDsKICAgICBlcmFzZV91bml0X2hlYWRlcl90CWhlYWRlcjsKLSNpZiAwCi0gICAgcmVnaW9uX2luZm9fdAlyZWdpb247Ci0gICAgbWVtb3J5X2hhbmRsZV90CWhhbmRsZTsKLSNlbmRpZgogfSBwYXJ0aXRpb25fdDsKIAogLyogUGFydGl0aW9uIHN0YXRlIGZsYWdzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9tYXBzL29tYXBfbm9yLmMgYi9kcml2ZXJzL210ZC9tYXBzL29tYXBfbm9yLmMKaW5kZXggYzEyZDgwNS4uNjhlZWM2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbWFwcy9vbWFwX25vci5jCisrKyBiL2RyaXZlcnMvbXRkL21hcHMvb21hcF9ub3IuYwpAQCAtNjAsMTMgKzYwLDIyIEBACiBzdGF0aWMgdm9pZCBvbWFwX3NldF92cHAoc3RydWN0IG1hcF9pbmZvICptYXAsIGludCBlbmFibGUpCiB7CiAJc3RhdGljIGludAljb3VudDsKKwl1MzIgbDsKIAotCWlmIChlbmFibGUpIHsKLQkJaWYgKGNvdW50KysgPT0gMCkKLQkJCU9NQVBfRU1JRlNfQ09ORklHX1JFRyB8PSBPTUFQX0VNSUZTX0NPTkZJR19XUDsKLQl9IGVsc2UgewotCQlpZiAoY291bnQgJiYgKC0tY291bnQgPT0gMCkpCi0JCQlPTUFQX0VNSUZTX0NPTkZJR19SRUcgJj0gfk9NQVBfRU1JRlNfQ09ORklHX1dQOworCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgeworCQlpZiAoZW5hYmxlKSB7CisJCQlpZiAoY291bnQrKyA9PSAwKSB7CisJCQkJbCA9IG9tYXBfcmVhZGwoRU1JRlNfQ09ORklHKTsKKwkJCQlsIHw9IE9NQVBfRU1JRlNfQ09ORklHX1dQOworCQkJCW9tYXBfd3JpdGVsKGwsIEVNSUZTX0NPTkZJRyk7CisJCQl9CisJCX0gZWxzZSB7CisJCQlpZiAoY291bnQgJiYgKC0tY291bnQgPT0gMCkpIHsKKwkJCQlsID0gb21hcF9yZWFkbChFTUlGU19DT05GSUcpOworCQkJCWwgJj0gfk9NQVBfRU1JRlNfQ09ORklHX1dQOworCQkJCW9tYXBfd3JpdGVsKGwsIEVNSUZTX0NPTkZJRyk7CisJCQl9CisJCX0KIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL21hcHMvcGNtY2lhbXRkLmMgYi9kcml2ZXJzL210ZC9tYXBzL3BjbWNpYW10ZC5jCmluZGV4IDE5MTJkOTYuLjBjYzMxNjc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9tYXBzL3BjbWNpYW10ZC5jCisrKyBiL2RyaXZlcnMvbXRkL21hcHMvcGNtY2lhbXRkLmMKQEAgLTQ5OCwxNyArNDk4LDE0IEBACiAJaW50IGk7CiAJY29uZmlnX2luZm9fdCB0OwogCXN0YXRpYyBjaGFyICpwcm9iZXNbXSA9IHsgImplZGVjX3Byb2JlIiwgImNmaV9wcm9iZSIgfTsKLQljaXNpbmZvX3QgY2lzaW5mbzsKIAlpbnQgbmV3X25hbWUgPSAwOwogCiAJREVCVUcoMywgImxpbms9MHglcCIsIGxpbmspOwogCiAJREVCVUcoMiwgIlZhbGlkYXRpbmcgQ0lTIik7Ci0JcmV0ID0gcGNtY2lhX3ZhbGlkYXRlX2NpcyhsaW5rLCAmY2lzaW5mbyk7CisJcmV0ID0gcGNtY2lhX3ZhbGlkYXRlX2NpcyhsaW5rLCBOVUxMKTsKIAlpZihyZXQgIT0gQ1NfU1VDQ0VTUykgewogCQljc19lcnJvcihsaW5rLCBHZXRUdXBsZURhdGEsIHJldCk7Ci0JfSBlbHNlIHsKLQkJREVCVUcoMiwgIlZhbGlkYXRlQ0lTIGZvdW5kICVkIGNoYWlucyIsIGNpc2luZm8uQ2hhaW5zKTsKIAl9CiAKIAljYXJkX3NldHRpbmdzKGRldiwgbGluaywgJm5ld19uYW1lKTsKQEAgLTU2Myw5ICs1NjAsNyBAQAogCURFQlVHKDEsICJBbGxvY2F0ZWQgYSB3aW5kb3cgb2YgJWRLaUIiLCBkZXYtPndpbl9zaXplID4+IDEwKTsKIAogCS8qIEdldCB3cml0ZSBwcm90ZWN0IHN0YXR1cyAqLwotCUNTX0NIRUNLKEdldFN0YXR1cywgcGNtY2lhX2dldF9zdGF0dXMobGluaywgJnN0YXR1cykpOwotCURFQlVHKDIsICJzdGF0dXMgdmFsdWU6IDB4JXggd2luZG93IGhhbmRsZSA9IDB4JTguOGx4IiwKLQkgICAgICBzdGF0dXMuQ2FyZFN0YXRlLCAodW5zaWduZWQgbG9uZylsaW5rLT53aW4pOworCURFQlVHKDIsICJ3aW5kb3cgaGFuZGxlID0gMHglOC44bHgiLCAodW5zaWduZWQgbG9uZylsaW5rLT53aW4pOwogCWRldi0+d2luX2Jhc2UgPSBpb3JlbWFwKHJlcS5CYXNlLCByZXEuU2l6ZSk7CiAJaWYoIWRldi0+d2luX2Jhc2UpIHsKIAkJZXJyKCJpb3JlbWFwKCVsdSwgJXUpIGZhaWxlZCIsIHJlcS5CYXNlLCByZXEuU2l6ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9tdGRjaGFyLmMgYi9kcml2ZXJzL210ZC9tdGRjaGFyLmMKaW5kZXggNWQzYWM1MS4uMTI5ZDQyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbXRkY2hhci5jCisrKyBiL2RyaXZlcnMvbXRkL210ZGNoYXIuYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL2NvbXBhdG1hYy5oPgpAQCAtODYsNiArODcsNyBAQAogewogCWludCBtaW5vciA9IGltaW5vcihpbm9kZSk7CiAJaW50IGRldm51bSA9IG1pbm9yID4+IDE7CisJaW50IHJldCA9IDA7CiAJc3RydWN0IG10ZF9pbmZvICptdGQ7CiAJc3RydWN0IG10ZF9maWxlX2luZm8gKm1maTsKIApAQCAtOTgsMzEgKzEwMCwzOSBAQAogCWlmICgoZmlsZS0+Zl9tb2RlICYgMikgJiYgKG1pbm9yICYgMSkpCiAJCXJldHVybiAtRUFDQ0VTOwogCisJbG9ja19rZXJuZWwoKTsKIAltdGQgPSBnZXRfbXRkX2RldmljZShOVUxMLCBkZXZudW0pOwogCi0JaWYgKElTX0VSUihtdGQpKQotCQlyZXR1cm4gUFRSX0VSUihtdGQpOworCWlmIChJU19FUlIobXRkKSkgeworCQlyZXQgPSBQVFJfRVJSKG10ZCk7CisJCWdvdG8gb3V0OworCX0KIAogCWlmIChNVERfQUJTRU5UID09IG10ZC0+dHlwZSkgewogCQlwdXRfbXRkX2RldmljZShtdGQpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CiAJfQogCiAJLyogWW91IGNhbid0IG9wZW4gaXQgUlcgaWYgaXQncyBub3QgYSB3cml0ZWFibGUgZGV2aWNlICovCiAJaWYgKChmaWxlLT5mX21vZGUgJiAyKSAmJiAhKG10ZC0+ZmxhZ3MgJiBNVERfV1JJVEVBQkxFKSkgewogCQlwdXRfbXRkX2RldmljZShtdGQpOwotCQlyZXR1cm4gLUVBQ0NFUzsKKwkJcmV0ID0gLUVBQ0NFUzsKKwkJZ290byBvdXQ7CiAJfQogCiAJbWZpID0ga3phbGxvYyhzaXplb2YoKm1maSksIEdGUF9LRVJORUwpOwogCWlmICghbWZpKSB7CiAJCXB1dF9tdGRfZGV2aWNlKG10ZCk7Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKIAl9CiAJbWZpLT5tdGQgPSBtdGQ7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gbWZpOwogCi0JcmV0dXJuIDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9IC8qIG10ZF9vcGVuICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9vcmlvbl9uYW5kLmMgYi9kcml2ZXJzL210ZC9uYW5kL29yaW9uX25hbmQuYwppbmRleCA1OWUwNWExLi5lZTJhYzM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL29yaW9uX25hbmQuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL29yaW9uX25hbmQuYwpAQCAtODUsNiArODUsOSBAQAogCW5jLT5jbWRfY3RybCA9IG9yaW9uX25hbmRfY21kX2N0cmw7CiAJbmMtPmVjYy5tb2RlID0gTkFORF9FQ0NfU09GVDsKIAorCWlmIChib2FyZC0+Y2hpcF9kZWxheSkKKwkJbmMtPmNoaXBfZGVsYXkgPSBib2FyZC0+Y2hpcF9kZWxheTsKKwogCWlmIChib2FyZC0+d2lkdGggPT0gMTYpCiAJCW5jLT5vcHRpb25zIHw9IE5BTkRfQlVTV0lEVEhfMTY7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3ViaS9jZGV2LmMgYi9kcml2ZXJzL210ZC91YmkvY2Rldi5jCmluZGV4IDlkNmFhZTUuLjg5MTkzYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3ViaS9jZGV2LmMKKysrIGIvZHJpdmVycy9tdGQvdWJpL2NkZXYuYwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4KICNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgogI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPG10ZC91YmktdXNlci5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CkBAIC0xMDMsOSArMTA0LDEyIEBACiAJc3RydWN0IHViaV92b2x1bWVfZGVzYyAqZGVzYzsKIAlpbnQgdm9sX2lkID0gaW1pbm9yKGlub2RlKSAtIDEsIG1vZGUsIHViaV9udW07CiAKKwlsb2NrX2tlcm5lbCgpOwogCXViaV9udW0gPSB1YmlfbWFqb3IybnVtKGltYWpvcihpbm9kZSkpOwotCWlmICh1YmlfbnVtIDwgMCkKKwlpZiAodWJpX251bSA8IDApIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gdWJpX251bTsKKwl9CiAKIAlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCiAJCW1vZGUgPSBVQklfUkVBRFdSSVRFOwpAQCAtMTE1LDYgKzExOSw3IEBACiAJZGJnX21zZygib3BlbiB2b2x1bWUgJWQsIG1vZGUgJWQiLCB2b2xfaWQsIG1vZGUpOwogCiAJZGVzYyA9IHViaV9vcGVuX3ZvbHVtZSh1YmlfbnVtLCB2b2xfaWQsIG1vZGUpOworCXVubG9ja19rZXJuZWwoKTsKIAlpZiAoSVNfRVJSKGRlc2MpKQogCQlyZXR1cm4gUFRSX0VSUihkZXNjKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvM2M1OXguYyBiL2RyaXZlcnMvbmV0LzNjNTl4LmMKaW5kZXggMmVkZGE4Yy4uYWFiYWQ4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvM2M1OXguYworKysgYi9kcml2ZXJzL25ldC8zYzU5eC5jCkBAIC0xNzY4LDkgKzE3NjgsMTAgQEAKIAljYXNlIFhDVlJfTUlJOiBjYXNlIFhDVlJfTldBWToKIAkJewogCQkJb2sgPSAxOwotCQkJc3Bpbl9sb2NrX2JoKCZ2cC0+bG9jayk7CisJCQkvKiBJbnRlcnJ1cHRzIGFyZSBhbHJlYWR5IGRpc2FibGVkICovCisJCQlzcGluX2xvY2soJnZwLT5sb2NrKTsKIAkJCXZvcnRleF9jaGVja19tZWRpYShkZXYsIDApOwotCQkJc3Bpbl91bmxvY2tfYmgoJnZwLT5sb2NrKTsKKwkJCXNwaW5fdW5sb2NrKCZ2cC0+bG9jayk7CiAJCX0KIAkJYnJlYWs7CiAJICBkZWZhdWx0OgkJCQkJLyogT3RoZXIgbWVkaWEgdHlwZXMgaGFuZGxlZCBieSBUeCB0aW1lb3V0cy4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L0tjb25maWcgYi9kcml2ZXJzL25ldC9LY29uZmlnCmluZGV4IGY0MTgyY2YuLjQ1YTQxYjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L0tjb25maWcKKysrIGIvZHJpdmVycy9uZXQvS2NvbmZpZwpAQCAtMjE3LDcgKzIxNyw3IEBACiAKIGNvbmZpZyBNQUNCCiAJdHJpc3RhdGUgIkF0bWVsIE1BQ0Igc3VwcG9ydCIKLQlkZXBlbmRzIG9uIEFWUjMyIHx8IEFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOTI2MyB8fCBBUkNIX0FUOTFDQVA5CisJZGVwZW5kcyBvbiBBVlIzMiB8fCBBUkNIX0FUOTFTQU05MjYwIHx8IEFSQ0hfQVQ5MVNBTTkyNjMgfHwgQVJDSF9BVDkxU0FNOUcyMCB8fCBBUkNIX0FUOTFDQVA5CiAJc2VsZWN0IFBIWUxJQgogCWhlbHAKIAkgIFRoZSBBdG1lbCBNQUNCIGV0aGVybmV0IGludGVyZmFjZSBpcyBmb3VuZCBvbiBtYW55IEFUMzIgYW5kIEFUOTEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2FybS9ldGhlcmguYyBiL2RyaXZlcnMvbmV0L2FybS9ldGhlcmguYwppbmRleCAwMDA4MWQyLi5lOWQxNWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9hcm0vZXRoZXJoLmMKKysrIGIvZHJpdmVycy9uZXQvYXJtL2V0aGVyaC5jCkBAIC02NDcsNyArNjQ3LDcgQEAKIAlzdHJ1Y3QgZWlfZGV2aWNlICplaV9sb2NhbDsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OwogCXN0cnVjdCBldGhlcmhfcHJpdiAqZWg7Ci0JaW50IGksIHJldDsKKwlpbnQgcmV0OwogCURFQ0xBUkVfTUFDX0JVRihtYWMpOwogCiAJZXRoZXJoX2Jhbm5lcigpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY3hnYjMvY29tbW9uLmggYi9kcml2ZXJzL25ldC9jeGdiMy9jb21tb24uaAppbmRleCA1NzliZWU0Li44ZThlYmQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jeGdiMy9jb21tb24uaAorKysgYi9kcml2ZXJzL25ldC9jeGdiMy9jb21tb24uaApAQCAtNjg2LDggKzY4Niw5IEBACiBpbnQgdDNfc2VlcHJvbV93cChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgaW50IGVuYWJsZSk7CiBpbnQgdDNfZ2V0X3RwX3ZlcnNpb24oc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUzMiAqdmVycyk7CiBpbnQgdDNfY2hlY2tfdHBzcmFtX3ZlcnNpb24oc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGludCAqbXVzdF9sb2FkKTsKLWludCB0M19jaGVja190cHNyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHU4ICp0cF9yYW0sIHVuc2lnbmVkIGludCBzaXplKTsKLWludCB0M19zZXRfcHJvdG9fc3JhbShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTggKmRhdGEpOworaW50IHQzX2NoZWNrX3Rwc3JhbShzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgY29uc3QgdTggKnRwX3JhbSwKKwkJICAgIHVuc2lnbmVkIGludCBzaXplKTsKK2ludCB0M19zZXRfcHJvdG9fc3JhbShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgY29uc3QgdTggKmRhdGEpOwogaW50IHQzX3JlYWRfZmxhc2goc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVkIGludCBhZGRyLAogCQkgIHVuc2lnbmVkIGludCBud29yZHMsIHUzMiAqZGF0YSwgaW50IGJ5dGVfb3JpZW50ZWQpOwogaW50IHQzX2xvYWRfZncoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IHU4ICogZndfZGF0YSwgdW5zaWduZWQgaW50IHNpemUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY3hnYjMvY3hnYjNfY3RsX2RlZnMuaCBiL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX2N0bF9kZWZzLmgKaW5kZXggNmM0ZjMyMC4uZWQwZWNkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY3hnYjMvY3hnYjNfY3RsX2RlZnMuaAorKysgYi9kcml2ZXJzL25ldC9jeGdiMy9jeGdiM19jdGxfZGVmcy5oCkBAIC01NCw2ICs1NCw3IEBACiAJUkRNQV9DUV9ESVNBQkxFCQk9IDE2LAogCVJETUFfQ1RSTF9RUF9TRVRVUAk9IDE3LAogCVJETUFfR0VUX01FTQkJPSAxOCwKKwlSRE1BX0dFVF9NSUIJCT0gMTksCiAKIAlHRVRfUlhfUEFHRV9JTkZPCT0gNTAsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY3hnYjMvY3hnYjNfb2ZmbG9hZC5jIGIvZHJpdmVycy9uZXQvY3hnYjMvY3hnYjNfb2ZmbG9hZC5jCmluZGV4IGZmOWMwMTMuLmNmMjY5NjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX29mZmxvYWQuYworKysgYi9kcml2ZXJzL25ldC9jeGdiMy9jeGdiM19vZmZsb2FkLmMKQEAgLTMwMyw2ICszMDMsMTIgQEAKIAkJc3Bpbl91bmxvY2tfaXJxKCZhZGFwdGVyLT5zZ2UucmVnX2xvY2spOwogCQlicmVhazsKIAl9CisJY2FzZSBSRE1BX0dFVF9NSUI6IHsKKwkJc3Bpbl9sb2NrKCZhZGFwdGVyLT5zdGF0c19sb2NrKTsKKwkJdDNfdHBfZ2V0X21pYl9zdGF0cyhhZGFwdGVyLCAoc3RydWN0IHRwX21pYl9zdGF0cyAqKWRhdGEpOworCQlzcGluX3VubG9jaygmYWRhcHRlci0+c3RhdHNfbG9jayk7CisJCWJyZWFrOworCX0KIAlkZWZhdWx0OgogCQlyZXQgPSAtRU9QTk9UU1VQUDsKIAl9CkBAIC0zODEsNiArMzg3LDcgQEAKIAljYXNlIFJETUFfQ1FfRElTQUJMRToKIAljYXNlIFJETUFfQ1RSTF9RUF9TRVRVUDoKIAljYXNlIFJETUFfR0VUX01FTToKKwljYXNlIFJETUFfR0VUX01JQjoKIAkJaWYgKCFvZmZsb2FkX3J1bm5pbmcoYWRhcHRlcikpCiAJCQlyZXR1cm4gLUVBR0FJTjsKIAkJcmV0dXJuIGN4Z2JfcmRtYV9jdGwoYWRhcHRlciwgcmVxLCBkYXRhKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2N4Z2IzL3QzX2h3LmMgYi9kcml2ZXJzL25ldC9jeGdiMy90M19ody5jCmluZGV4IGQ0MDVhOTMuLjQ3ZDUxNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2N4Z2IzL3QzX2h3LmMKKysrIGIvZHJpdmVycy9uZXQvY3hnYjMvdDNfaHcuYwpAQCAtOTIzLDcgKzkyMyw4IEBACiAgKglDaGVja3MgaWYgYW4gYWRhcHRlcidzIHRwIHNyYW0gaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBkcml2ZXIuCiAgKglSZXR1cm5zIDAgaWYgdGhlIHZlcnNpb25zIGFyZSBjb21wYXRpYmxlLCBhIG5lZ2F0aXZlIGVycm9yIG90aGVyd2lzZS4KICAqLwotaW50IHQzX2NoZWNrX3Rwc3JhbShzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdTggKnRwX3NyYW0sIHVuc2lnbmVkIGludCBzaXplKQoraW50IHQzX2NoZWNrX3Rwc3JhbShzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgY29uc3QgdTggKnRwX3NyYW0sCisJCSAgICB1bnNpZ25lZCBpbnQgc2l6ZSkKIHsKIAl1MzIgY3N1bTsKIAl1bnNpZ25lZCBpbnQgaTsKQEAgLTI4NzUsMTAgKzI4NzYsMTAgQEAKICAqCiAgKglXcml0ZSB0aGUgY29udGVudHMgb2YgdGhlIHByb3RvY29sIFNSQU0uCiAgKi8KLWludCB0M19zZXRfcHJvdG9fc3JhbShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTggKmRhdGEpCitpbnQgdDNfc2V0X3Byb3RvX3NyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXAsIGNvbnN0IHU4ICpkYXRhKQogewogCWludCBpOwotCV9fYmUzMiAqYnVmID0gKF9fYmUzMiAqKWRhdGE7CisJY29uc3QgX19iZTMyICpidWYgPSAoY29uc3QgX19iZTMyICopZGF0YTsKIAogCWZvciAoaSA9IDA7IGkgPCBQUk9UT19TUkFNX0xJTkVTOyBpKyspIHsKIAkJdDNfd3JpdGVfcmVnKGFkYXAsIEFfVFBfRU1CRURfT1BfRklFTEQ1LCBiZTMyX3RvX2NwdSgqYnVmKyspKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2N4Z2IzL3ZlcnNpb24uaCBiL2RyaXZlcnMvbmV0L2N4Z2IzL3ZlcnNpb24uaAppbmRleCBhMDE3N2ZjLi4yOWRiNzExIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jeGdiMy92ZXJzaW9uLmgKKysrIGIvZHJpdmVycy9uZXQvY3hnYjMvdmVyc2lvbi5oCkBAIC0zOCw3ICszOCw3IEBACiAjZGVmaW5lIERSVl9WRVJTSU9OICIxLjAta28iCiAKIC8qIEZpcm13YXJlIHZlcnNpb24gKi8KLSNkZWZpbmUgRldfVkVSU0lPTl9NQUpPUiA2CisjZGVmaW5lIEZXX1ZFUlNJT05fTUFKT1IgNwogI2RlZmluZSBGV19WRVJTSU9OX01JTk9SIDAKICNkZWZpbmUgRldfVkVSU0lPTl9NSUNSTyAwCiAjZW5kaWYJCQkJLyogX19DSEVMU0lPX1ZFUlNJT05fSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZTEwMC5jIGIvZHJpdmVycy9uZXQvZTEwMC5jCmluZGV4IGYzY2JhNWUuLjEwMzdiMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2UxMDAuYworKysgYi9kcml2ZXJzL25ldC9lMTAwLmMKQEAgLTE4MDMsNiArMTgwMyw4IEBACiAJaWYgKHJ4LT5wcmV2LT5za2IpIHsKIAkJc3RydWN0IHJmZCAqcHJldl9yZmQgPSAoc3RydWN0IHJmZCAqKXJ4LT5wcmV2LT5za2ItPmRhdGE7CiAJCXB1dF91bmFsaWduZWRfbGUzMihyeC0+ZG1hX2FkZHIsICZwcmV2X3JmZC0+bGluayk7CisJCXBjaV9kbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShuaWMtPnBkZXYsIHJ4LT5wcmV2LT5kbWFfYWRkciwKKwkJCXNpemVvZihzdHJ1Y3QgcmZkKSwgUENJX0RNQV9UT0RFVklDRSk7CiAJfQogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9lMTAwMC9lMTAwMF9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9lMTAwMC9lMTAwMF9ldGh0b29sLmMKaW5kZXggNzAxNTMxZS4uYTNmNmE5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRodG9vbC5jCisrKyBiL2RyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aHRvb2wuYwpAQCAtMzQ3LDcgKzM0Nyw3IEBACiAJZWxzZQogCQluZXRkZXYtPmZlYXR1cmVzICY9IH5ORVRJRl9GX1RTTzsKIAotCWlmIChkYXRhKQorCWlmIChkYXRhICYmIChhZGFwdGVyLT5ody5tYWNfdHlwZSA+IGUxMDAwXzgyNTQ3X3Jldl8yKSkKIAkJbmV0ZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX1RTTzY7CiAJZWxzZQogCQluZXRkZXYtPmZlYXR1cmVzICY9IH5ORVRJRl9GX1RTTzY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9lMTAwMGUvbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9lMTAwMGUvbmV0ZGV2LmMKaW5kZXggY2FiMTgzNS4uNjQ4YTg3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZTEwMDBlL25ldGRldi5jCisrKyBiL2RyaXZlcnMvbmV0L2UxMDAwZS9uZXRkZXYuYwpAQCAtMjUzNSw3ICsyNTM1LDggQEAKIAlhZGFwdGVyLT5saW5rX3NwZWVkID0gMDsKIAlhZGFwdGVyLT5saW5rX2R1cGxleCA9IDA7CiAKLQllMTAwMGVfcmVzZXQoYWRhcHRlcik7CisJaWYgKCFwY2lfY2hhbm5lbF9vZmZsaW5lKGFkYXB0ZXItPnBkZXYpKQorCQllMTAwMGVfcmVzZXQoYWRhcHRlcik7CiAJZTEwMDBfY2xlYW5fdHhfcmluZyhhZGFwdGVyKTsKIAllMTAwMF9jbGVhbl9yeF9yaW5nKGFkYXB0ZXIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9laGVhL2VoZWEuaCBiL2RyaXZlcnMvbmV0L2VoZWEvZWhlYS5oCmluZGV4IGZlODcyZmIuLmUwMTkyNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2VoZWEvZWhlYS5oCisrKyBiL2RyaXZlcnMvbmV0L2VoZWEvZWhlYS5oCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKICNkZWZpbmUgRFJWX05BTUUJImVoZWEiCi0jZGVmaW5lIERSVl9WRVJTSU9OCSJFSEVBXzAwOTEiCisjZGVmaW5lIERSVl9WRVJTSU9OCSJFSEVBXzAwOTIiCiAKIC8qIGVIRUEgY2FwYWJpbGl0eSBmbGFncyAqLwogI2RlZmluZSBETFBBUl9QT1JUX0FERF9SRU0gMQpAQCAtNDUyLDcgKzQ1Miw3IEBACiBzdHJ1Y3QgZWhlYV9iY21jX3JlZ19hcnJheSB7CiAJc3RydWN0IGVoZWFfYmNtY19yZWdfZW50cnkgKmFycjsKIAlpbnQgbnVtX2VudHJpZXM7Ci0Jc3RydWN0IG11dGV4IGxvY2s7CisJc3BpbmxvY2tfdCBsb2NrOwogfTsKIAogI2RlZmluZSBFSEVBX1BPUlRfVVAgMQpAQCAtNDc4LDYgKzQ3OCw3IEBACiAJaW50IG51bV9hZGRfdHhfcXBzOwogCWludCBudW1fbWNzOwogCWludCByZXNldHM7CisJdTY0IGZsYWdzOwogCXU2NCBtYWNfYWRkcjsKIAl1MzIgbG9naWNhbF9wb3J0X2lkOwogCXUzMiBwb3J0X3NwZWVkOwpAQCAtNTAxLDcgKzUwMiw4IEBACiB9OwogCiBlbnVtIGVoZWFfZmxhZ19iaXRzIHsKLQlfX0VIRUFfU1RPUF9YRkVSCisJX19FSEVBX1NUT1BfWEZFUiwKKwlfX0VIRUFfRElTQUJMRV9QT1JUX1JFU0VUCiB9OwogCiB2b2lkIGVoZWFfc2V0X2V0aHRvb2xfb3BzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZWhlYS9laGVhX21haW4uYyBiL2RyaXZlcnMvbmV0L2VoZWEvZWhlYV9tYWluLmMKaW5kZXggMDc1ZmQ1NC4uMDkyMGI3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZWhlYS9laGVhX21haW4uYworKysgYi9kcml2ZXJzL25ldC9laGVhL2VoZWFfbWFpbi5jCkBAIC0xMTgsNiArMTE4LDcgQEAKIAl9LAogCXt9LAogfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGVoZWFfZGV2aWNlX3RhYmxlKTsKIAogc3RhdGljIHN0cnVjdCBvZl9wbGF0Zm9ybV9kcml2ZXIgZWhlYV9kcml2ZXIgPSB7CiAJLm5hbWUgPSAiZWhlYSIsCkBAIC0xMzcsNiArMTM4LDEyIEBACiAJfQogfQogCit2b2lkIGVoZWFfc2NoZWR1bGVfcG9ydF9yZXNldChzdHJ1Y3QgZWhlYV9wb3J0ICpwb3J0KQoreworCWlmICghdGVzdF9iaXQoX19FSEVBX0RJU0FCTEVfUE9SVF9SRVNFVCwgJnBvcnQtPmZsYWdzKSkKKwkJc2NoZWR1bGVfd29yaygmcG9ydC0+cmVzZXRfdGFzayk7Cit9CisKIHN0YXRpYyB2b2lkIGVoZWFfdXBkYXRlX2Zpcm13YXJlX2hhbmRsZXModm9pZCkKIHsKIAlzdHJ1Y3QgZWhlYV9md19oYW5kbGVfZW50cnkgKmFyciA9IE5VTEw7CkBAIC0yNDEsNyArMjQ4LDcgQEAKIAkJfQogCiAJaWYgKG51bV9yZWdpc3RyYXRpb25zKSB7Ci0JCWFyciA9IGt6YWxsb2MobnVtX3JlZ2lzdHJhdGlvbnMgKiBzaXplb2YoKmFyciksIEdGUF9LRVJORUwpOworCQlhcnIgPSBremFsbG9jKG51bV9yZWdpc3RyYXRpb25zICogc2l6ZW9mKCphcnIpLCBHRlBfQVRPTUlDKTsKIAkJaWYgKCFhcnIpCiAJCQlyZXR1cm47ICAvKiBLZWVwIHRoZSBleGlzdGluZyBhcnJheSAqLwogCX0gZWxzZQpAQCAtMzAxLDcgKzMwOCw3IEBACiAKIAltZW1zZXQoc3RhdHMsIDAsIHNpemVvZigqc3RhdHMpKTsKIAotCWNiMiA9IGt6YWxsb2MoUEFHRV9TSVpFLCBHRlBfS0VSTkVMKTsKKwljYjIgPSBremFsbG9jKFBBR0VfU0laRSwgR0ZQX0FUT01JQyk7CiAJaWYgKCFjYjIpIHsKIAkJZWhlYV9lcnJvcigibm8gbWVtIGZvciBjYjIiKTsKIAkJZ290byBvdXQ7CkBAIC01ODcsNyArNTk0LDcgQEAKIAkJCQkgICAiUmVzZXR0aW5nIHBvcnQuIiwgcHItPnFwLT5pbml0X2F0dHIucXBfbnIpOwogCQkJZWhlYV9kdW1wKGNxZSwgc2l6ZW9mKCpjcWUpLCAiQ1FFIik7CiAJCX0KLQkJc2NoZWR1bGVfd29yaygmcHItPnBvcnQtPnJlc2V0X3Rhc2spOworCQllaGVhX3NjaGVkdWxlX3BvcnRfcmVzZXQocHItPnBvcnQpOwogCQlyZXR1cm4gMTsKIAl9CiAKQEAgLTYxNiw3ICs2MjMsNyBAQAogCSp0Y3BoID0gdGNwX2hkcihza2IpOwogCiAJLyogY2hlY2sgaWYgaXAgaGVhZGVyIGFuZCB0Y3AgaGVhZGVyIGFyZSBjb21wbGV0ZSAqLwotCWlmIChpcGgtPnRvdF9sZW4gPCBpcF9sZW4gKyB0Y3BfaGRybGVuKHNrYikpCisJaWYgKG50b2hzKGlwaC0+dG90X2xlbikgPCBpcF9sZW4gKyB0Y3BfaGRybGVuKHNrYikpCiAJCXJldHVybiAtMTsKIAogCSpoZHJfZmxhZ3MgPSBMUk9fSVBWNCB8IExST19UQ1A7CkBAIC03NjUsNyArNzcyLDcgQEAKIAkJCWVoZWFfZXJyb3IoIlNlbmQgQ29tcGxldGlvbiBFcnJvcjogUmVzZXR0aW5nIHBvcnQiKTsKIAkJCWlmIChuZXRpZl9tc2dfdHhfZXJyKHByLT5wb3J0KSkKIAkJCQllaGVhX2R1bXAoY3FlLCBzaXplb2YoKmNxZSksICJTZW5kIENRRSIpOwotCQkJc2NoZWR1bGVfd29yaygmcHItPnBvcnQtPnJlc2V0X3Rhc2spOworCQkJZWhlYV9zY2hlZHVsZV9wb3J0X3Jlc2V0KHByLT5wb3J0KTsKIAkJCWJyZWFrOwogCQl9CiAKQEAgLTg4NSw3ICs4OTIsNyBAQAogCQllcWUgPSBlaGVhX3BvbGxfZXEocG9ydC0+cXBfZXEpOwogCX0KIAotCXNjaGVkdWxlX3dvcmsoJnBvcnQtPnJlc2V0X3Rhc2spOworCWVoZWFfc2NoZWR1bGVfcG9ydF9yZXNldChwb3J0KTsKIAogCXJldHVybiBJUlFfSEFORExFRDsKIH0KQEAgLTE3NjMsNyArMTc3MCw3IEBACiAKIAltZW1jcHkoZGV2LT5kZXZfYWRkciwgbWFjX2FkZHItPnNhX2RhdGEsIGRldi0+YWRkcl9sZW4pOwogCi0JbXV0ZXhfbG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIAogCS8qIERlcmVnaXN0ZXIgb2xkIE1BQyBpbiBwSFlQICovCiAJaWYgKHBvcnQtPnN0YXRlID09IEVIRUFfUE9SVF9VUCkgewpAQCAtMTc4NSw3ICsxNzkyLDcgQEAKIAogb3V0X3VwcmVnczoKIAllaGVhX3VwZGF0ZV9iY21jX3JlZ2lzdHJhdGlvbnMoKTsKLQltdXRleF91bmxvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOworCXNwaW5fdW5sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIG91dF9mcmVlOgogCWtmcmVlKGNiMCk7CiBvdXQ6CkBAIC0xOTQ3LDcgKzE5NTQsNyBAQAogCX0KIAllaGVhX3Byb21pc2N1b3VzKGRldiwgMCk7CiAKLQltdXRleF9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX2xvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOwogCiAJaWYgKGRldi0+ZmxhZ3MgJiBJRkZfQUxMTVVMVEkpIHsKIAkJZWhlYV9hbGxtdWx0aShkZXYsIDEpOwpAQCAtMTk3OCw3ICsxOTg1LDcgQEAKIAl9CiBvdXQ6CiAJZWhlYV91cGRhdGVfYmNtY19yZWdpc3RyYXRpb25zKCk7Ci0JbXV0ZXhfdW5sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX3VubG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CiAJcmV0dXJuOwogfQogCkBAIC0yNDk3LDcgKzI1MDQsNyBAQAogCQl9CiAJfQogCi0JbXV0ZXhfbG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIAogCXJldCA9IGVoZWFfYnJvYWRjYXN0X3JlZ19oZWxwZXIocG9ydCwgSF9SRUdfQkNNQyk7CiAJaWYgKHJldCkgewpAQCAtMjUyMCw3ICsyNTI3LDcgQEAKIAkJZWhlYV9pbmZvKCJGYWlsZWQgc3RhcnRpbmcgJXMuIHJldD0laSIsIGRldi0+bmFtZSwgcmV0KTsKIAogCWVoZWFfdXBkYXRlX2JjbWNfcmVnaXN0cmF0aW9ucygpOwotCW11dGV4X3VubG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl91bmxvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOwogCiAJZWhlYV91cGRhdGVfZmlybXdhcmVfaGFuZGxlcygpOwogCW11dGV4X3VubG9jaygmZWhlYV9md19oYW5kbGVzLmxvY2spOwpAQCAtMjU3NSw3ICsyNTgyLDcgQEAKIAogCW11dGV4X2xvY2soJmVoZWFfZndfaGFuZGxlcy5sb2NrKTsKIAotCW11dGV4X2xvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOworCXNwaW5fbG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CiAJZWhlYV9kcm9wX211bHRpY2FzdF9saXN0KGRldik7CiAJZWhlYV9icm9hZGNhc3RfcmVnX2hlbHBlcihwb3J0LCBIX0RFUkVHX0JDTUMpOwogCkBAIC0yNTg0LDcgKzI1OTEsNyBAQAogCXBvcnQtPnN0YXRlID0gRUhFQV9QT1JUX0RPV047CiAKIAllaGVhX3VwZGF0ZV9iY21jX3JlZ2lzdHJhdGlvbnMoKTsKLQltdXRleF91bmxvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOworCXNwaW5fdW5sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIAogCXJldCA9IGVoZWFfY2xlYW5fYWxsX3BvcnRyZXMocG9ydCk7CiAJaWYgKHJldCkKQEAgLTI2MDUsMTMgKzI2MTIsMTQgQEAKIAlpZiAobmV0aWZfbXNnX2lmZG93bihwb3J0KSkKIAkJZWhlYV9pbmZvKCJkaXNhYmxpbmcgcG9ydCAlcyIsIGRldi0+bmFtZSk7CiAKKwlzZXRfYml0KF9fRUhFQV9ESVNBQkxFX1BPUlRfUkVTRVQsICZwb3J0LT5mbGFncyk7CiAJY2FuY2VsX3dvcmtfc3luYygmcG9ydC0+cmVzZXRfdGFzayk7Ci0KIAltdXRleF9sb2NrKCZwb3J0LT5wb3J0X2xvY2spOwogCW5ldGlmX3N0b3BfcXVldWUoZGV2KTsKIAlwb3J0X25hcGlfZGlzYWJsZShwb3J0KTsKIAlyZXQgPSBlaGVhX2Rvd24oZGV2KTsKIAltdXRleF91bmxvY2soJnBvcnQtPnBvcnRfbG9jayk7CisJY2xlYXJfYml0KF9fRUhFQV9ESVNBQkxFX1BPUlRfUkVTRVQsICZwb3J0LT5mbGFncyk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMjk0MSw3ICsyOTQ5LDcgQEAKIAogCWlmIChuZXRpZl9jYXJyaWVyX29rKGRldikgJiYKIAkgICAgIXRlc3RfYml0KF9fRUhFQV9TVE9QX1hGRVIsICZlaGVhX2RyaXZlcl9mbGFncykpCi0JCXNjaGVkdWxlX3dvcmsoJnBvcnQtPnJlc2V0X3Rhc2spOworCQllaGVhX3NjaGVkdWxlX3BvcnRfcmVzZXQocG9ydCk7CiB9CiAKIGludCBlaGVhX3NlbnNlX2FkYXB0ZXJfYXR0cihzdHJ1Y3QgZWhlYV9hZGFwdGVyICphZGFwdGVyKQpAQCAtMzU5MCw3ICszNTk4LDcgQEAKIAltZW1zZXQoJmVoZWFfYmNtY19yZWdzLCAwLCBzaXplb2YoZWhlYV9iY21jX3JlZ3MpKTsKIAogCW11dGV4X2luaXQoJmVoZWFfZndfaGFuZGxlcy5sb2NrKTsKLQltdXRleF9pbml0KCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX2xvY2tfaW5pdCgmZWhlYV9iY21jX3JlZ3MubG9jayk7CiAKIAlyZXQgPSBjaGVja19tb2R1bGVfcGFybSgpOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9mb3JjZWRldGguYyBiL2RyaXZlcnMvbmV0L2ZvcmNlZGV0aC5jCmluZGV4IDJjYjI0NDcuLjIwZDRmZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2ZvcmNlZGV0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2ZvcmNlZGV0aC5jCkBAIC00MTk0LDEyICs0MTk0LDIzIEBACiAKIAluZXRpZl9jYXJyaWVyX29mZihkZXYpOwogCWlmIChuZXRpZl9ydW5uaW5nKGRldikpIHsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKKwogCQludl9kaXNhYmxlX2lycShkZXYpOwogCQluZXRpZl90eF9sb2NrX2JoKGRldik7Ci0JCXNwaW5fbG9jaygmbnAtPmxvY2spOworCQkvKiB3aXRoIHBsYWluIHNwaW5sb2NrIGxvY2tkZXAgY29tcGxhaW5zICovCisJCXNwaW5fbG9ja19pcnFzYXZlKCZucC0+bG9jaywgZmxhZ3MpOwogCQkvKiBzdG9wIGVuZ2luZXMgKi8KKwkJLyogRklYTUU6CisJCSAqIHRoaXMgY2FuIHRha2Ugc29tZSB0aW1lLCBhbmQgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQKKwkJICogZHVlIHRvIHNwaW5fbG9ja19pcnFzYXZlLCBidXQgbGV0J3MgaG9wZSBubyBkYWVtb24KKwkJICogaXMgZ29pbmcgdG8gY2hhbmdlIHRoZSBzZXR0aW5ncyB2ZXJ5IG9mdGVuLi4uCisJCSAqIFdvcnN0IGNhc2U6CisJCSAqIE5WX1JYU1RPUF9ERUxBWTFNQVggKyBOVl9UWFNUT1BfREVMQVkxTUFYCisJCSAqICsgc29tZSBtaW5vciBkZWxheXMsIHdoaWNoIGlzIHVwIHRvIGEgc2Vjb25kIGFwcHJveGltYXRlbHkKKwkJICovCiAJCW52X3N0b3Bfcnh0eChkZXYpOwotCQlzcGluX3VubG9jaygmbnAtPmxvY2spOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZucC0+bG9jaywgZmxhZ3MpOwogCQluZXRpZl90eF91bmxvY2tfYmgoZGV2KTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2ZzX2VuZXQvbWFjLWZjYy5jIGIvZHJpdmVycy9uZXQvZnNfZW5ldC9tYWMtZmNjLmMKaW5kZXggZTM2MzIxMS4uODI2OGIzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZnNfZW5ldC9tYWMtZmNjLmMKKysrIGIvZHJpdmVycy9uZXQvZnNfZW5ldC9tYWMtZmNjLmMKQEAgLTQ2Myw2ICs0NjMsOSBAQAogCWVsc2UKIAkJQzMyKGZjY3AsIGZjY19mcHNtciwgRkNDX1BTTVJfRkRFIHwgRkNDX1BTTVJfTFBCKTsKIAorCS8qIFJlc3RvcmUgbXVsdGljYXN0IGFuZCBwcm9taXNjdW91cyBzZXR0aW5ncyAqLworCXNldF9tdWx0aWNhc3RfbGlzdChkZXYpOworCiAJUzMyKGZjY3AsIGZjY19nZm1yLCBGQ0NfR0ZNUl9FTlIgfCBGQ0NfR0ZNUl9FTlQpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oYW1yYWRpby9kbWFzY2MuYyBiL2RyaXZlcnMvbmV0L2hhbXJhZGlvL2RtYXNjYy5jCmluZGV4IDBiOTQ4MzMuLmU4Y2ZhZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2hhbXJhZGlvL2RtYXNjYy5jCisrKyBiL2RyaXZlcnMvbmV0L2hhbXJhZGlvL2RtYXNjYy5jCkBAIC0xMDc3LDggKzEwNzcsNiBAQAogCiBzdGF0aWMgdm9pZCBzdGFydF90aW1lcihzdHJ1Y3Qgc2NjX3ByaXYgKnByaXYsIGludCB0LCBpbnQgcjE1KQogewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KIAlvdXRiKHByaXYtPnRtcl9tb2RlLCBwcml2LT50bXJfY3RybCk7CiAJaWYgKHQgPT0gMCkgewogCQl0bV9pc3IocHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pYm1fbmV3ZW1hYy9jb3JlLmMgYi9kcml2ZXJzL25ldC9pYm1fbmV3ZW1hYy9jb3JlLmMKaW5kZXggNWQyMTA4Yy4uYmFiYzc5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaWJtX25ld2VtYWMvY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L2libV9uZXdlbWFjL2NvcmUuYwpAQCAtMTYzNiw2ICsxNjM2LDEyIEBACiAJCQlnb3RvIG5leHQ7CiAJCX0KIAorCQlpZiAobGVuIDwgRVRIX0hMRU4pIHsKKwkJCSsrZGV2LT5lc3RhdHMucnhfZHJvcHBlZF9zdGFjazsKKwkJCWVtYWNfcmVjeWNsZV9yeF9za2IoZGV2LCBzbG90LCBsZW4pOworCQkJZ290byBuZXh0OworCQl9CisKIAkJaWYgKGxlbiAmJiBsZW4gPCBFTUFDX1JYX0NPUFlfVEhSRVNIKSB7CiAJCQlzdHJ1Y3Qgc2tfYnVmZiAqY29weV9za2IgPQogCQkJICAgIGFsbG9jX3NrYihsZW4gKyBFTUFDX1JYX1NLQl9IRUFEUk9PTSArIDIsIEdGUF9BVE9NSUMpOwpAQCAtMjcxOSw2ICsyNzI1LDggQEAKIAkvKiBDbGVhbiByaW5ncyAqLwogCW1lbXNldChkZXYtPnR4X2Rlc2MsIDAsIE5VTV9UWF9CVUZGICogc2l6ZW9mKHN0cnVjdCBtYWxfZGVzY3JpcHRvcikpOwogCW1lbXNldChkZXYtPnJ4X2Rlc2MsIDAsIE5VTV9SWF9CVUZGICogc2l6ZW9mKHN0cnVjdCBtYWxfZGVzY3JpcHRvcikpOworCW1lbXNldChkZXYtPnR4X3NrYiwgMCwgTlVNX1RYX0JVRkYgKiBzaXplb2Yoc3RydWN0IHNrX2J1ZmYgKikpOworCW1lbXNldChkZXYtPnJ4X3NrYiwgMCwgTlVNX1JYX0JVRkYgKiBzaXplb2Yoc3RydWN0IHNrX2J1ZmYgKikpOwogCiAJLyogQXR0YWNoIHRvIFpNSUksIGlmIG5lZWRlZCAqLwogCWlmIChlbWFjX2hhc19mZWF0dXJlKGRldiwgRU1BQ19GVFJfSEFTX1pNSUkpICYmCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pZ2IvaWdiX21haW4uYyBiL2RyaXZlcnMvbmV0L2lnYi9pZ2JfbWFpbi5jCmluZGV4IGFlMzk4ZjAuLmU3OWEyNmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lnYi9pZ2JfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2lnYi9pZ2JfbWFpbi5jCkBAIC03MTgsNyArNzE4LDggQEAKIAlhZGFwdGVyLT5saW5rX3NwZWVkID0gMDsKIAlhZGFwdGVyLT5saW5rX2R1cGxleCA9IDA7CiAKLQlpZ2JfcmVzZXQoYWRhcHRlcik7CisJaWYgKCFwY2lfY2hhbm5lbF9vZmZsaW5lKGFkYXB0ZXItPnBkZXYpKQorCQlpZ2JfcmVzZXQoYWRhcHRlcik7CiAJaWdiX2NsZWFuX2FsbF90eF9yaW5ncyhhZGFwdGVyKTsKIAlpZ2JfY2xlYW5fYWxsX3J4X3JpbmdzKGFkYXB0ZXIpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBnLmMgYi9kcml2ZXJzL25ldC9pcGcuYwppbmRleCA2NzlhMDgyLi4yYzAzZjRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGcuYworKysgYi9kcml2ZXJzL25ldC9pcGcuYwpAQCAtMTI3MSw3ICsxMjcxLDcgQEAKIAogCQkJZnJhbWVsZW4gPSBsZTY0X3RvX2NwdShyeGZkLT5yZnMpICYgSVBHX1JGU19SWEZSQU1FTEVOOwogCi0JCQllbmRmcmFtZUxlbiA9IGZyYW1lbGVuIC0ganVtYm8tPmN1cnJlbnRfc2l6ZTsKKwkJCWVuZGZyYW1lbGVuID0gZnJhbWVsZW4gLSBqdW1iby0+Y3VycmVudF9zaXplOwogCQkJLyoKIAkJCWlmIChmcmFtZWxlbiA+IElQR19SWEZSQUdfU0laRSkKIAkJCQlmcmFtZWxlbj1JUEdfUlhGUkFHX1NJWkU7CkBAIC0xMjc5LDggKzEyNzksOCBAQAogCQkJaWYgKGZyYW1lbGVuID4gSVBHX1JYU1VQUE9SVF9TSVpFKQogCQkJCWRldl9rZnJlZV9za2JfaXJxKGp1bWJvLT5za2IpOwogCQkJZWxzZSB7Ci0JCQkJbWVtY3B5KHNrYl9wdXQoanVtYm8tPnNrYiwgZW5kZnJhbWVMZW4pLAotCQkJCSAgICAgICBza2ItPmRhdGEsIGVuZGZyYW1lTGVuKTsKKwkJCQltZW1jcHkoc2tiX3B1dChqdW1iby0+c2tiLCBlbmRmcmFtZWxlbiksCisJCQkJICAgICAgIHNrYi0+ZGF0YSwgZW5kZnJhbWVsZW4pOwogCiAJCQkJanVtYm8tPnNrYi0+cHJvdG9jb2wgPQogCQkJCSAgICBldGhfdHlwZV90cmFucyhqdW1iby0+c2tiLCBkZXYpOwpAQCAtMTM1MiwxNiArMTM1MiwxNiBAQAogCiAJCXN3aXRjaCAoaXBnX25pY19yeF9jaGVja19mcmFtZV90eXBlKGRldikpIHsKIAkJY2FzZSBGUkFNRV9XSVRIX1NUQVJUX1dJVEhfRU5EOgotCQkJaXBnX25pY19yeF93aXRoX3N0YXJ0X2FuZF9lbmQoZGV2LCB0cCwgcnhmZCwgZW50cnkpOworCQkJaXBnX25pY19yeF93aXRoX3N0YXJ0X2FuZF9lbmQoZGV2LCBzcCwgcnhmZCwgZW50cnkpOwogCQkJYnJlYWs7CiAJCWNhc2UgRlJBTUVfV0lUSF9TVEFSVDoKLQkJCWlwZ19uaWNfcnhfd2l0aF9zdGFydChkZXYsIHRwLCByeGZkLCBlbnRyeSk7CisJCQlpcGdfbmljX3J4X3dpdGhfc3RhcnQoZGV2LCBzcCwgcnhmZCwgZW50cnkpOwogCQkJYnJlYWs7CiAJCWNhc2UgRlJBTUVfV0lUSF9FTkQ6Ci0JCQlpcGdfbmljX3J4X3dpdGhfZW5kKGRldiwgdHAsIHJ4ZmQsIGVudHJ5KTsKKwkJCWlwZ19uaWNfcnhfd2l0aF9lbmQoZGV2LCBzcCwgcnhmZCwgZW50cnkpOwogCQkJYnJlYWs7CiAJCWNhc2UgRlJBTUVfTk9fU1RBUlRfTk9fRU5EOgotCQkJaXBnX25pY19yeF9ub19zdGFydF9ub19lbmQoZGV2LCB0cCwgcnhmZCwgZW50cnkpOworCQkJaXBnX25pY19yeF9ub19zdGFydF9ub19lbmQoZGV2LCBzcCwgcnhmZCwgZW50cnkpOwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0xODA4LDcgKzE4MDgsNyBAQAogCS8qIGluaXRpYWxpemUgSlVNQk8gRnJhbWUgY29udHJvbCB2YXJpYWJsZSAqLwogCXNwLT5qdW1iby5mb3VuZF9zdGFydCA9IDA7CiAJc3AtPmp1bWJvLmN1cnJlbnRfc2l6ZSA9IDA7Ci0Jc3AtPmp1bWJvLnNrYiA9IDA7CisJc3AtPmp1bWJvLnNrYiA9IE5VTEw7CiAJZGV2LT5tdHUgPSBJUEdfVFhGUkFHX1NJWkU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXJkYS9pcmRhLXVzYi5jIGIvZHJpdmVycy9uZXQvaXJkYS9pcmRhLXVzYi5jCmluZGV4IDZmNTBlZDcuLjE4YjQ3MWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lyZGEvaXJkYS11c2IuYworKysgYi9kcml2ZXJzL25ldC9pcmRhL2lyZGEtdXNiLmMKQEAgLTEwMjQsNyArMTAyNCw3IEBACiAgKiAgIFVwbG9hZCBmaXJtd2FyZSBjb2RlIHRvIFNpZ21hVGVsIDQyMVggSVJEQS1VU0IgZG9uZ2xlCiAgKi8KIHN0YXRpYyBpbnQgc3RpcjQyMXhfZndfdXBsb2FkKHN0cnVjdCBpcmRhX3VzYl9jYiAqc2VsZiwKLQkJCSAgICAgdW5zaWduZWQgY2hhciAqcGF0Y2gsCisJCQkgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBhdGNoLAogCQkJICAgICBjb25zdCB1bnNpZ25lZCBpbnQgcGF0Y2hfbGVuKQogewogICAgICAgICBpbnQgcmV0ID0gLUVOT01FTTsKQEAgLTEwNzMsMTEgKzEwNzMsMTEgQEAKICAgKi8KIHN0YXRpYyBpbnQgc3RpcjQyMXhfcGF0Y2hfZGV2aWNlKHN0cnVjdCBpcmRhX3VzYl9jYiAqc2VsZikKIHsKLSAgICAgICAgdW5zaWduZWQgaW50IGk7Ci0gICAgICAgIGludCByZXQ7Ci0gICAgICAgIGNoYXIgc3RpcjQyMXhfZndfbmFtZVsxMV07Ci0gICAgICAgIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgKmZ3X3ZlcnNpb25fcHRyOyAvKiBwb2ludGVyIHRvIHZlcnNpb24gc3RyaW5nICovCisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKwljaGFyIHN0aXI0MjF4X2Z3X25hbWVbMTFdOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CisJY29uc3QgdW5zaWduZWQgY2hhciAqZndfdmVyc2lvbl9wdHI7IC8qIHBvaW50ZXIgdG8gdmVyc2lvbiBzdHJpbmcgKi8KIAl1bnNpZ25lZCBsb25nIGZ3X3ZlcnNpb24gPSAwOwogCiAgICAgICAgIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcmRhL25zYy1pcmNjLmMgYi9kcml2ZXJzL25ldC9pcmRhL25zYy1pcmNjLmMKaW5kZXggYTc3MTRkYS4uZWZmYzFjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXJkYS9uc2MtaXJjYy5jCisrKyBiL2RyaXZlcnMvbmV0L2lyZGEvbnNjLWlyY2MuYwpAQCAtMTUyLDYgKzE1Miw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IHBucF9kZXZpY2VfaWQgbnNjX2lyY2NfcG5wX3RhYmxlW10gPSB7CiAJeyAuaWQgPSAiTlNDNjAwMSIsIC5kcml2ZXJfZGF0YSA9IDAgfSwKIAl7IC5pZCA9ICJJQk0wMDcxIiwgLmRyaXZlcl9kYXRhID0gMCB9LAorCXsgLmlkID0gIkhXUEMyMjQiLCAuZHJpdmVyX2RhdGEgPSAwIH0sCiAJeyB9CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcmRhL3B4YWZpY3BfaXIuYyBiL2RyaXZlcnMvbmV0L2lyZGEvcHhhZmljcF9pci5jCmluZGV4IGQ1YzJkMjcuLmY3NmIwYjZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcmRhL3B4YWZpY3BfaXIuYworKysgYi9kcml2ZXJzL25ldC9pcmRhL3B4YWZpY3BfaXIuYwpAQCAtMTMsMTYgKzEzLDggQEAKICAqCiAgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L25ldGRldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3BtLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKICNpbmNsdWRlIDxuZXQvaXJkYS9pcmRhLmg+CkBAIC0zMCwxNyArMjIsOSBAQAogI2luY2x1ZGUgPG5ldC9pcmRhL3dyYXBwZXIuaD4KICNpbmNsdWRlIDxuZXQvaXJkYS9pcmRhX2RldmljZS5oPgogCi0jaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGFzbS9kbWEuaD4KLSNpbmNsdWRlIDxhc20vZGVsYXkuaD4KLSNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pcmRhLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgotCi0jaWZkZWYgQ09ORklHX01BQ0hfTUFJTlNUT05FCi0jaW5jbHVkZSA8YXNtL2FyY2gvbWFpbnN0b25lLmg+Ci0jZW5kaWYKIAogI2RlZmluZSBJclNSX1JYUExfTkVHX0lTX1pFUk8gKDE8PDQpCiAjZGVmaW5lIElyU1JfUlhQTF9QT1NfSVNfWkVSTyAweDAKQEAgLTE2MywxMCArMTQ3LDYgQEAKIAkJCS8qIHNldCBib2FyZCB0cmFuc2NlaXZlciB0byBTSVIgbW9kZSAqLwogCQkJc2ktPnBkYXRhLT50cmFuc2NlaXZlcl9tb2RlKHNpLT5kZXYsIElSX1NJUk1PREUpOwogCi0JCQkvKiBjb25maWd1cmUgR1BJTzQ2LzQ3ICovCi0JCQlweGFfZ3Bpb19tb2RlKEdQSU80Nl9TVFJYRF9NRCk7Ci0JCQlweGFfZ3Bpb19tb2RlKEdQSU80N19TVFRYRF9NRCk7Ci0KIAkJCS8qIGVuYWJsZSB0aGUgU1RVQVJUIGNsb2NrICovCiAJCQlweGFfaXJkYV9lbmFibGVfc2lyY2xrKHNpKTsKIAkJfQpAQCAtMjAxLDEwICsxODEsNiBAQAogCQkvKiBzZXQgYm9hcmQgdHJhbnNjZWl2ZXIgdG8gRklSIG1vZGUgKi8KIAkJc2ktPnBkYXRhLT50cmFuc2NlaXZlcl9tb2RlKHNpLT5kZXYsIElSX0ZJUk1PREUpOwogCi0JCS8qIGNvbmZpZ3VyZSBHUElPNDYvNDcgKi8KLQkJcHhhX2dwaW9fbW9kZShHUElPNDZfSUNQUlhEX01EKTsKLQkJcHhhX2dwaW9fbW9kZShHUElPNDdfSUNQVFhEX01EKTsKLQogCQkvKiBlbmFibGUgdGhlIEZJQ1AgY2xvY2sgKi8KIAkJcHhhX2lyZGFfZW5hYmxlX2ZpcmNsayhzaSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lyZGEvdmlhLWlyY2MuYyBiL2RyaXZlcnMvbmV0L2lyZGEvdmlhLWlyY2MuYwppbmRleCA1OGUxMjg3Li4wNGFkMzU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcmRhL3ZpYS1pcmNjLmMKKysrIGIvZHJpdmVycy9uZXQvaXJkYS92aWEtaXJjYy5jCkBAIC0xNTQ2LDYgKzE1NDYsNyBAQAogCQkJSVJEQV9XQVJOSU5HKCIlcywgdW5hYmxlIHRvIGFsbG9jYXRlIGRtYTI9JWRcbiIsCiAJCQkJICAgICBkcml2ZXJfbmFtZSwgc2VsZi0+aW8uZG1hMik7CiAJCQlmcmVlX2lycShzZWxmLT5pby5pcnEsIHNlbGYpOworCQkJZnJlZV9kbWEoc2VsZi0+aW8uZG1hKTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJfQpAQCAtMTYwNiw2ICsxNjA3LDggQEAKIAlFbkFsbEludChpb2Jhc2UsIE9GRik7CiAJZnJlZV9pcnEoc2VsZi0+aW8uaXJxLCBkZXYpOwogCWZyZWVfZG1hKHNlbGYtPmlvLmRtYSk7CisJaWYgKHNlbGYtPmlvLmRtYTIgIT0gc2VsZi0+aW8uZG1hKQorCQlmcmVlX2RtYShzZWxmLT5pby5kbWEyKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfbWFpbi5jCmluZGV4IDdiODU5MjIuLjhmMDQ2MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX21haW4uYworKysgYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9tYWluLmMKQEAgLTE5NjksNyArMTk2OSw4IEBACiAJbmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTsKIAluZXRpZl9zdG9wX3F1ZXVlKG5ldGRldik7CiAKLQlpeGdiZV9yZXNldChhZGFwdGVyKTsKKwlpZiAoIXBjaV9jaGFubmVsX29mZmxpbmUoYWRhcHRlci0+cGRldikpCisJCWl4Z2JlX3Jlc2V0KGFkYXB0ZXIpOwogCWl4Z2JlX2NsZWFuX2FsbF90eF9yaW5ncyhhZGFwdGVyKTsKIAlpeGdiZV9jbGVhbl9hbGxfcnhfcmluZ3MoYWRhcHRlcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY2IuYyBiL2RyaXZlcnMvbmV0L21hY2IuYwppbmRleCA5MmRjY2Q0Li4wYTU3NDVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWNiLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjYi5jCkBAIC0xMjc3LDggKzEyNzcsNDUgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIENPTkZJR19QTQorc3RhdGljIGludCBtYWNiX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpOworCisJbmV0aWZfZGV2aWNlX2RldGFjaChuZXRkZXYpOworCisjaWZuZGVmIENPTkZJR19BUkNIX0FUOTEKKwljbGtfZGlzYWJsZShicC0+aGNsayk7CisjZW5kaWYKKwljbGtfZGlzYWJsZShicC0+cGNsayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBtYWNiX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpOworCisJY2xrX2VuYWJsZShicC0+cGNsayk7CisjaWZuZGVmIENPTkZJR19BUkNIX0FUOTEKKwljbGtfZW5hYmxlKGJwLT5oY2xrKTsKKyNlbmRpZgorCisJbmV0aWZfZGV2aWNlX2F0dGFjaChuZXRkZXYpOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorI2RlZmluZSBtYWNiX3N1c3BlbmQJTlVMTAorI2RlZmluZSBtYWNiX3Jlc3VtZQlOVUxMCisjZW5kaWYKKwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbWFjYl9kcml2ZXIgPSB7CiAJLnJlbW92ZQkJPSBfX2V4aXRfcChtYWNiX3JlbW92ZSksCisJLnN1c3BlbmQJPSBtYWNiX3N1c3BlbmQsCisJLnJlc3VtZQkJPSBtYWNiX3Jlc3VtZSwKIAkuZHJpdmVyCQk9IHsKIAkJLm5hbWUJCT0gIm1hY2IiLAogCQkub3duZXIJPSBUSElTX01PRFVMRSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDQvZncuYyBiL2RyaXZlcnMvbmV0L21seDQvZncuYwppbmRleCBkODJmMjc1Li4yYjUwMDZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tbHg0L2Z3LmMKKysrIGIvZHJpdmVycy9uZXQvbWx4NC9mdy5jCkBAIC0xMDEsNiArMTAxLDM0IEBACiAJCQltbHg0X2RiZyhkZXYsICIgICAgJXNcbiIsIGZuYW1lW2ldKTsKIH0KIAoraW50IG1seDRfTU9EX1NUQVRfQ0ZHKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9tb2Rfc3RhdF9jZmcgKmNmZykKK3sKKwlzdHJ1Y3QgbWx4NF9jbWRfbWFpbGJveCAqbWFpbGJveDsKKwl1MzIgKmluYm94OworCWludCBlcnIgPSAwOworCisjZGVmaW5lIE1PRF9TVEFUX0NGR19JTl9TSVpFCQkweDEwMAorCisjZGVmaW5lIE1PRF9TVEFUX0NGR19QR19TWl9NX09GRlNFVAkweDAwMgorI2RlZmluZSBNT0RfU1RBVF9DRkdfUEdfU1pfT0ZGU0VUCTB4MDAzCisKKwltYWlsYm94ID0gbWx4NF9hbGxvY19jbWRfbWFpbGJveChkZXYpOworCWlmIChJU19FUlIobWFpbGJveCkpCisJCXJldHVybiBQVFJfRVJSKG1haWxib3gpOworCWluYm94ID0gbWFpbGJveC0+YnVmOworCisJbWVtc2V0KGluYm94LCAwLCBNT0RfU1RBVF9DRkdfSU5fU0laRSk7CisKKwlNTFg0X1BVVChpbmJveCwgY2ZnLT5sb2dfcGdfc3osIE1PRF9TVEFUX0NGR19QR19TWl9PRkZTRVQpOworCU1MWDRfUFVUKGluYm94LCBjZmctPmxvZ19wZ19zel9tLCBNT0RfU1RBVF9DRkdfUEdfU1pfTV9PRkZTRVQpOworCisJZXJyID0gbWx4NF9jbWQoZGV2LCBtYWlsYm94LT5kbWEsIDAsIDAsIE1MWDRfQ01EX01PRF9TVEFUX0NGRywKKwkJCU1MWDRfQ01EX1RJTUVfQ0xBU1NfQSk7CisKKwltbHg0X2ZyZWVfY21kX21haWxib3goZGV2LCBtYWlsYm94KTsKKwlyZXR1cm4gZXJyOworfQorCiBpbnQgbWx4NF9RVUVSWV9ERVZfQ0FQKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9kZXZfY2FwICpkZXZfY2FwKQogewogCXN0cnVjdCBtbHg0X2NtZF9tYWlsYm94ICptYWlsYm94OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NC9mdy5oIGIvZHJpdmVycy9uZXQvbWx4NC9mdy5oCmluZGV4IDMwNmNiOWIuLmEwZTA0NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21seDQvZncuaAorKysgYi9kcml2ZXJzL25ldC9tbHg0L2Z3LmgKQEAgLTM4LDYgKzM4LDExIEBACiAjaW5jbHVkZSAibWx4NC5oIgogI2luY2x1ZGUgImljbS5oIgogCitzdHJ1Y3QgbWx4NF9tb2Rfc3RhdF9jZmcgeworCXU4IGxvZ19wZ19zejsKKwl1OCBsb2dfcGdfc3pfbTsKK307CisKIHN0cnVjdCBtbHg0X2Rldl9jYXAgewogCWludCBtYXhfc3JxX3N6OwogCWludCBtYXhfcXBfc3o7CkBAIC0xNjIsNSArMTY3LDYgQEAKIGludCBtbHg0X01BUF9JQ01fQVVYKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9pY20gKmljbSk7CiBpbnQgbWx4NF9VTk1BUF9JQ01fQVVYKHN0cnVjdCBtbHg0X2RldiAqZGV2KTsKIGludCBtbHg0X05PUChzdHJ1Y3QgbWx4NF9kZXYgKmRldik7CitpbnQgbWx4NF9NT0RfU1RBVF9DRkcoc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X21vZF9zdGF0X2NmZyAqY2ZnKTsKIAogI2VuZGlmIC8qIE1MWDRfRldfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NC9tYWluLmMgYi9kcml2ZXJzL25ldC9tbHg0L21haW4uYwppbmRleCBhNmFhNDlmLi5kMzczNjAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tbHg0L21haW4uYworKysgYi9kcml2ZXJzL25ldC9tbHg0L21haW4uYwpAQCAtNDg1LDYgKzQ4NSw3IEBACiAJc3RydWN0IG1seDRfcHJpdgkgICpwcml2ID0gbWx4NF9wcml2KGRldik7CiAJc3RydWN0IG1seDRfYWRhcHRlcgkgICBhZGFwdGVyOwogCXN0cnVjdCBtbHg0X2Rldl9jYXAJICAgZGV2X2NhcDsKKwlzdHJ1Y3QgbWx4NF9tb2Rfc3RhdF9jZmcgICBtbHg0X2NmZzsKIAlzdHJ1Y3QgbWx4NF9wcm9maWxlCSAgIHByb2ZpbGU7CiAJc3RydWN0IG1seDRfaW5pdF9oY2FfcGFyYW0gaW5pdF9oY2E7CiAJdTY0IGljbV9zaXplOwpAQCAtNTAyLDYgKzUwMywxMiBAQAogCQlyZXR1cm4gZXJyOwogCX0KIAorCW1seDRfY2ZnLmxvZ19wZ19zel9tID0gMTsKKwltbHg0X2NmZy5sb2dfcGdfc3ogPSAwOworCWVyciA9IG1seDRfTU9EX1NUQVRfQ0ZHKGRldiwgJm1seDRfY2ZnKTsKKwlpZiAoZXJyKQorCQltbHg0X3dhcm4oZGV2LCAiRmFpbGVkIHRvIG92ZXJyaWRlIGxvZ19wZ19zeiBwYXJhbWV0ZXJcbiIpOworCiAJZXJyID0gbWx4NF9kZXZfY2FwKGRldiwgJmRldl9jYXApOwogCWlmIChlcnIpIHsKIAkJbWx4NF9lcnIoZGV2LCAiUVVFUllfREVWX0NBUCBjb21tYW5kIGZhaWxlZCwgYWJvcnRpbmcuXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDQvbWNnLmMgYi9kcml2ZXJzL25ldC9tbHg0L21jZy5jCmluZGV4IDU3ZjdmMWYuLmI0YjU3ODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21seDQvbWNnLmMKKysrIGIvZHJpdmVycy9uZXQvbWx4NC9tY2cuYwpAQCAtMzgsNiArMzgsOSBAQAogCiAjaW5jbHVkZSAibWx4NC5oIgogCisjZGVmaW5lIE1HTV9RUE5fTUFTSyAgICAgICAweDAwRkZGRkZGCisjZGVmaW5lIE1HTV9CTENLX0xCX0JJVCAgICAzMAorCiBzdHJ1Y3QgbWx4NF9tZ20gewogCV9fYmUzMgkJCW5leHRfZ2lkX2luZGV4OwogCV9fYmUzMgkJCW1lbWJlcnNfY291bnQ7CkBAIC0xNTMsNyArMTU2LDggQEAKIAlyZXR1cm4gZXJyOwogfQogCi1pbnQgbWx4NF9tdWx0aWNhc3RfYXR0YWNoKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9xcCAqcXAsIHU4IGdpZFsxNl0pCitpbnQgbWx4NF9tdWx0aWNhc3RfYXR0YWNoKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9xcCAqcXAsIHU4IGdpZFsxNl0sCisJCQkgIGludCBibG9ja19tY2FzdF9sb29wYmFjaykKIHsKIAlzdHJ1Y3QgbWx4NF9wcml2ICpwcml2ID0gbWx4NF9wcml2KGRldik7CiAJc3RydWN0IG1seDRfY21kX21haWxib3ggKm1haWxib3g7CkBAIC0yMDIsMTMgKzIwNiwxOCBAQAogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBtZW1iZXJzX2NvdW50OyArK2kpCi0JCWlmIChtZ20tPnFwW2ldID09IGNwdV90b19iZTMyKHFwLT5xcG4pKSB7CisJCWlmICgoYmUzMl90b19jcHUobWdtLT5xcFtpXSkgJiBNR01fUVBOX01BU0spID09IHFwLT5xcG4pIHsKIAkJCW1seDRfZGJnKGRldiwgIlFQICUwNnggYWxyZWFkeSBhIG1lbWJlciBvZiBNR01cbiIsIHFwLT5xcG4pOwogCQkJZXJyID0gMDsKIAkJCWdvdG8gb3V0OwogCQl9CiAKLQltZ20tPnFwW21lbWJlcnNfY291bnQrK10gPSBjcHVfdG9fYmUzMihxcC0+cXBuKTsKKwlpZiAoYmxvY2tfbWNhc3RfbG9vcGJhY2spCisJCW1nbS0+cXBbbWVtYmVyc19jb3VudCsrXSA9IGNwdV90b19iZTMyKChxcC0+cXBuICYgTUdNX1FQTl9NQVNLKSB8CisJCQkJCQkgICAgICAgKDEgPDwgTUdNX0JMQ0tfTEJfQklUKSk7CisJZWxzZQorCQltZ20tPnFwW21lbWJlcnNfY291bnQrK10gPSBjcHVfdG9fYmUzMihxcC0+cXBuICYgTUdNX1FQTl9NQVNLKTsKKwogCW1nbS0+bWVtYmVyc19jb3VudCAgICAgICA9IGNwdV90b19iZTMyKG1lbWJlcnNfY291bnQpOwogCiAJZXJyID0gbWx4NF9XUklURV9NQ0coZGV2LCBpbmRleCwgbWFpbGJveCk7CkBAIC0yODMsNyArMjkyLDcgQEAKIAogCW1lbWJlcnNfY291bnQgPSBiZTMyX3RvX2NwdShtZ20tPm1lbWJlcnNfY291bnQpOwogCWZvciAobG9jID0gLTEsIGkgPSAwOyBpIDwgbWVtYmVyc19jb3VudDsgKytpKQotCQlpZiAobWdtLT5xcFtpXSA9PSBjcHVfdG9fYmUzMihxcC0+cXBuKSkKKwkJaWYgKChiZTMyX3RvX2NwdShtZ20tPnFwW2ldKSAmIE1HTV9RUE5fTUFTSykgPT0gcXAtPnFwbikKIAkJCWxvYyA9IGk7CiAKIAlpZiAobG9jID09IC0xKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9teXJpMTBnZS9teXJpMTBnZS5jIGIvZHJpdmVycy9uZXQvbXlyaTEwZ2UvbXlyaTEwZ2UuYwppbmRleCBlMGQ3NmM3Li44MjNiYjZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9teXJpMTBnZS9teXJpMTBnZS5jCisrKyBiL2RyaXZlcnMvbmV0L215cmkxMGdlL215cmkxMGdlLmMKQEAgLTUyOSw2ICs1MjksNyBAQAogCXVuc2lnbmVkIGNyYywgcmVyZWFkX2NyYzsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZtZ3AtPnBkZXYtPmRldjsKKwl1bnNpZ25lZCBjaGFyICpmd19yZWFkYmFjazsKIAlzdHJ1Y3QgbWNwX2dlbl9oZWFkZXIgKmhkcjsKIAlzaXplX3QgaGRyX29mZnNldDsKIAlpbnQgc3RhdHVzOwpAQCAtNTcxLDkgKzU3MiwxNSBAQAogCQltYigpOwogCQlyZWFkYihtZ3AtPnNyYW0pOwogCX0KKwlmd19yZWFkYmFjayA9IHZtYWxsb2MoZnctPnNpemUpOworCWlmICghZndfcmVhZGJhY2spIHsKKwkJc3RhdHVzID0gLUVOT01FTTsKKwkJZ290byBhYm9ydF93aXRoX2Z3OworCX0KIAkvKiBjb3JydXB0aW9uIGNoZWNraW5nIGlzIGdvb2QgZm9yIHBhcml0eSByZWNvdmVyeSBhbmQgYnVnZ3kgY2hpcHNldCAqLwotCW1lbWNweV9mcm9taW8oZnctPmRhdGEsIG1ncC0+c3JhbSArIE1ZUkkxMEdFX0ZXX09GRlNFVCwgZnctPnNpemUpOwotCXJlcmVhZF9jcmMgPSBjcmMzMih+MCwgZnctPmRhdGEsIGZ3LT5zaXplKTsKKwltZW1jcHlfZnJvbWlvKGZ3X3JlYWRiYWNrLCBtZ3AtPnNyYW0gKyBNWVJJMTBHRV9GV19PRkZTRVQsIGZ3LT5zaXplKTsKKwlyZXJlYWRfY3JjID0gY3JjMzIofjAsIGZ3X3JlYWRiYWNrLCBmdy0+c2l6ZSk7CisJdmZyZWUoZndfcmVhZGJhY2spOwogCWlmIChjcmMgIT0gcmVyZWFkX2NyYykgewogCQlkZXZfZXJyKGRldiwgIkNSQyBmYWlsZWQoZnctbGVuPSV1KSwgZ290IDB4JXggKGV4cGVjdCAweCV4KVxuIiwKIAkJCSh1bnNpZ25lZClmdy0+c2l6ZSwgcmVyZWFkX2NyYywgY3JjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX21haW4uYyBiL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX21haW4uYwppbmRleCA2Nzk3ZWQwLi42M2NkNjdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfbWFpbi5jCkBAIC03MSwxNCArNzEsMTggQEAKIHN0YXRpYyBpcnFyZXR1cm5fdCBuZXR4ZW5fbXNpX2ludHIoaW50IGlycSwgdm9pZCAqZGF0YSk7CiAKIC8qICBQQ0kgRGV2aWNlIElEIFRhYmxlICAqLworI2RlZmluZSBFTlRSWShkZXZpY2UpIFwKKwl7UENJX0RFVklDRSgweDQwNDAsIChkZXZpY2UpKSwgXAorCS5jbGFzcyA9IFBDSV9DTEFTU19ORVRXT1JLX0VUSEVSTkVUIDw8IDgsIC5jbGFzc19tYXNrID0gfjB9CisKIHN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBuZXR4ZW5fcGNpX3RibFtdIF9fZGV2aW5pdGRhdGEgPSB7Ci0Je1BDSV9ERVZJQ0UoMHg0MDQwLCAweDAwMDEpLCBQQ0lfREVWSUNFX0NMQVNTKDB4MDIwMDAwLCB+MCl9LAotCXtQQ0lfREVWSUNFKDB4NDA0MCwgMHgwMDAyKSwgUENJX0RFVklDRV9DTEFTUygweDAyMDAwMCwgfjApfSwKLQl7UENJX0RFVklDRSgweDQwNDAsIDB4MDAwMyksIFBDSV9ERVZJQ0VfQ0xBU1MoMHgwMjAwMDAsIH4wKX0sCi0Je1BDSV9ERVZJQ0UoMHg0MDQwLCAweDAwMDQpLCBQQ0lfREVWSUNFX0NMQVNTKDB4MDIwMDAwLCB+MCl9LAotCXtQQ0lfREVWSUNFKDB4NDA0MCwgMHgwMDA1KSwgUENJX0RFVklDRV9DTEFTUygweDAyMDAwMCwgfjApfSwKLQl7UENJX0RFVklDRSgweDQwNDAsIDB4MDAyNCksIFBDSV9ERVZJQ0VfQ0xBU1MoMHgwMjAwMDAsIH4wKX0sCi0Je1BDSV9ERVZJQ0UoMHg0MDQwLCAweDAwMjUpLCBQQ0lfREVWSUNFX0NMQVNTKDB4MDIwMDAwLCB+MCl9LAorCUVOVFJZKDB4MDAwMSksCisJRU5UUlkoMHgwMDAyKSwKKwlFTlRSWSgweDAwMDMpLAorCUVOVFJZKDB4MDAwNCksCisJRU5UUlkoMHgwMDA1KSwKKwlFTlRSWSgweDAwMjQpLAorCUVOVFJZKDB4MDAyNSksCiAJezAsfQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGFzZW1pX21hYy5jIGIvZHJpdmVycy9uZXQvcGFzZW1pX21hYy5jCmluZGV4IDNiMmE2YzU5OC4uOTkzZDg3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGFzZW1pX21hYy5jCisrKyBiL2RyaXZlcnMvbmV0L3Bhc2VtaV9tYWMuYwpAQCAtMjc3LDcgKzI3Nyw3IEBACiAJKnRjcGggPSB0Y3BfaGRyKHNrYik7CiAKIAkvKiBjaGVjayBpZiBpcCBoZWFkZXIgYW5kIHRjcCBoZWFkZXIgYXJlIGNvbXBsZXRlICovCi0JaWYgKGlwaC0+dG90X2xlbiA8IGlwX2xlbiArIHRjcF9oZHJsZW4oc2tiKSkKKwlpZiAobnRvaHMoaXBoLT50b3RfbGVuKSA8IGlwX2xlbiArIHRjcF9oZHJsZW4oc2tiKSkKIAkJcmV0dXJuIC0xOwogCiAJKmhkcl9mbGFncyA9IExST19JUFY0IHwgTFJPX1RDUDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BjbWNpYS9heG5ldF9jcy5jIGIvZHJpdmVycy9uZXQvcGNtY2lhL2F4bmV0X2NzLmMKaW5kZXggY2U5NWM1ZC4uNzBkMDEyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGNtY2lhL2F4bmV0X2NzLmMKKysrIGIvZHJpdmVycy9uZXQvcGNtY2lhL2F4bmV0X2NzLmMKQEAgLTUyNSwxMiArNTI1LDE0IEBACiAgICAgaW50IHJldDsKICAgICBheG5ldF9kZXZfdCAqaW5mbyA9IFBSSVYoZGV2KTsKICAgICBzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluayA9IGluZm8tPnBfZGV2OworICAgIHVuc2lnbmVkIGludCBuaWNfYmFzZSA9IGRldi0+YmFzZV9hZGRyOwogICAgIAogICAgIERFQlVHKDIsICJheG5ldF9vcGVuKCclcycpXG4iLCBkZXYtPm5hbWUpOwogCiAgICAgaWYgKCFwY21jaWFfZGV2X3ByZXNlbnQobGluaykpCiAJcmV0dXJuIC1FTk9ERVY7CiAKKyAgICBvdXRiX3AoMHhGRiwgbmljX2Jhc2UgKyBFTjBfSVNSKTsgLyogQ2xlYXIgYm9ndXMgaW50ci4gKi8KICAgICByZXQgPSByZXF1ZXN0X2lycShkZXYtPmlycSwgZWlfaXJxX3dyYXBwZXIsIElSUUZfU0hBUkVELCAiYXhuZXRfY3MiLCBkZXYpOwogICAgIGlmIChyZXQpCiAJICAgIHJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wY21jaWEvcGNuZXRfY3MuYyBiL2RyaXZlcnMvbmV0L3BjbWNpYS9wY25ldF9jcy5jCmluZGV4IGZkODE1OGEuLjJkNGM0YWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BjbWNpYS9wY25ldF9jcy5jCisrKyBiL2RyaXZlcnMvbmV0L3BjbWNpYS9wY25ldF9jcy5jCkBAIC05NjksNiArOTY5LDcgQEAKICAgICBpbnQgcmV0OwogICAgIHBjbmV0X2Rldl90ICppbmZvID0gUFJJVihkZXYpOwogICAgIHN0cnVjdCBwY21jaWFfZGV2aWNlICpsaW5rID0gaW5mby0+cF9kZXY7CisgICAgdW5zaWduZWQgaW50IG5pY19iYXNlID0gZGV2LT5iYXNlX2FkZHI7CiAKICAgICBERUJVRygyLCAicGNuZXRfb3BlbignJXMnKVxuIiwgZGV2LT5uYW1lKTsKIApAQCAtOTc2LDYgKzk3Nyw4IEBACiAJcmV0dXJuIC1FTk9ERVY7CiAKICAgICBzZXRfbWlzY19yZWcoZGV2KTsKKworICAgIG91dGJfcCgweEZGLCBuaWNfYmFzZSArIEVOMF9JU1IpOyAvKiBDbGVhciBib2d1cyBpbnRyLiAqLwogICAgIHJldCA9IHJlcXVlc3RfaXJxKGRldi0+aXJxLCBlaV9pcnFfd3JhcHBlciwgSVJRRl9TSEFSRUQsIGRldl9pbmZvLCBkZXYpOwogICAgIGlmIChyZXQpCiAJICAgIHJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwX2dlbmVyaWMuYwppbmRleCAxZjRjYTJiLi44MzYyNWZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wcHBfZ2VuZXJpYy5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcF9nZW5lcmljLmMKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pZl9hcnAuaD4KICNpbmNsdWRlIDxsaW51eC9pcC5oPgogI2luY2x1ZGUgPGxpbnV4L3RjcC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9yd3NlbS5oPgogI2luY2x1ZGUgPGxpbnV4L3N0ZGRlZi5oPgpAQCAtMzUzLDYgKzM1NCw3IEBACiAgKi8KIHN0YXRpYyBpbnQgcHBwX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAkvKgogCSAqIFRoaXMgY291bGQgKHNob3VsZD8pIGJlIGVuZm9yY2VkIGJ5IHRoZSBwZXJtaXNzaW9ucyBvbiAvZGV2L3BwcC4KIAkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3FsYTN4eHguYyBiL2RyaXZlcnMvbmV0L3FsYTN4eHguYwppbmRleCBiN2Y3YjIyLi5iY2NlZTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9xbGEzeHh4LmMKKysrIGIvZHJpdmVycy9uZXQvcWxhM3h4eC5jCkBAIC0zNzAxLDcgKzM3MDEsOSBAQAogCQlwcmludGsoS0VSTl9FUlIgUEZYCiAJCQkJIiVzOiBEcml2ZXIgdXAvZG93biBjeWNsZSBmYWlsZWQsICIKIAkJCQkiY2xvc2luZyBkZXZpY2VcbiIscWRldi0+bmRldi0+bmFtZSk7CisJCXJ0bmxfbG9jaygpOwogCQlkZXZfY2xvc2UocWRldi0+bmRldik7CisJCXJ0bmxfdW5sb2NrKCk7CiAJCXJldHVybiAtMTsKIAl9CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9yNjA0MC5jIGIvZHJpdmVycy9uZXQvcjYwNDAuYwppbmRleCA4NThiMTkxLi41MDRhNDhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9yNjA0MC5jCisrKyBiL2RyaXZlcnMvbmV0L3I2MDQwLmMKQEAgLTI3Myw3ICsyNzMsNyBAQAogCWRtYV9hZGRyX3QgbWFwcGluZyA9IGRlc2NfZG1hOwogCiAJd2hpbGUgKHNpemUtLSA+IDApIHsKLQkJbWFwcGluZyArPSBzaXplb2Yoc2l6ZW9mKCpkZXNjKSk7CisJCW1hcHBpbmcgKz0gc2l6ZW9mKCpkZXNjKTsKIAkJZGVzYy0+bmRlc2MgPSBjcHVfdG9fbGUzMihtYXBwaW5nKTsKIAkJZGVzYy0+dm5kZXNjcCA9IGRlc2MgKyAxOwogCQlkZXNjKys7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zMmlvLmMgYi9kcml2ZXJzL25ldC9zMmlvLmMKaW5kZXggYjVjMWU2Ni4uYWU3YjY5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvczJpby5jCisrKyBiL2RyaXZlcnMvbmV0L3MyaW8uYwpAQCAtMjYyNSw5ICsyNjI1LDcgQEAKIAkJCXJ4ZHAxLT5CdWZmZXIwX3B0ciA9IHBjaV9tYXBfc2luZ2xlCiAJCQkgICAgKHJpbmctPnBkZXYsIHNrYi0+ZGF0YSwgc2l6ZSAtIE5FVF9JUF9BTElHTiwKIAkJCQlQQ0lfRE1BX0ZST01ERVZJQ0UpOwotCQkJaWYoIChyeGRwMS0+QnVmZmVyMF9wdHIgPT0gMCkgfHwKLQkJCQkocnhkcDEtPkJ1ZmZlcjBfcHRyID09Ci0JCQkJRE1BX0VSUk9SX0NPREUpKQorCQkJaWYocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHJ4ZHAxLT5CdWZmZXIwX3B0cikpCiAJCQkJZ290byBwY2lfbWFwX2ZhaWxlZDsKIAogCQkJcnhkcC0+Q29udHJvbF8yID0KQEAgLTI2NTcsNiArMjY1NSw3IEBACiAJCQlza2ItPmRhdGEgPSAodm9pZCAqKSAodW5zaWduZWQgbG9uZyl0bXA7CiAJCQlza2JfcmVzZXRfdGFpbF9wb2ludGVyKHNrYik7CiAKKwkJCS8qIEFLOiBjaGVjayBpcyB3cm9uZy4gMCBjYW4gYmUgdmFsaWQgZG1hIGFkZHJlc3MgKi8KIAkJCWlmICghKHJ4ZHAzLT5CdWZmZXIwX3B0cikpCiAJCQkJcnhkcDMtPkJ1ZmZlcjBfcHRyID0KIAkJCQkgICBwY2lfbWFwX3NpbmdsZShyaW5nLT5wZGV2LCBiYS0+YmFfMCwKQEAgLTI2NjUsOCArMjY2NCw3IEBACiAJCQkJcGNpX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHJpbmctPnBkZXYsCiAJCQkJKGRtYV9hZGRyX3QpIHJ4ZHAzLT5CdWZmZXIwX3B0ciwKIAkJCQkgICAgQlVGMF9MRU4sIFBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQlpZiggKHJ4ZHAzLT5CdWZmZXIwX3B0ciA9PSAwKSB8fAotCQkJCShyeGRwMy0+QnVmZmVyMF9wdHIgPT0gRE1BX0VSUk9SX0NPREUpKQorCQkJaWYgKHBjaV9kbWFfbWFwcGluZ19lcnJvcihyeGRwMy0+QnVmZmVyMF9wdHIpKQogCQkJCWdvdG8gcGNpX21hcF9mYWlsZWQ7CiAKIAkJCXJ4ZHAtPkNvbnRyb2xfMiA9IFNFVF9CVUZGRVIwX1NJWkVfMyhCVUYwX0xFTik7CkBAIC0yNjgxLDE4ICsyNjc5LDE3IEBACiAJCQkJKHJpbmctPnBkZXYsIHNrYi0+ZGF0YSwgcmluZy0+bXR1ICsgNCwKIAkJCQkJCVBDSV9ETUFfRlJPTURFVklDRSk7CiAKLQkJCQlpZiggKHJ4ZHAzLT5CdWZmZXIyX3B0ciA9PSAwKSB8fAotCQkJCQkocnhkcDMtPkJ1ZmZlcjJfcHRyID09IERNQV9FUlJPUl9DT0RFKSkKKwkJCQlpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHJ4ZHAzLT5CdWZmZXIyX3B0cikpCiAJCQkJCWdvdG8gcGNpX21hcF9mYWlsZWQ7CiAKKwkJCQkvKiBBSzogY2hlY2sgaXMgd3JvbmcgKi8KIAkJCQlpZiAoIXJ4ZHAzLT5CdWZmZXIxX3B0cikKIAkJCQkJcnhkcDMtPkJ1ZmZlcjFfcHRyID0KIAkJCQkJCXBjaV9tYXBfc2luZ2xlKHJpbmctPnBkZXYsCiAJCQkJCQliYS0+YmFfMSwgQlVGMV9MRU4sCiAJCQkJCQlQQ0lfRE1BX0ZST01ERVZJQ0UpOwogCi0JCQkJaWYoIChyeGRwMy0+QnVmZmVyMV9wdHIgPT0gMCkgfHwKLQkJCQkJKHJ4ZHAzLT5CdWZmZXIxX3B0ciA9PSBETUFfRVJST1JfQ09ERSkpIHsKKwkJCQlpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHJ4ZHAzLT5CdWZmZXIxX3B0cikpIHsKIAkJCQkJcGNpX3VubWFwX3NpbmdsZQogCQkJCQkJKHJpbmctPnBkZXYsCiAJCQkJCQkoZG1hX2FkZHJfdCkodW5zaWduZWQgbG9uZykKQEAgLTQyNjQsMTYgKzQyNjEsMTQgQEAKIAkJdHhkcC0+QnVmZmVyX1BvaW50ZXIgPSBwY2lfbWFwX3NpbmdsZShzcC0+cGRldiwKIAkJCQkJZmlmby0+dWZvX2luX2JhbmRfdiwKIAkJCQkJc2l6ZW9mKHU2NCksIFBDSV9ETUFfVE9ERVZJQ0UpOwotCQlpZigodHhkcC0+QnVmZmVyX1BvaW50ZXIgPT0gMCkgfHwKLQkJCSh0eGRwLT5CdWZmZXJfUG9pbnRlciA9PSBETUFfRVJST1JfQ09ERSkpCisJCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IodHhkcC0+QnVmZmVyX1BvaW50ZXIpKQogCQkJZ290byBwY2lfbWFwX2ZhaWxlZDsKIAkJdHhkcCsrOwogCX0KIAogCXR4ZHAtPkJ1ZmZlcl9Qb2ludGVyID0gcGNpX21hcF9zaW5nbGUKIAkgICAgKHNwLT5wZGV2LCBza2ItPmRhdGEsIGZyZ19sZW4sIFBDSV9ETUFfVE9ERVZJQ0UpOwotCWlmKCh0eGRwLT5CdWZmZXJfUG9pbnRlciA9PSAwKSB8fAotCQkodHhkcC0+QnVmZmVyX1BvaW50ZXIgPT0gRE1BX0VSUk9SX0NPREUpKQorCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IodHhkcC0+QnVmZmVyX1BvaW50ZXIpKQogCQlnb3RvIHBjaV9tYXBfZmFpbGVkOwogCiAJdHhkcC0+SG9zdF9Db250cm9sID0gKHVuc2lnbmVkIGxvbmcpIHNrYjsKQEAgLTY4ODQsMTAgKzY4NzksOCBAQAogCQkJCXBjaV9tYXBfc2luZ2xlKCBzcC0+cGRldiwgKCpza2IpLT5kYXRhLAogCQkJCQlzaXplIC0gTkVUX0lQX0FMSUdOLAogCQkJCQlQQ0lfRE1BX0ZST01ERVZJQ0UpOwotCQkJaWYoIChyeGRwMS0+QnVmZmVyMF9wdHIgPT0gMCkgfHwKLQkJCQkocnhkcDEtPkJ1ZmZlcjBfcHRyID09IERNQV9FUlJPUl9DT0RFKSkgeworCQkJaWYgKHBjaV9kbWFfbWFwcGluZ19lcnJvcihyeGRwMS0+QnVmZmVyMF9wdHIpKQogCQkJCWdvdG8gbWVtYWxsb2NfZmFpbGVkOwotCQkJfQogCQkJcnhkcC0+SG9zdF9Db250cm9sID0gKHVuc2lnbmVkIGxvbmcpICgqc2tiKTsKIAkJfQogCX0gZWxzZSBpZiAoKHNwLT5yeGRfbW9kZSA9PSBSWERfTU9ERV8zQikgJiYgKHJ4ZHAtPkhvc3RfQ29udHJvbCA9PSAwKSkgewpAQCAtNjkxMywxNSArNjkwNiwxMiBAQAogCQkJCXBjaV9tYXBfc2luZ2xlKHNwLT5wZGV2LCAoKnNrYiktPmRhdGEsCiAJCQkJCSAgICAgICBkZXYtPm10dSArIDQsCiAJCQkJCSAgICAgICBQQ0lfRE1BX0ZST01ERVZJQ0UpOwotCQkJaWYoIChyeGRwMy0+QnVmZmVyMl9wdHIgPT0gMCkgfHwKLQkJCQkocnhkcDMtPkJ1ZmZlcjJfcHRyID09IERNQV9FUlJPUl9DT0RFKSkgeworCQkJaWYgKHBjaV9kbWFfbWFwcGluZ19lcnJvcihyeGRwMy0+QnVmZmVyMl9wdHIpKQogCQkJCWdvdG8gbWVtYWxsb2NfZmFpbGVkOwotCQkJfQogCQkJcnhkcDMtPkJ1ZmZlcjBfcHRyID0gKnRlbXAwID0KIAkJCQlwY2lfbWFwX3NpbmdsZSggc3AtPnBkZXYsIGJhLT5iYV8wLCBCVUYwX0xFTiwKIAkJCQkJCVBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQlpZiggKHJ4ZHAzLT5CdWZmZXIwX3B0ciA9PSAwKSB8fAotCQkJCShyeGRwMy0+QnVmZmVyMF9wdHIgPT0gRE1BX0VSUk9SX0NPREUpKSB7CisJCQlpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHJ4ZHAzLT5CdWZmZXIwX3B0cikpIHsKIAkJCQlwY2lfdW5tYXBfc2luZ2xlIChzcC0+cGRldiwKIAkJCQkJKGRtYV9hZGRyX3QpcnhkcDMtPkJ1ZmZlcjJfcHRyLAogCQkJCQlkZXYtPm10dSArIDQsIFBDSV9ETUFfRlJPTURFVklDRSk7CkBAIC02OTMzLDggKzY5MjMsNyBAQAogCQkJcnhkcDMtPkJ1ZmZlcjFfcHRyID0gKnRlbXAxID0KIAkJCQlwY2lfbWFwX3NpbmdsZShzcC0+cGRldiwgYmEtPmJhXzEsIEJVRjFfTEVOLAogCQkJCQkJUENJX0RNQV9GUk9NREVWSUNFKTsKLQkJCWlmKCAocnhkcDMtPkJ1ZmZlcjFfcHRyID09IDApIHx8Ci0JCQkJKHJ4ZHAzLT5CdWZmZXIxX3B0ciA9PSBETUFfRVJST1JfQ09ERSkpIHsKKwkJCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IocnhkcDMtPkJ1ZmZlcjFfcHRyKSkgewogCQkJCXBjaV91bm1hcF9zaW5nbGUgKHNwLT5wZGV2LAogCQkJCQkoZG1hX2FkZHJfdClyeGRwMy0+QnVmZmVyMF9wdHIsCiAJCQkJCUJVRjBfTEVOLCBQQ0lfRE1BX0ZST01ERVZJQ0UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvczJpby5oIGIvZHJpdmVycy9uZXQvczJpby5oCmluZGV4IDQ3MDZmN2YuLjE4MjdiNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3MyaW8uaAorKysgYi9kcml2ZXJzL25ldC9zMmlvLmgKQEAgLTc1LDEwICs3NSw2IEBACiAvKiBERUJVRyBtZXNzYWdlIHByaW50LiAqLwogI2RlZmluZSBEQkdfUFJJTlQoZGJnX2xldmVsLCBhcmdzLi4uKSAgaWYoIShkZWJ1Z19sZXZlbDxkYmdfbGV2ZWwpKSBwcmludGsoYXJncykKIAotI2lmbmRlZiBETUFfRVJST1JfQ09ERQotI2RlZmluZSBETUFfRVJST1JfQ09ERSAgICAgICAgICAofihkbWFfYWRkcl90KTB4MCkKLSNlbmRpZgotCiAvKiBQcm90b2NvbCBhc3Npc3QgZmVhdHVyZXMgb2YgdGhlIE5JQyAqLwogI2RlZmluZSBMM19DS1NVTV9PSyAweEZGRkYKICNkZWZpbmUgTDRfQ0tTVU1fT0sgMHhGRkZGCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90YzM1ODE1LmMgYi9kcml2ZXJzL25ldC90YzM1ODE1LmMKaW5kZXggMTBlNGU4NS4uYjA3YjhjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdGMzNTgxNS5jCisrKyBiL2RyaXZlcnMvbmV0L3RjMzU4MTUuYwpAQCAtMTM5NCw2ICsxMzk0LDcgQEAKIAl0YzM1ODE1X2NoaXBfaW5pdChkZXYpOwogCXNwaW5fdW5sb2NrX2lycSgmbHAtPmxvY2spOwogCisJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsKIAkvKiBzY2hlZHVsZSBhIGxpbmsgc3RhdGUgY2hlY2sgKi8KIAlwaHlfc3RhcnQobHAtPnBoeV9kZXYpOwogCkBAIC0xNzM1LDcgKzE3MzYsNiBAQAogCQkJc2tiID0gbHAtPnJ4X3NrYnNbY3VyX2JkXS5za2I7CiAJCQlwcmVmZXRjaChza2ItPmRhdGEpOwogCQkJbHAtPnJ4X3NrYnNbY3VyX2JkXS5za2IgPSBOVUxMOwotCQkJbHAtPmZibF9jb3VudC0tOwogCQkJcGNpX3VubWFwX3NpbmdsZShscC0+cGNpX2RldiwKIAkJCQkJIGxwLT5yeF9za2JzW2N1cl9iZF0uc2tiX2RtYSwKIAkJCQkJIFJYX0JVRl9TSVpFLCBQQ0lfRE1BX0ZST01ERVZJQ0UpOwpAQCAtMTc5MSw2ICsxNzkxLDcgQEAKICNpZmRlZiBUQzM1ODE1X1VTRV9QQUNLRURCVUZGRVIKIAkJCXdoaWxlIChscC0+ZmJsX2N1cmlkICE9IGlkKQogI2Vsc2UKKwkJCWxwLT5mYmxfY291bnQtLTsKIAkJCXdoaWxlIChscC0+ZmJsX2NvdW50IDwgUlhfQlVGX05VTSkKICNlbmRpZgogCQkJewpAQCAtMjQ1Myw2ICsyNDU0LDcgQEAKIAkJcmV0dXJuIDA7CiAJcGNpX3NldF9wb3dlcl9zdGF0ZShwZGV2LCBQQ0lfRDApOwogCXRjMzU4MTVfcmVzdGFydChkZXYpOworCW5ldGlmX2NhcnJpZXJfb2ZmKGRldik7CiAJaWYgKGxwLT5waHlfZGV2KQogCQlwaHlfc3RhcnQobHAtPnBoeV9kZXYpOwogCW5ldGlmX2RldmljZV9hdHRhY2goZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy9zbWN0ci5jIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmMKaW5kZXggNWYxYzUwNy4uZmE3M2U2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmMKKysrIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9za2J1ZmYuaD4KICNpbmNsdWRlIDxsaW51eC90cmRldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CiAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC01OSw3ICs2MCw2IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgInNtY3RyLmgiICAgICAgICAgICAgICAgLyogT3VyIFN0dWZmICovCi0jaW5jbHVkZSAic21jdHJfZmlybXdhcmUuaCIgICAgICAvKiBTTUMgYWRhcHRlciBmaXJtd2FyZSAqLwogCiBzdGF0aWMgY2hhciB2ZXJzaW9uW10gX19pbml0ZGF0YSA9IEtFUk5fSU5GTyAic21jdHIuYzogdjEuNCA3LzEyLzAwIGJ5IGpzY2hsc3RAc2FtYmEub3JnXG4iOwogc3RhdGljIGNvbnN0IGNoYXIgY2FyZG5hbWVbXSA9ICJzbWN0ciI7CkBAIC0xMDMsNyArMTAzLDggQEAKIHN0YXRpYyBpbnQgc21jdHJfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiAKIC8qIEQgKi8KLXN0YXRpYyBpbnQgc21jdHJfZGVjb2RlX2Zpcm13YXJlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOworc3RhdGljIGludCBzbWN0cl9kZWNvZGVfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQkgY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdyk7CiBzdGF0aWMgaW50IHNtY3RyX2Rpc2FibGVfMTZiaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiBzdGF0aWMgaW50IHNtY3RyX2Rpc2FibGVfYWRhcHRlcl9jdHJsX3N0b3JlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwogc3RhdGljIGludCBzbWN0cl9kaXNhYmxlX2JpY19pbnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CkBAIC03NDgsNyArNzQ5LDggQEAKICAgICAgICAgcmV0dXJuICgwKTsKIH0KIAotc3RhdGljIGludCBzbWN0cl9kZWNvZGVfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgc21jdHJfZGVjb2RlX2Zpcm13YXJlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCiB7CiAgICAgICAgIHN0cnVjdCBuZXRfbG9jYWwgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsKICAgICAgICAgc2hvcnQgYml0ID0gMHg4MCwgc2hpZnQgPSAxMjsKQEAgLTc2MiwxMCArNzY0LDEwIEBACiAgICAgICAgIGlmKHNtY3RyX2RlYnVnID4gMTApCiAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBzbWN0cl9kZWNvZGVfZmlybXdhcmVcbiIsIGRldi0+bmFtZSk7CiAKLSAgICAgICAgd2VpZ2h0ICA9ICoobG9uZyAqKSh0cC0+cHRyX3Vjb2RlICsgV0VJR0hUX09GRlNFVCk7Ci0gICAgICAgIHRzaXplICAgPSAqKF9fdTggKikodHAtPnB0cl91Y29kZSArIFRSRUVfU0laRV9PRkZTRVQpOwotICAgICAgICB0cmVlICAgID0gKERFQ09ERV9UUkVFX05PREUgKikodHAtPnB0cl91Y29kZSArIFRSRUVfT0ZGU0VUKTsKLSAgICAgICAgdWNvZGUgICA9IChfX3U4ICopKHRwLT5wdHJfdWNvZGUgKyBUUkVFX09GRlNFVAorICAgICAgICB3ZWlnaHQgID0gKihsb25nICopKGZ3LT5kYXRhICsgV0VJR0hUX09GRlNFVCk7CisgICAgICAgIHRzaXplICAgPSAqKF9fdTggKikoZnctPmRhdGEgKyBUUkVFX1NJWkVfT0ZGU0VUKTsKKyAgICAgICAgdHJlZSAgICA9IChERUNPREVfVFJFRV9OT0RFICopKGZ3LT5kYXRhICsgVFJFRV9PRkZTRVQpOworICAgICAgICB1Y29kZSAgID0gKF9fdTggKikoZnctPmRhdGEgKyBUUkVFX09GRlNFVAogICAgICAgICAgICAgICAgICAgICAgICAgKyAodHNpemUgKiBzaXplb2YoREVDT0RFX1RSRUVfTk9ERSkpKTsKICAgICAgICAgbWVtICAgICA9IChfX3UxNiAqKSh0cC0+cmFtX2FjY2Vzcyk7CiAKQEAgLTI5NjMsMzQgKzI5NjUsNDQgQEAKIHN0YXRpYyBpbnQgc21jdHJfbG9hZF9maXJtd2FyZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogICAgICAgICBzdHJ1Y3QgbmV0X2xvY2FsICp0cCA9IG5ldGRldl9wcml2KGRldik7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKICAgICAgICAgX191MTYgaSwgY2hlY2tzdW0gPSAwOwogICAgICAgICBpbnQgZXJyID0gMDsKIAogICAgICAgICBpZihzbWN0cl9kZWJ1ZyA+IDEwKQogICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0RFQlVHICIlczogc21jdHJfbG9hZF9maXJtd2FyZVxuIiwgZGV2LT5uYW1lKTsKIAotICAgICAgICB0cC0+cHRyX3Vjb2RlICAgICAgICAgICA9IHNtY3RyX2NvZGU7CisJaWYgKHJlcXVlc3RfZmlybXdhcmUoJmZ3LCAidHJfc21jdHIuYmluIiwgJmRldi0+ZGV2KSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBmaXJtd2FyZSBub3QgZm91bmRcbiIsIGRldi0+bmFtZSk7CisJCXJldHVybiAoVUNPREVfTk9UX1BSRVNFTlQpOworCX0KKwogICAgICAgICB0cC0+bnVtX29mX3R4X2J1ZmZzICAgICA9IDQ7CiAgICAgICAgIHRwLT5tb2RlX2JpdHMgICAgICAgICAgfD0gVU1BQzsKICAgICAgICAgdHAtPnJlY2VpdmVfbWFzayAgICAgICAgPSAwOwogICAgICAgICB0cC0+bWF4X3BhY2tldF9zaXplICAgICA9IDQxNzc7CiAKICAgICAgICAgLyogQ2FuIG9ubHkgdXBsb2FkIHRoZSBmaXJtd2FyZSBvbmNlIHBlciBhZGFwdGVyIHJlc2V0LiAqLwotICAgICAgICBpZih0cC0+bWljcm9jb2RlX3ZlcnNpb24gIT0gMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gKFVDT0RFX1BSRVNFTlQpOworICAgICAgICBpZiAodHAtPm1pY3JvY29kZV92ZXJzaW9uICE9IDApIHsKKwkJZXJyID0gKFVDT0RFX1BSRVNFTlQpOworCQlnb3RvIG91dDsKKwl9CiAKICAgICAgICAgLyogVmVyaWZ5IHRoZSBmaXJtd2FyZSBleGlzdHMgYW5kIGlzIHRoZXJlIGluIHRoZSByaWdodCBhbW91bnQuICovCi0gICAgICAgIGlmICghdHAtPnB0cl91Y29kZQotICAgICAgICAgICAgICAgIHx8ICgqKHRwLT5wdHJfdWNvZGUgKyBVQ09ERV9WRVJTSU9OX09GRlNFVCkgPCBVQ09ERV9WRVJTSU9OKSkKKyAgICAgICAgaWYgKCFmdy0+ZGF0YQorICAgICAgICAgICAgICAgIHx8ICgqKGZ3LT5kYXRhICsgVUNPREVfVkVSU0lPTl9PRkZTRVQpIDwgVUNPREVfVkVSU0lPTikpCiAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gKFVDT0RFX05PVF9QUkVTRU5UKTsKKyAgICAgICAgICAgICAgICBlcnIgPSAoVUNPREVfTk9UX1BSRVNFTlQpOworCQlnb3RvIG91dDsKICAgICAgICAgfQogCiAgICAgICAgIC8qIFVDT0RFX1NJWkUgaXMgbm90IGluY2x1ZGVkIGluIENoZWNrc3VtLiAqLwotICAgICAgICBmb3IoaSA9IDA7IGkgPCAqKChfX3UxNiAqKSh0cC0+cHRyX3Vjb2RlICsgVUNPREVfU0laRV9PRkZTRVQpKTsgaSArPSAyKQotICAgICAgICAgICAgICAgIGNoZWNrc3VtICs9ICooKF9fdTE2ICopKHRwLT5wdHJfdWNvZGUgKyAyICsgaSkpOwotICAgICAgICBpZihjaGVja3N1bSkKLSAgICAgICAgICAgICAgICByZXR1cm4gKFVDT0RFX05PVF9QUkVTRU5UKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgKigoX191MTYgKikoZnctPmRhdGEgKyBVQ09ERV9TSVpFX09GRlNFVCkpOyBpICs9IDIpCisgICAgICAgICAgICAgICAgY2hlY2tzdW0gKz0gKigoX191MTYgKikoZnctPmRhdGEgKyAyICsgaSkpOworICAgICAgICBpZiAoY2hlY2tzdW0pIHsKKwkJZXJyID0gKFVDT0RFX05PVF9QUkVTRU5UKTsKKwkJZ290byBvdXQ7CisJfQogCiAgICAgICAgIC8qIEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSBhIHZhbGlkIGZpcm13YXJlIGltYWdlLCBsZXRzIGtpY2sgaXQgb24gdXAuICovCiAgICAgICAgIHNtY3RyX2VuYWJsZV9hZGFwdGVyX3JhbShkZXYpOwpAQCAtMjk5OCw3ICszMDEwLDcgQEAKICAgICAgICAgc21jdHJfc2V0X3BhZ2UoZGV2LCAoX191OCAqKXRwLT5yYW1fYWNjZXNzKTsKIAogICAgICAgICBpZigoc21jdHJfY2hlY2tzdW1fZmlybXdhcmUoZGV2KSkKLSAgICAgICAgICAgICAgICB8fCAoKih0cC0+cHRyX3Vjb2RlICsgVUNPREVfVkVSU0lPTl9PRkZTRVQpCisgICAgICAgICAgICAgICAgfHwgKCooZnctPmRhdGEgKyBVQ09ERV9WRVJTSU9OX09GRlNFVCkKICAgICAgICAgICAgICAgICA+IHRwLT5taWNyb2NvZGVfdmVyc2lvbikpCiAgICAgICAgIHsKICAgICAgICAgICAgICAgICBzbWN0cl9lbmFibGVfYWRhcHRlcl9jdHJsX3N0b3JlKGRldik7CkBAIC0zMDA3LDkgKzMwMTksOSBAQAogICAgICAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IENTX1JBTV9TSVpFOyBpICs9IDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAqKChfX3UxNiAqKSh0cC0+cmFtX2FjY2VzcyArIGkpKSA9IDA7CiAKLSAgICAgICAgICAgICAgICBzbWN0cl9kZWNvZGVfZmlybXdhcmUoZGV2KTsKKyAgICAgICAgICAgICAgICBzbWN0cl9kZWNvZGVfZmlybXdhcmUoZGV2LCBmdyk7CiAKLSAgICAgICAgICAgICAgICB0cC0+bWljcm9jb2RlX3ZlcnNpb24gPSAqKHRwLT5wdHJfdWNvZGUgKyBVQ09ERV9WRVJTSU9OX09GRlNFVCk7ICAgICAgICAgICAgICAgICooKF9fdTE2ICopKHRwLT5yYW1fYWNjZXNzICsgQ1NfUkFNX1ZFUlNJT05fT0ZGU0VUKSkKKyAgICAgICAgICAgICAgICB0cC0+bWljcm9jb2RlX3ZlcnNpb24gPSAqKGZ3LT5kYXRhICsgVUNPREVfVkVSU0lPTl9PRkZTRVQpOyAgICAgICAgICAgICAgICAqKChfX3UxNiAqKSh0cC0+cmFtX2FjY2VzcyArIENTX1JBTV9WRVJTSU9OX09GRlNFVCkpCiAgICAgICAgICAgICAgICAgICAgICAgICA9ICh0cC0+bWljcm9jb2RlX3ZlcnNpb24gPDwgOCk7CiAgICAgICAgICAgICAgICAgKigoX191MTYgKikodHAtPnJhbV9hY2Nlc3MgKyBDU19SQU1fQ0hFQ0tTVU1fT0ZGU0VUKSkKICAgICAgICAgICAgICAgICAgICAgICAgID0gfih0cC0+bWljcm9jb2RlX3ZlcnNpb24gPDwgOCkgKyAxOwpAQCAtMzAyMyw3ICszMDM1LDggQEAKICAgICAgICAgICAgICAgICBlcnIgPSBVQ09ERV9QUkVTRU5UOwogCiAgICAgICAgIHNtY3RyX2Rpc2FibGVfMTZiaXQoZGV2KTsKLQorIG91dDoKKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKICAgICAgICAgcmV0dXJuIChlcnIpOwogfQogCkBAIC01NjUxLDYgKzU2NjQsNyBAQAogc3RhdGljIGludCBpcnFbU01DVFJfTUFYX0FEQVBURVJTXTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0ZJUk1XQVJFKCJ0cl9zbWN0ci5iaW4iKTsKIAogbW9kdWxlX3BhcmFtX2FycmF5KGlvLCBpbnQsIE5VTEwsIDApOwogbW9kdWxlX3BhcmFtX2FycmF5KGlycSwgaW50LCBOVUxMLCAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy9zbWN0ci5oIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmgKaW5kZXggODhkZmEyZS4uNTJkZjdkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmgKKysrIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmgKQEAgLTEwNDIsOCArMTA0Miw2IEBACiAgICAgICAgIF9fdTE2ICAgICAgICAgICAgZnVuY3Rpb25hbF9hZGRyZXNzWzJdOwogICAgICAgICBfX3UxNiAgICAgICAgICAgIGJpdHdpc2VfZ3JvdXBfYWRkcmVzc1syXTsKIAotCWNvbnN0IF9fdTggICAgICAgKnB0cl91Y29kZTsKLQogCV9fdTgJCWNsZWFudXA7CiAKIAlzdHJ1Y3Qgc2tfYnVmZl9oZWFkIFNlbmRTa2JRdWV1ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy9zbWN0cl9maXJtd2FyZS5oIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyX2Zpcm13YXJlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5MmU1MGRkZi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL25ldC90b2tlbnJpbmcvc21jdHJfZmlybXdhcmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDk3OCArMCwwIEBACi0vKgotICogVGhlIGZpcm13YXJlIHRoaXMgZHJpdmVyIGRvd25sb2FkcyBpbnRvIHRoZSB0b2tlbnJpbmcgY2FyZCBpcyBhCi0gKiBzZXBhcmF0ZSBwcm9ncmFtIGFuZCBpcyBub3QgR1BMJ2Qgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoZSBMaW51eAotICogc2lkZSBkcml2ZXIgYW5kIHRoZSByb3V0aW5lIHRoYXQgbG9hZHMgdGhpcyBkYXRhIGludG8gdGhlIGNhcmQgYXJlLgotICoKLSAqIFRoaXMgZmlybXdhcmUgaXMgbGljZW5zZWQgdG8geW91IHN0cmljdGx5IGZvciB1c2UgaW4gY29uanVuY3Rpb24KLSAqIHdpdGggdGhlIHVzZSBvZiBTTUMgVG9rZW5SaW5nIGFkYXB0ZXJzLiBUaGVyZSBpcyBubyB3YXJhbnR5Ci0gKiBleHByZXNzZWQgb3IgaW1wbGllZCBhYm91dCBpdHMgZml0bmVzcyBmb3IgYW55IHB1cnBvc2UuCi0gKi8KLQotLyogc21jdHJfZmlybXdhcmUuaDogU01DIFRva2VuUmluZyBkcml2ZXIgZmlybXdhcmUgZHVtcCBmb3IgTGludXguCi0gKgotICogTm90ZXM6Ci0gKiAgLSBUaGlzIGlzIGFuIDhLIGJpbmFyeSBpbWFnZS4gKE1DVC5CSU4gdjYuM0MxIDAzLzAxLzk1KQotICoKLSAqIEF1dGhvcnM6Ci0gKiAgLSBKYXkgU2NodWxpc3QgPGpzY2hsc3RAc2FtYmEub3JnPgotICovCi0KLQotI2lmIGRlZmluZWQoQ09ORklHX1NNQ1RSKSB8fCBkZWZpbmVkKENPTkZJR19TTUNUUl9NT0RVTEUpCi0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHNtY3RyX2NvZGVbXSA9IHsKLQkweDBCQywgMHgwMUQsIDB4MDEyLCAweDAzQiwgMHgwNjMsIDB4MEI0LCAweDBFOSwgMHgwMDAsCi0JMHgwMDAsIDB4MDFGLCAweDAwMCwgMHgwMDEsIDB4MDAxLCAweDAwMCwgMHgwMDIsIDB4MDA1LAotCTB4MDAxLCAweDAwMCwgMHgwMDYsIDB4MDAzLCAweDAwMSwgMHgwMDAsIDB4MDA0LCAweDAwOSwKLQkweDAwMSwgMHgwMDAsIDB4MDBBLCAweDAwNywgMHgwMDEsIDB4MDAwLCAweDAwOCwgMHgwMEIsCi0JMHgwMDEsIDB4MDAwLCAweDAwQywgMHgwMDAsIDB4MDAwLCAweDAwMCwgMHgwMDAsIDB4MDBGLAotCTB4MDAxLCAweDAwMCwgMHgwMTAsIDB4MDBELCAweDAwMSwgMHgwMDAsIDB4MDBFLCAweDAxMywKLQkweDAwMSwgMHgwMDAsIDB4MDE0LCAweDAxMSwgMHgwMDEsIDB4MDAwLCAweDAxMiwgMHgwMDAsCi0JMHgwMDAsIDB4MDA1LCAweDAwMCwgMHgwMTUsIDB4MDAxLCAweDAwMCwgMHgwMTYsIDB4MDE5LAotCTB4MDAxLCAweDAwMCwgMHgwMUEsIDB4MDE3LCAweDAwMSwgMHgwMDAsIDB4MDE4LCAweDAwMCwKLQkweDAwMCwgMHgwMEUsIDB4MDAwLCAweDAwMCwgMHgwMDAsIDB4MDAxLCAweDAwMCwgMHgwMDAsCi0JMHgwMDAsIDB4MDA0LCAweDAwMCwgMHgwMUIsIDB4MDAxLCAweDAwMCwgMHgwMUMsIDB4MDAwLAotCTB4MDAwLCAweDAwNywgMHgwMDAsIDB4MDAwLCAweDAwMCwgMHgwMEYsIDB4MDAwLCAweDAwMCwKLQkweDAwMCwgMHgwMEIsIDB4MDAwLCAweDAxRCwgMHgwMDEsIDB4MDAwLCAweDAxRSwgMHgwMDAsCi0JMHgwMDAsIDB4MDA4LCAweDAwMCwgMHgwMDAsIDB4MDAwLCAweDAwMiwgMHgwMDAsIDB4MDAwLAotCTB4MDAwLCAweDAwQywgMHgwMDAsIDB4MDAwLCAweDAwMCwgMHgwMDYsIDB4MDAwLCAweDAwMCwKLQkweDAwMCwgMHgwMEQsIDB4MDAwLCAweDAwMCwgMHgwMDAsIDB4MDAzLCAweDAwMCwgMHgwMDAsCi0JMHgwMDAsIDB4MDBBLCAweDAwMCwgMHgwMDAsIDB4MDAwLCAweDAwOSwgMHgwMDAsIDB4MDA0LAotCTB4MDc4LCAweDBDNiwgMHgwQkMsIDB4MDAxLCAweDA5NCwgMHgwMDQsIDB4MDkzLCAweDA4MCwKLQkweDBDOCwgMHgwNDAsIDB4MDYyLCAweDBFOSwgMHgwREEsIDB4MDFDLCAweDAyQywgMHgwMTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU4LAotCTB4MDBCLCAweDBFOSwgMHgwRTUsIDB4MEQ1LCAweDA5NSwgMHgwQzEsIDB4MDlELCAweDA3NywKLQkweDBDRSwgMHgwQkIsIDB4MEEwLCAweDA2RSwgMHgwMUMsIDB4MDA1LCAweDBGNiwgMHgwNzcsCi0JMHgwQzYsIDB4MDAyLCAweDBGQSwgMHgwOTYsIDB4MDcwLCAweDBFOCwgMHgwMUQsIDB4MEMwLAotCTB4MDE3LCAweDAwRSwgMHgwMDIsIDB4MEZBLCAweDA1OCwgMHgwN0QsIDB4MEMwLCAweDA1RiwKLQkweDA3MiwgMHgwQ0UsIDB4MEVDLCAweDBBNCwgMHgwQzMsIDB4MDg0LCAweDA5MCwgMHgwN0EsCi0JMHgwMzAsIDB4MENELCAweDA4RCwgMHgwNzksIDB4MDE5LCAweDBFNywgMHgwNkMsIDB4MDI0LAotCTB4MDI3LCAweDA5QywgMHgwMDgsIDB4MDM5LCAweDAwNywgMHgwMzgsIDB4MEE4LCAweDA0QSwKLQkweDA0QywgMHgwRUEsIDB4MDRELCAweDA5OCwgMHgwOUIsIDB4MDI0LCAweDA0QywgMHgwQzAsCi0JMHgwMjYsIDB4MEQzLCAweDBFNywgMHgwNTQsIDB4MDVBLCAweDA0RCwgMHgwRjIsIDB4MDRDLAotCTB4MDBDLCAweDAxMywgMHgwMjMsIDB4MDQ5LCAweDA5MCwgMHgwMzIsIDB4MDZFLCAweDBBNCwKLQkweDBERiwgMHgwOTMsIDB4MDcxLCAweDAxMywgMHgwNzcsIDB4MDI2LCAweDBFMSwgMHgwMjYsCi0JMHgwRjgsIDB4MDI2LCAweDAwQywgMHgwNEMsIDB4MDEyLCAweDAyNiwgMHgwMDgsIDB4MDA5LAotCTB4MDgyLCAweDA4MiwgMHgwNjAsIDB4MEE5LCAweDAzMCwgMHgwNzksIDB4MDM2LCAweDBCMCwKLQkweDBCMiwgMHgwQTgsIDB4MEE3LCAweDA3MiwgMHgwNjQsIDB4MDhGLCAweDA5QiwgMHgwMzMsCi0JMHgwMzMsIDB4MEY5LCAweDBCOCwgMHgwMzksIDB4MEQ1LCAweDAxMSwgMHgwNzMsIDB4MEFBLAotCTB4MDc1LCAweDAyNiwgMHgwNUQsIDB4MDI2LCAweDA1MSwgMHgwOTMsIDB4MDJBLCAweDA0OSwKLQkweDA5NCwgMHgwQzksIDB4MDk1LCAweDA4OSwgMHgwQkMsIDB4MDRELCAweDBDOCwgMHgwOUIsCi0JMHgwODAsIDB4MDlCLCAweDBBMCwgMHgwOTksIDB4MDA2LCAweDA0QywgMHgwODYsIDB4MDI2LAotCTB4MDU4LCAweDA5QiwgMHgwQTQsIDB4MDlCLCAweDA5OSwgMHgwMzcsIDB4MDYyLCAweDA2QywKLQkweDA2NywgMHgwOUIsIDB4MDMzLCAweDAzMCwgMHgwQkYsIDB4MDM2LCAweDA2NiwgMHgwNjEsCi0JMHgwQkYsIDB4MDM2LCAweDBFQywgMHgwQzUsIDB4MEJELCAweDA2NiwgMHgwODIsIDB4MDVBLAotCTB4MDUwLCAweDAzMSwgMHgwRDUsIDB4MDlELCAweDA5OCwgMHgwMTgsIDB4MDI5LCAweDAzQywKLQkweDA5OCwgMHgwODYsIDB4MDRDLCAweDAxNywgMHgwMjYsIDB4MDNFLCAweDAyQywgMHgwQjgsCi0JMHgwNjksIDB4MDNCLCAweDA0OSwgMHgwMkUsIDB4MEI0LCAweDAwOCwgMHgwNDMsIDB4MDFBLAotCTB4MEE0LCAweDBGOSwgMHgwQjMsIDB4MDUxLCAweDBGMSwgMHgwMTAsIDB4MEYzLCAweDA0MywKLQkweDBDRCwgMHgwMDgsIDB4MDZGLCAweDA2MywgMHgwNzksIDB4MEIzLCAweDAzMywgMHgwMEUsCi0JMHgwMTMsIDB4MDk4LCAweDA0OSwgMHgwOTgsIDB4MDA0LCAweDBEQSwgMHgwN0MsIDB4MEUwLAotCTB4MDUyLCAweDA3OSwgMHgwMzEsIDB4MDBDLCAweDA5OCwgMHgwMkUsIDB4MDRELCAweDBBQywKLQkweDAyQywgMHgwODQsIDB4MDE0LCAweDBFRSwgMHgwNEMsIDB4MEZFLCAweDA2NywgMHgwNUUsCi0JMHgwRTQsIDB4MDlBLCAweDA3NSwgMHgwMjksIDB4MEQ3LCAweDBBOSwgMHgwMzUsIDB4MDNBLAotCTB4MDk0LCAweDA1QiwgMHgwRDUsIDB4MDlCLCAweDA1OCwgMHgwQjQsIDB4MEFGLCAweDA3NSwKLQkweDA2NiwgMHgwQUYsIDB4MDE0LCAweDBBOSwgMHgwRUYsIDB4MDQwLCAweDA5NSwgMHgwMjUsCi0JMHgwMDgsIDB4MEI5LCAweDBBRCwgMHgwNDIsIDB4MEZDLCAweDBEOCwgMHgwRDksIDB4MDhDLAotCTB4MDMzLCAweDAwRSwgMHgwMTMsIDB4MDk4LCAweDA2NiwgMHgwMUUsIDB4MDQ1LCAweDBBQywKLQkweDBCMCwgMHgwMEMsIDB4MDQyLCAweDBEMywgMHgwQ0MsIDB4MEE2LCAweDAxMiwgMHgwNjIsCi0JMHgwREUsIDB4MEI0LCAweDBCMSwgMHgwODAsIDB4MDQ5LCAweDA3RCwgMHgwQTIsIDB4MERFLAotCTB4MEI0LCAweDAxOCwgMHgwQzAsIDB4MDI0LCAweDA4NCwgMHgwRTYsIDB4MDU0LCAweDBGNSwKLQkweDA4MywgMHgwNDYsIDB4MDAxLCAweDA2OCwgMHgwMUEsIDB4MDYzLCAweDAwQywgMHgwQzYsCi0JMHgwMTIsIDB4MDY0LCAweDBGQSwgMHgwNEMsIDB4MDM1LCAweDAxQywgMHgwMkMsIDB4MDBFLAotCTB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwKLQkweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFELCAweDBENywgMHgwMDIsCi0JMHgwNzAsIDB4MEUwLCAweDA0QywgMHgwRjMsIDB4MEExLCAweDBDMSwgMHgwRDUsIDB4MEMwLAotCTB4MDNDLCAweDBCOSwgMHgwNjksIDB4MDM5LCAweDA2MCwgMHgwNEUsIDB4MDU4LCAweDA3NywKLQkweDAwMiwgMHgwNjcsIDB4MDkzLCAweDAzQywgMHgwOTksIDB4MEU0LCAweDBDRiwgMHgwMzgsCi0JMHgwMUMsIDB4MDk3LCAweDAyRSwgMHgwNDAsIDB4MDFCLCAweDA5MCwgMHgwMzEsIDB4MDQ2LAotCTB4MEEzLCAweDA1RSwgMHgwMEUsIDB4MDg4LCAweDAzNCwgMHgwNkEsIDB4MDM1LCAweDBFMCwKLQkweDBFOCwgMHgwQUEsIDB4MDM1LCAweDAxQSwgMHgwQTksIDB4MEY1LCAweDAxNSwgMHgwNDYsCi0JMHgwQTMsIDB4MEVBLCAweDA3RCwgMHgwNEEsIDB4MEEzLCAweDA1MSwgMHgwQUEsIDB4MDlGLAotCTB4MDcwLCAweDA1NCwgMHgwQTYsIDB4MDU3LCAweDAyRSwgMHgwQjQsIDB4MENELCAweDBDOCwKLQkweDBBMywgMHgwMEMsIDB4MEMxLCAweDBEQSwgMHgwQzYsIDB4MEUxLCAweDBDQiwgMHgwN0EsCi0JMHgwRDQsIDB4MDFDLCAweDA2OCwgMHgwRkYsIDB4MENGLCAweDA1NSwgMHgwQTgsIDB4MEMwLAotCTB4MDJELCAweDA4NSwgMHgwMTEsIDB4MDE3LCAweDA0NCwgMHgwMkEsIDB4MDMwLCAweDAwQiwKLQkweDA0QSwgMHgwODgsIDB4MEMyLCAweDA0RCwgMHgwQjUsIDB4MDIwLCAweDBENSwgMHgwMjYsCi0JMHgwMDEsIDB4MDY5LCAweDA1MSwgMHgwNjksIDB4MDUyLCAweDAxOSwgMHgwNTIsIDB4MDYwLAotCTB4MDE2LCAweDA5NSwgMHgwMTYsIDB4MDgyLCAweDA5NiwgMHgwNTQsIDB4MDk4LCAweDAwNSwKLQkweDBBNSwgMHgwNDUsIDB4MEYzLCAweDBERCwgMHgwNkEsIDB4MEY5LCAweDAyOCwgMHgwMTgsCi0JMHgwRUYsIDB4MDAwLCAweDAzMCwgMHgwMzAsIDB4MDUxLCAweDA0RSwgMHgwNDQsIDB4MDVELAotCTB4MDEyLCAweDBEMSwgMHgwNDMsIDB4MEU2LCAweDAxMiwgMHgwNkYsIDB4MDlFLCAweDBCQSwKLQkweDBDQywgMHgwREYsIDB4MDI1LCAweDAwMywgMHgwMUQsIDB4MEUwLCAweDAwNiwgMHgwMDYsCi0JMHgwMEEsIDB4MDMwLCAweDBDQywgMHgwQTksIDB4MEVCLCAweDAyRCwgMHgwMDAsIDB4MDg2LAotCTB4MEE2LCAweDAxMiwgMHgwNjUsIDB4MDRGLCAweDA1NiwgMHgwRDYsIDB4MDY1LCAweDA0OSwKLQkweDA1RiwgMHgwM0QsIDB4MEU4LCAweDAzNywgMHgwQzksIDB4MDQwLCAweDBDNywgMHgwNzgsCi0JMHgwMDEsIDB4MDgxLCAweDA4MiwgMHgwOEMsIDB4MDMzLCAweDAxOCwgMHgwNDksIDB4MDgwLAotCTB4MEFFLCAweDA0MCwgMHgwQzUsIDB4MDE4LCAweDAwNSwgMHgwOUMsIDB4MDZELCAweDAxOCwKLQkweDA2NiwgMHgwMEUsIDB4MEYzLCAweDBBMCwgMHgwQzYsIDB4MDEyLCAweDA2MiwgMHgwREUsCi0JMHgwRjUsIDB4MDA0LCAweDBCNCwgMHgwQUMsIDB4MDZCLCAweDBDNiwgMHgwMTksIDB4MDkxLAotCTB4MDczLCAweDAwNSwgMHgwNDgsIDB4MDJFLCAweDA3MiwgMHgwOTQsIDB4MDgwLCAweDA3MywKLQkweDBBMSwgMHgwQzgsIDB4MDQ3LCAweDAzNiwgMHgwNjYsIDB4MDY0LCAweDAyRiwgMHgwMzYsCi0JMHgwNjYsIDB4MDY0LCAweDAwNywgMHgwOTksIDB4MDAyLCAweDA5MSwgMHgwOEUsIDB4MDcyLAotCTB4MEQxLCAweDAwRiwgMHgwOUQsIDB4MDA2LCAweDAzMSwgMHgwNzMsIDB4MEEwLCAweDBDMywKLQkweDA1MSwgMHgwNkEsIDB4MDFBLCAweDAyMCwgMHgwQkYsIDB4MDNBLCAweDAwQywgMHgwMkMsCi0JMHgwNzMsIDB4MDg3LCAweDA0MywgMHgwNUUsIDB4MDYwLCAweDAwMiwgMHgwMjMsIDB4MEZDLAotCTB4MEUwLCAweDBENiwgMHgwMzUsIDB4MEVGLCAweDA5RSwgMHgwRjUsIDB4MEVGLCAweDA5MiwKLQkweDA4MSwgMHgwOEUsIDB4MEYwLCAweDAwMywgMHgwMDMsIDB4MDA1LCAweDAxOCwgMHgwNjYsCi0JMHgwNDUsIDB4MENDLCAweDAwQiwgMHgwNDgsIDB4MDJFLCAweDA3MCwgMHgwMEEsIDB4MDQwLAotCTB4MDM5LCAweDBEMCwgMHgwRTQsIDB4MDIzLCAweDA5QiwgMHgwMzMsIDB4MDMyLCAweDAxNywKLQkweDA5QiwgMHgwMzMsIDB4MDMyLCAweDAwMywgMHgwQ0MsIDB4MDg1LCAweDA0OCwgMHgwQzcsCi0JMHgwMzgsIDB4MDE0LCAweDBBNSwgMHgwQ0UsIDB4MDI5LCAweDA3RSwgMHgwRDIsIDB4MDgwLAotCTB4MEExLCAweDBBOCwgMHgwQjQsIDB4MDQ4LCAweDA4OCwgMHgwMkYsIDB4MENFLCAweDA4MywKLQkweDAwQiwgMHgwMUMsIDB4MEUxLCAweDBEMCwgMHgwRDcsIDB4MDk4LCAweDAwNCwgMHgwODgsCi0JMHgwODcsIDB4MENFLCAweDA5NiwgMHgwMzEsIDB4MDczLCAweDBBNSwgMHgwOEYsIDB4MEYzLAotCTB4MDgzLCAweDA1OCwgMHgwRDcsIDB4MEJFLCAweDA3QiwgMHgwODIsIDB4MEFGLCAweDA5MiwKLQkweDA4MSwgMHgwOEUsIDB4MEYwLCAweDAwMywgMHgwMDMsIDB4MDA1LCAweDAxOCwgMHgwNjYsCi0JMHgwNDUsIDB4MENDLCAweDAxNSwgMHgwMjAsIDB4MEI5LCAweDBDOCwgMHgwMjksIDB4MDAwLAotCTB4MEU3LCAweDA0MywgMHgwOTAsIDB4MDhFLCAweDA2QywgMHgwQ0MsIDB4MEM4LCAweDA1RSwKLQkweDA2QywgMHgwQ0MsIDB4MEM4LCAweDAwRiwgMHgwMzIsIDB4MDA1LCAweDAyMywgMHgwMUMsCi0JMHgwRTQsIDB4MDUwLCAweDBENCwgMHgwNUEsIDB4MDE3LCAweDA4OCwgMHgwMkYsIDB4MENFLAotCTB4MDgzLCAweDAxMCwgMHgwRjksIDB4MEQwLCAweDAyMywgMHgwMTcsIDB4MDNBLCAweDAwNCwKLQkweDAzNSwgMHgwRTYsIDB4MDAwLCAweDAyMiwgMHgwMTYsIDB4MDM5LCAweDBDMywgMHgwQTMsCi0JMHgwRkMsIDB4MEUwLCAweDBENiwgMHgwMzUsIDB4MEUwLCAweDBCRiwgMHgwRjQsIDB4MDE4LAotCTB4MEYyLCAweDAyRCwgMHgwNEQsIDB4MDQzLCAweDA1MSwgMHgwNkUsIDB4MDVBLCAweDAyMiwKLQkweDAxRiwgMHgwMzAsIDB4MEQ0LCAweDAxNywgMHgwRTcsIDB4MDQxLCAweDA5MSwgMHgwNzMsCi0JMHgwMDUsIDB4MDQ4LCAweDAyRSwgMHgwNzcsIDB4MDY5LCAweDAwMCwgMHgwRTcsIDB4MDQzLAotCTB4MDkwLCAweDA4RSwgMHgwNkMsIDB4MENDLCAweDBDOCwgMHgwNUUsIDB4MDZDLCAweDBDQywKLQkweDBDOCwgMHgwMEYsIDB4MDMyLCAweDAwNSwgMHgwMjMsIDB4MDFDLCAweDBFRiwgMHgwNEMsCi0JMHgwNEUsIDB4MDA2LCAweDAwNCwgMHgwQzksIDB4MDlFLCAweDAwQiwgMHgwRkYsIDB4MDQxLAotCTB4MDhGLCAweDAyMiwgMHgwRDQsIDB4MEQ0LCAweDAzNSwgMHgwMTYsIDB4MEU1LCAweDBBMiwKLQkweDAyMSwgMHgwRjMsIDB4MDVBLCAweDA4MiwgMHgwRkMsIDB4MEU4LCAweDAzMiwgMHgwMkUsCi0JMHgwNjAsIDB4MEE5LCAweDAwNSwgMHgwQ0UsIDB4MDEzLCAweDA0OCwgMHgwMDcsIDB4MDNBLAotCTB4MDFDLCAweDA4NCwgMHgwNzMsIDB4MDY2LCAweDA2NiwgMHgwNDIsIDB4MEYzLCAweDA2NiwKLQkweDA2NiwgMHgwNDAsIDB4MDc5LCAweDA5MCwgMHgwMjksIDB4MDE4LCAweDBFNywgMHgwMEEsCi0JMHgwOTgsIDB4MDlDLCAweDAwQSwgMHgwOUUsIDB4MEI1LCAweDAxMiwgMHgwNUMsIDB4MDdDLAotCTB4MEMzLCAweDAzMSwgMHgwOEIsIDB4MDk4LCAweDAyQSwgMHgwN0MsIDB4MEQzLCAweDBFRCwKLQkweDAzOCwgMHgwRTksIDB4MEQzLCAweDA0RSwgMHgwNzQsIDB4MEVELCAweDA0OSwgMHgwOUUsCi0JMHgwMEIsIDB4MEZGLCAweDA0MSwgMHgwOEYsIDB4MDIyLCAweDBENCwgMHgwRDQsIDB4MDM1LAotCTB4MDE2LCAweDBFNSwgMHgwQTIsIDB4MDJELCAweDBFQiwgMHgwNDUsIDB4MDMzLCAweDA4RiwKLQkweDBGQywgMHgwRjcsIDB4MEEwLCAweDA1RiwgMHgwMjUsIDB4MDAzLCAweDAxRCwgMHgwRTQsCi0JMHgwMEUsIDB4MDA2LCAweDAwQSwgMHgwMzAsIDB4MENDLCAweDAwQywgMHgwRjMsIDB4MEVCLAotCTB4MDQwLCAweDBERSwgMHgwNjEsIDB4MEE4LCAweDA3MCwgMHgwOTIsIDB4MDBBLCAweDAwMCwKLQkweDBFMSwgMHgwMjQsIDB4MDFFLCAweDAwMCwgMHgwRTEsIDB4MDI0LCAweDAxRSwgMHgwMDAsCi0JMHgwRTEsIDB4MDI0LCAweDAxRSwgMHgwMDAsIDB4MEUxLCAweDAyNCwgMHgwMUUsIDB4MDAwLAotCTB4MEUxLCAweDAyNCwgMHgwMUUsIDB4MDAxLCAweDAwRiwgMHgwOTgsIDB4MDJBLCAweDAwQiwKLQkweDBGMywgMHgwQTAsIDB4MEM4LCAweDBCOSwgMHgwQTIsIDB4MEE0LCAweDAxNywgMHgwM0EsCi0JMHgwNjksIDB4MDAwLCAweDBFNywgMHgwNDMsIDB4MDkwLCAweDA4RSwgMHgwNzUsIDB4MDQ4LAotCTB4MDVFLCAweDA3MCwgMHgwNjksIDB4MDAxLCAweDBFNiwgMHgwMDAsIDB4MDUyLCAweDAzMSwKLQkweDBDQywgMHgwMTgsIDB4MDE0LCAweDBBNSwgMHgwQ0MsIDB4MDA5LCAweDA4MiwgMHgwOTQsCi0JMHgwNzMsIDB4MDBDLCAweDBBMCwgMHgwOTEsIDB4MEY1LCAweDAyNSwgMHgwQ0MsIDB4MDA3LAotCTB4MDA2LCAweDA4NCwgMHgwODQsIDB4MDlGLCAweDAzMCwgMHgwQTIsIDB4MEE0LCAweDA3RCwKLQkweDA1MCwgMHgwNzUsIDB4MEE2LCAweDA2NSwgMHgwMDEsIDB4MDRBLCAweDA4RSwgMHgwQjQsCi0JMHgwQ0MsIDB4MEM0LCAweDAzNSwgMHgwNTQsIDB4MDc1LCAweDA2NiwgMHgwQTQsIDB4MDk3LAotCTB4MDdBLCAweDA4OSwgMHgwNTAsIDB4MDUzLCAweDAxMywgMHgwODAsIDB4MDE5LCAweDBFMywKLQkweDA0OSwgMHgwNUMsIDB4MDZELCAweDBDRSwgMHgwQTksIDB4MDQwLCAweDAzNSwgMHgwMDYsCi0JMHgwNzgsIDB4MEQyLCAweDA1NywgMHgwMDYsIDB4MEYxLCAweDBCMywgMHgwMkEsIDB4MDhELAotCTB4MDk3LCAweDAyMywgMHgwNjIsIDB4MDkyLCAweDA1RCwgMHgwNjksIDB4MDk5LCAweDAxQywKLQkweDA2QSwgMHgwMzYsIDB4MEU2LCAweDBDRCwgMHgwNDYsIDB4MDEyLCAweDA2RiwgMHgwOUUsCi0JMHgwRTEsIDB4MEFCLCAweDBFNCwgMHgwQTMsIDB4MDBDLCAweDBDMCwgMHgwREUsIDB4MEFDLAotCTB4MEQ0LCAweDAwRCwgMHgwMjgsIDB4MDFCLCAweDBEMCwgMHgwMTIsIDB4MEE1LCAweDAwMCwKLQkweDBGOCwgMHgwNEIsIDB4MEFELCAweDAzMywgMHgwMjgsIDB4MDA2LCAweDBBMCwgMHgwREUsCi0JMHgwMTQsIDB4MDk3LCAweDAzQSwgMHgwODksIDB4MDVELCAweDBDMCwgMHgwMEQsIDB4MEUzLAotCTB4MDA2LCAweDA5MCwgMHgwOTIsIDB4MDVELCAweDA2OSwgMHgwOTgsIDB4MDY2LCAweDBCOSwKLQkweDAxOSwgMHgwOTUsIDB4MEU0LCAweDBBOCwgMHgwQ0YsIDB4MDlELCAweDAzMywgMHgwMTgsCi0JMHgwNDksIDB4MEJFLCAweDA3QiwgMHgwODYsIDB4MEFGLCAweDA5MiwgMHgwOEMsIDB4MDMzLAotCTB4MDI0LCAweDAxNCwgMHgwMEMsIDB4MEY0LCAweDA4MywgMHgwMjQsIDB4MDIxLCAweDBDMiwKLQkweDA3MCwgMHgwQkYsIDB4MEY0LCAweDAxOCwgMHgwRjIsIDB4MDJELCAweDA0RCwgMHgwNDMsCi0JMHgwNTEsIDB4MDZFLCAweDA1QSwgMHgwMjIsIDB4MDFGLCAweDAzMiwgMHgwQTgsIDB4MDJGLAotCTB4MENFLCAweDA4MywgMHgwMjIsIDB4MEU2LCAweDAwNSwgMHgwQTQsIDB4MDE3LCAweDAzQSwKLQkweDA2OSwgMHgwMDAsIDB4MEU3LCAweDA0MywgMHgwOTAsIDB4MDhFLCAweDA3NSwgMHgwNDgsCi0JMHgwNUUsIDB4MDcwLCAweDA2OSwgMHgwMDEsIDB4MEU2LCAweDA0MiwgMHgwQTQsIDB4MDYzLAotCTB4MDk4LCAweDAwMiwgMHgwMjksIDB4MDRCLCAweDA5QSwgMHgwMjksIDB4MDc4LCAweDBFOSwKLQkweDA0MCwgMHgwNTMsIDB4MDEzLCAweDA4MSwgMHgwODEsIDB4MDMyLCAweDA2NywgMHgwODIsCi0JMHgwRkYsIDB4MEQwLCAweDA2MywgMHgwQzgsIDB4MEI1LCAweDAzNSwgMHgwMEQsIDB4MDQ1LAotCTB4MEFFLCAweDA1MCwgMHgwMDgsIDB4MDdDLCAweDBFMCwgMHgwRDAsIDB4MDVGLCAweDA5RCwKLQkweDAwNiwgMHgwNDUsIDB4MENDLCAweDAwMSwgMHgwQTQsIDB4MDE3LCAweDAzQSwgMHgwNjksCi0JMHgwMDAsIDB4MEU3LCAweDA0MywgMHgwOTAsIDB4MDhFLCAweDA3NSwgMHgwNDgsIDB4MDVFLAotCTB4MDcwLCAweDA2OSwgMHgwMDEsIDB4MEU2LCAweDA1OSwgMHgwQTQsIDB4MDYzLCAweDA5OCwKLQkweDAxQywgMHgwNTIsIDB4MDk3LCAweDAzQiwgMHgwMzAsIDB4MDUyLCAweDA4RSwgMHgwN0QsCi0JMHgwMkEsIDB4MDA5LCAweDAxRiwgMHgwNTEsIDB4MEVCLCAweDBBNCwgMHgwQTQsIDB4MDBBLAotCTB4MEI5LCAweDA5NCwgMHgwODcsIDB4MEFFLCAweDBDNSwgMHgwMzEsIDB4MDM4LCAweDAwMiwKLQkweDBGRiwgMHgwRDAsIDB4MDYzLCAweDBDOCwgMHgwQjUsIDB4MDM1LCAweDAwRCwgMHgwNDUsCi0JMHgwQUUsIDB4MDUwLCAweDAwOCwgMHgwN0MsIDB4MEVBLCAweDAyMCwgMHgwQkYsIDB4MDNBLAotCTB4MDBDLCAweDA4QiwgMHgwOUEsIDB4MDE2LCAweDA5MCwgMHgwNUMsIDB4MEU5LCAweDBBNCwKLQkweDAwMywgMHgwOUQsIDB4MDBFLCAweDA0MiwgMHgwMzksIDB4MEQ1LCAweDAyMSwgMHgwNzksCi0JMHgwOTUsIDB4MDQ4LCAweDAwRiwgMHgwMzAsIDB4MDBBLCAweDA5MSwgMHgwOEUsIDB4MDYwLAotCTB4MEVCLCAweDAyOSwgMHgwNzMsIDB4MDAwLCAweDAwOSwgMHgwNTQsIDB4MDA0LCAweDBDQSwKLQkweDA4MiwgMHgwNjUsIDB4MDUyLCAweDA2NSwgMHgwRTQsIDB4MENBLCAweDAyMiwgMHgwNjUsCi0JMHgwNzIsIDB4MDY1LCAweDAwOSwgMHgwMzIsIDB4MEUwLCAweDA5OSwgMHgwNzIsIDB4MDRDLAotCTB4MEM0LCAweDBFMCwgMHgwMEIsIDB4MEZGLCAweDA0MSwgMHgwOEYsIDB4MDIyLCAweDBENCwKLQkweDBENCwgMHgwMzUsIDB4MDE2LCAweDBCOSwgMHgwNDAsIDB4MDIxLCAweDBGMywgMHgwOEEsCi0JMHgwODIsIDB4MEZDLCAweDBFOCwgMHgwMzIsIDB4MDJFLCAweDA2MCwgMHgwQTksIDB4MDA1LAotCTB4MENFLCAweDA5QSwgMHgwNDAsIDB4MDM5LCAweDBEMCwgMHgwRTQsIDB4MDIzLCAweDA5RCwKLQkweDA1MiwgMHgwMTcsIDB4MDk5LCAweDA1NCwgMHgwNjEsIDB4MDk5LCAweDAwMSwgMHgwRTYsCi0JMHgwNDAsIDB4MEE0LCAweDA2MywgMHgwOTgsIDB4MDA0LCAweDBCMSwgMHgwODQsIDB4MDk4LAotCTB4MDE4LCAweDBFRiwgMHgwMkQsIDB4MDAzLCAweDAwNSwgMHgwMzEsIDB4MDM4LCAweDAwMiwKLQkweDBGRiwgMHgwRDAsIDB4MDYzLCAweDBDOCwgMHgwQjUsIDB4MDM1LCAweDAwRCwgMHgwNDUsCi0JMHgwQjksIDB4MDY4LCAweDA4OCwgMHgwN0MsIDB4MEUwLCAweDA1MCwgMHgwNUYsIDB4MDlELAotCTB4MDA2LCAweDA0NSwgMHgwQ0MsIDB4MDgxLCAweDA0OCwgMHgwMkUsIDB4MDcxLCAweDAzNCwKLQkweDA4RiwgMHgwNDgsIDB4MDAxLCAweDA0OCwgMHgwMTUsIDB4MDIxLCAweDAwNSwgMHgwMjEsCi0JMHgwRTksIDB4MDBBLCAweDA1MiwgMHgwMDMsIDB4MENFLCAweDA1QSwgMHgwNDYsIDB4MDM5LAotCTB4MENGLCAweDA0NywgMHgwOEUsIDB4MDYwLCAweDBBQiwgMHgwMUEsIDB4MEYzLCAweDA1MywKLQkweDA0MywgMHgwRUIsIDB4MDM1LCAweDAyNCwgMHgwQjgsIDB4MDFCLCAweDAzMCwgMHgwMDcsCi0JMHgwMDksIDB4MDhBLCAweDA3NCwgMHgwMkYsIDB4MDdFLCAweDA0MSwgMHgwNzQsIDB4MDFFLAotCTB4MDFELCAweDAwRCwgMHgwODcsIDB4MDQ2LCAweDA0OSwgMHgwRDUsIDB4MDk1LCAweDBEMSwKLQkweDBENSwgMHgwRDUsIDB4MEJCLCAweDBBOSwgMHgwNEUsIDB4MDgyLCAweDA5RCwgMHgwMDUsCi0JMHgwM0EsIDB4MDBBLCAweDA3NCwgMHgwMTQsIDB4MEU4LCAweDAyOSwgMHgwRDAsIDB4MDQyLAotCTB4MDc0LCAweDA1QiwgMHgwQ0UsIDB4MDUwLCAweDBDNCwgMHgwMDcsIDB4MDQ1LCAweDBCQywKLQkweDBFMiwgMHgwMEMsIDB4MDQwLCAweDA3NCwgMHgwNUIsIDB4MENFLCAweDA4MywgMHgwMDQsCi0JMHgwRjksIDB4MDk1LCAweDA0RCwgMHgwMTMsIDB4MDYzLCAweDA1RSwgMHgwNkYsIDB4MDMxLAotCTB4MDNCLCAweDBBMCwgMHgwOEIsIDB4MEEyLCAweDBDNSwgMHgwMzksIDB4MDhELCAweDA3OCwKLQkweDAzQSwgMHgwMjIsIDB4MEEwLCAweDAwMCwgMHgwNkIsIDB4MEMxLCAweDBEMSwgMHgwNTQsCi0JMHgwNjAsIDB4MDE2LCAweDBEOSwgMHgwOTEsIDB4MEEyLCAweDBFNywgMHgwNDMsIDB4MDhDLAotCTB4MDI0LCAweDBEQywgMHgwMUMsIDB4MEUwLCAweDA1MSwgMHgwMTcsIDB4MDM5LCAweDA2QiwKLQkweDAzQiwgMHgwQ0MsIDB4MDRCLCAweDA0MiwgMHgwMkUsIDB4MDZCLCAweDA1MCwgMHgwQkYsCi0JMHgwMzYsIDB4MDM2LCAweDA2NSwgMHgwNEYsIDB4MDdBLCAweDAxOCwgMHgwNTUsIDB4MDI1LAotCTB4MDc4LCAweDA5OCwgMHgwMjMsIDB4MEU3LCAweDA1MCwgMHgwM0UsIDB4MEYzLCAweDA4MSwKLQkweDA0QywgMHgwMDIsIDB4MDZELCAweDAzRSwgMHgwNzEsIDB4MDUzLCAweDBBRiwgMHgwNzgsCi0JMHgwQTksIDB4MEQ0LCAweDBBNiwgMHgwMjksIDB4MEIxLCAweDBCQywgMHgwRDksIDB4MDk5LAotCTB4MEIyLCAweDA4RSwgMHgwNjIsIDB4MDhGLCAweDAyMiwgMHgwMkUsIDB4MDc1LCAweDAxNiwKLQkweDBCMCwgMHgwQjIsIDB4MEFCLCAweDAyMywgMHgwMjgsIDB4MDE2LCAweDA1NCwgMHgwNTIsCi0JMHgwMzEsIDB4MEJDLCAweDBEOSwgMHgwOTksIDB4MEIyLCAweDA4RSwgMHgwNjYsIDB4MDE5LAotCTB4MDAyLCAweDAyRSwgMHgwNzUsIDB4MDE2LCAweDA1MCwgMHgwMkMsIDB4MEE5LCAweDBDOCwKLQkweDBDNiwgMHgwRjUsIDB4MDIwLCAweDBEMywgMHgwRTQsIDB4MDdGLCAweDA0RiwgMHgwOUMsCi0JMHgwMEEsIDB4MEQ2LCAweDAxNiwgMHgwN0YsIDB4MDkwLCAweDBFRSwgMHgwNEMsIDB4MEVCLAotCTB4MENGLCAweDBFMiwgMHgwODgsIDB4MEJBLCAweDAyRiwgMHgwNDIsIDB4MDg2LCAweDBBRSwKLQkweDBCRCwgMHgwRTUsIDB4MEE3LCAweDA1MiwgMHgwOUYsIDB4MDkzLCAweDA2MywgMHgwNzksCi0JMHgwRUIsIDB4MDMzLCAweDAwOCwgMHgwRjksIDB4MDk0LCAweDA1MiwgMHgwNDcsIDB4MENELAotCTB4MDk5LCAweDAyNSwgMHgwNkYsIDB4MDNBLCAweDAwQywgMHgwMTMsIDB4MEU2LCAweDA1NSwKLQkweDAzNCwgMHgwNEMsIDB4MDVBLCAweDA0RCwgMHgwQjUsIDB4MDIzLCAweDA5NSwgMHgwQTUsCi0JMHgwNDgsIDB4MDExLCAweDA1QSwgMHgwMEEsIDB4MDQzLCAweDA5NSwgMHgwQUMsIDB4MDJDLAotCTB4MEJBLCAweDAyNCwgMHgwMDUsIDB4MDQ5LCAweDBCMSwgMHgwQkMsIDB4MENBLCAweDBBNywKLQkweDA3MiwgMHgwNkMsIDB4MDZCLCAweDBDNSwgMHgwQkQsIDB4MEU4LCAweDAzMSwgMHgwNjksCi0JMHgwNTIsIDB4MDVELCAweDAwNiwgMHgwMTIsIDB4MDY1LCAweDAzRSwgMHgwQjEsIDB4MDUwLAotCTB4MDRDLCAweDA3RCwgMHgwNEYsIDB4MEFDLCAweDAwQSwgMHgwMzAsIDB4MDBCLCAweDAzNiwKLQkweDA2NCwgMHgwMTEsIDB4MDczLCAweDA4QSwgMHgwODMsIDB4MDhFLCAweDA3NSwgMHgwMTIsCi0JMHgwOUYsIDB4MDdCLCAweDBEMiwgMHgwOTksIDB4MDU4LCAweDBFRSwgMHgwODIsIDB4MDJFLAotCTB4MDc3LCAweDBBMCwgMHgwRTMsIDB4MDlELCAweDA1RCwgMHgwNEYsIDB4MEJDLCAweDAyQSwKLQkweDA1MywgMHgwMjksIDB4MDUzLCAweDBERSwgMHgwOTMsIDB4MDI0LCAweDBCQSwgMHgwQjMsCi0JMHgwMzYsIDB4MEFBLCAweDA0QSwgMHgwQzYsIDB4MDc5LCAweDBENCwgMHgwQjksIDB4MERFLAotCTB4MDYyLCAweDA1QSwgMHgwMTEsIDB4MDczLCAweDA1MCwgMHgwNTAsIDB4MEJGLCAweDAzNywKLQkweDAzNiwgMHgwNkYsIDB4MDEzLCAweDAyMywgMHgwQkEsIDB4MDBDLCAweDAyNCwgMHgwQ0UsCi0JMHgwQkQsIDB4MEUyLCAweDBBNywgMHgwNTIsIDB4MEIyLCAweDA4RSwgMHgwNkIsIDB4MDYwLAotCTB4MDYyLCAweDAyRSwgMHgwNzUsIDB4MDEzLCAweDAzMCwgMHgwQUMsIDB4MEEwLCAweDA1OSwKLQkweDBDQSwgMHgwNjQsIDB4MDYzLCAweDA3OSwgMHgwQjMsIDB4MDMzLCAweDA2NSwgMHgwMUMsCi0JMHgwQ0MsIDB4MDMyLCAweDAwNCwgMHgwNUMsIDB4MEVBLCAweDAyQywgMHgwQTAsIDB4MDU5LAotCTB4MERGLCAweDAyMywgMHgwMUIsIDB4MEQ0LCAweDA4MywgMHgwNTIsIDB4MDQ3LCAweDBERCwKLQkweDA3OSwgMHgwOTYsIDB4MEQ0LCAweDA5RSwgMHgwQjMsIDB4MDUyLCAweDA0QiwgMHgwQTIsCi0JMHgwNUEsIDB4MDFBLCAweDA4RCwgMHgwNUQsIDB4MDdCLCAweDA4MiwgMHgwQTcsIDB4MDUyLAotCTB4MEIyLCAweDA4RSwgMHgwNjYsIDB4MDE5LCAweDAwMiwgMHgwMkUsIDB4MDc1LCAweDAxNiwKLQkweDA1MCwgMHgwMkMsIDB4MDhDLCAweDAzMiwgMHgwMUQsIDB4MDdCLCAweDA4RSwgMHgwQTcsCi0JMHgwNTIsIDB4MEIxLCAweDBCQywgMHgwRDksIDB4MDk5LCAweDA5OCwgMHgwMDQsIDB4MERBLAotCTB4MDdDLCAweDBFMiwgMHgwQUMsIDB4MEZFLCAweDA2NiwgMHgwMTksIDB4MDAyLCAweDAyRSwKLQkweDA2NSwgMHgwNTAsIDB4MEJGLCAweDAzMywgMHgwNjYsIDB4MDY0LCAweDBGRSwgMHgwNzQsCi0JMHgwMTgsIDB4MDg2LCAweDA0QywgMHgwMTcsIDB4MDI2LCAweDBENiwgMHgwMTYsIDB4MDUyLAotCTB4MDM5LCAweDAxOCwgMHgwREUsIDB4MDdBLCAweDBDQywgMHgwQzIsIDB4MDNFLCAweDA2NSwKLQkweDAxNCwgMHgwOTEsIDB4MEYzLCAweDA2NiwgMHgwNDksIDB4MDA4LCAweDA2RSwgMHgwODMsCi0JMHgwMDksIDB4MDMzLCAweDBBRiwgMHgwMzEsIDB4MEVELCAweDAwRCwgMHgwOUQsIDB4MDA2LAotCTB4MDEyLCAweDA2MiwgMHgwMkEsIDB4MDMxLCAweDA4RCwgMHgwNkQsIDB4MEU3LCAweDA0MSwKLQkweDA4MiwgMHgwN0MsIDB4MENBLCAweDBBNiwgMHgwODksIDB4MDg3LCAweDAwOSwgMHgwMkUsCi0JMHgwMjksIDB4MEIxLCAweDBBRiwgMHgwMTAsIDB4MDM5LCAweDBENiwgMHgwNjQsIDB4MDk3LAotCTB4MDMwLCAweDAxRCwgMHgwNDIsIDB4MDc1LCAweDA5MywgMHgwNDQsIDB4MDAyLCAweDA4QywKLQkweDAyNCwgMHgwRDIsIDB4MDdBLCAweDBCMywgMHgwNTAsIDB4MEY2LCAweDA4OSwgMHgwMDUsCi0JMHgwNDMsIDB4MDVFLCAweDA2MSwgMHgwOTgsIDB4MEMwLCAweDAyQywgMHgwOTIsIDB4MDI1LAotCTB4MDNDLCAweDA4QiwgMHgwMjQsIDB4MDg5LCAweDA0OSwgMHgwMDUsIDB4MDQ5LCAweDBFNywKLQkweDAwQywgMHgwQjksIDB4MDg0LCAweDA5OCwgMHgwQjcsIDB4MEFELCAweDAzMywgMHgwNDQsCi0JMHgwQUUsIDB4MDVBLCAweDA1MSwgMHgwODYsIDB4MDYwLCAweDA5RiwgMHgwMzgsIDB4MEE5LAotCTB4MEEyLCAweDA2QywgMHgwNkIsIDB4MEM0LCAweDA4RSwgMHgwRjQsIDB4MDVFLCAweDA0OSwKLQkweDA0NiwgMHgwMTIsIDB4MDYyLCAweDBERSwgMHgwQjQsIDB4MENELCAweDAyMSwgMHgwNUMsCi0JMHgwQjQsIDB4MEEzLCAweDAwQywgMHgwQzEsIDB4MDNFLCAweDA3MiwgMHgwMjksIDB4MEEyLAotCTB4MDZDLCAweDA2QiwgMHgwQzYsIDB4MDEyLCAweDA2MiwgMHgwNDcsIDB4MEYwLCAweDBFOCwKLQkweDBDMywgMHgwMzIsIDB4MDA0LCAweDAzNSwgMHgwNDAsIDB4MDkyLCAweDBBNCwgMHgwODIsCi0JMHgwODgsIDB4MDEwLCAweDA5MiwgMHgwN0MsIDB4MENCLCAweDBENCwgMHgwMkYsIDB4MEE0LAotCTB4MDAyLCAweDAxMSwgMHgwODQsIDB4MDk4LCAweDBCNywgMHgwQUQsIDB4MDMzLCAweDA0NCwKLQkweDBBRSwgMHgwNUEsIDB4MDUxLCAweDA4NiwgMHgwNjAsIDB4MDlGLCAweDAzOCwgMHgwQTksCi0JMHgwQTIsIDB4MDZDLCAweDA2QiwgMHgwQzQsIDB4MDhFLCAweDBGNCwgMHgwNUUsIDB4MDQ5LAotCTB4MDQ0LCAweDAwOCwgMHgwNDksIDB4MDNFLCAweDA2NSwgMHgwRUEsIDB4MDE3LCAweDBEMiwKLQkweDAwMSwgMHgwMDgsIDB4MEMyLCAweDA0QywgMHgwNUIsIDB4MEQ2LCAweDA5OSwgMHgwQTQsCi0JMHgwMkIsIDB4MDk2LCAweDA5NCwgMHgwNjEsIDB4MDk4LCAweDAyNywgMHgwQ0UsIDB4MDQ1LAotCTB4MDM0LCAweDA0RCwgMHgwOEQsIDB4MDc4LCAweDA4MSwgMHgwMDksIDB4MDI3LCAweDBDQywKLQkweDBCRCwgMHgwMTIsIDB4MDI4LCAweDA2QywgMHgwNTgsIDB4MEFGLCAweDBCNiwgMHgwRjMsCi0JMHgwQTAsIDB4MEMxLCAweDAzRSwgMHgwNjUsIDB4MDUzLCAweDA0NCwgMHgwRDgsIDB4MEQ3LAotCTB4MDkyLCAweDA4RSwgMHgwN0QsIDB4MDRCLCAweDBDMiwgMHgwRkEsIDB4MDYxLCAweDAyNiwKLQkweDAwNiwgMHgwM0EsIDB4MEIzLCAweDA2QiwgMHgwMDMsIDB4MDA1LCAweDA0OSwgMHgwRTcsCi0JMHgwMEMsIDB4MEI5LCAweDA2RiwgMHgwNUEsIDB4MDY2LCAweDA5NSwgMHgwNUMsIDB4MEI0LAotCTB4MEEzLCAweDAwQywgMHgwQzEsIDB4MDNFLCAweDA3MCwgMHgwMjksIDB4MEEyLCAweDA2RSwKLQkweDBBNCwgMHgwREYsIDB4MDkzLCAweDA3MSwgMHgwMTMsIDB4MDc3LCAweDAyNiwgMHgwRTEsCi0JMHgwMjYsIDB4MEY4LCAweDAyNiwgMHgwQzYsIDB4MEJDLCAweDA5NCwgMHgwNzMsIDB4MEY5LAotCTB4MDJGLCAweDAwQiwgMHgwRTksIDB4MDg0LCAweDA5OCwgMHgwMTgsIDB4MEVBLCAweDBDQywKLQkweDBFQywgMHgwMEMsIDB4MDE1LCAweDAyNywgMHgwOUMsIDB4MDMyLCAweDBGRiwgMHgwM0QsCi0JMHgwNTYsIDB4MEFGLCAweDA5MiwgMHgwOEIsIDB4MDdBLCAweDBEMywgMHgwMzUsIDB4MEQ1LAotCTB4MENCLCAweDA0QSwgMHgwMzAsIDB4MENDLCAweDAxMywgMHgwRTcsIDB4MDAyLCAweDA5QSwKLQkweDAyNiwgMHgwQzYsIDB4MEJDLCAweDA5NCwgMHgwNzMsIDB4MDQxLCAweDA5NywgMHgwOTEsCi0JMHgwRjQsIDB4MDgzLCAweDBDRSwgMHgwMDQsIDB4MDIwLCAweDA2MiwgMHgwOEIsIDB4MDA1LAotCTB4MDE2LCAweDA0OSwgMHgwOEMsIDB4MDI0LCAweDBDMCwgMHgwQzcsIDB4MDU2LCAweDA5MCwKLQkweDBDMCwgMHgwQzEsIDB4MDUyLCAweDA3OSwgMHgwQzMsIDB4MDJFLCAweDA1QiwgMHgwRDUsCi0JMHgwQTYsIDB4MDcyLCAweDBEMiwgMHgwOTQsIDB4MEZBLCAweDBBRCwgMHgwNTgsIDB4MEM4LAotCTB4MEZBLCAweDA5RiwgMHgwNTQsIDB4MEIzLCAweDAzMiwgMHgwNEIsIDB4MEI5LCAweDA1NCwKLQkweDBBNiwgMHgwNTEsIDB4MDg2LCAweDA2QiwgMHgwNzksIDB4MEQwLCAweDA2MCwgMHgwOUYsCi0JMHgwMzIsIDB4MDA1LCAweDAzNCwgMHgwNEQsIDB4MDhELCAweDA3QSwgMHgwNEQsIDB4MDFFLAotCTB4MDdBLCAweDBCMywgMHgwNTEsIDB4MDAwLCAweDBBOSwgMHgwM0QsIDB4MDU5LCAweDBBOCwKLQkweDA3QiwgMHgwNDQsIDB4MDgyLCAweDBBMSwgMHgwQUYsIDB4MDRBLCAweDA4RCwgMHgwNTIsCi0JMHgwQTksIDB4MDUyLCAweDA0MSwgMHgwNDksIDB4MDRGLCAweDAzQSwgMHgwMkUsIDB4MDQwLAotCTB4MEE0LCAweDA5OSwgMHgwNTAsIDB4MEJFLCAweDA5MCwgMHgwMDgsIDB4MDUyLCAweDA3OSwKLQkweDBDMywgMHgwMkUsIDB4MDYxLCAweDAyNiwgMHgwMkQsIDB4MEVCLCAweDA0QywgMHgwRDAsCi0JMHgwMTUsIDB4MENCLCAweDA0QSwgMHgwMzAsIDB4MENDLCAweDAxMywgMHgwRTcsIDB4MDAyLAotCTB4MDlBLCAweDAyNiwgMHgwQzYsIDB4MEJDLCAweDA0OCwgMHgwRkUsIDB4MDFELCAweDAyNSwKLQkweDA0NiwgMHgwQTksIDB4MDU0LCAweDBBOSwgMHgwMjAsIDB4MEE0LCAweDBBNywgMHgwOUQsCi0JMHgwMTcsIDB4MDIwLCAweDA1MiwgMHgwNEMsIDB4MEE4LCAweDA1RiwgMHgwNDgsIDB4MDA0LAotCTB4MDIzLCAweDAwOSwgMHgwMzEsIDB4MDZGLCAweDA1QSwgMHgwNjYsIDB4MDgwLCAweDBBRSwKLQkweDA1QSwgMHgwNTEsIDB4MDg2LCAweDA2MCwgMHgwOUYsIDB4MDM4LCAweDAxNCwgMHgwRDEsCi0JMHgwMzYsIDB4MDM1LCAweDBFNCwgMHgwQTcsIDB4MDlELCAweDAxNywgMHgwMjAsIDB4MDUyLAotCTB4MDRDLCAweDBBMiwgMHgwNDUsIDB4MDBELCAweDA4QiwgMHgwMTUsIDB4MEY0LCAweDA5MSwKLQkweDBERSwgMHgwOEIsIDB4MEM5LCAweDAyOCwgMHgwQzIsIDB4MDRDLCAweDA1QiwgMHgwRDYsCi0JMHgwOTksIDB4MEE5LCAweDA1QywgMHgwQjQsIDB4MEEzLCAweDAwQywgMHgwRDYsIDB4MEYzLAotCTB4MEEwLCAweDBDMSwgMHgwM0UsIDB4MDY0LCAweDAwQSwgMHgwNjgsIDB4MDlCLCAweDAxQSwKLQkweDBGMSwgMHgwNkQsIDB4MDRDLCAweDBBQSwgMHgwOTIsIDB4MEUwLCAweDAzNiwgMHgwOTQsCi0JMHgwNzAsIDB4MDlCLCAweDAyOSwgMHgwNzgsIDB4MDEzLCAweDBBRSwgMHgwQjMsIDB4MEFBLAotCTB4MDg1LCAweDBENCwgMHgwNDMsIDB4MDc1LCAweDAwOSwgMHgwM0EsIDB4MEM5LCAweDBFQiwKLQkweDAzNSwgMHgwMjQsIDB4MEI4LCAweDAxQiwgMHgwMzIsIDB4MDhFLCAweDAxMywgMHgwNDgsCi0JMHgwN0UsIDB4MDRFLCAweDBGRCwgMHgwNDAsIDB4MEZELCAweDA0MCwgMHgwRkQsIDB4MDQwLAotCTB4MEZELCAweDA0MCwgMHgwRkQsIDB4MDQwLCAweDBGQywgMHgwMTMsIDB4MEY0LCAweDAyMSwKLQkweDBGOSwgMHgwMTcsIDB4MDQ1LCAweDA4QSwgMHgwMzAsIDB4MDBCLCAweDAzMywgMHgwNUYsCi0JMHgwODMsIDB4MEEyLCAweDAyQSwgMHgwMzAsIDB4MDBCLCAweDAzMywgMHgwNUYsIDB4MDgzLAotCTB4MEEyLCAweDBBOCwgMHgwQzAsIDB4MDJELCAweDBCMywgMHgwMjAsIDB4MDcwLCAweDA5MiwKLQkweDAxMywgMHgwOUEsIDB4MERFLCAweDA3NCwgMHgwMTgsIDB4MDI3LCAweDBDQywgMHgwQUEsCi0JMHgwNjgsIDB4MDlCLCAweDAxQSwgMHgwRjcsIDB4MDA3LCAweDA0NSwgMHgwNTEsIDB4MDgwLAotCTB4MDVCLCAweDA2NiwgMHgwNDcsIDB4MDA3LCAweDAzOCwgMHgwQTgsIDB4MDIzLCAweDBFNywKLQkweDA1MSwgMHgwMTEsIDB4MDNGLCAweDBFMCwgMHgwRTgsIDB4MDg1LCAweDA0NiwgMHgwMDEsCi0JMHgwNkQsIDB4MDk5LCAweDAwNiwgMHgwMTIsIDB4MDY1LCAweDA0RiwgMHgwN0EsIDB4MDIwLAotCTB4MDI0LCAweDBCQSwgMHgwQjMsIDB4MDMyLCAweDAxNSwgMHgwMjUsIDB4MDdCLCAweDBBRCwKLQkweDAzMywgMHgwNzgsIDB4MEFFLCAweDAwRSwgMHgwNzMsIDB4MEQwLCAweDA0NywgMHgwQ0UsCi0JMHgwQTcsIDB4MDMwLCAweDBDQywgMHgwNDQsIDB4MEZGLCAweDA4MywgMHgwQTIsIDB4MEE4LAotCTB4MEMwLCAweDAyQywgMHgwRDksIDB4MDkxLCAweDBDMSwgMHgwRDEsIDB4MDE1LCAweDAxOCwKLQkweDAwNSwgMHgwOUIsIDB4MDMyLCAweDAwOCwgMHgwQkEsIDB4MDJDLCAweDA1MSwgMHgwODAsCi0JMHgwNTksIDB4MEIzLCAweDAyMCwgMHgwNzAsIDB4MDkyLCAweDBFMiwgMHgwOTgsIDB4MDg5LAotCTB4MEZELCAweDBCQywgMHgwRUUsIDB4MDE4LCAweDA5MCwgMHgwRkMsIDB4MDhCLCAweDBBMiwKLQkweDBDNSwgMHgwMkIsIDB4MDBELCAweDA3OCwgMHgwM0EsIDB4MDIyLCAweDBBNSwgMHgwNjEsCi0JMHgwQUYsIDB4MDA3LCAweDA0NSwgMHgwNTEsIDB4MDgwLCAweDA1QiwgMHgwNjYsIDB4MDQ0LAotCTB4MDlFLCAweDBCMywgMHgwNTIsIDB4MDRCLCAweDA4MywgMHgwQUQsIDB4MEM3LCAweDAwOSwKLQkweDBCRSwgMHgwMUYsIDB4MDlGLCAweDA3NCwgMHgwNjUsIDB4MDVELCAweDAwQSwgMHgwMTcsCi0JMHgwN0MsIDB4MEFCLCAweDBBMCwgMHgwQzIsIDB4MDRDLCAweDAzOCwgMHgwNDksIDB4MDEyLAotCTB4MDJFLCAweDAzOCwgMHgwNDksIDB4MDA3LCAweDBBMywgMHgwMEMsIDB4MEMxLCAweDAzRSwKLQkweDA2NSwgMHgwNTMsIDB4MDQ0LCAweDBEOCwgMHgwRDcsIDB4MEFELCAweDBFNywgMHgwMDAsCi0JMHgwMzIsIDB4MDRCLCAweDA5QiwgMHgwMzMsIDB4MDM0LCAweDA0QSwgMHgwMDMsIDB4MDAwLAotCTB4MDlELCAweDAyNSwgMHgwQ0UsIDB4MDgzLCAweDAyNCwgMHgwQjgsIDB4MDE5LCAweDA5OSwKLQkweDA4QywgMHgwMDIsIDB4MDEyLCAweDA0QiwgMHgwQTEsIDB4MDk5LCAweDBEOCwgMHgwQzAsCi0JMHgwMjcsIDB4MDQ5LCAweDA3MywgMHgwQ0YsIDB4MEY5LCAweDAzQywgMHgwRjQsIDB4MDdDLAotCTB4MEU3LCAweDA5OCwgMHgwMDQsIDB4MEU5LCAweDAyRSwgMHgwN0YsIDB4MDM5LCAweDBFMywKLQkweDA0RiwgMHgwNDYsIDB4MDUzLCAweDBDMCwgMHgwNjAsIDB4MDEzLCAweDBBNCwgMHgwQjksCi0JMHgwRTUsIDB4MDNDLCAweDAwMywgMHgwREUsIDB4MDhGLCAweDA5QywgMHgwRjMsIDB4MDAwLAotCTB4MDlDLCAweDA2RiwgMHgwQ0YsIDB4MDNFLCAweDA4NSwgMHgwRjksIDB4MEEzLCAweDAzNiwKLQkweDAwMiwgMHgwMUUsIDB4MDYwLCAweDAzOCwgMHgwOTIsIDB4MDNFLCAweDA2MywgMHgwMUEsCi0JMHgwMTAsIDB4MDlGLCAweDBDRiwgMHgwMTgsIDB4MDEwLCAweDA5MiwgMHgwQkMsIDB4MEQwLAotCTB4MEE0LCAweDAwQywgMHgwREMsIDB4MEMwLCAweDAwRiwgMHgwOUMsIDB4MDk3LCAweDAzNCwKLQkweDA2MiwgMHgwQjYsIDB4MEU3LCAweDBGMywgMHgwRjMsIDB4MEE1LCAweDBDRiwgMHgwMTgsCi0JMHgwNDIsIDB4MDM0LCAweDAxQywgMHgwQzIsIDB4MENBLCAweDBGQSwgMHgwOEUsIDB4MDY4LAotCTB4MDUyLCAweDAwNiwgMHgwQUYsIDB4MDNDLCAweDBBMywgMHgwMEQsIDB4MEJGLCAweDA5RSwKLQkweDA1MCwgMHgwRTEsIDB4MEQxLCAweDA3MywgMHgwQ0EsIDB4MEUwLCAweDAzQSwgMHgwRkMsCi0JMHgwQzEsIDB4MDA5LCAweDAxQSwgMHgwMUUsIDB4MDZBLCAweDA1QywgMHgwNUIsIDB4MDhFLAotCTB4MDYzLCAweDA0RSwgMHgwNzcsIDB4MDczLCAweDBDQywgMHgwNjEsIDB4MDY3LCAweDBERCwKLQkweDBFNiwgMHgwNkMsIDB4MDQ4LCAweDBEMSwgMHgwRjMsIDB4MDFCLCAweDAyNCwgMHgwNjksCi0JMHgwNTEsIDB4MDA4LCAweDBENCwgMHgwNDIsIDB4MDFCLCAweDBGNCwgMHgwNjcsIDB4MEQxLAotCTB4MDgwLCAweDA0RSwgMHgwMkYsIDB4MEQwLCAweDA4QywgMHgwRDgsIDB4MDMwLCAweDAwOSwKLQkweDBDMiwgMHgwMUUsIDB4MDgwLCAweDAxQywgMHgwNDYsIDB4MDAxLCAweDAzQSwgMHgwNDcsCi0JMHgwRDAsIDB4MDMxLCAweDBBMSwgMHgwMDYsIDB4MDAxLCAweDAzQSwgMHgwN0YsIDB4MDQ2LAotCTB4MDMwLCAweDAyMSwgMHgwMTgsIDB4MDA0LCAweDBFOSwgMHgwNUUsIDB4MDg0LCAweDAyOSwKLQkweDAwMCwgMHgwQzAsIDB4MDI3LCAweDBDRCwgMHgwRDAsIDB4MDAwLCAweDA3QywgMHgwOTgsCi0JMHgwMDQsIDB4MEY5LCAweDAyRSwgMHgwODQsIDB4MDYyLCAweDA4QywgMHgwMDIsIDB4MDdELAotCTB4MEJBLCAweDAzRSwgMHgwN0UsIDB4MDRDLCAweDAwMiwgMHgwN0QsIDB4MDJFLCAweDA4QywKLQkweDA2MSwgMHgwMDgsIDB4MDMwLCAweDAwOSwgMHgwRjQsIDB4MDFELCAweDAwMSwgMHgwNjUsCi0JMHgwNzMsIDB4MDAwLCAweDA5RiwgMHgwNTEsIDB4MEQwLCAweDA4NSwgMHgwMjAsIDB4MDE4LAotCTB4MDA0LCAweDBGQSwgMHgwQkQsIDB4MDE5LCAweDA0NiwgMHgwMTgsIDB4MEMwLCAweDAyNywKLQkweDBERiwgMHgwRDEsIDB4MDk0LCAweDAzOCwgMHgwNEMsIDB4MDAyLCAweDA3RCwgMHgwMTcsCi0JMHgwNDYsIDB4MDU3LCAweDAwMSwgMHgwMzAsIDB4MDA5LCAweDBGNSwgMHgwRkEsIDB4MDAxLAotCTB4MDA5LCAweDAwNiwgMHgwMDEsIDB4MDNFLCAweDA4NywgMHgwQTEsIDB4MDRCLCAweDA4OCwKLQkweDBDMCwgMHgwMjcsIDB4MERDLCAweDA3NCwgMHgwMEQsIDB4MDM5LCAweDBEMywgMHgwMDAsCi0JMHgwOUYsIDB4MDczLCAweDBEMCwgMHgwMzAsIDB4MEIzLCAweDA5OCwgMHgwMDQsIDB4MEZCLAotCTB4MEJELCAweDAwNiwgMHgwQzQsIDB4MDgzLCAweDAwMCwgMHgwOUYsIDB4MDQ3LCAweDBEMCwKLQkweDAzNiwgMHgwNDgsIDB4MENDLCAweDAwMiwgMHgwNzEsIDB4MEJGLCAweDAzRiwgMHgwOUEsCi0JMHgwMTcsIDB4MEU2LCAweDAzRiwgMHgwMDgsIDB4MDIxLCAweDBFNiwgMHgwOTIsIDB4MEE0LAotCTB4MDhGLCAweDA5QSwgMHgwMTAsIDB4MDMxLCAweDBBNywgMHgwRjMsIDB4MDEwLCAweDBCMSwKLQkweDA4NCwgMHgwQUYsIDB4MDNBLCAweDBBQywgMHgwREMsIDB4MEY3LCAweDA3MywgMHgwRjIsCi0JMHgwNUMsIDB4MEM2LCAweDAyQSwgMHgwREIsIDB4MDlFLCAweDA3RSwgMHgwN0UsIDB4MDk3LAotCTB4MDMxLCAweDAwOCwgMHgwNjMsIDB4MEQwLCAweDA3MywgMHgwN0IsIDB4MDQzLCAweDBBOCwKLQkweDBFNiwgMHgwM0QsIDB4MDM0LCAweDBFQSwgMHgwRjMsIDB4MEUzLCAweDAxNSwgMHgwQkYsCi0JMHgwOUYsIDB4MDE4LCAweDA1RiwgMHgwNDUsIDB4MENGLCAweDBFOCwgMHgwOUYsIDB4MDVGLAotCTB4MDlBLCAweDA1QiwgMHgwMDMsIDB4MEQwLCAweDBGMywgMHgwRDMsIDB4MENFLCAweDAzNywKLQkweDAxQywgMHgwRDAsIDB4MDBGLCAweDBCQiwgMHgwOUUsIDB4MDY4LCAweDA3OCwgMHgwM0IsCi0JMHgwQkMsIDB4MENBLCAweDAzMSwgMHgwRTgsIDB4MEY5LCAweDBBMiwgMHgwMDIsIDB4MDEyLAotCTB4MEEyLCAweDA3MywgMHgwNTEsIDB4MDA4LCAweDA2RiwgMHgwRDEsIDB4MEYzLCAweDA0NiwKLQkweDAwMSwgMHgwMzgsIDB4MEJGLCAweDA0MCwgMHgwRkMsIDB4MDIzLCAweDAwMCwgMHgwOUMsCi0JMHgwMjEsIDB4MEU4LCAweDA0OSwgMHgwNTEsIDB4MDgwLCAweDA0RSwgMHgwOTEsIDB4MEY0LAotCTB4MDIxLCAweDAwMywgMHgwMTksIDB4MDgwLCAweDA0RSwgMHgwOUYsIDB4MEQwLCAweDAyMSwKLQkweDA2MywgMHgwMDYsIDB4MDAxLCAweDAzQSwgMHgwNTYsIDB4MDhDLCAweDAwMiwgMHgwNzQsCi0JMHgwRkUsIDB4MDc1LCAweDA0OSwgMHgwNUUsIDB4MDYzLCAweDBEMywgMHgwNEEsIDB4MDU0LAotCTB4MDQyLCAweDAzNSwgMHgwMTMsIDB4MEE3LCAweDBEMSwgMHgwODAsIDB4MDRFLCAweDA5NSwKLQkweDBFOCwgMHgwMUUsIDB4MDlBLCAweDA0QywgMHgwMDIsIDB4MDdDLCAweDBERCwgMHgwMUIsCi0JMHgwQjksIDB4MEU2LCAweDAwMSwgMHgwM0UsIDB4MDRCLCAweDBBMCwgMHgwNjIsIDB4MEEzLAotCTB4MDAwLCAweDA5RiwgMHgwNkUsIDB4MDhDLCAweDBGQywgMHgwRjMsIDB4MDAwLCAweDA5RiwKLQkweDA0QiwgMHgwQTAsIDB4MDQyLCAweDAxOCwgMHgwQ0MsIDB4MDAyLCAweDA3RCwgMHgwMDcsCi0JMHgwNDMsIDB4MERBLCAweDAxMywgMHgwMDAsIDB4MDlGLCAweDA1MSwgMHgwRDAsIDB4MDNELAotCTB4MDM0LCAweDA5OCwgMHgwMDQsIDB4MEZBLCAweDBCRCwgMHgwMUMsIDB4MDYyLCAweDA4QywKLQkweDAwMiwgMHgwN0QsIDB4MEZELCAweDAxQywgMHgwNjEsIDB4MDczLCAweDAwMCwgMHgwOUYsCi0JMHgwNDUsIDB4MEQxLCAweDBGNCwgMHgwNEUsIDB4MDYwLCAweDAxMywgMHgwRUIsIDB4MEY0LAotCTB4MDI1LCAweDBCMCwgMHgwMzMsIDB4MDAwLCAweDA5RiwgMHgwNDMsIDB4MEQxLCAweDBBNywKLQkweDA5QywgMHgwMTgsIDB4MDA0LCAweDBGQiwgMHgwOEUsIDB4MDg0LCAweDAwMywgMHgwRTksCi0JMHgwODAsIDB4MDRGLCAweDBCOSwgMHgwRTgsIDB4MDQzLCAweDBDMSwgMHgwMzAsIDB4MDA5LAotCTB4MEY3LCAweDA3QSwgMHgwMEEsIDB4MDMxLCAweDA5OCwgMHgwMDQsIDB4MEZBLCAweDAzRSwKLQkweDA4NCwgMHgwNDAsIDB4MDQxLCAweDA4MCwgMHgwNEUsIDB4MDgyLCAweDBFNywgMHgwNDEsCi0JMHgwODcsIDB4MDA5LCAweDAyMywgMHgwMDQsIDB4MDIzLCAweDAwMCwgMHgwOUQsIDB4MDA1LAotCTB4MENFLCAweDA5NiwgMHgwMUMsIDB4MDI0LCAweDA4QywgMHgwMTAsIDB4MDhDLCAweDAwMiwKLQkweDA3NCwgMHgwMTcsIDB4MDNBLCAweDAwNCwgMHgwMzgsIDB4MDQ5LCAweDAxOCwgMHgwMjEsCi0JMHgwMTgsIDB4MDA0LCAweDBFOCwgMHgwMkUsIDB4MDc0LCAweDA1MCwgMHgwRTEsIDB4MDI0LAotCTB4MDYwLCAweDA4NCwgMHgwNjAsIDB4MDEzLCAweDBBMCwgMHgwQjksIDB4MEQ0LCAweDAxMSwKLQkweDBDMiwgMHgwNDgsIDB4MEMxLCAweDAwOCwgMHgwQzAsIDB4MDI3LCAweDA0MSwgMHgwNzMsCi0JMHgwQTgsIDB4MDIzLCAweDA4NCwgMHgwOTEsIDB4MDgyLCAweDAxMSwgMHgwODAsIDB4MDRFLAotCTB4MDgyLCAweDBFNywgMHgwNTIsIDB4MDhFLCAweDAxMiwgMHgwNDYsIDB4MDA4LCAweDA0NiwKLQkweDAwMSwgMHgwM0EsIDB4MDBCLCAweDA5RCwgMHgwNDAsIDB4MDFDLCAweDAyNCwgMHgwOEMsCi0JMHgwMTAsIDB4MDhDLCAweDAwMiwgMHgwNzQsIDB4MDE3LCAweDAzQSwgMHgwMDksIDB4MDBFLAotCTB4MDEyLCAweDA0NiwgMHgwMDgsIDB4MDQ2LCAweDAwMSwgMHgwM0EsIDB4MDBCLCAweDA5OCwKLQkweDA2QSwgMHgwMUMsIDB4MDI0LCAweDBCMCwgMHgwRTEsIDB4MDE4LCAweDAwNCwgMHgwRTgsCi0JMHgwMkUsIDB4MDZCLCAweDA1MCwgMHgwRTEsIDB4MDI1LCAweDA4NywgMHgwMDgsIDB4MEMwLAotCTB4MDI3LCAweDA0MSwgMHgwNzMsIDB4MDA1LCAweDA0MywgMHgwODQsIDB4MDk2LCAweDAxQywKLQkweDAyMywgMHgwMDAsIDB4MDlELCAweDAwNSwgMHgwQ0MsIDB4MEFBLCAweDAxQywgMHgwMjQsCi0JMHgwQjAsIDB4MEUxLCAweDAxOCwgMHgwMDQsIDB4MEU4LCAweDAyRSwgMHgwNzAsIDB4MDY4LAotCTB4MDcwLCAweDA5MiwgMHgwQzMsIDB4MDg0LCAweDA2MCwgMHgwMTMsIDB4MEU1LCAweDA0NCwKLQkweDBGOSwgMHgwNDAsIDB4MDlELCAweDAwNSwgMHgwQ0UsIDB4MDVBLCAweDAxQywgMHgwMjQsCi0JMHgwQjAsIDB4MEUxLCAweDAxOCwgMHgwMDQsIDB4MEY5LCAweDBEMSwgMHgwM0UsIDB4MDcwLAotCTB4MDI3LCAweDBDRiwgMHgwMTMsIDB4MEU1LCAweDA0NCwgMHgwMkMsIDB4MEEwLCAweDA0MiwKLQkweDBDQiwgMHgwODksIDB4MEYyLCAweDAyMSwgMHgwM0EsIDB4MDBCLCAweDA5QywgMHgwMEEsCi0JMHgwMUMsIDB4MDI0LCAweDBCMCwgMHgwRTEsIDB4MDE4LCAweDAwNCwgMHgwRjksIDB4MEQxLAotCTB4MDBCLCAweDAzOCwgMHgwMTAsIDB4MEIzLCAweDBDNCwgMHgwMjEsIDB4MDM5LCAweDAzNiwKLQkweDA1QywgMHgwNDIsIDB4MEM4LCAweDA4NCwgMHgwMkIsIDB4MDc5LCAweDBEMCwgMHgwNjEsCi0JMHgwQzIsIDB4MDc0LCAweDAxNSwgMHgwMjQsIDB4MEJBLCAweDBEMywgMHgwMzEsIDB4MEU1LAotCTB4MDU5LCAweDAwOCwgMHgwMjksIDB4MDA4LCAweDBFMCwgMHgwNjYsIDB4MDYzLCAweDA0MiwKLQkweDA5NSwgMHgwMTIsIDB4MDgxLCAweDAwMCwgMHgwMjksIDB4MDBCLCAweDBDMSwgMHgwNTEsCi0JMHgwMjQsIDB4MEI4LCAweDAxOSwgMHgwOTksIDB4MDkwLCAweDAyMiwgMHgwOTAsIDB4MEI0LAotCTB4MDE4LCAweDBBMCwgMHgwOTEsIDB4MDQxLCAweDAwMSwgMHgwNDEsIDB4MDQxLCAweDA0MSwKLQkweDA1MiwgMHgwODMsIDB4MENBLCAweDA0MCwgMHgwMjgsIDB4MDY4LCAweDAyOSwgMHgwMDgsCi0JMHgwQkEsIDB4MDE2LCAweDAxMCwgMHgwOUMsIDB4MDk5LCAweDAwQiwgMHgwNTYsIDB4MDk0LAotCTB4MDkwLCAweDA1MiwgMHgwMTUsIDB4MDc0LCAweDBDMCwgMHgwMjcsIDB4MDFBLCAweDAyQSwKLQkweDBEMiwgMHgwOTAsIDB4MDI1LCAweDBEMywgMHgwMDAsIDB4MDlELCAweDAyOCwgMHgwQUIsCi0JMHgwNEEsIDB4MDQyLCAweDAxNywgMHgwNEMsIDB4MDAyLCAweDA3MCwgMHgwRDQsIDB4MDg0LAotCTB4MDJFLCAweDA5OCwgMHgwMDQsIDB4MEUxLCAweDAyQSwgMHgwNDIsIDB4MDE3LCAweDA0QywKLQkweDAwMiwgMHgwNzAsIDB4MDgyLCAweDA5MCwgMHgwNEIsIDB4MEE2LCAweDAwMSwgMHgwMzgsCi0JMHgwNTEsIDB4MDQ4LCAweDA0MiwgMHgwRTksIDB4MDgwLCAweDA0RSwgMHgwMTUsIDB4MEE0LAotCTB4MDIxLCAweDA3NCwgMHgwQzAsIDB4MDI3LCAweDAwRiwgMHgwQTQsIDB4MDEyLCAweDBFOSwKLQkweDA4MCwgMHgwNEUsIDB4MDgyLCAweDBBQywgMHgwODAsIDB4MEFDLCAweDBBMCwgMHgwQUMsCi0JMHgwQTksIDB4MDU5LCAweDBFNSwgMHgwNjQsIDB4MDQ1LCAweDA2NSwgMHgwQ0EsIDB4MEM4LAotCTB4MDRBLCAweDBDRSwgMHgwMEEsIDB4MENFLCAweDA0QSwgMHgwQ0UsIDB4MDk1LCAweDA5MSwKLQkweDA5NSwgMHgwOTQsIDB4MDk1LCAweDA5MywgMHgwMjksIDB4MDI1LCAweDBDMCwgMHgwQ0MsCi0JMHgwQ0MsIDB4MDg4LCAweDBBNCwgMHgwOTcsIDB4MDU2LCAweDAzNiwgMHgwNjQsIDB4MDcyLAotCTB4MDkwLCAweDA1NCwgMHgwOEEsIDB4MDlDLCAweDA0NSwgMHgwMDgsIDB4MEI5LCAweDBCNywKLQkweDA2NiwgMHgwMTIsIDB4MDkzLCAweDAwOSwgMHgwQzksIDB4MEIyLCAweDA3NCwgMHgwOEUsCi0JMHgwQkEsIDB4MDYwLCAweDAxMywgMHgwRTUsIDB4MDM0LCAweDA4RSwgMHgwQkEsIDB4MDYwLAotCTB4MDEzLCAweDBFNCwgMHgwNzQsIDB4MDhFLCAweDBCQSwgMHgwNjAsIDB4MDEzLCAweDBFNSwKLQkweDA2OSwgMHgwMUQsIDB4MDc0LCAweDBDMCwgMHgwMjcsIDB4MENBLCAweDAyOSwgMHgwMUQsCi0JMHgwNzQsIDB4MEMwLCAweDAyNywgMHgwQ0UsIDB4MEQyLCAweDAyNSwgMHgwRDMsIDB4MDAwLAotCTB4MDlGLCAweDAzOCwgMHgwQTQsIDB4MDRCLCAweDBBNiwgMHgwMDEsIDB4MDNFLCAweDA1RSwKLQkweDA5MSwgMHgwMkUsIDB4MDk4LCAweDAwNCwgMHgwRjksIDB4MDE1LCAweDAyMiwgMHgwNUQsCi0JMHgwMzAsIDB4MDA5LCAweDBGMywgMHgwRTksIDB4MDEyLCAweDBFOSwgMHgwODAsIDB4MDRGLAotCTB4MDkwLCAweDA1MiwgMHgwMjUsIDB4MEQzLCAweDAwMCwgMHgwOUQsIDB4MEM1LCAweDA0OCwKLQkweDAyNSwgMHgwRDMsIDB4MDAwLCAweDA5QywgMHgwNDUsIDB4MENFLCAweDBDRCwgMHgwMDksCi0JMHgwQzksIDB4MEIyLCAweDAxQSwgMHgwNDQsIDB4MEJBLCAweDA2MCwgMHgwMTMsIDB4MEU3LAotCTB4MDM0LCAweDA4OSwgMHgwNzQsIDB4MEMwLCAweDAyNywgMHgwMUMsIDB4MDI3LCAweDBCNywKLQkweDA5QywgMHgwODAsIDB4MEMyLCAweDBENywgMHgwNzYsIDB4MDU5LCAweDA5QiwgMHgwOTMsCi0JMHgwMEMsIDB4MDY0LCAweDBDMywgMHgwMUQsIDB4MDFCLCAweDBGNCwgMHgwNDUsIDB4MDRCLAotCTB4MEM3LCAweDBDNiwgMHgwM0EsIDB4MDM3LCAweDBFOCwgMHgwODEsIDB4MDRCLCAweDBDNywKLQkweDBDNiwgMHgwM0EsIDB4MDM3LCAweDBFOCwgMHgwOTEsIDB4MDRCLCAweDBDNywgMHgwQzYsCi0JMHgwMzIsIDB4MDYxLCAweDA4RSwgMHgwQjMsIDB4MEJDLCAweDBDMywgMHgwNEEsIDB4MDIyLAotCTB4MEU2LCAweDBCNSwgMHgwMjQsIDB4MDk3LCAweDA3MSwgMHgwQzksIDB4MDg3LCAweDBCNCwKLQkweDAzMSwgMHgwQUUsIDB4MDczLCAweDBBMiwgMHgwQ0YsIDB4MDM5LCAweDBEMiwgMHgwNUQsCi0JMHgwMDQsIDB4MDQ0LCAweDA0MiwgMHgwQzAsIDB4MEQ2LCAweDBERSwgMHgwNzEsIDB4MDA2LAotCTB4MDE2LCAweDBCQiwgMHgwREIsIDB4MENFLCAweDA4MywgMHgwMEMsIDB4MDY0LCAweDBDMywKLQkweDAxRCwgMHgwMzEsIDB4MDEzLCAweDAwNCwgMHgwRjksIDB4MDk1LCAweDA0RCwgMHgwMTMsCi0JMHgwMzIsIDB4MDkzLCAweDA2MywgMHgwNUUsIDB4MDY2LCAweDAxNCwgMHgwQ0MsIDB4MDI5LAotCTB4MDJBLCAweDA1MywgMHgwMzAsIDB4MEE2LCAweDA2MSwgMHgwNEMsIDB4MEMyLCAweDA5OSwKLQkweDA4NSwgMHgwM0EsIDB4MDcyLCAweDBDQywgMHgwQzIsIDB4MDk5LCAweDA4NSwgMHgwMDYsCi0JMHgwMUIsIDB4MEIzLCAweDAwQSwgMHgwNjYsIDB4MDE0LCAweDAxNCwgMHgwMjQsIDB4MDk5LAotCTB4MDg1LCAweDAzMywgMHgwMEEsIDB4MDA4LCAweDBCMSwgMHgwODYsIDB4MDYxLCAweDA0QywKLQkweDBDMiwgMHgwODQsIDB4MDIxLCAweDA2OCwgMHgwNzMsIDB4MDNCLCAweDAzMCwgMHgwQTYsCi0JMHgwNjEsIDB4MDQxLCAweDA0RSwgMHgwQTUsIDB4MDk4LCAweDA1MywgMHgwMzAsIDB4MEFDLAotCTB4MDU5LCAweDA3NiwgMHgwNjEsIDB4MDRDLCAweDBDMiwgMHgwQjAsIDB4MDhELCAweDBENiwKLQkweDA2MSwgMHgwNEMsIDB4MEMyLCAweDBCMCwgMHgwMkMsIDB4MEY2LCAweDA2MSwgMHgwNEMsCi0JMHgwQzIsIDB4MEIxLCAweDA4QywgMHgwQTUsIDB4MDk4LCAweDA1MywgMHgwMzAsIDB4MEFDLAotCTB4MDBGLCAweDAyNCwgMHgwQ0MsIDB4MDI5LCAweDA5OCwgMHgwNTYsIDB4MDBGLCAweDAyOCwKLQkweDA2NiwgMHgwMTUsIDB4MDkyLCAweDAxQSwgMHgwMTksIDB4MDg1LCAweDAzMywgMHgwMEEsCi0JMHgwQ0EsIDB4MDg1LCAweDAwQywgMHgwQzIsIDB4MDk5LCAweDA4NSwgMHgwNjUsIDB4MEMzLAotCTB4MEQ5LCAweDA4NSwgMHgwMzMsIDB4MDBBLCAweDBDRSwgMHgwNzAsIDB4MDg2LCAweDA2MSwKLQkweDA0QywgMHgwQzIsIDB4MEIzLCAweDA5NywgMHgwNzEsIDB4MDBDLCAweDA5OSwgMHgwM0IsCi0JMHgwQ0MsIDB4MDgzLCAweDA1OCwgMHgwMEIsIDB4MEVBLCAweDA3NywgMHgwOUQsIDB4MDA2LAotCTB4MDRBLCAweDBCRSwgMHgwMDQsIDB4MDc0LCAweDA2MCwgMHgwRTAsIDB4MEQxLCAweDA0RSwKLQkweDAzOCwgMHgwNEMsIDB4MDNFLCAweDBFRSwgMHgwM0UsIDB4MEVFLCAweDAzRSwgMHgwRUUsCi0JMHgwM0UsIDB4MEVFLCAweDAzMCwgMHgwQkIsIDB4MENBLCAweDBFMSwgMHgwMUYsIDB4MDc3LAotCTB4MDFGLCAweDA3NywgMHgwMUYsIDB4MDc3LCAweDAxRiwgMHgwNzcsIDB4MDI3LCAweDA3MCwKLQkweDA4RiwgMHgwQkIsIDB4MDgwLCAweDAwRSwgMHgwMTEsIDB4MEY3LCAweDA3MSwgMHgwRjcsCi0JMHgwN0MsIDB4MDZGLCAweDAzQywgMHgwQjMsIDB4MDM2LCAweDAwMiwgMHgwRkIsIDB4MDhELAotCTB4MEU2LCAweDA1NSwgMHgwNzAsIDB4MDdGLCAweDAyRCwgMHgwMjQsIDB4MDY5LCAweDA1NSwKLQkweDA0RiwgMHgwNTgsIDB4MEE5LCAweDAyMywgMHgwMUYsIDB4MDU0LCAweDBGNywgMHgwOEEsCi0JMHgwOTUsIDB4MDI1LCAweDAyQiwgMHgwNzUsIDB4MDBDLCAweDBDQywgMHgwQUMsIDB4MDU2LAotCTB4MDUxLCAweDBDQywgMHgwNTEsIDB4MEU0LCAweDA0NSwgMHgwQ0UsIDB4MEEyLCAweDAxMiwKLQkweDAzOSwgMHgwQzAsIDB4MEEwLCAweDBBRiwgMHgwNTYsIDB4MDZBLCAweDA0OSwgMHgwN0YsCi0JMHgwMDIsIDB4MDhDLCAweDAwOSwgMHgwRjgsIDB4MDBCLCAweDBFQiwgMHgwQUYsIDB4MDU2LAotCTB4MDc2LCAweDA2NywgMHgwNTIsIDB4MEIyLCAweDA4RSwgMHgwNjksIDB4MEE3LCAweDAxMSwKLQkweDA3MywgMHgwQTgsIDB4MEIxLCAweDBCQywgMHgwQ0EsIDB4MEEwLCAweDBBOSwgMHgwMzYsCi0JMHgwNTAsIDB4MDJDLCAweDA5OCwgMHgwRTcsIDB4MDBBLCAweDBGNSwgMHgwNjYsIDB4MEE0LAotCTB4MDk3LCAweDBFMiwgMHgwNUEsIDB4MDMwLCAweDAyNywgMHgwQkEsIDB4MEY3LCAweDA4MywKLQkweDA0RSwgMHgwQTUsIDB4MDMzLCAweDAwQSwgMHgwNjYsIDB4MDE1LCAweDA4RCwgMHgwRTYsCi0JMHgwNTUsIDB4MDM5LCAweDBEMiwgMHgwQTcsIDB4MEFDLCAweDA1NCwgMHgwNjAsIDB4MDE2LAotCTB4MDcwLCAweDAxQiwgMHgwNzIsIDB4MDhFLCAweDA2MiwgMHgwOEYsIDB4MDIyLCAweDAyRSwKLQkweDA3NSwgMHgwMTYsIDB4MDAyLCAweDBGQiwgMHgwOEQsIDB4MEU2LCAweDAwQSwgMHgwOTUsCi0JMHgwM0QsIDB4MDYyLCAweDBBMywgMHgwMDAsIDB4MEI3LCAweDAwMSwgMHgwQjUsIDB4MDUzLAotCTB4MERFLCAweDAyQSwgMHgwNTQsIDB4MDk0LCAweDBBRCwgMHgwRDQsIDB4MDMzLCAweDAzMiwKLQkweDBCMSwgMHgwNTksIDB4MDQ3LCAweDAzMSwgMHgwNDcsIDB4MDkxLCAweDAxNywgMHgwM0EsCi0JMHgwODgsIDB4MDQ4LCAweDBFNywgMHgwMDIsIDB4MEIwLCAweDAxNywgMHgwREMsIDB4MDY3LAotCTB4MDlELCAweDA0QiwgMHgwOEQsIDB4MEU3LCAweDA1MiwgMHgwQUEsIDB4MDdCLCAweDBENCwKLQkweDBBQSwgMHgwOTIsIDB4MEJELCAweDBENiwgMHgwOTksIDB4MEJDLCAweDA1NiwgMHgwMDIsCi0JMHgwRkIsIDB4MDhDLCAweDBGMywgMHgwNjYsIDB4MDY2LCAweDBDNiwgMHgwRjMsIDB4MDY2LAotCTB4MDY2LCAweDA2MiwgMHgwOTksIDB4MDJBLCAweDBGOCwgMHgwMTgsIDB4MDY4LCAweDA3MCwKLQkweDBCMCwgMHgwOEEsIDB4MDBELCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTIsCi0JMHgwMzIsIDB4MEUxLCAweDA0MCwgMHgwNUMsIDB4MDM4LCAweDAwQiwgMHgwRUEsIDB4MDlCLAotCTB4MDg3LCAweDAwMSwgMHgwN0QsIDB4MEMwLCAweDA1RiwgMHgwNzAsIDB4MDE3LCAweDBEQywKLQkweDAwNSwgMHgwRjUsIDB4MERDLCAweDA5QiwgMHgwMDEsIDB4MDdELCAweDA2MSwgMHgwNEQsCi0JMHgwODAsIDB4MEJFLCAweDBBNywgMHgwNzksIDB4MDgyLCAweDBBMiwgMHgwMUYsIDB4MDUwLAotCTB4MDE1LCAweDAyQSwgMHgwOEYsIDB4MDhCLCAweDAxQywgMHgwRTUsIDB4MEE1LCAweDAxMywKLQkweDA4NCwgMHgwNTgsIDB4MEU3LCAweDAwMiwgMHgwOTEsIDB4MDU0LCAweDAwNSwgMHgwMDIsCi0JMHgwNEIsIDB4MEJELCAweDAyMiwgMHgwMUEsIDB4MDk0LCAweDA3RiwgMHgwOUMsIDB4MDFBLAotCTB4MEMwLCAweDA1RiwgMHgwNDIsIDB4MDFBLCAweDAyMSwgMHgwRDEsIDB4MDgwLCAweDA1OSwKLQkweDBDMCwgMHgwNkQsIDB4MDFDLCAweDAyQywgMHgwMEEsIDB4MDgzLCAweDA1NSwgMHgwNTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LAotCTB4MDU1LCAweDA1NCwgMHgwMUMsIDB4MEI4LCAweDA1QywgMHgwNkUsIDB4MDE3LCAweDA5QywKLQkweDAyRiwgMHgwMzgsIDB4MDVFLCAweDA3MCwgMHgwRTcsIDB4MEI4LCAweDA1RSwgMHgwNzAsCi0JMHgwQkMsIDB4MEUxLCAweDA3OSwgMHgwQzIsIDB4MEYzLCAweDA4NSwgMHgwRTcsIDB4MDBCLAotCTB4MENFLCAweDAxNywgMHgwOUMsIDB4MDI5LCAweDA5QywgMHgwMjksIDB4MDlDLCAweDAyOSwKLQkweDA5QywgMHgwMjMsIDB4MDBGLCAweDA1OCwgMHgwMTQsIDB4MEVFLCAweDAzNSwgMHgwNzcsCi0JMHgwMjYsIDB4MDIxLCAweDA5MywgMHgwMDUsIDB4MEM5LCAweDBCMCwgMHgwMTcsIDB4MEQyLAotCTB4MDFELCAweDAxOCwgMHgwOEEsIDB4MDIxLCAweDA5MywgMHgwMDUsIDB4MEM5LCAweDBCMCwKLQkweDAxNywgMHgwRDEsIDB4MDg3LCAweDBBQywgMHgwMEEsIDB4MDc0LCAweDAwRiwgMHgwQUUsCi0JMHgwRjUsIDB4MDVBLCAweDA4MiwgMHgwQTMsIDB4MEU0LCAweDAzQSwgMHgwMzEsIDB4MDE0LAotCTB4MEJCLCAweDBENywgMHgwNTksIDB4MDk5LCAweDA3NCwgMHgwQTIsIDB4MDE5LCAweDAzMCwKLQkweDA1QywgMHgwOUIsIDB4MDAxLCAweDA3RCwgMHgwMTgsIDB4MDdBLCAweDBDMCwgMHgwQTcsCi0JMHgwNDAsIDB4MEY4LCAweDA0MywgMHgwRDQsIDB4MDYzLCAweDA4OSwgMHgwMjUsIDB4MEQwLAotCTB4MDEwLCAweDBENiwgMHgwMUMsIDB4MDZBLCAweDAxMCwgMHgwRjUsIDB4MDU1LCAweDA4OSwKLQkweDAyNSwgMHgwRDEsIDB4MDUxLCAweDA2NiwgMHgwMUYsIDB4MDUxLCAweDBGNSwgMHgwOTEsCi0JMHgwNDksIDB4MDJFLCAweDA4OSwgMHgwMTUsIDB4MDk4LCAweDA2QSwgMHgwQTMsIDB4MEUwLAotCTB4MDhBLCAweDA5NCwgMHgwNjUsIDB4MDY0LCAweDAwRSwgMHgwMTMsIDB4MDE3LCAweDAzOCwKLQkweDBBOCwgMHgwODYsIDB4MDRDLCAweDAxNywgMHgwMjYsIDB4MEMwLCAweDA1RiwgMHgwNDYsCi0JMHgwMUUsIDB4MEIwLCAweDAyOCwgMHgwNjMsIDB4MDFGLCAweDAwOCwgMHgwN0EsIDB4MDhDLAotCTB4MDcxLCAweDAyNCwgMHgwQkEsIDB4MDAyLCAweDAxQSwgMHgwRDAsIDB4MDBELCAweDA0MiwKLQkweDAxRSwgMHgwQUEsIDB4MEIxLCAweDAyNCwgMHgwQkEsIDB4MDJBLCAweDAyRCwgMHgwMzEsCi0JMHgwRjUsIDB4MDFGLCAweDA1OCwgMHgwNzQsIDB4MDkyLCAweDBFOCwgMHgwODcsIDB4MDVBLAotCTB4MDYzLCAweDA1MiwgMHgwREUsIDB4MEY0LCAweDA1MSwgMHgwNjksIDB4MDRBLCAweDAzRSwKLQkweDAwOSwgMHgwNjksIDB4MDQ2LCAweDA1MCwgMHgwRjAsIDB4MEUxLCAweDAzMSwgMHgwNzMsCi0JMHgwMDUsIDB4MDQ1LCAweDBCRCwgMHgwNTksIDB4MDhELCAweDA4QiwgMHgwNEEsIDB4MDdDLAotCTB4MEQzLCAweDBFRCwgMHgwMzgsIDB4MEU5LCAweDBEMywgMHgwNEUsIDB4MDc0LCAweDBFRCwKLQkweDA0NCwgMHgwMzIsIDB4MDYwLCAweDBCOSwgMHgwMzYsIDB4MDAyLCAweDBGQSwgMHgwNUIsCi0JMHgwREUsIDB4MDhBLCAweDAyRCwgMHgwMjksIDB4MEQwLCAweDBFMSwgMHgwMjEsIDB4MEY1LAotCTB4MEEzLCAweDA5MiwgMHgwMjEsIDB4MEYyLCAweDAxOSwgMHgwMzAsIDB4MDVDLCAweDA5QiwKLQkweDAwMSwgMHgwN0QsIDB4MDIxLCAweDBGNSwgMHgwQTAsIDB4MEM2LCAweDAwMSwgMHgwNjcsCi0JMHgwMDEsIDB4MEI0LCAweDA0NSwgMHgwQ0UsIDB4MEE1LCAweDAxMiwgMHgwMzksIDB4MEQ0LAotCTB4MDFDLCAweDAwNSwgMHgwRjQsIDB4MDQwLCAweDBBMSwgMHgwQzIsIDB4MEMzLCAweDA1MCwKLQkweDA2QSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsCi0JMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwODEsIDB4MEFGLAotCTB4MDg2LCAweDA5RiwgMHgwMTksIDB4MDFCLCAweDBFNywgMHgwODEsIDB4MEYzLCAweDA2NSwKLQkweDBGMiwgMHgwODAsIDB4MEJFLCAweDA3MCwgMHgwMTcsIDB4MERGLCAweDBERiwgMHgwMzgsCi0JMHgwMEIsIDB4MEVCLCAweDAwRCwgMHgwQzMsIDB4MDgwLCAweDBCRSwgMHgwQTcsIDB4MDBGLAotCTB4MDk1LCAweDA0RiwgMHgwNUEsIDB4MDk0LCAweDBDMCwgMHgwMkMsIDB4MEQ4LCAweDBCMSwKLQkweDBBNywgMHgwQ0UsIDB4MDVBLCAweDAxMSwgMHgwNzMsIDB4MEE4LCAweDAzQSwgMHgwQzIsCi0JMHgwQ0MsIDB4MEI2LCAweDAzMCwgMHgwMTcsIDB4MERDLCAweDA2RiwgMHgwMzUsIDB4MEE5LAotCTB4MDgwLCAweDA0RCwgMHgwQTcsIDB4MENFLCAweDAyQSwgMHgwMTgsIDB4MDc5LCAweDBDNSwKLQkweDA0OSwgMHgwREUsIDB4MDYxLCAweDBBOCwgMHgwMjIsIDB4MEU3LCAweDA1MCwgMHgwMzMsCi0JMHgwRjksIDB4MDk4LCAweDA2NCwgMHgwMDgsIDB4MEI5LCAweDA5NSwgMHgwNDIsIDB4MEZDLAotCTB4MENDLCAweDBEOSwgMHgwOTUsIDB4MDNELCAweDA2MiwgMHgwQTIsIDB4MDQ4LCAweDBENCwKLQkweDA0OCwgMHgwRTcsIDB4MDAyLCAweDA4OCwgMHgwQjksIDB4MEMxLCAweDBBMCwgMHgwRTMsCi0JMHgwOUQsIDB4MDRFLCAweDA2MiwgMHgwRTYsIDB4MENDLCAweDBDNiwgMHgwNkIsIDB4MENFLAotCTB4MDgzLCAweDAxMCwgMHgwQzksIDB4MDgyLCAweDBFNCwgMHgwREEsIDB4MEMyLCAweDBDOCwKLQkweDAxRSwgMHgwQzMsIDB4MEI5LCAweDAzNiwgMHgwMDIsIDB4MEZBLCAweDBBOSwgMHgwRUIsCi0JMHgwNEUsIDB4MDMwLCAweDAzMCwgMHgwRkEsIDB4MDBELCAweDBGMCwgMHgwQTksIDB4MEVCLAotCTB4MDQwLCAweDBCOSwgMHgwMEYsIDB4MEFBLCAweDA3QSwgMHgwRDIsIDB4MEMyLCAweDBDOCwKLQkweDBGQSwgMHgwQTcsIDB4MEFELCAweDA0MSwgMHgwMEEsIDB4MDQ3LCAweDBENSwgMHgwM0QsCi0JMHgwNjgsIDB4MEFDLCAweDBGMSwgMHgwRjUsIDB4MDRGLCAweDA1QSwgMHgwOTcsIDB4MDU0LAotCTB4MDdELCAweDA0RiwgMHgwQTgsIDB4MEFBLCAweDA1NSwgMHgwMUYsIDB4MDExLCAweDA3MywKLQkweDA1QSwgMHgwQjAsIDB4MDE3LCAweDBERSwgMHgwNUQsIDB4MDU5LCAweDBBOSwgMHgwMjUsCi0JMHgwRDAsIDB4MDU1LCAweDAyQSwgMHgwNDYsIDB4MEJDLCAweDBCOCwgMHgwMjIsIDB4MEFFLAotCTB4MDQ1LCAweDAyOSwgMHgwM0UsIDB4MDE0LCAweDBGQSwgMHgwRTEsIDB4MDk5LCAweDA5NCwKLQkweDBDQSwgMHgwNEEsIDB4MEJFLCAweDAzRCwgMHgwRDYsIDB4MDk5LCAweDA5MiwgMHgwNUQsCi0JMHgwMTUsIDB4MDE3LCAweDBDOCwgMHgwRDcsIDB4MERDLCAweDAxNSwgMHgwMTcsIDB4MDhBLAotCTB4MDQwLCAweDAxRiwgMHgwMEEsIDB4MDlFLCAweDBBQywgMHgwQzksIDB4MDY1LCAweDA0OSwKLQkweDA1QywgMHgwMUQsIDB4MDEwLCAweDA2OCwgMHgwNEEsIDB4MDNFLCAweDA1QiwgMHgwREUsCi0JMHgwODMsIDB4MDE2LCAweDA5NSwgMHgwODAsIDB4MEJFLCAweDA5MSwgMHgwNzQsIDB4MDU4LAotCTB4MEE0LCAweDAwMCwgMHgwN0MsIDB4MDM4LCAweDBFNywgMHgwNTYsIDB4MDMwLCAweDAxNywKLQkweDBERiwgMHgwNzUsIDB4MEE2LCAweDA2NCwgMHgwOTcsIDB4MDQ1LCAweDAyMCwgMHgwOUQsCi0JMHgwMDMsIDB4MDVGLCAweDA3MCwgMHgwNTQsIDB4MDVFLCAweDAyOSwgMHgwMUQsIDB4MEYwLAotCTB4MEE5LCAweDBFQSwgMHgwQ0MsIDB4MDg2LCAweDA1NCwgMHgwOTUsIDB4MEMxLCAweDBEMSwKLQkweDAwNiwgMHgwODMsIDB4MDBGLCAweDBBQSwgMHgwN0IsIDB4MEQwLCAweDA2NSwgMHgwNDksCi0JMHgwNDUsIDB4MEJELCAweDBFOSwgMHgwNjIsIDB4MEQyLCAweDA5MSwgMHgwREYsIDB4MDA0LAotCTB4MDVELCAweDAxNiwgMHgwMjksIDB4MDFDLCAweDA3RCwgMHgwNEYsIDB4MEFDLCAweDAxQSwKLQkweDA0NywgMHgwMUEsIDB4MEE5LCAweDBGNSwgMHgwNjcsIDB4MDY2LCAweDA1MywgMHgwMjgsCi0JMHgwQjcsIDB4MEJELCAweDAyQywgMHgwNUEsIDB4MDUyLCAweDAzQiwgMHgwRTMsIDB4MERELAotCTB4MDU5LCAweDBBOSwgMHgwMjUsIDB4MEQxLCAweDBBOCwgMHgwQUMsIDB4MDA4LCAweDA2QiwKLQkweDBFRSwgMHgwMDgsIDB4MEFCLCAweDBDNSwgMHgwMjAsIDB4MDJGLCAweDA4NSwgMHgwNEYsCi0JMHgwNTYsIDB4MDY2LCAweDA3NSwgMHgwNDksIDB4MDVDLCAweDAxQywgMHgwMTgsIDB4MDFELAotCTB4MDgxLCAweDBDMiwgMHgwNjQsIDB4MDA1LCAweDBGMCwgMHgwODAsIDB4MEJFLCAweDAzNSwKLQkweDA1QywgMHgwRDAsIDB4MDE3LCAweDBDMiwgMHgwNTUsIDB4MEYwLCAweDA5NSwgMHgwN0MsCi0JMHgwMjUsIDB4MDVGLCAweDAwOCwgMHgwMEIsIDB4MEUxLCAweDAwMSwgMHgwN0MsIDB4MDdCLAotCTB4MEFCLCAweDAzNSwgMHgwMjQsIDB4MEJBLCAweDAxMCwgMHgwNTUsIDB4MDkzLCAweDAxQSwKLQkweDBGQiwgMHgwODIsIDB4MDJBLCAweDBGMSwgMHgwNDgsIDB4MEQ3LCAweDBDMiwgMHgwQTcsCi0JMHgwQUIsIDB4MDMxLCAweDBCMiwgMHgwQTQsIDB4MEFDLCAweDA2MywgMHgwOUQsIDB4MDRBLAotCTB4MDhELCAweDA3QywgMHgwN0IsIDB4MEFCLCAweDAzNSwgMHgwMjQsIDB4MEJBLCAweDAxMCwKLQkweDA1NCwgMHgwMzAsIDB4MDhELCAweDA3RCwgMHgwQzEsIDB4MDE1LCAweDA3OCwgMHgwQUMsCi0JMHgwNkYsIDB4MDVBLCAweDA5NCwgMHgwNjAsIDB4MDFBLCAweDBFMywgMHgwNzksIDB4MEQ0LAotCTB4MEFBLCAweDA0RiwgMHgwODUsIDB4MDRGLCAweDA1NiwgMHgwNjYsIDB4MEQ1LCAweDA0OSwKLQkweDA1OCwgMHgwQzcsIDB4MDNBLCAweDA5NSwgMHgwNDksIDB4MEYwLCAweDA0NSwgMHgwRDEsCi0JMHgwNjIsIDB4MDk0LCAweDA4NiwgMHgwQkMsIDB4MDFELCAweDAxMywgMHgwRDIsIDB4MDkwLAotCTB4MEZGLCAweDBDRiwgMHgwN0EsIDB4MDgzLCAweDBGMiwgMHgwNTAsIDB4MDMxLCAweDBERSwKLQkweDAwMCwgMHgwNjAsIDB4MDYwLCAweDBBMSwgMHgwMTcsIDB4MDM1LCAweDBBOCwgMHgwNUYsCi0JMHgwOUIsIDB4MDFCLCAweDAzNywgMHgwMDcsIDB4MDQ0LCAweDAxQSwgMHgwMzAsIDB4MDBCLAotCTB4MDM4LCAweDAwRCwgMHgwQkMsIDB4MDFDLCAweDBFMCwgMHgwRDAsIDB4MDQ3LCAweDBDRSwKLQkweDBBMCwgMHgwQUEsIDB4MDdBLCAweDBBMSwgMHgwOTgsIDB4MDZBLCAweDA5MiwgMHgwOTUsCi0JMHgwM0QsIDB4MDY4LCAweDAzMSwgMHgwODAsIDB4MDVCLCAweDA4MCwgMHgwREEsIDB4MEE5LAotCTB4MEVGLCAweDA0MSwgMHgwOTUsIDB4MDI1LCAweDAxNiwgMHgwRjcsIDB4MEE1LCAweDA4QiwKLQkweDA0QSwgMHgwQzYsIDB4MDc5LCAweDBCMywgMHgwMzMsIDB4MDYwLCAweDAyRiwgMHgwQUEsCi0JMHgwOUUsIDB4MEIxLCAweDA1MSwgMHgwODAsIDB4MDU5LCAweDA5RSwgMHgwQ0EsIDB4MEE3LAotCTB4MEFDLCAweDAwQSwgMHgwMzAsIDB4MDBCLCAweDA2NywgMHgwQjIsIDB4MEFELCAweDBENSwKLQkweDBEQSwgMHgwOTIsIDB4MDVELCAweDAxNywgMHgwQTMsIDB4MDAwLCAweDBCMywgMHgwMkQsCi0JMHgwOTUsIDB4MDZFLCAweDAwOCwgMHgwQTksIDB4MDU4LCAweDBBMSwgMHgwMTcsIDB4MDNBLAotCTB4MDhCLCAweDAwMSwgMHgwN0QsIDB4MDU0LCAweDBGNywgMHgwOEUsIDB4MDk1LCAweDAyNSwKLQkweDAwOCwgMHgwMUMsIDB4MEUwLCAweDA1NiwgMHgwMDIsIDB4MEZCLCAweDBDMSwgMHgwRDEsCi0JMHgwMTUsIDB4MDE4LCAweDAwNSwgMHgwOTIsIDB4MDZCLCAweDAzQywgMHgwMUQsIDB4MDEyLAotCTB4MDI4LCAweDBDMCwgMHgwMkMsIDB4MEE1LCAweDA2QywgMHgwMTEsIDB4MDcwLCAweDAxNywKLQkweDBCMiwgMHgwMzgsIDB4MDRELCAweDA4MCwgMHgwQkUsIDB4MEUwLCAweDAyRiwgMHgwQjQsCi0JMHgwRUMsIDB4MDRBLCAweDBFRCwgMHgwQjMsIDB4MDlFLCAweDAwMiwgMHgwRkIsIDB4MDgwLAotCTB4MEJFLCAweDBFMCwgMHgwMkYsIDB4MEIxLCAweDAzOSwgMHgwOTMsIDB4MDNFLCAweDA2RCwKLQkweDBFNywgMHgwMTAsIDB4MDYwLCAweDA5RiwgMHgwMzIsIDB4MEE5LCAweDBBMiwgMHgwNkMsCi0JMHgwMDUsIDB4MEY0LCAweDA0MCwgMHgwRTYsIDB4MDBBLCAweDA5NSwgMHgwM0QsIDB4MDZBLAotCTB4MDIzLCAweDAwMCwgMHgwQjMsIDB4MDgwLCAweDBEQSwgMHgwQTcsIDB4MEQ2LCAweDAyQSwKLQkweDAwMywgMHgwMEQsIDB4MDcwLCAweDAxNywgMHgwRDIsIDB4MDJFLCAweDA3NiwgMHgwMjksCi0JMHgwNEYsIDB4MEJDLCAweDA1NCwgMHgwQTYsIDB4MDUxLCAweDA2RiwgMHgwN0EsIDB4MDU4LAotCTB4MEI0LCAweDBBQywgMHgwMDUsIDB4MEY0LCAweDA4QiwgMHgwQTIsIDB4MEY0LCAweDAwRSwKLQkweDAzNSwgMHgwMEQsIDB4MDQ5LCAweDAyRSwgMHgwQjQsIDB4MENDLCAweDAxOCwgMHgwQTUsCi0JMHgwQzgsIDB4MEY4LCAweDA0QSwgMHgwOTcsIDB4MDIzLCAweDBFMSwgMHgwMDUsIDB4MDJFLAotCTB4MDQ3LCAweDBDMiwgMHgwOEEsIDB4MDVDLCAweDA4RiwgMHgwODUsIDB4MDY5LCAweDA3MiwKLQkweDAzRSwgMHgwMUYsIDB4MDRBLCAweDBDMywgMHgwNTUsIDB4MDFGLCAweDA1NiwgMHgwNDMsCi0JMHgwMzIsIDB4MDhDLCAweDBBMywgMHgwNUUsIDB4MDYwLCAweDBBOCwgMHgwNDUsIDB4MENFLAotCTB4MDBELCAweDA2MCwgMHgwMkYsIDB4MEEzLCAweDA4NCwgMHgwOUQsIDB4MEQ4LCAweDBGMCwKLQkweDAxNywgMHgwRDIsIDB4MDJFLCAweDAwRSwgMHgwMUIsIDB4MDIzLCAweDA4NCwgMHgwRDgsCi0JMHgwMEIsIDB4MEVCLCAweDA4OSwgMHgwRjMsIDB4MDgwLCAweDBCRSwgMHgwRTAsIDB4MDJGLAotCTB4MEJCLCAweDAzOSwgMHgwODUsIDB4MERGLCAweDAyMiwgMHgwMDMsIDB4MEU3LCAweDAwMSwKLQkweDA3RCwgMHgwQzAsIDB4MDVGLCAweDA3MCwgMHgwMTcsIDB4MEQxLCAweDAxNywgMHgwMzgsCi0JMHgwMTQsIDB4MDVCLCAweDBENiwgMHgwQTIsIDB4MDc0LCAweDAwRCwgMHgwNEIsIDB4MDdBLAotCTB4MEIzLCAweDAzMSwgMHgwOTYsIDB4MDk0LCAweDA2QiwgMHgwQ0MsIDB4MDM1LCAweDAyMywKLQkweDBENywgMHgwNDksIDB4MDQ4LCAweDAxNSwgMHgwNzMsIDB4MDI5LCAweDAwRiwgMHgwNUQsCi0JMHgwOEEsIDB4MEMwLCAweDA1RiwgMHgwNEQsIDB4MDc5LCAweDA4NCwgMHgwMzUsIDB4MDgwLAotCTB4MEJFLCAweDA4OCwgMHgwMUMsIDB4MEMzLCAweDA1MiwgMHgwOUYsIDB4MDU5LCAweDA2OCwKLQkweDBDMCwgMHgwMkMsIDB4MEUwLCAweDAzNiwgMHgwQUEsIDB4MDdCLCAweDBDRCwgMHgwNEEsCi0JMHgwOTIsIDB4MEJFLCAweDBGMywgMHgwODEsIDB4MDRBLCAweDA3RCwgMHgwNUIsIDB4MDU5LAotCTB4MDk0LCAweDBDQSwgMHgwMUMsIDB4MDI0LCAweDBFRSwgMHgwQzcsIDB4MDgwLCAweDBCRSwKLQkweDA4OCwgMHgwMUMsIDB4MEMzLCAweDA1MiwgMHgwOUYsIDB4MDU5LCAweDA2OCwgMHgwQzAsCi0JMHgwMkMsIDB4MEUwLCAweDAzNiwgMHgwQUEsIDB4MDdCLCAweDBDRCwgMHgwNEEsIDB4MDkyLAotCTB4MEJFLCAweDBGMywgMHgwODEsIDB4MDQzLCAweDA4NCwgMHgwOUMsIDB4MDdCLCAweDAzOCwKLQkweDAwQiwgMHgwRUIsIDB4MEFGLCAweDA3MCwgMHgwRDQsIDB4MEVBLCAweDA1MywgMHgwMDAsCi0JMHgwOUIsIDB4MDRGLCAweDA5QywgMHgwNTQsIDB4MDMwLCAweDBGMywgMHgwOEEsIDB4MDk0LAotCTB4MEZBLCAweDBCNiwgMHgwQjMsIDB4MDI5LCAweDA5NCwgMHgwMjIsIDB4MEU2LCAweDAxQSwKLQkweDA4NSwgMHgwRjksIDB4MEIwLCAweDA1OSwgMHgwOTMsIDB4MEY5LCAweDBEMiwgMHgwQzQsCi0JMHgwMzIsIDB4MDYwLCAweDBCOSwgMHgwMzYsIDB4MEIwLCAweDBCMywgMHgwOTAsIDB4MEQ5LAotCTB4MDc3LCAweDAyNiwgMHgwMUMsIDB4MDI3LCAweDAyMiwgMHgwRTgsIDB4MDk2LCAweDBCNCwKLQkweDAyMywgMHgwRUEsIDB4MDlFLCAweDBCNSwgMHgwMTEsIDB4MDgwLCAweDA1OSwgMHgwNjUsCi0JMHgwODYsIDB4MDIwLCAweDA3MywgMHgwOTYsIDB4MDhELCAweDA3OSwgMHgwQUQsIDB4MDU4LAotCTB4MDBCLCAweDBFOSwgMHgwMTcsIDB4MDQ0LCAweDA4QSwgMHgwNEEsIDB4MDA3LCAweDBENywKLQkweDA3QSwgMHgwODIsIDB4MEExLCAweDA5MCwgMHgwRkEsIDB4MEVGLCAweDAwMSwgMHgwNTQsCi0JMHgwQkEsIDB4MDUwLCAweDBENCwgMHgwNTksIDB4MDFFLCAweDAyQywgMHgwRTksIDB4MEYzLAotCTB4MDhBLCAweDA5OSwgMHgwODUsIDB4MDZCLCAweDAwQiwgMHgwMjMsIDB4MDE1LCAweDA5NywKLQkweDA3MiwgMHgwNjEsIDB4MDE3LCAweDAzMCwgMHgwRDQsIDB4MDJDLCAweDA3MywgMHgwODcsCi0JMHgwNDgsIDB4MEFBLCAweDAwMiwgMHgwODEsIDB4MDI1LCAweDBERSwgMHgwOTEsIDB4MDBELAotCTB4MDRBLCAweDBDMCwgMHgwNUYsIDB4MDdFLCAweDBEMiwgMHgwODAsIDB4MEE1LCAweDAzRSwKLQkweDBCMiwgMHgwRDAsIDB4MEM4LCAweDA2QiwgMHgwODAsIDB4MEJFLCAweDA4OCwgMHgwMUMsCi0JMHgwRUEsIDB4MDA5LCAweDAxNywgMHgwNDQsIDB4MDFBLCAweDAzNywgMHgwMUEsIDB4MDkxLAotCTB4MDc0LCAweDA1OCwgMHgwQTMsIDB4MDcxLCAweDBBRiwgMHgwMDcsIDB4MDQ0LCAweDA1NCwKLQkweDA2RSwgMHgwMzUsIDB4MEUwLCAweDBFOCwgMHgwQUEsIDB4MDY0LCAweDAwRiwgMHgwOTAsCi0JMHgwRkEsIDB4MEQwLCAweDA2MywgMHgwMDAsIDB4MEIzLCAweDA4MCwgMHgwREEsIDB4MDJDLAotCTB4MDczLCAweDA4NywgMHgwNDgsIDB4MEFBLCAweDAwMiwgMHgwODEsIDB4MDI1LCAweDBERSwKLQkweDA5MSwgMHgwMEQsIDB4MDRBLCAweDBDMCwgMHgwNUYsIDB4MDQ4LCAweDBCQSwgMHgwMjcsCi0JMHgwQTMsIDB4MDAwLCAweDBCNywgMHgwMDEsIDB4MEI3LCAweDA0RiwgMHgwOUMsIDB4MEI0LAotCTB4MDZCLCAweDBDQywgMHgwMzUsIDB4MDE2LCAweDBGNSwgMHgwNjYsIDB4MDYzLCAweDAyRCwKLQkweDAyOSwgMHgwMUUsIDB4MEJBLCAweDA0QSwgMHgwNDAsIDB4MEFCLCAweDA5OSwgMHgwNDgsCi0JMHgwN0EsIDB4MEVDLCAweDA1MCwgMHgwOEIsIDB4MDlDLCAweDAwOCwgMHgwMjIsIDB4MEZDLAotCTB4MEY5LCAweDBCMiwgMHgwNTUsIDB4MDNELCAweDA2MiwgMHgwQTksIDB4MDIzLCAweDA1MSwKLQkweDAyMywgMHgwOUMsIDB4MDBBLCAweDAzQywgMHgwNzMsIDB4MDBELCAweDA0NCwgMHgwNUMsCi0JMHgwRTEsIDB4MDUwLCAweDA3MSwgMHgwQ0UsIDB4MEExLCAweDAxRiwgMHgwRTcsIDB4MDE1LAotCTB4MDZCLCAweDAwQiwgMHgwMjUsIDB4MEVELCAweDAwQiwgMHgwOTMsIDB4MDYwLCAweDAyRiwKLQkweDBBQSwgMHgwOUUsIDB4MEFDLCAweDAzNiwgMHgwNjUsIDB4MDQ5LCAweDA1RiwgMHgwN0EsCi0JMHgwMjAsIDB4MDUwLCAweDAwOCwgMHgwN0YsIDB4MEVGLCAweDAzOSwgMHgwMTQsIDB4MDQ5LAotCTB4MDAxLCAweDAxMSwgMHgwODEsIDB4MDA0LCAweDA2MCwgMHgwNDAsIDB4MENDLCAweDA1OSwKLQkweDBDMCwgMHgwQUQsIDB4MDIzLCAweDBFQiwgMHgwNDEsIDB4MEIwLCAweDA4MSwgMHgwRjIsCi0JMHgwM0EsIDB4MDQxLCAweDBBQSwgMHgwNTAsIDB4MDQzLCAweDBFNCwgMHgwRDQsIDB4MDg2LAotCTB4MDU0LCAweDBBMCwgMHgwODcsIDB4MEMxLCAweDA1MiwgMHgwQ0EsIDB4MDkzLCAweDAwMSwKLQkweDAzMiwgMHgwNTQsIDB4MDlELCAweDAyNCwgMHgwMDIsIDB4MDAwLCAweDAwMCwgMHgwNTIsCi0JMHgwQUYsIDB4MDE2LCAweDA0NiwgMHgwQTcsIDB4MDkxLCAweDA2NywgMHgwMDgsIDB4MEI0LAotCTB4MDA0LCAweDA1MSwgMHgwRjEsIDB4MDY1LCAweDAxOSwgMHgwQjQsIDB4MDZFLCAweDAyRCwKLQkweDBDMCwgMHgwQUQsIDB4MDQ5LCAweDAwMCwgMHgwOTIsIDB4MDU3LCAweDAxQiwgMHgwNzQsCi0JMHgwNDUsIDB4MDVGLCAweDAyMywgMHgwNTEsIDB4MEI3LCAweDA0NCwgMHgwMEEsIDB4MDEwLAotCTB4MDA2LCAweDBBMywgMHgwNkUsIDB4MDhCLCAweDA2QiwgMHgwMDgsIDB4MDFGLCAweDAxOSwKLQkweDBEMSwgMHgwRTYsIDB4MDgwLCAweDA4MiwgMHgwODAsIDB4MDU0LCAweDAwNCwgMHgwMkEsCi0JMHgwNDUsIDB4MDkxLCAweDBBOSwgMHgwRTQsIDB4MDU5LCAweDBDMiwgMHgwMkQsIDB4MDAxLAotCTB4MDE0LCAweDAwNCwgMHgwNTAsIDB4MEQzLCAweDBGQywgMHgwNTUsIDB4MDg0LCAweDA2MSwKLQkweDBEOSwgMHgwODAsIDB4MDUxLCAweDAyRiwgMHgwRTIsIDB4MDFGLCAweDA0NiwgMHgwNUYsCi0JMHgwNDAsIDB4MEUwLCAweDAyMCwgMHgwMTUsIDB4MDRBLCAweDBCQywgMHgwNTksIDB4MDFBLAotCTB4MDlFLCAweDA0NSwgMHgwOUMsIDB4MDIyLCAweDBEMCwgMHgwMTEsIDB4MDQ4LCAweDBDQiwKLQkweDBFOCwgMHgwMTQsIDB4MDA4LCAweDAwMSwgMHgwNTQsIDB4MDE1LCAweDBFMiwgMHgwQzgsCi0JMHgwRDQsIDB4MEYyLCAweDAyQywgMHgwRTEsIDB4MDE2LCAweDA4MCwgMHgwOEEsIDB4MDQ2LAotCTB4MDVGLCAweDA1MiwgMHgwN0MsIDB4MEQ5LCAweDBBOCwgMHgwRjgsIDB4MDg4LCAweDBEMCwKLQkweDA1QSwgMHgwM0MsIDB4MEQyLCAweDA1QywgMHgwNUIsIDB4MDgwLCAweDBEQSwgMHgwQTcsCi0JMHgwRDYsIDB4MDVBLCAweDAwOCwgMHgwODYsIDB4MEE0LCAweDA1RCwgMHgwMTcsIDB4MEEwLAotCTB4MEMzLCAweDA1MiwgMHgwMkUsIDB4MDg4LCAweDBBOCwgMHgwMjIsIDB4MDFGLCAweDA1MywKLQkweDBFQSwgMHgwREEsIDB4MENDLCAweDBBNiwgMHgwNTAsIDB4MEUxLCAweDAyNywgMHgwNzYsCi0JMHgwM0MsIDB4MDA1LCAweDBGNSwgMHgwNEYsIDB4MEFCLCAweDA2QiwgMHgwMzIsIDB4MDk5LAotCTB4MDQzLCAweDA4NCwgMHgwOUMsIDB4MDdCLCAweDAzOCwgMHgwMEIsIDB4MEU5LCAweDAyNywKLQkweDBBQywgMHgwRDQsIDB4MDkyLCAweDBFMCwgMHgwMEUsIDB4MERBLCAweDAzOCwgMHgwNEQsCi0JMHgwODAsIDB4MEJFLCAweDBFNiwgMHgwN0QsIDB4MDUwLCAweDBCQSwgMHgwNTEsIDB4MEFFLAotCTB4MDY2LCAweDBFRiwgMHgwQkMsIDB4MERDLCAweDA3QiwgMHgwODcsIDB4MDFFLCAweDAwMiwKLQkweDBGQSwgMHgwOTMsIDB4MEU2LCAweDBDRCwgMHgwNDcsIDB4MEM0LCAweDA0MywgMHgwQ0QsCi0JMHgwMEYsIDB4MDM0LCAweDA5RCwgMHgwQTMsIDB4MDAwLCAweDBCMCwgMHgwNTUsIDB4MDAxLAotCTB4MEFFLCAweDAwMywgMHgwODQsIDB4MDA0LCAweDBDRSwgMHgwMDEsIDB4MEQwLCAweDBFMSwKLQkweDA3MCwgMHgwMDIsIDB4MDgwLCAweDAwRSwgMHgwODksIDB4MEU5LCAweDAyMiwgMHgwMUYsCi0JMHgwRTAsIDB4MEU4LCAweDA5NiwgMHgwQjAsIDB4MDExLCAweDBGNCwgMHgwQzIsIDB4MENFLAotCTB4MDAzLCAweDA2QSwgMHgwNDQsIDB4MDJELCAweDBDMCwgMHgwNkQsIDB4MDQ4LCAweDAwNSwKLQkweDBCOCwgMHgwMEQsIDB4MEEzLCAweDAwMCwgMHgwQjcsIDB4MDc2LCAweDBENSwgMHgwREUsCi0JMHgwQjEsIDB4MDUwLCAweDBEQywgMHgwN0QsIDB4MDc3LCAweDBCQywgMHgwNTQsIDB4MEJBLAotCTB4MDUyLCAweDA3RiwgMHgwNTgsIDB4MDE0LCAweDAzNCwgMHgwMEYsIDB4MDlBLCAweDBGMywKLQkweDA4MSwgMHgwNTgsIDB4MDBCLCAweDBFQSwgMHgwRUYsIDB4MDU4LCAweDAxNCwgMHgwNjAsCi0JMHgwMTYsIDB4MEE1LCAweDA2QywgMHgwMkUsIDB4MEY3LCAweDA4MSwgMHgwNEIsIDB4MEE1LAotCTB4MDZGLCAweDA3RCwgMHgwNUQsIDB4MEVFLCAweDBCNSwgMHgwMkUsIDB4MDk1LCAweDA4MCwKLQkweDBCRSwgMHgwRjAsIDB4MDczLCAweDBCRCwgMHgwMDQsIDB4MDdDLCAweDBFQSwgMHgwRkUsCi0JMHgwRUIsIDB4MDRDLCAweDBERSwgMHgwMjksIDB4MDUzLCAweDBERCwgMHgwNkEsIDB4MDU0LAotCTB4MDk0LCAweDBBOSwgMHgwRUEsIDB4MDBBLCAweDA4QywgMHgwMDIsIDB4MEQ2LCAweDA0QywKLQkweDAzQywgMHgwMDUsIDB4MEY0LCAweDAwMCwgMHgwRUEsIDB4MENELCAweDA1NiwgMHgwQUYsCi0JMHgwQzAsIDB4MDQ3LCAweDBEMiwgMHgwOUMsIDB4MDhELCAweDAyOSwgMHgwQ0EsIDB4MEUwLAotCTB4MDJGLCAweDBBRSwgMHgwQkQsIDB4MDc1LCAweDA5OSwgMHgwOUQsIDB4MDRBLCAweDBGOSwKLQkweDBFRiwgMHgwNTEsIDB4MDdDLCAweDA5NCwgMHgwMEMsIDB4MDc3LCAweDA4MCwgMHgwMTgsCi0JMHgwMTgsIDB4MDI5LCAweDAyQSwgMHgwRjgsIDB4MEUwLCAweDBFOCwgMHgwQUEsIDB4MDMwLAotCTB4MDBCLCAweDAyQSwgMHgwOTgsIDB4MDdDLCAweDAxRCwgMHgwMTEsIDB4MDUxLCAweDA4MCwKLQkweDA1OSwgMHgwNTQsIDB4MEMzLCAweDA1MSwgMHgwRjUsIDB4MDFCLCAweDAzMywgMHgwMjQsCi0JMHgwQkIsIDB4MDgyLCAweDBBNSwgMHgwMTksIDB4MDVDLCAweDAxRCwgMHgwMTAsIDB4MDI4LAotCTB4MEMwLCAweDAyQywgMHgwOUEsIDB4MEM3LCAweDBDMSwgMHgwRDEsIDB4MDIyLCAweDA4QywKLQkweDAwMiwgMHgwQzksIDB4MDk0LCAweDA2NCwgMHgwNUMsIDB4MDBDLCAweDBENiwgMHgwOEUsCi0JMHgwMTMsIDB4MDYwLCAweDAyRiwgMHgwQjgsIDB4MDBCLCAweDBFQSwgMHgwMzAsIDB4MEUzLAotCTB4MEMwLCAweDA1RiwgMHgwNDgsIDB4MERDLCAweDA3OCwgMHgwMEIsIDB4MEU4LCAweDAwMCwKLQkweDBFMywgMHgwQzAsIDB4MDVGLCAweDA2QywgMHgwMzgsIDB4MEQ1LCAweDAyRSwgMHgwMzUsCi0JMHgwNEYsIDB4MDVBLCAweDA4QSwgMHgwNjEsIDB4MEFBLCAweDA5RiwgMHgwNTYsIDB4MDFCLAotCTB4MDMyLCAweDA5OSwgMHgwNDYsIDB4MDQyLCAweDBDOCwgMHgwMDEsIDB4MDBDLCAweDA0NSwKLQkweDBDRSwgMHgwQTUsIDB4MDE3LCAweDBFNiwgMHgwQzYsIDB4MENFLCAweDBBOSwgMHgwRUIsCi0JMHgwMTUsIDB4MDE2LCAweDA0NiwgMHgwQTIsIDB4MDQ3LCAweDAzOCwgMHgwMTQsIDB4MDQzLAotCTB4MDI2LCAweDAyMiwgMHgwRTcsIDB4MDNELCAweDA2MCwgMHgwMkYsIDB4MEFBLCAweDA5RSwKLQkweDBCNSwgMHgwMTIsIDB4MEUwLCAweDA3RiwgMHgwMDEsIDB4MDdELCAweDBFMywgMHgwRTcsCi0JMHgwMDIsIDB4MDkzLCAweDBGOSwgMHgwOTUsIDB4MDQ0LCAweDA1QywgMHgwRTUsIDB4MEEwLAotCTB4MEUzLCAweDA5RCwgMHgwNEEsIDB4MDdGLCAweDA5QywgMHgwNTQsIDB4MEE5LCAweDBFQiwKLQkweDA1MSwgMHgwMDUsIDB4MDQ2LCAweDBCOSwgMHgwRkMsIDB4MEMwLCAweDAxQiwgMHgwMjIsCi0JMHgwMkUsIDB4MDY0LCAweDA1NCwgMHgwMkYsIDB4MENELCAweDA0NiwgMHgwQ0MsIDB4MEE3LAotCTB4MEQ1LCAweDA4NiwgMHgwQ0MsIDB4MEE2LCAweDA1MCwgMHgwNTUsIDB4MEM2LCAweDA0NSwKLQkweDBDRSwgMHgwNUEsIDB4MDBFLCAweDAzOSwgMHgwRDQsIDB4MEE3LCAweDBGOSwgMHgwQzUsCi0JMHgwNEEsIDB4MDlFLCAweDBCNSwgMHgwMTEsIDB4MDgwLCAweDA1OSwgMHgwQzAsIDB4MDZELAotCTB4MENGLCAweDBFNiwgMHgwMDAsIDB4MEQ5LCAweDAxMSwgMHgwNzMsIDB4MDIyLCAweDBBMSwKLQkweDA3RSwgMHgwNkEsIDB4MDM2LCAweDA2NSwgMHgwM0UsIDB4MEFDLCAweDAzNiwgMHgwNjUsCi0JMHgwMzIsIDB4MEIwLCAweDAxNywgMHgwREQsIDB4MDNFLCAweDA3MiwgMHgwRDIsIDB4MDc5LAotCTB4MDMxLCAweDAwQywgMHgwOTgsIDB4MDJFLCAweDA0QywgMHgwMjAsIDB4MDczLCAweDAyQSwKLQkweDA4RiwgMHgwRjMsIDB4MDhBLCAweDBBRCwgMHgwRTcsIDB4MDQxLCAweDA4MiwgMHgwN0MsCi0JMHgwQ0EsIDB4MEE2LCAweDA4OSwgMHgwQjUsIDB4MDg1LCAweDA5RiwgMHgwQjAsIDB4MEYwLAotCTB4MDE3LCAweDBENSwgMHgwMUYsIDB4MDU0LCAweDA1NCwgMHgwMjUsIDB4MDFBLCAweDBBOCwKLQkweDBGRiwgMHgwMkEsIDB4MDk0LCAweDA2NSwgMHgwMTEsIDB4MEQ3LCAweDA0OSwgMHgwNDQsCi0JMHgwRDUsIDB4MENDLCAweDBBMCwgMHgwNTUsIDB4MEQ4LCAweDBBRSwgMHgwMEUsIDB4MDg4LAotCTB4MDE0LCAweDA2MCwgMHgwMTYsIDB4MDRELCAweDA2MywgMHgwMjIsIDB4MEUwLCAweDA3MiwKLQkweDA4NiwgMHgwMzgsIDB4MDRELCAweDA4MCwgMHgwQkUsIDB4MEUwLCAweDAyRiwgMHgwQjgsCi0JMHgwMEIsIDB4MEVFLCAweDAwMiwgMHgwRkIsIDB4MDgxLCAweDAzOCwgMHgwRjAsIDB4MDE3LAotCTB4MEQ3LCAweDBENywgMHgwMUUsIDB4MDAyLCAweDBGQSwgMHgwRkEsIDB4MEUzLCAweDBDMCwKLQkweDA1RiwgMHgwNEMsIDB4MDg1LCAweDA5MCwgMHgwMDIsIDB4MDE4LCAweDBDOCwgMHgwNUIsCi0JMHgwODAsIDB4MERBLCAweDAzMCwgMHgwMEIsIDB4MDcwLCAweDAxQiwgMHgwNEMsIDB4MDIyLAotCTB4MEQzLCAweDA0QywgMHgwMzMsIDB4MDAzLCAweDA4QywgMHgwMkUsIDB4MDRDLCAweDA0MywKLQkweDAyNiwgMHgwRDAsIDB4MEY1LCAweDA2MywgMHgwNjYsIDB4MEQwLCAweDA5NSwgMHgwQTcsCi0JMHgwQ0UsIDB4MDQ1LCAweDAzMywgMHgwMEEsIDB4MEQ2LCAweDAxNiwgMHgwNDIsIDB4MDM4LAotCTB4MDZFLCAweDBFNCwgMHgwQ0UsIDB4MEJELCAweDA1OSwgMHgwMkMsIDB4MEQyLCAweDBBQiwKLQkweDBCQSwgMHgwOTQsIDB4MDlELCAweDBFNiwgMHgwMUEsIDB4MEIwLCAweDAxNywgMHgwRDUsCi0JMHgwNEYsIDB4MDVBLCAweDA4QiwgMHgwMDksIDB4MDFBLCAweDA4OCwgMHgwQjksIDB4MEM1LAotCTB4MDQyLCAweDA0NywgMHgwMzAsIDB4MEQ0LCAweDAzMiwgMHgwMTYsIDB4MDcyLCAweDA4OCwKLQkweDA2NSwgMHgwQkQsIDB4MDU5LCAweDA5OSwgMHgwMjUsIDB4MEE1LCAweDA2MCwgMHgwMkYsCi0JMHgwQjgsIDB4MDYwLCAweDBGMywgMHgwMDgsIDB4MEI3LCAweDA0QSwgMHgwMUEsIDB4MDhGLAotCTB4MEFCLCAweDAwRCwgMHgwOTksIDB4MDQ2LCAweDA1MSwgMHgwQUYsIDB4MDM4LCAweDBBOCwKLQkweDA4RSwgMHgwOTAsIDB4MDY1LCAweDAxMywgMHgwNTIsIDB4MDE4LCAweDBBMCwgMHgwNTQsCi0JMHgwQjEsIDB4MDQyLCAweDAyRSwgMHgwNjEsIDB4MEE4LCAweDA0OCwgMHgwRTcsIDB4MDJELAotCTB4MDE2LCAweDBGNywgMHgwQTgsIDB4MDA1LCAweDBBNSwgMHgwNjAsIDB4MDJGLCAweDBBNCwKLQkweDA3NSwgMHgwRDIsIDB4MDUxLCAweDAzNSwgMHgwNzMsIDB4MDI4LCAweDAxNSwgMHgwNzYsCi0JMHgwMkIsIDB4MDgzLCAweDBBMiwgMHgwMDUsIDB4MDE4LCAweDAwNSwgMHgwOTMsIDB4MDU4LAotCTB4MEM4LCAweDBCOCwgMHgwMDYsIDB4MDI4LCAweDA2MywgMHgwODQsIDB4MEQ4LCAweDAwQiwKLQkweDBFRSwgMHgwMDIsIDB4MEZCLCAweDA4MCwgMHgwQkUsIDB4MEUwLCAweDAyRiwgMHgwQTAsCi0JMHgwNDMsIDB4MEE3LCAweDAwMSwgMHgwN0QsIDB4MDRDLCAweDBFMywgMHgwQzAsIDB4MDVGLAotCTB4MDcwLCAweDAxNywgMHgwREMsIDB4MDA1LCAweDBGNCwgMHgwNjQsIDB4MDJELCAweDBDMCwKLQkweDA2RCwgMHgwMTgsIDB4MDA1LCAweDBCOCwgMHgwMEQsIDB4MEE1LCAweDBCRCwgMHgwNkEsCi0JMHgwMjMsIDB4MDg2LCAweDBBQSwgMHgwOUUsIDB4MEI1LCAweDAxMSwgMHgwQTQsIDB4MDZBLAotCTB4MEEzLCAweDBFQSwgMHgwOEEsIDB4MDhELCAweDAyMywgMHgwRTEsIDB4MDE3LCAweDAzOCwKLQkweDAzNCwgMHgwNjksIDB4MDcxLCAweDA5OCwgMHgwNDUsIDB4MEE2LCAweDA5OCwgMHgwNkEsCi0JMHgwM0UsIDB4MEFDLCAweDAzNiwgMHgwNjUsIDB4MDE5LCAweDA0NiwgMHgwQkMsIDB4MEUyLAotCTB4MEEyLCAweDAzQSwgMHgwNDEsIDB4MDk0LCAweDA0RCwgMHgwNDgsIDB4MDYyLCAweDA4MSwKLQkweDA1MiwgMHgwQzUsIDB4MDE2LCAweDBGNywgMHgwQTgsIDB4MDhCLCAweDA0QSwgMHgwNTQsCi0JMHgwRjUsIDB4MEE4LCAweDA4QywgMHgwMDIsIDB4MERDLCAweDAwNiwgMHgwRDEsIDB4MDAzLAotCTB4MDlDLCAweDBCNCwgMHgwQTksIDB4MEVFLCAweDAwQSwgMHgwOTUsIDB4MDI1LCAweDAyQSwKLQkweDA3QSwgMHgwQUQsIDB4MDQ2LCAweDAwMSwgMHgwNjcsIDB4MDAxLCAweDBCNSwgMHgwRDcsCi0JMHgwQUMsIDB4MDBBLCAweDAzMCwgMHgwMEIsIDB4MDZDLCAweDA0OSwgMHgwMzUsIDB4MEU2LAotCTB4MEI1LCAweDA2NywgMHgwRjMsIDB4MDAwLCAweDA2QywgMHgwODgsIDB4MEI5LCAweDA5MSwKLQkweDA1MCwgMHgwQkYsIDB4MDMxLCAweDAxQiwgMHgwMzIsIDB4MEE3LCAweDBCOCwgMHgwNjgsCi0JMHgwOTUsIDB4MDI1LCAweDA3QiwgMHgwQUQsIDB4MDMzLCAweDA3OCwgMHgwQTcsIDB4MENELAotCTB4MDNFLCAweDBEMywgMHgwOEUsIDB4MDlELCAweDAzNCwgMHgwRTcsIDB4MDRFLCAweDBENCwKLQkweDAyMiwgMHgwRTcsIDB4MDA2LCAweDA4NCwgMHgwOEUsIDB4MDYwLCAweDBBOCwgMHgwRkYsCi0JMHgwMzgsIDB4MEFCLCAweDA4MywgMHgwOUMsIDB4MDJBLCAweDAwOCwgMHgwRjksIDB4MEQ0LAotCTB4MDIwLCAweDA2MywgMHgwQkMsIDB4MDFBLCAweDAwNiwgMHgwMEEsIDB4MEMwLCAweDA1RiwKLQkweDA0NiwgMHgwNDIsIDB4MERDLCAweDAwNiwgMHgwRDEsIDB4MDgwLCAweDA1QiwgMHgwODAsCi0JMHgwREEsIDB4MDIyLCAweDBFNiwgMHgwMUEsIDB4MDg0LCAweDA4RSwgMHgwNzIsIDB4MEQxLAotCTB4MDZGLCAweDA1QSwgMHgwODAsIDB4MDg3LCAweDAxQSwgMHgwQUEsIDB4MDdBLCAweDBENCwKLQkweDA0OCwgMHgwQzgsIDB4MEQ1LCAweDA0NywgMHgwRDUsIDB4MDE1LCAweDAyMywgMHgwMjMsCi0JMHgwRTEsIDB4MDE3LCAweDAzOCwgMHgwMzQsIDB4MDhDLCAweDBCQSwgMHgwNEIsIDB4MDdCLAotCTB4MEQ0LCAweDAwMiwgMHgwRDIsIDB4MDhDLCAweDAyMiwgMHgwREMsIDB4MDA2LCAweDBENSwKLQkweDAxRiwgMHgwNTYsIDB4MDFCLCAweDAzMiwgMHgwOEMsIDB4MEEzLCAweDA1RSwgMHgwNzEsCi0JMHgwNTEsIDB4MDFELCAweDAyMCwgMHgwQ0EsIDB4MDI2LCAweDBBNCwgMHgwMzEsIDB4MDQwLAotCTB4MEE5LCAweDA2MiwgMHgwQjAsIDB4MDE3LCAweDBERiwgMHgwOUUsIDB4MEY0LCAweDBCNywKLQkweDBDOSwgMHgwNDAsIDB4MEM3LCAweDA3OCwgMHgwMDEsIDB4MDgxLCAweDA4MiwgMHgwQjgsCi0JMHgwMzgsIDB4MDM5LCAweDA0OSwgMHgwMUMsIDB4MDI2LCAweDBDMCwgMHgwNUYsIDB4MDcwLAotCTB4MDE3LCAweDBENCwgMHgwQUIsIDB4MEUxLCAweDAyQSwgMHgwRjgsIDB4MDRBLCAweDBCRSwKLQkweDAxMiwgMHgwQUYsIDB4MDhGLCAweDA5NywgMHgwNEYsIDB4MENCLCAweDBBNywgMHgwMDEsCi0JMHgwN0QsIDB4MERBLCAweDA4MCwgMHgwQUEsIDB4MDkxLCAweDA2NCwgMHgwN0YsIDB4MDRBLAotCTB4MDgxLCAweDBENSwgMHgwMjIsIDB4MEM4LCAweDBGRSwgMHgwODIsIDB4MDgwLCAweDAyNSwKLQkweDA0OCwgMHgwQjIsIDB4MDNFLCAweDBCQiwgMHgwREMsIDB4MDM1LCAweDAyRSwgMHgwOTQsCi0JMHgwMDcsIDB4MEU4LCAweDA4QSwgMHgwOUMsIDB4MDAzLCAweDBFMiwgMHgwNEIsIDB4MEE1LAotCTB4MDc3LCAweDBBQiwgMHgwQjMsIDB4MDMyLCAweDBFOSwgMHgwNEIsIDB4MEJELCAweDA1OSwKLQkweDA4NiwgMHgwODQsIDB4MDk3LCAweDA3QSwgMHgwMDQsIDB4MEJBLCAweDA1MywgMHgwRTEsCi0JMHgwMzIsIDB4MEVGLCAweDA1MCwgMHgwRDQsIDB4MEU2LCAweDAzNSwgMHgwNTMsIDB4MEVCLAotCTB4MDAyLCAweDA5QywgMHgwQzcsIDB4MEQ3LCAweDA3QSwgMHgwQjMsIDB4MDMwLCAweDBEMiwKLQkweDA1RCwgMHgwRUEsIDB4MDAyLCAweDBFOSwgMHgwNDQsIDB4MDVELCAweDAxNiwgMHgwMjgsCi0JMHgwQzAsIDB4MDJDLCAweDBFMCwgMHgwMzYsIDB4MDkxLCAweDA3NCwgMHgwNDUsIDB4MDU5LAotCTB4MDE4LCAweDBENSwgMHgwNEYsIDB4MEFDLCAweDAwQSwgMHgwQzQsIDB4MDM1LCAweDAzMCwKLQkweDA4QiwgMHgwMzgsIDB4MDY5LCAweDAyQiwgMHgwQkQsIDB4MDU5LCAweDA5OCwgMHgwNjksCi0JMHgwMkUsIDB4MEY1LCAweDAxMiwgMHgwRTksIDB4MDU4LCAweDA2NywgMHgwNEEsIDB4MEVGLAotCTB4MDUwLCAweDBENSwgMHgwOEUsIDB4MDNFLCAweDAxQywgMHgwQTQsIDB4MEIwLCAweDBDRSwKLQkweDA5MywgMHgwMjEsIDB4MDZFLCAweDAxQSwgMHgwNDgsIDB4MDFGLCAweDBBMiwgMHgwMkEsCi0JMHgwQzMsIDB4MDBELCAweDA1NywgMHgwN0EsIDB4MEIzLCAweDAwRCwgMHgwMDksIDB4MDJFLAotCTB4MEY0LCAweDA0MywgMHgwNUQsIDB4MDI4LCAweDA4QiwgMHgwODMsIDB4MDIwLCAweDA5MiwKLQkweDAzOCwgMHgwNEQsIDB4MDgwLCAweDBCRSwgMHgwRTAsIDB4MDJGLCAweDBBQywgMHgwMTcsCi0JMHgwNDksIDB4MEIzLCAweDBBNSwgMHgwODIsIDB4MEU5LCAweDAzRSwgMHgwRTksIDB4MDM2LAotCTB4MDc0LCAweDBFMCwgMHgwMkYsIDB4MEE2LCAweDBDRSwgMHgwOUMsIDB4MDA1LCAweDBGNCwKLQkweDBDMiwgMHgwMkMsIDB4MDhDLCAweDA1MiwgMHgwNTcsIDB4MDdBLCAweDBENCwgMHgwOEQsCi0JMHgwNDgsIDB4MEZBLCAweDBFRiwgMHgwNTAsIDB4MEQ1LCAweDBBRSwgMHgwMzUsIDB4MDUzLAotCTB4MEVCLCAweDAwMiwgMHgwODYsIDB4MDIxLCAweDBBQSwgMHgwRUYsIDB4MDU2LCAweDA2NiwKLQkweDAxQSwgMHgwNEIsIDB4MEJELCAweDA0NCwgMHgwQkEsIDB4MDUwLCAweDBDNCwgMHgwRTksCi0JMHgwNTMsIDB4MEVCLCAweDAwMiwgMHgwODYsIDB4MDgxLCAweDBGNSwgMHgwREUsIDB4MEExLAotCTB4MEE4LCAweDA2MiwgMHgwMUYsIDB4MDVELCAweDBGRSwgMHgwQTIsIDB4MDVELCAweDAyOSwKLQkweDA3NywgMHgwQTgsIDB4MDZBLCAweDA2MSwgMHgwOEQsIDB4MDQwLCAweDBGRCwgMHgwMTEsCi0JMHgwNTMsIDB4MDBDLCAweDA2QSwgMHgwQTcsIDB4MEQ2LCAweDAwNSwgMHgwMzAsIDB4MEM3LAotCTB4MEQ3LCAweDA3RiwgMHgwQTksIDB4MDU3LCAweDA0QSwgMHgwNUQsIDB4MEVCLCAweDA0OCwKLQkweDAxQiwgMHgwMEMsIDB4MDdDLCAweDA4QiwgMHgwOUQsIDB4MDhBLCAweDA1MywgMHgwRUYsCi0JMHgwNjYsIDB4MDk0LCAweDBDQSwgMHgwNTQsIDB4MEY1LCAweDBBMCwgMHgwQzYsIDB4MDAxLAotCTB4MDZFLCAweDAwMywgMHgwNkEsIDB4MDlGLCAweDA1NiwgMHgwNzYsIDB4MDY1LCAweDAzMiwKLQkweDA4QiwgMHgwN0IsIDB4MEQyLCAweDBDNSwgMHgwQTUsIDB4MDYwLCAweDAyRiwgMHgwQUEsCi0JMHgwN0QsIDB4MDY1LCAweDBBMywgMHgwMDAsIDB4MEI3LCAweDAwMSwgMHgwQjQsIDB4MEM4LAotCTB4MDVBLCAweDAwNywgMHgwOEYsIDB4MEVELCAweDAwMSwgMHgwRDUsIDB4MDI3LCAweDA5MSwKLQkweDA2NywgMHgwMDEsIDB4MEI0LCAweDA4QiwgMHgwOUMsIDB4MDU0LCAweDAxQywgMHgwNzMsCi0JMHgwQTgsIDB4MDg0LCAweDA1QywgMHgwQzEsIDB4MDUwLCAweDBCRiwgMHgwMzYsIDB4MDU2LAotCTB4MDYwLCAweDBBQiwgMHgwOEMsIDB4MDhCLCAweDA5QywgMHgwNTQsIDB4MDFDLCAweDA3MywKLQkweDBBOCwgMHgwODQsIDB4MDVDLCAweDBDMSwgMHgwNTAsIDB4MEJGLCAweDAzNiwgMHgwNTYsCi0JMHgwNkMsIDB4MDA1LCAweDBGNSwgMHgwNTMsIDB4MEQ2LCAweDBBMiwgMHgwMzAsIDB4MDBCLAotCTB4MDI5LCAweDA1QiwgMHgwMTksIDB4MEZDLCAweDBGNiwgMHgwOTQsIDB4MDQ1LCAweDBDRiwKLQkweDAxNSwgMHgwMEIsIDB4MEYzLCAweDAzQywgMHgwQjMsIDB4MDJBLCAweDA3QSwgMHgwQzUsCi0JMHgwNDYsIDB4MDAxLCAweDA2NCwgMHgwOEEsIDB4MDMxLCAweDAyMywgMHgwOUMsIDB4MDBBLAotCTB4MDVELCAweDBFQSwgMHgwMzQsIDB4MDMzLCAweDAyRSwgMHgwOTUsIDB4MEM3LCAweDBDRSwKLQkweDAyQSwgMHgwNEYsIDB4MEU2LCAweDA1MCwgMHgwMjAsIDB4MEI5LCAweDAzMSwgMHgwMEMsCi0JMHgwOUIsIDB4MEVGLCAweDAzOSwgMHgwMTQsIDB4MDQ1LCAweDBDRSwgMHgwNDUsIDB4MDA3LAotCTB4MDFDLCAweDBFQSwgMHgwNDYsIDB4MDg3LCAweDBBQiwgMHgwMUIsIDB4MDM2LCAweDA4NCwKLQkweDBBNywgMHgwNUUsIDB4MEFDLCAweDA5NiwgMHgwNjcsIDB4MDUyLCAweDBCMCwgMHgwMTcsCi0JMHgwREMsIDB4MEZFLCAweDA3QiwgMHgwNEEsIDB4MDIyLCAweDBFNywgMHgwOEEsIDB4MDg1LAotCTB4MEY5LCAweDA5RSwgMHgwNTksIDB4MDk3LCAweDA3QSwgMHgwOEQsIDB4MDBDLCAweDBDQiwKLQkweDBBNSwgMHgwMjcsIDB4MEYzLCAweDBBMCwgMHgwNDQsIDB4MDMyLCAweDA2MCwgMHgwQjksCi0JMHgwMzcsIDB4MERFLCAweDA3MiwgMHgwMjgsIDB4MDhCLCAweDA5QywgMHgwOEEsIDB4MDBFLAotCTB4MDM5LCAweDBENCwgMHgwOEMsIDB4MDA1LCAweDBGNywgMHgwRTcsIDB4MEI4LCAweDAyQSwKLQkweDBGOSwgMHgwMjgsIDB4MDE4LCAweDBFRiwgMHgwMDAsIDB4MDMwLCAweDAzMCwgMHgwNTcsCi0JMHgwMDcsIDB4MDQ0LCAweDAwQSwgMHgwNTAsIDB4MDhGLCAweDBGMCwgMHgwNzMsIDB4MDkxLAotCTB4MDQxLCAweDAxRiwgMHgwM0EsIDB4MDkwLCAweDA0NSwgMHgwQzAsIDB4MEJCLCAweDAxOCwKLQkweDBFMSwgMHgwMzYsIDB4MDAyLCAweDBGQiwgMHgwRkIsIDB4MDlFLCAweDAwMiwgMHgwRkEsCi0JMHgwRUUsIDB4MEU3LCAweDBGNSwgMHgwQ0YsIDB4MDAxLCAweDA3RCwgMHgwMTAsIDB4MDVDLAotCTB4MEYwLCAweDAxNywgMHgwRDEsIDB4MDA1LCAweDBDRiwgMHgwMDEsIDB4MDdELCAweDA1MywKLQkweDBFQiwgMHgwMkQsIDB4MDE4LCAweDAwNSwgMHgwQjgsIDB4MDBELCAweDBBNiwgMHgwNDIsCi0JMHgwREMsIDB4MDA2LCAweDBEMywgMHgwMTcsIDB4MDM1LCAweDBBOCwgMHgwOEIsIDB4MDlDLAotCTB4MDBBLCAweDAwRSwgMHgwMzksIDB4MEQ0LCAweDAwQywgMHgwRkUsIDB4MDdCLCAweDA0QSwKLQkweDAyMiwgMHgwRTYsIDB4MDU1LCAweDAwQiwgMHgwRjMsIDB4MDMxLCAweDBCMywgMHgwNjAsCi0JMHgwMkYsIDB4MEJDLCAweDA3QywgMHgwRTIsIDB4MEE0LCAweDBGRSwgMHgwNjUsIDB4MDUxLAotCTB4MDE3LCAweDAzOCwgMHgwMTQsIDB4MDFDLCAweDA3MywgMHgwQTgsIDB4MDE5LCAweDBGQywKLQkweDBGNiwgMHgwOTQsIDB4MDQ1LCAweDBDQywgMHgwQUEsIDB4MDE3LCAweDBFNiwgMHgwNjMsCi0JMHgwNjYsIDB4MDBBLCAweDBCOCwgMHgwQ0MsIDB4MDg1LCAweDBBMSwgMHgwNTgsIDB4MEY2LAotCTB4MEEyLCAweDAzNSwgMHgwNDgsIDB4MDQ4LCAweDA3RiwgMHgwNEEsIDB4MDg5LCAweDA5NSwKLQkweDAyMSwgMHgwMjEsIDB4MEZELCAweDAwNSwgMHgwMDIsIDB4MDU0LCAweDA5RSwgMHgwNDUsCi0JMHgwOTEsIDB4MDBFLCAweDAzQywgMHgwMDUsIDB4MEY1LCAweDAwNywgMHgwNDAsIDB4MDU1LAotCTB4MDQ4LCAweDA1MiwgMHgwM0UsIDB4MDg2LCAweDBBMCwgMHgwNzUsIDB4MDQ4LCAweDA1MiwKLQkweDAzRSwgMHgwQjUsIDB4MDAwLCAweDA0QSwgMHgwOUMsIDB4MDAwLCAweDA2QiwgMHgwQzcsCi0JMHgwQ0UsIDB4MDQ1LCAweDAyNywgMHgwRjMsIDB4MDJBLCAweDA4NCwgMHgwMzcsIDB4MDM1LAotCTB4MERFLCAweDBBMCwgMHgwQUIsIDB4MDIzLCAweDAxQSwgMHgwQUUsIDB4MEY1LCAweDA4MywKLQkweDA1OSwgMHgwMTgsIDB4MEQ3LCAweDA0MywgMHgwREUsIDB4MDJBLCAweDBEMCwgMHgwOTQsCi0JMHgwRUIsIDB4MERFLCAweDAwNSwgMHgwM0EsIDB4MDk1LCAweDA5RiwgMHgwQ0MsIDB4MEMzLAotCTB4MDIwLCAweDA0NSwgMHgwQ0MsIDB4MEFBLCAweDAxNywgMHgwRTYsIDB4MDY2LCAweDBDQywKLQkweDA0MywgMHgwMjYsIDB4MDRGLCAweDBFNywgMHgwNDEsIDB4MDIyLCAweDAyRSwgMHgwNzAsCi0JMHgwNjgsIDB4MDM4LCAweDBFNywgMHgwNTMsIDB4MEUwLCAweDAyRiwgMHgwQUIsIDB4MEJDLAotCTB4MDEyLCAweDBEMiwgMHgwRTksIDB4MDU4LCAweDAwQiwgMHgwRUEsIDB4MEE3LCAweDBBRCwKLQkweDA0NSwgMHgwQTEsIDB4MDFGLCAweDBDMCwgMHgwNUYsIDB4MDc4LCAweDAzOSwgMHgwQzgsCi0JMHgwQTAsIDB4MDhGLCAweDA5RCwgMHgwNDgsIDB4MDFDLCAweDAyNCwgMHgwRUUsIDB4MEM3LAotCTB4MDgwLCAweDBCRSwgMHgwQkEsIDB4MEY1LCAweDA2RCwgMHgwNjYsIDB4MDQ5LCAweDA3NywKLQkweDAwRCwgMHgwNEUsIDB4MEE1LCAweDAzMCwgMHgwMDksIDB4MEI0LCAweDBGOSwgMHgwQzUsCi0JMHgwNDMsIDB4MDBGLCAweDAzOCwgMHgwQTksIDB4MDNGLCAweDA5RCwgMHgwMDIsIDB4MEZCLAotCTB4MENFLCAweDA0NSwgMHgwMTEsIDB4MDczLCAweDA5MSwgMHgwNDEsIDB4MEM3LCAweDAzQSwKLQkweDA5MSwgMHgwOUYsIDB4MENGLCAweDA2OSwgMHgwNDQsIDB4MDVDLCAweDBGMSwgMHgwNTAsCi0JMHgwQkYsIDB4MDMzLCAweDBDQiwgMHgwMzIsIDB4MEE3LCAweDBBQywgMHgwNTQsIDB4MDkwLAotCTB4MDhELCAweDA0NCwgMHgwOEUsIDB4MDcwLCAweDAyOSwgMHgwNzcsIDB4MEE4LCAweDBEMCwKLQkweDBDQywgMHgwQkEsIDB4MDU2LCAweDBCMCwgMHgwQjIsIDB4MDlELCAweDA4QywgMHgwODYsCi0JMHgwNEMsIDB4MDE3LCAweDAyNiwgMHgwNzcsIDB4MDI2LCAweDAxQywgMHgwMjcsIDB4MDFDLAotCTB4MDI0LCAweDA5RSwgMHgwMjMsIDB4MDYxLCAweDBCRSwgMHgwOEUsIDB4MDEyLCAweDA0RiwKLQkweDAxMSwgMHgwODcsIDB4MDFDLCAweDBFQSwgMHgwNUMsIDB4MDA1LCAweDBGNSwgMHgwRDcsCi0JMHgwQjgsIDB4MDZBLCAweDA3NSwgMHgwMjksIDB4MDc3LCAweDBBQiwgMHgwMEQsIDB4MDk5LAotCTB4MDc0LCAweDBBNSwgMHgwNEYsIDB4MDcyLCAweDBBMCwgMHgwQUEsIDB4MDRBLCAweDBDNiwKLQkweDBGMywgMHgwNjYsIDB4MDY2LCAweDBDNiwgMHgwMzksIDB4MDgyLCAweDBBRiwgMHgwNzUsCi0JMHgwQTYsIDB4MDZGLCAweDAxNCwgMHgwNkIsIDB4MENFLCAweDAwNSwgMHgwNzAsIDB4MDczLAotCTB4MDk2LCAweDA4MiwgMHgwM0UsIDB4MDc1LCAweDAyOCwgMHgwRTEsIDB4MDNBLCAweDBBNywKLQkweDBBRCwgMHgwNDQsIDB4MDYwLCAweDAxNiwgMHgwNTIsIDB4MEI2LCAweDAxRCwgMHgwN0EsCi0JMHgwQjYsIDB4MEIzLCAweDAyNCwgMHgwQkIsIDB4MDg2LCAweDBBNywgMHgwNTIsIDB4MDk4LAotCTB4MDA0LCAweDBEQSwgMHgwN0MsIDB4MEUyLCAweDBBMSwgMHgwODcsIDB4MDlDLCAweDA1NSwKLQkweDBGNywgMHgwOUMsIDB4MEI1LCAweDBBQywgMHgwMkMsIDB4MDk1LCAweDAzMywgMHgwQjksCi0JMHgwMzEsIDB4MDA1LCAweDBEOSwgMHgwNTMsIDB4MEQ2LCAweDBBMiwgMHgwMzAsIDB4MDBCLAotCTB4MDI5LCAweDA1QiwgMHgwMDIsIDB4MDJFLCAweDA2MSwgMHgwNUEsIDB4MDE3LCAweDBFNiwKLQkweDA5QywgMHgwQjMsIDB4MDJBLCAweDA3QSwgMHgwQzUsIDB4MDQwLCAweDAyMSwgMHgwQTgsCi0JMHgwOTEsIDB4MENFLCAweDAwNSwgMHgwMjcsIDB4MEYzLCAweDBBNSwgMHgwODgsIDB4MDY0LAotCTB4MEMxLCAweDA3MiwgMHgwNjUsIDB4MDRGLCAweDA1OCwgMHgwMTQsIDB4MDBDLCAweDA4RCwKLQkweDA3RSwgMHgwRjMsIDB4MDgxLCAweDA0NCwgMHgwNUMsIDB4MEVGLCAweDA0MSwgMHgwQzcsCi0JMHgwM0EsIDB4MEJFLCAweDAwMiwgMHgwRkEsIDB4MEE5LCAweDBFQSwgMHgwQ0UsIDB4MENDLAotCTB4MEE5LCAweDAyOSwgMHgwNTMsIDB4MEQ2LCAweDBBMiwgMHgwNDYsIDB4MDQ3LCAweDBERCwKLQkweDA3QSwgMHgwQzAsIDB4MEEzLCAweDAwMCwgMHgwODYsIDB4MEUyLCAweDA5QiwgMHgwMjksCi0JMHgwNzgsIDB4MDhCLCAweDA4MSwgMHgwMDksIDB4MDk4LCAweDA3MCwgMHgwOUIsIDB4MDI5LAotCTB4MDc5LCAweDA1RCwgMHgwRDksIDB4MDcyLCAweDBFRCwgMHgwOTQsIDB4MEJDLCAweDBCOSwKLQkweDA3NiwgMHgwMTMsIDB4MDNCLCAweDAyQSwgMHgwNUQsIDB4MEIyLCAweDA5NywgMHgwOTUsCi0JMHgwMkUsIDB4MEQ5LCAweDA0QiwgMHgwQ0EsIDB4MDdELCAweDA1QiwgMHgwNTksIDB4MDk0LAotCTB4MENBLCAweDAxQywgMHgwMjQsIDB4MEVFLCAweDBDNywgMHgwOTQsIDB4MEJDLCAweDBDMCwKLQkweDAyNiwgMHgwRDMsIDB4MEU3LCAweDAxNSwgMHgwMEMsIDB4MDNDLCAweDBFMiwgMHgwQUMsCi0JMHgwRkUsIDB4MDdCLCAweDA0QSwgMHgwMjIsIDB4MEU3LCAweDA4QSwgMHgwODUsIDB4MEY5LAotCTB4MDlFLCAweDA1OSwgMHgwOTcsIDB4MDdBLCAweDA4RCwgMHgwMEMsIDB4MENCLCAweDBBNSwKLQkweDAyNywgMHgwRjMsIDB4MEEwLCAweDA0MSwgMHgwNzIsIDB4MDYyLCAweDAxOSwgMHgwMzcsCi0JMHgwREUsIDB4MDcwLCAweDAyOCwgMHgwOEIsIDB4MDlDLCAweDA4QSwgMHgwMEUsIDB4MDM5LAotCTB4MEQ0LCAweDA4RCwgMHgwMEYsIDB4MDU2LCAweDAzNiwgMHgwNkQsIDB4MDA5LCAweDA0RSwKLQkweDBCRCwgMHgwNTksIDB4MDJDLCAweDBDRSwgMHgwQTUsIDB4MDZCLCAweDAwQiwgMHgwMjIsCi0JMHgwRDksIDB4MDlELCAweDBDOSwgMHgwQjIsIDB4MDk3LCAweDBCRSwgMHgwRjMsIDB4MDgxLAotCTB4MDRBLCAweDA3RCwgMHgwNjUsIDB4MEEzLCAweDAwMCwgMHgwOTMsIDB4MDhGLCAweDA2NywKLQkweDAyOSwgMHgwNzgsIDB4MEMyLCAweDA0RCwgMHgwQzEsIDB4MEQxLCAweDAwNiwgMHgwODIsCi0JMHgwMzEsIDB4MEFGLCAweDAwNywgMHgwMzgsIDB4MDM0LCAweDAxMSwgMHgwRjMsIDB4MEE4LAotCTB4MDJBLCAweDA5RSwgMHgwQTgsIDB4MDY2LCAweDAxQSwgMHgwQTQsIDB4MEE1LCAweDA0RiwKLQkweDA1QSwgMHgwMEMsIDB4MDExLCAweDA4RiwgMHgwQUEsIDB4MDdCLCAweDBEMCwgMHgwNjUsCi0JMHgwNDksIDB4MDQ1LCAweDBCRCwgMHgwRTksIDB4MDYyLCAweDBEMiwgMHgwQjEsIDB4MDlFLAotCTB4MDZDLCAweDBDQywgMHgwQzYsIDB4MDE5LCAweDA4NywgMHgwMDksIDB4MEMzLCAweDA4RSwKLQkweDA3NSwgMHgwNDEsIDB4MDFGLCAweDAzQSwgMHgwQTUsIDB4MDEzLCAweDBENSwgMHgwNTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LAotCTB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwKLQkweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LAotCTB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwKLQkweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1QSwgMHgwQ0MsIDB4MDkwCi0gfTsKLQotI2VuZGlmCS8qIGRlZmluZWQoQ09ORklHX1NNQ1RSKSB8fCBkZWZpbmVkKENPTkZJR19TTUNUUl9NT0RVTEUpICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dW4uYyBiL2RyaXZlcnMvbmV0L3R1bi5jCmluZGV4IDdhYjk0YzguLmViYTEyNzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bi5jCisrKyBiL2RyaXZlcnMvbmV0L3R1bi5jCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvZmNudGwuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC02MDIsNiArNjAzLDEyIEBACiAJdHVuLT5hdHRhY2hlZCA9IDE7CiAJZ2V0X25ldChkZXZfbmV0KHR1bi0+ZGV2KSk7CiAKKwkvKiBNYWtlIHN1cmUgcGVyc2lzdGVudCBkZXZpY2VzIGRvIG5vdCBnZXQgc3R1Y2sgaW4KKwkgKiB4b2ZmIHN0YXRlLgorCSAqLworCWlmIChuZXRpZl9ydW5uaW5nKHR1bi0+ZGV2KSkKKwkJbmV0aWZfd2FrZV9xdWV1ZSh0dW4tPmRldik7CisKIAlzdHJjcHkoaWZyLT5pZnJfbmFtZSwgdHVuLT5kZXYtPm5hbWUpOwogCXJldHVybiAwOwogCkBAIC03OTYsMjIgKzgwMywyNiBAQAogCiAJREJHKEtFUk5fSU5GTyAiJXM6IHR1bl9jaHJfZmFzeW5jICVkXG4iLCB0dW4tPmRldi0+bmFtZSwgb24pOwogCisJbG9ja19rZXJuZWwoKTsKIAlpZiAoKHJldCA9IGZhc3luY19oZWxwZXIoZmQsIGZpbGUsIG9uLCAmdHVuLT5mYXN5bmMpKSA8IDApCi0JCXJldHVybiByZXQ7CisJCWdvdG8gb3V0OwogCiAJaWYgKG9uKSB7CiAJCXJldCA9IF9fZl9zZXRvd24oZmlsZSwgdGFza19waWQoY3VycmVudCksIFBJRFRZUEVfUElELCAwKTsKIAkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7CisJCQlnb3RvIG91dDsKIAkJdHVuLT5mbGFncyB8PSBUVU5fRkFTWU5DOwogCX0gZWxzZQogCQl0dW4tPmZsYWdzICY9IH5UVU5fRkFTWU5DOwotCi0JcmV0dXJuIDA7CisJcmV0ID0gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCB0dW5fY2hyX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJREJHMShLRVJOX0lORk8gInR1blg6IHR1bl9jaHJfb3BlblxuIik7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9rYXdldGguYyBiL2RyaXZlcnMvbmV0L3VzYi9rYXdldGguYwppbmRleCA3YzY2YjA1Li5kNjgyOWRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2Iva2F3ZXRoLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL2thd2V0aC5jCkBAIC01NywxMyArNTcsMTIgQEAKICNpbmNsdWRlIDxsaW51eC9ldGh0b29sLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KIAogI3VuZGVmIERFQlVHCiAKLSNpbmNsdWRlICJrYXdldGhmdy5oIgotCiAjZGVmaW5lIEtBV0VUSF9NVFUJCQkxNTE0CiAjZGVmaW5lIEtBV0VUSF9CVUZfU0laRQkJCTE2NjQKICNkZWZpbmUgS0FXRVRIX1RYX1RJTUVPVVQJCSg1ICogSFopCkBAIC0xMDgsNiArMTA3LDEwIEBACiBNT0RVTEVfQVVUSE9SKCJNaWNoYWVsIFphcHBlIDx6YXBtYW5AaW50ZXJsYW4ubmV0PiwgU3RlcGhhbmUgQWxuZXQgPHN0ZXBoYW5lQHUtcGljYXJkaWUuZnI+LCBCcmFkIEhhcmRzIDxiaGFyZHNAYmlncG9uZC5uZXQuYXU+IGFuZCBPbGl2ZXIgTmV1a3VtIDxvbGl2ZXJAbmV1a3VtLm9yZz4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiS0w1VVNCMTAxIFVTQiBFdGhlcm5ldCBkcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9GSVJNV0FSRSgia2F3ZXRoL25ld19jb2RlLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJrYXdldGgvbmV3X2NvZGVfZml4LmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJrYXdldGgvdHJpZ2dlcl9jb2RlLmJpbiIpOworTU9EVUxFX0ZJUk1XQVJFKCJrYXdldGgvdHJpZ2dlcl9jb2RlX2ZpeC5iaW4iKTsKIAogc3RhdGljIGNvbnN0IGNoYXIgZHJpdmVyX25hbWVbXSA9ICJrYXdldGgiOwogCkBAIC0zODUsMTcgKzM4OCwyOCBAQAogICogICAgIGthd2V0aF9kb3dubG9hZF9maXJtd2FyZQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgaW50IGthd2V0aF9kb3dubG9hZF9maXJtd2FyZShzdHJ1Y3Qga2F3ZXRoX2RldmljZSAqa2F3ZXRoLAotCQkJCSAgICBfX3U4ICpkYXRhLAotCQkJCSAgICBfX3UxNiBkYXRhX2xlbiwKKwkJCQkgICAgY29uc3QgY2hhciAqZnduYW1lLAogCQkJCSAgICBfX3U4IGludGVycnVwdCwKIAkJCQkgICAgX191OCB0eXBlKQogewotCWlmKGRhdGFfbGVuID4gS0FXRVRIX0ZJUk1XQVJFX0JVRl9TSVpFKQl7Ci0JCWVycigiRmlybXdhcmUgdG9vIGJpZzogJWQiLCBkYXRhX2xlbik7Ci0JCXJldHVybiAtRU5PU1BDOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CisJaW50IGRhdGFfbGVuOworCWludCByZXQ7CisKKwlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZnduYW1lLCAma2F3ZXRoLT5kZXYtPmRldik7CisJaWYgKHJldCkgeworCQllcnIoIkZpcm13YXJlIHJlcXVlc3QgZmFpbGVkXG4iKTsKKwkJcmV0dXJuIHJldDsKIAl9CiAKLQltZW1jcHkoa2F3ZXRoLT5maXJtd2FyZV9idWYsIGRhdGEsIGRhdGFfbGVuKTsKKwlpZiAoZnctPnNpemUgPiBLQVdFVEhfRklSTVdBUkVfQlVGX1NJWkUpIHsKKwkJZXJyKCJGaXJtd2FyZSB0b28gYmlnOiAlenUiLCBmdy0+c2l6ZSk7CisJCXJldHVybiAtRU5PU1BDOworCX0KKwlkYXRhX2xlbiA9IGZ3LT5zaXplOworCW1lbWNweShrYXdldGgtPmZpcm13YXJlX2J1ZiwgZnctPmRhdGEsIGZ3LT5zaXplKTsKKworCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCiAJa2F3ZXRoLT5maXJtd2FyZV9idWZbMl0gPSAoZGF0YV9sZW4gJiAweEZGKSAtIDc7CiAJa2F3ZXRoLT5maXJtd2FyZV9idWZbM10gPSBkYXRhX2xlbiA+PiA4OwpAQCAtNDA2LDggKzQyMCw3IEBACiAJCSAgIGthd2V0aC0+ZmlybXdhcmVfYnVmWzJdKTsKIAogCWRiZygiRG93bmxvYWRpbmcgZmlybXdhcmUgYXQgJXAgdG8ga2F3ZXRoIGRldmljZSBhdCAlcCIsCi0JICAgIGRhdGEsCi0JICAgIGthd2V0aCk7CisJICAgIGZ3LT5kYXRhLCBrYXdldGgpOwogCWRiZygiRmlybXdhcmUgbGVuZ3RoOiAlZCIsIGRhdGFfbGVuKTsKIAogCXJldHVybiBrYXdldGhfY29udHJvbChrYXdldGgsCkBAIC0xMDA5LDggKzEwMjIsNyBAQAogCQlpbmZvKCJEb3dubG9hZGluZyBmaXJtd2FyZS4uLiIpOwogCQlrYXdldGgtPmZpcm13YXJlX2J1ZiA9IChfX3U4ICopX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwpOwogCQlpZiAoKHJlc3VsdCA9IGthd2V0aF9kb3dubG9hZF9maXJtd2FyZShrYXdldGgsCi0JCQkJCQkgICAgICBrYXdldGhfbmV3X2NvZGUsCi0JCQkJCQkgICAgICBsZW5fa2F3ZXRoX25ld19jb2RlLAorCQkJCQkJICAgICAgImthd2V0aC9uZXdfY29kZS5iaW4iLAogCQkJCQkJICAgICAgMTAwLAogCQkJCQkJICAgICAgMikpIDwgMCkgewogCQkJZXJyKCJFcnJvciBkb3dubG9hZGluZyBmaXJtd2FyZSAoJWQpIiwgcmVzdWx0KTsKQEAgLTEwMTgsOCArMTAzMCw3IEBACiAJCX0KIAogCQlpZiAoKHJlc3VsdCA9IGthd2V0aF9kb3dubG9hZF9maXJtd2FyZShrYXdldGgsCi0JCQkJCQkgICAgICBrYXdldGhfbmV3X2NvZGVfZml4LAotCQkJCQkJICAgICAgbGVuX2thd2V0aF9uZXdfY29kZV9maXgsCisJCQkJCQkgICAgICAia2F3ZXRoL25ld19jb2RlX2ZpeC5iaW4iLAogCQkJCQkJICAgICAgMTAwLAogCQkJCQkJICAgICAgMykpIDwgMCkgewogCQkJZXJyKCJFcnJvciBkb3dubG9hZGluZyBmaXJtd2FyZSBmaXggKCVkKSIsIHJlc3VsdCk7CkBAIC0xMDI3LDggKzEwMzgsNyBAQAogCQl9CiAKIAkJaWYgKChyZXN1bHQgPSBrYXdldGhfZG93bmxvYWRfZmlybXdhcmUoa2F3ZXRoLAotCQkJCQkJICAgICAga2F3ZXRoX3RyaWdnZXJfY29kZSwKLQkJCQkJCSAgICAgIGxlbl9rYXdldGhfdHJpZ2dlcl9jb2RlLAorCQkJCQkJICAgICAgImthd2V0aC90cmlnZ2VyX2NvZGUuYmluIiwKIAkJCQkJCSAgICAgIDEyNiwKIAkJCQkJCSAgICAgIDIpKSA8IDApIHsKIAkJCWVycigiRXJyb3IgZG93bmxvYWRpbmcgdHJpZ2dlciBjb2RlICglZCkiLCByZXN1bHQpOwpAQCAtMTAzNyw4ICsxMDQ3LDcgQEAKIAkJfQogCiAJCWlmICgocmVzdWx0ID0ga2F3ZXRoX2Rvd25sb2FkX2Zpcm13YXJlKGthd2V0aCwKLQkJCQkJCSAgICAgIGthd2V0aF90cmlnZ2VyX2NvZGVfZml4LAotCQkJCQkJICAgICAgbGVuX2thd2V0aF90cmlnZ2VyX2NvZGVfZml4LAorCQkJCQkJICAgICAgImthd2V0aC90cmlnZ2VyX2NvZGVfZml4LmJpbiIsCiAJCQkJCQkgICAgICAxMjYsCiAJCQkJCQkgICAgICAzKSkgPCAwKSB7CiAJCQllcnIoIkVycm9yIGRvd25sb2FkaW5nIHRyaWdnZXIgY29kZSBmaXggKCVkKSIsIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2Iva2F3ZXRoZncuaCBiL2RyaXZlcnMvbmV0L3VzYi9rYXdldGhmdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjg1ZmNiLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbmV0L3VzYi9rYXdldGhmdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTU3ICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBOT1RFOiBCNi9DMyBpcyBkYXRhIGhlYWRlciBzaWduYXR1cmUgICAqLwotLyogICAgICAgMHhBQS8weEJCIGlzIGRhdGEgbGVuZ3RoID0gdG90YWwgKi8KLS8qICAgICAgIGJ5dGVzIC0gNywgMHhDQyBpcyB0eXBlLCAweEREIGlzICovCi0vKiAgICAgICBpbnRlcnJ1cHQgdG8gdXNlLiAgICAgICAgICAgICAgICAqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqICAgICBrYXdldGhfdHJpZ2dlcl9jb2RlCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBfX3U4IGthd2V0aF90cmlnZ2VyX2NvZGVbXSA9IAotewotICAgIDB4QjYsIDB4QzMsIDB4QUEsIDB4QkIsIDB4Q0MsIDB4REQsCi0gICAgMHhjOCwgMHgwNywgMHhhMCwgMHgwMCwgMHhmMCwgMHgwNywgMHg1ZSwgMHgwMCwKLSAgICAweDA2LCAweDAwLCAweGYwLCAweDA3LCAweDBhLCAweDAwLCAweDA4LCAweDAwLAotICAgIDB4ZjAsIDB4MDksIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4ZTcsIDB4MDcsCi0gICAgMHgzNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHhmMCwgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweDA0LCAweDAwLCAweGU3LCAweDA3LCAweDUwLCAweGMzLCAweDEwLCAweGMwLAotICAgIDB4ZjAsIDB4MDksIDB4MGUsIDB4YzAsIDB4MDAsIDB4MDAsIDB4ZTcsIDB4ODcsCi0gICAgMHgwMSwgMHgwMCwgMHgwZSwgMHhjMCwgMHg5NywgMHhjZiwgMHhkNywgMHgwOSwKLSAgICAweDAwLCAweGMwLCAweDE3LCAweDAyLCAweGM4LCAweDA3LCAweGEwLCAweDAwLAotICAgIDB4ZTcsIDB4MTcsIDB4NTAsIDB4YzMsIDB4MTAsIDB4YzAsIDB4MzAsIDB4ZDgsCi0gICAgMHgwNCwgMHgwMCwgMHgzMCwgMHg1YywgMHgwOCwgMHgwMCwgMHgwNCwgMHgwMCwKLSAgICAweGIwLCAweGMwLCAweDA2LCAweDAwLCAweGM4LCAweDA1LCAweGU3LCAweDA1LAotICAgIDB4MDAsIDB4YzAsIDB4YzAsIDB4ZGYsIDB4OTcsIDB4Y2YsIDB4NDksIDB4YWYsCi0gICAgMHhjMCwgMHgwNywgMHgwMCwgMHgwMCwgMHg2MCwgMHhhZiwgMHg0YSwgMHhhZiwKLSAgICAweDAwLCAweDBjLCAweDBjLCAweDAwLCAweDQwLCAweGQyLCAweDAwLCAweDFjLAotICAgIDB4MGMsIDB4MDAsIDB4NDAsIDB4ZDIsIDB4MzAsIDB4MDAsIDB4MDgsIDB4MDAsCi0gICAgMHhmMCwgMHgwNywgMHgwMCwgMHgwMCwgMHgwNCwgMHgwMCwgMHhmMCwgMHgwNywKLSAgICAweDg2LCAweDAwLCAweDA2LCAweDAwLCAweDY3LCAweGNmLCAweDI3LCAweDBjLAotICAgIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjcsIDB4MGMsIDB4MDAsIDB4MDAsCi0gICAgMHgwZSwgMHhjMCwgMHg0OSwgMHhhZiwgMHg2NCwgMHhhZiwgMHhjMCwgMHgwNywKLSAgICAweDAwLCAweDAwLCAweDRiLCAweGFmLCAweDRhLCAweGFmLCAweDVhLCAweGNmLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHg5NCwgMHgwMCwgMHgwNSwgMHgwMCwKLSAgICAweDAwLCAweDAwCi19OwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqICAgICBrYXdldGhfdHJpZ2dlcl9jb2RlX2ZpeAotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgX191OCBrYXdldGhfdHJpZ2dlcl9jb2RlX2ZpeFtdID0gCi17Ci0gICAgMHhCNiwgMHhDMywgMHhBQSwgMHhCQiwgMHhDQywgMHhERCwKLSAgICAweDAyLCAweDAwLCAweDA2LCAweDAwLCAweDE4LCAweDAwLCAweDNlLCAweDAwLAotICAgIDB4ODAsIDB4MDAsIDB4OTgsIDB4MDAsIDB4YWEsIDB4MDAsCi0gICAgMHgwMCwgMHgwMAotfTsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqICAgICBrYXdldGhfbmV3X2NvZGUKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIF9fdTgga2F3ZXRoX25ld19jb2RlW10gPSAKLXsKLSAgICAweEI2LCAweEMzLCAweEFBLCAweEJCLCAweENDLCAweERELAotICAgIDB4OWYsIDB4Y2YsIDB4ZGUsIDB4MDYsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhjNCwgMHgwNiwgMHg5NywgMHhjMSwgMHhlNywgMHg2NywgMHhmZiwgMHgxZiwKLSAgICAweDI4LCAweGMwLCAweGU3LCAweDg3LCAweDAwLCAweDA0LCAweDI0LCAweGMwLAotICAgIDB4ZTcsIDB4NjcsIDB4ZmYsIDB4ZjksIDB4MjIsIDB4YzAsIDB4OTcsIDB4Y2YsCi0gICAgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwgMHhlNywgMHgwOSwgMHhhMiwgMHhjMCwKLSAgICAweGJlLCAweDA2LCAweDlmLCAweGFmLCAweDM2LCAweDAwLCAweGU3LCAweDA1LAotICAgIDB4MDAsIDB4YzAsIDB4YTcsIDB4Y2YsIDB4YmMsIDB4MDYsIDB4OTcsIDB4Y2YsCi0gICAgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwgMHhiOCwgMHgwNiwgMHhhNywgMHhhMSwKLSAgICAweGI4LCAweDA2LCAweDk3LCAweGNmLCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4MTQsIDB4MDgsIDB4MGEsIDB4YzAsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhhNCwgMHhjMCwgMHhhNywgMHhjMCwgMHg3YSwgMHgwNiwgMHg5ZiwgMHhhZiwKLSAgICAweDkyLCAweDA3LCAweGU3LCAweDA3LCAweDAwLCAweDAwLCAweDE0LCAweDA4LAotICAgIDB4ZTcsIDB4NTcsIDB4ZmYsIDB4ZmYsIDB4YmEsIDB4MDYsIDB4OWYsIDB4YTAsCi0gICAgMHgzOCwgMHgwMCwgMHhlNywgMHg1OSwgMHhiYSwgMHgwNiwgMHhiZSwgMHgwNiwKLSAgICAweDlmLCAweGEwLCAweDM4LCAweDAwLCAweGM4LCAweDA5LCAweGNhLCAweDA2LAotICAgIDB4MDgsIDB4NjIsIDB4OWYsIDB4YTEsIDB4MzYsIDB4MDgsIDB4YzAsIDB4MDksCi0gICAgMHg3NiwgMHgwNiwgMHgwMCwgMHg2MCwgMHhhNywgMHhjMCwgMHg3YSwgMHgwNiwKLSAgICAweDlmLCAweGFmLCAweGNjLCAweDAyLCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4YjgsIDB4MDYsIDB4YTcsIDB4YzEsIDB4N2EsIDB4MDYsIDB4OWYsIDB4YWYsCi0gICAgMHgwNCwgMHgwMCwgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwgMHg4ZSwgMHgwNiwKLSAgICAweDBhLCAweGMxLCAweGU3LCAweDA5LCAweDIwLCAweGMwLCAweDEwLCAweDA4LAotICAgIDB4ZTcsIDB4ZDAsIDB4MTAsIDB4MDgsIDB4ZTcsIDB4NjcsIDB4NDAsIDB4MDAsCi0gICAgMHgxMCwgMHgwOCwgMHg5ZiwgMHhhZiwgMHg5MiwgMHgwYywgMHhjMCwgMHgwOSwKLSAgICAweGQwLCAweDA2LCAweDAwLCAweDYwLCAweDA1LCAweGM0LCAweGMwLCAweDU5LAotICAgIDB4YmUsIDB4MDYsIDB4MDIsIDB4YzAsIDB4OWYsIDB4YWYsIDB4ZWMsIDB4MDAsCi0gICAgMHg5ZiwgMHhhZiwgMHgzNCwgMHgwMiwgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwKLSAgICAweGE2LCAweDA2LCAweDlmLCAweGEwLCAweDdhLCAweDAyLCAweGE3LCAweGNmLAotICAgIDB4N2EsIDB4MDYsIDB4NDgsIDB4MDIsIDB4ZTcsIDB4MDksIDB4YmUsIDB4MDYsCi0gICAgMHhkMCwgMHgwNiwgMHhjOCwgMHgzNywgMHgwNCwgMHgwMCwgMHg5ZiwgMHhhZiwKLSAgICAweDA4LCAweDAzLCAweDk3LCAweGNmLCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4Y2UsIDB4MDYsIDB4OTcsIDB4YzAsIDB4ZDcsIDB4MDksIDB4MDAsIDB4YzAsCi0gICAgMHhjMSwgMHhkZiwgMHhjOCwgMHgwOSwgMHhjNiwgMHgwNiwgMHgwOCwgMHg2MiwKLSAgICAweDE0LCAweGMwLCAweDI3LCAweDA0LCAweGM2LCAweDA2LCAweDEwLCAweDk0LAotICAgIDB4ZjAsIDB4MDcsIDB4MTAsIDB4MDgsIDB4MDIsIDB4MDAsIDB4YzEsIDB4MDcsCi0gICAgMHgwMSwgMHgwMCwgMHg3MCwgMHgwMCwgMHgwNCwgMHgwMCwgMHhmMCwgMHgwNywKLSAgICAweDMwLCAweDAxLCAweDA2LCAweDAwLCAweDUwLCAweGFmLCAweGU3LCAweDA3LAotICAgIDB4ZmYsIDB4ZmYsIDB4ZDAsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHhjZSwgMHgwNiwgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwgMHg5NywgMHhjZiwKLSAgICAweGQ3LCAweDA5LCAweDAwLCAweGMwLCAweGMxLCAweGRmLCAweDQ4LCAweDAyLAotICAgIDB4ZDAsIDB4MDksIDB4YzYsIDB4MDYsIDB4MjcsIDB4MDIsIDB4YzYsIDB4MDYsCi0gICAgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwgMHg5NywgMHhjZiwgMHg0OCwgMHgwMiwKLSAgICAweGM4LCAweDM3LCAweDA0LCAweDAwLCAweDAwLCAweDBjLCAweDBjLCAweDAwLAotICAgIDB4MDAsIDB4NjAsIDB4MjEsIDB4YzAsIDB4YzAsIDB4MzcsIDB4M2UsIDB4MDAsCi0gICAgMHgyMywgMHhjOSwgMHhjMCwgMHg1NywgMHhiNCwgMHgwNSwgMHgxYiwgMHhjOCwKLSAgICAweGMwLCAweDE3LCAweDNmLCAweDAwLCAweGMwLCAweDY3LCAweGMwLCAweGZmLAotICAgIDB4MzAsIDB4MDAsIDB4MDgsIDB4MDAsIDB4ZjAsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHgwNCwgMHgwMCwgMHgwMCwgMHgwMiwgMHhjMCwgMHgxNywgMHg0YywgMHgwMCwKLSAgICAweDMwLCAweDAwLCAweDA2LCAweDAwLCAweGYwLCAweDA3LCAweGEwLCAweDAxLAotICAgIDB4MGEsIDB4MDAsIDB4NDgsIDB4MDIsIDB4YzEsIDB4MDcsIDB4MDIsIDB4MDAsCi0gICAgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwgMHhjMSwgMHhkZiwgMHg1MSwgMHhhZiwKLSAgICAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDk3LCAweGNmLCAweDlmLCAweGFmLAotICAgIDB4MDgsIDB4MDMsIDB4OWYsIDB4YWYsIDB4N2EsIDB4MDIsIDB4OTcsIDB4Y2YsCi0gICAgMHg5ZiwgMHhhZiwgMHg3YSwgMHgwMiwgMHhjOSwgMHgzNywgMHgwNCwgMHgwMCwKLSAgICAweGMxLCAweGRmLCAweGM4LCAweDA5LCAweGEyLCAweDA2LCAweDUwLCAweDAyLAotICAgIDB4NjcsIDB4MDIsIDB4YTIsIDB4MDYsIDB4ZDEsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHgyNywgMHhkOCwgMHhhYSwgMHgwNiwgMHhjMCwgMHhkZiwgMHg5ZiwgMHhhZiwKLSAgICAweGM0LCAweDAxLCAweDk3LCAweGNmLCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4ZDIsIDB4MDYsIDB4OTcsIDB4YzEsIDB4ZTcsIDB4NTcsIDB4MDEsIDB4MDAsCi0gICAgMHhhOCwgMHgwNiwgMHg5NywgMHhjMCwgMHhjOCwgMHgwOSwgMHhhMCwgMHgwNiwKLSAgICAweDA4LCAweDYyLCAweDk3LCAweGMwLCAweDAwLCAweDAyLCAweGMwLCAweDE3LAotICAgIDB4MGUsIDB4MDAsIDB4MjcsIDB4MDAsIDB4MzQsIDB4MDEsIDB4MjcsIDB4MGMsCi0gICAgMHgwYywgMHgwMCwgMHgzNiwgMHgwMSwgMHhlNywgMHgwNywgMHg1MCwgMHhjMywKLSAgICAweDEyLCAweGMwLCAweGU3LCAweDA3LCAweGNjLCAweDBiLCAweDAyLCAweDAwLAotICAgIDB4ZTcsIDB4MDcsIDB4MDEsIDB4MDAsIDB4YTgsIDB4MDYsIDB4ZTcsIDB4MDcsCi0gICAgMHgwNSwgMHgwMCwgMHg5MCwgMHhjMCwgMHg5NywgMHhjZiwgMHhjOCwgMHgwOSwKLSAgICAweGE0LCAweDA2LCAweDA4LCAweDYyLCAweDAyLCAweGMwLCAweDEwLCAweDY0LAotICAgIDB4MDcsIDB4YzEsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4OWUsIDB4MDYsCi0gICAgMHhlNywgMHgwNywgMHg3MiwgMHgwNCwgMHgyNCwgMHgwMCwgMHg5NywgMHhjZiwKLSAgICAweDI3LCAweDA0LCAweGE0LCAweDA2LCAweGM4LCAweDE3LCAweDBlLCAweDAwLAotICAgIDB4MjcsIDB4MDIsIDB4OWUsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4ODAsIDB4MDQsCi0gICAgMHgyNCwgMHgwMCwgMHg5NywgMHhjZiwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwKLSAgICAweGMxLCAweGRmLCAweGU3LCAweDU3LCAweDAwLCAweDAwLCAweDkwLCAweDA2LAotICAgIDB4MTMsIDB4YzEsIDB4OWYsIDB4YWYsIDB4MDYsIDB4MDIsIDB4ZTcsIDB4NTcsCi0gICAgMHgwMCwgMHgwMCwgMHg5ZSwgMHgwNiwgMHgxMywgMHhjMCwgMHhlNywgMHgwOSwKLSAgICAweDllLCAweDA2LCAweDMwLCAweDAxLCAweGU3LCAweDA3LCAweGYyLCAweDA1LAotICAgIDB4MzIsIDB4MDEsIDB4ZTcsIDB4MDcsIDB4MTAsIDB4MDAsIDB4OTYsIDB4YzAsCi0gICAgMHhlNywgMHgwOSwgMHg5ZSwgMHgwNiwgMHg5MCwgMHgwNiwgMHgwNCwgMHhjZiwKLSAgICAweGU3LCAweDU3LCAweDAwLCAweDAwLCAweDllLCAweDA2LCAweDAyLCAweGMxLAotICAgIDB4OWYsIDB4YWYsIDB4MDYsIDB4MDIsIDB4ZTcsIDB4MDUsIDB4MDAsIDB4YzAsCi0gICAgMHg5NywgMHhjZiwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwgMHhjMSwgMHhkZiwKLSAgICAweDA4LCAweDkyLCAweGU3LCAweDU3LCAweDAyLCAweDAwLCAweGFhLCAweDA2LAotICAgIDB4MDIsIDB4YzMsIDB4YzgsIDB4MDksIDB4YTQsIDB4MDYsIDB4MjcsIDB4MDIsCi0gICAgMHhhNiwgMHgwNiwgMHgwOCwgMHg2MiwgMHgwMywgMHhjMSwgMHhlNywgMHgwNSwKLSAgICAweDAwLCAweGMwLCAweDk3LCAweGNmLCAweDI3LCAweDA0LCAweGE0LCAweDA2LAotICAgIDB4ZTcsIDB4MDUsIDB4MDAsIDB4YzAsIDB4ZjAsIDB4MDcsIDB4NDAsIDB4MDAsCi0gICAgMHgwOCwgMHgwMCwgMHhmMCwgMHgwNywgMHgwMCwgMHgwMCwgMHgwNCwgMHgwMCwKLSAgICAweDAwLCAweDAyLCAweGMwLCAweDE3LCAweDBjLCAweDAwLCAweDMwLCAweDAwLAotICAgIDB4MDYsIDB4MDAsIDB4ZjAsIDB4MDcsIDB4NDYsIDB4MDEsIDB4MGEsIDB4MDAsCi0gICAgMHhjOCwgMHgxNywgMHgwNCwgMHgwMCwgMHhjMSwgMHgwNywgMHgwMiwgMHgwMCwKLSAgICAweDUxLCAweGFmLCAweDk3LCAweGNmLCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4OTYsIDB4MDYsIDB4OTcsIDB4YzAsIDB4YzEsIDB4ZGYsIDB4YzgsIDB4MDksCi0gICAgMHg5NiwgMHgwNiwgMHgyNywgMHgwNCwgMHg5NiwgMHgwNiwgMHgyNywgMHg1MiwKLSAgICAweDk4LCAweDA2LCAweDAzLCAweGMxLCAweGU3LCAweDA3LCAweDk2LCAweDA2LAotICAgIDB4OTgsIDB4MDYsIDB4YzAsIDB4ZGYsIDB4MTcsIDB4MDIsIDB4YzgsIDB4MTcsCi0gICAgMHgwZSwgMHgwMCwgMHg5ZiwgMHhhZiwgMHhiYSwgMHgwMywgMHhjOCwgMHgwNSwKLSAgICAweDAwLCAweDYwLCAweDAzLCAweGMwLCAweDlmLCAweGFmLCAweDI0LCAweDAzLAotICAgIDB4OTcsIDB4Y2YsIDB4OWYsIDB4YWYsIDB4MDgsIDB4MDMsIDB4OTcsIDB4Y2YsCi0gICAgMHg1NywgMHgwMiwgMHhjOSwgMHgwNywgMHhhNCwgMHgwNiwgMHhkNywgMHgwOSwKLSAgICAweDAwLCAweGMwLCAweGMxLCAweGRmLCAweDA4LCAweDYyLCAweDFiLCAweGMwLAotICAgIDB4NTAsIDB4MDQsIDB4MTEsIDB4MDIsIDB4ZTcsIDB4MDUsIDB4MDAsIDB4YzAsCi0gICAgMHhjOSwgMHgwNSwgMHg5NywgMHhjZiwgMHg5NywgMHgwMiwgMHhjYSwgMHgwOSwKLSAgICAweGQ2LCAweDA2LCAweGYyLCAweDE3LCAweDAxLCAweDAwLCAweDA0LCAweDAwLAotICAgIDB4ZjIsIDB4MjcsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MDAsIDB4Y2EsIDB4MTcsCi0gICAgMHgyYywgMHgwMCwgMHhmOCwgMHg3NywgMHgwMSwgMHgwMCwgMHgwZSwgMHgwMCwKLSAgICAweDA2LCAweGMwLCAweGNhLCAweGQ5LCAweGY4LCAweDU3LCAweGZmLCAweDAwLAotICAgIDB4MGUsIDB4MDAsIDB4MDEsIDB4YzEsIDB4Y2EsIDB4ZDksIDB4MjIsIDB4MWMsCi0gICAgMHgwYywgMHgwMCwgMHhlMiwgMHgyNywgMHgwMCwgMHgwMCwgMHhlMiwgMHgxNywKLSAgICAweDAxLCAweDAwLCAweGUyLCAweDI3LCAweDAwLCAweDAwLCAweGNhLCAweDA1LAotICAgIDB4MDAsIDB4MGMsIDB4MGMsIDB4MDAsIDB4YzAsIDB4MTcsIDB4NDEsIDB4MDAsCi0gICAgMHhjMCwgMHg2NywgMHhjMCwgMHhmZiwgMHgzMCwgMHgwMCwgMHgwOCwgMHgwMCwKLSAgICAweDAwLCAweDAyLCAweGMwLCAweDE3LCAweDBjLCAweDAwLCAweDMwLCAweDAwLAotICAgIDB4MDYsIDB4MDAsIDB4ZjAsIDB4MDcsIDB4ZGEsIDB4MDAsIDB4MGEsIDB4MDAsCi0gICAgMHhmMCwgMHgwNywgMHgwMCwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwYywKLSAgICAweDA4LCAweDAwLCAweDQwLCAweGQxLCAweDAxLCAweDAwLCAweGMwLCAweDE5LAotICAgIDB4Y2UsIDB4MDYsIDB4YzAsIDB4NTksIDB4YzIsIDB4MDYsIDB4MDQsIDB4YzksCi0gICAgMHg0OSwgMHhhZiwgMHg5ZiwgMHhhZiwgMHhlYywgMHgwMCwgMHg0YSwgMHhhZiwKLSAgICAweDY3LCAweDEwLCAweGNlLCAweDA2LCAweGM4LCAweDE3LCAweDA0LCAweDAwLAotICAgIDB4YzEsIDB4MDcsIDB4MDEsIDB4MDAsIDB4ZDcsIDB4MDksIDB4MDAsIDB4YzAsCi0gICAgMHhjMSwgMHhkZiwgMHg1MCwgMHhhZiwgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwKLSAgICAweDk3LCAweGNmLCAweGMwLCAweDA3LCAweDAxLCAweDAwLCAweGMxLCAweDA5LAotICAgIDB4YWMsIDB4MDYsIDB4YzEsIDB4NzcsIDB4MDEsIDB4MDAsIDB4OTcsIDB4YzEsCi0gICAgMHhkOCwgMHg3NywgMHgwMSwgMHgwMCwgMHgxMiwgMHhjMCwgMHhjOSwgMHgwNywKLSAgICAweDZhLCAweDA2LCAweDlmLCAweGFmLCAweDA4LCAweDA0LCAweDA0LCAweGMxLAotICAgIDB4YzEsIDB4NzcsIDB4MDgsIDB4MDAsIDB4MTMsIDB4YzAsIDB4OTcsIDB4Y2YsCi0gICAgMHhjMSwgMHg3NywgMHgwMiwgMHgwMCwgMHg5NywgMHhjMSwgMHhjMSwgMHg3NywKLSAgICAweDEwLCAweDAwLCAweDBjLCAweGMwLCAweDlmLCAweGFmLCAweDJjLCAweDA0LAotICAgIDB4OTcsIDB4Y2YsIDB4YzEsIDB4NzcsIDB4MDQsIDB4MDAsIDB4MDYsIDB4YzAsCi0gICAgMHhjOSwgMHgwNywgMHg3MCwgMHgwNiwgMHg5ZiwgMHhhZiwgMHgwOCwgMHgwNCwKLSAgICAweDk3LCAweGMwLCAweDAwLCAweGNmLCAweDAwLCAweDkwLCAweDk3LCAweGNmLAotICAgIDB4NTAsIDB4NTQsIDB4OTcsIDB4YzEsIDB4NzAsIDB4NWMsIDB4MDIsIDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg5NywgMHhjMSwgMHg3MCwgMHg1YywgMHgwNCwgMHgwMCwKLSAgICAweDA0LCAweDAwLCAweDk3LCAweGNmLCAweDgwLCAweDAxLCAweGMwLCAweDAwLAotICAgIDB4NjAsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MTgsIDB4MDAsIDB4MGMsIDB4MDAsCi0gICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHhjYiwgMHgwOSwgMHhiMiwgMHgwNiwKLSAgICAweGNjLCAweDA5LCAweGI0LCAweDA2LCAweDBiLCAweDUzLCAweDExLCAweGMwLAotICAgIDB4YzksIDB4MDIsIDB4Y2EsIDB4MDcsIDB4MWMsIDB4MDQsIDB4OWYsIDB4YWYsCi0gICAgMHgwOCwgMHgwNCwgMHg5NywgMHhjMCwgMHgwYSwgMHhjOCwgMHg4MiwgMHgwOCwKLSAgICAweDBhLCAweGNmLCAweDgyLCAweDA4LCAweDlmLCAweGFmLCAweDA4LCAweDA0LAotICAgIDB4OTcsIDB4YzAsIDB4MDUsIDB4YzIsIDB4ODksIDB4MzAsIDB4ODIsIDB4NjAsCi0gICAgMHg3OCwgMHhjMSwgMHgwMCwgMHg5MCwgMHg5NywgMHhjZiwgMHg4OSwgMHgxMCwKLSAgICAweDA5LCAweDUzLCAweDc5LCAweGMyLCAweDg5LCAweDMwLCAweDgyLCAweDA4LAotICAgIDB4N2EsIDB4Y2YsIDB4YzAsIDB4ZGYsIDB4OTcsIDB4Y2YsIDB4YzAsIDB4ZGYsCi0gICAgMHg5NywgMHhjZiwgMHhlNywgMHgwOSwgMHg5NiwgMHhjMCwgMHg5MiwgMHgwNiwKLSAgICAweGU3LCAweDA5LCAweDk4LCAweGMwLCAweDk0LCAweDA2LCAweDBmLCAweGNmLAotICAgIDB4ZTcsIDB4MDksIDB4OTYsIDB4YzAsIDB4OTIsIDB4MDYsIDB4ZTcsIDB4MDksCi0gICAgMHg5OCwgMHhjMCwgMHg5NCwgMHgwNiwgMHhlNywgMHgwOSwgMHg5ZSwgMHgwNiwKLSAgICAweDMwLCAweDAxLCAweGU3LCAweDA3LCAweGYyLCAweDA1LCAweDMyLCAweDAxLAotICAgIDB4ZTcsIDB4MDcsIDB4MTAsIDB4MDAsIDB4OTYsIDB4YzAsIDB4ZDcsIDB4MDksCi0gICAgMHgwMCwgMHhjMCwgMHgxNywgMHgwMiwgMHhjOCwgMHgwOSwgMHg5MCwgMHgwNiwKLSAgICAweGM4LCAweDM3LCAweDBlLCAweDAwLCAweGU3LCAweDc3LCAweDJhLCAweDAwLAotICAgIDB4OTIsIDB4MDYsIDB4MzAsIDB4YzAsIDB4OTcsIDB4MDIsIDB4Y2EsIDB4MDksCi0gICAgMHhkNiwgMHgwNiwgMHhlNywgMHg3NywgMHgyMCwgMHgwMCwgMHg5MiwgMHgwNiwKLSAgICAweDBlLCAweGMwLCAweGYyLCAweDE3LCAweDAxLCAweDAwLCAweDEwLCAweDAwLAotICAgIDB4ZjIsIDB4MjcsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDAsIDB4ZTcsIDB4NzcsCi0gICAgMHgwYSwgMHgwMCwgMHg5MiwgMHgwNiwgMHhjYSwgMHgwNSwgMHgxZSwgMHhjMCwKLSAgICAweDk3LCAweDAyLCAweGNhLCAweDA5LCAweGQ2LCAweDA2LCAweGYyLCAweDE3LAotICAgIDB4MDEsIDB4MDAsIDB4MGMsIDB4MDAsIDB4ZjIsIDB4MjcsIDB4MDAsIDB4MDAsCi0gICAgMHgwZSwgMHgwMCwgMHhlNywgMHg3NywgMHgwMiwgMHgwMCwgMHg5MiwgMHgwNiwKLSAgICAweDA3LCAweGMwLCAweGYyLCAweDE3LCAweDAxLCAweDAwLCAweDQ0LCAweDAwLAotICAgIDB4ZjIsIDB4MjcsIDB4MDAsIDB4MDAsIDB4NDYsIDB4MDAsIDB4MDYsIDB4Y2YsCi0gICAgMHhmMiwgMHgxNywgMHgwMSwgMHgwMCwgMHg2MCwgMHgwMCwgMHhmMiwgMHgyNywKLSAgICAweDAwLCAweDAwLCAweDYyLCAweDAwLCAweGNhLCAweDA1LCAweDlmLCAweGFmLAotICAgIDB4MDgsIDB4MDMsIDB4MGYsIDB4Y2YsIDB4NTcsIDB4MDIsIDB4MDksIDB4MDIsCi0gICAgMHhmMSwgMHgwOSwgMHg5NCwgMHgwNiwgMHgwYywgMHgwMCwgMHhmMSwgMHhkYSwKLSAgICAweDBjLCAweDAwLCAweGM4LCAweDA5LCAweDk4LCAweDA2LCAweDUwLCAweDAyLAotICAgIDB4NjcsIDB4MDIsIDB4OTgsIDB4MDYsIDB4ZDEsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHhjOSwgMHgwNSwgMHhlNywgMHgwOSwgMHg5ZSwgMHgwNiwgMHg5MCwgMHgwNiwKLSAgICAweGU3LCAweDU3LCAweDAwLCAweDAwLCAweDkwLCAweDA2LCAweDAyLCAweGMwLAotICAgIDB4OWYsIDB4YWYsIDB4MDYsIDB4MDIsIDB4YzgsIDB4MDUsIDB4ZTcsIDB4MDUsCi0gICAgMHgwMCwgMHhjMCwgMHhjMCwgMHhkZiwgMHg5NywgMHhjZiwgMHhkNywgMHgwOSwKLSAgICAweDAwLCAweGMwLCAweDE3LCAweDAwLCAweDE3LCAweDAyLCAweDk3LCAweDAyLAotICAgIDB4YzAsIDB4MDksIDB4OTIsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4MDQsIDB4MDAsCi0gICAgMHg5MCwgMHhjMCwgMHhjYSwgMHgwOSwgMHhkNiwgMHgwNiwgMHhlNywgMHgwNywKLSAgICAweDAwLCAweDAwLCAweGE4LCAweDA2LCAweGU3LCAweDA3LCAweDZhLCAweDA0LAotICAgIDB4MDIsIDB4MDAsIDB4YzAsIDB4NzcsIDB4MDIsIDB4MDAsIDB4MDgsIDB4YzAsCi0gICAgMHhmMiwgMHgxNywgMHgwMSwgMHgwMCwgMHg1MCwgMHgwMCwgMHhmMiwgMHgyNywKLSAgICAweDAwLCAweDAwLCAweDUyLCAweDAwLCAweDlmLCAweGNmLCAweDI0LCAweDA2LAotICAgIDB4YzAsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MDYsIDB4YzAsIDB4ZjIsIDB4MTcsCi0gICAgMHgwMSwgMHgwMCwgMHg1OCwgMHgwMCwgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwKLSAgICAweDVhLCAweDAwLCAweGMwLCAweDc3LCAweDgwLCAweDAwLCAweDA2LCAweGMwLAotICAgIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4ZjIsIDB4MjcsCi0gICAgMHgwMCwgMHgwMCwgMHg3MiwgMHgwMCwgMHhjMCwgMHg3NywgMHgwOCwgMHgwMCwKLSAgICAweDFkLCAweGMxLCAweGYyLCAweDE3LCAweDAxLCAweDAwLCAweDA4LCAweDAwLAotICAgIDB4ZjIsIDB4MjcsIDB4MDAsIDB4MDAsIDB4MGEsIDB4MDAsIDB4YzAsIDB4NzcsCi0gICAgMHgwMCwgMHgwMiwgMHgwNiwgMHhjMCwgMHhmMiwgMHgxNywgMHgwMSwgMHgwMCwKLSAgICAweDY0LCAweDAwLCAweGYyLCAweDI3LCAweDAwLCAweDAwLCAweDY2LCAweDAwLAotICAgIDB4YzAsIDB4NzcsIDB4NDAsIDB4MDAsIDB4MDYsIDB4YzAsIDB4ZjIsIDB4MTcsCi0gICAgMHgwMSwgMHgwMCwgMHg1YywgMHgwMCwgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwKLSAgICAweDVlLCAweDAwLCAweGMwLCAweDc3LCAweDAxLCAweDAwLCAweDAxLCAweGMwLAotICAgIDB4MWIsIDB4Y2YsIDB4MWEsIDB4Y2YsIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwKLSAgICAweGM4LCAweDA5LCAweDM0LCAweDAxLCAweGNhLCAweDE3LCAweDE0LCAweDAwLAotICAgIDB4ZDgsIDB4NzcsIDB4MDEsIDB4MDAsIDB4MDUsIDB4YzAsIDB4Y2EsIDB4ZDksCi0gICAgMHhkOCwgMHg1NywgMHhmZiwgMHgwMCwgMHgwMSwgMHhjMCwgMHhjYSwgMHhkOSwKLSAgICAweGUyLCAweDE5LCAweDk0LCAweGMwLCAweGUyLCAweDI3LCAweDAwLCAweDAwLAotICAgIDB4ZTIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4ZTIsIDB4MjcsIDB4MDAsIDB4MDAsCi0gICAgMHg5ZiwgMHhhZiwgMHg0MCwgMHgwNiwgMHg5ZiwgMHhhZiwgMHhjNCwgMHgwMSwKLSAgICAweGU3LCAweDU3LCAweDAwLCAweDAwLCAweGQyLCAweDA2LCAweDlmLCAweGExLAotICAgIDB4MGUsIDB4MGEsIDB4Y2EsIDB4MDUsIDB4YzgsIDB4MDUsIDB4YzAsIDB4MDUsCi0gICAgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwgMHhjMCwgMHhkZiwgMHg5NywgMHhjZiwKLSAgICAweGM4LCAweDA5LCAweGEwLCAweDA2LCAweDA4LCAweDYyLCAweDk3LCAweGMwLAotICAgIDB4MjcsIDB4MDQsIDB4YTAsIDB4MDYsIDB4MjcsIDB4NTIsIDB4YTIsIDB4MDYsCi0gICAgMHgwMywgMHhjMSwgMHhlNywgMHgwNywgMHhhMCwgMHgwNiwgMHhhMiwgMHgwNiwKLSAgICAweDlmLCAweGFmLCAweDA4LCAweDAzLCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4YWEsIDB4MDYsIDB4MDIsIDB4YzAsIDB4MjcsIDB4ZGEsIDB4YWEsIDB4MDYsCi0gICAgMHg5NywgMHhjZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4M2YsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweGZmLCAweGZmLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4ZmYsIDB4ZmYsIDB4ZmIsIDB4MTMsIDB4ZTcsIDB4NTcsCi0gICAgMHgwMCwgMHg4MCwgMHhiMiwgMHgwMCwgMHgwNiwgMHhjMiwgMHhlNywgMHgwNywKLSAgICAweGVlLCAweDBiLCAweDEyLCAweDAwLCAweGU3LCAweDA3LCAweDM0LCAweDBjLAotICAgIDB4YjIsIDB4MDAsIDB4ZTcsIDB4MDcsIDB4YzYsIDB4MDcsIDB4ZjIsIDB4MDIsCi0gICAgMHhjOCwgMHgwOSwgMHhiNCwgMHgwMCwgMHhmOCwgMHgwNywgMHgwMiwgMHgwMCwKLSAgICAweDBkLCAweDAwLCAweGQ3LCAweDA5LCAweDBlLCAweGMwLCAweGU3LCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4MGUsIDB4YzAsIDB4YzgsIDB4MDksIDB4ZGUsIDB4MDAsCi0gICAgMHhjOCwgMHgxNywgMHgwOSwgMHgwMCwgMHhjOSwgMHgwNywgMHhkYSwgMHgwNiwKLSAgICAweGMwLCAweDA3LCAweDA0LCAweDAwLCAweDY4LCAweDBhLCAweDAwLCAweGRhLAotICAgIDB4N2QsIDB4YzEsIDB4ZTcsIDB4MDksIDB4YzAsIDB4MDAsIDB4N2MsIDB4MDYsCi0gICAgMHhlNywgMHgwOSwgMHhiZSwgMHgwMCwgMHg3OCwgMHgwNiwgMHhlNywgMHgwOSwKLSAgICAweDEwLCAweDAwLCAweGJjLCAweDA2LCAweGM4LCAweDA3LCAweGQ2LCAweDA3LAotICAgIDB4OWYsIDB4YWYsIDB4YWUsIDB4MDcsIDB4OWYsIDB4YWYsIDB4MDAsIDB4MGEsCi0gICAgMHhjOCwgMHgwOSwgMHhkZSwgMHgwMCwgMHgwMCwgMHgwZSwgMHgwZiwgMHgwMCwKLSAgICAweDQxLCAweDkwLCAweDlmLCAweGRlLCAweDA2LCAweDAwLCAweDQ0LCAweGFmLAotICAgIDB4MjcsIDB4MDAsIDB4YjIsIDB4MDYsIDB4MjcsIDB4MDAsIDB4YjQsIDB4MDYsCi0gICAgMHgyNywgMHgwMCwgMHhiNiwgMHgwNiwgMHhjMCwgMHgwNywgMHg3NCwgMHgwMCwKLSAgICAweDQ0LCAweGFmLCAweDI3LCAweDAwLCAweGQ2LCAweDA2LCAweDA4LCAweDAwLAotICAgIDB4MDAsIDB4OTAsIDB4YzEsIDB4MDcsIDB4M2EsIDB4MDAsIDB4MjAsIDB4MDAsCi0gICAgMHgwMSwgMHhkYSwgMHg3ZCwgMHhjMSwgMHg5ZiwgMHhhZiwgMHhiYSwgMHgwOSwKLSAgICAweGMwLCAweDA3LCAweDQ0LCAweDAwLCAweDQ4LCAweGFmLCAweDI3LCAweDAwLAotICAgIDB4N2EsIDB4MDYsIDB4OWYsIDB4YWYsIDB4OTYsIDB4MGEsIDB4ZTcsIDB4MDcsCi0gICAgMHgwMSwgMHgwMCwgMHhjMCwgMHgwNiwgMHhlNywgMHgwNSwgMHgwZSwgMHhjMCwKLSAgICAweDk3LCAweGNmLCAweDQ5LCAweGFmLCAweGU3LCAweDg3LCAweDQzLCAweDAwLAotICAgIDB4MGUsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4ZmYsIDB4ZmYsIDB4YmUsIDB4MDYsCi0gICAgMHg5ZiwgMHhhZiwgMHhhZSwgMHgwYSwgMHhjMCwgMHgwNywgMHgwMSwgMHgwMCwKLSAgICAweDYwLCAweGFmLCAweDRhLCAweGFmLCAweDk3LCAweGNmLCAweDAwLCAweDA4LAotICAgIDB4MDksIDB4MDgsIDB4MTEsIDB4MDgsIDB4MDAsIDB4ZGEsIDB4N2MsIDB4YzEsCi0gICAgMHg5NywgMHhjZiwgMHg2NywgMHgwNCwgMHhjYywgMHgwMiwgMHhjMCwgMHhkZiwKLSAgICAweDUxLCAweDk0LCAweGIxLCAweGFmLCAweDA2LCAweDAwLCAweGMxLCAweGRmLAotICAgIDB4YzksIDB4MDksIDB4Y2MsIDB4MDIsIDB4NDksIDB4NjIsIDB4NzUsIDB4YzEsCi0gICAgMHhjMCwgMHhkZiwgMHhhNywgMHhjZiwgMHhkNiwgMHgwMiwgMHgwZSwgMHgwMCwKLSAgICAweDI0LCAweDAwLCAweDgwLCAweDA0LCAweDIyLCAweDAwLCAweDRlLCAweDA1LAotICAgIDB4ZDAsIDB4MDAsIDB4MGUsIDB4MGEsIDB4YWEsIDB4MDAsIDB4MzAsIDB4MDgsCi0gICAgMHhiZSwgMHgwMCwgMHg0YSwgMHgwYSwgMHgxMCwgMHgwMCwgMHgyMCwgMHgwMCwKLSAgICAweDA0LCAweDAwLCAweDZlLCAweDA0LCAweDAyLCAweDAwLCAweDZhLCAweDA0LAotICAgIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjQsIDB4YzAsIDB4MDQsIDB4MDQsCi0gICAgMHgyOCwgMHhjMCwgMHhmZSwgMHhmYiwgMHgxZSwgMHhjMCwgMHgwMCwgMHgwNCwKLSAgICAweDIyLCAweGMwLCAweGZmLCAweGY0LCAweGMwLCAweDAwLCAweDkwLCAweDA5LAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmYsIDB4ZmYsIDB4NTYsIDB4MDgsCi0gICAgMHg2MCwgMHgwOCwgMHhkMCwgMHgwOCwgMHhkYSwgMHgwOCwgMHgwMCwgMHgwOSwKLSAgICAweDA0LCAweDA5LCAweDA4LCAweDA5LCAweDMyLCAweDA5LCAweDQyLCAweDA5LAotICAgIDB4NTAsIDB4MDksIDB4NTIsIDB4MDksIDB4NWEsIDB4MDksIDB4NWEsIDB4MDksCi0gICAgMHgyNywgMHgwMiwgMHhjYSwgMHgwNiwgMHg5NywgMHhjZiwgMHhlNywgMHgwNywKLSAgICAweDAwLCAweDAwLCAweGNhLCAweDA2LCAweDBhLCAweDBlLCAweDAxLCAweDAwLAotICAgIDB4Y2EsIDB4NTcsIDB4MGUsIDB4MDAsIDB4OWYsIDB4YzMsIDB4NWEsIDB4MDksCi0gICAgMHhjYSwgMHgzNywgMHgwMCwgMHgwMCwgMHg5ZiwgMHhjMiwgMHg1YSwgMHgwOSwKLSAgICAweDBhLCAweGQyLCAweGIyLCAweGNmLCAweDE2LCAweDA4LCAweGM4LCAweDA5LAotICAgIDB4ZGUsIDB4MDAsIDB4MDcsIDB4MDYsIDB4OWYsIDB4Y2YsIDB4NmMsIDB4MDksCi0gICAgMHgxNywgMHgwMiwgMHhjOCwgMHgwOSwgMHhkZSwgMHgwMCwgMHgwMCwgMHgwZSwKLSAgICAweDBmLCAweDAwLCAweDQxLCAweDkwLCAweDlmLCAweGRlLCAweDA2LCAweDAwLAotICAgIDB4YzgsIDB4MDUsIDB4MzAsIDB4NTAsIDB4MDYsIDB4MDAsIDB4OWYsIDB4YzgsCi0gICAgMHg1YSwgMHgwOSwgMHgyNywgMHgwYywgMHgwMiwgMHgwMCwgMHhiMCwgMHgwNiwKLSAgICAweGMwLCAweDA5LCAweGIyLCAweDA2LCAweDI3LCAweDAwLCAweGI0LCAweDA2LAotICAgIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4YWUsIDB4MDYsIDB4MjcsIDB4MDAsCi0gICAgMHg4MCwgMHgwNiwgMHgwMCwgMHgxYywgMHgwNiwgMHgwMCwgMHgyNywgMHgwMCwKLSAgICAweGI2LCAweDA2LCAweDQxLCAweDkwLCAweDY3LCAweDUwLCAweGIwLCAweDA2LAotICAgIDB4MGQsIDB4YzAsIDB4NjcsIDB4MDAsIDB4N2UsIDB4MDYsIDB4MjcsIDB4MGMsCi0gICAgMHgwNiwgMHgwMCwgMHg4MiwgMHgwNiwgMHhlNywgMHgwNywgMHhiYywgMHgwOCwKLSAgICAweDg0LCAweDA2LCAweGM4LCAweDA3LCAweDdlLCAweDA2LCAweDQxLCAweDkwLAotICAgIDB4NTEsIDB4YWYsIDB4OTcsIDB4Y2YsIDB4OWYsIDB4YWYsIDB4NDgsIDB4MGMsCi0gICAgMHhlNywgMHgwOSwgMHhiNiwgMHgwNiwgMHhiNCwgMHgwNiwgMHhlNywgMHgwOSwKLSAgICAweGIwLCAweDA2LCAweGFlLCAweDA2LCAweDU5LCAweGFmLCAweDk3LCAweGNmLAotICAgIDB4MjcsIDB4MGMsIDB4MDIsIDB4MDAsIDB4YWMsIDB4MDYsIDB4NTksIDB4YWYsCi0gICAgMHg5NywgMHhjZiwgMHgwOSwgMHgwYywgMHgwMiwgMHgwMCwgMHgwOSwgMHhkYSwKLSAgICAweDQ5LCAweGQyLCAweGM5LCAweDE5LCAweGQ2LCAweDA2LCAweGM4LCAweDA3LAotICAgIDB4N2UsIDB4MDYsIDB4ZTAsIDB4MDcsIDB4MDAsIDB4MDAsIDB4NjAsIDB4MDIsCi0gICAgMHhlMCwgMHgwNywgMHgwNCwgMHgwMCwgMHhkMCwgMHgwNywgMHhjYywgMHgwOCwKLSAgICAweDQ4LCAweGRiLCAweDQxLCAweDkwLCAweDUwLCAweGFmLCAweDk3LCAweGNmLAotICAgIDB4NTksIDB4YWYsIDB4OTcsIDB4Y2YsIDB4NTksIDB4YWYsIDB4OTcsIDB4Y2YsCi0gICAgMHhmMCwgMHg1NywgMHgwNiwgMHgwMCwgMHgwNiwgMHgwMCwgMHgyNSwgMHhjMSwKLSAgICAweGU3LCAweDA3LCAweDcwLCAweDA2LCAweDgwLCAweDA2LCAweDQxLCAweDkwLAotICAgIDB4NjcsIDB4MDAsIDB4N2UsIDB4MDYsIDB4MjcsIDB4MGMsIDB4MDYsIDB4MDAsCi0gICAgMHg4MiwgMHgwNiwgMHhlNywgMHgwNywgMHg4YywgMHgwOSwgMHg4NCwgMHgwNiwKLSAgICAweGM4LCAweDA3LCAweDdlLCAweDA2LCAweDQxLCAweDkwLCAweDUxLCAweGFmLAotICAgIDB4OTcsIDB4Y2YsIDB4MDcsIDB4MGMsIDB4MDYsIDB4MDAsIDB4YzcsIDB4NTcsCi0gICAgMHgwNiwgMHgwMCwgMHgwZiwgMHhjMSwgMHhjOCwgMHgwNywgMHg3MCwgMHgwNiwKLSAgICAweDE1LCAweGNmLCAweDAwLCAweDBjLCAweDAyLCAweDAwLCAweDAwLCAweGRhLAotICAgIDB4NDAsIDB4ZDEsIDB4MjcsIDB4MDAsIDB4YzIsIDB4MDYsIDB4MWUsIDB4Y2YsCi0gICAgMHgxZCwgMHhjZiwgMHgyNywgMHgwYywgMHgwMiwgMHgwMCwgMHhjYywgMHgwNiwKLSAgICAweDE5LCAweGNmLCAweDI3LCAweDAyLCAweDIwLCAweDAxLCAweGU3LCAweDA3LAotICAgIDB4MDgsIDB4MDAsIDB4MjIsIDB4MDEsIDB4ZTcsIDB4MDcsIDB4MTMsIDB4MDAsCi0gICAgMHhiMCwgMHhjMCwgMHg5NywgMHhjZiwgMHg0MSwgMHg5MCwgMHg2NywgMHgwMCwKLSAgICAweDdlLCAweDA2LCAweGU3LCAweDAxLCAweDgyLCAweDA2LCAweDI3LCAweDAyLAotICAgIDB4ODAsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4OGMsIDB4MDksIDB4ODQsIDB4MDYsCi0gICAgMHhjOCwgMHgwNywgMHg3ZSwgMHgwNiwgMHhjMSwgMHgwNywgMHgwMCwgMHg4MCwKLSAgICAweDUwLCAweGFmLCAweDk3LCAweGNmLCAweDU5LCAweGFmLCAweDk3LCAweGNmLAotICAgIDB4MDAsIDB4NjAsIDB4MDUsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHhjNCwgMHgwNiwgMHhhNywgMHhjZiwgMHg3YywgMHgwNiwgMHg5ZiwgMHhhZiwKLSAgICAweDAwLCAweDBhLCAweGU3LCAweDA3LCAweDAxLCAweDAwLCAweGM0LCAweDA2LAotICAgIDB4NDksIDB4YWYsIDB4ZDcsIDB4MDksIDB4MDAsIDB4YzAsIDB4MDcsIDB4YWYsCi0gICAgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwgMHg0YSwgMHhhZiwgMHhhNywgMHhjZiwKLSAgICAweDdjLCAweDA2LCAweGMwLCAweDA3LCAweGZlLCAweDdmLCAweDQ0LCAweGFmLAotICAgIDB4NDAsIDB4MDAsIDB4YzAsIDB4MzcsIDB4MDAsIDB4MDEsIDB4NDEsIDB4OTAsCi0gICAgMHhjMCwgMHgzNywgMHgwOCwgMHgwMCwgMHhkZiwgMHhkZSwgMHg1MCwgMHgwNiwKLSAgICAweGMwLCAweDU3LCAweDEwLCAweDAwLCAweDAyLCAweGMyLCAweGMwLCAweDA3LAotICAgIDB4MTAsIDB4MDAsIDB4MjcsIDB4MDAsIDB4OWEsIDB4MDYsIDB4NDEsIDB4OTAsCi0gICAgMHg5ZiwgMHhkZSwgMHg0MCwgMHgwNiwgMHg0NCwgMHhhZiwgMHgyNywgMHgwMCwKLSAgICAweDljLCAweDA2LCAweGMwLCAweDA5LCAweDlhLCAweDA2LCAweDQxLCAweDkwLAotICAgIDB4MDAsIDB4ZDIsIDB4MDAsIDB4ZDgsIDB4OWYsIDB4ZGUsIDB4MDgsIDB4MDAsCi0gICAgMHg0NCwgMHhhZiwgMHgyNywgMHgwMCwgMHhjOCwgMHgwNiwgMHg5NywgMHhjZiwKLSAgICAweGU3LCAweDg3LCAweDAwLCAweDg0LCAweDI4LCAweGMwLCAweGU3LCAweDY3LAotICAgIDB4ZmYsIDB4ZmIsIDB4MjQsIDB4YzAsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4ODcsCi0gICAgMHgwMSwgMHgwMCwgMHhkMiwgMHgwNiwgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwKLSAgICAweGE4LCAweDA2LCAweDk3LCAweGMxLCAweDlmLCAweGFmLCAweDAwLCAweDBhLAotICAgIDB4ZTcsIDB4ODcsIDB4MDAsIDB4MDYsIDB4MjIsIDB4YzAsIDB4ZTcsIDB4MDcsCi0gICAgMHgwMCwgMHgwMCwgMHg5MCwgMHhjMCwgMHhlNywgMHg2NywgMHhmZSwgMHhmZiwKLSAgICAweDNlLCAweGMwLCAweGU3LCAweDA3LCAweDI2LCAweDAwLCAweDBhLCAweGMwLAotICAgIDB4ZTcsIDB4ODcsIDB4MDEsIDB4MDAsIDB4M2UsIDB4YzAsIDB4ZTcsIDB4MDcsCi0gICAgMHhmZiwgMHhmZiwgMHhiZSwgMHgwNiwgMHg5ZiwgMHhhZiwgMHgxMCwgMHgwYiwKLSAgICAweDk3LCAweGNmLCAweDE3LCAweDAwLCAweGE3LCAweGFmLCAweDc4LCAweDA2LAotICAgIDB4YzAsIDB4MDUsIDB4MjcsIDB4MDAsIDB4NzYsIDB4MDYsIDB4ZTcsIDB4ODcsCi0gICAgMHgwMSwgMHgwMCwgMHhkMiwgMHgwNiwgMHg5ZiwgMHhhZiwgMHgwMCwgMHgwYSwKLSAgICAweGU3LCAweDA3LCAweDBjLCAweDAwLCAweDQwLCAweGMwLCAweDlmLCAweGFmLAotICAgIDB4MTAsIDB4MGIsIDB4MDAsIDB4OTAsIDB4MjcsIDB4MDAsIDB4YTYsIDB4MDYsCi0gICAgMHgyNywgMHgwMCwgMHhhYSwgMHgwNiwgMHhlNywgMHgwOSwgMHhiMiwgMHgwNiwKLSAgICAweGI0LCAweDA2LCAweDI3LCAweDAwLCAweGFlLCAweDA2LCAweDI3LCAweDAwLAotICAgIDB4YWMsIDB4MDYsIDB4OWYsIDB4YWYsIDB4YWUsIDB4MGEsIDB4YzAsIDB4MDcsCi0gICAgMHgwMCwgMHgwMCwgMHgyNywgMHgwMCwgMHhiMiwgMHgwMiwgMHgyNywgMHgwMCwKLSAgICAweGI0LCAweDAyLCAweDI3LCAweDAwLCAweDhlLCAweDA2LCAweGMwLCAweDA3LAotICAgIDB4MDYsIDB4MDAsIDB4YzgsIDB4MDksIDB4ZGUsIDB4MDAsIDB4YzgsIDB4MTcsCi0gICAgMHgwMywgMHgwMCwgMHhjOSwgMHgwNywgMHg3MCwgMHgwNiwgMHgyOSwgMHgwYSwKLSAgICAweDAwLCAweGRhLCAweDdkLCAweGMxLCAweDk3LCAweGNmLCAweGQ3LCAweDA5LAotICAgIDB4MDAsIDB4YzAsIDB4YzEsIDB4ZGYsIDB4MDAsIDB4OTAsIDB4MjcsIDB4MDAsCi0gICAgMHg5NiwgMHgwNiwgMHhlNywgMHgwNywgMHg5NiwgMHgwNiwgMHg5OCwgMHgwNiwKLSAgICAweDI3LCAweDAwLCAweGEwLCAweDA2LCAweGU3LCAweDA3LCAweGEwLCAweDA2LAotICAgIDB4YTIsIDB4MDYsIDB4MjcsIDB4MDAsIDB4YTYsIDB4MDYsIDB4MjcsIDB4MDAsCi0gICAgMHg5MCwgMHgwNiwgMHgyNywgMHgwMCwgMHg5ZSwgMHgwNiwgMHhjOCwgMHgwOSwKLSAgICAweDljLCAweDA2LCAweGMxLCAweDA5LCAweDlhLCAweDA2LCAweGM5LCAweDA3LAotICAgIDB4YTQsIDB4MDYsIDB4MTEsIDB4MDIsIDB4MDksIDB4MDIsIDB4YzgsIDB4MTcsCi0gICAgMHg0MCwgMHgwNiwgMHgwMSwgMHhkYSwgMHg3YSwgMHhjMSwgMHg1MSwgMHg5NCwKLSAgICAweGM4LCAweDA5LCAweGM4LCAweDA2LCAweGM5LCAweDA3LCAweGM2LCAweDA2LAotICAgIDB4YzEsIDB4MDksIDB4OWEsIDB4MDYsIDB4MTEsIDB4MDIsIDB4MDksIDB4MDIsCi0gICAgMHhjOCwgMHgxNywgMHgwOCwgMHgwMCwgMHgwMSwgMHhkYSwgMHg3YSwgMHhjMSwKLSAgICAweDUxLCAweDk0LCAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDk3LCAweGNmLAotICAgIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4NzYsIDB4MDYsIDB4OTcsIDB4YzAsCi0gICAgMHg5ZiwgMHhhZiwgMHgwNCwgMHgwMCwgMHhlNywgMHgwOSwgMHhiZSwgMHgwNiwKLSAgICAweGJhLCAweDA2LCAweGU3LCAweDU3LCAweGZmLCAweGZmLCAweGJhLCAweDA2LAotICAgIDB4MDQsIDB4YzEsIDB4ZTcsIDB4MDcsIDB4MTAsIDB4MGIsIDB4YjgsIDB4MDYsCi0gICAgMHg5NywgMHhjZiwgMHhlNywgMHgxNywgMHgzMiwgMHgwMCwgMHhiYSwgMHgwNiwKLSAgICAweGU3LCAweDY3LCAweGZmLCAweDA3LCAweGJhLCAweDA2LCAweGU3LCAweDA3LAotICAgIDB4NDYsIDB4MGIsIDB4YjgsIDB4MDYsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4NTcsCi0gICAgMHgwMCwgMHgwMCwgMHhjMCwgMHgwNiwgMHgyMywgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweDA0LCAweDAwLCAweDkwLCAweGMwLCAweGU3LCAweDA3LCAweDAwLCAweDgwLAotICAgIDB4ODAsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4ODAsIDB4YzAsCi0gICAgMHhlNywgMHgwNywgMHgwMCwgMHg4MCwgMHg4MCwgMHhjMCwgMHhjMCwgMHgwNywKLSAgICAweDAwLCAweDAwLCAweGMwLCAweDA3LCAweDAwLCAweDAwLCAweGMwLCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4ODAsIDB4YzAsCi0gICAgMHhlNywgMHgwNywgMHgwMCwgMHg4MCwgMHg4MCwgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweDAwLCAweDgwLCAweDQwLCAweGMwLCAweGMwLCAweDA3LCAweDAwLCAweDAwLAotICAgIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4NDAsIDB4YzAsIDB4ZTcsIDB4MDcsCi0gICAgMHgwMCwgMHgwMCwgMHg4MCwgMHhjMCwgMHhlNywgMHgwNywgMHgwNCwgMHgwMCwKLSAgICAweDkwLCAweGMwLCAweGU3LCAweDA3LCAweDAwLCAweDAyLCAweDQwLCAweGMwLAotICAgIDB4ZTcsIDB4MDcsIDB4MGMsIDB4MDIsIDB4NDAsIDB4YzAsIDB4ZTcsIDB4MDcsCi0gICAgMHgwMCwgMHgwMCwgMHhjMCwgMHgwNiwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweGI4LCAweDA2LCAweGU3LCAweDA3LCAweDAwLCAweDAwLCAweGQyLCAweDA2LAotICAgIDB4ZDcsIDB4MDksIDB4MDAsIDB4YzAsIDB4YzEsIDB4ZGYsIDB4OWYsIDB4YWYsCi0gICAgMHgzNCwgMHgwMiwgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwgMHg5ZiwgMHhhZiwKLSAgICAweGM0LCAweDAxLCAweDk3LCAweGNmLCAweGQ3LCAweDA5LCAweDAwLCAweGMwLAotICAgIDB4MTcsIDB4MDAsIDB4MTcsIDB4MDIsIDB4OTcsIDB4MDIsIDB4ZTcsIDB4NTcsCi0gICAgMHgwMCwgMHgwMCwgMHhhOCwgMHgwNiwgMHgwNiwgMHhjMCwgMHhjMCwgMHgwOSwKLSAgICAweDkyLCAweGMwLCAweGMwLCAweDc3LCAweDA5LCAweDAyLCAweDlmLCAweGMxLAotICAgIDB4NWMsIDB4MDUsIDB4OWYsIDB4Y2YsIDB4MzIsIDB4MDYsIDB4ZDcsIDB4MDksCi0gICAgMHgwZSwgMHhjMCwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHgwZSwgMHhjMCwKLSAgICAweDlmLCAweGFmLCAweDAyLCAweDBjLCAweGU3LCAweDA1LCAweDBlLCAweGMwLAotICAgIDB4OTcsIDB4Y2YsIDB4ZDcsIDB4MDksIDB4MDAsIDB4YzAsIDB4MTcsIDB4MDIsCi0gICAgMHhjOCwgMHgwOSwgMHhiMCwgMHhjMCwgMHhlNywgMHg2NywgMHhmZSwgMHg3ZiwKLSAgICAweGIwLCAweGMwLCAweGM4LCAweDc3LCAweDAwLCAweDIwLCAweDlmLCAweGMxLAotICAgIDB4NjQsIDB4ZWIsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4YzgsIDB4MDIsCi0gICAgMHg5ZiwgMHhjMSwgMHg4MCwgMHhlYiwgMHhjOCwgMHg5OSwgMHhjYSwgMHgwMiwKLSAgICAweGM4LCAweDY3LCAweDA0LCAweDAwLCAweDlmLCAweGMxLCAweDk2LCAweGViLAotICAgIDB4OWYsIDB4Y2YsIDB4NGMsIDB4ZWIsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHhhNiwgMHhjMCwgMHhlNywgMHgwOSwgMHhiMCwgMHhjMCwgMHhjOCwgMHgwMiwKLSAgICAweGU3LCAweDA3LCAweDAzLCAweDAwLCAweGIwLCAweGMwLCAweDk3LCAweGNmLAotICAgIDB4YzAsIDB4MDksIDB4YjAsIDB4MDYsIDB4YzAsIDB4MzcsIDB4MDEsIDB4MDAsCi0gICAgMHg5NywgMHhjOSwgMHhjOSwgMHgwOSwgMHhiMiwgMHgwNiwgMHgwMiwgMHgwMCwKLSAgICAweDQxLCAweDkwLCAweDQ4LCAweDAyLCAweGM5LCAweDE3LCAweDA2LCAweDAwLAotICAgIDB4OWYsIDB4YWYsIDB4MDgsIDB4MDQsIDB4OWYsIDB4YTIsIDB4NzIsIDB4MGMsCi0gICAgMHgwMiwgMHhkYSwgMHg3NywgMHhjMSwgMHg0MSwgMHg2MCwgMHg3MSwgMHhjMSwKLSAgICAweDk3LCAweGNmLCAweDE3LCAweDAyLCAweDU3LCAweDAyLCAweDQzLCAweDA0LAotICAgIDB4MjEsIDB4MDQsIDB4ZTAsIDB4MDAsIDB4NDMsIDB4MDQsIDB4MjEsIDB4MDQsCi0gICAgMHhlMCwgMHgwMCwgMHg0MywgMHgwNCwgMHgyMSwgMHgwNCwgMHhlMCwgMHgwMCwKLSAgICAweGMxLCAweDA3LCAweDAxLCAweDAwLCAweGM5LCAweDA1LCAweGM4LCAweDA1LAotICAgIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4MDcsIDB4MDEsIDB4MDAsIDB4OGUsIDB4MDYsCi0gICAgMHhjOCwgMHgwNywgMHg4NiwgMHgwNiwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweDg2LCAweDA2LCAweGU3LCAweDA3LCAweDEwLCAweDA4LCAweDg4LCAweDA2LAotICAgIDB4ZTcsIDB4MDcsIDB4MDQsIDB4MDAsIDB4OGEsIDB4MDYsIDB4ZTcsIDB4MDcsCi0gICAgMHhiYywgMHgwYywgMHg4YywgMHgwNiwgMHhjMSwgMHgwNywgMHgwMywgMHg4MCwKLSAgICAweDUwLCAweGFmLCAweDk3LCAweGNmLCAweGU3LCAweDA3LCAweDAwLCAweDAwLAotICAgIDB4OGUsIDB4MDYsIDB4OTcsIDB4Y2YsCi0gICAgMHgwMCwgMHgwMAotfTsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqICAgICBrYXdldGhfbmV3X2NvZGVfZml4Ci0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBfX3U4IGthd2V0aF9uZXdfY29kZV9maXhbXSA9IAotewotICAgIDB4QjYsIDB4QzMsIDB4QUEsIDB4QkIsIDB4Q0MsIDB4REQsCi0gICAgMHgwMiwgMHgwMCwgMHgwOCwgMHgwMCwgMHgyOCwgMHgwMCwgMHgyYywgMHgwMCwKLSAgICAweDM0LCAweDAwLCAweDNjLCAweDAwLCAweDQwLCAweDAwLCAweDQ4LCAweDAwLAotICAgIDB4NTQsIDB4MDAsIDB4NTgsIDB4MDAsIDB4NWUsIDB4MDAsIDB4NjQsIDB4MDAsCi0gICAgMHg2OCwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2YywgMHgwMCwgMHg3MiwgMHgwMCwKLSAgICAweDc2LCAweDAwLCAweDdjLCAweDAwLCAweDgwLCAweDAwLCAweDg2LCAweDAwLAotICAgIDB4OGEsIDB4MDAsIDB4OTAsIDB4MDAsIDB4OTQsIDB4MDAsIDB4OTgsIDB4MDAsCi0gICAgMHg5ZSwgMHgwMCwgMHhhNiwgMHgwMCwgMHhhYSwgMHgwMCwgMHhiMCwgMHgwMCwKLSAgICAweGI0LCAweDAwLCAweGI4LCAweDAwLCAweGMwLCAweDAwLCAweGM2LCAweDAwLAotICAgIDB4Y2EsIDB4MDAsIDB4ZDAsIDB4MDAsIDB4ZDQsIDB4MDAsIDB4ZDgsIDB4MDAsCi0gICAgMHhlMCwgMHgwMCwgMHhkZSwgMHgwMCwgMHhlOCwgMHgwMCwgMHhmMCwgMHgwMCwKLSAgICAweGZjLCAweDAwLCAweDA0LCAweDAxLCAweDBhLCAweDAxLCAweDE4LCAweDAxLAotICAgIDB4MjIsIDB4MDEsIDB4MjgsIDB4MDEsIDB4M2EsIDB4MDEsIDB4M2UsIDB4MDEsCi0gICAgMHg3ZSwgMHgwMSwgMHg5OCwgMHgwMSwgMHg5YywgMHgwMSwgMHhhMiwgMHgwMSwKLSAgICAweGFjLCAweDAxLCAweGIyLCAweDAxLCAweGJhLCAweDAxLCAweGMwLCAweDAxLAotICAgIDB4YzgsIDB4MDEsIDB4ZDAsIDB4MDEsIDB4ZDYsIDB4MDEsIDB4ZjQsIDB4MDEsCi0gICAgMHhmYywgMHgwMSwgMHgwOCwgMHgwMiwgMHgxNiwgMHgwMiwgMHgxYSwgMHgwMiwKLSAgICAweDIyLCAweDAyLCAweDJhLCAweDAyLCAweDJlLCAweDAyLCAweDNlLCAweDAyLAotICAgIDB4NDQsIDB4MDIsIDB4NGEsIDB4MDIsIDB4NTAsIDB4MDIsIDB4NjQsIDB4MDIsCi0gICAgMHg2MiwgMHgwMiwgMHg2YywgMHgwMiwgMHg3MiwgMHgwMiwgMHg4NiwgMHgwMiwKLSAgICAweDhjLCAweDAyLCAweDkwLCAweDAyLCAweDllLCAweDAyLCAweGJjLCAweDAyLAotICAgIDB4ZDAsIDB4MDIsIDB4ZDgsIDB4MDIsIDB4ZGMsIDB4MDIsIDB4ZTAsIDB4MDIsCi0gICAgMHhlOCwgMHgwMiwgMHhlNiwgMHgwMiwgMHhmNCwgMHgwMiwgMHhmZSwgMHgwMiwKLSAgICAweDA0LCAweDAzLCAweDBjLCAweDAzLCAweDI4LCAweDAzLCAweDdjLCAweDAzLAotICAgIDB4OTAsIDB4MDMsIDB4OTQsIDB4MDMsIDB4OWMsIDB4MDMsIDB4YTIsIDB4MDMsCi0gICAgMHhjMCwgMHgwMywgMHhkMCwgMHgwMywgMHhkNCwgMHgwMywgMHhlZSwgMHgwMywKLSAgICAweGZhLCAweDAzLCAweGZlLCAweDAzLCAweDJlLCAweDA0LCAweDMyLCAweDA0LAotICAgIDB4M2MsIDB4MDQsIDB4NDAsIDB4MDQsIDB4NGUsIDB4MDQsIDB4NzYsIDB4MDQsCi0gICAgMHg3YywgMHgwNCwgMHg4NCwgMHgwNCwgMHg4YSwgMHgwNCwgMHg4ZSwgMHgwNCwKLSAgICAweGE2LCAweDA0LCAweGIwLCAweDA0LCAweGI4LCAweDA0LCAweGJlLCAweDA0LAotICAgIDB4ZDIsIDB4MDQsIDB4ZGMsIDB4MDQsIDB4ZWUsIDB4MDQsIDB4MTAsIDB4MDUsCi0gICAgMHgxYSwgMHgwNSwgMHgyNCwgMHgwNSwgMHgyYSwgMHgwNSwgMHgzNiwgMHgwNSwKLSAgICAweDM0LCAweDA1LCAweDNjLCAweDA1LCAweDQyLCAweDA1LCAweDY0LCAweDA1LAotICAgIDB4NmEsIDB4MDUsIDB4NmUsIDB4MDUsIDB4ODYsIDB4MDUsIDB4MjIsIDB4MDYsCi0gICAgMHgyNiwgMHgwNiwgMHgyYywgMHgwNiwgMHgzMCwgMHgwNiwgMHg0MiwgMHgwNiwKLSAgICAweDRhLCAweDA2LCAweDRlLCAweDA2LCAweDU2LCAweDA2LCAweDU0LCAweDA2LAotICAgIDB4NWEsIDB4MDYsIDB4NjAsIDB4MDYsIDB4NjYsIDB4MDYsIDB4ZTgsIDB4MDYsCi0gICAgMHhlZSwgMHgwNiwgMHhmNCwgMHgwNiwgMHgxNiwgMHgwNywgMHgyNiwgMHgwNywKLSAgICAweDJjLCAweDA3LCAweDMyLCAweDA3LCAweDM2LCAweDA3LCAweDNhLCAweDA3LAotICAgIDB4M2UsIDB4MDcsIDB4NTIsIDB4MDcsIDB4NTYsIDB4MDcsIDB4NWEsIDB4MDcsCi0gICAgMHg2NCwgMHgwNywgMHg3NiwgMHgwNywgMHg3YSwgMHgwNywgMHg4MCwgMHgwNywKLSAgICAweDg0LCAweDA3LCAweDhhLCAweDA3LCAweDllLCAweDA3LCAweGEyLCAweDA3LAotICAgIDB4ZGEsIDB4MDcsIDB4ZGUsIDB4MDcsIDB4ZTIsIDB4MDcsIDB4ZTYsIDB4MDcsCi0gICAgMHhlYSwgMHgwNywgMHhlZSwgMHgwNywgMHhmMiwgMHgwNywgMHhmNiwgMHgwNywKLSAgICAweDBlLCAweDA4LCAweDE2LCAweDA4LCAweDE4LCAweDA4LCAweDFhLCAweDA4LAotICAgIDB4MWMsIDB4MDgsIDB4MWUsIDB4MDgsIDB4MjAsIDB4MDgsIDB4MjIsIDB4MDgsCi0gICAgMHgyNCwgMHgwOCwgMHgyNiwgMHgwOCwgMHgyOCwgMHgwOCwgMHgyYSwgMHgwOCwKLSAgICAweDJjLCAweDA4LCAweDJlLCAweDA4LCAweDMyLCAweDA4LCAweDNhLCAweDA4LAotICAgIDB4NDYsIDB4MDgsIDB4NGUsIDB4MDgsIDB4NTQsIDB4MDgsIDB4NWUsIDB4MDgsCi0gICAgMHg3OCwgMHgwOCwgMHg3ZSwgMHgwOCwgMHg4MiwgMHgwOCwgMHg4NiwgMHgwOCwKLSAgICAweDhjLCAweDA4LCAweDkwLCAweDA4LCAweDk4LCAweDA4LCAweDllLCAweDA4LAotICAgIDB4YTQsIDB4MDgsIDB4YWEsIDB4MDgsIDB4YjAsIDB4MDgsIDB4YWUsIDB4MDgsCi0gICAgMHhiNCwgMHgwOCwgMHhiZSwgMHgwOCwgMHhjNCwgMHgwOCwgMHhjMiwgMHgwOCwKLSAgICAweGNhLCAweDA4LCAweGM4LCAweDA4LCAweGQ0LCAweDA4LCAweGU0LCAweDA4LAotICAgIDB4ZTgsIDB4MDgsIDB4ZjYsIDB4MDgsIDB4MTQsIDB4MDksIDB4MTIsIDB4MDksCi0gICAgMHgxYSwgMHgwOSwgMHgyMCwgMHgwOSwgMHgyNiwgMHgwOSwgMHgyNCwgMHgwOSwKLSAgICAweDJhLCAweDA5LCAweDNlLCAweDA5LCAweDRjLCAweDA5LCAweDU2LCAweDA5LAotICAgIDB4NzAsIDB4MDksIDB4NzQsIDB4MDksIDB4NzgsIDB4MDksIDB4N2UsIDB4MDksCi0gICAgMHg3YywgMHgwOSwgMHg4MiwgMHgwOSwgMHg5OCwgMHgwOSwgMHg5YywgMHgwOSwKLSAgICAweGEwLCAweDA5LCAweGE2LCAweDA5LCAweGI4LCAweDA5LCAweGRjLCAweDA5LAotICAgIDB4ZTgsIDB4MDksIDB4ZWMsIDB4MDksIDB4ZmMsIDB4MDksIDB4MTIsIDB4MGEsCi0gICAgMHgxOCwgMHgwYSwgMHgxZSwgMHgwYSwgMHg0MiwgMHgwYSwgMHg0NiwgMHgwYSwKLSAgICAweDRlLCAweDBhLCAweDU0LCAweDBhLCAweDVhLCAweDBhLCAweDVlLCAweDBhLAotICAgIDB4NjgsIDB4MGEsIDB4NmUsIDB4MGEsIDB4NzIsIDB4MGEsIDB4NzgsIDB4MGEsCi0gICAgMHg3NiwgMHgwYSwgMHg3YywgMHgwYSwgMHg4MCwgMHgwYSwgMHg4NCwgMHgwYSwKLSAgICAweDk0LCAweDBhLCAweGE0LCAweDBhLCAweGI4LCAweDBhLCAweGJlLCAweDBhLAotICAgIDB4YmMsIDB4MGEsIDB4YzIsIDB4MGEsIDB4YzgsIDB4MGEsIDB4YzYsIDB4MGEsCi0gICAgMHhjYywgMHgwYSwgMHhkMCwgMHgwYSwgMHhkNCwgMHgwYSwgMHhkOCwgMHgwYSwKLSAgICAweGRjLCAweDBhLCAweGUwLCAweDBhLCAweGYyLCAweDBhLCAweGY2LCAweDBhLAotICAgIDB4ZmEsIDB4MGEsIDB4MTQsIDB4MGIsIDB4MWEsIDB4MGIsIDB4MjAsIDB4MGIsCi0gICAgMHgxZSwgMHgwYiwgMHgyNiwgMHgwYiwgMHgyZSwgMHgwYiwgMHgyYywgMHgwYiwKLSAgICAweDM2LCAweDBiLCAweDNjLCAweDBiLCAweDQyLCAweDBiLCAweDQwLCAweDBiLAotICAgIDB4NGEsIDB4MGIsIDB4YWEsIDB4MGIsIDB4YjAsIDB4MGIsIDB4YjYsIDB4MGIsCi0gICAgMHhjMCwgMHgwYiwgMHhjOCwgMHgwYiwgMHhkYSwgMHgwYiwgMHhlOCwgMHgwYiwKLSAgICAweGVjLCAweDBiLCAweGZhLCAweDBiLCAweDRhLCAweDBjLCAweDU0LCAweDBjLAotICAgIDB4NjIsIDB4MGMsIDB4NjYsIDB4MGMsIDB4OTYsIDB4MGMsIDB4OWEsIDB4MGMsCi0gICAgMHhhMCwgMHgwYywgMHhhNiwgMHgwYywgMHhhNCwgMHgwYywgMHhhYywgMHgwYywKLSAgICAweGIyLCAweDBjLCAweGIwLCAweDBjLCAweGMwLCAweDBjLAotICAgIDB4MDAsIDB4MDAKLX07Ci0KLQotc3RhdGljIGNvbnN0IGludCBsZW5fa2F3ZXRoX3RyaWdnZXJfY29kZSA9IHNpemVvZihrYXdldGhfdHJpZ2dlcl9jb2RlKTsKLXN0YXRpYyBjb25zdCBpbnQgbGVuX2thd2V0aF90cmlnZ2VyX2NvZGVfZml4ID0gc2l6ZW9mKGthd2V0aF90cmlnZ2VyX2NvZGVfZml4KTsKLXN0YXRpYyBjb25zdCBpbnQgbGVuX2thd2V0aF9uZXdfY29kZSA9IHNpemVvZihrYXdldGhfbmV3X2NvZGUpOwotc3RhdGljIGNvbnN0IGludCBsZW5fa2F3ZXRoX25ld19jb2RlX2ZpeCA9IHNpemVvZihrYXdldGhfbmV3X2NvZGVfZml4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi9jb3NhLmMgYi9kcml2ZXJzL25ldC93YW4vY29zYS5jCmluZGV4IGIwZmNlMTMuLjU4MjczMjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi9jb3NhLmMKKysrIGIvZHJpdmVycy9uZXQvd2FuL2Nvc2EuYwpAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjdW5kZWYgQ09TQV9TTE9XX0lPCS8qIGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkgKi8KIApAQCAtOTcwLDE1ICs5NzEsMjEgQEAKIAlzdHJ1Y3QgY2hhbm5lbF9kYXRhICpjaGFuOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IG47CisJaW50IHJldCA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWlmICgobj1pbWlub3IoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSk+PkNBUkRfTUlOT1JfQklUUykKLQkJPj0gbnJfY2FyZHMpCi0JCXJldHVybiAtRU5PREVWOworCQk+PSBucl9jYXJkcykgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAJY29zYSA9IGNvc2FfY2FyZHMrbjsKIAogCWlmICgobj1pbWlub3IoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkKLQkJJiAoKDE8PENBUkRfTUlOT1JfQklUUyktMSkpID49IGNvc2EtPm5jaGFubmVscykKLQkJcmV0dXJuIC1FTk9ERVY7CisJCSYgKCgxPDxDQVJEX01JTk9SX0JJVFMpLTEpKSA+PSBjb3NhLT5uY2hhbm5lbHMpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCWNoYW4gPSBjb3NhLT5jaGFuICsgbjsKIAkKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBjaGFuOwpAQCAtOTg3LDcgKzk5NCw4IEBACiAKIAlpZiAoY2hhbi0+dXNhZ2UgPCAwKSB7IC8qIGluIG5ldGRldiBtb2RlICovCiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvc2EtPmxvY2ssIGZsYWdzKTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJcmV0ID0gLUVCVVNZOworCQlnb3RvIG91dDsKIAl9CiAJY29zYS0+dXNhZ2UrKzsKIAljaGFuLT51c2FnZSsrOwpAQCAtOTk2LDcgKzEwMDQsOSBAQAogCWNoYW4tPnNldHVwX3J4ID0gY2hyZGV2X3NldHVwX3J4OwogCWNoYW4tPnJ4X2RvbmUgPSBjaHJkZXZfcnhfZG9uZTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb3NhLT5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgY29zYV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2FuL2hkbGNfZnIuYyBiL2RyaXZlcnMvbmV0L3dhbi9oZGxjX2ZyLmMKaW5kZXggNTIwYmIwYi4uNmQzNTE1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2FuL2hkbGNfZnIuYworKysgYi9kcml2ZXJzL25ldC93YW4vaGRsY19mci5jCkBAIC0xMDA4LDYgKzEwMDgsNyBAQAogCQlzdGF0cy0+cnhfYnl0ZXMgKz0gc2tiLT5sZW47CiAJCWlmIChwdmMtPnN0YXRlLmJlY24pCiAJCQlzdGF0cy0+cnhfY29tcHJlc3NlZCsrOworCQlza2ItPmRldiA9IGRldjsKIAkJbmV0aWZfcngoc2tiKTsKIAkJcmV0dXJuIE5FVF9SWF9TVUNDRVNTOwogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4veDI1X2FzeS5jIGIvZHJpdmVycy9uZXQvd2FuL3gyNV9hc3kuYwppbmRleCAyNDllMTgwLi4wNjlmOGJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93YW4veDI1X2FzeS5jCisrKyBiL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxsaW51eC94MjUuaD4KICNpbmNsdWRlIDxsaW51eC9sYXBiLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3J0bmV0bGluay5oPgogI2luY2x1ZGUgIngyNV9hc3kuaCIKIAogI2luY2x1ZGUgPG5ldC94MjVkZXZpY2UuaD4KQEAgLTYwMSw4ICs2MDIsMTAgQEAKIAlpZiAoIXNsIHx8IHNsLT5tYWdpYyAhPSBYMjVfQVNZX01BR0lDKQogCQlyZXR1cm47CiAKKwlydG5sX2xvY2soKTsKIAlpZiAoc2wtPmRldi0+ZmxhZ3MgJiBJRkZfVVApCiAJCWRldl9jbG9zZShzbC0+ZGV2KTsKKwlydG5sX3VubG9jaygpOwogCiAJdHR5LT5kaXNjX2RhdGEgPSBOVUxMOwogCXNsLT50dHkgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsLmMKaW5kZXggNDM4ZTYzZS4uZDFhY2VmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdG1lbC5jCkBAIC01NjAsNyArNTYwLDcgQEAKIHN0YXRpYyB2b2lkIGJ1aWxkX3dwYV9taWIoc3RydWN0IGF0bWVsX3ByaXZhdGUgKnByaXYpOwogc3RhdGljIGludCBhdG1lbF9pb2N0bChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKnJxLCBpbnQgY21kKTsKIHN0YXRpYyB2b2lkIGF0bWVsX2NvcHlfdG9fY2FyZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgZGVzdCwKLQkJCSAgICAgICB1bnNpZ25lZCBjaGFyICpzcmMsIHUxNiBsZW4pOworCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNyYywgdTE2IGxlbik7CiBzdGF0aWMgdm9pZCBhdG1lbF9jb3B5X3RvX2hvc3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciAqZGVzdCwKIAkJCSAgICAgICB1MTYgc3JjLCB1MTYgbGVuKTsKIHN0YXRpYyB2b2lkIGF0bWVsX3NldF9nY3Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2IG1hc2spOwpAQCAtMzg1Myw3ICszODUzLDcgQEAKIAlpZiAocHJpdi0+Y2FyZF90eXBlID09IENBUkRfVFlQRV9FRVBST00pIHsKIAkJLyogY29weSBpbiBmaXJtd2FyZSBpZiBuZWVkZWQgKi8KIAkJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmd19lbnRyeSA9IE5VTEw7Ci0JCXVuc2lnbmVkIGNoYXIgKmZ3OworCQljb25zdCB1bnNpZ25lZCBjaGFyICpmdzsKIAkJaW50IGxlbiA9IHByaXYtPmZpcm13YXJlX2xlbmd0aDsKIAkJaWYgKCEoZncgPSBwcml2LT5maXJtd2FyZSkpIHsKIAkJCWlmIChwcml2LT5maXJtd2FyZV90eXBlID09IEFUTUVMX0ZXX1RZUEVfTk9ORSkgewpAQCAtNDEyMCw3ICs0MTIwLDcgQEAKIH0KIAogc3RhdGljIHZvaWQgYXRtZWxfY29weV90b19jYXJkKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiBkZXN0LAotCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgKnNyYywgdTE2IGxlbikKKwkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMsIHUxNiBsZW4pCiB7CiAJaW50IGk7CiAJYXRtZWxfd3JpdGVBUihkZXYsIGRlc3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2xlZHMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9sZWRzLmMKaW5kZXggMzZhOWM0Mi4uNzZmNGM3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2xlZHMuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvbGVkcy5jCkBAIC03Miw2ICs3Miw5IEBACiAJc3RydWN0IGI0M193bGRldiAqZGV2ID0gbGVkLT5kZXY7CiAJYm9vbCByYWRpb19lbmFibGVkOwogCisJaWYgKHVubGlrZWx5KGI0M19zdGF0dXMoZGV2KSA8IEI0M19TVEFUX0lOSVRJQUxJWkVEKSkKKwkJcmV0dXJuOworCiAJLyogQ2hlY2tpbmcgdGhlIHJhZGlvLWVuYWJsZWQgc3RhdHVzIGhlcmUgaXMgc2xpZ2h0bHkgcmFjeSwKIAkgKiBidXQgd2Ugd2FudCB0byBhdm9pZCB0aGUgbG9ja2luZyBvdmVyaGVhZCBhbmQgd2UgZG9uJ3QgY2FyZQogCSAqIHdoZXRoZXIgdGhlIExFRCBoYXMgdGhlIHdyb25nIHN0YXRlIGZvciBhIHNlY29uZC4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvbWFpbi5jCmluZGV4IGZhNGIwZDguLmE3MDgyNzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL21haW4uYwpAQCAtMjg4MywxMiArMjg4MywxMSBAQAogCiAJaWYgKHVubGlrZWx5KHNrYi0+bGVuIDwgMiArIDIgKyA2KSkgewogCQkvKiBUb28gc2hvcnQsIHRoaXMgY2FuJ3QgYmUgYSB2YWxpZCBmcmFtZS4gKi8KLQkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKLQkJcmV0dXJuIE5FVERFVl9UWF9PSzsKKwkJZ290byBkcm9wX3BhY2tldDsKIAl9CiAJQjQzX1dBUk5fT04oc2tiX3NoaW5mbyhza2IpLT5ucl9mcmFncyk7CiAJaWYgKHVubGlrZWx5KCFkZXYpKQotCQlyZXR1cm4gTkVUREVWX1RYX0JVU1k7CisJCWdvdG8gZHJvcF9wYWNrZXQ7CiAKIAkvKiBUcmFuc21pc3Npb25zIG9uIHNlcGVyYXRlIHF1ZXVlcyBjYW4gcnVuIGNvbmN1cnJlbnRseS4gKi8KIAlyZWFkX2xvY2tfaXJxc2F2ZSgmd2wtPnR4X2xvY2ssIGZsYWdzKTsKQEAgLTI5MDQsNyArMjkwMywxMiBAQAogCXJlYWRfdW5sb2NrX2lycXJlc3RvcmUoJndsLT50eF9sb2NrLCBmbGFncyk7CiAKIAlpZiAodW5saWtlbHkoZXJyKSkKLQkJcmV0dXJuIE5FVERFVl9UWF9CVVNZOworCQlnb3RvIGRyb3BfcGFja2V0OworCXJldHVybiBORVRERVZfVFhfT0s7CisKK2Ryb3BfcGFja2V0OgorCS8qIFdlIGNhbiBub3QgdHJhbnNtaXQgdGhpcyBwYWNrZXQuIERyb3AgaXQuICovCisJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDNsZWdhY3kvZG1hLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDNsZWdhY3kvZG1hLmMKaW5kZXggYzk5MGY4Ny4uOTNkZGMxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzbGVnYWN5L2RtYS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0M2xlZ2FjeS9kbWEuYwpAQCAtODc2LDYgKzg3Niw3IEBACiAJaWYgKCFyaW5nKQogCQlnb3RvIG91dDsKIAlyaW5nLT50eXBlID0gdHlwZTsKKwlyaW5nLT5kZXYgPSBkZXY7CiAKIAlucl9zbG90cyA9IEI0M2xlZ2FjeV9SWFJJTkdfU0xPVFM7CiAJaWYgKGZvcl90eCkKQEAgLTkyMiw3ICs5MjMsNiBAQAogCQkJCSBETUFfVE9fREVWSUNFKTsKIAl9CiAKLQlyaW5nLT5kZXYgPSBkZXY7CiAJcmluZy0+bnJfc2xvdHMgPSBucl9zbG90czsKIAlyaW5nLT5tbWlvX2Jhc2UgPSBiNDNsZWdhY3lfZG1hY29udHJvbGxlcl9iYXNlKHR5cGUsIGNvbnRyb2xsZXJfaW5kZXgpOwogCXJpbmctPmluZGV4ID0gY29udHJvbGxlcl9pbmRleDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0M2xlZ2FjeS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDNsZWdhY3kvbWFpbi5jCmluZGV4IDIwNDA3N2MuLjNlNjEyZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0M2xlZ2FjeS9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzbGVnYWN5L21haW4uYwpAQCAtMjM3OCw4ICsyMzc4LDEwIEBACiAJfSBlbHNlCiAJCWVyciA9IGI0M2xlZ2FjeV9kbWFfdHgoZGV2LCBza2IsIGN0bCk7CiBvdXQ6Ci0JaWYgKHVubGlrZWx5KGVycikpCi0JCXJldHVybiBORVRERVZfVFhfQlVTWTsKKwlpZiAodW5saWtlbHkoZXJyKSkgeworCQkvKiBEcm9wIHRoZSBwYWNrZXQuICovCisJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CisJfQogCXJldHVybiBORVRERVZfVFhfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfODAyMTFfcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfODAyMTFfcnguYwppbmRleCA0ZmQ3MzgwLi4wMjBmNDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwXzgwMjExX3J4LmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF84MDIxMV9yeC5jCkBAIC02NCw3ICs2NCw3IEBACiAJaW50IGhkcmxlbiwgcGhkcmxlbiwgaGVhZF9uZWVkLCB0YWlsX25lZWQ7CiAJdTE2IGZjOwogCWludCBwcmlzbV9oZWFkZXIsIHJldDsKLQlzdHJ1Y3QgaWVlZTgwMjExX2hkcl80YWRkciAqaGRyOworCXN0cnVjdCBpZWVlODAyMTFfaGRyXzRhZGRyICpmaGRyOwogCiAJaWZhY2UgPSBuZXRkZXZfcHJpdihkZXYpOwogCWxvY2FsID0gaWZhY2UtPmxvY2FsOwpAQCAtODMsOCArODMsOCBAQAogCQlwaGRybGVuID0gMDsKIAl9CiAKLQloZHIgPSAoc3RydWN0IGllZWU4MDIxMV9oZHJfNGFkZHIgKikgc2tiLT5kYXRhOwotCWZjID0gbGUxNl90b19jcHUoaGRyLT5mcmFtZV9jdGwpOworCWZoZHIgPSAoc3RydWN0IGllZWU4MDIxMV9oZHJfNGFkZHIgKikgc2tiLT5kYXRhOworCWZjID0gbGUxNl90b19jcHUoZmhkci0+ZnJhbWVfY3RsKTsKIAogCWlmICh0eXBlID09IFBSSVNNMl9SWF9NR01UICYmIChmYyAmIElFRUU4MDIxMV9GQ1RMX1ZFUlMpKSB7CiAJCXByaW50ayhLRVJOX0RFQlVHICIlczogZHJvcHBlZCBtYW5hZ2VtZW50IGZyYW1lIHdpdGggaGVhZGVyICIKQEAgLTU1MSw3ICs1NTEsNyBAQAogCSAgICAgaGRyLT5hZGRyMVsyXSAhPSAweGZmIHx8IGhkci0+YWRkcjFbM10gIT0gMHhmZiB8fAogCSAgICAgaGRyLT5hZGRyMVs0XSAhPSAweGZmIHx8IGhkci0+YWRkcjFbNV0gIT0gMHhmZikpIHsKIAkJLyogUkEgKG9yIEJTU0lEKSBpcyBub3Qgb3VycyAtIGRyb3AgKi8KLQkJUERFQlVHKERFQlVHX0VYVFJBLCAiJXM6IHJlY2VpdmVkIFdEUyBmcmFtZSB3aXRoICIKKwkJUERFQlVHKERFQlVHX0VYVFJBMiwgIiVzOiByZWNlaXZlZCBXRFMgZnJhbWUgd2l0aCAiCiAJCSAgICAgICAibm90IG93biBvciBicm9hZGNhc3QgJXM9JXNcbiIsCiAJCSAgICAgICBsb2NhbC0+ZGV2LT5uYW1lLAogCQkgICAgICAgZmMgJiBJRUVFODAyMTFfRkNUTF9GUk9NRFMgPyAiUkEiIDogIkJTU0lEIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfYXAuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfYXAuYwppbmRleCAwYWNkOTU4Li5hYjk4MWFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2FwLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9hcC5jCkBAIC0xOTMwLDcgKzE5MzAsNyBAQAogCQlQREVCVUcoREVCVUdfUFMsICIgICBQU1BPTEwgYW5kIEFJRFsxNToxNF0gbm90IHNldFxuIik7CiAJCXJldHVybjsKIAl9Ci0JYWlkICY9IH5CSVQoMTUpICYgfkJJVCgxNCk7CisJYWlkICY9IH4oQklUKDE1KSB8IEJJVCgxNCkpOwogCWlmIChhaWQgPT0gMCB8fCBhaWQgPiBNQVhfQUlEX1RBQkxFX1NJWkUpIHsKIAkJUERFQlVHKERFQlVHX1BTLCAiICAgaW52YWxpZCBhaWQ9JWRcbiIsIGFpZCk7CiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfY3MuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfY3MuYwppbmRleCBlZDQzMTdhMS4uM2I0ZTU1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9jcy5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfY3MuYwpAQCAtNTMzLDEwICs1MzMsMTAgQEAKIGRvIHsgbGFzdF9mbiA9IChmbik7IGlmICgobGFzdF9yZXQgPSAocmV0KSkgIT0gMCkgZ290byBjc19mYWlsZWQ7IH0gd2hpbGUgKDApCiAKICNkZWZpbmUgQ0ZHX0NIRUNLMihmbiwgcmV0ZikgXAotZG8geyBpbnQgcmV0ID0gKHJldGYpOyBcCi1pZiAocmV0ICE9IDApIHsgXAotCVBERUJVRyhERUJVR19FWFRSQSwgIkNhcmRTZXJ2aWNlcygiICNmbiAiKSByZXR1cm5lZCAlZFxuIiwgcmV0KTsgXAotCWNzX2Vycm9yKGxpbmssIGZuLCByZXQpOyBcCitkbyB7IGludCBfcmV0ID0gKHJldGYpOyBcCitpZiAoX3JldCAhPSAwKSB7IFwKKwlQREVCVUcoREVCVUdfRVhUUkEsICJDYXJkU2VydmljZXMoIiAjZm4gIikgcmV0dXJuZWQgJWRcbiIsIF9yZXQpOyBcCisJY3NfZXJyb3IobGluaywgZm4sIF9yZXQpOyBcCiAJZ290byBuZXh0X2VudHJ5OyBcCiB9IFwKIH0gd2hpbGUgKDApCkBAIC03NzcsOCArNzc3LDEwIEBACiAJaW50IGRldl9vcGVuID0gMDsKIAlzdHJ1Y3QgaG9zdGFwX2ludGVyZmFjZSAqaWZhY2UgPSBOVUxMOwogCi0JaWYgKGRldikKLQkJaWZhY2UgPSBuZXRkZXZfcHJpdihkZXYpOworCWlmICghZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmYWNlID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAogCVBERUJVRyhERUJVR19FWFRSQSwgIiVzOiBDU19FVkVOVF9QTV9TVVNQRU5EXG4iLCBkZXZfaW5mbyk7CiAJaWYgKGlmYWNlICYmIGlmYWNlLT5sb2NhbCkKQEAgLTc5OCw4ICs4MDAsMTAgQEAKIAlpbnQgZGV2X29wZW4gPSAwOwogCXN0cnVjdCBob3N0YXBfaW50ZXJmYWNlICppZmFjZSA9IE5VTEw7CiAKLQlpZiAoZGV2KQotCQlpZmFjZSA9IG5ldGRldl9wcml2KGRldik7CisJaWYgKCFkZXYpCisJCXJldHVybiAtRU5PREVWOworCisJaWZhY2UgPSBuZXRkZXZfcHJpdihkZXYpOwogCiAJUERFQlVHKERFQlVHX0VYVFJBLCAiJXM6IENTX0VWRU5UX1BNX1JFU1VNRVxuIiwgZGV2X2luZm8pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2h3LmMKaW5kZXggY2RmOTBjNC4uOTM2ZjUyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9ody5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfaHcuYwpAQCAtMjgzNSw3ICsyODM1LDcgQEAKIHsKIAlsb2NhbF9pbmZvX3QgKmxvY2FsID0gKGxvY2FsX2luZm9fdCAqKSBkYXRhOwogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBsb2NhbC0+ZGV2OwotCXUxNiBjaGFubmVsOworCXUxNiBjaGFuOwogCiAJaWYgKGxvY2FsLT5wYXNzaXZlX3NjYW5faW50ZXJ2YWwgPD0gMCkKIAkJcmV0dXJuOwpAQCAtMjg3MiwxMSArMjg3MiwxMSBAQAogCiAJCXByaW50ayhLRVJOX0RFQlVHICIlczogcGFzc2l2ZSBzY2FuIGNoYW5uZWwgJWRcbiIsCiAJCSAgICAgICBkZXYtPm5hbWUsIGxvY2FsLT5wYXNzaXZlX3NjYW5fY2hhbm5lbCk7Ci0JCWNoYW5uZWwgPSBsb2NhbC0+cGFzc2l2ZV9zY2FuX2NoYW5uZWw7CisJCWNoYW4gPSBsb2NhbC0+cGFzc2l2ZV9zY2FuX2NoYW5uZWw7CiAJCWxvY2FsLT5wYXNzaXZlX3NjYW5fc3RhdGUgPSBQQVNTSVZFX1NDQU5fV0FJVDsKIAkJbG9jYWwtPnBhc3NpdmVfc2Nhbl90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaIC8gMTA7CiAJfSBlbHNlIHsKLQkJY2hhbm5lbCA9IGxvY2FsLT5jaGFubmVsOworCQljaGFuID0gbG9jYWwtPmNoYW5uZWw7CiAJCWxvY2FsLT5wYXNzaXZlX3NjYW5fc3RhdGUgPSBQQVNTSVZFX1NDQU5fTElTVEVOOwogCQlsb2NhbC0+cGFzc2l2ZV9zY2FuX3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsKIAkJCWxvY2FsLT5wYXNzaXZlX3NjYW5faW50ZXJ2YWwgKiBIWjsKQEAgLTI4ODQsOSArMjg4NCw5IEBACiAKIAlpZiAoaGZhMzg0eF9jbWRfY2FsbGJhY2soZGV2LCBIRkEzODRYX0NNRENPREVfVEVTVCB8CiAJCQkJIChIRkEzODRYX1RFU1RfQ0hBTkdFX0NIQU5ORUwgPDwgOCksCi0JCQkJIGNoYW5uZWwsIE5VTEwsIDApKQorCQkJCSBjaGFuLCBOVUxMLCAwKSkKIAkJcHJpbnRrKEtFUk5fRVJSICIlczogcGFzc2l2ZSBzY2FuIGNoYW5uZWwgc2V0ICVkICIKLQkJICAgICAgICJmYWlsZWRcbiIsIGRldi0+bmFtZSwgY2hhbm5lbCk7CisJCSAgICAgICAiZmFpbGVkXG4iLCBkZXYtPm5hbWUsIGNoYW4pOwogCiAJYWRkX3RpbWVyKCZsb2NhbC0+cGFzc2l2ZV9zY2FuX3RpbWVyKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9tYWluLmMKaW5kZXggZjdhZWM5My4uYTM4ZTg1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9tYWluLmMKQEAgLTU5NCw3ICs1OTQsOCBAQAogfQogCiAKLWludCBob3N0YXBfODAyMTFfaGVhZGVyX3BhcnNlKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGNoYXIgKmhhZGRyKQorc3RhdGljIGludCBob3N0YXBfODAyMTFfaGVhZGVyX3BhcnNlKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCisJCQkJICAgICB1bnNpZ25lZCBjaGFyICpoYWRkcikKIHsKIAlzdHJ1Y3QgaG9zdGFwX2ludGVyZmFjZSAqaWZhY2UgPSBuZXRkZXZfcHJpdihza2ItPmRldik7CiAJbG9jYWxfaW5mb190ICpsb2NhbCA9IGlmYWNlLT5sb2NhbDsKQEAgLTg1Nyw3ICs4NTgsNiBAQAogCS5yZWJ1aWxkCT0gZXRoX3JlYnVpbGRfaGVhZGVyLAogCS5jYWNoZQkJPSBldGhfaGVhZGVyX2NhY2hlLAogCS5jYWNoZV91cGRhdGUJPSBldGhfaGVhZGVyX2NhY2hlX3VwZGF0ZSwKLQogCS5wYXJzZQkJPSBob3N0YXBfODAyMTFfaGVhZGVyX3BhcnNlLAogfTsKIEVYUE9SVF9TWU1CT0woaG9zdGFwXzgwMjExX29wcyk7CkBAIC0xMTUwLDcgKzExNTAsNiBAQAogRVhQT1JUX1NZTUJPTChob3N0YXBfc2V0X2F1dGhfYWxncyk7CiBFWFBPUlRfU1lNQk9MKGhvc3RhcF9kdW1wX3J4X2hlYWRlcik7CiBFWFBPUlRfU1lNQk9MKGhvc3RhcF9kdW1wX3R4X2hlYWRlcik7Ci1FWFBPUlRfU1lNQk9MKGhvc3RhcF84MDIxMV9oZWFkZXJfcGFyc2UpOwogRVhQT1JUX1NZTUJPTChob3N0YXBfODAyMTFfZ2V0X2hkcmxlbik7CiBFWFBPUlRfU1lNQk9MKGhvc3RhcF9nZXRfc3RhdHMpOwogRVhQT1JUX1NZTUJPTChob3N0YXBfc2V0dXBfZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTM5NDUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTM5NDUuYwppbmRleCA2MmEzZDhmLi41NWFjODUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC0zOTQ1LmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtMzk0NS5jCkBAIC00NDksNyArNDQ5LDcgQEAKIAogCWlmIChwcmludF9zdW1tYXJ5KSB7CiAJCWNoYXIgKnRpdGxlOwotCQl1MzIgcmF0ZTsKKwkJaW50IHJhdGU7CiAKIAkJaWYgKGh1bmRyZWQpCiAJCQl0aXRsZSA9ICIxMDBGcmFtZXMiOwpAQCAtNDg3LDcgKzQ4Nyw3IEBACiAJCSAqICAgIGJ1dCB5b3UgY2FuIGhhY2sgaXQgdG8gc2hvdyBtb3JlLCBpZiB5b3UnZCBsaWtlIHRvLiAqLwogCQlpZiAoZGF0YWZyYW1lKQogCQkJSVdMX0RFQlVHX1JYKCIlczogbWhkPTB4JTA0eCwgZHN0PTB4JTAyeCwgIgotCQkJCSAgICAgImxlbj0ldSwgcnNzaT0lZCwgY2hubD0lZCwgcmF0ZT0ldSwgXG4iLAorCQkJCSAgICAgImxlbj0ldSwgcnNzaT0lZCwgY2hubD0lZCwgcmF0ZT0lZCwgXG4iLAogCQkJCSAgICAgdGl0bGUsIGZjLCBoZWFkZXItPmFkZHIxWzVdLAogCQkJCSAgICAgbGVuZ3RoLCByc3NpLCBjaGFubmVsLCByYXRlKTsKIAkJZWxzZSB7CkBAIC01ODgsOCArNTg4LDEyIEBACiAKIAlpZiAocmF0ZSA9PSAtMSkKIAkJaXdsMzk0NV9ydC0+cnRfcmF0ZSA9IDA7Ci0JZWxzZQorCWVsc2UgeworCQlpZiAoc3RhdHMtPmJhbmQgPT0gSUVFRTgwMjExX0JBTkRfNUdIWikKKwkJCXJhdGUgKz0gSVdMX0ZJUlNUX09GRE1fUkFURTsKKwogCQlpd2wzOTQ1X3J0LT5ydF9yYXRlID0gaXdsMzk0NV9yYXRlc1tyYXRlXS5pZWVlOworCX0KIAogCS8qIGFudGVubmEgbnVtYmVyICovCiAJYW50ZW5uYSA9IHBoeV9mbGFnc19odyAmIFJYX1JFU19QSFlfRkxBR1NfQU5URU5OQV9NU0s7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC00OTY1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC00OTY1LmMKaW5kZXggYmYxOWViOC4uZGUzMzBhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtNDk2NS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTQ5NjUuYwpAQCAtMzUyOCw4ICszNTI4LDEyIEBACiAKIAlpZiAocmF0ZSA9PSAtMSkKIAkJaXdsNDk2NV9ydC0+cnRfcmF0ZSA9IDA7Ci0JZWxzZQorCWVsc2UgeworCQlpZiAoc3RhdHMtPmJhbmQgPT0gSUVFRTgwMjExX0JBTkRfNUdIWikKKwkJCXJhdGUgKz0gSVdMX0ZJUlNUX09GRE1fUkFURTsKKwogCQlpd2w0OTY1X3J0LT5ydF9yYXRlID0gaXdsNDk2NV9yYXRlc1tyYXRlXS5pZWVlOworCX0KIAogCS8qCiAJICogImFudGVubmEgbnVtYmVyIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wzOTQ1LWJhc2UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsMzk0NS1iYXNlLmMKaW5kZXggMTM5MjViNi4uNjAyN2UxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wzOTQ1LWJhc2UuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bDM5NDUtYmFzZS5jCkBAIC0yMjI3LDcgKzIyMjcsMTAgQEAKIAl9CiAKIAlJV0xfREVCVUdfSU5GTygiU3RhcnRpbmcgc2Nhbi4uLlxuIik7Ci0JcHJpdi0+c2Nhbl9iYW5kcyA9IDI7CisJaWYgKHByaXYtPmNmZy0+c2t1ICYgSVdMX1NLVV9HKQorCQlwcml2LT5zY2FuX2JhbmRzIHw9IEJJVChJRUVFODAyMTFfQkFORF8yR0haKTsKKwlpZiAocHJpdi0+Y2ZnLT5za3UgJiBJV0xfU0tVX0EpCisJCXByaXYtPnNjYW5fYmFuZHMgfD0gQklUKElFRUU4MDIxMV9CQU5EXzVHSFopOwogCXNldF9iaXQoU1RBVFVTX1NDQU5OSU5HLCAmcHJpdi0+c3RhdHVzKTsKIAlwcml2LT5zY2FuX3N0YXJ0ID0gamlmZmllczsKIAlwcml2LT5zY2FuX3Bhc3Nfc3RhcnQgPSBwcml2LT5zY2FuX3N0YXJ0OwpAQCAtMzM1MiwxMyArMzM1NSwxOCBAQAogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnNjYW5fY2hlY2spOwogCiAJSVdMX0RFQlVHX0lORk8oIlNjYW4gcGFzcyBvbiAlc0dIeiB0b29rICVkbXNcbiIsCi0JCSAgICAgICAocHJpdi0+c2Nhbl9iYW5kcyA9PSAyKSA/ICIyLjQiIDogIjUuMiIsCisJCSAgICAgICAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF8yR0haKSkgPworCQkJCQkJCSIyLjQiIDogIjUuMiIsCiAJCSAgICAgICBqaWZmaWVzX3RvX21zZWNzKGVsYXBzZWRfamlmZmllcwogCQkJCQkocHJpdi0+c2Nhbl9wYXNzX3N0YXJ0LCBqaWZmaWVzKSkpOwogCi0JLyogUmVtb3ZlIHRoaXMgc2Nhbm5lZCBiYW5kIGZyb20gdGhlIGxpc3QKLQkgKiBvZiBwZW5kaW5nIGJhbmRzIHRvIHNjYW4gKi8KLQlwcml2LT5zY2FuX2JhbmRzLS07CisJLyogUmVtb3ZlIHRoaXMgc2Nhbm5lZCBiYW5kIGZyb20gdGhlIGxpc3Qgb2YgcGVuZGluZworCSAqIGJhbmRzIHRvIHNjYW4sIGJhbmQgRyBwcmVjZWRlcyBBIGluIG9yZGVyIG9mIHNjYW5uaW5nCisJICogYXMgc2VlbiBpbiBpd2wzOTQ1X2JnX3JlcXVlc3Rfc2NhbiAqLworCWlmIChwcml2LT5zY2FuX2JhbmRzICYgQklUKElFRUU4MDIxMV9CQU5EXzJHSFopKQorCQlwcml2LT5zY2FuX2JhbmRzICY9IH5CSVQoSUVFRTgwMjExX0JBTkRfMkdIWik7CisJZWxzZSBpZiAocHJpdi0+c2Nhbl9iYW5kcyAmICBCSVQoSUVFRTgwMjExX0JBTkRfNUdIWikpCisJCXByaXYtPnNjYW5fYmFuZHMgJj0gfkJJVChJRUVFODAyMTFfQkFORF81R0haKTsKIAogCS8qIElmIGEgcmVxdWVzdCB0byBhYm9ydCB3YXMgZ2l2ZW4sIG9yIHRoZSBzY2FuIGRpZCBub3Qgc3VjY2VlZAogCSAqIHRoZW4gd2UgcmVzZXQgdGhlIHNjYW4gc3RhdGUgbWFjaGluZSBhbmQgdGVybWluYXRlLApAQCAtNDk3Miw3ICs0OTgwLDcgQEAKIAogCQljaF9pbmZvID0gaXdsMzk0NV9nZXRfY2hhbm5lbF9pbmZvKHByaXYsIGJhbmQsIHNjYW5fY2gtPmNoYW5uZWwpOwogCQlpZiAoIWlzX2NoYW5uZWxfdmFsaWQoY2hfaW5mbykpIHsKLQkJCUlXTF9ERUJVR19TQ0FOKCJDaGFubmVsICVkIGlzIElOVkFMSUQgZm9yIHRoaXMgU0tVLlxuIiwKKwkJCUlXTF9ERUJVR19TQ0FOKCJDaGFubmVsICVkIGlzIElOVkFMSUQgZm9yIHRoaXMgYmFuZC5cbiIsCiAJCQkJICAgICAgIHNjYW5fY2gtPmNoYW5uZWwpOwogCQkJY29udGludWU7CiAJCX0KQEAgLTYzMTUsMjEgKzYzMjMsMTYgQEAKIAogCS8qIGZsYWdzICsgcmF0ZSBzZWxlY3Rpb24gKi8KIAotCXN3aXRjaCAocHJpdi0+c2Nhbl9iYW5kcykgewotCWNhc2UgMjoKKwlpZiAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF8yR0haKSkgewogCQlzY2FuLT5mbGFncyA9IFJYT05fRkxHX0JBTkRfMjRHX01TSyB8IFJYT05fRkxHX0FVVE9fREVURUNUX01TSzsKIAkJc2Nhbi0+dHhfY21kLnJhdGUgPSBJV0xfUkFURV8xTV9QTENQOwogCQlzY2FuLT5nb29kX0NSQ190aCA9IDA7CiAJCWJhbmQgPSBJRUVFODAyMTFfQkFORF8yR0haOwotCQlicmVhazsKLQotCWNhc2UgMToKKwl9IGVsc2UgaWYgKHByaXYtPnNjYW5fYmFuZHMgJiBCSVQoSUVFRTgwMjExX0JBTkRfNUdIWikpIHsKIAkJc2Nhbi0+dHhfY21kLnJhdGUgPSBJV0xfUkFURV82TV9QTENQOwogCQlzY2FuLT5nb29kX0NSQ190aCA9IElXTF9HT09EX0NSQ19USDsKIAkJYmFuZCA9IElFRUU4MDIxMV9CQU5EXzVHSFo7Ci0JCWJyZWFrOwotCi0JZGVmYXVsdDoKKwl9IGVsc2UgewogCQlJV0xfV0FSTklORygiSW52YWxpZCBzY2FuIGJhbmQgY291bnRcbiIpOwogCQlnb3RvIGRvbmU7CiAJfQpAQCAtNjY4NCw3ICs2Njg3LDggQEAKIAogCWlmIChwcml2LT5pd19tb2RlID09IElFRUU4MDIxMV9JRl9UWVBFX01OVFIpIHsKIAkJSVdMX0RFQlVHX01BQzgwMjExKCJsZWF2ZSAtIG1vbml0b3JcbiIpOwotCQlyZXR1cm4gLTE7CisJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CisJCXJldHVybiAwOwogCX0KIAogCUlXTF9ERUJVR19UWCgiZGV2LT54bWl0KCVkIGJ5dGVzKSBhdCByYXRlIDB4JTAyeFxuIiwgc2tiLT5sZW4sCkBAIC02NzcwLDcgKzY3NzQsNyBAQAogCWNoX2luZm8gPSBpd2wzOTQ1X2dldF9jaGFubmVsX2luZm8ocHJpdiwgY29uZi0+Y2hhbm5lbC0+YmFuZCwKIAkJCQkJICAgY29uZi0+Y2hhbm5lbC0+aHdfdmFsdWUpOwogCWlmICghaXNfY2hhbm5lbF92YWxpZChjaF9pbmZvKSkgewotCQlJV0xfREVCVUdfU0NBTigiQ2hhbm5lbCAlZCBbJWRdIGlzIElOVkFMSUQgZm9yIHRoaXMgU0tVLlxuIiwKKwkJSVdMX0RFQlVHX1NDQU4oIkNoYW5uZWwgJWQgWyVkXSBpcyBJTlZBTElEIGZvciB0aGlzIGJhbmQuXG4iLAogCQkJICAgICAgIGNvbmYtPmNoYW5uZWwtPmh3X3ZhbHVlLCBjb25mLT5jaGFubmVsLT5iYW5kKTsKIAkJSVdMX0RFQlVHX01BQzgwMjExKCJsZWF2ZSAtIGludmFsaWQgY2hhbm5lbFxuIik7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsNDk2NS1iYXNlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bDQ5NjUtYmFzZS5jCmluZGV4IDg4M2I0MmYuLjBiZDU1YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsNDk2NS1iYXNlLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2w0OTY1LWJhc2UuYwpAQCAtMTc3NCw3ICsxNzc0LDEwIEBACiAJfQogCiAJSVdMX0RFQlVHX0lORk8oIlN0YXJ0aW5nIHNjYW4uLi5cbiIpOwotCXByaXYtPnNjYW5fYmFuZHMgPSAyOworCWlmIChwcml2LT5jZmctPnNrdSAmIElXTF9TS1VfRykKKwkJcHJpdi0+c2Nhbl9iYW5kcyB8PSBCSVQoSUVFRTgwMjExX0JBTkRfMkdIWik7CisJaWYgKHByaXYtPmNmZy0+c2t1ICYgSVdMX1NLVV9BKQorCQlwcml2LT5zY2FuX2JhbmRzIHw9IEJJVChJRUVFODAyMTFfQkFORF81R0haKTsKIAlzZXRfYml0KFNUQVRVU19TQ0FOTklORywgJnByaXYtPnN0YXR1cyk7CiAJcHJpdi0+c2Nhbl9zdGFydCA9IGppZmZpZXM7CiAJcHJpdi0+c2Nhbl9wYXNzX3N0YXJ0ID0gcHJpdi0+c2Nhbl9zdGFydDsKQEAgLTMwMjMsOCArMzAyNiw5IEBACiAKIAlJV0xfREVCVUdfVFhfUkVQTFkoIlR4IHF1ZXVlIHJlY2xhaW0gJWRcbiIsIGluZGV4KTsKIAlpZiAoaW5kZXggIT0gLTEpIHsKLQkJaW50IGZyZWVkID0gaXdsNDk2NV90eF9xdWV1ZV9yZWNsYWltKHByaXYsIHR4cV9pZCwgaW5kZXgpOwogI2lmZGVmIENPTkZJR19JV0w0OTY1X0hUCisJCWludCBmcmVlZCA9IGl3bDQ5NjVfdHhfcXVldWVfcmVjbGFpbShwcml2LCB0eHFfaWQsIGluZGV4KTsKKwogCQlpZiAodGlkICE9IE1BWF9USURfQ09VTlQpCiAJCQlwcml2LT5zdGF0aW9uc1tzdGFfaWRdLnRpZFt0aWRdLnRmZHNfaW5fcXVldWUgLT0gZnJlZWQ7CiAJCWlmIChpd2w0OTY1X3F1ZXVlX3NwYWNlKCZ0eHEtPnEpID4gdHhxLT5xLmxvd19tYXJrICYmCkBAIC0zMjc2LDEzICszMjgwLDE4IEBACiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+c2Nhbl9jaGVjayk7CiAKIAlJV0xfREVCVUdfSU5GTygiU2NhbiBwYXNzIG9uICVzR0h6IHRvb2sgJWRtc1xuIiwKLQkJICAgICAgIChwcml2LT5zY2FuX2JhbmRzID09IDIpID8gIjIuNCIgOiAiNS4yIiwKKwkJICAgICAgIChwcml2LT5zY2FuX2JhbmRzICYgQklUKElFRUU4MDIxMV9CQU5EXzJHSFopKSA/CisJCQkJCQkiMi40IiA6ICI1LjIiLAogCQkgICAgICAgamlmZmllc190b19tc2VjcyhlbGFwc2VkX2ppZmZpZXMKIAkJCQkJKHByaXYtPnNjYW5fcGFzc19zdGFydCwgamlmZmllcykpKTsKIAotCS8qIFJlbW92ZSB0aGlzIHNjYW5uZWQgYmFuZCBmcm9tIHRoZSBsaXN0Ci0JICogb2YgcGVuZGluZyBiYW5kcyB0byBzY2FuICovCi0JcHJpdi0+c2Nhbl9iYW5kcy0tOworCS8qIFJlbW92ZSB0aGlzIHNjYW5uZWQgYmFuZCBmcm9tIHRoZSBsaXN0IG9mIHBlbmRpbmcKKwkgKiBiYW5kcyB0byBzY2FuLCBiYW5kIEcgcHJlY2VkZXMgQSBpbiBvcmRlciBvZiBzY2FubmluZworCSAqIGFzIHNlZW4gaW4gaXdsX2JnX3JlcXVlc3Rfc2NhbiAqLworCWlmIChwcml2LT5zY2FuX2JhbmRzICYgQklUKElFRUU4MDIxMV9CQU5EXzJHSFopKQorCQlwcml2LT5zY2FuX2JhbmRzICY9IH5CSVQoSUVFRTgwMjExX0JBTkRfMkdIWik7CisJZWxzZSBpZiAocHJpdi0+c2Nhbl9iYW5kcyAmICBCSVQoSUVFRTgwMjExX0JBTkRfNUdIWikpCisJCXByaXYtPnNjYW5fYmFuZHMgJj0gfkJJVChJRUVFODAyMTFfQkFORF81R0haKTsKIAogCS8qIElmIGEgcmVxdWVzdCB0byBhYm9ydCB3YXMgZ2l2ZW4sIG9yIHRoZSBzY2FuIGRpZCBub3Qgc3VjY2VlZAogCSAqIHRoZW4gd2UgcmVzZXQgdGhlIHNjYW4gc3RhdGUgbWFjaGluZSBhbmQgdGVybWluYXRlLApAQCAtMzI5Miw3ICszMzAxLDcgQEAKIAkJY2xlYXJfYml0KFNUQVRVU19TQ0FOX0FCT1JUSU5HLCAmcHJpdi0+c3RhdHVzKTsKIAl9IGVsc2UgewogCQkvKiBJZiB0aGVyZSBhcmUgbW9yZSBiYW5kcyBvbiB0aGlzIHNjYW4gcGFzcyByZXNjaGVkdWxlICovCi0JCWlmIChwcml2LT5zY2FuX2JhbmRzID4gMCkKKwkJaWYgKHByaXYtPnNjYW5fYmFuZHMpCiAJCQlnb3RvIHJlc2NoZWR1bGU7CiAJfQogCkBAIC00NjM1LDEwICs0NjQ0LDkgQEAKIAogCQlzY2FuX2NoLT5jaGFubmVsID0gaWVlZTgwMjExX2ZyZXF1ZW5jeV90b19jaGFubmVsKGNoYW5uZWxzW2ldLmNlbnRlcl9mcmVxKTsKIAotCQljaF9pbmZvID0gaXdsX2dldF9jaGFubmVsX2luZm8ocHJpdiwgYmFuZCwKLQkJCQkJIHNjYW5fY2gtPmNoYW5uZWwpOworCQljaF9pbmZvID0gaXdsX2dldF9jaGFubmVsX2luZm8ocHJpdiwgYmFuZCwgc2Nhbl9jaC0+Y2hhbm5lbCk7CiAJCWlmICghaXNfY2hhbm5lbF92YWxpZChjaF9pbmZvKSkgewotCQkJSVdMX0RFQlVHX1NDQU4oIkNoYW5uZWwgJWQgaXMgSU5WQUxJRCBmb3IgdGhpcyBTS1UuXG4iLAorCQkJSVdMX0RFQlVHX1NDQU4oIkNoYW5uZWwgJWQgaXMgSU5WQUxJRCBmb3IgdGhpcyBiYW5kLlxuIiwKIAkJCQkgICAgICAgc2Nhbl9jaC0+Y2hhbm5lbCk7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtNTgzMCw4ICs1ODM4LDcgQEAKIAlzY2FuLT50eF9jbWQuc3RvcF90aW1lLmxpZmVfdGltZSA9IFRYX0NNRF9MSUZFX1RJTUVfSU5GSU5JVEU7CiAKIAotCXN3aXRjaCAocHJpdi0+c2Nhbl9iYW5kcykgewotCWNhc2UgMjoKKwlpZiAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF8yR0haKSkgewogCQlzY2FuLT5mbGFncyA9IFJYT05fRkxHX0JBTkRfMjRHX01TSyB8IFJYT05fRkxHX0FVVE9fREVURUNUX01TSzsKIAkJc2Nhbi0+dHhfY21kLnJhdGVfbl9mbGFncyA9CiAJCQkJaXdsNDk2NV9od19zZXRfcmF0ZV9uX2ZsYWdzKElXTF9SQVRFXzFNX1BMQ1AsCkBAIC01ODM5LDE3ICs1ODQ2LDEzIEBACiAKIAkJc2Nhbi0+Z29vZF9DUkNfdGggPSAwOwogCQliYW5kID0gSUVFRTgwMjExX0JBTkRfMkdIWjsKLQkJYnJlYWs7Ci0KLQljYXNlIDE6CisJfSBlbHNlIGlmIChwcml2LT5zY2FuX2JhbmRzICYgQklUKElFRUU4MDIxMV9CQU5EXzVHSFopKSB7CiAJCXNjYW4tPnR4X2NtZC5yYXRlX25fZmxhZ3MgPQogCQkJCWl3bDQ5NjVfaHdfc2V0X3JhdGVfbl9mbGFncyhJV0xfUkFURV82TV9QTENQLAogCQkJCVJBVEVfTUNTX0FOVF9CX01TSyk7CiAJCXNjYW4tPmdvb2RfQ1JDX3RoID0gSVdMX0dPT0RfQ1JDX1RIOwogCQliYW5kID0gSUVFRTgwMjExX0JBTkRfNUdIWjsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgorCX0gZWxzZSB7CiAJCUlXTF9XQVJOSU5HKCJJbnZhbGlkIHNjYW4gYmFuZCBjb3VudFxuIik7CiAJCWdvdG8gZG9uZTsKIAl9CkBAIC02MjM0LDcgKzYyMzcsOCBAQAogCiAJaWYgKHByaXYtPml3X21vZGUgPT0gSUVFRTgwMjExX0lGX1RZUEVfTU5UUikgewogCQlJV0xfREVCVUdfTUFDODAyMTEoImxlYXZlIC0gbW9uaXRvclxuIik7Ci0JCXJldHVybiAtMTsKKwkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKKwkJcmV0dXJuIDA7CiAJfQogCiAJSVdMX0RFQlVHX1RYKCJkZXYtPnhtaXQoJWQgYnl0ZXMpIGF0IHJhdGUgMHglMDJ4XG4iLCBza2ItPmxlbiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2lmX2NzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl9jcy5jCmluZGV4IDU0MjgwZTIuLmQwNzViNDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2lmX2NzLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfY3MuYwpAQCAtMTIyLDcgKzEyMiw3IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgaWZfY3Nfd3JpdGUxNl9yZXAoCiAJc3RydWN0IGlmX2NzX2NhcmQgKmNhcmQsCiAJdWludCByZWcsCi0Jdm9pZCAqYnVmLAorCWNvbnN0IHZvaWQgKmJ1ZiwKIAl1bnNpZ25lZCBsb25nIGNvdW50KQogewogCWlmIChkZWJ1Z19vdXRwdXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl9zZGlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl9zZGlvLmMKaW5kZXggNTFmNjY0Yi4uM2RkNTM3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfc2Rpby5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2lmX3NkaW8uYwpAQCAtMzkyLDcgKzM5Miw3IEBACiAJdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogCXU4ICpjaHVua19idWZmZXI7CiAJdTMyIGNodW5rX3NpemU7Ci0JdTggKmZpcm13YXJlOworCWNvbnN0IHU4ICpmaXJtd2FyZTsKIAlzaXplX3Qgc2l6ZTsKIAogCWxic19kZWJfZW50ZXIoTEJTX0RFQl9TRElPKTsKQEAgLTUwOCw3ICs1MDgsNyBAQAogCXVuc2lnbmVkIGxvbmcgdGltZW91dDsKIAl1OCAqY2h1bmtfYnVmZmVyOwogCXUzMiBjaHVua19zaXplOwotCXU4ICpmaXJtd2FyZTsKKwljb25zdCB1OCAqZmlybXdhcmU7CiAJc2l6ZV90IHNpemUsIHJlcV9zaXplOwogCiAJbGJzX2RlYl9lbnRlcihMQlNfREVCX1NESU8pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl91c2IuYwppbmRleCA4MDMyZGY3Li40ZGNkNDA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl91c2IuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl91c2IuYwpAQCAtMjkzLDcgKzI5Myw3IEBACiBzdGF0aWMgaW50IGlmX3VzYl9zZW5kX2Z3X3BrdChzdHJ1Y3QgaWZfdXNiX2NhcmQgKmNhcmRwKQogewogCXN0cnVjdCBmd2RhdGEgKmZ3ZGF0YSA9IGNhcmRwLT5lcF9vdXRfYnVmOwotCXVpbnQ4X3QgKmZpcm13YXJlID0gY2FyZHAtPmZ3LT5kYXRhOworCWNvbnN0IHVpbnQ4X3QgKmZpcm13YXJlID0gY2FyZHAtPmZ3LT5kYXRhOwogCiAJLyogSWYgd2UgZ290IGEgQ1JDIGZhaWx1cmUgb24gdGhlIGxhc3QgYmxvY2ssIGJhY2sKIAkgICB1cCBhbmQgcmV0cnkgaXQgKi8KQEAgLTc0Niw3ICs3NDYsNyBAQAogICogICAgICAgICBsZW4gICAgICAgICAgICAgICBpbWFnZSBsZW5ndGgKICAqICBAcmV0dXJuICAgICAwIG9yIC0xCiAgKi8KLXN0YXRpYyBpbnQgY2hlY2tfZndmaWxlX2Zvcm1hdCh1aW50OF90ICpkYXRhLCB1aW50MzJfdCB0b3RsZW4pCitzdGF0aWMgaW50IGNoZWNrX2Z3ZmlsZV9mb3JtYXQoY29uc3QgdWludDhfdCAqZGF0YSwgdWludDMyX3QgdG90bGVuKQogewogCXVpbnQzMl90IGJpbmNtZCwgZXhpdDsKIAl1aW50MzJfdCBibGtzaXplLCBvZmZzZXQsIGxlbjsKQEAgLTkyNSw2ICs5MjUsNyBAQAogCS5pZF90YWJsZSA9IGlmX3VzYl90YWJsZSwKIAkuc3VzcGVuZCA9IGlmX3VzYl9zdXNwZW5kLAogCS5yZXN1bWUgPSBpZl91c2JfcmVzdW1lLAorCS5yZXNldF9yZXN1bWUgPSBpZl91c2JfcmVzdW1lLAogfTsKIAogc3RhdGljIGludCBfX2luaXQgaWZfdXNiX2luaXRfbW9kdWxlKHZvaWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9zY2FuLmMKaW5kZXggZDQ0OGM5NzAuLjM4N2Q0ODc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9zY2FuLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvc2Nhbi5jCkBAIC01NjcsMTEgKzU2NywxMSBAQAogCXBvcyArPSA4OwogCiAJLyogYmVhY29uIGludGVydmFsIGlzIDIgYnl0ZXMgbG9uZyAqLwotCWJzcy0+YmVhY29ucGVyaW9kID0gbGUxNl90b19jcHVwKCh2b2lkICopIHBvcyk7CisJYnNzLT5iZWFjb25wZXJpb2QgPSBnZXRfdW5hbGlnbmVkX2xlMTYocG9zKTsKIAlwb3MgKz0gMjsKIAogCS8qIGNhcGFiaWxpdHkgaW5mb3JtYXRpb24gaXMgMiBieXRlcyBsb25nICovCi0JYnNzLT5jYXBhYmlsaXR5ID0gbGUxNl90b19jcHVwKCh2b2lkICopIHBvcyk7CisJYnNzLT5jYXBhYmlsaXR5ID0gZ2V0X3VuYWxpZ25lZF9sZTE2KHBvcyk7CiAJbGJzX2RlYl9zY2FuKCJwcm9jZXNzX2JzczogY2FwYWJpbGl0aWVzIDB4JTA0eFxuIiwgYnNzLT5jYXBhYmlsaXR5KTsKIAlwb3MgKz0gMjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcDU0L3A1NHVzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcDU0L3A1NHVzYi5jCmluZGV4IDE2MTBhNzMwLi44MTVjMDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9wNTQvcDU0dXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcDU0L3A1NHVzYi5jCkBAIC0zNzYsNyArMzc2LDggQEAKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3X2VudHJ5ID0gTlVMTDsKIAlpbnQgZXJyLCBhbGVuOwogCXU4IGNhcnJ5ID0gMDsKLQl1OCAqYnVmLCAqdG1wLCAqZGF0YTsKKwl1OCAqYnVmLCAqdG1wOworCWNvbnN0IHU4ICpkYXRhOwogCXVuc2lnbmVkIGludCBsZWZ0LCByZW1haW5zLCBibG9ja19zaXplOwogCXN0cnVjdCB4Ml9oZWFkZXIgKmhkcjsKIAl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CkBAIC01MjMsNyArNTI0LDcgQEAKIAl2b2lkICpidWY7CiAJX19sZTMyIHJlZzsKIAl1bnNpZ25lZCBpbnQgcmVtYWlucywgb2Zmc2V0OwotCXU4ICpkYXRhOworCWNvbnN0IHU4ICpkYXRhOwogCiAJYnVmID0ga21hbGxvYyg1MTIsIEdGUF9LRVJORUwpOwogCWlmICghYnVmKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9wcmlzbTU0L2lzbHBjaV9ldGguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ByaXNtNTQvaXNscGNpX2V0aC5jCmluZGV4IDc2MmU4NWIuLmU0M2JhZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ByaXNtNTQvaXNscGNpX2V0aC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ByaXNtNTQvaXNscGNpX2V0aC5jCkBAIC0yOTAsNyArMjkwLDcgQEAKIAogCQlhdnMtPnZlcnNpb24gPSBjcHVfdG9fYmUzMihQODAyMTFDQVBUVVJFX1ZFUlNJT04pOwogCQlhdnMtPmxlbmd0aCA9IGNwdV90b19iZTMyKHNpemVvZiAoc3RydWN0IGF2c184MDIxMV8xX2hlYWRlcikpOwotCQlhdnMtPm1hY3RpbWUgPSBjcHVfdG9fYmU2NChsZTY0X3RvX2NwdShjbG9jaykpOworCQlhdnMtPm1hY3RpbWUgPSBjcHVfdG9fYmU2NChjbG9jayk7CiAJCWF2cy0+aG9zdHRpbWUgPSBjcHVfdG9fYmU2NChqaWZmaWVzKTsKIAkJYXZzLT5waHl0eXBlID0gY3B1X3RvX2JlMzIoNik7CS8qT0ZETTogNiBmb3IgKGcpLCA4IGZvciAoYSkgKi8KIAkJYXZzLT5jaGFubmVsID0gY3B1X3RvX2JlMzIoY2hhbm5lbF9vZl9mcmVxKGZyZXEpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI0MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI0MDBwY2kuYwppbmRleCA1NjBiOWM3Li5iMzZlZDFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNDAwcGNpLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjQwMHBjaS5jCkBAIC03MzEsNiArNzMxLDE3IEBACiAJCQkgICAocnQyeDAwZGV2LT5yeC0+ZGF0YV9zaXplIC8gMTI4KSk7CiAJcnQyeDAwcGNpX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgQ1NSOSwgcmVnKTsKIAorCXJ0MngwMHBjaV9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgQ1NSMTQsICZyZWcpOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UU0ZfQ09VTlQsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UU0ZfU1lOQywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X1RCQ04sIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UQ0ZQLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVEFUSU1XLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfQkVBQ09OX0dFTiwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X0NGUF9DT1VOVF9QUkVMT0FELCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVEJDTV9QUkVMT0FELCAwKTsKKwlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBDU1IxNCwgcmVnKTsKKwogCXJ0MngwMHBjaV9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIENOVDMsIDB4M2YwODAwMDApOwogCiAJcnQyeDAwcGNpX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBBUkNTUjAsICZyZWcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHBjaS5jCmluZGV4IGE1ZWQ1NGIuLmY3NzMxZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1MDBwY2kuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNTAwcGNpLmMKQEAgLTgyNCw2ICs4MjQsMTcgQEAKIAlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTFfQ1dfU0VMRUNULCAwKTsKIAlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBDU1IxMSwgcmVnKTsKIAorCXJ0MngwMHBjaV9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgQ1NSMTQsICZyZWcpOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UU0ZfQ09VTlQsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UU0ZfU1lOQywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X1RCQ04sIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UQ0ZQLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVEFUSU1XLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfQkVBQ09OX0dFTiwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X0NGUF9DT1VOVF9QUkVMT0FELCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVEJDTV9QUkVMT0FELCAwKTsKKwlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBDU1IxNCwgcmVnKTsKKwogCXJ0MngwMHBjaV9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIENOVDMsIDApOwogCiAJcnQyeDAwcGNpX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBUWENTUjgsICZyZWcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHVzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHVzYi5jCmluZGV4IGZkYmQwZWYuLmQ5MDUxMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1MDB1c2IuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNTAwdXNiLmMKQEAgLTEzOCwxMSArMTM4LDggQEAKIAkgKiBXYWl0IHVudGlsIHRoZSBCQlAgYmVjb21lcyByZWFkeS4KIAkgKi8KIAlyZWcgPSBydDI1MDB1c2JfYmJwX2NoZWNrKHJ0MngwMGRldik7Ci0JaWYgKHJ0MngwMF9nZXRfZmllbGQxNihyZWcsIFBIWV9DU1I4X0JVU1kpKSB7Ci0JCUVSUk9SKHJ0MngwMGRldiwgIlBIWV9DU1I4IHJlZ2lzdGVyIGJ1c3kuIFdyaXRlIGZhaWxlZC5cbiIpOwotCQltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDE2KHJlZywgUEhZX0NTUjhfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJLyoKIAkgKiBXcml0ZSB0aGUgZGF0YSBpbnRvIHRoZSBCQlAuCkBAIC0xNTUsNiArMTUyLDEzIEBACiAJcnQyNTAwdXNiX3JlZ2lzdGVyX3dyaXRlX2xvY2socnQyeDAwZGV2LCBQSFlfQ1NSNywgcmVnKTsKIAogCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJcmV0dXJuOworCitleGl0X2ZhaWw6CisJbXV0ZXhfdW5sb2NrKCZydDJ4MDBkZXYtPnVzYl9jYWNoZV9tdXRleCk7CisKKwlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSOCByZWdpc3RlciBidXN5LiBXcml0ZSBmYWlsZWQuXG4iKTsKIH0KIAogc3RhdGljIHZvaWQgcnQyNTAwdXNiX2JicF9yZWFkKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsCkBAIC0xNjgsMTAgKzE3Miw4IEBACiAJICogV2FpdCB1bnRpbCB0aGUgQkJQIGJlY29tZXMgcmVhZHkuCiAJICovCiAJcmVnID0gcnQyNTAwdXNiX2JicF9jaGVjayhydDJ4MDBkZXYpOwotCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMTYocmVnLCBQSFlfQ1NSOF9CVVNZKSkgewotCQlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSOCByZWdpc3RlciBidXN5LiBSZWFkIGZhaWxlZC5cbiIpOwotCQlyZXR1cm47Ci0JfQorCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMTYocmVnLCBQSFlfQ1NSOF9CVVNZKSkKKwkJZ290byBleGl0X2ZhaWw7CiAKIAkvKgogCSAqIFdyaXRlIHRoZSByZXF1ZXN0IGludG8gdGhlIEJCUC4KQEAgLTE4NiwxNyArMTg4LDIxIEBACiAJICogV2FpdCB1bnRpbCB0aGUgQkJQIGJlY29tZXMgcmVhZHkuCiAJICovCiAJcmVnID0gcnQyNTAwdXNiX2JicF9jaGVjayhydDJ4MDBkZXYpOwotCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMTYocmVnLCBQSFlfQ1NSOF9CVVNZKSkgewotCQlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSOCByZWdpc3RlciBidXN5LiBSZWFkIGZhaWxlZC5cbiIpOwotCQkqdmFsdWUgPSAweGZmOwotCQltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDE2KHJlZywgUEhZX0NTUjhfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJcnQyNTAwdXNiX3JlZ2lzdGVyX3JlYWRfbG9jayhydDJ4MDBkZXYsIFBIWV9DU1I3LCAmcmVnKTsKIAkqdmFsdWUgPSBydDJ4MDBfZ2V0X2ZpZWxkMTYocmVnLCBQSFlfQ1NSN19EQVRBKTsKIAogCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJcmV0dXJuOworCitleGl0X2ZhaWw6CisJbXV0ZXhfdW5sb2NrKCZydDJ4MDBkZXYtPnVzYl9jYWNoZV9tdXRleCk7CisKKwlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSOCByZWdpc3RlciBidXN5LiBSZWFkIGZhaWxlZC5cbiIpOworCSp2YWx1ZSA9IDB4ZmY7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0MjUwMHVzYl9yZl93cml0ZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LApAQCAtNzk1LDYgKzgwMSwxMyBAQAogCXJ0MngwMF9zZXRfZmllbGQxNigmcmVnLCBUWFJYX0NTUjhfQkJQX0lEMV9WQUxJRCwgMCk7CiAJcnQyNTAwdXNiX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhSWF9DU1I4LCByZWcpOwogCisJcnQyNTAwdXNiX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBUWFJYX0NTUjE5LCAmcmVnKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMTYoJnJlZywgVFhSWF9DU1IxOV9UU0ZfQ09VTlQsIDApOworCXJ0MngwMF9zZXRfZmllbGQxNigmcmVnLCBUWFJYX0NTUjE5X1RTRl9TWU5DLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMTYoJnJlZywgVFhSWF9DU1IxOV9UQkNOLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMTYoJnJlZywgVFhSWF9DU1IxOV9CRUFDT05fR0VOLCAwKTsKKwlydDI1MDB1c2JfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjE5LCByZWcpOworCiAJcnQyNTAwdXNiX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhSWF9DU1IyMSwgMHhlNzhmKTsKIAlydDI1MDB1c2JfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBNQUNfQ1NSOSwgMHhmZjFkKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMC5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMC5oCmluZGV4IDYxMWQ5ODMuLmE3NGUxYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDAuaAorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwLmgKQEAgLTUxMSw4ICs1MTEsOCBAQAogCSAqLwogCWludCAoKnByb2JlX2h3KSAoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldik7CiAJY2hhciAqKCpnZXRfZmlybXdhcmVfbmFtZSkgKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpOwotCXUxNiAoKmdldF9maXJtd2FyZV9jcmMpICh2b2lkICpkYXRhLCBjb25zdCBzaXplX3QgbGVuKTsKLQlpbnQgKCpsb2FkX2Zpcm13YXJlKSAoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwgdm9pZCAqZGF0YSwKKwl1MTYgKCpnZXRfZmlybXdhcmVfY3JjKSAoY29uc3Qgdm9pZCAqZGF0YSwgY29uc3Qgc2l6ZV90IGxlbik7CisJaW50ICgqbG9hZF9maXJtd2FyZSkgKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsIGNvbnN0IHZvaWQgKmRhdGEsCiAJCQkgICAgICBjb25zdCBzaXplX3QgbGVuKTsKIAogCS8qCkBAIC04MjEsNiArODIxLDcgQEAKIAkvKgogCSAqIFNjaGVkdWxlZCB3b3JrLgogCSAqLworCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3b3JrcXVldWU7CiAJc3RydWN0IHdvcmtfc3RydWN0IGludGZfd29yazsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZmlsdGVyX3dvcms7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBkZXYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBkZXYuYwppbmRleCAyNjczZDU2Li5jOTk3ZDRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwZGV2LmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMGRldi5jCkBAIC03NSw3ICs3NSw3IEBACiAKIAlydDJ4MDBsaWJfcmVzZXRfbGlua190dW5lcihydDJ4MDBkZXYpOwogCi0JcXVldWVfZGVsYXllZF93b3JrKHJ0MngwMGRldi0+aHctPndvcmtxdWV1ZSwKKwlxdWV1ZV9kZWxheWVkX3dvcmsocnQyeDAwZGV2LT53b3JrcXVldWUsCiAJCQkgICAmcnQyeDAwZGV2LT5saW5rLndvcmssIExJTktfVFVORV9JTlRFUlZBTCk7CiB9CiAKQEAgLTEzNywxNCArMTM3LDYgQEAKIAkJcmV0dXJuOwogCiAJLyoKLQkgKiBTdG9wIGFsbCBzY2hlZHVsZWQgd29yay4KLQkgKi8KLQlpZiAod29ya19wZW5kaW5nKCZydDJ4MDBkZXYtPmludGZfd29yaykpCi0JCWNhbmNlbF93b3JrX3N5bmMoJnJ0MngwMGRldi0+aW50Zl93b3JrKTsKLQlpZiAod29ya19wZW5kaW5nKCZydDJ4MDBkZXYtPmZpbHRlcl93b3JrKSkKLQkJY2FuY2VsX3dvcmtfc3luYygmcnQyeDAwZGV2LT5maWx0ZXJfd29yayk7Ci0KLQkvKgogCSAqIFN0b3AgdGhlIFRYIHF1ZXVlcy4KIAkgKi8KIAlpZWVlODAyMTFfc3RvcF9xdWV1ZXMocnQyeDAwZGV2LT5odyk7CkBAIC0zOTgsOCArMzkwLDggQEAKIAkgKiBJbmNyZWFzZSB0dW5lciBjb3VudGVyLCBhbmQgcmVzY2hlZHVsZSB0aGUgbmV4dCBsaW5rIHR1bmVyIHJ1bi4KIAkgKi8KIAlydDJ4MDBkZXYtPmxpbmsuY291bnQrKzsKLQlxdWV1ZV9kZWxheWVkX3dvcmsocnQyeDAwZGV2LT5ody0+d29ya3F1ZXVlLCAmcnQyeDAwZGV2LT5saW5rLndvcmssCi0JCQkgICBMSU5LX1RVTkVfSU5URVJWQUwpOworCXF1ZXVlX2RlbGF5ZWRfd29yayhydDJ4MDBkZXYtPndvcmtxdWV1ZSwKKwkJCSAgICZydDJ4MDBkZXYtPmxpbmsud29yaywgTElOS19UVU5FX0lOVEVSVkFMKTsKIH0KIAogc3RhdGljIHZvaWQgcnQyeDAwbGliX3BhY2tldGZpbHRlcl9zY2hlZHVsZWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQpAQCAtNDMzLDYgKzQyNSwxNSBAQAogCiAJc3Bpbl91bmxvY2soJmludGYtPmxvY2spOwogCisJLyoKKwkgKiBJdCBpcyBwb3NzaWJsZSB0aGUgcmFkaW8gd2FzIGRpc2FibGVkIHdoaWxlIHRoZSB3b3JrIGhhZCBiZWVuCisJICogc2NoZWR1bGVkLiBJZiB0aGF0IGhhcHBlbnMgd2Ugc2hvdWxkIHJldHVybiBoZXJlIGltbWVkaWF0ZWx5LAorCSAqIG5vdGUgdGhhdCBpbiB0aGUgc3BpbmxvY2sgcHJvdGVjdGVkIGFyZWEgYWJvdmUgdGhlIGRlbGF5ZWRfZmxhZ3MKKwkgKiBoYXZlIGJlZW4gY2xlYXJlZCBjb3JyZWN0bHkuCisJICovCisJaWYgKCF0ZXN0X2JpdChERVZJQ0VfRU5BQkxFRF9SQURJTywgJnJ0MngwMGRldi0+ZmxhZ3MpKQorCQlyZXR1cm47CisKIAlpZiAoZGVsYXllZF9mbGFncyAmIERFTEFZRURfVVBEQVRFX0JFQUNPTikgewogCQlza2IgPSBpZWVlODAyMTFfYmVhY29uX2dldChydDJ4MDBkZXYtPmh3LCB2aWYsICZjb250cm9sKTsKIAkJaWYgKHNrYiAmJiBydDJ4MDBkZXYtPm9wcy0+aHctPmJlYWNvbl91cGRhdGUocnQyeDAwZGV2LT5odywKQEAgLTQ0MSw3ICs0NDIsNyBAQAogCX0KIAogCWlmIChkZWxheWVkX2ZsYWdzICYgREVMQVlFRF9DT05GSUdfRVJQKQotCQlydDJ4MDBsaWJfY29uZmlnX2VycChydDJ4MDBkZXYsIGludGYsICZpbnRmLT5jb25mKTsKKwkJcnQyeDAwbGliX2NvbmZpZ19lcnAocnQyeDAwZGV2LCBpbnRmLCAmY29uZik7CiAKIAlpZiAoZGVsYXllZF9mbGFncyAmIERFTEFZRURfTEVEX0FTU09DKQogCQlydDJ4MDBsZWRzX2xlZF9hc3NvYyhydDJ4MDBkZXYsICEhcnQyeDAwZGV2LT5pbnRmX2Fzc29jaWF0ZWQpOwpAQCAtNDg3LDcgKzQ4OCw3IEBACiAJCQkJCQkgICBydDJ4MDBsaWJfYmVhY29uZG9uZV9pdGVyLAogCQkJCQkJICAgcnQyeDAwZGV2KTsKIAotCXF1ZXVlX3dvcmsocnQyeDAwZGV2LT5ody0+d29ya3F1ZXVlLCAmcnQyeDAwZGV2LT5pbnRmX3dvcmspOworCXF1ZXVlX3dvcmsocnQyeDAwZGV2LT53b3JrcXVldWUsICZydDJ4MDBkZXYtPmludGZfd29yayk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChydDJ4MDBsaWJfYmVhY29uZG9uZSk7CiAKQEAgLTExMzAsNiArMTEzMSwxMCBAQAogCS8qCiAJICogSW5pdGlhbGl6ZSBjb25maWd1cmF0aW9uIHdvcmsuCiAJICovCisJcnQyeDAwZGV2LT53b3JrcXVldWUgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSgicnQyeDAwbGliIik7CisJaWYgKCFydDJ4MDBkZXYtPndvcmtxdWV1ZSkKKwkJZ290byBleGl0OworCiAJSU5JVF9XT1JLKCZydDJ4MDBkZXYtPmludGZfd29yaywgcnQyeDAwbGliX2ludGZfc2NoZWR1bGVkKTsKIAlJTklUX1dPUksoJnJ0MngwMGRldi0+ZmlsdGVyX3dvcmssIHJ0MngwMGxpYl9wYWNrZXRmaWx0ZXJfc2NoZWR1bGVkKTsKIAlJTklUX0RFTEFZRURfV09SSygmcnQyeDAwZGV2LT5saW5rLndvcmssIHJ0MngwMGxpYl9saW5rX3R1bmVyKTsKQEAgLTExOTAsNiArMTE5NSwxMyBAQAogCXJ0MngwMGxlZHNfdW5yZWdpc3RlcihydDJ4MDBkZXYpOwogCiAJLyoKKwkgKiBTdG9wIGFsbCBxdWV1ZWQgd29yay4gTm90ZSB0aGF0IG1vc3QgdGFza3Mgd2lsbCBhbHJlYWR5IGJlIGhhbHRlZAorCSAqIGR1cmluZyBydDJ4MDBsaWJfZGlzYWJsZV9yYWRpbygpIGFuZCBydDJ4MDBsaWJfdW5pbml0aWFsaXplKCkuCisJICovCisJZmx1c2hfd29ya3F1ZXVlKHJ0MngwMGRldi0+d29ya3F1ZXVlKTsKKwlkZXN0cm95X3dvcmtxdWV1ZShydDJ4MDBkZXYtPndvcmtxdWV1ZSk7CisKKwkvKgogCSAqIEZyZWUgaWVlZTgwMjExX2h3IG1lbW9yeS4KIAkgKi8KIAlydDJ4MDBsaWJfcmVtb3ZlX2h3KHJ0MngwMGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwbWFjLmMKaW5kZXggODdlMjgwYS4uOWNiMDIzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMG1hYy5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBtYWMuYwpAQCAtNDI4LDcgKzQyOCw3IEBACiAJaWYgKCF0ZXN0X2JpdChEUklWRVJfUkVRVUlSRV9TQ0hFRFVMRUQsICZydDJ4MDBkZXYtPmZsYWdzKSkKIAkJcnQyeDAwZGV2LT5vcHMtPmxpYi0+Y29uZmlnX2ZpbHRlcihydDJ4MDBkZXYsICp0b3RhbF9mbGFncyk7CiAJZWxzZQotCQlxdWV1ZV93b3JrKHJ0MngwMGRldi0+aHctPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+ZmlsdGVyX3dvcmspOworCQlxdWV1ZV93b3JrKHJ0MngwMGRldi0+d29ya3F1ZXVlLCAmcnQyeDAwZGV2LT5maWx0ZXJfd29yayk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChydDJ4MDBtYWNfY29uZmlndXJlX2ZpbHRlcik7CiAKQEAgLTUwOSw3ICs1MDksNyBAQAogCW1lbWNweSgmaW50Zi0+Y29uZiwgYnNzX2NvbmYsIHNpemVvZigqYnNzX2NvbmYpKTsKIAlpZiAoZGVsYXllZCkgewogCQlpbnRmLT5kZWxheWVkX2ZsYWdzIHw9IGRlbGF5ZWQ7Ci0JCXF1ZXVlX3dvcmsocnQyeDAwZGV2LT5ody0+d29ya3F1ZXVlLCAmcnQyeDAwZGV2LT5pbnRmX3dvcmspOworCQlxdWV1ZV93b3JrKHJ0MngwMGRldi0+d29ya3F1ZXVlLCAmcnQyeDAwZGV2LT5pbnRmX3dvcmspOwogCX0KIAlzcGluX3VubG9jaygmaW50Zi0+bG9jayk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwcGNpLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwcGNpLmgKaW5kZXggOWQxY2RiOS4uYjQxOTY3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHBjaS5oCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBwY2kuaApAQCAtODIsNyArODIsNyBAQAogc3RhdGljIGlubGluZSB2b2lkCiBydDJ4MDBwY2lfcmVnaXN0ZXJfbXVsdGl3cml0ZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LAogCQkJICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBvZmZzZXQsCi0JCQkgICAgICB2b2lkICp2YWx1ZSwgY29uc3QgdTE2IGxlbmd0aCkKKwkJCSAgICAgIGNvbnN0IHZvaWQgKnZhbHVlLCBjb25zdCB1MTYgbGVuZ3RoKQogewogCW1lbWNweV90b2lvKHJ0MngwMGRldi0+Y3NyLmJhc2UgKyBvZmZzZXQsIHZhbHVlLCBsZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0NjFwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDYxcGNpLmMKaW5kZXggMTRiYzdiMi4uNTgwZjkwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0NjFwY2kuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQ2MXBjaS5jCkBAIC05MTUsNyArOTE1LDcgQEAKIAlyZXR1cm4gZndfbmFtZTsKIH0KIAotc3RhdGljIHUxNiBydDYxcGNpX2dldF9maXJtd2FyZV9jcmModm9pZCAqZGF0YSwgY29uc3Qgc2l6ZV90IGxlbikKK3N0YXRpYyB1MTYgcnQ2MXBjaV9nZXRfZmlybXdhcmVfY3JjKGNvbnN0IHZvaWQgKmRhdGEsIGNvbnN0IHNpemVfdCBsZW4pCiB7CiAJdTE2IGNyYzsKIApAQCAtOTMyLDcgKzkzMiw3IEBACiAJcmV0dXJuIGNyYzsKIH0KIAotc3RhdGljIGludCBydDYxcGNpX2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwgdm9pZCAqZGF0YSwKK3N0YXRpYyBpbnQgcnQ2MXBjaV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsIGNvbnN0IHZvaWQgKmRhdGEsCiAJCQkJIGNvbnN0IHNpemVfdCBsZW4pCiB7CiAJaW50IGk7CkBAIC0xMjAxLDYgKzEyMDEsMTUgQEAKIAlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I4X0FDS19DVFNfNTRNQlMsIDQyKTsKIAlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjgsIHJlZyk7CiAKKwlydDJ4MDBwY2lfcmVnaXN0ZXJfcmVhZChydDJ4MDBkZXYsIFRYUlhfQ1NSOSwgJnJlZyk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9CRUFDT05fSU5URVJWQUwsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfVFNGX1RJQ0tJTkcsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfVFNGX1NZTkMsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfVEJUVF9FTkFCTEUsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfQkVBQ09OX0dFTiwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9USU1FU1RBTVBfQ09NUEVOU0FURSwgMCk7CisJcnQyeDAwcGNpX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhSWF9DU1I5LCByZWcpOworCiAJcnQyeDAwcGNpX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhSWF9DU1IxNSwgMHgwMDAwMDAwZik7CiAKIAlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBNQUNfQ1NSNiwgMHgwMDAwMGZmZik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQ3M3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0NzN1c2IuYwppbmRleCBmZmY4Mzg2ZS4uNmE2MmQ2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0NzN1c2IuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQ3M3VzYi5jCkBAIC0xMzQsMTEgKzEzNCw4IEBACiAJICogV2FpdCB1bnRpbCB0aGUgQkJQIGJlY29tZXMgcmVhZHkuCiAJICovCiAJcmVnID0gcnQ3M3VzYl9iYnBfY2hlY2socnQyeDAwZGV2KTsKLQlpZiAocnQyeDAwX2dldF9maWVsZDMyKHJlZywgUEhZX0NTUjNfQlVTWSkpIHsKLQkJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjMgcmVnaXN0ZXIgYnVzeS4gV3JpdGUgZmFpbGVkLlxuIik7Ci0JCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOwotCQlyZXR1cm47Ci0JfQorCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMzIocmVnLCBQSFlfQ1NSM19CVVNZKSkKKwkJZ290byBleGl0X2ZhaWw7CiAKIAkvKgogCSAqIFdyaXRlIHRoZSBkYXRhIGludG8gdGhlIEJCUC4KQEAgLTE1MSw2ICsxNDgsMTMgQEAKIAogCXJ0NzN1c2JfcmVnaXN0ZXJfd3JpdGVfbG9jayhydDJ4MDBkZXYsIFBIWV9DU1IzLCByZWcpOwogCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJcmV0dXJuOworCitleGl0X2ZhaWw6CisJbXV0ZXhfdW5sb2NrKCZydDJ4MDBkZXYtPnVzYl9jYWNoZV9tdXRleCk7CisKKwlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSMyByZWdpc3RlciBidXN5LiBXcml0ZSBmYWlsZWQuXG4iKTsKIH0KIAogc3RhdGljIHZvaWQgcnQ3M3VzYl9iYnBfcmVhZChzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LApAQCAtMTY0LDExICsxNjgsOCBAQAogCSAqIFdhaXQgdW50aWwgdGhlIEJCUCBiZWNvbWVzIHJlYWR5LgogCSAqLwogCXJlZyA9IHJ0NzN1c2JfYmJwX2NoZWNrKHJ0MngwMGRldik7Ci0JaWYgKHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIFBIWV9DU1IzX0JVU1kpKSB7Ci0JCUVSUk9SKHJ0MngwMGRldiwgIlBIWV9DU1IzIHJlZ2lzdGVyIGJ1c3kuIFJlYWQgZmFpbGVkLlxuIik7Ci0JCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOwotCQlyZXR1cm47Ci0JfQorCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMzIocmVnLCBQSFlfQ1NSM19CVVNZKSkKKwkJZ290byBleGl0X2ZhaWw7CiAKIAkvKgogCSAqIFdyaXRlIHRoZSByZXF1ZXN0IGludG8gdGhlIEJCUC4KQEAgLTE4NCwxNCArMTg1LDE5IEBACiAJICogV2FpdCB1bnRpbCB0aGUgQkJQIGJlY29tZXMgcmVhZHkuCiAJICovCiAJcmVnID0gcnQ3M3VzYl9iYnBfY2hlY2socnQyeDAwZGV2KTsKLQlpZiAocnQyeDAwX2dldF9maWVsZDMyKHJlZywgUEhZX0NTUjNfQlVTWSkpIHsKLQkJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjMgcmVnaXN0ZXIgYnVzeS4gUmVhZCBmYWlsZWQuXG4iKTsKLQkJKnZhbHVlID0gMHhmZjsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDMyKHJlZywgUEhZX0NTUjNfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJKnZhbHVlID0gcnQyeDAwX2dldF9maWVsZDMyKHJlZywgUEhZX0NTUjNfVkFMVUUpOwogCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJcmV0dXJuOworCitleGl0X2ZhaWw6CisJbXV0ZXhfdW5sb2NrKCZydDJ4MDBkZXYtPnVzYl9jYWNoZV9tdXRleCk7CisKKwlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSMyByZWdpc3RlciBidXN5LiBSZWFkIGZhaWxlZC5cbiIpOworCSp2YWx1ZSA9IDB4ZmY7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0NzN1c2JfcmZfd3JpdGUoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwKQEAgLTg1MCw3ICs4NTYsNyBAQAogCXJldHVybiBGSVJNV0FSRV9SVDI1NzE7CiB9CiAKLXN0YXRpYyB1MTYgcnQ3M3VzYl9nZXRfZmlybXdhcmVfY3JjKHZvaWQgKmRhdGEsIGNvbnN0IHNpemVfdCBsZW4pCitzdGF0aWMgdTE2IHJ0NzN1c2JfZ2V0X2Zpcm13YXJlX2NyYyhjb25zdCB2b2lkICpkYXRhLCBjb25zdCBzaXplX3QgbGVuKQogewogCXUxNiBjcmM7CiAKQEAgLTg2NywxMyArODczLDEzIEBACiAJcmV0dXJuIGNyYzsKIH0KIAotc3RhdGljIGludCBydDczdXNiX2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwgdm9pZCAqZGF0YSwKK3N0YXRpYyBpbnQgcnQ3M3VzYl9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsIGNvbnN0IHZvaWQgKmRhdGEsCiAJCQkJIGNvbnN0IHNpemVfdCBsZW4pCiB7CiAJdW5zaWduZWQgaW50IGk7CiAJaW50IHN0YXR1czsKIAl1MzIgcmVnOwotCWNoYXIgKnB0ciA9IGRhdGE7CisJY29uc3QgY2hhciAqcHRyID0gZGF0YTsKIAljaGFyICpjYWNoZTsKIAlpbnQgYnVmbGVuOwogCWludCB0aW1lb3V0OwpAQCAtMTAwMCw2ICsxMDA2LDE1IEBACiAJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOF9BQ0tfQ1RTXzU0TUJTLCA0Mik7CiAJcnQ3M3VzYl9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIFRYUlhfQ1NSOCwgcmVnKTsKIAorCXJ0NzN1c2JfcmVnaXN0ZXJfcmVhZChydDJ4MDBkZXYsIFRYUlhfQ1NSOSwgJnJlZyk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9CRUFDT05fSU5URVJWQUwsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfVFNGX1RJQ0tJTkcsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfVFNGX1NZTkMsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfVEJUVF9FTkFCTEUsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfQkVBQ09OX0dFTiwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9USU1FU1RBTVBfQ09NUEVOU0FURSwgMCk7CisJcnQ3M3VzYl9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIFRYUlhfQ1NSOSwgcmVnKTsKKwogCXJ0NzN1c2JfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjE1LCAweDAwMDAwMDBmKTsKIAogCXJ0NzN1c2JfcmVnaXN0ZXJfcmVhZChydDJ4MDBkZXYsIE1BQ19DU1I2LCAmcmVnKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3pkMTIwMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAxLmMKaW5kZXggZDVjMGM2Ni4uNzhiYWEwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAxLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAxLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKIHN0YXRpYyBpbnQgemQxMjAxX2Z3X3VwbG9hZChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYXBmdykKIHsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3X2VudHJ5OwotCWNoYXIgKmRhdGE7CisJY29uc3QgY2hhciAqZGF0YTsKIAl1bnNpZ25lZCBsb25nIGxlbjsKIAlpbnQgZXJyOwogCXVuc2lnbmVkIGNoYXIgcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy96ZDEyMTFydy96ZF9tYWMuYwppbmRleCA0MTg2MDZhLi42OTRlOTVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy96ZDEyMTFydy96ZF9tYWMuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy96ZDEyMTFydy96ZF9tYWMuYwpAQCAtNzY1LDYgKzc2NSw3IEBACiB7CiAJc3RydWN0IHpkX21hYyAqbWFjID0gemRfaHdfbWFjKGh3KTsKIAltYWMtPnR5cGUgPSBJRUVFODAyMTFfSUZfVFlQRV9JTlZBTElEOworCXpkX3NldF9iZWFjb25faW50ZXJ2YWwoJm1hYy0+Y2hpcCwgMCk7CiAJemRfd3JpdGVfbWFjX2FkZHIoJm1hYy0+Y2hpcCwgTlVMTCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3pkMTIxMXJ3L3pkX3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfdXNiLmMKaW5kZXggODk0MWY1ZS4uNmNkYWQ5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfdXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfdXNiLmMKQEAgLTY0LDYgKzY0LDcgQEAKIAl7IFVTQl9ERVZJQ0UoMHgwNzliLCAweDAwNjIpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfWkQxMjExQiB9LAogCXsgVVNCX0RFVklDRSgweDE1ODIsIDB4NjAwMyksIC5kcml2ZXJfaW5mbyA9IERFVklDRV9aRDEyMTFCIH0sCiAJeyBVU0JfREVWSUNFKDB4MDUwZCwgMHg3MDVjKSwgLmRyaXZlcl9pbmZvID0gREVWSUNFX1pEMTIxMUIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwODNhLCAweGU1MDYpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfWkQxMjExQiB9LAogCXsgVVNCX0RFVklDRSgweDA4M2EsIDB4NDUwNSksIC5kcml2ZXJfaW5mbyA9IERFVklDRV9aRDEyMTFCIH0sCiAJeyBVU0JfREVWSUNFKDB4MDQ3MSwgMHgxMjM2KSwgLmRyaXZlcl9pbmZvID0gREVWSUNFX1pEMTIxMUIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2IxLCAweDAwMjQpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfWkQxMjExQiB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwppbmRleCBkMjZmNjliLi5lZjY3MWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYworKysgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwpAQCAtMTMyNCw3ICsxMzI0LDcgQEAKIAkJZ290byBmYWlsOwogCX0KIAotCXR4cyA9IChzdHJ1Y3QgeGVuX25ldGlmX3R4X3NyaW5nICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOworCXR4cyA9IChzdHJ1Y3QgeGVuX25ldGlmX3R4X3NyaW5nICopZ2V0X3plcm9lZF9wYWdlKEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKCF0eHMpIHsKIAkJZXJyID0gLUVOT01FTTsKIAkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIGVyciwgImFsbG9jYXRpbmcgdHggcmluZyBwYWdlIik7CkBAIC0xMzQwLDcgKzEzNDAsNyBAQAogCX0KIAogCWluZm8tPnR4X3JpbmdfcmVmID0gZXJyOwotCXJ4cyA9IChzdHJ1Y3QgeGVuX25ldGlmX3J4X3NyaW5nICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOworCXJ4cyA9IChzdHJ1Y3QgeGVuX25ldGlmX3J4X3NyaW5nICopZ2V0X3plcm9lZF9wYWdlKEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKCFyeHMpIHsKIAkJZXJyID0gLUVOT01FTTsKIAkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIGVyciwgImFsbG9jYXRpbmcgcnggcmluZyBwYWdlIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BhcmlzYy9laXNhX2VlcHJvbS5jIGIvZHJpdmVycy9wYXJpc2MvZWlzYV9lZXByb20uYwppbmRleCA4NmU5Yzg0Li41YWMyMDc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BhcmlzYy9laXNhX2VlcHJvbS5jCisrKyBiL2RyaXZlcnMvcGFyaXNjL2Vpc2FfZWVwcm9tLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtODMsNiArODQsOCBAQAogCiBzdGF0aWMgaW50IGVpc2FfZWVwcm9tX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKKwogCWlmIChmaWxlLT5mX21vZGUgJiAyKQogCQlyZXR1cm4gLUVJTlZBTDsKICAgIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvYWNjZXNzLmMgYi9kcml2ZXJzL3BjaS9hY2Nlc3MuYwppbmRleCBlYzhmNzAwLi4zOWJiOTZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9hY2Nlc3MuYworKysgYi9kcml2ZXJzL3BjaS9hY2Nlc3MuYwpAQCAtMTc4LDggKzE3OCw3IEBACiAJaW50IHJldDsKIAlpbnQgYmVnaW4sIGVuZCwgaTsKIAotCWlmIChwb3MgPCAwIHx8IHBvcyA+IFBDSV9WUERfUENJMjJfU0laRSB8fAotCSAgICBzaXplID4gUENJX1ZQRF9QQ0kyMl9TSVpFICAtIHBvcykKKwlpZiAocG9zIDwgMCB8fCBwb3MgPiB2cGQtPmJhc2UubGVuIHx8IHNpemUgPiB2cGQtPmJhc2UubGVuICAtIHBvcykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJaWYgKHNpemUgPT0gMCkKIAkJcmV0dXJuIDA7CkBAIC0yMjMsOCArMjIyLDggQEAKIAl1MzIgdmFsOwogCWludCByZXQ7CiAKLQlpZiAocG9zIDwgMCB8fCBwb3MgPiBQQ0lfVlBEX1BDSTIyX1NJWkUgfHwgcG9zICYgMyB8fAotCSAgICBzaXplID4gUENJX1ZQRF9QQ0kyMl9TSVpFIC0gcG9zIHx8IHNpemUgPCA0KQorCWlmIChwb3MgPCAwIHx8IHBvcyA+IHZwZC0+YmFzZS5sZW4gfHwgcG9zICYgMyB8fAorCSAgICBzaXplID4gdnBkLT5iYXNlLmxlbiAtIHBvcyB8fCBzaXplIDwgNCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAl2YWwgPSAodTgpICpidWYrKzsKQEAgLTI1NSwxMSArMjU0LDYgQEAKIAlyZXR1cm4gNDsKIH0KIAotc3RhdGljIGludCBwY2lfdnBkX3BjaTIyX2dldF9zaXplKHN0cnVjdCBwY2lfZGV2ICpkZXYpCi17Ci0JcmV0dXJuIFBDSV9WUERfUENJMjJfU0laRTsKLX0KLQogc3RhdGljIHZvaWQgcGNpX3ZwZF9wY2kyMl9yZWxlYXNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7CiAJa2ZyZWUoY29udGFpbmVyX29mKGRldi0+dnBkLCBzdHJ1Y3QgcGNpX3ZwZF9wY2kyMiwgYmFzZSkpOwpAQCAtMjY4LDcgKzI2Miw2IEBACiBzdGF0aWMgc3RydWN0IHBjaV92cGRfb3BzIHBjaV92cGRfcGNpMjJfb3BzID0gewogCS5yZWFkID0gcGNpX3ZwZF9wY2kyMl9yZWFkLAogCS53cml0ZSA9IHBjaV92cGRfcGNpMjJfd3JpdGUsCi0JLmdldF9zaXplID0gcGNpX3ZwZF9wY2kyMl9nZXRfc2l6ZSwKIAkucmVsZWFzZSA9IHBjaV92cGRfcGNpMjJfcmVsZWFzZSwKIH07CiAKQEAgLTI4NCw2ICsyNzcsNyBAQAogCWlmICghdnBkKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCXZwZC0+YmFzZS5sZW4gPSBQQ0lfVlBEX1BDSTIyX1NJWkU7CiAJdnBkLT5iYXNlLm9wcyA9ICZwY2lfdnBkX3BjaTIyX29wczsKIAlzcGluX2xvY2tfaW5pdCgmdnBkLT5sb2NrKTsKIAl2cGQtPmNhcCA9IGNhcDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvYWNwaXBocF9nbHVlLmMgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL2FjcGlwaHBfZ2x1ZS5jCmluZGV4IDY0ODU5NmQuLjkxMTU2ZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvYWNwaXBocF9nbHVlLmMKKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9hY3BpcGhwX2dsdWUuYwpAQCAtNzAwLDkgKzcwMCwxMCBAQAogCWFjcGlfd2Fsa19uYW1lc3BhY2UoQUNQSV9UWVBFX0RFVklDRSwgaGFuZGxlLCAodTMyKTEsCiAJCQkJY2xlYW51cF9wMnBfYnJpZGdlLCBOVUxMLCBOVUxMKTsKIAotCWlmICghKGJyaWRnZSA9IGFjcGlwaHBfaGFuZGxlX3RvX2JyaWRnZShoYW5kbGUpKSkKLQkJcmV0dXJuIEFFX09LOwotCWNsZWFudXBfYnJpZGdlKGJyaWRnZSk7CisJYnJpZGdlID0gYWNwaXBocF9oYW5kbGVfdG9fYnJpZGdlKGhhbmRsZSk7CisJaWYgKGJyaWRnZSkKKwkJY2xlYW51cF9icmlkZ2UoYnJpZGdlKTsKKwogCXJldHVybiBBRV9PSzsKIH0KIApAQCAtNzE1LDkgKzcxNiwxOSBAQAogCWFjcGlfd2Fsa19uYW1lc3BhY2UoQUNQSV9UWVBFX0RFVklDRSwgaGFuZGxlLAogCQkJCSh1MzIpMSwgY2xlYW51cF9wMnBfYnJpZGdlLCBOVUxMLCBOVUxMKTsKIAorCS8qCisJICogT24gcm9vdCBicmlkZ2VzIHdpdGggaG90cGx1ZyBzbG90cyBkaXJlY3RseSB1bmRlcm5lYXRoIChpZSwKKwkgKiBubyBwMnAgYnJpZGdlIGluYmV0d2VlbiksIHdlIGNhbGwgY2xlYW51cF9icmlkZ2UoKS4gCisJICoKKwkgKiBUaGUgZWxzZSBjbGF1c2UgY2xlYW5zIHVwIHJvb3QgYnJpZGdlcyB0aGF0IGVpdGhlciBoYWQgbm8KKwkgKiBob3RwbHVnIHNsb3RzIGF0IGFsbCwgb3IgaGFkIGEgcDJwIGJyaWRnZSB1bmRlcm5lYXRoLgorCSAqLwogCWJyaWRnZSA9IGFjcGlwaHBfaGFuZGxlX3RvX2JyaWRnZShoYW5kbGUpOwogCWlmIChicmlkZ2UpCiAJCWNsZWFudXBfYnJpZGdlKGJyaWRnZSk7CisJZWxzZQorCQlhY3BpX3JlbW92ZV9ub3RpZnlfaGFuZGxlcihoYW5kbGUsIEFDUElfU1lTVEVNX05PVElGWSwKKwkJCQkJICAgaGFuZGxlX2hvdHBsdWdfZXZlbnRfYnJpZGdlKTsKIH0KIAogc3RhdGljIHN0cnVjdCBwY2lfZGV2ICogZ2V0X2FwaWNfcGNpX2luZm8oYWNwaV9oYW5kbGUgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaW50ZWwtaW9tbXUuYyBiL2RyaXZlcnMvcGNpL2ludGVsLWlvbW11LmMKaW5kZXggNjZjMGZkMi4uYmIwNjQyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaW50ZWwtaW9tbXUuYworKysgYi9kcml2ZXJzL3BjaS9pbnRlbC1pb21tdS5jCkBAIC0xNjM3LDEyICsxNjM3LDQzIEBACiB9CiAKICNpZmRlZiBDT05GSUdfRE1BUl9HRlhfV0EKLWV4dGVybiBpbnQgYXJjaF9nZXRfcmFtX3JhbmdlKGludCBzbG90LCB1NjQgKmFkZHIsIHU2NCAqc2l6ZSk7CitzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKKwlpbnQgcmV0OworfTsKKworc3RhdGljIGludCBfX2luaXQgaW9tbXVfcHJlcGFyZV93b3JrX2ZuKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkgdW5zaWduZWQgbG9uZyBlbmRfcGZuLCB2b2lkICpkYXRheCkKK3sKKwlzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhICpkYXRhOworCisJZGF0YSA9IChzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhICopZGF0YXg7CisKKwlkYXRhLT5yZXQgPSBpb21tdV9wcmVwYXJlX2lkZW50aXR5X21hcChkYXRhLT5wZGV2LAorCQkJCXN0YXJ0X3Bmbjw8UEFHRV9TSElGVCwgZW5kX3Bmbjw8UEFHRV9TSElGVCk7CisJcmV0dXJuIGRhdGEtPnJldDsKKworfQorCitzdGF0aWMgaW50IF9faW5pdCBpb21tdV9wcmVwYXJlX3dpdGhfYWN0aXZlX3JlZ2lvbnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisJaW50IG5pZDsKKwlzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhIGRhdGE7CisKKwlkYXRhLnBkZXYgPSBwZGV2OworCWRhdGEucmV0ID0gMDsKKworCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgeworCQl3b3JrX3dpdGhfYWN0aXZlX3JlZ2lvbnMobmlkLCBpb21tdV9wcmVwYXJlX3dvcmtfZm4sICZkYXRhKTsKKwkJaWYgKGRhdGEucmV0KQorCQkJcmV0dXJuIGRhdGEucmV0OworCX0KKwlyZXR1cm4gZGF0YS5yZXQ7Cit9CisKIHN0YXRpYyB2b2lkIF9faW5pdCBpb21tdV9wcmVwYXJlX2dmeF9tYXBwaW5nKHZvaWQpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBOVUxMOwotCXU2NCBiYXNlLCBzaXplOwotCWludCBzbG90OwogCWludCByZXQ7CiAKIAlmb3JfZWFjaF9wY2lfZGV2KHBkZXYpIHsKQEAgLTE2NTEsMTcgKzE2ODIsOSBAQAogCQkJY29udGludWU7CiAJCXByaW50ayhLRVJOX0lORk8gIklPTU1VOiBnZnggZGV2aWNlICVzIDEtMSBtYXBwaW5nXG4iLAogCQkJcGNpX25hbWUocGRldikpOwotCQlzbG90ID0gYXJjaF9nZXRfcmFtX3JhbmdlKDAsICZiYXNlLCAmc2l6ZSk7Ci0JCXdoaWxlIChzbG90ID49IDApIHsKLQkJCXJldCA9IGlvbW11X3ByZXBhcmVfaWRlbnRpdHlfbWFwKHBkZXYsCi0JCQkJCWJhc2UsIGJhc2UgKyBzaXplKTsKLQkJCWlmIChyZXQpCi0JCQkJZ290byBlcnJvcjsKLQkJCXNsb3QgPSBhcmNoX2dldF9yYW1fcmFuZ2Uoc2xvdCwgJmJhc2UsICZzaXplKTsKLQkJfQotCQljb250aW51ZTsKLWVycm9yOgotCQlwcmludGsoS0VSTl9FUlIgIklPTU1VOiBtYXBwaW5nIHJlc2VydmVkIHJlZ2lvbiBmYWlsZWRcbiIpOworCQlyZXQgPSBpb21tdV9wcmVwYXJlX3dpdGhfYWN0aXZlX3JlZ2lvbnMocGRldik7CisJCWlmIChyZXQpCisJCQlwcmludGsoS0VSTl9FUlIgIklPTU1VOiBtYXBwaW5nIHJlc2VydmVkIHJlZ2lvbiBmYWlsZWRcbiIpOwogCX0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMgYi9kcml2ZXJzL3BjaS9wY2ktc3lzZnMuYwppbmRleCA2ZjNjNzQ0Li45YzcxODU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2ktc3lzZnMuYworKysgYi9kcml2ZXJzL3BjaS9wY2ktc3lzZnMuYwpAQCAtNzM2LDkgKzczNiw5IEBACiAJCWF0dHIgPSBremFsbG9jKHNpemVvZigqYXR0ciksIEdGUF9BVE9NSUMpOwogCQlpZiAoYXR0cikgewogCQkJcGRldi0+dnBkLT5hdHRyID0gYXR0cjsKLQkJCWF0dHItPnNpemUgPSBwZGV2LT52cGQtPm9wcy0+Z2V0X3NpemUocGRldik7CisJCQlhdHRyLT5zaXplID0gcGRldi0+dnBkLT5sZW47CiAJCQlhdHRyLT5hdHRyLm5hbWUgPSAidnBkIjsKLQkJCWF0dHItPmF0dHIubW9kZSA9IFNfSVJVR08gfCBTX0lXVVNSOworCQkJYXR0ci0+YXR0ci5tb2RlID0gU19JUlVTUiB8IFNfSVdVU1I7CiAJCQlhdHRyLT5yZWFkID0gcGNpX3JlYWRfdnBkOwogCQkJYXR0ci0+d3JpdGUgPSBwY2lfd3JpdGVfdnBkOwogCQkJcmV0dmFsID0gc3lzZnNfY3JlYXRlX2Jpbl9maWxlKCZwZGV2LT5kZXYua29iaiwgYXR0cik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2kuaCBiL2RyaXZlcnMvcGNpL3BjaS5oCmluZGV4IDBhNDk3YzFiLi4wMDQwOGM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2kuaAorKysgYi9kcml2ZXJzL3BjaS9wY2kuaApAQCAtMjEsMTEgKzIxLDExIEBACiBzdHJ1Y3QgcGNpX3ZwZF9vcHMgewogCWludCAoKnJlYWQpKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwb3MsIGludCBzaXplLCBjaGFyICpidWYpOwogCWludCAoKndyaXRlKShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcG9zLCBpbnQgc2l6ZSwgY29uc3QgY2hhciAqYnVmKTsKLQlpbnQgKCpnZXRfc2l6ZSkoc3RydWN0IHBjaV9kZXYgKmRldik7CiAJdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogfTsKIAogc3RydWN0IHBjaV92cGQgeworCXVuc2lnbmVkIGludCBsZW47CiAJc3RydWN0IHBjaV92cGRfb3BzICpvcHM7CiAJc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0dHI7IC8qIGRlc2NyaXB0b3IgZm9yIHN5c2ZzIFZQRCBlbnRyeSAqLwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3F1aXJrcy5jIGIvZHJpdmVycy9wY2kvcXVpcmtzLmMKaW5kZXggZGFiYjU2My4uMzM4YTNmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcXVpcmtzLmMKKysrIGIvZHJpdmVycy9wY2kvcXVpcmtzLmMKQEAgLTE2NzAsNiArMTY3MCw0OCBAQAogfQogREVDTEFSRV9QQ0lfRklYVVBfRUFSTFkoUENJX1ZFTkRPUl9JRF9WSUEsIDB4MzI0ZSwgcXVpcmtfdmlhX2N4NzAwX3BjaV9wYXJraW5nX2NhY2hpbmcpOwogCisvKgorICogRm9yIEJyb2FkY29tIDU3MDYsIDU3MDgsIDU3MDkgcmV2LiBBIG5pY3MsIGFueSByZWFkIGJleW9uZCB0aGUKKyAqIFZQRCBlbmQgdGFnIHdpbGwgaGFuZyB0aGUgZGV2aWNlLiAgVGhpcyBwcm9ibGVtIHdhcyBpbml0aWFsbHkKKyAqIG9ic2VydmVkIHdoZW4gYSB2cGQgZW50cnkgd2FzIGNyZWF0ZWQgaW4gc3lzZnMKKyAqICgnL3N5cy9idXMvcGNpL2RldmljZXMvPGlkPi92cGQnKS4gICBBIHJlYWQgdG8gdGhpcyBzeXNmcyBlbnRyeQorICogd2lsbCBkdW1wIDMyayBvZiBkYXRhLiAgUmVhZGluZyBhIGZ1bGwgMzJrIHdpbGwgY2F1c2UgYW4gYWNjZXNzCisgKiBiZXlvbmQgdGhlIFZQRCBlbmQgdGFnIGNhdXNpbmcgdGhlIGRldmljZSB0byBoYW5nLiAgT25jZSB0aGUgZGV2aWNlCisgKiBpcyBodW5nLCB0aGUgYm54MiBkcml2ZXIgd2lsbCBub3QgYmUgYWJsZSB0byByZXNldCB0aGUgZGV2aWNlLgorICogV2UgYmVsaWV2ZSB0aGF0IGl0IGlzIGxlZ2FsIHRvIHJlYWQgYmV5b25kIHRoZSBlbmQgdGFnIGFuZAorICogdGhlcmVmb3JlIHRoZSBzb2x1dGlvbiBpcyB0byBsaW1pdCB0aGUgcmVhZC93cml0ZSBsZW5ndGguCisgKi8KK3N0YXRpYyB2b2lkIF9fZGV2aW5pdCBxdWlya19icmNtXzU3MHhfbGltaXRfdnBkKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJLyogIE9ubHkgZGlzYWJsZSB0aGUgVlBEIGNhcGFiaWxpdHkgZm9yIDU3MDYsIDU3MDgsIGFuZCA1NzA5IHJldi4gQSAqLworCWlmICgoZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9OWDJfNTcwNikgfHwKKwkgICAgKGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfTlgyXzU3MDgpIHx8CisJICAgICgoZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9OWDJfNTcwOSkgJiYKKwkgICAgIChkZXYtPnJldmlzaW9uICYgMHhmMCkgPT0gMHgwKSkgeworCQlpZiAoZGV2LT52cGQpCisJCQlkZXYtPnZwZC0+bGVuID0gMHg4MDsKKwl9Cit9CisKK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0JST0FEQ09NLAorCQkJIFBDSV9ERVZJQ0VfSURfTlgyXzU3MDYsCisJCQkgcXVpcmtfYnJjbV81NzB4X2xpbWl0X3ZwZCk7CitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9CUk9BRENPTSwKKwkJCSBQQ0lfREVWSUNFX0lEX05YMl81NzA2UywKKwkJCSBxdWlya19icmNtXzU3MHhfbGltaXRfdnBkKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0JST0FEQ09NLAorCQkJIFBDSV9ERVZJQ0VfSURfTlgyXzU3MDgsCisJCQkgcXVpcmtfYnJjbV81NzB4X2xpbWl0X3ZwZCk7CitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9CUk9BRENPTSwKKwkJCSBQQ0lfREVWSUNFX0lEX05YMl81NzA4UywKKwkJCSBxdWlya19icmNtXzU3MHhfbGltaXRfdnBkKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0JST0FEQ09NLAorCQkJIFBDSV9ERVZJQ0VfSURfTlgyXzU3MDksCisJCQkgcXVpcmtfYnJjbV81NzB4X2xpbWl0X3ZwZCk7CitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9CUk9BRENPTSwKKwkJCSBQQ0lfREVWSUNFX0lEX05YMl81NzA5UywKKwkJCSBxdWlya19icmNtXzU3MHhfbGltaXRfdnBkKTsKKwogI2lmZGVmIENPTkZJR19QQ0lfTVNJCiAvKiBTb21lIGNoaXBzZXRzIGRvIG5vdCBzdXBwb3J0IE1TSS4gV2UgY2Fubm90IGVhc2lseSByZWx5IG9uIHNldHRpbmcKICAqIFBDSV9CVVNfRkxBR1NfTk9fTVNJIGluIGl0cyBidXMgZmxhZ3MgYmVjYXVzZSB0aGVyZSBhcmUgYWN0dWFsbHkKQEAgLTE2ODUsNiArMTcyNyw3IEBACiBERUNMQVJFX1BDSV9GSVhVUF9GSU5BTChQQ0lfVkVORE9SX0lEX1NFUlZFUldPUktTLCBQQ0lfREVWSUNFX0lEX1NFUlZFUldPUktTX0dDTkJfTEUsIHF1aXJrX2Rpc2FibGVfYWxsX21zaSk7CiBERUNMQVJFX1BDSV9GSVhVUF9GSU5BTChQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUlM0MDBfMjAwLCBxdWlya19kaXNhYmxlX2FsbF9tc2kpOwogREVDTEFSRV9QQ0lfRklYVVBfRklOQUwoUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX1JTNDgwLCBxdWlya19kaXNhYmxlX2FsbF9tc2kpOworREVDTEFSRV9QQ0lfRklYVVBfRklOQUwoUENJX1ZFTkRPUl9JRF9WSUEsIFBDSV9ERVZJQ0VfSURfVklBX1ZUMzMzNiwgcXVpcmtfZGlzYWJsZV9hbGxfbXNpKTsKIERFQ0xBUkVfUENJX0ZJWFVQX0ZJTkFMKFBDSV9WRU5ET1JfSURfVklBLCBQQ0lfREVWSUNFX0lEX1ZJQV9WVDMzNTEsIHF1aXJrX2Rpc2FibGVfYWxsX21zaSk7CiAKIC8qIERpc2FibGUgTVNJIG9uIGNoaXBzZXRzIHRoYXQgYXJlIGtub3duIHRvIG5vdCBzdXBwb3J0IGl0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9LY29uZmlnIGIvZHJpdmVycy9wY21jaWEvS2NvbmZpZwppbmRleCAxYjBlYjVhLi5lNDU0MDJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9LY29uZmlnCisrKyBiL2RyaXZlcnMvcGNtY2lhL0tjb25maWcKQEAgLTI2Myw2ICsyNjMsMTMgQEAKIAkgIFNheSBZIGhlcmUgdG8gc3VwcG9ydCB0aGUgQ29tcGFjdEZsYXNoIGNvbnRyb2xsZXIgb24gT01BUC4KIAkgIE5vdGUgdGhhdCB0aGlzIGRvZXNuJ3Qgc3VwcG9ydCAiVHJ1ZSBJREUiIG1vZGUuCiAKK2NvbmZpZyBCRklOX0NGUENNQ0lBCisJdHJpc3RhdGUgIkJsYWNrZmluIENvbXBhY3RGbGFzaCBQQ01DSUEgRHJpdmVyIgorCWRlcGVuZHMgb24gUENNQ0lBICYmIEJMQUNLRklOCisJaGVscAorCSAgU2F5IFkgaGVyZSB0byBzdXBwb3J0IHRoZSBDb21wYWN0Rmxhc2ggUENNQ0lBIGRyaXZlciBmb3IgQmxhY2tmaW4uCisKKwogY29uZmlnIEFUOTFfQ0YKIAl0cmlzdGF0ZSAiQVQ5MSBDb21wYWN0Rmxhc2ggQ29udHJvbGxlciIKIAlkZXBlbmRzIG9uIFBDTUNJQSAmJiBBUkNIX0FUOTFSTTkyMDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL01ha2VmaWxlIGIvZHJpdmVycy9wY21jaWEvTWFrZWZpbGUKaW5kZXggNmY2NDc4Yi4uODVjNmNjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9wY21jaWEvTWFrZWZpbGUKQEAgLTM2LDYgKzM2LDcgQEAKIG9iai0kKENPTkZJR19QQ01DSUFfVlJDNDE3MSkJCQkrPSB2cmM0MTcxX2NhcmQubwogb2JqLSQoQ09ORklHX1BDTUNJQV9WUkM0MTczKQkJCSs9IHZyYzQxNzNfY2FyZHUubwogb2JqLSQoQ09ORklHX09NQVBfQ0YpCQkJCSs9IG9tYXBfY2Yubworb2JqLSQoQ09ORklHX0JGSU5fQ0ZQQ01DSUEpCQkJKz0gYmZpbl9jZl9wY21jaWEubwogb2JqLSQoQ09ORklHX0FUOTFfQ0YpCQkJCSs9IGF0OTFfY2Yubwogb2JqLSQoQ09ORklHX0VMRUNUUkFfQ0YpCQkJKz0gZWxlY3RyYV9jZi5vCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF9nZW5lcmljLmggYi9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfZ2VuZXJpYy5oCmluZGV4IDFlNDY3YmIuLmE1M2VmNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF9nZW5lcmljLmgKKysrIGIvZHJpdmVycy9wY21jaWEvYXUxMDAwX2dlbmVyaWMuaApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCiAKQEAgLTM0LDkgKzMzLDkgQEAKICNkZWZpbmUgQVUxMDAwX1BDTUNJQV9JT19TUEVFRCAgICAgICAoMjU1KQogI2RlZmluZSBBVTEwMDBfUENNQ0lBX01FTV9TUEVFRCAgICAgICgzMDApCiAKLSNkZWZpbmUgQVUxWF9TT0NLMF9JTyAgICAgICAgMHhGMDAwMDAwMDAKLSNkZWZpbmUgQVUxWF9TT0NLMF9QSFlTX0FUVFIgMHhGNDAwMDAwMDAKLSNkZWZpbmUgQVUxWF9TT0NLMF9QSFlTX01FTSAgMHhGODAwMDAwMDAKKyNkZWZpbmUgQVUxWF9TT0NLMF9JTyAgICAgICAgMHhGMDAwMDAwMDBVTEwKKyNkZWZpbmUgQVUxWF9TT0NLMF9QSFlTX0FUVFIgMHhGNDAwMDAwMDBVTEwKKyNkZWZpbmUgQVUxWF9TT0NLMF9QSFlTX01FTSAgMHhGODAwMDAwMDBVTEwKIC8qIHBzZXVkbyAzMiBiaXQgcGh5cyBhZGRyZXNzZXMsIHdoaWNoIGdldCBmaXhlZCB1cCB0byB0aGUKICAqIHJlYWwgMzYgYml0IGFkZHJlc3MgaW4gZml4dXBfYmlncGh5c19hZGRyKCkgKi8KICNkZWZpbmUgQVUxWF9TT0NLMF9QU0VVRE9fUEhZU19BVFRSIDB4RjQwMDAwMDAKQEAgLTQ1LDE2ICs0NCwyMCBAQAogLyogcGNtY2lhIHNvY2tldCAxIG5lZWRzIGV4dGVybmFsIGdsdWUgbG9naWMgc28gdGhlIG1lbW9yeSBtYXAKICAqIGRpZmZlcnMgZnJvbSBib2FyZCB0byBib2FyZC4KICAqLwotI2lmIGRlZmluZWQoQ09ORklHX01JUFNfUEIxMDAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTEwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19QQjE1MDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfUEIxNTUwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTIwMCkKLSNkZWZpbmUgQVUxWF9TT0NLMV9JTyAgICAgICAgMHhGMDgwMDAwMDAKLSNkZWZpbmUgQVUxWF9TT0NLMV9QSFlTX0FUVFIgMHhGNDgwMDAwMDAKLSNkZWZpbmUgQVUxWF9TT0NLMV9QSFlTX01FTSAgMHhGODgwMDAwMDAKKyNpZiBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTAwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19QQjExMDApIHx8IFwKKyAgICBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTUwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19QQjE1NTApIHx8IFwKKyAgICBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTIwMCkKKyNkZWZpbmUgQVUxWF9TT0NLMV9JTyAgICAgICAgMHhGMDgwMDAwMDBVTEwKKyNkZWZpbmUgQVUxWF9TT0NLMV9QSFlTX0FUVFIgMHhGNDgwMDAwMDBVTEwKKyNkZWZpbmUgQVUxWF9TT0NLMV9QSFlTX01FTSAgMHhGODgwMDAwMDBVTEwKICNkZWZpbmUgQVUxWF9TT0NLMV9QU0VVRE9fUEhZU19BVFRSIDB4RjQ4MDAwMDAKICNkZWZpbmUgQVUxWF9TT0NLMV9QU0VVRE9fUEhZU19NRU0gIDB4Rjg4MDAwMDAKLSNlbGlmIGRlZmluZWQoQ09ORklHX01JUFNfREIxMDAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTEwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19EQjE1MDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfREIxNTUwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTIwMCkKLSNkZWZpbmUgQVUxWF9TT0NLMV9JTyAgICAgICAgMHhGMDQwMDAwMDAKLSNkZWZpbmUgQVUxWF9TT0NLMV9QSFlTX0FUVFIgMHhGNDQwMDAwMDAKLSNkZWZpbmUgQVUxWF9TT0NLMV9QSFlTX01FTSAgMHhGODQwMDAwMDAKKyNlbGlmIGRlZmluZWQoQ09ORklHX01JUFNfREIxMDAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTEwMCkgfHwgXAorICAgICAgZGVmaW5lZChDT05GSUdfTUlQU19EQjE1MDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfREIxNTUwKSB8fCBcCisgICAgICBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTIwMCkKKyNkZWZpbmUgQVUxWF9TT0NLMV9JTyAgICAgICAgMHhGMDQwMDAwMDBVTEwKKyNkZWZpbmUgQVUxWF9TT0NLMV9QSFlTX0FUVFIgMHhGNDQwMDAwMDBVTEwKKyNkZWZpbmUgQVUxWF9TT0NLMV9QSFlTX01FTSAgMHhGODQwMDAwMDBVTEwKICNkZWZpbmUgQVUxWF9TT0NLMV9QU0VVRE9fUEhZU19BVFRSIDB4RjQ0MDAwMDAKICNkZWZpbmUgQVUxWF9TT0NLMV9QU0VVRE9fUEhZU19NRU0gIDB4Rjg0MDAwMDAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvYXUxMDAwX3BiMXgwMC5jIGIvZHJpdmVycy9wY21jaWEvYXUxMDAwX3BiMXgwMC5jCmluZGV4IDE1N2U0MTQuLmFhMWNkNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF9wYjF4MDAuYworKysgYi9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfcGIxeDAwLmMKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KLSNpbmNsdWRlIDxwY21jaWEvYnVsa21lbS5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXN0cGwuaD4KICNpbmNsdWRlIDxwY21jaWEvYnVzX29wcy5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfeHhzMTUwMC5jIGIvZHJpdmVycy9wY21jaWEvYXUxMDAwX3h4czE1MDAuYwppbmRleCBjNzhlZDUzLi44YTliMThjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfeHhzMTUwMC5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF94eHMxNTAwLmMKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KLSNpbmNsdWRlIDxwY21jaWEvYnVsa21lbS5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXN0cGwuaD4KICNpbmNsdWRlIDxwY21jaWEvYnVzX29wcy5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9iZmluX2NmX3BjbWNpYS5jIGIvZHJpdmVycy9wY21jaWEvYmZpbl9jZl9wY21jaWEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjczMzg4NgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcGNtY2lhL2JmaW5fY2ZfcGNtY2lhLmMKQEAgLTAsMCArMSwzMzkgQEAKKy8qCisgKiBmaWxlOiBkcml2ZXJzL3BjbWNpYS9iZmluX2NmLmMKKyAqCisgKiBiYXNlZCBvbjogZHJpdmVycy9wY21jaWEvb21hcF9jZi5jCisgKiBvbWFwX2NmLmMgLS0gT01BUCAxNnh4IENvbXBhY3RGbGFzaCBjb250cm9sbGVyIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNSBEYXZpZCBCcm93bmVsbAorICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDggTWljaGFlbCBIZW5uZXJpY2ggQW5hbG9nIERldmljZXMgSW5jLgorICoKKyAqIGJ1Z3M6ICAgICAgICAgZW50ZXIgYnVncyBhdCBodHRwOi8vYmxhY2tmaW4udWNsaW51eC5vcmcvCisgKgorICogdGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgZ251IGdlbmVyYWwgcHVibGljIGxpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgZnJlZSBzb2Z0d2FyZSBmb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCisgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiB0aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCB3aXRob3V0IGFueSB3YXJyYW50eTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBtZXJjaGFudGFiaWxpdHkgb3IgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuICBzZWUgdGhlCisgKiBnbnUgZ2VuZXJhbCBwdWJsaWMgbGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIHlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIGdudSBnZW5lcmFsIHB1YmxpYyBsaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIGNvcHlpbmcuCisgKiBpZiBub3QsIHdyaXRlIHRvIHRoZSBmcmVlIHNvZnR3YXJlIGZvdW5kYXRpb24sCisgKiA1OSB0ZW1wbGUgcGxhY2UgLSBzdWl0ZSAzMzAsIGJvc3RvbiwgbWEgMDIxMTEtMTMwNywgdXNhLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKworI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgorI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorCisjZGVmaW5lCVNaXzFLCTB4MDAwMDA0MDAKKyNkZWZpbmUJU1pfOEsJMHgwMDAwMjAwMAorI2RlZmluZQlTWl8ySwkoMiAqIFNaXzFLKQorCisjZGVmaW5lCVBPTExfSU5URVJWQUwJKDIgKiBIWikKKworI2RlZmluZQlDRl9BVEFTRUxfRU5BIAkweDIwMzExODAyCS8qIEludmVydHMgUkVTRVQgKi8KKyNkZWZpbmUJQ0ZfQVRBU0VMX0RJUyAJMHgyMDMxMTgwMAorCisjZGVmaW5lIGJmaW5fY2ZfcHJlc2VudChwZngpIChncGlvX2dldF92YWx1ZShwZngpKQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIGNvbnN0IGNoYXIgZHJpdmVyX25hbWVbXSA9ICJiZmluX2NmX3BjbWNpYSI7CisKK3N0cnVjdCBiZmluX2NmX3NvY2tldCB7CisJc3RydWN0IHBjbWNpYV9zb2NrZXQgc29ja2V0OworCisJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CisJdW5zaWduZWQgcHJlc2VudDoxOworCXVuc2lnbmVkIGFjdGl2ZToxOworCisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKKwl1bnNpZ25lZCBsb25nIHBoeXNfY2ZfaW87CisJdW5zaWduZWQgbG9uZyBwaHlzX2NmX2F0dHI7CisJdV9pbnQgaXJxOworCXVfc2hvcnQgY2RfcGZ4OworfTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgaW50IGJmaW5fY2ZfcmVzZXQodm9pZCkKK3sKKwlvdXR3KDAsIENGX0FUQVNFTF9FTkEpOworCW1kZWxheSgyMDApOworCW91dHcoMCwgQ0ZfQVRBU0VMX0RJUyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiZmluX2NmX3NzX2luaXQoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpCit7CisJcmV0dXJuIDA7Cit9CisKKy8qIHRoZSB0aW1lciBpcyBwcmltYXJpbHkgdG8ga2ljayB0aGlzIHNvY2tldCdzIHBjY2FyZGQgKi8KK3N0YXRpYyB2b2lkIGJmaW5fY2ZfdGltZXIodW5zaWduZWQgbG9uZyBfY2YpCit7CisJc3RydWN0IGJmaW5fY2Zfc29ja2V0ICpjZiA9ICh2b2lkICopX2NmOworCXVuc2lnbmVkIHNob3J0IHByZXNlbnQgPSBiZmluX2NmX3ByZXNlbnQoY2YtPmNkX3BmeCk7CisKKwlpZiAocHJlc2VudCAhPSBjZi0+cHJlc2VudCkgeworCQljZi0+cHJlc2VudCA9IHByZXNlbnQ7CisJCWRldl9kYmcoJmNmLT5wZGV2LT5kZXYsICI6IGNhcmQgJXNcbiIsCisJCQkgcHJlc2VudCA/ICJwcmVzZW50IiA6ICJnb25lIik7CisJCXBjbWNpYV9wYXJzZV9ldmVudHMoJmNmLT5zb2NrZXQsIFNTX0RFVEVDVCk7CisJfQorCisJaWYgKGNmLT5hY3RpdmUpCisJCW1vZF90aW1lcigmY2YtPnRpbWVyLCBqaWZmaWVzICsgUE9MTF9JTlRFUlZBTCk7Cit9CisKK3N0YXRpYyBpbnQgYmZpbl9jZl9nZXRfc3RhdHVzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCB1X2ludCAqc3ApCit7CisJc3RydWN0IGJmaW5fY2Zfc29ja2V0ICpjZjsKKworCWlmICghc3ApCisJCXJldHVybiAtRUlOVkFMOworCisJY2YgPSBjb250YWluZXJfb2Yocywgc3RydWN0IGJmaW5fY2Zfc29ja2V0LCBzb2NrZXQpOworCisJaWYgKGJmaW5fY2ZfcHJlc2VudChjZi0+Y2RfcGZ4KSkgeworCQkqc3AgPSBTU19SRUFEWSB8IFNTX0RFVEVDVCB8IFNTX1BPV0VST04gfCBTU18zVkNBUkQ7CisJCXMtPmlycS5Bc3NpZ25lZElSUSA9IDA7CisJCXMtPnBjaV9pcnEgPSBjZi0+aXJxOworCisJfSBlbHNlCisJCSpzcCA9IDA7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2JmaW5fY2Zfc2V0X3NvY2tldChzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqc29jaywgc3RydWN0IHNvY2tldF9zdGF0ZV90ICpzKQoreworCisJc3RydWN0IGJmaW5fY2Zfc29ja2V0ICpjZjsKKwljZiA9IGNvbnRhaW5lcl9vZihzb2NrLCBzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQsIHNvY2tldCk7CisKKwlzd2l0Y2ggKHMtPlZjYykgeworCWNhc2UgMDoKKwljYXNlIDMzOgorCQlicmVhazsKKwljYXNlIDUwOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAocy0+ZmxhZ3MgJiBTU19SRVNFVCkgeworCQlkaXNhYmxlX2lycShjZi0+aXJxKTsKKwkJYmZpbl9jZl9yZXNldCgpOworCQllbmFibGVfaXJxKGNmLT5pcnEpOworCX0KKworCWRldl9kYmcoJmNmLT5wZGV2LT5kZXYsICI6IFZjYyAlZCwgaW9faXJxICVkLCBmbGFncyAlMDR4IGNzYyAlMDR4XG4iLAorCQkgcy0+VmNjLCBzLT5pb19pcnEsIHMtPmZsYWdzLCBzLT5jc2NfbWFzayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiZmluX2NmX3NzX3N1c3BlbmQoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpCit7CisJcmV0dXJuIGJmaW5fY2Zfc2V0X3NvY2tldChzLCAmZGVhZF9zb2NrZXQpOworfQorCisvKiByZWdpb25zIGFyZSAySyBlYWNoOiAgbWVtLCBhdHRyaWIsIGlvIChhbmQgcmVzZXJ2ZWQtZm9yLWlkZSkgKi8KKworc3RhdGljIGludCBiZmluX2NmX3NldF9pb19tYXAoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHN0cnVjdCBwY2NhcmRfaW9fbWFwICppbykKK3sKKwlzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQgKmNmOworCisJY2YgPSBjb250YWluZXJfb2Yocywgc3RydWN0IGJmaW5fY2Zfc29ja2V0LCBzb2NrZXQpOworCWlvLT5mbGFncyAmPSBNQVBfQUNUSVZFIHwgTUFQX0FUVFJJQiB8IE1BUF8xNkJJVDsKKwlpby0+c3RhcnQgPSBjZi0+cGh5c19jZl9pbzsKKwlpby0+c3RvcCA9IGlvLT5zdGFydCArIFNaXzJLIC0gMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorYmZpbl9jZl9zZXRfbWVtX21hcChzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgc3RydWN0IHBjY2FyZF9tZW1fbWFwICptYXApCit7CisJc3RydWN0IGJmaW5fY2Zfc29ja2V0ICpjZjsKKworCWlmIChtYXAtPmNhcmRfc3RhcnQpCisJCXJldHVybiAtRUlOVkFMOworCWNmID0gY29udGFpbmVyX29mKHMsIHN0cnVjdCBiZmluX2NmX3NvY2tldCwgc29ja2V0KTsKKwltYXAtPnN0YXRpY19zdGFydCA9IGNmLT5waHlzX2NmX2lvOworCW1hcC0+ZmxhZ3MgJj0gTUFQX0FDVElWRSB8IE1BUF9BVFRSSUIgfCBNQVBfMTZCSVQ7CisJaWYgKG1hcC0+ZmxhZ3MgJiBNQVBfQVRUUklCKQorCQltYXAtPnN0YXRpY19zdGFydCA9IGNmLT5waHlzX2NmX2F0dHI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBwY2NhcmRfb3BlcmF0aW9ucyBiZmluX2NmX29wcyA9IHsKKwkuaW5pdCA9IGJmaW5fY2Zfc3NfaW5pdCwKKwkuc3VzcGVuZCA9IGJmaW5fY2Zfc3Nfc3VzcGVuZCwKKwkuZ2V0X3N0YXR1cyA9IGJmaW5fY2ZfZ2V0X3N0YXR1cywKKwkuc2V0X3NvY2tldCA9IGJmaW5fY2Zfc2V0X3NvY2tldCwKKwkuc2V0X2lvX21hcCA9IGJmaW5fY2Zfc2V0X2lvX21hcCwKKwkuc2V0X21lbV9tYXAgPSBiZmluX2NmX3NldF9tZW1fbWFwLAorfTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0YXRpYyBpbnQgX19kZXZpbml0IGJmaW5fY2ZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQgKmNmOworCXN0cnVjdCByZXNvdXJjZSAqaW9fbWVtLCAqYXR0cl9tZW07CisJaW50IGlycTsKKwl1bnNpZ25lZCBzaG9ydCBjZF9wZng7CisJaW50IHN0YXR1cyA9IDA7CisKKwlkZXZfaW5mbygmcGRldi0+ZGV2LCAiQmxhY2tmaW4gQ29tcGFjdEZsYXNoL1BDTUNJQSBTb2NrZXQgRHJpdmVyXG4iKTsKKworCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJaWYgKCFpcnEpCisJCXJldHVybiAtRUlOVkFMOworCisJY2RfcGZ4ID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAxKTsJLypDYXJkIERldGVjdCBHUElPIFBJTiAqLworCisJaWYgKGdwaW9fcmVxdWVzdChjZF9wZngsICJwY21jaWE6IENEIikpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LAorCQkgICAgICAgIkZhaWxlZCBybyByZXF1ZXN0IENhcmQgRGV0ZWN0IEdQSU9fJWRcbiIsCisJCSAgICAgICBjZF9wZngpOworCQlyZXR1cm4gLUVCVVNZOworCX0KKwlncGlvX2RpcmVjdGlvbl9pbnB1dChjZF9wZngpOworCisJY2YgPSBremFsbG9jKHNpemVvZiAqY2YsIEdGUF9LRVJORUwpOworCWlmICghY2YpIHsKKwkJZ3Bpb19mcmVlKGNkX3BmeCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWNmLT5jZF9wZnggPSBjZF9wZng7CisKKwlzZXR1cF90aW1lcigmY2YtPnRpbWVyLCBiZmluX2NmX3RpbWVyLCAodW5zaWduZWQgbG9uZyljZik7CisKKwljZi0+cGRldiA9IHBkZXY7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgY2YpOworCisJY2YtPmlycSA9IGlycTsKKwljZi0+c29ja2V0LnBjaV9pcnEgPSBpcnE7CisKKwlzZXRfaXJxX3R5cGUoaXJxLCBJUlFGX1RSSUdHRVJfTE9XKTsKKworCWlvX21lbSA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJYXR0cl9tZW0gPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDEpOworCisJaWYgKCFpb19tZW0gfHwgIWF0dHJfbWVtKQorCQlnb3RvIGZhaWwwOworCisJY2YtPnBoeXNfY2ZfaW8gPSBpb19tZW0tPnN0YXJ0OworCWNmLT5waHlzX2NmX2F0dHIgPSBhdHRyX21lbS0+c3RhcnQ7CisKKwkvKiBwY21jaWEgbGF5ZXIgb25seSByZW1hcHMgInJlYWwiIG1lbW9yeSAqLworCWNmLT5zb2NrZXQuaW9fb2Zmc2V0ID0gKHVuc2lnbmVkIGxvbmcpCisJICAgIGlvcmVtYXAoY2YtPnBoeXNfY2ZfaW8sIFNaXzJLKTsKKworCWlmICghY2YtPnNvY2tldC5pb19vZmZzZXQpCisJCWdvdG8gZmFpbDA7CisKKwlkZXZfZXJyKCZwZGV2LT5kZXYsICI6IG9uIGlycSAlZFxuIiwgaXJxKTsKKworCWRldl9kYmcoJnBkZXYtPmRldiwgIjogJXNcbiIsCisJCSBiZmluX2NmX3ByZXNlbnQoY2YtPmNkX3BmeCkgPyAicHJlc2VudCIgOiAiKG5vdCBwcmVzZW50KSIpOworCisJY2YtPnNvY2tldC5vd25lciA9IFRISVNfTU9EVUxFOworCWNmLT5zb2NrZXQuZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7CisJY2YtPnNvY2tldC5vcHMgPSAmYmZpbl9jZl9vcHM7CisJY2YtPnNvY2tldC5yZXNvdXJjZV9vcHMgPSAmcGNjYXJkX3N0YXRpY19vcHM7CisJY2YtPnNvY2tldC5mZWF0dXJlcyA9IFNTX0NBUF9QQ0NBUkQgfCBTU19DQVBfU1RBVElDX01BUAorCSAgICB8IFNTX0NBUF9NRU1fQUxJR047CisJY2YtPnNvY2tldC5tYXBfc2l6ZSA9IFNaXzJLOworCisJc3RhdHVzID0gcGNtY2lhX3JlZ2lzdGVyX3NvY2tldCgmY2YtPnNvY2tldCk7CisJaWYgKHN0YXR1cyA8IDApCisJCWdvdG8gZmFpbDI7CisKKwljZi0+YWN0aXZlID0gMTsKKwltb2RfdGltZXIoJmNmLT50aW1lciwgamlmZmllcyArIFBPTExfSU5URVJWQUwpOworCXJldHVybiAwOworCitmYWlsMjoKKwlpb3VubWFwKCh2b2lkIF9faW9tZW0gKiljZi0+c29ja2V0LmlvX29mZnNldCk7CisJcmVsZWFzZV9tZW1fcmVnaW9uKGNmLT5waHlzX2NmX2lvLCBTWl84Syk7CisKK2ZhaWwwOgorCWdwaW9fZnJlZShjZi0+Y2RfcGZ4KTsKKwlrZnJlZShjZik7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgTlVMTCk7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgaW50IF9fZGV2ZXhpdCBiZmluX2NmX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBiZmluX2NmX3NvY2tldCAqY2YgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWdwaW9fZnJlZShjZi0+Y2RfcGZ4KTsKKwljZi0+YWN0aXZlID0gMDsKKwlwY21jaWFfdW5yZWdpc3Rlcl9zb2NrZXQoJmNmLT5zb2NrZXQpOworCWRlbF90aW1lcl9zeW5jKCZjZi0+dGltZXIpOworCWlvdW5tYXAoKHZvaWQgX19pb21lbSAqKWNmLT5zb2NrZXQuaW9fb2Zmc2V0KTsKKwlyZWxlYXNlX21lbV9yZWdpb24oY2YtPnBoeXNfY2ZfaW8sIFNaXzhLKTsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKwlrZnJlZShjZik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmZpbl9jZl9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBtZXNnKQoreworCXJldHVybiBwY21jaWFfc29ja2V0X2Rldl9zdXNwZW5kKCZwZGV2LT5kZXYsIG1lc2cpOworfQorCitzdGF0aWMgaW50IGJmaW5fY2ZfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIHBjbWNpYV9zb2NrZXRfZGV2X3Jlc3VtZSgmcGRldi0+ZGV2KTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYmZpbl9jZl9kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJICAgLm5hbWUgPSAoY2hhciAqKWRyaXZlcl9uYW1lLAorCQkgICAub3duZXIgPSBUSElTX01PRFVMRSwKKwkJICAgfSwKKwkucHJvYmUgPSBiZmluX2NmX3Byb2JlLAorCS5yZW1vdmUgPSBfX2RldmV4aXRfcChiZmluX2NmX3JlbW92ZSksCisJLnN1c3BlbmQgPSBiZmluX2NmX3N1c3BlbmQsCisJLnJlc3VtZSA9IGJmaW5fY2ZfcmVzdW1lLAorfTsKKworc3RhdGljIGludCBfX2luaXQgYmZpbl9jZl9pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmYmZpbl9jZl9kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYmZpbl9jZl9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmJmaW5fY2ZfZHJpdmVyKTsKK30KKworbW9kdWxlX2luaXQoYmZpbl9jZl9pbml0KTsKK21vZHVsZV9leGl0KGJmaW5fY2ZfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIk1pY2hhZWwgSGVubmVyaWNoIDxoZW5uZXJpY2hAYmxhY2tmaW4udWNsaW51eC5vcmc+IikKK01PRFVMRV9ERVNDUklQVElPTigiQkZJTiBDRi9QQ01DSUEgRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9jYXJkYnVzLmMgYi9kcml2ZXJzL3BjbWNpYS9jYXJkYnVzLmMKaW5kZXggZmIyZjM4ZC4uOTExY2EwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvY2FyZGJ1cy5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2NhcmRidXMuYwpAQCAtMzAsMTEgKzMwLDkgQEAKICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKLSNkZWZpbmUgSU5fQ0FSRF9TRVJWSUNFUwogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2Npc3RwbC5jIGIvZHJpdmVycy9wY21jaWEvY2lzdHBsLmMKaW5kZXggMzYzNzk1My4uOWZjZmYwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvY2lzdHBsLmMKKysrIGIvZHJpdmVycy9wY21jaWEvY2lzdHBsLmMKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KLSNpbmNsdWRlIDxwY21jaWEvYnVsa21lbS5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSAiY3NfaW50ZXJuYWwuaCIKQEAgLTE0MzksMTAgKzE0MzgsMTEgQEAKICAgICAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi1pbnQgcGNjYXJkX3ZhbGlkYXRlX2NpcyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgdW5zaWduZWQgaW50IGZ1bmN0aW9uLCBjaXNpbmZvX3QgKmluZm8pCitpbnQgcGNjYXJkX3ZhbGlkYXRlX2NpcyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgdW5zaWduZWQgaW50IGZ1bmN0aW9uLCB1bnNpZ25lZCBpbnQgKmluZm8pCiB7CiAgICAgdHVwbGVfdCAqdHVwbGU7CiAgICAgY2lzcGFyc2VfdCAqcDsKKyAgICB1bnNpZ25lZCBpbnQgY291bnQgPSAwOwogICAgIGludCByZXQsIHJlc2VydmVkLCBkZXZfb2sgPSAwLCBpZGVudF9vayA9IDA7CiAKICAgICBpZiAoIXMpCkBAIC0xNDU3LDcgKzE0NTcsNyBAQAogCXJldHVybiBDU19PVVRfT0ZfUkVTT1VSQ0U7CiAgICAgfQogCi0gICAgaW5mby0+Q2hhaW5zID0gcmVzZXJ2ZWQgPSAwOworICAgIGNvdW50ID0gcmVzZXJ2ZWQgPSAwOwogICAgIHR1cGxlLT5EZXNpcmVkVHVwbGUgPSBSRVRVUk5fRklSU1RfVFVQTEU7CiAgICAgdHVwbGUtPkF0dHJpYnV0ZXMgPSBUVVBMRV9SRVRVUk5fQ09NTU9OOwogICAgIHJldCA9IHBjY2FyZF9nZXRfZmlyc3RfdHVwbGUocywgZnVuY3Rpb24sIHR1cGxlKTsKQEAgLTE0ODIsNyArMTQ4Miw3IEBACiAgICAgaWYgKCFkZXZfb2sgJiYgIWlkZW50X29rKQogCWdvdG8gZG9uZTsKIAotICAgIGZvciAoaW5mby0+Q2hhaW5zID0gMTsgaW5mby0+Q2hhaW5zIDwgTUFYX1RVUExFUzsgaW5mby0+Q2hhaW5zKyspIHsKKyAgICBmb3IgKGNvdW50ID0gMTsgY291bnQgPCBNQVhfVFVQTEVTOyBjb3VudCsrKSB7CiAJcmV0ID0gcGNjYXJkX2dldF9uZXh0X3R1cGxlKHMsIGZ1bmN0aW9uLCB0dXBsZSk7CiAJaWYgKHJldCAhPSBDU19TVUNDRVNTKSBicmVhazsKIAlpZiAoKCh0dXBsZS0+VHVwbGVDb2RlID4gMHgyMykgJiYgKHR1cGxlLT5UdXBsZUNvZGUgPCAweDQwKSkgfHwKQEAgLTE0OTAsMTEgKzE0OTAsMTMgQEAKIAkgICAgKCh0dXBsZS0+VHVwbGVDb2RlID4gMHg5MCkgJiYgKHR1cGxlLT5UdXBsZUNvZGUgPCAweGZmKSkpCiAJICAgIHJlc2VydmVkKys7CiAgICAgfQotICAgIGlmICgoaW5mby0+Q2hhaW5zID09IE1BWF9UVVBMRVMpIHx8IChyZXNlcnZlZCA+IDUpIHx8Ci0JKCghZGV2X29rIHx8ICFpZGVudF9vaykgJiYgKGluZm8tPkNoYWlucyA+IDEwKSkpCi0JaW5mby0+Q2hhaW5zID0gMDsKKyAgICBpZiAoKGNvdW50KSB8fCAocmVzZXJ2ZWQgPiA1KSB8fAorCSgoIWRldl9vayB8fCAhaWRlbnRfb2spICYmIChjb3VudCA+IDEwKSkpCisJY291bnQgPSAwOwogCiBkb25lOgorICAgIGlmIChpbmZvKQorCSAgICAqaW5mbyA9IGNvdW50OwogICAgIGtmcmVlKHR1cGxlKTsKICAgICBrZnJlZShwKTsKICAgICByZXR1cm4gQ1NfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2NzLmMgYi9kcml2ZXJzL3BjbWNpYS9jcy5jCmluZGV4IDI5Mjc2YmQuLmQxMjA3MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2NzLmMKKysrIGIvZHJpdmVycy9wY21jaWEvY3MuYwpAQCAtMzIsMTEgKzMyLDkgQEAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgogCi0jZGVmaW5lIElOX0NBUkRfU0VSVklDRVMKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KLSNpbmNsdWRlIDxwY21jaWEvYnVsa21lbS5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXN0cGwuaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzcmVnLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2RzLmg+CkBAIC0yMzgsNyArMjM2LDYgQEAKIAogCWluaXRfY29tcGxldGlvbigmc29ja2V0LT5zb2NrZXRfcmVsZWFzZWQpOwogCWluaXRfY29tcGxldGlvbigmc29ja2V0LT50aHJlYWRfZG9uZSk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmc29ja2V0LT50aHJlYWRfd2FpdCk7CiAJbXV0ZXhfaW5pdCgmc29ja2V0LT5za3RfbXV0ZXgpOwogCXNwaW5fbG9ja19pbml0KCZzb2NrZXQtPnRocmVhZF9sb2NrKTsKIApAQCAtMjc4LDEwICsyNzUsOSBAQAogCiAJY3NfZGJnKHNvY2tldCwgMCwgInBjbWNpYV91bnJlZ2lzdGVyX3NvY2tldCgweCVwKVxuIiwgc29ja2V0LT5vcHMpOwogCi0JaWYgKHNvY2tldC0+dGhyZWFkKSB7Ci0JCXdha2VfdXAoJnNvY2tldC0+dGhyZWFkX3dhaXQpOworCWlmIChzb2NrZXQtPnRocmVhZCkKIAkJa3RocmVhZF9zdG9wKHNvY2tldC0+dGhyZWFkKTsKLQl9CisKIAlyZWxlYXNlX2Npc19tZW0oc29ja2V0KTsKIAogCS8qIHJlbW92ZSBmcm9tIG91ciBvd24gbGlzdCAqLwpAQCAtNjM1LDcgKzYzMSw2IEBACiBzdGF0aWMgaW50IHBjY2FyZGQodm9pZCAqX19za3QpCiB7CiAJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnNrdCA9IF9fc2t0OwotCURFQ0xBUkVfV0FJVFFVRVVFKHdhaXQsIGN1cnJlbnQpOwogCWludCByZXQ7CiAKIAlza3QtPnRocmVhZCA9IGN1cnJlbnQ7CkBAIC02NTYsNyArNjUxLDYgQEAKIAlpZiAocmV0KQogCQlkZXZfd2Fybigmc2t0LT5kZXYsICJlcnIgJWQgYWRkaW5nIHNvY2tldCBhdHRyaWJ1dGVzXG4iLCByZXQpOwogCi0JYWRkX3dhaXRfcXVldWUoJnNrdC0+dGhyZWFkX3dhaXQsICZ3YWl0KTsKIAljb21wbGV0ZSgmc2t0LT50aHJlYWRfZG9uZSk7CiAKIAlzZXRfZnJlZXphYmxlKCk7CkBAIC02OTQsOCArNjg4LDYgQEAKIAkvKiBtYWtlIHN1cmUgd2UgYXJlIHJ1bm5pbmcgYmVmb3JlIHdlIGV4aXQgKi8KIAlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOwogCi0JcmVtb3ZlX3dhaXRfcXVldWUoJnNrdC0+dGhyZWFkX3dhaXQsICZ3YWl0KTsKLQogCS8qIHJlbW92ZSBmcm9tIHRoZSBkZXZpY2UgY29yZSAqLwogCXBjY2FyZF9zeXNmc19yZW1vdmVfc29ja2V0KCZza3QtPmRldik7CiAJZGV2aWNlX3VucmVnaXN0ZXIoJnNrdC0+ZGV2KTsKQEAgLTcxNiw3ICs3MDgsNyBAQAogCQlzLT50aHJlYWRfZXZlbnRzIHw9IGV2ZW50czsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcy0+dGhyZWFkX2xvY2ssIGZsYWdzKTsKIAotCQl3YWtlX3VwKCZzLT50aHJlYWRfd2FpdCk7CisJCXdha2VfdXBfcHJvY2VzcyhzLT50aHJlYWQpOwogCX0KIH0gLyogcGNtY2lhX3BhcnNlX2V2ZW50cyAqLwogRVhQT1JUX1NZTUJPTChwY21jaWFfcGFyc2VfZXZlbnRzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2NzX2ludGVybmFsLmggYi9kcml2ZXJzL3BjbWNpYS9jc19pbnRlcm5hbC5oCmluZGV4IGU3ZDVkMTQuLjYzZGMxYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2NzX2ludGVybmFsLmgKKysrIGIvZHJpdmVycy9wY21jaWEvY3NfaW50ZXJuYWwuaApAQCAtMjYsMTggKzI2LDYgQEAKICNkZWZpbmUgQ0xJRU5UX1dJTl9SRVEoaSkJKDB4MTw8KGkpKQogI2RlZmluZSBDTElFTlRfQ0FSREJVUwkJMHg4MDAwCiAKLSNkZWZpbmUgUkVHSU9OX01BR0lDCTB4RTNDOQotdHlwZWRlZiBzdHJ1Y3QgcmVnaW9uX3QgewotICAgIHVfc2hvcnQJCXJlZ2lvbl9tYWdpYzsKLSAgICB1X3Nob3J0CQlzdGF0ZTsKLSAgICBkZXZfaW5mb190CQlkZXZfaW5mbzsKLSAgICBzdHJ1Y3QgcGNtY2lhX2RldmljZQkqbXRkOwotICAgIHVfaW50CQlNZWRpYUlEOwotICAgIHJlZ2lvbl9pbmZvX3QJaW5mbzsKLX0gcmVnaW9uX3Q7Ci0KLSNkZWZpbmUgUkVHSU9OX1NUQUxFCTB4MDEKLQogLyogRWFjaCBjYXJkIGZ1bmN0aW9uIGdldHMgb25lIG9mIHRoZXNlIGd1eXMgKi8KIHR5cGVkZWYgc3RydWN0IGNvbmZpZ190IHsKIAlzdHJ1Y3Qga3JlZglyZWY7CkBAIC0xMzAsNyArMTE4LDYgQEAKIGludCBwY21jaWFfZ2V0X3dpbmRvdyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgd2luZG93X2hhbmRsZV90ICpoYW5kbGUsIGludCBpZHgsIHdpbl9yZXFfdCAqcmVxKTsKIGludCBwY2NhcmRfZ2V0X2NvbmZpZ3VyYXRpb25faW5mbyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBjb25maWdfaW5mb190ICpjb25maWcpOwogaW50IHBjY2FyZF9yZXNldF9jYXJkKHN0cnVjdCBwY21jaWFfc29ja2V0ICpza3QpOwotaW50IHBjY2FyZF9nZXRfc3RhdHVzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBzdHJ1Y3QgcGNtY2lhX2RldmljZSAqcF9kZXYsIGNzX3N0YXR1c190ICpzdGF0dXMpOwogCiAKIHN0cnVjdCBwY21jaWFfY2FsbGJhY2t7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9kcy5jIGIvZHJpdmVycy9wY21jaWEvZHMuYwppbmRleCBlNDA3NzU0Li40MTc0ZDk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9kcy5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2RzLmMKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KIAotI2RlZmluZSBJTl9DQVJEX1NFUlZJQ0VTCiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgpAQCAtNzQxLDkgKzc0MCw4IEBACiAKIHN0YXRpYyBpbnQgcGNtY2lhX2NhcmRfYWRkKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzKQogewotCWNpc2luZm9fdCBjaXNpbmZvOwogCWNpc3RwbF9sb25nbGlua19tZmNfdCBtZmM7Ci0JdW5zaWduZWQgaW50IG5vX2Z1bmNzLCBpOworCXVuc2lnbmVkIGludCBub19mdW5jcywgaSwgbm9fY2hhaW5zOwogCWludCByZXQgPSAwOwogCiAJaWYgKCEocy0+cmVzb3VyY2Vfc2V0dXBfZG9uZSkpIHsKQEAgLTc1Nyw4ICs3NTUsOCBAQAogCQlyZXR1cm4gLUVBR0FJTjsgLyogdHJ5IGFnYWluLCBidXQgbGF0ZXIuLi4gKi8KIAl9CiAKLQlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmY2lzaW5mbyk7Ci0JaWYgKHJldCB8fCAhY2lzaW5mby5DaGFpbnMpIHsKKwlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmbm9fY2hhaW5zKTsKKwlpZiAocmV0IHx8ICFub19jaGFpbnMpIHsKIAkJZHNfZGJnKDAsICJpbnZhbGlkIENJUyBvciBpbnZhbGlkIHJlc291cmNlc1xuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KQEAgLTg1Miw3ICs4NTAsNyBAQAogewogCXN0cnVjdCBwY21jaWFfc29ja2V0ICpzID0gZGV2LT5zb2NrZXQ7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKLQljaGFyIHBhdGhbMjBdOworCWNoYXIgcGF0aFtGSVJNV0FSRV9OQU1FX01BWF07CiAJaW50IHJldCA9IC1FTk9NRU07CiAJaW50IG5vX2Z1bmNzOwogCWludCBvbGRfZnVuY3M7CkBAIC04NjQsNyArODYyLDcgQEAKIAogCWRzX2RiZygxLCAidHJ5aW5nIHRvIGxvYWQgQ0lTIGZpbGUgJXNcbiIsIGZpbGVuYW1lKTsKIAotCWlmIChzdHJsZW4oZmlsZW5hbWUpID4gMTQpIHsKKwlpZiAoc3RybGVuKGZpbGVuYW1lKSA+IChGSVJNV0FSRV9OQU1FX01BWCAtIDEpKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgInBjbWNpYTogQ0lTIGZpbGVuYW1lIGlzIHRvbyBsb25nIFslc11cbiIsCiAJCQlmaWxlbmFtZSk7CiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvaGQ2NDQ2NV9zcy5jIGIvZHJpdmVycy9wY21jaWEvaGQ2NDQ2NV9zcy5jCmluZGV4IGYyZTgxMGYuLmZiMmJjMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2hkNjQ0NjVfc3MuYworKysgYi9kcml2ZXJzL3BjbWNpYS9oZDY0NDY1X3NzLmMKQEAgLTEsNiArMSw0IEBACiAvKgotICogJElkOiBoZDY0NDY1X3NzLmMsdiAxLjcgMjAwMy8wNy8wNiAxNDo0Mjo1MCBsZXRoYWwgRXhwICQKLSAqCiAgKiBEZXZpY2UgZHJpdmVyIGZvciB0aGUgUENNQ0lBIGNvbnRyb2xsZXIgbW9kdWxlIG9mIHRoZQogICogSGl0YWNoaSBIRDY0NDY1IGhhbmRoZWxkIGNvbXBhbmlvbiBjaGlwLgogICoKQEAgLTQ4LDcgKzQ2LDYgQEAKICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2RzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgogCiAjZGVmaW5lIE1PRE5BTUUgImhkNjQ0NjVfc3MiCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9pODIwOTIuYyBiL2RyaXZlcnMvcGNtY2lhL2k4MjA5Mi5jCmluZGV4IGUxMzYxODYuLjQ2NTYxZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2k4MjA5Mi5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2k4MjA5Mi5jCkBAIC01LDggKzUsNiBAQAogICoKICAqIEF1dGhvcjogQXJqYW4gVmFuIERlIFZlbiA8YXJqYW52QHJlZGhhdC5jb20+CiAgKiBMb29zbHkgYmFzZWQgb24gaTgyMzY1LmMgZnJvbSB0aGUgcGNtY2lhLWNzIHBhY2thZ2UKLSAqCi0gKiAkSWQ6IGk4MjA5MmFhLmMsdiAxLjIgMjAwMS8xMC8yMyAxNDo0MzozNCBhcmphbnYgRXhwICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9pODIwOTJhYS5oIGIvZHJpdmVycy9wY21jaWEvaTgyMDkyYWEuaAppbmRleCBiMGQ0NTMzLi44ODM2ZDM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9pODIwOTJhYS5oCisrKyBiL2RyaXZlcnMvcGNtY2lhL2k4MjA5MmFhLmgKQEAgLTMsOCArMyw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KIAotLyogJElkOiBpODIwOTJhYS5oLHYgMS4xLjEuMSAyMDAxLzA5LzE5IDE0OjUzOjE1IGR3bXcyIEV4cCAkICovCi0KIC8qIERlYnVnaW5nIGRlZmluZXMgKi8KICNpZmRlZiBOT1RSQUNFCiAjZGVmaW5lIGVudGVyKHgpICAgcHJpbnRrKCJFbnRlcjogJXMsICVzIGxpbmUgJWlcbiIseCxfX0ZJTEVfXyxfX0xJTkVfXykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2k4MjM2NS5jIGIvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKaW5kZXggMzJhMmFiMS4uNjhmNmIyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKKysrIGIvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKQEAgLTEyNjMsNyArMTI2Myw3IEBACiAKICAgICByZXQgPSBkcml2ZXJfcmVnaXN0ZXIoJmk4MjM2NV9kcml2ZXIpOwogICAgIGlmIChyZXQpCi0JcmV0dXJuIHJldDsKKwlnb3RvIGVycl9vdXQ7CiAKICAgICBpODIzNjVfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJpODIzNjUiLCAwKTsKICAgICBpZiAoaTgyMzY1X2RldmljZSkgewpAQCAtMTI3MywxMCArMTI3Myw4IEBACiAgICAgfSBlbHNlCiAJICAgIHJldCA9IC1FTk9NRU07CiAKLSAgICBpZiAocmV0KSB7Ci0JZHJpdmVyX3VucmVnaXN0ZXIoJmk4MjM2NV9kcml2ZXIpOwotCXJldHVybiByZXQ7Ci0gICAgfQorICAgIGlmIChyZXQpCisJZ290byBlcnJfZHJpdmVyX3VucmVnaXN0ZXI7CiAKICAgICBwcmludGsoS0VSTl9JTkZPICJJbnRlbCBJU0EgUENJQyBwcm9iZTogIik7CiAgICAgc29ja2V0cyA9IDA7CkBAIC0xMjg1LDE2ICsxMjgzLDE3IEBACiAKICAgICBpZiAoc29ja2V0cyA9PSAwKSB7CiAJcHJpbnRrKCJub3QgZm91bmQuXG4iKTsKLQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihpODIzNjVfZGV2aWNlKTsKLQlyZWxlYXNlX3JlZ2lvbihpMzY1X2Jhc2UsIDIpOwotCWRyaXZlcl91bnJlZ2lzdGVyKCZpODIzNjVfZHJpdmVyKTsKLQlyZXR1cm4gLUVOT0RFVjsKKwlyZXQgPSAtRU5PREVWOworCWdvdG8gZXJyX2Rldl91bnJlZ2lzdGVyOwogICAgIH0KIAogICAgIC8qIFNldCB1cCBpbnRlcnJ1cHQgaGFuZGxlcihzKSAqLwogICAgIGlmIChncmFiX2lycSAhPSAwKQotCXJlcXVlc3RfaXJxKGNzX2lycSwgcGNpY19pbnRlcnJ1cHQsIDAsICJpODIzNjUiLCBwY2ljX2ludGVycnVwdCk7Ci0gICAgCisJcmV0ID0gcmVxdWVzdF9pcnEoY3NfaXJxLCBwY2ljX2ludGVycnVwdCwgMCwgImk4MjM2NSIsIHBjaWNfaW50ZXJydXB0KTsKKworICAgIGlmIChyZXQpCisJZ290byBlcnJfc29ja2V0X3JlbGVhc2U7CisKICAgICAvKiByZWdpc3RlciBzb2NrZXRzIHdpdGggdGhlIHBjbWNpYSBjb3JlICovCiAgICAgZm9yIChpID0gMDsgaSA8IHNvY2tldHM7IGkrKykgewogCSAgICBzb2NrZXRbaV0uc29ja2V0LmRldi5wYXJlbnQgPSAmaTgyMzY1X2RldmljZS0+ZGV2OwpAQCAtMTMyNCw3ICsxMzIzLDIzIEBACiAgICAgfQogICAgIAogICAgIHJldHVybiAwOwotICAgIAorZXJyX3NvY2tldF9yZWxlYXNlOgorICAgIGZvciAoaSA9IDA7IGkgPCBzb2NrZXRzOyBpKyspIHsKKwkvKiBUdXJuIG9mZiBhbGwgaW50ZXJydXB0IHNvdXJjZXMhICovCisJaTM2NV9zZXQoaSwgSTM2NV9DU0NJTlQsIDApOworCXJlbGVhc2VfcmVnaW9uKHNvY2tldFtpXS5pb2FkZHIsIDIpOworICAgIH0KK2Vycl9kZXZfdW5yZWdpc3RlcjoKKyAgICBwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihpODIzNjVfZGV2aWNlKTsKKyAgICByZWxlYXNlX3JlZ2lvbihpMzY1X2Jhc2UsIDIpOworI2lmZGVmIENPTkZJR19QTlAKKyAgICBpZiAoaTgyMzY1X3BucGRldikKKwlwbnBfZGlzYWJsZV9kZXYoaTgyMzY1X3BucGRldik7CisjZW5kaWYKK2Vycl9kcml2ZXJfdW5yZWdpc3RlcjoKKyAgICBkcml2ZXJfdW5yZWdpc3RlcigmaTgyMzY1X2RyaXZlcik7CitlcnJfb3V0OgorICAgIHJldHVybiByZXQ7CiB9IC8qIGluaXRfaTgyMzY1ICovCiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2k4MjM2NSh2b2lkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvbTh4eF9wY21jaWEuYyBiL2RyaXZlcnMvcGNtY2lhL204eHhfcGNtY2lhLmMKaW5kZXggYWM3MGQyYy4uMTNhNWZiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvbTh4eF9wY21jaWEuYworKysgYi9kcml2ZXJzL3BjbWNpYS9tOHh4X3BjbWNpYS5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIG04eHhfcGNtY2lhLmMgLSBMaW51eCBQQ01DSUEgc29ja2V0IGRyaXZlciBmb3IgdGhlIG1wYzh4eCBzZXJpZXMuCiAgKgotICogKEMpIDE5OTktMjAwMCBNYWdudXMgRGFtbSA8ZGFtbUBiaXRzbWFydC5jb20+CisgKiAoQykgMTk5OS0yMDAwIE1hZ251cyBEYW1tIDxkYW1tQG9wZW5zb3VyY2Uuc2U+CiAgKiAoQykgMjAwMS0yMDAyIE1vbnRhdmlzdGEgU29mdHdhcmUsIEluYy4KICAqICAgICA8bWxvY2tlQG12aXN0YS5jb20+CiAgKgpAQCAtNjAsNyArNjAsNiBAQAogI2luY2x1ZGUgPGFzbS9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxhc20vb2ZfcGxhdGZvcm0uaD4KIAotI2luY2x1ZGUgPHBjbWNpYS92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9vbWFwX2NmLmMgYi9kcml2ZXJzL3BjbWNpYS9vbWFwX2NmLmMKaW5kZXggNDYzMTRiNC4uNTY5Yjc0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvb21hcF9jZi5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL29tYXBfY2YuYwpAQCAtMzgsMTkgKzM4LDE5IEBACiAjZGVmaW5lCUNGX0JBU0UJMHhmZmZlMjgwMAogCiAvKiBzdGF0dXM7IHJlYWQgYWZ0ZXIgSVJRICovCi0jZGVmaW5lIENGX1NUQVRVU19SRUcJCV9fUkVHMTYoQ0ZfQkFTRSArIDB4MDApCisjZGVmaW5lIENGX1NUQVRVUwkJCShDRl9CQVNFICsgMHgwMCkKICMJZGVmaW5lCUNGX1NUQVRVU19CQURfUkVBRAkoMSA8PCAyKQogIwlkZWZpbmUJQ0ZfU1RBVFVTX0JBRF9XUklURQkoMSA8PCAxKQogIwlkZWZpbmUJQ0ZfU1RBVFVTX0NBUkRfREVURUNUCSgxIDw8IDApCiAKIC8qIHdoaWNoIGNoaXBzZWxlY3QgKENTMC4uQ1MzKSBpcyB1c2VkIGZvciBDRiAoYWN0aXZlIGxvdykgKi8KLSNkZWZpbmUgQ0ZfQ0ZHX1JFRwkJX19SRUcxNihDRl9CQVNFICsgMHgwMikKKyNkZWZpbmUgQ0ZfQ0ZHCQkJCShDRl9CQVNFICsgMHgwMikKIAogLyogY2FyZCByZXNldCAqLwotI2RlZmluZSBDRl9DT05UUk9MX1JFRwkJX19SRUcxNihDRl9CQVNFICsgMHgwNCkKKyNkZWZpbmUgQ0ZfQ09OVFJPTAkJCShDRl9CQVNFICsgMHgwNCkKICMJZGVmaW5lCUNGX0NPTlRST0xfUkVTRVQJKDEgPDwgMCkKIAotI2RlZmluZSBvbWFwX2NmX3ByZXNlbnQoKSAoIShDRl9TVEFUVVNfUkVHICYgQ0ZfU1RBVFVTX0NBUkRfREVURUNUKSkKKyNkZWZpbmUgb21hcF9jZl9wcmVzZW50KCkgKCEob21hcF9yZWFkdyhDRl9TVEFUVVMpICYgQ0ZfU1RBVFVTX0NBUkRfREVURUNUKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTEzOSwxMSArMTM5LDExIEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWNvbnRyb2wgPSBDRl9DT05UUk9MX1JFRzsKKwljb250cm9sID0gb21hcF9yZWFkdyhDRl9DT05UUk9MKTsKIAlpZiAocy0+ZmxhZ3MgJiBTU19SRVNFVCkKLQkJQ0ZfQ09OVFJPTF9SRUcgPSBDRl9DT05UUk9MX1JFU0VUOworCQlvbWFwX3dyaXRldyhDRl9DT05UUk9MX1JFU0VULCBDRl9DT05UUk9MKTsKIAllbHNlCi0JCUNGX0NPTlRST0xfUkVHID0gMDsKKwkJb21hcF93cml0ZXcoMCwgQ0ZfQ09OVFJPTCk7CiAKIAlwcl9kZWJ1ZygiJXM6IFZjYyAlZCwgaW9faXJxICVkLCBmbGFncyAlMDR4IGNzYyAlMDR4XG4iLAogCQlkcml2ZXJfbmFtZSwgcy0+VmNjLCBzLT5pb19pcnEsIHMtPmZsYWdzLCBzLT5jc2NfbWFzayk7CkBAIC0yNzAsNyArMjcwLDcgQEAKIAlvbWFwX2NmZ19yZWcoVjEwXzE2MTBfQ0ZfSVJFUSk7CiAJb21hcF9jZmdfcmVnKFcxMF8xNjEwX0NGX1JFU0VUKTsKIAotCUNGX0NGR19SRUcgPSB+KDEgPDwgc2VnKTsKKwlvbWFwX3dyaXRldyh+KDEgPDwgc2VnKSwgQ0ZfQ0ZHKTsKIAogCXByX2luZm8oIiVzOiBjcyVkIG9uIGlycSAlZFxuIiwgZHJpdmVyX25hbWUsIHNlZywgaXJxKTsKIApAQCAtMjc5LDE0ICsyNzksMTUgQEAKIAkgKiBDRi9QQ01DSUEgdmFyaWFudHMuLi4KIAkgKi8KIAlwcl9kZWJ1ZygiJXM6IGNzJWQsIHByZXZpb3VzIGNjcyAlMDh4IGFjcyAlMDh4XG4iLCBkcml2ZXJfbmFtZSwKLQkJCXNlZywgRU1JRlNfQ0NTKHNlZyksIEVNSUZTX0FDUyhzZWcpKTsKLQlFTUlGU19DQ1Moc2VnKSA9IDB4MDAwNGExYjM7CS8qIHN5bmNoIG1vZGUgNCBldGMgKi8KLQlFTUlGU19BQ1Moc2VnKSA9IDB4MDAwMDAwMDA7CS8qIE9FIGhvbGQvc2V0dXAgKi8KKwkJc2VnLCBvbWFwX3JlYWRsKEVNSUZTX0NDUyhzZWcpKSwgb21hcF9yZWFkbChFTUlGU19BQ1Moc2VnKSkpOworCW9tYXBfd3JpdGVsKDB4MDAwNGExYjMsIEVNSUZTX0NDUyhzZWcpKTsJLyogc3luY2ggbW9kZSA0IGV0YyAqLworCW9tYXBfd3JpdGVsKDB4MDAwMDAwMDAsIEVNSUZTX0FDUyhzZWcpKTsJLyogT0UgaG9sZC9zZXR1cCAqLwogCiAJLyogQ0YgdXNlcyBhcm14b3JfY2ssIHdoaWNoIGlzICJhbHdheXMiIGF2YWlsYWJsZSAqLwogCiAJcHJfZGVidWcoIiVzOiBzdHMgJTA0eCBjZmcgJTA0eCBjb250cm9sICUwNHggJXNcbiIsIGRyaXZlcl9uYW1lLAotCQlDRl9TVEFUVVNfUkVHLCBDRl9DRkdfUkVHLCBDRl9DT05UUk9MX1JFRywKKwkJb21hcF9yZWFkdyhDRl9TVEFUVVMpLCBvbWFwX3JlYWR3KENGX0NGRyksCisJCW9tYXBfcmVhZHcoQ0ZfQ09OVFJPTCksCiAJCW9tYXBfY2ZfcHJlc2VudCgpID8gInByZXNlbnQiIDogIihub3QgcHJlc2VudCkiKTsKIAogCWNmLT5zb2NrZXQub3duZXIgPSBUSElTX01PRFVMRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3BjbWNpYV9pb2N0bC5jIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX2lvY3RsLmMKaW5kZXggNWYxODZhYi4uNDE5Zjk3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcGNtY2lhX2lvY3RsLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX2lvY3RsLmMKQEAgLTI3LDEyICsyNywxMyBAQAogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KIAotI2RlZmluZSBJTl9DQVJEX1NFUlZJQ0VTCiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgorI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KICNpbmNsdWRlIDxwY21jaWEvZHMuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KIApAQCAtMTM4LDYgKzEzOSwxNTQgQEAKIH0KICNlbmRpZgogCisKKyNpZmRlZiBDT05GSUdfUENNQ0lBX1BST0JFCisKK3N0YXRpYyBpbnQgYWRqdXN0X2lycShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgYWRqdXN0X3QgKmFkaikKK3sKKwlpbnQgaXJxOworCXUzMiBtYXNrOworCisJaXJxID0gYWRqLT5yZXNvdXJjZS5pcnEuSVJROworCWlmICgoaXJxIDwgMCkgfHwgKGlycSA+IDE1KSkKKwkJcmV0dXJuIENTX0JBRF9JUlE7CisKKwlpZiAoYWRqLT5BY3Rpb24gIT0gUkVNT1ZFX01BTkFHRURfUkVTT1VSQ0UpCisJCXJldHVybiAwOworCisJbWFzayA9IDEgPDwgaXJxOworCisJaWYgKCEocy0+aXJxX21hc2sgJiBtYXNrKSkKKwkJcmV0dXJuIDA7CisKKwlzLT5pcnFfbWFzayAmPSB+bWFzazsKKworCXJldHVybiAwOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIGludCBhZGp1c3RfaXJxKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBhZGp1c3RfdCAqYWRqKSB7CisJcmV0dXJuIENTX1NVQ0NFU1M7Cit9CisKKyNlbmRpZgorCitzdGF0aWMgaW50IHBjbWNpYV9hZGp1c3RfcmVzb3VyY2VfaW5mbyhhZGp1c3RfdCAqYWRqKQoreworCXN0cnVjdCBwY21jaWFfc29ja2V0ICpzOworCWludCByZXQgPSBDU19VTlNVUFBPUlRFRF9GVU5DVElPTjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZG93bl9yZWFkKCZwY21jaWFfc29ja2V0X2xpc3RfcndzZW0pOworCWxpc3RfZm9yX2VhY2hfZW50cnkocywgJnBjbWNpYV9zb2NrZXRfbGlzdCwgc29ja2V0X2xpc3QpIHsKKworCQlpZiAoYWRqLT5SZXNvdXJjZSA9PSBSRVNfSVJRKQorCQkJcmV0ID0gYWRqdXN0X2lycShzLCBhZGopOworCisJCWVsc2UgaWYgKHMtPnJlc291cmNlX29wcy0+YWRkX2lvKSB7CisJCQl1bnNpZ25lZCBsb25nIGJlZ2luLCBlbmQ7CisKKwkJCS8qIHlvdSBjYW4ndCB1c2UgdGhlIG9sZCBpbnRlcmZhY2UgaWYgdGhlIG5ldworCQkJICogb25lIHdhcyB1c2VkIGJlZm9yZSAqLworCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIGZsYWdzKTsKKwkJCWlmICgocy0+cmVzb3VyY2Vfc2V0dXBfbmV3KSAmJgorCQkJICAgICEocy0+cmVzb3VyY2Vfc2V0dXBfb2xkKSkgeworCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnMtPmxvY2ssIGZsYWdzKTsKKwkJCQljb250aW51ZTsKKwkJCX0gZWxzZSBpZiAoIShzLT5yZXNvdXJjZV9zZXR1cF9vbGQpKQorCQkJCXMtPnJlc291cmNlX3NldHVwX29sZCA9IDE7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7CisKKwkJCXN3aXRjaCAoYWRqLT5SZXNvdXJjZSkgeworCQkJY2FzZSBSRVNfTUVNT1JZX1JBTkdFOgorCQkJCWJlZ2luID0gYWRqLT5yZXNvdXJjZS5tZW1vcnkuQmFzZTsKKwkJCQllbmQgPSBhZGotPnJlc291cmNlLm1lbW9yeS5CYXNlICsgYWRqLT5yZXNvdXJjZS5tZW1vcnkuU2l6ZSAtIDE7CisJCQkJaWYgKHMtPnJlc291cmNlX29wcy0+YWRkX21lbSkKKwkJCQkJcmV0ID1zLT5yZXNvdXJjZV9vcHMtPmFkZF9tZW0ocywgYWRqLT5BY3Rpb24sIGJlZ2luLCBlbmQpOworCQkJY2FzZSBSRVNfSU9fUkFOR0U6CisJCQkJYmVnaW4gPSBhZGotPnJlc291cmNlLmlvLkJhc2VQb3J0OworCQkJCWVuZCA9IGFkai0+cmVzb3VyY2UuaW8uQmFzZVBvcnQgKyBhZGotPnJlc291cmNlLmlvLk51bVBvcnRzIC0gMTsKKwkJCQlpZiAocy0+cmVzb3VyY2Vfb3BzLT5hZGRfaW8pCisJCQkJCXJldCA9IHMtPnJlc291cmNlX29wcy0+YWRkX2lvKHMsIGFkai0+QWN0aW9uLCBiZWdpbiwgZW5kKTsKKwkJCX0KKwkJCWlmICghcmV0KSB7CisJCQkJLyogYXMgdGhlcmUncyBubyB3YXkgd2Uga25vdyB0aGlzIGlzIHRoZQorCQkJCSAqIGxhc3QgY2FsbCB0byBhZGp1c3RfcmVzb3VyY2VfaW5mbywgd2UKKwkJCQkgKiBhbHdheXMgbmVlZCB0byBhc3N1bWUgdGhpcyBpcyB0aGUgbGF0ZXN0CisJCQkJICogb25lLi4uICovCisJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIGZsYWdzKTsKKwkJCQlzLT5yZXNvdXJjZV9zZXR1cF9kb25lID0gMTsKKwkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7CisJCQl9CisJCX0KKwl9CisJdXBfcmVhZCgmcGNtY2lhX3NvY2tldF9saXN0X3J3c2VtKTsKKworCXJldHVybiAocmV0KTsKK30KKworLyoqIHBjY2FyZF9nZXRfc3RhdHVzCisgKgorICogR2V0IHRoZSBjdXJyZW50IHNvY2tldCBzdGF0ZSBiaXRzLiAgV2UgZG9uJ3Qgc3VwcG9ydCB0aGUgbGF0Y2hlZAorICogU29ja2V0U3RhdGUgeWV0OiBJIGhhdmVuJ3Qgc2VlbiBhbnkgcG9pbnQgZm9yIGl0LgorICovCisKK3N0YXRpYyBpbnQgcGNjYXJkX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsCisJCQkgICAgIHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwKKwkJCSAgICAgY3Nfc3RhdHVzX3QgKnN0YXR1cykKK3sKKwljb25maWdfdCAqYzsKKwlpbnQgdmFsOworCisJcy0+b3BzLT5nZXRfc3RhdHVzKHMsICZ2YWwpOworCXN0YXR1cy0+Q2FyZFN0YXRlID0gc3RhdHVzLT5Tb2NrZXRTdGF0ZSA9IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0RFVEVDVCkgPyBDU19FVkVOVF9DQVJEX0RFVEVDVCA6IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0NBUkRCVVMpID8gQ1NfRVZFTlRfQ0JfREVURUNUIDogMDsKKwlzdGF0dXMtPkNhcmRTdGF0ZSB8PSAodmFsICYgU1NfM1ZDQVJEKSA/IENTX0VWRU5UXzNWQ0FSRCA6IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX1hWQ0FSRCkgPyBDU19FVkVOVF9YVkNBUkQgOiAwOworCWlmIChzLT5zdGF0ZSAmIFNPQ0tFVF9TVVNQRU5EKQorCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PSBDU19FVkVOVF9QTV9TVVNQRU5EOworCWlmICghKHMtPnN0YXRlICYgU09DS0VUX1BSRVNFTlQpKQorCQlyZXR1cm4gQ1NfTk9fQ0FSRDsKKworCWMgPSAocF9kZXYpID8gcF9kZXYtPmZ1bmN0aW9uX2NvbmZpZyA6IE5VTEw7CisKKwlpZiAoKGMgIT0gTlVMTCkgJiYgKGMtPnN0YXRlICYgQ09ORklHX0xPQ0tFRCkgJiYKKwkgICAgKGMtPkludFR5cGUgJiAoSU5UX01FTU9SWV9BTkRfSU8gfCBJTlRfWk9PTUVEX1ZJREVPKSkpIHsKKwkJdV9jaGFyIHJlZzsKKwkJaWYgKGMtPkNhcmRWYWx1ZXMgJiBQUkVTRU5UX1BJTl9SRVBMQUNFKSB7CisJCQlwY21jaWFfcmVhZF9jaXNfbWVtKHMsIDEsIChjLT5Db25maWdCYXNlK0NJU1JFR19QUlIpPj4xLCAxLCAmcmVnKTsKKwkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9CisJCQkJKHJlZyAmIFBSUl9XUF9TVEFUVVMpID8gQ1NfRVZFTlRfV1JJVEVfUFJPVEVDVCA6IDA7CisJCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkJCShyZWcgJiBQUlJfUkVBRFlfU1RBVFVTKSA/IENTX0VWRU5UX1JFQURZX0NIQU5HRSA6IDA7CisJCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkJCShyZWcgJiBQUlJfQlZEMl9TVEFUVVMpID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOworCQkJc3RhdHVzLT5DYXJkU3RhdGUgfD0KKwkJCQkocmVnICYgUFJSX0JWRDFfU1RBVFVTKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7CisJCX0gZWxzZSB7CisJCQkvKiBObyBQUlI/ICBUaGVuIGFzc3VtZSB3ZSdyZSBhbHdheXMgcmVhZHkgKi8KKwkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9IENTX0VWRU5UX1JFQURZX0NIQU5HRTsKKwkJfQorCQlpZiAoYy0+Q2FyZFZhbHVlcyAmIFBSRVNFTlRfRVhUX1NUQVRVUykgeworCQkJcGNtY2lhX3JlYWRfY2lzX21lbShzLCAxLCAoYy0+Q29uZmlnQmFzZStDSVNSRUdfRVNSKT4+MSwgMSwgJnJlZyk7CisJCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkJCShyZWcgJiBFU1JfUkVRX0FUVE4pID8gQ1NfRVZFTlRfUkVRVUVTVF9BVFRFTlRJT04gOiAwOworCQl9CisJCXJldHVybiBDU19TVUNDRVNTOworCX0KKwlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkodmFsICYgU1NfV1JQUk9UKSA/IENTX0VWRU5UX1dSSVRFX1BST1RFQ1QgOiAwOworCXN0YXR1cy0+Q2FyZFN0YXRlIHw9CisJCSh2YWwgJiBTU19CQVRERUFEKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0KKwkJKHZhbCAmIFNTX0JBVFdBUk4pID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOworCXN0YXR1cy0+Q2FyZFN0YXRlIHw9CisJCSh2YWwgJiBTU19SRUFEWSkgPyBDU19FVkVOVF9SRUFEWV9DSEFOR0UgOiAwOworCXJldHVybiBDU19TVUNDRVNTOworfSAvKiBwY2NhcmRfZ2V0X3N0YXR1cyAqLworCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogICAgIFRoZXNlIG1hbmFnZSBhIHJpbmcgYnVmZmVyIG9mIGV2ZW50cyBwZW5kaW5nIGZvciBvbmUgdXNlciBwcm9jZXNzCkBAIC0zOTcsMjAgKzU0NiwyNyBAQAogICAgIHN0cnVjdCBwY21jaWFfc29ja2V0ICpzOwogICAgIHVzZXJfaW5mb190ICp1c2VyOwogICAgIHN0YXRpYyBpbnQgd2FybmluZ19wcmludGVkID0gMDsKKyAgICBpbnQgcmV0ID0gMDsKIAogICAgIGRzX2RiZygwLCAiZHNfb3Blbihzb2NrZXQgJWQpXG4iLCBpKTsKIAorICAgIGxvY2tfa2VybmVsKCk7CiAgICAgcyA9IHBjbWNpYV9nZXRfc29ja2V0X2J5X25yKGkpOwotICAgIGlmICghcykKLQkgICAgcmV0dXJuIC1FTk9ERVY7CisgICAgaWYgKCFzKSB7CisJICAgIHJldCA9IC1FTk9ERVY7CisJICAgIGdvdG8gb3V0OworICAgIH0KICAgICBzID0gcGNtY2lhX2dldF9zb2NrZXQocyk7Ci0gICAgaWYgKCFzKQotCSAgICByZXR1cm4gLUVOT0RFVjsKKyAgICBpZiAoIXMpIHsKKwkgICAgcmV0ID0gLUVOT0RFVjsKKwkgICAgZ290byBvdXQ7CisgICAgfQogCiAgICAgaWYgKChmaWxlLT5mX2ZsYWdzICYgT19BQ0NNT0RFKSAhPSBPX1JET05MWSkgewogCSAgICBpZiAocy0+cGNtY2lhX3N0YXRlLmJ1c3kpIHsKIAkJICAgIHBjbWNpYV9wdXRfc29ja2V0KHMpOwotCQkgICAgcmV0dXJuIC1FQlVTWTsKKwkJICAgIHJldCA9IC1FQlVTWTsKKwkJICAgIGdvdG8gb3V0OwogCSAgICB9CiAJZWxzZQogCSAgICBzLT5wY21jaWFfc3RhdGUuYnVzeSA9IDE7CkBAIC00MTksNyArNTc1LDggQEAKICAgICB1c2VyID0ga21hbGxvYyhzaXplb2YodXNlcl9pbmZvX3QpLCBHRlBfS0VSTkVMKTsKICAgICBpZiAoIXVzZXIpIHsKIAkgICAgcGNtY2lhX3B1dF9zb2NrZXQocyk7Ci0JICAgIHJldHVybiAtRU5PTUVNOworCSAgICByZXQgPSAtRU5PTUVNOworCSAgICBnb3RvIG91dDsKICAgICB9CiAgICAgdXNlci0+ZXZlbnRfdGFpbCA9IHVzZXItPmV2ZW50X2hlYWQgPSAwOwogICAgIHVzZXItPm5leHQgPSBzLT51c2VyOwpAQCAtNDQxLDcgKzU5OCw5IEBACiAKICAgICBpZiAocy0+cGNtY2lhX3N0YXRlLnByZXNlbnQpCiAJcXVldWVfZXZlbnQodXNlciwgQ1NfRVZFTlRfQ0FSRF9JTlNFUlRJT04pOwotICAgIHJldHVybiAwOworb3V0OgorICAgIHVubG9ja19rZXJuZWwoKTsKKyAgICByZXR1cm4gcmV0OwogfSAvKiBkc19vcGVuICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpAQCAtNTQ2LDggKzcwNSw2IEBACiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi1leHRlcm4gaW50IHBjbWNpYV9hZGp1c3RfcmVzb3VyY2VfaW5mbyhhZGp1c3RfdCAqYWRqKTsKLQogc3RhdGljIGludCBkc19pb2N0bChzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlLAogCQkgICAgdV9pbnQgY21kLCB1X2xvbmcgYXJnKQogewpAQCAtNjQ5LDcgKzgwNiw3IEBACiAJbXV0ZXhfbG9jaygmcy0+c2t0X211dGV4KTsKIAlwY21jaWFfdmFsaWRhdGVfbWVtKHMpOwogCW11dGV4X3VubG9jaygmcy0+c2t0X211dGV4KTsKLQlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmYnVmLT5jaXNpbmZvKTsKKwlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmYnVmLT5jaXNpbmZvLkNoYWlucyk7CiAJYnJlYWs7CiAgICAgY2FzZSBEU19TVVNQRU5EX0NBUkQ6CiAJcmV0ID0gcGNtY2lhX3N1c3BlbmRfY2FyZChzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3BjbWNpYV9yZXNvdXJjZS5jIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX3Jlc291cmNlLmMKaW5kZXggMWQxMjhmYi4uNDg4NGExOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcGNtY2lhX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX3Jlc291cmNlLmMKQEAgLTIxLDExICsyMSw5IEBACiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAKLSNkZWZpbmUgSU5fQ0FSRF9TRVJWSUNFUwogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KICNpbmNsdWRlIDxwY21jaWEvZHMuaD4KQEAgLTMxMSw3NCArMzA5LDYgQEAKIEVYUE9SVF9TWU1CT0wocGNtY2lhX2dldF93aW5kb3cpOwogCiAKLS8qKiBwY2NhcmRfZ2V0X3N0YXR1cwotICoKLSAqIEdldCB0aGUgY3VycmVudCBzb2NrZXQgc3RhdGUgYml0cy4gIFdlIGRvbid0IHN1cHBvcnQgdGhlIGxhdGNoZWQKLSAqIFNvY2tldFN0YXRlIHlldDogSSBoYXZlbid0IHNlZW4gYW55IHBvaW50IGZvciBpdC4KLSAqLwotCi1pbnQgcGNjYXJkX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwKLQkJICAgICAgY3Nfc3RhdHVzX3QgKnN0YXR1cykKLXsKLQljb25maWdfdCAqYzsKLQlpbnQgdmFsOwotCi0Jcy0+b3BzLT5nZXRfc3RhdHVzKHMsICZ2YWwpOwotCXN0YXR1cy0+Q2FyZFN0YXRlID0gc3RhdHVzLT5Tb2NrZXRTdGF0ZSA9IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0RFVEVDVCkgPyBDU19FVkVOVF9DQVJEX0RFVEVDVCA6IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0NBUkRCVVMpID8gQ1NfRVZFTlRfQ0JfREVURUNUIDogMDsKLQlzdGF0dXMtPkNhcmRTdGF0ZSB8PSAodmFsICYgU1NfM1ZDQVJEKSA/IENTX0VWRU5UXzNWQ0FSRCA6IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX1hWQ0FSRCkgPyBDU19FVkVOVF9YVkNBUkQgOiAwOwotCWlmIChzLT5zdGF0ZSAmIFNPQ0tFVF9TVVNQRU5EKQotCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PSBDU19FVkVOVF9QTV9TVVNQRU5EOwotCWlmICghKHMtPnN0YXRlICYgU09DS0VUX1BSRVNFTlQpKQotCQlyZXR1cm4gQ1NfTk9fQ0FSRDsKLQotCWMgPSAocF9kZXYpID8gcF9kZXYtPmZ1bmN0aW9uX2NvbmZpZyA6IE5VTEw7Ci0KLQlpZiAoKGMgIT0gTlVMTCkgJiYgKGMtPnN0YXRlICYgQ09ORklHX0xPQ0tFRCkgJiYKLQkgICAgKGMtPkludFR5cGUgJiAoSU5UX01FTU9SWV9BTkRfSU8gfCBJTlRfWk9PTUVEX1ZJREVPKSkpIHsKLQkJdV9jaGFyIHJlZzsKLQkJaWYgKGMtPkNhcmRWYWx1ZXMgJiBQUkVTRU5UX1BJTl9SRVBMQUNFKSB7Ci0JCQlwY21jaWFfcmVhZF9jaXNfbWVtKHMsIDEsIChjLT5Db25maWdCYXNlK0NJU1JFR19QUlIpPj4xLCAxLCAmcmVnKTsKLQkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9Ci0JCQkJKHJlZyAmIFBSUl9XUF9TVEFUVVMpID8gQ1NfRVZFTlRfV1JJVEVfUFJPVEVDVCA6IDA7Ci0JCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkJCShyZWcgJiBQUlJfUkVBRFlfU1RBVFVTKSA/IENTX0VWRU5UX1JFQURZX0NIQU5HRSA6IDA7Ci0JCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkJCShyZWcgJiBQUlJfQlZEMl9TVEFUVVMpID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOwotCQkJc3RhdHVzLT5DYXJkU3RhdGUgfD0KLQkJCQkocmVnICYgUFJSX0JWRDFfU1RBVFVTKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7Ci0JCX0gZWxzZSB7Ci0JCQkvKiBObyBQUlI/ICBUaGVuIGFzc3VtZSB3ZSdyZSBhbHdheXMgcmVhZHkgKi8KLQkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9IENTX0VWRU5UX1JFQURZX0NIQU5HRTsKLQkJfQotCQlpZiAoYy0+Q2FyZFZhbHVlcyAmIFBSRVNFTlRfRVhUX1NUQVRVUykgewotCQkJcGNtY2lhX3JlYWRfY2lzX21lbShzLCAxLCAoYy0+Q29uZmlnQmFzZStDSVNSRUdfRVNSKT4+MSwgMSwgJnJlZyk7Ci0JCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkJCShyZWcgJiBFU1JfUkVRX0FUVE4pID8gQ1NfRVZFTlRfUkVRVUVTVF9BVFRFTlRJT04gOiAwOwotCQl9Ci0JCXJldHVybiBDU19TVUNDRVNTOwotCX0KLQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkodmFsICYgU1NfV1JQUk9UKSA/IENTX0VWRU5UX1dSSVRFX1BST1RFQ1QgOiAwOwotCXN0YXR1cy0+Q2FyZFN0YXRlIHw9Ci0JCSh2YWwgJiBTU19CQVRERUFEKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0KLQkJKHZhbCAmIFNTX0JBVFdBUk4pID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOwotCXN0YXR1cy0+Q2FyZFN0YXRlIHw9Ci0JCSh2YWwgJiBTU19SRUFEWSkgPyBDU19FVkVOVF9SRUFEWV9DSEFOR0UgOiAwOwotCXJldHVybiBDU19TVUNDRVNTOwotfSAvKiBwY2NhcmRfZ2V0X3N0YXR1cyAqLwotCi1pbnQgcGNtY2lhX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBjc19zdGF0dXNfdCAqc3RhdHVzKQotewotCXJldHVybiBwY2NhcmRfZ2V0X3N0YXR1cyhwX2Rldi0+c29ja2V0LCBwX2Rldiwgc3RhdHVzKTsKLX0KLUVYUE9SVF9TWU1CT0wocGNtY2lhX2dldF9zdGF0dXMpOwotCi0KLQogLyoqIHBjbWNpYV9nZXRfbWVtX3BhZ2UKICAqCiAgKiBDaGFuZ2UgdGhlIGNhcmQgYWRkcmVzcyBvZiBhbiBhbHJlYWR5IG9wZW4gbWVtb3J5IHdpbmRvdy4KQEAgLTgxMiw2ICs3NDIsMTUgQEAKIAkJdHlwZSA9IElSUUZfU0hBUkVEOwogCiAjaWZkZWYgQ09ORklHX1BDTUNJQV9QUk9CRQorCisjaWZkZWYgSVJRX05PQVVUT0VOCisJLyogaWYgdGhlIHVuZGVybHlpbmcgSVJRIGluZnJhc3RydWN0dXJlIGFsbG93cyBmb3IgaXQsIG9ubHkgYWxsb2NhdGUKKwkgKiB0aGUgSVJRLCBidXQgZG8gbm90IGVuYWJsZSBpdAorCSAqLworCWlmICghKHJlcS0+QXR0cmlidXRlcyAmIElSUV9IQU5ETEVfUFJFU0VOVCkpCisJCXR5cGUgfD0gSVJRX05PQVVUT0VOOworI2VuZGlmIC8qIElSUV9OT0FVVE9FTiAqLworCiAJaWYgKHMtPmlycS5Bc3NpZ25lZElSUSAhPSAwKSB7CiAJCS8qIElmIHRoZSBpbnRlcnJ1cHQgaXMgYWxyZWFkeSBhc3NpZ25lZCwgaXQgbXVzdCBiZSB0aGUgc2FtZSAqLwogCQlpcnEgPSBzLT5pcnEuQXNzaWduZWRJUlE7CkBAIC05NjYsNyArOTA1LDcgQEAKIAlwY21jaWFfcmVsZWFzZV9jb25maWd1cmF0aW9uKHBfZGV2KTsKIAlwY21jaWFfcmVsZWFzZV9pbyhwX2RldiwgJnBfZGV2LT5pbyk7CiAJcGNtY2lhX3JlbGVhc2VfaXJxKHBfZGV2LCAmcF9kZXYtPmlycSk7Ci0JaWYgKCZwX2Rldi0+d2luKQorCWlmIChwX2Rldi0+d2luKQogCQlwY21jaWFfcmVsZWFzZV93aW5kb3cocF9kZXYtPndpbik7CiB9CiBFWFBPUlRfU1lNQk9MKHBjbWNpYV9kaXNhYmxlX2RldmljZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9weGEyeHhfYmFzZS5jIGIvZHJpdmVycy9wY21jaWEvcHhhMnh4X2Jhc2UuYwppbmRleCA5NDE0MTYzLi5jY2ZkZjE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9weGEyeHhfYmFzZS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9iYXNlLmMKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogCiAjaW5jbHVkZSAiY3NfaW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9jbV94MjcwLmMgYi9kcml2ZXJzL3BjbWNpYS9weGEyeHhfY21feDI3MC5jCmluZGV4IGU3YWIwNjAuLmYxMjNmY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9jbV94MjcwLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcHhhMnh4X2NtX3gyNzAuYwpAQCAtMTgsNiArMTgsNyBAQAogCiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KQEAgLTEzMCw3ICsxMzEsNyBAQAogfQogCiAKLXN0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBjbXgyNzBfcGNtY2lhX29wcyA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBjbXgyNzBfcGNtY2lhX29wcyBfX2luaXRkYXRhID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmh3X2luaXQJCT0gY214MjcwX3BjbWNpYV9od19pbml0LAogCS5od19zaHV0ZG93bgkJPSBjbXgyNzBfcGNtY2lhX3NodXRkb3duLApAQCAtMTQ3LDE1ICsxNDgsMjEgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX2FybWNvcmUoKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAljbXgyNzBfcGNtY2lhX2RldmljZSA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygicHhhMnh4LXBjbWNpYSIsIC0xKTsKIAogCWlmICghY214MjcwX3BjbWNpYV9kZXZpY2UpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JY214MjcwX3BjbWNpYV9kZXZpY2UtPmRldi5wbGF0Zm9ybV9kYXRhID0gJmNteDI3MF9wY21jaWFfb3BzOworCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShjbXgyNzBfcGNtY2lhX2RldmljZSwgJmNteDI3MF9wY21jaWFfb3BzLAorCQkJCSAgICAgICBzaXplb2YoY214MjcwX3BjbWNpYV9vcHMpKTsKIAotCXByaW50ayhLRVJOX0lORk8gIlJlZ2lzdGVyaW5nIGNtLXgyNzAgUENNQ0lBIGludGVyZmFjZS5cbiIpOwotCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQoY214MjcwX3BjbWNpYV9kZXZpY2UpOworCWlmIChyZXQgPT0gMCkgeworCQlwcmludGsoS0VSTl9JTkZPICJSZWdpc3RlcmluZyBjbS14MjcwIFBDTUNJQSBpbnRlcmZhY2UuXG4iKTsKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChjbXgyNzBfcGNtY2lhX2RldmljZSk7CisJfQogCiAJaWYgKHJldCkKIAkJcGxhdGZvcm1fZGV2aWNlX3B1dChjbXgyNzBfcGNtY2lhX2RldmljZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9weGEyeHhfbWFpbnN0b25lLmMgYi9kcml2ZXJzL3BjbWNpYS9weGEyeHhfbWFpbnN0b25lLmMKaW5kZXggMTQ1Yjg1ZS4uOTJkMWNjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcHhhMnh4X21haW5zdG9uZS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9tYWluc3RvbmUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgpAQCAtMTM2LDcgKzEzNyw3IEBACiB7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBtc3RfcGNtY2lhX29wcyA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBtc3RfcGNtY2lhX29wcyBfX2luaXRkYXRhID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmh3X2luaXQJCT0gbXN0X3BjbWNpYV9od19pbml0LAogCS5od19zaHV0ZG93bgkJPSBtc3RfcGNtY2lhX2h3X3NodXRkb3duLApAQCAtMTUzLDEzICsxNTQsMTcgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX21haW5zdG9uZSgpKQorCQlyZXR1cm4gLUVOT0RFVjsKKwogCW1zdF9wY21jaWFfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJweGEyeHgtcGNtY2lhIiwgLTEpOwogCWlmICghbXN0X3BjbWNpYV9kZXZpY2UpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JbXN0X3BjbWNpYV9kZXZpY2UtPmRldi5wbGF0Zm9ybV9kYXRhID0gJm1zdF9wY21jaWFfb3BzOwotCi0JcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChtc3RfcGNtY2lhX2RldmljZSk7CisJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKG1zdF9wY21jaWFfZGV2aWNlLCAmbXN0X3BjbWNpYV9vcHMsCisJCQkJICAgICAgIHNpemVvZihtc3RfcGNtY2lhX29wcykpOworCWlmIChyZXQgPT0gMCkKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChtc3RfcGNtY2lhX2RldmljZSk7CiAKIAlpZiAocmV0KQogCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KG1zdF9wY21jaWFfZGV2aWNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9zaGFycHNsLmMgYi9kcml2ZXJzL3BjbWNpYS9weGEyeHhfc2hhcnBzbC5jCmluZGV4IGQ1YzMzYmQuLmQ3MWY5M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9zaGFycHNsLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcHhhMnh4X3NoYXJwc2wuYwpAQCAtMjIyLDcgKzIyMiw3IEBACiAJc2hhcnBzbF9wY21jaWFfaW5pdF9yZXNldChza3QpOwogfQogCi1zdGF0aWMgc3RydWN0IHBjbWNpYV9sb3dfbGV2ZWwgc2hhcnBzbF9wY21jaWFfb3BzID0geworc3RhdGljIHN0cnVjdCBwY21jaWFfbG93X2xldmVsIHNoYXJwc2xfcGNtY2lhX29wcyBfX2luaXRkYXRhID0gewogCS5vd25lciAgICAgICAgICAgICAgICAgID0gVEhJU19NT0RVTEUsCiAJLmh3X2luaXQgICAgICAgICAgICAgICAgPSBzaGFycHNsX3BjbWNpYV9od19pbml0LAogCS5od19zaHV0ZG93biAgICAgICAgICAgID0gc2hhcnBzbF9wY21jaWFfaHdfc2h1dGRvd24sCkBAIC0yNjEsMTAgKzI2MSwxMiBAQAogCWlmICghc2hhcnBzbF9wY21jaWFfZGV2aWNlKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXNoYXJwc2xfcGNtY2lhX2RldmljZS0+ZGV2LnBsYXRmb3JtX2RhdGEgPSAmc2hhcnBzbF9wY21jaWFfb3BzOwotCXNoYXJwc2xfcGNtY2lhX2RldmljZS0+ZGV2LnBhcmVudCA9IHBsYXRmb3JtX3Njb29wX2NvbmZpZy0+ZGV2c1swXS5kZXY7Ci0KLQlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHNoYXJwc2xfcGNtY2lhX2RldmljZSk7CisJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKHNoYXJwc2xfcGNtY2lhX2RldmljZSwKKwkJCSZzaGFycHNsX3BjbWNpYV9vcHMsIHNpemVvZihzaGFycHNsX3BjbWNpYV9vcHMpKTsKKwlpZiAocmV0ID09IDApIHsKKwkJc2hhcnBzbF9wY21jaWFfZGV2aWNlLT5kZXYucGFyZW50ID0gcGxhdGZvcm1fc2Nvb3BfY29uZmlnLT5kZXZzWzBdLmRldjsKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChzaGFycHNsX3BjbWNpYV9kZXZpY2UpOworCX0KIAogCWlmIChyZXQpCiAJCXBsYXRmb3JtX2RldmljZV9wdXQoc2hhcnBzbF9wY21jaWFfZGV2aWNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbWdyLmMgYi9kcml2ZXJzL3BjbWNpYS9yc3JjX21nci5jCmluZGV4IGNlMjIyNjIuLmMwZTJhZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbWdyLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcnNyY19tZ3IuYwpAQCAtMjEsODYgKzIxLDYgQEAKICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgogCiAKLSNpZmRlZiBDT05GSUdfUENNQ0lBX0lPQ1RMCi0KLSNpZmRlZiBDT05GSUdfUENNQ0lBX1BST0JFCi0KLXN0YXRpYyBpbnQgYWRqdXN0X2lycShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgYWRqdXN0X3QgKmFkaikKLXsKLQlpbnQgaXJxOwotCXUzMiBtYXNrOwotCi0JaXJxID0gYWRqLT5yZXNvdXJjZS5pcnEuSVJROwotCWlmICgoaXJxIDwgMCkgfHwgKGlycSA+IDE1KSkKLQkJcmV0dXJuIENTX0JBRF9JUlE7Ci0KLQlpZiAoYWRqLT5BY3Rpb24gIT0gUkVNT1ZFX01BTkFHRURfUkVTT1VSQ0UpCi0JCXJldHVybiAwOwotCi0JbWFzayA9IDEgPDwgaXJxOwotCi0JaWYgKCEocy0+aXJxX21hc2sgJiBtYXNrKSkKLQkJcmV0dXJuIDA7Ci0KLQlzLT5pcnFfbWFzayAmPSB+bWFzazsKLQotCXJldHVybiAwOwotfQotCi0jZWxzZQotCi1zdGF0aWMgaW5saW5lIGludCBhZGp1c3RfaXJxKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBhZGp1c3RfdCAqYWRqKSB7Ci0JcmV0dXJuIENTX1NVQ0NFU1M7Ci19Ci0KLSNlbmRpZgotCi0KLWludCBwY21jaWFfYWRqdXN0X3Jlc291cmNlX2luZm8oYWRqdXN0X3QgKmFkaikKLXsKLQlzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqczsKLQlpbnQgcmV0ID0gQ1NfVU5TVVBQT1JURURfRlVOQ1RJT047Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCWRvd25fcmVhZCgmcGNtY2lhX3NvY2tldF9saXN0X3J3c2VtKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHMsICZwY21jaWFfc29ja2V0X2xpc3QsIHNvY2tldF9saXN0KSB7Ci0KLQkJaWYgKGFkai0+UmVzb3VyY2UgPT0gUkVTX0lSUSkKLQkJCXJldCA9IGFkanVzdF9pcnEocywgYWRqKTsKLQotCQllbHNlIGlmIChzLT5yZXNvdXJjZV9vcHMtPmFkanVzdF9yZXNvdXJjZSkgewotCi0JCQkvKiB5b3UgY2FuJ3QgdXNlIHRoZSBvbGQgaW50ZXJmYWNlIGlmIHRoZSBuZXcKLQkJCSAqIG9uZSB3YXMgdXNlZCBiZWZvcmUgKi8KLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZzLT5sb2NrLCBmbGFncyk7Ci0JCQlpZiAoKHMtPnJlc291cmNlX3NldHVwX25ldykgJiYKLQkJCSAgICAhKHMtPnJlc291cmNlX3NldHVwX29sZCkpIHsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7Ci0JCQkJY29udGludWU7Ci0JCQl9IGVsc2UgaWYgKCEocy0+cmVzb3VyY2Vfc2V0dXBfb2xkKSkKLQkJCQlzLT5yZXNvdXJjZV9zZXR1cF9vbGQgPSAxOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcy0+bG9jaywgZmxhZ3MpOwotCi0JCQlyZXQgPSBzLT5yZXNvdXJjZV9vcHMtPmFkanVzdF9yZXNvdXJjZShzLCBhZGopOwotCQkJaWYgKCFyZXQpIHsKLQkJCQkvKiBhcyB0aGVyZSdzIG5vIHdheSB3ZSBrbm93IHRoaXMgaXMgdGhlCi0JCQkJICogbGFzdCBjYWxsIHRvIGFkanVzdF9yZXNvdXJjZV9pbmZvLCB3ZQotCQkJCSAqIGFsd2F5cyBuZWVkIHRvIGFzc3VtZSB0aGlzIGlzIHRoZSBsYXRlc3QKLQkJCQkgKiBvbmUuLi4gKi8KLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmcy0+bG9jaywgZmxhZ3MpOwotCQkJCXMtPnJlc291cmNlX3NldHVwX2RvbmUgPSAxOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnMtPmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQotCX0KLQl1cF9yZWFkKCZwY21jaWFfc29ja2V0X2xpc3RfcndzZW0pOwotCi0JcmV0dXJuIChyZXQpOwotfQotRVhQT1JUX1NZTUJPTChwY21jaWFfYWRqdXN0X3Jlc291cmNlX2luZm8pOwotCi0jZW5kaWYKLQogaW50IHBjbWNpYV92YWxpZGF0ZV9tZW0oc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpCiB7CiAJaWYgKHMtPnJlc291cmNlX29wcy0+dmFsaWRhdGVfbWVtKQpAQCAtMTY0LDcgKzg0LDggQEAKIAkuYWRqdXN0X2lvX3JlZ2lvbiA9IE5VTEwsCiAJLmZpbmRfaW8gPSBOVUxMLAogCS5maW5kX21lbSA9IE5VTEwsCi0JLmFkanVzdF9yZXNvdXJjZSA9IE5VTEwsCisJLmFkZF9pbyA9IE5VTEwsCisJLmFkZF9tZW0gPSBOVUxMLAogCS5pbml0ID0gc3RhdGljX2luaXQsCiAJLmV4aXQgPSBOVUxMLAogfTsKQEAgLTI2NCw3ICsxODUsOCBAQAogCS5hZGp1c3RfaW9fcmVnaW9uID0gaW9keW5fYWRqdXN0X2lvX3JlZ2lvbiwKIAkuZmluZF9pbyA9IGlvZHluX2ZpbmRfaW9fcmVnaW9uLAogCS5maW5kX21lbSA9IE5VTEwsCi0JLmFkanVzdF9yZXNvdXJjZSA9IE5VTEwsCisJLmFkZF9pbyA9IE5VTEwsCisJLmFkZF9tZW0gPSBOVUxMLAogCS5pbml0ID0gc3RhdGljX2luaXQsCiAJLmV4aXQgPSBOVUxMLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbm9uc3RhdGljLmMgYi9kcml2ZXJzL3BjbWNpYS9yc3JjX25vbnN0YXRpYy5jCmluZGV4IDBmY2Y3NjMuLmQwYzFkNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbm9uc3RhdGljLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcnNyY19ub25zdGF0aWMuYwpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCiAKQEAgLTI2MSwyMSArMjYwLDIyIEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAogLyogVmFsaWRhdGlvbiBmdW5jdGlvbiBmb3IgY2FyZHMgd2l0aCBhIHZhbGlkIENJUyAqLwotc3RhdGljIGludCByZWFkYWJsZShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgc3RydWN0IHJlc291cmNlICpyZXMsIGNpc2luZm9fdCAqaW5mbykKK3N0YXRpYyBpbnQgcmVhZGFibGUoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHN0cnVjdCByZXNvdXJjZSAqcmVzLAorCQkgICAgdW5zaWduZWQgaW50ICpjb3VudCkKIHsKIAlpbnQgcmV0ID0gLTE7CiAKIAlzLT5jaXNfbWVtLnJlcyA9IHJlczsKIAlzLT5jaXNfdmlydCA9IGlvcmVtYXAocmVzLT5zdGFydCwgcy0+bWFwX3NpemUpOwogCWlmIChzLT5jaXNfdmlydCkgewotCQlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCBpbmZvKTsKKwkJcmV0ID0gcGNjYXJkX3ZhbGlkYXRlX2NpcyhzLCBCSU5EX0ZOX0FMTCwgY291bnQpOwogCQkvKiBpbnZhbGlkYXRlIG1hcHBpbmcgYW5kIENJUyBjYWNoZSAqLwogCQlpb3VubWFwKHMtPmNpc192aXJ0KTsKIAkJcy0+Y2lzX3ZpcnQgPSBOVUxMOwogCQlkZXN0cm95X2Npc19jYWNoZShzKTsKIAl9CiAJcy0+Y2lzX21lbS5yZXMgPSBOVUxMOwotCWlmICgocmV0ICE9IDApIHx8IChpbmZvLT5DaGFpbnMgPT0gMCkpCisJaWYgKChyZXQgIT0gMCkgfHwgKGNvdW50ID09IDApKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gMTsKIH0KQEAgLTMxNiw3ICszMTYsNyBAQAogY2lzX3JlYWRhYmxlKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCB1bnNpZ25lZCBsb25nIGJhc2UsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlczEsICpyZXMyOwotCWNpc2luZm9fdCBpbmZvMSwgaW5mbzI7CisJdW5zaWduZWQgaW50IGluZm8xLCBpbmZvMjsKIAlpbnQgcmV0ID0gMDsKIAogCXJlczEgPSBjbGFpbV9yZWdpb24ocywgYmFzZSwgc2l6ZS8yLCBJT1JFU09VUkNFX01FTSwgImNzIG1lbW9yeSBwcm9iZSIpOwpAQCAtMzMwLDcgKzMzMCw3IEBACiAJZnJlZV9yZWdpb24ocmVzMik7CiAJZnJlZV9yZWdpb24ocmVzMSk7CiAKLQlyZXR1cm4gKHJldCA9PSAyKSAmJiAoaW5mbzEuQ2hhaW5zID09IGluZm8yLkNoYWlucyk7CisJcmV0dXJuIChyZXQgPT0gMikgJiYgKGluZm8xID09IGluZm8yKTsKIH0KIAogc3RhdGljIGludApAQCAtNzY2LDIxICs3NjYsNiBAQAogfQogCiAKLXN0YXRpYyBpbnQgbm9uc3RhdGljX2FkanVzdF9yZXNvdXJjZV9pbmZvKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBhZGp1c3RfdCAqYWRqKQotewotCXVuc2lnbmVkIGxvbmcgZW5kOwotCi0Jc3dpdGNoIChhZGotPlJlc291cmNlKSB7Ci0JY2FzZSBSRVNfTUVNT1JZX1JBTkdFOgotCQllbmQgPSBhZGotPnJlc291cmNlLm1lbW9yeS5CYXNlICsgYWRqLT5yZXNvdXJjZS5tZW1vcnkuU2l6ZSAtIDE7Ci0JCXJldHVybiBhZGp1c3RfbWVtb3J5KHMsIGFkai0+QWN0aW9uLCBhZGotPnJlc291cmNlLm1lbW9yeS5CYXNlLCBlbmQpOwotCWNhc2UgUkVTX0lPX1JBTkdFOgotCQllbmQgPSBhZGotPnJlc291cmNlLmlvLkJhc2VQb3J0ICsgYWRqLT5yZXNvdXJjZS5pby5OdW1Qb3J0cyAtIDE7Ci0JCXJldHVybiBhZGp1c3RfaW8ocywgYWRqLT5BY3Rpb24sIGFkai0+cmVzb3VyY2UuaW8uQmFzZVBvcnQsIGVuZCk7Ci0JfQotCXJldHVybiBDU19VTlNVUFBPUlRFRF9GVU5DVElPTjsKLX0KLQogI2lmZGVmIENPTkZJR19QQ0kKIHN0YXRpYyBpbnQgbm9uc3RhdGljX2F1dG9hZGRfcmVzb3VyY2VzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzKQogewpAQCAtODg5LDcgKzg3NCw4IEBACiAJLmFkanVzdF9pb19yZWdpb24gPSBub25zdGF0aWNfYWRqdXN0X2lvX3JlZ2lvbiwKIAkuZmluZF9pbyA9IG5vbnN0YXRpY19maW5kX2lvX3JlZ2lvbiwKIAkuZmluZF9tZW0gPSBub25zdGF0aWNfZmluZF9tZW1fcmVnaW9uLAotCS5hZGp1c3RfcmVzb3VyY2UgPSBub25zdGF0aWNfYWRqdXN0X3Jlc291cmNlX2luZm8sCisJLmFkZF9pbyA9IGFkanVzdF9pbywKKwkuYWRkX21lbSA9IGFkanVzdF9tZW1vcnksCiAJLmluaXQgPSBub25zdGF0aWNfaW5pdCwKIAkuZXhpdCA9IG5vbnN0YXRpY19yZWxlYXNlX3Jlc291cmNlX2RiLAogfTsKQEAgLTEwMDgsNDEgKzk5NCwzNCBAQAogfQogc3RhdGljIERFVklDRV9BVFRSKGF2YWlsYWJsZV9yZXNvdXJjZXNfbWVtLCAwNjAwLCBzaG93X21lbV9kYiwgc3RvcmVfbWVtX2RiKTsKIAotc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpwY2NhcmRfcnNyY19hdHRyaWJ1dGVzW10gPSB7Ci0JJmRldl9hdHRyX2F2YWlsYWJsZV9yZXNvdXJjZXNfaW8sCi0JJmRldl9hdHRyX2F2YWlsYWJsZV9yZXNvdXJjZXNfbWVtLAorc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnBjY2FyZF9yc3JjX2F0dHJpYnV0ZXNbXSA9IHsKKwkmZGV2X2F0dHJfYXZhaWxhYmxlX3Jlc291cmNlc19pby5hdHRyLAorCSZkZXZfYXR0cl9hdmFpbGFibGVfcmVzb3VyY2VzX21lbS5hdHRyLAogCU5VTEwsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCByc3JjX2F0dHJpYnV0ZXMgPSB7CisJLmF0dHJzID0gcGNjYXJkX3JzcmNfYXR0cmlidXRlcywKK307CisKIHN0YXRpYyBpbnQgX19kZXZpbml0IHBjY2FyZF9zeXNmc19hZGRfcnNyYyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCSAgIHN0cnVjdCBjbGFzc19pbnRlcmZhY2UgKmNsYXNzX2ludGYpCiB7CiAJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqKmF0dHI7Ci0JaW50IHJldCA9IDA7CisKIAlpZiAocy0+cmVzb3VyY2Vfb3BzICE9ICZwY2NhcmRfbm9uc3RhdGljX29wcykKIAkJcmV0dXJuIDA7Ci0KLQlmb3IgKGF0dHIgPSBwY2NhcmRfcnNyY19hdHRyaWJ1dGVzOyAqYXR0cjsgYXR0cisrKSB7Ci0JCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICphdHRyKTsKLQkJaWYgKHJldCkKLQkJCWJyZWFrOwotCX0KLQotCXJldHVybiByZXQ7CisJcmV0dXJuIHN5c2ZzX2NyZWF0ZV9ncm91cCgmZGV2LT5rb2JqLCAmcnNyY19hdHRyaWJ1dGVzKTsKIH0KIAogc3RhdGljIHZvaWQgX19kZXZleGl0IHBjY2FyZF9zeXNmc19yZW1vdmVfcnNyYyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCSAgICAgICBzdHJ1Y3QgY2xhc3NfaW50ZXJmYWNlICpjbGFzc19pbnRmKQogewogCXN0cnVjdCBwY21jaWFfc29ja2V0ICpzID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0Jc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKiphdHRyOwogCiAJaWYgKHMtPnJlc291cmNlX29wcyAhPSAmcGNjYXJkX25vbnN0YXRpY19vcHMpCiAJCXJldHVybjsKLQotCWZvciAoYXR0ciA9IHBjY2FyZF9yc3JjX2F0dHJpYnV0ZXM7ICphdHRyOyBhdHRyKyspCi0JCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICphdHRyKTsKKwlzeXNmc19yZW1vdmVfZ3JvdXAoJmRldi0+a29iaiwgJnJzcmNfYXR0cmlidXRlcyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgY2xhc3NfaW50ZXJmYWNlIHBjY2FyZF9yc3JjX2ludGVyZmFjZSBfX3JlZmRhdGEgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9zb2NfY29tbW9uLmggYi9kcml2ZXJzL3BjbWNpYS9zb2NfY29tbW9uLmgKaW5kZXggMWVkYzFkYS4uOTFlZjZhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvc29jX2NvbW1vbi5oCisrKyBiL2RyaXZlcnMvcGNtY2lhL3NvY19jb21tb24uaApAQCAtMTQsNyArMTQsNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3NvY2tldF9zeXNmcy5jIGIvZHJpdmVycy9wY21jaWEvc29ja2V0X3N5c2ZzLmMKaW5kZXggNTYyMzg0ZC4uMDA2YTI5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvc29ja2V0X3N5c2ZzLmMKKysrIGIvZHJpdmVycy9wY21jaWEvc29ja2V0X3N5c2ZzLmMKQEAgLTI3LDExICsyNyw5IEBACiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KIAotI2RlZmluZSBJTl9DQVJEX1NFUlZJQ0VTCiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3JlZy5oPgogI2luY2x1ZGUgPHBjbWNpYS9kcy5oPgpAQCAtMjkzLDcgKzI5MSw3IEBACiAJCWNvdW50ID0gMDsKIAllbHNlIHsKIAkJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnM7Ci0JCWNpc2luZm9fdCBjaXNpbmZvOworCQl1bnNpZ25lZCBpbnQgY2hhaW5zOwogCiAJCWlmIChvZmYgKyBjb3VudCA+IHNpemUpCiAJCQljb3VudCA9IHNpemUgLSBvZmY7CkBAIC0zMDIsOSArMzAwLDkgQEAKIAogCQlpZiAoIShzLT5zdGF0ZSAmIFNPQ0tFVF9QUkVTRU5UKSkKIAkJCXJldHVybiAtRU5PREVWOwotCQlpZiAocGNjYXJkX3ZhbGlkYXRlX2NpcyhzLCBCSU5EX0ZOX0FMTCwgJmNpc2luZm8pKQorCQlpZiAocGNjYXJkX3ZhbGlkYXRlX2NpcyhzLCBCSU5EX0ZOX0FMTCwgJmNoYWlucykpCiAJCQlyZXR1cm4gLUVJTzsKLQkJaWYgKCFjaXNpbmZvLkNoYWlucykKKwkJaWYgKCFjaGFpbnMpCiAJCQlyZXR1cm4gLUVOT0RBVEE7CiAKIAkJY291bnQgPSBwY2NhcmRfZXh0cmFjdF9jaXMocywgYnVmLCBvZmYsIGNvdW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3RpMTEzeC5oIGIvZHJpdmVycy9wY21jaWEvdGkxMTN4LmgKaW5kZXggZDI5NjU3Yi4uMTI5ZGI3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvdGkxMTN4LmgKKysrIGIvZHJpdmVycy9wY21jaWEvdGkxMTN4LmgKQEAgLTE1NSw3ICsxNTUsNyBAQAogI2RlZmluZSBFTkVfVEVTVF9DOV9UTFRFTkFCTEUJCTB4MDIKICNkZWZpbmUgRU5FX1RFU1RfQzlfUEZFTkFCTEVfRjAJCTB4MDQKICNkZWZpbmUgRU5FX1RFU1RfQzlfUEZFTkFCTEVfRjEJCTB4MDgKLSNkZWZpbmUgRU5FX1RFU1RfQzlfUEZFTkFCTEUJCShFTkVfVEVTVF9DOV9QRkVOQUJMRV9GMCB8IEVORV9URVNUX0M5X1BGRU5BQkxFX0YwKQorI2RlZmluZSBFTkVfVEVTVF9DOV9QRkVOQUJMRQkJKEVORV9URVNUX0M5X1BGRU5BQkxFX0YwIHwgRU5FX1RFU1RfQzlfUEZFTkFCTEVfRjEpCiAjZGVmaW5lIEVORV9URVNUX0M5X1dQRElTQUxCTEVfRjAJMHg0MAogI2RlZmluZSBFTkVfVEVTVF9DOV9XUERJU0FMQkxFX0YxCTB4ODAKICNkZWZpbmUgRU5FX1RFU1RfQzlfV1BESVNBTEJMRQkJKEVORV9URVNUX0M5X1dQRElTQUxCTEVfRjAgfCBFTkVfVEVTVF9DOV9XUERJU0FMQkxFX0YxKQpAQCAtNjkyLDcgKzY5Miw3IEBACiAJCWdvdG8gb3V0OwogCiAJLyogY2hlY2sgc3RhdGUgKi8KLQl5ZW50YV9nZXRfc3RhdHVzKCZzb2NrZXQtPnNvY2tldCwgJnN0YXRlKTsKKwl5ZW50YV9nZXRfc3RhdHVzKCZzbG90Mi0+c29ja2V0LCAmc3RhdGUpOwogCWlmIChzdGF0ZSAmIFNTX0RFVEVDVCkgewogCQlyZXQgPSAwOwogCQlnb3RvIG91dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmFwaWRpby9yaW8tZHJpdmVyLmMgYi9kcml2ZXJzL3JhcGlkaW8vcmlvLWRyaXZlci5jCmluZGV4IDNjZTlmM2QuLjk1NmQzZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcmFwaWRpby9yaW8tZHJpdmVyLmMKKysrIGIvZHJpdmVycy9yYXBpZGlvL3Jpby1kcml2ZXIuYwpAQCAtMTAxLDggKzEwMSw4IEBACiAJCWlmIChlcnJvciA+PSAwKSB7CiAJCQlyZGV2LT5kcml2ZXIgPSByZHJ2OwogCQkJZXJyb3IgPSAwOworCQl9IGVsc2UKIAkJCXJpb19kZXZfcHV0KHJkZXYpOwotCQl9CiAJfQogCXJldHVybiBlcnJvcjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL0tjb25maWcgYi9kcml2ZXJzL3J0Yy9LY29uZmlnCmluZGV4IDQ5NDlkYzQuLmZjODViZjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL0tjb25maWcKKysrIGIvZHJpdmVycy9ydGMvS2NvbmZpZwpAQCAtNDY5LDYgKzQ2OSwxNiBAQAogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCiAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcnRjLXZyNDF4eC4KIAorY29uZmlnIFJUQ19EUlZfUEwwMzAKKwl0cmlzdGF0ZSAiQVJNIEFNQkEgUEwwMzAgUlRDIgorCWRlcGVuZHMgb24gQVJNX0FNQkEKKwloZWxwCisJICBJZiB5b3Ugc2F5IFkgaGVyZSB5b3Ugd2lsbCBnZXQgYWNjZXNzIHRvIEFSTSBBTUJBCisJICBQcmltZUNlbGwgUEwwMzAgUlRDIGZvdW5kIG9uIGNlcnRhaW4gQVJNIFNPQ3MuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHJ0Yy1wbDAzMC4KKwogY29uZmlnIFJUQ19EUlZfUEwwMzEKIAl0cmlzdGF0ZSAiQVJNIEFNQkEgUEwwMzEgUlRDIgogCWRlcGVuZHMgb24gQVJNX0FNQkEKQEAgLTQ5NSwxMiArNTA1LDEzIEBACiAJICB0aGlzIGlzIHBvd2VyZWQgYnkgdGhlIGJhY2t1cCBwb3dlciBzdXBwbHkuCiAKIGNvbmZpZyBSVENfRFJWX0FUOTFTQU05Ci0JdHJpc3RhdGUgIkFUOTFTQU05eCIKKwl0cmlzdGF0ZSAiQVQ5MVNBTTl4L0FUOTFDQVA5IgogCWRlcGVuZHMgb24gQVJDSF9BVDkxICYmICEoQVJDSF9BVDkxUk05MjAwIHx8IEFSQ0hfQVQ5MVg0MCkKIAloZWxwCi0JICBSVEMgZHJpdmVyIGZvciB0aGUgQXRtZWwgQVQ5MVNBTTl4IGludGVybmFsIFJUVCAoUmVhbCBUaW1lIFRpbWVyKS4KLQkgIFRoZXNlIHRpbWVycyBhcmUgcG93ZXJlZCBieSB0aGUgYmFja3VwIHBvd2VyIHN1cHBseSAoc3VjaCBhcyBhCi0JICBzbWFsbCBjb2luIGNlbGwgYmF0dGVyeSksIGJ1dCBkbyBub3QgbmVlZCB0byBiZSB1c2VkIGFzIFJUQ3MuCisJICBSVEMgZHJpdmVyIGZvciB0aGUgQXRtZWwgQVQ5MVNBTTl4IGFuZCBBVDkxQ0FQOSBpbnRlcm5hbCBSVFQKKwkgIChSZWFsIFRpbWUgVGltZXIpLiBUaGVzZSB0aW1lcnMgYXJlIHBvd2VyZWQgYnkgdGhlIGJhY2t1cCBwb3dlcgorCSAgc3VwcGx5IChzdWNoIGFzIGEgc21hbGwgY29pbiBjZWxsIGJhdHRlcnkpLCBidXQgZG8gbm90IG5lZWQgdG8KKwkgIGJlIHVzZWQgYXMgUlRDcy4KIAogCSAgKE9uIEFUOTFTQU05cmwgY2hpcHMgeW91IHByb2JhYmx5IHdhbnQgdG8gdXNlIHRoZSBkZWRpY2F0ZWQgUlRDCiAJICBtb2R1bGUgYW5kIGxlYXZlIHRoZSBSVFQgYXZhaWxhYmxlIGZvciBvdGhlciB1c2VzLikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL01ha2VmaWxlIGIvZHJpdmVycy9ydGMvTWFrZWZpbGUKaW5kZXggYjZlMTRkNS4uYjVkOWQ2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ydGMvTWFrZWZpbGUKQEAgLTQxLDYgKzQxLDcgQEAKIG9iai0kKENPTkZJR19SVENfRFJWX09NQVApCSs9IHJ0Yy1vbWFwLm8KIG9iai0kKENPTkZJR19SVENfRFJWX1BDRjg1NjMpCSs9IHJ0Yy1wY2Y4NTYzLm8KIG9iai0kKENPTkZJR19SVENfRFJWX1BDRjg1ODMpCSs9IHJ0Yy1wY2Y4NTgzLm8KK29iai0kKENPTkZJR19SVENfRFJWX1BMMDMwKQkrPSBydGMtcGwwMzAubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfUEwwMzEpCSs9IHJ0Yy1wbDAzMS5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9QUEMpCSs9IHJ0Yy1wcGMubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfUjk3MDEpCSs9IHJ0Yy1yOTcwMS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9pbnRlcmZhY2UuYyBiL2RyaXZlcnMvcnRjL2ludGVyZmFjZS5jCmluZGV4IDdlM2FkNGYuLjU4YjczMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL2ludGVyZmFjZS5jCisrKyBiL2RyaXZlcnMvcnRjL2ludGVyZmFjZS5jCkBAIC0xMjYsMTIgKzEyNiwyNSBAQAogCWludCBlcnI7CiAJc3RydWN0IHJ0Y190aW1lIGJlZm9yZSwgbm93OwogCWludCBmaXJzdF90aW1lID0gMTsKKwl1bnNpZ25lZCBsb25nIHRfbm93LCB0X2FsbTsKKwllbnVtIHsgbm9uZSwgZGF5LCBtb250aCwgeWVhciB9IG1pc3NpbmcgPSBub25lOworCXVuc2lnbmVkIGRheXM7CiAKLQkvKiBUaGUgbG93ZXIgbGV2ZWwgUlRDIGRyaXZlciBtYXkgbm90IGJlIGNhcGFibGUgb2YgZmlsbGluZwotCSAqIGluIGFsbCBmaWVsZHMgb2YgdGhlIHJ0Y190aW1lIHN0cnVjdCAoZWcuIHJ0Yy1jbW9zKSwKLQkgKiBhbmQgc28gbWlnaHQgaW5zdGVhZCByZXR1cm4gLTEgaW4gc29tZSBmaWVsZHMuCi0JICogV2UgZGVhbCB3aXRoIHRoYXQgaGVyZSBieSBncmFiYmluZyBhIGN1cnJlbnQgUlRDIHRpbWVzdGFtcAotCSAqIGFuZCB1c2luZyB2YWx1ZXMgZnJvbSB0aGF0IGZvciBhbnkgbWlzc2luZyAoLTEpIHZhbHVlcy4KKwkvKiBUaGUgbG93ZXIgbGV2ZWwgUlRDIGRyaXZlciBtYXkgcmV0dXJuIC0xIGluIHNvbWUgZmllbGRzLAorCSAqIGNyZWF0aW5nIGludmFsaWQgYWxhcm0tPnRpbWUgdmFsdWVzLCBmb3IgcmVhc29ucyBsaWtlOgorCSAqCisJICogICAtIFRoZSBoYXJkd2FyZSBtYXkgbm90IGJlIGNhcGFibGUgb2YgZmlsbGluZyB0aGVtIGluOworCSAqICAgICBtYW55IGFsYXJtcyBtYXRjaCBvbmx5IG9uIHRpbWUtb2YtZGF5IGZpZWxkcywgbm90CisJICogICAgIGRheS9tb250aC95ZWFyIGNhbGVuZGFyIGRhdGEuCisJICoKKwkgKiAgIC0gU29tZSBoYXJkd2FyZSB1c2VzIGlsbGVnYWwgdmFsdWVzIGFzICJ3aWxkY2FyZCIgbWF0Y2gKKwkgKiAgICAgdmFsdWVzLCB3aGljaCBub24tTGludXggZmlybXdhcmUgKGxpa2UgYSBCSU9TKSBtYXkgdHJ5CisJICogICAgIHRvIHNldCB1cCBhcyBlLmcuICJhbGFybSAxNSBtaW51dGVzIGFmdGVyIGVhY2ggaG91ciIuCisJICogICAgIExpbnV4IHVzZXMgb25seSBvbmVzaG90IGFsYXJtcy4KKwkgKgorCSAqIFdoZW4gd2Ugc2VlIHRoYXQgaGVyZSwgd2UgZGVhbCB3aXRoIGl0IGJ5IHVzaW5nIHZhbHVlcyBmcm9tCisJICogYSBjdXJyZW50IFJUQyB0aW1lc3RhbXAgZm9yIGFueSBtaXNzaW5nICgtMSkgdmFsdWVzLiAgVGhlCisJICogUlRDIGRyaXZlciBwcmV2ZW50cyAicGVyaW9kaWMgYWxhcm0iIG1vZGVzLgogCSAqCiAJICogQnV0IHRoaXMgY2FuIGJlIHJhY2V5LCBiZWNhdXNlIHNvbWUgZmllbGRzIG9mIHRoZSBSVEMgdGltZXN0YW1wCiAJICogbWF5IGhhdmUgd3JhcHBlZCBpbiB0aGUgaW50ZXJ2YWwgc2luY2Ugd2UgcmVhZCB0aGUgUlRDIGFsYXJtLApAQCAtMTc0LDYgKzE4NywxMCBAQAogCQlpZiAoIWFsYXJtLT5lbmFibGVkKQogCQkJcmV0dXJuIDA7CiAKKwkJLyogZnVsbC1mdW5jdGlvbiBSVENzIHdvbid0IGhhdmUgc3VjaCBtaXNzaW5nIGZpZWxkcyAqLworCQlpZiAocnRjX3ZhbGlkX3RtKCZhbGFybS0+dGltZSkgPT0gMCkKKwkJCXJldHVybiAwOworCiAJCS8qIGdldCB0aGUgImFmdGVyIiB0aW1lc3RhbXAsIHRvIGRldGVjdCB3cmFwcGVkIGZpZWxkcyAqLwogCQllcnIgPSBydGNfcmVhZF90aW1lKHJ0YywgJm5vdyk7CiAJCWlmIChlcnIgPCAwKQpAQCAtMTgzLDIyICsyMDAsODUgQEAKIAl9IHdoaWxlICggICBiZWZvcmUudG1fbWluICAgIT0gbm93LnRtX21pbgogCQkgfHwgYmVmb3JlLnRtX2hvdXIgICE9IG5vdy50bV9ob3VyCiAJCSB8fCBiZWZvcmUudG1fbW9uICAgIT0gbm93LnRtX21vbgotCQkgfHwgYmVmb3JlLnRtX3llYXIgICE9IG5vdy50bV95ZWFyCi0JCSB8fCBiZWZvcmUudG1faXNkc3QgIT0gbm93LnRtX2lzZHN0KTsKKwkJIHx8IGJlZm9yZS50bV95ZWFyICAhPSBub3cudG1feWVhcik7CiAKLQkvKiBGaWxsIGluIGFueSBtaXNzaW5nIGFsYXJtIGZpZWxkcyB1c2luZyB0aGUgdGltZXN0YW1wICovCisJLyogRmlsbCBpbiB0aGUgbWlzc2luZyBhbGFybSBmaWVsZHMgdXNpbmcgdGhlIHRpbWVzdGFtcDsgd2UKKwkgKiBrbm93IHRoZXJlJ3MgYXQgbGVhc3Qgb25lIHNpbmNlIGFsYXJtLT50aW1lIGlzIGludmFsaWQuCisJICovCiAJaWYgKGFsYXJtLT50aW1lLnRtX3NlYyA9PSAtMSkKIAkJYWxhcm0tPnRpbWUudG1fc2VjID0gbm93LnRtX3NlYzsKIAlpZiAoYWxhcm0tPnRpbWUudG1fbWluID09IC0xKQogCQlhbGFybS0+dGltZS50bV9taW4gPSBub3cudG1fbWluOwogCWlmIChhbGFybS0+dGltZS50bV9ob3VyID09IC0xKQogCQlhbGFybS0+dGltZS50bV9ob3VyID0gbm93LnRtX2hvdXI7Ci0JaWYgKGFsYXJtLT50aW1lLnRtX21kYXkgPT0gLTEpCisKKwkvKiBGb3Igc2ltcGxpY2l0eSwgb25seSBzdXBwb3J0IGRhdGUgcm9sbG92ZXIgZm9yIG5vdyAqLworCWlmIChhbGFybS0+dGltZS50bV9tZGF5ID09IC0xKSB7CiAJCWFsYXJtLT50aW1lLnRtX21kYXkgPSBub3cudG1fbWRheTsKLQlpZiAoYWxhcm0tPnRpbWUudG1fbW9uID09IC0xKQorCQltaXNzaW5nID0gZGF5OworCX0KKwlpZiAoYWxhcm0tPnRpbWUudG1fbW9uID09IC0xKSB7CiAJCWFsYXJtLT50aW1lLnRtX21vbiA9IG5vdy50bV9tb247Ci0JaWYgKGFsYXJtLT50aW1lLnRtX3llYXIgPT0gLTEpCisJCWlmIChtaXNzaW5nID09IG5vbmUpCisJCQltaXNzaW5nID0gbW9udGg7CisJfQorCWlmIChhbGFybS0+dGltZS50bV95ZWFyID09IC0xKSB7CiAJCWFsYXJtLT50aW1lLnRtX3llYXIgPSBub3cudG1feWVhcjsKKwkJaWYgKG1pc3NpbmcgPT0gbm9uZSkKKwkJCW1pc3NpbmcgPSB5ZWFyOworCX0KKworCS8qIHdpdGggbHVjaywgbm8gcm9sbG92ZXIgaXMgbmVlZGVkICovCisJcnRjX3RtX3RvX3RpbWUoJm5vdywgJnRfbm93KTsKKwlydGNfdG1fdG9fdGltZSgmYWxhcm0tPnRpbWUsICZ0X2FsbSk7CisJaWYgKHRfbm93IDwgdF9hbG0pCisJCWdvdG8gZG9uZTsKKworCXN3aXRjaCAobWlzc2luZykgeworCisJLyogMjQgaG91ciByb2xsb3ZlciAuLi4gaWYgaXQncyBub3cgMTBhbSBNb25kYXksIGFuIGFsYXJtIHRoYXQKKwkgKiB0aGF0IHdpbGwgdHJpZ2dlciBhdCA1YW0gd2lsbCBkbyBzbyBhdCA1YW0gVHVlc2RheSwgd2hpY2gKKwkgKiBjb3VsZCBhbHNvIGJlIGluIHRoZSBuZXh0IG1vbnRoIG9yIHllYXIuICBUaGlzIGlzIGEgY29tbW9uCisJICogY2FzZSwgZXNwZWNpYWxseSBmb3IgUENzLgorCSAqLworCWNhc2UgZGF5OgorCQlkZXZfZGJnKCZydGMtPmRldiwgImFsYXJtIHJvbGxvdmVyOiAlc1xuIiwgImRheSIpOworCQl0X2FsbSArPSAyNCAqIDYwICogNjA7CisJCXJ0Y190aW1lX3RvX3RtKHRfYWxtLCAmYWxhcm0tPnRpbWUpOworCQlicmVhazsKKworCS8qIE1vbnRoIHJvbGxvdmVyIC4uLiBpZiBpdCdzIHRoZSAzMXRoLCBhbiBhbGFybSBvbiB0aGUgM3JkIHdpbGwKKwkgKiBiZSBuZXh0IG1vbnRoLiAgQW4gYWxhcm0gbWF0Y2hpbmcgb24gdGhlIDMwdGgsIDI5dGgsIG9yIDI4dGgKKwkgKiBtYXkgZW5kIHVwIGluIHRoZSBtb250aCBhZnRlciB0aGF0ISAgTWFueSBuZXdlciBQQ3Mgc3VwcG9ydAorCSAqIHRoaXMgdHlwZSBvZiBhbGFybS4KKwkgKi8KKwljYXNlIG1vbnRoOgorCQlkZXZfZGJnKCZydGMtPmRldiwgImFsYXJtIHJvbGxvdmVyOiAlc1xuIiwgIm1vbnRoIik7CisJCWRvIHsKKwkJCWlmIChhbGFybS0+dGltZS50bV9tb24gPCAxMSkKKwkJCQlhbGFybS0+dGltZS50bV9tb24rKzsKKwkJCWVsc2UgeworCQkJCWFsYXJtLT50aW1lLnRtX21vbiA9IDA7CisJCQkJYWxhcm0tPnRpbWUudG1feWVhcisrOworCQkJfQorCQkJZGF5cyA9IHJ0Y19tb250aF9kYXlzKGFsYXJtLT50aW1lLnRtX21vbiwKKwkJCQkJYWxhcm0tPnRpbWUudG1feWVhcik7CisJCX0gd2hpbGUgKGRheXMgPCBhbGFybS0+dGltZS50bV9tZGF5KTsKKwkJYnJlYWs7CisKKwkvKiBZZWFyIHJvbGxvdmVyIC4uLiBlYXN5IGV4Y2VwdCBmb3IgbGVhcCB5ZWFycyEgKi8KKwljYXNlIHllYXI6CisJCWRldl9kYmcoJnJ0Yy0+ZGV2LCAiYWxhcm0gcm9sbG92ZXI6ICVzXG4iLCAieWVhciIpOworCQlkbyB7CisJCQlhbGFybS0+dGltZS50bV95ZWFyKys7CisJCX0gd2hpbGUgKCFydGNfdmFsaWRfdG0oJmFsYXJtLT50aW1lKSk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJZGV2X3dhcm4oJnJ0Yy0+ZGV2LCAiYWxhcm0gcm9sbG92ZXIgbm90IGhhbmRsZWRcbiIpOworCX0KKworZG9uZToKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHJ0Y19yZWFkX2FsYXJtKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1hdDMyYXA3MDB4LmMgYi9kcml2ZXJzL3J0Yy9ydGMtYXQzMmFwNzAweC5jCmluZGV4IDJlZjhjZGYuLjkwYjlhNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1hdDMyYXA3MDB4LmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWF0MzJhcDcwMHguYwpAQCAtMjY1LDYgKzI2NSw3IEBACiAJfQogCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcnRjKTsKKwlkZXZpY2VfaW5pdF93YWtldXAoJnBkZXYtPmRldiwgMSk7CiAKIAlkZXZfaW5mbygmcGRldi0+ZGV2LCAiQXRtZWwgUlRDIGZvciBBVDMyQVA3MDB4IGF0ICUwOGx4IGlycSAlbGRcbiIsCiAJCQkodW5zaWduZWQgbG9uZylydGMtPnJlZ3MsIHJ0Yy0+aXJxKTsKQEAgLTI4NCw2ICsyODUsOCBAQAogewogCXN0cnVjdCBydGNfYXQzMmFwNzAweCAqcnRjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAKKwlkZXZpY2VfaW5pdF93YWtldXAoJnBkZXYtPmRldiwgMCk7CisKIAlmcmVlX2lycShydGMtPmlycSwgcnRjKTsKIAlpb3VubWFwKHJ0Yy0+cmVncyk7CiAJcnRjX2RldmljZV91bnJlZ2lzdGVyKHJ0Yy0+cnRjKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1hdDkxcm05MjAwLmMgYi9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXJtOTIwMC5jCmluZGV4IDM5ZTY0YWIuLjljM2RiOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1hdDkxcm05MjAwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWF0OTFybTkyMDAuYwpAQCAtMjksMTAgKzI5LDYgQEAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGFzbS9ydGMuaD4KLQotI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KLQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFfcnRjLmg+CiAKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWF0OTFzYW05LmMgYi9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXNhbTkuYwppbmRleCAzOGQ4NzQyLi5mMDI0NmVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXNhbTkuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXNhbTkuYwpAQCAtMTksNyArMTksNiBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CiAKLSNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9hdDkxX3J0dC5oPgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtZGV2LmMgYi9kcml2ZXJzL3J0Yy9ydGMtZGV2LmMKaW5kZXggOTBkZmEwZC4uMDExNGE3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWRldi5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1kZXYuYwpAQCAtMTMsNiArMTMsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcnRjLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJydGMtY29yZS5oIgogCiBzdGF0aWMgZGV2X3QgcnRjX2RldnQ7CkBAIC0yNiw4ICsyNywxMSBAQAogCQkJCQlzdHJ1Y3QgcnRjX2RldmljZSwgY2hhcl9kZXYpOwogCWNvbnN0IHN0cnVjdCBydGNfY2xhc3Nfb3BzICpvcHMgPSBydGMtPm9wczsKIAotCWlmICh0ZXN0X2FuZF9zZXRfYml0X2xvY2soUlRDX0RFVl9CVVNZLCAmcnRjLT5mbGFncykpCi0JCXJldHVybiAtRUJVU1k7CisJbG9ja19rZXJuZWwoKTsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdF9sb2NrKFJUQ19ERVZfQlVTWSwgJnJ0Yy0+ZmxhZ3MpKSB7CisJCWVyciA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CisJfQogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gcnRjOwogCkBAIC0zNywxMSArNDEsMTMgQEAKIAkJcnRjLT5pcnFfZGF0YSA9IDA7CiAJCXNwaW5fdW5sb2NrX2lycSgmcnRjLT5pcnFfbG9jayk7CiAKLQkJcmV0dXJuIDA7CisJCWdvdG8gb3V0OwogCX0KIAogCS8qIHNvbWV0aGluZyBoYXMgZ29uZSB3cm9uZyAqLwogCWNsZWFyX2JpdF91bmxvY2soUlRDX0RFVl9CVVNZLCAmcnRjLT5mbGFncyk7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1mbTMxMzAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1mbTMxMzAuYwppbmRleCAxMTY0NGM4Li5hYmZkZmNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtZm0zMTMwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWZtMzEzMC5jCkBAIC01NSw3ICs1NSw3IEBACiAJaW50CQkJYWxhcm07CiB9Owogc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIGZtMzEzMF9pZFtdID0gewotCXsgImZtMzEzMC1ydGMiLCAwIH0sCisJeyAiZm0zMTMwIiwgMCB9LAogCXsgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCBmbTMxMzBfaWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLW00MXQ4MC5jIGIvZHJpdmVycy9ydGMvcnRjLW00MXQ4MC5jCmluZGV4IGEzZTA4ODAuLjBhMTljMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1tNDF0ODAuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtbTQxdDgwLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvcnRjLmg+CkBAIC02NTUsMTIgKzY1NiwxNiBAQAogc3RhdGljIGludCB3ZHRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAlpZiAoTUlOT1IoaW5vZGUtPmlfcmRldikgPT0gV0FUQ0hET0dfTUlOT1IpIHsKLQkJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJndkdF9pc19vcGVuKSkKKwkJbG9ja19rZXJuZWwoKTsKKwkJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJndkdF9pc19vcGVuKSkgeworCQkJdW5sb2NrX2tlcm5lbCgpOwogCQkJcmV0dXJuIC1FQlVTWTsKKwkJfQogCQkvKgogCQkgKglBY3RpdmF0ZQogCQkgKi8KIAkJd2R0X2lzX29wZW4gPSAxOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAwOwogCX0KIAlyZXR1cm4gLUVOT0RFVjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1vbWFwLmMgYi9kcml2ZXJzL3J0Yy9ydGMtb21hcC5jCmluZGV4IDU4ZjgxYzcuLmViMjNkODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1vbWFwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLW9tYXAuYwpAQCAtMjIsNyArMjIsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgogCiAKIC8qIFRoZSBPTUFQMSBSVEMgaXMgYSB5ZWFyL21vbnRoL2RheS9ob3Vycy9taW51dGVzL3NlY29uZHMgQkNEIGNsb2NrCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGNmODU2My5jIGIvZHJpdmVycy9ydGMvcnRjLXBjZjg1NjMuYwppbmRleCAwZmM0YzM2Li43NDhhNTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtcGNmODU2My5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1wY2Y4NTYzLmMKQEAgLTMwMiw2ICszMDIsNyBAQAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgcGNmODU2M19pZFtdID0gewogCXsgInBjZjg1NjMiLCAwIH0sCisJeyAicnRjODU2NCIsIDAgfSwKIAl7IH0KIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKGkyYywgcGNmODU2M19pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGwwMzAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NDhlZWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3J0Yy9ydGMtcGwwMzAuYwpAQCAtMCwwICsxLDIxNyBAQAorLyoKKyAqICBsaW51eC9kcml2ZXJzL3J0Yy9ydGMtcGwwMzAuYworICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEZWVwIEJsdWUgU29sdXRpb25zIEx0ZC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcnRjLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2FtYmEvYnVzLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKworI2RlZmluZSBSVENfRFIJCSgwKQorI2RlZmluZSBSVENfTVIJCSg0KQorI2RlZmluZSBSVENfU1RBVAkoOCkKKyNkZWZpbmUgUlRDX0VPSQkJKDgpCisjZGVmaW5lIFJUQ19MUgkJKDEyKQorI2RlZmluZSBSVENfQ1IJCSgxNikKKyNkZWZpbmUgUlRDX0NSX01JRQkoMSA8PCAwKQorCitzdHJ1Y3QgcGwwMzBfcnRjIHsKKwlzdHJ1Y3QgcnRjX2RldmljZQkqcnRjOworCXZvaWQgX19pb21lbQkJKmJhc2U7Cit9OworCitzdGF0aWMgaXJxcmV0dXJuX3QgcGwwMzBfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3QgcGwwMzBfcnRjICpydGMgPSBkZXZfaWQ7CisJd3JpdGVsKDAsIHJ0Yy0+YmFzZSArIFJUQ19FT0kpOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIGludCBwbDAzMF9vcGVuKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcGwwMzBfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7Cit9CisKK3N0YXRpYyBpbnQgcGwwMzBfaW9jdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlyZXR1cm4gLUVOT0lPQ1RMQ01EOworfQorCitzdGF0aWMgaW50IHBsMDMwX3JlYWRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKK3sKKwlzdHJ1Y3QgcGwwMzBfcnRjICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCXJ0Y190aW1lX3RvX3RtKHJlYWRsKHJ0Yy0+YmFzZSArIFJUQ19NUiksICZhbHJtLT50aW1lKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwbDAzMF9zZXRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKK3sKKwlzdHJ1Y3QgcGwwMzBfcnRjICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBsb25nIHRpbWU7CisJaW50IHJldDsKKworCS8qCisJICogQXQgdGhlIG1vbWVudCwgd2UgY2FuIG9ubHkgZGVhbCB3aXRoIG5vbi13aWxkY2FyZGVkIGFsYXJtIHRpbWVzLgorCSAqLworCXJldCA9IHJ0Y192YWxpZF90bSgmYWxybS0+dGltZSk7CisJaWYgKHJldCA9PSAwKQorCQlyZXQgPSBydGNfdG1fdG9fdGltZSgmYWxybS0+dGltZSwgJnRpbWUpOworCWlmIChyZXQgPT0gMCkKKwkJd3JpdGVsKHRpbWUsIHJ0Yy0+YmFzZSArIFJUQ19NUik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwbDAzMF9yZWFkX3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQoreworCXN0cnVjdCBwbDAzMF9ydGMgKnJ0YyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJcnRjX3RpbWVfdG9fdG0ocmVhZGwocnRjLT5iYXNlICsgUlRDX0RSKSwgdG0pOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBTZXQgdGhlIFJUQyB0aW1lLiAgVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWNjdXJhdGVseSBzZXQKKyAqIHRoZSBwb2ludCBhdCB3aGljaCB0aGUgY291bnRlciB1cGRhdGVzLgorICoKKyAqIEFsc28sIHNpbmNlIFJUQ19MUiBpcyB0cmFuc2ZlcnJlZCB0byBSVENfQ1Igb24gbmV4dCByaXNpbmcKKyAqIGVkZ2Ugb2YgdGhlIDFIeiBjbG9jaywgd2UgbXVzdCB3cml0ZSB0aGUgdGltZSBvbmUgc2Vjb25kCisgKiBpbiBhZHZhbmNlLgorICovCitzdGF0aWMgaW50IHBsMDMwX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKK3sKKwlzdHJ1Y3QgcGwwMzBfcnRjICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBsb25nIHRpbWU7CisJaW50IHJldDsKKworCXJldCA9IHJ0Y190bV90b190aW1lKHRtLCAmdGltZSk7CisJaWYgKHJldCA9PSAwKQorCQl3cml0ZWwodGltZSArIDEsIHJ0Yy0+YmFzZSArIFJUQ19MUik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHJ0Y19jbGFzc19vcHMgcGwwMzBfb3BzID0geworCS5vcGVuCQk9IHBsMDMwX29wZW4sCisJLnJlbGVhc2UJPSBwbDAzMF9yZWxlYXNlLAorCS5pb2N0bAkJPSBwbDAzMF9pb2N0bCwKKwkucmVhZF90aW1lCT0gcGwwMzBfcmVhZF90aW1lLAorCS5zZXRfdGltZQk9IHBsMDMwX3NldF90aW1lLAorCS5yZWFkX2FsYXJtCT0gcGwwMzBfcmVhZF9hbGFybSwKKwkuc2V0X2FsYXJtCT0gcGwwMzBfc2V0X2FsYXJtLAorfTsKKworc3RhdGljIGludCBwbDAzMF9wcm9iZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldiwgdm9pZCAqaWQpCit7CisJc3RydWN0IHBsMDMwX3J0YyAqcnRjOworCWludCByZXQ7CisKKwlyZXQgPSBhbWJhX3JlcXVlc3RfcmVnaW9ucyhkZXYsIE5VTEwpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3JlcTsKKworCXJ0YyA9IGttYWxsb2Moc2l6ZW9mKCpydGMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJ0YykgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVycl9ydGM7CisJfQorCisJcnRjLT5iYXNlID0gaW9yZW1hcChkZXYtPnJlcy5zdGFydCwgU1pfNEspOworCWlmICghcnRjLT5iYXNlKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX21hcDsKKwl9CisKKwlfX3Jhd193cml0ZWwoMCwgcnRjLT5iYXNlICsgUlRDX0NSKTsKKwlfX3Jhd193cml0ZWwoMCwgcnRjLT5iYXNlICsgUlRDX0VPSSk7CisKKwlhbWJhX3NldF9kcnZkYXRhKGRldiwgcnRjKTsKKworCXJldCA9IHJlcXVlc3RfaXJxKGRldi0+aXJxWzBdLCBwbDAzMF9pbnRlcnJ1cHQsIElSUUZfRElTQUJMRUQsCisJCQkgICJydGMtcGwwMzAiLCBydGMpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX2lycTsKKworCXJ0Yy0+cnRjID0gcnRjX2RldmljZV9yZWdpc3RlcigicGwwMzAiLCAmZGV2LT5kZXYsICZwbDAzMF9vcHMsCisJCQkJICAgICAgIFRISVNfTU9EVUxFKTsKKwlpZiAoSVNfRVJSKHJ0Yy0+cnRjKSkgeworCQlyZXQgPSBQVFJfRVJSKHJ0Yy0+cnRjKTsKKwkJZ290byBlcnJfcmVnOworCX0KKworCXJldHVybiAwOworCisgZXJyX3JlZzoKKwlmcmVlX2lycShkZXYtPmlycVswXSwgcnRjKTsKKyBlcnJfaXJxOgorCWlvdW5tYXAocnRjLT5iYXNlKTsKKyBlcnJfbWFwOgorCWtmcmVlKHJ0Yyk7CisgZXJyX3J0YzoKKwlhbWJhX3JlbGVhc2VfcmVnaW9ucyhkZXYpOworIGVycl9yZXE6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwbDAzMF9yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHBsMDMwX3J0YyAqcnRjID0gYW1iYV9nZXRfZHJ2ZGF0YShkZXYpOworCisJYW1iYV9zZXRfZHJ2ZGF0YShkZXYsIE5VTEwpOworCisJd3JpdGVsKDAsIHJ0Yy0+YmFzZSArIFJUQ19DUik7CisKKwlmcmVlX2lycShkZXYtPmlycVswXSwgcnRjKTsKKwlydGNfZGV2aWNlX3VucmVnaXN0ZXIocnRjLT5ydGMpOworCWlvdW5tYXAocnRjLT5iYXNlKTsKKwlrZnJlZShydGMpOworCWFtYmFfcmVsZWFzZV9yZWdpb25zKGRldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBhbWJhX2lkIHBsMDMwX2lkc1tdID0geworCXsKKwkJLmlkCT0gMHgwMDA0MTAzMCwKKwkJLm1hc2sJPSAweDAwMGZmZmZmLAorCX0sCisJeyAwLCAwIH0sCit9OworCitzdGF0aWMgc3RydWN0IGFtYmFfZHJpdmVyIHBsMDMwX2RyaXZlciA9IHsKKwkuZHJ2CQk9IHsKKwkJLm5hbWUJPSAicnRjLXBsMDMwIiwKKwl9LAorCS5wcm9iZQkJPSBwbDAzMF9wcm9iZSwKKwkucmVtb3ZlCQk9IHBsMDMwX3JlbW92ZSwKKwkuaWRfdGFibGUJPSBwbDAzMF9pZHMsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBwbDAzMF9pbml0KHZvaWQpCit7CisJcmV0dXJuIGFtYmFfZHJpdmVyX3JlZ2lzdGVyKCZwbDAzMF9kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgcGwwMzBfZXhpdCh2b2lkKQoreworCWFtYmFfZHJpdmVyX3VucmVnaXN0ZXIoJnBsMDMwX2RyaXZlcik7Cit9CisKK21vZHVsZV9pbml0KHBsMDMwX2luaXQpOworbW9kdWxlX2V4aXQocGwwMzBfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIlJ1c3NlbGwgS2luZyA8cm1rQGFybS5saW51eC5vcmcudWs+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkFSTSBBTUJBIFBMMDMwIFJUQyBEcml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMS5jIGIvZHJpdmVycy9ydGMvcnRjLXBsMDMxLmMKaW5kZXggMmZkNDllZC4uMDhiNDYxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXBsMDMxLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXBsMDMxLmMKQEAgLTEyLDIzICsxMiwxMiBAQAogICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uCiAgKiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICovCi0KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9ydGMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9wbS5oPgotI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgotCiAjaW5jbHVkZSA8bGludXgvYW1iYS9idXMuaD4KLQotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgotI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNsdWRlIDxhc20vcnRjLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KIAogLyoKICAqIFJlZ2lzdGVyIGRlZmluaXRpb25zCkBAIC0xNDIsMTMgKzEzMSwxMiBAQAogewogCXN0cnVjdCBwbDAzMV9sb2NhbCAqbGRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJmFkZXYtPmRldik7CiAKLQlpZiAobGRhdGEpIHsKLQkJZGV2X3NldF9kcnZkYXRhKCZhZGV2LT5kZXYsIE5VTEwpOwotCQlmcmVlX2lycShhZGV2LT5pcnFbMF0sIGxkYXRhLT5ydGMpOwotCQlydGNfZGV2aWNlX3VucmVnaXN0ZXIobGRhdGEtPnJ0Yyk7Ci0JCWlvdW5tYXAobGRhdGEtPmJhc2UpOwotCQlrZnJlZShsZGF0YSk7Ci0JfQorCWFtYmFfc2V0X2RydmRhdGEoYWRldiwgTlVMTCk7CisJZnJlZV9pcnEoYWRldi0+aXJxWzBdLCBsZGF0YS0+cnRjKTsKKwlydGNfZGV2aWNlX3VucmVnaXN0ZXIobGRhdGEtPnJ0Yyk7CisJaW91bm1hcChsZGF0YS0+YmFzZSk7CisJa2ZyZWUobGRhdGEpOworCWFtYmFfcmVsZWFzZV9yZWdpb25zKGFkZXYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNTgsMTMgKzE0NiwxNSBAQAogCWludCByZXQ7CiAJc3RydWN0IHBsMDMxX2xvY2FsICpsZGF0YTsKIAorCXJldCA9IGFtYmFfcmVxdWVzdF9yZWdpb25zKGFkZXYsIE5VTEwpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3JlcTsKIAogCWxkYXRhID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHBsMDMxX2xvY2FsKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFsZGF0YSkgewogCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIG91dDsKIAl9Ci0JZGV2X3NldF9kcnZkYXRhKCZhZGV2LT5kZXYsIGxkYXRhKTsKIAogCWxkYXRhLT5iYXNlID0gaW9yZW1hcChhZGV2LT5yZXMuc3RhcnQsCiAJCQkgICAgICBhZGV2LT5yZXMuZW5kIC0gYWRldi0+cmVzLnN0YXJ0ICsgMSk7CkBAIC0xNzMsNiArMTYzLDggQEAKIAkJZ290byBvdXRfbm9fcmVtYXA7CiAJfQogCisJYW1iYV9zZXRfZHJ2ZGF0YShhZGV2LCBsZGF0YSk7CisKIAlpZiAocmVxdWVzdF9pcnEoYWRldi0+aXJxWzBdLCBwbDAzMV9pbnRlcnJ1cHQsIElSUUZfRElTQUJMRUQsCiAJCQkicnRjLXBsMDMxIiwgbGRhdGEtPnJ0YykpIHsKIAkJcmV0ID0gLUVJTzsKQEAgLTE5MiwxMCArMTg0LDEyIEBACiAJZnJlZV9pcnEoYWRldi0+aXJxWzBdLCBsZGF0YS0+cnRjKTsKIG91dF9ub19pcnE6CiAJaW91bm1hcChsZGF0YS0+YmFzZSk7CisJYW1iYV9zZXRfZHJ2ZGF0YShhZGV2LCBOVUxMKTsKIG91dF9ub19yZW1hcDoKLQlkZXZfc2V0X2RydmRhdGEoJmFkZXYtPmRldiwgTlVMTCk7CiAJa2ZyZWUobGRhdGEpOwogb3V0OgorCWFtYmFfcmVsZWFzZV9yZWdpb25zKGFkZXYpOworZXJyX3JlcToKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtczNjLmMgYi9kcml2ZXJzL3J0Yy9ydGMtczNjLmMKaW5kZXggZjI2ZTBjYS4uZmVkODZlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXMzYy5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1zM2MuYwpAQCAtMjYsMTAgKzI2LDYgQEAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNsdWRlIDxhc20vcnRjLmg+Ci0KLSNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+Ci0KICNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1ydGMuaD4KIAogLyogSSBoYXZlIHlldCB0byBmaW5kIGFuIFMzQyBpbXBsZW1lbnRhdGlvbiB3aXRoIG1vcmUgdGhhbiBvbmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1zYTExMDAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1zYTExMDAuYwppbmRleCA4MmY2MmQyLi5mNDcyOTRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtc2ExMTAwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXNhMTEwMC5jCkBAIC0zMyw3ICszMyw2IEBACiAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+Ci0jaW5jbHVkZSA8YXNtL3J0Yy5oPgogCiAjaWZkZWYgQ09ORklHX0FSQ0hfUFhBCiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KQEAgLTQ3LDYgKzQ2LDQyIEBACiBzdGF0aWMgc3RydWN0IHJ0Y190aW1lIHJ0Y19hbGFybTsKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soc2ExMTAwX3J0Y19sb2NrKTsKIAorc3RhdGljIGlubGluZSBpbnQgcnRjX3BlcmlvZGljX2FsYXJtKHN0cnVjdCBydGNfdGltZSAqdG0pCit7CisJcmV0dXJuICAodG0tPnRtX3llYXIgPT0gLTEpIHx8CisJCSgodW5zaWduZWQpdG0tPnRtX21vbiA+PSAxMikgfHwKKwkJKCh1bnNpZ25lZCkodG0tPnRtX21kYXkgLSAxKSA+PSAzMSkgfHwKKwkJKCh1bnNpZ25lZCl0bS0+dG1faG91ciA+IDIzKSB8fAorCQkoKHVuc2lnbmVkKXRtLT50bV9taW4gPiA1OSkgfHwKKwkJKCh1bnNpZ25lZCl0bS0+dG1fc2VjID4gNTkpOworfQorCisvKgorICogQ2FsY3VsYXRlIHRoZSBuZXh0IGFsYXJtIHRpbWUgZ2l2ZW4gdGhlIHJlcXVlc3RlZCBhbGFybSB0aW1lIG1hc2sKKyAqIGFuZCB0aGUgY3VycmVudCB0aW1lLgorICovCitzdGF0aWMgdm9pZCBydGNfbmV4dF9hbGFybV90aW1lKHN0cnVjdCBydGNfdGltZSAqbmV4dCwgc3RydWN0IHJ0Y190aW1lICpub3csIHN0cnVjdCBydGNfdGltZSAqYWxybSkKK3sKKwl1bnNpZ25lZCBsb25nIG5leHRfdGltZTsKKwl1bnNpZ25lZCBsb25nIG5vd190aW1lOworCisJbmV4dC0+dG1feWVhciA9IG5vdy0+dG1feWVhcjsKKwluZXh0LT50bV9tb24gPSBub3ctPnRtX21vbjsKKwluZXh0LT50bV9tZGF5ID0gbm93LT50bV9tZGF5OworCW5leHQtPnRtX2hvdXIgPSBhbHJtLT50bV9ob3VyOworCW5leHQtPnRtX21pbiA9IGFscm0tPnRtX21pbjsKKwluZXh0LT50bV9zZWMgPSBhbHJtLT50bV9zZWM7CisKKwlydGNfdG1fdG9fdGltZShub3csICZub3dfdGltZSk7CisJcnRjX3RtX3RvX3RpbWUobmV4dCwgJm5leHRfdGltZSk7CisKKwlpZiAobmV4dF90aW1lIDwgbm93X3RpbWUpIHsKKwkJLyogQWR2YW5jZSBvbmUgZGF5ICovCisJCW5leHRfdGltZSArPSA2MCAqIDYwICogMjQ7CisJCXJ0Y190aW1lX3RvX3RtKG5leHRfdGltZSwgbmV4dCk7CisJfQorfQorCiBzdGF0aWMgaW50IHJ0Y191cGRhdGVfYWxhcm0oc3RydWN0IHJ0Y190aW1lICphbHJtKQogewogCXN0cnVjdCBydGNfdGltZSBhbGFybV90bSwgbm93X3RtOwpAQCAtMzMxLDE0ICszNjYsMTQgQEAKIAkJUkNOUiA9IDA7CiAJfQogCisJZGV2aWNlX2luaXRfd2FrZXVwKCZwZGV2LT5kZXYsIDEpOworCiAJcnRjID0gcnRjX2RldmljZV9yZWdpc3RlcihwZGV2LT5uYW1lLCAmcGRldi0+ZGV2LCAmc2ExMTAwX3J0Y19vcHMsCiAJCQkJVEhJU19NT0RVTEUpOwogCiAJaWYgKElTX0VSUihydGMpKQogCQlyZXR1cm4gUFRSX0VSUihydGMpOwogCi0JZGV2aWNlX2luaXRfd2FrZXVwKCZwZGV2LT5kZXYsIDEpOwotCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcnRjKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXgxMjA1LmMgYi9kcml2ZXJzL3J0Yy9ydGMteDEyMDUuYwppbmRleCBlYWY1NTk0Li43ZGNmYmExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMteDEyMDUuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMteDEyMDUuYwpAQCAtNzEsNiArNzEsNyBAQAogI2RlZmluZSBYMTIwNV9TUl9SVENGCQkweDAxCS8qIENsb2NrIGZhaWx1cmUgKi8KICNkZWZpbmUgWDEyMDVfU1JfV0VMCQkweDAyCS8qIFdyaXRlIEVuYWJsZSBMYXRjaCAqLwogI2RlZmluZSBYMTIwNV9TUl9SV0VMCQkweDA0CS8qIFJlZ2lzdGVyIFdyaXRlIEVuYWJsZSAqLworI2RlZmluZSBYMTIwNV9TUl9BTDAJCTB4MjAJLyogQWxhcm0gMCBtYXRjaCAqLwogCiAjZGVmaW5lIFgxMjA1X0RUUl9EVFIwCQkweDAxCiAjZGVmaW5lIFgxMjA1X0RUUl9EVFIxCQkweDAyCkBAIC03OCw2ICs3OSw4IEBACiAKICNkZWZpbmUgWDEyMDVfSFJfTUlMCQkweDgwCS8qIFNldCBpbiBjY3IuaG91ciBmb3IgMjQgaHIgbW9kZSAqLwogCisjZGVmaW5lIFgxMjA1X0lOVF9BTDBFCQkweDIwCS8qIEFsYXJtIDAgZW5hYmxlICovCisKIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB4MTIwNV9kcml2ZXI7CiAKIC8qCkBAIC04OSw4ICs5Miw4IEBACiAJCQkJdW5zaWduZWQgY2hhciByZWdfYmFzZSkKIHsKIAl1bnNpZ25lZCBjaGFyIGR0X2FkZHJbMl0gPSB7IDAsIHJlZ19iYXNlIH07Ci0KIAl1bnNpZ25lZCBjaGFyIGJ1Zls4XTsKKwlpbnQgaTsKIAogCXN0cnVjdCBpMmNfbXNnIG1zZ3NbXSA9IHsKIAkJeyBjbGllbnQtPmFkZHIsIDAsIDIsIGR0X2FkZHIgfSwJLyogc2V0dXAgcmVhZCBwdHIgKi8KQEAgLTk4LDcgKzEwMSw3IEBACiAJfTsKIAogCS8qIHJlYWQgZGF0ZSByZWdpc3RlcnMgKi8KLQlpZiAoKGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2dzWzBdLCAyKSkgIT0gMikgeworCWlmIChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikgIT0gMikgewogCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIiVzOiByZWFkIGVycm9yXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAtRUlPOwogCX0KQEAgLTExMCw2ICsxMTMsMTEgQEAKIAkJYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSwgYnVmWzNdLAogCQlidWZbNF0sIGJ1Zls1XSwgYnVmWzZdLCBidWZbN10pOwogCisJLyogTWFzayBvdXQgdGhlIGVuYWJsZSBiaXRzIGlmIHRoZXNlIGFyZSBhbGFybSByZWdpc3RlcnMgKi8KKwlpZiAocmVnX2Jhc2UgPCBYMTIwNV9DQ1JfQkFTRSkKKwkJZm9yIChpID0gMDsgaSA8PSA0OyBpKyspCisJCQlidWZbaV0gJj0gMHg3RjsKKwogCXRtLT50bV9zZWMgPSBCQ0QyQklOKGJ1ZltDQ1JfU0VDXSk7CiAJdG0tPnRtX21pbiA9IEJDRDJCSU4oYnVmW0NDUl9NSU5dKTsKIAl0bS0+dG1faG91ciA9IEJDRDJCSU4oYnVmW0NDUl9IT1VSXSAmIDB4M0YpOyAvKiBociBpcyAwLTIzICovCkBAIC0xMzgsNyArMTQ2LDcgQEAKIAl9OwogCiAJLyogcmVhZCBzdGF0dXMgcmVnaXN0ZXIgKi8KLQlpZiAoKGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2dzWzBdLCAyKSkgIT0gMikgeworCWlmIChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikgIT0gMikgewogCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIiVzOiByZWFkIGVycm9yXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAtRUlPOwogCX0KQEAgLTE0NywxMCArMTU1LDExIEBACiB9CiAKIHN0YXRpYyBpbnQgeDEyMDVfc2V0X2RhdGV0aW1lKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHN0cnVjdCBydGNfdGltZSAqdG0sCi0JCQkJaW50IGRhdGV0b28sIHU4IHJlZ19iYXNlKQorCQkJaW50IGRhdGV0b28sIHU4IHJlZ19iYXNlLCB1bnNpZ25lZCBjaGFyIGFsbV9lbmFibGUpCiB7Ci0JaW50IGksIHhmZXI7CisJaW50IGksIHhmZXIsIG5ieXRlczsKIAl1bnNpZ25lZCBjaGFyIGJ1Zls4XTsKKwl1bnNpZ25lZCBjaGFyIHJkYXRhWzEwXSA9IHsgMCwgcmVnX2Jhc2UgfTsKIAogCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHdlbFszXSA9IHsgMCwgWDEyMDVfUkVHX1NSLAogCQkJCQkJWDEyMDVfU1JfV0VMIH07CkBAIC0xODksNiArMTk4LDExIEBACiAJCWJ1ZltDQ1JfWTJLXSA9IEJJTjJCQ0QodG0tPnRtX3llYXIgLyAxMDApOwogCX0KIAorCS8qIElmIHdyaXRpbmcgYWxhcm0gcmVnaXN0ZXJzLCBzZXQgY29tcGFyZSBiaXRzIG9uIHJlZ2lzdGVycyAwLTQgKi8KKwlpZiAocmVnX2Jhc2UgPCBYMTIwNV9DQ1JfQkFTRSkKKwkJZm9yIChpID0gMDsgaSA8PSA0OyBpKyspCisJCQlidWZbaV0gfD0gMHg4MDsKKwogCS8qIHRoaXMgc2VxdWVuY2UgaXMgcmVxdWlyZWQgdG8gdW5sb2NrIHRoZSBjaGlwICovCiAJaWYgKCh4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgd2VsLCAzKSkgIT0gMykgewogCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIiVzOiB3ZWwgLSAlZFxuIiwgX19mdW5jX18sIHhmZXIpOwpAQCAtMjAwLDE5ICsyMTQsNTcgQEAKIAkJcmV0dXJuIC1FSU87CiAJfQogCi0JLyogd3JpdGUgcmVnaXN0ZXIncyBkYXRhICovCi0JZm9yIChpID0gMDsgaSA8IChkYXRldG9vID8gOCA6IDMpOyBpKyspIHsKLQkJdW5zaWduZWQgY2hhciByZGF0YVszXSA9IHsgMCwgcmVnX2Jhc2UgKyBpLCBidWZbaV0gfTsKIAotCQl4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgcmRhdGEsIDMpOworCS8qIHdyaXRlIHJlZ2lzdGVyJ3MgZGF0YSAqLworCWlmIChkYXRldG9vKQorCQluYnl0ZXMgPSA4OworCWVsc2UKKwkJbmJ5dGVzID0gMzsKKwlmb3IgKGkgPSAwOyBpIDwgbmJ5dGVzOyBpKyspCisJCXJkYXRhWzIraV0gPSBidWZbaV07CisKKwl4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgcmRhdGEsIG5ieXRlcysyKTsKKwlpZiAoeGZlciAhPSBuYnl0ZXMrMikgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKKwkJCSIlczogcmVzdWx0PSVkIGFkZHI9JTAyeCwgZGF0YT0lMDJ4XG4iLAorCQkJX19mdW5jX18sCisJCQkgeGZlciwgcmRhdGFbMV0sIHJkYXRhWzJdKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJLyogSWYgd2Ugd3JvdGUgdG8gdGhlIG5vbnZvbGF0aWxlIHJlZ2lvbiwgd2FpdCAxMG1zZWMgZm9yIHdyaXRlIGN5Y2xlKi8KKwlpZiAocmVnX2Jhc2UgPCBYMTIwNV9DQ1JfQkFTRSkgeworCQl1bnNpZ25lZCBjaGFyIGFsMGVbM10gPSB7IDAsIFgxMjA1X1JFR19JTlQsIDAgfTsKKworCQltc2xlZXAoMTApOworCisJCS8qIC4uLmFuZCBzZXQgb3IgY2xlYXIgdGhlIEFMMEUgYml0IGluIHRoZSBJTlQgcmVnaXN0ZXIgKi8KKworCQkvKiBOZWVkIHRvIHNldCBSV0VMIGFnYWluIGFzIHRoZSB3cml0ZSBoYXMgY2xlYXJlZCBpdCAqLworCQl4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgcndlbCwgMyk7CiAJCWlmICh4ZmVyICE9IDMpIHsKIAkJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAotCQkJCSIlczogeGZlcj0lZCBhZGRyPSUwMngsIGRhdGE9JTAyeFxuIiwKKwkJCQkiJXM6IGFsb2UgcndlbCAtICVkXG4iLAogCQkJCV9fZnVuY19fLAotCQkJCSB4ZmVyLCByZGF0YVsxXSwgcmRhdGFbMl0pOworCQkJCXhmZXIpOwogCQkJcmV0dXJuIC1FSU87CiAJCX0KLQl9OworCisJCWlmIChhbG1fZW5hYmxlKQorCQkJYWwwZVsyXSA9IFgxMjA1X0lOVF9BTDBFOworCisJCXhmZXIgPSBpMmNfbWFzdGVyX3NlbmQoY2xpZW50LCBhbDBlLCAzKTsKKwkJaWYgKHhmZXIgIT0gMykgeworCQkJZGV2X2VycigmY2xpZW50LT5kZXYsCisJCQkJIiVzOiBhbDBlIC0gJWRcbiIsCisJCQkJX19mdW5jX18sCisJCQkJeGZlcik7CisJCQlyZXR1cm4gLUVJTzsKKwkJfQorCisJCS8qIGFuZCB3YWl0IDEwbXNlYyBhZ2FpbiBmb3IgdGhpcyB3cml0ZSB0byBjb21wbGV0ZSAqLworCQltc2xlZXAoMTApOworCX0KIAogCS8qIGRpc2FibGUgZnVydGhlciB3cml0ZXMgKi8KIAlpZiAoKHhmZXIgPSBpMmNfbWFzdGVyX3NlbmQoY2xpZW50LCBkaXN3ZSwgMykpICE9IDMpIHsKQEAgLTIzMCw5ICsyODIsOSBAQAogCiAJdG0udG1faG91ciA9IHRtLnRtX21pbiA9IHRtLnRtX3NlYyA9IDA7CiAKLQlpZiAoKGVyciA9IHgxMjA1X3NldF9kYXRldGltZShjbGllbnQsICZ0bSwgMCwgWDEyMDVfQ0NSX0JBU0UpKSA8IDApCi0JCWRldl9lcnIoJmNsaWVudC0+ZGV2LAotCQkJInVuYWJsZSB0byByZXN0YXJ0IHRoZSBvc2NpbGxhdG9yXG4iKTsKKwllcnIgPSB4MTIwNV9zZXRfZGF0ZXRpbWUoY2xpZW50LCAmdG0sIDAsIFgxMjA1X0NDUl9CQVNFLCAwKTsKKwlpZiAoZXJyIDwgMCkKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJ1bmFibGUgdG8gcmVzdGFydCB0aGUgb3NjaWxsYXRvclxuIik7CiAKIAlyZXR1cm4gZXJyOwogfQpAQCAtMjQ4LDcgKzMwMCw3IEBACiAJfTsKIAogCS8qIHJlYWQgZHRyIHJlZ2lzdGVyICovCi0JaWYgKChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikpICE9IDIpIHsKKwlpZiAoaTJjX3RyYW5zZmVyKGNsaWVudC0+YWRhcHRlciwgJm1zZ3NbMF0sIDIpICE9IDIpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICIlczogcmVhZCBlcnJvclxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gLUVJTzsKIAl9CkBAIC0yODAsNyArMzMyLDcgQEAKIAl9OwogCiAJLyogcmVhZCBhdHIgcmVnaXN0ZXIgKi8KLQlpZiAoKGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2dzWzBdLCAyKSkgIT0gMikgeworCWlmIChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikgIT0gMikgewogCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIiVzOiByZWFkIGVycm9yXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAtRUlPOwogCX0KQEAgLTQwMywxNCArNDU1LDMzIEBACiAKIHN0YXRpYyBpbnQgeDEyMDVfcnRjX3JlYWRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKIHsKLQlyZXR1cm4geDEyMDVfZ2V0X2RhdGV0aW1lKHRvX2kyY19jbGllbnQoZGV2KSwKLQkJJmFscm0tPnRpbWUsIFgxMjA1X0FMTTBfQkFTRSk7CisJaW50IGVycjsKKwl1bnNpZ25lZCBjaGFyIGludHJlZywgc3RhdHVzOworCXN0YXRpYyB1bnNpZ25lZCBjaGFyIGludF9hZGRyWzJdID0geyAwLCBYMTIwNV9SRUdfSU5UIH07CisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKKwlzdHJ1Y3QgaTJjX21zZyBtc2dzW10gPSB7CisJCXsgY2xpZW50LT5hZGRyLCAwLCAyLCBpbnRfYWRkciB9LCAgICAgICAgLyogc2V0dXAgcmVhZCBwdHIgKi8KKwkJeyBjbGllbnQtPmFkZHIsIEkyQ19NX1JELCAxLCAmaW50cmVnIH0sICAvKiByZWFkIElOVCByZWdpc3RlciAqLworCX07CisKKwkvKiByZWFkIGludGVycnVwdCByZWdpc3RlciBhbmQgc3RhdHVzIHJlZ2lzdGVyICovCisJaWYgKGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2dzWzBdLCAyKSAhPSAyKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiJXM6IHJlYWQgZXJyb3JcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCWVyciA9IHgxMjA1X2dldF9zdGF0dXMoY2xpZW50LCAmc3RhdHVzKTsKKwlpZiAoZXJyID09IDApIHsKKwkJYWxybS0+cGVuZGluZyA9IChzdGF0dXMgJiBYMTIwNV9TUl9BTDApID8gMSA6IDA7CisJCWFscm0tPmVuYWJsZWQgPSAoaW50cmVnICYgWDEyMDVfSU5UX0FMMEUpID8gMSA6IDA7CisJCWVyciA9IHgxMjA1X2dldF9kYXRldGltZShjbGllbnQsICZhbHJtLT50aW1lLCBYMTIwNV9BTE0wX0JBU0UpOworCX0KKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IHgxMjA1X3J0Y19zZXRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKIHsKIAlyZXR1cm4geDEyMDVfc2V0X2RhdGV0aW1lKHRvX2kyY19jbGllbnQoZGV2KSwKLQkJJmFscm0tPnRpbWUsIDEsIFgxMjA1X0FMTTBfQkFTRSk7CisJCSZhbHJtLT50aW1lLCAxLCBYMTIwNV9BTE0wX0JBU0UsIGFscm0tPmVuYWJsZWQpOwogfQogCiBzdGF0aWMgaW50IHgxMjA1X3J0Y19yZWFkX3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQpAQCAtNDIyLDcgKzQ5Myw3IEBACiBzdGF0aWMgaW50IHgxMjA1X3J0Y19zZXRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCiB7CiAJcmV0dXJuIHgxMjA1X3NldF9kYXRldGltZSh0b19pMmNfY2xpZW50KGRldiksCi0JCXRtLCAxLCBYMTIwNV9DQ1JfQkFTRSk7CisJCXRtLCAxLCBYMTIwNV9DQ1JfQkFTRSwgMCk7CiB9CiAKIHN0YXRpYyBpbnQgeDEyMDVfcnRjX3Byb2Moc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZC5jCmluZGV4IDFhNDAyNTYuLjFiNmM1MmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2QuYwpAQCAtOTk1LDE0ICs5OTUsMTQgQEAKIAlub3cgPSBnZXRfY2xvY2soKTsKIAogCURCRl9FVkVOVChEQkZfRVJSLCAiSW50ZXJydXB0OiBidXNfaWQgJXMgQ1MvRFMgJTA0eCBpcCAlMDh4IiwKLQkJICBjZGV2LT5kZXYuYnVzX2lkLCAoKGlyYi0+c2Nzdy5jc3RhdDw8OCl8aXJiLT5zY3N3LmRzdGF0KSwKLQkJICAodW5zaWduZWQgaW50KSBpbnRwYXJtKTsKKwkJICBjZGV2LT5kZXYuYnVzX2lkLCAoKGlyYi0+c2Nzdy5jbWQuY3N0YXQgPDwgOCkgfAorCQkgIGlyYi0+c2Nzdy5jbWQuZHN0YXQpLCAodW5zaWduZWQgaW50KSBpbnRwYXJtKTsKIAogCS8qIGNoZWNrIGZvciB1bnNvbGljaXRlZCBpbnRlcnJ1cHRzICovCiAJY3FyID0gKHN0cnVjdCBkYXNkX2Njd19yZXEgKikgaW50cGFybTsKLQlpZiAoIWNxciB8fCAoKGlyYi0+c2Nzdy5jYyA9PSAxKSAmJgotCQkgICAgIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJgotCQkgICAgIChpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkgKSB7CisJaWYgKCFjcXIgfHwgKChpcmItPnNjc3cuY21kLmNjID09IDEpICYmCisJCSAgICAgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJgorCQkgICAgIChpcmItPnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSB7CiAJCWlmIChjcXIgJiYgY3FyLT5zdGF0dXMgPT0gREFTRF9DUVJfSU5fSU8pCiAJCQljcXItPnN0YXR1cyA9IERBU0RfQ1FSX1FVRVVFRDsKIAkJZGV2aWNlID0gZGFzZF9kZXZpY2VfZnJvbV9jZGV2X2xvY2tlZChjZGV2KTsKQEAgLTEwMjUsNyArMTAyNSw3IEBACiAKIAkvKiBDaGVjayBmb3IgY2xlYXIgcGVuZGluZyAqLwogCWlmIChjcXItPnN0YXR1cyA9PSBEQVNEX0NRUl9DTEVBUl9QRU5ESU5HICYmCi0JICAgIGlyYi0+c2Nzdy5mY3RsICYgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpIHsKKwkgICAgaXJiLT5zY3N3LmNtZC5mY3RsICYgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpIHsKIAkJY3FyLT5zdGF0dXMgPSBEQVNEX0NRUl9DTEVBUkVEOwogCQlkYXNkX2RldmljZV9jbGVhcl90aW1lcihkZXZpY2UpOwogCQl3YWtlX3VwKCZkYXNkX2ZsdXNoX3dxKTsKQEAgLTEwNDEsMTEgKzEwNDEsMTEgQEAKIAkJcmV0dXJuOwogCX0KIAlEQkZfREVWX0VWRU5UKERCRl9ERUJVRywgZGV2aWNlLCAiSW50OiBDUy9EUyAweCUwNHggZm9yIGNxciAlcCIsCi0JCSAgICAgICgoaXJiLT5zY3N3LmNzdGF0IDw8IDgpIHwgaXJiLT5zY3N3LmRzdGF0KSwgY3FyKTsKKwkJICAgICAgKChpcmItPnNjc3cuY21kLmNzdGF0IDw8IDgpIHwgaXJiLT5zY3N3LmNtZC5kc3RhdCksIGNxcik7CiAJbmV4dCA9IE5VTEw7CiAJZXhwaXJlcyA9IDA7Ci0JaWYgKGlyYi0+c2Nzdy5kc3RhdCA9PSAoREVWX1NUQVRfQ0hOX0VORCB8IERFVl9TVEFUX0RFVl9FTkQpICYmCi0JICAgIGlyYi0+c2Nzdy5jc3RhdCA9PSAwICYmICFpcmItPmVzdy5lc3cwLmVydy5jb25zKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gKERFVl9TVEFUX0NITl9FTkQgfCBERVZfU1RBVF9ERVZfRU5EKSAmJgorCSAgICBpcmItPnNjc3cuY21kLmNzdGF0ID09IDAgJiYgIWlyYi0+ZXN3LmVzdzAuZXJ3LmNvbnMpIHsKIAkJLyogcmVxdWVzdCB3YXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSAqLwogCQljcXItPnN0YXR1cyA9IERBU0RfQ1FSX1NVQ0NFU1M7CiAJCWNxci0+c3RvcGNsayA9IG5vdzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkXzM5OTBfZXJwLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF8zOTkwX2VycC5jCmluZGV4IGU2NzAwZGYuLjVjNmU2ZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkXzM5OTBfZXJwLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfMzk5MF9lcnAuYwpAQCAtMTU3Miw3ICsxNTcyLDcgQEAKIAogCS8qIGRldGVybWluZSB0aGUgYWRkcmVzcyBvZiB0aGUgQ0NXIHRvIGJlIHJlc3RhcnRlZCAqLwogCS8qIEltcHJlY2lzZSBlbmRpbmcgaXMgbm90IHNldCAtPiBhZGRyIGZyb20gSVJCLVNDU1cgKi8KLQljcGEgPSBkZWZhdWx0X2VycC0+cmVmZXJzLT5pcmIuc2Nzdy5jcGE7CisJY3BhID0gZGVmYXVsdF9lcnAtPnJlZmVycy0+aXJiLnNjc3cuY21kLmNwYTsKIAogCWlmIChjcGEgPT0gMCkgewogCkBAIC0xNzI1LDcgKzE3MjUsNyBAQAogCiAJLyogZGV0ZXJtaW5lIHRoZSBhZGRyZXNzIG9mIHRoZSBDQ1cgdG8gYmUgcmVzdGFydGVkICovCiAJLyogSW1wcmVjaXNlIGVuZGluZyBpcyBub3Qgc2V0IC0+IGFkZHIgZnJvbSBJUkItU0NTVyAqLwotCWNwYSA9IHByZXZpb3VzX2VycC0+aXJiLnNjc3cuY3BhOworCWNwYSA9IHByZXZpb3VzX2VycC0+aXJiLnNjc3cuY21kLmNwYTsKIAogCWlmIChjcGEgPT0gMCkgewogCkBAIC0yMTcxLDcgKzIxNzEsNyBAQAogewogCXN0cnVjdCBkYXNkX2RldmljZSAqZGV2aWNlID0gZXJwLT5zdGFydGRldjsKIAotCWlmIChlcnAtPnJlZmVycy0+aXJiLnNjc3cuY3N0YXQgJiAoU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEsKKwlpZiAoZXJwLT5yZWZlcnMtPmlyYi5zY3N3LmNtZC5jc3RhdCAmIChTQ0hOX1NUQVRfSU5URl9DVFJMX0NISwogCQkJCQkgICB8IFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEspKSB7CiAJCURFVl9NRVNTQUdFKEtFUk5fREVCVUcsIGRldmljZSwgIiVzIiwKIAkJCSAgICAiY2hhbm5lbCBvciBpbnRlcmZhY2UgY29udHJvbCBjaGVjayIpOwpAQCAtMjM1Miw5ICsyMzUyLDkgQEAKIAogCWlmICgoY3FyMS0+aXJiLmVzdy5lc3cwLmVydy5jb25zID09IDApICYmCiAJICAgIChjcXIyLT5pcmIuZXN3LmVzdzAuZXJ3LmNvbnMgPT0gMCkpCXsKLQkJaWYgKChjcXIxLT5pcmIuc2Nzdy5jc3RhdCAmIChTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CisJCWlmICgoY3FyMS0+aXJiLnNjc3cuY21kLmNzdGF0ICYgKFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLIHwKIAkJCQkJICAgICBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLKSkgPT0KLQkJICAgIChjcXIyLT5pcmIuc2Nzdy5jc3RhdCAmIChTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CisJCSAgICAoY3FyMi0+aXJiLnNjc3cuY21kLmNzdGF0ICYgKFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLIHwKIAkJCQkJICAgICBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLKSkpCiAJCQlyZXR1cm4gMTsgLyogbWF0Y2ggd2l0aCBpZmNjKi8KIAl9CkBAIC0yNjIyLDggKzI2MjIsOSBAQAogCX0KIAogCS8qIGRvdWJsZS1jaGVjayBpZiBjdXJyZW50IGVycC9jcXIgd2FzIHN1Y2Nlc3NmdWxsICovCi0JaWYgKChjcXItPmlyYi5zY3N3LmNzdGF0ID09IDB4MDApICYmCi0JICAgIChjcXItPmlyYi5zY3N3LmRzdGF0ID09IChERVZfU1RBVF9DSE5fRU5EfERFVl9TVEFUX0RFVl9FTkQpKSkgeworCWlmICgoY3FyLT5pcmIuc2Nzdy5jbWQuY3N0YXQgPT0gMHgwMCkgJiYKKwkgICAgKGNxci0+aXJiLnNjc3cuY21kLmRzdGF0ID09CisJICAgICAoREVWX1NUQVRfQ0hOX0VORCB8IERFVl9TVEFUX0RFVl9FTkQpKSkgewogCiAJCURFVl9NRVNTQUdFKEtFUk5fREVCVUcsIGRldmljZSwKIAkJCSAgICAiRVJQIGNhbGxlZCBmb3Igc3VjY2Vzc2Z1bCByZXF1ZXN0ICVwIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWNrZC5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWNrZC5jCmluZGV4IGEwZWRhZTAuLmUwYjc3MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vja2QuYworKysgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9lY2tkLmMKQEAgLTE0MDQsMTMgKzE0MDQsMTQgQEAKIAogCS8qIGZpcnN0IG9mIGFsbCBjaGVjayBmb3Igc3RhdGUgY2hhbmdlIHBlbmRpbmcgaW50ZXJydXB0ICovCiAJbWFzayA9IERFVl9TVEFUX0FUVEVOVElPTiB8IERFVl9TVEFUX0RFVl9FTkQgfCBERVZfU1RBVF9VTklUX0VYQ0VQOwotCWlmICgoaXJiLT5zY3N3LmRzdGF0ICYgbWFzaykgPT0gbWFzaykgeworCWlmICgoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIG1hc2spID09IG1hc2spIHsKIAkJZGFzZF9nZW5lcmljX2hhbmRsZV9zdGF0ZV9jaGFuZ2UoZGV2aWNlKTsKIAkJcmV0dXJuOwogCX0KIAogCS8qIHN1bW1hcnkgdW5pdCBjaGVjayAqLwotCWlmICgoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgJiYgaXJiLT5lY3dbN10gPT0gMHgwRCkgeworCWlmICgoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmCisJICAgIChpcmItPmVjd1s3XSA9PSAweDBEKSkgewogCQlkYXNkX2FsaWFzX2hhbmRsZV9zdW1tYXJ5X3VuaXRfY2hlY2soZGV2aWNlLCBpcmIpOwogCQlyZXR1cm47CiAJfQpAQCAtMjA2OCwxMSArMjA2OSwxMSBAQAogCQkgICAgICBkZXZpY2UtPmNkZXYtPmRldi5idXNfaWQpOwogCWxlbiArPSBzcHJpbnRmKHBhZ2UgKyBsZW4sIEtFUk5fRVJSIFBSSU5US19IRUFERVIKIAkJICAgICAgICIgaW4gcmVxOiAlcCBDUzogMHglMDJYIERTOiAweCUwMlhcbiIsIHJlcSwKLQkJICAgICAgIGlyYi0+c2Nzdy5jc3RhdCwgaXJiLT5zY3N3LmRzdGF0KTsKKwkJICAgICAgIGlyYi0+c2Nzdy5jbWQuY3N0YXQsIGlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogCWxlbiArPSBzcHJpbnRmKHBhZ2UgKyBsZW4sIEtFUk5fRVJSIFBSSU5US19IRUFERVIKIAkJICAgICAgICIgZGV2aWNlICVzOiBGYWlsaW5nIENDVzogJXBcbiIsCiAJCSAgICAgICBkZXZpY2UtPmNkZXYtPmRldi5idXNfaWQsCi0JCSAgICAgICAodm9pZCAqKSAoYWRkcl90KSBpcmItPnNjc3cuY3BhKTsKKwkJICAgICAgICh2b2lkICopIChhZGRyX3QpIGlyYi0+c2Nzdy5jbWQuY3BhKTsKIAlpZiAoaXJiLT5lc3cuZXN3MC5lcncuY29ucykgewogCQlmb3IgKHNsID0gMDsgc2wgPCA0OyBzbCsrKSB7CiAJCQlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCkBAIC0yMTIyLDcgKzIxMjMsOCBAQAogCQkvKiBzY3N3LT5jZGEgaXMgZWl0aGVyIHZhbGlkIG9yIHplcm8gICovCiAJCWxlbiA9IDA7CiAJCWZyb20gPSArK3RvOwotCQlmYWlsID0gKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNwYTsgLyogZmFpbGluZyBDQ1cgKi8KKwkJZmFpbCA9IChzdHJ1Y3QgY2N3MSAqKShhZGRyX3QpCisJCQkJaXJiLT5zY3N3LmNtZC5jcGE7IC8qIGZhaWxpbmcgQ0NXICovCiAJCWlmIChmcm9tIDwgIGZhaWwgLSAyKSB7CiAJCQlmcm9tID0gZmFpbCAtIDI7ICAgICAvKiB0aGVyZSBpcyBhIGdhcCAtIHByaW50IGhlYWRlciAqLwogCQkJbGVuICs9IHNwcmludGYocGFnZSwgS0VSTl9FUlIgUFJJTlRLX0hFQURFUiAiLi4uLi4uXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vlci5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWVyLmMKaW5kZXggNmU1M2FiNi4uMjlkYTQ0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWVyLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWVyLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vYXRvbWljLmg+CkBAIC01MjUsNiArNTI2LDcgQEAKIAllZXJiID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGVlcmJ1ZmZlciksIEdGUF9LRVJORUwpOwogCWlmICghZWVyYikKIAkJcmV0dXJuIC1FTk9NRU07CisJbG9ja19rZXJuZWwoKTsKIAllZXJiLT5idWZmZXJfcGFnZV9jb3VudCA9IGVlcl9wYWdlczsKIAlpZiAoZWVyYi0+YnVmZmVyX3BhZ2VfY291bnQgPCAxIHx8CiAJICAgIGVlcmItPmJ1ZmZlcl9wYWdlX2NvdW50ID4gSU5UX01BWCAvIFBBR0VfU0laRSkgewpAQCAtNTMyLDYgKzUzNCw3IEBACiAJCU1FU1NBR0UoS0VSTl9XQVJOSU5HLCAiY2FuJ3Qgb3BlbiBkZXZpY2Ugc2luY2UgbW9kdWxlICIKIAkJCSJwYXJhbWV0ZXIgZWVyX3BhZ2VzIGlzIHNtYWxsZXIgdGhlbiAxIG9yIgogCQkJIiBiaWdnZXIgdGhlbiAlZCIsIChpbnQpKElOVF9NQVggLyBQQUdFX1NJWkUpKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJZWVyYi0+YnVmZmVyc2l6ZSA9IGVlcmItPmJ1ZmZlcl9wYWdlX2NvdW50ICogUEFHRV9TSVpFOwpAQCAtNTM5LDEyICs1NDIsMTQgQEAKIAkJCSAgICAgICBHRlBfS0VSTkVMKTsKICAgICAgICAgaWYgKCFlZXJiLT5idWZmZXIpIHsKIAkJa2ZyZWUoZWVyYik7CisJCXVubG9ja19rZXJuZWwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKIAl9CiAJaWYgKGRhc2RfZWVyX2FsbG9jYXRlX2J1ZmZlcl9wYWdlcyhlZXJiLT5idWZmZXIsCiAJCQkJCSAgIGVlcmItPmJ1ZmZlcl9wYWdlX2NvdW50KSkgewogCQlrZnJlZShlZXJiLT5idWZmZXIpOwogCQlrZnJlZShlZXJiKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gZWVyYjsKQEAgLTU1Miw2ICs1NTcsNyBAQAogCWxpc3RfYWRkKCZlZXJiLT5saXN0LCAmYnVmZmVybGlzdCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYnVmZmVybG9jaywgZmxhZ3MpOwogCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlucCxmaWxwKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZmJhLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9mYmEuYwppbmRleCAxMTY2MTE1Li5hZWU0NjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9mYmEuYworKysgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9mYmEuYwpAQCAtMjIyLDcgKzIyMiw3IEBACiAKIAkvKiBmaXJzdCBvZiBhbGwgY2hlY2sgZm9yIHN0YXRlIGNoYW5nZSBwZW5kaW5nIGludGVycnVwdCAqLwogCW1hc2sgPSBERVZfU1RBVF9BVFRFTlRJT04gfCBERVZfU1RBVF9ERVZfRU5EIHwgREVWX1NUQVRfVU5JVF9FWENFUDsKLQlpZiAoKGlyYi0+c2Nzdy5kc3RhdCAmIG1hc2spID09IG1hc2spIHsKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBtYXNrKSA9PSBtYXNrKSB7CiAJCWRhc2RfZ2VuZXJpY19oYW5kbGVfc3RhdGVfY2hhbmdlKGRldmljZSk7CiAJCXJldHVybjsKIAl9CkBAIC00NDksMTEgKzQ0OSwxMSBAQAogCQkgICAgICBkZXZpY2UtPmNkZXYtPmRldi5idXNfaWQpOwogCWxlbiArPSBzcHJpbnRmKHBhZ2UgKyBsZW4sIEtFUk5fRVJSIFBSSU5US19IRUFERVIKIAkJICAgICAgICIgaW4gcmVxOiAlcCBDUzogMHglMDJYIERTOiAweCUwMlhcbiIsIHJlcSwKLQkJICAgICAgIGlyYi0+c2Nzdy5jc3RhdCwgaXJiLT5zY3N3LmRzdGF0KTsKKwkJICAgICAgIGlyYi0+c2Nzdy5jbWQuY3N0YXQsIGlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogCWxlbiArPSBzcHJpbnRmKHBhZ2UgKyBsZW4sIEtFUk5fRVJSIFBSSU5US19IRUFERVIKIAkJICAgICAgICIgZGV2aWNlICVzOiBGYWlsaW5nIENDVzogJXBcbiIsCiAJCSAgICAgICBkZXZpY2UtPmNkZXYtPmRldi5idXNfaWQsCi0JCSAgICAgICAodm9pZCAqKSAoYWRkcl90KSBpcmItPnNjc3cuY3BhKTsKKwkJICAgICAgICh2b2lkICopIChhZGRyX3QpIGlyYi0+c2Nzdy5jbWQuY3BhKTsKIAlpZiAoaXJiLT5lc3cuZXN3MC5lcncuY29ucykgewogCQlmb3IgKHNsID0gMDsgc2wgPCA0OyBzbCsrKSB7CiAJCQlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCkBAIC00OTgsMTEgKzQ5OCwxMSBAQAogCiAJLyogcHJpbnQgZmFpbGluZyBDQ1cgYXJlYSAqLwogCWxlbiA9IDA7Ci0JaWYgKGFjdCA8ICAoKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNwYSkgLSAyKSB7Ci0JCWFjdCA9ICgoc3RydWN0IGNjdzEgKikoYWRkcl90KSBpcmItPnNjc3cuY3BhKSAtIDI7CisJaWYgKGFjdCA8ICAoKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNtZC5jcGEpIC0gMikgeworCQlhY3QgPSAoKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNtZC5jcGEpIC0gMjsKIAkJbGVuICs9IHNwcmludGYocGFnZSArIGxlbiwgS0VSTl9FUlIgUFJJTlRLX0hFQURFUiAiLi4uLi4uXG4iKTsKIAl9Ci0JZW5kID0gbWluKChzdHJ1Y3QgY2N3MSAqKShhZGRyX3QpIGlyYi0+c2Nzdy5jcGEgKyAyLCBsYXN0KTsKKwllbmQgPSBtaW4oKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNtZC5jcGEgKyAyLCBsYXN0KTsKIAl3aGlsZSAoYWN0IDw9IGVuZCkgewogCQlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCiAJCQkgICAgICAgIiBDQ1cgJXA6ICUwOFggJTA4WCBEQVQ6IiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kY3NzYmxrLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGNzc2Jsay5jCmluZGV4IGJiNTJkMmYuLjAxZmNkZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kY3NzYmxrLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rjc3NibGsuYwpAQCAtMTY3LDEwICsxNjcsOCBAQAogCXN0cnVjdCBkY3NzYmxrX2Rldl9pbmZvICpkZXZfaW5mbzsKIAlpbnQgcmM7CiAKLQlpZiAoKGNvdW50ID4gMSkgJiYgKGluYnVmWzFdICE9ICdcbicpICYmIChpbmJ1ZlsxXSAhPSAnXDAnKSkgewotCQlQUklOVF9XQVJOKCJJbnZhbGlkIHZhbHVlLCBtdXN0IGJlIDAgb3IgMVxuIik7CisJaWYgKChjb3VudCA+IDEpICYmIChpbmJ1ZlsxXSAhPSAnXG4nKSAmJiAoaW5idWZbMV0gIT0gJ1wwJykpCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAlkb3duX3dyaXRlKCZkY3NzYmxrX2RldmljZXNfc2VtKTsKIAlkZXZfaW5mbyA9IGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBkY3NzYmxrX2Rldl9pbmZvLCBkZXYpOwogCWlmIChhdG9taWNfcmVhZCgmZGV2X2luZm8tPnVzZV9jb3VudCkpIHsKQEAgLTIxNSw3ICsyMTMsNiBAQAogCQkJc2V0X2Rpc2tfcm8oZGV2X2luZm8tPmdkLCAwKTsKIAkJfQogCX0gZWxzZSB7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgdmFsdWUsIG11c3QgYmUgMCBvciAxXG4iKTsKIAkJcmMgPSAtRUlOVkFMOwogCQlnb3RvIG91dDsKIAl9CkBAIC0yNTgsMTAgKzI1NSw4IEBACiB7CiAJc3RydWN0IGRjc3NibGtfZGV2X2luZm8gKmRldl9pbmZvOwogCi0JaWYgKChjb3VudCA+IDEpICYmIChpbmJ1ZlsxXSAhPSAnXG4nKSAmJiAoaW5idWZbMV0gIT0gJ1wwJykpIHsKLQkJUFJJTlRfV0FSTigiSW52YWxpZCB2YWx1ZSwgbXVzdCBiZSAwIG9yIDFcbiIpOworCWlmICgoY291bnQgPiAxKSAmJiAoaW5idWZbMV0gIT0gJ1xuJykgJiYgKGluYnVmWzFdICE9ICdcMCcpKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAJZGV2X2luZm8gPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgZGNzc2Jsa19kZXZfaW5mbywgZGV2KTsKIAogCWRvd25fd3JpdGUoJmRjc3NibGtfZGV2aWNlc19zZW0pOwpAQCAtMjg5LDcgKzI4NCw2IEBACiAJCX0KIAl9IGVsc2UgewogCQl1cF93cml0ZSgmZGNzc2Jsa19kZXZpY2VzX3NlbSk7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgdmFsdWUsIG11c3QgYmUgMCBvciAxXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXVwX3dyaXRlKCZkY3NzYmxrX2RldmljZXNfc2VtKTsKQEAgLTQ0MSw3ICs0MzUsNiBAQAogCWdvdG8gb3V0OwogCiB1bnJlZ2lzdGVyX2RldjoKLQlQUklOVF9FUlIoImRldmljZV9jcmVhdGVfZmlsZSgpIGZhaWxlZCFcbiIpOwogCWxpc3RfZGVsKCZkZXZfaW5mby0+bGgpOwogCWJsa19jbGVhbnVwX3F1ZXVlKGRldl9pbmZvLT5kY3NzYmxrX3F1ZXVlKTsKIAlkZXZfaW5mby0+Z2QtPnF1ZXVlID0gTlVMTDsKQEAgLTcwMiwxMCArNjk1LDggQEAKIHN0YXRpYyB2b2lkIF9fZXhpdAogZGNzc2Jsa19leGl0KHZvaWQpCiB7Ci0JUFJJTlRfREVCVUcoIkRDU1NCTE9DSyBFWElULi4uXG4iKTsKIAlzMzkwX3Jvb3RfZGV2X3VucmVnaXN0ZXIoZGNzc2Jsa19yb290X2Rldik7CiAJdW5yZWdpc3Rlcl9ibGtkZXYoZGNzc2Jsa19tYWpvciwgRENTU0JMS19OQU1FKTsKLQlQUklOVF9ERUJVRygiLi4uZmluaXNoZWQhXG4iKTsKIH0KIAogc3RhdGljIGludCBfX2luaXQKQEAgLTcxMywyNyArNzA0LDIxIEBACiB7CiAJaW50IHJjOwogCi0JUFJJTlRfREVCVUcoIkRDU1NCTE9DSyBJTklULi4uXG4iKTsKIAlkY3NzYmxrX3Jvb3RfZGV2ID0gczM5MF9yb290X2Rldl9yZWdpc3RlcigiZGNzc2JsayIpOwotCWlmIChJU19FUlIoZGNzc2Jsa19yb290X2RldikpIHsKLQkJUFJJTlRfRVJSKCJkZXZpY2VfcmVnaXN0ZXIoKSBmYWlsZWQhXG4iKTsKKwlpZiAoSVNfRVJSKGRjc3NibGtfcm9vdF9kZXYpKQogCQlyZXR1cm4gUFRSX0VSUihkY3NzYmxrX3Jvb3RfZGV2KTsKLQl9CiAJcmMgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoZGNzc2Jsa19yb290X2RldiwgJmRldl9hdHRyX2FkZCk7CiAJaWYgKHJjKSB7Ci0JCVBSSU5UX0VSUigiZGV2aWNlX2NyZWF0ZV9maWxlKGFkZCkgZmFpbGVkIVxuIik7CiAJCXMzOTBfcm9vdF9kZXZfdW5yZWdpc3RlcihkY3NzYmxrX3Jvb3RfZGV2KTsKIAkJcmV0dXJuIHJjOwogCX0KIAlyYyA9IGRldmljZV9jcmVhdGVfZmlsZShkY3NzYmxrX3Jvb3RfZGV2LCAmZGV2X2F0dHJfcmVtb3ZlKTsKIAlpZiAocmMpIHsKLQkJUFJJTlRfRVJSKCJkZXZpY2VfY3JlYXRlX2ZpbGUocmVtb3ZlKSBmYWlsZWQhXG4iKTsKIAkJczM5MF9yb290X2Rldl91bnJlZ2lzdGVyKGRjc3NibGtfcm9vdF9kZXYpOwogCQlyZXR1cm4gcmM7CiAJfQogCXJjID0gcmVnaXN0ZXJfYmxrZGV2KDAsIERDU1NCTEtfTkFNRSk7CiAJaWYgKHJjIDwgMCkgewotCQlQUklOVF9FUlIoIkNhbid0IGdldCBkeW5hbWljIG1ham9yIVxuIik7CiAJCXMzOTBfcm9vdF9kZXZfdW5yZWdpc3RlcihkY3NzYmxrX3Jvb3RfZGV2KTsKIAkJcmV0dXJuIHJjOwogCX0KQEAgLTc0Miw3ICs3MjcsNiBAQAogCiAJZGNzc2Jsa19jaGVja19wYXJhbXMoKTsKIAotCVBSSU5UX0RFQlVHKCIuLi5maW5pc2hlZCFcbiIpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvYmxvY2sveHByYW0uYyBiL2RyaXZlcnMvczM5MC9ibG9jay94cHJhbS5jCmluZGV4IGYyMzFiYzIuLmRkOWI5ODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay94cHJhbS5jCisrKyBiL2RyaXZlcnMvczM5MC9ibG9jay94cHJhbS5jCkBAIC0xMDAsMTUgKzEwMCwxMCBAQAogCQk6ICIrZCIgKGNjKSA6ICJhIiAoX19wYShwYWdlX2FkZHIpKSwgImQiICh4cGFnZV9pbmRleCkgOiAiY2MiKTsKIAlpZiAoY2MgPT0gMykKIAkJcmV0dXJuIC1FTlhJTzsKLQlpZiAoY2MgPT0gMikgewotCQlQUklOVF9FUlIoImV4cGFuZGVkIHN0b3JhZ2UgbG9zdCFcbiIpOworCWlmIChjYyA9PSAyKQogCQlyZXR1cm4gLUVOWElPOwotCX0KLQlpZiAoY2MgPT0gMSkgewotCQlQUklOVF9FUlIoInBhZ2UgaW4gZmFpbGVkIGZvciBwYWdlIGluZGV4ICV1LlxuIiwKLQkJCSAgeHBhZ2VfaW5kZXgpOworCWlmIChjYyA9PSAxKQogCQlyZXR1cm4gLUVJTzsKLQl9CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEzNSwxNSArMTMwLDEwIEBACiAJCTogIitkIiAoY2MpIDogImEiIChfX3BhKHBhZ2VfYWRkcikpLCAiZCIgKHhwYWdlX2luZGV4KSA6ICJjYyIpOwogCWlmIChjYyA9PSAzKQogCQlyZXR1cm4gLUVOWElPOwotCWlmIChjYyA9PSAyKSB7Ci0JCVBSSU5UX0VSUigiZXhwYW5kZWQgc3RvcmFnZSBsb3N0IVxuIik7CisJaWYgKGNjID09IDIpCiAJCXJldHVybiAtRU5YSU87Ci0JfQotCWlmIChjYyA9PSAxKSB7Ci0JCVBSSU5UX0VSUigicGFnZSBvdXQgZmFpbGVkIGZvciBwYWdlIGluZGV4ICV1LlxuIiwKLQkJCSAgeHBhZ2VfaW5kZXgpOworCWlmIChjYyA9PSAxKQogCQlyZXR1cm4gLUVJTzsKLQl9CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyMTUuYyBiL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyMTUuYwppbmRleCAzZTU2NTNjLi5kM2VjOWI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9jb24zMjE1LmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvY29uMzIxNS5jCkBAIC05Myw5ICs5Myw2IEBACiAJc3RydWN0IHJhdzMyMTVfcmVxICpxdWV1ZWRfd3JpdGU7LyogcG9pbnRlciB0byBxdWV1ZWQgd3JpdGUgcmVxdWVzdHMgKi8KIAl3YWl0X3F1ZXVlX2hlYWRfdCBlbXB0eV93YWl0OyAvKiB3YWl0IHF1ZXVlIGZvciBmbHVzaGluZyAqLwogCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOyAgICAgIC8qIHRpbWVyIGZvciBkZWxheWVkIG91dHB1dCAqLwotCWNoYXIgKm1lc3NhZ2U7CQkgICAgICAvKiBwZW5kaW5nIG1lc3NhZ2UgZnJvbSByYXczMjE1X2lycSAqLwotCWludCBtc2dfZHN0YXQ7CQkgICAgICAvKiBkc3RhdCBmb3IgcGVuZGluZyBtZXNzYWdlICovCi0JaW50IG1zZ19jc3RhdDsJCSAgICAgIC8qIGNzdGF0IGZvciBwZW5kaW5nIG1lc3NhZ2UgKi8KIAlpbnQgbGluZV9wb3M7CQkgICAgICAvKiBwb3NpdGlvbiBvbiB0aGUgbGluZSAoZm9yIHRhYnMpICovCiAJY2hhciB1YnVmZmVyWzgwXTsJICAgICAgLyogY29weV9mcm9tX3VzZXIgYnVmZmVyICovCiB9OwpAQCAtMzU5LDExICszNTYsNiBAQAogCXJhdzMyMTVfbWtfd3JpdGVfcmVxKHJhdyk7CiAJcmF3MzIxNV90cnlfaW8ocmF3KTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKGdldF9jY3dkZXZfbG9jayhyYXctPmNkZXYpLCBmbGFncyk7Ci0JLyogQ2hlY2sgZm9yIHBlbmRpbmcgbWVzc2FnZSBmcm9tIHJhdzMyMTVfaXJxICovCi0JaWYgKHJhdy0+bWVzc2FnZSAhPSBOVUxMKSB7Ci0JCXByaW50ayhyYXctPm1lc3NhZ2UsIHJhdy0+bXNnX2RzdGF0LCByYXctPm1zZ19jc3RhdCk7Ci0JCXJhdy0+bWVzc2FnZSA9IE5VTEw7Ci0JfQogCXR0eSA9IHJhdy0+dHR5OwogCWlmICh0dHkgIT0gTlVMTCAmJgogCSAgICBSQVczMjE1X0JVRkZFUl9TSVpFIC0gcmF3LT5jb3VudCA+PSBSQVczMjE1X01JTl9TUEFDRSkgewpAQCAtMzgxLDIwICszNzMsMTQgQEAKIAlzdHJ1Y3QgcmF3MzIxNV9yZXEgKnJlcTsKIAlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OwogCWludCBjc3RhdCwgZHN0YXQ7Ci0JaW50IGNvdW50LCBzbGVuOworCWludCBjb3VudDsKIAogCXJhdyA9IGNkZXYtPmRldi5kcml2ZXJfZGF0YTsKIAlyZXEgPSAoc3RydWN0IHJhdzMyMTVfcmVxICopIGludHBhcm07Ci0JY3N0YXQgPSBpcmItPnNjc3cuY3N0YXQ7Ci0JZHN0YXQgPSBpcmItPnNjc3cuZHN0YXQ7Ci0JaWYgKGNzdGF0ICE9IDApIHsKLQkJcmF3LT5tZXNzYWdlID0gS0VSTl9XQVJOSU5HCi0JCQkiR290IG5vbnplcm8gY2hhbm5lbCBzdGF0dXMgaW4gcmF3MzIxNV9pcnEgIgotCQkJIihkZXYgc3RzIDB4JTJ4LCBzY2ggc3RzIDB4JTJ4KSI7Ci0JCXJhdy0+bXNnX2RzdGF0ID0gZHN0YXQ7Ci0JCXJhdy0+bXNnX2NzdGF0ID0gY3N0YXQ7CisJY3N0YXQgPSBpcmItPnNjc3cuY21kLmNzdGF0OworCWRzdGF0ID0gaXJiLT5zY3N3LmNtZC5kc3RhdDsKKwlpZiAoY3N0YXQgIT0gMCkKIAkJdGFza2xldF9zY2hlZHVsZSgmcmF3LT50YXNrbGV0KTsKLQl9CiAJaWYgKGRzdGF0ICYgMHgwMSkgeyAvKiB3ZSBnb3QgYSB1bml0IGV4Y2VwdGlvbiAqLwogCQlkc3RhdCAmPSB+MHgwMTsJIC8qIHdlIGNhbiBpZ25vcmUgaXQgKi8KIAl9CkBAIC00MDQsOCArMzkwLDYgQEAKIAkJCWJyZWFrOwogCQkvKiBBdHRlbnRpb24gaW50ZXJydXB0LCBzb21lb25lIGhpdCB0aGUgZW50ZXIga2V5ICovCiAJCXJhdzMyMTVfbWtfcmVhZF9yZXEocmF3KTsKLQkJaWYgKE1BQ0hJTkVfSVNfUDM5MCkKLQkJCW1lbXNldChyYXctPmluYnVmLCAwLCBSQVczMjE1X0lOQlVGX1NJWkUpOwogCQl0YXNrbGV0X3NjaGVkdWxlKCZyYXctPnRhc2tsZXQpOwogCQlicmVhazsKIAljYXNlIDB4MDg6CkBAIC00MTUsNyArMzk5LDcgQEAKIAkJCXJldHVybjsJCSAgICAgLyogVGhhdCBzaG91bGRuJ3QgaGFwcGVuIC4uLiAqLwogCQlpZiAocmVxLT50eXBlID09IFJBVzMyMTVfUkVBRCkgewogCQkJLyogc3RvcmUgcmVzaWR1YWwgY291bnQsIHRoZW4gd2FpdCBmb3IgZGV2aWNlIGVuZCAqLwotCQkJcmVxLT5yZXNpZHVhbCA9IGlyYi0+c2Nzdy5jb3VudDsKKwkJCXJlcS0+cmVzaWR1YWwgPSBpcmItPnNjc3cuY21kLmNvdW50OwogCQl9CiAJCWlmIChkc3RhdCA9PSAweDA4KQogCQkJYnJlYWs7CkBAIC00MjgsMTEgKzQxMiw2IEBACiAKIAkJCXR0eSA9IHJhdy0+dHR5OwogCQkJY291bnQgPSAxNjAgLSByZXEtPnJlc2lkdWFsOwotCQkJaWYgKE1BQ0hJTkVfSVNfUDM5MCkgewotCQkJCXNsZW4gPSBzdHJubGVuKHJhdy0+aW5idWYsIFJBVzMyMTVfSU5CVUZfU0laRSk7Ci0JCQkJaWYgKGNvdW50ID4gc2xlbikKLQkJCQkJY291bnQgPSBzbGVuOwotCQkJfSBlbHNlCiAJCQlFQkNBU0MocmF3LT5pbmJ1ZiwgY291bnQpOwogCQkJY2NoYXIgPSBjdHJsY2hhcl9oYW5kbGUocmF3LT5pbmJ1ZiwgY291bnQsIHR0eSk7CiAJCQlzd2l0Y2ggKGNjaGFyICYgQ1RSTENIQVJfTUFTSykgewpAQCAtNDgxLDExICs0NjAsNiBAQAogCQkJcmF3LT5mbGFncyAmPSB+UkFXMzIxNV9XT1JLSU5HOwogCQkJcmF3MzIxNV9mcmVlX3JlcShyZXEpOwogCQl9Ci0JCXJhdy0+bWVzc2FnZSA9IEtFUk5fV0FSTklORwotCQkJIlNwdXJpb3VzIGludGVycnVwdCBpbiBpbiByYXczMjE1X2lycSAiCi0JCQkiKGRldiBzdHMgMHglMngsIHNjaCBzdHMgMHglMngpIjsKLQkJcmF3LT5tc2dfZHN0YXQgPSBkc3RhdDsKLQkJcmF3LT5tc2dfY3N0YXQgPSBjc3RhdDsKIAkJdGFza2xldF9zY2hlZHVsZSgmcmF3LT50YXNrbGV0KTsKIAl9CiAJcmV0dXJuOwpAQCAtODgzLDcgKzg1Nyw2IEBACiAJCWZyZWVfYm9vdG1lbSgodW5zaWduZWQgbG9uZykgcmF3LT5idWZmZXIsIFJBVzMyMTVfQlVGRkVSX1NJWkUpOwogCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHJhdywgc2l6ZW9mKHN0cnVjdCByYXczMjE1X2luZm8pKTsKIAkJcmF3MzIxNVswXSA9IE5VTEw7Ci0JCXByaW50aygiQ291bGRuJ3QgZmluZCBhIDMyMTUgY29uc29sZSBkZXZpY2VcbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAJcmVnaXN0ZXJfY29uc29sZSgmY29uMzIxNSk7CkBAIC0xMTU3LDcgKzExMzAsNiBAQAogCXR0eV9zZXRfb3BlcmF0aW9ucyhkcml2ZXIsICZ0dHkzMjE1X29wcyk7CiAJcmV0ID0gdHR5X3JlZ2lzdGVyX2RyaXZlcihkcml2ZXIpOwogCWlmIChyZXQpIHsKLQkJcHJpbnRrKCJDb3VsZG4ndCByZWdpc3RlciB0dHkzMjE1IGRyaXZlclxuIik7CiAJCXB1dF90dHlfZHJpdmVyKGRyaXZlcik7CiAJCXJldHVybiByZXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvY29uMzI3MC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvY29uMzI3MC5jCmluZGV4IDBiMDQwNTUuLjNjMDc5NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyNzAuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci9jb24zMjcwLmMKQEAgLTQxMSwxNSArNDExLDE1IEBACiBjb24zMjcwX2lycShzdHJ1Y3QgY29uMzI3MCAqY3AsIHN0cnVjdCByYXczMjcwX3JlcXVlc3QgKnJxLCBzdHJ1Y3QgaXJiICppcmIpCiB7CiAJLyogSGFuZGxlIEFUVE4uIFNjaGVkdWxlIHRhc2tsZXQgdG8gcmVhZCBhaWQuICovCi0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikKIAkJY29uMzI3MF9pc3N1ZV9yZWFkKGNwKTsKIAogCWlmIChycSkgewotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKQogCQkJcnEtPnJjID0gLUVJTzsKIAkJZWxzZQogCQkJLyogTm9ybWFsIGVuZC4gQ29weSByZXNpZHVhbCBjb3VudC4gKi8KLQkJCXJxLT5yZXNjbnQgPSBpcmItPnNjc3cuY291bnQ7CisJCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKIAl9CiAJcmV0dXJuIFJBVzMyNzBfSU9fRE9ORTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL2ZzMzI3MC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvZnMzMjcwLmMKaW5kZXggZWYzNmYyMTMuLmQxOGU2ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL2ZzMzI3MC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL2ZzMzI3MC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9jY3dkZXYuaD4KICNpbmNsdWRlIDxhc20vY2lvLmg+CkBAIC0yMTYsMTcgKzIxNywxNyBAQAogZnMzMjcwX2lycShzdHJ1Y3QgZnMzMjcwICpmcCwgc3RydWN0IHJhdzMyNzBfcmVxdWVzdCAqcnEsIHN0cnVjdCBpcmIgKmlyYikKIHsKIAkvKiBIYW5kbGUgQVRUTi4gU2V0IGluZGljYXRpb24gYW5kIHdha2Ugd2FpdGVycyBmb3IgYXR0ZW50aW9uLiAqLwotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgewogCQlmcC0+YXR0ZW50aW9uID0gMTsKIAkJd2FrZV91cCgmZnAtPndhaXQpOwogCX0KIAogCWlmIChycSkgewotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKQogCQkJcnEtPnJjID0gLUVJTzsKIAkJZWxzZQogCQkJLyogTm9ybWFsIGVuZC4gQ29weSByZXNpZHVhbCBjb3VudC4gKi8KLQkJCXJxLT5yZXNjbnQgPSBpcmItPnNjc3cuY291bnQ7CisJCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKIAl9CiAJcmV0dXJuIFJBVzMyNzBfSU9fRE9ORTsKIH0KQEAgLTQyMSw2ICs0MjIsNyBAQAogCiAJaWYgKGltYWpvcihmaWxwLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKSAhPSBJQk1fRlMzMjcwX01BSk9SKQogCQlyZXR1cm4gLUVOT0RFVjsKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gaW1pbm9yKGZpbHAtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpOwogCS8qIENoZWNrIGZvciBtaW5vciAwIG11bHRpcGxleGVyLiAqLwogCWlmIChtaW5vciA9PSAwKSB7CkBAIC00MjksNyArNDMxLDggQEAKIAkJdHR5ID0gZ2V0X2N1cnJlbnRfdHR5KCk7CiAJCWlmICghdHR5IHx8IHR0eS0+ZHJpdmVyLT5tYWpvciAhPSBJQk1fVFRZMzI3MF9NQUpPUikgewogCQkJbXV0ZXhfdW5sb2NrKCZ0dHlfbXV0ZXgpOwotCQkJcmV0dXJuIC1FTk9ERVY7CisJCQlyYyA9IC1FTk9ERVY7CisJCQlnb3RvIG91dDsKIAkJfQogCQltaW5vciA9IHR0eS0+aW5kZXggKyBSQVczMjcwX0ZJUlNUTUlOT1I7CiAJCW11dGV4X3VubG9jaygmdHR5X211dGV4KTsKQEAgLTQzOCwxOSArNDQxLDIyIEBACiAJZnAgPSAoc3RydWN0IGZzMzI3MCAqKSByYXczMjcwX2ZpbmRfdmlldygmZnMzMjcwX2ZuLCBtaW5vcik7CiAJaWYgKCFJU19FUlIoZnApKSB7CiAJCXJhdzMyNzBfcHV0X3ZpZXcoJmZwLT52aWV3KTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJcmMgPSAtRUJVU1k7CisJCWdvdG8gb3V0OwogCX0KIAkvKiBBbGxvY2F0ZSBmdWxsc2NyZWVuIHZpZXcgc3RydWN0dXJlLiAqLwogCWZwID0gZnMzMjcwX2FsbG9jX3ZpZXcoKTsKLQlpZiAoSVNfRVJSKGZwKSkKLQkJcmV0dXJuIFBUUl9FUlIoZnApOworCWlmIChJU19FUlIoZnApKSB7CisJCXJjID0gUFRSX0VSUihmcCk7CisJCWdvdG8gb3V0OworCX0KIAogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmZwLT53YWl0KTsKIAlmcC0+ZnNfcGlkID0gZ2V0X3BpZCh0YXNrX3BpZChjdXJyZW50KSk7CiAJcmMgPSByYXczMjcwX2FkZF92aWV3KCZmcC0+dmlldywgJmZzMzI3MF9mbiwgbWlub3IpOwogCWlmIChyYykgewogCQlmczMyNzBfZnJlZV92aWV3KCZmcC0+dmlldyk7Ci0JCXJldHVybiByYzsKKwkJZ290byBvdXQ7CiAJfQogCiAJLyogQWxsb2NhdGUgaWRhbC1idWZmZXIuICovCkBAIC00NTgsNyArNDY0LDggQEAKIAlpZiAoSVNfRVJSKGliKSkgewogCQlyYXczMjcwX3B1dF92aWV3KCZmcC0+dmlldyk7CiAJCXJhdzMyNzBfZGVsX3ZpZXcoJmZwLT52aWV3KTsKLQkJcmV0dXJuIFBUUl9FUlIoZnApOworCQlyYyA9IFBUUl9FUlIoZnApOworCQlnb3RvIG91dDsKIAl9CiAJZnAtPnJkYnVmID0gaWI7CiAKQEAgLTQ2Niw5ICs0NzMsMTEgQEAKIAlpZiAocmMpIHsKIAkJcmF3MzI3MF9wdXRfdmlldygmZnAtPnZpZXcpOwogCQlyYXczMjcwX2RlbF92aWV3KCZmcC0+dmlldyk7Ci0JCXJldHVybiByYzsKKwkJZ290byBvdXQ7CiAJfQogCWZpbHAtPnByaXZhdGVfZGF0YSA9IGZwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTEyLDExICs1MjEsOCBAQAogCWludCByYzsKIAogCXJjID0gcmVnaXN0ZXJfY2hyZGV2KElCTV9GUzMyNzBfTUFKT1IsICJmczMyNzAiLCAmZnMzMjcwX2ZvcHMpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgImZzMzI3MCBjYW4ndCBnZXQgbWFqb3IgbnVtYmVyICVkOiBlcnJubyAlZFxuIiwKLQkJICAgICAgIElCTV9GUzMyNzBfTUFKT1IsIHJjKTsKKwlpZiAocmMpCiAJCXJldHVybiByYzsKLQl9CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL21vbnJlYWRlci5jIGIvZHJpdmVycy9zMzkwL2NoYXIvbW9ucmVhZGVyLmMKaW5kZXggMWUxZjUwNi4uMzVmZDhkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvbW9ucmVhZGVyLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvbW9ucmVhZGVyLmMKQEAgLTMsMTQgKzMsMTQgQEAKICAqCiAgKiBDaGFyYWN0ZXIgZGV2aWNlIGRyaXZlciBmb3IgcmVhZGluZyB6L1ZNICpNT05JVE9SIHNlcnZpY2UgcmVjb3Jkcy4KICAqCi0gKiBDb3B5cmlnaHQgMjAwNCBJQk0gQ29ycG9yYXRpb24sIElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILgotICoKLSAqIEF1dGhvcjogR2VyYWxkIFNjaGFlZmVyIDxnZXJhbGRzY0BkZS5pYm0uY29tPgorICogICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDQsIDIwMDgKKyAqICAgQXV0aG9yOiBHZXJhbGQgU2NoYWVmZXIgPGdlcmFsZC5zY2hhZWZlckBkZS5pYm0uY29tPgogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KQEAgLTE4LDEyICsxOCwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CisjaW5jbHVkZSA8bmV0L2l1Y3YvaXVjdi5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2ViY2RpYy5oPgogI2luY2x1ZGUgPGFzbS9leHRtZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9wb2xsLmg+Ci0jaW5jbHVkZSA8bmV0L2l1Y3YvaXVjdi5oPgotCiAKIC8vI2RlZmluZSBNT05fREVCVUcJCQkvKiBEZWJ1ZyBtZXNzYWdlcyBvbi9vZmYgKi8KIApAQCAtMTUyLDEwICsxNTEsNyBAQAogCSAgICAobW9uX21jYV9lbmQobW9ubXNnKSA+IG1vbl9kY3NzX2VuZCkgfHwKIAkgICAgKG1vbl9tY2Ffc3RhcnQobW9ubXNnKSA8IG1vbl9kY3NzX3N0YXJ0KSB8fAogCSAgICAoKG1vbl9tY2FfdHlwZShtb25tc2csIDEpID09IDApICYmIChtb25fbWNhX3R5cGUobW9ubXNnLCAyKSA9PSAwKSkpCi0JewotCQlQX0RFQlVHKCJSRUFELCBJR05PUkVEIElOVkFMSUQgTUNBXG5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE2NCwxMCArMTYwLDYgQEAKIHsKIAlpbnQgcmM7CiAKLQlQX0RFQlVHKCJyZWFkLCBSRVBMWTogcGF0aGlkID0gMHglMDRYLCBtc2dpZCA9IDB4JTA4WCwgdHJnY2xzID0gIgotCQkiMHglMDhYXG5cbiIsCi0JCW1vbnByaXYtPnBhdGgtPnBhdGhpZCwgbW9ubXNnLT5tc2cuaWQsIG1vbm1zZy0+bXNnLmNsYXNzKTsKLQogCXJjID0gaXVjdl9tZXNzYWdlX3JlcGx5KG1vbnByaXYtPnBhdGgsICZtb25tc2ctPm1zZywKIAkJCQlJVUNWX0lQUk1EQVRBLCBOVUxMLCAwKTsKIAlhdG9taWNfZGVjKCZtb25wcml2LT5tc2dsaW1fY291bnQpOwpAQCAtMjAyLDE1ICsxOTQsMTIgQEAKIAlzdHJ1Y3QgbW9uX3ByaXZhdGUgKm1vbnByaXY7CiAKIAltb25wcml2ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1vbl9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtb25wcml2KSB7Ci0JCVBfRVJST1IoIm5vIG1lbW9yeSBmb3IgbW9ucHJpdlxuIik7CisJaWYgKCFtb25wcml2KQogCQlyZXR1cm4gTlVMTDsKLQl9CiAJZm9yIChpID0gMDsgaSA8IE1PTl9NU0dMSU07IGkrKykgewogCQltb25wcml2LT5tc2dfYXJyYXlbaV0gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbW9uX21zZyksCiAJCQkJCQkgICAgR0ZQX0tFUk5FTCk7CiAJCWlmICghbW9ucHJpdi0+bXNnX2FycmF5W2ldKSB7Ci0JCQlQX0VSUk9SKCJvcGVuLCBubyBtZW1vcnkgZm9yIG1zZ19hcnJheVxuIik7CiAJCQltb25fZnJlZV9tZW0obW9ucHJpdik7CiAJCQlyZXR1cm4gTlVMTDsKIAkJfQpAQCAtMjE4LDQxICsyMDcsMTAgQEAKIAlyZXR1cm4gbW9ucHJpdjsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIG1vbl9yZWFkX2RlYnVnKHN0cnVjdCBtb25fbXNnICptb25tc2csCi0JCQkJICBzdHJ1Y3QgbW9uX3ByaXZhdGUgKm1vbnByaXYpCi17Ci0jaWZkZWYgTU9OX0RFQlVHCi0JdTggbXNnX3R5cGVbMl0sIG1jYV90eXBlOwotCXVuc2lnbmVkIGxvbmcgcmVjb3Jkc19sZW47Ci0KLQlyZWNvcmRzX2xlbiA9IG1vbl9yZWNfZW5kKG1vbm1zZykgLSBtb25fcmVjX3N0YXJ0KG1vbm1zZykgKyAxOwotCi0JbWVtY3B5KG1zZ190eXBlLCAmbW9ubXNnLT5tc2cuY2xhc3MsIDIpOwotCUVCQ0FTQyhtc2dfdHlwZSwgMik7Ci0JbWNhX3R5cGUgPSBtb25fbWNhX3R5cGUobW9ubXNnLCAwKTsKLQlFQkNBU0MoJm1jYV90eXBlLCAxKTsKLQotCVBfREVCVUcoInJlYWQsIG1vbl9yZWFkX2luZGV4ID0gJWksIG1vbl93cml0ZV9pbmRleCA9ICVpXG4iLAotCQltb25wcml2LT5yZWFkX2luZGV4LCBtb25wcml2LT53cml0ZV9pbmRleCk7Ci0JUF9ERUJVRygicmVhZCwgcGF0aGlkID0gMHglMDRYLCBtc2dpZCA9IDB4JTA4WCwgdHJnY2xzID0gMHglMDhYXG4iLAotCQltb25wcml2LT5wYXRoLT5wYXRoaWQsIG1vbm1zZy0+bXNnLmlkLCBtb25tc2ctPm1zZy5jbGFzcyk7Ci0JUF9ERUJVRygicmVhZCwgbXNnX3R5cGUgPSAnJWMlYycsIG1jYV90eXBlID0gJyVjJyAvIDB4JVggLyAweCVYXG4iLAotCQltc2dfdHlwZVswXSwgbXNnX3R5cGVbMV0sIG1jYV90eXBlID8gbWNhX3R5cGUgOiAnWCcsCi0JCW1vbl9tY2FfdHlwZShtb25tc2csIDEpLCBtb25fbWNhX3R5cGUobW9ubXNnLCAyKSk7Ci0JUF9ERUJVRygicmVhZCwgTUNBOiBzdGFydCA9IDB4JWxYLCBlbmQgPSAweCVsWFxuIiwKLQkJbW9uX21jYV9zdGFydChtb25tc2cpLCBtb25fbWNhX2VuZChtb25tc2cpKTsKLQlQX0RFQlVHKCJyZWFkLCBSRUM6IHN0YXJ0ID0gMHglWCwgZW5kID0gMHglWCwgbGVuID0gJWx1XG5cbiIsCi0JCW1vbl9yZWNfc3RhcnQobW9ubXNnKSwgbW9uX3JlY19lbmQobW9ubXNnKSwgcmVjb3Jkc19sZW4pOwotCWlmIChtb25fbWNhX3NpemUobW9ubXNnKSA+IDEyKQotCQlQX0RFQlVHKCJSRUFELCBNT1JFIFRIQU4gT05FIE1DQVxuXG4iKTsKLSNlbmRpZgotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgbW9uX25leHRfbWNhKHN0cnVjdCBtb25fbXNnICptb25tc2cpCiB7CiAJaWYgKGxpa2VseSgobW9uX21jYV9zaXplKG1vbm1zZykgLSBtb25tc2ctPm1jYV9vZmZzZXQpID09IDEyKSkKIAkJcmV0dXJuOwotCVBfREVCVUcoIlJFQUQsIE5FWFQgTUNBXG5cbiIpOwogCW1vbm1zZy0+bWNhX29mZnNldCArPSAxMjsKIAltb25tc2ctPnBvcyA9IDA7CiB9CkBAIC0yNjksNyArMjI3LDYgQEAKIAkJbW9ubXNnLT5tc2dsaW1fcmVhY2hlZCA9IDA7CiAJCW1vbm1zZy0+cG9zID0gMDsKIAkJbW9ubXNnLT5tY2Ffb2Zmc2V0ID0gMDsKLQkJUF9XQVJOSU5HKCJyZWFkLCBtZXNzYWdlIGxpbWl0IHJlYWNoZWRcbiIpOwogCQltb25wcml2LT5yZWFkX2luZGV4ID0gKG1vbnByaXYtPnJlYWRfaW5kZXggKyAxKSAlCiAJCQkJICAgICAgTU9OX01TR0xJTTsKIAkJYXRvbWljX2RlYygmbW9ucHJpdi0+cmVhZF9yZWFkeSk7CkBAIC0yODYsMTAgKzI0Myw2IEBACiB7CiAJc3RydWN0IG1vbl9wcml2YXRlICptb25wcml2ID0gcGF0aC0+cHJpdmF0ZTsKIAotCVBfREVCVUcoIklVQ1YgY29ubmVjdGlvbiBjb21wbGV0ZWRcbiIpOwotCVBfREVCVUcoIklVQ1YgQUNDRVBUIChmcm9tICpNT05JVE9SKTogVmVyc2lvbiA9IDB4JTAyWCwgRXZlbnQgPSAiCi0JCSIweCUwMlgsIFNhbXBsZSA9IDB4JTAyWFxuIiwKLQkJaXB1c2VyWzBdLCBpcHVzZXJbMV0sIGlwdXNlclsyXSk7CiAJYXRvbWljX3NldCgmbW9ucHJpdi0+aXVjdl9jb25uZWN0ZWQsIDEpOwogCXdha2VfdXAoJm1vbl9jb25uX3dhaXRfcXVldWUpOwogfQpAQCAtMzEwLDcgKzI2Myw2IEBACiB7CiAJc3RydWN0IG1vbl9wcml2YXRlICptb25wcml2ID0gcGF0aC0+cHJpdmF0ZTsKIAotCVBfREVCVUcoIklVQ1YgbWVzc2FnZSBwZW5kaW5nXG4iKTsKIAltZW1jcHkoJm1vbnByaXYtPm1zZ19hcnJheVttb25wcml2LT53cml0ZV9pbmRleF0tPm1zZywKIAkgICAgICAgbXNnLCBzaXplb2YoKm1zZykpOwogCWlmIChhdG9taWNfaW5jX3JldHVybigmbW9ucHJpdi0+bXNnbGltX2NvdW50KSA9PSBNT05fTVNHTElNKSB7CkBAIC0zNDAsNiArMjkyLDcgQEAKIAkvKgogCSAqIG9ubHkgb25lIHVzZXIgYWxsb3dlZAogCSAqLworCWxvY2tfa2VybmVsKCk7CiAJcmMgPSAtRUJVU1k7CiAJaWYgKHRlc3RfYW5kX3NldF9iaXQoTU9OX0lOX1VTRSwgJm1vbl9pbl91c2UpKQogCQlnb3RvIG91dDsKQEAgLTM3NSw4ICszMjgsOCBAQAogCQlyYyA9IC1FSU87CiAJCWdvdG8gb3V0X3BhdGg7CiAJfQotCVBfSU5GTygib3BlbiwgZXN0YWJsaXNoZWQgY29ubmVjdGlvbiB0byAqTU9OSVRPUiBzZXJ2aWNlXG5cbiIpOwogCWZpbHAtPnByaXZhdGVfZGF0YSA9IG1vbnByaXY7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKIAogb3V0X3BhdGg6CkBAIC0zODYsNiArMzM5LDcgQEAKIG91dF91c2U6CiAJY2xlYXJfYml0KE1PTl9JTl9VU0UsICZtb25faW5fdXNlKTsKIG91dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC00MDAsOCArMzU0LDYgQEAKIAlyYyA9IGl1Y3ZfcGF0aF9zZXZlcihtb25wcml2LT5wYXRoLCB1c2VyX2RhdGFfc2V2ZXIpOwogCWlmIChyYykKIAkJUF9FUlJPUigiY2xvc2UsIGl1Y3Zfc2V2ZXIgZmFpbGVkIHdpdGggcmMgPSAlaVxuIiwgcmMpOwotCWVsc2UKLQkJUF9JTkZPKCJjbG9zZSwgdGVybWluYXRlZCBjb25uZWN0aW9uIHRvICpNT05JVE9SIHNlcnZpY2VcbiIpOwogCiAJYXRvbWljX3NldCgmbW9ucHJpdi0+aXVjdl9zZXZlcmVkLCAwKTsKIAlhdG9taWNfc2V0KCZtb25wcml2LT5pdWN2X2Nvbm5lY3RlZCwgMCk7CkBAIC00NDIsMTAgKzM5NCw4IEBACiAJCW1vbm1zZyA9IG1vbnByaXYtPm1zZ19hcnJheVttb25wcml2LT5yZWFkX2luZGV4XTsKIAl9CiAKLQlpZiAoIW1vbm1zZy0+cG9zKSB7CisJaWYgKCFtb25tc2ctPnBvcykKIAkJbW9ubXNnLT5wb3MgPSBtb25fbWNhX3N0YXJ0KG1vbm1zZykgKyBtb25tc2ctPm1jYV9vZmZzZXQ7Ci0JCW1vbl9yZWFkX2RlYnVnKG1vbm1zZywgbW9ucHJpdik7Ci0JfQogCWlmIChtb25fY2hlY2tfbWNhKG1vbm1zZykpCiAJCWdvdG8gcmVwbHk7CiAKQEAgLTUzMSw3ICs0ODEsNiBAQAogCQlQX0VSUk9SKCJmYWlsZWQgdG8gcmVnaXN0ZXIgd2l0aCBpdWN2IGRyaXZlclxuIik7CiAJCXJldHVybiByYzsKIAl9Ci0JUF9JTkZPKCJvcGVuLCByZWdpc3RlcmVkIHdpdGggSVVDVlxuIik7CiAKIAlyYyA9IHNlZ21lbnRfdHlwZShtb25fZGNzc19uYW1lKTsKIAlpZiAocmMgPCAwKSB7CkBAIC01NTUsMTMgKzUwNCw4IEBACiAJZGNzc19ta25hbWUobW9uX2Rjc3NfbmFtZSwgJnVzZXJfZGF0YV9jb25uZWN0WzhdKTsKIAogCXJjID0gbWlzY19yZWdpc3RlcigmbW9uX2Rldik7Ci0JaWYgKHJjIDwgMCApIHsKLQkJUF9FUlJPUigibWlzY19yZWdpc3RlciBmYWlsZWQsIHJjID0gJWlcbiIsIHJjKTsKKwlpZiAocmMgPCAwICkKIAkJZ290byBvdXQ7Ci0JfQotCVBfSU5GTygiTG9hZGVkIHNlZ21lbnQgJXMgZnJvbSAlcCB0byAlcCwgc2l6ZSA9ICVsdSBCeXRlXG4iLAotCQltb25fZGNzc19uYW1lLCAodm9pZCAqKSBtb25fZGNzc19zdGFydCwgKHZvaWQgKikgbW9uX2Rjc3NfZW5kLAotCQltb25fZGNzc19lbmQgLSBtb25fZGNzc19zdGFydCArIDEpOwogCXJldHVybiAwOwogCiBvdXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9tb253cml0ZXIuYyBiL2RyaXZlcnMvczM5MC9jaGFyL21vbndyaXRlci5jCmluZGV4IGE4NmMwNTMuLjRkNzFhYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL21vbndyaXRlci5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL21vbndyaXRlci5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgpAQCAtMTc5LDEwICsxODAsMTIgQEAKIAltb25wcml2ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1vbl9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtb25wcml2KQogCQlyZXR1cm4gLUVOT01FTTsKKwlsb2NrX2tlcm5lbCgpOwogCUlOSVRfTElTVF9IRUFEKCZtb25wcml2LT5saXN0KTsKIAltb25wcml2LT5oZHJfdG9fcmVhZCA9IHNpemVvZihtb25wcml2LT5oZHIpOwogCW11dGV4X2luaXQoJm1vbnByaXYtPnRocmVhZF9tdXRleCk7CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gbW9ucHJpdjsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9yYXczMjcwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9yYXczMjcwLmMKaW5kZXggODQ4ZWY3ZS4uODFhOTZlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvcmF3MzI3MC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3JhdzMyNzAuYwpAQCAtMTUzLDE5ICsxNTMsMTAgQEAKIAlzdHJ1Y3QgcmF3MzI3MF9yZXF1ZXN0ICpycTsKIAogCXJxID0gYWxsb2NfYm9vdG1lbV9sb3coc2l6ZW9mKHN0cnVjdCByYXczMjcwKSk7Ci0JaWYgKCFycSkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JbWVtc2V0KHJxLCAwLCBzaXplb2Yoc3RydWN0IHJhdzMyNzBfcmVxdWVzdCkpOwogCiAJLyogYWxsb2Mgb3V0cHV0IGJ1ZmZlci4gKi8KLQlpZiAoc2l6ZSA+IDApIHsKKwlpZiAoc2l6ZSA+IDApCiAJCXJxLT5idWZmZXIgPSBhbGxvY19ib290bWVtX2xvdyhzaXplKTsKLQkJaWYgKCFycS0+YnVmZmVyKSB7Ci0JCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHJxLAotCQkJCSAgICAgc2l6ZW9mKHN0cnVjdCByYXczMjcwKSk7Ci0JCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQkJfQotCX0KIAlycS0+c2l6ZSA9IHNpemU7CiAJSU5JVF9MSVNUX0hFQUQoJnJxLT5saXN0KTsKIApAQCAtMzcyLDE3ICszNjMsMTcgQEAKIAogCWlmIChJU19FUlIoaXJiKSkKIAkJcmMgPSBSQVczMjcwX0lPX1JFVFJZOwotCWVsc2UgaWYgKGlyYi0+c2Nzdy5mY3RsICYgU0NTV19GQ1RMX0hBTFRfRlVOQykgeworCWVsc2UgaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9IQUxUX0ZVTkMpIHsKIAkJcnEtPnJjID0gLUVJTzsKIAkJcmMgPSBSQVczMjcwX0lPX0RPTkU7Ci0JfSBlbHNlIGlmIChpcmItPnNjc3cuZHN0YXQgPT0gIChERVZfU1RBVF9DSE5fRU5EIHwgREVWX1NUQVRfREVWX0VORCB8Ci0JCQkJCURFVl9TVEFUX1VOSVRfRVhDRVApKSB7CisJfSBlbHNlIGlmIChpcmItPnNjc3cuY21kLmRzdGF0ID09IChERVZfU1RBVF9DSE5fRU5EIHwgREVWX1NUQVRfREVWX0VORCB8CisJCQkJCSAgIERFVl9TVEFUX1VOSVRfRVhDRVApKSB7CiAJCS8qIEhhbmRsZSBDRS1ERS1VRSBhbmQgc3Vic2VxdWVudCBVREUgKi8KIAkJc2V0X2JpdChSQVczMjcwX0ZMQUdTX0JVU1ksICZycC0+ZmxhZ3MpOwogCQlyYyA9IFJBVzMyNzBfSU9fQlVTWTsKIAl9IGVsc2UgaWYgKHRlc3RfYml0KFJBVzMyNzBfRkxBR1NfQlVTWSwgJnJwLT5mbGFncykpIHsKIAkJLyogV2FpdCBmb3IgVURFIGlmIGJ1c3kgZmxhZyBpcyBzZXQuICovCi0JCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9ERVZfRU5EKSB7CisJCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgewogCQkJY2xlYXJfYml0KFJBVzMyNzBfRkxBR1NfQlVTWSwgJnJwLT5mbGFncyk7CiAJCQkvKiBHb3QgaXQsIG5vdyByZXRyeS4gKi8KIAkJCXJjID0gUkFXMzI3MF9JT19SRVRSWTsKQEAgLTQ5Nyw3ICs0ODgsNyBAQAogCSAqIFVuaXQtQ2hlY2sgUHJvY2Vzc2luZzoKIAkgKiBFeHBlY3QgQ29tbWFuZCBSZWplY3Qgb3IgSW50ZXJ2ZW50aW9uIFJlcXVpcmVkLgogCSAqLwotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CiAJCS8qIFJlcXVlc3QgZmluaXNoZWQgYWJub3JtYWxseS4gKi8KIAkJaWYgKGlyYi0+ZWN3WzBdICYgU05TMF9JTlRFUlZFTlRJT05fUkVRKSB7CiAJCQlzZXRfYml0KFJBVzMyNzBfRkxBR1NfQlVTWSwgJnZpZXctPmRldi0+ZmxhZ3MpOwpAQCAtNTA1LDE2ICs0OTYsMTYgQEAKIAkJfQogCX0KIAlpZiAocnEpIHsKLQkJaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spIHsKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CiAJCQlpZiAoaXJiLT5lY3dbMF0gJiBTTlMwX0NNRF9SRUpFQ1QpCiAJCQkJcnEtPnJjID0gLUVPUE5PVFNVUFA7CiAJCQllbHNlCiAJCQkJcnEtPnJjID0gLUVJTzsKIAkJfSBlbHNlCiAJCQkvKiBSZXF1ZXN0IGZpbmlzaGVkIG5vcm1hbGx5LiBDb3B5IHJlc2lkdWFsIGNvdW50LiAqLwotCQkJcnEtPnJlc2NudCA9IGlyYi0+c2Nzdy5jb3VudDsKKwkJCXJxLT5yZXNjbnQgPSBpcmItPnNjc3cuY21kLmNvdW50OwogCX0KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKIAkJc2V0X2JpdChSQVczMjcwX0ZMQUdTX0FUVE4sICZ2aWV3LT5kZXYtPmZsYWdzKTsKIAkJd2FrZV91cCgmcmF3MzI3MF93YWl0X3F1ZXVlKTsKIAl9CkBAIC02MTksNyArNjEwLDYgQEAKIAkJcnAtPmNvbHMgPSAxMzI7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgInZyZGNjcm1kIGlzIDB4JS44eFxuIiwgbW9kZWwpOwogCQlyYyA9IC1FT1BOT1RTVVBQOwogCQlicmVhazsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwLmMKaW5kZXggMmM3YTFlZS4uM2M4YjI1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHAuYwpAQCAtNTA2LDYgKzUwNiw4IEBACiAJaWYgKHNjYnVmLT52YWxpZGl0eV9zY2xwX3NlbmRfbWFzaykKIAkJc2NscF9zZW5kX21hc2sgPSBzY2J1Zi0+c2NscF9zZW5kX21hc2s7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NscF9sb2NrLCBmbGFncyk7CisJaWYgKHNjYnVmLT52YWxpZGl0eV9zY2xwX2FjdGl2ZV9mYWNpbGl0eV9tYXNrKQorCQlzY2xwX2ZhY2lsaXRpZXMgPSBzY2J1Zi0+c2NscF9hY3RpdmVfZmFjaWxpdHlfbWFzazsKIAlzY2xwX2Rpc3BhdGNoX3N0YXRlX2NoYW5nZSgpOwogfQogCkBAIC03ODIsMTEgKzc4NCw5IEBACiAJLyogSXMgdGhpcyB0aGUgaW50ZXJydXB0IHdlIGFyZSB3YWl0aW5nIGZvcj8gKi8KIAlpZiAoZmluaXNoZWRfc2NjYiA9PSAwKQogCQlyZXR1cm47Ci0JaWYgKGZpbmlzaGVkX3NjY2IgIT0gKHUzMikgKGFkZHJfdCkgc2NscF9pbml0X3NjY2IpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyBTQ0xQX0hFQURFUiAidW5zb2xpY2l0ZWQgaW50ZXJydXB0ICIKLQkJICAgICAgICJmb3IgYnVmZmVyIGF0IDB4JXhcbiIsIGZpbmlzaGVkX3NjY2IpOwotCQlyZXR1cm47Ci0JfQorCWlmIChmaW5pc2hlZF9zY2NiICE9ICh1MzIpIChhZGRyX3QpIHNjbHBfaW5pdF9zY2NiKQorCQlwYW5pYygic2NscDogdW5zb2xpY2l0ZWQgaW50ZXJydXB0IGZvciBidWZmZXIgYXQgMHgleFxuIiwKKwkJICAgICAgZmluaXNoZWRfc2NjYik7CiAJc3Bpbl9sb2NrKCZzY2xwX2xvY2spOwogCWlmIChzY2xwX3J1bm5pbmdfc3RhdGUgPT0gc2NscF9ydW5uaW5nX3N0YXRlX3J1bm5pbmcpIHsKIAkJc2NscF9pbml0X3JlcS5zdGF0dXMgPSBTQ0xQX1JFUV9ET05FOwpAQCAtODgzLDggKzg4Myw2IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcmM7CiAKLQlpZiAoIU1BQ0hJTkVfSEFTX1NDTFApCi0JCXJldHVybiAtRU5PREVWOwogCXNwaW5fbG9ja19pcnFzYXZlKCZzY2xwX2xvY2ssIGZsYWdzKTsKIAkvKiBDaGVjayBmb3IgcHJldmlvdXMgb3IgcnVubmluZyBpbml0aWFsaXphdGlvbiAqLwogCWlmIChzY2xwX2luaXRfc3RhdGUgIT0gc2NscF9pbml0X3N0YXRlX3VuaW5pdGlhbGl6ZWQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY21kLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2NtZC5jCmluZGV4IGI1YzIzMzkuLjBjMmI3NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY21kLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jbWQuYwpAQCAtMTEsNiArMTEsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvbW16b25lLmg+CisjaW5jbHVkZSA8bGludXgvbWVtb3J5Lmg+CiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+CiAjaW5jbHVkZSA8YXNtL3NjbHAuaD4KICNpbmNsdWRlICJzY2xwLmgiCkBAIC00Myw2ICs0Niw4IEBACiAKIHU2NCBzY2xwX2ZhY2lsaXRpZXM7CiBzdGF0aWMgdTggc2NscF9mYWM4NDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcnptOworc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBybm1heDsKIAogc3RhdGljIGludCBfX2luaXQgc2NscF9jbWRfc3luY19lYXJseShzY2xwX2NtZHdfdCBjbWQsIHZvaWQgKnNjY2IpCiB7CkBAIC02Miw3ICs2Nyw3IEBACiAJcmV0dXJuIHJjOwogfQogCi12b2lkIF9faW5pdCBzY2xwX3JlYWRfaW5mb19lYXJseSh2b2lkKQorc3RhdGljIHZvaWQgX19pbml0IHNjbHBfcmVhZF9pbmZvX2Vhcmx5KHZvaWQpCiB7CiAJaW50IHJjOwogCWludCBpOwpAQCAtOTIsMzQgKzk3LDMzIEBACiAKIHZvaWQgX19pbml0IHNjbHBfZmFjaWxpdGllc19kZXRlY3Qodm9pZCkKIHsKLQlpZiAoIWVhcmx5X3JlYWRfaW5mb19zY2NiX3ZhbGlkKQotCQlyZXR1cm47Ci0Jc2NscF9mYWNpbGl0aWVzID0gZWFybHlfcmVhZF9pbmZvX3NjY2IuZmFjaWxpdGllczsKLQlzY2xwX2ZhYzg0ID0gZWFybHlfcmVhZF9pbmZvX3NjY2IuZmFjODQ7Ci19Ci0KLXVuc2lnbmVkIGxvbmcgbG9uZyBfX2luaXQgc2NscF9tZW1vcnlfZGV0ZWN0KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIG1lbXNpemU7CiAJc3RydWN0IHJlYWRfaW5mb19zY2NiICpzY2NiOwogCisJc2NscF9yZWFkX2luZm9fZWFybHkoKTsKIAlpZiAoIWVhcmx5X3JlYWRfaW5mb19zY2NiX3ZhbGlkKQotCQlyZXR1cm4gMDsKKwkJcmV0dXJuOworCiAJc2NjYiA9ICZlYXJseV9yZWFkX2luZm9fc2NjYjsKLQlpZiAoc2NjYi0+cm5zaXplKQotCQltZW1zaXplID0gc2NjYi0+cm5zaXplIDw8IDIwOwotCWVsc2UKLQkJbWVtc2l6ZSA9IHNjY2ItPnJuc2l6ZTIgPDwgMjA7Ci0JaWYgKHNjY2ItPnJubWF4KQotCQltZW1zaXplICo9IHNjY2ItPnJubWF4OwotCWVsc2UKLQkJbWVtc2l6ZSAqPSBzY2NiLT5ybm1heDI7Ci0JcmV0dXJuIG1lbXNpemU7CisJc2NscF9mYWNpbGl0aWVzID0gc2NjYi0+ZmFjaWxpdGllczsKKwlzY2xwX2ZhYzg0ID0gc2NjYi0+ZmFjODQ7CisJcm5tYXggPSBzY2NiLT5ybm1heCA/IHNjY2ItPnJubWF4IDogc2NjYi0+cm5tYXgyOworCXJ6bSA9IHNjY2ItPnJuc2l6ZSA/IHNjY2ItPnJuc2l6ZSA6IHNjY2ItPnJuc2l6ZTI7CisJcnptIDw8PSAyMDsKK30KKwordW5zaWduZWQgbG9uZyBsb25nIHNjbHBfZ2V0X3JubWF4KHZvaWQpCit7CisJcmV0dXJuIHJubWF4OworfQorCit1bnNpZ25lZCBsb25nIGxvbmcgc2NscF9nZXRfcnptKHZvaWQpCit7CisJcmV0dXJuIHJ6bTsKIH0KIAogLyoKLSAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgc2NscF9tZW1vcnlfZGV0ZWN0KCksIHdoaWNoIGdldHMgY2FsbGVkCi0gKiBlYXJseSBmcm9tIGVhcmx5LmMgY29kZS4gVGhlcmVmb3JlIHRoZSBzY2NiIHNob3VsZCBoYXZlIHZhbGlkIGNvbnRlbnRzLgorICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBhZnRlciBzY2xwX2ZhY2lsaXRpZXNfZGV0ZWN0KCksIHdoaWNoIGdldHMKKyAqIGNhbGxlZCBmcm9tIGVhcmx5LmMgY29kZS4gVGhlcmVmb3JlIHRoZSBzY2NiIHNob3VsZCBoYXZlIHZhbGlkIGNvbnRlbnRzLgogICovCiB2b2lkIF9faW5pdCBzY2xwX2dldF9pcGxfaW5mbyhzdHJ1Y3Qgc2NscF9pcGxfaW5mbyAqaW5mbykKIHsKQEAgLTI3OCw2ICsyODIsMzA1IEBACiAJcmV0dXJuIGRvX2NwdV9jb25maWd1cmUoU0NMUF9DTURXX0RFQ09ORklHVVJFX0NQVSB8IGNwdSA8PCA4KTsKIH0KIAorI2lmZGVmIENPTkZJR19NRU1PUllfSE9UUExVRworCitzdGF0aWMgREVGSU5FX01VVEVYKHNjbHBfbWVtX211dGV4KTsKK3N0YXRpYyBMSVNUX0hFQUQoc2NscF9tZW1fbGlzdCk7CitzdGF0aWMgdTggc2NscF9tYXhfc3RvcmFnZV9pZDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHNjbHBfc3RvcmFnZV9pZHNbMjU2IC8gQklUU19QRVJfTE9OR107CisKK3N0cnVjdCBtZW1vcnlfaW5jcmVtZW50IHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisJdTE2IHJuOworCWludCBzdGFuZGJ5OworCWludCB1c2Vjb3VudDsKK307CisKK3N0cnVjdCBhc3NpZ25fc3RvcmFnZV9zY2NiIHsKKwlzdHJ1Y3Qgc2NjYl9oZWFkZXIgaGVhZGVyOworCXUxNiBybjsKK30gX19wYWNrZWQ7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcm4yYWRkcih1MTYgcm4pCit7CisJcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpIChybiAtIDEpICogcnptOworfQorCitzdGF0aWMgaW50IGRvX2Fzc2lnbl9zdG9yYWdlKHNjbHBfY21kd190IGNtZCwgdTE2IHJuKQoreworCXN0cnVjdCBhc3NpZ25fc3RvcmFnZV9zY2NiICpzY2NiOworCWludCByYzsKKworCXNjY2IgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NjYikKKwkJcmV0dXJuIC1FTk9NRU07CisJc2NjYi0+aGVhZGVyLmxlbmd0aCA9IFBBR0VfU0laRTsKKwlzY2NiLT5ybiA9IHJuOworCXJjID0gZG9fc3luY19yZXF1ZXN0KGNtZCwgc2NjYik7CisJaWYgKHJjKQorCQlnb3RvIG91dDsKKwlzd2l0Y2ggKHNjY2ItPmhlYWRlci5yZXNwb25zZV9jb2RlKSB7CisJY2FzZSAweDAwMjA6CisJY2FzZSAweDAxMjA6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJjID0gLUVJTzsKKwkJYnJlYWs7CisJfQorb3V0OgorCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZykgc2NjYik7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IHNjbHBfYXNzaWduX3N0b3JhZ2UodTE2IHJuKQoreworCXJldHVybiBkb19hc3NpZ25fc3RvcmFnZSgweDAwMGQwMDAxLCBybik7Cit9CisKK3N0YXRpYyBpbnQgc2NscF91bmFzc2lnbl9zdG9yYWdlKHUxNiBybikKK3sKKwlyZXR1cm4gZG9fYXNzaWduX3N0b3JhZ2UoMHgwMDBjMDAwMSwgcm4pOworfQorCitzdHJ1Y3QgYXR0YWNoX3N0b3JhZ2Vfc2NjYiB7CisJc3RydWN0IHNjY2JfaGVhZGVyIGhlYWRlcjsKKwl1MTYgOjE2OworCXUxNiBhc3NpZ25lZDsKKwl1MzIgOjMyOworCXUzMiBlbnRyaWVzWzBdOworfSBfX3BhY2tlZDsKKworc3RhdGljIGludCBzY2xwX2F0dGFjaF9zdG9yYWdlKHU4IGlkKQoreworCXN0cnVjdCBhdHRhY2hfc3RvcmFnZV9zY2NiICpzY2NiOworCWludCByYzsKKwlpbnQgaTsKKworCXNjY2IgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NjYikKKwkJcmV0dXJuIC1FTk9NRU07CisJc2NjYi0+aGVhZGVyLmxlbmd0aCA9IFBBR0VfU0laRTsKKwlyYyA9IGRvX3N5bmNfcmVxdWVzdCgweDAwMDgwMDAxIHwgaWQgPDwgOCwgc2NjYik7CisJaWYgKHJjKQorCQlnb3RvIG91dDsKKwlzd2l0Y2ggKHNjY2ItPmhlYWRlci5yZXNwb25zZV9jb2RlKSB7CisJY2FzZSAweDAwMjA6CisJCXNldF9iaXQoaWQsIHNjbHBfc3RvcmFnZV9pZHMpOworCQlmb3IgKGkgPSAwOyBpIDwgc2NjYi0+YXNzaWduZWQ7IGkrKykKKwkJCXNjbHBfdW5hc3NpZ25fc3RvcmFnZShzY2NiLT5lbnRyaWVzW2ldID4+IDE2KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmMgPSAtRUlPOworCQlicmVhazsKKwl9CitvdXQ6CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKSBzY2NiKTsKKwlyZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQgc2NscF9tZW1fY2hhbmdlX3N0YXRlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCQkgaW50IG9ubGluZSkKK3sKKwlzdHJ1Y3QgbWVtb3J5X2luY3JlbWVudCAqaW5jcjsKKwl1bnNpZ25lZCBsb25nIGxvbmcgaXN0YXJ0OworCWludCByYyA9IDA7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGluY3IsICZzY2xwX21lbV9saXN0LCBsaXN0KSB7CisJCWlzdGFydCA9IHJuMmFkZHIoaW5jci0+cm4pOworCQlpZiAoc3RhcnQgKyBzaXplIC0gMSA8IGlzdGFydCkKKwkJCWJyZWFrOworCQlpZiAoc3RhcnQgPiBpc3RhcnQgKyByem0gLSAxKQorCQkJY29udGludWU7CisJCWlmIChvbmxpbmUpIHsKKwkJCWlmIChpbmNyLT51c2Vjb3VudCsrKQorCQkJCWNvbnRpbnVlOworCQkJLyoKKwkJCSAqIERvbid0IGJyZWFrIHRoZSBsb29wIGlmIG9uZSBhc3NpZ24gZmFpbHMuIExvb3AgbWF5CisJCQkgKiBiZSB3YWxrZWQgYWdhaW4gb24gQ0FOQ0VMIGFuZCB3ZSBjYW4ndCBzYXZlCisJCQkgKiBpbmZvcm1hdGlvbiBpZiBzdGF0ZSBjaGFuZ2VkIGJlZm9yZSBvciBub3QuCisJCQkgKiBTbyBjb250aW51ZSBhbmQgaW5jcmVhc2UgdXNlY291bnQgZm9yIGFsbCBpbmNyZW1lbnRzLgorCQkJICovCisJCQlyYyB8PSBzY2xwX2Fzc2lnbl9zdG9yYWdlKGluY3ItPnJuKTsKKwkJfSBlbHNlIHsKKwkJCWlmICgtLWluY3ItPnVzZWNvdW50KQorCQkJCWNvbnRpbnVlOworCQkJc2NscF91bmFzc2lnbl9zdG9yYWdlKGluY3ItPnJuKTsKKwkJfQorCX0KKwlyZXR1cm4gcmMgPyAtRUlPIDogMDsKK30KKworc3RhdGljIGludCBzY2xwX21lbV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAorCQkJICAgICB1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplOworCXN0cnVjdCBtZW1vcnlfbm90aWZ5ICphcmc7CisJdW5zaWduZWQgY2hhciBpZDsKKwlpbnQgcmMgPSAwOworCisJYXJnID0gZGF0YTsKKwlzdGFydCA9IGFyZy0+c3RhcnRfcGZuIDw8IFBBR0VfU0hJRlQ7CisJc2l6ZSA9IGFyZy0+bnJfcGFnZXMgPDwgUEFHRV9TSElGVDsKKwltdXRleF9sb2NrKCZzY2xwX21lbV9tdXRleCk7CisJZm9yIChpZCA9IDA7IGlkIDw9IHNjbHBfbWF4X3N0b3JhZ2VfaWQ7IGlkKyspCisJCWlmICghdGVzdF9iaXQoaWQsIHNjbHBfc3RvcmFnZV9pZHMpKQorCQkJc2NscF9hdHRhY2hfc3RvcmFnZShpZCk7CisJc3dpdGNoIChhY3Rpb24pIHsKKwljYXNlIE1FTV9PTkxJTkU6CisJCWJyZWFrOworCWNhc2UgTUVNX0dPSU5HX09OTElORToKKwkJcmMgPSBzY2xwX21lbV9jaGFuZ2Vfc3RhdGUoc3RhcnQsIHNpemUsIDEpOworCQlicmVhazsKKwljYXNlIE1FTV9DQU5DRUxfT05MSU5FOgorCQlzY2xwX21lbV9jaGFuZ2Vfc3RhdGUoc3RhcnQsIHNpemUsIDApOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyYyA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KKwltdXRleF91bmxvY2soJnNjbHBfbWVtX211dGV4KTsKKwlyZXR1cm4gcmMgPyBOT1RJRllfQkFEIDogTk9USUZZX09LOworfQorCitzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHNjbHBfbWVtX25iID0geworCS5ub3RpZmllcl9jYWxsID0gc2NscF9tZW1fbm90aWZpZXIsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgYWRkX21lbW9yeV9tZXJnZWQodTE2IHJuKQoreworCXN0YXRpYyB1MTYgZmlyc3Rfcm4sIG51bTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQsIHNpemU7CisKKwlpZiAocm4gJiYgZmlyc3Rfcm4gJiYgKGZpcnN0X3JuICsgbnVtID09IHJuKSkgeworCQludW0rKzsKKwkJcmV0dXJuOworCX0KKwlpZiAoIWZpcnN0X3JuKQorCQlnb3RvIHNraXBfYWRkOworCXN0YXJ0ID0gcm4yYWRkcihmaXJzdF9ybik7CisJc2l6ZSA9ICh1bnNpZ25lZCBsb25nIGxvbmcgKSBudW0gKiByem07CisJaWYgKHN0YXJ0ID49IFZNRU1fTUFYX1BIWVMpCisJCWdvdG8gc2tpcF9hZGQ7CisJaWYgKHN0YXJ0ICsgc2l6ZSA+IFZNRU1fTUFYX1BIWVMpCisJCXNpemUgPSBWTUVNX01BWF9QSFlTIC0gc3RhcnQ7CisJYWRkX21lbW9yeSgwLCBzdGFydCwgc2l6ZSk7Citza2lwX2FkZDoKKwlmaXJzdF9ybiA9IHJuOworCW51bSA9IDE7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzY2xwX2FkZF9zdGFuZGJ5X21lbW9yeSh2b2lkKQoreworCXN0cnVjdCBtZW1vcnlfaW5jcmVtZW50ICppbmNyOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpbmNyLCAmc2NscF9tZW1fbGlzdCwgbGlzdCkKKwkJaWYgKGluY3ItPnN0YW5kYnkpCisJCQlhZGRfbWVtb3J5X21lcmdlZChpbmNyLT5ybik7CisJYWRkX21lbW9yeV9tZXJnZWQoMCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpbnNlcnRfaW5jcmVtZW50KHUxNiBybiwgaW50IHN0YW5kYnksIGludCBhc3NpZ25lZCkKK3sKKwlzdHJ1Y3QgbWVtb3J5X2luY3JlbWVudCAqaW5jciwgKm5ld19pbmNyOworCXN0cnVjdCBsaXN0X2hlYWQgKnByZXY7CisJdTE2IGxhc3Rfcm47CisKKwluZXdfaW5jciA9IGt6YWxsb2Moc2l6ZW9mKCpuZXdfaW5jciksIEdGUF9LRVJORUwpOworCWlmICghbmV3X2luY3IpCisJCXJldHVybjsKKwluZXdfaW5jci0+cm4gPSBybjsKKwluZXdfaW5jci0+c3RhbmRieSA9IHN0YW5kYnk7CisJbGFzdF9ybiA9IDA7CisJcHJldiA9ICZzY2xwX21lbV9saXN0OworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW5jciwgJnNjbHBfbWVtX2xpc3QsIGxpc3QpIHsKKwkJaWYgKGFzc2lnbmVkICYmIGluY3ItPnJuID4gcm4pCisJCQlicmVhazsKKwkJaWYgKCFhc3NpZ25lZCAmJiBpbmNyLT5ybiAtIGxhc3Rfcm4gPiAxKQorCQkJYnJlYWs7CisJCWxhc3Rfcm4gPSBpbmNyLT5ybjsKKwkJcHJldiA9ICZpbmNyLT5saXN0OworCX0KKwlpZiAoIWFzc2lnbmVkKQorCQluZXdfaW5jci0+cm4gPSBsYXN0X3JuICsgMTsKKwlpZiAobmV3X2luY3ItPnJuID4gcm5tYXgpIHsKKwkJa2ZyZWUobmV3X2luY3IpOworCQlyZXR1cm47CisJfQorCWxpc3RfYWRkKCZuZXdfaW5jci0+bGlzdCwgcHJldik7Cit9CisKK3N0cnVjdCByZWFkX3N0b3JhZ2Vfc2NjYiB7CisJc3RydWN0IHNjY2JfaGVhZGVyIGhlYWRlcjsKKwl1MTYgbWF4X2lkOworCXUxNiBhc3NpZ25lZDsKKwl1MTYgc3RhbmRieTsKKwl1MTYgOjE2OworCXUzMiBlbnRyaWVzWzBdOworfSBfX3BhY2tlZDsKKworc3RhdGljIGludCBfX2luaXQgc2NscF9kZXRlY3Rfc3RhbmRieV9tZW1vcnkodm9pZCkKK3sKKwlzdHJ1Y3QgcmVhZF9zdG9yYWdlX3NjY2IgKnNjY2I7CisJaW50IGksIGlkLCBhc3NpZ25lZCwgcmM7CisKKwlpZiAoIWVhcmx5X3JlYWRfaW5mb19zY2NiX3ZhbGlkKQorCQlyZXR1cm4gMDsKKwlpZiAoKHNjbHBfZmFjaWxpdGllcyAmIDB4ZTAwMDAwMDAwMDAwVUxMKSAhPSAweGUwMDAwMDAwMDAwMFVMTCkKKwkJcmV0dXJuIDA7CisJcmMgPSAtRU5PTUVNOworCXNjY2IgPSAodm9pZCAqKSBfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NjYikKKwkJZ290byBvdXQ7CisJYXNzaWduZWQgPSAwOworCWZvciAoaWQgPSAwOyBpZCA8PSBzY2xwX21heF9zdG9yYWdlX2lkOyBpZCsrKSB7CisJCW1lbXNldChzY2NiLCAwLCBQQUdFX1NJWkUpOworCQlzY2NiLT5oZWFkZXIubGVuZ3RoID0gUEFHRV9TSVpFOworCQlyYyA9IGRvX3N5bmNfcmVxdWVzdCgweDAwMDQwMDAxIHwgaWQgPDwgOCwgc2NjYik7CisJCWlmIChyYykKKwkJCWdvdG8gb3V0OworCQlzd2l0Y2ggKHNjY2ItPmhlYWRlci5yZXNwb25zZV9jb2RlKSB7CisJCWNhc2UgMHgwMDEwOgorCQkJc2V0X2JpdChpZCwgc2NscF9zdG9yYWdlX2lkcyk7CisJCQlmb3IgKGkgPSAwOyBpIDwgc2NjYi0+YXNzaWduZWQ7IGkrKykgeworCQkJCWlmICghc2NjYi0+ZW50cmllc1tpXSkKKwkJCQkJY29udGludWU7CisJCQkJYXNzaWduZWQrKzsKKwkJCQlpbnNlcnRfaW5jcmVtZW50KHNjY2ItPmVudHJpZXNbaV0gPj4gMTYsIDAsIDEpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgMHgwMzEwOgorCQkJYnJlYWs7CisJCWNhc2UgMHgwNDEwOgorCQkJZm9yIChpID0gMDsgaSA8IHNjY2ItPmFzc2lnbmVkOyBpKyspIHsKKwkJCQlpZiAoIXNjY2ItPmVudHJpZXNbaV0pCisJCQkJCWNvbnRpbnVlOworCQkJCWFzc2lnbmVkKys7CisJCQkJaW5zZXJ0X2luY3JlbWVudChzY2NiLT5lbnRyaWVzW2ldID4+IDE2LCAxLCAxKTsKKwkJCX0KKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcmMgPSAtRUlPOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKCFyYykKKwkJCXNjbHBfbWF4X3N0b3JhZ2VfaWQgPSBzY2NiLT5tYXhfaWQ7CisJfQorCWlmIChyYyB8fCBsaXN0X2VtcHR5KCZzY2xwX21lbV9saXN0KSkKKwkJZ290byBvdXQ7CisJZm9yIChpID0gMTsgaSA8PSBybm1heCAtIGFzc2lnbmVkOyBpKyspCisJCWluc2VydF9pbmNyZW1lbnQoMCwgMSwgMCk7CisJcmMgPSByZWdpc3Rlcl9tZW1vcnlfbm90aWZpZXIoJnNjbHBfbWVtX25iKTsKKwlpZiAocmMpCisJCWdvdG8gb3V0OworCXNjbHBfYWRkX3N0YW5kYnlfbWVtb3J5KCk7CitvdXQ6CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKSBzY2NiKTsKKwlyZXR1cm4gcmM7Cit9CitfX2luaXRjYWxsKHNjbHBfZGV0ZWN0X3N0YW5kYnlfbWVtb3J5KTsKKworI2VuZGlmIC8qIENPTkZJR19NRU1PUllfSE9UUExVRyAqLworCiAvKgogICogQ2hhbm5lbCBwYXRoIGNvbmZpZ3VyYXRpb24gcmVsYXRlZCBmdW5jdGlvbnMuCiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2Nvbi5jCmluZGV4IGVhZDEwNDMuLjdlNjE5YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jb24uYwpAQCAtMTQsMTQgKzE0LDEzIEBACiAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgorI2luY2x1ZGUgPGxpbnV4L3Rlcm1pb3MuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogI2luY2x1ZGUgInNjbHAuaCIKICNpbmNsdWRlICJzY2xwX3J3LmgiCiAjaW5jbHVkZSAic2NscF90dHkuaCIKIAotI2RlZmluZSBTQ0xQX0NPTl9QUklOVF9IRUFERVIgInNjbHAgY29uc29sZSBkcml2ZXI6ICIKLQogI2RlZmluZSBzY2xwX2NvbnNvbGVfbWFqb3IgNAkJLyogVFRZQVVYX01BSk9SICovCiAjZGVmaW5lIHNjbHBfY29uc29sZV9taW5vciA2NAogI2RlZmluZSBzY2xwX2NvbnNvbGVfbmFtZSAgInR0eVMiCkBAIC0yMjIsOCArMjIxLDYgQEAKIAlJTklUX0xJU1RfSEVBRCgmc2NscF9jb25fcGFnZXMpOwogCWZvciAoaSA9IDA7IGkgPCBNQVhfQ09OU09MRV9QQUdFUzsgaSsrKSB7CiAJCXBhZ2UgPSBhbGxvY19ib290bWVtX2xvd19wYWdlcyhQQUdFX1NJWkUpOwotCQlpZiAocGFnZSA9PSBOVUxMKQotCQkJcmV0dXJuIC1FTk9NRU07CiAJCWxpc3RfYWRkX3RhaWwoKHN0cnVjdCBsaXN0X2hlYWQgKikgcGFnZSwgJnNjbHBfY29uX3BhZ2VzKTsKIAl9CiAJSU5JVF9MSVNUX0hFQUQoJnNjbHBfY29uX291dHF1ZXVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uZmlnLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2NvbmZpZy5jCmluZGV4IGFkMDVhODcuLmZmZjRmZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uZmlnLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jb25maWcuYwpAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAjaW5jbHVkZSA8YXNtL3NtcC5oPgpAQCAtNDAsOSArNDEsMTkgQEAKIAlwdXRfb25saW5lX2NwdXMoKTsKIH0KIAotc3RhdGljIHZvaWQgX19yZWYgc2NscF9jcHVfY2hhbmdlX25vdGlmeShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCitzdGF0aWMgaW50IHNjbHBfY3B1X2t0aHJlYWQodm9pZCAqZGF0YSkKIHsKIAlzbXBfcmVzY2FuX2NwdXMoKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19yZWYgc2NscF9jcHVfY2hhbmdlX25vdGlmeShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJLyogQ2FuJ3QgY2FsbCBzbXBfcmVzY2FuX2NwdXMoKSBmcm9tICB3b3JrcXVldWUgY29udGV4dCBzaW5jZSBpdCBtYXkKKwkgKiBkZWFkbG9jayBpbiBjYXNlIG9mIGNwdSBob3RwbHVnLiBTbyB3ZSBoYXZlIHRvIGNyZWF0ZSBhIGtlcm5lbAorCSAqIHRocmVhZCBpbiBvcmRlciB0byBjYWxsIGl0LgorCSAqLworCWt0aHJlYWRfcnVuKHNjbHBfY3B1X2t0aHJlYWQsIE5VTEwsICJjcHVfcmVzY2FuIik7CiB9CiAKIHN0YXRpYyB2b2lkIHNjbHBfY29uZl9yZWNlaXZlcl9mbihzdHJ1Y3QgZXZidWZfaGVhZGVyICpldmJ1ZikKQEAgLTc0LDEwICs4NSw4IEBACiAJSU5JVF9XT1JLKCZzY2xwX2NwdV9jaGFuZ2Vfd29yaywgc2NscF9jcHVfY2hhbmdlX25vdGlmeSk7CiAKIAlyYyA9IHNjbHBfcmVnaXN0ZXIoJnNjbHBfY29uZl9yZWdpc3Rlcik7Ci0JaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBUQUcgImZhaWxlZCB0byByZWdpc3RlciAoJWQpLlxuIiwgcmMpOworCWlmIChyYykKIAkJcmV0dXJuIHJjOwotCX0KIAogCWlmICghKHNjbHBfY29uZl9yZWdpc3Rlci5zY2xwX3NlbmRfbWFzayAmIEVWVFlQX0NPTkZNR01EQVRBX01BU0spKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgVEFHICJubyBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQuXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY3BpX3N5cy5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jcGlfc3lzLmMKaW5kZXggOWYzNzQ1Ni4uZDg4N2JkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jcGlfc3lzLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jcGlfc3lzLmMKQEAgLTI3LDYgKzI3LDggQEAKICNkZWZpbmUgQ1BJX0xFTkdUSF9OQU1FIDgKICNkZWZpbmUgQ1BJX0xFTkdUSF9MRVZFTCAxNgogCitzdGF0aWMgREVGSU5FX01VVEVYKHNjbHBfY3BpX211dGV4KTsKKwogc3RydWN0IGNwaV9ldmJ1ZiB7CiAJc3RydWN0IGV2YnVmX2hlYWRlciBoZWFkZXI7CiAJdTgJaWRfZm9ybWF0OwpAQCAtMTI0LDIxICsxMjYsMTUgQEAKIAlpbnQgcmVzcG9uc2U7CiAKIAlyYyA9IHNjbHBfcmVnaXN0ZXIoJnNjbHBfY3BpX2V2ZW50KTsKLQlpZiAocmMpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY3BpOiBjb3VsZCBub3QgcmVnaXN0ZXIgIgotCQkJInRvIGhhcmR3YXJlIGNvbnNvbGUuXG4iKTsKKwlpZiAocmMpCiAJCWdvdG8gb3V0OwotCX0KIAlpZiAoIShzY2xwX2NwaV9ldmVudC5zY2xwX3JlY2VpdmVfbWFzayAmIEVWVFlQX0NUTFBST0dJREVOVF9NQVNLKSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJjcGk6IG5vIGNvbnRyb2wgcHJvZ3JhbSAiCi0JCQkiaWRlbnRpZmljYXRpb24gc3VwcG9ydFxuIik7CiAJCXJjID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0X3VucmVnaXN0ZXI7CiAJfQogCiAJcmVxID0gY3BpX3ByZXBhcmVfcmVxKCk7CiAJaWYgKElTX0VSUihyZXEpKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgImNwaTogY291bGQgbm90IGFsbG9jYXRlIHJlcXVlc3RcbiIpOwogCQlyYyA9IFBUUl9FUlIocmVxKTsKIAkJZ290byBvdXRfdW5yZWdpc3RlcjsKIAl9CkBAIC0xNDgsMTAgKzE0NCw4IEBACiAKIAkvKiBBZGQgcmVxdWVzdCB0byBzY2xwIHF1ZXVlICovCiAJcmMgPSBzY2xwX2FkZF9yZXF1ZXN0KHJlcSk7Ci0JaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgImNwaTogY291bGQgbm90IHN0YXJ0IHJlcXVlc3RcbiIpOworCWlmIChyYykKIAkJZ290byBvdXRfZnJlZV9yZXE7Ci0JfQogCiAJd2FpdF9mb3JfY29tcGxldGlvbigmY29tcGxldGlvbik7CiAKQEAgLTIyMyw3ICsyMTcsMTIgQEAKIHN0YXRpYyBzc2l6ZV90IHN5c3RlbV9uYW1lX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCQkJc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQogewotCXJldHVybiBzbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIlc1xuIiwgc3lzdGVtX25hbWUpOworCWludCByYzsKKworCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKKwlyYyA9IHNucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiVzXG4iLCBzeXN0ZW1fbmFtZSk7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisJcmV0dXJuIHJjOwogfQogCiBzdGF0aWMgc3NpemVfdCBzeXN0ZW1fbmFtZV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKQEAgLTIzNyw3ICsyMzYsOSBAQAogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCisJbXV0ZXhfbG9jaygmc2NscF9jcGlfbXV0ZXgpOwogCXNldF9zdHJpbmcoc3lzdGVtX25hbWUsIGJ1Zik7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAKIAlyZXR1cm4gbGVuOwogfQpAQCAtMjQ4LDcgKzI0OSwxMiBAQAogc3RhdGljIHNzaXplX3Qgc3lzcGxleF9uYW1lX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCQkJIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKIHsKLQlyZXR1cm4gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsIHN5c3BsZXhfbmFtZSk7CisJaW50IHJjOworCisJbXV0ZXhfbG9jaygmc2NscF9jcGlfbXV0ZXgpOworCXJjID0gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsIHN5c3BsZXhfbmFtZSk7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisJcmV0dXJuIHJjOwogfQogCiBzdGF0aWMgc3NpemVfdCBzeXNwbGV4X25hbWVfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosCkBAIC0yNjIsNyArMjY4LDkgQEAKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlzZXRfc3RyaW5nKHN5c3BsZXhfbmFtZSwgYnVmKTsKKwltdXRleF91bmxvY2soJnNjbHBfY3BpX211dGV4KTsKIAogCXJldHVybiBsZW47CiB9CkBAIC0yNzMsNyArMjgxLDEyIEBACiBzdGF0aWMgc3NpemVfdCBzeXN0ZW1fdHlwZV9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCXN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKIHsKLQlyZXR1cm4gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsIHN5c3RlbV90eXBlKTsKKwlpbnQgcmM7CisKKwltdXRleF9sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisJcmMgPSBzbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIlc1xuIiwgc3lzdGVtX3R5cGUpOworCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOworCXJldHVybiByYzsKIH0KIAogc3RhdGljIHNzaXplX3Qgc3lzdGVtX3R5cGVfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosCkBAIC0yODcsNyArMzAwLDkgQEAKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlzZXRfc3RyaW5nKHN5c3RlbV90eXBlLCBidWYpOworCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOwogCiAJcmV0dXJuIGxlbjsKIH0KQEAgLTI5OCw4ICszMTMsMTEgQEAKIHN0YXRpYyBzc2l6ZV90IHN5c3RlbV9sZXZlbF9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCSBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nIGxldmVsID0gc3lzdGVtX2xldmVsOworCXVuc2lnbmVkIGxvbmcgbG9uZyBsZXZlbDsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKKwlsZXZlbCA9IHN5c3RlbV9sZXZlbDsKKwltdXRleF91bmxvY2soJnNjbHBfY3BpX211dGV4KTsKIAlyZXR1cm4gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJSMwMThsbHhcbiIsIGxldmVsKTsKIH0KIApAQCAtMzIwLDggKzMzOCw5IEBACiAJaWYgKCplbmRwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlzeXN0ZW1fbGV2ZWwgPSBsZXZlbDsKLQorCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOwogCXJldHVybiBsZW47CiB9CiAKQEAgLTMzNCw3ICszNTMsOSBAQAogewogCWludCByYzsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlyYyA9IGNwaV9yZXEoKTsKKwltdXRleF91bmxvY2soJnNjbHBfY3BpX211dGV4KTsKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIApAQCAtMzczLDEyICszOTQsMTYgQEAKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlzZXRfc3RyaW5nKHN5c3RlbV9uYW1lLCBzeXN0ZW0pOwogCXNldF9zdHJpbmcoc3lzcGxleF9uYW1lLCBzeXNwbGV4KTsKIAlzZXRfc3RyaW5nKHN5c3RlbV90eXBlLCB0eXBlKTsKIAlzeXN0ZW1fbGV2ZWwgPSBsZXZlbDsKIAotCXJldHVybiBjcGlfcmVxKCk7CisJcmMgPSBjcGlfcmVxKCk7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisKKwlyZXR1cm4gcmM7CiB9CiBFWFBPUlRfU1lNQk9MKHNjbHBfY3BpX3NldF9kYXRhKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9xdWllc2NlLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3F1aWVzY2UuYwppbmRleCA0NWZmMjVlLi44NGMxOTFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3F1aWVzY2UuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3F1aWVzY2UuYwpAQCAtNTEsMTMgKzUxLDcgQEAKIHN0YXRpYyBpbnQgX19pbml0CiBzY2xwX3F1aWVzY2VfaW5pdCh2b2lkKQogewotCWludCByYzsKLQotCXJjID0gc2NscF9yZWdpc3Rlcigmc2NscF9xdWllc2NlX2V2ZW50KTsKLQlpZiAocmMpCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgInNjbHA6IGNvdWxkIG5vdCByZWdpc3RlciBxdWllc2NlIGhhbmRsZXIgIgotCQkgICAgICAgIihyYz0lZClcbiIsIHJjKTsKLQlyZXR1cm4gcmM7CisJcmV0dXJuIHNjbHBfcmVnaXN0ZXIoJnNjbHBfcXVpZXNjZV9ldmVudCk7CiB9CiAKIG1vZHVsZV9pbml0KHNjbHBfcXVpZXNjZV9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfcncuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfcncuYwppbmRleCBkYTA5NzgxLi43MTBhZjQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3J3LmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9ydy5jCkBAIC0xOSw4ICsxOSw2IEBACiAjaW5jbHVkZSAic2NscC5oIgogI2luY2x1ZGUgInNjbHBfcncuaCIKIAotI2RlZmluZSBTQ0xQX1JXX1BSSU5UX0hFQURFUiAic2NscCBsb3cgbGV2ZWwgZHJpdmVyOiAiCi0KIC8qCiAgKiBUaGUgcm9vbSBmb3IgdGhlIFNDQ0IgKG9ubHkgZm9yIHdyaXRpbmcpIGlzIG5vdCBlcXVhbCB0byBhIHBhZ2VzIHNpemUKICAqIChhcyBpdCBpcyBzcGVjaWZpZWQgYXMgdGhlIG1heGltdW0gc2l6ZSBpbiB0aGUgU0NMUCBkb2N1bWVudGF0aW9uKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9zZGlhcy5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9zZGlhcy5jCmluZGV4IDFjMDY0OTcuLjhiODU0ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfc2RpYXMuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3NkaWFzLmMKQEAgLTIzOSwxMCArMjM5LDggQEAKIAlkZWJ1Z19yZWdpc3Rlcl92aWV3KHNkaWFzX2RiZiwgJmRlYnVnX3NwcmludGZfdmlldyk7CiAJZGVidWdfc2V0X2xldmVsKHNkaWFzX2RiZiwgNik7CiAJcmMgPSBzY2xwX3JlZ2lzdGVyKCZzY2xwX3NkaWFzX3JlZ2lzdGVyKTsKLQlpZiAocmMpIHsKLQkJRVJST1JfTVNHKCJzY2xwIHJlZ2lzdGVyIGZhaWxlZFxuIik7CisJaWYgKHJjKQogCQlyZXR1cm4gcmM7Ci0JfQogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnNkaWFzX3dxKTsKIAlUUkFDRSgiaW5pdCBkb25lXG4iKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3R0eS5jCmluZGV4IDQwYjExNTIuLjQzNGJhMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF90dHkuYwpAQCAtMTMsNyArMTMsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KICNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgotI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpAQCAtMjUsOCArMjQsNiBAQAogI2luY2x1ZGUgInNjbHBfcncuaCIKICNpbmNsdWRlICJzY2xwX3R0eS5oIgogCi0jZGVmaW5lIFNDTFBfVFRZX1BSSU5UX0hFQURFUiAic2NscCB0dHkgZHJpdmVyOiAiCi0KIC8qCiAgKiBzaXplIG9mIGEgYnVmZmVyIHRoYXQgY29sbGVjdHMgc2luZ2xlIGNoYXJhY3RlcnMgY29taW5nIGluCiAgKiB2aWEgc2NscF90dHlfcHV0X2NoYXIoKQpAQCAtNTAsOCArNDcsNiBAQAogc3RhdGljIHN0cnVjdCBzY2xwX2J1ZmZlciAqc2NscF90dHlidWY7CiAvKiBUaW1lciBmb3IgZGVsYXllZCBvdXRwdXQgb2YgY29uc29sZSBtZXNzYWdlcy4gKi8KIHN0YXRpYyBzdHJ1Y3QgdGltZXJfbGlzdCBzY2xwX3R0eV90aW1lcjsKLS8qIFdhaXRxdWV1ZSB0byB3YWl0IGZvciBidWZmZXJzIHRvIGdldCBlbXB0eS4gKi8KLXN0YXRpYyB3YWl0X3F1ZXVlX2hlYWRfdCBzY2xwX3R0eV93YWl0cTsKIAogc3RhdGljIHN0cnVjdCB0dHlfc3RydWN0ICpzY2xwX3R0eTsKIHN0YXRpYyB1bnNpZ25lZCBjaGFyIHNjbHBfdHR5X2NoYXJzW1NDTFBfVFRZX0JVRl9TSVpFXTsKQEAgLTU5LDE5ICs1NCwxMSBAQAogCiBzdHJ1Y3QgdHR5X2RyaXZlciAqc2NscF90dHlfZHJpdmVyOwogCi1zdGF0aWMgc3RydWN0IHNjbHBfaW9jdGxzIHNjbHBfaW9jdGxzOwotc3RhdGljIHN0cnVjdCBzY2xwX2lvY3RscyBzY2xwX2lvY3Rsc19pbml0ID0KLXsKLQk4LAkJCS8qIDEgaG9yLiB0YWIuID0gOCBzcGFjZXMgKi8KLQkwLAkJCS8qIG5vIGVjaG8gb2YgaW5wdXQgYnkgdGhpcyBkcml2ZXIgKi8KLQk4MCwJCQkvKiA4MCBjaGFyYWN0ZXJzL2xpbmUgKi8KLQkxLAkJCS8qIHdyaXRlIGFmdGVyIDEvMTAgcyB3aXRob3V0IGZpbmFsIG5ldyBsaW5lICovCi0JTUFYX0tNRU1fUEFHRVMsCQkvKiBxdWljayBmaXg6IGF2b2lkIF9fYWxsb2NfcGFnZXMgKi8KLQlNQVhfS01FTV9QQUdFUywJCS8qIHRha2UgMzIvNjQgcGFnZXMgZnJvbSBrZXJuZWwgbWVtb3J5LCAqLwotCTAsCQkJLyogZG8gbm90IGNvbnZlcnQgdG8gbG93ZXIgY2FzZSAqLwotCTB4NmMJCQkvKiB0byBzZXByYXRlIHVwcGVyIGFuZCBsb3dlciBjYXNlICovCi0JCQkJLyogKCclJyBpbiBFQkNESUMpICovCi19Oworc3RhdGljIGludCBzY2xwX3R0eV90b2xvd2VyOworc3RhdGljIGludCBzY2xwX3R0eV9jb2x1bW5zID0gODA7CisKKyNkZWZpbmUgU1BBQ0VTX1BFUl9UQUIgOAorI2RlZmluZSBDQVNFX0RFTElNSVRFUiAweDZjIC8qIHRvIHNlcGFyYXRlIHVwcGVyIGFuZCBsb3dlciBjYXNlICglIGluIEVCQ0RJQykgKi8KIAogLyogVGhpcyByb3V0aW5lIGlzIGNhbGxlZCB3aGVuZXZlciB3ZSB0cnkgdG8gb3BlbiBhIFNDTFAgdGVybWluYWwuICovCiBzdGF0aWMgaW50CkBAIC05MiwxMzYgKzc5LDYgQEAKIAlzY2xwX3R0eSA9IE5VTEw7CiB9CiAKLS8qIGV4ZWN1dGUgY29tbWFuZHMgdG8gY29udHJvbCB0aGUgaS9vIGJlaGF2aW91ciBvZiB0aGUgU0NMUCB0dHkgYXQgcnVudGltZSAqLwotc3RhdGljIGludAotc2NscF90dHlfaW9jdGwoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IGZpbGUgKiBmaWxlLAotCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGludCBvYnVmOwotCWludCBjaGVjazsKLQlpbnQgcmM7Ci0KLQlpZiAodHR5LT5mbGFncyAmICgxIDw8IFRUWV9JT19FUlJPUikpCi0JCXJldHVybiAtRUlPOwotCXJjID0gMDsKLQljaGVjayA9IDA7Ci0Jc3dpdGNoIChjbWQpIHsKLQljYXNlIFRJT0NTQ0xQU0hUQUI6Ci0JCS8qIHNldCB3aWR0aCBvZiBob3Jpem9udGFsIHRhYgkqLwotCQlpZiAoZ2V0X3VzZXIoc2NscF9pb2N0bHMuaHRhYiwgKHVuc2lnbmVkIHNob3J0IF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQllbHNlCi0JCQljaGVjayA9IDE7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBHSFRBQjoKLQkJLyogZ2V0IHdpZHRoIG9mIGhvcml6b250YWwgdGFiCSovCi0JCWlmIChwdXRfdXNlcihzY2xwX2lvY3Rscy5odGFiLCAodW5zaWduZWQgc2hvcnQgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBTRUNITzoKLQkJLyogZW5hYmxlL2Rpc2FibGUgZWNobyBvZiBpbnB1dCAqLwotCQlpZiAoZ2V0X3VzZXIoc2NscF9pb2N0bHMuZWNobywgKHVuc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBHRUNITzoKLQkJLyogSXMgZWNobyBvZiBpbnB1dCBlbmFibGVkID8gICovCi0JCWlmIChwdXRfdXNlcihzY2xwX2lvY3Rscy5lY2hvLCAodW5zaWduZWQgY2hhciBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUFNDT0xTOgotCQkvKiBzZXQgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIG91dHB1dCAgKi8KLQkJaWYgKGdldF91c2VyKHNjbHBfaW9jdGxzLmNvbHVtbnMsICh1bnNpZ25lZCBzaG9ydCBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJZWxzZQotCQkJY2hlY2sgPSAxOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQR0NPTFM6Ci0JCS8qIGdldCBudW1iZXIgb2YgY29sdW1ucyBmb3Igb3V0cHV0ICAqLwotCQlpZiAocHV0X3VzZXIoc2NscF9pb2N0bHMuY29sdW1ucywgKHVuc2lnbmVkIHNob3J0IF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQU05MOgotCQkvKiBlbmFibGUvZGlzYWJsZSB3cml0aW5nIHdpdGhvdXQgZmluYWwgbmV3IGxpbmUgY2hhcmFjdGVyICAqLwotCQlpZiAoZ2V0X3VzZXIoc2NscF9pb2N0bHMuZmluYWxfbmwsIChzaWduZWQgY2hhciBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUEdOTDoKLQkJLyogSXMgd3JpdGluZyB3aXRob3V0IGZpbmFsIG5ldyBsaW5lIGNoYXJhY3RlciBlbmFibGVkID8gICovCi0JCWlmIChwdXRfdXNlcihzY2xwX2lvY3Rscy5maW5hbF9ubCwgKHNpZ25lZCBjaGFyIF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQU09CVUY6Ci0JCS8qCi0JCSAqIHNldCB0aGUgbWF4aW11bSBidWZmZXJzIHNpemUgZm9yIG91dHB1dCwgd2lsbCBiZSByb3VuZGVkCi0JCSAqIHVwIHRvIG5leHQgNGtCIGJvdW5kYXJ5IGFuZCBzdG9yZWQgYXMgbnVtYmVyIG9mIFNDQ0JzCi0JCSAqICg0a0IgQnVmZmVycykgbGltaXRhdGlvbjogMjU2IHggNGtCCi0JCSAqLwotCQlpZiAoZ2V0X3VzZXIob2J1ZiwgKHVuc2lnbmVkIGludCBfX3VzZXIgKikgYXJnKSA9PSAwKSB7Ci0JCQlpZiAob2J1ZiAmIDB4RkZGKQotCQkJCXNjbHBfaW9jdGxzLm1heF9zY2NiID0gKG9idWYgPj4gMTIpICsgMTsKLQkJCWVsc2UKLQkJCQlzY2xwX2lvY3Rscy5tYXhfc2NjYiA9IChvYnVmID4+IDEyKTsKLQkJfSBlbHNlCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBHT0JVRjoKLQkJLyogZ2V0IHRoZSBtYXhpbXVtIGJ1ZmZlcnMgc2l6ZSBmb3Igb3V0cHV0ICAqLwotCQlvYnVmID0gc2NscF9pb2N0bHMubWF4X3NjY2IgPDwgMTI7Ci0JCWlmIChwdXRfdXNlcihvYnVmLCAodW5zaWduZWQgaW50IF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQR0tCVUY6Ci0JCS8qIGdldCB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgZ290IGZyb20ga2VybmVsIGF0IHN0YXJ0dXAgKi8KLQkJaWYgKHB1dF91c2VyKHNjbHBfaW9jdGxzLmttZW1fc2NjYiwgKHVuc2lnbmVkIHNob3J0IF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQU0NBU0U6Ci0JCS8qIGVuYWJsZS9kaXNhYmxlIGNvbnZlcnNpb24gZnJvbSB1cHBlciB0byBsb3dlciBjYXNlICovCi0JCWlmIChnZXRfdXNlcihzY2xwX2lvY3Rscy50b2xvd2VyLCAodW5zaWduZWQgY2hhciBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUEdDQVNFOgotCQkvKiBJcyBjb252ZXJzaW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgY2FzZSBvZiBpbnB1dCBlbmFibGVkPyAqLwotCQlpZiAocHV0X3VzZXIoc2NscF9pb2N0bHMudG9sb3dlciwgKHVuc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBTREVMSU06Ci0JCS8qCi0JCSAqIHNldCBzcGVjaWFsIGNoYXJhY3RlciB1c2VkIGZvciBzZXBhcmF0aW5nIHVwcGVyIGFuZAotCQkgKiBsb3dlciBjYXNlLCAweDAwIGRpc2FibGVzIHRoaXMgZmVhdHVyZQotCQkgKi8KLQkJaWYgKGdldF91c2VyKHNjbHBfaW9jdGxzLmRlbGltLCAodW5zaWduZWQgY2hhciBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUEdERUxJTToKLQkJLyoKLQkJICogZ2V0IHNwZWNpYWwgY2hhcmFjdGVyIHVzZWQgZm9yIHNlcGFyYXRpbmcgdXBwZXIgYW5kCi0JCSAqIGxvd2VyIGNhc2UsIDB4MDAgZGlzYWJsZXMgdGhpcyBmZWF0dXJlCi0JCSAqLwotCQlpZiAocHV0X3VzZXIoc2NscF9pb2N0bHMuZGVsaW0sICh1bnNpZ25lZCBjaGFyIF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQU0lOSVQ6Ci0JCS8qIHNldCBpbml0aWFsIChkZWZhdWx0KSBzY2xwIGlvY3RscyAgKi8KLQkJc2NscF9pb2N0bHMgPSBzY2xwX2lvY3Rsc19pbml0OwotCQljaGVjayA9IDE7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJjID0gLUVOT0lPQ1RMQ01EOwotCQlicmVhazsKLQl9Ci0JaWYgKGNoZWNrKSB7Ci0JCXNwaW5fbG9ja19pcnFzYXZlKCZzY2xwX3R0eV9sb2NrLCBmbGFncyk7Ci0JCWlmIChzY2xwX3R0eWJ1ZiAhPSBOVUxMKSB7Ci0JCQlzY2xwX3NldF9odGFiKHNjbHBfdHR5YnVmLCBzY2xwX2lvY3Rscy5odGFiKTsKLQkJCXNjbHBfc2V0X2NvbHVtbnMoc2NscF90dHlidWYsIHNjbHBfaW9jdGxzLmNvbHVtbnMpOwotCQl9Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjbHBfdHR5X2xvY2ssIGZsYWdzKTsKLQl9Ci0JcmV0dXJuIHJjOwotfQotCiAvKgogICogVGhpcyByb3V0aW5lIHJldHVybnMgdGhlIG51bWJlcnMgb2YgY2hhcmFjdGVycyB0aGUgdHR5IGRyaXZlcgogICogd2lsbCBhY2NlcHQgZm9yIHF1ZXVpbmcgdG8gYmUgd3JpdHRlbi4gIFRoaXMgbnVtYmVyIGlzIHN1YmplY3QKQEAgLTI2OCw3ICsxMjUsNiBAQAogCQkJCQkgICAgc3RydWN0IHNjbHBfYnVmZmVyLCBsaXN0KTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOwogCX0gd2hpbGUgKGJ1ZmZlciAmJiBzY2xwX2VtaXRfYnVmZmVyKGJ1ZmZlciwgc2NscF90dHlidWZfY2FsbGJhY2spKTsKLQl3YWtlX3VwKCZzY2xwX3R0eV93YWl0cSk7CiAJLyogY2hlY2sgaWYgdGhlIHR0eSBuZWVkcyBhIHdha2UgdXAgY2FsbCAqLwogCWlmIChzY2xwX3R0eSAhPSBOVUxMKSB7CiAJCXR0eV93YWtldXAoc2NscF90dHkpOwpAQCAtMzE2LDM3ICsxNzIsMzcgQEAKIC8qCiAgKiBXcml0ZSBhIHN0cmluZyB0byB0aGUgc2NscCB0dHkuCiAgKi8KLXN0YXRpYyB2b2lkCi1zY2xwX3R0eV93cml0ZV9zdHJpbmcoY29uc3QgdW5zaWduZWQgY2hhciAqc3RyLCBpbnQgY291bnQpCitzdGF0aWMgaW50IHNjbHBfdHR5X3dyaXRlX3N0cmluZyhjb25zdCB1bnNpZ25lZCBjaGFyICpzdHIsIGludCBjb3VudCwgaW50IG1heV9mYWlsKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdm9pZCAqcGFnZTsKIAlpbnQgd3JpdHRlbjsKKwlpbnQgb3ZlcmFsbF93cml0dGVuOwogCXN0cnVjdCBzY2xwX2J1ZmZlciAqYnVmOwogCiAJaWYgKGNvdW50IDw9IDApCi0JCXJldHVybjsKKwkJcmV0dXJuIDA7CisJb3ZlcmFsbF93cml0dGVuID0gMDsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOwogCWRvIHsKIAkJLyogQ3JlYXRlIGEgc2NscCBvdXRwdXQgYnVmZmVyIGlmIG5vbmUgZXhpc3RzIHlldCAqLwogCQlpZiAoc2NscF90dHlidWYgPT0gTlVMTCkgewogCQkJd2hpbGUgKGxpc3RfZW1wdHkoJnNjbHBfdHR5X3BhZ2VzKSkgewogCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjbHBfdHR5X2xvY2ssIGZsYWdzKTsKLQkJCQlpZiAoaW5faW50ZXJydXB0KCkpCi0JCQkJCXNjbHBfc3luY193YWl0KCk7CisJCQkJaWYgKG1heV9mYWlsKQorCQkJCQlnb3RvIG91dDsKIAkJCQllbHNlCi0JCQkJCXdhaXRfZXZlbnQoc2NscF90dHlfd2FpdHEsCi0JCQkJCQkhbGlzdF9lbXB0eSgmc2NscF90dHlfcGFnZXMpKTsKKwkJCQkJc2NscF9zeW5jX3dhaXQoKTsKIAkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOwogCQkJfQogCQkJcGFnZSA9IHNjbHBfdHR5X3BhZ2VzLm5leHQ7CiAJCQlsaXN0X2RlbCgoc3RydWN0IGxpc3RfaGVhZCAqKSBwYWdlKTsKLQkJCXNjbHBfdHR5YnVmID0gc2NscF9tYWtlX2J1ZmZlcihwYWdlLAotCQkJCQkJICAgICAgIHNjbHBfaW9jdGxzLmNvbHVtbnMsCi0JCQkJCQkgICAgICAgc2NscF9pb2N0bHMuaHRhYik7CisJCQlzY2xwX3R0eWJ1ZiA9IHNjbHBfbWFrZV9idWZmZXIocGFnZSwgc2NscF90dHlfY29sdW1ucywKKwkJCQkJCSAgICAgICBTUEFDRVNfUEVSX1RBQik7CiAJCX0KIAkJLyogdHJ5IHRvIHdyaXRlIHRoZSBzdHJpbmcgdG8gdGhlIGN1cnJlbnQgb3V0cHV0IGJ1ZmZlciAqLwogCQl3cml0dGVuID0gc2NscF93cml0ZShzY2xwX3R0eWJ1Ziwgc3RyLCBjb3VudCk7CisJCW92ZXJhbGxfd3JpdHRlbiArPSB3cml0dGVuOwogCQlpZiAod3JpdHRlbiA9PSBjb3VudCkKIAkJCWJyZWFrOwogCQkvKgpAQCAtMzYzLDI3ICsyMTksMTcgQEAKIAkJY291bnQgLT0gd3JpdHRlbjsKIAl9IHdoaWxlIChjb3VudCA+IDApOwogCS8qIFNldHVwIHRpbWVyIHRvIG91dHB1dCBjdXJyZW50IGNvbnNvbGUgYnVmZmVyIGFmdGVyIDEvMTAgc2Vjb25kICovCi0JaWYgKHNjbHBfaW9jdGxzLmZpbmFsX25sKSB7Ci0JCWlmIChzY2xwX3R0eWJ1ZiAhPSBOVUxMICYmCi0JCSAgICBzY2xwX2NoYXJzX2luX2J1ZmZlcihzY2xwX3R0eWJ1ZikgIT0gMCAmJgotCQkgICAgIXRpbWVyX3BlbmRpbmcoJnNjbHBfdHR5X3RpbWVyKSkgewotCQkJaW5pdF90aW1lcigmc2NscF90dHlfdGltZXIpOwotCQkJc2NscF90dHlfdGltZXIuZnVuY3Rpb24gPSBzY2xwX3R0eV90aW1lb3V0OwotCQkJc2NscF90dHlfdGltZXIuZGF0YSA9IDBVTDsKLQkJCXNjbHBfdHR5X3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsgSFovMTA7Ci0JCQlhZGRfdGltZXIoJnNjbHBfdHR5X3RpbWVyKTsKLQkJfQotCX0gZWxzZSB7Ci0JCWlmIChzY2xwX3R0eWJ1ZiAhPSBOVUxMICYmCi0JCSAgICBzY2xwX2NoYXJzX2luX2J1ZmZlcihzY2xwX3R0eWJ1ZikgIT0gMCkgewotCQkJYnVmID0gc2NscF90dHlidWY7Ci0JCQlzY2xwX3R0eWJ1ZiA9IE5VTEw7Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2xwX3R0eV9sb2NrLCBmbGFncyk7Ci0JCQlfX3NjbHBfdHR5YnVmX2VtaXQoYnVmKTsKLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZzY2xwX3R0eV9sb2NrLCBmbGFncyk7Ci0JCX0KKwlpZiAoc2NscF90dHlidWYgJiYgc2NscF9jaGFyc19pbl9idWZmZXIoc2NscF90dHlidWYpICYmCisJICAgICF0aW1lcl9wZW5kaW5nKCZzY2xwX3R0eV90aW1lcikpIHsKKwkJaW5pdF90aW1lcigmc2NscF90dHlfdGltZXIpOworCQlzY2xwX3R0eV90aW1lci5mdW5jdGlvbiA9IHNjbHBfdHR5X3RpbWVvdXQ7CisJCXNjbHBfdHR5X3RpbWVyLmRhdGEgPSAwVUw7CisJCXNjbHBfdHR5X3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsgSFovMTA7CisJCWFkZF90aW1lcigmc2NscF90dHlfdGltZXIpOwogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2xwX3R0eV9sb2NrLCBmbGFncyk7CitvdXQ6CisJcmV0dXJuIG92ZXJhbGxfd3JpdHRlbjsKIH0KIAogLyoKQEAgLTM5NSwxMSArMjQxLDEwIEBACiBzY2xwX3R0eV93cml0ZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCkKIHsKIAlpZiAoc2NscF90dHlfY2hhcnNfY291bnQgPiAwKSB7Ci0JCXNjbHBfdHR5X3dyaXRlX3N0cmluZyhzY2xwX3R0eV9jaGFycywgc2NscF90dHlfY2hhcnNfY291bnQpOworCQlzY2xwX3R0eV93cml0ZV9zdHJpbmcoc2NscF90dHlfY2hhcnMsIHNjbHBfdHR5X2NoYXJzX2NvdW50LCAwKTsKIAkJc2NscF90dHlfY2hhcnNfY291bnQgPSAwOwogCX0KLQlzY2xwX3R0eV93cml0ZV9zdHJpbmcoYnVmLCBjb3VudCk7Ci0JcmV0dXJuIGNvdW50OworCXJldHVybiBzY2xwX3R0eV93cml0ZV9zdHJpbmcoYnVmLCBjb3VudCwgMSk7CiB9CiAKIC8qCkBAIC00MTcsOSArMjYyLDEwIEBACiB7CiAJc2NscF90dHlfY2hhcnNbc2NscF90dHlfY2hhcnNfY291bnQrK10gPSBjaDsKIAlpZiAoY2ggPT0gJ1xuJyB8fCBzY2xwX3R0eV9jaGFyc19jb3VudCA+PSBTQ0xQX1RUWV9CVUZfU0laRSkgewotCQlzY2xwX3R0eV93cml0ZV9zdHJpbmcoc2NscF90dHlfY2hhcnMsIHNjbHBfdHR5X2NoYXJzX2NvdW50KTsKKwkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCwgMCk7CiAJCXNjbHBfdHR5X2NoYXJzX2NvdW50ID0gMDsKLQl9IHJldHVybiAxOworCX0KKwlyZXR1cm4gMTsKIH0KIAogLyoKQEAgLTQzMCw3ICsyNzYsNyBAQAogc2NscF90dHlfZmx1c2hfY2hhcnMoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkKIHsKIAlpZiAoc2NscF90dHlfY2hhcnNfY291bnQgPiAwKSB7Ci0JCXNjbHBfdHR5X3dyaXRlX3N0cmluZyhzY2xwX3R0eV9jaGFycywgc2NscF90dHlfY2hhcnNfY291bnQpOworCQlzY2xwX3R0eV93cml0ZV9zdHJpbmcoc2NscF90dHlfY2hhcnMsIHNjbHBfdHR5X2NoYXJzX2NvdW50LCAwKTsKIAkJc2NscF90dHlfY2hhcnNfY291bnQgPSAwOwogCX0KIH0KQEAgLTQ2OSw3ICszMTUsNyBAQAogc2NscF90dHlfZmx1c2hfYnVmZmVyKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCiB7CiAJaWYgKHNjbHBfdHR5X2NoYXJzX2NvdW50ID4gMCkgewotCQlzY2xwX3R0eV93cml0ZV9zdHJpbmcoc2NscF90dHlfY2hhcnMsIHNjbHBfdHR5X2NoYXJzX2NvdW50KTsKKwkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCwgMCk7CiAJCXNjbHBfdHR5X2NoYXJzX2NvdW50ID0gMDsKIAl9CiB9CkBAIC01MTcsOSArMzYzLDcgQEAKICAqIG1vZGlmaXkgb3JpZ2luYWwgc3RyaW5nLAogICogcmV0dXJucyBsZW5ndGggb2YgcmVzdWx0aW5nIHN0cmluZwogICovCi1zdGF0aWMgaW50Ci1zY2xwX3N3aXRjaF9jYXNlcyh1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCwKLQkJICB1bnNpZ25lZCBjaGFyIGRlbGltLCBpbnQgdG9sb3dlcikKK3N0YXRpYyBpbnQgc2NscF9zd2l0Y2hfY2FzZXModW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCiB7CiAJdW5zaWduZWQgY2hhciAqaXAsICpvcDsKIAlpbnQgdG9nZ2xlOwpAQCAtNTI5LDkgKzM3Myw5IEBACiAJaXAgPSBvcCA9IGJ1ZjsKIAl3aGlsZSAoY291bnQtLSA+IDApIHsKIAkJLyogY29tcGFyZSB3aXRoIHNwZWNpYWwgY2hhcmFjdGVyICovCi0JCWlmICgqaXAgPT0gZGVsaW0pIHsKKwkJaWYgKCppcCA9PSBDQVNFX0RFTElNSVRFUikgewogCQkJLyogZm9sbG93ZWQgYnkgYW5vdGhlciBzcGVjaWFsIGNoYXJhY3Rlcj8gKi8KLQkJCWlmIChjb3VudCAmJiBpcFsxXSA9PSBkZWxpbSkgeworCQkJaWYgKGNvdW50ICYmIGlwWzFdID09IENBU0VfREVMSU1JVEVSKSB7CiAJCQkJLyoKIAkJCQkgKiAuLi4gdGhlbiBwdXQgYSBzaW5nbGUgY29weSBvZiB0aGUgc3BlY2lhbAogCQkJCSAqIGNoYXJhY3RlciB0byB0aGUgb3V0cHV0IHN0cmluZwpAQCAtNTUwLDcgKzM5NCw3IEBACiAJCQkvKiBub3QgdGhlIHNwZWNpYWwgY2hhcmFjdGVyICovCiAJCQlpZiAodG9nZ2xlKQogCQkJCS8qIGJ1dCBjYXNlIHN3aXRjaGluZyBpcyBvbiAqLwotCQkJCWlmICh0b2xvd2VyKQorCQkJCWlmIChzY2xwX3R0eV90b2xvd2VyKQogCQkJCQkvKiBzd2l0Y2ggdG8gdXBwZXJjYXNlICovCiAJCQkJCSpvcCsrID0gX2ViY190b3VwcGVyWyhpbnQpICppcCsrXTsKIAkJCQllbHNlCkBAIC01NzAsMzAgKzQxNCwxMiBAQAogCWludCBjb3VudDsKIAogCWNvdW50ID0gZW5kIC0gc3RhcnQ7Ci0JLyoKLQkgKiBpZiBzZXQgaW4gaW9jdGwgY29udmVydCBFQkNESUMgdG8gbG93ZXIgY2FzZQotCSAqIChtb2RpZnkgb3JpZ2luYWwgaW5wdXQgaW4gU0NDQikKLQkgKi8KLQlpZiAoc2NscF9pb2N0bHMudG9sb3dlcikKKwlpZiAoc2NscF90dHlfdG9sb3dlcikKIAkJRUJDX1RPTE9XRVIoc3RhcnQsIGNvdW50KTsKLQotCS8qCi0JICogaWYgc2V0IGluIGlvY3RsIGZpbmQgb3V0IGNoYXJhY3RlcnMgaW4gbG93ZXIgb3IgdXBwZXIgY2FzZQotCSAqIChkZXBlbmRzIG9uIGN1cnJlbnQgY2FzZSkgc2VwYXJhdGVkIGJ5IGEgc3BlY2lhbCBjaGFyYWN0ZXIsCi0JICogd29ya3Mgb24gRUJDRElDCi0JICovCi0JaWYgKHNjbHBfaW9jdGxzLmRlbGltKQotCQljb3VudCA9IHNjbHBfc3dpdGNoX2Nhc2VzKHN0YXJ0LCBjb3VudCwKLQkJCQkJICBzY2xwX2lvY3Rscy5kZWxpbSwKLQkJCQkJICBzY2xwX2lvY3Rscy50b2xvd2VyKTsKLQorCWNvdW50ID0gc2NscF9zd2l0Y2hfY2FzZXMoc3RhcnQsIGNvdW50KTsKIAkvKiBjb252ZXJ0IEVCQ0RJQyB0byBBU0NJSSAobW9kaWZ5IG9yaWdpbmFsIGlucHV0IGluIFNDQ0IpICovCiAJc2NscF9lYmNhc2Nfc3RyKHN0YXJ0LCBjb3VudCk7CiAKLQkvKiBpZiBzZXQgaW4gaW9jdGwgd3JpdGUgb3BlcmF0b3JzIGlucHV0IHRvIGNvbnNvbGUgICovCi0JaWYgKHNjbHBfaW9jdGxzLmVjaG8pCi0JCXNjbHBfdHR5X3dyaXRlKHNjbHBfdHR5LCBzdGFydCwgY291bnQpOwotCiAJLyogdHJhbnNmZXIgaW5wdXQgdG8gaGlnaCBsZXZlbCBkcml2ZXIgKi8KIAlzY2xwX3R0eV9pbnB1dChzdGFydCwgY291bnQpOwogfQpAQCAtNzE3LDcgKzU0Myw2IEBACiAJLndyaXRlX3Jvb20gPSBzY2xwX3R0eV93cml0ZV9yb29tLAogCS5jaGFyc19pbl9idWZmZXIgPSBzY2xwX3R0eV9jaGFyc19pbl9idWZmZXIsCiAJLmZsdXNoX2J1ZmZlciA9IHNjbHBfdHR5X2ZsdXNoX2J1ZmZlciwKLQkuaW9jdGwgPSBzY2xwX3R0eV9pb2N0bCwKIH07CiAKIHN0YXRpYyBpbnQgX19pbml0CkBAIC03MzYsOSArNTYxLDYgQEAKIAogCXJjID0gc2NscF9yd19pbml0KCk7CiAJaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBTQ0xQX1RUWV9QUklOVF9IRUFERVIKLQkJICAgICAgICJjb3VsZCBub3QgcmVnaXN0ZXIgdHR5IC0gIgotCQkgICAgICAgInNjbHBfcndfaW5pdCByZXR1cm5lZCAlZFxuIiwgcmMpOwogCQlwdXRfdHR5X2RyaXZlcihkcml2ZXIpOwogCQlyZXR1cm4gcmM7CiAJfQpAQCAtNzU0LDcgKzU3Niw2IEBACiAJfQogCUlOSVRfTElTVF9IRUFEKCZzY2xwX3R0eV9vdXRxdWV1ZSk7CiAJc3Bpbl9sb2NrX2luaXQoJnNjbHBfdHR5X2xvY2spOwotCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnNjbHBfdHR5X3dhaXRxKTsKIAlpbml0X3RpbWVyKCZzY2xwX3R0eV90aW1lcik7CiAJc2NscF90dHlidWYgPSBOVUxMOwogCXNjbHBfdHR5X2J1ZmZlcl9jb3VudCA9IDA7CkBAIC03NjMsMTEgKzU4NCwxMCBAQAogCQkgKiBzYXZlIDQgY2hhcmFjdGVycyBmb3IgdGhlIENQVSBudW1iZXIKIAkJICogd3JpdHRlbiBhdCBzdGFydCBvZiBlYWNoIGxpbmUgYnkgVk0vQ1AKIAkJICovCi0JCXNjbHBfaW9jdGxzX2luaXQuY29sdW1ucyA9IDc2OworCQlzY2xwX3R0eV9jb2x1bW5zID0gNzY7CiAJCS8qIGNhc2UgaW5wdXQgbGluZXMgdG8gbG93ZXJjYXNlICovCi0JCXNjbHBfaW9jdGxzX2luaXQudG9sb3dlciA9IDE7CisJCXNjbHBfdHR5X3RvbG93ZXIgPSAxOwogCX0KLQlzY2xwX2lvY3RscyA9IHNjbHBfaW9jdGxzX2luaXQ7CiAJc2NscF90dHlfY2hhcnNfY291bnQgPSAwOwogCXNjbHBfdHR5ID0gTlVMTDsKIApAQCAtNzkyLDkgKzYxMiw2IEBACiAJdHR5X3NldF9vcGVyYXRpb25zKGRyaXZlciwgJnNjbHBfb3BzKTsKIAlyYyA9IHR0eV9yZWdpc3Rlcl9kcml2ZXIoZHJpdmVyKTsKIAlpZiAocmMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFNDTFBfVFRZX1BSSU5UX0hFQURFUgotCQkgICAgICAgImNvdWxkIG5vdCByZWdpc3RlciB0dHkgLSAiCi0JCSAgICAgICAidHR5X3JlZ2lzdGVyX2RyaXZlciByZXR1cm5lZCAlZFxuIiwgcmMpOwogCQlwdXRfdHR5X2RyaXZlcihkcml2ZXIpOwogCQlyZXR1cm4gcmM7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF90dHkuaCBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmgKaW5kZXggMGNlMmMxZi4uNGI5NjViMjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmgKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF90dHkuaApAQCAtMTEsNjEgKzExLDggQEAKICNpZm5kZWYgX19TQ0xQX1RUWV9IX18KICNkZWZpbmUgX19TQ0xQX1RUWV9IX18KIAotI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvdGVybWlvcy5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KIAotLyogVGhpcyBpcyB0aGUgdHlwZSBvZiBkYXRhIHN0cnVjdHVyZXMgc3RvcmluZyBzY2xwIGlvY3RsIHNldHRpbmcuICovCi1zdHJ1Y3Qgc2NscF9pb2N0bHMgewotCXVuc2lnbmVkIHNob3J0IGh0YWI7Ci0JdW5zaWduZWQgY2hhciBlY2hvOwotCXVuc2lnbmVkIHNob3J0IGNvbHVtbnM7Ci0JdW5zaWduZWQgY2hhciBmaW5hbF9ubDsKLQl1bnNpZ25lZCBzaG9ydCBtYXhfc2NjYjsKLQl1bnNpZ25lZCBzaG9ydCBrbWVtX3NjY2I7CS8qIGNhbid0IGJlIG1vZGlmaWVkIGF0IHJ1biB0aW1lICovCi0JdW5zaWduZWQgY2hhciB0b2xvd2VyOwotCXVuc2lnbmVkIGNoYXIgZGVsaW07Ci19OwotCi0vKiBtdXN0IGJlIHVuaXF1ZSwgRklYTUU6IG11c3QgYmUgYWRkZWQgaW4gRG9jdW1lbnRhdGlvbi9pb2N0bF9udW1iZXIudHh0ICovCi0jZGVmaW5lIFNDTFBfSU9DVExfTEVUVEVSICdCJwotCi0vKiBzZXQgd2lkdGggb2YgaG9yaXpvbnRhbCB0YWJ1bGF0b3IgKi8KLSNkZWZpbmUgVElPQ1NDTFBTSFRBQglfSU9XKFNDTFBfSU9DVExfTEVUVEVSLCAwLCB1bnNpZ25lZCBzaG9ydCkKLS8qIGVuYWJsZS9kaXNhYmxlIGVjaG8gb2YgaW5wdXQgKGluZGVwZW5kZW50IGZyb20gbGluZSBkaXNjaXBsaW5lKSAqLwotI2RlZmluZSBUSU9DU0NMUFNFQ0hPCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDEsIHVuc2lnbmVkIGNoYXIpCi0vKiBzZXQgbnVtYmVyIG9mIGNvbHVtcyBmb3Igb3V0cHV0ICovCi0jZGVmaW5lIFRJT0NTQ0xQU0NPTFMJX0lPVyhTQ0xQX0lPQ1RMX0xFVFRFUiwgMiwgdW5zaWduZWQgc2hvcnQpCi0vKiBlbmFibGUvZGlzYWJsZSB3cml0aW5nIHdpdGhvdXQgZmluYWwgbmV3IGxpbmUgY2hhcmFjdGVyICovCi0jZGVmaW5lIFRJT0NTQ0xQU05MCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDQsIHNpZ25lZCBjaGFyKQotLyogc2V0IHRoZSBtYXhpbXVtIGJ1ZmZlcnMgc2l6ZSBmb3Igb3V0cHV0LCByb3VuZGVkIHVwIHRvIG5leHQgNGtCIGJvdW5kYXJ5ICovCi0jZGVmaW5lIFRJT0NTQ0xQU09CVUYJX0lPVyhTQ0xQX0lPQ1RMX0xFVFRFUiwgNSwgdW5zaWduZWQgc2hvcnQpCi0vKiBzZXQgaW5pdGlhbCAoZGVmYXVsdCkgc2NscCBpb2N0bHMgKi8KLSNkZWZpbmUgVElPQ1NDTFBTSU5JVAlfSU8oU0NMUF9JT0NUTF9MRVRURVIsIDYpCi0vKiBlbmFibGUvZGlzYWJsZSBjb252ZXJzaW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgY2FzZSBvZiBpbnB1dCAqLwotI2RlZmluZSBUSU9DU0NMUFNDQVNFCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDcsIHVuc2lnbmVkIGNoYXIpCi0vKiBzZXQgc3BlY2lhbCBjaGFyYWN0ZXIgdXNlZCBmb3Igc2VwYXJhdGluZyB1cHBlciBhbmQgbG93ZXIgY2FzZSwgKi8KLS8qIDB4MDAgZGlzYWJsZXMgdGhpcyBmZWF0dXJlICovCi0jZGVmaW5lIFRJT0NTQ0xQU0RFTElNCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDksIHVuc2lnbmVkIGNoYXIpCi0KLS8qIGdldCB3aWR0aCBvZiBob3Jpem9udGFsIHRhYnVsYXRvciAqLwotI2RlZmluZSBUSU9DU0NMUEdIVEFCCV9JT1IoU0NMUF9JT0NUTF9MRVRURVIsIDEwLCB1bnNpZ25lZCBzaG9ydCkKLS8qIElzIGVjaG8gb2YgaW5wdXQgZW5hYmxlZCA/IChpbmRlcGVuZGVudCBmcm9tIGxpbmUgZGlzY2lwbGluZSkgKi8KLSNkZWZpbmUgVElPQ1NDTFBHRUNITwlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxMSwgdW5zaWduZWQgY2hhcikKLS8qIGdldCBudW1iZXIgb2YgY29sdW1zIGZvciBvdXRwdXQgKi8KLSNkZWZpbmUgVElPQ1NDTFBHQ09MUwlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxMiwgdW5zaWduZWQgc2hvcnQpCi0vKiBJcyB3cml0aW5nIHdpdGhvdXQgZmluYWwgbmV3IGxpbmUgY2hhcmFjdGVyIGVuYWJsZWQgPyAqLwotI2RlZmluZSBUSU9DU0NMUEdOTAlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxNCwgc2lnbmVkIGNoYXIpCi0vKiBnZXQgdGhlIG1heGltdW0gYnVmZmVycyBzaXplIGZvciBvdXRwdXQgKi8KLSNkZWZpbmUgVElPQ1NDTFBHT0JVRglfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxNSwgdW5zaWduZWQgc2hvcnQpCi0vKiBJcyBjb252ZXJzaW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgY2FzZSBvZiBpbnB1dCBlbmFibGVkID8gKi8KLSNkZWZpbmUgVElPQ1NDTFBHQ0FTRQlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxNywgdW5zaWduZWQgY2hhcikKLS8qIGdldCBzcGVjaWFsIGNoYXJhY3RlciB1c2VkIGZvciBzZXBhcmF0aW5nIHVwcGVyIGFuZCBsb3dlciBjYXNlLCAqLwotLyogMHgwMCBkaXNhYmxlcyB0aGlzIGZlYXR1cmUgKi8KLSNkZWZpbmUgVElPQ1NDTFBHREVMSU0JX0lPUihTQ0xQX0lPQ1RMX0xFVFRFUiwgMTksIHVuc2lnbmVkIGNoYXIpCi0vKiBnZXQgdGhlIG51bWJlciBvZiBidWZmZXJzL3BhZ2VzIGdvdCBmcm9tIGtlcm5lbCBhdCBzdGFydHVwICovCi0jZGVmaW5lIFRJT0NTQ0xQR0tCVUYJX0lPUihTQ0xQX0lPQ1RMX0xFVFRFUiwgMjAsIHVuc2lnbmVkIHNob3J0KQotCiBleHRlcm4gc3RydWN0IHR0eV9kcml2ZXIgKnNjbHBfdHR5X2RyaXZlcjsKIAogI2VuZGlmCS8qIF9fU0NMUF9UVFlfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3Z0MjIwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3Z0MjIwLmMKaW5kZXggM2U1NzdmNi4uYWQ1MTczOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF92dDIyMC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdnQyMjAuYwpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSAic2NscC5oIgogCi0jZGVmaW5lIFNDTFBfVlQyMjBfUFJJTlRfSEVBREVSIAkic2NscCB2dDIyMCB0dHkgZHJpdmVyOiAiCiAjZGVmaW5lIFNDTFBfVlQyMjBfTUFKT1IJCVRUWV9NQUpPUgogI2RlZmluZSBTQ0xQX1ZUMjIwX01JTk9SCQk2NQogI2RlZmluZSBTQ0xQX1ZUMjIwX0RSSVZFUl9OQU1FCQkic2NscF92dDIyMCIKQEAgLTgyLDggKzgxLDggQEAKIC8qIE51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGN1cnJlbnQgcmVxdWVzdCBidWZmZXIgKi8KIHN0YXRpYyBpbnQgc2NscF92dDIyMF9idWZmZXJlZF9jaGFyczsKIAotLyogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyBkcml2ZXIgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZCAqLwotc3RhdGljIGludCBzY2xwX3Z0MjIwX2luaXRpYWxpemVkID0gMDsKKy8qIENvdW50ZXIgY29udHJvbGxpbmcgY29yZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24uICovCitzdGF0aWMgaW50IF9faW5pdGRhdGEgc2NscF92dDIyMF9pbml0X2NvdW50OwogCiAvKiBGbGFnIGluZGljYXRpbmcgdGhhdCBzY2xwX3Z0MjIwX2N1cnJlbnRfcmVxdWVzdCBzaG91bGQgcmVhbGx5CiAgKiBoYXZlIGJlZW4gYWxyZWFkeSBxdWV1ZWQgYnV0IHdhc24ndCBiZWNhdXNlIHRoZSBTQ0xQIHdhcyBwcm9jZXNzaW5nCkBAIC02MDksMTAgKzYwOCw4IEBACiAJc2NscF92dDIyMF9lbWl0X2N1cnJlbnQoKTsKIH0KIAotLyoKLSAqIEluaXRpYWxpemUgYWxsIHJlbGV2YW50IGNvbXBvbmVudHMgYW5kIHJlZ2lzdGVyIGRyaXZlciB3aXRoIHN5c3RlbS4KLSAqLwotc3RhdGljIHZvaWQgX19pbml0IF9fc2NscF92dDIyMF9jbGVhbnVwKHZvaWQpCisvKiBSZWxlYXNlIGFsbG9jYXRlZCBwYWdlcy4gKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBfX3NjbHBfdnQyMjBfZnJlZV9wYWdlcyh2b2lkKQogewogCXN0cnVjdCBsaXN0X2hlYWQgKnBhZ2UsICpwOwogCkBAIC02MjMsMjEgKzYyMCwzMCBAQAogCQllbHNlCiAJCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHBhZ2UsIFBBR0VfU0laRSk7CiAJfQotCWlmICghbGlzdF9lbXB0eSgmc2NscF92dDIyMF9yZWdpc3Rlci5saXN0KSkKLQkJc2NscF91bnJlZ2lzdGVyKCZzY2xwX3Z0MjIwX3JlZ2lzdGVyKTsKLQlzY2xwX3Z0MjIwX2luaXRpYWxpemVkID0gMDsKIH0KIAotc3RhdGljIGludCBfX2luaXQgX19zY2xwX3Z0MjIwX2luaXQodm9pZCkKKy8qIFJlbGVhc2UgbWVtb3J5IGFuZCB1bnJlZ2lzdGVyIGZyb20gc2NscCBjb3JlLiBDb250cm9sbGVkIGJ5IGluaXQgY291bnRpbmcgLQorICogb25seSB0aGUgbGFzdCBpbnZva2VyIHdpbGwgYWN0dWFsbHkgcGVyZm9ybSB0aGVzZSBhY3Rpb25zLiAqLworc3RhdGljIHZvaWQgX19pbml0IF9fc2NscF92dDIyMF9jbGVhbnVwKHZvaWQpCit7CisJc2NscF92dDIyMF9pbml0X2NvdW50LS07CisJaWYgKHNjbHBfdnQyMjBfaW5pdF9jb3VudCAhPSAwKQorCQlyZXR1cm47CisJc2NscF91bnJlZ2lzdGVyKCZzY2xwX3Z0MjIwX3JlZ2lzdGVyKTsKKwlfX3NjbHBfdnQyMjBfZnJlZV9wYWdlcygpOworfQorCisvKiBBbGxvY2F0ZSBidWZmZXIgcGFnZXMgYW5kIHJlZ2lzdGVyIHdpdGggc2NscCBjb3JlLiBDb250cm9sbGVkIGJ5IGluaXQKKyAqIGNvdW50aW5nIC0gb25seSB0aGUgZmlyc3QgaW52b2tlciB3aWxsIGFjdHVhbGx5IHBlcmZvcm0gdGhlc2UgYWN0aW9ucy4gKi8KK3N0YXRpYyBpbnQgX19pbml0IF9fc2NscF92dDIyMF9pbml0KGludCBudW1fcGFnZXMpCiB7CiAJdm9pZCAqcGFnZTsKIAlpbnQgaTsKLQlpbnQgbnVtX3BhZ2VzOwogCWludCByYzsKIAotCWlmIChzY2xwX3Z0MjIwX2luaXRpYWxpemVkKQorCXNjbHBfdnQyMjBfaW5pdF9jb3VudCsrOworCWlmIChzY2xwX3Z0MjIwX2luaXRfY291bnQgIT0gMSkKIAkJcmV0dXJuIDA7Ci0Jc2NscF92dDIyMF9pbml0aWFsaXplZCA9IDE7CiAJc3Bpbl9sb2NrX2luaXQoJnNjbHBfdnQyMjBfbG9jayk7CiAJSU5JVF9MSVNUX0hFQUQoJnNjbHBfdnQyMjBfZW1wdHkpOwogCUlOSVRfTElTVF9IRUFEKCZzY2xwX3Z0MjIwX291dHF1ZXVlKTsKQEAgLTY0OSwyNCArNjU1LDIyIEBACiAJc2NscF92dDIyMF9mbHVzaF9sYXRlciA9IDA7CiAKIAkvKiBBbGxvY2F0ZSBwYWdlcyBmb3Igb3V0cHV0IGJ1ZmZlcmluZyAqLwotCW51bV9wYWdlcyA9IHNsYWJfaXNfYXZhaWxhYmxlKCkgPyBNQVhfS01FTV9QQUdFUyA6IE1BWF9DT05TT0xFX1BBR0VTOwogCWZvciAoaSA9IDA7IGkgPCBudW1fcGFnZXM7IGkrKykgewogCQlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkKIAkJCXBhZ2UgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwogCQllbHNlCiAJCQlwYWdlID0gYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKIAkJaWYgKCFwYWdlKSB7Ci0JCQlfX3NjbHBfdnQyMjBfY2xlYW51cCgpOwotCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyYyA9IC1FTk9NRU07CisJCQlnb3RvIG91dDsKIAkJfQogCQlsaXN0X2FkZF90YWlsKChzdHJ1Y3QgbGlzdF9oZWFkICopIHBhZ2UsICZzY2xwX3Z0MjIwX2VtcHR5KTsKIAl9CiAJcmMgPSBzY2xwX3JlZ2lzdGVyKCZzY2xwX3Z0MjIwX3JlZ2lzdGVyKTsKK291dDoKIAlpZiAocmMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFNDTFBfVlQyMjBfUFJJTlRfSEVBREVSCi0JCSAgICAgICAiY291bGQgbm90IHJlZ2lzdGVyIHZ0MjIwIC0gIgotCQkgICAgICAgInNjbHBfcmVnaXN0ZXIgcmV0dXJuZWQgJWRcbiIsIHJjKTsKLQkJX19zY2xwX3Z0MjIwX2NsZWFudXAoKTsKKwkJX19zY2xwX3Z0MjIwX2ZyZWVfcGFnZXMoKTsKKwkJc2NscF92dDIyMF9pbml0X2NvdW50LS07CiAJfQogCXJldHVybiByYzsKIH0KQEAgLTY4OSwxNSArNjkzLDEzIEBACiB7CiAJc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZlcjsKIAlpbnQgcmM7Ci0JaW50IGNsZWFudXA7CiAKIAkvKiBOb3RlOiB3ZSdyZSBub3QgdGVzdGluZyBmb3IgQ09OU09MRV9JU19TQ0xQIGhlcmUgdG8gcHJlc2VydmUKIAkgKiBzeW1tZXRyeSBiZXR3ZWVuIFZNIGFuZCBMUEFSIHN5c3RlbXMgcmVnYXJkaW5nIHR0eVMxLiAqLwogCWRyaXZlciA9IGFsbG9jX3R0eV9kcml2ZXIoMSk7CiAJaWYgKCFkcml2ZXIpCiAJCXJldHVybiAtRU5PTUVNOwotCWNsZWFudXAgPSAhc2NscF92dDIyMF9pbml0aWFsaXplZDsKLQlyYyA9IF9fc2NscF92dDIyMF9pbml0KCk7CisJcmMgPSBfX3NjbHBfdnQyMjBfaW5pdChNQVhfS01FTV9QQUdFUyk7CiAJaWYgKHJjKQogCQlnb3RvIG91dF9kcml2ZXI7CiAKQEAgLTcxMywxOCArNzE1LDEzIEBACiAJdHR5X3NldF9vcGVyYXRpb25zKGRyaXZlciwgJnNjbHBfdnQyMjBfb3BzKTsKIAogCXJjID0gdHR5X3JlZ2lzdGVyX2RyaXZlcihkcml2ZXIpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgU0NMUF9WVDIyMF9QUklOVF9IRUFERVIKLQkJICAgICAgICJjb3VsZCBub3QgcmVnaXN0ZXIgdHR5IC0gIgotCQkgICAgICAgInR0eV9yZWdpc3Rlcl9kcml2ZXIgcmV0dXJuZWQgJWRcbiIsIHJjKTsKKwlpZiAocmMpCiAJCWdvdG8gb3V0X2luaXQ7Ci0JfQogCXNjbHBfdnQyMjBfZHJpdmVyID0gZHJpdmVyOwogCXJldHVybiAwOwogCiBvdXRfaW5pdDoKLQlpZiAoY2xlYW51cCkKLQkJX19zY2xwX3Z0MjIwX2NsZWFudXAoKTsKKwlfX3NjbHBfdnQyMjBfY2xlYW51cCgpOwogb3V0X2RyaXZlcjoKIAlwdXRfdHR5X2RyaXZlcihkcml2ZXIpOwogCXJldHVybiByYzsKQEAgLTc3MywxMCArNzcwLDkgQEAKIHsKIAlpbnQgcmM7CiAKLQlJTklUX0xJU1RfSEVBRCgmc2NscF92dDIyMF9yZWdpc3Rlci5saXN0KTsKIAlpZiAoIUNPTlNPTEVfSVNfU0NMUCkKIAkJcmV0dXJuIDA7Ci0JcmMgPSBfX3NjbHBfdnQyMjBfaW5pdCgpOworCXJjID0gX19zY2xwX3Z0MjIwX2luaXQoTUFYX0NPTlNPTEVfUEFHRVMpOwogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCS8qIEF0dGFjaCBsaW51eCBjb25zb2xlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM0eHguYyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfMzR4eC5jCmluZGV4IDg3NGFkZjMuLjIyY2EzNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfMzR4eC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfMzR4eC5jCkBAIC0xOTYsNyArMTk2LDcgQEAKIHN0YXRpYyBpbnQKIHRhcGVfMzR4eF91bnNvbGljaXRlZF9pcnEoc3RydWN0IHRhcGVfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBpcmIgKmlyYikKIHsKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ID09IDB4ODUgLyogUkVBRFkgKi8pIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCA9PSAweDg1KSB7IC8qIFJFQURZICovCiAJCS8qIEEgbWVkaXVtIHdhcyBpbnNlcnRlZCBpbiB0aGUgZHJpdmUuICovCiAJCURCRl9FVkVOVCg2LCAieHV1ZCBtZWRcbiIpOwogCQl0YXBlXzM0eHhfZGVsZXRlX3NiaWRfZnJvbShkZXZpY2UsIDApOwpAQCAtODQ0LDIyICs4NDQsMjIgQEAKIAlpZiAocmVxdWVzdCA9PSBOVUxMKQogCQlyZXR1cm4gdGFwZV8zNHh4X3Vuc29saWNpdGVkX2lycShkZXZpY2UsIGlyYik7CiAKLQlpZiAoKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfRVhDRVApICYmCi0JICAgIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9ERVZfRU5EKSAmJgorCWlmICgoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfRVhDRVApICYmCisJICAgIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgJiYKIAkgICAgKHJlcXVlc3QtPm9wID09IFRPX1dSSSkpIHsKIAkJLyogV3JpdGUgYXQgZW5kIG9mIHZvbHVtZSAqLwogCQlQUklOVF9JTkZPKCJFbmQgb2Ygdm9sdW1lXG4iKTsgLyogWFhYICovCiAJCXJldHVybiB0YXBlXzM0eHhfZXJwX2ZhaWxlZChyZXF1ZXN0LCAtRU5PU1BDKTsKIAl9CiAKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spCiAJCXJldHVybiB0YXBlXzM0eHhfdW5pdF9jaGVjayhkZXZpY2UsIHJlcXVlc3QsIGlyYik7CiAKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgewogCQkvKgogCQkgKiBBIHVuaXQgZXhjZXB0aW9uIG9jY3VycyBvbiBza2lwcGluZyBvdmVyIGEgdGFwZW1hcmsgYmxvY2suCiAJCSAqLwotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9FWENFUCkgeworCQlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfRVhDRVApIHsKIAkJCWlmIChyZXF1ZXN0LT5vcCA9PSBUT19CU0IgfHwgcmVxdWVzdC0+b3AgPT0gVE9fRlNCKQogCQkJCXJlcXVlc3QtPnJlc2NudCsrOwogCQkJZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV8zNTkwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM1OTAuYwppbmRleCA0MmNlNzkxLi44Mzk5ODc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM1OTAuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM1OTAuYwpAQCAtODM3LDEzICs4MzcsMTMgQEAKIHN0YXRpYyBpbnQKIHRhcGVfMzU5MF91bnNvbGljaXRlZF9pcnEoc3RydWN0IHRhcGVfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBpcmIgKmlyYikKIHsKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ID09IERFVl9TVEFUX0NITl9FTkQpCisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gREVWX1NUQVRfQ0hOX0VORCkKIAkJLyogUHJvYmFibHkgcmVzdWx0IG9mIGhhbHQgc3NjaCAqLwogCQlyZXR1cm4gVEFQRV9JT19QRU5ESU5HOwotCWVsc2UgaWYgKGlyYi0+c2Nzdy5kc3RhdCA9PSAweDg1KQorCWVsc2UgaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gMHg4NSkKIAkJLyogRGV2aWNlIFJlYWR5ICovCiAJCURCRl9FVkVOVCgzLCAidW5zb2wuaXJxISB0YXBlIHJlYWR5OiAlMDh4XG4iLCBkZXZpY2UtPmNkZXZfaWQpOwotCWVsc2UgaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgeworCWVsc2UgaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKIAkJdGFwZV8zNTkwX3NjaGVkdWxlX3dvcmsoZGV2aWNlLCBUT19SRUFEX0FUVE1TRyk7CiAJfSBlbHNlIHsKIAkJREJGX0VWRU5UKDMsICJ1bnNvbC5pcnEhIGRldiBlbmQ6ICUwOHhcbiIsIGRldmljZS0+Y2Rldl9pZCk7CkBAIC0xNTE1LDE4ICsxNTE1LDE5IEBACiAJaWYgKHJlcXVlc3QgPT0gTlVMTCkKIAkJcmV0dXJuIHRhcGVfMzU5MF91bnNvbGljaXRlZF9pcnEoZGV2aWNlLCBpcmIpOwogCi0JaWYgKChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSAmJgotCSAgICAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgJiYgKHJlcXVlc3QtPm9wID09IFRPX1dSSSkpIHsKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSAmJgorCSAgICAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpICYmCisJICAgIChyZXF1ZXN0LT5vcCA9PSBUT19XUkkpKSB7CiAJCS8qIFdyaXRlIGF0IGVuZCBvZiB2b2x1bWUgKi8KIAkJREJGX0VWRU5UKDIsICJFbmQgb2Ygdm9sdW1lXG4iKTsKIAkJcmV0dXJuIHRhcGVfMzU5MF9lcnBfZmFpbGVkKGRldmljZSwgcmVxdWVzdCwgaXJiLCAtRU5PU1BDKTsKIAl9CiAKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spCiAJCXJldHVybiB0YXBlXzM1OTBfdW5pdF9jaGVjayhkZXZpY2UsIHJlcXVlc3QsIGlyYik7CiAKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgewotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ID09IERFVl9TVEFUX1VOSVRfRVhDRVApIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpIHsKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gREVWX1NUQVRfVU5JVF9FWENFUCkgewogCQkJaWYgKHJlcXVlc3QtPm9wID09IFRPX0ZTQiB8fCByZXF1ZXN0LT5vcCA9PSBUT19CU0IpCiAJCQkJcmVxdWVzdC0+cmVzY250Kys7CiAJCQllbHNlCkBAIC0xNTM2LDEyICsxNTM3LDEyIEBACiAJCXJldHVybiB0YXBlXzM1OTBfZG9uZShkZXZpY2UsIHJlcXVlc3QpOwogCX0KIAotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9DSE5fRU5EKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9DSE5fRU5EKSB7CiAJCURCRl9FVkVOVCgyLCAiY2FubmVsIGVuZFxuIik7CiAJCXJldHVybiBUQVBFX0lPX1BFTkRJTkc7CiAJfQogCi0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CiAJCURCRl9FVkVOVCgyLCAiVW5pdCBBdHRlbnRpb24gd2hlbiBidXN5Li5cbiIpOwogCQlyZXR1cm4gVEFQRV9JT19QRU5ESU5HOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY2hhci5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV9jaGFyLmMKaW5kZXggZWJlODQwNi4uNjg3NzIwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV9jaGFyLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV9jaGFyLmMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9tdGlvLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKQEAgLTI4OSwyMSArMjkwLDI2IEBACiAJaWYgKGltYWpvcihmaWxwLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKSAhPSB0YXBlY2hhcl9tYWpvcikKIAkJcmV0dXJuIC1FTk9ERVY7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gaW1pbm9yKGZpbHAtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpOwogCWRldmljZSA9IHRhcGVfZ2V0X2RldmljZShtaW5vciAvIFRBUEVfTUlOT1JTX1BFUl9ERVYpOwogCWlmIChJU19FUlIoZGV2aWNlKSkgewogCQlEQkZfRVZFTlQoMywgIlRDSEFSOm9wZW46IHRhcGVfZ2V0X2RldmljZSgpIGZhaWxlZFxuIik7Ci0JCXJldHVybiBQVFJfRVJSKGRldmljZSk7CisJCXJjID0gUFRSX0VSUihkZXZpY2UpOworCQlnb3RvIG91dDsKIAl9CiAKIAogCXJjID0gdGFwZV9vcGVuKGRldmljZSk7CiAJaWYgKHJjID09IDApIHsKIAkJZmlscC0+cHJpdmF0ZV9kYXRhID0gZGV2aWNlOwotCQlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CisJCXJjID0gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CiAJfQotCXRhcGVfcHV0X2RldmljZShkZXZpY2UpOworCWVsc2UKKwkJdGFwZV9wdXRfZGV2aWNlKGRldmljZSk7CiAKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJjOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NvcmUuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY29yZS5jCmluZGV4IGMyMGUzYzUuLjE4MWE1NDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY29yZS5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY29yZS5jCkBAIC04MzksNyArODM5LDcgQEAKIAogCVBSSU5UX0lORk8oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogCVBSSU5UX0lORk8oIkRTVEFUIDogJTAyeCAgQ1NUQVQ6ICUwMngJQ1BBOiAlMDR4XG4iLAotCQkgICBpcmItPnNjc3cuZHN0YXQsIGlyYi0+c2Nzdy5jc3RhdCwgaXJiLT5zY3N3LmNwYSk7CisJCSAgIGlyYi0+c2Nzdy5jbWQuZHN0YXQsIGlyYi0+c2Nzdy5jbWQuY3N0YXQsIGlyYi0+c2Nzdy5jbWQuY3BhKTsKIAlQUklOVF9JTkZPKCJERVZJQ0U6ICVzXG4iLCBkZXZpY2UtPmNkZXYtPmRldi5idXNfaWQpOwogCWlmIChyZXF1ZXN0ICE9IE5VTEwpCiAJCVBSSU5UX0lORk8oIk9QCSAgOiAlc1xuIiwgdGFwZV9vcF92ZXJib3NlW3JlcXVlc3QtPm9wXSk7CkBAIC04NjcsNyArODY3LDcgQEAKIAllbHNlCiAJCW9wID0gIi0tLSI7CiAJREJGX0VWRU5UKDMsICJEU1RBVCA6ICUwMnggICBDU1RBVDogJTAyeFxuIiwKLQkJICBpcmItPnNjc3cuZHN0YXQsaXJiLT5zY3N3LmNzdGF0KTsKKwkJICBpcmItPnNjc3cuY21kLmRzdGF0LCBpcmItPnNjc3cuY21kLmNzdGF0KTsKIAlEQkZfRVZFTlQoMywgIkRFVklDRTogJTA4eCBPUFx0OiAlc1xuIiwgZGV2aWNlLT5jZGV2X2lkLCBvcCk7CiAJc3B0ciA9ICh1bnNpZ25lZCBpbnQgKikgaXJiLT5lY3c7CiAJREJGX0VWRU5UKDMsICIlMDh4ICUwOHhcbiIsIHNwdHJbMF0sIHNwdHJbMV0pOwpAQCAtMTA4MywxMCArMTA4MywxMSBAQAogCSAqIGVycm9yIG1pZ2h0IHN0aWxsIGFwcGx5LiBTbyB3ZSBqdXN0IHNjaGVkdWxlIHRoZSByZXF1ZXN0IHRvIGJlCiAJICogc3RhcnRlZCBsYXRlci4KIAkgKi8KLQlpZiAoaXJiLT5zY3N3LmNjICE9IDAgJiYgKGlyYi0+c2Nzdy5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpICYmCisJaWYgKGlyYi0+c2Nzdy5jbWQuY2MgIT0gMCAmJgorCSAgICAoaXJiLT5zY3N3LmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpICYmCiAJICAgIChyZXF1ZXN0LT5zdGF0dXMgPT0gVEFQRV9SRVFVRVNUX0lOX0lPKSkgewogCQlEQkZfRVZFTlQoMywiKCUwOHgpOiBkZWZlcnJlZCBjYz0laSwgZmN0bD0laS4gcmVzdGFydGluZ1xuIiwKLQkJCWRldmljZS0+Y2Rldl9pZCwgaXJiLT5zY3N3LmNjLCBpcmItPnNjc3cuZmN0bCk7CisJCQlkZXZpY2UtPmNkZXZfaWQsIGlyYi0+c2Nzdy5jbWQuY2MsIGlyYi0+c2Nzdy5jbWQuZmN0bCk7CiAJCXJlcXVlc3QtPnN0YXR1cyA9IFRBUEVfUkVRVUVTVF9RVUVVRUQ7CiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2aWNlLT50YXBlX2RuciwgSFopOwogCQlyZXR1cm47CkBAIC0xMDk0LDggKzEwOTUsOCBAQAogCiAJLyogTWF5IGJlIGFuIHVuc29saWNpdGVkIGlycSAqLwogCWlmKHJlcXVlc3QgIT0gTlVMTCkKLQkJcmVxdWVzdC0+cmVzY250ID0gaXJiLT5zY3N3LmNvdW50OwotCWVsc2UgaWYgKChpcmItPnNjc3cuZHN0YXQgPT0gMHg4NSB8fCBpcmItPnNjc3cuZHN0YXQgPT0gMHg4MCkgJiYKKwkJcmVxdWVzdC0+cmVzY250ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKKwllbHNlIGlmICgoaXJiLT5zY3N3LmNtZC5kc3RhdCA9PSAweDg1IHx8IGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gMHg4MCkgJiYKIAkJICFsaXN0X2VtcHR5KCZkZXZpY2UtPnJlcV9xdWV1ZSkpIHsKIAkJLyogTm90IFJlYWR5IHRvIFJlYWR5IGFmdGVyIGxvbmcgYnVzeSA/ICovCiAJCXN0cnVjdCB0YXBlX3JlcXVlc3QgKnJlcTsKQEAgLTExMTEsNyArMTExMiw3IEBACiAJCQlyZXR1cm47CiAJCX0KIAl9Ci0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAhPSAweDBjKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgIT0gMHgwYykgewogCQkvKiBTZXQgdGhlICdPTkxJTkUnIGZsYWcgZGVwZW5kaW5nIG9uIHNlbnNlIGJ5dGUgMSAqLwogCQlpZigqKCgoX191OCAqKSBpcmItPmVjdykgKyAxKSAmIFNFTlNFX0RSSVZFX09OTElORSkKIAkJCWRldmljZS0+dGFwZV9nZW5lcmljX3N0YXR1cyB8PSBHTVRfT05MSU5FKH4wKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3R0eTMyNzAuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3R0eTMyNzAuYwppbmRleCA1MDQzMTUwLi5hN2ZlNjMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci90dHkzMjcwLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvdHR5MzI3MC5jCkBAIC02NjMsNyArNjYzLDcgQEAKIHR0eTMyNzBfaXJxKHN0cnVjdCB0dHkzMjcwICp0cCwgc3RydWN0IHJhdzMyNzBfcmVxdWVzdCAqcnEsIHN0cnVjdCBpcmIgKmlyYikKIHsKIAkvKiBIYW5kbGUgQVRUTi4gU2NoZWR1bGUgdGFza2xldCB0byByZWFkIGFpZC4gKi8KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKIAkJaWYgKCF0cC0+dGhyb3R0bGUpCiAJCQl0dHkzMjcwX2lzc3VlX3JlYWQodHAsIDApOwogCQllbHNlCkBAIC02NzEsMTEgKzY3MSwxMSBAQAogCX0KIAogCWlmIChycSkgewotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKQogCQkJcnEtPnJjID0gLUVJTzsKIAkJZWxzZQogCQkJLyogTm9ybWFsIGVuZC4gQ29weSByZXNpZHVhbCBjb3VudC4gKi8KLQkJCXJxLT5yZXNjbnQgPSBpcmItPnNjc3cuY291bnQ7CisJCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKIAl9CiAJcmV0dXJuIFJBVzMyNzBfSU9fRE9ORTsKIH0KQEAgLTE3OTIsMTUgKzE3OTIsMTIgQEAKIAl0dHlfc2V0X29wZXJhdGlvbnMoZHJpdmVyLCAmdHR5MzI3MF9vcHMpOwogCXJldCA9IHR0eV9yZWdpc3Rlcl9kcml2ZXIoZHJpdmVyKTsKIAlpZiAocmV0KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAidHR5MzI3MCByZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggJWRcbiIsIHJldCk7CiAJCXB1dF90dHlfZHJpdmVyKGRyaXZlcik7CiAJCXJldHVybiByZXQ7CiAJfQogCXR0eTMyNzBfZHJpdmVyID0gZHJpdmVyOwogCXJldCA9IHJhdzMyNzBfcmVnaXN0ZXJfbm90aWZpZXIodHR5MzI3MF9ub3RpZmllcik7CiAJaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9FUlIgInR0eTMyNzAgbm90aWZpZXIgcmVnaXN0cmF0aW9uIGZhaWxlZCAiCi0JCSAgICAgICAid2l0aCAlZFxuIiwgcmV0KTsKIAkJcHV0X3R0eV9kcml2ZXIoZHJpdmVyKTsKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdm1jcC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdm1jcC5jCmluZGV4IDJmNDE5YjAuLjA5ZTdkOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3ZtY3AuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci92bWNwLmMKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vY3BjbWQuaD4KICNpbmNsdWRlIDxhc20vZGVidWcuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtMzksMTEgKzQwLDE0IEBACiAJc2Vzc2lvbiA9IGttYWxsb2Moc2l6ZW9mKCpzZXNzaW9uKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzZXNzaW9uKQogCQlyZXR1cm4gLUVOT01FTTsKKworCWxvY2tfa2VybmVsKCk7CiAJc2Vzc2lvbi0+YnVmc2l6ZSA9IFBBR0VfU0laRTsKIAlzZXNzaW9uLT5yZXNwb25zZSA9IE5VTEw7CiAJc2Vzc2lvbi0+cmVzcF9zaXplID0gMDsKIAltdXRleF9pbml0KCZzZXNzaW9uLT5tdXRleCk7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gc2Vzc2lvbjsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwogfQogCkBAIC02MSwzMCArNjUsMjQgQEAKIHN0YXRpYyBzc2l6ZV90CiB2bWNwX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWZmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKIHsKLQlzaXplX3QgdG9jb3B5OworCXNzaXplX3QgcmV0OworCXNpemVfdCBzaXplOwogCXN0cnVjdCB2bWNwX3Nlc3Npb24gKnNlc3Npb247CiAKLQlzZXNzaW9uID0gKHN0cnVjdCB2bWNwX3Nlc3Npb24gKilmaWxlLT5wcml2YXRlX2RhdGE7CisJc2Vzc2lvbiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAlpZiAobXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZzZXNzaW9uLT5tdXRleCkpCiAJCXJldHVybiAtRVJFU1RBUlRTWVM7CiAJaWYgKCFzZXNzaW9uLT5yZXNwb25zZSkgewogCQltdXRleF91bmxvY2soJnNlc3Npb24tPm11dGV4KTsKIAkJcmV0dXJuIDA7CiAJfQotCWlmICgqcHBvcyA+IHNlc3Npb24tPnJlc3Bfc2l6ZSkgewotCQltdXRleF91bmxvY2soJnNlc3Npb24tPm11dGV4KTsKLQkJcmV0dXJuIDA7Ci0JfQotCXRvY29weSA9IG1pbihzZXNzaW9uLT5yZXNwX3NpemUgLSAoc2l6ZV90KSAoKnBwb3MpLCBjb3VudCk7Ci0JdG9jb3B5ID0gbWluKHRvY29weSwgc2Vzc2lvbi0+YnVmc2l6ZSAtIChzaXplX3QpICgqcHBvcykpOworCXNpemUgPSBtaW5fdChzaXplX3QsIHNlc3Npb24tPnJlc3Bfc2l6ZSwgc2Vzc2lvbi0+YnVmc2l6ZSk7CisJcmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmZiwgY291bnQsIHBwb3MsCisJCQkJCXNlc3Npb24tPnJlc3BvbnNlLCBzaXplKTsKIAotCWlmIChjb3B5X3RvX3VzZXIoYnVmZiwgc2Vzc2lvbi0+cmVzcG9uc2UgKyAoKnBwb3MpLCB0b2NvcHkpKSB7Ci0JCW11dGV4X3VubG9jaygmc2Vzc2lvbi0+bXV0ZXgpOwotCQlyZXR1cm4gLUVGQVVMVDsKLQl9CiAJbXV0ZXhfdW5sb2NrKCZzZXNzaW9uLT5tdXRleCk7Ci0JKnBwb3MgKz0gdG9jb3B5OwotCXJldHVybiB0b2NvcHk7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgc3NpemVfdApAQCAtMTk4LDI3ICsxOTYsMjMgQEAKIAkJUFJJTlRfV0FSTigiei9WTSBDUCBpbnRlcmZhY2UgaXMgb25seSBhdmFpbGFibGUgdW5kZXIgei9WTVxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KKwogCXZtY3BfZGVidWcgPSBkZWJ1Z19yZWdpc3Rlcigidm1jcCIsIDEsIDEsIDI0MCk7Ci0JaWYgKCF2bWNwX2RlYnVnKSB7Ci0JCVBSSU5UX0VSUigiei9WTSBDUCBpbnRlcmZhY2Ugbm90IGxvYWRlZC4gQ291bGQgbm90IHJlZ2lzdGVyICIKLQkJCSAgICJkZWJ1ZyBmZWF0dXJlXG4iKTsKKwlpZiAoIXZtY3BfZGVidWcpCiAJCXJldHVybiAtRU5PTUVNOwotCX0KKwogCXJldCA9IGRlYnVnX3JlZ2lzdGVyX3ZpZXcodm1jcF9kZWJ1ZywgJmRlYnVnX2hleF9hc2NpaV92aWV3KTsKIAlpZiAocmV0KSB7Ci0JCVBSSU5UX0VSUigiei9WTSBDUCBpbnRlcmZhY2Ugbm90IGxvYWRlZC4gQ291bGQgbm90IHJlZ2lzdGVyICIKLQkJCSAgImRlYnVnIGZlYXR1cmUgdmlldy4gRXJyb3IgY29kZTogJWRcbiIsIHJldCk7CiAJCWRlYnVnX3VucmVnaXN0ZXIodm1jcF9kZWJ1Zyk7CiAJCXJldHVybiByZXQ7CiAJfQorCiAJcmV0ID0gbWlzY19yZWdpc3Rlcigmdm1jcF9kZXYpOwogCWlmIChyZXQpIHsKLQkJUFJJTlRfRVJSKCJ6L1ZNIENQIGludGVyZmFjZSBub3QgbG9hZGVkLiBDb3VsZCBub3QgcmVnaXN0ZXIgIgotCQkJICAgIm1pc2MgZGV2aWNlLiBFcnJvciBjb2RlOiAlZFxuIiwgcmV0KTsKIAkJZGVidWdfdW5yZWdpc3Rlcih2bWNwX2RlYnVnKTsKIAkJcmV0dXJuIHJldDsKIAl9Ci0JUFJJTlRfSU5GTygiei9WTSBDUCBpbnRlcmZhY2UgbG9hZGVkXG4iKTsKKwogCXJldHVybiAwOwogfQogCkBAIC0yMjYsNyArMjIwLDYgQEAKIHsKIAltaXNjX2RlcmVnaXN0ZXIoJnZtY3BfZGV2KTsKIAlkZWJ1Z191bnJlZ2lzdGVyKHZtY3BfZGVidWcpOwotCVBSSU5UX0lORk8oInovVk0gQ1AgaW50ZXJmYWNlIHVubG9hZGVkLlxuIik7CiB9CiAKIG1vZHVsZV9pbml0KHZtY3BfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci92bWxvZ3Jkci5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdm1sb2dyZHIuYwppbmRleCAyYzI0MjhjLi5jMzFmYWVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci92bWxvZ3Jkci5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3ZtbG9ncmRyLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rbW9kLmg+CiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAKIApAQCAtMjE2LDkgKzIxNyw3IEBACiAJY2hhciAqdGFpbDsKIAlpbnQgbGVuLGk7CiAKLQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiBxdWVyeSBjb21tYW5kOiAlc1xuIiwgY3BfY29tbWFuZCk7CiAJY3BjbWQoY3BfY29tbWFuZCwgY3BfcmVzcG9uc2UsIHNpemVvZihjcF9yZXNwb25zZSksIE5VTEwpOwotCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlc3BvbnNlOiAlcyIsIGNwX3Jlc3BvbnNlKTsKIAlsZW4gPSBzdHJubGVuKGNwX3Jlc3BvbnNlLHNpemVvZihjcF9yZXNwb25zZSkpOwogCS8vIG5vdyB0aGUgcGFyc2luZwogCXRhaWw9c3RybmNocihjcF9yZXNwb25zZSxsZW4sJz0nKTsKQEAgLTI2OCwxMSArMjY3LDcgQEAKIAkJCSBsb2dwdHItPnJlY29yZGluZ19uYW1lLAogCQkJIHFpZF9zdHJpbmcpOwogCi0JCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlY29yZGluZyBjb21tYW5kOiAlc1xuIiwKLQkJCWNwX2NvbW1hbmQpOwogCQljcGNtZChjcF9jb21tYW5kLCBjcF9yZXNwb25zZSwgc2l6ZW9mKGNwX3Jlc3BvbnNlKSwgTlVMTCk7Ci0JCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlY29yZGluZyByZXNwb25zZTogJXMiLAotCQkJY3BfcmVzcG9uc2UpOwogCX0KIAogCW1lbXNldChjcF9jb21tYW5kLCAweDAwLCBzaXplb2YoY3BfY29tbWFuZCkpOwpAQCAtMjgyLDEwICsyNzcsNyBAQAogCQlvbm9mZiwKIAkJcWlkX3N0cmluZyk7CiAKLQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiByZWNvcmRpbmcgY29tbWFuZDogJXNcbiIsIGNwX2NvbW1hbmQpOwogCWNwY21kKGNwX2NvbW1hbmQsIGNwX3Jlc3BvbnNlLCBzaXplb2YoY3BfcmVzcG9uc2UpLCBOVUxMKTsKLQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiByZWNvcmRpbmcgcmVzcG9uc2U6ICVzIiwKLQkJY3BfcmVzcG9uc2UpOwogCS8qIFRoZSByZWNvcmRpbmcgY29tbWFuZCB3aWxsIHVzdWFsbHkgYW5zd2VyIHdpdGggJ0NvbW1hbmQgY29tcGxldGUnCiAJICogb24gc3VjY2VzcywgYnV0IHdoZW4gdGhlIHNwZWNpZmljIHNlcnZpY2Ugd2FzIG5ldmVyIGNvbm5lY3RlZAogCSAqIGJlZm9yZSB0aGVuIHRoZXJlIG1pZ2h0IGJlIGFuIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25hbCBtZXNzYWdlCkBAIC0zMTksOSArMzExLDExIEBACiAJCXJldHVybiAtRU5PU1lTOwogCiAJLyogQmVzdXJlIHRoaXMgZGV2aWNlIGhhc24ndCBhbHJlYWR5IGJlZW4gb3BlbmVkICovCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfYmgoJmxvZ3B0ci0+cHJpdl9sb2NrKTsKIAlpZiAobG9ncHRyLT5kZXZfaW5fdXNlKQl7CiAJCXNwaW5fdW5sb2NrX2JoKCZsb2dwdHItPnByaXZfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAJbG9ncHRyLT5kZXZfaW5fdXNlID0gMTsKQEAgLTM2NSw3ICszNTksOSBAQAogCQkgICB8fCAobG9ncHRyLT5pdWN2X3BhdGhfc2V2ZXJlZCkpOwogCWlmIChsb2dwdHItPml1Y3ZfcGF0aF9zZXZlcmVkKQogCQlnb3RvIG91dF9yZWNvcmQ7Ci0gCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKKyAJcmV0ID0gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiAKIG91dF9yZWNvcmQ6CiAJaWYgKGxvZ3B0ci0+YXV0b3JlY29yZGluZykKQEAgLTM3NSw2ICszNzEsNyBAQAogCWxvZ3B0ci0+cGF0aCA9IE5VTEw7CiBvdXRfZGV2OgogCWxvZ3B0ci0+ZGV2X2luX3VzZSA9IDA7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRUlPOwogfQogCkBAIC01NjcsMTAgKzU2NCw3IEBACiAJCQkgIlJFQ09SRElORyAlcyBQVVJHRSAiLAogCQkJIHByaXYtPnJlY29yZGluZ19uYW1lKTsKIAotCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlY29yZGluZyBjb21tYW5kOiAlc1xuIiwgY3BfY29tbWFuZCk7CiAJY3BjbWQoY3BfY29tbWFuZCwgY3BfcmVzcG9uc2UsIHNpemVvZihjcF9yZXNwb25zZSksIE5VTEwpOwotCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlY29yZGluZyByZXNwb25zZTogJXMiLAotCQljcF9yZXNwb25zZSk7CiAKIAlyZXR1cm4gY291bnQ7CiB9CkBAIC02ODIsMjggKzY3NiwyMCBAQAogCiAJLyogUmVnaXN0ZXIgd2l0aCBpdWN2IGRyaXZlciAqLwogCXJldCA9IGl1Y3ZfcmVnaXN0ZXIoJnZtbG9ncmRyX2l1Y3ZfaGFuZGxlciwgMSk7Ci0JaWYgKHJldCkgewotCQlwcmludGsgKEtFUk5fRVJSICJ2bWxvZ3JkcjogZmFpbGVkIHRvIHJlZ2lzdGVyIHdpdGggIgotCQkJIml1Y3YgZHJpdmVyXG4iKTsKKwlpZiAocmV0KQogCQlnb3RvIG91dDsKLQl9CiAKIAlyZXQgPSBkcml2ZXJfcmVnaXN0ZXIoJnZtbG9ncmRyX2RyaXZlcik7Ci0JaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9FUlIgInZtbG9ncmRyOiBmYWlsZWQgdG8gcmVnaXN0ZXIgZHJpdmVyLlxuIik7CisJaWYgKHJldCkKIAkJZ290byBvdXRfaXVjdjsKLQl9CiAKIAlyZXQgPSBkcml2ZXJfY3JlYXRlX2ZpbGUoJnZtbG9ncmRyX2RyaXZlciwKIAkJCQkgJmRyaXZlcl9hdHRyX3JlY29yZGluZ19zdGF0dXMpOwotCWlmIChyZXQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJ2bWxvZ3JkcjogZmFpbGVkIHRvIGFkZCBkcml2ZXIgYXR0cmlidXRlLlxuIik7CisJaWYgKHJldCkKIAkJZ290byBvdXRfZHJpdmVyOwotCX0KIAogCXZtbG9ncmRyX2NsYXNzID0gY2xhc3NfY3JlYXRlKFRISVNfTU9EVUxFLCAidm1sb2dyZHIiKTsKIAlpZiAoSVNfRVJSKHZtbG9ncmRyX2NsYXNzKSkgewotCQlwcmludGsoS0VSTl9FUlIgInZtbG9ncmRyOiBmYWlsZWQgdG8gY3JlYXRlIGNsYXNzLlxuIik7CiAJCXJldCA9IFBUUl9FUlIodm1sb2dyZHJfY2xhc3MpOwogCQl2bWxvZ3Jkcl9jbGFzcyA9IE5VTEw7CiAJCWdvdG8gb3V0X2F0dHI7CkBAIC04NzEsMTIgKzg1NywxMCBAQAogCXJjID0gdm1sb2dyZHJfcmVnaXN0ZXJfY2RldihkZXYpOwogCWlmIChyYykKIAkJZ290byBjbGVhbnVwOwotCXByaW50ayAoS0VSTl9JTkZPICJ2bWxvZ3JkcjogZHJpdmVyIGxvYWRlZFxuIik7CiAJcmV0dXJuIDA7CiAKIGNsZWFudXA6CiAJdm1sb2dyZHJfY2xlYW51cCgpOwotCXByaW50ayAoS0VSTl9FUlIgInZtbG9ncmRyOiBkcml2ZXIgbm90IGxvYWRlZC5cbiIpOwogCXJldHVybiByYzsKIH0KIApAQCAtODg0LDcgKzg2OCw2IEBACiBzdGF0aWMgdm9pZCBfX2V4aXQgdm1sb2dyZHJfZXhpdCh2b2lkKQogewogCXZtbG9ncmRyX2NsZWFudXAoKTsKLQlwcmludGsgKEtFUk5fSU5GTyAidm1sb2dyZHI6IGRyaXZlciB1bmxvYWRlZFxuIik7CiAJcmV0dXJuOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci92bXVyLmMgYi9kcml2ZXJzL3MzOTAvY2hhci92bXVyLmMKaW5kZXggODNhZTlhOC4uMGE5ZjFjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvdm11ci5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3ZtdXIuYwpAQCAtOSw2ICs5LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9jaW8uaD4KQEAgLTI3Nyw3ICsyNzgsOCBAQAogCXN0cnVjdCB1cmRldiAqdXJkOwogCiAJVFJBQ0UoInVyX2ludF9oYW5kbGVyOiBpbnRwYXJtPTB4JWx4IGNzdGF0PSUwMnggZHN0YXQ9JTAyeCByZXM9JXVcbiIsCi0JICAgICAgaW50cGFybSwgaXJiLT5zY3N3LmNzdGF0LCBpcmItPnNjc3cuZHN0YXQsIGlyYi0+c2Nzdy5jb3VudCk7CisJICAgICAgaW50cGFybSwgaXJiLT5zY3N3LmNtZC5jc3RhdCwgaXJiLT5zY3N3LmNtZC5kc3RhdCwKKwkgICAgICBpcmItPnNjc3cuY21kLmNvdW50KTsKIAogCWlmICghaW50cGFybSkgewogCQlUUkFDRSgidXJfaW50X2hhbmRsZXI6IHVuc29saWNpdGVkIGludGVycnVwdFxuIik7CkBAIC0yODgsNyArMjkwLDcgQEAKIAkvKiBPbiBzcGVjaWFsIGNvbmRpdGlvbnMgaXJiIGlzIGFuIGVycm9yIHBvaW50ZXIgKi8KIAlpZiAoSVNfRVJSKGlyYikpCiAJCXVyZC0+aW9fcmVxdWVzdF9yYyA9IFBUUl9FUlIoaXJiKTsKLQllbHNlIGlmIChpcmItPnNjc3cuZHN0YXQgPT0gKERFVl9TVEFUX0NITl9FTkQgfCBERVZfU1RBVF9ERVZfRU5EKSkKKwllbHNlIGlmIChpcmItPnNjc3cuY21kLmRzdGF0ID09IChERVZfU1RBVF9DSE5fRU5EIHwgREVWX1NUQVRfREVWX0VORCkpCiAJCXVyZC0+aW9fcmVxdWVzdF9yYyA9IDA7CiAJZWxzZQogCQl1cmQtPmlvX3JlcXVlc3RfcmMgPSAtRUlPOwpAQCAtNjY4LDcgKzY3MCw3IEBACiAKIAlpZiAoYWNjbW9kZSA9PSBPX1JEV1IpCiAJCXJldHVybiAtRUFDQ0VTOwotCisJbG9ja19rZXJuZWwoKTsKIAkvKgogCSAqIFdlIHRyZWF0IHRoZSBtaW5vciBudW1iZXIgYXMgdGhlIGRldm5vIG9mIHRoZSB1ciBkZXZpY2UKIAkgKiB0byBmaW5kIGluIHRoZSBkcml2ZXIgdHJlZS4KQEAgLTY3Niw4ICs2NzgsMTAgQEAKIAlkZXZubyA9IE1JTk9SKGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYpOwogCiAJdXJkID0gdXJkZXZfZ2V0X2Zyb21fZGV2bm8oZGV2bm8pOwotCWlmICghdXJkKQotCQlyZXR1cm4gLUVOWElPOworCWlmICghdXJkKSB7CisJCXJjID0gLUVOWElPOworCQlnb3RvIG91dDsKKwl9CiAKIAlzcGluX2xvY2soJnVyZC0+b3Blbl9sb2NrKTsKIAl3aGlsZSAodXJkLT5vcGVuX2ZsYWcpIHsKQEAgLTcyMCw2ICs3MjQsNyBAQAogCQlnb3RvIGZhaWxfdXJmaWxlX2ZyZWU7CiAJdXJmLT5maWxlX3JlY2xlbiA9IHJjOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHVyZjsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIGZhaWxfdXJmaWxlX2ZyZWU6CkBAIC03MzAsNiArNzM1LDggQEAKIAlzcGluX3VubG9jaygmdXJkLT5vcGVuX2xvY2spOwogZmFpbF9wdXQ6CiAJdXJkZXZfcHV0KHVyZCk7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByYzsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdm13YXRjaGRvZy5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdm13YXRjaGRvZy5jCmluZGV4IDE5ZjgzODkuLjIxYTJhODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3Ztd2F0Y2hkb2cuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci92bXdhdGNoZG9nLmMKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3dhdGNoZG9nLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9lYmNkaWMuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTkyLDIzICs5MywxNSBAQAogCiAJZnVuYyA9IHZtd2R0X2NvbmNlYWwgPyAod2R0X2luaXQgfCB3ZHRfY29uY2VhbCkgOiB3ZHRfaW5pdDsKIAlyZXQgPSBfX2RpYWcyODgoZnVuYywgdm13ZHRfaW50ZXJ2YWwsIGViY19jbWQsIGxlbik7CisJV0FSTl9PTihyZXQgIT0gMCk7CiAJa2ZyZWUoZWJjX2NtZCk7Ci0KLQlpZiAocmV0KSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiBwcm9ibGVtIHNldHRpbmcgaW50ZXJ2YWwgJWQsICIKLQkJCSJjbWQgJXNcbiIsIF9fZnVuY19fLCB2bXdkdF9pbnRlcnZhbCwKLQkJCXZtd2R0X2NtZCk7Ci0JfQogCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgdm13ZHRfZGlzYWJsZSh2b2lkKQogewogCWludCByZXQgPSBfX2RpYWcyODgod2R0X2NhbmNlbCwgMCwgIiIsIDApOwotCWlmIChyZXQpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IHByb2JsZW0gZGlzYWJsaW5nIHdhdGNoZG9nXG4iLAotCQkJX19mdW5jX18pOwotCX0KKwlXQVJOX09OKHJldCAhPSAwKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMjEsMjEgKzExNCwyMyBAQAogCXN0YXRpYyBjaGFyIF9faW5pdGRhdGEgZWJjX2JlZ2luW10gPSB7CiAJCTE5NCwgMTk3LCAxOTksIDIwMSwgMjEzCiAJfTsKLQlpZiAoX19kaWFnMjg4KHdkdF9pbml0LCAxNSwgZWJjX2JlZ2luLCBzaXplb2YoZWJjX2JlZ2luKSkgIT0gMCkgewotCQlwcmludGsoS0VSTl9JTkZPICJ6L1ZNIHdhdGNoZG9nIG5vdCBhdmFpbGFibGVcbiIpOworCWlmIChfX2RpYWcyODgod2R0X2luaXQsIDE1LCBlYmNfYmVnaW4sIHNpemVvZihlYmNfYmVnaW4pKSAhPSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAJcmV0dXJuIHZtd2R0X2Rpc2FibGUoKTsKIH0KIAogc3RhdGljIGludCB2bXdkdF9vcGVuKHN0cnVjdCBpbm9kZSAqaSwgc3RydWN0IGZpbGUgKmYpCiB7CiAJaW50IHJldDsKLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmdm13ZHRfaXNfb3BlbikpCisJbG9ja19rZXJuZWwoKTsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmdm13ZHRfaXNfb3BlbikpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOworCX0KIAlyZXQgPSB2bXdkdF9rZWVwYWxpdmUoKTsKIAlpZiAocmV0KQogCQljbGVhcl9iaXQoMCwgJnZtd2R0X2lzX29wZW4pOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmV0ID8gcmV0IDogbm9uc2Vla2FibGVfb3BlbihpLCBmKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvemNvcmUuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3pjb3JlLmMKaW5kZXggYmJiZDE0ZS4uMDQ3ZGQ5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvemNvcmUuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci96Y29yZS5jCkBAIC0yMjMsMTIgKzIyMywxMCBAQAogCS8qIGdldCBpbmZvIGZvciBib290IGNwdSBmcm9tIGxvd2NvcmUsIHN0b3JlZCBpbiB0aGUgSFNBICovCiAKIAlzYSA9IGttYWxsb2Moc2l6ZW9mKCpzYSksIEdGUF9LRVJORUwpOwotCWlmICghc2EpIHsKLQkJRVJST1JfTVNHKCJrbWFsbG9jIGZhaWxlZDogJXM6ICVpXG4iLF9fZnVuY19fLCBfX0xJTkVfXyk7CisJaWYgKCFzYSkKIAkJcmV0dXJuIC1FTk9NRU07Ci0JfQogCWlmIChtZW1jcHlfaHNhX2tlcm5lbChzYSwgc3lzX2luZm8uc2FfYmFzZSwgc3lzX2luZm8uc2Ffc2l6ZSkgPCAwKSB7Ci0JCUVSUk9SX01TRygiY291bGQgbm90IGNvcHkgZnJvbSBIU0FcbiIpOworCQlUUkFDRSgiY291bGQgbm90IGNvcHkgZnJvbSBIU0FcbiIpOwogCQlrZnJlZShzYSk7CiAJCXJldHVybiAtRUlPOwogCX0KQEAgLTUxMSw2ICs1MDksOCBAQAogICovCiBzdGF0aWMgaW50IF9faW5pdCBzeXNfaW5mb19pbml0KGVudW0gYXJjaF9pZCBhcmNoKQogeworCWludCByYzsKKwogCXN3aXRjaCAoYXJjaCkgewogCWNhc2UgQVJDSF9TMzkwWDoKIAkJTVNHKCJERVRFQ1RFRCAnUzM5MFggKDY0IGJpdCkgT1MnXG4iKTsKQEAgLTUyOSwxMCArNTI5LDkgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXN5c19pbmZvLmFyY2ggPSBhcmNoOwotCWlmIChpbml0X2NwdV9pbmZvKGFyY2gpKSB7Ci0JCUVSUk9SX01TRygiZ2V0IGNwdSBpbmZvIGZhaWxlZFxuIik7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KKwlyYyA9IGluaXRfY3B1X2luZm8oYXJjaCk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CiAJc3lzX2luZm8ubWVtX3NpemUgPSByZWFsX21lbW9yeV9zaXplOwogCiAJcmV0dXJuIDA7CkBAIC01NDQsMTIgKzU0MywxMiBAQAogCiAJcmMgPSBzY2xwX3NkaWFzX2Jsa19jb3VudCgpOwogCWlmIChyYyA8IDApIHsKLQkJRVJST1JfTVNHKCJDb3VsZCBub3QgZGV0ZXJtaW5lIEhTQSBzaXplXG4iKTsKKwkJVFJBQ0UoIkNvdWxkIG5vdCBkZXRlcm1pbmUgSFNBIHNpemVcbiIpOwogCQlyZXR1cm4gcmM7CiAJfQogCWFjdF9oc2Ffc2l6ZSA9IChyYyAtIDEpICogUEFHRV9TSVpFOwogCWlmIChhY3RfaHNhX3NpemUgPCBaRkNQRFVNUF9IU0FfU0laRSkgewotCQlFUlJPUl9NU0coIkhTQSBzaXplIHRvbyBzbWFsbDogJWlcbiIsIGFjdF9oc2Ffc2l6ZSk7CisJCVRSQUNFKCJIU0Egc2l6ZSB0b28gc21hbGw6ICVpXG4iLCBhY3RfaHNhX3NpemUpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIDA7CkBAIC01OTAsMTYgKzU4OSwxMiBAQAogCQlnb3RvIGZhaWw7CiAKIAlyYyA9IGNoZWNrX3NkaWFzKCk7Ci0JaWYgKHJjKSB7Ci0JCUVSUk9SX01TRygiRHVtcCBpbml0aWFsaXphdGlvbiBmYWlsZWRcbiIpOworCWlmIChyYykKIAkJZ290byBmYWlsOwotCX0KIAogCXJjID0gbWVtY3B5X2hzYV9rZXJuZWwoJmFyY2gsIF9fTENfQVJfTU9ERV9JRCwgMSk7Ci0JaWYgKHJjKSB7Ci0JCUVSUk9SX01TRygic2RpYWwgbWVtY3B5IGZvciBhcmNoIGlkIGZhaWxlZFxuIik7CisJaWYgKHJjKQogCQlnb3RvIGZhaWw7Ci0JfQogCiAjaWZuZGVmIF9fczM5MHhfXwogCWlmIChhcmNoID09IEFSQ0hfUzM5MFgpIHsKQEAgLTYxMCwxMCArNjA1LDggQEAKICNlbmRpZgogCiAJcmMgPSBzeXNfaW5mb19pbml0KGFyY2gpOwotCWlmIChyYykgewotCQlFUlJPUl9NU0coImFyY2ggaW5pdCBmYWlsZWRcbiIpOworCWlmIChyYykKIAkJZ290byBmYWlsOwotCX0KIAogCXpjb3JlX2hlYWRlcl9pbml0KGFyY2gsICZ6Y29yZV9oZWFkZXIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL01ha2VmaWxlIGIvZHJpdmVycy9zMzkwL2Npby9NYWtlZmlsZQppbmRleCBjZmFmNzdiLi45MWU5ZTNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vTWFrZWZpbGUKQEAgLTIsOSArMiwxMSBAQAogIyBNYWtlZmlsZSBmb3IgdGhlIFMvMzkwIGNvbW1vbiBpL28gZHJpdmVycwogIwogCi1vYmoteSArPSBhaXJxLm8gYmxhY2tsaXN0Lm8gY2hzYy5vIGNpby5vIGNzcy5vIGNocC5vIGlkc2V0Lm8KK29iai15ICs9IGFpcnEubyBibGFja2xpc3QubyBjaHNjLm8gY2lvLm8gY3NzLm8gY2hwLm8gaWRzZXQubyBpc2MubyBzY3N3Lm8gXAorCWZjeC5vIGl0Y3cubwogY2N3X2RldmljZS1vYmpzICs9IGRldmljZS5vIGRldmljZV9mc20ubyBkZXZpY2Vfb3BzLm8KIGNjd19kZXZpY2Utb2JqcyArPSBkZXZpY2VfaWQubyBkZXZpY2VfcGdpZC5vIGRldmljZV9zdGF0dXMubwogb2JqLXkgKz0gY2N3X2RldmljZS5vIGNtZi5vCitvYmotJChDT05GSUdfQ0hTQ19TQ0gpICs9IGNoc2Nfc2NoLm8KIG9iai0kKENPTkZJR19DQ1dHUk9VUCkgKz0gY2N3Z3JvdXAubwogb2JqLSQoQ09ORklHX1FESU8pICs9IHFkaW8ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9haXJxLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2FpcnEuYwppbmRleCBiN2EwN2E4Li5mZTZjZWExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2FpcnEuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2FpcnEuYwpAQCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+CiAKICNpbmNsdWRlIDxhc20vYWlycS5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KIAogI2luY2x1ZGUgImNpby5oIgogI2luY2x1ZGUgImNpb19kZWJ1Zy5oIgpAQCAtMzMsMTUgKzM0LDE1IEBACiAJdm9pZCAqZHJ2X2RhdGE7CiB9OwogCi1zdGF0aWMgdW5pb24gaW5kaWNhdG9yX3QgaW5kaWNhdG9yczsKLXN0YXRpYyBzdHJ1Y3QgYWlycV90ICphaXJxc1tOUl9BSVJRU107CitzdGF0aWMgdW5pb24gaW5kaWNhdG9yX3QgaW5kaWNhdG9yc1tNQVhfSVNDXTsKK3N0YXRpYyBzdHJ1Y3QgYWlycV90ICphaXJxc1tNQVhfSVNDXVtOUl9BSVJRU107CiAKLXN0YXRpYyBpbnQgcmVnaXN0ZXJfYWlycShzdHJ1Y3QgYWlycV90ICphaXJxKQorc3RhdGljIGludCByZWdpc3Rlcl9haXJxKHN0cnVjdCBhaXJxX3QgKmFpcnEsIHU4IGlzYykKIHsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBOUl9BSVJRUzsgaSsrKQotCQlpZiAoIWNtcHhjaGcoJmFpcnFzW2ldLCBOVUxMLCBhaXJxKSkKKwkJaWYgKCFjbXB4Y2hnKCZhaXJxc1tpc2NdW2ldLCBOVUxMLCBhaXJxKSkKIAkJCXJldHVybiBpOwogCXJldHVybiAtRU5PTUVNOwogfQpAQCAtNTAsMTggKzUxLDIxIEBACiAgKiBzMzkwX3JlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KCkgLSByZWdpc3RlciBhZGFwdGVyIGludGVycnVwdCBoYW5kbGVyCiAgKiBAaGFuZGxlcjogYWRhcHRlciBoYW5kbGVyIHRvIGJlIHJlZ2lzdGVyZWQKICAqIEBkcnZfZGF0YTogZHJpdmVyIGRhdGEgcGFzc2VkIHdpdGggZWFjaCBjYWxsIHRvIHRoZSBoYW5kbGVyCisgKiBAaXNjOiBpc2MgZm9yIHdoaWNoIHRoZSBoYW5kbGVyIHNob3VsZCBiZSBjYWxsZWQKICAqCiAgKiBSZXR1cm5zOgogICogIFBvaW50ZXIgdG8gdGhlIGluZGljYXRvciB0byBiZSB1c2VkIG9uIHN1Y2Nlc3MKICAqICBFUlJfUFRSKCkgaWYgcmVnaXN0cmF0aW9uIGZhaWxlZAogICovCiB2b2lkICpzMzkwX3JlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KGFkYXB0ZXJfaW50X2hhbmRsZXJfdCBoYW5kbGVyLAotCQkJCSAgICAgIHZvaWQgKmRydl9kYXRhKQorCQkJCSAgICAgIHZvaWQgKmRydl9kYXRhLCB1OCBpc2MpCiB7CiAJc3RydWN0IGFpcnFfdCAqYWlycTsKIAljaGFyIGRiZl90eHRbMTZdOwogCWludCByZXQ7CiAKKwlpZiAoaXNjID4gTUFYX0lTQykKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAJYWlycSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBhaXJxX3QpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWFpcnEpIHsKIAkJcmV0ID0gLUVOT01FTTsKQEAgLTY5LDM0ICs3MywzNSBAQAogCX0KIAlhaXJxLT5oYW5kbGVyID0gaGFuZGxlcjsKIAlhaXJxLT5kcnZfZGF0YSA9IGRydl9kYXRhOwotCXJldCA9IHJlZ2lzdGVyX2FpcnEoYWlycSk7Ci0JaWYgKHJldCA8IDApCi0JCWtmcmVlKGFpcnEpOworCisJcmV0ID0gcmVnaXN0ZXJfYWlycShhaXJxLCBpc2MpOwogb3V0OgogCXNucHJpbnRmKGRiZl90eHQsIHNpemVvZihkYmZfdHh0KSwgInJhaXJxOiVkIiwgcmV0KTsKIAlDSU9fVFJBQ0VfRVZFTlQoNCwgZGJmX3R4dCk7Ci0JaWYgKHJldCA8IDApCisJaWYgKHJldCA8IDApIHsKKwkJa2ZyZWUoYWlycSk7CiAJCXJldHVybiBFUlJfUFRSKHJldCk7Ci0JZWxzZQotCQlyZXR1cm4gJmluZGljYXRvcnMuYnl0ZVtyZXRdOworCX0gZWxzZQorCQlyZXR1cm4gJmluZGljYXRvcnNbaXNjXS5ieXRlW3JldF07CiB9CiBFWFBPUlRfU1lNQk9MKHMzOTBfcmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQpOwogCiAvKioKICAqIHMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCAtIHVucmVnaXN0ZXIgYWRhcHRlciBpbnRlcnJ1cHQgaGFuZGxlcgogICogQGluZDogaW5kaWNhdG9yIGZvciB3aGljaCB0aGUgaGFuZGxlciBpcyB0byBiZSB1bnJlZ2lzdGVyZWQKKyAqIEBpc2M6IGludGVycnVwdGlvbiBzdWJjbGFzcwogICovCi12b2lkIHMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCh2b2lkICppbmQpCit2b2lkIHMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCh2b2lkICppbmQsIHU4IGlzYykKIHsKIAlzdHJ1Y3QgYWlycV90ICphaXJxOwogCWNoYXIgZGJmX3R4dFsxNl07CiAJaW50IGk7CiAKLQlpID0gKGludCkgKChhZGRyX3QpIGluZCkgLSAoKGFkZHJfdCkgJmluZGljYXRvcnMuYnl0ZVswXSk7CisJaSA9IChpbnQpICgoYWRkcl90KSBpbmQpIC0gKChhZGRyX3QpICZpbmRpY2F0b3JzW2lzY10uYnl0ZVswXSk7CiAJc25wcmludGYoZGJmX3R4dCwgc2l6ZW9mKGRiZl90eHQpLCAidXJhaXJxOiVkIiwgaSk7CiAJQ0lPX1RSQUNFX0VWRU5UKDQsIGRiZl90eHQpOwotCWluZGljYXRvcnMuYnl0ZVtpXSA9IDA7Ci0JYWlycSA9IHhjaGcoJmFpcnFzW2ldLCBOVUxMKTsKKwlpbmRpY2F0b3JzW2lzY10uYnl0ZVtpXSA9IDA7CisJYWlycSA9IHhjaGcoJmFpcnFzW2lzY11baV0sIE5VTEwpOwogCS8qCiAJICogQWxsb3cgaW50ZXJydXB0cyB0byBjb21wbGV0ZS4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBhaXJxIGhhbmRsZQogCSAqIGlzIG5vIGxvbmdlciByZWZlcmVuY2VkIGJ5IGFueSBpbnRlcnJ1cHQgaGFuZGxlci4KQEAgLTEwOCw3ICsxMTMsNyBAQAogCiAjZGVmaW5lIElORElDQVRPUl9NQVNLCSgweGZmVUwgPDwgKChOUl9BSVJRU19QRVJfV09SRCAtIDEpICogOCkpCiAKLXZvaWQgZG9fYWRhcHRlcl9JTyh2b2lkKQordm9pZCBkb19hZGFwdGVyX0lPKHU4IGlzYykKIHsKIAlpbnQgdzsKIAlpbnQgaTsKQEAgLTEyMCwyMiArMTI1LDIyIEBACiAJICogZmV0Y2ggb3BlcmF0aW9ucy4KIAkgKi8KIAlmb3IgKHcgPSAwOyB3IDwgTlJfQUlSUV9XT1JEUzsgdysrKSB7Ci0JCXdvcmQgPSBpbmRpY2F0b3JzLndvcmRbd107CisJCXdvcmQgPSBpbmRpY2F0b3JzW2lzY10ud29yZFt3XTsKIAkJaSA9IHcgKiBOUl9BSVJRU19QRVJfV09SRDsKIAkJLyoKIAkJICogQ2hlY2sgYnl0ZXMgd2l0aGluIHdvcmQgZm9yIGFjdGl2ZSBpbmRpY2F0b3JzLgogCQkgKi8KIAkJd2hpbGUgKHdvcmQpIHsKIAkJCWlmICh3b3JkICYgSU5ESUNBVE9SX01BU0spIHsKLQkJCQlhaXJxID0gYWlycXNbaV07CisJCQkJYWlycSA9IGFpcnFzW2lzY11baV07CiAJCQkJaWYgKGxpa2VseShhaXJxKSkKLQkJCQkJYWlycS0+aGFuZGxlcigmaW5kaWNhdG9ycy5ieXRlW2ldLAorCQkJCQlhaXJxLT5oYW5kbGVyKCZpbmRpY2F0b3JzW2lzY10uYnl0ZVtpXSwKIAkJCQkJCSAgICAgIGFpcnEtPmRydl9kYXRhKTsKIAkJCQllbHNlCiAJCQkJCS8qCiAJCQkJCSAqIFJlc2V0IGlsbC1iZWhhdmVkIGluZGljYXRvci4KIAkJCQkJICovCi0JCQkJCWluZGljYXRvcnMuYnl0ZVtpXSA9IDA7CisJCQkJCWluZGljYXRvcnNbaXNjXS5ieXRlW2ldID0gMDsKIAkJCX0KIAkJCXdvcmQgPDw9IDg7CiAJCQlpKys7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2NocC5jIGIvZHJpdmVycy9zMzkwL2Npby9jaHAuYwppbmRleCAyOTdjZGNlLi5kYjAwYjA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2NocC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY2hwLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxhc20vY2hwaWQuaD4KICNpbmNsdWRlIDxhc20vc2NscC5oPgogCisjaW5jbHVkZSAiLi4vczM5MG1hY2guaCIKICNpbmNsdWRlICJjaW8uaCIKICNpbmNsdWRlICJjc3MuaCIKICNpbmNsdWRlICJpb2FzbS5oIgpAQCAtOTQsNiArOTUsNyBAQAogCX0KIAlyZXR1cm4gb3BtOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoY2hwX2dldF9zY2hfb3BtKTsKIAogLyoqCiAgKiBjaHBfaXNfcmVnaXN0ZXJlZCAtIGNoZWNrIGlmIGEgY2hhbm5lbC1wYXRoIGlzIHJlZ2lzdGVyZWQKQEAgLTEyMSwxMSArMTIzLDggQEAKIAlDSU9fVFJBQ0VfRVZFTlQoMiwgZGJmX3RleHQpOwogCiAJc3RhdHVzID0gY2hwX2dldF9zdGF0dXMoY2hwaWQpOwotCWlmICghb24gJiYgIXN0YXR1cykgewotCQlwcmludGsoS0VSTl9FUlIgImNpbzogY2hwaWQgJXguJTAyeCBpcyBhbHJlYWR5IG9mZmxpbmVcbiIsCi0JCSAgICAgICBjaHBpZC5jc3NpZCwgY2hwaWQuaWQpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9CisJaWYgKCFvbiAmJiAhc3RhdHVzKQorCQlyZXR1cm4gMDsKIAogCXNldF9jaHBfbG9naWNhbGx5X29ubGluZShjaHBpZCwgb24pOwogCWNoc2NfY2hwX3ZhcnkoY2hwaWQsIG9uKTsKQEAgLTE0MSwyMSArMTQwLDE0IEBACiB7CiAJc3RydWN0IGNoYW5uZWxfcGF0aCAqY2hwOwogCXN0cnVjdCBkZXZpY2UgKmRldmljZTsKLQl1bnNpZ25lZCBpbnQgc2l6ZTsKIAogCWRldmljZSA9IGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgZGV2aWNlLCBrb2JqKTsKIAljaHAgPSB0b19jaGFubmVscGF0aChkZXZpY2UpOwogCWlmICghY2hwLT5jbWdfY2hhcnMpCiAJCXJldHVybiAwOwogCi0Jc2l6ZSA9IHNpemVvZihzdHJ1Y3QgY21nX2NoYXJzKTsKLQotCWlmIChvZmYgPiBzaXplKQotCQlyZXR1cm4gMDsKLQlpZiAob2ZmICsgY291bnQgPiBzaXplKQotCQljb3VudCA9IHNpemUgLSBvZmY7Ci0JbWVtY3B5KGJ1ZiwgY2hwLT5jbWdfY2hhcnMgKyBvZmYsIGNvdW50KTsKLQlyZXR1cm4gY291bnQ7CisJcmV0dXJuIG1lbW9yeV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsICZvZmYsCisJCQkJY2hwLT5jbWdfY2hhcnMsIHNpemVvZihzdHJ1Y3QgY21nX2NoYXJzKSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSBjaHBfbWVhc3VyZW1lbnRfY2hhcnNfYXR0ciA9IHsKQEAgLTQwNSw3ICszOTcsNyBAQAogCQkgY2hwaWQuaWQpOwogCiAJLyogT2J0YWluIGNoYW5uZWwgcGF0aCBkZXNjcmlwdGlvbiBhbmQgZmlsbCBpdCBpbi4gKi8KLQlyZXQgPSBjaHNjX2RldGVybWluZV9jaGFubmVsX3BhdGhfZGVzY3JpcHRpb24oY2hwaWQsICZjaHAtPmRlc2MpOworCXJldCA9IGNoc2NfZGV0ZXJtaW5lX2Jhc2VfY2hhbm5lbF9wYXRoX2Rlc2MoY2hwaWQsICZjaHAtPmRlc2MpOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0X2ZyZWU7CiAJaWYgKChjaHAtPmRlc2MuZmxhZ3MgJiAweDgwKSA9PSAwKSB7CkBAIC00MTMsOCArNDA1LDcgQEAKIAkJZ290byBvdXRfZnJlZTsKIAl9CiAJLyogR2V0IGNoYW5uZWwtbWVhc3VyZW1lbnQgY2hhcmFjdGVyaXN0aWNzLiAqLwotCWlmIChjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsICYmIGNzc19jaHNjX2NoYXJhY3RlcmlzdGljcy5zY21jCi0JICAgICYmIGNzc19jaHNjX2NoYXJhY3RlcmlzdGljcy5zZWNtKSB7CisJaWYgKGNzc19jaHNjX2NoYXJhY3RlcmlzdGljcy5zY21jICYmIGNzc19jaHNjX2NoYXJhY3RlcmlzdGljcy5zZWNtKSB7CiAJCXJldCA9IGNoc2NfZ2V0X2NoYW5uZWxfbWVhc3VyZW1lbnRfY2hhcnMoY2hwKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gb3V0X2ZyZWU7CkBAIC00NzYsMjYgKzQ2Nyw3NCBAQAogCiAvKioKICAqIGNocF9wcm9jZXNzX2NydyAtIHByb2Nlc3MgY2hhbm5lbC1wYXRoIHN0YXR1cyBjaGFuZ2UKLSAqIEBpZDogY2hhbm5lbC1wYXRoIElEIG51bWJlcgotICogQHN0YXR1czogbm9uLXplcm8gaWYgY2hhbm5lbC1wYXRoIGhhcyBiZWNvbWUgYXZhaWxhYmxlLCB6ZXJvIG90aGVyd2lzZQorICogQGNydzA6IGNoYW5uZWwgcmVwb3J0LXdvcmQgdG8gaGFuZGxlcgorICogQGNydzE6IHNlY29uZCBjaGFubmVsLXJlcG9ydCB3b3JkIChhbHdheXMgTlVMTCkKKyAqIEBvdmVyZmxvdzogY3J3IG92ZXJmbG93IGluZGljYXRpb24KICAqCiAgKiBIYW5kbGUgY2hhbm5lbC1yZXBvcnQtd29yZHMgaW5kaWNhdGluZyB0aGF0IHRoZSBzdGF0dXMgb2YgYSBjaGFubmVsLXBhdGgKICAqIGhhcyBjaGFuZ2VkLgogICovCi12b2lkIGNocF9wcm9jZXNzX2NydyhpbnQgaWQsIGludCBzdGF0dXMpCitzdGF0aWMgdm9pZCBjaHBfcHJvY2Vzc19jcncoc3RydWN0IGNydyAqY3J3MCwgc3RydWN0IGNydyAqY3J3MSwKKwkJCSAgICBpbnQgb3ZlcmZsb3cpCiB7CiAJc3RydWN0IGNocF9pZCBjaHBpZDsKIAorCWlmIChvdmVyZmxvdykgeworCQljc3Nfc2NoZWR1bGVfZXZhbF9hbGwoKTsKKwkJcmV0dXJuOworCX0KKwlDSU9fQ1JXX0VWRU5UKDIsICJDUlcgcmVwb3J0cyBzbGN0PSVkLCBvZmx3PSVkLCAiCisJCSAgICAgICJjaG49JWQsIHJzYz0lWCwgYW5jPSVkLCBlcmM9JVgsIHJzaWQ9JVhcbiIsCisJCSAgICAgIGNydzAtPnNsY3QsIGNydzAtPm9mbHcsIGNydzAtPmNobiwgY3J3MC0+cnNjLCBjcncwLT5hbmMsCisJCSAgICAgIGNydzAtPmVyYywgY3J3MC0+cnNpZCk7CisJLyoKKwkgKiBDaGVjayBmb3Igc29saWNpdGVkIG1hY2hpbmUgY2hlY2tzLiBUaGVzZSBhcmUKKwkgKiBjcmVhdGVkIGJ5IHJlc2V0IGNoYW5uZWwgcGF0aCBhbmQgbmVlZCBub3QgYmUKKwkgKiBoYW5kbGVkIGhlcmUuCisJICovCisJaWYgKGNydzAtPnNsY3QpIHsKKwkJQ0lPX0NSV19FVkVOVCgyLCAic29saWNpdGVkIG1hY2hpbmUgY2hlY2sgZm9yICIKKwkJCSAgICAgICJjaGFubmVsIHBhdGggJTAyWFxuIiwgY3J3MC0+cnNpZCk7CisJCXJldHVybjsKKwl9CiAJY2hwX2lkX2luaXQoJmNocGlkKTsKLQljaHBpZC5pZCA9IGlkOwotCWlmIChzdGF0dXMpIHsKKwljaHBpZC5pZCA9IGNydzAtPnJzaWQ7CisJc3dpdGNoIChjcncwLT5lcmMpIHsKKwljYXNlIENSV19FUkNfSVBBUk06IC8qIFBhdGggaGFzIGNvbWUuICovCiAJCWlmICghY2hwX2lzX3JlZ2lzdGVyZWQoY2hwaWQpKQogCQkJY2hwX25ldyhjaHBpZCk7CiAJCWNoc2NfY2hwX29ubGluZShjaHBpZCk7Ci0JfSBlbHNlCisJCWJyZWFrOworCWNhc2UgQ1JXX0VSQ19QRVJSSTogLyogUGF0aCBoYXMgZ29uZS4gKi8KKwljYXNlIENSV19FUkNfUEVSUk46CiAJCWNoc2NfY2hwX29mZmxpbmUoY2hwaWQpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlDSU9fQ1JXX0VWRU5UKDIsICJEb24ndCBrbm93IGhvdyB0byBoYW5kbGUgZXJjPSV4XG4iLAorCQkJICAgICAgY3J3MC0+ZXJjKTsKKwl9CiB9CiAKK2ludCBjaHBfc3NkX2dldF9tYXNrKHN0cnVjdCBjaHNjX3NzZF9pbmZvICpzc2QsIHN0cnVjdCBjaHBfbGluayAqbGluaykKK3sKKwlpbnQgaTsKKwlpbnQgbWFzazsKKworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJbWFzayA9IDB4ODAgPj4gaTsKKwkJaWYgKCEoc3NkLT5wYXRoX21hc2sgJiBtYXNrKSkKKwkJCWNvbnRpbnVlOworCQlpZiAoIWNocF9pZF9pc19lcXVhbCgmc3NkLT5jaHBpZFtpXSwgJmxpbmstPmNocGlkKSkKKwkJCWNvbnRpbnVlOworCQlpZiAoKHNzZC0+ZmxhX3ZhbGlkX21hc2sgJiBtYXNrKSAmJgorCQkgICAgKChzc2QtPmZsYVtpXSAmIGxpbmstPmZsYV9tYXNrKSAhPSBsaW5rLT5mbGEpKQorCQkJY29udGludWU7CisJCXJldHVybiBtYXNrOworCX0KKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGNocF9zc2RfZ2V0X21hc2spOworCiBzdGF0aWMgaW5saW5lIGludCBpbmZvX2JpdF9udW0oc3RydWN0IGNocF9pZCBpZCkKIHsKIAlyZXR1cm4gaWQuaWQgKyBpZC5jc3NpZCAqIChfX01BWF9DSFBJRCArIDEpOwpAQCAtNTc1LDYgKzYxNCw3IEBACiB7CiAJc3RydWN0IGNocF9pZCBjaHBpZDsKIAllbnVtIGNmZ190YXNrX3QgdDsKKwlpbnQgcmM7CiAKIAltdXRleF9sb2NrKCZjZmdfbG9jayk7CiAJdCA9IGNmZ19ub25lOwpAQCAtNTg5LDE0ICs2MjksMjQgQEAKIAogCXN3aXRjaCAodCkgewogCWNhc2UgY2ZnX2NvbmZpZ3VyZToKLQkJc2NscF9jaHBfY29uZmlndXJlKGNocGlkKTsKLQkJaW5mb19leHBpcmUoKTsKLQkJY2hzY19jaHBfb25saW5lKGNocGlkKTsKKwkJcmMgPSBzY2xwX2NocF9jb25maWd1cmUoY2hwaWQpOworCQlpZiAocmMpCisJCQlDSU9fTVNHX0VWRU5UKDIsICJjaHA6IHNjbHBfY2hwX2NvbmZpZ3VyZSgleC4lMDJ4KT0iCisJCQkJICAgICAgIiVkXG4iLCBjaHBpZC5jc3NpZCwgY2hwaWQuaWQsIHJjKTsKKwkJZWxzZSB7CisJCQlpbmZvX2V4cGlyZSgpOworCQkJY2hzY19jaHBfb25saW5lKGNocGlkKTsKKwkJfQogCQlicmVhazsKIAljYXNlIGNmZ19kZWNvbmZpZ3VyZToKLQkJc2NscF9jaHBfZGVjb25maWd1cmUoY2hwaWQpOwotCQlpbmZvX2V4cGlyZSgpOwotCQljaHNjX2NocF9vZmZsaW5lKGNocGlkKTsKKwkJcmMgPSBzY2xwX2NocF9kZWNvbmZpZ3VyZShjaHBpZCk7CisJCWlmIChyYykKKwkJCUNJT19NU0dfRVZFTlQoMiwgImNocDogc2NscF9jaHBfZGVjb25maWd1cmUoJXguJTAyeCk9IgorCQkJCSAgICAgICIlZFxuIiwgY2hwaWQuY3NzaWQsIGNocGlkLmlkLCByYyk7CisJCWVsc2UgeworCQkJaW5mb19leHBpcmUoKTsKKwkJCWNoc2NfY2hwX29mZmxpbmUoY2hwaWQpOworCQl9CiAJCWJyZWFrOwogCWNhc2UgY2ZnX25vbmU6CiAJCS8qIEdldCB1cGRhdGVkIGluZm9ybWF0aW9uIGFmdGVyIGxhc3QgY2hhbmdlLiAqLwpAQCAtNjU0LDEwICs3MDQsMTYgQEAKIHN0YXRpYyBpbnQgX19pbml0IGNocF9pbml0KHZvaWQpCiB7CiAJc3RydWN0IGNocF9pZCBjaHBpZDsKKwlpbnQgcmV0OwogCisJcmV0ID0gczM5MF9yZWdpc3Rlcl9jcndfaGFuZGxlcihDUldfUlNDX0NQQVRILCBjaHBfcHJvY2Vzc19jcncpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAJY2hwX3dxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoImNpb19jaHAiKTsKLQlpZiAoIWNocF93cSkKKwlpZiAoIWNocF93cSkgeworCQlzMzkwX3VucmVnaXN0ZXJfY3J3X2hhbmRsZXIoQ1JXX1JTQ19DUEFUSCk7CiAJCXJldHVybiAtRU5PTUVNOworCX0KIAlJTklUX1dPUksoJmNmZ193b3JrLCBjZmdfZnVuYyk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmY2ZnX3dhaXRfcXVldWUpOwogCWlmIChpbmZvX3VwZGF0ZSgpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaHAuaCBiL2RyaXZlcnMvczM5MC9jaW8vY2hwLmgKaW5kZXggNjUyODY1Ni4uMjZjM2QyMjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY2hwLmgKKysrIGIvZHJpdmVycy9zMzkwL2Npby9jaHAuaApAQCAtMTIsMTIgKzEyLDI0IEBACiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+CiAjaW5jbHVkZSAiY2hzYy5oIgorI2luY2x1ZGUgImNzcy5oIgogCiAjZGVmaW5lIENIUF9TVEFUVVNfU1RBTkRCWQkJMAogI2RlZmluZSBDSFBfU1RBVFVTX0NPTkZJR1VSRUQJCTEKICNkZWZpbmUgQ0hQX1NUQVRVU19SRVNFUlZFRAkJMgogI2RlZmluZSBDSFBfU1RBVFVTX05PVF9SRUNPR05JWkVECTMKIAorI2RlZmluZSBDSFBfT05MSU5FIDAKKyNkZWZpbmUgQ0hQX09GRkxJTkUgMQorI2RlZmluZSBDSFBfVkFSWV9PTiAyCisjZGVmaW5lIENIUF9WQVJZX09GRiAzCisKK3N0cnVjdCBjaHBfbGluayB7CisJc3RydWN0IGNocF9pZCBjaHBpZDsKKwl1MzIgZmxhX21hc2s7CisJdTE2IGZsYTsKK307CisKIHN0YXRpYyBpbmxpbmUgaW50IGNocF90ZXN0X2JpdCh1OCAqYml0bWFwLCBpbnQgbnVtKQogewogCWludCBieXRlID0gbnVtID4+IDM7CkBAIC00MiwxMiArNTQsMTEgQEAKIHU4IGNocF9nZXRfc2NoX29wbShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKTsKIGludCBjaHBfaXNfcmVnaXN0ZXJlZChzdHJ1Y3QgY2hwX2lkIGNocGlkKTsKIHZvaWQgKmNocF9nZXRfY2hwX2Rlc2Moc3RydWN0IGNocF9pZCBjaHBpZCk7Ci12b2lkIGNocF9wcm9jZXNzX2NydyhpbnQgaWQsIGludCBhdmFpbGFibGUpOwogdm9pZCBjaHBfcmVtb3ZlX2NtZ19hdHRyKHN0cnVjdCBjaGFubmVsX3BhdGggKmNocCk7CiBpbnQgY2hwX2FkZF9jbWdfYXR0cihzdHJ1Y3QgY2hhbm5lbF9wYXRoICpjaHApOwogaW50IGNocF9uZXcoc3RydWN0IGNocF9pZCBjaHBpZCk7CiB2b2lkIGNocF9jZmdfc2NoZWR1bGUoc3RydWN0IGNocF9pZCBjaHBpZCwgaW50IGNvbmZpZ3VyZSk7CiB2b2lkIGNocF9jZmdfY2FuY2VsX2RlY29uZmlndXJlKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwogaW50IGNocF9pbmZvX2dldF9zdGF0dXMoc3RydWN0IGNocF9pZCBjaHBpZCk7Ci0KK2ludCBjaHBfc3NkX2dldF9tYXNrKHN0cnVjdCBjaHNjX3NzZF9pbmZvICosIHN0cnVjdCBjaHBfbGluayAqKTsKICNlbmRpZiAvKiBTMzkwX0NIUF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuYyBiL2RyaXZlcnMvczM5MC9jaW8vY2hzYy5jCmluZGV4IDVkZTg2OTAuLjY1MjY0YTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY2hzYy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY2hzYy5jCkBAIC0yLDggKzIsNyBAQAogICogIGRyaXZlcnMvczM5MC9jaW8vY2hzYy5jCiAgKiAgIFMvMzkwIGNvbW1vbiBJL08gcm91dGluZXMgLS0gY2hhbm5lbCBzdWJzeXN0ZW0gY2FsbAogICoKLSAqICAgIENvcHlyaWdodCAoQykgMTk5OS0yMDAyIElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILAotICoJCQkgICAgICBJQk0gQ29ycG9yYXRpb24KKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OSwyMDA4CiAgKiAgICBBdXRob3Iocyk6IEluZ28gQWRsdW5nIChhZGx1bmdAZGUuaWJtLmNvbSkKICAqCQkgQ29ybmVsaWEgSHVjayAoY29ybmVsaWEuaHVja0BkZS5pYm0uY29tKQogICoJCSBBcm5kIEJlcmdtYW5uIChhcm5kYkBkZS5pYm0uY29tKQpAQCAtMTYsNyArMTUsOSBAQAogCiAjaW5jbHVkZSA8YXNtL2Npby5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgorI2luY2x1ZGUgPGFzbS9jaHNjLmg+CiAKKyNpbmNsdWRlICIuLi9zMzkwbWFjaC5oIgogI2luY2x1ZGUgImNzcy5oIgogI2luY2x1ZGUgImNpby5oIgogI2luY2x1ZGUgImNpb19kZWJ1Zy5oIgpAQCAtMTI3LDc3ICsxMjgsMTIgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGNoZWNrX2Zvcl9pb19vbl9wYXRoKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIGludCBtYXNrKQotewotCWludCBjYzsKLQotCWNjID0gc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpOwotCWlmIChjYykKLQkJcmV0dXJuIDA7Ci0JaWYgKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICYmIHNjaC0+c2NoaWIucG1jdy5scHVtID09IG1hc2spCi0JCXJldHVybiAxOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCB0ZXJtaW5hdGVfaW50ZXJuYWxfaW8oc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKLXsKLQlpZiAoY2lvX2NsZWFyKHNjaCkpIHsKLQkJLyogUmVjaGVjayBkZXZpY2UgaW4gY2FzZSBjbGVhciBmYWlsZWQuICovCi0JCXNjaC0+bHBtID0gMDsKLQkJaWYgKGRldmljZV90cmlnZ2VyX3ZlcmlmeShzY2gpICE9IDApCi0JCQljc3Nfc2NoZWR1bGVfZXZhbChzY2gtPnNjaGlkKTsKLQkJcmV0dXJuOwotCX0KLQkvKiBSZXF1ZXN0IHJldHJ5IG9mIGludGVybmFsIG9wZXJhdGlvbi4gKi8KLQlkZXZpY2Vfc2V0X2ludHJldHJ5KHNjaCk7Ci0JLyogQ2FsbCBoYW5kbGVyLiAqLwotCWlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+dGVybWluYXRpb24pCi0JCXNjaC0+ZHJpdmVyLT50ZXJtaW5hdGlvbihzY2gpOwotfQotCiBzdGF0aWMgaW50IHMzOTBfc3ViY2hhbm5lbF9yZW1vdmVfY2hwaWQoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgdm9pZCAqZGF0YSkKIHsKLQlpbnQgajsKLQlpbnQgbWFzazsKLQlzdHJ1Y3QgY2hwX2lkICpjaHBpZCA9IGRhdGE7Ci0Jc3RydWN0IHNjaGliIHNjaGliOwotCi0JZm9yIChqID0gMDsgaiA8IDg7IGorKykgewotCQltYXNrID0gMHg4MCA+PiBqOwotCQlpZiAoKHNjaC0+c2NoaWIucG1jdy5waW0gJiBtYXNrKSAmJgotCQkgICAgKHNjaC0+c2NoaWIucG1jdy5jaHBpZFtqXSA9PSBjaHBpZC0+aWQpKQotCQkJYnJlYWs7Ci0JfQotCWlmIChqID49IDgpCi0JCXJldHVybiAwOwotCiAJc3Bpbl9sb2NrX2lycShzY2gtPmxvY2spOwotCi0Jc3RzY2goc2NoLT5zY2hpZCwgJnNjaGliKTsKLQlpZiAoIWNzc19zY2hfaXNfdmFsaWQoJnNjaGliKSkKLQkJZ290byBvdXRfdW5yZWc7Ci0JbWVtY3B5KCZzY2gtPnNjaGliLCAmc2NoaWIsIHNpemVvZihzdHJ1Y3Qgc2NoaWIpKTsKLQkvKiBDaGVjayBmb3Igc2luZ2xlIHBhdGggZGV2aWNlcy4gKi8KLQlpZiAoc2NoLT5zY2hpYi5wbWN3LnBpbSA9PSAweDgwKQotCQlnb3RvIG91dF91bnJlZzsKLQotCWlmIChjaGVja19mb3JfaW9fb25fcGF0aChzY2gsIG1hc2spKSB7Ci0JCWlmIChkZXZpY2VfaXNfb25saW5lKHNjaCkpCi0JCQlkZXZpY2Vfa2lsbF9pbyhzY2gpOwotCQllbHNlIHsKLQkJCXRlcm1pbmF0ZV9pbnRlcm5hbF9pbyhzY2gpOwotCQkJLyogUmUtc3RhcnQgcGF0aCB2ZXJpZmljYXRpb24uICovCi0JCQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnZlcmlmeSkKLQkJCQlzY2gtPmRyaXZlci0+dmVyaWZ5KHNjaCk7Ci0JCX0KLQl9IGVsc2UgewotCQkvKiB0cmlnZ2VyIHBhdGggdmVyaWZpY2F0aW9uLiAqLwotCQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnZlcmlmeSkKLQkJCXNjaC0+ZHJpdmVyLT52ZXJpZnkoc2NoKTsKLQkJZWxzZSBpZiAoc2NoLT5scG0gPT0gbWFzaykKKwlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPmNocF9ldmVudCkKKwkJaWYgKHNjaC0+ZHJpdmVyLT5jaHBfZXZlbnQoc2NoLCBkYXRhLCBDSFBfT0ZGTElORSkgIT0gMCkKIAkJCWdvdG8gb3V0X3VucmVnOwotCX0KLQogCXNwaW5fdW5sb2NrX2lycShzY2gtPmxvY2spOwogCXJldHVybiAwOwogCkBAIC0yMTEsMTUgKzE0NywxOCBAQAogdm9pZCBjaHNjX2NocF9vZmZsaW5lKHN0cnVjdCBjaHBfaWQgY2hwaWQpCiB7CiAJY2hhciBkYmZfdHh0WzE1XTsKKwlzdHJ1Y3QgY2hwX2xpbmsgbGluazsKIAogCXNwcmludGYoZGJmX3R4dCwgImNocHIleC4lMDJ4IiwgY2hwaWQuY3NzaWQsIGNocGlkLmlkKTsKIAlDSU9fVFJBQ0VfRVZFTlQoMiwgZGJmX3R4dCk7CiAKIAlpZiAoY2hwX2dldF9zdGF0dXMoY2hwaWQpIDw9IDApCiAJCXJldHVybjsKKwltZW1zZXQoJmxpbmssIDAsIHNpemVvZihzdHJ1Y3QgY2hwX2xpbmspKTsKKwlsaW5rLmNocGlkID0gY2hwaWQ7CiAJLyogV2FpdCB1bnRpbCBwcmV2aW91cyBhY3Rpb25zIGhhdmUgc2V0dGxlZC4gKi8KIAljc3Nfd2FpdF9mb3Jfc2xvd19wYXRoKCk7Ci0JZm9yX2VhY2hfc3ViY2hhbm5lbF9zdGFnZWQoczM5MF9zdWJjaGFubmVsX3JlbW92ZV9jaHBpZCwgTlVMTCwgJmNocGlkKTsKKwlmb3JfZWFjaF9zdWJjaGFubmVsX3N0YWdlZChzMzkwX3N1YmNoYW5uZWxfcmVtb3ZlX2NocGlkLCBOVUxMLCAmbGluayk7CiB9CiAKIHN0YXRpYyBpbnQgczM5MF9wcm9jZXNzX3Jlc19hY2NfbmV3X3NjaChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCwgdm9pZCAqZGF0YSkKQEAgLTI0Miw2NyArMTgxLDI1IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0cnVjdCByZXNfYWNjX2RhdGEgewotCXN0cnVjdCBjaHBfaWQgY2hwaWQ7Ci0JdTMyIGZsYV9tYXNrOwotCXUxNiBmbGE7Ci19OwotCi1zdGF0aWMgaW50IGdldF9yZXNfY2hwaWRfbWFzayhzdHJ1Y3QgY2hzY19zc2RfaW5mbyAqc3NkLAotCQkJICAgICAgc3RydWN0IHJlc19hY2NfZGF0YSAqZGF0YSkKLXsKLQlpbnQgaTsKLQlpbnQgbWFzazsKLQotCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJbWFzayA9IDB4ODAgPj4gaTsKLQkJaWYgKCEoc3NkLT5wYXRoX21hc2sgJiBtYXNrKSkKLQkJCWNvbnRpbnVlOwotCQlpZiAoIWNocF9pZF9pc19lcXVhbCgmc3NkLT5jaHBpZFtpXSwgJmRhdGEtPmNocGlkKSkKLQkJCWNvbnRpbnVlOwotCQlpZiAoKHNzZC0+ZmxhX3ZhbGlkX21hc2sgJiBtYXNrKSAmJgotCQkgICAgKChzc2QtPmZsYVtpXSAmIGRhdGEtPmZsYV9tYXNrKSAhPSBkYXRhLT5mbGEpKQotCQkJY29udGludWU7Ci0JCXJldHVybiBtYXNrOwotCX0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCBfX3MzOTBfcHJvY2Vzc19yZXNfYWNjKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHZvaWQgKmRhdGEpCiB7Ci0JaW50IGNocF9tYXNrLCBvbGRfbHBtOwotCXN0cnVjdCByZXNfYWNjX2RhdGEgKnJlc19kYXRhID0gZGF0YTsKLQogCXNwaW5fbG9ja19pcnEoc2NoLT5sb2NrKTsKLQljaHBfbWFzayA9IGdldF9yZXNfY2hwaWRfbWFzaygmc2NoLT5zc2RfaW5mbywgcmVzX2RhdGEpOwotCWlmIChjaHBfbWFzayA9PSAwKQotCQlnb3RvIG91dDsKLQlpZiAoc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpKQotCQlnb3RvIG91dDsKLQlvbGRfbHBtID0gc2NoLT5scG07Ci0Jc2NoLT5scG0gPSAoKHNjaC0+c2NoaWIucG1jdy5waW0gJgotCQkgICAgIHNjaC0+c2NoaWIucG1jdy5wYW0gJgotCQkgICAgIHNjaC0+c2NoaWIucG1jdy5wb20pCi0JCSAgICB8IGNocF9tYXNrKSAmIHNjaC0+b3BtOwotCWlmICghb2xkX2xwbSAmJiBzY2gtPmxwbSkKLQkJZGV2aWNlX3RyaWdnZXJfcmVwcm9iZShzY2gpOwotCWVsc2UgaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT52ZXJpZnkpCi0JCXNjaC0+ZHJpdmVyLT52ZXJpZnkoc2NoKTsKLW91dDoKKwlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPmNocF9ldmVudCkKKwkJc2NoLT5kcml2ZXItPmNocF9ldmVudChzY2gsIGRhdGEsIENIUF9PTkxJTkUpOwogCXNwaW5fdW5sb2NrX2lycShzY2gtPmxvY2spOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIHMzOTBfcHJvY2Vzc19yZXNfYWNjIChzdHJ1Y3QgcmVzX2FjY19kYXRhICpyZXNfZGF0YSkKK3N0YXRpYyB2b2lkIHMzOTBfcHJvY2Vzc19yZXNfYWNjKHN0cnVjdCBjaHBfbGluayAqbGluaykKIHsKIAljaGFyIGRiZl90eHRbMTVdOwogCi0Jc3ByaW50ZihkYmZfdHh0LCAiYWNjcHIleC4lMDJ4IiwgcmVzX2RhdGEtPmNocGlkLmNzc2lkLAotCQlyZXNfZGF0YS0+Y2hwaWQuaWQpOworCXNwcmludGYoZGJmX3R4dCwgImFjY3ByJXguJTAyeCIsIGxpbmstPmNocGlkLmNzc2lkLAorCQlsaW5rLT5jaHBpZC5pZCk7CiAJQ0lPX1RSQUNFX0VWRU5UKCAyLCBkYmZfdHh0KTsKLQlpZiAocmVzX2RhdGEtPmZsYSAhPSAwKSB7Ci0JCXNwcmludGYoZGJmX3R4dCwgImZsYSV4IiwgcmVzX2RhdGEtPmZsYSk7CisJaWYgKGxpbmstPmZsYSAhPSAwKSB7CisJCXNwcmludGYoZGJmX3R4dCwgImZsYSV4IiwgbGluay0+ZmxhKTsKIAkJQ0lPX1RSQUNFX0VWRU5UKCAyLCBkYmZfdHh0KTsKIAl9CiAJLyogV2FpdCB1bnRpbCBwcmV2aW91cyBhY3Rpb25zIGhhdmUgc2V0dGxlZC4gKi8KQEAgLTMxNSw3ICsyMTIsNyBAQAogCSAqIHdpbGwgd2UgaGF2ZSB0byBkby4KIAkgKi8KIAlmb3JfZWFjaF9zdWJjaGFubmVsX3N0YWdlZChfX3MzOTBfcHJvY2Vzc19yZXNfYWNjLAotCQkJCSAgIHMzOTBfcHJvY2Vzc19yZXNfYWNjX25ld19zY2gsIHJlc19kYXRhKTsKKwkJCQkgICBzMzkwX3Byb2Nlc3NfcmVzX2FjY19uZXdfc2NoLCBsaW5rKTsKIH0KIAogc3RhdGljIGludApAQCAtMzg4LDcgKzI4NSw3IEBACiAKIHN0YXRpYyB2b2lkIGNoc2NfcHJvY2Vzc19zZWlfcmVzX2FjYyhzdHJ1Y3QgY2hzY19zZWlfYXJlYSAqc2VpX2FyZWEpCiB7Ci0Jc3RydWN0IHJlc19hY2NfZGF0YSByZXNfZGF0YTsKKwlzdHJ1Y3QgY2hwX2xpbmsgbGluazsKIAlzdHJ1Y3QgY2hwX2lkIGNocGlkOwogCWludCBzdGF0dXM7CiAKQEAgLTQwNCwxOCArMzAxLDE4IEBACiAJCWNocF9uZXcoY2hwaWQpOwogCWVsc2UgaWYgKCFzdGF0dXMpCiAJCXJldHVybjsKLQltZW1zZXQoJnJlc19kYXRhLCAwLCBzaXplb2Yoc3RydWN0IHJlc19hY2NfZGF0YSkpOwotCXJlc19kYXRhLmNocGlkID0gY2hwaWQ7CisJbWVtc2V0KCZsaW5rLCAwLCBzaXplb2Yoc3RydWN0IGNocF9saW5rKSk7CisJbGluay5jaHBpZCA9IGNocGlkOwogCWlmICgoc2VpX2FyZWEtPnZmICYgMHhjMCkgIT0gMCkgewotCQlyZXNfZGF0YS5mbGEgPSBzZWlfYXJlYS0+ZmxhOworCQlsaW5rLmZsYSA9IHNlaV9hcmVhLT5mbGE7CiAJCWlmICgoc2VpX2FyZWEtPnZmICYgMHhjMCkgPT0gMHhjMCkKIAkJCS8qIGZ1bGwgbGluayBhZGRyZXNzICovCi0JCQlyZXNfZGF0YS5mbGFfbWFzayA9IDB4ZmZmZjsKKwkJCWxpbmsuZmxhX21hc2sgPSAweGZmZmY7CiAJCWVsc2UKIAkJCS8qIGxpbmsgYWRkcmVzcyAqLwotCQkJcmVzX2RhdGEuZmxhX21hc2sgPSAweGZmMDA7CisJCQlsaW5rLmZsYV9tYXNrID0gMHhmZjAwOwogCX0KLQlzMzkwX3Byb2Nlc3NfcmVzX2FjYygmcmVzX2RhdGEpOworCXMzOTBfcHJvY2Vzc19yZXNfYWNjKCZsaW5rKTsKIH0KIAogc3RydWN0IGNocF9jb25maWdfZGF0YSB7CkBAIC00ODAsMTcgKzM3NywyNSBAQAogCX0KIH0KIAotdm9pZCBjaHNjX3Byb2Nlc3NfY3J3KHZvaWQpCitzdGF0aWMgdm9pZCBjaHNjX3Byb2Nlc3NfY3J3KHN0cnVjdCBjcncgKmNydzAsIHN0cnVjdCBjcncgKmNydzEsIGludCBvdmVyZmxvdykKIHsKIAlzdHJ1Y3QgY2hzY19zZWlfYXJlYSAqc2VpX2FyZWE7CiAKKwlpZiAob3ZlcmZsb3cpIHsKKwkJY3NzX3NjaGVkdWxlX2V2YWxfYWxsKCk7CisJCXJldHVybjsKKwl9CisJQ0lPX0NSV19FVkVOVCgyLCAiQ1JXIHJlcG9ydHMgc2xjdD0lZCwgb2Zsdz0lZCwgIgorCQkgICAgICAiY2huPSVkLCByc2M9JVgsIGFuYz0lZCwgZXJjPSVYLCByc2lkPSVYXG4iLAorCQkgICAgICBjcncwLT5zbGN0LCBjcncwLT5vZmx3LCBjcncwLT5jaG4sIGNydzAtPnJzYywgY3J3MC0+YW5jLAorCQkgICAgICBjcncwLT5lcmMsIGNydzAtPnJzaWQpOwogCWlmICghc2VpX3BhZ2UpCiAJCXJldHVybjsKIAkvKiBBY2Nlc3MgdG8gc2VpX3BhZ2UgaXMgc2VyaWFsaXplZCB0aHJvdWdoIG1hY2hpbmUgY2hlY2sgaGFuZGxlcgogCSAqIHRocmVhZCwgc28gbm8gbmVlZCBmb3IgbG9ja2luZy4gKi8KIAlzZWlfYXJlYSA9IHNlaV9wYWdlOwogCi0JQ0lPX1RSQUNFX0VWRU5UKCAyLCAicHJjc3MiKTsKKwlDSU9fVFJBQ0VfRVZFTlQoMiwgInByY3NzIik7CiAJZG8gewogCQltZW1zZXQoc2VpX2FyZWEsIDAsIHNpemVvZigqc2VpX2FyZWEpKTsKIAkJc2VpX2FyZWEtPnJlcXVlc3QubGVuZ3RoID0gMHgwMDEwOwpAQCAtNTA5LDExNCArNDE0LDM2IEBACiAJfSB3aGlsZSAoc2VpX2FyZWEtPmZsYWdzICYgMHg4MCk7CiB9CiAKLXN0YXRpYyBpbnQgX19jaHBfYWRkX25ld19zY2goc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsIHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IHNjaGliIHNjaGliOwotCi0JaWYgKHN0c2NoX2VycihzY2hpZCwgJnNjaGliKSkKLQkJLyogV2UncmUgdGhyb3VnaCAqLwotCQlyZXR1cm4gLUVOWElPOwotCi0JLyogUHV0IGl0IG9uIHRoZSBzbG93IHBhdGguICovCi0JY3NzX3NjaGVkdWxlX2V2YWwoc2NoaWQpOwotCXJldHVybiAwOwotfQotCi0KLXN0YXRpYyBpbnQgX19jaHBfYWRkKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHZvaWQgKmRhdGEpCi17Ci0JaW50IGksIG1hc2s7Ci0Jc3RydWN0IGNocF9pZCAqY2hwaWQgPSBkYXRhOwotCi0Jc3Bpbl9sb2NrX2lycShzY2gtPmxvY2spOwotCWZvciAoaT0wOyBpPDg7IGkrKykgewotCQltYXNrID0gMHg4MCA+PiBpOwotCQlpZiAoKHNjaC0+c2NoaWIucG1jdy5waW0gJiBtYXNrKSAmJgotCQkgICAgKHNjaC0+c2NoaWIucG1jdy5jaHBpZFtpXSA9PSBjaHBpZC0+aWQpKQotCQkJYnJlYWs7Ci0JfQotCWlmIChpPT04KSB7Ci0JCXNwaW5fdW5sb2NrX2lycShzY2gtPmxvY2spOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKHN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKSkgewotCQlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKLQkJY3NzX3NjaGVkdWxlX2V2YWwoc2NoLT5zY2hpZCk7Ci0JCXJldHVybiAwOwotCX0KLQlzY2gtPmxwbSA9ICgoc2NoLT5zY2hpYi5wbWN3LnBpbSAmCi0JCSAgICAgc2NoLT5zY2hpYi5wbWN3LnBhbSAmCi0JCSAgICAgc2NoLT5zY2hpYi5wbWN3LnBvbSkKLQkJICAgIHwgbWFzaykgJiBzY2gtPm9wbTsKLQotCWlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+dmVyaWZ5KQotCQlzY2gtPmRyaXZlci0+dmVyaWZ5KHNjaCk7Ci0KLQlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKLQotCXJldHVybiAwOwotfQotCiB2b2lkIGNoc2NfY2hwX29ubGluZShzdHJ1Y3QgY2hwX2lkIGNocGlkKQogewogCWNoYXIgZGJmX3R4dFsxNV07CisJc3RydWN0IGNocF9saW5rIGxpbms7CiAKIAlzcHJpbnRmKGRiZl90eHQsICJjYWRkJXguJTAyeCIsIGNocGlkLmNzc2lkLCBjaHBpZC5pZCk7CiAJQ0lPX1RSQUNFX0VWRU5UKDIsIGRiZl90eHQpOwogCiAJaWYgKGNocF9nZXRfc3RhdHVzKGNocGlkKSAhPSAwKSB7CisJCW1lbXNldCgmbGluaywgMCwgc2l6ZW9mKHN0cnVjdCBjaHBfbGluaykpOworCQlsaW5rLmNocGlkID0gY2hwaWQ7CiAJCS8qIFdhaXQgdW50aWwgcHJldmlvdXMgYWN0aW9ucyBoYXZlIHNldHRsZWQuICovCiAJCWNzc193YWl0X2Zvcl9zbG93X3BhdGgoKTsKLQkJZm9yX2VhY2hfc3ViY2hhbm5lbF9zdGFnZWQoX19jaHBfYWRkLCBfX2NocF9hZGRfbmV3X3NjaCwKLQkJCQkJICAgJmNocGlkKTsKKwkJZm9yX2VhY2hfc3ViY2hhbm5lbF9zdGFnZWQoX19zMzkwX3Byb2Nlc3NfcmVzX2FjYywgTlVMTCwKKwkJCQkJICAgJmxpbmspOwogCX0KIH0KIAogc3RhdGljIHZvaWQgX19zMzkwX3N1YmNoYW5uZWxfdmFyeV9jaHBpZChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLAogCQkJCQkgc3RydWN0IGNocF9pZCBjaHBpZCwgaW50IG9uKQogewotCWludCBjaHAsIG9sZF9scG07Ci0JaW50IG1hc2s7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgY2hwX2xpbmsgbGluazsKIAorCW1lbXNldCgmbGluaywgMCwgc2l6ZW9mKHN0cnVjdCBjaHBfbGluaykpOworCWxpbmsuY2hwaWQgPSBjaHBpZDsKIAlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKLQlvbGRfbHBtID0gc2NoLT5scG07Ci0JZm9yIChjaHAgPSAwOyBjaHAgPCA4OyBjaHArKykgewotCQltYXNrID0gMHg4MCA+PiBjaHA7Ci0JCWlmICghKHNjaC0+c3NkX2luZm8ucGF0aF9tYXNrICYgbWFzaykpCi0JCQljb250aW51ZTsKLQkJaWYgKCFjaHBfaWRfaXNfZXF1YWwoJnNjaC0+c3NkX2luZm8uY2hwaWRbY2hwXSwgJmNocGlkKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChvbikgewotCQkJc2NoLT5vcG0gfD0gbWFzazsKLQkJCXNjaC0+bHBtIHw9IG1hc2s7Ci0JCQlpZiAoIW9sZF9scG0pCi0JCQkJZGV2aWNlX3RyaWdnZXJfcmVwcm9iZShzY2gpOwotCQkJZWxzZSBpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnZlcmlmeSkKLQkJCQlzY2gtPmRyaXZlci0+dmVyaWZ5KHNjaCk7Ci0JCQlicmVhazsKLQkJfQotCQlzY2gtPm9wbSAmPSB+bWFzazsKLQkJc2NoLT5scG0gJj0gfm1hc2s7Ci0JCWlmIChjaGVja19mb3JfaW9fb25fcGF0aChzY2gsIG1hc2spKSB7Ci0JCQlpZiAoZGV2aWNlX2lzX29ubGluZShzY2gpKQotCQkJCS8qIFBhdGggdmVyaWZpY2F0aW9uIGlzIGRvbmUgYWZ0ZXIga2lsbGluZy4gKi8KLQkJCQlkZXZpY2Vfa2lsbF9pbyhzY2gpOwotCQkJZWxzZSB7Ci0JCQkJLyogS2lsbCBhbmQgcmV0cnkgaW50ZXJuYWwgSS9PLiAqLwotCQkJCXRlcm1pbmF0ZV9pbnRlcm5hbF9pbyhzY2gpOwotCQkJCS8qIFJlLXN0YXJ0IHBhdGggdmVyaWZpY2F0aW9uLiAqLwotCQkJCWlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+dmVyaWZ5KQotCQkJCQlzY2gtPmRyaXZlci0+dmVyaWZ5KHNjaCk7Ci0JCQl9Ci0JCX0gZWxzZSBpZiAoIXNjaC0+bHBtKSB7Ci0JCQlpZiAoZGV2aWNlX3RyaWdnZXJfdmVyaWZ5KHNjaCkgIT0gMCkKLQkJCQljc3Nfc2NoZWR1bGVfZXZhbChzY2gtPnNjaGlkKTsKLQkJfSBlbHNlIGlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+dmVyaWZ5KQotCQkJc2NoLT5kcml2ZXItPnZlcmlmeShzY2gpOwotCQlicmVhazsKLQl9CisJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT5jaHBfZXZlbnQpCisJCXNjaC0+ZHJpdmVyLT5jaHBfZXZlbnQoc2NoLCAmbGluaywKKwkJCQkgICAgICAgb24gPyBDSFBfVkFSWV9PTiA6IENIUF9WQVJZX09GRik7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKIH0KIApAQCAtNjU2LDYgKzQ4MywxMCBAQAogICovCiBpbnQgY2hzY19jaHBfdmFyeShzdHJ1Y3QgY2hwX2lkIGNocGlkLCBpbnQgb24pCiB7CisJc3RydWN0IGNocF9saW5rIGxpbms7CisKKwltZW1zZXQoJmxpbmssIDAsIHNpemVvZihzdHJ1Y3QgY2hwX2xpbmspKTsKKwlsaW5rLmNocGlkID0gY2hwaWQ7CiAJLyogV2FpdCB1bnRpbCBwcmV2aW91cyBhY3Rpb25zIGhhdmUgc2V0dGxlZC4gKi8KIAljc3Nfd2FpdF9mb3Jfc2xvd19wYXRoKCk7CiAJLyoKQEAgLTY2NCwxMCArNDk1LDEwIEBACiAKIAlpZiAob24pCiAJCWZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKHMzOTBfc3ViY2hhbm5lbF92YXJ5X2NocGlkX29uLAotCQkJCQkgICBfX3MzOTBfdmFyeV9jaHBpZF9vbiwgJmNocGlkKTsKKwkJCQkJICAgX19zMzkwX3ZhcnlfY2hwaWRfb24sICZsaW5rKTsKIAllbHNlCiAJCWZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKHMzOTBfc3ViY2hhbm5lbF92YXJ5X2NocGlkX29mZiwKLQkJCQkJICAgTlVMTCwgJmNocGlkKTsKKwkJCQkJICAgTlVMTCwgJmxpbmspOwogCiAJcmV0dXJuIDA7CiB9CkBAIC03OTcsMjMgKzYyOCwzMyBAQAogCXJldHVybiByZXQ7CiB9CiAKLWludCBjaHNjX2RldGVybWluZV9jaGFubmVsX3BhdGhfZGVzY3JpcHRpb24oc3RydWN0IGNocF9pZCBjaHBpZCwKLQkJCQkJICAgIHN0cnVjdCBjaGFubmVsX3BhdGhfZGVzYyAqZGVzYykKK2ludCBjaHNjX2RldGVybWluZV9jaGFubmVsX3BhdGhfZGVzYyhzdHJ1Y3QgY2hwX2lkIGNocGlkLCBpbnQgZm10LCBpbnQgcmZtdCwKKwkJCQkgICAgIGludCBjLCBpbnQgbSwKKwkJCQkgICAgIHN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCAqcmVzcCkKIHsKIAlpbnQgY2NvZGUsIHJldDsKIAogCXN0cnVjdCB7CiAJCXN0cnVjdCBjaHNjX2hlYWRlciByZXF1ZXN0OwotCQl1MzIgOiAyNDsKKwkJdTMyIDogMjsKKwkJdTMyIG0gOiAxOworCQl1MzIgYyA6IDE7CisJCXUzMiBmbXQgOiA0OworCQl1MzIgY3NzaWQgOiA4OworCQl1MzIgOiA0OworCQl1MzIgcmZtdCA6IDQ7CiAJCXUzMiBmaXJzdF9jaHBpZCA6IDg7CiAJCXUzMiA6IDI0OwogCQl1MzIgbGFzdF9jaHBpZCA6IDg7CiAJCXUzMiB6ZXJvZXMxOwogCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7Ci0JCXUzMiB6ZXJvZXMyOwotCQlzdHJ1Y3QgY2hhbm5lbF9wYXRoX2Rlc2MgZGVzYzsKKwkJdTggZGF0YVtQQUdFX1NJWkUgLSAyMF07CiAJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnNjcGRfYXJlYTsKIAorCWlmICgocmZtdCA9PSAxKSAmJiAhY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmZjcykKKwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKChyZm10ID09IDIpICYmICFjc3NfZ2VuZXJhbF9jaGFyYWN0ZXJpc3RpY3MuY2liKQorCQlyZXR1cm4gLUVJTlZBTDsKIAlzY3BkX2FyZWEgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7CiAJaWYgKCFzY3BkX2FyZWEpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtODIxLDggKzY2MiwxMyBAQAogCXNjcGRfYXJlYS0+cmVxdWVzdC5sZW5ndGggPSAweDAwMTA7CiAJc2NwZF9hcmVhLT5yZXF1ZXN0LmNvZGUgPSAweDAwMDI7CiAKKwlzY3BkX2FyZWEtPmNzc2lkID0gY2hwaWQuY3NzaWQ7CiAJc2NwZF9hcmVhLT5maXJzdF9jaHBpZCA9IGNocGlkLmlkOwogCXNjcGRfYXJlYS0+bGFzdF9jaHBpZCA9IGNocGlkLmlkOworCXNjcGRfYXJlYS0+bSA9IG07CisJc2NwZF9hcmVhLT5jID0gYzsKKwlzY3BkX2FyZWEtPmZtdCA9IGZtdDsKKwlzY3BkX2FyZWEtPnJmbXQgPSByZm10OwogCiAJY2NvZGUgPSBjaHNjKHNjcGRfYXJlYSk7CiAJaWYgKGNjb2RlID4gMCkgewpAQCAtODMzLDggKzY3OSw3IEBACiAJcmV0ID0gY2hzY19lcnJvcl9mcm9tX3Jlc3BvbnNlKHNjcGRfYXJlYS0+cmVzcG9uc2UuY29kZSk7CiAJaWYgKHJldCA9PSAwKQogCQkvKiBTdWNjZXNzLiAqLwotCQltZW1jcHkoZGVzYywgJnNjcGRfYXJlYS0+ZGVzYywKLQkJICAgICAgIHNpemVvZihzdHJ1Y3QgY2hhbm5lbF9wYXRoX2Rlc2MpKTsKKwkJbWVtY3B5KHJlc3AsICZzY3BkX2FyZWEtPnJlc3BvbnNlLCBzY3BkX2FyZWEtPnJlc3BvbnNlLmxlbmd0aCk7CiAJZWxzZQogCQlDSU9fQ1JXX0VWRU5UKDIsICJjaHNjOiBzY3BkIGZhaWxlZCAocmM9JTA0eClcbiIsCiAJCQkgICAgICBzY3BkX2FyZWEtPnJlc3BvbnNlLmNvZGUpOwpAQCAtODQyLDYgKzY4NywyNSBAQAogCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylzY3BkX2FyZWEpOwogCXJldHVybiByZXQ7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChjaHNjX2RldGVybWluZV9jaGFubmVsX3BhdGhfZGVzYyk7CisKK2ludCBjaHNjX2RldGVybWluZV9iYXNlX2NoYW5uZWxfcGF0aF9kZXNjKHN0cnVjdCBjaHBfaWQgY2hwaWQsCisJCQkJCSAgc3RydWN0IGNoYW5uZWxfcGF0aF9kZXNjICpkZXNjKQoreworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCAqY2hzY19yZXNwOworCWludCByZXQ7CisKKwljaHNjX3Jlc3AgPSBremFsbG9jKHNpemVvZigqY2hzY19yZXNwKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjaHNjX3Jlc3ApCisJCXJldHVybiAtRU5PTUVNOworCXJldCA9IGNoc2NfZGV0ZXJtaW5lX2NoYW5uZWxfcGF0aF9kZXNjKGNocGlkLCAwLCAwLCAwLCAwLCBjaHNjX3Jlc3ApOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2ZyZWU7CisJbWVtY3B5KGRlc2MsICZjaHNjX3Jlc3AtPmRhdGEsIGNoc2NfcmVzcC0+bGVuZ3RoKTsKK291dF9mcmVlOgorCWtmcmVlKGNoc2NfcmVzcCk7CisJcmV0dXJuIHJldDsKK30KIAogc3RhdGljIHZvaWQKIGNoc2NfaW5pdGlhbGl6ZV9jbWdfY2hhcnMoc3RydWN0IGNoYW5uZWxfcGF0aCAqY2hwLCB1OCBjbWN2LApAQCAtOTM3LDE1ICs4MDEsMjMgQEAKIAogaW50IF9faW5pdCBjaHNjX2FsbG9jX3NlaV9hcmVhKHZvaWQpCiB7CisJaW50IHJldDsKKwogCXNlaV9wYWdlID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwotCWlmICghc2VpX3BhZ2UpCisJaWYgKCFzZWlfcGFnZSkgewogCQlDSU9fTVNHX0VWRU5UKDAsICJDYW4ndCBhbGxvY2F0ZSBwYWdlIGZvciBwcm9jZXNzaW5nIG9mICIKIAkJCSAgICAgICJjaHNjIG1hY2hpbmUgY2hlY2tzIVxuIik7Ci0JcmV0dXJuIChzZWlfcGFnZSA/IDAgOiAtRU5PTUVNKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCXJldCA9IHMzOTBfcmVnaXN0ZXJfY3J3X2hhbmRsZXIoQ1JXX1JTQ19DU1MsIGNoc2NfcHJvY2Vzc19jcncpOworCWlmIChyZXQpCisJCWtmcmVlKHNlaV9wYWdlKTsKKwlyZXR1cm4gcmV0OwogfQogCiB2b2lkIF9faW5pdCBjaHNjX2ZyZWVfc2VpX2FyZWEodm9pZCkKIHsKKwlzMzkwX3VucmVnaXN0ZXJfY3J3X2hhbmRsZXIoQ1JXX1JTQ19DU1MpOwogCWtmcmVlKHNlaV9wYWdlKTsKIH0KIApAQCAtMTA0MywzICs5MTUsNTIgQEAKIAogRVhQT1JUX1NZTUJPTF9HUEwoY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzKTsKIEVYUE9SVF9TWU1CT0xfR1BMKGNzc19jaHNjX2NoYXJhY3RlcmlzdGljcyk7CisKK2ludCBjaHNjX3NzdHBjKHZvaWQgKnBhZ2UsIHVuc2lnbmVkIGludCBvcCwgdTE2IGN0cmwpCit7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXVuc2lnbmVkIGludCByc3ZkMDsKKwkJdW5zaWduZWQgaW50IG9wIDogODsKKwkJdW5zaWduZWQgaW50IHJzdmQxIDogODsKKwkJdW5zaWduZWQgaW50IGN0cmwgOiAxNjsKKwkJdW5zaWduZWQgaW50IHJzdmQyWzVdOworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7CisJCXVuc2lnbmVkIGludCByc3ZkM1s3XTsKKwl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSAqcnI7CisJaW50IHJjOworCisJbWVtc2V0KHBhZ2UsIDAsIFBBR0VfU0laRSk7CisJcnIgPSBwYWdlOworCXJyLT5yZXF1ZXN0Lmxlbmd0aCA9IDB4MDAyMDsKKwlyci0+cmVxdWVzdC5jb2RlID0gMHgwMDMzOworCXJyLT5vcCA9IG9wOworCXJyLT5jdHJsID0gY3RybDsKKwlyYyA9IGNoc2MocnIpOworCWlmIChyYykKKwkJcmV0dXJuIC1FSU87CisJcmMgPSAocnItPnJlc3BvbnNlLmNvZGUgPT0gMHgwMDAxKSA/IDAgOiAtRUlPOworCXJldHVybiByYzsKK30KKworaW50IGNoc2Nfc3N0cGkodm9pZCAqcGFnZSwgdm9pZCAqcmVzdWx0LCBzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVxdWVzdDsKKwkJdW5zaWduZWQgaW50IHJzdmQwWzNdOworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7CisJCWNoYXIgZGF0YVtzaXplXTsKKwl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSAqcnI7CisJaW50IHJjOworCisJbWVtc2V0KHBhZ2UsIDAsIFBBR0VfU0laRSk7CisJcnIgPSBwYWdlOworCXJyLT5yZXF1ZXN0Lmxlbmd0aCA9IDB4MDAxMDsKKwlyci0+cmVxdWVzdC5jb2RlID0gMHgwMDM4OworCXJjID0gY2hzYyhycik7CisJaWYgKHJjKQorCQlyZXR1cm4gLUVJTzsKKwltZW1jcHkocmVzdWx0LCAmcnItPmRhdGEsIHNpemUpOworCXJldHVybiAocnItPnJlc3BvbnNlLmNvZGUgPT0gMHgwMDAxKSA/IDAgOiAtRUlPOworfQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuaCBiL2RyaXZlcnMvczM5MC9jaW8vY2hzYy5oCmluZGV4IGQxZjVkYjEuLmZiNmM0ZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY2hzYy5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY2hzYy5oCkBAIC00LDcgKzQsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+Ci0jaW5jbHVkZSAic2NoaWQuaCIKKyNpbmNsdWRlIDxhc20vY2hzYy5oPgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgogCiAjZGVmaW5lIENIU0NfU0RBX09DX01TUyAgIDB4MgogCkBAIC0zNiwxNCArMzcsMTUgQEAKIAogc3RydWN0IGNoYW5uZWxfcGF0aDsKIAotZXh0ZXJuIHZvaWQgY2hzY19wcm9jZXNzX2Nydyh2b2lkKTsKLQogc3RydWN0IGNzc19nZW5lcmFsX2NoYXIgewotCXU2NCA6IDQxOworCXU2NCA6IDEyOworCXUzMiBkeW5pbyA6IDE7CSAvKiBiaXQgMTIgKi8KKwl1MzIgOiAyODsKIAl1MzIgYWlmIDogMTsgICAgIC8qIGJpdCA0MSAqLwogCXUzMiA6IDM7CiAJdTMyIG1jc3MgOiAxOyAgICAvKiBiaXQgNDUgKi8KLQl1MzIgOiAyOworCXUzMiBmY3MgOiAxOwkgLyogYml0IDQ2ICovCisJdTMyIDogMTsKIAl1MzIgZXh0X21iIDogMTsgIC8qIGJpdCA0OCAqLwogCXUzMiA6IDc7CiAJdTMyIGFpZl90ZGQgOiAxOyAvKiBiaXQgNTYgKi8KQEAgLTUxLDcgKzUzLDExIEBACiAJdTMyIHFlYnNtIDogMTsgICAvKiBiaXQgNTggKi8KIAl1MzIgOiA4OwogCXUzMiBhaWZfb3NhIDogMTsgLyogYml0IDY3ICovCi0JdTMyIDogMjg7CisJdTMyIDogMTQ7CisJdTMyIGNpYiA6IDE7CSAvKiBiaXQgODIgKi8KKwl1MzIgOiA1OworCXUzMiBmY3ggOiAxOwkgLyogYml0IDg4ICovCisJdTMyIDogNzsKIH1fX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAogc3RydWN0IGNzc19jaHNjX2NoYXIgewpAQCAtNzgsNyArODQsNiBAQAogZXh0ZXJuIGludCBjaHNjX2dldF9zc2RfaW5mbyhzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCwKIAkJCSAgICAgc3RydWN0IGNoc2Nfc3NkX2luZm8gKnNzZCk7CiBleHRlcm4gaW50IGNoc2NfZGV0ZXJtaW5lX2Nzc19jaGFyYWN0ZXJpc3RpY3Modm9pZCk7Ci1leHRlcm4gaW50IGNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWw7CiBleHRlcm4gaW50IGNoc2NfYWxsb2Nfc2VpX2FyZWEodm9pZCk7CiBleHRlcm4gdm9pZCBjaHNjX2ZyZWVfc2VpX2FyZWEodm9pZCk7CiAKQEAgLTg3LDggKzkyLDExIEBACiBleHRlcm4gaW50IGNoc2Nfc2VjbShzdHJ1Y3QgY2hhbm5lbF9zdWJzeXN0ZW0gKiwgaW50KTsKIAogaW50IGNoc2NfY2hwX3Zhcnkoc3RydWN0IGNocF9pZCBjaHBpZCwgaW50IG9uKTsKLWludCBjaHNjX2RldGVybWluZV9jaGFubmVsX3BhdGhfZGVzY3JpcHRpb24oc3RydWN0IGNocF9pZCBjaHBpZCwKLQkJCQkJICAgIHN0cnVjdCBjaGFubmVsX3BhdGhfZGVzYyAqZGVzYyk7CitpbnQgY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2Moc3RydWN0IGNocF9pZCBjaHBpZCwgaW50IGZtdCwgaW50IHJmbXQsCisJCQkJICAgICBpbnQgYywgaW50IG0sCisJCQkJICAgICBzdHJ1Y3QgY2hzY19yZXNwb25zZV9zdHJ1Y3QgKnJlc3ApOworaW50IGNoc2NfZGV0ZXJtaW5lX2Jhc2VfY2hhbm5lbF9wYXRoX2Rlc2Moc3RydWN0IGNocF9pZCBjaHBpZCwKKwkJCQkJICBzdHJ1Y3QgY2hhbm5lbF9wYXRoX2Rlc2MgKmRlc2MpOwogdm9pZCBjaHNjX2NocF9vbmxpbmUoc3RydWN0IGNocF9pZCBjaHBpZCk7CiB2b2lkIGNoc2NfY2hwX29mZmxpbmUoc3RydWN0IGNocF9pZCBjaHBpZCk7CiBpbnQgY2hzY19nZXRfY2hhbm5lbF9tZWFzdXJlbWVudF9jaGFycyhzdHJ1Y3QgY2hhbm5lbF9wYXRoICpjaHApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaHNjX3NjaC5jIGIvZHJpdmVycy9zMzkwL2Npby9jaHNjX3NjaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxY2E4N2EKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2Nfc2NoLmMKQEAgLTAsMCArMSw4MjAgQEAKKy8qCisgKiBEcml2ZXIgZm9yIHMzOTAgY2hzYyBzdWJjaGFubmVscworICoKKyAqIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwOAorICogQXV0aG9yKHMpOiBDb3JuZWxpYSBIdWNrIDxjb3JuZWxpYS5odWNrQGRlLmlibS5jb20+CisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgorCisjaW5jbHVkZSA8YXNtL2Npby5oPgorI2luY2x1ZGUgPGFzbS9jaHNjLmg+CisjaW5jbHVkZSA8YXNtL2lzYy5oPgorCisjaW5jbHVkZSAiY2lvLmgiCisjaW5jbHVkZSAiY2lvX2RlYnVnLmgiCisjaW5jbHVkZSAiY3NzLmgiCisjaW5jbHVkZSAiY2hzY19zY2guaCIKKyNpbmNsdWRlICJpb2FzbS5oIgorCitzdGF0aWMgZGVidWdfaW5mb190ICpjaHNjX2RlYnVnX21zZ19pZDsKK3N0YXRpYyBkZWJ1Z19pbmZvX3QgKmNoc2NfZGVidWdfbG9nX2lkOworCisjZGVmaW5lIENIU0NfTVNHKGltcCwgYXJncy4uLikgZG8gewkJCQkJXAorCQlkZWJ1Z19zcHJpbnRmX2V2ZW50KGNoc2NfZGVidWdfbXNnX2lkLCBpbXAgLCAjI2FyZ3MpOwlcCisJfSB3aGlsZSAoMCkKKworI2RlZmluZSBDSFNDX0xPRyhpbXAsIHR4dCkgZG8gewkJCQkJXAorCQlkZWJ1Z190ZXh0X2V2ZW50KGNoc2NfZGVidWdfbG9nX2lkLCBpbXAgLCB0eHQpOwlcCisJfSB3aGlsZSAoMCkKKworc3RhdGljIHZvaWQgQ0hTQ19MT0dfSEVYKGludCBsZXZlbCwgdm9pZCAqZGF0YSwgaW50IGxlbmd0aCkKK3sKKwl3aGlsZSAobGVuZ3RoID4gMCkgeworCQlkZWJ1Z19ldmVudChjaHNjX2RlYnVnX2xvZ19pZCwgbGV2ZWwsIGRhdGEsIGxlbmd0aCk7CisJCWxlbmd0aCAtPSBjaHNjX2RlYnVnX2xvZ19pZC0+YnVmX3NpemU7CisJCWRhdGEgKz0gY2hzY19kZWJ1Z19sb2dfaWQtPmJ1Zl9zaXplOworCX0KK30KKworTU9EVUxFX0FVVEhPUigiSUJNIENvcnBvcmF0aW9uIik7CitNT0RVTEVfREVTQ1JJUFRJT04oImRyaXZlciBmb3IgczM5MCBjaHNjIHN1YmNoYW5uZWxzIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKK3N0YXRpYyB2b2lkIGNoc2Nfc3ViY2hhbm5lbF9pcnEoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlzdHJ1Y3QgY2hzY19wcml2YXRlICpwcml2YXRlID0gc2NoLT5wcml2YXRlOworCXN0cnVjdCBjaHNjX3JlcXVlc3QgKnJlcXVlc3QgPSBwcml2YXRlLT5yZXF1ZXN0OworCXN0cnVjdCBpcmIgKmlyYiA9IChzdHJ1Y3QgaXJiICopX19MQ19JUkI7CisKKwlDSFNDX0xPRyg0LCAiaXJiIik7CisJQ0hTQ19MT0dfSEVYKDQsIGlyYiwgc2l6ZW9mKCppcmIpKTsKKwkvKiBDb3B5IGlyYiB0byBwcm92aWRlZCByZXF1ZXN0IGFuZCBzZXQgZG9uZS4gKi8KKwlpZiAoIXJlcXVlc3QpIHsKKwkJQ0hTQ19NU0coMCwgIkludGVycnVwdCBvbiBzY2ggMC4leC4lMDR4IHdpdGggbm8gcmVxdWVzdFxuIiwKKwkJCSBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vKTsKKwkJcmV0dXJuOworCX0KKwlwcml2YXRlLT5yZXF1ZXN0ID0gTlVMTDsKKwltZW1jcHkoJnJlcXVlc3QtPmlyYiwgaXJiLCBzaXplb2YoKmlyYikpOworCXN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKTsKKwljb21wbGV0ZSgmcmVxdWVzdC0+Y29tcGxldGlvbik7CisJcHV0X2RldmljZSgmc2NoLT5kZXYpOworfQorCitzdGF0aWMgaW50IGNoc2Nfc3ViY2hhbm5lbF9wcm9iZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCXN0cnVjdCBjaHNjX3ByaXZhdGUgKnByaXZhdGU7CisJaW50IHJldDsKKworCUNIU0NfTVNHKDYsICJEZXRlY3RlZCBjaHNjIHN1YmNoYW5uZWwgMC4leC4lMDR4XG4iLAorCQkgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubyk7CisJc2NoLT5pc2MgPSBDSFNDX1NDSF9JU0M7CisJcHJpdmF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpwcml2YXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2YXRlKQorCQlyZXR1cm4gLUVOT01FTTsKKwlyZXQgPSBjaW9fZW5hYmxlX3N1YmNoYW5uZWwoc2NoLCAodTMyKSh1bnNpZ25lZCBsb25nKXNjaCk7CisJaWYgKHJldCkgeworCQlDSFNDX01TRygwLCAiRmFpbGVkIHRvIGVuYWJsZSAwLiV4LiUwNHg6ICVkXG4iLAorCQkJIHNjaC0+c2NoaWQuc3NpZCwgc2NoLT5zY2hpZC5zY2hfbm8sIHJldCk7CisJCWtmcmVlKHByaXZhdGUpOworCX0gZWxzZSB7CisJCXNjaC0+cHJpdmF0ZSA9IHByaXZhdGU7CisJCWlmIChzY2gtPmRldi51ZXZlbnRfc3VwcHJlc3MpIHsKKwkJCXNjaC0+ZGV2LnVldmVudF9zdXBwcmVzcyA9IDA7CisJCQlrb2JqZWN0X3VldmVudCgmc2NoLT5kZXYua29iaiwgS09CSl9BREQpOworCQl9CisJfQorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19zdWJjaGFubmVsX3JlbW92ZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCXN0cnVjdCBjaHNjX3ByaXZhdGUgKnByaXZhdGU7CisKKwljaW9fZGlzYWJsZV9zdWJjaGFubmVsKHNjaCk7CisJcHJpdmF0ZSA9IHNjaC0+cHJpdmF0ZTsKKwlzY2gtPnByaXZhdGUgPSBOVUxMOworCWlmIChwcml2YXRlLT5yZXF1ZXN0KSB7CisJCWNvbXBsZXRlKCZwcml2YXRlLT5yZXF1ZXN0LT5jb21wbGV0aW9uKTsKKwkJcHV0X2RldmljZSgmc2NoLT5kZXYpOworCX0KKwlrZnJlZShwcml2YXRlKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2hzY19zdWJjaGFubmVsX3NodXRkb3duKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit7CisJY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzY2gpOworfQorCitzdGF0aWMgc3RydWN0IGNzc19kZXZpY2VfaWQgY2hzY19zdWJjaGFubmVsX2lkc1tdID0geworCXsgLm1hdGNoX2ZsYWdzID0gMHgxLCAudHlwZSA9U1VCQ0hBTk5FTF9UWVBFX0NIU0MsIH0sCisJeyAvKiBlbmQgb2YgbGlzdCAqLyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoY3NzLCBjaHNjX3N1YmNoYW5uZWxfaWRzKTsKKworc3RhdGljIHN0cnVjdCBjc3NfZHJpdmVyIGNoc2Nfc3ViY2hhbm5lbF9kcml2ZXIgPSB7CisJLm93bmVyID0gVEhJU19NT0RVTEUsCisJLnN1YmNoYW5uZWxfdHlwZSA9IGNoc2Nfc3ViY2hhbm5lbF9pZHMsCisJLmlycSA9IGNoc2Nfc3ViY2hhbm5lbF9pcnEsCisJLnByb2JlID0gY2hzY19zdWJjaGFubmVsX3Byb2JlLAorCS5yZW1vdmUgPSBjaHNjX3N1YmNoYW5uZWxfcmVtb3ZlLAorCS5zaHV0ZG93biA9IGNoc2Nfc3ViY2hhbm5lbF9zaHV0ZG93biwKKwkubmFtZSA9ICJjaHNjX3N1YmNoYW5uZWwiLAorfTsKKworc3RhdGljIGludCBfX2luaXQgY2hzY19pbml0X2RiZnModm9pZCkKK3sKKwljaHNjX2RlYnVnX21zZ19pZCA9IGRlYnVnX3JlZ2lzdGVyKCJjaHNjX21zZyIsIDE2LCAxLAorCQkJCQkgICAxNiAqIHNpemVvZihsb25nKSk7CisJaWYgKCFjaHNjX2RlYnVnX21zZ19pZCkKKwkJZ290byBvdXQ7CisJZGVidWdfcmVnaXN0ZXJfdmlldyhjaHNjX2RlYnVnX21zZ19pZCwgJmRlYnVnX3NwcmludGZfdmlldyk7CisJZGVidWdfc2V0X2xldmVsKGNoc2NfZGVidWdfbXNnX2lkLCAyKTsKKwljaHNjX2RlYnVnX2xvZ19pZCA9IGRlYnVnX3JlZ2lzdGVyKCJjaHNjX2xvZyIsIDE2LCAxLCAxNik7CisJaWYgKCFjaHNjX2RlYnVnX2xvZ19pZCkKKwkJZ290byBvdXQ7CisJZGVidWdfcmVnaXN0ZXJfdmlldyhjaHNjX2RlYnVnX2xvZ19pZCwgJmRlYnVnX2hleF9hc2NpaV92aWV3KTsKKwlkZWJ1Z19zZXRfbGV2ZWwoY2hzY19kZWJ1Z19sb2dfaWQsIDIpOworCXJldHVybiAwOworb3V0OgorCWlmIChjaHNjX2RlYnVnX21zZ19pZCkKKwkJZGVidWdfdW5yZWdpc3RlcihjaHNjX2RlYnVnX21zZ19pZCk7CisJcmV0dXJuIC1FTk9NRU07Cit9CisKK3N0YXRpYyB2b2lkIGNoc2NfcmVtb3ZlX2RiZnModm9pZCkKK3sKKwlkZWJ1Z191bnJlZ2lzdGVyKGNoc2NfZGVidWdfbG9nX2lkKTsKKwlkZWJ1Z191bnJlZ2lzdGVyKGNoc2NfZGVidWdfbXNnX2lkKTsKK30KKworc3RhdGljIGludCBfX2luaXQgY2hzY19pbml0X3NjaF9kcml2ZXIodm9pZCkKK3sKKwlyZXR1cm4gY3NzX2RyaXZlcl9yZWdpc3RlcigmY2hzY19zdWJjaGFubmVsX2RyaXZlcik7Cit9CisKK3N0YXRpYyB2b2lkIGNoc2NfY2xlYW51cF9zY2hfZHJpdmVyKHZvaWQpCit7CisJY3NzX2RyaXZlcl91bnJlZ2lzdGVyKCZjaHNjX3N1YmNoYW5uZWxfZHJpdmVyKTsKK30KKworc3RhdGljIERFRklORV9TUElOTE9DSyhjaHNjX2xvY2spOworCitzdGF0aWMgaW50IGNoc2Nfc3ViY2hhbm5lbF9tYXRjaF9uZXh0X2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBzdWJjaGFubmVsICpzY2ggPSB0b19zdWJjaGFubmVsKGRldik7CisKKwlyZXR1cm4gc2NoLT5zY2hpYi5wbWN3LmVuYSAmJiAhc2Nzd19mY3RsKCZzY2gtPnNjaGliLnNjc3cpOworfQorCitzdGF0aWMgc3RydWN0IHN1YmNoYW5uZWwgKmNoc2NfZ2V0X25leHRfc3ViY2hhbm5lbChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCXN0cnVjdCBkZXZpY2UgKmRldjsKKworCWRldiA9IGRyaXZlcl9maW5kX2RldmljZSgmY2hzY19zdWJjaGFubmVsX2RyaXZlci5kcnYsCisJCQkJIHNjaCA/ICZzY2gtPmRldiA6IE5VTEwsIE5VTEwsCisJCQkJIGNoc2Nfc3ViY2hhbm5lbF9tYXRjaF9uZXh0X2ZyZWUpOworCXJldHVybiBkZXYgPyB0b19zdWJjaGFubmVsKGRldikgOiBOVUxMOworfQorCisvKioKKyAqIGNoc2NfYXN5bmMoKSAtIHRyeSB0byBzdGFydCBhIGNoc2MgcmVxdWVzdCBhc3luY2hyb25vdXNseQorICogQGNoc2NfYXJlYTogcmVxdWVzdCB0byBiZSBzdGFydGVkCisgKiBAcmVxdWVzdDogcmVxdWVzdCBzdHJ1Y3R1cmUgdG8gYXNzb2NpYXRlCisgKgorICogVHJpZXMgdG8gc3RhcnQgYSBjaHNjIHJlcXVlc3Qgb24gb25lIG9mIHRoZSBleGlzdGluZyBjaHNjIHN1YmNoYW5uZWxzLgorICogUmV0dXJuczoKKyAqICAlMCBpZiB0aGUgcmVxdWVzdCB3YXMgcGVyZm9ybWVkIHN5bmNocm9ub3VzbHkKKyAqICAlLUVJTlBST0dSRVNTIGlmIHRoZSByZXF1ZXN0IHdhcyBzdWNjZXNzZnVsbHkgc3RhcnRlZAorICogICUtRUJVU1kgaWYgYWxsIGNoc2Mgc3ViY2hhbm5lbHMgYXJlIGJ1c3kKKyAqICAlLUVOT0RFViBpZiBubyBjaHNjIHN1YmNoYW5uZWxzIGFyZSBhdmFpbGFibGUKKyAqIENvbnRleHQ6CisgKiAgaW50ZXJydXB0cyBkaXNhYmxlZCwgY2hzY19sb2NrIGhlbGQKKyAqLworc3RhdGljIGludCBjaHNjX2FzeW5jKHN0cnVjdCBjaHNjX2FzeW5jX2FyZWEgKmNoc2NfYXJlYSwKKwkJICAgICAgc3RydWN0IGNoc2NfcmVxdWVzdCAqcmVxdWVzdCkKK3sKKwlpbnQgY2M7CisJc3RydWN0IGNoc2NfcHJpdmF0ZSAqcHJpdmF0ZTsKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gTlVMTDsKKwlpbnQgcmV0ID0gLUVOT0RFVjsKKwljaGFyIGRiZlsxMF07CisKKwljaHNjX2FyZWEtPmhlYWRlci5rZXkgPSBQQUdFX0RFRkFVTFRfS0VZOworCXdoaWxlICgoc2NoID0gY2hzY19nZXRfbmV4dF9zdWJjaGFubmVsKHNjaCkpKSB7CisJCXNwaW5fbG9jayhzY2gtPmxvY2spOworCQlwcml2YXRlID0gc2NoLT5wcml2YXRlOworCQlpZiAocHJpdmF0ZS0+cmVxdWVzdCkgeworCQkJc3Bpbl91bmxvY2soc2NoLT5sb2NrKTsKKwkJCXJldCA9IC1FQlVTWTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWNoc2NfYXJlYS0+aGVhZGVyLnNpZCA9IHNjaC0+c2NoaWQ7CisJCUNIU0NfTE9HKDIsICJzY2hpZCIpOworCQlDSFNDX0xPR19IRVgoMiwgJnNjaC0+c2NoaWQsIHNpemVvZihzY2gtPnNjaGlkKSk7CisJCWNjID0gY2hzYyhjaHNjX2FyZWEpOworCQlzcHJpbnRmKGRiZiwgImNjOiVkIiwgY2MpOworCQlDSFNDX0xPRygyLCBkYmYpOworCQlzd2l0Y2ggKGNjKSB7CisJCWNhc2UgMDoKKwkJCXJldCA9IDA7CisJCQlicmVhazsKKwkJY2FzZSAxOgorCQkJc2NoLT5zY2hpYi5zY3N3LmNtZC5mY3RsIHw9IFNDU1dfRkNUTF9TVEFSVF9GVU5DOworCQkJcmV0ID0gLUVJTlBST0dSRVNTOworCQkJcHJpdmF0ZS0+cmVxdWVzdCA9IHJlcXVlc3Q7CisJCQlicmVhazsKKwkJY2FzZSAyOgorCQkJcmV0ID0gLUVCVVNZOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlyZXQgPSAtRU5PREVWOworCQl9CisJCXNwaW5fdW5sb2NrKHNjaC0+bG9jayk7CisJCUNIU0NfTVNHKDIsICJjaHNjIG9uIDAuJXguJTA0eCByZXR1cm5lZCBjYz0lZFxuIiwKKwkJCSBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCBjYyk7CisJCWlmIChyZXQgPT0gLUVJTlBST0dSRVNTKQorCQkJcmV0dXJuIC1FSU5QUk9HUkVTUzsKKwkJcHV0X2RldmljZSgmc2NoLT5kZXYpOworCQlpZiAocmV0ID09IDApCisJCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgY2hzY19sb2dfY29tbWFuZChzdHJ1Y3QgY2hzY19hc3luY19hcmVhICpjaHNjX2FyZWEpCit7CisJY2hhciBkYmZbMTBdOworCisJc3ByaW50ZihkYmYsICJDSFNDOiV4IiwgY2hzY19hcmVhLT5oZWFkZXIuY29kZSk7CisJQ0hTQ19MT0coMCwgZGJmKTsKKwlDSFNDX0xPR19IRVgoMCwgY2hzY19hcmVhLCAzMik7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19leGFtaW5lX2lyYihzdHJ1Y3QgY2hzY19yZXF1ZXN0ICpyZXF1ZXN0KQoreworCWludCBiYWNrZWRfdXA7CisKKwlpZiAoIXNjc3dfc3RjdGwoJnJlcXVlc3QtPmlyYi5zY3N3KSAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpCisJCXJldHVybiAtRUlPOworCWJhY2tlZF91cCA9IHNjc3dfY3N0YXQoJnJlcXVlc3QtPmlyYi5zY3N3KSAmIFNDSE5fU1RBVF9DSEFJTl9DSEVDSzsKKwlyZXF1ZXN0LT5pcmIuc2Nzdy5jbWQuY3N0YXQgJj0gflNDSE5fU1RBVF9DSEFJTl9DSEVDSzsKKwlpZiAoc2Nzd19jc3RhdCgmcmVxdWVzdC0+aXJiLnNjc3cpID09IDApCisJCXJldHVybiAwOworCWlmICghYmFja2VkX3VwKQorCQlyZXR1cm4gMDsKKwlpZiAoc2Nzd19jc3RhdCgmcmVxdWVzdC0+aXJiLnNjc3cpICYgU0NITl9TVEFUX1BST0dfQ0hFQ0spCisJCXJldHVybiAtRUlPOworCWlmIChzY3N3X2NzdGF0KCZyZXF1ZXN0LT5pcmIuc2NzdykgJiBTQ0hOX1NUQVRfUFJPVF9DSEVDSykKKwkJcmV0dXJuIC1FUEVSTTsKKwlpZiAoc2Nzd19jc3RhdCgmcmVxdWVzdC0+aXJiLnNjc3cpICYgU0NITl9TVEFUX0NITl9EQVRBX0NISykKKwkJcmV0dXJuIC1FQUdBSU47CisJaWYgKHNjc3dfY3N0YXQoJnJlcXVlc3QtPmlyYi5zY3N3KSAmIFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEspCisJCXJldHVybiAtRUFHQUlOOworCXJldHVybiAtRUlPOworfQorCitzdGF0aWMgaW50IGNoc2NfaW9jdGxfc3RhcnQodm9pZCBfX3VzZXIgKnVzZXJfYXJlYSkKK3sKKwlzdHJ1Y3QgY2hzY19yZXF1ZXN0ICpyZXF1ZXN0OworCXN0cnVjdCBjaHNjX2FzeW5jX2FyZWEgKmNoc2NfYXJlYTsKKwlpbnQgcmV0OworCWNoYXIgZGJmWzEwXTsKKworCWlmICghY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmR5bmlvKQorCQkvKiBJdCBtYWtlcyBubyBzZW5zZSB0byB0cnkuICovCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwljaHNjX2FyZWEgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfRE1BIHwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjaHNjX2FyZWEpCisJCXJldHVybiAtRU5PTUVNOworCXJlcXVlc3QgPSBremFsbG9jKHNpemVvZigqcmVxdWVzdCksIEdGUF9LRVJORUwpOworCWlmICghcmVxdWVzdCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpbml0X2NvbXBsZXRpb24oJnJlcXVlc3QtPmNvbXBsZXRpb24pOworCWlmIChjb3B5X2Zyb21fdXNlcihjaHNjX2FyZWEsIHVzZXJfYXJlYSwgUEFHRV9TSVpFKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIG91dF9mcmVlOworCX0KKwljaHNjX2xvZ19jb21tYW5kKGNoc2NfYXJlYSk7CisJc3Bpbl9sb2NrX2lycSgmY2hzY19sb2NrKTsKKwlyZXQgPSBjaHNjX2FzeW5jKGNoc2NfYXJlYSwgcmVxdWVzdCk7CisJc3Bpbl91bmxvY2tfaXJxKCZjaHNjX2xvY2spOworCWlmIChyZXQgPT0gLUVJTlBST0dSRVNTKSB7CisJCXdhaXRfZm9yX2NvbXBsZXRpb24oJnJlcXVlc3QtPmNvbXBsZXRpb24pOworCQlyZXQgPSBjaHNjX2V4YW1pbmVfaXJiKHJlcXVlc3QpOworCX0KKwkvKiBjb3B5IGFyZWEgYmFjayB0byB1c2VyICovCisJaWYgKCFyZXQpCisJCWlmIChjb3B5X3RvX3VzZXIodXNlcl9hcmVhLCBjaHNjX2FyZWEsIFBBR0VfU0laRSkpCisJCQlyZXQgPSAtRUZBVUxUOworb3V0X2ZyZWU6CisJc3ByaW50ZihkYmYsICJyZXQ6JWQiLCByZXQpOworCUNIU0NfTE9HKDAsIGRiZik7CisJa2ZyZWUocmVxdWVzdCk7CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKWNoc2NfYXJlYSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBjaHNjX2lvY3RsX2luZm9fY2hhbm5lbF9wYXRoKHZvaWQgX191c2VyICp1c2VyX2NkKQoreworCXN0cnVjdCBjaHNjX2NocF9jZCAqY2Q7CisJaW50IHJldCwgY2NvZGU7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXUzMiA6IDI7CisJCXUzMiBtIDogMTsKKwkJdTMyIDogMTsKKwkJdTMyIGZtdDEgOiA0OworCQl1MzIgY3NzaWQgOiA4OworCQl1MzIgOiA4OworCQl1MzIgZmlyc3RfY2hwaWQgOiA4OworCQl1MzIgOiAyNDsKKwkJdTMyIGxhc3RfY2hwaWQgOiA4OworCQl1MzIgOiAzMjsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOworCQl1OCBkYXRhW1BBR0VfU0laRSAtIDIwXTsKKwl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSAqc2NwY2RfYXJlYTsKKworCXNjcGNkX2FyZWEgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7CisJaWYgKCFzY3BjZF9hcmVhKQorCQlyZXR1cm4gLUVOT01FTTsKKwljZCA9IGt6YWxsb2Moc2l6ZW9mKCpjZCksIEdGUF9LRVJORUwpOworCWlmICghY2QpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaWYgKGNvcHlfZnJvbV91c2VyKGNkLCB1c2VyX2NkLCBzaXplb2YoKmNkKSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJc2NwY2RfYXJlYS0+cmVxdWVzdC5sZW5ndGggPSAweDAwMTA7CisJc2NwY2RfYXJlYS0+cmVxdWVzdC5jb2RlID0gMHgwMDI4OworCXNjcGNkX2FyZWEtPm0gPSBjZC0+bTsKKwlzY3BjZF9hcmVhLT5mbXQxID0gY2QtPmZtdDsKKwlzY3BjZF9hcmVhLT5jc3NpZCA9IGNkLT5jaHBpZC5jc3NpZDsKKwlzY3BjZF9hcmVhLT5maXJzdF9jaHBpZCA9IGNkLT5jaHBpZC5pZDsKKwlzY3BjZF9hcmVhLT5sYXN0X2NocGlkID0gY2QtPmNocGlkLmlkOworCisJY2NvZGUgPSBjaHNjKHNjcGNkX2FyZWEpOworCWlmIChjY29kZSAhPSAwKSB7CisJCXJldCA9IC1FSU87CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChzY3BjZF9hcmVhLT5yZXNwb25zZS5jb2RlICE9IDB4MDAwMSkgeworCQlyZXQgPSAtRUlPOworCQlDSFNDX01TRygwLCAic2NwY2Q6IHJlc3BvbnNlIGNvZGU9JXhcbiIsCisJCQkgc2NwY2RfYXJlYS0+cmVzcG9uc2UuY29kZSk7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCW1lbWNweSgmY2QtPmNwY2IsICZzY3BjZF9hcmVhLT5yZXNwb25zZSwgc2NwY2RfYXJlYS0+cmVzcG9uc2UubGVuZ3RoKTsKKwlpZiAoY29weV90b191c2VyKHVzZXJfY2QsIGNkLCBzaXplb2YoKmNkKSkpCisJCXJldCA9IC1FRkFVTFQ7CisJZWxzZQorCQlyZXQgPSAwOworb3V0X2ZyZWU6CisJa2ZyZWUoY2QpOworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylzY3BjZF9hcmVhKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGNoc2NfaW9jdGxfaW5mb19jdSh2b2lkIF9fdXNlciAqdXNlcl9jZCkKK3sKKwlzdHJ1Y3QgY2hzY19jdV9jZCAqY2Q7CisJaW50IHJldCwgY2NvZGU7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXUzMiA6IDI7CisJCXUzMiBtIDogMTsKKwkJdTMyIDogMTsKKwkJdTMyIGZtdDEgOiA0OworCQl1MzIgY3NzaWQgOiA4OworCQl1MzIgOiA4OworCQl1MzIgZmlyc3RfY3VuIDogODsKKwkJdTMyIDogMjQ7CisJCXUzMiBsYXN0X2N1biA6IDg7CisJCXUzMiA6IDMyOworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7CisJCXU4IGRhdGFbUEFHRV9TSVpFIC0gMjBdOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpzY3VjZF9hcmVhOworCisJc2N1Y2RfYXJlYSA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwlpZiAoIXNjdWNkX2FyZWEpCisJCXJldHVybiAtRU5PTUVNOworCWNkID0ga3phbGxvYyhzaXplb2YoKmNkKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjZCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoY29weV9mcm9tX3VzZXIoY2QsIHVzZXJfY2QsIHNpemVvZigqY2QpKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlzY3VjZF9hcmVhLT5yZXF1ZXN0Lmxlbmd0aCA9IDB4MDAxMDsKKwlzY3VjZF9hcmVhLT5yZXF1ZXN0LmNvZGUgPSAweDAwMjg7CisJc2N1Y2RfYXJlYS0+bSA9IGNkLT5tOworCXNjdWNkX2FyZWEtPmZtdDEgPSBjZC0+Zm10OworCXNjdWNkX2FyZWEtPmNzc2lkID0gY2QtPmNzc2lkOworCXNjdWNkX2FyZWEtPmZpcnN0X2N1biA9IGNkLT5jdW47CisJc2N1Y2RfYXJlYS0+bGFzdF9jdW4gPSBjZC0+Y3VuOworCisJY2NvZGUgPSBjaHNjKHNjdWNkX2FyZWEpOworCWlmIChjY29kZSAhPSAwKSB7CisJCXJldCA9IC1FSU87CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChzY3VjZF9hcmVhLT5yZXNwb25zZS5jb2RlICE9IDB4MDAwMSkgeworCQlyZXQgPSAtRUlPOworCQlDSFNDX01TRygwLCAic2N1Y2Q6IHJlc3BvbnNlIGNvZGU9JXhcbiIsCisJCQkgc2N1Y2RfYXJlYS0+cmVzcG9uc2UuY29kZSk7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCW1lbWNweSgmY2QtPmN1Y2IsICZzY3VjZF9hcmVhLT5yZXNwb25zZSwgc2N1Y2RfYXJlYS0+cmVzcG9uc2UubGVuZ3RoKTsKKwlpZiAoY29weV90b191c2VyKHVzZXJfY2QsIGNkLCBzaXplb2YoKmNkKSkpCisJCXJldCA9IC1FRkFVTFQ7CisJZWxzZQorCQlyZXQgPSAwOworb3V0X2ZyZWU6CisJa2ZyZWUoY2QpOworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylzY3VjZF9hcmVhKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGNoc2NfaW9jdGxfaW5mb19zY2hfY3Uodm9pZCBfX3VzZXIgKnVzZXJfY3VkKQoreworCXN0cnVjdCBjaHNjX3NjaF9jdWQgKmN1ZDsKKwlpbnQgcmV0LCBjY29kZTsKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVxdWVzdDsKKwkJdTMyIDogMjsKKwkJdTMyIG0gOiAxOworCQl1MzIgOiA1OworCQl1MzIgZm10MSA6IDQ7CisJCXUzMiA6IDI7CisJCXUzMiBzc2lkIDogMjsKKwkJdTMyIGZpcnN0X3NjaCA6IDE2OworCQl1MzIgOiA4OworCQl1MzIgY3NzaWQgOiA4OworCQl1MzIgbGFzdF9zY2ggOiAxNjsKKwkJdTMyIDogMzI7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKKwkJdTggZGF0YVtQQUdFX1NJWkUgLSAyMF07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnNzY3VkX2FyZWE7CisKKwlzc2N1ZF9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc3NjdWRfYXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisJY3VkID0ga3phbGxvYyhzaXplb2YoKmN1ZCksIEdGUF9LRVJORUwpOworCWlmICghY3VkKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChjb3B5X2Zyb21fdXNlcihjdWQsIHVzZXJfY3VkLCBzaXplb2YoKmN1ZCkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXNzY3VkX2FyZWEtPnJlcXVlc3QubGVuZ3RoID0gMHgwMDEwOworCXNzY3VkX2FyZWEtPnJlcXVlc3QuY29kZSA9IDB4MDAwNjsKKwlzc2N1ZF9hcmVhLT5tID0gY3VkLT5zY2hpZC5tOworCXNzY3VkX2FyZWEtPmZtdDEgPSBjdWQtPmZtdDsKKwlzc2N1ZF9hcmVhLT5zc2lkID0gY3VkLT5zY2hpZC5zc2lkOworCXNzY3VkX2FyZWEtPmZpcnN0X3NjaCA9IGN1ZC0+c2NoaWQuc2NoX25vOworCXNzY3VkX2FyZWEtPmNzc2lkID0gY3VkLT5zY2hpZC5jc3NpZDsKKwlzc2N1ZF9hcmVhLT5sYXN0X3NjaCA9IGN1ZC0+c2NoaWQuc2NoX25vOworCisJY2NvZGUgPSBjaHNjKHNzY3VkX2FyZWEpOworCWlmIChjY29kZSAhPSAwKSB7CisJCXJldCA9IC1FSU87CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChzc2N1ZF9hcmVhLT5yZXNwb25zZS5jb2RlICE9IDB4MDAwMSkgeworCQlyZXQgPSAtRUlPOworCQlDSFNDX01TRygwLCAic3NjdWQ6IHJlc3BvbnNlIGNvZGU9JXhcbiIsCisJCQkgc3NjdWRfYXJlYS0+cmVzcG9uc2UuY29kZSk7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCW1lbWNweSgmY3VkLT5zY3ViLCAmc3NjdWRfYXJlYS0+cmVzcG9uc2UsIHNzY3VkX2FyZWEtPnJlc3BvbnNlLmxlbmd0aCk7CisJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2N1ZCwgY3VkLCBzaXplb2YoKmN1ZCkpKQorCQlyZXQgPSAtRUZBVUxUOworCWVsc2UKKwkJcmV0ID0gMDsKK291dF9mcmVlOgorCWtmcmVlKGN1ZCk7CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXNzY3VkX2FyZWEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19pb2N0bF9jb25mX2luZm8odm9pZCBfX3VzZXIgKnVzZXJfY2kpCit7CisJc3RydWN0IGNoc2NfY29uZl9pbmZvICpjaTsKKwlpbnQgcmV0LCBjY29kZTsKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVxdWVzdDsKKwkJdTMyIDogMjsKKwkJdTMyIG0gOiAxOworCQl1MzIgOiAxOworCQl1MzIgZm10MSA6IDQ7CisJCXUzMiBjc3NpZCA6IDg7CisJCXUzMiA6IDY7CisJCXUzMiBzc2lkIDogMjsKKwkJdTMyIDogODsKKwkJdTY0IDogNjQ7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKKwkJdTggZGF0YVtQQUdFX1NJWkUgLSAyMF07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnNjaV9hcmVhOworCisJc2NpX2FyZWEgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7CisJaWYgKCFzY2lfYXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisJY2kgPSBremFsbG9jKHNpemVvZigqY2kpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNpKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChjb3B5X2Zyb21fdXNlcihjaSwgdXNlcl9jaSwgc2l6ZW9mKCpjaSkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXNjaV9hcmVhLT5yZXF1ZXN0Lmxlbmd0aCA9IDB4MDAxMDsKKwlzY2lfYXJlYS0+cmVxdWVzdC5jb2RlID0gMHgwMDEyOworCXNjaV9hcmVhLT5tID0gY2ktPmlkLm07CisJc2NpX2FyZWEtPmZtdDEgPSBjaS0+Zm10OworCXNjaV9hcmVhLT5jc3NpZCA9IGNpLT5pZC5jc3NpZDsKKwlzY2lfYXJlYS0+c3NpZCA9IGNpLT5pZC5zc2lkOworCisJY2NvZGUgPSBjaHNjKHNjaV9hcmVhKTsKKwlpZiAoY2NvZGUgIT0gMCkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoc2NpX2FyZWEtPnJlc3BvbnNlLmNvZGUgIT0gMHgwMDAxKSB7CisJCXJldCA9IC1FSU87CisJCUNIU0NfTVNHKDAsICJzY2k6IHJlc3BvbnNlIGNvZGU9JXhcbiIsCisJCQkgc2NpX2FyZWEtPnJlc3BvbnNlLmNvZGUpOworCQlnb3RvIG91dF9mcmVlOworCX0KKwltZW1jcHkoJmNpLT5zY2lkLCAmc2NpX2FyZWEtPnJlc3BvbnNlLCBzY2lfYXJlYS0+cmVzcG9uc2UubGVuZ3RoKTsKKwlpZiAoY29weV90b191c2VyKHVzZXJfY2ksIGNpLCBzaXplb2YoKmNpKSkpCisJCXJldCA9IC1FRkFVTFQ7CisJZWxzZQorCQlyZXQgPSAwOworb3V0X2ZyZWU6CisJa2ZyZWUoY2kpOworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylzY2lfYXJlYSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBjaHNjX2lvY3RsX2NvbmZfY29tcF9saXN0KHZvaWQgX191c2VyICp1c2VyX2NjbCkKK3sKKwlzdHJ1Y3QgY2hzY19jb21wX2xpc3QgKmNjbDsKKwlpbnQgcmV0LCBjY29kZTsKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVxdWVzdDsKKwkJdTMyIGN0eXBlIDogODsKKwkJdTMyIDogNDsKKwkJdTMyIGZtdCA6IDQ7CisJCXUzMiA6IDE2OworCQl1NjQgOiA2NDsKKwkJdTMyIGxpc3RfcGFybVsyXTsKKwkJdTY0IDogNjQ7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKKwkJdTggZGF0YVtQQUdFX1NJWkUgLSAzNl07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnNjY2xfYXJlYTsKKwlzdHJ1Y3QgeworCQl1MzIgbSA6IDE7CisJCXUzMiA6IDMxOworCQl1MzIgY3NzaWQgOiA4OworCQl1MzIgOiAxNjsKKwkJdTMyIGNocGlkIDogODsKKwl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSAqY2hwaWRfcGFybTsKKwlzdHJ1Y3QgeworCQl1MzIgZl9jc3NpZCA6IDg7CisJCXUzMiBsX2Nzc2lkIDogODsKKwkJdTMyIDogMTY7CisJCXUzMiByZXM7CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKmNzc2lkc19wYXJtOworCisJc2NjbF9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NjbF9hcmVhKQorCQlyZXR1cm4gLUVOT01FTTsKKwljY2wgPSBremFsbG9jKHNpemVvZigqY2NsKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjY2wpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaWYgKGNvcHlfZnJvbV91c2VyKGNjbCwgdXNlcl9jY2wsIHNpemVvZigqY2NsKSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJc2NjbF9hcmVhLT5yZXF1ZXN0Lmxlbmd0aCA9IDB4MDAyMDsKKwlzY2NsX2FyZWEtPnJlcXVlc3QuY29kZSA9IDB4MDAzMDsKKwlzY2NsX2FyZWEtPmZtdCA9IGNjbC0+cmVxLmZtdDsKKwlzY2NsX2FyZWEtPmN0eXBlID0gY2NsLT5yZXEuY3R5cGU7CisJc3dpdGNoIChzY2NsX2FyZWEtPmN0eXBlKSB7CisJY2FzZSBDQ0xfQ1VfT05fQ0hQOgorCWNhc2UgQ0NMX0lPUF9DSFA6CisJCWNocGlkX3Bhcm0gPSAodm9pZCAqKSZzY2NsX2FyZWEtPmxpc3RfcGFybTsKKwkJY2hwaWRfcGFybS0+bSA9IGNjbC0+cmVxLmNocGlkLm07CisJCWNocGlkX3Bhcm0tPmNzc2lkID0gY2NsLT5yZXEuY2hwaWQuY2hwLmNzc2lkOworCQljaHBpZF9wYXJtLT5jaHBpZCA9IGNjbC0+cmVxLmNocGlkLmNocC5pZDsKKwkJYnJlYWs7CisJY2FzZSBDQ0xfQ1NTX0lNRzoKKwljYXNlIENDTF9DU1NfSU1HX0NPTkZfQ0hBUjoKKwkJY3NzaWRzX3Bhcm0gPSAodm9pZCAqKSZzY2NsX2FyZWEtPmxpc3RfcGFybTsKKwkJY3NzaWRzX3Bhcm0tPmZfY3NzaWQgPSBjY2wtPnJlcS5jc3NpZHMuZl9jc3NpZDsKKwkJY3NzaWRzX3Bhcm0tPmxfY3NzaWQgPSBjY2wtPnJlcS5jc3NpZHMubF9jc3NpZDsKKwkJYnJlYWs7CisJfQorCWNjb2RlID0gY2hzYyhzY2NsX2FyZWEpOworCWlmIChjY29kZSAhPSAwKSB7CisJCXJldCA9IC1FSU87CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChzY2NsX2FyZWEtPnJlc3BvbnNlLmNvZGUgIT0gMHgwMDAxKSB7CisJCXJldCA9IC1FSU87CisJCUNIU0NfTVNHKDAsICJzY2NsOiByZXNwb25zZSBjb2RlPSV4XG4iLAorCQkJIHNjY2xfYXJlYS0+cmVzcG9uc2UuY29kZSk7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCW1lbWNweSgmY2NsLT5zY2NsLCAmc2NjbF9hcmVhLT5yZXNwb25zZSwgc2NjbF9hcmVhLT5yZXNwb25zZS5sZW5ndGgpOworCWlmIChjb3B5X3RvX3VzZXIodXNlcl9jY2wsIGNjbCwgc2l6ZW9mKCpjY2wpKSkKKwkJcmV0ID0gLUVGQVVMVDsKKwllbHNlCisJCXJldCA9IDA7CitvdXRfZnJlZToKKwlrZnJlZShjY2wpOworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylzY2NsX2FyZWEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19pb2N0bF9jaHBkKHZvaWQgX191c2VyICp1c2VyX2NocGQpCit7CisJc3RydWN0IGNoc2NfY3BkX2luZm8gKmNocGQ7CisJaW50IHJldDsKKworCWNocGQgPSBremFsbG9jKHNpemVvZigqY2hwZCksIEdGUF9LRVJORUwpOworCWlmICghY2hwZCkKKwkJcmV0dXJuIC1FTk9NRU07CisJaWYgKGNvcHlfZnJvbV91c2VyKGNocGQsIHVzZXJfY2hwZCwgc2l6ZW9mKCpjaHBkKSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJcmV0ID0gY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2MoY2hwZC0+Y2hwaWQsIGNocGQtPmZtdCwKKwkJCQkJICAgICAgIGNocGQtPnJmbXQsIGNocGQtPmMsIGNocGQtPm0sCisJCQkJCSAgICAgICAmY2hwZC0+Y2hwZGIpOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2ZyZWU7CisJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2NocGQsIGNocGQsIHNpemVvZigqY2hwZCkpKQorCQlyZXQgPSAtRUZBVUxUOworb3V0X2ZyZWU6CisJa2ZyZWUoY2hwZCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBjaHNjX2lvY3RsX2RjYWwodm9pZCBfX3VzZXIgKnVzZXJfZGNhbCkKK3sKKwlzdHJ1Y3QgY2hzY19kY2FsICpkY2FsOworCWludCByZXQsIGNjb2RlOworCXN0cnVjdCB7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXF1ZXN0OworCQl1MzIgYXR5cGUgOiA4OworCQl1MzIgOiA0OworCQl1MzIgZm10IDogNDsKKwkJdTMyIDogMTY7CisJCXUzMiByZXMwWzJdOworCQl1MzIgbGlzdF9wYXJtWzJdOworCQl1MzIgcmVzMVsyXTsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOworCQl1OCBkYXRhW1BBR0VfU0laRSAtIDM2XTsKKwl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSAqc2RjYWxfYXJlYTsKKworCXNkY2FsX2FyZWEgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7CisJaWYgKCFzZGNhbF9hcmVhKQorCQlyZXR1cm4gLUVOT01FTTsKKwlkY2FsID0ga3phbGxvYyhzaXplb2YoKmRjYWwpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRjYWwpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaWYgKGNvcHlfZnJvbV91c2VyKGRjYWwsIHVzZXJfZGNhbCwgc2l6ZW9mKCpkY2FsKSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJc2RjYWxfYXJlYS0+cmVxdWVzdC5sZW5ndGggPSAweDAwMjA7CisJc2RjYWxfYXJlYS0+cmVxdWVzdC5jb2RlID0gMHgwMDM0OworCXNkY2FsX2FyZWEtPmF0eXBlID0gZGNhbC0+cmVxLmF0eXBlOworCXNkY2FsX2FyZWEtPmZtdCA9IGRjYWwtPnJlcS5mbXQ7CisJbWVtY3B5KCZzZGNhbF9hcmVhLT5saXN0X3Bhcm0sICZkY2FsLT5yZXEubGlzdF9wYXJtLAorCSAgICAgICBzaXplb2Yoc2RjYWxfYXJlYS0+bGlzdF9wYXJtKSk7CisKKwljY29kZSA9IGNoc2Moc2RjYWxfYXJlYSk7CisJaWYgKGNjb2RlICE9IDApIHsKKwkJcmV0ID0gLUVJTzsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaWYgKHNkY2FsX2FyZWEtPnJlc3BvbnNlLmNvZGUgIT0gMHgwMDAxKSB7CisJCXJldCA9IC1FSU87CisJCUNIU0NfTVNHKDAsICJzZGNhbDogcmVzcG9uc2UgY29kZT0leFxuIiwKKwkJCSBzZGNhbF9hcmVhLT5yZXNwb25zZS5jb2RlKTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJbWVtY3B5KCZkY2FsLT5zZGNhbCwgJnNkY2FsX2FyZWEtPnJlc3BvbnNlLAorCSAgICAgICBzZGNhbF9hcmVhLT5yZXNwb25zZS5sZW5ndGgpOworCWlmIChjb3B5X3RvX3VzZXIodXNlcl9kY2FsLCBkY2FsLCBzaXplb2YoKmRjYWwpKSkKKwkJcmV0ID0gLUVGQVVMVDsKKwllbHNlCisJCXJldCA9IDA7CitvdXRfZnJlZToKKwlrZnJlZShkY2FsKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2RjYWxfYXJlYSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGxvbmcgY2hzY19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKKwkJICAgICAgIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCUNIU0NfTVNHKDIsICJjaHNjX2lvY3RsIGNhbGxlZCwgY21kPSV4XG4iLCBjbWQpOworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBDSFNDX1NUQVJUOgorCQlyZXR1cm4gY2hzY19pb2N0bF9zdGFydCgodm9pZCBfX3VzZXIgKilhcmcpOworCWNhc2UgQ0hTQ19JTkZPX0NIQU5ORUxfUEFUSDoKKwkJcmV0dXJuIGNoc2NfaW9jdGxfaW5mb19jaGFubmVsX3BhdGgoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19DVToKKwkJcmV0dXJuIGNoc2NfaW9jdGxfaW5mb19jdSgodm9pZCBfX3VzZXIgKilhcmcpOworCWNhc2UgQ0hTQ19JTkZPX1NDSF9DVToKKwkJcmV0dXJuIGNoc2NfaW9jdGxfaW5mb19zY2hfY3UoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19DSToKKwkJcmV0dXJuIGNoc2NfaW9jdGxfY29uZl9pbmZvKCh2b2lkIF9fdXNlciAqKWFyZyk7CisJY2FzZSBDSFNDX0lORk9fQ0NMOgorCQlyZXR1cm4gY2hzY19pb2N0bF9jb25mX2NvbXBfbGlzdCgodm9pZCBfX3VzZXIgKilhcmcpOworCWNhc2UgQ0hTQ19JTkZPX0NQRDoKKwkJcmV0dXJuIGNoc2NfaW9jdGxfY2hwZCgodm9pZCBfX3VzZXIgKilhcmcpOworCWNhc2UgQ0hTQ19JTkZPX0RDQUw6CisJCXJldHVybiBjaHNjX2lvY3RsX2RjYWwoKHZvaWQgX191c2VyICopYXJnKTsKKwlkZWZhdWx0OiAvKiB1bmtub3duIGlvY3RsIG51bWJlciAqLworCQlyZXR1cm4gLUVOT0lPQ1RMQ01EOworCX0KK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgY2hzY19mb3BzID0geworCS5vd25lciA9IFRISVNfTU9EVUxFLAorCS51bmxvY2tlZF9pb2N0bCA9IGNoc2NfaW9jdGwsCisJLmNvbXBhdF9pb2N0bCA9IGNoc2NfaW9jdGwsCit9OworCitzdGF0aWMgc3RydWN0IG1pc2NkZXZpY2UgY2hzY19taXNjX2RldmljZSA9IHsKKwkubWlub3IgPSBNSVNDX0RZTkFNSUNfTUlOT1IsCisJLm5hbWUgPSAiY2hzYyIsCisJLmZvcHMgPSAmY2hzY19mb3BzLAorfTsKKworc3RhdGljIGludCBfX2luaXQgY2hzY19taXNjX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gbWlzY19yZWdpc3RlcigmY2hzY19taXNjX2RldmljZSk7Cit9CisKK3N0YXRpYyB2b2lkIGNoc2NfbWlzY19jbGVhbnVwKHZvaWQpCit7CisJbWlzY19kZXJlZ2lzdGVyKCZjaHNjX21pc2NfZGV2aWNlKTsKK30KKworc3RhdGljIGludCBfX2luaXQgY2hzY19zY2hfaW5pdCh2b2lkKQoreworCWludCByZXQ7CisKKwlyZXQgPSBjaHNjX2luaXRfZGJmcygpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisJaXNjX3JlZ2lzdGVyKENIU0NfU0NIX0lTQyk7CisJcmV0ID0gY2hzY19pbml0X3NjaF9kcml2ZXIoKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9kYmY7CisJcmV0ID0gY2hzY19taXNjX2luaXQoKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9kcml2ZXI7CisJcmV0dXJuIHJldDsKK291dF9kcml2ZXI6CisJY2hzY19jbGVhbnVwX3NjaF9kcml2ZXIoKTsKK291dF9kYmY6CisJaXNjX3VucmVnaXN0ZXIoQ0hTQ19TQ0hfSVNDKTsKKwljaHNjX3JlbW92ZV9kYmZzKCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGNoc2Nfc2NoX2V4aXQodm9pZCkKK3sKKwljaHNjX21pc2NfY2xlYW51cCgpOworCWNoc2NfY2xlYW51cF9zY2hfZHJpdmVyKCk7CisJaXNjX3VucmVnaXN0ZXIoQ0hTQ19TQ0hfSVNDKTsKKwljaHNjX3JlbW92ZV9kYmZzKCk7Cit9CisKK21vZHVsZV9pbml0KGNoc2Nfc2NoX2luaXQpOworbW9kdWxlX2V4aXQoY2hzY19zY2hfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2Noc2Nfc2NoLmggYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2Nfc2NoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg5ZWJmYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY2hzY19zY2guaApAQCAtMCwwICsxLDEzIEBACisjaWZuZGVmIF9DSFNDX1NDSF9ICisjZGVmaW5lIF9DSFNDX1NDSF9ICisKK3N0cnVjdCBjaHNjX3JlcXVlc3QgeworCXN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247CisJc3RydWN0IGlyYiBpcmI7Cit9OworCitzdHJ1Y3QgY2hzY19wcml2YXRlIHsKKwlzdHJ1Y3QgY2hzY19yZXF1ZXN0ICpyZXF1ZXN0OworfTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2Npby5jIGIvZHJpdmVycy9zMzkwL2Npby9jaW8uYwppbmRleCBiMzJkN2ViLi4zM2JmZjhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2Npby5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY2lvLmMKQEAgLTIsNyArMiw3IEBACiAgKiAgZHJpdmVycy9zMzkwL2Npby9jaW8uYwogICogICBTLzM5MCBjb21tb24gSS9PIHJvdXRpbmVzIC0tIGxvdyBsZXZlbCBpL28gY2FsbHMKICAqCi0gKiAgICBDb3B5cmlnaHQgKEMpIElCTSBDb3JwLiAxOTk5LDIwMDYKKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OSwyMDA4CiAgKiAgICBBdXRob3Iocyk6IEluZ28gQWRsdW5nIChhZGx1bmdAZGUuaWJtLmNvbSkKICAqCQkgQ29ybmVsaWEgSHVjayAoY29ybmVsaWEuaHVja0BkZS5pYm0uY29tKQogICoJCSBBcm5kIEJlcmdtYW5uIChhcm5kYkBkZS5pYm0uY29tKQpAQCAtMjQsNyArMjQsOSBAQAogI2luY2x1ZGUgPGFzbS9pcGwuaD4KICNpbmNsdWRlIDxhc20vY2hwaWQuaD4KICNpbmNsdWRlIDxhc20vYWlycS5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KICNpbmNsdWRlIDxhc20vY3B1Lmg+CisjaW5jbHVkZSA8YXNtL2ZjeC5oPgogI2luY2x1ZGUgImNpby5oIgogI2luY2x1ZGUgImNzcy5oIgogI2luY2x1ZGUgImNoc2MuaCIKQEAgLTcyLDcgKzc0LDYgQEAKIAkJZGVidWdfdW5yZWdpc3RlcihjaW9fZGVidWdfdHJhY2VfaWQpOwogCWlmIChjaW9fZGVidWdfY3J3X2lkKQogCQlkZWJ1Z191bnJlZ2lzdGVyKGNpb19kZWJ1Z19jcndfaWQpOwotCXByaW50ayhLRVJOX1dBUk5JTkciY2lvOiBjb3VsZCBub3QgaW5pdGlhbGl6ZSBkZWJ1Z2dpbmdcbiIpOwogCXJldHVybiAtMTsKIH0KIApAQCAtMTI4LDcgKzEyOSw3IEBACiAJbG9jYWxfYmhfZGlzYWJsZSgpOwogCWlycV9lbnRlciAoKTsKIAlzcGluX2xvY2soc2NoLT5sb2NrKTsKLQltZW1jcHkgKCZzY2gtPnNjaGliLnNjc3csICZpcmItPnNjc3csIHNpemVvZiAoc3RydWN0IHNjc3cpKTsKKwltZW1jcHkoJnNjaC0+c2NoaWIuc2NzdywgJmlyYi0+c2Nzdywgc2l6ZW9mKHVuaW9uIHNjc3cpKTsKIAlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPmlycSkKIAkJc2NoLT5kcml2ZXItPmlycShzY2gpOwogCXNwaW5fdW5sb2NrKHNjaC0+bG9jayk7CkBAIC0xNjcsMzAgKzE2OCwzMCBAQAogewogCWNoYXIgZGJmX3R4dFsxNV07CiAJaW50IGNjb2RlOwotCXN0cnVjdCBvcmIgKm9yYjsKKwl1bmlvbiBvcmIgKm9yYjsKIAogCUNJT19UUkFDRV9FVkVOVCg0LCAic3RJTyIpOwogCUNJT19UUkFDRV9FVkVOVCg0LCBzY2gtPmRldi5idXNfaWQpOwogCiAJb3JiID0gJnRvX2lvX3ByaXZhdGUoc2NoKS0+b3JiOwogCS8qIHNjaCBpcyBhbHdheXMgdW5kZXIgMkcuICovCi0Jb3JiLT5pbnRwYXJtID0gKHUzMikoYWRkcl90KXNjaDsKLQlvcmItPmZtdCA9IDE7CisJb3JiLT5jbWQuaW50cGFybSA9ICh1MzIpKGFkZHJfdClzY2g7CisJb3JiLT5jbWQuZm10ID0gMTsKIAotCW9yYi0+cGZjaCA9IHNjaC0+b3B0aW9ucy5wcmVmZXRjaCA9PSAwOwotCW9yYi0+c3BuZCA9IHNjaC0+b3B0aW9ucy5zdXNwZW5kOwotCW9yYi0+c3NpYyA9IHNjaC0+b3B0aW9ucy5zdXNwZW5kICYmIHNjaC0+b3B0aW9ucy5pbnRlcjsKLQlvcmItPmxwbSA9IChscG0gIT0gMCkgPyBscG0gOiBzY2gtPmxwbTsKKwlvcmItPmNtZC5wZmNoID0gc2NoLT5vcHRpb25zLnByZWZldGNoID09IDA7CisJb3JiLT5jbWQuc3BuZCA9IHNjaC0+b3B0aW9ucy5zdXNwZW5kOworCW9yYi0+Y21kLnNzaWMgPSBzY2gtPm9wdGlvbnMuc3VzcGVuZCAmJiBzY2gtPm9wdGlvbnMuaW50ZXI7CisJb3JiLT5jbWQubHBtID0gKGxwbSAhPSAwKSA/IGxwbSA6IHNjaC0+bHBtOwogI2lmZGVmIENPTkZJR182NEJJVAogCS8qCiAJICogZm9yIDY0IGJpdCB3ZSBhbHdheXMgc3VwcG9ydCA2NCBiaXQgSURBV3Mgd2l0aCA0ayBwYWdlIHNpemUgb25seQogCSAqLwotCW9yYi0+YzY0ID0gMTsKLQlvcmItPmkyayA9IDA7CisJb3JiLT5jbWQuYzY0ID0gMTsKKwlvcmItPmNtZC5pMmsgPSAwOwogI2VuZGlmCi0Jb3JiLT5rZXkgPSBrZXkgPj4gNDsKKwlvcmItPmNtZC5rZXkgPSBrZXkgPj4gNDsKIAkvKiBpc3N1ZSAiU3RhcnQgU3ViY2hhbm5lbCIgKi8KLQlvcmItPmNwYSA9IChfX3UzMikgX19wYShjcGEpOworCW9yYi0+Y21kLmNwYSA9IChfX3UzMikgX19wYShjcGEpOwogCWNjb2RlID0gc3NjaChzY2gtPnNjaGlkLCBvcmIpOwogCiAJLyogcHJvY2VzcyBjb25kaXRpb24gY29kZSAqLwpAQCAtMjAyLDcgKzIwMyw3IEBACiAJCS8qCiAJCSAqIGluaXRpYWxpemUgZGV2aWNlIHN0YXR1cyBpbmZvcm1hdGlvbgogCQkgKi8KLQkJc2NoLT5zY2hpYi5zY3N3LmFjdGwgfD0gU0NTV19BQ1RMX1NUQVJUX1BFTkQ7CisJCXNjaC0+c2NoaWIuc2Nzdy5jbWQuYWN0bCB8PSBTQ1NXX0FDVExfU1RBUlRfUEVORDsKIAkJcmV0dXJuIDA7CiAJY2FzZSAxOgkJLyogc3RhdHVzIHBlbmRpbmcgKi8KIAljYXNlIDI6CQkvKiBidXN5ICovCkBAIC0yMzcsNyArMjM4LDcgQEAKIAogCXN3aXRjaCAoY2NvZGUpIHsKIAljYXNlIDA6Ci0JCXNjaC0+c2NoaWIuc2Nzdy5hY3RsIHw9IFNDU1dfQUNUTF9SRVNVTUVfUEVORDsKKwkJc2NoLT5zY2hpYi5zY3N3LmNtZC5hY3RsIHw9IFNDU1dfQUNUTF9SRVNVTUVfUEVORDsKIAkJcmV0dXJuIDA7CiAJY2FzZSAxOgogCQlyZXR1cm4gLUVCVVNZOwpAQCAtMjc3LDcgKzI3OCw3IEBACiAKIAlzd2l0Y2ggKGNjb2RlKSB7CiAJY2FzZSAwOgotCQlzY2gtPnNjaGliLnNjc3cuYWN0bCB8PSBTQ1NXX0FDVExfSEFMVF9QRU5EOworCQlzY2gtPnNjaGliLnNjc3cuY21kLmFjdGwgfD0gU0NTV19BQ1RMX0hBTFRfUEVORDsKIAkJcmV0dXJuIDA7CiAJY2FzZSAxOgkJLyogc3RhdHVzIHBlbmRpbmcgKi8KIAljYXNlIDI6CQkvKiBidXN5ICovCkBAIC0zMTIsNyArMzEzLDcgQEAKIAogCXN3aXRjaCAoY2NvZGUpIHsKIAljYXNlIDA6Ci0JCXNjaC0+c2NoaWIuc2Nzdy5hY3RsIHw9IFNDU1dfQUNUTF9DTEVBUl9QRU5EOworCQlzY2gtPnNjaGliLnNjc3cuY21kLmFjdGwgfD0gU0NTV19BQ1RMX0NMRUFSX1BFTkQ7CiAJCXJldHVybiAwOwogCWRlZmF1bHQ6CQkvKiBkZXZpY2Ugbm90IG9wZXJhdGlvbmFsICovCiAJCXJldHVybiAtRU5PREVWOwpAQCAtMzg3LDggKzM4OCwxMCBAQAogCXJldHVybiByZXQ7CiB9CiAKLS8qCi0gKiBFbmFibGUgc3ViY2hhbm5lbC4KKy8qKgorICogY2lvX2VuYWJsZV9zdWJjaGFubmVsIC0gZW5hYmxlIGEgc3ViY2hhbm5lbC4KKyAqIEBzY2g6IHN1YmNoYW5uZWwgdG8gYmUgZW5hYmxlZAorICogQGludHBhcm06IGludGVycnVwdGlvbiBwYXJhbWV0ZXIgdG8gc2V0CiAgKi8KIGludCBjaW9fZW5hYmxlX3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgdTMyIGludHBhcm0pCiB7CkBAIC00MzQsMTIgKzQzNywxMyBAQAogCUNJT19UUkFDRV9FVkVOVCAoMiwgZGJmX3R4dCk7CiAJcmV0dXJuIHJldDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGNpb19lbmFibGVfc3ViY2hhbm5lbCk7CiAKLS8qCi0gKiBEaXNhYmxlIHN1YmNoYW5uZWwuCisvKioKKyAqIGNpb19kaXNhYmxlX3N1YmNoYW5uZWwgLSBkaXNhYmxlIGEgc3ViY2hhbm5lbC4KKyAqIEBzY2g6IHN1YmNoYW5uZWwgdG8gZGlzYWJsZQogICovCi1pbnQKLWNpb19kaXNhYmxlX3N1YmNoYW5uZWwgKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCitpbnQgY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQogewogCWNoYXIgZGJmX3R4dFsxNV07CiAJaW50IGNjb2RlOwpAQCAtNDU1LDcgKzQ1OSw3IEBACiAJaWYgKGNjb2RlID09IDMpCQkvKiBOb3Qgb3BlcmF0aW9uYWwuICovCiAJCXJldHVybiAtRU5PREVWOwogCi0JaWYgKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICE9IDApCisJaWYgKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAhPSAwKQogCQkvKgogCQkgKiB0aGUgZGlzYWJsZSBmdW5jdGlvbiBtdXN0IG5vdCBiZSBjYWxsZWQgd2hpbGUgdGhlcmUgYXJlCiAJCSAqICByZXF1ZXN0cyBwZW5kaW5nIGZvciBjb21wbGV0aW9uICEKQEAgLTQ4NCw2ICs0ODgsNyBAQAogCUNJT19UUkFDRV9FVkVOVCAoMiwgZGJmX3R4dCk7CiAJcmV0dXJuIHJldDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGNpb19kaXNhYmxlX3N1YmNoYW5uZWwpOwogCiBpbnQgY2lvX2NyZWF0ZV9zY2hfbG9jayhzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQogewpAQCAtNDk0LDI3ICs0OTksNjEgQEAKIAlyZXR1cm4gMDsKIH0KIAotLyoKLSAqIGNpb192YWxpZGF0ZV9zdWJjaGFubmVsKCkKK3N0YXRpYyBpbnQgY2lvX2NoZWNrX2Rldm5vX2JsYWNrbGlzdGVkKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit7CisJaWYgKGlzX2JsYWNrbGlzdGVkKHNjaC0+c2NoaWQuc3NpZCwgc2NoLT5zY2hpYi5wbWN3LmRldikpIHsKKwkJLyoKKwkJICogVGhpcyBkZXZpY2UgbXVzdCBub3QgYmUga25vd24gdG8gTGludXguIFNvIHdlIHNpbXBseQorCQkgKiBzYXkgdGhhdCB0aGVyZSBpcyBubyBkZXZpY2UgYW5kIHJldHVybiBFTk9ERVYuCisJCSAqLworCQlDSU9fTVNHX0VWRU5UKDYsICJCbGFja2xpc3RlZCBkZXZpY2UgZGV0ZWN0ZWQgIgorCQkJICAgICAgImF0IGRldm5vICUwNFgsIHN1YmNoYW5uZWwgc2V0ICV4XG4iLAorCQkJICAgICAgc2NoLT5zY2hpYi5wbWN3LmRldiwgc2NoLT5zY2hpZC5zc2lkKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNpb192YWxpZGF0ZV9pb19zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit7CisJLyogSW5pdGlhbGl6YXRpb24gZm9yIGlvIHN1YmNoYW5uZWxzLiAqLworCWlmICghY3NzX3NjaF9pc192YWxpZCgmc2NoLT5zY2hpYikpCisJCXJldHVybiAtRU5PREVWOworCisJLyogRGV2bm8gaXMgdmFsaWQuICovCisJcmV0dXJuIGNpb19jaGVja19kZXZub19ibGFja2xpc3RlZChzY2gpOworfQorCitzdGF0aWMgaW50IGNpb192YWxpZGF0ZV9tc2dfc3ViY2hhbm5lbChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCS8qIEluaXRpYWxpemF0aW9uIGZvciBtZXNzYWdlIHN1YmNoYW5uZWxzLiAqLworCWlmICghY3NzX3NjaF9pc192YWxpZCgmc2NoLT5zY2hpYikpCisJCXJldHVybiAtRU5PREVWOworCisJLyogRGV2bm8gaXMgdmFsaWQuICovCisJcmV0dXJuIGNpb19jaGVja19kZXZub19ibGFja2xpc3RlZChzY2gpOworfQorCisvKioKKyAqIGNpb192YWxpZGF0ZV9zdWJjaGFubmVsIC0gYmFzaWMgdmFsaWRhdGlvbiBvZiBzdWJjaGFubmVsCisgKiBAc2NoOiBzdWJjaGFubmVsIHN0cnVjdHVyZSB0byBiZSBmaWxsZWQgb3V0CisgKiBAc2NoaWQ6IHN1YmNoYW5uZWwgaWQKICAqCiAgKiBGaW5kIG91dCBzdWJjaGFubmVsIHR5cGUgYW5kIGluaXRpYWxpemUgc3RydWN0IHN1YmNoYW5uZWwuCiAgKiBSZXR1cm4gY29kZXM6Ci0gKiAgIFNVQkNIQU5ORUxfVFlQRV9JTyBmb3IgYSBub3JtYWwgaW8gc3ViY2hhbm5lbAotICogICBTVUJDSEFOTkVMX1RZUEVfQ0hTQyBmb3IgYSBjaHNjIHN1YmNoYW5uZWwKLSAqICAgU1VCQ0hBTk5FTF9UWVBFX01FU1NBR0UgZm9yIGEgbWVzc2FnaW5nIHN1YmNoYW5uZWwKLSAqICAgU1VCQ0hBTk5FTF9UWVBFX0FETSBmb3IgYSBhZG0oPykgc3ViY2hhbm5lbAorICogICAwIG9uIHN1Y2Nlc3MKICAqICAgLUVOWElPIGZvciBub24tZGVmaW5lZCBzdWJjaGFubmVscwotICogICAtRU5PREVWIGZvciBzdWJjaGFubmVscyB3aXRoIGludmFsaWQgZGV2aWNlIG51bWJlciBvciBibGFja2xpc3RlZCBkZXZpY2VzCisgKiAgIC1FTk9ERVYgZm9yIGludmFsaWQgc3ViY2hhbm5lbHMgb3IgYmxhY2tsaXN0ZWQgZGV2aWNlcworICogICAtRUlPIGZvciBzdWJjaGFubmVscyBpbiBhbiBpbnZhbGlkIHN1YmNoYW5uZWwgc2V0CiAgKi8KLWludAotY2lvX3ZhbGlkYXRlX3N1YmNoYW5uZWwgKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkKQoraW50IGNpb192YWxpZGF0ZV9zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkKQogewogCWNoYXIgZGJmX3R4dFsxNV07CiAJaW50IGNjb2RlOwogCWludCBlcnI7CiAKLQlzcHJpbnRmIChkYmZfdHh0LCAidmFsc2NoJXgiLCBzY2hpZC5zY2hfbm8pOwotCUNJT19UUkFDRV9FVkVOVCAoNCwgZGJmX3R4dCk7CisJc3ByaW50ZihkYmZfdHh0LCAidmFsc2NoJXgiLCBzY2hpZC5zY2hfbm8pOworCUNJT19UUkFDRV9FVkVOVCg0LCBkYmZfdHh0KTsKIAogCS8qIE51a2UgYWxsIGZpZWxkcy4gKi8KIAltZW1zZXQoc2NoLCAwLCBzaXplb2Yoc3RydWN0IHN1YmNoYW5uZWwpKTsKQEAgLTU0Niw2NyArNTg1LDIxIEBACiAJLyogQ29weSBzdWJjaGFubmVsIHR5cGUgZnJvbSBwYXRoIG1hbmFnZW1lbnQgY29udHJvbCB3b3JkLiAqLwogCXNjaC0+c3QgPSBzY2gtPnNjaGliLnBtY3cuc3Q7CiAKLQkvKgotCSAqIC4uLiBqdXN0IGJlaW5nIGN1cmlvdXMgd2UgY2hlY2sgZm9yIG5vbiBJL08gc3ViY2hhbm5lbHMKLQkgKi8KLQlpZiAoc2NoLT5zdCAhPSAwKSB7Ci0JCUNJT19NU0dfRVZFTlQoNCwgIlN1YmNoYW5uZWwgMC4leC4lMDR4IHJlcG9ydHMgIgotCQkJICAgICAgIm5vbi1JL08gc3ViY2hhbm5lbCB0eXBlICUwNFhcbiIsCi0JCQkgICAgICBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCBzY2gtPnN0KTsKLQkJLyogV2Ugc3RvcCBoZXJlIGZvciBub24taW8gc3ViY2hhbm5lbHMuICovCi0JCWVyciA9IHNjaC0+c3Q7CisJc3dpdGNoIChzY2gtPnN0KSB7CisJY2FzZSBTVUJDSEFOTkVMX1RZUEVfSU86CisJCWVyciA9IGNpb192YWxpZGF0ZV9pb19zdWJjaGFubmVsKHNjaCk7CisJCWJyZWFrOworCWNhc2UgU1VCQ0hBTk5FTF9UWVBFX01TRzoKKwkJZXJyID0gY2lvX3ZhbGlkYXRlX21zZ19zdWJjaGFubmVsKHNjaCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWVyciA9IDA7CisJfQorCWlmIChlcnIpCiAJCWdvdG8gb3V0OwotCX0KIAotCS8qIEluaXRpYWxpemF0aW9uIGZvciBpbyBzdWJjaGFubmVscy4gKi8KLQlpZiAoIWNzc19zY2hfaXNfdmFsaWQoJnNjaC0+c2NoaWIpKSB7Ci0JCWVyciA9IC1FTk9ERVY7Ci0JCWdvdG8gb3V0OwotCX0KLQotCS8qIERldm5vIGlzIHZhbGlkLiAqLwotCWlmIChpc19ibGFja2xpc3RlZCAoc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGliLnBtY3cuZGV2KSkgewotCQkvKgotCQkgKiBUaGlzIGRldmljZSBtdXN0IG5vdCBiZSBrbm93biB0byBMaW51eC4gU28gd2Ugc2ltcGx5Ci0JCSAqIHNheSB0aGF0IHRoZXJlIGlzIG5vIGRldmljZSBhbmQgcmV0dXJuIEVOT0RFVi4KLQkJICovCi0JCUNJT19NU0dfRVZFTlQoNiwgIkJsYWNrbGlzdGVkIGRldmljZSBkZXRlY3RlZCAiCi0JCQkgICAgICAiYXQgZGV2bm8gJTA0WCwgc3ViY2hhbm5lbCBzZXQgJXhcbiIsCi0JCQkgICAgICBzY2gtPnNjaGliLnBtY3cuZGV2LCBzY2gtPnNjaGlkLnNzaWQpOwotCQllcnIgPSAtRU5PREVWOwotCQlnb3RvIG91dDsKLQl9Ci0JaWYgKGNpb19pc19jb25zb2xlKHNjaC0+c2NoaWQpKSB7Ci0JCXNjaC0+b3BtID0gMHhmZjsKLQkJc2NoLT5pc2MgPSAxOwotCX0gZWxzZSB7Ci0JCXNjaC0+b3BtID0gY2hwX2dldF9zY2hfb3BtKHNjaCk7Ci0JCXNjaC0+aXNjID0gMzsKLQl9Ci0Jc2NoLT5scG0gPSBzY2gtPnNjaGliLnBtY3cucGFtICYgc2NoLT5vcG07Ci0KLQlDSU9fTVNHX0VWRU5UKDYsICJEZXRlY3RlZCBkZXZpY2UgJTA0eCBvbiBzdWJjaGFubmVsIDAuJXguJTA0WCAiCi0JCSAgICAgICItIFBJTSA9ICUwMlgsIFBBTSA9ICUwMlgsIFBPTSA9ICUwMlhcbiIsCi0JCSAgICAgIHNjaC0+c2NoaWIucG1jdy5kZXYsIHNjaC0+c2NoaWQuc3NpZCwKLQkJICAgICAgc2NoLT5zY2hpZC5zY2hfbm8sIHNjaC0+c2NoaWIucG1jdy5waW0sCi0JCSAgICAgIHNjaC0+c2NoaWIucG1jdy5wYW0sIHNjaC0+c2NoaWIucG1jdy5wb20pOwotCi0JLyoKLQkgKiBXZSBub3cgaGF2ZSB0byBpbml0aWFsbHkgLi4uCi0JICogIC4uLiBlbmFibGUgImNvbmN1cnJlbnQgc2Vuc2UiCi0JICogIC4uLiBlbmFibGUgIm11bHRpcGF0aCBtb2RlIiBpZiBtb3JlIHRoYW4gb25lCi0JICoJICBDSFBJRCBpcyBhdmFpbGFibGUuIFRoaXMgaXMgZG9uZSByZWdhcmRsZXNzCi0JICoJICB3aGV0aGVyIG11bHRpcGxlIHBhdGhzIGFyZSBhdmFpbGFibGUgZm9yIHVzLgotCSAqLwotCXNjaC0+c2NoaWIucG1jdy5jc2Vuc2UgPSAxOwkvKiBjb25jdXJyZW50IHNlbnNlICovCi0Jc2NoLT5zY2hpYi5wbWN3LmVuYSA9IDA7Ci0JaWYgKChzY2gtPmxwbSAmIChzY2gtPmxwbSAtIDEpKSAhPSAwKQotCQlzY2gtPnNjaGliLnBtY3cubXAgPSAxOwkvKiBtdWx0aXBhdGggbW9kZSAqLwotCS8qIGNsZWFuIHVwIHBvc3NpYmxlIHJlc2lkdWFsIGNtZiBzdHVmZiAqLwotCXNjaC0+c2NoaWIucG1jdy5tbWUgPSAwOwotCXNjaC0+c2NoaWIucG1jdy5tYmZjID0gMDsKLQlzY2gtPnNjaGliLnBtY3cubWJpID0gMDsKLQlzY2gtPnNjaGliLm1iYSA9IDA7CisJQ0lPX01TR19FVkVOVCg0LCAiU3ViY2hhbm5lbCAwLiV4LiUwNHggcmVwb3J0cyBzdWJjaGFubmVsIHR5cGUgJTA0WFxuIiwKKwkJICAgICAgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubywgc2NoLT5zdCk7CiAJcmV0dXJuIDA7CiBvdXQ6CiAJaWYgKCFjaW9faXNfY29uc29sZShzY2hpZCkpCkBAIC02NDcsNyArNjQwLDcgQEAKIAkJICovCiAJCWlmICh0cGlfaW5mby0+YWRhcHRlcl9JTyA9PSAxICYmCiAJCSAgICB0cGlfaW5mby0+aW50X3R5cGUgPT0gSU9fSU5URVJSVVBUX1RZUEUpIHsKLQkJCWRvX2FkYXB0ZXJfSU8oKTsKKwkJCWRvX2FkYXB0ZXJfSU8odHBpX2luZm8tPmlzYyk7CiAJCQljb250aW51ZTsKIAkJfQogCQlzY2ggPSAoc3RydWN0IHN1YmNoYW5uZWwgKikodW5zaWduZWQgbG9uZyl0cGlfaW5mby0+aW50cGFybTsKQEAgLTcwNiw5ICs2OTksOSBAQAogCWlmICghY29uc29sZV9zdWJjaGFubmVsX2luX3VzZSkKIAkJcmV0dXJuOwogCi0JLyogZGlzYWJsZSBhbGwgYnV0IGlzYyAxIChjb25zb2xlIGRldmljZSkgKi8KKwkvKiBkaXNhYmxlIGFsbCBidXQgdGhlIGNvbnNvbGUgaXNjICovCiAJX19jdGxfc3RvcmUgKHNhdmVfY3I2LCA2LCA2KTsKLQljcjYgPSAweDQwMDAwMDAwOworCWNyNiA9IDFVTCA8PCAoMzEgLSBDT05TT0xFX0lTQyk7CiAJX19jdGxfbG9hZCAoY3I2LCA2LCA2KTsKIAogCWRvIHsKQEAgLTcxNiw3ICs3MDksNyBAQAogCQlpZiAoIWNpb190cGkoKSkKIAkJCWNwdV9yZWxheCgpOwogCQlzcGluX2xvY2soY29uc29sZV9zdWJjaGFubmVsLmxvY2spOwotCX0gd2hpbGUgKGNvbnNvbGVfc3ViY2hhbm5lbC5zY2hpYi5zY3N3LmFjdGwgIT0gMCk7CisJfSB3aGlsZSAoY29uc29sZV9zdWJjaGFubmVsLnNjaGliLnNjc3cuY21kLmFjdGwgIT0gMCk7CiAJLyoKIAkgKiByZXN0b3JlIHByZXZpb3VzIGlzYyB2YWx1ZQogCSAqLwpAQCAtNzYxLDcgKzc1NCw2IEBACiAJCS8qIHVubGlrZSBpbiAyLjQsIHdlIGNhbm5vdCBhdXRvcHJvYmUgaGVyZSwgc2luY2UKIAkJICogdGhlIGNoYW5uZWwgc3Vic3lzdGVtIGlzIG5vdCBmdWxseSBpbml0aWFsaXplZC4KIAkJICogV2l0aCBzb21lIGx1Y2ssIHRoZSBIV0MgY29uc29sZSBjYW4gdGFrZSBvdmVyICovCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogTm8gY2N3IGNvbnNvbGUgZm91bmQhXG4iKTsKIAkJcmV0dXJuIC0xOwogCX0KIAlyZXR1cm4gY29uc29sZV9pcnE7CkBAIC03NzgsNiArNzcwLDcgQEAKIAlzY2hfbm8gPSBjaW9fZ2V0X2NvbnNvbGVfc2NoX25vKCk7CiAJaWYgKHNjaF9ubyA9PSAtMSkgewogCQljb25zb2xlX3N1YmNoYW5uZWxfaW5fdXNlID0gMDsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBObyBjY3cgY29uc29sZSBmb3VuZCFcbiIpOwogCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAl9CiAJbWVtc2V0KCZjb25zb2xlX3N1YmNoYW5uZWwsIDAsIHNpemVvZihzdHJ1Y3Qgc3ViY2hhbm5lbCkpOwpAQCAtNzkwLDE1ICs3ODMsMTUgQEAKIAl9CiAKIAkvKgotCSAqIGVuYWJsZSBjb25zb2xlIEkvTy1pbnRlcnJ1cHQgc3ViY2xhc3MgMQorCSAqIGVuYWJsZSBjb25zb2xlIEkvTy1pbnRlcnJ1cHQgc3ViY2xhc3MKIAkgKi8KLQljdGxfc2V0X2JpdCg2LCAzMCk7Ci0JY29uc29sZV9zdWJjaGFubmVsLmlzYyA9IDE7Ci0JY29uc29sZV9zdWJjaGFubmVsLnNjaGliLnBtY3cuaXNjID0gMTsKKwlpc2NfcmVnaXN0ZXIoQ09OU09MRV9JU0MpOworCWNvbnNvbGVfc3ViY2hhbm5lbC5zY2hpYi5wbWN3LmlzYyA9IENPTlNPTEVfSVNDOwogCWNvbnNvbGVfc3ViY2hhbm5lbC5zY2hpYi5wbWN3LmludHBhcm0gPQogCQkodTMyKShhZGRyX3QpJmNvbnNvbGVfc3ViY2hhbm5lbDsKIAlyZXQgPSBjaW9fbW9kaWZ5KCZjb25zb2xlX3N1YmNoYW5uZWwpOwogCWlmIChyZXQpIHsKKwkJaXNjX3VucmVnaXN0ZXIoQ09OU09MRV9JU0MpOwogCQljb25zb2xlX3N1YmNoYW5uZWxfaW5fdXNlID0gMDsKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CkBAIC04MTAsNyArODAzLDcgQEAKIHsKIAljb25zb2xlX3N1YmNoYW5uZWwuc2NoaWIucG1jdy5pbnRwYXJtID0gMDsKIAljaW9fbW9kaWZ5KCZjb25zb2xlX3N1YmNoYW5uZWwpOwotCWN0bF9jbGVhcl9iaXQoNiwgMjQpOworCWlzY191bnJlZ2lzdGVyKENPTlNPTEVfSVNDKTsKIAljb25zb2xlX3N1YmNoYW5uZWxfaW5fdXNlID0gMDsKIH0KIApAQCAtODY0LDcgKzg1Nyw3IEBACiB9CiAKIHN0YXRpYyBpbnQKLV9fY2xlYXJfc3ViY2hhbm5lbF9lYXN5KHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkKQorX19jbGVhcl9pb19zdWJjaGFubmVsX2Vhc3koc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQpCiB7CiAJaW50IHJldHJ5OwogCkBAIC04ODMsNiArODc2LDEyIEBACiAJcmV0dXJuIC1FQlVTWTsKIH0KIAorc3RhdGljIHZvaWQgX19jbGVhcl9jaHNjX3N1YmNoYW5uZWxfZWFzeSh2b2lkKQoreworCS8qIEl0IHNlZW1zIHdlIGNhbiBvbmx5IHdhaXQgZm9yIGEgYml0IGhlcmUgOi8gKi8KKwl1ZGVsYXlfcmVzZXQoMTAwKTsKK30KKwogc3RhdGljIGludCBwZ21fY2hlY2tfb2NjdXJlZDsKIAogc3RhdGljIHZvaWQgY2lvX3Jlc2V0X3BnbV9jaGVja19oYW5kbGVyKHZvaWQpCkBAIC05MjEsMTEgKzkyMCwyMiBAQAogCWNhc2UgLUVOT0RFVjoKIAkJYnJlYWs7CiAJZGVmYXVsdDogLyogLUVCVVNZICovCi0JCWlmIChfX2NsZWFyX3N1YmNoYW5uZWxfZWFzeShzY2hpZCkpCi0JCQlicmVhazsgLyogZ2l2ZSB1cC4uLiAqLworCQlzd2l0Y2ggKHNjaGliLnBtY3cuc3QpIHsKKwkJY2FzZSBTVUJDSEFOTkVMX1RZUEVfSU86CisJCQlpZiAoX19jbGVhcl9pb19zdWJjaGFubmVsX2Vhc3koc2NoaWQpKQorCQkJCWdvdG8gb3V0OyAvKiBnaXZlIHVwLi4uICovCisJCQlicmVhazsKKwkJY2FzZSBTVUJDSEFOTkVMX1RZUEVfQ0hTQzoKKwkJCV9fY2xlYXJfY2hzY19zdWJjaGFubmVsX2Vhc3koKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJLyogTm8gZGVmYXVsdCBjbGVhciBzdHJhdGVneSAqLworCQkJYnJlYWs7CisJCX0KIAkJc3RzY2goc2NoaWQsICZzY2hpYik7CiAJCV9fZGlzYWJsZV9zdWJjaGFubmVsX2Vhc3koc2NoaWQsICZzY2hpYik7CiAJfQorb3V0OgogCXJldHVybiAwOwogfQogCkBAIC0xMDY4LDMgKzEwNzgsNjEgQEAKIAlpcGxpbmZvLT5pc19xZGlvID0gc2NoaWIucG1jdy5xZjsKIAlyZXR1cm4gMDsKIH0KKworLyoqCisgKiBjaW9fdG1fc3RhcnRfa2V5IC0gcGVyZm9ybSBzdGFydCBmdW5jdGlvbgorICogQHNjaDogc3ViY2hhbm5lbCBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBzdGFydCBmdW5jdGlvbgorICogQHRjdzogdHJhbnNwb3J0LWNvbW1hbmQgd29yZCB0byBiZSBzdGFydGVkCisgKiBAbHBtOiBtYXNrIG9mIHBhdGhzIHRvIHVzZQorICogQGtleTogc3RvcmFnZSBrZXkgdG8gdXNlIGZvciBzdG9yYWdlIGFjY2VzcworICoKKyAqIFN0YXJ0IHRoZSB0Y3cgb24gdGhlIGdpdmVuIHN1YmNoYW5uZWwuIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvCisgKiBvdGhlcndpc2UuCisgKi8KK2ludCBjaW9fdG1fc3RhcnRfa2V5KHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHN0cnVjdCB0Y3cgKnRjdywgdTggbHBtLCB1OCBrZXkpCit7CisJaW50IGNjOworCXVuaW9uIG9yYiAqb3JiID0gJnRvX2lvX3ByaXZhdGUoc2NoKS0+b3JiOworCisJbWVtc2V0KG9yYiwgMCwgc2l6ZW9mKHVuaW9uIG9yYikpOworCW9yYi0+dG0uaW50cGFybSA9ICh1MzIpIChhZGRyX3QpIHNjaDsKKwlvcmItPnRtLmtleSA9IGtleSA+PiA0OworCW9yYi0+dG0uYiA9IDE7CisJb3JiLT50bS5scG0gPSBscG0gPyBscG0gOiBzY2gtPmxwbTsKKwlvcmItPnRtLnRjdyA9ICh1MzIpIChhZGRyX3QpIHRjdzsKKwljYyA9IHNzY2goc2NoLT5zY2hpZCwgb3JiKTsKKwlzd2l0Y2ggKGNjKSB7CisJY2FzZSAwOgorCQlyZXR1cm4gMDsKKwljYXNlIDE6CisJY2FzZSAyOgorCQlyZXR1cm4gLUVCVVNZOworCWRlZmF1bHQ6CisJCXJldHVybiBjaW9fc3RhcnRfaGFuZGxlX25vdG9wZXIoc2NoLCBscG0pOworCX0KK30KKworLyoqCisgKiBjaW9fdG1faW50cmcgLSBwZXJmb3JtIGludGVycm9nYXRlIGZ1bmN0aW9uCisgKiBAc2NoIC0gc3ViY2hhbm5lbCBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBpbnRlcnJvZ2F0ZSBmdW5jdGlvbgorICoKKyAqIElmIHRoZSBzcGVjaWZpZWQgc3ViY2hhbm5lbCBpcyBydW5uaW5nIGluIHRyYW5zcG9ydC1tb2RlLCBwZXJmb3JtIHRoZQorICogaW50ZXJyb2dhdGUgZnVuY3Rpb24uIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIG90aGVyd2llLgorICovCitpbnQgY2lvX3RtX2ludHJnKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit7CisJaW50IGNjOworCisJaWYgKCF0b19pb19wcml2YXRlKHNjaCktPm9yYi50bS5iKQorCQlyZXR1cm4gLUVJTlZBTDsKKwljYyA9IHhzY2goc2NoLT5zY2hpZCk7CisJc3dpdGNoIChjYykgeworCWNhc2UgMDoKKwljYXNlIDI6CisJCXJldHVybiAwOworCWNhc2UgMToKKwkJcmV0dXJuIC1FQlVTWTsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVOT0RFVjsKKwl9Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2Npby5oIGIvZHJpdmVycy9zMzkwL2Npby9jaW8uaAppbmRleCA2ZTkzM2FlLi4zYjIzNmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2Npby5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY2lvLmgKQEAgLTMsOSArMywxMiBAQAogCiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2RfZGV2aWNldGFibGUuaD4KICNpbmNsdWRlIDxhc20vY2hwaWQuaD4KKyNpbmNsdWRlIDxhc20vY2lvLmg+CisjaW5jbHVkZSA8YXNtL2ZjeC5oPgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgogI2luY2x1ZGUgImNoc2MuaCIKLSNpbmNsdWRlICJzY2hpZC5oIgogCiAvKgogICogcGF0aCBtYW5hZ2VtZW50IGNvbnRyb2wgd29yZApAQCAtMTMsNyArMTYsNyBAQAogc3RydWN0IHBtY3cgewogCXUzMiBpbnRwYXJtOwkJLyogaW50ZXJydXB0aW9uIHBhcmFtZXRlciAqLwogCXUzMiBxZgkgOiAxOwkJLyogcWRpbyBmYWNpbGl0eSAqLwotCXUzMiByZXMwIDogMTsJCS8qIHJlc2VydmVkIHplcm9zICovCisJdTMyIHcJIDogMTsKIAl1MzIgaXNjICA6IDM7CQkvKiBpbnRlcnJ1cHRpb24gc3VibGFzcyAqLwogCXUzMiByZXM1IDogMzsJCS8qIHJlc2VydmVkIHplcm9zICovCiAJdTMyIGVuYSAgOiAxOwkJLyogZW5hYmxlZCAqLwpAQCAtNDcsNyArNTAsNyBAQAogICovCiBzdHJ1Y3Qgc2NoaWIgewogCXN0cnVjdCBwbWN3IHBtY3c7CSAvKiBwYXRoIG1hbmFnZW1lbnQgY29udHJvbCB3b3JkICovCi0Jc3RydWN0IHNjc3cgc2NzdzsJIC8qIHN1YmNoYW5uZWwgc3RhdHVzIHdvcmQgKi8KKwl1bmlvbiBzY3N3IHNjc3c7CSAvKiBzdWJjaGFubmVsIHN0YXR1cyB3b3JkICovCiAJX191NjQgbWJhOyAgICAgICAgICAgICAgIC8qIG1lYXN1cmVtZW50IGJsb2NrIGFkZHJlc3MgKi8KIAlfX3U4IG1kYVs0XTsJCSAvKiBtb2RlbCBkZXBlbmRlbnQgYXJlYSAqLwogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkLGFsaWduZWQoNCkpKTsKQEAgLTk5LDggKzEwMiwxMSBAQAogZXh0ZXJuIGludCBjaW9fZ2V0X29wdGlvbnMgKHN0cnVjdCBzdWJjaGFubmVsICopOwogZXh0ZXJuIGludCBjaW9fbW9kaWZ5IChzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKIAoraW50IGNpb190bV9zdGFydF9rZXkoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgc3RydWN0IHRjdyAqdGN3LCB1OCBscG0sIHU4IGtleSk7CitpbnQgY2lvX3RtX2ludHJnKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpOworCiBpbnQgY2lvX2NyZWF0ZV9zY2hfbG9jayhzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLXZvaWQgZG9fYWRhcHRlcl9JTyh2b2lkKTsKK3ZvaWQgZG9fYWRhcHRlcl9JTyh1OCBpc2MpOwogdm9pZCBkb19JUlEoc3RydWN0IHB0X3JlZ3MgKik7CiAKIC8qIFVzZSB3aXRoIGNhcmUuICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2NtZi5jIGIvZHJpdmVycy9zMzkwL2Npby9jbWYuYwppbmRleCAyODA4YjY4Li5hOTBiMjhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2NtZi5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY21mLmMKQEAgLTM0MSwxMiArMzQxLDEyIEBACiAJaWYgKHN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlpZiAoc2NoLT5zY2hpYi5zY3N3LmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgeworCWlmIChzY3N3X2ZjdGwoJnNjaC0+c2NoaWIuc2NzdykgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgewogCQkvKiBEb24ndCBjb3B5IGlmIGEgc3RhcnQgZnVuY3Rpb24gaXMgaW4gcHJvZ3Jlc3MuICovCi0JCWlmICgoIShzY2gtPnNjaGliLnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKSAmJgotCQkgICAgKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICYKKwkJaWYgKCghKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKSAmJgorCQkgICAgKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmCiAJCSAgICAgKFNDU1dfQUNUTF9ERVZBQ1QgfCBTQ1NXX0FDVExfU0NIQUNUKSkgJiYKLQkJICAgICghKHNjaC0+c2NoaWIuc2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykpKQorCQkgICAgKCEoc2Nzd19zdGN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykpKQogCQkJcmV0dXJuIC1FQlVTWTsKIAl9CiAJY21iX2RhdGEgPSBjZGV2LT5wcml2YXRlLT5jbWI7CkBAIC02MTIsOSArNjEyLDYgQEAKIAkJCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpbWVtLCBnZXRfb3JkZXIoc2l6ZSkpOwogCQl9IGVsc2UgaWYgKCFtZW0pIHsKIAkJCS8qIG5vIGx1Y2sgKi8KLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogZmFpbGVkIHRvIGFsbG9jYXRlIGFyZWEgIgotCQkJICAgICAgICJmb3IgbWVhc3VyaW5nICVkIHN1YmNoYW5uZWxzXG4iLAotCQkJICAgICAgIGNtYl9hcmVhLm51bV9jaGFubmVscyk7CiAJCQlyZXQgPSAtRU5PTUVNOwogCQkJZ290byBvdXQ7CiAJCX0gZWxzZSB7CkBAIC0xMjMwLDEzICsxMjI3LDkgQEAKIAlzd2l0Y2ggKHZhbCkgewogCWNhc2UgMDoKIAkJcmV0ID0gZGlzYWJsZV9jbWYoY2Rldik7Ci0JCWlmIChyZXQpCi0JCQlkZXZfaW5mbygmY2Rldi0+ZGV2LCAiZGlzYWJsZV9jbWYgZmFpbGVkICglZClcbiIsIHJldCk7CiAJCWJyZWFrOwogCWNhc2UgMToKIAkJcmV0ID0gZW5hYmxlX2NtZihjZGV2KTsKLQkJaWYgKHJldCAmJiByZXQgIT0gLUVCVVNZKQotCQkJZGV2X2luZm8oJmNkZXYtPmRldiwgImVuYWJsZV9jbWYgZmFpbGVkICglZClcbiIsIHJldCk7CiAJCWJyZWFrOwogCX0KIApAQCAtMTM0NCw4ICsxMzM3LDcgQEAKIAkgKiB0byBiYXNpYyBtb2RlLgogCSAqLwogCWlmIChmb3JtYXQgPT0gQ01GX0FVVE9ERVRFQ1QpIHsKLQkJaWYgKCFjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsIHx8Ci0JCSAgICAhY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmV4dF9tYikgeworCQlpZiAoIWNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcy5leHRfbWIpIHsKIAkJCWZvcm1hdCA9IENNRl9CQVNJQzsKIAkJfSBlbHNlIHsKIAkJCWZvcm1hdCA9IENNRl9FWFRFTkRFRDsKQEAgLTEzNjUsOCArMTM1Nyw2IEBACiAJCWNtYm9wcyA9ICZjbWJvcHNfZXh0ZW5kZWQ7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCXByaW50ayhLRVJOX0VSUiAiY2lvOiBJbnZhbGlkIGZvcm1hdCAlZCBmb3IgY2hhbm5lbCAiCi0JCQkibWVhc3VyZW1lbnQgZmFjaWxpdHlcbiIsIGZvcm1hdCk7CiAJCXJldHVybiAxOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jc3MuYyBiL2RyaXZlcnMvczM5MC9jaW8vY3NzLmMKaW5kZXggYTc2OTU2NS4uNDZjMDIxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9jc3MuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5jCkBAIC0yLDggKzIsNyBAQAogICogIGRyaXZlcnMvczM5MC9jaW8vY3NzLmMKICAqICBkcml2ZXIgZm9yIGNoYW5uZWwgc3Vic3lzdGVtCiAgKgotICogICAgQ29weXJpZ2h0IChDKSAyMDAyIElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILAotICoJCQkgSUJNIENvcnBvcmF0aW9uCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDIsMjAwOAogICogICAgQXV0aG9yKHMpOiBBcm5kIEJlcmdtYW5uIChhcm5kYkBkZS5pYm0uY29tKQogICoJCSBDb3JuZWxpYSBIdWNrIChjb3JuZWxpYS5odWNrQGRlLmlibS5jb20pCiAgKi8KQEAgLTE0LDcgKzEzLDkgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxhc20vaXNjLmg+CiAKKyNpbmNsdWRlICIuLi9zMzkwbWFjaC5oIgogI2luY2x1ZGUgImNzcy5oIgogI2luY2x1ZGUgImNpby5oIgogI2luY2x1ZGUgImNpb19kZWJ1Zy5oIgpAQCAtMzAsOCArMzEsNiBAQAogCiBzdHJ1Y3QgY2hhbm5lbF9zdWJzeXN0ZW0gKmNoYW5uZWxfc3Vic3lzdGVtc1tfX01BWF9DU1NJRCArIDFdOwogCi1pbnQgY3NzX2NoYXJhY3RlcmlzdGljc19hdmFpbCA9IDA7Ci0KIGludAogZm9yX2VhY2hfc3ViY2hhbm5lbChpbnQoKmZuKShzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCwgdm9pZCAqKSwgdm9pZCAqZGF0YSkKIHsKQEAgLTEyMSwyNSArMTIwLDYgQEAKIAkJa2ZyZWUoc2NoKTsKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9Ci0KLQlpZiAoc2NoLT5zdCAhPSBTVUJDSEFOTkVMX1RZUEVfSU8pIHsKLQkJLyogRm9yIG5vdyB3ZSBpZ25vcmUgYWxsIG5vbi1pbyBzdWJjaGFubmVscy4gKi8KLQkJa2ZyZWUoc2NoKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci0JfQotCi0JLyogCi0JICogU2V0IGludHBhcm0gdG8gc3ViY2hhbm5lbCBhZGRyZXNzLgotCSAqIFRoaXMgaXMgZmluZSBldmVuIG9uIDY0Yml0IHNpbmNlIHRoZSBzdWJjaGFubmVsIGlzIGFsd2F5cyBsb2NhdGVkCi0JICogdW5kZXIgMkcuCi0JICovCi0Jc2NoLT5zY2hpYi5wbWN3LmludHBhcm0gPSAodTMyKShhZGRyX3Qpc2NoOwotCXJldCA9IGNpb19tb2RpZnkoc2NoKTsKLQlpZiAocmV0KSB7Ci0JCWtmcmVlKHNjaC0+bG9jayk7Ci0JCWtmcmVlKHNjaCk7Ci0JCXJldHVybiBFUlJfUFRSKHJldCk7Ci0JfQogCXJldHVybiBzY2g7CiB9CiAKQEAgLTE3NywxMiArMTU3LDE4IEBACiAJcmV0dXJuIHJldDsKIH0KIAorLyoqCisgKiBjc3Nfc2NoX2RldmljZV91bnJlZ2lzdGVyIC0gdW5yZWdpc3RlciBhIHN1YmNoYW5uZWwKKyAqIEBzY2g6IHN1YmNoYW5uZWwgdG8gYmUgdW5yZWdpc3RlcmVkCisgKi8KIHZvaWQgY3NzX3NjaF9kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQogewogCW11dGV4X2xvY2soJnNjaC0+cmVnX211dGV4KTsKLQlkZXZpY2VfdW5yZWdpc3Rlcigmc2NoLT5kZXYpOworCWlmIChkZXZpY2VfaXNfcmVnaXN0ZXJlZCgmc2NoLT5kZXYpKQorCQlkZXZpY2VfdW5yZWdpc3Rlcigmc2NoLT5kZXYpOwogCW11dGV4X3VubG9jaygmc2NoLT5yZWdfbXV0ZXgpOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoY3NzX3NjaF9kZXZpY2VfdW5yZWdpc3Rlcik7CiAKIHN0YXRpYyB2b2lkIHNzZF9mcm9tX3BtY3coc3RydWN0IGNoc2Nfc3NkX2luZm8gKnNzZCwgc3RydWN0IHBtY3cgKnBtY3cpCiB7CkBAIC0yMjksNiArMjE1LDQxIEBACiAJfQogfQogCitzdGF0aWMgc3NpemVfdCB0eXBlX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSBjaGFyICpidWYpCit7CisJc3RydWN0IHN1YmNoYW5uZWwgKnNjaCA9IHRvX3N1YmNoYW5uZWwoZGV2KTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiUwMXhcbiIsIHNjaC0+c3QpOworfQorCitzdGF0aWMgREVWSUNFX0FUVFIodHlwZSwgMDQ0NCwgdHlwZV9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3QgbW9kYWxpYXNfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJICAgICBjaGFyICpidWYpCit7CisJc3RydWN0IHN1YmNoYW5uZWwgKnNjaCA9IHRvX3N1YmNoYW5uZWwoZGV2KTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgImNzczp0JTAxWFxuIiwgc2NoLT5zdCk7Cit9CisKK3N0YXRpYyBERVZJQ0VfQVRUUihtb2RhbGlhcywgMDQ0NCwgbW9kYWxpYXNfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpzdWJjaF9hdHRyc1tdID0geworCSZkZXZfYXR0cl90eXBlLmF0dHIsCisJJmRldl9hdHRyX21vZGFsaWFzLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHN1YmNoX2F0dHJfZ3JvdXAgPSB7CisJLmF0dHJzID0gc3ViY2hfYXR0cnMsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZGVmYXVsdF9zdWJjaF9hdHRyX2dyb3Vwc1tdID0geworCSZzdWJjaF9hdHRyX2dyb3VwLAorCU5VTEwsCit9OworCiBzdGF0aWMgaW50IGNzc19yZWdpc3Rlcl9zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCiB7CiAJaW50IHJldDsKQEAgLTIzNywxNiArMjU4LDE3IEBACiAJc2NoLT5kZXYucGFyZW50ID0gJmNoYW5uZWxfc3Vic3lzdGVtc1swXS0+ZGV2aWNlOwogCXNjaC0+ZGV2LmJ1cyA9ICZjc3NfYnVzX3R5cGU7CiAJc2NoLT5kZXYucmVsZWFzZSA9ICZjc3Nfc3ViY2hhbm5lbF9yZWxlYXNlOwotCXNjaC0+ZGV2Lmdyb3VwcyA9IHN1YmNoX2F0dHJfZ3JvdXBzOworCXNjaC0+ZGV2Lmdyb3VwcyA9IGRlZmF1bHRfc3ViY2hfYXR0cl9ncm91cHM7CiAJLyoKIAkgKiBXZSBkb24ndCB3YW50IHRvIGdlbmVyYXRlIHVldmVudHMgZm9yIEkvTyBzdWJjaGFubmVscyB0aGF0IGRvbid0CiAJICogaGF2ZSBhIHdvcmtpbmcgY2N3IGRldmljZSBiZWhpbmQgdGhlbSBzaW5jZSB0aGV5IHdpbGwgYmUKIAkgKiB1bnJlZ2lzdGVyZWQgYmVmb3JlIHRoZXkgY2FuIGJlIHVzZWQgYW55d2F5LCBzbyB3ZSBkZWxheSB0aGUgYWRkCiAJICogdWV2ZW50IHVudGlsIGFmdGVyIGRldmljZSByZWNvZ25pdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKwkgKiBOb3RlIHRoYXQgd2Ugc3VwcHJlc3MgdGhlIHVldmVudCBmb3IgYWxsIHN1YmNoYW5uZWwgdHlwZXM7CisJICogdGhlIHN1YmNoYW5uZWwgZHJpdmVyIGNhbiBkZWNpZGUgaXRzZWxmIHdoZW4gaXQgd2FudHMgdG8gaW5mb3JtCisJICogdXNlcnNwYWNlIG9mIGl0cyBleGlzdGVuY2UuCiAJICovCi0JaWYgKCFjaW9faXNfY29uc29sZShzY2gtPnNjaGlkKSkKLQkJLyogQ29uc29sZSBpcyBzcGVjaWFsLCBubyBuZWVkIHRvIHN1cHByZXNzLiAqLwotCQlzY2gtPmRldi51ZXZlbnRfc3VwcHJlc3MgPSAxOworCXNjaC0+ZGV2LnVldmVudF9zdXBwcmVzcyA9IDE7CiAJY3NzX3VwZGF0ZV9zc2RfaW5mbyhzY2gpOwogCS8qIG1ha2UgaXQga25vd24gdG8gdGhlIHN5c3RlbSAqLwogCXJldCA9IGNzc19zY2hfZGV2aWNlX3JlZ2lzdGVyKHNjaCk7CkBAIC0yNTUsMTAgKzI3NywxOSBAQAogCQkJICAgICAgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubywgcmV0KTsKIAkJcmV0dXJuIHJldDsKIAl9CisJaWYgKCFzY2gtPmRyaXZlcikgeworCQkvKgorCQkgKiBObyBkcml2ZXIgbWF0Y2hlZC4gR2VuZXJhdGUgdGhlIHVldmVudCBub3cgc28gdGhhdAorCQkgKiBhIGZpdHRpbmcgZHJpdmVyIG1vZHVsZSBtYXkgYmUgbG9hZGVkIGJhc2VkIG9uIHRoZQorCQkgKiBtb2RhbGlhcy4KKwkJICovCisJCXNjaC0+ZGV2LnVldmVudF9zdXBwcmVzcyA9IDA7CisJCWtvYmplY3RfdWV2ZW50KCZzY2gtPmRldi5rb2JqLCBLT0JKX0FERCk7CisJfQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgY3NzX3Byb2JlX2RldmljZShzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCkKK2ludCBjc3NfcHJvYmVfZGV2aWNlKHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkKQogewogCWludCByZXQ7CiAJc3RydWN0IHN1YmNoYW5uZWwgKnNjaDsKQEAgLTMwMSwxMTYgKzMzMiwxMiBAQAogewogCWlmICgoc2NoaWItPnBtY3cuc3QgPT0gU1VCQ0hBTk5FTF9UWVBFX0lPKSAmJiAhc2NoaWItPnBtY3cuZG52KQogCQlyZXR1cm4gMDsKKwlpZiAoKHNjaGliLT5wbWN3LnN0ID09IFNVQkNIQU5ORUxfVFlQRV9NU0cpICYmICFzY2hpYi0+cG1jdy53KQorCQlyZXR1cm4gMDsKIAlyZXR1cm4gMTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGNzc19zY2hfaXNfdmFsaWQpOwogCi1zdGF0aWMgaW50IGNzc19nZXRfc3ViY2hhbm5lbF9zdGF0dXMoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKLXsKLQlzdHJ1Y3Qgc2NoaWIgc2NoaWI7Ci0KLQlpZiAoc3RzY2goc2NoLT5zY2hpZCwgJnNjaGliKSkKLQkJcmV0dXJuIENJT19HT05FOwotCWlmICghY3NzX3NjaF9pc192YWxpZCgmc2NoaWIpKQotCQlyZXR1cm4gQ0lPX0dPTkU7Ci0JaWYgKHNjaC0+c2NoaWIucG1jdy5kbnYgJiYgKHNjaGliLnBtY3cuZGV2ICE9IHNjaC0+c2NoaWIucG1jdy5kZXYpKQotCQlyZXR1cm4gQ0lPX1JFVkFMSURBVEU7Ci0JaWYgKCFzY2gtPmxwbSkKLQkJcmV0dXJuIENJT19OT19QQVRIOwotCXJldHVybiBDSU9fT1BFUjsKLX0KLQotc3RhdGljIGludCBjc3NfZXZhbHVhdGVfa25vd25fc3ViY2hhbm5lbChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCBpbnQgc2xvdykKLXsKLQlpbnQgZXZlbnQsIHJldCwgZGlzYzsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWVudW0geyBOT05FLCBVTlJFR0lTVEVSLCBVTlJFR0lTVEVSX1BST0JFLCBSRVBST0JFIH0gYWN0aW9uOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoc2NoLT5sb2NrLCBmbGFncyk7Ci0JZGlzYyA9IGRldmljZV9pc19kaXNjb25uZWN0ZWQoc2NoKTsKLQlpZiAoZGlzYyAmJiBzbG93KSB7Ci0JCS8qIERpc2Nvbm5lY3RlZCBkZXZpY2VzIGFyZSBldmFsdWF0ZWQgZGlyZWN0bHkgb25seS4qLwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOwotCQlyZXR1cm4gMDsKLQl9Ci0JLyogTm8gaW50ZXJydXB0IGFmdGVyIG1hY2hpbmUgY2hlY2sgLSBraWxsIHBlbmRpbmcgdGltZXJzLiAqLwotCWRldmljZV9raWxsX3BlbmRpbmdfdGltZXIoc2NoKTsKLQlpZiAoIWRpc2MgJiYgIXNsb3cpIHsKLQkJLyogTm9uLWRpc2Nvbm5lY3RlZCBkZXZpY2VzIGFyZSBldmFsdWF0ZWQgb24gdGhlIHNsb3cgcGF0aC4gKi8KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKLQkJcmV0dXJuIC1FQUdBSU47Ci0JfQotCWV2ZW50ID0gY3NzX2dldF9zdWJjaGFubmVsX3N0YXR1cyhzY2gpOwotCUNJT19NU0dfRVZFTlQoNCwgIkV2YWx1YXRpbmcgc2NoaWQgMC4leC4lMDR4LCBldmVudCAlZCwgJXMsICVzIHBhdGguXG4iLAotCQkgICAgICBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCBldmVudCwKLQkJICAgICAgZGlzYyA/ICJkaXNjb25uZWN0ZWQiIDogIm5vcm1hbCIsCi0JCSAgICAgIHNsb3cgPyAic2xvdyIgOiAiZmFzdCIpOwotCS8qIEFuYWx5emUgc3ViY2hhbm5lbCBzdGF0dXMuICovCi0JYWN0aW9uID0gTk9ORTsKLQlzd2l0Y2ggKGV2ZW50KSB7Ci0JY2FzZSBDSU9fTk9fUEFUSDoKLQkJaWYgKGRpc2MpIHsKLQkJCS8qIENoZWNrIGlmIHBhdGhzIGhhdmUgYmVjb21lIGF2YWlsYWJsZS4gKi8KLQkJCWFjdGlvbiA9IFJFUFJPQkU7Ci0JCQlicmVhazsKLQkJfQotCQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIENJT19HT05FOgotCQkvKiBQcmV2ZW50IHVud2FudGVkIGVmZmVjdHMgd2hlbiBvcGVuaW5nIGxvY2suICovCi0JCWNpb19kaXNhYmxlX3N1YmNoYW5uZWwoc2NoKTsKLQkJZGV2aWNlX3NldF9kaXNjb25uZWN0ZWQoc2NoKTsKLQkJLyogQXNrIGRyaXZlciB3aGF0IHRvIGRvIHdpdGggZGV2aWNlLiAqLwotCQlhY3Rpb24gPSBVTlJFR0lTVEVSOwotCQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPm5vdGlmeSkgewotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKLQkJCXJldCA9IHNjaC0+ZHJpdmVyLT5ub3RpZnkoc2NoLCBldmVudCk7Ci0JCQlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKLQkJCWlmIChyZXQpCi0JCQkJYWN0aW9uID0gTk9ORTsKLQkJfQotCQlicmVhazsKLQljYXNlIENJT19SRVZBTElEQVRFOgotCQkvKiBEZXZpY2Ugd2lsbCBiZSByZW1vdmVkLCBzbyBubyBub3RpZnkgbmVjZXNzYXJ5LiAqLwotCQlpZiAoZGlzYykKLQkJCS8qIFJlcHJvYmUgYmVjYXVzZSBpbW1lZGlhdGUgdW5yZWdpc3RlciBtaWdodCBibG9jay4gKi8KLQkJCWFjdGlvbiA9IFJFUFJPQkU7Ci0JCWVsc2UKLQkJCWFjdGlvbiA9IFVOUkVHSVNURVJfUFJPQkU7Ci0JCWJyZWFrOwotCWNhc2UgQ0lPX09QRVI6Ci0JCWlmIChkaXNjKQotCQkJLyogR2V0IGRldmljZSBvcGVyYXRpb25hbCBhZ2Fpbi4gKi8KLQkJCWFjdGlvbiA9IFJFUFJPQkU7Ci0JCWJyZWFrOwotCX0KLQkvKiBQZXJmb3JtIGFjdGlvbi4gKi8KLQlyZXQgPSAwOwotCXN3aXRjaCAoYWN0aW9uKSB7Ci0JY2FzZSBVTlJFR0lTVEVSOgotCWNhc2UgVU5SRUdJU1RFUl9QUk9CRToKLQkJLyogVW5yZWdpc3RlciBkZXZpY2UgKHdpbGwgdXNlIHN1YmNoYW5uZWwgbG9jaykuICovCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7Ci0JCWNzc19zY2hfZGV2aWNlX3VucmVnaXN0ZXIoc2NoKTsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoc2NoLT5sb2NrLCBmbGFncyk7Ci0KLQkJLyogUmVzZXQgaW50cGFybSB0byB6ZXJvZXMuICovCi0JCXNjaC0+c2NoaWIucG1jdy5pbnRwYXJtID0gMDsKLQkJY2lvX21vZGlmeShzY2gpOwotCQlicmVhazsKLQljYXNlIFJFUFJPQkU6Ci0JCWRldmljZV90cmlnZ2VyX3JlcHJvYmUoc2NoKTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJYnJlYWs7Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7Ci0JLyogUHJvYmUgaWYgbmVjZXNzYXJ5LiAqLwotCWlmIChhY3Rpb24gPT0gVU5SRUdJU1RFUl9QUk9CRSkKLQkJcmV0ID0gY3NzX3Byb2JlX2RldmljZShzY2gtPnNjaGlkKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KIHN0YXRpYyBpbnQgY3NzX2V2YWx1YXRlX25ld19zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkLCBpbnQgc2xvdykKIHsKIAlzdHJ1Y3Qgc2NoaWIgc2NoaWI7CkBAIC00MjksNiArMzU2LDIxIEBACiAJcmV0dXJuIGNzc19wcm9iZV9kZXZpY2Uoc2NoaWQpOwogfQogCitzdGF0aWMgaW50IGNzc19ldmFsdWF0ZV9rbm93bl9zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIGludCBzbG93KQoreworCWludCByZXQgPSAwOworCisJaWYgKHNjaC0+ZHJpdmVyKSB7CisJCWlmIChzY2gtPmRyaXZlci0+c2NoX2V2ZW50KQorCQkJcmV0ID0gc2NoLT5kcml2ZXItPnNjaF9ldmVudChzY2gsIHNsb3cpOworCQllbHNlCisJCQlkZXZfZGJnKCZzY2gtPmRldiwKKwkJCQkiR290IHN1YmNoYW5uZWwgbWFjaGluZSBjaGVjayBidXQgIgorCQkJCSJubyBzY2hfZXZlbnQgaGFuZGxlciBwcm92aWRlZC5cbiIpOworCX0KKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgdm9pZCBjc3NfZXZhbHVhdGVfc3ViY2hhbm5lbChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCwgaW50IHNsb3cpCiB7CiAJc3RydWN0IHN1YmNoYW5uZWwgKnNjaDsKQEAgLTU5NiwxOCArNTM4LDI5IEBACiAvKgogICogQ2FsbGVkIGZyb20gdGhlIG1hY2hpbmUgY2hlY2sgaGFuZGxlciBmb3Igc3ViY2hhbm5lbCByZXBvcnQgd29yZHMuCiAgKi8KLXZvaWQgY3NzX3Byb2Nlc3NfY3J3KGludCByc2lkMSwgaW50IHJzaWQyKQorc3RhdGljIHZvaWQgY3NzX3Byb2Nlc3NfY3J3KHN0cnVjdCBjcncgKmNydzAsIHN0cnVjdCBjcncgKmNydzEsIGludCBvdmVyZmxvdykKIHsKIAlzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBtY2hrX3NjaGlkOwogCi0JQ0lPX0NSV19FVkVOVCgyLCAic291cmNlIGlzIHN1YmNoYW5uZWwgJTA0WCwgc3Vic3lzdGVtIGlkICV4XG4iLAotCQkgICAgICByc2lkMSwgcnNpZDIpOworCWlmIChvdmVyZmxvdykgeworCQljc3Nfc2NoZWR1bGVfZXZhbF9hbGwoKTsKKwkJcmV0dXJuOworCX0KKwlDSU9fQ1JXX0VWRU5UKDIsICJDUlcwIHJlcG9ydHMgc2xjdD0lZCwgb2Zsdz0lZCwgIgorCQkgICAgICAiY2huPSVkLCByc2M9JVgsIGFuYz0lZCwgZXJjPSVYLCByc2lkPSVYXG4iLAorCQkgICAgICBjcncwLT5zbGN0LCBjcncwLT5vZmx3LCBjcncwLT5jaG4sIGNydzAtPnJzYywgY3J3MC0+YW5jLAorCQkgICAgICBjcncwLT5lcmMsIGNydzAtPnJzaWQpOworCWlmIChjcncxKQorCQlDSU9fQ1JXX0VWRU5UKDIsICJDUlcxIHJlcG9ydHMgc2xjdD0lZCwgb2Zsdz0lZCwgIgorCQkJICAgICAgImNobj0lZCwgcnNjPSVYLCBhbmM9JWQsIGVyYz0lWCwgcnNpZD0lWFxuIiwKKwkJCSAgICAgIGNydzEtPnNsY3QsIGNydzEtPm9mbHcsIGNydzEtPmNobiwgY3J3MS0+cnNjLAorCQkJICAgICAgY3J3MS0+YW5jLCBjcncxLT5lcmMsIGNydzEtPnJzaWQpOwogCWluaXRfc3ViY2hhbm5lbF9pZCgmbWNoa19zY2hpZCk7Ci0JbWNoa19zY2hpZC5zY2hfbm8gPSByc2lkMTsKLQlpZiAocnNpZDIgIT0gMCkKLQkJbWNoa19zY2hpZC5zc2lkID0gKHJzaWQyID4+IDgpICYgMzsKKwltY2hrX3NjaGlkLnNjaF9ubyA9IGNydzAtPnJzaWQ7CisJaWYgKGNydzEpCisJCW1jaGtfc2NoaWQuc3NpZCA9IChjcncxLT5yc2lkID4+IDgpICYgMzsKIAotCS8qIAorCS8qCiAJICogU2luY2Ugd2UgYXJlIGFsd2F5cyBwcmVzZW50ZWQgd2l0aCBJUEkgaW4gdGhlIENSVywgd2UgaGF2ZSB0bwogCSAqIHVzZSBzdHNjaCgpIHRvIGZpbmQgb3V0IGlmIHRoZSBzdWJjaGFubmVsIGluIHF1ZXN0aW9uIGhhcyBjb21lCiAJICogb3IgZ29uZS4KQEAgLTY1OCw3ICs2MTEsNyBAQAogc3RhdGljIHZvaWQgX19pbml0CiBjc3NfZ2VuZXJhdGVfcGdpZChzdHJ1Y3QgY2hhbm5lbF9zdWJzeXN0ZW0gKmNzcywgdTMyIHRvZF9oaWdoKQogewotCWlmIChjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsICYmIGNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcy5tY3NzKSB7CisJaWYgKGNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcy5tY3NzKSB7CiAJCWNzcy0+Z2xvYmFsX3BnaWQucGdpZF9oaWdoLmV4dF9jc3NpZC52ZXJzaW9uID0gMHg4MDsKIAkJY3NzLT5nbG9iYWxfcGdpZC5wZ2lkX2hpZ2guZXh0X2Nzc2lkLmNzc2lkID0gY3NzLT5jc3NpZDsKIAl9IGVsc2UgewpAQCAtNzk1LDggKzc0OCw2IEBACiAJcmV0ID0gY2hzY19kZXRlcm1pbmVfY3NzX2NoYXJhY3RlcmlzdGljcygpOwogCWlmIChyZXQgPT0gLUVOT01FTSkKIAkJZ290byBvdXQ7IC8qIE5vIG5lZWQgdG8gY29udGludWUuICovCi0JaWYgKHJldCA9PSAwKQotCQljc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsID0gMTsKIAogCXJldCA9IGNoc2NfYWxsb2Nfc2VpX2FyZWEoKTsKIAlpZiAocmV0KQpAQCAtODA2LDYgKzc1NywxMCBAQAogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCisJcmV0ID0gczM5MF9yZWdpc3Rlcl9jcndfaGFuZGxlcihDUldfUlNDX1NDSCwgY3NzX3Byb2Nlc3NfY3J3KTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKwogCWlmICgocmV0ID0gYnVzX3JlZ2lzdGVyKCZjc3NfYnVzX3R5cGUpKSkKIAkJZ290byBvdXQ7CiAKQEAgLTgzNiw4ICs3OTEsNyBAQAogCQlyZXQgPSBkZXZpY2VfcmVnaXN0ZXIoJmNzcy0+ZGV2aWNlKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gb3V0X2ZyZWVfYWxsOwotCQlpZiAoY3NzX2NoYXJhY3RlcmlzdGljc19hdmFpbCAmJgotCQkgICAgY3NzX2Noc2NfY2hhcmFjdGVyaXN0aWNzLnNlY20pIHsKKwkJaWYgKGNzc19jaHNjX2NoYXJhY3RlcmlzdGljcy5zZWNtKSB7CiAJCQlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoJmNzcy0+ZGV2aWNlLAogCQkJCQkJICZkZXZfYXR0cl9jbV9lbmFibGUpOwogCQkJaWYgKHJldCkKQEAgLTg1Miw3ICs4MDYsOCBAQAogCQlnb3RvIG91dF9wc2V1ZG87CiAJY3NzX2luaXRfZG9uZSA9IDE7CiAKLQljdGxfc2V0X2JpdCg2LCAyOCk7CisJLyogRW5hYmxlIGRlZmF1bHQgaXNjIGZvciBJL08gc3ViY2hhbm5lbHMuICovCisJaXNjX3JlZ2lzdGVyKElPX1NDSF9JU0MpOwogCiAJZm9yX2VhY2hfc3ViY2hhbm5lbChfX2luaXRfY2hhbm5lbF9zdWJzeXN0ZW0sIE5VTEwpOwogCXJldHVybiAwOwpAQCAtODc1LDcgKzgzMCw3IEBACiAJCWktLTsKIAkJY3NzID0gY2hhbm5lbF9zdWJzeXN0ZW1zW2ldOwogCQlkZXZpY2VfdW5yZWdpc3RlcigmY3NzLT5wc2V1ZG9fc3ViY2hhbm5lbC0+ZGV2KTsKLQkJaWYgKGNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwgJiYgY3NzX2Noc2NfY2hhcmFjdGVyaXN0aWNzLnNlY20pCisJCWlmIChjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3Muc2VjbSkKIAkJCWRldmljZV9yZW1vdmVfZmlsZSgmY3NzLT5kZXZpY2UsCiAJCQkJCSAgICZkZXZfYXR0cl9jbV9lbmFibGUpOwogCQlkZXZpY2VfdW5yZWdpc3RlcigmY3NzLT5kZXZpY2UpOwpAQCAtODgzLDYgKzgzOCw3IEBACiBvdXRfYnVzOgogCWJ1c191bnJlZ2lzdGVyKCZjc3NfYnVzX3R5cGUpOwogb3V0OgorCXMzOTBfdW5yZWdpc3Rlcl9jcndfaGFuZGxlcihDUldfUlNDX0NTUyk7CiAJY2hzY19mcmVlX3NlaV9hcmVhKCk7CiAJa2ZyZWUoc2xvd19zdWJjaGFubmVsX3NldCk7CiAJcHJpbnRrKEtFUk5fV0FSTklORyJjaW86IGZhaWxlZCB0byBpbml0aWFsaXplIGNzcyBkcml2ZXIgKCVkKSFcbiIsCkBAIC04OTUsMTkgKzg1MSwxNiBAQAogCXJldHVybiBzY2ggPT0gdG9fY3NzKHNjaC0+ZGV2LnBhcmVudCktPnBzZXVkb19zdWJjaGFubmVsOwogfQogCi0vKgotICogZmluZCBhIGRyaXZlciBmb3IgYSBzdWJjaGFubmVsLiBUaGV5IGlkZW50aWZ5IGJ5IHRoZSBzdWJjaGFubmVsCi0gKiB0eXBlIHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IHRoZSBjb25zb2xlIHN1YmNoYW5uZWwgZHJpdmVyIGhhcyBpdHMgb3duCi0gKiBzdWJjaGFubmVsIHR5cGUgYWx0aG91Z2ggdGhlIGRldmljZSBpcyBhbiBpL28gc3ViY2hhbm5lbAotICovCi1zdGF0aWMgaW50Ci1jc3NfYnVzX21hdGNoIChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpCitzdGF0aWMgaW50IGNzc19idXNfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2KQogewogCXN0cnVjdCBzdWJjaGFubmVsICpzY2ggPSB0b19zdWJjaGFubmVsKGRldik7CiAJc3RydWN0IGNzc19kcml2ZXIgKmRyaXZlciA9IHRvX2Nzc2RyaXZlcihkcnYpOworCXN0cnVjdCBjc3NfZGV2aWNlX2lkICppZDsKIAotCWlmIChzY2gtPnN0ID09IGRyaXZlci0+c3ViY2hhbm5lbF90eXBlKQotCQlyZXR1cm4gMTsKKwlmb3IgKGlkID0gZHJpdmVyLT5zdWJjaGFubmVsX3R5cGU7IGlkLT5tYXRjaF9mbGFnczsgaWQrKykgeworCQlpZiAoc2NoLT5zdCA9PSBpZC0+dHlwZSkKKwkJCXJldHVybiAxOworCX0KIAogCXJldHVybiAwOwogfQpAQCAtOTQ1LDEyICs4OTgsMjUgQEAKIAkJc2NoLT5kcml2ZXItPnNodXRkb3duKHNjaCk7CiB9CiAKK3N0YXRpYyBpbnQgY3NzX3VldmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudikKK3sKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChkZXYpOworCWludCByZXQ7CisKKwlyZXQgPSBhZGRfdWV2ZW50X3ZhcihlbnYsICJTVD0lMDFYIiwgc2NoLT5zdCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwlyZXQgPSBhZGRfdWV2ZW50X3ZhcihlbnYsICJNT0RBTElBUz1jc3M6dCUwMVgiLCBzY2gtPnN0KTsKKwlyZXR1cm4gcmV0OworfQorCiBzdHJ1Y3QgYnVzX3R5cGUgY3NzX2J1c190eXBlID0gewogCS5uYW1lICAgICA9ICJjc3MiLAogCS5tYXRjaCAgICA9IGNzc19idXNfbWF0Y2gsCiAJLnByb2JlICAgID0gY3NzX3Byb2JlLAogCS5yZW1vdmUgICA9IGNzc19yZW1vdmUsCiAJLnNodXRkb3duID0gY3NzX3NodXRkb3duLAorCS51ZXZlbnQgICA9IGNzc191ZXZlbnQsCiB9OwogCiAvKioKQEAgLTk4NSw0ICs5NTEsMyBAQAogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBFWFBPUlRfU1lNQk9MKGNzc19idXNfdHlwZSk7Ci1FWFBPUlRfU1lNQk9MX0dQTChjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY3NzLmggYi9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5oCmluZGV4IGUxOTEzNTEuLjU3ZWJmMTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY3NzLmgKKysrIGIvZHJpdmVycy9zMzkwL2Npby9jc3MuaApAQCAtOSw4ICs5LDcgQEAKIAogI2luY2x1ZGUgPGFzbS9jaW8uaD4KICNpbmNsdWRlIDxhc20vY2hwaWQuaD4KLQotI2luY2x1ZGUgInNjaGlkLmgiCisjaW5jbHVkZSA8YXNtL3NjaGlkLmg+CiAKIC8qCiAgKiBwYXRoIGdyb3VwaW5nIHN0dWZmCkBAIC01OCwyMCArNTcsMjggQEAKIAlfX3UzMiB0b2RfaGlnaDsJCS8qIGhpZ2ggd29yZCBUT0QgY2xvY2sgKi8KIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCi0vKgotICogQSBjc3MgZHJpdmVyIGhhbmRsZXMgYWxsIHN1YmNoYW5uZWxzIG9mIG9uZSB0eXBlLgotICogQ3VycmVudGx5LCB3ZSBvbmx5IGNhcmUgYWJvdXQgSS9PIHN1YmNoYW5uZWxzICh0eXBlIDApLCB0aGVzZQotICogaGF2ZSBhIGNjd19kZXZpY2UgY29ubmVjdGVkIHRvIHRoZW0uCi0gKi8KIHN0cnVjdCBzdWJjaGFubmVsOworc3RydWN0IGNocF9saW5rOworLyoqCisgKiBzdHJ1Y3QgY3NzX2RyaXZlciAtIGRldmljZSBkcml2ZXIgZm9yIHN1YmNoYW5uZWxzCisgKiBAb3duZXI6IG93bmluZyBtb2R1bGUKKyAqIEBzdWJjaGFubmVsX3R5cGU6IHN1YmNoYW5uZWwgdHlwZSBzdXBwb3J0ZWQgYnkgdGhpcyBkcml2ZXIKKyAqIEBkcnY6IGVtYmVkZGVkIGRldmljZSBkcml2ZXIgc3RydWN0dXJlCisgKiBAaXJxOiBjYWxsZWQgb24gaW50ZXJydXB0cworICogQGNocF9ldmVudDogY2FsbGVkIGZvciBldmVudHMgYWZmZWN0aW5nIGEgY2hhbm5lbCBwYXRoCisgKiBAc2NoX2V2ZW50OiBjYWxsZWQgZm9yIGV2ZW50cyBhZmZlY3RpbmcgdGhlIHN1YmNoYW5uZWwKKyAqIEBwcm9iZTogZnVuY3Rpb24gY2FsbGVkIG9uIHByb2JlCisgKiBAcmVtb3ZlOiBmdW5jdGlvbiBjYWxsZWQgb24gcmVtb3ZlCisgKiBAc2h1dGRvd246IGNhbGxlZCBhdCBkZXZpY2Ugc2h1dGRvd24KKyAqIEBuYW1lOiBuYW1lIG9mIHRoZSBkZXZpY2UgZHJpdmVyCisgKi8KIHN0cnVjdCBjc3NfZHJpdmVyIHsKIAlzdHJ1Y3QgbW9kdWxlICpvd25lcjsKLQl1bnNpZ25lZCBpbnQgc3ViY2hhbm5lbF90eXBlOworCXN0cnVjdCBjc3NfZGV2aWNlX2lkICpzdWJjaGFubmVsX3R5cGU7CiAJc3RydWN0IGRldmljZV9kcml2ZXIgZHJ2OwogCXZvaWQgKCppcnEpKHN0cnVjdCBzdWJjaGFubmVsICopOwotCWludCAoKm5vdGlmeSkoc3RydWN0IHN1YmNoYW5uZWwgKiwgaW50KTsKLQl2b2lkICgqdmVyaWZ5KShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLQl2b2lkICgqdGVybWluYXRpb24pKHN0cnVjdCBzdWJjaGFubmVsICopOworCWludCAoKmNocF9ldmVudCkoc3RydWN0IHN1YmNoYW5uZWwgKiwgc3RydWN0IGNocF9saW5rICosIGludCk7CisJaW50ICgqc2NoX2V2ZW50KShzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCBpbnQpOwogCWludCAoKnByb2JlKShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKIAlpbnQgKCpyZW1vdmUpKHN0cnVjdCBzdWJjaGFubmVsICopOwogCXZvaWQgKCpzaHV0ZG93bikoc3RydWN0IHN1YmNoYW5uZWwgKik7CkBAIC04OSwxMyArOTYsMTMgQEAKIGV4dGVybiB2b2lkIGNzc19kcml2ZXJfdW5yZWdpc3RlcihzdHJ1Y3QgY3NzX2RyaXZlciAqKTsKIAogZXh0ZXJuIHZvaWQgY3NzX3NjaF9kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLWV4dGVybiBzdHJ1Y3Qgc3ViY2hhbm5lbCAqIGdldF9zdWJjaGFubmVsX2J5X3NjaGlkKHN0cnVjdCBzdWJjaGFubmVsX2lkKTsKK2V4dGVybiBpbnQgY3NzX3Byb2JlX2RldmljZShzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCk7CitleHRlcm4gc3RydWN0IHN1YmNoYW5uZWwgKmdldF9zdWJjaGFubmVsX2J5X3NjaGlkKHN0cnVjdCBzdWJjaGFubmVsX2lkKTsKIGV4dGVybiBpbnQgY3NzX2luaXRfZG9uZTsKIGludCBmb3JfZWFjaF9zdWJjaGFubmVsX3N0YWdlZChpbnQgKCpmbl9rbm93bikoc3RydWN0IHN1YmNoYW5uZWwgKiwgdm9pZCAqKSwKIAkJCSAgICAgICBpbnQgKCpmbl91bmtub3duKShzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCwKIAkJCSAgICAgICB2b2lkICopLCB2b2lkICpkYXRhKTsKIGV4dGVybiBpbnQgZm9yX2VhY2hfc3ViY2hhbm5lbChpbnQoKmZuKShzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCwgdm9pZCAqKSwgdm9pZCAqKTsKLWV4dGVybiB2b2lkIGNzc19wcm9jZXNzX2NydyhpbnQsIGludCk7CiBleHRlcm4gdm9pZCBjc3NfcmVpdGVyYXRlX3N1YmNoYW5uZWxzKHZvaWQpOwogdm9pZCBjc3NfdXBkYXRlX3NzZF9pbmZvKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpOwogCkBAIC0xMjEsMjAgKzEyOCw2IEBACiBleHRlcm4gc3RydWN0IGJ1c190eXBlIGNzc19idXNfdHlwZTsKIGV4dGVybiBzdHJ1Y3QgY2hhbm5lbF9zdWJzeXN0ZW0gKmNoYW5uZWxfc3Vic3lzdGVtc1tdOwogCi0vKiBTb21lIGhlbHBlciBmdW5jdGlvbnMgZm9yIGRpc2Nvbm5lY3RlZCBzdGF0ZS4gKi8KLWludCBkZXZpY2VfaXNfZGlzY29ubmVjdGVkKHN0cnVjdCBzdWJjaGFubmVsICopOwotdm9pZCBkZXZpY2Vfc2V0X2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLXZvaWQgZGV2aWNlX3RyaWdnZXJfcmVwcm9iZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLQotLyogSGVscGVyIGZ1bmN0aW9ucyBmb3IgdmFyeSBvbi9vZmYuICovCi1pbnQgZGV2aWNlX2lzX29ubGluZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLXZvaWQgZGV2aWNlX2tpbGxfaW8oc3RydWN0IHN1YmNoYW5uZWwgKik7Ci12b2lkIGRldmljZV9zZXRfaW50cmV0cnkoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCk7Ci1pbnQgZGV2aWNlX3RyaWdnZXJfdmVyaWZ5KHN0cnVjdCBzdWJjaGFubmVsICpzY2gpOwotCi0vKiBNYWNoaW5lIGNoZWNrIGhlbHBlciBmdW5jdGlvbi4gKi8KLXZvaWQgZGV2aWNlX2tpbGxfcGVuZGluZ190aW1lcihzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLQogLyogSGVscGVyIGZ1bmN0aW9ucyB0byBidWlsZCBsaXN0cyBmb3IgdGhlIHNsb3cgcGF0aC4gKi8KIHZvaWQgY3NzX3NjaGVkdWxlX2V2YWwoc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQpOwogdm9pZCBjc3Nfc2NoZWR1bGVfZXZhbF9hbGwodm9pZCk7CkBAIC0xNDUsNiArMTM4LDQgQEAKIAogZXh0ZXJuIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpzbG93X3BhdGhfd3E7CiB2b2lkIGNzc193YWl0X2Zvcl9zbG93X3BhdGgodm9pZCk7Ci0KLWV4dGVybiBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpzdWJjaF9hdHRyX2dyb3Vwc1tdOwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZS5jIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuYwppbmRleCBlMjI4MTNkLi5lODE4ZDBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZS5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmMKQEAgLTIsOCArMiw3IEBACiAgKiAgZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuYwogICogIGJ1cyBkcml2ZXIgZm9yIGNjdyBkZXZpY2VzCiAgKgotICogICAgQ29weXJpZ2h0IChDKSAyMDAyIElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILAotICoJCQkgSUJNIENvcnBvcmF0aW9uCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDIsMjAwOAogICogICAgQXV0aG9yKHMpOiBBcm5kIEJlcmdtYW5uIChhcm5kYkBkZS5pYm0uY29tKQogICoJCSBDb3JuZWxpYSBIdWNrIChjb3JuZWxpYS5odWNrQGRlLmlibS5jb20pCiAgKgkJIE1hcnRpbiBTY2h3aWRlZnNreSAoc2Nod2lkZWZza3lAZGUuaWJtLmNvbSkKQEAgLTIzLDcgKzIyLDkgQEAKICNpbmNsdWRlIDxhc20vY2lvLmg+CiAjaW5jbHVkZSA8YXNtL3BhcmFtLmg+CQkvKiBIWiAqLwogI2luY2x1ZGUgPGFzbS9jbWIuaD4KKyNpbmNsdWRlIDxhc20vaXNjLmg+CiAKKyNpbmNsdWRlICJjaHAuaCIKICNpbmNsdWRlICJjaW8uaCIKICNpbmNsdWRlICJjaW9fZGVidWcuaCIKICNpbmNsdWRlICJjc3MuaCIKQEAgLTEyNSwxOSArMTI2LDI0IEBACiBzdGF0aWMgdm9pZCBpb19zdWJjaGFubmVsX2lycShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKIHN0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9wcm9iZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKIHN0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9yZW1vdmUoc3RydWN0IHN1YmNoYW5uZWwgKik7Ci1zdGF0aWMgaW50IGlvX3N1YmNoYW5uZWxfbm90aWZ5KHN0cnVjdCBzdWJjaGFubmVsICosIGludCk7Ci1zdGF0aWMgdm9pZCBpb19zdWJjaGFubmVsX3ZlcmlmeShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLXN0YXRpYyB2b2lkIGlvX3N1YmNoYW5uZWxfaW90ZXJtKHN0cnVjdCBzdWJjaGFubmVsICopOwogc3RhdGljIHZvaWQgaW9fc3ViY2hhbm5lbF9zaHV0ZG93bihzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKK3N0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9zY2hfZXZlbnQoc3RydWN0IHN1YmNoYW5uZWwgKiwgaW50KTsKK3N0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9jaHBfZXZlbnQoc3RydWN0IHN1YmNoYW5uZWwgKiwgc3RydWN0IGNocF9saW5rICosCisJCQkJICAgaW50KTsKKworc3RhdGljIHN0cnVjdCBjc3NfZGV2aWNlX2lkIGlvX3N1YmNoYW5uZWxfaWRzW10gPSB7CisJeyAubWF0Y2hfZmxhZ3MgPSAweDEsIC50eXBlID0gU1VCQ0hBTk5FTF9UWVBFX0lPLCB9LAorCXsgLyogZW5kIG9mIGxpc3QgKi8gfSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKGNzcywgaW9fc3ViY2hhbm5lbF9pZHMpOwogCiBzdGF0aWMgc3RydWN0IGNzc19kcml2ZXIgaW9fc3ViY2hhbm5lbF9kcml2ZXIgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCi0JLnN1YmNoYW5uZWxfdHlwZSA9IFNVQkNIQU5ORUxfVFlQRV9JTywKKwkuc3ViY2hhbm5lbF90eXBlID0gaW9fc3ViY2hhbm5lbF9pZHMsCiAJLm5hbWUgPSAiaW9fc3ViY2hhbm5lbCIsCiAJLmlycSA9IGlvX3N1YmNoYW5uZWxfaXJxLAotCS5ub3RpZnkgPSBpb19zdWJjaGFubmVsX25vdGlmeSwKLQkudmVyaWZ5ID0gaW9fc3ViY2hhbm5lbF92ZXJpZnksCi0JLnRlcm1pbmF0aW9uID0gaW9fc3ViY2hhbm5lbF9pb3Rlcm0sCisJLnNjaF9ldmVudCA9IGlvX3N1YmNoYW5uZWxfc2NoX2V2ZW50LAorCS5jaHBfZXZlbnQgPSBpb19zdWJjaGFubmVsX2NocF9ldmVudCwKIAkucHJvYmUgPSBpb19zdWJjaGFubmVsX3Byb2JlLAogCS5yZW1vdmUgPSBpb19zdWJjaGFubmVsX3JlbW92ZSwKIAkuc2h1dGRvd24gPSBpb19zdWJjaGFubmVsX3NodXRkb3duLApAQCAtNDg3LDI1ICs0OTMsMjIgQEAKIAkJY2N3X2RldmljZV9zZXRfb25saW5lKGNkZXYpOwogCXJldHVybiAwOwogfQotc3RhdGljIHZvaWQgb25saW5lX3N0b3JlX2hhbmRsZV9vbmxpbmUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIGludCBmb3JjZSkKK3N0YXRpYyBpbnQgb25saW5lX3N0b3JlX2hhbmRsZV9vbmxpbmUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIGludCBmb3JjZSkKIHsKIAlpbnQgcmV0OwogCiAJcmV0ID0gb25saW5lX3N0b3JlX3JlY29nX2FuZF9vbmxpbmUoY2Rldik7CiAJaWYgKHJldCkKLQkJcmV0dXJuOworCQlyZXR1cm4gcmV0OwogCWlmIChmb3JjZSAmJiBjZGV2LT5wcml2YXRlLT5zdGF0ZSA9PSBERVZfU1RBVEVfQk9YRUQpIHsKIAkJcmV0ID0gY2N3X2RldmljZV9zdGxjayhjZGV2KTsKLQkJaWYgKHJldCkgewotCQkJZGV2X3dhcm4oJmNkZXYtPmRldiwKLQkJCQkgImNjd19kZXZpY2Vfc3RsY2sgcmV0dXJuZWQgJWQhXG4iLCByZXQpOwotCQkJcmV0dXJuOwotCQl9CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OwogCQlpZiAoY2Rldi0+aWQuY3VfdHlwZSA9PSAwKQogCQkJY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPSBERVZfU1RBVEVfTk9UX09QRVI7CiAJCW9ubGluZV9zdG9yZV9yZWNvZ19hbmRfb25saW5lKGNkZXYpOwogCX0KLQorCXJldHVybiAwOwogfQogCiBzdGF0aWMgc3NpemVfdCBvbmxpbmVfc3RvcmUgKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCkBAIC01MzgsOCArNTQxLDkgQEAKIAkJcmV0ID0gY291bnQ7CiAJCWJyZWFrOwogCWNhc2UgMToKLQkJb25saW5lX3N0b3JlX2hhbmRsZV9vbmxpbmUoY2RldiwgZm9yY2UpOwotCQlyZXQgPSBjb3VudDsKKwkJcmV0ID0gb25saW5lX3N0b3JlX2hhbmRsZV9vbmxpbmUoY2RldiwgZm9yY2UpOworCQlpZiAoIXJldCkKKwkJCXJldCA9IGNvdW50OwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXQgPSAtRUlOVkFMOwpAQCAtNTg0LDE5ICs1ODgsMTQgQEAKIHN0YXRpYyBERVZJQ0VfQVRUUihvbmxpbmUsIDA2NDQsIG9ubGluZV9zaG93LCBvbmxpbmVfc3RvcmUpOwogc3RhdGljIERFVklDRV9BVFRSKGF2YWlsYWJpbGl0eSwgMDQ0NCwgYXZhaWxhYmxlX3Nob3csIE5VTEwpOwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqIHN1YmNoX2F0dHJzW10gPSB7CitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqaW9fc3ViY2hhbm5lbF9hdHRyc1tdID0gewogCSZkZXZfYXR0cl9jaHBpZHMuYXR0ciwKIAkmZGV2X2F0dHJfcGltcGFtcG9tLmF0dHIsCiAJTlVMTCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHN1YmNoX2F0dHJfZ3JvdXAgPSB7Ci0JLmF0dHJzID0gc3ViY2hfYXR0cnMsCi19OwotCi1zdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpzdWJjaF9hdHRyX2dyb3Vwc1tdID0gewotCSZzdWJjaF9hdHRyX2dyb3VwLAotCU5VTEwsCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBpb19zdWJjaGFubmVsX2F0dHJfZ3JvdXAgPSB7CisJLmF0dHJzID0gaW9fc3ViY2hhbm5lbF9hdHRycywKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICogY2N3ZGV2X2F0dHJzW10gPSB7CkBAIC03OTAsNyArNzg5LDcgQEAKIAlzY2hfc2V0X2NkZXYoc2NoLCBjZGV2KTsKIAljZGV2LT5wcml2YXRlLT5zY2hpZCA9IHNjaC0+c2NoaWQ7CiAJY2Rldi0+Y2N3bG9jayA9IHNjaC0+bG9jazsKLQlkZXZpY2VfdHJpZ2dlcl9yZXByb2JlKHNjaCk7CisJY2N3X2RldmljZV90cmlnZ2VyX3JlcHJvYmUoY2Rldik7CiAJc3Bpbl91bmxvY2tfaXJxKHNjaC0+bG9jayk7CiB9CiAKQEAgLTEwMzcsNyArMTAzNiw2IEBACiAJc3RydWN0IGNjd19kZXZpY2VfcHJpdmF0ZSAqcHJpdjsKIAogCXNjaF9zZXRfY2RldihzY2gsIGNkZXYpOwotCXNjaC0+ZHJpdmVyID0gJmlvX3N1YmNoYW5uZWxfZHJpdmVyOwogCWNkZXYtPmNjd2xvY2sgPSBzY2gtPmxvY2s7CiAKIAkvKiBJbml0IHByaXZhdGUgZGF0YS4gKi8KQEAgLTExMjIsOCArMTEyMCwzMyBAQAogCQlkZXZfZnNtX2V2ZW50KGNkZXYsIERFVl9FVkVOVF9JTlRFUlJVUFQpOwogfQogCi1zdGF0aWMgaW50Ci1pb19zdWJjaGFubmVsX3Byb2JlIChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQorc3RhdGljIHZvaWQgaW9fc3ViY2hhbm5lbF9pbml0X2ZpZWxkcyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCWlmIChjaW9faXNfY29uc29sZShzY2gtPnNjaGlkKSkKKwkJc2NoLT5vcG0gPSAweGZmOworCWVsc2UKKwkJc2NoLT5vcG0gPSBjaHBfZ2V0X3NjaF9vcG0oc2NoKTsKKwlzY2gtPmxwbSA9IHNjaC0+c2NoaWIucG1jdy5wYW0gJiBzY2gtPm9wbTsKKwlzY2gtPmlzYyA9IGNpb19pc19jb25zb2xlKHNjaC0+c2NoaWQpID8gQ09OU09MRV9JU0MgOiBJT19TQ0hfSVNDOworCisJQ0lPX01TR19FVkVOVCg2LCAiRGV0ZWN0ZWQgZGV2aWNlICUwNHggb24gc3ViY2hhbm5lbCAwLiV4LiUwNFgiCisJCSAgICAgICIgLSBQSU0gPSAlMDJYLCBQQU0gPSAlMDJYLCBQT00gPSAlMDJYXG4iLAorCQkgICAgICBzY2gtPnNjaGliLnBtY3cuZGV2LCBzY2gtPnNjaGlkLnNzaWQsCisJCSAgICAgIHNjaC0+c2NoaWQuc2NoX25vLCBzY2gtPnNjaGliLnBtY3cucGltLAorCQkgICAgICBzY2gtPnNjaGliLnBtY3cucGFtLCBzY2gtPnNjaGliLnBtY3cucG9tKTsKKwkvKiBJbml0aWFsbHkgc2V0IHVwIHNvbWUgZmllbGRzIGluIHRoZSBwbWN3LiAqLworCXNjaC0+c2NoaWIucG1jdy5lbmEgPSAwOworCXNjaC0+c2NoaWIucG1jdy5jc2Vuc2UgPSAxOwkvKiBjb25jdXJyZW50IHNlbnNlICovCisJaWYgKChzY2gtPmxwbSAmIChzY2gtPmxwbSAtIDEpKSAhPSAwKQorCQlzY2gtPnNjaGliLnBtY3cubXAgPSAxOyAvKiBtdWx0aXBhdGggbW9kZSAqLworCS8qIGNsZWFuIHVwIHBvc3NpYmxlIHJlc2lkdWFsIGNtZiBzdHVmZiAqLworCXNjaC0+c2NoaWIucG1jdy5tbWUgPSAwOworCXNjaC0+c2NoaWIucG1jdy5tYmZjID0gMDsKKwlzY2gtPnNjaGliLnBtY3cubWJpID0gMDsKKwlzY2gtPnNjaGliLm1iYSA9IDA7Cit9CisKK3N0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9wcm9iZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQogewogCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwogCWludCByYzsKQEAgLTExMzIsMTEgKzExNTUsMjEgQEAKIAogCWNkZXYgPSBzY2hfZ2V0X2NkZXYoc2NoKTsKIAlpZiAoY2RldikgeworCQlyYyA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmc2NoLT5kZXYua29iaiwKKwkJCQkJJmlvX3N1YmNoYW5uZWxfYXR0cl9ncm91cCk7CisJCWlmIChyYykKKwkJCUNJT19NU0dfRVZFTlQoMCwgIkZhaWxlZCB0byBjcmVhdGUgaW8gc3ViY2hhbm5lbCAiCisJCQkJICAgICAgImF0dHJpYnV0ZXMgZm9yIHN1YmNoYW5uZWwgIgorCQkJCSAgICAgICIwLiV4LiUwNHggKHJjPSVkKVxuIiwKKwkJCQkgICAgICBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCByYyk7CiAJCS8qCiAJCSAqIFRoaXMgc3ViY2hhbm5lbCBhbHJlYWR5IGhhcyBhbiBhc3NvY2lhdGVkIGNjd19kZXZpY2UuCi0JCSAqIFJlZ2lzdGVyIGl0IGFuZCBleGl0LiBUaGlzIGhhcHBlbnMgZm9yIGFsbCBlYXJseQotCQkgKiBkZXZpY2UsIGUuZy4gdGhlIGNvbnNvbGUuCisJCSAqIFRocm93IHRoZSBkZWxheWVkIHVldmVudCBmb3IgdGhlIHN1YmNoYW5uZWwsIHJlZ2lzdGVyCisJCSAqIHRoZSBjY3dfZGV2aWNlIGFuZCBleGl0LiBUaGlzIGhhcHBlbnMgZm9yIGFsbCBlYXJseQorCQkgKiBkZXZpY2VzLCBlLmcuIHRoZSBjb25zb2xlLgogCQkgKi8KKwkJc2NoLT5kZXYudWV2ZW50X3N1cHByZXNzID0gMDsKKwkJa29iamVjdF91ZXZlbnQoJnNjaC0+ZGV2LmtvYmosIEtPQkpfQUREKTsKIAkJY2Rldi0+ZGV2Lmdyb3VwcyA9IGNjd2Rldl9hdHRyX2dyb3VwczsKIAkJZGV2aWNlX2luaXRpYWxpemUoJmNkZXYtPmRldik7CiAJCWNjd19kZXZpY2VfcmVnaXN0ZXIoY2Rldik7CkBAIC0xMTUyLDE3ICsxMTg1LDI0IEBACiAJCQlnZXRfZGV2aWNlKCZjZGV2LT5kZXYpOwogCQlyZXR1cm4gMDsKIAl9CisJaW9fc3ViY2hhbm5lbF9pbml0X2ZpZWxkcyhzY2gpOwogCS8qCiAJICogRmlyc3QgY2hlY2sgaWYgYSBmaXR0aW5nIGRldmljZSBtYXkgYmUgZm91bmQgYW1vbmdzdCB0aGUKIAkgKiBkaXNjb25uZWN0ZWQgZGV2aWNlcyBvciBpbiB0aGUgb3JwaGFuYWdlLgogCSAqLwogCWRldl9pZC5kZXZubyA9IHNjaC0+c2NoaWIucG1jdy5kZXY7CiAJZGV2X2lkLnNzaWQgPSBzY2gtPnNjaGlkLnNzaWQ7CisJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnNjaC0+ZGV2LmtvYmosCisJCQkJJmlvX3N1YmNoYW5uZWxfYXR0cl9ncm91cCk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CiAJLyogQWxsb2NhdGUgSS9PIHN1YmNoYW5uZWwgcHJpdmF0ZSBkYXRhLiAqLwogCXNjaC0+cHJpdmF0ZSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBpb19zdWJjaGFubmVsX3ByaXZhdGUpLAogCQkJICAgICAgIEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKLQlpZiAoIXNjaC0+cHJpdmF0ZSkKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKCFzY2gtPnByaXZhdGUpIHsKKwkJcmMgPSAtRU5PTUVNOworCQlnb3RvIG91dF9lcnI7CisJfQogCWNkZXYgPSBnZXRfZGlzY19jY3dkZXZfYnlfZGV2X2lkKCZkZXZfaWQsIE5VTEwpOwogCWlmICghY2RldikKIAkJY2RldiA9IGdldF9vcnBoYW5lZF9jY3dkZXZfYnlfZGV2X2lkKHRvX2NzcyhzY2gtPmRldi5wYXJlbnQpLApAQCAtMTE4MSw4ICsxMjIxLDggQEAKIAl9CiAJY2RldiA9IGlvX3N1YmNoYW5uZWxfY3JlYXRlX2Njd2RldihzY2gpOwogCWlmIChJU19FUlIoY2RldikpIHsKLQkJa2ZyZWUoc2NoLT5wcml2YXRlKTsKLQkJcmV0dXJuIFBUUl9FUlIoY2Rldik7CisJCXJjID0gUFRSX0VSUihjZGV2KTsKKwkJZ290byBvdXRfZXJyOwogCX0KIAlyYyA9IGlvX3N1YmNoYW5uZWxfcmVjb2coY2Rldiwgc2NoKTsKIAlpZiAocmMpIHsKQEAgLTExOTEsOSArMTIzMSwxMiBAQAogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOwogCQlpZiAoY2Rldi0+ZGV2LnJlbGVhc2UpCiAJCQljZGV2LT5kZXYucmVsZWFzZSgmY2Rldi0+ZGV2KTsKLQkJa2ZyZWUoc2NoLT5wcml2YXRlKTsKKwkJZ290byBvdXRfZXJyOwogCX0KLQorCXJldHVybiAwOworb3V0X2VycjoKKwlrZnJlZShzY2gtPnByaXZhdGUpOworCXN5c2ZzX3JlbW92ZV9ncm91cCgmc2NoLT5kZXYua29iaiwgJmlvX3N1YmNoYW5uZWxfYXR0cl9ncm91cCk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC0xMjE0LDYgKzEyNTcsNyBAQAogCWNjd19kZXZpY2VfdW5yZWdpc3RlcihjZGV2KTsKIAlwdXRfZGV2aWNlKCZjZGV2LT5kZXYpOwogCWtmcmVlKHNjaC0+cHJpdmF0ZSk7CisJc3lzZnNfcmVtb3ZlX2dyb3VwKCZzY2gtPmRldi5rb2JqLCAmaW9fc3ViY2hhbm5lbF9hdHRyX2dyb3VwKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTIyNCwxMSArMTI2OCw3IEBACiAJY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwogCWlmICghY2RldikKIAkJcmV0dXJuIDA7Ci0JaWYgKCFjZGV2LT5kcnYpCi0JCXJldHVybiAwOwotCWlmICghY2Rldi0+b25saW5lKQotCQlyZXR1cm4gMDsKLQlyZXR1cm4gY2Rldi0+ZHJ2LT5ub3RpZnkgPyBjZGV2LT5kcnYtPm5vdGlmeShjZGV2LCBldmVudCkgOiAwOworCXJldHVybiBjY3dfZGV2aWNlX25vdGlmeShjZGV2LCBldmVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIGlvX3N1YmNoYW5uZWxfdmVyaWZ5KHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCkBAIC0xMjQwLDIwICsxMjgwLDk0IEBACiAJCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX1ZFUklGWSk7CiB9CiAKLXN0YXRpYyB2b2lkIGlvX3N1YmNoYW5uZWxfaW90ZXJtKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCitzdGF0aWMgaW50IGNoZWNrX2Zvcl9pb19vbl9wYXRoKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIGludCBtYXNrKQoreworCWludCBjYzsKKworCWNjID0gc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpOworCWlmIChjYykKKwkJcmV0dXJuIDA7CisJaWYgKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmJiBzY2gtPnNjaGliLnBtY3cubHB1bSA9PSBtYXNrKQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgdGVybWluYXRlX2ludGVybmFsX2lvKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsCisJCQkJICBzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKK3sKKwlpZiAoY2lvX2NsZWFyKHNjaCkpIHsKKwkJLyogUmVjaGVjayBkZXZpY2UgaW4gY2FzZSBjbGVhciBmYWlsZWQuICovCisJCXNjaC0+bHBtID0gMDsKKwkJaWYgKGNkZXYtPm9ubGluZSkKKwkJCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX1ZFUklGWSk7CisJCWVsc2UKKwkJCWNzc19zY2hlZHVsZV9ldmFsKHNjaC0+c2NoaWQpOworCQlyZXR1cm47CisJfQorCWNkZXYtPnByaXZhdGUtPnN0YXRlID0gREVWX1NUQVRFX0NMRUFSX1ZFUklGWTsKKwkvKiBSZXF1ZXN0IHJldHJ5IG9mIGludGVybmFsIG9wZXJhdGlvbi4gKi8KKwljZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSA9IDE7CisJLyogQ2FsbCBoYW5kbGVyLiAqLworCWlmIChjZGV2LT5oYW5kbGVyKQorCQljZGV2LT5oYW5kbGVyKGNkZXYsIGNkZXYtPnByaXZhdGUtPmludHBhcm0sCisJCQkgICAgICBFUlJfUFRSKC1FSU8pKTsKK30KKworc3RhdGljIHZvaWQgaW9fc3ViY2hhbm5lbF90ZXJtaW5hdGVfcGF0aChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCB1OCBtYXNrKQogewogCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwogCiAJY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwogCWlmICghY2RldikKIAkJcmV0dXJuOwotCS8qIEludGVybmFsIEkvTyB3aWxsIGJlIHJldHJpZWQgYnkgdGhlIGludGVycnVwdCBoYW5kbGVyLiAqLwotCWlmIChjZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSkKLQkJcmV0dXJuOwotCWNkZXYtPnByaXZhdGUtPnN0YXRlID0gREVWX1NUQVRFX0NMRUFSX1ZFUklGWTsKLQlpZiAoY2Rldi0+aGFuZGxlcikKLQkJY2Rldi0+aGFuZGxlcihjZGV2LCBjZGV2LT5wcml2YXRlLT5pbnRwYXJtLAotCQkJICAgICAgRVJSX1BUUigtRUlPKSk7CisJaWYgKGNoZWNrX2Zvcl9pb19vbl9wYXRoKHNjaCwgbWFzaykpIHsKKwkJaWYgKGNkZXYtPnByaXZhdGUtPnN0YXRlID09IERFVl9TVEFURV9PTkxJTkUpCisJCQljY3dfZGV2aWNlX2tpbGxfaW8oY2Rldik7CisJCWVsc2UgeworCQkJdGVybWluYXRlX2ludGVybmFsX2lvKHNjaCwgY2Rldik7CisJCQkvKiBSZS1zdGFydCBwYXRoIHZlcmlmaWNhdGlvbi4gKi8KKwkJCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX1ZFUklGWSk7CisJCX0KKwl9IGVsc2UKKwkJLyogdHJpZ2dlciBwYXRoIHZlcmlmaWNhdGlvbi4gKi8KKwkJZGV2X2ZzbV9ldmVudChjZGV2LCBERVZfRVZFTlRfVkVSSUZZKTsKKworfQorCitzdGF0aWMgaW50IGlvX3N1YmNoYW5uZWxfY2hwX2V2ZW50KHN0cnVjdCBzdWJjaGFubmVsICpzY2gsCisJCQkJICAgc3RydWN0IGNocF9saW5rICpsaW5rLCBpbnQgZXZlbnQpCit7CisJaW50IG1hc2s7CisKKwltYXNrID0gY2hwX3NzZF9nZXRfbWFzaygmc2NoLT5zc2RfaW5mbywgbGluayk7CisJaWYgKCFtYXNrKQorCQlyZXR1cm4gMDsKKwlzd2l0Y2ggKGV2ZW50KSB7CisJY2FzZSBDSFBfVkFSWV9PRkY6CisJCXNjaC0+b3BtICY9IH5tYXNrOworCQlzY2gtPmxwbSAmPSB+bWFzazsKKwkJaW9fc3ViY2hhbm5lbF90ZXJtaW5hdGVfcGF0aChzY2gsIG1hc2spOworCQlicmVhazsKKwljYXNlIENIUF9WQVJZX09OOgorCQlzY2gtPm9wbSB8PSBtYXNrOworCQlzY2gtPmxwbSB8PSBtYXNrOworCQlpb19zdWJjaGFubmVsX3ZlcmlmeShzY2gpOworCQlicmVhazsKKwljYXNlIENIUF9PRkZMSU5FOgorCQlpZiAoc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpKQorCQkJcmV0dXJuIC1FTlhJTzsKKwkJaWYgKCFjc3Nfc2NoX2lzX3ZhbGlkKCZzY2gtPnNjaGliKSkKKwkJCXJldHVybiAtRU5PREVWOworCQlpb19zdWJjaGFubmVsX3Rlcm1pbmF0ZV9wYXRoKHNjaCwgbWFzayk7CisJCWJyZWFrOworCWNhc2UgQ0hQX09OTElORToKKwkJaWYgKHN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKSkKKwkJCXJldHVybiAtRU5YSU87CisJCXNjaC0+bHBtIHw9IG1hc2sgJiBzY2gtPm9wbTsKKwkJaW9fc3ViY2hhbm5lbF92ZXJpZnkoc2NoKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTI4NSw2ICsxMzk5LDE5NSBAQAogCWNpb19kaXNhYmxlX3N1YmNoYW5uZWwoc2NoKTsKIH0KIAorc3RhdGljIGludCBpb19zdWJjaGFubmVsX2dldF9zdGF0dXMoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlzdHJ1Y3Qgc2NoaWIgc2NoaWI7CisKKwlpZiAoc3RzY2goc2NoLT5zY2hpZCwgJnNjaGliKSB8fCAhc2NoaWIucG1jdy5kbnYpCisJCXJldHVybiBDSU9fR09ORTsKKwlpZiAoc2NoLT5zY2hpYi5wbWN3LmRudiAmJiAoc2NoaWIucG1jdy5kZXYgIT0gc2NoLT5zY2hpYi5wbWN3LmRldikpCisJCXJldHVybiBDSU9fUkVWQUxJREFURTsKKwlpZiAoIXNjaC0+bHBtKQorCQlyZXR1cm4gQ0lPX05PX1BBVEg7CisJcmV0dXJuIENJT19PUEVSOworfQorCitzdGF0aWMgaW50IGRldmljZV9pc19kaXNjb25uZWN0ZWQoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCit7CisJaWYgKCFjZGV2KQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gKGNkZXYtPnByaXZhdGUtPnN0YXRlID09IERFVl9TVEFURV9ESVNDT05ORUNURUQgfHwKKwkJY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRF9TRU5TRV9JRCk7Cit9CisKK3N0YXRpYyBpbnQgcmVjb3ZlcnlfY2hlY2soc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2ID0gdG9fY2N3ZGV2KGRldik7CisJaW50ICpyZWRvID0gZGF0YTsKKworCXNwaW5fbG9ja19pcnEoY2Rldi0+Y2N3bG9jayk7CisJc3dpdGNoIChjZGV2LT5wcml2YXRlLT5zdGF0ZSkgeworCWNhc2UgREVWX1NUQVRFX0RJU0NPTk5FQ1RFRDoKKwkJQ0lPX01TR19FVkVOVCgzLCAicmVjb3Zlcnk6IHRyaWdnZXIgMC4leC4lMDR4XG4iLAorCQkJICAgICAgY2Rldi0+cHJpdmF0ZS0+ZGV2X2lkLnNzaWQsCisJCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuZGV2bm8pOworCQlkZXZfZnNtX2V2ZW50KGNkZXYsIERFVl9FVkVOVF9WRVJJRlkpOworCQkqcmVkbyA9IDE7CisJCWJyZWFrOworCWNhc2UgREVWX1NUQVRFX0RJU0NPTk5FQ1RFRF9TRU5TRV9JRDoKKwkJKnJlZG8gPSAxOworCQlicmVhazsKKwl9CisJc3Bpbl91bmxvY2tfaXJxKGNkZXYtPmNjd2xvY2spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHJlY292ZXJ5X3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKnVudXNlZCkKK3sKKwlpbnQgcmVkbyA9IDA7CisKKwlidXNfZm9yX2VhY2hfZGV2KCZjY3dfYnVzX3R5cGUsIE5VTEwsICZyZWRvLCByZWNvdmVyeV9jaGVjayk7CisJaWYgKHJlZG8pIHsKKwkJc3Bpbl9sb2NrX2lycSgmcmVjb3ZlcnlfbG9jayk7CisJCWlmICghdGltZXJfcGVuZGluZygmcmVjb3ZlcnlfdGltZXIpKSB7CisJCQlpZiAocmVjb3ZlcnlfcGhhc2UgPCBBUlJBWV9TSVpFKHJlY292ZXJ5X2RlbGF5KSAtIDEpCisJCQkJcmVjb3ZlcnlfcGhhc2UrKzsKKwkJCW1vZF90aW1lcigmcmVjb3ZlcnlfdGltZXIsIGppZmZpZXMgKworCQkJCSAgcmVjb3ZlcnlfZGVsYXlbcmVjb3ZlcnlfcGhhc2VdICogSFopOworCQl9CisJCXNwaW5fdW5sb2NrX2lycSgmcmVjb3ZlcnlfbG9jayk7CisJfSBlbHNlCisJCUNJT19NU0dfRVZFTlQoNCwgInJlY292ZXJ5OiBlbmRcbiIpOworfQorCitzdGF0aWMgREVDTEFSRV9XT1JLKHJlY292ZXJ5X3dvcmssIHJlY292ZXJ5X3dvcmtfZnVuYyk7CisKK3N0YXRpYyB2b2lkIHJlY292ZXJ5X2Z1bmModW5zaWduZWQgbG9uZyBkYXRhKQoreworCS8qCisJICogV2UgY2FuJ3QgZG8gb3VyIHJlY292ZXJ5IGluIHNvZnRpcnEgY29udGV4dCBhbmQgaXQncyBub3QKKwkgKiBwZXJmb3JtYW5jZSBjcml0aWNhbCwgc28gd2Ugc2NoZWR1bGUgaXQuCisJICovCisJc2NoZWR1bGVfd29yaygmcmVjb3Zlcnlfd29yayk7Cit9CisKK3N0YXRpYyB2b2lkIGNjd19kZXZpY2Vfc2NoZWR1bGVfcmVjb3Zlcnkodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJQ0lPX01TR19FVkVOVCg0LCAicmVjb3Zlcnk6IHNjaGVkdWxlXG4iKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcmVjb3ZlcnlfbG9jaywgZmxhZ3MpOworCWlmICghdGltZXJfcGVuZGluZygmcmVjb3ZlcnlfdGltZXIpIHx8IChyZWNvdmVyeV9waGFzZSAhPSAwKSkgeworCQlyZWNvdmVyeV9waGFzZSA9IDA7CisJCW1vZF90aW1lcigmcmVjb3ZlcnlfdGltZXIsIGppZmZpZXMgKyByZWNvdmVyeV9kZWxheVswXSAqIEhaKTsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmVjb3ZlcnlfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBkZXZpY2Vfc2V0X2Rpc2Nvbm5lY3RlZChzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKK3sKKwlpZiAoIWNkZXYpCisJCXJldHVybjsKKwljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOworCWNkZXYtPnByaXZhdGUtPmZsYWdzLmZha2VfaXJiID0gMDsKKwljZGV2LT5wcml2YXRlLT5zdGF0ZSA9IERFVl9TVEFURV9ESVNDT05ORUNURUQ7CisJaWYgKGNkZXYtPm9ubGluZSkKKwkJY2N3X2RldmljZV9zY2hlZHVsZV9yZWNvdmVyeSgpOworfQorCitzdGF0aWMgaW50IGlvX3N1YmNoYW5uZWxfc2NoX2V2ZW50KHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIGludCBzbG93KQoreworCWludCBldmVudCwgcmV0LCBkaXNjOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJZW51bSB7IE5PTkUsIFVOUkVHSVNURVIsIFVOUkVHSVNURVJfUFJPQkUsIFJFUFJPQkUgfSBhY3Rpb247CisJc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7CisKKwlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKKwljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7CisJZGlzYyA9IGRldmljZV9pc19kaXNjb25uZWN0ZWQoY2Rldik7CisJaWYgKGRpc2MgJiYgc2xvdykgeworCQkvKiBEaXNjb25uZWN0ZWQgZGV2aWNlcyBhcmUgZXZhbHVhdGVkIGRpcmVjdGx5IG9ubHkuKi8KKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIDA7CisJfQorCS8qIE5vIGludGVycnVwdCBhZnRlciBtYWNoaW5lIGNoZWNrIC0ga2lsbCBwZW5kaW5nIHRpbWVycy4gKi8KKwlpZiAoY2RldikKKwkJY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKKwlpZiAoIWRpc2MgJiYgIXNsb3cpIHsKKwkJLyogTm9uLWRpc2Nvbm5lY3RlZCBkZXZpY2VzIGFyZSBldmFsdWF0ZWQgb24gdGhlIHNsb3cgcGF0aC4gKi8KKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIC1FQUdBSU47CisJfQorCWV2ZW50ID0gaW9fc3ViY2hhbm5lbF9nZXRfc3RhdHVzKHNjaCk7CisJQ0lPX01TR19FVkVOVCg0LCAiRXZhbHVhdGluZyBzY2hpZCAwLiV4LiUwNHgsIGV2ZW50ICVkLCAlcywgJXMgcGF0aC5cbiIsCisJCSAgICAgIHNjaC0+c2NoaWQuc3NpZCwgc2NoLT5zY2hpZC5zY2hfbm8sIGV2ZW50LAorCQkgICAgICBkaXNjID8gImRpc2Nvbm5lY3RlZCIgOiAibm9ybWFsIiwKKwkJICAgICAgc2xvdyA/ICJzbG93IiA6ICJmYXN0Iik7CisJLyogQW5hbHl6ZSBzdWJjaGFubmVsIHN0YXR1cy4gKi8KKwlhY3Rpb24gPSBOT05FOworCXN3aXRjaCAoZXZlbnQpIHsKKwljYXNlIENJT19OT19QQVRIOgorCQlpZiAoZGlzYykgeworCQkJLyogQ2hlY2sgaWYgcGF0aHMgaGF2ZSBiZWNvbWUgYXZhaWxhYmxlLiAqLworCQkJYWN0aW9uID0gUkVQUk9CRTsKKwkJCWJyZWFrOworCQl9CisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgQ0lPX0dPTkU6CisJCS8qIFByZXZlbnQgdW53YW50ZWQgZWZmZWN0cyB3aGVuIG9wZW5pbmcgbG9jay4gKi8KKwkJY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzY2gpOworCQlkZXZpY2Vfc2V0X2Rpc2Nvbm5lY3RlZChjZGV2KTsKKwkJLyogQXNrIGRyaXZlciB3aGF0IHRvIGRvIHdpdGggZGV2aWNlLiAqLworCQlhY3Rpb24gPSBVTlJFR0lTVEVSOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOworCQlyZXQgPSBpb19zdWJjaGFubmVsX25vdGlmeShzY2gsIGV2ZW50KTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoc2NoLT5sb2NrLCBmbGFncyk7CisJCWlmIChyZXQpCisJCQlhY3Rpb24gPSBOT05FOworCQlicmVhazsKKwljYXNlIENJT19SRVZBTElEQVRFOgorCQkvKiBEZXZpY2Ugd2lsbCBiZSByZW1vdmVkLCBzbyBubyBub3RpZnkgbmVjZXNzYXJ5LiAqLworCQlpZiAoZGlzYykKKwkJCS8qIFJlcHJvYmUgYmVjYXVzZSBpbW1lZGlhdGUgdW5yZWdpc3RlciBtaWdodCBibG9jay4gKi8KKwkJCWFjdGlvbiA9IFJFUFJPQkU7CisJCWVsc2UKKwkJCWFjdGlvbiA9IFVOUkVHSVNURVJfUFJPQkU7CisJCWJyZWFrOworCWNhc2UgQ0lPX09QRVI6CisJCWlmIChkaXNjKQorCQkJLyogR2V0IGRldmljZSBvcGVyYXRpb25hbCBhZ2Fpbi4gKi8KKwkJCWFjdGlvbiA9IFJFUFJPQkU7CisJCWJyZWFrOworCX0KKwkvKiBQZXJmb3JtIGFjdGlvbi4gKi8KKwlyZXQgPSAwOworCXN3aXRjaCAoYWN0aW9uKSB7CisJY2FzZSBVTlJFR0lTVEVSOgorCWNhc2UgVU5SRUdJU1RFUl9QUk9CRToKKwkJLyogVW5yZWdpc3RlciBkZXZpY2UgKHdpbGwgdXNlIHN1YmNoYW5uZWwgbG9jaykuICovCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7CisJCWNzc19zY2hfZGV2aWNlX3VucmVnaXN0ZXIoc2NoKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoc2NoLT5sb2NrLCBmbGFncyk7CisKKwkJLyogUmVzZXQgaW50cGFybSB0byB6ZXJvZXMuICovCisJCXNjaC0+c2NoaWIucG1jdy5pbnRwYXJtID0gMDsKKwkJY2lvX21vZGlmeShzY2gpOworCQlicmVhazsKKwljYXNlIFJFUFJPQkU6CisJCWNjd19kZXZpY2VfdHJpZ2dlcl9yZXByb2JlKGNkZXYpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKKwkvKiBQcm9iZSBpZiBuZWNlc3NhcnkuICovCisJaWYgKGFjdGlvbiA9PSBVTlJFR0lTVEVSX1BST0JFKQorCQlyZXQgPSBjc3NfcHJvYmVfZGV2aWNlKHNjaC0+c2NoaWQpOworCisJcmV0dXJuIHJldDsKK30KKwogI2lmZGVmIENPTkZJR19DQ1dfQ09OU09MRQogc3RhdGljIHN0cnVjdCBjY3dfZGV2aWNlIGNvbnNvbGVfY2RldjsKIHN0YXRpYyBzdHJ1Y3QgY2N3X2RldmljZV9wcml2YXRlIGNvbnNvbGVfcHJpdmF0ZTsKQEAgLTEyOTcsMTQgKzE2MDAsMTYgQEAKIAlyZXR1cm4gJmNjd19jb25zb2xlX2xvY2s7CiB9CiAKLXN0YXRpYyBpbnQKLWNjd19kZXZpY2VfY29uc29sZV9lbmFibGUgKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQorc3RhdGljIGludCBjY3dfZGV2aWNlX2NvbnNvbGVfZW5hYmxlKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LAorCQkJCSAgICAgc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKIHsKIAlpbnQgcmM7CiAKIAkvKiBBdHRhY2ggc3ViY2hhbm5lbCBwcml2YXRlIGRhdGEuICovCiAJc2NoLT5wcml2YXRlID0gY2lvX2dldF9jb25zb2xlX3ByaXYoKTsKIAltZW1zZXQoc2NoLT5wcml2YXRlLCAwLCBzaXplb2Yoc3RydWN0IGlvX3N1YmNoYW5uZWxfcHJpdmF0ZSkpOworCWlvX3N1YmNoYW5uZWxfaW5pdF9maWVsZHMoc2NoKTsKKwlzY2gtPmRyaXZlciA9ICZpb19zdWJjaGFubmVsX2RyaXZlcjsKIAkvKiBJbml0aWFsaXplIHRoZSBjY3dfZGV2aWNlIHN0cnVjdHVyZS4gKi8KIAljZGV2LT5kZXYucGFyZW50PSAmc2NoLT5kZXY7CiAJcmMgPSBpb19zdWJjaGFubmVsX3JlY29nKGNkZXYsIHNjaCk7CkBAIC0xNTE1LDcxICsxODIwLDYgQEAKIAlyZXR1cm4gc2NoLT5zY2hpZDsKIH0KIAotc3RhdGljIGludCByZWNvdmVyeV9jaGVjayhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXYgPSB0b19jY3dkZXYoZGV2KTsKLQlpbnQgKnJlZG8gPSBkYXRhOwotCi0Jc3Bpbl9sb2NrX2lycShjZGV2LT5jY3dsb2NrKTsKLQlzd2l0Y2ggKGNkZXYtPnByaXZhdGUtPnN0YXRlKSB7Ci0JY2FzZSBERVZfU1RBVEVfRElTQ09OTkVDVEVEOgotCQlDSU9fTVNHX0VWRU5UKDQsICJyZWNvdmVyeTogdHJpZ2dlciAwLiV4LiUwNHhcbiIsCi0JCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuc3NpZCwKLQkJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubyk7Ci0JCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX1ZFUklGWSk7Ci0JCSpyZWRvID0gMTsKLQkJYnJlYWs7Ci0JY2FzZSBERVZfU1RBVEVfRElTQ09OTkVDVEVEX1NFTlNFX0lEOgotCQkqcmVkbyA9IDE7Ci0JCWJyZWFrOwotCX0KLQlzcGluX3VubG9ja19pcnEoY2Rldi0+Y2N3bG9jayk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgcmVjb3Zlcnlfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqdW51c2VkKQotewotCWludCByZWRvID0gMDsKLQotCWJ1c19mb3JfZWFjaF9kZXYoJmNjd19idXNfdHlwZSwgTlVMTCwgJnJlZG8sIHJlY292ZXJ5X2NoZWNrKTsKLQlpZiAocmVkbykgewotCQlzcGluX2xvY2tfaXJxKCZyZWNvdmVyeV9sb2NrKTsKLQkJaWYgKCF0aW1lcl9wZW5kaW5nKCZyZWNvdmVyeV90aW1lcikpIHsKLQkJCWlmIChyZWNvdmVyeV9waGFzZSA8IEFSUkFZX1NJWkUocmVjb3ZlcnlfZGVsYXkpIC0gMSkKLQkJCQlyZWNvdmVyeV9waGFzZSsrOwotCQkJbW9kX3RpbWVyKCZyZWNvdmVyeV90aW1lciwgamlmZmllcyArCi0JCQkJICByZWNvdmVyeV9kZWxheVtyZWNvdmVyeV9waGFzZV0gKiBIWik7Ci0JCX0KLQkJc3Bpbl91bmxvY2tfaXJxKCZyZWNvdmVyeV9sb2NrKTsKLQl9IGVsc2UKLQkJQ0lPX01TR19FVkVOVCg0LCAicmVjb3Zlcnk6IGVuZFxuIik7Ci19Ci0KLXN0YXRpYyBERUNMQVJFX1dPUksocmVjb3Zlcnlfd29yaywgcmVjb3Zlcnlfd29ya19mdW5jKTsKLQotc3RhdGljIHZvaWQgcmVjb3ZlcnlfZnVuYyh1bnNpZ25lZCBsb25nIGRhdGEpCi17Ci0JLyoKLQkgKiBXZSBjYW4ndCBkbyBvdXIgcmVjb3ZlcnkgaW4gc29mdGlycSBjb250ZXh0IGFuZCBpdCdzIG5vdAotCSAqIHBlcmZvcm1hbmNlIGNyaXRpY2FsLCBzbyB3ZSBzY2hlZHVsZSBpdC4KLQkgKi8KLQlzY2hlZHVsZV93b3JrKCZyZWNvdmVyeV93b3JrKTsKLX0KLQotdm9pZCBjY3dfZGV2aWNlX3NjaGVkdWxlX3JlY292ZXJ5KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCUNJT19NU0dfRVZFTlQoNCwgInJlY292ZXJ5OiBzY2hlZHVsZVxuIik7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJnJlY292ZXJ5X2xvY2ssIGZsYWdzKTsKLQlpZiAoIXRpbWVyX3BlbmRpbmcoJnJlY292ZXJ5X3RpbWVyKSB8fCAocmVjb3ZlcnlfcGhhc2UgIT0gMCkpIHsKLQkJcmVjb3ZlcnlfcGhhc2UgPSAwOwotCQltb2RfdGltZXIoJnJlY292ZXJ5X3RpbWVyLCBqaWZmaWVzICsgcmVjb3ZlcnlfZGVsYXlbMF0gKiBIWik7Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJlY292ZXJ5X2xvY2ssIGZsYWdzKTsKLX0KLQogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogRVhQT1JUX1NZTUJPTChjY3dfZGV2aWNlX3NldF9vbmxpbmUpOwogRVhQT1JUX1NZTUJPTChjY3dfZGV2aWNlX3NldF9vZmZsaW5lKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmggYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZS5oCmluZGV4IGNiMDgwOTIuLjk4MDBhODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmgKKysrIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuaApAQCAtODgsOCArODgsNiBAQAogaW50IGNjd19kZXZpY2Vfb25saW5lKHN0cnVjdCBjY3dfZGV2aWNlICopOwogaW50IGNjd19kZXZpY2Vfb2ZmbGluZShzdHJ1Y3QgY2N3X2RldmljZSAqKTsKIAotdm9pZCBjY3dfZGV2aWNlX3NjaGVkdWxlX3JlY292ZXJ5KHZvaWQpOwotCiAvKiBGdW5jdGlvbiBwcm90b3R5cGVzIGZvciBkZXZpY2Ugc3RhdHVzIGFuZCBiYXNpYyBzZW5zZSBzdHVmZi4gKi8KIHZvaWQgY2N3X2RldmljZV9hY2N1bXVsYXRlX2lyYihzdHJ1Y3QgY2N3X2RldmljZSAqLCBzdHJ1Y3QgaXJiICopOwogdm9pZCBjY3dfZGV2aWNlX2FjY3VtdWxhdGVfYmFzaWNfc2Vuc2Uoc3RydWN0IGNjd19kZXZpY2UgKiwgc3RydWN0IGlyYiAqKTsKQEAgLTExOCw2ICsxMTYsMTEgQEAKIAogaW50IGNjd19kZXZpY2Vfc3RsY2soc3RydWN0IGNjd19kZXZpY2UgKik7CiAKKy8qIEhlbHBlciBmdW5jdGlvbiBmb3IgbWFjaGluZSBjaGVjayBoYW5kbGluZy4gKi8KK3ZvaWQgY2N3X2RldmljZV90cmlnZ2VyX3JlcHJvYmUoc3RydWN0IGNjd19kZXZpY2UgKik7Cit2b2lkIGNjd19kZXZpY2Vfa2lsbF9pbyhzdHJ1Y3QgY2N3X2RldmljZSAqKTsKK2ludCBjY3dfZGV2aWNlX25vdGlmeShzdHJ1Y3QgY2N3X2RldmljZSAqLCBpbnQpOworCiAvKiBxZGlvIG5lZWRzIHRoaXMuICovCiB2b2lkIGNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoc3RydWN0IGNjd19kZXZpY2UgKiwgaW50KTsKIGV4dGVybiBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBjY3dfZGV2aWNlX2dldF9zdWJjaGFubmVsX2lkKHN0cnVjdCBjY3dfZGV2aWNlICopOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfZnNtLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9mc20uYwppbmRleCBlMjY4ZDVhLi44YjVmZTU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9mc20uYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9mc20uYwpAQCAtMiw4ICsyLDcgQEAKICAqIGRyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2ZzbS5jCiAgKiBmaW5pdGUgc3RhdGUgbWFjaGluZSBmb3IgZGV2aWNlIGhhbmRsaW5nCiAgKgotICogICAgQ29weXJpZ2h0IChDKSAyMDAyIElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILAotICoJCQkgSUJNIENvcnBvcmF0aW9uCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDIsMjAwOAogICogICAgQXV0aG9yKHMpOiBDb3JuZWxpYSBIdWNrIChjb3JuZWxpYS5odWNrQGRlLmlibS5jb20pCiAgKgkJIE1hcnRpbiBTY2h3aWRlZnNreSAoc2Nod2lkZWZza3lAZGUuaWJtLmNvbSkKICAqLwpAQCAtMjcsNjUgKzI2LDYgQEAKIAogc3RhdGljIGludCB0aW1lb3V0X2xvZ19lbmFibGVkOwogCi1pbnQKLWRldmljZV9pc19vbmxpbmUoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKLXsKLQlzdHJ1Y3QgY2N3X2RldmljZSAqY2RldjsKLQotCWNkZXYgPSBzY2hfZ2V0X2NkZXYoc2NoKTsKLQlpZiAoIWNkZXYpCi0JCXJldHVybiAwOwotCXJldHVybiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX09OTElORSk7Ci19Ci0KLWludAotZGV2aWNlX2lzX2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQotewotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwotCi0JY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwotCWlmICghY2RldikKLQkJcmV0dXJuIDA7Ci0JcmV0dXJuIChjZGV2LT5wcml2YXRlLT5zdGF0ZSA9PSBERVZfU1RBVEVfRElTQ09OTkVDVEVEIHx8Ci0JCWNkZXYtPnByaXZhdGUtPnN0YXRlID09IERFVl9TVEFURV9ESVNDT05ORUNURURfU0VOU0VfSUQpOwotfQotCi12b2lkCi1kZXZpY2Vfc2V0X2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQotewotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwotCi0JY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwotCWlmICghY2RldikKLQkJcmV0dXJuOwotCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7Ci0JY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuZmFrZV9pcmIgPSAwOwotCWNkZXYtPnByaXZhdGUtPnN0YXRlID0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRDsKLQlpZiAoY2Rldi0+b25saW5lKQotCQljY3dfZGV2aWNlX3NjaGVkdWxlX3JlY292ZXJ5KCk7Ci19Ci0KLXZvaWQgZGV2aWNlX3NldF9pbnRyZXRyeShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQotewotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwotCi0JY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwotCWlmICghY2RldikKLQkJcmV0dXJuOwotCWNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5ID0gMTsKLX0KLQotaW50IGRldmljZV90cmlnZ2VyX3ZlcmlmeShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQotewotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwotCi0JY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwotCWlmICghY2RldiB8fCAhY2Rldi0+b25saW5lKQotCQlyZXR1cm4gLUVJTlZBTDsKLQlkZXZfZnNtX2V2ZW50KGNkZXYsIERFVl9FVkVOVF9WRVJJRlkpOwotCXJldHVybiAwOwotfQotCiBzdGF0aWMgaW50IF9faW5pdCBjY3dfdGltZW91dF9sb2dfc2V0dXAoY2hhciAqdW51c2VkKQogewogCXRpbWVvdXRfbG9nX2VuYWJsZWQgPSAxOwpAQCAtOTksMzEgKzM5LDQzIEBACiAJc3RydWN0IHNjaGliIHNjaGliOwogCXN0cnVjdCBzdWJjaGFubmVsICpzY2g7CiAJc3RydWN0IGlvX3N1YmNoYW5uZWxfcHJpdmF0ZSAqcHJpdmF0ZTsKKwl1bmlvbiBvcmIgKm9yYjsKIAlpbnQgY2M7CiAKIAlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwogCXByaXZhdGUgPSB0b19pb19wcml2YXRlKHNjaCk7CisJb3JiID0gJnByaXZhdGUtPm9yYjsKIAljYyA9IHN0c2NoKHNjaC0+c2NoaWQsICZzY2hpYik7CiAKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IGNjdyBkZXZpY2UgdGltZW91dCBvY2N1cnJlZCBhdCAlbGx4LCAiCiAJICAgICAgICJkZXZpY2UgaW5mb3JtYXRpb246XG4iLCBnZXRfY2xvY2soKSk7CiAJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBvcmI6XG4iKTsKIAlwcmludF9oZXhfZHVtcChLRVJOX1dBUk5JTkcsICJjaW86ICAiLCBEVU1QX1BSRUZJWF9OT05FLCAxNiwgMSwKLQkJICAgICAgICZwcml2YXRlLT5vcmIsIHNpemVvZihwcml2YXRlLT5vcmIpLCAwKTsKKwkJICAgICAgIG9yYiwgc2l6ZW9mKCpvcmIpLCAwKTsKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IGNjdyBkZXZpY2UgYnVzIGlkOiAlc1xuIiwgY2Rldi0+ZGV2LmJ1c19pZCk7CiAJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBzdWJjaGFubmVsIGJ1cyBpZDogJXNcbiIsIHNjaC0+ZGV2LmJ1c19pZCk7CiAJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBzdWJjaGFubmVsIGxwbTogJTAyeCwgb3BtOiAlMDJ4LCAiCiAJICAgICAgICJ2cG06ICUwMnhcbiIsIHNjaC0+bHBtLCBzY2gtPm9wbSwgc2NoLT52cG0pOwogCi0JaWYgKCh2b2lkICopKGFkZHJfdClwcml2YXRlLT5vcmIuY3BhID09ICZwcml2YXRlLT5zZW5zZV9jY3cgfHwKLQkgICAgKHZvaWQgKikoYWRkcl90KXByaXZhdGUtPm9yYi5jcGEgPT0gY2Rldi0+cHJpdmF0ZS0+aWNjd3MpCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogbGFzdCBjaGFubmVsIHByb2dyYW0gKGludGVybik6XG4iKTsKLQllbHNlCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogbGFzdCBjaGFubmVsIHByb2dyYW06XG4iKTsKKwlpZiAob3JiLT50bS5iKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogb3JiIGluZGljYXRlcyB0cmFuc3BvcnQgbW9kZVxuIik7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogbGFzdCB0Y3c6XG4iKTsKKwkJcHJpbnRfaGV4X2R1bXAoS0VSTl9XQVJOSU5HLCAiY2lvOiAgIiwgRFVNUF9QUkVGSVhfTk9ORSwgMTYsIDEsCisJCQkgICAgICAgKHZvaWQgKikoYWRkcl90KW9yYi0+dG0udGN3LAorCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgdGN3KSwgMCk7CisJfSBlbHNlIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBvcmIgaW5kaWNhdGVzIGNvbW1hbmQgbW9kZVxuIik7CisJCWlmICgodm9pZCAqKShhZGRyX3Qpb3JiLT5jbWQuY3BhID09ICZwcml2YXRlLT5zZW5zZV9jY3cgfHwKKwkJICAgICh2b2lkICopKGFkZHJfdClvcmItPmNtZC5jcGEgPT0gY2Rldi0+cHJpdmF0ZS0+aWNjd3MpCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IGxhc3QgY2hhbm5lbCBwcm9ncmFtICIKKwkJCSAgICAgICAiKGludGVybik6XG4iKTsKKwkJZWxzZQorCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBsYXN0IGNoYW5uZWwgcHJvZ3JhbTpcbiIpOwogCi0JcHJpbnRfaGV4X2R1bXAoS0VSTl9XQVJOSU5HLCAiY2lvOiAgIiwgRFVNUF9QUkVGSVhfTk9ORSwgMTYsIDEsCi0JCSAgICAgICAodm9pZCAqKShhZGRyX3QpcHJpdmF0ZS0+b3JiLmNwYSwKLQkJICAgICAgIHNpemVvZihzdHJ1Y3QgY2N3MSksIDApOworCQlwcmludF9oZXhfZHVtcChLRVJOX1dBUk5JTkcsICJjaW86ICAiLCBEVU1QX1BSRUZJWF9OT05FLCAxNiwgMSwKKwkJCSAgICAgICAodm9pZCAqKShhZGRyX3Qpb3JiLT5jbWQuY3BhLAorCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgY2N3MSksIDApOworCX0KIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IGNjdyBkZXZpY2Ugc3RhdGU6ICVkXG4iLAogCSAgICAgICBjZGV2LT5wcml2YXRlLT5zdGF0ZSk7CiAJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBzdG9yZSBzdWJjaGFubmVsIHJldHVybmVkOiBjYz0lZFxuIiwgY2MpOwpAQCAtMTcxLDE4ICsxMjMsNiBAQAogCWFkZF90aW1lcigmY2Rldi0+cHJpdmF0ZS0+dGltZXIpOwogfQogCi0vKiBLaWxsIGFueSBwZW5kaW5nIHRpbWVycyBhZnRlciBtYWNoaW5lIGNoZWNrLiAqLwotdm9pZAotZGV2aWNlX2tpbGxfcGVuZGluZ190aW1lcihzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQotewotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwotCi0JY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwotCWlmICghY2RldikKLQkJcmV0dXJuOwotCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7Ci19Ci0KIC8qCiAgKiBDYW5jZWwgcnVubmluZyBpL28uIFRoaXMgaXMgY2FsbGVkIHJlcGVhdGVkbHkgc2luY2UgaGFsdC9jbGVhciBhcmUKICAqIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zLiBXZSBkbyBvbmUgdHJ5IHdpdGggY2lvX2NhbmNlbCwgdHdvIHRyaWVzCkBAIC0yMDUsMTUgKzE0NSwxOCBAQAogCQkvKiBOb3Qgb3BlcmF0aW9uYWwgLT4gZG9uZS4gKi8KIAkJcmV0dXJuIDA7CiAJLyogU3RhZ2UgMTogY2FuY2VsIGlvLiAqLwotCWlmICghKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICYgU0NTV19BQ1RMX0hBTFRfUEVORCkgJiYKLQkgICAgIShzY2gtPnNjaGliLnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9DTEVBUl9QRU5EKSkgewotCQlyZXQgPSBjaW9fY2FuY2VsKHNjaCk7Ci0JCWlmIChyZXQgIT0gLUVJTlZBTCkKLQkJCXJldHVybiByZXQ7Ci0JCS8qIGNhbmNlbCBpbyB1bnN1Y2Nlc3NmdWwuIEZyb20gbm93IG9uIGl0IGlzIGFzeW5jaHJvbm91cy4gKi8KKwlpZiAoIShzY3N3X2FjdGwoJnNjaC0+c2NoaWIuc2NzdykgJiBTQ1NXX0FDVExfSEFMVF9QRU5EKSAmJgorCSAgICAhKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfQUNUTF9DTEVBUl9QRU5EKSkgeworCQlpZiAoIXNjc3dfaXNfdG0oJnNjaC0+c2NoaWIuc2NzdykpIHsKKwkJCXJldCA9IGNpb19jYW5jZWwoc2NoKTsKKwkJCWlmIChyZXQgIT0gLUVJTlZBTCkKKwkJCQlyZXR1cm4gcmV0OworCQl9CisJCS8qIGNhbmNlbCBpbyB1bnN1Y2Nlc3NmdWwgb3Igbm90IGFwcGxpY2FibGUgKHRyYW5zcG9ydCBtb2RlKS4KKwkJICogQ29udGludWUgd2l0aCBhc3luY2hyb25vdXMgaW5zdHJ1Y3Rpb25zLiAqLwogCQljZGV2LT5wcml2YXRlLT5pcmV0cnkgPSAzOwkvKiAzIGhhbHQgcmV0cmllcy4gKi8KIAl9Ci0JaWYgKCEoc2NoLT5zY2hpYi5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfQ0xFQVJfUEVORCkpIHsKKwlpZiAoIShzY3N3X2FjdGwoJnNjaC0+c2NoaWIuc2NzdykgJiBTQ1NXX0FDVExfQ0xFQVJfUEVORCkpIHsKIAkJLyogU3RhZ2UgMjogaGFsdCBpby4gKi8KIAkJaWYgKGNkZXYtPnByaXZhdGUtPmlyZXRyeSkgewogCQkJY2Rldi0+cHJpdmF0ZS0+aXJldHJ5LS07CkBAIC0zODgsMzQgKzMzMSwzMCBAQAogCX0KIH0KIAoraW50IGNjd19kZXZpY2Vfbm90aWZ5KHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBpbnQgZXZlbnQpCit7CisJaWYgKCFjZGV2LT5kcnYpCisJCXJldHVybiAwOworCWlmICghY2Rldi0+b25saW5lKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gY2Rldi0+ZHJ2LT5ub3RpZnkgPyBjZGV2LT5kcnYtPm5vdGlmeShjZGV2LCBldmVudCkgOiAwOworfQorCiBzdGF0aWMgdm9pZAogY2N3X2RldmljZV9vcGVyX25vdGlmeShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGNjd19kZXZpY2VfcHJpdmF0ZSAqcHJpdjsKIAlzdHJ1Y3QgY2N3X2RldmljZSAqY2RldjsKLQlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoOwogCWludCByZXQ7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCXByaXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGNjd19kZXZpY2VfcHJpdmF0ZSwga2lja193b3JrKTsKIAljZGV2ID0gcHJpdi0+Y2RldjsKLQlzcGluX2xvY2tfaXJxc2F2ZShjZGV2LT5jY3dsb2NrLCBmbGFncyk7Ci0Jc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKLQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPm5vdGlmeSkgewotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGNkZXYtPmNjd2xvY2ssIGZsYWdzKTsKLQkJcmV0ID0gc2NoLT5kcml2ZXItPm5vdGlmeShzY2gsIENJT19PUEVSKTsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoY2Rldi0+Y2N3bG9jaywgZmxhZ3MpOwotCX0gZWxzZQotCQlyZXQgPSAwOworCXJldCA9IGNjd19kZXZpY2Vfbm90aWZ5KGNkZXYsIENJT19PUEVSKTsKIAlpZiAocmV0KSB7CiAJCS8qIFJlZW5hYmxlIGNoYW5uZWwgbWVhc3VyZW1lbnRzLCBpZiBuZWVkZWQuICovCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoY2Rldi0+Y2N3bG9jaywgZmxhZ3MpOwogCQljbWZfcmVlbmFibGUoY2Rldik7Ci0JCXNwaW5fbG9ja19pcnFzYXZlKGNkZXYtPmNjd2xvY2ssIGZsYWdzKTsKIAkJd2FrZV91cCgmY2Rldi0+cHJpdmF0ZS0+d2FpdF9xKTsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjZGV2LT5jY3dsb2NrLCBmbGFncyk7Ci0JaWYgKCFyZXQpCisJfSBlbHNlCiAJCS8qIERyaXZlciBkb2Vzbid0IHdhbnQgZGV2aWNlIGJhY2suICovCiAJCWNjd19kZXZpY2VfZG9fdW5yZWdfcmVyZWcod29yayk7CiB9CkBAIC02MjEsMTAgKzU2MCwxMSBAQAogCQkvKiBEZWxpdmVyIGZha2UgaXJiIHRvIGRldmljZSBkcml2ZXIsIGlmIG5lZWRlZC4gKi8KIAkJaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmZha2VfaXJiKSB7CiAJCQltZW1zZXQoJmNkZXYtPnByaXZhdGUtPmlyYiwgMCwgc2l6ZW9mKHN0cnVjdCBpcmIpKTsKLQkJCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNjID0gMTsKLQkJCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmZjdGwgPSBTQ1NXX0ZDVExfU1RBUlRfRlVOQzsKLQkJCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmFjdGwgPSBTQ1NXX0FDVExfU1RBUlRfUEVORDsKLQkJCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LnN0Y3RsID0gU0NTV19TVENUTF9TVEFUVVNfUEVORDsKKwkJCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5jYyA9IDE7CisJCQljZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuZmN0bCA9IFNDU1dfRkNUTF9TVEFSVF9GVU5DOworCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmFjdGwgPSBTQ1NXX0FDVExfU1RBUlRfUEVORDsKKwkJCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5zdGN0bCA9CisJCQkJU0NTV19TVENUTF9TVEFUVVNfUEVORDsKIAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmZha2VfaXJiID0gMDsKIAkJCWlmIChjZGV2LT5oYW5kbGVyKQogCQkJCWNkZXYtPmhhbmRsZXIoY2RldiwgY2Rldi0+cHJpdmF0ZS0+aW50cGFybSwKQEAgLTcxOCwxMyArNjU4LDEwIEBACiAJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAlpZiAoc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpIHx8ICFzY2gtPnNjaGliLnBtY3cuZG52KQogCQlyZXR1cm4gLUVOT0RFVjsKLQlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX09OTElORSkgewotCQlpZiAoc2NoLT5zY2hpYi5zY3N3LmFjdGwgIT0gMCkKLQkJCXJldHVybiAtRUJVU1k7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlpZiAoc2NoLT5zY2hpYi5zY3N3LmFjdGwgIT0gMCkKKwlpZiAoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICE9IDApCiAJCXJldHVybiAtRUJVU1k7CisJaWYgKGNkZXYtPnByaXZhdGUtPnN0YXRlICE9IERFVl9TVEFURV9PTkxJTkUpCisJCXJldHVybiAtRUlOVkFMOwogCS8qIEFyZSB3ZSBkb2luZyBwYXRoIGdyb3VwaW5nPyAqLwogCWlmICghY2Rldi0+cHJpdmF0ZS0+b3B0aW9ucy5wZ3JvdXApIHsKIAkJLyogTm8sIHNldCBzdGF0ZSBvZmZsaW5lIGltbWVkaWF0ZWx5LiAqLwpAQCAtNzk5LDkgKzczNiw5IEBACiAJICovCiAJc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpOwogCi0JaWYgKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICE9IDAgfHwKLQkgICAgKHNjaC0+c2NoaWIuc2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpIHx8Ci0JICAgIChjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSB7CisJaWYgKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAhPSAwIHx8CisJICAgIChzY3N3X3N0Y3RsKCZzY2gtPnNjaGliLnNjc3cpICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKKwkgICAgKHNjc3dfc3RjdGwoJmNkZXYtPnByaXZhdGUtPmlyYi5zY3N3KSAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSB7CiAJCS8qCiAJCSAqIE5vIGZpbmFsIHN0YXR1cyB5ZXQgb3IgZmluYWwgc3RhdHVzIG5vdCB5ZXQgZGVsaXZlcmVkCiAJCSAqIHRvIHRoZSBkZXZpY2UgZHJpdmVyLiBDYW4ndCBkbyBwYXRoIHZlcmZpY2F0aW9uIG5vdywKQEAgLTgyMywxMyArNzYwLDEzIEBACiBjY3dfZGV2aWNlX2lycShzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiwgZW51bSBkZXZfZXZlbnQgZGV2X2V2ZW50KQogewogCXN0cnVjdCBpcmIgKmlyYjsKKwlpbnQgaXNfY21kOwogCiAJaXJiID0gKHN0cnVjdCBpcmIgKikgX19MQ19JUkI7CisJaXNfY21kID0gIXNjc3dfaXNfdG0oJmlyYi0+c2Nzdyk7CiAJLyogQ2hlY2sgZm9yIHVuc29saWNpdGVkIGludGVycnVwdC4gKi8KLQlpZiAoKGlyYi0+c2Nzdy5zdGN0bCA9PQotCSAgICAJCShTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EIHwgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpKQotCSAgICAmJiAoIWlyYi0+c2Nzdy5jYykpIHsKLQkJaWYgKChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSAmJgorCWlmICghc2Nzd19pc19zb2xpY2l0ZWQoJmlyYi0+c2NzdykpIHsKKwkJaWYgKGlzX2NtZCAmJiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmCiAJCSAgICAhaXJiLT5lc3cuZXN3MC5lcncuY29ucykgewogCQkJLyogVW5pdCBjaGVjayBidXQgbm8gc2Vuc2UgZGF0YS4gTmVlZCBiYXNpYyBzZW5zZS4gKi8KIAkJCWlmIChjY3dfZGV2aWNlX2RvX3NlbnNlKGNkZXYsIGlyYikgIT0gMCkKQEAgLTg0OCw3ICs3ODUsNyBAQAogCX0KIAkvKiBBY2N1bXVsYXRlIHN0YXR1cyBhbmQgZmluZCBvdXQgaWYgYSBiYXNpYyBzZW5zZSBpcyBuZWVkZWQuICovCiAJY2N3X2RldmljZV9hY2N1bXVsYXRlX2lyYihjZGV2LCBpcmIpOwotCWlmIChjZGV2LT5wcml2YXRlLT5mbGFncy5kb3NlbnNlKSB7CisJaWYgKGlzX2NtZCAmJiBjZGV2LT5wcml2YXRlLT5mbGFncy5kb3NlbnNlKSB7CiAJCWlmIChjY3dfZGV2aWNlX2RvX3NlbnNlKGNkZXYsIGlyYikgPT0gMCkgewogCQkJY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPSBERVZfU1RBVEVfVzRTRU5TRTsKIAkJfQpAQCAtODkyLDkgKzgyOSw5IEBACiAKIAlpcmIgPSAoc3RydWN0IGlyYiAqKSBfX0xDX0lSQjsKIAkvKiBDaGVjayBmb3IgdW5zb2xpY2l0ZWQgaW50ZXJydXB0LiAqLwotCWlmIChpcmItPnNjc3cuc3RjdGwgPT0KLQkgICAgCQkoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgewotCQlpZiAoaXJiLT5zY3N3LmNjID09IDEpCisJaWYgKHNjc3dfc3RjdGwoJmlyYi0+c2NzdykgPT0KKwkgICAgKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpIHsKKwkJaWYgKHNjc3dfY2MoJmlyYi0+c2NzdykgPT0gMSkKIAkJCS8qIEJhc2ljIHNlbnNlIGhhc24ndCBzdGFydGVkLiBUcnkgYWdhaW4uICovCiAJCQljY3dfZGV2aWNlX2RvX3NlbnNlKGNkZXYsIGlyYik7CiAJCWVsc2UgewpAQCAtOTEyLDcgKzg0OSw4IEBACiAJICogb25seSBkZWxpdmVyIHRoZSBoYWx0L2NsZWFyIGludGVycnVwdCB0byB0aGUgZGV2aWNlIGRyaXZlciBhcyBpZiBpdAogCSAqIGhhZCBraWxsZWQgdGhlIG9yaWdpbmFsIHJlcXVlc3QuCiAJICovCi0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9DTEVBUl9GVU5DIHwgU0NTV19GQ1RMX0hBTFRfRlVOQykpIHsKKwlpZiAoc2Nzd19mY3RsKCZpcmItPnNjc3cpICYKKwkgICAgKFNDU1dfRkNUTF9DTEVBUl9GVU5DIHwgU0NTV19GQ1RMX0hBTFRfRlVOQykpIHsKIAkJLyogUmV0cnkgQmFzaWMgU2Vuc2UgaWYgcmVxdWVzdGVkLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkpIHsKIAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5ID0gMDsKQEAgLTk4NiwxMiArOTI0LDEwIEBACiAJCQkgICAgICBFUlJfUFRSKC1FSU8pKTsKIH0KIAotdm9pZCBkZXZpY2Vfa2lsbF9pbyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQordm9pZCBjY3dfZGV2aWNlX2tpbGxfaW8oc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCiB7CiAJaW50IHJldDsKLQlzdHJ1Y3QgY2N3X2RldmljZSAqY2RldjsKIAotCWNkZXYgPSBzY2hfZ2V0X2NkZXYoc2NoKTsKIAlyZXQgPSBjY3dfZGV2aWNlX2NhbmNlbF9oYWx0X2NsZWFyKGNkZXYpOwogCWlmIChyZXQgPT0gLUVCVVNZKSB7CiAJCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMypIWik7CkBAIC0xMDIxLDkgKzk1Nyw5IEBACiAJY2FzZSBERVZfRVZFTlRfSU5URVJSVVBUOgogCQlpcmIgPSAoc3RydWN0IGlyYiAqKSBfX0xDX0lSQjsKIAkJLyogQ2hlY2sgZm9yIHVuc29saWNpdGVkIGludGVycnVwdC4gKi8KLQkJaWYgKChpcmItPnNjc3cuc3RjdGwgPT0KKwkJaWYgKChzY3N3X3N0Y3RsKCZpcmItPnNjc3cpID09CiAJCSAgICAgKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpICYmCi0JCSAgICAoIWlyYi0+c2Nzdy5jYykpCisJCSAgICAoIXNjc3dfY2MoJmlyYi0+c2NzdykpKQogCQkJLyogRklYTUU6IHdlIHNob3VsZCByZXN0YXJ0IHN0bGNrIGhlcmUsIGJ1dCB0aGlzCiAJCQkgKiBpcyBleHRyZW1lbHkgdW5saWtlbHkgLi4uICovCiAJCQlnb3RvIG91dF93YWtldXA7CkBAIC0xMDU1LDE3ICs5OTEsMTQgQEAKIAljY3dfZGV2aWNlX3NlbnNlX2lkX3N0YXJ0KGNkZXYpOwogfQogCi12b2lkCi1kZXZpY2VfdHJpZ2dlcl9yZXByb2JlKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit2b2lkIGNjd19kZXZpY2VfdHJpZ2dlcl9yZXByb2JlKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KQogewotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OworCXN0cnVjdCBzdWJjaGFubmVsICpzY2g7CiAKLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm47CiAJaWYgKGNkZXYtPnByaXZhdGUtPnN0YXRlICE9IERFVl9TVEFURV9ESVNDT05ORUNURUQpCiAJCXJldHVybjsKIAorCXNjaCA9IHRvX3N1YmNoYW5uZWwoY2Rldi0+ZGV2LnBhcmVudCk7CiAJLyogVXBkYXRlIHNvbWUgdmFsdWVzLiAqLwogCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYikpCiAJCXJldHVybjsKQEAgLTEwODEsNyArMTAxNCw2IEBACiAJc2NoLT5zY2hpYi5wbWN3LmVuYSA9IDA7CiAJaWYgKChzY2gtPmxwbSAmIChzY2gtPmxwbSAtIDEpKSAhPSAwKQogCQlzY2gtPnNjaGliLnBtY3cubXAgPSAxOwotCXNjaC0+c2NoaWIucG1jdy5pbnRwYXJtID0gKHUzMikoYWRkcl90KXNjaDsKIAkvKiBXZSBzaG91bGQgYWxzbyB1ZGF0ZSBzc2QgaW5mbywgYnV0IHRoaXMgaGFzIHRvIHdhaXQuICovCiAJLyogQ2hlY2sgaWYgdGhpcyBpcyBhbm90aGVyIGRldmljZSB3aGljaCBhcHBlYXJlZCBvbiB0aGUgc2FtZSBzY2guICovCiAJaWYgKHNjaC0+c2NoaWIucG1jdy5kZXYgIT0gY2Rldi0+cHJpdmF0ZS0+ZGV2X2lkLmRldm5vKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9pZC5jIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfaWQuYwppbmRleCBjYmE3MDIwNS4uMWJkYWE2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfaWQuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9pZC5jCkBAIC0xOTYsNyArMTk2LDcgQEAKIAlpcmIgPSAmY2Rldi0+cHJpdmF0ZS0+aXJiOwogCiAJLyogQ2hlY2sgdGhlIGVycm9yIGNhc2VzLiAqLwotCWlmIChpcmItPnNjc3cuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DIHwgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DIHwgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpKSB7CiAJCS8qIFJldHJ5IFNlbnNlIElEIGlmIHJlcXVlc3RlZC4gKi8KIAkJaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5KSB7CiAJCQljZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSA9IDA7CkBAIC0yMzQsMTAgKzIzNCwxMCBAQAogCQkJICAgICAgaXJiLT5lY3dbNl0sIGlyYi0+ZWN3WzddKTsKIAkJcmV0dXJuIC1FQUdBSU47CiAJfQotCWlmIChpcmItPnNjc3cuY2MgPT0gMykgeworCWlmIChpcmItPnNjc3cuY21kLmNjID09IDMpIHsKIAkJdTggbHBtOwogCi0JCWxwbSA9IHRvX2lvX3ByaXZhdGUoc2NoKS0+b3JiLmxwbTsKKwkJbHBtID0gdG9faW9fcHJpdmF0ZShzY2gpLT5vcmIuY21kLmxwbTsKIAkJaWYgKChscG0gJiBzY2gtPnNjaGliLnBtY3cucGltICYgc2NoLT5zY2hpYi5wbWN3LnBhbSkgIT0gMCkKIAkJCUNJT19NU0dfRVZFTlQoNCwgIlNlbnNlSUQgOiBwYXRoICUwMlggZm9yIGRldmljZSAlMDR4ICIKIAkJCQkgICAgICAib24gc3ViY2hhbm5lbCAwLiV4LiUwNHggaXMgIgpAQCAtMjQ4LDkgKzI0OCw5IEBACiAJfQogCiAJLyogRGlkIHdlIGdldCBhIHByb3BlciBhbnN3ZXIgPyAqLwotCWlmIChpcmItPnNjc3cuY2MgPT0gMCAmJiBjZGV2LT5wcml2YXRlLT5zZW5zZWlkLmN1X3R5cGUgIT0gMHhGRkZGICYmCisJaWYgKGlyYi0+c2Nzdy5jbWQuY2MgPT0gMCAmJiBjZGV2LT5wcml2YXRlLT5zZW5zZWlkLmN1X3R5cGUgIT0gMHhGRkZGICYmCiAJICAgIGNkZXYtPnByaXZhdGUtPnNlbnNlaWQucmVzZXJ2ZWQgPT0gMHhGRikgewotCQlpZiAoaXJiLT5zY3N3LmNvdW50IDwgc2l6ZW9mKHN0cnVjdCBzZW5zZWlkKSAtIDgpCisJCWlmIChpcmItPnNjc3cuY21kLmNvdW50IDwgc2l6ZW9mKHN0cnVjdCBzZW5zZWlkKSAtIDgpCiAJCQljZGV2LT5wcml2YXRlLT5mbGFncy5lc2lkID0gMTsKIAkJcmV0dXJuIDA7IC8qIFN1Y2Nlc3MgKi8KIAl9CkBAIC0yNjAsNyArMjYwLDcgQEAKIAkJICAgICAgInN1YmNoYW5uZWwgMC4leC4lMDR4IHJldHVybnMgc3RhdHVzICUwMlglMDJYXG4iLAogCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuZGV2bm8sIHNjaC0+c2NoaWQuc3NpZCwKIAkJICAgICAgc2NoLT5zY2hpZC5zY2hfbm8sCi0JCSAgICAgIGlyYi0+c2Nzdy5kc3RhdCwgaXJiLT5zY3N3LmNzdGF0KTsKKwkJICAgICAgaXJiLT5zY3N3LmNtZC5kc3RhdCwgaXJiLT5zY3N3LmNtZC5jc3RhdCk7CiAJcmV0dXJuIC1FQUdBSU47CiB9CiAKQEAgLTI3Nyw5ICsyNzcsOSBAQAogCXNjaCA9IHRvX3N1YmNoYW5uZWwoY2Rldi0+ZGV2LnBhcmVudCk7CiAJaXJiID0gKHN0cnVjdCBpcmIgKikgX19MQ19JUkI7CiAJLyogUmV0cnkgc2Vuc2UgaWQsIGlmIG5lZWRlZC4gKi8KLQlpZiAoaXJiLT5zY3N3LnN0Y3RsID09CisJaWYgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KIAkgICAgKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpIHsKLQkJaWYgKChpcmItPnNjc3cuY2MgPT0gMSkgfHwgIWlyYi0+c2Nzdy5hY3RsKSB7CisJCWlmICgoaXJiLT5zY3N3LmNtZC5jYyA9PSAxKSB8fCAhaXJiLT5zY3N3LmNtZC5hY3RsKSB7CiAJCQlyZXQgPSBfX2Njd19kZXZpY2Vfc2Vuc2VfaWRfc3RhcnQoY2Rldik7CiAJCQlpZiAocmV0ICYmIHJldCAhPSAtRUJVU1kpCiAJCQkJY2N3X2RldmljZV9zZW5zZV9pZF9kb25lKGNkZXYsIHJldCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9vcHMuYyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX29wcy5jCmluZGV4IGYzMDhhZDUuLmVlMWEyODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX29wcy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX29wcy5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSA8YXNtL2Njd2Rldi5oPgogI2luY2x1ZGUgPGFzbS9pZGFscy5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgorI2luY2x1ZGUgPGFzbS9mY3guaD4KIAogI2luY2x1ZGUgImNpby5oIgogI2luY2x1ZGUgImNpb19kZWJ1Zy5oIgpAQCAtMTc5LDggKzE4MCw4IEBACiAJCQlyZXR1cm4gLUVCVVNZOwogCX0KIAlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX09OTElORSB8fAotCSAgICAoKHNjaC0+c2NoaWIuc2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfUFJJTV9TVEFUVVMpICYmCi0JICAgICAhKHNjaC0+c2NoaWIuc2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykpIHx8CisJICAgICgoc2NoLT5zY2hpYi5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfUFJJTV9TVEFUVVMpICYmCisJICAgICAhKHNjaC0+c2NoaWIuc2Nzdy5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpKSB8fAogCSAgICBjZGV2LT5wcml2YXRlLT5mbGFncy5kb3ZlcmlmeSkKIAkJcmV0dXJuIC1FQlVTWTsKIAlyZXQgPSBjaW9fc2V0X29wdGlvbnMgKHNjaCwgZmxhZ3MpOwpAQCAtMzc5LDcgKzM4MCw3IEBACiAJaWYgKGNkZXYtPnByaXZhdGUtPnN0YXRlID09IERFVl9TVEFURV9OT1RfT1BFUikKIAkJcmV0dXJuIC1FTk9ERVY7CiAJaWYgKGNkZXYtPnByaXZhdGUtPnN0YXRlICE9IERFVl9TVEFURV9PTkxJTkUgfHwKLQkgICAgIShzY2gtPnNjaGliLnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKQorCSAgICAhKHNjaC0+c2NoaWIuc2Nzdy5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAlyZXR1cm4gY2lvX3Jlc3VtZShzY2gpOwogfQpAQCAtNDA0LDcgKzQwNSw3IEBACiAJICogIC0gZmFzdCBub3RpZmljYXRpb24gd2FzIHJlcXVlc3RlZCAocHJpbWFyeSBzdGF0dXMpCiAJICogIC0gdW5zb2xpY2l0ZWQgaW50ZXJydXB0cwogCSAqLwotCXN0Y3RsID0gY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuc3RjdGw7CisJc3RjdGwgPSBzY3N3X3N0Y3RsKCZjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdyk7CiAJZW5kaW5nX3N0YXR1cyA9IChzdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKIAkJKHN0Y3RsID09IChTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSB8fAogCQkoc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCk7CkBAIC01MjgsMTQgKzUyOSwxNSBAQAogCQljaW9fZGlzYWJsZV9zdWJjaGFubmVsKHNjaCk7IC8vRklYTUU6IHJldHVybiBjb2RlPwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQotCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmFjdGwgfD0gU0NTV19BQ1RMX1NUQVJUX1BFTkQ7CisJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmFjdGwgfD0gU0NTV19BQ1RMX1NUQVJUX1BFTkQ7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKLQl3YWl0X2V2ZW50KGNkZXYtPnByaXZhdGUtPndhaXRfcSwgY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuYWN0bCA9PSAwKTsKKwl3YWl0X2V2ZW50KGNkZXYtPnByaXZhdGUtPndhaXRfcSwKKwkJICAgY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmFjdGwgPT0gMCk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoc2NoLT5sb2NrLCBmbGFncyk7CiAJY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzY2gpOyAvL0ZJWE1FOiByZXR1cm4gY29kZT8KLQlpZiAoKGNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmRzdGF0ICE9CisJaWYgKChjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuZHN0YXQgIT0KIAkgICAgIChERVZfU1RBVF9DSE5fRU5EfERFVl9TVEFUX0RFVl9FTkQpKSB8fAotCSAgICAoY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY3N0YXQgIT0gMCkpCisJICAgIChjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuY3N0YXQgIT0gMCkpCiAJCXJldCA9IC1FSU87CiAJLyogQ2xlYXIgaXJiLiAqLwogCW1lbXNldCgmY2Rldi0+cHJpdmF0ZS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0IGlyYikpOwpAQCAtNTY4LDYgKzU3MCwxMjIgQEAKIH0KIEVYUE9SVF9TWU1CT0woY2N3X2RldmljZV9nZXRfaWQpOwogCisvKioKKyAqIGNjd19kZXZpY2VfdG1fc3RhcnRfa2V5IC0gcGVyZm9ybSBzdGFydCBmdW5jdGlvbgorICogQGNkZXY6IGNjdyBkZXZpY2Ugb24gd2hpY2ggdG8gcGVyZm9ybSB0aGUgc3RhcnQgZnVuY3Rpb24KKyAqIEB0Y3c6IHRyYW5zcG9ydC1jb21tYW5kIHdvcmQgdG8gYmUgc3RhcnRlZAorICogQGludHBhcm06IHVzZXIgZGVmaW5lZCBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIHRvIHRoZSBpbnRlcnJ1cHQgaGFuZGxlcgorICogQGxwbTogbWFzayBvZiBwYXRocyB0byB1c2UKKyAqIEBrZXk6IHN0b3JhZ2Uga2V5IHRvIHVzZSBmb3Igc3RvcmFnZSBhY2Nlc3MKKyAqCisgKiBTdGFydCB0aGUgdGN3IG9uIHRoZSBnaXZlbiBjY3cgZGV2aWNlLiBSZXR1cm4gemVybyBvbiBzdWNjZXNzLCBub24temVybworICogb3RoZXJ3aXNlLgorICovCitpbnQgY2N3X2RldmljZV90bV9zdGFydF9rZXkoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCB0Y3cgKnRjdywKKwkJCSAgICB1bnNpZ25lZCBsb25nIGludHBhcm0sIHU4IGxwbSwgdTgga2V5KQoreworCXN0cnVjdCBzdWJjaGFubmVsICpzY2g7CisJaW50IHJjOworCisJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKKwlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX09OTElORSkKKwkJcmV0dXJuIC1FSU87CisJLyogQWRqdXN0IHJlcXVlc3RlZCBwYXRoIG1hc2sgdG8gZXhjbHVkZWQgdmFyaWVkIG9mZiBwYXRocy4gKi8KKwlpZiAobHBtKSB7CisJCWxwbSAmPSBzY2gtPm9wbTsKKwkJaWYgKGxwbSA9PSAwKQorCQkJcmV0dXJuIC1FQUNDRVM7CisJfQorCXJjID0gY2lvX3RtX3N0YXJ0X2tleShzY2gsIHRjdywgbHBtLCBrZXkpOworCWlmIChyYyA9PSAwKQorCQljZGV2LT5wcml2YXRlLT5pbnRwYXJtID0gaW50cGFybTsKKwlyZXR1cm4gcmM7Cit9CitFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2VfdG1fc3RhcnRfa2V5KTsKKworLyoqCisgKiBjY3dfZGV2aWNlX3RtX3N0YXJ0X3RpbWVvdXRfa2V5IC0gcGVyZm9ybSBzdGFydCBmdW5jdGlvbgorICogQGNkZXY6IGNjdyBkZXZpY2Ugb24gd2hpY2ggdG8gcGVyZm9ybSB0aGUgc3RhcnQgZnVuY3Rpb24KKyAqIEB0Y3c6IHRyYW5zcG9ydC1jb21tYW5kIHdvcmQgdG8gYmUgc3RhcnRlZAorICogQGludHBhcm06IHVzZXIgZGVmaW5lZCBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIHRvIHRoZSBpbnRlcnJ1cHQgaGFuZGxlcgorICogQGxwbTogbWFzayBvZiBwYXRocyB0byB1c2UKKyAqIEBrZXk6IHN0b3JhZ2Uga2V5IHRvIHVzZSBmb3Igc3RvcmFnZSBhY2Nlc3MKKyAqIEBleHBpcmVzOiB0aW1lIHNwYW4gaW4gamlmZmllcyBhZnRlciB3aGljaCB0byBhYm9ydCByZXF1ZXN0CisgKgorICogU3RhcnQgdGhlIHRjdyBvbiB0aGUgZ2l2ZW4gY2N3IGRldmljZS4gUmV0dXJuIHplcm8gb24gc3VjY2Vzcywgbm9uLXplcm8KKyAqIG90aGVyd2lzZS4KKyAqLworaW50IGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dF9rZXkoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCB0Y3cgKnRjdywKKwkJCQkgICAgdW5zaWduZWQgbG9uZyBpbnRwYXJtLCB1OCBscG0sIHU4IGtleSwKKwkJCQkgICAgaW50IGV4cGlyZXMpCit7CisJaW50IHJldDsKKworCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgZXhwaXJlcyk7CisJcmV0ID0gY2N3X2RldmljZV90bV9zdGFydF9rZXkoY2RldiwgdGN3LCBpbnRwYXJtLCBscG0sIGtleSk7CisJaWYgKHJldCAhPSAwKQorCQljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dF9rZXkpOworCisvKioKKyAqIGNjd19kZXZpY2VfdG1fc3RhcnQgLSBwZXJmb3JtIHN0YXJ0IGZ1bmN0aW9uCisgKiBAY2RldjogY2N3IGRldmljZSBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBzdGFydCBmdW5jdGlvbgorICogQHRjdzogdHJhbnNwb3J0LWNvbW1hbmQgd29yZCB0byBiZSBzdGFydGVkCisgKiBAaW50cGFybTogdXNlciBkZWZpbmVkIHBhcmFtZXRlciB0byBiZSBwYXNzZWQgdG8gdGhlIGludGVycnVwdCBoYW5kbGVyCisgKiBAbHBtOiBtYXNrIG9mIHBhdGhzIHRvIHVzZQorICoKKyAqIFN0YXJ0IHRoZSB0Y3cgb24gdGhlIGdpdmVuIGNjdyBkZXZpY2UuIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvCisgKiBvdGhlcndpc2UuCisgKi8KK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0KHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBzdHJ1Y3QgdGN3ICp0Y3csCisJCQl1bnNpZ25lZCBsb25nIGludHBhcm0sIHU4IGxwbSkKK3sKKwlyZXR1cm4gY2N3X2RldmljZV90bV9zdGFydF9rZXkoY2RldiwgdGN3LCBpbnRwYXJtLCBscG0sCisJCQkJICAgICAgIFBBR0VfREVGQVVMVF9LRVkpOworfQorRVhQT1JUX1NZTUJPTChjY3dfZGV2aWNlX3RtX3N0YXJ0KTsKKworLyoqCisgKiBjY3dfZGV2aWNlX3RtX3N0YXJ0X3RpbWVvdXQgLSBwZXJmb3JtIHN0YXJ0IGZ1bmN0aW9uCisgKiBAY2RldjogY2N3IGRldmljZSBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBzdGFydCBmdW5jdGlvbgorICogQHRjdzogdHJhbnNwb3J0LWNvbW1hbmQgd29yZCB0byBiZSBzdGFydGVkCisgKiBAaW50cGFybTogdXNlciBkZWZpbmVkIHBhcmFtZXRlciB0byBiZSBwYXNzZWQgdG8gdGhlIGludGVycnVwdCBoYW5kbGVyCisgKiBAbHBtOiBtYXNrIG9mIHBhdGhzIHRvIHVzZQorICogQGV4cGlyZXM6IHRpbWUgc3BhbiBpbiBqaWZmaWVzIGFmdGVyIHdoaWNoIHRvIGFib3J0IHJlcXVlc3QKKyAqCisgKiBTdGFydCB0aGUgdGN3IG9uIHRoZSBnaXZlbiBjY3cgZGV2aWNlLiBSZXR1cm4gemVybyBvbiBzdWNjZXNzLCBub24temVybworICogb3RoZXJ3aXNlLgorICovCitpbnQgY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0KHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBzdHJ1Y3QgdGN3ICp0Y3csCisJCQkgICAgICAgdW5zaWduZWQgbG9uZyBpbnRwYXJtLCB1OCBscG0sIGludCBleHBpcmVzKQoreworCXJldHVybiBjY3dfZGV2aWNlX3RtX3N0YXJ0X3RpbWVvdXRfa2V5KGNkZXYsIHRjdywgaW50cGFybSwgbHBtLAorCQkJCQkgICAgICAgUEFHRV9ERUZBVUxUX0tFWSwgZXhwaXJlcyk7Cit9CitFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dCk7CisKKy8qKgorICogY2N3X2RldmljZV90bV9pbnRyZyAtIHBlcmZvcm0gaW50ZXJyb2dhdGUgZnVuY3Rpb24KKyAqIEBjZGV2OiBjY3cgZGV2aWNlIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIGludGVycm9nYXRlIGZ1bmN0aW9uCisgKgorICogUGVyZm9ybSBhbiBpbnRlcnJvZ2F0ZSBmdW5jdGlvbiBvbiB0aGUgZ2l2ZW4gY2N3IGRldmljZS4gUmV0dXJuIHplcm8gb24KKyAqIHN1Y2Nlc3MsIG5vbi16ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IGNjd19kZXZpY2VfdG1faW50cmcoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCit7CisJc3RydWN0IHN1YmNoYW5uZWwgKnNjaCA9IHRvX3N1YmNoYW5uZWwoY2Rldi0+ZGV2LnBhcmVudCk7CisKKwlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX09OTElORSkKKwkJcmV0dXJuIC1FSU87CisJaWYgKCFzY3N3X2lzX3RtKCZzY2gtPnNjaGliLnNjc3cpIHx8CisJICAgICEoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpIHwgU0NTV19BQ1RMX1NUQVJUX1BFTkQpKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlyZXR1cm4gY2lvX3RtX2ludHJnKHNjaCk7Cit9CitFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2VfdG1faW50cmcpOworCiAvLyBGSVhNRTogdGhlc2UgaGF2ZSB0byBnbzoKIAogaW50CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9wZ2lkLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9wZ2lkLmMKaW5kZXggNWNmN2JlMC4uODZiYzk0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfcGdpZC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3BnaWQuYwpAQCAtMjgsMTMgKzI4LDEzIEBACiAgKiBIZWxwZXIgZnVuY3Rpb24gY2FsbGVkIGZyb20gaW50ZXJydXB0IGNvbnRleHQgdG8gZGVjaWRlIHdoZXRoZXIgYW4KICAqIG9wZXJhdGlvbiBzaG91bGQgYmUgdHJpZWQgYWdhaW4uCiAgKi8KLXN0YXRpYyBpbnQgX19jY3dfZGV2aWNlX3Nob3VsZF9yZXRyeShzdHJ1Y3Qgc2NzdyAqc2NzdykKK3N0YXRpYyBpbnQgX19jY3dfZGV2aWNlX3Nob3VsZF9yZXRyeSh1bmlvbiBzY3N3ICpzY3N3KQogewogCS8qIENDIGlzIG9ubHkgdmFsaWQgaWYgc3RhcnQgZnVuY3Rpb24gYml0IGlzIHNldC4gKi8KLQlpZiAoKHNjc3ctPmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgJiYgc2Nzdy0+Y2MgPT0gMSkKKwlpZiAoKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpICYmIHNjc3ctPmNtZC5jYyA9PSAxKQogCQlyZXR1cm4gMTsKIAkvKiBObyBtb3JlIGFjdGl2aXR5LiBGb3Igc2Vuc2UgYW5kIHNldCBQR0lEIHdlIHN0dWJib3JubHkgdHJ5IGFnYWluLiAqLwotCWlmICghc2Nzdy0+YWN0bCkKKwlpZiAoIXNjc3ctPmNtZC5hY3RsKQogCQlyZXR1cm4gMTsKIAlyZXR1cm4gMDsKIH0KQEAgLTEyNSw3ICsxMjUsNyBAQAogCiAJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAlpcmIgPSAmY2Rldi0+cHJpdmF0ZS0+aXJiOwotCWlmIChpcmItPnNjc3cuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DIHwgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DIHwgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpKSB7CiAJCS8qIFJldHJ5IFNlbnNlIFBHSUQgaWYgcmVxdWVzdGVkLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkpIHsKIAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5ID0gMDsKQEAgLTE1NSwxMCArMTU1LDEwIEBACiAJCQkgICAgICBpcmItPmVjd1s2XSwgaXJiLT5lY3dbN10pOwogCQlyZXR1cm4gLUVBR0FJTjsKIAl9Ci0JaWYgKGlyYi0+c2Nzdy5jYyA9PSAzKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuY2MgPT0gMykgewogCQl1OCBscG07CiAKLQkJbHBtID0gdG9faW9fcHJpdmF0ZShzY2gpLT5vcmIubHBtOworCQlscG0gPSB0b19pb19wcml2YXRlKHNjaCktPm9yYi5jbWQubHBtOwogCQlDSU9fTVNHX0VWRU5UKDMsICJTTklEIC0gRGV2aWNlICUwNHggb24gU3ViY2hhbm5lbCAwLiV4LiUwNHgsIgogCQkJICAgICAgIiBscG0gJTAyWCwgYmVjYW1lICdub3Qgb3BlcmF0aW9uYWwnXG4iLAogCQkJICAgICAgY2Rldi0+cHJpdmF0ZS0+ZGV2X2lkLmRldm5vLCBzY2gtPnNjaGlkLnNzaWQsCkBAIC0xODgsNyArMTg4LDcgQEAKIAogCWlyYiA9IChzdHJ1Y3QgaXJiICopIF9fTENfSVJCOwogCi0JaWYgKGlyYi0+c2Nzdy5zdGN0bCA9PQorCWlmIChpcmItPnNjc3cuY21kLnN0Y3RsID09CiAJICAgIChTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EIHwgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpKSB7CiAJCWlmIChfX2Njd19kZXZpY2Vfc2hvdWxkX3JldHJ5KCZpcmItPnNjc3cpKSB7CiAJCQlyZXQgPSBfX2Njd19kZXZpY2Vfc2Vuc2VfcGdpZF9zdGFydChjZGV2KTsKQEAgLTMzMSw3ICszMzEsNyBAQAogCiAJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAlpcmIgPSAmY2Rldi0+cHJpdmF0ZS0+aXJiOwotCWlmIChpcmItPnNjc3cuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DIHwgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DIHwgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpKSB7CiAJCS8qIFJldHJ5IFNldCBQR0lEIGlmIHJlcXVlc3RlZC4gKi8KIAkJaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5KSB7CiAJCQljZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSA9IDA7CkBAIC0zNTUsNyArMzU1LDcgQEAKIAkJCSAgICAgIGlyYi0+ZWN3WzZdLCBpcmItPmVjd1s3XSk7CiAJCXJldHVybiAtRUFHQUlOOwogCX0KLQlpZiAoaXJiLT5zY3N3LmNjID09IDMpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5jYyA9PSAzKSB7CiAJCUNJT19NU0dfRVZFTlQoMywgIlNQSUQgLSBEZXZpY2UgJTA0eCBvbiBTdWJjaGFubmVsIDAuJXguJTA0eCwiCiAJCQkgICAgICAiIGxwbSAlMDJYLCBiZWNhbWUgJ25vdCBvcGVyYXRpb25hbCdcbiIsCiAJCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuZGV2bm8sIHNjaC0+c2NoaWQuc3NpZCwKQEAgLTM3Niw3ICszNzYsNyBAQAogCiAJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAlpcmIgPSAmY2Rldi0+cHJpdmF0ZS0+aXJiOwotCWlmIChpcmItPnNjc3cuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DIHwgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DIHwgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpKSB7CiAJCS8qIFJldHJ5IE5PUCBpZiByZXF1ZXN0ZWQuICovCiAJCWlmIChjZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSkgewogCQkJY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkgPSAwOwpAQCAtMzg0LDcgKzM4NCw3IEBACiAJCX0KIAkJcmV0dXJuIC1FVElNRTsKIAl9Ci0JaWYgKGlyYi0+c2Nzdy5jYyA9PSAzKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuY2MgPT0gMykgewogCQlDSU9fTVNHX0VWRU5UKDMsICJOT1AgLSBEZXZpY2UgJTA0eCBvbiBTdWJjaGFubmVsIDAuJXguJTA0eCwiCiAJCQkgICAgICAiIGxwbSAlMDJYLCBiZWNhbWUgJ25vdCBvcGVyYXRpb25hbCdcbiIsCiAJCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuZGV2bm8sIHNjaC0+c2NoaWQuc3NpZCwKQEAgLTQzOCw3ICs0MzgsNyBAQAogCiAJaXJiID0gKHN0cnVjdCBpcmIgKikgX19MQ19JUkI7CiAKLQlpZiAoaXJiLT5zY3N3LnN0Y3RsID09CisJaWYgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KIAkgICAgKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpIHsKIAkJaWYgKF9fY2N3X2RldmljZV9zaG91bGRfcmV0cnkoJmlyYi0+c2NzdykpCiAJCQlfX2Njd19kZXZpY2VfdmVyaWZ5X3N0YXJ0KGNkZXYpOwpAQCAtNTQ0LDcgKzU0NCw3IEBACiAKIAlpcmIgPSAoc3RydWN0IGlyYiAqKSBfX0xDX0lSQjsKIAotCWlmIChpcmItPnNjc3cuc3RjdGwgPT0KKwlpZiAoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PQogCSAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgewogCQlpZiAoX19jY3dfZGV2aWNlX3Nob3VsZF9yZXRyeSgmaXJiLT5zY3N3KSkKIAkJCV9fY2N3X2RldmljZV9kaXNiYW5kX3N0YXJ0KGNkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfc3RhdHVzLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9zdGF0dXMuYwppbmRleCA0YTM4OTkzLi4xYjAzYzU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9zdGF0dXMuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9zdGF0dXMuYwpAQCAtMjksOSArMjksMTEgQEAKIHN0YXRpYyB2b2lkCiBjY3dfZGV2aWNlX21zZ19jb250cm9sX2NoZWNrKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBzdHJ1Y3QgaXJiICppcmIpCiB7Ci0JaWYgKCEoaXJiLT5zY3N3LmNzdGF0ICYgKFNDSE5fU1RBVF9DSE5fREFUQV9DSEsgfAotCQkJCSBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLIHwKLQkJCQkgU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEspKSkKKwljaGFyIGRiZl90ZXh0WzE1XTsKKworCWlmICghc2Nzd19pc192YWxpZF9jc3RhdCgmaXJiLT5zY3N3KSB8fAorCSAgICAhKHNjc3dfY3N0YXQoJmlyYi0+c2NzdykgJiAoU0NITl9TVEFUX0NITl9EQVRBX0NISyB8CisJICAgICAgU0NITl9TVEFUX0NITl9DVFJMX0NISyB8IFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLKSkpCiAJCXJldHVybjsKIAlDSU9fTVNHX0VWRU5UKDAsICJDaGFubmVsLUNoZWNrIG9yIEludGVyZmFjZS1Db250cm9sLUNoZWNrICIKIAkJICAgICAgInJlY2VpdmVkIgpAQCAtMzksMTUgKzQxLDEwIEBACiAJCSAgICAgICI6ICUwMlggc2NoX3N0YXQgOiAlMDJYXG4iLAogCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuZGV2bm8sIGNkZXYtPnByaXZhdGUtPnNjaGlkLnNzaWQsCiAJCSAgICAgIGNkZXYtPnByaXZhdGUtPnNjaGlkLnNjaF9ubywKLQkJICAgICAgaXJiLT5zY3N3LmRzdGF0LCBpcmItPnNjc3cuY3N0YXQpOwotCi0JaWYgKGlyYi0+c2Nzdy5jYyAhPSAzKSB7Ci0JCWNoYXIgZGJmX3RleHRbMTVdOwotCi0JCXNwcmludGYoZGJmX3RleHQsICJjaGsleCIsIGNkZXYtPnByaXZhdGUtPnNjaGlkLnNjaF9ubyk7Ci0JCUNJT19UUkFDRV9FVkVOVCgwLCBkYmZfdGV4dCk7Ci0JCUNJT19IRVhfRVZFTlQoMCwgaXJiLCBzaXplb2YgKHN0cnVjdCBpcmIpKTsKLQl9CisJCSAgICAgIHNjc3dfZHN0YXQoJmlyYi0+c2NzdyksIHNjc3dfY3N0YXQoJmlyYi0+c2NzdykpOworCXNwcmludGYoZGJmX3RleHQsICJjaGsleCIsIGNkZXYtPnByaXZhdGUtPnNjaGlkLnNjaF9ubyk7CisJQ0lPX1RSQUNFX0VWRU5UKDAsIGRiZl90ZXh0KTsKKwlDSU9fSEVYX0VWRU5UKDAsIGlyYiwgc2l6ZW9mKHN0cnVjdCBpcmIpKTsKIH0KIAogLyoKQEAgLTgxLDEyICs3OCwxMiBAQAogCSAqIGFyZSBjb25kaXRpb24gdGhhdCBoYXZlIHRvIGJlIG1ldCBmb3IgdGhlIGV4dGVuZGVkIGNvbnRyb2wKIAkgKiBiaXQgdG8gaGF2ZSBtZWFuaW5nLiBTaWNrLgogCSAqLwotCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmVjdGwgPSAwOwotCWlmICgoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpICYmCi0JICAgICEoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpKQotCQljZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5lY3RsID0gaXJiLT5zY3N3LmVjdGw7CisJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmVjdGwgPSAwOworCWlmICgoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSAmJgorCSAgICAhKGlyYi0+c2Nzdy5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykpCisJCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5lY3RsID0gaXJiLT5zY3N3LmNtZC5lY3RsOwogCS8qIENoZWNrIGlmIGV4dGVuZGVkIGNvbnRyb2wgd29yZCBpcyB2YWxpZC4gKi8KLQlpZiAoIWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmVjdGwpCisJaWYgKCFjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuZWN0bCkKIAkJcmV0dXJuOwogCS8qIENvcHkgY29uY3VycmVudCBzZW5zZSAvIG1vZGVsIGRlcGVuZGVudCBpbmZvcm1hdGlvbi4gKi8KIAltZW1jcHkgKCZjZGV2LT5wcml2YXRlLT5pcmIuZWN3LCBpcmItPmVjdywgc2l6ZW9mIChpcmItPmVjdykpOwpAQCAtOTgsMTEgKzk1LDEyIEBACiBzdGF0aWMgaW50CiBjY3dfZGV2aWNlX2FjY3VtdWxhdGVfZXN3X3ZhbGlkKHN0cnVjdCBpcmIgKmlyYikKIHsKLQlpZiAoIWlyYi0+c2Nzdy5lc3dmICYmIGlyYi0+c2Nzdy5zdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKQorCWlmICghaXJiLT5zY3N3LmNtZC5lc3dmICYmCisJICAgIChpcmItPnNjc3cuY21kLnN0Y3RsID09IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKQogCQlyZXR1cm4gMDsKLQlpZiAoaXJiLT5zY3N3LnN0Y3RsID09IAotCSAgICAJCShTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVU3xTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSAmJgotCSAgICAhKGlyYi0+c2Nzdy5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCisJaWYgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KKwkJCShTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVU3xTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSAmJgorCSAgICAhKGlyYi0+c2Nzdy5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gMTsKIH0KQEAgLTEyNSw3ICsxMjMsNyBAQAogCWNkZXZfaXJiLT5lc3cuZXN3MS5scHVtID0gaXJiLT5lc3cuZXN3MS5scHVtOwogCiAJLyogQ29weSBzdWJjaGFubmVsIGxvZ291dCBpbmZvcm1hdGlvbiBpZiBlc3cgaXMgb2YgZm9ybWF0IDAuICovCi0JaWYgKGlyYi0+c2Nzdy5lc3dmKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZXN3ZikgewogCQljZGV2X3N1YmxvZyA9ICZjZGV2X2lyYi0+ZXN3LmVzdzAuc3VibG9nOwogCQlzdWJsb2cgPSAmaXJiLT5lc3cuZXN3MC5zdWJsb2c7CiAJCS8qIENvcHkgZXh0ZW5kZWQgc3RhdHVzIGZsYWdzLiAqLwpAQCAtMTM0LDcgKzEzMiw3IEBACiAJCSAqIENvcHkgZmllbGRzIHRoYXQgaGF2ZSBhIG1lYW5pbmcgZm9yIGNoYW5uZWwgZGF0YSBjaGVjawogCQkgKiBjaGFubmVsIGNvbnRyb2wgY2hlY2sgYW5kIGludGVyZmFjZSBjb250cm9sIGNoZWNrLgogCQkgKi8KLQkJaWYgKGlyYi0+c2Nzdy5jc3RhdCAmIChTQ0hOX1NUQVRfQ0hOX0RBVEFfQ0hLIHwKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuY3N0YXQgJiAoU0NITl9TVEFUX0NITl9EQVRBX0NISyB8CiAJCQkJICAgICAgIFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEsgfAogCQkJCSAgICAgICBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISykpIHsKIAkJCS8qIENvcHkgYW5jaWxsYXJ5IHJlcG9ydCBiaXQuICovCkBAIC0xNTUsNyArMTUzLDcgQEAKIAkJLyogQ29weSBpL28tZXJyb3IgYWxlcnQuICovCiAJCWNkZXZfc3VibG9nLT5pb2VyciA9IHN1YmxvZy0+aW9lcnI7CiAJCS8qIENvcHkgY2hhbm5lbCBwYXRoIHRpbWVvdXQgYml0LiAqLwotCQlpZiAoaXJiLT5zY3N3LmNzdGF0ICYgU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEspCisJCWlmIChpcmItPnNjc3cuY21kLmNzdGF0ICYgU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEspCiAJCQljZGV2X2lyYi0+ZXN3LmVzdzAuZXJ3LmNwdCA9IGlyYi0+ZXN3LmVzdzAuZXJ3LmNwdDsKIAkJLyogQ29weSBmYWlsaW5nIHN0b3JhZ2UgYWRkcmVzcyB2YWxpZGl0eSBmbGFnLiAqLwogCQljZGV2X2lyYi0+ZXN3LmVzdzAuZXJ3LmZzYXZmID0gaXJiLT5lc3cuZXN3MC5lcncuZnNhdmY7CkBAIC0yMDAsMjQgKzE5OCwyNCBAQAogCSAqIElmIG5vdCwgdGhlIHJlbWFpbmluZyBiaXQgaGF2ZSBubyBtZWFuaW5nIGFuZCB3ZSBtdXN0IGlnbm9yZSB0aGVtLgogCSAqIFRoZSBlc3cgaXMgbm90IG1lYW5pbmdmdWwgYXMgd2VsbC4uLgogCSAqLwotCWlmICghKGlyYi0+c2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKQorCWlmICghKHNjc3dfc3RjdGwoJmlyYi0+c2NzdykgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkKIAkJcmV0dXJuOwogCiAJLyogQ2hlY2sgZm9yIGNoYW5uZWwgY2hlY2tzIGFuZCBpbnRlcmZhY2UgY29udHJvbCBjaGVja3MuICovCiAJY2N3X2RldmljZV9tc2dfY29udHJvbF9jaGVjayhjZGV2LCBpcmIpOwogCiAJLyogQ2hlY2sgZm9yIHBhdGggbm90IG9wZXJhdGlvbmFsLiAqLwotCWlmIChpcmItPnNjc3cucG5vICYmIGlyYi0+c2Nzdy5mY3RsICE9IDAgJiYKLQkgICAgKCEoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpIHx8Ci0JICAgICAoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkpCisJaWYgKHNjc3dfaXNfdmFsaWRfcG5vKCZpcmItPnNjc3cpICYmIHNjc3dfcG5vKCZpcmItPnNjc3cpKQogCQljY3dfZGV2aWNlX3BhdGhfbm90b3BlcihjZGV2KTsKLQorCS8qIE5vIGlyYiBhY2N1bXVsYXRpb24gZm9yIHRyYW5zcG9ydCBtb2RlIGlyYnMuICovCisJaWYgKHNjc3dfaXNfdG0oJmlyYi0+c2NzdykpIHsKKwkJbWVtY3B5KCZjZGV2LT5wcml2YXRlLT5pcmIsIGlyYiwgc2l6ZW9mKHN0cnVjdCBpcmIpKTsKKwkJcmV0dXJuOworCX0KIAkvKgogCSAqIERvbid0IGFjY3VtdWxhdGUgdW5zb2xpY2l0ZWQgaW50ZXJydXB0cy4KIAkgKi8KLQlpZiAoKGlyYi0+c2Nzdy5zdGN0bCA9PQotCSAgICAgKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpICYmCi0JICAgICghaXJiLT5zY3N3LmNjKSkKKwlpZiAoIXNjc3dfaXNfc29saWNpdGVkKCZpcmItPnNjc3cpKQogCQlyZXR1cm47CiAKIAljZGV2X2lyYiA9ICZjZGV2LT5wcml2YXRlLT5pcmI7CkBAIC0yMjcsNjIgKzIyNSw2MyBAQAogCSAqIHN0YXR1cyBhdCB0aGUgc3ViY2hhbm5lbCBoYXMgYmVlbiBjbGVhcmVkIGFuZCB3ZSBtdXN0IG5vdCBwYXNzCiAJICogaW50ZXJtZWRpYXRlIGFjY3VtdWxhdGVkIHN0YXR1cyB0byB0aGUgZGV2aWNlIGRyaXZlci4KIAkgKi8KLQlpZiAoaXJiLT5zY3N3LmZjdGwgJiBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgU0NTV19GQ1RMX0NMRUFSX0ZVTkMpCiAJCW1lbXNldCgmY2Rldi0+cHJpdmF0ZS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0IGlyYikpOwogCiAJLyogQ29weSBiaXRzIHdoaWNoIGFyZSB2YWxpZCBvbmx5IGZvciB0aGUgc3RhcnQgZnVuY3Rpb24uICovCi0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpIHsKIAkJLyogQ29weSBrZXkuICovCi0JCWNkZXZfaXJiLT5zY3N3LmtleSA9IGlyYi0+c2Nzdy5rZXk7CisJCWNkZXZfaXJiLT5zY3N3LmNtZC5rZXkgPSBpcmItPnNjc3cuY21kLmtleTsKIAkJLyogQ29weSBzdXNwZW5kIGNvbnRyb2wgYml0LiAqLwotCQljZGV2X2lyYi0+c2Nzdy5zY3RsID0gaXJiLT5zY3N3LnNjdGw7CisJCWNkZXZfaXJiLT5zY3N3LmNtZC5zY3RsID0gaXJiLT5zY3N3LmNtZC5zY3RsOwogCQkvKiBBY2N1bXVsYXRlIGRlZmVycmVkIGNvbmRpdGlvbiBjb2RlLiAqLwotCQljZGV2X2lyYi0+c2Nzdy5jYyB8PSBpcmItPnNjc3cuY2M7CisJCWNkZXZfaXJiLT5zY3N3LmNtZC5jYyB8PSBpcmItPnNjc3cuY21kLmNjOwogCQkvKiBDb3B5IGNjdyBmb3JtYXQgYml0LiAqLwotCQljZGV2X2lyYi0+c2Nzdy5mbXQgPSBpcmItPnNjc3cuZm10OworCQljZGV2X2lyYi0+c2Nzdy5jbWQuZm10ID0gaXJiLT5zY3N3LmNtZC5mbXQ7CiAJCS8qIENvcHkgcHJlZmV0Y2ggYml0LiAqLwotCQljZGV2X2lyYi0+c2Nzdy5wZmNoID0gaXJiLT5zY3N3LnBmY2g7CisJCWNkZXZfaXJiLT5zY3N3LmNtZC5wZmNoID0gaXJiLT5zY3N3LmNtZC5wZmNoOwogCQkvKiBDb3B5IGluaXRpYWwtc3RhdHVzLWludGVycnVwdGlvbi1jb250cm9sLiAqLwotCQljZGV2X2lyYi0+c2Nzdy5pc2ljID0gaXJiLT5zY3N3LmlzaWM7CisJCWNkZXZfaXJiLT5zY3N3LmNtZC5pc2ljID0gaXJiLT5zY3N3LmNtZC5pc2ljOwogCQkvKiBDb3B5IGFkZHJlc3MgbGltaXQgY2hlY2tpbmcgY29udHJvbC4gKi8KLQkJY2Rldl9pcmItPnNjc3cuYWxjYyA9IGlyYi0+c2Nzdy5hbGNjOworCQljZGV2X2lyYi0+c2Nzdy5jbWQuYWxjYyA9IGlyYi0+c2Nzdy5jbWQuYWxjYzsKIAkJLyogQ29weSBzdXBwcmVzcyBzdXNwZW5kIGJpdC4gKi8KLQkJY2Rldl9pcmItPnNjc3cuc3NpID0gaXJiLT5zY3N3LnNzaTsKKwkJY2Rldl9pcmItPnNjc3cuY21kLnNzaSA9IGlyYi0+c2Nzdy5jbWQuc3NpOwogCX0KIAogCS8qIFRha2UgY2FyZSBvZiB0aGUgZXh0ZW5kZWQgY29udHJvbCBiaXQgYW5kIGV4dGVuZGVkIGNvbnRyb2wgd29yZC4gKi8KIAljY3dfZGV2aWNlX2FjY3VtdWxhdGVfZWN3KGNkZXYsIGlyYik7CiAJICAgIAogCS8qIEFjY3VtdWxhdGUgZnVuY3Rpb24gY29udHJvbC4gKi8KLQljZGV2X2lyYi0+c2Nzdy5mY3RsIHw9IGlyYi0+c2Nzdy5mY3RsOworCWNkZXZfaXJiLT5zY3N3LmNtZC5mY3RsIHw9IGlyYi0+c2Nzdy5jbWQuZmN0bDsKIAkvKiBDb3B5IGFjdGl2aXR5IGNvbnRyb2wuICovCi0JY2Rldl9pcmItPnNjc3cuYWN0bD0gaXJiLT5zY3N3LmFjdGw7CisJY2Rldl9pcmItPnNjc3cuY21kLmFjdGwgPSBpcmItPnNjc3cuY21kLmFjdGw7CiAJLyogQWNjdW11bGF0ZSBzdGF0dXMgY29udHJvbC4gKi8KLQljZGV2X2lyYi0+c2Nzdy5zdGN0bCB8PSBpcmItPnNjc3cuc3RjdGw7CisJY2Rldl9pcmItPnNjc3cuY21kLnN0Y3RsIHw9IGlyYi0+c2Nzdy5jbWQuc3RjdGw7CiAJLyoKIAkgKiBDb3B5IGNjdyBhZGRyZXNzIGlmIGl0IGlzIHZhbGlkLiBUaGlzIGlzIGEgYml0IHNpbXBsaWZpZWQKIAkgKiBidXQgc2hvdWxkIGJlIGNsb3NlIGVub3VnaCBmb3IgYWxsIHByYWN0aWNhbCBwdXJwb3Nlcy4KIAkgKi8KLQlpZiAoKGlyYi0+c2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfUFJJTV9TVEFUVVMpIHx8Ci0JICAgICgoaXJiLT5zY3N3LnN0Y3RsID09IAorCWlmICgoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfUFJJTV9TVEFUVVMpIHx8CisJICAgICgoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PQogCSAgICAgIChTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVU3xTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkgJiYKLQkgICAgIChpcmItPnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9ERVZBQ1QpICYmCi0JICAgICAoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU0NIQUNUKSkgfHwKLQkgICAgKGlyYi0+c2Nzdy5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCi0JCWNkZXZfaXJiLT5zY3N3LmNwYSA9IGlyYi0+c2Nzdy5jcGE7CisJICAgICAoaXJiLT5zY3N3LmNtZC5hY3RsICYgU0NTV19BQ1RMX0RFVkFDVCkgJiYKKwkgICAgIChpcmItPnNjc3cuY21kLmFjdGwgJiBTQ1NXX0FDVExfU0NIQUNUKSkgfHwKKwkgICAgKGlyYi0+c2Nzdy5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKQorCQljZGV2X2lyYi0+c2Nzdy5jbWQuY3BhID0gaXJiLT5zY3N3LmNtZC5jcGE7CiAJLyogQWNjdW11bGF0ZSBkZXZpY2Ugc3RhdHVzLCBidXQgbm90IHRoZSBkZXZpY2UgYnVzeSBmbGFnLiAqLwotCWNkZXZfaXJiLT5zY3N3LmRzdGF0ICY9IH5ERVZfU1RBVF9CVVNZOworCWNkZXZfaXJiLT5zY3N3LmNtZC5kc3RhdCAmPSB+REVWX1NUQVRfQlVTWTsKIAkvKiBkc3RhdCBpcyBub3QgYWx3YXlzIHZhbGlkLiAqLwotCWlmIChpcmItPnNjc3cuc3RjdGwgJgorCWlmIChpcmItPnNjc3cuY21kLnN0Y3RsICYKIAkgICAgKFNDU1dfU1RDVExfUFJJTV9TVEFUVVMgfCBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMKIAkgICAgIHwgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpCi0JCWNkZXZfaXJiLT5zY3N3LmRzdGF0IHw9IGlyYi0+c2Nzdy5kc3RhdDsKKwkJY2Rldl9pcmItPnNjc3cuY21kLmRzdGF0IHw9IGlyYi0+c2Nzdy5jbWQuZHN0YXQ7CiAJLyogQWNjdW11bGF0ZSBzdWJjaGFubmVsIHN0YXR1cy4gKi8KLQljZGV2X2lyYi0+c2Nzdy5jc3RhdCB8PSBpcmItPnNjc3cuY3N0YXQ7CisJY2Rldl9pcmItPnNjc3cuY21kLmNzdGF0IHw9IGlyYi0+c2Nzdy5jbWQuY3N0YXQ7CiAJLyogQ29weSByZXNpZHVhbCBjb3VudCBpZiBpdCBpcyB2YWxpZC4gKi8KLQlpZiAoKGlyYi0+c2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfUFJJTV9TVEFUVVMpICYmCi0JICAgIChpcmItPnNjc3cuY3N0YXQgJiB+KFNDSE5fU1RBVF9QQ0kgfCBTQ0hOX1NUQVRfSU5DT1JSX0xFTikpID09IDApCi0JCWNkZXZfaXJiLT5zY3N3LmNvdW50ID0gaXJiLT5zY3N3LmNvdW50OworCWlmICgoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfUFJJTV9TVEFUVVMpICYmCisJICAgIChpcmItPnNjc3cuY21kLmNzdGF0ICYgfihTQ0hOX1NUQVRfUENJIHwgU0NITl9TVEFUX0lOQ09SUl9MRU4pKQorCSAgICAgPT0gMCkKKwkJY2Rldl9pcmItPnNjc3cuY21kLmNvdW50ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKIAogCS8qIFRha2UgY2FyZSBvZiBiaXRzIGluIHRoZSBleHRlbmRlZCBzdGF0dXMgd29yZC4gKi8KIAljY3dfZGV2aWNlX2FjY3VtdWxhdGVfZXN3KGNkZXYsIGlyYik7CkBAIC0yOTksNyArMjk4LDcgQEAKIAkgKgkgc2Vuc2UgZmFjaWxpdHkgYXZhaWxhYmxlL3N1cHBvcnRlZCB3aGVuIGVuYWJsaW5nIHRoZQogCSAqCSBjb25jdXJyZW50IHNlbnNlIGZhY2lsaXR5LgogCSAqLwotCWlmICgoY2Rldl9pcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSAmJgorCWlmICgoY2Rldl9pcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgJiYKIAkgICAgIShjZGV2X2lyYi0+ZXN3LmVzdzAuZXJ3LmNvbnMpKQogCQljZGV2LT5wcml2YXRlLT5mbGFncy5kb3NlbnNlID0gMTsKIH0KQEAgLTMxNyw3ICszMTYsNyBAQAogCXNjaCA9IHRvX3N1YmNoYW5uZWwoY2Rldi0+ZGV2LnBhcmVudCk7CiAKIAkvKiBBIHNlbnNlIGlzIHJlcXVpcmVkLCBjYW4gd2UgZG8gaXQgbm93ID8gKi8KLQlpZiAoKGlyYi0+c2Nzdy5hY3RsICAmIChTQ1NXX0FDVExfREVWQUNUIHwgU0NTV19BQ1RMX1NDSEFDVCkpICE9IDApCisJaWYgKHNjc3dfYWN0bCgmaXJiLT5zY3N3KSAmIChTQ1NXX0FDVExfREVWQUNUIHwgU0NTV19BQ1RMX1NDSEFDVCkpCiAJCS8qCiAJCSAqIHdlIHJlY2VpdmVkIGFuIFVuaXQgQ2hlY2sgYnV0IHdlIGhhdmUgbm8gZmluYWwKIAkJICogIHN0YXR1cyB5ZXQsIHRoZXJlZm9yZSB3ZSBtdXN0IGRlbGF5IHRoZSBTRU5TRQpAQCAtMzU1LDIwICszNTQsMTggQEAKIAkgKiBJZiBub3QsIHRoZSByZW1haW5pbmcgYml0IGhhdmUgbm8gbWVhbmluZyBhbmQgd2UgbXVzdCBpZ25vcmUgdGhlbS4KIAkgKiBUaGUgZXN3IGlzIG5vdCBtZWFuaW5nZnVsIGFzIHdlbGwuLi4KIAkgKi8KLQlpZiAoIShpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkKKwlpZiAoIShzY3N3X3N0Y3RsKCZpcmItPnNjc3cpICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpCiAJCXJldHVybjsKIAogCS8qIENoZWNrIGZvciBjaGFubmVsIGNoZWNrcyBhbmQgaW50ZXJmYWNlIGNvbnRyb2wgY2hlY2tzLiAqLwogCWNjd19kZXZpY2VfbXNnX2NvbnRyb2xfY2hlY2soY2RldiwgaXJiKTsKIAogCS8qIENoZWNrIGZvciBwYXRoIG5vdCBvcGVyYXRpb25hbC4gKi8KLQlpZiAoaXJiLT5zY3N3LnBubyAmJiBpcmItPnNjc3cuZmN0bCAhPSAwICYmCi0JICAgICghKGlyYi0+c2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSB8fAotCSAgICAgKGlyYi0+c2Nzdy5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpKQorCWlmIChzY3N3X2lzX3ZhbGlkX3BubygmaXJiLT5zY3N3KSAmJiBzY3N3X3BubygmaXJiLT5zY3N3KSkKIAkJY2N3X2RldmljZV9wYXRoX25vdG9wZXIoY2Rldik7CiAKLQlpZiAoIShpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSAmJgotCSAgICAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQ0hOX0VORCkpIHsKKwlpZiAoIShpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgJiYKKwkgICAgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9DSE5fRU5EKSkgewogCQljZGV2LT5wcml2YXRlLT5pcmIuZXN3LmVzdzAuZXJ3LmNvbnMgPSAxOwogCQljZGV2LT5wcml2YXRlLT5mbGFncy5kb3NlbnNlID0gMDsKIAl9CkBAIC0zODYsMTEgKzM4MywxMSBAQAogY2N3X2RldmljZV9hY2N1bXVsYXRlX2FuZF9zZW5zZShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IGlyYiAqaXJiKQogewogCWNjd19kZXZpY2VfYWNjdW11bGF0ZV9pcmIoY2RldiwgaXJiKTsKLQlpZiAoKGlyYi0+c2Nzdy5hY3RsICAmIChTQ1NXX0FDVExfREVWQUNUIHwgU0NTV19BQ1RMX1NDSEFDVCkpICE9IDApCisJaWYgKChpcmItPnNjc3cuY21kLmFjdGwgICYgKFNDU1dfQUNUTF9ERVZBQ1QgfCBTQ1NXX0FDVExfU0NIQUNUKSkgIT0gMCkKIAkJcmV0dXJuIC1FQlVTWTsKIAkvKiBDaGVjayBmb3IgYmFzaWMgc2Vuc2UuICovCiAJaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UgJiYKLQkgICAgIShpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSkgeworCSAgICAhKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSkgewogCQljZGV2LT5wcml2YXRlLT5pcmIuZXN3LmVzdzAuZXJ3LmNvbnMgPSAxOwogCQljZGV2LT5wcml2YXRlLT5mbGFncy5kb3NlbnNlID0gMDsKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2ZjeC5jIGIvZHJpdmVycy9zMzkwL2Npby9mY3guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTY3N2RmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9zMzkwL2Npby9mY3guYwpAQCAtMCwwICsxLDM1MCBAQAorLyoKKyAqICBGdW5jdGlvbnMgZm9yIGFzc2VtYmxpbmcgZmN4IGVuYWJsZWQgSS9PIGNvbnRyb2wgYmxvY2tzLgorICoKKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwOAorICogICAgQXV0aG9yKHMpOiBQZXRlciBPYmVycGFybGVpdGVyIDxwZXRlci5vYmVycGFybGVpdGVyQGRlLmlibS5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxhc20vZmN4Lmg+CisjaW5jbHVkZSAiY2lvLmgiCisKKy8qKgorICogdGN3X2dldF9pbnRyZyAtIHJldHVybiBwb2ludGVyIHRvIGFzc29jaWF0ZWQgaW50ZXJyb2dhdGUgdGN3CisgKiBAdGN3OiBwb2ludGVyIHRvIHRoZSBvcmlnaW5hbCB0Y3cKKyAqCisgKiBSZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBpbnRlcnJvZ2F0ZSB0Y3cgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgdGN3CisgKiBvciAlTlVMTCBpZiB0aGVyZSBpcyBubyBhc3NvY2lhdGVkIGludGVycm9nYXRlIHRjdy4KKyAqLworc3RydWN0IHRjdyAqdGN3X2dldF9pbnRyZyhzdHJ1Y3QgdGN3ICp0Y3cpCit7CisJcmV0dXJuIChzdHJ1Y3QgdGN3ICopICgoYWRkcl90KSB0Y3ctPmludHJnKTsKK30KK0VYUE9SVF9TWU1CT0wodGN3X2dldF9pbnRyZyk7CisKKy8qKgorICogdGN3X2dldF9kYXRhIC0gcmV0dXJuIHBvaW50ZXIgdG8gaW5wdXQvb3V0cHV0IGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRjdworICogQHRjdzogcG9pbnRlciB0byB0aGUgdGN3CisgKgorICogUmV0dXJuIHRoZSBpbnB1dCBvciBvdXRwdXQgZGF0YSBhZGRyZXNzIHNwZWNpZmllZCBpbiB0aGUgdGN3IGRlcGVuZGluZworICogb24gd2hldGhlciB0aGUgci1iaXQgb3IgdGhlIHctYml0IGlzIHNldC4gSWYgbmVpdGhlciBiaXQgaXMgc2V0LCByZXR1cm4KKyAqICVOVUxMLgorICovCit2b2lkICp0Y3dfZ2V0X2RhdGEoc3RydWN0IHRjdyAqdGN3KQoreworCWlmICh0Y3ctPnIpCisJCXJldHVybiAodm9pZCAqKSAoKGFkZHJfdCkgdGN3LT5pbnB1dCk7CisJaWYgKHRjdy0+dykKKwkJcmV0dXJuICh2b2lkICopICgoYWRkcl90KSB0Y3ctPm91dHB1dCk7CisJcmV0dXJuIE5VTEw7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19nZXRfZGF0YSk7CisKKy8qKgorICogdGN3X2dldF90Y2NiIC0gcmV0dXJuIHBvaW50ZXIgdG8gdGNjYiBhc3NvY2lhdGVkIHdpdGggdGN3CisgKiBAdGN3OiBwb2ludGVyIHRvIHRoZSB0Y3cKKyAqCisgKiBSZXR1cm4gcG9pbnRlciB0byB0aGUgdGNjYiBhc3NvY2lhdGVkIHdpdGggdGhpcyB0Y3cuCisgKi8KK3N0cnVjdCB0Y2NiICp0Y3dfZ2V0X3RjY2Ioc3RydWN0IHRjdyAqdGN3KQoreworCXJldHVybiAoc3RydWN0IHRjY2IgKikgKChhZGRyX3QpIHRjdy0+dGNjYik7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19nZXRfdGNjYik7CisKKy8qKgorICogdGN3X2dldF90c2IgLSByZXR1cm4gcG9pbnRlciB0byB0c2IgYXNzb2NpYXRlZCB3aXRoIHRjdworICogQHRjdzogcG9pbnRlciB0byB0aGUgdGN3CisgKgorICogUmV0dXJuIHBvaW50ZXIgdG8gdGhlIHRzYiBhc3NvY2lhdGVkIHdpdGggdGhpcyB0Y3cuCisgKi8KK3N0cnVjdCB0c2IgKnRjd19nZXRfdHNiKHN0cnVjdCB0Y3cgKnRjdykKK3sKKwlyZXR1cm4gKHN0cnVjdCB0c2IgKikgKChhZGRyX3QpIHRjdy0+dHNiKTsKK30KK0VYUE9SVF9TWU1CT0wodGN3X2dldF90c2IpOworCisvKioKKyAqIHRjd19pbml0IC0gaW5pdGlhbGl6ZSB0Y3cgZGF0YSBzdHJ1Y3R1cmUKKyAqIEB0Y3c6IHBvaW50ZXIgdG8gdGhlIHRjdyB0byBiZSBpbml0aWFsaXplZAorICogQHI6IGluaXRpYWwgdmFsdWUgb2YgdGhlIHItYml0CisgKiBAdzogaW5pdGlhbCB2YWx1ZSBvZiB0aGUgdy1iaXQKKyAqCisgKiBJbml0aWFsaXplIGFsbCBmaWVsZHMgb2YgdGhlIHNwZWNpZmllZCB0Y3cgZGF0YSBzdHJ1Y3R1cmUgd2l0aCB6ZXJvIGFuZAorICogZmlsbCBpbiB0aGUgZm9ybWF0LCBmbGFncywgciBhbmQgdyBmaWVsZHMuCisgKi8KK3ZvaWQgdGN3X2luaXQoc3RydWN0IHRjdyAqdGN3LCBpbnQgciwgaW50IHcpCit7CisJbWVtc2V0KHRjdywgMCwgc2l6ZW9mKHN0cnVjdCB0Y3cpKTsKKwl0Y3ctPmZvcm1hdCA9IFRDV19GT1JNQVRfREVGQVVMVDsKKwl0Y3ctPmZsYWdzID0gVENXX0ZMQUdTX1RJREFXX0ZPUk1BVChUQ1dfVElEQVdfRk9STUFUX0RFRkFVTFQpOworCWlmIChyKQorCQl0Y3ctPnIgPSAxOworCWlmICh3KQorCQl0Y3ctPncgPSAxOworfQorRVhQT1JUX1NZTUJPTCh0Y3dfaW5pdCk7CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IHRjYV9zaXplKHN0cnVjdCB0Y2NiICp0Y2NiKQoreworCXJldHVybiB0Y2NiLT50Y2FoLnRjYWwgLSAxMjsKK30KKworc3RhdGljIHUzMiBjYWxjX2Rjd19jb3VudChzdHJ1Y3QgdGNjYiAqdGNjYikKK3sKKwlpbnQgb2Zmc2V0OworCXN0cnVjdCBkY3cgKmRjdzsKKwl1MzIgY291bnQgPSAwOworCXNpemVfdCBzaXplOworCisJc2l6ZSA9IHRjYV9zaXplKHRjY2IpOworCWZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgc2l6ZTspIHsKKwkJZGN3ID0gKHN0cnVjdCBkY3cgKikgJnRjY2ItPnRjYVtvZmZzZXRdOworCQljb3VudCArPSBkY3ctPmNvdW50OworCQlpZiAoIShkY3ctPmZsYWdzICYgRENXX0ZMQUdTX0NDKSkKKwkJCWJyZWFrOworCQlvZmZzZXQgKz0gc2l6ZW9mKHN0cnVjdCBkY3cpICsgQUxJR04oKGludCkgZGN3LT5jZF9jb3VudCwgNCk7CisJfQorCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIHUzMiBjYWxjX2NiY19zaXplKHN0cnVjdCB0aWRhdyAqdGlkYXcsIGludCBudW0pCit7CisJaW50IGk7CisJdTMyIGNiY19kYXRhOworCXUzMiBjYmNfY291bnQgPSAwOworCXU2NCBkYXRhX2NvdW50ID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgeworCQlpZiAodGlkYXdbaV0uZmxhZ3MgJiBUSURBV19GTEFHU19MQVNUKQorCQkJYnJlYWs7CisJCS8qIFRPRE86IGZpbmQgb3V0IGlmIHBhZGRpbmcgYXBwbGllcyB0byB0b3RhbCBvZiBkYXRhCisJCSAqIHRyYW5zZmVycmVkIG9yIGRhdGEgdHJhbnNmZXJyZWQgYnkgdGhpcyB0aWRhdy4gQXNzdW1wdGlvbjoKKwkJICogYXBwbGllcyB0byB0b3RhbC4gKi8KKwkJZGF0YV9jb3VudCArPSB0aWRhd1tpXS5jb3VudDsKKwkJaWYgKHRpZGF3W2ldLmZsYWdzICYgVElEQVdfRkxBR1NfSU5TRVJUX0NCQykgeworCQkJY2JjX2RhdGEgPSA0ICsgQUxJR04oZGF0YV9jb3VudCwgNCkgLSBkYXRhX2NvdW50OworCQkJY2JjX2NvdW50ICs9IGNiY19kYXRhOworCQkJZGF0YV9jb3VudCArPSBjYmNfZGF0YTsKKwkJfQorCX0KKwlyZXR1cm4gY2JjX2NvdW50OworfQorCisvKioKKyAqIHRjd19maW5hbGl6ZSAtIGZpbmFsaXplIHRjdyBsZW5ndGggZmllbGRzIGFuZCB0aWRhdyBsaXN0CisgKiBAdGN3OiBwb2ludGVyIHRvIHRoZSB0Y3cKKyAqIEBudW1fdGlkYXdzOiB0aGUgbnVtYmVyIG9mIHRpZGF3cyB1c2VkIHRvIGFkZHJlc3MgaW5wdXQvb3V0cHV0IGRhdGEgb3IgemVybworICogaWYgbm8gdGlkYSBpcyB1c2VkCisgKgorICogQ2FsY3VsYXRlIHRoZSBpbnB1dC0vb3V0cHV0LWNvdW50IGFuZCB0Y2NibCBmaWVsZCBpbiB0aGUgdGN3LCBhZGQgYQorICogdGNhdCB0aGUgdGNjYiBhbmQgdGVybWluYXRlIHRoZSBkYXRhIHRpZGF3IGxpc3QgaWYgdXNlZC4KKyAqCisgKiBOb3RlOiBpbiBjYXNlIGlucHV0LSBvciBvdXRwdXQtdGlkYSBpcyB1c2VkLCB0aGUgdGlkYXctbGlzdCBtdXN0IGJlIHN0b3JlZAorICogaW4gY29udGlndW91cyBzdG9yYWdlIChubyB0dGljKS4gVGhlIHRjYWwgZmllbGQgaW4gdGhlIHRjY2IgbXVzdCBiZQorICogdXAtdG8tZGF0ZS4KKyAqLwordm9pZCB0Y3dfZmluYWxpemUoc3RydWN0IHRjdyAqdGN3LCBpbnQgbnVtX3RpZGF3cykKK3sKKwlzdHJ1Y3QgdGlkYXcgKnRpZGF3OworCXN0cnVjdCB0Y2NiICp0Y2NiOworCXN0cnVjdCB0Y2NiX3RjYXQgKnRjYXQ7CisJdTMyIGNvdW50OworCisJLyogVGVybWluYXRlIHRpZGF3IGxpc3QuICovCisJdGlkYXcgPSB0Y3dfZ2V0X2RhdGEodGN3KTsKKwlpZiAobnVtX3RpZGF3cyA+IDApCisJCXRpZGF3W251bV90aWRhd3MgLSAxXS5mbGFncyB8PSBUSURBV19GTEFHU19MQVNUOworCS8qIEFkZCB0Y2F0IHRvIHRjY2IuICovCisJdGNjYiA9IHRjd19nZXRfdGNjYih0Y3cpOworCXRjYXQgPSAoc3RydWN0IHRjY2JfdGNhdCAqKSAmdGNjYi0+dGNhW3RjYV9zaXplKHRjY2IpXTsKKwltZW1zZXQodGNhdCwgMCwgc2l6ZW9mKHRjYXQpKTsKKwkvKiBDYWxjdWxhdGUgdGN3IGlucHV0L291dHB1dCBjb3VudCBhbmQgdGNhdCB0cmFuc3BvcnQgY291bnQuICovCisJY291bnQgPSBjYWxjX2Rjd19jb3VudCh0Y2NiKTsKKwlpZiAodGN3LT53ICYmICh0Y3ctPmZsYWdzICYgVENXX0ZMQUdTX09VVFBVVF9USURBKSkKKwkJY291bnQgKz0gY2FsY19jYmNfc2l6ZSh0aWRhdywgbnVtX3RpZGF3cyk7CisJaWYgKHRjdy0+cikKKwkJdGN3LT5pbnB1dF9jb3VudCA9IGNvdW50OworCWVsc2UgaWYgKHRjdy0+dykKKwkJdGN3LT5vdXRwdXRfY291bnQgPSBjb3VudDsKKwl0Y2F0LT5jb3VudCA9IEFMSUdOKGNvdW50LCA0KSArIDQ7CisJLyogQ2FsY3VsYXRlIHRjY2JsLiAqLworCXRjdy0+dGNjYmwgPSAoc2l6ZW9mKHN0cnVjdCB0Y2NiKSArIHRjYV9zaXplKHRjY2IpICsKKwkJICAgICAgc2l6ZW9mKHN0cnVjdCB0Y2NiX3RjYXQpIC0gMjApID4+IDI7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19maW5hbGl6ZSk7CisKKy8qKgorICogdGN3X3NldF9pbnRyZyAtIHNldCB0aGUgaW50ZXJyb2dhdGUgdGN3IGFkZHJlc3Mgb2YgYSB0Y3cKKyAqIEB0Y3c6IHRoZSB0Y3cgYWRkcmVzcworICogQGludHJnX3RjdzogdGhlIGFkZHJlc3Mgb2YgdGhlIGludGVycm9nYXRlIHRjdworICoKKyAqIFNldCB0aGUgYWRkcmVzcyBvZiB0aGUgaW50ZXJyb2dhdGUgdGN3IGluIHRoZSBzcGVjaWZpZWQgdGN3LgorICovCit2b2lkIHRjd19zZXRfaW50cmcoc3RydWN0IHRjdyAqdGN3LCBzdHJ1Y3QgdGN3ICppbnRyZ190Y3cpCit7CisJdGN3LT5pbnRyZyA9ICh1MzIpICgoYWRkcl90KSBpbnRyZ190Y3cpOworfQorRVhQT1JUX1NZTUJPTCh0Y3dfc2V0X2ludHJnKTsKKworLyoqCisgKiB0Y3dfc2V0X2RhdGEgLSBzZXQgZGF0YSBhZGRyZXNzIGFuZCB0aWRhIGZsYWcgb2YgYSB0Y3cKKyAqIEB0Y3c6IHRoZSB0Y3cgYWRkcmVzcworICogQGRhdGE6IHRoZSBkYXRhIGFkZHJlc3MKKyAqIEB1c2VfdGlkYWw6IHplcm8gb2YgdGhlIGRhdGEgYWRkcmVzcyBzcGVjaWZpZXMgYSBjb250aWd1b3VzIGJsb2NrIG9mIGRhdGEsCisgKiBub24temVybyBpZiBpdCBzcGVjaWZpZXMgYSBsaXN0IGlmIHRpZGF3cy4KKyAqCisgKiBTZXQgdGhlIGlucHV0L291dHB1dCBkYXRhIGFkZHJlc3Mgb2YgYSB0Y3cgKGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdGhlCisgKiByLWZsYWcgYW5kIHctZmxhZykuIElmIEB1c2VfdGlkYWwgaXMgbm9uLXplcm8sIHRoZSBjb3JyZXNwb25kaW5nIHRpZGEgZmxhZworICogaXMgc2V0IGFzIHdlbGwuCisgKi8KK3ZvaWQgdGN3X3NldF9kYXRhKHN0cnVjdCB0Y3cgKnRjdywgdm9pZCAqZGF0YSwgaW50IHVzZV90aWRhbCkKK3sKKwlpZiAodGN3LT5yKSB7CisJCXRjdy0+aW5wdXQgPSAodTY0KSAoKGFkZHJfdCkgZGF0YSk7CisJCWlmICh1c2VfdGlkYWwpCisJCQl0Y3ctPmZsYWdzIHw9IFRDV19GTEFHU19JTlBVVF9USURBOworCX0gZWxzZSBpZiAodGN3LT53KSB7CisJCXRjdy0+b3V0cHV0ID0gKHU2NCkgKChhZGRyX3QpIGRhdGEpOworCQlpZiAodXNlX3RpZGFsKQorCQkJdGN3LT5mbGFncyB8PSBUQ1dfRkxBR1NfT1VUUFVUX1RJREE7CisJfQorfQorRVhQT1JUX1NZTUJPTCh0Y3dfc2V0X2RhdGEpOworCisvKioKKyAqIHRjd19zZXRfdGNjYiAtIHNldCB0Y2NiIGFkZHJlc3Mgb2YgYSB0Y3cKKyAqIEB0Y3c6IHRoZSB0Y3cgYWRkcmVzcworICogQHRjY2I6IHRoZSB0Y2NiIGFkZHJlc3MKKyAqCisgKiBTZXQgdGhlIGFkZHJlc3Mgb2YgdGhlIHRjY2IgaW4gdGhlIHNwZWNpZmllZCB0Y3cuCisgKi8KK3ZvaWQgdGN3X3NldF90Y2NiKHN0cnVjdCB0Y3cgKnRjdywgc3RydWN0IHRjY2IgKnRjY2IpCit7CisJdGN3LT50Y2NiID0gKHU2NCkgKChhZGRyX3QpIHRjY2IpOworfQorRVhQT1JUX1NZTUJPTCh0Y3dfc2V0X3RjY2IpOworCisvKioKKyAqIHRjd19zZXRfdHNiIC0gc2V0IHRzYiBhZGRyZXNzIG9mIGEgdGN3CisgKiBAdGN3OiB0aGUgdGN3IGFkZHJlc3MKKyAqIEB0c2I6IHRoZSB0c2IgYWRkcmVzcworICoKKyAqIFNldCB0aGUgYWRkcmVzcyBvZiB0aGUgdHNiIGluIHRoZSBzcGVjaWZpZWQgdGN3LgorICovCit2b2lkIHRjd19zZXRfdHNiKHN0cnVjdCB0Y3cgKnRjdywgc3RydWN0IHRzYiAqdHNiKQoreworCXRjdy0+dHNiID0gKHU2NCkgKChhZGRyX3QpIHRzYik7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19zZXRfdHNiKTsKKworLyoqCisgKiB0Y2NiX2luaXQgLSBpbml0aWFsaXplIHRjY2IKKyAqIEB0Y2NiOiB0aGUgdGNjYiBhZGRyZXNzCisgKiBAc2l6ZTogdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgdGNjYgorICogQHNhYzogdGhlIHNlcnZpY2UtYWN0aW9uLWNvZGUgdG8gYmUgdXNlcgorICoKKyAqIEluaXRpYWxpemUgdGhlIGhlYWRlciBvZiB0aGUgc3BlY2lmaWVkIHRjY2IgYnkgcmVzZXR0aW5nIGFsbCB2YWx1ZXMgdG8gemVybworICogYW5kIGZpbGxpbmcgaW4gZGVmYXVsdHMgZm9yIGZvcm1hdCwgc2FjIGFuZCBpbml0aWFsIHRjYWwgZmllbGRzLgorICovCit2b2lkIHRjY2JfaW5pdChzdHJ1Y3QgdGNjYiAqdGNjYiwgc2l6ZV90IHNpemUsIHUzMiBzYWMpCit7CisJbWVtc2V0KHRjY2IsIDAsIHNpemUpOworCXRjY2ItPnRjYWguZm9ybWF0ID0gVENDQl9GT1JNQVRfREVGQVVMVDsKKwl0Y2NiLT50Y2FoLnNhYyA9IHNhYzsKKwl0Y2NiLT50Y2FoLnRjYWwgPSAxMjsKK30KK0VYUE9SVF9TWU1CT0wodGNjYl9pbml0KTsKKworLyoqCisgKiB0c2JfaW5pdCAtIGluaXRpYWxpemUgdHNiCisgKiBAdHNiOiB0aGUgdHNiIGFkZHJlc3MKKyAqCisgKiBJbml0aWFsaXplIHRoZSBzcGVjaWZpZWQgdHNiIGJ5IHJlc2V0dGluZyBhbGwgdmFsdWVzIHRvIHplcm8uCisgKi8KK3ZvaWQgdHNiX2luaXQoc3RydWN0IHRzYiAqdHNiKQoreworCW1lbXNldCh0c2IsIDAsIHNpemVvZih0c2IpKTsKK30KK0VYUE9SVF9TWU1CT0wodHNiX2luaXQpOworCisvKioKKyAqIHRjY2JfYWRkX2RjdyAtIGFkZCBhIGRjdyB0byB0aGUgdGNjYgorICogQHRjY2I6IHRoZSB0Y2NiIGFkZHJlc3MKKyAqIEB0Y2NiX3NpemU6IHRoZSBtYXhpbXVtIHRjY2Igc2l6ZQorICogQGNtZDogdGhlIGRjdyBjb21tYW5kCisgKiBAZmxhZ3M6IGZsYWdzIGZvciB0aGUgZGN3CisgKiBAY2Q6IHBvaW50ZXIgdG8gY29udHJvbCBkYXRhIGZvciB0aGlzIGRjdyBvciBOVUxMIGlmIG5vbmUgaXMgcmVxdWlyZWQKKyAqIEBjZF9jb3VudDogbnVtYmVyIG9mIGNvbnRyb2wgZGF0YSBieXRlcyBmb3IgdGhpcyBkY3cKKyAqIEBjb3VudDogbnVtYmVyIG9mIGRhdGEgYnl0ZXMgZm9yIHRoaXMgZGN3CisgKgorICogQWRkIGEgbmV3IGRjdyB0byB0aGUgc3BlY2lmaWVkIHRjY2IgYnkgd3JpdGluZyB0aGUgZGN3IGluZm9ybWF0aW9uIHNwZWNpZmllZAorICogYnkgQGNtZCwgQGZsYWdzLCBAY2QsIEBjZF9jb3VudCBhbmQgQGNvdW50IHRvIHRoZSB0Y2Egb2YgdGhlIHRjY2IuIFJldHVybgorICogYSBwb2ludGVyIHRvIHRoZSBuZXdseSBhZGRlZCBkY3cgb24gc3VjY2VzcyBvciAtJUVOT1NQQyBpZiB0aGUgbmV3IGRjdworICogd291bGQgZXhjZWVkIHRoZSBhdmFpbGFibGUgc3BhY2UgYXMgZGVmaW5lZCBieSBAdGNjYl9zaXplLgorICoKKyAqIE5vdGU6IHRoZSB0Y2FsIGZpZWxkIG9mIHRoZSB0Y2NiIGhlYWRlciB3aWxsIGJlIHVwZGF0ZXMgdG8gcmVmbGVjdCBhZGRlZAorICogY29udGVudC4KKyAqLworc3RydWN0IGRjdyAqdGNjYl9hZGRfZGN3KHN0cnVjdCB0Y2NiICp0Y2NiLCBzaXplX3QgdGNjYl9zaXplLCB1OCBjbWQsIHU4IGZsYWdzLAorCQkJIHZvaWQgKmNkLCB1OCBjZF9jb3VudCwgdTMyIGNvdW50KQoreworCXN0cnVjdCBkY3cgKmRjdzsKKwlpbnQgc2l6ZTsKKwlpbnQgdGNhX29mZnNldDsKKworCS8qIENoZWNrIGZvciBzcGFjZS4gKi8KKwl0Y2Ffb2Zmc2V0ID0gdGNhX3NpemUodGNjYik7CisJc2l6ZSA9IEFMSUdOKHNpemVvZihzdHJ1Y3QgZGN3KSArIGNkX2NvdW50LCA0KTsKKwlpZiAoc2l6ZW9mKHN0cnVjdCB0Y2NiX3RjYWgpICsgdGNhX29mZnNldCArIHNpemUgKworCSAgICBzaXplb2Yoc3RydWN0IHRjY2JfdGNhdCkgPiB0Y2NiX3NpemUpCisJCXJldHVybiBFUlJfUFRSKC1FTk9TUEMpOworCS8qIEFkZCBkY3cgdG8gdGNhLiAqLworCWRjdyA9IChzdHJ1Y3QgZGN3ICopICZ0Y2NiLT50Y2FbdGNhX29mZnNldF07CisJbWVtc2V0KGRjdywgMCwgc2l6ZSk7CisJZGN3LT5jbWQgPSBjbWQ7CisJZGN3LT5mbGFncyA9IGZsYWdzOworCWRjdy0+Y291bnQgPSBjb3VudDsKKwlkY3ctPmNkX2NvdW50ID0gY2RfY291bnQ7CisJaWYgKGNkKQorCQltZW1jcHkoJmRjdy0+Y2RbMF0sIGNkLCBjZF9jb3VudCk7CisJdGNjYi0+dGNhaC50Y2FsICs9IHNpemU7CisJcmV0dXJuIGRjdzsKK30KK0VYUE9SVF9TWU1CT0wodGNjYl9hZGRfZGN3KTsKKworLyoqCisgKiB0Y3dfYWRkX3RpZGF3IC0gYWRkIGEgdGlkYXcgdG8gYSB0Y3cKKyAqIEB0Y3c6IHRoZSB0Y3cgYWRkcmVzcworICogQG51bV90aWRhd3M6IHRoZSBjdXJyZW50IG51bWJlciBvZiB0aWRhd3MKKyAqIEBmbGFnczogZmxhZ3MgZm9yIHRoZSBuZXcgdGlkYXcKKyAqIEBhZGRyOiBhZGRyZXNzIHZhbHVlIGZvciB0aGUgbmV3IHRpZGF3CisgKiBAY291bnQ6IGNvdW50IHZhbHVlIGZvciB0aGUgbmV3IHRpZGF3CisgKgorICogQWRkIGEgbmV3IHRpZGF3IHRvIHRoZSBpbnB1dC9vdXRwdXQgZGF0YSB0aWRhdy1saXN0IG9mIHRoZSBzcGVjaWZpZWQgdGN3CisgKiAoZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUgci1mbGFnIGFuZCB3LWZsYWcpIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvCisgKiB0aGUgbmV3IHRpZGF3LgorICoKKyAqIE5vdGU6IHRoZSB0aWRhdy1saXN0IGlzIGFzc3VtZWQgdG8gYmUgY29udGlndW91cyB3aXRoIG5vIHR0aWNzLiBUaGUgY2FsbGVyCisgKiBtdXN0IGVuc3VyZSB0aGF0IHRoZXJlIGlzIGVub3VnaCBzcGFjZSBmb3IgdGhlIG5ldyB0aWRhdy4gVGhlIGxhc3QtdGlkYXcKKyAqIGZsYWcgZm9yIHRoZSBsYXN0IHRpZGF3IGluIHRoZSBsaXN0IHdpbGwgYmUgc2V0IGJ5IHRjd19maW5hbGl6ZS4KKyAqLworc3RydWN0IHRpZGF3ICp0Y3dfYWRkX3RpZGF3KHN0cnVjdCB0Y3cgKnRjdywgaW50IG51bV90aWRhd3MsIHU4IGZsYWdzLAorCQkJICAgIHZvaWQgKmFkZHIsIHUzMiBjb3VudCkKK3sKKwlzdHJ1Y3QgdGlkYXcgKnRpZGF3OworCisJLyogQWRkIHRpZGF3IHRvIHRpZGF3LWxpc3QuICovCisJdGlkYXcgPSAoKHN0cnVjdCB0aWRhdyAqKSB0Y3dfZ2V0X2RhdGEodGN3KSkgKyBudW1fdGlkYXdzOworCW1lbXNldCh0aWRhdywgMCwgc2l6ZW9mKHN0cnVjdCB0aWRhdykpOworCXRpZGF3LT5mbGFncyA9IGZsYWdzOworCXRpZGF3LT5jb3VudCA9IGNvdW50OworCXRpZGF3LT5hZGRyID0gKHU2NCkgKChhZGRyX3QpIGFkZHIpOworCXJldHVybiB0aWRhdzsKK30KK0VYUE9SVF9TWU1CT0wodGN3X2FkZF90aWRhdyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2lkc2V0LmggYi9kcml2ZXJzL3MzOTAvY2lvL2lkc2V0LmgKaW5kZXggMTQ0NDY2YS4uNTI4MDY1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9pZHNldC5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vaWRzZXQuaApAQCAtOCw3ICs4LDcgQEAKICNpZm5kZWYgUzM5MF9JRFNFVF9ICiAjZGVmaW5lIFMzOTBfSURTRVRfSCBTMzkwX0lEU0VUX0gKIAotI2luY2x1ZGUgInNjaGlkLmgiCisjaW5jbHVkZSA8YXNtL3NjaGlkLmg+CiAKIHN0cnVjdCBpZHNldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9pb19zY2guaCBiL2RyaXZlcnMvczM5MC9jaW8vaW9fc2NoLmgKaW5kZXggOGM2MTMxNi4uM2Y4ZjFjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9pb19zY2guaAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2lvX3NjaC5oCkBAIC0xLDEyICsxLDEyIEBACiAjaWZuZGVmIFMzOTBfSU9fU0NIX0gKICNkZWZpbmUgUzM5MF9JT19TQ0hfSAogCi0jaW5jbHVkZSAic2NoaWQuaCIKKyNpbmNsdWRlIDxhc20vc2NoaWQuaD4KIAogLyoKLSAqIG9wZXJhdGlvbiByZXF1ZXN0IGJsb2NrCisgKiBjb21tYW5kLW1vZGUgb3BlcmF0aW9uIHJlcXVlc3QgYmxvY2sKICAqLwotc3RydWN0IG9yYiB7CitzdHJ1Y3QgY21kX29yYiB7CiAJdTMyIGludHBhcm07CS8qIGludGVycnVwdGlvbiBwYXJhbWV0ZXIgKi8KIAl1MzIga2V5ICA6IDQ7CS8qIGZsYWdzLCBsaWtlIGtleSwgc3VzcGVuZCBjb250cm9sLCBldGMuICovCiAJdTMyIHNwbmQgOiAxOwkvKiBzdXNwZW5kIGNvbnRyb2wgKi8KQEAgLTI4LDggKzI4LDM2IEBACiAJdTMyIGNwYTsJLyogY2hhbm5lbCBwcm9ncmFtIGFkZHJlc3MgKi8KIH0gIF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoNCkpKTsKIAorLyoKKyAqIHRyYW5zcG9ydC1tb2RlIG9wZXJhdGlvbiByZXF1ZXN0IGJsb2NrCisgKi8KK3N0cnVjdCB0bV9vcmIgeworCXUzMiBpbnRwYXJtOworCXUzMiBrZXk6NDsKKwl1MzIgOjk7CisJdTMyIGI6MTsKKwl1MzIgOjI7CisJdTMyIGxwbTo4OworCXUzMiA6NzsKKwl1MzIgeDoxOworCXUzMiB0Y3c7CisJdTMyIHByaW86ODsKKwl1MzIgOjg7CisJdTMyIHJzdnBnbTo4OworCXUzMiA6ODsKKwl1MzIgOjMyOworCXUzMiA6MzI7CisJdTMyIDozMjsKKwl1MzIgOjMyOworfSAgX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCwgYWxpZ25lZCg0KSkpOworCit1bmlvbiBvcmIgeworCXN0cnVjdCBjbWRfb3JiIGNtZDsKKwlzdHJ1Y3QgdG1fb3JiIHRtOworfSAgX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCwgYWxpZ25lZCg0KSkpOworCiBzdHJ1Y3QgaW9fc3ViY2hhbm5lbF9wcml2YXRlIHsKLQlzdHJ1Y3Qgb3JiIG9yYjsJCS8qIG9wZXJhdGlvbiByZXF1ZXN0IGJsb2NrICovCisJdW5pb24gb3JiIG9yYjsJCS8qIG9wZXJhdGlvbiByZXF1ZXN0IGJsb2NrICovCiAJc3RydWN0IGNjdzEgc2Vuc2VfY2N3OwkvKiBzdGF0aWMgY2N3IGZvciBzZW5zZSBjb21tYW5kICovCiB9IF9fYXR0cmlidXRlX18gKChhbGlnbmVkKDgpKSk7CiAKQEAgLTk1LDE2ICsxMjMsMTggQEAKIAl2b2lkICpjbWJfd2FpdDsJCQkvKiBkZWZlcnJlZCBjbWIgZW5hYmxlL2Rpc2FibGUgKi8KIH07CiAKLXN0YXRpYyBpbmxpbmUgaW50IHNzY2goc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsIHZvbGF0aWxlIHN0cnVjdCBvcmIgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCBzc2NoKHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkLCB2b2xhdGlsZSB1bmlvbiBvcmIgKmFkZHIpCiB7CiAJcmVnaXN0ZXIgc3RydWN0IHN1YmNoYW5uZWxfaWQgcmVnMSBhc20oIjEiKSA9IHNjaGlkOwotCWludCBjY29kZTsKKwlpbnQgY2NvZGUgPSAtRUlPOwogCiAJYXNtIHZvbGF0aWxlKAogCQkiCXNzY2gJMCglMilcbiIKLQkJIglpcG0JJTBcbiIKLQkJIglzcmwJJTAsMjgiCi0JCTogIj1kIiAoY2NvZGUpIDogImQiIChyZWcxKSwgImEiIChhZGRyKSwgIm0iICgqYWRkcikgOiAiY2MiKTsKKwkJIjA6CWlwbQklMFxuIgorCQkiCXNybAklMCwyOFxuIgorCQkiMTpcbiIKKwkJRVhfVEFCTEUoMGIsIDFiKQorCQk6ICIrZCIgKGNjb2RlKSA6ICJkIiAocmVnMSksICJhIiAoYWRkciksICJtIiAoKmFkZHIpIDogImNjIik7CiAJcmV0dXJuIGNjb2RlOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2lvYXNtLmggYi9kcml2ZXJzL3MzOTAvY2lvL2lvYXNtLmgKaW5kZXggNjUyZWEzNi4uOWZhMmFjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9pb2FzbS5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vaW9hc20uaApAQCAtMiw3ICsyLDcgQEAKICNkZWZpbmUgUzM5MF9DSU9fSU9BU01fSAogCiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+Ci0jaW5jbHVkZSAic2NoaWQuaCIKKyNpbmNsdWRlIDxhc20vc2NoaWQuaD4KIAogLyoKICAqIFRQSSBpbmZvIHN0cnVjdHVyZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9pc2MuYyBiL2RyaXZlcnMvczM5MC9jaW8vaXNjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU5MjA4NwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vaXNjLmMKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIEZ1bmN0aW9ucyBmb3IgcmVnaXN0cmF0aW9uIG9mIEkvTyBpbnRlcnJ1cHRpb24gc3ViY2xhc3NlcyBvbiBzMzkwLgorICoKKyAqIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwOAorICogQXV0aG9yczogU2ViYXN0aWFuIE90dCA8c2Vib3R0QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxhc20vaXNjLmg+CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgaXNjX3JlZnNbTUFYX0lTQyArIDFdOworc3RhdGljIERFRklORV9TUElOTE9DSyhpc2NfcmVmX2xvY2spOworCisKKy8qKgorICogaXNjX3JlZ2lzdGVyIC0gcmVnaXN0ZXIgYW4gSS9PIGludGVycnVwdGlvbiBzdWJjbGFzcy4KKyAqIEBpc2M6IEkvTyBpbnRlcnJ1cHRpb24gc3ViY2xhc3MgdG8gcmVnaXN0ZXIKKyAqCisgKiBUaGUgbnVtYmVyIG9mIHVzZXJzIGZvciBAaXNjIGlzIGluY3JlYXNlZC4gSWYgdGhpcyBpcyB0aGUgZmlyc3QgdXNlciB0bworICogcmVnaXN0ZXIgQGlzYywgdGhlIGNvcnJlc3BvbmRpbmcgSS9PIGludGVycnVwdGlvbiBzdWJjbGFzcyBtYXNrIGlzIGVuYWJsZWQuCisgKgorICogQ29udGV4dDoKKyAqICAgVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCBiZSBjYWxsZWQgaW4gaW50ZXJydXB0IGNvbnRleHQuCisgKi8KK3ZvaWQgaXNjX3JlZ2lzdGVyKHVuc2lnbmVkIGludCBpc2MpCit7CisJaWYgKGlzYyA+IE1BWF9JU0MpIHsKKwkJV0FSTl9PTigxKTsKKwkJcmV0dXJuOworCX0KKworCXNwaW5fbG9jaygmaXNjX3JlZl9sb2NrKTsKKwlpZiAoaXNjX3JlZnNbaXNjXSA9PSAwKQorCQljdGxfc2V0X2JpdCg2LCAzMSAtIGlzYyk7CisJaXNjX3JlZnNbaXNjXSsrOworCXNwaW5fdW5sb2NrKCZpc2NfcmVmX2xvY2spOworfQorRVhQT1JUX1NZTUJPTF9HUEwoaXNjX3JlZ2lzdGVyKTsKKworLyoqCisgKiBpc2NfdW5yZWdpc3RlciAtIHVucmVnaXN0ZXIgYW4gSS9PIGludGVycnVwdGlvbiBzdWJjbGFzcy4KKyAqIEBpc2M6IEkvTyBpbnRlcnJ1cHRpb24gc3ViY2xhc3MgdG8gdW5yZWdpc3RlcgorICoKKyAqIFRoZSBudW1iZXIgb2YgdXNlcnMgZm9yIEBpc2MgaXMgZGVjcmVhc2VkLiBJZiB0aGlzIGlzIHRoZSBsYXN0IHVzZXIgdG8KKyAqIHVucmVnaXN0ZXIgQGlzYywgdGhlIGNvcnJlc3BvbmRpbmcgSS9PIGludGVycnVwdGlvbiBzdWJjbGFzcyBtYXNrIGlzCisgKiBkaXNhYmxlZC4KKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgYmUgY2FsbGVkIGlmIGlzY19yZWdpc3RlcigpIGhhc24ndCBiZWVuIGNhbGxlZAorICogYmVmb3JlIGJ5IHRoZSBkcml2ZXIgZm9yIEBpc2MuCisgKgorICogQ29udGV4dDoKKyAqICAgVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCBiZSBjYWxsZWQgaW4gaW50ZXJydXB0IGNvbnRleHQuCisgKi8KK3ZvaWQgaXNjX3VucmVnaXN0ZXIodW5zaWduZWQgaW50IGlzYykKK3sKKwlzcGluX2xvY2soJmlzY19yZWZfbG9jayk7CisJLyogY2hlY2sgZm9yIG1pc3VzZSAqLworCWlmIChpc2MgPiBNQVhfSVNDIHx8IGlzY19yZWZzW2lzY10gPT0gMCkgeworCQlXQVJOX09OKDEpOworCQlnb3RvIG91dF91bmxvY2s7CisJfQorCWlmIChpc2NfcmVmc1tpc2NdID09IDEpCisJCWN0bF9jbGVhcl9iaXQoNiwgMzEgLSBpc2MpOworCWlzY19yZWZzW2lzY10tLTsKK291dF91bmxvY2s6CisJc3Bpbl91bmxvY2soJmlzY19yZWZfbG9jayk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChpc2NfdW5yZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2l0Y3cuYyBiL2RyaXZlcnMvczM5MC9jaW8vaXRjdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3ZGE5YWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2l0Y3cuYwpAQCAtMCwwICsxLDMyNyBAQAorLyoKKyAqICBGdW5jdGlvbnMgZm9yIGluY3JlbWVudGFsIGNvbnN0cnVjdGlvbiBvZiBmY3ggZW5hYmxlZCBJL08gY29udHJvbCBibG9ja3MuCisgKgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA4CisgKiAgICBBdXRob3Iocyk6IFBldGVyIE9iZXJwYXJsZWl0ZXIgPHBldGVyLm9iZXJwYXJsZWl0ZXJAZGUuaWJtLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9mY3guaD4KKyNpbmNsdWRlIDxhc20vaXRjdy5oPgorCisvKioKKyAqIHN0cnVjdCBpdGN3IC0gaW5jcmVtZW50YWwgdGN3IGhlbHBlciBkYXRhIHR5cGUKKyAqCisgKiBUaGlzIHN0cnVjdHVyZSBzZXJ2ZXMgYXMgYSBoYW5kbGUgZm9yIHRoZSBpbmNyZW1lbnRhbCBjb25zdHJ1Y3Rpb24gb2YgYQorICogdGN3IGFuZCBhc3NvY2lhdGVkIHRjY2IsIHRzYiwgZGF0YSB0aWRhdy1saXN0IHBsdXMgYW4gb3B0aW9uYWwgaW50ZXJyb2dhdGUKKyAqIHRjdyBhbmQgYXNzb2NpYXRlZCBkYXRhLiBUaGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBjb250YWluZWQgaW5zaWRlIGEgc2luZ2xlCisgKiBjb250aWd1b3VzIGJ1ZmZlciBwcm92aWRlZCBieSB0aGUgdXNlci4KKyAqCisgKiBUaGUgaXRjdyBjb25zdHJ1Y3Rpb24gZnVuY3Rpb25zIHRha2UgY2FyZSBvZiBvdmVyYWxsIGRhdGEgaW50ZWdyaXR5OgorICogLSByZXNldCB1bnVzZWQgZmllbGRzIHRvIHplcm8KKyAqIC0gZmlsbCBpbiByZXF1aXJlZCBwb2ludGVycworICogLSBlbnN1cmUgcmVxdWlyZWQgYWxpZ25tZW50IGZvciBkYXRhIHN0cnVjdHVyZXMKKyAqIC0gcHJldmVudCBkYXRhIHN0cnVjdHVyZXMgdG8gY3Jvc3MgNGstYnl0ZSBib3VuZGFyeSB3aGVyZSByZXF1aXJlZAorICogLSBjYWxjdWxhdGUgdGNjYi1yZWxhdGVkIGxlbmd0aCBmaWVsZHMKKyAqIC0gb3B0aW9uYWxseSBwcm92aWRlIHJlYWR5LW1hZGUgaW50ZXJyb2dhdGUgdGN3IGFuZCBhc3NvY2lhdGVkIHN0cnVjdHVyZXMKKyAqCisgKiBSZXN0cmljdGlvbnMgYXBwbHkgdG8gdGhlIGl0Y3dzIGNyZWF0ZWQgd2l0aCB0aGVzZSBjb25zdHJ1Y3Rpb24gZnVuY3Rpb25zOgorICogLSB0aWRhIG9ubHkgc3VwcG9ydGVkIGZvciBkYXRhIGFkZHJlc3MsIG5vdCBmb3IgdGNjYgorICogLSBvbmx5IGNvbnRpZ3VvdXMgdGlkYXctbGlzdHMgKG5vIHR0aWMpCisgKiAtIHRvdGFsIG51bWJlciBvZiBieXRlcyByZXF1aXJlZCBwZXIgaXRjdyBtYXkgbm90IGV4Y2VlZCA0ayBieXRlcworICogLSBlaXRoZXIgcmVhZCBvciB3cml0ZSBvcGVyYXRpb24gKG1heSBub3Qgd29yayB3aXRoIHI9MCBhbmQgdz0wKQorICoKKyAqIEV4YW1wbGU6CisgKiBzdHJ1Y3QgaXRjdyAqaXRjdzsKKyAqIHZvaWQgKmJ1ZmZlcjsKKyAqIHNpemVfdCBzaXplOworICoKKyAqIHNpemUgPSBpdGN3X2NhbGNfc2l6ZSgxLCAyLCAwKTsKKyAqIGJ1ZmZlciA9IGttYWxsb2Moc2l6ZSwgR0ZQX0RNQSk7CisgKiBpZiAoIWJ1ZmZlcikKKyAqCXJldHVybiAtRU5PTUVNOworICogaXRjdyA9IGl0Y3dfaW5pdChidWZmZXIsIHNpemUsIElUQ1dfT1BfUkVBRCwgMSwgMiwgMCk7CisgKiBpZiAoSVNfRVJSKGl0Y3cpKQorICoJcmV0dXJuIFBUUl9FUihpdGN3KTsKKyAqIGl0Y3dfYWRkX2RjdyhpdGN3LCAweDIsIDAsIE5VTEwsIDAsIDcyKTsKKyAqIGl0Y3dfYWRkX3RpZGF3KGl0Y3csIDAsIDB4MzAwMDAsIDIwKTsKKyAqIGl0Y3dfYWRkX3RpZGF3KGl0Y3csIDAsIDB4NDAwMDAsIDUyKTsKKyAqIGl0Y3dfZmluYWxpemUoaXRjdyk7CisgKgorICovCitzdHJ1Y3QgaXRjdyB7CisJc3RydWN0IHRjdyAqdGN3OworCXN0cnVjdCB0Y3cgKmludHJnX3RjdzsKKwlpbnQgbnVtX3RpZGF3czsKKwlpbnQgbWF4X3RpZGF3czsKKwlpbnQgaW50cmdfbnVtX3RpZGF3czsKKwlpbnQgaW50cmdfbWF4X3RpZGF3czsKK307CisKKy8qKgorICogaXRjd19nZXRfdGN3IC0gcmV0dXJuIHBvaW50ZXIgdG8gdGN3IGFzc29jaWF0ZWQgd2l0aCB0aGUgaXRjdworICogQGl0Y3c6IGFkZHJlc3Mgb2YgdGhlIGl0Y3cKKyAqCisgKiBSZXR1cm4gcG9pbnRlciB0byB0aGUgdGN3IGFzc29jaWF0ZWQgd2l0aCB0aGUgaXRjdy4KKyAqLworc3RydWN0IHRjdyAqaXRjd19nZXRfdGN3KHN0cnVjdCBpdGN3ICppdGN3KQoreworCXJldHVybiBpdGN3LT50Y3c7Cit9CitFWFBPUlRfU1lNQk9MKGl0Y3dfZ2V0X3Rjdyk7CisKKy8qKgorICogaXRjd19jYWxjX3NpemUgLSByZXR1cm4gdGhlIHNpemUgb2YgYW4gaXRjdyB3aXRoIHRoZSBnaXZlbiBwYXJhbWV0ZXJzCisgKiBAaW50cmc6IGlmIG5vbi16ZXJvLCBhZGQgYW4gaW50ZXJyb2dhdGUgdGN3CisgKiBAbWF4X3RpZGF3czogbWF4aW11bSBudW1iZXIgb2YgdGlkYXdzIHRvIGJlIHVzZWQgZm9yIGRhdGEgYWRkcmVzc2luZyBvciB6ZXJvCisgKiBpZiBubyB0aWRhIGlzIHRvIGJlIHVzZWQuCisgKiBAaW50cmdfbWF4X3RpZGF3czogbWF4aW11bSBudW1iZXIgb2YgdGlkYXdzIHRvIGJlIHVzZWQgZm9yIGRhdGEgYWRkcmVzc2luZworICogYnkgdGhlIGludGVycm9nYXRlIHRjdywgaWYgc3BlY2lmaWVkCisgKgorICogQ2FsY3VsYXRlIGFuZCByZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyByZXF1aXJlZCB0byBob2xkIGFuIGl0Y3cgd2l0aCB0aGUKKyAqIGdpdmVuIHBhcmFtZXRlcnMgYW5kIGFzc3VtaW5nIHRjY2JzIHdpdGggbWF4aW11bSBzaXplLgorICoKKyAqIE5vdGUgdGhhdCB0aGUgcmVzdWx0aW5nIHNpemUgYWxzbyBjb250YWlucyBieXRlcyBuZWVkZWQgZm9yIGFsaWdubWVudAorICogcGFkZGluZyBhcyB3ZWxsIGFzIHBhZGRpbmcgdG8gZW5zdXJlIHRoYXQgZGF0YSBzdHJ1Y3R1cmVzIGRvbid0IGNyb3NzIGEKKyAqIDRrLWJvdW5kYXJ5IHdoZXJlIHJlcXVpcmVkLgorICovCitzaXplX3QgaXRjd19jYWxjX3NpemUoaW50IGludHJnLCBpbnQgbWF4X3RpZGF3cywgaW50IGludHJnX21heF90aWRhd3MpCit7CisJc2l6ZV90IGxlbjsKKworCS8qIE1haW4gZGF0YS4gKi8KKwlsZW4gPSBzaXplb2Yoc3RydWN0IGl0Y3cpOworCWxlbiArPSAvKiBUQ1cgKi8gc2l6ZW9mKHN0cnVjdCB0Y3cpICsgLyogVENDQiAqLyBUQ0NCX01BWF9TSVpFICsKKwkgICAgICAgLyogVFNCICovIHNpemVvZihzdHJ1Y3QgdHNiKSArCisJICAgICAgIC8qIFRJREFMICovIG1heF90aWRhd3MgKiBzaXplb2Yoc3RydWN0IHRpZGF3KTsKKwkvKiBJbnRlcnJvZ2F0ZSBkYXRhLiAqLworCWlmIChpbnRyZykgeworCQlsZW4gKz0gLyogVENXICovIHNpemVvZihzdHJ1Y3QgdGN3KSArIC8qIFRDQ0IgKi8gVENDQl9NQVhfU0laRSArCisJCSAgICAgICAvKiBUU0IgKi8gc2l6ZW9mKHN0cnVjdCB0c2IpICsKKwkJICAgICAgIC8qIFRJREFMICovIGludHJnX21heF90aWRhd3MgKiBzaXplb2Yoc3RydWN0IHRpZGF3KTsKKwl9CisJLyogTWF4aW11bSByZXF1aXJlZCBhbGlnbm1lbnQgcGFkZGluZy4gKi8KKwlsZW4gKz0gLyogSW5pdGlhbCBUQ1cgKi8gNjMgKyAvKiBJbnRlcnJvZ2F0ZSBUQ0NCICovIDc7CisJLyogTWF4aW11bSBwYWRkaW5nIGZvciBzdHJ1Y3R1cmVzIHRoYXQgbWF5IG5vdCBjcm9zcyA0ayBib3VuZGFyeS4gKi8KKwlpZiAoKG1heF90aWRhd3MgPiAwKSB8fCAoaW50cmdfbWF4X3RpZGF3cyA+IDApKQorCQlsZW4gKz0gbWF4KG1heF90aWRhd3MsIGludHJnX21heF90aWRhd3MpICoKKwkJICAgICAgIHNpemVvZihzdHJ1Y3QgdGlkYXcpIC0gMTsKKwlyZXR1cm4gbGVuOworfQorRVhQT1JUX1NZTUJPTChpdGN3X2NhbGNfc2l6ZSk7CisKKyNkZWZpbmUgQ1JPU1M0Syh4LCBsKQkoKCh4KSAmIH40MDk1KSAhPSAoKHggKyBsKSAmIH40MDk1KSkKKworc3RhdGljIGlubGluZSB2b2lkICpmaXRfY2h1bmsoYWRkcl90ICpzdGFydCwgYWRkcl90IGVuZCwgc2l6ZV90IGxlbiwKKwkJCSAgICAgIGludCBhbGlnbiwgaW50IGNoZWNrXzRrKQoreworCWFkZHJfdCBhZGRyOworCisJYWRkciA9IEFMSUdOKCpzdGFydCwgYWxpZ24pOworCWlmIChjaGVja180ayAmJiBDUk9TUzRLKGFkZHIsIGxlbikpIHsKKwkJYWRkciA9IEFMSUdOKGFkZHIsIDQwOTYpOworCQlhZGRyID0gQUxJR04oYWRkciwgYWxpZ24pOworCX0KKwlpZiAoYWRkciArIGxlbiA+IGVuZCkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT1NQQyk7CisJKnN0YXJ0ID0gYWRkciArIGxlbjsKKwlyZXR1cm4gKHZvaWQgKikgYWRkcjsKK30KKworLyoqCisgKiBpdGN3X2luaXQgLSBpbml0aWFsaXplIGluY3JlbWVudGFsIHRjdyBkYXRhIHN0cnVjdHVyZQorICogQGJ1ZmZlcjogYWRkcmVzcyBvZiBidWZmZXIgdG8gdXNlIGZvciBkYXRhIHN0cnVjdHVyZXMKKyAqIEBzaXplOiBudW1iZXIgb2YgYnl0ZXMgaW4gYnVmZmVyCisgKiBAb3A6ICVJVENXX09QX1JFQUQgZm9yIGEgcmVhZCBvcGVyYXRpb24gdGN3LCAlSVRDV19PUF9XUklURSBmb3IgYSB3cml0ZQorICogb3BlcmF0aW9uIHRjdworICogQGludHJnOiBpZiBub24temVybywgYWRkIGFuZCBpbml0aWFsaXplIGFuIGludGVycm9nYXRlIHRjdworICogQG1heF90aWRhd3M6IG1heGltdW0gbnVtYmVyIG9mIHRpZGF3cyB0byBiZSB1c2VkIGZvciBkYXRhIGFkZHJlc3Npbmcgb3IgemVybworICogaWYgbm8gdGlkYSBpcyB0byBiZSB1c2VkLgorICogQGludHJnX21heF90aWRhd3M6IG1heGltdW0gbnVtYmVyIG9mIHRpZGF3cyB0byBiZSB1c2VkIGZvciBkYXRhIGFkZHJlc3NpbmcKKyAqIGJ5IHRoZSBpbnRlcnJvZ2F0ZSB0Y3csIGlmIHNwZWNpZmllZAorICoKKyAqIFByZXBhcmUgdGhlIHNwZWNpZmllZCBidWZmZXIgdG8gYmUgdXNlZCBhcyBhbiBpbmNyZW1lbnRhbCB0Y3csIGkuZS4gYQorICogaGVscGVyIGRhdGEgc3RydWN0dXJlIHRoYXQgY2FuIGJlIHVzZWQgdG8gY29uc3RydWN0IGEgdmFsaWQgdGN3IGJ5CisgKiBzdWNjZXNzaXZlIGNhbGxzIHRvIG90aGVyIGhlbHBlciBmdW5jdGlvbnMuIE5vdGU6IHRoZSBidWZmZXIgbmVlZHMgdG8gYmUKKyAqIGxvY2F0ZWQgYmVsb3cgdGhlIDJHIGFkZHJlc3MgbGltaXQuIFRoZSByZXN1bHRpbmcgdGN3IGhhcyB0aGUgZm9sbG93aW5nCisgKiByZXN0cmljdGlvbnM6CisgKiAgLSBubyB0Y2NiIHRpZGFsCisgKiAgLSBpbnB1dC9vdXRwdXQgdGlkYWwgaXMgY29udGlndW91cyAobm8gdHRpYykKKyAqICAtIHRvdGFsIGRhdGEgc2hvdWxkIG5vdCBleGNlZWQgNGsKKyAqICAtIHRjdyBzcGVjaWZpZXMgZWl0aGVyIHJlYWQgb3Igd3JpdGUgb3BlcmF0aW9uCisgKgorICogT24gc3VjY2VzcywgcmV0dXJuIHBvaW50ZXIgdG8gdGhlIHJlc3VsdGluZyBpbmNyZW1lbnRhbCB0Y3cgZGF0YSBzdHJ1Y3R1cmUsCisgKiBFUlJfUFRSIG90aGVyd2lzZS4KKyAqLworc3RydWN0IGl0Y3cgKml0Y3dfaW5pdCh2b2lkICpidWZmZXIsIHNpemVfdCBzaXplLCBpbnQgb3AsIGludCBpbnRyZywKKwkJICAgICAgIGludCBtYXhfdGlkYXdzLCBpbnQgaW50cmdfbWF4X3RpZGF3cykKK3sKKwlzdHJ1Y3QgaXRjdyAqaXRjdzsKKwl2b2lkICpjaHVuazsKKwlhZGRyX3Qgc3RhcnQ7CisJYWRkcl90IGVuZDsKKworCS8qIENoZWNrIGZvciAyRyBsaW1pdC4gKi8KKwlzdGFydCA9IChhZGRyX3QpIGJ1ZmZlcjsKKwllbmQgPSBzdGFydCArIHNpemU7CisJaWYgKGVuZCA+ICgxIDw8IDMxKSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJbWVtc2V0KGJ1ZmZlciwgMCwgc2l6ZSk7CisJLyogSVRDVy4gKi8KKwljaHVuayA9IGZpdF9jaHVuaygmc3RhcnQsIGVuZCwgc2l6ZW9mKHN0cnVjdCBpdGN3KSwgMSwgMCk7CisJaWYgKElTX0VSUihjaHVuaykpCisJCXJldHVybiBjaHVuazsKKwlpdGN3ID0gY2h1bms7CisJaXRjdy0+bWF4X3RpZGF3cyA9IG1heF90aWRhd3M7CisJaXRjdy0+aW50cmdfbWF4X3RpZGF3cyA9IGludHJnX21heF90aWRhd3M7CisJLyogTWFpbiBUQ1cuICovCisJY2h1bmsgPSBmaXRfY2h1bmsoJnN0YXJ0LCBlbmQsIHNpemVvZihzdHJ1Y3QgdGN3KSwgNjQsIDApOworCWlmIChJU19FUlIoY2h1bmspKQorCQlyZXR1cm4gY2h1bms7CisJaXRjdy0+dGN3ID0gY2h1bms7CisJdGN3X2luaXQoaXRjdy0+dGN3LCAob3AgPT0gSVRDV19PUF9SRUFEKSA/IDEgOiAwLAorCQkgKG9wID09IElUQ1dfT1BfV1JJVEUpID8gMSA6IDApOworCS8qIEludGVycm9nYXRlIFRDVy4gKi8KKwlpZiAoaW50cmcpIHsKKwkJY2h1bmsgPSBmaXRfY2h1bmsoJnN0YXJ0LCBlbmQsIHNpemVvZihzdHJ1Y3QgdGN3KSwgNjQsIDApOworCQlpZiAoSVNfRVJSKGNodW5rKSkKKwkJCXJldHVybiBjaHVuazsKKwkJaXRjdy0+aW50cmdfdGN3ID0gY2h1bms7CisJCXRjd19pbml0KGl0Y3ctPmludHJnX3RjdywgMSwgMCk7CisJCXRjd19zZXRfaW50cmcoaXRjdy0+dGN3LCBpdGN3LT5pbnRyZ190Y3cpOworCX0KKwkvKiBEYXRhIFRJREFMLiAqLworCWlmIChtYXhfdGlkYXdzID4gMCkgeworCQljaHVuayA9IGZpdF9jaHVuaygmc3RhcnQsIGVuZCwgc2l6ZW9mKHN0cnVjdCB0aWRhdykgKgorCQkJCSAgbWF4X3RpZGF3cywgMTYsIDEpOworCQlpZiAoSVNfRVJSKGNodW5rKSkKKwkJCXJldHVybiBjaHVuazsKKwkJdGN3X3NldF9kYXRhKGl0Y3ctPnRjdywgY2h1bmssIDEpOworCX0KKwkvKiBJbnRlcnJvZ2F0ZSBkYXRhIFRJREFMLiAqLworCWlmIChpbnRyZyAmJiAoaW50cmdfbWF4X3RpZGF3cyA+IDApKSB7CisJCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBzaXplb2Yoc3RydWN0IHRpZGF3KSAqCisJCQkJICBpbnRyZ19tYXhfdGlkYXdzLCAxNiwgMSk7CisJCWlmIChJU19FUlIoY2h1bmspKQorCQkJcmV0dXJuIGNodW5rOworCQl0Y3dfc2V0X2RhdGEoaXRjdy0+aW50cmdfdGN3LCBjaHVuaywgMSk7CisJfQorCS8qIFRTQi4gKi8KKwljaHVuayA9IGZpdF9jaHVuaygmc3RhcnQsIGVuZCwgc2l6ZW9mKHN0cnVjdCB0c2IpLCA4LCAwKTsKKwlpZiAoSVNfRVJSKGNodW5rKSkKKwkJcmV0dXJuIGNodW5rOworCXRzYl9pbml0KGNodW5rKTsKKwl0Y3dfc2V0X3RzYihpdGN3LT50Y3csIGNodW5rKTsKKwkvKiBJbnRlcnJvZ2F0ZSBUU0IuICovCisJaWYgKGludHJnKSB7CisJCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBzaXplb2Yoc3RydWN0IHRzYiksIDgsIDApOworCQlpZiAoSVNfRVJSKGNodW5rKSkKKwkJCXJldHVybiBjaHVuazsKKwkJdHNiX2luaXQoY2h1bmspOworCQl0Y3dfc2V0X3RzYihpdGN3LT5pbnRyZ190Y3csIGNodW5rKTsKKwl9CisJLyogVENDQi4gKi8KKwljaHVuayA9IGZpdF9jaHVuaygmc3RhcnQsIGVuZCwgVENDQl9NQVhfU0laRSwgOCwgMCk7CisJaWYgKElTX0VSUihjaHVuaykpCisJCXJldHVybiBjaHVuazsKKwl0Y2NiX2luaXQoY2h1bmssIFRDQ0JfTUFYX1NJWkUsIFRDQ0JfU0FDX0RFRkFVTFQpOworCXRjd19zZXRfdGNjYihpdGN3LT50Y3csIGNodW5rKTsKKwkvKiBJbnRlcnJvZ2F0ZSBUQ0NCLiAqLworCWlmIChpbnRyZykgeworCQljaHVuayA9IGZpdF9jaHVuaygmc3RhcnQsIGVuZCwgVENDQl9NQVhfU0laRSwgOCwgMCk7CisJCWlmIChJU19FUlIoY2h1bmspKQorCQkJcmV0dXJuIGNodW5rOworCQl0Y2NiX2luaXQoY2h1bmssIFRDQ0JfTUFYX1NJWkUsIFRDQ0JfU0FDX0lOVFJHKTsKKwkJdGN3X3NldF90Y2NiKGl0Y3ctPmludHJnX3RjdywgY2h1bmspOworCQl0Y2NiX2FkZF9kY3coY2h1bmssIFRDQ0JfTUFYX1NJWkUsIERDV19DTURfSU5UUkcsIDAsIE5VTEwsCisJCQkgICAgIHNpemVvZihzdHJ1Y3QgZGN3X2ludHJnX2RhdGEpLCAwKTsKKwkJdGN3X2ZpbmFsaXplKGl0Y3ctPmludHJnX3RjdywgMCk7CisJfQorCXJldHVybiBpdGN3OworfQorRVhQT1JUX1NZTUJPTChpdGN3X2luaXQpOworCisvKioKKyAqIGl0Y3dfYWRkX2RjdyAtIGFkZCBhIGRjdyB0byB0aGUgaXRjdworICogQGl0Y3c6IGFkZHJlc3Mgb2YgdGhlIGl0Y3cKKyAqIEBjbWQ6IHRoZSBkY3cgY29tbWFuZAorICogQGZsYWdzOiBmbGFncyBmb3IgdGhlIGRjdworICogQGNkOiBhZGRyZXNzIG9mIGNvbnRyb2wgZGF0YSBmb3IgdGhpcyBkY3cgb3IgTlVMTCBpZiBub25lIGlzIHJlcXVpcmVkCisgKiBAY2RfY291bnQ6IG51bWJlciBvZiBjb250cm9sIGRhdGEgYnl0ZXMgZm9yIHRoaXMgZGN3CisgKiBAY291bnQ6IG51bWJlciBvZiBkYXRhIGJ5dGVzIGZvciB0aGlzIGRjdworICoKKyAqIEFkZCBhIG5ldyBkY3cgdG8gdGhlIHNwZWNpZmllZCBpdGN3IGJ5IHdyaXRpbmcgdGhlIGRjdyBpbmZvcm1hdGlvbiBzcGVjaWZpZWQKKyAqIGJ5IEBjbWQsIEBmbGFncywgQGNkLCBAY2RfY291bnQgYW5kIEBjb3VudCB0byB0aGUgdGNhIG9mIHRoZSB0Y2NiLiBSZXR1cm4KKyAqIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWRkZWQgZGN3IG9uIHN1Y2Nlc3Mgb3IgLSVFTk9TUEMgaWYgdGhlIG5ldyBkY3cKKyAqIHdvdWxkIGV4Y2VlZCB0aGUgYXZhaWxhYmxlIHNwYWNlLgorICoKKyAqIE5vdGU6IHRoZSB0Y2FsIGZpZWxkIG9mIHRoZSB0Y2NiIGhlYWRlciB3aWxsIGJlIHVwZGF0ZWQgdG8gcmVmbGVjdCBhZGRlZAorICogY29udGVudC4KKyAqLworc3RydWN0IGRjdyAqaXRjd19hZGRfZGN3KHN0cnVjdCBpdGN3ICppdGN3LCB1OCBjbWQsIHU4IGZsYWdzLCB2b2lkICpjZCwKKwkJCSB1OCBjZF9jb3VudCwgdTMyIGNvdW50KQoreworCXJldHVybiB0Y2NiX2FkZF9kY3codGN3X2dldF90Y2NiKGl0Y3ctPnRjdyksIFRDQ0JfTUFYX1NJWkUsIGNtZCwKKwkJCSAgICBmbGFncywgY2QsIGNkX2NvdW50LCBjb3VudCk7Cit9CitFWFBPUlRfU1lNQk9MKGl0Y3dfYWRkX2Rjdyk7CisKKy8qKgorICogaXRjd19hZGRfdGlkYXcgLSBhZGQgYSB0aWRhdyB0byB0aGUgaXRjdworICogQGl0Y3c6IGFkZHJlc3Mgb2YgdGhlIGl0Y3cKKyAqIEBmbGFnczogZmxhZ3MgZm9yIHRoZSBuZXcgdGlkYXcKKyAqIEBhZGRyOiBhZGRyZXNzIHZhbHVlIGZvciB0aGUgbmV3IHRpZGF3CisgKiBAY291bnQ6IGNvdW50IHZhbHVlIGZvciB0aGUgbmV3IHRpZGF3CisgKgorICogQWRkIGEgbmV3IHRpZGF3IHRvIHRoZSBpbnB1dC9vdXRwdXQgZGF0YSB0aWRhdy1saXN0IG9mIHRoZSBzcGVjaWZpZWQgaXRjdworICogKGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdGhlIHItZmxhZyBhbmQgdy1mbGFnKS4gUmV0dXJuIGEgcG9pbnRlciB0bworICogdGhlIG5ldyB0aWRhdyBvbiBzdWNjZXNzIG9yIC0lRU5PU1BDIGlmIHRoZSBuZXcgdGlkYXcgd291bGQgZXhjZWVkIHRoZQorICogYXZhaWxhYmxlIHNwYWNlLgorICoKKyAqIE5vdGU6IHRoZSB0aWRhdy1saXN0IGlzIGFzc3VtZWQgdG8gYmUgY29udGlndW91cyB3aXRoIG5vIHR0aWNzLiBUaGUKKyAqIGxhc3QtdGlkYXcgZmxhZyBmb3IgdGhlIGxhc3QgdGlkYXcgaW4gdGhlIGxpc3Qgd2lsbCBiZSBzZXQgYnkgaXRjd19maW5hbGl6ZS4KKyAqLworc3RydWN0IHRpZGF3ICppdGN3X2FkZF90aWRhdyhzdHJ1Y3QgaXRjdyAqaXRjdywgdTggZmxhZ3MsIHZvaWQgKmFkZHIsIHUzMiBjb3VudCkKK3sKKwlpZiAoaXRjdy0+bnVtX3RpZGF3cyA+PSBpdGN3LT5tYXhfdGlkYXdzKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PU1BDKTsKKwlyZXR1cm4gdGN3X2FkZF90aWRhdyhpdGN3LT50Y3csIGl0Y3ctPm51bV90aWRhd3MrKywgZmxhZ3MsIGFkZHIsIGNvdW50KTsKK30KK0VYUE9SVF9TWU1CT0woaXRjd19hZGRfdGlkYXcpOworCisvKioKKyAqIGl0Y3dfc2V0X2RhdGEgLSBzZXQgZGF0YSBhZGRyZXNzIGFuZCB0aWRhIGZsYWcgb2YgdGhlIGl0Y3cKKyAqIEBpdGN3OiBhZGRyZXNzIG9mIHRoZSBpdGN3CisgKiBAYWRkcjogdGhlIGRhdGEgYWRkcmVzcworICogQHVzZV90aWRhbDogemVybyBvZiB0aGUgZGF0YSBhZGRyZXNzIHNwZWNpZmllcyBhIGNvbnRpZ3VvdXMgYmxvY2sgb2YgZGF0YSwKKyAqIG5vbi16ZXJvIGlmIGl0IHNwZWNpZmllcyBhIGxpc3QgaWYgdGlkYXdzLgorICoKKyAqIFNldCB0aGUgaW5wdXQvb3V0cHV0IGRhdGEgYWRkcmVzcyBvZiB0aGUgaXRjdyAoZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUKKyAqIHItZmxhZyBhbmQgdy1mbGFnKS4gSWYgQHVzZV90aWRhbCBpcyBub24temVybywgdGhlIGNvcnJlc3BvbmRpbmcgdGlkYSBmbGFnCisgKiBpcyBzZXQgYXMgd2VsbC4KKyAqLwordm9pZCBpdGN3X3NldF9kYXRhKHN0cnVjdCBpdGN3ICppdGN3LCB2b2lkICphZGRyLCBpbnQgdXNlX3RpZGFsKQoreworCXRjd19zZXRfZGF0YShpdGN3LT50Y3csIGFkZHIsIHVzZV90aWRhbCk7Cit9CitFWFBPUlRfU1lNQk9MKGl0Y3dfc2V0X2RhdGEpOworCisvKioKKyAqIGl0Y3dfZmluYWxpemUgLSBjYWxjdWxhdGUgbGVuZ3RoIGFuZCBjb3VudCBmaWVsZHMgb2YgdGhlIGl0Y3cKKyAqIEBpdGN3OiBhZGRyZXNzIG9mIHRoZSBpdGN3CisgKgorICogQ2FsY3VsYXRlIHRjdyBpbnB1dC0vb3V0cHV0LWNvdW50IGFuZCB0Y2NibCBmaWVsZHMgYW5kIGFkZCBhIHRjYXQgdGhlIHRjY2IuCisgKiBJbiBjYXNlIGlucHV0LSBvciBvdXRwdXQtdGlkYSBpcyB1c2VkLCB0aGUgdGlkYXctbGlzdCBtdXN0IGJlIHN0b3JlZCBpbgorICogY29udGludW91cyBzdG9yYWdlIChubyB0dGljKS4gVGhlIHRjYWwgZmllbGQgaW4gdGhlIHRjY2IgbXVzdCBiZQorICogdXAtdG8tZGF0ZS4KKyAqLwordm9pZCBpdGN3X2ZpbmFsaXplKHN0cnVjdCBpdGN3ICppdGN3KQoreworCXRjd19maW5hbGl6ZShpdGN3LT50Y3csIGl0Y3ctPm51bV90aWRhd3MpOworfQorRVhQT1JUX1NZTUJPTChpdGN3X2ZpbmFsaXplKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vcWRpby5jIGIvZHJpdmVycy9zMzkwL2Npby9xZGlvLmMKaW5kZXggNDQ1Y2YzNi4uMmJmMzZlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9xZGlvLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9xZGlvLmMKQEAgLTIwODIsNyArMjA4Miw2IEBACiAJZGVmYXVsdDoKIAkJQlVHKCk7CiAJfQotCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7CiAJd2FrZV91cCgmY2Rldi0+cHJpdmF0ZS0+d2FpdF9xKTsKIH0KIApAQCAtMjEyMSw2ICsyMTIwLDggQEAKIAkJY2FzZSAtRUlPOgogCQkJUURJT19QUklOVF9FUlIoImkvbyBlcnJvciBvbiBkZXZpY2UgJXNcbiIsCiAJCQkJICAgICAgIGNkZXYtPmRldi5idXNfaWQpOworCQkJcWRpb19zZXRfc3RhdGUoaXJxX3B0ciwgUURJT19JUlFfU1RBVEVfRVJSKTsKKwkJCXdha2VfdXAoJmNkZXYtPnByaXZhdGUtPndhaXRfcSk7CiAJCQlyZXR1cm47CiAJCWNhc2UgLUVUSU1FRE9VVDoKIAkJCXFkaW9fdGltZW91dF9oYW5kbGVyKGNkZXYpOwpAQCAtMjEzOSw4ICsyMTQwLDggQEAKIAlRRElPX0RCRl9URVhUNCgwLCB0cmFjZSwgZGJmX3RleHQpOwogI2VuZGlmIC8qIENPTkZJR19RRElPX0RFQlVHICovCiAKLSAgICAgICAgY3N0YXQgPSBpcmItPnNjc3cuY3N0YXQ7Ci0gICAgICAgIGRzdGF0ID0gaXJiLT5zY3N3LmRzdGF0OworCWNzdGF0ID0gaXJiLT5zY3N3LmNtZC5jc3RhdDsKKwlkc3RhdCA9IGlyYi0+c2Nzdy5jbWQuZHN0YXQ7CiAKIAlzd2l0Y2ggKGlycV9wdHItPnN0YXRlKSB7CiAJY2FzZSBRRElPX0lSUV9TVEFURV9JTkFDVElWRToKQEAgLTIzNTMsOSArMjM1NCw2IEBACiB7CiAJY2hhciBkYmZfdGV4dFsxNV07CiAKLQlpZiAoIWNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwpCi0JCXJldHVybiAtRUlPOwotCiAJLyogQ2hlY2sgZm9yIGJpdCA0MS4gKi8KIAlpZiAoIWNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcy5haWYpIHsKIAkJUURJT19QUklOVF9XQVJOKCJBZGFwdGVyIGludGVycnVwdGlvbiBmYWNpbGl0eSBub3QgIiBcCkBAIC0yNjY3LDEyICsyNjY1LDEyIEBACiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZ2V0X2Njd2Rldl9sb2NrKGNkZXYpLCBmbGFncyk7CiAJfSBlbHNlIGlmIChyYyA9PSAwKSB7CiAJCXFkaW9fc2V0X3N0YXRlKGlycV9wdHIsIFFESU9fSVJRX1NUQVRFX0NMRUFOVVApOwotCQljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIHRpbWVvdXQpOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGdldF9jY3dkZXZfbG9jayhjZGV2KSxmbGFncyk7CiAKLQkJd2FpdF9ldmVudChjZGV2LT5wcml2YXRlLT53YWl0X3EsCi0JCQkgICBpcnFfcHRyLT5zdGF0ZSA9PSBRRElPX0lSUV9TVEFURV9JTkFDVElWRSB8fAotCQkJICAgaXJxX3B0ci0+c3RhdGUgPT0gUURJT19JUlFfU1RBVEVfRVJSKTsKKwkJd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoY2Rldi0+cHJpdmF0ZS0+d2FpdF9xLAorCQkJaXJxX3B0ci0+c3RhdGUgPT0gUURJT19JUlFfU1RBVEVfSU5BQ1RJVkUgfHwKKwkJCWlycV9wdHItPnN0YXRlID09IFFESU9fSVJRX1NUQVRFX0VSUiwKKwkJCXRpbWVvdXQpOwogCX0gZWxzZSB7CiAJCVFESU9fUFJJTlRfSU5GTygiY2N3X2RldmljZV97aGFsdCxjbGVhcn0gcmV0dXJuZWQgJWQgZm9yICIKIAkJCQkiZGV2aWNlICVzXG4iLCByZXN1bHQsIGNkZXYtPmRldi5idXNfaWQpOwpAQCAtMjY5Miw3ICsyNjkwLDYgQEAKIAogCS8qIElnbm9yZSBlcnJvcnMuICovCiAJcWRpb19zZXRfc3RhdGUoaXJxX3B0ciwgUURJT19JUlFfU1RBVEVfSU5BQ1RJVkUpOwotCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7CiBvdXQ6CiAJdXAoJmlycV9wdHItPnNldHRpbmdfdXBfc2VtYSk7CiAJcmV0dXJuIHJlc3VsdDsKQEAgLTI5MDcsMTMgKzI5MDQsMTAgQEAKIAlRRElPX0RCRl9URVhUMCgwLHNldHVwLGRiZl90ZXh0KTsKIAlRRElPX0RCRl9URVhUMCgwLHRyYWNlLGRiZl90ZXh0KTsKIAotCWlmIChxZGlvX2VzdGFibGlzaF9pcnFfY2hlY2tfZm9yX2Vycm9ycyhjZGV2LCBjc3RhdCwgZHN0YXQpKSB7Ci0JCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7CisJaWYgKHFkaW9fZXN0YWJsaXNoX2lycV9jaGVja19mb3JfZXJyb3JzKGNkZXYsIGNzdGF0LCBkc3RhdCkpCiAJCXJldHVybjsKLQl9CiAKIAlxZGlvX3NldF9zdGF0ZShpcnFfcHRyLFFESU9fSVJRX1NUQVRFX0VTVEFCTElTSEVEKTsKLQljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOwogfQogCiBpbnQKQEAgLTMxOTYsOCArMzE5MCw2IEBACiAJCQkJaXJxX3B0ci0+c2NoaWQuc3NpZCwgaXJxX3B0ci0+c2NoaWQuc2NoX25vLAogCQkJCXJlc3VsdCwgcmVzdWx0Mik7CiAJCXJlc3VsdD1yZXN1bHQyOwotCQlpZiAocmVzdWx0KQotCQkJY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKIAl9CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKGdldF9jY3dkZXZfbG9jayhjZGV2KSxzYXZlZmxhZ3MpOwpAQCAtMzI3OSw3ICszMjcxLDYgQEAKIAogCXNwaW5fbG9ja19pcnFzYXZlKGdldF9jY3dkZXZfbG9jayhjZGV2KSxzYXZlZmxhZ3MpOwogCi0JY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKIAljY3dfZGV2aWNlX3NldF9vcHRpb25zKGNkZXYsIENDV0RFVl9SRVBPUlRfQUxMKTsKIAlyZXN1bHQ9Y2N3X2RldmljZV9zdGFydChjZGV2LCZpcnFfcHRyLT5jY3csUURJT19ET0lOR19BQ1RJVkFURSwKIAkJCQkwLCBET0lPX0RFTllfUFJFRkVUQ0gpOwpAQCAtMzcyMiw3ICszNzEzLDggQEAKIAljaGFyIGRiZl90ZXh0WzIwXTsKIAogCXRpcWRpb19pbmQgPQotCQlzMzkwX3JlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KCZ0aXFkaW9fdGhpbmludF9oYW5kbGVyLCBOVUxMKTsKKwkJczM5MF9yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCgmdGlxZGlvX3RoaW5pbnRfaGFuZGxlciwgTlVMTCwKKwkJCQkJCVRJUURJT19USElOSU5UX0lTQyk7CiAJaWYgKElTX0VSUih0aXFkaW9faW5kKSkgewogCQlzcHJpbnRmKGRiZl90ZXh0LCAicmVndGhuJWx4IiwgUFRSX0VSUih0aXFkaW9faW5kKSk7CiAJCVFESU9fREJGX1RFWFQwKDAsc2V0dXAsZGJmX3RleHQpOwpAQCAtMzczOCw3ICszNzMwLDggQEAKIHRpcWRpb191bnJlZ2lzdGVyX3RoaW5pbnRzKHZvaWQpCiB7CiAJaWYgKHRpcWRpb19pbmQpCi0JCXMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCh0aXFkaW9faW5kKTsKKwkJczM5MF91bnJlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KHRpcWRpb19pbmQsCisJCQkJCQkgIFRJUURJT19USElOSU5UX0lTQyk7CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTM4OTksNiArMzg5Miw3IEBACiAJCQkJCSAgICBxZGlvX21lbXBvb2xfYWxsb2MsCiAJCQkJCSAgICBxZGlvX21lbXBvb2xfZnJlZSwgTlVMTCk7CiAKKwlpc2NfcmVnaXN0ZXIoUURJT19BSVJRX0lTQyk7CiAJaWYgKHRpcWRpb19jaGVja19jaHNjX2F2YWlsYWJpbGl0eSgpKQogCQlRRElPX1BSSU5UX0VSUigiTm90IGFsbCBDSFNDcyBzdXBwb3J0ZWQuIENvbnRpbnVpbmcuXG4iKTsKIApAQCAtMzkxMSw2ICszOTA1LDcgQEAKIGNsZWFudXBfUURJTyh2b2lkKQogewogCXRpcWRpb191bnJlZ2lzdGVyX3RoaW5pbnRzKCk7CisJaXNjX3VucmVnaXN0ZXIoUURJT19BSVJRX0lTQyk7CiAJcWRpb19yZW1vdmVfcHJvY2ZzX2VudHJ5KCk7CiAJcWRpb19yZWxlYXNlX3FkaW9fbWVtb3J5KCk7CiAJcWRpb191bnJlZ2lzdGVyX2RiZl92aWV3cygpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9xZGlvLmggYi9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uaAppbmRleCBjM2RmNmIyLi43NjU2MDgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uaAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uaApAQCAtMiw4ICsyLDggQEAKICNkZWZpbmUgX0NJT19RRElPX0gKIAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0KLSNpbmNsdWRlICJzY2hpZC5oIgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KKyNpbmNsdWRlIDxhc20vc2NoaWQuaD4KIAogI2lmZGVmIENPTkZJR19RRElPX0RFQlVHCiAjZGVmaW5lIFFESU9fVkVSQk9TRV9MRVZFTCA5CkBAIC0yNiw3ICsyNiw3IEBACiAgKi8KICNkZWZpbmUgSVFESU9fRklMTF9MRVZFTF9UT19QT0xMIDQKIAotI2RlZmluZSBUSVFESU9fVEhJTklOVF9JU0MgMworI2RlZmluZSBUSVFESU9fVEhJTklOVF9JU0MgUURJT19BSVJRX0lTQwogI2RlZmluZSBUSVFESU9fREVMQVlfVEFSR0VUIDAKICNkZWZpbmUgUURJT19CVVNZX0JJVF9QQVRJRU5DRSAxMDAgLyogaW4gbWljcm9zZWNzICovCiAjZGVmaW5lIFFESU9fQlVTWV9CSVRfR0lWRV9VUCAxMDAwMDAwMCAvKiAxMCBzZWNvbmRzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL3NjaGlkLmggYi9kcml2ZXJzL3MzOTAvY2lvL3NjaGlkLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MzI4ZmUuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9zY2hpZC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotI2lmbmRlZiBTMzkwX1NDSElEX0gKLSNkZWZpbmUgUzM5MF9TQ0hJRF9ICi0KLXN0cnVjdCBzdWJjaGFubmVsX2lkIHsKLQlfX3UzMiByZXNlcnZlZDoxMzsKLQlfX3UzMiBzc2lkOjI7Ci0JX191MzIgb25lOjE7Ci0JX191MzIgc2NoX25vOjE2OwotfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkLGFsaWduZWQoNCkpKTsKLQotCi0vKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHNhbmUgc3RhdGUgb2YgcHJlLWFsbG9jYXRlZCBzdWJjaGFubmVsX2lkLiAqLwotc3RhdGljIGlubGluZSB2b2lkCi1pbml0X3N1YmNoYW5uZWxfaWQoc3RydWN0IHN1YmNoYW5uZWxfaWQgKnNjaGlkKQotewotCW1lbXNldChzY2hpZCwgMCwgc2l6ZW9mKHN0cnVjdCBzdWJjaGFubmVsX2lkKSk7Ci0Jc2NoaWQtPm9uZSA9IDE7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50Ci1zY2hpZF9lcXVhbChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQxLCBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQyKQotewotCXJldHVybiAhbWVtY21wKHNjaGlkMSwgc2NoaWQyLCBzaXplb2Yoc3RydWN0IHN1YmNoYW5uZWxfaWQpKTsKLX0KLQotI2VuZGlmIC8qIFMzOTBfU0NISURfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9zY3N3LmMgYi9kcml2ZXJzL3MzOTAvY2lvL3Njc3cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGRhMjVhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9zMzkwL2Npby9zY3N3LmMKQEAgLTAsMCArMSw4NDMgQEAKKy8qCisgKiAgSGVscGVyIGZ1bmN0aW9ucyBmb3Igc2NzdyBhY2Nlc3MuCisgKgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA4CisgKiAgICBBdXRob3Iocyk6IFBldGVyIE9iZXJwYXJsZWl0ZXIgPHBldGVyLm9iZXJwYXJsZWl0ZXJAZGUuaWJtLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxhc20vY2lvLmg+CisjaW5jbHVkZSAiY3NzLmgiCisjaW5jbHVkZSAiY2hzYy5oIgorCisvKioKKyAqIHNjc3dfaXNfdG0gLSBjaGVjayBmb3IgdHJhbnNwb3J0IG1vZGUgc2NzdworICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgYSB0cmFuc3BvcnQgbW9kZSBzY3N3LCB6ZXJvCisgKiBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2lzX3RtKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIGNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcy5mY3ggJiYgKHNjc3ctPnRtLnggPT0gMSk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdG0pOworCisvKioKKyAqIHNjc3dfa2V5IC0gcmV0dXJuIHNjc3cga2V5IGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUga2V5IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdywgcmVnYXJkbGVzcyBvZgorICogd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICovCit1MzIgc2Nzd19rZXkodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLmtleTsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQua2V5OworfQorRVhQT1JUX1NZTUJPTChzY3N3X2tleSk7CisKKy8qKgorICogc2Nzd19lc3dmIC0gcmV0dXJuIHNjc3cgZXN3ZiBmaWVsZAorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGVzd2YgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2Vzd2YodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLmVzd2Y7CisJZWxzZQorCQlyZXR1cm4gc2Nzdy0+Y21kLmVzd2Y7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfZXN3Zik7CisKKy8qKgorICogc2Nzd19jYyAtIHJldHVybiBzY3N3IGNjIGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgY2MgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2NjKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3LT50bS5jYzsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuY2M7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY2MpOworCisvKioKKyAqIHNjc3dfZWN0bCAtIHJldHVybiBzY3N3IGVjdGwgZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBlY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdywgcmVnYXJkbGVzcyBvZgorICogd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICovCit1MzIgc2Nzd19lY3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3LT50bS5lY3RsOworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5lY3RsOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2VjdGwpOworCisvKioKKyAqIHNjc3dfcG5vIC0gcmV0dXJuIHNjc3cgcG5vIGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgcG5vIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdywgcmVnYXJkbGVzcyBvZgorICogd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICovCit1MzIgc2Nzd19wbm8odW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLnBubzsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQucG5vOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3Bubyk7CisKKy8qKgorICogc2Nzd19mY3RsIC0gcmV0dXJuIHNjc3cgZmN0bCBmaWVsZAorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2ZjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLmZjdGw7CisJZWxzZQorCQlyZXR1cm4gc2Nzdy0+Y21kLmZjdGw7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfZmN0bCk7CisKKy8qKgorICogc2Nzd19hY3RsIC0gcmV0dXJuIHNjc3cgYWN0bCBmaWVsZAorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGFjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2FjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLmFjdGw7CisJZWxzZQorCQlyZXR1cm4gc2Nzdy0+Y21kLmFjdGw7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfYWN0bCk7CisKKy8qKgorICogc2Nzd19zdGN0bCAtIHJldHVybiBzY3N3IHN0Y3RsIGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3RjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X3N0Y3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3LT50bS5zdGN0bDsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuc3RjdGw7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfc3RjdGwpOworCisvKioKKyAqIHNjc3dfZHN0YXQgLSByZXR1cm4gc2NzdyBkc3RhdCBmaWVsZAorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGRzdGF0IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdywgcmVnYXJkbGVzcyBvZgorICogd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICovCit1MzIgc2Nzd19kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0uZHN0YXQ7CisJZWxzZQorCQlyZXR1cm4gc2Nzdy0+Y21kLmRzdGF0OworfQorRVhQT1JUX1NZTUJPTChzY3N3X2RzdGF0KTsKKworLyoqCisgKiBzY3N3X2NzdGF0IC0gcmV0dXJuIHNjc3cgY3N0YXQgZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBjc3RhdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfY3N0YXQodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLmNzdGF0OworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5jc3RhdDsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jc3RhdCk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfa2V5IC0gY2hlY2sga2V5IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBrZXkgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfa2V5KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfa2V5KTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9zY3RsIC0gY2hlY2sgZmN0bCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZmN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9zY3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfc2N0bCk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfZXN3ZiAtIGNoZWNrIGVzd2YgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGVzd2YgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX2Vzd2YpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2NjIC0gY2hlY2sgY2MgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNjIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2NjKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJgorCSAgICAgICAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX2NjKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9mbXQgLSBjaGVjayBmbXQgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGZtdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9mbXQodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9mbXQpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX3BmY2ggLSBjaGVjayBwZmNoIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBwZmNoIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3BmY2godW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9wZmNoKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9pc2ljIC0gY2hlY2sgaXNpYyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgaXNpYyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9pc2ljKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfaXNpYyk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfYWxjYyAtIGNoZWNrIGFsY2MgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGFsY2MgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfYWxjYyh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX2FsY2MpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX3NzaSAtIGNoZWNrIHNzaSBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgc3NpIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3NzaSh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX3NzaSk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfemNjIC0gY2hlY2sgemNjIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSB6Y2MgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfemNjKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJgorCSAgICAgICAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF96Y2MpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2VjdGwgLSBjaGVjayBlY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBlY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2VjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICAgICEoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpICYmCisJICAgICAgIChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX2VjdGwpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX3BubyAtIGNoZWNrIHBubyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgcG5vIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3Bubyh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLmZjdGwgIT0gMCkgJiYKKwkgICAgICAgKHNjc3ctPmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICAgICghKHNjc3ctPmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSB8fAorCQkgKChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykgJiYKKwkJICAoc2Nzdy0+Y21kLmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9wbm8pOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2ZjdGwgLSBjaGVjayBmY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBmY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2ZjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwkvKiBPbmx5IHZhbGlkIGlmIHBtY3cuZG52ID09IDEqLworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9mY3RsKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9hY3RsIC0gY2hlY2sgYWN0bCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgYWN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJLyogT25seSB2YWxpZCBpZiBwbWN3LmRudiA9PSAxKi8KKwlyZXR1cm4gMTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfYWN0bCk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfc3RjdGwgLSBjaGVjayBzdGN0bCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgc3RjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwkvKiBPbmx5IHZhbGlkIGlmIHBtY3cuZG52ID09IDEqLworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9zdGN0bCk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfZHN0YXQgLSBjaGVjayBkc3RhdCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZHN0YXQgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZHN0YXQodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICAgIChzY3N3LT5jbWQuY2MgIT0gMyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX2RzdGF0KTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9jc3RhdCAtIGNoZWNrIGNzdGF0IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBjc3RhdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9jc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgKHNjc3ctPmNtZC5jYyAhPSAzKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfY3N0YXQpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfa2V5IC0gY2hlY2sga2V5IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBrZXkgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2tleSh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9rZXkpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfZXN3ZiAtIGNoZWNrIGVzd2YgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGVzd2YgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2Vzd2YodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfZXN3Zik7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9jYyAtIGNoZWNrIGNjIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBjYyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfY2ModW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPnRtLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgJiYKKwkgICAgICAgKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfY2MpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfZm10IC0gY2hlY2sgZm10IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBmbXQgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2ZtdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX2ZtdCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF94IC0gY2hlY2sgeCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgeCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfeCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX3gpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfcSAtIGNoZWNrIHEgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHEgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3EodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gMTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9xKTsKKworLyoqCisgKiBzY3N3X3RtX2lzX3ZhbGlkX2VjdGwgLSBjaGVjayBlY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBlY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNwb3J0IG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd190bV9pc192YWxpZF9lY3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICAgICEoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykgJiYKKwkgICAgICAgKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX2VjdGwpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfcG5vIC0gY2hlY2sgcG5vIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBwbm8gZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3Bubyh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uZmN0bCAhPSAwKSAmJgorCSAgICAgICAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSAmJgorCSAgICAgICAoIShzY3N3LT50bS5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSB8fAorCQkgKChzY3N3LT50bS5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSAmJgorCQkgIChzY3N3LT50bS5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9wbm8pOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfZmN0bCAtIGNoZWNrIGZjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGZjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2ZjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwkvKiBPbmx5IHZhbGlkIGlmIHBtY3cuZG52ID09IDEqLworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX2ZjdGwpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfYWN0bCAtIGNoZWNrIGFjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGFjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2FjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwkvKiBPbmx5IHZhbGlkIGlmIHBtY3cuZG52ID09IDEqLworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX2FjdGwpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfc3RjdGwgLSBjaGVjayBzdGN0bCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgc3RjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3N0Y3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJLyogT25seSB2YWxpZCBpZiBwbWN3LmRudiA9PSAxKi8KKwlyZXR1cm4gMTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9zdGN0bCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9kc3RhdCAtIGNoZWNrIGRzdGF0IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBkc3RhdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfZHN0YXQodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgKHNjc3ctPnRtLmNjICE9IDMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX2RzdGF0KTsKKworLyoqCisgKiBzY3N3X3RtX2lzX3ZhbGlkX2NzdGF0IC0gY2hlY2sgY3N0YXQgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNzdGF0IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNwb3J0IG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd190bV9pc192YWxpZF9jc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSAmJgorCSAgICAgICAoc2Nzdy0+dG0uY2MgIT0gMyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfY3N0YXQpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfZmN4cyAtIGNoZWNrIGZjeHMgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGZjeHMgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2ZjeHModW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gMTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9mY3hzKTsKKworLyoqCisgKiBzY3N3X3RtX2lzX3ZhbGlkX3NjaHhzIC0gY2hlY2sgc2NoeHMgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHNjaHhzIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNwb3J0IG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd190bV9pc192YWxpZF9zY2h4cyh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uY3N0YXQgJiAoU0NITl9TVEFUX1BST0dfQ0hFQ0sgfAorCQkJCSAgU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEsgfAorCQkJCSAgU0NITl9TVEFUX1BST1RfQ0hFQ0sgfAorCQkJCSAgU0NITl9TVEFUX0NITl9EQVRBX0NISykpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX3NjaHhzKTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX2FjdGwgLSBjaGVjayBhY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBhY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfYWN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc192YWxpZF9hY3RsKHNjc3cpOworCWVsc2UKKwkJcmV0dXJuIHNjc3dfY21kX2lzX3ZhbGlkX2FjdGwoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfYWN0bCk7CisKKy8qKgorICogc2Nzd19pc192YWxpZF9jYyAtIGNoZWNrIGNjIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBjYyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgdmFsaWQsCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqIFJldHVybiB6ZXJvIGlmIHRoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdmFsdWUuCisgKi8KK2ludCBzY3N3X2lzX3ZhbGlkX2NjKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2NjKHNjc3cpOworCWVsc2UKKwkJcmV0dXJuIHNjc3dfY21kX2lzX3ZhbGlkX2NjKHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3ZhbGlkX2NjKTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX2NzdGF0IC0gY2hlY2sgY3N0YXQgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNzdGF0IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfY3N0YXQodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3dfdG1faXNfdmFsaWRfY3N0YXQoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfY3N0YXQoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfY3N0YXQpOworCisvKioKKyAqIHNjc3dfaXNfdmFsaWRfZHN0YXQgLSBjaGVjayBkc3RhdCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZHN0YXQgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3IGlzIHZhbGlkLAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKiBSZXR1cm4gemVybyBpZiB0aGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHZhbHVlLgorICovCitpbnQgc2Nzd19pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc192YWxpZF9kc3RhdChzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9kc3RhdChzY3N3KTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc192YWxpZF9kc3RhdCk7CisKKy8qKgorICogc2Nzd19pc192YWxpZF9lY3RsIC0gY2hlY2sgZWN0bCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZWN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgdmFsaWQsCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqIFJldHVybiB6ZXJvIGlmIHRoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdmFsdWUuCisgKi8KK2ludCBzY3N3X2lzX3ZhbGlkX2VjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3dfdG1faXNfdmFsaWRfZWN0bChzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9lY3RsKHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3ZhbGlkX2VjdGwpOworCisvKioKKyAqIHNjc3dfaXNfdmFsaWRfZXN3ZiAtIGNoZWNrIGVzd2YgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGVzd2YgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3IGlzIHZhbGlkLAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKiBSZXR1cm4gemVybyBpZiB0aGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHZhbHVlLgorICovCitpbnQgc2Nzd19pc192YWxpZF9lc3dmKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2Vzd2Yoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfZXN3ZihzY3N3KTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc192YWxpZF9lc3dmKTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX2ZjdGwgLSBjaGVjayBmY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBmY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc192YWxpZF9mY3RsKHNjc3cpOworCWVsc2UKKwkJcmV0dXJuIHNjc3dfY21kX2lzX3ZhbGlkX2ZjdGwoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfZmN0bCk7CisKKy8qKgorICogc2Nzd19pc192YWxpZF9rZXkgLSBjaGVjayBrZXkgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGtleSBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgdmFsaWQsCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqIFJldHVybiB6ZXJvIGlmIHRoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdmFsdWUuCisgKi8KK2ludCBzY3N3X2lzX3ZhbGlkX2tleSh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc192YWxpZF9rZXkoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfa2V5KHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3ZhbGlkX2tleSk7CisKKy8qKgorICogc2Nzd19pc192YWxpZF9wbm8gLSBjaGVjayBwbm8gZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHBubyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgdmFsaWQsCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqIFJldHVybiB6ZXJvIGlmIHRoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdmFsdWUuCisgKi8KK2ludCBzY3N3X2lzX3ZhbGlkX3Bubyh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc192YWxpZF9wbm8oc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfcG5vKHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3ZhbGlkX3Bubyk7CisKKy8qKgorICogc2Nzd19pc192YWxpZF9zdGN0bCAtIGNoZWNrIHN0Y3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBzdGN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgdmFsaWQsCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqIFJldHVybiB6ZXJvIGlmIHRoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdmFsdWUuCisgKi8KK2ludCBzY3N3X2lzX3ZhbGlkX3N0Y3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX3N0Y3RsKHNjc3cpOworCWVsc2UKKwkJcmV0dXJuIHNjc3dfY21kX2lzX3ZhbGlkX3N0Y3RsKHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3ZhbGlkX3N0Y3RsKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc19zb2xpY2l0ZWQgLSBjaGVjayBmb3Igc29saWNpdGVkIHNjc3cKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNvbW1hbmQgbW9kZSBzY3N3IGluZGljYXRlcyB0aGF0IHRoZSBhc3NvY2lhdGVkCisgKiBzdGF0dXMgY29uZGl0aW9uIGlzIHNvbGljaXRlZCwgemVybyBpZiBpdCBpcyB1bnNvbGljaXRlZC4KKyAqLworaW50IHNjc3dfY21kX2lzX3NvbGljaXRlZCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLmNjICE9IDApIHx8IChzY3N3LT5jbWQuc3RjdGwgIT0KKwkJKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc19zb2xpY2l0ZWQpOworCisvKioKKyAqIHNjc3dfdG1faXNfc29saWNpdGVkIC0gY2hlY2sgZm9yIHNvbGljaXRlZCBzY3N3CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSB0cmFuc3BvcnQgbW9kZSBzY3N3IGluZGljYXRlcyB0aGF0IHRoZSBhc3NvY2lhdGVkCisgKiBzdGF0dXMgY29uZGl0aW9uIGlzIHNvbGljaXRlZCwgemVybyBpZiBpdCBpcyB1bnNvbGljaXRlZC4KKyAqLworaW50IHNjc3dfdG1faXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5jYyAhPSAwKSB8fCAoc2Nzdy0+dG0uc3RjdGwgIT0KKwkJKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3NvbGljaXRlZCk7CisKKy8qKgorICogc2Nzd19pc19zb2xpY2l0ZWQgLSBjaGVjayBmb3Igc29saWNpdGVkIHNjc3cKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHRyYW5zcG9ydCBvciBjb21tYW5kIG1vZGUgc2NzdyBpbmRpY2F0ZXMgdGhhdCB0aGUKKyAqIGFzc29jaWF0ZWQgc3RhdHVzIGNvbmRpdGlvbiBpcyBzb2xpY2l0ZWQsIHplcm8gaWYgaXQgaXMgdW5zb2xpY2l0ZWQuCisgKi8KK2ludCBzY3N3X2lzX3NvbGljaXRlZCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc19zb2xpY2l0ZWQoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfc29saWNpdGVkKHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3NvbGljaXRlZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5jIGIvZHJpdmVycy9zMzkwL2NyeXB0by9hcF9idXMuYwppbmRleCBhMWFiM2UzLi42MmI2YjU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5jCisrKyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmMKQEAgLTM0LDEzICszNCwxNSBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8YXNtL3MzOTBfcmRldi5oPgogI2luY2x1ZGUgPGFzbS9yZXNldC5oPgorI2luY2x1ZGUgPGxpbnV4L2hydGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9rdGltZS5oPgogCiAjaW5jbHVkZSAiYXBfYnVzLmgiCiAKIC8qIFNvbWUgcHJvdG90eXBlcy4gKi8KIHN0YXRpYyB2b2lkIGFwX3NjYW5fYnVzKHN0cnVjdCB3b3JrX3N0cnVjdCAqKTsKIHN0YXRpYyB2b2lkIGFwX3BvbGxfYWxsKHVuc2lnbmVkIGxvbmcpOwotc3RhdGljIHZvaWQgYXBfcG9sbF90aW1lb3V0KHVuc2lnbmVkIGxvbmcpOworc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGFwX3BvbGxfdGltZW91dChzdHJ1Y3QgaHJ0aW1lciAqKTsKIHN0YXRpYyBpbnQgYXBfcG9sbF90aHJlYWRfc3RhcnQodm9pZCk7CiBzdGF0aWMgdm9pZCBhcF9wb2xsX3RocmVhZF9zdG9wKHZvaWQpOwogc3RhdGljIHZvaWQgYXBfcmVxdWVzdF90aW1lb3V0KHVuc2lnbmVkIGxvbmcpOwpAQCAtODAsMTIgKzgyLDE1IEBACiAvKgogICogVGFza2xldCAmIHRpbWVyIGZvciBBUCByZXF1ZXN0IHBvbGxpbmcuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgdGltZXJfbGlzdCBhcF9wb2xsX3RpbWVyID0gVElNRVJfSU5JVElBTElaRVIoYXBfcG9sbF90aW1lb3V0LDAsMCk7CiBzdGF0aWMgREVDTEFSRV9UQVNLTEVUKGFwX3Rhc2tsZXQsIGFwX3BvbGxfYWxsLCAwKTsKIHN0YXRpYyBhdG9taWNfdCBhcF9wb2xsX3JlcXVlc3RzID0gQVRPTUlDX0lOSVQoMCk7CiBzdGF0aWMgREVDTEFSRV9XQUlUX1FVRVVFX0hFQUQoYXBfcG9sbF93YWl0KTsKIHN0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmFwX3BvbGxfa3RocmVhZCA9IE5VTEw7CiBzdGF0aWMgREVGSU5FX01VVEVYKGFwX3BvbGxfdGhyZWFkX211dGV4KTsKK3N0YXRpYyBzdHJ1Y3QgaHJ0aW1lciBhcF9wb2xsX3RpbWVyOworLyogSW4gTFBBUiBwb2xsIHdpdGggNGtIeiBmcmVxdWVuY3kuIFBvbGwgZXZlcnkgMjUwMDAwIG5hbm9zZWNvbmRzLgorICogSWYgei9WTSBjaGFuZ2UgdG8gMTUwMDAwMCBuYW5vc2Vjb25kcyB0byBhZGp1c3QgdG8gei9WTSBwb2xsaW5nLiovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHBvbGxfdGltZW91dCA9IDI1MDAwMDsKIAogLyoqCiAgKiBhcF9pbnRydWN0aW9uc19hdmFpbGFibGUoKSAtIFRlc3QgaWYgQVAgaW5zdHJ1Y3Rpb25zIGFyZSBhdmFpbGFibGUuCkBAIC02MzYsMTEgKzY0MSwzOSBAQAogCiBzdGF0aWMgQlVTX0FUVFIocG9sbF90aHJlYWQsIDA2NDQsIGFwX3BvbGxfdGhyZWFkX3Nob3csIGFwX3BvbGxfdGhyZWFkX3N0b3JlKTsKIAorc3RhdGljIHNzaXplX3QgcG9sbF90aW1lb3V0X3Nob3coc3RydWN0IGJ1c190eXBlICpidXMsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlbGx1XG4iLCBwb2xsX3RpbWVvdXQpOworfQorCitzdGF0aWMgc3NpemVfdCBwb2xsX3RpbWVvdXRfc3RvcmUoc3RydWN0IGJ1c190eXBlICpidXMsIGNvbnN0IGNoYXIgKmJ1ZiwKKwkJCQkgIHNpemVfdCBjb3VudCkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgdGltZTsKKwlrdGltZV90IGhyX3RpbWU7CisKKwkvKiAxMjAgc2Vjb25kcyA9IG1heGltdW0gcG9sbCBpbnRlcnZhbCAqLworCWlmIChzc2NhbmYoYnVmLCAiJWxsdVxuIiwgJnRpbWUpICE9IDEgfHwgdGltZSA8IDEgfHwgdGltZSA+IDEyMDAwMDAwMDAwMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisJcG9sbF90aW1lb3V0ID0gdGltZTsKKwlocl90aW1lID0ga3RpbWVfc2V0KDAsIHBvbGxfdGltZW91dCk7CisKKwlpZiAoIWhydGltZXJfaXNfcXVldWVkKCZhcF9wb2xsX3RpbWVyKSB8fAorCSAgICAhaHJ0aW1lcl9mb3J3YXJkKCZhcF9wb2xsX3RpbWVyLCBhcF9wb2xsX3RpbWVyLmV4cGlyZXMsIGhyX3RpbWUpKSB7CisJCWFwX3BvbGxfdGltZXIuZXhwaXJlcyA9IGhyX3RpbWU7CisJCWhydGltZXJfc3RhcnQoJmFwX3BvbGxfdGltZXIsIGhyX3RpbWUsIEhSVElNRVJfTU9ERV9BQlMpOworCX0KKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBCVVNfQVRUUihwb2xsX3RpbWVvdXQsIDA2NDQsIHBvbGxfdGltZW91dF9zaG93LCBwb2xsX3RpbWVvdXRfc3RvcmUpOworCiBzdGF0aWMgc3RydWN0IGJ1c19hdHRyaWJ1dGUgKmNvbnN0IGFwX2J1c19hdHRyc1tdID0gewogCSZidXNfYXR0cl9hcF9kb21haW4sCiAJJmJ1c19hdHRyX2NvbmZpZ190aW1lLAogCSZidXNfYXR0cl9wb2xsX3RocmVhZCwKLQlOVUxMCisJJmJ1c19hdHRyX3BvbGxfdGltZW91dCwKKwlOVUxMLAogfTsKIAogLyoqCkBAIC04OTUsOSArOTI4LDEwIEBACiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBhcF9zY2hlZHVsZV9wb2xsX3RpbWVyKHZvaWQpCiB7Ci0JaWYgKHRpbWVyX3BlbmRpbmcoJmFwX3BvbGxfdGltZXIpKQorCWlmIChocnRpbWVyX2lzX3F1ZXVlZCgmYXBfcG9sbF90aW1lcikpCiAJCXJldHVybjsKLQltb2RfdGltZXIoJmFwX3BvbGxfdGltZXIsIGppZmZpZXMgKyBBUF9QT0xMX1RJTUUpOworCWhydGltZXJfc3RhcnQoJmFwX3BvbGxfdGltZXIsIGt0aW1lX3NldCgwLCBwb2xsX3RpbWVvdXQpLAorCQkgICAgICBIUlRJTUVSX01PREVfQUJTKTsKIH0KIAogLyoqCkBAIC0xMTE1LDEzICsxMTQ5LDE0IEBACiAKIC8qKgogICogYXBfcG9sbF90aW1lb3V0KCk6IEFQIHJlY2VpdmUgcG9sbGluZyBmb3IgZmluaXNoZWQgQVAgcmVxdWVzdHMuCi0gKiBAdW51c2VkOiBVbnVzZWQgdmFyaWFibGUuCisgKiBAdW51c2VkOiBVbnVzZWQgcG9pbnRlci4KICAqCi0gKiBTY2hlZHVsZXMgdGhlIEFQIHRhc2tsZXQuCisgKiBTY2hlZHVsZXMgdGhlIEFQIHRhc2tsZXQgdXNpbmcgYSBoaWdoIHJlc29sdXRpb24gdGltZXIuCiAgKi8KLXN0YXRpYyB2b2lkIGFwX3BvbGxfdGltZW91dCh1bnNpZ25lZCBsb25nIHVudXNlZCkKK3N0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBhcF9wb2xsX3RpbWVvdXQoc3RydWN0IGhydGltZXIgKnVudXNlZCkKIHsKIAl0YXNrbGV0X3NjaGVkdWxlKCZhcF90YXNrbGV0KTsKKwlyZXR1cm4gSFJUSU1FUl9OT1JFU1RBUlQ7CiB9CiAKIC8qKgpAQCAtMTM0NCw2ICsxMzc5LDE0IEBACiAJYXBfY29uZmlnX3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsgYXBfY29uZmlnX3RpbWUgKiBIWjsKIAlhZGRfdGltZXIoJmFwX2NvbmZpZ190aW1lcik7CiAKKwkvKiBTZXR1cCB0aGUgaGlnaCByZXN1bHRpb24gcG9sbCB0aW1lci4KKwkgKiBJZiB3ZSBhcmUgcnVubmluZyB1bmRlciB6L1ZNIGFkanVzdCBwb2xsaW5nIHRvIHovVk0gcG9sbGluZyByYXRlLgorCSAqLworCWlmIChNQUNISU5FX0lTX1ZNKQorCQlwb2xsX3RpbWVvdXQgPSAxNTAwMDAwOworCWhydGltZXJfaW5pdCgmYXBfcG9sbF90aW1lciwgQ0xPQ0tfTU9OT1RPTklDLCBIUlRJTUVSX01PREVfQUJTKTsKKwlhcF9wb2xsX3RpbWVyLmZ1bmN0aW9uID0gYXBfcG9sbF90aW1lb3V0OworCiAJLyogU3RhcnQgdGhlIGxvdyBwcmlvcml0eSBBUCBidXMgcG9sbCB0aHJlYWQuICovCiAJaWYgKGFwX3RocmVhZF9mbGFnKSB7CiAJCXJjID0gYXBfcG9sbF90aHJlYWRfc3RhcnQoKTsKQEAgLTEzNTUsNyArMTM5OCw3IEBACiAKIG91dF93b3JrOgogCWRlbF90aW1lcl9zeW5jKCZhcF9jb25maWdfdGltZXIpOwotCWRlbF90aW1lcl9zeW5jKCZhcF9wb2xsX3RpbWVyKTsKKwlocnRpbWVyX2NhbmNlbCgmYXBfcG9sbF90aW1lcik7CiAJZGVzdHJveV93b3JrcXVldWUoYXBfd29ya19xdWV1ZSk7CiBvdXRfcm9vdDoKIAlzMzkwX3Jvb3RfZGV2X3VucmVnaXN0ZXIoYXBfcm9vdF9kZXZpY2UpOwpAQCAtMTM4Niw3ICsxNDI5LDcgQEAKIAlhcF9yZXNldF9kb21haW4oKTsKIAlhcF9wb2xsX3RocmVhZF9zdG9wKCk7CiAJZGVsX3RpbWVyX3N5bmMoJmFwX2NvbmZpZ190aW1lcik7Ci0JZGVsX3RpbWVyX3N5bmMoJmFwX3BvbGxfdGltZXIpOworCWhydGltZXJfY2FuY2VsKCZhcF9wb2xsX3RpbWVyKTsKIAlkZXN0cm95X3dvcmtxdWV1ZShhcF93b3JrX3F1ZXVlKTsKIAl0YXNrbGV0X2tpbGwoJmFwX3Rhc2tsZXQpOwogCXMzOTBfcm9vdF9kZXZfdW5yZWdpc3RlcihhcF9yb290X2RldmljZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5oIGIvZHJpdmVycy9zMzkwL2NyeXB0by9hcF9idXMuaAppbmRleCBjMWUxMjAwLi40NDYzNzhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5oCisrKyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmgKQEAgLTkyLDYgKzkyLDggQEAKICNkZWZpbmUgQVBfREVWSUNFX1RZUEVfUENJWENDCTUKICNkZWZpbmUgQVBfREVWSUNFX1RZUEVfQ0VYMkEJNgogI2RlZmluZSBBUF9ERVZJQ0VfVFlQRV9DRVgyQwk3CisjZGVmaW5lIEFQX0RFVklDRV9UWVBFX0NFWDJBMgk4CisjZGVmaW5lIEFQX0RFVklDRV9UWVBFX0NFWDJDMgk5CiAKIC8qCiAgKiBBUCByZXNldCBmbGFnIHN0YXRlcwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfYXBpLmMgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuYwppbmRleCA0ZDM2ZTgwLi5jYjIyYjk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuYworKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBhdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvaHdfcmFuZG9tLmg+CkBAIC0zMDAsNyArMzAxLDkgQEAKICAqLwogc3RhdGljIGludCB6Y3J5cHRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKKwlsb2NrX2tlcm5lbCgpOwogCWF0b21pY19pbmMoJnpjcnlwdF9vcGVuX2NvdW50KTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEwNjgsMTAgKzEwNzEsOCBAQAogCiAjZGVmaW5lIExCVUZTSVpFIDEyMDBVTAogCWxidWYgPSBrbWFsbG9jKExCVUZTSVpFLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWxidWYpIHsKLQkJUFJJTlRLKCJrbWFsbG9jIGZhaWxlZCFcbiIpOworCWlmICghbGJ1ZikKIAkJcmV0dXJuIDA7Ci0JfQogCiAJbG9jYWxfY291bnQgPSBtaW4oTEJVRlNJWkUgLSAxLCBjb3VudCk7CiAJaWYgKGNvcHlfZnJvbV91c2VyKGxidWYsIGJ1ZmZlciwgbG9jYWxfY291bnQpICE9IDApIHsKQEAgLTEwODEsMjMgKzEwODIsMTUgQEAKIAlsYnVmW2xvY2FsX2NvdW50XSA9ICdcMCc7CiAKIAlwdHIgPSBzdHJzdHIobGJ1ZiwgIk9ubGluZSBkZXZpY2VzIik7Ci0JaWYgKCFwdHIpIHsKLQkJUFJJTlRLKCJVbmFibGUgdG8gcGFyc2UgZGF0YSAobWlzc2luZyBcIk9ubGluZSBkZXZpY2VzXCIpXG4iKTsKKwlpZiAoIXB0cikKIAkJZ290byBvdXQ7Ci0JfQogCXB0ciA9IHN0cnN0cihwdHIsICJcbiIpOwotCWlmICghcHRyKSB7Ci0JCVBSSU5USygiVW5hYmxlIHRvIHBhcnNlIGRhdGEgKG1pc3NpbmcgbmV3bGluZSAiCi0JCSAgICAgICAiYWZ0ZXIgXCJPbmxpbmUgZGV2aWNlc1wiKVxuIik7CisJaWYgKCFwdHIpCiAJCWdvdG8gb3V0OwotCX0KIAlwdHIrKzsKIAotCWlmIChzdHJzdHIocHRyLCAiV2FpdGluZyB3b3JrIGVsZW1lbnQgY291bnRzIikgPT0gTlVMTCkgewotCQlQUklOVEsoIlVuYWJsZSB0byBwYXJzZSBkYXRhIChtaXNzaW5nICIKLQkJICAgICAgICJcIldhaXRpbmcgd29yayBlbGVtZW50IGNvdW50c1wiKVxuIik7CisJaWYgKHN0cnN0cihwdHIsICJXYWl0aW5nIHdvcmsgZWxlbWVudCBjb3VudHMiKSA9PSBOVUxMKQogCQlnb3RvIG91dDsKLQl9CiAKIAlmb3IgKGogPSAwOyBqIDwgNjQgJiYgKnB0cjsgcHRyKyspIHsKIAkJLyoKQEAgLTExOTcsMTYgKzExOTAsMTIgQEAKIAogCS8qIFJlZ2lzdGVyIHRoZSByZXF1ZXN0IHNwcmF5ZXIuICovCiAJcmMgPSBtaXNjX3JlZ2lzdGVyKCZ6Y3J5cHRfbWlzY19kZXZpY2UpOwotCWlmIChyYyA8IDApIHsKLQkJUFJJTlRLVyhLRVJOX0VSUiAibWlzY19yZWdpc3RlciAobWlub3IgJWQpIGZhaWxlZCB3aXRoICVkXG4iLAotCQkJemNyeXB0X21pc2NfZGV2aWNlLm1pbm9yLCByYyk7CisJaWYgKHJjIDwgMCkKIAkJZ290byBvdXQ7Ci0JfQogCiAJLyogU2V0IHVwIHRoZSBwcm9jIGZpbGUgc3lzdGVtICovCiAJemNyeXB0X2VudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoImRyaXZlci96OTBjcnlwdCIsIDA2NDQsIE5VTEwpOwogCWlmICghemNyeXB0X2VudHJ5KSB7Ci0JCVBSSU5USygiQ291bGRuJ3QgY3JlYXRlIHo5MGNyeXB0IHByb2MgZW50cnlcbiIpOwogCQlyYyA9IC1FTk9NRU07CiAJCWdvdG8gb3V0X21pc2M7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfYXBpLmggYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuaAppbmRleCA1YzZlMjIyLi4xZDFlYzc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuaAorKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuaApAQCAtMzAsMzQgKzMwLDYgQEAKICNpZm5kZWYgX1pDUllQVF9BUElfSF8KICNkZWZpbmUgX1pDUllQVF9BUElfSF8KIAotLyoqCi0gKiBNYWNybyBkZWZpbml0aW9ucwotICoKLSAqIFBERUJVRyBkZWJ1Z3MgaW4gdGhlIGZvcm0gInpjcnlwdDogZnVuY3Rpb25fbmFtZSAtPiBtZXNzYWdlIgotICoKLSAqIFBSSU5USyBpcyBsaWtlIFBERUJVRywgZXhjZXB0IHRoYXQgaXQgaXMgYWx3YXlzIGVuYWJsZWQKLSAqIFBSSU5US04gaXMgbGlrZSBQUklOVEssIGV4Y2VwdCB0aGF0IGl0IGRvZXMgbm90IGluY2x1ZGUgdGhlIGZ1bmN0aW9uIG5hbWUKLSAqIFBSSU5US1cgaXMgbGlrZSBQUklOVEssIGV4Y2VwdCB0aGF0IGl0IHVzZXMgS0VSTl9XQVJOSU5HCi0gKiBQUklOVEtDIGlzIGxpa2UgUFJJTlRLLCBleGNlcHQgdGhhdCBpdCB1c2VzIEtFUk5fQ1JJVAotICovCi0jZGVmaW5lIERFVl9OQU1FCSJ6Y3J5cHQiCi0KLSNkZWZpbmUgUFJJTlRLKGZtdCwgYXJncy4uLikgXAotCXByaW50ayhLRVJOX0RFQlVHIERFVl9OQU1FICI6ICVzIC0+ICIgZm10LCBfX2Z1bmNfXyAsICMjIGFyZ3MpCi0jZGVmaW5lIFBSSU5US04oZm10LCBhcmdzLi4uKSBcCi0JcHJpbnRrKEtFUk5fREVCVUcgREVWX05BTUUgIjogIiBmbXQsICMjIGFyZ3MpCi0jZGVmaW5lIFBSSU5US1coZm10LCBhcmdzLi4uKSBcCi0JcHJpbnRrKEtFUk5fV0FSTklORyBERVZfTkFNRSAiOiAlcyAtPiAiIGZtdCwgX19mdW5jX18gLCAjIyBhcmdzKQotI2RlZmluZSBQUklOVEtDKGZtdCwgYXJncy4uLikgXAotCXByaW50ayhLRVJOX0NSSVQgREVWX05BTUUgIjogJXMgLT4gIiBmbXQsIF9fZnVuY19fICwgIyMgYXJncykKLQotI2lmZGVmIFpDUllQVF9ERUJVRwotI2RlZmluZSBQREVCVUcoZm10LCBhcmdzLi4uKSBcCi0JcHJpbnRrKEtFUk5fREVCVUcgREVWX05BTUUgIjogJXMgLT4gIiBmbXQsIF9fZnVuY19fICwgIyMgYXJncykKLSNlbHNlCi0jZGVmaW5lIFBERUJVRyhmbXQsIGFyZ3MuLi4pIGRvIHt9IHdoaWxlICgwKQotI2VuZGlmCi0KICNpbmNsdWRlICJhcF9idXMuaCIKICNpbmNsdWRlIDxhc20vemNyeXB0Lmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2NleDJhLmMgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9jZXgyYS5jCmluZGV4IDA4NjU3ZjYuLjU0ZjRjYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2NleDJhLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfY2V4MmEuYwpAQCAtNDksNiArNDksNyBAQAogCiBzdGF0aWMgc3RydWN0IGFwX2RldmljZV9pZCB6Y3J5cHRfY2V4MmFfaWRzW10gPSB7CiAJeyBBUF9ERVZJQ0UoQVBfREVWSUNFX1RZUEVfQ0VYMkEpIH0sCisJeyBBUF9ERVZJQ0UoQVBfREVWSUNFX1RZUEVfQ0VYMkEyKSB9LAogCXsgLyogZW5kIG9mIGxpc3QgKi8gfSwKIH07CiAKQEAgLTI0Miw5ICsyNDMsNiBAQAogCQlyZXR1cm4gY29udmVydF90eXBlODAoemRldiwgcmVwbHksCiAJCQkJICAgICAgb3V0cHV0ZGF0YSwgb3V0cHV0ZGF0YWxlbmd0aCk7CiAJZGVmYXVsdDogLyogVW5rbm93biByZXNwb25zZSB0eXBlLCB0aGlzIHNob3VsZCBORVZFUiBFVkVSIGhhcHBlbiAqLwotCQlQUklOVEsoIlVucmVjb2duaXplZCBNZXNzYWdlIEhlYWRlcjogJTA4eCUwOHhcbiIsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSByZXBseS0+bWVzc2FnZSwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIChyZXBseS0+bWVzc2FnZSs0KSk7CiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2Vycm9yLmggYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9lcnJvci5oCmluZGV4IDNlMjdmZTcuLjAzYmEyN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2Vycm9yLmgKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfZXJyb3IuaApAQCAtOTIsMTAgKzkyLDYgQEAKIHsKIAlzdHJ1Y3QgZXJyb3JfaGRyICplaGRyID0gcmVwbHktPm1lc3NhZ2U7CiAKLQlQUklOVEsoIkhhcmR3YXJlIGVycm9yIDogVHlwZSAlMDJ4IE1lc3NhZ2UgSGVhZGVyOiAlMDh4JTA4eFxuIiwKLQkgICAgICAgZWhkci0+dHlwZSwgKih1bnNpZ25lZCBpbnQgKikgcmVwbHktPm1lc3NhZ2UsCi0JICAgICAgICoodW5zaWduZWQgaW50ICopIChyZXBseS0+bWVzc2FnZSArIDQpKTsKLQogCXN3aXRjaCAoZWhkci0+cmVwbHlfY29kZSkgewogCWNhc2UgUkVQODJfRVJST1JfT1BFUkFORF9JTlZBTElEOgogCWNhc2UgUkVQODJfRVJST1JfT1BFUkFORF9TSVpFOgpAQCAtMTIzLDggKzExOSw2IEBACiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwogCWRlZmF1bHQ6Ci0JCVBSSU5US1coInVua25vd24gdHlwZSAlMDJ4IHJlcGx5IGNvZGUgPSAlZFxuIiwKLQkJCWVoZHItPnR5cGUsIGVoZHItPnJlcGx5X2NvZGUpOwogCQl6ZGV2LT5vbmxpbmUgPSAwOwogCQlyZXR1cm4gLUVBR0FJTjsJLyogcmVwZWF0IHRoZSByZXF1ZXN0IG9uIGEgZGlmZmVyZW50IGRldmljZS4gKi8KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9wY2ljYS5jIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpY2EuYwppbmRleCA2ZTkzYjQ3Li4xMmRhNDgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9wY2ljYS5jCisrKyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaWNhLmMKQEAgLTIyNiw5ICsyMjYsNiBAQAogCQlyZXR1cm4gY29udmVydF90eXBlODQoemRldiwgcmVwbHksCiAJCQkJICAgICAgb3V0cHV0ZGF0YSwgb3V0cHV0ZGF0YWxlbmd0aCk7CiAJZGVmYXVsdDogLyogVW5rbm93biByZXNwb25zZSB0eXBlLCB0aGlzIHNob3VsZCBORVZFUiBFVkVSIGhhcHBlbiAqLwotCQlQUklOVEsoIlVucmVjb2duaXplZCBNZXNzYWdlIEhlYWRlcjogJTA4eCUwOHhcbiIsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSByZXBseS0+bWVzc2FnZSwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIChyZXBseS0+bWVzc2FnZSs0KSk7CiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaWNjLmMgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9wY2ljYy5jCmluZGV4IDE3ZWE1NmMuLjc3OTk1MmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaWNjLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpY2MuYwpAQCAtMzYxLDI2ICszNjEsMTggQEAKIAlzZXJ2aWNlX3JjID0gbGUxNl90b19jcHUobXNnLT5jcHJiLmNjcF9ydGNvZGUpOwogCWlmICh1bmxpa2VseShzZXJ2aWNlX3JjICE9IDApKSB7CiAJCXNlcnZpY2VfcnMgPSBsZTE2X3RvX2NwdShtc2ctPmNwcmIuY2NwX3JzY29kZSk7Ci0JCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA2NikgewotCQkJUERFQlVHKCJCYWQgYmxvY2sgZm9ybWF0IG9uIFBDSUNDXG4iKTsKKwkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDY2KQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDY1KSB7Ci0JCQlQREVCVUcoIlByb2JhYmx5IGFuIGV2ZW4gbW9kdWx1cyBvbiBQQ0lDQ1xuIik7CisJCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA2NSkKIAkJCXJldHVybiAtRUlOVkFMOwotCQl9CiAJCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA3NzApIHsKLQkJCVBERUJVRygiSW52YWxpZCBrZXkgbGVuZ3RoIG9uIFBDSUNDXG4iKTsKIAkJCXpkZXYtPm1heF9tb2Rfc2l6ZSA9IFBDSUNDX01BWF9NT0RfU0laRV9PTEQ7CiAJCQlyZXR1cm4gLUVBR0FJTjsKIAkJfQogCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNzgzKSB7Ci0JCQlQREVCVUcoIkV4dGVuZGVkIGJpdGxlbmd0aHMgbm90IGVuYWJsZWQgb24gUENJQ0NcbiIpOwogCQkJemRldi0+bWF4X21vZF9zaXplID0gUENJQ0NfTUFYX01PRF9TSVpFX09MRDsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9Ci0JCVBSSU5USygiVW5rbm93biBzZXJ2aWNlIHJjL3JzIChQQ0lDQyk6ICVkLyVkXG4iLAotCQkgICAgICAgc2VydmljZV9yYywgc2VydmljZV9ycyk7CiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwogCX0KQEAgLTQzNCw5ICs0MjYsNiBAQAogCQkJCQkgICAgICBvdXRwdXRkYXRhLCBvdXRwdXRkYXRhbGVuZ3RoKTsKIAkJLyogbm8gYnJlYWssIGluY29ycmVjdCBjcHJiIHZlcnNpb24gaXMgYW4gdW5rbm93biByZXNwb25zZSAqLwogCWRlZmF1bHQ6IC8qIFVua25vd24gcmVzcG9uc2UgdHlwZSwgdGhpcyBzaG91bGQgTkVWRVIgRVZFUiBoYXBwZW4gKi8KLQkJUFJJTlRLKCJVbnJlY29nbml6ZWQgTWVzc2FnZSBIZWFkZXI6ICUwOHglMDh4XG4iLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgcmVwbHktPm1lc3NhZ2UsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSAocmVwbHktPm1lc3NhZ2UrNCkpOwogCQl6ZGV2LT5vbmxpbmUgPSAwOwogCQlyZXR1cm4gLUVBR0FJTjsJLyogcmVwZWF0IHRoZSByZXF1ZXN0IG9uIGEgZGlmZmVyZW50IGRldmljZS4gKi8KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9wY2l4Y2MuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaXhjYy5jCmluZGV4IDBiYzliMzEuLmQ4YWQzNmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaXhjYy5jCisrKyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaXhjYy5jCkBAIC03Miw2ICs3Miw3IEBACiBzdGF0aWMgc3RydWN0IGFwX2RldmljZV9pZCB6Y3J5cHRfcGNpeGNjX2lkc1tdID0gewogCXsgQVBfREVWSUNFKEFQX0RFVklDRV9UWVBFX1BDSVhDQykgfSwKIAl7IEFQX0RFVklDRShBUF9ERVZJQ0VfVFlQRV9DRVgyQykgfSwKKwl7IEFQX0RFVklDRShBUF9ERVZJQ0VfVFlQRV9DRVgyQzIpIH0sCiAJeyAvKiBlbmQgb2YgbGlzdCAqLyB9LAogfTsKIApAQCAtMjg5LDM4ICsyOTAsMTkgQEAKIAlhcF9tc2ctPmxlbmd0aCA9IHNpemVvZihzdHJ1Y3QgdHlwZTZfaGRyKSArCiAJCUNFSUw0KHhjUkItPnJlcXVlc3RfY29udHJvbF9ibGtfbGVuZ3RoKSArCiAJCXhjUkItPnJlcXVlc3RfZGF0YV9sZW5ndGg7Ci0JaWYgKGFwX21zZy0+bGVuZ3RoID4gUENJWENDX01BWF9YQ1JCX01FU1NBR0VfU0laRSkgewotCQlQUklOVEsoIkNvbWJpbmVkIG1lc3NhZ2UgaXMgdG9vIGxhcmdlICglbGQvJWQvJWQpLlxuIiwKLQkJICAgIHNpemVvZihzdHJ1Y3QgdHlwZTZfaGRyKSwKLQkJICAgIHhjUkItPnJlcXVlc3RfY29udHJvbF9ibGtfbGVuZ3RoLAotCQkgICAgeGNSQi0+cmVxdWVzdF9kYXRhX2xlbmd0aCk7CisJaWYgKGFwX21zZy0+bGVuZ3RoID4gUENJWENDX01BWF9YQ1JCX01FU1NBR0VfU0laRSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0JfQotCWlmIChDRUlMNCh4Y1JCLT5yZXBseV9jb250cm9sX2Jsa19sZW5ndGgpID4KLQkgICAgUENJWENDX01BWF9YQ1JCX1JFUExZX1NJWkUpIHsKLQkJUERFQlVHKCJSZXBseSBDUFJCIGxlbmd0aCBpcyB0b28gbGFyZ2UgKCVkKS5cbiIsCi0JCSAgICB4Y1JCLT5yZXF1ZXN0X2NvbnRyb2xfYmxrX2xlbmd0aCk7CisJaWYgKENFSUw0KHhjUkItPnJlcGx5X2NvbnRyb2xfYmxrX2xlbmd0aCkgPiBQQ0lYQ0NfTUFYX1hDUkJfUkVQTFlfU0laRSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0JfQotCWlmIChDRUlMNCh4Y1JCLT5yZXBseV9kYXRhX2xlbmd0aCkgPiBQQ0lYQ0NfTUFYX1hDUkJfREFUQV9TSVpFKSB7Ci0JCVBERUJVRygiUmVwbHkgZGF0YSBibG9jayBsZW5ndGggaXMgdG9vIGxhcmdlICglZCkuXG4iLAotCQkgICAgeGNSQi0+cmVwbHlfZGF0YV9sZW5ndGgpOworCWlmIChDRUlMNCh4Y1JCLT5yZXBseV9kYXRhX2xlbmd0aCkgPiBQQ0lYQ0NfTUFYX1hDUkJfREFUQV9TSVpFKQogCQlyZXR1cm4gLUVGQVVMVDsKLQl9CiAJcmVwbHlsZW4gPSBDRUlMNCh4Y1JCLT5yZXBseV9jb250cm9sX2Jsa19sZW5ndGgpICsKIAkJQ0VJTDQoeGNSQi0+cmVwbHlfZGF0YV9sZW5ndGgpICsKIAkJc2l6ZW9mKHN0cnVjdCB0eXBlODZfZm10Ml9tc2cpOwogCWlmIChyZXBseWxlbiA+IFBDSVhDQ19NQVhfWENSQl9SRVNQT05TRV9TSVpFKSB7Ci0JCVBERUJVRygiUmVwbHkgQ1BSQiArIGRhdGEgYmxvY2sgPiBQQ0lYQ0NfTUFYX1hDUkJfUkVTUE9OU0VfU0laRSIKLQkJICAgICAgICIgKCVkLyVkLyVkKS5cbiIsCi0JCSAgICAgICBzaXplb2Yoc3RydWN0IHR5cGU4Nl9mbXQyX21zZyksCi0JCSAgICAgICB4Y1JCLT5yZXBseV9jb250cm9sX2Jsa19sZW5ndGgsCi0JCSAgICAgICB4Y1JCLT5yZXBseV9kYXRhX2xlbmd0aCk7CiAJCXhjUkItPnJlcGx5X2NvbnRyb2xfYmxrX2xlbmd0aCA9IFBDSVhDQ19NQVhfWENSQl9SRVNQT05TRV9TSVpFIC0KIAkJCShzaXplb2Yoc3RydWN0IHR5cGU4Nl9mbXQyX21zZykgKwogCQkJICAgIENFSUw0KHhjUkItPnJlcGx5X2RhdGFfbGVuZ3RoKSk7Ci0JCVBERUJVRygiQ2FwcGluZyBSZXBseSBDUFJCIGxlbmd0aCBhdCAlZFxuIiwKLQkJICAgICAgIHhjUkItPnJlcGx5X2NvbnRyb2xfYmxrX2xlbmd0aCk7CiAJfQogCiAJLyogcHJlcGFyZSB0eXBlNiBoZWFkZXIgKi8KQEAgLTMzOSwxMSArMzIxLDggQEAKIAkJICAgIHhjUkItPnJlcXVlc3RfY29udHJvbF9ibGtfbGVuZ3RoKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJaWYgKG1zZy0+Y3ByYnguY3ByYl9sZW4gKyBzaXplb2YobXNnLT5oZHIuZnVuY3Rpb25fY29kZSkgPgotCSAgICB4Y1JCLT5yZXF1ZXN0X2NvbnRyb2xfYmxrX2xlbmd0aCkgewotCQlQREVCVUcoImNwcmJfbGVuIHRvbyBsYXJnZSAoJWQvJWQpXG4iLCBtc2ctPmNwcmJ4LmNwcmJfbGVuLAotCQkgICAgeGNSQi0+cmVxdWVzdF9jb250cm9sX2Jsa19sZW5ndGgpOworCSAgICB4Y1JCLT5yZXF1ZXN0X2NvbnRyb2xfYmxrX2xlbmd0aCkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0JfQogCWZ1bmN0aW9uX2NvZGUgPSAoKHVuc2lnbmVkIGNoYXIgKikmbXNnLT5jcHJieCkgKyBtc2ctPmNwcmJ4LmNwcmJfbGVuOwogCW1lbWNweShtc2ctPmhkci5mdW5jdGlvbl9jb2RlLCBmdW5jdGlvbl9jb2RlLCBzaXplb2YobXNnLT5oZHIuZnVuY3Rpb25fY29kZSkpOwogCkBAIC00NzEsMjkgKzQ1MCwxOCBAQAogCXNlcnZpY2VfcmMgPSBtc2ctPmNwcmJ4LmNjcF9ydGNvZGU7CiAJaWYgKHVubGlrZWx5KHNlcnZpY2VfcmMgIT0gMCkpIHsKIAkJc2VydmljZV9ycyA9IG1zZy0+Y3ByYnguY2NwX3JzY29kZTsKLQkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDY2KSB7Ci0JCQlQREVCVUcoIkJhZCBibG9jayBmb3JtYXQgb24gUENJWENDL0NFWDJDXG4iKTsKKwkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDY2KQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDY1KSB7Ci0JCQlQREVCVUcoIlByb2JhYmx5IGFuIGV2ZW4gbW9kdWx1cyBvbiBQQ0lYQ0MvQ0VYMkNcbiIpOworCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjUpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNzcwKSB7Ci0JCQlQREVCVUcoIkludmFsaWQga2V5IGxlbmd0aCBvbiBQQ0lYQ0MvQ0VYMkNcbiIpOworCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNzcwKQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KIAkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDc4MykgewotCQkJUERFQlVHKCJFeHRlbmRlZCBiaXRsZW5ndGhzIG5vdCBlbmFibGVkIG9uIFBDSVhDQy9DRVgyQ1xuIik7CiAJCQl6ZGV2LT5taW5fbW9kX3NpemUgPSBQQ0lYQ0NfTUlOX01PRF9TSVpFX09MRDsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9Ci0JCWlmIChzZXJ2aWNlX3JjID09IDEyICYmIHNlcnZpY2VfcnMgPT0gNzY5KSB7Ci0JCQlQREVCVUcoIkludmFsaWQga2V5IG9uIFBDSVhDQy9DRVgyQ1xuIik7CisJCWlmIChzZXJ2aWNlX3JjID09IDEyICYmIHNlcnZpY2VfcnMgPT0gNzY5KQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJUFJJTlRLKCJVbmtub3duIHNlcnZpY2UgcmMvcnMgKFBDSVhDQy9DRVgyQyk6ICVkLyVkXG4iLAotCQkgICAgICAgc2VydmljZV9yYywgc2VydmljZV9ycyk7CiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwogCX0KQEAgLTU2OSwxMSArNTM3LDggQEAKIAl9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpICptc2cgPSByZXBseS0+bWVzc2FnZTsKIAljaGFyICpkYXRhID0gcmVwbHktPm1lc3NhZ2U7CiAKLQlpZiAobXNnLT5jcHJieC5jY3BfcnRjb2RlICE9IDAgfHwgbXNnLT5jcHJieC5jY3BfcnNjb2RlICE9IDApIHsKLQkJUERFQlVHKCJSTkcgcmVzcG9uc2UgZXJyb3Igb24gUENJWENDL0NFWDJDIHJjPSVodS9ycz0laHVcbiIsCi0JCSAgICAgICByYywgcnMpOworCWlmIChtc2ctPmNwcmJ4LmNjcF9ydGNvZGUgIT0gMCB8fCBtc2ctPmNwcmJ4LmNjcF9yc2NvZGUgIT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCW1lbWNweShidWZmZXIsIGRhdGEgKyBtc2ctPmZtdDIub2Zmc2V0MiwgbXNnLT5mbXQyLmNvdW50Mik7CiAJcmV0dXJuIG1zZy0+Zm10Mi5jb3VudDI7CiB9CkBAIC01OTgsOSArNTYzLDYgQEAKIAkJCQkJCSAgb3V0cHV0ZGF0YSwgb3V0cHV0ZGF0YWxlbmd0aCk7CiAJCS8qIG5vIGJyZWFrLCBpbmNvcnJlY3QgY3ByYiB2ZXJzaW9uIGlzIGFuIHVua25vd24gcmVzcG9uc2UgKi8KIAlkZWZhdWx0OiAvKiBVbmtub3duIHJlc3BvbnNlIHR5cGUsIHRoaXMgc2hvdWxkIE5FVkVSIEVWRVIgaGFwcGVuICovCi0JCVBSSU5USygiVW5yZWNvZ25pemVkIE1lc3NhZ2UgSGVhZGVyOiAlMDh4JTA4eFxuIiwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIHJlcGx5LT5tZXNzYWdlLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgKHJlcGx5LT5tZXNzYWdlKzQpKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpAQCAtNjI3LDkgKzU4OSw2IEBACiAJCQlyZXR1cm4gY29udmVydF90eXBlODZfeGNyYih6ZGV2LCByZXBseSwgeGNSQik7CiAJCS8qIG5vIGJyZWFrLCBpbmNvcnJlY3QgY3ByYiB2ZXJzaW9uIGlzIGFuIHVua25vd24gcmVzcG9uc2UgKi8KIAlkZWZhdWx0OiAvKiBVbmtub3duIHJlc3BvbnNlIHR5cGUsIHRoaXMgc2hvdWxkIE5FVkVSIEVWRVIgaGFwcGVuICovCi0JCVBSSU5USygiVW5yZWNvZ25pemVkIE1lc3NhZ2UgSGVhZGVyOiAlMDh4JTA4eFxuIiwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIHJlcGx5LT5tZXNzYWdlLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgKHJlcGx5LT5tZXNzYWdlKzQpKTsKIAkJeGNSQi0+c3RhdHVzID0gMHgwMDA4MDQ0REw7IC8qIEhERF9JbnZhbGlkUGFybSAqLwogCQl6ZGV2LT5vbmxpbmUgPSAwOwogCQlyZXR1cm4gLUVBR0FJTjsJLyogcmVwZWF0IHRoZSByZXF1ZXN0IG9uIGEgZGlmZmVyZW50IGRldmljZS4gKi8KQEAgLTY1Myw5ICs2MTIsNiBAQAogCQkJcmV0dXJuIGNvbnZlcnRfdHlwZTg2X3JuZyh6ZGV2LCByZXBseSwgZGF0YSk7CiAJCS8qIG5vIGJyZWFrLCBpbmNvcnJlY3QgY3ByYiB2ZXJzaW9uIGlzIGFuIHVua25vd24gcmVzcG9uc2UgKi8KIAlkZWZhdWx0OiAvKiBVbmtub3duIHJlc3BvbnNlIHR5cGUsIHRoaXMgc2hvdWxkIE5FVkVSIEVWRVIgaGFwcGVuICovCi0JCVBSSU5USygiVW5yZWNvZ25pemVkIE1lc3NhZ2UgSGVhZGVyOiAlMDh4JTA4eFxuIiwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIHJlcGx5LT5tZXNzYWdlLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgKHJlcGx5LT5tZXNzYWdlKzQpKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpAQCAtNzAwLDEwICs2NTYsNyBAQAogCQkJbWVtY3B5KG1zZy0+bWVzc2FnZSwgcmVwbHktPm1lc3NhZ2UsIGxlbmd0aCk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJCVBSSU5USygiSW52YWxpZCBpbnRlcm5hbCByZXNwb25zZSB0eXBlOiAlaVxuIiwKLQkJCSAgICByZXNwX3R5cGUtPnR5cGUpOwotCQkJbWVtY3B5KG1zZy0+bWVzc2FnZSwgJmVycm9yX3JlcGx5LAotCQkJICAgIHNpemVvZiBlcnJvcl9yZXBseSk7CisJCQltZW1jcHkobXNnLT5tZXNzYWdlLCAmZXJyb3JfcmVwbHksIHNpemVvZiBlcnJvcl9yZXBseSk7CiAJCX0KIAl9IGVsc2UKIAkJbWVtY3B5KG1zZy0+bWVzc2FnZSwgcmVwbHktPm1lc3NhZ2UsIHNpemVvZiBlcnJvcl9yZXBseSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L2NsYXcuYyBiL2RyaXZlcnMvczM5MC9uZXQvY2xhdy5jCmluZGV4IDA0YTFkN2IuLmM2NDQ2NjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvY2xhdy5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvY2xhdy5jCkBAIC03MDMsNyArNzAzLDggQEAKIAlpZiAoIWNkZXYtPmRldi5kcml2ZXJfZGF0YSkgewogICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX1dBUk5JTkcgImNsYXc6IHVuc29saWNpdGVkIGludGVycnVwdCBmb3IgZGV2aWNlOiIKIAkJIAkiJXMgcmVjZWl2ZWQgYy0lMDJ4IGQtJTAyeFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNkZXYtPmRldi5idXNfaWQsaXJiLT5zY3N3LmNzdGF0LCBpcmItPnNjc3cuZHN0YXQpOworCQkgICAgICAgY2Rldi0+ZGV2LmJ1c19pZCwgaXJiLT5zY3N3LmNtZC5jc3RhdCwKKwkJICAgICAgIGlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogI2lmZGVmIEZVTkNUUkFDRQogICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gImNsYXc6ICVzKCkgIgogCQkJImV4aXQgb24gbGluZSAlZFxuIixfX2Z1bmNfXyxfX0xJTkVfXyk7CkBAIC03MzIsMjIgKzczMywyMyBAQAogI2lmZGVmIElPVFJBQ0UKICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiJXM6IGludGVycnVwdCBmb3IgZGV2aWNlOiAlMDR4ICIKIAkJInJlY2VpdmVkIGMtJTAyeCBkLSUwMnggc3RhdGUtJTAyeFxuIiwKLSAgICAgICAgICAgICAgICBkZXYtPm5hbWUsIHBfY2gtPmRldm5vLCBpcmItPnNjc3cuY3N0YXQsCi0JCWlyYi0+c2Nzdy5kc3RhdCwgcF9jaC0+Y2xhd19zdGF0ZSk7CisJICAgICAgIGRldi0+bmFtZSwgcF9jaC0+ZGV2bm8sIGlyYi0+c2Nzdy5jbWQuY3N0YXQsCisJICAgICAgIGlyYi0+c2Nzdy5jbWQuZHN0YXQsIHBfY2gtPmNsYXdfc3RhdGUpOwogI2VuZGlmCiAKIAkvKiBDb3B5IGludGVycnVwdGlvbiByZXNwb25zZSBibG9jay4gKi8KIAltZW1jcHkocF9jaC0+aXJiLCBpcmIsIHNpemVvZihzdHJ1Y3QgaXJiKSk7CiAKICAgICAgICAgLyogQ2hlY2sgZm9yIGdvb2Qgc3ViY2hhbm5lbCByZXR1cm4gY29kZSwgb3RoZXJ3aXNlIGVycm9yIG1lc3NhZ2UgKi8KLSAgICAgICAgaWYgKGlyYi0+c2Nzdy5jc3RhdCAgJiYgICEoaXJiLT5zY3N3LmNzdGF0ICYgU0NITl9TVEFUX1BDSSkpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5jc3RhdCAmJiAhKGlyYi0+c2Nzdy5jbWQuY3N0YXQgJiBTQ0hOX1NUQVRfUENJKSkgewogICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIiVzOiBzdWJjaGFubmVsIGNoZWNrIGZvciBkZXZpY2U6ICUwNHggLSIKIAkJCSIgU2NoIFN0YXQgJTAyeCAgRGV2IFN0YXQgJTAyeCBDUEEgLSAlMDR4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5uYW1lLCBwX2NoLT5kZXZubywKLQkJCWlyYi0+c2Nzdy5jc3RhdCwgaXJiLT5zY3N3LmRzdGF0LGlyYi0+c2Nzdy5jcGEpOworCQkJaXJiLT5zY3N3LmNtZC5jc3RhdCwgaXJiLT5zY3N3LmNtZC5kc3RhdCwKKwkJCWlyYi0+c2Nzdy5jbWQuY3BhKTsKICNpZmRlZiBJT1RSQUNFCiAJCWR1bXBpdCgoY2hhciAqKWlyYixzaXplb2Yoc3RydWN0IGlyYikpOwotCQlkdW1waXQoKGNoYXIgKikodW5zaWduZWQgbG9uZylpcmItPnNjc3cuY3BhLAorCQlkdW1waXQoKGNoYXIgKikodW5zaWduZWQgbG9uZylpcmItPnNjc3cuY21kLmNwYSwKIAkJCXNpemVvZihzdHJ1Y3QgY2N3MSkpOwogI2VuZGlmCiAjaWZkZWYgRlVOQ1RSQUNFCkBAIC03NTksMjIgKzc2MSwyNCBAQAogICAgICAgICB9CiAKICAgICAgICAgLyogQ2hlY2sgdGhlIHJlYXNvbi1jb2RlIG9mIGEgdW5pdCBjaGVjayAqLwotICAgICAgICBpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKICAgICAgICAgICAgICAgICBjY3dfY2hlY2tfdW5pdF9jaGVjayhwX2NoLCBpcmItPmVjd1swXSk7Ci0gICAgICAgIH0KIAogICAgICAgICAvKiBTdGF0ZSBtYWNoaW5lIHRvIGJyaW5nIHRoZSBjb25uZWN0aW9uIHVwLCBkb3duIGFuZCB0byByZXN0YXJ0ICovCi0gICAgICAgIHBfY2gtPmxhc3RfZHN0YXQgPSBpcmItPnNjc3cuZHN0YXQ7CisJcF9jaC0+bGFzdF9kc3RhdCA9IGlyYi0+c2Nzdy5jbWQuZHN0YXQ7CiAKICAgICAgICAgc3dpdGNoIChwX2NoLT5jbGF3X3N0YXRlKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBDTEFXX1NUT1A6LyogSEFMVF9JTyBieSBjbGF3X3JlbGVhc2UgKGhhbHQgc2VxdWVuY2UpICovCiAjaWZkZWYgREVCVUdNU0cKICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIiVzOiBDTEFXX1NUT1AgZW50ZXJcbiIsIGRldi0+bmFtZSk7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKChwX2NoLT5pcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8Ci0JICAgIAkJKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAotCSAgICAJCShwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0KLQkgICAgIAkJKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSkgeworCQkJaWYgKCEoKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgJgorCQkJICAgICAgIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKKwkJCSAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJCVNDU1dfU1RDVExfU1RBVFVTX1BFTkQpIHx8CisJCQkgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KKwkJCQkoU0NTV19TVENUTF9BTEVSVF9TVEFUVVMgfAorCQkJCSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkpKSB7CiAjaWZkZWYgRlVOQ1RSQUNFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIiVzOiVzIEV4aXQgb24gbGluZSAlZFxuIiwKIAkJCQkJZGV2LT5uYW1lLF9fZnVuY19fLF9fTElORV9fKTsKQEAgLTc5OCwxMCArODAyLDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGsoS0VSTl9JTkZPICIlczogcHJvY2VzcyBDTEFXX1NUQVRfSEFMVF9JT1xuIiwKIAkJCQlkZXYtPm5hbWUpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISgocF9jaC0+aXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAotCSAgICAJCShwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgCQkocF9jaC0+aXJiLT5zY3N3LnN0Y3RsID09Ci0JICAgICAJCShTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkpIHsKKwkJCWlmICghKChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsICYKKwkJCSAgICAgICBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8CisJCQkgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KKwkJCSAgICAgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKKwkJCSAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJICAgICAoU0NTV19TVENUTF9BTEVSVF9TVEFUVVMgfAorCQkJICAgICAgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSkgewogI2lmZGVmIEZVTkNUUkFDRQogCQkJCXByaW50ayhLRVJOX0lORk8gIiVzOiVzIEV4aXQgb24gbGluZSAlZFxuIiwKIAkJCQkJZGV2LT5uYW1lLF9fZnVuY19fLF9fTElORV9fKTsKQEAgLTgyOCw4ICs4MzUsOCBAQAogCQkJCQkiaW50ZXJydXB0IGZvciBkZXZpY2U6IgogCQkJCSAJIiVzIHJlY2VpdmVkIGMtJTAyeCBkLSUwMnhcbiIsCiAgICAgICAgICAgICAgICAgCQkgICAgICAgIGNkZXYtPmRldi5idXNfaWQsCi0JCQkJCWlyYi0+c2Nzdy5jc3RhdCwKLQkJCQkJaXJiLT5zY3N3LmRzdGF0KTsKKwkJCQkJaXJiLT5zY3N3LmNtZC5jc3RhdCwKKwkJCQkJaXJiLT5zY3N3LmNtZC5kc3RhdCk7CiAJCQkJcmV0dXJuOwogCQkJCX0KICNpZmRlZiBERUJVR01TRwpAQCAtODQ0LDcgKzg1MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgY2FzZSBDTEFXX1NUQVJUX1JFQUQ6CiAJCQlDTEFXX0RCRl9URVhUKDQsdHJhY2UsIlJlYWRJUlEiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwX2NoLT5pcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CisJCQlpZiAocF9jaC0+aXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJfYml0KDAsICh2b2lkICopJnBfY2gtPklPX2FjdGl2ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocF9jaC0+aXJiLT5lY3dbMF0gJiAweDQxKSA9PSAweDQxIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocF9jaC0+aXJiLT5lY3dbMF0gJiAweDQwKSA9PSAweDQwIHx8CkBAIC04NjMsOCArODcwLDggQEAKIAkJCQkJQ0xBV19EQkZfVEVYVCg0LHRyYWNlLCJub3RyZHkiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBfY2gtPmlyYi0+c2Nzdy5jc3RhdCAmIFNDSE5fU1RBVF9QQ0kpICYmCi0JCQkgICAgKHBfY2gtPmlyYi0+c2Nzdy5kc3RhdD09MCkpIHsKKwkJCWlmICgocF9jaC0+aXJiLT5zY3N3LmNtZC5jc3RhdCAmIFNDSE5fU1RBVF9QQ0kpICYmCisJCQkgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gMCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RfYW5kX3NldF9iaXQoQ0xBV19CSF9BQ1RJVkUsCiAJCQkJCSh2b2lkICopJnBfY2gtPmZsYWdfYSkgPT0gMCkgewogCQkJCQl0YXNrbGV0X3NjaGVkdWxlKCZwX2NoLT50YXNrbGV0KTsKQEAgLTg3OSwxMCArODg2LDEzIEBACiAJCQkJQ0xBV19EQkZfVEVYVCg0LHRyYWNlLCJQQ0lfcmVhZCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZighKChwX2NoLT5pcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8Ci0JICAgIAkJIChwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgCQkgKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCA9PQotCSAgICAgCQkgKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSkgeworCQkJaWYgKCEoKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgJgorCQkJICAgICAgIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKKwkJCSAgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KKwkJCSAgICAgIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpIHx8CisJCQkgICAgIChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsID09CisJCQkgICAgICAoU0NTV19TVENUTF9BTEVSVF9TVEFUVVMgfAorCQkJICAgICAgIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkpIHsKICNpZmRlZiBGVU5DVFJBQ0UKIAkJCQlwcmludGsoS0VSTl9JTkZPICIlczolcyBFeGl0IG9uIGxpbmUgJWRcbiIsCiAJCQkJCWRldi0+bmFtZSxfX2Z1bmNfXyxfX0xJTkVfXyk7CkBAIC05MTEsNyArOTIxLDcgQEAKIAkJCUNMQVdfREJGX1RFWFQoNCx0cmFjZSwiUmRJUlFYaXQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICBjYXNlIENMQVdfU1RBUlRfV1JJVEU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocF9jaC0+aXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgeworCQkJaWYgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIiVzOiBVbml0IENoZWNrIE9jY3VyZWQgaW4gIgogCQkJCQkid3JpdGUgY2hhbm5lbFxuIixkZXYtPm5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhcl9iaXQoMCwgKHZvaWQgKikmcF9jaC0+SU9fYWN0aXZlKTsKQEAgLTkzNCwxNiArOTQ0LDE5IEBACiAJCQkJQ0xBV19EQkZfVEVYVCg0LHRyYWNlLCJyc3RydHdydCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocF9jaC0+aXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9FWENFUCkgeworCQkJaWYgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJfYml0KDAsICh2b2lkICopJnBfY2gtPklPX2FjdGl2ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiJXM6IFVuaXQgRXhjZXB0aW9uICIKIAkJCQkJCSJPY2N1cmVkIGluIHdyaXRlIGNoYW5uZWxcbiIsCiAJCQkJCQlkZXYtPm5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYoISgocF9jaC0+aXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAotCSAgICAJCShwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgCQkocF9jaC0+aXJiLT5zY3N3LnN0Y3RsID09Ci0JICAgICAJCShTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkpIHsKKwkJCWlmICghKChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsICYKKwkJCSAgICAgICBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8CisJCQkgICAgIChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsID09CisJCQkgICAgICBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAorCQkJICAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJICAgICAgKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwKKwkJCSAgICAgICBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkpKSB7CiAjaWZkZWYgRlVOQ1RSQUNFCiAJCQkJcHJpbnRrKEtFUk5fSU5GTyAiJXM6JXMgRXhpdCBvbiBsaW5lICVkXG4iLAogCQkJCQlkZXYtPm5hbWUsX19mdW5jX18sX19MSU5FX18pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9jdGNtX2ZzbXMuYyBiL2RyaXZlcnMvczM5MC9uZXQvY3RjbV9mc21zLmMKaW5kZXggMmExMDZmMy4uN2U2YmQzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9jdGNtX2ZzbXMuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L2N0Y21fZnNtcy5jCkBAIC0yNTcsOSArMjU3LDkgQEAKIAlpZiAoZHVyYXRpb24gPiBjaC0+cHJvZi50eF90aW1lKQogCQljaC0+cHJvZi50eF90aW1lID0gZHVyYXRpb247CiAKLQlpZiAoY2gtPmlyYi0+c2Nzdy5jb3VudCAhPSAwKQorCWlmIChjaC0+aXJiLT5zY3N3LmNtZC5jb3VudCAhPSAwKQogCQljdGNtX3ByX2RlYnVnKCIlczogVFggbm90IGNvbXBsZXRlLCByZW1haW5pbmcgJWQgYnl0ZXNcbiIsCi0JCQkgICAgIGRldi0+bmFtZSwgY2gtPmlyYi0+c2Nzdy5jb3VudCk7CisJCQkgICAgIGRldi0+bmFtZSwgY2gtPmlyYi0+c2Nzdy5jbWQuY291bnQpOwogCWZzbV9kZWx0aW1lcigmY2gtPnRpbWVyKTsKIAl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZjaC0+aW9fcXVldWUpKSkgewogCQlwcml2LT5zdGF0cy50eF9wYWNrZXRzKys7CkBAIC0zNTMsNyArMzUzLDcgQEAKIAlzdHJ1Y3QgY2hhbm5lbCAqY2ggPSBhcmc7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IGNoLT5uZXRkZXY7CiAJc3RydWN0IGN0Y21fcHJpdiAqcHJpdiA9IGRldi0+cHJpdjsKLQlpbnQgbGVuID0gY2gtPm1heF9idWZzaXplIC0gY2gtPmlyYi0+c2Nzdy5jb3VudDsKKwlpbnQgbGVuID0gY2gtPm1heF9idWZzaXplIC0gY2gtPmlyYi0+c2Nzdy5jbWQuY291bnQ7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IGNoLT50cmFuc19za2I7CiAJX191MTYgYmxvY2tfbGVuID0gKigoX191MTYgKilza2ItPmRhdGEpOwogCWludCBjaGVja19sZW47CkBAIC0xMjM0LDkgKzEyMzQsOSBAQAogCWlmIChkdXJhdGlvbiA+IGNoLT5wcm9mLnR4X3RpbWUpCiAJCWNoLT5wcm9mLnR4X3RpbWUgPSBkdXJhdGlvbjsKIAotCWlmIChjaC0+aXJiLT5zY3N3LmNvdW50ICE9IDApCisJaWYgKGNoLT5pcmItPnNjc3cuY21kLmNvdW50ICE9IDApCiAJCWN0Y21fcHJfZGVidWcoIiVzOiBUWCBub3QgY29tcGxldGUsIHJlbWFpbmluZyAlZCBieXRlc1xuIiwKLQkJCQlkZXYtPm5hbWUsIGNoLT5pcmItPnNjc3cuY291bnQpOworCQkJCWRldi0+bmFtZSwgY2gtPmlyYi0+c2Nzdy5jbWQuY291bnQpOwogCWZzbV9kZWx0aW1lcigmY2gtPnRpbWVyKTsKIAl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZjaC0+aW9fcXVldWUpKSkgewogCQlwcml2LT5zdGF0cy50eF9wYWNrZXRzKys7CkBAIC0xMzk0LDcgKzEzOTQsNyBAQAogCXN0cnVjdCBza19idWZmCQkqc2tiID0gY2gtPnRyYW5zX3NrYjsKIAlzdHJ1Y3Qgc2tfYnVmZgkJKm5ld19za2I7CiAJdW5zaWduZWQgbG9uZwlzYXZlZmxhZ3MgPSAwOwkvKiBhdm9pZHMgY29tcGlsZXIgd2FybmluZyAqLwotCWludCBsZW4JPSBjaC0+bWF4X2J1ZnNpemUgLSBjaC0+aXJiLT5zY3N3LmNvdW50OworCWludCBsZW4JPSBjaC0+bWF4X2J1ZnNpemUgLSBjaC0+aXJiLT5zY3N3LmNtZC5jb3VudDsKIAogCWlmIChkb19kZWJ1Z19kYXRhKSB7CiAJCUNUQ01fREJGX1RFWFRfKFRSQUNFLCBDVENfREJGX0RFQlVHLCAibXBjX2NoX3J4ICVzIGNwOiVpICVzXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9jdGNtX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvY3RjbV9tYWluLmMKaW5kZXggZDUyODQzZC4uNmIxM2MxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9jdGNtX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L2N0Y21fbWFpbi5jCkBAIC0xMjM2LDggKzEyMzYsOCBAQAogCS8qIENoZWNrIGZvciB1bnNvbGljaXRlZCBpbnRlcnJ1cHRzLiAqLwogCWlmIChjZ2RldiA9PSBOVUxMKSB7CiAJCWN0Y21fcHJfd2FybigiY3RjbTogR290IHVuc29saWNpdGVkIGlycTogJXMgYy0lMDJ4IGQtJTAyeFxuIiwKLQkJCSAgICBjZGV2LT5kZXYuYnVzX2lkLCBpcmItPnNjc3cuY3N0YXQsCi0JCQkgICAgaXJiLT5zY3N3LmRzdGF0KTsKKwkJCSAgICBjZGV2LT5kZXYuYnVzX2lkLCBpcmItPnNjc3cuY21kLmNzdGF0LAorCQkJICAgIGlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogCQlyZXR1cm47CiAJfQogCkBAIC0xMjY2LDQwICsxMjY2LDQwIEBACiAJCQkJInJlY2VpdmVkIGMtJTAyeCBkLSUwMnhcbiIsCiAJCQkJZGV2LT5uYW1lLAogCQkJCWNoLT5pZCwKLQkJCQlpcmItPnNjc3cuY3N0YXQsCi0JCQkJaXJiLT5zY3N3LmRzdGF0KTsKKwkJCQlpcmItPnNjc3cuY21kLmNzdGF0LAorCQkJCWlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogCiAJLyogQ29weSBpbnRlcnJ1cHRpb24gcmVzcG9uc2UgYmxvY2suICovCiAJbWVtY3B5KGNoLT5pcmIsIGlyYiwgc2l6ZW9mKHN0cnVjdCBpcmIpKTsKIAogCS8qIENoZWNrIGZvciBnb29kIHN1YmNoYW5uZWwgcmV0dXJuIGNvZGUsIG90aGVyd2lzZSBlcnJvciBtZXNzYWdlICovCi0JaWYgKGlyYi0+c2Nzdy5jc3RhdCkgeworCWlmIChpcmItPnNjc3cuY21kLmNzdGF0KSB7CiAJCWZzbV9ldmVudChjaC0+ZnNtLCBDVENfRVZFTlRfU0NfVU5LTk9XTiwgY2gpOwogCQljdGNtX3ByX3dhcm4oIiVzOiBzdWJjaGFubmVsIGNoZWNrIGZvciBkZXY6ICVzIC0gJTAyeCAlMDJ4XG4iLAotCQkJICAgIGRldi0+bmFtZSwgY2gtPmlkLCBpcmItPnNjc3cuY3N0YXQsCi0JCQkgICAgaXJiLT5zY3N3LmRzdGF0KTsKKwkJCSAgICBkZXYtPm5hbWUsIGNoLT5pZCwgaXJiLT5zY3N3LmNtZC5jc3RhdCwKKwkJCSAgICBpcmItPnNjc3cuY21kLmRzdGF0KTsKIAkJcmV0dXJuOwogCX0KIAogCS8qIENoZWNrIHRoZSByZWFzb24tY29kZSBvZiBhIHVuaXQgY2hlY2sgKi8KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgewogCQljY3dfdW5pdF9jaGVjayhjaCwgaXJiLT5lY3dbMF0pOwogCQlyZXR1cm47CiAJfQotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9CVVNZKSB7Ci0JCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pCisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9CVVNZKSB7CisJCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKQogCQkJZnNtX2V2ZW50KGNoLT5mc20sIENUQ19FVkVOVF9BVFROQlVTWSwgY2gpOwogCQllbHNlCiAJCQlmc21fZXZlbnQoY2gtPmZzbSwgQ1RDX0VWRU5UX0JVU1ksIGNoKTsKIAkJcmV0dXJuOwogCX0KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKIAkJZnNtX2V2ZW50KGNoLT5mc20sIENUQ19FVkVOVF9BVFROLCBjaCk7CiAJCXJldHVybjsKIAl9Ci0JaWYgKChpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8Ci0JICAgIChpcmItPnNjc3cuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgKGlyYi0+c2Nzdy5zdGN0bCA9PQorCWlmICgoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKKwkgICAgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKKwkgICAgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KIAkgICAgIChTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkKIAkJZnNtX2V2ZW50KGNoLT5mc20sIENUQ19FVkVOVF9GSU5TVEFULCBjaCk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9jdTMwODguYyBiL2RyaXZlcnMvczM5MC9uZXQvY3UzMDg4LmMKaW5kZXggOGU3Njk3My4uZjRhMzIzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9jdTMwODguYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L2N1MzA4OC5jCkBAIC0zNiw3ICszNiw2IEBACiAJIkNUQy9BIiwKIAkiRVNDT04gY2hhbm5lbCIsCiAJIkZJQ09OIGNoYW5uZWwiLAotCSJQMzkwIExDUyBjYXJkIiwKIAkiT1NBIExDUyBjYXJkIiwKIAkiQ0xBVyBjaGFubmVsIGRldmljZSIsCiAJInVua25vd24gY2hhbm5lbCB0eXBlIiwKQEAgLTQ5LDcgKzQ4LDYgQEAKIAl7IENDV19ERVZJQ0UoMHgzMDg4LCAweDA4KSwgLmRyaXZlcl9pbmZvID0gY2hhbm5lbF90eXBlX3BhcmFsbGVsIH0sCiAJeyBDQ1dfREVWSUNFKDB4MzA4OCwgMHgxZiksIC5kcml2ZXJfaW5mbyA9IGNoYW5uZWxfdHlwZV9lc2NvbiB9LAogCXsgQ0NXX0RFVklDRSgweDMwODgsIDB4MWUpLCAuZHJpdmVyX2luZm8gPSBjaGFubmVsX3R5cGVfZmljb24gfSwKLQl7IENDV19ERVZJQ0UoMHgzMDg4LCAweDAxKSwgLmRyaXZlcl9pbmZvID0gY2hhbm5lbF90eXBlX3AzOTAgfSwKIAl7IENDV19ERVZJQ0UoMHgzMDg4LCAweDYwKSwgLmRyaXZlcl9pbmZvID0gY2hhbm5lbF90eXBlX29zYTIgfSwKIAl7IENDV19ERVZJQ0UoMHgzMDg4LCAweDYxKSwgLmRyaXZlcl9pbmZvID0gY2hhbm5lbF90eXBlX2NsYXcgfSwKIAl7IC8qIGVuZCBvZiBsaXN0ICovIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvY3UzMDg4LmggYi9kcml2ZXJzL3MzOTAvbmV0L2N1MzA4OC5oCmluZGV4IDE3NTM2NjEuLmQ4NTU4YTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvY3UzMDg4LmgKKysrIGIvZHJpdmVycy9zMzkwL25ldC9jdTMwODguaApAQCAtMTcsOSArMTcsNiBAQAogCS8qIERldmljZSBpcyBhIEZJQ09OIGNoYW5uZWwgKi8KIAljaGFubmVsX3R5cGVfZmljb24sCiAKLQkvKiBEZXZpY2UgaXMgYSBQMzkwIExDUyBjYXJkICovCi0JY2hhbm5lbF90eXBlX3AzOTAsCi0KIAkvKiBEZXZpY2UgaXMgYSBPU0EyIGNhcmQgKi8KIAljaGFubmVsX3R5cGVfb3NhMiwKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9sY3MuYyBiL2RyaXZlcnMvczM5MC9uZXQvbGNzLmMKaW5kZXggZGQyMmY0Yi4uNmRlMjgzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9sY3MuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L2xjcy5jCkBAIC0xMzI3LDggKzEzMjcsOCBAQAogCWNoYXIgKnNlbnNlOwogCiAJc2Vuc2UgPSAoY2hhciAqKSBpcmItPmVjdzsKLQljc3RhdCA9IGlyYi0+c2Nzdy5jc3RhdDsKLQlkc3RhdCA9IGlyYi0+c2Nzdy5kc3RhdDsKKwljc3RhdCA9IGlyYi0+c2Nzdy5jbWQuY3N0YXQ7CisJZHN0YXQgPSBpcmItPnNjc3cuY21kLmRzdGF0OwogCiAJaWYgKGNzdGF0ICYgKFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEsgfCBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CiAJCSAgICAgU0NITl9TVEFUX0NITl9EQVRBX0NISyB8IFNDSE5fU1RBVF9DSEFJTl9DSEVDSyB8CkBAIC0xMzg4LDExICsxMzg4LDEzIEBACiAJZWxzZQogCQljaGFubmVsID0gJmNhcmQtPndyaXRlOwogCi0JY3N0YXQgPSBpcmItPnNjc3cuY3N0YXQ7Ci0JZHN0YXQgPSBpcmItPnNjc3cuZHN0YXQ7CisJY3N0YXQgPSBpcmItPnNjc3cuY21kLmNzdGF0OworCWRzdGF0ID0gaXJiLT5zY3N3LmNtZC5kc3RhdDsKIAlMQ1NfREJGX1RFWFRfKDUsIHRyYWNlLCAiUmludCVzIixjZGV2LT5kZXYuYnVzX2lkKTsKLQlMQ1NfREJGX1RFWFRfKDUsIHRyYWNlLCAiJTR4JTR4IixpcmItPnNjc3cuY3N0YXQsIGlyYi0+c2Nzdy5kc3RhdCk7Ci0JTENTX0RCRl9URVhUXyg1LCB0cmFjZSwgIiU0eCU0eCIsaXJiLT5zY3N3LmZjdGwsIGlyYi0+c2Nzdy5hY3RsKTsKKwlMQ1NfREJGX1RFWFRfKDUsIHRyYWNlLCAiJTR4JTR4IiwgaXJiLT5zY3N3LmNtZC5jc3RhdCwKKwkJICAgICAgaXJiLT5zY3N3LmNtZC5kc3RhdCk7CisJTENTX0RCRl9URVhUXyg1LCB0cmFjZSwgIiU0eCU0eCIsIGlyYi0+c2Nzdy5jbWQuZmN0bCwKKwkJICAgICAgaXJiLT5zY3N3LmNtZC5hY3RsKTsKIAogCS8qIENoZWNrIGZvciBjaGFubmVsIGFuZCBkZXZpY2UgZXJyb3JzIHByZXNlbnRlZCAqLwogCXJjID0gbGNzX2dldF9wcm9ibGVtKGNkZXYsIGlyYik7CkBAIC0xNDEwLDExICsxNDEyLDExIEBACiAJfQogCS8qIEhvdyBmYXIgaW4gdGhlIGNjdyBjaGFpbiBoYXZlIHdlIHByb2Nlc3NlZD8gKi8KIAlpZiAoKGNoYW5uZWwtPnN0YXRlICE9IExDU19DSF9TVEFURV9JTklUKSAmJgotCSAgICAoaXJiLT5zY3N3LmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykpIHsKLQkJaW5kZXggPSAoc3RydWN0IGNjdzEgKikgX192YSgoYWRkcl90KSBpcmItPnNjc3cuY3BhKQorCSAgICAoaXJiLT5zY3N3LmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpKSB7CisJCWluZGV4ID0gKHN0cnVjdCBjY3cxICopIF9fdmEoKGFkZHJfdCkgaXJiLT5zY3N3LmNtZC5jcGEpCiAJCQktIGNoYW5uZWwtPmNjd3M7Ci0JCWlmICgoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSB8fAotCQkgICAgKGlyYi0+c2Nzdy5jc3RhdCAmIFNDSE5fU1RBVF9QQ0kpKQorCQlpZiAoKGlyYi0+c2Nzdy5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpIHx8CisJCSAgICAoaXJiLT5zY3N3LmNtZC5jc3RhdCAmIFNDSE5fU1RBVF9QQ0kpKQogCQkJLyogQmxvb2R5IGlvIHN1YnN5c3RlbSB0ZWxscyB1cyBsaWVzIGFib3V0IGNwYS4uLiAqLwogCQkJaW5kZXggPSAoaW5kZXggLSAxKSAmIChMQ1NfTlVNX0JVRkZTIC0gMSk7CiAJCXdoaWxlIChjaGFubmVsLT5pb19pZHggIT0gaW5kZXgpIHsKQEAgLTE0MjUsMjUgKzE0MjcsMjQgQEAKIAkJfQogCX0KIAotCWlmICgoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgfHwKLQkgICAgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0NITl9FTkQpIHx8Ci0JICAgIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSkKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9ERVZfRU5EKSB8fAorCSAgICAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0NITl9FTkQpIHx8CisJICAgIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykpCiAJCS8qIE1hcmsgY2hhbm5lbCBhcyBzdG9wcGVkLiAqLwogCQljaGFubmVsLT5zdGF0ZSA9IExDU19DSF9TVEFURV9TVE9QUEVEOwotCWVsc2UgaWYgKGlyYi0+c2Nzdy5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkKKwllbHNlIGlmIChpcmItPnNjc3cuY21kLmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKQogCQkvKiBDQ1cgZXhlY3V0aW9uIHN0b3BwZWQgb24gYSBzdXNwZW5kIGJpdC4gKi8KIAkJY2hhbm5lbC0+c3RhdGUgPSBMQ1NfQ0hfU1RBVEVfU1VTUEVOREVEOwotCWlmIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9IQUxUX0ZVTkMpIHsKLQkJaWYgKGlyYi0+c2Nzdy5jYyAhPSAwKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9IQUxUX0ZVTkMpIHsKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuY2MgIT0gMCkgewogCQkJY2N3X2RldmljZV9oYWx0KGNoYW5uZWwtPmNjd2RldiwgKGFkZHJfdCkgY2hhbm5lbCk7CiAJCQlyZXR1cm47CiAJCX0KIAkJLyogVGhlIGNoYW5uZWwgaGFzIGJlZW4gc3RvcHBlZCBieSBoYWx0X0lPLiAqLwogCQljaGFubmVsLT5zdGF0ZSA9IExDU19DSF9TVEFURV9IQUxURUQ7CiAJfQotCWlmIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKQogCQljaGFubmVsLT5zdGF0ZSA9IExDU19DSF9TVEFURV9DTEVBUkVEOwotCX0KIAkvKiBEbyB0aGUgcmVzdCBpbiB0aGUgdGFza2xldC4gKi8KIAl0YXNrbGV0X3NjaGVkdWxlKCZjaGFubmVsLT5pcnFfdGFza2xldCk7CiB9CkBAIC0xNzYxLDcgKzE3NjIsNyBAQAogCQkJCW5ldGlmX2NhcnJpZXJfb2ZmKGNhcmQtPmRldik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJCVBSSU5UX0lORk8oIlVOUkVDT0dOSVpFRCBMR1cgQ09NTUFORFxuIik7CisJCQlMQ1NfREJGX1RFWFQoNSwgdHJhY2UsICJub0xHV2NtZCIpOwogCQkJYnJlYWs7CiAJCX0KIAl9IGVsc2UKQEAgLTIwNDIsMTMgKzIwNDMsMTIgQEAKIAlMQ1NfREJGX1RFWFQoMiwgc2V0dXAsICJhZGRfZGV2Iik7CiAgICAgICAgIGNhcmQgPSBsY3NfYWxsb2NfY2FyZCgpOwogICAgICAgICBpZiAoIWNhcmQpIHsKLSAgICAgICAgICAgICAgICBQUklOVF9FUlIoIkFsbG9jYXRpb24gb2YgbGNzIGNhcmQgZmFpbGVkXG4iKTsKKwkJTENTX0RCRl9URVhUXygyLCBzZXR1cCwgIiAgcmMlZCIsIC1FTk9NRU0pOwogCQlwdXRfZGV2aWNlKCZjY3dnZGV2LT5kZXYpOwogICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgICAgICB9CiAJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZjY3dnZGV2LT5kZXYua29iaiwgJmxjc19hdHRyX2dyb3VwKTsKIAlpZiAocmV0KSB7Ci0gICAgICAgICAgICAgICAgUFJJTlRfRVJSKCJDcmVhdGluZyBhdHRyaWJ1dGVzIGZhaWxlZCIpOwogCQlsY3NfZnJlZV9jYXJkKGNhcmQpOwogCQlwdXRfZGV2aWNlKCZjY3dnZGV2LT5kZXYpOwogCQlyZXR1cm4gcmV0OwpAQCAtMjE0MCw3ICsyMTQwLDYgQEAKIAlkZWZhdWx0OgogCQlMQ1NfREJGX1RFWFQoMywgc2V0dXAsICJlcnJpbml0Iik7CiAJCVBSSU5UX0VSUigiTENTOiBJbml0aWFsaXphdGlvbiBmYWlsZWRcbiIpOwotCQlQUklOVF9FUlIoIkxDUzogTm8gZGV2aWNlIGZvdW5kIVxuIik7CiAJCWdvdG8gb3V0OwogCX0KIAlpZiAoIWRldikKQEAgLTIyNjksNyArMjI2OCw2IEBACiAJaWYgKCFjYXJkKQogCQlyZXR1cm47CiAKLQlQUklOVF9JTkZPKCJSZW1vdmluZyBsY3MgZ3JvdXAgZGV2aWNlIC4uLi5cbiIpOwogCUxDU19EQkZfVEVYVCgzLCBzZXR1cCwgInJlbWRldiIpOwogCUxDU19EQkZfSEVYKDMsIHNldHVwLCAmY2FyZCwgc2l6ZW9mKHZvaWQqKSk7CiAJaWYgKGNjd2dkZXYtPnN0YXRlID09IENDV0dST1VQX09OTElORSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9uZXRpdWN2LmMgYi9kcml2ZXJzL3MzOTAvbmV0L25ldGl1Y3YuYwppbmRleCBlNGJhNmEwLi45MjQyYjVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L25ldGl1Y3YuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L25ldGl1Y3YuYwpAQCAtNjI1LDkgKzYyNSw2IEBACiAJCW9mZnNldCArPSBoZWFkZXItPm5leHQ7CiAJCWhlYWRlci0+bmV4dCAtPSBORVRJVUNWX0hEUkxFTjsKIAkJaWYgKHNrYl90YWlscm9vbShwc2tiKSA8IGhlYWRlci0+bmV4dCkgewotCQkJUFJJTlRfV0FSTigiJXM6IElsbGVnYWwgbmV4dCBmaWVsZCBpbiBpdWN2IGhlYWRlcjogIgotCQkJICAgICAgICIlZCA+ICVkXG4iLAotCQkJICAgICAgIGRldi0+bmFtZSwgaGVhZGVyLT5uZXh0LCBza2JfdGFpbHJvb20ocHNrYikpOwogCQkJSVVDVl9EQkZfVEVYVF8oZGF0YSwgMiwgIklsbGVnYWwgbmV4dCBmaWVsZDogJWQgPiAlZFxuIiwKIAkJCQloZWFkZXItPm5leHQsIHNrYl90YWlscm9vbShwc2tiKSk7CiAJCQlyZXR1cm47CkBAIC02MzYsOCArNjMzLDYgQEAKIAkJc2tiX3Jlc2V0X21hY19oZWFkZXIocHNrYik7CiAJCXNrYiA9IGRldl9hbGxvY19za2IocHNrYi0+bGVuKTsKIAkJaWYgKCFza2IpIHsKLQkJCVBSSU5UX1dBUk4oIiVzIE91dCBvZiBtZW1vcnkgaW4gbmV0aXVjdl91bnBhY2tfc2tiXG4iLAotCQkJICAgICAgIGRldi0+bmFtZSk7CiAJCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsCiAJCQkJIk91dCBvZiBtZW1vcnkgaW4gbmV0aXVjdl91bnBhY2tfc2tiXG4iKTsKIAkJCXByaXZwdHItPnN0YXRzLnJ4X2Ryb3BwZWQrKzsKQEAgLTY3NCw3ICs2NjksNiBAQAogCiAJaWYgKCFjb25uLT5uZXRkZXYpIHsKIAkJaXVjdl9tZXNzYWdlX3JlamVjdChjb25uLT5wYXRoLCBtc2cpOwotCQlQUklOVF9XQVJOKCJSZWNlaXZlZCBkYXRhIGZvciB1bmxpbmtlZCBjb25uZWN0aW9uXG4iKTsKIAkJSVVDVl9EQkZfVEVYVChkYXRhLCAyLAogCQkJICAgICAgIlJlY2VpdmVkIGRhdGEgZm9yIHVubGlua2VkIGNvbm5lY3Rpb25cbiIpOwogCQlyZXR1cm47CkBAIC02ODIsOCArNjc2LDYgQEAKIAlpZiAobXNnLT5sZW5ndGggPiBjb25uLT5tYXhfYnVmZnNpemUpIHsKIAkJaXVjdl9tZXNzYWdlX3JlamVjdChjb25uLT5wYXRoLCBtc2cpOwogCQlwcml2cHRyLT5zdGF0cy5yeF9kcm9wcGVkKys7Ci0JCVBSSU5UX1dBUk4oIm1zZ2xlbiAlZCA+IG1heF9idWZmc2l6ZSAlZFxuIiwKLQkJCSAgIG1zZy0+bGVuZ3RoLCBjb25uLT5tYXhfYnVmZnNpemUpOwogCQlJVUNWX0RCRl9URVhUXyhkYXRhLCAyLCAibXNnbGVuICVkID4gbWF4X2J1ZmZzaXplICVkXG4iLAogCQkJICAgICAgIG1zZy0+bGVuZ3RoLCBjb25uLT5tYXhfYnVmZnNpemUpOwogCQlyZXR1cm47CkBAIC02OTUsNyArNjg3LDYgQEAKIAkJCQkgIG1zZy0+bGVuZ3RoLCBOVUxMKTsKIAlpZiAocmMgfHwgbXNnLT5sZW5ndGggPCA1KSB7CiAJCXByaXZwdHItPnN0YXRzLnJ4X2Vycm9ycysrOwotCQlQUklOVF9XQVJOKCJpdWN2X3JlY2VpdmUgcmV0dXJuZWQgJTA4eFxuIiwgcmMpOwogCQlJVUNWX0RCRl9URVhUXyhkYXRhLCAyLCAicmMgJWQgZnJvbSBpdWN2X3JlY2VpdmVcbiIsIHJjKTsKIAkJcmV0dXJuOwogCX0KQEAgLTc3OCw3ICs3NjksNiBAQAogCQlmc21fbmV3c3RhdGUoZmksIENPTk5fU1RBVEVfSURMRSk7CiAJCWlmIChwcml2cHRyKQogCQkJcHJpdnB0ci0+c3RhdHMudHhfZXJyb3JzICs9IHR4cGFja2V0czsKLQkJUFJJTlRfV0FSTigiaXVjdl9zZW5kIHJldHVybmVkICUwOHhcbiIsCXJjKTsKIAkJSVVDVl9EQkZfVEVYVF8oZGF0YSwgMiwgInJjICVkIGZyb20gaXVjdl9zZW5kXG4iLCByYyk7CiAJfSBlbHNlIHsKIAkJaWYgKHByaXZwdHIpIHsKQEAgLTgwNiw4ICs3OTYsNiBAQAogCXBhdGgtPmZsYWdzID0gMDsKIAlyYyA9IGl1Y3ZfcGF0aF9hY2NlcHQocGF0aCwgJm5ldGl1Y3ZfaGFuZGxlciwgTlVMTCwgY29ubik7CiAJaWYgKHJjKSB7Ci0JCVBSSU5UX1dBUk4oIiVzOiBJVUNWIGFjY2VwdCBmYWlsZWQgd2l0aCBlcnJvciAlZFxuIiwKLQkJICAgICAgIG5ldGRldi0+bmFtZSwgcmMpOwogCQlJVUNWX0RCRl9URVhUXyhzZXR1cCwgMiwgInJjICVkIGZyb20gaXVjdl9hY2NlcHQiLCByYyk7CiAJCXJldHVybjsKIAl9CkBAIC04NzMsNyArODYxLDcgQEAKIAlJVUNWX0RCRl9URVhUKHRyYWNlLCAzLCBfX2Z1bmNfXyk7CiAKIAlmc21fbmV3c3RhdGUoZmksIENPTk5fU1RBVEVfU1RBUlRXQUlUKTsKLQlQUklOVF9ERUJVRygiJXMoJyVzJyk6IGNvbm5lY3RpbmcgLi4uXG4iLAorCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLCAiJXMoJyVzJyk6IGNvbm5lY3RpbmcgLi4uXG4iLAogCQkgICAgY29ubi0+bmV0ZGV2LT5uYW1lLCBjb25uLT51c2VyaWQpOwogCiAJLyoKQEAgLTk2OCw4ICs5NTYsOCBAQAogCXN0cnVjdCBpdWN2X2Nvbm5lY3Rpb24gKmNvbm4gPSBhcmc7CiAJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiA9IGNvbm4tPm5ldGRldjsKIAotCVBSSU5UX1dBUk4oIiVzOiBDYW5ub3QgY29ubmVjdCB3aXRob3V0IHVzZXJuYW1lXG4iLCBuZXRkZXYtPm5hbWUpOwotCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwgImNvbm5fYWN0aW9uX2ludmFsIGNhbGxlZFxuIik7CisJSVVDVl9EQkZfVEVYVF8oZGF0YSwgMiwgIiVzKCclcycpOiBjb25uX2FjdGlvbl9pbnZhbCBjYWxsZWRcbiIsCisJCW5ldGRldi0+bmFtZSwgY29ubi0+dXNlcmlkKTsKIH0KIAogc3RhdGljIGNvbnN0IGZzbV9ub2RlIGNvbm5fZnNtW10gPSB7CkBAIC0xMDc3LDkgKzEwNjUsNiBAQAogCQkJCSJjb25uZWN0aW9uIGlzIHVwIGFuZCBydW5uaW5nXG4iKTsKIAkJCWJyZWFrOwogCQljYXNlIERFVl9TVEFURV9TVE9QV0FJVDoKLQkJCVBSSU5UX0lORk8oCi0JCQkgICAgICAgIiVzOiBnb3QgY29ubmVjdGlvbiBVUCBldmVudCBkdXJpbmcgc2h1dGRvd24hXG4iLAotCQkJICAgICAgIGRldi0+bmFtZSk7CiAJCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsCiAJCQkJImRldl9hY3Rpb25fY29ubnVwOiBpbiBERVZfU1RBVEVfU1RPUFdBSVRcbiIpOwogCQkJYnJlYWs7CkBAIC0xMTc0LDggKzExNTksNiBAQAogCQkJbnNrYiA9IGFsbG9jX3NrYihza2ItPmxlbiArIE5FVElVQ1ZfSERSTEVOICsKIAkJCQkJIE5FVElVQ1ZfSERSTEVOLCBHRlBfQVRPTUlDIHwgR0ZQX0RNQSk7CiAJCQlpZiAoIW5za2IpIHsKLQkJCQlQUklOVF9XQVJOKCIlczogQ291bGQgbm90IGFsbG9jYXRlIHR4X3NrYlxuIiwKLQkJCQkgICAgICAgY29ubi0+bmV0ZGV2LT5uYW1lKTsKIAkJCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsICJhbGxvY19za2IgZmFpbGVkXG4iKTsKIAkJCQlyYyA9IC1FTk9NRU07CiAJCQkJcmV0dXJuIHJjOwpAQCAtMTIyMyw3ICsxMjA2LDYgQEAKIAkJCQlza2JfcHVsbChza2IsIE5FVElVQ1ZfSERSTEVOKTsKIAkJCQlza2JfdHJpbShza2IsIHNrYi0+bGVuIC0gTkVUSVVDVl9IRFJMRU4pOwogCQkJfQotCQkJUFJJTlRfV0FSTigiaXVjdl9zZW5kIHJldHVybmVkICUwOHhcbiIsCXJjKTsKIAkJCUlVQ1ZfREJGX1RFWFRfKGRhdGEsIDIsICJyYyAlZCBmcm9tIGl1Y3Zfc2VuZFxuIiwgcmMpOwogCQl9IGVsc2UgewogCQkJaWYgKGNvcGllZCkKQEAgLTEyOTMsMTQgKzEyNzUsMTEgQEAKIAkgKiBTb21lIHNhbml0eSBjaGVja3MgLi4uCiAJICovCiAJaWYgKHNrYiA9PSBOVUxMKSB7Ci0JCVBSSU5UX1dBUk4oIiVzOiBOVUxMIHNrX2J1ZmYgcGFzc2VkXG4iLCBkZXYtPm5hbWUpOwogCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsICJuZXRpdWN2X3R4OiBza2IgaXMgTlVMTFxuIik7CiAJCXByaXZwdHItPnN0YXRzLnR4X2Ryb3BwZWQrKzsKIAkJcmV0dXJuIDA7CiAJfQogCWlmIChza2JfaGVhZHJvb20oc2tiKSA8IE5FVElVQ1ZfSERSTEVOKSB7Ci0JCVBSSU5UX1dBUk4oIiVzOiBHb3Qgc2tfYnVmZiB3aXRoIGhlYWQgcm9vbSA8ICVsZCBieXRlc1xuIiwKLQkJICAgICAgIGRldi0+bmFtZSwgTkVUSVVDVl9IRFJMRU4pOwogCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsCiAJCQkibmV0aXVjdl90eDogc2tiX2hlYWRyb29tIDwgTkVUSVVDVl9IRFJMRU5cbiIpOwogCQlkZXZfa2ZyZWVfc2tiKHNrYik7CkBAIC0xMzkzLDcgKzEzNzIsNiBAQAogCiAJSVVDVl9EQkZfVEVYVCh0cmFjZSwgMywgX19mdW5jX18pOwogCWlmIChjb3VudCA+IDkpIHsKLQkJUFJJTlRfV0FSTigibmV0aXVjdjogdXNlcm5hbWUgdG9vIGxvbmcgKCVkKSFcbiIsIChpbnQpIGNvdW50KTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsCiAJCQkgICAgICAgIiVkIGlzIGxlbmd0aCBvZiB1c2VybmFtZVxuIiwgKGludCkgY291bnQpOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE0MDksNyArMTM4Nyw2IEBACiAJCQkvKiB0cmFpbGluZyBsZiwgZ3JyICovCiAJCQlicmVhazsKIAkJfQotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiBJbnZhbGlkIGNoYXIgJWMgaW4gdXNlcm5hbWUhXG4iLCAqcCk7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLAogCQkJICAgICAgICJ1c2VybmFtZTogaW52YWxpZCBjaGFyYWN0ZXIgJWNcbiIsICpwKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xNDIxLDE4ICsxMzk4LDE1IEBACiAJaWYgKG1lbWNtcCh1c2VybmFtZSwgcHJpdi0+Y29ubi0+dXNlcmlkLCA5KSAmJgogCSAgICAobmRldi0+ZmxhZ3MgJiAoSUZGX1VQIHwgSUZGX1JVTk5JTkcpKSkgewogCQkvKiB1c2VybmFtZSBjaGFuZ2VkIHdoaWxlIHRoZSBpbnRlcmZhY2UgaXMgYWN0aXZlLiAqLwotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiBkZXZpY2UgJXMgYWN0aXZlLCBjb25uZWN0ZWQgdG8gJXNcbiIsCi0JCQkgICBkZXYtPmJ1c19pZCwgcHJpdi0+Y29ubi0+dXNlcmlkKTsKLQkJUFJJTlRfV0FSTigibmV0aXVjdjogdXNlciBjYW5ub3QgYmUgdXBkYXRlZFxuIik7CiAJCUlVQ1ZfREJGX1RFWFQoc2V0dXAsIDIsICJ1c2VyX3dyaXRlOiBkZXZpY2UgYWN0aXZlXG4iKTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJcmV0dXJuIC1FUEVSTTsKIAl9CiAJcmVhZF9sb2NrX2JoKCZpdWN2X2Nvbm5lY3Rpb25fcndsb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNwLCAmaXVjdl9jb25uZWN0aW9uX2xpc3QsIGxpc3QpIHsKIAkJaWYgKCFzdHJuY21wKHVzZXJuYW1lLCBjcC0+dXNlcmlkLCA5KSAmJiBjcC0+bmV0ZGV2ICE9IG5kZXYpIHsKIAkJCXJlYWRfdW5sb2NrX2JoKCZpdWN2X2Nvbm5lY3Rpb25fcndsb2NrKTsKLQkJCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IENvbm5lY3Rpb24gdG8gJXMgYWxyZWFkeSAiCi0JCQkJICAgImV4aXN0c1xuIiwgdXNlcm5hbWUpOworCQkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsICJ1c2VyX3dyaXRlOiBDb25uZWN0aW9uICIKKwkJCQkidG8gJXMgYWxyZWFkeSBleGlzdHNcbiIsIHVzZXJuYW1lKTsKIAkJCXJldHVybiAtRUVYSVNUOwogCQl9CiAJfQpAQCAtMTQ2NiwxMyArMTQ0MCwxMCBAQAogCWJzMSA9IHNpbXBsZV9zdHJ0b3VsKGJ1ZiwgJmUsIDApOwogCiAJaWYgKGUgJiYgKCFpc3NwYWNlKCplKSkpIHsKLQkJUFJJTlRfV0FSTigibmV0aXVjdjogSW52YWxpZCBjaGFyYWN0ZXIgaW4gYnVmZmVyIVxuIik7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLCAiYnVmZmVyX3dyaXRlOiBpbnZhbGlkIGNoYXIgJWNcbiIsICplKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCWlmIChiczEgPiBORVRJVUNWX0JVRlNJWkVfTUFYKSB7Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IEdpdmVuIGJ1ZmZlciBzaXplICVkIHRvbyBsYXJnZS5cbiIsCi0JCQliczEpOwogCQlJVUNWX0RCRl9URVhUXyhzZXR1cCwgMiwKIAkJCSJidWZmZXJfd3JpdGU6IGJ1ZmZlciBzaXplICVkIHRvbyBsYXJnZVxuIiwKIAkJCWJzMSk7CkBAIC0xNDgwLDE2ICsxNDUxLDEyIEBACiAJfQogCWlmICgobmRldi0+ZmxhZ3MgJiBJRkZfUlVOTklORykgJiYKIAkgICAgKGJzMSA8IChuZGV2LT5tdHUgKyBORVRJVUNWX0hEUkxFTiArIDIpKSkgewotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiBHaXZlbiBidWZmZXIgc2l6ZSAlZCB0b28gc21hbGwuXG4iLAotCQkJYnMxKTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsCiAJCQkiYnVmZmVyX3dyaXRlOiBidWZmZXIgc2l6ZSAlZCB0b28gc21hbGxcbiIsCiAJCQliczEpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJaWYgKGJzMSA8ICg1NzYgKyBORVRJVUNWX0hEUkxFTiArIE5FVElVQ1ZfSERSTEVOKSkgewotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiBHaXZlbiBidWZmZXIgc2l6ZSAlZCB0b28gc21hbGwuXG4iLAotCQkJYnMxKTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsCiAJCQkiYnVmZmVyX3dyaXRlOiBidWZmZXIgc2l6ZSAlZCB0b28gc21hbGxcbiIsCiAJCQliczEpOwpAQCAtMTk2Myw3ICsxOTMwLDYgQEAKIAogCUlVQ1ZfREJGX1RFWFQodHJhY2UsIDMsIF9fZnVuY19fKTsKIAlpZiAoY291bnQ+OSkgewotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiB1c2VybmFtZSB0b28gbG9uZyAoJWQpIVxuIiwgKGludCljb3VudCk7CiAJCUlVQ1ZfREJGX1RFWFQoc2V0dXAsIDIsICJjb25uX3dyaXRlOiB0b28gbG9uZ1xuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE5NzYsNyArMTk0Miw2IEBACiAJCWlmICgqcCA9PSAnXG4nKQogCQkJLyogdHJhaWxpbmcgbGYsIGdyciAqLwogCQkJYnJlYWs7Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IEludmFsaWQgY2hhcmFjdGVyIGluIHVzZXJuYW1lIVxuIik7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLAogCQkJICAgICAgICJjb25uX3dyaXRlOiBpbnZhbGlkIGNoYXJhY3RlciAlY1xuIiwgKnApOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE5ODksOCArMTk1NCw4IEBACiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjcCwgJml1Y3ZfY29ubmVjdGlvbl9saXN0LCBsaXN0KSB7CiAJCWlmICghc3RybmNtcCh1c2VybmFtZSwgY3AtPnVzZXJpZCwgOSkpIHsKIAkJCXJlYWRfdW5sb2NrX2JoKCZpdWN2X2Nvbm5lY3Rpb25fcndsb2NrKTsKLQkJCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IENvbm5lY3Rpb24gdG8gJXMgYWxyZWFkeSAiCi0JCQkJICAgImV4aXN0c1xuIiwgdXNlcm5hbWUpOworCQkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsICJjb25uX3dyaXRlOiBDb25uZWN0aW9uICIKKwkJCQkidG8gJXMgYWxyZWFkeSBleGlzdHNcbiIsIHVzZXJuYW1lKTsKIAkJCXJldHVybiAtRUVYSVNUOwogCQl9CiAJfQpAQCAtMTk5OCw5ICsxOTYzLDYgQEAKIAogCWRldiA9IG5ldGl1Y3ZfaW5pdF9uZXRkZXZpY2UodXNlcm5hbWUpOwogCWlmICghZGV2KSB7Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IENvdWxkIG5vdCBhbGxvY2F0ZSBuZXR3b3JrIGRldmljZSAiCi0JCQkgICAic3RydWN0dXJlIGZvciB1c2VyICclcydcbiIsCi0JCQkgICBuZXRpdWN2X3ByaW50bmFtZSh1c2VybmFtZSkpOwogCQlJVUNWX0RCRl9URVhUKHNldHVwLCAyLCAiTlVMTCBmcm9tIG5ldGl1Y3ZfaW5pdF9uZXRkZXZpY2VcbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CkBAIC0yMDIwLDE1ICsxOTgyLDEyIEBACiAJaWYgKHJjKQogCQlnb3RvIG91dF91bnJlZzsKIAotCVBSSU5UX0lORk8oIiVzOiAnJXMnXG4iLCBkZXYtPm5hbWUsIG5ldGl1Y3ZfcHJpbnRuYW1lKHVzZXJuYW1lKSk7CiAKIAlyZXR1cm4gY291bnQ7CiAKIG91dF91bnJlZzoKIAluZXRpdWN2X3VucmVnaXN0ZXJfZGV2aWNlKHByaXYtPmRldik7CiBvdXRfZnJlZV9uZGV2OgotCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IENvdWxkIG5vdCByZWdpc3RlciAnJXMnXG4iLCBkZXYtPm5hbWUpOwotCUlVQ1ZfREJGX1RFWFQoc2V0dXAsIDIsICJjb25uX3dyaXRlOiBjb3VsZCBub3QgcmVnaXN0ZXJcbiIpOwogCW5ldGl1Y3ZfZnJlZV9uZXRkZXZpY2UoZGV2KTsKIAlyZXR1cm4gcmM7CiB9CkBAIC0yMDczLDE0ICsyMDMyLDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQUklOVF9XQVJOKCJuZXRpdWN2OiAlcyBjYW5ub3QgYmUgcmVtb3ZlZFxuIiwKIAkJCQkgICBuZGV2LT5uYW1lKTsKIAkJCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwgInJlbW92ZV93cml0ZTogc3RpbGwgYWN0aXZlXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CisJCQlyZXR1cm4gLUVQRVJNOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB1bnJlZ2lzdGVyX25ldGRldihuZGV2KTsKICAgICAgICAgICAgICAgICBuZXRpdWN2X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50OwogICAgICAgICB9CiAJcmVhZF91bmxvY2tfYmgoJml1Y3ZfY29ubmVjdGlvbl9yd2xvY2spOwotICAgICAgICBQUklOVF9XQVJOKCJuZXRpdWN2OiBuZXQgZGV2aWNlICVzIHVua25vd25cbiIsIG5hbWUpOwogCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwgInJlbW92ZV93cml0ZTogdW5rbm93biBkZXZpY2VcbiIpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIH0KQEAgLTIxNDgsNyArMjEwNiw2IEBACiAJbmV0aXVjdl9kcml2ZXIuZ3JvdXBzID0gbmV0aXVjdl9kcnZfYXR0cl9ncm91cHM7CiAJcmMgPSBkcml2ZXJfcmVnaXN0ZXIoJm5ldGl1Y3ZfZHJpdmVyKTsKIAlpZiAocmMpIHsKLQkJUFJJTlRfRVJSKCJORVRJVUNWOiBmYWlsZWQgdG8gcmVnaXN0ZXIgZHJpdmVyLlxuIik7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLCAicmV0ICVkIGZyb20gZHJpdmVyX3JlZ2lzdGVyXG4iLCByYyk7CiAJCWdvdG8gb3V0X2l1Y3Y7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCmluZGV4IDlhNzFkYWUuLjBhYzU0ZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKQEAgLTQyMCw3ICs0MjAsNyBAQAogCQkJCVFFVEhfREJGX1RFWFQoVFJBQ0UsIDMsICJ1cmxhIik7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgotCQkJCVBSSU5UX1dBUk4oIlJlY2VpdmVkIGRhdGEgaXMgSVBBICIKKwkJCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJSZWNlaXZlZCBkYXRhIGlzIElQQSAiCiAJCQkJCSAgICJidXQgbm90IGEgcmVwbHkhXG4iKTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTczNSw4ICs3MzUsOCBAQAogCWNoYXIgKnNlbnNlOwogCiAJc2Vuc2UgPSAoY2hhciAqKSBpcmItPmVjdzsKLQljc3RhdCA9IGlyYi0+c2Nzdy5jc3RhdDsKLQlkc3RhdCA9IGlyYi0+c2Nzdy5kc3RhdDsKKwljc3RhdCA9IGlyYi0+c2Nzdy5jbWQuY3N0YXQ7CisJZHN0YXQgPSBpcmItPnNjc3cuY21kLmRzdGF0OwogCiAJaWYgKGNzdGF0ICYgKFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEsgfCBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CiAJCSAgICAgU0NITl9TVEFUX0NITl9EQVRBX0NISyB8IFNDSE5fU1RBVF9DSEFJTl9DSEVDSyB8CkBAIC04MjMsOCArODIzLDggQEAKIAogCWlmIChfX3FldGhfY2hlY2tfaXJiX2Vycm9yKGNkZXYsIGludHBhcm0sIGlyYikpCiAJCXJldHVybjsKLQljc3RhdCA9IGlyYi0+c2Nzdy5jc3RhdDsKLQlkc3RhdCA9IGlyYi0+c2Nzdy5kc3RhdDsKKwljc3RhdCA9IGlyYi0+c2Nzdy5jbWQuY3N0YXQ7CisJZHN0YXQgPSBpcmItPnNjc3cuY21kLmRzdGF0OwogCiAJY2FyZCA9IENBUkRfRlJPTV9DREVWKGNkZXYpOwogCWlmICghY2FyZCkKQEAgLTg0MiwxMCArODQyLDEwIEBACiAJfQogCWF0b21pY19zZXQoJmNoYW5uZWwtPmlycV9wZW5kaW5nLCAwKTsKIAotCWlmIChpcmItPnNjc3cuZmN0bCAmIChTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpCisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIChTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpCiAJCWNoYW5uZWwtPnN0YXRlID0gQ0hfU1RBVEVfU1RPUFBFRDsKIAotCWlmIChpcmItPnNjc3cuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DKSkKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMpKQogCQljaGFubmVsLT5zdGF0ZSA9IENIX1NUQVRFX0hBTFRFRDsKIAogCS8qbGV0J3Mgd2FrZSB1cCBpbW1lZGlhdGVseSBvbiBkYXRhIGNoYW5uZWwqLwpAQCAtNDA5Miw3ICs0MDkyLDYgQEAKIAogCXJjID0gcWV0aF9kZXRlcm1pbmVfY2FyZF90eXBlKGNhcmQpOwogCWlmIChyYykgewotCQlQUklOVF9XQVJOKCIlczogbm90IGEgdmFsaWQgY2FyZCB0eXBlXG4iLCBfX2Z1bmNfXyk7CiAJCVFFVEhfREJGX1RFWFRfKFNFVFVQLCAyLCAiM2VyciVkIiwgcmMpOwogCQlnb3RvIGVycl9jYXJkOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCmluZGV4IDk5OTU1MmMuLjA2ZGVhZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwpAQCAtOTQ0LDE1ICs5NDQsOCBAQAogCWVsc2UKIAkJcmMgPSBxZXRoX2wzX3NlbmRfc2V0ZGVsaXAoY2FyZCwgYWRkciwgSVBBX0NNRF9ERUxJUCwKIAkJCQkJYWRkci0+ZGVsX2ZsYWdzKTsKLQlpZiAocmMpIHsKKwlpZiAocmMpCiAJCVFFVEhfREJGX1RFWFQoVFJBQ0UsIDIsICJmYWlsZWQiKTsKLQkJLyogVE9ETzogcmUtYWN0aXZhdGUgdGhpcyB3YXJuaW5nIGFzIHNvb24gYXMgd2UgaGF2ZSBhCi0JCSAqIGNsZWFuIG1pcmNvIGNvZGUKLQkJcWV0aF9pcGFkZHJfdG9fc3RyaW5nKGFkZHItPnByb3RvLCAodTggKikmYWRkci0+dSwgYnVmKTsKLQkJUFJJTlRfV0FSTigiQ291bGQgbm90IGRlcmVnaXN0ZXIgSVAgYWRkcmVzcyAlcyAocmM9JXgpXG4iLAotCQkJICAgYnVmLCByYyk7Ci0JCSovCi0JfQogCiAJcmV0dXJuIHJjOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9zbXNnaXVjdi5jIGIvZHJpdmVycy9zMzkwL25ldC9zbXNnaXVjdi5jCmluZGV4IDg3MzVhNDEuLjE2NGUwOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvc21zZ2l1Y3YuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3Ntc2dpdWN2LmMKQEAgLTE1NiwxMSArMTU2LDggQEAKIAlpZiAocmMgIT0gMCkKIAkJZ290byBvdXQ7CiAJcmMgPSBpdWN2X3JlZ2lzdGVyKCZzbXNnX2hhbmRsZXIsIDEpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgIlNNU0dJVUNWOiBmYWlsZWQgdG8gcmVnaXN0ZXIgdG8gaXVjdiIpOwotCQlyYyA9IC1FSU87CS8qIGJldHRlciBlcnJubyA/ICovCisJaWYgKHJjKQogCQlnb3RvIG91dF9kcml2ZXI7Ci0JfQogCXNtc2dfcGF0aCA9IGl1Y3ZfcGF0aF9hbGxvYygyNTUsIDAsIEdGUF9LRVJORUwpOwogCWlmICghc21zZ19wYXRoKSB7CiAJCXJjID0gLUVOT01FTTsKQEAgLTE2OCwxMSArMTY1LDggQEAKIAl9CiAJcmMgPSBpdWN2X3BhdGhfY29ubmVjdChzbXNnX3BhdGgsICZzbXNnX2hhbmRsZXIsICIqTVNHICAgICIsCiAJCQkgICAgICAgTlVMTCwgTlVMTCwgTlVMTCk7Ci0JaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiU01TR0lVQ1Y6IGZhaWxlZCB0byBjb25uZWN0IHRvICpNU0ciKTsKLQkJcmMgPSAtRUlPOwkvKiBiZXR0ZXIgZXJybm8gPyAqLworCWlmIChyYykKIAkJZ290byBvdXRfZnJlZTsKLQl9CiAJY3BjbWQoIlNFVCBTTVNHIElVQ1YiLCBOVUxMLCAwLCBOVUxMKTsKIAlyZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3MzOTBtYWNoLmMgYi9kcml2ZXJzL3MzOTAvczM5MG1hY2guYwppbmRleCA1YmZiZTc2Li44MzRlOWVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvczM5MG1hY2guYworKysgYi9kcml2ZXJzL3MzOTAvczM5MG1hY2guYwpAQCAtMiwxMCArMiwxMCBAQAogICogIGRyaXZlcnMvczM5MC9zMzkwbWFjaC5jCiAgKiAgIFMvMzkwIG1hY2hpbmUgY2hlY2sgaGFuZGxlcgogICoKLSAqICBTMzkwIHZlcnNpb24KLSAqICAgIENvcHlyaWdodCAoQykgMjAwMCBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcnBvcmF0aW9uCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDAsMjAwOAogICogICAgQXV0aG9yKHMpOiBJbmdvIEFkbHVuZyAoYWRsdW5nQGRlLmlibS5jb20pCiAgKgkJIE1hcnRpbiBTY2h3aWRlZnNreSAoc2Nod2lkZWZza3lAZGUuaWJtLmNvbSkKKyAqCQkgQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC0xOCwxMCArMTgsNiBAQAogI2luY2x1ZGUgPGFzbS9ldHIuaD4KICNpbmNsdWRlIDxhc20vbG93Y29yZS5oPgogI2luY2x1ZGUgPGFzbS9jaW8uaD4KLSNpbmNsdWRlICJjaW8vY2lvLmgiCi0jaW5jbHVkZSAiY2lvL2Noc2MuaCIKLSNpbmNsdWRlICJjaW8vY3NzLmgiCi0jaW5jbHVkZSAiY2lvL2NocC5oIgogI2luY2x1ZGUgInMzOTBtYWNoLmgiCiAKIHN0YXRpYyBzdHJ1Y3Qgc2VtYXBob3JlIG1fc2VtOwpAQCAtMzYsMTMgKzMyLDQwIEBACiAJZm9yKDs7KTsKIH0KIAorc3RhdGljIGNyd19oYW5kbGVyX3QgY3J3X2hhbmRsZXJzW05SX1JTQ1NdOworCisvKioKKyAqIHMzOTBfcmVnaXN0ZXJfY3J3X2hhbmRsZXIoKSAtIHJlZ2lzdGVyIGEgY2hhbm5lbCByZXBvcnQgd29yZCBoYW5kbGVyCisgKiBAcnNjOiByZXBvcnRpbmcgc291cmNlIGNvZGUgdG8gaGFuZGxlCisgKiBAaGFuZGxlcjogaGFuZGxlciB0byBiZSByZWdpc3RlcmVkCisgKgorICogUmV0dXJucyAlMCBvbiBzdWNjZXNzIGFuZCBhIG5lZ2F0aXZlIGVycm9yIHZhbHVlIG90aGVyd2lzZS4KKyAqLworaW50IHMzOTBfcmVnaXN0ZXJfY3J3X2hhbmRsZXIoaW50IHJzYywgY3J3X2hhbmRsZXJfdCBoYW5kbGVyKQoreworCWlmICgocnNjIDwgMCkgfHwgKHJzYyA+PSBOUl9SU0NTKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCFjbXB4Y2hnKCZjcndfaGFuZGxlcnNbcnNjXSwgTlVMTCwgaGFuZGxlcikpCisJCXJldHVybiAwOworCXJldHVybiAtRUJVU1k7Cit9CisKKy8qKgorICogczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKCkgLSB1bnJlZ2lzdGVyIGEgY2hhbm5lbCByZXBvcnQgd29yZCBoYW5kbGVyCisgKiBAcnNjOiByZXBvcnRpbmcgc291cmNlIGNvZGUgdG8gaGFuZGxlCisgKi8KK3ZvaWQgczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKGludCByc2MpCit7CisJaWYgKChyc2MgPCAwKSB8fCAocnNjID49IE5SX1JTQ1MpKQorCQlyZXR1cm47CisJeGNoZygmY3J3X2hhbmRsZXJzW3JzY10sIE5VTEwpOworCXN5bmNocm9uaXplX3NjaGVkKCk7Cit9CisKIC8qCiAgKiBSZXRyaWV2ZSBDUldzIGFuZCBjYWxsIGZ1bmN0aW9uIHRvIGhhbmRsZSBldmVudC4KLSAqCi0gKiBOb3RlIDogd2UgY3VycmVudGx5IHByb2Nlc3MgQ1JXcyBmb3IgaW8gYW5kIGNoc2Mgc3ViY2hhbm5lbHMgb25seQogICovCi1zdGF0aWMgaW50Ci1zMzkwX2NvbGxlY3RfY3J3X2luZm8odm9pZCAqcGFyYW0pCitzdGF0aWMgaW50IHMzOTBfY29sbGVjdF9jcndfaW5mbyh2b2lkICpwYXJhbSkKIHsKIAlzdHJ1Y3QgY3J3IGNyd1syXTsKIAlpbnQgY2NvZGU7CkBAIC04NCw1NyArMTA3LDI0IEBACiAJCSAgICAgICBjcndbY2hhaW5dLnJzaWQpOwogCQkvKiBDaGVjayBmb3Igb3ZlcmZsb3dzLiAqLwogCQlpZiAoY3J3W2NoYWluXS5vZmx3KSB7CisJCQlpbnQgaTsKKwogCQkJcHJfZGVidWcoIiVzOiBjcncgb3ZlcmZsb3cgZGV0ZWN0ZWQhXG4iLCBfX2Z1bmNfXyk7Ci0JCQljc3Nfc2NoZWR1bGVfZXZhbF9hbGwoKTsKKwkJCWZvciAoaSA9IDA7IGkgPCBOUl9SU0NTOyBpKyspIHsKKwkJCQlpZiAoY3J3X2hhbmRsZXJzW2ldKQorCQkJCQljcndfaGFuZGxlcnNbaV0oTlVMTCwgTlVMTCwgMSk7CisJCQl9CiAJCQljaGFpbiA9IDA7CiAJCQljb250aW51ZTsKIAkJfQotCQlzd2l0Y2ggKGNyd1tjaGFpbl0ucnNjKSB7Ci0JCWNhc2UgQ1JXX1JTQ19TQ0g6Ci0JCQlpZiAoY3J3WzBdLmNobiAmJiAhY2hhaW4pCi0JCQkJYnJlYWs7Ci0JCQlwcl9kZWJ1Zygic291cmNlIGlzIHN1YmNoYW5uZWwgJTA0WFxuIiwgY3J3WzBdLnJzaWQpOwotCQkJY3NzX3Byb2Nlc3NfY3J3KGNyd1swXS5yc2lkLCBjaGFpbiA/IGNyd1sxXS5yc2lkIDogMCk7Ci0JCQlicmVhazsKLQkJY2FzZSBDUldfUlNDX01PTklUT1I6Ci0JCQlwcl9kZWJ1Zygic291cmNlIGlzIG1vbml0b3JpbmcgZmFjaWxpdHlcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgQ1JXX1JTQ19DUEFUSDoKLQkJCXByX2RlYnVnKCJzb3VyY2UgaXMgY2hhbm5lbCBwYXRoICUwMlhcbiIsIGNyd1swXS5yc2lkKTsKLQkJCS8qCi0JCQkgKiBDaGVjayBmb3Igc29saWNpdGVkIG1hY2hpbmUgY2hlY2tzLiBUaGVzZSBhcmUKLQkJCSAqIGNyZWF0ZWQgYnkgcmVzZXQgY2hhbm5lbCBwYXRoIGFuZCBuZWVkIG5vdCBiZQotCQkJICogcmVwb3J0ZWQgdG8gdGhlIGNvbW1vbiBJL08gbGF5ZXIuCi0JCQkgKi8KLQkJCWlmIChjcndbY2hhaW5dLnNsY3QpIHsKLQkJCQlwcl9kZWJ1Zygic29saWNpdGVkIG1hY2hpbmUgY2hlY2sgZm9yICIKLQkJCQkJICJjaGFubmVsIHBhdGggJTAyWFxuIiwgY3J3WzBdLnJzaWQpOwotCQkJCWJyZWFrOwotCQkJfQotCQkJc3dpdGNoIChjcndbMF0uZXJjKSB7Ci0JCQljYXNlIENSV19FUkNfSVBBUk06IC8qIFBhdGggaGFzIGNvbWUuICovCi0JCQkJY2hwX3Byb2Nlc3NfY3J3KGNyd1swXS5yc2lkLCAxKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgQ1JXX0VSQ19QRVJSSTogLyogUGF0aCBoYXMgZ29uZS4gKi8KLQkJCWNhc2UgQ1JXX0VSQ19QRVJSTjoKLQkJCQljaHBfcHJvY2Vzc19jcncoY3J3WzBdLnJzaWQsIDApOwotCQkJCWJyZWFrOwotCQkJZGVmYXVsdDoKLQkJCQlwcl9kZWJ1ZygiRG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGVyYz0leFxuIiwKLQkJCQkJIGNyd1swXS5lcmMpOwotCQkJfQotCQkJYnJlYWs7Ci0JCWNhc2UgQ1JXX1JTQ19DT05GSUc6Ci0JCQlwcl9kZWJ1Zygic291cmNlIGlzIGNvbmZpZ3VyYXRpb24tYWxlcnQgZmFjaWxpdHlcbiIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgQ1JXX1JTQ19DU1M6Ci0JCQlwcl9kZWJ1Zygic291cmNlIGlzIGNoYW5uZWwgc3Vic3lzdGVtXG4iKTsKLQkJCWNoc2NfcHJvY2Vzc19jcncoKTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJcHJfZGVidWcoInVua25vd24gc291cmNlXG4iKTsKLQkJCWJyZWFrOworCQlpZiAoY3J3WzBdLmNobiAmJiAhY2hhaW4pIHsKKwkJCWNoYWluKys7CisJCQljb250aW51ZTsKIAkJfQorCQlpZiAoY3J3X2hhbmRsZXJzW2Nyd1tjaGFpbl0ucnNjXSkKKwkJCWNyd19oYW5kbGVyc1tjcndbY2hhaW5dLnJzY10oJmNyd1swXSwKKwkJCQkJCSAgICAgY2hhaW4gPyAmY3J3WzFdIDogTlVMTCwKKwkJCQkJCSAgICAgMCk7CiAJCS8qIGNoYWluIGlzIGFsd2F5cyAwIG9yIDEgaGVyZS4gKi8KIAkJY2hhaW4gPSBjcndbY2hhaW5dLmNobiA/IGNoYWluICsgMSA6IDA7CiAJfQpAQCAtNDY4LDYgKzQ1OCwxMCBAQAogCQkJZXRyX3N5bmNfY2hlY2soKTsKIAkJaWYgKFMzOTBfbG93Y29yZS5leHRlcm5hbF9kYW1hZ2VfY29kZSAmICgxVSA8PCBFRF9FVFJfU1dJVENIKSkKIAkJCWV0cl9zd2l0Y2hfdG9fbG9jYWwoKTsKKwkJaWYgKFMzOTBfbG93Y29yZS5leHRlcm5hbF9kYW1hZ2VfY29kZSAmICgxVSA8PCBFRF9TVFBfU1lOQykpCisJCQlzdHBfc3luY19jaGVjaygpOworCQlpZiAoUzM5MF9sb3djb3JlLmV4dGVybmFsX2RhbWFnZV9jb2RlICYgKDFVIDw8IEVEX1NUUF9JU0xBTkQpKQorCQkJc3RwX2lzbGFuZF9jaGVjaygpOwogCX0KIAogCWlmIChtY2ktPnNlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3MzOTBtYWNoLmggYi9kcml2ZXJzL3MzOTAvczM5MG1hY2guaAppbmRleCBjYTY4MWY5Li5kMzlmOGI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvczM5MG1hY2guaAorKysgYi9kcml2ZXJzL3MzOTAvczM5MG1hY2guaApAQCAtNzIsNiArNzIsMTMgQEAKIAlfX3UzMiByc2lkICAgIDogMTY7ICAgLyogcmVwb3J0aW5nLXNvdXJjZSBJRCAqLwogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CiAKK3R5cGVkZWYgdm9pZCAoKmNyd19oYW5kbGVyX3QpKHN0cnVjdCBjcncgKiwgc3RydWN0IGNydyAqLCBpbnQpOworCitleHRlcm4gaW50IHMzOTBfcmVnaXN0ZXJfY3J3X2hhbmRsZXIoaW50IHJzYywgY3J3X2hhbmRsZXJfdCBoYW5kbGVyKTsKK2V4dGVybiB2b2lkIHMzOTBfdW5yZWdpc3Rlcl9jcndfaGFuZGxlcihpbnQgcnNjKTsKKworI2RlZmluZSBOUl9SU0NTIDE2CisKICNkZWZpbmUgQ1JXX1JTQ19NT05JVE9SICAweDIgIC8qIG1vbml0b3JpbmcgZmFjaWxpdHkgKi8KICNkZWZpbmUgQ1JXX1JTQ19TQ0ggICAgICAweDMgIC8qIHN1YmNoYW5uZWwgKi8KICNkZWZpbmUgQ1JXX1JTQ19DUEFUSCAgICAweDQgIC8qIGNoYW5uZWwgcGF0aCAqLwpAQCAtMTA1LDYgKzExMiw5IEBACiAjZGVmaW5lIEVEX0VUUl9TWU5DCTEyCS8qIEV4dGVybmFsIGRhbWFnZSBFVFIgc3luYyBjaGVjayAqLwogI2RlZmluZSBFRF9FVFJfU1dJVENICTEzCS8qIEV4dGVybmFsIGRhbWFnZSBFVFIgc3dpdGNoIHRvIGxvY2FsICovCiAKKyNkZWZpbmUgRURfU1RQX1NZTkMJNwkvKiBFeHRlcm5hbCBkYW1hZ2UgU1RQIHN5bmMgY2hlY2sgKi8KKyNkZWZpbmUgRURfU1RQX0lTTEFORAk2CS8qIEV4dGVybmFsIGRhbWFnZSBTVFAgaXNsYW5kIGNoZWNrICovCisKIHN0cnVjdCBwdF9yZWdzOwogCiB2b2lkIHMzOTBfaGFuZGxlX21jY2sodm9pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9icHAuYyBiL2RyaXZlcnMvc2J1cy9jaGFyL2JwcC5jCmluZGV4IDAzYzk2NjAuLmJiYTIxZTA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9icHAuYworKysgYi9kcml2ZXJzL3NidXMvY2hhci9icHAuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTQyOSw2ICs0MzAsNyBAQAogICAgICAgdW5zaWduZWQgbWlub3IgPSBpbWlub3IoaW5vZGUpOwogICAgICAgaW50IHJldDsKIAorICAgICAgbG9ja19rZXJuZWwoKTsKICAgICAgIHNwaW5fbG9jaygmYnBwX29wZW5fbG9jayk7CiAgICAgICByZXQgPSAwOwogICAgICAgaWYgKG1pbm9yID49IEJQUF9OTykgewpAQCAtNDQ0LDYgKzQ0Niw3IEBACiAJICAgICAgfQogICAgICAgfQogICAgICAgc3Bpbl91bmxvY2soJmJwcF9vcGVuX2xvY2spOworICAgICAgdW5sb2NrX2tlcm5lbCgpOwogCiAgICAgICByZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvY3B3YXRjaGRvZy5jIGIvZHJpdmVycy9zYnVzL2NoYXIvY3B3YXRjaGRvZy5jCmluZGV4IDIzNTcwMzQuLjIzYWJmZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFyL2Nwd2F0Y2hkb2cuYworKysgYi9kcml2ZXJzL3NidXMvY2hhci9jcHdhdGNoZG9nLmMKQEAgLTI3OSw2ICsyNzksNyBAQAogCiBzdGF0aWMgaW50IHdkX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmYpCiB7CisJbG9ja19rZXJuZWwoKTsKIAlzd2l0Y2goaW1pbm9yKGlub2RlKSkKIAl7CiAJCWNhc2UgV0QwX01JTk9SOgpAQCAtMjkxLDYgKzI5Miw3IEBACiAJCQlmLT5wcml2YXRlX2RhdGEgPSAmd2RfZGV2LndhdGNoZG9nW1dEMl9JRF07CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybigtRU5PREVWKTsKIAl9CiAKQEAgLTMwNCwxMSArMzA2LDEzIEBACiAJCQkJCQkodm9pZCAqKXdkX2Rldi5yZWdzKSkgewogCQkJcHJpbnRrKCIlczogQ2Fubm90IHJlZ2lzdGVyIElSUSAlZFxuIiwgCiAJCQkJV0RfT0JQTkFNRSwgd2RfZGV2LmlycSk7CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4oLUVCVVNZKTsKIAkJfQogCQl3ZF9kZXYuaW5pdGlhbGl6ZWQgPSAxOwogCX0KIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4obm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZikpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9kaXNwbGF5N3NlZy5jIGIvZHJpdmVycy9zYnVzL2NoYXIvZGlzcGxheTdzZWcuYwppbmRleCAzMjc5YTFiLi5kOGY1YzBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9kaXNwbGF5N3NlZy5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL2Rpc3BsYXk3c2VnLmMKQEAgLTk0LDYgKzk0LDcgQEAKIHsKIAlpZiAoRDdTX01JTk9SICE9IGltaW5vcihpbm9kZSkpCiAJCXJldHVybiAtRU5PREVWOworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJYXRvbWljX2luYygmZDdzX3VzZXJzKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2J1cy9jaGFyL2VudmN0cmwuYyBiL2RyaXZlcnMvc2J1cy9jaGFyL2VudmN0cmwuYwppbmRleCBkYWRhYmVmLi5hNDA4NDAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9lbnZjdHJsLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvZW52Y3RybC5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ttb2QuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2VidXMuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtNjk0LDYgKzY5NSw3IEBACiBzdGF0aWMgaW50CiBlbnZjdHJsX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvZmxhc2guYyBiL2RyaXZlcnMvc2J1cy9jaGFyL2ZsYXNoLmMKaW5kZXggNDRlMDM5OC4uN2Q5NWUxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvZmxhc2guYworKysgYi9kcml2ZXJzL3NidXMvY2hhci9mbGFzaC5jCkBAIC0xMjcsOSArMTI3LDEzIEBACiBzdGF0aWMgaW50CiBmbGFzaF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewotCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICh2b2lkICopJmZsYXNoLmJ1c3kpICE9IDApCisJbG9ja19rZXJuZWwoKTsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAodm9pZCAqKSZmbGFzaC5idXN5KSAhPSAwKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKKwl9CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2J1cy9jaGFyL2pzZmxhc2guYyBiL2RyaXZlcnMvc2J1cy9jaGFyL2pzZmxhc2guYwppbmRleCA0YjcwNzlmLi4yYmVjOWNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9qc2ZsYXNoLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvanNmbGFzaC5jCkBAIC0yNyw2ICsyNyw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KQEAgLTQxNywxMSArNDE4LDE3IEBACiAKIHN0YXRpYyBpbnQganNmX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCkKIHsKLQotCWlmIChqc2YwLmJhc2UgPT0gMCkgcmV0dXJuIC1FTlhJTzsKLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAodm9pZCAqKSZqc2YwLmJ1c3kpICE9IDApCisJbG9ja19rZXJuZWwoKTsKKwlpZiAoanNmMC5iYXNlID09IDApIHsKKwkJdW5sb2NrX2tlcm5lbCgpOworCQlyZXR1cm4gLUVOWElPOworCX0KKwlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAodm9pZCAqKSZqc2YwLmJ1c3kpICE9IDApIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOworCX0KIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsJLyogWFhYIFdoYXQgc2VjdXJpdHk/ICovCiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2J1cy9jaGFyL29wZW5wcm9tLmMgYi9kcml2ZXJzL3NidXMvY2hhci9vcGVucHJvbS5jCmluZGV4IGZiZmViODkuLjI5ZGM3MzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFyL29wZW5wcm9tLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvb3BlbnByb20uYwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTY4OSw5ICs2OTAsMTEgQEAKIAlpZiAoIWRhdGEpCiAJCXJldHVybiAtRU5PTUVNOwogCisJbG9ja19rZXJuZWwoKTsKIAlkYXRhLT5jdXJyZW50X25vZGUgPSBvZl9maW5kX25vZGVfYnlfcGF0aCgiLyIpOwogCWRhdGEtPmxhc3Rub2RlID0gZGF0YS0+Y3VycmVudF9ub2RlOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9ICh2b2lkICopIGRhdGE7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9yaW93YXRjaGRvZy5jIGIvZHJpdmVycy9zYnVzL2NoYXIvcmlvd2F0Y2hkb2cuYwppbmRleCBhMmZjNmI4Li44OGMwZmM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9yaW93YXRjaGRvZy5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL3Jpb3dhdGNoZG9nLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9lYnVzLmg+CkBAIC0xMTYsNiArMTE3LDcgQEAKIAogc3RhdGljIGludCByaW93ZF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9ydGMuYyBiL2RyaXZlcnMvc2J1cy9jaGFyL3J0Yy5jCmluZGV4IDE4ZDE4ZjEuLmIwNDI5OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFyL3J0Yy5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL3J0Yy5jCkBAIC0xMiw2ICsxMiw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KQEAgLTIxMyw2ICsyMTQsNyBAQAogewogCWludCByZXQ7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9ja19pcnEoJm1vc3Rla19sb2NrKTsKIAlpZiAocnRjX2J1c3kpIHsKIAkJcmV0ID0gLUVCVVNZOwpAQCAtMjIxLDYgKzIyMyw3IEBACiAJCXJldCA9IDA7CiAJfQogCXNwaW5fdW5sb2NrX2lycSgmbW9zdGVrX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci91Y3RybC5jIGIvZHJpdmVycy9zYnVzL2NoYXIvdWN0cmwuYwppbmRleCAzODNmMzJjLi41MTNiYTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci91Y3RybC5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL3VjdHJsLmMKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgpAQCAtMjExLDggKzIxMiwxMCBAQAogc3RhdGljIGludAogdWN0cmxfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwlsb2NrX2tlcm5lbCgpOwogCXVjdHJsX2dldF9ldmVudF9zdGF0dXMoKTsKIAl1Y3RybF9nZXRfZXh0ZXJuYWxfc3RhdHVzKCk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci92ZmNfZGV2LmMgYi9kcml2ZXJzL3NidXMvY2hhci92ZmNfZGV2LmMKaW5kZXggZDRmOGZjZC4uMWY2Y2I4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvdmZjX2Rldi5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL3ZmY19kZXYuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vb3BlbnByb20uaD4KICNpbmNsdWRlIDxhc20vb3BsaWIuaD4KQEAgLTE3OCwxNCArMTc5LDE3IEBACiB7CiAJc3RydWN0IHZmY19kZXYgKmRldjsKIAorCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZ2ZmNfZGV2X2xvY2spOwogCWRldiA9IHZmY19nZXRfZGV2X3B0cihpbWlub3IoaW5vZGUpKTsKIAlpZiAoZGV2ID09IE5VTEwpIHsKIAkJc3Bpbl91bmxvY2soJnZmY19kZXZfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCWlmIChkZXYtPmJ1c3kpIHsKIAkJc3Bpbl91bmxvY2soJnZmY19kZXZfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKQEAgLTIwMiw2ICsyMDYsNyBAQAogCXZmY19jYXB0c3RhdF9yZXNldChkZXYpOwogCQogCXZmY191bmxvY2tfZGV2aWNlKGRldik7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvM3ctOXh4eC5jIGIvZHJpdmVycy9zY3NpLzN3LTl4eHguYwppbmRleCA4NjdmNmZkLi43MDQ1NTExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvM3ctOXh4eC5jCisrKyBiL2RyaXZlcnMvc2NzaS8zdy05eHh4LmMKQEAgLTg0LDYgKzg0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtODYyLDExICs4NjMsMTMgQEAKIH0gLyogRW5kIHR3YV9jaHJkZXZfaW9jdGwoKSAqLwogCiAvKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgb3BlbiBmb3IgdGhlIGNoYXJhY3RlciBkZXZpY2UgKi8KKy8qIE5PVEUgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmFjZSB3aXRoIHJlbW92ZS4gKi8KIHN0YXRpYyBpbnQgdHdhX2NocmRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCXVuc2lnbmVkIGludCBtaW5vcl9udW1iZXI7CiAJaW50IHJldHZhbCA9IFRXX0lPQ1RMX0VSUk9SX09TX0VOT0RFVjsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJbWlub3JfbnVtYmVyID0gaW1pbm9yKGlub2RlKTsKIAlpZiAobWlub3JfbnVtYmVyID49IHR3YV9kZXZpY2VfZXh0ZW5zaW9uX2NvdW50KQogCQlnb3RvIG91dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS8zdy14eHh4LmMgYi9kcml2ZXJzL3Njc2kvM3cteHh4eC5jCmluZGV4IDhjMjIzMjkuLmEwNTM3ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS8zdy14eHh4LmMKKysrIGIvZHJpdmVycy9zY3NpLzN3LXh4eHguYwpAQCAtMTk4LDYgKzE5OCw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KQEAgLTEwMjcsMTAgKzEwMjgsMTIgQEAKIH0gLyogRW5kIHR3X2NocmRldl9pb2N0bCgpICovCiAKIC8qIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBvcGVuIGZvciB0aGUgY2hhcmFjdGVyIGRldmljZSAqLworLyogTk9URSB0aGF0IHRoaXMgZnVuY3Rpb24gcmFjZXMgd2l0aCByZW1vdmUuICovCiBzdGF0aWMgaW50IHR3X2NocmRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCXVuc2lnbmVkIGludCBtaW5vcl9udW1iZXI7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCWRwcmludGsoS0VSTl9XQVJOSU5HICIzdy14eHh4OiB0d19pb2N0bF9vcGVuKClcbiIpOwogCiAJbWlub3JfbnVtYmVyID0gaW1pbm9yKGlub2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2xpbml0LmMgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9saW5pdC5jCmluZGV4IDFmN2M4MzYuLjY4YzE0MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2xpbml0LmMKKysrIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvbGluaXQuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CkBAIC02NjcsNiArNjY4LDcgQEAKIAl1bnNpZ25lZCBtaW5vcl9udW1iZXIgPSBpbWlub3IoaW5vZGUpOwogCWludCBlcnIgPSAtRU5PREVWOwogCisJbG9ja19rZXJuZWwoKTsgIC8qIEJLTCBwdXNoZG93bjogbm90aGluZyBlbHNlIHByb3RlY3RzIHRoaXMgbGlzdCAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkoYWFjLCAmYWFjX2RldmljZXMsIGVudHJ5KSB7CiAJCWlmIChhYWMtPmlkID09IG1pbm9yX251bWJlcikgewogCQkJZmlsZS0+cHJpdmF0ZV9kYXRhID0gYWFjOwpAQCAtNjc0LDYgKzY3Niw3IEBACiAJCQlicmVhazsKIAkJfQogCX0KKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gZXJyOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZHMuYyBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2RzLmMKaW5kZXggNDQ0NmUzZC4uODYzMGE3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZHMuYworKysgYi9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3Nkcy5jCkBAIC0xMDkzLDkgKzEwOTMsOSBAQAogICogQGJ5dGVzX3RvX3ZlcmlmeTogdG90YWwgYnl0ZXMgdG8gdmVyaWZ5CiAgKi8KIGludCBhc2RfdmVyaWZ5X2ZsYXNoX3NlZyhzdHJ1Y3QgYXNkX2hhX3N0cnVjdCAqYXNkX2hhLAotCQl2b2lkICpzcmMsIHUzMiBkZXN0X29mZnNldCwgdTMyIGJ5dGVzX3RvX3ZlcmlmeSkKKwkJCSBjb25zdCB2b2lkICpzcmMsIHUzMiBkZXN0X29mZnNldCwgdTMyIGJ5dGVzX3RvX3ZlcmlmeSkKIHsKLQl1OCAqc3JjX2J1ZjsKKwljb25zdCB1OCAqc3JjX2J1ZjsKIAl1OCBmbGFzaF9jaGFyOwogCWludCBlcnI7CiAJdTMyIG52X29mZnNldCwgcmVnLCBpOwpAQCAtMTEwNSw3ICsxMTA1LDcgQEAKIAogCWVyciA9IEZMQVNIX09LOwogCW52X29mZnNldCA9IGRlc3Rfb2Zmc2V0OwotCXNyY19idWYgPSAodTggKilzcmM7CisJc3JjX2J1ZiA9IChjb25zdCB1OCAqKXNyYzsKIAlmb3IgKGkgPSAwOyBpIDwgYnl0ZXNfdG9fdmVyaWZ5OyBpKyspIHsKIAkJZmxhc2hfY2hhciA9IGFzZF9yZWFkX3JlZ19ieXRlKGFzZF9oYSwgcmVnICsgbnZfb2Zmc2V0ICsgaSk7CiAJCWlmIChmbGFzaF9jaGFyICE9IHNyY19idWZbaV0pIHsKQEAgLTExMjQsOSArMTEyNCw5IEBACiAgKiBAYnl0ZXNfdG9fd3JpdGU6IHRvdGFsIGJ5dGVzIHRvIHdyaXRlCiAgKi8KIGludCBhc2Rfd3JpdGVfZmxhc2hfc2VnKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEsCi0JCXZvaWQgKnNyYywgdTMyIGRlc3Rfb2Zmc2V0LCB1MzIgYnl0ZXNfdG9fd3JpdGUpCisJCQljb25zdCB2b2lkICpzcmMsIHUzMiBkZXN0X29mZnNldCwgdTMyIGJ5dGVzX3RvX3dyaXRlKQogewotCXU4ICpzcmNfYnVmOworCWNvbnN0IHU4ICpzcmNfYnVmOwogCXUzMiBudl9vZmZzZXQsIHJlZywgaTsKIAlpbnQgZXJyOwogCkBAIC0xMTUzLDcgKzExNTMsNyBAQAogCQlyZXR1cm4gZXJyOwogCX0KIAotCXNyY19idWYgPSAodTggKilzcmM7CisJc3JjX2J1ZiA9IChjb25zdCB1OCAqKXNyYzsKIAlmb3IgKGkgPSAwOyBpIDwgYnl0ZXNfdG9fd3JpdGU7IGkrKykgewogCQkvKiBTZXR1cCBwcm9ncmFtIGNvbW1hbmQgc2VxdWVuY2UgKi8KIAkJc3dpdGNoIChhc2RfaGEtPmh3X3Byb2YuZmxhc2gubWV0aG9kKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3Nkcy5oIGIvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZHMuaAppbmRleCBiYjk3OTVhLi5hMDZkYzAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3Nkcy5oCisrKyBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2RzLmgKQEAgLTExMCw5ICsxMTAsOSBAQAogfTsKIAogaW50IGFzZF92ZXJpZnlfZmxhc2hfc2VnKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEsCi0JCXZvaWQgKnNyYywgdTMyIGRlc3Rfb2Zmc2V0LCB1MzIgYnl0ZXNfdG9fdmVyaWZ5KTsKKwkJY29uc3Qgdm9pZCAqc3JjLCB1MzIgZGVzdF9vZmZzZXQsIHUzMiBieXRlc190b192ZXJpZnkpOwogaW50IGFzZF93cml0ZV9mbGFzaF9zZWcoc3RydWN0IGFzZF9oYV9zdHJ1Y3QgKmFzZF9oYSwKLQkJdm9pZCAqc3JjLCB1MzIgZGVzdF9vZmZzZXQsIHUzMiBieXRlc190b193cml0ZSk7CisJCWNvbnN0IHZvaWQgKnNyYywgdTMyIGRlc3Rfb2Zmc2V0LCB1MzIgYnl0ZXNfdG9fd3JpdGUpOwogaW50IGFzZF9jaGtfd3JpdGVfc3RhdHVzKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEsCiAJCXUzMiBzZWN0b3JfYWRkciwgdTggZXJhc2VfZmxhZyk7CiBpbnQgYXNkX2NoZWNrX2ZsYXNoX3R5cGUoc3RydWN0IGFzZF9oYV9zdHJ1Y3QgKmFzZF9oYSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3NlcS5jIGIvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZXEuYwppbmRleCBmNDI3MmFjLi44Zjk4ZTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3NlcS5jCisrKyBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2VxLmMKQEAgLTQ2LDcgKzQ2LDcgQEAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKnNlcXVlbmNlcl9mdzsKIHN0YXRpYyB1MTYgY3NlcV92ZWNzW0NTRVFfTlVNX1ZFQ1NdLCBsc2VxX3ZlY3NbTFNFUV9OVU1fVkVDU10sIG1vZGUyX3Rhc2ssCiAJY3NlcV9pZGxlX2xvb3AsIGxzZXFfaWRsZV9sb29wOwotc3RhdGljIHU4ICpjc2VxX2NvZGUsICpsc2VxX2NvZGU7CitzdGF0aWMgY29uc3QgdTggKmNzZXFfY29kZSwgKmxzZXFfY29kZTsKIHN0YXRpYyB1MzIgY3NlcV9jb2RlX3NpemUsIGxzZXFfY29kZV9zaXplOwogCiBzdGF0aWMgdTE2IGZpcnN0X3NjYl9zaXRlX25vID0gMHhGRkZGOwpAQCAtMTIzNSw3ICsxMjM1LDggQEAKIHN0YXRpYyBpbnQgYXNkX3JlcXVlc3RfZmlybXdhcmUoc3RydWN0IGFzZF9oYV9zdHJ1Y3QgKmFzZF9oYSkKIHsKIAlpbnQgZXJyLCBpOwotCXN0cnVjdCBzZXF1ZW5jZXJfZmlsZV9oZWFkZXIgaGVhZGVyLCAqaGRyX3B0cjsKKwlzdHJ1Y3Qgc2VxdWVuY2VyX2ZpbGVfaGVhZGVyIGhlYWRlcjsKKwljb25zdCBzdHJ1Y3Qgc2VxdWVuY2VyX2ZpbGVfaGVhZGVyICpoZHJfcHRyOwogCXUzMiBjc3VtID0gMDsKIAl1MTYgKnB0cl9jc2VxX3ZlY3MsICpwdHJfbHNlcV92ZWNzOwogCkBAIC0xMjQ5LDcgKzEyNTAsNyBAQAogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQloZHJfcHRyID0gKHN0cnVjdCBzZXF1ZW5jZXJfZmlsZV9oZWFkZXIgKilzZXF1ZW5jZXJfZnctPmRhdGE7CisJaGRyX3B0ciA9IChjb25zdCBzdHJ1Y3Qgc2VxdWVuY2VyX2ZpbGVfaGVhZGVyICopc2VxdWVuY2VyX2Z3LT5kYXRhOwogCiAJaGVhZGVyLmNzdW0gPSBsZTMyX3RvX2NwdShoZHJfcHRyLT5jc3VtKTsKIAloZWFkZXIubWFqb3IgPSBsZTMyX3RvX2NwdShoZHJfcHRyLT5tYWpvcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL0tjb25maWcgYi9kcml2ZXJzL3Njc2kvYXJtL0tjb25maWcKaW5kZXggNzIzNjE0My4uYTg1ODdmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9LY29uZmlnCisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZwpAQCAtMyw3ICszLDcgQEAKICMKIGNvbmZpZyBTQ1NJX0FDT1JOU0NTSV8zCiAJdHJpc3RhdGUgIkFjb3JuIFNDU0kgY2FyZCAoYWthMzApIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBBUkNIX0FDT1JOICYmIFNDU0kgJiYgQlJPS0VOCisJZGVwZW5kcyBvbiBBUkNIX0FDT1JOICYmIFNDU0kKIAlzZWxlY3QgU0NTSV9TUElfQVRUUlMKIAloZWxwCiAJICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIEFjb3JuIFNDU0kgY2FyZCAoYWthMzApLiBJZiB5b3UgaGF2ZSBhbgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2ktaW8uUyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLWlvLlMKaW5kZXggOTM0NjdlNi4uNWNlYmUzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2ktaW8uUworKysgYi9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS1pby5TCkBAIC0xMCwxNyArMTAsMTAgQEAKICNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAKLSNpZiAoSU9fQkFTRSA9PSAoUENJT19CQVNFICYgMHhmZjAwMDAwMCkpCi0jZGVmaW5lIEFERFIob2ZmLHJlZykJCQkJCQlcCi0JCXRzdAlvZmYsICQweDgwMDAwMDAwCQkJO1wKLQkJbW92CXJlZywgJElPX0JBU0UJCQkJO1wKLQkJb3JyZXEJcmVnLCByZWcsICQoUENJT19CQVNFICYgMHgwMGZmMDAwMCkKLSNlbHNlCi0jZGVmaW5lIEFERFIob2ZmLHJlZykJCQkJCQlcCi0JCXRzdAlvZmYsICQweDgwMDAwMDAwCQkJO1wKLQkJbW92bmUJcmVnLCAkSU9fQkFTRQkJCQk7XAotCQltb3ZlcQlyZWcsICQoUENJT19CQVNFICYgMHhmZjAwMDAwMCkJCTtcCi0JCW9ycmVxCXJlZywgcmVnLCAkKFBDSU9fQkFTRSAmIDB4MDBmZjAwMDApCisjaWYgZGVmaW5lZChfX0FQQ1NfMzJfXykKKyNkZWZpbmUgTE9BRFJFR1ModCxyLGwuLi4pCWxkbSMjdAlyLCBsCisjZWxpZiBkZWZpbmVkKF9fQVBDU18yNl9fKQorI2RlZmluZSBMT0FEUkVHUyh0LHIsbC4uLikJbGRtIyN0CXIsIGwjI14KICNlbmRpZgogCiBAIFB1cnBvc2U6IHRyYW5zZmVyIGEgYmxvY2sgb2YgZGF0YSBmcm9tIHRoZSBhY29ybiBzY3NpIGNhcmQgdG8gbWVtb3J5CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuYwppbmRleCA4ZTUzZjAyLi45MThjY2Y4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jCisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmMKQEAgLTEyMywxMiArMTIzLDYgQEAKICNkZWZpbmUgREJHKGNtZCx4eHguLi4pIHh4eAogI2VuZGlmCiAKLSNpZm5kZWYgU1RSSU5HSUZZCi0jZGVmaW5lIFNUUklOR0lGWSh4KSAjeAotI2VuZGlmCi0jZGVmaW5lIFNUUngoeCkgU1RSSU5HSUZZKHgpCi0jZGVmaW5lIE5PX1dSSVRFX1NUUiBTVFJ4KE5PX1dSSVRFKQotCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CkBAIC0xNDEsOSArMTM1LDEwIEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZ2lmeS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2VjYXJkLmg+CiAKICNpbmNsdWRlICIuLi9zY3NpLmgiCkBAIC0yMDMsNDQgKzE5OCw0NiBAQAogICogTWlzY2VsbGFuZW91cwogICovCiAKLXN0YXRpYyBpbmxpbmUgdm9pZAotc2JpY19hcm1fd3JpdGUodW5zaWduZWQgaW50IGlvX3BvcnQsIGludCByZWcsIGludCB2YWx1ZSkKKy8qIE9mZnNldHMgZnJvbSBNRU1DIGJhc2UgKi8KKyNkZWZpbmUgU0JJQ19SRUdJRFgJMHgyMDAwCisjZGVmaW5lIFNCSUNfUkVHVkFMCTB4MjAwNAorI2RlZmluZSBETUFDX09GRlNFVAkweDMwMDAKKworLyogT2Zmc2V0cyBmcm9tIEZBU1QgSU9DIGJhc2UgKi8KKyNkZWZpbmUgSU5UX1JFRwkJMHgyMDAwCisjZGVmaW5lIFBBR0VfUkVHCTB4MzAwMAorCitzdGF0aWMgaW5saW5lIHZvaWQgc2JpY19hcm1fd3JpdGUoQVNfSG9zdCAqaG9zdCwgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKQogewotICAgIF9fcmF3X3dyaXRlYihyZWcsIGlvX3BvcnQpOwotICAgIF9fcmF3X3dyaXRlYih2YWx1ZSwgaW9fcG9ydCArIDQpOworICAgIHdyaXRlYihyZWcsIGhvc3QtPmJhc2UgKyBTQklDX1JFR0lEWCk7CisgICAgd3JpdGViKHZhbHVlLCBob3N0LT5iYXNlICsgU0JJQ19SRUdWQUwpOwogfQogCi0jZGVmaW5lIHNiaWNfYXJtX3dyaXRlbmV4dChpbyx2YWwpIFwKLQlfX3Jhd193cml0ZWIoKHZhbCksIChpbykgKyA0KQotCi1zdGF0aWMgaW5saW5lCi1pbnQgc2JpY19hcm1fcmVhZCh1bnNpZ25lZCBpbnQgaW9fcG9ydCwgaW50IHJlZykKK3N0YXRpYyBpbmxpbmUgaW50IHNiaWNfYXJtX3JlYWQoQVNfSG9zdCAqaG9zdCwgdW5zaWduZWQgaW50IHJlZykKIHsKICAgICBpZihyZWcgPT0gU0JJQ19BU1IpCi0JICAgcmV0dXJuIF9fcmF3X3JlYWRsKGlvX3BvcnQpICYgMjU1OwotICAgIF9fcmF3X3dyaXRlYihyZWcsIGlvX3BvcnQpOwotICAgIHJldHVybiBfX3Jhd19yZWFkbChpb19wb3J0ICsgNCkgJiAyNTU7CisJICAgcmV0dXJuIHJlYWRsKGhvc3QtPmJhc2UgKyBTQklDX1JFR0lEWCkgJiAyNTU7CisgICAgd3JpdGViKHJlZywgaG9zdC0+YmFzZSArIFNCSUNfUkVHSURYKTsKKyAgICByZXR1cm4gcmVhZGwoaG9zdC0+YmFzZSArIFNCSUNfUkVHVkFMKSAmIDI1NTsKIH0KIAotI2RlZmluZSBzYmljX2FybV9yZWFkbmV4dChpbykgXAotCV9fcmF3X3JlYWRiKChpbykgKyA0KQorI2RlZmluZSBzYmljX2FybV93cml0ZW5leHQoaG9zdCwgdmFsKQl3cml0ZWIoKHZhbCksIChob3N0KS0+YmFzZSArIFNCSUNfUkVHVkFMKQorI2RlZmluZSBzYmljX2FybV9yZWFkbmV4dChob3N0KSAJcmVhZGIoKGhvc3QpLT5iYXNlICsgU0JJQ19SRUdWQUwpCiAKICNpZmRlZiBVU0VfRE1BQwotI2RlZmluZSBkbWFjX3JlYWQoaW9fcG9ydCxyZWcpIFwKLQlpbmIoKGlvX3BvcnQpICsgKHJlZykpCisjZGVmaW5lIGRtYWNfcmVhZChob3N0LHJlZykgXAorCXJlYWRiKChob3N0KS0+YmFzZSArIERNQUNfT0ZGU0VUICsgKChyZWcpIDw8IDIpKQogCi0jZGVmaW5lIGRtYWNfd3JpdGUoaW9fcG9ydCxyZWcsdmFsdWUpIFwKLQkoeyBvdXRiKCh2YWx1ZSksIChpb19wb3J0KSArIChyZWcpKTsgfSkKKyNkZWZpbmUgZG1hY193cml0ZShob3N0LHJlZyx2YWx1ZSkgXAorCSh7IHdyaXRlYigodmFsdWUpLCAoaG9zdCktPmJhc2UgKyBETUFDX09GRlNFVCArICgocmVnKSA8PCAyKSk7IH0pCiAKLSNkZWZpbmUgZG1hY19jbGVhcmludHIoaW9fcG9ydCkgXAotCSh7IG91dGIoMCwgKGlvX3BvcnQpKTsgfSkKKyNkZWZpbmUgZG1hY19jbGVhcmludHIoaG9zdCkgCXdyaXRlYigwLCAoaG9zdCktPmZhc3QgKyBJTlRfUkVHKQogCi1zdGF0aWMgaW5saW5lCi11bnNpZ25lZCBpbnQgZG1hY19hZGRyZXNzKHVuc2lnbmVkIGludCBpb19wb3J0KQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZG1hY19hZGRyZXNzKEFTX0hvc3QgKmhvc3QpCiB7Ci0gICAgcmV0dXJuIGRtYWNfcmVhZChpb19wb3J0LCBETUFDX1RYQURSSEkpIDw8IDE2IHwKLQkgICBkbWFjX3JlYWQoaW9fcG9ydCwgRE1BQ19UWEFEUk1EKSA8PCA4IHwKLQkgICBkbWFjX3JlYWQoaW9fcG9ydCwgRE1BQ19UWEFEUkxPKTsKKyAgICByZXR1cm4gZG1hY19yZWFkKGhvc3QsIERNQUNfVFhBRFJISSkgPDwgMTYgfAorCSAgIGRtYWNfcmVhZChob3N0LCBETUFDX1RYQURSTUQpIDw8IDggfAorCSAgIGRtYWNfcmVhZChob3N0LCBETUFDX1RYQURSTE8pOwogfQogCiBzdGF0aWMKQEAgLTI0OCwxNSArMjQ1LDE1IEBACiB7CiAJdW5zaWduZWQgaW50IG1vZGUsIGFkZHIsIGxlbjsKIAotCW1vZGUgPSBkbWFjX3JlYWQoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTU9ERUNPTik7Ci0JYWRkciA9IGRtYWNfYWRkcmVzcyhob3N0LT5kbWEuaW9fcG9ydCk7Ci0JbGVuICA9IGRtYWNfcmVhZChob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWENOVEhJKSA8PCA4IHwKLQkgICAgICAgZG1hY19yZWFkKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05UTE8pOworCW1vZGUgPSBkbWFjX3JlYWQoaG9zdCwgRE1BQ19NT0RFQ09OKTsKKwlhZGRyID0gZG1hY19hZGRyZXNzKGhvc3QpOworCWxlbiAgPSBkbWFjX3JlYWQoaG9zdCwgRE1BQ19UWENOVEhJKSA8PCA4IHwKKwkgICAgICAgZG1hY19yZWFkKGhvc3QsIERNQUNfVFhDTlRMTyk7CiAKIAlwcmludGsoInNjc2klZDogJXM6IERNQUMgJTAyeCBAJTA2eCslMDR4IG1zayAlMDJ4LCAiLAogCQlob3N0LT5ob3N0LT5ob3N0X25vLCB3aGVyZSwKIAkJbW9kZSwgYWRkciwgKGxlbiArIDEpICYgMHhmZmZmLAotCQlkbWFjX3JlYWQoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRykpOworCQlkbWFjX3JlYWQoaG9zdCwgRE1BQ19NQVNLUkVHKSk7CiAKIAlwcmludGsoIkRNQSBAJTA2eCwgIiwgaG9zdC0+ZG1hLnN0YXJ0X2FkZHIpOwogCXByaW50aygiQkggQCVwICslMDR4LCAiLCBob3N0LT5zY3NpLlNDcC5wdHIsCkBAIC0yNzIsOSArMjY5LDkgQEAKIHsKICAgICB1bnNpZ25lZCBsb25nIGxlbmd0aDsKIAotICAgIGxlbmd0aCA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1RSQU5TQ05USCkgPDwgMTY7Ci0gICAgbGVuZ3RoIHw9IHNiaWNfYXJtX3JlYWRuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCkgPDwgODsKLSAgICBsZW5ndGggfD0gc2JpY19hcm1fcmVhZG5leHQoaG9zdC0+c2NzaS5pb19wb3J0KTsKKyAgICBsZW5ndGggPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfVFJBTlNDTlRIKSA8PCAxNjsKKyAgICBsZW5ndGggfD0gc2JpY19hcm1fcmVhZG5leHQoaG9zdCkgPDwgODsKKyAgICBsZW5ndGggfD0gc2JpY19hcm1fcmVhZG5leHQoaG9zdCk7CiAKICAgICByZXR1cm4gbGVuZ3RoOwogfQpAQCAtMjg1LDcgKzI4Miw3IEBACiAJaW50IGFzcjsKIAogCWRvIHsKLQkJYXNyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKKwkJYXNyID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0FTUik7CiAKIAkJaWYgKChhc3IgJiBzdGF0X21hc2spID09IHN0YXQpCiAJCQlyZXR1cm4gMDsKQEAgLTMwNCw3ICszMDEsNyBAQAogICAgIGlmIChhY29ybnNjc2lfc2JpY193YWl0KGhvc3QsIEFTUl9DSVAsIDAsIDEwMDAsICJpc3N1aW5nIGNvbW1hbmQiKSkKIAlyZXR1cm4gLTE7CiAKLSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQ01ORCwgY29tbWFuZCk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DTU5ELCBjb21tYW5kKTsKIAogICAgIHJldHVybiAwOwogfQpAQCAtMzMxLDIwICszMjgsMjAgQEAKIAogICAgIC8qIGFzc2VydCByZXNldCBsaW5lICovCiAgICAgaG9zdC0+Y2FyZC5wYWdlX3JlZyA9IDB4ODA7Ci0gICAgb3V0Yihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworICAgIHdyaXRlYihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCiAgICAgLyogd2FpdCAzIGNzLiAgU0NTSSBzdGFuZGFyZCBzYXlzIDI1bXMuICovCiAgICAgYWNvcm5zY3NpX2NzZGVsYXkoMyk7CiAKICAgICBob3N0LT5jYXJkLnBhZ2VfcmVnID0gMDsKLSAgICBvdXRiKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisgICAgd3JpdGViKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiAKICAgICAvKgogICAgICAqIFNob3VsZCBnZXQgYSByZXNldCBmcm9tIHRoZSBjYXJkCiAgICAgICovCiAgICAgdGltZW91dCA9IDEwMDA7CiAgICAgZG8gewotCWlmIChpbmIoaG9zdC0+Y2FyZC5pb19pbnRyKSAmIDgpCisJaWYgKHJlYWRiKGhvc3QtPmZhc3QgKyBJTlRfUkVHKSAmIDgpCiAJICAgIGJyZWFrOwogCXVkZWxheSgxKTsKICAgICB9IHdoaWxlICgtLXRpbWVvdXQpOwpAQCAtMzUzLDE5ICszNTAsMTkgQEAKIAlwcmludGsoInNjc2klZDogdGltZW91dCB3aGlsZSByZXNldHRpbmcgY2FyZFxuIiwKIAkJaG9zdC0+aG9zdC0+aG9zdF9ubyk7CiAKLSAgICBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpOwotICAgIHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NTUik7CisgICAgc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0FTUik7CisgICAgc2JpY19hcm1fcmVhZChob3N0LCBTQklDX1NTUik7CiAKICAgICAvKiBzZXR1cCBzYmljIC0gV0QzM0M5M0EgKi8KLSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfT1dOSUQsIE9XTklEX0VBRiB8IGhvc3QtPmhvc3QtPnRoaXNfaWQpOwotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DTU5ELCBDTU5EX1JFU0VUKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX09XTklELCBPV05JRF9FQUYgfCBob3N0LT5ob3N0LT50aGlzX2lkKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX0NNTkQsIENNTkRfUkVTRVQpOwogCiAgICAgLyoKICAgICAgKiBDb21tYW5kIHNob3VsZCBjYXVzZSBhIHJlc2V0IGludGVycnVwdAogICAgICAqLwogICAgIHRpbWVvdXQgPSAxMDAwOwogICAgIGRvIHsKLQlpZiAoaW5iKGhvc3QtPmNhcmQuaW9faW50cikgJiA4KQorCWlmIChyZWFkYihob3N0LT5mYXN0ICsgSU5UX1JFRykgJiA4KQogCSAgICBicmVhazsKIAl1ZGVsYXkoMSk7CiAgICAgfSB3aGlsZSAoLS10aW1lb3V0KTsKQEAgLTM3NCwyNiArMzcxLDI2IEBACiAJcHJpbnRrKCJzY3NpJWQ6IHRpbWVvdXQgd2hpbGUgcmVzZXR0aW5nIGNhcmRcbiIsCiAJCWhvc3QtPmhvc3QtPmhvc3Rfbm8pOwogCi0gICAgc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKLSAgICBpZiAoc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1NSKSAhPSAweDAxKQorICAgIHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOworICAgIGlmIChzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKSAhPSAweDAxKQogCXByaW50ayhLRVJOX0NSSVQgInNjc2klZDogV0QzM0M5M0EgZGlkbid0IGdpdmUgZW5oYW5jZWQgcmVzZXQgaW50ZXJydXB0XG4iLAogCQlob3N0LT5ob3N0LT5ob3N0X25vKTsKIAotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DVFJMLCBJTklUX1NCSUNETUEgfCBDVFJMX0lESSk7Ci0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1RJTUVPVVQsIFRJTUVPVVRfVElNRSk7Ci0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NZTkNIVFJBTlNGRVIsIFNZTkNIVFJBTlNGRVJfMkRCQSk7Ci0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NPVVJDRUlELCBTT1VSQ0VJRF9FUiB8IFNPVVJDRUlEX0RTUCk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DVFJMLCBJTklUX1NCSUNETUEgfCBDVFJMX0lESSk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19USU1FT1VULCBUSU1FT1VUX1RJTUUpOworICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgU1lOQ0hUUkFOU0ZFUl8yREJBKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NPVVJDRUlELCBTT1VSQ0VJRF9FUiB8IFNPVVJDRUlEX0RTUCk7CiAKICAgICBob3N0LT5jYXJkLnBhZ2VfcmVnID0gMHg0MDsKLSAgICBvdXRiKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisgICAgd3JpdGViKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiAKICAgICAvKiBzZXR1cCBkbWFjIC0gdVBDNzEwNzEgKi8KLSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX0lOSVQsIDApOworICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19JTklULCAwKTsKICNpZmRlZiBVU0VfRE1BQwotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfSU5JVCwgSU5JVF84QklUKTsKLSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX0NIQU5ORUwsIENIQU5ORUxfMCk7Ci0gICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19ERVZDT04wLCBJTklUX0RFVkNPTjApOwotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfREVWQ09OMSwgSU5JVF9ERVZDT04xKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfSU5JVCwgSU5JVF84QklUKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfQ0hBTk5FTCwgQ0hBTk5FTF8wKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfREVWQ09OMCwgSU5JVF9ERVZDT04wKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfREVWQ09OMSwgSU5JVF9ERVZDT04xKTsKICNlbmRpZgogCiAgICAgaG9zdC0+U0NwbnQgPSBOVUxMOwpAQCAtNzQxLDkgKzczOCw5IEBACiAgICAgICogSWYgd2UgaGF2ZSBhbiBpbnRlcnJ1cHQgcGVuZGluZywgdGhlbiB3ZSBtYXkgaGF2ZSBiZWVuIHJlc2VsZWN0ZWQuCiAgICAgICogSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIHdyaXRlIHRvIHRoZSByZWdpc3RlcnMKICAgICAgKi8KLSAgICBpZiAoIShzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpICYgKEFTUl9JTlR8QVNSX0JTWXxBU1JfQ0lQKSkpIHsKLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfREVTVElELCBTQ3BudC0+ZGV2aWNlLT5pZCk7Ci0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0NNTkQsIENNTkRfU0VMV0lUSEFUTik7CisgICAgaWYgKCEoc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0FTUikgJiAoQVNSX0lOVHxBU1JfQlNZfEFTUl9DSVApKSkgeworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfREVTVElELCBTQ3BudC0+ZGV2aWNlLT5pZCk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DTU5ELCBDTU5EX1NFTFdJVEhBVE4pOwogICAgIH0KIAogICAgIC8qCkBAIC04MDcsNyArODA0LDcgQEAKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCA9ICpTQ3BudHA7CiAKICAgICAvKiBjbGVhbiB1cCAqLwotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TT1VSQ0VJRCwgU09VUkNFSURfRVIgfCBTT1VSQ0VJRF9EU1ApOworICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU09VUkNFSUQsIFNPVVJDRUlEX0VSIHwgU09VUkNFSURfRFNQKTsKIAogICAgIGhvc3QtPnN0YXRzLmZpbnMgKz0gMTsKIApAQCAtOTE4LDEzICs5MTUsMTMgQEAKIHZvaWQgYWNvcm5zY3NpX2RhdGFfcmVhZChBU19Ib3N0ICpob3N0LCBjaGFyICpwdHIsCiAJCQkJIHVuc2lnbmVkIGludCBzdGFydF9hZGRyLCB1bnNpZ25lZCBpbnQgbGVuZ3RoKQogewotICAgIGV4dGVybiB2b2lkIF9fYWNvcm5zY3NpX2luKGludCBwb3J0LCBjaGFyICpidWYsIGludCBsZW4pOworICAgIGV4dGVybiB2b2lkIF9fYWNvcm5zY3NpX2luKHZvaWQgX19pb21lbSAqLCBjaGFyICpidWYsIGludCBsZW4pOwogICAgIHVuc2lnbmVkIGludCBwYWdlLCBvZmZzZXQsIGxlbiA9IGxlbmd0aDsKIAogICAgIHBhZ2UgPSAoc3RhcnRfYWRkciA+PiAxMik7CiAgICAgb2Zmc2V0ID0gc3RhcnRfYWRkciAmICgoMSA8PCAxMikgLSAxKTsKIAotICAgIG91dGIoKHBhZ2UgJiAweDNmKSB8IGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisgICAgd3JpdGViKChwYWdlICYgMHgzZikgfCBob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCiAgICAgd2hpbGUgKGxlbiA+IDApIHsKIAl1bnNpZ25lZCBpbnQgdGhpc19sZW47CkBAIC05MzQsNyArOTMxLDcgQEAKIAllbHNlCiAJICAgIHRoaXNfbGVuID0gbGVuOwogCi0JX19hY29ybnNjc2lfaW4oaG9zdC0+Y2FyZC5pb19yYW0gKyAob2Zmc2V0IDw8IDEpLCBwdHIsIHRoaXNfbGVuKTsKKwlfX2Fjb3Juc2NzaV9pbihob3N0LT5iYXNlICsgKG9mZnNldCA8PCAxKSwgcHRyLCB0aGlzX2xlbik7CiAKIAlvZmZzZXQgKz0gdGhpc19sZW47CiAJcHRyICs9IHRoaXNfbGVuOwpAQCAtOTQzLDEwICs5NDAsMTAgQEAKIAlpZiAob2Zmc2V0ID09ICgxIDw8IDEyKSkgewogCSAgICBvZmZzZXQgPSAwOwogCSAgICBwYWdlICsrOwotCSAgICBvdXRiKChwYWdlICYgMHgzZikgfCBob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworCSAgICB3cml0ZWIoKHBhZ2UgJiAweDNmKSB8IGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiAJfQogICAgIH0KLSAgICBvdXRiKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisgICAgd3JpdGViKGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiB9CiAKIC8qCkBAIC05NjMsMTMgKzk2MCwxMyBAQAogdm9pZCBhY29ybnNjc2lfZGF0YV93cml0ZShBU19Ib3N0ICpob3N0LCBjaGFyICpwdHIsCiAJCQkJIHVuc2lnbmVkIGludCBzdGFydF9hZGRyLCB1bnNpZ25lZCBpbnQgbGVuZ3RoKQogewotICAgIGV4dGVybiB2b2lkIF9fYWNvcm5zY3NpX291dChpbnQgcG9ydCwgY2hhciAqYnVmLCBpbnQgbGVuKTsKKyAgICBleHRlcm4gdm9pZCBfX2Fjb3Juc2NzaV9vdXQodm9pZCBfX2lvbWVtICosIGNoYXIgKmJ1ZiwgaW50IGxlbik7CiAgICAgdW5zaWduZWQgaW50IHBhZ2UsIG9mZnNldCwgbGVuID0gbGVuZ3RoOwogCiAgICAgcGFnZSA9IChzdGFydF9hZGRyID4+IDEyKTsKICAgICBvZmZzZXQgPSBzdGFydF9hZGRyICYgKCgxIDw8IDEyKSAtIDEpOwogCi0gICAgb3V0YigocGFnZSAmIDB4M2YpIHwgaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+Y2FyZC5pb19wYWdlKTsKKyAgICB3cml0ZWIoKHBhZ2UgJiAweDNmKSB8IGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiAKICAgICB3aGlsZSAobGVuID4gMCkgewogCXVuc2lnbmVkIGludCB0aGlzX2xlbjsKQEAgLTk3OSw3ICs5NzYsNyBAQAogCWVsc2UKIAkgICAgdGhpc19sZW4gPSBsZW47CiAKLQlfX2Fjb3Juc2NzaV9vdXQoaG9zdC0+Y2FyZC5pb19yYW0gKyAob2Zmc2V0IDw8IDEpLCBwdHIsIHRoaXNfbGVuKTsKKwlfX2Fjb3Juc2NzaV9vdXQoaG9zdC0+YmFzZSArIChvZmZzZXQgPDwgMSksIHB0ciwgdGhpc19sZW4pOwogCiAJb2Zmc2V0ICs9IHRoaXNfbGVuOwogCXB0ciArPSB0aGlzX2xlbjsKQEAgLTk4OCwxMCArOTg1LDEwIEBACiAJaWYgKG9mZnNldCA9PSAoMSA8PCAxMikpIHsKIAkgICAgb2Zmc2V0ID0gMDsKIAkgICAgcGFnZSArKzsKLQkgICAgb3V0YigocGFnZSAmIDB4M2YpIHwgaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+Y2FyZC5pb19wYWdlKTsKKwkgICAgd3JpdGViKChwYWdlICYgMHgzZikgfCBob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCX0KICAgICB9Ci0gICAgb3V0Yihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworICAgIHdyaXRlYihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogfQogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMTAwOCw4ICsxMDA1LDggQEAKIHN0YXRpYyBpbmxpbmUKIHZvaWQgYWNvcm5zY3NpX2RtYV9zdG9wKEFTX0hvc3QgKmhvc3QpCiB7Ci0gICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19NQVNLUkVHLCBNQVNLX09OKTsKLSAgICBkbWFjX2NsZWFyaW50cihob3N0LT5kbWEuaW9faW50cl9jbGVhcik7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT04pOworICAgIGRtYWNfY2xlYXJpbnRyKGhvc3QpOwogCiAjaWYgKERFQlVHICYgREVCVUdfRE1BKQogICAgIERCRyhob3N0LT5TQ3BudCwgYWNvcm5zY3NpX2R1bXBkbWEoaG9zdCwgInN0b3AiKSk7CkBAIC0xMDMxLDcgKzEwMjgsNyBAQAogCiAgICAgaG9zdC0+ZG1hLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjsKIAotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PTik7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT04pOwogCiAgICAgaWYgKGRpcmVjdGlvbiA9PSBETUFfT1VUKSB7CiAjaWYgKERFQlVHICYgREVCVUdfTk9fV1JJVEUpCkBAIC0xMDYyLDEzICsxMDU5LDEzIEBACiAJCQkJbGVuZ3RoKTsKIAogCWxlbmd0aCAtPSAxOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhDTlRMTywgbGVuZ3RoKTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05USEksIGxlbmd0aCA+PiA4KTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTE8sIGFkZHJlc3MpOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJNRCwgYWRkcmVzcyA+PiA4KTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSSEksIDApOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTU9ERUNPTiwgbW9kZSk7Ci0JZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19NQVNLUkVHLCBNQVNLX09GRik7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQ05UTE8sIGxlbmd0aCk7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQ05USEksIGxlbmd0aCA+PiA4KTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhBRFJMTywgYWRkcmVzcyk7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSTUQsIGFkZHJlc3MgPj4gOCk7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSSEksIDApOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19NT0RFQ09OLCBtb2RlKTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfTUFTS1JFRywgTUFTS19PRkYpOwogCiAjaWYgKERFQlVHICYgREVCVUdfRE1BKQogCURCRyhob3N0LT5TQ3BudCwgYWNvcm5zY3NpX2R1bXBkbWEoaG9zdCwgInN0cnQiKSk7CkBAIC0xMDg4LDggKzEwODUsOCBAQAogc3RhdGljCiB2b2lkIGFjb3Juc2NzaV9kbWFfY2xlYW51cChBU19Ib3N0ICpob3N0KQogewotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PTik7Ci0gICAgZG1hY19jbGVhcmludHIoaG9zdC0+ZG1hLmlvX2ludHJfY2xlYXIpOworICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19NQVNLUkVHLCBNQVNLX09OKTsKKyAgICBkbWFjX2NsZWFyaW50cihob3N0KTsKIAogICAgIC8qCiAgICAgICogQ2hlY2sgZm9yIGEgcGVuZGluZyB0cmFuc2ZlcgpAQCAtMTExNiw3ICsxMTEzLDcgQEAKIAkvKgogCSAqIENhbGN1bGF0ZSBudW1iZXIgb2YgYnl0ZXMgdHJhbnNmZXJyZWQgZnJvbSBETUEuCiAJICovCi0JdHJhbnNmZXJyZWQgPSBkbWFjX2FkZHJlc3MoaG9zdC0+ZG1hLmlvX3BvcnQpIC0gaG9zdC0+ZG1hLnN0YXJ0X2FkZHI7CisJdHJhbnNmZXJyZWQgPSBkbWFjX2FkZHJlc3MoaG9zdCkgLSBob3N0LT5kbWEuc3RhcnRfYWRkcjsKIAlob3N0LT5kbWEudHJhbnNmZXJyZWQgKz0gdHJhbnNmZXJyZWQ7CiAKIAlpZiAoaG9zdC0+ZG1hLmRpcmVjdGlvbiA9PSBETUFfSU4pCkBAIC0xMTUyLDEzICsxMTQ5LDEzIEBACiAgICAgREJHKGhvc3QtPlNDcG50LCBhY29ybnNjc2lfZHVtcGRtYShob3N0LCAiaW50aSIpKTsKICNlbmRpZgogCi0gICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19NQVNLUkVHLCBNQVNLX09OKTsKLSAgICBkbWFjX2NsZWFyaW50cihob3N0LT5kbWEuaW9faW50cl9jbGVhcik7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT04pOworICAgIGRtYWNfY2xlYXJpbnRyKGhvc3QpOwogCiAgICAgLyoKICAgICAgKiBDYWxjdWxhdGUgYW1vdW50IHRyYW5zZmVycmVkIHZpYSBETUEKICAgICAgKi8KLSAgICB0cmFuc2ZlcnJlZCA9IGRtYWNfYWRkcmVzcyhob3N0LT5kbWEuaW9fcG9ydCkgLSBob3N0LT5kbWEuc3RhcnRfYWRkcjsKKyAgICB0cmFuc2ZlcnJlZCA9IGRtYWNfYWRkcmVzcyhob3N0KSAtIGhvc3QtPmRtYS5zdGFydF9hZGRyOwogICAgIGhvc3QtPmRtYS50cmFuc2ZlcnJlZCArPSB0cmFuc2ZlcnJlZDsKIAogICAgIC8qCkBAIC0xMTkwLDEyICsxMTg3LDEyIEBACiAJCQkJbGVuZ3RoKTsKIAogCWxlbmd0aCAtPSAxOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhDTlRMTywgbGVuZ3RoKTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05USEksIGxlbmd0aCA+PiA4KTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTE8sIGFkZHJlc3MpOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJNRCwgYWRkcmVzcyA+PiA4KTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSSEksIDApOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PRkYpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWENOVExPLCBsZW5ndGgpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWENOVEhJLCBsZW5ndGggPj4gOCk7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSTE8sIGFkZHJlc3MpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUk1ELCBhZGRyZXNzID4+IDgpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkhJLCAwKTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfTUFTS1JFRywgTUFTS19PRkYpOwogCiAjaWYgKERFQlVHICYgREVCVUdfRE1BKQogCURCRyhob3N0LT5TQ3BudCwgYWNvcm5zY3NpX2R1bXBkbWEoaG9zdCwgImludG8iKSk7CkBAIC0xMjA5LDE1ICsxMjA2LDE1IEBACiAJICogYXR0ZW50aW9uIGNvbmRpdGlvbi4gIFdlIGNvbnRpbnVlIGdpdmluZyBvbmUgYnl0ZSB1bnRpbAogCSAqIHRoZSBkZXZpY2UgcmVjb2duaXNlcyB0aGUgYXR0ZW50aW9uLgogCSAqLwotCWlmIChkbWFjX3JlYWQoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfU1RBVFVTKSAmIFNUQVRVU19SUTApIHsKKwlpZiAoZG1hY19yZWFkKGhvc3QsIERNQUNfU1RBVFVTKSAmIFNUQVRVU19SUTApIHsKIAkgICAgYWNvcm5zY3NpX2Fib3J0Y21kKGhvc3QsIGhvc3QtPlNDcG50LT50YWcpOwogCi0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhDTlRMTywgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhDTlRISSwgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJMTywgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJNRCwgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJISSwgMCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PRkYpOworCSAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhDTlRMTywgMCk7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWENOVEhJLCAwKTsKKwkgICAgZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSTE8sIDApOworCSAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhBRFJNRCwgMCk7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkhJLCAwKTsKKwkgICAgZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT0ZGKTsKIAl9CiAjZW5kaWYKICAgICB9CkBAIC0xMjcxLDkgKzEyNjgsOSBAQAogCSAgICBob3N0LT5kbWEueGZlcl9zZXR1cCA9IDA7CiAJZWxzZSB7CiAJICAgIHRyYW5zZmVycmVkICs9IGhvc3QtPmRtYS5zdGFydF9hZGRyOwotCSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTE8sIHRyYW5zZmVycmVkKTsKLQkgICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWEFEUk1ELCB0cmFuc2ZlcnJlZCA+PiA4KTsKLQkgICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWEFEUkhJLCB0cmFuc2ZlcnJlZCA+PiAxNik7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkxPLCB0cmFuc2ZlcnJlZCk7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUk1ELCB0cmFuc2ZlcnJlZCA+PiA4KTsKKwkgICAgZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSSEksIHRyYW5zZmVycmVkID4+IDE2KTsKICNpZiAoREVCVUcgJiAoREVCVUdfRE1BfERFQlVHX1dSSVRFKSkKIAkgICAgREJHKGhvc3QtPlNDcG50LCBhY29ybnNjc2lfZHVtcGRtYShob3N0LCAiYWRqbyIpKTsKICNlbmRpZgpAQCAtMTI5MiwxMiArMTI4OSwxMiBAQAogCWludCBteV9wdHIgPSAqcHRyOwogCiAJd2hpbGUgKG15X3B0ciA8IGxlbikgewotCQlhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpOworCQlhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfQVNSKTsKIAogCQlpZiAoYXNyICYgQVNSX0RCUikgewogCQkJdGltZW91dCA9IG1heF90aW1lb3V0OwogCi0JCQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfREFUQSwgYnl0ZXNbbXlfcHRyKytdKTsKKwkJCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfREFUQSwgYnl0ZXNbbXlfcHRyKytdKTsKIAkJfSBlbHNlIGlmIChhc3IgJiBBU1JfSU5UKQogCQkJYnJlYWs7CiAJCWVsc2UgaWYgKC0tdGltZW91dCA9PSAwKQpAQCAtMTMyMCw5ICsxMzE3LDkgQEAKIHsKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCA9IGhvc3QtPlNDcG50OwogCi0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1RSQU5TQ05USCwgMCk7Ci0gICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCwgMCk7Ci0gICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCwgU0NwbnQtPmNtZF9sZW4gLSBob3N0LT5zY3NpLlNDcC5zZW50X2NvbW1hbmQpOworICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfVFJBTlNDTlRILCAwKTsKKyAgICBzYmljX2FybV93cml0ZW5leHQoaG9zdCwgMCk7CisgICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QsIFNDcG50LT5jbWRfbGVuIC0gaG9zdC0+c2NzaS5TQ3Auc2VudF9jb21tYW5kKTsKIAogICAgIGFjb3Juc2NzaV9zYmljX2lzc3VlY21kKGhvc3QsIENNTkRfWEZFUklORk8pOwogCkBAIC0xMzUxLDcgKzEzNDgsNyBAQAogCiAJYWNvcm5zY3NpX3NiaWNfd2FpdChob3N0LCBBU1JfREJSLCBBU1JfREJSLCAxMDAwLCAic2VuZGluZyBtZXNzYWdlIDEiKTsKIAotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19EQVRBLCBOT1ApOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfREFUQSwgTk9QKTsKIAogCWhvc3QtPnNjc2kubGFzdF9tZXNzYWdlID0gTk9QOwogI2lmIChERUJVRyAmIERFQlVHX01FU1NBR0VTKQpAQCAtMTM2NSw3ICsxMzYyLDcgQEAKIAogCWFjb3Juc2NzaV9zYmljX3dhaXQoaG9zdCwgQVNSX0RCUiwgQVNSX0RCUiwgMTAwMCwgInNlbmRpbmcgbWVzc2FnZSAyIik7CiAKLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfREFUQSwgbXNnLT5tc2dbMF0pOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfREFUQSwgbXNnLT5tc2dbMF0pOwogCiAJaG9zdC0+c2NzaS5sYXN0X21lc3NhZ2UgPSBtc2ctPm1zZ1swXTsKICNpZiAoREVCVUcgJiBERUJVR19NRVNTQUdFUykKQEAgLTEzODIsOSArMTM3OSw5IEBACiAJICogIGluaXRpYXRvci4gIFRoaXMgcHJvdmlkZXMgYW4gaW50ZXJsb2NrIHNvIHRoYXQgdGhlCiAJICogIGluaXRpYXRvciBjYW4gZGV0ZXJtaW5lIHdoaWNoIG1lc3NhZ2UgYnl0ZSBpcyByZWplY3RlZC4KIAkgKi8KLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfVFJBTlNDTlRILCAwKTsKLQlzYmljX2FybV93cml0ZW5leHQoaG9zdC0+c2NzaS5pb19wb3J0LCAwKTsKLQlzYmljX2FybV93cml0ZW5leHQoaG9zdC0+c2NzaS5pb19wb3J0LCBtZXNzYWdlX2xlbmd0aCk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19UUkFOU0NOVEgsIDApOworCXNiaWNfYXJtX3dyaXRlbmV4dChob3N0LCAwKTsKKwlzYmljX2FybV93cml0ZW5leHQoaG9zdCwgbWVzc2FnZV9sZW5ndGgpOwogCWFjb3Juc2NzaV9zYmljX2lzc3VlY21kKGhvc3QsIENNTkRfWEZFUklORk8pOwogCiAJbXNnbnIgPSAwOwpAQCAtMTQyMSw3ICsxNDE4LDcgQEAKIHsKICAgICBhY29ybnNjc2lfc2JpY19pc3N1ZWNtZChob3N0LCBDTU5EX1hGRVJJTkZPfENNTkRfU0JUKTsKICAgICBhY29ybnNjc2lfc2JpY193YWl0KGhvc3QsIEFTUl9EQlIsIEFTUl9EQlIsIDEwMDAsICJyZWFkaW5nIHN0YXR1cyBieXRlIik7Ci0gICAgaG9zdC0+c2NzaS5TQ3AuU3RhdHVzID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfREFUQSk7CisgICAgaG9zdC0+c2NzaS5TQ3AuU3RhdHVzID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0RBVEEpOwogfQogCiAvKgpAQCAtMTQzOCwxMiArMTQzNSwxMiBAQAogCiAgICAgYWNvcm5zY3NpX3NiaWNfd2FpdChob3N0LCBBU1JfREJSLCBBU1JfREJSLCAxMDAwLCAiZm9yIG1lc3NhZ2UgYnl0ZSIpOwogCi0gICAgbWVzc2FnZSA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0RBVEEpOworICAgIG1lc3NhZ2UgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfREFUQSk7CiAKICAgICAvKiB3YWl0IGZvciBNU0dJTi1YRkVSLVBBVVNFRCAqLwogICAgIGFjb3Juc2NzaV9zYmljX3dhaXQoaG9zdCwgQVNSX0lOVCwgQVNSX0lOVCwgMTAwMCwgImZvciBpbnRlcnJ1cHQgYWZ0ZXIgbWVzc2FnZSBieXRlIik7CiAKLSAgICBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworICAgIHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19TU1IpOwogCiAgICAgcmV0dXJuIG1lc3NhZ2U7CiB9CkBAIC0xNDgwLDcgKzE0NzcsNyBAQAogCiAJICAgIC8qIHdhaXQgZm9yIG5leHQgbXNnLWluICovCiAJICAgIGFjb3Juc2NzaV9zYmljX3dhaXQoaG9zdCwgQVNSX0lOVCwgQVNSX0lOVCwgMTAwMCwgImZvciBpbnRlcnJ1cHQgYWZ0ZXIgbmVnYXRlIGFjayIpOwotCSAgICBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworCSAgICBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKTsKIAl9CiAgICAgfSB3aGlsZSAobXNnaWR4IDwgbXNnbGVuKTsKIApAQCAtMTYwMiw3ICsxNTk5LDcgQEAKIAkJICAgIGhvc3QtPmhvc3QtPmhvc3Rfbm8sIGFjb3Juc2NzaV90YXJnZXQoaG9zdCkpOwogCSAgICBob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlciA9IFNZTkNIVFJBTlNGRVJfMkRCQTsKIAkgICAgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3N0YXRlID0gU1lOQ19BU1lOQ0hST05PVVM7Ci0JICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TWU5DSFRSQU5TRkVSLCBob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlcik7CisJICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3hmZXIpOwogCSAgICBicmVhazsKIAogCWRlZmF1bHQ6CkBAIC0xNjUyLDcgKzE2NDksNyBAQAogCQlob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlciA9CiAJCQljYWxjX3N5bmNfeGZlcihwZXJpb2QgKiA0LCBsZW5ndGgpOwogCSAgICB9Ci0JICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TWU5DSFRSQU5TRkVSLCBob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlcik7CisJICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3hmZXIpOwogCSAgICBicmVhazsKICNlbHNlCiAJICAgIC8qIFdlIGRvIG5vdCBhY2NlcHQgc3luY2hyb25vdXMgdHJhbnNmZXJzLiAgUmVzcG9uZCB3aXRoIGEKQEAgLTE3OTIsMTAgKzE3ODksMTAgQEAKIAogICAgIHJlc2lkdWFsID0gc2NzaV9idWZmbGVuKGhvc3QtPlNDcG50KSAtIGhvc3QtPnNjc2kuU0NwLnNjc2lfeGZlcnJlZDsKIAotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TWU5DSFRSQU5TRkVSLCBob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlcik7Ci0gICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCwgcmVzaWR1YWwgPj4gMTYpOwotICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LT5zY3NpLmlvX3BvcnQsIHJlc2lkdWFsID4+IDgpOwotICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LT5zY3NpLmlvX3BvcnQsIHJlc2lkdWFsKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NZTkNIVFJBTlNGRVIsIGhvc3QtPmRldmljZVtob3N0LT5TQ3BudC0+ZGV2aWNlLT5pZF0uc3luY194ZmVyKTsKKyAgICBzYmljX2FybV93cml0ZW5leHQoaG9zdCwgcmVzaWR1YWwgPj4gMTYpOworICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LCByZXNpZHVhbCA+PiA4KTsKKyAgICBzYmljX2FybV93cml0ZW5leHQoaG9zdCwgcmVzaWR1YWwpOwogICAgIGFjb3Juc2NzaV9zYmljX2lzc3VlY21kKGhvc3QsIENNTkRfWEZFUklORk8pOwogICAgIHJldHVybiAxOwogfQpAQCAtMTgxNiw3ICsxODEzLDcgQEAKIHsKICAgICB1bnNpZ25lZCBpbnQgdGFyZ2V0LCBsdW4sIG9rID0gMDsKIAotICAgIHRhcmdldCA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NPVVJDRUlEKTsKKyAgICB0YXJnZXQgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU09VUkNFSUQpOwogCiAgICAgaWYgKCEodGFyZ2V0ICYgOCkpCiAJcHJpbnRrKEtFUk5fRVJSICJzY3NpJWQ6IGludmFsaWQgc291cmNlIGlkIGFmdGVyIHJlc2VsZWN0aW9uICIKQEAgLTE4MzIsNyArMTgyOSw3IEBACiAJaG9zdC0+U0NwbnQgPSBOVUxMOwogICAgIH0KIAotICAgIGx1biA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0RBVEEpICYgNzsKKyAgICBsdW4gPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfREFUQSkgJiA3OwogCiAgICAgaG9zdC0+c2NzaS5yZWNvbm5lY3RlZC50YXJnZXQgPSB0YXJnZXQ7CiAgICAgaG9zdC0+c2NzaS5yZWNvbm5lY3RlZC5sdW4gPSBsdW47CkBAIC0xOTUyLDcgKzE5NDksNyBAQAogdm9pZCBhY29ybnNjc2lfYWJvcnRjbWQoQVNfSG9zdCAqaG9zdCwgdW5zaWduZWQgY2hhciB0YWcpCiB7CiAgICAgaG9zdC0+c2NzaS5waGFzZSA9IFBIQVNFX0FCT1JURUQ7Ci0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0NNTkQsIENNTkRfQVNTRVJUQVROKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX0NNTkQsIENNTkRfQVNTRVJUQVROKTsKIAogICAgIG1zZ3F1ZXVlX2ZsdXNoKCZob3N0LT5zY3NpLm1zZ3MpOwogI2lmZGVmIENPTkZJR19TQ1NJX0FDT1JOU0NTSV9UQUdHRURfUVVFVUUKQEAgLTE5NzksMTEgKzE5NzYsMTEgQEAKIHsKICAgICB1bnNpZ25lZCBpbnQgYXNyLCBzc3I7CiAKLSAgICBhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpOworICAgIGFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOwogICAgIGlmICghKGFzciAmIEFTUl9JTlQpKQogCXJldHVybiBJTlRSX0lETEU7CiAKLSAgICBzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworICAgIHNzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19TU1IpOwogCiAjaWYgKERFQlVHICYgREVCVUdfUEhBU0VTKQogICAgIHByaW50X3NiaWNfc3RhdHVzKGFzciwgc3NyLCBob3N0LT5zY3NpLnBoYXNlKTsKQEAgLTE5OTksMTUgKzE5OTYsMTUgQEAKIAlwcmludGsoS0VSTl9FUlIgInNjc2klZDogcmVzZXQgaW4gc3RhbmRhcmQgbW9kZSBidXQgd2FudGVkIGFkdmFuY2VkIG1vZGUuXG4iLAogCQlob3N0LT5ob3N0LT5ob3N0X25vKTsKIAkvKiBzZXR1cCBzYmljIC0gV0QzM0M5M0EgKi8KLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfT1dOSUQsIE9XTklEX0VBRiB8IGhvc3QtPmhvc3QtPnRoaXNfaWQpOwotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DTU5ELCBDTU5EX1JFU0VUKTsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX09XTklELCBPV05JRF9FQUYgfCBob3N0LT5ob3N0LT50aGlzX2lkKTsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX0NNTkQsIENNTkRfUkVTRVQpOwogCXJldHVybiBJTlRSX0lETEU7CiAKICAgICBjYXNlIDB4MDE6CQkJCS8qIHJlc2V0IHN0YXRlIC0gYWR2YW5jZWQJCQkqLwotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DVFJMLCBJTklUX1NCSUNETUEgfCBDVFJMX0lESSk7Ci0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1RJTUVPVVQsIFRJTUVPVVRfVElNRSk7Ci0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NZTkNIVFJBTlNGRVIsIFNZTkNIVFJBTlNGRVJfMkRCQSk7Ci0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NPVVJDRUlELCBTT1VSQ0VJRF9FUiB8IFNPVVJDRUlEX0RTUCk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DVFJMLCBJTklUX1NCSUNETUEgfCBDVFJMX0lESSk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19USU1FT1VULCBUSU1FT1VUX1RJTUUpOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgU1lOQ0hUUkFOU0ZFUl8yREJBKTsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NPVVJDRUlELCBTT1VSQ0VJRF9FUiB8IFNPVVJDRUlEX0RTUCk7CiAJbXNncXVldWVfZmx1c2goJmhvc3QtPnNjc2kubXNncyk7CiAJcmV0dXJuIElOVFJfSURMRTsKIApAQCAtMjAyNSwxMCArMjAyMiwxMCBAQAogCSAgICBtc2dxdWV1ZV9mbHVzaCgmaG9zdC0+c2NzaS5tc2dzKTsKIAkgICAgaG9zdC0+ZG1hLnRyYW5zZmVycmVkID0gaG9zdC0+c2NzaS5TQ3Auc2NzaV94ZmVycmVkOwogCSAgICAvKiAzM0M5MyBnaXZlcyBuZXh0IGludGVycnVwdCBpbmRpY2F0aW5nIGJ1cyBwaGFzZSAqLwotCSAgICBhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpOworCSAgICBhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfQVNSKTsKIAkgICAgaWYgKCEoYXNyICYgQVNSX0lOVCkpCiAJCWJyZWFrOwotCSAgICBzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworCSAgICBzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKTsKIAkgICAgQUREX1NUQVRVUyg4LCBzc3IsIGhvc3QtPnNjc2kucGhhc2UsIDEpOwogCSAgICBBRERfU1RBVFVTKGhvc3QtPlNDcG50LT5kZXZpY2UtPmlkLCBzc3IsIGhvc3QtPnNjc2kucGhhc2UsIDEpOwogCSAgICBnb3RvIGNvbm5lY3RlZDsKQEAgLTI0NzYsMTEgKzI0NzMsMTEgQEAKICAgICBkbyB7CiAJcmV0ID0gSU5UUl9JRExFOwogCi0JaW9zdGF0dXMgPSBpbmIoaG9zdC0+Y2FyZC5pb19pbnRyKTsKKwlpb3N0YXR1cyA9IHJlYWRiKGhvc3QtPmZhc3QgKyBJTlRfUkVHKTsKIAogCWlmIChpb3N0YXR1cyAmIDIpIHsKIAkgICAgYWNvcm5zY3NpX2RtYV9pbnRyKGhvc3QpOwotCSAgICBpb3N0YXR1cyA9IGluYihob3N0LT5jYXJkLmlvX2ludHIpOworCSAgICBpb3N0YXR1cyA9IHJlYWRiKGhvc3QtPmZhc3QgKyBJTlRfUkVHKTsKIAl9CiAKIAlpZiAoaW9zdGF0dXMgJiA4KQpAQCAtMjY1NSw3ICsyNjUyLDcgQEAKIAkJICogYnVzeWx1biBiaXQuCiAJCSAqLwogCQljYXNlIFBIQVNFX0NPTk5FQ1RFRDoKLQkJCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DTU5ELCBDTU5EX0RJU0NPTk5FQ1QpOworCQkJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DTU5ELCBDTU5EX0RJU0NPTk5FQ1QpOwogCQkJaG9zdC0+U0NwbnQgPSBOVUxMOwogCQkJcmVzID0gcmVzX3N1Y2Nlc3NfY2xlYXI7CiAJCQlicmVhazsKQEAgLTI2OTksOCArMjY5Niw4IEBACiAjaWYgKERFQlVHICYgREVCVUdfQUJPUlQpCiAJewogCQlpbnQgYXNyLCBzc3I7Ci0JCWFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0FTUik7Ci0JCXNzciA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NTUik7CisJCWFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOworCQlzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKTsKIAogCQlwcmludGsoS0VSTl9XQVJOSU5HICJhY29ybnNjc2lfYWJvcnQ6ICIpOwogCQlwcmludF9zYmljX3N0YXR1cyhhc3IsIHNzciwgaG9zdC0+c2NzaS5waGFzZSk7CkBAIC0yNzMxLDkgKzI3MjgsNyBAQAogLy8jaWYgKERFQlVHICYgREVCVUdfQUJPUlQpCiAJCXByaW50aygic3VjY2Vzc1xuIik7CiAvLyNlbmRpZgotCQlTQ3BudC0+cmVzdWx0ID0gRElEX0FCT1JUIDw8IDE2OwotCQlTQ3BudC0+c2NzaV9kb25lKFNDcG50KTsKLQkJcmVzdWx0ID0gU0NTSV9BQk9SVF9TVUNDRVNTOworCQlyZXN1bHQgPSBTVUNDRVNTOwogCQlicmVhazsKIAogCS8qCkBAIC0yNzQ1LDcgKzI3NDAsNyBAQAogLy8jaWYgKERFQlVHICYgREVCVUdfQUJPUlQpCiAJCXByaW50aygic25vb3plXG4iKTsKIC8vI2VuZGlmCi0JCXJlc3VsdCA9IFNDU0lfQUJPUlRfU05PT1pFOworCQlyZXN1bHQgPSBGQUlMRUQ7CiAJCWJyZWFrOwogCiAJLyoKQEAgLTI3NTUsMTEgKzI3NTAsNyBAQAogCWRlZmF1bHQ6CiAJY2FzZSByZXNfbm90X3J1bm5pbmc6CiAJCWFjb3Juc2NzaV9kdW1wbG9nKGhvc3QsIFNDcG50LT5kZXZpY2UtPmlkKTsKLSNpZiAoREVCVUcgJiBERUJVR19BQk9SVCkKLQkJcmVzdWx0ID0gU0NTSV9BQk9SVF9TTk9PWkU7Ci0jZWxzZQotCQlyZXN1bHQgPSBTQ1NJX0FCT1JUX05PVF9SVU5OSU5HOwotI2VuZGlmCisJCXJlc3VsdCA9IEZBSUxFRDsKIC8vI2lmIChERUJVRyAmIERFQlVHX0FCT1JUKQogCQlwcmludGsoIm5vdCBydW5uaW5nXG4iKTsKIC8vI2VuZGlmCkBAIC0yNzcwLDEzICsyNzYxLDEyIEBACiB9CiAKIC8qCi0gKiBQcm90b3R5cGU6IGludCBhY29ybnNjc2lfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQsIHVuc2lnbmVkIGludCByZXNldF9mbGFncykKKyAqIFByb3RvdHlwZTogaW50IGFjb3Juc2NzaV9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCkKICAqIFB1cnBvc2UgIDogcmVzZXQgYSBjb21tYW5kIG9uIHRoaXMgaG9zdC9yZXNldCB0aGlzIGhvc3QKICAqIFBhcmFtcyAgIDogU0NwbnQgIC0gY29tbWFuZCBjYXVzaW5nIHJlc2V0Ci0gKgkgICAgICByZXN1bHQgLSB3aGF0IHR5cGUgb2YgcmVzZXQgdG8gcGVyZm9ybQogICogUmV0dXJucyAgOiBvbmUgb2YgU0NTSV9SRVNFVF8gbWFjcm9zCiAgKi8KLWludCBhY29ybnNjc2lfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQsIHVuc2lnbmVkIGludCByZXNldF9mbGFncykKK2ludCBhY29ybnNjc2lfYnVzX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50KQogewogCUFTX0hvc3QgKmhvc3QgPSAoQVNfSG9zdCAqKVNDcG50LT5kZXZpY2UtPmhvc3QtPmhvc3RkYXRhOwogCXN0cnVjdCBzY3NpX2NtbmQgKlNDcHRyOwpAQCAtMjc4Nyw4ICsyNzc3LDggQEAKICAgICB7CiAJaW50IGFzciwgc3NyOwogCi0JYXNyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKLQlzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworCWFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOworCXNzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19TU1IpOwogCiAJcHJpbnRrKEtFUk5fV0FSTklORyAiYWNvcm5zY3NpX3Jlc2V0OiAiKTsKIAlwcmludF9zYmljX3N0YXR1cyhhc3IsIHNzciwgaG9zdC0+c2NzaS5waGFzZSk7CkBAIC0yNzk4LDI4ICsyNzg4LDE2IEBACiAKICAgICBhY29ybnNjc2lfZG1hX3N0b3AoaG9zdCk7CiAKLSAgICBTQ3B0ciA9IGhvc3QtPlNDcG50OwotCiAgICAgLyoKICAgICAgKiBkbyBoYXJkIHJlc2V0LiAgVGhpcyByZXNldHMgYWxsIGRldmljZXMgb24gdGhpcyBob3N0LCBhbmQgc28gd2UKICAgICAgKiBtdXN0IHNldCB0aGUgcmVzZXQgc3RhdHVzIG9uIGFsbCBjb21tYW5kcy4KICAgICAgKi8KICAgICBhY29ybnNjc2lfcmVzZXRjYXJkKGhvc3QpOwogCi0gICAgLyoKLSAgICAgKiByZXBvcnQgcmVzZXQgb24gY29tbWFuZHMgY3VycmVudCBjb25uZWN0ZWQvZGlzY29ubmVjdGVkCi0gICAgICovCi0gICAgYWNvcm5zY3NpX3JlcG9ydHN0YXR1cygmaG9zdC0+U0NwbnQsICZTQ3B0ciwgRElEX1JFU0VUKTsKLQogICAgIHdoaWxlICgoU0NwdHIgPSBxdWV1ZV9yZW1vdmUoJmhvc3QtPnF1ZXVlcy5kaXNjb25uZWN0ZWQpKSAhPSBOVUxMKQotCWFjb3Juc2NzaV9yZXBvcnRzdGF0dXMoJlNDcHRyLCAmU0NwbnQsIERJRF9SRVNFVCk7CisJOwogCi0gICAgaWYgKFNDcG50KSB7Ci0JU0NwbnQtPnJlc3VsdCA9IERJRF9SRVNFVCA8PCAxNjsKLQlTQ3BudC0+c2NzaV9kb25lKFNDcG50KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gU0NTSV9SRVNFVF9CVVNfUkVTRVQgfCBTQ1NJX1JFU0VUX0hPU1RfUkVTRVQgfCBTQ1NJX1JFU0VUX1NVQ0NFU1M7CisgICAgcmV0dXJuIFNVQ0NFU1M7CiB9CiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjg1MCw3ICsyODI4LDcgQEAKICAgICAiIExJTksiCiAjZW5kaWYKICNpZiAoREVCVUcgJiBERUJVR19OT19XUklURSkKLSAgICAiIE5PV1JJVEUgKCJOT19XUklURV9TVFIiKSIKKyAgICAiIE5PV1JJVEUgKCIgX19zdHJpbmdpZnkoTk9fV1JJVEUpICIpIgogI2VuZGlmCiAJCSwgaG9zdC0+aG9zdHQtPm5hbWUsIGhvc3QtPmlvX3BvcnQsIGhvc3QtPmlycSwKIAkJVkVSX01BSk9SLCBWRVJfTUlOT1IsIFZFUl9QQVRDSCk7CkBAIC0yODgxLDE1ICsyODU5LDE1IEBACiAgICAgIiBMSU5LIgogI2VuZGlmCiAjaWYgKERFQlVHICYgREVCVUdfTk9fV1JJVEUpCi0gICAgIiBOT1dSSVRFICgiTk9fV1JJVEVfU1RSIikiCisgICAgIiBOT1dSSVRFICgiIF9fc3RyaW5naWZ5KE5PX1dSSVRFKSAiKSIKICNlbmRpZgogCQkiXG5cbiIsIFZFUl9NQUpPUiwgVkVSX01JTk9SLCBWRVJfUEFUQ0gpOwogCi0gICAgcCArPSBzcHJpbnRmKHAsCSJTQklDOiBXRDMzQzkzQSAgQWRkcmVzczogJTA4WCAgSVJRIDogJWRcbiIsCi0JCQlob3N0LT5zY3NpLmlvX3BvcnQsIGhvc3QtPnNjc2kuaXJxKTsKKyAgICBwICs9IHNwcmludGYocCwJIlNCSUM6IFdEMzNDOTNBICBBZGRyZXNzOiAlcCAgICBJUlEgOiAlZFxuIiwKKwkJCWhvc3QtPmJhc2UgKyBTQklDX1JFR0lEWCwgaG9zdC0+c2NzaS5pcnEpOwogI2lmZGVmIFVTRV9ETUFDCi0gICAgcCArPSBzcHJpbnRmKHAsCSJETUFDOiB1UEM3MTA3MSAgQWRkcmVzczogJTA4WCAgSVJRIDogJWRcblxuIiwKLQkJCWhvc3QtPmRtYS5pb19wb3J0LCBob3N0LT5zY3NpLmlycSk7CisgICAgcCArPSBzcHJpbnRmKHAsCSJETUFDOiB1UEM3MTA3MSAgQWRkcmVzczogJXAgIElSUSA6ICVkXG5cbiIsCisJCQlob3N0LT5iYXNlICsgRE1BQ19PRkZTRVQsIGhvc3QtPnNjc2kuaXJxKTsKICNlbmRpZgogCiAgICAgcCArPSBzcHJpbnRmKHAsCSJTdGF0aXN0aWNzOlxuIgpAQCAtMjk3Niw5ICsyOTU0LDggQEAKIAkubmFtZQkJCT0gIkFjb3JuU0NTSSIsCiAJLmluZm8JCQk9IGFjb3Juc2NzaV9pbmZvLAogCS5xdWV1ZWNvbW1hbmQJCT0gYWNvcm5zY3NpX3F1ZXVlY21kLAotI3dhcm5pbmcgZml4bWUKLQkuYWJvcnQJCQk9IGFjb3Juc2NzaV9hYm9ydCwKLQkucmVzZXQJCQk9IGFjb3Juc2NzaV9yZXNldCwKKwkuZWhfYWJvcnRfaGFuZGxlcgk9IGFjb3Juc2NzaV9hYm9ydCwKKwkuZWhfYnVzX3Jlc2V0X2hhbmRsZXIJPSBhY29ybnNjc2lfYnVzX3Jlc2V0LAogCS5jYW5fcXVldWUJCT0gMTYsCiAJLnRoaXNfaWQJCT0gNywKIAkuc2dfdGFibGVzaXplCQk9IFNHX0FMTCwKQEAgLTI5OTIsNDggKzI5NjksMzcgQEAKIHsKIAlzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0OwogCUFTX0hvc3QgKmFzaG9zdDsKLQlpbnQgcmV0ID0gLUVOT01FTTsKKwlpbnQgcmV0OworCisJcmV0ID0gZWNhcmRfcmVxdWVzdF9yZXNvdXJjZXMoZWMpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OwogCiAJaG9zdCA9IHNjc2lfaG9zdF9hbGxvYygmYWNvcm5zY3NpX3RlbXBsYXRlLCBzaXplb2YoQVNfSG9zdCkpOwotCWlmICghaG9zdCkKLQkJZ290byBvdXQ7CisJaWYgKCFob3N0KSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X3JlbGVhc2U7CisJfQogCiAJYXNob3N0ID0gKEFTX0hvc3QgKilob3N0LT5ob3N0ZGF0YTsKIAotCWhvc3QtPmlvX3BvcnQgPSBlY2FyZF9hZGRyZXNzKGVjLCBFQ0FSRF9NRU1DLCAwKTsKKwlhc2hvc3QtPmJhc2UgPSBlY2FyZG1faW9tYXAoZWMsIEVDQVJEX1JFU19NRU1DLCAwLCAwKTsKKwlhc2hvc3QtPmZhc3QgPSBlY2FyZG1faW9tYXAoZWMsIEVDQVJEX1JFU19JT0NGQVNULCAwLCAwKTsKKwlpZiAoIWFzaG9zdC0+YmFzZSB8fCAhYXNob3N0LT5mYXN0KQorCQlnb3RvIG91dF9wdXQ7CisKIAlob3N0LT5pcnEgPSBlYy0+aXJxOworCWFzaG9zdC0+aG9zdCA9IGhvc3Q7CisJYXNob3N0LT5zY3NpLmlycSA9IGhvc3QtPmlycTsKIAotCWFzaG9zdC0+aG9zdAkJPSBob3N0OwotCWFzaG9zdC0+c2NzaS5pb19wb3J0CT0gaW9hZGRyKGhvc3QtPmlvX3BvcnQgKyAweDgwMCk7Ci0JYXNob3N0LT5zY3NpLmlycQk9IGhvc3QtPmlycTsKLQlhc2hvc3QtPmNhcmQuaW9faW50cgk9IFBPRF9TUEFDRShob3N0LT5pb19wb3J0KSArIDB4ODAwOwotCWFzaG9zdC0+Y2FyZC5pb19wYWdlCT0gUE9EX1NQQUNFKGhvc3QtPmlvX3BvcnQpICsgMHhjMDA7Ci0JYXNob3N0LT5jYXJkLmlvX3JhbQk9IGlvYWRkcihob3N0LT5pb19wb3J0KTsKLQlhc2hvc3QtPmRtYS5pb19wb3J0CT0gaG9zdC0+aW9fcG9ydCArIDB4YzAwOwotCWFzaG9zdC0+ZG1hLmlvX2ludHJfY2xlYXIgPSBQT0RfU1BBQ0UoaG9zdC0+aW9fcG9ydCkgKyAweDgwMDsKLQotCWVjLT5pcnFhZGRyCT0gKGNoYXIgKilpb2FkZHIoYXNob3N0LT5jYXJkLmlvX2ludHIpOworCWVjLT5pcnFhZGRyCT0gYXNob3N0LT5mYXN0ICsgSU5UX1JFRzsKIAllYy0+aXJxbWFzawk9IDB4MGE7CiAKLQlyZXQgPSAtRUJVU1k7Ci0JaWYgKCFyZXF1ZXN0X3JlZ2lvbihob3N0LT5pb19wb3J0ICsgMHg4MDAsIDIsICJhY29ybnNjc2koc2JpYykiKSkKLQkJZ290byBlcnJfMTsKLQlpZiAoIXJlcXVlc3RfcmVnaW9uKGFzaG9zdC0+Y2FyZC5pb19pbnRyLCAxLCAiYWNvcm5zY3NpKGludHIpIikpCi0JCWdvdG8gZXJyXzI7Ci0JaWYgKCFyZXF1ZXN0X3JlZ2lvbihhc2hvc3QtPmNhcmQuaW9fcGFnZSwgMSwgImFjb3Juc2NzaShwYWdlKSIpKQotCQlnb3RvIGVycl8zOwotI2lmZGVmIFVTRV9ETUFDCi0JaWYgKCFyZXF1ZXN0X3JlZ2lvbihhc2hvc3QtPmRtYS5pb19wb3J0LCAyNTYsICJhY29ybnNjc2koZG1hYykiKSkKLQkJZ290byBlcnJfNDsKLSNlbmRpZgotCWlmICghcmVxdWVzdF9yZWdpb24oaG9zdC0+aW9fcG9ydCwgMjA0OCwgImFjb3Juc2NzaShyYW0pIikpCi0JCWdvdG8gZXJyXzU7Ci0KIAlyZXQgPSByZXF1ZXN0X2lycShob3N0LT5pcnEsIGFjb3Juc2NzaV9pbnRyLCBJUlFGX0RJU0FCTEVELCAiYWNvcm5zY3NpIiwgYXNob3N0KTsKIAlpZiAocmV0KSB7CiAJCXByaW50ayhLRVJOX0NSSVQgInNjc2klZDogSVJRJWQgbm90IGZyZWU6ICVkXG4iLAogCQkJaG9zdC0+aG9zdF9ubywgYXNob3N0LT5zY3NpLmlycSwgcmV0KTsKLQkJZ290byBlcnJfNjsKKwkJZ290byBvdXRfcHV0OwogCX0KIAogCW1lbXNldCgmYXNob3N0LT5zdGF0cywgMCwgc2l6ZW9mIChhc2hvc3QtPnN0YXRzKSk7CkBAIC0zMDQ1LDI3ICszMDExLDIyIEBACiAKIAlyZXQgPSBzY3NpX2FkZF9ob3N0KGhvc3QsICZlYy0+ZGV2KTsKIAlpZiAocmV0KQotCQlnb3RvIGVycl83OworCQlnb3RvIG91dF9pcnE7CiAKIAlzY3NpX3NjYW5faG9zdChob3N0KTsKIAlnb3RvIG91dDsKIAotIGVycl83OgorIG91dF9pcnE6CiAJZnJlZV9pcnEoaG9zdC0+aXJxLCBhc2hvc3QpOwotIGVycl82OgotCXJlbGVhc2VfcmVnaW9uKGhvc3QtPmlvX3BvcnQsIDIwNDgpOwotIGVycl81OgotI2lmZGVmIFVTRV9ETUFDCi0JcmVsZWFzZV9yZWdpb24oYXNob3N0LT5kbWEuaW9fcG9ydCwgMjU2KTsKLSNlbmRpZgotIGVycl80OgotCXJlbGVhc2VfcmVnaW9uKGFzaG9zdC0+Y2FyZC5pb19wYWdlLCAxKTsKLSBlcnJfMzoKLQlyZWxlYXNlX3JlZ2lvbihhc2hvc3QtPmNhcmQuaW9faW50ciwgMSk7ICAgIAotIGVycl8yOgotCXJlbGVhc2VfcmVnaW9uKGhvc3QtPmlvX3BvcnQgKyAweDgwMCwgMik7Ci0gZXJyXzE6CisJbXNncXVldWVfZnJlZSgmYXNob3N0LT5zY3NpLm1zZ3MpOworCXF1ZXVlX2ZyZWUoJmFzaG9zdC0+cXVldWVzLmRpc2Nvbm5lY3RlZCk7CisJcXVldWVfZnJlZSgmYXNob3N0LT5xdWV1ZXMuaXNzdWUpOworIG91dF9wdXQ6CisJZWNhcmRtX2lvdW5tYXAoZWMsIGFzaG9zdC0+ZmFzdCk7CisJZWNhcmRtX2lvdW5tYXAoZWMsIGFzaG9zdC0+YmFzZSk7CiAJc2NzaV9ob3N0X3B1dChob3N0KTsKKyBvdXRfcmVsZWFzZToKKwllY2FyZF9yZWxlYXNlX3Jlc291cmNlcyhlYyk7CiAgb3V0OgogCXJldHVybiByZXQ7CiB9CkBAIC0zMDgxLDIwICszMDQyLDE3IEBACiAJLyoKIAkgKiBQdXQgY2FyZCBpbnRvIFJFU0VUIHN0YXRlCiAJICovCi0Jb3V0YigweDgwLCBhc2hvc3QtPmNhcmQuaW9fcGFnZSk7CisJd3JpdGViKDB4ODAsIGFzaG9zdC0+ZmFzdCArIFBBR0VfUkVHKTsKIAogCWZyZWVfaXJxKGhvc3QtPmlycSwgYXNob3N0KTsKIAotCXJlbGVhc2VfcmVnaW9uKGhvc3QtPmlvX3BvcnQgKyAweDgwMCwgMik7Ci0JcmVsZWFzZV9yZWdpb24oYXNob3N0LT5jYXJkLmlvX2ludHIsIDEpOwotCXJlbGVhc2VfcmVnaW9uKGFzaG9zdC0+Y2FyZC5pb19wYWdlLCAxKTsKLQlyZWxlYXNlX3JlZ2lvbihhc2hvc3QtPmRtYS5pb19wb3J0LCAyNTYpOwotCXJlbGVhc2VfcmVnaW9uKGhvc3QtPmlvX3BvcnQsIDIwNDgpOwotCiAJbXNncXVldWVfZnJlZSgmYXNob3N0LT5zY3NpLm1zZ3MpOwogCXF1ZXVlX2ZyZWUoJmFzaG9zdC0+cXVldWVzLmRpc2Nvbm5lY3RlZCk7CiAJcXVldWVfZnJlZSgmYXNob3N0LT5xdWV1ZXMuaXNzdWUpOworCWVjYXJkbV9pb3VubWFwKGVjLCBhc2hvc3QtPmZhc3QpOworCWVjYXJkbV9pb3VubWFwKGVjLCBhc2hvc3QtPmJhc2UpOwogCXNjc2lfaG9zdF9wdXQoaG9zdCk7CisJZWNhcmRfcmVsZWFzZV9yZXNvdXJjZXMoZWMpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGVjYXJkX2lkIGFjb3Juc2NzaV9jaWRzW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5oIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuaAppbmRleCBkMTE0MjRiLi44ZDIxNzJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5oCisrKyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmgKQEAgLTE3OSw3ICsxNzksNiBAQAogCiAvKiBtaXNjZWxsYW5lb3VzIGludGVybmFsIHZhcmlhYmxlcyAqLwogCi0jZGVmaW5lIFBPRF9TUEFDRSh4KQkoKHgpICsgMHhkMDAwMCkKICNkZWZpbmUgTUFTS19PTgkJKE1BU0tSRUdfTTN8TUFTS1JFR19NMnxNQVNLUkVHX00xfE1BU0tSRUdfTTApCiAjZGVmaW5lIE1BU0tfT0ZGCShNQVNLUkVHX00zfE1BU0tSRUdfTTJ8TUFTS1JFR19NMSkKIApAQCAtMjc5LDEwICsyNzgsMTEgQEAKICAgICBzdHJ1Y3QgU2NzaV9Ib3N0CSpob3N0OwkJCS8qIGhvc3QJCQkJCSovCiAgICAgc3RydWN0IHNjc2lfY21uZAkqU0NwbnQ7CQkJLyogY3VycmVudGx5IHByb2Nlc3NpbmcgY29tbWFuZAkJKi8KICAgICBzdHJ1Y3Qgc2NzaV9jbW5kCSpvcmlnU0NwbnQ7CQkvKiBvcmlnaW5hbCBjb25uZWN0aW5nIGNvbW1hbmQJCSovCisgICAgdm9pZCBfX2lvbWVtCSpiYXNlOwkJCS8qIG1lbWMgYmFzZSBhZGRyZXNzIAkJCSovCisgICAgdm9pZCBfX2lvbWVtCSpmYXN0OwkJCS8qIGZhc3QgaW9jIGJhc2UgYWRkcmVzcwkJKi8KIAogICAgIC8qIGRyaXZlciBpbmZvcm1hdGlvbiAqLwogICAgIHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50CWlvX3BvcnQ7CQkvKiBiYXNlIGFkZHJlc3Mgb2YgV0QzM0M5MwkJKi8KIAl1bnNpZ25lZCBpbnQJaXJxOwkJCS8qIGludGVycnVwdAkJCQkqLwogCXBoYXNlX3QJCXBoYXNlOwkJCS8qIGN1cnJlbnQgcGhhc2UJCQkqLwogCkBAIC0zMjksOCArMzI5LDYgQEAKIAogICAgIC8qIERNQSBpbmZvICovCiAgICAgc3RydWN0IHsKLQl1bnNpZ25lZCBpbnQJaW9fcG9ydDsJCS8qIGJhc2UgYWRkcmVzcyBvZiBETUEgY29udHJvbGxlcgkqLwotCXVuc2lnbmVkIGludAlpb19pbnRyX2NsZWFyOwkJLyogYWRkcmVzcyBvZiBETUEgaW50ZXJydXB0IGNsZWFyCSovCiAJdW5zaWduZWQgaW50CWZyZWVfYWRkcjsJCS8qIG5leHQgZnJlZSBhZGRyZXNzCQkJKi8KIAl1bnNpZ25lZCBpbnQJc3RhcnRfYWRkcjsJCS8qIHN0YXJ0IGFkZHJlc3Mgb2YgY3VycmVudCB0cmFuc2ZlcgkqLwogCWRtYWRpcl90CWRpcmVjdGlvbjsJCS8qIGRtYSBkaXJlY3Rpb24JCQkqLwpAQCAtMzQ1LDkgKzM0Myw2IEBACiAKICAgICAvKiBjYXJkIGluZm8gKi8KICAgICBzdHJ1Y3QgewotCXVuc2lnbmVkIGludAlpb19pbnRyOwkJLyogYmFzZSBhZGRyZXNzIG9mIGludGVycnVwdCBpZCByZWcJKi8KLQl1bnNpZ25lZCBpbnQJaW9fcGFnZTsJCS8qIGJhc2UgYWRkcmVzcyBvZiBwYWdlIHJlZwkJKi8KLQl1bnNpZ25lZCBpbnQJaW9fcmFtOwkJCS8qIGJhc2UgYWRkcmVzcyBvZiBSQU0gYWNjZXNzCQkqLwogCXVuc2lnbmVkIGNoYXIJcGFnZV9yZWc7CQkvKiBjdXJyZW50IHNldHRpbmcgb2YgcGFnZSByZWcJCSovCiAgICAgfSBjYXJkOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvY2guYyBiL2RyaXZlcnMvc2NzaS9jaC5jCmluZGV4IGM0YjkzOGIuLmFhMjAxMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9jaC5jCisrKyBiL2RyaXZlcnMvc2NzaS9jaC5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvY2hpby5oPgkJCS8qIGhlcmUgYXJlIGFsbCB0aGUgaW9jdGxzICovCiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9pZHIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpX2NtbmQuaD4KQEAgLTU3MSwxNiArNTcyLDE5IEBACiAJc2NzaV9jaGFuZ2VyICpjaDsKIAlpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOwogCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2soJmNoX2luZGV4X2xvY2spOwogCWNoID0gaWRyX2ZpbmQoJmNoX2luZGV4X2lkciwgbWlub3IpOwogCiAJaWYgKE5VTEwgPT0gY2ggfHwgc2NzaV9kZXZpY2VfZ2V0KGNoLT5kZXZpY2UpKSB7CiAJCXNwaW5fdW5sb2NrKCZjaF9pbmRleF9sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOWElPOwogCX0KIAlzcGluX3VubG9jaygmY2hfaW5kZXhfbG9jayk7CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBjaDsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9kcHRfaTJvLmMgYi9kcml2ZXJzL3Njc2kvZHB0X2kyby5jCmluZGV4IDg1MDg4MTYuLjJiYzMwZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9kcHRfaTJvLmMKKysrIGIvZHJpdmVycy9zY3NpL2RwdF9pMm8uYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgkvKiBmb3IgcHJpbnRrICovCiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KIApAQCAtMTcyNywxMCArMTcyOCwxMiBAQAogCWludCBtaW5vcjsKIAlhZHB0X2hiYSogcEhiYTsKIAorCWxvY2tfa2VybmVsKCk7CiAJLy9UT0RPIGNoZWNrIGZvciByb290IGFjY2VzcwogCS8vCiAJbWlub3IgPSBpbWlub3IoaW5vZGUpOwogCWlmIChtaW5vciA+PSBoYmFfY291bnQpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOWElPOwogCX0KIAltdXRleF9sb2NrKCZhZHB0X2NvbmZpZ3VyYXRpb25fbG9jayk7CkBAIC0xNzQxLDYgKzE3NDQsNyBAQAogCX0KIAlpZiAocEhiYSA9PSBOVUxMKSB7CiAJCW11dGV4X3VubG9jaygmYWRwdF9jb25maWd1cmF0aW9uX2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5YSU87CiAJfQogCkBAIC0xNzUxLDYgKzE3NTUsNyBAQAogCiAJcEhiYS0+aW5fdXNlID0gMTsKIAltdXRleF91bmxvY2soJmFkcHRfY29uZmlndXJhdGlvbl9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9lc3Bfc2NzaS5jIGIvZHJpdmVycy9zY3NpL2VzcF9zY3NpLmMKaW5kZXggYTBiNmQ0MS4uNTlmYmVmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2VzcF9zY3NpLmMKKysrIGIvZHJpdmVycy9zY3NpL2VzcF9zY3NpLmMKQEAgLTIzNTksNiArMjM1OSwyNCBAQAogfQogRVhQT1JUX1NZTUJPTChzY3NpX2VzcF91bnJlZ2lzdGVyKTsKIAorc3RhdGljIGludCBlc3BfdGFyZ2V0X2FsbG9jKHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCkKK3sKKwlzdHJ1Y3QgZXNwICplc3AgPSBzaG9zdF9wcml2KGRldl90b19zaG9zdCgmc3RhcmdldC0+ZGV2KSk7CisJc3RydWN0IGVzcF90YXJnZXRfZGF0YSAqdHAgPSAmZXNwLT50YXJnZXRbc3RhcmdldC0+aWRdOworCisJdHAtPnN0YXJnZXQgPSBzdGFyZ2V0OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGVzcF90YXJnZXRfZGVzdHJveShzdHJ1Y3Qgc2NzaV90YXJnZXQgKnN0YXJnZXQpCit7CisJc3RydWN0IGVzcCAqZXNwID0gc2hvc3RfcHJpdihkZXZfdG9fc2hvc3QoJnN0YXJnZXQtPmRldikpOworCXN0cnVjdCBlc3BfdGFyZ2V0X2RhdGEgKnRwID0gJmVzcC0+dGFyZ2V0W3N0YXJnZXQtPmlkXTsKKworCXRwLT5zdGFyZ2V0ID0gTlVMTDsKK30KKwogc3RhdGljIGludCBlc3Bfc2xhdmVfYWxsb2Moc3RydWN0IHNjc2lfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGVzcCAqZXNwID0gc2hvc3RfcHJpdihkZXYtPmhvc3QpOwpAQCAtMjM3MCw4ICsyMzg4LDYgQEAKIAkJcmV0dXJuIC1FTk9NRU07CiAJZGV2LT5ob3N0ZGF0YSA9IGxwOwogCi0JdHAtPnN0YXJnZXQgPSBkZXYtPnNkZXZfdGFyZ2V0OwotCiAJc3BpX21pbl9wZXJpb2QodHAtPnN0YXJnZXQpID0gZXNwLT5taW5fcGVyaW9kOwogCXNwaV9tYXhfb2Zmc2V0KHRwLT5zdGFyZ2V0KSA9IDE1OwogCkBAIC0yNjA4LDYgKzI2MjQsOCBAQAogCS5uYW1lCQkJPSAiZXNwIiwKIAkuaW5mbwkJCT0gZXNwX2luZm8sCiAJLnF1ZXVlY29tbWFuZAkJPSBlc3BfcXVldWVjb21tYW5kLAorCS50YXJnZXRfYWxsb2MJCT0gZXNwX3RhcmdldF9hbGxvYywKKwkudGFyZ2V0X2Rlc3Ryb3kJCT0gZXNwX3RhcmdldF9kZXN0cm95LAogCS5zbGF2ZV9hbGxvYwkJPSBlc3Bfc2xhdmVfYWxsb2MsCiAJLnNsYXZlX2NvbmZpZ3VyZQk9IGVzcF9zbGF2ZV9jb25maWd1cmUsCiAJLnNsYXZlX2Rlc3Ryb3kJCT0gZXNwX3NsYXZlX2Rlc3Ryb3ksCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZ2R0aC5jIGIvZHJpdmVycy9zY3NpL2dkdGguYwppbmRleCA0Njc3MWQ0Li44MjJkNTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZ2R0aC5jCisrKyBiL2RyaXZlcnMvc2NzaS9nZHRoLmMKQEAgLTEyMCw2ICsxMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2lmZGVmIEdEVEhfUlRDCiAjaW5jbHVkZSA8bGludXgvbWMxNDY4MThydGMuaD4KQEAgLTQwMTksMTAgKzQwMjAsMTIgQEAKIHsKICAgICBnZHRoX2hhX3N0ciAqaGE7CiAKKyAgICBsb2NrX2tlcm5lbCgpOwogICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoaGEsICZnZHRoX2luc3RhbmNlcywgbGlzdCkgewogICAgICAgICBpZiAoIWhhLT5zZGV2KQogICAgICAgICAgICAgaGEtPnNkZXYgPSBzY3NpX2dldF9ob3N0X2RldihoYS0+c2hvc3QpOwogICAgIH0KKyAgICB1bmxvY2tfa2VybmVsKCk7CiAKICAgICBUUkFDRSgoImdkdGhfb3BlbigpXG4iKSk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaWRlLXNjc2kuYyBiL2RyaXZlcnMvc2NzaS9pZGUtc2NzaS5jCmluZGV4IDQ0ZDhkNTEuLjY4M2JjZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9pZGUtc2NzaS5jCisrKyBiL2RyaXZlcnMvc2NzaS9pZGUtc2NzaS5jCkBAIC02MCw2ICs2MCwxMyBAQAogCiAjZGVmaW5lIElERVNDU0lfREVCVUdfTE9HCQkwCiAKKyNpZiBJREVTQ1NJX0RFQlVHX0xPRworI2RlZmluZSBkZWJ1Z19sb2coZm10LCBhcmdzLi4uKSBcCisJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXNjc2k6ICIgZm10LCAjIyBhcmdzKQorI2Vsc2UKKyNkZWZpbmUgZGVidWdfbG9nKGZtdCwgYXJncy4uLikgZG8ge30gd2hpbGUgKDApCisjZW5kaWYKKwogLyoKICAqCVNDU0kgY29tbWFuZCB0cmFuc2Zvcm1hdGlvbiBsYXllcgogICovCkBAIC0xMjksMTQgKzEzNiwxNSBAQAogI2RlZmluZSBJREVTQ1NJX1BDX1JRCQkJOTAKIAogLyoKLSAqCVBJTyBkYXRhIHRyYW5zZmVyIHJvdXRpbmVzIHVzaW5nIHRoZSBzY2F0dGVyIGdhdGhlciB0YWJsZS4KKyAqCVBJTyBkYXRhIHRyYW5zZmVyIHJvdXRpbmUgdXNpbmcgdGhlIHNjYXR0ZXIgZ2F0aGVyIHRhYmxlLgogICovCi1zdGF0aWMgdm9pZCBpZGVzY3NpX2lucHV0X2J1ZmZlcnMoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYywKLQkJdW5zaWduZWQgaW50IGJjb3VudCkKK3N0YXRpYyB2b2lkIGlkZV9zY3NpX2lvX2J1ZmZlcnMoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYywKKwkJCQl1bnNpZ25lZCBpbnQgYmNvdW50LCBpbnQgd3JpdGUpCiB7CiAJaWRlX2h3aWZfdCAqaHdpZiA9IGRyaXZlLT5od2lmOwotCWludCBjb3VudDsKKwl4ZmVyX2Z1bmNfdCAqeGYgPSB3cml0ZSA/IGh3aWYtPm91dHB1dF9kYXRhIDogaHdpZi0+aW5wdXRfZGF0YTsKIAljaGFyICpidWY7CisJaW50IGNvdW50OwogCiAJd2hpbGUgKGJjb3VudCkgewogCQljb3VudCA9IG1pbihwYy0+c2ctPmxlbmd0aCAtIHBjLT5iX2NvdW50LCBiY291bnQpOwpAQCAtMTQ1LDEzICsxNTMsMTMgQEAKIAogCQkJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCQkJYnVmID0ga21hcF9hdG9taWMoc2dfcGFnZShwYy0+c2cpLCBLTV9JUlEwKSArCi0JCQkJCXBjLT5zZy0+b2Zmc2V0OwotCQkJaHdpZi0+aW5wdXRfZGF0YShkcml2ZSwgTlVMTCwgYnVmICsgcGMtPmJfY291bnQsIGNvdW50KTsKKwkJCQkJICBwYy0+c2ctPm9mZnNldDsKKwkJCXhmKGRyaXZlLCBOVUxMLCBidWYgKyBwYy0+Yl9jb3VudCwgY291bnQpOwogCQkJa3VubWFwX2F0b21pYyhidWYgLSBwYy0+c2ctPm9mZnNldCwgS01fSVJRMCk7CiAJCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiAJCX0gZWxzZSB7CiAJCQlidWYgPSBzZ192aXJ0KHBjLT5zZyk7Ci0JCQlod2lmLT5pbnB1dF9kYXRhKGRyaXZlLCBOVUxMLCBidWYgKyBwYy0+Yl9jb3VudCwgY291bnQpOworCQkJeGYoZHJpdmUsIE5VTEwsIGJ1ZiArIHBjLT5iX2NvdW50LCBjb3VudCk7CiAJCX0KIAkJYmNvdW50IC09IGNvdW50OyBwYy0+Yl9jb3VudCArPSBjb3VudDsKIAkJaWYgKHBjLT5iX2NvdW50ID09IHBjLT5zZy0+bGVuZ3RoKSB7CkBAIC0xNjMsNDUgKzE3MSwxMCBAQAogCX0KIAogCWlmIChiY291bnQpIHsKLQkJcHJpbnRrIChLRVJOX0VSUiAiaWRlLXNjc2k6IHNjYXR0ZXIgZ2F0aGVyIHRhYmxlIHRvbyBzbWFsbCwgZGlzY2FyZGluZyBkYXRhXG4iKTsKLQkJaWRlX3BhZF90cmFuc2Zlcihkcml2ZSwgMCwgYmNvdW50KTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIGlkZXNjc2lfb3V0cHV0X2J1ZmZlcnMoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYywKLQkJdW5zaWduZWQgaW50IGJjb3VudCkKLXsKLQlpZGVfaHdpZl90ICpod2lmID0gZHJpdmUtPmh3aWY7Ci0JaW50IGNvdW50OwotCWNoYXIgKmJ1ZjsKLQotCXdoaWxlIChiY291bnQpIHsKLQkJY291bnQgPSBtaW4ocGMtPnNnLT5sZW5ndGggLSBwYy0+Yl9jb3VudCwgYmNvdW50KTsKLQkJaWYgKFBhZ2VIaWdoTWVtKHNnX3BhZ2UocGMtPnNnKSkpIHsKLQkJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQkJCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQkJCWJ1ZiA9IGttYXBfYXRvbWljKHNnX3BhZ2UocGMtPnNnKSwgS01fSVJRMCkgKwotCQkJCQkJcGMtPnNnLT5vZmZzZXQ7Ci0JCQlod2lmLT5vdXRwdXRfZGF0YShkcml2ZSwgTlVMTCwgYnVmICsgcGMtPmJfY291bnQsIGNvdW50KTsKLQkJCWt1bm1hcF9hdG9taWMoYnVmIC0gcGMtPnNnLT5vZmZzZXQsIEtNX0lSUTApOwotCQkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCQl9IGVsc2UgewotCQkJYnVmID0gc2dfdmlydChwYy0+c2cpOwotCQkJaHdpZi0+b3V0cHV0X2RhdGEoZHJpdmUsIE5VTEwsIGJ1ZiArIHBjLT5iX2NvdW50LCBjb3VudCk7Ci0JCX0KLQkJYmNvdW50IC09IGNvdW50OyBwYy0+Yl9jb3VudCArPSBjb3VudDsKLQkJaWYgKHBjLT5iX2NvdW50ID09IHBjLT5zZy0+bGVuZ3RoKSB7Ci0JCQlpZiAoIS0tcGMtPnNnX2NudCkKLQkJCQlicmVhazsKLQkJCXBjLT5zZyA9IHNnX25leHQocGMtPnNnKTsKLQkJCXBjLT5iX2NvdW50ID0gMDsKLQkJfQotCX0KLQotCWlmIChiY291bnQpIHsKLQkJcHJpbnRrIChLRVJOX0VSUiAiaWRlLXNjc2k6IHNjYXR0ZXIgZ2F0aGVyIHRhYmxlIHRvbyBzbWFsbCwgcGFkZGluZyB3aXRoIHplcm9zXG4iKTsKLQkJaWRlX3BhZF90cmFuc2Zlcihkcml2ZSwgMSwgYmNvdW50KTsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogc2NhdHRlciBnYXRoZXIgdGFibGUgdG9vIHNtYWxsLCAlc1xuIiwKKwkJCQlkcml2ZS0+bmFtZSwgd3JpdGUgPyAicGFkZGluZyB3aXRoIHplcm9zIgorCQkJCQkJICAgOiAiZGlzY2FyZGluZyBkYXRhIik7CisJCWlkZV9wYWRfdHJhbnNmZXIoZHJpdmUsIHdyaXRlLCBiY291bnQpOwogCX0KIH0KIApAQCAtMjEwLDYgKzE4MywyNCBAQAogCXByaW50X2hleF9kdW1wKEtFUk5fQ09OVCwgIiIsIERVTVBfUFJFRklYX05PTkUsIDE2LCAxLCBkYXRhLCBsZW4sIDApOwogfQogCitzdGF0aWMgaW50IGlkZXNjc2lfZW5kX3JlcXVlc3QoaWRlX2RyaXZlX3QgKiwgaW50LCBpbnQpOworCitzdGF0aWMgdm9pZCBpZGVfc2NzaV9jYWxsYmFjayhpZGVfZHJpdmVfdCAqZHJpdmUpCit7CisJaWRlc2NzaV9zY3NpX3QgKnNjc2kgPSBkcml2ZV90b19pZGVzY3NpKGRyaXZlKTsKKwlzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYyA9IHNjc2ktPnBjOworCisJaWYgKHBjLT5mbGFncyAmIFBDX0ZMQUdfVElNRURPVVQpCisJCWRlYnVnX2xvZygiJXM6IGdvdCB0aW1lZCBvdXQgcGFja2V0ICVsdSBhdCAlbHVcbiIsIF9fZnVuY19fLAorCQkJICBwYy0+c2NzaV9jbWQtPnNlcmlhbF9udW1iZXIsIGppZmZpZXMpOworCQkvKiBlbmQgdGhpcyByZXF1ZXN0IG5vdyAtIHNjc2kgc2hvdWxkIHJldHJ5IGl0Ki8KKwllbHNlIGlmICh0ZXN0X2JpdChJREVTQ1NJX0xPR19DTUQsICZzY3NpLT5sb2cpKQorCQlwcmludGsoS0VSTl9JTkZPICJQYWNrZXQgY29tbWFuZCBjb21wbGV0ZWQsICVkIGJ5dGVzIgorCQkJCSAiIHRyYW5zZmVycmVkXG4iLCBwYy0+eGZlcnJlZCk7CisKKwlpZGVzY3NpX2VuZF9yZXF1ZXN0KGRyaXZlLCAxLCAwKTsKK30KKwogc3RhdGljIGludCBpZGVzY3NpX2NoZWNrX2NvbmRpdGlvbihpZGVfZHJpdmVfdCAqZHJpdmUsCiAJCXN0cnVjdCByZXF1ZXN0ICpmYWlsZWRfY21kKQogewpAQCAtMjI4LDE0ICsyMTksMTYgQEAKIAkJa2ZyZWUocGMpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0JaWRlX2luaXRfZHJpdmVfY21kKHJxKTsKKwlibGtfcnFfaW5pdChOVUxMLCBycSk7CiAJcnEtPnNwZWNpYWwgPSAoY2hhciAqKSBwYzsKIAlwYy0+cnEgPSBycTsKIAlwYy0+YnVmID0gYnVmOwogCXBjLT5jWzBdID0gUkVRVUVTVF9TRU5TRTsKIAlwYy0+Y1s0XSA9IHBjLT5yZXFfeGZlciA9IHBjLT5idWZfc2l6ZSA9IFNDU0lfU0VOU0VfQlVGRkVSU0laRTsKIAlycS0+Y21kX3R5cGUgPSBSRVFfVFlQRV9TRU5TRTsKKwlycS0+Y21kX2ZsYWdzIHw9IFJFUV9QUkVFTVBUOwogCXBjLT50aW1lb3V0ID0gamlmZmllcyArIFdBSVRfUkVBRFk7CisJcGMtPmNhbGxiYWNrID0gaWRlX3Njc2lfY2FsbGJhY2s7CiAJLyogTk9URSEgU2F2ZSB0aGUgZmFpbGVkIHBhY2tldCBjb21tYW5kIGluICJycS0+YnVmZmVyIiAqLwogCXJxLT5idWZmZXIgPSAodm9pZCAqKSBmYWlsZWRfY21kLT5zcGVjaWFsOwogCXBjLT5zY3NpX2NtZCA9ICgoc3RydWN0IGlkZV9hdGFwaV9wYyAqKSBmYWlsZWRfY21kLT5zcGVjaWFsKS0+c2NzaV9jbWQ7CkBAIC0yNDQsMTEgKzIzNywxMCBAQAogCQlpZGVfc2NzaV9oZXhfZHVtcChwYy0+YywgNik7CiAJfQogCXJxLT5ycV9kaXNrID0gc2NzaS0+ZGlzazsKLQlyZXR1cm4gaWRlX2RvX2RyaXZlX2NtZChkcml2ZSwgcnEsIGlkZV9wcmVlbXB0KTsKKwlpZGVfZG9fZHJpdmVfY21kKGRyaXZlLCBycSk7CisJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaWRlc2NzaV9lbmRfcmVxdWVzdChpZGVfZHJpdmVfdCAqLCBpbnQsIGludCk7Ci0KIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QKIGlkZXNjc2lfYXRhcGlfZXJyb3IoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEsIHU4IHN0YXQsIHU4IGVycikKIHsKQEAgLTI1Niw3ICsyNDgsNyBAQAogCiAJaWYgKGlkZV9yZWFkX3N0YXR1cyhkcml2ZSkgJiAoQlVTWV9TVEFUIHwgRFJRX1NUQVQpKQogCQkvKiBmb3JjZSBhbiBhYm9ydCAqLwotCQlod2lmLT5PVVRCU1lOQyhkcml2ZSwgV0lOX0lETEVJTU1FRElBVEUsCisJCWh3aWYtPk9VVEJTWU5DKGh3aWYsIFdJTl9JRExFSU1NRURJQVRFLAogCQkJICAgICAgIGh3aWYtPmlvX3BvcnRzLmNvbW1hbmRfYWRkcik7CiAKIAlycS0+ZXJyb3JzKys7CkBAIC0yNjksMTAgKzI2MSw5IEBACiBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90CiBpZGVzY3NpX2F0YXBpX2Fib3J0KGlkZV9kcml2ZV90ICpkcml2ZSwgc3RydWN0IHJlcXVlc3QgKnJxKQogewotI2lmIElERVNDU0lfREVCVUdfTE9HCi0JcHJpbnRrKEtFUk5fV0FSTklORyAiaWRlc2NzaV9hdGFwaV9hYm9ydCBjYWxsZWQgZm9yICVsdVxuIiwKKwlkZWJ1Z19sb2coIiVzIGNhbGxlZCBmb3IgJWx1XG4iLCBfX2Z1bmNfXywKIAkJKChzdHJ1Y3QgaWRlX2F0YXBpX3BjICopIHJxLT5zcGVjaWFsKS0+c2NzaV9jbWQtPnNlcmlhbF9udW1iZXIpOwotI2VuZGlmCisKIAlycS0+ZXJyb3JzIHw9IEVSUk9SX01BWDsKIAogCWlkZXNjc2lfZW5kX3JlcXVlc3QoZHJpdmUsIDAsIDApOwpAQCAtMzUxLDkgKzM0Miw5IEBACiAJaWRlc2NzaV9zY3NpX3QgKnNjc2kgPSBkcml2ZV90b19pZGVzY3NpKGRyaXZlKTsKIAlzdHJ1Y3QgaWRlX2F0YXBpX3BjICAgKnBjICAgPSBzY3NpLT5wYzsKIAotI2lmIElERVNDU0lfREVCVUdfTE9HCi0JcHJpbnRrKEtFUk5fV0FSTklORyAiaWRlc2NzaV9leHBpcnkgY2FsbGVkIGZvciAlbHUgYXQgJWx1XG4iLCBwYy0+c2NzaV9jbWQtPnNlcmlhbF9udW1iZXIsIGppZmZpZXMpOwotI2VuZGlmCisJZGVidWdfbG9nKCIlcyBjYWxsZWQgZm9yICVsdSBhdCAlbHVcbiIsIF9fZnVuY19fLAorCQkgIHBjLT5zY3NpX2NtZC0+c2VyaWFsX251bWJlciwgamlmZmllcyk7CisKIAlwYy0+ZmxhZ3MgfD0gUENfRkxBR19USU1FRE9VVDsKIAogCXJldHVybiAwOwkJCQkJLyogd2UgZG8gbm90IHdhbnQgdGhlIGlkZSBzdWJzeXN0ZW0gdG8gcmV0cnkgKi8KQEAgLTM2NSwxNDEgKzM1NiwxOSBAQAogc3RhdGljIGlkZV9zdGFydHN0b3BfdCBpZGVzY3NpX3BjX2ludHIgKGlkZV9kcml2ZV90ICpkcml2ZSkKIHsKIAlpZGVzY3NpX3Njc2lfdCAqc2NzaSA9IGRyaXZlX3RvX2lkZXNjc2koZHJpdmUpOwotCWlkZV9od2lmX3QgKmh3aWYgPSBkcml2ZS0+aHdpZjsKIAlzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYyA9IHNjc2ktPnBjOwotCXN0cnVjdCByZXF1ZXN0ICpycSA9IHBjLT5ycTsKLQl1bnNpZ25lZCBpbnQgdGVtcDsKLQl1MTYgYmNvdW50OwotCXU4IHN0YXQsIGlyZWFzb247CiAKLSNpZiBJREVTQ1NJX0RFQlVHX0xPRwotCXByaW50ayAoS0VSTl9JTkZPICJpZGUtc2NzaTogUmVhY2hlZCBpZGVzY3NpX3BjX2ludHIgaW50ZXJydXB0IGhhbmRsZXJcbiIpOwotI2VuZGlmIC8qIElERVNDU0lfREVCVUdfTE9HICovCi0KLQlpZiAocGMtPmZsYWdzICYgUENfRkxBR19USU1FRE9VVCkgewotI2lmIElERVNDU0lfREVCVUdfTE9HCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgImlkZXNjc2lfcGNfaW50cjogZ290IHRpbWVkIG91dCBwYWNrZXQgICVsdSBhdCAlbHVcbiIsCi0JCQkJcGMtPnNjc2lfY21kLT5zZXJpYWxfbnVtYmVyLCBqaWZmaWVzKTsKLSNlbmRpZgotCQkvKiBlbmQgdGhpcyByZXF1ZXN0IG5vdyAtIHNjc2kgc2hvdWxkIHJldHJ5IGl0Ki8KLQkJaWRlc2NzaV9lbmRfcmVxdWVzdCAoZHJpdmUsIDEsIDApOwotCQlyZXR1cm4gaWRlX3N0b3BwZWQ7Ci0JfQotCWlmIChwYy0+ZmxhZ3MgJiBQQ19GTEFHX0RNQV9JTl9QUk9HUkVTUykgewotCQlwYy0+ZmxhZ3MgJj0gflBDX0ZMQUdfRE1BX0lOX1BST0dSRVNTOwotI2lmIElERVNDU0lfREVCVUdfTE9HCi0JCXByaW50ayAoImlkZS1zY3NpOiAlczogRE1BIGNvbXBsZXRlXG4iLCBkcml2ZS0+bmFtZSk7Ci0jZW5kaWYgLyogSURFU0NTSV9ERUJVR19MT0cgKi8KLQkJcGMtPnhmZXJyZWQgPSBwYy0+cmVxX3hmZXI7Ci0JCSh2b2lkKWh3aWYtPmRtYV9vcHMtPmRtYV9lbmQoZHJpdmUpOwotCX0KLQotCS8qIENsZWFyIHRoZSBpbnRlcnJ1cHQgKi8KLQlzdGF0ID0gaWRlX3JlYWRfc3RhdHVzKGRyaXZlKTsKLQotCWlmICgoc3RhdCAmIERSUV9TVEFUKSA9PSAwKSB7Ci0JCS8qIE5vIG1vcmUgaW50ZXJydXB0cyAqLwotCQlpZiAodGVzdF9iaXQoSURFU0NTSV9MT0dfQ01ELCAmc2NzaS0+bG9nKSkKLQkJCXByaW50ayhLRVJOX0lORk8gIlBhY2tldCBjb21tYW5kIGNvbXBsZXRlZCwgJWQgYnl0ZXMiCi0JCQkJCSIgdHJhbnNmZXJyZWRcbiIsIHBjLT54ZmVycmVkKTsKLQkJbG9jYWxfaXJxX2VuYWJsZV9pbl9oYXJkaXJxKCk7Ci0JCWlmIChzdGF0ICYgRVJSX1NUQVQpCi0JCQlycS0+ZXJyb3JzKys7Ci0JCWlkZXNjc2lfZW5kX3JlcXVlc3QgKGRyaXZlLCAxLCAwKTsKLQkJcmV0dXJuIGlkZV9zdG9wcGVkOwotCX0KLQliY291bnQgPSAoaHdpZi0+SU5CKGh3aWYtPmlvX3BvcnRzLmxiYWhfYWRkcikgPDwgOCkgfAotCQkgIGh3aWYtPklOQihod2lmLT5pb19wb3J0cy5sYmFtX2FkZHIpOwotCWlyZWFzb24gPSBod2lmLT5JTkIoaHdpZi0+aW9fcG9ydHMubnNlY3RfYWRkcik7Ci0KLQlpZiAoaXJlYXNvbiAmIENEKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiaWRlLXNjc2k6IENvRCAhPSAwIGluIGlkZXNjc2lfcGNfaW50clxuIik7Ci0JCXJldHVybiBpZGVfZG9fcmVzZXQgKGRyaXZlKTsKLQl9Ci0JaWYgKGlyZWFzb24gJiBJTykgewotCQl0ZW1wID0gcGMtPnhmZXJyZWQgKyBiY291bnQ7Ci0JCWlmICh0ZW1wID4gcGMtPnJlcV94ZmVyKSB7Ci0JCQlpZiAodGVtcCA+IHBjLT5idWZfc2l6ZSkgewotCQkJCXByaW50ayhLRVJOX0VSUiAiaWRlLXNjc2k6IFRoZSBzY3NpIHdhbnRzIHRvICIKLQkJCQkJInNlbmQgdXMgbW9yZSBkYXRhIHRoYW4gZXhwZWN0ZWQgIgotCQkJCQkiLSBkaXNjYXJkaW5nIGRhdGFcbiIpOwotCQkJCXRlbXAgPSBwYy0+YnVmX3NpemUgLSBwYy0+eGZlcnJlZDsKLQkJCQlpZiAodGVtcCkgewotCQkJCQlwYy0+ZmxhZ3MgJj0gflBDX0ZMQUdfV1JJVElORzsKLQkJCQkJaWYgKHBjLT5zZykKLQkJCQkJCWlkZXNjc2lfaW5wdXRfYnVmZmVycyhkcml2ZSwgcGMsCi0JCQkJCQkJCQl0ZW1wKTsKLQkJCQkJZWxzZQotCQkJCQkJaHdpZi0+aW5wdXRfZGF0YShkcml2ZSwgTlVMTCwKLQkJCQkJCQlwYy0+Y3VyX3BvcywgdGVtcCk7Ci0JCQkJCXByaW50ayhLRVJOX0VSUiAiaWRlLXNjc2k6IHRyYW5zZmVycmVkIgotCQkJCQkJCSIgJWQgb2YgJWQgYnl0ZXNcbiIsCi0JCQkJCQkJdGVtcCwgYmNvdW50KTsKLQkJCQl9Ci0JCQkJcGMtPnhmZXJyZWQgKz0gdGVtcDsKLQkJCQlwYy0+Y3VyX3BvcyArPSB0ZW1wOwotCQkJCWlkZV9wYWRfdHJhbnNmZXIoZHJpdmUsIDAsIGJjb3VudCAtIHRlbXApOwotCQkJCWlkZV9zZXRfaGFuZGxlcihkcml2ZSwgJmlkZXNjc2lfcGNfaW50ciwgZ2V0X3RpbWVvdXQocGMpLCBpZGVzY3NpX2V4cGlyeSk7Ci0JCQkJcmV0dXJuIGlkZV9zdGFydGVkOwotCQkJfQotI2lmIElERVNDU0lfREVCVUdfTE9HCi0JCQlwcmludGsgKEtFUk5fTk9USUNFICJpZGUtc2NzaTogVGhlIHNjc2kgd2FudHMgdG8gc2VuZCB1cyBtb3JlIGRhdGEgdGhhbiBleHBlY3RlZCAtIGFsbG93aW5nIHRyYW5zZmVyXG4iKTsKLSNlbmRpZiAvKiBJREVTQ1NJX0RFQlVHX0xPRyAqLwotCQl9Ci0JfQotCWlmIChpcmVhc29uICYgSU8pIHsKLQkJcGMtPmZsYWdzICY9IH5QQ19GTEFHX1dSSVRJTkc7Ci0JCWlmIChwYy0+c2cpCi0JCQlpZGVzY3NpX2lucHV0X2J1ZmZlcnMoZHJpdmUsIHBjLCBiY291bnQpOwotCQllbHNlCi0JCQlod2lmLT5pbnB1dF9kYXRhKGRyaXZlLCBOVUxMLCBwYy0+Y3VyX3BvcywgYmNvdW50KTsKLQl9IGVsc2UgewotCQlwYy0+ZmxhZ3MgfD0gUENfRkxBR19XUklUSU5HOwotCQlpZiAocGMtPnNnKQotCQkJaWRlc2NzaV9vdXRwdXRfYnVmZmVycyhkcml2ZSwgcGMsIGJjb3VudCk7Ci0JCWVsc2UKLQkJCWh3aWYtPm91dHB1dF9kYXRhKGRyaXZlLCBOVUxMLCBwYy0+Y3VyX3BvcywgYmNvdW50KTsKLQl9Ci0JLyogVXBkYXRlIHRoZSBjdXJyZW50IHBvc2l0aW9uICovCi0JcGMtPnhmZXJyZWQgKz0gYmNvdW50OwotCXBjLT5jdXJfcG9zICs9IGJjb3VudDsKLQotCS8qIEFuZCBzZXQgdGhlIGludGVycnVwdCBoYW5kbGVyIGFnYWluICovCi0JaWRlX3NldF9oYW5kbGVyKGRyaXZlLCAmaWRlc2NzaV9wY19pbnRyLCBnZXRfdGltZW91dChwYyksIGlkZXNjc2lfZXhwaXJ5KTsKLQlyZXR1cm4gaWRlX3N0YXJ0ZWQ7CisJcmV0dXJuIGlkZV9wY19pbnRyKGRyaXZlLCBwYywgaWRlc2NzaV9wY19pbnRyLCBnZXRfdGltZW91dChwYyksCisJCQkgICBpZGVzY3NpX2V4cGlyeSwgTlVMTCwgTlVMTCwgTlVMTCwKKwkJCSAgIGlkZV9zY3NpX2lvX2J1ZmZlcnMpOwogfQogCiBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGlkZXNjc2lfdHJhbnNmZXJfcGMoaWRlX2RyaXZlX3QgKmRyaXZlKQogewotCWlkZV9od2lmX3QgKmh3aWYgPSBkcml2ZS0+aHdpZjsKIAlpZGVzY3NpX3Njc2lfdCAqc2NzaSA9IGRyaXZlX3RvX2lkZXNjc2koZHJpdmUpOwotCXN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjID0gc2NzaS0+cGM7Ci0JaWRlX3N0YXJ0c3RvcF90IHN0YXJ0c3RvcDsKLQl1OCBpcmVhc29uOwogCi0JaWYgKGlkZV93YWl0X3N0YXQoJnN0YXJ0c3RvcCxkcml2ZSxEUlFfU1RBVCxCVVNZX1NUQVQsV0FJVF9SRUFEWSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJpZGUtc2NzaTogU3RyYW5nZSwgcGFja2V0IGNvbW1hbmQgIgotCQkJImluaXRpYXRlZCB5ZXQgRFJRIGlzbid0IGFzc2VydGVkXG4iKTsKLQkJcmV0dXJuIHN0YXJ0c3RvcDsKLQl9Ci0JaXJlYXNvbiA9IGh3aWYtPklOQihod2lmLT5pb19wb3J0cy5uc2VjdF9hZGRyKTsKLQlpZiAoKGlyZWFzb24gJiBDRCkgPT0gMCB8fCAoaXJlYXNvbiAmIElPKSkgewotCQlwcmludGsoS0VSTl9FUlIgImlkZS1zY3NpOiAoSU8sQ29EKSAhPSAoMCwxKSB3aGlsZSAiCi0JCQkJImlzc3VpbmcgYSBwYWNrZXQgY29tbWFuZFxuIik7Ci0JCXJldHVybiBpZGVfZG9fcmVzZXQgKGRyaXZlKTsKLQl9Ci0JQlVHX09OKEhXR1JPVVAoZHJpdmUpLT5oYW5kbGVyICE9IE5VTEwpOwotCS8qIFNldCB0aGUgaW50ZXJydXB0IHJvdXRpbmUgKi8KLQlpZGVfc2V0X2hhbmRsZXIoZHJpdmUsICZpZGVzY3NpX3BjX2ludHIsIGdldF90aW1lb3V0KHBjKSwgaWRlc2NzaV9leHBpcnkpOwotCi0JLyogU2VuZCB0aGUgYWN0dWFsIHBhY2tldCAqLwotCWh3aWYtPm91dHB1dF9kYXRhKGRyaXZlLCBOVUxMLCBzY3NpLT5wYy0+YywgMTIpOwotCi0JaWYgKHBjLT5mbGFncyAmIFBDX0ZMQUdfRE1BX09LKSB7Ci0JCXBjLT5mbGFncyB8PSBQQ19GTEFHX0RNQV9JTl9QUk9HUkVTUzsKLQkJaHdpZi0+ZG1hX29wcy0+ZG1hX3N0YXJ0KGRyaXZlKTsKLQl9Ci0JcmV0dXJuIGlkZV9zdGFydGVkOworCXJldHVybiBpZGVfdHJhbnNmZXJfcGMoZHJpdmUsIHNjc2ktPnBjLCBpZGVzY3NpX3BjX2ludHIsCisJCQkgICAgICAgZ2V0X3RpbWVvdXQoc2NzaS0+cGMpLCBpZGVzY3NpX2V4cGlyeSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IGlkZXNjc2lfc2V0X2RpcmVjdGlvbihzdHJ1Y3QgaWRlX2F0YXBpX3BjICpwYykKQEAgLTU0NSwzOCArNDE0LDEyIEBACiAJCXN0cnVjdCBpZGVfYXRhcGlfcGMgKnBjKQogewogCWlkZXNjc2lfc2NzaV90ICpzY3NpID0gZHJpdmVfdG9faWRlc2NzaShkcml2ZSk7Ci0JaWRlX2h3aWZfdCAqaHdpZiA9IGRyaXZlLT5od2lmOwotCXUxNiBiY291bnQ7Ci0JdTggZG1hID0gMDsKIAogCS8qIFNldCB0aGUgY3VycmVudCBwYWNrZXQgY29tbWFuZCAqLwogCXNjc2ktPnBjID0gcGM7Ci0JLyogV2UgaGF2ZW4ndCB0cmFuc2ZlcnJlZCBhbnkgZGF0YSB5ZXQgKi8KLQlwYy0+eGZlcnJlZCA9IDA7Ci0JcGMtPmN1cl9wb3MgPSBwYy0+YnVmOwotCS8qIFJlcXVlc3QgdG8gdHJhbnNmZXIgdGhlIGVudGlyZSBidWZmZXIgYXQgb25jZSAqLwotCWJjb3VudCA9IG1pbihwYy0+cmVxX3hmZXIsIDYzICogMTAyNCk7CiAKLQlpZiAoZHJpdmUtPnVzaW5nX2RtYSAmJiAhaWRlc2NzaV9tYXBfc2coZHJpdmUsIHBjKSkgewotCQlod2lmLT5zZ19tYXBwZWQgPSAxOwotCQlkbWEgPSAhaHdpZi0+ZG1hX29wcy0+ZG1hX3NldHVwKGRyaXZlKTsKLQkJaHdpZi0+c2dfbWFwcGVkID0gMDsKLQl9Ci0KLQlpZGVfcGt0Y21kX3RmX2xvYWQoZHJpdmUsIElERV9URkxBR19OT19TRUxFQ1RfTUFTSywgYmNvdW50LCBkbWEpOwotCi0JaWYgKGRtYSkKLQkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfRE1BX09LOwotCi0JaWYgKHRlc3RfYml0KElERVNDU0lfRFJRX0lOVEVSUlVQVCwgJnNjc2ktPmZsYWdzKSkgewotCQlpZGVfZXhlY3V0ZV9jb21tYW5kKGRyaXZlLCBXSU5fUEFDS0VUQ01ELCAmaWRlc2NzaV90cmFuc2Zlcl9wYywKLQkJCQkgICAgZ2V0X3RpbWVvdXQocGMpLCBpZGVzY3NpX2V4cGlyeSk7Ci0JCXJldHVybiBpZGVfc3RhcnRlZDsKLQl9IGVsc2UgewotCQkvKiBJc3N1ZSB0aGUgcGFja2V0IGNvbW1hbmQgKi8KLQkJaWRlX2V4ZWN1dGVfcGt0X2NtZChkcml2ZSk7Ci0JCXJldHVybiBpZGVzY3NpX3RyYW5zZmVyX3BjKGRyaXZlKTsKLQl9CisJcmV0dXJuIGlkZV9pc3N1ZV9wYyhkcml2ZSwgcGMsIGlkZXNjc2lfdHJhbnNmZXJfcGMsCisJCQkgICAgZ2V0X3RpbWVvdXQocGMpLCBpZGVzY3NpX2V4cGlyeSk7CiB9CiAKIC8qCkBAIC01ODQsMTQgKzQyNywyMiBAQAogICovCiBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGlkZXNjc2lfZG9fcmVxdWVzdCAoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEsIHNlY3Rvcl90IGJsb2NrKQogewotI2lmIElERVNDU0lfREVCVUdfTE9HCi0JcHJpbnRrIChLRVJOX0lORk8gImRldjogJXMsIGNtZDogJXgsIGVycm9yczogJWRcbiIsIHJxLT5ycV9kaXNrLT5kaXNrX25hbWUscnEtPmNtZFswXSxycS0+ZXJyb3JzKTsKLQlwcmludGsgKEtFUk5fSU5GTyAic2VjdG9yOiAlbGQsIG5yX3NlY3RvcnM6ICVsZCwgY3VycmVudF9ucl9zZWN0b3JzOiAlZFxuIixycS0+c2VjdG9yLHJxLT5ucl9zZWN0b3JzLHJxLT5jdXJyZW50X25yX3NlY3RvcnMpOwotI2VuZGlmIC8qIElERVNDU0lfREVCVUdfTE9HICovCisJZGVidWdfbG9nKCJkZXY6ICVzLCBjbWQ6ICV4LCBlcnJvcnM6ICVkXG4iLCBycS0+cnFfZGlzay0+ZGlza19uYW1lLAorCQkgIHJxLT5jbWRbMF0sIHJxLT5lcnJvcnMpOworCWRlYnVnX2xvZygic2VjdG9yOiAlbGQsIG5yX3NlY3RvcnM6ICVsZCwgY3VycmVudF9ucl9zZWN0b3JzOiAlZFxuIiwKKwkJICBycS0+c2VjdG9yLCBycS0+bnJfc2VjdG9ycywgcnEtPmN1cnJlbnRfbnJfc2VjdG9ycyk7CiAKIAlpZiAoYmxrX3NlbnNlX3JlcXVlc3QocnEpIHx8IGJsa19zcGVjaWFsX3JlcXVlc3QocnEpKSB7Ci0JCXJldHVybiBpZGVzY3NpX2lzc3VlX3BjKGRyaXZlLAotCQkJCShzdHJ1Y3QgaWRlX2F0YXBpX3BjICopIHJxLT5zcGVjaWFsKTsKKwkJc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMgPSAoc3RydWN0IGlkZV9hdGFwaV9wYyAqKXJxLT5zcGVjaWFsOworCQlpZGVzY3NpX3Njc2lfdCAqc2NzaSA9IGRyaXZlX3RvX2lkZXNjc2koZHJpdmUpOworCisJCWlmICh0ZXN0X2JpdChJREVTQ1NJX0RSUV9JTlRFUlJVUFQsICZzY3NpLT5mbGFncykpCisJCQlwYy0+ZmxhZ3MgfD0gUENfRkxBR19EUlFfSU5URVJSVVBUOworCisJCWlmIChkcml2ZS0+dXNpbmdfZG1hICYmICFpZGVzY3NpX21hcF9zZyhkcml2ZSwgcGMpKQorCQkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfRE1BX09LOworCisJCXJldHVybiBpZGVzY3NpX2lzc3VlX3BjKGRyaXZlLCBwYyk7CiAJfQogCWJsa19kdW1wX3JxX2ZsYWdzKHJxLCAiaWRlLXNjc2k6IHVuc3VwIGNvbW1hbmQiKTsKIAlpZGVzY3NpX2VuZF9yZXF1ZXN0IChkcml2ZSwgMCwgMCk7CkBAIC02NDYsNiArNDk3LDggQEAKIAlwdXRfZGlzayhnKTsKIAogCWlkZV9zY3NpX3B1dChzY3NpKTsKKworCWRyaXZlLT5zY3NpID0gMDsKIH0KIAogc3RhdGljIGludCBpZGVfc2NzaV9wcm9iZShpZGVfZHJpdmVfdCAqKTsKQEAgLTc2NSw2ICs2MTgsOCBAQAogCiAJbWVtc2V0IChwYy0+YywgMCwgMTIpOwogCXBjLT5mbGFncyA9IDA7CisJaWYgKGNtZC0+c2NfZGF0YV9kaXJlY3Rpb24gPT0gRE1BX1RPX0RFVklDRSkKKwkJcGMtPmZsYWdzIHw9IFBDX0ZMQUdfV1JJVElORzsKIAlwYy0+cnEgPSBycTsKIAltZW1jcHkgKHBjLT5jLCBjbWQtPmNtbmQsIGNtZC0+Y21kX2xlbik7CiAJcGMtPmJ1ZiA9IE5VTEw7CkBAIC03NzUsNiArNjMwLDcgQEAKIAlwYy0+c2NzaV9jbWQgPSBjbWQ7CiAJcGMtPmRvbmUgPSBkb25lOwogCXBjLT50aW1lb3V0ID0gamlmZmllcyArIGNtZC0+dGltZW91dF9wZXJfY29tbWFuZDsKKwlwYy0+Y2FsbGJhY2sgPSBpZGVfc2NzaV9jYWxsYmFjazsKIAogCWlmICh0ZXN0X2JpdChJREVTQ1NJX0xPR19DTUQsICZzY3NpLT5sb2cpKSB7CiAJCXByaW50ayAoImlkZS1zY3NpOiAlczogcXVlICVsdSwgY21kID0gIiwgZHJpdmUtPm5hbWUsIGNtZC0+c2VyaWFsX251bWJlcik7CkBAIC03ODUsMTIgKzY0MSwxMSBAQAogCQl9CiAJfQogCi0JaWRlX2luaXRfZHJpdmVfY21kIChycSk7CisJYmxrX3JxX2luaXQoTlVMTCwgcnEpOwogCXJxLT5zcGVjaWFsID0gKGNoYXIgKikgcGM7CiAJcnEtPmNtZF90eXBlID0gUkVRX1RZUEVfU1BFQ0lBTDsKIAlzcGluX3VubG9ja19pcnEoaG9zdC0+aG9zdF9sb2NrKTsKLQlycS0+cnFfZGlzayA9IHNjc2ktPmRpc2s7Ci0JKHZvaWQpIGlkZV9kb19kcml2ZV9jbWQgKGRyaXZlLCBycSwgaWRlX2VuZCk7CisJYmxrX2V4ZWN1dGVfcnFfbm93YWl0KGRyaXZlLT5xdWV1ZSwgc2NzaS0+ZGlzaywgcnEsIDAsIE5VTEwpOwogCXNwaW5fbG9ja19pcnEoaG9zdC0+aG9zdF9sb2NrKTsKIAlyZXR1cm4gMDsKIGFib3J0OgpAQCAtOTg1LDYgKzg0MCw4IEBACiAJICAgICEoaG9zdCA9IHNjc2lfaG9zdF9hbGxvYygmaWRlc2NzaV90ZW1wbGF0ZSxzaXplb2YoaWRlc2NzaV9zY3NpX3QpKSkpCiAJCXJldHVybiAtRU5PREVWOwogCisJZHJpdmUtPnNjc2kgPSAxOworCiAJZyA9IGFsbG9jX2Rpc2soMSA8PCBQQVJUTl9CSVRTKTsKIAlpZiAoIWcpCiAJCWdvdG8gb3V0X2hvc3RfcHV0OwpAQCAtOTkzLDEwICs4NTAsMTAgQEAKIAogCWhvc3QtPm1heF9pZCA9IDE7CiAKLSNpZiBJREVTQ1NJX0RFQlVHX0xPRwogCWlmIChkcml2ZS0+aWQtPmxhc3RfbHVuKQotCQlwcmludGsoS0VSTl9OT1RJQ0UgIiVzOiBpZC0+bGFzdF9sdW49JXVcbiIsIGRyaXZlLT5uYW1lLCBkcml2ZS0+aWQtPmxhc3RfbHVuKTsKLSNlbmRpZgorCQlkZWJ1Z19sb2coIiVzOiBpZC0+bGFzdF9sdW49JXVcbiIsIGRyaXZlLT5uYW1lLAorCQkJICBkcml2ZS0+aWQtPmxhc3RfbHVuKTsKKwogCWlmICgoZHJpdmUtPmlkLT5sYXN0X2x1biAmIDB4NykgIT0gNykKIAkJaG9zdC0+bWF4X2x1biA9IChkcml2ZS0+aWQtPmxhc3RfbHVuICYgMHg3KSArIDE7CiAJZWxzZQpAQCAtMTAyNSw2ICs4ODIsNyBAQAogCiAJcHV0X2Rpc2soZyk7CiBvdXRfaG9zdF9wdXQ6CisJZHJpdmUtPnNjc2kgPSAwOwogCXNjc2lfaG9zdF9wdXQoaG9zdCk7CiAJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pcHIuYyBiL2RyaXZlcnMvc2NzaS9pcHIuYwppbmRleCA5OTllOTFlLi5lN2EzYTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaXByLmMKKysrIGIvZHJpdmVycy9zY3NpL2lwci5jCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9saWJhdGEuaD4KKyNpbmNsdWRlIDxsaW51eC9oZHJlZy5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CkBAIC00OTEzLDggKzQ5MTQsMTEgQEAKIAlzdHJ1Y3QgaXByX3Jlc291cmNlX2VudHJ5ICpyZXM7CiAKIAlyZXMgPSAoc3RydWN0IGlwcl9yZXNvdXJjZV9lbnRyeSAqKXNkZXYtPmhvc3RkYXRhOwotCWlmIChyZXMgJiYgaXByX2lzX2dhdGEocmVzKSkKKwlpZiAocmVzICYmIGlwcl9pc19nYXRhKHJlcykpIHsKKwkJaWYgKGNtZCA9PSBIRElPX0dFVF9JREVOVElUWSkKKwkJCXJldHVybiAtRU5PVFRZOwogCQlyZXR1cm4gYXRhX3Njc2lfaW9jdGwoc2RldiwgY21kLCBhcmcpOworCX0KIAogCXJldHVybiAtRUlOVkFMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkLmMgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYwppbmRleCAxODU1MWFhLi4yOGM5ZGE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYworKysgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpY2FtLmg+CiAKICNpbmNsdWRlICJzY3NpLmgiCkBAIC0zMjcyLDEyICszMjczLDEyIEBACiAgKiBAZmlsZXAgLSB1bnVzZWQKICAqCiAgKiBSb3V0aW5lcyBmb3IgdGhlIGNoYXJhY3Rlci9pb2N0bCBpbnRlcmZhY2UgdG8gdGhlIGRyaXZlci4gRmluZCBvdXQgaWYgdGhpcwotICogaXMgYSB2YWxpZCBvcGVuLiBJZiB5ZXMsIGluY3JlbWVudCB0aGUgbW9kdWxlIHVzZSBjb3VudCBzbyB0aGF0IGl0IGNhbm5vdAotICogYmUgdW5sb2FkZWQuCisgKiBpcyBhIHZhbGlkIG9wZW4uIAogICovCiBzdGF0aWMgaW50CiBtZWdhZGV2X29wZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlcCkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCS8qCiAJICogT25seSBhbGxvdyBzdXBlcnVzZXIgdG8gYWNjZXNzIHByaXZhdGUgaW9jdGwgaW50ZXJmYWNlCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbW0uYyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCmluZGV4IDBhZDIxNWUuLmFjM2IyODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCkBAIC0xNSw2ICsxNSw3IEBACiAgKiBDb21tb24gbWFuYWdlbWVudCBtb2R1bGUKICAqLwogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJtZWdhcmFpZF9tbS5oIgogCiAKQEAgLTk2LDYgKzk3LDcgQEAKIAkgKi8KIAlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpIHJldHVybiAoLUVBQ0NFUyk7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzLmMgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzLmMKaW5kZXggN2Q4NGM4Yi4uZmM3YWMxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9zYXMuYwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KQEAgLTI4NjMsNiArMjg2NCw3IEBACiAgKi8KIHN0YXRpYyBpbnQgbWVnYXNhc19tZ210X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGVwKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJLyoKIAkgKiBBbGxvdyBvbmx5IHRob3NlIHVzZXJzIHdpdGggYWRtaW4gcmlnaHRzCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvb3NzdC5jIGIvZHJpdmVycy9zY3NpL29zc3QuYwppbmRleCAyNDNkOGJlLi4xYzc5Zjk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvb3NzdC5jCisrKyBiL2RyaXZlcnMvc2NzaS9vc3N0LmMKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vZG1hLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgpAQCAtNDM1OSw3ICs0MzYwLDcgQEAKIAogCiAvKiBPcGVuIHRoZSBkZXZpY2UgKi8KLXN0YXRpYyBpbnQgb3Nfc2NzaV90YXBlX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCkKK3N0YXRpYyBpbnQgX19vc19zY3NpX3RhcGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKQogewogCXVuc2lnbmVkIHNob3J0CSAgICAgIGZsYWdzOwogCWludAkJICAgICAgaSwgYl9zaXplLCBuZXdfc2Vzc2lvbiA9IDAsIHJldHZhbCA9IDA7CkBAIC00NzI1LDYgKzQ3MjYsMTggQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCisvKiBCS0wgcHVzaGRvd246IHNwYWdoZXR0aSBhdm9pZGFuY2Ugd3JhcHBlciAqLworc3RhdGljIGludCBvc19zY3NpX3RhcGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCWludCByZXQ7CisKKwlsb2NrX2tlcm5lbCgpOworCXJldCA9IF9fb3Nfc2NzaV90YXBlX29wZW4oaW5vZGUsIGZpbHApOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OworfQorCisKIAogLyogRmx1c2ggdGhlIHRhcGUgYnVmZmVyIGJlZm9yZSBjbG9zZSAqLwogc3RhdGljIGludCBvc19zY3NpX3RhcGVfZmx1c2goc3RydWN0IGZpbGUgKiBmaWxwLCBmbF9vd25lcl90IGlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Njc2lfbGliLmMgYi9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYwppbmRleCBhODJkMmZlLi5jYmY1NWQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYworKysgYi9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYwpAQCAtMjA3LDYgKzIwNywxNSBAQAogCSAqLwogCWJsa19leGVjdXRlX3JxKHJlcS0+cSwgTlVMTCwgcmVxLCAxKTsKIAorCS8qCisJICogU29tZSBkZXZpY2VzIChVU0IgbWFzcy1zdG9yYWdlIGluIHBhcnRpY3VsYXIpIG1heSB0cmFuc2ZlcgorCSAqIGdhcmJhZ2UgZGF0YSB0b2dldGhlciB3aXRoIGEgcmVzaWR1ZSBpbmRpY2F0aW5nIHRoYXQgdGhlIGRhdGEKKwkgKiBpcyBpbnZhbGlkLiAgUHJldmVudCB0aGUgZ2FyYmFnZSBmcm9tIGJlaW5nIG1pc2ludGVycHJldGVkCisJICogYW5kIHByZXZlbnQgc2VjdXJpdHkgbGVha3MgYnkgemVyb2luZyBvdXQgdGhlIGV4Y2VzcyBkYXRhLgorCSAqLworCWlmICh1bmxpa2VseShyZXEtPmRhdGFfbGVuID4gMCAmJiByZXEtPmRhdGFfbGVuIDw9IGJ1ZmZsZW4pKQorCQltZW1zZXQoYnVmZmVyICsgKGJ1ZmZsZW4gLSByZXEtPmRhdGFfbGVuKSwgMCwgcmVxLT5kYXRhX2xlbik7CisKIAlyZXQgPSByZXEtPmVycm9yczsKICBvdXQ6CiAJYmxrX3B1dF9yZXF1ZXN0KHJlcSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2NzaV90Z3RfaWYuYyBiL2RyaXZlcnMvc2NzaS9zY3NpX3RndF9pZi5jCmluZGV4IGQyNTU3ZGIuLjBlOTUzM2Y3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2NzaV90Z3RfaWYuYworKysgYi9kcml2ZXJzL3Njc2kvc2NzaV90Z3RfaWYuYwpAQCAtMjEsNiArMjEsNyBAQAogICovCiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPG5ldC90Y3AuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2kuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfY21uZC5oPgpAQCAtMzIxLDYgKzMyMiw3IEBACiB7CiAJdHhfcmluZy50cl9pZHggPSByeF9yaW5nLnRyX2lkeCA9IDA7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2VzLmMgYi9kcml2ZXJzL3Njc2kvc2VzLmMKaW5kZXggNDVkZjgzYi4uMGZlMDMxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3Nlcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9zZXMuYwpAQCAtNjEsNyArNjEsNyBAQAogCXJldHVybiBlcnI7CiB9CiAKLSNkZWZpbmUgU0VTX1RJTUVPVVQgMzAKKyNkZWZpbmUgU0VTX1RJTUVPVVQgKDMwICogSFopCiAjZGVmaW5lIFNFU19SRVRSSUVTIDMKIAogc3RhdGljIGludCBzZXNfcmVjdl9kaWFnKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldiwgaW50IHBhZ2VfY29kZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZy5jIGIvZHJpdmVycy9zY3NpL3NnLmMKaW5kZXggZWEwZWRkMS4uZmNjZDJlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NnLmMKKysrIGIvZHJpdmVycy9zY3NpL3NnLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvYmxrdHJhY2VfYXBpLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgInNjc2kuaCIKICNpbmNsdWRlIDxzY3NpL3Njc2lfZGJnLmg+CkBAIC0xODIsOCArMTgzLDkgQEAKIAkJCSBpbnQgdGFibGVzaXplKTsKIHN0YXRpYyBzc2l6ZV90IHNnX25ld19yZWFkKFNnX2ZkICogc2ZwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsCiAJCQkgICBTZ19yZXF1ZXN0ICogc3JwKTsKLXN0YXRpYyBzc2l6ZV90IHNnX25ld193cml0ZShTZ19mZCAqIHNmcCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAotCQkJICAgIGludCBibG9ja2luZywgaW50IHJlYWRfb25seSwgU2dfcmVxdWVzdCAqKiBvX3NycCk7CitzdGF0aWMgc3NpemVfdCBzZ19uZXdfd3JpdGUoU2dfZmQgKnNmcCwgc3RydWN0IGZpbGUgKmZpbGUsCisJCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIGludCBibG9ja2luZywKKwkJCWludCByZWFkX29ubHksIFNnX3JlcXVlc3QgKipvX3NycCk7CiBzdGF0aWMgaW50IHNnX2NvbW1vbl93cml0ZShTZ19mZCAqIHNmcCwgU2dfcmVxdWVzdCAqIHNycCwKIAkJCSAgIHVuc2lnbmVkIGNoYXIgKmNtbmQsIGludCB0aW1lb3V0LCBpbnQgYmxvY2tpbmcpOwogc3RhdGljIGludCBzZ191X2lvdmVjKHNnX2lvX2hkcl90ICogaHAsIGludCBzZ19udW0sIGludCBpbmQsCkBAIC0yMDQsNyArMjA2LDYgQEAKIHN0YXRpYyBTZ19yZXF1ZXN0ICpzZ19hZGRfcmVxdWVzdChTZ19mZCAqIHNmcCk7CiBzdGF0aWMgaW50IHNnX3JlbW92ZV9yZXF1ZXN0KFNnX2ZkICogc2ZwLCBTZ19yZXF1ZXN0ICogc3JwKTsKIHN0YXRpYyBpbnQgc2dfcmVzX2luX3VzZShTZ19mZCAqIHNmcCk7Ci1zdGF0aWMgaW50IHNnX2FsbG93X2FjY2Vzcyh1bnNpZ25lZCBjaGFyIG9wY29kZSwgY2hhciBkZXZfdHlwZSk7CiBzdGF0aWMgaW50IHNnX2J1aWxkX2RpcmVjdChTZ19yZXF1ZXN0ICogc3JwLCBTZ19mZCAqIHNmcCwgaW50IGR4ZmVyX2xlbik7CiBzdGF0aWMgU2dfZGV2aWNlICpzZ19nZXRfZGV2KGludCBkZXYpOwogI2lmZGVmIENPTkZJR19TQ1NJX1BST0NfRlMKQEAgLTIyNywxOSArMjI4LDI2IEBACiAJaW50IHJlczsKIAlpbnQgcmV0dmFsOwogCisJbG9ja19rZXJuZWwoKTsKIAlub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKIAlTQ1NJX0xPR19USU1FT1VUKDMsIHByaW50aygic2dfb3BlbjogZGV2PSVkLCBmbGFncz0weCV4XG4iLCBkZXYsIGZsYWdzKSk7CiAJc2RwID0gc2dfZ2V0X2RldihkZXYpOwotCWlmICgoIXNkcCkgfHwgKCFzZHAtPmRldmljZSkpCisJaWYgKCghc2RwKSB8fCAoIXNkcC0+ZGV2aWNlKSkgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5YSU87Ci0JaWYgKHNkcC0+ZGV0YWNoZWQpCisJfQorCWlmIChzZHAtPmRldGFjaGVkKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9ERVY7CisJfQogCiAJLyogVGhpcyBkcml2ZXIncyBtb2R1bGUgY291bnQgYnVtcGVkIGJ5IGZvcHNfZ2V0IGluIDxsaW51eC9mcy5oPiAqLwogCS8qIFByZXZlbnQgdGhlIGRldmljZSBkcml2ZXIgZnJvbSB2YW5pc2hpbmcgd2hpbGUgd2Ugc2xlZXAgKi8KIAlyZXR2YWwgPSBzY3NpX2RldmljZV9nZXQoc2RwLT5kZXZpY2UpOwotCWlmIChyZXR2YWwpCisJaWYgKHJldHZhbCkgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiByZXR2YWw7CisJfQogCiAJaWYgKCEoKGZsYWdzICYgT19OT05CTE9DSykgfHwKIAkgICAgICBzY3NpX2Jsb2NrX3doZW5fcHJvY2Vzc2luZ19lcnJvcnMoc2RwLT5kZXZpY2UpKSkgewpAQCAtMjk1LDEwICszMDMsMTIgQEAKIAkJcmV0dmFsID0gLUVOT01FTTsKIAkJZ290byBlcnJvcl9vdXQ7CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogICAgICAgZXJyb3Jfb3V0OgogCXNjc2lfZGV2aWNlX3B1dChzZHAtPmRldmljZSk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXR2YWw7CiB9CiAKQEAgLTU0NCw3ICs1NTQsNyBAQAogCQlyZXR1cm4gLUVGQVVMVDsKIAlibG9ja2luZyA9ICEoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spOwogCWlmIChvbGRfaGRyLnJlcGx5X2xlbiA8IDApCi0JCXJldHVybiBzZ19uZXdfd3JpdGUoc2ZwLCBidWYsIGNvdW50LCBibG9ja2luZywgMCwgTlVMTCk7CisJCXJldHVybiBzZ19uZXdfd3JpdGUoc2ZwLCBmaWxwLCBidWYsIGNvdW50LCBibG9ja2luZywgMCwgTlVMTCk7CiAJaWYgKGNvdW50IDwgKFNaX1NHX0hFQURFUiArIDYpKQogCQlyZXR1cm4gLUVJTzsJLyogVGhlIG1pbmltdW0gc2NzaSBjb21tYW5kIGxlbmd0aCBpcyA2IGJ5dGVzLiAqLwogCkBAIC02MjEsOCArNjMxLDkgQEAKIH0KIAogc3RhdGljIHNzaXplX3QKLXNnX25ld193cml0ZShTZ19mZCAqIHNmcCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAotCSAgICAgaW50IGJsb2NraW5nLCBpbnQgcmVhZF9vbmx5LCBTZ19yZXF1ZXN0ICoqIG9fc3JwKQorc2dfbmV3X3dyaXRlKFNnX2ZkICpzZnAsIHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAorCQkgc2l6ZV90IGNvdW50LCBpbnQgYmxvY2tpbmcsIGludCByZWFkX29ubHksCisJCSBTZ19yZXF1ZXN0ICoqb19zcnApCiB7CiAJaW50IGs7CiAJU2dfcmVxdWVzdCAqc3JwOwpAQCAtNjc4LDggKzY4OSw3IEBACiAJCXNnX3JlbW92ZV9yZXF1ZXN0KHNmcCwgc3JwKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQotCWlmIChyZWFkX29ubHkgJiYKLQkgICAgKCFzZ19hbGxvd19hY2Nlc3MoY21uZFswXSwgc2ZwLT5wYXJlbnRkcC0+ZGV2aWNlLT50eXBlKSkpIHsKKwlpZiAocmVhZF9vbmx5ICYmICFibGtfdmVyaWZ5X2NvbW1hbmQoZmlsZSwgY21uZCkpIHsKIAkJc2dfcmVtb3ZlX3JlcXVlc3Qoc2ZwLCBzcnApOwogCQlyZXR1cm4gLUVQRVJNOwogCX0KQEAgLTc5OSw3ICs4MDksNyBAQAogCQkJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCBwLCBTWl9TR19JT19IRFIpKQogCQkJCXJldHVybiAtRUZBVUxUOwogCQkJcmVzdWx0ID0KLQkJCSAgICBzZ19uZXdfd3JpdGUoc2ZwLCBwLCBTWl9TR19JT19IRFIsCisJCQkgICAgc2dfbmV3X3dyaXRlKHNmcCwgZmlscCwgcCwgU1pfU0dfSU9fSERSLAogCQkJCQkgYmxvY2tpbmcsIHJlYWRfb25seSwgJnNycCk7CiAJCQlpZiAocmVzdWx0IDwgMCkKIAkJCQlyZXR1cm4gcmVzdWx0OwpAQCAtMTA0OCw3ICsxMDU4LDcgQEAKIAogCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZvcGNvZGUsIHNpb2NwLT5kYXRhLCAxKSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCWlmICghc2dfYWxsb3dfYWNjZXNzKG9wY29kZSwgc2RwLT5kZXZpY2UtPnR5cGUpKQorCQkJaWYgKCFibGtfdmVyaWZ5X2NvbW1hbmQoZmlscCwgJm9wY29kZSkpCiAJCQkJcmV0dXJuIC1FUEVSTTsKIAkJfQogCQlyZXR1cm4gc2dfc2NzaV9pb2N0bChmaWxwLCBzZHAtPmRldmljZS0+cmVxdWVzdF9xdWV1ZSwgTlVMTCwgcCk7CkBAIC0yNTAyLDMwICsyNTEyLDYgQEAKIAlfX2ZyZWVfcGFnZXMocGFnZSwgb3JkZXIpOwogfQogCi0jaWZuZGVmIE1BSU5URU5BTkNFX0lOX0NNRAotI2RlZmluZSBNQUlOVEVOQU5DRV9JTl9DTUQgMHhhMwotI2VuZGlmCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGFsbG93X29wc1tdID0geyBURVNUX1VOSVRfUkVBRFksIFJFUVVFU1RfU0VOU0UsCi0JSU5RVUlSWSwgUkVBRF9DQVBBQ0lUWSwgUkVBRF9CVUZGRVIsIFJFQURfNiwgUkVBRF8xMCwgUkVBRF8xMiwKLQlSRUFEXzE2LCBNT0RFX1NFTlNFLCBNT0RFX1NFTlNFXzEwLCBMT0dfU0VOU0UsIFJFUE9SVF9MVU5TLAotCVNFUlZJQ0VfQUNUSU9OX0lOLCBSRUNFSVZFX0RJQUdOT1NUSUMsIFJFQURfTE9ORywgTUFJTlRFTkFOQ0VfSU5fQ01ECi19OwotCi1zdGF0aWMgaW50Ci1zZ19hbGxvd19hY2Nlc3ModW5zaWduZWQgY2hhciBvcGNvZGUsIGNoYXIgZGV2X3R5cGUpCi17Ci0JaW50IGs7Ci0KLQlpZiAoVFlQRV9TQ0FOTkVSID09IGRldl90eXBlKQkvKiBUWVBFX1JPTSBtYXliZSBidXJuZXIgKi8KLQkJcmV0dXJuIDE7Ci0JZm9yIChrID0gMDsgayA8IHNpemVvZiAoYWxsb3dfb3BzKTsgKytrKSB7Ci0JCWlmIChvcGNvZGUgPT0gYWxsb3dfb3BzW2tdKQotCQkJcmV0dXJuIDE7Ci0JfQotCXJldHVybiAwOwotfQotCiAjaWZkZWYgQ09ORklHX1NDU0lfUFJPQ19GUwogc3RhdGljIGludAogc2dfaWRyX21heF9pZChpbnQgaWQsIHZvaWQgKnAsIHZvaWQgKmRhdGEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc3IuYyBiL2RyaXZlcnMvc2NzaS9zci5jCmluZGV4IGM4MmRmOGIuLjI3ZjViZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zci5jCisrKyBiL2RyaXZlcnMvc2NzaS9zci5jCkBAIC02NzMsMjQgKzY3MywyMCBAQAogc3RhdGljIHZvaWQgZ2V0X3NlY3RvcnNpemUoc3RydWN0IHNjc2lfY2QgKmNkKQogewogCXVuc2lnbmVkIGNoYXIgY21kWzEwXTsKLQl1bnNpZ25lZCBjaGFyICpidWZmZXI7CisJdW5zaWduZWQgY2hhciBidWZmZXJbOF07CiAJaW50IHRoZV9yZXN1bHQsIHJldHJpZXMgPSAzOwogCWludCBzZWN0b3Jfc2l6ZTsKIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcXVldWU7CiAKLQlidWZmZXIgPSBrbWFsbG9jKDUxMiwgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwotCWlmICghYnVmZmVyKQotCQlnb3RvIEVub21lbTsKLQogCWRvIHsKIAkJY21kWzBdID0gUkVBRF9DQVBBQ0lUWTsKIAkJbWVtc2V0KCh2b2lkICopICZjbWRbMV0sIDAsIDkpOwotCQltZW1zZXQoYnVmZmVyLCAwLCA4KTsKKwkJbWVtc2V0KGJ1ZmZlciwgMCwgc2l6ZW9mKGJ1ZmZlcikpOwogCiAJCS8qIERvIHRoZSBjb21tYW5kIGFuZCB3YWl0Li4gKi8KIAkJdGhlX3Jlc3VsdCA9IHNjc2lfZXhlY3V0ZV9yZXEoY2QtPmRldmljZSwgY21kLCBETUFfRlJPTV9ERVZJQ0UsCi0JCQkJCSAgICAgIGJ1ZmZlciwgOCwgTlVMTCwgU1JfVElNRU9VVCwKLQkJCQkJICAgICAgTUFYX1JFVFJJRVMpOworCQkJCQkgICAgICBidWZmZXIsIHNpemVvZihidWZmZXIpLCBOVUxMLAorCQkJCQkgICAgICBTUl9USU1FT1VULCBNQVhfUkVUUklFUyk7CiAKIAkJcmV0cmllcy0tOwogCkBAIC03NDUsMTQgKzc0MSw4IEBACiAKIAlxdWV1ZSA9IGNkLT5kZXZpY2UtPnJlcXVlc3RfcXVldWU7CiAJYmxrX3F1ZXVlX2hhcmRzZWN0X3NpemUocXVldWUsIHNlY3Rvcl9zaXplKTsKLW91dDoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybjsKIAotRW5vbWVtOgotCWNkLT5jYXBhY2l0eSA9IDB4MWZmZmZmOwotCWNkLT5kZXZpY2UtPnNlY3Rvcl9zaXplID0gMjA0ODsJLyogQSBndWVzcywganVzdCBpbiBjYXNlICovCi0JZ290byBvdXQ7CisJcmV0dXJuOwogfQogCiBzdGF0aWMgdm9pZCBnZXRfY2FwYWJpbGl0aWVzKHN0cnVjdCBzY3NpX2NkICpjZCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zdC5jIGIvZHJpdmVycy9zY3NpL3N0LmMKaW5kZXggNmU1YTViYi4uNDY4NGNjNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3N0LmMKKysrIGIvZHJpdmVycy9zY3NpL3N0LmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9kbWEuaD4KQEAgLTExMTMsNyArMTExNCw3IEBACiB9CiAKIAotDC8qIE9wZW4gdGhlIGRldmljZS4gTmVlZHMgdG8gYmUgY2FsbGVkIHdpdGggQktMIG9ubHkgYmVjYXVzZSBvZiBpbmNyZW1lbnRpbmcgdGhlIFNDU0kgaG9zdAorDC8qIE9wZW4gdGhlIGRldmljZS4gTmVlZHMgdG8gdGFrZSB0aGUgQktMIG9ubHkgYmVjYXVzZSBvZiBpbmNyZW1lbnRpbmcgdGhlIFNDU0kgaG9zdAogICAgbW9kdWxlIGNvdW50LiAqLwogc3RhdGljIGludCBzdF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewpAQCAtMTEyMyw2ICsxMTI0LDcgQEAKIAlpbnQgZGV2ID0gVEFQRV9OUihpbm9kZSk7CiAJY2hhciAqbmFtZTsKIAorCWxvY2tfa2VybmVsKCk7CiAJLyoKIAkgKiBXZSByZWFsbHkgd2FudCB0byBkbyBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsgaGVyZSwgYnV0IHNvbWUKIAkgKiB2ZXJzaW9ucyBvZiB0YXIgaW5jb3JyZWN0bHkgY2FsbCBsc2VlayBvbiB0YXBlcyBhbmQgYmFpbCBvdXQgaWYgdGhhdApAQCAtMTEzMCw4ICsxMTMyLDEwIEBACiAJICovCiAJZmlscC0+Zl9tb2RlICY9IH4oRk1PREVfUFJFQUQgfCBGTU9ERV9QV1JJVEUpOwogCi0JaWYgKCEoU1RwID0gc2NzaV90YXBlX2dldChkZXYpKSkKKwlpZiAoIShTVHAgPSBzY3NpX3RhcGVfZ2V0KGRldikpKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTlhJTzsKKwl9CiAKIAl3cml0ZV9sb2NrKCZzdF9kZXZfYXJyX2xvY2spOwogCWZpbHAtPnByaXZhdGVfZGF0YSA9IFNUcDsKQEAgLTExNDAsNiArMTE0NCw3IEBACiAJaWYgKFNUcC0+aW5fdXNlKSB7CiAJCXdyaXRlX3VubG9jaygmc3RfZGV2X2Fycl9sb2NrKTsKIAkJc2NzaV90YXBlX3B1dChTVHApOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCURFQiggcHJpbnRrKFNUX0RFQl9NU0cgIiVzOiBEZXZpY2UgYWxyZWFkeSBpbiB1c2UuXG4iLCBuYW1lKTsgKQogCQlyZXR1cm4gKC1FQlVTWSk7CiAJfQpAQCAtMTE4OCwxMiArMTE5MywxNCBAQAogCQkJcmV0dmFsID0gKC1FSU8pOwogCQlnb3RvIGVycl9vdXQ7CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogIGVycl9vdXQ6CiAJbm9ybWFsaXplX2J1ZmZlcihTVHAtPmJ1ZmZlcik7CiAJU1RwLT5pbl91c2UgPSAwOwogCXNjc2lfdGFwZV9wdXQoU1RwKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldHZhbDsKIAogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvODI1MC5jIGIvZHJpdmVycy9zZXJpYWwvODI1MC5jCmluZGV4IDFiYzAwYjcuLmJlOTVlNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsLzgyNTAuYworKysgYi9kcml2ZXJzL3NlcmlhbC84MjUwLmMKQEAgLTI2MjMsNiArMjYyMyw5IEBACiAKIHN0YXRpYyBpbnQgX19pbml0IHNlcmlhbDgyNTBfY29uc29sZV9pbml0KHZvaWQpCiB7CisJaWYgKG5yX3VhcnRzID4gVUFSVF9OUikKKwkJbnJfdWFydHMgPSBVQVJUX05SOworCiAJc2VyaWFsODI1MF9pc2FfaW5pdF9wb3J0cygpOwogCXJlZ2lzdGVyX2NvbnNvbGUoJnNlcmlhbDgyNTBfY29uc29sZSk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9LY29uZmlnIGIvZHJpdmVycy9zZXJpYWwvS2NvbmZpZwppbmRleCA5YmM0Mjc2Li4xOGNhOTA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NlcmlhbC9LY29uZmlnCisrKyBiL2RyaXZlcnMvc2VyaWFsL0tjb25maWcKQEAgLTQ0OCwyMiArNDQ4LDI3IEBACiAJICB5b3VyIGJvb3QgbG9hZGVyIChsaWxvIG9yIGxvYWRsaW4pIGFib3V0IGhvdyB0byBwYXNzIG9wdGlvbnMgdG8gdGhlCiAJICBrZXJuZWwgYXQgYm9vdCB0aW1lLikKIAotY29uZmlnIFNFUklBTF9TM0MyNDEwCi0JdHJpc3RhdGUgIlNhbXN1bmcgUzNDMjQxMC9TM0MyNDQwL1MzQzI0NDIvUzNDMjQxMiBTZXJpYWwgcG9ydCBzdXBwb3J0IgotCWRlcGVuZHMgb24gQVJNICYmIEFSQ0hfUzNDMjQxMAotCXNlbGVjdCBTRVJJQUxfQ09SRQorY29uZmlnIFNFUklBTF9TQU1TVU5HCisJdHJpc3RhdGUgIlNhbXN1bmcgU29DIHNlcmlhbCBzdXBwb3J0IgorCWRlcGVuZHMgb24gQVJNICYmIFBMQVRfUzNDMjRYWAogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIHRoZSBvbi1jaGlwIFVBUlRzIG9uIHRoZSBTYW1zdW5nIFMzQzI0WFggc2VyaWVzIENQVXMsCiAJICBwcm92aWRpbmcgL2Rldi90dHlTQUMwLCAxIGFuZCAyIChub3RlLCBzb21lIG1hY2hpbmVzIG1heSBub3QKIAkgIHByb3ZpZGUgYWxsIG9mIHRoZXNlIHBvcnRzLCBkZXBlbmRpbmcgb24gaG93IHRoZSBzZXJpYWwgcG9ydAogCSAgcGlucyBhcmUgY29uZmlndXJlZC4KIAotCSAgQ3VycmVudGx5IHRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBVQVJUUyBvbiB0aGUgUzNDMjQxMCwgUzNDMjQ0MCwKLQkgIFMzQzI0NDIsIFMzQzI0MTIgYW5kIFMzQzI0MTMgQ1BVcy4KK2NvbmZpZyBTRVJJQUxfU0FNU1VOR19ERUJVRworCWJvb2wgIlNhbXN1bmcgU29DIHNlcmlhbCBkZWJ1ZyIKKwlkZXBlbmRzIG9uIFNFUklBTF9TQU1TVU5HCisJaGVscAorCSAgQWRkIHN1cHBvcnQgZm9yIGRlYnVnZ2luZyB0aGUgc2VyaWFsIGRyaXZlci4gU2luY2UgdGhpcyBpcworCSAgZ2VuZXJhbGx5IGJlaW5nIHVzZWQgYXMgYSBjb25zb2xlLCB3ZSB1c2Ugb3VyIG93biBvdXRwdXQKKwkgIHJvdXRpbmVzIHRoYXQgZ28gdmlhIHRoZSBsb3ctbGV2ZWwgZGVidWcgcHJpbnRhc2NpaSgpCisJICBmdW5jdGlvbi4KIAotY29uZmlnIFNFUklBTF9TM0MyNDEwX0NPTlNPTEUKLQlib29sICJTdXBwb3J0IGZvciBjb25zb2xlIG9uIFMzQzI0MTAgc2VyaWFsIHBvcnQiCi0JZGVwZW5kcyBvbiBTRVJJQUxfUzNDMjQxMD15Citjb25maWcgU0VSSUFMX1NBTVNVTkdfQ09OU09MRQorCWJvb2wgIlN1cHBvcnQgZm9yIGNvbnNvbGUgb24gU2Ftc3VuZyBTb0Mgc2VyaWFsIHBvcnQiCisJZGVwZW5kcyBvbiBTRVJJQUxfU0FNU1VORz15CiAJc2VsZWN0IFNFUklBTF9DT1JFX0NPTlNPTEUKIAloZWxwCiAJICBBbGxvdyBzZWxlY3Rpb24gb2YgdGhlIFMzQzI0WFggb24tYm9hcmQgc2VyaWFsIHBvcnRzIGZvciB1c2UgYXMKQEAgLTQ3Niw2ICs0ODEsMzcgQEAKIAkgIHlvdXIgYm9vdCBsb2FkZXIgYWJvdXQgaG93IHRvIHBhc3Mgb3B0aW9ucyB0byB0aGUga2VybmVsIGF0CiAJICBib290IHRpbWUuKQogCitjb25maWcgU0VSSUFMX1MzQzI0MDAKKwl0cmlzdGF0ZSAiU2Ftc3VuZyBTM0MyNDEwIFNlcmlhbCBwb3J0IHN1cHBvcnQiCisJZGVwZW5kcyBvbiBBUk0gJiYgU0VSSUFMX1NBTVNVTkcgJiYgQ1BVX1MzQzI0MDAKKwlkZWZhdWx0IHkgaWYgQ1BVX1MzQzI0MDAKKwloZWxwCisJICBTZXJpYWwgcG9ydCBzdXBwb3J0IGZvciB0aGUgU2Ftc3VuZyBTM0MyNDAwIFNvQworCitjb25maWcgU0VSSUFMX1MzQzI0MTAKKwl0cmlzdGF0ZSAiU2Ftc3VuZyBTM0MyNDEwIFNlcmlhbCBwb3J0IHN1cHBvcnQiCisJZGVwZW5kcyBvbiBTRVJJQUxfU0FNU1VORyAmJiBDUFVfUzNDMjQxMAorCWRlZmF1bHQgeSBpZiBDUFVfUzNDMjQxMAorCWhlbHAKKwkgIFNlcmlhbCBwb3J0IHN1cHBvcnQgZm9yIHRoZSBTYW1zdW5nIFMzQzI0MTAgU29DCisKK2NvbmZpZyBTRVJJQUxfUzNDMjQxMgorCXRyaXN0YXRlICJTYW1zdW5nIFMzQzI0MTIvUzNDMjQxMyBTZXJpYWwgcG9ydCBzdXBwb3J0IgorCWRlcGVuZHMgb24gU0VSSUFMX1NBTVNVTkcgJiYgQ1BVX1MzQzI0MTIKKwlkZWZhdWx0IHkgaWYgQ1BVX1MzQzI0MTIKKwloZWxwCisJICBTZXJpYWwgcG9ydCBzdXBwb3J0IGZvciB0aGUgU2Ftc3VuZyBTM0MyNDEyIGFuZCBTM0MyNDEzIFNvQworCitjb25maWcgU0VSSUFMX1MzQzI0NDAKKwl0cmlzdGF0ZSAiU2Ftc3VuZyBTM0MyNDQwL1MzQzI0NDIgU2VyaWFsIHBvcnQgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIFNFUklBTF9TQU1TVU5HICYmIChDUFVfUzNDMjQ0MCB8fCBDUFVfUzNDMjQ0MikKKwlkZWZhdWx0IHkgaWYgQ1BVX1MzQzI0NDAKKwlkZWZhdWx0IHkgaWYgQ1BVX1MzQzI0NDIKKwloZWxwCisJICBTZXJpYWwgcG9ydCBzdXBwb3J0IGZvciB0aGUgU2Ftc3VuZyBTM0MyNDQwIGFuZCBTM0MyNDQyIFNvQworCisKKwogY29uZmlnIFNFUklBTF9EWgogCWJvb2wgIkRFQ3N0YXRpb24gRFogc2VyaWFsIGRyaXZlciIKIAlkZXBlbmRzIG9uIE1BQ0hfREVDU1RBVElPTiAmJiAzMkJJVApAQCAtNzUzLDcgKzc4OSw3IEBACiAKIGNvbmZpZyBTRVJJQUxfSU1YCiAJYm9vbCAiSU1YIHNlcmlhbCBwb3J0IHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBBUk0gJiYgQVJDSF9JTVgKKwlkZXBlbmRzIG9uIEFSTSAmJiAoQVJDSF9JTVggfHwgQVJDSF9NWEMpCiAJc2VsZWN0IFNFUklBTF9DT1JFCiAJaGVscAogCSAgSWYgeW91IGhhdmUgYSBtYWNoaW5lIGJhc2VkIG9uIGEgTW90b3JvbGEgSU1YIENQVSB5b3UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL01ha2VmaWxlIGIvZHJpdmVycy9zZXJpYWwvTWFrZWZpbGUKaW5kZXggMGQ5YzA5Yi4uN2Q4NWMxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9zZXJpYWwvTWFrZWZpbGUKQEAgLTI4LDcgKzI4LDExIEBACiBvYmotJChDT05GSUdfU0VSSUFMX1NBMTEwMCkgKz0gc2ExMTAwLm8KIG9iai0kKENPTkZJR19TRVJJQUxfQkZJTikgKz0gYmZpbl81eHgubwogb2JqLSQoQ09ORklHX1NFUklBTF9CRklOX1NQT1JUKSArPSBiZmluX3Nwb3J0X3VhcnQubworb2JqLSQoQ09ORklHX1NFUklBTF9TQU1TVU5HKSArPSBzYW1zdW5nLm8KK29iai0kKENPTkZJR19TRVJJQUxfUzNDMjQwMCkgKz0gczNjMjQwMC5vCiBvYmotJChDT05GSUdfU0VSSUFMX1MzQzI0MTApICs9IHMzYzI0MTAubworb2JqLSQoQ09ORklHX1NFUklBTF9TM0MyNDEyKSArPSBzM2MyNDEyLm8KK29iai0kKENPTkZJR19TRVJJQUxfUzNDMjQ0MCkgKz0gczNjMjQ0MC5vCiBvYmotJChDT05GSUdfU0VSSUFMX1NVTkNPUkUpICs9IHN1bmNvcmUubwogb2JqLSQoQ09ORklHX1NFUklBTF9TVU5IVikgKz0gc3VuaHYubwogb2JqLSQoQ09ORklHX1NFUklBTF9TVU5aSUxPRykgKz0gc3Vuemlsb2cubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvYXRtZWxfc2VyaWFsLmMgYi9kcml2ZXJzL3NlcmlhbC9hdG1lbF9zZXJpYWwuYwppbmRleCA0MmJlOGIwMS4uNmFlZWYyMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL2F0bWVsX3NlcmlhbC5jCisrKyBiL2RyaXZlcnMvc2VyaWFsL2F0bWVsX3NlcmlhbC5jCkBAIC0xNDM5LDE0ICsxNDM5LDI5IEBACiB9OwogCiAjaWZkZWYgQ09ORklHX1BNCitzdGF0aWMgYm9vbCBhdG1lbF9zZXJpYWxfY2xrX3dpbGxfc3RvcCh2b2lkKQoreworI2lmZGVmIENPTkZJR19BUkNIX0FUOTEKKwlyZXR1cm4gYXQ5MV9zdXNwZW5kX2VudGVyaW5nX3Nsb3dfY2xvY2soKTsKKyNlbHNlCisJcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIHN0YXRpYyBpbnQgYXRtZWxfc2VyaWFsX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQlwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7CiAJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBhdG1lbF91YXJ0X3BvcnQgKmF0bWVsX3BvcnQgPSB0b19hdG1lbF91YXJ0X3BvcnQocG9ydCk7CiAKKwlpZiAoYXRtZWxfaXNfY29uc29sZV9wb3J0KHBvcnQpICYmIGNvbnNvbGVfc3VzcGVuZF9lbmFibGVkKSB7CisJCS8qIERyYWluIHRoZSBUWCBzaGlmdGVyICovCisJCXdoaWxlICghKFVBUlRfR0VUX0NTUihwb3J0KSAmIEFUTUVMX1VTX1RYRU1QVFkpKQorCQkJY3B1X3JlbGF4KCk7CisJfQorCiAJaWYgKGRldmljZV9tYXlfd2FrZXVwKCZwZGV2LT5kZXYpCi0JICAgICYmICFhdDkxX3N1c3BlbmRfZW50ZXJpbmdfc2xvd19jbG9jaygpKQorCSAgICAmJiAhYXRtZWxfc2VyaWFsX2Nsa193aWxsX3N0b3AoKSkKIAkJZW5hYmxlX2lycV93YWtlKHBvcnQtPmlycSk7CiAJZWxzZSB7CiAJCXVhcnRfc3VzcGVuZF9wb3J0KCZhdG1lbF91YXJ0LCBwb3J0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL2lteC5jIGIvZHJpdmVycy9zZXJpYWwvaW14LmMKaW5kZXggNWEzNzViZi4uNjRhY2IzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvaW14LmMKKysrIGIvZHJpdmVycy9zZXJpYWwvaW14LmMKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CkBAIC02MSw2ICs2MiwxMSBAQAogI2RlZmluZSBVQklSICAweGE0IC8qIEJSTSBJbmNyZW1lbnRhbCBSZWdpc3RlciAqLwogI2RlZmluZSBVQk1SICAweGE4IC8qIEJSTSBNb2R1bGF0b3IgUmVnaXN0ZXIgKi8KICNkZWZpbmUgVUJSQyAgMHhhYyAvKiBCYXVkIFJhdGUgQ291bnQgUmVnaXN0ZXIgKi8KKyNpZiBkZWZpbmVkIENPTkZJR19BUkNIX01YMyB8fCBkZWZpbmVkIENPTkZJR19BUkNIX01YMgorI2RlZmluZSBPTkVNUyAweGIwIC8qIE9uZSBNaWxsaXNlY29uZCByZWdpc3RlciAqLworI2RlZmluZSBVVFMgICAweGI0IC8qIFVBUlQgVGVzdCBSZWdpc3RlciAqLworI2VuZGlmCisjaWZkZWYgQ09ORklHX0FSQ0hfSU1YCiAjZGVmaW5lIEJJUFIxIDB4YjAgLyogSW5jcmVtZW50YWwgUHJlc2V0IFJlZ2lzdGVyIDEgKi8KICNkZWZpbmUgQklQUjIgMHhiNCAvKiBJbmNyZW1lbnRhbCBQcmVzZXQgUmVnaXN0ZXIgMiAqLwogI2RlZmluZSBCSVBSMyAweGI4IC8qIEluY3JlbWVudGFsIFByZXNldCBSZWdpc3RlciAzICovCkBAIC03MCw2ICs3Niw3IEBACiAjZGVmaW5lIEJNUFIzIDB4YzggLyogQlJNIE1vZHVsYXRvciBSZWdpc3RlciAzICovCiAjZGVmaW5lIEJNUFI0IDB4Y2MgLyogQlJNIE1vZHVsYXRvciBSZWdpc3RlciA0ICovCiAjZGVmaW5lIFVUUyAgIDB4ZDAgLyogVUFSVCBUZXN0IFJlZ2lzdGVyICovCisjZW5kaWYKIAogLyogVUFSVCBDb250cm9sIFJlZ2lzdGVyIEJpdCBGaWVsZHMuKi8KICNkZWZpbmUgIFVSWERfQ0hBUlJEWSAgICAoMTw8MTUpCkBAIC04OSw3ICs5NiwxMiBAQAogI2RlZmluZSAgVUNSMV9SVFNERU4gICAgICgxPDw1KQkgLyogUlRTIGRlbHRhIGludGVycnVwdCBlbmFibGUgKi8KICNkZWZpbmUgIFVDUjFfU05EQlJLICAgICAoMTw8NCkJIC8qIFNlbmQgYnJlYWsgKi8KICNkZWZpbmUgIFVDUjFfVERNQUVOICAgICAoMTw8MykJIC8qIFRyYW5zbWl0dGVyIHJlYWR5IERNQSBlbmFibGUgKi8KKyNpZmRlZiBDT05GSUdfQVJDSF9JTVgKICNkZWZpbmUgIFVDUjFfVUFSVENMS0VOICAoMTw8MikJIC8qIFVBUlQgY2xvY2sgZW5hYmxlZCAqLworI2VuZGlmCisjaWYgZGVmaW5lZCBDT05GSUdfQVJDSF9NWDMgfHwgZGVmaW5lZCBDT05GSUdfQVJDSF9NWDIKKyNkZWZpbmUgIFVDUjFfVUFSVENMS0VOICAoMCkJIC8qIG5vdCBwcmVzZW50IG9uIG14Mi9teDMgKi8KKyNlbmRpZgogI2RlZmluZSAgVUNSMV9ET1pFICAgICAgICgxPDwxKQkgLyogRG96ZSAqLwogI2RlZmluZSAgVUNSMV9VQVJURU4gICAgICgxPDwwKQkgLyogVUFSVCBlbmFibGVkICovCiAjZGVmaW5lICBVQ1IyX0VTQ0kgICAgIAkgKDE8PDE1KSAvKiBFc2NhcGUgc2VxIGludGVycnVwdCBlbmFibGUgKi8KQEAgLTE2Myw4ICsxNzUsMTkgQEAKICNkZWZpbmUgIFVUU19TT0ZUUlNUCSAoMTw8MCkJIC8qIFNvZnR3YXJlIHJlc2V0ICovCiAKIC8qIFdlJ3ZlIGJlZW4gYXNzaWduZWQgYSByYW5nZSBvbiB0aGUgIkxvdy1kZW5zaXR5IHNlcmlhbCBwb3J0cyIgbWFqb3IgKi8KKyNpZmRlZiBDT05GSUdfQVJDSF9JTVgKICNkZWZpbmUgU0VSSUFMX0lNWF9NQUpPUgkyMDQKICNkZWZpbmUgTUlOT1JfU1RBUlQJCTQxCisjZGVmaW5lIERFVl9OQU1FCQkidHR5U01YIgorI2RlZmluZSBNQVhfSU5URVJOQUxfSVJRCUlNWF9JUlFTCisjZW5kaWYKKworI2lmIGRlZmluZWQgQ09ORklHX0FSQ0hfTVgzIHx8IGRlZmluZWQgQ09ORklHX0FSQ0hfTVgyCisjZGVmaW5lIFNFUklBTF9JTVhfTUFKT1IgICAgICAgIDIwNworI2RlZmluZSBNSU5PUl9TVEFSVAkgICAgICAgIDE2CisjZGVmaW5lIERFVl9OQU1FCQkidHR5bXhjIgorI2RlZmluZSBNQVhfSU5URVJOQUxfSVJRCU1YQ19NQVhfSU5UX0xJTkVTCisjZW5kaWYKIAogLyoKICAqIFRoaXMgZGV0ZXJtaW5lcyBob3cgb2Z0ZW4gd2UgY2hlY2sgdGhlIG1vZGVtIHN0YXR1cyBzaWduYWxzCkBAIC0xNzYsMTIgKzE5OSwxNSBAQAogCiAjZGVmaW5lIERSSVZFUl9OQU1FICJJTVgtdWFydCIKIAorI2RlZmluZSBVQVJUX05SIDgKKwogc3RydWN0IGlteF9wb3J0IHsKIAlzdHJ1Y3QgdWFydF9wb3J0CXBvcnQ7CiAJc3RydWN0IHRpbWVyX2xpc3QJdGltZXI7CiAJdW5zaWduZWQgaW50CQlvbGRfc3RhdHVzOwogCWludAkJCXR4aXJxLHJ4aXJxLHJ0c2lycTsKIAlpbnQJCQloYXZlX3J0c2N0czoxOworCXN0cnVjdCBjbGsJCSpjbGs7CiB9OwogCiAvKgpAQCAtNDA1LDYgKzQzMSwyNiBAQAogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIAorc3RhdGljIGlycXJldHVybl90IGlteF9pbnQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBpbXhfcG9ydCAqc3BvcnQgPSBkZXZfaWQ7CisJdW5zaWduZWQgaW50IHN0czsKKworCXN0cyA9IHJlYWRsKHNwb3J0LT5wb3J0Lm1lbWJhc2UgKyBVU1IxKTsKKworCWlmIChzdHMgJiBVU1IxX1JSRFkpCisJCWlteF9yeGludChpcnEsIGRldl9pZCk7CisKKwlpZiAoc3RzICYgVVNSMV9UUkRZICYmCisJCQlyZWFkbChzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUNSMSkgJiBVQ1IxX1RYTVBUWUVOKQorCQlpbXhfdHhpbnQoaXJxLCBkZXZfaWQpOworCisJaWYgKHN0cyAmIFVTUjFfUlRTUykKKwkJaW14X3J0c2ludChpcnEsIGRldl9pZCk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKIC8qCiAgKiBSZXR1cm4gVElPQ1NFUl9URU1UIHdoZW4gdHJhbnNtaXR0ZXIgaXMgbm90IGJ1c3kuCiAgKi8KQEAgLTQ3Nyw3ICs1MjMsOCBAQAogCSAqIFJGRElWIGlzIHNldCBzdWNoIHdheSB0byBzYXRpc2Z5IHJlcXVlc3RlZCB1YXJ0Y2xrIHZhbHVlCiAJICovCiAJdmFsID0gVFhUTCA8PCAxMCB8IFJYVEw7Ci0JdWZjcl9yZmRpdiA9IChpbXhfZ2V0X3BlcmNsazEoKSArIHNwb3J0LT5wb3J0LnVhcnRjbGsgLyAyKSAvIHNwb3J0LT5wb3J0LnVhcnRjbGs7CisJdWZjcl9yZmRpdiA9IChjbGtfZ2V0X3JhdGUoc3BvcnQtPmNsaykgKyBzcG9ydC0+cG9ydC51YXJ0Y2xrIC8gMikKKwkJCS8gc3BvcnQtPnBvcnQudWFydGNsazsKIAogCWlmKCF1ZmNyX3JmZGl2KQogCQl1ZmNyX3JmZGl2ID0gMTsKQEAgLTUwOSwyMSArNTU2LDM0IEBACiAJd3JpdGVsKHRlbXAgJiB+VUNSNF9EUkVOLCBzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUNSNCk7CiAKIAkvKgotCSAqIEFsbG9jYXRlIHRoZSBJUlEKKwkgKiBBbGxvY2F0ZSB0aGUgSVJRKHMpIGkuTVgxIGhhcyB0aHJlZSBpbnRlcnJ1cHRzIHdoZXJlYXMgbGF0ZXIKKwkgKiBjaGlwcyBvbmx5IGhhdmUgb25lIGludGVycnVwdC4KIAkgKi8KLQlyZXR2YWwgPSByZXF1ZXN0X2lycShzcG9ydC0+cnhpcnEsIGlteF9yeGludCwgMCwKLQkJCSAgICAgRFJJVkVSX05BTUUsIHNwb3J0KTsKLQlpZiAocmV0dmFsKSBnb3RvIGVycm9yX291dDE7CisJaWYgKHNwb3J0LT50eGlycSA+IDApIHsKKwkJcmV0dmFsID0gcmVxdWVzdF9pcnEoc3BvcnQtPnJ4aXJxLCBpbXhfcnhpbnQsIDAsCisJCQkJRFJJVkVSX05BTUUsIHNwb3J0KTsKKwkJaWYgKHJldHZhbCkKKwkJCWdvdG8gZXJyb3Jfb3V0MTsKIAotCXJldHZhbCA9IHJlcXVlc3RfaXJxKHNwb3J0LT50eGlycSwgaW14X3R4aW50LCAwLAotCQkJICAgICBEUklWRVJfTkFNRSwgc3BvcnQpOwotCWlmIChyZXR2YWwpIGdvdG8gZXJyb3Jfb3V0MjsKKwkJcmV0dmFsID0gcmVxdWVzdF9pcnEoc3BvcnQtPnR4aXJxLCBpbXhfdHhpbnQsIDAsCisJCQkJRFJJVkVSX05BTUUsIHNwb3J0KTsKKwkJaWYgKHJldHZhbCkKKwkJCWdvdG8gZXJyb3Jfb3V0MjsKIAotCXJldHZhbCA9IHJlcXVlc3RfaXJxKHNwb3J0LT5ydHNpcnEsIGlteF9ydHNpbnQsCi0JCQkgICAgIChzcG9ydC0+cnRzaXJxIDwgSU1YX0lSUVMpID8gMCA6CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKHNwb3J0LT5ydHNpcnEsIGlteF9ydHNpbnQsCisJCQkgICAgIChzcG9ydC0+cnRzaXJxIDwgTUFYX0lOVEVSTkFMX0lSUSkgPyAwIDoKIAkJCSAgICAgICBJUlFGX1RSSUdHRVJfRkFMTElORyB8IElSUUZfVFJJR0dFUl9SSVNJTkcsCi0JCQkgICAgIERSSVZFUl9OQU1FLCBzcG9ydCk7Ci0JaWYgKHJldHZhbCkgZ290byBlcnJvcl9vdXQzOworCQkJCURSSVZFUl9OQU1FLCBzcG9ydCk7CisJCWlmIChyZXR2YWwpCisJCQlnb3RvIGVycm9yX291dDM7CisJfSBlbHNlIHsKKwkJcmV0dmFsID0gcmVxdWVzdF9pcnEoc3BvcnQtPnBvcnQuaXJxLCBpbXhfaW50LCAwLAorCQkJCURSSVZFUl9OQU1FLCBzcG9ydCk7CisJCWlmIChyZXR2YWwpIHsKKwkJCWZyZWVfaXJxKHNwb3J0LT5wb3J0LmlycSwgc3BvcnQpOworCQkJZ290byBlcnJvcl9vdXQxOworCQl9CisJfQogCiAJLyoKIAkgKiBGaW5hbGx5LCBjbGVhciBhbmQgZW5hYmxlIGludGVycnVwdHMKQEAgLTU0OCw5ICs2MDgsMTEgQEAKIAlyZXR1cm4gMDsKIAogZXJyb3Jfb3V0MzoKLQlmcmVlX2lycShzcG9ydC0+dHhpcnEsIHNwb3J0KTsKKwlpZiAoc3BvcnQtPnR4aXJxKQorCQlmcmVlX2lycShzcG9ydC0+dHhpcnEsIHNwb3J0KTsKIGVycm9yX291dDI6Ci0JZnJlZV9pcnEoc3BvcnQtPnJ4aXJxLCBzcG9ydCk7CisJaWYgKHNwb3J0LT5yeGlycSkKKwkJZnJlZV9pcnEoc3BvcnQtPnJ4aXJxLCBzcG9ydCk7CiBlcnJvcl9vdXQxOgogCXJldHVybiByZXR2YWw7CiB9CkBAIC01NjgsOSArNjMwLDEyIEBACiAJLyoKIAkgKiBGcmVlIHRoZSBpbnRlcnJ1cHRzCiAJICovCi0JZnJlZV9pcnEoc3BvcnQtPnJ0c2lycSwgc3BvcnQpOwotCWZyZWVfaXJxKHNwb3J0LT50eGlycSwgc3BvcnQpOwotCWZyZWVfaXJxKHNwb3J0LT5yeGlycSwgc3BvcnQpOworCWlmIChzcG9ydC0+dHhpcnEgPiAwKSB7CisJCWZyZWVfaXJxKHNwb3J0LT5ydHNpcnEsIHNwb3J0KTsKKwkJZnJlZV9pcnEoc3BvcnQtPnR4aXJxLCBzcG9ydCk7CisJCWZyZWVfaXJxKHNwb3J0LT5yeGlycSwgc3BvcnQpOworCX0gZWxzZQorCQlmcmVlX2lycShzcG9ydC0+cG9ydC5pcnEsIHNwb3J0KTsKIAogCS8qCiAJICogRGlzYWJsZSBhbGwgaW50ZXJydXB0cywgcG9ydCBhbmQgYnJlYWsgY29uZGl0aW9uLgpAQCAtNTg5LDYgKzY1NCw3IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1bnNpZ25lZCBpbnQgdWNyMiwgb2xkX3VjcjEsIG9sZF90eHJ4ZW4sIGJhdWQsIHF1b3Q7CiAJdW5zaWduZWQgaW50IG9sZF9jc2l6ZSA9IG9sZCA/IG9sZC0+Y19jZmxhZyAmIENTSVpFIDogQ1M4OworCXVuc2lnbmVkIGludCBkaXYsIG51bSwgZGVub20sIHVmY3I7CiAKIAkvKgogCSAqIElmIHdlIGRvbid0IHN1cHBvcnQgbW9kZW0gY29udHJvbCBsaW5lcywgZG9uJ3QgYWxsb3cKQEAgLTYzNCw3ICs3MDAsNyBAQAogCS8qCiAJICogQXNrIHRoZSBjb3JlIHRvIGNhbGN1bGF0ZSB0aGUgZGl2aXNvciBmb3IgdXMuCiAJICovCi0JYmF1ZCA9IHVhcnRfZ2V0X2JhdWRfcmF0ZShwb3J0LCB0ZXJtaW9zLCBvbGQsIDAsIHBvcnQtPnVhcnRjbGsvMTYpOworCWJhdWQgPSB1YXJ0X2dldF9iYXVkX3JhdGUocG9ydCwgdGVybWlvcywgb2xkLCA1MCwgcG9ydC0+dWFydGNsayAvIDE2KTsKIAlxdW90ID0gdWFydF9nZXRfZGl2aXNvcihwb3J0LCBiYXVkKTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZzcG9ydC0+cG9ydC5sb2NrLCBmbGFncyk7CkBAIC02ODQsMTQgKzc1MCw0MSBAQAogCQkJc3BvcnQtPnBvcnQubWVtYmFzZSArIFVDUjIpOwogCW9sZF90eHJ4ZW4gJj0gKFVDUjJfVFhFTiB8IFVDUjJfUlhFTik7CiAKLQkvKiBzZXQgdGhlIGJhdWQgcmF0ZS4gV2UgYXNzdW1lIHVhcnRjbGsgPSAxNiBNSHoKLQkgKgotCSAqIGJhdWQgKiAxNiAgIFVCSVIgLSAxCi0JICogLS0tLS0tLS0tID0gLS0tLS0tLS0KLQkgKiAgdWFydGNsayAgICBVQk1SIC0gMQotCSAqLwotCXdyaXRlbCgoYmF1ZCAvIDEwMCkgLSAxLCBzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUJJUik7Ci0Jd3JpdGVsKDEwMDAwIC0gMSwgc3BvcnQtPnBvcnQubWVtYmFzZSArIFVCTVIpOworCWRpdiA9IHNwb3J0LT5wb3J0LnVhcnRjbGsgLyAoYmF1ZCAqIDE2KTsKKwlpZiAoZGl2ID4gNykKKwkJZGl2ID0gNzsKKwlpZiAoIWRpdikKKwkJZGl2ID0gMTsKKworCW51bSA9IGJhdWQ7CisJZGVub20gPSBwb3J0LT51YXJ0Y2xrIC8gZGl2IC8gMTY7CisKKwkvKiBzaGlmdCBudW0gYW5kIGRlbm9tIHJpZ2h0IHVudGlsIHRoZXkgZml0IGludG8gMTYgYml0cyAqLworCXdoaWxlIChudW0gPiAweDEwMDAwIHx8IGRlbm9tID4gMHgxMDAwMCkgeworCQludW0gPj49IDE7CisJCWRlbm9tID4+PSAxOworCX0KKwlpZiAobnVtID4gMCkKKwkJbnVtIC09IDE7CisJaWYgKGRlbm9tID4gMCkKKwkJZGVub20gLT0gMTsKKworCXdyaXRlbChudW0sIHNwb3J0LT5wb3J0Lm1lbWJhc2UgKyBVQklSKTsKKwl3cml0ZWwoZGVub20sIHNwb3J0LT5wb3J0Lm1lbWJhc2UgKyBVQk1SKTsKKworCWlmIChkaXYgPT0gNykKKwkJZGl2ID0gNjsgLyogNiBpbiBSRkRJViBtZWFucyBkaXZpZGUgYnkgNyAqLworCWVsc2UKKwkJZGl2ID0gNiAtIGRpdjsKKworCXVmY3IgPSByZWFkbChzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUZDUik7CisJdWZjciA9ICh1ZmNyICYgKH5VRkNSX1JGRElWKSkgfAorCSAgICAoZGl2IDw8IDcpOworCXdyaXRlbCh1ZmNyLCBzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUZDUik7CisKKyNpZmRlZiBPTkVNUworCXdyaXRlbChzcG9ydC0+cG9ydC51YXJ0Y2xrIC8gZGl2IC8gMTAwMCwgc3BvcnQtPnBvcnQubWVtYmFzZSArIE9ORU1TKTsKKyNlbmRpZgogCiAJd3JpdGVsKG9sZF91Y3IxLCBzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUNSMSk7CiAKQEAgLTgwMSw2NSArODk0LDcgQEAKIAkudmVyaWZ5X3BvcnQJPSBpbXhfdmVyaWZ5X3BvcnQsCiB9OwogCi1zdGF0aWMgc3RydWN0IGlteF9wb3J0IGlteF9wb3J0c1tdID0gewotCXsKLQkudHhpcnEgID0gVUFSVDFfTUlOVF9UWCwKLQkucnhpcnEgID0gVUFSVDFfTUlOVF9SWCwKLQkucnRzaXJxID0gVUFSVDFfTUlOVF9SVFMsCi0JLnBvcnQJPSB7Ci0JCS50eXBlCQk9IFBPUlRfSU1YLAotCQkuaW90eXBlCQk9IFVQSU9fTUVNLAotCQkubWVtYmFzZQk9ICh2b2lkICopSU1YX1VBUlQxX0JBU0UsCi0JCS5tYXBiYXNlCT0gMHgwMDIwNjAwMCwKLQkJLmlycQkJPSBVQVJUMV9NSU5UX1JYLAotCQkudWFydGNsawk9IDE2MDAwMDAwLAotCQkuZmlmb3NpemUJPSAzMiwKLQkJLmZsYWdzCQk9IFVQRl9CT09UX0FVVE9DT05GLAotCQkub3BzCQk9ICZpbXhfcG9wcywKLQkJLmxpbmUJCT0gMCwKLQl9LAotCX0sIHsKLQkudHhpcnEgID0gVUFSVDJfTUlOVF9UWCwKLQkucnhpcnEgID0gVUFSVDJfTUlOVF9SWCwKLQkucnRzaXJxID0gVUFSVDJfTUlOVF9SVFMsCi0JLnBvcnQJPSB7Ci0JCS50eXBlCQk9IFBPUlRfSU1YLAotCQkuaW90eXBlCQk9IFVQSU9fTUVNLAotCQkubWVtYmFzZQk9ICh2b2lkICopSU1YX1VBUlQyX0JBU0UsCi0JCS5tYXBiYXNlCT0gMHgwMDIwNzAwMCwKLQkJLmlycQkJPSBVQVJUMl9NSU5UX1JYLAotCQkudWFydGNsawk9IDE2MDAwMDAwLAotCQkuZmlmb3NpemUJPSAzMiwKLQkJLmZsYWdzCQk9IFVQRl9CT09UX0FVVE9DT05GLAotCQkub3BzCQk9ICZpbXhfcG9wcywKLQkJLmxpbmUJCT0gMSwKLQl9LAotCX0KLX07Ci0KLS8qCi0gKiBTZXR1cCB0aGUgSU1YIHNlcmlhbCBwb3J0cy4KLSAqIE5vdGUgYWxzbyB0aGF0IHdlIHN1cHBvcnQgImNvbnNvbGU9dHR5U01YeCIgd2hlcmUgIngiIGlzIGVpdGhlciAwIG9yIDEuCi0gKiBXaGljaCBzZXJpYWwgcG9ydCB0aGlzIGVuZHMgdXAgYmVpbmcgZGVwZW5kcyBvbiB0aGUgbWFjaGluZSB5b3UncmUKLSAqIHJ1bm5pbmcgdGhpcyBrZXJuZWwgb24uICBJJ20gbm90IGNvbnZpbmNlZCB0aGF0IHRoaXMgaXMgYSBnb29kIGlkZWEsCi0gKiBidXQgdGhhdCdzIHRoZSB3YXkgaXQgdHJhZGl0aW9uYWxseSB3b3Jrcy4KLSAqCi0gKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBpbXhfaW5pdF9wb3J0cyh2b2lkKQotewotCXN0YXRpYyBpbnQgZmlyc3QgPSAxOwotCWludCBpOwotCi0JaWYgKCFmaXJzdCkKLQkJcmV0dXJuOwotCWZpcnN0ID0gMDsKLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGlteF9wb3J0cyk7IGkrKykgewotCQlpbml0X3RpbWVyKCZpbXhfcG9ydHNbaV0udGltZXIpOwotCQlpbXhfcG9ydHNbaV0udGltZXIuZnVuY3Rpb24gPSBpbXhfdGltZW91dDsKLQkJaW14X3BvcnRzW2ldLnRpbWVyLmRhdGEgICAgID0gKHVuc2lnbmVkIGxvbmcpJmlteF9wb3J0c1tpXTsKLQl9Ci19CitzdGF0aWMgc3RydWN0IGlteF9wb3J0ICppbXhfcG9ydHNbVUFSVF9OUl07CiAKICNpZmRlZiBDT05GSUdfU0VSSUFMX0lNWF9DT05TT0xFCiBzdGF0aWMgdm9pZCBpbXhfY29uc29sZV9wdXRjaGFyKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBjaCkKQEAgLTg3OCw3ICs5MTMsNyBAQAogc3RhdGljIHZvaWQKIGlteF9jb25zb2xlX3dyaXRlKHN0cnVjdCBjb25zb2xlICpjbywgY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGNvdW50KQogewotCXN0cnVjdCBpbXhfcG9ydCAqc3BvcnQgPSAmaW14X3BvcnRzW2NvLT5pbmRleF07CisJc3RydWN0IGlteF9wb3J0ICpzcG9ydCA9IGlteF9wb3J0c1tjby0+aW5kZXhdOwogCXVuc2lnbmVkIGludCBvbGRfdWNyMSwgb2xkX3VjcjI7CiAKIAkvKgpAQCAtOTQ0LDcgKzk3OSw3IEBACiAJCWVsc2UKIAkJCXVjZnJfcmZkaXYgPSA2IC0gdWNmcl9yZmRpdjsKIAotCQl1YXJ0Y2xrID0gaW14X2dldF9wZXJjbGsxKCk7CisJCXVhcnRjbGsgPSBjbGtfZ2V0X3JhdGUoc3BvcnQtPmNsayk7CiAJCXVhcnRjbGsgLz0gdWNmcl9yZmRpdjsKIAogCQl7CS8qCkBAIC05ODQsNyArMTAxOSw3IEBACiAJICovCiAJaWYgKGNvLT5pbmRleCA9PSAtMSB8fCBjby0+aW5kZXggPj0gQVJSQVlfU0laRShpbXhfcG9ydHMpKQogCQljby0+aW5kZXggPSAwOwotCXNwb3J0ID0gJmlteF9wb3J0c1tjby0+aW5kZXhdOworCXNwb3J0ID0gaW14X3BvcnRzW2NvLT5pbmRleF07CiAKIAlpZiAob3B0aW9ucykKIAkJdWFydF9wYXJzZV9vcHRpb25zKG9wdGlvbnMsICZiYXVkLCAmcGFyaXR5LCAmYml0cywgJmZsb3cpOwpAQCAtOTk4LDcgKzEwMzMsNyBAQAogCiBzdGF0aWMgc3RydWN0IHVhcnRfZHJpdmVyIGlteF9yZWc7CiBzdGF0aWMgc3RydWN0IGNvbnNvbGUgaW14X2NvbnNvbGUgPSB7Ci0JLm5hbWUJCT0gInR0eVNNWCIsCisJLm5hbWUJCT0gREVWX05BTUUsCiAJLndyaXRlCQk9IGlteF9jb25zb2xlX3dyaXRlLAogCS5kZXZpY2UJCT0gdWFydF9jb25zb2xlX2RldmljZSwKIAkuc2V0dXAJCT0gaW14X2NvbnNvbGVfc2V0dXAsCkBAIC0xMDA3LDE0ICsxMDQyLDYgQEAKIAkuZGF0YQkJPSAmaW14X3JlZywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGlteF9yc19jb25zb2xlX2luaXQodm9pZCkKLXsKLQlpbXhfaW5pdF9wb3J0cygpOwotCXJlZ2lzdGVyX2NvbnNvbGUoJmlteF9jb25zb2xlKTsKLQlyZXR1cm4gMDsKLX0KLWNvbnNvbGVfaW5pdGNhbGwoaW14X3JzX2NvbnNvbGVfaW5pdCk7Ci0KICNkZWZpbmUgSU1YX0NPTlNPTEUJJmlteF9jb25zb2xlCiAjZWxzZQogI2RlZmluZSBJTVhfQ09OU09MRQlOVUxMCkBAIC0xMDIzLDcgKzEwNTAsNyBAQAogc3RhdGljIHN0cnVjdCB1YXJ0X2RyaXZlciBpbXhfcmVnID0gewogCS5vd25lciAgICAgICAgICA9IFRISVNfTU9EVUxFLAogCS5kcml2ZXJfbmFtZSAgICA9IERSSVZFUl9OQU1FLAotCS5kZXZfbmFtZSAgICAgICA9ICJ0dHlTTVgiLAorCS5kZXZfbmFtZSAgICAgICA9IERFVl9OQU1FLAogCS5tYWpvciAgICAgICAgICA9IFNFUklBTF9JTVhfTUFKT1IsCiAJLm1pbm9yICAgICAgICAgID0gTUlOT1JfU1RBUlQsCiAJLm5yICAgICAgICAgICAgID0gQVJSQVlfU0laRShpbXhfcG9ydHMpLApAQCAtMTA1MCwyOSArMTA3Nyw5OCBAQAogICAgICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzZXJpYWxfaW14X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgc2VyaWFsX2lteF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogeworCXN0cnVjdCBpbXhfcG9ydCAqc3BvcnQ7CiAJc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSAqcGRhdGE7CisJdm9pZCBfX2lvbWVtICpiYXNlOworCWludCByZXQgPSAwOworCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCi0JaW14X3BvcnRzW2Rldi0+aWRdLnBvcnQuZGV2ID0gJmRldi0+ZGV2OworCXNwb3J0ID0ga3phbGxvYyhzaXplb2YoKnNwb3J0KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzcG9ydCkKKwkJcmV0dXJuIC1FTk9NRU07CiAKLQlwZGF0YSA9IChzdHJ1Y3QgaW14dWFydF9wbGF0Zm9ybV9kYXRhICopZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCWlmICghcmVzKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gZnJlZTsKKwl9CisKKwliYXNlID0gaW9yZW1hcChyZXMtPnN0YXJ0LCBQQUdFX1NJWkUpOworCWlmICghYmFzZSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGZyZWU7CisJfQorCisJc3BvcnQtPnBvcnQuZGV2ID0gJnBkZXYtPmRldjsKKwlzcG9ydC0+cG9ydC5tYXBiYXNlID0gcmVzLT5zdGFydDsKKwlzcG9ydC0+cG9ydC5tZW1iYXNlID0gYmFzZTsKKwlzcG9ydC0+cG9ydC50eXBlID0gUE9SVF9JTVgsCisJc3BvcnQtPnBvcnQuaW90eXBlID0gVVBJT19NRU07CisJc3BvcnQtPnBvcnQuaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKwlzcG9ydC0+cnhpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOworCXNwb3J0LT50eGlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMSk7CisJc3BvcnQtPnJ0c2lycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMik7CisJc3BvcnQtPnBvcnQuZmlmb3NpemUgPSAzMjsKKwlzcG9ydC0+cG9ydC5vcHMgPSAmaW14X3BvcHM7CisJc3BvcnQtPnBvcnQuZmxhZ3MgPSBVUEZfQk9PVF9BVVRPQ09ORjsKKwlzcG9ydC0+cG9ydC5saW5lID0gcGRldi0+aWQ7CisJaW5pdF90aW1lcigmc3BvcnQtPnRpbWVyKTsKKwlzcG9ydC0+dGltZXIuZnVuY3Rpb24gPSBpbXhfdGltZW91dDsKKwlzcG9ydC0+dGltZXIuZGF0YSAgICAgPSAodW5zaWduZWQgbG9uZylzcG9ydDsKKworCXNwb3J0LT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJ1YXJ0X2NsayIpOworCWlmIChJU19FUlIoc3BvcnQtPmNsaykpIHsKKwkJcmV0ID0gUFRSX0VSUihzcG9ydC0+Y2xrKTsKKwkJZ290byB1bm1hcDsKKwl9CisJY2xrX2VuYWJsZShzcG9ydC0+Y2xrKTsKKworCXNwb3J0LT5wb3J0LnVhcnRjbGsgPSBjbGtfZ2V0X3JhdGUoc3BvcnQtPmNsayk7CisKKwlpbXhfcG9ydHNbcGRldi0+aWRdID0gc3BvcnQ7CisKKwlwZGF0YSA9IHBkZXYtPmRldi5wbGF0Zm9ybV9kYXRhOwogCWlmKHBkYXRhICYmIChwZGF0YS0+ZmxhZ3MgJiBJTVhVQVJUX0hBVkVfUlRTQ1RTKSkKLQkJaW14X3BvcnRzW2Rldi0+aWRdLmhhdmVfcnRzY3RzID0gMTsKKwkJc3BvcnQtPmhhdmVfcnRzY3RzID0gMTsKIAotCXVhcnRfYWRkX29uZV9wb3J0KCZpbXhfcmVnLCAmaW14X3BvcnRzW2Rldi0+aWRdLnBvcnQpOwotCXBsYXRmb3JtX3NldF9kcnZkYXRhKGRldiwgJmlteF9wb3J0c1tkZXYtPmlkXSk7CisJaWYgKHBkYXRhLT5pbml0KQorCQlwZGF0YS0+aW5pdChwZGV2KTsKKworCXVhcnRfYWRkX29uZV9wb3J0KCZpbXhfcmVnLCAmc3BvcnQtPnBvcnQpOworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsICZzcG9ydC0+cG9ydCk7CisKIAlyZXR1cm4gMDsKK3VubWFwOgorCWlvdW5tYXAoc3BvcnQtPnBvcnQubWVtYmFzZSk7CitmcmVlOgorCWtmcmVlKHNwb3J0KTsKKworCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgc2VyaWFsX2lteF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQorc3RhdGljIGludCBzZXJpYWxfaW14X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewotCXN0cnVjdCBpbXhfcG9ydCAqc3BvcnQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgKnBkYXRhOworCXN0cnVjdCBpbXhfcG9ydCAqc3BvcnQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAotCXBsYXRmb3JtX3NldF9kcnZkYXRhKGRldiwgTlVMTCk7CisJcGRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKIAotCWlmIChzcG9ydCkKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKworCWlmIChzcG9ydCkgewogCQl1YXJ0X3JlbW92ZV9vbmVfcG9ydCgmaW14X3JlZywgJnNwb3J0LT5wb3J0KTsKKwkJY2xrX3B1dChzcG9ydC0+Y2xrKTsKKwl9CisKKwljbGtfZGlzYWJsZShzcG9ydC0+Y2xrKTsKKworCWlmIChwZGF0YS0+ZXhpdCkKKwkJcGRhdGEtPmV4aXQocGRldik7CisKKwlpb3VubWFwKHNwb3J0LT5wb3J0Lm1lbWJhc2UpOworCWtmcmVlKHNwb3J0KTsKIAogCXJldHVybiAwOwogfQpAQCAtMTA5NSw4ICsxMTkxLDYgQEAKIAogCXByaW50ayhLRVJOX0lORk8gIlNlcmlhbDogSU1YIGRyaXZlclxuIik7CiAKLQlpbXhfaW5pdF9wb3J0cygpOwotCiAJcmV0ID0gdWFydF9yZWdpc3Rlcl9kcml2ZXIoJmlteF9yZWcpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zM2MyNDAwLmMgYi9kcml2ZXJzL3NlcmlhbC9zM2MyNDAwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTExMDIwNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvc2VyaWFsL3MzYzI0MDAuYwpAQCAtMCwwICsxLDEwNiBAQAorLyogbGludXgvZHJpdmVycy9zZXJpYWwvczNjMjQwLmMKKyAqCisgKiBEcml2ZXIgZm9yIFNhbXN1bmcgU29DIG9uYm9hcmQgVUFSVHMuCisgKgorICogQmVuIERvb2tzLCBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KKworI2luY2x1ZGUgInNhbXN1bmcuaCIKKworc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9nZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKK3sKKwljbGstPmRpdmlzb3IgPSAxOworCWNsay0+bmFtZSA9ICJwY2xrIjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHMzYzI0MDBfc2VyaWFsX3NldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHMzYzI0MDBfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCit7CisJZGJnKCJzM2MyNDAwX3NlcmlhbF9yZXNldHBvcnQ6IHBvcnQ9JXAgKCUwOGx4KSwgY2ZnPSVwXG4iLAorCSAgICBwb3J0LCBwb3J0LT5tYXBiYXNlLCBjZmcpOworCisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sICBjZmctPnVjb24pOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgY2ZnLT51bGNvbik7CisKKwkvKiByZXNldCBib3RoIGZpZm9zICovCisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24gfCBTM0MyNDEwX1VGQ09OX1JFU0VUQk9USCk7CisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvIHMzYzI0MDBfdWFydF9pbmYgPSB7CisJLm5hbWUJCT0gIlNhbXN1bmcgUzNDMjQwMCBVQVJUIiwKKwkudHlwZQkJPSBQT1JUX1MzQzI0MDAsCisJLmZpZm9zaXplCT0gMTYsCisJLnJ4X2ZpZm9tYXNrCT0gUzNDMjQxMF9VRlNUQVRfUlhNQVNLLAorCS5yeF9maWZvc2hpZnQJPSBTM0MyNDEwX1VGU1RBVF9SWFNISUZULAorCS5yeF9maWZvZnVsbAk9IFMzQzI0MTBfVUZTVEFUX1JYRlVMTCwKKwkudHhfZmlmb2Z1bGwJPSBTM0MyNDEwX1VGU1RBVF9UWEZVTEwsCisJLnR4X2ZpZm9tYXNrCT0gUzNDMjQxMF9VRlNUQVRfVFhNQVNLLAorCS50eF9maWZvc2hpZnQJPSBTM0MyNDEwX1VGU1RBVF9UWFNISUZULAorCS5nZXRfY2xrc3JjCT0gczNjMjQwMF9zZXJpYWxfZ2V0c291cmNlLAorCS5zZXRfY2xrc3JjCT0gczNjMjQwMF9zZXJpYWxfc2V0c291cmNlLAorCS5yZXNldF9wb3J0CT0gczNjMjQwMF9zZXJpYWxfcmVzZXRwb3J0LAorfTsKKworc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3Byb2JlKGRldiwgJnMzYzI0MDBfdWFydF9pbmYpOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2MyNDAwX3NlcmlhbF9kcnYgPSB7CisJLnByb2JlCQk9IHMzYzI0MDBfc2VyaWFsX3Byb2JlLAorCS5yZW1vdmUJCT0gczNjMjR4eF9zZXJpYWxfcmVtb3ZlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJzM2MyNDAwLXVhcnQiLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9LAorfTsKKworczNjMjR4eF9jb25zb2xlX2luaXQoJnMzYzI0MDBfc2VyaWFsX2RydiwgJnMzYzI0MDBfdWFydF9pbmYpOworCitzdGF0aWMgaW5saW5lIGludCBzM2MyNDAwX3NlcmlhbF9pbml0KHZvaWQpCit7CisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX2luaXQoJnMzYzI0MDBfc2VyaWFsX2RydiwgJnMzYzI0MDBfdWFydF9pbmYpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgczNjMjQwMF9zZXJpYWxfZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzM2MyNDAwX3NlcmlhbF9kcnYpOworfQorCittb2R1bGVfaW5pdChzM2MyNDAwX3NlcmlhbF9pbml0KTsKK21vZHVsZV9leGl0KHMzYzI0MDBfc2VyaWFsX2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CitNT0RVTEVfQVVUSE9SKCJCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlNhbXN1bmcgUzNDMjQwMCBTb0MgU2VyaWFsIHBvcnQgZHJpdmVyIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0MDAtdWFydCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvczNjMjQxMC5jIGIvZHJpdmVycy9zZXJpYWwvczNjMjQxMC5jCmluZGV4IDJiNmEwMTMuLmM1ZjAzZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL3MzYzI0MTAuYworKysgYi9kcml2ZXJzL3NlcmlhbC9zM2MyNDEwLmMKQEAgLTEsMTI3MCArMSwzMCBAQAotLyoKLSAqIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3MzYzI0MTAuYworLyogbGludXgvZHJpdmVycy9zZXJpYWwvczNjMjQxMC5jCiAgKgotICogRHJpdmVyIGZvciBvbmJvYXJkIFVBUlRzIG9uIHRoZSBTYW1zdW5nIFMzQzI0WFgKKyAqIERyaXZlciBmb3IgU2Ftc3VuZyBTM0MyNDEwIFNvQyBvbmJvYXJkIFVBUlRzLgogICoKLSAqIEJhc2VkIG9uIGRyaXZlcnMvY2hhci9zZXJpYWwuYyBhbmQgZHJpdmVycy9jaGFyLzIxMjg1LmMKKyAqIEJlbiBEb29rcywgQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUsMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCiAgKgotICogQmVuIERvb2tzLCAoYykgMjAwMy0yMDA1IFNpbXRlYyBFbGVjdHJvbmljcwotICoJaHR0cDovL3d3dy5zaW10ZWMuY28udWsvcHJvZHVjdHMvU1dMSU5VWC8KLSAqCi0gKiBDaGFuZ2Vsb2c6Ci0gKgotICogMjItSnVsLTIwMDQgIEJKRCAgRmluaXNoZWQgb2ZmIGRldmljZSByZXdyaXRlCi0gKgotICogMjEtSnVsLTIwMDQgIEJKRCAgVGhhbmtzIHRvIDxoZXJiZXRAMTN0aGZsb29yLmF0PiBmb3IgcG9pbnRpbmcgb3V0Ci0gKiAgICAgICAgICAgICAgICAgICBwcm9ibGVtcyB3aXRoIGJhdWQgcmF0ZSBhbmQgbG9zcyBvZiBJUiBzZXR0aW5ncy4gVXBkYXRlCi0gKiAgICAgICAgICAgICAgICAgICB0byBhZGQgY29uZmlndXJhdGlvbiB2aWEgcGxhdGZvcm1fZGV2aWNlIHN0cnVjdHVyZQotICoKLSAqIDI4LVNlcC0yMDA0ICBCSkQgIFJlLXdyaXRlIGZvciB0aGUgZm9sbG93aW5nIGl0ZW1zCi0gKgkJICAgICAtIFMzQzI0MTAgYW5kIFMzQzI0NDAgc2VyaWFsIHN1cHBvcnQKLSAqCQkgICAgIC0gUG93ZXIgTWFuYWdlbWVudCBzdXBwb3J0Ci0gKgkJICAgICAtIEZpeCBjb25zb2xlIHZpYSBJckRBIGRldmljZXMKLSAqCQkgICAgIC0gU3lzUmVxIChIZXJiZXJ0IFDDtnR6bCkKLSAqCQkgICAgIC0gQnJlYWsgY2hhcmFjdGVyIGhhbmRsaW5nIChIZXJiZXJ0IFDDtnR6bCkKLSAqCQkgICAgIC0gc3Bpbi1sb2NrIGluaXRpYWxpc2F0aW9uIChEaW1pdHJ5IEFuZHJpYykKLSAqCQkgICAgIC0gYWRkZWQgY2xvY2sgY29udHJvbAotICoJCSAgICAgLSB1cGRhdGVkIGluaXQgY29kZSB0byB1c2UgcGxhdGZvcm1fZGV2aWNlIGluZm8KLSAqCi0gKiAwNi1NYXItMjAwNSAgQkpEICBBZGQgczNjMjQ0MCBmY2xrIGNsb2NrIHNvdXJjZQotICoKLSAqIDA5LU1hci0yMDA1ICBCSkQgIEFkZCBzM2MyNDAwIHN1cHBvcnQKLSAqCi0gKiAxMC1NYXItMjAwNSAgTENWUiBDaGFuZ2VkIFMzQzI0MTBfVkFfVUFSVCB0byBTM0MyNFhYX1ZBX1VBUlQKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAqLwogCi0vKiBOb3RlIG9uIDI0NDAgZmNsayBjbG9jayBzb3VyY2UgaGFuZGxpbmcKLSAqCi0gKiBXaGlsc3QgaXQgaXMgcG9zc2libGUgdG8gdXNlIHRoZSBmY2xrIGFzIGNsb2NrIHNvdXJjZSwgdGhlIG1ldGhvZAotICogb2YgcHJvcGVybHkgc3dpdGNoaW5nIHRvby9mcm9tIHRoaXMgaXMgY3VycmVudGx5IHVuLWltcGxlbWVudGVkLCBzbwotICogd2hpY2hldmVyIHdheSBpcyBjb25maWd1cmVkIGF0IHN0YXJ0dXAgaXMgdGhlIG9uZSB0aGF0IHdpbGwgYmUgdXNlZC4KLSovCi0KLS8qIEhvdGUgb24gMjQxMCBlcnJvciBoYW5kbGluZwotICoKLSAqIFRoZSBzM2MyNDEwIG1hbnVhbCBoYXMgYSBsb3ZlL2hhdGUgYWZmYWlyIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZQotICogVUVSU1RBVCByZWdpc3RlciBpbiB0aGUgVUFSVCBibG9ja3MsIGFuZCBrZWVwcyBtYXJraW5nIHNvbWUgb2YgdGhlCi0gKiBlcnJvciBiaXRzIGFzIHJlc2VydmVkLiBIYXZpbmcgY2hlY2tlZCB3aXRoIHRoZSBzM2MyNDEweDAxLAotICogaXQgY29wZXMgd2l0aCBCUkVBS3MgcHJvcGVybHksIHNvIEkgYW0gaGFwcHkgdG8gaWdub3JlIHRoZSBSRVNFUlZFRAotICogZmVhdHVyZSBmcm9tIHRoZSBsYXR0ZXIgdmVyc2lvbnMgb2YgdGhlIG1hbnVhbC4KLSAqCi0gKiBJZiBpdCBiZWNvbWVzIGFwYXJyZW50IHRoYXQgbGF0dGVyIHZlcnNpb25zIG9mIHRoZSAyNDEwIHJlbW92ZSB0aGVzZQotICogYml0cywgdGhlbiBhY3Rpb24gd2lsbCBoYXZlIHRvIGJlIHRha2VuIHRvIGRpZmZlcmVudGlhdGUgdGhlIHZlcnNpb25zCi0gKiBhbmQgY2hhbmdlIHRoZSBwb2xpY3kgb24gQlJFQUsKLSAqCi0gKiBCSkQsIDA0LU5vdi0yMDA0Ci0qLwotCi0KLSNpZiBkZWZpbmVkKENPTkZJR19TRVJJQUxfUzNDMjQxMF9DT05TT0xFKSAmJiBkZWZpbmVkKENPTkZJR19NQUdJQ19TWVNSUSkKLSNkZWZpbmUgU1VQUE9SVF9TWVNSUQotI2VuZGlmCi0KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9zeXNycS5oPgotI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KLSNpbmNsdWRlIDxsaW51eC90dHkuaD4KLSNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KIAotI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KLQogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogCiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CiAKLS8qIHN0cnVjdHVyZXMgKi8KLQotc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvIHsKLQljaGFyCQkJKm5hbWU7Ci0JdW5zaWduZWQgaW50CQl0eXBlOwotCXVuc2lnbmVkIGludAkJZmlmb3NpemU7Ci0JdW5zaWduZWQgbG9uZwkJcnhfZmlmb21hc2s7Ci0JdW5zaWduZWQgbG9uZwkJcnhfZmlmb3NoaWZ0OwotCXVuc2lnbmVkIGxvbmcJCXJ4X2ZpZm9mdWxsOwotCXVuc2lnbmVkIGxvbmcJCXR4X2ZpZm9tYXNrOwotCXVuc2lnbmVkIGxvbmcJCXR4X2ZpZm9zaGlmdDsKLQl1bnNpZ25lZCBsb25nCQl0eF9maWZvZnVsbDsKLQotCS8qIGNsb2NrIHNvdXJjZSBjb250cm9sICovCi0KLQlpbnQgKCpnZXRfY2xrc3JjKShzdHJ1Y3QgdWFydF9wb3J0ICosIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspOwotCWludCAoKnNldF9jbGtzcmMpKHN0cnVjdCB1YXJ0X3BvcnQgKiwgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsayk7Ci0KLQkvKiB1YXJ0IGNvbnRyb2xzICovCi0JaW50ICgqcmVzZXRfcG9ydCkoc3RydWN0IHVhcnRfcG9ydCAqLCBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICopOwotfTsKLQotc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0IHsKLQl1bnNpZ25lZCBjaGFyCQkJcnhfY2xhaW1lZDsKLQl1bnNpZ25lZCBjaGFyCQkJdHhfY2xhaW1lZDsKLQotCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbwkqaW5mbzsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYwkqY2xrc3JjOwotCXN0cnVjdCBjbGsJCQkqY2xrOwotCXN0cnVjdCBjbGsJCQkqYmF1ZGNsazsKLQlzdHJ1Y3QgdWFydF9wb3J0CQlwb3J0OwotfTsKLQotCi0vKiBjb25maWd1cmF0aW9uIGRlZmluZXMgKi8KLQotI2lmIDAKLSNpZiAxCi0vKiBzZW5kIGRlYnVnIHRvIHRoZSBsb3ctbGV2ZWwgb3V0cHV0IHJvdXRpbmVzICovCi0KLWV4dGVybiB2b2lkIHByaW50YXNjaWkoY29uc3QgY2hhciAqKTsKLQotc3RhdGljIHZvaWQKLXMzYzI0eHhfc2VyaWFsX2RiZyhjb25zdCBjaGFyICpmbXQsIC4uLikKLXsKLQl2YV9saXN0IHZhOwotCWNoYXIgYnVmZlsyNTZdOwotCi0JdmFfc3RhcnQodmEsIGZtdCk7Ci0JdnNwcmludGYoYnVmZiwgZm10LCB2YSk7Ci0JdmFfZW5kKHZhKTsKLQotCXByaW50YXNjaWkoYnVmZik7Ci19Ci0KLSNkZWZpbmUgZGJnKHguLi4pIHMzYzI0eHhfc2VyaWFsX2RiZyh4KQotCi0jZWxzZQotI2RlZmluZSBkYmcoeC4uLikgcHJpbnRrKEtFUk5fREVCVUcgInMzYzI0eHg6ICIpOwotI2VuZGlmCi0jZWxzZSAvKiBubyBkZWJ1ZyAqLwotI2RlZmluZSBkYmcoeC4uLikgZG8ge30gd2hpbGUoMCkKLSNlbmRpZgotCi0vKiBVQVJUIG5hbWUgYW5kIGRldmljZSBkZWZpbml0aW9ucyAqLwotCi0jZGVmaW5lIFMzQzI0WFhfU0VSSUFMX05BTUUJInR0eVNBQyIKLSNkZWZpbmUgUzNDMjRYWF9TRVJJQUxfTUFKT1IJMjA0Ci0jZGVmaW5lIFMzQzI0WFhfU0VSSUFMX01JTk9SCTY0Ci0KLQotLyogY29udmVyc2lvbiBmdW5jdGlvbnMgKi8KLQotI2RlZmluZSBzM2MyNHh4X2Rldl90b19wb3J0KF9fZGV2KSAoc3RydWN0IHVhcnRfcG9ydCAqKWRldl9nZXRfZHJ2ZGF0YShfX2RldikKLSNkZWZpbmUgczNjMjR4eF9kZXZfdG9fY2ZnKF9fZGV2KSAoc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqKSgoX19kZXYpLT5wbGF0Zm9ybV9kYXRhKQotCi0vKiB3ZSBjYW4gc3VwcG9ydCAzIHVhcnRzLCBidXQgbm90IGFsd2F5cyB1c2UgdGhlbSAqLwotCi0jaWZkZWYgQ09ORklHX0NQVV9TM0MyNDAwCi0jZGVmaW5lIE5SX1BPUlRTICgyKQotI2Vsc2UKLSNkZWZpbmUgTlJfUE9SVFMgKDMpCi0jZW5kaWYKLQotLyogcG9ydCBpcnEgbnVtYmVycyAqLwotCi0jZGVmaW5lIFRYX0lSUShwb3J0KSAoKHBvcnQpLT5pcnEgKyAxKQotI2RlZmluZSBSWF9JUlEocG9ydCkgKChwb3J0KS0+aXJxKQotCi0vKiByZWdpc3RlciBhY2Nlc3MgY29udHJvbHMgKi8KLQotI2RlZmluZSBwb3J0YWRkcihwb3J0LCByZWcpICgocG9ydCktPm1lbWJhc2UgKyAocmVnKSkKLQotI2RlZmluZSByZF9yZWdiKHBvcnQsIHJlZykgKF9fcmF3X3JlYWRiKHBvcnRhZGRyKHBvcnQsIHJlZykpKQotI2RlZmluZSByZF9yZWdsKHBvcnQsIHJlZykgKF9fcmF3X3JlYWRsKHBvcnRhZGRyKHBvcnQsIHJlZykpKQotCi0jZGVmaW5lIHdyX3JlZ2IocG9ydCwgcmVnLCB2YWwpIFwKLSAgZG8geyBfX3Jhd193cml0ZWIodmFsLCBwb3J0YWRkcihwb3J0LCByZWcpKTsgfSB3aGlsZSgwKQotCi0jZGVmaW5lIHdyX3JlZ2wocG9ydCwgcmVnLCB2YWwpIFwKLSAgZG8geyBfX3Jhd193cml0ZWwodmFsLCBwb3J0YWRkcihwb3J0LCByZWcpKTsgfSB3aGlsZSgwKQotCi0vKiBtYWNyb3MgdG8gY2hhbmdlIG9uZSB0aGluZyB0byBhbm90aGVyICovCi0KLSNkZWZpbmUgdHhfZW5hYmxlZChwb3J0KSAoKHBvcnQpLT51bnVzZWRbMF0pCi0jZGVmaW5lIHJ4X2VuYWJsZWQocG9ydCkgKChwb3J0KS0+dW51c2VkWzFdKQotCi0vKiBmbGFnIHRvIGlnbm9yZSBhbGwgY2hhcmFjdGVycyBjb21taW5nIGluICovCi0jZGVmaW5lIFJYU1RBVF9EVU1NWV9SRUFEICgweDEwMDAwMDAwKQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqdG9fb3VycG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXJldHVybiBjb250YWluZXJfb2YocG9ydCwgc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0LCBwb3J0KTsKLX0KLQotLyogdHJhbnNsYXRlIGEgcG9ydCB0byB0aGUgZGV2aWNlIG5hbWUgKi8KLQotc3RhdGljIGlubGluZSBjb25zdCBjaGFyICpzM2MyNHh4X3NlcmlhbF9wb3J0bmFtZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXJldHVybiB0b19wbGF0Zm9ybV9kZXZpY2UocG9ydC0+ZGV2KS0+bmFtZTsKLX0KLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF90eGVtcHR5X25vZmlmbyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXJldHVybiAocmRfcmVnbChwb3J0LCBTM0MyNDEwX1VUUlNUQVQpICYgUzNDMjQxMF9VVFJTVEFUX1RYRSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3J4X2VuYWJsZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgaW50IHVjb24sIHVmY29uOwotCWludCBjb3VudCA9IDEwMDAwOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLQotCXdoaWxlICgtLWNvdW50ICYmICFzM2MyNHh4X3NlcmlhbF90eGVtcHR5X25vZmlmbyhwb3J0KSkKLQkJdWRlbGF5KDEwMCk7Ci0KLQl1ZmNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTik7Ci0JdWZjb24gfD0gUzNDMjQxMF9VRkNPTl9SRVNFVFJYOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgdWZjb24pOwotCi0JdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQl1Y29uIHw9IFMzQzI0MTBfVUNPTl9SWElSUU1PREU7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sIHVjb24pOwotCi0JcnhfZW5hYmxlZChwb3J0KSA9IDE7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9yeF9kaXNhYmxlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNpZ25lZCBpbnQgdWNvbjsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7Ci0KLQl1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCXVjb24gJj0gflMzQzI0MTBfVUNPTl9SWElSUU1PREU7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sIHVjb24pOwotCi0JcnhfZW5hYmxlZChwb3J0KSA9IDA7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zdG9wX3R4KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci0JaWYgKHR4X2VuYWJsZWQocG9ydCkpIHsKLQkJZGlzYWJsZV9pcnEoVFhfSVJRKHBvcnQpKTsKLQkJdHhfZW5hYmxlZChwb3J0KSA9IDA7Ci0JCWlmIChwb3J0LT5mbGFncyAmIFVQRl9DT05TX0ZMT1cpCi0JCQlzM2MyNHh4X3NlcmlhbF9yeF9lbmFibGUocG9ydCk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zdGFydF90eChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCWlmICghdHhfZW5hYmxlZChwb3J0KSkgewotCQlpZiAocG9ydC0+ZmxhZ3MgJiBVUEZfQ09OU19GTE9XKQotCQkJczNjMjR4eF9zZXJpYWxfcnhfZGlzYWJsZShwb3J0KTsKLQotCQllbmFibGVfaXJxKFRYX0lSUShwb3J0KSk7Ci0JCXR4X2VuYWJsZWQocG9ydCkgPSAxOwotCX0KLX0KLQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zdG9wX3J4KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci0JaWYgKHJ4X2VuYWJsZWQocG9ydCkpIHsKLQkJZGJnKCJzM2MyNHh4X3NlcmlhbF9zdG9wX3J4OiBwb3J0PSVwXG4iLCBwb3J0KTsKLQkJZGlzYWJsZV9pcnEoUlhfSVJRKHBvcnQpKTsKLQkJcnhfZW5hYmxlZChwb3J0KSA9IDA7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9lbmFibGVfbXMoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLX0KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKnMzYzI0eHhfcG9ydF90b19pbmZvKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci0JcmV0dXJuIHRvX291cnBvcnQocG9ydCktPmluZm87Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqczNjMjR4eF9wb3J0X3RvX2NmZyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCWlmIChwb3J0LT5kZXYgPT0gTlVMTCkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlyZXR1cm4gKHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKilwb3J0LT5kZXYtPnBsYXRmb3JtX2RhdGE7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfcnhfZmlmb2NudChzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQsCi0JCQkJICAgICB1bnNpZ25lZCBsb25nIHVmc3RhdCkKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBvdXJwb3J0LT5pbmZvOwotCi0JaWYgKHVmc3RhdCAmIGluZm8tPnJ4X2ZpZm9mdWxsKQotCQlyZXR1cm4gaW5mby0+Zmlmb3NpemU7Ci0KLQlyZXR1cm4gKHVmc3RhdCAmIGluZm8tPnJ4X2ZpZm9tYXNrKSA+PiBpbmZvLT5yeF9maWZvc2hpZnQ7Ci19Ci0KLQotLyogPyAtIHdoZXJlIGhhcyBwYXJpdHkgZ29uZT8/ICovCi0jZGVmaW5lIFMzQzI0MTBfVUVSU1RBVF9QQVJJVFkgKDB4MTAwMCkKLQotc3RhdGljIGlycXJldHVybl90Ci1zM2MyNHh4X3NlcmlhbF9yeF9jaGFycyhpbnQgaXJxLCB2b2lkICpkZXZfaWQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gZGV2X2lkOwotCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSAmb3VycG9ydC0+cG9ydDsKLQlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gcG9ydC0+aW5mby0+dHR5OwotCXVuc2lnbmVkIGludCB1ZmNvbiwgY2gsIGZsYWcsIHVmc3RhdCwgdWVyc3RhdDsKLQlpbnQgbWF4X2NvdW50ID0gNjQ7Ci0KLQl3aGlsZSAobWF4X2NvdW50LS0gPiAwKSB7Ci0JCXVmY29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OKTsKLQkJdWZzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCk7Ci0KLQkJaWYgKHMzYzI0eHhfc2VyaWFsX3J4X2ZpZm9jbnQob3VycG9ydCwgdWZzdGF0KSA9PSAwKQotCQkJYnJlYWs7Ci0KLQkJdWVyc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRVJTVEFUKTsKLQkJY2ggPSByZF9yZWdiKHBvcnQsIFMzQzI0MTBfVVJYSCk7Ci0KLQkJaWYgKHBvcnQtPmZsYWdzICYgVVBGX0NPTlNfRkxPVykgewotCQkJaW50IHR4ZSA9IHMzYzI0eHhfc2VyaWFsX3R4ZW1wdHlfbm9maWZvKHBvcnQpOwotCi0JCQlpZiAocnhfZW5hYmxlZChwb3J0KSkgewotCQkJCWlmICghdHhlKSB7Ci0JCQkJCXJ4X2VuYWJsZWQocG9ydCkgPSAwOwotCQkJCQljb250aW51ZTsKLQkJCQl9Ci0JCQl9IGVsc2UgewotCQkJCWlmICh0eGUpIHsKLQkJCQkJdWZjb24gfD0gUzNDMjQxMF9VRkNPTl9SRVNFVFJYOwotCQkJCQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIHVmY29uKTsKLQkJCQkJcnhfZW5hYmxlZChwb3J0KSA9IDE7Ci0JCQkJCWdvdG8gb3V0OwotCQkJCX0KLQkJCQljb250aW51ZTsKLQkJCX0KLQkJfQotCi0JCS8qIGluc2VydCB0aGUgY2hhcmFjdGVyIGludG8gdGhlIGJ1ZmZlciAqLwotCi0JCWZsYWcgPSBUVFlfTk9STUFMOwotCQlwb3J0LT5pY291bnQucngrKzsKLQotCQlpZiAodW5saWtlbHkodWVyc3RhdCAmIFMzQzI0MTBfVUVSU1RBVF9BTlkpKSB7Ci0JCQlkYmcoInJ4ZXJyOiBwb3J0IGNoPTB4JTAyeCwgcnhzPTB4JTA4eFxuIiwKLQkJCSAgICBjaCwgdWVyc3RhdCk7Ci0KLQkJCS8qIGNoZWNrIGZvciBicmVhayAqLwotCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfQlJFQUspIHsKLQkJCQlkYmcoImJyZWFrIVxuIik7Ci0JCQkJcG9ydC0+aWNvdW50LmJyaysrOwotCQkJCWlmICh1YXJ0X2hhbmRsZV9icmVhayhwb3J0KSkKLQkJCQkgICAgZ290byBpZ25vcmVfY2hhcjsKLQkJCX0KLQotCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfRlJBTUUpCi0JCQkJcG9ydC0+aWNvdW50LmZyYW1lKys7Ci0JCQlpZiAodWVyc3RhdCAmIFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOKQotCQkJCXBvcnQtPmljb3VudC5vdmVycnVuKys7Ci0KLQkJCXVlcnN0YXQgJj0gcG9ydC0+cmVhZF9zdGF0dXNfbWFzazsKLQotCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfQlJFQUspCi0JCQkJZmxhZyA9IFRUWV9CUkVBSzsKLQkJCWVsc2UgaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfUEFSSVRZKQotCQkJCWZsYWcgPSBUVFlfUEFSSVRZOwotCQkJZWxzZSBpZiAodWVyc3RhdCAmICggUzNDMjQxMF9VRVJTVEFUX0ZSQU1FIHwgUzNDMjQxMF9VRVJTVEFUX09WRVJSVU4pKQotCQkJCWZsYWcgPSBUVFlfRlJBTUU7Ci0JCX0KLQotCQlpZiAodWFydF9oYW5kbGVfc3lzcnFfY2hhcihwb3J0LCBjaCkpCi0JCQlnb3RvIGlnbm9yZV9jaGFyOwotCi0JCXVhcnRfaW5zZXJ0X2NoYXIocG9ydCwgdWVyc3RhdCwgUzNDMjQxMF9VRVJTVEFUX09WRVJSVU4sIGNoLCBmbGFnKTsKLQotCWlnbm9yZV9jaGFyOgotCQljb250aW51ZTsKLQl9Ci0JdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKLQotIG91dDoKLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyBpcnFyZXR1cm5fdCBzM2MyNHh4X3NlcmlhbF90eF9jaGFycyhpbnQgaXJxLCB2b2lkICppZCkKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSBpZDsKLQlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gJm91cnBvcnQtPnBvcnQ7Ci0Jc3RydWN0IGNpcmNfYnVmICp4bWl0ID0gJnBvcnQtPmluZm8tPnhtaXQ7Ci0JaW50IGNvdW50ID0gMjU2OwotCi0JaWYgKHBvcnQtPnhfY2hhcikgewotCQl3cl9yZWdiKHBvcnQsIFMzQzI0MTBfVVRYSCwgcG9ydC0+eF9jaGFyKTsKLQkJcG9ydC0+aWNvdW50LnR4Kys7Ci0JCXBvcnQtPnhfY2hhciA9IDA7Ci0JCWdvdG8gb3V0OwotCX0KLQotCS8qIGlmIHRoZXJlIGlzbnQgYW55dGhpbmcgbW9yZSB0byB0cmFuc21pdCwgb3IgdGhlIHVhcnQgaXMgbm93Ci0JICogc3RvcHBlZCwgZGlzYWJsZSB0aGUgdWFydCBhbmQgZXhpdAotCSovCi0KLQlpZiAodWFydF9jaXJjX2VtcHR5KHhtaXQpIHx8IHVhcnRfdHhfc3RvcHBlZChwb3J0KSkgewotCQlzM2MyNHh4X3NlcmlhbF9zdG9wX3R4KHBvcnQpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQkvKiB0cnkgYW5kIGRyYWluIHRoZSBidWZmZXIuLi4gKi8KLQotCXdoaWxlICghdWFydF9jaXJjX2VtcHR5KHhtaXQpICYmIGNvdW50LS0gPiAwKSB7Ci0JCWlmIChyZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZTVEFUKSAmIG91cnBvcnQtPmluZm8tPnR4X2ZpZm9mdWxsKQotCQkJYnJlYWs7Ci0KLQkJd3JfcmVnYihwb3J0LCBTM0MyNDEwX1VUWEgsIHhtaXQtPmJ1Zlt4bWl0LT50YWlsXSk7Ci0JCXhtaXQtPnRhaWwgPSAoeG1pdC0+dGFpbCArIDEpICYgKFVBUlRfWE1JVF9TSVpFIC0gMSk7Ci0JCXBvcnQtPmljb3VudC50eCsrOwotCX0KLQotCWlmICh1YXJ0X2NpcmNfY2hhcnNfcGVuZGluZyh4bWl0KSA8IFdBS0VVUF9DSEFSUykKLQkJdWFydF93cml0ZV93YWtldXAocG9ydCk7Ci0KLQlpZiAodWFydF9jaXJjX2VtcHR5KHhtaXQpKQotCQlzM2MyNHh4X3NlcmlhbF9zdG9wX3R4KHBvcnQpOwotCi0gb3V0OgotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGludCBzM2MyNHh4X3NlcmlhbF90eF9lbXB0eShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOwotCXVuc2lnbmVkIGxvbmcgdWZzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCk7Ci0JdW5zaWduZWQgbG9uZyB1ZmNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTik7Ci0KLQlpZiAodWZjb24gJiBTM0MyNDEwX1VGQ09OX0ZJRk9NT0RFKSB7Ci0JCWlmICgodWZzdGF0ICYgaW5mby0+dHhfZmlmb21hc2spICE9IDAgfHwKLQkJICAgICh1ZnN0YXQgJiBpbmZvLT50eF9maWZvZnVsbCkpCi0JCQlyZXR1cm4gMDsKLQotCQlyZXR1cm4gMTsKLQl9Ci0KLQlyZXR1cm4gczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8ocG9ydCk7Ci19Ci0KLS8qIG5vIG1vZGVtIGNvbnRyb2wgbGluZXMgKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgczNjMjR4eF9zZXJpYWxfZ2V0X21jdHJsKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci0JdW5zaWduZWQgaW50IHVtc3RhdCA9IHJkX3JlZ2IocG9ydCxTM0MyNDEwX1VNU1RBVCk7Ci0KLQlpZiAodW1zdGF0ICYgUzNDMjQxMF9VTVNUQVRfQ1RTKQotCQlyZXR1cm4gVElPQ01fQ0FSIHwgVElPQ01fRFNSIHwgVElPQ01fQ1RTOwotCWVsc2UKLQkJcmV0dXJuIFRJT0NNX0NBUiB8IFRJT0NNX0RTUjsKLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc2V0X21jdHJsKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGludCBtY3RybCkKLXsKLQkvKiB0b2RvIC0gcG9zc2libHkgcmVtb3ZlIEFGQyBhbmQgZG8gbWFudWFsIENUUyAqLwotfQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9icmVha19jdGwoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgaW50IGJyZWFrX3N0YXRlKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgaW50IHVjb247Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmcG9ydC0+bG9jaywgZmxhZ3MpOwotCi0JdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQotCWlmIChicmVha19zdGF0ZSkKLQkJdWNvbiB8PSBTM0MyNDEwX1VDT05fU0JSRUFLOwotCWVsc2UKLQkJdWNvbiAmPSB+UzNDMjQxMF9VQ09OX1NCUkVBSzsKLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc2h1dGRvd24oc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOwotCi0JaWYgKG91cnBvcnQtPnR4X2NsYWltZWQpIHsKLQkJZnJlZV9pcnEoVFhfSVJRKHBvcnQpLCBvdXJwb3J0KTsKLQkJdHhfZW5hYmxlZChwb3J0KSA9IDA7Ci0JCW91cnBvcnQtPnR4X2NsYWltZWQgPSAwOwotCX0KLQotCWlmIChvdXJwb3J0LT5yeF9jbGFpbWVkKSB7Ci0JCWZyZWVfaXJxKFJYX0lSUShwb3J0KSwgb3VycG9ydCk7Ci0JCW91cnBvcnQtPnJ4X2NsYWltZWQgPSAwOwotCQlyeF9lbmFibGVkKHBvcnQpID0gMDsKLQl9Ci19Ci0KLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9zdGFydHVwKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKLQlpbnQgcmV0OwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9zdGFydHVwOiBwb3J0PSVwICglMDhseCwlcClcbiIsCi0JICAgIHBvcnQtPm1hcGJhc2UsIHBvcnQtPm1lbWJhc2UpOwotCi0JcnhfZW5hYmxlZChwb3J0KSA9IDE7Ci0KLQlyZXQgPSByZXF1ZXN0X2lycShSWF9JUlEocG9ydCksCi0JCQkgIHMzYzI0eHhfc2VyaWFsX3J4X2NoYXJzLCAwLAotCQkJICBzM2MyNHh4X3NlcmlhbF9wb3J0bmFtZShwb3J0KSwgb3VycG9ydCk7Ci0KLQlpZiAocmV0ICE9IDApIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJjYW5ub3QgZ2V0IGlycSAlZFxuIiwgUlhfSVJRKHBvcnQpKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlvdXJwb3J0LT5yeF9jbGFpbWVkID0gMTsKLQotCWRiZygicmVxdWVzdGluZyB0eCBpcnEuLi5cbiIpOwotCi0JdHhfZW5hYmxlZChwb3J0KSA9IDE7Ci0KLQlyZXQgPSByZXF1ZXN0X2lycShUWF9JUlEocG9ydCksCi0JCQkgIHMzYzI0eHhfc2VyaWFsX3R4X2NoYXJzLCAwLAotCQkJICBzM2MyNHh4X3NlcmlhbF9wb3J0bmFtZShwb3J0KSwgb3VycG9ydCk7Ci0KLQlpZiAocmV0KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiY2Fubm90IGdldCBpcnEgJWRcbiIsIFRYX0lSUShwb3J0KSk7Ci0JCWdvdG8gZXJyOwotCX0KLQotCW91cnBvcnQtPnR4X2NsYWltZWQgPSAxOwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9zdGFydHVwIG9rXG4iKTsKLQotCS8qIHRoZSBwb3J0IHJlc2V0IGNvZGUgc2hvdWxkIGhhdmUgZG9uZSB0aGUgY29ycmVjdAotCSAqIHJlZ2lzdGVyIHNldHVwIGZvciB0aGUgcG9ydCBjb250cm9scyAqLwotCi0JcmV0dXJuIHJldDsKLQotIGVycjoKLQlzM2MyNHh4X3NlcmlhbF9zaHV0ZG93bihwb3J0KTsKLQlyZXR1cm4gcmV0OwotfQotCi0vKiBwb3dlciBwb3dlciBtYW5hZ2VtZW50IGNvbnRyb2wgKi8KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfcG0oc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IGxldmVsLAotCQkJICAgICAgdW5zaWduZWQgaW50IG9sZCkKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOwotCi0Jc3dpdGNoIChsZXZlbCkgewotCWNhc2UgMzoKLQkJaWYgKCFJU19FUlIob3VycG9ydC0+YmF1ZGNsaykgJiYgb3VycG9ydC0+YmF1ZGNsayAhPSBOVUxMKQotCQkJY2xrX2Rpc2FibGUob3VycG9ydC0+YmF1ZGNsayk7Ci0KLQkJY2xrX2Rpc2FibGUob3VycG9ydC0+Y2xrKTsKLQkJYnJlYWs7Ci0KLQljYXNlIDA6Ci0JCWNsa19lbmFibGUob3VycG9ydC0+Y2xrKTsKLQotCQlpZiAoIUlTX0VSUihvdXJwb3J0LT5iYXVkY2xrKSAmJiBvdXJwb3J0LT5iYXVkY2xrICE9IE5VTEwpCi0JCQljbGtfZW5hYmxlKG91cnBvcnQtPmJhdWRjbGspOwotCi0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXByaW50ayhLRVJOX0VSUiAiczNjMjR4eF9zZXJpYWw6IHVua25vd24gcG0gJWRcbiIsIGxldmVsKTsKLQl9Ci19Ci0KLS8qIGJhdWQgcmF0ZSBjYWxjdWxhdGlvbgotICoKLSAqIFRoZSBVQVJUcyBvbiB0aGUgUzNDMjQxMC9TM0MyNDQwIGNhbiB0YWtlIHRoZWlyIGNsb2NrcyBmcm9tIGEgbnVtYmVyCi0gKiBvZiBkaWZmZXJlbnQgc291cmNlcywgaW5jbHVkaW5nIHRoZSBwZXJpcGhlcmFsIGNsb2NrICgicGNsayIpIGFuZCBhbgotICogZXh0ZXJuYWwgY2xvY2sgKCJ1Y2xrIikuIFRoZSBTM0MyNDQwIGFsc28gYWRkcyB0aGUgY29yZSBjbG9jayAoImZjbGsiKQotICogd2l0aCBhIHByb2dyYW1tYWJsZSBleHRyYSBkaXZpc29yLgotICoKLSAqIFRoZSBmb2xsb3dpbmcgY29kZSBnb2VzIHRocm91Z2ggdGhlIGNsb2NrIHNvdXJjZXMsIGFuZCBjYWxjdWxhdGVzIHRoZQotICogYmF1ZCBjbG9ja3MgKGFuZCB0aGUgcmVzdWx0YW50IGFjdHVhbCBiYXVkIHJhdGVzKSBhbmQgdGhlbiB0cmllcyB0bwotICogcGljayB0aGUgY2xvc2VzdCBvbmUgYW5kIHNlbGVjdCB0aGF0LgotICoKLSovCi0KLQotI2RlZmluZSBNQVhfQ0xLUyAoOCkKLQotc3RhdGljIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjIHRtcF9jbGtzcmMgPSB7Ci0JLm5hbWUJCT0gInBjbGsiLAotCS5taW5fYmF1ZAk9IDAsCi0JLm1heF9iYXVkCT0gMCwKLQkuZGl2aXNvcgk9IDEsCi19OwotCi1zdGF0aWMgaW5saW5lIGludAotczNjMjR4eF9zZXJpYWxfZ2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOwotCi0JcmV0dXJuIChpbmZvLT5nZXRfY2xrc3JjKShwb3J0LCBjKTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQKLXMzYzI0eHhfc2VyaWFsX3NldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqYykKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQotCXJldHVybiAoaW5mby0+c2V0X2Nsa3NyYykocG9ydCwgYyk7Ci19Ci0KLXN0cnVjdCBiYXVkX2NhbGMgewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjCSpjbGtzcmM7Ci0JdW5zaWduZWQgaW50CQkJIGNhbGM7Ci0JdW5zaWduZWQgaW50CQkJIHF1b3Q7Ci0Jc3RydWN0IGNsawkJCSpzcmM7Ci19OwotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX2NhbGNiYXVkKHN0cnVjdCBiYXVkX2NhbGMgKmNhbGMsCi0JCQkJICAgc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrc3JjLAotCQkJCSAgIHVuc2lnbmVkIGludCBiYXVkKQotewotCXVuc2lnbmVkIGxvbmcgcmF0ZTsKLQotCWNhbGMtPnNyYyA9IGNsa19nZXQocG9ydC0+ZGV2LCBjbGtzcmMtPm5hbWUpOwotCWlmIChjYWxjLT5zcmMgPT0gTlVMTCB8fCBJU19FUlIoY2FsYy0+c3JjKSkKLQkJcmV0dXJuIDA7Ci0KLQlyYXRlID0gY2xrX2dldF9yYXRlKGNhbGMtPnNyYyk7Ci0JcmF0ZSAvPSBjbGtzcmMtPmRpdmlzb3I7Ci0KLQljYWxjLT5jbGtzcmMgPSBjbGtzcmM7Ci0JY2FsYy0+cXVvdCA9IChyYXRlICsgKDggKiBiYXVkKSkgLyAoMTYgKiBiYXVkKTsKLQljYWxjLT5jYWxjID0gKHJhdGUgLyAoY2FsYy0+cXVvdCAqIDE2KSk7Ci0KLQljYWxjLT5xdW90LS07Ci0JcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgczNjMjR4eF9zZXJpYWxfZ2V0Y2xrKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJCSAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKipjbGtzcmMsCi0JCQkJCSAgc3RydWN0IGNsayAqKmNsaywKLQkJCQkJICB1bnNpZ25lZCBpbnQgYmF1ZCkKLXsKLQlzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcgPSBzM2MyNHh4X3BvcnRfdG9fY2ZnKHBvcnQpOwotCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGtwOwotCXN0cnVjdCBiYXVkX2NhbGMgcmVzW01BWF9DTEtTXTsKLQlzdHJ1Y3QgYmF1ZF9jYWxjICpyZXNwdHIsICpiZXN0LCAqc3B0cjsKLQlpbnQgaTsKLQotCWNsa3AgPSBjZmctPmNsb2NrczsKLQliZXN0ID0gTlVMTDsKLQotCWlmIChjZmctPmNsb2Nrc19zaXplIDwgMikgewotCQlpZiAoY2ZnLT5jbG9ja3Nfc2l6ZSA9PSAwKQotCQkJY2xrcCA9ICZ0bXBfY2xrc3JjOwotCi0JCS8qIGNoZWNrIHRvIHNlZSBpZiB3ZSdyZSBzb3VyY2luZyBmY2xrLCBhbmQgaWYgc28gd2UncmUKLQkJICogZ29pbmcgdG8gaGF2ZSB0byB1cGRhdGUgdGhlIGNsb2NrIHNvdXJjZQotCQkgKi8KLQotCQlpZiAoc3RyY21wKGNsa3AtPm5hbWUsICJmY2xrIikgPT0gMCkgewotCQkJc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgc3JjOwotCi0JCQlzM2MyNHh4X3NlcmlhbF9nZXRzb3VyY2UocG9ydCwgJnNyYyk7Ci0KLQkJCS8qIGNoZWNrIHRoYXQgdGhlIHBvcnQgYWxyZWFkeSB1c2luZyBmY2xrLCBhbmQgaWYKLQkJCSAqIG5vdCwgdGhlbiByZS1zZWxlY3QgZmNsawotCQkJICovCi0KLQkJCWlmIChzdHJjbXAoc3JjLm5hbWUsIGNsa3AtPm5hbWUpID09IDApIHsKLQkJCQlzM2MyNHh4X3NlcmlhbF9zZXRzb3VyY2UocG9ydCwgY2xrcCk7Ci0JCQkJczNjMjR4eF9zZXJpYWxfZ2V0c291cmNlKHBvcnQsICZzcmMpOwotCQkJfQotCi0JCQljbGtwLT5kaXZpc29yID0gc3JjLmRpdmlzb3I7Ci0JCX0KLQotCQlzM2MyNHh4X3NlcmlhbF9jYWxjYmF1ZChyZXMsIHBvcnQsIGNsa3AsIGJhdWQpOwotCQliZXN0ID0gcmVzOwotCQlyZXNwdHIgPSBiZXN0ICsgMTsKLQl9IGVsc2UgewotCQlyZXNwdHIgPSByZXM7Ci0KLQkJZm9yIChpID0gMDsgaSA8IGNmZy0+Y2xvY2tzX3NpemU7IGkrKywgY2xrcCsrKSB7Ci0JCQlpZiAoczNjMjR4eF9zZXJpYWxfY2FsY2JhdWQocmVzcHRyLCBwb3J0LCBjbGtwLCBiYXVkKSkKLQkJCQlyZXNwdHIrKzsKLQkJfQotCX0KLQotCS8qIG9rLCB3ZSBub3cgbmVlZCB0byBzZWxlY3QgdGhlIGJlc3QgY2xvY2sgd2UgZm91bmQgKi8KLQotCWlmICghYmVzdCkgewotCQl1bnNpZ25lZCBpbnQgZGV2aWF0aW9uID0gKDE8PDMwKXwoKDE8PDMwKS0xKTsKLQkJaW50IGNhbGNfZGV2aWF0aW9uOwotCi0JCWZvciAoc3B0ciA9IHJlczsgc3B0ciA8IHJlc3B0cjsgc3B0cisrKSB7Ci0JCQlwcmludGsoS0VSTl9ERUJVRwotCQkJICAgICAgICJmb3VuZCBjbGsgJXAgKCVzKSBxdW90ICVkLCBjYWxjICVkXG4iLAotCQkJICAgICAgIHNwdHItPmNsa3NyYywgc3B0ci0+Y2xrc3JjLT5uYW1lLAotCQkJICAgICAgIHNwdHItPnF1b3QsIHNwdHItPmNhbGMpOwotCi0JCQljYWxjX2RldmlhdGlvbiA9IGJhdWQgLSBzcHRyLT5jYWxjOwotCQkJaWYgKGNhbGNfZGV2aWF0aW9uIDwgMCkKLQkJCQljYWxjX2RldmlhdGlvbiA9IC1jYWxjX2RldmlhdGlvbjsKLQotCQkJaWYgKGNhbGNfZGV2aWF0aW9uIDwgZGV2aWF0aW9uKSB7Ci0JCQkJYmVzdCA9IHNwdHI7Ci0JCQkJZGV2aWF0aW9uID0gY2FsY19kZXZpYXRpb247Ci0JCQl9Ci0JCX0KLQotCQlwcmludGsoS0VSTl9ERUJVRyAiYmVzdCAlcCAoZGV2aWF0aW9uICVkKVxuIiwgYmVzdCwgZGV2aWF0aW9uKTsKLQl9Ci0KLQlwcmludGsoS0VSTl9ERUJVRyAic2VsZWN0ZWQgY2xvY2sgJXAgKCVzKSBxdW90ICVkLCBjYWxjICVkXG4iLAotCSAgICAgICBiZXN0LT5jbGtzcmMsIGJlc3QtPmNsa3NyYy0+bmFtZSwgYmVzdC0+cXVvdCwgYmVzdC0+Y2FsYyk7Ci0KLQkvKiBzdG9yZSByZXN1bHRzIHRvIHBhc3MgYmFjayAqLwotCi0JKmNsa3NyYyA9IGJlc3QtPmNsa3NyYzsKLQkqY2xrICAgID0gYmVzdC0+c3JjOwotCi0JcmV0dXJuIGJlc3QtPnF1b3Q7Ci19Ci0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3NldF90ZXJtaW9zKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJICAgICAgIHN0cnVjdCBrdGVybWlvcyAqdGVybWlvcywKLQkJCQkgICAgICAgc3RydWN0IGt0ZXJtaW9zICpvbGQpCi17Ci0Jc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnID0gczNjMjR4eF9wb3J0X3RvX2NmZyhwb3J0KTsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOwotCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGtzcmMgPSBOVUxMOwotCXN0cnVjdCBjbGsgKmNsayA9IE5VTEw7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNpZ25lZCBpbnQgYmF1ZCwgcXVvdDsKLQl1bnNpZ25lZCBpbnQgdWxjb247Ci0JdW5zaWduZWQgaW50IHVtY29uOwotCi0JLyoKLQkgKiBXZSBkb24ndCBzdXBwb3J0IG1vZGVtIGNvbnRyb2wgbGluZXMuCi0JICovCi0JdGVybWlvcy0+Y19jZmxhZyAmPSB+KEhVUENMIHwgQ01TUEFSKTsKLQl0ZXJtaW9zLT5jX2NmbGFnIHw9IENMT0NBTDsKLQotCS8qCi0JICogQXNrIHRoZSBjb3JlIHRvIGNhbGN1bGF0ZSB0aGUgZGl2aXNvciBmb3IgdXMuCi0JICovCi0KLQliYXVkID0gdWFydF9nZXRfYmF1ZF9yYXRlKHBvcnQsIHRlcm1pb3MsIG9sZCwgMCwgMTE1MjAwKjgpOwotCi0JaWYgKGJhdWQgPT0gMzg0MDAgJiYgKHBvcnQtPmZsYWdzICYgVVBGX1NQRF9NQVNLKSA9PSBVUEZfU1BEX0NVU1QpCi0JCXF1b3QgPSBwb3J0LT5jdXN0b21fZGl2aXNvcjsKLQllbHNlCi0JCXF1b3QgPSBzM2MyNHh4X3NlcmlhbF9nZXRjbGsocG9ydCwgJmNsa3NyYywgJmNsaywgYmF1ZCk7Ci0KLQkvKiBjaGVjayB0byBzZWUgaWYgd2UgbmVlZCAgdG8gY2hhbmdlIGNsb2NrIHNvdXJjZSAqLwotCi0JaWYgKG91cnBvcnQtPmNsa3NyYyAhPSBjbGtzcmMgfHwgb3VycG9ydC0+YmF1ZGNsayAhPSBjbGspIHsKLQkJczNjMjR4eF9zZXJpYWxfc2V0c291cmNlKHBvcnQsIGNsa3NyYyk7Ci0KLQkJaWYgKG91cnBvcnQtPmJhdWRjbGsgIT0gTlVMTCAmJiAhSVNfRVJSKG91cnBvcnQtPmJhdWRjbGspKSB7Ci0JCQljbGtfZGlzYWJsZShvdXJwb3J0LT5iYXVkY2xrKTsKLQkJCW91cnBvcnQtPmJhdWRjbGsgID0gTlVMTDsKLQkJfQotCi0JCWNsa19lbmFibGUoY2xrKTsKLQotCQlvdXJwb3J0LT5jbGtzcmMgPSBjbGtzcmM7Ci0JCW91cnBvcnQtPmJhdWRjbGsgPSBjbGs7Ci0JfQotCi0Jc3dpdGNoICh0ZXJtaW9zLT5jX2NmbGFnICYgQ1NJWkUpIHsKLQljYXNlIENTNToKLQkJZGJnKCJjb25maWc6IDViaXRzL2NoYXJcbiIpOwotCQl1bGNvbiA9IFMzQzI0MTBfTENPTl9DUzU7Ci0JCWJyZWFrOwotCWNhc2UgQ1M2OgotCQlkYmcoImNvbmZpZzogNmJpdHMvY2hhclxuIik7Ci0JCXVsY29uID0gUzNDMjQxMF9MQ09OX0NTNjsKLQkJYnJlYWs7Ci0JY2FzZSBDUzc6Ci0JCWRiZygiY29uZmlnOiA3Yml0cy9jaGFyXG4iKTsKLQkJdWxjb24gPSBTM0MyNDEwX0xDT05fQ1M3OwotCQlicmVhazsKLQljYXNlIENTODoKLQlkZWZhdWx0OgotCQlkYmcoImNvbmZpZzogOGJpdHMvY2hhclxuIik7Ci0JCXVsY29uID0gUzNDMjQxMF9MQ09OX0NTODsKLQkJYnJlYWs7Ci0JfQotCi0JLyogcHJlc2VydmUgb3JpZ2luYWwgbGNvbiBJUiBzZXR0aW5ncyAqLwotCXVsY29uIHw9IChjZmctPnVsY29uICYgUzNDMjQxMF9MQ09OX0lSTSk7Ci0KLQlpZiAodGVybWlvcy0+Y19jZmxhZyAmIENTVE9QQikKLQkJdWxjb24gfD0gUzNDMjQxMF9MQ09OX1NUT1BCOwotCi0JdW1jb24gPSAodGVybWlvcy0+Y19jZmxhZyAmIENSVFNDVFMpID8gUzNDMjQxMF9VTUNPTV9BRkMgOiAwOwotCi0JaWYgKHRlcm1pb3MtPmNfY2ZsYWcgJiBQQVJFTkIpIHsKLQkJaWYgKHRlcm1pb3MtPmNfY2ZsYWcgJiBQQVJPREQpCi0JCQl1bGNvbiB8PSBTM0MyNDEwX0xDT05fUE9ERDsKLQkJZWxzZQotCQkJdWxjb24gfD0gUzNDMjQxMF9MQ09OX1BFVkVOOwotCX0gZWxzZSB7Ci0JCXVsY29uIHw9IFMzQzI0MTBfTENPTl9QTk9ORTsKLQl9Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmcG9ydC0+bG9jaywgZmxhZ3MpOwotCi0JZGJnKCJzZXR0aW5nIHVsY29uIHRvICUwOHgsIGJyZGRpdiB0byAlZFxuIiwgdWxjb24sIHF1b3QpOwotCi0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OLCB1bGNvbik7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VCUkRJViwgcXVvdCk7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VNQ09OLCB1bWNvbik7Ci0KLQlkYmcoInVhcnQ6IHVsY29uID0gMHglMDh4LCB1Y29uID0gMHglMDh4LCB1ZmNvbiA9IDB4JTA4eFxuIiwKLQkgICAgcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OKSwKLQkgICAgcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pLAotCSAgICByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04pKTsKLQotCS8qCi0JICogVXBkYXRlIHRoZSBwZXItcG9ydCB0aW1lb3V0LgotCSAqLwotCXVhcnRfdXBkYXRlX3RpbWVvdXQocG9ydCwgdGVybWlvcy0+Y19jZmxhZywgYmF1ZCk7Ci0KLQkvKgotCSAqIFdoaWNoIGNoYXJhY3RlciBzdGF0dXMgZmxhZ3MgYXJlIHdlIGludGVyZXN0ZWQgaW4/Ci0JICovCi0JcG9ydC0+cmVhZF9zdGF0dXNfbWFzayA9IFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOOwotCWlmICh0ZXJtaW9zLT5jX2lmbGFnICYgSU5QQ0spCi0JCXBvcnQtPnJlYWRfc3RhdHVzX21hc2sgfD0gUzNDMjQxMF9VRVJTVEFUX0ZSQU1FIHwgUzNDMjQxMF9VRVJTVEFUX1BBUklUWTsKLQotCS8qCi0JICogV2hpY2ggY2hhcmFjdGVyIHN0YXR1cyBmbGFncyBzaG91bGQgd2UgaWdub3JlPwotCSAqLwotCXBvcnQtPmlnbm9yZV9zdGF0dXNfbWFzayA9IDA7Ci0JaWYgKHRlcm1pb3MtPmNfaWZsYWcgJiBJR05QQVIpCi0JCXBvcnQtPmlnbm9yZV9zdGF0dXNfbWFzayB8PSBTM0MyNDEwX1VFUlNUQVRfT1ZFUlJVTjsKLQlpZiAodGVybWlvcy0+Y19pZmxhZyAmIElHTkJSSyAmJiB0ZXJtaW9zLT5jX2lmbGFnICYgSUdOUEFSKQotCQlwb3J0LT5pZ25vcmVfc3RhdHVzX21hc2sgfD0gUzNDMjQxMF9VRVJTVEFUX0ZSQU1FOwotCi0JLyoKLQkgKiBJZ25vcmUgYWxsIGNoYXJhY3RlcnMgaWYgQ1JFQUQgaXMgbm90IHNldC4KLQkgKi8KLQlpZiAoKHRlcm1pb3MtPmNfY2ZsYWcgJiBDUkVBRCkgPT0gMCkKLQkJcG9ydC0+aWdub3JlX3N0YXR1c19tYXNrIHw9IFJYU1RBVF9EVU1NWV9SRUFEOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgY29uc3QgY2hhciAqczNjMjR4eF9zZXJpYWxfdHlwZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXN3aXRjaCAocG9ydC0+dHlwZSkgewotCWNhc2UgUE9SVF9TM0MyNDEwOgotCQlyZXR1cm4gIlMzQzI0MTAiOwotCWNhc2UgUE9SVF9TM0MyNDQwOgotCQlyZXR1cm4gIlMzQzI0NDAiOwotCWNhc2UgUE9SVF9TM0MyNDEyOgotCQlyZXR1cm4gIlMzQzI0MTIiOwotCWRlZmF1bHQ6Ci0JCXJldHVybiBOVUxMOwotCX0KLX0KLQotI2RlZmluZSBNQVBfU0laRSAoMHgxMDApCi0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3JlbGVhc2VfcG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXJlbGVhc2VfbWVtX3JlZ2lvbihwb3J0LT5tYXBiYXNlLCBNQVBfU0laRSk7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfcmVxdWVzdF9wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci0JY29uc3QgY2hhciAqbmFtZSA9IHMzYzI0eHhfc2VyaWFsX3BvcnRuYW1lKHBvcnQpOwotCXJldHVybiByZXF1ZXN0X21lbV9yZWdpb24ocG9ydC0+bWFwYmFzZSwgTUFQX1NJWkUsIG5hbWUpID8gMCA6IC1FQlVTWTsKLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfY29uZmlnX3BvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgaW50IGZsYWdzKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOwotCi0JaWYgKGZsYWdzICYgVUFSVF9DT05GSUdfVFlQRSAmJgotCSAgICBzM2MyNHh4X3NlcmlhbF9yZXF1ZXN0X3BvcnQocG9ydCkgPT0gMCkKLQkJcG9ydC0+dHlwZSA9IGluZm8tPnR5cGU7Ci19Ci0KLS8qCi0gKiB2ZXJpZnkgdGhlIG5ldyBzZXJpYWxfc3RydWN0IChmb3IgVElPQ1NTRVJJQUwpLgotICovCi1zdGF0aWMgaW50Ci1zM2MyNHh4X3NlcmlhbF92ZXJpZnlfcG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBzdHJ1Y3Qgc2VyaWFsX3N0cnVjdCAqc2VyKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOwotCi0JaWYgKHNlci0+dHlwZSAhPSBQT1JUX1VOS05PV04gJiYgc2VyLT50eXBlICE9IGluZm8tPnR5cGUpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JcmV0dXJuIDA7Ci19Ci0KLQotI2lmZGVmIENPTkZJR19TRVJJQUxfUzNDMjQxMF9DT05TT0xFCi0KLXN0YXRpYyBzdHJ1Y3QgY29uc29sZSBzM2MyNHh4X3NlcmlhbF9jb25zb2xlOwotCi0jZGVmaW5lIFMzQzI0WFhfU0VSSUFMX0NPTlNPTEUgJnMzYzI0eHhfc2VyaWFsX2NvbnNvbGUKLSNlbHNlCi0jZGVmaW5lIFMzQzI0WFhfU0VSSUFMX0NPTlNPTEUgTlVMTAotI2VuZGlmCi0KLXN0YXRpYyBzdHJ1Y3QgdWFydF9vcHMgczNjMjR4eF9zZXJpYWxfb3BzID0gewotCS5wbQkJPSBzM2MyNHh4X3NlcmlhbF9wbSwKLQkudHhfZW1wdHkJPSBzM2MyNHh4X3NlcmlhbF90eF9lbXB0eSwKLQkuZ2V0X21jdHJsCT0gczNjMjR4eF9zZXJpYWxfZ2V0X21jdHJsLAotCS5zZXRfbWN0cmwJPSBzM2MyNHh4X3NlcmlhbF9zZXRfbWN0cmwsCi0JLnN0b3BfdHgJPSBzM2MyNHh4X3NlcmlhbF9zdG9wX3R4LAotCS5zdGFydF90eAk9IHMzYzI0eHhfc2VyaWFsX3N0YXJ0X3R4LAotCS5zdG9wX3J4CT0gczNjMjR4eF9zZXJpYWxfc3RvcF9yeCwKLQkuZW5hYmxlX21zCT0gczNjMjR4eF9zZXJpYWxfZW5hYmxlX21zLAotCS5icmVha19jdGwJPSBzM2MyNHh4X3NlcmlhbF9icmVha19jdGwsCi0JLnN0YXJ0dXAJPSBzM2MyNHh4X3NlcmlhbF9zdGFydHVwLAotCS5zaHV0ZG93bgk9IHMzYzI0eHhfc2VyaWFsX3NodXRkb3duLAotCS5zZXRfdGVybWlvcwk9IHMzYzI0eHhfc2VyaWFsX3NldF90ZXJtaW9zLAotCS50eXBlCQk9IHMzYzI0eHhfc2VyaWFsX3R5cGUsCi0JLnJlbGVhc2VfcG9ydAk9IHMzYzI0eHhfc2VyaWFsX3JlbGVhc2VfcG9ydCwKLQkucmVxdWVzdF9wb3J0CT0gczNjMjR4eF9zZXJpYWxfcmVxdWVzdF9wb3J0LAotCS5jb25maWdfcG9ydAk9IHMzYzI0eHhfc2VyaWFsX2NvbmZpZ19wb3J0LAotCS52ZXJpZnlfcG9ydAk9IHMzYzI0eHhfc2VyaWFsX3ZlcmlmeV9wb3J0LAotfTsKLQotCi1zdGF0aWMgc3RydWN0IHVhcnRfZHJpdmVyIHMzYzI0eHhfdWFydF9kcnYgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5kZXZfbmFtZQk9ICJzM2MyNDEwX3NlcmlhbCIsCi0JLm5yCQk9IDMsCi0JLmNvbnMJCT0gUzNDMjRYWF9TRVJJQUxfQ09OU09MRSwKLQkuZHJpdmVyX25hbWUJPSBTM0MyNFhYX1NFUklBTF9OQU1FLAotCS5tYWpvcgkJPSBTM0MyNFhYX1NFUklBTF9NQUpPUiwKLQkubWlub3IJCT0gUzNDMjRYWF9TRVJJQUxfTUlOT1IsCi19OwotCi1zdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0IHMzYzI0eHhfc2VyaWFsX3BvcnRzW05SX1BPUlRTXSA9IHsKLQlbMF0gPSB7Ci0JCS5wb3J0ID0gewotCQkJLmxvY2sJCT0gX19TUElOX0xPQ0tfVU5MT0NLRUQoczNjMjR4eF9zZXJpYWxfcG9ydHNbMF0ucG9ydC5sb2NrKSwKLQkJCS5pb3R5cGUJCT0gVVBJT19NRU0sCi0JCQkuaXJxCQk9IElSUV9TM0NVQVJUX1JYMCwKLQkJCS51YXJ0Y2xrCT0gMCwKLQkJCS5maWZvc2l6ZQk9IDE2LAotCQkJLm9wcwkJPSAmczNjMjR4eF9zZXJpYWxfb3BzLAotCQkJLmZsYWdzCQk9IFVQRl9CT09UX0FVVE9DT05GLAotCQkJLmxpbmUJCT0gMCwKLQkJfQotCX0sCi0JWzFdID0gewotCQkucG9ydCA9IHsKLQkJCS5sb2NrCQk9IF9fU1BJTl9MT0NLX1VOTE9DS0VEKHMzYzI0eHhfc2VyaWFsX3BvcnRzWzFdLnBvcnQubG9jayksCi0JCQkuaW90eXBlCQk9IFVQSU9fTUVNLAotCQkJLmlycQkJPSBJUlFfUzNDVUFSVF9SWDEsCi0JCQkudWFydGNsawk9IDAsCi0JCQkuZmlmb3NpemUJPSAxNiwKLQkJCS5vcHMJCT0gJnMzYzI0eHhfc2VyaWFsX29wcywKLQkJCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJCS5saW5lCQk9IDEsCi0JCX0KLQl9LAotI2lmIE5SX1BPUlRTID4gMgotCi0JWzJdID0gewotCQkucG9ydCA9IHsKLQkJCS5sb2NrCQk9IF9fU1BJTl9MT0NLX1VOTE9DS0VEKHMzYzI0eHhfc2VyaWFsX3BvcnRzWzJdLnBvcnQubG9jayksCi0JCQkuaW90eXBlCQk9IFVQSU9fTUVNLAotCQkJLmlycQkJPSBJUlFfUzNDVUFSVF9SWDIsCi0JCQkudWFydGNsawk9IDAsCi0JCQkuZmlmb3NpemUJPSAxNiwKLQkJCS5vcHMJCT0gJnMzYzI0eHhfc2VyaWFsX29wcywKLQkJCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJCS5saW5lCQk9IDIsCi0JCX0KLQl9Ci0jZW5kaWYKLX07Ci0KLS8qIHMzYzI0eHhfc2VyaWFsX3Jlc2V0cG9ydAotICoKLSAqIHdyYXBwZXIgdG8gY2FsbCB0aGUgc3BlY2lmaWMgcmVzZXQgZm9yIHRoaXMgcG9ydCAocmVzZXQgdGhlIGZpZm9zCi0gKiBhbmQgdGhlIHNldHRpbmdzKQotKi8KLQotc3RhdGljIGlubGluZSBpbnQgczNjMjR4eF9zZXJpYWxfcmVzZXRwb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKiBwb3J0LAotCQkJCQkgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7Ci0KLQlyZXR1cm4gKGluZm8tPnJlc2V0X3BvcnQpKHBvcnQsIGNmZyk7Ci19Ci0KLS8qIHMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydAotICoKLSAqIGluaXRpYWxpc2UgYSBzaW5nbGUgc2VyaWFsIHBvcnQgZnJvbSB0aGUgcGxhdGZvcm0gZGV2aWNlIGdpdmVuCi0gKi8KLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQoc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8sCi0JCQkJICAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRkZXYpCi17Ci0Jc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9ICZvdXJwb3J0LT5wb3J0OwotCXN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZzsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQlpbnQgcmV0OwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQ6IHBvcnQ9JXAsIHBsYXRkZXY9JXBcbiIsIHBvcnQsIHBsYXRkZXYpOwotCi0JaWYgKHBsYXRkZXYgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQljZmcgPSBzM2MyNHh4X2Rldl90b19jZmcoJnBsYXRkZXYtPmRldik7Ci0KLQlpZiAocG9ydC0+bWFwYmFzZSAhPSAwKQotCQlyZXR1cm4gMDsKLQotCWlmIChjZmctPmh3cG9ydCA+IDMpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JLyogc2V0dXAgaW5mbyBmb3IgcG9ydCAqLwotCXBvcnQtPmRldgk9ICZwbGF0ZGV2LT5kZXY7Ci0Jb3VycG9ydC0+aW5mbwk9IGluZm87Ci0KLQkvKiBjb3B5IHRoZSBpbmZvIGluIGZyb20gcHJvdmlkZWQgc3RydWN0dXJlICovCi0Jb3VycG9ydC0+cG9ydC5maWZvc2l6ZSA9IGluZm8tPmZpZm9zaXplOwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQ6ICVwIChodyAlZCkuLi5cbiIsIHBvcnQsIGNmZy0+aHdwb3J0KTsKLQotCXBvcnQtPnVhcnRjbGsgPSAxOwotCi0JaWYgKGNmZy0+dWFydF9mbGFncyAmIFVQRl9DT05TX0ZMT1cpIHsKLQkJZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQ6IGVuYWJsaW5nIGZsb3cgY29udHJvbFxuIik7Ci0JCXBvcnQtPmZsYWdzIHw9IFVQRl9DT05TX0ZMT1c7Ci0JfQotCi0JLyogc29ydCBvdXIgdGhlIHBoeXNpY2FsIGFuZCB2aXJ0dWFsIGFkZHJlc3NlcyBmb3IgZWFjaCBVQVJUICovCi0KLQlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGxhdGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwotCWlmIChyZXMgPT0gTlVMTCkgewotCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBmaW5kIG1lbW9yeSByZXNvdXJjZSBmb3IgdWFydFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRiZygicmVzb3VyY2UgJXAgKCVseC4uJWx4KVxuIiwgcmVzLCByZXMtPnN0YXJ0LCByZXMtPmVuZCk7Ci0KLQlwb3J0LT5tYXBiYXNlCT0gcmVzLT5zdGFydDsKLQlwb3J0LT5tZW1iYXNlCT0gUzNDMjRYWF9WQV9VQVJUICsgKHJlcy0+c3RhcnQgLSBTM0MyNFhYX1BBX1VBUlQpOwotCXJldCA9IHBsYXRmb3JtX2dldF9pcnEocGxhdGRldiwgMCk7Ci0JaWYgKHJldCA8IDApCi0JCXBvcnQtPmlycSA9IDA7Ci0JZWxzZQotCQlwb3J0LT5pcnEgPSByZXQ7Ci0KLQlvdXJwb3J0LT5jbGsJPSBjbGtfZ2V0KCZwbGF0ZGV2LT5kZXYsICJ1YXJ0Iik7Ci0KLQlkYmcoInBvcnQ6IG1hcD0lMDh4LCBtZW09JTA4eCwgaXJxPSVkLCBjbG9jaz0lbGRcbiIsCi0JICAgIHBvcnQtPm1hcGJhc2UsIHBvcnQtPm1lbWJhc2UsIHBvcnQtPmlycSwgcG9ydC0+dWFydGNsayk7Ci0KLQkvKiByZXNldCB0aGUgZmlmb3MgKGFuZCBzZXR1cCB0aGUgdWFydCkgKi8KLQlzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQocG9ydCwgY2ZnKTsKLQlyZXR1cm4gMDsKLX0KLQotLyogRGV2aWNlIGRyaXZlciBzZXJpYWwgcG9ydCBwcm9iZSAqLwotCi1zdGF0aWMgaW50IHByb2JlX2luZGV4ID0gMDsKLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsCi0JCQkJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydDsKLQlpbnQgcmV0OwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9wcm9iZSglcCwgJXApICVkXG4iLCBkZXYsIGluZm8sIHByb2JlX2luZGV4KTsKLQotCW91cnBvcnQgPSAmczNjMjR4eF9zZXJpYWxfcG9ydHNbcHJvYmVfaW5kZXhdOwotCXByb2JlX2luZGV4Kys7Ci0KLQlkYmcoIiVzOiBpbml0aWFsaXNpbmcgcG9ydCAlcC4uLlxuIiwgX19mdW5jX18sIG91cnBvcnQpOwotCi0JcmV0ID0gczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0KG91cnBvcnQsIGluZm8sIGRldik7Ci0JaWYgKHJldCA8IDApCi0JCWdvdG8gcHJvYmVfZXJyOwotCi0JZGJnKCIlczogYWRkaW5nIHBvcnRcbiIsIF9fZnVuY19fKTsKLQl1YXJ0X2FkZF9vbmVfcG9ydCgmczNjMjR4eF91YXJ0X2RydiwgJm91cnBvcnQtPnBvcnQpOwotCXBsYXRmb3JtX3NldF9kcnZkYXRhKGRldiwgJm91cnBvcnQtPnBvcnQpOwotCi0JcmV0dXJuIDA7Ci0KLSBwcm9iZV9lcnI6Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSBzM2MyNHh4X2Rldl90b19wb3J0KCZkZXYtPmRldik7Ci0KLQlpZiAocG9ydCkKLQkJdWFydF9yZW1vdmVfb25lX3BvcnQoJnMzYzI0eHhfdWFydF9kcnYsIHBvcnQpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qIFVBUlQgcG93ZXIgbWFuYWdlbWVudCBjb2RlICovCi0KLSNpZmRlZiBDT05GSUdfUE0KLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQotewotCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSBzM2MyNHh4X2Rldl90b19wb3J0KCZkZXYtPmRldik7Ci0KLQlpZiAocG9ydCkKLQkJdWFydF9zdXNwZW5kX3BvcnQoJnMzYzI0eHhfdWFydF9kcnYsIHBvcnQpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gczNjMjR4eF9kZXZfdG9fcG9ydCgmZGV2LT5kZXYpOwotCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7Ci0KLQlpZiAocG9ydCkgewotCQljbGtfZW5hYmxlKG91cnBvcnQtPmNsayk7Ci0JCXMzYzI0eHhfc2VyaWFsX3Jlc2V0cG9ydChwb3J0LCBzM2MyNHh4X3BvcnRfdG9fY2ZnKHBvcnQpKTsKLQkJY2xrX2Rpc2FibGUob3VycG9ydC0+Y2xrKTsKLQotCQl1YXJ0X3Jlc3VtZV9wb3J0KCZzM2MyNHh4X3VhcnRfZHJ2LCBwb3J0KTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotI2Vsc2UKLSNkZWZpbmUgczNjMjR4eF9zZXJpYWxfc3VzcGVuZCBOVUxMCi0jZGVmaW5lIHMzYzI0eHhfc2VyaWFsX3Jlc3VtZSAgTlVMTAotI2VuZGlmCi0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICpkcnYsCi0JCQkgICAgICAgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvKQotewotCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdCglcCwlcClcbiIsIGRydiwgaW5mbyk7Ci0JcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcihkcnYpOwotfQotCi0KLS8qIG5vdyBjb21lcyB0aGUgY29kZSB0byBpbml0aWFsaXNlIGVpdGhlciB0aGUgczNjMjQxMCBvciBzM2MyNDQwIHNlcmlhbAotICogcG9ydCBpbmZvcm1hdGlvbgotKi8KLQotLyogY3B1IHNwZWNpZmljIHZhcmlhdGlvbnMgb24gdGhlIHNlcmlhbCBwb3J0IHN1cHBvcnQgKi8KLQotI2lmZGVmIENPTkZJR19DUFVfUzNDMjQwMAotCi1zdGF0aWMgaW50IHMzYzI0MDBfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQotewotCWNsay0+ZGl2aXNvciA9IDE7Ci0JY2xrLT5uYW1lID0gInBjbGsiOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjQwMF9zZXJpYWxfc2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjQwMF9zZXJpYWxfcmVzZXRwb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJICAgIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZykKLXsKLQlkYmcoInMzYzI0MDBfc2VyaWFsX3Jlc2V0cG9ydDogcG9ydD0lcCAoJTA4bHgpLCBjZmc9JXBcbiIsCi0JICAgIHBvcnQsIHBvcnQtPm1hcGJhc2UsIGNmZyk7Ci0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgIGNmZy0+dWNvbik7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OLCBjZmctPnVsY29uKTsKLQotCS8qIHJlc2V0IGJvdGggZmlmb3MgKi8KLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbiB8IFMzQzI0MTBfVUZDT05fUkVTRVRCT1RIKTsKLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24pOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gczNjMjQwMF91YXJ0X2luZiA9IHsKLQkubmFtZQkJPSAiU2Ftc3VuZyBTM0MyNDAwIFVBUlQiLAotCS50eXBlCQk9IFBPUlRfUzNDMjQwMCwKLQkuZmlmb3NpemUJPSAxNiwKLQkucnhfZmlmb21hc2sJPSBTM0MyNDEwX1VGU1RBVF9SWE1BU0ssCi0JLnJ4X2ZpZm9zaGlmdAk9IFMzQzI0MTBfVUZTVEFUX1JYU0hJRlQsCi0JLnJ4X2ZpZm9mdWxsCT0gUzNDMjQxMF9VRlNUQVRfUlhGVUxMLAotCS50eF9maWZvZnVsbAk9IFMzQzI0MTBfVUZTVEFUX1RYRlVMTCwKLQkudHhfZmlmb21hc2sJPSBTM0MyNDEwX1VGU1RBVF9UWE1BU0ssCi0JLnR4X2ZpZm9zaGlmdAk9IFMzQzI0MTBfVUZTVEFUX1RYU0hJRlQsCi0JLmdldF9jbGtzcmMJPSBzM2MyNDAwX3NlcmlhbF9nZXRzb3VyY2UsCi0JLnNldF9jbGtzcmMJPSBzM2MyNDAwX3NlcmlhbF9zZXRzb3VyY2UsCi0JLnJlc2V0X3BvcnQJPSBzM2MyNDAwX3NlcmlhbF9yZXNldHBvcnQsCi19OwotCi1zdGF0aWMgaW50IHMzYzI0MDBfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKLXsKLQlyZXR1cm4gczNjMjR4eF9zZXJpYWxfcHJvYmUoZGV2LCAmczNjMjQwMF91YXJ0X2luZik7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHMzYzI0MDBfc2VyaWFsX2RydiA9IHsKLQkucHJvYmUJCT0gczNjMjQwMF9zZXJpYWxfcHJvYmUsCi0JLnJlbW92ZQkJPSBzM2MyNHh4X3NlcmlhbF9yZW1vdmUsCi0JLnN1c3BlbmQJPSBzM2MyNHh4X3NlcmlhbF9zdXNwZW5kLAotCS5yZXN1bWUJCT0gczNjMjR4eF9zZXJpYWxfcmVzdW1lLAotCS5kcml2ZXIJCT0gewotCQkubmFtZQk9ICJzM2MyNDAwLXVhcnQiLAotCQkub3duZXIJPSBUSElTX01PRFVMRSwKLQl9LAotfTsKLQotc3RhdGljIGlubGluZSBpbnQgczNjMjQwMF9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiBzM2MyNHh4X3NlcmlhbF9pbml0KCZzM2MyNDAwX3NlcmlhbF9kcnYsICZzM2MyNDAwX3VhcnRfaW5mKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHMzYzI0MDBfc2VyaWFsX2V4aXQodm9pZCkKLXsKLQlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQwMF9zZXJpYWxfZHJ2KTsKLX0KLQotI2RlZmluZSBzM2MyNDAwX3VhcnRfaW5mX2F0ICZzM2MyNDAwX3VhcnRfaW5mCi0jZWxzZQotCi1zdGF0aWMgaW5saW5lIGludCBzM2MyNDAwX3NlcmlhbF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDAwX3NlcmlhbF9leGl0KHZvaWQpCi17Ci19Ci0KLSNkZWZpbmUgczNjMjQwMF91YXJ0X2luZl9hdCBOVUxMCi0KLSNlbmRpZiAvKiBDT05GSUdfQ1BVX1MzQzI0MDAgKi8KLQotLyogUzNDMjQxMCBzdXBwb3J0ICovCi0KLSNpZmRlZiBDT05GSUdfQ1BVX1MzQzI0MTAKKyNpbmNsdWRlICJzYW1zdW5nLmgiCiAKIHN0YXRpYyBpbnQgczNjMjQxMF9zZXJpYWxfc2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCiAJCQkJICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCkBAIC0xMzIzLDggKzgzLDYgQEAKIAkucmVzZXRfcG9ydAk9IHMzYzI0MTBfc2VyaWFsX3Jlc2V0cG9ydCwKIH07CiAKLS8qIGRldmljZSBtYW5hZ2VtZW50ICovCi0KIHN0YXRpYyBpbnQgczNjMjQxMF9zZXJpYWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQogewogCXJldHVybiBzM2MyNHh4X3NlcmlhbF9wcm9iZShkZXYsICZzM2MyNDEwX3VhcnRfaW5mKTsKQEAgLTEzMzMsNjEyICs5MSwyOCBAQAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgczNjMjQxMF9zZXJpYWxfZHJ2ID0gewogCS5wcm9iZQkJPSBzM2MyNDEwX3NlcmlhbF9wcm9iZSwKIAkucmVtb3ZlCQk9IHMzYzI0eHhfc2VyaWFsX3JlbW92ZSwKLQkuc3VzcGVuZAk9IHMzYzI0eHhfc2VyaWFsX3N1c3BlbmQsCi0JLnJlc3VtZQkJPSBzM2MyNHh4X3NlcmlhbF9yZXN1bWUsCiAJLmRyaXZlcgkJPSB7CiAJCS5uYW1lCT0gInMzYzI0MTAtdWFydCIsCiAJCS5vd25lcgk9IFRISVNfTU9EVUxFLAogCX0sCiB9OwogCi1zdGF0aWMgaW5saW5lIGludCBzM2MyNDEwX3NlcmlhbF9pbml0KHZvaWQpCitzM2MyNHh4X2NvbnNvbGVfaW5pdCgmczNjMjQxMF9zZXJpYWxfZHJ2LCAmczNjMjQxMF91YXJ0X2luZik7CisKK3N0YXRpYyBpbnQgX19pbml0IHMzYzI0MTBfc2VyaWFsX2luaXQodm9pZCkKIHsKIAlyZXR1cm4gczNjMjR4eF9zZXJpYWxfaW5pdCgmczNjMjQxMF9zZXJpYWxfZHJ2LCAmczNjMjQxMF91YXJ0X2luZik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDEwX3NlcmlhbF9leGl0KHZvaWQpCitzdGF0aWMgdm9pZCBfX2V4aXQgczNjMjQxMF9zZXJpYWxfZXhpdCh2b2lkKQogewogCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzM2MyNDEwX3NlcmlhbF9kcnYpOwogfQogCi0jZGVmaW5lIHMzYzI0MTBfdWFydF9pbmZfYXQgJnMzYzI0MTBfdWFydF9pbmYKLSNlbHNlCittb2R1bGVfaW5pdChzM2MyNDEwX3NlcmlhbF9pbml0KTsKK21vZHVsZV9leGl0KHMzYzI0MTBfc2VyaWFsX2V4aXQpOwogCi1zdGF0aWMgaW5saW5lIGludCBzM2MyNDEwX3NlcmlhbF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDEwX3NlcmlhbF9leGl0KHZvaWQpCi17Ci19Ci0KLSNkZWZpbmUgczNjMjQxMF91YXJ0X2luZl9hdCBOVUxMCi0KLSNlbmRpZiAvKiBDT05GSUdfQ1BVX1MzQzI0MTAgKi8KLQotI2lmIGRlZmluZWQoQ09ORklHX0NQVV9TM0MyNDQwKSB8fCBkZWZpbmVkKENPTkZJR19DUFVfUzNDMjQ0MikKLQotc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCi17Ci0JdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCi0JLy8gdG9kbyAtIHByb3BlciBmY2xrPD5ub25mY2xrIHN3aXRjaCAvLwotCi0JdWNvbiAmPSB+UzNDMjQ0MF9VQ09OX0NMS01BU0s7Ci0KLQlpZiAoc3RyY21wKGNsay0+bmFtZSwgInVjbGsiKSA9PSAwKQotCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9VQ0xLOwotCWVsc2UgaWYgKHN0cmNtcChjbGstPm5hbWUsICJwY2xrIikgPT0gMCkKLQkJdWNvbiB8PSBTM0MyNDQwX1VDT05fUENMSzsKLQllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAiZmNsayIpID09IDApCi0JCXVjb24gfD0gUzNDMjQ0MF9VQ09OX0ZDTEs7Ci0JZWxzZSB7Ci0JCXByaW50ayhLRVJOX0VSUiAidW5rbm93biBjbG9jayBzb3VyY2UgJXNcbiIsIGNsay0+bmFtZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgaW50IHMzYzI0NDBfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQotewotCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQl1bnNpZ25lZCBsb25nIHVjb24wLCB1Y29uMSwgdWNvbjI7Ci0KLQlzd2l0Y2ggKHVjb24gJiBTM0MyNDQwX1VDT05fQ0xLTUFTSykgewotCWNhc2UgUzNDMjQ0MF9VQ09OX1VDTEs6Ci0JCWNsay0+ZGl2aXNvciA9IDE7Ci0JCWNsay0+bmFtZSA9ICJ1Y2xrIjsKLQkJYnJlYWs7Ci0KLQljYXNlIFMzQzI0NDBfVUNPTl9QQ0xLOgotCWNhc2UgUzNDMjQ0MF9VQ09OX1BDTEsyOgotCQljbGstPmRpdmlzb3IgPSAxOwotCQljbGstPm5hbWUgPSAicGNsayI7Ci0JCWJyZWFrOwotCi0JY2FzZSBTM0MyNDQwX1VDT05fRkNMSzoKLQkJLyogdGhlIGZ1biBvZiBjYWxjdWxhdGluZyB0aGUgdWFydCBkaXZpc29ycyBvbgotCQkgKiB0aGUgczNjMjQ0MCAqLwotCi0JCXVjb24wID0gX19yYXdfcmVhZGwoUzNDMjRYWF9WQV9VQVJUMCArIFMzQzI0MTBfVUNPTik7Ci0JCXVjb24xID0gX19yYXdfcmVhZGwoUzNDMjRYWF9WQV9VQVJUMSArIFMzQzI0MTBfVUNPTik7Ci0JCXVjb24yID0gX19yYXdfcmVhZGwoUzNDMjRYWF9WQV9VQVJUMiArIFMzQzI0MTBfVUNPTik7Ci0KLQkJcHJpbnRrKCJ1Y29uczogJTA4bHgsICUwOGx4LCAlMDhseFxuIiwgdWNvbjAsIHVjb24xLCB1Y29uMik7Ci0KLQkJdWNvbjAgJj0gUzNDMjQ0MF9VQ09OMF9ESVZNQVNLOwotCQl1Y29uMSAmPSBTM0MyNDQwX1VDT04xX0RJVk1BU0s7Ci0JCXVjb24yICY9IFMzQzI0NDBfVUNPTjJfRElWTUFTSzsKLQotCQlpZiAodWNvbjAgIT0gMCkgewotCQkJY2xrLT5kaXZpc29yID0gdWNvbjAgPj4gUzNDMjQ0MF9VQ09OX0RJVlNISUZUOwotCQkJY2xrLT5kaXZpc29yICs9IDY7Ci0JCX0gZWxzZSBpZiAodWNvbjEgIT0gMCkgewotCQkJY2xrLT5kaXZpc29yID0gdWNvbjEgPj4gUzNDMjQ0MF9VQ09OX0RJVlNISUZUOwotCQkJY2xrLT5kaXZpc29yICs9IDIxOwotCQl9IGVsc2UgaWYgKHVjb24yICE9IDApIHsKLQkJCWNsay0+ZGl2aXNvciA9IHVjb24yID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKLQkJCWNsay0+ZGl2aXNvciArPSAzNjsKLQkJfSBlbHNlIHsKLQkJCS8qIG1hbnVhbCBjYWxpbXMgNDQsIHNlZW1zIHRvIGJlIDkgKi8KLQkJCWNsay0+ZGl2aXNvciA9IDk7Ci0JCX0KLQotCQljbGstPm5hbWUgPSAiZmNsayI7Ci0JCWJyZWFrOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHMzYzI0NDBfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCi17Ci0JdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCi0JZGJnKCJzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQ6IHBvcnQ9JXAgKCUwOGx4KSwgY2ZnPSVwXG4iLAotCSAgICBwb3J0LCBwb3J0LT5tYXBiYXNlLCBjZmcpOwotCi0JLyogZW5zdXJlIHdlIGRvbid0IGNoYW5nZSB0aGUgY2xvY2sgc2V0dGluZ3MuLi4gKi8KLQotCXVjb24gJj0gKFMzQzI0NDBfVUNPTjBfRElWTUFTSyB8ICgzPDwxMCkpOwotCi0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sICB1Y29uIHwgY2ZnLT51Y29uKTsKLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUxDT04sIGNmZy0+dWxjb24pOwotCi0JLyogcmVzZXQgYm90aCBmaWZvcyAqLwotCi0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uIHwgUzNDMjQxMF9VRkNPTl9SRVNFVEJPVEgpOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyBzM2MyNDQwX3VhcnRfaW5mID0gewotCS5uYW1lCQk9ICJTYW1zdW5nIFMzQzI0NDAgVUFSVCIsCi0JLnR5cGUJCT0gUE9SVF9TM0MyNDQwLAotCS5maWZvc2l6ZQk9IDY0LAotCS5yeF9maWZvbWFzawk9IFMzQzI0NDBfVUZTVEFUX1JYTUFTSywKLQkucnhfZmlmb3NoaWZ0CT0gUzNDMjQ0MF9VRlNUQVRfUlhTSElGVCwKLQkucnhfZmlmb2Z1bGwJPSBTM0MyNDQwX1VGU1RBVF9SWEZVTEwsCi0JLnR4X2ZpZm9mdWxsCT0gUzNDMjQ0MF9VRlNUQVRfVFhGVUxMLAotCS50eF9maWZvbWFzawk9IFMzQzI0NDBfVUZTVEFUX1RYTUFTSywKLQkudHhfZmlmb3NoaWZ0CT0gUzNDMjQ0MF9VRlNUQVRfVFhTSElGVCwKLQkuZ2V0X2Nsa3NyYwk9IHMzYzI0NDBfc2VyaWFsX2dldHNvdXJjZSwKLQkuc2V0X2Nsa3NyYwk9IHMzYzI0NDBfc2VyaWFsX3NldHNvdXJjZSwKLQkucmVzZXRfcG9ydAk9IHMzYzI0NDBfc2VyaWFsX3Jlc2V0cG9ydCwKLX07Ci0KLS8qIGRldmljZSBtYW5hZ2VtZW50ICovCi0KLXN0YXRpYyBpbnQgczNjMjQ0MF9zZXJpYWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQotewotCWRiZygiczNjMjQ0MF9zZXJpYWxfcHJvYmU6IGRldj0lcFxuIiwgZGV2KTsKLQlyZXR1cm4gczNjMjR4eF9zZXJpYWxfcHJvYmUoZGV2LCAmczNjMjQ0MF91YXJ0X2luZik7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHMzYzI0NDBfc2VyaWFsX2RydiA9IHsKLQkucHJvYmUJCT0gczNjMjQ0MF9zZXJpYWxfcHJvYmUsCi0JLnJlbW92ZQkJPSBzM2MyNHh4X3NlcmlhbF9yZW1vdmUsCi0JLnN1c3BlbmQJPSBzM2MyNHh4X3NlcmlhbF9zdXNwZW5kLAotCS5yZXN1bWUJCT0gczNjMjR4eF9zZXJpYWxfcmVzdW1lLAotCS5kcml2ZXIJCT0gewotCQkubmFtZQk9ICJzM2MyNDQwLXVhcnQiLAotCQkub3duZXIJPSBUSElTX01PRFVMRSwKLQl9LAotfTsKLQotCi1zdGF0aWMgaW5saW5lIGludCBzM2MyNDQwX3NlcmlhbF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIHMzYzI0eHhfc2VyaWFsX2luaXQoJnMzYzI0NDBfc2VyaWFsX2RydiwgJnMzYzI0NDBfdWFydF9pbmYpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgczNjMjQ0MF9zZXJpYWxfZXhpdCh2b2lkKQotewotCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzM2MyNDQwX3NlcmlhbF9kcnYpOwotfQotCi0jZGVmaW5lIHMzYzI0NDBfdWFydF9pbmZfYXQgJnMzYzI0NDBfdWFydF9pbmYKLSNlbHNlCi0KLXN0YXRpYyBpbmxpbmUgaW50IHMzYzI0NDBfc2VyaWFsX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHMzYzI0NDBfc2VyaWFsX2V4aXQodm9pZCkKLXsKLX0KLQotI2RlZmluZSBzM2MyNDQwX3VhcnRfaW5mX2F0IE5VTEwKLSNlbmRpZiAvKiBDT05GSUdfQ1BVX1MzQzI0NDAgKi8KLQotI2lmIGRlZmluZWQoQ09ORklHX0NQVV9TM0MyNDEyKQotCi1zdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX3NldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKLXsKLQl1bnNpZ25lZCBsb25nIHVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7Ci0KLQl1Y29uICY9IH5TM0MyNDEyX1VDT05fQ0xLTUFTSzsKLQotCWlmIChzdHJjbXAoY2xrLT5uYW1lLCAidWNsayIpID09IDApCi0JCXVjb24gfD0gUzNDMjQ0MF9VQ09OX1VDTEs7Ci0JZWxzZSBpZiAoc3RyY21wKGNsay0+bmFtZSwgInBjbGsiKSA9PSAwKQotCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9QQ0xLOwotCWVsc2UgaWYgKHN0cmNtcChjbGstPm5hbWUsICJ1c3lzY2xrIikgPT0gMCkKLQkJdWNvbiB8PSBTM0MyNDEyX1VDT05fVVNZU0NMSzsKLQllbHNlIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJ1bmtub3duIGNsb2NrIHNvdXJjZSAlc1xuIiwgY2xrLT5uYW1lKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sIHVjb24pOwotCXJldHVybiAwOwotfQotCi0KLXN0YXRpYyBpbnQgczNjMjQxMl9zZXJpYWxfZ2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCi17Ci0JdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCi0Jc3dpdGNoICh1Y29uICYgUzNDMjQxMl9VQ09OX0NMS01BU0spIHsKLQljYXNlIFMzQzI0MTJfVUNPTl9VQ0xLOgotCQljbGstPmRpdmlzb3IgPSAxOwotCQljbGstPm5hbWUgPSAidWNsayI7Ci0JCWJyZWFrOwotCi0JY2FzZSBTM0MyNDEyX1VDT05fUENMSzoKLQljYXNlIFMzQzI0MTJfVUNPTl9QQ0xLMjoKLQkJY2xrLT5kaXZpc29yID0gMTsKLQkJY2xrLT5uYW1lID0gInBjbGsiOwotCQlicmVhazsKLQotCWNhc2UgUzNDMjQxMl9VQ09OX1VTWVNDTEs6Ci0JCWNsay0+ZGl2aXNvciA9IDE7Ci0JCWNsay0+bmFtZSA9ICJ1c3lzY2xrIjsKLQkJYnJlYWs7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjQxMl9zZXJpYWxfcmVzZXRwb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJICAgIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZykKLXsKLQl1bnNpZ25lZCBsb25nIHVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7Ci0KLQlkYmcoIiVzOiBwb3J0PSVwICglMDhseCksIGNmZz0lcFxuIiwKLQkgICAgX19mdW5jX18sIHBvcnQsIHBvcnQtPm1hcGJhc2UsIGNmZyk7Ci0KLQkvKiBlbnN1cmUgd2UgZG9uJ3QgY2hhbmdlIHRoZSBjbG9jayBzZXR0aW5ncy4uLiAqLwotCi0JdWNvbiAmPSBTM0MyNDEyX1VDT05fQ0xLTUFTSzsKLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCAgdWNvbiB8IGNmZy0+dWNvbik7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OLCBjZmctPnVsY29uKTsKLQotCS8qIHJlc2V0IGJvdGggZmlmb3MgKi8KLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbiB8IFMzQzI0MTBfVUZDT05fUkVTRVRCT1RIKTsKLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24pOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gczNjMjQxMl91YXJ0X2luZiA9IHsKLQkubmFtZQkJPSAiU2Ftc3VuZyBTM0MyNDEyIFVBUlQiLAotCS50eXBlCQk9IFBPUlRfUzNDMjQxMiwKLQkuZmlmb3NpemUJPSA2NCwKLQkucnhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9SWE1BU0ssCi0JLnJ4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1JYU0hJRlQsCi0JLnJ4X2ZpZm9mdWxsCT0gUzNDMjQ0MF9VRlNUQVRfUlhGVUxMLAotCS50eF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1RYRlVMTCwKLQkudHhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9UWE1BU0ssCi0JLnR4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1RYU0hJRlQsCi0JLmdldF9jbGtzcmMJPSBzM2MyNDEyX3NlcmlhbF9nZXRzb3VyY2UsCi0JLnNldF9jbGtzcmMJPSBzM2MyNDEyX3NlcmlhbF9zZXRzb3VyY2UsCi0JLnJlc2V0X3BvcnQJPSBzM2MyNDEyX3NlcmlhbF9yZXNldHBvcnQsCi19OwotCi0vKiBkZXZpY2UgbWFuYWdlbWVudCAqLwotCi1zdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKLXsKLQlkYmcoInMzYzI0NDBfc2VyaWFsX3Byb2JlOiBkZXY9JXBcbiIsIGRldik7Ci0JcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3Byb2JlKGRldiwgJnMzYzI0MTJfdWFydF9pbmYpOwotfQotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2MyNDEyX3NlcmlhbF9kcnYgPSB7Ci0JLnByb2JlCQk9IHMzYzI0MTJfc2VyaWFsX3Byb2JlLAotCS5yZW1vdmUJCT0gczNjMjR4eF9zZXJpYWxfcmVtb3ZlLAotCS5zdXNwZW5kCT0gczNjMjR4eF9zZXJpYWxfc3VzcGVuZCwKLQkucmVzdW1lCQk9IHMzYzI0eHhfc2VyaWFsX3Jlc3VtZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAiczNjMjQxMi11YXJ0IiwKLQkJLm93bmVyCT0gVEhJU19NT0RVTEUsCi0JfSwKLX07Ci0KLQotc3RhdGljIGlubGluZSBpbnQgczNjMjQxMl9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiBzM2MyNHh4X3NlcmlhbF9pbml0KCZzM2MyNDEyX3NlcmlhbF9kcnYsICZzM2MyNDEyX3VhcnRfaW5mKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHMzYzI0MTJfc2VyaWFsX2V4aXQodm9pZCkKLXsKLQlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQxMl9zZXJpYWxfZHJ2KTsKLX0KLQotI2RlZmluZSBzM2MyNDEyX3VhcnRfaW5mX2F0ICZzM2MyNDEyX3VhcnRfaW5mCi0jZWxzZQotCi1zdGF0aWMgaW5saW5lIGludCBzM2MyNDEyX3NlcmlhbF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDEyX3NlcmlhbF9leGl0KHZvaWQpCi17Ci19Ci0KLSNkZWZpbmUgczNjMjQxMl91YXJ0X2luZl9hdCBOVUxMCi0jZW5kaWYgLyogQ09ORklHX0NQVV9TM0MyNDQwICovCi0KLQotLyogbW9kdWxlIGluaXRpYWxpc2F0aW9uIGNvZGUgKi8KLQotc3RhdGljIGludCBfX2luaXQgczNjMjR4eF9zZXJpYWxfbW9kaW5pdCh2b2lkKQotewotCWludCByZXQ7Ci0KLQlyZXQgPSB1YXJ0X3JlZ2lzdGVyX2RyaXZlcigmczNjMjR4eF91YXJ0X2Rydik7Ci0JaWYgKHJldCA8IDApIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gcmVnaXN0ZXIgVUFSVCBkcml2ZXJcbiIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCi0JczNjMjQwMF9zZXJpYWxfaW5pdCgpOwotCXMzYzI0MTBfc2VyaWFsX2luaXQoKTsKLQlzM2MyNDEyX3NlcmlhbF9pbml0KCk7Ci0JczNjMjQ0MF9zZXJpYWxfaW5pdCgpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBzM2MyNHh4X3NlcmlhbF9tb2RleGl0KHZvaWQpCi17Ci0JczNjMjQwMF9zZXJpYWxfZXhpdCgpOwotCXMzYzI0MTBfc2VyaWFsX2V4aXQoKTsKLQlzM2MyNDEyX3NlcmlhbF9leGl0KCk7Ci0JczNjMjQ0MF9zZXJpYWxfZXhpdCgpOwotCi0JdWFydF91bnJlZ2lzdGVyX2RyaXZlcigmczNjMjR4eF91YXJ0X2Rydik7Ci19Ci0KLQotbW9kdWxlX2luaXQoczNjMjR4eF9zZXJpYWxfbW9kaW5pdCk7Ci1tb2R1bGVfZXhpdChzM2MyNHh4X3NlcmlhbF9tb2RleGl0KTsKLQotLyogQ29uc29sZSBjb2RlICovCi0KLSNpZmRlZiBDT05GSUdfU0VSSUFMX1MzQzI0MTBfQ09OU09MRQotCi1zdGF0aWMgc3RydWN0IHVhcnRfcG9ydCAqY29uc191YXJ0OwotCi1zdGF0aWMgaW50Ci1zM2MyNHh4X3NlcmlhbF9jb25zb2xlX3R4cmR5KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGludCB1ZmNvbikKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQl1bnNpZ25lZCBsb25nIHVmc3RhdCwgdXRyc3RhdDsKLQotCWlmICh1ZmNvbiAmIFMzQzI0MTBfVUZDT05fRklGT01PREUpIHsKLQkJLyogZmlmbyBtb2RlIC0gY2hlY2sgYW1tb3VudCBvZiBkYXRhIGluIGZpZm8gcmVnaXN0ZXJzLi4uICovCi0KLQkJdWZzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCk7Ci0JCXJldHVybiAodWZzdGF0ICYgaW5mby0+dHhfZmlmb2Z1bGwpID8gMCA6IDE7Ci0JfQotCi0JLyogaW4gbm9uLWZpZm8gbW9kZSwgd2UgZ28gYW5kIHVzZSB0aGUgdHggYnVmZmVyIGVtcHR5ICovCi0KLQl1dHJzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VUUlNUQVQpOwotCXJldHVybiAodXRyc3RhdCAmIFMzQzI0MTBfVVRSU1RBVF9UWEUpID8gMSA6IDA7Ci19Ci0KLXN0YXRpYyB2b2lkCi1zM2MyNHh4X3NlcmlhbF9jb25zb2xlX3B1dGNoYXIoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgaW50IGNoKQotewotCXVuc2lnbmVkIGludCB1ZmNvbiA9IHJkX3JlZ2woY29uc191YXJ0LCBTM0MyNDEwX1VGQ09OKTsKLQl3aGlsZSAoIXMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfdHhyZHkocG9ydCwgdWZjb24pKQotCQliYXJyaWVyKCk7Ci0Jd3JfcmVnYihjb25zX3VhcnQsIFMzQzI0MTBfVVRYSCwgY2gpOwotfQotCi1zdGF0aWMgdm9pZAotczNjMjR4eF9zZXJpYWxfY29uc29sZV93cml0ZShzdHJ1Y3QgY29uc29sZSAqY28sIGNvbnN0IGNoYXIgKnMsCi0JCQkgICAgIHVuc2lnbmVkIGludCBjb3VudCkKLXsKLQl1YXJ0X2NvbnNvbGVfd3JpdGUoY29uc191YXJ0LCBzLCBjb3VudCwgczNjMjR4eF9zZXJpYWxfY29uc29sZV9wdXRjaGFyKTsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0Ci1zM2MyNHh4X3NlcmlhbF9nZXRfb3B0aW9ucyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgKmJhdWQsCi0JCQkgICBpbnQgKnBhcml0eSwgaW50ICpiaXRzKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjIGNsa3NyYzsKLQlzdHJ1Y3QgY2xrICpjbGs7Ci0JdW5zaWduZWQgaW50IHVsY29uOwotCXVuc2lnbmVkIGludCB1Y29uOwotCXVuc2lnbmVkIGludCB1YnJkaXY7Ci0JdW5zaWduZWQgbG9uZyByYXRlOwotCi0JdWxjb24gID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OKTsKLQl1Y29uICAgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7Ci0JdWJyZGl2ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VCUkRJVik7Ci0KLQlkYmcoInMzYzI0eHhfc2VyaWFsX2dldF9vcHRpb25zOiBwb3J0PSVwXG4iCi0JICAgICJyZWdpc3RlcnM6IHVsY29uPSUwOHgsIHVjb249JTA4eCwgdWJkcml2PSUwOHhcbiIsCi0JICAgIHBvcnQsIHVsY29uLCB1Y29uLCB1YnJkaXYpOwotCi0JaWYgKCh1Y29uICYgMHhmKSAhPSAwKSB7Ci0JCS8qIGNvbnNpZGVyIHRoZSBzZXJpYWwgcG9ydCBjb25maWd1cmVkIGlmIHRoZSB0eC9yeCBtb2RlIHNldCAqLwotCi0JCXN3aXRjaCAodWxjb24gJiBTM0MyNDEwX0xDT05fQ1NNQVNLKSB7Ci0JCWNhc2UgUzNDMjQxMF9MQ09OX0NTNToKLQkJCSpiaXRzID0gNTsKLQkJCWJyZWFrOwotCQljYXNlIFMzQzI0MTBfTENPTl9DUzY6Ci0JCQkqYml0cyA9IDY7Ci0JCQlicmVhazsKLQkJY2FzZSBTM0MyNDEwX0xDT05fQ1M3OgotCQkJKmJpdHMgPSA3OwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCWNhc2UgUzNDMjQxMF9MQ09OX0NTODoKLQkJCSpiaXRzID0gODsKLQkJCWJyZWFrOwotCQl9Ci0KLQkJc3dpdGNoICh1bGNvbiAmIFMzQzI0MTBfTENPTl9QTUFTSykgewotCQljYXNlIFMzQzI0MTBfTENPTl9QRVZFTjoKLQkJCSpwYXJpdHkgPSAnZSc7Ci0JCQlicmVhazsKLQotCQljYXNlIFMzQzI0MTBfTENPTl9QT0REOgotCQkJKnBhcml0eSA9ICdvJzsKLQkJCWJyZWFrOwotCi0JCWNhc2UgUzNDMjQxMF9MQ09OX1BOT05FOgotCQlkZWZhdWx0OgotCQkJKnBhcml0eSA9ICduJzsKLQkJfQotCi0JCS8qIG5vdyBjYWxjdWxhdGUgdGhlIGJhdWQgcmF0ZSAqLwotCi0JCXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShwb3J0LCAmY2xrc3JjKTsKLQotCQljbGsgPSBjbGtfZ2V0KHBvcnQtPmRldiwgY2xrc3JjLm5hbWUpOwotCQlpZiAoIUlTX0VSUihjbGspICYmIGNsayAhPSBOVUxMKQotCQkJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGspIC8gY2xrc3JjLmRpdmlzb3I7Ci0JCWVsc2UKLQkJCXJhdGUgPSAxOwotCi0KLQkJKmJhdWQgPSByYXRlIC8gKCAxNiAqICh1YnJkaXYgKyAxKSk7Ci0JCWRiZygiY2FsY3VsYXRlZCBiYXVkICVkXG4iLCAqYmF1ZCk7Ci0JfQotCi19Ci0KLS8qIHMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydHMKLSAqCi0gKiBpbml0aWFsaXNlIHRoZSBzZXJpYWwgcG9ydHMgZnJvbSB0aGUgbWFjaGluZSBwcm92aWRlZCBpbml0aWFsaXNhdGlvbgotICogZGF0YS4KLSovCi0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0cyhzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8pCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpwdHIgPSBzM2MyNHh4X3NlcmlhbF9wb3J0czsKLQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICoqcGxhdGRldl9wdHI7Ci0JaW50IGk7Ci0KLQlkYmcoInMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydHM6IGluaXRpYWxpc2luZyBwb3J0cy4uLlxuIik7Ci0KLQlwbGF0ZGV2X3B0ciA9IHMzYzI0eHhfdWFydF9kZXZzOwotCi0JZm9yIChpID0gMDsgaSA8IE5SX1BPUlRTOyBpKyssIHB0cisrLCBwbGF0ZGV2X3B0cisrKSB7Ci0JCXMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydChwdHIsIGluZm8sICpwbGF0ZGV2X3B0cik7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0Ci1zM2MyNHh4X3NlcmlhbF9jb25zb2xlX3NldHVwKHN0cnVjdCBjb25zb2xlICpjbywgY2hhciAqb3B0aW9ucykKLXsKLQlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0OwotCWludCBiYXVkID0gOTYwMDsKLQlpbnQgYml0cyA9IDg7Ci0JaW50IHBhcml0eSA9ICduJzsKLQlpbnQgZmxvdyA9ICduJzsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cDogY289JXAgKCVkKSwgJXNcbiIsCi0JICAgIGNvLCBjby0+aW5kZXgsIG9wdGlvbnMpOwotCi0JLyogaXMgdGhpcyBhIHZhbGlkIHBvcnQgKi8KLQotCWlmIChjby0+aW5kZXggPT0gLTEgfHwgY28tPmluZGV4ID49IE5SX1BPUlRTKQotCQljby0+aW5kZXggPSAwOwotCi0JcG9ydCA9ICZzM2MyNHh4X3NlcmlhbF9wb3J0c1tjby0+aW5kZXhdLnBvcnQ7Ci0KLQkvKiBpcyB0aGUgcG9ydCBjb25maWd1cmVkPyAqLwotCi0JaWYgKHBvcnQtPm1hcGJhc2UgPT0gMHgwKSB7Ci0JCWNvLT5pbmRleCA9IDA7Ci0JCXBvcnQgPSAmczNjMjR4eF9zZXJpYWxfcG9ydHNbY28tPmluZGV4XS5wb3J0OwotCX0KLQotCWNvbnNfdWFydCA9IHBvcnQ7Ci0KLQlkYmcoInMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfc2V0dXA6IHBvcnQ9JXAgKCVkKVxuIiwgcG9ydCwgY28tPmluZGV4KTsKLQotCS8qCi0JICogQ2hlY2sgd2hldGhlciBhbiBpbnZhbGlkIHVhcnQgbnVtYmVyIGhhcyBiZWVuIHNwZWNpZmllZCwgYW5kCi0JICogaWYgc28sIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGF2YWlsYWJsZSBwb3J0IHRoYXQgZG9lcyBoYXZlCi0JICogY29uc29sZSBzdXBwb3J0LgotCSAqLwotCWlmIChvcHRpb25zKQotCQl1YXJ0X3BhcnNlX29wdGlvbnMob3B0aW9ucywgJmJhdWQsICZwYXJpdHksICZiaXRzLCAmZmxvdyk7Ci0JZWxzZQotCQlzM2MyNHh4X3NlcmlhbF9nZXRfb3B0aW9ucyhwb3J0LCAmYmF1ZCwgJnBhcml0eSwgJmJpdHMpOwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3NldHVwOiBiYXVkICVkXG4iLCBiYXVkKTsKLQotCXJldHVybiB1YXJ0X3NldF9vcHRpb25zKHBvcnQsIGNvLCBiYXVkLCBwYXJpdHksIGJpdHMsIGZsb3cpOwotfQotCi0vKiBzM2MyNHh4X3NlcmlhbF9pbml0Y29uc29sZQotICoKLSAqIGluaXRpYWxpc2UgdGhlIGNvbnNvbGUgZnJvbSBvbmUgb2YgdGhlIHVhcnQgZHJpdmVycwotKi8KLQotc3RhdGljIHN0cnVjdCBjb25zb2xlIHMzYzI0eHhfc2VyaWFsX2NvbnNvbGUgPQotewotCS5uYW1lCQk9IFMzQzI0WFhfU0VSSUFMX05BTUUsCi0JLmRldmljZQkJPSB1YXJ0X2NvbnNvbGVfZGV2aWNlLAotCS5mbGFncwkJPSBDT05fUFJJTlRCVUZGRVIsCi0JLmluZGV4CQk9IC0xLAotCS53cml0ZQkJPSBzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3dyaXRlLAotCS5zZXR1cAkJPSBzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3NldHVwCi19OwotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlKHZvaWQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvOwotCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiA9IHMzYzI0eHhfdWFydF9kZXZzWzBdOwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0Y29uc29sZVxuIik7Ci0KLQkvKiBzZWxlY3QgZHJpdmVyIGJhc2VkIG9uIHRoZSBjcHUgKi8KLQotCWlmIChkZXYgPT0gTlVMTCkgewotCQlwcmludGsoS0VSTl9FUlIgInMzYzI0eHg6IG5vIGRldmljZXMgZm9yIGNvbnNvbGUgaW5pdFxuIik7Ci0JCXJldHVybiAwOwotCX0KLQotCWlmIChzdHJjbXAoZGV2LT5uYW1lLCAiczNjMjQwMC11YXJ0IikgPT0gMCkgewotCQlpbmZvID0gczNjMjQwMF91YXJ0X2luZl9hdDsKLQl9IGVsc2UgaWYgKHN0cmNtcChkZXYtPm5hbWUsICJzM2MyNDEwLXVhcnQiKSA9PSAwKSB7Ci0JCWluZm8gPSBzM2MyNDEwX3VhcnRfaW5mX2F0OwotCX0gZWxzZSBpZiAoc3RyY21wKGRldi0+bmFtZSwgInMzYzI0NDAtdWFydCIpID09IDApIHsKLQkJaW5mbyA9IHMzYzI0NDBfdWFydF9pbmZfYXQ7Ci0JfSBlbHNlIGlmIChzdHJjbXAoZGV2LT5uYW1lLCAiczNjMjQxMi11YXJ0IikgPT0gMCkgewotCQlpbmZvID0gczNjMjQxMl91YXJ0X2luZl9hdDsKLQl9IGVsc2UgewotCQlwcmludGsoS0VSTl9FUlIgInMzYzI0eHg6IG5vIGRyaXZlciBmb3IgJXNcbiIsIGRldi0+bmFtZSk7Ci0JCXJldHVybiAwOwotCX0KLQotCWlmIChpbmZvID09IE5VTEwpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJzM2MyNHh4OiBubyBkcml2ZXIgZm9yIGNvbnNvbGVcbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlzM2MyNHh4X3NlcmlhbF9jb25zb2xlLmRhdGEgPSAmczNjMjR4eF91YXJ0X2RydjsKLQlzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzKGluZm8pOwotCi0JcmVnaXN0ZXJfY29uc29sZSgmczNjMjR4eF9zZXJpYWxfY29uc29sZSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLWNvbnNvbGVfaW5pdGNhbGwoczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGUpOwotCi0jZW5kaWYgLyogQ09ORklHX1NFUklBTF9TM0MyNDEwX0NPTlNPTEUgKi8KLQotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwogTU9EVUxFX0FVVEhPUigiQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPiIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJTYW1zdW5nIFMzQzI0MTAvUzNDMjQ0MC9TM0MyNDEyIFNlcmlhbCBwb3J0IGRyaXZlciIpOwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpzM2MyNDAwLXVhcnQiKTsKK01PRFVMRV9ERVNDUklQVElPTigiU2Ftc3VuZyBTM0MyNDEwIFNvQyBTZXJpYWwgcG9ydCBkcml2ZXIiKTsKIE1PRFVMRV9BTElBUygicGxhdGZvcm06czNjMjQxMC11YXJ0Iik7Ci1NT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0MTItdWFydCIpOwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpzM2MyNDQwLXVhcnQiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL3MzYzI0MTIuYyBiL2RyaXZlcnMvc2VyaWFsL3MzYzI0MTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTBjMjIwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9zZXJpYWwvczNjMjQxMi5jCkBAIC0wLDAgKzEsMTUxIEBACisvKiBsaW51eC9kcml2ZXJzL3NlcmlhbC9zM2MyNDEyLmMKKyAqCisgKiBEcml2ZXIgZm9yIFNhbXN1bmcgUzNDMjQxMiBhbmQgUzNDMjQxMyBTb0Mgb25ib2FyZCBVQVJUcy4KKyAqCisgKiBCZW4gRG9va3MsIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KKworI2luY2x1ZGUgPGFzbS9pcnEuaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKworI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXNlcmlhbC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgorCisjaW5jbHVkZSAic2Ftc3VuZy5oIgorCitzdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX3NldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisKKwl1Y29uICY9IH5TM0MyNDEyX1VDT05fQ0xLTUFTSzsKKworCWlmIChzdHJjbXAoY2xrLT5uYW1lLCAidWNsayIpID09IDApCisJCXVjb24gfD0gUzNDMjQ0MF9VQ09OX1VDTEs7CisJZWxzZSBpZiAoc3RyY21wKGNsay0+bmFtZSwgInBjbGsiKSA9PSAwKQorCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9QQ0xLOworCWVsc2UgaWYgKHN0cmNtcChjbGstPm5hbWUsICJ1c3lzY2xrIikgPT0gMCkKKwkJdWNvbiB8PSBTM0MyNDEyX1VDT05fVVNZU0NMSzsKKwllbHNlIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ1bmtub3duIGNsb2NrIHNvdXJjZSAlc1xuIiwgY2xrLT5uYW1lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sIHVjb24pOworCXJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQgczNjMjQxMl9zZXJpYWxfZ2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCisJCQkJICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCit7CisJdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJc3dpdGNoICh1Y29uICYgUzNDMjQxMl9VQ09OX0NMS01BU0spIHsKKwljYXNlIFMzQzI0MTJfVUNPTl9VQ0xLOgorCQljbGstPmRpdmlzb3IgPSAxOworCQljbGstPm5hbWUgPSAidWNsayI7CisJCWJyZWFrOworCisJY2FzZSBTM0MyNDEyX1VDT05fUENMSzoKKwljYXNlIFMzQzI0MTJfVUNPTl9QQ0xLMjoKKwkJY2xrLT5kaXZpc29yID0gMTsKKwkJY2xrLT5uYW1lID0gInBjbGsiOworCQlicmVhazsKKworCWNhc2UgUzNDMjQxMl9VQ09OX1VTWVNDTEs6CisJCWNsay0+ZGl2aXNvciA9IDE7CisJCWNsay0+bmFtZSA9ICJ1c3lzY2xrIjsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczNjMjQxMl9zZXJpYWxfcmVzZXRwb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCisJCQkJICAgIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZykKK3sKKwl1bnNpZ25lZCBsb25nIHVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisKKwlkYmcoIiVzOiBwb3J0PSVwICglMDhseCksIGNmZz0lcFxuIiwKKwkgICAgX19mdW5jX18sIHBvcnQsIHBvcnQtPm1hcGJhc2UsIGNmZyk7CisKKwkvKiBlbnN1cmUgd2UgZG9uJ3QgY2hhbmdlIHRoZSBjbG9jayBzZXR0aW5ncy4uLiAqLworCisJdWNvbiAmPSBTM0MyNDEyX1VDT05fQ0xLTUFTSzsKKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCAgdWNvbiB8IGNmZy0+dWNvbik7CisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OLCBjZmctPnVsY29uKTsKKworCS8qIHJlc2V0IGJvdGggZmlmb3MgKi8KKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbiB8IFMzQzI0MTBfVUZDT05fUkVTRVRCT1RIKTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24pOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gczNjMjQxMl91YXJ0X2luZiA9IHsKKwkubmFtZQkJPSAiU2Ftc3VuZyBTM0MyNDEyIFVBUlQiLAorCS50eXBlCQk9IFBPUlRfUzNDMjQxMiwKKwkuZmlmb3NpemUJPSA2NCwKKwkucnhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9SWE1BU0ssCisJLnJ4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1JYU0hJRlQsCisJLnJ4X2ZpZm9mdWxsCT0gUzNDMjQ0MF9VRlNUQVRfUlhGVUxMLAorCS50eF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1RYRlVMTCwKKwkudHhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9UWE1BU0ssCisJLnR4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1RYU0hJRlQsCisJLmdldF9jbGtzcmMJPSBzM2MyNDEyX3NlcmlhbF9nZXRzb3VyY2UsCisJLnNldF9jbGtzcmMJPSBzM2MyNDEyX3NlcmlhbF9zZXRzb3VyY2UsCisJLnJlc2V0X3BvcnQJPSBzM2MyNDEyX3NlcmlhbF9yZXNldHBvcnQsCit9OworCisvKiBkZXZpY2UgbWFuYWdlbWVudCAqLworCitzdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3sKKwlkYmcoInMzYzI0NDBfc2VyaWFsX3Byb2JlOiBkZXY9JXBcbiIsIGRldik7CisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3Byb2JlKGRldiwgJnMzYzI0MTJfdWFydF9pbmYpOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2MyNDEyX3NlcmlhbF9kcnYgPSB7CisJLnByb2JlCQk9IHMzYzI0MTJfc2VyaWFsX3Byb2JlLAorCS5yZW1vdmUJCT0gczNjMjR4eF9zZXJpYWxfcmVtb3ZlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJzM2MyNDEyLXVhcnQiLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9LAorfTsKKworczNjMjR4eF9jb25zb2xlX2luaXQoJnMzYzI0MTJfc2VyaWFsX2RydiwgJnMzYzI0MTJfdWFydF9pbmYpOworCitzdGF0aWMgaW5saW5lIGludCBzM2MyNDEyX3NlcmlhbF9pbml0KHZvaWQpCit7CisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX2luaXQoJnMzYzI0MTJfc2VyaWFsX2RydiwgJnMzYzI0MTJfdWFydF9pbmYpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgczNjMjQxMl9zZXJpYWxfZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzM2MyNDEyX3NlcmlhbF9kcnYpOworfQorCittb2R1bGVfaW5pdChzM2MyNDEyX3NlcmlhbF9pbml0KTsKK21vZHVsZV9leGl0KHMzYzI0MTJfc2VyaWFsX2V4aXQpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNhbXN1bmcgUzNDMjQxMixTM0MyNDEzIFNvQyBTZXJpYWwgcG9ydCBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIkJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4iKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKK01PRFVMRV9BTElBUygicGxhdGZvcm06czNjMjQxMi11YXJ0Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zM2MyNDQwLmMgYi9kcml2ZXJzL3NlcmlhbC9zM2MyNDQwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhmOTU0YgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvc2VyaWFsL3MzYzI0NDAuYwpAQCAtMCwwICsxLDE4MSBAQAorLyogbGludXgvZHJpdmVycy9zZXJpYWwvczNjMjQ0MC5jCisgKgorICogRHJpdmVyIGZvciBTYW1zdW5nIFMzQzI0NDAgYW5kIFMzQzI0NDIgU29DIG9uYm9hcmQgVUFSVHMuCisgKgorICogQmVuIERvb2tzLCBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSwyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisKKyNpbmNsdWRlIDxhc20vaXJxLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KKworI2luY2x1ZGUgInNhbXN1bmcuaCIKKworCitzdGF0aWMgaW50IHMzYzI0NDBfc2VyaWFsX3NldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisKKwkvKiB0b2RvIC0gcHJvcGVyIGZjbGs8Pm5vbmZjbGsgc3dpdGNoLiAqLworCisJdWNvbiAmPSB+UzNDMjQ0MF9VQ09OX0NMS01BU0s7CisKKwlpZiAoc3RyY21wKGNsay0+bmFtZSwgInVjbGsiKSA9PSAwKQorCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9VQ0xLOworCWVsc2UgaWYgKHN0cmNtcChjbGstPm5hbWUsICJwY2xrIikgPT0gMCkKKwkJdWNvbiB8PSBTM0MyNDQwX1VDT05fUENMSzsKKwllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAiZmNsayIpID09IDApCisJCXVjb24gfD0gUzNDMjQ0MF9VQ09OX0ZDTEs7CisJZWxzZSB7CisJCXByaW50ayhLRVJOX0VSUiAidW5rbm93biBjbG9jayBzb3VyY2UgJXNcbiIsIGNsay0+bmFtZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMgaW50IHMzYzI0NDBfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKKwl1bnNpZ25lZCBsb25nIHVjb24wLCB1Y29uMSwgdWNvbjI7CisKKwlzd2l0Y2ggKHVjb24gJiBTM0MyNDQwX1VDT05fQ0xLTUFTSykgeworCWNhc2UgUzNDMjQ0MF9VQ09OX1VDTEs6CisJCWNsay0+ZGl2aXNvciA9IDE7CisJCWNsay0+bmFtZSA9ICJ1Y2xrIjsKKwkJYnJlYWs7CisKKwljYXNlIFMzQzI0NDBfVUNPTl9QQ0xLOgorCWNhc2UgUzNDMjQ0MF9VQ09OX1BDTEsyOgorCQljbGstPmRpdmlzb3IgPSAxOworCQljbGstPm5hbWUgPSAicGNsayI7CisJCWJyZWFrOworCisJY2FzZSBTM0MyNDQwX1VDT05fRkNMSzoKKwkJLyogdGhlIGZ1biBvZiBjYWxjdWxhdGluZyB0aGUgdWFydCBkaXZpc29ycyBvbgorCQkgKiB0aGUgczNjMjQ0MCAqLworCisJCXVjb24wID0gX19yYXdfcmVhZGwoUzNDMjRYWF9WQV9VQVJUMCArIFMzQzI0MTBfVUNPTik7CisJCXVjb24xID0gX19yYXdfcmVhZGwoUzNDMjRYWF9WQV9VQVJUMSArIFMzQzI0MTBfVUNPTik7CisJCXVjb24yID0gX19yYXdfcmVhZGwoUzNDMjRYWF9WQV9VQVJUMiArIFMzQzI0MTBfVUNPTik7CisKKwkJcHJpbnRrKCJ1Y29uczogJTA4bHgsICUwOGx4LCAlMDhseFxuIiwgdWNvbjAsIHVjb24xLCB1Y29uMik7CisKKwkJdWNvbjAgJj0gUzNDMjQ0MF9VQ09OMF9ESVZNQVNLOworCQl1Y29uMSAmPSBTM0MyNDQwX1VDT04xX0RJVk1BU0s7CisJCXVjb24yICY9IFMzQzI0NDBfVUNPTjJfRElWTUFTSzsKKworCQlpZiAodWNvbjAgIT0gMCkgeworCQkJY2xrLT5kaXZpc29yID0gdWNvbjAgPj4gUzNDMjQ0MF9VQ09OX0RJVlNISUZUOworCQkJY2xrLT5kaXZpc29yICs9IDY7CisJCX0gZWxzZSBpZiAodWNvbjEgIT0gMCkgeworCQkJY2xrLT5kaXZpc29yID0gdWNvbjEgPj4gUzNDMjQ0MF9VQ09OX0RJVlNISUZUOworCQkJY2xrLT5kaXZpc29yICs9IDIxOworCQl9IGVsc2UgaWYgKHVjb24yICE9IDApIHsKKwkJCWNsay0+ZGl2aXNvciA9IHVjb24yID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKKwkJCWNsay0+ZGl2aXNvciArPSAzNjsKKwkJfSBlbHNlIHsKKwkJCS8qIG1hbnVhbCBjYWxpbXMgNDQsIHNlZW1zIHRvIGJlIDkgKi8KKwkJCWNsay0+ZGl2aXNvciA9IDk7CisJCX0KKworCQljbGstPm5hbWUgPSAiZmNsayI7CisJCWJyZWFrOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHMzYzI0NDBfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCit7CisJdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJZGJnKCJzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQ6IHBvcnQ9JXAgKCUwOGx4KSwgY2ZnPSVwXG4iLAorCSAgICBwb3J0LCBwb3J0LT5tYXBiYXNlLCBjZmcpOworCisJLyogZW5zdXJlIHdlIGRvbid0IGNoYW5nZSB0aGUgY2xvY2sgc2V0dGluZ3MuLi4gKi8KKworCXVjb24gJj0gKFMzQzI0NDBfVUNPTjBfRElWTUFTSyB8ICgzPDwxMCkpOworCisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sICB1Y29uIHwgY2ZnLT51Y29uKTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUxDT04sIGNmZy0+dWxjb24pOworCisJLyogcmVzZXQgYm90aCBmaWZvcyAqLworCisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uIHwgUzNDMjQxMF9VRkNPTl9SRVNFVEJPVEgpOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyBzM2MyNDQwX3VhcnRfaW5mID0geworCS5uYW1lCQk9ICJTYW1zdW5nIFMzQzI0NDAgVUFSVCIsCisJLnR5cGUJCT0gUE9SVF9TM0MyNDQwLAorCS5maWZvc2l6ZQk9IDY0LAorCS5yeF9maWZvbWFzawk9IFMzQzI0NDBfVUZTVEFUX1JYTUFTSywKKwkucnhfZmlmb3NoaWZ0CT0gUzNDMjQ0MF9VRlNUQVRfUlhTSElGVCwKKwkucnhfZmlmb2Z1bGwJPSBTM0MyNDQwX1VGU1RBVF9SWEZVTEwsCisJLnR4X2ZpZm9mdWxsCT0gUzNDMjQ0MF9VRlNUQVRfVFhGVUxMLAorCS50eF9maWZvbWFzawk9IFMzQzI0NDBfVUZTVEFUX1RYTUFTSywKKwkudHhfZmlmb3NoaWZ0CT0gUzNDMjQ0MF9VRlNUQVRfVFhTSElGVCwKKwkuZ2V0X2Nsa3NyYwk9IHMzYzI0NDBfc2VyaWFsX2dldHNvdXJjZSwKKwkuc2V0X2Nsa3NyYwk9IHMzYzI0NDBfc2VyaWFsX3NldHNvdXJjZSwKKwkucmVzZXRfcG9ydAk9IHMzYzI0NDBfc2VyaWFsX3Jlc2V0cG9ydCwKK307CisKKy8qIGRldmljZSBtYW5hZ2VtZW50ICovCisKK3N0YXRpYyBpbnQgczNjMjQ0MF9zZXJpYWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQoreworCWRiZygiczNjMjQ0MF9zZXJpYWxfcHJvYmU6IGRldj0lcFxuIiwgZGV2KTsKKwlyZXR1cm4gczNjMjR4eF9zZXJpYWxfcHJvYmUoZGV2LCAmczNjMjQ0MF91YXJ0X2luZik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHMzYzI0NDBfc2VyaWFsX2RydiA9IHsKKwkucHJvYmUJCT0gczNjMjQ0MF9zZXJpYWxfcHJvYmUsCisJLnJlbW92ZQkJPSBzM2MyNHh4X3NlcmlhbF9yZW1vdmUsCisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gInMzYzI0NDAtdWFydCIsCisJCS5vd25lcgk9IFRISVNfTU9EVUxFLAorCX0sCit9OworCitzM2MyNHh4X2NvbnNvbGVfaW5pdCgmczNjMjQ0MF9zZXJpYWxfZHJ2LCAmczNjMjQ0MF91YXJ0X2luZik7CisKK3N0YXRpYyBpbnQgX19pbml0IHMzYzI0NDBfc2VyaWFsX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gczNjMjR4eF9zZXJpYWxfaW5pdCgmczNjMjQ0MF9zZXJpYWxfZHJ2LCAmczNjMjQ0MF91YXJ0X2luZik7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBzM2MyNDQwX3NlcmlhbF9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnMzYzI0NDBfc2VyaWFsX2Rydik7Cit9CisKK21vZHVsZV9pbml0KHMzYzI0NDBfc2VyaWFsX2luaXQpOworbW9kdWxlX2V4aXQoczNjMjQ0MF9zZXJpYWxfZXhpdCk7CisKK01PRFVMRV9ERVNDUklQVElPTigiU2Ftc3VuZyBTM0MyNDQwLFMzQzI0NDIgU29DIFNlcmlhbCBwb3J0IGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTGkgdjIiKTsKK01PRFVMRV9BTElBUygicGxhdGZvcm06czNjMjQ0MC11YXJ0Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zYW1zdW5nLmMgYi9kcml2ZXJzL3NlcmlhbC9zYW1zdW5nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEzZWNhYQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvc2VyaWFsL3NhbXN1bmcuYwpAQCAtMCwwICsxLDEzMTcgQEAKKy8qIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3NhbXN1aW5nLmMKKyAqCisgKiBEcml2ZXIgY29yZSBmb3IgU2Ftc3VuZyBTb0Mgb25ib2FyZCBVQVJUcy4KKyAqCisgKiBCZW4gRG9va3MsIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCisvKiBIb3RlIG9uIDI0MTAgZXJyb3IgaGFuZGxpbmcKKyAqCisgKiBUaGUgczNjMjQxMCBtYW51YWwgaGFzIGEgbG92ZS9oYXRlIGFmZmFpciB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUKKyAqIFVFUlNUQVQgcmVnaXN0ZXIgaW4gdGhlIFVBUlQgYmxvY2tzLCBhbmQga2VlcHMgbWFya2luZyBzb21lIG9mIHRoZQorICogZXJyb3IgYml0cyBhcyByZXNlcnZlZC4gSGF2aW5nIGNoZWNrZWQgd2l0aCB0aGUgczNjMjQxMHgwMSwKKyAqIGl0IGNvcGVzIHdpdGggQlJFQUtzIHByb3Blcmx5LCBzbyBJIGFtIGhhcHB5IHRvIGlnbm9yZSB0aGUgUkVTRVJWRUQKKyAqIGZlYXR1cmUgZnJvbSB0aGUgbGF0dGVyIHZlcnNpb25zIG9mIHRoZSBtYW51YWwuCisgKgorICogSWYgaXQgYmVjb21lcyBhcGFycmVudCB0aGF0IGxhdHRlciB2ZXJzaW9ucyBvZiB0aGUgMjQxMCByZW1vdmUgdGhlc2UKKyAqIGJpdHMsIHRoZW4gYWN0aW9uIHdpbGwgaGF2ZSB0byBiZSB0YWtlbiB0byBkaWZmZXJlbnRpYXRlIHRoZSB2ZXJzaW9ucworICogYW5kIGNoYW5nZSB0aGUgcG9saWN5IG9uIEJSRUFLCisgKgorICogQkpELCAwNC1Ob3YtMjAwNAorKi8KKworI2lmIGRlZmluZWQoQ09ORklHX1NFUklBTF9TQU1TVU5HX0NPTlNPTEUpICYmIGRlZmluZWQoQ09ORklHX01BR0lDX1NZU1JRKQorI2RlZmluZSBTVVBQT1JUX1NZU1JRCisjZW5kaWYKKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c3JxLmg+CisjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorCisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KKworI2luY2x1ZGUgInNhbXN1bmcuaCIKKworLyogVUFSVCBuYW1lIGFuZCBkZXZpY2UgZGVmaW5pdGlvbnMgKi8KKworI2RlZmluZSBTM0MyNFhYX1NFUklBTF9OQU1FCSJ0dHlTQUMiCisjZGVmaW5lIFMzQzI0WFhfU0VSSUFMX01BSk9SCTIwNAorI2RlZmluZSBTM0MyNFhYX1NFUklBTF9NSU5PUgk2NAorCisvKiB3ZSBjYW4gc3VwcG9ydCAzIHVhcnRzLCBidXQgbm90IGFsd2F5cyB1c2UgdGhlbSAqLworCisjaWZkZWYgQ09ORklHX0NQVV9TM0MyNDAwCisjZGVmaW5lIE5SX1BPUlRTICgyKQorI2Vsc2UKKyNkZWZpbmUgTlJfUE9SVFMgKDMpCisjZW5kaWYKKworLyogcG9ydCBpcnEgbnVtYmVycyAqLworCisjZGVmaW5lIFRYX0lSUShwb3J0KSAoKHBvcnQpLT5pcnEgKyAxKQorI2RlZmluZSBSWF9JUlEocG9ydCkgKChwb3J0KS0+aXJxKQorCisvKiBtYWNyb3MgdG8gY2hhbmdlIG9uZSB0aGluZyB0byBhbm90aGVyICovCisKKyNkZWZpbmUgdHhfZW5hYmxlZChwb3J0KSAoKHBvcnQpLT51bnVzZWRbMF0pCisjZGVmaW5lIHJ4X2VuYWJsZWQocG9ydCkgKChwb3J0KS0+dW51c2VkWzFdKQorCisvKiBmbGFnIHRvIGlnbm9yZSBhbGwgY2hhcmFjdGVycyBjb21taW5nIGluICovCisjZGVmaW5lIFJYU1RBVF9EVU1NWV9SRUFEICgweDEwMDAwMDAwKQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqdG9fb3VycG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXJldHVybiBjb250YWluZXJfb2YocG9ydCwgc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0LCBwb3J0KTsKK30KKworLyogdHJhbnNsYXRlIGEgcG9ydCB0byB0aGUgZGV2aWNlIG5hbWUgKi8KKworc3RhdGljIGlubGluZSBjb25zdCBjaGFyICpzM2MyNHh4X3NlcmlhbF9wb3J0bmFtZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXJldHVybiB0b19wbGF0Zm9ybV9kZXZpY2UocG9ydC0+ZGV2KS0+bmFtZTsKK30KKworc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF90eGVtcHR5X25vZmlmbyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXJldHVybiAocmRfcmVnbChwb3J0LCBTM0MyNDEwX1VUUlNUQVQpICYgUzNDMjQxMF9VVFJTVEFUX1RYRSk7Cit9CisKK3N0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3J4X2VuYWJsZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgaW50IHVjb24sIHVmY29uOworCWludCBjb3VudCA9IDEwMDAwOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKKworCXdoaWxlICgtLWNvdW50ICYmICFzM2MyNHh4X3NlcmlhbF90eGVtcHR5X25vZmlmbyhwb3J0KSkKKwkJdWRlbGF5KDEwMCk7CisKKwl1ZmNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTik7CisJdWZjb24gfD0gUzNDMjQxMF9VRkNPTl9SRVNFVFJYOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgdWZjb24pOworCisJdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKKwl1Y29uIHw9IFMzQzI0MTBfVUNPTl9SWElSUU1PREU7CisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sIHVjb24pOworCisJcnhfZW5hYmxlZChwb3J0KSA9IDE7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+bG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9yeF9kaXNhYmxlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBpbnQgdWNvbjsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CisKKwl1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCXVjb24gJj0gflMzQzI0MTBfVUNPTl9SWElSUU1PREU7CisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sIHVjb24pOworCisJcnhfZW5hYmxlZChwb3J0KSA9IDA7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+bG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zdG9wX3R4KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJaWYgKHR4X2VuYWJsZWQocG9ydCkpIHsKKwkJZGlzYWJsZV9pcnEoVFhfSVJRKHBvcnQpKTsKKwkJdHhfZW5hYmxlZChwb3J0KSA9IDA7CisJCWlmIChwb3J0LT5mbGFncyAmIFVQRl9DT05TX0ZMT1cpCisJCQlzM2MyNHh4X3NlcmlhbF9yeF9lbmFibGUocG9ydCk7CisJfQorfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zdGFydF90eChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCWlmICghdHhfZW5hYmxlZChwb3J0KSkgeworCQlpZiAocG9ydC0+ZmxhZ3MgJiBVUEZfQ09OU19GTE9XKQorCQkJczNjMjR4eF9zZXJpYWxfcnhfZGlzYWJsZShwb3J0KTsKKworCQllbmFibGVfaXJxKFRYX0lSUShwb3J0KSk7CisJCXR4X2VuYWJsZWQocG9ydCkgPSAxOworCX0KK30KKworCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zdG9wX3J4KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJaWYgKHJ4X2VuYWJsZWQocG9ydCkpIHsKKwkJZGJnKCJzM2MyNHh4X3NlcmlhbF9zdG9wX3J4OiBwb3J0PSVwXG4iLCBwb3J0KTsKKwkJZGlzYWJsZV9pcnEoUlhfSVJRKHBvcnQpKTsKKwkJcnhfZW5hYmxlZChwb3J0KSA9IDA7CisJfQorfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9lbmFibGVfbXMoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKnMzYzI0eHhfcG9ydF90b19pbmZvKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJcmV0dXJuIHRvX291cnBvcnQocG9ydCktPmluZm87Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqczNjMjR4eF9wb3J0X3RvX2NmZyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCWlmIChwb3J0LT5kZXYgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXR1cm4gKHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKilwb3J0LT5kZXYtPnBsYXRmb3JtX2RhdGE7Cit9CisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfcnhfZmlmb2NudChzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQsCisJCQkJICAgICB1bnNpZ25lZCBsb25nIHVmc3RhdCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBvdXJwb3J0LT5pbmZvOworCisJaWYgKHVmc3RhdCAmIGluZm8tPnJ4X2ZpZm9mdWxsKQorCQlyZXR1cm4gaW5mby0+Zmlmb3NpemU7CisKKwlyZXR1cm4gKHVmc3RhdCAmIGluZm8tPnJ4X2ZpZm9tYXNrKSA+PiBpbmZvLT5yeF9maWZvc2hpZnQ7Cit9CisKKworLyogPyAtIHdoZXJlIGhhcyBwYXJpdHkgZ29uZT8/ICovCisjZGVmaW5lIFMzQzI0MTBfVUVSU1RBVF9QQVJJVFkgKDB4MTAwMCkKKworc3RhdGljIGlycXJldHVybl90CitzM2MyNHh4X3NlcmlhbF9yeF9jaGFycyhpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gZGV2X2lkOworCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSAmb3VycG9ydC0+cG9ydDsKKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gcG9ydC0+aW5mby0+dHR5OworCXVuc2lnbmVkIGludCB1ZmNvbiwgY2gsIGZsYWcsIHVmc3RhdCwgdWVyc3RhdDsKKwlpbnQgbWF4X2NvdW50ID0gNjQ7CisKKwl3aGlsZSAobWF4X2NvdW50LS0gPiAwKSB7CisJCXVmY29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OKTsKKwkJdWZzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCk7CisKKwkJaWYgKHMzYzI0eHhfc2VyaWFsX3J4X2ZpZm9jbnQob3VycG9ydCwgdWZzdGF0KSA9PSAwKQorCQkJYnJlYWs7CisKKwkJdWVyc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRVJTVEFUKTsKKwkJY2ggPSByZF9yZWdiKHBvcnQsIFMzQzI0MTBfVVJYSCk7CisKKwkJaWYgKHBvcnQtPmZsYWdzICYgVVBGX0NPTlNfRkxPVykgeworCQkJaW50IHR4ZSA9IHMzYzI0eHhfc2VyaWFsX3R4ZW1wdHlfbm9maWZvKHBvcnQpOworCisJCQlpZiAocnhfZW5hYmxlZChwb3J0KSkgeworCQkJCWlmICghdHhlKSB7CisJCQkJCXJ4X2VuYWJsZWQocG9ydCkgPSAwOworCQkJCQljb250aW51ZTsKKwkJCQl9CisJCQl9IGVsc2UgeworCQkJCWlmICh0eGUpIHsKKwkJCQkJdWZjb24gfD0gUzNDMjQxMF9VRkNPTl9SRVNFVFJYOworCQkJCQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIHVmY29uKTsKKwkJCQkJcnhfZW5hYmxlZChwb3J0KSA9IDE7CisJCQkJCWdvdG8gb3V0OworCQkJCX0KKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCisJCS8qIGluc2VydCB0aGUgY2hhcmFjdGVyIGludG8gdGhlIGJ1ZmZlciAqLworCisJCWZsYWcgPSBUVFlfTk9STUFMOworCQlwb3J0LT5pY291bnQucngrKzsKKworCQlpZiAodW5saWtlbHkodWVyc3RhdCAmIFMzQzI0MTBfVUVSU1RBVF9BTlkpKSB7CisJCQlkYmcoInJ4ZXJyOiBwb3J0IGNoPTB4JTAyeCwgcnhzPTB4JTA4eFxuIiwKKwkJCSAgICBjaCwgdWVyc3RhdCk7CisKKwkJCS8qIGNoZWNrIGZvciBicmVhayAqLworCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfQlJFQUspIHsKKwkJCQlkYmcoImJyZWFrIVxuIik7CisJCQkJcG9ydC0+aWNvdW50LmJyaysrOworCQkJCWlmICh1YXJ0X2hhbmRsZV9icmVhayhwb3J0KSkKKwkJCQkgICAgZ290byBpZ25vcmVfY2hhcjsKKwkJCX0KKworCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfRlJBTUUpCisJCQkJcG9ydC0+aWNvdW50LmZyYW1lKys7CisJCQlpZiAodWVyc3RhdCAmIFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOKQorCQkJCXBvcnQtPmljb3VudC5vdmVycnVuKys7CisKKwkJCXVlcnN0YXQgJj0gcG9ydC0+cmVhZF9zdGF0dXNfbWFzazsKKworCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfQlJFQUspCisJCQkJZmxhZyA9IFRUWV9CUkVBSzsKKwkJCWVsc2UgaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfUEFSSVRZKQorCQkJCWZsYWcgPSBUVFlfUEFSSVRZOworCQkJZWxzZSBpZiAodWVyc3RhdCAmIChTM0MyNDEwX1VFUlNUQVRfRlJBTUUgfAorCQkJCQkgICAgUzNDMjQxMF9VRVJTVEFUX09WRVJSVU4pKQorCQkJCWZsYWcgPSBUVFlfRlJBTUU7CisJCX0KKworCQlpZiAodWFydF9oYW5kbGVfc3lzcnFfY2hhcihwb3J0LCBjaCkpCisJCQlnb3RvIGlnbm9yZV9jaGFyOworCisJCXVhcnRfaW5zZXJ0X2NoYXIocG9ydCwgdWVyc3RhdCwgUzNDMjQxMF9VRVJTVEFUX09WRVJSVU4sCisJCQkJIGNoLCBmbGFnKTsKKworIGlnbm9yZV9jaGFyOgorCQljb250aW51ZTsKKwl9CisJdHR5X2ZsaXBfYnVmZmVyX3B1c2godHR5KTsKKworIG91dDoKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBzM2MyNHh4X3NlcmlhbF90eF9jaGFycyhpbnQgaXJxLCB2b2lkICppZCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSBpZDsKKwlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gJm91cnBvcnQtPnBvcnQ7CisJc3RydWN0IGNpcmNfYnVmICp4bWl0ID0gJnBvcnQtPmluZm8tPnhtaXQ7CisJaW50IGNvdW50ID0gMjU2OworCisJaWYgKHBvcnQtPnhfY2hhcikgeworCQl3cl9yZWdiKHBvcnQsIFMzQzI0MTBfVVRYSCwgcG9ydC0+eF9jaGFyKTsKKwkJcG9ydC0+aWNvdW50LnR4Kys7CisJCXBvcnQtPnhfY2hhciA9IDA7CisJCWdvdG8gb3V0OworCX0KKworCS8qIGlmIHRoZXJlIGlzbnQgYW55dGhpbmcgbW9yZSB0byB0cmFuc21pdCwgb3IgdGhlIHVhcnQgaXMgbm93CisJICogc3RvcHBlZCwgZGlzYWJsZSB0aGUgdWFydCBhbmQgZXhpdAorCSovCisKKwlpZiAodWFydF9jaXJjX2VtcHR5KHhtaXQpIHx8IHVhcnRfdHhfc3RvcHBlZChwb3J0KSkgeworCQlzM2MyNHh4X3NlcmlhbF9zdG9wX3R4KHBvcnQpOworCQlnb3RvIG91dDsKKwl9CisKKwkvKiB0cnkgYW5kIGRyYWluIHRoZSBidWZmZXIuLi4gKi8KKworCXdoaWxlICghdWFydF9jaXJjX2VtcHR5KHhtaXQpICYmIGNvdW50LS0gPiAwKSB7CisJCWlmIChyZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZTVEFUKSAmIG91cnBvcnQtPmluZm8tPnR4X2ZpZm9mdWxsKQorCQkJYnJlYWs7CisKKwkJd3JfcmVnYihwb3J0LCBTM0MyNDEwX1VUWEgsIHhtaXQtPmJ1Zlt4bWl0LT50YWlsXSk7CisJCXhtaXQtPnRhaWwgPSAoeG1pdC0+dGFpbCArIDEpICYgKFVBUlRfWE1JVF9TSVpFIC0gMSk7CisJCXBvcnQtPmljb3VudC50eCsrOworCX0KKworCWlmICh1YXJ0X2NpcmNfY2hhcnNfcGVuZGluZyh4bWl0KSA8IFdBS0VVUF9DSEFSUykKKwkJdWFydF93cml0ZV93YWtldXAocG9ydCk7CisKKwlpZiAodWFydF9jaXJjX2VtcHR5KHhtaXQpKQorCQlzM2MyNHh4X3NlcmlhbF9zdG9wX3R4KHBvcnQpOworCisgb3V0OgorCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCBzM2MyNHh4X3NlcmlhbF90eF9lbXB0eShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgdWZzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCk7CisJdW5zaWduZWQgbG9uZyB1ZmNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTik7CisKKwlpZiAodWZjb24gJiBTM0MyNDEwX1VGQ09OX0ZJRk9NT0RFKSB7CisJCWlmICgodWZzdGF0ICYgaW5mby0+dHhfZmlmb21hc2spICE9IDAgfHwKKwkJICAgICh1ZnN0YXQgJiBpbmZvLT50eF9maWZvZnVsbCkpCisJCQlyZXR1cm4gMDsKKworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8ocG9ydCk7Cit9CisKKy8qIG5vIG1vZGVtIGNvbnRyb2wgbGluZXMgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgczNjMjR4eF9zZXJpYWxfZ2V0X21jdHJsKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJdW5zaWduZWQgaW50IHVtc3RhdCA9IHJkX3JlZ2IocG9ydCwgUzNDMjQxMF9VTVNUQVQpOworCisJaWYgKHVtc3RhdCAmIFMzQzI0MTBfVU1TVEFUX0NUUykKKwkJcmV0dXJuIFRJT0NNX0NBUiB8IFRJT0NNX0RTUiB8IFRJT0NNX0NUUzsKKwllbHNlCisJCXJldHVybiBUSU9DTV9DQVIgfCBUSU9DTV9EU1I7Cit9CisKK3N0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3NldF9tY3RybChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBpbnQgbWN0cmwpCit7CisJLyogdG9kbyAtIHBvc3NpYmx5IHJlbW92ZSBBRkMgYW5kIGRvIG1hbnVhbCBDVFMgKi8KK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfYnJlYWtfY3RsKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCB1Y29uOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKKworCXVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisKKwlpZiAoYnJlYWtfc3RhdGUpCisJCXVjb24gfD0gUzNDMjQxMF9VQ09OX1NCUkVBSzsKKwllbHNlCisJCXVjb24gJj0gflMzQzI0MTBfVUNPTl9TQlJFQUs7CisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgdWNvbik7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3NodXRkb3duKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKKworCWlmIChvdXJwb3J0LT50eF9jbGFpbWVkKSB7CisJCWZyZWVfaXJxKFRYX0lSUShwb3J0KSwgb3VycG9ydCk7CisJCXR4X2VuYWJsZWQocG9ydCkgPSAwOworCQlvdXJwb3J0LT50eF9jbGFpbWVkID0gMDsKKwl9CisKKwlpZiAob3VycG9ydC0+cnhfY2xhaW1lZCkgeworCQlmcmVlX2lycShSWF9JUlEocG9ydCksIG91cnBvcnQpOworCQlvdXJwb3J0LT5yeF9jbGFpbWVkID0gMDsKKwkJcnhfZW5hYmxlZChwb3J0KSA9IDA7CisJfQorfQorCisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfc3RhcnR1cChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7CisJaW50IHJldDsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfc3RhcnR1cDogcG9ydD0lcCAoJTA4bHgsJXApXG4iLAorCSAgICBwb3J0LT5tYXBiYXNlLCBwb3J0LT5tZW1iYXNlKTsKKworCXJ4X2VuYWJsZWQocG9ydCkgPSAxOworCisJcmV0ID0gcmVxdWVzdF9pcnEoUlhfSVJRKHBvcnQpLAorCQkJICBzM2MyNHh4X3NlcmlhbF9yeF9jaGFycywgMCwKKwkJCSAgczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUocG9ydCksIG91cnBvcnQpOworCisJaWYgKHJldCAhPSAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiY2Fubm90IGdldCBpcnEgJWRcbiIsIFJYX0lSUShwb3J0KSk7CisJCXJldHVybiByZXQ7CisJfQorCisJb3VycG9ydC0+cnhfY2xhaW1lZCA9IDE7CisKKwlkYmcoInJlcXVlc3RpbmcgdHggaXJxLi4uXG4iKTsKKworCXR4X2VuYWJsZWQocG9ydCkgPSAxOworCisJcmV0ID0gcmVxdWVzdF9pcnEoVFhfSVJRKHBvcnQpLAorCQkJICBzM2MyNHh4X3NlcmlhbF90eF9jaGFycywgMCwKKwkJCSAgczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUocG9ydCksIG91cnBvcnQpOworCisJaWYgKHJldCkgeworCQlwcmludGsoS0VSTl9FUlIgImNhbm5vdCBnZXQgaXJxICVkXG4iLCBUWF9JUlEocG9ydCkpOworCQlnb3RvIGVycjsKKwl9CisKKwlvdXJwb3J0LT50eF9jbGFpbWVkID0gMTsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfc3RhcnR1cCBva1xuIik7CisKKwkvKiB0aGUgcG9ydCByZXNldCBjb2RlIHNob3VsZCBoYXZlIGRvbmUgdGhlIGNvcnJlY3QKKwkgKiByZWdpc3RlciBzZXR1cCBmb3IgdGhlIHBvcnQgY29udHJvbHMgKi8KKworCXJldHVybiByZXQ7CisKKyBlcnI6CisJczNjMjR4eF9zZXJpYWxfc2h1dGRvd24ocG9ydCk7CisJcmV0dXJuIHJldDsKK30KKworLyogcG93ZXIgcG93ZXIgbWFuYWdlbWVudCBjb250cm9sICovCisKK3N0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3BtKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGludCBsZXZlbCwKKwkJCSAgICAgIHVuc2lnbmVkIGludCBvbGQpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKKworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIDM6CisJCWlmICghSVNfRVJSKG91cnBvcnQtPmJhdWRjbGspICYmIG91cnBvcnQtPmJhdWRjbGsgIT0gTlVMTCkKKwkJCWNsa19kaXNhYmxlKG91cnBvcnQtPmJhdWRjbGspOworCisJCWNsa19kaXNhYmxlKG91cnBvcnQtPmNsayk7CisJCWJyZWFrOworCisJY2FzZSAwOgorCQljbGtfZW5hYmxlKG91cnBvcnQtPmNsayk7CisKKwkJaWYgKCFJU19FUlIob3VycG9ydC0+YmF1ZGNsaykgJiYgb3VycG9ydC0+YmF1ZGNsayAhPSBOVUxMKQorCQkJY2xrX2VuYWJsZShvdXJwb3J0LT5iYXVkY2xrKTsKKworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwcmludGsoS0VSTl9FUlIgInMzYzI0eHhfc2VyaWFsOiB1bmtub3duIHBtICVkXG4iLCBsZXZlbCk7CisJfQorfQorCisvKiBiYXVkIHJhdGUgY2FsY3VsYXRpb24KKyAqCisgKiBUaGUgVUFSVHMgb24gdGhlIFMzQzI0MTAvUzNDMjQ0MCBjYW4gdGFrZSB0aGVpciBjbG9ja3MgZnJvbSBhIG51bWJlcgorICogb2YgZGlmZmVyZW50IHNvdXJjZXMsIGluY2x1ZGluZyB0aGUgcGVyaXBoZXJhbCBjbG9jayAoInBjbGsiKSBhbmQgYW4KKyAqIGV4dGVybmFsIGNsb2NrICgidWNsayIpLiBUaGUgUzNDMjQ0MCBhbHNvIGFkZHMgdGhlIGNvcmUgY2xvY2sgKCJmY2xrIikKKyAqIHdpdGggYSBwcm9ncmFtbWFibGUgZXh0cmEgZGl2aXNvci4KKyAqCisgKiBUaGUgZm9sbG93aW5nIGNvZGUgZ29lcyB0aHJvdWdoIHRoZSBjbG9jayBzb3VyY2VzLCBhbmQgY2FsY3VsYXRlcyB0aGUKKyAqIGJhdWQgY2xvY2tzIChhbmQgdGhlIHJlc3VsdGFudCBhY3R1YWwgYmF1ZCByYXRlcykgYW5kIHRoZW4gdHJpZXMgdG8KKyAqIHBpY2sgdGhlIGNsb3Nlc3Qgb25lIGFuZCBzZWxlY3QgdGhhdC4KKyAqCisqLworCisKKyNkZWZpbmUgTUFYX0NMS1MgKDgpCisKK3N0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyB0bXBfY2xrc3JjID0geworCS5uYW1lCQk9ICJwY2xrIiwKKwkubWluX2JhdWQJPSAwLAorCS5tYXhfYmF1ZAk9IDAsCisJLmRpdmlzb3IJPSAxLAorfTsKKworc3RhdGljIGlubGluZSBpbnQKK3MzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqYykKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKKworCXJldHVybiAoaW5mby0+Z2V0X2Nsa3NyYykocG9ydCwgYyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitzM2MyNHh4X3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmMpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7CisKKwlyZXR1cm4gKGluZm8tPnNldF9jbGtzcmMpKHBvcnQsIGMpOworfQorCitzdHJ1Y3QgYmF1ZF9jYWxjIHsKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYwkqY2xrc3JjOworCXVuc2lnbmVkIGludAkJCSBjYWxjOworCXVuc2lnbmVkIGludAkJCSBxdW90OworCXN0cnVjdCBjbGsJCQkqc3JjOworfTsKKworc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9jYWxjYmF1ZChzdHJ1Y3QgYmF1ZF9jYWxjICpjYWxjLAorCQkJCSAgIHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCisJCQkJICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsa3NyYywKKwkJCQkgICB1bnNpZ25lZCBpbnQgYmF1ZCkKK3sKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisKKwljYWxjLT5zcmMgPSBjbGtfZ2V0KHBvcnQtPmRldiwgY2xrc3JjLT5uYW1lKTsKKwlpZiAoY2FsYy0+c3JjID09IE5VTEwgfHwgSVNfRVJSKGNhbGMtPnNyYykpCisJCXJldHVybiAwOworCisJcmF0ZSA9IGNsa19nZXRfcmF0ZShjYWxjLT5zcmMpOworCXJhdGUgLz0gY2xrc3JjLT5kaXZpc29yOworCisJY2FsYy0+Y2xrc3JjID0gY2xrc3JjOworCWNhbGMtPnF1b3QgPSAocmF0ZSArICg4ICogYmF1ZCkpIC8gKDE2ICogYmF1ZCk7CisJY2FsYy0+Y2FsYyA9IChyYXRlIC8gKGNhbGMtPnF1b3QgKiAxNikpOworCisJY2FsYy0+cXVvdC0tOworCXJldHVybiAxOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IHMzYzI0eHhfc2VyaWFsX2dldGNsayhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCQkgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICoqY2xrc3JjLAorCQkJCQkgIHN0cnVjdCBjbGsgKipjbGssCisJCQkJCSAgdW5zaWduZWQgaW50IGJhdWQpCit7CisJc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnID0gczNjMjR4eF9wb3J0X3RvX2NmZyhwb3J0KTsKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrcDsKKwlzdHJ1Y3QgYmF1ZF9jYWxjIHJlc1tNQVhfQ0xLU107CisJc3RydWN0IGJhdWRfY2FsYyAqcmVzcHRyLCAqYmVzdCwgKnNwdHI7CisJaW50IGk7CisKKwljbGtwID0gY2ZnLT5jbG9ja3M7CisJYmVzdCA9IE5VTEw7CisKKwlpZiAoY2ZnLT5jbG9ja3Nfc2l6ZSA8IDIpIHsKKwkJaWYgKGNmZy0+Y2xvY2tzX3NpemUgPT0gMCkKKwkJCWNsa3AgPSAmdG1wX2Nsa3NyYzsKKworCQkvKiBjaGVjayB0byBzZWUgaWYgd2UncmUgc291cmNpbmcgZmNsaywgYW5kIGlmIHNvIHdlJ3JlCisJCSAqIGdvaW5nIHRvIGhhdmUgdG8gdXBkYXRlIHRoZSBjbG9jayBzb3VyY2UKKwkJICovCisKKwkJaWYgKHN0cmNtcChjbGtwLT5uYW1lLCAiZmNsayIpID09IDApIHsKKwkJCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjIHNyYzsKKworCQkJczNjMjR4eF9zZXJpYWxfZ2V0c291cmNlKHBvcnQsICZzcmMpOworCisJCQkvKiBjaGVjayB0aGF0IHRoZSBwb3J0IGFscmVhZHkgdXNpbmcgZmNsaywgYW5kIGlmCisJCQkgKiBub3QsIHRoZW4gcmUtc2VsZWN0IGZjbGsKKwkJCSAqLworCisJCQlpZiAoc3RyY21wKHNyYy5uYW1lLCBjbGtwLT5uYW1lKSA9PSAwKSB7CisJCQkJczNjMjR4eF9zZXJpYWxfc2V0c291cmNlKHBvcnQsIGNsa3ApOworCQkJCXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShwb3J0LCAmc3JjKTsKKwkJCX0KKworCQkJY2xrcC0+ZGl2aXNvciA9IHNyYy5kaXZpc29yOworCQl9CisKKwkJczNjMjR4eF9zZXJpYWxfY2FsY2JhdWQocmVzLCBwb3J0LCBjbGtwLCBiYXVkKTsKKwkJYmVzdCA9IHJlczsKKwkJcmVzcHRyID0gYmVzdCArIDE7CisJfSBlbHNlIHsKKwkJcmVzcHRyID0gcmVzOworCisJCWZvciAoaSA9IDA7IGkgPCBjZmctPmNsb2Nrc19zaXplOyBpKyssIGNsa3ArKykgeworCQkJaWYgKHMzYzI0eHhfc2VyaWFsX2NhbGNiYXVkKHJlc3B0ciwgcG9ydCwgY2xrcCwgYmF1ZCkpCisJCQkJcmVzcHRyKys7CisJCX0KKwl9CisKKwkvKiBvaywgd2Ugbm93IG5lZWQgdG8gc2VsZWN0IHRoZSBiZXN0IGNsb2NrIHdlIGZvdW5kICovCisKKwlpZiAoIWJlc3QpIHsKKwkJdW5zaWduZWQgaW50IGRldmlhdGlvbiA9ICgxPDwzMCl8KCgxPDwzMCktMSk7CisJCWludCBjYWxjX2RldmlhdGlvbjsKKworCQlmb3IgKHNwdHIgPSByZXM7IHNwdHIgPCByZXNwdHI7IHNwdHIrKykgeworCQkJY2FsY19kZXZpYXRpb24gPSBiYXVkIC0gc3B0ci0+Y2FsYzsKKwkJCWlmIChjYWxjX2RldmlhdGlvbiA8IDApCisJCQkJY2FsY19kZXZpYXRpb24gPSAtY2FsY19kZXZpYXRpb247CisKKwkJCWlmIChjYWxjX2RldmlhdGlvbiA8IGRldmlhdGlvbikgeworCQkJCWJlc3QgPSBzcHRyOworCQkJCWRldmlhdGlvbiA9IGNhbGNfZGV2aWF0aW9uOworCQkJfQorCQl9CisJfQorCisJLyogc3RvcmUgcmVzdWx0cyB0byBwYXNzIGJhY2sgKi8KKworCSpjbGtzcmMgPSBiZXN0LT5jbGtzcmM7CisJKmNsayAgICA9IGJlc3QtPnNyYzsKKworCXJldHVybiBiZXN0LT5xdW90OworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zZXRfdGVybWlvcyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICAgICBzdHJ1Y3Qga3Rlcm1pb3MgKnRlcm1pb3MsCisJCQkJICAgICAgIHN0cnVjdCBrdGVybWlvcyAqb2xkKQoreworCXN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZyA9IHMzYzI0eHhfcG9ydF90b19jZmcocG9ydCk7CisJc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrc3JjID0gTlVMTDsKKwlzdHJ1Y3QgY2xrICpjbGsgPSBOVUxMOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgaW50IGJhdWQsIHF1b3Q7CisJdW5zaWduZWQgaW50IHVsY29uOworCXVuc2lnbmVkIGludCB1bWNvbjsKKworCS8qCisJICogV2UgZG9uJ3Qgc3VwcG9ydCBtb2RlbSBjb250cm9sIGxpbmVzLgorCSAqLworCXRlcm1pb3MtPmNfY2ZsYWcgJj0gfihIVVBDTCB8IENNU1BBUik7CisJdGVybWlvcy0+Y19jZmxhZyB8PSBDTE9DQUw7CisKKwkvKgorCSAqIEFzayB0aGUgY29yZSB0byBjYWxjdWxhdGUgdGhlIGRpdmlzb3IgZm9yIHVzLgorCSAqLworCisJYmF1ZCA9IHVhcnRfZ2V0X2JhdWRfcmF0ZShwb3J0LCB0ZXJtaW9zLCBvbGQsIDAsIDExNTIwMCo4KTsKKworCWlmIChiYXVkID09IDM4NDAwICYmIChwb3J0LT5mbGFncyAmIFVQRl9TUERfTUFTSykgPT0gVVBGX1NQRF9DVVNUKQorCQlxdW90ID0gcG9ydC0+Y3VzdG9tX2Rpdmlzb3I7CisJZWxzZQorCQlxdW90ID0gczNjMjR4eF9zZXJpYWxfZ2V0Y2xrKHBvcnQsICZjbGtzcmMsICZjbGssIGJhdWQpOworCisJLyogY2hlY2sgdG8gc2VlIGlmIHdlIG5lZWQgIHRvIGNoYW5nZSBjbG9jayBzb3VyY2UgKi8KKworCWlmIChvdXJwb3J0LT5jbGtzcmMgIT0gY2xrc3JjIHx8IG91cnBvcnQtPmJhdWRjbGsgIT0gY2xrKSB7CisJCXMzYzI0eHhfc2VyaWFsX3NldHNvdXJjZShwb3J0LCBjbGtzcmMpOworCisJCWlmIChvdXJwb3J0LT5iYXVkY2xrICE9IE5VTEwgJiYgIUlTX0VSUihvdXJwb3J0LT5iYXVkY2xrKSkgeworCQkJY2xrX2Rpc2FibGUob3VycG9ydC0+YmF1ZGNsayk7CisJCQlvdXJwb3J0LT5iYXVkY2xrICA9IE5VTEw7CisJCX0KKworCQljbGtfZW5hYmxlKGNsayk7CisKKwkJb3VycG9ydC0+Y2xrc3JjID0gY2xrc3JjOworCQlvdXJwb3J0LT5iYXVkY2xrID0gY2xrOworCX0KKworCXN3aXRjaCAodGVybWlvcy0+Y19jZmxhZyAmIENTSVpFKSB7CisJY2FzZSBDUzU6CisJCWRiZygiY29uZmlnOiA1Yml0cy9jaGFyXG4iKTsKKwkJdWxjb24gPSBTM0MyNDEwX0xDT05fQ1M1OworCQlicmVhazsKKwljYXNlIENTNjoKKwkJZGJnKCJjb25maWc6IDZiaXRzL2NoYXJcbiIpOworCQl1bGNvbiA9IFMzQzI0MTBfTENPTl9DUzY7CisJCWJyZWFrOworCWNhc2UgQ1M3OgorCQlkYmcoImNvbmZpZzogN2JpdHMvY2hhclxuIik7CisJCXVsY29uID0gUzNDMjQxMF9MQ09OX0NTNzsKKwkJYnJlYWs7CisJY2FzZSBDUzg6CisJZGVmYXVsdDoKKwkJZGJnKCJjb25maWc6IDhiaXRzL2NoYXJcbiIpOworCQl1bGNvbiA9IFMzQzI0MTBfTENPTl9DUzg7CisJCWJyZWFrOworCX0KKworCS8qIHByZXNlcnZlIG9yaWdpbmFsIGxjb24gSVIgc2V0dGluZ3MgKi8KKwl1bGNvbiB8PSAoY2ZnLT51bGNvbiAmIFMzQzI0MTBfTENPTl9JUk0pOworCisJaWYgKHRlcm1pb3MtPmNfY2ZsYWcgJiBDU1RPUEIpCisJCXVsY29uIHw9IFMzQzI0MTBfTENPTl9TVE9QQjsKKworCXVtY29uID0gKHRlcm1pb3MtPmNfY2ZsYWcgJiBDUlRTQ1RTKSA/IFMzQzI0MTBfVU1DT01fQUZDIDogMDsKKworCWlmICh0ZXJtaW9zLT5jX2NmbGFnICYgUEFSRU5CKSB7CisJCWlmICh0ZXJtaW9zLT5jX2NmbGFnICYgUEFST0REKQorCQkJdWxjb24gfD0gUzNDMjQxMF9MQ09OX1BPREQ7CisJCWVsc2UKKwkJCXVsY29uIHw9IFMzQzI0MTBfTENPTl9QRVZFTjsKKwl9IGVsc2UgeworCQl1bGNvbiB8PSBTM0MyNDEwX0xDT05fUE5PTkU7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKKworCWRiZygic2V0dGluZyB1bGNvbiB0byAlMDh4LCBicmRkaXYgdG8gJWRcbiIsIHVsY29uLCBxdW90KTsKKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgdWxjb24pOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQlJESVYsIHF1b3QpOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTUNPTiwgdW1jb24pOworCisJZGJnKCJ1YXJ0OiB1bGNvbiA9IDB4JTA4eCwgdWNvbiA9IDB4JTA4eCwgdWZjb24gPSAweCUwOHhcbiIsCisJICAgIHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiksCisJICAgIHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKSwKKwkgICAgcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OKSk7CisKKwkvKgorCSAqIFVwZGF0ZSB0aGUgcGVyLXBvcnQgdGltZW91dC4KKwkgKi8KKwl1YXJ0X3VwZGF0ZV90aW1lb3V0KHBvcnQsIHRlcm1pb3MtPmNfY2ZsYWcsIGJhdWQpOworCisJLyoKKwkgKiBXaGljaCBjaGFyYWN0ZXIgc3RhdHVzIGZsYWdzIGFyZSB3ZSBpbnRlcmVzdGVkIGluPworCSAqLworCXBvcnQtPnJlYWRfc3RhdHVzX21hc2sgPSBTM0MyNDEwX1VFUlNUQVRfT1ZFUlJVTjsKKwlpZiAodGVybWlvcy0+Y19pZmxhZyAmIElOUENLKQorCQlwb3J0LT5yZWFkX3N0YXR1c19tYXNrIHw9IFMzQzI0MTBfVUVSU1RBVF9GUkFNRSB8IFMzQzI0MTBfVUVSU1RBVF9QQVJJVFk7CisKKwkvKgorCSAqIFdoaWNoIGNoYXJhY3RlciBzdGF0dXMgZmxhZ3Mgc2hvdWxkIHdlIGlnbm9yZT8KKwkgKi8KKwlwb3J0LT5pZ25vcmVfc3RhdHVzX21hc2sgPSAwOworCWlmICh0ZXJtaW9zLT5jX2lmbGFnICYgSUdOUEFSKQorCQlwb3J0LT5pZ25vcmVfc3RhdHVzX21hc2sgfD0gUzNDMjQxMF9VRVJTVEFUX09WRVJSVU47CisJaWYgKHRlcm1pb3MtPmNfaWZsYWcgJiBJR05CUksgJiYgdGVybWlvcy0+Y19pZmxhZyAmIElHTlBBUikKKwkJcG9ydC0+aWdub3JlX3N0YXR1c19tYXNrIHw9IFMzQzI0MTBfVUVSU1RBVF9GUkFNRTsKKworCS8qCisJICogSWdub3JlIGFsbCBjaGFyYWN0ZXJzIGlmIENSRUFEIGlzIG5vdCBzZXQuCisJICovCisJaWYgKCh0ZXJtaW9zLT5jX2NmbGFnICYgQ1JFQUQpID09IDApCisJCXBvcnQtPmlnbm9yZV9zdGF0dXNfbWFzayB8PSBSWFNUQVRfRFVNTVlfUkVBRDsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKnMzYzI0eHhfc2VyaWFsX3R5cGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlzd2l0Y2ggKHBvcnQtPnR5cGUpIHsKKwljYXNlIFBPUlRfUzNDMjQxMDoKKwkJcmV0dXJuICJTM0MyNDEwIjsKKwljYXNlIFBPUlRfUzNDMjQ0MDoKKwkJcmV0dXJuICJTM0MyNDQwIjsKKwljYXNlIFBPUlRfUzNDMjQxMjoKKwkJcmV0dXJuICJTM0MyNDEyIjsKKwlkZWZhdWx0OgorCQlyZXR1cm4gTlVMTDsKKwl9Cit9CisKKyNkZWZpbmUgTUFQX1NJWkUgKDB4MTAwKQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9yZWxlYXNlX3BvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlyZWxlYXNlX21lbV9yZWdpb24ocG9ydC0+bWFwYmFzZSwgTUFQX1NJWkUpOworfQorCitzdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3JlcXVlc3RfcG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCWNvbnN0IGNoYXIgKm5hbWUgPSBzM2MyNHh4X3NlcmlhbF9wb3J0bmFtZShwb3J0KTsKKwlyZXR1cm4gcmVxdWVzdF9tZW1fcmVnaW9uKHBvcnQtPm1hcGJhc2UsIE1BUF9TSVpFLCBuYW1lKSA/IDAgOiAtRUJVU1k7Cit9CisKK3N0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX2NvbmZpZ19wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBmbGFncykKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKKworCWlmIChmbGFncyAmIFVBUlRfQ09ORklHX1RZUEUgJiYKKwkgICAgczNjMjR4eF9zZXJpYWxfcmVxdWVzdF9wb3J0KHBvcnQpID09IDApCisJCXBvcnQtPnR5cGUgPSBpbmZvLT50eXBlOworfQorCisvKgorICogdmVyaWZ5IHRoZSBuZXcgc2VyaWFsX3N0cnVjdCAoZm9yIFRJT0NTU0VSSUFMKS4KKyAqLworc3RhdGljIGludAorczNjMjR4eF9zZXJpYWxfdmVyaWZ5X3BvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgc3RydWN0IHNlcmlhbF9zdHJ1Y3QgKnNlcikKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKKworCWlmIChzZXItPnR5cGUgIT0gUE9SVF9VTktOT1dOICYmIHNlci0+dHlwZSAhPSBpbmZvLT50eXBlKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiAwOworfQorCisKKyNpZmRlZiBDT05GSUdfU0VSSUFMX1NBTVNVTkdfQ09OU09MRQorCitzdGF0aWMgc3RydWN0IGNvbnNvbGUgczNjMjR4eF9zZXJpYWxfY29uc29sZTsKKworI2RlZmluZSBTM0MyNFhYX1NFUklBTF9DT05TT0xFICZzM2MyNHh4X3NlcmlhbF9jb25zb2xlCisjZWxzZQorI2RlZmluZSBTM0MyNFhYX1NFUklBTF9DT05TT0xFIE5VTEwKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHVhcnRfb3BzIHMzYzI0eHhfc2VyaWFsX29wcyA9IHsKKwkucG0JCT0gczNjMjR4eF9zZXJpYWxfcG0sCisJLnR4X2VtcHR5CT0gczNjMjR4eF9zZXJpYWxfdHhfZW1wdHksCisJLmdldF9tY3RybAk9IHMzYzI0eHhfc2VyaWFsX2dldF9tY3RybCwKKwkuc2V0X21jdHJsCT0gczNjMjR4eF9zZXJpYWxfc2V0X21jdHJsLAorCS5zdG9wX3R4CT0gczNjMjR4eF9zZXJpYWxfc3RvcF90eCwKKwkuc3RhcnRfdHgJPSBzM2MyNHh4X3NlcmlhbF9zdGFydF90eCwKKwkuc3RvcF9yeAk9IHMzYzI0eHhfc2VyaWFsX3N0b3BfcngsCisJLmVuYWJsZV9tcwk9IHMzYzI0eHhfc2VyaWFsX2VuYWJsZV9tcywKKwkuYnJlYWtfY3RsCT0gczNjMjR4eF9zZXJpYWxfYnJlYWtfY3RsLAorCS5zdGFydHVwCT0gczNjMjR4eF9zZXJpYWxfc3RhcnR1cCwKKwkuc2h1dGRvd24JPSBzM2MyNHh4X3NlcmlhbF9zaHV0ZG93biwKKwkuc2V0X3Rlcm1pb3MJPSBzM2MyNHh4X3NlcmlhbF9zZXRfdGVybWlvcywKKwkudHlwZQkJPSBzM2MyNHh4X3NlcmlhbF90eXBlLAorCS5yZWxlYXNlX3BvcnQJPSBzM2MyNHh4X3NlcmlhbF9yZWxlYXNlX3BvcnQsCisJLnJlcXVlc3RfcG9ydAk9IHMzYzI0eHhfc2VyaWFsX3JlcXVlc3RfcG9ydCwKKwkuY29uZmlnX3BvcnQJPSBzM2MyNHh4X3NlcmlhbF9jb25maWdfcG9ydCwKKwkudmVyaWZ5X3BvcnQJPSBzM2MyNHh4X3NlcmlhbF92ZXJpZnlfcG9ydCwKK307CisKKworc3RhdGljIHN0cnVjdCB1YXJ0X2RyaXZlciBzM2MyNHh4X3VhcnRfZHJ2ID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkuZGV2X25hbWUJPSAiczNjMjQxMF9zZXJpYWwiLAorCS5ucgkJPSAzLAorCS5jb25zCQk9IFMzQzI0WFhfU0VSSUFMX0NPTlNPTEUsCisJLmRyaXZlcl9uYW1lCT0gUzNDMjRYWF9TRVJJQUxfTkFNRSwKKwkubWFqb3IJCT0gUzNDMjRYWF9TRVJJQUxfTUFKT1IsCisJLm1pbm9yCQk9IFMzQzI0WFhfU0VSSUFMX01JTk9SLAorfTsKKworc3RhdGljIHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCBzM2MyNHh4X3NlcmlhbF9wb3J0c1tOUl9QT1JUU10gPSB7CisJWzBdID0geworCQkucG9ydCA9IHsKKwkJCS5sb2NrCQk9IF9fU1BJTl9MT0NLX1VOTE9DS0VEKHMzYzI0eHhfc2VyaWFsX3BvcnRzWzBdLnBvcnQubG9jayksCisJCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkJLmlycQkJPSBJUlFfUzNDVUFSVF9SWDAsCisJCQkudWFydGNsawk9IDAsCisJCQkuZmlmb3NpemUJPSAxNiwKKwkJCS5vcHMJCT0gJnMzYzI0eHhfc2VyaWFsX29wcywKKwkJCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJCS5saW5lCQk9IDAsCisJCX0KKwl9LAorCVsxXSA9IHsKKwkJLnBvcnQgPSB7CisJCQkubG9jawkJPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzM2MyNHh4X3NlcmlhbF9wb3J0c1sxXS5wb3J0LmxvY2spLAorCQkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJCS5pcnEJCT0gSVJRX1MzQ1VBUlRfUlgxLAorCQkJLnVhcnRjbGsJPSAwLAorCQkJLmZpZm9zaXplCT0gMTYsCisJCQkub3BzCQk9ICZzM2MyNHh4X3NlcmlhbF9vcHMsCisJCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCisJCQkubGluZQkJPSAxLAorCQl9CisJfSwKKyNpZiBOUl9QT1JUUyA+IDIKKworCVsyXSA9IHsKKwkJLnBvcnQgPSB7CisJCQkubG9jawkJPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzM2MyNHh4X3NlcmlhbF9wb3J0c1syXS5wb3J0LmxvY2spLAorCQkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJCS5pcnEJCT0gSVJRX1MzQ1VBUlRfUlgyLAorCQkJLnVhcnRjbGsJPSAwLAorCQkJLmZpZm9zaXplCT0gMTYsCisJCQkub3BzCQk9ICZzM2MyNHh4X3NlcmlhbF9vcHMsCisJCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCisJCQkubGluZQkJPSAyLAorCQl9CisJfQorI2VuZGlmCit9OworCisvKiBzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQKKyAqCisgKiB3cmFwcGVyIHRvIGNhbGwgdGhlIHNwZWNpZmljIHJlc2V0IGZvciB0aGlzIHBvcnQgKHJlc2V0IHRoZSBmaWZvcworICogYW5kIHRoZSBzZXR0aW5ncykKKyovCisKK3N0YXRpYyBpbmxpbmUgaW50IHMzYzI0eHhfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCQkgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7CisKKwlyZXR1cm4gKGluZm8tPnJlc2V0X3BvcnQpKHBvcnQsIGNmZyk7Cit9CisKKy8qIHMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydAorICoKKyAqIGluaXRpYWxpc2UgYSBzaW5nbGUgc2VyaWFsIHBvcnQgZnJvbSB0aGUgcGxhdGZvcm0gZGV2aWNlIGdpdmVuCisgKi8KKworc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQoc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0LAorCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8sCisJCQkJICAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRkZXYpCit7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9ICZvdXJwb3J0LT5wb3J0OworCXN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZzsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKwlpbnQgcmV0OworCisJZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQ6IHBvcnQ9JXAsIHBsYXRkZXY9JXBcbiIsIHBvcnQsIHBsYXRkZXYpOworCisJaWYgKHBsYXRkZXYgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwljZmcgPSBzM2MyNHh4X2Rldl90b19jZmcoJnBsYXRkZXYtPmRldik7CisKKwlpZiAocG9ydC0+bWFwYmFzZSAhPSAwKQorCQlyZXR1cm4gMDsKKworCWlmIChjZmctPmh3cG9ydCA+IDMpCisJCXJldHVybiAtRUlOVkFMOworCisJLyogc2V0dXAgaW5mbyBmb3IgcG9ydCAqLworCXBvcnQtPmRldgk9ICZwbGF0ZGV2LT5kZXY7CisJb3VycG9ydC0+aW5mbwk9IGluZm87CisKKwkvKiBjb3B5IHRoZSBpbmZvIGluIGZyb20gcHJvdmlkZWQgc3RydWN0dXJlICovCisJb3VycG9ydC0+cG9ydC5maWZvc2l6ZSA9IGluZm8tPmZpZm9zaXplOworCisJZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQ6ICVwIChodyAlZCkuLi5cbiIsIHBvcnQsIGNmZy0+aHdwb3J0KTsKKworCXBvcnQtPnVhcnRjbGsgPSAxOworCisJaWYgKGNmZy0+dWFydF9mbGFncyAmIFVQRl9DT05TX0ZMT1cpIHsKKwkJZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQ6IGVuYWJsaW5nIGZsb3cgY29udHJvbFxuIik7CisJCXBvcnQtPmZsYWdzIHw9IFVQRl9DT05TX0ZMT1c7CisJfQorCisJLyogc29ydCBvdXIgdGhlIHBoeXNpY2FsIGFuZCB2aXJ0dWFsIGFkZHJlc3NlcyBmb3IgZWFjaCBVQVJUICovCisKKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGxhdGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCWlmIChyZXMgPT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBmaW5kIG1lbW9yeSByZXNvdXJjZSBmb3IgdWFydFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRiZygicmVzb3VyY2UgJXAgKCVseC4uJWx4KVxuIiwgcmVzLCByZXMtPnN0YXJ0LCByZXMtPmVuZCk7CisKKwlwb3J0LT5tYXBiYXNlCT0gcmVzLT5zdGFydDsKKwlwb3J0LT5tZW1iYXNlCT0gUzNDMjRYWF9WQV9VQVJUICsgKHJlcy0+c3RhcnQgLSBTM0MyNFhYX1BBX1VBUlQpOworCXJldCA9IHBsYXRmb3JtX2dldF9pcnEocGxhdGRldiwgMCk7CisJaWYgKHJldCA8IDApCisJCXBvcnQtPmlycSA9IDA7CisJZWxzZQorCQlwb3J0LT5pcnEgPSByZXQ7CisKKwlvdXJwb3J0LT5jbGsJPSBjbGtfZ2V0KCZwbGF0ZGV2LT5kZXYsICJ1YXJ0Iik7CisKKwlkYmcoInBvcnQ6IG1hcD0lMDh4LCBtZW09JTA4eCwgaXJxPSVkLCBjbG9jaz0lbGRcbiIsCisJICAgIHBvcnQtPm1hcGJhc2UsIHBvcnQtPm1lbWJhc2UsIHBvcnQtPmlycSwgcG9ydC0+dWFydGNsayk7CisKKwkvKiByZXNldCB0aGUgZmlmb3MgKGFuZCBzZXR1cCB0aGUgdWFydCkgKi8KKwlzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQocG9ydCwgY2ZnKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNzaXplX3QgczNjMjR4eF9zZXJpYWxfc2hvd19jbGtzcmMoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCQkgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gczNjMjR4eF9kZXZfdG9fcG9ydChkZXYpOworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7CisKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIqICVzXG4iLCBvdXJwb3J0LT5jbGtzcmMtPm5hbWUpOworfQorCitzdGF0aWMgREVWSUNFX0FUVFIoY2xvY2tfc291cmNlLCBTX0lSVUdPLCBzM2MyNHh4X3NlcmlhbF9zaG93X2Nsa3NyYywgTlVMTCk7CisKKy8qIERldmljZSBkcml2ZXIgc2VyaWFsIHBvcnQgcHJvYmUgKi8KKworc3RhdGljIGludCBwcm9iZV9pbmRleDsKKworaW50IHMzYzI0eHhfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiwKKwkJCSBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8pCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0OworCWludCByZXQ7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX3Byb2JlKCVwLCAlcCkgJWRcbiIsIGRldiwgaW5mbywgcHJvYmVfaW5kZXgpOworCisJb3VycG9ydCA9ICZzM2MyNHh4X3NlcmlhbF9wb3J0c1twcm9iZV9pbmRleF07CisJcHJvYmVfaW5kZXgrKzsKKworCWRiZygiJXM6IGluaXRpYWxpc2luZyBwb3J0ICVwLi4uXG4iLCBfX2Z1bmNfXywgb3VycG9ydCk7CisKKwlyZXQgPSBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQob3VycG9ydCwgaW5mbywgZGV2KTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBwcm9iZV9lcnI7CisKKwlkYmcoIiVzOiBhZGRpbmcgcG9ydFxuIiwgX19mdW5jX18pOworCXVhcnRfYWRkX29uZV9wb3J0KCZzM2MyNHh4X3VhcnRfZHJ2LCAmb3VycG9ydC0+cG9ydCk7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEoZGV2LCAmb3VycG9ydC0+cG9ydCk7CisKKwlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoJmRldi0+ZGV2LCAmZGV2X2F0dHJfY2xvY2tfc291cmNlKTsKKwlpZiAocmV0IDwgMCkKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogZmFpbGVkIHRvIGFkZCBjbGtzcmMgYXR0ci5cbiIsIF9fZnVuY19fKTsKKworCXJldHVybiAwOworCisgcHJvYmVfZXJyOgorCXJldHVybiByZXQ7Cit9CisKK0VYUE9SVF9TWU1CT0xfR1BMKHMzYzI0eHhfc2VyaWFsX3Byb2JlKTsKKworaW50IHMzYzI0eHhfc2VyaWFsX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9IHMzYzI0eHhfZGV2X3RvX3BvcnQoJmRldi0+ZGV2KTsKKworCWlmIChwb3J0KSB7CisJCWRldmljZV9yZW1vdmVfZmlsZSgmZGV2LT5kZXYsICZkZXZfYXR0cl9jbG9ja19zb3VyY2UpOworCQl1YXJ0X3JlbW92ZV9vbmVfcG9ydCgmczNjMjR4eF91YXJ0X2RydiwgcG9ydCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK0VYUE9SVF9TWU1CT0xfR1BMKHMzYzI0eHhfc2VyaWFsX3JlbW92ZSk7CisKKy8qIFVBUlQgcG93ZXIgbWFuYWdlbWVudCBjb2RlICovCisKKyNpZmRlZiBDT05GSUdfUE0KKworc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSBzM2MyNHh4X2Rldl90b19wb3J0KCZkZXYtPmRldik7CisKKwlpZiAocG9ydCkKKwkJdWFydF9zdXNwZW5kX3BvcnQoJnMzYzI0eHhfdWFydF9kcnYsIHBvcnQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gczNjMjR4eF9kZXZfdG9fcG9ydCgmZGV2LT5kZXYpOworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7CisKKwlpZiAocG9ydCkgeworCQljbGtfZW5hYmxlKG91cnBvcnQtPmNsayk7CisJCXMzYzI0eHhfc2VyaWFsX3Jlc2V0cG9ydChwb3J0LCBzM2MyNHh4X3BvcnRfdG9fY2ZnKHBvcnQpKTsKKwkJY2xrX2Rpc2FibGUob3VycG9ydC0+Y2xrKTsKKworCQl1YXJ0X3Jlc3VtZV9wb3J0KCZzM2MyNHh4X3VhcnRfZHJ2LCBwb3J0KTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCitpbnQgczNjMjR4eF9zZXJpYWxfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICpkcnYsCisJCQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8pCit7CisJZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0KCVwLCVwKVxuIiwgZHJ2LCBpbmZvKTsKKworI2lmZGVmIENPTkZJR19QTQorCWRydi0+c3VzcGVuZCA9IHMzYzI0eHhfc2VyaWFsX3N1c3BlbmQ7CisJZHJ2LT5yZXN1bWUgPSBzM2MyNHh4X3NlcmlhbF9yZXN1bWU7CisjZW5kaWYKKworCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoZHJ2KTsKK30KKworRVhQT1JUX1NZTUJPTF9HUEwoczNjMjR4eF9zZXJpYWxfaW5pdCk7CisKKy8qIG1vZHVsZSBpbml0aWFsaXNhdGlvbiBjb2RlICovCisKK3N0YXRpYyBpbnQgX19pbml0IHMzYzI0eHhfc2VyaWFsX21vZGluaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gdWFydF9yZWdpc3Rlcl9kcml2ZXIoJnMzYzI0eHhfdWFydF9kcnYpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIHJlZ2lzdGVyIFVBUlQgZHJpdmVyXG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgczNjMjR4eF9zZXJpYWxfbW9kZXhpdCh2b2lkKQoreworCXVhcnRfdW5yZWdpc3Rlcl9kcml2ZXIoJnMzYzI0eHhfdWFydF9kcnYpOworfQorCittb2R1bGVfaW5pdChzM2MyNHh4X3NlcmlhbF9tb2Rpbml0KTsKK21vZHVsZV9leGl0KHMzYzI0eHhfc2VyaWFsX21vZGV4aXQpOworCisvKiBDb25zb2xlIGNvZGUgKi8KKworI2lmZGVmIENPTkZJR19TRVJJQUxfU0FNU1VOR19DT05TT0xFCisKK3N0YXRpYyBzdHJ1Y3QgdWFydF9wb3J0ICpjb25zX3VhcnQ7CisKK3N0YXRpYyBpbnQKK3MzYzI0eHhfc2VyaWFsX2NvbnNvbGVfdHhyZHkoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IHVmY29uKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOworCXVuc2lnbmVkIGxvbmcgdWZzdGF0LCB1dHJzdGF0OworCisJaWYgKHVmY29uICYgUzNDMjQxMF9VRkNPTl9GSUZPTU9ERSkgeworCQkvKiBmaWZvIG1vZGUgLSBjaGVjayBhbW1vdW50IG9mIGRhdGEgaW4gZmlmbyByZWdpc3RlcnMuLi4gKi8KKworCQl1ZnN0YXQgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZTVEFUKTsKKwkJcmV0dXJuICh1ZnN0YXQgJiBpbmZvLT50eF9maWZvZnVsbCkgPyAwIDogMTsKKwl9CisKKwkvKiBpbiBub24tZmlmbyBtb2RlLCB3ZSBnbyBhbmQgdXNlIHRoZSB0eCBidWZmZXIgZW1wdHkgKi8KKworCXV0cnN0YXQgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVVRSU1RBVCk7CisJcmV0dXJuICh1dHJzdGF0ICYgUzNDMjQxMF9VVFJTVEFUX1RYRSkgPyAxIDogMDsKK30KKworc3RhdGljIHZvaWQKK3MzYzI0eHhfc2VyaWFsX2NvbnNvbGVfcHV0Y2hhcihzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgY2gpCit7CisJdW5zaWduZWQgaW50IHVmY29uID0gcmRfcmVnbChjb25zX3VhcnQsIFMzQzI0MTBfVUZDT04pOworCXdoaWxlICghczNjMjR4eF9zZXJpYWxfY29uc29sZV90eHJkeShwb3J0LCB1ZmNvbikpCisJCWJhcnJpZXIoKTsKKwl3cl9yZWdiKGNvbnNfdWFydCwgUzNDMjQxMF9VVFhILCBjaCk7Cit9CisKK3N0YXRpYyB2b2lkCitzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3dyaXRlKHN0cnVjdCBjb25zb2xlICpjbywgY29uc3QgY2hhciAqcywKKwkJCSAgICAgdW5zaWduZWQgaW50IGNvdW50KQoreworCXVhcnRfY29uc29sZV93cml0ZShjb25zX3VhcnQsIHMsIGNvdW50LCBzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3B1dGNoYXIpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQKK3MzYzI0eHhfc2VyaWFsX2dldF9vcHRpb25zKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCAqYmF1ZCwKKwkJCSAgIGludCAqcGFyaXR5LCBpbnQgKmJpdHMpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgY2xrc3JjOworCXN0cnVjdCBjbGsgKmNsazsKKwl1bnNpZ25lZCBpbnQgdWxjb247CisJdW5zaWduZWQgaW50IHVjb247CisJdW5zaWduZWQgaW50IHVicmRpdjsKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisKKwl1bGNvbiAgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUxDT04pOworCXVjb24gICA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKKwl1YnJkaXYgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUJSRElWKTsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfZ2V0X29wdGlvbnM6IHBvcnQ9JXBcbiIKKwkgICAgInJlZ2lzdGVyczogdWxjb249JTA4eCwgdWNvbj0lMDh4LCB1YmRyaXY9JTA4eFxuIiwKKwkgICAgcG9ydCwgdWxjb24sIHVjb24sIHVicmRpdik7CisKKwlpZiAoKHVjb24gJiAweGYpICE9IDApIHsKKwkJLyogY29uc2lkZXIgdGhlIHNlcmlhbCBwb3J0IGNvbmZpZ3VyZWQgaWYgdGhlIHR4L3J4IG1vZGUgc2V0ICovCisKKwkJc3dpdGNoICh1bGNvbiAmIFMzQzI0MTBfTENPTl9DU01BU0spIHsKKwkJY2FzZSBTM0MyNDEwX0xDT05fQ1M1OgorCQkJKmJpdHMgPSA1OworCQkJYnJlYWs7CisJCWNhc2UgUzNDMjQxMF9MQ09OX0NTNjoKKwkJCSpiaXRzID0gNjsKKwkJCWJyZWFrOworCQljYXNlIFMzQzI0MTBfTENPTl9DUzc6CisJCQkqYml0cyA9IDc7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJY2FzZSBTM0MyNDEwX0xDT05fQ1M4OgorCQkJKmJpdHMgPSA4OworCQkJYnJlYWs7CisJCX0KKworCQlzd2l0Y2ggKHVsY29uICYgUzNDMjQxMF9MQ09OX1BNQVNLKSB7CisJCWNhc2UgUzNDMjQxMF9MQ09OX1BFVkVOOgorCQkJKnBhcml0eSA9ICdlJzsKKwkJCWJyZWFrOworCisJCWNhc2UgUzNDMjQxMF9MQ09OX1BPREQ6CisJCQkqcGFyaXR5ID0gJ28nOworCQkJYnJlYWs7CisKKwkJY2FzZSBTM0MyNDEwX0xDT05fUE5PTkU6CisJCWRlZmF1bHQ6CisJCQkqcGFyaXR5ID0gJ24nOworCQl9CisKKwkJLyogbm93IGNhbGN1bGF0ZSB0aGUgYmF1ZCByYXRlICovCisKKwkJczNjMjR4eF9zZXJpYWxfZ2V0c291cmNlKHBvcnQsICZjbGtzcmMpOworCisJCWNsayA9IGNsa19nZXQocG9ydC0+ZGV2LCBjbGtzcmMubmFtZSk7CisJCWlmICghSVNfRVJSKGNsaykgJiYgY2xrICE9IE5VTEwpCisJCQlyYXRlID0gY2xrX2dldF9yYXRlKGNsaykgLyBjbGtzcmMuZGl2aXNvcjsKKwkJZWxzZQorCQkJcmF0ZSA9IDE7CisKKworCQkqYmF1ZCA9IHJhdGUgLyAoMTYgKiAodWJyZGl2ICsgMSkpOworCQlkYmcoImNhbGN1bGF0ZWQgYmF1ZCAlZFxuIiwgKmJhdWQpOworCX0KKworfQorCisvKiBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzCisgKgorICogaW5pdGlhbGlzZSB0aGUgc2VyaWFsIHBvcnRzIGZyb20gdGhlIG1hY2hpbmUgcHJvdmlkZWQgaW5pdGlhbGlzYXRpb24KKyAqIGRhdGEuCisqLworCitzdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydHMoc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqcHRyID0gczNjMjR4eF9zZXJpYWxfcG9ydHM7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqKnBsYXRkZXZfcHRyOworCWludCBpOworCisJZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzOiBpbml0aWFsaXNpbmcgcG9ydHMuLi5cbiIpOworCisJcGxhdGRldl9wdHIgPSBzM2MyNHh4X3VhcnRfZGV2czsKKworCWZvciAoaSA9IDA7IGkgPCBOUl9QT1JUUzsgaSsrLCBwdHIrKywgcGxhdGRldl9wdHIrKykgeworCQlzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQocHRyLCBpbmZvLCAqcGxhdGRldl9wdHIpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdAorczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cChzdHJ1Y3QgY29uc29sZSAqY28sIGNoYXIgKm9wdGlvbnMpCit7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydDsKKwlpbnQgYmF1ZCA9IDk2MDA7CisJaW50IGJpdHMgPSA4OworCWludCBwYXJpdHkgPSAnbic7CisJaW50IGZsb3cgPSAnbic7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfc2V0dXA6IGNvPSVwICglZCksICVzXG4iLAorCSAgICBjbywgY28tPmluZGV4LCBvcHRpb25zKTsKKworCS8qIGlzIHRoaXMgYSB2YWxpZCBwb3J0ICovCisKKwlpZiAoY28tPmluZGV4ID09IC0xIHx8IGNvLT5pbmRleCA+PSBOUl9QT1JUUykKKwkJY28tPmluZGV4ID0gMDsKKworCXBvcnQgPSAmczNjMjR4eF9zZXJpYWxfcG9ydHNbY28tPmluZGV4XS5wb3J0OworCisJLyogaXMgdGhlIHBvcnQgY29uZmlndXJlZD8gKi8KKworCWlmIChwb3J0LT5tYXBiYXNlID09IDB4MCkgeworCQljby0+aW5kZXggPSAwOworCQlwb3J0ID0gJnMzYzI0eHhfc2VyaWFsX3BvcnRzW2NvLT5pbmRleF0ucG9ydDsKKwl9CisKKwljb25zX3VhcnQgPSBwb3J0OworCisJZGJnKCJzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3NldHVwOiBwb3J0PSVwICglZClcbiIsIHBvcnQsIGNvLT5pbmRleCk7CisKKwkvKgorCSAqIENoZWNrIHdoZXRoZXIgYW4gaW52YWxpZCB1YXJ0IG51bWJlciBoYXMgYmVlbiBzcGVjaWZpZWQsIGFuZAorCSAqIGlmIHNvLCBzZWFyY2ggZm9yIHRoZSBmaXJzdCBhdmFpbGFibGUgcG9ydCB0aGF0IGRvZXMgaGF2ZQorCSAqIGNvbnNvbGUgc3VwcG9ydC4KKwkgKi8KKwlpZiAob3B0aW9ucykKKwkJdWFydF9wYXJzZV9vcHRpb25zKG9wdGlvbnMsICZiYXVkLCAmcGFyaXR5LCAmYml0cywgJmZsb3cpOworCWVsc2UKKwkJczNjMjR4eF9zZXJpYWxfZ2V0X29wdGlvbnMocG9ydCwgJmJhdWQsICZwYXJpdHksICZiaXRzKTsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cDogYmF1ZCAlZFxuIiwgYmF1ZCk7CisKKwlyZXR1cm4gdWFydF9zZXRfb3B0aW9ucyhwb3J0LCBjbywgYmF1ZCwgcGFyaXR5LCBiaXRzLCBmbG93KTsKK30KKworLyogczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGUKKyAqCisgKiBpbml0aWFsaXNlIHRoZSBjb25zb2xlIGZyb20gb25lIG9mIHRoZSB1YXJ0IGRyaXZlcnMKKyovCisKK3N0YXRpYyBzdHJ1Y3QgY29uc29sZSBzM2MyNHh4X3NlcmlhbF9jb25zb2xlID0geworCS5uYW1lCQk9IFMzQzI0WFhfU0VSSUFMX05BTUUsCisJLmRldmljZQkJPSB1YXJ0X2NvbnNvbGVfZGV2aWNlLAorCS5mbGFncwkJPSBDT05fUFJJTlRCVUZGRVIsCisJLmluZGV4CQk9IC0xLAorCS53cml0ZQkJPSBzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3dyaXRlLAorCS5zZXR1cAkJPSBzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3NldHVwCit9OworCitpbnQgczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGUoc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqZHJ2LAorCQkJICAgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbykKKworeworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiA9IHMzYzI0eHhfdWFydF9kZXZzWzBdOworCisJZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0Y29uc29sZVxuIik7CisKKwkvKiBzZWxlY3QgZHJpdmVyIGJhc2VkIG9uIHRoZSBjcHUgKi8KKworCWlmIChkZXYgPT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9FUlIgInMzYzI0eHg6IG5vIGRldmljZXMgZm9yIGNvbnNvbGUgaW5pdFxuIik7CisJCXJldHVybiAwOworCX0KKworCWlmIChzdHJjbXAoZGV2LT5uYW1lLCBkcnYtPmRyaXZlci5uYW1lKSAhPSAwKQorCQlyZXR1cm4gMDsKKworCXMzYzI0eHhfc2VyaWFsX2NvbnNvbGUuZGF0YSA9ICZzM2MyNHh4X3VhcnRfZHJ2OworCXMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydHMoaW5mbyk7CisKKwlyZWdpc3Rlcl9jb25zb2xlKCZzM2MyNHh4X3NlcmlhbF9jb25zb2xlKTsKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIENPTkZJR19TRVJJQUxfU0FNU1VOR19DT05TT0xFICovCisKK01PRFVMRV9ERVNDUklQVElPTigiU2Ftc3VuZyBTb0MgU2VyaWFsIHBvcnQgZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zYW1zdW5nLmggYi9kcml2ZXJzL3NlcmlhbC9zYW1zdW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM5MmViYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvc2VyaWFsL3NhbXN1bmcuaApAQCAtMCwwICsxLDEwMiBAQAorLyogbGludXgvZHJpdmVycy9zZXJpYWwvc2Ftc3VuZy5oCisgKgorICogRHJpdmVyIGZvciBTYW1zdW5nIFNvQyBvbmJvYXJkIFVBUlRzLgorICoKKyAqIEJlbiBEb29rcywgQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUsMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKK3N0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyB7CisJY2hhcgkJCSpuYW1lOworCXVuc2lnbmVkIGludAkJdHlwZTsKKwl1bnNpZ25lZCBpbnQJCWZpZm9zaXplOworCXVuc2lnbmVkIGxvbmcJCXJ4X2ZpZm9tYXNrOworCXVuc2lnbmVkIGxvbmcJCXJ4X2ZpZm9zaGlmdDsKKwl1bnNpZ25lZCBsb25nCQlyeF9maWZvZnVsbDsKKwl1bnNpZ25lZCBsb25nCQl0eF9maWZvbWFzazsKKwl1bnNpZ25lZCBsb25nCQl0eF9maWZvc2hpZnQ7CisJdW5zaWduZWQgbG9uZwkJdHhfZmlmb2Z1bGw7CisKKwkvKiBjbG9jayBzb3VyY2UgY29udHJvbCAqLworCisJaW50ICgqZ2V0X2Nsa3NyYykoc3RydWN0IHVhcnRfcG9ydCAqLCBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKTsKKwlpbnQgKCpzZXRfY2xrc3JjKShzdHJ1Y3QgdWFydF9wb3J0ICosIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspOworCisJLyogdWFydCBjb250cm9scyAqLworCWludCAoKnJlc2V0X3BvcnQpKHN0cnVjdCB1YXJ0X3BvcnQgKiwgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqKTsKK307CisKK3N0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCB7CisJdW5zaWduZWQgY2hhcgkJCXJ4X2NsYWltZWQ7CisJdW5zaWduZWQgY2hhcgkJCXR4X2NsYWltZWQ7CisKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8JKmluZm87CisJc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMJKmNsa3NyYzsKKwlzdHJ1Y3QgY2xrCQkJKmNsazsKKwlzdHJ1Y3QgY2xrCQkJKmJhdWRjbGs7CisJc3RydWN0IHVhcnRfcG9ydAkJcG9ydDsKK307CisKKy8qIGNvbnZlcnNpb24gZnVuY3Rpb25zICovCisKKyNkZWZpbmUgczNjMjR4eF9kZXZfdG9fcG9ydChfX2RldikgKHN0cnVjdCB1YXJ0X3BvcnQgKilkZXZfZ2V0X2RydmRhdGEoX19kZXYpCisjZGVmaW5lIHMzYzI0eHhfZGV2X3RvX2NmZyhfX2RldikgKHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKikoKF9fZGV2KS0+cGxhdGZvcm1fZGF0YSkKKworLyogcmVnaXN0ZXIgYWNjZXNzIGNvbnRyb2xzICovCisKKyNkZWZpbmUgcG9ydGFkZHIocG9ydCwgcmVnKSAoKHBvcnQpLT5tZW1iYXNlICsgKHJlZykpCisKKyNkZWZpbmUgcmRfcmVnYihwb3J0LCByZWcpIChfX3Jhd19yZWFkYihwb3J0YWRkcihwb3J0LCByZWcpKSkKKyNkZWZpbmUgcmRfcmVnbChwb3J0LCByZWcpIChfX3Jhd19yZWFkbChwb3J0YWRkcihwb3J0LCByZWcpKSkKKworI2RlZmluZSB3cl9yZWdiKHBvcnQsIHJlZywgdmFsKSBfX3Jhd193cml0ZWIodmFsLCBwb3J0YWRkcihwb3J0LCByZWcpKQorI2RlZmluZSB3cl9yZWdsKHBvcnQsIHJlZywgdmFsKSBfX3Jhd193cml0ZWwodmFsLCBwb3J0YWRkcihwb3J0LCByZWcpKQorCitleHRlcm4gaW50IHMzYzI0eHhfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiwKKwkJCQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKnVhcnQpOworCitleHRlcm4gaW50IHMzYzI0eHhfc2VyaWFsX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpOworCitleHRlcm4gaW50IHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlKHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKmRydiwKKwkJCQkgICAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKnVhcnQpOworCitleHRlcm4gaW50IHMzYzI0eHhfc2VyaWFsX2luaXQoc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqZHJ2LAorCQkJICAgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyk7CisKKyNpZmRlZiBDT05GSUdfU0VSSUFMX1NBTVNVTkdfQ09OU09MRQorCisjZGVmaW5lIHMzYzI0eHhfY29uc29sZV9pbml0KF9fZHJ2LCBfX2luZikJCQlcCitzdGF0aWMgaW50IF9faW5pdCBzM2Nfc2VyaWFsX2NvbnNvbGVfaW5pdCh2b2lkKQkJCVwKK3sJCQkJCQkJCVwKKwlyZXR1cm4gczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGUoX19kcnYsIF9faW5mKTsJXAorfQkJCQkJCQkJXAorCQkJCQkJCQlcCitjb25zb2xlX2luaXRjYWxsKHMzY19zZXJpYWxfY29uc29sZV9pbml0KQorCisjZWxzZQorI2RlZmluZSBzM2MyNHh4X2NvbnNvbGVfaW5pdChkcnYsIGluZikgZXh0ZXJuIHZvaWQgbm9fY29uc29sZSh2b2lkKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfU0VSSUFMX1NBTVNVTkdfREVCVUcKKworZXh0ZXJuIHZvaWQgcHJpbnRhc2NpaShjb25zdCBjaGFyICopOworCitzdGF0aWMgdm9pZCBkYmcoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJdmFfbGlzdCB2YTsKKwljaGFyIGJ1ZmZbMjU2XTsKKworCXZhX3N0YXJ0KHZhLCBmbXQpOworCXZzcHJpbnRmKGJ1ZmYsIGZtdCwgdmEpOworCXZhX2VuZCh2YSk7CisKKwlwcmludGFzY2lpKGJ1ZmYpOworfQorCisjZWxzZQorI2RlZmluZSBkYmcoeC4uLikgZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfY29yZS5jIGIvZHJpdmVycy9zZXJpYWwvc2VyaWFsX2NvcmUuYwppbmRleCBjOWI2NGU3Li40MmQyZTEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfY29yZS5jCisrKyBiL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9jb3JlLmMKQEAgLTE5OTEsNyArMTk5MSw5IEBACiBzdGF0aWMgaW50IHNlcmlhbF9tYXRjaF9wb3J0KHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgdWFydF9tYXRjaCAqbWF0Y2ggPSBkYXRhOwotCWRldl90IGRldnQgPSBNS0RFVihtYXRjaC0+ZHJpdmVyLT5tYWpvciwgbWF0Y2gtPmRyaXZlci0+bWlub3IpICsgbWF0Y2gtPnBvcnQtPmxpbmU7CisJc3RydWN0IHR0eV9kcml2ZXIgKnR0eV9kcnYgPSBtYXRjaC0+ZHJpdmVyLT50dHlfZHJpdmVyOworCWRldl90IGRldnQgPSBNS0RFVih0dHlfZHJ2LT5tYWpvciwgdHR5X2Rydi0+bWlub3Jfc3RhcnQpICsKKwkJbWF0Y2gtPnBvcnQtPmxpbmU7CiAKIAlyZXR1cm4gZGV2LT5kZXZ0ID09IGRldnQ7IC8qIEFjdHVhbGx5LCBvbmx5IG9uZSB0dHkgcGVyIHBvcnQgKi8KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaV9pbXguYyBiL2RyaXZlcnMvc3BpL3NwaV9pbXguYwppbmRleCBjNzMwZDA1Li41NGFjN2JlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGlfaW14LmMKKysrIGIvZHJpdmVycy9zcGkvc3BpX2lteC5jCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CkBAIC0yNTAsNiArMjUxLDggQEAKIAlpbnQgdHhfZG1hX25lZWRzX3VubWFwOwogCXNpemVfdCB0eF9tYXBfbGVuOwogCXUzMiBkdW1teV9kbWFfYnVmIF9fX19jYWNoZWxpbmVfYWxpZ25lZDsKKworCXN0cnVjdCBjbGsgKmNsazsKIH07CiAKIC8qIFJ1bnRpbWUgc3RhdGUgKi8KQEAgLTg1NSwxNSArODU4LDE1IEBACiAJcmV0dXJuIGRydl9kYXRhLT50cmFuc2Zlcl9oYW5kbGVyKGRydl9kYXRhKTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgc3BpX3NwZWVkX2h6KHUzMiBkYXRhX3JhdGUpCitzdGF0aWMgaW5saW5lIHUzMiBzcGlfc3BlZWRfaHooc3RydWN0IGRyaXZlcl9kYXRhICpkcnZfZGF0YSwgdTMyIGRhdGFfcmF0ZSkKIHsKLQlyZXR1cm4gaW14X2dldF9wZXJjbGsyKCkgLyAoNCA8PCAoKGRhdGFfcmF0ZSkgPj4gMTMpKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGRydl9kYXRhLT5jbGspIC8gKDQgPDwgKChkYXRhX3JhdGUpID4+IDEzKSk7CiB9CiAKLXN0YXRpYyB1MzIgc3BpX2RhdGFfcmF0ZSh1MzIgc3BlZWRfaHopCitzdGF0aWMgdTMyIHNwaV9kYXRhX3JhdGUoc3RydWN0IGRyaXZlcl9kYXRhICpkcnZfZGF0YSwgdTMyIHNwZWVkX2h6KQogewogCXUzMiBkaXY7Ci0JdTMyIHF1YW50aXplZF9oeiA9IGlteF9nZXRfcGVyY2xrMigpID4+IDI7CisJdTMyIHF1YW50aXplZF9oeiA9IGNsa19nZXRfcmF0ZShkcnZfZGF0YS0+Y2xrKSA+PiAyOwogCiAJZm9yIChkaXYgPSBTUElfUEVSQ0xLMl9ESVZfTUlOOwogCQlkaXYgPD0gU1BJX1BFUkNMSzJfRElWX01BWDsKQEAgLTk0Nyw3ICs5NTAsNyBAQAogCXRtcCA9IHRyYW5zZmVyLT5zcGVlZF9oejsKIAlpZiAodG1wID09IDApCiAJCXRtcCA9IGNoaXAtPm1heF9zcGVlZF9oejsKLQl0bXAgPSBzcGlfZGF0YV9yYXRlKHRtcCk7CisJdG1wID0gc3BpX2RhdGFfcmF0ZShkcnZfZGF0YSwgdG1wKTsKIAl1MzJfRURJVChjb250cm9sLCBTUElfQ09OVFJPTF9EQVRBUkFURSwgdG1wKTsKIAogCXdyaXRlbChjb250cm9sLCByZWdzICsgU1BJX0NPTlRST0wpOwpAQCAtMTEwOSw3ICsxMTEyLDcgQEAKIAltc2ctPmFjdHVhbF9sZW5ndGggPSAwOwogCiAJLyogUGVyIHRyYW5zZmVyIHNldHVwIGNoZWNrICovCi0JbWluX3NwZWVkX2h6ID0gc3BpX3NwZWVkX2h6KFNQSV9DT05UUk9MX0RBVEFSQVRFX01JTik7CisJbWluX3NwZWVkX2h6ID0gc3BpX3NwZWVkX2h6KGRydl9kYXRhLCBTUElfQ09OVFJPTF9EQVRBUkFURV9NSU4pOwogCW1heF9zcGVlZF9oeiA9IHNwaS0+bWF4X3NwZWVkX2h6OwogCWxpc3RfZm9yX2VhY2hfZW50cnkodHJhbnMsICZtc2ctPnRyYW5zZmVycywgdHJhbnNmZXJfbGlzdCkgewogCQl0bXAgPSB0cmFucy0+Yml0c19wZXJfd29yZDsKQEAgLTExNzYsNiArMTE3OSw3IEBACiAgICBhcHBsaWVkIGFuZCBub3RpZmllZCB0byB0aGUgY2FsbGluZyBkcml2ZXIuICovCiBzdGF0aWMgaW50IHNldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7CisJc3RydWN0IGRyaXZlcl9kYXRhICpkcnZfZGF0YSA9IHNwaV9tYXN0ZXJfZ2V0X2RldmRhdGEoc3BpLT5tYXN0ZXIpOwogCXN0cnVjdCBzcGlfaW14X2NoaXAgKmNoaXBfaW5mbzsKIAlzdHJ1Y3QgY2hpcF9kYXRhICpjaGlwOwogCWludCBmaXJzdF9zZXR1cCA9IDA7CkBAIC0xMzA0LDE0ICsxMzA4LDE0IEBACiAJY2hpcC0+bl9ieXRlcyA9ICh0bXAgPD0gOCkgPyAxIDogMjsKIAogCS8qIFNQSSBkYXRhcmF0ZSAqLwotCXRtcCA9IHNwaV9kYXRhX3JhdGUoc3BpLT5tYXhfc3BlZWRfaHopOworCXRtcCA9IHNwaV9kYXRhX3JhdGUoZHJ2X2RhdGEsIHNwaS0+bWF4X3NwZWVkX2h6KTsKIAlpZiAodG1wID09IFNQSV9DT05UUk9MX0RBVEFSQVRFX0JBRCkgewogCQlzdGF0dXMgPSAtRUlOVkFMOwogCQlkZXZfZXJyKCZzcGktPmRldiwKIAkJCSJzZXR1cCAtICIKIAkJCSJIVyBtaW4gc3BlZWQgKCVkIEh6KSBleGNlZWRzIHJlcXVpcmVkICIKIAkJCSJtYXggc3BlZWQgKCVkIEh6KVxuIiwKLQkJCXNwaV9zcGVlZF9oeihTUElfQ09OVFJPTF9EQVRBUkFURV9NSU4pLAorCQkJc3BpX3NwZWVkX2h6KGRydl9kYXRhLCBTUElfQ09OVFJPTF9EQVRBUkFURV9NSU4pLAogCQkJc3BpLT5tYXhfc3BlZWRfaHopOwogCQlpZiAoZmlyc3Rfc2V0dXApCiAJCQlnb3RvIGVycl9maXJzdF9zZXR1cDsKQEAgLTEzMjEsNyArMTMyNSw3IEBACiAJfSBlbHNlIHsKIAkJdTMyX0VESVQoY2hpcC0+Y29udHJvbCwgU1BJX0NPTlRST0xfREFUQVJBVEUsIHRtcCk7CiAJCS8qIEFjdHVhbCByb3VuZGVkIG1heF9zcGVlZF9oeiAqLwotCQl0bXAgPSBzcGlfc3BlZWRfaHoodG1wKTsKKwkJdG1wID0gc3BpX3NwZWVkX2h6KGRydl9kYXRhLCB0bXApOwogCQlzcGktPm1heF9zcGVlZF9oeiA9IHRtcDsKIAkJY2hpcC0+bWF4X3NwZWVkX2h6ID0gdG1wOwogCX0KQEAgLTEzNTIsNyArMTM1Niw3IEBACiAJCWNoaXAtPnBlcmlvZCAmIFNQSV9QRVJJT0RfV0FJVCwKIAkJc3BpLT5tb2RlLAogCQlzcGktPmJpdHNfcGVyX3dvcmQsCi0JCXNwaV9zcGVlZF9oeihTUElfQ09OVFJPTF9EQVRBUkFURV9NSU4pLAorCQlzcGlfc3BlZWRfaHooZHJ2X2RhdGEsIFNQSV9DT05UUk9MX0RBVEFSQVRFX01JTiksCiAJCXNwaS0+bWF4X3NwZWVkX2h6KTsKIAlyZXR1cm4gc3RhdHVzOwogCkBAIC0xNDY1LDYgKzE0NjksMTQgQEAKIAkJZ290byBlcnJfbm9fcGRhdGE7CiAJfQogCisJZHJ2X2RhdGEtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgInBlcmNsazIiKTsKKwlpZiAoSVNfRVJSKGRydl9kYXRhLT5jbGspKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgInByb2JlIC0gY2Fubm90IGdldCBnZXRcbiIpOworCQlzdGF0dXMgPSBQVFJfRVJSKGRydl9kYXRhLT5jbGspOworCQlnb3RvIGVycl9ub19jbGs7CisJfQorCWNsa19lbmFibGUoZHJ2X2RhdGEtPmNsayk7CisKIAkvKiBBbGxvY2F0ZSBtYXN0ZXIgd2l0aCBzcGFjZSBmb3IgZHJ2X2RhdGEgKi8KIAltYXN0ZXIgPSBzcGlfYWxsb2NfbWFzdGVyKGRldiwgc2l6ZW9mKHN0cnVjdCBkcml2ZXJfZGF0YSkpOwogCWlmICghbWFzdGVyKSB7CkBAIC0xNTI2LDI0ICsxNTM4LDI0IEBACiAJZHJ2X2RhdGEtPnJ4X2NoYW5uZWwgPSAtMTsKIAlpZiAocGxhdGZvcm1faW5mby0+ZW5hYmxlX2RtYSkgewogCQkvKiBHZXQgcnggRE1BIGNoYW5uZWwgKi8KLQkJc3RhdHVzID0gaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oJmRydl9kYXRhLT5yeF9jaGFubmVsLAotCQkJInNwaV9pbXhfcngiLCBETUFfUFJJT19ISUdIKTsKLQkJaWYgKHN0YXR1cyA8IDApIHsKKwkJZHJ2X2RhdGEtPnJ4X2NoYW5uZWwgPSBpbXhfZG1hX3JlcXVlc3RfYnlfcHJpbygic3BpX2lteF9yeCIsCisJCQkJCQkJICAgICAgIERNQV9QUklPX0hJR0gpOworCQlpZiAoZHJ2X2RhdGEtPnJ4X2NoYW5uZWwgPCAwKSB7CiAJCQlkZXZfZXJyKGRldiwKIAkJCQkicHJvYmUgLSBwcm9ibGVtICglZCkgcmVxdWVzdGluZyByeCBjaGFubmVsXG4iLAotCQkJCXN0YXR1cyk7CisJCQkJZHJ2X2RhdGEtPnJ4X2NoYW5uZWwpOwogCQkJZ290byBlcnJfbm9fcnhkbWE7CiAJCX0gZWxzZQogCQkJaW14X2RtYV9zZXR1cF9oYW5kbGVycyhkcnZfZGF0YS0+cnhfY2hhbm5lbCwgTlVMTCwKIAkJCQkJCWRtYV9lcnJfaGFuZGxlciwgZHJ2X2RhdGEpOwogCiAJCS8qIEdldCB0eCBETUEgY2hhbm5lbCAqLwotCQlzdGF0dXMgPSBpbXhfZG1hX3JlcXVlc3RfYnlfcHJpbygmZHJ2X2RhdGEtPnR4X2NoYW5uZWwsCi0JCQkJCQkic3BpX2lteF90eCIsIERNQV9QUklPX01FRElVTSk7Ci0JCWlmIChzdGF0dXMgPCAwKSB7CisJCWRydl9kYXRhLT50eF9jaGFubmVsID0gaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oInNwaV9pbXhfdHgiLAorCQkJCQkJCSAgICAgICBETUFfUFJJT19NRURJVU0pOworCQlpZiAoZHJ2X2RhdGEtPnR4X2NoYW5uZWwgPCAwKSB7CiAJCQlkZXZfZXJyKGRldiwKIAkJCQkicHJvYmUgLSBwcm9ibGVtICglZCkgcmVxdWVzdGluZyB0eCBjaGFubmVsXG4iLAotCQkJCXN0YXR1cyk7CisJCQkJZHJ2X2RhdGEtPnR4X2NoYW5uZWwpOwogCQkJaW14X2RtYV9mcmVlKGRydl9kYXRhLT5yeF9jaGFubmVsKTsKIAkJCWdvdG8gZXJyX25vX3R4ZG1hOwogCQl9IGVsc2UKQEAgLTE2MjMsNiArMTYzNSw5IEBACiAJc3BpX21hc3Rlcl9wdXQobWFzdGVyKTsKIAogZXJyX25vX3BkYXRhOgorCWNsa19kaXNhYmxlKGRydl9kYXRhLT5jbGspOworCWNsa19wdXQoZHJ2X2RhdGEtPmNsayk7CitlcnJfbm9fY2xrOgogZXJyX25vX21lbToKIAlyZXR1cm4gc3RhdHVzOwogfQpAQCAtMTY2Miw2ICsxNjc3LDkgQEAKIAlpZiAoaXJxID49IDApCiAJCWZyZWVfaXJxKGlycSwgZHJ2X2RhdGEpOwogCisJY2xrX2Rpc2FibGUoZHJ2X2RhdGEtPmNsayk7CisJY2xrX3B1dChkcnZfZGF0YS0+Y2xrKTsKKwogCS8qIFJlbGVhc2UgbWFwIHJlc291cmNlcyAqLwogCWlvdW5tYXAoZHJ2X2RhdGEtPnJlZ3MpOwogCXJlbGVhc2VfcmVzb3VyY2UoZHJ2X2RhdGEtPmlvYXJlYSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGlkZXYuYyBiL2RyaXZlcnMvc3BpL3NwaWRldi5jCmluZGV4IDc5OTMzN2YuLmRkYmUxYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaWRldi5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaWRldi5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGlkZXYuaD4KQEAgLTE2NywxNCArMTY4LDE0IEBACiAKIAltdXRleF9sb2NrKCZzcGlkZXYtPmJ1Zl9sb2NrKTsKIAlzdGF0dXMgPSBzcGlkZXZfc3luY19yZWFkKHNwaWRldiwgY291bnQpOwotCWlmIChzdGF0dXMgPT0gMCkgeworCWlmIChzdGF0dXMgPiAwKSB7CiAJCXVuc2lnbmVkIGxvbmcJbWlzc2luZzsKIAotCQltaXNzaW5nID0gY29weV90b191c2VyKGJ1Ziwgc3BpZGV2LT5idWZmZXIsIGNvdW50KTsKLQkJaWYgKGNvdW50ICYmIG1pc3NpbmcgPT0gY291bnQpCisJCW1pc3NpbmcgPSBjb3B5X3RvX3VzZXIoYnVmLCBzcGlkZXYtPmJ1ZmZlciwgc3RhdHVzKTsKKwkJaWYgKG1pc3NpbmcgPT0gc3RhdHVzKQogCQkJc3RhdHVzID0gLUVGQVVMVDsKIAkJZWxzZQotCQkJc3RhdHVzID0gY291bnQgLSBtaXNzaW5nOworCQkJc3RhdHVzID0gc3RhdHVzIC0gbWlzc2luZzsKIAl9CiAJbXV0ZXhfdW5sb2NrKCZzcGlkZXYtPmJ1Zl9sb2NrKTsKIApAQCAtMjAwLDggKzIwMSw2IEBACiAJbWlzc2luZyA9IGNvcHlfZnJvbV91c2VyKHNwaWRldi0+YnVmZmVyLCBidWYsIGNvdW50KTsKIAlpZiAobWlzc2luZyA9PSAwKSB7CiAJCXN0YXR1cyA9IHNwaWRldl9zeW5jX3dyaXRlKHNwaWRldiwgY291bnQpOwotCQlpZiAoc3RhdHVzID09IDApCi0JCQlzdGF0dXMgPSBjb3VudDsKIAl9IGVsc2UKIAkJc3RhdHVzID0gLUVGQVVMVDsKIAltdXRleF91bmxvY2soJnNwaWRldi0+YnVmX2xvY2spOwpAQCAtNDY2LDYgKzQ2NSw3IEBACiAJc3RydWN0IHNwaWRldl9kYXRhCSpzcGlkZXY7CiAJaW50CQkJc3RhdHVzID0gLUVOWElPOwogCisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZkZXZpY2VfbGlzdF9sb2NrKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoc3BpZGV2LCAmZGV2aWNlX2xpc3QsIGRldmljZV9lbnRyeSkgewpAQCAtNDkxLDYgKzQ5MSw3IEBACiAJCXByX2RlYnVnKCJzcGlkZXY6IG5vdGhpbmcgZm9yIG1pbm9yICVkXG4iLCBpbWlub3IoaW5vZGUpKTsKIAogCW11dGV4X3VubG9jaygmZGV2aWNlX2xpc3RfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBzdGF0dXM7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3NiL2RyaXZlcl9wY2ljb3JlLmMgYi9kcml2ZXJzL3NzYi9kcml2ZXJfcGNpY29yZS5jCmluZGV4IGQyOGM1MzguLjUzOGM1NzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3NiL2RyaXZlcl9wY2ljb3JlLmMKKysrIGIvZHJpdmVycy9zc2IvZHJpdmVyX3BjaWNvcmUuYwpAQCAtNTM3LDYgKzUzNywxMyBAQAogCWludCBlcnIgPSAwOwogCXUzMiB0bXA7CiAKKwlpZiAoZGV2LT5idXMtPmJ1c3R5cGUgIT0gU1NCX0JVU1RZUEVfUENJKSB7CisJCS8qIFRoaXMgU1NCIGRldmljZSBpcyBub3Qgb24gYSBQQ0kgaG9zdC1idXMuIFNvIHRoZSBJUlFzIGFyZQorCQkgKiBub3Qgcm91dGVkIHRocm91Z2ggdGhlIFBDSSBjb3JlLgorCQkgKiBTbyB3ZSBtdXN0IG5vdCBlbmFibGUgcm91dGluZyB0aHJvdWdoIHRoZSBQQ0kgY29yZS4gKi8KKwkJZ290byBvdXQ7CisJfQorCiAJaWYgKCFwZGV2KQogCQlnb3RvIG91dDsKIAlidXMgPSBwZGV2LT5idXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RlbGVwaG9ueS9waG9uZWRldi5jIGIvZHJpdmVycy90ZWxlcGhvbnkvcGhvbmVkZXYuYwppbmRleCBiY2VhOGQ5Li40ZDc0YmEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RlbGVwaG9ueS9waG9uZWRldi5jCisrKyBiL2RyaXZlcnMvdGVsZXBob255L3Bob25lZGV2LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3Bob25lZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAKQEAgLTUzLDYgKzU0LDcgQEAKIAlpZiAobWlub3IgPj0gUEhPTkVfTlVNX0RFVklDRVMpCiAJCXJldHVybiAtRU5PREVWOwogCisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZwaG9uZV9sb2NrKTsKIAlwID0gcGhvbmVfZGV2aWNlW21pbm9yXTsKIAlpZiAocCkKQEAgLTc5LDYgKzgxLDcgQEAKIAlmb3BzX3B1dChvbGRfZm9wcyk7CiBlbmQ6CiAJbXV0ZXhfdW5sb2NrKCZwaG9uZV9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL0tjb25maWcgYi9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZwppbmRleCA0YjYyODUyLi5hODZlOTUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZworKysgYi9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZwpAQCAtMTIsMyArMTIsMTIgQEAKIAkgIGNvb2xpbmcgZGV2aWNlcy4KIAkgIEFsbCBwbGF0Zm9ybXMgd2l0aCBBQ1BJIHRoZXJtYWwgc3VwcG9ydCBjYW4gdXNlIHRoaXMgZHJpdmVyLgogCSAgSWYgeW91IHdhbnQgdGhpcyBzdXBwb3J0LCB5b3Ugc2hvdWxkIHNheSBZIG9yIE0gaGVyZS4KKworY29uZmlnIFRIRVJNQUxfSFdNT04KKwlib29sICJIYXJkd2FyZSBtb25pdG9yaW5nIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBIV01PTj15IHx8IEhXTU9OPVRIRVJNQUwKKwloZWxwCisJICBUaGUgZ2VuZXJpYyB0aGVybWFsIHN5c2ZzIGRyaXZlcidzIGhhcmR3YXJlIG1vbml0b3Jpbmcgc3VwcG9ydAorCSAgcmVxdWlyZXMgYSAyLjEwLjcvMy4wLjIgb3IgbGF0ZXIgbG0tc2Vuc29ycyB1c2Vyc3BhY2UuCisKKwkgIFNheSBZIGlmIHlvdXIgdXNlci1zcGFjZSBpcyBuZXcgZW5vdWdoLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfc3lzLmMgYi9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9zeXMuYwppbmRleCA2MDk4Nzg3Li5mZTA3NDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9zeXMuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9zeXMuYwpAQCAtMjk1LDggKzI5NSw4IEBACiAKIC8qIERldmljZSBtYW5hZ2VtZW50ICovCiAKLSNpZiBkZWZpbmVkKENPTkZJR19IV01PTikgfHwJXAotCShkZWZpbmVkKENPTkZJR19IV01PTl9NT0RVTEUpICYmIGRlZmluZWQoQ09ORklHX1RIRVJNQUxfTU9EVUxFKSkKKyNpZiBkZWZpbmVkKENPTkZJR19USEVSTUFMX0hXTU9OKQorCiAvKiBod21vbiBzeXMgSS9GICovCiAjaW5jbHVkZSA8bGludXgvaHdtb24uaD4KIHN0YXRpYyBMSVNUX0hFQUQodGhlcm1hbF9od21vbl9saXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdWlvL3Vpby5jIGIvZHJpdmVycy91aW8vdWlvLmMKaW5kZXggMGExMmU5MC4uNWE3Y2EyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy91aW8vdWlvLmMKKysrIGIvZHJpdmVycy91aW8vdWlvLmMKQEAgLTI5NywxMiArMjk3LDE3IEBACiAJc3RydWN0IHVpb19saXN0ZW5lciAqbGlzdGVuZXI7CiAJaW50IHJldCA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWlkZXYgPSBpZHJfZmluZCgmdWlvX2lkciwgaW1pbm9yKGlub2RlKSk7Ci0JaWYgKCFpZGV2KQotCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoIWlkZXYpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCi0JaWYgKCF0cnlfbW9kdWxlX2dldChpZGV2LT5vd25lcikpCi0JCXJldHVybiAtRU5PREVWOworCWlmICghdHJ5X21vZHVsZV9nZXQoaWRldi0+b3duZXIpKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAogCWxpc3RlbmVyID0ga21hbGxvYyhzaXplb2YoKmxpc3RlbmVyKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFsaXN0ZW5lcikgewpAQCAtMzE5LDcgKzMyNCw3IEBACiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycl9pbmZvb3BlbjsKIAl9Ci0KKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIGVycl9pbmZvb3BlbjoKQEAgLTMyOSw2ICszMzQsOCBAQAogCiAJbW9kdWxlX3B1dChpZGV2LT5vd25lcik7CiAKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvYXRtL2N4YWNydS5jIGIvZHJpdmVycy91c2IvYXRtL2N4YWNydS5jCmluZGV4IDVlYTMwOTMuLjkwNTgzZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2F0bS9jeGFjcnUuYworKysgYi9kcml2ZXJzL3VzYi9hdG0vY3hhY3J1LmMKQEAgLTgyMCw3ICs4MjAsNyBAQAogfQogCiBzdGF0aWMgaW50IGN4YWNydV9mdyhzdHJ1Y3QgdXNiX2RldmljZSAqdXNiX2RldiwgZW51bSBjeGFjcnVfZndfcmVxdWVzdCBmdywKLQkJICAgICB1OCBjb2RlMSwgdTggY29kZTIsIHUzMiBhZGRyLCB1OCAqZGF0YSwgaW50IHNpemUpCisJCSAgICAgdTggY29kZTEsIHU4IGNvZGUyLCB1MzIgYWRkciwgY29uc3QgdTggKmRhdGEsIGludCBzaXplKQogewogCWludCByZXQ7CiAJdTggKmJ1ZjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2F0bS91ZWFnbGUtYXRtLmMgYi9kcml2ZXJzL3VzYi9hdG0vdWVhZ2xlLWF0bS5jCmluZGV4IDVmNzFmZjMuLmNiMDFiNTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2F0bS91ZWFnbGUtYXRtLmMKKysrIGIvZHJpdmVycy91c2IvYXRtL3VlYWdsZS1hdG0uYwpAQCAtNTc5LDcgKzU3OSw3IEBACiAgKiB1ZWFfc2VuZF9tb2RlbV9jbWQgLSBTZW5kIGEgY29tbWFuZCBmb3IgcHJlLWZpcm13YXJlIGRldmljZXMuCiAgKi8KIHN0YXRpYyBpbnQgdWVhX3NlbmRfbW9kZW1fY21kKHN0cnVjdCB1c2JfZGV2aWNlICp1c2IsCi0JCXUxNiBhZGRyLCB1MTYgc2l6ZSwgdTggKiBidWZmKQorCQkJICAgICAgdTE2IGFkZHIsIHUxNiBzaXplLCBjb25zdCB1OCAqYnVmZikKIHsKIAlpbnQgcmV0ID0gLUVOT01FTTsKIAl1OCAqeGZlcl9idWZmOwpAQCAtNjA0LDcgKzYwNCw4IEBACiBzdGF0aWMgdm9pZCB1ZWFfdXBsb2FkX3ByZV9maXJtd2FyZShjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3X2VudHJ5LCB2b2lkICpjb250ZXh0KQogewogCXN0cnVjdCB1c2JfZGV2aWNlICp1c2IgPSBjb250ZXh0OwotCXU4ICpwZncsIHZhbHVlOworCWNvbnN0IHU4ICpwZnc7CisJdTggdmFsdWU7CiAJdTMyIGNyYyA9IDA7CiAJaW50IHJldCwgc2l6ZTsKIApAQCAtNzIwLDcgKzcyMSw3IEBACiAvKgogICogTWFrZSBzdXJlIHRoYXQgdGhlIERTUCBjb2RlIHByb3ZpZGVkIGlzIHNhZmUgdG8gdXNlLgogICovCi1zdGF0aWMgaW50IGNoZWNrX2RzcF9lMSh1OCAqZHNwLCB1bnNpZ25lZCBpbnQgbGVuKQorc3RhdGljIGludCBjaGVja19kc3BfZTEoY29uc3QgdTggKmRzcCwgdW5zaWduZWQgaW50IGxlbikKIHsKIAl1OCBwYWdlY291bnQsIGJsb2NrY291bnQ7CiAJdTE2IGJsb2Nrc2l6ZTsKQEAgLTc3MSw3ICs3NzIsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNoZWNrX2RzcF9lNCh1OCAqZHNwLCBpbnQgbGVuKQorc3RhdGljIGludCBjaGVja19kc3BfZTQoY29uc3QgdTggKmRzcCwgaW50IGxlbikKIHsKIAlpbnQgaTsKIAlzdHJ1Y3QgbDFfY29kZSAqcCA9IChzdHJ1Y3QgbDFfY29kZSAqKSBkc3A7CkBAIC04MTksNyArODIwLDcgQEAKIC8qCiAgKiBzZW5kIGRhdGEgdG8gdGhlIGlkbWEgcGlwZQogICogKi8KLXN0YXRpYyBpbnQgdWVhX2lkbWFfd3JpdGUoc3RydWN0IHVlYV9zb2Z0YyAqc2MsIHZvaWQgKmRhdGEsIHUzMiBzaXplKQorc3RhdGljIGludCB1ZWFfaWRtYV93cml0ZShzdHJ1Y3QgdWVhX3NvZnRjICpzYywgY29uc3Qgdm9pZCAqZGF0YSwgdTMyIHNpemUpCiB7CiAJaW50IHJldCA9IC1FTk9NRU07CiAJdTggKnhmZXJfYnVmZjsKQEAgLTkwMyw3ICs5MDQsNyBAQAogCXUxNiBvdmwgPSBzYy0+b3ZsOwogCXN0cnVjdCBibG9ja19pbmZvX2UxIGJpOwogCi0JdTggKnA7CisJY29uc3QgdTggKnA7CiAJdTggcGFnZWNvdW50LCBibG9ja2NvdW50OwogCXUxNiBibG9ja2FkZHIsIGJsb2Nrc2l6ZTsKIAl1MzIgcGFnZW9mZnNldDsKQEAgLTk4Niw3ICs5ODcsNyBAQAogCWJpLndSZXNlcnZlZCA9IGNwdV90b19iZTE2KFVFQV9SRVNFUlZFRCk7CiAKIAlkbyB7Ci0JCXU4ICpibG9ja29mZnNldDsKKwkJY29uc3QgdTggKmJsb2Nrb2Zmc2V0OwogCQl1bnNpZ25lZCBpbnQgYmxvY2tzaXplOwogCiAJCWJsb2NraWR4ID0gJnAtPnBhZ2VfaGVhZGVyW2Jsb2Nrbm9dOwpAQCAtMTA5NSw3ICsxMDk2LDcgQEAKICNkZWZpbmUgVUNEQ19TRU5EX0VOQ0FQU1VMQVRFRF9DT01NQU5EIDB4MDAKIAogc3RhdGljIGludCB1ZWFfcmVxdWVzdChzdHJ1Y3QgdWVhX3NvZnRjICpzYywKLQkJdTE2IHZhbHVlLCB1MTYgaW5kZXgsIHUxNiBzaXplLCB2b2lkICpkYXRhKQorCQl1MTYgdmFsdWUsIHUxNiBpbmRleCwgdTE2IHNpemUsIGNvbnN0IHZvaWQgKmRhdGEpCiB7CiAJdTggKnhmZXJfYnVmZjsKIAlpbnQgcmV0ID0gLUVOT01FTTsKQEAgLTE4OTEsNyArMTg5Miw4IEBACiB7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmd19lbnRyeTsKIAlpbnQgcmV0LCBzaXplLCB1LCBsbjsKLQl1OCAqcGZ3LCB2YWx1ZTsKKwljb25zdCB1OCAqcGZ3OworCXU4IHZhbHVlOwogCWNoYXIgKmZ3X25hbWUgPSBGV19ESVIgIjkzMC1mcGdhLmJpbiI7CiAKIAl1ZWFfZW50ZXJzKElOU19UT19VU0JERVYoc2MpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYyBiL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYwppbmRleCA2M2MzNDA0Li5jMzIwMWFmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jCisrKyBiL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYwpAQCAtMTEyNSw5ICsxMTI1LDYgQEAKIAlmb3IgKGkgPSAwOyBpIDwgYWNtLT5yeF9idWZsaW1pdDsgaSsrKQogCQl1c2Jfa2lsbF91cmIoYWNtLT5ydVtpXS51cmIpOwogCi0JSU5JVF9MSVNUX0hFQUQoJmFjbS0+ZmlsbGVkX3JlYWRfYnVmcyk7Ci0JSU5JVF9MSVNUX0hFQUQoJmFjbS0+c3BhcmVfcmVhZF9idWZzKTsKLQogCXRhc2tsZXRfZW5hYmxlKCZhY20tPnVyYl90YXNrKTsKIAogCWNhbmNlbF93b3JrX3N5bmMoJmFjbS0+d29yayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2RldmlvLmMgYi9kcml2ZXJzL3VzYi9jb3JlL2RldmlvLmMKaW5kZXggZGUxNzczOC4uOTIxOGNjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9kZXZpby5jCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYwpAQCAtNTY1LDYgKzU2NSw3IEBACiAJc3RydWN0IGRldl9zdGF0ZSAqcHM7CiAJaW50IHJldDsKIAorCWxvY2tfa2VybmVsKCk7CiAJLyogUHJvdGVjdCBhZ2FpbnN0IHNpbXVsdGFuZW91cyByZW1vdmFsIG9yIHJlbGVhc2UgKi8KIAltdXRleF9sb2NrKCZ1c2Jmc19tdXRleCk7CiAKQEAgLTYxMSw2ICs2MTIsNyBAQAogCWlmIChyZXQpCiAJCWtmcmVlKHBzKTsKIAltdXRleF91bmxvY2soJnVzYmZzX211dGV4KTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9maWxlLmMgYi9kcml2ZXJzL3VzYi9jb3JlL2ZpbGUuYwppbmRleCA4MTMzYzk5Li5jNmE5NTM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2ZpbGUuYworKysgYi9kcml2ZXJzL3VzYi9jb3JlL2ZpbGUuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvcndzZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogCiAjaW5jbHVkZSAidXNiLmgiCkBAIC0zMyw2ICszNCw3IEBACiAJaW50IGVyciA9IC1FTk9ERVY7CiAJY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqb2xkX2ZvcHMsICpuZXdfZm9wcyA9IE5VTEw7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWRvd25fcmVhZCgmbWlub3JfcndzZW0pOwogCWMgPSB1c2JfbWlub3JzW21pbm9yXTsKIApAQCAtNTEsNiArNTMsNyBAQAogCWZvcHNfcHV0KG9sZF9mb3BzKTsKICBkb25lOgogCXVwX3JlYWQoJm1pbm9yX3J3c2VtKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9oY2QuYyBiL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmMKaW5kZXggMDlhNTNlNy4uNDJhNDM2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9oY2QuYworKysgYi9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jCkBAIC05MjQsNiArOTI0LDE1IEBACiAJcmV0dXJuIHJldHZhbDsKIH0KIAordm9pZCB1c2JfZW5hYmxlX3Jvb3RfaHViX2lycSAoc3RydWN0IHVzYl9idXMgKmJ1cykKK3sKKwlzdHJ1Y3QgdXNiX2hjZCAqaGNkOworCisJaGNkID0gY29udGFpbmVyX29mIChidXMsIHN0cnVjdCB1c2JfaGNkLCBzZWxmKTsKKwlpZiAoaGNkLT5kcml2ZXItPmh1Yl9pcnFfZW5hYmxlICYmIGhjZC0+c3RhdGUgIT0gSENfU1RBVEVfSEFMVCkKKwkJaGNkLT5kcml2ZXItPmh1Yl9pcnFfZW5hYmxlIChoY2QpOworfQorCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTE2ODQsMTkgKzE2OTMsMzAgQEAKIGlycXJldHVybl90IHVzYl9oY2RfaXJxIChpbnQgaXJxLCB2b2lkICpfX2hjZCkKIHsKIAlzdHJ1Y3QgdXNiX2hjZAkJKmhjZCA9IF9faGNkOwotCWludAkJCXN0YXJ0ID0gaGNkLT5zdGF0ZTsKKwl1bnNpZ25lZCBsb25nCQlmbGFnczsKKwlpcnFyZXR1cm5fdAkJcmM7CiAKLQlpZiAodW5saWtlbHkoc3RhcnQgPT0gSENfU1RBVEVfSEFMVCB8fAotCSAgICAhdGVzdF9iaXQoSENEX0ZMQUdfSFdfQUNDRVNTSUJMRSwgJmhjZC0+ZmxhZ3MpKSkKLQkJcmV0dXJuIElSUV9OT05FOwotCWlmIChoY2QtPmRyaXZlci0+aXJxIChoY2QpID09IElSUV9OT05FKQotCQlyZXR1cm4gSVJRX05PTkU7CisJLyogSVJRRl9ESVNBQkxFRCBkb2Vzbid0IHdvcmsgY29ycmVjdGx5IHdpdGggc2hhcmVkIElSUXMKKwkgKiB3aGVuIHRoZSBmaXJzdCBoYW5kbGVyIGRvZXNuJ3QgdXNlIGl0LiAgU28gbGV0J3MganVzdAorCSAqIGFzc3VtZSBpdCdzIG5ldmVyIHVzZWQuCisJICovCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCi0Jc2V0X2JpdChIQ0RfRkxBR19TQVdfSVJRLCAmaGNkLT5mbGFncyk7CisJaWYgKHVubGlrZWx5KGhjZC0+c3RhdGUgPT0gSENfU1RBVEVfSEFMVCB8fAorCQkgICAgICF0ZXN0X2JpdChIQ0RfRkxBR19IV19BQ0NFU1NJQkxFLCAmaGNkLT5mbGFncykpKSB7CisJCXJjID0gSVJRX05PTkU7CisJfSBlbHNlIGlmIChoY2QtPmRyaXZlci0+aXJxKGhjZCkgPT0gSVJRX05PTkUpIHsKKwkJcmMgPSBJUlFfTk9ORTsKKwl9IGVsc2UgeworCQlzZXRfYml0KEhDRF9GTEFHX1NBV19JUlEsICZoY2QtPmZsYWdzKTsKIAotCWlmICh1bmxpa2VseShoY2QtPnN0YXRlID09IEhDX1NUQVRFX0hBTFQpKQotCQl1c2JfaGNfZGllZCAoaGNkKTsKLQlyZXR1cm4gSVJRX0hBTkRMRUQ7CisJCWlmICh1bmxpa2VseShoY2QtPnN0YXRlID09IEhDX1NUQVRFX0hBTFQpKQorCQkJdXNiX2hjX2RpZWQoaGNkKTsKKwkJcmMgPSBJUlFfSEFORExFRDsKKwl9CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJcmV0dXJuIHJjOwogfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtMTg2MCw2ICsxODgwLDEzIEBACiAKIAkvKiBlbmFibGUgaXJxcyBqdXN0IGJlZm9yZSB3ZSBzdGFydCB0aGUgY29udHJvbGxlciAqLwogCWlmIChoY2QtPmRyaXZlci0+aXJxKSB7CisKKwkJLyogSVJRRl9ESVNBQkxFRCBkb2Vzbid0IHdvcmsgYXMgYWR2ZXJ0aXNlZCB3aGVuIHVzZWQgdG9nZXRoZXIKKwkJICogd2l0aCBJUlFGX1NIQVJFRC4gQXMgdXNiX2hjZF9pcnEoKSB3aWxsIGFsd2F5cyBkaXNhYmxlCisJCSAqIGludGVycnVwdHMgd2UgY2FuIHJlbW92ZSBpdCBoZXJlLgorCQkgKi8KKwkJaXJxZmxhZ3MgJj0gfklSUUZfRElTQUJMRUQ7CisKIAkJc25wcmludGYoaGNkLT5pcnFfZGVzY3IsIHNpemVvZihoY2QtPmlycV9kZXNjciksICIlczp1c2IlZCIsCiAJCQkJaGNkLT5kcml2ZXItPmRlc2NyaXB0aW9uLCBoY2QtPnNlbGYuYnVzbnVtKTsKIAkJaWYgKChyZXR2YWwgPSByZXF1ZXN0X2lycShpcnFudW0sICZ1c2JfaGNkX2lycSwgaXJxZmxhZ3MsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2hjZC5oIGIvZHJpdmVycy91c2IvY29yZS9oY2QuaAppbmRleCBhMGJmNWRmLi5iOWRlMTU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2hjZC5oCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmgKQEAgLTIxMCw2ICsyMTAsOCBAQAogCWludAkoKmJ1c19zdXNwZW5kKShzdHJ1Y3QgdXNiX2hjZCAqKTsKIAlpbnQJKCpidXNfcmVzdW1lKShzdHJ1Y3QgdXNiX2hjZCAqKTsKIAlpbnQJKCpzdGFydF9wb3J0X3Jlc2V0KShzdHJ1Y3QgdXNiX2hjZCAqLCB1bnNpZ25lZCBwb3J0X251bSk7CisJdm9pZAkoKmh1Yl9pcnFfZW5hYmxlKShzdHJ1Y3QgdXNiX2hjZCAqKTsKKwkJLyogTmVlZGVkIG9ubHkgaWYgcG9ydC1jaGFuZ2UgSVJRcyBhcmUgbGV2ZWwtdHJpZ2dlcmVkICovCiAKIAkJLyogZm9yY2UgaGFuZG92ZXIgb2YgaGlnaC1zcGVlZCBwb3J0IHRvIGZ1bGwtc3BlZWQgY29tcGFuaW9uICovCiAJdm9pZAkoKnJlbGlucXVpc2hfcG9ydCkoc3RydWN0IHVzYl9oY2QgKiwgaW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMgYi9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jCmluZGV4IDk0Nzg5YmUuLjRjZmUzMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9odWIuYwpAQCAtNzEzLDE4ICs3MTMsMTEgQEAKIAkJfQogCiAJCS8qIFdhcyB0aGUgcG93ZXIgc2Vzc2lvbiBsb3N0IHdoaWxlIHdlIHdlcmUgc3VzcGVuZGVkPyAqLwotCQlzd2l0Y2ggKHR5cGUpIHsKLQkJY2FzZSBIVUJfUkVTRVRfUkVTVU1FOgotCQkJcG9ydHN0YXR1cyA9IDA7Ci0JCQlwb3J0Y2hhbmdlID0gVVNCX1BPUlRfU1RBVF9DX0NPTk5FQ1RJT047Ci0JCQlicmVhazsKKwkJc3RhdHVzID0gaHViX3BvcnRfc3RhdHVzKGh1YiwgcG9ydDEsICZwb3J0c3RhdHVzLCAmcG9ydGNoYW5nZSk7CiAKLQkJY2FzZSBIVUJfUkVTRVQ6Ci0JCWNhc2UgSFVCX1JFU1VNRToKLQkJCXN0YXR1cyA9IGh1Yl9wb3J0X3N0YXR1cyhodWIsIHBvcnQxLAotCQkJCQkmcG9ydHN0YXR1cywgJnBvcnRjaGFuZ2UpOwotCQkJYnJlYWs7Ci0JCX0KKwkJLyogSWYgdGhlIGRldmljZSBpcyBnb25lLCBraHViZCB3aWxsIGhhbmRsZSBpdCBsYXRlciAqLworCQlpZiAoc3RhdHVzID09IDAgJiYgIShwb3J0c3RhdHVzICYgVVNCX1BPUlRfU1RBVF9DT05ORUNUSU9OKSkKKwkJCWNvbnRpbnVlOwogCiAJCS8qIEZvciAiVVNCX1BFUlNJU1QiLWVuYWJsZWQgY2hpbGRyZW4gd2UgbXVzdAogCQkgKiBtYXJrIHRoZSBjaGlsZCBkZXZpY2UgZm9yIHJlc2V0LXJlc3VtZSBhbmQKQEAgLTIwODAsNiArMjA3Myw4IEBACiAJfQogCiAJY2xlYXJfYml0KHBvcnQxLCBodWItPmJ1c3lfYml0cyk7CisJaWYgKCFodWItPmhkZXYtPnBhcmVudCAmJiAhaHViLT5idXN5X2JpdHNbMF0pCisJCXVzYl9lbmFibGVfcm9vdF9odWJfaXJxKGh1Yi0+aGRldi0+YnVzKTsKIAogCWlmIChzdGF0dXMgPT0gMCkKIAkJc3RhdHVzID0gZmluaXNoX3BvcnRfcmVzdW1lKHVkZXYpOwpAQCAtMzAwOSw2ICszMDA0LDExIEBACiAKIAkJaHViLT5hY3RpdmF0aW5nID0gMDsKIAorCQkvKiBJZiB0aGlzIGlzIGEgcm9vdCBodWIsIHRlbGwgdGhlIEhDRCBpdCdzIG9rYXkgdG8KKwkJICogcmUtZW5hYmxlIHBvcnQtY2hhbmdlIGludGVycnVwdHMgbm93LiAqLworCQlpZiAoIWhkZXYtPnBhcmVudCAmJiAhaHViLT5idXN5X2JpdHNbMF0pCisJCQl1c2JfZW5hYmxlX3Jvb3RfaHViX2lycShoZGV2LT5idXMpOworCiBsb29wX2F1dG9wbToKIAkJLyogQWxsb3cgYXV0b3N1c3BlbmQgaWYgd2UncmUgbm90IGdvaW5nIHRvIHJ1biBhZ2FpbiAqLwogCQlpZiAobGlzdF9lbXB0eSgmaHViLT5ldmVudF9saXN0KSkKQEAgLTMyMzQsNiArMzIzNCw4IEBACiAJCQlicmVhazsKIAl9CiAJY2xlYXJfYml0KHBvcnQxLCBwYXJlbnRfaHViLT5idXN5X2JpdHMpOworCWlmICghcGFyZW50X2hkZXYtPnBhcmVudCAmJiAhcGFyZW50X2h1Yi0+YnVzeV9iaXRzWzBdKQorCQl1c2JfZW5hYmxlX3Jvb3RfaHViX2lycShwYXJlbnRfaGRldi0+YnVzKTsKIAogCWlmIChyZXQgPCAwKQogCQlnb3RvIHJlX2VudW1lcmF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnIGIvZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcKaW5kZXggNmU3ODRkMi4uZDZiYWIwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcKQEAgLTExOCwxMCArMTE4LDEwIEBACiBjb25maWcgVVNCX0dBREdFVF9BVE1FTF9VU0JBCiAJYm9vbGVhbiAiQXRtZWwgVVNCQSIKIAlzZWxlY3QgVVNCX0dBREdFVF9EVUFMU1BFRUQKLQlkZXBlbmRzIG9uIEFWUjMyIHx8IEFSQ0hfQVQ5MUNBUDkKKwlkZXBlbmRzIG9uIEFWUjMyIHx8IEFSQ0hfQVQ5MUNBUDkgfHwgQVJDSF9BVDkxU0FNOVJMCiAJaGVscAogCSAgVVNCQSBpcyB0aGUgaW50ZWdyYXRlZCBoaWdoLXNwZWVkIFVTQiBEZXZpY2UgY29udHJvbGxlciBvbgotCSAgdGhlIEFUMzJBUDcwMHggYW5kIEFUOTFDQVA5IHByb2Nlc3NvcnMgZnJvbSBBdG1lbC4KKwkgIHRoZSBBVDMyQVA3MDB4LCBzb21lIEFUOTFTQU05IGFuZCBBVDkxQ0FQOSBwcm9jZXNzb3JzIGZyb20gQXRtZWwuCiAKIGNvbmZpZyBVU0JfQVRNRUxfVVNCQQogCXRyaXN0YXRlCkBAIC0xNzIsNyArMTcyLDcgQEAKIAlkZWZhdWx0IFVTQl9HQURHRVQKIAlzZWxlY3QgVVNCX0dBREdFVF9TRUxFQ1RFRAogCi1jb25maWcgVVNCX0dBREdFVF9QWEEyWFgKK2NvbmZpZyBVU0JfR0FER0VUX1BYQTI1WAogCWJvb2xlYW4gIlBYQSAyNXggb3IgSVhQIDR4eCIKIAlkZXBlbmRzIG9uIChBUkNIX1BYQSAmJiBQWEEyNXgpIHx8IEFSQ0hfSVhQNFhYCiAJaGVscApAQCAtMTg0LDE5ICsxODQsMTkgQEAKIAkgICB6ZXJvIChmb3IgY29udHJvbCB0cmFuc2ZlcnMpLgogCiAJICAgU2F5ICJ5IiB0byBsaW5rIHRoZSBkcml2ZXIgc3RhdGljYWxseSwgb3IgIm0iIHRvIGJ1aWxkIGEKLQkgICBkeW5hbWljYWxseSBsaW5rZWQgbW9kdWxlIGNhbGxlZCAicHhhMnh4X3VkYyIgYW5kIGZvcmNlIGFsbAorCSAgIGR5bmFtaWNhbGx5IGxpbmtlZCBtb2R1bGUgY2FsbGVkICJweGEyNXhfdWRjIiBhbmQgZm9yY2UgYWxsCiAJICAgZ2FkZ2V0IGRyaXZlcnMgdG8gYWxzbyBiZSBkeW5hbWljYWxseSBsaW5rZWQuCiAKLWNvbmZpZyBVU0JfUFhBMlhYCitjb25maWcgVVNCX1BYQTI1WAogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBVU0JfR0FER0VUX1BYQTJYWAorCWRlcGVuZHMgb24gVVNCX0dBREdFVF9QWEEyNVgKIAlkZWZhdWx0IFVTQl9HQURHRVQKIAlzZWxlY3QgVVNCX0dBREdFVF9TRUxFQ1RFRAogCiAjIGlmIHRoZXJlJ3Mgb25seSBvbmUgZ2FkZ2V0IGRyaXZlciwgdXNpbmcgb25seSB0d28gYnVsayBlbmRwb2ludHMsCiAjIGRvbid0IHdhc3RlIG1lbW9yeSBmb3IgdGhlIG90aGVyIGVuZHBvaW50cwotY29uZmlnIFVTQl9QWEEyWFhfU01BTEwKLQlkZXBlbmRzIG9uIFVTQl9HQURHRVRfUFhBMlhYCitjb25maWcgVVNCX1BYQTI1WF9TTUFMTAorCWRlcGVuZHMgb24gVVNCX0dBREdFVF9QWEEyNVgKIAlib29sCiAJZGVmYXVsdCBuIGlmIFVTQl9FVEhfUk5ESVMKIAlkZWZhdWx0IHkgaWYgVVNCX1pFUk8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9NYWtlZmlsZSBiL2RyaXZlcnMvdXNiL2dhZGdldC9NYWtlZmlsZQppbmRleCAxMjM1NzI1Li5lMjU4YWZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvTWFrZWZpbGUKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L01ha2VmaWxlCkBAIC04LDcgKzgsNyBAQAogb2JqLSQoQ09ORklHX1VTQl9EVU1NWV9IQ0QpCSs9IGR1bW15X2hjZC5vCiBvYmotJChDT05GSUdfVVNCX05FVDIyODApCSs9IG5ldDIyODAubwogb2JqLSQoQ09ORklHX1VTQl9BTUQ1NTM2VURDKQkrPSBhbWQ1NTM2dWRjLm8KLW9iai0kKENPTkZJR19VU0JfUFhBMlhYKQkrPSBweGEyeHhfdWRjLm8KK29iai0kKENPTkZJR19VU0JfUFhBMjVYKQkrPSBweGEyNXhfdWRjLm8KIG9iai0kKENPTkZJR19VU0JfUFhBMjdYKQkrPSBweGEyN3hfdWRjLm8KIG9iai0kKENPTkZJR19VU0JfR09LVSkJCSs9IGdva3VfdWRjLm8KIG9iai0kKENPTkZJR19VU0JfT01BUCkJCSs9IG9tYXBfdWRjLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9hdDkxX3VkYy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2F0OTFfdWRjLmMKaW5kZXggMjc0YzYwYS4uYjZiMmEwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2F0OTFfdWRjLmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2F0OTFfdWRjLmMKQEAgLTg4OCw3ICs4ODgsNyBAQAogCQlhdDkxX3VkcF93cml0ZSh1ZGMsIEFUOTFfVURQX1RYVkMsIDApOwogCQlpZiAoY3B1X2lzX2F0OTFybTkyMDAoKSkKIAkJCWdwaW9fc2V0X3ZhbHVlKHVkYy0+Ym9hcmQucHVsbHVwX3BpbiwgYWN0aXZlKTsKLQkJZWxzZSBpZiAoY3B1X2lzX2F0OTFzYW05MjYwKCkgfHwgY3B1X2lzX2F0OTFzYW05MjYzKCkpIHsKKwkJZWxzZSBpZiAoY3B1X2lzX2F0OTFzYW05MjYwKCkgfHwgY3B1X2lzX2F0OTFzYW05MjYzKCkgfHwgY3B1X2lzX2F0OTFzYW05ZzIwKCkpIHsKIAkJCXUzMgl0eHZjID0gYXQ5MV91ZHBfcmVhZCh1ZGMsIEFUOTFfVURQX1RYVkMpOwogCiAJCQl0eHZjIHw9IEFUOTFfVURQX1RYVkNfUFVPTjsKQEAgLTkwNiw3ICs5MDYsNyBAQAogCQlhdDkxX3VkcF93cml0ZSh1ZGMsIEFUOTFfVURQX1RYVkMsIEFUOTFfVURQX1RYVkNfVFhWRElTKTsKIAkJaWYgKGNwdV9pc19hdDkxcm05MjAwKCkpCiAJCQlncGlvX3NldF92YWx1ZSh1ZGMtPmJvYXJkLnB1bGx1cF9waW4sICFhY3RpdmUpOwotCQllbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSkgeworCQllbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSB8fCBjcHVfaXNfYXQ5MXNhbTlnMjAoKSkgewogCQkJdTMyCXR4dmMgPSBhdDkxX3VkcF9yZWFkKHVkYywgQVQ5MV9VRFBfVFhWQyk7CiAKIAkJCXR4dmMgJj0gfkFUOTFfVURQX1RYVkNfUFVPTjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9ldGhlci5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2V0aGVyLmMKaW5kZXggOGQ2MWVhNi4uNGNlMzk1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2V0aGVyLmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2V0aGVyLmMKQEAgLTI2Miw3ICsyNjIsNyBAQAogLyogRm9yIENEQy1pbmNhcGFibGUgaGFyZHdhcmUsIGNob29zZSB0aGUgc2ltcGxlIGNkYyBzdWJzZXQuCiAgKiBBbnl0aGluZyB0aGF0IHRhbGtzIGJ1bGsgKHdpdGhvdXQgbm90YWJsZSBidWdzKSBjYW4gZG8gdGhpcy4KICAqLwotI2lmZGVmIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWAorI2lmZGVmIENPTkZJR19VU0JfR0FER0VUX1BYQTI1WAogI2RlZmluZQlERVZfQ09ORklHX1NVQlNFVAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9nYWRnZXRfY2hpcHMuaCBiL2RyaXZlcnMvdXNiL2dhZGdldC9nYWRnZXRfY2hpcHMuaAppbmRleCBmN2YxNTljLi5jYTUxNDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvZ2FkZ2V0X2NoaXBzLmgKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2dhZGdldF9jaGlwcy5oCkBAIC0yOSw4ICsyOSw4IEBACiAjZGVmaW5lCWdhZGdldF9pc19kdW1teShnKQkwCiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWAotI2RlZmluZQlnYWRnZXRfaXNfcHhhKGcpCSFzdHJjbXAoInB4YTJ4eF91ZGMiLCAoZyktPm5hbWUpCisjaWZkZWYgQ09ORklHX1VTQl9HQURHRVRfUFhBMjVYCisjZGVmaW5lCWdhZGdldF9pc19weGEoZykJIXN0cmNtcCgicHhhMjV4X3VkYyIsIChnKS0+bmFtZSkKICNlbHNlCiAjZGVmaW5lCWdhZGdldF9pc19weGEoZykJMAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvaW5vZGUuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9pbm9kZS5jCmluZGV4IDY5YjBhMjcuLmYxMzJhOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9pbm9kZS5jCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9pbm9kZS5jCkBAIC0xNTAxLDcgKzE1MDEsNyBAQAogCQl9CiAJCWJyZWFrOwogCi0jaWZuZGVmCUNPTkZJR19VU0JfR0FER0VUX1BYQTJYWAorI2lmbmRlZglDT05GSUdfVVNCX0dBREdFVF9QWEEyNVgKIAkvKiBQWEEgYXV0b21hZ2ljYWxseSBoYW5kbGVzIHRoaXMgcmVxdWVzdCB0b28gKi8KIAljYXNlIFVTQl9SRVFfR0VUX0NPTkZJR1VSQVRJT046CiAJCWlmIChjdHJsLT5iUmVxdWVzdFR5cGUgIT0gMHg4MCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9vbWFwX3VkYy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L29tYXBfdWRjLmMKaW5kZXggODgxZDc0Yy4uMDNhN2Y0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L29tYXBfdWRjLmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L29tYXBfdWRjLmMKQEAgLTEzNSwxMyArMTM1LDE3IEBACiAKIAlpZiAoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKQogCQludW0gfD0gVURDX0VQX0RJUjsKLQlVRENfRVBfTlVNX1JFRyA9IG51bSB8IHNlbGVjdDsKKwlvbWFwX3dyaXRldyhudW0gfCBzZWxlY3QsIFVEQ19FUF9OVU0pOwogCS8qIHdoZW4gc2VsZWN0LCBNVVNUIGRlc2VsZWN0IGxhdGVyICEhICovCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBkZXNlbGVjdF9lcCh2b2lkKQogewotCVVEQ19FUF9OVU1fUkVHICY9IH5VRENfRVBfU0VMOworCXUxNiB3OworCisJdyA9IG9tYXBfcmVhZHcoVURDX0VQX05VTSk7CisJdyAmPSB+VURDX0VQX1NFTDsKKwlvbWFwX3dyaXRldyh3LCBVRENfRVBfTlVNKTsKIAkvKiA2IHdhaXQgc3RhdGVzIGJlZm9yZSBUWCB3aWxsIGhhcHBlbiAqLwogfQogCkBAIC0yMTYsNyArMjIwLDcgQEAKIAllcC0+aGFzX2RtYSA9IDA7CiAJZXAtPmxjaCA9IC0xOwogCXVzZV9lcChlcCwgVURDX0VQX1NFTCk7Ci0JVURDX0NUUkxfUkVHID0gdWRjLT5jbHJfaGFsdDsKKwlvbWFwX3dyaXRldyh1ZGMtPmNscl9oYWx0LCBVRENfQ1RSTCk7CiAJZXAtPmFja3dhaXQgPSAwOwogCWRlc2VsZWN0X2VwKCk7CiAKQEAgLTIzMiw3ICsyMzYsNyBAQAogCWlmIChkZXNjLT5ibUF0dHJpYnV0ZXMgIT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQwogCQkJJiYgIWVwLT5oYXNfZG1hCiAJCQkmJiAhKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikpIHsKLQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAkJZXAtPmFja3dhaXQgPSAxICsgZXAtPmRvdWJsZV9idWY7CiAJfQogCkBAIC0yNTksNyArMjYzLDcgQEAKIAludWtlIChlcCwgLUVTSFVURE9XTik7CiAJZXAtPmVwLm1heHBhY2tldCA9IGVwLT5tYXhwYWNrZXQ7CiAJZXAtPmhhc19kbWEgPSAwOwotCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfSEFMVDsKKwlvbWFwX3dyaXRldyhVRENfU0VUX0hBTFQsIFVEQ19DVFJMKTsKIAlsaXN0X2RlbF9pbml0KCZlcC0+aXNvKTsKIAlkZWxfdGltZXIoJmVwLT50aW1lcik7CiAKQEAgLTM2MCwxMyArMzY0LDEzIEBACiAJaWYgKGxpa2VseSgoKChpbnQpYnVmKSAmIDEpID09IDApKSB7CiAJCXdwID0gKHUxNiAqKWJ1ZjsKIAkJd2hpbGUgKG1heCA+PSAyKSB7Ci0JCQlVRENfREFUQV9SRUcgPSAqd3ArKzsKKwkJCW9tYXBfd3JpdGV3KCp3cCsrLCBVRENfREFUQSk7CiAJCQltYXggLT0gMjsKIAkJfQogCQlidWYgPSAodTggKil3cDsKIAl9CiAJd2hpbGUgKG1heC0tKQotCQkqKHZvbGF0aWxlIHU4ICopJlVEQ19EQVRBX1JFRyA9ICpidWYrKzsKKwkJb21hcF93cml0ZWIoKmJ1ZisrLCBVRENfREFUQSk7CiAJcmV0dXJuIGxlbjsKIH0KIApAQCAtMzg1LDEzICszODksMTMgQEAKIAlwcmVmZXRjaChidWYpOwogCiAJLyogUElPLUlOIGlzbid0IGRvdWJsZSBidWZmZXJlZCBleGNlcHQgZm9yIGlzbyAqLwotCWVwX3N0YXQgPSBVRENfU1RBVF9GTEdfUkVHOworCWVwX3N0YXQgPSBvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRyk7CiAJaWYgKGVwX3N0YXQgJiBVRENfRklGT19VTldSSVRBQkxFKQogCQlyZXR1cm4gMDsKIAogCWNvdW50ID0gZXAtPmVwLm1heHBhY2tldDsKIAljb3VudCA9IHdyaXRlX3BhY2tldChidWYsIHJlcSwgY291bnQpOwotCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAllcC0+YWNrd2FpdCA9IDE7CiAKIAkvKiBsYXN0IHBhY2tldCBpcyBvZnRlbiBzaG9ydCAoc29tZXRpbWVzIGEgemxwKSAqLwpAQCAtNDI1LDEzICs0MjksMTMgQEAKIAlpZiAobGlrZWx5KCgoKGludClidWYpICYgMSkgPT0gMCkpIHsKIAkJd3AgPSAodTE2ICopYnVmOwogCQl3aGlsZSAoYXZhaWwgPj0gMikgewotCQkJKndwKysgPSBVRENfREFUQV9SRUc7CisJCQkqd3ArKyA9IG9tYXBfcmVhZHcoVURDX0RBVEEpOwogCQkJYXZhaWwgLT0gMjsKIAkJfQogCQlidWYgPSAodTggKil3cDsKIAl9CiAJd2hpbGUgKGF2YWlsLS0pCi0JCSpidWYrKyA9ICoodm9sYXRpbGUgdTggKikmVURDX0RBVEFfUkVHOworCQkqYnVmKysgPSBvbWFwX3JlYWRiKFVEQ19EQVRBKTsKIAlyZXR1cm4gbGVuOwogfQogCkBAIC00NDYsNyArNDUwLDcgQEAKIAlwcmVmZXRjaHcoYnVmKTsKIAogCWZvciAoOzspIHsKLQkJdTE2CWVwX3N0YXQgPSBVRENfU1RBVF9GTEdfUkVHOworCQl1MTYJZXBfc3RhdCA9IG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKTsKIAogCQlpc19sYXN0ID0gMDsKIAkJaWYgKGVwX3N0YXQgJiBGSUZPX0VNUFRZKSB7CkBAIC00NjAsNyArNDY0LDcgQEAKIAkJaWYgKGVwX3N0YXQgJiBVRENfRklGT19GVUxMKQogCQkJYXZhaWwgPSBlcC0+ZXAubWF4cGFja2V0OwogCQllbHNlICB7Ci0JCQlhdmFpbCA9IFVEQ19SWEZTVEFUX1JFRzsKKwkJCWF2YWlsID0gb21hcF9yZWFkdyhVRENfUlhGU1RBVCk7CiAJCQllcC0+Zm5mID0gZXAtPmRvdWJsZV9idWY7CiAJCX0KIAkJY291bnQgPSByZWFkX3BhY2tldChidWYsIHJlcSwgYXZhaWwpOwpAQCAtNDczLDcgKzQ3Nyw3IEBACiAJCQkJcmVxLT5yZXEuc3RhdHVzID0gLUVPVkVSRkxPVzsKIAkJCQlhdmFpbCAtPSBjb3VudDsKIAkJCQl3aGlsZSAoYXZhaWwtLSkKLQkJCQkJKHZvaWQpICoodm9sYXRpbGUgdTggKikmVURDX0RBVEFfUkVHOworCQkJCQlvbWFwX3JlYWR3KFVEQ19EQVRBKTsKIAkJCX0KIAkJfSBlbHNlIGlmIChyZXEtPnJlcS5sZW5ndGggPT0gcmVxLT5yZXEuYWN0dWFsKQogCQkJaXNfbGFzdCA9IDE7CkBAIC00OTEsMzIgKzQ5NSw2IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLXN0YXRpYyBpbmxpbmUgZG1hX2FkZHJfdCBkbWFfY3NhYyh1bnNpZ25lZCBsY2gpCi17Ci0JZG1hX2FkZHJfdAljc2FjOwotCi0JLyogb21hcCAzLjIvMy4zIGVycmF0dW06IHNvbWV0aW1lcyAwIGlzIHJldHVybmVkIGlmIENTQUMvQ0RBQyBpcwotCSAqIHJlYWQgYmVmb3JlIHRoZSBETUEgY29udHJvbGxlciBmaW5pc2hlZCBkaXNhYmxpbmcgdGhlIGNoYW5uZWwuCi0JICovCi0JY3NhYyA9IE9NQVBfRE1BX0NTQUNfUkVHKGxjaCk7Ci0JaWYgKGNzYWMgPT0gMCkKLQkJY3NhYyA9IE9NQVBfRE1BX0NTQUNfUkVHKGxjaCk7Ci0JcmV0dXJuIGNzYWM7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgZG1hX2FkZHJfdCBkbWFfY2RhYyh1bnNpZ25lZCBsY2gpCi17Ci0JZG1hX2FkZHJfdAljZGFjOwotCi0JLyogb21hcCAzLjIvMy4zIGVycmF0dW06IHNvbWV0aW1lcyAwIGlzIHJldHVybmVkIGlmIENTQUMvQ0RBQyBpcwotCSAqIHJlYWQgYmVmb3JlIHRoZSBETUEgY29udHJvbGxlciBmaW5pc2hlZCBkaXNhYmxpbmcgdGhlIGNoYW5uZWwuCi0JICovCi0JY2RhYyA9IE9NQVBfRE1BX0NEQUNfUkVHKGxjaCk7Ci0JaWYgKGNkYWMgPT0gMCkKLQkJY2RhYyA9IE9NQVBfRE1BX0NEQUNfUkVHKGxjaCk7Ci0JcmV0dXJuIGNkYWM7Ci19Ci0KIHN0YXRpYyB1MTYgZG1hX3NyY19sZW4oc3RydWN0IG9tYXBfZXAgKmVwLCBkbWFfYWRkcl90IHN0YXJ0KQogewogCWRtYV9hZGRyX3QJZW5kOwpAQCAtNTI3LDcgKzUwNSw3IEBACiAJaWYgKGNwdV9pc19vbWFwMTV4eCgpKQogCQlyZXR1cm4gMDsKIAotCWVuZCA9IGRtYV9jc2FjKGVwLT5sY2gpOworCWVuZCA9IG9tYXBfZ2V0X2RtYV9zcmNfcG9zKGVwLT5sY2gpOwogCWlmIChlbmQgPT0gZXAtPmRtYV9jb3VudGVyKQogCQlyZXR1cm4gMDsKIApAQCAtNTM3LDE1ICs1MTUsMTEgQEAKIAlyZXR1cm4gZW5kIC0gc3RhcnQ7CiB9CiAKLSNkZWZpbmUgRE1BX0RFU1RfTEFTVCh4KSAoY3B1X2lzX29tYXAxNXh4KCkgXAotCQk/IE9NQVBfRE1BX0NTQUNfUkVHKHgpIC8qIHJlYWxseTogQ1BDICovIFwKLQkJOiBkbWFfY2RhYyh4KSkKLQogc3RhdGljIHUxNiBkbWFfZGVzdF9sZW4oc3RydWN0IG9tYXBfZXAgKmVwLCBkbWFfYWRkcl90IHN0YXJ0KQogewogCWRtYV9hZGRyX3QJZW5kOwogCi0JZW5kID0gRE1BX0RFU1RfTEFTVChlcC0+bGNoKTsKKwllbmQgPSBvbWFwX2dldF9kbWFfZHN0X3BvcyhlcC0+bGNoKTsKIAlpZiAoZW5kID09IGVwLT5kbWFfY291bnRlcikKIAkJcmV0dXJuIDA7CiAKQEAgLTU2NSw3ICs1MzksNyBAQAogCiBzdGF0aWMgdm9pZCBuZXh0X2luX2RtYShzdHJ1Y3Qgb21hcF9lcCAqZXAsIHN0cnVjdCBvbWFwX3JlcSAqcmVxKQogewotCXUxNgkJdHhkbWFfY3RybDsKKwl1MTYJCXR4ZG1hX2N0cmwsIHc7CiAJdW5zaWduZWQJbGVuZ3RoID0gcmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsOwogCWNvbnN0IGludAlzeW5jX21vZGUgPSBjcHVfaXNfb21hcDE1eHgoKQogCQkJCT8gT01BUF9ETUFfU1lOQ19GUkFNRQpAQCAtNTk2LDE0ICs1NzAsMTggQEAKIAkJMCwgMCk7CiAKIAlvbWFwX3N0YXJ0X2RtYShlcC0+bGNoKTsKLQllcC0+ZG1hX2NvdW50ZXIgPSBkbWFfY3NhYyhlcC0+bGNoKTsKLQlVRENfRE1BX0lSUV9FTl9SRUcgfD0gVURDX1RYX0RPTkVfSUUoZXAtPmRtYV9jaGFubmVsKTsKLQlVRENfVFhETUFfUkVHKGVwLT5kbWFfY2hhbm5lbCkgPSBVRENfVFhOX1NUQVJUIHwgdHhkbWFfY3RybDsKKwllcC0+ZG1hX2NvdW50ZXIgPSBvbWFwX2dldF9kbWFfc3JjX3BvcyhlcC0+bGNoKTsKKwl3ID0gb21hcF9yZWFkdyhVRENfRE1BX0lSUV9FTik7CisJdyB8PSBVRENfVFhfRE9ORV9JRShlcC0+ZG1hX2NoYW5uZWwpOworCW9tYXBfd3JpdGV3KHcsIFVEQ19ETUFfSVJRX0VOKTsKKwlvbWFwX3dyaXRldyhVRENfVFhOX1NUQVJUIHwgdHhkbWFfY3RybCwgVURDX1RYRE1BKGVwLT5kbWFfY2hhbm5lbCkpOwogCXJlcS0+ZG1hX2J5dGVzID0gbGVuZ3RoOwogfQogCiBzdGF0aWMgdm9pZCBmaW5pc2hfaW5fZG1hKHN0cnVjdCBvbWFwX2VwICplcCwgc3RydWN0IG9tYXBfcmVxICpyZXEsIGludCBzdGF0dXMpCiB7CisJdTE2IHc7CisKIAlpZiAoc3RhdHVzID09IDApIHsKIAkJcmVxLT5yZXEuYWN0dWFsICs9IHJlcS0+ZG1hX2J5dGVzOwogCkBAIC02MjAsNyArNTk4LDkgQEAKIAogCS8qIHR4IGNvbXBsZXRpb24gKi8KIAlvbWFwX3N0b3BfZG1hKGVwLT5sY2gpOwotCVVEQ19ETUFfSVJRX0VOX1JFRyAmPSB+VURDX1RYX0RPTkVfSUUoZXAtPmRtYV9jaGFubmVsKTsKKwl3ID0gb21hcF9yZWFkdyhVRENfRE1BX0lSUV9FTik7CisJdyAmPSB+VURDX1RYX0RPTkVfSUUoZXAtPmRtYV9jaGFubmVsKTsKKwlvbWFwX3dyaXRldyh3LCBVRENfRE1BX0lSUV9FTik7CiAJZG9uZShlcCwgcmVxLCBzdGF0dXMpOwogfQogCkBAIC02MjgsNiArNjA4LDcgQEAKIHsKIAl1bnNpZ25lZCBwYWNrZXRzID0gcmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsOwogCWludCBkbWFfdHJpZ2dlciA9IDA7CisJdTE2IHc7CiAKIAlpZiAoY3B1X2lzX29tYXAyNHh4KCkpCiAJCWRtYV90cmlnZ2VyID0gT01BUDI0WFhfRE1BKFVTQl9XMkZDX1JYMCwgZXAtPmRtYV9jaGFubmVsKTsKQEAgLTY1NCwxMiArNjM1LDE0IEBACiAJb21hcF9zZXRfZG1hX2Rlc3RfcGFyYW1zKGVwLT5sY2gsIE9NQVBfRE1BX1BPUlRfRU1JRkYsCiAJCU9NQVBfRE1BX0FNT0RFX1BPU1RfSU5DLCByZXEtPnJlcS5kbWEgKyByZXEtPnJlcS5hY3R1YWwsCiAJCTAsIDApOwotCWVwLT5kbWFfY291bnRlciA9IERNQV9ERVNUX0xBU1QoZXAtPmxjaCk7CisJZXAtPmRtYV9jb3VudGVyID0gb21hcF9nZXRfZG1hX2RzdF9wb3MoZXAtPmxjaCk7CiAKLQlVRENfUlhETUFfUkVHKGVwLT5kbWFfY2hhbm5lbCkgPSBVRENfUlhOX1NUT1AgfCAocGFja2V0cyAtIDEpOwotCVVEQ19ETUFfSVJRX0VOX1JFRyB8PSBVRENfUlhfRU9UX0lFKGVwLT5kbWFfY2hhbm5lbCk7Ci0JVURDX0VQX05VTV9SRUcgPSAoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiAweGYpOwotCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwlvbWFwX3dyaXRldyhVRENfUlhOX1NUT1AgfCAocGFja2V0cyAtIDEpLCBVRENfUlhETUEoZXAtPmRtYV9jaGFubmVsKSk7CisJdyA9IG9tYXBfcmVhZHcoVURDX0RNQV9JUlFfRU4pOworCXcgfD0gVURDX1JYX0VPVF9JRShlcC0+ZG1hX2NoYW5uZWwpOworCW9tYXBfd3JpdGV3KHcsIFVEQ19ETUFfSVJRX0VOKTsKKwlvbWFwX3dyaXRldyhlcC0+YkVuZHBvaW50QWRkcmVzcyAmIDB4ZiwgVURDX0VQX05VTSk7CisJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAKIAlvbWFwX3N0YXJ0X2RtYShlcC0+bGNoKTsKIH0KQEAgLTY2Nyw3ICs2NTAsNyBAQAogc3RhdGljIHZvaWQKIGZpbmlzaF9vdXRfZG1hKHN0cnVjdCBvbWFwX2VwICplcCwgc3RydWN0IG9tYXBfcmVxICpyZXEsIGludCBzdGF0dXMsIGludCBvbmUpCiB7Ci0JdTE2CWNvdW50OworCXUxNgljb3VudCwgdzsKIAogCWlmIChzdGF0dXMgPT0gMCkKIAkJZXAtPmRtYV9jb3VudGVyID0gKHUxNikgKHJlcS0+cmVxLmRtYSArIHJlcS0+cmVxLmFjdHVhbCk7CkBAIC02ODYsMTMgKzY2OSwxNSBAQAogCQlyZXR1cm47CiAKIAkvKiByeCBjb21wbGV0aW9uICovCi0JVURDX0RNQV9JUlFfRU5fUkVHICY9IH5VRENfUlhfRU9UX0lFKGVwLT5kbWFfY2hhbm5lbCk7CisJdyA9IG9tYXBfcmVhZHcoVURDX0RNQV9JUlFfRU4pOworCXcgJj0gflVEQ19SWF9FT1RfSUUoZXAtPmRtYV9jaGFubmVsKTsKKwlvbWFwX3dyaXRldyh3LCBVRENfRE1BX0lSUV9FTik7CiAJZG9uZShlcCwgcmVxLCBzdGF0dXMpOwogfQogCiBzdGF0aWMgdm9pZCBkbWFfaXJxKHN0cnVjdCBvbWFwX3VkYyAqdWRjLCB1MTYgaXJxX3NyYykKIHsKLQl1MTYJCWRtYW5fc3RhdCA9IFVEQ19ETUFOX1NUQVRfUkVHOworCXUxNgkJZG1hbl9zdGF0ID0gb21hcF9yZWFkdyhVRENfRE1BTl9TVEFUKTsKIAlzdHJ1Y3Qgb21hcF9lcAkqZXA7CiAJc3RydWN0IG9tYXBfcmVxCSpyZXE7CiAKQEAgLTcwNiw3ICs2OTEsNyBAQAogCQkJCQkJc3RydWN0IG9tYXBfcmVxLCBxdWV1ZSk7CiAJCQlmaW5pc2hfaW5fZG1hKGVwLCByZXEsIDApOwogCQl9Ci0JCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19UWE5fRE9ORTsKKwkJb21hcF93cml0ZXcoVURDX1RYTl9ET05FLCBVRENfSVJRX1NSQyk7CiAKIAkJaWYgKCFsaXN0X2VtcHR5ICgmZXAtPnF1ZXVlKSkgewogCQkJcmVxID0gY29udGFpbmVyX29mKGVwLT5xdWV1ZS5uZXh0LApAQCAtNzI1LDcgKzcxMCw3IEBACiAJCQkJCXN0cnVjdCBvbWFwX3JlcSwgcXVldWUpOwogCQkJZmluaXNoX291dF9kbWEoZXAsIHJlcSwgMCwgZG1hbl9zdGF0ICYgVURDX0RNQV9SWF9TQik7CiAJCX0KLQkJVURDX0lSUV9TUkNfUkVHID0gVURDX1JYTl9FT1Q7CisJCW9tYXBfd3JpdGV3KFVEQ19SWE5fRU9ULCBVRENfSVJRX1NSQyk7CiAKIAkJaWYgKCFsaXN0X2VtcHR5ICgmZXAtPnF1ZXVlKSkgewogCQkJcmVxID0gY29udGFpbmVyX29mKGVwLT5xdWV1ZS5uZXh0LApAQCAtNzM5LDcgKzcyNCw3IEBACiAJCWVwLT5pcnFzKys7CiAJCS8qIG9tYXAxNXh4IGRvZXMgdGhpcyB1bmFza2VkLi4uICovCiAJCVZEQkcoIiVzLCBSWF9DTlQgaXJxP1xuIiwgZXAtPmVwLm5hbWUpOwotCQlVRENfSVJRX1NSQ19SRUcgPSBVRENfUlhOX0NOVDsKKwkJb21hcF93cml0ZXcoVURDX1JYTl9DTlQsIFVEQ19JUlFfU1JDKTsKIAl9CiB9CiAKQEAgLTc2Miw5ICs3NDcsOSBAQAogCiAJaXNfaW4gPSBlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU47CiAJaWYgKGlzX2luKQotCQlyZWcgPSBVRENfVFhETUFfQ0ZHX1JFRzsKKwkJcmVnID0gb21hcF9yZWFkdyhVRENfVFhETUFfQ0ZHKTsKIAllbHNlCi0JCXJlZyA9IFVEQ19SWERNQV9DRkdfUkVHOworCQlyZWcgPSBvbWFwX3JlYWR3KFVEQ19SWERNQV9DRkcpOwogCXJlZyB8PSBVRENfRE1BX1JFUTsJCS8qICJwdWxzZSIgYWN0aXZhdGVkICovCiAKIAllcC0+ZG1hX2NoYW5uZWwgPSAwOwpAQCAtNzkyLDcgKzc3Nyw3IEBACiAJCXN0YXR1cyA9IG9tYXBfcmVxdWVzdF9kbWEoZG1hX2NoYW5uZWwsCiAJCQllcC0+ZXAubmFtZSwgZG1hX2Vycm9yLCBlcCwgJmVwLT5sY2gpOwogCQlpZiAoc3RhdHVzID09IDApIHsKLQkJCVVEQ19UWERNQV9DRkdfUkVHID0gcmVnOworCQkJb21hcF93cml0ZXcocmVnLCBVRENfVFhETUFfQ0ZHKTsKIAkJCS8qIEVNSUZGIG9yIFNEUkMgKi8KIAkJCW9tYXBfc2V0X2RtYV9zcmNfYnVyc3RfbW9kZShlcC0+bGNoLAogCQkJCQkJT01BUF9ETUFfREFUQV9CVVJTVF80KTsKQEAgLTgwMSw3ICs3ODYsNyBAQAogCQkJb21hcF9zZXRfZG1hX2Rlc3RfcGFyYW1zKGVwLT5sY2gsCiAJCQkJT01BUF9ETUFfUE9SVF9USVBCLAogCQkJCU9NQVBfRE1BX0FNT0RFX0NPTlNUQU5ULAotCQkJCSh1bnNpZ25lZCBsb25nKSBpb192MnAoKHUzMikmVURDX0RBVEFfRE1BX1JFRyksCisJCQkJKHVuc2lnbmVkIGxvbmcpIGlvX3YycChVRENfREFUQV9ETUEpLAogCQkJCTAsIDApOwogCQl9CiAJfSBlbHNlIHsKQEAgLTgxMywxMiArNzk4LDEyIEBACiAJCXN0YXR1cyA9IG9tYXBfcmVxdWVzdF9kbWEoZG1hX2NoYW5uZWwsCiAJCQllcC0+ZXAubmFtZSwgZG1hX2Vycm9yLCBlcCwgJmVwLT5sY2gpOwogCQlpZiAoc3RhdHVzID09IDApIHsKLQkJCVVEQ19SWERNQV9DRkdfUkVHID0gcmVnOworCQkJb21hcF93cml0ZXcocmVnLCBVRENfUlhETUFfQ0ZHKTsKIAkJCS8qIFRJUEIgKi8KIAkJCW9tYXBfc2V0X2RtYV9zcmNfcGFyYW1zKGVwLT5sY2gsCiAJCQkJT01BUF9ETUFfUE9SVF9USVBCLAogCQkJCU9NQVBfRE1BX0FNT0RFX0NPTlNUQU5ULAotCQkJCSh1bnNpZ25lZCBsb25nKSBpb192MnAoKHUzMikmVURDX0RBVEFfRE1BX1JFRyksCisJCQkJKHVuc2lnbmVkIGxvbmcpIGlvX3YycChVRENfREFUQV9ETUEpLAogCQkJCTAsIDApOwogCQkJLyogRU1JRkYgb3IgU0RSQyAqLwogCQkJb21hcF9zZXRfZG1hX2Rlc3RfYnVyc3RfbW9kZShlcC0+bGNoLApAQCAtODM0LDcgKzgxOSw3IEBACiAKIAkJLyogY2hhbm5lbCB0eXBlIFA6IGh3IHN5bmNoIChmaWZvKSAqLwogCQlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpKQotCQkJT01BUDFfRE1BX0xDSF9DVFJMX1JFRyhlcC0+bGNoKSA9IDI7CisJCQlvbWFwX3NldF9kbWFfY2hhbm5lbF9tb2RlKGVwLT5sY2gsIE9NQVBfRE1BX0xDSF9QKTsKIAl9CiAKIGp1c3RfcmVzdGFydDoKQEAgLTg2MCw3ICs4NDUsNyBAQAogCQkJKGlzX2luID8gd3JpdGVfZmlmbyA6IHJlYWRfZmlmbykoZXAsIHJlcSk7CiAJCQlkZXNlbGVjdF9lcCgpOwogCQkJaWYgKCFpc19pbikgewotCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAkJCQllcC0+YWNrd2FpdCA9IDEgKyBlcC0+ZG91YmxlX2J1ZjsKIAkJCX0KIAkJCS8qIElOOiA2IHdhaXQgc3RhdGVzIGJlZm9yZSBpdCdsbCB0eCAqLwpAQCAtODgxLDcgKzg2Niw3IEBACiAJZWxzZQogCQlyZXEgPSBOVUxMOwogCi0JYWN0aXZlID0gKCgxIDw8IDcpICYgT01BUF9ETUFfQ0NSX1JFRyhlcC0+bGNoKSkgIT0gMDsKKwlhY3RpdmUgPSBvbWFwX2dldF9kbWFfYWN0aXZlX3N0YXR1cyhlcC0+bGNoKTsKIAogCURCRygiJXMgcmVsZWFzZSAlcyAlY3hkbWElZCAlcFxuIiwgZXAtPmVwLm5hbWUsCiAJCQlhY3RpdmUgPyAiYWN0aXZlIiA6ICJpZGxlIiwKQEAgLTg5NCwyMyArODc5LDI1IEBACiAKIAkvKiB3YWl0IHRpbGwgY3VycmVudCBwYWNrZXQgRE1BIGZpbmlzaGVzLCBhbmQgZmlmbyBlbXB0aWVzICovCiAJaWYgKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikgewotCQlVRENfVFhETUFfQ0ZHX1JFRyA9IChVRENfVFhETUFfQ0ZHX1JFRyAmIH5tYXNrKSB8IFVEQ19ETUFfUkVROworCQlvbWFwX3dyaXRldygob21hcF9yZWFkdyhVRENfVFhETUFfQ0ZHKSAmIH5tYXNrKSB8IFVEQ19ETUFfUkVRLAorCQkJCQlVRENfVFhETUFfQ0ZHKTsKIAogCQlpZiAocmVxKSB7CiAJCQlmaW5pc2hfaW5fZG1hKGVwLCByZXEsIC1FQ09OTlJFU0VUKTsKIAogCQkJLyogY2xlYXIgRklGTzsgaG9zdHMgcHJvYmFibHkgd29uJ3QgZW1wdHkgaXQgKi8KIAkJCXVzZV9lcChlcCwgVURDX0VQX1NFTCk7Ci0JCQlVRENfQ1RSTF9SRUcgPSBVRENfQ0xSX0VQOworCQkJb21hcF93cml0ZXcoVURDX0NMUl9FUCwgVURDX0NUUkwpOwogCQkJZGVzZWxlY3RfZXAoKTsKIAkJfQotCQl3aGlsZSAoVURDX1RYRE1BX0NGR19SRUcgJiBtYXNrKQorCQl3aGlsZSAob21hcF9yZWFkdyhVRENfVFhETUFfQ0ZHKSAmIG1hc2spCiAJCQl1ZGVsYXkoMTApOwogCX0gZWxzZSB7Ci0JCVVEQ19SWERNQV9DRkdfUkVHID0gKFVEQ19SWERNQV9DRkdfUkVHICYgfm1hc2spIHwgVURDX0RNQV9SRVE7CisJCW9tYXBfd3JpdGV3KChvbWFwX3JlYWR3KFVEQ19SWERNQV9DRkcpICYgfm1hc2spIHwgVURDX0RNQV9SRVEsCisJCQkJCVVEQ19SWERNQV9DRkcpOwogCiAJCS8qIGRtYSBlbXB0aWVzIHRoZSBmaWZvICovCi0JCXdoaWxlIChVRENfUlhETUFfQ0ZHX1JFRyAmIG1hc2spCisJCXdoaWxlIChvbWFwX3JlYWR3KFVEQ19SWERNQV9DRkcpICYgbWFzaykKIAkJCXVkZWxheSgxMCk7CiAJCWlmIChyZXEpCiAJCQlmaW5pc2hfb3V0X2RtYShlcCwgcmVxLCAtRUNPTk5SRVNFVCwgMCk7CkBAIC05OTcsOSArOTg0LDEzIEBACiAJcmVxLT5yZXEuYWN0dWFsID0gMDsKIAogCS8qIG1heWJlIGtpY2tzdGFydCBub24taXNvIGkvbyBxdWV1ZXMgKi8KLQlpZiAoaXNfaXNvKQotCQlVRENfSVJRX0VOX1JFRyB8PSBVRENfU09GX0lFOwotCWVsc2UgaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkgJiYgIWVwLT5zdG9wcGVkICYmICFlcC0+YWNrd2FpdCkgeworCWlmIChpc19pc28pIHsKKwkJdTE2IHc7CisKKwkJdyA9IG9tYXBfcmVhZHcoVURDX0lSUV9FTik7CisJCXcgfD0gVURDX1NPRl9JRTsKKwkJb21hcF93cml0ZXcodywgVURDX0lSUV9FTik7CisJfSBlbHNlIGlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpICYmICFlcC0+c3RvcHBlZCAmJiAhZXAtPmFja3dhaXQpIHsKIAkJaW50CWlzX2luOwogCiAJCWlmIChlcC0+YkVuZHBvaW50QWRkcmVzcyA9PSAwKSB7CkBAIC0xMDE3LDIzICsxMDA4LDIzIEBACiAJCQkJICogcmVxdWVzdHMgdG8gbm9uLWNvbnRyb2wgZW5kcG9pbnRzCiAJCQkJICovCiAJCQkJaWYgKHVkYy0+ZXAwX3NldF9jb25maWcpIHsKLQkJCQkJdTE2CWlycV9lbiA9IFVEQ19JUlFfRU5fUkVHOworCQkJCQl1MTYJaXJxX2VuID0gb21hcF9yZWFkdyhVRENfSVJRX0VOKTsKIAogCQkJCQlpcnFfZW4gfD0gVURDX0RTX0NIR19JRSB8IFVEQ19FUDBfSUU7CiAJCQkJCWlmICghdWRjLT5lcDBfcmVzZXRfY29uZmlnKQogCQkJCQkJaXJxX2VuIHw9IFVEQ19FUE5fUlhfSUUKIAkJCQkJCQl8IFVEQ19FUE5fVFhfSUU7Ci0JCQkJCVVEQ19JUlFfRU5fUkVHID0gaXJxX2VuOworCQkJCQlvbWFwX3dyaXRldyhpcnFfZW4sIFVEQ19JUlFfRU4pOwogCQkJCX0KIAogCQkJCS8qIFNUQVRVUyBmb3IgemVybyBsZW5ndGggREFUQSBzdGFnZXMgaXMKIAkJCQkgKiBhbHdheXMgYW4gSU4gLi4uIGV2ZW4gZm9yIElOIHRyYW5zZmVycywKIAkJCQkgKiBhIHdlaXJkIGNhc2Ugd2hpY2ggc2VlbSB0byBzdGFsbCBPTUFQLgogCQkJCSAqLwotCQkJCVVEQ19FUF9OVU1fUkVHID0gKFVEQ19FUF9TRUx8VURDX0VQX0RJUik7Ci0JCQkJVURDX0NUUkxfUkVHID0gVURDX0NMUl9FUDsKLQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47Ci0JCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfRElSOworCQkJCW9tYXBfd3JpdGV3KFVEQ19FUF9TRUwgfCBVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKKwkJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0VQLCBVRENfQ1RSTCk7CisJCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CisJCQkJb21hcF93cml0ZXcoVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAKIAkJCQkvKiBjbGVhbnVwICovCiAJCQkJdWRjLT5lcDBfcGVuZGluZyA9IDA7CkBAIC0xMDQyLDExICsxMDMzLDExIEBACiAKIAkJCS8qIG5vbi1lbXB0eSBEQVRBIHN0YWdlICovCiAJCQl9IGVsc2UgaWYgKGlzX2luKSB7Ci0JCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfU0VMfFVEQ19FUF9ESVI7CisJCQkJb21hcF93cml0ZXcoVURDX0VQX1NFTCB8IFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCQkJfSBlbHNlIHsKIAkJCQlpZiAodWRjLT5lcDBfc2V0dXApCiAJCQkJCWdvdG8gaXJxX3dhaXQ7Ci0JCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfU0VMOworCQkJCW9tYXBfd3JpdGV3KFVEQ19FUF9TRUwsIFVEQ19FUF9OVU0pOwogCQkJfQogCQl9IGVsc2UgewogCQkJaXNfaW4gPSBlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU47CkBAIC0xMDYyLDcgKzEwNTMsNyBAQAogCQkJCXJlcSA9IE5VTEw7CiAJCQlkZXNlbGVjdF9lcCgpOwogCQkJaWYgKCFpc19pbikgewotCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAkJCQllcC0+YWNrd2FpdCA9IDEgKyBlcC0+ZG91YmxlX2J1ZjsKIAkJCX0KIAkJCS8qIElOOiA2IHdhaXQgc3RhdGVzIGJlZm9yZSBpdCdsbCB0eCAqLwpAQCAtMTEzMCw5ICsxMTIxLDkgQEAKIAkJZWxzZSBpZiAodmFsdWUpIHsKIAkJCWlmIChlcC0+dWRjLT5lcDBfc2V0X2NvbmZpZykgewogCQkJCVdBUk4oImVycm9yIGNoYW5naW5nIGNvbmZpZz9cbiIpOwotCQkJCVVEQ19TWVNDT04yX1JFRyA9IFVEQ19DTFJfQ0ZHOworCQkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfQ0ZHLCBVRENfU1lTQ09OMik7CiAJCQl9Ci0JCQlVRENfU1lTQ09OMl9SRUcgPSBVRENfU1RBTExfQ01EOworCQkJb21hcF93cml0ZXcoVURDX1NUQUxMX0NNRCwgVURDX1NZU0NPTjIpOwogCQkJZXAtPnVkYy0+ZXAwX3BlbmRpbmcgPSAwOwogCQkJc3RhdHVzID0gMDsKIAkJfSBlbHNlIC8qIE5PUCAqLwpAQCAtMTE1OSw4ICsxMTUwLDggQEAKIAkJCQljaGFubmVsID0gMDsKIAogCQkJdXNlX2VwKGVwLCBVRENfRVBfU0VMKTsKLQkJCWlmIChVRENfU1RBVF9GTEdfUkVHICYgVURDX05PTl9JU09fRklGT19FTVBUWSkgewotCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfSEFMVDsKKwkJCWlmIChvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRykgJiBVRENfTk9OX0lTT19GSUZPX0VNUFRZKSB7CisJCQkJb21hcF93cml0ZXcoVURDX1NFVF9IQUxULCBVRENfQ1RSTCk7CiAJCQkJc3RhdHVzID0gMDsKIAkJCX0gZWxzZQogCQkJCXN0YXR1cyA9IC1FQUdBSU47CkBAIC0xMTcwLDEwICsxMTYxLDEwIEBACiAJCQkJZG1hX2NoYW5uZWxfY2xhaW0oZXAsIGNoYW5uZWwpOwogCQl9IGVsc2UgewogCQkJdXNlX2VwKGVwLCAwKTsKLQkJCVVEQ19DVFJMX1JFRyA9IGVwLT51ZGMtPmNscl9oYWx0OworCQkJb21hcF93cml0ZXcoZXAtPnVkYy0+Y2xyX2hhbHQsIFVEQ19DVFJMKTsKIAkJCWVwLT5hY2t3YWl0ID0gMDsKIAkJCWlmICghKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikpIHsKLQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAJCQkJZXAtPmFja3dhaXQgPSAxICsgZXAtPmRvdWJsZV9idWY7CiAJCQl9CiAJCX0KQEAgLTEyMDUsNyArMTE5Niw3IEBACiAKIHN0YXRpYyBpbnQgb21hcF9nZXRfZnJhbWUoc3RydWN0IHVzYl9nYWRnZXQgKmdhZGdldCkKIHsKLQl1MTYJc29mID0gVURDX1NPRl9SRUc7CisJdTE2CXNvZiA9IG9tYXBfcmVhZHcoVURDX1NPRik7CiAJcmV0dXJuIChzb2YgJiBVRENfVFNfT0spID8gKHNvZiAmIFVEQ19UUykgOiAtRUwyTlNZTkM7CiB9CiAKQEAgLTEyMjQsNyArMTIxNSw3IEBACiAJCSAqLwogCQlpZiAodWRjLT5kZXZzdGF0ICYgKFVEQ19CX0hOUF9FTkFCTEV8VURDX1JfV0tfT0spKSB7CiAJCQlEQkcoInJlbW90ZSB3YWtldXAuLi5cbiIpOwotCQkJVURDX1NZU0NPTjJfUkVHID0gVURDX1JNVF9XS1A7CisJCQlvbWFwX3dyaXRldyhVRENfUk1UX1dLUCwgVURDX1NZU0NPTjIpOwogCQkJcmV0dmFsID0gMDsKIAkJfQogCkBAIC0xMjQ3LDEyICsxMjM4LDEyIEBACiAKIAl1ZGMgPSBjb250YWluZXJfb2YoZ2FkZ2V0LCBzdHJ1Y3Qgb21hcF91ZGMsIGdhZGdldCk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnVkYy0+bG9jaywgZmxhZ3MpOwotCXN5c2NvbjEgPSBVRENfU1lTQ09OMV9SRUc7CisJc3lzY29uMSA9IG9tYXBfcmVhZHcoVURDX1NZU0NPTjEpOwogCWlmIChpc19zZWxmcG93ZXJlZCkKIAkJc3lzY29uMSB8PSBVRENfU0VMRl9QV1I7CiAJZWxzZQogCQlzeXNjb24xICY9IH5VRENfU0VMRl9QV1I7Ci0JVURDX1NZU0NPTjFfUkVHID0gc3lzY29uMTsKKwlvbWFwX3dyaXRldyhzeXNjb24xLCBVRENfU1lTQ09OMSk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdWRjLT5sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gMDsKQEAgLTEyNjUsMTggKzEyNTYsMzYgQEAKIAogc3RhdGljIHZvaWQgcHVsbHVwX2VuYWJsZShzdHJ1Y3Qgb21hcF91ZGMgKnVkYykKIHsKLQlVRENfU1lTQ09OMV9SRUcgfD0gVURDX1BVTExVUF9FTjsKLQlpZiAoIWdhZGdldF9pc19vdGcoJnVkYy0+Z2FkZ2V0KSAmJiAhY3B1X2lzX29tYXAxNXh4KCkpCi0JCU9UR19DVFJMX1JFRyB8PSBPVEdfQlNFU1NWTEQ7Ci0JVURDX0lSUV9FTl9SRUcgPSBVRENfRFNfQ0hHX0lFOworCXUxNiB3OworCisJdyA9IG9tYXBfcmVhZHcoVURDX1NZU0NPTjEpOworCXcgfD0gVURDX1BVTExVUF9FTjsKKwlvbWFwX3dyaXRldyh3LCBVRENfU1lTQ09OMSk7CisJaWYgKCFnYWRnZXRfaXNfb3RnKCZ1ZGMtPmdhZGdldCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpKSB7CisJCXUzMiBsOworCisJCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKKwkJbCB8PSBPVEdfQlNFU1NWTEQ7CisJCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKKwl9CisJb21hcF93cml0ZXcoVURDX0RTX0NIR19JRSwgVURDX0lSUV9FTik7CiB9CiAKIHN0YXRpYyB2b2lkIHB1bGx1cF9kaXNhYmxlKHN0cnVjdCBvbWFwX3VkYyAqdWRjKQogewotCWlmICghZ2FkZ2V0X2lzX290ZygmdWRjLT5nYWRnZXQpICYmICFjcHVfaXNfb21hcDE1eHgoKSkKLQkJT1RHX0NUUkxfUkVHICY9IH5PVEdfQlNFU1NWTEQ7Ci0JVURDX0lSUV9FTl9SRUcgPSBVRENfRFNfQ0hHX0lFOwotCVVEQ19TWVNDT04xX1JFRyAmPSB+VURDX1BVTExVUF9FTjsKKwl1MTYgdzsKKworCWlmICghZ2FkZ2V0X2lzX290ZygmdWRjLT5nYWRnZXQpICYmICFjcHVfaXNfb21hcDE1eHgoKSkgeworCQl1MzIgbDsKKworCQlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CisJCWwgJj0gfk9UR19CU0VTU1ZMRDsKKwkJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOworCX0KKwlvbWFwX3dyaXRldyhVRENfRFNfQ0hHX0lFLCBVRENfSVJRX0VOKTsKKwl3ID0gb21hcF9yZWFkdyhVRENfU1lTQ09OMSk7CisJdyAmPSB+VURDX1BVTExVUF9FTjsKKwlvbWFwX3dyaXRldyh3LCBVRENfU1lTQ09OMSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgb21hcF91ZGMgKnVkYzsKQEAgLTEzMDQsNiArMTMxMyw3IEBACiB7CiAJc3RydWN0IG9tYXBfdWRjCSp1ZGM7CiAJdW5zaWduZWQgbG9uZwlmbGFnczsKKwl1MzIgbDsKIAogCXVkYyA9IGNvbnRhaW5lcl9vZihnYWRnZXQsIHN0cnVjdCBvbWFwX3VkYywgZ2FkZ2V0KTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmdWRjLT5sb2NrLCBmbGFncyk7CkBAIC0xMzExLDEwICsxMzIxLDEyIEBACiAJdWRjLT52YnVzX2FjdGl2ZSA9IChpc19hY3RpdmUgIT0gMCk7CiAJaWYgKGNwdV9pc19vbWFwMTV4eCgpKSB7CiAJCS8qICJzb2Z0d2FyZSIgZGV0ZWN0LCBpZ25vcmVkIGlmICFWQlVTX01PREVfMTUxMCAqLworCQlsID0gb21hcF9yZWFkbChGVU5DX01VWF9DVFJMXzApOwogCQlpZiAoaXNfYWN0aXZlKQotCQkJRlVOQ19NVVhfQ1RSTF8wX1JFRyB8PSBWQlVTX0NUUkxfMTUxMDsKKwkJCWwgfD0gVkJVU19DVFJMXzE1MTA7CiAJCWVsc2UKLQkJCUZVTkNfTVVYX0NUUkxfMF9SRUcgJj0gflZCVVNfQ1RSTF8xNTEwOworCQkJbCAmPSB+VkJVU19DVFJMXzE1MTA7CisJCW9tYXBfd3JpdGVsKGwsIEZVTkNfTVVYX0NUUkxfMCk7CiAJfQogCWlmICh1ZGMtPmRjX2NsayAhPSBOVUxMICYmIGlzX2FjdGl2ZSkgewogCQlpZiAoIXVkYy0+Y2xrX3JlcXVlc3RlZCkgewpAQCAtMTM4NCw5ICsxMzk2LDkgQEAKIAkJZG1hX2NoYW5uZWxfcmVsZWFzZShlcCk7CiAKIAl1c2VfZXAoZXAsIDApOwotCVVEQ19DVFJMX1JFRyA9IFVEQ19DTFJfRVA7CisJb21hcF93cml0ZXcoVURDX0NMUl9FUCwgVURDX0NUUkwpOwogCWlmIChlcC0+YkVuZHBvaW50QWRkcmVzcyAmJiBlcC0+Ym1BdHRyaWJ1dGVzICE9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MpCi0JCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfSEFMVDsKKwkJb21hcF93cml0ZXcoVURDX1NFVF9IQUxULCBVRENfQ1RSTCk7CiAKIAl3aGlsZSAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKIAkJcmVxID0gbGlzdF9lbnRyeShlcC0+cXVldWUubmV4dCwgc3RydWN0IG9tYXBfcmVxLCBxdWV1ZSk7CkBAIC0xNDE0LDggKzE0MjYsOCBAQAogCWlmICghZ2FkZ2V0X2lzX290ZygmdWRjLT5nYWRnZXQpKQogCQlyZXR1cm47CiAKLQlpZiAoT1RHX0NUUkxfUkVHICYgT1RHX0lEKQotCQlkZXZzdGF0ID0gVURDX0RFVlNUQVRfUkVHOworCWlmIChvbWFwX3JlYWRsKE9UR19DVFJMKSAmIE9UR19JRCkKKwkJZGV2c3RhdCA9IG9tYXBfcmVhZHcoVURDX0RFVlNUQVQpOwogCWVsc2UKIAkJZGV2c3RhdCA9IDA7CiAKQEAgLTE0MjYsOSArMTQzOCwxNCBAQAogCS8qIEVuYWJsZSBITlAgZWFybHksIGF2b2lkaW5nIHJhY2VzIG9uIHN1c3BlbmQgaXJxIHBhdGguCiAJICogQVNTVU1FUyBPVEcgc3RhdGUgbWFjaGluZSBCX0JVU19SRVEgaW5wdXQgaXMgdHJ1ZS4KIAkgKi8KLQlpZiAodWRjLT5nYWRnZXQuYl9obnBfZW5hYmxlKQotCQlPVEdfQ1RSTF9SRUcgPSAoT1RHX0NUUkxfUkVHIHwgT1RHX0JfSE5QRU4gfCBPVEdfQl9CVVNSRVEpCi0JCQkJJiB+T1RHX1BVTExVUDsKKwlpZiAodWRjLT5nYWRnZXQuYl9obnBfZW5hYmxlKSB7CisJCXUzMiBsOworCisJCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKKwkJbCB8PSBPVEdfQl9ITlBFTiB8IE9UR19CX0JVU1JFUTsKKwkJbCAmPSB+T1RHX1BVTExVUDsKKwkJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOworCX0KIH0KIAogc3RhdGljIHZvaWQgZXAwX2lycShzdHJ1Y3Qgb21hcF91ZGMgKnVkYywgdTE2IGlycV9zcmMpCkBAIC0xNDQ2LDcgKzE0NjMsNyBAQAogCiAJCW51a2UoZXAwLCAwKTsKIAkJaWYgKGFjaykgewotCQkJVURDX0lSUV9TUkNfUkVHID0gYWNrOworCQkJb21hcF93cml0ZXcoYWNrLCBVRENfSVJRX1NSQyk7CiAJCQlpcnFfc3JjID0gVURDX1NFVFVQOwogCQl9CiAJfQpAQCAtMTQ2Niw5ICsxNDgzLDkgQEAKIAlpZiAoaXJxX3NyYyAmIFVEQ19FUDBfVFgpIHsKIAkJaW50CXN0YXQ7CiAKLQkJVURDX0lSUV9TUkNfUkVHID0gVURDX0VQMF9UWDsKLQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfU0VMfFVEQ19FUF9ESVI7Ci0JCXN0YXQgPSBVRENfU1RBVF9GTEdfUkVHOworCQlvbWFwX3dyaXRldyhVRENfRVAwX1RYLCBVRENfSVJRX1NSQyk7CisJCW9tYXBfd3JpdGV3KFVEQ19FUF9TRUx8VURDX0VQX0RJUiwgVURDX0VQX05VTSk7CisJCXN0YXQgPSBvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRyk7CiAJCWlmIChzdGF0ICYgVURDX0FDSykgewogCQkJaWYgKHVkYy0+ZXAwX2luKSB7CiAJCQkJLyogd3JpdGUgbmV4dCBJTiBwYWNrZXQgZnJvbSByZXNwb25zZSwKQEAgLTE0NzYsMjYgKzE0OTMsMjYgQEAKIAkJCQkgKi8KIAkJCQlpZiAocmVxKQogCQkJCQlzdGF0ID0gd3JpdGVfZmlmbyhlcDAsIHJlcSk7Ci0JCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfRElSOworCQkJCW9tYXBfd3JpdGV3KFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCQkJCWlmICghcmVxICYmIHVkYy0+ZXAwX3BlbmRpbmcpIHsKLQkJCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfU0VMOwotCQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfQ0xSX0VQOwotCQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47Ci0JCQkJCVVEQ19FUF9OVU1fUkVHID0gMDsKKwkJCQkJb21hcF93cml0ZXcoVURDX0VQX1NFTCwgVURDX0VQX05VTSk7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfRVAsIFVEQ19DVFJMKTsKKwkJCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CisJCQkJCW9tYXBfd3JpdGV3KDAsIFVEQ19FUF9OVU0pOwogCQkJCQl1ZGMtPmVwMF9wZW5kaW5nID0gMDsKIAkJCQl9IC8qIGVsc2U6ICA2IHdhaXQgc3RhdGVzIGJlZm9yZSBpdCdsbCB0eCAqLwogCQkJfSBlbHNlIHsKIAkJCQkvKiBhY2sgc3RhdHVzIHN0YWdlIG9mIE9VVCB0cmFuc2ZlciAqLwotCQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX0RJUjsKKwkJCQlvbWFwX3dyaXRldyhVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAkJCQlpZiAocmVxKQogCQkJCQlkb25lKGVwMCwgcmVxLCAwKTsKIAkJCX0KIAkJCXJlcSA9IE5VTEw7CiAJCX0gZWxzZSBpZiAoc3RhdCAmIFVEQ19TVEFMTCkgewotCQkJVURDX0NUUkxfUkVHID0gVURDX0NMUl9IQUxUOwotCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfRElSOworCQkJb21hcF93cml0ZXcoVURDX0NMUl9IQUxULCBVRENfQ1RSTCk7CisJCQlvbWFwX3dyaXRldyhVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAkJfSBlbHNlIHsKLQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX0RJUjsKKwkJCW9tYXBfd3JpdGV3KFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCQl9CiAJfQogCkBAIC0xNTAzLDkgKzE1MjAsOSBAQAogCWlmIChpcnFfc3JjICYgVURDX0VQMF9SWCkgewogCQlpbnQJc3RhdDsKIAotCQlVRENfSVJRX1NSQ19SRUcgPSBVRENfRVAwX1JYOwotCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9TRUw7Ci0JCXN0YXQgPSBVRENfU1RBVF9GTEdfUkVHOworCQlvbWFwX3dyaXRldyhVRENfRVAwX1JYLCBVRENfSVJRX1NSQyk7CisJCW9tYXBfd3JpdGV3KFVEQ19FUF9TRUwsIFVEQ19FUF9OVU0pOworCQlzdGF0ID0gb21hcF9yZWFkdyhVRENfU1RBVF9GTEcpOwogCQlpZiAoc3RhdCAmIFVEQ19BQ0spIHsKIAkJCWlmICghdWRjLT5lcDBfaW4pIHsKIAkJCQlzdGF0ID0gMDsKQEAgLTE1MTMsMzQgKzE1MzAsMzUgQEAKIAkJCQkgKiByZWFjdGl2aXRpbmcgdGhlIGZpZm87IHN0YWxsIG9uIGVycm9ycy4KIAkJCQkgKi8KIAkJCQlpZiAoIXJlcSB8fCAoc3RhdCA9IHJlYWRfZmlmbyhlcDAsIHJlcSkpIDwgMCkgewotCQkJCQlVRENfU1lTQ09OMl9SRUcgPSBVRENfU1RBTExfQ01EOworCQkJCQlvbWFwX3dyaXRldyhVRENfU1RBTExfQ01ELCBVRENfU1lTQ09OMik7CiAJCQkJCXVkYy0+ZXAwX3BlbmRpbmcgPSAwOwogCQkJCQlzdGF0ID0gMDsKIAkJCQl9IGVsc2UgaWYgKHN0YXQgPT0gMCkKLQkJCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOwotCQkJCVVEQ19FUF9OVU1fUkVHID0gMDsKKwkJCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CisJCQkJb21hcF93cml0ZXcoMCwgVURDX0VQX05VTSk7CiAKIAkJCQkvKiBhY3RpdmF0ZSBzdGF0dXMgc3RhZ2UgKi8KIAkJCQlpZiAoc3RhdCA9PSAxKSB7CiAJCQkJCWRvbmUoZXAwLCByZXEsIDApOwogCQkJCQkvKiB0aGF0IG1heSBoYXZlIFNUQUxMZWQgZXAwLi4uICovCi0JCQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX1NFTHxVRENfRVBfRElSOwotCQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfQ0xSX0VQOwotCQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47Ci0JCQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX0RJUjsKKwkJCQkJb21hcF93cml0ZXcoVURDX0VQX1NFTCB8IFVEQ19FUF9ESVIsCisJCQkJCQkJVURDX0VQX05VTSk7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfRVAsIFVEQ19DVFJMKTsKKwkJCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCQkJCQl1ZGMtPmVwMF9wZW5kaW5nID0gMDsKIAkJCQl9CiAJCQl9IGVsc2UgewogCQkJCS8qIGFjayBzdGF0dXMgc3RhZ2Ugb2YgSU4gdHJhbnNmZXIgKi8KLQkJCQlVRENfRVBfTlVNX1JFRyA9IDA7CisJCQkJb21hcF93cml0ZXcoMCwgVURDX0VQX05VTSk7CiAJCQkJaWYgKHJlcSkKIAkJCQkJZG9uZShlcDAsIHJlcSwgMCk7CiAJCQl9CiAJCX0gZWxzZSBpZiAoc3RhdCAmIFVEQ19TVEFMTCkgewotCQkJVURDX0NUUkxfUkVHID0gVURDX0NMUl9IQUxUOwotCQkJVURDX0VQX05VTV9SRUcgPSAwOworCQkJb21hcF93cml0ZXcoVURDX0NMUl9IQUxULCBVRENfQ1RSTCk7CisJCQlvbWFwX3dyaXRldygwLCBVRENfRVBfTlVNKTsKIAkJfSBlbHNlIHsKLQkJCVVEQ19FUF9OVU1fUkVHID0gMDsKKwkJCW9tYXBfd3JpdGV3KDAsIFVEQ19FUF9OVU0pOwogCQl9CiAJfQogCkBAIC0xNTU1LDE0ICsxNTczLDE0IEBACiAKIAkJLyogcmVhZCB0aGUgKGxhdGVzdCkgU0VUVVAgbWVzc2FnZSAqLwogCQlkbyB7Ci0JCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19TRVRVUF9TRUw7CisJCQlvbWFwX3dyaXRldyhVRENfU0VUVVBfU0VMLCBVRENfRVBfTlVNKTsKIAkJCS8qIHR3byBieXRlcyBhdCBhIHRpbWUgKi8KLQkJCXUud29yZFswXSA9IFVEQ19EQVRBX1JFRzsKLQkJCXUud29yZFsxXSA9IFVEQ19EQVRBX1JFRzsKLQkJCXUud29yZFsyXSA9IFVEQ19EQVRBX1JFRzsKLQkJCXUud29yZFszXSA9IFVEQ19EQVRBX1JFRzsKLQkJCVVEQ19FUF9OVU1fUkVHID0gMDsKLQkJfSB3aGlsZSAoVURDX0lSUV9TUkNfUkVHICYgVURDX1NFVFVQKTsKKwkJCXUud29yZFswXSA9IG9tYXBfcmVhZHcoVURDX0RBVEEpOworCQkJdS53b3JkWzFdID0gb21hcF9yZWFkdyhVRENfREFUQSk7CisJCQl1LndvcmRbMl0gPSBvbWFwX3JlYWR3KFVEQ19EQVRBKTsKKwkJCXUud29yZFszXSA9IG9tYXBfcmVhZHcoVURDX0RBVEEpOworCQkJb21hcF93cml0ZXcoMCwgVURDX0VQX05VTSk7CisJCX0gd2hpbGUgKG9tYXBfcmVhZHcoVURDX0lSUV9TUkMpICYgVURDX1NFVFVQKTsKIAogI2RlZmluZQl3X3ZhbHVlCQlsZTE2X3RvX2NwdSh1LnIud1ZhbHVlKQogI2RlZmluZQl3X2luZGV4CQlsZTE2X3RvX2NwdSh1LnIud0luZGV4KQpAQCAtMTU5Myw5ICsxNjExLDkgQEAKIAkJCSAqIGxhdGVyIGlmIGl0IGZhaWxzIHRoZSByZXF1ZXN0LgogCQkJICovCiAJCQlpZiAodWRjLT5lcDBfcmVzZXRfY29uZmlnKQotCQkJCVVEQ19TWVNDT04yX1JFRyA9IFVEQ19DTFJfQ0ZHOworCQkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfQ0ZHLCBVRENfU1lTQ09OMik7CiAJCQllbHNlCi0JCQkJVURDX1NZU0NPTjJfUkVHID0gVURDX0RFVl9DRkc7CisJCQkJb21hcF93cml0ZXcoVURDX0RFVl9DRkcsIFVEQ19TWVNDT04yKTsKIAkJCXVwZGF0ZV9vdGcodWRjKTsKIAkJCWdvdG8gZGVsZWdhdGU7CiAJCWNhc2UgVVNCX1JFUV9DTEVBUl9GRUFUVVJFOgpAQCAtMTYxMywxMCArMTYzMSwxMCBAQAogCQkJCQkJfHwgIWVwLT5kZXNjKQogCQkJCQlnb3RvIGRvX3N0YWxsOwogCQkJCXVzZV9lcChlcCwgMCk7Ci0JCQkJVURDX0NUUkxfUkVHID0gdWRjLT5jbHJfaGFsdDsKKwkJCQlvbWFwX3dyaXRldyh1ZGMtPmNscl9oYWx0LCBVRENfQ1RSTCk7CiAJCQkJZXAtPmFja3dhaXQgPSAwOwogCQkJCWlmICghKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikpIHsKLQkJCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCQkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAkJCQkJZXAtPmFja3dhaXQgPSAxICsgZXAtPmRvdWJsZV9idWY7CiAJCQkJfQogCQkJCS8qIE5PVEU6ICBhc3N1bWVzIHRoZSBob3N0IGJlaGF2ZXMgc2FuZWx5LApAQCAtMTY0OSwxNSArMTY2NywxNSBAQAogCQkJfQogCQkJdXNlX2VwKGVwLCAwKTsKIAkJCS8qIGNhbid0IGhhbHQgaWYgZmlmbyBpc24ndCBlbXB0eS4uLiAqLwotCQkJVURDX0NUUkxfUkVHID0gVURDX0NMUl9FUDsKLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfSEFMVDsKKwkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfRVAsIFVEQ19DVFJMKTsKKwkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfSEFMVCwgVURDX0NUUkwpOwogCQkJVkRCRygiJXMgaGFsdGVkIGJ5IGhvc3RcbiIsIGVwLT5uYW1lKTsKIGVwMG91dF9zdGF0dXNfc3RhZ2U6CiAJCQlzdGF0dXMgPSAwOwotCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfU0VMfFVEQ19FUF9ESVI7Ci0JCQlVRENfQ1RSTF9SRUcgPSBVRENfQ0xSX0VQOwotCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOwotCQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfRElSOworCQkJb21hcF93cml0ZXcoVURDX0VQX1NFTHxVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKKwkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfRVAsIFVEQ19DVFJMKTsKKwkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOworCQkJb21hcF93cml0ZXcoVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAJCQl1ZGMtPmVwMF9wZW5kaW5nID0gMDsKIAkJCWJyZWFrOwogCQljYXNlIFVTQl9SRVFfR0VUX1NUQVRVUzoKQEAgLTE2OTQsMTAgKzE3MTIsMTAgQEAKIAogemVyb19zdGF0dXM6CiAJCQkvKiByZXR1cm4gdHdvIHplcm8gYnl0ZXMgKi8KLQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX1NFTHxVRENfRVBfRElSOwotCQkJVURDX0RBVEFfUkVHID0gMDsKLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKLQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX0RJUjsKKwkJCW9tYXBfd3JpdGV3KFVEQ19FUF9TRUx8VURDX0VQX0RJUiwgVURDX0VQX05VTSk7CisJCQlvbWFwX3dyaXRldygwLCBVRENfREFUQSk7CisJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKKwkJCW9tYXBfd3JpdGV3KFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCQkJc3RhdHVzID0gMDsKIAkJCVZEQkcoIkdFVF9TVEFUVVMsIGludGVyZmFjZSAlZFxuIiwgd19pbmRleCk7CiAJCQkvKiBuZXh0LCBzdGF0dXMgc3RhZ2UgKi8KQEAgLTE3MDYsOCArMTcyNCw4IEBACiBkZWxlZ2F0ZToKIAkJCS8qIGFjdGl2YXRlIHRoZSBlcDBvdXQgZmlmbyByaWdodCBhd2F5ICovCiAJCQlpZiAoIXVkYy0+ZXAwX2luICYmIHdfbGVuZ3RoKSB7Ci0JCQkJVURDX0VQX05VTV9SRUcgPSAwOwotCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwkJCQlvbWFwX3dyaXRldygwLCBVRENfRVBfTlVNKTsKKwkJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAkJCX0KIAogCQkJLyogZ2FkZ2V0IGRyaXZlcnMgc2VlIGNsYXNzL3ZlbmRvciBzcGVjaWZpYyByZXF1ZXN0cywKQEAgLTE3NDgsOSArMTc2Niw5IEBACiAJCQkJaWYgKHVkYy0+ZXAwX3Jlc2V0X2NvbmZpZykKIAkJCQkJV0FSTigiZXJyb3IgcmVzZXR0aW5nIGNvbmZpZz9cbiIpOwogCQkJCWVsc2UKLQkJCQkJVURDX1NZU0NPTjJfUkVHID0gVURDX0NMUl9DRkc7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfQ0ZHLCBVRENfU1lTQ09OMik7CiAJCQl9Ci0JCQlVRENfU1lTQ09OMl9SRUcgPSBVRENfU1RBTExfQ01EOworCQkJb21hcF93cml0ZXcoVURDX1NUQUxMX0NNRCwgVURDX1NZU0NPTjIpOwogCQkJdWRjLT5lcDBfcGVuZGluZyA9IDA7CiAJCX0KIAl9CkBAIC0xNzY0LDcgKzE3ODIsNyBAQAogewogCXUxNglkZXZzdGF0LCBjaGFuZ2U7CiAKLQlkZXZzdGF0ID0gVURDX0RFVlNUQVRfUkVHOworCWRldnN0YXQgPSBvbWFwX3JlYWR3KFVEQ19ERVZTVEFUKTsKIAljaGFuZ2UgPSBkZXZzdGF0IF4gdWRjLT5kZXZzdGF0OwogCXVkYy0+ZGV2c3RhdCA9IGRldnN0YXQ7CiAKQEAgLTE4MDQsNyArMTgyMiw4IEBACiAJCQkJSU5GTygiVVNCIHJlc2V0IGRvbmUsIGdhZGdldCAlc1xuIiwKIAkJCQkJdWRjLT5kcml2ZXItPmRyaXZlci5uYW1lKTsKIAkJCQkvKiBlcDAgdHJhZmZpYyBpcyBsZWdhbCBmcm9tIG5vdyBvbiAqLwotCQkJCVVEQ19JUlFfRU5fUkVHID0gVURDX0RTX0NIR19JRSB8IFVEQ19FUDBfSUU7CisJCQkJb21hcF93cml0ZXcoVURDX0RTX0NIR19JRSB8IFVEQ19FUDBfSUUsCisJCQkJCQlVRENfSVJRX0VOKTsKIAkJCX0KIAkJCWNoYW5nZSAmPSB+VURDX1VTQl9SRVNFVDsKIAkJfQpAQCAtMTg0OCw3ICsxODY3LDcgQEAKIAkJVkRCRygiZGV2c3RhdCAlMDN4LCBpZ25vcmUgY2hhbmdlICUwM3hcbiIsCiAJCQlkZXZzdGF0LCAgY2hhbmdlKTsKIAotCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19EU19DSEc7CisJb21hcF93cml0ZXcoVURDX0RTX0NIRywgVURDX0lSUV9TUkMpOwogfQogCiBzdGF0aWMgaXJxcmV0dXJuX3Qgb21hcF91ZGNfaXJxKGludCBpcnEsIHZvaWQgKl91ZGMpCkBAIC0xODU5LDcgKzE4NzgsNyBAQAogCXVuc2lnbmVkIGxvbmcJZmxhZ3M7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmdWRjLT5sb2NrLCBmbGFncyk7Ci0JaXJxX3NyYyA9IFVEQ19JUlFfU1JDX1JFRzsKKwlpcnFfc3JjID0gb21hcF9yZWFkdyhVRENfSVJRX1NSQyk7CiAKIAkvKiBEZXZpY2Ugc3RhdGUgY2hhbmdlICh1c2IgY2g5IHN0dWZmKSAqLwogCWlmIChpcnFfc3JjICYgVURDX0RTX0NIRykgewpAQCAtMTg4Miw3ICsxOTAxLDcgQEAKIAkJaXJxX3NyYyAmPSB+KFVEQ19UWE5fRE9ORXxVRENfUlhOX0NOVHxVRENfUlhOX0VPVCk7CiAJfQogCi0JaXJxX3NyYyAmPSB+KFVEQ19TT0Z8VURDX0VQTl9UWHxVRENfRVBOX1JYKTsKKwlpcnFfc3JjICY9IH4oVURDX0lSUV9TT0YgfCBVRENfRVBOX1RYfFVEQ19FUE5fUlgpOwogCWlmIChpcnFfc3JjKQogCQlEQkcoInVkY19pcnEsIHVuaGFuZGxlZCAlMDN4XG4iLCBpcnFfc3JjKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ1ZGMtPmxvY2ssIGZsYWdzKTsKQEAgLTE5MDMsNyArMTkyMiw3IEBACiAJc3Bpbl9sb2NrX2lycXNhdmUoJmVwLT51ZGMtPmxvY2ssIGZsYWdzKTsKIAlpZiAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkgJiYgZXAtPmFja3dhaXQpIHsKIAkJdXNlX2VwKGVwLCBVRENfRVBfU0VMKTsKLQkJc3RhdF9mbGcgPSBVRENfU1RBVF9GTEdfUkVHOworCQlzdGF0X2ZsZyA9IG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKTsKIAogCQlpZiAoKHN0YXRfZmxnICYgVURDX0FDSykgJiYgKCEoc3RhdF9mbGcgJiBVRENfRklGT19FTikKIAkJCQl8fCAoZXAtPmRvdWJsZV9idWYgJiYgSEFMRl9GVUxMKHN0YXRfZmxnKSkpKSB7CkBAIC0xOTEzLDggKzE5MzIsOCBAQAogCQkJcmVxID0gY29udGFpbmVyX29mKGVwLT5xdWV1ZS5uZXh0LAogCQkJCQlzdHJ1Y3Qgb21hcF9yZXEsIHF1ZXVlKTsKIAkJCSh2b2lkKSByZWFkX2ZpZm8oZXAsIHJlcSk7Ci0JCQlVRENfRVBfTlVNX1JFRyA9IGVwLT5iRW5kcG9pbnRBZGRyZXNzOwotCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCQkJb21hcF93cml0ZXcoZXAtPmJFbmRwb2ludEFkZHJlc3MsIFVEQ19FUF9OVU0pOworCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAJCQllcC0+YWNrd2FpdCA9IDEgKyBlcC0+ZG91YmxlX2J1ZjsKIAkJfSBlbHNlCiAJCQlkZXNlbGVjdF9lcCgpOwpAQCAtMTkzNCwyMCArMTk1MywyMCBAQAogCXVuc2lnbmVkIGxvbmcJZmxhZ3M7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmdWRjLT5sb2NrLCBmbGFncyk7Ci0JZXBuX3N0YXQgPSBVRENfRVBOX1NUQVRfUkVHOwotCWlycV9zcmMgPSBVRENfSVJRX1NSQ19SRUc7CisJZXBuX3N0YXQgPSBvbWFwX3JlYWR3KFVEQ19FUE5fU1RBVCk7CisJaXJxX3NyYyA9IG9tYXBfcmVhZHcoVURDX0lSUV9TUkMpOwogCiAJLyogaGFuZGxlIE9VVCBmaXJzdCwgdG8gYXZvaWQgc29tZSB3YXN0ZWZ1bCBOQUtzICovCiAJaWYgKGlycV9zcmMgJiBVRENfRVBOX1JYKSB7CiAJCWVwbnVtID0gKGVwbl9zdGF0ID4+IDgpICYgMHgwZjsKLQkJVURDX0lSUV9TUkNfUkVHID0gVURDX0VQTl9SWDsKKwkJb21hcF93cml0ZXcoVURDX0VQTl9SWCwgVURDX0lSUV9TUkMpOwogCQlzdGF0dXMgPSBJUlFfSEFORExFRDsKIAkJZXAgPSAmdWRjLT5lcFtlcG51bV07CiAJCWVwLT5pcnFzKys7CiAKLQkJVURDX0VQX05VTV9SRUcgPSBlcG51bSB8IFVEQ19FUF9TRUw7CisJCW9tYXBfd3JpdGV3KGVwbnVtIHwgVURDX0VQX1NFTCwgVURDX0VQX05VTSk7CiAJCWVwLT5mbmYgPSAwOwotCQlpZiAoKFVEQ19TVEFUX0ZMR19SRUcgJiBVRENfQUNLKSkgeworCQlpZiAob21hcF9yZWFkdyhVRENfU1RBVF9GTEcpICYgVURDX0FDSykgewogCQkJZXAtPmFja3dhaXQtLTsKIAkJCWlmICghbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkgewogCQkJCWludCBzdGF0OwpAQCAtMTk1OSwxNSArMTk3OCwxNSBAQAogCQkJfQogCQl9CiAJCS8qIG1pbiA2IGNsb2NrIGRlbGF5IGJlZm9yZSBjbGVhcmluZyBFUF9TRUwgLi4uICovCi0JCWVwbl9zdGF0ID0gVURDX0VQTl9TVEFUX1JFRzsKLQkJZXBuX3N0YXQgPSBVRENfRVBOX1NUQVRfUkVHOwotCQlVRENfRVBfTlVNX1JFRyA9IGVwbnVtOworCQllcG5fc3RhdCA9IG9tYXBfcmVhZHcoVURDX0VQTl9TVEFUKTsKKwkJZXBuX3N0YXQgPSBvbWFwX3JlYWR3KFVEQ19FUE5fU1RBVCk7CisJCW9tYXBfd3JpdGV3KGVwbnVtLCBVRENfRVBfTlVNKTsKIAogCQkvKiBlbmFibGluZyBmaWZvIF9hZnRlcl8gY2xlYXJpbmcgQUNLLCBjb250cmFyeSB0byBkb2NzLAogCQkgKiByZWR1Y2VzIGxvc3NhZ2U7IHRpbWVyIHN0aWxsIG5lZWRlZCB0aG91Z2ggKHNpZ2gpLgogCQkgKi8KIAkJaWYgKGVwLT5mbmYpIHsKLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCQkJZXAtPmFja3dhaXQgPSAxICsgZXAtPmRvdWJsZV9idWY7CiAJCX0KIAkJbW9kX3RpbWVyKCZlcC0+dGltZXIsIFBJT19PVVRfVElNRU9VVCk7CkBAIC0xOTc2LDEzICsxOTk1LDEzIEBACiAJLyogdGhlbiBJTiB0cmFuc2ZlcnMgKi8KIAllbHNlIGlmIChpcnFfc3JjICYgVURDX0VQTl9UWCkgewogCQllcG51bSA9IGVwbl9zdGF0ICYgMHgwZjsKLQkJVURDX0lSUV9TUkNfUkVHID0gVURDX0VQTl9UWDsKKwkJb21hcF93cml0ZXcoVURDX0VQTl9UWCwgVURDX0lSUV9TUkMpOwogCQlzdGF0dXMgPSBJUlFfSEFORExFRDsKIAkJZXAgPSAmdWRjLT5lcFsxNiArIGVwbnVtXTsKIAkJZXAtPmlycXMrKzsKIAotCQlVRENfRVBfTlVNX1JFRyA9IGVwbnVtIHwgVURDX0VQX0RJUiB8IFVEQ19FUF9TRUw7Ci0JCWlmICgoVURDX1NUQVRfRkxHX1JFRyAmIFVEQ19BQ0spKSB7CisJCW9tYXBfd3JpdGV3KGVwbnVtIHwgVURDX0VQX0RJUiB8IFVEQ19FUF9TRUwsIFVEQ19FUF9OVU0pOworCQlpZiAob21hcF9yZWFkdyhVRENfU1RBVF9GTEcpICYgVURDX0FDSykgewogCQkJZXAtPmFja3dhaXQgPSAwOwogCQkJaWYgKCFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7CiAJCQkJcmVxID0gY29udGFpbmVyX29mKGVwLT5xdWV1ZS5uZXh0LApAQCAtMTk5MSw5ICsyMDEwLDkgQEAKIAkJCX0KIAkJfQogCQkvKiBtaW4gNiBjbG9jayBkZWxheSBiZWZvcmUgY2xlYXJpbmcgRVBfU0VMIC4uLiAqLwotCQllcG5fc3RhdCA9IFVEQ19FUE5fU1RBVF9SRUc7Ci0JCWVwbl9zdGF0ID0gVURDX0VQTl9TVEFUX1JFRzsKLQkJVURDX0VQX05VTV9SRUcgPSBlcG51bSB8IFVEQ19FUF9ESVI7CisJCWVwbl9zdGF0ID0gb21hcF9yZWFkdyhVRENfRVBOX1NUQVQpOworCQllcG5fc3RhdCA9IG9tYXBfcmVhZHcoVURDX0VQTl9TVEFUKTsKKwkJb21hcF93cml0ZXcoZXBudW0gfCBVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAkJLyogdGhlbiA2IGNsb2NrcyBiZWZvcmUgaXQnZCB0eCAqLwogCX0KIApAQCAtMjAyMSw3ICsyMDQwLDcgQEAKIAkJcmVxID0gbGlzdF9lbnRyeShlcC0+cXVldWUubmV4dCwgc3RydWN0IG9tYXBfcmVxLCBxdWV1ZSk7CiAKIAkJdXNlX2VwKGVwLCBVRENfRVBfU0VMKTsKLQkJc3RhdCA9IFVEQ19TVEFUX0ZMR19SRUc7CisJCXN0YXQgPSBvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRyk7CiAKIAkJLyogTk9URTogbGlrZSB0aGUgb3RoZXIgY29udHJvbGxlciBkcml2ZXJzLCB0aGlzIGlzbid0CiAJCSAqIGN1cnJlbnRseSByZXBvcnRpbmcgbG9zdCBvciBkYW1hZ2VkIGZyYW1lcy4KQEAgLTIwNTMsOSArMjA3MiwxNCBAQAogCQlpZiAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpCiAJCQlwZW5kaW5nID0gMTsKIAl9Ci0JaWYgKCFwZW5kaW5nKQotCQlVRENfSVJRX0VOX1JFRyAmPSB+VURDX1NPRl9JRTsKLQlVRENfSVJRX1NSQ19SRUcgPSBVRENfU09GOworCWlmICghcGVuZGluZykgeworCQl1MTYgdzsKKworCQl3ID0gb21hcF9yZWFkdyhVRENfSVJRX0VOKTsKKwkJdyAmPSB+VURDX1NPRl9JRTsKKwkJb21hcF93cml0ZXcodywgVURDX0lSUV9FTik7CisJfQorCW9tYXBfd3JpdGV3KFVEQ19JUlFfU09GLCBVRENfSVJRX1NSQyk7CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ1ZGMtPmxvY2ssIGZsYWdzKTsKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CkBAIC0yMTA0LDcgKzIxMjgsNyBAQAogCQlpZiAoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DKQogCQkJY29udGludWU7CiAJCXVzZV9lcChlcCwgMCk7Ci0JCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfSEFMVDsKKwkJb21hcF93cml0ZXcoVURDX1NFVF9IQUxULCBVRENfQ1RSTCk7CiAJfQogCXVkYy0+ZXAwX3BlbmRpbmcgPSAwOwogCXVkYy0+ZXBbMF0uaXJxcyA9IDA7CkBAIC0yMTI4LDcgKzIxNTIsNyBAQAogCX0KIAlEQkcoImJvdW5kIHRvIGRyaXZlciAlc1xuIiwgZHJpdmVyLT5kcml2ZXIubmFtZSk7CiAKLQlVRENfSVJRX1NSQ19SRUcgPSBVRENfSVJRX1NSQ19NQVNLOworCW9tYXBfd3JpdGV3KFVEQ19JUlFfU1JDX01BU0ssIFVEQ19JUlFfU1JDKTsKIAogCS8qIGNvbm5lY3QgdG8gYnVzIHRocm91Z2ggdHJhbnNjZWl2ZXIgKi8KIAlpZiAodWRjLT50cmFuc2NlaXZlcikgewpAQCAtMjIyNSw3ICsyMjQ5LDcgQEAKIAllbHNlCiAJCWJ1ZlswXSA9IDA7CiAKLQlzdGF0X2ZsZyA9IFVEQ19TVEFUX0ZMR19SRUc7CisJc3RhdF9mbGcgPSBvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRyk7CiAJc2VxX3ByaW50ZihzLAogCQkiXG4lcyAlcyVzJXNpcnFzICVsZCBzdGF0ICUwNHggIiBFSUdIVEJJVFMgRk9VUkJJVFMgIiVzXG4iLAogCQllcC0+bmFtZSwgYnVmLApAQCAtMjI5MiwxMSArMjMxNiwxMSBAQAogCQl0cmFucyA9IENPTlRST0xfREVWQ09ORl9SRUc7CiAJfSBlbHNlIHsKIAkJY3RybF9uYW1lID0gInRyYW5jZWl2ZXJfY3RybCI7Ci0JCXRyYW5zID0gVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHOworCQl0cmFucyA9IG9tYXBfcmVhZHcoVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOwogCX0KIAlzZXFfcHJpbnRmKHMsICJcbk9URyByZXYgJWQuJWQsICVzICUwNXhcbiIsCiAJCXRtcCA+PiA0LCB0bXAgJiAweGYsIGN0cmxfbmFtZSwgdHJhbnMpOwotCXRtcCA9IE9UR19TWVNDT05fMV9SRUc7CisJdG1wID0gb21hcF9yZWFkdyhPVEdfU1lTQ09OXzEpOwogCXNlcV9wcmludGYocywgIm90Z19zeXNjb24xICUwOHggdXNiMiAlcywgdXNiMSAlcywgdXNiMCAlcywiCiAJCQlGT1VSQklUUyAiXG4iLCB0bXAsCiAJCXRyeF9tb2RlKFVTQjJfVFJYX01PREUodG1wKSwgdHJhbnMgJiBDT05GX1VTQjJfVU5JX1IpLApAQCAtMjMwOCw3ICsyMzMyLDcgQEAKIAkJKHRtcCAmIEhTVF9JRExFX0VOKSA/ICIgIWhvc3QiIDogIiIsCiAJCSh0bXAgJiBERVZfSURMRV9FTikgPyAiICFkZXYiIDogIiIsCiAJCSh0bXAgJiBPVEdfUkVTRVRfRE9ORSkgPyAiIHJlc2V0X2RvbmUiIDogIiByZXNldF9hY3RpdmUiKTsKLQl0bXAgPSBPVEdfU1lTQ09OXzJfUkVHOworCXRtcCA9IG9tYXBfcmVhZGwoT1RHX1NZU0NPTl8yKTsKIAlzZXFfcHJpbnRmKHMsICJvdGdfc3lzY29uMiAlMDh4JXMiIEVJR0hUQklUUwogCQkJIiBiX2FzZV9icnN0PSVkIGhtYz0lZFxuIiwgdG1wLAogCQkodG1wICYgT1RHX0VOKSA/ICIgb3RnX2VuIiA6ICIiLApAQCAtMjMyMyw3ICsyMzQ3LDcgQEAKIAkJKHRtcCAmIEhNQ19UTExBVFRBQ0gpID8gIiB0bGxhdHRhY2giIDogIiIsCiAJCUJfQVNFX0JSU1QodG1wKSwKIAkJT1RHX0hNQyh0bXApKTsKLQl0bXAgPSBPVEdfQ1RSTF9SRUc7CisJdG1wID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CiAJc2VxX3ByaW50ZihzLCAib3RnX2N0cmwgICAgJTA2eCIgRUlHSFRCSVRTIEVJR0hUQklUUyAiJXNcbiIsIHRtcCwKIAkJKHRtcCAmIE9UR19BU0VTU1ZMRCkgPyAiIGFzZXNzIiA6ICIiLAogCQkodG1wICYgT1RHX0JTRVNTRU5EKSA/ICIgYnNlc3NfZW5kIiA6ICIiLApAQCAtMjM0MywxMyArMjM2NywxMyBAQAogCQkodG1wICYgT1RHX1BVX1ZCVVMpID8gIiBwdV92YiIgOiAiIiwKIAkJKHRtcCAmIE9UR19QVV9JRCkgPyAiIHB1X2lkIiA6ICIiCiAJCSk7Ci0JdG1wID0gT1RHX0lSUV9FTl9SRUc7CisJdG1wID0gb21hcF9yZWFkdyhPVEdfSVJRX0VOKTsKIAlzZXFfcHJpbnRmKHMsICJvdGdfaXJxX2VuICAlMDR4IiAiXG4iLCB0bXApOwotCXRtcCA9IE9UR19JUlFfU1JDX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWR3KE9UR19JUlFfU1JDKTsKIAlzZXFfcHJpbnRmKHMsICJvdGdfaXJxX3NyYyAlMDR4IiAiXG4iLCB0bXApOwotCXRtcCA9IE9UR19PVVRDVFJMX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWR3KE9UR19PVVRDVFJMKTsKIAlzZXFfcHJpbnRmKHMsICJvdGdfb3V0Y3RybCAlMDR4IiAiXG4iLCB0bXApOwotCXRtcCA9IE9UR19URVNUX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWR3KE9UR19URVNUKTsKIAlzZXFfcHJpbnRmKHMsICJvdGdfdGVzdCAgICAlMDR4IiAiXG4iLCB0bXApOwogCXJldHVybiAwOwogfQpAQCAtMjM3MCw3ICsyMzk0LDcgQEAKIAkJZHJpdmVyX2Rlc2MsCiAJCXVzZV9kbWEgPyAgIiAoZG1hKSIgOiAiIik7CiAKLQl0bXAgPSBVRENfUkVWX1JFRyAmIDB4ZmY7CisJdG1wID0gb21hcF9yZWFkdyhVRENfUkVWKSAmIDB4ZmY7CiAJc2VxX3ByaW50ZihzLAogCQkiVURDIHJldiAlZC4lZCwgZmlmbyBtb2RlICVkLCBnYWRnZXQgJXNcbiIKIAkJImhtYyAlZCwgdHJhbnNjZWl2ZXIgJXNcbiIsCkBAIC0yMzg0LDE2ICsyNDA4LDE2IEBACiAJCQkJPyAiZXh0ZXJuYWwiIDogIihub25lKSIpKTsKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKIAkJc2VxX3ByaW50ZihzLCAiVUxQRCBjb250cm9sICUwNHggcmVxICUwNHggc3RhdHVzICUwNHhcbiIsCi0JCQlfX1JFRzE2KFVMUERfQ0xPQ0tfQ1RSTCksCi0JCQlfX1JFRzE2KFVMUERfU09GVF9SRVEpLAotCQkJX19SRUcxNihVTFBEX1NUQVRVU19SRVEpKTsKKwkJCW9tYXBfcmVhZHcoVUxQRF9DTE9DS19DVFJMKSwKKwkJCW9tYXBfcmVhZHcoVUxQRF9TT0ZUX1JFUSksCisJCQlvbWFwX3JlYWR3KFVMUERfU1RBVFVTX1JFUSkpOwogCX0KIAogCS8qIE9URyBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwogCWlmICghY3B1X2lzX29tYXAxNXh4KCkpCiAJCXByb2Nfb3RnX3Nob3cocyk7CiAKLQl0bXAgPSBVRENfU1lTQ09OMV9SRUc7CisJdG1wID0gb21hcF9yZWFkdyhVRENfU1lTQ09OMSk7CiAJc2VxX3ByaW50ZihzLCAiXG5zeXNjb24xICAgICAlMDR4IiBFSUdIVEJJVFMgIlxuIiwgdG1wLAogCQkodG1wICYgVURDX0NGR19MT0NLKSA/ICIgY2ZnX2xvY2siIDogIiIsCiAJCSh0bXAgJiBVRENfREFUQV9FTkRJQU4pID8gIiBkYXRhX2VuZGlhbiIgOiAiIiwKQEAgLTI0MTIsNyArMjQzNiw3IEBACiAJCXJldHVybiAwOwogCX0KIAotCXRtcCA9IFVEQ19ERVZTVEFUX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWR3KFVEQ19ERVZTVEFUKTsKIAlzZXFfcHJpbnRmKHMsICJkZXZzdGF0ICAgICAlMDR4IiBFSUdIVEJJVFMgIiVzJXNcbiIsIHRtcCwKIAkJKHRtcCAmIFVEQ19CX0hOUF9FTkFCTEUpID8gIiBiX2hucCIgOiAiIiwKIAkJKHRtcCAmIFVEQ19BX0hOUF9TVVBQT1JUKSA/ICIgYV9obnAiIDogIiIsCkBAIC0yNDI0LDIwICsyNDQ4LDIwIEBACiAJCSh0bXAgJiBVRENfQUREKSA/ICIgQUREIiA6ICIiLAogCQkodG1wICYgVURDX0RFRikgPyAiIERFRiIgOiAiIiwKIAkJKHRtcCAmIFVEQ19BVFQpID8gIiBBVFQiIDogIiIpOwotCXNlcV9wcmludGYocywgInNvZiAgICAgICAgICUwNHhcbiIsIFVEQ19TT0ZfUkVHKTsKLQl0bXAgPSBVRENfSVJRX0VOX1JFRzsKKwlzZXFfcHJpbnRmKHMsICJzb2YgICAgICAgICAlMDR4XG4iLCBvbWFwX3JlYWR3KFVEQ19TT0YpKTsKKwl0bXAgPSBvbWFwX3JlYWR3KFVEQ19JUlFfRU4pOwogCXNlcV9wcmludGYocywgImlycV9lbiAgICAgICUwNHgiIEZPVVJCSVRTICIlc1xuIiwgdG1wLAogCQkodG1wICYgVURDX1NPRl9JRSkgPyAiIHNvZiIgOiAiIiwKIAkJKHRtcCAmIFVEQ19FUE5fUlhfSUUpID8gIiBlcG5fcngiIDogIiIsCiAJCSh0bXAgJiBVRENfRVBOX1RYX0lFKSA/ICIgZXBuX3R4IiA6ICIiLAogCQkodG1wICYgVURDX0RTX0NIR19JRSkgPyAiIGRzX2NoZyIgOiAiIiwKIAkJKHRtcCAmIFVEQ19FUDBfSUUpID8gIiBlcDAiIDogIiIpOwotCXRtcCA9IFVEQ19JUlFfU1JDX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWR3KFVEQ19JUlFfU1JDKTsKIAlzZXFfcHJpbnRmKHMsICJpcnFfc3JjICAgICAlMDR4IiBFSUdIVEJJVFMgIiVzJXNcbiIsIHRtcCwKIAkJKHRtcCAmIFVEQ19UWE5fRE9ORSkgPyAiIHR4bl9kb25lIiA6ICIiLAogCQkodG1wICYgVURDX1JYTl9DTlQpID8gIiByeG5fY250IiA6ICIiLAogCQkodG1wICYgVURDX1JYTl9FT1QpID8gIiByeG5fZW90IiA6ICIiLAotCQkodG1wICYgVURDX1NPRikgPyAiIHNvZiIgOiAiIiwKKwkJKHRtcCAmIFVEQ19JUlFfU09GKSA/ICIgc29mIiA6ICIiLAogCQkodG1wICYgVURDX0VQTl9SWCkgPyAiIGVwbl9yeCIgOiAiIiwKIAkJKHRtcCAmIFVEQ19FUE5fVFgpID8gIiBlcG5fdHgiIDogIiIsCiAJCSh0bXAgJiBVRENfRFNfQ0hHKSA/ICIgZHNfY2hnIiA6ICIiLApAQCAtMjQ0Nyw3ICsyNDcxLDcgQEAKIAlpZiAodXNlX2RtYSkgewogCQl1bnNpZ25lZCBpOwogCi0JCXRtcCA9IFVEQ19ETUFfSVJRX0VOX1JFRzsKKwkJdG1wID0gb21hcF9yZWFkdyhVRENfRE1BX0lSUV9FTik7CiAJCXNlcV9wcmludGYocywgImRtYV9pcnFfZW4gICUwNHglcyIgRUlHSFRCSVRTICJcbiIsIHRtcCwKIAkJCSh0bXAgJiBVRENfVFhfRE9ORV9JRSgzKSkgPyAiIHR4Ml9kb25lIiA6ICIiLAogCQkJKHRtcCAmIFVEQ19SWF9DTlRfSUUoMykpID8gIiByeDJfY250IiA6ICIiLApAQCAtMjQ2MSwyOSArMjQ4NSwyOSBAQAogCQkJKHRtcCAmIFVEQ19SWF9DTlRfSUUoMSkpID8gIiByeDBfY250IiA6ICIiLAogCQkJKHRtcCAmIFVEQ19SWF9FT1RfSUUoMSkpID8gIiByeDBfZW90IiA6ICIiKTsKIAotCQl0bXAgPSBVRENfUlhETUFfQ0ZHX1JFRzsKKwkJdG1wID0gb21hcF9yZWFkdyhVRENfUlhETUFfQ0ZHKTsKIAkJc2VxX3ByaW50ZihzLCAicnhkbWFfY2ZnICAgJTA0eFxuIiwgdG1wKTsKIAkJaWYgKHRtcCkgewogCQkJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewogCQkJCWlmICgodG1wICYgKDB4MGYgPDwgKGkgKiA0KSkpID09IDApCiAJCQkJCWNvbnRpbnVlOwogCQkJCXNlcV9wcmludGYocywgInJ4ZG1hWyVkXSAgICAlMDR4XG4iLCBpLAotCQkJCQkJVURDX1JYRE1BX1JFRyhpICsgMSkpOworCQkJCQkJb21hcF9yZWFkdyhVRENfUlhETUEoaSArIDEpKSk7CiAJCQl9CiAJCX0KLQkJdG1wID0gVURDX1RYRE1BX0NGR19SRUc7CisJCXRtcCA9IG9tYXBfcmVhZHcoVURDX1RYRE1BX0NGRyk7CiAJCXNlcV9wcmludGYocywgInR4ZG1hX2NmZyAgICUwNHhcbiIsIHRtcCk7CiAJCWlmICh0bXApIHsKIAkJCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKIAkJCQlpZiAoISh0bXAgJiAoMHgwZiA8PCAoaSAqIDQpKSkpCiAJCQkJCWNvbnRpbnVlOwogCQkJCXNlcV9wcmludGYocywgInR4ZG1hWyVkXSAgICAlMDR4XG4iLCBpLAotCQkJCQkJVURDX1RYRE1BX1JFRyhpICsgMSkpOworCQkJCQkJb21hcF9yZWFkdyhVRENfVFhETUEoaSArIDEpKSk7CiAJCQl9CiAJCX0KIAl9CiAKLQl0bXAgPSBVRENfREVWU1RBVF9SRUc7CisJdG1wID0gb21hcF9yZWFkdyhVRENfREVWU1RBVCk7CiAJaWYgKHRtcCAmIFVEQ19BVFQpIHsKIAkJcHJvY19lcF9zaG93KHMsICZ1ZGMtPmVwWzBdKTsKIAkJaWYgKHRtcCAmIFVEQ19BREQpIHsKQEAgLTI1MzUsNyArMjU1OSw3IEBACiAgKiBidWZmZXIgc3BhY2UgYW1vbmcgdGhlIGVuZHBvaW50cyB3ZSdsbCBiZSBvcGVyYXRpbmcuCiAgKgogICogTk9URTogYXMgb2YgT01BUCAxNzEwIEVTMi4wLCB3cml0aW5nIGEgbmV3IGVuZHBvaW50IGNvbmZpZyB3aGVuCi0gKiBVRENfU1lTQ09OXzFfUkVHLkNGR19MT0NLIGlzIHNldCBjYW4gbm93IHdvcmsuICBXZSB3b24ndCB1c2UgdGhhdAorICogVURDX1NZU0NPTl8xLkNGR19MT0NLIGlzIHNldCBjYW4gbm93IHdvcmsuICBXZSB3b24ndCB1c2UgdGhhdAogICogY2FwYWJpbGl0eSB5ZXQgdGhvdWdoLgogICovCiBzdGF0aWMgdW5zaWduZWQgX19pbml0CkBAIC0yNTk3LDkgKzI2MjEsOSBAQAogCQluYW1lLCBhZGRyLCBlcG5fcnh0eCwgbWF4cCwgZGJ1ZiA/ICJ4MiIgOiAiIiwgYnVmKTsKIAogCWlmIChhZGRyICYgVVNCX0RJUl9JTikKLQkJVURDX0VQX1RYX1JFRyhhZGRyICYgMHhmKSA9IGVwbl9yeHR4OworCQlvbWFwX3dyaXRldyhlcG5fcnh0eCwgVURDX0VQX1RYKGFkZHIgJiAweGYpKTsKIAllbHNlCi0JCVVEQ19FUF9SWF9SRUcoYWRkcikgPSBlcG5fcnh0eDsKKwkJb21hcF93cml0ZXcoZXBuX3J4dHgsIFVEQ19FUF9SWChhZGRyKSk7CiAKIAkvKiBuZXh0IGVuZHBvaW50J3MgYnVmZmVyIHN0YXJ0cyBhZnRlciB0aGlzIG9uZSdzICovCiAJYnVmICs9IG1heHA7CkBAIC0yNjM4LDE1ICsyNjYyLDE1IEBACiAJdW5zaWduZWQJdG1wLCBidWY7CiAKIAkvKiBhYm9saXNoIGFueSBwcmV2aW91cyBoYXJkd2FyZSBzdGF0ZSAqLwotCVVEQ19TWVNDT04xX1JFRyA9IDA7Ci0JVURDX0lSUV9FTl9SRUcgPSAwOwotCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19JUlFfU1JDX01BU0s7Ci0JVURDX0RNQV9JUlFfRU5fUkVHID0gMDsKLQlVRENfUlhETUFfQ0ZHX1JFRyA9IDA7Ci0JVURDX1RYRE1BX0NGR19SRUcgPSAwOworCW9tYXBfd3JpdGV3KDAsIFVEQ19TWVNDT04xKTsKKwlvbWFwX3dyaXRldygwLCBVRENfSVJRX0VOKTsKKwlvbWFwX3dyaXRldyhVRENfSVJRX1NSQ19NQVNLLCBVRENfSVJRX1NSQyk7CisJb21hcF93cml0ZXcoMCwgVURDX0RNQV9JUlFfRU4pOworCW9tYXBfd3JpdGV3KDAsIFVEQ19SWERNQV9DRkcpOworCW9tYXBfd3JpdGV3KDAsIFVEQ19UWERNQV9DRkcpOwogCiAJLyogVURDX1BVTExVUF9FTiBnYXRlcyB0aGUgY2hpcCBjbG9jayAqLwotCS8vIE9UR19TWVNDT05fMV9SRUcgfD0gREVWX0lETEVfRU47CisJLy8gT1RHX1NZU0NPTl8xIHw9IERFVl9JRExFX0VOOwogCiAJdWRjID0ga3phbGxvYyhzaXplb2YoKnVkYyksIEdGUF9LRVJORUwpOwogCWlmICghdWRjKQpAQCAtMjY3Nyw4ICsyNzAxLDggQEAKIAogCS8qIGluaXRpYWxseSBkaXNhYmxlIGFsbCBub24tZXAwIGVuZHBvaW50cyAqLwogCWZvciAodG1wID0gMTsgdG1wIDwgMTU7IHRtcCsrKSB7Ci0JCVVEQ19FUF9SWF9SRUcodG1wKSA9IDA7Ci0JCVVEQ19FUF9UWF9SRUcodG1wKSA9IDA7CisJCW9tYXBfd3JpdGV3KDAsIFVEQ19FUF9SWCh0bXApKTsKKwkJb21hcF93cml0ZXcoMCwgVURDX0VQX1RYKHRtcCkpOwogCX0KIAogI2RlZmluZSBPTUFQX0JVTEtfRVAobmFtZSxhZGRyKSBcCkBAIC0yNzYzLDcgKzI3ODcsNyBAQAogCQlFUlIoInVuc3VwcG9ydGVkIGZpZm9fbW9kZSAjJWRcbiIsIGZpZm9fbW9kZSk7CiAJCXJldHVybiAtRU5PREVWOwogCX0KLQlVRENfU1lTQ09OMV9SRUcgPSBVRENfQ0ZHX0xPQ0t8VURDX1NFTEZfUFdSOworCW9tYXBfd3JpdGV3KFVEQ19DRkdfTE9DS3xVRENfU0VMRl9QV1IsIFVEQ19TWVNDT04xKTsKIAlJTkZPKCJmaWZvIG1vZGUgJWQsICVkIGJ5dGVzIG5vdCB1c2VkXG4iLCBmaWZvX21vZGUsIDIwNDggLSBidWYpOwogCXJldHVybiAwOwogfQpAQCAtMjgwNyw3ICsyODMxLDcgQEAKIAl9CiAKIAlJTkZPKCJPTUFQIFVEQyByZXYgJWQuJWQlc1xuIiwKLQkJVURDX1JFVl9SRUcgPj4gNCwgVURDX1JFVl9SRUcgJiAweGYsCisJCW9tYXBfcmVhZHcoVURDX1JFVikgPj4gNCwgb21hcF9yZWFkdyhVRENfUkVWKSAmIDB4ZiwKIAkJY29uZmlnLT5vdGcgPyAiLCBNaW5pLUFCIiA6ICIiKTsKIAogCS8qIHVzZSB0aGUgbW9kZSBnaXZlbiB0byB1cyBieSBib2FyZCBpbml0IGNvZGUgKi8KQEAgLTI4MjIsMTIgKzI4NDYsMTIgQEAKIAkJCSAqIGtub3cgd2hlbiB0byB0dXJuIFBVTExVUF9FTiBvbi9vZmY7IGFuZCB0aGF0CiAJCQkgKiBtZWFucyB3ZSBhbHdheXMgIm5lZWQiIHRoZSA0OE1IeiBjbG9jay4KIAkJCSAqLwotCQkJdTMyIHRtcCA9IEZVTkNfTVVYX0NUUkxfMF9SRUc7Ci0KLQkJCUZVTkNfTVVYX0NUUkxfMF9SRUcgJj0gflZCVVNfQ1RSTF8xNTEwOworCQkJdTMyIHRtcCA9IG9tYXBfcmVhZGwoRlVOQ19NVVhfQ1RSTF8wKTsKKwkJCXRtcCAmPSB+VkJVU19DVFJMXzE1MTA7CisJCQlvbWFwX3dyaXRlbCh0bXAsIEZVTkNfTVVYX0NUUkxfMCk7CiAJCQl0bXAgfD0gVkJVU19NT0RFXzE1MTA7CiAJCQl0bXAgJj0gflZCVVNfQ1RSTF8xNTEwOwotCQkJRlVOQ19NVVhfQ1RSTF8wX1JFRyA9IHRtcDsKKwkJCW9tYXBfd3JpdGVsKHRtcCwgRlVOQ19NVVhfQ1RSTF8wKTsKIAkJfQogCX0gZWxzZSB7CiAJCS8qIFRoZSB0cmFuc2NlaXZlciBtYXkgcGFja2FnZSBzb21lIEdQSU8gbG9naWMgb3IgaGFuZGxlCkBAIC0yOTA3LDcgKzI5MzEsNyBAQAogI2VuZGlmCiAKIAkvKiBzdGFydGluZyB3aXRoIG9tYXAxNzEwIGVzMi4wLCBjbGVhciB0b2dnbGUgaXMgYSBzZXBhcmF0ZSBiaXQgKi8KLQlpZiAoVURDX1JFVl9SRUcgPj0gMHg2MSkKKwlpZiAob21hcF9yZWFkdyhVRENfUkVWKSA+PSAweDYxKQogCQl1ZGMtPmNscl9oYWx0ID0gVURDX1JFU0VUX0VQIHwgVURDX0NMUkRBVEFfVE9HR0xFOwogCWVsc2UKIAkJdWRjLT5jbHJfaGFsdCA9IFVEQ19SRVNFVF9FUDsKQEAgLTMwMDUsNyArMzAyOSw3IEBACiAJCXB1dF9kZXZpY2UodWRjLT50cmFuc2NlaXZlci0+ZGV2KTsKIAkJdWRjLT50cmFuc2NlaXZlciA9IE5VTEw7CiAJfQotCVVEQ19TWVNDT04xX1JFRyA9IDA7CisJb21hcF93cml0ZXcoMCwgVURDX1NZU0NPTjEpOwogCiAJcmVtb3ZlX3Byb2NfZmlsZSgpOwogCkBAIC0zMDM2LDcgKzMwNjAsNyBAQAogICoKICAqIFJFVklTSVQgd2Ugc2hvdWxkIHByb2JhYmx5IHJlamVjdCBzdXNwZW5kIHJlcXVlc3RzIHdoZW4gdGhlcmUncyBhIGhvc3QKICAqIHNlc3Npb24gYWN0aXZlLCByYXRoZXIgdGhhbiBkaXNjb25uZWN0aW5nLCBhdCBsZWFzdCBvbiBib2FyZHMgdGhhdCBjYW4KLSAqIHJlcG9ydCBWQlVTIGlycXMgKFVEQ19ERVZTVEFUX1JFRy5VRENfQVRUKS4gIEFuZCBpbiBhbnkgY2FzZSwgd2UgbmVlZCB0bworICogcmVwb3J0IFZCVVMgaXJxcyAoVURDX0RFVlNUQVQuVURDX0FUVCkuICBBbmQgaW4gYW55IGNhc2UsIHdlIG5lZWQgdG8KICAqIG1ha2UgaG9zdCByZXN1bWVzIGFuZCBWQlVTIGRldGVjdGlvbiB0cmlnZ2VyIE9NQVAgd2FrZXVwIGV2ZW50czsgdGhhdAogICogbWF5IGludm9sdmUgdGFsa2luZyB0byBhbiBleHRlcm5hbCB0cmFuc2NlaXZlciAoZS5nLiBpc3AxMzAxKS4KICAqLwpAQCAtMzA0NSw3ICszMDY5LDcgQEAKIHsKIAl1MzIJZGV2c3RhdDsKIAotCWRldnN0YXQgPSBVRENfREVWU1RBVF9SRUc7CisJZGV2c3RhdCA9IG9tYXBfcmVhZHcoVURDX0RFVlNUQVQpOwogCiAJLyogd2UncmUgcmVxdWVzdGluZyA0OCBNSHogY2xvY2sgaWYgdGhlIHB1bGx1cCBpcyBlbmFibGVkCiAJICogKD09IHdlJ3JlIGF0dGFjaGVkIHRvIHRoZSBob3N0KSBhbmQgd2UncmUgbm90IHN1c3BlbmRlZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9vbWFwX3VkYy5oIGIvZHJpdmVycy91c2IvZ2FkZ2V0L29tYXBfdWRjLmgKaW5kZXggYzZiOWNiYy4uODUyMmJiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L29tYXBfdWRjLmgKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L29tYXBfdWRjLmgKQEAgLTgsMjMgKzgsMjIgQEAKIC8qCiAgKiBVU0IgZGV2aWNlL2VuZHBvaW50IG1hbmFnZW1lbnQgcmVnaXN0ZXJzCiAgKi8KLSNkZWZpbmUgVURDX1JFRyhvZmZzZXQpICAgICAgICAgICAgICBfX1JFRzE2KFVEQ19CQVNFICsgKG9mZnNldCkpCiAKLSNkZWZpbmUJVURDX1JFVl9SRUcJCQlVRENfUkVHKDB4MCkJLyogUmV2aXNpb24gKi8KLSNkZWZpbmUJVURDX0VQX05VTV9SRUcJCQlVRENfUkVHKDB4NCkJLyogV2hpY2ggZW5kcG9pbnQgKi8KKyNkZWZpbmUJVURDX1JFVgkJCQkoVURDX0JBU0UgKyAweDApCS8qIFJldmlzaW9uICovCisjZGVmaW5lCVVEQ19FUF9OVU0JCQkoVURDX0JBU0UgKyAweDQpCS8qIFdoaWNoIGVuZHBvaW50ICovCiAjCWRlZmluZQlVRENfU0VUVVBfU0VMCQkoMSA8PCA2KQogIwlkZWZpbmUJVURDX0VQX1NFTAkJKDEgPDwgNSkKICMJZGVmaW5lCVVEQ19FUF9ESVIJCSgxIDw8IDQpCiAJLyogbG93IDQgYml0cyBmb3IgZW5kcG9pbnQgbnVtYmVyICovCi0jZGVmaW5lCVVEQ19EQVRBX1JFRwkJCVVEQ19SRUcoMHgwOCkJLyogRW5kcG9pbnQgRklGTyAqLwotI2RlZmluZQlVRENfQ1RSTF9SRUcJCQlVRENfUkVHKDB4MEMpCS8qIEVuZHBvaW50IGNvbnRyb2wgKi8KKyNkZWZpbmUJVURDX0RBVEEJCQkoVURDX0JBU0UgKyAweDA4KQkvKiBFbmRwb2ludCBGSUZPICovCisjZGVmaW5lCVVEQ19DVFJMCQkJKFVEQ19CQVNFICsgMHgwQykJLyogRW5kcG9pbnQgY29udHJvbCAqLwogIwlkZWZpbmUJVURDX0NMUl9IQUxUCQkoMSA8PCA3KQogIwlkZWZpbmUJVURDX1NFVF9IQUxUCQkoMSA8PCA2KQogIwlkZWZpbmUJVURDX0NMUkRBVEFfVE9HR0xFCSgxIDw8IDMpCiAjCWRlZmluZQlVRENfU0VUX0ZJRk9fRU4JCSgxIDw8IDIpCiAjCWRlZmluZQlVRENfQ0xSX0VQCQkoMSA8PCAxKQogIwlkZWZpbmUJVURDX1JFU0VUX0VQCQkoMSA8PCAwKQotI2RlZmluZQlVRENfU1RBVF9GTEdfUkVHCQlVRENfUkVHKDB4MTApCS8qIEVuZHBvaW50IHN0YXR1cyAqLworI2RlZmluZQlVRENfU1RBVF9GTEcJCQkoVURDX0JBU0UgKyAweDEwKQkvKiBFbmRwb2ludCBzdGF0dXMgKi8KICMJZGVmaW5lCVVEQ19OT19SWFBBQ0tFVAkJKDEgPDwgMTUpCiAjCWRlZmluZQlVRENfTUlTU19JTgkJKDEgPDwgMTQpCiAjCWRlZmluZQlVRENfREFUQV9GTFVTSAkJKDEgPDwgMTMpCkBAIC0zOCw4ICszNyw4IEBACiAjCWRlZmluZQlVRENfRklGT19FTgkJKDEgPDwgMikKICMJZGVmaW5lCVVEQ19OT05fSVNPX0ZJRk9fRU1QVFkJKDEgPDwgMSkKICMJZGVmaW5lCVVEQ19OT05fSVNPX0ZJRk9fRlVMTAkoMSA8PCAwKQotI2RlZmluZQlVRENfUlhGU1RBVF9SRUcJCQlVRENfUkVHKDB4MTQpCS8qIE9VVCBieXRlY291bnQgKi8KLSNkZWZpbmUJVURDX1NZU0NPTjFfUkVHCQkJVURDX1JFRygweDE4KQkvKiBTeXN0ZW0gY29uZmlnIDEgKi8KKyNkZWZpbmUJVURDX1JYRlNUQVQJCQkoVURDX0JBU0UgKyAweDE0KQkvKiBPVVQgYnl0ZWNvdW50ICovCisjZGVmaW5lCVVEQ19TWVNDT04xCQkJKFVEQ19CQVNFICsgMHgxOCkJLyogU3lzdGVtIGNvbmZpZyAxICovCiAjCWRlZmluZQlVRENfQ0ZHX0xPQ0sJCSgxIDw8IDgpCiAjCWRlZmluZQlVRENfREFUQV9FTkRJQU4JCSgxIDw8IDcpCiAjCWRlZmluZQlVRENfRE1BX0VORElBTgkJKDEgPDwgNikKQEAgLTQ4LDEyICs0NywxMiBAQAogIwlkZWZpbmUJVURDX1NFTEZfUFdSCQkoMSA8PCAyKQogIwlkZWZpbmUJVURDX1NPRkZfRElTCQkoMSA8PCAxKQogIwlkZWZpbmUJVURDX1BVTExVUF9FTgkJKDEgPDwgMCkKLSNkZWZpbmUJVURDX1NZU0NPTjJfUkVHCQkJVURDX1JFRygweDFDKQkvKiBTeXN0ZW0gY29uZmlnIDIgKi8KKyNkZWZpbmUJVURDX1NZU0NPTjIJCQkoVURDX0JBU0UgKyAweDFDKQkvKiBTeXN0ZW0gY29uZmlnIDIgKi8KICMJZGVmaW5lCVVEQ19STVRfV0tQCQkoMSA8PCA2KQogIwlkZWZpbmUJVURDX1NUQUxMX0NNRAkJKDEgPDwgNSkKICMJZGVmaW5lCVVEQ19ERVZfQ0ZHCQkoMSA8PCAzKQogIwlkZWZpbmUJVURDX0NMUl9DRkcJCSgxIDw8IDIpCi0jZGVmaW5lCVVEQ19ERVZTVEFUX1JFRwkJCVVEQ19SRUcoMHgyMCkJLyogRGV2aWNlIHN0YXR1cyAqLworI2RlZmluZQlVRENfREVWU1RBVAkJCShVRENfQkFTRSArIDB4MjApCS8qIERldmljZSBzdGF0dXMgKi8KICMJZGVmaW5lCVVEQ19CX0hOUF9FTkFCTEUJKDEgPDwgOSkKICMJZGVmaW5lCVVEQ19BX0hOUF9TVVBQT1JUCSgxIDw8IDgpCiAjCWRlZmluZQlVRENfQV9BTFRfSE5QX1NVUFBPUlQJKDEgPDwgNykKQEAgLTY0LDI2ICs2MywyNiBAQAogIwlkZWZpbmUJVURDX0FERAkJCSgxIDw8IDIpCiAjCWRlZmluZQlVRENfREVGCQkJKDEgPDwgMSkKICMJZGVmaW5lCVVEQ19BVFQJCQkoMSA8PCAwKQotI2RlZmluZQlVRENfU09GX1JFRwkJCVVEQ19SRUcoMHgyNCkJLyogU3RhcnQgb2YgZnJhbWUgKi8KKyNkZWZpbmUJVURDX1NPRgkJCQkoVURDX0JBU0UgKyAweDI0KQkvKiBTdGFydCBvZiBmcmFtZSAqLwogIwlkZWZpbmUJVURDX0ZUX0xPQ0sJCSgxIDw8IDEyKQogIwlkZWZpbmUJVURDX1RTX09LCQkoMSA8PCAxMSkKICMJZGVmaW5lCVVEQ19UUwkJCTB4MDNmZgotI2RlZmluZQlVRENfSVJRX0VOX1JFRwkJCVVEQ19SRUcoMHgyOCkJLyogSW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZQlVRENfSVJRX0VOCQkJKFVEQ19CQVNFICsgMHgyOCkJLyogSW50ZXJydXB0IGVuYWJsZSAqLwogIwlkZWZpbmUJVURDX1NPRl9JRQkJKDEgPDwgNykKICMJZGVmaW5lCVVEQ19FUE5fUlhfSUUJCSgxIDw8IDUpCiAjCWRlZmluZQlVRENfRVBOX1RYX0lFCQkoMSA8PCA0KQogIwlkZWZpbmUJVURDX0RTX0NIR19JRQkJKDEgPDwgMykKICMJZGVmaW5lCVVEQ19FUDBfSUUJCSgxIDw8IDApCi0jZGVmaW5lCVVEQ19ETUFfSVJRX0VOX1JFRwkJVURDX1JFRygweDJDKQkvKiBETUEgaXJxIGVuYWJsZSAqLworI2RlZmluZQlVRENfRE1BX0lSUV9FTgkJCShVRENfQkFTRSArIDB4MkMpCS8qIERNQSBpcnEgZW5hYmxlICovCiAJLyogcngvdHggZG1hIGNoYW5uZWxzIG51bWJlcmVkIDEtMyBub3QgMC0yICovCiAjCWRlZmluZQlVRENfVFhfRE9ORV9JRShuKQkoMSA8PCAoNCAqIChuKSAtIDIpKQogIwlkZWZpbmUJVURDX1JYX0NOVF9JRShuKQkoMSA8PCAoNCAqIChuKSAtIDMpKQogIwlkZWZpbmUJVURDX1JYX0VPVF9JRShuKQkoMSA8PCAoNCAqIChuKSAtIDQpKQotI2RlZmluZQlVRENfSVJRX1NSQ19SRUcJCQlVRENfUkVHKDB4MzApCS8qIEludGVycnVwdCBzb3VyY2UgKi8KKyNkZWZpbmUJVURDX0lSUV9TUkMJCQkoVURDX0JBU0UgKyAweDMwKQkvKiBJbnRlcnJ1cHQgc291cmNlICovCiAjCWRlZmluZQlVRENfVFhOX0RPTkUJCSgxIDw8IDEwKQogIwlkZWZpbmUJVURDX1JYTl9DTlQJCSgxIDw8IDkpCiAjCWRlZmluZQlVRENfUlhOX0VPVAkJKDEgPDwgOCkKLSMJZGVmaW5lCVVEQ19TT0YJCQkoMSA8PCA3KQorIwlkZWZpbmUJVURDX0lSUV9TT0YJCSgxIDw8IDcpCiAjCWRlZmluZQlVRENfRVBOX1JYCQkoMSA8PCA1KQogIwlkZWZpbmUJVURDX0VQTl9UWAkJKDEgPDwgNCkKICMJZGVmaW5lCVVEQ19EU19DSEcJCSgxIDw8IDMpCkBAIC05MSw0MSArOTAsNDEgQEAKICMJZGVmaW5lCVVEQ19FUDBfUlgJCSgxIDw8IDEpCiAjCWRlZmluZQlVRENfRVAwX1RYCQkoMSA8PCAwKQogIwlkZWZpbmUJVURDX0lSUV9TUkNfTUFTSwkweDdiZgotI2RlZmluZQlVRENfRVBOX1NUQVRfUkVHCQlVRENfUkVHKDB4MzQpCS8qIEVQIGlycSBzdGF0dXMgKi8KLSNkZWZpbmUJVURDX0RNQU5fU1RBVF9SRUcJCVVEQ19SRUcoMHgzOCkJLyogRE1BIGlycSBzdGF0dXMgKi8KKyNkZWZpbmUJVURDX0VQTl9TVEFUCQkJKFVEQ19CQVNFICsgMHgzNCkJLyogRVAgaXJxIHN0YXR1cyAqLworI2RlZmluZQlVRENfRE1BTl9TVEFUCQkJKFVEQ19CQVNFICsgMHgzOCkJLyogRE1BIGlycSBzdGF0dXMgKi8KICMJZGVmaW5lCVVEQ19ETUFfUlhfU0IJCSgxIDw8IDEyKQogIwlkZWZpbmUJVURDX0RNQV9SWF9TUkMoeCkJKCgoeCk+PjgpICYgMHhmKQogIwlkZWZpbmUJVURDX0RNQV9UWF9TUkMoeCkJKCgoeCk+PjApICYgMHhmKQogCiAKIC8qIERNQSBjb25maWd1cmF0aW9uIHJlZ2lzdGVyczogIHVwIHRvIHRocmVlIGNoYW5uZWxzIGluIGVhY2ggZGlyZWN0aW9uLiAgKi8KLSNkZWZpbmUJVURDX1JYRE1BX0NGR19SRUcJCVVEQ19SRUcoMHg0MCkJLyogMyBlcHMgZm9yIFJYIERNQSAqLworI2RlZmluZQlVRENfUlhETUFfQ0ZHCQkJKFVEQ19CQVNFICsgMHg0MCkJLyogMyBlcHMgZm9yIFJYIERNQSAqLwogIwlkZWZpbmUJVURDX0RNQV9SRVEJCSgxIDw8IDEyKQotI2RlZmluZQlVRENfVFhETUFfQ0ZHX1JFRwkJVURDX1JFRygweDQ0KQkvKiAzIGVwcyBmb3IgVFggRE1BICovCi0jZGVmaW5lCVVEQ19EQVRBX0RNQV9SRUcJCVVEQ19SRUcoMHg0OCkJLyogcngvdHggZmlmbyBhZGRyICovCisjZGVmaW5lCVVEQ19UWERNQV9DRkcJCQkoVURDX0JBU0UgKyAweDQ0KQkvKiAzIGVwcyBmb3IgVFggRE1BICovCisjZGVmaW5lCVVEQ19EQVRBX0RNQQkJCShVRENfQkFTRSArIDB4NDgpCS8qIHJ4L3R4IGZpZm8gYWRkciAqLwogCiAvKiByeC90eCBkbWEgY29udHJvbCwgbnVtYmVyaW5nIGNoYW5uZWxzIDEtMyBub3QgMC0yICovCi0jZGVmaW5lCVVEQ19UWERNQV9SRUcoY2hhbikJCVVEQ19SRUcoMHg1MCAtIDQgKyA0ICogKGNoYW4pKQorI2RlZmluZQlVRENfVFhETUEoY2hhbikJCQkoVURDX0JBU0UgKyAweDUwIC0gNCArIDQgKiAoY2hhbikpCiAjCWRlZmluZSBVRENfVFhOX0VPVAkJKDEgPDwgMTUpCS8qIGJ5dGVzIHZzIHBhY2tldHMgKi8KICMJZGVmaW5lIFVEQ19UWE5fU1RBUlQJCSgxIDw8IDE0KQkvKiBzdGFydCB0cmFuc2ZlciAqLwogIwlkZWZpbmUgVURDX1RYTl9UU0MJCTB4MDNmZgkJLyogdW5pdHMgaW4geGZlciAqLwotI2RlZmluZQlVRENfUlhETUFfUkVHKGNoYW4pCQlVRENfUkVHKDB4NjAgLSA0ICsgNCAqIChjaGFuKSkKKyNkZWZpbmUJVURDX1JYRE1BKGNoYW4pCQkJKFVEQ19CQVNFICsgMHg2MCAtIDQgKyA0ICogKGNoYW4pKQogIwlkZWZpbmUgVURDX1JYTl9TVE9QCQkoMSA8PCAxNSkJLyogZW5hYmxlIEVPVCBpcnEgKi8KICMJZGVmaW5lIFVEQ19SWE5fVEMJCTB4MDBmZgkJLyogcGFja2V0cyBpbiB4ZmVyICovCiAKIAogLyoKICAqIEVuZHBvaW50IGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzICh1c2VkIGJlZm9yZSBDRkdfTE9DSyBpcyBzZXQpCi0gKiBVRENfRVBfVFhfUkVHKDApIGlzIHVudXNlZAorICogVURDX0VQX1RYKDApIGlzIHVudXNlZAogICovCi0jZGVmaW5lCVVEQ19FUF9SWF9SRUcoZW5kcG9pbnQpCQlVRENfUkVHKDB4ODAgKyAoZW5kcG9pbnQpKjQpCisjZGVmaW5lCVVEQ19FUF9SWChlbmRwb2ludCkJCShVRENfQkFTRSArIDB4ODAgKyAoZW5kcG9pbnQpKjQpCiAjCWRlZmluZQlVRENfRVBOX1JYX1ZBTElECSgxIDw8IDE1KQogIwlkZWZpbmUJVURDX0VQTl9SWF9EQgkJKDEgPDwgMTQpCiAJLyogYnVmZmVyIHNpemUgaW4gYml0cyAxMywgMTIgKi8KICMJZGVmaW5lCVVEQ19FUE5fUlhfSVNPCQkoMSA8PCAxMSkKIAkvKiBidWZmZXIgcG9pbnRlciBpbiBsb3cgMTEgYml0cyAqLwotI2RlZmluZQlVRENfRVBfVFhfUkVHKGVuZHBvaW50KQkJVURDX1JFRygweGMwICsgKGVuZHBvaW50KSo0KQotCS8qIHNhbWUgYml0ZmllbGRzIGFzIGluIFJYX1JFRyAqLworI2RlZmluZQlVRENfRVBfVFgoZW5kcG9pbnQpCQkoVURDX0JBU0UgKyAweGMwICsgKGVuZHBvaW50KSo0KQorCS8qIHNhbWUgYml0ZmllbGRzIGFzIGluIFJYICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTE5NSwxNCArMTk0LDE0IEBACiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNkZWZpbmUJTU9EX0NPTkZfQ1RSTF8wX1JFRwlfX1JFRzMyKE1PRF9DT05GX0NUUkxfMCkKLSNkZWZpbmUJVkJVU19XMkZDXzE1MTAJCSgxIDw8IDE3KQkvKiAwIGdwaW8wLCAxIGR2ZGQyIHBpbiAqLworLyogTU9EX0NPTkZfQ1RSTF8wICovCisjZGVmaW5lIFZCVVNfVzJGQ18xNTEwCQkoMSA8PCAxNykJLyogMCBncGlvMCwgMSBkdmRkMiBwaW4gKi8KIAotI2RlZmluZQlGVU5DX01VWF9DVFJMXzBfUkVHCV9fUkVHMzIoRlVOQ19NVVhfQ1RSTF8wKQorLyogRlVOQ19NVVhfQ1RSTF8wICovCiAjZGVmaW5lCVZCVVNfQ1RSTF8xNTEwCQkoMSA8PCAxOSkJLyogMSBjb25uZWN0ZWQgKHNvZnR3YXJlKSAqLwogI2RlZmluZQlWQlVTX01PREVfMTUxMAkJKDEgPDwgMTgpCS8qIDAgaGFyZHdhcmUsIDEgc29mdHdhcmUgKi8KIAotI2RlZmluZQlITUNfMTUxMAkoKE1PRF9DT05GX0NUUkxfMF9SRUcgPj4gMSkgJiAweDNmKQotI2RlZmluZQlITUNfMTYxMAkoT1RHX1NZU0NPTl8yX1JFRyAmIDB4M2YpCisjZGVmaW5lCUhNQ18xNTEwCSgob21hcF9yZWFkbChNT0RfQ09ORl9DVFJMXzApID4+IDEpICYgMHgzZikKKyNkZWZpbmUJSE1DXzE2MTAJKG9tYXBfcmVhZGwoT1RHX1NZU0NPTl8yKSAmIDB4M2YpCiAjZGVmaW5lCUhNQwkJKGNwdV9pc19vbWFwMTV4eCgpID8gSE1DXzE1MTAgOiBITUNfMTYxMCkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L3ByaW50ZXIuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9wcmludGVyLmMKaW5kZXggNzZiZTc1ZS4uZWM4ZjJlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L3ByaW50ZXIuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHJpbnRlci5jCkBAIC00NjIsNiArNDYyLDcgQEAKIAl1bnNpZ25lZCBsb25nCQlmbGFnczsKIAlpbnQJCQlyZXQgPSAtRUJVU1k7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWRldiA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LCBzdHJ1Y3QgcHJpbnRlcl9kZXYsIHByaW50ZXJfY2Rldik7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5sb2NrLCBmbGFncyk7CkBAIC00NzcsNyArNDc4LDcgQEAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmxvY2ssIGZsYWdzKTsKIAogCURCRyhkZXYsICJwcmludGVyX29wZW4gcmV0dXJuZWQgJXhcbiIsIHJldCk7Ci0KKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI1eF91ZGMuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyNXhfdWRjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMxZGNlYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyNXhfdWRjLmMKQEAgLTAsMCArMSwyMzg4IEBACisvKgorICogSW50ZWwgUFhBMjV4IGFuZCBJWFA0eHggb24tY2hpcCBmdWxsIHNwZWVkIFVTQiBkZXZpY2UgY29udHJvbGxlcnMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIgSW50cmluc3ljLCBJbmMuIChGcmFuayBCZWNrZXIpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgUm9iZXJ0IFNjaHdlYmVsLCBQZW5ndXRyb25peAorICogQ29weXJpZ2h0IChDKSAyMDAzIEJlbmVkaWt0IFNwcmFuZ2VyLCBQZW5ndXRyb25peAorICogQ29weXJpZ2h0IChDKSAyMDAzIERhdmlkIEJyb3duZWxsCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgSm9zaHVhIFdpc2UKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKgorICovCisKKy8qICNkZWZpbmUgVkVSQk9TRV9ERUJVRyAqLworCisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKworI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKyNpbmNsdWRlIDxhc20vZG1hLmg+CisjaW5jbHVkZSA8YXNtL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CisKKyNpbmNsdWRlIDxsaW51eC91c2IvY2g5Lmg+CisjaW5jbHVkZSA8bGludXgvdXNiL2dhZGdldC5oPgorCisvKgorICogVGhpcyBkcml2ZXIgaXMgUFhBMjV4IG9ubHkuICBHcmFiIHRoZSByaWdodCByZWdpc3RlciBkZWZpbml0aW9ucy4KKyAqLworI2lmZGVmIENPTkZJR19BUkNIX1BYQQorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTI1eC11ZGMuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8YXNtL21hY2gvdWRjX3B4YTJ4eC5oPgorCisKKy8qCisgKiBUaGlzIGRyaXZlciBoYW5kbGVzIHRoZSBVU0IgRGV2aWNlIENvbnRyb2xsZXIgKFVEQykgaW4gSW50ZWwncyBQWEEgMjV4CisgKiBzZXJpZXMgcHJvY2Vzc29ycy4gIFRoZSBVREMgZm9yIHRoZSBJWFAgNHh4IHNlcmllcyBpcyB2ZXJ5IHNpbWlsYXIuCisgKiBUaGVyZSBhcmUgZmlmdGVlbiBlbmRwb2ludHMsIGluIGFkZGl0aW9uIHRvIGVwMC4KKyAqCisgKiBTdWNoIGNvbnRyb2xsZXIgZHJpdmVycyB3b3JrIHdpdGggYSBnYWRnZXQgZHJpdmVyLiAgVGhlIGdhZGdldCBkcml2ZXIKKyAqIHJldHVybnMgZGVzY3JpcHRvcnMsIGltcGxlbWVudHMgY29uZmlndXJhdGlvbiBhbmQgZGF0YSBwcm90b2NvbHMgdXNlZAorICogYnkgdGhlIGhvc3QgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIGRldmljZSwgYW5kIGFsbG9jYXRlcyBlbmRwb2ludHMgdG8KKyAqIHRoZSBkaWZmZXJlbnQgcHJvdG9jb2wgaW50ZXJmYWNlcy4gIFRoZSBjb250cm9sbGVyIGRyaXZlciB2aXJ0dWFsaXplcworICogdXNiIGhhcmR3YXJlIHNvIHRoYXQgdGhlIGdhZGdldCBkcml2ZXJzIHdpbGwgYmUgbW9yZSBwb3J0YWJsZS4KKyAqCisgKiBUaGlzIFVEQyBoYXJkd2FyZSB3YW50cyB0byBpbXBsZW1lbnQgYSBiaXQgdG9vIG11Y2ggVVNCIHByb3RvY29sLCBzbworICogaXQgY29uc3RyYWlucyB0aGUgc29ydHMgb2YgVVNCIGNvbmZpZ3VyYXRpb24gY2hhbmdlIGV2ZW50cyB0aGF0IHdvcmsuCisgKiBUaGUgZXJyYXRhIGZvciB0aGVzZSBjaGlwcyBhcmUgbWlzbGVhZGluZzsgc29tZSAiZml4ZWQiIGJ1Z3MgZnJvbQorICogcHhhMjUwIGEwL2ExIGIwL2IxL2IyIHN1cmUgYWN0IGxpa2UgdGhleSdyZSBzdGlsbCB0aGVyZS4KKyAqCisgKiBOb3RlIHRoYXQgdGhlIFVEQyBoYXJkd2FyZSBzdXBwb3J0cyBETUEgKGV4Y2VwdCBvbiBJWFApIGJ1dCB0aGF0J3MKKyAqIG5vdCB1c2VkIGhlcmUuICBJTi1ETUEgKHRvIGhvc3QpIGlzIHNpbXBsZSBlbm91Z2gsIHdoZW4gdGhlIGRhdGEgaXMKKyAqIHN1aXRhYmx5IGFsaWduZWQgKDE2IGJ5dGVzKSAuLi4gdGhlIG5ldHdvcmsgc3RhY2sgZG9lc24ndCBkbyB0aGF0LAorICogb3RoZXIgc29mdHdhcmUgY2FuLiAgT1VULURNQSBpcyBidWdneSBpbiBtb3N0IGNoaXAgdmVyc2lvbnMsIGFzIHdlbGwKKyAqIGFzIHBvb3JseSBkZXNpZ25lZCAoZGF0YSB0b2dnbGUgbm90IGF1dG9tYXRpYykuICBTbyB0aGlzIGRyaXZlciB3b24ndAorICogYm90aGVyIHVzaW5nIERNQS4gIChNb3N0bHktd29ya2luZyBJTi1ETUEgc3VwcG9ydCB3YXMgYXZhaWxhYmxlIGluCisgKiBrZXJuZWxzIGJlZm9yZSAyLjYuMjMsIGJ1dCB3YXMgbmV2ZXIgZW5hYmxlZCBvciB3ZWxsIHRlc3RlZC4pCisgKi8KKworI2RlZmluZQlEUklWRVJfVkVSU0lPTgkiMzAtSnVuZS0yMDA3IgorI2RlZmluZQlEUklWRVJfREVTQwkiUFhBIDI1eCBVU0IgRGV2aWNlIENvbnRyb2xsZXIgZHJpdmVyIgorCisKK3N0YXRpYyBjb25zdCBjaGFyIGRyaXZlcl9uYW1lIFtdID0gInB4YTI1eF91ZGMiOworCitzdGF0aWMgY29uc3QgY2hhciBlcDBuYW1lIFtdID0gImVwMCI7CisKKworI2lmZGVmIENPTkZJR19BUkNIX0lYUDRYWAorCisvKiBjcHUtc3BlY2lmaWMgcmVnaXN0ZXIgYWRkcmVzc2VzIGFyZSBjb21waWxlZCBpbiB0byB0aGlzIGNvZGUgKi8KKyNpZmRlZiBDT05GSUdfQVJDSF9QWEEKKyNlcnJvciAiQ2FuJ3QgY29uZmlndXJlIGJvdGggSVhQIGFuZCBQWEEiCisjZW5kaWYKKworLyogSVhQIGRvZXNuJ3QgeWV0IHN1cHBvcnQgPGxpbnV4L2Nsay5oPiAqLworI2RlZmluZSBjbGtfZ2V0KGRldixuYW1lKQlOVUxMCisjZGVmaW5lIGNsa19lbmFibGUoY2xrKQkJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBjbGtfZGlzYWJsZShjbGspCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgY2xrX3B1dChjbGspCQlkbyB7IH0gd2hpbGUgKDApCisKKyNlbmRpZgorCisjaW5jbHVkZSAicHhhMjV4X3VkYy5oIgorCisKKyNpZmRlZglDT05GSUdfVVNCX1BYQTI1WF9TTUFMTAorI2RlZmluZSBTSVpFX1NUUgkiIChzbWFsbCkiCisjZWxzZQorI2RlZmluZSBTSVpFX1NUUgkiIgorI2VuZGlmCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJZW5kcG9pbnQgcmVsYXRlZCBwYXJ0cyBvZiB0aGUgYXBpIHRvIHRoZSB1c2IgY29udHJvbGxlciBoYXJkd2FyZSwKKyAqCXVzZWQgYnkgZ2FkZ2V0IGRyaXZlcjsgYW5kIHRoZSBpbm5lciB0YWxrZXItdG8taGFyZHdhcmUgY29yZS4KKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKK3N0YXRpYyB2b2lkIHB4YTI1eF9lcF9maWZvX2ZsdXNoIChzdHJ1Y3QgdXNiX2VwICplcCk7CitzdGF0aWMgdm9pZCBudWtlIChzdHJ1Y3QgcHhhMjV4X2VwICosIGludCBzdGF0dXMpOworCisvKiBvbmUgR1BJTyBzaG91bGQgYmUgdXNlZCB0byBkZXRlY3QgVkJVUyBmcm9tIHRoZSBob3N0ICovCitzdGF0aWMgaW50IGlzX3ZidXNfcHJlc2VudCh2b2lkKQoreworCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2ggPSB0aGVfY29udHJvbGxlci0+bWFjaDsKKworCWlmIChtYWNoLT5ncGlvX3ZidXMpIHsKKwkJaW50IHZhbHVlID0gZ3Bpb19nZXRfdmFsdWUobWFjaC0+Z3Bpb192YnVzKTsKKwkJcmV0dXJuIG1hY2gtPmdwaW9fdmJ1c19pbnZlcnRlZCA/ICF2YWx1ZSA6IHZhbHVlOworCX0KKwlpZiAobWFjaC0+dWRjX2lzX2Nvbm5lY3RlZCkKKwkJcmV0dXJuIG1hY2gtPnVkY19pc19jb25uZWN0ZWQoKTsKKwlyZXR1cm4gMTsKK30KKworLyogb25lIEdQSU8gc2hvdWxkIGNvbnRyb2wgYSBEKyBwdWxsdXAsIHNvIGhvc3Qgc2VlcyB0aGlzIGRldmljZSAob3Igbm90KSAqLworc3RhdGljIHZvaWQgcHVsbHVwX29mZih2b2lkKQoreworCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2ggPSB0aGVfY29udHJvbGxlci0+bWFjaDsKKworCWlmIChtYWNoLT5ncGlvX3B1bGx1cCkKKwkJZ3Bpb19zZXRfdmFsdWUobWFjaC0+Z3Bpb19wdWxsdXAsIDApOworCWVsc2UgaWYgKG1hY2gtPnVkY19jb21tYW5kKQorCQltYWNoLT51ZGNfY29tbWFuZChQWEEyWFhfVURDX0NNRF9ESVNDT05ORUNUKTsKK30KKworc3RhdGljIHZvaWQgcHVsbHVwX29uKHZvaWQpCit7CisJc3RydWN0IHB4YTJ4eF91ZGNfbWFjaF9pbmZvCQkqbWFjaCA9IHRoZV9jb250cm9sbGVyLT5tYWNoOworCisJaWYgKG1hY2gtPmdwaW9fcHVsbHVwKQorCQlncGlvX3NldF92YWx1ZShtYWNoLT5ncGlvX3B1bGx1cCwgMSk7CisJZWxzZSBpZiAobWFjaC0+dWRjX2NvbW1hbmQpCisJCW1hY2gtPnVkY19jb21tYW5kKFBYQTJYWF9VRENfQ01EX0NPTk5FQ1QpOworfQorCitzdGF0aWMgdm9pZCBwaW9faXJxX2VuYWJsZShpbnQgYkVuZHBvaW50QWRkcmVzcykKK3sKKyAgICAgICAgYkVuZHBvaW50QWRkcmVzcyAmPSAweGY7CisgICAgICAgIGlmIChiRW5kcG9pbnRBZGRyZXNzIDwgOCkKKyAgICAgICAgICAgICAgICBVSUNSMCAmPSB+KDEgPDwgYkVuZHBvaW50QWRkcmVzcyk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJFbmRwb2ludEFkZHJlc3MgLT0gODsKKyAgICAgICAgICAgICAgICBVSUNSMSAmPSB+KDEgPDwgYkVuZHBvaW50QWRkcmVzcyk7CisJfQorfQorCitzdGF0aWMgdm9pZCBwaW9faXJxX2Rpc2FibGUoaW50IGJFbmRwb2ludEFkZHJlc3MpCit7CisgICAgICAgIGJFbmRwb2ludEFkZHJlc3MgJj0gMHhmOworICAgICAgICBpZiAoYkVuZHBvaW50QWRkcmVzcyA8IDgpCisgICAgICAgICAgICAgICAgVUlDUjAgfD0gMSA8PCBiRW5kcG9pbnRBZGRyZXNzOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBiRW5kcG9pbnRBZGRyZXNzIC09IDg7CisgICAgICAgICAgICAgICAgVUlDUjEgfD0gMSA8PCBiRW5kcG9pbnRBZGRyZXNzOworICAgICAgICB9Cit9CisKKy8qIFRoZSBVRENDUiByZWcgY29udGFpbnMgbWFzayBhbmQgaW50ZXJydXB0IHN0YXR1cyBiaXRzLAorICogc28gdXNpbmcgJ3w9JyBpc24ndCBzYWZlIGFzIGl0IG1heSBhY2sgYW4gaW50ZXJydXB0LgorICovCisjZGVmaW5lIFVEQ0NSX01BU0tfQklUUyAgICAgICAgIChVRENDUl9SRU0gfCBVRENDUl9TUk0gfCBVRENDUl9VREUpCisKK3N0YXRpYyBpbmxpbmUgdm9pZCB1ZGNfc2V0X21hc2tfVURDQ1IoaW50IG1hc2spCit7CisJVURDQ1IgPSAoVURDQ1IgJiBVRENDUl9NQVNLX0JJVFMpIHwgKG1hc2sgJiBVRENDUl9NQVNLX0JJVFMpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdWRjX2NsZWFyX21hc2tfVURDQ1IoaW50IG1hc2spCit7CisJVURDQ1IgPSAoVURDQ1IgJiBVRENDUl9NQVNLX0JJVFMpICYgfihtYXNrICYgVURDQ1JfTUFTS19CSVRTKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHVkY19hY2tfaW50X1VEQ0NSKGludCBtYXNrKQoreworCS8qIHVkY2NyIGNvbnRhaW5zIHRoZSBiaXRzIHdlIGRvbnQgd2FudCB0byBjaGFuZ2UgKi8KKwlfX3UzMiB1ZGNjciA9IFVEQ0NSICYgVURDQ1JfTUFTS19CSVRTOworCisJVURDQ1IgPSB1ZGNjciB8IChtYXNrICYgflVEQ0NSX01BU0tfQklUUyk7Cit9CisKKy8qCisgKiBlbmRwb2ludCBlbmFibGUvZGlzYWJsZQorICoKKyAqIHdlIG5lZWQgdG8gdmVyaWZ5IHRoZSBkZXNjcmlwdG9ycyB1c2VkIHRvIGVuYWJsZSBlbmRwb2ludHMuICBzaW5jZSBweGEyNXgKKyAqIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25zIGFyZSBmaXhlZCwgYW5kIGFyZSBwcmV0dHkgbXVjaCBhbHdheXMgZW5hYmxlZCwKKyAqIHRoZXJlJ3Mgbm90IGEgbG90IHRvIG1hbmFnZSBoZXJlLgorICoKKyAqIGJlY2F1c2UgcHhhMjV4IGNhbid0IHNlbGVjdGl2ZWx5IGluaXRpYWxpemUgYnVsayAob3IgaW50ZXJydXB0KSBlbmRwb2ludHMsCisgKiAocmVzZXR0aW5nIGVuZHBvaW50IGhhbHQgYW5kIHRvZ2dsZSksIFNFVF9JTlRFUkZBQ0UgaXMgdW51c2FibGUgZXhjZXB0CisgKiBmb3IgYSBzaW5nbGUgaW50ZXJmYWNlICh3aXRoIG9ubHkgdGhlIGRlZmF1bHQgYWx0c2V0dGluZykgYW5kIGZvciBnYWRnZXQKKyAqIGRyaXZlcnMgdGhhdCBkb24ndCBoYWx0IGVuZHBvaW50cyAobm90IHJlc2V0IGJ5IHNldF9pbnRlcmZhY2UpLiAgdGhhdCBhbHNvCisgKiBtZWFucyB0aGF0IGlmIHlvdSB1c2UgSVNPLCB5b3UgbXVzdCB2aW9sYXRlIHRoZSBVU0Igc3BlYyBydWxlIHRoYXQgYWxsCisgKiBpc28gZW5kcG9pbnRzIG11c3QgYmUgaW4gbm9uLWRlZmF1bHQgYWx0c2V0dGluZ3MuCisgKi8KK3N0YXRpYyBpbnQgcHhhMjV4X2VwX2VuYWJsZSAoc3RydWN0IHVzYl9lcCAqX2VwLAorCQljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmRlc2MpCit7CisJc3RydWN0IHB4YTI1eF9lcCAgICAgICAgKmVwOworCXN0cnVjdCBweGEyNXhfdWRjICAgICAgICpkZXY7CisKKwllcCA9IGNvbnRhaW5lcl9vZiAoX2VwLCBzdHJ1Y3QgcHhhMjV4X2VwLCBlcCk7CisJaWYgKCFfZXAgfHwgIWRlc2MgfHwgZXAtPmRlc2MgfHwgX2VwLT5uYW1lID09IGVwMG5hbWUKKwkJCXx8IGRlc2MtPmJEZXNjcmlwdG9yVHlwZSAhPSBVU0JfRFRfRU5EUE9JTlQKKwkJCXx8IGVwLT5iRW5kcG9pbnRBZGRyZXNzICE9IGRlc2MtPmJFbmRwb2ludEFkZHJlc3MKKwkJCXx8IGVwLT5maWZvX3NpemUgPCBsZTE2X3RvX2NwdQorCQkJCQkJKGRlc2MtPndNYXhQYWNrZXRTaXplKSkgeworCQlETVNHKCIlcywgYmFkIGVwIG9yIGRlc2NyaXB0b3JcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogeGZlciB0eXBlcyBtdXN0IG1hdGNoLCBleGNlcHQgdGhhdCBpbnRlcnJ1cHQgfj0gYnVsayAqLworCWlmIChlcC0+Ym1BdHRyaWJ1dGVzICE9IGRlc2MtPmJtQXR0cmlidXRlcworCQkJJiYgZXAtPmJtQXR0cmlidXRlcyAhPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLCisJCQkmJiBkZXNjLT5ibUF0dHJpYnV0ZXMgIT0gVVNCX0VORFBPSU5UX1hGRVJfSU5UKSB7CisJCURNU0coIiVzLCAlcyB0eXBlIG1pc21hdGNoXG4iLCBfX2Z1bmNfXywgX2VwLT5uYW1lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogaGFyZHdhcmUgX2NvdWxkXyBkbyBzbWFsbGVyLCBidXQgZHJpdmVyIGRvZXNuJ3QgKi8KKwlpZiAoKGRlc2MtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLCisJCQkJJiYgbGUxNl90b19jcHUgKGRlc2MtPndNYXhQYWNrZXRTaXplKQorCQkJCQkJIT0gQlVMS19GSUZPX1NJWkUpCisJCQl8fCAhZGVzYy0+d01heFBhY2tldFNpemUpIHsKKwkJRE1TRygiJXMsIGJhZCAlcyBtYXhwYWNrZXRcbiIsIF9fZnVuY19fLCBfZXAtPm5hbWUpOworCQlyZXR1cm4gLUVSQU5HRTsKKwl9CisKKwlkZXYgPSBlcC0+ZGV2OworCWlmICghZGV2LT5kcml2ZXIgfHwgZGV2LT5nYWRnZXQuc3BlZWQgPT0gVVNCX1NQRUVEX1VOS05PV04pIHsKKwkJRE1TRygiJXMsIGJvZ3VzIGRldmljZSBzdGF0ZVxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVTSFVURE9XTjsKKwl9CisKKwllcC0+ZGVzYyA9IGRlc2M7CisJZXAtPnN0b3BwZWQgPSAwOworCWVwLT5waW9faXJxcyA9IDA7CisJZXAtPmVwLm1heHBhY2tldCA9IGxlMTZfdG9fY3B1IChkZXNjLT53TWF4UGFja2V0U2l6ZSk7CisKKwkvKiBmbHVzaCBmaWZvIChtb3N0bHkgZm9yIE9VVCBidWZmZXJzKSAqLworCXB4YTI1eF9lcF9maWZvX2ZsdXNoIChfZXApOworCisJLyogLi4uIHJlc2V0IGhhbHQgc3RhdGUgdG9vLCBpZiB3ZSBjb3VsZCAuLi4gKi8KKworCURCRyhEQkdfVkVSQk9TRSwgImVuYWJsZWQgJXNcbiIsIF9lcC0+bmFtZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHhhMjV4X2VwX2Rpc2FibGUgKHN0cnVjdCB1c2JfZXAgKl9lcCkKK3sKKwlzdHJ1Y3QgcHhhMjV4X2VwCSplcDsKKwl1bnNpZ25lZCBsb25nCQlmbGFnczsKKworCWVwID0gY29udGFpbmVyX29mIChfZXAsIHN0cnVjdCBweGEyNXhfZXAsIGVwKTsKKwlpZiAoIV9lcCB8fCAhZXAtPmRlc2MpIHsKKwkJRE1TRygiJXMsICVzIG5vdCBlbmFibGVkXG4iLCBfX2Z1bmNfXywKKwkJCV9lcCA/IGVwLT5lcC5uYW1lIDogTlVMTCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwludWtlIChlcCwgLUVTSFVURE9XTik7CisKKwkvKiBmbHVzaCBmaWZvIChtb3N0bHkgZm9yIElOIGJ1ZmZlcnMpICovCisJcHhhMjV4X2VwX2ZpZm9fZmx1c2ggKF9lcCk7CisKKwllcC0+ZGVzYyA9IE5VTEw7CisJZXAtPnN0b3BwZWQgPSAxOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCURCRyhEQkdfVkVSQk9TRSwgIiVzIGRpc2FibGVkXG4iLCBfZXAtPm5hbWUpOworCXJldHVybiAwOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBmb3IgdGhlIHB4YTI1eCwgdGhlc2UgY2FuIGp1c3Qgd3JhcCBrbWFsbG9jL2tmcmVlLiAgZ2FkZ2V0IGRyaXZlcnMKKyAqIG11c3Qgc3RpbGwgcGFzcyBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQgZW5kcG9pbnRzLCBzaW5jZSBvdGhlciBjb250cm9sbGVyCisgKiBkcml2ZXJzIG1heSBjYXJlIGFib3V0IGhvdyBpdCdzIGN1cnJlbnRseSBzZXQgdXAgKGRtYSBpc3N1ZXMgZXRjKS4KKyAqLworCisvKgorICoJcHhhMjV4X2VwX2FsbG9jX3JlcXVlc3QgLSBhbGxvY2F0ZSBhIHJlcXVlc3QgZGF0YSBzdHJ1Y3R1cmUKKyAqLworc3RhdGljIHN0cnVjdCB1c2JfcmVxdWVzdCAqCitweGEyNXhfZXBfYWxsb2NfcmVxdWVzdCAoc3RydWN0IHVzYl9lcCAqX2VwLCBnZnBfdCBnZnBfZmxhZ3MpCit7CisJc3RydWN0IHB4YTI1eF9yZXF1ZXN0ICpyZXE7CisKKwlyZXEgPSBremFsbG9jKHNpemVvZigqcmVxKSwgZ2ZwX2ZsYWdzKTsKKwlpZiAoIXJlcSkKKwkJcmV0dXJuIE5VTEw7CisKKwlJTklUX0xJU1RfSEVBRCAoJnJlcS0+cXVldWUpOworCXJldHVybiAmcmVxLT5yZXE7Cit9CisKKworLyoKKyAqCXB4YTI1eF9lcF9mcmVlX3JlcXVlc3QgLSBkZWFsbG9jYXRlIGEgcmVxdWVzdCBkYXRhIHN0cnVjdHVyZQorICovCitzdGF0aWMgdm9pZAorcHhhMjV4X2VwX2ZyZWVfcmVxdWVzdCAoc3RydWN0IHVzYl9lcCAqX2VwLCBzdHJ1Y3QgdXNiX3JlcXVlc3QgKl9yZXEpCit7CisJc3RydWN0IHB4YTI1eF9yZXF1ZXN0CSpyZXE7CisKKwlyZXEgPSBjb250YWluZXJfb2YgKF9yZXEsIHN0cnVjdCBweGEyNXhfcmVxdWVzdCwgcmVxKTsKKwlXQVJOX09OICghbGlzdF9lbXB0eSAoJnJlcS0+cXVldWUpKTsKKwlrZnJlZShyZXEpOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICoJZG9uZSAtIHJldGlyZSBhIHJlcXVlc3Q7IGNhbGxlciBibG9ja2VkIGlycXMKKyAqLworc3RhdGljIHZvaWQgZG9uZShzdHJ1Y3QgcHhhMjV4X2VwICplcCwgc3RydWN0IHB4YTI1eF9yZXF1ZXN0ICpyZXEsIGludCBzdGF0dXMpCit7CisJdW5zaWduZWQJCXN0b3BwZWQgPSBlcC0+c3RvcHBlZDsKKworCWxpc3RfZGVsX2luaXQoJnJlcS0+cXVldWUpOworCisJaWYgKGxpa2VseSAocmVxLT5yZXEuc3RhdHVzID09IC1FSU5QUk9HUkVTUykpCisJCXJlcS0+cmVxLnN0YXR1cyA9IHN0YXR1czsKKwllbHNlCisJCXN0YXR1cyA9IHJlcS0+cmVxLnN0YXR1czsKKworCWlmIChzdGF0dXMgJiYgc3RhdHVzICE9IC1FU0hVVERPV04pCisJCURCRyhEQkdfVkVSQk9TRSwgImNvbXBsZXRlICVzIHJlcSAlcCBzdGF0ICVkIGxlbiAldS8ldVxuIiwKKwkJCWVwLT5lcC5uYW1lLCAmcmVxLT5yZXEsIHN0YXR1cywKKwkJCXJlcS0+cmVxLmFjdHVhbCwgcmVxLT5yZXEubGVuZ3RoKTsKKworCS8qIGRvbid0IG1vZGlmeSBxdWV1ZSBoZWFkcyBkdXJpbmcgY29tcGxldGlvbiBjYWxsYmFjayAqLworCWVwLT5zdG9wcGVkID0gMTsKKwlyZXEtPnJlcS5jb21wbGV0ZSgmZXAtPmVwLCAmcmVxLT5yZXEpOworCWVwLT5zdG9wcGVkID0gc3RvcHBlZDsKK30KKworCitzdGF0aWMgaW5saW5lIHZvaWQgZXAwX2lkbGUgKHN0cnVjdCBweGEyNXhfdWRjICpkZXYpCit7CisJZGV2LT5lcDBzdGF0ZSA9IEVQMF9JRExFOworfQorCitzdGF0aWMgaW50Cit3cml0ZV9wYWNrZXQodm9sYXRpbGUgdTMyICp1ZGRyLCBzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QgKnJlcSwgdW5zaWduZWQgbWF4KQoreworCXU4CQkqYnVmOworCXVuc2lnbmVkCWxlbmd0aCwgY291bnQ7CisKKwlidWYgPSByZXEtPnJlcS5idWYgKyByZXEtPnJlcS5hY3R1YWw7CisJcHJlZmV0Y2goYnVmKTsKKworCS8qIGhvdyBiaWcgd2lsbCB0aGlzIHBhY2tldCBiZT8gKi8KKwlsZW5ndGggPSBtaW4ocmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsLCBtYXgpOworCXJlcS0+cmVxLmFjdHVhbCArPSBsZW5ndGg7CisKKwljb3VudCA9IGxlbmd0aDsKKwl3aGlsZSAobGlrZWx5KGNvdW50LS0pKQorCQkqdWRkciA9ICpidWYrKzsKKworCXJldHVybiBsZW5ndGg7Cit9CisKKy8qCisgKiB3cml0ZSB0byBhbiBJTiBlbmRwb2ludCBmaWZvLCBhcyBtYW55IHBhY2tldHMgYXMgcG9zc2libGUuCisgKiBpcnFzIHdpbGwgdXNlIHRoaXMgdG8gd3JpdGUgdGhlIHJlc3QgbGF0ZXIuCisgKiBjYWxsZXIgZ3VhcmFudGVlcyBhdCBsZWFzdCBvbmUgcGFja2V0IGJ1ZmZlciBpcyByZWFkeSAob3IgYSB6bHApLgorICovCitzdGF0aWMgaW50Cit3cml0ZV9maWZvIChzdHJ1Y3QgcHhhMjV4X2VwICplcCwgc3RydWN0IHB4YTI1eF9yZXF1ZXN0ICpyZXEpCit7CisJdW5zaWduZWQJCW1heDsKKworCW1heCA9IGxlMTZfdG9fY3B1KGVwLT5kZXNjLT53TWF4UGFja2V0U2l6ZSk7CisJZG8geworCQl1bnNpZ25lZAljb3VudDsKKwkJaW50CQlpc19sYXN0LCBpc19zaG9ydDsKKworCQljb3VudCA9IHdyaXRlX3BhY2tldChlcC0+cmVnX3VkZHIsIHJlcSwgbWF4KTsKKworCQkvKiBsYXN0IHBhY2tldCBpcyB1c3VhbGx5IHNob3J0IChvciBhIHpscCkgKi8KKwkJaWYgKHVubGlrZWx5IChjb3VudCAhPSBtYXgpKQorCQkJaXNfbGFzdCA9IGlzX3Nob3J0ID0gMTsKKwkJZWxzZSB7CisJCQlpZiAobGlrZWx5KHJlcS0+cmVxLmxlbmd0aCAhPSByZXEtPnJlcS5hY3R1YWwpCisJCQkJCXx8IHJlcS0+cmVxLnplcm8pCisJCQkJaXNfbGFzdCA9IDA7CisJCQllbHNlCisJCQkJaXNfbGFzdCA9IDE7CisJCQkvKiBpbnRlcnJ1cHQvaXNvIG1heHBhY2tldCBtYXkgbm90IGZpbGwgdGhlIGZpZm8gKi8KKwkJCWlzX3Nob3J0ID0gdW5saWtlbHkgKG1heCA8IGVwLT5maWZvX3NpemUpOworCQl9CisKKwkJREJHKERCR19WRVJZX05PSVNZLCAid3JvdGUgJXMgJWQgYnl0ZXMlcyVzICVkIGxlZnQgJXBcbiIsCisJCQllcC0+ZXAubmFtZSwgY291bnQsCisJCQlpc19sYXN0ID8gIi9MIiA6ICIiLCBpc19zaG9ydCA/ICIvUyIgOiAiIiwKKwkJCXJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbCwgcmVxKTsKKworCQkvKiBsZXQgbG9vc2UgdGhhdCBwYWNrZXQuIG1heWJlIHRyeSB3cml0aW5nIGFub3RoZXIgb25lLAorCQkgKiBkb3VibGUgYnVmZmVyaW5nIG1pZ2h0IHdvcmsuICBUU1AsIFRQQywgYW5kIFRGUworCQkgKiBiaXQgdmFsdWVzIGFyZSB0aGUgc2FtZSBmb3IgYWxsIG5vcm1hbCBJTiBlbmRwb2ludHMuCisJCSAqLworCQkqZXAtPnJlZ191ZGNjcyA9IFVEQ0NTX0JJX1RQQzsKKwkJaWYgKGlzX3Nob3J0KQorCQkJKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9UU1A7CisKKwkJLyogcmVxdWVzdHMgY29tcGxldGUgd2hlbiBhbGwgSU4gZGF0YSBpcyBpbiB0aGUgRklGTyAqLworCQlpZiAoaXNfbGFzdCkgeworCQkJZG9uZSAoZXAsIHJlcSwgMCk7CisJCQlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkKKwkJCQlwaW9faXJxX2Rpc2FibGUgKGVwLT5iRW5kcG9pbnRBZGRyZXNzKTsKKwkJCXJldHVybiAxOworCQl9CisKKwkJLy8gVE9ETyBleHBlcmltZW50OiBob3cgcm9idXN0IGNhbiBmaWZvIG1vZGUgdHdlYWtpbmcgYmU/CisJCS8vIGRvdWJsZSBidWZmZXJpbmcgaXMgb2ZmIGluIHRoZSBkZWZhdWx0IGZpZm8gbW9kZSwgd2hpY2gKKwkJLy8gcHJldmVudHMgVEZTIGZyb20gYmVpbmcgc2V0IGhlcmUuCisKKwl9IHdoaWxlICgqZXAtPnJlZ191ZGNjcyAmIFVEQ0NTX0JJX1RGUyk7CisJcmV0dXJuIDA7Cit9CisKKy8qIGNhbGxlciBhc3NlcnRzIHJlcS0+cGVuZGluZyAoZXAwIGlycSBzdGF0dXMgbnlldCBjbGVhcmVkKTsgc3RhcnRzCisgKiBlcDAgZGF0YSBzdGFnZS4gIHRoZXNlIGNoaXBzIHdhbnQgdmVyeSBzaW1wbGUgc3RhdGUgdHJhbnNpdGlvbnMuCisgKi8KK3N0YXRpYyBpbmxpbmUKK3ZvaWQgZXAwc3RhcnQoc3RydWN0IHB4YTI1eF91ZGMgKmRldiwgdTMyIGZsYWdzLCBjb25zdCBjaGFyICp0YWcpCit7CisJVURDQ1MwID0gZmxhZ3N8VURDQ1MwX1NBfFVEQ0NTMF9PUFI7CisJVVNJUjAgPSBVU0lSMF9JUjA7CisJZGV2LT5yZXFfcGVuZGluZyA9IDA7CisJREJHKERCR19WRVJZX05PSVNZLCAiJXMgJXMsICUwMngvJTAyeFxuIiwKKwkJX19mdW5jX18sIHRhZywgVURDQ1MwLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbnQKK3dyaXRlX2VwMF9maWZvIChzdHJ1Y3QgcHhhMjV4X2VwICplcCwgc3RydWN0IHB4YTI1eF9yZXF1ZXN0ICpyZXEpCit7CisJdW5zaWduZWQJY291bnQ7CisJaW50CQlpc19zaG9ydDsKKworCWNvdW50ID0gd3JpdGVfcGFja2V0KCZVRERSMCwgcmVxLCBFUDBfRklGT19TSVpFKTsKKwllcC0+ZGV2LT5zdGF0cy53cml0ZS5ieXRlcyArPSBjb3VudDsKKworCS8qIGxhc3QgcGFja2V0ICJtdXN0IGJlIiBzaG9ydCAob3IgYSB6bHApICovCisJaXNfc2hvcnQgPSAoY291bnQgIT0gRVAwX0ZJRk9fU0laRSk7CisKKwlEQkcoREJHX1ZFUllfTk9JU1ksICJlcDBpbiAlZCBieXRlcyAlZCBsZWZ0ICVwXG4iLCBjb3VudCwKKwkJcmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsLCByZXEpOworCisJaWYgKHVubGlrZWx5IChpc19zaG9ydCkpIHsKKwkJaWYgKGVwLT5kZXYtPnJlcV9wZW5kaW5nKQorCQkJZXAwc3RhcnQoZXAtPmRldiwgVURDQ1MwX0lQUiwgInNob3J0IElOIik7CisJCWVsc2UKKwkJCVVEQ0NTMCA9IFVEQ0NTMF9JUFI7CisKKwkJY291bnQgPSByZXEtPnJlcS5sZW5ndGg7CisJCWRvbmUgKGVwLCByZXEsIDApOworCQllcDBfaWRsZShlcC0+ZGV2KTsKKyNpZm5kZWYgQ09ORklHX0FSQ0hfSVhQNFhYCisjaWYgMQorCQkvKiBUaGlzIHNlZW1zIHRvIGdldCByaWQgb2YgbG9zdCBzdGF0dXMgaXJxcyBpbiBzb21lIGNhc2VzOgorCQkgKiBob3N0IHJlc3BvbmRzIHF1aWNrbHksIG9yIG5leHQgcmVxdWVzdCBpbnZvbHZlcyBjb25maWcKKwkJICogY2hhbmdlIGF1dG9tYWdpYywgb3Igc2hvdWxkIGhhdmUgYmVlbiBoaWRkZW4sIG9yIC4uLgorCQkgKgorCQkgKiBGSVhNRSBnZXQgcmlkIG9mIGFsbCB1ZGVsYXlzIHBvc3NpYmxlLi4uCisJCSAqLworCQlpZiAoY291bnQgPj0gRVAwX0ZJRk9fU0laRSkgeworCQkJY291bnQgPSAxMDA7CisJCQlkbyB7CisJCQkJaWYgKChVRENDUzAgJiBVRENDUzBfT1BSKSAhPSAwKSB7CisJCQkJCS8qIGNsZWFyIE9QUiwgZ2VuZXJhdGUgYWNrICovCisJCQkJCVVEQ0NTMCA9IFVEQ0NTMF9PUFI7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQljb3VudC0tOworCQkJCXVkZWxheSgxKTsKKwkJCX0gd2hpbGUgKGNvdW50KTsKKwkJfQorI2VuZGlmCisjZW5kaWYKKwl9IGVsc2UgaWYgKGVwLT5kZXYtPnJlcV9wZW5kaW5nKQorCQllcDBzdGFydChlcC0+ZGV2LCAwLCAiSU4iKTsKKwlyZXR1cm4gaXNfc2hvcnQ7Cit9CisKKworLyoKKyAqIHJlYWRfZmlmbyAtICB1bmxvYWQgcGFja2V0KHMpIGZyb20gdGhlIGZpZm8gd2UgdXNlIGZvciB1c2IgT1VUCisgKiB0cmFuc2ZlcnMgYW5kIHB1dCB0aGVtIGludG8gdGhlIHJlcXVlc3QuICBjYWxsZXIgc2hvdWxkIGhhdmUgbWFkZQorICogc3VyZSB0aGVyZSdzIGF0IGxlYXN0IG9uZSBwYWNrZXQgcmVhZHkuCisgKgorICogcmV0dXJucyB0cnVlIGlmIHRoZSByZXF1ZXN0IGNvbXBsZXRlZCBiZWNhdXNlIG9mIHNob3J0IHBhY2tldCBvciB0aGUKKyAqIHJlcXVlc3QgYnVmZmVyIGhhdmluZyBmaWxsZWQgKGFuZCBtYXliZSBvdmVycmFuIHRpbGwgZW5kLW9mLXBhY2tldCkuCisgKi8KK3N0YXRpYyBpbnQKK3JlYWRfZmlmbyAoc3RydWN0IHB4YTI1eF9lcCAqZXAsIHN0cnVjdCBweGEyNXhfcmVxdWVzdCAqcmVxKQoreworCWZvciAoOzspIHsKKwkJdTMyCQl1ZGNjczsKKwkJdTgJCSpidWY7CisJCXVuc2lnbmVkCWJ1ZmZlcnNwYWNlLCBjb3VudCwgaXNfc2hvcnQ7CisKKwkJLyogbWFrZSBzdXJlIHRoZXJlJ3MgYSBwYWNrZXQgaW4gdGhlIEZJRk8uCisJCSAqIFVEQ0NTX3tCTyxJT31fUlBDIGFyZSBhbGwgdGhlIHNhbWUgYml0IHZhbHVlLgorCQkgKiBVRENDU197Qk8sSU99X1JORSBhcmUgYWxsIHRoZSBzYW1lIGJpdCB2YWx1ZS4KKwkJICovCisJCXVkY2NzID0gKmVwLT5yZWdfdWRjY3M7CisJCWlmICh1bmxpa2VseSAoKHVkY2NzICYgVURDQ1NfQk9fUlBDKSA9PSAwKSkKKwkJCWJyZWFrOworCQlidWYgPSByZXEtPnJlcS5idWYgKyByZXEtPnJlcS5hY3R1YWw7CisJCXByZWZldGNodyhidWYpOworCQlidWZmZXJzcGFjZSA9IHJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbDsKKworCQkvKiByZWFkIGFsbCBieXRlcyBmcm9tIHRoaXMgcGFja2V0ICovCisJCWlmIChsaWtlbHkgKHVkY2NzICYgVURDQ1NfQk9fUk5FKSkgeworCQkJY291bnQgPSAxICsgKDB4MGZmICYgKmVwLT5yZWdfdWJjcik7CisJCQlyZXEtPnJlcS5hY3R1YWwgKz0gbWluIChjb3VudCwgYnVmZmVyc3BhY2UpOworCQl9IGVsc2UgLyogemxwICovCisJCQljb3VudCA9IDA7CisJCWlzX3Nob3J0ID0gKGNvdW50IDwgZXAtPmVwLm1heHBhY2tldCk7CisJCURCRyhEQkdfVkVSWV9OT0lTWSwgInJlYWQgJXMgJTAyeCwgJWQgYnl0ZXMlcyByZXEgJXAgJWQvJWRcbiIsCisJCQllcC0+ZXAubmFtZSwgdWRjY3MsIGNvdW50LAorCQkJaXNfc2hvcnQgPyAiL1MiIDogIiIsCisJCQlyZXEsIHJlcS0+cmVxLmFjdHVhbCwgcmVxLT5yZXEubGVuZ3RoKTsKKwkJd2hpbGUgKGxpa2VseSAoY291bnQtLSAhPSAwKSkgeworCQkJdTgJYnl0ZSA9ICh1OCkgKmVwLT5yZWdfdWRkcjsKKworCQkJaWYgKHVubGlrZWx5IChidWZmZXJzcGFjZSA9PSAwKSkgeworCQkJCS8qIHRoaXMgaGFwcGVucyB3aGVuIHRoZSBkcml2ZXIncyBidWZmZXIKKwkJCQkgKiBpcyBzbWFsbGVyIHRoYW4gd2hhdCB0aGUgaG9zdCBzZW50LgorCQkJCSAqIGRpc2NhcmQgdGhlIGV4dHJhIGRhdGEuCisJCQkJICovCisJCQkJaWYgKHJlcS0+cmVxLnN0YXR1cyAhPSAtRU9WRVJGTE9XKQorCQkJCQlETVNHKCIlcyBvdmVyZmxvdyAlZFxuIiwKKwkJCQkJCWVwLT5lcC5uYW1lLCBjb3VudCk7CisJCQkJcmVxLT5yZXEuc3RhdHVzID0gLUVPVkVSRkxPVzsKKwkJCX0gZWxzZSB7CisJCQkJKmJ1ZisrID0gYnl0ZTsKKwkJCQlidWZmZXJzcGFjZS0tOworCQkJfQorCQl9CisJCSplcC0+cmVnX3VkY2NzID0gIFVEQ0NTX0JPX1JQQzsKKwkJLyogUlBDL1JTUC9STkUgY291bGQgbm93IHJlZmxlY3QgdGhlIG90aGVyIHBhY2tldCBidWZmZXIgKi8KKworCQkvKiBpc28gaXMgb25lIHJlcXVlc3QgcGVyIHBhY2tldCAqLworCQlpZiAoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DKSB7CisJCQlpZiAodWRjY3MgJiBVRENDU19JT19ST0YpCisJCQkJcmVxLT5yZXEuc3RhdHVzID0gLUVIT1NUVU5SRUFDSDsKKwkJCS8qIG1vcmUgbGlrZSAiaXNfZG9uZSIgKi8KKwkJCWlzX3Nob3J0ID0gMTsKKwkJfQorCisJCS8qIGNvbXBsZXRpb24gKi8KKwkJaWYgKGlzX3Nob3J0IHx8IHJlcS0+cmVxLmFjdHVhbCA9PSByZXEtPnJlcS5sZW5ndGgpIHsKKwkJCWRvbmUgKGVwLCByZXEsIDApOworCQkJaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpCisJCQkJcGlvX2lycV9kaXNhYmxlIChlcC0+YkVuZHBvaW50QWRkcmVzcyk7CisJCQlyZXR1cm4gMTsKKwkJfQorCisJCS8qIGZpbmlzaGVkIHRoYXQgcGFja2V0LiAgdGhlIG5leHQgb25lIG1heSBiZSB3YWl0aW5nLi4uICovCisJfQorCXJldHVybiAwOworfQorCisvKgorICogc3BlY2lhbCBlcDAgdmVyc2lvbiBvZiB0aGUgYWJvdmUuICBubyBVQkNSMCBvciBkb3VibGUgYnVmZmVyaW5nOyBzdGF0dXMKKyAqIGhhbmRzaGFraW5nIGlzIG1hZ2ljLiAgbW9zdCBkZXZpY2UgcHJvdG9jb2xzIGRvbid0IG5lZWQgY29udHJvbC1PVVQuCisgKiBDREMgdmVuZG9yIGNvbW1hbmRzIChhbmQgUk5ESVMpLCBtYXNzIHN0b3JhZ2UgQ0IvQ0JJLCBhbmQgc29tZSBvdGhlcgorICogcHJvdG9jb2xzIGRvIHVzZSB0aGVtLgorICovCitzdGF0aWMgaW50CityZWFkX2VwMF9maWZvIChzdHJ1Y3QgcHhhMjV4X2VwICplcCwgc3RydWN0IHB4YTI1eF9yZXF1ZXN0ICpyZXEpCit7CisJdTgJCSpidWYsIGJ5dGU7CisJdW5zaWduZWQJYnVmZmVyc3BhY2U7CisKKwlidWYgPSByZXEtPnJlcS5idWYgKyByZXEtPnJlcS5hY3R1YWw7CisJYnVmZmVyc3BhY2UgPSByZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWw7CisKKwl3aGlsZSAoVURDQ1MwICYgVURDQ1MwX1JORSkgeworCQlieXRlID0gKHU4KSBVRERSMDsKKworCQlpZiAodW5saWtlbHkgKGJ1ZmZlcnNwYWNlID09IDApKSB7CisJCQkvKiB0aGlzIGhhcHBlbnMgd2hlbiB0aGUgZHJpdmVyJ3MgYnVmZmVyCisJCQkgKiBpcyBzbWFsbGVyIHRoYW4gd2hhdCB0aGUgaG9zdCBzZW50LgorCQkJICogZGlzY2FyZCB0aGUgZXh0cmEgZGF0YS4KKwkJCSAqLworCQkJaWYgKHJlcS0+cmVxLnN0YXR1cyAhPSAtRU9WRVJGTE9XKQorCQkJCURNU0coIiVzIG92ZXJmbG93XG4iLCBlcC0+ZXAubmFtZSk7CisJCQlyZXEtPnJlcS5zdGF0dXMgPSAtRU9WRVJGTE9XOworCQl9IGVsc2UgeworCQkJKmJ1ZisrID0gYnl0ZTsKKwkJCXJlcS0+cmVxLmFjdHVhbCsrOworCQkJYnVmZmVyc3BhY2UtLTsKKwkJfQorCX0KKworCVVEQ0NTMCA9IFVEQ0NTMF9PUFIgfCBVRENDUzBfSVBSOworCisJLyogY29tcGxldGlvbiAqLworCWlmIChyZXEtPnJlcS5hY3R1YWwgPj0gcmVxLT5yZXEubGVuZ3RoKQorCQlyZXR1cm4gMTsKKworCS8qIGZpbmlzaGVkIHRoYXQgcGFja2V0LiAgdGhlIG5leHQgb25lIG1heSBiZSB3YWl0aW5nLi4uICovCisJcmV0dXJuIDA7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0YXRpYyBpbnQKK3B4YTI1eF9lcF9xdWV1ZShzdHJ1Y3QgdXNiX2VwICpfZXAsIHN0cnVjdCB1c2JfcmVxdWVzdCAqX3JlcSwgZ2ZwX3QgZ2ZwX2ZsYWdzKQoreworCXN0cnVjdCBweGEyNXhfcmVxdWVzdAkqcmVxOworCXN0cnVjdCBweGEyNXhfZXAJKmVwOworCXN0cnVjdCBweGEyNXhfdWRjCSpkZXY7CisJdW5zaWduZWQgbG9uZwkJZmxhZ3M7CisKKwlyZXEgPSBjb250YWluZXJfb2YoX3JlcSwgc3RydWN0IHB4YTI1eF9yZXF1ZXN0LCByZXEpOworCWlmICh1bmxpa2VseSAoIV9yZXEgfHwgIV9yZXEtPmNvbXBsZXRlIHx8ICFfcmVxLT5idWYKKwkJCXx8ICFsaXN0X2VtcHR5KCZyZXEtPnF1ZXVlKSkpIHsKKwkJRE1TRygiJXMsIGJhZCBwYXJhbXNcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMjV4X2VwLCBlcCk7CisJaWYgKHVubGlrZWx5ICghX2VwIHx8ICghZXAtPmRlc2MgJiYgZXAtPmVwLm5hbWUgIT0gZXAwbmFtZSkpKSB7CisJCURNU0coIiVzLCBiYWQgZXBcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZGV2ID0gZXAtPmRldjsKKwlpZiAodW5saWtlbHkgKCFkZXYtPmRyaXZlcgorCQkJfHwgZGV2LT5nYWRnZXQuc3BlZWQgPT0gVVNCX1NQRUVEX1VOS05PV04pKSB7CisJCURNU0coIiVzLCBib2d1cyBkZXZpY2Ugc3RhdGVcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FU0hVVERPV047CisJfQorCisJLyogaXNvIGlzIGFsd2F5cyBvbmUgcGFja2V0IHBlciByZXF1ZXN0LCB0aGF0J3MgdGhlIG9ubHkgd2F5CisJICogd2UgY2FuIHJlcG9ydCBwZXItcGFja2V0IHN0YXR1cy4gIHRoYXQgYWxzbyBoZWxwcyB3aXRoIGRtYS4KKwkgKi8KKwlpZiAodW5saWtlbHkgKGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQworCQkJJiYgcmVxLT5yZXEubGVuZ3RoID4gbGUxNl90b19jcHUKKwkJCQkJCShlcC0+ZGVzYy0+d01heFBhY2tldFNpemUpKSkKKwkJcmV0dXJuIC1FTVNHU0laRTsKKworCURCRyhEQkdfTk9JU1ksICIlcyBxdWV1ZSByZXEgJXAsIGxlbiAlZCBidWYgJXBcbiIsCisJCV9lcC0+bmFtZSwgX3JlcSwgX3JlcS0+bGVuZ3RoLCBfcmVxLT5idWYpOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJX3JlcS0+c3RhdHVzID0gLUVJTlBST0dSRVNTOworCV9yZXEtPmFjdHVhbCA9IDA7CisKKwkvKiBraWNrc3RhcnQgdGhpcyBpL28gcXVldWU/ICovCisJaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkgJiYgIWVwLT5zdG9wcGVkKSB7CisJCWlmIChlcC0+ZGVzYyA9PSBOVUxMLyogZXAwICovKSB7CisJCQl1bnNpZ25lZAlsZW5ndGggPSBfcmVxLT5sZW5ndGg7CisKKwkJCXN3aXRjaCAoZGV2LT5lcDBzdGF0ZSkgeworCQkJY2FzZSBFUDBfSU5fREFUQV9QSEFTRToKKwkJCQlkZXYtPnN0YXRzLndyaXRlLm9wcysrOworCQkJCWlmICh3cml0ZV9lcDBfZmlmbyhlcCwgcmVxKSkKKwkJCQkJcmVxID0gTlVMTDsKKwkJCQlicmVhazsKKworCQkJY2FzZSBFUDBfT1VUX0RBVEFfUEhBU0U6CisJCQkJZGV2LT5zdGF0cy5yZWFkLm9wcysrOworCQkJCS8qIG1lc3N5IC4uLiAqLworCQkJCWlmIChkZXYtPnJlcV9jb25maWcpIHsKKwkJCQkJREJHKERCR19WRVJCT1NFLCAiZXAwIGNvbmZpZyBhY2slc1xuIiwKKwkJCQkJCWRldi0+aGFzX2NmciA/ICAiIiA6ICIgcmFjZWQiKTsKKwkJCQkJaWYgKGRldi0+aGFzX2NmcikKKwkJCQkJCVVEQ0NGUiA9IFVEQ0NGUl9BUkVOfFVEQ0NGUl9BQ00KKwkJCQkJCQl8VURDQ0ZSX01CMTsKKwkJCQkJZG9uZShlcCwgcmVxLCAwKTsKKwkJCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9FTkRfWEZFUjsKKwkJCQkJbG9jYWxfaXJxX3Jlc3RvcmUgKGZsYWdzKTsKKwkJCQkJcmV0dXJuIDA7CisJCQkJfQorCQkJCWlmIChkZXYtPnJlcV9wZW5kaW5nKQorCQkJCQllcDBzdGFydChkZXYsIFVEQ0NTMF9JUFIsICJPVVQiKTsKKwkJCQlpZiAobGVuZ3RoID09IDAgfHwgKChVRENDUzAgJiBVRENDUzBfUk5FKSAhPSAwCisJCQkJCQkmJiByZWFkX2VwMF9maWZvKGVwLCByZXEpKSkgeworCQkJCQllcDBfaWRsZShkZXYpOworCQkJCQlkb25lKGVwLCByZXEsIDApOworCQkJCQlyZXEgPSBOVUxMOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJZGVmYXVsdDoKKwkJCQlETVNHKCJlcDAgaS9vLCBvZGQgc3RhdGUgJWRcbiIsIGRldi0+ZXAwc3RhdGUpOworCQkJCWxvY2FsX2lycV9yZXN0b3JlIChmbGFncyk7CisJCQkJcmV0dXJuIC1FTDJITFQ7CisJCQl9CisJCS8qIGNhbiB0aGUgRklGTyBjYW4gc2F0aXNmeSB0aGUgcmVxdWVzdCBpbW1lZGlhdGVseT8gKi8KKwkJfSBlbHNlIGlmICgoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSAhPSAwKSB7CisJCQlpZiAoKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQklfVEZTKSAhPSAwCisJCQkJCSYmIHdyaXRlX2ZpZm8oZXAsIHJlcSkpCisJCQkJcmVxID0gTlVMTDsKKwkJfSBlbHNlIGlmICgoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CT19SRlMpICE9IDAKKwkJCQkmJiByZWFkX2ZpZm8oZXAsIHJlcSkpIHsKKwkJCXJlcSA9IE5VTEw7CisJCX0KKworCQlpZiAobGlrZWx5IChyZXEgJiYgZXAtPmRlc2MpKQorCQkJcGlvX2lycV9lbmFibGUoZXAtPmJFbmRwb2ludEFkZHJlc3MpOworCX0KKworCS8qIHBpbyBvciBkbWEgaXJxIGhhbmRsZXIgYWR2YW5jZXMgdGhlIHF1ZXVlLiAqLworCWlmIChsaWtlbHkocmVxICE9IE5VTEwpKQorCQlsaXN0X2FkZF90YWlsKCZyZXEtPnF1ZXVlLCAmZXAtPnF1ZXVlKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlyZXR1cm4gMDsKK30KKworCisvKgorICoJbnVrZSAtIGRlcXVldWUgQUxMIHJlcXVlc3RzCisgKi8KK3N0YXRpYyB2b2lkIG51a2Uoc3RydWN0IHB4YTI1eF9lcCAqZXAsIGludCBzdGF0dXMpCit7CisJc3RydWN0IHB4YTI1eF9yZXF1ZXN0ICpyZXE7CisKKwkvKiBjYWxsZWQgd2l0aCBpcnFzIGJsb2NrZWQgKi8KKwl3aGlsZSAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKKwkJcmVxID0gbGlzdF9lbnRyeShlcC0+cXVldWUubmV4dCwKKwkJCQlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QsCisJCQkJcXVldWUpOworCQlkb25lKGVwLCByZXEsIHN0YXR1cyk7CisJfQorCWlmIChlcC0+ZGVzYykKKwkJcGlvX2lycV9kaXNhYmxlIChlcC0+YkVuZHBvaW50QWRkcmVzcyk7Cit9CisKKworLyogZGVxdWV1ZSBKVVNUIE9ORSByZXF1ZXN0ICovCitzdGF0aWMgaW50IHB4YTI1eF9lcF9kZXF1ZXVlKHN0cnVjdCB1c2JfZXAgKl9lcCwgc3RydWN0IHVzYl9yZXF1ZXN0ICpfcmVxKQoreworCXN0cnVjdCBweGEyNXhfZXAJKmVwOworCXN0cnVjdCBweGEyNXhfcmVxdWVzdAkqcmVxOworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOworCisJZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMjV4X2VwLCBlcCk7CisJaWYgKCFfZXAgfHwgZXAtPmVwLm5hbWUgPT0gZXAwbmFtZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwkvKiBtYWtlIHN1cmUgaXQncyBhY3R1YWxseSBxdWV1ZWQgb24gdGhpcyBlbmRwb2ludCAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkgKHJlcSwgJmVwLT5xdWV1ZSwgcXVldWUpIHsKKwkJaWYgKCZyZXEtPnJlcSA9PSBfcmVxKQorCQkJYnJlYWs7CisJfQorCWlmICgmcmVxLT5yZXEgIT0gX3JlcSkgeworCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRvbmUoZXAsIHJlcSwgLUVDT05OUkVTRVQpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCXJldHVybiAwOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitzdGF0aWMgaW50IHB4YTI1eF9lcF9zZXRfaGFsdChzdHJ1Y3QgdXNiX2VwICpfZXAsIGludCB2YWx1ZSkKK3sKKwlzdHJ1Y3QgcHhhMjV4X2VwCSplcDsKKwl1bnNpZ25lZCBsb25nCQlmbGFnczsKKworCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTI1eF9lcCwgZXApOworCWlmICh1bmxpa2VseSAoIV9lcAorCQkJfHwgKCFlcC0+ZGVzYyAmJiBlcC0+ZXAubmFtZSAhPSBlcDBuYW1lKSkKKwkJCXx8IGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQykgeworCQlETVNHKCIlcywgYmFkIGVwXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlpZiAodmFsdWUgPT0gMCkgeworCQkvKiB0aGlzIHBhdGggKHJlc2V0IHRvZ2dsZStoYWx0KSBpcyBuZWVkZWQgdG8gaW1wbGVtZW50CisJCSAqIFNFVF9JTlRFUkZBQ0Ugb24gbm9ybWFsIGhhcmR3YXJlLiAgYnV0IGl0IGNhbid0IGJlCisJCSAqIGRvbmUgZnJvbSBzb2Z0d2FyZSBvbiB0aGUgUFhBIFVEQywgYW5kIHRoZSBoYXJkd2FyZQorCQkgKiBmb3JnZXRzIHRvIGRvIGl0IGFzIHBhcnQgb2YgU0VUX0lOVEVSRkFDRSBhdXRvbWFnaWMuCisJCSAqLworCQlETVNHKCJvbmx5IGhvc3QgY2FuIGNsZWFyICVzIGhhbHRcbiIsIF9lcC0+bmFtZSk7CisJCXJldHVybiAtRVJPRlM7CisJfQorCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJaWYgKChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pICE9IDAKKwkJCSYmICgoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CSV9URlMpID09IDAKKwkJCSAgIHx8ICFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSkgeworCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJCXJldHVybiAtRUFHQUlOOworCX0KKworCS8qIEZTVCBiaXQgaXMgdGhlIHNhbWUgZm9yIGNvbnRyb2wsIGJ1bGsgaW4sIGJ1bGsgb3V0LCBpbnRlcnJ1cHQgaW4gKi8KKwkqZXAtPnJlZ191ZGNjcyA9IFVEQ0NTX0JJX0ZTVHxVRENDU19CSV9GVEY7CisKKwkvKiBlcDAgbmVlZHMgc3BlY2lhbCBjYXJlICovCisJaWYgKCFlcC0+ZGVzYykgeworCQlzdGFydF93YXRjaGRvZyhlcC0+ZGV2KTsKKwkJZXAtPmRldi0+cmVxX3BlbmRpbmcgPSAwOworCQllcC0+ZGV2LT5lcDBzdGF0ZSA9IEVQMF9TVEFMTDsKKworCS8qIGFuZCBidWxrL2ludHIgZW5kcG9pbnRzIGxpa2UgZHJvcHBpbmcgc3RhbGxzIHRvbyAqLworCX0gZWxzZSB7CisJCXVuc2lnbmVkIGk7CisJCWZvciAoaSA9IDA7IGkgPCAxMDAwOyBpICs9IDIwKSB7CisJCQlpZiAoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CSV9TU1QpCisJCQkJYnJlYWs7CisJCQl1ZGVsYXkoMjApOworCQl9CisJfQorCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCURCRyhEQkdfVkVSQk9TRSwgIiVzIGhhbHRcbiIsIF9lcC0+bmFtZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHhhMjV4X2VwX2ZpZm9fc3RhdHVzKHN0cnVjdCB1c2JfZXAgKl9lcCkKK3sKKwlzdHJ1Y3QgcHhhMjV4X2VwICAgICAgICAqZXA7CisKKwllcCA9IGNvbnRhaW5lcl9vZihfZXAsIHN0cnVjdCBweGEyNXhfZXAsIGVwKTsKKwlpZiAoIV9lcCkgeworCQlETVNHKCIlcywgYmFkIGVwXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRU5PREVWOworCX0KKwkvKiBweGEgY2FuJ3QgcmVwb3J0IHVuY2xhaW1lZCBieXRlcyBmcm9tIElOIGZpZm9zICovCisJaWYgKChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pICE9IDApCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwlpZiAoZXAtPmRldi0+Z2FkZ2V0LnNwZWVkID09IFVTQl9TUEVFRF9VTktOT1dOCisJCQl8fCAoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CT19SRlMpID09IDApCisJCXJldHVybiAwOworCWVsc2UKKwkJcmV0dXJuICgqZXAtPnJlZ191YmNyICYgMHhmZmYpICsgMTsKK30KKworc3RhdGljIHZvaWQgcHhhMjV4X2VwX2ZpZm9fZmx1c2goc3RydWN0IHVzYl9lcCAqX2VwKQoreworCXN0cnVjdCBweGEyNXhfZXAgICAgICAgICplcDsKKworCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTI1eF9lcCwgZXApOworCWlmICghX2VwIHx8IGVwLT5lcC5uYW1lID09IGVwMG5hbWUgfHwgIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKKwkJRE1TRygiJXMsIGJhZCBlcFxuIiwgX19mdW5jX18pOworCQlyZXR1cm47CisJfQorCisJLyogdG9nZ2xlIGFuZCBoYWx0IGJpdHMgc3RheSB1bmNoYW5nZWQgKi8KKworCS8qIGZvciBPVVQsIGp1c3QgcmVhZCBhbmQgZGlzY2FyZCB0aGUgRklGTyBjb250ZW50cy4gKi8KKwlpZiAoKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikgPT0gMCkgeworCQl3aGlsZSAoKCgqZXAtPnJlZ191ZGNjcykgJiBVRENDU19CT19STkUpICE9IDApCisJCQkodm9pZCkgKmVwLT5yZWdfdWRkcjsKKwkJcmV0dXJuOworCX0KKworCS8qIG1vc3QgSU4gc3RhdHVzIGlzIHRoZSBzYW1lLCBidXQgSVNPIGNhbid0IHN0YWxsICovCisJKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9UUEN8VURDQ1NfQklfRlRGfFVEQ0NTX0JJX1RVUgorCQl8IChlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MpCisJCQk/IDAgOiBVRENDU19CSV9TU1Q7Cit9CisKKworc3RhdGljIHN0cnVjdCB1c2JfZXBfb3BzIHB4YTI1eF9lcF9vcHMgPSB7CisJLmVuYWJsZQkJPSBweGEyNXhfZXBfZW5hYmxlLAorCS5kaXNhYmxlCT0gcHhhMjV4X2VwX2Rpc2FibGUsCisKKwkuYWxsb2NfcmVxdWVzdAk9IHB4YTI1eF9lcF9hbGxvY19yZXF1ZXN0LAorCS5mcmVlX3JlcXVlc3QJPSBweGEyNXhfZXBfZnJlZV9yZXF1ZXN0LAorCisJLnF1ZXVlCQk9IHB4YTI1eF9lcF9xdWV1ZSwKKwkuZGVxdWV1ZQk9IHB4YTI1eF9lcF9kZXF1ZXVlLAorCisJLnNldF9oYWx0CT0gcHhhMjV4X2VwX3NldF9oYWx0LAorCS5maWZvX3N0YXR1cwk9IHB4YTI1eF9lcF9maWZvX3N0YXR1cywKKwkuZmlmb19mbHVzaAk9IHB4YTI1eF9lcF9maWZvX2ZsdXNoLAorfTsKKworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCWRldmljZS1zY29wZWQgcGFydHMgb2YgdGhlIGFwaSB0byB0aGUgdXNiIGNvbnRyb2xsZXIgaGFyZHdhcmUKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKK3N0YXRpYyBpbnQgcHhhMjV4X3VkY19nZXRfZnJhbWUoc3RydWN0IHVzYl9nYWRnZXQgKl9nYWRnZXQpCit7CisJcmV0dXJuICgoVUZOUkggJiAweDA3KSA8PCA4KSB8IChVRk5STCAmIDB4ZmYpOworfQorCitzdGF0aWMgaW50IHB4YTI1eF91ZGNfd2FrZXVwKHN0cnVjdCB1c2JfZ2FkZ2V0ICpfZ2FkZ2V0KQoreworCS8qIGhvc3QgbWF5IG5vdCBoYXZlIGVuYWJsZWQgcmVtb3RlIHdha2V1cCAqLworCWlmICgoVURDQ1MwICYgVURDQ1MwX0RSV0YpID09IDApCisJCXJldHVybiAtRUhPU1RVTlJFQUNIOworCXVkY19zZXRfbWFza19VRENDUihVRENDUl9SU00pOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBzdG9wX2FjdGl2aXR5KHN0cnVjdCBweGEyNXhfdWRjICosIHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqKTsKK3N0YXRpYyB2b2lkIHVkY19lbmFibGUgKHN0cnVjdCBweGEyNXhfdWRjICopOworc3RhdGljIHZvaWQgdWRjX2Rpc2FibGUoc3RydWN0IHB4YTI1eF91ZGMgKik7CisKKy8qIFdlIGRpc2FibGUgdGhlIFVEQyAtLSBhbmQgaXRzIDQ4IE1IeiBjbG9jayAtLSB3aGVuZXZlciBpdCdzIG5vdAorICogaW4gYWN0aXZlIHVzZS4KKyAqLworc3RhdGljIGludCBwdWxsdXAoc3RydWN0IHB4YTI1eF91ZGMgKnVkYykKK3sKKwlpbnQgaXNfYWN0aXZlID0gdWRjLT52YnVzICYmIHVkYy0+cHVsbHVwICYmICF1ZGMtPnN1c3BlbmRlZDsKKwlETVNHKCIlc1xuIiwgaXNfYWN0aXZlID8gImFjdGl2ZSIgOiAiaW5hY3RpdmUiKTsKKwlpZiAoaXNfYWN0aXZlKSB7CisJCWlmICghdWRjLT5hY3RpdmUpIHsKKwkJCXVkYy0+YWN0aXZlID0gMTsKKwkJCS8qIEVuYWJsZSBjbG9jayBmb3IgVVNCIGRldmljZSAqLworCQkJY2xrX2VuYWJsZSh1ZGMtPmNsayk7CisJCQl1ZGNfZW5hYmxlKHVkYyk7CisJCX0KKwl9IGVsc2UgeworCQlpZiAodWRjLT5hY3RpdmUpIHsKKwkJCWlmICh1ZGMtPmdhZGdldC5zcGVlZCAhPSBVU0JfU1BFRURfVU5LTk9XTikgeworCQkJCURNU0coImRpc2Nvbm5lY3QgJXNcbiIsIHVkYy0+ZHJpdmVyCisJCQkJCT8gdWRjLT5kcml2ZXItPmRyaXZlci5uYW1lCisJCQkJCTogIihubyBkcml2ZXIpIik7CisJCQkJc3RvcF9hY3Rpdml0eSh1ZGMsIHVkYy0+ZHJpdmVyKTsKKwkJCX0KKwkJCXVkY19kaXNhYmxlKHVkYyk7CisJCQkvKiBEaXNhYmxlIGNsb2NrIGZvciBVU0IgZGV2aWNlICovCisJCQljbGtfZGlzYWJsZSh1ZGMtPmNsayk7CisJCQl1ZGMtPmFjdGl2ZSA9IDA7CisJCX0KKworCX0KKwlyZXR1cm4gMDsKK30KKworLyogVkJVUyByZXBvcnRpbmcgbG9naWNhbGx5IGNvbWVzIGZyb20gYSB0cmFuc2NlaXZlciAqLworc3RhdGljIGludCBweGEyNXhfdWRjX3ZidXNfc2Vzc2lvbihzdHJ1Y3QgdXNiX2dhZGdldCAqX2dhZGdldCwgaW50IGlzX2FjdGl2ZSkKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqdWRjOworCisJdWRjID0gY29udGFpbmVyX29mKF9nYWRnZXQsIHN0cnVjdCBweGEyNXhfdWRjLCBnYWRnZXQpOworCXVkYy0+dmJ1cyA9IChpc19hY3RpdmUgIT0gMCk7CisJRE1TRygidmJ1cyAlc1xuIiwgaXNfYWN0aXZlID8gInN1cHBsaWVkIiA6ICJpbmFjdGl2ZSIpOworCXB1bGx1cCh1ZGMpOworCXJldHVybiAwOworfQorCisvKiBkcml2ZXJzIG1heSBoYXZlIHNvZnR3YXJlIGNvbnRyb2wgb3ZlciBEKyBwdWxsdXAgKi8KK3N0YXRpYyBpbnQgcHhhMjV4X3VkY19wdWxsdXAoc3RydWN0IHVzYl9nYWRnZXQgKl9nYWRnZXQsIGludCBpc19hY3RpdmUpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKnVkYzsKKworCXVkYyA9IGNvbnRhaW5lcl9vZihfZ2FkZ2V0LCBzdHJ1Y3QgcHhhMjV4X3VkYywgZ2FkZ2V0KTsKKworCS8qIG5vdCBhbGwgYm9hcmRzIHN1cHBvcnQgcHVsbHVwIGNvbnRyb2wgKi8KKwlpZiAoIXVkYy0+bWFjaC0+Z3Bpb19wdWxsdXAgJiYgIXVkYy0+bWFjaC0+dWRjX2NvbW1hbmQpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKworCXVkYy0+cHVsbHVwID0gKGlzX2FjdGl2ZSAhPSAwKTsKKwlwdWxsdXAodWRjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZ2FkZ2V0X29wcyBweGEyNXhfdWRjX29wcyA9IHsKKwkuZ2V0X2ZyYW1lCT0gcHhhMjV4X3VkY19nZXRfZnJhbWUsCisJLndha2V1cAkJPSBweGEyNXhfdWRjX3dha2V1cCwKKwkudmJ1c19zZXNzaW9uCT0gcHhhMjV4X3VkY192YnVzX3Nlc3Npb24sCisJLnB1bGx1cAkJPSBweGEyNXhfdWRjX3B1bGx1cCwKKworCS8vIC52YnVzX2RyYXcgLi4uIGJvYXJkcyBtYXkgY29uc3VtZSBjdXJyZW50IGZyb20gVkJVUywgdXAgdG8KKwkvLyAxMDAtNTAwbUEgYmFzZWQgb24gY29uZmlnLiAgdGhlIDUwMHVBIHN1c3BlbmQgY2VpbGluZyBtZWFucworCS8vIHRoYXQgZXhjbHVzaXZlbHkgdmJ1cy1wb3dlcmVkIFBYQSBkZXNpZ25zIHZpb2xhdGUgVVNCIHNwZWNzLgorfTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2lmZGVmIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZTCisKK3N0YXRpYyBpbnQKK3VkY19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKl9kKQoreworCXN0cnVjdCBweGEyNXhfdWRjCSpkZXYgPSBtLT5wcml2YXRlOworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOworCWludAkJCWk7CisJdTMyCQkJdG1wOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJLyogYmFzaWMgZGV2aWNlIHN0YXR1cyAqLworCXNlcV9wcmludGYobSwgRFJJVkVSX0RFU0MgIlxuIgorCQkiJXMgdmVyc2lvbjogJXNcbkdhZGdldCBkcml2ZXI6ICVzXG5Ib3N0ICVzXG5cbiIsCisJCWRyaXZlcl9uYW1lLCBEUklWRVJfVkVSU0lPTiBTSVpFX1NUUiAiKHBpbykiLAorCQlkZXYtPmRyaXZlciA/IGRldi0+ZHJpdmVyLT5kcml2ZXIubmFtZSA6ICIobm9uZSkiLAorCQlpc192YnVzX3ByZXNlbnQoKSA/ICJmdWxsIHNwZWVkIiA6ICJkaXNjb25uZWN0ZWQiKTsKKworCS8qIHJlZ2lzdGVycyBmb3IgZGV2aWNlIGFuZCBlcDAgKi8KKwlzZXFfcHJpbnRmKG0sCisJCSJ1aWNyICUwMlguJTAyWCwgdXNpciAlMDJYLiUwMngsIHVmbnIgJTAyWC4lMDJYXG4iLAorCQlVSUNSMSwgVUlDUjAsIFVTSVIxLCBVU0lSMCwgVUZOUkgsIFVGTlJMKTsKKworCXRtcCA9IFVEQ0NSOworCXNlcV9wcmludGYobSwKKwkJInVkY2NyICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsIHRtcCwKKwkJKHRtcCAmIFVEQ0NSX1JFTSkgPyAiIHJlbSIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NSX1JTVElSKSA/ICIgcnN0aXIiIDogIiIsCisJCSh0bXAgJiBVRENDUl9TUk0pID8gIiBzcm0iIDogIiIsCisJCSh0bXAgJiBVRENDUl9TVVNJUikgPyAiIHN1c2lyIiA6ICIiLAorCQkodG1wICYgVURDQ1JfUkVTSVIpID8gIiByZXNpciIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NSX1JTTSkgPyAiIHJzbSIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NSX1VEQSkgPyAiIHVkYSIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NSX1VERSkgPyAiIHVkZSIgOiAiIik7CisKKwl0bXAgPSBVRENDUzA7CisJc2VxX3ByaW50ZihtLAorCQkidWRjY3MwICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsIHRtcCwKKwkJKHRtcCAmIFVEQ0NTMF9TQSkgPyAiIHNhIiA6ICIiLAorCQkodG1wICYgVURDQ1MwX1JORSkgPyAiIHJuZSIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NTMF9GU1QpID8gIiBmc3QiIDogIiIsCisJCSh0bXAgJiBVRENDUzBfU1NUKSA/ICIgc3N0IiA6ICIiLAorCQkodG1wICYgVURDQ1MwX0RSV0YpID8gIiBkd3JmIiA6ICIiLAorCQkodG1wICYgVURDQ1MwX0ZURikgPyAiIGZ0ZiIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NTMF9JUFIpID8gIiBpcHIiIDogIiIsCisJCSh0bXAgJiBVRENDUzBfT1BSKSA/ICIgb3ByIiA6ICIiKTsKKworCWlmIChkZXYtPmhhc19jZnIpIHsKKwkJdG1wID0gVURDQ0ZSOworCQlzZXFfcHJpbnRmKG0sCisJCQkidWRjY2ZyICUwMlggPSVzJXNcbiIsIHRtcCwKKwkJCSh0bXAgJiBVRENDRlJfQVJFTikgPyAiIGFyZW4iIDogIiIsCisJCQkodG1wICYgVURDQ0ZSX0FDTSkgPyAiIGFjbSIgOiAiIik7CisJfQorCisJaWYgKCFpc192YnVzX3ByZXNlbnQoKSB8fCAhZGV2LT5kcml2ZXIpCisJCWdvdG8gZG9uZTsKKworCXNlcV9wcmludGYobSwgImVwMCBJTiAlbHUvJWx1LCBPVVQgJWx1LyVsdVxuaXJxcyAlbHVcblxuIiwKKwkJZGV2LT5zdGF0cy53cml0ZS5ieXRlcywgZGV2LT5zdGF0cy53cml0ZS5vcHMsCisJCWRldi0+c3RhdHMucmVhZC5ieXRlcywgZGV2LT5zdGF0cy5yZWFkLm9wcywKKwkJZGV2LT5zdGF0cy5pcnFzKTsKKworCS8qIGR1bXAgZW5kcG9pbnQgcXVldWVzICovCisJZm9yIChpID0gMDsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKSB7CisJCXN0cnVjdCBweGEyNXhfZXAJKmVwID0gJmRldi0+ZXAgW2ldOworCQlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QJKnJlcTsKKworCQlpZiAoaSAhPSAwKSB7CisJCQljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IJKmRlc2M7CisKKwkJCWRlc2MgPSBlcC0+ZGVzYzsKKwkJCWlmICghZGVzYykKKwkJCQljb250aW51ZTsKKwkJCXRtcCA9ICpkZXYtPmVwIFtpXS5yZWdfdWRjY3M7CisJCQlzZXFfcHJpbnRmKG0sCisJCQkJIiVzIG1heCAlZCAlcyB1ZGNjcyAlMDJ4IGlycXMgJWx1XG4iLAorCQkJCWVwLT5lcC5uYW1lLCBsZTE2X3RvX2NwdShkZXNjLT53TWF4UGFja2V0U2l6ZSksCisJCQkJInBpbyIsIHRtcCwgZXAtPnBpb19pcnFzKTsKKwkJCS8qIFRPRE8gdHJhbnNsYXRlIGFsbCBmaXZlIGdyb3VwcyBvZiB1ZGNjcyBiaXRzISAqLworCisJCX0gZWxzZSAvKiBlcDAgc2hvdWxkIG9ubHkgaGF2ZSBvbmUgdHJhbnNmZXIgcXVldWVkICovCisJCQlzZXFfcHJpbnRmKG0sICJlcDAgbWF4IDE2IHBpbyBpcnFzICVsdVxuIiwKKwkJCQllcC0+cGlvX2lycXMpOworCisJCWlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7CisJCQlzZXFfcHJpbnRmKG0sICJcdChub3RoaW5nIHF1ZXVlZClcbiIpOworCQkJY29udGludWU7CisJCX0KKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXEsICZlcC0+cXVldWUsIHF1ZXVlKSB7CisJCQlzZXFfcHJpbnRmKG0sCisJCQkJCSJcdHJlcSAlcCBsZW4gJWQvJWQgYnVmICVwXG4iLAorCQkJCQkmcmVxLT5yZXEsIHJlcS0+cmVxLmFjdHVhbCwKKwkJCQkJcmVxLT5yZXEubGVuZ3RoLCByZXEtPnJlcS5idWYpOworCQl9CisJfQorCitkb25lOgorCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAordWRjX2RlYnVnZnNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgdWRjX3NlcV9zaG93LCBpbm9kZS0+aV9wcml2YXRlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGVidWdfZm9wcyA9IHsKKwkub3BlbgkJPSB1ZGNfZGVidWdmc19vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS5sbHNlZWsJCT0gc2VxX2xzZWVrLAorCS5yZWxlYXNlCT0gc2luZ2xlX3JlbGVhc2UsCisJLm93bmVyCQk9IFRISVNfTU9EVUxFLAorfTsKKworI2RlZmluZSBjcmVhdGVfZGVidWdfZmlsZXMoZGV2KSBcCisJZG8geyBcCisJCWRldi0+ZGVidWdmc191ZGMgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKGRldi0+Z2FkZ2V0Lm5hbWUsIFwKKwkJCVNfSVJVR08sIE5VTEwsIGRldiwgJmRlYnVnX2ZvcHMpOyBcCisJfSB3aGlsZSAoMCkKKyNkZWZpbmUgcmVtb3ZlX2RlYnVnX2ZpbGVzKGRldikgXAorCWRvIHsgXAorCQlpZiAoZGV2LT5kZWJ1Z2ZzX3VkYykgXAorCQkJZGVidWdmc19yZW1vdmUoZGV2LT5kZWJ1Z2ZzX3VkYyk7IFwKKwl9IHdoaWxlICgwKQorCisjZWxzZQkvKiAhQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgKi8KKworI2RlZmluZSBjcmVhdGVfZGVidWdfZmlsZXMoZGV2KSBkbyB7fSB3aGlsZSAoMCkKKyNkZWZpbmUgcmVtb3ZlX2RlYnVnX2ZpbGVzKGRldikgZG8ge30gd2hpbGUgKDApCisKKyNlbmRpZgkvKiBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyAqLworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICoJdWRjX2Rpc2FibGUgLSBkaXNhYmxlIFVTQiBkZXZpY2UgY29udHJvbGxlcgorICovCitzdGF0aWMgdm9pZCB1ZGNfZGlzYWJsZShzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2KQoreworCS8qIGJsb2NrIGFsbCBpcnFzICovCisJdWRjX3NldF9tYXNrX1VEQ0NSKFVEQ0NSX1NSTXxVRENDUl9SRU0pOworCVVJQ1IwID0gVUlDUjEgPSAweGZmOworCVVGTlJIID0gVUZOUkhfU0lNOworCisJLyogaWYgaGFyZHdhcmUgc3VwcG9ydHMgaXQsIGRpc2Nvbm5lY3QgZnJvbSB1c2IgKi8KKwlwdWxsdXBfb2ZmKCk7CisKKwl1ZGNfY2xlYXJfbWFza19VRENDUihVRENDUl9VREUpOworCisJZXAwX2lkbGUgKGRldik7CisJZGV2LT5nYWRnZXQuc3BlZWQgPSBVU0JfU1BFRURfVU5LTk9XTjsKK30KKworCisvKgorICoJdWRjX3JlaW5pdCAtIGluaXRpYWxpemUgc29mdHdhcmUgc3RhdGUKKyAqLworc3RhdGljIHZvaWQgdWRjX3JlaW5pdChzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2KQoreworCXUzMglpOworCisJLyogZGV2aWNlL2VwMCByZWNvcmRzIGluaXQgKi8KKwlJTklUX0xJU1RfSEVBRCAoJmRldi0+Z2FkZ2V0LmVwX2xpc3QpOworCUlOSVRfTElTVF9IRUFEICgmZGV2LT5nYWRnZXQuZXAwLT5lcF9saXN0KTsKKwlkZXYtPmVwMHN0YXRlID0gRVAwX0lETEU7CisKKwkvKiBiYXNpYyBlbmRwb2ludCByZWNvcmRzIGluaXQgKi8KKwlmb3IgKGkgPSAwOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspIHsKKwkJc3RydWN0IHB4YTI1eF9lcCAqZXAgPSAmZGV2LT5lcFtpXTsKKworCQlpZiAoaSAhPSAwKQorCQkJbGlzdF9hZGRfdGFpbCAoJmVwLT5lcC5lcF9saXN0LCAmZGV2LT5nYWRnZXQuZXBfbGlzdCk7CisKKwkJZXAtPmRlc2MgPSBOVUxMOworCQllcC0+c3RvcHBlZCA9IDA7CisJCUlOSVRfTElTVF9IRUFEICgmZXAtPnF1ZXVlKTsKKwkJZXAtPnBpb19pcnFzID0gMDsKKwl9CisKKwkvKiB0aGUgcmVzdCB3YXMgc3RhdGljYWxseSBpbml0aWFsaXplZCwgYW5kIGlzIHJlYWQtb25seSAqLworfQorCisvKiB1bnRpbCBpdCdzIGVuYWJsZWQsIHRoaXMgVURDIHNob3VsZCBiZSBjb21wbGV0ZWx5IGludmlzaWJsZQorICogdG8gYW55IFVTQiBob3N0LgorICovCitzdGF0aWMgdm9pZCB1ZGNfZW5hYmxlIChzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2KQoreworCXVkY19jbGVhcl9tYXNrX1VEQ0NSKFVEQ0NSX1VERSk7CisKKwkvKiB0cnkgdG8gY2xlYXIgdGhlc2UgYml0cyBiZWZvcmUgd2UgZW5hYmxlIHRoZSB1ZGMgKi8KKwl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9TVVNJUnwvKlVEQ0NSX1JTVElSfCovVURDQ1JfUkVTSVIpOworCisJZXAwX2lkbGUoZGV2KTsKKwlkZXYtPmdhZGdldC5zcGVlZCA9IFVTQl9TUEVFRF9VTktOT1dOOworCWRldi0+c3RhdHMuaXJxcyA9IDA7CisKKwkvKgorCSAqIHNlcXVlbmNlIHRha2VuIGZyb20gY2hhcHRlciAxMi41LjEwLCBQWEEyNTAgQXBwUHJvY0Rldk1hbnVhbDoKKwkgKiAtIGVuYWJsZSBVREMKKwkgKiAtIGlmIFJFU0VUIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIGFjayBpbnRlcnJ1cHQKKwkgKiAtIHVubWFzayByZXNldCBpbnRlcnJ1cHQKKwkgKi8KKwl1ZGNfc2V0X21hc2tfVURDQ1IoVURDQ1JfVURFKTsKKwlpZiAoIShVRENDUiAmIFVEQ0NSX1VEQSkpCisJCXVkY19hY2tfaW50X1VEQ0NSKFVEQ0NSX1JTVElSKTsKKworCWlmIChkZXYtPmhhc19jZnIgLyogVURDX1JFUzIgaXMgZGVmaW5lZCAqLykgeworCQkvKiBweGEyNTUgKGEwKykgY2FuIGF2b2lkIGEgc2V0X2NvbmZpZyByYWNlIHRoYXQgY291bGQKKwkJICogcHJldmVudCBnYWRnZXQgZHJpdmVycyBmcm9tIGNvbmZpZ3VyaW5nIGNvcnJlY3RseQorCQkgKi8KKwkJVURDQ0ZSID0gVURDQ0ZSX0FDTSB8IFVEQ0NGUl9NQjE7CisJfSBlbHNlIHsKKwkJLyogIlVTQiB0ZXN0IG1vZGUiIGZvciBweGEyNTAgZXJyYXRhIDQwLTQyIChzdGVwcGluZyBhMCwgYTEpCisJCSAqIHdoaWNoIGNvdWxkIHJlc3VsdCBpbiBtaXNzaW5nIHBhY2tldHMgYW5kIGludGVycnVwdHMuCisJCSAqIHN1cHBvc2VkbHkgb25lIGJpdCBwZXIgZW5kcG9pbnQsIGNvbnRyb2xsaW5nIHdoZXRoZXIgaXQKKwkJICogZG91YmxlIGJ1ZmZlcnMgb3Igbm90OyBBQ00vQVJFTiBiaXRzIGZpdCBpbnRvIHRoZSBob2xlcy4KKwkJICogemVybyBiaXRzIChsaWtlIFVTSVIwX0lSeCkgZGlzYWJsZSBkb3VibGUgYnVmZmVyaW5nLgorCQkgKi8KKwkJVURDX1JFUzEgPSAweDAwOworCQlVRENfUkVTMiA9IDB4MDA7CisJfQorCisJLyogZW5hYmxlIHN1c3BlbmQvcmVzdW1lIGFuZCByZXNldCBpcnFzICovCisJdWRjX2NsZWFyX21hc2tfVURDQ1IoVURDQ1JfU1JNIHwgVURDQ1JfUkVNKTsKKworCS8qIGVuYWJsZSBlcDAgaXJxcyAqLworCVVJQ1IwICY9IH5VSUNSMF9JTTA7CisKKwkvKiBpZiBoYXJkd2FyZSBzdXBwb3J0cyBpdCwgcHVsbHVwIEQrIGFuZCB3YWl0IGZvciByZXNldCAqLworCXB1bGx1cF9vbigpOworfQorCisKKy8qIHdoZW4gYSBkcml2ZXIgaXMgc3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQsIGl0IHdpbGwgcmVjZWl2ZQorICogY29udHJvbCByZXF1ZXN0cyBpbmNsdWRpbmcgc2V0X2NvbmZpZ3VyYXRpb24oKSwgd2hpY2ggZW5hYmxlcworICogbm9uLWNvbnRyb2wgcmVxdWVzdHMuICB0aGVuIHVzYiB0cmFmZmljIGZvbGxvd3MgdW50aWwgYQorICogZGlzY29ubmVjdCBpcyByZXBvcnRlZC4gIHRoZW4gYSBob3N0IG1heSBjb25uZWN0IGFnYWluLCBvcgorICogdGhlIGRyaXZlciBtaWdodCBnZXQgdW5ib3VuZC4KKyAqLworaW50IHVzYl9nYWRnZXRfcmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqZHJpdmVyKQoreworCXN0cnVjdCBweGEyNXhfdWRjCSpkZXYgPSB0aGVfY29udHJvbGxlcjsKKwlpbnQJCQlyZXR2YWw7CisKKwlpZiAoIWRyaXZlcgorCQkJfHwgZHJpdmVyLT5zcGVlZCA8IFVTQl9TUEVFRF9GVUxMCisJCQl8fCAhZHJpdmVyLT5iaW5kCisJCQl8fCAhZHJpdmVyLT5kaXNjb25uZWN0CisJCQl8fCAhZHJpdmVyLT5zZXR1cCkKKwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCFkZXYpCisJCXJldHVybiAtRU5PREVWOworCWlmIChkZXYtPmRyaXZlcikKKwkJcmV0dXJuIC1FQlVTWTsKKworCS8qIGZpcnN0IGhvb2sgdXAgdGhlIGRyaXZlciAuLi4gKi8KKwlkZXYtPmRyaXZlciA9IGRyaXZlcjsKKwlkZXYtPmdhZGdldC5kZXYuZHJpdmVyID0gJmRyaXZlci0+ZHJpdmVyOworCWRldi0+cHVsbHVwID0gMTsKKworCXJldHZhbCA9IGRldmljZV9hZGQgKCZkZXYtPmdhZGdldC5kZXYpOworCWlmIChyZXR2YWwpIHsKK2ZhaWw6CisJCWRldi0+ZHJpdmVyID0gTlVMTDsKKwkJZGV2LT5nYWRnZXQuZGV2LmRyaXZlciA9IE5VTEw7CisJCXJldHVybiByZXR2YWw7CisJfQorCXJldHZhbCA9IGRyaXZlci0+YmluZCgmZGV2LT5nYWRnZXQpOworCWlmIChyZXR2YWwpIHsKKwkJRE1TRygiYmluZCB0byBkcml2ZXIgJXMgLS0+IGVycm9yICVkXG4iLAorCQkJCWRyaXZlci0+ZHJpdmVyLm5hbWUsIHJldHZhbCk7CisJCWRldmljZV9kZWwgKCZkZXYtPmdhZGdldC5kZXYpOworCQlnb3RvIGZhaWw7CisJfQorCisJLyogLi4uIHRoZW4gZW5hYmxlIGhvc3QgZGV0ZWN0aW9uIGFuZCBlcDA7IGFuZCB3ZSdyZSByZWFkeQorCSAqIGZvciBzZXRfY29uZmlndXJhdGlvbiBhcyB3ZWxsIGFzIGV2ZW50dWFsIGRpc2Nvbm5lY3QuCisJICovCisJRE1TRygicmVnaXN0ZXJlZCBnYWRnZXQgZHJpdmVyICclcydcbiIsIGRyaXZlci0+ZHJpdmVyLm5hbWUpOworCXB1bGx1cChkZXYpOworCWR1bXBfc3RhdGUoZGV2KTsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wodXNiX2dhZGdldF9yZWdpc3Rlcl9kcml2ZXIpOworCitzdGF0aWMgdm9pZAorc3RvcF9hY3Rpdml0eShzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2LCBzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIgKmRyaXZlcikKK3sKKwlpbnQgaTsKKworCS8qIGRvbid0IGRpc2Nvbm5lY3QgZHJpdmVycyBtb3JlIHRoYW4gb25jZSAqLworCWlmIChkZXYtPmdhZGdldC5zcGVlZCA9PSBVU0JfU1BFRURfVU5LTk9XTikKKwkJZHJpdmVyID0gTlVMTDsKKwlkZXYtPmdhZGdldC5zcGVlZCA9IFVTQl9TUEVFRF9VTktOT1dOOworCisJLyogcHJldmVudCBuZXcgcmVxdWVzdCBzdWJtaXNzaW9ucywga2lsbCBhbnkgb3V0c3RhbmRpbmcgcmVxdWVzdHMgICovCisJZm9yIChpID0gMDsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKSB7CisJCXN0cnVjdCBweGEyNXhfZXAgKmVwID0gJmRldi0+ZXBbaV07CisKKwkJZXAtPnN0b3BwZWQgPSAxOworCQludWtlKGVwLCAtRVNIVVRET1dOKTsKKwl9CisJZGVsX3RpbWVyX3N5bmMoJmRldi0+dGltZXIpOworCisJLyogcmVwb3J0IGRpc2Nvbm5lY3Q7IHRoZSBkcml2ZXIgaXMgYWxyZWFkeSBxdWllc2NlZCAqLworCWlmIChkcml2ZXIpCisJCWRyaXZlci0+ZGlzY29ubmVjdCgmZGV2LT5nYWRnZXQpOworCisJLyogcmUtaW5pdCBkcml2ZXItdmlzaWJsZSBkYXRhIHN0cnVjdHVyZXMgKi8KKwl1ZGNfcmVpbml0KGRldik7Cit9CisKK2ludCB1c2JfZ2FkZ2V0X3VucmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqZHJpdmVyKQoreworCXN0cnVjdCBweGEyNXhfdWRjCSpkZXYgPSB0aGVfY29udHJvbGxlcjsKKworCWlmICghZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoIWRyaXZlciB8fCBkcml2ZXIgIT0gZGV2LT5kcml2ZXIgfHwgIWRyaXZlci0+dW5iaW5kKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWxvY2FsX2lycV9kaXNhYmxlKCk7CisJZGV2LT5wdWxsdXAgPSAwOworCXB1bGx1cChkZXYpOworCXN0b3BfYWN0aXZpdHkoZGV2LCBkcml2ZXIpOworCWxvY2FsX2lycV9lbmFibGUoKTsKKworCWRyaXZlci0+dW5iaW5kKCZkZXYtPmdhZGdldCk7CisJZGV2LT5nYWRnZXQuZGV2LmRyaXZlciA9IE5VTEw7CisJZGV2LT5kcml2ZXIgPSBOVUxMOworCisJZGV2aWNlX2RlbCAoJmRldi0+Z2FkZ2V0LmRldik7CisKKwlETVNHKCJ1bnJlZ2lzdGVyZWQgZ2FkZ2V0IGRyaXZlciAnJXMnXG4iLCBkcml2ZXItPmRyaXZlci5uYW1lKTsKKwlkdW1wX3N0YXRlKGRldik7CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKHVzYl9nYWRnZXRfdW5yZWdpc3Rlcl9kcml2ZXIpOworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNpZmRlZiBDT05GSUdfQVJDSF9MVUJCT0NLCisKKy8qIEx1YmJvY2sgaGFzIHNlcGFyYXRlIGNvbm5lY3QgYW5kIGRpc2Nvbm5lY3QgaXJxcy4gIE1vcmUgdHlwaWNhbCBkZXNpZ25zCisgKiB1c2Ugb25lIEdQSU8gYXMgdGhlIFZCVVMgSVJRLCBhbmQgYW5vdGhlciB0byBjb250cm9sIHRoZSBEKyBwdWxsdXAuCisgKi8KKworc3RhdGljIGlycXJldHVybl90CitsdWJib2NrX3ZidXNfaXJxKGludCBpcnEsIHZvaWQgKl9kZXYpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKmRldiA9IF9kZXY7CisJaW50CQkJdmJ1czsKKworCWRldi0+c3RhdHMuaXJxcysrOworCXN3aXRjaCAoaXJxKSB7CisJY2FzZSBMVUJCT0NLX1VTQl9JUlE6CisJCXZidXMgPSAxOworCQlkaXNhYmxlX2lycShMVUJCT0NLX1VTQl9JUlEpOworCQllbmFibGVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRKTsKKwkJYnJlYWs7CisJY2FzZSBMVUJCT0NLX1VTQl9ESVNDX0lSUToKKwkJdmJ1cyA9IDA7CisJCWRpc2FibGVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRKTsKKwkJZW5hYmxlX2lycShMVUJCT0NLX1VTQl9JUlEpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gSVJRX05PTkU7CisJfQorCisJcHhhMjV4X3VkY192YnVzX3Nlc3Npb24oJmRldi0+Z2FkZ2V0LCB2YnVzKTsKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKKyNlbmRpZgorCitzdGF0aWMgaXJxcmV0dXJuX3QgdWRjX3ZidXNfaXJxKGludCBpcnEsIHZvaWQgKl9kZXYpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKmRldiA9IF9kZXY7CisJaW50CQkJdmJ1cyA9IGdwaW9fZ2V0X3ZhbHVlKGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKKworCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1c19pbnZlcnRlZCkKKwkJdmJ1cyA9ICF2YnVzOworCisJcHhhMjV4X3VkY192YnVzX3Nlc3Npb24oJmRldi0+Z2FkZ2V0LCB2YnVzKTsKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2VwX3N0YXRlIChzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2KQoreworCXVuc2lnbmVkIGk7CisKKwkvKiBoYXJkd2FyZSBTRVRfe0NPTkZJR1VSQVRJT04sSU5URVJGQUNFfSBhdXRvbWFnaWMgcmVzZXRzIGVuZHBvaW50CisJICogZmlmb3MsIGFuZCBwZW5kaW5nIHRyYW5zYWN0aW9ucyBtdXN0bid0IGJlIGNvbnRpbnVlZCBpbiBhbnkgY2FzZS4KKwkgKi8KKwlmb3IgKGkgPSAxOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspCisJCW51a2UoJmRldi0+ZXBbaV0sIC1FQ09OTkFCT1JURUQpOworfQorCitzdGF0aWMgdm9pZCB1ZGNfd2F0Y2hkb2codW5zaWduZWQgbG9uZyBfZGV2KQoreworCXN0cnVjdCBweGEyNXhfdWRjCSpkZXYgPSAodm9pZCAqKV9kZXY7CisKKwlsb2NhbF9pcnFfZGlzYWJsZSgpOworCWlmIChkZXYtPmVwMHN0YXRlID09IEVQMF9TVEFMTAorCQkJJiYgKFVEQ0NTMCAmIFVEQ0NTMF9GU1QpID09IDAKKwkJCSYmIChVRENDUzAgJiBVRENDUzBfU1NUKSA9PSAwKSB7CisJCVVEQ0NTMCA9IFVEQ0NTMF9GU1R8VURDQ1MwX0ZURjsKKwkJREJHKERCR19WRVJCT1NFLCAiZXAwIHJlLXN0YWxsXG4iKTsKKwkJc3RhcnRfd2F0Y2hkb2coZGV2KTsKKwl9CisJbG9jYWxfaXJxX2VuYWJsZSgpOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVfZXAwIChzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2KQoreworCXUzMgkJCXVkY2NzMCA9IFVEQ0NTMDsKKwlzdHJ1Y3QgcHhhMjV4X2VwCSplcCA9ICZkZXYtPmVwIFswXTsKKwlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QJKnJlcTsKKwl1bmlvbiB7CisJCXN0cnVjdCB1c2JfY3RybHJlcXVlc3QJcjsKKwkJdTgJCQlyYXcgWzhdOworCQl1MzIJCQl3b3JkIFsyXTsKKwl9IHU7CisKKwlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkKKwkJcmVxID0gTlVMTDsKKwllbHNlCisJCXJlcSA9IGxpc3RfZW50cnkoZXAtPnF1ZXVlLm5leHQsIHN0cnVjdCBweGEyNXhfcmVxdWVzdCwgcXVldWUpOworCisJLyogY2xlYXIgc3RhbGwgc3RhdHVzICovCisJaWYgKHVkY2NzMCAmIFVEQ0NTMF9TU1QpIHsKKwkJbnVrZShlcCwgLUVQSVBFKTsKKwkJVURDQ1MwID0gVURDQ1MwX1NTVDsKKwkJZGVsX3RpbWVyKCZkZXYtPnRpbWVyKTsKKwkJZXAwX2lkbGUoZGV2KTsKKwl9CisKKwkvKiBwcmV2aW91cyByZXF1ZXN0IHVuZmluaXNoZWQ/ICBub24tZXJyb3IgaWZmIGJhY2stdG8tYmFjayAuLi4gKi8KKwlpZiAoKHVkY2NzMCAmIFVEQ0NTMF9TQSkgIT0gMCAmJiBkZXYtPmVwMHN0YXRlICE9IEVQMF9JRExFKSB7CisJCW51a2UoZXAsIDApOworCQlkZWxfdGltZXIoJmRldi0+dGltZXIpOworCQllcDBfaWRsZShkZXYpOworCX0KKworCXN3aXRjaCAoZGV2LT5lcDBzdGF0ZSkgeworCWNhc2UgRVAwX0lETEU6CisJCS8qIGxhdGUtYnJlYWtpbmcgc3RhdHVzPyAqLworCQl1ZGNjczAgPSBVRENDUzA7CisKKwkJLyogc3RhcnQgY29udHJvbCByZXF1ZXN0PyAqLworCQlpZiAobGlrZWx5KCh1ZGNjczAgJiAoVURDQ1MwX09QUnxVRENDUzBfU0F8VURDQ1MwX1JORSkpCisJCQkJPT0gKFVEQ0NTMF9PUFJ8VURDQ1MwX1NBfFVEQ0NTMF9STkUpKSkgeworCQkJaW50IGk7CisKKwkJCW51a2UgKGVwLCAtRVBST1RPKTsKKworCQkJLyogcmVhZCBTRVRVUCBwYWNrZXQgKi8KKwkJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJCQlpZiAodW5saWtlbHkoIShVRENDUzAgJiBVRENDUzBfUk5FKSkpIHsKK2JhZF9zZXR1cDoKKwkJCQkJRE1TRygiU0VUVVAgJWQhXG4iLCBpKTsKKwkJCQkJZ290byBzdGFsbDsKKwkJCQl9CisJCQkJdS5yYXcgW2ldID0gKHU4KSBVRERSMDsKKwkJCX0KKwkJCWlmICh1bmxpa2VseSgoVURDQ1MwICYgVURDQ1MwX1JORSkgIT0gMCkpCisJCQkJZ290byBiYWRfc2V0dXA7CisKK2dvdF9zZXR1cDoKKwkJCURCRyhEQkdfVkVSQk9TRSwgIlNFVFVQICUwMnguJTAyeCB2JTA0eCBpJTA0eCBsJTA0eFxuIiwKKwkJCQl1LnIuYlJlcXVlc3RUeXBlLCB1LnIuYlJlcXVlc3QsCisJCQkJbGUxNl90b19jcHUodS5yLndWYWx1ZSksCisJCQkJbGUxNl90b19jcHUodS5yLndJbmRleCksCisJCQkJbGUxNl90b19jcHUodS5yLndMZW5ndGgpKTsKKworCQkJLyogY29wZSB3aXRoIGF1dG9tYWdpYyBmb3Igc29tZSBzdGFuZGFyZCByZXF1ZXN0cy4gKi8KKwkJCWRldi0+cmVxX3N0ZCA9ICh1LnIuYlJlcXVlc3RUeXBlICYgVVNCX1RZUEVfTUFTSykKKwkJCQkJCT09IFVTQl9UWVBFX1NUQU5EQVJEOworCQkJZGV2LT5yZXFfY29uZmlnID0gMDsKKwkJCWRldi0+cmVxX3BlbmRpbmcgPSAxOworCQkJc3dpdGNoICh1LnIuYlJlcXVlc3QpIHsKKwkJCS8qIGhhcmR3YXJlIHJlc3RyaWN0cyBnYWRnZXQgZHJpdmVycyBoZXJlISAqLworCQkJY2FzZSBVU0JfUkVRX1NFVF9DT05GSUdVUkFUSU9OOgorCQkJCWlmICh1LnIuYlJlcXVlc3RUeXBlID09IFVTQl9SRUNJUF9ERVZJQ0UpIHsKKwkJCQkJLyogcmVmbGVjdCBoYXJkd2FyZSdzIGF1dG9tYWdpYworCQkJCQkgKiB1cCB0byB0aGUgZ2FkZ2V0IGRyaXZlci4KKwkJCQkJICovCitjb25maWdfY2hhbmdlOgorCQkJCQlkZXYtPnJlcV9jb25maWcgPSAxOworCQkJCQljbGVhcl9lcF9zdGF0ZShkZXYpOworCQkJCQkvKiBpZiAhaGFzX2NmciwgdGhlcmUncyBubyBzeW5jaAorCQkJCQkgKiBlbHNlIHVzZSBBUkVOIChsYXRlcikgbm90IFNBfE9QUgorCQkJCQkgKiBVU0lSMF9JUjAgYWN0cyBlZGdlIHNlbnNpdGl2ZQorCQkJCQkgKi8KKwkJCQl9CisJCQkJYnJlYWs7CisJCQkvKiAuLi4gYW5kIGhlcmUsIGV2ZW4gbW9yZSAuLi4gKi8KKwkJCWNhc2UgVVNCX1JFUV9TRVRfSU5URVJGQUNFOgorCQkJCWlmICh1LnIuYlJlcXVlc3RUeXBlID09IFVTQl9SRUNJUF9JTlRFUkZBQ0UpIHsKKwkJCQkJLyogdWRjIGhhcmR3YXJlIGlzIGJyb2tlbiBieSBkZXNpZ246CisJCQkJCSAqICAtIGFsdHNldHRpbmcgbWF5IG9ubHkgYmUgemVybzsKKwkJCQkJICogIC0gaHcgcmVzZXRzIGFsbCBpbnRlcmZhY2VzJyBlcHM7CisJCQkJCSAqICAtIGVwIHJlc2V0IGRvZXNuJ3QgaW5jbHVkZSBoYWx0KD8pLgorCQkJCQkgKi8KKwkJCQkJRE1TRygiYnJva2VuIHNldF9pbnRlcmZhY2UgKCVkLyVkKVxuIiwKKwkJCQkJCWxlMTZfdG9fY3B1KHUuci53SW5kZXgpLAorCQkJCQkJbGUxNl90b19jcHUodS5yLndWYWx1ZSkpOworCQkJCQlnb3RvIGNvbmZpZ19jaGFuZ2U7CisJCQkJfQorCQkJCWJyZWFrOworCQkJLyogaGFyZHdhcmUgd2FzIHN1cHBvc2VkIHRvIGhpZGUgdGhpcyAqLworCQkJY2FzZSBVU0JfUkVRX1NFVF9BRERSRVNTOgorCQkJCWlmICh1LnIuYlJlcXVlc3RUeXBlID09IFVTQl9SRUNJUF9ERVZJQ0UpIHsKKwkJCQkJZXAwc3RhcnQoZGV2LCAwLCAiYWRkcmVzcyIpOworCQkJCQlyZXR1cm47CisJCQkJfQorCQkJCWJyZWFrOworCQkJfQorCisJCQlpZiAodS5yLmJSZXF1ZXN0VHlwZSAmIFVTQl9ESVJfSU4pCisJCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9JTl9EQVRBX1BIQVNFOworCQkJZWxzZQorCQkJCWRldi0+ZXAwc3RhdGUgPSBFUDBfT1VUX0RBVEFfUEhBU0U7CisKKwkJCWkgPSBkZXYtPmRyaXZlci0+c2V0dXAoJmRldi0+Z2FkZ2V0LCAmdS5yKTsKKwkJCWlmIChpIDwgMCkgeworCQkJCS8qIGhhcmR3YXJlIGF1dG9tYWdpYyBwcmV2ZW50aW5nIFNUQUxMLi4uICovCisJCQkJaWYgKGRldi0+cmVxX2NvbmZpZykgeworCQkJCQkvKiBoYXJkd2FyZSBzb21ldGltZXMgbmVnbGVjdHMgdG8gdGVsbAorCQkJCQkgKiB0ZWxsIHVzIGFib3V0IGNvbmZpZyBjaGFuZ2UgZXZlbnRzLAorCQkJCQkgKiBzbyBsYXRlciBvbmVzIG1heSBmYWlsLi4uCisJCQkJCSAqLworCQkJCQlXQVJOKCJjb25maWcgY2hhbmdlICUwMnggZmFpbCAlZD9cbiIsCisJCQkJCQl1LnIuYlJlcXVlc3QsIGkpOworCQkJCQlyZXR1cm47CisJCQkJCS8qIFRPRE8gZXhwZXJpbWVudDogIGlmIGhhc19jZnIsCisJCQkJCSAqIGhhcmR3YXJlIGRpZG4ndCBBQ0s7IG1heWJlIHdlCisJCQkJCSAqIGNvdWxkIGFjdHVhbGx5IFNUQUxMIQorCQkJCQkgKi8KKwkJCQl9CisJCQkJREJHKERCR19WRVJCT1NFLCAicHJvdG9jb2wgU1RBTEwsICIKKwkJCQkJIiUwMnggZXJyICVkXG4iLCBVRENDUzAsIGkpOworc3RhbGw6CisJCQkJLyogdGhlIHdhdGNoZG9nIHRpbWVyIGhlbHBzIGRlYWwgd2l0aCBjYXNlcworCQkJCSAqIHdoZXJlIHVkYyBzZWVtcyB0byBjbGVhciBGU1Qgd3JvbmdseSwgYW5kCisJCQkJICogdGhlbiBOQUtzIGluc3RlYWQgb2YgU1RBTExpbmcuCisJCQkJICovCisJCQkJZXAwc3RhcnQoZGV2LCBVRENDUzBfRlNUfFVEQ0NTMF9GVEYsICJzdGFsbCIpOworCQkJCXN0YXJ0X3dhdGNoZG9nKGRldik7CisJCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9TVEFMTDsKKworCQkJLyogZGVmZXJyZWQgaS9vID09IG5vIHJlc3BvbnNlIHlldCAqLworCQkJfSBlbHNlIGlmIChkZXYtPnJlcV9wZW5kaW5nKSB7CisJCQkJaWYgKGxpa2VseShkZXYtPmVwMHN0YXRlID09IEVQMF9JTl9EQVRBX1BIQVNFCisJCQkJCQl8fCBkZXYtPnJlcV9zdGQgfHwgdS5yLndMZW5ndGgpKQorCQkJCQllcDBzdGFydChkZXYsIDAsICJkZWZlciIpOworCQkJCWVsc2UKKwkJCQkJZXAwc3RhcnQoZGV2LCBVRENDUzBfSVBSLCAiZGVmZXIvSVBSIik7CisJCQl9CisKKwkJCS8qIGV4cGVjdCBhdCBsZWFzdCBvbmUgZGF0YSBvciBzdGF0dXMgc3RhZ2UgaXJxICovCisJCQlyZXR1cm47CisKKwkJfSBlbHNlIGlmIChsaWtlbHkoKHVkY2NzMCAmIChVRENDUzBfT1BSfFVEQ0NTMF9TQSkpCisJCQkJPT0gKFVEQ0NTMF9PUFJ8VURDQ1MwX1NBKSkpIHsKKwkJCXVuc2lnbmVkIGk7CisKKwkJCS8qIHB4YTIxMC8yNTAgZXJyYXR1bSAxMzEgZm9yIEIwL0IxIHNheXMgUk5FIGxpZXMuCisJCQkgKiBzdGlsbCBvYnNlcnZlZCBvbiBhIHB4YTI1NSBhMC4KKwkJCSAqLworCQkJREJHKERCR19WRVJCT1NFLCAiZTEzMVxuIik7CisJCQludWtlKGVwLCAtRVBST1RPKTsKKworCQkJLyogcmVhZCBTRVRVUCBkYXRhLCBidXQgZG9uJ3QgdHJ1c3QgaXQgdG9vIG11Y2ggKi8KKwkJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCisJCQkJdS5yYXcgW2ldID0gKHU4KSBVRERSMDsKKwkJCWlmICgodS5yLmJSZXF1ZXN0VHlwZSAmIFVTQl9SRUNJUF9NQVNLKQorCQkJCQk+IFVTQl9SRUNJUF9PVEhFUikKKwkJCQlnb3RvIHN0YWxsOworCQkJaWYgKHUud29yZCBbMF0gPT0gMCAmJiB1LndvcmQgWzFdID09IDApCisJCQkJZ290byBzdGFsbDsKKwkJCWdvdG8gZ290X3NldHVwOworCQl9IGVsc2UgeworCQkJLyogc29tZSByYW5kb20gZWFybHkgSVJROgorCQkJICogLSB3ZSBhY2tlZCBGU1QKKwkJCSAqIC0gSVBSIGNsZWFyZWQKKwkJCSAqIC0gT1BSIGdvdCBzZXQsIHdpdGhvdXQgU0EgKGxpa2VseSBzdGF0dXMgc3RhZ2UpCisJCQkgKi8KKwkJCVVEQ0NTMCA9IHVkY2NzMCAmIChVRENDUzBfU0F8VURDQ1MwX09QUik7CisJCX0KKwkJYnJlYWs7CisJY2FzZSBFUDBfSU5fREFUQV9QSEFTRToJCQkvKiBHRVRfREVTQ1JJUFRPUiBldGMgKi8KKwkJaWYgKHVkY2NzMCAmIFVEQ0NTMF9PUFIpIHsKKwkJCVVEQ0NTMCA9IFVEQ0NTMF9PUFJ8VURDQ1MwX0ZURjsKKwkJCURCRyhEQkdfVkVSQk9TRSwgImVwMGluIHByZW1hdHVyZSBzdGF0dXNcbiIpOworCQkJaWYgKHJlcSkKKwkJCQlkb25lKGVwLCByZXEsIDApOworCQkJZXAwX2lkbGUoZGV2KTsKKwkJfSBlbHNlIC8qIGlycSB3YXMgSVBSIGNsZWFyaW5nICovIHsKKwkJCWlmIChyZXEpIHsKKwkJCQkvKiB0aGlzIElOIHBhY2tldCBtaWdodCBmaW5pc2ggdGhlIHJlcXVlc3QgKi8KKwkJCQkodm9pZCkgd3JpdGVfZXAwX2ZpZm8oZXAsIHJlcSk7CisJCQl9IC8qIGVsc2UgSU4gdG9rZW4gYmVmb3JlIHJlc3BvbnNlIHdhcyB3cml0dGVuICovCisJCX0KKwkJYnJlYWs7CisJY2FzZSBFUDBfT1VUX0RBVEFfUEhBU0U6CQkvKiBTRVRfREVTQ1JJUFRPUiBldGMgKi8KKwkJaWYgKHVkY2NzMCAmIFVEQ0NTMF9PUFIpIHsKKwkJCWlmIChyZXEpIHsKKwkJCQkvKiB0aGlzIE9VVCBwYWNrZXQgbWlnaHQgZmluaXNoIHRoZSByZXF1ZXN0ICovCisJCQkJaWYgKHJlYWRfZXAwX2ZpZm8oZXAsIHJlcSkpCisJCQkJCWRvbmUoZXAsIHJlcSwgMCk7CisJCQkJLyogZWxzZSBtb3JlIE9VVCBwYWNrZXRzIGV4cGVjdGVkICovCisJCQl9IC8qIGVsc2UgT1VUIHRva2VuIGJlZm9yZSByZWFkIHdhcyBpc3N1ZWQgKi8KKwkJfSBlbHNlIC8qIGlycSB3YXMgSVBSIGNsZWFyaW5nICovIHsKKwkJCURCRyhEQkdfVkVSQk9TRSwgImVwMG91dCBwcmVtYXR1cmUgc3RhdHVzXG4iKTsKKwkJCWlmIChyZXEpCisJCQkJZG9uZShlcCwgcmVxLCAwKTsKKwkJCWVwMF9pZGxlKGRldik7CisJCX0KKwkJYnJlYWs7CisJY2FzZSBFUDBfRU5EX1hGRVI6CisJCWlmIChyZXEpCisJCQlkb25lKGVwLCByZXEsIDApOworCQkvKiBhY2sgY29udHJvbC1JTiBzdGF0dXMgKG1heWJlIGluLXpscCB3YXMgc2tpcHBlZCkKKwkJICogYWxzbyBhcHBlYXJzIGFmdGVyIHNvbWUgY29uZmlnIGNoYW5nZSBldmVudHMuCisJCSAqLworCQlpZiAodWRjY3MwICYgVURDQ1MwX09QUikKKwkJCVVEQ0NTMCA9IFVEQ0NTMF9PUFI7CisJCWVwMF9pZGxlKGRldik7CisJCWJyZWFrOworCWNhc2UgRVAwX1NUQUxMOgorCQlVRENDUzAgPSBVRENDUzBfRlNUOworCQlicmVhazsKKwl9CisJVVNJUjAgPSBVU0lSMF9JUjA7Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZV9lcChzdHJ1Y3QgcHhhMjV4X2VwICplcCkKK3sKKwlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QJKnJlcTsKKwlpbnQJCQlpc19pbiA9IGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTjsKKwlpbnQJCQljb21wbGV0ZWQ7CisJdTMyCQkJdWRjY3MsIHRtcDsKKworCWRvIHsKKwkJY29tcGxldGVkID0gMDsKKwkJaWYgKGxpa2VseSAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpKQorCQkJcmVxID0gbGlzdF9lbnRyeShlcC0+cXVldWUubmV4dCwKKwkJCQkJc3RydWN0IHB4YTI1eF9yZXF1ZXN0LCBxdWV1ZSk7CisJCWVsc2UKKwkJCXJlcSA9IE5VTEw7CisKKwkJLy8gVE9ETyBjaGVjayBGU1QgaGFuZGxpbmcKKworCQl1ZGNjcyA9ICplcC0+cmVnX3VkY2NzOworCQlpZiAodW5saWtlbHkoaXNfaW4pKSB7CS8qIGlycSBmcm9tIFRQQywgU1NULCBvciAoSVNPKSBUVVIgKi8KKwkJCXRtcCA9IFVEQ0NTX0JJX1RVUjsKKwkJCWlmIChsaWtlbHkoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLKSkKKwkJCQl0bXAgfD0gVURDQ1NfQklfU1NUOworCQkJdG1wICY9IHVkY2NzOworCQkJaWYgKGxpa2VseSAodG1wKSkKKwkJCQkqZXAtPnJlZ191ZGNjcyA9IHRtcDsKKwkJCWlmIChyZXEgJiYgbGlrZWx5ICgodWRjY3MgJiBVRENDU19CSV9URlMpICE9IDApKQorCQkJCWNvbXBsZXRlZCA9IHdyaXRlX2ZpZm8oZXAsIHJlcSk7CisKKwkJfSBlbHNlIHsJLyogaXJxIGZyb20gUlBDIChvciBmb3IgSVNPLCBST0YpICovCisJCQlpZiAobGlrZWx5KGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSykpCisJCQkJdG1wID0gVURDQ1NfQk9fU1NUIHwgVURDQ1NfQk9fRE1FOworCQkJZWxzZQorCQkJCXRtcCA9IFVEQ0NTX0lPX1JPRiB8IFVEQ0NTX0lPX0RNRTsKKwkJCXRtcCAmPSB1ZGNjczsKKwkJCWlmIChsaWtlbHkodG1wKSkKKwkJCQkqZXAtPnJlZ191ZGNjcyA9IHRtcDsKKworCQkJLyogZmlmb3MgY2FuIGhvbGQgcGFja2V0cywgcmVhZHkgZm9yIHJlYWRpbmcuLi4gKi8KKwkJCWlmIChsaWtlbHkocmVxKSkgeworCQkJCWNvbXBsZXRlZCA9IHJlYWRfZmlmbyhlcCwgcmVxKTsKKwkJCX0gZWxzZQorCQkJCXBpb19pcnFfZGlzYWJsZSAoZXAtPmJFbmRwb2ludEFkZHJlc3MpOworCQl9CisJCWVwLT5waW9faXJxcysrOworCX0gd2hpbGUgKGNvbXBsZXRlZCk7Cit9CisKKy8qCisgKglweGEyNXhfdWRjX2lycSAtIGludGVycnVwdCBoYW5kbGVyCisgKgorICogYXZvaWQgZGVsYXlzIGluIGVwMCBwcm9jZXNzaW5nLiB0aGUgY29udHJvbCBoYW5kc2hha2luZyBpc24ndCBhbHdheXMKKyAqIHVuZGVyIHNvZnR3YXJlIGNvbnRyb2wgKHB4YTI1MGMwIGFuZCB0aGUgcHhhMjU1IGFyZSBiZXR0ZXIpLCBhbmQgZGVsYXlzCisgKiBjb3VsZCBjYXVzZSB1c2IgcHJvdG9jb2wgZXJyb3JzLgorICovCitzdGF0aWMgaXJxcmV0dXJuX3QKK3B4YTI1eF91ZGNfaXJxKGludCBpcnEsIHZvaWQgKl9kZXYpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKmRldiA9IF9kZXY7CisJaW50CQkJaGFuZGxlZDsKKworCWRldi0+c3RhdHMuaXJxcysrOworCWRvIHsKKwkJdTMyCQl1ZGNjciA9IFVEQ0NSOworCisJCWhhbmRsZWQgPSAwOworCisJCS8qIFNVU3BlbmQgSW50ZXJydXB0IFJlcXVlc3QgKi8KKwkJaWYgKHVubGlrZWx5KHVkY2NyICYgVURDQ1JfU1VTSVIpKSB7CisJCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9TVVNJUik7CisJCQloYW5kbGVkID0gMTsKKwkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiBzdXNwZW5kJXNcbiIsIGlzX3ZidXNfcHJlc2VudCgpCisJCQkJPyAiIiA6ICIrZGlzY29ubmVjdCIpOworCisJCQlpZiAoIWlzX3ZidXNfcHJlc2VudCgpKQorCQkJCXN0b3BfYWN0aXZpdHkoZGV2LCBkZXYtPmRyaXZlcik7CisJCQllbHNlIGlmIChkZXYtPmdhZGdldC5zcGVlZCAhPSBVU0JfU1BFRURfVU5LTk9XTgorCQkJCQkmJiBkZXYtPmRyaXZlcgorCQkJCQkmJiBkZXYtPmRyaXZlci0+c3VzcGVuZCkKKwkJCQlkZXYtPmRyaXZlci0+c3VzcGVuZCgmZGV2LT5nYWRnZXQpOworCQkJZXAwX2lkbGUgKGRldik7CisJCX0KKworCQkvKiBSRVN1bWUgSW50ZXJydXB0IFJlcXVlc3QgKi8KKwkJaWYgKHVubGlrZWx5KHVkY2NyICYgVURDQ1JfUkVTSVIpKSB7CisJCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9SRVNJUik7CisJCQloYW5kbGVkID0gMTsKKwkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiByZXN1bWVcbiIpOworCisJCQlpZiAoZGV2LT5nYWRnZXQuc3BlZWQgIT0gVVNCX1NQRUVEX1VOS05PV04KKwkJCQkJJiYgZGV2LT5kcml2ZXIKKwkJCQkJJiYgZGV2LT5kcml2ZXItPnJlc3VtZQorCQkJCQkmJiBpc192YnVzX3ByZXNlbnQoKSkKKwkJCQlkZXYtPmRyaXZlci0+cmVzdW1lKCZkZXYtPmdhZGdldCk7CisJCX0KKworCQkvKiBSZVNlVCBJbnRlcnJ1cHQgUmVxdWVzdCAtIFVTQiByZXNldCAqLworCQlpZiAodW5saWtlbHkodWRjY3IgJiBVRENDUl9SU1RJUikpIHsKKwkJCXVkY19hY2tfaW50X1VEQ0NSKFVEQ0NSX1JTVElSKTsKKwkJCWhhbmRsZWQgPSAxOworCisJCQlpZiAoKFVEQ0NSICYgVURDQ1JfVURBKSA9PSAwKSB7CisJCQkJREJHKERCR19WRVJCT1NFLCAiVVNCIHJlc2V0IHN0YXJ0XG4iKTsKKworCQkJCS8qIHJlc2V0IGRyaXZlciBhbmQgZW5kcG9pbnRzLAorCQkJCSAqIGluIGNhc2UgdGhhdCdzIG5vdCB5ZXQgZG9uZQorCQkJCSAqLworCQkJCXN0b3BfYWN0aXZpdHkgKGRldiwgZGV2LT5kcml2ZXIpOworCisJCQl9IGVsc2UgeworCQkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiByZXNldCBlbmRcbiIpOworCQkJCWRldi0+Z2FkZ2V0LnNwZWVkID0gVVNCX1NQRUVEX0ZVTEw7CisJCQkJbWVtc2V0KCZkZXYtPnN0YXRzLCAwLCBzaXplb2YgZGV2LT5zdGF0cyk7CisJCQkJLyogZHJpdmVyIGFuZCBlbmRwb2ludHMgYXJlIHN0aWxsIHJlc2V0ICovCisJCQl9CisKKwkJfSBlbHNlIHsKKwkJCXUzMgl1c2lyMCA9IFVTSVIwICYgflVJQ1IwOworCQkJdTMyCXVzaXIxID0gVVNJUjEgJiB+VUlDUjE7CisJCQlpbnQJaTsKKworCQkJaWYgKHVubGlrZWx5ICghdXNpcjAgJiYgIXVzaXIxKSkKKwkJCQljb250aW51ZTsKKworCQkJREJHKERCR19WRVJZX05PSVNZLCAiaXJxICUwMnguJTAyeFxuIiwgdXNpcjEsIHVzaXIwKTsKKworCQkJLyogY29udHJvbCB0cmFmZmljICovCisJCQlpZiAodXNpcjAgJiBVU0lSMF9JUjApIHsKKwkJCQlkZXYtPmVwWzBdLnBpb19pcnFzKys7CisJCQkJaGFuZGxlX2VwMChkZXYpOworCQkJCWhhbmRsZWQgPSAxOworCQkJfQorCisJCQkvKiBlbmRwb2ludCBkYXRhIHRyYW5zZmVycyAqLworCQkJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQkJCXUzMgl0bXAgPSAxIDw8IGk7CisKKwkJCQlpZiAoaSAmJiAodXNpcjAgJiB0bXApKSB7CisJCQkJCWhhbmRsZV9lcCgmZGV2LT5lcFtpXSk7CisJCQkJCVVTSVIwIHw9IHRtcDsKKwkJCQkJaGFuZGxlZCA9IDE7CisJCQkJfQorCQkJCWlmICh1c2lyMSAmIHRtcCkgeworCQkJCQloYW5kbGVfZXAoJmRldi0+ZXBbaSs4XSk7CisJCQkJCVVTSVIxIHw9IHRtcDsKKwkJCQkJaGFuZGxlZCA9IDE7CisJCQkJfQorCQkJfQorCQl9CisKKwkJLyogd2UgY291bGQgYWxzbyBhc2sgZm9yIDEgbXNlYyBTT0YgKFNJUikgaW50ZXJydXB0cyAqLworCisJfSB3aGlsZSAoaGFuZGxlZCk7CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitzdGF0aWMgdm9pZCBub3BfcmVsZWFzZSAoc3RydWN0IGRldmljZSAqZGV2KQoreworCURNU0coIiVzICVzXG4iLCBfX2Z1bmNfXywgZGV2LT5idXNfaWQpOworfQorCisvKiB0aGlzIHVzZXMgbG9hZC10aW1lIGFsbG9jYXRpb24gYW5kIGluaXRpYWxpemF0aW9uIChpbnN0ZWFkIG9mCisgKiBkb2luZyBpdCBhdCBydW4tdGltZSkgdG8gc2F2ZSBjb2RlLCBlbGltaW5hdGUgZmF1bHQgcGF0aHMsIGFuZAorICogYmUgbW9yZSBvYnZpb3VzbHkgY29ycmVjdC4KKyAqLworc3RhdGljIHN0cnVjdCBweGEyNXhfdWRjIG1lbW9yeSA9IHsKKwkuZ2FkZ2V0ID0geworCQkub3BzCQk9ICZweGEyNXhfdWRjX29wcywKKwkJLmVwMAkJPSAmbWVtb3J5LmVwWzBdLmVwLAorCQkubmFtZQkJPSBkcml2ZXJfbmFtZSwKKwkJLmRldiA9IHsKKwkJCS5idXNfaWQJCT0gImdhZGdldCIsCisJCQkucmVsZWFzZQk9IG5vcF9yZWxlYXNlLAorCQl9LAorCX0sCisKKwkvKiBjb250cm9sIGVuZHBvaW50ICovCisJLmVwWzBdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSBlcDBuYW1lLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBFUDBfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MwLAorCQkucmVnX3VkZHIJPSAmVUREUjAsCisJfSwKKworCS8qIGZpcnN0IGdyb3VwIG9mIGVuZHBvaW50cyAqLworCS5lcFsxXSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwMWluLWJ1bGsiLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDEsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMSwKKwkJLnJlZ191ZGRyCT0gJlVERFIxLAorCX0sCisJLmVwWzJdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXAyb3V0LWJ1bGsiLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gMiwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MyLAorCQkucmVnX3ViY3IJPSAmVUJDUjIsCisJCS5yZWdfdWRkcgk9ICZVRERSMiwKKwl9LAorI2lmbmRlZiBDT05GSUdfVVNCX1BYQTI1WF9TTUFMTAorCS5lcFszXSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwM2luLWlzbyIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDMsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMywKKwkJLnJlZ191ZGRyCT0gJlVERFIzLAorCX0sCisJLmVwWzRdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXA0b3V0LWlzbyIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gNCwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCisJCS5yZWdfdWRjY3MJPSAmVURDQ1M0LAorCQkucmVnX3ViY3IJPSAmVUJDUjQsCisJCS5yZWdfdWRkcgk9ICZVRERSNCwKKwl9LAorCS5lcFs1XSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwNWluLWludCIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IElOVF9GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IElOVF9GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDUsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JTlQsCisJCS5yZWdfdWRjY3MJPSAmVURDQ1M1LAorCQkucmVnX3VkZHIJPSAmVUREUjUsCisJfSwKKworCS8qIHNlY29uZCBncm91cCBvZiBlbmRwb2ludHMgKi8KKwkuZXBbNl0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDZpbi1idWxrIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCA2LAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzYsCisJCS5yZWdfdWRkcgk9ICZVRERSNiwKKwl9LAorCS5lcFs3XSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwN291dC1idWxrIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IDcsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTNywKKwkJLnJlZ191YmNyCT0gJlVCQ1I3LAorCQkucmVnX3VkZHIJPSAmVUREUjcsCisJfSwKKwkuZXBbOF0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDhpbi1pc28iLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCA4LAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzgsCisJCS5yZWdfdWRkcgk9ICZVRERSOCwKKwl9LAorCS5lcFs5XSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwOW91dC1pc28iLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IDksCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTOSwKKwkJLnJlZ191YmNyCT0gJlVCQ1I5LAorCQkucmVnX3VkZHIJPSAmVUREUjksCisJfSwKKwkuZXBbMTBdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXAxMGluLWludCIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IElOVF9GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IElOVF9GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDEwLAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSU5ULAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTAsCisJCS5yZWdfdWRkcgk9ICZVRERSMTAsCisJfSwKKworCS8qIHRoaXJkIGdyb3VwIG9mIGVuZHBvaW50cyAqLworCS5lcFsxMV0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDExaW4tYnVsayIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgMTEsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTEsCisJCS5yZWdfdWRkcgk9ICZVRERSMTEsCisJfSwKKwkuZXBbMTJdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXAxMm91dC1idWxrIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IDEyLAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzEyLAorCQkucmVnX3ViY3IJPSAmVUJDUjEyLAorCQkucmVnX3VkZHIJPSAmVUREUjEyLAorCX0sCisJLmVwWzEzXSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwMTNpbi1pc28iLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxMywKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MxMywKKwkJLnJlZ191ZGRyCT0gJlVERFIxMywKKwl9LAorCS5lcFsxNF0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDE0b3V0LWlzbyIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gMTQsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTQsCisJCS5yZWdfdWJjcgk9ICZVQkNSMTQsCisJCS5yZWdfdWRkcgk9ICZVRERSMTQsCisJfSwKKwkuZXBbMTVdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXAxNWluLWludCIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IElOVF9GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IElOVF9GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDE1LAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSU5ULAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTUsCisJCS5yZWdfdWRkcgk9ICZVRERSMTUsCisJfSwKKyNlbmRpZiAvKiAhQ09ORklHX1VTQl9QWEEyNVhfU01BTEwgKi8KK307CisKKyNkZWZpbmUgQ1AxNVIwX1ZFTkRPUl9NQVNLCTB4ZmZmZmUwMDAKKworI2lmCWRlZmluZWQoQ09ORklHX0FSQ0hfUFhBKQorI2RlZmluZSBDUDE1UjBfWFNDQUxFX1ZBTFVFCTB4NjkwNTIwMDAJLyogaW50ZWwvYXJtL3hzY2FsZSAqLworCisjZWxpZglkZWZpbmVkKENPTkZJR19BUkNIX0lYUDRYWCkKKyNkZWZpbmUgQ1AxNVIwX1hTQ0FMRV9WQUxVRQkweDY5MDU0MDAwCS8qIGludGVsL2FybS9peHA0eHggKi8KKworI2VuZGlmCisKKyNkZWZpbmUgQ1AxNVIwX1BST0RfTUFTSwkweDAwMDAwM2YwCisjZGVmaW5lIFBYQTI1eAkJCTB4MDAwMDAxMDAJLyogYW5kIFBYQTI2eCAqLworI2RlZmluZSBQWEEyMTAJCQkweDAwMDAwMTIwCisKKyNkZWZpbmUgQ1AxNVIwX1JFVl9NQVNLCQkweDAwMDAwMDBmCisKKyNkZWZpbmUgQ1AxNVIwX1BST0RSRVZfTUFTSwkoQ1AxNVIwX1BST0RfTUFTSyB8IENQMTVSMF9SRVZfTUFTSykKKworI2RlZmluZSBQWEEyNTVfQTAJCTB4MDAwMDAxMDYJLyogb3IgUFhBMjYwX0IxICovCisjZGVmaW5lIFBYQTI1MF9DMAkJMHgwMDAwMDEwNQkvKiBvciBQWEEyNnhfQjAgKi8KKyNkZWZpbmUgUFhBMjUwX0IyCQkweDAwMDAwMTA0CisjZGVmaW5lIFBYQTI1MF9CMQkJMHgwMDAwMDEwMwkvKiBvciBQWEEyNjBfQTAgKi8KKyNkZWZpbmUgUFhBMjUwX0IwCQkweDAwMDAwMTAyCisjZGVmaW5lIFBYQTI1MF9BMQkJMHgwMDAwMDEwMQorI2RlZmluZSBQWEEyNTBfQTAJCTB4MDAwMDAxMDAKKworI2RlZmluZSBQWEEyMTBfQzAJCTB4MDAwMDAxMjUKKyNkZWZpbmUgUFhBMjEwX0IyCQkweDAwMDAwMTI0CisjZGVmaW5lIFBYQTIxMF9CMQkJMHgwMDAwMDEyMworI2RlZmluZSBQWEEyMTBfQjAJCTB4MDAwMDAxMjIKKyNkZWZpbmUgSVhQNDI1X0EwCQkweDAwMDAwMWMxCisjZGVmaW5lIElYUDQyNV9CMAkJMHgwMDAwMDFmMQorI2RlZmluZSBJWFA0NjVfQUQJCTB4MDAwMDAyMDAKKworLyoKKyAqCXByb2JlIC0gYmluZHMgdG8gdGhlIHBsYXRmb3JtIGRldmljZQorICovCitzdGF0aWMgaW50IF9faW5pdCBweGEyNXhfdWRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHB4YTI1eF91ZGMgKmRldiA9ICZtZW1vcnk7CisJaW50IHJldHZhbCwgdmJ1c19pcnEsIGlycTsKKwl1MzIgY2hpcHJldjsKKworCS8qIGluc2lzdCBvbiBJbnRlbC9BUk0vWFNjYWxlICovCisJYXNtKCJtcmMlPyBwMTUsIDAsICUwLCBjMCwgYzAiIDogIj1yIiAoY2hpcHJldikpOworCWlmICgoY2hpcHJldiAmIENQMTVSMF9WRU5ET1JfTUFTSykgIT0gQ1AxNVIwX1hTQ0FMRV9WQUxVRSkgeworCQlwcl9lcnIoIiVzOiBub3QgWFNjYWxlIVxuIiwgZHJpdmVyX25hbWUpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwkvKiB0cmlnZ2VyIGNoaXByZXYtc3BlY2lmaWMgbG9naWMgKi8KKwlzd2l0Y2ggKGNoaXByZXYgJiBDUDE1UjBfUFJPRFJFVl9NQVNLKSB7CisjaWYJZGVmaW5lZChDT05GSUdfQVJDSF9QWEEpCisJY2FzZSBQWEEyNTVfQTA6CisJCWRldi0+aGFzX2NmciA9IDE7CisJCWJyZWFrOworCWNhc2UgUFhBMjUwX0EwOgorCWNhc2UgUFhBMjUwX0ExOgorCQkvKiBBMC9BMSAibm90IHJlbGVhc2VkIjsgZXAgMTMsIDE1IHVudXNhYmxlICovCisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgUFhBMjUwX0IyOiBjYXNlIFBYQTIxMF9CMjoKKwljYXNlIFBYQTI1MF9CMTogY2FzZSBQWEEyMTBfQjE6CisJY2FzZSBQWEEyNTBfQjA6IGNhc2UgUFhBMjEwX0IwOgorCQkvKiBPVVQtRE1BIGlzIGJyb2tlbiAuLi4gKi8KKwkJLyogZmFsbCB0aHJvdWdoICovCisJY2FzZSBQWEEyNTBfQzA6IGNhc2UgUFhBMjEwX0MwOgorCQlicmVhazsKKyNlbGlmCWRlZmluZWQoQ09ORklHX0FSQ0hfSVhQNFhYKQorCWNhc2UgSVhQNDI1X0EwOgorCWNhc2UgSVhQNDI1X0IwOgorCWNhc2UgSVhQNDY1X0FEOgorCQlkZXYtPmhhc19jZnIgPSAxOworCQlicmVhazsKKyNlbmRpZgorCWRlZmF1bHQ6CisJCXByX2VycigiJXM6IHVucmVjb2duaXplZCBwcm9jZXNzb3I6ICUwOHhcbiIsCisJCQlkcml2ZXJfbmFtZSwgY2hpcHJldik7CisJCS8qIGlvcDN4eCwgaXhwNHh4LCAuLi4gKi8KKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKwlpZiAoaXJxIDwgMCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlkZXYtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgIlVEQ0NMSyIpOworCWlmIChJU19FUlIoZGV2LT5jbGspKSB7CisJCXJldHZhbCA9IFBUUl9FUlIoZGV2LT5jbGspOworCQlnb3RvIGVycl9jbGs7CisJfQorCisJcHJfZGVidWcoIiVzOiBJUlEgJWQlcyVzXG4iLCBkcml2ZXJfbmFtZSwgaXJxLAorCQlkZXYtPmhhc19jZnIgPyAiIiA6ICIgKCFjZnIpIiwKKwkJU0laRV9TVFIgIihwaW8pIgorCQkpOworCisJLyogb3RoZXIgbm9uLXN0YXRpYyBwYXJ0cyBvZiBpbml0ICovCisJZGV2LT5kZXYgPSAmcGRldi0+ZGV2OworCWRldi0+bWFjaCA9IHBkZXYtPmRldi5wbGF0Zm9ybV9kYXRhOworCisJaWYgKGRldi0+bWFjaC0+Z3Bpb192YnVzKSB7CisJCWlmICgocmV0dmFsID0gZ3Bpb19yZXF1ZXN0KGRldi0+bWFjaC0+Z3Bpb192YnVzLAorCQkJCSJweGEyNXhfdWRjIEdQSU8gVkJVUyIpKSkgeworCQkJZGV2X2RiZygmcGRldi0+ZGV2LAorCQkJCSJjYW4ndCBnZXQgdmJ1cyBncGlvICVkLCBlcnI6ICVkXG4iLAorCQkJCWRldi0+bWFjaC0+Z3Bpb192YnVzLCByZXR2YWwpOworCQkJZ290byBlcnJfZ3Bpb192YnVzOworCQl9CisJCWdwaW9fZGlyZWN0aW9uX2lucHV0KGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKKwkJdmJ1c19pcnEgPSBncGlvX3RvX2lycShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7CisJfSBlbHNlCisJCXZidXNfaXJxID0gMDsKKworCWlmIChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKSB7CisJCWlmICgocmV0dmFsID0gZ3Bpb19yZXF1ZXN0KGRldi0+bWFjaC0+Z3Bpb19wdWxsdXAsCisJCQkJInBjYTI1eF91ZGMgR1BJTyBQVUxMVVAiKSkpIHsKKwkJCWRldl9kYmcoJnBkZXYtPmRldiwKKwkJCQkiY2FuJ3QgZ2V0IHB1bGx1cCBncGlvICVkLCBlcnI6ICVkXG4iLAorCQkJCWRldi0+bWFjaC0+Z3Bpb19wdWxsdXAsIHJldHZhbCk7CisJCQlnb3RvIGVycl9ncGlvX3B1bGx1cDsKKwkJfQorCQlncGlvX2RpcmVjdGlvbl9vdXRwdXQoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCwgMCk7CisJfQorCisJaW5pdF90aW1lcigmZGV2LT50aW1lcik7CisJZGV2LT50aW1lci5mdW5jdGlvbiA9IHVkY193YXRjaGRvZzsKKwlkZXYtPnRpbWVyLmRhdGEgPSAodW5zaWduZWQgbG9uZykgZGV2OworCisJZGV2aWNlX2luaXRpYWxpemUoJmRldi0+Z2FkZ2V0LmRldik7CisJZGV2LT5nYWRnZXQuZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7CisJZGV2LT5nYWRnZXQuZGV2LmRtYV9tYXNrID0gcGRldi0+ZGV2LmRtYV9tYXNrOworCisJdGhlX2NvbnRyb2xsZXIgPSBkZXY7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGV2KTsKKworCXVkY19kaXNhYmxlKGRldik7CisJdWRjX3JlaW5pdChkZXYpOworCisJZGV2LT52YnVzID0gaXNfdmJ1c19wcmVzZW50KCk7CisKKwkvKiBpcnEgc2V0dXAgYWZ0ZXIgb2xkIGhhcmR3YXJlIHN0YXRlIGlzIGNsZWFuZWQgdXAgKi8KKwlyZXR2YWwgPSByZXF1ZXN0X2lycShpcnEsIHB4YTI1eF91ZGNfaXJxLAorCQkJSVJRRl9ESVNBQkxFRCwgZHJpdmVyX25hbWUsIGRldik7CisJaWYgKHJldHZhbCAhPSAwKSB7CisJCXByX2VycigiJXM6IGNhbid0IGdldCBpcnEgJWQsIGVyciAlZFxuIiwKKwkJCWRyaXZlcl9uYW1lLCBpcnEsIHJldHZhbCk7CisJCWdvdG8gZXJyX2lycTE7CisJfQorCWRldi0+Z290X2lycSA9IDE7CisKKyNpZmRlZiBDT05GSUdfQVJDSF9MVUJCT0NLCisJaWYgKG1hY2hpbmVfaXNfbHViYm9jaygpKSB7CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLAorCQkJCWx1YmJvY2tfdmJ1c19pcnEsCisJCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfU0FNUExFX1JBTkRPTSwKKwkJCQlkcml2ZXJfbmFtZSwgZGV2KTsKKwkJaWYgKHJldHZhbCAhPSAwKSB7CisJCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgaXJxICVpLCBlcnIgJWRcbiIsCisJCQkJZHJpdmVyX25hbWUsIExVQkJPQ0tfVVNCX0RJU0NfSVJRLCByZXR2YWwpOworbHViYm9ja19mYWlsMDoKKwkJCWdvdG8gZXJyX2lycV9sdWI7CisJCX0KKwkJcmV0dmFsID0gcmVxdWVzdF9pcnEoTFVCQk9DS19VU0JfSVJRLAorCQkJCWx1YmJvY2tfdmJ1c19pcnEsCisJCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfU0FNUExFX1JBTkRPTSwKKwkJCQlkcml2ZXJfbmFtZSwgZGV2KTsKKwkJaWYgKHJldHZhbCAhPSAwKSB7CisJCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgaXJxICVpLCBlcnIgJWRcbiIsCisJCQkJZHJpdmVyX25hbWUsIExVQkJPQ0tfVVNCX0lSUSwgcmV0dmFsKTsKKwkJCWZyZWVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLCBkZXYpOworCQkJZ290byBsdWJib2NrX2ZhaWwwOworCQl9CisJfSBlbHNlCisjZW5kaWYKKwlpZiAodmJ1c19pcnEpIHsKKwkJcmV0dmFsID0gcmVxdWVzdF9pcnEodmJ1c19pcnEsIHVkY192YnVzX2lycSwKKwkJCQlJUlFGX0RJU0FCTEVEIHwgSVJRRl9TQU1QTEVfUkFORE9NIHwKKwkJCQlJUlFGX1RSSUdHRVJfUklTSU5HIHwgSVJRRl9UUklHR0VSX0ZBTExJTkcsCisJCQkJZHJpdmVyX25hbWUsIGRldik7CisJCWlmIChyZXR2YWwgIT0gMCkgeworCQkJcHJfZXJyKCIlczogY2FuJ3QgZ2V0IGlycSAlaSwgZXJyICVkXG4iLAorCQkJCWRyaXZlcl9uYW1lLCB2YnVzX2lycSwgcmV0dmFsKTsKKwkJCWdvdG8gZXJyX3ZidXNfaXJxOworCQl9CisJfQorCWNyZWF0ZV9kZWJ1Z19maWxlcyhkZXYpOworCisJcmV0dXJuIDA7CisKKyBlcnJfdmJ1c19pcnE6CisjaWZkZWYJQ09ORklHX0FSQ0hfTFVCQk9DSworCWZyZWVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLCBkZXYpOworIGVycl9pcnFfbHViOgorI2VuZGlmCisJZnJlZV9pcnEoaXJxLCBkZXYpOworIGVycl9pcnExOgorCWlmIChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKQorCQlncGlvX2ZyZWUoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCk7CisgZXJyX2dwaW9fcHVsbHVwOgorCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1cykKKwkJZ3Bpb19mcmVlKGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKKyBlcnJfZ3Bpb192YnVzOgorCWNsa19wdXQoZGV2LT5jbGspOworIGVycl9jbGs6CisJcmV0dXJuIHJldHZhbDsKK30KKworc3RhdGljIHZvaWQgcHhhMjV4X3VkY19zaHV0ZG93bihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpfZGV2KQoreworCXB1bGx1cF9vZmYoKTsKK30KKworc3RhdGljIGludCBfX2V4aXQgcHhhMjV4X3VkY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlpZiAoZGV2LT5kcml2ZXIpCisJCXJldHVybiAtRUJVU1k7CisKKwlkZXYtPnB1bGx1cCA9IDA7CisJcHVsbHVwKGRldik7CisKKwlyZW1vdmVfZGVidWdfZmlsZXMoZGV2KTsKKworCWlmIChkZXYtPmdvdF9pcnEpIHsKKwkJZnJlZV9pcnEocGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKSwgZGV2KTsKKwkJZGV2LT5nb3RfaXJxID0gMDsKKwl9CisjaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSworCWlmIChtYWNoaW5lX2lzX2x1YmJvY2soKSkgeworCQlmcmVlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSwgZGV2KTsKKwkJZnJlZV9pcnEoTFVCQk9DS19VU0JfSVJRLCBkZXYpOworCX0KKyNlbmRpZgorCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1cykgeworCQlmcmVlX2lycShncGlvX3RvX2lycShkZXYtPm1hY2gtPmdwaW9fdmJ1cyksIGRldik7CisJCWdwaW9fZnJlZShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7CisJfQorCWlmIChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKQorCQlncGlvX2ZyZWUoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCk7CisKKwljbGtfcHV0KGRldi0+Y2xrKTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworCXRoZV9jb250cm9sbGVyID0gTlVMTDsKKwlyZXR1cm4gMDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2lmZGVmCUNPTkZJR19QTQorCisvKiBVU0Igc3VzcGVuZCAoY29udHJvbGxlZCBieSB0aGUgaG9zdCkgYW5kIHN5c3RlbSBzdXNwZW5kIChjb250cm9sbGVkCisgKiBieSB0aGUgUFhBKSBkb24ndCBuZWNlc3NhcmlseSB3b3JrIHdlbGwgdG9nZXRoZXIuICBJZiBVU0IgaXMgYWN0aXZlLAorICogdGhlIDQ4IE1IeiBjbG9jayBpcyByZXF1aXJlZDsgc28gdGhlIHN5c3RlbSBjYW4ndCBlbnRlciAzMyBNSHogaWRsZQorICogbW9kZSwgb3IgYW55IGRlZXBlciBQTSBzYXZpbmcgc3RhdGUuCisgKgorICogRm9yIG5vdywgd2UgcHVudCBhbmQgZm9yY2libHkgZGlzY29ubmVjdCBmcm9tIHRoZSBVU0IgaG9zdCB3aGVuIFBYQQorICogZW50ZXJzIGFueSBzdXNwZW5kIHN0YXRlLiAgV2hpbGUgd2UncmUgZGlzY29ubmVjdGVkLCB3ZSBhbHdheXMgZGlzYWJsZQorICogdGhlIDQ4TUh6IFVTQiBjbG9jayAuLi4gYWxsb3dpbmcgUFhBIHNsZWVwIGFuZC9vciAzMyBNSHogaWRsZSBzdGF0ZXMuCisgKiBCb2FyZHMgd2l0aG91dCBzb2Z0d2FyZSBwdWxsdXAgY29udHJvbCBzaG91bGRuJ3QgdXNlIHRob3NlIHN0YXRlcy4KKyAqIFZCVVMgSVJRcyBzaG91bGQgcHJvYmFibHkgYmUgaWdub3JlZCBzbyB0aGF0IHRoZSBQWEEgZGV2aWNlIGp1c3QgYWN0cworICogImRlYWQiIHRvIFVTQiBob3N0cyB1bnRpbCBzeXN0ZW0gcmVzdW1lLgorICovCitzdGF0aWMgaW50IHB4YTI1eF91ZGNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqdWRjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJaWYgKCF1ZGMtPm1hY2gtPmdwaW9fcHVsbHVwICYmICF1ZGMtPm1hY2gtPnVkY19jb21tYW5kKQorCQlXQVJOKCJVU0IgaG9zdCB3b24ndCBkZXRlY3QgZGlzY29ubmVjdCFcbiIpOworCXVkYy0+c3VzcGVuZGVkID0gMTsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwlwdWxsdXAodWRjKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBweGEyNXhfdWRjX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKnVkYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKGRldik7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXVkYy0+c3VzcGVuZGVkID0gMDsKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJcHVsbHVwKHVkYyk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcmV0dXJuIDA7Cit9CisKKyNlbHNlCisjZGVmaW5lCXB4YTI1eF91ZGNfc3VzcGVuZAlOVUxMCisjZGVmaW5lCXB4YTI1eF91ZGNfcmVzdW1lCU5VTEwKKyNlbmRpZgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB1ZGNfZHJpdmVyID0geworCS5zaHV0ZG93bgk9IHB4YTI1eF91ZGNfc2h1dGRvd24sCisJLnJlbW92ZQkJPSBfX2V4aXRfcChweGEyNXhfdWRjX3JlbW92ZSksCisJLnN1c3BlbmQJPSBweGEyNXhfdWRjX3N1c3BlbmQsCisJLnJlc3VtZQkJPSBweGEyNXhfdWRjX3Jlc3VtZSwKKwkuZHJpdmVyCQk9IHsKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJCS5uYW1lCT0gInB4YTI1eC11ZGMiLAorCX0sCit9OworCitzdGF0aWMgaW50IF9faW5pdCB1ZGNfaW5pdCh2b2lkKQoreworCXByX2luZm8oIiVzOiB2ZXJzaW9uICVzXG4iLCBkcml2ZXJfbmFtZSwgRFJJVkVSX1ZFUlNJT04pOworCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcHJvYmUoJnVkY19kcml2ZXIsIHB4YTI1eF91ZGNfcHJvYmUpOworfQorbW9kdWxlX2luaXQodWRjX2luaXQpOworCitzdGF0aWMgdm9pZCBfX2V4aXQgdWRjX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmdWRjX2RyaXZlcik7Cit9Cittb2R1bGVfZXhpdCh1ZGNfZXhpdCk7CisKK01PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7CitNT0RVTEVfQVVUSE9SKCJGcmFuayBCZWNrZXIsIFJvYmVydCBTY2h3ZWJlbCwgRGF2aWQgQnJvd25lbGwiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9BTElBUygicGxhdGZvcm06cHhhMjV4LXVkYyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI1eF91ZGMuaCBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyNXhfdWRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQxMWVjZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyNXhfdWRjLmgKQEAgLTAsMCArMSwyNjYgQEAKKy8qCisgKiBJbnRlbCBQWEEyNXggb24tY2hpcCBmdWxsIHNwZWVkIFVTQiBkZXZpY2UgY29udHJvbGxlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMyBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+LCBQZW5ndXRyb25peAorICogQ29weXJpZ2h0IChDKSAyMDAzIERhdmlkIEJyb3duZWxsCisgKgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaWZuZGVmIF9fTElOVVhfVVNCX0dBREdFVF9QWEEyNVhfSAorI2RlZmluZSBfX0xJTlVYX1VTQl9HQURHRVRfUFhBMjVYX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIHB4YTI1eCBoYXMgdGhpcyAobW92ZSB0byBpbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaCkgKi8KKyNkZWZpbmUgVUZOUkhfU0lSCSgxIDw8IDcpCS8qIFNPRiBpbnRlcnJ1cHQgcmVxdWVzdCAqLworI2RlZmluZSBVRk5SSF9TSU0JKDEgPDwgNikJLyogU09GIGludGVycnVwdCBtYXNrICovCisjZGVmaW5lIFVGTlJIX0lQRTE0CSgxIDw8IDUpCS8qIElTTyBwYWNrZXQgZXJyb3IsIGVwMTQgKi8KKyNkZWZpbmUgVUZOUkhfSVBFOQkoMSA8PCA0KQkvKiBJU08gcGFja2V0IGVycm9yLCBlcDkgKi8KKyNkZWZpbmUgVUZOUkhfSVBFNAkoMSA8PCAzKQkvKiBJU08gcGFja2V0IGVycm9yLCBlcDQgKi8KKworLyogcHhhMjU1IGhhcyB0aGlzIChtb3ZlIHRvIGluY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEtcmVncy5oKSAqLworI2RlZmluZQlVRENDRlIJCVVEQ19SRVMyCS8qIFVEQyBDb250cm9sIEZ1bmN0aW9uIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NGUl9BUkVOCSgxIDw8IDcpCS8qIEFDSyByZXNwb25zZSBlbmFibGUgKG5vdykgKi8KKyNkZWZpbmUgVURDQ0ZSX0FDTQkoMSA8PCAyKQkvKiBBQ0sgY29udHJvbCBtb2RlICh3YWl0IGZvciBBUkVOKSAqLworCisvKiBsYXRlc3QgcHhhMjU1IGVycmF0YSBkZWZpbmUgbmV3ICJtdXN0IGJlIG9uZSIgYml0cyBpbiBVRENDRlIgKi8KKyNkZWZpbmUJVURDQ0ZSX01CMQkoMHhmZiAmIH4oVURDQ0ZSX0FSRU58VURDQ0ZSX0FDTSkpCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0cnVjdCBweGEyNXhfdWRjOworCitzdHJ1Y3QgcHhhMjV4X2VwIHsKKwlzdHJ1Y3QgdXNiX2VwCQkJCWVwOworCXN0cnVjdCBweGEyNXhfdWRjCQkJKmRldjsKKworCWNvbnN0IHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvcgkqZGVzYzsKKwlzdHJ1Y3QgbGlzdF9oZWFkCQkJcXVldWU7CisJdW5zaWduZWQgbG9uZwkJCQlwaW9faXJxczsKKworCXVuc2lnbmVkIHNob3J0CQkJCWZpZm9fc2l6ZTsKKwl1OAkJCQkJYkVuZHBvaW50QWRkcmVzczsKKwl1OAkJCQkJYm1BdHRyaWJ1dGVzOworCisJdW5zaWduZWQJCQkJc3RvcHBlZCA6IDE7CisJdW5zaWduZWQJCQkJZG1hX2ZpeHVwIDogMTsKKworCS8qIFVEQ0NTID0gVURDIENvbnRyb2wvU3RhdHVzIGZvciB0aGlzIEVQCisJICogVUJDUiA9IFVEQyBCeXRlIENvdW50IFJlbWFpbmluZyAoY29udGVudHMgb2YgT1VUIGZpZm8pCisJICogVUREUiA9IFVEQyBFbmRwb2ludCBEYXRhIFJlZ2lzdGVyICh0aGUgZmlmbykKKwkgKiBEUkNNID0gRE1BIFJlcXVlc3QgQ2hhbm5lbCBNYXAKKwkgKi8KKwl2b2xhdGlsZSB1MzIJCQkJKnJlZ191ZGNjczsKKwl2b2xhdGlsZSB1MzIJCQkJKnJlZ191YmNyOworCXZvbGF0aWxlIHUzMgkJCQkqcmVnX3VkZHI7Cit9OworCitzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QgeworCXN0cnVjdCB1c2JfcmVxdWVzdAkJCXJlcTsKKwlzdHJ1Y3QgbGlzdF9oZWFkCQkJcXVldWU7Cit9OworCitlbnVtIGVwMF9zdGF0ZSB7CisJRVAwX0lETEUsCisJRVAwX0lOX0RBVEFfUEhBU0UsCisJRVAwX09VVF9EQVRBX1BIQVNFLAorCUVQMF9FTkRfWEZFUiwKKwlFUDBfU1RBTEwsCit9OworCisjZGVmaW5lIEVQMF9GSUZPX1NJWkUJKCh1bnNpZ25lZCkxNikKKyNkZWZpbmUgQlVMS19GSUZPX1NJWkUJKCh1bnNpZ25lZCk2NCkKKyNkZWZpbmUgSVNPX0ZJRk9fU0laRQkoKHVuc2lnbmVkKTI1NikKKyNkZWZpbmUgSU5UX0ZJRk9fU0laRQkoKHVuc2lnbmVkKTgpCisKK3N0cnVjdCB1ZGNfc3RhdHMgeworCXN0cnVjdCBlcDBzdGF0cyB7CisJCXVuc2lnbmVkIGxvbmcJCW9wczsKKwkJdW5zaWduZWQgbG9uZwkJYnl0ZXM7CisJfSByZWFkLCB3cml0ZTsKKwl1bnNpZ25lZCBsb25nCQkJaXJxczsKK307CisKKyNpZmRlZiBDT05GSUdfVVNCX1BYQTI1WF9TTUFMTAorLyogd2hlbiBtZW1vcnkncyB0aWdodCwgU01BTEwgY29uZmlnIHNhdmVzIGNvZGUrZGF0YS4gICovCisjZGVmaW5lCVBYQV9VRENfTlVNX0VORFBPSU5UUwkzCisjZW5kaWYKKworI2lmbmRlZglQWEFfVURDX05VTV9FTkRQT0lOVFMKKyNkZWZpbmUJUFhBX1VEQ19OVU1fRU5EUE9JTlRTCTE2CisjZW5kaWYKKworc3RydWN0IHB4YTI1eF91ZGMgeworCXN0cnVjdCB1c2JfZ2FkZ2V0CQkJZ2FkZ2V0OworCXN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlcgkJKmRyaXZlcjsKKworCWVudW0gZXAwX3N0YXRlCQkJCWVwMHN0YXRlOworCXN0cnVjdCB1ZGNfc3RhdHMJCQlzdGF0czsKKwl1bnNpZ25lZAkJCQlnb3RfaXJxIDogMSwKKwkJCQkJCXZidXMgOiAxLAorCQkJCQkJcHVsbHVwIDogMSwKKwkJCQkJCWhhc19jZnIgOiAxLAorCQkJCQkJcmVxX3BlbmRpbmcgOiAxLAorCQkJCQkJcmVxX3N0ZCA6IDEsCisJCQkJCQlyZXFfY29uZmlnIDogMSwKKwkJCQkJCXN1c3BlbmRlZCA6IDEsCisJCQkJCQlhY3RpdmUgOiAxOworCisjZGVmaW5lIHN0YXJ0X3dhdGNoZG9nKGRldikgbW9kX3RpbWVyKCZkZXYtPnRpbWVyLCBqaWZmaWVzICsgKEhaLzIwMCkpCisJc3RydWN0IHRpbWVyX2xpc3QJCQl0aW1lcjsKKworCXN0cnVjdCBkZXZpY2UJCQkJKmRldjsKKwlzdHJ1Y3QgY2xrCQkJCSpjbGs7CisJc3RydWN0IHB4YTJ4eF91ZGNfbWFjaF9pbmZvCQkqbWFjaDsKKwl1NjQJCQkJCWRtYV9tYXNrOworCXN0cnVjdCBweGEyNXhfZXAJCQllcCBbUFhBX1VEQ19OVU1fRU5EUE9JTlRTXTsKKworI2lmZGVmIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZTCisJc3RydWN0IGRlbnRyeQkJCQkqZGVidWdmc191ZGM7CisjZW5kaWYKK307CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNpZmRlZiBDT05GSUdfQVJDSF9MVUJCT0NLCisjaW5jbHVkZSA8YXNtL2FyY2gvbHViYm9jay5oPgorLyogbHViYm9jayBjYW4gYWxzbyByZXBvcnQgdXNiIGNvbm5lY3QvZGlzY29ubmVjdCBpcnFzICovCisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBweGEyNXhfdWRjICp0aGVfY29udHJvbGxlcjsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAqIERlYnVnZ2luZyBzdXBwb3J0IHZhbmlzaGVzIGluIG5vbi1kZWJ1ZyBidWlsZHMuICBEQkdfTk9STUFMIHNob3VsZCBiZQorICogbW9zdGx5IHNpbGVudCBkdXJpbmcgbm9ybWFsIHVzZS90ZXN0aW5nLCB3aXRoIG5vIHRpbWluZyBzaWRlLWVmZmVjdHMuCisgKi8KKyNkZWZpbmUgREJHX05PUk1BTAkxCS8qIGVycm9yIHBhdGhzLCBkZXZpY2Ugc3RhdGUgdHJhbnNpdGlvbnMgKi8KKyNkZWZpbmUgREJHX1ZFUkJPU0UJMgkvKiBhZGQgc29tZSBzdWNjZXNzIHBhdGggdHJhY2UgaW5mbyAqLworI2RlZmluZSBEQkdfTk9JU1kJMwkvKiAuLi4gZXZlbiBtb3JlOiByZXF1ZXN0IGxldmVsICovCisjZGVmaW5lIERCR19WRVJZX05PSVNZCTQJLyogLi4uIGV2ZW4gbW9yZTogcGFja2V0IGxldmVsICovCisKKyNkZWZpbmUgRE1TRyhzdHVmZi4uLikJcHJfZGVidWcoInVkYzogIiBzdHVmZikKKworI2lmZGVmIERFQlVHCisKK3N0YXRpYyBpbnQgaXNfdmJ1c19wcmVzZW50KHZvaWQpOworCitzdGF0aWMgY29uc3QgY2hhciAqc3RhdGVfbmFtZVtdID0geworCSJFUDBfSURMRSIsCisJIkVQMF9JTl9EQVRBX1BIQVNFIiwgIkVQMF9PVVRfREFUQV9QSEFTRSIsCisJIkVQMF9FTkRfWEZFUiIsICJFUDBfU1RBTEwiCit9OworCisjaWZkZWYgVkVSQk9TRV9ERUJVRworIyAgICBkZWZpbmUgVURDX0RFQlVHIERCR19WRVJCT1NFCisjZWxzZQorIyAgICBkZWZpbmUgVURDX0RFQlVHIERCR19OT1JNQUwKKyNlbmRpZgorCitzdGF0aWMgdm9pZCBfX21heWJlX3VudXNlZAorZHVtcF91ZGNjcihjb25zdCBjaGFyICpsYWJlbCkKK3sKKwl1MzIJdWRjY3IgPSBVRENDUjsKKwlETVNHKCIlcyAlMDJYID0lcyVzJXMlcyVzJXMlcyVzXG4iLAorCQlsYWJlbCwgdWRjY3IsCisJCSh1ZGNjciAmIFVEQ0NSX1JFTSkgPyAiIHJlbSIgOiAiIiwKKwkJKHVkY2NyICYgVURDQ1JfUlNUSVIpID8gIiByc3RpciIgOiAiIiwKKwkJKHVkY2NyICYgVURDQ1JfU1JNKSA/ICIgc3JtIiA6ICIiLAorCQkodWRjY3IgJiBVRENDUl9TVVNJUikgPyAiIHN1c2lyIiA6ICIiLAorCQkodWRjY3IgJiBVRENDUl9SRVNJUikgPyAiIHJlc2lyIiA6ICIiLAorCQkodWRjY3IgJiBVRENDUl9SU00pID8gIiByc20iIDogIiIsCisJCSh1ZGNjciAmIFVEQ0NSX1VEQSkgPyAiIHVkYSIgOiAiIiwKKwkJKHVkY2NyICYgVURDQ1JfVURFKSA/ICIgdWRlIiA6ICIiKTsKK30KKworc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQKK2R1bXBfdWRjY3MwKGNvbnN0IGNoYXIgKmxhYmVsKQoreworCXUzMgkJdWRjY3MwID0gVURDQ1MwOworCisJRE1TRygiJXMgJXMgJTAyWCA9JXMlcyVzJXMlcyVzJXMlc1xuIiwKKwkJbGFiZWwsIHN0YXRlX25hbWVbdGhlX2NvbnRyb2xsZXItPmVwMHN0YXRlXSwgdWRjY3MwLAorCQkodWRjY3MwICYgVURDQ1MwX1NBKSA/ICIgc2EiIDogIiIsCisJCSh1ZGNjczAgJiBVRENDUzBfUk5FKSA/ICIgcm5lIiA6ICIiLAorCQkodWRjY3MwICYgVURDQ1MwX0ZTVCkgPyAiIGZzdCIgOiAiIiwKKwkJKHVkY2NzMCAmIFVEQ0NTMF9TU1QpID8gIiBzc3QiIDogIiIsCisJCSh1ZGNjczAgJiBVRENDUzBfRFJXRikgPyAiIGR3cmYiIDogIiIsCisJCSh1ZGNjczAgJiBVRENDUzBfRlRGKSA/ICIgZnRmIiA6ICIiLAorCQkodWRjY3MwICYgVURDQ1MwX0lQUikgPyAiIGlwciIgOiAiIiwKKwkJKHVkY2NzMCAmIFVEQ0NTMF9PUFIpID8gIiBvcHIiIDogIiIpOworfQorCitzdGF0aWMgdm9pZCBfX21heWJlX3VudXNlZAorZHVtcF9zdGF0ZShzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2KQoreworCXUzMgkJdG1wOworCXVuc2lnbmVkCWk7CisKKwlETVNHKCIlcyAlcywgdWljciAlMDJYLiUwMlgsIHVzaXIgJTAyWC4lMDJ4LCB1Zm5yICUwMlguJTAyWFxuIiwKKwkJaXNfdmJ1c19wcmVzZW50KCkgPyAiaG9zdCAiIDogImRpc2Nvbm5lY3RlZCIsCisJCXN0YXRlX25hbWVbZGV2LT5lcDBzdGF0ZV0sCisJCVVJQ1IxLCBVSUNSMCwgVVNJUjEsIFVTSVIwLCBVRk5SSCwgVUZOUkwpOworCWR1bXBfdWRjY3IoInVkY2NyIik7CisJaWYgKGRldi0+aGFzX2NmcikgeworCQl0bXAgPSBVRENDRlI7CisJCURNU0coInVkY2NmciAlMDJYID0lcyVzXG4iLCB0bXAsCisJCQkodG1wICYgVURDQ0ZSX0FSRU4pID8gIiBhcmVuIiA6ICIiLAorCQkJKHRtcCAmIFVEQ0NGUl9BQ00pID8gIiBhY20iIDogIiIpOworCX0KKworCWlmICghZGV2LT5kcml2ZXIpIHsKKwkJRE1TRygibm8gZ2FkZ2V0IGRyaXZlciBib3VuZFxuIik7CisJCXJldHVybjsKKwl9IGVsc2UKKwkJRE1TRygiZXAwIGRyaXZlciAnJXMnXG4iLCBkZXYtPmRyaXZlci0+ZHJpdmVyLm5hbWUpOworCisJaWYgKCFpc192YnVzX3ByZXNlbnQoKSkKKwkJcmV0dXJuOworCisJZHVtcF91ZGNjczAgKCJ1ZGNjczAiKTsKKwlETVNHKCJlcDAgSU4gJWx1LyVsdSwgT1VUICVsdS8lbHVcbiIsCisJCWRldi0+c3RhdHMud3JpdGUuYnl0ZXMsIGRldi0+c3RhdHMud3JpdGUub3BzLAorCQlkZXYtPnN0YXRzLnJlYWQuYnl0ZXMsIGRldi0+c3RhdHMucmVhZC5vcHMpOworCisJZm9yIChpID0gMTsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKSB7CisJCWlmIChkZXYtPmVwIFtpXS5kZXNjID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJRE1TRyAoInVkY2NzJWQgPSAlMDJ4XG4iLCBpLCAqZGV2LT5lcC0+cmVnX3VkY2NzKTsKKwl9Cit9CisKKyNlbHNlCisKKyNkZWZpbmUJZHVtcF91ZGNjcih4KQlkb3t9d2hpbGUoMCkKKyNkZWZpbmUJZHVtcF91ZGNjczAoeCkJZG97fXdoaWxlKDApCisjZGVmaW5lCWR1bXBfc3RhdGUoeCkJZG97fXdoaWxlKDApCisKKyNkZWZpbmUgVURDX0RFQlVHICgodW5zaWduZWQpMCkKKworI2VuZGlmCisKKyNkZWZpbmUgREJHKGx2bCwgc3R1ZmYuLi4pIGRve2lmICgobHZsKSA8PSBVRENfREVCVUcpIERNU0coc3R1ZmYpO313aGlsZSgwKQorCisjZGVmaW5lIEVSUihzdHVmZi4uLikJCXByX2VycigidWRjOiAiIHN0dWZmKQorI2RlZmluZSBXQVJOKHN0dWZmLi4uKQkJcHJfd2FybmluZygidWRjOiAiIHN0dWZmKQorI2RlZmluZSBJTkZPKHN0dWZmLi4uKQkJcHJfaW5mbygidWRjOiAiIHN0dWZmKQorCisKKyNlbmRpZiAvKiBfX0xJTlVYX1VTQl9HQURHRVRfUFhBMjVYX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyN3hfdWRjLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjd4X3VkYy5jCmluZGV4IGUwMmJmZDQuLjljMGU4MmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyN3hfdWRjLmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI3eF91ZGMuYwpAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9jaDkuaD4KICNpbmNsdWRlIDxsaW51eC91c2IvZ2FkZ2V0Lmg+Ci0KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPiAvKiBGSVhNRTogZm9yIFBTU1IgKi8KICNpbmNsdWRlIDxhc20vYXJjaC91ZGMuaD4KIAogI2luY2x1ZGUgInB4YTI3eF91ZGMuaCIKQEAgLTIzNjAsMTggKzIzNjAsMTkgQEAKIAkgKiBTb2Z0d2FyZSBtdXN0IGNvbmZpZ3VyZSB0aGUgVVNCIE9URyBwYWQsIFVEQywgYW5kIFVIQwogCSAqIHRvIHRoZSBzdGF0ZSB0aGV5IHdlcmUgaW4gYmVmb3JlIGVudGVyaW5nIHNsZWVwIG1vZGUuCiAJICovCi0JUFNTUiB8PSBQU1NSX09UR1BIOworCWlmIChjcHVfaXNfcHhhMjd4KCkpCisJCVBTU1IgfD0gUFNTUl9PVEdQSDsKIAogCXJldHVybiAwOwogfQogI2VuZGlmCiAKIC8qIHdvcmsgd2l0aCBob3RwbHVnIGFuZCBjb2xkcGx1ZyAqLwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpweGEyeHgtdWRjIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnB4YTI3eC11ZGMiKTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdWRjX2RyaXZlciA9IHsKIAkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAicHhhMnh4LXVkYyIsCisJCS5uYW1lCT0gInB4YTI3eC11ZGMiLAogCQkub3duZXIJPSBUSElTX01PRFVMRSwKIAl9LAogCS5yZW1vdmUJCT0gX19leGl0X3AocHhhX3VkY19yZW1vdmUpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI3eF91ZGMuaCBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyN3hfdWRjLmgKaW5kZXggOTc0NTNkYi4uMWQxYjc5MzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyN3hfdWRjLmgKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI3eF91ZGMuaApAQCAtNDg0LDEyICs0ODQsNCBAQAogI2RlZmluZSBlcF93YXJuKGVwLCBmbXQsIGFyZy4uLikgXAogCWRldl93YXJuKGVwLT5kZXYtPmRldiwgIiVzOiVzOiIgZm10LCBFUE5BTUUoZXApLCBfX2Z1bmNfXywgIyMgYXJnKQogCi0vKgotICogQ2Fubm90IGluY2x1ZGUgcHhhLXJlZ3MuaCwgYXMgcmVnaXN0ZXIgbmFtZXMgYXJlIHNpbWlsYXIuCi0gKiBTbyBQU1NSIGlzIHJlZGVmaW5lZCBoZXJlLiBUaGlzIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgVURDIHJlZ2lzdGVycyB3aWxsCi0gKiBiZSBnb25lIGZyb20gcHhhLXJlZ3MuaC4KLSAqLwotI2RlZmluZSBQU1NSCQlfX1JFRygweDQwRjAwMDA0KQkvKiBQb3dlciBNYW5hZ2VyIFNsZWVwIFN0YXR1cyAqLwotI2RlZmluZSBQU1NSX09UR1BICSgxIDw8IDYpCQkvKiBPVEcgUGVyaXBoZXJhbCBIb2xkICovCi0KICNlbmRpZiAvKiBfX0xJTlVYX1VTQl9HQURHRVRfUFhBMjdYX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyeHhfdWRjLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMnh4X3VkYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGY2OTliLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyeHhfdWRjLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMzgzICswLDAgQEAKLS8qCi0gKiBsaW51eC9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMnh4X3VkYy5jCi0gKiBJbnRlbCBQWEEyNXggYW5kIElYUDR4eCBvbi1jaGlwIGZ1bGwgc3BlZWQgVVNCIGRldmljZSBjb250cm9sbGVycwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwMiBJbnRyaW5zeWMsIEluYy4gKEZyYW5rIEJlY2tlcikKLSAqIENvcHlyaWdodCAoQykgMjAwMyBSb2JlcnQgU2Nod2ViZWwsIFBlbmd1dHJvbml4Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgQmVuZWRpa3QgU3ByYW5nZXIsIFBlbmd1dHJvbml4Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgRGF2aWQgQnJvd25lbGwKLSAqIENvcHlyaWdodCAoQykgMjAwMyBKb3NodWEgV2lzZQotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKLSAqCi0gKi8KLQotLyogI2RlZmluZSBWRVJCT1NFX0RFQlVHICovCi0KLSNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvbGlzdC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9pcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KLQotI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KLSNpbmNsdWRlIDxhc20vZG1hLmg+Ci0jaW5jbHVkZSA8YXNtL2dwaW8uaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vc3lzdGVtLmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KLSNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+Ci0jaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC91c2IvY2g5Lmg+Ci0jaW5jbHVkZSA8bGludXgvdXNiL2dhZGdldC5oPgotCi0jaW5jbHVkZSA8YXNtL21hY2gvdWRjX3B4YTJ4eC5oPgotCi0KLS8qCi0gKiBUaGlzIGRyaXZlciBoYW5kbGVzIHRoZSBVU0IgRGV2aWNlIENvbnRyb2xsZXIgKFVEQykgaW4gSW50ZWwncyBQWEEgMjV4Ci0gKiBzZXJpZXMgcHJvY2Vzc29ycy4gIFRoZSBVREMgZm9yIHRoZSBJWFAgNHh4IHNlcmllcyBpcyB2ZXJ5IHNpbWlsYXIuCi0gKiBUaGVyZSBhcmUgZmlmdGVlbiBlbmRwb2ludHMsIGluIGFkZGl0aW9uIHRvIGVwMC4KLSAqCi0gKiBTdWNoIGNvbnRyb2xsZXIgZHJpdmVycyB3b3JrIHdpdGggYSBnYWRnZXQgZHJpdmVyLiAgVGhlIGdhZGdldCBkcml2ZXIKLSAqIHJldHVybnMgZGVzY3JpcHRvcnMsIGltcGxlbWVudHMgY29uZmlndXJhdGlvbiBhbmQgZGF0YSBwcm90b2NvbHMgdXNlZAotICogYnkgdGhlIGhvc3QgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIGRldmljZSwgYW5kIGFsbG9jYXRlcyBlbmRwb2ludHMgdG8KLSAqIHRoZSBkaWZmZXJlbnQgcHJvdG9jb2wgaW50ZXJmYWNlcy4gIFRoZSBjb250cm9sbGVyIGRyaXZlciB2aXJ0dWFsaXplcwotICogdXNiIGhhcmR3YXJlIHNvIHRoYXQgdGhlIGdhZGdldCBkcml2ZXJzIHdpbGwgYmUgbW9yZSBwb3J0YWJsZS4KLSAqCi0gKiBUaGlzIFVEQyBoYXJkd2FyZSB3YW50cyB0byBpbXBsZW1lbnQgYSBiaXQgdG9vIG11Y2ggVVNCIHByb3RvY29sLCBzbwotICogaXQgY29uc3RyYWlucyB0aGUgc29ydHMgb2YgVVNCIGNvbmZpZ3VyYXRpb24gY2hhbmdlIGV2ZW50cyB0aGF0IHdvcmsuCi0gKiBUaGUgZXJyYXRhIGZvciB0aGVzZSBjaGlwcyBhcmUgbWlzbGVhZGluZzsgc29tZSAiZml4ZWQiIGJ1Z3MgZnJvbQotICogcHhhMjUwIGEwL2ExIGIwL2IxL2IyIHN1cmUgYWN0IGxpa2UgdGhleSdyZSBzdGlsbCB0aGVyZS4KLSAqCi0gKiBOb3RlIHRoYXQgdGhlIFVEQyBoYXJkd2FyZSBzdXBwb3J0cyBETUEgKGV4Y2VwdCBvbiBJWFApIGJ1dCB0aGF0J3MKLSAqIG5vdCB1c2VkIGhlcmUuICBJTi1ETUEgKHRvIGhvc3QpIGlzIHNpbXBsZSBlbm91Z2gsIHdoZW4gdGhlIGRhdGEgaXMKLSAqIHN1aXRhYmx5IGFsaWduZWQgKDE2IGJ5dGVzKSAuLi4gdGhlIG5ldHdvcmsgc3RhY2sgZG9lc24ndCBkbyB0aGF0LAotICogb3RoZXIgc29mdHdhcmUgY2FuLiAgT1VULURNQSBpcyBidWdneSBpbiBtb3N0IGNoaXAgdmVyc2lvbnMsIGFzIHdlbGwKLSAqIGFzIHBvb3JseSBkZXNpZ25lZCAoZGF0YSB0b2dnbGUgbm90IGF1dG9tYXRpYykuICBTbyB0aGlzIGRyaXZlciB3b24ndAotICogYm90aGVyIHVzaW5nIERNQS4gIChNb3N0bHktd29ya2luZyBJTi1ETUEgc3VwcG9ydCB3YXMgYXZhaWxhYmxlIGluCi0gKiBrZXJuZWxzIGJlZm9yZSAyLjYuMjMsIGJ1dCB3YXMgbmV2ZXIgZW5hYmxlZCBvciB3ZWxsIHRlc3RlZC4pCi0gKi8KLQotI2RlZmluZQlEUklWRVJfVkVSU0lPTgkiMzAtSnVuZS0yMDA3IgotI2RlZmluZQlEUklWRVJfREVTQwkiUFhBIDI1eCBVU0IgRGV2aWNlIENvbnRyb2xsZXIgZHJpdmVyIgotCi0KLXN0YXRpYyBjb25zdCBjaGFyIGRyaXZlcl9uYW1lIFtdID0gInB4YTJ4eF91ZGMiOwotCi1zdGF0aWMgY29uc3QgY2hhciBlcDBuYW1lIFtdID0gImVwMCI7Ci0KLQotI2lmZGVmIENPTkZJR19BUkNIX0lYUDRYWAotCi0vKiBjcHUtc3BlY2lmaWMgcmVnaXN0ZXIgYWRkcmVzc2VzIGFyZSBjb21waWxlZCBpbiB0byB0aGlzIGNvZGUgKi8KLSNpZmRlZiBDT05GSUdfQVJDSF9QWEEKLSNlcnJvciAiQ2FuJ3QgY29uZmlndXJlIGJvdGggSVhQIGFuZCBQWEEiCi0jZW5kaWYKLQotLyogSVhQIGRvZXNuJ3QgeWV0IHN1cHBvcnQgPGxpbnV4L2Nsay5oPiAqLwotI2RlZmluZSBjbGtfZ2V0KGRldixuYW1lKQlOVUxMCi0jZGVmaW5lIGNsa19lbmFibGUoY2xrKQkJZG8geyB9IHdoaWxlICgwKQotI2RlZmluZSBjbGtfZGlzYWJsZShjbGspCWRvIHsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgY2xrX3B1dChjbGspCQlkbyB7IH0gd2hpbGUgKDApCi0KLSNlbmRpZgotCi0jaW5jbHVkZSAicHhhMnh4X3VkYy5oIgotCi0KLSNpZmRlZglDT05GSUdfVVNCX1BYQTJYWF9TTUFMTAotI2RlZmluZSBTSVpFX1NUUgkiIChzbWFsbCkiCi0jZWxzZQotI2RlZmluZSBTSVpFX1NUUgkiIgotI2VuZGlmCi0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoJZW5kcG9pbnQgcmVsYXRlZCBwYXJ0cyBvZiB0aGUgYXBpIHRvIHRoZSB1c2IgY29udHJvbGxlciBoYXJkd2FyZSwKLSAqCXVzZWQgYnkgZ2FkZ2V0IGRyaXZlcjsgYW5kIHRoZSBpbm5lciB0YWxrZXItdG8taGFyZHdhcmUgY29yZS4KLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0KLXN0YXRpYyB2b2lkIHB4YTJ4eF9lcF9maWZvX2ZsdXNoIChzdHJ1Y3QgdXNiX2VwICplcCk7Ci1zdGF0aWMgdm9pZCBudWtlIChzdHJ1Y3QgcHhhMnh4X2VwICosIGludCBzdGF0dXMpOwotCi0vKiBvbmUgR1BJTyBzaG91bGQgYmUgdXNlZCB0byBkZXRlY3QgVkJVUyBmcm9tIHRoZSBob3N0ICovCi1zdGF0aWMgaW50IGlzX3ZidXNfcHJlc2VudCh2b2lkKQotewotCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2ggPSB0aGVfY29udHJvbGxlci0+bWFjaDsKLQotCWlmIChtYWNoLT5ncGlvX3ZidXMpIHsKLQkJaW50IHZhbHVlID0gZ3Bpb19nZXRfdmFsdWUobWFjaC0+Z3Bpb192YnVzKTsKLQkJcmV0dXJuIG1hY2gtPmdwaW9fdmJ1c19pbnZlcnRlZCA/ICF2YWx1ZSA6IHZhbHVlOwotCX0KLQlpZiAobWFjaC0+dWRjX2lzX2Nvbm5lY3RlZCkKLQkJcmV0dXJuIG1hY2gtPnVkY19pc19jb25uZWN0ZWQoKTsKLQlyZXR1cm4gMTsKLX0KLQotLyogb25lIEdQSU8gc2hvdWxkIGNvbnRyb2wgYSBEKyBwdWxsdXAsIHNvIGhvc3Qgc2VlcyB0aGlzIGRldmljZSAob3Igbm90KSAqLwotc3RhdGljIHZvaWQgcHVsbHVwX29mZih2b2lkKQotewotCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2ggPSB0aGVfY29udHJvbGxlci0+bWFjaDsKLQotCWlmIChtYWNoLT5ncGlvX3B1bGx1cCkKLQkJZ3Bpb19zZXRfdmFsdWUobWFjaC0+Z3Bpb19wdWxsdXAsIDApOwotCWVsc2UgaWYgKG1hY2gtPnVkY19jb21tYW5kKQotCQltYWNoLT51ZGNfY29tbWFuZChQWEEyWFhfVURDX0NNRF9ESVNDT05ORUNUKTsKLX0KLQotc3RhdGljIHZvaWQgcHVsbHVwX29uKHZvaWQpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGNfbWFjaF9pbmZvCQkqbWFjaCA9IHRoZV9jb250cm9sbGVyLT5tYWNoOwotCi0JaWYgKG1hY2gtPmdwaW9fcHVsbHVwKQotCQlncGlvX3NldF92YWx1ZShtYWNoLT5ncGlvX3B1bGx1cCwgMSk7Ci0JZWxzZSBpZiAobWFjaC0+dWRjX2NvbW1hbmQpCi0JCW1hY2gtPnVkY19jb21tYW5kKFBYQTJYWF9VRENfQ01EX0NPTk5FQ1QpOwotfQotCi1zdGF0aWMgdm9pZCBwaW9faXJxX2VuYWJsZShpbnQgYkVuZHBvaW50QWRkcmVzcykKLXsKLSAgICAgICAgYkVuZHBvaW50QWRkcmVzcyAmPSAweGY7Ci0gICAgICAgIGlmIChiRW5kcG9pbnRBZGRyZXNzIDwgOCkKLSAgICAgICAgICAgICAgICBVSUNSMCAmPSB+KDEgPDwgYkVuZHBvaW50QWRkcmVzcyk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGJFbmRwb2ludEFkZHJlc3MgLT0gODsKLSAgICAgICAgICAgICAgICBVSUNSMSAmPSB+KDEgPDwgYkVuZHBvaW50QWRkcmVzcyk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBwaW9faXJxX2Rpc2FibGUoaW50IGJFbmRwb2ludEFkZHJlc3MpCi17Ci0gICAgICAgIGJFbmRwb2ludEFkZHJlc3MgJj0gMHhmOwotICAgICAgICBpZiAoYkVuZHBvaW50QWRkcmVzcyA8IDgpCi0gICAgICAgICAgICAgICAgVUlDUjAgfD0gMSA8PCBiRW5kcG9pbnRBZGRyZXNzOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBiRW5kcG9pbnRBZGRyZXNzIC09IDg7Ci0gICAgICAgICAgICAgICAgVUlDUjEgfD0gMSA8PCBiRW5kcG9pbnRBZGRyZXNzOwotICAgICAgICB9Ci19Ci0KLS8qIFRoZSBVRENDUiByZWcgY29udGFpbnMgbWFzayBhbmQgaW50ZXJydXB0IHN0YXR1cyBiaXRzLAotICogc28gdXNpbmcgJ3w9JyBpc24ndCBzYWZlIGFzIGl0IG1heSBhY2sgYW4gaW50ZXJydXB0LgotICovCi0jZGVmaW5lIFVEQ0NSX01BU0tfQklUUyAgICAgICAgIChVRENDUl9SRU0gfCBVRENDUl9TUk0gfCBVRENDUl9VREUpCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCB1ZGNfc2V0X21hc2tfVURDQ1IoaW50IG1hc2spCi17Ci0JVURDQ1IgPSAoVURDQ1IgJiBVRENDUl9NQVNLX0JJVFMpIHwgKG1hc2sgJiBVRENDUl9NQVNLX0JJVFMpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgdWRjX2NsZWFyX21hc2tfVURDQ1IoaW50IG1hc2spCi17Ci0JVURDQ1IgPSAoVURDQ1IgJiBVRENDUl9NQVNLX0JJVFMpICYgfihtYXNrICYgVURDQ1JfTUFTS19CSVRTKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHVkY19hY2tfaW50X1VEQ0NSKGludCBtYXNrKQotewotCS8qIHVkY2NyIGNvbnRhaW5zIHRoZSBiaXRzIHdlIGRvbnQgd2FudCB0byBjaGFuZ2UgKi8KLQlfX3UzMiB1ZGNjciA9IFVEQ0NSICYgVURDQ1JfTUFTS19CSVRTOwotCi0JVURDQ1IgPSB1ZGNjciB8IChtYXNrICYgflVEQ0NSX01BU0tfQklUUyk7Ci19Ci0KLS8qCi0gKiBlbmRwb2ludCBlbmFibGUvZGlzYWJsZQotICoKLSAqIHdlIG5lZWQgdG8gdmVyaWZ5IHRoZSBkZXNjcmlwdG9ycyB1c2VkIHRvIGVuYWJsZSBlbmRwb2ludHMuICBzaW5jZSBweGEyeHgKLSAqIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25zIGFyZSBmaXhlZCwgYW5kIGFyZSBwcmV0dHkgbXVjaCBhbHdheXMgZW5hYmxlZCwKLSAqIHRoZXJlJ3Mgbm90IGEgbG90IHRvIG1hbmFnZSBoZXJlLgotICoKLSAqIGJlY2F1c2UgcHhhMnh4IGNhbid0IHNlbGVjdGl2ZWx5IGluaXRpYWxpemUgYnVsayAob3IgaW50ZXJydXB0KSBlbmRwb2ludHMsCi0gKiAocmVzZXR0aW5nIGVuZHBvaW50IGhhbHQgYW5kIHRvZ2dsZSksIFNFVF9JTlRFUkZBQ0UgaXMgdW51c2FibGUgZXhjZXB0Ci0gKiBmb3IgYSBzaW5nbGUgaW50ZXJmYWNlICh3aXRoIG9ubHkgdGhlIGRlZmF1bHQgYWx0c2V0dGluZykgYW5kIGZvciBnYWRnZXQKLSAqIGRyaXZlcnMgdGhhdCBkb24ndCBoYWx0IGVuZHBvaW50cyAobm90IHJlc2V0IGJ5IHNldF9pbnRlcmZhY2UpLiAgdGhhdCBhbHNvCi0gKiBtZWFucyB0aGF0IGlmIHlvdSB1c2UgSVNPLCB5b3UgbXVzdCB2aW9sYXRlIHRoZSBVU0Igc3BlYyBydWxlIHRoYXQgYWxsCi0gKiBpc28gZW5kcG9pbnRzIG11c3QgYmUgaW4gbm9uLWRlZmF1bHQgYWx0c2V0dGluZ3MuCi0gKi8KLXN0YXRpYyBpbnQgcHhhMnh4X2VwX2VuYWJsZSAoc3RydWN0IHVzYl9lcCAqX2VwLAotCQljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmRlc2MpCi17Ci0Jc3RydWN0IHB4YTJ4eF9lcCAgICAgICAgKmVwOwotCXN0cnVjdCBweGEyeHhfdWRjICAgICAgICpkZXY7Ci0KLQllcCA9IGNvbnRhaW5lcl9vZiAoX2VwLCBzdHJ1Y3QgcHhhMnh4X2VwLCBlcCk7Ci0JaWYgKCFfZXAgfHwgIWRlc2MgfHwgZXAtPmRlc2MgfHwgX2VwLT5uYW1lID09IGVwMG5hbWUKLQkJCXx8IGRlc2MtPmJEZXNjcmlwdG9yVHlwZSAhPSBVU0JfRFRfRU5EUE9JTlQKLQkJCXx8IGVwLT5iRW5kcG9pbnRBZGRyZXNzICE9IGRlc2MtPmJFbmRwb2ludEFkZHJlc3MKLQkJCXx8IGVwLT5maWZvX3NpemUgPCBsZTE2X3RvX2NwdQotCQkJCQkJKGRlc2MtPndNYXhQYWNrZXRTaXplKSkgewotCQlETVNHKCIlcywgYmFkIGVwIG9yIGRlc2NyaXB0b3JcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogeGZlciB0eXBlcyBtdXN0IG1hdGNoLCBleGNlcHQgdGhhdCBpbnRlcnJ1cHQgfj0gYnVsayAqLwotCWlmIChlcC0+Ym1BdHRyaWJ1dGVzICE9IGRlc2MtPmJtQXR0cmlidXRlcwotCQkJJiYgZXAtPmJtQXR0cmlidXRlcyAhPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLCi0JCQkmJiBkZXNjLT5ibUF0dHJpYnV0ZXMgIT0gVVNCX0VORFBPSU5UX1hGRVJfSU5UKSB7Ci0JCURNU0coIiVzLCAlcyB0eXBlIG1pc21hdGNoXG4iLCBfX2Z1bmNfXywgX2VwLT5uYW1lKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogaGFyZHdhcmUgX2NvdWxkXyBkbyBzbWFsbGVyLCBidXQgZHJpdmVyIGRvZXNuJ3QgKi8KLQlpZiAoKGRlc2MtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLCi0JCQkJJiYgbGUxNl90b19jcHUgKGRlc2MtPndNYXhQYWNrZXRTaXplKQotCQkJCQkJIT0gQlVMS19GSUZPX1NJWkUpCi0JCQl8fCAhZGVzYy0+d01heFBhY2tldFNpemUpIHsKLQkJRE1TRygiJXMsIGJhZCAlcyBtYXhwYWNrZXRcbiIsIF9fZnVuY19fLCBfZXAtPm5hbWUpOwotCQlyZXR1cm4gLUVSQU5HRTsKLQl9Ci0KLQlkZXYgPSBlcC0+ZGV2OwotCWlmICghZGV2LT5kcml2ZXIgfHwgZGV2LT5nYWRnZXQuc3BlZWQgPT0gVVNCX1NQRUVEX1VOS05PV04pIHsKLQkJRE1TRygiJXMsIGJvZ3VzIGRldmljZSBzdGF0ZVxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVTSFVURE9XTjsKLQl9Ci0KLQllcC0+ZGVzYyA9IGRlc2M7Ci0JZXAtPnN0b3BwZWQgPSAwOwotCWVwLT5waW9faXJxcyA9IDA7Ci0JZXAtPmVwLm1heHBhY2tldCA9IGxlMTZfdG9fY3B1IChkZXNjLT53TWF4UGFja2V0U2l6ZSk7Ci0KLQkvKiBmbHVzaCBmaWZvIChtb3N0bHkgZm9yIE9VVCBidWZmZXJzKSAqLwotCXB4YTJ4eF9lcF9maWZvX2ZsdXNoIChfZXApOwotCi0JLyogLi4uIHJlc2V0IGhhbHQgc3RhdGUgdG9vLCBpZiB3ZSBjb3VsZCAuLi4gKi8KLQotCURCRyhEQkdfVkVSQk9TRSwgImVuYWJsZWQgJXNcbiIsIF9lcC0+bmFtZSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcHhhMnh4X2VwX2Rpc2FibGUgKHN0cnVjdCB1c2JfZXAgKl9lcCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X2VwCSplcDsKLQl1bnNpZ25lZCBsb25nCQlmbGFnczsKLQotCWVwID0gY29udGFpbmVyX29mIChfZXAsIHN0cnVjdCBweGEyeHhfZXAsIGVwKTsKLQlpZiAoIV9lcCB8fCAhZXAtPmRlc2MpIHsKLQkJRE1TRygiJXMsICVzIG5vdCBlbmFibGVkXG4iLCBfX2Z1bmNfXywKLQkJCV9lcCA/IGVwLT5lcC5uYW1lIDogTlVMTCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0KLQludWtlIChlcCwgLUVTSFVURE9XTik7Ci0KLQkvKiBmbHVzaCBmaWZvIChtb3N0bHkgZm9yIElOIGJ1ZmZlcnMpICovCi0JcHhhMnh4X2VwX2ZpZm9fZmx1c2ggKF9lcCk7Ci0KLQllcC0+ZGVzYyA9IE5VTEw7Ci0JZXAtPnN0b3BwZWQgPSAxOwotCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCURCRyhEQkdfVkVSQk9TRSwgIiVzIGRpc2FibGVkXG4iLCBfZXAtPm5hbWUpOwotCXJldHVybiAwOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiBmb3IgdGhlIHB4YTJ4eCwgdGhlc2UgY2FuIGp1c3Qgd3JhcCBrbWFsbG9jL2tmcmVlLiAgZ2FkZ2V0IGRyaXZlcnMKLSAqIG11c3Qgc3RpbGwgcGFzcyBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQgZW5kcG9pbnRzLCBzaW5jZSBvdGhlciBjb250cm9sbGVyCi0gKiBkcml2ZXJzIG1heSBjYXJlIGFib3V0IGhvdyBpdCdzIGN1cnJlbnRseSBzZXQgdXAgKGRtYSBpc3N1ZXMgZXRjKS4KLSAqLwotCi0vKgotICoJcHhhMnh4X2VwX2FsbG9jX3JlcXVlc3QgLSBhbGxvY2F0ZSBhIHJlcXVlc3QgZGF0YSBzdHJ1Y3R1cmUKLSAqLwotc3RhdGljIHN0cnVjdCB1c2JfcmVxdWVzdCAqCi1weGEyeHhfZXBfYWxsb2NfcmVxdWVzdCAoc3RydWN0IHVzYl9lcCAqX2VwLCBnZnBfdCBnZnBfZmxhZ3MpCi17Ci0Jc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXE7Ci0KLQlyZXEgPSBremFsbG9jKHNpemVvZigqcmVxKSwgZ2ZwX2ZsYWdzKTsKLQlpZiAoIXJlcSkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlJTklUX0xJU1RfSEVBRCAoJnJlcS0+cXVldWUpOwotCXJldHVybiAmcmVxLT5yZXE7Ci19Ci0KLQotLyoKLSAqCXB4YTJ4eF9lcF9mcmVlX3JlcXVlc3QgLSBkZWFsbG9jYXRlIGEgcmVxdWVzdCBkYXRhIHN0cnVjdHVyZQotICovCi1zdGF0aWMgdm9pZAotcHhhMnh4X2VwX2ZyZWVfcmVxdWVzdCAoc3RydWN0IHVzYl9lcCAqX2VwLCBzdHJ1Y3QgdXNiX3JlcXVlc3QgKl9yZXEpCi17Ci0Jc3RydWN0IHB4YTJ4eF9yZXF1ZXN0CSpyZXE7Ci0KLQlyZXEgPSBjb250YWluZXJfb2YgKF9yZXEsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCwgcmVxKTsKLQlXQVJOX09OICghbGlzdF9lbXB0eSAoJnJlcS0+cXVldWUpKTsKLQlrZnJlZShyZXEpOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKgotICoJZG9uZSAtIHJldGlyZSBhIHJlcXVlc3Q7IGNhbGxlciBibG9ja2VkIGlycXMKLSAqLwotc3RhdGljIHZvaWQgZG9uZShzdHJ1Y3QgcHhhMnh4X2VwICplcCwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXEsIGludCBzdGF0dXMpCi17Ci0JdW5zaWduZWQJCXN0b3BwZWQgPSBlcC0+c3RvcHBlZDsKLQotCWxpc3RfZGVsX2luaXQoJnJlcS0+cXVldWUpOwotCi0JaWYgKGxpa2VseSAocmVxLT5yZXEuc3RhdHVzID09IC1FSU5QUk9HUkVTUykpCi0JCXJlcS0+cmVxLnN0YXR1cyA9IHN0YXR1czsKLQllbHNlCi0JCXN0YXR1cyA9IHJlcS0+cmVxLnN0YXR1czsKLQotCWlmIChzdGF0dXMgJiYgc3RhdHVzICE9IC1FU0hVVERPV04pCi0JCURCRyhEQkdfVkVSQk9TRSwgImNvbXBsZXRlICVzIHJlcSAlcCBzdGF0ICVkIGxlbiAldS8ldVxuIiwKLQkJCWVwLT5lcC5uYW1lLCAmcmVxLT5yZXEsIHN0YXR1cywKLQkJCXJlcS0+cmVxLmFjdHVhbCwgcmVxLT5yZXEubGVuZ3RoKTsKLQotCS8qIGRvbid0IG1vZGlmeSBxdWV1ZSBoZWFkcyBkdXJpbmcgY29tcGxldGlvbiBjYWxsYmFjayAqLwotCWVwLT5zdG9wcGVkID0gMTsKLQlyZXEtPnJlcS5jb21wbGV0ZSgmZXAtPmVwLCAmcmVxLT5yZXEpOwotCWVwLT5zdG9wcGVkID0gc3RvcHBlZDsKLX0KLQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZXAwX2lkbGUgKHN0cnVjdCBweGEyeHhfdWRjICpkZXYpCi17Ci0JZGV2LT5lcDBzdGF0ZSA9IEVQMF9JRExFOwotfQotCi1zdGF0aWMgaW50Ci13cml0ZV9wYWNrZXQodm9sYXRpbGUgdTMyICp1ZGRyLCBzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QgKnJlcSwgdW5zaWduZWQgbWF4KQotewotCXU4CQkqYnVmOwotCXVuc2lnbmVkCWxlbmd0aCwgY291bnQ7Ci0KLQlidWYgPSByZXEtPnJlcS5idWYgKyByZXEtPnJlcS5hY3R1YWw7Ci0JcHJlZmV0Y2goYnVmKTsKLQotCS8qIGhvdyBiaWcgd2lsbCB0aGlzIHBhY2tldCBiZT8gKi8KLQlsZW5ndGggPSBtaW4ocmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsLCBtYXgpOwotCXJlcS0+cmVxLmFjdHVhbCArPSBsZW5ndGg7Ci0KLQljb3VudCA9IGxlbmd0aDsKLQl3aGlsZSAobGlrZWx5KGNvdW50LS0pKQotCQkqdWRkciA9ICpidWYrKzsKLQotCXJldHVybiBsZW5ndGg7Ci19Ci0KLS8qCi0gKiB3cml0ZSB0byBhbiBJTiBlbmRwb2ludCBmaWZvLCBhcyBtYW55IHBhY2tldHMgYXMgcG9zc2libGUuCi0gKiBpcnFzIHdpbGwgdXNlIHRoaXMgdG8gd3JpdGUgdGhlIHJlc3QgbGF0ZXIuCi0gKiBjYWxsZXIgZ3VhcmFudGVlcyBhdCBsZWFzdCBvbmUgcGFja2V0IGJ1ZmZlciBpcyByZWFkeSAob3IgYSB6bHApLgotICovCi1zdGF0aWMgaW50Ci13cml0ZV9maWZvIChzdHJ1Y3QgcHhhMnh4X2VwICplcCwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXEpCi17Ci0JdW5zaWduZWQJCW1heDsKLQotCW1heCA9IGxlMTZfdG9fY3B1KGVwLT5kZXNjLT53TWF4UGFja2V0U2l6ZSk7Ci0JZG8gewotCQl1bnNpZ25lZAljb3VudDsKLQkJaW50CQlpc19sYXN0LCBpc19zaG9ydDsKLQotCQljb3VudCA9IHdyaXRlX3BhY2tldChlcC0+cmVnX3VkZHIsIHJlcSwgbWF4KTsKLQotCQkvKiBsYXN0IHBhY2tldCBpcyB1c3VhbGx5IHNob3J0IChvciBhIHpscCkgKi8KLQkJaWYgKHVubGlrZWx5IChjb3VudCAhPSBtYXgpKQotCQkJaXNfbGFzdCA9IGlzX3Nob3J0ID0gMTsKLQkJZWxzZSB7Ci0JCQlpZiAobGlrZWx5KHJlcS0+cmVxLmxlbmd0aCAhPSByZXEtPnJlcS5hY3R1YWwpCi0JCQkJCXx8IHJlcS0+cmVxLnplcm8pCi0JCQkJaXNfbGFzdCA9IDA7Ci0JCQllbHNlCi0JCQkJaXNfbGFzdCA9IDE7Ci0JCQkvKiBpbnRlcnJ1cHQvaXNvIG1heHBhY2tldCBtYXkgbm90IGZpbGwgdGhlIGZpZm8gKi8KLQkJCWlzX3Nob3J0ID0gdW5saWtlbHkgKG1heCA8IGVwLT5maWZvX3NpemUpOwotCQl9Ci0KLQkJREJHKERCR19WRVJZX05PSVNZLCAid3JvdGUgJXMgJWQgYnl0ZXMlcyVzICVkIGxlZnQgJXBcbiIsCi0JCQllcC0+ZXAubmFtZSwgY291bnQsCi0JCQlpc19sYXN0ID8gIi9MIiA6ICIiLCBpc19zaG9ydCA/ICIvUyIgOiAiIiwKLQkJCXJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbCwgcmVxKTsKLQotCQkvKiBsZXQgbG9vc2UgdGhhdCBwYWNrZXQuIG1heWJlIHRyeSB3cml0aW5nIGFub3RoZXIgb25lLAotCQkgKiBkb3VibGUgYnVmZmVyaW5nIG1pZ2h0IHdvcmsuICBUU1AsIFRQQywgYW5kIFRGUwotCQkgKiBiaXQgdmFsdWVzIGFyZSB0aGUgc2FtZSBmb3IgYWxsIG5vcm1hbCBJTiBlbmRwb2ludHMuCi0JCSAqLwotCQkqZXAtPnJlZ191ZGNjcyA9IFVEQ0NTX0JJX1RQQzsKLQkJaWYgKGlzX3Nob3J0KQotCQkJKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9UU1A7Ci0KLQkJLyogcmVxdWVzdHMgY29tcGxldGUgd2hlbiBhbGwgSU4gZGF0YSBpcyBpbiB0aGUgRklGTyAqLwotCQlpZiAoaXNfbGFzdCkgewotCQkJZG9uZSAoZXAsIHJlcSwgMCk7Ci0JCQlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkKLQkJCQlwaW9faXJxX2Rpc2FibGUgKGVwLT5iRW5kcG9pbnRBZGRyZXNzKTsKLQkJCXJldHVybiAxOwotCQl9Ci0KLQkJLy8gVE9ETyBleHBlcmltZW50OiBob3cgcm9idXN0IGNhbiBmaWZvIG1vZGUgdHdlYWtpbmcgYmU/Ci0JCS8vIGRvdWJsZSBidWZmZXJpbmcgaXMgb2ZmIGluIHRoZSBkZWZhdWx0IGZpZm8gbW9kZSwgd2hpY2gKLQkJLy8gcHJldmVudHMgVEZTIGZyb20gYmVpbmcgc2V0IGhlcmUuCi0KLQl9IHdoaWxlICgqZXAtPnJlZ191ZGNjcyAmIFVEQ0NTX0JJX1RGUyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIGNhbGxlciBhc3NlcnRzIHJlcS0+cGVuZGluZyAoZXAwIGlycSBzdGF0dXMgbnlldCBjbGVhcmVkKTsgc3RhcnRzCi0gKiBlcDAgZGF0YSBzdGFnZS4gIHRoZXNlIGNoaXBzIHdhbnQgdmVyeSBzaW1wbGUgc3RhdGUgdHJhbnNpdGlvbnMuCi0gKi8KLXN0YXRpYyBpbmxpbmUKLXZvaWQgZXAwc3RhcnQoc3RydWN0IHB4YTJ4eF91ZGMgKmRldiwgdTMyIGZsYWdzLCBjb25zdCBjaGFyICp0YWcpCi17Ci0JVURDQ1MwID0gZmxhZ3N8VURDQ1MwX1NBfFVEQ0NTMF9PUFI7Ci0JVVNJUjAgPSBVU0lSMF9JUjA7Ci0JZGV2LT5yZXFfcGVuZGluZyA9IDA7Ci0JREJHKERCR19WRVJZX05PSVNZLCAiJXMgJXMsICUwMngvJTAyeFxuIiwKLQkJX19mdW5jX18sIHRhZywgVURDQ1MwLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyBpbnQKLXdyaXRlX2VwMF9maWZvIChzdHJ1Y3QgcHhhMnh4X2VwICplcCwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXEpCi17Ci0JdW5zaWduZWQJY291bnQ7Ci0JaW50CQlpc19zaG9ydDsKLQotCWNvdW50ID0gd3JpdGVfcGFja2V0KCZVRERSMCwgcmVxLCBFUDBfRklGT19TSVpFKTsKLQllcC0+ZGV2LT5zdGF0cy53cml0ZS5ieXRlcyArPSBjb3VudDsKLQotCS8qIGxhc3QgcGFja2V0ICJtdXN0IGJlIiBzaG9ydCAob3IgYSB6bHApICovCi0JaXNfc2hvcnQgPSAoY291bnQgIT0gRVAwX0ZJRk9fU0laRSk7Ci0KLQlEQkcoREJHX1ZFUllfTk9JU1ksICJlcDBpbiAlZCBieXRlcyAlZCBsZWZ0ICVwXG4iLCBjb3VudCwKLQkJcmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsLCByZXEpOwotCi0JaWYgKHVubGlrZWx5IChpc19zaG9ydCkpIHsKLQkJaWYgKGVwLT5kZXYtPnJlcV9wZW5kaW5nKQotCQkJZXAwc3RhcnQoZXAtPmRldiwgVURDQ1MwX0lQUiwgInNob3J0IElOIik7Ci0JCWVsc2UKLQkJCVVEQ0NTMCA9IFVEQ0NTMF9JUFI7Ci0KLQkJY291bnQgPSByZXEtPnJlcS5sZW5ndGg7Ci0JCWRvbmUgKGVwLCByZXEsIDApOwotCQllcDBfaWRsZShlcC0+ZGV2KTsKLSNpZm5kZWYgQ09ORklHX0FSQ0hfSVhQNFhYCi0jaWYgMQotCQkvKiBUaGlzIHNlZW1zIHRvIGdldCByaWQgb2YgbG9zdCBzdGF0dXMgaXJxcyBpbiBzb21lIGNhc2VzOgotCQkgKiBob3N0IHJlc3BvbmRzIHF1aWNrbHksIG9yIG5leHQgcmVxdWVzdCBpbnZvbHZlcyBjb25maWcKLQkJICogY2hhbmdlIGF1dG9tYWdpYywgb3Igc2hvdWxkIGhhdmUgYmVlbiBoaWRkZW4sIG9yIC4uLgotCQkgKgotCQkgKiBGSVhNRSBnZXQgcmlkIG9mIGFsbCB1ZGVsYXlzIHBvc3NpYmxlLi4uCi0JCSAqLwotCQlpZiAoY291bnQgPj0gRVAwX0ZJRk9fU0laRSkgewotCQkJY291bnQgPSAxMDA7Ci0JCQlkbyB7Ci0JCQkJaWYgKChVRENDUzAgJiBVRENDUzBfT1BSKSAhPSAwKSB7Ci0JCQkJCS8qIGNsZWFyIE9QUiwgZ2VuZXJhdGUgYWNrICovCi0JCQkJCVVEQ0NTMCA9IFVEQ0NTMF9PUFI7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCQljb3VudC0tOwotCQkJCXVkZWxheSgxKTsKLQkJCX0gd2hpbGUgKGNvdW50KTsKLQkJfQotI2VuZGlmCi0jZW5kaWYKLQl9IGVsc2UgaWYgKGVwLT5kZXYtPnJlcV9wZW5kaW5nKQotCQllcDBzdGFydChlcC0+ZGV2LCAwLCAiSU4iKTsKLQlyZXR1cm4gaXNfc2hvcnQ7Ci19Ci0KLQotLyoKLSAqIHJlYWRfZmlmbyAtICB1bmxvYWQgcGFja2V0KHMpIGZyb20gdGhlIGZpZm8gd2UgdXNlIGZvciB1c2IgT1VUCi0gKiB0cmFuc2ZlcnMgYW5kIHB1dCB0aGVtIGludG8gdGhlIHJlcXVlc3QuICBjYWxsZXIgc2hvdWxkIGhhdmUgbWFkZQotICogc3VyZSB0aGVyZSdzIGF0IGxlYXN0IG9uZSBwYWNrZXQgcmVhZHkuCi0gKgotICogcmV0dXJucyB0cnVlIGlmIHRoZSByZXF1ZXN0IGNvbXBsZXRlZCBiZWNhdXNlIG9mIHNob3J0IHBhY2tldCBvciB0aGUKLSAqIHJlcXVlc3QgYnVmZmVyIGhhdmluZyBmaWxsZWQgKGFuZCBtYXliZSBvdmVycmFuIHRpbGwgZW5kLW9mLXBhY2tldCkuCi0gKi8KLXN0YXRpYyBpbnQKLXJlYWRfZmlmbyAoc3RydWN0IHB4YTJ4eF9lcCAqZXAsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCAqcmVxKQotewotCWZvciAoOzspIHsKLQkJdTMyCQl1ZGNjczsKLQkJdTgJCSpidWY7Ci0JCXVuc2lnbmVkCWJ1ZmZlcnNwYWNlLCBjb3VudCwgaXNfc2hvcnQ7Ci0KLQkJLyogbWFrZSBzdXJlIHRoZXJlJ3MgYSBwYWNrZXQgaW4gdGhlIEZJRk8uCi0JCSAqIFVEQ0NTX3tCTyxJT31fUlBDIGFyZSBhbGwgdGhlIHNhbWUgYml0IHZhbHVlLgotCQkgKiBVRENDU197Qk8sSU99X1JORSBhcmUgYWxsIHRoZSBzYW1lIGJpdCB2YWx1ZS4KLQkJICovCi0JCXVkY2NzID0gKmVwLT5yZWdfdWRjY3M7Ci0JCWlmICh1bmxpa2VseSAoKHVkY2NzICYgVURDQ1NfQk9fUlBDKSA9PSAwKSkKLQkJCWJyZWFrOwotCQlidWYgPSByZXEtPnJlcS5idWYgKyByZXEtPnJlcS5hY3R1YWw7Ci0JCXByZWZldGNodyhidWYpOwotCQlidWZmZXJzcGFjZSA9IHJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbDsKLQotCQkvKiByZWFkIGFsbCBieXRlcyBmcm9tIHRoaXMgcGFja2V0ICovCi0JCWlmIChsaWtlbHkgKHVkY2NzICYgVURDQ1NfQk9fUk5FKSkgewotCQkJY291bnQgPSAxICsgKDB4MGZmICYgKmVwLT5yZWdfdWJjcik7Ci0JCQlyZXEtPnJlcS5hY3R1YWwgKz0gbWluIChjb3VudCwgYnVmZmVyc3BhY2UpOwotCQl9IGVsc2UgLyogemxwICovCi0JCQljb3VudCA9IDA7Ci0JCWlzX3Nob3J0ID0gKGNvdW50IDwgZXAtPmVwLm1heHBhY2tldCk7Ci0JCURCRyhEQkdfVkVSWV9OT0lTWSwgInJlYWQgJXMgJTAyeCwgJWQgYnl0ZXMlcyByZXEgJXAgJWQvJWRcbiIsCi0JCQllcC0+ZXAubmFtZSwgdWRjY3MsIGNvdW50LAotCQkJaXNfc2hvcnQgPyAiL1MiIDogIiIsCi0JCQlyZXEsIHJlcS0+cmVxLmFjdHVhbCwgcmVxLT5yZXEubGVuZ3RoKTsKLQkJd2hpbGUgKGxpa2VseSAoY291bnQtLSAhPSAwKSkgewotCQkJdTgJYnl0ZSA9ICh1OCkgKmVwLT5yZWdfdWRkcjsKLQotCQkJaWYgKHVubGlrZWx5IChidWZmZXJzcGFjZSA9PSAwKSkgewotCQkJCS8qIHRoaXMgaGFwcGVucyB3aGVuIHRoZSBkcml2ZXIncyBidWZmZXIKLQkJCQkgKiBpcyBzbWFsbGVyIHRoYW4gd2hhdCB0aGUgaG9zdCBzZW50LgotCQkJCSAqIGRpc2NhcmQgdGhlIGV4dHJhIGRhdGEuCi0JCQkJICovCi0JCQkJaWYgKHJlcS0+cmVxLnN0YXR1cyAhPSAtRU9WRVJGTE9XKQotCQkJCQlETVNHKCIlcyBvdmVyZmxvdyAlZFxuIiwKLQkJCQkJCWVwLT5lcC5uYW1lLCBjb3VudCk7Ci0JCQkJcmVxLT5yZXEuc3RhdHVzID0gLUVPVkVSRkxPVzsKLQkJCX0gZWxzZSB7Ci0JCQkJKmJ1ZisrID0gYnl0ZTsKLQkJCQlidWZmZXJzcGFjZS0tOwotCQkJfQotCQl9Ci0JCSplcC0+cmVnX3VkY2NzID0gIFVEQ0NTX0JPX1JQQzsKLQkJLyogUlBDL1JTUC9STkUgY291bGQgbm93IHJlZmxlY3QgdGhlIG90aGVyIHBhY2tldCBidWZmZXIgKi8KLQotCQkvKiBpc28gaXMgb25lIHJlcXVlc3QgcGVyIHBhY2tldCAqLwotCQlpZiAoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DKSB7Ci0JCQlpZiAodWRjY3MgJiBVRENDU19JT19ST0YpCi0JCQkJcmVxLT5yZXEuc3RhdHVzID0gLUVIT1NUVU5SRUFDSDsKLQkJCS8qIG1vcmUgbGlrZSAiaXNfZG9uZSIgKi8KLQkJCWlzX3Nob3J0ID0gMTsKLQkJfQotCi0JCS8qIGNvbXBsZXRpb24gKi8KLQkJaWYgKGlzX3Nob3J0IHx8IHJlcS0+cmVxLmFjdHVhbCA9PSByZXEtPnJlcS5sZW5ndGgpIHsKLQkJCWRvbmUgKGVwLCByZXEsIDApOwotCQkJaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpCi0JCQkJcGlvX2lycV9kaXNhYmxlIChlcC0+YkVuZHBvaW50QWRkcmVzcyk7Ci0JCQlyZXR1cm4gMTsKLQkJfQotCi0JCS8qIGZpbmlzaGVkIHRoYXQgcGFja2V0LiAgdGhlIG5leHQgb25lIG1heSBiZSB3YWl0aW5nLi4uICovCi0JfQotCXJldHVybiAwOwotfQotCi0vKgotICogc3BlY2lhbCBlcDAgdmVyc2lvbiBvZiB0aGUgYWJvdmUuICBubyBVQkNSMCBvciBkb3VibGUgYnVmZmVyaW5nOyBzdGF0dXMKLSAqIGhhbmRzaGFraW5nIGlzIG1hZ2ljLiAgbW9zdCBkZXZpY2UgcHJvdG9jb2xzIGRvbid0IG5lZWQgY29udHJvbC1PVVQuCi0gKiBDREMgdmVuZG9yIGNvbW1hbmRzIChhbmQgUk5ESVMpLCBtYXNzIHN0b3JhZ2UgQ0IvQ0JJLCBhbmQgc29tZSBvdGhlcgotICogcHJvdG9jb2xzIGRvIHVzZSB0aGVtLgotICovCi1zdGF0aWMgaW50Ci1yZWFkX2VwMF9maWZvIChzdHJ1Y3QgcHhhMnh4X2VwICplcCwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXEpCi17Ci0JdTgJCSpidWYsIGJ5dGU7Ci0JdW5zaWduZWQJYnVmZmVyc3BhY2U7Ci0KLQlidWYgPSByZXEtPnJlcS5idWYgKyByZXEtPnJlcS5hY3R1YWw7Ci0JYnVmZmVyc3BhY2UgPSByZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWw7Ci0KLQl3aGlsZSAoVURDQ1MwICYgVURDQ1MwX1JORSkgewotCQlieXRlID0gKHU4KSBVRERSMDsKLQotCQlpZiAodW5saWtlbHkgKGJ1ZmZlcnNwYWNlID09IDApKSB7Ci0JCQkvKiB0aGlzIGhhcHBlbnMgd2hlbiB0aGUgZHJpdmVyJ3MgYnVmZmVyCi0JCQkgKiBpcyBzbWFsbGVyIHRoYW4gd2hhdCB0aGUgaG9zdCBzZW50LgotCQkJICogZGlzY2FyZCB0aGUgZXh0cmEgZGF0YS4KLQkJCSAqLwotCQkJaWYgKHJlcS0+cmVxLnN0YXR1cyAhPSAtRU9WRVJGTE9XKQotCQkJCURNU0coIiVzIG92ZXJmbG93XG4iLCBlcC0+ZXAubmFtZSk7Ci0JCQlyZXEtPnJlcS5zdGF0dXMgPSAtRU9WRVJGTE9XOwotCQl9IGVsc2UgewotCQkJKmJ1ZisrID0gYnl0ZTsKLQkJCXJlcS0+cmVxLmFjdHVhbCsrOwotCQkJYnVmZmVyc3BhY2UtLTsKLQkJfQotCX0KLQotCVVEQ0NTMCA9IFVEQ0NTMF9PUFIgfCBVRENDUzBfSVBSOwotCi0JLyogY29tcGxldGlvbiAqLwotCWlmIChyZXEtPnJlcS5hY3R1YWwgPj0gcmVxLT5yZXEubGVuZ3RoKQotCQlyZXR1cm4gMTsKLQotCS8qIGZpbmlzaGVkIHRoYXQgcGFja2V0LiAgdGhlIG5leHQgb25lIG1heSBiZSB3YWl0aW5nLi4uICovCi0JcmV0dXJuIDA7Ci19Ci0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLXN0YXRpYyBpbnQKLXB4YTJ4eF9lcF9xdWV1ZShzdHJ1Y3QgdXNiX2VwICpfZXAsIHN0cnVjdCB1c2JfcmVxdWVzdCAqX3JlcSwgZ2ZwX3QgZ2ZwX2ZsYWdzKQotewotCXN0cnVjdCBweGEyeHhfcmVxdWVzdAkqcmVxOwotCXN0cnVjdCBweGEyeHhfZXAJKmVwOwotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXY7Ci0JdW5zaWduZWQgbG9uZwkJZmxhZ3M7Ci0KLQlyZXEgPSBjb250YWluZXJfb2YoX3JlcSwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0LCByZXEpOwotCWlmICh1bmxpa2VseSAoIV9yZXEgfHwgIV9yZXEtPmNvbXBsZXRlIHx8ICFfcmVxLT5idWYKLQkJCXx8ICFsaXN0X2VtcHR5KCZyZXEtPnF1ZXVlKSkpIHsKLQkJRE1TRygiJXMsIGJhZCBwYXJhbXNcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMnh4X2VwLCBlcCk7Ci0JaWYgKHVubGlrZWx5ICghX2VwIHx8ICghZXAtPmRlc2MgJiYgZXAtPmVwLm5hbWUgIT0gZXAwbmFtZSkpKSB7Ci0JCURNU0coIiVzLCBiYWQgZXBcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZGV2ID0gZXAtPmRldjsKLQlpZiAodW5saWtlbHkgKCFkZXYtPmRyaXZlcgotCQkJfHwgZGV2LT5nYWRnZXQuc3BlZWQgPT0gVVNCX1NQRUVEX1VOS05PV04pKSB7Ci0JCURNU0coIiVzLCBib2d1cyBkZXZpY2Ugc3RhdGVcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FU0hVVERPV047Ci0JfQotCi0JLyogaXNvIGlzIGFsd2F5cyBvbmUgcGFja2V0IHBlciByZXF1ZXN0LCB0aGF0J3MgdGhlIG9ubHkgd2F5Ci0JICogd2UgY2FuIHJlcG9ydCBwZXItcGFja2V0IHN0YXR1cy4gIHRoYXQgYWxzbyBoZWxwcyB3aXRoIGRtYS4KLQkgKi8KLQlpZiAodW5saWtlbHkgKGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQwotCQkJJiYgcmVxLT5yZXEubGVuZ3RoID4gbGUxNl90b19jcHUKLQkJCQkJCShlcC0+ZGVzYy0+d01heFBhY2tldFNpemUpKSkKLQkJcmV0dXJuIC1FTVNHU0laRTsKLQotCURCRyhEQkdfTk9JU1ksICIlcyBxdWV1ZSByZXEgJXAsIGxlbiAlZCBidWYgJXBcbiIsCi0JCV9lcC0+bmFtZSwgX3JlcSwgX3JlcS0+bGVuZ3RoLCBfcmVxLT5idWYpOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JX3JlcS0+c3RhdHVzID0gLUVJTlBST0dSRVNTOwotCV9yZXEtPmFjdHVhbCA9IDA7Ci0KLQkvKiBraWNrc3RhcnQgdGhpcyBpL28gcXVldWU/ICovCi0JaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkgJiYgIWVwLT5zdG9wcGVkKSB7Ci0JCWlmIChlcC0+ZGVzYyA9PSBOVUxMLyogZXAwICovKSB7Ci0JCQl1bnNpZ25lZAlsZW5ndGggPSBfcmVxLT5sZW5ndGg7Ci0KLQkJCXN3aXRjaCAoZGV2LT5lcDBzdGF0ZSkgewotCQkJY2FzZSBFUDBfSU5fREFUQV9QSEFTRToKLQkJCQlkZXYtPnN0YXRzLndyaXRlLm9wcysrOwotCQkJCWlmICh3cml0ZV9lcDBfZmlmbyhlcCwgcmVxKSkKLQkJCQkJcmVxID0gTlVMTDsKLQkJCQlicmVhazsKLQotCQkJY2FzZSBFUDBfT1VUX0RBVEFfUEhBU0U6Ci0JCQkJZGV2LT5zdGF0cy5yZWFkLm9wcysrOwotCQkJCS8qIG1lc3N5IC4uLiAqLwotCQkJCWlmIChkZXYtPnJlcV9jb25maWcpIHsKLQkJCQkJREJHKERCR19WRVJCT1NFLCAiZXAwIGNvbmZpZyBhY2slc1xuIiwKLQkJCQkJCWRldi0+aGFzX2NmciA/ICAiIiA6ICIgcmFjZWQiKTsKLQkJCQkJaWYgKGRldi0+aGFzX2NmcikKLQkJCQkJCVVEQ0NGUiA9IFVEQ0NGUl9BUkVOfFVEQ0NGUl9BQ00KLQkJCQkJCQl8VURDQ0ZSX01CMTsKLQkJCQkJZG9uZShlcCwgcmVxLCAwKTsKLQkJCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9FTkRfWEZFUjsKLQkJCQkJbG9jYWxfaXJxX3Jlc3RvcmUgKGZsYWdzKTsKLQkJCQkJcmV0dXJuIDA7Ci0JCQkJfQotCQkJCWlmIChkZXYtPnJlcV9wZW5kaW5nKQotCQkJCQllcDBzdGFydChkZXYsIFVEQ0NTMF9JUFIsICJPVVQiKTsKLQkJCQlpZiAobGVuZ3RoID09IDAgfHwgKChVRENDUzAgJiBVRENDUzBfUk5FKSAhPSAwCi0JCQkJCQkmJiByZWFkX2VwMF9maWZvKGVwLCByZXEpKSkgewotCQkJCQllcDBfaWRsZShkZXYpOwotCQkJCQlkb25lKGVwLCByZXEsIDApOwotCQkJCQlyZXEgPSBOVUxMOwotCQkJCX0KLQkJCQlicmVhazsKLQotCQkJZGVmYXVsdDoKLQkJCQlETVNHKCJlcDAgaS9vLCBvZGQgc3RhdGUgJWRcbiIsIGRldi0+ZXAwc3RhdGUpOwotCQkJCWxvY2FsX2lycV9yZXN0b3JlIChmbGFncyk7Ci0JCQkJcmV0dXJuIC1FTDJITFQ7Ci0JCQl9Ci0JCS8qIGNhbiB0aGUgRklGTyBjYW4gc2F0aXNmeSB0aGUgcmVxdWVzdCBpbW1lZGlhdGVseT8gKi8KLQkJfSBlbHNlIGlmICgoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSAhPSAwKSB7Ci0JCQlpZiAoKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQklfVEZTKSAhPSAwCi0JCQkJCSYmIHdyaXRlX2ZpZm8oZXAsIHJlcSkpCi0JCQkJcmVxID0gTlVMTDsKLQkJfSBlbHNlIGlmICgoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CT19SRlMpICE9IDAKLQkJCQkmJiByZWFkX2ZpZm8oZXAsIHJlcSkpIHsKLQkJCXJlcSA9IE5VTEw7Ci0JCX0KLQotCQlpZiAobGlrZWx5IChyZXEgJiYgZXAtPmRlc2MpKQotCQkJcGlvX2lycV9lbmFibGUoZXAtPmJFbmRwb2ludEFkZHJlc3MpOwotCX0KLQotCS8qIHBpbyBvciBkbWEgaXJxIGhhbmRsZXIgYWR2YW5jZXMgdGhlIHF1ZXVlLiAqLwotCWlmIChsaWtlbHkocmVxICE9IE5VTEwpKQotCQlsaXN0X2FkZF90YWlsKCZyZXEtPnF1ZXVlLCAmZXAtPnF1ZXVlKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotCi0vKgotICoJbnVrZSAtIGRlcXVldWUgQUxMIHJlcXVlc3RzCi0gKi8KLXN0YXRpYyB2b2lkIG51a2Uoc3RydWN0IHB4YTJ4eF9lcCAqZXAsIGludCBzdGF0dXMpCi17Ci0Jc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXE7Ci0KLQkvKiBjYWxsZWQgd2l0aCBpcnFzIGJsb2NrZWQgKi8KLQl3aGlsZSAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKLQkJcmVxID0gbGlzdF9lbnRyeShlcC0+cXVldWUubmV4dCwKLQkJCQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QsCi0JCQkJcXVldWUpOwotCQlkb25lKGVwLCByZXEsIHN0YXR1cyk7Ci0JfQotCWlmIChlcC0+ZGVzYykKLQkJcGlvX2lycV9kaXNhYmxlIChlcC0+YkVuZHBvaW50QWRkcmVzcyk7Ci19Ci0KLQotLyogZGVxdWV1ZSBKVVNUIE9ORSByZXF1ZXN0ICovCi1zdGF0aWMgaW50IHB4YTJ4eF9lcF9kZXF1ZXVlKHN0cnVjdCB1c2JfZXAgKl9lcCwgc3RydWN0IHVzYl9yZXF1ZXN0ICpfcmVxKQotewotCXN0cnVjdCBweGEyeHhfZXAJKmVwOwotCXN0cnVjdCBweGEyeHhfcmVxdWVzdAkqcmVxOwotCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwotCi0JZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMnh4X2VwLCBlcCk7Ci0JaWYgKCFfZXAgfHwgZXAtPmVwLm5hbWUgPT0gZXAwbmFtZSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0KLQkvKiBtYWtlIHN1cmUgaXQncyBhY3R1YWxseSBxdWV1ZWQgb24gdGhpcyBlbmRwb2ludCAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkgKHJlcSwgJmVwLT5xdWV1ZSwgcXVldWUpIHsKLQkJaWYgKCZyZXEtPnJlcSA9PSBfcmVxKQotCQkJYnJlYWs7Ci0JfQotCWlmICgmcmVxLT5yZXEgIT0gX3JlcSkgewotCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRvbmUoZXAsIHJlcSwgLUVDT05OUkVTRVQpOwotCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdGF0aWMgaW50IHB4YTJ4eF9lcF9zZXRfaGFsdChzdHJ1Y3QgdXNiX2VwICpfZXAsIGludCB2YWx1ZSkKLXsKLQlzdHJ1Y3QgcHhhMnh4X2VwCSplcDsKLQl1bnNpZ25lZCBsb25nCQlmbGFnczsKLQotCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTJ4eF9lcCwgZXApOwotCWlmICh1bmxpa2VseSAoIV9lcAotCQkJfHwgKCFlcC0+ZGVzYyAmJiBlcC0+ZXAubmFtZSAhPSBlcDBuYW1lKSkKLQkJCXx8IGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQykgewotCQlETVNHKCIlcywgYmFkIGVwXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlpZiAodmFsdWUgPT0gMCkgewotCQkvKiB0aGlzIHBhdGggKHJlc2V0IHRvZ2dsZStoYWx0KSBpcyBuZWVkZWQgdG8gaW1wbGVtZW50Ci0JCSAqIFNFVF9JTlRFUkZBQ0Ugb24gbm9ybWFsIGhhcmR3YXJlLiAgYnV0IGl0IGNhbid0IGJlCi0JCSAqIGRvbmUgZnJvbSBzb2Z0d2FyZSBvbiB0aGUgUFhBIFVEQywgYW5kIHRoZSBoYXJkd2FyZQotCQkgKiBmb3JnZXRzIHRvIGRvIGl0IGFzIHBhcnQgb2YgU0VUX0lOVEVSRkFDRSBhdXRvbWFnaWMuCi0JCSAqLwotCQlETVNHKCJvbmx5IGhvc3QgY2FuIGNsZWFyICVzIGhhbHRcbiIsIF9lcC0+bmFtZSk7Ci0JCXJldHVybiAtRVJPRlM7Ci0JfQotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JaWYgKChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pICE9IDAKLQkJCSYmICgoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CSV9URlMpID09IDAKLQkJCSAgIHx8ICFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSkgewotCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0JCXJldHVybiAtRUFHQUlOOwotCX0KLQotCS8qIEZTVCBiaXQgaXMgdGhlIHNhbWUgZm9yIGNvbnRyb2wsIGJ1bGsgaW4sIGJ1bGsgb3V0LCBpbnRlcnJ1cHQgaW4gKi8KLQkqZXAtPnJlZ191ZGNjcyA9IFVEQ0NTX0JJX0ZTVHxVRENDU19CSV9GVEY7Ci0KLQkvKiBlcDAgbmVlZHMgc3BlY2lhbCBjYXJlICovCi0JaWYgKCFlcC0+ZGVzYykgewotCQlzdGFydF93YXRjaGRvZyhlcC0+ZGV2KTsKLQkJZXAtPmRldi0+cmVxX3BlbmRpbmcgPSAwOwotCQllcC0+ZGV2LT5lcDBzdGF0ZSA9IEVQMF9TVEFMTDsKLQotCS8qIGFuZCBidWxrL2ludHIgZW5kcG9pbnRzIGxpa2UgZHJvcHBpbmcgc3RhbGxzIHRvbyAqLwotCX0gZWxzZSB7Ci0JCXVuc2lnbmVkIGk7Ci0JCWZvciAoaSA9IDA7IGkgPCAxMDAwOyBpICs9IDIwKSB7Ci0JCQlpZiAoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CSV9TU1QpCi0JCQkJYnJlYWs7Ci0JCQl1ZGVsYXkoMjApOwotCQl9Ci0JfQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQotCURCRyhEQkdfVkVSQk9TRSwgIiVzIGhhbHRcbiIsIF9lcC0+bmFtZSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcHhhMnh4X2VwX2ZpZm9fc3RhdHVzKHN0cnVjdCB1c2JfZXAgKl9lcCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X2VwICAgICAgICAqZXA7Ci0KLQllcCA9IGNvbnRhaW5lcl9vZihfZXAsIHN0cnVjdCBweGEyeHhfZXAsIGVwKTsKLQlpZiAoIV9lcCkgewotCQlETVNHKCIlcywgYmFkIGVwXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRU5PREVWOwotCX0KLQkvKiBweGEgY2FuJ3QgcmVwb3J0IHVuY2xhaW1lZCBieXRlcyBmcm9tIElOIGZpZm9zICovCi0JaWYgKChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pICE9IDApCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKLQlpZiAoZXAtPmRldi0+Z2FkZ2V0LnNwZWVkID09IFVTQl9TUEVFRF9VTktOT1dOCi0JCQl8fCAoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CT19SRlMpID09IDApCi0JCXJldHVybiAwOwotCWVsc2UKLQkJcmV0dXJuICgqZXAtPnJlZ191YmNyICYgMHhmZmYpICsgMTsKLX0KLQotc3RhdGljIHZvaWQgcHhhMnh4X2VwX2ZpZm9fZmx1c2goc3RydWN0IHVzYl9lcCAqX2VwKQotewotCXN0cnVjdCBweGEyeHhfZXAgICAgICAgICplcDsKLQotCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTJ4eF9lcCwgZXApOwotCWlmICghX2VwIHx8IGVwLT5lcC5uYW1lID09IGVwMG5hbWUgfHwgIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKLQkJRE1TRygiJXMsIGJhZCBlcFxuIiwgX19mdW5jX18pOwotCQlyZXR1cm47Ci0JfQotCi0JLyogdG9nZ2xlIGFuZCBoYWx0IGJpdHMgc3RheSB1bmNoYW5nZWQgKi8KLQotCS8qIGZvciBPVVQsIGp1c3QgcmVhZCBhbmQgZGlzY2FyZCB0aGUgRklGTyBjb250ZW50cy4gKi8KLQlpZiAoKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikgPT0gMCkgewotCQl3aGlsZSAoKCgqZXAtPnJlZ191ZGNjcykgJiBVRENDU19CT19STkUpICE9IDApCi0JCQkodm9pZCkgKmVwLT5yZWdfdWRkcjsKLQkJcmV0dXJuOwotCX0KLQotCS8qIG1vc3QgSU4gc3RhdHVzIGlzIHRoZSBzYW1lLCBidXQgSVNPIGNhbid0IHN0YWxsICovCi0JKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9UUEN8VURDQ1NfQklfRlRGfFVEQ0NTX0JJX1RVUgotCQl8IChlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MpCi0JCQk/IDAgOiBVRENDU19CSV9TU1Q7Ci19Ci0KLQotc3RhdGljIHN0cnVjdCB1c2JfZXBfb3BzIHB4YTJ4eF9lcF9vcHMgPSB7Ci0JLmVuYWJsZQkJPSBweGEyeHhfZXBfZW5hYmxlLAotCS5kaXNhYmxlCT0gcHhhMnh4X2VwX2Rpc2FibGUsCi0KLQkuYWxsb2NfcmVxdWVzdAk9IHB4YTJ4eF9lcF9hbGxvY19yZXF1ZXN0LAotCS5mcmVlX3JlcXVlc3QJPSBweGEyeHhfZXBfZnJlZV9yZXF1ZXN0LAotCi0JLnF1ZXVlCQk9IHB4YTJ4eF9lcF9xdWV1ZSwKLQkuZGVxdWV1ZQk9IHB4YTJ4eF9lcF9kZXF1ZXVlLAotCi0JLnNldF9oYWx0CT0gcHhhMnh4X2VwX3NldF9oYWx0LAotCS5maWZvX3N0YXR1cwk9IHB4YTJ4eF9lcF9maWZvX3N0YXR1cywKLQkuZmlmb19mbHVzaAk9IHB4YTJ4eF9lcF9maWZvX2ZsdXNoLAotfTsKLQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCWRldmljZS1zY29wZWQgcGFydHMgb2YgdGhlIGFwaSB0byB0aGUgdXNiIGNvbnRyb2xsZXIgaGFyZHdhcmUKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0KLXN0YXRpYyBpbnQgcHhhMnh4X3VkY19nZXRfZnJhbWUoc3RydWN0IHVzYl9nYWRnZXQgKl9nYWRnZXQpCi17Ci0JcmV0dXJuICgoVUZOUkggJiAweDA3KSA8PCA4KSB8IChVRk5STCAmIDB4ZmYpOwotfQotCi1zdGF0aWMgaW50IHB4YTJ4eF91ZGNfd2FrZXVwKHN0cnVjdCB1c2JfZ2FkZ2V0ICpfZ2FkZ2V0KQotewotCS8qIGhvc3QgbWF5IG5vdCBoYXZlIGVuYWJsZWQgcmVtb3RlIHdha2V1cCAqLwotCWlmICgoVURDQ1MwICYgVURDQ1MwX0RSV0YpID09IDApCi0JCXJldHVybiAtRUhPU1RVTlJFQUNIOwotCXVkY19zZXRfbWFza19VRENDUihVRENDUl9SU00pOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBzdG9wX2FjdGl2aXR5KHN0cnVjdCBweGEyeHhfdWRjICosIHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqKTsKLXN0YXRpYyB2b2lkIHVkY19lbmFibGUgKHN0cnVjdCBweGEyeHhfdWRjICopOwotc3RhdGljIHZvaWQgdWRjX2Rpc2FibGUoc3RydWN0IHB4YTJ4eF91ZGMgKik7Ci0KLS8qIFdlIGRpc2FibGUgdGhlIFVEQyAtLSBhbmQgaXRzIDQ4IE1IeiBjbG9jayAtLSB3aGVuZXZlciBpdCdzIG5vdAotICogaW4gYWN0aXZlIHVzZS4KLSAqLwotc3RhdGljIGludCBwdWxsdXAoc3RydWN0IHB4YTJ4eF91ZGMgKnVkYykKLXsKLQlpbnQgaXNfYWN0aXZlID0gdWRjLT52YnVzICYmIHVkYy0+cHVsbHVwICYmICF1ZGMtPnN1c3BlbmRlZDsKLQlETVNHKCIlc1xuIiwgaXNfYWN0aXZlID8gImFjdGl2ZSIgOiAiaW5hY3RpdmUiKTsKLQlpZiAoaXNfYWN0aXZlKSB7Ci0JCWlmICghdWRjLT5hY3RpdmUpIHsKLQkJCXVkYy0+YWN0aXZlID0gMTsKLQkJCS8qIEVuYWJsZSBjbG9jayBmb3IgVVNCIGRldmljZSAqLwotCQkJY2xrX2VuYWJsZSh1ZGMtPmNsayk7Ci0JCQl1ZGNfZW5hYmxlKHVkYyk7Ci0JCX0KLQl9IGVsc2UgewotCQlpZiAodWRjLT5hY3RpdmUpIHsKLQkJCWlmICh1ZGMtPmdhZGdldC5zcGVlZCAhPSBVU0JfU1BFRURfVU5LTk9XTikgewotCQkJCURNU0coImRpc2Nvbm5lY3QgJXNcbiIsIHVkYy0+ZHJpdmVyCi0JCQkJCT8gdWRjLT5kcml2ZXItPmRyaXZlci5uYW1lCi0JCQkJCTogIihubyBkcml2ZXIpIik7Ci0JCQkJc3RvcF9hY3Rpdml0eSh1ZGMsIHVkYy0+ZHJpdmVyKTsKLQkJCX0KLQkJCXVkY19kaXNhYmxlKHVkYyk7Ci0JCQkvKiBEaXNhYmxlIGNsb2NrIGZvciBVU0IgZGV2aWNlICovCi0JCQljbGtfZGlzYWJsZSh1ZGMtPmNsayk7Ci0JCQl1ZGMtPmFjdGl2ZSA9IDA7Ci0JCX0KLQotCX0KLQlyZXR1cm4gMDsKLX0KLQotLyogVkJVUyByZXBvcnRpbmcgbG9naWNhbGx5IGNvbWVzIGZyb20gYSB0cmFuc2NlaXZlciAqLwotc3RhdGljIGludCBweGEyeHhfdWRjX3ZidXNfc2Vzc2lvbihzdHJ1Y3QgdXNiX2dhZGdldCAqX2dhZGdldCwgaW50IGlzX2FjdGl2ZSkKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkqdWRjOwotCi0JdWRjID0gY29udGFpbmVyX29mKF9nYWRnZXQsIHN0cnVjdCBweGEyeHhfdWRjLCBnYWRnZXQpOwotCXVkYy0+dmJ1cyA9IChpc19hY3RpdmUgIT0gMCk7Ci0JRE1TRygidmJ1cyAlc1xuIiwgaXNfYWN0aXZlID8gInN1cHBsaWVkIiA6ICJpbmFjdGl2ZSIpOwotCXB1bGx1cCh1ZGMpOwotCXJldHVybiAwOwotfQotCi0vKiBkcml2ZXJzIG1heSBoYXZlIHNvZnR3YXJlIGNvbnRyb2wgb3ZlciBEKyBwdWxsdXAgKi8KLXN0YXRpYyBpbnQgcHhhMnh4X3VkY19wdWxsdXAoc3RydWN0IHVzYl9nYWRnZXQgKl9nYWRnZXQsIGludCBpc19hY3RpdmUpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKnVkYzsKLQotCXVkYyA9IGNvbnRhaW5lcl9vZihfZ2FkZ2V0LCBzdHJ1Y3QgcHhhMnh4X3VkYywgZ2FkZ2V0KTsKLQotCS8qIG5vdCBhbGwgYm9hcmRzIHN1cHBvcnQgcHVsbHVwIGNvbnRyb2wgKi8KLQlpZiAoIXVkYy0+bWFjaC0+Z3Bpb19wdWxsdXAgJiYgIXVkYy0+bWFjaC0+dWRjX2NvbW1hbmQpCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKLQotCXVkYy0+cHVsbHVwID0gKGlzX2FjdGl2ZSAhPSAwKTsKLQlwdWxsdXAodWRjKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZ2FkZ2V0X29wcyBweGEyeHhfdWRjX29wcyA9IHsKLQkuZ2V0X2ZyYW1lCT0gcHhhMnh4X3VkY19nZXRfZnJhbWUsCi0JLndha2V1cAkJPSBweGEyeHhfdWRjX3dha2V1cCwKLQkudmJ1c19zZXNzaW9uCT0gcHhhMnh4X3VkY192YnVzX3Nlc3Npb24sCi0JLnB1bGx1cAkJPSBweGEyeHhfdWRjX3B1bGx1cCwKLQotCS8vIC52YnVzX2RyYXcgLi4uIGJvYXJkcyBtYXkgY29uc3VtZSBjdXJyZW50IGZyb20gVkJVUywgdXAgdG8KLQkvLyAxMDAtNTAwbUEgYmFzZWQgb24gY29uZmlnLiAgdGhlIDUwMHVBIHN1c3BlbmQgY2VpbGluZyBtZWFucwotCS8vIHRoYXQgZXhjbHVzaXZlbHkgdmJ1cy1wb3dlcmVkIFBYQSBkZXNpZ25zIHZpb2xhdGUgVVNCIHNwZWNzLgotfTsKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotI2lmZGVmIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZTCi0KLXN0YXRpYyBpbnQKLXVkY19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKl9kKQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSBtLT5wcml2YXRlOwotCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwotCWludAkJCWk7Ci0JdTMyCQkJdG1wOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JLyogYmFzaWMgZGV2aWNlIHN0YXR1cyAqLwotCXNlcV9wcmludGYobSwgRFJJVkVSX0RFU0MgIlxuIgotCQkiJXMgdmVyc2lvbjogJXNcbkdhZGdldCBkcml2ZXI6ICVzXG5Ib3N0ICVzXG5cbiIsCi0JCWRyaXZlcl9uYW1lLCBEUklWRVJfVkVSU0lPTiBTSVpFX1NUUiAiKHBpbykiLAotCQlkZXYtPmRyaXZlciA/IGRldi0+ZHJpdmVyLT5kcml2ZXIubmFtZSA6ICIobm9uZSkiLAotCQlpc192YnVzX3ByZXNlbnQoKSA/ICJmdWxsIHNwZWVkIiA6ICJkaXNjb25uZWN0ZWQiKTsKLQotCS8qIHJlZ2lzdGVycyBmb3IgZGV2aWNlIGFuZCBlcDAgKi8KLQlzZXFfcHJpbnRmKG0sCi0JCSJ1aWNyICUwMlguJTAyWCwgdXNpciAlMDJYLiUwMngsIHVmbnIgJTAyWC4lMDJYXG4iLAotCQlVSUNSMSwgVUlDUjAsIFVTSVIxLCBVU0lSMCwgVUZOUkgsIFVGTlJMKTsKLQotCXRtcCA9IFVEQ0NSOwotCXNlcV9wcmludGYobSwKLQkJInVkY2NyICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsIHRtcCwKLQkJKHRtcCAmIFVEQ0NSX1JFTSkgPyAiIHJlbSIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NSX1JTVElSKSA/ICIgcnN0aXIiIDogIiIsCi0JCSh0bXAgJiBVRENDUl9TUk0pID8gIiBzcm0iIDogIiIsCi0JCSh0bXAgJiBVRENDUl9TVVNJUikgPyAiIHN1c2lyIiA6ICIiLAotCQkodG1wICYgVURDQ1JfUkVTSVIpID8gIiByZXNpciIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NSX1JTTSkgPyAiIHJzbSIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NSX1VEQSkgPyAiIHVkYSIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NSX1VERSkgPyAiIHVkZSIgOiAiIik7Ci0KLQl0bXAgPSBVRENDUzA7Ci0Jc2VxX3ByaW50ZihtLAotCQkidWRjY3MwICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsIHRtcCwKLQkJKHRtcCAmIFVEQ0NTMF9TQSkgPyAiIHNhIiA6ICIiLAotCQkodG1wICYgVURDQ1MwX1JORSkgPyAiIHJuZSIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NTMF9GU1QpID8gIiBmc3QiIDogIiIsCi0JCSh0bXAgJiBVRENDUzBfU1NUKSA/ICIgc3N0IiA6ICIiLAotCQkodG1wICYgVURDQ1MwX0RSV0YpID8gIiBkd3JmIiA6ICIiLAotCQkodG1wICYgVURDQ1MwX0ZURikgPyAiIGZ0ZiIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NTMF9JUFIpID8gIiBpcHIiIDogIiIsCi0JCSh0bXAgJiBVRENDUzBfT1BSKSA/ICIgb3ByIiA6ICIiKTsKLQotCWlmIChkZXYtPmhhc19jZnIpIHsKLQkJdG1wID0gVURDQ0ZSOwotCQlzZXFfcHJpbnRmKG0sCi0JCQkidWRjY2ZyICUwMlggPSVzJXNcbiIsIHRtcCwKLQkJCSh0bXAgJiBVRENDRlJfQVJFTikgPyAiIGFyZW4iIDogIiIsCi0JCQkodG1wICYgVURDQ0ZSX0FDTSkgPyAiIGFjbSIgOiAiIik7Ci0JfQotCi0JaWYgKCFpc192YnVzX3ByZXNlbnQoKSB8fCAhZGV2LT5kcml2ZXIpCi0JCWdvdG8gZG9uZTsKLQotCXNlcV9wcmludGYobSwgImVwMCBJTiAlbHUvJWx1LCBPVVQgJWx1LyVsdVxuaXJxcyAlbHVcblxuIiwKLQkJZGV2LT5zdGF0cy53cml0ZS5ieXRlcywgZGV2LT5zdGF0cy53cml0ZS5vcHMsCi0JCWRldi0+c3RhdHMucmVhZC5ieXRlcywgZGV2LT5zdGF0cy5yZWFkLm9wcywKLQkJZGV2LT5zdGF0cy5pcnFzKTsKLQotCS8qIGR1bXAgZW5kcG9pbnQgcXVldWVzICovCi0JZm9yIChpID0gMDsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKSB7Ci0JCXN0cnVjdCBweGEyeHhfZXAJKmVwID0gJmRldi0+ZXAgW2ldOwotCQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QJKnJlcTsKLQotCQlpZiAoaSAhPSAwKSB7Ci0JCQljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IJKmRlc2M7Ci0KLQkJCWRlc2MgPSBlcC0+ZGVzYzsKLQkJCWlmICghZGVzYykKLQkJCQljb250aW51ZTsKLQkJCXRtcCA9ICpkZXYtPmVwIFtpXS5yZWdfdWRjY3M7Ci0JCQlzZXFfcHJpbnRmKG0sCi0JCQkJIiVzIG1heCAlZCAlcyB1ZGNjcyAlMDJ4IGlycXMgJWx1XG4iLAotCQkJCWVwLT5lcC5uYW1lLCBsZTE2X3RvX2NwdShkZXNjLT53TWF4UGFja2V0U2l6ZSksCi0JCQkJInBpbyIsIHRtcCwgZXAtPnBpb19pcnFzKTsKLQkJCS8qIFRPRE8gdHJhbnNsYXRlIGFsbCBmaXZlIGdyb3VwcyBvZiB1ZGNjcyBiaXRzISAqLwotCi0JCX0gZWxzZSAvKiBlcDAgc2hvdWxkIG9ubHkgaGF2ZSBvbmUgdHJhbnNmZXIgcXVldWVkICovCi0JCQlzZXFfcHJpbnRmKG0sICJlcDAgbWF4IDE2IHBpbyBpcnFzICVsdVxuIiwKLQkJCQllcC0+cGlvX2lycXMpOwotCi0JCWlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7Ci0JCQlzZXFfcHJpbnRmKG0sICJcdChub3RoaW5nIHF1ZXVlZClcbiIpOwotCQkJY29udGludWU7Ci0JCX0KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXEsICZlcC0+cXVldWUsIHF1ZXVlKSB7Ci0JCQlzZXFfcHJpbnRmKG0sCi0JCQkJCSJcdHJlcSAlcCBsZW4gJWQvJWQgYnVmICVwXG4iLAotCQkJCQkmcmVxLT5yZXEsIHJlcS0+cmVxLmFjdHVhbCwKLQkJCQkJcmVxLT5yZXEubGVuZ3RoLCByZXEtPnJlcS5idWYpOwotCQl9Ci0JfQotCi1kb25lOgotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotdWRjX2RlYnVnZnNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgdWRjX3NlcV9zaG93LCBpbm9kZS0+aV9wcml2YXRlKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGVidWdfZm9wcyA9IHsKLQkub3BlbgkJPSB1ZGNfZGVidWdmc19vcGVuLAotCS5yZWFkCQk9IHNlcV9yZWFkLAotCS5sbHNlZWsJCT0gc2VxX2xzZWVrLAotCS5yZWxlYXNlCT0gc2luZ2xlX3JlbGVhc2UsCi0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotfTsKLQotI2RlZmluZSBjcmVhdGVfZGVidWdfZmlsZXMoZGV2KSBcCi0JZG8geyBcCi0JCWRldi0+ZGVidWdmc191ZGMgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKGRldi0+Z2FkZ2V0Lm5hbWUsIFwKLQkJCVNfSVJVR08sIE5VTEwsIGRldiwgJmRlYnVnX2ZvcHMpOyBcCi0JfSB3aGlsZSAoMCkKLSNkZWZpbmUgcmVtb3ZlX2RlYnVnX2ZpbGVzKGRldikgXAotCWRvIHsgXAotCQlpZiAoZGV2LT5kZWJ1Z2ZzX3VkYykgXAotCQkJZGVidWdmc19yZW1vdmUoZGV2LT5kZWJ1Z2ZzX3VkYyk7IFwKLQl9IHdoaWxlICgwKQotCi0jZWxzZQkvKiAhQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgKi8KLQotI2RlZmluZSBjcmVhdGVfZGVidWdfZmlsZXMoZGV2KSBkbyB7fSB3aGlsZSAoMCkKLSNkZWZpbmUgcmVtb3ZlX2RlYnVnX2ZpbGVzKGRldikgZG8ge30gd2hpbGUgKDApCi0KLSNlbmRpZgkvKiBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyAqLwotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKgotICoJdWRjX2Rpc2FibGUgLSBkaXNhYmxlIFVTQiBkZXZpY2UgY29udHJvbGxlcgotICovCi1zdGF0aWMgdm9pZCB1ZGNfZGlzYWJsZShzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCS8qIGJsb2NrIGFsbCBpcnFzICovCi0JdWRjX3NldF9tYXNrX1VEQ0NSKFVEQ0NSX1NSTXxVRENDUl9SRU0pOwotCVVJQ1IwID0gVUlDUjEgPSAweGZmOwotCVVGTlJIID0gVUZOUkhfU0lNOwotCi0JLyogaWYgaGFyZHdhcmUgc3VwcG9ydHMgaXQsIGRpc2Nvbm5lY3QgZnJvbSB1c2IgKi8KLQlwdWxsdXBfb2ZmKCk7Ci0KLQl1ZGNfY2xlYXJfbWFza19VRENDUihVRENDUl9VREUpOwotCi0JZXAwX2lkbGUgKGRldik7Ci0JZGV2LT5nYWRnZXQuc3BlZWQgPSBVU0JfU1BFRURfVU5LTk9XTjsKLX0KLQotCi0vKgotICoJdWRjX3JlaW5pdCAtIGluaXRpYWxpemUgc29mdHdhcmUgc3RhdGUKLSAqLwotc3RhdGljIHZvaWQgdWRjX3JlaW5pdChzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCXUzMglpOwotCi0JLyogZGV2aWNlL2VwMCByZWNvcmRzIGluaXQgKi8KLQlJTklUX0xJU1RfSEVBRCAoJmRldi0+Z2FkZ2V0LmVwX2xpc3QpOwotCUlOSVRfTElTVF9IRUFEICgmZGV2LT5nYWRnZXQuZXAwLT5lcF9saXN0KTsKLQlkZXYtPmVwMHN0YXRlID0gRVAwX0lETEU7Ci0KLQkvKiBiYXNpYyBlbmRwb2ludCByZWNvcmRzIGluaXQgKi8KLQlmb3IgKGkgPSAwOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspIHsKLQkJc3RydWN0IHB4YTJ4eF9lcCAqZXAgPSAmZGV2LT5lcFtpXTsKLQotCQlpZiAoaSAhPSAwKQotCQkJbGlzdF9hZGRfdGFpbCAoJmVwLT5lcC5lcF9saXN0LCAmZGV2LT5nYWRnZXQuZXBfbGlzdCk7Ci0KLQkJZXAtPmRlc2MgPSBOVUxMOwotCQllcC0+c3RvcHBlZCA9IDA7Ci0JCUlOSVRfTElTVF9IRUFEICgmZXAtPnF1ZXVlKTsKLQkJZXAtPnBpb19pcnFzID0gMDsKLQl9Ci0KLQkvKiB0aGUgcmVzdCB3YXMgc3RhdGljYWxseSBpbml0aWFsaXplZCwgYW5kIGlzIHJlYWQtb25seSAqLwotfQotCi0vKiB1bnRpbCBpdCdzIGVuYWJsZWQsIHRoaXMgVURDIHNob3VsZCBiZSBjb21wbGV0ZWx5IGludmlzaWJsZQotICogdG8gYW55IFVTQiBob3N0LgotICovCi1zdGF0aWMgdm9pZCB1ZGNfZW5hYmxlIChzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCXVkY19jbGVhcl9tYXNrX1VEQ0NSKFVEQ0NSX1VERSk7Ci0KLQkvKiB0cnkgdG8gY2xlYXIgdGhlc2UgYml0cyBiZWZvcmUgd2UgZW5hYmxlIHRoZSB1ZGMgKi8KLQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9TVVNJUnwvKlVEQ0NSX1JTVElSfCovVURDQ1JfUkVTSVIpOwotCi0JZXAwX2lkbGUoZGV2KTsKLQlkZXYtPmdhZGdldC5zcGVlZCA9IFVTQl9TUEVFRF9VTktOT1dOOwotCWRldi0+c3RhdHMuaXJxcyA9IDA7Ci0KLQkvKgotCSAqIHNlcXVlbmNlIHRha2VuIGZyb20gY2hhcHRlciAxMi41LjEwLCBQWEEyNTAgQXBwUHJvY0Rldk1hbnVhbDoKLQkgKiAtIGVuYWJsZSBVREMKLQkgKiAtIGlmIFJFU0VUIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIGFjayBpbnRlcnJ1cHQKLQkgKiAtIHVubWFzayByZXNldCBpbnRlcnJ1cHQKLQkgKi8KLQl1ZGNfc2V0X21hc2tfVURDQ1IoVURDQ1JfVURFKTsKLQlpZiAoIShVRENDUiAmIFVEQ0NSX1VEQSkpCi0JCXVkY19hY2tfaW50X1VEQ0NSKFVEQ0NSX1JTVElSKTsKLQotCWlmIChkZXYtPmhhc19jZnIgLyogVURDX1JFUzIgaXMgZGVmaW5lZCAqLykgewotCQkvKiBweGEyNTUgKGEwKykgY2FuIGF2b2lkIGEgc2V0X2NvbmZpZyByYWNlIHRoYXQgY291bGQKLQkJICogcHJldmVudCBnYWRnZXQgZHJpdmVycyBmcm9tIGNvbmZpZ3VyaW5nIGNvcnJlY3RseQotCQkgKi8KLQkJVURDQ0ZSID0gVURDQ0ZSX0FDTSB8IFVEQ0NGUl9NQjE7Ci0JfSBlbHNlIHsKLQkJLyogIlVTQiB0ZXN0IG1vZGUiIGZvciBweGEyNTAgZXJyYXRhIDQwLTQyIChzdGVwcGluZyBhMCwgYTEpCi0JCSAqIHdoaWNoIGNvdWxkIHJlc3VsdCBpbiBtaXNzaW5nIHBhY2tldHMgYW5kIGludGVycnVwdHMuCi0JCSAqIHN1cHBvc2VkbHkgb25lIGJpdCBwZXIgZW5kcG9pbnQsIGNvbnRyb2xsaW5nIHdoZXRoZXIgaXQKLQkJICogZG91YmxlIGJ1ZmZlcnMgb3Igbm90OyBBQ00vQVJFTiBiaXRzIGZpdCBpbnRvIHRoZSBob2xlcy4KLQkJICogemVybyBiaXRzIChsaWtlIFVTSVIwX0lSeCkgZGlzYWJsZSBkb3VibGUgYnVmZmVyaW5nLgotCQkgKi8KLQkJVURDX1JFUzEgPSAweDAwOwotCQlVRENfUkVTMiA9IDB4MDA7Ci0JfQotCi0JLyogZW5hYmxlIHN1c3BlbmQvcmVzdW1lIGFuZCByZXNldCBpcnFzICovCi0JdWRjX2NsZWFyX21hc2tfVURDQ1IoVURDQ1JfU1JNIHwgVURDQ1JfUkVNKTsKLQotCS8qIGVuYWJsZSBlcDAgaXJxcyAqLwotCVVJQ1IwICY9IH5VSUNSMF9JTTA7Ci0KLQkvKiBpZiBoYXJkd2FyZSBzdXBwb3J0cyBpdCwgcHVsbHVwIEQrIGFuZCB3YWl0IGZvciByZXNldCAqLwotCXB1bGx1cF9vbigpOwotfQotCi0KLS8qIHdoZW4gYSBkcml2ZXIgaXMgc3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQsIGl0IHdpbGwgcmVjZWl2ZQotICogY29udHJvbCByZXF1ZXN0cyBpbmNsdWRpbmcgc2V0X2NvbmZpZ3VyYXRpb24oKSwgd2hpY2ggZW5hYmxlcwotICogbm9uLWNvbnRyb2wgcmVxdWVzdHMuICB0aGVuIHVzYiB0cmFmZmljIGZvbGxvd3MgdW50aWwgYQotICogZGlzY29ubmVjdCBpcyByZXBvcnRlZC4gIHRoZW4gYSBob3N0IG1heSBjb25uZWN0IGFnYWluLCBvcgotICogdGhlIGRyaXZlciBtaWdodCBnZXQgdW5ib3VuZC4KLSAqLwotaW50IHVzYl9nYWRnZXRfcmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqZHJpdmVyKQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSB0aGVfY29udHJvbGxlcjsKLQlpbnQJCQlyZXR2YWw7Ci0KLQlpZiAoIWRyaXZlcgotCQkJfHwgZHJpdmVyLT5zcGVlZCA8IFVTQl9TUEVFRF9GVUxMCi0JCQl8fCAhZHJpdmVyLT5iaW5kCi0JCQl8fCAhZHJpdmVyLT5kaXNjb25uZWN0Ci0JCQl8fCAhZHJpdmVyLT5zZXR1cCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JaWYgKCFkZXYpCi0JCXJldHVybiAtRU5PREVWOwotCWlmIChkZXYtPmRyaXZlcikKLQkJcmV0dXJuIC1FQlVTWTsKLQotCS8qIGZpcnN0IGhvb2sgdXAgdGhlIGRyaXZlciAuLi4gKi8KLQlkZXYtPmRyaXZlciA9IGRyaXZlcjsKLQlkZXYtPmdhZGdldC5kZXYuZHJpdmVyID0gJmRyaXZlci0+ZHJpdmVyOwotCWRldi0+cHVsbHVwID0gMTsKLQotCXJldHZhbCA9IGRldmljZV9hZGQgKCZkZXYtPmdhZGdldC5kZXYpOwotCWlmIChyZXR2YWwpIHsKLWZhaWw6Ci0JCWRldi0+ZHJpdmVyID0gTlVMTDsKLQkJZGV2LT5nYWRnZXQuZGV2LmRyaXZlciA9IE5VTEw7Ci0JCXJldHVybiByZXR2YWw7Ci0JfQotCXJldHZhbCA9IGRyaXZlci0+YmluZCgmZGV2LT5nYWRnZXQpOwotCWlmIChyZXR2YWwpIHsKLQkJRE1TRygiYmluZCB0byBkcml2ZXIgJXMgLS0+IGVycm9yICVkXG4iLAotCQkJCWRyaXZlci0+ZHJpdmVyLm5hbWUsIHJldHZhbCk7Ci0JCWRldmljZV9kZWwgKCZkZXYtPmdhZGdldC5kZXYpOwotCQlnb3RvIGZhaWw7Ci0JfQotCi0JLyogLi4uIHRoZW4gZW5hYmxlIGhvc3QgZGV0ZWN0aW9uIGFuZCBlcDA7IGFuZCB3ZSdyZSByZWFkeQotCSAqIGZvciBzZXRfY29uZmlndXJhdGlvbiBhcyB3ZWxsIGFzIGV2ZW50dWFsIGRpc2Nvbm5lY3QuCi0JICovCi0JRE1TRygicmVnaXN0ZXJlZCBnYWRnZXQgZHJpdmVyICclcydcbiIsIGRyaXZlci0+ZHJpdmVyLm5hbWUpOwotCXB1bGx1cChkZXYpOwotCWR1bXBfc3RhdGUoZGV2KTsKLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0wodXNiX2dhZGdldF9yZWdpc3Rlcl9kcml2ZXIpOwotCi1zdGF0aWMgdm9pZAotc3RvcF9hY3Rpdml0eShzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2LCBzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIgKmRyaXZlcikKLXsKLQlpbnQgaTsKLQotCS8qIGRvbid0IGRpc2Nvbm5lY3QgZHJpdmVycyBtb3JlIHRoYW4gb25jZSAqLwotCWlmIChkZXYtPmdhZGdldC5zcGVlZCA9PSBVU0JfU1BFRURfVU5LTk9XTikKLQkJZHJpdmVyID0gTlVMTDsKLQlkZXYtPmdhZGdldC5zcGVlZCA9IFVTQl9TUEVFRF9VTktOT1dOOwotCi0JLyogcHJldmVudCBuZXcgcmVxdWVzdCBzdWJtaXNzaW9ucywga2lsbCBhbnkgb3V0c3RhbmRpbmcgcmVxdWVzdHMgICovCi0JZm9yIChpID0gMDsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKSB7Ci0JCXN0cnVjdCBweGEyeHhfZXAgKmVwID0gJmRldi0+ZXBbaV07Ci0KLQkJZXAtPnN0b3BwZWQgPSAxOwotCQludWtlKGVwLCAtRVNIVVRET1dOKTsKLQl9Ci0JZGVsX3RpbWVyX3N5bmMoJmRldi0+dGltZXIpOwotCi0JLyogcmVwb3J0IGRpc2Nvbm5lY3Q7IHRoZSBkcml2ZXIgaXMgYWxyZWFkeSBxdWllc2NlZCAqLwotCWlmIChkcml2ZXIpCi0JCWRyaXZlci0+ZGlzY29ubmVjdCgmZGV2LT5nYWRnZXQpOwotCi0JLyogcmUtaW5pdCBkcml2ZXItdmlzaWJsZSBkYXRhIHN0cnVjdHVyZXMgKi8KLQl1ZGNfcmVpbml0KGRldik7Ci19Ci0KLWludCB1c2JfZ2FkZ2V0X3VucmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqZHJpdmVyKQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSB0aGVfY29udHJvbGxlcjsKLQotCWlmICghZGV2KQotCQlyZXR1cm4gLUVOT0RFVjsKLQlpZiAoIWRyaXZlciB8fCBkcml2ZXIgIT0gZGV2LT5kcml2ZXIgfHwgIWRyaXZlci0+dW5iaW5kKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0JZGV2LT5wdWxsdXAgPSAwOwotCXB1bGx1cChkZXYpOwotCXN0b3BfYWN0aXZpdHkoZGV2LCBkcml2ZXIpOwotCWxvY2FsX2lycV9lbmFibGUoKTsKLQotCWRyaXZlci0+dW5iaW5kKCZkZXYtPmdhZGdldCk7Ci0JZGV2LT5nYWRnZXQuZGV2LmRyaXZlciA9IE5VTEw7Ci0JZGV2LT5kcml2ZXIgPSBOVUxMOwotCi0JZGV2aWNlX2RlbCAoJmRldi0+Z2FkZ2V0LmRldik7Ci0KLQlETVNHKCJ1bnJlZ2lzdGVyZWQgZ2FkZ2V0IGRyaXZlciAnJXMnXG4iLCBkcml2ZXItPmRyaXZlci5uYW1lKTsKLQlkdW1wX3N0YXRlKGRldik7Ci0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MKHVzYl9nYWRnZXRfdW5yZWdpc3Rlcl9kcml2ZXIpOwotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLSNpZmRlZiBDT05GSUdfQVJDSF9MVUJCT0NLCi0KLS8qIEx1YmJvY2sgaGFzIHNlcGFyYXRlIGNvbm5lY3QgYW5kIGRpc2Nvbm5lY3QgaXJxcy4gIE1vcmUgdHlwaWNhbCBkZXNpZ25zCi0gKiB1c2Ugb25lIEdQSU8gYXMgdGhlIFZCVVMgSVJRLCBhbmQgYW5vdGhlciB0byBjb250cm9sIHRoZSBEKyBwdWxsdXAuCi0gKi8KLQotc3RhdGljIGlycXJldHVybl90Ci1sdWJib2NrX3ZidXNfaXJxKGludCBpcnEsIHZvaWQgKl9kZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKmRldiA9IF9kZXY7Ci0JaW50CQkJdmJ1czsKLQotCWRldi0+c3RhdHMuaXJxcysrOwotCXN3aXRjaCAoaXJxKSB7Ci0JY2FzZSBMVUJCT0NLX1VTQl9JUlE6Ci0JCXZidXMgPSAxOwotCQlkaXNhYmxlX2lycShMVUJCT0NLX1VTQl9JUlEpOwotCQllbmFibGVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRKTsKLQkJYnJlYWs7Ci0JY2FzZSBMVUJCT0NLX1VTQl9ESVNDX0lSUToKLQkJdmJ1cyA9IDA7Ci0JCWRpc2FibGVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRKTsKLQkJZW5hYmxlX2lycShMVUJCT0NLX1VTQl9JUlEpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyZXR1cm4gSVJRX05PTkU7Ci0JfQotCi0JcHhhMnh4X3VkY192YnVzX3Nlc3Npb24oJmRldi0+Z2FkZ2V0LCB2YnVzKTsKLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLSNlbmRpZgotCi1zdGF0aWMgaXJxcmV0dXJuX3QgdWRjX3ZidXNfaXJxKGludCBpcnEsIHZvaWQgKl9kZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKmRldiA9IF9kZXY7Ci0JaW50CQkJdmJ1cyA9IGdwaW9fZ2V0X3ZhbHVlKGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKLQotCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1c19pbnZlcnRlZCkKLQkJdmJ1cyA9ICF2YnVzOwotCi0JcHhhMnh4X3VkY192YnVzX3Nlc3Npb24oJmRldi0+Z2FkZ2V0LCB2YnVzKTsKLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2VwX3N0YXRlIChzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCXVuc2lnbmVkIGk7Ci0KLQkvKiBoYXJkd2FyZSBTRVRfe0NPTkZJR1VSQVRJT04sSU5URVJGQUNFfSBhdXRvbWFnaWMgcmVzZXRzIGVuZHBvaW50Ci0JICogZmlmb3MsIGFuZCBwZW5kaW5nIHRyYW5zYWN0aW9ucyBtdXN0bid0IGJlIGNvbnRpbnVlZCBpbiBhbnkgY2FzZS4KLQkgKi8KLQlmb3IgKGkgPSAxOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspCi0JCW51a2UoJmRldi0+ZXBbaV0sIC1FQ09OTkFCT1JURUQpOwotfQotCi1zdGF0aWMgdm9pZCB1ZGNfd2F0Y2hkb2codW5zaWduZWQgbG9uZyBfZGV2KQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSAodm9pZCAqKV9kZXY7Ci0KLQlsb2NhbF9pcnFfZGlzYWJsZSgpOwotCWlmIChkZXYtPmVwMHN0YXRlID09IEVQMF9TVEFMTAotCQkJJiYgKFVEQ0NTMCAmIFVEQ0NTMF9GU1QpID09IDAKLQkJCSYmIChVRENDUzAgJiBVRENDUzBfU1NUKSA9PSAwKSB7Ci0JCVVEQ0NTMCA9IFVEQ0NTMF9GU1R8VURDQ1MwX0ZURjsKLQkJREJHKERCR19WRVJCT1NFLCAiZXAwIHJlLXN0YWxsXG4iKTsKLQkJc3RhcnRfd2F0Y2hkb2coZGV2KTsKLQl9Ci0JbG9jYWxfaXJxX2VuYWJsZSgpOwotfQotCi1zdGF0aWMgdm9pZCBoYW5kbGVfZXAwIChzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCXUzMgkJCXVkY2NzMCA9IFVEQ0NTMDsKLQlzdHJ1Y3QgcHhhMnh4X2VwCSplcCA9ICZkZXYtPmVwIFswXTsKLQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QJKnJlcTsKLQl1bmlvbiB7Ci0JCXN0cnVjdCB1c2JfY3RybHJlcXVlc3QJcjsKLQkJdTgJCQlyYXcgWzhdOwotCQl1MzIJCQl3b3JkIFsyXTsKLQl9IHU7Ci0KLQlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkKLQkJcmVxID0gTlVMTDsKLQllbHNlCi0JCXJlcSA9IGxpc3RfZW50cnkoZXAtPnF1ZXVlLm5leHQsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCwgcXVldWUpOwotCi0JLyogY2xlYXIgc3RhbGwgc3RhdHVzICovCi0JaWYgKHVkY2NzMCAmIFVEQ0NTMF9TU1QpIHsKLQkJbnVrZShlcCwgLUVQSVBFKTsKLQkJVURDQ1MwID0gVURDQ1MwX1NTVDsKLQkJZGVsX3RpbWVyKCZkZXYtPnRpbWVyKTsKLQkJZXAwX2lkbGUoZGV2KTsKLQl9Ci0KLQkvKiBwcmV2aW91cyByZXF1ZXN0IHVuZmluaXNoZWQ/ICBub24tZXJyb3IgaWZmIGJhY2stdG8tYmFjayAuLi4gKi8KLQlpZiAoKHVkY2NzMCAmIFVEQ0NTMF9TQSkgIT0gMCAmJiBkZXYtPmVwMHN0YXRlICE9IEVQMF9JRExFKSB7Ci0JCW51a2UoZXAsIDApOwotCQlkZWxfdGltZXIoJmRldi0+dGltZXIpOwotCQllcDBfaWRsZShkZXYpOwotCX0KLQotCXN3aXRjaCAoZGV2LT5lcDBzdGF0ZSkgewotCWNhc2UgRVAwX0lETEU6Ci0JCS8qIGxhdGUtYnJlYWtpbmcgc3RhdHVzPyAqLwotCQl1ZGNjczAgPSBVRENDUzA7Ci0KLQkJLyogc3RhcnQgY29udHJvbCByZXF1ZXN0PyAqLwotCQlpZiAobGlrZWx5KCh1ZGNjczAgJiAoVURDQ1MwX09QUnxVRENDUzBfU0F8VURDQ1MwX1JORSkpCi0JCQkJPT0gKFVEQ0NTMF9PUFJ8VURDQ1MwX1NBfFVEQ0NTMF9STkUpKSkgewotCQkJaW50IGk7Ci0KLQkJCW51a2UgKGVwLCAtRVBST1RPKTsKLQotCQkJLyogcmVhZCBTRVRVUCBwYWNrZXQgKi8KLQkJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJCQlpZiAodW5saWtlbHkoIShVRENDUzAgJiBVRENDUzBfUk5FKSkpIHsKLWJhZF9zZXR1cDoKLQkJCQkJRE1TRygiU0VUVVAgJWQhXG4iLCBpKTsKLQkJCQkJZ290byBzdGFsbDsKLQkJCQl9Ci0JCQkJdS5yYXcgW2ldID0gKHU4KSBVRERSMDsKLQkJCX0KLQkJCWlmICh1bmxpa2VseSgoVURDQ1MwICYgVURDQ1MwX1JORSkgIT0gMCkpCi0JCQkJZ290byBiYWRfc2V0dXA7Ci0KLWdvdF9zZXR1cDoKLQkJCURCRyhEQkdfVkVSQk9TRSwgIlNFVFVQICUwMnguJTAyeCB2JTA0eCBpJTA0eCBsJTA0eFxuIiwKLQkJCQl1LnIuYlJlcXVlc3RUeXBlLCB1LnIuYlJlcXVlc3QsCi0JCQkJbGUxNl90b19jcHUodS5yLndWYWx1ZSksCi0JCQkJbGUxNl90b19jcHUodS5yLndJbmRleCksCi0JCQkJbGUxNl90b19jcHUodS5yLndMZW5ndGgpKTsKLQotCQkJLyogY29wZSB3aXRoIGF1dG9tYWdpYyBmb3Igc29tZSBzdGFuZGFyZCByZXF1ZXN0cy4gKi8KLQkJCWRldi0+cmVxX3N0ZCA9ICh1LnIuYlJlcXVlc3RUeXBlICYgVVNCX1RZUEVfTUFTSykKLQkJCQkJCT09IFVTQl9UWVBFX1NUQU5EQVJEOwotCQkJZGV2LT5yZXFfY29uZmlnID0gMDsKLQkJCWRldi0+cmVxX3BlbmRpbmcgPSAxOwotCQkJc3dpdGNoICh1LnIuYlJlcXVlc3QpIHsKLQkJCS8qIGhhcmR3YXJlIHJlc3RyaWN0cyBnYWRnZXQgZHJpdmVycyBoZXJlISAqLwotCQkJY2FzZSBVU0JfUkVRX1NFVF9DT05GSUdVUkFUSU9OOgotCQkJCWlmICh1LnIuYlJlcXVlc3RUeXBlID09IFVTQl9SRUNJUF9ERVZJQ0UpIHsKLQkJCQkJLyogcmVmbGVjdCBoYXJkd2FyZSdzIGF1dG9tYWdpYwotCQkJCQkgKiB1cCB0byB0aGUgZ2FkZ2V0IGRyaXZlci4KLQkJCQkJICovCi1jb25maWdfY2hhbmdlOgotCQkJCQlkZXYtPnJlcV9jb25maWcgPSAxOwotCQkJCQljbGVhcl9lcF9zdGF0ZShkZXYpOwotCQkJCQkvKiBpZiAhaGFzX2NmciwgdGhlcmUncyBubyBzeW5jaAotCQkJCQkgKiBlbHNlIHVzZSBBUkVOIChsYXRlcikgbm90IFNBfE9QUgotCQkJCQkgKiBVU0lSMF9JUjAgYWN0cyBlZGdlIHNlbnNpdGl2ZQotCQkJCQkgKi8KLQkJCQl9Ci0JCQkJYnJlYWs7Ci0JCQkvKiAuLi4gYW5kIGhlcmUsIGV2ZW4gbW9yZSAuLi4gKi8KLQkJCWNhc2UgVVNCX1JFUV9TRVRfSU5URVJGQUNFOgotCQkJCWlmICh1LnIuYlJlcXVlc3RUeXBlID09IFVTQl9SRUNJUF9JTlRFUkZBQ0UpIHsKLQkJCQkJLyogdWRjIGhhcmR3YXJlIGlzIGJyb2tlbiBieSBkZXNpZ246Ci0JCQkJCSAqICAtIGFsdHNldHRpbmcgbWF5IG9ubHkgYmUgemVybzsKLQkJCQkJICogIC0gaHcgcmVzZXRzIGFsbCBpbnRlcmZhY2VzJyBlcHM7Ci0JCQkJCSAqICAtIGVwIHJlc2V0IGRvZXNuJ3QgaW5jbHVkZSBoYWx0KD8pLgotCQkJCQkgKi8KLQkJCQkJRE1TRygiYnJva2VuIHNldF9pbnRlcmZhY2UgKCVkLyVkKVxuIiwKLQkJCQkJCWxlMTZfdG9fY3B1KHUuci53SW5kZXgpLAotCQkJCQkJbGUxNl90b19jcHUodS5yLndWYWx1ZSkpOwotCQkJCQlnb3RvIGNvbmZpZ19jaGFuZ2U7Ci0JCQkJfQotCQkJCWJyZWFrOwotCQkJLyogaGFyZHdhcmUgd2FzIHN1cHBvc2VkIHRvIGhpZGUgdGhpcyAqLwotCQkJY2FzZSBVU0JfUkVRX1NFVF9BRERSRVNTOgotCQkJCWlmICh1LnIuYlJlcXVlc3RUeXBlID09IFVTQl9SRUNJUF9ERVZJQ0UpIHsKLQkJCQkJZXAwc3RhcnQoZGV2LCAwLCAiYWRkcmVzcyIpOwotCQkJCQlyZXR1cm47Ci0JCQkJfQotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlpZiAodS5yLmJSZXF1ZXN0VHlwZSAmIFVTQl9ESVJfSU4pCi0JCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9JTl9EQVRBX1BIQVNFOwotCQkJZWxzZQotCQkJCWRldi0+ZXAwc3RhdGUgPSBFUDBfT1VUX0RBVEFfUEhBU0U7Ci0KLQkJCWkgPSBkZXYtPmRyaXZlci0+c2V0dXAoJmRldi0+Z2FkZ2V0LCAmdS5yKTsKLQkJCWlmIChpIDwgMCkgewotCQkJCS8qIGhhcmR3YXJlIGF1dG9tYWdpYyBwcmV2ZW50aW5nIFNUQUxMLi4uICovCi0JCQkJaWYgKGRldi0+cmVxX2NvbmZpZykgewotCQkJCQkvKiBoYXJkd2FyZSBzb21ldGltZXMgbmVnbGVjdHMgdG8gdGVsbAotCQkJCQkgKiB0ZWxsIHVzIGFib3V0IGNvbmZpZyBjaGFuZ2UgZXZlbnRzLAotCQkJCQkgKiBzbyBsYXRlciBvbmVzIG1heSBmYWlsLi4uCi0JCQkJCSAqLwotCQkJCQlXQVJOKCJjb25maWcgY2hhbmdlICUwMnggZmFpbCAlZD9cbiIsCi0JCQkJCQl1LnIuYlJlcXVlc3QsIGkpOwotCQkJCQlyZXR1cm47Ci0JCQkJCS8qIFRPRE8gZXhwZXJpbWVudDogIGlmIGhhc19jZnIsCi0JCQkJCSAqIGhhcmR3YXJlIGRpZG4ndCBBQ0s7IG1heWJlIHdlCi0JCQkJCSAqIGNvdWxkIGFjdHVhbGx5IFNUQUxMIQotCQkJCQkgKi8KLQkJCQl9Ci0JCQkJREJHKERCR19WRVJCT1NFLCAicHJvdG9jb2wgU1RBTEwsICIKLQkJCQkJIiUwMnggZXJyICVkXG4iLCBVRENDUzAsIGkpOwotc3RhbGw6Ci0JCQkJLyogdGhlIHdhdGNoZG9nIHRpbWVyIGhlbHBzIGRlYWwgd2l0aCBjYXNlcwotCQkJCSAqIHdoZXJlIHVkYyBzZWVtcyB0byBjbGVhciBGU1Qgd3JvbmdseSwgYW5kCi0JCQkJICogdGhlbiBOQUtzIGluc3RlYWQgb2YgU1RBTExpbmcuCi0JCQkJICovCi0JCQkJZXAwc3RhcnQoZGV2LCBVRENDUzBfRlNUfFVEQ0NTMF9GVEYsICJzdGFsbCIpOwotCQkJCXN0YXJ0X3dhdGNoZG9nKGRldik7Ci0JCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9TVEFMTDsKLQotCQkJLyogZGVmZXJyZWQgaS9vID09IG5vIHJlc3BvbnNlIHlldCAqLwotCQkJfSBlbHNlIGlmIChkZXYtPnJlcV9wZW5kaW5nKSB7Ci0JCQkJaWYgKGxpa2VseShkZXYtPmVwMHN0YXRlID09IEVQMF9JTl9EQVRBX1BIQVNFCi0JCQkJCQl8fCBkZXYtPnJlcV9zdGQgfHwgdS5yLndMZW5ndGgpKQotCQkJCQllcDBzdGFydChkZXYsIDAsICJkZWZlciIpOwotCQkJCWVsc2UKLQkJCQkJZXAwc3RhcnQoZGV2LCBVRENDUzBfSVBSLCAiZGVmZXIvSVBSIik7Ci0JCQl9Ci0KLQkJCS8qIGV4cGVjdCBhdCBsZWFzdCBvbmUgZGF0YSBvciBzdGF0dXMgc3RhZ2UgaXJxICovCi0JCQlyZXR1cm47Ci0KLQkJfSBlbHNlIGlmIChsaWtlbHkoKHVkY2NzMCAmIChVRENDUzBfT1BSfFVEQ0NTMF9TQSkpCi0JCQkJPT0gKFVEQ0NTMF9PUFJ8VURDQ1MwX1NBKSkpIHsKLQkJCXVuc2lnbmVkIGk7Ci0KLQkJCS8qIHB4YTIxMC8yNTAgZXJyYXR1bSAxMzEgZm9yIEIwL0IxIHNheXMgUk5FIGxpZXMuCi0JCQkgKiBzdGlsbCBvYnNlcnZlZCBvbiBhIHB4YTI1NSBhMC4KLQkJCSAqLwotCQkJREJHKERCR19WRVJCT1NFLCAiZTEzMVxuIik7Ci0JCQludWtlKGVwLCAtRVBST1RPKTsKLQotCQkJLyogcmVhZCBTRVRVUCBkYXRhLCBidXQgZG9uJ3QgdHJ1c3QgaXQgdG9vIG11Y2ggKi8KLQkJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCi0JCQkJdS5yYXcgW2ldID0gKHU4KSBVRERSMDsKLQkJCWlmICgodS5yLmJSZXF1ZXN0VHlwZSAmIFVTQl9SRUNJUF9NQVNLKQotCQkJCQk+IFVTQl9SRUNJUF9PVEhFUikKLQkJCQlnb3RvIHN0YWxsOwotCQkJaWYgKHUud29yZCBbMF0gPT0gMCAmJiB1LndvcmQgWzFdID09IDApCi0JCQkJZ290byBzdGFsbDsKLQkJCWdvdG8gZ290X3NldHVwOwotCQl9IGVsc2UgewotCQkJLyogc29tZSByYW5kb20gZWFybHkgSVJROgotCQkJICogLSB3ZSBhY2tlZCBGU1QKLQkJCSAqIC0gSVBSIGNsZWFyZWQKLQkJCSAqIC0gT1BSIGdvdCBzZXQsIHdpdGhvdXQgU0EgKGxpa2VseSBzdGF0dXMgc3RhZ2UpCi0JCQkgKi8KLQkJCVVEQ0NTMCA9IHVkY2NzMCAmIChVRENDUzBfU0F8VURDQ1MwX09QUik7Ci0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBFUDBfSU5fREFUQV9QSEFTRToJCQkvKiBHRVRfREVTQ1JJUFRPUiBldGMgKi8KLQkJaWYgKHVkY2NzMCAmIFVEQ0NTMF9PUFIpIHsKLQkJCVVEQ0NTMCA9IFVEQ0NTMF9PUFJ8VURDQ1MwX0ZURjsKLQkJCURCRyhEQkdfVkVSQk9TRSwgImVwMGluIHByZW1hdHVyZSBzdGF0dXNcbiIpOwotCQkJaWYgKHJlcSkKLQkJCQlkb25lKGVwLCByZXEsIDApOwotCQkJZXAwX2lkbGUoZGV2KTsKLQkJfSBlbHNlIC8qIGlycSB3YXMgSVBSIGNsZWFyaW5nICovIHsKLQkJCWlmIChyZXEpIHsKLQkJCQkvKiB0aGlzIElOIHBhY2tldCBtaWdodCBmaW5pc2ggdGhlIHJlcXVlc3QgKi8KLQkJCQkodm9pZCkgd3JpdGVfZXAwX2ZpZm8oZXAsIHJlcSk7Ci0JCQl9IC8qIGVsc2UgSU4gdG9rZW4gYmVmb3JlIHJlc3BvbnNlIHdhcyB3cml0dGVuICovCi0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBFUDBfT1VUX0RBVEFfUEhBU0U6CQkvKiBTRVRfREVTQ1JJUFRPUiBldGMgKi8KLQkJaWYgKHVkY2NzMCAmIFVEQ0NTMF9PUFIpIHsKLQkJCWlmIChyZXEpIHsKLQkJCQkvKiB0aGlzIE9VVCBwYWNrZXQgbWlnaHQgZmluaXNoIHRoZSByZXF1ZXN0ICovCi0JCQkJaWYgKHJlYWRfZXAwX2ZpZm8oZXAsIHJlcSkpCi0JCQkJCWRvbmUoZXAsIHJlcSwgMCk7Ci0JCQkJLyogZWxzZSBtb3JlIE9VVCBwYWNrZXRzIGV4cGVjdGVkICovCi0JCQl9IC8qIGVsc2UgT1VUIHRva2VuIGJlZm9yZSByZWFkIHdhcyBpc3N1ZWQgKi8KLQkJfSBlbHNlIC8qIGlycSB3YXMgSVBSIGNsZWFyaW5nICovIHsKLQkJCURCRyhEQkdfVkVSQk9TRSwgImVwMG91dCBwcmVtYXR1cmUgc3RhdHVzXG4iKTsKLQkJCWlmIChyZXEpCi0JCQkJZG9uZShlcCwgcmVxLCAwKTsKLQkJCWVwMF9pZGxlKGRldik7Ci0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBFUDBfRU5EX1hGRVI6Ci0JCWlmIChyZXEpCi0JCQlkb25lKGVwLCByZXEsIDApOwotCQkvKiBhY2sgY29udHJvbC1JTiBzdGF0dXMgKG1heWJlIGluLXpscCB3YXMgc2tpcHBlZCkKLQkJICogYWxzbyBhcHBlYXJzIGFmdGVyIHNvbWUgY29uZmlnIGNoYW5nZSBldmVudHMuCi0JCSAqLwotCQlpZiAodWRjY3MwICYgVURDQ1MwX09QUikKLQkJCVVEQ0NTMCA9IFVEQ0NTMF9PUFI7Ci0JCWVwMF9pZGxlKGRldik7Ci0JCWJyZWFrOwotCWNhc2UgRVAwX1NUQUxMOgotCQlVRENDUzAgPSBVRENDUzBfRlNUOwotCQlicmVhazsKLQl9Ci0JVVNJUjAgPSBVU0lSMF9JUjA7Ci19Ci0KLXN0YXRpYyB2b2lkIGhhbmRsZV9lcChzdHJ1Y3QgcHhhMnh4X2VwICplcCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QJKnJlcTsKLQlpbnQJCQlpc19pbiA9IGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTjsKLQlpbnQJCQljb21wbGV0ZWQ7Ci0JdTMyCQkJdWRjY3MsIHRtcDsKLQotCWRvIHsKLQkJY29tcGxldGVkID0gMDsKLQkJaWYgKGxpa2VseSAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpKQotCQkJcmVxID0gbGlzdF9lbnRyeShlcC0+cXVldWUubmV4dCwKLQkJCQkJc3RydWN0IHB4YTJ4eF9yZXF1ZXN0LCBxdWV1ZSk7Ci0JCWVsc2UKLQkJCXJlcSA9IE5VTEw7Ci0KLQkJLy8gVE9ETyBjaGVjayBGU1QgaGFuZGxpbmcKLQotCQl1ZGNjcyA9ICplcC0+cmVnX3VkY2NzOwotCQlpZiAodW5saWtlbHkoaXNfaW4pKSB7CS8qIGlycSBmcm9tIFRQQywgU1NULCBvciAoSVNPKSBUVVIgKi8KLQkJCXRtcCA9IFVEQ0NTX0JJX1RVUjsKLQkJCWlmIChsaWtlbHkoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLKSkKLQkJCQl0bXAgfD0gVURDQ1NfQklfU1NUOwotCQkJdG1wICY9IHVkY2NzOwotCQkJaWYgKGxpa2VseSAodG1wKSkKLQkJCQkqZXAtPnJlZ191ZGNjcyA9IHRtcDsKLQkJCWlmIChyZXEgJiYgbGlrZWx5ICgodWRjY3MgJiBVRENDU19CSV9URlMpICE9IDApKQotCQkJCWNvbXBsZXRlZCA9IHdyaXRlX2ZpZm8oZXAsIHJlcSk7Ci0KLQkJfSBlbHNlIHsJLyogaXJxIGZyb20gUlBDIChvciBmb3IgSVNPLCBST0YpICovCi0JCQlpZiAobGlrZWx5KGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSykpCi0JCQkJdG1wID0gVURDQ1NfQk9fU1NUIHwgVURDQ1NfQk9fRE1FOwotCQkJZWxzZQotCQkJCXRtcCA9IFVEQ0NTX0lPX1JPRiB8IFVEQ0NTX0lPX0RNRTsKLQkJCXRtcCAmPSB1ZGNjczsKLQkJCWlmIChsaWtlbHkodG1wKSkKLQkJCQkqZXAtPnJlZ191ZGNjcyA9IHRtcDsKLQotCQkJLyogZmlmb3MgY2FuIGhvbGQgcGFja2V0cywgcmVhZHkgZm9yIHJlYWRpbmcuLi4gKi8KLQkJCWlmIChsaWtlbHkocmVxKSkgewotCQkJCWNvbXBsZXRlZCA9IHJlYWRfZmlmbyhlcCwgcmVxKTsKLQkJCX0gZWxzZQotCQkJCXBpb19pcnFfZGlzYWJsZSAoZXAtPmJFbmRwb2ludEFkZHJlc3MpOwotCQl9Ci0JCWVwLT5waW9faXJxcysrOwotCX0gd2hpbGUgKGNvbXBsZXRlZCk7Ci19Ci0KLS8qCi0gKglweGEyeHhfdWRjX2lycSAtIGludGVycnVwdCBoYW5kbGVyCi0gKgotICogYXZvaWQgZGVsYXlzIGluIGVwMCBwcm9jZXNzaW5nLiB0aGUgY29udHJvbCBoYW5kc2hha2luZyBpc24ndCBhbHdheXMKLSAqIHVuZGVyIHNvZnR3YXJlIGNvbnRyb2wgKHB4YTI1MGMwIGFuZCB0aGUgcHhhMjU1IGFyZSBiZXR0ZXIpLCBhbmQgZGVsYXlzCi0gKiBjb3VsZCBjYXVzZSB1c2IgcHJvdG9jb2wgZXJyb3JzLgotICovCi1zdGF0aWMgaXJxcmV0dXJuX3QKLXB4YTJ4eF91ZGNfaXJxKGludCBpcnEsIHZvaWQgKl9kZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKmRldiA9IF9kZXY7Ci0JaW50CQkJaGFuZGxlZDsKLQotCWRldi0+c3RhdHMuaXJxcysrOwotCWRvIHsKLQkJdTMyCQl1ZGNjciA9IFVEQ0NSOwotCi0JCWhhbmRsZWQgPSAwOwotCi0JCS8qIFNVU3BlbmQgSW50ZXJydXB0IFJlcXVlc3QgKi8KLQkJaWYgKHVubGlrZWx5KHVkY2NyICYgVURDQ1JfU1VTSVIpKSB7Ci0JCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9TVVNJUik7Ci0JCQloYW5kbGVkID0gMTsKLQkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiBzdXNwZW5kJXNcbiIsIGlzX3ZidXNfcHJlc2VudCgpCi0JCQkJPyAiIiA6ICIrZGlzY29ubmVjdCIpOwotCi0JCQlpZiAoIWlzX3ZidXNfcHJlc2VudCgpKQotCQkJCXN0b3BfYWN0aXZpdHkoZGV2LCBkZXYtPmRyaXZlcik7Ci0JCQllbHNlIGlmIChkZXYtPmdhZGdldC5zcGVlZCAhPSBVU0JfU1BFRURfVU5LTk9XTgotCQkJCQkmJiBkZXYtPmRyaXZlcgotCQkJCQkmJiBkZXYtPmRyaXZlci0+c3VzcGVuZCkKLQkJCQlkZXYtPmRyaXZlci0+c3VzcGVuZCgmZGV2LT5nYWRnZXQpOwotCQkJZXAwX2lkbGUgKGRldik7Ci0JCX0KLQotCQkvKiBSRVN1bWUgSW50ZXJydXB0IFJlcXVlc3QgKi8KLQkJaWYgKHVubGlrZWx5KHVkY2NyICYgVURDQ1JfUkVTSVIpKSB7Ci0JCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9SRVNJUik7Ci0JCQloYW5kbGVkID0gMTsKLQkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiByZXN1bWVcbiIpOwotCi0JCQlpZiAoZGV2LT5nYWRnZXQuc3BlZWQgIT0gVVNCX1NQRUVEX1VOS05PV04KLQkJCQkJJiYgZGV2LT5kcml2ZXIKLQkJCQkJJiYgZGV2LT5kcml2ZXItPnJlc3VtZQotCQkJCQkmJiBpc192YnVzX3ByZXNlbnQoKSkKLQkJCQlkZXYtPmRyaXZlci0+cmVzdW1lKCZkZXYtPmdhZGdldCk7Ci0JCX0KLQotCQkvKiBSZVNlVCBJbnRlcnJ1cHQgUmVxdWVzdCAtIFVTQiByZXNldCAqLwotCQlpZiAodW5saWtlbHkodWRjY3IgJiBVRENDUl9SU1RJUikpIHsKLQkJCXVkY19hY2tfaW50X1VEQ0NSKFVEQ0NSX1JTVElSKTsKLQkJCWhhbmRsZWQgPSAxOwotCi0JCQlpZiAoKFVEQ0NSICYgVURDQ1JfVURBKSA9PSAwKSB7Ci0JCQkJREJHKERCR19WRVJCT1NFLCAiVVNCIHJlc2V0IHN0YXJ0XG4iKTsKLQotCQkJCS8qIHJlc2V0IGRyaXZlciBhbmQgZW5kcG9pbnRzLAotCQkJCSAqIGluIGNhc2UgdGhhdCdzIG5vdCB5ZXQgZG9uZQotCQkJCSAqLwotCQkJCXN0b3BfYWN0aXZpdHkgKGRldiwgZGV2LT5kcml2ZXIpOwotCi0JCQl9IGVsc2UgewotCQkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiByZXNldCBlbmRcbiIpOwotCQkJCWRldi0+Z2FkZ2V0LnNwZWVkID0gVVNCX1NQRUVEX0ZVTEw7Ci0JCQkJbWVtc2V0KCZkZXYtPnN0YXRzLCAwLCBzaXplb2YgZGV2LT5zdGF0cyk7Ci0JCQkJLyogZHJpdmVyIGFuZCBlbmRwb2ludHMgYXJlIHN0aWxsIHJlc2V0ICovCi0JCQl9Ci0KLQkJfSBlbHNlIHsKLQkJCXUzMgl1c2lyMCA9IFVTSVIwICYgflVJQ1IwOwotCQkJdTMyCXVzaXIxID0gVVNJUjEgJiB+VUlDUjE7Ci0JCQlpbnQJaTsKLQotCQkJaWYgKHVubGlrZWx5ICghdXNpcjAgJiYgIXVzaXIxKSkKLQkJCQljb250aW51ZTsKLQotCQkJREJHKERCR19WRVJZX05PSVNZLCAiaXJxICUwMnguJTAyeFxuIiwgdXNpcjEsIHVzaXIwKTsKLQotCQkJLyogY29udHJvbCB0cmFmZmljICovCi0JCQlpZiAodXNpcjAgJiBVU0lSMF9JUjApIHsKLQkJCQlkZXYtPmVwWzBdLnBpb19pcnFzKys7Ci0JCQkJaGFuZGxlX2VwMChkZXYpOwotCQkJCWhhbmRsZWQgPSAxOwotCQkJfQotCi0JCQkvKiBlbmRwb2ludCBkYXRhIHRyYW5zZmVycyAqLwotCQkJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotCQkJCXUzMgl0bXAgPSAxIDw8IGk7Ci0KLQkJCQlpZiAoaSAmJiAodXNpcjAgJiB0bXApKSB7Ci0JCQkJCWhhbmRsZV9lcCgmZGV2LT5lcFtpXSk7Ci0JCQkJCVVTSVIwIHw9IHRtcDsKLQkJCQkJaGFuZGxlZCA9IDE7Ci0JCQkJfQotCQkJCWlmICh1c2lyMSAmIHRtcCkgewotCQkJCQloYW5kbGVfZXAoJmRldi0+ZXBbaSs4XSk7Ci0JCQkJCVVTSVIxIHw9IHRtcDsKLQkJCQkJaGFuZGxlZCA9IDE7Ci0JCQkJfQotCQkJfQotCQl9Ci0KLQkJLyogd2UgY291bGQgYWxzbyBhc2sgZm9yIDEgbXNlYyBTT0YgKFNJUikgaW50ZXJydXB0cyAqLwotCi0JfSB3aGlsZSAoaGFuZGxlZCk7Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdGF0aWMgdm9pZCBub3BfcmVsZWFzZSAoc3RydWN0IGRldmljZSAqZGV2KQotewotCURNU0coIiVzICVzXG4iLCBfX2Z1bmNfXywgZGV2LT5idXNfaWQpOwotfQotCi0vKiB0aGlzIHVzZXMgbG9hZC10aW1lIGFsbG9jYXRpb24gYW5kIGluaXRpYWxpemF0aW9uIChpbnN0ZWFkIG9mCi0gKiBkb2luZyBpdCBhdCBydW4tdGltZSkgdG8gc2F2ZSBjb2RlLCBlbGltaW5hdGUgZmF1bHQgcGF0aHMsIGFuZAotICogYmUgbW9yZSBvYnZpb3VzbHkgY29ycmVjdC4KLSAqLwotc3RhdGljIHN0cnVjdCBweGEyeHhfdWRjIG1lbW9yeSA9IHsKLQkuZ2FkZ2V0ID0gewotCQkub3BzCQk9ICZweGEyeHhfdWRjX29wcywKLQkJLmVwMAkJPSAmbWVtb3J5LmVwWzBdLmVwLAotCQkubmFtZQkJPSBkcml2ZXJfbmFtZSwKLQkJLmRldiA9IHsKLQkJCS5idXNfaWQJCT0gImdhZGdldCIsCi0JCQkucmVsZWFzZQk9IG5vcF9yZWxlYXNlLAotCQl9LAotCX0sCi0KLQkvKiBjb250cm9sIGVuZHBvaW50ICovCi0JLmVwWzBdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSBlcDBuYW1lLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBFUDBfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1MwLAotCQkucmVnX3VkZHIJPSAmVUREUjAsCi0JfSwKLQotCS8qIGZpcnN0IGdyb3VwIG9mIGVuZHBvaW50cyAqLwotCS5lcFsxXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwMWluLWJ1bGsiLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKLQkJfSwKLQkJLmRldgkJPSAmbWVtb3J5LAotCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDEsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMSwKLQkJLnJlZ191ZGRyCT0gJlVERFIxLAotCX0sCi0JLmVwWzJdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAyb3V0LWJ1bGsiLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKLQkJfSwKLQkJLmRldgkJPSAmbWVtb3J5LAotCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gMiwKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1MyLAotCQkucmVnX3ViY3IJPSAmVUJDUjIsCi0JCS5yZWdfdWRkcgk9ICZVRERSMiwKLQl9LAotI2lmbmRlZiBDT05GSUdfVVNCX1BYQTJYWF9TTUFMTAotCS5lcFszXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwM2luLWlzbyIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDMsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMywKLQkJLnJlZ191ZGRyCT0gJlVERFIzLAotCX0sCi0JLmVwWzRdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXA0b3V0LWlzbyIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gNCwKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1M0LAotCQkucmVnX3ViY3IJPSAmVUJDUjQsCi0JCS5yZWdfdWRkcgk9ICZVRERSNCwKLQl9LAotCS5lcFs1XSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwNWluLWludCIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElOVF9GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElOVF9GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDUsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JTlQsCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1M1LAotCQkucmVnX3VkZHIJPSAmVUREUjUsCi0JfSwKLQotCS8qIHNlY29uZCBncm91cCBvZiBlbmRwb2ludHMgKi8KLQkuZXBbNl0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDZpbi1idWxrIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCA2LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzYsCi0JCS5yZWdfdWRkcgk9ICZVRERSNiwKLQl9LAotCS5lcFs3XSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwN291dC1idWxrIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IDcsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTNywKLQkJLnJlZ191YmNyCT0gJlVCQ1I3LAotCQkucmVnX3VkZHIJPSAmVUREUjcsCi0JfSwKLQkuZXBbOF0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDhpbi1pc28iLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCA4LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzgsCi0JCS5yZWdfdWRkcgk9ICZVRERSOCwKLQl9LAotCS5lcFs5XSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwOW91dC1pc28iLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IDksCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTOSwKLQkJLnJlZ191YmNyCT0gJlVCQ1I5LAotCQkucmVnX3VkZHIJPSAmVUREUjksCi0JfSwKLQkuZXBbMTBdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAxMGluLWludCIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElOVF9GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElOVF9GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDEwLAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSU5ULAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTAsCi0JCS5yZWdfdWRkcgk9ICZVRERSMTAsCi0JfSwKLQotCS8qIHRoaXJkIGdyb3VwIG9mIGVuZHBvaW50cyAqLwotCS5lcFsxMV0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDExaW4tYnVsayIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKLQkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgMTEsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTEsCi0JCS5yZWdfdWRkcgk9ICZVRERSMTEsCi0JfSwKLQkuZXBbMTJdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAxMm91dC1idWxrIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IDEyLAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzEyLAotCQkucmVnX3ViY3IJPSAmVUJDUjEyLAotCQkucmVnX3VkZHIJPSAmVUREUjEyLAotCX0sCi0JLmVwWzEzXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwMTNpbi1pc28iLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxMywKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1MxMywKLQkJLnJlZ191ZGRyCT0gJlVERFIxMywKLQl9LAotCS5lcFsxNF0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDE0b3V0LWlzbyIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gMTQsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTQsCi0JCS5yZWdfdWJjcgk9ICZVQkNSMTQsCi0JCS5yZWdfdWRkcgk9ICZVRERSMTQsCi0JfSwKLQkuZXBbMTVdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAxNWluLWludCIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElOVF9GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElOVF9GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDE1LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSU5ULAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTUsCi0JCS5yZWdfdWRkcgk9ICZVRERSMTUsCi0JfSwKLSNlbmRpZiAvKiAhQ09ORklHX1VTQl9QWEEyWFhfU01BTEwgKi8KLX07Ci0KLSNkZWZpbmUgQ1AxNVIwX1ZFTkRPUl9NQVNLCTB4ZmZmZmUwMDAKLQotI2lmCWRlZmluZWQoQ09ORklHX0FSQ0hfUFhBKQotI2RlZmluZSBDUDE1UjBfWFNDQUxFX1ZBTFVFCTB4NjkwNTIwMDAJLyogaW50ZWwvYXJtL3hzY2FsZSAqLwotCi0jZWxpZglkZWZpbmVkKENPTkZJR19BUkNIX0lYUDRYWCkKLSNkZWZpbmUgQ1AxNVIwX1hTQ0FMRV9WQUxVRQkweDY5MDU0MDAwCS8qIGludGVsL2FybS9peHA0eHggKi8KLQotI2VuZGlmCi0KLSNkZWZpbmUgQ1AxNVIwX1BST0RfTUFTSwkweDAwMDAwM2YwCi0jZGVmaW5lIFBYQTI1eAkJCTB4MDAwMDAxMDAJLyogYW5kIFBYQTI2eCAqLwotI2RlZmluZSBQWEEyMTAJCQkweDAwMDAwMTIwCi0KLSNkZWZpbmUgQ1AxNVIwX1JFVl9NQVNLCQkweDAwMDAwMDBmCi0KLSNkZWZpbmUgQ1AxNVIwX1BST0RSRVZfTUFTSwkoQ1AxNVIwX1BST0RfTUFTSyB8IENQMTVSMF9SRVZfTUFTSykKLQotI2RlZmluZSBQWEEyNTVfQTAJCTB4MDAwMDAxMDYJLyogb3IgUFhBMjYwX0IxICovCi0jZGVmaW5lIFBYQTI1MF9DMAkJMHgwMDAwMDEwNQkvKiBvciBQWEEyNnhfQjAgKi8KLSNkZWZpbmUgUFhBMjUwX0IyCQkweDAwMDAwMTA0Ci0jZGVmaW5lIFBYQTI1MF9CMQkJMHgwMDAwMDEwMwkvKiBvciBQWEEyNjBfQTAgKi8KLSNkZWZpbmUgUFhBMjUwX0IwCQkweDAwMDAwMTAyCi0jZGVmaW5lIFBYQTI1MF9BMQkJMHgwMDAwMDEwMQotI2RlZmluZSBQWEEyNTBfQTAJCTB4MDAwMDAxMDAKLQotI2RlZmluZSBQWEEyMTBfQzAJCTB4MDAwMDAxMjUKLSNkZWZpbmUgUFhBMjEwX0IyCQkweDAwMDAwMTI0Ci0jZGVmaW5lIFBYQTIxMF9CMQkJMHgwMDAwMDEyMwotI2RlZmluZSBQWEEyMTBfQjAJCTB4MDAwMDAxMjIKLSNkZWZpbmUgSVhQNDI1X0EwCQkweDAwMDAwMWMxCi0jZGVmaW5lIElYUDQyNV9CMAkJMHgwMDAwMDFmMQotI2RlZmluZSBJWFA0NjVfQUQJCTB4MDAwMDAyMDAKLQotLyoKLSAqCXByb2JlIC0gYmluZHMgdG8gdGhlIHBsYXRmb3JtIGRldmljZQotICovCi1zdGF0aWMgaW50IF9faW5pdCBweGEyeHhfdWRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMgKmRldiA9ICZtZW1vcnk7Ci0JaW50IHJldHZhbCwgdmJ1c19pcnEsIGlycTsKLQl1MzIgY2hpcHJldjsKLQotCS8qIGluc2lzdCBvbiBJbnRlbC9BUk0vWFNjYWxlICovCi0JYXNtKCJtcmMlPyBwMTUsIDAsICUwLCBjMCwgYzAiIDogIj1yIiAoY2hpcHJldikpOwotCWlmICgoY2hpcHJldiAmIENQMTVSMF9WRU5ET1JfTUFTSykgIT0gQ1AxNVIwX1hTQ0FMRV9WQUxVRSkgewotCQlwcl9lcnIoIiVzOiBub3QgWFNjYWxlIVxuIiwgZHJpdmVyX25hbWUpOwotCQlyZXR1cm4gLUVOT0RFVjsKLQl9Ci0KLQkvKiB0cmlnZ2VyIGNoaXByZXYtc3BlY2lmaWMgbG9naWMgKi8KLQlzd2l0Y2ggKGNoaXByZXYgJiBDUDE1UjBfUFJPRFJFVl9NQVNLKSB7Ci0jaWYJZGVmaW5lZChDT05GSUdfQVJDSF9QWEEpCi0JY2FzZSBQWEEyNTVfQTA6Ci0JCWRldi0+aGFzX2NmciA9IDE7Ci0JCWJyZWFrOwotCWNhc2UgUFhBMjUwX0EwOgotCWNhc2UgUFhBMjUwX0ExOgotCQkvKiBBMC9BMSAibm90IHJlbGVhc2VkIjsgZXAgMTMsIDE1IHVudXNhYmxlICovCi0JCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgUFhBMjUwX0IyOiBjYXNlIFBYQTIxMF9CMjoKLQljYXNlIFBYQTI1MF9CMTogY2FzZSBQWEEyMTBfQjE6Ci0JY2FzZSBQWEEyNTBfQjA6IGNhc2UgUFhBMjEwX0IwOgotCQkvKiBPVVQtRE1BIGlzIGJyb2tlbiAuLi4gKi8KLQkJLyogZmFsbCB0aHJvdWdoICovCi0JY2FzZSBQWEEyNTBfQzA6IGNhc2UgUFhBMjEwX0MwOgotCQlicmVhazsKLSNlbGlmCWRlZmluZWQoQ09ORklHX0FSQ0hfSVhQNFhYKQotCWNhc2UgSVhQNDI1X0EwOgotCWNhc2UgSVhQNDI1X0IwOgotCWNhc2UgSVhQNDY1X0FEOgotCQlkZXYtPmhhc19jZnIgPSAxOwotCQlicmVhazsKLSNlbmRpZgotCWRlZmF1bHQ6Ci0JCXByX2VycigiJXM6IHVucmVjb2duaXplZCBwcm9jZXNzb3I6ICUwOHhcbiIsCi0JCQlkcml2ZXJfbmFtZSwgY2hpcHJldik7Ci0JCS8qIGlvcDN4eCwgaXhwNHh4LCAuLi4gKi8KLQkJcmV0dXJuIC1FTk9ERVY7Ci0JfQotCi0JaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlkZXYtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgIlVEQ0NMSyIpOwotCWlmIChJU19FUlIoZGV2LT5jbGspKSB7Ci0JCXJldHZhbCA9IFBUUl9FUlIoZGV2LT5jbGspOwotCQlnb3RvIGVycl9jbGs7Ci0JfQotCi0JcHJfZGVidWcoIiVzOiBJUlEgJWQlcyVzXG4iLCBkcml2ZXJfbmFtZSwgaXJxLAotCQlkZXYtPmhhc19jZnIgPyAiIiA6ICIgKCFjZnIpIiwKLQkJU0laRV9TVFIgIihwaW8pIgotCQkpOwotCi0JLyogb3RoZXIgbm9uLXN0YXRpYyBwYXJ0cyBvZiBpbml0ICovCi0JZGV2LT5kZXYgPSAmcGRldi0+ZGV2OwotCWRldi0+bWFjaCA9IHBkZXYtPmRldi5wbGF0Zm9ybV9kYXRhOwotCi0JaWYgKGRldi0+bWFjaC0+Z3Bpb192YnVzKSB7Ci0JCWlmICgocmV0dmFsID0gZ3Bpb19yZXF1ZXN0KGRldi0+bWFjaC0+Z3Bpb192YnVzLAotCQkJCSJweGEyeHhfdWRjIEdQSU8gVkJVUyIpKSkgewotCQkJZGV2X2RiZygmcGRldi0+ZGV2LAotCQkJCSJjYW4ndCBnZXQgdmJ1cyBncGlvICVkLCBlcnI6ICVkXG4iLAotCQkJCWRldi0+bWFjaC0+Z3Bpb192YnVzLCByZXR2YWwpOwotCQkJZ290byBlcnJfZ3Bpb192YnVzOwotCQl9Ci0JCWdwaW9fZGlyZWN0aW9uX2lucHV0KGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKLQkJdmJ1c19pcnEgPSBncGlvX3RvX2lycShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7Ci0JfSBlbHNlCi0JCXZidXNfaXJxID0gMDsKLQotCWlmIChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKSB7Ci0JCWlmICgocmV0dmFsID0gZ3Bpb19yZXF1ZXN0KGRldi0+bWFjaC0+Z3Bpb19wdWxsdXAsCi0JCQkJInBjYTJ4eF91ZGMgR1BJTyBQVUxMVVAiKSkpIHsKLQkJCWRldl9kYmcoJnBkZXYtPmRldiwKLQkJCQkiY2FuJ3QgZ2V0IHB1bGx1cCBncGlvICVkLCBlcnI6ICVkXG4iLAotCQkJCWRldi0+bWFjaC0+Z3Bpb19wdWxsdXAsIHJldHZhbCk7Ci0JCQlnb3RvIGVycl9ncGlvX3B1bGx1cDsKLQkJfQotCQlncGlvX2RpcmVjdGlvbl9vdXRwdXQoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCwgMCk7Ci0JfQotCi0JaW5pdF90aW1lcigmZGV2LT50aW1lcik7Ci0JZGV2LT50aW1lci5mdW5jdGlvbiA9IHVkY193YXRjaGRvZzsKLQlkZXYtPnRpbWVyLmRhdGEgPSAodW5zaWduZWQgbG9uZykgZGV2OwotCi0JZGV2aWNlX2luaXRpYWxpemUoJmRldi0+Z2FkZ2V0LmRldik7Ci0JZGV2LT5nYWRnZXQuZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7Ci0JZGV2LT5nYWRnZXQuZGV2LmRtYV9tYXNrID0gcGRldi0+ZGV2LmRtYV9tYXNrOwotCi0JdGhlX2NvbnRyb2xsZXIgPSBkZXY7Ci0JcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGV2KTsKLQotCXVkY19kaXNhYmxlKGRldik7Ci0JdWRjX3JlaW5pdChkZXYpOwotCi0JZGV2LT52YnVzID0gaXNfdmJ1c19wcmVzZW50KCk7Ci0KLQkvKiBpcnEgc2V0dXAgYWZ0ZXIgb2xkIGhhcmR3YXJlIHN0YXRlIGlzIGNsZWFuZWQgdXAgKi8KLQlyZXR2YWwgPSByZXF1ZXN0X2lycShpcnEsIHB4YTJ4eF91ZGNfaXJxLAotCQkJSVJRRl9ESVNBQkxFRCwgZHJpdmVyX25hbWUsIGRldik7Ci0JaWYgKHJldHZhbCAhPSAwKSB7Ci0JCXByX2VycigiJXM6IGNhbid0IGdldCBpcnEgJWQsIGVyciAlZFxuIiwKLQkJCWRyaXZlcl9uYW1lLCBpcnEsIHJldHZhbCk7Ci0JCWdvdG8gZXJyX2lycTE7Ci0JfQotCWRldi0+Z290X2lycSA9IDE7Ci0KLSNpZmRlZiBDT05GSUdfQVJDSF9MVUJCT0NLCi0JaWYgKG1hY2hpbmVfaXNfbHViYm9jaygpKSB7Ci0JCXJldHZhbCA9IHJlcXVlc3RfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLAotCQkJCWx1YmJvY2tfdmJ1c19pcnEsCi0JCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfU0FNUExFX1JBTkRPTSwKLQkJCQlkcml2ZXJfbmFtZSwgZGV2KTsKLQkJaWYgKHJldHZhbCAhPSAwKSB7Ci0JCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgaXJxICVpLCBlcnIgJWRcbiIsCi0JCQkJZHJpdmVyX25hbWUsIExVQkJPQ0tfVVNCX0RJU0NfSVJRLCByZXR2YWwpOwotbHViYm9ja19mYWlsMDoKLQkJCWdvdG8gZXJyX2lycV9sdWI7Ci0JCX0KLQkJcmV0dmFsID0gcmVxdWVzdF9pcnEoTFVCQk9DS19VU0JfSVJRLAotCQkJCWx1YmJvY2tfdmJ1c19pcnEsCi0JCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfU0FNUExFX1JBTkRPTSwKLQkJCQlkcml2ZXJfbmFtZSwgZGV2KTsKLQkJaWYgKHJldHZhbCAhPSAwKSB7Ci0JCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgaXJxICVpLCBlcnIgJWRcbiIsCi0JCQkJZHJpdmVyX25hbWUsIExVQkJPQ0tfVVNCX0lSUSwgcmV0dmFsKTsKLQkJCWZyZWVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLCBkZXYpOwotCQkJZ290byBsdWJib2NrX2ZhaWwwOwotCQl9Ci0JfSBlbHNlCi0jZW5kaWYKLQlpZiAodmJ1c19pcnEpIHsKLQkJcmV0dmFsID0gcmVxdWVzdF9pcnEodmJ1c19pcnEsIHVkY192YnVzX2lycSwKLQkJCQlJUlFGX0RJU0FCTEVEIHwgSVJRRl9TQU1QTEVfUkFORE9NIHwKLQkJCQlJUlFGX1RSSUdHRVJfUklTSU5HIHwgSVJRRl9UUklHR0VSX0ZBTExJTkcsCi0JCQkJZHJpdmVyX25hbWUsIGRldik7Ci0JCWlmIChyZXR2YWwgIT0gMCkgewotCQkJcHJfZXJyKCIlczogY2FuJ3QgZ2V0IGlycSAlaSwgZXJyICVkXG4iLAotCQkJCWRyaXZlcl9uYW1lLCB2YnVzX2lycSwgcmV0dmFsKTsKLQkJCWdvdG8gZXJyX3ZidXNfaXJxOwotCQl9Ci0JfQotCWNyZWF0ZV9kZWJ1Z19maWxlcyhkZXYpOwotCi0JcmV0dXJuIDA7Ci0KLSBlcnJfdmJ1c19pcnE6Ci0jaWZkZWYJQ09ORklHX0FSQ0hfTFVCQk9DSwotCWZyZWVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLCBkZXYpOwotIGVycl9pcnFfbHViOgotI2VuZGlmCi0JZnJlZV9pcnEoaXJxLCBkZXYpOwotIGVycl9pcnExOgotCWlmIChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKQotCQlncGlvX2ZyZWUoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCk7Ci0gZXJyX2dwaW9fcHVsbHVwOgotCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1cykKLQkJZ3Bpb19mcmVlKGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKLSBlcnJfZ3Bpb192YnVzOgotCWNsa19wdXQoZGV2LT5jbGspOwotIGVycl9jbGs6Ci0JcmV0dXJuIHJldHZhbDsKLX0KLQotc3RhdGljIHZvaWQgcHhhMnh4X3VkY19zaHV0ZG93bihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpfZGV2KQotewotCXB1bGx1cF9vZmYoKTsKLX0KLQotc3RhdGljIGludCBfX2V4aXQgcHhhMnh4X3VkY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Ci0KLQlpZiAoZGV2LT5kcml2ZXIpCi0JCXJldHVybiAtRUJVU1k7Ci0KLQlkZXYtPnB1bGx1cCA9IDA7Ci0JcHVsbHVwKGRldik7Ci0KLQlyZW1vdmVfZGVidWdfZmlsZXMoZGV2KTsKLQotCWlmIChkZXYtPmdvdF9pcnEpIHsKLQkJZnJlZV9pcnEocGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKSwgZGV2KTsKLQkJZGV2LT5nb3RfaXJxID0gMDsKLQl9Ci0jaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSwotCWlmIChtYWNoaW5lX2lzX2x1YmJvY2soKSkgewotCQlmcmVlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSwgZGV2KTsKLQkJZnJlZV9pcnEoTFVCQk9DS19VU0JfSVJRLCBkZXYpOwotCX0KLSNlbmRpZgotCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1cykgewotCQlmcmVlX2lycShncGlvX3RvX2lycShkZXYtPm1hY2gtPmdwaW9fdmJ1cyksIGRldik7Ci0JCWdwaW9fZnJlZShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7Ci0JfQotCWlmIChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKQotCQlncGlvX2ZyZWUoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCk7Ci0KLQljbGtfcHV0KGRldi0+Y2xrKTsKLQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOwotCXRoZV9jb250cm9sbGVyID0gTlVMTDsKLQlyZXR1cm4gMDsKLX0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotI2lmZGVmCUNPTkZJR19QTQotCi0vKiBVU0Igc3VzcGVuZCAoY29udHJvbGxlZCBieSB0aGUgaG9zdCkgYW5kIHN5c3RlbSBzdXNwZW5kIChjb250cm9sbGVkCi0gKiBieSB0aGUgUFhBKSBkb24ndCBuZWNlc3NhcmlseSB3b3JrIHdlbGwgdG9nZXRoZXIuICBJZiBVU0IgaXMgYWN0aXZlLAotICogdGhlIDQ4IE1IeiBjbG9jayBpcyByZXF1aXJlZDsgc28gdGhlIHN5c3RlbSBjYW4ndCBlbnRlciAzMyBNSHogaWRsZQotICogbW9kZSwgb3IgYW55IGRlZXBlciBQTSBzYXZpbmcgc3RhdGUuCi0gKgotICogRm9yIG5vdywgd2UgcHVudCBhbmQgZm9yY2libHkgZGlzY29ubmVjdCBmcm9tIHRoZSBVU0IgaG9zdCB3aGVuIFBYQQotICogZW50ZXJzIGFueSBzdXNwZW5kIHN0YXRlLiAgV2hpbGUgd2UncmUgZGlzY29ubmVjdGVkLCB3ZSBhbHdheXMgZGlzYWJsZQotICogdGhlIDQ4TUh6IFVTQiBjbG9jayAuLi4gYWxsb3dpbmcgUFhBIHNsZWVwIGFuZC9vciAzMyBNSHogaWRsZSBzdGF0ZXMuCi0gKiBCb2FyZHMgd2l0aG91dCBzb2Z0d2FyZSBwdWxsdXAgY29udHJvbCBzaG91bGRuJ3QgdXNlIHRob3NlIHN0YXRlcy4KLSAqIFZCVVMgSVJRcyBzaG91bGQgcHJvYmFibHkgYmUgaWdub3JlZCBzbyB0aGF0IHRoZSBQWEEgZGV2aWNlIGp1c3QgYWN0cwotICogImRlYWQiIHRvIFVTQiBob3N0cyB1bnRpbCBzeXN0ZW0gcmVzdW1lLgotICovCi1zdGF0aWMgaW50IHB4YTJ4eF91ZGNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkqdWRjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JaWYgKCF1ZGMtPm1hY2gtPmdwaW9fcHVsbHVwICYmICF1ZGMtPm1hY2gtPnVkY19jb21tYW5kKQotCQlXQVJOKCJVU0IgaG9zdCB3b24ndCBkZXRlY3QgZGlzY29ubmVjdCFcbiIpOwotCXVkYy0+c3VzcGVuZGVkID0gMTsKLQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQlwdWxsdXAodWRjKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBweGEyeHhfdWRjX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKnVkYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKGRldik7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXVkYy0+c3VzcGVuZGVkID0gMDsKLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0JcHVsbHVwKHVkYyk7Ci0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlCi0jZGVmaW5lCXB4YTJ4eF91ZGNfc3VzcGVuZAlOVUxMCi0jZGVmaW5lCXB4YTJ4eF91ZGNfcmVzdW1lCU5VTEwKLSNlbmRpZgotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB1ZGNfZHJpdmVyID0gewotCS5zaHV0ZG93bgk9IHB4YTJ4eF91ZGNfc2h1dGRvd24sCi0JLnJlbW92ZQkJPSBfX2V4aXRfcChweGEyeHhfdWRjX3JlbW92ZSksCi0JLnN1c3BlbmQJPSBweGEyeHhfdWRjX3N1c3BlbmQsCi0JLnJlc3VtZQkJPSBweGEyeHhfdWRjX3Jlc3VtZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm93bmVyCT0gVEhJU19NT0RVTEUsCi0JCS5uYW1lCT0gInB4YTJ4eC11ZGMiLAotCX0sCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCB1ZGNfaW5pdCh2b2lkKQotewotCXByX2luZm8oIiVzOiB2ZXJzaW9uICVzXG4iLCBkcml2ZXJfbmFtZSwgRFJJVkVSX1ZFUlNJT04pOwotCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcHJvYmUoJnVkY19kcml2ZXIsIHB4YTJ4eF91ZGNfcHJvYmUpOwotfQotbW9kdWxlX2luaXQodWRjX2luaXQpOwotCi1zdGF0aWMgdm9pZCBfX2V4aXQgdWRjX2V4aXQodm9pZCkKLXsKLQlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmdWRjX2RyaXZlcik7Ci19Ci1tb2R1bGVfZXhpdCh1ZGNfZXhpdCk7Ci0KLU1PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7Ci1NT0RVTEVfQVVUSE9SKCJGcmFuayBCZWNrZXIsIFJvYmVydCBTY2h3ZWJlbCwgRGF2aWQgQnJvd25lbGwiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06cHhhMnh4LXVkYyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTJ4eF91ZGMuaCBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyeHhfdWRjLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyYzE5ZTguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTJ4eF91ZGMuaAorKysgL2Rldi9udWxsCkBAIC0xLDI2NyArMCwwIEBACi0vKgotICogbGludXgvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTJ4eF91ZGMuaAotICogSW50ZWwgUFhBMnh4IG9uLWNoaXAgZnVsbCBzcGVlZCBVU0IgZGV2aWNlIGNvbnRyb2xsZXIKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVsQHBlbmd1dHJvbml4LmRlPiwgUGVuZ3V0cm9uaXgKLSAqIENvcHlyaWdodCAoQykgMjAwMyBEYXZpZCBCcm93bmVsbAotICoKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCi0gKi8KLQotI2lmbmRlZiBfX0xJTlVYX1VTQl9HQURHRVRfUFhBMlhYX0gKLSNkZWZpbmUgX19MSU5VWF9VU0JfR0FER0VUX1BYQTJYWF9ICi0KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiBweGEyeHggaGFzIHRoaXMgKG1vdmUgdG8gaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YS1yZWdzLmgpICovCi0jZGVmaW5lIFVGTlJIX1NJUgkoMSA8PCA3KQkvKiBTT0YgaW50ZXJydXB0IHJlcXVlc3QgKi8KLSNkZWZpbmUgVUZOUkhfU0lNCSgxIDw8IDYpCS8qIFNPRiBpbnRlcnJ1cHQgbWFzayAqLwotI2RlZmluZSBVRk5SSF9JUEUxNAkoMSA8PCA1KQkvKiBJU08gcGFja2V0IGVycm9yLCBlcDE0ICovCi0jZGVmaW5lIFVGTlJIX0lQRTkJKDEgPDwgNCkJLyogSVNPIHBhY2tldCBlcnJvciwgZXA5ICovCi0jZGVmaW5lIFVGTlJIX0lQRTQJKDEgPDwgMykJLyogSVNPIHBhY2tldCBlcnJvciwgZXA0ICovCi0KLS8qIHB4YTI1NSBoYXMgdGhpcyAobW92ZSB0byBpbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaCkgKi8KLSNkZWZpbmUJVURDQ0ZSCQlVRENfUkVTMgkvKiBVREMgQ29udHJvbCBGdW5jdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDRlJfQVJFTgkoMSA8PCA3KQkvKiBBQ0sgcmVzcG9uc2UgZW5hYmxlIChub3cpICovCi0jZGVmaW5lIFVEQ0NGUl9BQ00JKDEgPDwgMikJLyogQUNLIGNvbnRyb2wgbW9kZSAod2FpdCBmb3IgQVJFTikgKi8KLQotLyogbGF0ZXN0IHB4YTI1NSBlcnJhdGEgZGVmaW5lIG5ldyAibXVzdCBiZSBvbmUiIGJpdHMgaW4gVURDQ0ZSICovCi0jZGVmaW5lCVVEQ0NGUl9NQjEJKDB4ZmYgJiB+KFVEQ0NGUl9BUkVOfFVEQ0NGUl9BQ00pKQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdHJ1Y3QgcHhhMnh4X3VkYzsKLQotc3RydWN0IHB4YTJ4eF9lcCB7Ci0Jc3RydWN0IHVzYl9lcAkJCQllcDsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkJCSpkZXY7Ci0KLQljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IJKmRlc2M7Ci0Jc3RydWN0IGxpc3RfaGVhZAkJCXF1ZXVlOwotCXVuc2lnbmVkIGxvbmcJCQkJcGlvX2lycXM7Ci0KLQl1bnNpZ25lZCBzaG9ydAkJCQlmaWZvX3NpemU7Ci0JdTgJCQkJCWJFbmRwb2ludEFkZHJlc3M7Ci0JdTgJCQkJCWJtQXR0cmlidXRlczsKLQotCXVuc2lnbmVkCQkJCXN0b3BwZWQgOiAxOwotCXVuc2lnbmVkCQkJCWRtYV9maXh1cCA6IDE7Ci0KLQkvKiBVRENDUyA9IFVEQyBDb250cm9sL1N0YXR1cyBmb3IgdGhpcyBFUAotCSAqIFVCQ1IgPSBVREMgQnl0ZSBDb3VudCBSZW1haW5pbmcgKGNvbnRlbnRzIG9mIE9VVCBmaWZvKQotCSAqIFVERFIgPSBVREMgRW5kcG9pbnQgRGF0YSBSZWdpc3RlciAodGhlIGZpZm8pCi0JICogRFJDTSA9IERNQSBSZXF1ZXN0IENoYW5uZWwgTWFwCi0JICovCi0Jdm9sYXRpbGUgdTMyCQkJCSpyZWdfdWRjY3M7Ci0Jdm9sYXRpbGUgdTMyCQkJCSpyZWdfdWJjcjsKLQl2b2xhdGlsZSB1MzIJCQkJKnJlZ191ZGRyOwotfTsKLQotc3RydWN0IHB4YTJ4eF9yZXF1ZXN0IHsKLQlzdHJ1Y3QgdXNiX3JlcXVlc3QJCQlyZXE7Ci0Jc3RydWN0IGxpc3RfaGVhZAkJCXF1ZXVlOwotfTsKLQotZW51bSBlcDBfc3RhdGUgewotCUVQMF9JRExFLAotCUVQMF9JTl9EQVRBX1BIQVNFLAotCUVQMF9PVVRfREFUQV9QSEFTRSwKLQlFUDBfRU5EX1hGRVIsCi0JRVAwX1NUQUxMLAotfTsKLQotI2RlZmluZSBFUDBfRklGT19TSVpFCSgodW5zaWduZWQpMTYpCi0jZGVmaW5lIEJVTEtfRklGT19TSVpFCSgodW5zaWduZWQpNjQpCi0jZGVmaW5lIElTT19GSUZPX1NJWkUJKCh1bnNpZ25lZCkyNTYpCi0jZGVmaW5lIElOVF9GSUZPX1NJWkUJKCh1bnNpZ25lZCk4KQotCi1zdHJ1Y3QgdWRjX3N0YXRzIHsKLQlzdHJ1Y3QgZXAwc3RhdHMgewotCQl1bnNpZ25lZCBsb25nCQlvcHM7Ci0JCXVuc2lnbmVkIGxvbmcJCWJ5dGVzOwotCX0gcmVhZCwgd3JpdGU7Ci0JdW5zaWduZWQgbG9uZwkJCWlycXM7Ci19OwotCi0jaWZkZWYgQ09ORklHX1VTQl9QWEEyWFhfU01BTEwKLS8qIHdoZW4gbWVtb3J5J3MgdGlnaHQsIFNNQUxMIGNvbmZpZyBzYXZlcyBjb2RlK2RhdGEuICAqLwotI2RlZmluZQlQWEFfVURDX05VTV9FTkRQT0lOVFMJMwotI2VuZGlmCi0KLSNpZm5kZWYJUFhBX1VEQ19OVU1fRU5EUE9JTlRTCi0jZGVmaW5lCVBYQV9VRENfTlVNX0VORFBPSU5UUwkxNgotI2VuZGlmCi0KLXN0cnVjdCBweGEyeHhfdWRjIHsKLQlzdHJ1Y3QgdXNiX2dhZGdldAkJCWdhZGdldDsKLQlzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIJCSpkcml2ZXI7Ci0KLQllbnVtIGVwMF9zdGF0ZQkJCQllcDBzdGF0ZTsKLQlzdHJ1Y3QgdWRjX3N0YXRzCQkJc3RhdHM7Ci0JdW5zaWduZWQJCQkJZ290X2lycSA6IDEsCi0JCQkJCQl2YnVzIDogMSwKLQkJCQkJCXB1bGx1cCA6IDEsCi0JCQkJCQloYXNfY2ZyIDogMSwKLQkJCQkJCXJlcV9wZW5kaW5nIDogMSwKLQkJCQkJCXJlcV9zdGQgOiAxLAotCQkJCQkJcmVxX2NvbmZpZyA6IDEsCi0JCQkJCQlzdXNwZW5kZWQgOiAxLAotCQkJCQkJYWN0aXZlIDogMTsKLQotI2RlZmluZSBzdGFydF93YXRjaGRvZyhkZXYpIG1vZF90aW1lcigmZGV2LT50aW1lciwgamlmZmllcyArIChIWi8yMDApKQotCXN0cnVjdCB0aW1lcl9saXN0CQkJdGltZXI7Ci0KLQlzdHJ1Y3QgZGV2aWNlCQkJCSpkZXY7Ci0Jc3RydWN0IGNsawkJCQkqY2xrOwotCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2g7Ci0JdTY0CQkJCQlkbWFfbWFzazsKLQlzdHJ1Y3QgcHhhMnh4X2VwCQkJZXAgW1BYQV9VRENfTlVNX0VORFBPSU5UU107Ci0KLSNpZmRlZiBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GUwotCXN0cnVjdCBkZW50cnkJCQkJKmRlYnVnZnNfdWRjOwotI2VuZGlmCi19OwotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0jaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSwotI2luY2x1ZGUgPGFzbS9hcmNoL2x1YmJvY2suaD4KLS8qIGx1YmJvY2sgY2FuIGFsc28gcmVwb3J0IHVzYiBjb25uZWN0L2Rpc2Nvbm5lY3QgaXJxcyAqLwotI2VuZGlmCi0KLXN0YXRpYyBzdHJ1Y3QgcHhhMnh4X3VkYyAqdGhlX2NvbnRyb2xsZXI7Ci0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLS8qCi0gKiBEZWJ1Z2dpbmcgc3VwcG9ydCB2YW5pc2hlcyBpbiBub24tZGVidWcgYnVpbGRzLiAgREJHX05PUk1BTCBzaG91bGQgYmUKLSAqIG1vc3RseSBzaWxlbnQgZHVyaW5nIG5vcm1hbCB1c2UvdGVzdGluZywgd2l0aCBubyB0aW1pbmcgc2lkZS1lZmZlY3RzLgotICovCi0jZGVmaW5lIERCR19OT1JNQUwJMQkvKiBlcnJvciBwYXRocywgZGV2aWNlIHN0YXRlIHRyYW5zaXRpb25zICovCi0jZGVmaW5lIERCR19WRVJCT1NFCTIJLyogYWRkIHNvbWUgc3VjY2VzcyBwYXRoIHRyYWNlIGluZm8gKi8KLSNkZWZpbmUgREJHX05PSVNZCTMJLyogLi4uIGV2ZW4gbW9yZTogcmVxdWVzdCBsZXZlbCAqLwotI2RlZmluZSBEQkdfVkVSWV9OT0lTWQk0CS8qIC4uLiBldmVuIG1vcmU6IHBhY2tldCBsZXZlbCAqLwotCi0jZGVmaW5lIERNU0coc3R1ZmYuLi4pCXByX2RlYnVnKCJ1ZGM6ICIgc3R1ZmYpCi0KLSNpZmRlZiBERUJVRwotCi1zdGF0aWMgaW50IGlzX3ZidXNfcHJlc2VudCh2b2lkKTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKnN0YXRlX25hbWVbXSA9IHsKLQkiRVAwX0lETEUiLAotCSJFUDBfSU5fREFUQV9QSEFTRSIsICJFUDBfT1VUX0RBVEFfUEhBU0UiLAotCSJFUDBfRU5EX1hGRVIiLCAiRVAwX1NUQUxMIgotfTsKLQotI2lmZGVmIFZFUkJPU0VfREVCVUcKLSMgICAgZGVmaW5lIFVEQ19ERUJVRyBEQkdfVkVSQk9TRQotI2Vsc2UKLSMgICAgZGVmaW5lIFVEQ19ERUJVRyBEQkdfTk9STUFMCi0jZW5kaWYKLQotc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQKLWR1bXBfdWRjY3IoY29uc3QgY2hhciAqbGFiZWwpCi17Ci0JdTMyCXVkY2NyID0gVURDQ1I7Ci0JRE1TRygiJXMgJTAyWCA9JXMlcyVzJXMlcyVzJXMlc1xuIiwKLQkJbGFiZWwsIHVkY2NyLAotCQkodWRjY3IgJiBVRENDUl9SRU0pID8gIiByZW0iIDogIiIsCi0JCSh1ZGNjciAmIFVEQ0NSX1JTVElSKSA/ICIgcnN0aXIiIDogIiIsCi0JCSh1ZGNjciAmIFVEQ0NSX1NSTSkgPyAiIHNybSIgOiAiIiwKLQkJKHVkY2NyICYgVURDQ1JfU1VTSVIpID8gIiBzdXNpciIgOiAiIiwKLQkJKHVkY2NyICYgVURDQ1JfUkVTSVIpID8gIiByZXNpciIgOiAiIiwKLQkJKHVkY2NyICYgVURDQ1JfUlNNKSA/ICIgcnNtIiA6ICIiLAotCQkodWRjY3IgJiBVRENDUl9VREEpID8gIiB1ZGEiIDogIiIsCi0JCSh1ZGNjciAmIFVEQ0NSX1VERSkgPyAiIHVkZSIgOiAiIik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCi1kdW1wX3VkY2NzMChjb25zdCBjaGFyICpsYWJlbCkKLXsKLQl1MzIJCXVkY2NzMCA9IFVEQ0NTMDsKLQotCURNU0coIiVzICVzICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsCi0JCWxhYmVsLCBzdGF0ZV9uYW1lW3RoZV9jb250cm9sbGVyLT5lcDBzdGF0ZV0sIHVkY2NzMCwKLQkJKHVkY2NzMCAmIFVEQ0NTMF9TQSkgPyAiIHNhIiA6ICIiLAotCQkodWRjY3MwICYgVURDQ1MwX1JORSkgPyAiIHJuZSIgOiAiIiwKLQkJKHVkY2NzMCAmIFVEQ0NTMF9GU1QpID8gIiBmc3QiIDogIiIsCi0JCSh1ZGNjczAgJiBVRENDUzBfU1NUKSA/ICIgc3N0IiA6ICIiLAotCQkodWRjY3MwICYgVURDQ1MwX0RSV0YpID8gIiBkd3JmIiA6ICIiLAotCQkodWRjY3MwICYgVURDQ1MwX0ZURikgPyAiIGZ0ZiIgOiAiIiwKLQkJKHVkY2NzMCAmIFVEQ0NTMF9JUFIpID8gIiBpcHIiIDogIiIsCi0JCSh1ZGNjczAgJiBVRENDUzBfT1BSKSA/ICIgb3ByIiA6ICIiKTsKLX0KLQotc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQKLWR1bXBfc3RhdGUoc3RydWN0IHB4YTJ4eF91ZGMgKmRldikKLXsKLQl1MzIJCXRtcDsKLQl1bnNpZ25lZAlpOwotCi0JRE1TRygiJXMgJXMsIHVpY3IgJTAyWC4lMDJYLCB1c2lyICUwMlguJTAyeCwgdWZuciAlMDJYLiUwMlhcbiIsCi0JCWlzX3ZidXNfcHJlc2VudCgpID8gImhvc3QgIiA6ICJkaXNjb25uZWN0ZWQiLAotCQlzdGF0ZV9uYW1lW2Rldi0+ZXAwc3RhdGVdLAotCQlVSUNSMSwgVUlDUjAsIFVTSVIxLCBVU0lSMCwgVUZOUkgsIFVGTlJMKTsKLQlkdW1wX3VkY2NyKCJ1ZGNjciIpOwotCWlmIChkZXYtPmhhc19jZnIpIHsKLQkJdG1wID0gVURDQ0ZSOwotCQlETVNHKCJ1ZGNjZnIgJTAyWCA9JXMlc1xuIiwgdG1wLAotCQkJKHRtcCAmIFVEQ0NGUl9BUkVOKSA/ICIgYXJlbiIgOiAiIiwKLQkJCSh0bXAgJiBVRENDRlJfQUNNKSA/ICIgYWNtIiA6ICIiKTsKLQl9Ci0KLQlpZiAoIWRldi0+ZHJpdmVyKSB7Ci0JCURNU0coIm5vIGdhZGdldCBkcml2ZXIgYm91bmRcbiIpOwotCQlyZXR1cm47Ci0JfSBlbHNlCi0JCURNU0coImVwMCBkcml2ZXIgJyVzJ1xuIiwgZGV2LT5kcml2ZXItPmRyaXZlci5uYW1lKTsKLQotCWlmICghaXNfdmJ1c19wcmVzZW50KCkpCi0JCXJldHVybjsKLQotCWR1bXBfdWRjY3MwICgidWRjY3MwIik7Ci0JRE1TRygiZXAwIElOICVsdS8lbHUsIE9VVCAlbHUvJWx1XG4iLAotCQlkZXYtPnN0YXRzLndyaXRlLmJ5dGVzLCBkZXYtPnN0YXRzLndyaXRlLm9wcywKLQkJZGV2LT5zdGF0cy5yZWFkLmJ5dGVzLCBkZXYtPnN0YXRzLnJlYWQub3BzKTsKLQotCWZvciAoaSA9IDE7IGkgPCBQWEFfVURDX05VTV9FTkRQT0lOVFM7IGkrKykgewotCQlpZiAoZGV2LT5lcCBbaV0uZGVzYyA9PSBOVUxMKQotCQkJY29udGludWU7Ci0JCURNU0cgKCJ1ZGNjcyVkID0gJTAyeFxuIiwgaSwgKmRldi0+ZXAtPnJlZ191ZGNjcyk7Ci0JfQotfQotCi0jZWxzZQotCi0jZGVmaW5lCWR1bXBfdWRjY3IoeCkJZG97fXdoaWxlKDApCi0jZGVmaW5lCWR1bXBfdWRjY3MwKHgpCWRve313aGlsZSgwKQotI2RlZmluZQlkdW1wX3N0YXRlKHgpCWRve313aGlsZSgwKQotCi0jZGVmaW5lIFVEQ19ERUJVRyAoKHVuc2lnbmVkKTApCi0KLSNlbmRpZgotCi0jZGVmaW5lIERCRyhsdmwsIHN0dWZmLi4uKSBkb3tpZiAoKGx2bCkgPD0gVURDX0RFQlVHKSBETVNHKHN0dWZmKTt9d2hpbGUoMCkKLQotI2RlZmluZSBFUlIoc3R1ZmYuLi4pCQlwcl9lcnIoInVkYzogIiBzdHVmZikKLSNkZWZpbmUgV0FSTihzdHVmZi4uLikJCXByX3dhcm5pbmcoInVkYzogIiBzdHVmZikKLSNkZWZpbmUgSU5GTyhzdHVmZi4uLikJCXByX2luZm8oInVkYzogIiBzdHVmZikKLQotCi0jZW5kaWYgLyogX19MSU5VWF9VU0JfR0FER0VUX1BYQTJYWF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2kuaCBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS5oCmluZGV4IDM1YTAzMDkuLjkwMjQ1ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS5oCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS5oCkBAIC0xNzcsNiArMTc3LDE1IEBACiBzdGF0aWMgaW5saW5lIHZvaWQKIHRpbWVyX2FjdGlvbiAoc3RydWN0IGVoY2lfaGNkICplaGNpLCBlbnVtIGVoY2lfdGltZXJfYWN0aW9uIGFjdGlvbikKIHsKKwkvKiBEb24ndCBvdmVycmlkZSB0aW1lb3V0cyB3aGljaCBzaHJpbmsgb3IgKGxhdGVyKSBkaXNhYmxlCisJICogdGhlIGFzeW5jIHJpbmc7IGp1c3QgdGhlIEkvTyB3YXRjaGRvZy4gIE5vdGUgdGhhdCBpZiBhCisJICogU0hSSU5LIHdlcmUgcGVuZGluZywgT0ZGIHdvdWxkIG5ldmVyIGJlIHJlcXVlc3RlZC4KKwkgKi8KKwlpZiAodGltZXJfcGVuZGluZygmZWhjaS0+d2F0Y2hkb2cpCisJCQkmJiAoKEJJVChUSU1FUl9BU1lOQ19TSFJJTkspIHwgQklUKFRJTUVSX0FTWU5DX09GRikpCisJCQkJJiBlaGNpLT5hY3Rpb25zKSkKKwkJcmV0dXJuOworCiAJaWYgKCF0ZXN0X2FuZF9zZXRfYml0IChhY3Rpb24sICZlaGNpLT5hY3Rpb25zKSkgewogCQl1bnNpZ25lZCBsb25nIHQ7CiAKQEAgLTE5MiwxNSArMjAxLDcgQEAKIAkJCXQgPSBFSENJX1NIUklOS19KSUZGSUVTOwogCQkJYnJlYWs7CiAJCX0KLQkJdCArPSBqaWZmaWVzOwotCQkvLyBhbGwgdGltaW5ncyBleGNlcHQgSUFBIHdhdGNoZG9nIGNhbiBiZSBvdmVycmlkZGVuLgotCQkvLyBhc3luYyBxdWV1ZSBTSFJJTksgb2Z0ZW4gcHJlY2VkZXMgSUFBLiAgd2hpbGUgaXQncyByZWFkeQotCQkvLyB0byBnbyBPRkYgbmVpdGhlciBjYW4gbWF0dGVyLCBhbmQgYWZ0ZXJ3YXJkcyB0aGUgSU8KLQkJLy8gd2F0Y2hkb2cgc3RvcHMgdW5sZXNzIHRoZXJlJ3Mgc3RpbGwgcGVyaW9kaWMgdHJhZmZpYy4KLQkJaWYgKHRpbWVfYmVmb3JlX2VxKHQsIGVoY2ktPndhdGNoZG9nLmV4cGlyZXMpCi0JCQkJJiYgdGltZXJfcGVuZGluZyAoJmVoY2ktPndhdGNoZG9nKSkKLQkJCXJldHVybjsKLQkJbW9kX3RpbWVyICgmZWhjaS0+d2F0Y2hkb2csIHQpOworCQltb2RfdGltZXIoJmVoY2ktPndhdGNoZG9nLCB0ICsgamlmZmllcyk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktYXQ5MS5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWF0OTEuYwppbmRleCBjOTZkYjExLi5lNTM0ZjlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktYXQ5MS5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1hdDkxLmMKQEAgLTI2MSw2ICsyNjEsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmIENPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1hdTF4eHguYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1hdTF4eHguYwppbmRleCAxYjlhYmRiLi42OGMxN2Y1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktYXUxeHh4LmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWF1MXh4eC5jCkBAIC04LDcgKzgsNyBAQAogICogQnVzIEdsdWUgZm9yIEFNRCBBbGNoZW15IEF1MXh4eAogICoKICAqIFdyaXR0ZW4gYnkgQ2hyaXN0b3BoZXIgSG9vdmVyIDxjaEBocGwuaHAuY29tPgotICogQmFzZWQgb24gZnJhZ21lbnRzIG9mIHByZXZpb3VzIGRyaXZlciBieSBSdXNlbGwgS2luZyBldCBhbC4KKyAqIEJhc2VkIG9uIGZyYWdtZW50cyBvZiBwcmV2aW91cyBkcml2ZXIgYnkgUnVzc2VsbCBLaW5nIGV0IGFsLgogICoKICAqIE1vZGlmaWVkIGZvciBMSDdBNDA0IGZyb20gb2hjaS1zYTExMTEuYwogICogIGJ5IER1cmdlc2ggUGF0dGFtYXR0YSA8cGF0dGFtYXR0YWRAc2hhcnBzZWMuY29tPgpAQCAtMjg4LDYgKzI4OCw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWVwOTN4eC5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWVwOTN4eC5jCmluZGV4IDA2YWFkZmIuLjVhZGFmMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1lcDkzeHguYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktZXA5M3h4LmMKQEAgLTEzNSw2ICsxMzUsNyBAQAogCS5nZXRfZnJhbWVfbnVtYmVyCT0gb2hjaV9nZXRfZnJhbWUsCiAJLmh1Yl9zdGF0dXNfZGF0YQk9IG9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbAkJPSBvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZQkJPSBvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmIENPTkZJR19QTQogCS5idXNfc3VzcGVuZAkJPSBvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lCQk9IG9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1oY2QuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1oY2QuYwppbmRleCAzM2YxYzFjLi5hODE2MGQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktaGNkLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWhjZC5jCkBAIC0xMDU0LDcgKzEwNTQsNyBAQAogCiAjaWZkZWYgQ09ORklHX01GRF9TTTUwMQogI2luY2x1ZGUgIm9oY2ktc201MDEuYyIKLSNkZWZpbmUgUExBVEZPUk1fRFJJVkVSCQlvaGNpX2hjZF9zbTUwMV9kcml2ZXIKKyNkZWZpbmUgU001MDFfT0hDSV9EUklWRVIJb2hjaV9oY2Rfc201MDFfZHJpdmVyCiAjZW5kaWYKIAogI2lmCSFkZWZpbmVkKFBDSV9EUklWRVIpICYmCQlcCkBAIC0xMDYyLDYgKzEwNjIsNyBAQAogCSFkZWZpbmVkKE9GX1BMQVRGT1JNX0RSSVZFUikgJiYJXAogCSFkZWZpbmVkKFNBMTExMV9EUklWRVIpICYmCVwKIAkhZGVmaW5lZChQUzNfU1lTVEVNX0JVU19EUklWRVIpICYmIFwKKwkhZGVmaW5lZChTTTUwMV9PSENJX0RSSVZFUikgJiYgXAogCSFkZWZpbmVkKFNTQl9PSENJX0RSSVZFUikKICNlcnJvciAibWlzc2luZyBidXMgZ2x1ZSBmb3Igb2hjaS1oY2QiCiAjZW5kaWYKQEAgLTExMjEsOSArMTEyMiwxOCBAQAogCQlnb3RvIGVycm9yX3NzYjsKICNlbmRpZgogCisjaWZkZWYgU001MDFfT0hDSV9EUklWRVIKKwlyZXR2YWwgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJlNNNTAxX09IQ0lfRFJJVkVSKTsKKwlpZiAocmV0dmFsIDwgMCkKKwkJZ290byBlcnJvcl9zbTUwMTsKKyNlbmRpZgorCiAJcmV0dXJuIHJldHZhbDsKIAogCS8qIEVycm9yIHBhdGggKi8KKyNpZmRlZiBTTTUwMV9PSENJX0RSSVZFUgorIGVycm9yX3NtNTAxOgorI2VuZGlmCiAjaWZkZWYgU1NCX09IQ0lfRFJJVkVSCiAgZXJyb3Jfc3NiOgogI2VuZGlmCkBAIC0xMTU5LDYgKzExNjksOSBAQAogCiBzdGF0aWMgdm9pZCBfX2V4aXQgb2hjaV9oY2RfbW9kX2V4aXQodm9pZCkKIHsKKyNpZmRlZiBTTTUwMV9PSENJX0RSSVZFUgorCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZTTTUwMV9PSENJX0RSSVZFUik7CisjZW5kaWYKICNpZmRlZiBTU0JfT0hDSV9EUklWRVIKIAlzc2JfZHJpdmVyX3VucmVnaXN0ZXIoJlNTQl9PSENJX0RSSVZFUik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1odWIuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1odWIuYwppbmRleCA3OWE3ODAyLi5iNTY3MzkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktaHViLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWh1Yi5jCkBAIC0zNiw2ICszNiwxOCBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCisvKiBoY2QtPmh1Yl9pcnFfZW5hYmxlKCkgKi8KK3N0YXRpYyB2b2lkIG9oY2lfcmhzY19lbmFibGUgKHN0cnVjdCB1c2JfaGNkICpoY2QpCit7CisJc3RydWN0IG9oY2lfaGNkCQkqb2hjaSA9IGhjZF90b19vaGNpIChoY2QpOworCisJc3Bpbl9sb2NrX2lycSgmb2hjaS0+bG9jayk7CisJaWYgKCFvaGNpLT5hdXRvc3RvcCkKKwkJZGVsX3RpbWVyKCZoY2QtPnJoX3RpbWVyKTsJLyogUHJldmVudCBuZXh0IHBvbGwgKi8KKwlvaGNpX3dyaXRlbChvaGNpLCBPSENJX0lOVFJfUkhTQywgJm9oY2ktPnJlZ3MtPmludHJlbmFibGUpOworCXNwaW5fdW5sb2NrX2lycSgmb2hjaS0+bG9jayk7Cit9CisKICNkZWZpbmUgT0hDSV9TQ0hFRF9FTkFCTEVTIFwKIAkoT0hDSV9DVFJMX0NMRXxPSENJX0NUUkxfQkxFfE9IQ0lfQ1RSTF9QTEV8T0hDSV9DVFJMX0lFKQogCkBAIC0zNjIsMjggKzM3NCwxOCBAQAogCQlpbnQgYW55X2Nvbm5lY3RlZCkKIHsKIAlpbnQJcG9sbF9yaCA9IDE7Ci0JaW50CXJoc2M7CiAKLQlyaHNjID0gb2hjaV9yZWFkbChvaGNpLCAmb2hjaS0+cmVncy0+aW50cmVuYWJsZSkgJiBPSENJX0lOVFJfUkhTQzsKIAlzd2l0Y2ggKG9oY2ktPmhjX2NvbnRyb2wgJiBPSENJX0NUUkxfSENGUykgewogCiAJY2FzZSBPSENJX1VTQl9PUEVSOgotCQkvKiBJZiBubyBzdGF0dXMgY2hhbmdlcyBhcmUgcGVuZGluZywgZW5hYmxlIHN0YXR1cy1jaGFuZ2UKLQkJICogaW50ZXJydXB0cy4KLQkJICovCi0JCWlmICghcmhzYyAmJiAhY2hhbmdlZCkgewotCQkJcmhzYyA9IE9IQ0lfSU5UUl9SSFNDOwotCQkJb2hjaV93cml0ZWwob2hjaSwgcmhzYywgJm9oY2ktPnJlZ3MtPmludHJlbmFibGUpOwotCQl9Ci0KLQkJLyogS2VlcCBvbiBwb2xsaW5nIHVudGlsIHdlIGtub3cgYSBkZXZpY2UgaXMgY29ubmVjdGVkCi0JCSAqIGFuZCBSSFNDIGlzIGVuYWJsZWQsIG9yIHVudGlsIHdlIGF1dG9zdG9wLgotCQkgKi8KKwkJLyoga2VlcCBvbiBwb2xsaW5nIHVudGlsIHdlIGtub3cgYSBkZXZpY2UgaXMgY29ubmVjdGVkCisJCSAqIGFuZCBSSFNDIGlzIGVuYWJsZWQgKi8KIAkJaWYgKCFvaGNpLT5hdXRvc3RvcCkgewogCQkJaWYgKGFueV9jb25uZWN0ZWQgfHwKIAkJCQkJIWRldmljZV9tYXlfd2FrZXVwKCZvaGNpX3RvX2hjZChvaGNpKQogCQkJCQkJLT5zZWxmLnJvb3RfaHViLT5kZXYpKSB7Ci0JCQkJaWYgKHJoc2MpCisJCQkJaWYgKG9oY2lfcmVhZGwob2hjaSwgJm9oY2ktPnJlZ3MtPmludHJlbmFibGUpICYKKwkJCQkJCU9IQ0lfSU5UUl9SSFNDKQogCQkJCQlwb2xsX3JoID0gMDsKIAkJCX0gZWxzZSB7CiAJCQkJb2hjaS0+YXV0b3N0b3AgPSAxOwpAQCAtMzk2LDEzICszOTgsMTIgQEAKIAkJCQlvaGNpLT5hdXRvc3RvcCA9IDA7CiAJCQkJb2hjaS0+bmV4dF9zdGF0ZWNoYW5nZSA9IGppZmZpZXMgKwogCQkJCQkJU1RBVEVDSEFOR0VfREVMQVk7Ci0JCQl9IGVsc2UgaWYgKHJoc2MgJiYgdGltZV9hZnRlcl9lcShqaWZmaWVzLAorCQkJfSBlbHNlIGlmICh0aW1lX2FmdGVyX2VxKGppZmZpZXMsCiAJCQkJCQlvaGNpLT5uZXh0X3N0YXRlY2hhbmdlKQogCQkJCQkmJiAhb2hjaS0+ZWRfcm1fbGlzdAogCQkJCQkmJiAhKG9oY2ktPmhjX2NvbnRyb2wgJgogCQkJCQkJT0hDSV9TQ0hFRF9FTkFCTEVTKSkgewogCQkJCW9oY2lfcmhfc3VzcGVuZChvaGNpLCAxKTsKLQkJCQlwb2xsX3JoID0gMDsKIAkJCX0KIAkJfQogCQlicmVhazsKQEAgLTQxNiwxMiArNDE3LDYgQEAKIAkJCWVsc2UKIAkJCQl1c2JfaGNkX3Jlc3VtZV9yb290X2h1YihvaGNpX3RvX2hjZChvaGNpKSk7CiAJCX0gZWxzZSB7Ci0JCQlpZiAoIXJoc2MgJiYgKG9oY2ktPmF1dG9zdG9wIHx8Ci0JCQkJCW9oY2lfdG9faGNkKG9oY2kpLT5zZWxmLnJvb3RfaHViLT4KLQkJCQkJCWRvX3JlbW90ZV93YWtldXApKQotCQkJCW9oY2lfd3JpdGVsKG9oY2ksIE9IQ0lfSU5UUl9SSFNDLAotCQkJCQkJJm9oY2ktPnJlZ3MtPmludHJlbmFibGUpOwotCiAJCQkvKiBldmVyeXRoaW5nIGlzIGlkbGUsIG5vIG5lZWQgZm9yIHBvbGxpbmcgKi8KIAkJCXBvbGxfcmggPSAwOwogCQl9CkBAIC00NDMsMTYgKzQzOCwxMiBAQAogc3RhdGljIGludCBvaGNpX3Jvb3RfaHViX3N0YXRlX2NoYW5nZXMoc3RydWN0IG9oY2lfaGNkICpvaGNpLCBpbnQgY2hhbmdlZCwKIAkJaW50IGFueV9jb25uZWN0ZWQpCiB7Ci0JLyogSWYgUkhTQyBpcyBlbmFibGVkLCBkb24ndCBwb2xsICovCi0JaWYgKG9oY2lfcmVhZGwob2hjaSwgJm9oY2ktPnJlZ3MtPmludHJlbmFibGUpICYgT0hDSV9JTlRSX1JIU0MpCi0JCXJldHVybiAwOworCWludAlwb2xsX3JoID0gMTsKIAotCS8qIElmIG5vIHN0YXR1cyBjaGFuZ2VzIGFyZSBwZW5kaW5nLCBlbmFibGUgc3RhdHVzLWNoYW5nZSBpbnRlcnJ1cHRzICovCi0JaWYgKCFjaGFuZ2VkKSB7Ci0JCW9oY2lfd3JpdGVsKG9oY2ksIE9IQ0lfSU5UUl9SSFNDLCAmb2hjaS0+cmVncy0+aW50cmVuYWJsZSk7Ci0JCXJldHVybiAwOwotCX0KLQlyZXR1cm4gMTsKKwkvKiBrZWVwIG9uIHBvbGxpbmcgdW50aWwgUkhTQyBpcyBlbmFibGVkICovCisJaWYgKG9oY2lfcmVhZGwob2hjaSwgJm9oY2ktPnJlZ3MtPmludHJlbmFibGUpICYgT0hDSV9JTlRSX1JIU0MpCisJCXBvbGxfcmggPSAwOworCXJldHVybiBwb2xsX3JoOwogfQogCiAjZW5kaWYJLyogQ09ORklHX1BNICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktbGg3YTQwNC5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWxoN2E0MDQuYwppbmRleCA5NmQxNGZhLi4xZWY1ZDQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktbGg3YTQwNC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1saDdhNDA0LmMKQEAgLTgsNyArOCw3IEBACiAgKiBCdXMgR2x1ZSBmb3IgU2hhcnAgTEg3QTQwNAogICoKICAqIFdyaXR0ZW4gYnkgQ2hyaXN0b3BoZXIgSG9vdmVyIDxjaEBocGwuaHAuY29tPgotICogQmFzZWQgb24gZnJhZ21lbnRzIG9mIHByZXZpb3VzIGRyaXZlciBieSBSdXNlbGwgS2luZyBldCBhbC4KKyAqIEJhc2VkIG9uIGZyYWdtZW50cyBvZiBwcmV2aW91cyBkcml2ZXIgYnkgUnVzc2VsbCBLaW5nIGV0IGFsLgogICoKICAqIE1vZGlmaWVkIGZvciBMSDdBNDA0IGZyb20gb2hjaS1zYTExMTEuYwogICogIGJ5IER1cmdlc2ggUGF0dGFtYXR0YSA8cGF0dGFtYXR0YWRAc2hhcnBzZWMuY29tPgpAQCAtMTkzLDYgKzE5Myw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLW9tYXAuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1vbWFwLmMKaW5kZXggNjg1OWZiNS4uYTE5YTRmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLW9tYXAuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktb21hcC5jCkBAIC0xNjksMTMgKzE2OSwxNiBAQAogewogCWNvbnN0IHVuc2lnbmVkCXBvcnQgPSBvaGNpX3RvX2hjZChvaGNpKS0+c2VsZi5vdGdfcG9ydCAtIDE7CiAJdW5zaWduZWQgbG9uZwlmbGFnczsKKwl1MzIgbDsKIAogCW90Z19zdGFydF9obnAob2hjaS0+dHJhbnNjZWl2ZXIpOwogCiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCW9oY2ktPnRyYW5zY2VpdmVyLT5zdGF0ZSA9IE9UR19TVEFURV9BX1NVU1BFTkQ7CiAJd3JpdGVsIChSSF9QU19QU1MsICZvaGNpLT5yZWdzLT5yb290aHViLnBvcnRzdGF0dXMgW3BvcnRdKTsKLQlPVEdfQ1RSTF9SRUcgJj0gfk9UR19BX0JVU1JFUTsKKwlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CisJbCAmPSB+T1RHX0FfQlVTUkVROworCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKQEAgLTQ2Niw2ICs0NjksNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wY2kuYwppbmRleCAzYmYxNzVkLi40Njk2Y2M5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcGNpLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBjaS5jCkBAIC0zMjcsNiArMzI3LDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcG54NDAwOC5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBueDQwMDguYwppbmRleCA2NjRmMDdlLi4yOGI0NThmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcG54NDAwOC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wbng0MDA4LmMKQEAgLTI4MCw2ICsyODAsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPSBvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPSBvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9IG9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0gb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9IG9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wbng4NTUwLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcG54ODU1MC5jCmluZGV4IDI4NDY3ZTIuLjYwNWQ1OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wbng4NTUwLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBueDg1NTAuYwpAQCAtMjAxLDYgKzIwMSw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBwYy1vZi5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBwYy1vZi5jCmluZGV4IDUwZTU1ZGIuLmE2NzI1MjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wcGMtb2YuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHBjLW9mLmMKQEAgLTcyLDYgKzcyLDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHBjLXNvYy5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBwYy1zb2MuYwppbmRleCBjZDMzOThiLi41MjNjMzAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHBjLXNvYy5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wcGMtc29jLmMKQEAgLTE3Miw2ICsxNzIsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wczMuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wczMuYwppbmRleCBiZmRlYjBkMi4uYzE5MzVhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBzMy5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wczMuYwpAQCAtNjgsNiArNjgsNyBAQAogCS5nZXRfZnJhbWVfbnVtYmVyCT0gb2hjaV9nZXRfZnJhbWUsCiAJLmh1Yl9zdGF0dXNfZGF0YQk9IG9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbAkJPSBvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZQkJPSBvaGNpX3Joc2NfZW5hYmxlLAogCS5zdGFydF9wb3J0X3Jlc2V0CT0gb2hjaV9zdGFydF9wb3J0X3Jlc2V0LAogI2lmIGRlZmluZWQoQ09ORklHX1BNKQogCS5idXNfc3VzcGVuZCAJCT0gb2hjaV9idXNfc3VzcGVuZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1weGEyN3guYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1weGEyN3guYwppbmRleCA3MGIwZDRiLi4xMjdiMTU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHhhMjd4LmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXB4YTI3eC5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+IC8qIEZJWE1FOiBmb3IgUFNTUiAqLwogI2luY2x1ZGUgPGFzbS9hcmNoL29oY2kuaD4KIAogI2RlZmluZSBQWEFfVUhDX01BWF9QT1JUTlVNICAgIDMKQEAgLTEwNCw3ICsxMDUsNyBAQAogCVVIQ0hJRSA9IChVSENISUVfVVBSSUUgfCBVSENISUVfUldJRSk7CiAKIAkvKiBDbGVhciBhbnkgT1RHIFBpbiBIb2xkICovCi0JaWYgKFBTU1IgJiBQU1NSX09UR1BIKQorCWlmIChjcHVfaXNfcHhhMjd4KCkgJiYgKFBTU1IgJiBQU1NSX09UR1BIKSkKIAkJUFNTUiB8PSBQU1NSX09UR1BIOwogCiAJcmV0dXJuIDA7CkBAIC0yOTgsNiArMjk5LDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZiAgQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXEuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1xLmMKaW5kZXggOWM5ZjNiNS4uOWI1NDc0MCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXEuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcS5jCkBAIC05NTIsNiArOTUyLDcgQEAKIAkJCXN0cnVjdCB1cmIJKnVyYjsKIAkJCXVyYl9wcml2X3QJKnVyYl9wcml2OwogCQkJX19oYzMyCQlzYXZlYml0czsKKwkJCXUzMgkJdGRJTkZPOwogCiAJCQl0ZCA9IGxpc3RfZW50cnkgKGVudHJ5LCBzdHJ1Y3QgdGQsIHRkX2xpc3QpOwogCQkJdXJiID0gdGQtPnVyYjsKQEAgLTk2Niw2ICs5NjcsMTcgQEAKIAkJCXNhdmViaXRzID0gKnByZXYgJiB+Y3B1X3RvX2hjMzIgKG9oY2ksIFREX01BU0spOwogCQkJKnByZXYgPSB0ZC0+aHdOZXh0VEQgfCBzYXZlYml0czsKIAorCQkJLyogSWYgdGhpcyB3YXMgdW5saW5rZWQsIHRoZSBURCBtYXkgbm90IGhhdmUgYmVlbgorCQkJICogcmV0aXJlZCAuLi4gc28gbWFudWFsbHkgc2F2ZSB0aGUgZGF0YSB0b2dnbGUuCisJCQkgKiBUaGUgY29udHJvbGxlciBpZ25vcmVzIHRoZSB2YWx1ZSB3ZSBzYXZlIGZvcgorCQkJICogY29udHJvbCBhbmQgSVNPIGVuZHBvaW50cy4KKwkJCSAqLworCQkJdGRJTkZPID0gaGMzMl90b19jcHVwKG9oY2ksICZ0ZC0+aHdJTkZPKTsKKwkJCWlmICgodGRJTkZPICYgVERfVCkgPT0gVERfVF9EQVRBMCkKKwkJCQllZC0+aHdIZWFkUCAmPSB+Y3B1X3RvX2hjMzIob2hjaSwgRURfQyk7CisJCQllbHNlIGlmICgodGRJTkZPICYgVERfVCkgPT0gVERfVF9EQVRBMSkKKwkJCQllZC0+aHdIZWFkUCB8PSBjcHVfdG9faGMzMihvaGNpLCBFRF9DKTsKKwogCQkJLyogSEMgbWF5IGhhdmUgcGFydGx5IHByb2Nlc3NlZCB0aGlzIFREICovCiAJCQl0ZF9kb25lIChvaGNpLCB1cmIsIHRkKTsKIAkJCXVyYl9wcml2LT50ZF9jbnQrKzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zM2MyNDEwLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktczNjMjQxMC5jCmluZGV4IGE3M2QyZmYuLjNjN2E3NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zM2MyNDEwLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXMzYzI0MTAuYwpAQCAtOCw3ICs4LDcgQEAKICAqIFVTQiBCdXMgR2x1ZSBmb3IgU2Ftc3VuZyBTM0MyNDEwCiAgKgogICogV3JpdHRlbiBieSBDaHJpc3RvcGhlciBIb292ZXIgPGNoQGhwbC5ocC5jb20+Ci0gKiBCYXNlZCBvbiBmcmFnbWVudHMgb2YgcHJldmlvdXMgZHJpdmVyIGJ5IFJ1c2VsbCBLaW5nIGV0IGFsLgorICogQmFzZWQgb24gZnJhZ21lbnRzIG9mIHByZXZpb3VzIGRyaXZlciBieSBSdXNzZWxsIEtpbmcgZXQgYWwuCiAgKgogICogTW9kaWZpZWQgZm9yIFMzQzI0MTAgZnJvbSBvaGNpLXNhMTExMS5jLCBvaGNpLW9tYXAuYyBhbmQgb2hjaS1saDdhNDAuYwogICoJYnkgQmVuIERvb2tzLCA8YmVuQHNpbXRlYy5jby51az4KQEAgLTQ2Niw2ICs0NjYsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX3MzYzI0MTBfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX3MzYzI0MTBfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2ExMTExLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2ExMTExLmMKaW5kZXggOTk0MzhjNi4uMmU5ZGNlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNhMTExMS5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zYTExMTEuYwpAQCAtOCw3ICs4LDcgQEAKICAqIFNBMTExMSBCdXMgR2x1ZQogICoKICAqIFdyaXR0ZW4gYnkgQ2hyaXN0b3BoZXIgSG9vdmVyIDxjaEBocGwuaHAuY29tPgotICogQmFzZWQgb24gZnJhZ21lbnRzIG9mIHByZXZpb3VzIGRyaXZlciBieSBSdXNlbGwgS2luZyBldCBhbC4KKyAqIEJhc2VkIG9uIGZyYWdtZW50cyBvZiBwcmV2aW91cyBkcml2ZXIgYnkgUnVzc2VsbCBLaW5nIGV0IGFsLgogICoKICAqIFRoaXMgZmlsZSBpcyBsaWNlbmNlZCB1bmRlciB0aGUgR1BMLgogICovCkBAIC0yMzEsNiArMjMxLDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2guYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zaC5jCmluZGV4IDYwZjAzY2MuLmU3ZWU2MDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zaC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zaC5jCkBAIC02OCw2ICs2OCw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNtNTAxLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc201MDEuYwppbmRleCBlODk5YTc3Li5lNjEwNjk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc201MDEuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc201MDEuYwpAQCAtNzUsNiArNzUsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zc2IuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zc2IuYwppbmRleCBjNDI2NWNhLi43Mjc1MTg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc3NiLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNzYi5jCkBAIC04MSw2ICs4MSw3IEBACiAKIAkuaHViX3N0YXR1c19kYXRhCT0gb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sCQk9IG9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlCQk9IG9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kCQk9IG9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUJCT0gb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC91MTMyLWhjZC5jIGIvZHJpdmVycy91c2IvaG9zdC91MTMyLWhjZC5jCmluZGV4IGYyOTMwNzQuLjliNjMyM2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvdTEzMi1oY2QuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L3UxMzItaGNkLmMKQEAgLTI5MzQsNiArMjkzNCwxNiBAQAogCQlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgdTEzMl9odWJfaXJxX2VuYWJsZShzdHJ1Y3QgdXNiX2hjZCAqaGNkKQoreworCXN0cnVjdCB1MTMyICp1MTMyID0gaGNkX3RvX3UxMzIoaGNkKTsKKwlpZiAodTEzMi0+Z29pbmcgPiAxKSB7CisJCWRldl9lcnIoJnUxMzItPnBsYXRmb3JtX2Rldi0+ZGV2LCAiZGV2aWNlIGhhcyBiZWVuIHJlbW92ZWQgJWRcbiIKKwkJCSwgdTEzMi0+Z29pbmcpOworCX0gZWxzZSBpZiAodTEzMi0+Z29pbmcgPiAwKQorCQlkZXZfZXJyKCZ1MTMyLT5wbGF0Zm9ybV9kZXYtPmRldiwgImRldmljZSBpcyBiZWluZyByZW1vdmVkXG4iKTsKK30KKwogCiAjaWZkZWYgQ09ORklHX1BNCiBzdGF0aWMgaW50IHUxMzJfYnVzX3N1c3BlbmQoc3RydWN0IHVzYl9oY2QgKmhjZCkKQEAgLTI5ODUsNiArMjk5NSw3IEBACiAJLmJ1c19zdXNwZW5kID0gdTEzMl9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9IHUxMzJfYnVzX3Jlc3VtZSwKIAkuc3RhcnRfcG9ydF9yZXNldCA9IHUxMzJfc3RhcnRfcG9ydF9yZXNldCwKKwkuaHViX2lycV9lbmFibGUgPSB1MTMyX2h1Yl9pcnFfZW5hYmxlLAogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL21pc2MvZW1pMjYuYyBiL2RyaXZlcnMvdXNiL21pc2MvZW1pMjYuYwppbmRleCA0YjlkYzgxLi40Yjk5NGEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9taXNjL2VtaTI2LmMKKysrIGIvZHJpdmVycy91c2IvbWlzYy9lbWkyNi5jCkBAIC0xNiwxOCArMTYsOCBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC91c2IuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotCi0jZGVmaW5lIE1BWF9JTlRFTF9IRVhfUkVDT1JEX0xFTkdUSCAxNgotdHlwZWRlZiBzdHJ1Y3QgX0lOVEVMX0hFWF9SRUNPUkQKLXsKLQlfX3UzMglsZW5ndGg7Ci0JX191MzIJYWRkcmVzczsKLQlfX3UzMgl0eXBlOwotCV9fdTgJZGF0YVtNQVhfSU5URUxfSEVYX1JFQ09SRF9MRU5HVEhdOwotfSBJTlRFTF9IRVhfUkVDT1JELCAqUElOVEVMX0hFWF9SRUNPUkQ7Ci0KLS8qIGluY2x1ZGUgZmlybXdhcmUgKHZhcmlhYmxlcykgKi8KLSNpbmNsdWRlICJlbWkyNl9mdy5oIgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaWhleC5oPgogCiAjZGVmaW5lIEVNSTI2X1ZFTkRPUl9JRCAJCTB4MDg2YSAgLyogRW1hZ2ljIFNvZnQtdW5kIEhhcmR3YXJlIEdtQkggKi8KICNkZWZpbmUgRU1JMjZfUFJPRFVDVF9JRAkJMHgwMTAwCS8qIEVNSSAyfDYgd2l0aG91dCBmaXJtd2FyZSAqLwpAQCAtNDAsNyArMzAsOSBAQAogI2RlZmluZSBDUFVDU19SRUcJCTB4N0Y5MiAgLyogRVotVVNCIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3Rlci4gIEJpdCAwIGNvbnRyb2xzIDgwNTEgcmVzZXQgKi8gCiAjZGVmaW5lIElOVEVSTkFMX1JBTShhZGRyZXNzKSAgIChhZGRyZXNzIDw9IE1BWF9JTlRFUk5BTF9BRERSRVNTKQogCi1zdGF0aWMgaW50IGVtaTI2X3dyaXRlbWVtb3J5KCBzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYWRkcmVzcywgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCwgX191OCBiUmVxdWVzdCk7CitzdGF0aWMgaW50IGVtaTI2X3dyaXRlbWVtb3J5KCBzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYWRkcmVzcywKKwkJCSAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgsCisJCQkgICAgICBfX3U4IGJSZXF1ZXN0KTsKIHN0YXRpYyBpbnQgZW1pMjZfc2V0X3Jlc2V0KHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgcmVzZXRfYml0KTsKIHN0YXRpYyBpbnQgZW1pMjZfbG9hZF9maXJtd2FyZSAoc3RydWN0IHVzYl9kZXZpY2UgKmRldik7CiBzdGF0aWMgaW50IGVtaTI2X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpOwpAQCAtNTAsNyArNDIsOSBAQAogCiAKIC8qIHRoYW5rcyB0byBkcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYyBjb2RlICovCi1zdGF0aWMgaW50IGVtaTI2X3dyaXRlbWVtb3J5IChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYWRkcmVzcywgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCwgX191OCByZXF1ZXN0KQorc3RhdGljIGludCBlbWkyNl93cml0ZW1lbW9yeSAoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IGFkZHJlc3MsCisJCQkgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoLAorCQkJICAgICAgX191OCByZXF1ZXN0KQogewogCWludCByZXN1bHQ7CiAJdW5zaWduZWQgY2hhciAqYnVmZmVyID0gIGttZW1kdXAoZGF0YSwgbGVuZ3RoLCBHRlBfS0VSTkVMKTsKQEAgLTgzLDkgKzc3LDEyIEBACiAKIHN0YXRpYyBpbnQgZW1pMjZfbG9hZF9maXJtd2FyZSAoc3RydWN0IHVzYl9kZXZpY2UgKmRldikKIHsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmxvYWRlcl9mdyA9IE5VTEw7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpiaXRzdHJlYW1fZncgPSBOVUxMOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZmlybXdhcmVfZncgPSBOVUxMOworCWNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjOwogCWludCBlcnI7CiAJaW50IGk7Ci0JaW50IHBvcyA9IDA7CS8qIFBvc2l0aW9uIGluIGhleCByZWNvcmQgKi8KIAlfX3UzMiBhZGRyOwkvKiBBZGRyZXNzIHRvIHdyaXRlICovCiAJX191OCAqYnVmOwogCkBAIC05Niw2ICs5MywyMyBAQAogCQlnb3RvIHdyYXBlcnI7CiAJfQogCisJZXJyID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZsb2FkZXJfZncsICJlbWkyNi9sb2FkZXIuZnciLCAmZGV2LT5kZXYpOworCWlmIChlcnIpCisJCWdvdG8gbm9mdzsKKworCWVyciA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmYml0c3RyZWFtX2Z3LCAiZW1pMjYvYml0c3RyZWFtLmZ3IiwKKwkJCQkgICAgJmRldi0+ZGV2KTsKKwlpZiAoZXJyKQorCQlnb3RvIG5vZnc7CisKKwllcnIgPSByZXF1ZXN0X2loZXhfZmlybXdhcmUoJmZpcm13YXJlX2Z3LCAiZW1pMjYvZmlybXdhcmUuZnciLAorCQkJCSAgICAmZGV2LT5kZXYpOworCWlmIChlcnIpIHsKKwlub2Z3OgorCQllcnIoICIlcyAtIHJlcXVlc3RfZmlybXdhcmUoKSBmYWlsZWQiLCBfX2Z1bmNfXyk7CisJCWdvdG8gd3JhcGVycjsKKwl9CisKIAkvKiBBc3NlcnQgcmVzZXQgKHN0b3AgdGhlIENQVSBpbiB0aGUgRU1JKSAqLwogCWVyciA9IGVtaTI2X3NldF9yZXNldChkZXYsMSk7CiAJaWYgKGVyciA8IDApIHsKQEAgLTEwMywxMyArMTE3LDE3IEBACiAJCWdvdG8gd3JhcGVycjsKIAl9CiAKKwlyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopbG9hZGVyX2Z3LT5kYXRhOwogCS8qIDEuIFdlIG5lZWQgdG8gcHV0IHRoZSBsb2FkZXIgZm9yIHRoZSBGUEdBIGludG8gdGhlIEVaLVVTQiAqLwotCWZvciAoaT0wOyBnX0xvYWRlcltpXS50eXBlID09IDA7IGkrKykgewotCQllcnIgPSBlbWkyNl93cml0ZW1lbW9yeShkZXYsIGdfTG9hZGVyW2ldLmFkZHJlc3MsIGdfTG9hZGVyW2ldLmRhdGEsIGdfTG9hZGVyW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfSU5URVJOQUwpOworCXdoaWxlIChyZWMpIHsKKwkJZXJyID0gZW1pMjZfd3JpdGVtZW1vcnkoZGV2LCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCQkJCQlyZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSwKKwkJCQkJQU5DSE9SX0xPQURfSU5URVJOQUwpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWQiLCBfX2Z1bmNfXywgZXJyKTsKIAkJCWdvdG8gd3JhcGVycjsKIAkJfQorCQlyZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYyk7CiAJfQogCiAJLyogRGUtYXNzZXJ0IHJlc2V0IChsZXQgdGhlIENQVSBydW4pICovCkBAIC0xMjMsMTUgKzE0MSwxNiBAQAogCS8qIDIuIFdlIHVwbG9hZCB0aGUgRlBHQSBmaXJtd2FyZSBpbnRvIHRoZSBFTUkKIAkgKiBOb3RlOiBjb2xsZWN0IHVwIHRvIDEwMjMgKHllcyEpIGJ5dGVzIGFuZCBzZW5kIHRoZW0gd2l0aAogCSAqIGEgc2luZ2xlIHJlcXVlc3QuIFRoaXMgaXMgX211Y2hfIGZhc3RlciEgKi8KKwlyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopYml0c3RyZWFtX2Z3LT5kYXRhOwogCWRvIHsKIAkJaSA9IDA7Ci0JCWFkZHIgPSBnX2JpdHN0cmVhbVtwb3NdLmFkZHJlc3M7CisJCWFkZHIgPSBiZTMyX3RvX2NwdShyZWMtPmFkZHIpOwogCiAJCS8qIGludGVsIGhleCByZWNvcmRzIGFyZSB0ZXJtaW5hdGVkIHdpdGggdHlwZSAwIGVsZW1lbnQgKi8KLQkJd2hpbGUgKChnX2JpdHN0cmVhbVtwb3NdLnR5cGUgPT0gMCkgJiYgKGkgKyBnX2JpdHN0cmVhbVtwb3NdLmxlbmd0aCA8IEZXX0xPQURfU0laRSkpIHsKLQkJCW1lbWNweShidWYgKyBpLCBnX2JpdHN0cmVhbVtwb3NdLmRhdGEsIGdfYml0c3RyZWFtW3Bvc10ubGVuZ3RoKTsKLQkJCWkgKz0gZ19iaXRzdHJlYW1bcG9zXS5sZW5ndGg7Ci0JCQlwb3MrKzsKKwkJd2hpbGUgKHJlYyAmJiAoaSArIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSA8IEZXX0xPQURfU0laRSkpIHsKKwkJCW1lbWNweShidWYgKyBpLCByZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CisJCQlpICs9IGJlMTZfdG9fY3B1KHJlYy0+bGVuKTsKKwkJCXJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKTsKIAkJfQogCQllcnIgPSBlbWkyNl93cml0ZW1lbW9yeShkZXYsIGFkZHIsIGJ1ZiwgaSwgQU5DSE9SX0xPQURfRlBHQSk7CiAJCWlmIChlcnIgPCAwKSB7CkBAIC0xNDgsOCArMTY3LDExIEBACiAJfQogCiAJLyogMy4gV2UgbmVlZCB0byBwdXQgdGhlIGxvYWRlciBmb3IgdGhlIGZpcm13YXJlIGludG8gdGhlIEVaLVVTQiAoYWdhaW4uLi4pICovCi0JZm9yIChpPTA7IGdfTG9hZGVyW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWVyciA9IGVtaTI2X3dyaXRlbWVtb3J5KGRldiwgZ19Mb2FkZXJbaV0uYWRkcmVzcywgZ19Mb2FkZXJbaV0uZGF0YSwgZ19Mb2FkZXJbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CisJZm9yIChyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopbG9hZGVyX2Z3LT5kYXRhOworCSAgICAgcmVjOyByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJZXJyID0gZW1pMjZfd3JpdGVtZW1vcnkoZGV2LCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCQkJCQlyZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSwKKwkJCQkJQU5DSE9SX0xPQURfSU5URVJOQUwpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWQiLCBfX2Z1bmNfXywgZXJyKTsKIAkJCWdvdG8gd3JhcGVycjsKQEAgLTE2NSw5ICsxODcsMTMgQEAKIAl9CiAKIAkvKiA0LiBXZSBwdXQgdGhlIHBhcnQgb2YgdGhlIGZpcm13YXJlIHRoYXQgbGllcyBpbiB0aGUgZXh0ZXJuYWwgUkFNIGludG8gdGhlIEVaLVVTQiAqLwotCWZvciAoaT0wOyBnX0Zpcm13YXJlW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWlmICghSU5URVJOQUxfUkFNKGdfRmlybXdhcmVbaV0uYWRkcmVzcykpIHsKLQkJCWVyciA9IGVtaTI2X3dyaXRlbWVtb3J5KGRldiwgZ19GaXJtd2FyZVtpXS5hZGRyZXNzLCBnX0Zpcm13YXJlW2ldLmRhdGEsIGdfRmlybXdhcmVbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9FWFRFUk5BTCk7CisKKwlmb3IgKHJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilmaXJtd2FyZV9mdy0+ZGF0YTsKKwkgICAgIHJlYzsgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCWlmICghSU5URVJOQUxfUkFNKGJlMzJfdG9fY3B1KHJlYy0+YWRkcikpKSB7CisJCQllcnIgPSBlbWkyNl93cml0ZW1lbW9yeShkZXYsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCQkJCQlyZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSwKKwkJCQkJCUFOQ0hPUl9MT0FEX0VYVEVSTkFMKTsKIAkJCWlmIChlcnIgPCAwKSB7CiAJCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWQiLCBfX2Z1bmNfXywgZXJyKTsKIAkJCQlnb3RvIHdyYXBlcnI7CkBAIC0xODIsOSArMjA4LDEyIEBACiAJCWdvdG8gd3JhcGVycjsKIAl9CiAKLQlmb3IgKGk9MDsgZ19GaXJtd2FyZVtpXS50eXBlID09IDA7IGkrKykgewotCQlpZiAoSU5URVJOQUxfUkFNKGdfRmlybXdhcmVbaV0uYWRkcmVzcykpIHsKLQkJCWVyciA9IGVtaTI2X3dyaXRlbWVtb3J5KGRldiwgZ19GaXJtd2FyZVtpXS5hZGRyZXNzLCBnX0Zpcm13YXJlW2ldLmRhdGEsIGdfRmlybXdhcmVbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CisJZm9yIChyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZmlybXdhcmVfZnctPmRhdGE7CisJICAgICByZWM7IHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgeworCQlpZiAoSU5URVJOQUxfUkFNKGJlMzJfdG9fY3B1KHJlYy0+YWRkcikpKSB7CisJCQllcnIgPSBlbWkyNl93cml0ZW1lbW9yeShkZXYsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCQkJCQlyZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSwKKwkJCQkJCUFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKIAkJCWlmIChlcnIgPCAwKSB7CiAJCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWQiLCBfX2Z1bmNfXywgZXJyKTsKIAkJCQlnb3RvIHdyYXBlcnI7CkBAIC0yMDUsNiArMjM0LDEwIEBACiAJZXJyID0gMTsKIAogd3JhcGVycjoKKwlyZWxlYXNlX2Zpcm13YXJlKGxvYWRlcl9mdyk7CisJcmVsZWFzZV9maXJtd2FyZShiaXRzdHJlYW1fZncpOworCXJlbGVhc2VfZmlybXdhcmUoZmlybXdhcmVfZncpOworCiAJa2ZyZWUoYnVmKTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtMjU3LDUgKzI5MCw4IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oIkVtYWdpYyBFTUkgMnw2IGZpcm13YXJlIGxvYWRlci4iKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIAorTU9EVUxFX0ZJUk1XQVJFKCJlbWkyNi9sb2FkZXIuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgiZW1pMjYvYml0c3RyZWFtLmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImVtaTI2L2Zpcm13YXJlLmZ3Iik7CiAvKiB2aTphaTpzeW50YXg9Yzpzdz04OnRzPTg6dHc9ODAKICAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9lbWkyNl9mdy5oIGIvZHJpdmVycy91c2IvbWlzYy9lbWkyNl9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDdmZjEwLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL21pc2MvZW1pMjZfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3NzkgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSB0aHJlZSBkaWZmZXJlbnQgZmlsZXMsIHByb3ZpZGVkIGJ5IEVtYWdpYy4KLSAqLwotLyogZ2VuZXJhdGVkIEZyaSBNYXIgOCAxNToxMTozNSBFRVQgMjAwMiAqLwotCi0vKgotICogVGhpcyBmaXJtd2FyZSBpcyBmb3IgdGhlIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZQotICoKLSAqIFRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIEVtYWdpYwotICogYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkCi0gKiBvciBwdWJsaWMgYWNjZXNzIHRvIHRoaXMgZmlybXdhcmUgd2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQgb2YgRW1hZ2ljLAotICogYW5kIHdoaWNoIG1heSBub3QgYmUgcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0bwotICogYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgRW1hZ2ljJ3Mgd3JpdHRlbiBjb25zZW50LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLSAqIGltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLSAqIGluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotICoKLSAqIFRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoIHRoZQotICogRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlLiBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZgotICogYW55IGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LAotICogcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4KLSAqLwotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZ19iaXRzdHJlYW1bXT17Ci17ICAxNiwgMHg4MDEwLCAwLCB7MHhmZiwweGZmLDB4ZmYsMHhmZiwweGFhLDB4OTksMHg1NSwweDY2LDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwNyB9IH0sCi17ICAxNiwgMHg4MDIwLCAwLCB7MHgzMCwweDAxLDB4NjAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDBiLDB4MzAsMHgwMSwweDIwLDB4MDEsMHgwMCwweDgwLDB4M2YsMHgyZCB9IH0sCi17ICAxNiwgMHg4MDMwLCAwLCB7MHgzMCwweDAwLDB4YzAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSB9IH0sCi17ICAxNiwgMHg4MDQwLCAwLCB7MHgzMCwweDAwLDB4MjAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMSB9IH0sCi17ICAxNiwgMHg4MDUwLCAwLCB7MHgzMCwweDAwLDB4NDAsMHgwMCwweDUwLDB4MDAsMHgzZSwweDA0LDB4MDgsMHgxMiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNCB9IH0sCi17ICAxNiwgMHg4MDgwLCAwLCB7MHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg4NCB9IH0sCi17ICAxNiwgMHg4MGIwLCAwLCB7MHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGUwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTEwLCAwLCB7MHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCB9IH0sCi17ICAxNiwgMHg4MTQwLCAwLCB7MHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTcwLCAwLCB7MHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4NCB9IH0sCi17ICAxNiwgMHg4MWEwLCAwLCB7MHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZjcsMHgxMCwweDAxLDB4MTQsMHgwMCwweDI1LDB4MDAsMHgwNSB9IH0sCi17ICAxNiwgMHg4MWIwLCAwLCB7MHg0MCwweDAxLDB4NTAsMHgwMCwweDk0LDB4MDAsMHgxNSwweDAwLDB4MDcsMHg0MCwweDAxLDB4ZDAsMHgwMCwweDk0LDB4MDAsMHgyNSB9IH0sCi17ICAxNiwgMHg4MWMwLCAwLCB7MHg4MCwweDAxLDB4NjAsMHgwMiwweGQ4LDB4MDAsMHhmNiwweDAwLDB4MmYsMHg4MCwweDAyLDB4ZTAsMHgwNCwweGQ4LDB4MzcsMHg0NCB9IH0sCi17ICAxNiwgMHg4MWQwLCAwLCB7MHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGYyLDB4MDAsMHhjYywweDkwLDB4MzksMHgyMCB9IH0sCi17ICAxNiwgMHg4MWUwLCAwLCB7MHgwZCwweDk4LDB4MDMsMHhkMiwweDAwLDB4ZTcsMHg4MCwweDM3LDB4MDQsMHgwZSwweGYxLDB4ODMsMHg3ZSwweDAwLDB4ZGYsMHg5MCB9IH0sCi17ICAxNiwgMHg4MWYwLCAwLCB7MHgzMSwweGU0LDB4OGYsMHg3OSwweDAzLDB4N2MsMHgyMCwweGRmLDB4MjIsMHgzMywweGMwLDB4MGMsMHhmMCwweDIyLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweDYyLDB4MDAsMHg4MCwweDI0LDB4MjIsMHgyMCB9IH0sCi17ICAxNiwgMHg4MjEwLCAwLCB7MHgwOCwweDk4LDB4MTIsMHhlMiwweDAwLDB4OGIsMHg4MSwweDIwLDB4OTQsMHgwOCwweDc0LDB4MDIsMHgyZSwweDAwLDB4OGEsMHgwMSB9IH0sCi17ICAxNiwgMHg4MjIwLCAwLCB7MHgyMiwweGM4LDB4MDgsMHg5MiwweDAyLDB4M2QsMHg4MCwweDhiLDB4NjAsMHgyMiwweDgwLDB4MDgsMHhiMCwweDAyLDB4MjAsMHgwNCB9IH0sCi17ICAxNiwgMHg4MjMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM4LDB4MDAsMHhhMCwweDAwLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjQwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHhjMCwweDAwLDB4YTEsMHgwMCwweDI0LDB4MDksMHg0YSwweDMyLDB4MDIsMHg0OCwweDAwLDB4YjEsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjUwLCAwLCB7MHg2MiwweGMwLDB4MDksMHhhMCwweDQ2LDB4Y2MsMHgyNCwweDkzLDB4NDksMHgyYSwweDgwLDB4NDgsMHgzMCwweDIyLDB4NjIsMHgwMSB9IH0sCi17ICAxNiwgMHg4MjYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGE4LDB4MTIsMHhhOCwweDAwLDB4MjIsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjcwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHhlMCwweDAwLDB4ODksMHg4MCwweDIyLDB4NDQsMHgwOCwweGIwLDB4MTIsMHhhOCwweDAwLDB4YTksMHg0MCB9IH0sCi17ICAxNiwgMHg4MjgwLCAwLCB7MHgyMiwweGMwLDB4MDgsMHg5MCwweDgyLDB4YWMsMHgwMCwweDliLDB4MDQsMHgyYSwweGM0LDB4MDgsMHhiMCwweDAyLDB4NzAsMHgwNCB9IH0sCi17ICAxNiwgMHg4MjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNCwweDg0LDB4MDAsMHhlOSwweDgwLDB4YjIsMHg2NCB9IH0sCi17ICAxNiwgMHg4MmEwLCAwLCB7MHg0ZCwweGEwLDB4MDMsMHhlYSwweDIwLDB4ZTksMHhjMCwweDM2LDB4NDAsMHgwZSwweGIwLDB4MDMsMHg0NCwweDAwLDB4ZmIsMHg5MCB9IH0sCi17ICAxNiwgMHg4MmIwLCAwLCB7MHhiMiwweDg4LDB4MGQsMHhiYywweDAzLDB4ZWMsMHgwOCwweDViLDB4MDAsMHgzOCwweDYwLDB4MmMsMHhiMCwweDYzLDB4NDAsMHgwNCB9IH0sCi17ICAxNiwgMHg4MmMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI0LDB4MjYsMHhkZCwweDkwLDB4MzcsMHg0MCB9IH0sCi17ICAxNiwgMHg4MmQwLCAwLCB7MHg0ZiwweGUwLDB4MTMsMHhmMiwweDgwLDB4ZmQsMHgwMCwweDNkLDB4YTAsMHgwZCwweDcwLDB4MDMsMHg3NSwweDAwLDB4NWUsMHgwMCB9IH0sCi17ICAxNiwgMHg4MmUwLCAwLCB7MHgzZiwweGE0LDB4MGQsMHhmOSwweDAzLDB4NWMsMHgxMCwweGViLDB4MDAsMHgzNywweDIwLDB4MGYsMHgzMCwweDAzLDB4YjgsMHgwMCB9IH0sCi17ICAxNiwgMHg4MmYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhlOSwweDgwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHg4MzAwLCAwLCB7MHgwYywweGExLDB4ODMsMHhlOCwweDAwLDB4ZTksMHgwMCwweDMyLDB4NDIsMHgwZSwweGIwLDB4MDMsMHhhYywweDQ4LDB4ZTksMHgwMCB9IH0sCi17ICAxNiwgMHg4MzEwLCAwLCB7MHgzYSwweDgwLDB4MGUsMHhhNCwweDAzLDB4ZWMsMHgwMCwweGViLDB4MDAsMHhiMiwweDAzLDB4MGUsMHhiMCwweDBiLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHg4MzIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJlLDB4ODAsMHg4OSwweGQxLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHg4MzMwLCAwLCB7MHgwOCwweGEwLDB4MDIsMHhjMCwweDAwLDB4ODEsMHg4MCwweDIyLDB4NTgsMHgwOCwweGY1LDB4MDIsMHgyZiwweDQwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzQwLCAwLCB7MHgyMCwweGMwLDB4MDgsMHgzMCwweDQzLDB4N2MsMHgwMCwweDg3LDB4MDAsMHgyMiwweDQwLDB4MDgsMHhmMCwweDAyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQyLDB4MDEsMHg5YSwweDQ0LDB4MjgsMHhhMiB9IH0sCi17ICAxNiwgMHg4MzYwLCAwLCB7MHgwOCwweDE4LDB4MDIsMHhjMCwweDgwLDB4YTEsMHg4MCwweGEwLDB4MDAsMHgwOCwweDMwLDB4MDIsMHg4ZSwweDAwLDB4YWIsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzcwLCAwLCB7MHgyYywweDQwLDB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyMCwweDQ0LDB4MGEsMHgzMCwweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgwMSwweDMyLDB4MDAsMHg5NiwweDgyLDB4MmIsMHhhMiB9IH0sCi17ICAxNiwgMHg4MzkwLCAwLCB7MHg4OCwweDVhLDB4MDIsMHhmMiwweDAwLDB4MDUsMHg4MCwweDI5LDB4YTAsMHgwOCwweDc4LDB4NDIsMHhiZSwweDAwLDB4OGUsMHg4NCB9IH0sCi17ICAxNiwgMHg4M2EwLCAwLCB7MHgyZiwweDYxLDB4MGEsMHhkOCwweDAyLDB4NGUsMHgxMCwweGE3LDB4ODAsMHgyMCwweDI4LDB4MDgsMHg3OCwweDAyLDB4MTgsMHgwMCB9IH0sCi17ICAxNiwgMHg4M2IwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA4LDB4MDAsMHhmMiwweDI0LDB4MzgsMHg4MCB9IH0sCi17ICAxNiwgMHg4M2MwLCAwLCB7MHgyYywweDFhLDB4MDMsMHhjNCwweDAwLDB4ZTAsMHg1OCwweGEwLDB4ODAsMHgyZSwweDMwLDB4MDMsMHg4OCwweDQxLDB4ZTMsMHgwMiB9IH0sCi17ICAxNiwgMHg4M2QwLCAwLCB7MHgzYywweDQwLDB4MDYsMHgyMCwweDAzLDB4OGMsMHgwMCwweGUzLDB4MDAsMHgxMCwweDAwLDB4MGUsMHgzMSwweDQzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHg4M2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweDk4LDB4MDAsMHhlZSwweDAxLDB4MzcsMHg4NCB9IH0sCi17ICAxNiwgMHg4M2YwLCAwLCB7MHg5ZiwweGQ5LDB4MDMsMHhmMCwweDQ4LDB4ZmQsMHgxMCwweDM3LDB4YzAsMHgwNywweGIwLDB4MDMsMHg1YywweDAwLDB4ZjYsMHgxMCB9IH0sCi17ICAxNiwgMHg4NDAwLCAwLCB7MHgzMywweGMwLDB4MGQsMHhlMSwweDAzLDB4ZWQsMHgyMCwweGRmLDB4MTAsMHgzZiwweDQ4LDB4MGYsMHhmMCwweDIzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHg4NDEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU0LDB4MDIsMHhjYiwweDgwLDB4MzAsMHhjMCB9IH0sCi17ICAxNiwgMHg4NDIwLCAwLCB7MHgwYywweGEwLDB4MDMsMHhlMiwweDAyLDB4YzksMHgwMCwweDNhLDB4NDAsMHgwZCwweGI2LDB4MDMsMHg2NCwweDAwLDB4ZWIsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDMwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZWQsMHgwMCwweGZiLDB4MDEsMHgzZSwweGUwLDB4MGMsMHhiMCwweDAyLDB4ZWEsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDk0LDB4MDAsMHg4NywweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHg4NDUwLCAwLCB7MHgyOCwweDYwLDB4MDIsMHhkMCwweDAwLDB4ODUsMHgwMCwweDJkLDB4ODAsMHg0OCwweGYwLDB4ODIsMHgxYywweDAwLDB4YjcsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDYwLCAwLCB7MHgyZCwweDAwLDB4MGIsMHg1MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4YTAsMHgyZiwweDgwLDB4MjgsMHg3YSwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHg4NDcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzEsMHgwMCwweGJlLDB4MDAsMHg4NywweDgwLDB4MjEsMHhlMCB9IH0sCi17ICAxNiwgMHg4NDgwLCAwLCB7MHgyOCwweDY4LDB4MDIsMHhkNywweDAwLDB4ODQsMHg4MCwweDJkLDB4ZTAsMHg0OSwweDc5LDB4MDYsMHg1MywweDA5LDB4YjUsMHg4MCB9IH0sCi17ICAxNiwgMHg4NDkwLCAwLCB7MHgyZCwweGUyLDB4MGIsMHg3OCwweDAyLDB4ZGUsMHg4MCwweGI3LDB4OTAsMHgyZCwweGIwLDB4MDgsMHg3OSwweDAyLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NGEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MTAsMHg4MywweDAxLDB4MjgsMHhjOCB9IH0sCi17ICAxNiwgMHg4NGIwLCAwLCB7MHgwOCwweDIwLDB4MDIsMHhjMiwweDA2LDB4ODEsMHgwMCwweDJjLDB4YzgsMHg4OCwweDMwLDB4NjIsMHgwZSwweDIxLDB4YjMsMHhhMCB9IH0sCi17ICAxNiwgMHg4NGMwLCAwLCB7MHgyYywweGMxLDB4MGIsMHhiNiwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYywweGUwLDB4MDgsMHgzMCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHg4NGQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhjYSwweDQwLDB4YjAsMHg4MCB9IH0sCi17ICAxNiwgMHg4NGUwLCAwLCB7MHgwYywweDJjLDB4MDIsMHhmOCwweDAwLDB4YzYsMHgyMCwweDNmLDB4OTAsMHgwZCwweGEwLDB4MDMsMHg3YiwweDAxLDB4ZWUsMHhlMCB9IH0sCi17ICAxNiwgMHg4NGYwLCAwLCB7MHgzZiwweGI0LDB4MGYsMHhlYywweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzZiwweGEwLDB4MGMsMHhhMCwweDAzLDB4ZmEsMHgwNCB9IH0sCi17ICAxNiwgMHg4NTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUzLDB4MDAsMHhmOCwweDA5LDB4MjYsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTEwLCAwLCB7MHgwZiwweGMxLDB4ODMsMHhlMCwweDEwLDB4ZjgsMHg0MCwweDNjLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAxLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTIwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg4MSwweDAzLDB4ZTAsMHgwNCwweGY4LDB4MDAsMHgzZSwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDIsMHhjOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHg4NTQwLCAwLCB7MHg0ZiwweDkwLDB4NjMsMHgyNiwweDg0LDB4MzksMHgwMiwweGIyLDB4NDAsMHgwYywweDkxLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg4NTUwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4MjQsMHgwMCwweGYxLDB4MDAsMHgzYSwweDQ0LDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHg4NTYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDQ1LDB4MDAsMHg4OSwweDQwLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHg4NTcwLCAwLCB7MHgwOCwweDkyLDB4MGEsMHgyNCwweDAwLDB4YjksMHgzMSwweDIyLDB4NjAsMHg4OCwweDk0LDB4OGEsMHgyNCwweDIwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHg4NTgwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDY4LDB4MGIsMHg5MCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4YTAsMHg4ZCwweDg0LDB4MmYsMHg0MCB9IH0sCi17ICAxNiwgMHg4NWEwLCAwLCB7MHgwYiwweGQxLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NGEsMHgwOCwweDEwLDB4MDIsMHgyYywweDQwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHg4NWIwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDE0LDB4MDAsMHg4NSwweDgwLDB4MmQsMHg0MCB9IH0sCi17ICAxNiwgMHg4NWQwLCAwLCB7MHgwOCwweDUwLDB4MDIsMHgwNCwweDBjLDB4YjksMHgwMCwweGEwLDB4NTAsMHgwOCwweDE0LDB4MjIsMHgwNCwweDAwLDB4YjEsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWUwLCAwLCB7MHgyYywweDQwLDB4MGIsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIxLDB4MjgsMHgyMCwweDRhLDB4MGIsMHgxMywweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg4NWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjMCwweDUwLDB4M2UsMHg4MCB9IH0sCi17ICAxNiwgMHg4NjAwLCAwLCB7MHgwZiwweGMwLDB4NDMsMHgyMCwweDAwLDB4ZjgsMHgwMCwweDMwLDB4MDAsMHgyYywweDgwLDB4MjMsMHgyMCwweDAwLDB4ZjgsMHg1MSB9IH0sCi17ICAxNiwgMHg4NjEwLCAwLCB7MHgzZSwweDE0LDB4OGYsMHg4NSwweDBiLDB4MjEsMHg0MCwweGY4LDB4NzAsMHgzYSwweDA4LDB4MGYsMHg4NCwweDgzLDB4ZWUsMHgwMyB9IH0sCi17ICAxNiwgMHg4NjIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGM0LDB4MDAsMHhmOSwweDA0LDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHg4NjMwLCAwLCB7MHgwZiwweDkwLDB4MjMsMHhkNCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4NTAsMHgwZiwweDk0LDB4MDMsMHhmNCwweDA0LDB4ZmQsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjQwLCAwLCB7MHgzZiwweDQxLDB4OGYsMHhkMCwweDQzLDB4ZTUsMHgwYywweGY5LDB4MDIsMHgzZiwweDRhLDB4MGYsMHg5MiwweDAzLDB4ZTYsMHgwMiB9IH0sCi17ICAxNiwgMHg4NjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGQ0LDB4MDEsMHhmZCwweDAwLDB4M2QsMHg0MCB9IH0sCi17ICAxNiwgMHg4NjYwLCAwLCB7MHgwYywweGQwLDB4MTMsMHhmNCwweDAwLDB4ZDUsMHgwMCwweDMzLDB4NmEsMHgxYywweGRjLDB4ODMsMHgzNCwweDAwLDB4ZDEsMHgwNCB9IH0sCi17ICAxNiwgMHg4NjcwLCAwLCB7MHgzZSwweDUwLDB4MGMsMHg5MSwweDAzLDB4ZTYsMHhjMCwweGRkLDB4YjAsMHgzMywweDZhLDB4MmMsMHg5YywweDgzLDB4ZTYsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUwLDB4MDksMHhmOCwweDgwLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjkwLCAwLCB7MHg4OCwweDgwLDB4MDAsMHhlOCwweDAwLDB4YmEsMHgwMCwweDIyLDB4YjAsMHgwOCwweDhlLDB4MDIsMHgyOCwweDAwLDB4ODgsMHhhOCB9IH0sCi17ICAxNiwgMHg4NmEwLCAwLCB7MHgyNiwweDI4LDB4MDgsMHg4YSwweDIyLDB4ZTIsMHgwMCwweDg4LDB4ZTQsMHgyMiwweDMwLDB4MDgsMHg4YywweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHg4NmIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDI4LDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHg4NmMwLCAwLCB7MHgwOCwweDEwLDB4MDIsMHhjNCwweDAwLDB4OTksMHgwMCwweDIwLDB4NDIsMHg0OCwweDEwLDB4MDIsMHg2NCwweDAxLDB4OTEsMHg4MCB9IH0sCi17ICAxNiwgMHg4NmQwLCAwLCB7MHgyYywweDQ4LDB4MDgsMHgxMCwweDAyLDB4YzQsMHhjMCwweDgxLDB4NDAsMHgyMCwweDRhLDB4MDgsMHgxMiwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg4NmUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE0LDB4OTQsMHhhOSwweDAyLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHg4NmYwLCAwLCB7MHgwYSwweDkwLDB4MDIsMHg2NCwweDAwLDB4YjksMHgwMCwweDgyLDB4NjAsMHgwOCwweDkwLDB4MDIsMHg2NiwweDAwLDB4ODksMHgxMCB9IH0sCi17ICAxNiwgMHg4NzAwLCAwLCB7MHgyNCwweDYyLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDIsMHgyMiwweDQwLDB4MTgsMHg5MCwweDAyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHg4NzEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU2LDB4MDAsMHhiOSwweDA0LDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHg4NzIwLCAwLCB7MHgwYywweDkwLDB4MTMsMHhlNCwweDAwLDB4ZDEsMHhjMCwweDEyLDB4NTAsMHgyOCwweDkwLDB4MDMsMHg0NCwweDAwLDB4ZDksMHgwMCB9IH0sCi17ICAxNiwgMHg4NzMwLCAwLCB7MHgzZSwweDQwLDB4MjgsMHg5MiwweDAzLDB4ZTQsMHgwMiwweGQ5LDB4MDAsMHgzMiwweDQyLDB4OGMsMHg5MCwweDEyLDB4ZTgsMHgwNCB9IH0sCi17ICAxNiwgMHg4NzQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE2LDB4MjAsMHhmOSwweDAwLDB4M2UsMHg0MSB9IH0sCi17ICAxNiwgMHg4NzUwLCAwLCB7MHgyZCwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgyMCwweDNlLDB4NDAsMHg0ZiwweDkwLDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg4NzYwLCAwLCB7MHgzNiwweDQwLDB4OGYsMHg5MiwweDA3LDB4ZTQsMHgwMCwweGYxLDB4MDAsMHhiZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgyMCB9IH0sCi17ICAxNiwgMHg4NzgwLCAwLCB7MHgwYywweDgwLDB4MDMsMHhlMCwweDQwLDB4ZjgsMHgwMCwweDM2LDB4MTIsMHgyYywweDAwLDB4MDMsMHhlMCwweGMwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzkwLCAwLCB7MHgzMiwweDEwLDB4MGQsMHg4NCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDIsMHgzZSwweDA4LDB4MGYsMHg4MCwweDAwLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHg4N2EwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDNhLDB4OTAsMHg4ZSwweDAwLDB4MmQsMHhhMCB9IH0sCi17ICAxNiwgMHg4N2IwLCAwLCB7MHg4MCwweGU4LDB4MDIsMHhmYSwweDAwLDB4YmUsMHg0MCwweDIzLDB4ODAsMHgwOCwweGU4LDB4MDIsMHhmYSwweDAwLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2MwLCAwLCB7MHgzNiwweDgwLDB4MDgsMHhhMCwweDAyLDB4ZTgsMHgwMCwweGJhLDB4MDAsMHgyZiwweDgwLDB4MGIsMHhhMCwweDAzLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2QwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQ2LDB4MDIsMHg4MywweDAwLDB4MmMsMHg4MCB9IH0sCi17ICAxNiwgMHg4N2UwLCAwLCB7MHgwOCwweDIyLDB4NDIsMHhjNiwweDgwLDB4YjEsMHg2MCwweDJlLDB4ZjQsMHgwOCwweDM4LDB4MjIsMHhjZSwweDAwLDB4YTMsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2YwLCAwLCB7MHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4YWMsMHgwMCwweGIxLDB4MDAsMHgyZSwweDQwLDB4MGIsMHgzMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFlLDB4MDIsMHg4NSwweDAxLDB4MmQsMHhjMiB9IH0sCi17ICAxNiwgMHg4ODEwLCAwLCB7MHhhOCwweDQ0LDB4MDIsMHhkNCwweDAwLDB4YmQsMHgwMSwweDI5LDB4NDAsMHgxOCwweDY4LDB4ZDIsMHhkYywweDAwLDB4OGYsMHg4MCB9IH0sCi17ICAxNiwgMHg4ODIwLCAwLCB7MHgyNSwweGNjLDB4MjgsMHg3MywweDQyLDB4ZGMsMHg4MCwweGI1LDB4MzAsMHgyZCwweGMwLDB4MWIsMHg3MiwweDAyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDQsMHhjNiwweDgyLDB4M2QsMHhlMCB9IH0sCi17ICAxNiwgMHg4ODQwLCAwLCB7MHgwYywweDQ4LDB4MTIsMHhkNiwweDEwLDB4ZjUsMHg4MCwweDNjLDB4YTAsMHgwYywweDcwLDB4MDMsMHhkZSwweDAwLDB4ZTcsMHg5MCB9IH0sCi17ICAxNiwgMHg4ODUwLCAwLCB7MHgyMywweGVhLDB4MDQsMHg3YSwweDAzLDB4OWUsMHgwMCwweGY1LDB4ODAsMHgzZCwweGUwLDB4MGYsMHg3YSwweDAzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHg4ODYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwZCwweGFjLDB4MDAsMHg5YywweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHg4ODcwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlNCwweDEwLDB4ZjksMHgwMCwweDM2LDB4MDEsMHgwZiwweGEwLDB4MDMsMHhjMCwweDAwLDB4ZWIsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODgwLCAwLCB7MHgzZSwweGQ4LDB4NGUsMHhiMCwweDgzLDB4ZWMsMHgwMCwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiNCwweDQzLDB4ODIsMHgwNiB9IH0sCi17ICAxNiwgMHg4ODkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGRlLDB4MDAsMHhjZiwweDg0LDB4MzEsMHhlMCB9IH0sCi17ICAxNiwgMHg4OGEwLCAwLCB7MHgwZSwweGM4LDB4NDMsMHhkNiwweDAwLDB4Y2QsMHg4MCwweDMzLDB4ZTAsMHhjZCwweGQ5LDB4MDMsMHgzYSwweDAwLDB4ZmYsMHg4OCB9IH0sCi17ICAxNiwgMHg4OGIwLCAwLCB7MHgzMywweGUwLDB4MGYsMHhmOSwweDEzLDB4ZmUsMHgyNCwweGZkLDB4ODAsMHgzZiwweDIwLDB4MGMsMHhmNiwweDgzLDB4MTAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDAsMHg4NSwweDAwLDB4MjEsMHhjNCB9IH0sCi17ICAxNiwgMHg4OGQwLCAwLCB7MHgyOCwweDQwLDB4ODIsMHhkMCwweDAwLDB4ZDUsMHgwMCwweDIzLDB4ODAsMHg0OCwweGM5LDB4MDIsMHgxYywweDAwLDB4YjcsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGUwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHg3MSwweDAyLDB4ZGUsMHg4MCwweGI1LDB4MTAsMHgyZCwweGMwLDB4MjgsMHhmMCwweDAyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHg4OGYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDljLDB4MDAsMHg5NiwweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHg4OTAwLCAwLCB7MHgwYSwweDQxLDB4MDIsMHhmNSwweDQwLDB4OGQsMHgwMCwweDIxLDB4NDAsMHgwOSwweDUyLDB4MDIsMHg5OCwweDIwLDB4YjcsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTEwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHg3MCwweDA2LDB4ZGMsMHg4MCwweGI1LDB4MDAsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MDQsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgxNCwweGNjLDB4MTAsMHg5OCwweDAwLDB4MDAsMHhjMCB9IH0sCi17ICAxNiwgMHg4OTMwLCAwLCB7MHg4OCwweDA0LDB4ODIsMHhjMCwweDAwLDB4OTEsMHgwNCwweDIwLDB4MDMsMHgwOSwweDAwLDB4MDIsMHg4YSwweDAwLDB4YjMsMHgwYSB9IH0sCi17ICAxNiwgMHg4OTQwLCAwLCB7MHgyMCwweGM0LDB4OGIsMHgzNCwweDAyLDB4Y2MsMHgwMCwweGI5LDB4MDAsMHgyYywweGMwLDB4MDAsMHgzMCwweDAyLDB4MTgsMHgwNCB9IH0sCi17ICAxNiwgMHg4OTUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZjgsMHgxNSwweGFjLDB4MDAsMHhkYiwweDAwLDB4YjAsMHhjMCB9IH0sCi17ICAxNiwgMHg4OTYwLCAwLCB7MHgwZSwweDljLDB4MDIsMHhjNSwweDAwLDB4YzEsMHgxMCwweGIyLDB4YzAsMHgwZCwweGIwLDB4MGIsMHhhNywweDA4LDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTcwLCAwLCB7MHhiMywweGMwLDB4MGYsMHhmYSwweDAzLDB4ZmMsMHgwMCwweGZkLDB4MDAsMHgzZSwweGQ0LDB4MGMsMHhmMCwweDBiLDB4MmUsMHgwNCB9IH0sCi17ICAxNiwgMHg4OTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4MDQsMHhlZCwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHg4OTkwLCAwLCB7MHgwZiwweDg0LDB4MDMsMHhlNSwweDQwLDB4ZjksMHg0MCwweDNlLDB4NjAsMHhjZSwweGI0LDB4NDMsMHg2NCwweDAwLDB4ZmIsMHg4MCB9IH0sCi17ICAxNiwgMHg4OWEwLCAwLCB7MHgzZSwweGMyLDB4MGYsMHhiMCwweDEzLDB4ZWMsMHgwMCwweGY5LDB4MDIsMHgzZSwweGMwLDB4NGYsMHhiMCwweDAzLDB4ZTEsMHgwMCB9IH0sCi17ICAxNiwgMHg4OWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgxMCwweGZmLDB4MDAsMHhjZSwweDAwLDB4MzMsMHhjMCB9IH0sCi17ICAxNiwgMHg4OWMwLCAwLCB7MHgwZSwweGMwLDB4MDcsMHg3NCwweDA0LDB4ZWMsMHgwMCwweDExLDB4ODAsMHgwYywweGNhLDB4MDMsMHhmZSwweDYwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg4OWQwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDgzLDB4M2MsMHgwMCwweGRkLDB4MDAsMHhiMywweDUwLDB4MmMsMHhmMCwweDAzLDB4MjAsMHgwNCB9IH0sCi17ICAxNiwgMHg4OWUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwMCwweDRjLDB4MDQsMHg4YiwweDBiLDB4MjIsMHg3MCB9IH0sCi17ICAxNiwgMHg4OWYwLCAwLCB7MHgwOCwweDA4LDB4MDMsMHg2NywweDIwLDB4OGEsMHg4OCwweGEyLDB4MDAsMHgyOCwweDg0LDB4MDIsMHhlNywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTAwLCAwLCB7MHgzZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGI5LDB4MDAsMHgyMiwweDYxLDB4MDgsMHhiMCwweDAzLDB4NjAsMHg0MCB9IH0sCi17ICAxNiwgMHg4YTEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDIwLDB4MjIsMHhlMiB9IH0sCi17ICAxNiwgMHg4YTIwLCAwLCB7MHgwYSwweDhjLDB4MDIsMHgyNiwweDAwLDB4YTksMHg4MCwweDJhLDB4YzAsMHgwOCwweGI0LDB4NDIsMHhlZCwweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTMwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHgzMCwweDAyLDB4MmMsMHgwMCwweGI5LDB4MDAsMHgyMCwweDgwLDB4MDgsMHgzMCwweDAyLDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBlLDB4MDEsMHg4MSwweDAwLDB4YTAsMHhjMCB9IH0sCi17ICAxNiwgMHg4YTUwLCAwLCB7MHgwOCwweDgxLDB4MDIsMHg0NCwweDAwLDB4ODEsMHgwMCwweDI4LDB4ODEsMHgwOCwweDMyLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTYwLCAwLCB7MHgyOCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHg4MCwweGIxLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDEyLDB4NDIsMHgwMSB9IH0sCi17ICAxNiwgMHg4YTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwZCwweDZjLDB4MDAsMHhjMiwweDAxLDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHg4YTgwLCAwLCB7MHgyZSwweDgwLDB4MTYsMHgyYywweDA4LDB4ZTksMHgwMCwweDNhLDB4NDAsMHgwYywweDgwLDB4MDMsMHhlYywweDAwLDB4ZjcsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTkwLCAwLCB7MHgyZiwweGMwLDB4MGYsMHhmMCwweDBiLDB4MmMsMHgwMCwweGQ5LDB4MDAsMHgzMCwweDQwLDB4MGMsMHhmMCwweDAzLDB4NjAsMHgwMyB9IH0sCi17ICAxNiwgMHg4YWEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwZCwweGY4LDB4MDgsMHhmZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHg4YWIwLCAwLCB7MHgwZiwweGMyLDB4MTcsMHhmYywweDAwLDB4ZjcsMHgwMCwweDM3LDB4MDAsMHgwZiwweDg0LDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWMwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZWQsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhmMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHg4YWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4MDAsMHhjZiwweDMwLDB4MTcsMHg0OCB9IH0sCi17ICAxNiwgMHg4YWUwLCAwLCB7MHgwYywweDU5LDB4MDMsMHhiOSwweDAwLDB4ZGYsMHgyOCwweDM1LDB4MjQsMHgwZCwweDgyLDB4YTMsMHg3YywweDgwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWYwLCAwLCB7MHgzZiwweGM4LDB4MGYsMHhmMiwweDAzLDB4ZTQsMHhhMCwweGVmLDB4ODAsMHgzZiwweGUxLDB4OGMsMHhkOCwweDQzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGVkLDB4NDgsMHg4OSwweDM0LDB4YTMsMHg3MCB9IH0sCi17ICAxNiwgMHg4YjEwLCAwLCB7MHgyOCwweGIwLDB4MjMsMHg2MCwweDAwLDB4OGIsMHhjMCwweDIyLDB4NDAsMHgwOCwweGI0LDB4ODIsMHgyZiwweDQwLDB4YmYsMHhkMSB9IH0sCi17ICAxNiwgMHg4YjIwLCAwLCB7MHg2ZiwweGY0LDB4OGUsMHhiZCwweDAyLDB4ZTcsMHgwMCwweGJiLDB4ODAsMHgzYSwweGUwLDB4MDgsMHg5OCwweDBhLDB4MjgsMHgwNCB9IH0sCi17ICAxNiwgMHg4YjMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4YjAsMHg5MSwweDAwLDB4YTgsMHg1MCB9IH0sCi17ICAxNiwgMHg4YjQwLCAwLCB7MHgwOCwweGIyLDB4MDIsMHhjOCwweDg0LDB4OTMsMHgwMCwweDI0LDB4NDksMHgwYiwweDAyLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwNCB9IH0sCi17ICAxNiwgMHg4YjUwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDQyLDB4ODQsMHgwMCwweGIzLDB4MDAsMHgyZSwweDAwLDB4MGEsMHhiMCwweDEyLDB4MjIsMHgwMSB9IH0sCi17ICAxNiwgMHg4YjYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMSwweGFjLDB4MDIsMHg5OSwweDE4LDB4MmEsMHg0NCB9IH0sCi17ICAxNiwgMHg4YjcwLCAwLCB7MHgwOCwweGI4LDB4ODIsMHhhMiwweDAxLDB4YmIsMHgwMCwweDI4LDB4NjAsMHgwYSwweGEwLDB4MTIsMHg2YywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjgwLCAwLCB7MHg2ZSwweGMwLDB4MGEsMHhiMCwweDAyLDB4ZTQsMHgwMCwweGJiLDB4MDAsMHgyYSwweDAwLDB4MmEsMHhiMCwweDAyLDB4MzgsMHgwNCB9IH0sCi17ICAxNiwgMHg4YjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMSwweGU0LDB4MDgsMHhkYSwweGMwLDB4M2EsMHg2MCB9IH0sCi17ICAxNiwgMHg4YmEwLCAwLCB7MHgwYywweDE4LDB4MGEsMHhlYiwweDA0LDB4ZGIsMHgwMCwweDM2LDB4ZTAsMHgwNywweDg1LDB4ODMsMHg2YywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmIwLCAwLCB7MHgyZSwweGMwLDB4MGYsMHhiMCwweDQzLDB4ZTQsMHgwMCwweGViLDB4MDAsMHgzZSwweDg4LDB4MGUsMHgxOCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHg4YmMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHg0MSwweDljLDB4MTAsMHhlOSwweDAwLDB4MzcsMHg2MCB9IH0sCi17ICAxNiwgMHg4YmQwLCAwLCB7MHg4NywweGYwLDB4MTcsMHg3MCwweDAwLDB4Y2YsMHgwMSwweDM3LDB4YzAsMHg0YywweDk4LDB4MDMsMHhiYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmUwLCAwLCB7MHgzZiwweGMyLDB4MGYsMHhmMCwweDAzLDB4ZTQsMHgwMCwweGZmLDB4NDAsMHgzZiwweGU0LDB4MGQsMHhkOSwweDAzLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGE0LDB4MDAsMHhmNCwweDAwLDB4MzAsMHg0MCB9IH0sCi17ICAxNiwgMHg4YzAwLCAwLCB7MHgwZiwweGI0LDB4MDMsMHg5OSwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgwZCwweDA0LDB4MjMsMHgyYywweDA4LDB4ZmIsMHg4OCB9IH0sCi17ICAxNiwgMHg4YzEwLCAwLCB7MHgzMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTYsMHgwMCwweGRiLDB4MTAsMHgzZSwweDAyLDB4MGYsMHhiMCwweDgzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHg4YzIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJjLDB4MDAsMHhiOSwweDUwLDB4YTIsMHg0OCB9IH0sCi17ICAxNiwgMHg4YzMwLCAwLCB7MHg4YiwweGIwLDB4MDMsMHgyMCwweDAwLDB4ZDcsMHg4MCwweDJlLDB4ZDgsMHgwMCwweDgwLDB4MDIsMHgzYywweDAwLDB4YmYsMHg4MCB9IH0sCi17ICAxNiwgMHg4YzQwLCAwLCB7MHgyMywweGU4LDB4OGIsMHhmMCwweDAyLDB4ZjQsMHg0MCwweDhiLDB4NDAsMHgwYywweDQyLDB4MDMsMHhiNiwweDAyLDB4ZjIsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMiwweDQ0LDB4MDAsMHhjOCB9IH0sCi17ICAxNiwgMHg4YzYwLCAwLCB7MHgwYiwweDMwLDB4MTIsMHg4YywweDAwLDB4YTMsMHg4MCwweDI0LDB4YzgsMHgwYiwweDAwLDB4MGEsMHhjYywweDAwLDB4YjMsMHg0NCB9IH0sCi17ICAxNiwgMHg4YzcwLCAwLCB7MHgwNCwweGMwLDB4MWIsMHgzNiwweDAyLDB4YzUsMHgwMSwweDgzLDB4MGMsMHgyYywweGEwLDB4MGIsMHgzMCwweDAyLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFlLDB4MDgsMHhiNywweDkwLDB4MjEsMHg2NCB9IH0sCi17ICAxNiwgMHg4YzkwLCAwLCB7MHgwYiwweGY4LDB4MDIsMHg0YSwweDA0LDB4OTcsMHg4MSwweDJmLDB4ZTQsMHgwYSwweDc4LDB4MDIsMHg5ZSwweDAwLDB4YjcsMHg4MCB9IH0sCi17ICAxNiwgMHg4Y2EwLCAwLCB7MHgyMSwweGUwLDB4OGIsMHg3OCwweDgyLDB4ZDYsMHg4NiwweDg3LDB4ODQsMHgyZCwweGEwLDB4MGIsMHg3OCwweDAyLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2IwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA0LDB4MDAsMHhmMiwweDAwLDB4MzAsMHhjMCB9IH0sCi17ICAxNiwgMHg4Y2MwLCAwLCB7MHgwZiwweDMwLDB4MDMsMHg4YywweDAwLDB4ZTMsMHgwYSwweDNjLDB4YzAsMHgwZiwweDE4LDB4MDMsMHg4YywweDAwLDB4ZjMsMHgwMiB9IH0sCi17ICAxNiwgMHg4Y2QwLCAwLCB7MHgzMCwweGMwLDB4MWYsMHgzMCwweDAxLDB4YzYsMHg4MCwweGMzLDB4MDAsMHgzYywweGMwLDB4MGYsMHgxMiwweDAzLDB4ZGEsMHgwMiB9IH0sCi17ICAxNiwgMHg4Y2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwZCwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHg0MSB9IH0sCi17ICAxNiwgMHg4Y2YwLCAwLCB7MHgwZiwweGYwLDB4MDMsMHhiOCwweDA4LDB4ZmYsMHgwOCwweDNmLDB4YzAsMHgwZCwweGYwLDB4MDMsMHgzYywweDIwLDB4ZmYsMHgwOCB9IH0sCi17ICAxNiwgMHg4ZDAwLCAwLCB7MHgzYiwweGQyLDB4MGYsMHhmMCwweDAzLDB4ZjQsMHg0MCwweGVmLDB4MDAsMHgzZiwweGM0LDB4MGYsMHhkMCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHg4ZDEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU0LDB4MDAsMHhmZSwweDAwLDB4MzIsMHhjMiB9IH0sCi17ICAxNiwgMHg4ZDIwLCAwLCB7MHgwYywweDMwLDB4MGIsMHgyNiwweDAwLDB4ZmIsMHg4MCwweDM2LDB4YzAsMHgwZCwweGEwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHhlMCB9IH0sCi17ICAxNiwgMHg4ZDMwLCAwLCB7MHgzMiwweGQwLDB4MGYsMHhiOCwweDQzLDB4NjQsMHg0NCwweGRiLDB4MDQsMHgzZSwweDgwLDB4MGYsMHhiMCwweDAzLDB4ZTIsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4MDAsMHhiNywweDAwLDB4YTEsMHhjMCB9IH0sCi17ICAxNiwgMHg4ZDUwLCAwLCB7MHg4OCwweDcwLDB4MDMsMHgxMCwweDAwLDB4YjcsMHgyMCwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkYywweDgwLDB4YjMsMHgzMCB9IH0sCi17ICAxNiwgMHg4ZDYwLCAwLCB7MHgzMSwweGM4LDB4MGIsMHg3NCwweDAyLDB4MTQsMHgwMCwweDg3LDB4NDAsMHgyZCwweGMwLDB4NGIsMHg3MCwweDAyLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDk2LDB4MjAsMHhiNiwweDgwLDB4MjAsMHhlMCB9IH0sCi17ICAxNiwgMHg4ZDgwLCAwLCB7MHgyOCwweGY4LDB4MDIsMHg5NCwweDEwLDB4YjcsMHg4MSwweDI3LDB4ZTIsMHgwOSwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjcsMHhhMCB9IH0sCi17ICAxNiwgMHg4ZDkwLCAwLCB7MHhhOSwweGU4LDB4MGIsMHgzOCwweDAyLDB4NzYsMHgwMCwweDg3LDB4ODAsMHgyZCwweGEwLDB4MGIsMHg1OCwweDAyLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZGEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNlLDB4MTAsMHhiMywweDAwLDB4MjAsMHhjNCB9IH0sCi17ICAxNiwgMHg4ZGIwLCAwLCB7MHgwOCwweDIwLDB4MDIsMHg4MCwweDEwLDB4YjMsMHgwMCwweDIyLDB4YzgsMHgwOCwweGIwLDB4MDIsMHhjYywweDExLDB4YjMsMHgwMiB9IH0sCi17ICAxNiwgMHg4ZGMwLCAwLCB7MHgyOCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MDQsMHgwMCwweDkzLDB4ODAsMHgyYywweGQyLDB4MGIsMHgxMCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZGQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmZSwweDQwLDB4MzIsMHhhMCB9IH0sCi17ICAxNiwgMHg4ZGUwLCAwLCB7MHgwYywweGU0LDB4MDMsMHg5OCwweDgwLDB4ZmEsMHgwMCwweDM3LDB4YTAsMHgwZCwweGUwLDB4ODMsMHhlOCwweDAwLDB4ZmUsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZGYwLCAwLCB7MHgzYSwweDgwLDB4MGIsMHhhMCwweDAzLDB4NjgsMHgwMCwweGQ4LDB4YTAsMHgzZiwweDkwLDB4MGYsMHhhMCwweDAzLDB4ZmEsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MDgsMHhmOCwweDA4LDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTEwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHgyMCwweDAwLDB4ZjgsMHg0MCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZTIwLCAwLCB7MHgzMCwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMiwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhmMSwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZTQwLCAwLCB7MHgwZSwweDkwLDB4ODMsMHhhNCwweDAwLDB4YzksMHg4MCwweDNlLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTUwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGM4LDB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZTYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDQwLDB4YTAsMHg2MiB9IH0sCi17ICAxNiwgMHg4ZTcwLCAwLCB7MHgwOCwweDEwLDB4MDIsMHgyNCwweDEwLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTgwLCAwLCB7MHgyZSwweDUyLDB4MDgsMHg5NCwweDAyLDB4YzQsMHgwMCwweDg5LDB4NDAsMHgyZSwweDQwLDB4MGIsMHgxMCwweDAzLDB4NjAsMHgxMCB9IH0sCi17ICAxNiwgMHg4ZTkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDE4LDB4MjIsMHg0NCB9IH0sCi17ICAxNiwgMHg4ZWEwLCAwLCB7MHgwYSwweDkwLDB4MDIsMHhhYywweDAwLDB4ODksMHgxMCwweDJlLDB4YzAsMHgwYSwweDkwLDB4MDIsMHhhNCwweDAwLDB4YjksMHg4MCB9IH0sCi17ICAxNiwgMHg4ZWIwLCAwLCB7MHgyZSwweDYwLDB4MDgsMHg5OCwweDAyLDB4ZTYsMHgwMiwweDg5LDB4MDgsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDIwLDB4YTAsMHg0OCB9IH0sCi17ICAxNiwgMHg4ZWQwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgyNCwweDA4LDB4ODEsMHgyMywweDJjLDB4NTAsMHgwOCwweDEwLDB4MDIsMHgwNCwweDgwLDB4YjEsMHgyMCB9IH0sCi17ICAxNiwgMHg4ZWUwLCAwLCB7MHgyYywweDQ4LDB4MjgsMHgxMiwweDAyLDB4ZTQsMHg4MCwweDgxLDB4MjAsMHgyYywweDQwLDB4MGIsMHg5OCwweDAyLDB4NDIsMHgwNSB9IH0sCi17ICAxNiwgMHg4ZWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhmOCwweDUwLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjAwLCAwLCB7MHgwZSwweDg1LDB4MDMsMHhhMSwweGUwLDB4Y2EsMHgwMCwweDNlLDB4MDAsMHgwZSwweDg1LDB4MDMsMHhhMCwweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjEwLCAwLCB7MHgyZSwweDAwLDB4OWMsMHhhMCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MjgsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4MmUsMHgwMSB9IH0sCi17ICAxNiwgMHg4ZjIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGY0LDB4NDAsMHhmNSwweDEwLDB4M2YsMHg0NCB9IH0sCi17ICAxNiwgMHg4ZjMwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZjEsMHgxMCwweDNkLDB4NDAsMHg4ZiwweGQ0LDB4MDMsMHhlNCwweDUwLDB4ZjksMHgxMCB9IH0sCi17ICAxNiwgMHg4ZjQwLCAwLCB7MHgzZSwweDQ1LDB4MGYsMHg5MSwweDAzLDB4ZDQsMHg0MCwweGZjLDB4MDAsMHgzZiwweGMwLDB4OGYsMHhkMCwweDIzLDB4ZTYsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU2LDB4MjAsMHhjZCwweGE4LDB4MzMsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZjYwLCAwLCB7MHg4ZCwweGQwLDB4MDMsMHgyNiwweDgwLDB4Y2QsMHgwMCwweDNkLDB4NTAsMHgwYywweDlhLDB4MDMsMHg2NCwweDAwLDB4ZjksMHhhMCB9IH0sCi17ICAxNiwgMHg4ZjcwLCAwLCB7MHg3YSwweDZhLDB4MGYsMHg5YSwweDYzLDB4ZTYsMHg4MCwweGM5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUxLDB4MDAsMHg4OCwweGUwLDB4MzYsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjkwLCAwLCB7MHgwOCwweDgwLDB4MGEsMHgyMSwweDQyLDB4YzgsMHgwMCwweDJlLDB4MjksMHgwYywweGE0LDB4NDIsMHgyMCwweDAwLDB4YjgsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZmEwLCAwLCB7MHgyZSwweDAwLDB4MGIsMHg4MSwweDAyLDB4ZTEsMHgwMCwweDg4LDB4MDIsMHgzYSwweDAxLDB4MGIsMHhjMCwweDAyLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZmIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDIsMHg4MSwweDA4LDB4MjQsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZmMwLCAwLCB7MHgwOSwweDEwLDB4MDIsMHgwNCwweDAwLDB4OTEsMHgwMCwweDJjLDB4NDAsMHg0YiwweDE0LDB4MDIsMHg0NCwweDAwLDB4YjUsMHgxMCB9IH0sCi17ICAxNiwgMHg4ZmQwLCAwLCB7MHgyOSwweDQwLDB4MGIsMHg1MCwweDAyLDB4ZjUsMHgwMCwweGI1LDB4MDAsMHgyZCwweDQwLDB4MGIsMHhkMCwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHg4ZmUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxMSwweGE2LDB4MDEsMHg4OSwweDAwLDB4MjYsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZmYwLCAwLCB7MHgwOCwweDk0LDB4MDIsMHgyNCwweDAxLDB4ODksMHgwMCwweDJlLDB4NDAsMHgxYSwweDkwLDB4MDIsMHg2YywweDAwLDB4YmYsMHgwMiB9IH0sCi17ICAxNiwgMHg5MDAwLCAwLCB7MHgyZiwweDQwLDB4MGIsMHhkMCwweDAyLDB4ZjQsMHgwMiwweGJkLDB4ODAsMHgyYiwweDQwLDB4OGIsMHhkOCwweDNhLDB4MDYsMHgwNCB9IH0sCi17ICAxNiwgMHg5MDEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhjOSwweDA1LDB4MzYsMHg0MSB9IH0sCi17ICAxNiwgMHg5MDIwLCAwLCB7MHgwZCwweDFjLDB4MDMsMHgyNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDIsMHgyZiwweDk0LDB4MDMsMHg2NCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg5MDMwLCAwLCB7MHgzYSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDcwLDB4MGYsMHgxMCwweDAzLDB4MjgsMHgwNCB9IH0sCi17ICAxNiwgMHg5MDQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweDg0LDB4MDgsMHhmOSwweDI0LDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHg5MDUwLCAwLCB7MHgwZiwweDkxLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDEsMHgwZCwweDEwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg5MDYwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDY0LDB4MGYsMHg5MCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDgsMHhjOCwweDgwLDB4MzIsMHgwMiB9IH0sCi17ICAxNiwgMHg5MDgwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHgwMCwweDAwLDB4YzgsMHgwOCwweDNhLDB4MTAsMHhjZSwweDg0LDB4MDMsMHhlMCwweDAwLDB4ZmMsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDkwLCAwLCB7MHgzZiwweDAwLDB4OGYsMHhjMCwweDAzLDB4ZjAsMHg4MCwweGZjLDB4MDAsMHgzZiwweDE4LDB4MGYsMHhjMCwweDQzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHg5MGEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHg4ZSwweDAwLDB4YTEsMHg4MCB9IH0sCi17ICAxNiwgMHg5MGIwLCAwLCB7MHgwYiwweGUwLDB4MDIsMHgyOCwweDAwLDB4ZGUsMHhjMiwweDIzLDB4OTAsMHgwMCwweGEwLDB4MDIsMHhlOCwweDAwLDB4YmEsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGMwLCAwLCB7MHgyZSwweDgwLDB4MGIsMHhhMCwweDAyLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgyZSwweDgwLDB4MGIsMHhhMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg5OSwweDgxLDB4NjAsMHhjMCB9IH0sCi17ICAxNiwgMHg5MGUwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHgwYywweDAwLDB4OTAsMHgxMCwweDJhLDB4ZmMsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGYwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFjLDB4ODIsMHg5NSwweDQwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHg5MTEwLCAwLCB7MHgwYiwweDUwLDB4MDIsMHgxYywweDgwLDB4OTAsMHg4MCwweDIzLDB4MDEsMHgwOSwweDcyLDB4MTIsMHhkYywweDAwLDB4YjYsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTIwLCAwLCB7MHgyZCwweDAwLDB4MGIsMHg0MCwweDAyLDB4ZDAsMHgwMCwweGI0LDB4MDksMHgyZCwweDAwLDB4NGIsMHg0MCwweDgyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNlLDB4ODAsMHhkZCwweDgwLDB4YjEsMHhlMCB9IH0sCi17ICAxNiwgMHg5MTQwLCAwLCB7MHgwZiwweGRhLDB4MDMsMHgwZiwweDgwLDB4ZDQsMHg4MCwweDM5LDB4ZTAsMHgwYiwweDdhLDB4MDMsMHhkZSwweDAwLDB4ZjUsMHg4MCB9IH0sCi17ICAxNiwgMHg5MTUwLCAwLCB7MHgzZCwweDIwLDB4MGYsMHg0OCwweDAzLDB4ZDYsMHgxMCwweGY2LDB4ODEsMHgzZCwweGUwLDB4OGYsMHg2OCwweDAzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHg5MTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4MDAsMHhlZCwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTcwLCAwLCB7MHgwZiwweDkxLDB4MGIsMHhlYywweDEwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZSwweGIwLDB4MDMsMHhlYywweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTgwLCAwLCB7MHgzZSwweGMwLDB4NGYsMHhiMCwweDAzLDB4ZTgsMHgwMCwweGU5LDB4MDEsMHgzZSwweDAwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHg5MTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MjAsMHhiZiwweDgxLDB4MzMsMHhhNCB9IH0sCi17ICAxNiwgMHg5MWEwLCAwLCB7MHg4YywweDE5LDB4MDMsMHgzZSwweDAwLDB4Y2QsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4ODMsMHgzZSwweDAwLDB4ZWYsMHg4MCB9IH0sCi17ICAxNiwgMHg5MWIwLCAwLCB7MHgzZiwweGUwLDB4MGYsMHhmOSwweDEzLDB4ZmEsMHgxMCwweGZkLDB4ODAsMHgzZiwweGE0LDB4MGYsMHhkOCwweDAzLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MWMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDAsMHhiZiwweDIwLDB4MzEsMHhjMiB9IH0sCi17ICAxNiwgMHg5MWQwLCAwLCB7MHgwOCwweDVhLDB4MDIsMHgzYywweDAyLDB4ODcsMHgwMCwweDJkLDB4OTQsMHgwYiwweDcwLDB4MGEsMHgxYywweDQwLDB4ODYsMHgxMCB9IH0sCi17ICAxNiwgMHg5MWUwLCAwLCB7MHgyZCwweDAwLDB4MGIsMHg0MCwweDAyLDB4ZDQsMHgwMCwweGY2LDB4MDAsMHgyZCwweDQwLDB4NGIsMHg2MCwweDAyLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHg5MWYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhiNywweDAxLDB4MjMsMHg4MCB9IH0sCi17ICAxNiwgMHg5MjAwLCAwLCB7MHgyOCwweDUwLDB4MDIsMHgxYywweDAwLDB4ODQsMHgwMCwweDJkLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgxYywweDAwLDB4YjUsMHgwMCB9IH0sCi17ICAxNiwgMHg5MjEwLCAwLCB7MHgyZCwweDAwLDB4MGIsMHg0MCwweDA2LDB4ZDAsMHg0MCwweGI0LDB4MDgsMHgyZCwweDgwLDB4MGIsMHg0OCwweDAyLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MjIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMywweDA4LDB4YTAsMHgyMCB9IH0sCi17ICAxNiwgMHg5MjMwLCAwLCB7MHgwOCwweDExLDB4OGEsMHgwZSwweDAwLDB4ODAsMHgwMCwweDJjLDB4OTAsMHgwYiwweDM3LDB4MDIsMHgwYywweDAwLDB4OTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MjQwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDQyLDB4Y2MsMHgwNCwweGEzLDB4ODAsMHgyYywweDUwLDB4MGIsMHgzMCwweDAyLDB4YzgsMHgwNCB9IH0sCi17ICAxNiwgMHg5MjUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhmOSwweDgwLDB4MzIsMHg2MCB9IH0sCi17ICAxNiwgMHg5MjYwLCAwLCB7MHgwYywweGQ0LDB4MDMsMHgzYywweDgwLDB4ODgsMHgwMCwweDNlLDB4ZDAsMHgwZiwweGY4LDB4MDMsMHgyOCwweDAwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHg5MjcwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhiMCwweDA3LDB4ZWMsMHgwMSwweGJiLDB4ODAsMHgzZSwweDU0LDB4MGYsMHhiMCwweDA2LDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHg5MjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVlLDB4MDgsMHhmOSwweDgwLDB4M2EsMHhjMCB9IH0sCi17ICAxNiwgMHg5MjkwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlYywweDAwLDB4ZjgsMHg0MCwweDNlLDB4NTgsMHgwZiwweGIwLDB4NDMsMHhlOSwweDAwLDB4ZWIsMHg0NCB9IH0sCi17ICAxNiwgMHg5MmEwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwZCwweGY4LDB4MDAsMHgzZSwweDgwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MmIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGRjLDB4MDAsMHhjZiwweDAwLDB4MzMsMHg0MCB9IH0sCi17ICAxNiwgMHg5MmMwLCAwLCB7MHgwYywweGQwLDB4MDMsMHgzYywweDMwLDB4Y2MsMHgwMCwweDNiLDB4YzAsMHgyZCwweGYwLDB4MDMsMHhkOCwweDAyLDB4Y2MsMHgwMCB9IH0sCi17ICAxNiwgMHg5MmQwLCAwLCB7MHgzZCwweDAwLDB4MGMsMHhjMCwweDAzLDB4ZjQsMHgwMCwweGVlLDB4MDIsMHgzNywweDQwLDB4MGMsMHhlMCwweDAzLDB4YzAsMHg0NCB9IH0sCi17ICAxNiwgMHg5MmUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZjLDB4MTgsMHg4MywweDg0LDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MmYwLCAwLCB7MHg0YSwweDEwLDB4MDIsMHgwYywweDAwLDB4YTgsMHg0OCwweDJlLDB4NjAsMHgwOCwweGIwLDB4MDIsMHhlOSwweDAwLDB4ODksMHg0MCB9IH0sCi17ICAxNiwgMHg5MzAwLCAwLCB7MHgyZSwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZTgsMHgxMCwweGIxLDB4MDEsMHgyMCwweDgwLDB4MGEsMHg5MCwweDAzLDB4YTAsMHg0MCB9IH0sCi17ICAxNiwgMHg5MzEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDgyLDB4MjIsMHgwOCB9IH0sCi17ICAxNiwgMHg5MzIwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgyYywweDE0LDB4ODgsMHgwNCwweDJjLDB4MDgsMHgwOCwweGIwLDB4MTIsMHhlOCwweDAwLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHg5MzMwLCAwLCB7MHgyZSwweGMwLDB4MGEsMHhiMCwweDAyLDB4ZTgsMHgwMSwweGI5LDB4MDAsMHgyNiwweDA0LDB4MDgsMHg5MCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MzQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MywweDgwLDB4YTIsMHhjMCB9IH0sCi17ICAxNiwgMHg5MzUwLCAwLCB7MHgwYSwweDkyLDB4MDIsMHgyYywweDAwLDB4YTIsMHgwMCwweDJjLDB4MDAsMHgwOCwweDM0LDB4MDIsMHhjOCwweDAwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHg5MzYwLCAwLCB7MHgyYywweDAwLDB4MjgsMHgwMCwweDAyLDB4YzQsMHgwMSwweGJhLDB4MDAsMHgyMiwweGMwLDB4MDIsMHgyMCwweDA2LDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg5MzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhjYSwweDAwLDB4YjIsMHgwMCB9IH0sCi17ICAxNiwgMHg5MzgwLCAwLCB7MHgwYywweDkyLDB4MGIsMHgyYywweDA0LDB4YzgsMHgwNCwweDNhLDB4MDAsMHgwYywweGI0LDB4MDMsMHhlOCwweDAwLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHg5MzkwLCAwLCB7MHgyZSwweDAwLDB4MGMsMHg4MCwweDMzLDB4ZTEsMHg0MCwweGU4LDB4MDAsMHgzNiwweDAwLDB4MGMsMHg4MCwweDAzLDB4YzAsMHgwMyB9IH0sCi17ICAxNiwgMHg5M2EwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2QsMHgwMCB9IH0sCi17ICAxNiwgMHg5M2IwLCAwLCB7MHgwZiwweGQxLDB4MGIsMHhmYywweDAxLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhkOCwweDAwLDB4ZmQsMHgwMCB9IH0sCi17ICAxNiwgMHg5M2MwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHg4MCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDA3LDB4YTgsMHgwNiB9IH0sCi17ICAxNiwgMHg5M2QwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGYzLDB4MDAsMHhjZiwweDgwLDB4MzUsMHg2MCB9IH0sCi17ICAxNiwgMHg5M2UwLCAwLCB7MHg0ZSwweDY4LDB4NDMsMHg1YywweDAwLDB4ZTcsMHg4MCwweDM5LDB4YzAsMHgwYywweGMxLDB4MDMsMHg3ZSwweDAwLDB4Y2YsMHgzNCB9IH0sCi17ICAxNiwgMHg5M2YwLCAwLCB7MHgzNSwweGUxLDB4NGQsMHhmMiwweDAzLDB4N2MsMHgwMCwweGRmLDB4MzgsMHgzZiwweGM4LDB4MGYsMHhmOCwweDAzLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg5NDAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxOCwweGM4LDB4MDAsMHhkYiwweDg0LDB4MjIsMHg2MCB9IH0sCi17ICAxNiwgMHg5NDEwLCAwLCB7MHgwOCwweGFjLDB4MGEsMHgyYywweDAwLDB4OGIsMHg4MCwweDIyLDB4MzAsMHgwOCwweDkxLDB4MjIsMHgyYywweDkwLDB4MjcsMHg2MSB9IH0sCi17ICAxNiwgMHg5NDIwLCAwLCB7MHgyMiwweGNhLDB4ODgsMHhmYywweDIyLDB4YmYsMHgwMCwweDhiLDB4NjIsMHgyZiwweGQwLDB4MDksMHhiOCwweDAzLDB4YjAsMHgwNCB9IH0sCi17ICAxNiwgMHg5NDMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweGUyLDB4ODAsMHhhOSwweDAyLDB4MjQsMHg0MCB9IH0sCi17ICAxNiwgMHg5NDQwLCAwLCB7MHg4MiwweDM0LDB4NDIsMHgwNCwweDAwLDB4YTksMHgwMCwweDI4LDB4YzUsMHg0OCwweDMyLDB4MDIsMHg0YywweDIwLDB4ODMsMHgzMCB9IH0sCi17ICAxNiwgMHg5NDUwLCAwLCB7MHgyMCwweGMwLDB4MDgsMHgzMSwweDAyLDB4MGQsMHgwMCwweGIzLDB4MjAsMHgyYywweGM0LDB4MGIsMHgzMCwweDAyLDB4ZjIsMHgwMSB9IH0sCi17ICAxNiwgMHg5NDYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGFhLDB4MDIsMHhiOSwweDA0LDB4MjIsMHg2MCB9IH0sCi17ICAxNiwgMHg5NDcwLCAwLCB7MHgyOCwweGIyLDB4MDIsMHgyNiwweDAwLDB4ODksMHg4OCwweDAyLDB4YzAsMHgwOCwweDMxLDB4MTIsMHhlYywweDAwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHg5NDgwLCAwLCB7MHgyYSwweGQwLDB4MDgsMHhiMCwweDAyLDB4YWMsMHgwMCwweDJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4YjAsMHgwNCB9IH0sCi17ICAxNiwgMHg5NDkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGUyLDB4MDAsMHhlMywweDAwLDB4MzYsMHgyMCB9IH0sCi17ICAxNiwgMHg5NGEwLCAwLCB7MHgwZSwweGE0LDB4NjMsMHg2ZSwweDAwLDB4ZTEsMHhjMCwweDFhLDB4YzEsMHgwYywweDgwLDB4MDMsMHg2OCwweDcwLDB4Y2IsMHgwMCB9IH0sCi17ICAxNiwgMHg5NGIwLCAwLCB7MHgzNiwweDgwLDB4MGQsMHhiMCwweDAzLDB4NGMsMHgwMCwweGZiLDB4MDQsMHgzZSwweGMxLDB4MGYsMHhiMCwweDAzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHg5NGMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI4LDB4MDQsMHhkZiwweDAwLDB4M2YsMHgwMCB9IH0sCi17ICAxNiwgMHg5NGQwLCAwLCB7MHgwZiwweGU4LDB4MDMsMHhmYywweDAwLDB4ZmQsMHgwMCwweDNmLDB4MDAsMHgyYiwweDk4LDB4MDMsMHgzYSwweDAwLDB4NzcsMHgwMCB9IH0sCi17ICAxNiwgMHg5NGUwLCAwLCB7MHgyNywweGU0LDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGRmLDB4MDAsMHgzZSwweGMwLDB4MGQsMHhmMCwweDQzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5NGYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgwMCwweGE0LDB4NjgsMHhjYiwweDIwLDB4M2EsMHg5MCB9IH0sCi17ICAxNiwgMHg5NTAwLCAwLCB7MHgwZiwweDI0LDB4YTMsMHhhYywweDAwLDB4ZTksMHg1MCwweDNhLDB4YzAsMHgwZSwweGI0LDB4ODMsMHgyYywweDA4LDB4ZWIsMHgwMCB9IH0sCi17ICAxNiwgMHg5NTEwLCAwLCB7MHgzYSwweDkwLDB4MGUsMHhiMCwweDhiLDB4ZWMsMHg4MCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGUsMHhiMCwweDAzLDB4OTAsMHgwNCB9IH0sCi17ICAxNiwgMHg5NTIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwMSwweDBhLDB4MDAsMHg4YiwweGEwLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHg5NTMwLCAwLCB7MHgwZCwweGE4LDB4MDIsMHgyYywweDA0LDB4ODksMHg0MCwweDI4LDB4ZTgsMHgwOCwweGIyLDB4MDIsMHgyYywweDAwLDB4YWYsMHgwMCB9IH0sCi17ICAxNiwgMHg5NTQwLCAwLCB7MHgwMiwweDgwLDB4MDgsMHg3YywweDAzLDB4M2QsMHg4MCwweDNmLDB4MDAsMHgyZiwweGMwLDB4MDgsMHhiMCwweDAyLDB4MzYsMHgwMCB9IH0sCi17ICAxNiwgMHg5NTUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ5LDB4MDAsMHgwMywweDQwLDB4MjgsMHhjMCB9IH0sCi17ICAxNiwgMHg5NTYwLCAwLCB7MHgyYiwweDI4LDB4NGEsMHgyOCwweDAwLDB4YTEsMHgwMCwweDY4LDB4ZDIsMHgwYSwweDIwLDB4NDIsMHhhNCwweDAxLDB4YTMsMHgwMCB9IH0sCi17ICAxNiwgMHg5NTcwLCAwLCB7MHgwMiwweDQwLDB4MGEsMHgzNCwweDAyLDB4MGQsMHgwMCwweDMzLDB4MDAsMHgyYywweGMwLDB4MGEsMHgzMCwweDAwLDB4YjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5NTgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwMSwweDFhLDB4MDAsMHg4NywweDkwLDB4MjEsMHhlNCB9IH0sCi17ICAxNiwgMHg5NTkwLCAwLCB7MHgyYiwweGM4LDB4MTIsMHgzYSwweDAwLDB4ODUsMHhjMCwweDJiLDB4MjEsMHgyOCwweDY4LDB4MDIsMHhiNiwweDAwLDB4YTcsMHg4NCB9IH0sCi17ICAxNiwgMHg5NWEwLCAwLCB7MHgyMywweDYwLDB4MDgsMHgzOCwweDgwLDB4MWUsMHgwMCwweGI3LDB4ODAsMHgyZCwweGUwLDB4MDgsMHg3OCwweDAyLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHg5NWIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA4LDB4MDAsMHhjMSwweDAwLDB4MzgsMHg1NCB9IH0sCi17ICAxNiwgMHg5NWMwLCAwLCB7MHgwZiwweDI2LDB4ODMsMHg4MCwweDAwLDB4ZTAsMHgzNCwweDI4LDB4YzgsMHgwZSwweDJjLDB4MGIsMHg4YywweDAwLDB4ZTMsMHgwMCB9IH0sCi17ICAxNiwgMHg5NWQwLCAwLCB7MHg3OCwweDQ1LDB4MGUsMHgzMCwweDAzLDB4OGUsMHg4MCwweGYzLDB4MDAsMHgzYywweGM4LDB4MGUsMHgzMCwweDAzLDB4OTIsMHgwMiB9IH0sCi17ICAxNiwgMHg5NWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGI4LDB4MDAsMHhmNSwweDAyLDB4M2YsMHg0NCB9IH0sCi17ICAxNiwgMHg5NWYwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHhmOCwweDAwLDB4YmQsMHgxNCwweDFmLDB4YzAsMHgwZiwweGUxLDB4MjMsMHg1YywweDQ0LDB4OWYsMHg0MiB9IH0sCi17ICAxNiwgMHg5NjAwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmNCwweDgyLDB4N2QsMHg0MCwweGZmLDB4MTAsMHgzZiwweGMwLDB4NGYsMHg3MCwweDA3LDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHg5NjEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU4LDB4MDIsMHhjYiwweDAwLDB4MzgsMHhjMCB9IH0sCi17ICAxNiwgMHg5NjIwLCAwLCB7MHgzYywweGEwLDB4MDMsMHhlYywweDAwLDB4ZTksMHgwMCwweDNlLDB4YzAsMHgwYywweGIwLDB4MDMsMHgyMCwweDA0LDB4ZmIsMHgyMSB9IH0sCi17ICAxNiwgMHg5NjMwLCAwLCB7MHgzZSwweDgwLDB4NGYsMHhiNCwweDAzLDB4Y2YsMHgwMCwweGNiLDB4MDAsMHgzZSwweGNjLDB4NGYsMHhiMCwweDQzLDB4ZWEsMHgwMCB9IH0sCi17ICAxNiwgMHg5NjQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHg5MSwweDk4LDB4MDAsMHg4NywweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHg5NjUwLCAwLCB7MHgwOCwweDQwLDB4MDIsMHhkYywweDA0LDB4YjUsMHgwMCwweDJkLDB4MDAsMHgyZCwweDcwLDB4MDIsMHgxYywweDFjLDB4YjcsMHgwMiB9IH0sCi17ICAxNiwgMHg5NjYwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHg3MiwweDAyLDB4ZGMsMHgwMCwweDg3LDB4NDAsMHgyZCwweGNhLDB4OGIsMHg3MCwweDAyLDB4ZjIsMHgwNCB9IH0sCi17ICAxNiwgMHg5NjcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGJhLDB4MDAsMHg4NywweDg4LDB4MmIsMHhlMCB9IH0sCi17ICAxNiwgMHg5NjgwLCAwLCB7MHgxOCwweDc4LDB4MjIsMHhkNiwweDExLDB4YTQsMHg4MiwweDJmLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHgxMiwweDAwLDB4YjcsMHg5NCB9IH0sCi17ICAxNiwgMHg5NjkwLCAwLCB7MHg2ZCwweDYwLDB4NGIsMHg3YSwweDAyLDB4ZGUsMHg0MCwweGI3LDB4YTAsMHgyZCwweGUwLDB4MGIsMHg3OCwweDA2LDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5NmEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGM5LDB4MTIsMHg4MywweDgyLDB4MjgsMHhkNCB9IH0sCi17ICAxNiwgMHg5NmIwLCAwLCB7MHg5OCwweDAwLDB4MDYsMHhlZiwweDA1LDB4YjEsMHg5MCwweDJjLDB4YzEsMHgwOSwweGI0LDB4MDIsMHgwYywweDA0LDB4YjMsMHgwMSB9IH0sCi17ICAxNiwgMHg5NmMwLCAwLCB7MHg2YywweGYwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHgzMCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHg5NmQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4NDAsMHhjYSwweDgwLDB4M2IsMHhhMCB9IH0sCi17ICAxNiwgMHg5NmUwLCAwLCB7MHg0YywweGU1LDB4MDIsMHhmOCwweDgwLDB4ZWUsMHgwMCwweDNkLDB4ODAsMHgyYywweGUwLDB4MGYsMHgzOCwweDgwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHg5NmYwLCAwLCB7MHgzZiwweGE5LDB4MGYsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGJhLDB4MDIsMHgzZSwweDgwLDB4OGIsMHhhMCwweDAzLDB4ZmEsMHgwNCB9IH0sCi17ICAxNiwgMHg5NzAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MTAsMHhmOCwweDAwLDB4MjYsMHgwMiB9IH0sCi17ICAxNiwgMHg5NzEwLCAwLCB7MHgwZiwweDg0LDB4MDMsMHhlMCwweDI0LDB4ZjgsMHgwMCwweDNlLDB4MDAsMHg0ZiwweDgwLDB4YTMsMHhlMCwweDMwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5NzIwLCAwLCB7MHgzNiwweDAyLDB4MGYsMHg4MCwweDIzLDB4ZTAsMHgwNCwweDA4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg5NzMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhkOSwweDAwLDB4YjYsMHg0MSB9IH0sCi17ICAxNiwgMHg5NzQwLCAwLCB7MHg0ZSwweDk5LDB4MGIsMHhhNCwweDAwLDB4NjksMHgxMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHhhNCwweDEwLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHg5NzUwLCAwLCB7MHgzZSwweDQwLDB4MGQsMHg5MiwweDAzLDB4ZTYsMHgwMCwweGY5LDB4MDAsMHgzYSwweDQwLDB4MGUsMHg5MCwweDAzLDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHg5NzYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg0MiB9IH0sCi17ICAxNiwgMHg5NzcwLCAwLCB7MHgwOCwweDE0LDB4OWEsMHgyNCwweDAwLDB4ODksMHgwMCwweDZlLDB4NTAsMHgwMCwweDkwLDB4MDIsMHgyNCwweDEwLDB4ZDksMHgwMiB9IH0sCi17ICAxNiwgMHg5NzgwLCAwLCB7MHg2ZSwweDQwLDB4MGIsMHg5NCwweDAzLDB4YTcsMHgwMCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5NzkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA2LDB4MDAsMHg5OSwweDAwLDB4YTYsMHg0MSB9IH0sCi17ICAxNiwgMHg5N2EwLCAwLCB7MHgwYSwweDkwLDB4MDYsMHgyYywweDAwLDB4YTksMHgwOSwweDZlLDB4NTAsMHgwOCwweDkxLDB4MDIsMHg4NCwweDA0LDB4ODksMHgwMCB9IH0sCi17ICAxNiwgMHg5N2IwLCAwLCB7MHgwZSwweDQwLDB4MGIsMHg5NCwweDAyLDB4ZTUsMHg0OSwweGI5LDB4MDAsMHgwYSwweDQwLDB4MGEsMHg5MCwweDAyLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHg5N2MwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA2LDB4MDAsMHg4MSwweDAwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHg5N2QwLCAwLCB7MHgwOCwweDEyLDB4MjIsMHgwNCwweDgxLDB4YTEsMHgwMCwweDJjLDB4NDAsMHgwOCwweDE2LDB4MDIsMHgwNCwweDAwLDB4OTEsMHgyMCB9IH0sCi17ICAxNiwgMHg5N2UwLCAwLCB7MHgyYywweDQwLDB4MGIsMHgxMiwweDQyLDB4ODQsMHg4OSwweGIxLDB4MjAsMHgyMCwweDQ4LDB4MDgsMHgxMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg5N2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDAwLDB4MzYsMHgwMCB9IH0sCi17ICAxNiwgMHg5ODAwLCAwLCB7MHgwYSwweDgwLDB4MDMsMHhhMSwweDQwLDB4ZTgsMHgwMCwweDJlLDB4MDAsMHgwYywweDAwLDB4MjMsMHhhMSwweDQwLDB4YzgsMHg1MCB9IH0sCi17ICAxNiwgMHg5ODEwLCAwLCB7MHgyZSwweDE0LDB4MGQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4NTAsMHgzYSwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZWUsMHgwMyB9IH0sCi17ICAxNiwgMHg5ODIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgxZCwweGQ0LDB4MDAsMHhmNSwweDAwLDB4YmYsMHg0MCB9IH0sCi17ICAxNiwgMHg5ODMwLCAwLCB7MHgwZiwweGQxLDB4MDMsMHhmNCwweDQ0LDB4ZGQsMHgwMiwweDNkLDB4NTAsMHgyYiwweGQxLDB4MjMsMHhmNCwweDAwLDB4ZjksMHgxMCB9IH0sCi17ICAxNiwgMHg5ODQwLCAwLCB7MHgzZiwweDQwLDB4MGQsMHg5MSwweDAzLDB4YTQsMHg0OCwweGY5LDB4MTIsMHgzZSwweDRlLDB4MWYsMHg5MCwweDAzLDB4YTYsMHgwMiB9IH0sCi17ICAxNiwgMHg5ODUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGY0LDB4MDAsMHhjNSwweDA0LDB4M2IsMHg0MCB9IH0sCi17ICAxNiwgMHg5ODYwLCAwLCB7MHgwZiwweGQ4LDB4MDMsMHhhNywweDgwLDB4ZmQsMHgwMCwweGIzLDB4NjgsMHgwZCwweGQ4LDB4NDMsMHhhNSwweDEwLDB4YzksMHhhMCB9IH0sCi17ICAxNiwgMHg5ODcwLCAwLCB7MHgzMiwweDUxLDB4NGYsMHg1YSwweDQzLDB4MzYsMHgwMCwweGM5LDB4YTAsMHg3YSwweDY4LDB4MGIsMHhkMCwweDAzLDB4YzYsMHgwMSB9IH0sCi17ICAxNiwgMHg5ODgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NzgsMHgxOCwweGNhLDB4ODgsMHg4OCwweDAyLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHg5ODkwLCAwLCB7MHg4ZCwweDg0LDB4MjIsMHgyMywweDQyLDB4ZjgsMHgwMCwweDIyLDB4MDQsMHgyOCwweDhhLDB4YTIsMHhhYSwweDk0LDB4ODgsMHhlOSB9IH0sCi17ICAxNiwgMHg5OGEwLCAwLCB7MHgyMCwweGE4LDB4MGEsMHg4MCwweDBhLDB4MjEsMHg0MCwweDgwLDB4ZTIsMHgyZSwweDI4LDB4MGIsMHg4MCwweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHg5OGIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4MjAsMHhhMSwweDA0LDB4YTgsMHhjMCB9IH0sCi17ICAxNiwgMHg5OGMwLCAwLCB7MHgwYiwweDFjLDB4MmEsMHgyNCwweDAwLDB4MzksMHgwNCwweDIwLDB4NDAsMHgyYSwweDFlLDB4MDIsMHhlNCwweDgwLDB4YjEsMHgxMCB9IH0sCi17ICAxNiwgMHg5OGQwLCAwLCB7MHgyYSwweDQ4LDB4MDksMHgxNCwweDQ2LDB4MDQsMHgwMCwweDgxLDB4MzgsMHgyYywweDViLDB4MGIsMHgxMCwweDAyLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg5OGUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGE0LDB4MTIsMHhhOSwweDI0LDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHg5OGYwLCAwLCB7MHgyOSwweDkwLDB4MDIsMHgyNCwweDAwLDB4MzksMHgwMCwweDAyLDB4NTgsMHgwOCwweDE4LDB4MTAsMHhlNiwweDAxLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHg5OTAwLCAwLCB7MHhhYSwweDQ0LDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgwZSwweDQxLDB4MGIsMHg5MCwweDAyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHg5OTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU0LDB4MDAsMHhlMSwweDAxLDB4MmEsMHg2NCB9IH0sCi17ICAxNiwgMHg5OTIwLCAwLCB7MHgyZiwweDk0LDB4MTMsMHgyNCwweDAyLDB4NzEsMHg2MCwweDEyLDB4NjAsMHg0ZCwweDkwLDB4MDAsMHhjNSwweDAyLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg5OTMwLCAwLCB7MHgzYSwweDQwLDB4MGYsMHg5MCwweDIzLDB4MjQsMHgwMiwweGM5LDB4MDIsMHgzYSwweDQwLDB4MGYsMHg5MCwweDAyLDB4ZTgsMHgwNCB9IH0sCi17ICAxNiwgMHg5OTQwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwMSwweGE0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg2MCB9IH0sCi17ICAxNiwgMHg5OTUwLCAwLCB7MHhhZiwweDkwLDB4ODMsMHg2NCwweDg4LDB4ZjksMHgyMCwweDNlLDB4NjIsMHgwMywweDkwLDB4ODMsMHhhNCwweDAwLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHg5OTYwLCAwLCB7MHgzNiwweDYwLDB4MGYsMHgxMCwweDAzLDB4YzQsMHgwMCwweGY5LDB4MDAsMHg3ZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZGEsMHgwMCB9IH0sCi17ICAxNiwgMHg5OTcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMCwweGExLDB4MDAsMHhjOCwweDgyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHg5OTgwLCAwLCB7MHg2ZiwweDAwLDB4MDMsMHhhMCwweDAwLDB4ZDgsMHg0MCwweDMwLDB4MDAsMHgwZSwweDgwLDB4MDMsMHg2MCwweDA0LDB4ZjgsMHgwMSB9IH0sCi17ICAxNiwgMHg5OTkwLCAwLCB7MHgzZSwweDEwLDB4NGYsMHg4MCwweDhiLDB4MjIsMHgwMCwweGY4LDB4MDAsMHgzMiwweDAxLDB4MGUsMHg4MCwweDAzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHg5OWEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweDM4LDB4MDAsMHgwZSwweDAwLDB4YTksMHg5MCB9IH0sCi17ICAxNiwgMHg5OWIwLCAwLCB7MHgyZiwweGU2LDB4MjAsMHg4OCwweDAwLDB4OWUsMHg4MCwweDIzLDB4ODAsMHgwYSwweGU4LDB4MDMsMHgyOCwweDAwLDB4YmEsMHgwMCB9IH0sCi17ICAxNiwgMHg5OWMwLCAwLCB7MHgxOCwweDgwLDB4MGQsMHhlYywweDAyLDB4MzgsMHg4MCwweGJhLDB4MDAsMHhhMiwweDgwLDB4MDgsMHhhMCwweDAzLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHg5OWQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZjLDB4MDIsMHg4MywweDgwLDB4MjAsMHhjOCB9IH0sCi17ICAxNiwgMHg5OWUwLCAwLCB7MHgwYiwweDIwLDB4MDIsMHgwYywweDAxLDB4OTIsMHgxMCwweDY4LDB4YzAsMHgzYSwweDNjLDB4MDIsMHhjYywweDEwLDB4M2IsMHgwMiB9IH0sCi17ICAxNiwgMHg5OWYwLCAwLCB7MHgwYywweGMwLDB4MjgsMHgzYywweDAyLDB4NGUsMHgwMCwweGIzLDB4MDAsMHgyOCwweGMwLDB4MjgsMHgzMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg5YTAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDE0LDB4MDAsMHg4NywweDQyLDB4MmIsMHhjMCB9IH0sCi17ICAxNiwgMHg5YTEwLCAwLCB7MHgyOSwweDcwLDB4MjIsMHg5YywweDAwLDB4YjYsMHgwMCwweDJiLDB4YzIsMHgwYSwweDYwLDB4ODYsMHgxYywweDAwLDB4YjcsMHgyMSB9IH0sCi17ICAxNiwgMHg5YTIwLCAwLCB7MHgyOSwweGMwLDB4MDAsMHg3NCwweDAyLDB4NWMsMHgwMCwweDM3LDB4OTEsMHgwMSwweGUwLDB4MDgsMHg3NCwweDAyLDB4YTgsMHgwMCB9IH0sCi17ICAxNiwgMHg5YTMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhjNywweDgwLDB4MjEsMHhlMCB9IH0sCi17ICAxNiwgMHg5YTQwLCAwLCB7MHgyZiwweDc4LDB4MDIsMHg5ZSwweDAwLDB4OTYsMHg4MCwweDM5LDB4ZTAsMHgyZSwweGY4LDB4MDMsMHhkZSwweDMwLDB4ZjcsMHhkMCB9IH0sCi17ICAxNiwgMHg5YTUwLCAwLCB7MHgyZCwweGYyLDB4MDAsMHg3OCwweDAzLDB4NTIsMHgwMCwweGY3LDB4YTIsMHgzYiwweGUwLDB4MGUsMHg3OCwweDA3LDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHg5YTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGI0LDB4MDAsMHhmYiwweDAwLDB4MGMsMHhjMCB9IH0sCi17ICAxNiwgMHg5YTcwLCAwLCB7MHgwZiwweDMwLDB4MDMsMHhlYywweDEwLDB4ZDMsMHgwMCwweGI0LDB4YzAsMHgyZiwweDgwLDB4MDMsMHg2YywweDQ4LDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YTgwLCAwLCB7MHgzZSwweGM4LDB4NGQsMHg5MCwweDAzLDB4YTQsMHgwMCwweGZiLDB4MjAsMHgxZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHg5YTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhjYywweDgwLDB4MmIsMHgyYyB9IH0sCi17ICAxNiwgMHg5YWEwLCAwLCB7MHgyZiwweGY4LDB4MDMsMHg3ZSwweDAwLDB4NmUsMHg4MCwweDNiLDB4YTEsMHgwZCwweGQ4LDB4NDMsMHgzZSwweDAwLDB4ZmYsMHg5MCB9IH0sCi17ICAxNiwgMHg5YWIwLCAwLCB7MHgzMywweGUwLDB4MGYsMHhlOSwweDMzLDB4ZmUsMHgwMCwweGNmLDB4YzAsMHgzZiwweGUyLDB4MGYsMHhkOCwweDAzLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg5YWMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGI0LDB4NDAsMHg4NywweDAwLDB4MjEsMHgwNCB9IH0sCi17ICAxNiwgMHg5YWQwLCAwLCB7MHgwOCwweDc4LDB4MDIsMHgxYywweDAwLDB4ODYsMHgwMCwweDIxLDB4YzAsMHgyOCwweDkwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgxMCB9IH0sCi17ICAxNiwgMHg5YWUwLCAwLCB7MHgyMSwweGMwLDB4MGYsMHg3MywweDAyLDB4Y2MsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg1MCwweDAyLDB4ZWEsMHgwMCB9IH0sCi17ICAxNiwgMHg5YWYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDlkLDB4MDAsMHhhNCwweDAwLDB4MjksMHg0OCB9IH0sCi17ICAxNiwgMHg5YjAwLCAwLCB7MHg2YSwweGYwLDB4ODIsMHg0YywweDAwLDB4YWUsMHgwMCwweGExLDB4YzQsMHgyOSwweDc0LDB4MDIsMHg1YywweDQwLDB4YTMsMHgxMCB9IH0sCi17ICAxNiwgMHg5YjEwLCAwLCB7MHg2MSwweGMyLDB4MGIsMHg2MCwweDA2LDB4YzgsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg1MCwweDAyLDB4YzAsMHgwNCB9IH0sCi17ICAxNiwgMHg5YjIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGU2LDB4MDEsMHhhMywweDAyLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHg5YjMwLCAwLCB7MHgyOCwweDNjLDB4MDIsMHgwYywweDAwLDB4ODMsMHg0MiwweDIwLDB4YzgsMHgwOCwweDEwLDB4MDIsMHhjZCwweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHg5YjQwLCAwLCB7MHgyOCwweGYwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMSwweDgzLDB4MDQsMHgyYywweGMwLDB4ODMsMHgxMCwweDAyLDB4YzgsMHgwNCB9IH0sCi17ICAxNiwgMHg5YjUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFhLDB4ODAsMHhlYiwweDAwLDB4MzgsMHhjMCB9IH0sCi17ICAxNiwgMHg5YjYwLCAwLCB7MHgwYSwweDkwLDB4MDMsMHg3YywweDIyLDB4YTIsMHg0MCwweDMyLDB4NDgsMHgwZCwweGIwLDB4MGIsMHgzZSwweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg5YjcwLCAwLCB7MHgzMywweGY0LDB4MGYsMHg5MCwweDAzLDB4ZWMsMHgwMCwweDhmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHg5MCwweDAzLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHg5YjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGUwLDB4MDAsMHhkOSwweDAyLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHg5YjkwLCAwLCB7MHgwZSwweGI2LDB4MDMsMHhlYywweDAwLDB4ZmEsMHgyMCwweDNlLDB4YzAsMHg0ZiwweDI0LDB4MjMsMHhhYywweDYwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YmEwLCAwLCB7MHhhNiwweGMwLDB4MGUsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGZiLDB4MDAsMHgzYywweGMxLDB4MGYsMHg5MCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5YmIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGY4LDB4MDIsMHhjZiwweDAwLDB4MzMsMHhlMCB9IH0sCi17ICAxNiwgMHg5YmMwLCAwLCB7MHgyYywweGYwLDB4MTMsMHhiYywweDAwLDB4MmUsMHgxMCwweGIxLDB4NjQsMHgyZSwweGYwLDB4MDIsMHgzYywweDAwLDB4ZmYsMHgwMiB9IH0sCi17ICAxNiwgMHg5YmQwLCAwLCB7MHgzZiwweGMxLDB4NGQsMHhlYywweDYzLDB4ZmUsMHgwMCwweGI3LDB4MDAsMHgzYiwweGMwLDB4MGMsMHhkOCwweDAzLDB4YzAsMHg0NCB9IH0sCi17ICAxNiwgMHg5YmUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDZjLDB4MjgsMHg4MSwweDgxLDB4MjIsMHhlMCB9IH0sCi17ICAxNiwgMHg5YmYwLCAwLCB7MHgwYSwweDM4LDB4MDIsMHgzYywweDA0LDB4YmEsMHhjOSwweDMyLDB4ZTAsMHgyMCwweDg0LDB4MDIsMHgyYywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzAwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHg5YywweDAyLDB4ZTcsMHg4MSwweGJiLDB4MDQsMHgyMiwweGMwLDB4MGEsMHg5OSwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI4LDB4NDAsMHg4OCwweDgwLDB4MjIsMHg4OCB9IH0sCi17ICAxNiwgMHg5YzIwLCAwLCB7MHgyOCwweGJjLDB4NDIsMHhhYywweDAwLDB4YmEsMHgwMCwweDJhLDB4ODAsMHgwOCwweDg0LDB4MDIsMHhhYywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzMwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHhiMCwweDgyLDB4ZTgsMHg5MCwweGFiLDB4MDAsMHg2MiwweGMwLDB4MDgsMHhiMCwweDEyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDAwLDB4MDAsMHg4OSwweDAwLDB4MmEsMHg4MCB9IH0sCi17ICAxNiwgMHg5YzUwLCAwLCB7MHgyOCwweGIyLDB4MDIsMHgwYywweDAwLDB4YmEsMHgwMCwweDIwLDB4YzAsMHgwOCwweDAwLDB4MDIsMHg4YywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzYwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDIwLDB4NGMsMHgxNCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg5YzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY4LDB4MDAsMHhjOCwweDAwLDB4YjIsMHhjMCB9IH0sCi17ICAxNiwgMHg5YzgwLCAwLCB7MHgyYywweGIyLDB4MDMsMHhhYywweDAwLDB4ZmEsMHgwMCwweDNhLDB4YzAsMHg0ZSwweGE1LDB4MDMsMHhiYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzkwLCAwLCB7MHgzZiwweGMwLDB4MDksMHhhMCwweDAzLDB4ZTksMHgwNCwweGVmLDB4MDAsMHhiYSwweGMwLDB4MGMsMHhiMCwweDAxLDB4YzAsMHgwMSB9IH0sCi17ICAxNiwgMHg5Y2EwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxOSwweGZjLDB4MDAsMHhmNSwweDAwLDB4MzUsMHhjMCB9IH0sCi17ICAxNiwgMHg5Y2IwLCAwLCB7MHhhZiwweDM0LDB4MDMsMHhmYywweDAwLDB4ZjQsMHgwMCwweDM5LDB4YzAsMHgwZiwweGMyLDB4MDMsMHg3YywweDAwLDB4ZmYsMHgwMSB9IH0sCi17ICAxNiwgMHg5Y2MwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHhhMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTgsMHgwNSB9IH0sCi17ICAxNiwgMHg5Y2QwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4MDAsMHhmZiwweDI5LDB4M2QsMHgyMCB9IH0sCi17ICAxNiwgMHg5Y2UwLCAwLCB7MHg4ZSwweGMxLDB4MDMsMHgzMiwweDQ4LDB4ZGMsMHg4MCwweDIzLDB4MjUsMHgwZSwweGYyLDB4MDMsMHgzYywweGMwLDB4ZGYsMHg4NCB9IH0sCi17ICAxNiwgMHg5Y2YwLCAwLCB7MHgzMywweGM5LDB4MGYsMHhmMiwweDAzLDB4ZmMsMHgwMCwweGNmLDB4ODAsMHgzMywweDQwLDB4MGMsMHhmMiwweDAzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZDAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGVjLDB4YzAsMHhiYiwweDYwLDB4MmUsMHgwOCB9IH0sCi17ICAxNiwgMHg5ZDEwLCAwLCB7MHgwOCwweDgxLDB4MDIsMHgyMCwweDA0LDB4ODgsMHgyMCwweDIwLDB4NDgsMHgwOCwweGYxLDB4ODIsMHgyZCwweGMwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZDIwLCAwLCB7MHgyMiwweGQ0LDB4MDksMHhmNSwweDAyLDB4ZmMsMHgwOCwweDhiLDB4MDEsMHgyMiwweDQwLDB4MjgsMHhiNCwweDAyLDB4MjAsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZDMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MjAsMHhiMywweDA5LDB4MmMsMHg4MiB9IH0sCi17ICAxNiwgMHg5ZDQwLCAwLCB7MHgwOCwweDEwLDB4MTYsMHhhMCwweDEwLDB4OTAsMHgwOCwweDI4LDB4NDgsMHgwYSwweDMyLDB4MDIsMHgwYywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZDUwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMiwweDkzLDB4MDEsMHgyMCwweDAwLDB4OGEsMHgzMSwweDIyLDB4ZTIsMHgwMSB9IH0sCi17ICAxNiwgMHg5ZDYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGFjLDB4MDQsMHhiYiwweDAwLDB4MmMsMHg4MCB9IH0sCi17ICAxNiwgMHg5ZDcwLCAwLCB7MHgwOCwweDg2LDB4MDIsMHhhMCwweDIwLDB4YTAsMHgwMCwweDJhLDB4NjAsMHgwYSwweGIwLDB4MTAsMHgyYywweDAwLDB4YWIsMHgwYyB9IH0sCi17ICAxNiwgMHg5ZDgwLCAwLCB7MHg2ZSwweGMwLDB4MDksMHhiMCwweDAyLDB4Y2MsMHgwMCwweDliLDB4MDAsMHgyMiwweDYwLDB4MGEsMHhiMCwweDAyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZDkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweGVjLDB4MDAsMHhiYiwweDAwLDB4M2UsMHgzNCB9IH0sCi17ICAxNiwgMHg5ZGEwLCAwLCB7MHgwOCwweGEwLDB4MGIsMHg4MywweDAwLDB4ZDksMHgwMiwweDNhLDB4ZTAsMHgyZSwweGIwLDB4MGIsMHgyYywweDAwLDB4ZjgsMHg4MCB9IH0sCi17ICAxNiwgMHg5ZGIwLCAwLCB7MHgzZSwweGMwLDB4NGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGNhLDB4NDAsMHhiMiwweDcyLDB4MGUsMHhiMCwweDBiLDB4YzAsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZGMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGJjLDB4MTAsMHhmYiwweDAwLDB4M2YsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZGQwLCAwLCB7MHgwZCwweGY4LDB4MTMsMHg3MCwweDQ4LDB4ZGQsMHg0MCwweDM3LDB4YzIsMHg4ZCwweGYwLDB4MDMsMHhkYywweDAwLDB4ZGQsMHhjOCB9IH0sCi17ICAxNiwgMHg5ZGUwLCAwLCB7MHgxMywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGVlLDB4NDAsMHg3ZiwweDQwLDB4MGQsMHg3MCwweDAzLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZGYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhmYiwweDAxLDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHg5ZTAwLCAwLCB7MHgwNCwweDEwLDB4MDMsMHgyMCwweDQwLDB4ZTgsMHgxMCwweDNhLDB4YzAsMHgwZCwweGIwLDB4MDMsMHhhYywweDA4LDB4ZjgsMHg0MCB9IH0sCi17ICAxNiwgMHg5ZTEwLCAwLCB7MHhiMiwweGMwLDB4MmMsMHhiMCwweDMzLDB4YTQsMHg4MiwweGRhLDB4NDAsMHhiYSwweDQwLDB4MGYsMHhiMCwweDAzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZTIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDNjLDB4MDgsMHhiZiwweDgwLDB4MjIsMHhjOCB9IH0sCi17ICAxNiwgMHg5ZTMwLCAwLCB7MHgwOCwweGI3LDB4MDAsMHgyMywweDQ0LDB4ODgsMHhkMCwweDIyLDB4ZDAsMHgwOCwweDcwLDB4ODIsMHhmYywweDAwLDB4YjIsMHhlMCB9IH0sCi17ICAxNiwgMHg5ZTQwLCAwLCB7MHgwMywweGY0LDB4MDgsMHhmNSwweDAyLDB4MzcsMHgwNCwweDhiLDB4ZDEsMHgyMiwweDYwLDB4NGIsMHhmZCwweDAyLDB4ZjIsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZTUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMywweDEwLDB4YTQsMHg0MCB9IH0sCi17ICAxNiwgMHg5ZTYwLCAwLCB7MHgwOCwweDAwLDB4MDIsMHg0OCwweDAwLDB4YTAsMHg0MiwweDJhLDB4ZDAsMHgwMSwweDMwLDB4MDIsMHg4YywweDAwLDB4YjMsMHg4MCB9IH0sCi17ICAxNiwgMHg5ZTcwLCAwLCB7MHgyYywweGMwLDB4MDksMHgzMSwweDAyLDB4Y2MsMHgwMCwweDg5LDB4MDAsMHgyMiwweGU4LDB4MDMsMHgzOCwweDAyLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZTgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4MjcsMHg2NCB9IH0sCi17ICAxNiwgMHg5ZTkwLCAwLCB7MHg2OCwweDRhLDB4MDIsMHg1MiwweDAwLDB4OGMsMHg4MCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjcsMHg4MCB9IH0sCi17ICAxNiwgMHg5ZWEwLCAwLCB7MHgyZCwweGUyLDB4MTksMHgzOSwweDAyLDB4NWUsMHgzMCwweDg1LDB4OTgsMHgyMSwweGU0LDB4MGIsMHg3OSwweDAyLDB4ZDgsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZWIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhmMywweDIwLDB4MzQsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZWMwLCAwLCB7MHgwYywweGI4LDB4MDMsMHg0OCwweDgwLDB4ZTIsMHgyMiwweDM4LDB4YzAsMHgwZCwweDMwLDB4MDMsMHg4YywweDAwLDB4ZjMsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZWQwLCAwLCB7MHgzZSwweGMwLDB4MGQsMHgzMSwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MDAsMHgzOCwweDA2LDB4MGYsMHgzMCwweDgzLDB4ZDIsMHgwMiB9IH0sCi17ICAxNiwgMHg5ZWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2IsMHgwMSB9IH0sCi17ICAxNiwgMHg5ZWYwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHg5MCwweDAwLDB4ZjYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGY0LDB4MDEsMHhmYywweDAwLDB4ZmYsMHgwMSB9IH0sCi17ICAxNiwgMHg5ZjAwLCAwLCB7MHgzMywweGMyLDB4MGUsMHhmNSwweDEzLDB4YmMsMHgwMCwweGVkLDB4MDAsMHgzZiwweGM0LDB4MGYsMHhmMCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHg5ZjEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2MsMHhjMCB9IH0sCi17ICAxNiwgMHg5ZjIwLCAwLCB7MHgwZSwweGEwLDB4MDEsMHg2NCwweDAxLDB4ZDgsMHgwMCwweDMyLDB4ZTAsMHgyYywweGI1LDB4MDMsMHgyYywweDAwLDB4ZjIsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZjMwLCAwLCB7MHg3YSwweGMwLDB4MGQsMHhiNCwweDAzLDB4MmQsMHg4MCwweGM5LDB4MDIsMHgzMiwweGMwLDB4MGMsMHhiMCwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZjQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4ODAsMHhiNywweDAwLDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHg5ZjUwLCAwLCB7MHgwZCwweDYwLDB4MDIsMHhkMCwweDAxLDB4ODQsMHgwMCwweDIxLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgxZCwweDAwLDB4YjcsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZjYwLCAwLCB7MHgyMSwweGM4LDB4MGIsMHhmNCwweDAzLDB4MWUsMHhjMCwweDg2LDB4MDAsMHgyMSwweGMwLDB4MDgsMHg3YywweDAzLDB4NTIsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZjcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4YzAsMHhiNywweDkwLDB4MmQsMHhlMCB9IH0sCi17ICAxNiwgMHg5ZjgwLCAwLCB7MHgwOCwweDc4LDB4MDYsMHhkNiwweDAxLDB4YjQsMHg4MiwweDIxLDB4ZTAsMHgwOCwweDc4LDB4MGEsMHgxZSwweDAwLDB4YjUsMHhjMCB9IH0sCi17ICAxNiwgMHg5ZjkwLCAwLCB7MHgyOSwweGU4LDB4MDksMHg3OCwweDAyLDB4MzYsMHhjMSwweDk3LDB4ODAsMHgyOCwweGIwLDB4MGEsMHg3YSwweDAyLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZmEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDAsMHhiYiwweDAwLDB4MmMsMHhlMCB9IH0sCi17ICAxNiwgMHg5ZmIwLCAwLCB7MHgwOSwweDM1LDB4ODIsMHhjMCwweGMxLDB4YTAsMHg1MSwweDIwLDB4ZTQsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4YmIsMHhjNCB9IH0sCi17ICAxNiwgMHg5ZmMwLCAwLCB7MHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MDYsMHgwMCwweDkzLDB4MTgsMHhhYSwweGIwLDB4MmEsMHgzMCwweDBhLDB4NTIsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZmQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmYSwweDAxLDB4M2QsMHhhYyB9IH0sCi17ICAxNiwgMHg5ZmUwLCAwLCB7MHg0YywweGVjLDB4MTMsMHg3OCwweDEwLDB4ZjYsMHg4MCwweGIzLDB4OTAsMHgwYywweGEwLDB4MDMsMHgyOCwweDAwLDB4ZmUsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZmYwLCAwLCB7MHgzYSwweDgxLDB4MGQsMHhhMCwweDBmLDB4MmEsMHg4MCwweGRlLDB4MDQsMHgzYiwweGEwLDB4MGUsMHhhMCwweDAzLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhhMDAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhhMDEwLCAwLCB7MHgwZCwweDgwLDB4MDIsMHhlMSwweDAwLDB4ZDgsMHg0OCwweDNlLDB4MTIsMHgwZiwweDgwLDB4MTMsMHg2MCwweDAwLDB4ZjgsMHg2MCB9IH0sCi17ICAxNiwgMHhhMDIwLCAwLCB7MHgzZSwweDAwLDB4MDcsMHg4MCwweDAzLDB4YTAsMHgwMiwweGU4LDB4MDQsMHgyNiwweDA4LDB4MDUsMHg4MCwweDAzLDB4OTIsMHgwMCB9IH0sCi17ICAxNiwgMHhhMDMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhmOSwweDA0LDB4M2EsMHg0MCB9IH0sCi17ICAxNiwgMHhhMDQwLCAwLCB7MHgwYywweDEyLDB4MDMsMHgyNCwweDgyLDB4YzksMHgwMCwweDM2LDB4NDQsMHgwZiwweDEwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhhMDUwLCAwLCB7MHgzNiwweDQwLDB4MDQsMHg5MCwweDAzLDB4MDQsMHgwMCwweGM5LDB4MDAsMHgxMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhhMDYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDgxLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhhMDcwLCAwLCB7MHgwOCwweDkwLDB4MWEsMHgyNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NjgsMHgwYiwweDk5LDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhhMDgwLCAwLCB7MHgyMiwweDQwLDB4NjgsMHg5MCwweDBhLDB4MjQsMHgwMCwweDg5LDB4MDAsMHhhMiwweDQwLDB4MDgsMHg5MCwweDBhLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhMDkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDEwLDB4MjIsMHhlMCB9IH0sCi17ICAxNiwgMHhhMGEwLCAwLCB7MHgwOCwweDk0LDB4MDAsMHgwNCwweDA0LDB4OGIsMHgwOCwweDI2LDB4YzAsMHgwYiwweDkwLDB4MDIsMHgyNCwweDA0LDB4YjksMHgwYyB9IH0sCi17ICAxNiwgMHhhMGIwLCAwLCB7MHgyNCwweDQwLDB4MGEsMHgxMCwweDAyLDB4MjQsMHgwMCwweDIzLDB4MDIsMHgyYSwweDQwLDB4YTgsMHgxMCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhhMGMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4OTAsMHhiMSwweDIwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhhMGQwLCAwLCB7MHgwOCwweDEyLDB4MDIsMHgwYywweDEwLDB4ODEsMHgwMiwweGEwLDB4NTAsMHgwYiwweDEyLDB4MDIsMHgwNCwweDgwLDB4YjEsMHgwNSB9IH0sCi17ICAxNiwgMHhhMGUwLCAwLCB7MHgwMCwweDQ4LDB4MGEsMHgxMCwweDAyLDB4MDQsMHhhMCwweGExLDB4MDAsMHgyOCwweDRhLDB4MDgsMHgxMiwweDAwLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhhMGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhmOCwweDUwLDB4YmEsMHgxNCB9IH0sCi17ICAxNiwgMHhhMTAwLCAwLCB7MHgwYywweDg1LDB4MDMsMHgwMSwweDQyLDB4YzgsMHg1MCwweDM0LDB4MDAsMHgwZiwweDg1LDB4MDMsMHgyMSwweDQwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhMTEwLCAwLCB7MHgzNiwweDAwLDB4MGUsMHg4MCwweDEzLDB4MjAsMHg4MCwweGUwLDB4MDAsMHgxYSwweDA4LDB4MGMsMHgwMCwweDAzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhhMTIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGU0LDB4NDQsMHhmOSwweDEwLDB4M2YsMHg0MCB9IH0sCi17ICAxNiwgMHhhMTMwLCAwLCB7MHgyZiwweGQxLDB4MTMsMHhmNCwweDA0LDB4ZjUsMHgwMCwweDNmLDB4NDAsMHgwZiwweDkxLDB4MGIsMHhlNCwweDQwLDB4ZmYsMHgyOCB9IH0sCi17ICAxNiwgMHhhMTQwLCAwLCB7MHhiZSwweDRlLDB4MGQsMHg5NiwweDgzLDB4ZDQsMHhhMiwweGRkLDB4MjgsMHgzNywweDRhLDB4MGYsMHg5MywweDgzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhhMTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgwNSwweGU0LDB4MTAsMHhjZCwweDAwLDB4M2YsMHg0MCB9IH0sCi17ICAxNiwgMHhhMTYwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHgzNSwweDAyLDB4NWQsMHgwMSwweDMxLDB4NDQsMHgwZiwweGQwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhhMTcwLCAwLCB7MHgzMiwweDYwLDB4MGMsMHg5OCwweDgzLDB4ZTYsMHg0MCwweGQ5LDB4MDAsMHgzNiwweDZhLDB4MGMsMHg5ZSwweDgzLDB4MjYsMHgwMSB9IH0sCi17ICAxNiwgMHhhMTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUwLDB4MDAsMHg4OCwweDAwLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHhhMTkwLCAwLCB7MHgwYiwweDgwLDB4NDIsMHgwMiwweDgwLDB4OGEsMHgwMCwweDIyLDB4MjAsMHg4OCwweDgwLDB4MDMsMHgyMCwweDA4LDB4YjgsMHg4MiB9IH0sCi17ICAxNiwgMHhhMWEwLCAwLCB7MHgyMiwweDIxLDB4MDgsMHg4OCwweDgyLDB4ZTIsMHg0MiwweDg4LDB4YTgsMHgyMiwweDIwLDB4MDgsMHhjZSwweDAyLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHhhMWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDIsMHg4MSwweDAwLDB4NjgsMHg0MCB9IH0sCi17ICAxNiwgMHhhMWMwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHg4NCwweDAxLDB4YjksMHgwMCwweDIwLDB4NDAsMHg0OSwweDEwLDB4MGEsMHgwNCwweDAwLDB4YjUsMHgwOCB9IH0sCi17ICAxNiwgMHhhMWQwLCAwLCB7MHgyMSwweDQ2LDB4MDgsMHg1MCwweDAyLDB4ZDQsMHgwMCwweDhkLDB4MjAsMHgyNSwweDRhLDB4MGIsMHg1MCwweDAyLDB4NDIsMHgwMSB9IH0sCi17ICAxNiwgMHhhMWUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxMSwweGE0LDB4MDAsMHg4OSwweDA0LDB4NmUsMHg1NCB9IH0sCi17ICAxNiwgMHhhMWYwLCAwLCB7MHgwYiwweDEwLDB4MTIsMHhhNCwweDAxLDB4YTksMHgwMCwweGEyLDB4NDAsMHgxOCwweDkwLDB4MTYsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhhMjAwLCAwLCB7MHgyMywweDQwLDB4MTgsMHhkMCwweDAyLDB4ZjQsMHgwMCwweDhkLDB4NDAsMHgyMSwweDRhLDB4MGIsMHhkMCwweDAyLDB4NDYsMHgwNCB9IH0sCi17ICAxNiwgMHhhMjEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhjOSwweDAwLDB4M2EsMHg1MCB9IH0sCi17ICAxNiwgMHhhMjIwLCAwLCB7MHg4ZiwweDk2LDB4MGIsMHg4NCwweDAyLDB4ZjEsMHgwMSwweDMwLDB4NDgsMHg4ZCwweDkwLDB4MDMsMHgyNCwweDEwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhhMjMwLCAwLCB7MHhiMiwweDQwLDB4MmMsMHg5MCwweDAzLDB4ZTYsMHg0MCwweGQxLDB4YzAsMHgzNiwweDUwLDB4MmYsMHg5MCwweDBiLDB4NjgsMHgwNCB9IH0sCi17ICAxNiwgMHhhMjQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2MCB9IH0sCi17ICAxNiwgMHhhMjUwLCAwLCB7MHgwZiwweDk5LDB4YzMsMHg2NCwweDAwLDB4ZDksMHgyOCwweDNlLDB4NDAsMHgwZCwweDkwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHg0MCB9IH0sCi17ICAxNiwgMHhhMjYwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgyMCwweGY5LDB4NDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhMjcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhmOCwweDAxLDB4MzYsMHgwMCB9IH0sCi17ICAxNiwgMHhhMjgwLCAwLCB7MHg4ZiwweDgwLDB4MDMsMHhlMCwweDAyLDB4ZjgsMHgwNCwweDMyLDB4MDAsMHgwZCwweDgwLDB4NDMsMHgyMCwweDAyLDB4Y2MsMHgwMCB9IH0sCi17ICAxNiwgMHhhMjkwLCAwLCB7MHgzZiwweDAwLDB4MGYsMHhjMCwweDEzLDB4OTAsMHgwMiwweGRjLDB4NDAsMHgzZiwweDEwLDB4NGMsMHhjMCwweDIzLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhhMmEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHhiYSwweDAwLDB4MjIsMHg4MCB9IH0sCi17ICAxNiwgMHhhMmIwLCAwLCB7MHgwYiwweGU4LDB4MjAsMHhmOCwweDAwLDB4NGUsMHhjMCwweDIzLDB4YTAsMHgwOCwweGEwLDB4MDMsMHg2OCwweDAwLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhMmMwLCAwLCB7MHgyZSwweDgwLDB4MWYsMHhhMCwweDAyLDB4MmEsMHgwNiwweDhhLDB4MDAsMHgyZSwweGEwLDB4MDIsMHg2MCwweDAzLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhMmQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhhMmUwLCAwLCB7MHgwYiwweDNkLDB4MDIsMHhjMCwweDAzLDB4MjMsMHgwMCwweDIwLDB4ZTAsMHgwMSwweGIwLDB4MDYsMHg0YywweDAwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhhMmYwLCAwLCB7MHgyZSwweGMwLDB4NGIsMHgzMCwweDAyLDB4OGUsMHgwOCwweDgzLDB4ODAsMHgyYywweGM0LDB4MDAsMHgzNCwweDhlLDB4NGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhMzAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFjLDB4ODAsMHhiNSwweDgwLDB4NjEsMHhjMCB9IH0sCi17ICAxNiwgMHhhMzEwLCAwLCB7MHgwYiwweDQwLDB4MDIsMHhkNCwweDAwLDB4ODQsMHgwOCwweDIzLDB4YzIsMHgwOCwweDUwLDB4MDIsMHg1ZSwweGMwLDB4ODQsMHgwMSB9IH0sCi17ICAxNiwgMHhhMzIwLCAwLCB7MHgyZCwweDAwLDB4OGEsMHgwOCwweDAyLDB4MTAsMHgyNCwweDg0LDB4MDgsMHg2ZCwweDAwLDB4MGEsMHgwMywweDEyLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhMzMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhmNSwweDgyLDB4MjEsMHg2MCB9IH0sCi17ICAxNiwgMHhhMzQwLCAwLCB7MHgwZiwweDc4LDB4MDMsMHhkNiwweDA0LDB4YWUsMHg4MCwweDMxLDB4ZTAsMHgwZCwweDU4LDB4MjMsMHg3ZSwweDAwLDB4YzYsMHg4MCB9IH0sCi17ICAxNiwgMHhhMzUwLCAwLCB7MHgyZCwweGUwLDB4MGIsMHg3OCwweDAzLDB4OGUsMHgwMCwweGQ3LDB4ODIsMHgzZCwweGYwLDB4MGMsMHg3YSwweDAzLDB4NmEsMHgwMiB9IH0sCi17ICAxNiwgMHhhMzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4MDAsMHhmMSwweDAwLDB4YmEsMHhkOCB9IH0sCi17ICAxNiwgMHhhMzcwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlNCwweDEyLDB4ZjgsMHgwMCwweGJlLDB4ODAsMHgwZSwweDEwLDB4MDMsMHhlYywweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhhMzgwLCAwLCB7MHgzZSwweDAwLDB4NWYsMHg4MCwweDAzLDB4ZTAsMHgwOCwweGY4LDB4MDQsMHgzYywweDAwLDB4MGYsMHg4MCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhhMzkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGZlLDB4MjAsMHhmZiwweDgwLDB4M2YsMHhmMCB9IH0sCi17ICAxNiwgMHhhM2EwLCAwLCB7MHgwZiwweGY4LDB4MDMsMHhkMiwweDAwLDB4ZWYsMHg4NCwweGIzLDB4NjEsMHgwYywweGI5LDB4MDMsMHhmZSwweDAwLDB4ZmYsMHg4MCB9IH0sCi17ICAxNiwgMHhhM2IwLCAwLCB7MHgzMywweGUwLDB4MGMsMHhmOCwweDEzLDB4MjIsMHgxMSwweGNkLDB4OTAsMHgzZiwweDYwLDB4MGMsMHhlOCwweDAzLDB4MTAsMHgwMCB9IH0sCi17ICAxNiwgMHhhM2MwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDAsMHhmNSwweDAwLDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHhhM2QwLCAwLCB7MHgwYiwweDAwLDB4MDIsMHhkNCwweDA0LDB4ODQsMHgyMCwweDIzLDB4NDAsMHgwOCwweDVhLDB4MDIsMHhkYywweDAwLDB4YjQsMHgwMCB9IH0sCi17ICAxNiwgMHhhM2UwLCAwLCB7MHgyMSwweDAwLDB4MjgsMHhjMiwweDAyLDB4MWUsMHgwNCwweDg2LDB4MDQsMHgyZCwweDg4LDB4MDgsMHhkMCwweDAyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhhM2YwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDljLDB4MDAsMHhiNSwweDAwLDB4MmQsMHg0MCB9IH0sCi17ICAxNiwgMHhhNDAwLCAwLCB7MHgwYiwweDcwLDB4MDIsMHhmNCwweDIwLDB4YTcsMHgwNCwweDIxLDB4YzAsMHgwYSwweDUwLDB4MDIsMHhkYywweDAwLDB4YmUsMHgwMCB9IH0sCi17ICAxNiwgMHhhNDEwLCAwLCB7MHgyMSwweGMwLDB4MDgsMHg3MCwweDEyLDB4MDAsMHgwMCwweDg1LDB4MDAsMHgyZCwweDQwLDB4ODgsMHg2OCwweDBhLDB4MDQsMHgwMCB9IH0sCi17ICAxNiwgMHhhNDIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgxNCwweGNjLDB4MDAsMHhhMSwweDAwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhhNDMwLCAwLCB7MHgxYiwweDA4LDB4MDYsMHhjNCwweDIwLDB4ODAsMHgwMCwweDIwLDB4OTgsMHgxYSwweDEwLDB4MDIsMHhjYywweDAwLDB4YjEsMHgwOCB9IH0sCi17ICAxNiwgMHhhNDQwLCAwLCB7MHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MGMsMHgwMSwweDgyLDB4YzAsMHgyYywweGFjLDB4MjgsMHg5MCwweDIyLDB4MTgsMHgwNCB9IH0sCi17ICAxNiwgMHhhNDUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhiMywweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhhNDYwLCAwLCB7MHgwZiwweGJhLDB4MDMsMHhlNSwweDAyLDB4ZTksMHgwNCwweDMyLDB4OTAsMHhhZSwweGIwLDB4MDMsMHhmYywweDEwLDB4ZmIsMHg0MCB9IH0sCi17ICAxNiwgMHhhNDcwLCAwLCB7MHhiMiwweDAwLDB4MGMsMHg4MCwweDBiLDB4MmMsMHgwMiwweDgyLDB4MTgsMHgzZiwweGEwLDB4MGMsMHhkMCwweDAzLDB4MmUsMHgwNCB9IH0sCi17ICAxNiwgMHhhNDgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgwMCwweGVjLDB4MDQsMHhmYiwweDAxLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhhNDkwLCAwLCB7MHgwZiwweGI2LDB4NDMsMHhlNCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4ODAsMHgwMSwweDkwLDB4MDMsMHhlYywweDAwLDB4ZjgsMHg4MSB9IH0sCi17ICAxNiwgMHhhNGEwLCAwLCB7MHgzZSwweGQwLDB4MGQsMHhiNCwweDUzLDB4ZTAsMHgwMCwweGY5LDB4NDAsMHgzZSwweDQwLDB4MGYsMHhhMCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhhNGIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGRjLDB4MDIsMHhjZCwweDgwLDB4MzMsMHg2MCB9IH0sCi17ICAxNiwgMHhhNGMwLCAwLCB7MHgyYywweGRhLDB4MDMsMHhmYywweDAwLDB4ZWMsMHgwMCwweDMzLDB4NDAsMHgwZiwweGYyLDB4MDMsMHg3YywweDA0LDB4ZmUsMHgwMCB9IH0sCi17ICAxNiwgMHhhNGQwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHhjOCwweDAzLDB4M2MsMHgwMCwweGNlLDB4MDAsMHgzMSwweDgwLDB4MGMsMHhkMSwweDAzLDB4MjQsMHgwNCB9IH0sCi17ICAxNiwgMHhhNGUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTEsMHgwNCwweDZjLDB4MDAsMHgwOSwweDAwLDB4MmEsMHg2NCB9IH0sCi17ICAxNiwgMHhhNGYwLCAwLCB7MHgwOCwweDhlLDB4MDIsMHhjMiwweDEwLDB4YTAsMHgxMCwweDNlLDB4MTAsMHgwYiwweDk4LDB4MDIsMHhlYywweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhhNTAwLCAwLCB7MHgwMiwweGQ4LDB4MDgsMHhiZSwweDIyLDB4MjAsMHgwMCwweDg5LDB4MDAsMHgyMiwweDUwLDB4MDgsMHhhMCwweDAyLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhhNTEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHgwYiwweDIwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhhNTIwLCAwLCB7MHgwOCwweGEwLDB4MDIsMHhlNSwweDQyLDB4YWIsMHgwNCwweDIyLDB4MTgsMHgwYiwweGIwLDB4MDIsMHg2YywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTMwLCAwLCB7MHgyMCwweDA0LDB4MDgsMHgwMSwweDAyLDB4MDAsMHgwNCwweGE4LDB4NDAsMHgyMiwweDEwLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDgsMHg4MywweDAwLDB4MjgsMHg0MCB9IH0sCi17ICAxNiwgMHhhNTUwLCAwLCB7MHgwOCwweDA0LDB4MDIsMHhjNCwweDAyLDB4YTgsMHgwMCwweDJjLDB4MDAsMHgwYiwweDEyLDB4MDIsMHhjYywweDAwLDB4YjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTYwLCAwLCB7MHgyMCwweGMwLDB4NDAsMHgzMCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAsMHhhOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4MDIsMHgxMSB9IH0sCi17ICAxNiwgMHhhNTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwZCwweDZjLDB4MDAsMHhjOSwweDAwLDB4MzMsMHg0MCB9IH0sCi17ICAxNiwgMHhhNTgwLCAwLCB7MHgwYywweGIwLDB4MDMsMHhlYywweDAyLDB4ZWIsMHgwMCwweDMyLDB4NDAsMHgwZiwweGIwLDB4MDMsMHg2YywweDAwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTkwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHg4MCwweGM4LDB4MDAsMHgzMCwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMyB9IH0sCi17ICAxNiwgMHhhNWEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCB9IH0sCi17ICAxNiwgMHhhNWIwLCAwLCB7MHgwZiwweGMyLDB4MTMsMHhmMCwweDAwLDB4ZjQsMHgwMCwweDNmLDB4MDAsMHg0ZiwweGQ0LDB4MDMsMHhmYywweDAwLDB4ZjUsMHgwMCB9IH0sCi17ICAxNiwgMHhhNWMwLCAwLCB7MHgzZiwweGMwLDB4OGYsMHhmMCwweDAzLDB4ZmMsMHg0MCwweGZmLDB4MDAsMHgzNywweGMwLDB4MmYsMHhmMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhhNWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGYwLDB4MDAsMHhjYywweDAwLDB4MzMsMHgwMCB9IH0sCi17ICAxNiwgMHhhNWUwLCAwLCB7MHgwZSwweGQwLDB4MGIsMHgzMywweDAwLDB4Y2MsMHgwMCwweDMzLDB4ZTAsMHgwZiwweGMwLDB4ODMsMHg3YywweDAwLDB4Y2YsMHgyMCB9IH0sCi17ICAxNiwgMHhhNWYwLCAwLCB7MHg3YiwweDA5LDB4OGMsMHhmOCwweDAzLDB4ZmUsMHg1MCwweGNmLDB4MzgsMHgzZiwweGUxLDB4MGQsMHhjMiwweDAzLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhNjAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGUyLDB4MDAsMHg5OCwweDA4LDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhhNjEwLCAwLCB7MHgwOCwweDk4LDB4MDIsMHgyMCwweDAwLDB4ODgsMHhkMCwweDIyLDB4ZTAsMHgwZSwweGI0LDB4MjIsMHg3ZCwweDE5LDB4OWYsMHg2OSB9IH0sCi17ICAxNiwgMHhhNjIwLCAwLCB7MHgyZSwweDkwLDB4MDgsMHgzMCwweDkyLDB4MjgsMHg4MSwweGRiLDB4NjQsMHgyZSwweGUxLDB4ODgsMHgxNiwweGEyLDB4ZTAsMHgwNCB9IH0sCi17ICAxNiwgMHhhNjMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM4LDB4MDAsMHg5MCwweDI0LDB4MjAsMHgwMSB9IH0sCi17ICAxNiwgMHhhNjQwLCAwLCB7MHgwOCwweDEwLDB4MTYsMHgwMCwweDgyLDB4ODMsMHgwMSwweDI4LDB4YzEsMHgwYiwweDAyLDB4ODIsMHgwYywweGUwLDB4YTMsMHgxMCB9IH0sCi17ICAxNiwgMHhhNjUwLCAwLCB7MHgyOCwweDBlLDB4MWIsMHg5MiwweDAyLDB4ODQsMHg4NCwweDkzLDB4MjAsMHgyZSwweGMwLDB4MDgsMHgzMSwweDAyLDB4ZTIsMHgwMSB9IH0sCi17ICAxNiwgMHhhNjYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGE4LDB4MTAsMHg5OCwweDAwLDB4MjIsMHg4MCB9IH0sCi17ICAxNiwgMHhhNjcwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgwMCwweDYwLDB4OGEsMHgxMCwweDJhLDB4YzAsMHgwYSwweDIwLDB4MDIsMHg2YywweDE4LDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhhNjgwLCAwLCB7MHg2ZSwweDYwLDB4MmIsMHg5MCwweDAyLDB4NDYsMHgyMCwweDhiLDB4MDAsMHgyZSwweGMyLDB4MDgsMHhiMSwweDgyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHhhNjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMSwweGU0LDB4MDIsMHhjYiwweDAwLDB4YjIsMHg0MCB9IH0sCi17ICAxNiwgMHhhNmEwLCAwLCB7MHgyYywweDkyLDB4MDMsMHgyNywweDAwLDB4ODgsMHgwMCwweGJhLDB4YzAsMHgwZiwweDg4LDB4MDMsMHgyYywweDAwLDB4ZWIsMHgwNCB9IH0sCi17ICAxNiwgMHhhNmIwLCAwLCB7MHgzYSwweGEwLDB4Y2YsMHgyYywweGEzLDB4ZWQsMHgwMCwweDliLDB4MDAsMHgzYywweGYwLDB4MmQsMHg4YywweDMzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHhhNmMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI0LDB4MDQsMHhlZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhhNmQwLCAwLCB7MHgwZCwweDUxLDB4MDMsMHhmMCwweDAwLDB4ZjEsMHg4MSwweDM3LDB4YzAsMHgwZSwweGY0LDB4MDMsMHg5YywweDEwLDB4Y2YsMHgwMCB9IH0sCi17ICAxNiwgMHhhNmUwLCAwLCB7MHgzZCwweDgwLDB4MGMsMHhlYywweDA3LDB4YjgsMHgwOCwweGZmLDB4MDIsMHgxZiwweGM0LDB4MGYsMHhjOCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhNmYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweDllLDB4MDAsMHhjMywweDAwLDB4MzgsMHg0MCB9IH0sCi17ICAxNiwgMHhhNzAwLCAwLCB7MHgwYywweDkyLDB4MDMsMHhhNCwweDgwLDB4ZmIsMHgyMCwweDNhLDB4YzAsMHgwZCwweDk0LDB4MDMsMHgyYywweDQwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhhNzEwLCAwLCB7MHgzZSwweDAxLDB4MGYsMHg4MCwweDAzLDB4ZTUsMHgwMCwweGViLDB4MDAsMHgzYSwweGMwLDB4MGQsMHg4NCwweDBiLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhhNzIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJjLDB4MDgsMHg4YiwweDAyLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhhNzMwLCAwLCB7MHgwOCwweDkyLDB4MDMsMHgyMSwweDAwLDB4OGIsMHg0OCwweDIyLDB4YzAsMHgwYiwweGI3LDB4MDIsMHgzZCwweDQwLDB4M2YsMHgwMSB9IH0sCi17ICAxNiwgMHhhNzQwLCAwLCB7MHgyMiwweDc0LDB4MGIsMHg5MCwweDAyLDB4MjgsMHgwNCwweGJmLDB4MDAsMHhiMiwweGMwLDB4MGIsMHg4NSwweDAyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhhNzUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQwLDB4MDEsMHg4MCwweDAwLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhNzYwLCAwLCB7MHgwOCwweDJjLDB4MTIsMHg4OCwweDQwLDB4YjAsMHg0MCwweDA4LDB4YzAsMHgwYiwweDE4LDB4MDIsMHgwZSwweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhhNzcwLCAwLCB7MHgyOCwweDIwLDB4MTEsMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweDAwLDB4MDksMHgwMCwweDA2LDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHhhNzgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDEyLDB4MDAsMHg4NCwweDgwLDB4MjEsMHhhMCB9IH0sCi17ICAxNiwgMHhhNzkwLCAwLCB7MHgyOCwweDY4LDB4MTIsMHgzYSwweDAwLDB4ODQsMHg4MCwweDI1LDB4ZTAsMHg4YiwweDU4LDB4MDIsMHgxZSwweDQwLDB4YjcsMHg4MiB9IH0sCi17ICAxNiwgMHhhN2EwLCAwLCB7MHgyMSwweGE2LDB4MGIsMHg3OCwweDAyLDB4MWEsMHgwMCwweGI3LDB4ODAsMHgyMSwweDIwLDB4MGIsMHg1OCwweDAyLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHhhN2IwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA4LDB4MDAsMHhjOCwweDIxLDB4MzgsMHgwOSB9IH0sCi17ICAxNiwgMHhhN2MwLCAwLCB7MHgwYywweDI4LDB4MDMsMHg4MCwweDAxLDB4ZjEsMHgwMCwweDM4LDB4YzAsMHgwZCwweDg1LDB4MDIsMHgwYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhhN2QwLCAwLCB7MHgzOCwweDg1LDB4MGYsMHgxMCwweDAzLDB4OGMsMHgwMCwweGViLDB4MTAsMHgzYywweGM4LDB4MGQsMHgzMCwweDAzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhhN2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweDk4LDB4MDAsMHhmYywweDAxLDB4M2YsMHg4MCB9IH0sCi17ICAxNiwgMHhhN2YwLCAwLCB7MHgwZiwweDY4LDB4MDMsMHhkMCwweDQwLDB4ZmMsMHgwMCwweDNiLDB4YzAsMHgwZCwweGMwLDB4MDMsMHhmYywweDIwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhhODAwLCAwLCB7MHgzYiwweGM1LDB4MGYsMHhmMCwweDBiLDB4YjQsMHg0MCwweGZmLDB4MTgsMHgzZiwweDAwLDB4MGYsMHhmMSwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhhODEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU0LDB4MDAsMHhlYiwweDAwLDB4YjAsMHg0MSB9IH0sCi17ICAxNiwgMHhhODIwLCAwLCB7MHgwYywweGEwLDB4MDMsMHhlMCwweDA0LDB4Y2EsMHgwNCwweGIwLDB4ZTAsMHgwZSwweGIwLDB4MDMsMHhlYywweDgwLDB4Y2IsMHgyMCB9IH0sCi17ICAxNiwgMHhhODMwLCAwLCB7MHgzMiwweDgxLDB4MGMsMHhhMCwweDAzLDB4ZWUsMHgwMCwweGRiLDB4MDAsMHgzZSwweDAwLDB4MGUsMHhiMCwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhhODQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDk0LDB4MDQsMHg4NywweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHhhODUwLCAwLCB7MHg0OCwweDYwLDB4MDIsMHhmMCwweDAwLDB4ODcsMHgwMCwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhmYywweGEwLDB4ODMsMHgyOCB9IH0sCi17ICAxNiwgMHhhODYwLCAwLCB7MHhhMywweDgwLDB4MDgsMHg2MCwweDAyLDB4ZGMsMHgwMCwweDg3LDB4MjAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhhODcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDljLDB4MDIsMHhhMywweDgwLDB4MjEsMHg2MCB9IH0sCi17ICAxNiwgMHhhODgwLCAwLCB7MHgwOCwweDY4LDB4MDIsMHhkMiwweDAwLDB4ODcsMHg4MCwweDIxLDB4ZTAsMHgyOSwweDc4LDB4MDIsMHhkZSwweDgwLDB4ODcsMHg5MCB9IH0sCi17ICAxNiwgMHhhODkwLCAwLCB7MHgyMSwweGEwLDB4MTksMHg0OCwweDAyLDB4ZmUsMHgwMCwweDk3LDB4ODAsMHgyZCwweGUwLDB4MGEsMHgzOCwweDgyLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhhOGEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDEsMHg4MywweDgwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhhOGIwLCAwLCB7MHgwOCwweDIwLDB4NDIsMHhjMCwweDMwLDB4ODMsMHg3MCwweGEwLDB4YzAsMHg4OSwweDM0LDB4MDIsMHhjYywweDAyLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhhOGMwLCAwLCB7MHg2MCwweGMwLDB4MjksMHgwMCwweDAyLDB4Y2UsMHgwMCwweDgzLDB4MDAsMHgyYywweGM4LDB4MGIsMHhiYywweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhhOGQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE5LDB4MDAsMHhlYSwweGUyLDB4MzIsMHg5MCB9IH0sCi17ICAxNiwgMHhhOGUwLCAwLCB7MHgyYywweGUwLDB4MDMsMHhmYiwweDAyLDB4Y2UsMHhjMCwweDMyLDB4ODAsMHgwZiwweGU0LDB4MDMsMHhlOCwweDAwLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhOGYwLCAwLCB7MHgzMywweDg4LDB4MGQsMHg2NCwweGMzLDB4ZmEsMHgwMCwweGRhLDB4MDAsMHgzZCwweDkwLDB4MGUsMHhlMCwweDBiLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhhOTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGMwLDB4MjQsMHhmOCwweDA4LDB4M2UsMHgxMiB9IH0sCi17ICAxNiwgMHhhOTEwLCAwLCB7MHgwZiwweGMwLDB4MDMsMHhlMCwweDQ4LDB4ZjAsMHgwMCwweDNlLDB4MDAsMHgwZSwweDgwLDB4OTMsMHhjMCwweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhOTIwLCAwLCB7MHg3ZSwweDAxLDB4MGUsMHg4MCwweGMyLDB4ZTAsMHg0MCwweGY4LDB4MDAsMHg3ZSwweDAwLDB4OGYsMHg4NCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhhOTMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU1LDB4MDAsMHhjMSwweDAxLDB4MzIsMHg0OCB9IH0sCi17ICAxNiwgMHhhOTQwLCAwLCB7MHgwYywweDk4LDB4MDMsMHhlNiwweDQwLDB4YzksMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2NiwweDAwLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHhhOTUwLCAwLCB7MHgxOCwweDYxLDB4MGMsMHg5MCwweDAzLDB4NjQsMHgyMCwweGY5LDB4MDUsMHgzZSwweDQwLDB4MGMsMHg5MCwweDgzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhhOTYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY2LDB4MjAsMHg4OSwweDAwLDB4MjAsMHg1MiB9IH0sCi17ICAxNiwgMHhhOTcwLCAwLCB7MHgyOCwweDEwLDB4YzIsMHgyNiwweDAyLDB4YTksMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MGEsMHgyNywweDAwLDB4YTksMHgwMCB9IH0sCi17ICAxNiwgMHhhOTgwLCAwLCB7MHgyMiwweDcwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwOCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGEsMHg5MCwweDBhLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhOTkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDIsMHg4ZCwweDAwLDB4MjMsMHg0MCB9IH0sCi17ICAxNiwgMHhhOWEwLCAwLCB7MHgwOCwweGQxLDB4MDIsMHg4NCwweDIwLDB4ODksMHgwMCwweDIyLDB4NjAsMHgwYiwweDExLDB4ZjIsMHgyNCwweGIwLDB4ODEsMHgwMCB9IH0sCi17ICAxNiwgMHhhOWIwLCAwLCB7MHgyYSwweDQ2LDB4MDgsMHg5MCwweDQyLDB4NjQsMHgwOCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MiwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhhOWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDE0LDB4ODAsMHg4NSwweDIwLDB4MjMsMHg0OCB9IH0sCi17ICAxNiwgMHhhOWQwLCAwLCB7MHgwOCwweDUyLDB4MDIsMHg4NCwweDA4LDB4ODEsMHgwMCwweDIwLDB4NDAsMHgwYiwweDEyLDB4MDIsMHgwNCwweDgwLDB4YTEsMHgyMCB9IH0sCi17ICAxNiwgMHhhOWUwLCAwLCB7MHgyOCwweDQ5LDB4MjgsMHg5MCwweDAyLDB4MDQsMHgwMCwweDMxLDB4MjAsMHgyZSwweDQwLDB4MDgsMHgzMiwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhhOWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjOCwweDUwLDB4YjIsMHgxNCB9IH0sCi17ICAxNiwgMHhhYTAwLCAwLCB7MHgwYywweGMwLDB4MDMsMHhhMSwweDQwLDB4YzgsMHgwMCwweGIyLDB4MDAsMHgwNywweDg1LDB4MDMsMHgyMSwweDQwLDB4YzgsMHg1MCB9IH0sCi17ICAxNiwgMHhhYTEwLCAwLCB7MHgzYSwweDE1LDB4MGMsMHg4NSwweDAzLDB4NjEsMHg0MCwweGY4LDB4NTEsMHgzZSwweDAwLDB4MmMsMHg4NSwweDAzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhhYTIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGM0LDB4NDgsMHhmOSwweDEwLDB4M2UsMHg0NCB9IH0sCi17ICAxNiwgMHhhYTMwLCAwLCB7MHg0ZiwweDkxLDB4MDMsMHg3NCwweDAwLDB4ZjUsMHg0NCwweDNlLDB4NDAsMHgwZiwweGQxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMCB9IH0sCi17ICAxNiwgMHhhYTQwLCAwLCB7MHgzNywweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZDQsMHgwMCwweGY5LDB4MTAsMHgzZiwweGMwLDB4MGYsMHhkMSwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhhYTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGY2LDB4YTAsMHhkZCwweDhjLDB4MzMsMHg3OCB9IH0sCi17ICAxNiwgMHhhYTYwLCAwLCB7MHgwZSwweGRhLDB4MDMsMHgzNSwweDAwLDB4Y2QsMHhhMCwweDMzLDB4NDAsMHgwZCwweGY4LDB4MGIsMHgzNiwweDgxLDB4ZTksMHg4MCB9IH0sCi17ICAxNiwgMHhhYTcwLCAwLCB7MHgzMywweDcwLDB4MGMsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4YzAsMHgzZSwweGMwLDB4MGYsMHhkYywweDAzLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHhhYTgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUxLDB4MDQsMHhiOCwweDQwLDB4MjAsMHgzYyB9IH0sCi17ICAxNiwgMHhhYTkwLCAwLCB7MHgwYywweDg1LDB4MDIsMHgwMiwweDg0LDB4OGEsMHg0MCwweDIyLDB4MDAsMHgwOCwweDhmLDB4ODIsMHgyMywweDAwLDB4YjgsMHhlOCB9IH0sCi17ICAxNiwgMHhhYWEwLCAwLCB7MHgyMiwweDIwLDB4MDgsMHg4OCwweDAyLDB4ZTIsMHgwMCwweGI4LDB4ZDAsMHgyZSwweDAwLDB4MGIsMHg4YywweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHhhYWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHg5MSwweDAwLDB4NjAsMHg0OCB9IH0sCi17ICAxNiwgMHhhYWMwLCAwLCB7MHg0YiwweDEwLDB4MDIsMHgwNCwweDhhLDB4ODEsMHg0MCwweDYwLDB4NDAsMHg0OSwweDEwLDB4MDIsMHg4ZCwweGEwLDB4YTEsMHg0MSB9IH0sCi17ICAxNiwgMHhhYWQwLCAwLCB7MHgyMCwweDUwLDB4MDksMHgxMiwweDIyLDB4YzQsMHg4MCwweGIxLDB4MjAsMHgyYywweDQwLDB4NGIsMHgzZSwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhhYWUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE0LDB4MDgsMHhiOSwweDA0LDB4YTAsMHg0MCB9IH0sCi17ICAxNiwgMHhhYWYwLCAwLCB7MHg0OCwweGIwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgwMCwweDgyLDB4NDAsMHgwOCwweDkwLDB4YTYsMHhhNCwweDAwLDB4YjksMHgwNCB9IH0sCi17ICAxNiwgMHhhYjAwLCAwLCB7MHgyMiwweDU0LDB4MjksMHg5NSwweDAyLDB4ZTUsMHg0MCwweGI5LDB4MDAsMHg2ZSwweDQwLDB4MGIsMHg5MiwweDAyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHhhYjEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU0LDB4MDAsMHg5MSwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhhYjIwLCAwLCB7MHgwZiwweDkwLDB4MDksMHgyNCwweDAwLDB4ODksMHg5MCwweDMyLDB4NDAsMHgwZCwweDk0LDB4MDMsMHhhNCwweDAwLDB4ZTksMHgwMiB9IH0sCi17ICAxNiwgMHhhYjMwLCAwLCB7MHg3MiwweDYwLDB4MGQsMHg5NCwweDAzLDB4ZTQsMHgwMSwweGY5LDB4MDEsMHgzZSwweDYwLDB4MGYsMHg5MCwweDAzLDB4ZTgsMHgwNCB9IH0sCi17ICAxNiwgMHhhYjQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4NDAsMHhmOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhhYjUwLCAwLCB7MHg0ZiwweDkwLDB4MDMsMHhlNywweDEwLDB4ZjksMHg4MCwweDNlLDB4NDAsMHgwZiwweDEwLDB4MTMsMHg2NCwweDAwLDB4ZjEsMHgwMCB9IH0sCi17ICAxNiwgMHhhYjYwLCAwLCB7MHhiZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4ZTYsMHgwOCwweGY5LDB4MDEsMHgzZSwweDY0LDB4MGYsMHg5MCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhhYjcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMCwweGEwLDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwOCB9IH0sCi17ICAxNiwgMHhhYjgwLCAwLCB7MHgwYywweDAxLDB4MGIsMHgyMCwweDQwLDB4YzgsMHg0MCwweDMyLDB4MDAsMHgwZSwweDg0LDB4ODMsMHgyMCwweDAwLDB4ZjgsMHgwNCB9IH0sCi17ICAxNiwgMHhhYjkwLCAwLCB7MHgzZSwweDA0LDB4MGYsMHg4MCwweDAzLDB4MjEsMHgwMCwweGU4LDB4MDAsMHgzZSwweDEwLDB4MGYsMHg4OCwweDAzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHhhYmEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDM4LDB4MDAsMHgzZSwweDA0LDB4MjMsMHg4MCB9IH0sCi17ICAxNiwgMHhhYmIwLCAwLCB7MHgwOCwweGVjLDB4MTIsMHgzOSwweDQ0LDB4YTYsMHgwMCwweDI4LDB4ODEsMHgwOCwweGUwLDB4MDAsMHgzOCwweDA4LDB4YmEsMHgwMCB9IH0sCi17ICAxNiwgMHhhYmMwLCAwLCB7MHgzZiwweDgwLDB4MGIsMHhhMCwweDAyLDB4YTgsMHgwMCwweDhhLDB4MDIsMHgyZSwweDgwLDB4MGIsMHhlMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhhYmQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQ4LDB4MDAsMHgzMSwweDAwLDB4MjQsMHhkMCB9IH0sCi17ICAxNiwgMHhhYmUwLCAwLCB7MHgwOCwweDNlLDB4MTIsMHhhZSwweDA4LDB4ODEsMHhhMCwweDJjLDB4YzAsMHgwYSwweDM4LDB4MDAsMHg0YywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhhYmYwLCAwLCB7MHg2ZSwweGMwLDB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAsMHg2YywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhhYzAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDE4LDB4MDAsMHhiNSwweDEwLDB4MjUsMHhjMCB9IH0sCi17ICAxNiwgMHhhYzEwLCAwLCB7MHgyOCwweDYwLDB4MTIsMHg5MCwweDEwLDB4YTUsMHgwOCwweDJkLDB4YzIsMHgwOCwweDY0LDB4MjIsMHg1OCwweDE4LDB4YjcsMHgwMCB9IH0sCi17ICAxNiwgMHhhYzIwLCAwLCB7MHgyZCwweDgwLDB4MGIsMHg3OSwweDAyLDB4YmUsMHhjMCwweDg3LDB4MDEsMHg2ZCwweGMwLDB4MGIsMHg2MCwweDAyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHhhYzMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhmNSwweDg0LDB4MzUsMHgyMCB9IH0sCi17ICAxNiwgMHhhYzQwLCAwLCB7MHg4YywweDE4LDB4MDIsMHg5MiwweDEwLDB4YzUsMHg4MCwweDNkLDB4NjAsMHgwZSwweGM4LDB4MGIsMHg1YSwweDA4LDB4NzcsMHhmMyB9IH0sCi17ICAxNiwgMHhhYzUwLCAwLCB7MHgzZCwweGEwLDB4MGYsMHhmOCwweDAzLDB4MWUsMHhiMCwweGU3LDB4ODUsMHgzZCwweGUwLDB4MGYsMHg3OCwweDAzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHhhYzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4MDAsMHhmMSwweDA0LDB4YmEsMHgwMSB9IH0sCi17ICAxNiwgMHhhYzcwLCAwLCB7MHgwZiwweGEwLDB4NDMsMHg2MCwweDA5LDB4ZTEsMHgwMCwweDM4LDB4NDAsMHgwZSwweGEwLDB4MDMsMHhhOCwweDE0LDB4ZmIsMHgyMCB9IH0sCi17ICAxNiwgMHhhYzgwLCAwLCB7MHgzYSwweDgwLDB4MGYsMHhiNCwweDFiLDB4NGMsMHg4MCwweGZiLDB4MjksMHgzZSwweGMwLDB4MGYsMHhiMCwweDIzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhhYzkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZhLDB4MDAsMHhjZCwweDgwLDB4M2IsMHhlMCB9IH0sCi17ICAxNiwgMHhhY2EwLCAwLCB7MHg0ZSwweGY4LDB4MDMsMHhmMiwweDAyLDB4ZDQsMHg4MSwweDNiLDB4ZTAsMHg4ZSwweDk4LDB4MDcsMHgzZSwweDQ0LDB4ZWYsMHg5MSB9IH0sCi17ICAxNiwgMHhhY2IwLCAwLCB7MHgzZiwweGUwLDB4NGYsMHhmYywweDA3LDB4ZWUsMHhkMCwweGNmLDB4OTgsMHgzMywweGU0LDB4MGYsMHhmOCwweDAzLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhhY2MwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwMSwweDk4LDB4MDAsMHg4NSwweDEwLDB4MmQsMHhjNCB9IH0sCi17ICAxNiwgMHhhY2QwLCAwLCB7MHgwZCwweDExLDB4MDIsMHhmMCwweDAwLDB4ODUsMHgyMCwweDMxLDB4YzQsMHgwYiwweDdiLDB4MDAsMHgzOCwweDQwLDB4ZDcsMHgxMCB9IH0sCi17ICAxNiwgMHhhY2UwLCAwLCB7MHgyZCwweDgwLDB4MGIsMHg3MCwweDYyLDB4ZmUsMHhlMSwweDg3LDB4MTQsMHgzOSwweGMwLDB4MGIsMHg2MCwweDAyLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhhY2YwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweGJjLDB4NDAsMHhhNSwweDAwLDB4MjksMHg0MCB9IH0sCi17ICAxNiwgMHhhZDAwLCAwLCB7MHgwYiwweDUwLDB4ODIsMHhkYywweDQwLDB4ODQsMHgwNCwweDJkLDB4YzAsMHgwYiwweDEwLDB4MDYsMHg1OCwweDQ0LDB4YTcsMHgxMCB9IH0sCi17ICAxNiwgMHhhZDEwLCAwLCB7MHgyZCwweDgwLDB4MGIsMHg3MSwweDAyLDB4ZGMsMHgwMCwweDg3LDB4MDQsMHgyMSwweGMyLDB4MGIsMHg1MCwweDAyLDB4YzAsMHgxMCB9IH0sCi17ICAxNiwgMHhhZDIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNjLDB4MGEsMHhhMSwweDAxLDB4MmMsMHg0MCB9IH0sCi17ICAxNiwgMHhhZDMwLCAwLCB7MHg4OSwweDE4LDB4MDIsMHhjMSwweDAwLDB4YTEsMHgwOCwweDIwLDB4YzAsMHgwYiwweDM0LDB4MDYsMHg0MCwweDAwLDB4OTMsMHgwNSB9IH0sCi17ICAxNiwgMHhhZDQwLCAwLCB7MHgyYywweDE0LDB4MGIsMHgzYywweDg2LDB4Y2UsMHgxMCwweDgzLDB4MDEsMHgyOCwweGYxLDB4MGIsMHgxNCwweDAyLDB4YzgsMHgwNCB9IH0sCi17ICAxNiwgMHhhZDUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGEwLDB4MDAsMHhlZCwweDAwLDB4M2EsMHhjMCB9IH0sCi17ICAxNiwgMHhhZDYwLCAwLCB7MHgwNywweGJjLDB4NjMsMHhlZCwweDAwLDB4ODEsMHg0MCwweDNlLDB4YzAsMHgwZSwweDg4LDB4MDMsMHg2NCwweDAwLDB4ZWYsMHgwMCB9IH0sCi17ICAxNiwgMHhhZDcwLCAwLCB7MHg3ZSwweDUwLDB4MGYsMHhmMCwweDAyLDB4ZmQsMHg0MiwweGNmLDB4MDAsMHg3MiwweGMwLDB4MWYsMHhiNCwweDAzLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhhZDgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGU4LDB4MDAsMHg5OSwweDAwLDB4M2UsMHhlMCB9IH0sCi17ICAxNiwgMHhhZDkwLCAwLCB7MHg0ZiwweGI0LDB4ODMsMHhlZCwweDkwLDB4MDksMHg0MCwweDNlLDB4YzAsMHgwZiwweGExLDB4ODMsMHhhOCwweDAxLDB4ZWIsMHgwMSB9IH0sCi17ICAxNiwgMHhhZGEwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHhiMSwweDEzLDB4ZWMsMHgwYywweGZiLDB4MDAsMHgzYSwweGMwLDB4NWYsMHgyMCwweDIzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhhZGIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGY4LDB4MDAsMHhmZCwweDA0LDB4M2YsMHhiMCB9IH0sCi17ICAxNiwgMHhhZGMwLCAwLCB7MHgwZCwweDYwLDB4MDMsMHgzZSwweDAwLDB4Y2QsMHgwMCwweDMzLDB4ZjAsMHgwZiwweGYyLDB4MDEsMHhmMCwweDAwLDB4ZmYsMHgwMyB9IH0sCi17ICAxNiwgMHhhZGQwLCAwLCB7MHgzZiwweDAzLDB4MGYsMHhmMCwweDAxLDB4ZmMsMHgwMCwweGZiLDB4MDIsMHgzMywweGMyLDB4MGYsMHhmMCwweGUzLDB4MDAsMHg0NCB9IH0sCi17ICAxNiwgMHhhZGUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZhLDB4MDAsMHhiOSwweDAyLDB4MmUsMHhhMCB9IH0sCi17ICAxNiwgMHhhZGYwLCAwLCB7MHg0YSwweGFjLDB4MDIsMHgwZSwweDgwLDB4ZjksMHhjMCwweDM2LDB4ZTEsMHgwYiwweGEwLDB4MDIsMHgyYSwweDA4LDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhhZTAwLCAwLCB7MHgyZSwweDIwLDB4MGUsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGViLDB4MDAsMHgyMiwweGMwLDB4OGIsMHhiMCwweDAyLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhhZTEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDIzLDB4MDAsMHhhOSwweDAwLDB4MjgsMHhjMCB9IH0sCi17ICAxNiwgMHhhZTIwLCAwLCB7MHgwOSwweGIyLDB4MjIsMHg2YywweDQwLDB4ODksMHg4OSwweDJhLDB4YzAsMHgwYiwweDE0LDB4MDYsMHgyNiwweDAwLDB4YWIsMHgwMiB9IH0sCi17ICAxNiwgMHhhZTMwLCAwLCB7MHg2ZSwweGUwLDB4MDksMHhiMCwweDA2LDB4NmMsMHgwMCwweGIzLDB4MDIsMHgyMiwweGMwLDB4MGIsMHhiMCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhZTQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA4LDB4MDAsMHhiMSwweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhhZTUwLCAwLCB7MHgwYSwweDMwLDB4MDIsMHgyYywweDAwLDB4YmIsMHgwMCwweDY0LDB4YzAsMHgwYiwweDMyLDB4MGEsMHgwOCwweDAwLDB4MzMsMHgwMCB9IH0sCi17ICAxNiwgMHhhZTYwLCAwLCB7MHg2YywweDgwLDB4MDIsMHgzMCwweDQ2LDB4Y2MsMHgxOCwweGEzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgyOCwweDAyLDB4MDIsMHgxMSB9IH0sCi17ICAxNiwgMHhhZTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDY4LDB4MDAsMHhlOSwweDAwLDB4MzgsMHhjMSB9IH0sCi17ICAxNiwgMHhhZTgwLCAwLCB7MHgwZCwweGIxLDB4MGIsMHgyYywweDAwLDB4ODksMHgwMCwweDNhLDB4YzAsMHgwYiwweDkwLDB4MDMsMHg2MCwweDAwLDB4ZmYsMHgwMiB9IH0sCi17ICAxNiwgMHhhZTkwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHg4MCwweGZmLDB4MDAsMHgzMiwweGMwLDB4OGYsMHg4MCwweDBiLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHhhZWEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGQ4LDB4MDAsMHhmZCwweDA0LDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhhZWIwLCAwLCB7MHgyZiwweGYyLDB4MDMsMHhmYywweDExLDB4ZWYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGY0LDB4NDMsMHg3MCwweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhhZWMwLCAwLCB7MHgzZiwweDAwLDB4NDYsMHhmMCwweDAzLDB4ZmQsMHgwMCwweGVmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhhZWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZlLDB4MDAsMHhmZiwweDgwLDB4M2QsMHhlMCB9IH0sCi17ICAxNiwgMHhhZWUwLCAwLCB7MHgwYywweGY5LDB4MTMsMHhkZSwweDAwLDB4N2YsMHg4MCwweGIzLDB4ZTAsMHgwZiwweGZjLDB4MDMsMHhiZSwweDQwLDB4Y2YsMHg4MCB9IH0sCi17ICAxNiwgMHhhZWYwLCAwLCB7MHgzMywweGYwLDB4MGYsMHhmOCwweDAzLDB4N2MsMHgwNCwweGNjLDB4ODAsMHgzMywweGEwLDB4MGMsMHhmMCwweDBiLDB4MzAsMHgwMSB9IH0sCi17ICAxNiwgMHhhZjAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGUwLDB4MjAsMHg4OCwweDAwLDB4MmUsMHgyMCB9IH0sCi17ICAxNiwgMHhhZjEwLCAwLCB7MHgwOCwweDgyLDB4MTIsMHhlMCwweDgwLDB4YTgsMHg4MSwweDIyLDB4MDIsMHgwYiwweDgwLDB4MDIsMHgyMCwweDgwLDB4YTgsMHg4MCB9IH0sCi17ICAxNiwgMHhhZjIwLCAwLCB7MHgyMiwweDA4LDB4MGIsMHg4MCwweDAyLDB4MmMsMHgwMiwweDg4LDB4MDQsMHhhYSwweDIwLDB4MDgsMHhiMCwweDAyLDB4MjAsMHgwNCB9IH0sCi17ICAxNiwgMHhhZjMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGVjLDB4MDAsMHhhMywweDA4LDB4MmMsMHg4MCB9IH0sCi17ICAxNiwgMHhhZjQwLCAwLCB7MHgwOCwweDMyLDB4MDIsMHhjNCwweDIwLDB4YTMsMHgwMCwweDI4LDB4NDAsMHgwYiwweDkyLDB4MDIsMHg4NCwweDAwLDB4YTksMHgwMSB9IH0sCi17ICAxNiwgMHhhZjUwLCAwLCB7MHgyOCwweGM4LDB4MWIsMHgxMiwweDgyLDB4Y2MsMHg0MCwweGE4LDB4MDAsMHgyNCwweGUwLDB4MGEsMHgzMCwweDQyLDB4MjIsMHgwMSB9IH0sCi17ICAxNiwgMHhhZjYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMSwweGE4LDB4ODAsMHhhOCwweDAyLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHhhZjcwLCAwLCB7MHg2OCwweDgwLDB4MTAsMHhjOCwweDAwLDB4YjgsMHg0MCwweDJhLDB4OTAsMHgwYiwweGEwLDB4MDAsMHgyOCwweDAwLDB4YWEsMHgwOCB9IH0sCi17ICAxNiwgMHhhZjgwLCAwLCB7MHgyYSwweDAyLDB4MDMsMHgyMCwweDAyLDB4OGMsMHgwMCwweGE4LDB4ODgsMHgyZSwweDIwLDB4MGEsMHhiMCwweDAyLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhhZjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGU4LDB4MDQsMHhmYSwweDAwLDB4M2MsMHg0MCB9IH0sCi17ICAxNiwgMHhhZmEwLCAwLCB7MHgwYywweGEwLDB4MDMsMHhlOCwweDAwLDB4ZWIsMHgwMCwweDNhLDB4YzAsMHgwZiwweDIwLDB4NTMsMHhhOCwweDAwLDB4ZTMsMHg0MCB9IH0sCi17ICAxNiwgMHhhZmIwLCAwLCB7MHgyYSwweDQwLDB4MGYsMHhhMCwweDAzLDB4NmMsMHgwMCwweGE4LDB4ODAsMHgzNCwweDIwLDB4MWUsMHhiMCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhhZmMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI0LDB4MDAsMHg5ZCwweDkxLDB4M2YsMHg4MCB9IH0sCi17ICAxNiwgMHhhZmQwLCAwLCB7MHgwZiwweGRhLDB4MjMsMHhmNCwweDAwLDB4Y2MsMHgyMCwweDM3LDB4MDAsMHgwNywweGQwLDB4MTMsMHg3NCwweDAwLDB4YmMsMHgwMCB9IH0sCi17ICAxNiwgMHhhZmUwLCAwLCB7MHhiNywweDgwLDB4MGIsMHhkMCwweDQzLDB4N2MsMHgwMCwweGRjLDB4MDQsMHgzYiwweDAwLDB4NmQsMHhmMCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhZmYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGE4LDB4MDAsMHhmYSwweDgwLDB4M2EsMHgwMCB9IH0sCi17ICAxNiwgMHhiMDAwLCAwLCB7MHgyYywweGEwLDB4MGIsMHgyMCwweDAyLDB4Y2IsMHg2MiwweDNlLDB4NTAsMHgwZSwweDg4LDB4MDMsMHgyMCwweDAwLDB4ZDksMHgxMCB9IH0sCi17ICAxNiwgMHhiMDEwLCAwLCB7MHgzZSwweDcwLDB4OGMsMHg4MCwweDMzLDB4ZWMsMHg4MCwweGQ4LDB4NDAsMHgzYSwweDAyLDB4MGQsMHhiMCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhiMDIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwMSwweDBjLDB4MDAsMHgzOSwweDgwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhiMDMwLCAwLCB7MHgwYywweDlkLDB4ODIsMHgyYywweDEwLDB4ZDAsMHg0MCwweDJlLDB4YTAsMHgwOCwweGI4LDB4MDMsMHg0ZSwweDAyLDB4OGEsMHg0MCB9IH0sCi17ICAxNiwgMHhiMDQwLCAwLCB7MHgwZSwweGEwLDB4MGQsMHhiMCwweDAzLDB4M2QsMHgwMCwweGQwLDB4OTAsMHgzNiwweDEwLDB4MGIsMHhmMCwweDAyLDB4YjIsMHgwMCB9IH0sCi17ICAxNiwgMHhiMDUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMSwweDAwLDB4NjAsMHhjMCB9IH0sCi17ICAxNiwgMHhiMDYwLCAwLCB7MHg4YSwweDE4LDB4MDIsMHg4YywweDA4LDB4ODAsMHg0MCwweDBjLDB4YTAsMHgwMiwweDMwLDB4MDIsMHhjZSwweDAwLDB4ODIsMHg0OCB9IH0sCi17ICAxNiwgMHhiMDcwLCAwLCB7MHgyYywweDgwLDB4MmIsMHgzMCwweDA2LDB4OGMsMHgwMCwweDgxLDB4MDIsMHgyMCwweDkwLDB4MDksMHhiMCwweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHhiMDgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDEyLDB4MDAsMHhiNiwweDkwLDB4YTMsMHgzMCB9IH0sCi17ICAxNiwgMHhiMDkwLCAwLCB7MHgwOCwweGU4LDB4MjIsMHhiMiwweDE0LDB4ODcsMHg4MCwweDJkLDB4NjAsMHgwOCwweDQ5LDB4MTIsMHgxMiwweDYxLDB4OTUsMHg5MCB9IH0sCi17ICAxNiwgMHhiMGEwLCAwLCB7MHgyZCwweDYxLDB4MGEsMHg0OCwweDE2LDB4MWUsMHg4MCwweDk1LDB4ODAsMHgyNSwweDIwLDB4MGIsMHg3OCwweDAyLDB4ODgsMHgwMCB9IH0sCi17ICAxNiwgMHhiMGIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhmMSwweDAwLDB4MjgsMHg4YyB9IH0sCi17ICAxNiwgMHhiMGMwLCAwLCB7MHg4ZSwweDEwLDB4MDMsMHg4NCwweDgwLDB4ODAsMHgwMCwweDJjLDB4MDIsMHgwYSwweDlhLDB4MDIsMHhlNCwweDAwLDB4ZDAsMHgwMCB9IH0sCi17ICAxNiwgMHhiMGQwLCAwLCB7MHgzZSwweDgwLDB4MGIsMHg5MSwweDAzLDB4OGUsMHg4MCwweGMyLDB4MDgsMHgzOCwweDgwLDB4MGQsMHhiMCwweDAzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhiMGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGIwLDB4MDAsMHhmNiwweDAwLDB4M2YsMHg0NCB9IH0sCi17ICAxNiwgMHhiMGYwLCAwLCB7MHgwZiwweDIxLDB4MTMsMHg3OCwweDAwLDB4ZmYsMHgwMCwweDNkLDB4YzAsMHgwZiwweGUwLDB4MDMsMHg3OCwweDAwLDB4ZWYsMHgwNCB9IH0sCi17ICAxNiwgMHhiMTAwLCAwLCB7MHgzZiwweDQwLDB4OGQsMHhlOCwweDAzLDB4ZGMsMHgwNCwweGY2LDB4MDAsMHgzZiwweDAwLDB4MGYsMHhmMCwweDgzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhiMTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU4LDB4MDAsMHhlOCwweDgwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhiMTIwLCAwLCB7MHgwZiwweDg4LDB4MGIsMHgyOCwweDAwLDB4NzgsMHgwMiwweDNlLDB4ODAsMHgwZSwweDI4LDB4MDMsMHgyOCwweDAwLDB4Y2EsMHg4MCB9IH0sCi17ICAxNiwgMHhiMTMwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHhhMCwweDAzLDB4ZWMsMHgwMCwweGM5LDB4ODAsMHgzMiwweDgwLDB4MGYsMHhiMCwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhiMTQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDhjLDB4MDAsMHg4ZiwweDAwLDB4YTEsMHg4MCB9IH0sCi17ICAxNiwgMHhiMTUwLCAwLCB7MHgwYiwweDcwLDB4NDIsMHgxNCwweDAwLDB4YjcsMHgwMCwweDJkLDB4NDEsMHgwYiwweDUwLDB4NDIsMHgxNCwweDAwLDB4YTUsMHgwMCB9IH0sCi17ICAxNiwgMHhiMTYwLCAwLCB7MHhhMSwweGMwLDB4MGIsMHg1MCwweDAyLDB4ZmMsMHg4MCwweGE1LDB4MDAsMHgyMSwweDAwLDB4MGIsMHhmMiwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhiMTcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweGJhLDB4MDAsMHhhNCwweDgwLDB4MjksMHgzMCB9IH0sCi17ICAxNiwgMHhiMTgwLCAwLCB7MHg0YiwweDQ4LDB4MDYsMHg1MiwweDA4LDB4YjQsMHg4MCwweDJkLDB4MjAsMHgwYiwweDQ4LDB4NDIsMHgzMiwweDAwLDB4ODQsMHg4MCB9IH0sCi17ICAxNiwgMHhiMTkwLCAwLCB7MHgyMSwweDIwLDB4MGIsMHg0OCwweDEyLDB4ZGUsMHg0MCwweDg2LDB4ODEsMHgyOSwweGEwLDB4MGIsMHg3OCwweDBhLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhiMWEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDA1LDB4MjAsMHhlMCB9IH0sCi17ICAxNiwgMHhiMWIwLCAwLCB7MHgwYiwweDM0LDB4MDIsMHg2YywweDEwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDM2LDB4NGEsMHgwZCwweDBkLDB4YTMsMHgwMCB9IH0sCi17ICAxNiwgMHhiMWMwLCAwLCB7MHgyMCwweGMwLDB4MGIsMHgzNCwweDgyLDB4Y2MsMHgwMiwweGEyLDB4MDAsMHgyOCwweDAwLDB4MGIsMHgzMCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhiMWQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE5LDB4MjAsMHhlYSwweDQwLDB4MzAsMHhhMCB9IH0sCi17ICAxNiwgMHhiMWUwLCAwLCB7MHgwNywweGEwLDB4NDMsMHg2OSwweDQwLDB4ZmEsMHgwMCwweDNjLDB4ODAsMHgwZiwweGEwLDB4MDMsMHgwOCwweDQwLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhiMWYwLCAwLCB7MHgzMCwweGEwLDB4MGYsMHhhNCwweDAzLDB4ZTgsMHgwMCwweGNlLDB4MDAsMHgzYiwweDk4LDB4MGYsMHhhMCwweDAzLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhiMjAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGQyLDB4MDAsMHhmYywweDA4LDB4M2YsMHgwMCB9IH0sCi17ICAxNiwgMHhiMjEwLCAwLCB7MHgwYiwweGMyLDB4MDMsMHhiMCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDAwLDB4ZmMsMHgwMCB9IH0sCi17ICAxNiwgMHhiMjIwLCAwLCB7MHgzZiwweDA0LDB4MGYsMHhjMCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHhiNiwweDAyLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhiMjMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg2OCB9IH0sCi17ICAxNiwgMHhiMjQwLCAwLCB7MHg0YywweDkxLDB4MDEsMHhlNCwweDA4LDB4YzksMHgwMCwweDNlLDB4NDAsMHgyYywweDkyLDB4MDMsMHhlNCwweDAyLDB4YzksMHhhMCB9IH0sCi17ICAxNiwgMHhiMjUwLCAwLCB7MHgzZSwweDcwLDB4MGUsMHg5MCwweDAzLDB4YzYsMHg0MiwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHgxMCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhiMjYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDg2LDB4MGUsMHg2MCB9IH0sCi17ICAxNiwgMHhiMjcwLCAwLCB7MHgwOCwweDk4LDB4MDIsMHhlNCwweDA4LDB4ODksMHgxMCwweDJlLDB4NjAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4ODksMHgwYyB9IH0sCi17ICAxNiwgMHhiMjgwLCAwLCB7MHgyZSwweDYwLDB4MDgsMHg5MCwweDAyLDB4ZTYsMHg4OCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4YTAsMHgwMCB9IH0sCi17ICAxNiwgMHhiMjkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg5ZCwweDEwLDB4MmYsMHg0MCB9IH0sCi17ICAxNiwgMHhiMmEwLCAwLCB7MHgyOCwweGQwLDB4MDYsMHhmNCwweDAyLDB4YWQsMHgwMCwweDJmLDB4NjAsMHgwOCwweGQwLDB4MDIsMHhmNCwweDAwLDB4OGQsMHgwMCB9IH0sCi17ICAxNiwgMHhiMmIwLCAwLCB7MHgyZiwweDQwLDB4MGEsMHhkMCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDYwLDB4MGIsMHg5MCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhiMmMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDM0LDB4MDAsMHg4NSwweDAwLDB4MmQsMHg0MCB9IH0sCi17ICAxNiwgMHhiMmQwLCAwLCB7MHgwOCwweDU4LDB4MDIsMHhkNCwweDAwLDB4YTUsMHgwMiwweDJkLDB4NDAsMHgwOCwweDUwLDB4MDAsMHhkNCwweDAwLDB4ODUsMHgwMCB9IH0sCi17ICAxNiwgMHhiMmUwLCAwLCB7MHgyZCwweDQwLDB4MDgsMHg1NCwweDAyLDB4YzQsMHg4MCwweDgxLDB4MDAsMHgyYywweDYwLDB4MGIsMHgxNCwweDAyLDB4ODIsMHgwMSB9IH0sCi17ICAxNiwgMHhiMmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUyLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhiMzAwLCAwLCB7MHgwYywweDA1LDB4MDMsMHhlMSwweDQwLDB4ZTgsMHgwNCwweDNlLDB4MTQsMHgwYywweDg1LDB4MDMsMHhlMSwweDQwLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHhiMzEwLCAwLCB7MHgzZSwweDE0LDB4MGUsMHhjMCwweDAzLDB4ZTAsMHgwMCwweGMwLDB4MDIsMHgzZSwweDAwLDB4NGYsMHg4MCwweDIzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhiMzIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGY0LDB4MDAsMHhmOSwweDAxLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhiMzMwLCAwLCB7MHg0ZiwweDkwLDB4MTMsMHhlNCwweDAwLDB4ZDksMHgwMCwweDFlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNCwweDEwLDB4ZjEsMHgwMCB9IH0sCi17ICAxNiwgMHhiMzQwLCAwLCB7MHgxZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHhlMCwweGZkLDB4MjgsMHgzZiwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhiMzUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGE0LDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCB9IH0sCi17ICAxNiwgMHhiMzYwLCAwLCB7MHg0ZCwweDUwLDB4MDIsMHhlNCwweDAwLDB4OTUsMHgwNCwweDMzLDB4NDAsMHgyOCwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZmQsMHgwMCB9IH0sCi17ICAxNiwgMHhiMzcwLCAwLCB7MHgzMywweDQwLDB4MGYsMHg5MSwweDAzLDB4MzQsMHgwMCwweGNkLDB4NDAsMHgzMywweDQwLDB4MGYsMHg5OCwweDgxLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhiMzgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUwLDB4MTAsMHhiOCwweDAwLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHhiMzkwLCAwLCB7MHgwYiwweDgwLDB4MDIsMHhlMCwweDEwLDB4YjgsMHgwMCwweDIyLDB4MDAsMHgwOCwweDgwLDB4MDIsMHhlMCwweDAwLDB4YjgsMHgwMCB9IH0sCi17ICAxNiwgMHhiM2EwLCAwLCB7MHgyMiwweDAwLDB4MGIsMHg4OCwweDAzLDB4YzIsMHg4MCwweDg4LDB4ODAsMHgyMiwweDAwLDB4MGIsMHg4YywweDAyLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHhiM2IwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweGM0LDB4MDAsMHhiMSwweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhiM2MwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHhjNCwweDAwLDB4YmIsMHgwMCwweDIyLDB4NDAsMHgwOCwweDEwLDB4MDIsMHhjNCwweDAxLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhiM2QwLCAwLCB7MHgyMCwweDQwLDB4MWIsMHg5MCwweDAyLDB4MDQsMHgyMiwweDg5LDB4MDAsMHgyMCwweDYwLDB4MGIsMHgxMiwweDgyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhiM2UwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE0LDB4NDQsMHhiOSwweDAwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhiM2YwLCAwLCB7MHg0YiwweDkwLDB4MDIsMHhlNCwweDEwLDB4YjksMHgwMiwweDAyLDB4NDAsMHgwOCwweDkxLDB4NDIsMHhlNCwweDAwLDB4YjksMHg4MCB9IH0sCi17ICAxNiwgMHhiNDAwLCAwLCB7MHgyMiwweDQwLDB4MGIsMHg5MiwweDAyLDB4YzQsMHgwMCwweDk5LDB4NDAsMHgyMiwweDQwLDB4NGIsMHg5MCwweDEyLDB4MDYsMHgwNCB9IH0sCi17ICAxNiwgMHhiNDEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU2LDB4MDAsMHhiOSwweDAxLDB4M2UsMHg1OCB9IH0sCi17ICAxNiwgMHhiNDIwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHhlNiwweDAwLDB4ZDEsMHgwMCwweDMyLDB4NjAsMHgwYywweDk4LDB4MDIsMHhlNiwweDQwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhiNDMwLCAwLCB7MHhiMiwweDQwLDB4MGYsMHgxOCwweDAzLDB4MjQsMHgwMCwweGM5LDB4ODAsMHgzMiwweDUwLDB4MGYsMHg5MCwweDIzLDB4MjgsMHgwNCB9IH0sCi17ICAxNiwgMHhiNDQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MiB9IH0sCi17ICAxNiwgMHhiNDUwLCAwLCB7MHgwYiwweDkwLDB4MDMsMHhlNywweDA4LDB4ZjksMHgwMCwweGJlLDB4NDgsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhiNDYwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5OCwweDAzLDB4YTQsMHgwMCwweGU5LDB4YTAsMHhiZSwweDQwLDB4MGYsMHgxMCwweDBiLDB4NGEsMHgwMCB9IH0sCi17ICAxNiwgMHhiNDcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhkOCwweDAxLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhiNDgwLCAwLCB7MHgwZiwweDgwLDB4OGIsMHgyMCwweDAwLDB4ZjgsMHgyMCwweDNlLDB4MDEsMHgwZiwweDgxLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwOCB9IH0sCi17ICAxNiwgMHhiNDkwLCAwLCB7MHgzYSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGQ4LDB4NDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDEzLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhiNGEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHg4YSwweDgwLDB4MmYsMHg5MSB9IH0sCi17ICAxNiwgMHhiNGIwLCAwLCB7MHgwYiwweGVlLDB4MDIsMHgyOCwweDAxLDB4YmUsMHgwMCwweDIwLDB4ODAsMHgwYiwweGEwLDB4MDIsMHhlYSwweDgwLDB4YjYsMHg0OCB9IH0sCi17ICAxNiwgMHhiNGMwLCAwLCB7MHgyMiwweDgwLDB4MGQsMHhhMCwweDAyLDB4ZmEsMHgwMiwweDg2LDB4NDEsMHhhMywweGE2LDB4MGIsMHhhMCwweDAzLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhiNGQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg5MywweDgwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhiNGUwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHgwYywweDEwLDB4YjMsMHgwMCwweDI4LDB4YzAsMHgwYiwweDM4LDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhiNGYwLCAwLCB7MHgyOCwweGMwLDB4MDksMHgzMCwweDAyLDB4YzYsMHgwMSwweDgzLDB4NjAsMHgyMCwweDcwLDB4MGIsMHgzMCwweDBhLDB4NGEsMHgwMCB9IH0sCi17ICAxNiwgMHhiNTAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDJlLDB4ODgsMHg4NSwweDA4LDB4MmQsMHg4MCB9IH0sCi17ICAxNiwgMHhiNTEwLCAwLCB7MHg0YiwweGY4LDB4MDYsMHgxYywweDgwLDB4YjcsMHgwMCwweDIxLDB4YzAsMHgwYiwweDUwLDB4MDIsMHhkNCwweDAwLDB4YjYsMHgwMCB9IH0sCi17ICAxNiwgMHhiNTIwLCAwLCB7MHgyOSwweDYwLDB4MDksMHg3MCwweDAyLDB4ZDAsMHhhMCwweDhkLDB4MDAsMHgyMSwweDQwLDB4MGIsMHgzMiwweDAyLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhiNTMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhkNSwweDgwLDB4M2QsMHhlMCB9IH0sCi17ICAxNiwgMHhiNTQwLCAwLCB7MHg4ZiwweDc4LDB4MDMsMHgxZSwweDg0LDB4YjcsMHg4MiwweDNkLDB4NjAsMHgwZiwweDU5LDB4MDMsMHhkZSwweDAwLDB4ZjcsMHg4MCB9IH0sCi17ICAxNiwgMHhiNTUwLCAwLCB7MHgyOSwweDYwLDB4MTUsMHg3OCwweDAzLDB4ZGUsMHgwMCwweGM3LDB4ODAsMHgzMSwweDYwLDB4MGYsMHg3YywweDAzLDB4NmEsMHgwMiB9IH0sCi17ICAxNiwgMHhiNTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4NDAsMHhlOSwweDAwLDB4M2UsMHg4MCB9IH0sCi17ICAxNiwgMHhiNTcwLCAwLCB7MHgwZiwweGEwLDB4MDMsMHhlZCwweDMwLDB4ZmIsMHgwMCwweDM2LDB4YzEsMHgwZiwweDk2LDB4MDMsMHhlNCwweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhiNTgwLCAwLCB7MHgzNCwweDQwLDB4MGYsMHhiNywweDgzLDB4ZWMsMHg0MCwweDIxLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhiNTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhmZiwweDgxLDB4MzMsMHhlMCB9IH0sCi17ICAxNiwgMHhiNWEwLCAwLCB7MHgwZiwweGY5LDB4MDMsMHhkZSwweDIwLDB4Y2YsMHg4MSwweDNmLDB4ZTAsMHgwNywweDc4LDB4MDMsMHgzZSwweDAwLDB4ZmYsMHg4MCB9IH0sCi17ICAxNiwgMHhiNWIwLCAwLCB7MHgzZiwweGUwLDB4MDQsMHhmOCwweDEzLDB4ZmUsMHgwMiwweGRlLDB4ODAsMHgzMywweDYwLDB4MGYsMHhmOCwweDAzLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhiNWMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDAsMHhiNywweDAwLDB4MjEsMHhjNCB9IH0sCi17ICAxNiwgMHhiNWQwLCAwLCB7MHgwYiwweDVhLDB4MDIsMHhkYywweDQ4LDB4ODYsMHg1MCwweDJkLDB4YzAsMHgwYiwweDMxLDB4MDIsMHg5NCwweDYwLDB4YjQsMHgxOCB9IH0sCi17ICAxNiwgMHhiNWUwLCAwLCB7MHgyZCwweDQwLDB4NDgsMHg3MCwweDAyLDB4ZTgsMHgwMCwweGE1LDB4MTAsMHgyMSwweDQwLDB4MGIsMHg3MSwweDAyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhiNWYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhiZCwweDAwLDB4MjEsMHg0MiB9IH0sCi17ICAxNiwgMHhiNjAwLCAwLCB7MHgwYiwweDcwLDB4MDIsMHhmYywweDAyLDB4ODUsMHgwMCwweDI1LDB4NDAsMHgwYiwweDUwLDB4MDIsMHg5YywweDAwLDB4YjcsMHgwMCB9IH0sCi17ICAxNiwgMHhiNjEwLCAwLCB7MHgyZiwweDQwLDB4MjgsMHg3MSwweDAyLDB4ZGMsMHgwMCwweGE2LDB4MDAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhiNjIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweDZkLDB4ODAsMHhiMSwweDIwLDB4YTAsMHg1MCB9IH0sCi17ICAxNiwgMHhiNjMwLCAwLCB7MHgwYiwweGIyLDB4MDYsMHhjZSwweDAwLDB4YTAsMHgzNCwweDJlLDB4ZjAsMHgwYiwweDE4LDB4MDIsMHg4NSwweDIwLDB4YjMsMHg0YSB9IH0sCi17ICAxNiwgMHhiNjQwLCAwLCB7MHgyYywweDU0LDB4ODgsMHgzOCwweDAyLDB4Y2MsMHgxMCwweGExLDB4MDAsMHgyMCwweGIwLDB4MGIsMHgzMCwweDAyLDB4MDgsMHgwNCB9IH0sCi17ICAxNiwgMHhiNjUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJlLDB4ODAsMHhmMywweDA4LDB4MTAsMHg1NCB9IH0sCi17ICAxNiwgMHhiNjYwLCAwLCB7MHgwYiwweDg4LDB4MTMsMHhmZiwweDAwLDB4YzAsMHg4MCwweDNlLDB4NjQsMHgwZiwweGI0LDB4ODMsMHgwNywweDAwLDB4ZjksMHhjMCB9IH0sCi17ICAxNiwgMHhiNjcwLCAwLCB7MHgzZSwweGYwLDB4MGMsMHhmYywweDEzLDB4ZjQsMHgwMCwweGVhLDB4MDAsMHgzMiwweDcwLDB4MGYsMHhmMCwweDBiLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhiNjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHgxMCB9IH0sCi17ICAxNiwgMHhiNjkwLCAwLCB7MHgwNywweDkxLDB4MDMsMHhlYywweGMwLDB4NTgsMHgwMCwweDNlLDB4NDQsMHgwZiwweDkyLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhiNmEwLCAwLCB7MHgzZSwweGMwLDB4OGYsMHhiMywweDAzLDB4ZTAsMHgwMCwweGJiLDB4MDAsMHhiZSwweDQ0LDB4MGYsMHhiMCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhiNmIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDIsMHhjZCwweDA0LDB4MzMsMHhlMCB9IH0sCi17ICAxNiwgMHhiNmMwLCAwLCB7MHgwYywweGMwLDB4MDMsMHgzYywweDA4LDB4ZmUsMHgwMCwweDMzLDB4NjAsMHgyYywweGQwLDB4MDIsMHhiNCwweDgwLDB4Y2YsMHgwMCB9IH0sCi17ICAxNiwgMHhiNmQwLCAwLCB7MHgzZiwweDUyLDB4MDcsMHhmMCwweDEzLDB4ZmMsMHgwMCwweGNlLDB4MTAsMHgzMywweDQyLDB4MGMsMHhiMCwweDAzLDB4YzAsMHg0NCB9IH0sCi17ICAxNiwgMHhiNmUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZjLDB4MDAsMHg4OSwweDAwLDB4MmEsMHhiMCB9IH0sCi17ICAxNiwgMHhiNmYwLCAwLCB7MHgwOCwweDg4LDB4MDIsMHgyYywweDAwLDB4YmEsMHgwMCwweDM2LDB4NDQsMHgwOCwweDkwLDB4MDAsMHgyNiwweDAwLDB4ZGIsMHhjMCB9IH0sCi17ICAxNiwgMHhiNzAwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweDgzLDB4YzAsMHgyOCwweDQwLDB4MGEsMHhiMCwweDAyLDB4ZTAsMHg0MCB9IH0sCi17ICAxNiwgMHhiNzEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHgwOCB9IH0sCi17ICAxNiwgMHhiNzIwLCAwLCB7MHgxYSwweGEyLDB4MDIsMHgyYywweDEwLDB4YjksMHgyMCwweDIyLDB4NDAsMHgwOCwweDMwLDB4MDIsMHgyYywweDA0LDB4YWEsMHg1NCB9IH0sCi17ICAxNiwgMHhiNzMwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHhiMCwweDEyLDB4Y2MsMHgwMCwweDhiLDB4MDgsMHgyMiwweDQwLDB4MDgsMHhiMCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhiNzQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MywweDA0LDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhiNzUwLCAwLCB7MHgwYSwweDA4LDB4ODIsMHgwYywweDAwLDB4YjgsMHgwMCwweDY0LDB4NDAsMHgwOCwweDMwLDB4MDIsMHhhNCwweDAwLDB4YjAsMHgwMCB9IH0sCi17ICAxNiwgMHhiNzYwLCAwLCB7MHgyYywweGMwLDB4OGIsMHgzMCwweDEwLDB4YzgsMHgwMiwweDhiLDB4MDAsMHgyYSwweDQwLDB4MGEsMHgzMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhiNzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhjOSwweDAwLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhiNzgwLCAwLCB7MHgxYSwweDgyLDB4MDMsMHgzYywweDAwLDB4ZjksMHgwMCwweDMyLDB4NDAsMHgwYywweGQxLDB4MDMsMHhhYywweDAwLDB4ZWIsMHgwMCB9IH0sCi17ICAxNiwgMHhiNzkwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHhmMCwweDAzLDB4ZWQsMHgwMCwweGMzLDB4MDAsMHgzMiwweGMwLDB4OGMsMHhiMCwweDAzLDB4YzAsMHgwMyB9IH0sCi17ICAxNiwgMHhiN2EwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxOSwweGZjLDB4MDAsMHhmNSwweDAwLDB4M2YsMHgwMCB9IH0sCi17ICAxNiwgMHhiN2IwLCAwLCB7MHgwZCwweDgwLDB4NGIsMHhmYywweDAwLDB4N2MsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQyLDB4MGIsMHg3NCwweDAwLDB4ZGYsMHgwMCB9IH0sCi17ICAxNiwgMHhiN2MwLCAwLCB7MHgxZCwweDQwLDB4OGYsMHhmMCwweDAzLDB4ZmMsMHhhMCwweGZmLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhiN2QwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4MDAsMHhkZiwweDg0LDB4M2IsMHhlMCB9IH0sCi17ICAxNiwgMHhiN2UwLCAwLCB7MHgwZiwweGY4LDB4MGIsMHgzZSwweDAwLDB4ZWMsMHg4MCwweDMzLDB4ZTEsMHgwYywweDMwLDB4MDMsMHgzYywweDgwLDB4Y2YsMHg0OCB9IH0sCi17ICAxNiwgMHhiN2YwLCAwLCB7MHgzNywweGMwLDB4MGUsMHg0MCwweDAzLDB4ZTAsMHhjMCwweGM3LDB4OTEsMHhiMywweDA0LDB4MGMsMHhmMCwweDAzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhiODAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGVmLDB4MDQsMHg4YiwweDgwLDB4MjIsMHg0MSB9IH0sCi17ICAxNiwgMHhiODEwLCAwLCB7MHgwYiwweGIwLDB4ODIsMHgyZSwweDAwLDB4ODgsMHg4MCwweGEyLDB4ZTAsMHgwYSwweGEyLDB4OTIsMHhhZCwweDgwLDB4ODcsMHg0MiB9IH0sCi17ICAxNiwgMHhiODIwLCAwLCB7MHgyMywweGQ4LDB4OGEsMHhhZCwweDAyLDB4ZTAsMHhjMCwweDhiLDB4MDAsMHgyMCwweDRjLDB4NDgsMHhhNCwweDAyLDB4MjAsMHgwNCB9IH0sCi17ICAxNiwgMHhiODMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NTgsMHhiYiwweDAwLDB4MjgsMHg4MCB9IH0sCi17ICAxNiwgMHhiODQwLCAwLCB7MHgwYiwweGIyLDB4NDIsMHgyNCwweDAwLDB4YTgsMHgwMCwweDJhLDB4YzAsMHgwYSwweDEwLDB4MDIsMHgwNCwweDYwLDB4YTMsMHgyMCB9IH0sCi17ICAxNiwgMHhiODUwLCAwLCB7MHgyNCwweGQyLDB4MDgsMHgwMCwweDQyLDB4OGMsMHg4MywweDliLDB4MDEsMHgyMCwweDQ5LDB4MDgsMHgzMywweGMyLDB4MjIsMHgwMSB9IH0sCi17ICAxNiwgMHhiODYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGFjLDB4MDAsMHhhYiwweDg4LDB4MjIsMHhhMCB9IH0sCi17ICAxNiwgMHhiODcwLCAwLCB7MHgwYiwweGI4LDB4MDIsMHgyNiwweDBjLDB4YTgsMHgwMCwweDJhLDB4YzAsMHgwYSwweDkyLDB4MDIsMHhhNCwweDAwLDB4YWIsMHgwNiB9IH0sCi17ICAxNiwgMHhiODgwLCAwLCB7MHgyMiwweGMwLDB4MGEsMHhiMCwweDAyLDB4ZTgsMHgwMCwweDliLDB4MDAsMHgwMiwweDQwLDB4MDgsMHhhMCwweDQyLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhiODkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhkMywweDgwLDB4M2EsMHhlMCB9IH0sCi17ICAxNiwgMHhiOGEwLCAwLCB7MHgwZiwweDE4LDB4MDEsMHgwNiwweDAwLDB4ZTgsMHgzMCwweDM4LDB4NjYsMHgwZSwweGI4LDB4MDMsMHgyYSwweDQwLDB4ZWIsMHgwMCB9IH0sCi17ICAxNiwgMHhiOGIwLCAwLCB7MHgzNiwweGMxLDB4MGUsMHg5NiwweDAzLDB4ZTIsMHg4MCwweGRhLDB4MDgsMHgzMiwweDgwLDB4MmMsMHhiYiwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhiOGMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDljLDB4MDAsMHhkZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhiOGQwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZGMsMHg4MCwweDM3LDB4NjAsMHgwZiwweGU4LDB4MDMsMHhmYSwweDAwLDB4ZGYsMHgwMSB9IH0sCi17ICAxNiwgMHhiOGUwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhjMCwweDQzLDB4ZTYsMHg0YywweGVmLDB4YTAsMHgzZiwweDQ0LDB4MGYsMHhhMCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhiOGYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4NDAsMHhkYiwweDAwLDB4MzYsMHg4MCB9IH0sCi17ICAxNiwgMHhiOTAwLCAwLCB7MHgwYywweDk4LDB4MDMsMHgyNiwweDAwLDB4ZjgsMHgwMCwweDNlLDB4YzAsMHgwZSwweDE4LDB4MDMsMHg4NCwweDAyLDB4ZTMsMHgwMSB9IH0sCi17ICAxNiwgMHhiOTEwLCAwLCB7MHgzOCwweGMxLDB4MGUsMHhiNCwweDAzLDB4YWMsMHg4MCwweGNhLDB4MTgsMHgzYSwweGQwLDB4MmMsMHgzMCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhiOTIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDNmLDB4NDAsMHhiOSwweDg4LDB4MmUsMHg4MCB9IH0sCi17ICAxNiwgMHhiOTMwLCAwLCB7MHgwOCwweGJjLDB4MDIsMHhhMywweDAwLDB4YjAsMHgwMCwweDBlLDB4YzAsMHgwOCwweGIwLDB4MDYsMHgyMCwweDAwLDB4OGYsMHgwNCB9IH0sCi17ICAxNiwgMHhiOTQwLCAwLCB7MHgyMywweGMxLDB4MDgsMHhiOSwweDEyLDB4MmYsMHgwMCwweDgzLDB4ODAsMHgzNiwweDQwLDB4MDgsMHhhZCwweDAyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhiOTUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMiwweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhiOTYwLCAwLCB7MHgwOSwweDMyLDB4MDIsMHg4NCwweDAwLDB4MzMsMHgwMCwweDJjLDB4YjIsMHgwYSwweDM2LDB4MTIsMHg4YywweDA4LDB4OTMsMHgwNSB9IH0sCi17ICAxNiwgMHhiOTcwLCAwLCB7MHgyMCwweGMwLDB4MGIsMHgxOCwweDAyLDB4ZWQsMHgwMCwweDkxLDB4ODAsMHg2YSwweDAwLDB4MDgsMHgxMCwweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHhiOTgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4MmQsMHhlMCB9IH0sCi17ICAxNiwgMHhiOTkwLCAwLCB7MHgwOSwweDc4LDB4MDIsMHg5NywweDQwLDB4YjQsMHg4MCwweDJmLDB4YTAsMHgwOCwweGU4LDB4MDIsMHgwZSwweDQwLDB4OTcsMHg4MiB9IH0sCi17ICAxNiwgMHhiOWEwLCAwLCB7MHgyMSwweGUwLDB4OTgsMHg2OCwweDgyLDB4MWEsMHgxOCwweDlkLDB4OTAsMHgyZCwweGExLDB4MTgsMHg1OCwweDAyLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHhiOWIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4YzAsMHhmMywweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhiOWMwLCAwLCB7MHgwZCwweGIwLDB4NDMsMHg4NCwweDQwLDB4ZjAsMHgwMCwweDNjLDB4ODIsMHgwZSwweDM4LDB4MTIsMHg4YywweDQ0LDB4ZjMsMHgzMCB9IH0sCi17ICAxNiwgMHhiOWQwLCAwLCB7MHhiYSwweGMxLDB4MWUsMHgxMCwweDQ3LDB4OGUsMHgyMiwweGQxLDB4MTAsMHgzOCwweDE4LDB4MGMsMHgzMCwweDgzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhiOWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGJjLDB4NDAsMHhmZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhiOWYwLCAwLCB7MHgwZSwweGUwLDB4MDMsMHhmNCwweDQwLDB4ZmMsMHgwMCwweDNkLDB4YzQsMHgwZiwweGQwLDB4MDEsMHhmNCwweDQxLDB4ZWYsMHgxOCB9IH0sCi17ICAxNiwgMHhiYTAwLCAwLCB7MHgzZiwweGM0LDB4MWYsMHhmMCwweDAzLDB4ZjgsMHg0OCwweGVmLDB4MTQsMHgzMywweDgwLDB4MGYsMHhjMSwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhiYTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGZjLDB4NDAsMHhmYiwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhiYTIwLCAwLCB7MHgwZiwweDk4LDB4MDMsMHgyNCwweDAwLDB4Y2IsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhhOCwweDAwLDB4ZGIsMHgyOCB9IH0sCi17ICAxNiwgMHhiYTMwLCAwLCB7MHgzZSwweGM0LDB4MWYsMHg5MCwweDIzLDB4ZWMsMHgwMCwweGNhLDB4MDAsMHgzMiwweGUwLDB4MGMsMHg5MCwweDAzLDB4ZWEsMHgwMCB9IH0sCi17ICAxNiwgMHhiYTQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4ODAsMHhiNywweDAwLDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHhiYTUwLCAwLCB7MHg0YiwweDUwLDB4NTIsMHgxNCwweDAwLDB4ZDQsMHgwMSwweDJkLDB4ODAsMHgwYiwweDYwLDB4MDIsMHhkOCwweDAwLDB4YTcsMHgyMCB9IH0sCi17ICAxNiwgMHhiYTYwLCAwLCB7MHgyZCwweGM1LDB4MGIsMHg0MCwweDE2LDB4ZGMsMHgwMCwweDg0LDB4MDAsMHgyMywweGMwLDB4MDgsMHg0MCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHhiYTcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ODAsMHhiNywweDgwLDB4MmQsMHhlMCB9IH0sCi17ICAxNiwgMHhiYTgwLCAwLCB7MHgwYiwweDc4LDB4MGEsMHg5NiwweDAwLDB4OTQsMHg4MCwweDJkLDB4NjAsMHgxYiwweDc4LDB4MDYsMHhkMiwweDAwLDB4YTcsMHg4MCB9IH0sCi17ICAxNiwgMHhiYTkwLCAwLCB7MHgyZCwweGUwLDB4MGIsMHg3OCwweDIyLDB4ZGUsMHgwMCwweDg3LDB4ODIsMHgyMSwweGUwLDB4MDgsMHg1OCwweDAyLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHhiYWEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweGU0LDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhiYWIwLCAwLCB7MHgxYiwweDIxLDB4MDIsMHg4MSwweDAwLDB4OTAsMHgwMCwweDJjLDB4YzgsMHgwYiwweDM5LDB4MDIsMHhjZSwweDAwLDB4YTMsMHgwMCB9IH0sCi17ICAxNiwgMHhiYWMwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2QsMHgwMCwweDhiLDB4MjAsMHgyMCwweGYwLDB4MDgsMHhiMiwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHhiYWQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmZSwweGEwLDB4M2YsMHg4MiB9IH0sCi17ICAxNiwgMHhiYWUwLCAwLCB7MHgwZiwweGU4LDB4MDMsMHg5OCwweDMwLDB4ZDYsMHgwMCwweDNmLDB4YTAsMHgwZiwweGUwLDB4MDMsMHhiYSwweGMwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHhiYWYwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhlYywweDMzLDB4ZjgsMHgwMiwweGNlLDB4MDAsMHhiMywweGI4LDB4MmMsMHhlYywweDgzLDB4ZmEsMHgwNCB9IH0sCi17ICAxNiwgMHhiYjAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MTgsMHhmOCwweDQwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhiYjEwLCAwLCB7MHgwZiwweDgwLDB4MDIsMHg2MCwweDg0LDB4ZjgsMHgwNSwweDJlLDB4MDQsMHg4ZiwweDgwLDB4NDEsMHhlMCwweDAwLDB4NzgsMHgwMiB9IH0sCi17ICAxNiwgMHhiYjIwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg4MSwweDgzLDB4ZTAsMHgyMCwweGY4LDB4MDAsMHhiZSwweDAyLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhiYjMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU2LDB4MTgsMHhmOSwweDIwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhiYjQwLCAwLCB7MHgwZiwweDljLDB4MDMsMHhlNCwweDQwLDB4YzksMHgwMCwweDMyLDB4NjEsMHgwYywweDkwLDB4MTMsMHhjNCwweDA4LDB4YzksMHgwMSB9IH0sCi17ICAxNiwgMHhiYjUwLCAwLCB7MHgzZSwweDQxLDB4MGYsMHgxOCwweDAzLDB4MjQsMHgwMCwweGM5LDB4YTAsMHgzMiwweDQwLDB4MGYsMHg5OCwweDQzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhiYjYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY1LDB4MDAsMHhiMSwweGMwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhiYjcwLCAwLCB7MHgwYiwweDljLDB4MDIsMHhlNywweDEwLDB4ODksMHgwMCwweDI4LDB4NDQsMHgwOCwweDk0LDB4MjIsMHhlNCwweDEwLDB4ODksMHgwMCB9IH0sCi17ICAxNiwgMHhiYjgwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHg5ZiwweDIyLDB4MjYsMHg2MCwweDg5LDB4ODAsMHgyMiwweDQwLDB4MGIsMHg5MSwweDBhLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhiYjkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4ODAsMHhiOSwweDAwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhiYmEwLCAwLCB7MHg0YiwweGI0LDB4MDIsMHhlNCwweDIwLDB4ODksMHgyMCwweDIyLDB4NDAsMHgwOCwweDk0LDB4MDIsMHhlYywweDAwLDB4ODksMHgwMCB9IH0sCi17ICAxNiwgMHhiYmIwLCAwLCB7MHgyZSwweDQxLDB4MGIsMHg5MCwweDAyLDB4MDQsMHgwMCwweDg5LDB4NDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhiYmMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMSwweDA0LDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhiYmQwLCAwLCB7MHg4YiwweDEwLDB4MDIsMHhlNCwweDA1LDB4ODEsMHgwMCwweDI4LDB4NDAsMHgyOCwweDEyLDB4MTIsMHhjNCwweDgyLDB4ODEsMHgyMCB9IH0sCi17ICAxNiwgMHhiYmUwLCAwLCB7MHgyYywweDQ4LDB4MGIsMHgxMiwweDBhLDB4MDQsMHg4MiwweDgxLDB4MDAsMHgyMCwweDQ4LDB4MGIsMHgxMiwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhiYmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDY4LDB4YTAsMHhmYSwweDAyLDB4M2UsMHgxNCB9IH0sCi17ICAxNiwgMHhiYzAwLCAwLCB7MHgwZiwweDg1LDB4MDMsMHhlMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAsMHgwYywweDg1LDB4MDMsMHhjMSwweDQwLDB4YzgsMHg1MyB9IH0sCi17ICAxNiwgMHhiYzEwLCAwLCB7MHgzZSwweDE0LDB4MGYsMHg4MCwweDAzLDB4MDEsMHg0OCwweGMwLDB4NTAsMHhiMiwweDE0LDB4MGYsMHg4NSwweDAzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhiYzIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGU0LDB4MDAsMHhmZCwweDAwLDB4YmYsMHg0MCB9IH0sCi17ICAxNiwgMHhiYzMwLCAwLCB7MHgwZiwweDUwLDB4MTMsMHhkNCwweDAyLDB4ZmQsMHgwMCwweDJmLDB4YzAsMHgwZiwweGQxLDB4MDMsMHhmNCwweDQwLDB4ZjksMHgxMCB9IH0sCi17ICAxNiwgMHhiYzQwLCAwLCB7MHgzZSwweDQ0LDB4MGYsMHhkMSwweDAzLDB4ZjQsMHg0MCwweGZmLDB4MDAsMHhiZiwweDQ0LDB4MGYsMHhkMSwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhiYzUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU2LDB4YTAsMHhmZCwweDAxLDB4M2UsMHg0NCB9IH0sCi17ICAxNiwgMHhiYzYwLCAwLCB7MHgwZiwweGQxLDB4MDMsMHhkNCwweDAwLDB4YzUsMHgwMCwweDMzLDB4NDEsMHgwZiwweGRiLDB4MDMsMHgyNywweDIwLDB4ZDksMHhlMCB9IH0sCi17ICAxNiwgMHhiYzcwLCAwLCB7MHhiMiwweDcwLDB4MGQsMHhkYSwweDgzLDB4ZjYsMHg0MCwweGNmLDB4MTAsMHgzMiwweDc4LDB4MmQsMHhkYSwweDAzLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhiYzgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUxLDB4MDAsMHhiOCwweDAwLDB4MmUsMHgyOCB9IH0sCi17ICAxNiwgMHhiYzkwLCAwLCB7MHgwYiwweDg4LDB4NDIsMHhlMCwweDEwLDB4ZDgsMHgwMCwweDIyLDB4MDAsMHgwYiwweDhjLDB4MGEsMHgyMywweDAwLDB4ODgsMHhjMCB9IH0sCi17ICAxNiwgMHhiY2EwLCAwLCB7MHgyMiwweDI4LDB4MDgsMHg4NCwweDAyLDB4YzIsMHg4MCwweDgwLDB4YTAsMHgyMiwweDMwLDB4NDgsMHhhYSwweDgyLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHhiY2IwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDAwLDB4MmMsMHg0MCB9IH0sCi17ICAxNiwgMHhiY2MwLCAwLCB7MHg4YiwweDEyLDB4MDIsMHhjNCwweDAwLDB4OTksMHgwMiwweDI4LDB4NDAsMHg4YiwweDE2LDB4MDIsMHg4NCwweDgxLDB4OTEsMHgzMCB9IH0sCi17ICAxNiwgMHhiY2QwLCAwLCB7MHgyMCwweDU4LDB4MDksMHgxMCwweDAyLDB4YzUsMHgwMCwweDgxLDB4MDAsMHg2NCwweDRkLDB4MDgsMHgzNCwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhiY2UwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGFjLDB4MGMsMHhiOSwweDA0LDB4MmUsMHg0OCB9IH0sCi17ICAxNiwgMHhiY2YwLCAwLCB7MHgwYiwweDk0LDB4MDYsMHhlNCwweDAwLDB4OTksMHg0MCwweGFhLDB4NDAsMHgwYiwweDkyLDB4MjIsMHhhNCwweDAwLDB4ODksMHgwMCB9IH0sCi17ICAxNiwgMHhiZDAwLCAwLCB7MHg2MCwweDQwLDB4MDgsMHg5NCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4ODAsMHhhNiwweDUwLDB4MDgsMHg5MiwweDAyLDB4MDYsMHgwNCB9IH0sCi17ICAxNiwgMHhiZDEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweDk4LDB4M2UsMHg0OCB9IH0sCi17ICAxNiwgMHhiZDIwLCAwLCB7MHgwZiwweDk4LDB4MDMsMHhlNSwweDIwLDB4ZDksMHgwMCwweDNhLDB4NjQsMHgwZiwweDk0LDB4ODMsMHhhNCwweGMwLDB4ZDksMHgwMiB9IH0sCi17ICAxNiwgMHhiZDMwLCAwLCB7MHg3MiwweDQwLDB4NGQsMHg5MCwweDQyLDB4ZTQsMHg4MiwweGM5LDB4NDAsMHgzNiwweDQwLDB4MGMsMHg5MCwweDBiLDB4MjgsMHgwNCB9IH0sCi17ICAxNiwgMHhiZDQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGFjLDB4MjgsMHhmOSwweDg4LDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhiZDUwLCAwLCB7MHgwZiwweDk5LDB4MTMsMHhlNywweDAwLDB4ZjksMHhjMCwweDM2LDB4NjAsMHgwZiwweDkwLDB4MDMsMHg2NiwweDAwLDB4ZjEsMHgwMCB9IH0sCi17ICAxNiwgMHhiZDYwLCAwLCB7MHg3ZSwweDQwLDB4MGYsMHg5OSwweDA3LDB4ZTQsMHg2MCwweGY5LDB4MDAsMHgzOCwweDQwLDB4MGYsMHg5OCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhiZDcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhmOCwweDEwLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhiZDgwLCAwLCB7MHgwZiwweDgyLDB4MGIsMHgyMSwweDAwLDB4ZTgsMHgwMCwweDM2LDB4MDQsMHgwYywweDg2LDB4MDMsMHhlMSwweDAwLDB4ZDgsMHgwMCB9IH0sCi17ICAxNiwgMHhiZDkwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4NjEsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4MGYsMHgwMCwweDAzLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhiZGEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MjAsMHhiZSwweDAwLDB4MjIsMHg4MCB9IH0sCi17ICAxNiwgMHhiZGIwLCAwLCB7MHgyOCwweGVjLDB4MDIsMHgxOSwweDA0LDB4ODIsMHgwMCwweDAzLDB4ODAsMHgwZCwweGU0LDB4ODIsMHhlOCwweDAwLDB4OGEsMHgwMSB9IH0sCi17ICAxNiwgMHhiZGMwLCAwLCB7MHhhYSwweDgwLDB4OGIsMHhlZCwweDgyLDB4M2IsMHg4MCwweDhlLDB4OTAsMHgzNiwweDgwLDB4MGIsMHhlMCwweDAzLDB4NGEsMHgwMCB9IH0sCi17ICAxNiwgMHhiZGQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQyLDB4MDAsMHhiMywweDgwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhiZGUwLCAwLCB7MHg2YiwweDM0LDB4MTYsMHg0MCwweGMwLDB4ODMsMHgxMCwweDI0LDB4NzIsMHg4OCwweGIwLDB4MDIsMHhlYywweDAwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhiZGYwLCAwLCB7MHgyNCwweGMwLDB4MGIsMHgwNCwweDAyLDB4NmYsMHgwOSwweDliLDB4MDAsMHgyNCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhiZTAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDE0LDB4MDAsMHhiNywweDgwLDB4MjMsMHhlNCB9IH0sCi17ICAxNiwgMHhiZTEwLCAwLCB7MHgyOCwweDc4LDB4ODIsMHg3NCwweDE0LDB4OGYsMHgwMCwweDYxLDB4ZTAsMHgwOSwweDUwLDB4MTIsMHhkYywweDA0LDB4ODcsMHgyMiB9IH0sCi17ICAxNiwgMHhiZTIwLCAwLCB7MHgyNSwweGM4LDB4MWIsMHg3OCwweDAyLDB4MTQsMHgwMCwweDk0LDB4NDAsMHhhNSwweGMwLDB4MGIsMHg2MCwweDIyLDB4NjgsMHgwMCB9IH0sCi17ICAxNiwgMHhiZTMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDEyLDB4MjAsMHhiNywweDgwLDB4YjEsMHhlMCB9IH0sCi17ICAxNiwgMHhiZTQwLCAwLCB7MHg4ZiwweGY4LDB4MDMsMHgxMiwweDAyLDB4ZTcsMHg4MCwweDM1LDB4ZTAsMHgwYywweDY4LDB4MDYsMHhjZiwweGMyLDB4Y2YsMHhiMCB9IH0sCi17ICAxNiwgMHhiZTUwLCAwLCB7MHgyNSwweGY0LDB4MGYsMHg1OCwweDAzLDB4NWEsMHgwMiwweGQ1LDB4ODAsMHg3NSwweGZhLDB4NGYsMHhmOCwweDAzLDB4MmEsMHgwMiB9IH0sCi17ICAxNiwgMHhiZTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGE1LDB4OTAsMHhmMywweDAwLDB4M2QsMHhjMCB9IH0sCi17ICAxNiwgMHhiZTcwLCAwLCB7MHg0ZiwweGIwLDB4MTMsMHhhOCwweDA0LDB4ZmIsMHgwMCwweDNjLDB4YzAsMHgwZiwweDgwLDB4NDMsMHhlYywweDgwLDB4ZWIsMHg2MCB9IH0sCi17ICAxNiwgMHhiZTgwLCAwLCB7MHgzYSwweGM5LDB4MGYsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGU5LDB4MDAsMHgzZSwweGM4LDB4MGYsMHhhMCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhiZTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGY2LDB4MDAsMHhlZSwweDgwLDB4M2YsMHhlMCB9IH0sCi17ICAxNiwgMHhiZWEwLCAwLCB7MHgwZCwweDg5LDB4MDMsMHhkMiwweDQwLDB4ZTUsMHg4MSwweDM5LDB4ZTAsMHgzYywweGY5LDB4MDcsMHhmZSwweDAwLDB4Y2YsMHg4OCB9IH0sCi17ICAxNiwgMHhiZWIwLCAwLCB7MHgzZiwweGUwLDB4MGYsMHhlOCwweDAzLDB4ZjIsMHgwOCwweGNlLDB4ODAsMHgzMywweGUwLDB4MGMsMHhmOCwweDAzLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhiZWMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDk0LDB4NDQsMHhjNiwweDAwLDB4MmYsMHhjMCB9IH0sCi17ICAxNiwgMHhiZWQwLCAwLCB7MHgwOCwweDU4LDB4MDIsMHhkMCwweGM0LDB4ODUsMHgyNCwweDIxLDB4OTAsMHgwOCwweDU0LDB4MTIsMHhkYywweDgyLDB4MDcsMHgwMCB9IH0sCi17ICAxNiwgMHhiZWUwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHg3MCwweDA2LDB4ZDQsMHgwMCwweDhlLDB4NDgsMHgyMSwweGMwLDB4MGEsMHg2MCwweDAyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhiZWYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhNywweDQwLDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHhiZjAwLCAwLCB7MHgwOCwweDQyLDB4MDIsMHhkMCwweDAwLDB4YWQsMHgwMCwweDI5LDB4YzAsMHgwOCwweDcwLDB4MjIsMHhkYywweDI4LDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHhiZjEwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHg0MCwweDAyLDB4OTgsMHgwMCwweDk3LDB4MDAsMHhhMCwweGM0LDB4MDgsMHg3MCwweDAyLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhiZjIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNjLDB4MDgsMHg5MywweDAwLDB4MmMsMHhlMCB9IH0sCi17ICAxNiwgMHhiZjMwLCAwLCB7MHgwOCwweDNjLDB4MjIsMHhjMSwweDAwLDB4ODEsMHgwMCwweDIwLDB4ODAsMHg4OCwweDE1LDB4MDIsMHhjZSwweDMwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhiZjQwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzYywweDAyLDB4Y2MsMHgwNCwweDkzLDB4YzAsMHgyMCwweGY0LDB4NGEsMHgwYywweDgyLDB4MDgsMHgwNCB9IH0sCi17ICAxNiwgMHhiZjUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGEwLDB4MDAsMHhlMywweGMwLDB4MWYsMHhlMCB9IH0sCi17ICAxNiwgMHhiZjYwLCAwLCB7MHg2YywweDEwLDB4ODMsMHhlMCwweDA0LDB4ZWIsMHgwMCwweDNhLDB4NTIsMHg0YywweGI0LDB4MDMsMHhmZSwweDAyLDB4Y2YsMHgwMCB9IH0sCi17ICAxNiwgMHhiZjcwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHg4NCwweDQzLDB4ZTEsMHgwMiwweGQ4LDB4YzIsMHgzMywweGMwLDB4MGMsMHg4NCwweDBiLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhiZjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGU5LDB4MDAsMHhlYiwweDEwLDB4M2UsMHhjNCB9IH0sCi17ICAxNiwgMHhiZjkwLCAwLCB7MHgwZSwweDk0LDB4MDMsMHhlNCwweDAwLDB4ZmIsMHgxOCwweDNlLDB4YzIsMHgwZiwweGI2LDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMSB9IH0sCi17ICAxNiwgMHhiZmEwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHgzNSwweDAzLDB4YzQsMHgyOCwweGVhLDB4NDIsMHgzZSwweGMwLDB4MGYsMHg4MSwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhiZmIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4NDAsMHhmZiwweDAwLDB4MzMsMHhjMCB9IH0sCi17ICAxNiwgMHhiZmMwLCAwLCB7MHgwYywweGMwLDB4YTMsMHgzMCwweDI4LDB4Y2QsMHhhMCwweDMzLDB4YzAsMHgwYywweGU4LDB4MDMsMHgwYywweDAwLDB4ZWYsMHgwNSB9IH0sCi17ICAxNiwgMHhiZmQwLCAwLCB7MHgzZCwweGMwLDB4MGMsMHhjYSwweDgzLDB4M2MsMHgwMCwweGNkLDB4MDgsMHgzZiwweGMyLDB4MGMsMHhhMCwweDAzLDB4YzAsMHg0NCB9IH0sCi17ICAxNiwgMHhiZmUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDY3LDB4MDAsMHhiYiwweDgwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhiZmYwLCAwLCB7MHgwOCwweGFhLDB4MDIsMHgwOCwweDAwLDB4YTEsMHgwMSwweDM0LDB4ZDEsMHgwOCwweGE0LDB4MTIsMHgyYywweDAwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDAwLCAwLCB7MHg2ZSwweGMwLDB4ODgsMHhiMiwweDAyLDB4MmMsMHgwOCwweDg5LDB4ODAsMHgyZSwweGMwLDB4MGEsMHhhOCwweDAzLDB4YTAsMHg0MCB9IH0sCi17ICAxNiwgMHhjMDEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiYSwweDgwLDB4YTIsMHhjMCB9IH0sCi17ICAxNiwgMHhjMDIwLCAwLCB7MHgwOCwweGE4LDB4MGEsMHhhMCwweDAwLDB4OGIsMHgwMCwweGEyLDB4YzAsMHg0OCwweDExLDB4MDIsMHhhYywweDA0LDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDMwLCAwLCB7MHgyZSwweGMwLDB4MDAsMHg4MCwweDEyLDB4MmEsMHgwOCwweDhiLDB4MTQsMHgyYywweGMwLDB4MDgsMHg4OCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMiwweDAwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhjMDUwLCAwLCB7MHgwOCwweGIyLDB4MTIsMHg4MCwweDAwLDB4YWIsMHgwMSwweDI0LDB4YzAsMHgwOCwweDAwLDB4MDIsMHgwYywweDA0LDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDYwLCAwLCB7MHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4MDcsMHgwMCwweDgyLDB4MDAsMHgyNCwweGMwLDB4MDgsMHgwOCwweDAyLDB4ODIsMHgwMSB9IH0sCi17ICAxNiwgMHhjMDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhmYiwweDAwLDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHhjMDgwLCAwLCB7MHgwYywweGEyLDB4MDMsMHhhMCwweDAwLDB4YzksMHgwMCwweDMyLDB4YzAsMHgyNCwweDk0LDB4MDMsMHgzYywweDAyLDB4Y2YsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDkwLCAwLCB7MHgyZiwweGMwLDB4MDQsMHg4MCwweDBiLDB4MDksMHgwMiwweGNiLDB4MDEsMHgzZiwweGMwLDB4MmMsMHhhMCwweDAzLDB4YzAsMHgwMyB9IH0sCi17ICAxNiwgMHhjMGEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxOSwweGRjLDB4MDAsMHhmZCwweDAyLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhjMGIwLCAwLCB7MHg0ZiwweGU0LDB4MTMsMHg3MCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMyLDB4ODMsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhjMGMwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4YTgsMHgwNiB9IH0sCi17ICAxNiwgMHhjMGQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4MjAsMHhlZiwweDMwLDB4M2YsMHgwNCB9IH0sCi17ICAxNiwgMHhjMGUwLCAwLCB7MHg2YywweDg4LDB4MDMsMHgzYSwweDQyLDB4ZTQsMHg5MSwweDNmLDB4MGQsMHgwZCwweDQ4LDB4MDMsMHgzYywweGMwLDB4ZmYsMHgwMiB9IH0sCi17ICAxNiwgMHhjMGYwLCAwLCB7MHgzMywweDQ0LDB4MGMsMHhmNCwweDAzLDB4ZmMsMHg4MiwweGRmLDB4MzAsMHgzMywweDYwLDB4MGQsMHhmMSwweDAzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhjMTAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMCwweGVkLDB4MDAsMHg4YiwweDcwLDB4MmUsMHgxOCB9IH0sCi17ICAxNiwgMHhjMTEwLCAwLCB7MHg4OCwweDIyLDB4NGEsMHgyYywweDgyLDB4ZWEsMHgyNiwweDJlLDB4MGMsMHgwYiwweGI4LDB4NDIsMHgzZCwweDgwLDB4YmYsMHg5MCB9IH0sCi17ICAxNiwgMHhjMTIwLCAwLCB7MHgyYSwweDU0LDB4MjgsMHhiNCwweDAyLDB4Y2QsMHgwMCwweGRiLDB4NDAsMHgyYSwweDRhLDB4NDgsMHgzMCwweDAyLDB4YTAsMHgwNCB9IH0sCi17ICAxNiwgMHhjMTMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4YjAsMHhhMywweDAwLDB4NmMsMHgxMCB9IH0sCi17ICAxNiwgMHhjMTQwLCAwLCB7MHgwOSwweDAwLDB4ODIsMHgyMCwweDgyLDB4YTAsMHgyMCwweDJjLDB4ODgsMHg0YiwweDgwLDB4MDAsMHgwYywweDQwLDB4YjMsMHgwMSB9IH0sCi17ICAxNiwgMHhjMTUwLCAwLCB7MHgyMCwweDQ4LDB4MGIsMHgzNiwweDAyLDB4OGMsMHhlMCwweDgzLDB4NjQsMHgyNCwweDQwLDB4MjgsMHgzMiwweDAyLDB4MjIsMHgwMSB9IH0sCi17ICAxNiwgMHhjMTYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgxMSwweGFjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHhjMTcwLCAwLCB7MHgwOSwweDgwLDB4ODAsMHhhNiwweDAwLDB4YmEsMHgxMSwweDJlLDB4ODgsMHgwYiwweGIwLDB4MDAsMHgyYywweDAwLDB4YmIsMHgwMiB9IH0sCi17ICAxNiwgMHhjMTgwLCAwLCB7MHgwMiwweDQwLDB4MDksMHhiMCwweDAyLDB4ZWMsMHgwMCwweDhiLDB4MDAsMHgyYywweGM4LDB4MDgsMHhiOCwweDgyLDB4YjAsMHgwNCB9IH0sCi17ICAxNiwgMHhjMTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHg5MiB9IH0sCi17ICAxNiwgMHhjMWEwLCAwLCB7MHgwZCwweDgwLDB4MDMsMHgwYSwweDIwLDB4ZTksMHgwMCwweDNlLDB4NTAsMHg0NSwweDgwLDB4MDEsMHgyYywweDA0LDB4ZjMsMHgwMCB9IH0sCi17ICAxNiwgMHhjMWIwLCAwLCB7MHg5MCwweDYwLDB4MDksMHhiMCwweDAzLDB4ZWMsMHgwMCwweDhiLDB4MDIsMHgyNiwweDUwLDB4OGQsMHhiYywweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhjMWMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAyLDB4M2YsMHg4MCB9IH0sCi17ICAxNiwgMHhjMWQwLCAwLCB7MHgwZSwweGY5LDB4MDIsMHg3YywweDIyLDB4YWYsMHgwMCwweDNmLDB4NjAsMHgwMywweGMwLDB4MGIsMHhmYywweDEwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhjMWUwLCAwLCB7MHgzZiwweDRhLDB4NGUsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGY3LDB4MDAsMHgyYiwweDYwLDB4MGYsMHg3MCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjMWYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhmYiwweDAwLDB4YjAsMHgwMCB9IH0sCi17ICAxNiwgMHhjMjAwLCAwLCB7MHgwZiwweDgyLDB4MGIsMHhhOSwweDAwLDB4YzksMHgwMCwweDMyLDB4ZDIsMHgwZiwweGEwLDB4ODMsMHhhYywweDAwLDB4Y2IsMHgxMCB9IH0sCi17ICAxNiwgMHhjMjEwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGRiLDB4MDAsMHgzMiwweDUwLDB4MmMsMHg5NSwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhjMjIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDNjLDB4MDQsMHhiZiwweDAyLDB4MjIsMHg4MCB9IH0sCi17ICAxNiwgMHhjMjMwLCAwLCB7MHgwYiwweDk4LDB4MDAsMHgyOSwweDAwLDB4Y2IsMHg0MCwweDIyLDB4YzAsMHgwYiwweDI0LDB4MDIsMHgzYywweDA4LDB4OGYsMHg1MCB9IH0sCi17ICAxNiwgMHhjMjQwLCAwLCB7MHgyZSwweDUwLDB4MGQsMHhmMCwweDAyLDB4ZmQsMHg0MiwweDhmLDB4NTgsMHgyMiwweGUwLDB4NDgsMHhiNSwweDAyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhjMjUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDZjLDB4MDAsMHhiMywweDAwLDB4MjQsMHg0MCB9IH0sCi17ICAxNiwgMHhjMjYwLCAwLCB7MHg0YiwweDk0LDB4MDAsMHg0OSwweDAwLDB4OTAsMHg4MCwweDA0LDB4MzAsMHgwOSwweDAwLDB4MGUsMHg0YywweDAwLDB4ODMsMHg4MCB9IH0sCi17ICAxNiwgMHhjMjcwLCAwLCB7MHgyYywweGMwLDB4MDksMHgzMCwweDIyLDB4NmUsMHg0MiwweDgzLDB4ODAsMHgyMCwweDQ4LDB4MDgsMHgzOCwweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHhjMjgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4NjUsMHgyMCB9IH0sCi17ICAxNiwgMHhjMjkwLCAwLCB7MHgwYiwweDc4LDB4ODIsMHg3YSwweDA4LDB4OGMsMHhjMCwweDI1LDB4YTMsMHg0YiwweDc4LDB4MDIsMHg1ZSwweDA0LDB4ODcsMHg4NCB9IH0sCi17ICAxNiwgMHhjMmEwLCAwLCB7MHgyZCwweDYxLDB4ODksMHg3OCwweDAyLDB4ZGUsMHgwNCwweDg3LDB4ODAsMHhlOSwweDYyLDB4MDgsMHg3OCwweDAyLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHhjMmIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhmYiwweDAwLDB4MzQsMHg0OCB9IH0sCi17ICAxNiwgMHhjMmMwLCAwLCB7MHgwZiwweDNiLDB4MDMsMHg0OCwweDAwLDB4OTMsMHg0OCwweDM0LDB4NTAsMHgwZCwweDAwLDB4MDMsMHg2YywweDAwLDB4YzMsMHgxMCB9IH0sCi17ICAxNiwgMHhjMmQwLCAwLCB7MHgxYywweGMyLDB4MDUsMHgzMCwweDAzLDB4Y2MsMHg0MCwweGNiLDB4MDAsMHgzMiwweDQwLDB4MGMsMHgyMCwweDAzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhjMmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGJjLDB4MjAsMHhmZiwweDAxLDB4MDMsMHg0MCB9IH0sCi17ICAxNiwgMHhjMmYwLCAwLCB7MHgwZiwweGYwLDB4MjMsMHgxYywweDAwLDB4ZmYsMHgwMCwweDNiLDB4ODAsMHgwZiwweGIwLDB4MjMsMHgzYywweDAyLDB4ZmYsMHg1MCB9IH0sCi17ICAxNiwgMHhjMzAwLCAwLCB7MHgzZCwweGM0LDB4MGYsMHhmMSwweDAzLDB4ZWMsMHgwMCwweGVmLDB4MDAsMHhiNywweGMwLDB4MGYsMHhlMSwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhjMzEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2UsMHhlMCB9IH0sCi17ICAxNiwgMHhjMzIwLCAwLCB7MHgwYywweDgwLDB4MDMsMHg0OCwweDAyLDB4YzgsMHg4MSwweDMyLDB4MDAsMHgwZiwweDkwLDB4NDIsMHhlYywweGEwLDB4ZmIsMHgxMCB9IH0sCi17ICAxNiwgMHhjMzMwLCAwLCB7MHgzZSwweGUwLDB4MGMsMHhiMSwweDAzLDB4ZWMsMHg0MCwweGZiLDB4MTAsMHgzMiwweDQwLDB4MWYsMHhmMCwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhjMzQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4MDAsMHhiNywweDI0LDB4MmQsMHg4MCB9IH0sCi17ICAxNiwgMHhjMzUwLCAwLCB7MHgwOCwweDcwLDB4NDIsMHhkOCwweDEwLDB4OGMsMHgwMiwweDIxLDB4NDAsMHgwYiwweDUwLDB4MDIsMHhkZCwweDAwLDB4ZTcsMHgyMCB9IH0sCi17ICAxNiwgMHhjMzYwLCAwLCB7MHgyZiwweDQwLDB4MDgsMHg3MCwweDAyLDB4ZGMsMHgwNSwweGI3LDB4MDAsMHgyMSwweGMwLDB4MGIsMHhmMCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhjMzcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiNywweDkwLDB4MmYsMHg0MCB9IH0sCi17ICAxNiwgMHhjMzgwLCAwLCB7MHgwYSwweDY4LDB4MDIsMHg3YSwweDAwLDB4OTcsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjcsMHg4MCB9IH0sCi17ICAxNiwgMHhjMzkwLCAwLCB7MHgyZCwweGUwLDB4MDgsMHg3OCwweDA2LDB4ZGUsMHgwMCwweGI3LDB4YTAsMHgyMSwweDYwLDB4MGIsMHg3OCwweDQyLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhjM2EwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhjM2IwLCAwLCB7MHgwYSwweDM0LDB4MDIsMHhjOCwweDAwLDB4ODMsMHg0YSwweDIwLDB4ZjgsMHgwYiwweDMxLDB4MDIsMHhjYywweDAwLDB4YTMsMHgwMCB9IH0sCi17ICAxNiwgMHhjM2MwLCAwLCB7MHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyMCwweGIyLDB4MGIsMHgyMCwweDQyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhjM2QwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhiYSwweDAwLDB4M2YsMHg4OCB9IH0sCi17ICAxNiwgMHhjM2UwLCAwLCB7MHgyZSwweGUwLDB4NDMsMHg1OSwweDg4LDB4ZGUsMHgwMCwweDMzLDB4YjAsMHgwZiwweDZjLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHhjM2YwLCAwLCB7MHgzZSwweDgwLDB4MmMsMHhhMCwweDAzLDB4ZTgsMHgwNCwweGZhLDB4MDAsMHgyMywweGI4LDB4MGYsMHhlMCwweDhiLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhjNDAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MDQsMHhmOCwweDAxLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhjNDEwLCAwLCB7MHgwOSwweDgyLDB4MjEsMHhlMCwweDAwLDB4ZjgsMHg0MCwweGJlLDB4MTQsMHgwZiwweDg0LDB4ODEsMHhlMCwweDAwLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHhjNDIwLCAwLCB7MHgzZSwweDAwLDB4MWYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHhiZSwweDAwLDB4MGYsMHg4OCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhjNDMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhlMSwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhjNDQwLCAwLCB7MHgwYywweDkwLDB4NDMsMHhlNCwweDIwLDB4ZDksMHgwMCwweDNjLDB4NDQsMHgwOCwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMSB9IH0sCi17ICAxNiwgMHhjNDUwLCAwLCB7MHgzZSwweDQ4LDB4MGYsMHgxMCwweDQzLDB4MjUsMHgwMCwweGM5LDB4MDAsMHhiMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhjNDYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDAwLDB4YTAsMHg0MCB9IH0sCi17ICAxNiwgMHhjNDcwLCAwLCB7MHgwOCwweDk4LDB4MDIsMHhlNiwweDA4LDB4YTksMHg2MCwweDJlLDB4NDksMHgwOCwweDk0LDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhjNDgwLCAwLCB7MHgyZSwweDcwLDB4MGIsMHg5MCwweDAyLDB4MjYsMHgwMiwweDg5LDB4MDAsMHhhMCwweDQwLDB4MGEsMHg5MCwweDBhLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhjNDkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhjNGEwLCAwLCB7MHgwOCwweDk4LDB4MDQsMHhlNiwweDAwLDB4OTksMHg4MCwweDJlLDB4NDAsMHgwYSwweGIxLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhjNGIwLCAwLCB7MHgwZSwweDQwLDB4MGIsMHg5MCwweDBhLDB4MDQsMHgwMCwweDgxLDB4MDEsMHgyMiwweGMwLDB4MDgsMHgxMCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhjNGMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDIwLDB4MjIsMHg0OCB9IH0sCi17ICAxNiwgMHhjNGQwLCAwLCB7MHgwOCwweDE4LDB4MDYsMHhjNCwweDAwLDB4YTEsMHgwMCwweDJjLDB4NDgsMHgyYSwweDMwLDB4MDIsMHgwNCwweDgwLDB4YjEsMHgyMiB9IH0sCi17ICAxNiwgMHhjNGUwLCAwLCB7MHgyYywweDQ4LDB4MGIsMHgxMiwweDAyLDB4MDUsMHg4MCwweDgxLDB4NjAsMHgyMiwweDUwLDB4MGEsMHgxNCwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhjNGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhmOCwweDUwLDB4MzIsMHgxNCB9IH0sCi17ICAxNiwgMHhjNTAwLCAwLCB7MHgwYywweDg1LDB4MDMsMHhlMSwweDQwLDB4ZDgsMHg1MCwweDNlLDB4MTQsMHgwZSwweDgwLDB4MGIsMHgyMSwweDQwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHhjNTEwLCAwLCB7MHgzZSwweDk0LDB4MGYsMHg4NSwweDAzLDB4MjAsMHgwMCwweGMwLDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhjNTIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGU0LDB4NDEsMHhmOSwweDEwLDB4M2QsMHg0NSB9IH0sCi17ICAxNiwgMHhjNTMwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4NDUsMHgwZCwweGQwLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMCB9IH0sCi17ICAxNiwgMHhjNTQwLCAwLCB7MHgzZiwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MiwweGY5LDB4MTAsMHgzZiwweDQwLDB4MGYsMHhkNCwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhjNTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhjNTYwLCAwLCB7MHgwYywweGQwLDB4MDMsMHhmNCwweDA4LDB4OGQsMHgwMiwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhlNCwweDAwLDB4Y2QsMHgwMCB9IH0sCi17ICAxNiwgMHhjNTcwLCAwLCB7MHgzMywweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4NGMsMHg5OCwweDIzLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhjNTgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUwLDB4MDAsMHhlOCwweDAwLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHhjNTkwLCAwLCB7MHg0OCwweDgwLDB4MDIsMHhlOCwweDAwLDB4ZDAsMHgwMCwweDJlLDB4ODAsMHgwYiwweDgwLDB4MTIsMHhlMCwweDAyLDB4ODgsMHgwMCB9IH0sCi17ICAxNiwgMHhjNWEwLCAwLCB7MHhhMiwweDAwLDB4MGEsMHg4MCwweDEyLDB4MjIsMHgwMCwweGI4LDB4ODEsMHgyMiwweDI4LDB4MDgsMHhjZiwweDAyLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHhjNWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDAwLDB4MmMsMHg0MCB9IH0sCi17ICAxNiwgMHhjNWMwLCAwLCB7MHgyOCwweDEwLDB4MDIsMHhjNCwweDAwLDB4ODEsMHgwMCwweDJjLDB4NDAsMHgwYiwweDEwLDB4MDIsMHhjNCwweDAwLDB4OTEsMHgwMCB9IH0sCi17ICAxNiwgMHhjNWQwLCAwLCB7MHgyNiwweDQwLDB4MDksMHgxMCwweDAyLDB4NTQsMHhhMCwweGI1LDB4MmMsMHhhNSwweDQyLDB4MDgsMHg1MCwweDgyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhjNWUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE0LDB4MDAsMHhhOSwweDAwLDB4MmUsMHg1MCB9IH0sCi17ICAxNiwgMHhjNWYwLCAwLCB7MHg1OCwweDkwLDB4MDIsMHhlNCwweDgwLDB4OWIsMHgwMCwweDJlLDB4NDUsMHg4YiwweDkyLDB4MDIsMHhlNCwweDAwLDB4OTksMHgwMCB9IH0sCi17ICAxNiwgMHhjNjAwLCAwLCB7MHgyNiwweDQ0LDB4MGIsMHg5MCwweDAyLDB4NjQsMHgwOCwweGI1LDB4MDAsMHgyNSwweDRhLDB4MDgsMHg1MSwweDAyLDB4MDYsMHgwNCB9IH0sCi17ICAxNiwgMHhjNjEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg1NCB9IH0sCi17ICAxNiwgMHhjNjIwLCAwLCB7MHgwYywweDkwLDB4NDMsMHhjNCwweDAwLDB4YzksMHg5MCwweDNlLDB4NzAsMHgwZiwweDk4LDB4MDMsMHhlNCwweDAwLDB4ZDksMHgwMCB9IH0sCi17ICAxNiwgMHhjNjMwLCAwLCB7MHgzNCwweDYwLDB4NGQsMHg5MCwweDBhLDB4NjQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDQwLDB4MmMsMHg5ZSwweDAzLDB4MjgsMHgwNCB9IH0sCi17ICAxNiwgMHhjNjQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCB9IH0sCi17ICAxNiwgMHhjNjUwLCAwLCB7MHgwZiwweDljLDB4MDMsMHhlNiwweDMwLDB4ZjksMHgwMCwweDNlLDB4NjIsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMCB9IH0sCi17ICAxNiwgMHhjNjYwLCAwLCB7MHgzYSwweDQwLDB4NGUsMHg5MCwweDAzLDB4YTQsMHgwMCwweDc5LDB4MGMsMHgzYSwweDQwLDB4MGYsMHg5MCwweDFiLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhjNjcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhjNjgwLCAwLCB7MHgwYywweDgxLDB4MTMsMHhlMSwweDA4LDB4YzgsMHg0OCwweDMyLDB4MDAsMHgzYywweDgwLDB4MDMsMHhjMCwweDAwLDB4ZjAsMHgxMCB9IH0sCi17ICAxNiwgMHhjNjkwLCAwLCB7MHgzZSwweDA2LDB4MGMsMHg4MCwweDAzLDB4ZjAsMHgwOCwweGNjLDB4MDAsMHgzMywweDA0LDB4MGMsMHhjMCwweDAzLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhjNmEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHhiYSwweDAwLDB4MmUsMHg4MCB9IH0sCi17ICAxNiwgMHhjNmIwLCAwLCB7MHgwOCwweGVjLDB4NDIsMHhmYSwweDIwLDB4OGUsMHgwMCwweDIzLDB4YTAsMHgwOCwweGU4LDB4NDIsMHhlOCwweDAwLDB4YmUsMHg4MCB9IH0sCi17ICAxNiwgMHhjNmMwLCAwLCB7MHgyZiwweDgwLDB4MDgsMHhhMCwweDAyLDB4ZTgsMHgwMCwweGRhLDB4MDAsMHgyMiwweDgwLDB4NDgsMHhlMCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhjNmQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhjNmUwLCAwLCB7MHgwOSwweDM0LDB4ODIsMHhjOSwweDAwLDB4ODMsMHg4MCwweDIwLDB4ZjAsMHgwOCwweDMwLDB4ODIsMHhjYywweDAwLDB4YjMsMHg4MCB9IH0sCi17ICAxNiwgMHhjNmYwLCAwLCB7MHgyYywweGYwLDB4MDgsMHhiMCwweDAyLDB4YzEsMHgyMCwweDgwLDB4MDAsMHhhMCwweDMyLDB4MDgsMHgwMCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhjNzAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFjLDB4YzAsMHhiNywweDAxLDB4MmYsMHhjOCB9IH0sCi17ICAxNiwgMHhjNzEwLCAwLCB7MHg4OSwweDUwLDB4MDIsMHhkOCwweDAyLDB4ODcsMHhjNCwweDIxLDB4ZTIsMHg0OCwweDcwLDB4ODIsMHhkYywweDAwLDB4YjcsMHgwMCB9IH0sCi17ICAxNiwgMHhjNzIwLCAwLCB7MHgyYywweDQwLDB4MDgsMHg3MiwweDAyLDB4Y2UsMHgwMCwweDk3LDB4MDgsMHgyMywweGMwLDB4MDgsMHg3MCwweDAyLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjNzMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhmNywweGUxLDB4M2QsMHhlOCB9IH0sCi17ICAxNiwgMHhjNzQwLCAwLCB7MHgyZCwweDY4LDB4MDMsMHhmMiwweDAwLDB4YzcsMHg4MCwweGIwLDB4ZTAsMHgwOCwweDY4LDB4MDMsMHhkZiwweDgwLDB4ZjYsMHg4MCB9IH0sCi17ICAxNiwgMHhjNzUwLCAwLCB7MHgzZCwweGUwLDB4OGMsMHg3ZSwweDAzLDB4ZGEsMHgwMCwweGNjLDB4ODAsMHgzMSwweDIwLDB4MGMsMHhjOCwweDBiLDB4MmEsMHgwMiB9IH0sCi17ICAxNiwgMHhjNzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4MDgsMHhmYiwweDAwLDB4M2MsMHhjMCB9IH0sCi17ICAxNiwgMHhjNzcwLCAwLCB7MHgwZSwweDgwLDB4MDMsMHhlMCwweDA4LDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MDIsMHhlYywweDAwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHhjNzgwLCAwLCB7MHgzZSwweDQwLDB4MmYsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGZiLDB4MDAsMHgzYywweGMwLDB4MmYsMHhiMCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhjNzkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhmZiwweDkyLDB4N2YsMHhlYSB9IH0sCi17ICAxNiwgMHhjN2EwLCAwLCB7MHgwYywweGY4LDB4MDMsMHhmZSwweDAwLDB4Y2MsMHhhMCwweDNmLDB4MjAsMHgwZCwweGY5LDB4MDMsMHgzZSwweDAwLDB4Y2YsMHg4MCB9IH0sCi17ICAxNiwgMHhjN2IwLCAwLCB7MHgzMywweDYwLDB4MGYsMHhmOCwweDAzLDB4ZjYsMHgwMCwweGVmLDB4ODQsMHgzMywweGUwLDB4MmMsMHhjOCwweDAzLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhjN2MwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDAsMHhiNywweDAwLDB4MmYsMHhjOCB9IH0sCi17ICAxNiwgMHhjN2QwLCAwLCB7MHgwOCwweDU0LDB4MDIsMHhkOCwweDAwLDB4ZDYsMHgwNCwweDJkLDB4MDEsMHgwOCwweDY5LDB4MDIsMHgxYywweDAwLDB4ODUsMHgwMCB9IH0sCi17ICAxNiwgMHhjN2UwLCAwLCB7MHgyMSwweDQzLDB4MGIsMHg3MCwweDAzLDB4OWEsMHhjMCwweDhjLDB4MDAsMHhhMywweDAyLDB4MDgsMHhmMSwweDAyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhjN2YwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhiNywweDAxLDB4MmQsMHhjYyB9IH0sCi17ICAxNiwgMHhjODAwLCAwLCB7MHgwOCwweDcwLDB4MDIsMHhkNCwweDAwLDB4OTQsMHgyOCwweDJkLDB4YzIsMHgwOCwweGMyLDB4MDIsMHg1YywweDAwLDB4ODYsMHgwMCB9IH0sCi17ICAxNiwgMHhjODEwLCAwLCB7MHgyMSwweDgwLDB4MGIsMHg3MSwweDAyLDB4ZGMsMHgwMCwweGE3LDB4MTAsMHgyMSwweGMwLDB4MDgsMHg0OCwweDAyLDB4NDAsMHgwMCB9IH0sCi17ICAxNiwgMHhjODIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNjLDB4MDgsMHhiMywweDAwLDB4MmMsMHhmMCB9IH0sCi17ICAxNiwgMHhjODMwLCAwLCB7MHgwOCwweDA1LDB4MDIsMHhjMCwweDIwLDB4OTAsMHg4MCwweDJlLDB4MDAsMHgwOCwweDAwLDB4ODIsMHg0YywweDAyLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhjODQwLCAwLCB7MHhhMCwweDYxLDB4MGIsMHgzMCwweDAyLDB4YTAsMHgwMCwweDgwLDB4MDAsMHhhMCwweDMwLDB4ODgsMHhiMSwweDBhLDB4NDgsMHgwNCB9IH0sCi17ICAxNiwgMHhjODUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhmZiwweDAwLDB4MmQsMHhjOCB9IH0sCi17ICAxNiwgMHhjODYwLCAwLCB7MHgwYywweDNkLDB4MDMsMHhlNCwweDAwLDB4ZGIsMHgwMiwweDNlLDB4ZjAsMHgyYywweDkwLDB4NGIsMHg3YywweDAwLDB4YzEsMHgwMCB9IH0sCi17ICAxNiwgMHhjODcwLCAwLCB7MHgzMiwweDIwLDB4NGYsMHhmMCwweDEzLDB4ZTAsMHgwMCwweGU4LDB4MDEsMHgzMiwweDAwLDB4OGMsMHhhYywweDAzLDB4NmEsMHgwNCB9IH0sCi17ICAxNiwgMHhjODgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA0LDB4M2UsMHhjMiB9IH0sCi17ICAxNiwgMHhjODkwLCAwLCB7MHg0ZiwweGIwLDB4MDMsMHhlMCwweDA0LDB4ZmEsMHg0MCwweDNlLDB4YzIsMHg0ZSwweDk4LDB4MjMsMHhhYywweDEwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjOGEwLCAwLCB7MHgzZSwweDUwLDB4MDcsMHhiMCwweDEzLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMyLDB4MGYsMHg5MiwweDAzLDB4YTAsMHgwMCB9IH0sCi17ICAxNiwgMHhjOGIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGRjLDB4MDAsMHhjZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhjOGMwLCAwLCB7MHgwYywweGM4LDB4MjMsMHgzNiwweDgyLDB4Y2YsMHg4MCwweDNmLDB4ODAsMHgwYywweGUwLDB4MDMsMHhlYywweDAwLDB4ZjksMHgyMCB9IH0sCi17ICAxNiwgMHhjOGQwLCAwLCB7MHgzMywweGMwLDB4MGUsMHhmMCwweDAzLDB4ZjgsMHgxMCwweGRjLDB4MDAsMHgzMywweDAwLDB4NGMsMHhlOCwweDIxLDB4MDAsMHg0NCB9IH0sCi17ICAxNiwgMHhjOGUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZjLDB4MDAsMHhhYiwweDAwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhjOGYwLCAwLCB7MHg0YSwweDhkLDB4NDIsMHgyMSwweDAwLDB4OGIsMHg0MiwweDJlLDB4ZDIsMHgwOCwweGIwLDB4MDMsMHhlYywweDAwLDB4YjgsMHg4OCB9IH0sCi17ICAxNiwgMHhjOTAwLCAwLCB7MHgzNCwweDYyLDB4MGQsMHhiMCwweDAyLDB4ZTQsMHgwMCwweDhiLDB4MDAsMHgyMiwweGMwLDB4MDgsMHg5MCwweDBhLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhjOTEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhjOTIwLCAwLCB7MHgwOCwweGEwLDB4MDIsMHgwZCwweDAwLDB4ODksMHgxMCwweDJlLDB4MDgsMHgyOCwweDkyLDB4MDIsMHhlYywweDA0LDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhjOTMwLCAwLCB7MHgyMiwweGEwLDB4MDgsMHhiMCwweDAyLDB4NjQsMHgwMiwweGIzLDB4MDIsMHgyMCwweGMwLDB4MDgsMHhhMiwweDAyLDB4YTAsMHgwMCB9IH0sCi17ICAxNiwgMHhjOTQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDAsMHhhMywweDAwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhjOTUwLCAwLCB7MHgwYSwweDkwLDB4MjIsMHgwYywweDEwLDB4ODAsMHgwMCwweDJjLDB4MDAsMHgxOCwweDAyLDB4ODIsMHhjYywweDAwLDB4YjAsMHgwMCB9IH0sCi17ICAxNiwgMHhjOTYwLCAwLCB7MHgyNiwweDQwLDB4MDksMHgzMCwweDAyLDB4YzgsMHgyMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgxMCwweDA2LDB4ODIsMHgwMSB9IH0sCi17ICAxNiwgMHhjOTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhjYiwweDAwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhjOTgwLCAwLCB7MHgwYywweGExLDB4MDIsMHgyNCwweDAwLDB4ODgsMHgwMCwweDNjLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhjOTkwLCAwLCB7MHgzMiwweDgwLDB4MGUsMHhiMCwweDAzLDB4Y2MsMHg4MCwweGRiLDB4MDAsMHgzMiwweGMwLDB4MGMsMHhhMCwweDAzLDB4ODAsMHgwMyB9IH0sCi17ICAxNiwgMHhjOWEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhjOWIwLCAwLCB7MHg0ZiwweGMyLDB4MTMsMHhkNCwweDEwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgwZiwweDAwLDB4MDMsMHhiYywweDAwLDB4ZmMsMHgwMCB9IH0sCi17ICAxNiwgMHhjOWMwLCAwLCB7MHgzZiwweDQwLDB4MGYsMHhmMCwweDIzLDB4ZTAsMHgxMiwweGZjLDB4MDEsMHhiZiwweDAwLDB4MGYsMHhkMCwweDAzLDB4NjgsMHgwMiB9IH0sCi17ICAxNiwgMHhjOWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4MDAsMHhjNywweDgwLDB4MzMsMHhjMCB9IH0sCi17ICAxNiwgMHhjOWUwLCAwLCB7MHg4YiwweGI0LDB4MDMsMHhiMCwweGMwLDB4Y2YsMHgyZSwweDFmLDB4MGMsMHg0ZiwweGMzLDB4MDMsMHgzMCwweDgwLDB4ZmYsMHgwMSB9IH0sCi17ICAxNiwgMHhjOWYwLCAwLCB7MHgzZiwweDA4LDB4MGYsMHhmMCwweDAwLDB4N2MsMHgwMCwweGZmLDB4MjEsMHgzMywweGU0LDB4MGMsMHhlMCwweDAzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhjYTAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGVlLDB4MDAsMHg4YiwweDgyLDB4MjMsMHhmMCB9IH0sCi17ICAxNiwgMHhjYTEwLCAwLCB7MHgwYiwweGI1LDB4MTIsMHgwZCwweDg4LDB4ODgsMHhjMCwweDBlLDB4OTgsMHgwYiwweDg2LDB4MDIsMHgyMSwweDAwLDB4YmIsMHhjMCB9IH0sCi17ICAxNiwgMHhjYTIwLCAwLCB7MHgyZSwweGU0LDB4NGIsMHhmNywweDgzLDB4MmYsMHg0NCwweGJmLDB4OTAsMHgyMiwweGM4LDB4NDgsMHhhNiwweDgyLDB4MjAsMHgwNCB9IH0sCi17ICAxNiwgMHhjYTMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDksMHg4YSwweDAwLDB4MjAsMHg1MCB9IH0sCi17ICAxNiwgMHhjYTQwLCAwLCB7MHg0YiwweGIyLDB4MGEsMHg4MCwweGNjLDB4ODMsMHgwMSwweDBjLDB4OGMsMHgwYiwweDIzLDB4MGEsMHgwNCwweDYwLDB4YjMsMHgxNCB9IH0sCi17ICAxNiwgMHhjYTUwLCAwLCB7MHgyNCwweDQwLDB4NGIsMHgzMCwweDAyLDB4Y2MsMHgxMCwweGIzLDB4MDAsMHgyMCwweGM4LDB4ZTksMHgxMSwweDA2LDB4NjIsMHgwMSB9IH0sCi17ICAxNiwgMHhjYTYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGFjLDB4MDEsMHg4YSwweDgwLDB4YTIsMHg0NCB9IH0sCi17ICAxNiwgMHhjYTcwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHhhMSwweDA0LDB4ODgsMHg0MCwweDJlLDB4YTAsMHgwYiwweDIwLDB4MDIsMHgyOCwweDIwLDB4YmIsMHg0MCB9IH0sCi17ICAxNiwgMHhjYTgwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHhiMCwweDAyLDB4MmMsMHgwOCwweGJiLDB4MDAsMHgyMiwweGMwLDB4MDksMHhiMCwweDAyLDB4NzAsMHgwNCB9IH0sCi17ICAxNiwgMHhjYTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhjMywweDgzLDB4MzIsMHhlMCB9IH0sCi17ICAxNiwgMHhjYWEwLCAwLCB7MHg4ZiwweDAwLDB4MDMsMHhhMCwweDAyLDB4Y2IsMHhjNCwweDNlLDB4MjgsMHgwNywweDhiLDB4MDMsMHgyMSwweDAwLDB4ZjksMHhjMCB9IH0sCi17ICAxNiwgMHhjYWIwLCAwLCB7MHgzZSwweDEwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweDdiLDB4MDAsMHgzMiwweGMwLDB4MGQsMHhhMCwweDAzLDB4NTAsMHgwNCB9IH0sCi17ICAxNiwgMHhjYWMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDljLDB4MDIsMHhmZiwweDAwLDB4M2YsMHhlMCB9IH0sCi17ICAxNiwgMHhjYWQwLCAwLCB7MHgwZiwweGY0LDB4NDMsMHg1ZSwweDgwLDB4ZmMsMHg5NCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MmIsMHhmMiwweDUwLDB4ZmQsMHgyMSB9IH0sCi17ICAxNiwgMHhjYWUwLCAwLCB7MHg3ZSwweDg0LDB4OGYsMHhmMCwweDAzLDB4NmMsMHgwYywweGZmLDB4MDAsMHgzZiwweGMwLDB4MGUsMHg2MiwweDAzLDB4YjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjYWYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhlYiwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhjYjAwLCAwLCB7MHgyYywweDgwLDB4MDMsMHg2OSwweDAwLDB4Y2IsMHgzMCwweGIyLDB4MDAsMHg0ZiwweGIzLDB4NDMsMHhlNSwweDAwLDB4Y2IsMHg0MCB9IH0sCi17ICAxNiwgMHhjYjEwLCAwLCB7MHg3MiwweDE4LDB4MmMsMHhiMCwweDAzLDB4ZWMsMHgyOCwweGMzLDB4MjEsMHgzYSwweGMxLDB4MGYsMHg5NCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhjYjIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDNjLDB4MDAsMHg4YiwweDIwLDB4MjIsMHg1MCB9IH0sCi17ICAxNiwgMHhjYjMwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHgyOCwweDAwLDB4ODgsMHhjMCwweDJhLDB4MDAsMHg4YiwweGI0LDB4MDIsMHhlOCwweDAwLDB4ZGIsMHgwMCB9IH0sCi17ICAxNiwgMHhjYjQwLCAwLCB7MHg2MiwweDMwLDB4MDgsMHhmMCwweDAyLDB4ZmMsMHgwMCwweDhmLDB4ODAsMHgyMiwweGMwLDB4MGIsMHg5NSwweDQ3LDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhjYjUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMSwweDAwLDB4MjAsMHhjMiB9IH0sCi17ICAxNiwgMHhjYjYwLCAwLCB7MHg0OCwweDMwLDB4MDIsMHg0OSwweDgwLDB4ODMsMHg0MiwweDYwLDB4MTIsMHgwYiwweDMwLDB4MDIsMHhjOCwweDAwLDB4ODIsMHgwMiB9IH0sCi17ICAxNiwgMHhjYjcwLCAwLCB7MHgyYywweDMwLDB4MDksMHhiMCwweDAyLDB4Y2YsMHgwMSwweDgzLDB4NTAsMHgyYSwweGMwLDB4MGIsMHgyMCwweDAyLDB4YjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjYjgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFlLDB4MDAsMHg5ZCwweDgwLDB4YTAsMHhlMCB9IH0sCi17ICAxNiwgMHhjYjkwLCAwLCB7MHgwOCwweDc5LDB4MjIsMHg1ZSwweDYwLDB4ODcsMHg5MCwweDI5LDB4YTAsMHgwYiwweDc4LDB4MDIsMHhjNiwweDAwLDB4OTIsMHg4MSB9IH0sCi17ICAxNiwgMHhjYmEwLCAwLCB7MHgwNSwweGUwLDB4MDksMHg3OCwweDAyLDB4ZGUsMHg0MCwweDg3LDB4ODAsMHgyMSwweGUwLDB4MGIsMHgyOSwweDAyLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHhjYmIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4NDAsMHhmMiwweDAwLDB4MzAsMHhjMCB9IH0sCi17ICAxNiwgMHhjYmMwLCAwLCB7MHgwOCwweDNhLDB4MDMsMHg0NCwweDA0LDB4YzMsMHgxNCwweDMwLDB4YzAsMHgwZiwweDIyLDB4MDMsMHhjYywweDgwLDB4YzIsMHgwMCB9IH0sCi17ICAxNiwgMHhjYmQwLCAwLCB7MHhhNCwweGQyLDB4MGQsMHgzMCwweDEzLDB4Y2MsMHgyMCwweGMzLDB4MDAsMHgzOCwweGM0LDB4NGYsMHgwNCwweDQzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhjYmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweDljLDB4MDAsMHhlZSwweDAwLDB4M2YsMHhlMCB9IH0sCi17ICAxNiwgMHhjYmYwLCAwLCB7MHgwZiwweDcwLDB4MDMsMHhiNCwweDAyLDB4ZjQsMHgxMCwweDNmLDB4YzAsMHg4ZiwweGEwLDB4MDMsMHhmYywweDAwLDB4N2UsMHgwMCB9IH0sCi17ICAxNiwgMHhjYzAwLCAwLCB7MHgzYiwweGMwLDB4MGUsMHhmMCwweDgzLDB4ZWMsMHgwMCwweGY3LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhjYzEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGZjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhjYzIwLCAwLCB7MHgwZiwweGEwLDB4MDMsMHhhYSwweDEyLDB4Y2IsMHgwMSwweDMyLDB4ODAsMHgwZiwweGIwLDB4MTMsMHgyOCwweDE0LDB4ZjksMHg4MCB9IH0sCi17ICAxNiwgMHhjYzMwLCAwLCB7MHgzYSwweDQwLDB4MDMsMHhiNCwweDAzLDB4ZWMsMHg0MiwweGNiLDB4MTgsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhjYzQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDlkLDB4MDAsMHhiNSwweDAwLDB4MmQsMHhjNCB9IH0sCi17ICAxNiwgMHhjYzUwLCAwLCB7MHgwYiwweDcwLDB4NGIsMHg3YywweDAwLDB4ODQsMHgwMCwweDIxLDB4ODAsMHgwYiwweDcwLDB4MDIsMHg5NCwweDEwLDB4YjIsMHgwMCB9IH0sCi17ICAxNiwgMHhjYzYwLCAwLCB7MHgyOSwweGMwLDB4MGIsMHg3MiwweDgyLDB4ZGMsMHgwMCwweDg3LDB4MjAsMHgyZCwweGMxLDB4MGUsMHg3MCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhjYzcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiNywweDgwLDB4MmQsMHhlMCB9IH0sCi17ICAxNiwgMHhjYzgwLCAwLCB7MHgwYiwweDY4LDB4MDIsMHg5ZSwweDAwLDB4ODMsMHg4MCwweDIxLDB4ZTAsMHg1YiwweDM4LDB4MDIsMHgxZSwweDAwLDB4YjQsMHhjMCB9IH0sCi17ICAxNiwgMHhjYzkwLCAwLCB7MHgyNSwweGUwLDB4MDksMHg3OCwweDMyLDB4Y2UsMHgwMCwweDk3LDB4ODAsMHgyZCwweGUwLDB4MGIsMHg1YywweDRlLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhjY2EwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDQ0LDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhjY2IwLCAwLCB7MHgwYiwweDNjLDB4MDIsMHhjYywweDQwLDB4OTMsMHgwOCwweDIwLDB4ZTAsMHgwYiwweDMwLDB4MDIsMHg4YywweDEwLDB4YjMsMHhjMCB9IH0sCi17ICAxNiwgMHhjY2MwLCAwLCB7MHgyOCwweGQ4LDB4MWIsMHgzMCwweDAyLDB4Y2MsMHgwOCwweDkzLDB4MDEsMHg2YywweGMwLDB4MGEsMHhiOCwweDgyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhjY2QwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmNiwweDEwLDB4M2UsMHg4MCB9IH0sCi17ICAxNiwgMHhjY2UwLCAwLCB7MHg0YiwweGVkLDB4ODMsMHhiOCwweDAwLDB4Y2UsMHhlNCwweGIzLDB4YTMsMHgwZiwweGUwLDB4MDMsMHgzOCwweDAwLDB4ZmUsMHgwMCB9IH0sCi17ICAxNiwgMHhjY2YwLCAwLCB7MHgzYiwweDgwLDB4MGQsMHhhMCwweDAyLDB4ZTgsMHgwMCwweGRhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhlOCwweDAyLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhjZDAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MTAsMHhmOCwweDQwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhjZDEwLCAwLCB7MHgwZiwweDgwLDB4MTMsMHg2MCwweDAwLDB4ZTAsMHgwMCwweDNlLDB4MDAsMHg0MywweDA4LDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwOCB9IH0sCi17ICAxNiwgMHhjZDIwLCAwLCB7MHgzYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGU4LDB4NDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDIzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhjZDMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGM0LDB4MDAsMHhkOSwweGMwLDB4YmUsMHg0MCB9IH0sCi17ICAxNiwgMHhjZDQwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ZjksMHgwMCwweDMyLDB4NDAsMHgwMSwweDlhLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhjZDUwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzQsMHg0MCwweDA5LDB4MTAsMHgwZSwweDQwLDB4MGYsMHg5YSwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhjZDYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDQsMHg4OSwweDA0LDB4YTIsMHg2MCB9IH0sCi17ICAxNiwgMHhjZDcwLCAwLCB7MHg4YiwweDlkLDB4ODAsMHhhNiwweDAwLDB4YjksMHg4MCwweDIyLDB4NDAsMHg0OCwweDk4LDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhjZDgwLCAwLCB7MHgyZSwweDQwLDB4OGIsMHg5MCwweDAyLDB4ZTQsMHg5NCwweDg5LDB4NjAsMHgyZSwweDQwLDB4MGIsMHg5NCwweDBiLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhjZDkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg5OSwweDA4LDB4YWUsMHg0OCB9IH0sCi17ICAxNiwgMHhjZGEwLCAwLCB7MHg0YiwweDEwLDB4MDIsMHhlNSwweDgxLDB4YjksMHgxMCwweDIwLDB4NDQsMHgxYiwweDk0LDB4MDIsMHgyNCwweDEwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhjZGIwLCAwLCB7MHg2ZSwweDYwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5NCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhjZGMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4ODAsMHg4OSwweDAwLDB4YTAsMHg2OCB9IH0sCi17ICAxNiwgMHhjZGQwLCAwLCB7MHgwYiwweDEyLDB4MDIsMHg4NCwweDg5LDB4YjEsMHgyMCwweDIwLDB4NDgsMHgxYSwweDEyLDB4MTIsMHgwNCwweDgwLDB4YjEsMHgyMiB9IH0sCi17ICAxNiwgMHhjZGUwLCAwLCB7MHgwYywweDQ4LDB4MGIsMHgxMiwweDAyLDB4YzQsMHg4MSwweGExLDB4MjAsMHgyYywweDQwLDB4MGIsMHgxMiwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhjZGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhkOCwweDAwLDB4YmUsMHgwMCB9IH0sCi17ICAxNiwgMHhjZTAwLCAwLCB7MHgwZiwweDA1LDB4MGIsMHhlMSwweDQwLDB4ZjgsMHgwMCwweDMyLDB4MTQsMHgwZiwweDg1LDB4MDMsMHgyMSwweDQwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjZTEwLCAwLCB7MHgyZSwweDgwLDB4MGYsMHg4NSwweDEzLDB4ZTAsMHgwMiwweGM4LDB4MDAsMHgzZSwweDE0LDB4MGYsMHgwNSwweDAxLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhjZTIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGU0LDB4NDAsMHhmZCwweDAwLDB4YmYsMHg0NCB9IH0sCi17ICAxNiwgMHhjZTMwLCAwLCB7MHgwZiwweGQxLDB4MDMsMHhmNCwweDQwLDB4N2QsMHgxMCwweGJmLDB4NDQsMHg0NSwweGYxLDB4MmIsMHhmNCwweDQwLDB4ZmQsMHgxMCB9IH0sCi17ICAxNiwgMHhjZTQwLCAwLCB7MHgzZiwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGQ5LDB4MTAsMHgzZSwweDQwLDB4MGYsMHhkMSwweDAzLDB4YTYsMHgwNiB9IH0sCi17ICAxNiwgMHhjZTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4MDAsMHhmZCwweDAwLDB4MWYsMHg2MiB9IH0sCi17ICAxNiwgMHhjZTYwLCAwLCB7MHgwZiwweGQ4LDB4ODIsMHgzNiwweDAwLDB4YmQsMHhhMCwweDNiLDB4NjgsMHgwYywweGRjLDB4ODMsMHgyNiwweGM4LDB4ZDksMHhhMCB9IH0sCi17ICAxNiwgMHhjZTcwLCAwLCB7MHgzMywweDYwLDB4MGQsMHg5OSwweDgzLDB4NTYsMHgyMCwweGQ1LDB4YTgsMHgyZSwweDQ0LDB4MGMsMHhkOCwweDgzLDB4ODYsMHgwNCB9IH0sCi17ICAxNiwgMHhjZTgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUxLDB4NDgsMHhiOCwweDAwLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHhjZTkwLCAwLCB7MHgwYiwweDBhLDB4ODIsMHgyMiwweDIwLDB4YjgsMHg1MCwweDIyLDB4YmEsMHgwOCwweDhhLDB4MjIsMHgyMiwweDgwLDB4ODgsMHgwMCB9IH0sCi17ICAxNiwgMHhjZWEwLCAwLCB7MHgyMiwweDAxLDB4MDgsMHgwYywweDAyLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyZSwweDI4LDB4ODgsMHg4OCwweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHhjZWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDAwLDB4MmMsMHg0MCB9IH0sCi17ICAxNiwgMHhjZWMwLCAwLCB7MHgxYiwweDEwLDB4MGEsMHg4NCwweDQwLDB4YjEsMHgwMCwweDI4LDB4NTgsMHgwYSwweDMyLDB4MDIsMHgwNSwweDAwLDB4OTksMHg0MCB9IH0sCi17ICAxNiwgMHhjZWQwLCAwLCB7MHgyMCwweDY1LDB4MDksMHgxMCwweDQyLDB4YzQsMHgwMCwweDkxLDB4MDAsMHgyYywweDQwLDB4MGEsMHgzMCwweDgyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhjZWUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxMSwweGE0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHhjZWYwLCAwLCB7MHgxYiwweDkwLDB4MDIsMHhhNSwweDgwLDB4YjksMHgxMCwweDIyLDB4NDgsMHgwOCwweDEwLDB4NDIsMHgwNCwweDEwLDB4MDksMHgwMCB9IH0sCi17ICAxNiwgMHhjZjAwLCAwLCB7MHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDliLDB4MDAsMHgyYywweDQwLDB4MGEsMHg5NCwweDIyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHhjZjEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweDIwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhjZjIwLCAwLCB7MHgwZiwweDkwLDB4MTMsMHhhNywweDEwLDB4ZjksMHg2MCwweGJhLDB4NTAsMHgyZSwweDljLDB4MGEsMHgyNSwweDg0LDB4ZDEsMHhmMCB9IH0sCi17ICAxNiwgMHhjZjMwLCAwLCB7MHhiMiwweDYwLDB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4YTgsMHgwMCB9IH0sCi17ICAxNiwgMHhjZjQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4MGMsMHhmOSwweDkwLDB4M2UsMHg2YSB9IH0sCi17ICAxNiwgMHhjZjUwLCAwLCB7MHg4ZiwweDkwLDB4MjMsMHg2NiwweDAwLDB4ZjEsMHgwOCwweDNjLDB4NDAsMHgwZiwweDljLDB4NDMsMHhlNCwweDQwLDB4ZjksMHg4MCB9IH0sCi17ICAxNiwgMHhjZjYwLCAwLCB7MHgzYSwweDQ0LDB4MGYsMHg5MCwweDAzLDB4MjQsMHgwNCwweGU5LDB4MDIsMHgzZSwweDQwLDB4MmQsMHg5MSwweDEzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhjZjcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhlOCwweDIwLDB4M2UsMHgwMSB9IH0sCi17ICAxNiwgMHhjZjgwLCAwLCB7MHgwYywweDAwLDB4MDMsMHhhMSwweDIwLDB4ZTgsMHg1MCwweDMyLDB4MTAsMHgyYywweDhjLDB4MDMsMHgyMSwweDAwLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHhjZjkwLCAwLCB7MHgzMiwweDAyLDB4MGYsMHgwMCwweDEzLDB4MjAsMHg4OCwweGM4LDB4MDgsMHgzMiwweDAwLDB4MGYsMHg4YywweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhjZmEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MjAsMHg4ZSwweGUzLDB4MmYsMHg5MCB9IH0sCi17ICAxNiwgMHhjZmIwLCAwLCB7MHgwYSwweGUwLDB4MDYsMHgzYiwweDAwLDB4ZWUsMHgwNCwweDIzLDB4OTAsMHgwOCwweGUwLDB4MDIsMHgyOCwweDA4LDB4OGEsMHgwMiB9IH0sCi17ICAxNiwgMHhjZmMwLCAwLCB7MHg3NSwweDkwLDB4OGIsMHhhMCwweDQxLDB4NTgsMHg5MCwweDhlLDB4ODAsMHgyYSwweDgxLDB4MGIsMHhlMCwweDAzLDB4OGEsMHgxMCB9IH0sCi17ICAxNiwgMHhjZmQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRlLDB4MDAsMHhhMywweDAwLDB4NmMsMHg2MCB9IH0sCi17ICAxNiwgMHhjZmUwLCAwLCB7MHgwOCwweDM4LDB4MWEsMHg4ZSwweDQwLDB4YTAsMHg4MCwweDIwLDB4Y2MsMHgwOSwweDMwLDB4MDIsMHgwYywweDA1LDB4YTMsMHgwNCB9IH0sCi17ICAxNiwgMHhjZmYwLCAwLCB7MHgyOCwweGM0LDB4MGIsMHgzMCwweDAyLDB4MGQsMHgwMSwweDgzLDB4YzAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhkMDAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFlLDB4MDgsMHg4NywweDAwLDB4MmQsMHg2MiB9IH0sCi17ICAxNiwgMHhkMDEwLCAwLCB7MHgwYiwweDcwLDB4OTIsMHgxYywweDA4LDB4YTAsMHgwMCwweDYxLDB4YzAsMHgwOSwweDYwLDB4MDYsMHgxYywweDgwLDB4YTcsMHgwMCB9IH0sCi17ICAxNiwgMHhkMDIwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHg3MiwweDAyLDB4NTgsMHgwMSwweDg3LDB4ODgsMHgyOSwweGMwLDB4MGIsMHg2MCwweDEyLDB4YTgsMHgwMCB9IH0sCi17ICAxNiwgMHhkMDMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhlNiwweDgwLDB4M2QsMHg2MCB9IH0sCi17ICAxNiwgMHhkMDQwLCAwLCB7MHgwYywweDc4LDB4NDIsMHg5NiwweDAwLDB4ZTQsMHg4MCwweGEzLDB4NjAsMHgwZCwweDc4LDB4MDMsMHgzZiwweDAwLDB4ZTMsMHg4MCB9IH0sCi17ICAxNiwgMHhkMDUwLCAwLCB7MHgyMSwweGUwLDB4MGYsMHg3YiwweDAzLDB4MTYsMHgwOCwweGM3LDB4ODAsMHgzMSwweGUyLDB4NGYsMHg3OCwweDQzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHhkMDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweDhjLDB4MDEsMHhmOCwweDAwLDB4M2MsMHg0MCB9IH0sCi17ICAxNiwgMHhkMDcwLCAwLCB7MHgwZSwweGIwLDB4MDIsMHhlYywweDAwLDB4ZjgsMHgwMSwweDNlLDB4NDAsMHg0ZSwweDMwLDB4MzMsMHhlZCwweDIwLDB4ZGIsMHgwMSB9IH0sCi17ICAxNiwgMHhkMDgwLCAwLCB7MHhiZSwweGMwLDB4MGYsMHhiNCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzZSwweGQ4LDB4MGYsMHhhMCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhkMDkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhjNywweDg0LDB4MjMsMHg2MCB9IH0sCi17ICAxNiwgMHhkMGEwLCAwLCB7MHgwYywweDc4LDB4MGIsMHhiZSwweDAwLDB4ZmQsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGViLDB4MDMsMHgzZSwweDAwLDB4Y2YsMHg4MCB9IH0sCi17ICAxNiwgMHhkMGIwLCAwLCB7MHgzYiwweDI1LDB4MGMsMHhmOCwweDgzLDB4N2UsMHg0MCwweGNkLDB4ODAsMHgzMywweGUyLDB4MGIsMHhmOSwweDAzLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhkMGMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDIsMHg4NywweDAwLDB4MTUsMHg0OCB9IH0sCi17ICAxNiwgMHhkMGQwLCAwLCB7MHgwOCwweDcwLDB4MDIsMHgxNCwweDIwLDB4YjYsMHgwMCwweDM1LDB4OWEsMHg0OSwweGM4LDB4MDMsMHg5YywweDg0LDB4YTcsMHgwMCB9IH0sCi17ICAxNiwgMHhkMGUwLCAwLCB7MHgzOSwweGQwLDB4MGEsMHg3MCwweDAyLDB4MWEsMHgwOCwweGE0LDB4MDAsMHgyMSwweGMwLDB4MDksMHg2MSwweDQyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhkMGYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg4NywweDAwLDB4MjEsMHg0MCB9IH0sCi17ICAxNiwgMHhkMTAwLCAwLCB7MHgwOCwweDcxLDB4MDIsMHg5NCwweDAwLDB4YjUsMHgwMCwweDJkLDB4NDAsMHgwYiwweGYxLDB4MjIsMHg1YywweDAyLDB4MDcsMHgwOCB9IH0sCi17ICAxNiwgMHhkMTEwLCAwLCB7MHgyYywweDUwLDB4MDgsMHg3MCwweDAyLDB4NTAsMHgwMCwweDg3LDB4MDAsMHgyZCwweGM0LDB4MGIsMHg1MCwweDQyLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhkMTIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNjLDB4MDAsMHg4MywweDAyLDB4MjQsMHg0MCB9IH0sCi17ICAxNiwgMHhkMTMwLCAwLCB7MHgxOCwweDNkLDB4MGEsMHgwMSwweDAwLDB4YjAsMHg1OCwweDI0LDB4MjAsMHgwOSwweDMwLDB4MDIsMHg4ZiwweDQwLDB4ODMsMHhlMCB9IH0sCi17ICAxNiwgMHhkMTQwLCAwLCB7MHgyYywweGMxLDB4MGEsMHgzMCwweDQyLDB4MDgsMHgwMCwweGIzLDB4MDEsMHg2YywweGMwLDB4MDksMHgwOCwweDE2LDB4MDgsMHgwNCB9IH0sCi17ICAxNiwgMHhkMTUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweDhjLDB4MDAsMHg4YiwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhkMTYwLCAwLCB7MHgwYywweDI1LDB4MDMsMHhhOCwweDQ4LDB4ZjgsMHg4MSwweDNlLDB4ODAsMHgwZiwweDgwLDB4NjMsMHg3YywweDAwLDB4Y2IsMHg4MCB9IH0sCi17ICAxNiwgMHhkMTcwLCAwLCB7MHgzYSwweGMwLDB4MGMsMHhmMCwweDAzLDB4NmMsMHgwMCwweGNhLDB4MDIsMHhiZiwweGMwLDB4MGYsMHg5OCwweDhiLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhkMTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHg1MCB9IH0sCi17ICAxNiwgMHhkMTkwLCAwLCB7MHgyZiwweGE0LDB4MGIsMHhjOCwweDAwLDB4ZjAsMHg0MCwweDNlLDB4ZDAsMHgwZiwweGEwLDB4MzMsMHhlYywweDIwLDB4ZmIsMHgwNCB9IH0sCi17ICAxNiwgMHhkMWEwLCAwLCB7MHg3YSwweGUwLDB4MGYsMHhiMCwweDAzLDB4ZWQsMHgwOCwweGU5LDB4MDMsMHgzMiwweGMwLDB4MGQsMHg5MCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhkMWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGVjLDB4NDAsMHhlZSwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhkMWMwLCAwLCB7MHgwYywweGRhLDB4MDMsMHg3MCwweDA0LDB4Y2MsMHgwMiwweGIxLDB4YTAsMHgwZSwweGYwLDB4MjMsMHhlYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhkMWQwLCAwLCB7MHgzNywweDIwLDB4Y2QsMHhiMCwweDczLDB4ZWMsMHg4OCwweGZiLDB4ODAsMHgzZiwweGMwLDB4MGYsMHgzMCwweDAzLDB4MDAsMHg0NCB9IH0sCi17ICAxNiwgMHhkMWUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZlLDB4MDAsMHg4OCwweDgwLDB4MmMsMHhlMSB9IH0sCi17ICAxNiwgMHhkMWYwLCAwLCB7MHgwOCwweDk0LDB4MGEsMHhhOSwweDAyLDB4ODgsMHg0MCwweDIyLDB4ZDAsMHgwOCwweGI5LDB4NDIsMHhlYywweDA0LDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjAwLCAwLCB7MHgyYywweGQ0LDB4MGQsMHhiMCwweDAyLDB4ZWQsMHgyMCwweGJiLDB4ZDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4YTAsMHg0MCB9IH0sCi17ICAxNiwgMHhkMjEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI0LDB4MDAsMHhhYiwweDgwLDB4MmUsMHhmMCB9IH0sCi17ICAxNiwgMHhkMjIwLCAwLCB7MHgyOSwweGEwLDB4ODIsMHg2ZCwweDAwLDB4ODgsMHgwOCwweDIyLDB4MDQsMHgwOCwweDkwLDB4NDIsMHhlYywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjMwLCAwLCB7MHgyYSwweDgxLDB4MDgsMHhiMCwweDAyLDB4ZTQsMHgwOSwweGJhLDB4MDQsMHgyZSwweGMxLDB4NGIsMHg5OCwweDgyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhkMjUwLCAwLCB7MHgwYSwweDIxLDB4MDIsMHg4NCwweDEwLDB4ODIsMHgwMCwweGUwLDB4MDAsMHgxOCwweDBhLDB4MTIsMHhjYywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjYwLCAwLCB7MHgwYywweGMwLDB4MDksMHgzMCwweDAyLDB4Y2MsMHg5MCwweGIwLDB4MDAsMHgyYywweGMwLDB4MGIsMHgxMCwweDAyLDB4ODIsMHgwMSB9IH0sCi17ICAxNiwgMHhkMjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY0LDB4MDAsMHhlYiwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjgwLCAwLCB7MHgyYywweGI0LDB4MDMsMHg2NCwweDA4LDB4ODgsMHgwMCwweGIyLDB4MDAsMHgwYywweGIyLDB4NDMsMHhmYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjkwLCAwLCB7MHg1NiwweDAwLDB4MGMsMHhmMCwweDAxLDB4ZTQsMHgwMCwweGZiLDB4MDAsMHgzZiwweGMwLDB4MGYsMHg4MCwweDBiLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHhkMmEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHg0MCB9IH0sCi17ICAxNiwgMHhkMmIwLCAwLCB7MHgyZCwweGYwLDB4NjEsMHhmMCwweDAwLDB4ZjQsMHgwMCwweDI3LDB4MDEsMHgwZCwweGIxLDB4MTEsMHhmYywweDAwLDB4ZmYsMHgwMiB9IH0sCi17ICAxNiwgMHhkMmMwLCAwLCB7MHgwNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHg0MCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4NjgsMHgwNiB9IH0sCi17ICAxNiwgMHhkMmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGY2LDB4MDAsMHhlZiwweDkwLDB4M2QsMHg0YyB9IH0sCi17ICAxNiwgMHhkMmUwLCAwLCB7MHgyYywweGMwLDB4MTMsMHhmNCwweDA4LDB4ZmQsMHgyMCwweDM3LDB4NGMsMHg4ZSwweDgyLDB4ODMsMHg3NCwweDg0LDB4ZGMsMHhjMiB9IH0sCi17ICAxNiwgMHhkMmYwLCAwLCB7MHgzZiwweGQ4LDB4MGQsMHhmMiwweDAzLDB4ZWMsMHhjMCwweGZmLDB4ODEsMHgzZiwweDAwLDB4MGMsMHhmOCwweDAzLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkMzAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGU2LDB4MDAsMHg4YiwweDI0LDB4MmUsMHg1YyB9IH0sCi17ICAxNiwgMHhkMzEwLCAwLCB7MHgwOCwweDhkLDB4MDIsMHhmZiwweDQ4LDB4YjksMHg5MCwweDJmLDB4NTQsMHgwYiwweDg0LDB4ODIsMHgzZSwweDQwLDB4YTAsMHg4MCB9IH0sCi17ICAxNiwgMHhkMzIwLCAwLCB7MHgyZSwweGM0LDB4MGEsMHhmYywweDQyLDB4ZWQsMHg4MCwweGI5LDB4ODAsMHgyZSwweDYwLDB4MGEsMHg5OCwweDEyLDB4ZTAsMHgwNCB9IH0sCi17ICAxNiwgMHhkMzMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGU0LDB4MDEsMHhhMywweDAwLDB4MjgsMHg0OCB9IH0sCi17ICAxNiwgMHhkMzQwLCAwLCB7MHgwYSwweDAwLDB4NDIsMHhjNCwweDAwLDB4YjEsMHgwMCwweDJjLDB4NDksMHgwYiwweDBhLDB4NDIsMHgwNCwweGEyLDB4OTEsMHgyMSB9IH0sCi17ICAxNiwgMHhkMzUwLCAwLCB7MHgyYywweGM5LDB4MDgsMHgzMSwweDAyLDB4OGMsMHhjMSwweGEzLDB4MDAsMHgyYywweDQwLDB4MDgsMHgxOCwweDAyLDB4YTIsMHgwMSB9IH0sCi17ICAxNiwgMHhkMzYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGEwLDB4MjAsMHg4YiwweDgyLDB4MmUsMHg0NCB9IH0sCi17ICAxNiwgMHhkMzcwLCAwLCB7MHg1OCwweDgwLDB4MDIsMHhlNCwweDAwLDB4YmIsMHgxMCwweDJlLDB4NDAsMHgwYiwweGExLDB4MTIsMHgwYywweDAxLDB4ODksMHgxMCB9IH0sCi17ICAxNiwgMHhkMzgwLCAwLCB7MHgyZSwweGMwLDB4MGEsMHhiMCwweDAyLDB4ZWMsMHgwMSwweGI4LDB4ODAsMHgyZSwweGUyLDB4MGEsMHhhMSwweDAyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHhkMzkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGViLDB4NDAsMHhlYiwweDQwLDB4M2UsMHg2MCB9IH0sCi17ICAxNiwgMHhkM2EwLCAwLCB7MHgwZSwweDg3LDB4MzMsMHhlNCwweDAwLDB4YjksMHhhMSwweDM2LDB4YzAsMHgwZSwweGE4LDB4MGIsMHgyNiwweDAwLDB4ZGEsMHhjMCB9IH0sCi17ICAxNiwgMHhkM2IwLCAwLCB7MHgzZSwweGMwLDB4OGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4ODUsMHgzZSwweGUxLDB4MDgsMHhiOCwweDAzLDB4OTAsMHgwNSB9IH0sCi17ICAxNiwgMHhkM2MwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI4LDB4MDAsMHhmZiwweDAyLDB4MmYsMHg2MCB9IH0sCi17ICAxNiwgMHhkM2QwLCAwLCB7MHgwMywweGU4LDB4ODMsMHhmYywweDEwLDB4ZmQsMHg4MCwweDFmLDB4NDAsMHgxZiwweGQwLDB4MTMsMHhiZSwweDQwLDB4ZWUsMHgwNCB9IH0sCi17ICAxNiwgMHhkM2UwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDQzLDB4ZmMsMHgwOCwweGZkLDB4MDAsMHgzYywweGMwLDB4MGYsMHhkMCwweDExLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhkM2YwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGE0LDB4MDAsMHhkYiwweDAwLDB4YjIsMHg0MCB9IH0sCi17ICAxNiwgMHhkNDAwLCAwLCB7MHgwZSwweDk0LDB4MDMsMHgyNCwweDAwLDB4ZDksMHgwMCwweGJhLDB4YzAsMHgwYywweDIwLDB4MDMsMHhlNCwweDkwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhkNDEwLCAwLCB7MHgzYSwweGMwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMSwweGZhLDB4MDAsMHgzZSwweGQwLDB4MmMsMHg5OCwweDAzLDB4OTAsMHgwNCB9IH0sCi17ICAxNiwgMHhkNDIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDAzLDB4MDAsMHg4YiwweDAwLDB4MjIsMHg0OCB9IH0sCi17ICAxNiwgMHhkNDMwLCAwLCB7MHgwOCwweDg0LDB4MjIsMHgyYywweDAwLDB4YjksMHgwMCwweDIyLDB4YzAsMHgwOCwweGEwLDB4MDIsMHhlZCwweDAwLDB4OGIsMHhhMCB9IH0sCi17ICAxNiwgMHhkNDQwLCAwLCB7MHgyMSwweGMwLDB4MDgsMHhmMCwweDAyLDB4ZmMsMHgwMCwweGI5LDB4ODAsMHgyZSwweGMwLDB4MDgsMHhhMCwweDAyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhkNDUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ1LDB4MjAsMHg5MywweDAwLDB4MjIsMHhmOCB9IH0sCi17ICAxNiwgMHhkNDYwLCAwLCB7MHgwYiwweDMwLDB4MGEsMHg4NCwweDQwLDB4YjIsMHgwMCwweDIwLDB4NDAsMHgwOCwweDEwLDB4MDIsMHhjNCwweDAwLDB4ODAsMHg4MCB9IH0sCi17ICAxNiwgMHhkNDcwLCAwLCB7MHgyOCwweGMwLDB4MjgsMHgzOSwweDAyLDB4NGMsMHgwMCwweGIxLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4YjgsMHgwMCB9IH0sCi17ICAxNiwgMHhkNDgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDM2LDB4MDAsMHg5ZiwweDgwLDB4MjEsMHg2MCB9IH0sCi17ICAxNiwgMHhkNDkwLCAwLCB7MHgwOSwweDM4LDB4MDIsMHg5ZSwweDAwLDB4YjIsMHhjMCwweDIwLDB4NjAsMHg0OCwweDQ4LDB4MTIsMHhkNiwweGM2LDB4ODYsMHhkMCB9IH0sCi17ICAxNiwgMHhkNGEwLCAwLCB7MHgyMSwweGUwLDB4MDgsMHg3OCwweDAwLDB4ZGUsMHg4MCwweGI3LDB4ODIsMHgyZCwweGUwLDB4MDgsMHhmOCwweDAyLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHhkNGIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MjAsMHhkMywweDEwLDB4MzAsMHhjOCB9IH0sCi17ICAxNiwgMHhkNGMwLCAwLCB7MHgwZiwweDMwLDB4MDMsMHg4NCwweDAwLDB4ZjEsMHgwMCwweDMwLDB4NDAsMHgyNCwweDE5LDB4MDMsMHhlNCwweGMwLDB4ZTAsMHg0MCB9IH0sCi17ICAxNiwgMHhkNGQwLCAwLCB7MHgzYSwweGMwLDB4MGMsMHgzMiwweDAzLDB4Y2UsMHg4MCwweGIxLDB4MjgsMHgzYywweGMwLDB4MGMsMHgzMCwweDEzLDB4OTIsMHgwMiB9IH0sCi17ICAxNiwgMHhkNGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweDljLDB4MDAsMHhlNiwweDAwLDB4N2YsMHhjMCB9IH0sCi17ICAxNiwgMHhkNGYwLCAwLCB7MHgwZSwweGYwLDB4MjMsMHg3NCwweDQwLDB4ZmYsMHgxMCwweDNmLDB4NDAsMHg0ZiwweGQwLDB4MDMsMHhmYywweGQyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHhkNTAwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmNCwweDAzLDB4ZmMsMHgwMCwweGZlLDB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MSwweDAzLDB4ZDAsMHgxMiB9IH0sCi17ICAxNiwgMHhkNTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVlLDB4MDAsMHhjYiwweDAwLDB4MTYsMHhjMCB9IH0sCi17ICAxNiwgMHhkNTIwLCAwLCB7MHgwZCwweDgwLDB4MDMsMHgyNywweDIwLDB4Y2IsMHgwMCwweDNlLDB4YzIsMHgwYSwweGIwLDB4NTMsMHhlNCwweDI4LDB4YzEsMHg4MSB9IH0sCi17ICAxNiwgMHhkNTMwLCAwLCB7MHgzMiwweGMxLDB4MGUsMHhiOSwweDAzLDB4MmMsMHgwMCwweGYxLDB4ODAsMHgzNSwweGUwLDB4MGMsMHhiOCwweDAzLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhkNTQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4MDIsMHg4NywweDEwLDB4MmQsMHg0MCB9IH0sCi17ICAxNiwgMHhkNTUwLCAwLCB7MHgwOCwweDcwLDB4MDMsMHg1YywweDAwLDB4YTcsMHgwMCwweDJkLDB4NDAsMHgyOCwweDcwLDB4MDIsMHhkNCwweDA0LDB4ODcsMHgwNCB9IH0sCi17ICAxNiwgMHhkNTYwLCAwLCB7MHhhMSwweGQwLDB4MGIsMHg3MiwweDAyLDB4MWQsMHgwMCwweGY3LDB4MDAsMHgyMSwweGMwLDB4MGQsMHg1MCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhkNTcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHg4NSwweDgwLDB4MjUsMHhlMCB9IH0sCi17ICAxNiwgMHhkNTgwLCAwLCB7MHgwOSwweDc4LDB4MDIsMHgzNywweDAzLDB4ODcsMHg4MCwweDJmLDB4ZTAsMHgwOCwweDc4LDB4MTIsMHhjNiwweDEwLDB4OGQsMHg4MCB9IH0sCi17ICAxNiwgMHhkNTkwLCAwLCB7MHgyNSwweGU4LDB4MGIsMHgzOCwweDAyLDB4MWUsMHg4MCwweGJjLDB4ODQsMHgyNSwweGUwLDB4MDgsMHg1OCwweDAyLDB4NzAsMHgwMCB9IH0sCi17ICAxNiwgMHhkNWEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNkLDB4ODAsMHg4MywweDg4LDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhkNWIwLCAwLCB7MHgwOCwweDNjLDB4MDIsMHg0ZSwweDAxLDB4YTMsMHhkMiwweDJlLDB4YzQsMHgwOCwweGIxLDB4MDIsMHhjYywweDAwLDB4ODMsMHg4MCB9IH0sCi17ICAxNiwgMHhkNWMwLCAwLCB7MHgyNCwweGMxLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4NDAsMHhhMCwweGQyLDB4MDksMHgzMCwweDEyLDB4NTIsMHgwMCB9IH0sCi17ICAxNiwgMHhkNWQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGJhLDB4MDAsMHhjYSwweGMwLDB4MzYsMHg4MCB9IH0sCi17ICAxNiwgMHhkNWUwLCAwLCB7MHgwZCwweDY3LDB4MTMsMHgyOCwweDAwLDB4Y2UsMHgwMCwweDNlLDB4YTAsMHgwYywweGVkLDB4MDMsMHhlOCwweDAwLDB4Y2UsMHhlMCB9IH0sCi17ICAxNiwgMHhkNWYwLCAwLCB7MHgzNiwweDgwLDB4MWUsMHhhMCwweDBiLDB4MjgsMHgwNCwweGZlLDB4MDAsMHhiNywweGIyLDB4MGMsMHhlMCwweDBiLDB4N2EsMHgwMCB9IH0sCi17ICAxNiwgMHhkNjAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4NDAsMHhmOCwweDEwLDB4MmUsMHgxMCB9IH0sCi17ICAxNiwgMHhkNjEwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlMCwweDAxLDB4ZDgsMHgwYSwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhjMCwweDAyLDB4ZjgsMHgwOCB9IH0sCi17ICAxNiwgMHhkNjIwLCAwLCB7MHgzYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgxMCwweGU4LDB4MjAsMHhiZSwweDAwLDB4MGYsMHg4MCwweDEzLDB4OTIsMHgwMCB9IH0sCi17ICAxNiwgMHhkNjMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU1LDB4MDAsMHhmYiwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhkNjQwLCAwLCB7MHgwYywweDkxLDB4MDMsMHgyNiwweDAwLDB4NjEsMHg4MCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHhkNjUwLCAwLCB7MHgxZSwweDQwLDB4MGMsMHg5YywweDAzLDB4ZTQsMHgwMSwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwMCB9IH0sCi17ICAxNiwgMHhkNjYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY3LDB4MDAsMHhiOSwweDAwLDB4MmMsMHg0MCB9IH0sCi17ICAxNiwgMHhkNjcwLCAwLCB7MHgwMCwweDljLDB4MDIsMHhhNiwweDAwLDB4NzksMHgwMCwweDIyLDB4NDAsMHgyOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgwMCB9IH0sCi17ICAxNiwgMHhkNjgwLCAwLCB7MHgyYywweDQ0LDB4MDgsMHg5OCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4ODAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAsMHgwMSB9IH0sCi17ICAxNiwgMHhkNjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHhiYiwweDAwLDB4MjYsMHg1MCB9IH0sCi17ICAxNiwgMHhkNmEwLCAwLCB7MHgyOCwweDkwLDB4ODIsMHgyNCwweDg0LDB4OTksMHgyMCwweDIyLDB4NDAsMHg0OSwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgwMCB9IH0sCi17ICAxNiwgMHhkNmIwLCAwLCB7MHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4NjAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHhkNmMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA2LDB4MDAsMHhiMSwweDAwLDB4MmUsMHg0OCB9IH0sCi17ICAxNiwgMHhkNmQwLCAwLCB7MHgwOCwweDEyLDB4MDIsMHg4NCwweDgwLDB4YjEsMHgyMCwweGEwLDB4NDgsMHgwOSwweDEyLDB4MGEsMHgwNCwweDgwLDB4ODEsMHgwMCB9IH0sCi17ICAxNiwgMHhkNmUwLCAwLCB7MHgyYywweDQ4LDB4MjgsMHgxMiwweDQyLDB4YzQsMHg4OCwweDMxLDB4MDAsMHgyYywweDQwLDB4MGIsMHgxOCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhkNmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhmOCwweDUwLDB4MzYsMHgxNCB9IH0sCi17ICAxNiwgMHhkNzAwLCAwLCB7MHgwYywweDgwLDB4MDMsMHgyMCwweDAwLDB4ZTgsMHgwMCwweDMyLDB4MTQsMHgwYywweDg1LDB4MDMsMHgyMSwweDQwLDB4YzgsMHg1MCB9IH0sCi17ICAxNiwgMHhkNzEwLCAwLCB7MHgzZSwweDE0LDB4MGMsMHg4MCwweDAzLDB4ZTEsMHg0MCwweDM4LDB4MDAsMHgzZSwweDAwLDB4OGYsMHg4MCwweDAzLDB4ZWUsMHgwMyB9IH0sCi17ICAxNiwgMHhkNzIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGQ0LDB4MDAsMHhmYiwweDA0LDB4M2QsMHg0NCB9IH0sCi17ICAxNiwgMHhkNzMwLCAwLCB7MHgwZiwweDUxLDB4MjMsMHhkNCwweDQ4LDB4ZWQsMHgxMCwweDNkLDB4NDQsMHg0ZSwweGQxLDB4MjMsMHhmNCwweDQyLDB4ZmQsMHgwMCB9IH0sCi17ICAxNiwgMHhkNzQwLCAwLCB7MHgzZSwweDQ0LDB4OGYsMHg5MSwweDAzLDB4ZTQsMHg1OCwweGZkLDB4MDAsMHgzZiwweDUwLDB4MGYsMHg1MCwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhkNzUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY0LDB4MDAsMHhmOSwweDAwLDB4M2QsMHg0MCB9IH0sCi17ICAxNiwgMHhkNzYwLCAwLCB7MHgwYywweGQwLDB4MDMsMHhmNCwweDAwLDB4ZGQsMHgwMiwweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHhlNCwweDQwLDB4YzksMHgxMCB9IH0sCi17ICAxNiwgMHhkNzcwLCAwLCB7MHgzNywweDQwLDB4MDcsMHhkMCwweDA3LDB4MjQsMHgwMCwweGU1LDB4MDAsMHgyZiwweDZhLDB4MGYsMHg3MCwweDAzLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhkNzgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUwLDB4MDAsMHhiOCwweDAwLDB4M2EsMHgwMCB9IH0sCi17ICAxNiwgMHhkNzkwLCAwLCB7MHg4MCwweDgwLDB4MDIsMHhlMCwweDAwLDB4ODgsMHgwMCwweDJlLDB4MDAsMHgwYSwweDgwLDB4NTMsMHhhMiwweDgwLDB4MmMsMHhhMCB9IH0sCi17ICAxNiwgMHhkN2EwLCAwLCB7MHgyMiwweDAwLDB4MGIsMHg4MCwweDBhLDB4MjAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDEwLDB4MDksMHg4MCwweDAzLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHhkN2IwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDAwLDB4NmMsMHg0MCB9IH0sCi17ICAxNiwgMHhkN2MwLCAwLCB7MHgyYSwweDEwLDB4MDIsMHg4NCwweDAxLDB4ODEsMHg4MCwweDJlLDB4NDAsMHgwOSwweDEwLDB4MDIsMHhmNCwweDAwLDB4OGQsMHgwNCB9IH0sCi17ICAxNiwgMHhkN2QwLCAwLCB7MHgyMCwweDQwLDB4MGIsMHgxMCwweDAyLDB4ODQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4MGIsMHg5OCwweDAyLDB4NDIsMHgwMSB9IH0sCi17ICAxNiwgMHhkN2UwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxMSwweGE0LDB4MjAsMHhiOSwweDAwLDB4MmEsMHg0MCB9IH0sCi17ICAxNiwgMHhkN2YwLCAwLCB7MHg4OCwweGI0LDB4MDIsMHhlNiwweDAxLDB4YTksMHgyMCwweDJlLDB4NDgsMHgwYSwweDkwLDB4MDAsMHhhNCwweDQwLDB4YWQsMHg0MCB9IH0sCi17ICAxNiwgMHhkODAwLCAwLCB7MHgyMiwweDQwLDB4MGIsMHg5MCwweDEyLDB4YTQsMHgwNCwweGI5LDB4MDEsMHgyZSwweDQxLDB4MGIsMHg5MCwweDAyLDB4MDYsMHgwNCB9IH0sCi17ICAxNiwgMHhkODEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweGMwLDB4M2UsMHg2MCB9IH0sCi17ICAxNiwgMHhkODIwLCAwLCB7MHgwYywweDk0LDB4MTMsMHhhNiwweDAyLDB4ZDksMHg0MiwweDFjLDB4NjAsMHgwYywweDllLDB4MDEsMHhjNiwweDA0LDB4YzEsMHgwMCB9IH0sCi17ICAxNiwgMHhkODMwLCAwLCB7MHhiMiwweDQwLDB4MWYsMHg5MCwweDAyLDB4YTQsMHgwMCwweGU5LDB4MDgsMHgzZSwweDY4LDB4NGYsMHg5OCwweDBiLDB4NjgsMHgwNCB9IH0sCi17ICAxNiwgMHhkODQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE2LDB4NDAsMHhmOSwweDIwLDB4MzgsMHg3MCB9IH0sCi17ICAxNiwgMHhkODUwLCAwLCB7MHgwZiwweDkxLDB4MDMsMHhlNCwweDAwLDB4ZDksMHg4MCwweDNlLDB4NDAsMHgwZiwweDljLDB4MTMsMHhhNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhkODYwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHgxMCwweDAzLDB4NjQsMHgxMCwweGY5LDB4MGEsMHgzZSwweDUwLDB4MGQsMHg5YSwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhkODcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGExLDB4MDAsMHhkOCwweDA0LDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhkODgwLCAwLCB7MHgwYywweDgxLDB4MTMsMHhjMCwweDAyLDB4ZDgsMHgyMCwweDNlLDB4MDAsMHgyZCwweDg0LDB4MDMsMHhlMCwweDAwLDB4Y2MsMHgwOCB9IH0sCi17ICAxNiwgMHhkODkwLCAwLCB7MHgzYSwweDAwLDB4MGYsMHg4MCwweDQzLDB4ZTAsMHgwMCwweGY4LDB4NDEsMHgzMiwweDAwLDB4MDcsMHg4MSwweDhiLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhkOGEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDNhLDB4NjAsMHg4YSwweDAwLDB4MmYsMHhhOCB9IH0sCi17ICAxNiwgMHhkOGIwLCAwLCB7MHgwYSwweGUwLDB4MjIsMHhlOCwweDAyLDB4N2UsMHg0OCwweDJlLDB4ODAsMHgwOCwweGEwLDB4NDIsMHhlOCwweDA0LDB4OGUsMHgwMCB9IH0sCi17ICAxNiwgMHhkOGMwLCAwLCB7MHgyMywweGE4LDB4MGIsMHhhOCwweDgyLDB4ZTgsMHgwMCwweGVlLDB4MDAsMHhhMiwweDgwLDB4NGIsMHg2MCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhkOGQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg5MywweDAwLDB4NmMsMHhjMCB9IH0sCi17ICAxNiwgMHhkOGUwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHhjYywweDAwLDB4MTMsMHg4MSwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjZSwweDQwLDB4ODIsMHg0MCB9IH0sCi17ICAxNiwgMHhkOGYwLCAwLCB7MHgyOCwweGUwLDB4MGIsMHgzOCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MTAsMHgyNCwweGMwLDB4OGIsMHgzOCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhkOTAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFlLDB4MDAsMHg4NywweDIwLDB4MmYsMHhjMCB9IH0sCi17ICAxNiwgMHhkOTEwLCAwLCB7MHgwYSwweDcwLDB4MDIsMHhkYywweDBhLDB4YjYsMHgwMCwweDJjLDB4YzgsMHg4OCwweDcyLDB4MDYsMHhkOCwweDAwLDB4ODYsMHgwMCB9IH0sCi17ICAxNiwgMHhkOTIwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZGMsMHg4NCwweGFmLDB4ODAsMHhhNSwweGMwLDB4MGIsMHhkMCwweDAyLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhkOTMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhkNywweDgwLDB4M2QsMHhhMCB9IH0sCi17ICAxNiwgMHhkOTQwLCAwLCB7MHgxYywweDc4LDB4MTMsMHhkNiwweDAyLDB4ZDcsMHg4MCwweDNkLDB4ZWMsMHgwOCwweDdlLDB4MjMsMHhmZSwweDAwLDB4Y2UsMHg4MCB9IH0sCi17ICAxNiwgMHhkOTUwLCAwLCB7MHgzOSwweDYwLDB4MGYsMHg3OCwweDAzLDB4ZGYsMHgwMCwweGY2LDB4ODAsMHg3NSwweGUwLDB4MGYsMHg3OCwweDAzLDB4MmEsMHgwMiB9IH0sCi17ICAxNiwgMHhkOTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweDhjLDB4MDAsMHhmYiwweDEwLDB4M2UsMHg4MCB9IH0sCi17ICAxNiwgMHhkOTcwLCAwLCB7MHgxZiwweGEwLDB4MjEsMHhjYywweDAwLDB4ZmEsMHgwMCwweDNlLDB4YzAsMHgwZSwweGIwLDB4MDMsMHhlOCwweDAyLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHhkOTgwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHhiMCwweDEzLDB4ZWMsMHgwMCwweGVhLDB4MDEsMHgzYSwweGMwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhkOTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZjLDB4MDAsMHhmZiwweDgwLDB4M2YsMHg2MCB9IH0sCi17ICAxNiwgMHhkOWEwLCAwLCB7MHgwOCwweDk5LDB4MDcsMHg3ZSwweDAwLDB4ZGQsMHg4MCwweDNmLDB4ZTIsMHgwYywweGY4LDB4MDMsMHhmNiwweDAyLDB4ZGYsMHg4MCB9IH0sCi17ICAxNiwgMHhkOWIwLCAwLCB7MHhiMywweGUwLDB4MGMsMHhmOCwweDAzLDB4M2UsMHg0MSwweGNjLDB4ODAsMHgzMywweGU0LDB4MGYsMHhmOCwweDAzLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhkOWMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4NDAsMHhiNywweDAwLDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHhkOWQwLCAwLCB7MHgwZCwweDVhLDB4MjIsMHhkYywweDgwLDB4NzUsMHgwMCwweDJkLDB4YzAsMHgwOCwweDcxLDB4MDIsMHhmMCwweDIwLDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHhkOWUwLCAwLCB7MHgyMSwweGMwLDB4MGEsMHg3MCwweDAyLDB4MWMsMHgwMCwweGQ0LDB4MjgsMHgyMSwweGMwLDB4MGIsMHg3MiwweDAyLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhkOWYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4NDAsMHhiNywweDAwLDB4MmQsMHgwMCB9IH0sCi17ICAxNiwgMHhkYTAwLCAwLCB7MHgwOCwweDcyLDB4MjIsMHhmNCwweDAwLDB4ODcsMHgwMCwweDJkLDB4YzIsMHgwOCwweDcwLDB4MDIsMHhkNCwweDAwLDB4ODcsMHg4MCB9IH0sCi17ICAxNiwgMHhkYTEwLCAwLCB7MHgyNSwweDQwLDB4MDksMHgzMCwweDAyLDB4NWMsMHgwMSwweGFkLDB4MDAsMHgyOSwweGQwLDB4NGIsMHg3MCwweDAyLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhkYTIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNjLDB4MDAsMHhiYiwweGM4LDB4MmMsMHhhMCB9IH0sCi17ICAxNiwgMHhkYTMwLCAwLCB7MHgwOSwweDIwLDB4MDIsMHhjZSwweDAwLDB4YTMsMHgwMCwweDJjLDB4ZTAsMHhhOCwweDNkLDB4NDIsMHhjMiwweDAwLDB4OGIsMHg4MCB9IH0sCi17ICAxNiwgMHhkYTQwLCAwLCB7MHgyNCwweDQwLDB4MGIsMHgzMCwweDBhLDB4NmMsMHgwOCwweGEzLDB4NDAsMHhhOCwweGUwLDB4MGIsMHgzNCwweDAyLDB4YzgsMHgwNCB9IH0sCi17ICAxNiwgMHhkYTUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFkLDB4MDAsMHhmZiwweDQ4LDB4M2MsMHgyOCB9IH0sCi17ICAxNiwgMHhkYTYwLCAwLCB7MHgwYywweGE5LDB4MjMsMHg2YywweDgwLDB4OGIsMHgwMCwweDNmLDB4YzAsMHgwYywweGZjLDB4MDMsMHhlYywweDAwLDB4ZDgsMHg4MCB9IH0sCi17ICAxNiwgMHhkYTcwLCAwLCB7MHgzNCwweDQwLDB4MGQsMHgzMCwweDAzLDB4N2MsMHgwMiwweGEzLDB4NDAsMHgzOCwweDY4LDB4MGYsMHgyNCwweDAzLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhkYTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVkLDB4ODgsMHhmYiwweDAwLDB4M2UsMHg1MCB9IH0sCi17ICAxNiwgMHhkYTkwLCAwLCB7MHgwZiwweGExLDB4MDMsMHhlYywweDA0LDB4M2EsMHhjMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4ODMsMHhlOCwweDAyLDB4ZjgsMHgxMCB9IH0sCi17ICAxNiwgMHhkYWEwLCAwLCB7MHgzYSwweDQxLDB4MGUsMHg5MCwweDAzLDB4YWMsMHgwMCwweDliLDB4MDgsMHhiNiwweDQwLDB4MGYsMHg4MSwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhkYWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhmZiwweDAwLDB4YjMsMHgyMCB9IH0sCi17ICAxNiwgMHhkYWMwLCAwLCB7MHgwYywweDUwLDB4MTMsMHgxYywweDA5LDB4Y2QsMHg4MywweDMzLDB4YzAsMHg4MywweDcwLDB4MDAsMHgzYywweDAwLDB4ZGMsMHgxMCB9IH0sCi17ICAxNiwgMHhkYWQwLCAwLCB7MHgzMiwweDYwLDB4MGUsMHhmMSwweDQzLDB4MmMsMHgwMCwweGNlLDB4MDQsMHgzYiwweDcwLDB4MGMsMHhmMCwweDgzLDB4MDAsMHg0NCB9IH0sCi17ICAxNiwgMHhkYWUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDY3LDB4ODAsMHhiYiwweDAxLDB4NjIsMHgyMSB9IH0sCi17ICAxNiwgMHhkYWYwLCAwLCB7MHg4YSwweDg5LDB4MjAsMHgyYywweDAwLDB4ODAsMHhlMCwweDIyLDB4YzAsMHgwYiwweGIwLDB4MDMsMHhkOCwweDEwLDB4OGMsMHgwNCB9IH0sCi17ICAxNiwgMHhkYjAwLCAwLCB7MHgyMiwweDQwLDB4MDUsMHg5MCwweDAyLDB4YWMsMHgwMCwweGQ4LDB4ODAsMHgzNiwweDQwLDB4MGEsMHg5MCwweDAyLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhkYjEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI2LDB4MDAsMHhiYiwweDAwLDB4MjIsMHgwNiB9IH0sCi17ICAxNiwgMHhkYjIwLCAwLCB7MHgwOCwweDgwLDB4MDIsMHgyZSwweDAwLDB4ODgsMHgyMCwweDIyLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhhNCwweDAwLDB4OTksMHgwMCB9IH0sCi17ICAxNiwgMHhkYjMwLCAwLCB7MHg2MiwweGM0LDB4MDgsMHhiMCwweDA2LDB4MmMsMHgwMCwweDg4LDB4ODAsMHgyMiwweDQxLDB4MDgsMHhhMCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkYjQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDAwLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhkYjUwLCAwLCB7MHgwYSwweDAwLDB4ODIsMHgwYywweDAwLDB4ODAsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MjIsMHhhMCwweDAwLDB4ODEsMHgwMCB9IH0sCi17ICAxNiwgMHhkYjYwLCAwLCB7MHhhMCwweGMwLDB4MDksMHgzMCwweDAyLDB4OGMsMHgwMCwweDkwLDB4MDAsMHgyNCwweDQwLDB4MGEsMHgyOCwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhkYjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhmYiwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkYjgwLCAwLCB7MHgyYywweDkyLDB4MDMsMHgyYywweDAyLDB4ODgsMHgwMCwweDMxLDB4YzAsMHgwYiwweGI1LDB4MDIsMHhhNCwweDAwLDB4ZDEsMHgwNCB9IH0sCi17ICAxNiwgMHhkYjkwLCAwLCB7MHgzMiwweDQwLDB4MGUsMHg5MCwweDAzLDB4MmMsMHg0MCwweGM5LDB4MDAsMHgzYSwweDQwLDB4OGMsMHhhMCwweDAzLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHhkYmEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGY0LDB4MDAsMHhmZiwweDAwLDB4MmYsMHgwMCB9IH0sCi17ICAxNiwgMHhkYmIwLCAwLCB7MHgwZiwweGMwLDB4MDMsMHhkYywweDAwLDB4ZmMsMHgwMCwweDNmLDB4YzEsMHgwZiwweGYwLDB4NDMsMHhmMCwweDAwLDB4ZmQsMHgwMCB9IH0sCi17ICAxNiwgMHhkYmMwLCAwLCB7MHgzZiwweDQwLDB4NGYsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGY1LDB4MDAsMHgzZiwweDQwLDB4MGYsMHhlMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhkYmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGQ4LDB4ODAsMHhjYywweDAwLDB4YjcsMHgwNCB9IH0sCi17ICAxNiwgMHhkYmUwLCAwLCB7MHg0ZSwweGUxLDB4MDMsMHgzYywweDIwLDB4ZGYsMHgxMCwweDMxLDB4ODAsMHgwNiwweGYwLDB4MDMsMHg3ZiwweDAwLDB4ZmYsMHhjMCB9IH0sCi17ICAxNiwgMHhkYmYwLCAwLCB7MHgzYiwweGMwLDB4MGUsMHhmMiwweDAzLDB4NWUsMHgwMCwweGVmLDB4MTAsMHgzMywweGQwLDB4MmMsMHhmMiwweDAzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhkYzAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMCwweGU5LDB4MDAsMHg4OCwweGM2LDB4MjAsMHg1YyB9IH0sCi17ICAxNiwgMHhkYzEwLCAwLCB7MHgwOCwweGE0LDB4NTcsMHg2NSwweDAwLDB4OGYsMHg1MiwweDJhLDB4ZjAsMHgwOSwweGZjLDB4MDIsMHgwNCwweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhkYzIwLCAwLCB7MHgyZCwweGQ5LDB4MDksMHg3NCwweDgzLDB4NjQsMHgyOCwweDgzLDB4NDQsMHgyMiwweDg0LDB4ODgsMHgwNiwweDgyLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhkYzMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweGM5LDB4MDAsMHg4MCwweDEwLDB4MjAsMHgwOCB9IH0sCi17ICAxNiwgMHhkYzQwLCAwLCB7MHgwOCwweDMxLDB4MTIsMHgwNCwweGIyLDB4YTMsMHgwMCwweDIwLDB4ODQsMHgxYiwweDM0LDB4MDIsMHgwYywweDgwLDB4YjMsMHgyMCB9IH0sCi17ICAxNiwgMHhkYzUwLCAwLCB7MHgyYywweGM3LDB4MDksMHgzNiwweDAyLDB4OGMsMHg4MCwweDkzLDB4NDAsMHhhYywweGM4LDB4MDgsMHgzMSwweDI4LDB4MzIsMHgwMSB9IH0sCi17ICAxNiwgMHhkYzYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGE5LDB4MDAsMHg4OCwweDAwLDB4YTIsMHg1MCB9IH0sCi17ICAxNiwgMHhkYzcwLCAwLCB7MHgwOCwweDM1LDB4MDIsMHgyNCwweDAwLDB4OGIsMHgwNCwweDJlLDB4YzEsMHgwOSwweGIwLDB4MDIsMHgyNCwweDk0LDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhkYzgwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4Y2MsMHg2MCwweDhiLDB4MDAsMHgyZSwweDgwLDB4MDgsMHg4MCwweDAwLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhkYzkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweGU3LDB4MDIsMHhjYiwweDE4LDB4YjIsMHg4MCB9IH0sCi17ICAxNiwgMHhkY2EwLCAwLCB7MHgyYywweGFjLDB4MGEsMHgyZSwweDA4LDB4ZWIsMHgwMCwweDMyLDB4MTIsMHg0ZSwweGIwLDB4MDMsMHgyYiwweDgwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhkY2IwLCAwLCB7MHgzYSwweGMwLDB4MGEsMHhiMCwweDAzLDB4YWIsMHgwOCwweGViLDB4MDQsMHgyZSwweDQ4LDB4MGMsMHhiOCwweDgzLDB4MDAsMHgwNCB9IH0sCi17ICAxNiwgMHhkY2MwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI2LDB4ODAsMHhmZiwweDgwLDB4MzksMHhjYSB9IH0sCi17ICAxNiwgMHhkY2QwLCAwLCB7MHgwZCwweGU4LDB4MDMsMHhkNiwweDQwLDB4ZTcsMHgwNCwweDNiLDB4NjYsMHg0ZSwweDcwLDB4MDMsMHhiOCwweDAwLDB4ZmYsMHgwMSB9IH0sCi17ICAxNiwgMHhkY2UwLCAwLCB7MHgzZiwweGMwLDB4NmMsMHhmMCwweDAzLDB4NzAsMHgwNiwweGU3LDB4MDAsMHgzMSwweDA0LDB4MGYsMHhjMSwweDQzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhkY2YwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweDg1LDB4MDAsMHhjYiwweDQwLDB4MzIsMHg5MCB9IH0sCi17ICAxNiwgMHhkZDAwLCAwLCB7MHgyZiwweGIwLDB4MGIsMHg2NCwweDgwLDB4ZmIsMHgwOCwweGJhLDB4MTAsMHgwZCwweGIwLDB4YTcsMHgyZCwweDAwLDB4ZmIsMHgwNCB9IH0sCi17ICAxNiwgMHhkZDEwLCAwLCB7MHgzZSwweGMwLDB4OGUsMHhiMCwweDAzLDB4NmQsMHgwMCwweGRiLDB4MDEsMHgzMiwweDQwLDB4OGMsMHgzMywweDAzLDB4OTAsMHgwNCB9IH0sCi17ICAxNiwgMHhkZDIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweDI0LDB4MDAsMHg4MywweGUwLDB4YTIsMHhkMCB9IH0sCi17ICAxNiwgMHhkZDMwLCAwLCB7MHg0MCwweGIwLDB4MDIsMHgyNSwweDA0LDB4YmYsMHg4MCwweGEwLDB4NTAsMHgwOCwweGY4LDB4MDIsMHgyMCwweDAwLDB4OGIsMHgwMiB9IH0sCi17ICAxNiwgMHhkZDQwLCAwLCB7MHgyZiwweGQwLDB4MDgsMHhmMCwweDAyLDB4MjQsMHgwMCwweDhmLDB4ODAsMHgzNiwweDAxLDB4MDgsMHg4NCwweDQyLDB4MzYsMHgwMCB9IH0sCi17ICAxNiwgMHhkZDUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweDQ0LDB4MDAsMHg4MywweDQ4LDB4MjAsMHhjNCB9IH0sCi17ICAxNiwgMHhkZDYwLCAwLCB7MHgwOSwweDAwLDB4MDIsMHg0NiwweDAwLDB4YjMsMHgwMSwweGE4LDB4OTAsMHgxOSwweDMwLDB4MTIsMHg4YywweDAwLDB4YTMsMHgwNCB9IH0sCi17ICAxNiwgMHhkZDcwLCAwLCB7MHgyZSwweGUyLDB4MGEsMHhiMCwweDAyLDB4MGMsMHgwMCwweDgzLDB4NDksMHgyOCwweGMwLDB4MDksMHgzYywweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHhkZDgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZjAsMHgwMSwweDM2LDB4MDQsMHg4MywweDgwLDB4MjEsMHhlMSB9IH0sCi17ICAxNiwgMHhkZDkwLCAwLCB7MHgwOCwweDM4LDB4MTIsMHgxZSwweDI4LDB4YjMsMHg5OCwweDIxLDB4YTAsMHgxOSwweDM4LDB4ODIsMHg5NiwweDAwLDB4ODcsMHg4MyB9IH0sCi17ICAxNiwgMHhkZGEwLCAwLCB7MHgyZCwweGUyLDB4MDgsMHg3OCwweDIyLDB4MzYsMHg4YywweDg3LDB4ODAsMHgyZCwweGUwLDB4MDksMHg3OSwweDAyLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhkZGIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA0LDB4MDAsMHhjMywweDMwLDB4MzAsMHhjOCB9IH0sCi17ICAxNiwgMHhkZGMwLCAwLCB7MHg0ZCwweDAwLDB4MGIsMHg0YywweDgwLDB4ZjMsMHgxMiwweDM4LDB4YzAsMHgwZCwweDNhLDB4MDIsMHg4YywweDgwLDB4ZjMsMHgwMCB9IH0sCi17ICAxNiwgMHhkZGQwLCAwLCB7MHgzYywweGMwLDB4MGUsMHgzMCwweDBiLDB4MGUsMHgwMCwweGMzLDB4MGMsMHgzYSwweGMwLDB4MGQsMHgzMCwweDAzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhkZGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGI0LDB4MDYsMHhmZiwweDEwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhkZGYwLCAwLCB7MHgwZiwweGIwLDB4MTMsMHhiYywweDAwLDB4ZmYsMHgxMCwweDdmLDB4YzAsMHgwZSwweGYxLDB4YTMsMHg3YywweDAwLDB4ZmYsMHgxMiB9IH0sCi17ICAxNiwgMHhkZTAwLCAwLCB7MHgzZiwweGMyLDB4MGYsMHhmNSwweDIzLDB4YmMsMHg0MSwweGVmLDB4MTgsMHgzNywweDgwLDB4YWUsMHhjMCwweDAzLDB4NTAsMHgwNiB9IH0sCi17ICAxNiwgMHhkZTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU0LDB4MDAsMHhkYiwweDAwLDB4M2UsMHhkYSB9IH0sCi17ICAxNiwgMHhkZTIwLCAwLCB7MHgwYywweDgwLDB4MDMsMHg2NiwweDEwLDB4OGIsMHgwMCwweDMyLDB4ODAsMHg4YywweGI2LDB4MDMsMHg0YSwweDAwLDB4NGIsMHg4MCB9IH0sCi17ICAxNiwgMHhkZTMwLCAwLCB7MHgzMiwweGM4LDB4MGMsMHhiNCwweDAzLDB4MGEsMHgxMCwweGRiLDB4MDAsMHgzZSwweGMxLDB4MGMsMHhiMCwweDQzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhkZTQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgxMSwweGI0LDB4MDAsMHg4NywweDA0LDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhkZTUwLCAwLCB7MHgwZCwweDcwLDB4MDMsMHgxYywweDA4LDB4ODcsMHg0OCwweDIwLDB4ODEsMHgwZCwweDcyLDB4ODIsMHg1YywweDAwLDB4ZDcsMHgwMCB9IH0sCi17ICAxNiwgMHhkZTYwLCAwLCB7MHgyMSwweGNjLDB4MjgsMHhmMCwweDAyLDB4MWMsMHgxMCwweDg3LDB4MjAsMHgyYywweDAwLDB4MDgsMHg0MCwweDBhLDB4MzIsMHgwNCB9IH0sCi17ICAxNiwgMHhkZTcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDk2LDB4MDAsMHhiNywweDgxLDB4MmQsMHhlMCB9IH0sCi17ICAxNiwgMHhkZTgwLCAwLCB7MHgwOCwweDQ4LDB4MDIsMHgwZSwweDA0LDB4ODcsMHg4MCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHgzZSwweDAxLDB4ODcsMHg4MCB9IH0sCi17ICAxNiwgMHhkZTkwLCAwLCB7MHgyMSwweGUwLDB4MTgsMHg3OSwweDAyLDB4M2EsMHgwMSwweDk3LDB4YTAsMHgyZCwweDYwLDB4MDgsMHgzOCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkZWEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGM2LDB4MDAsMHhhMywweGM2LDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhkZWIwLCAwLCB7MHgwOSwweDMwLDB4MDIsMHgwYywweDAxLDB4ODMsMHgwMCwweDIwLDB4ZTAsMHgwOSwweDMwLDB4MDIsMHg0ZSwweDAwLDB4OTMsMHgwMCB9IH0sCi17ICAxNiwgMHhkZWMwLCAwLCB7MHgyMCwweGMwLDB4NDksMHgzMCwweDIyLDB4MGYsMHg2NCwweDgzLDB4MDIsMHg2YywweGQ0LDB4MjgsMHgzMCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhkZWQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxMSwweGFiLDB4ODAsMHhmYSwweGUwLDB4M2MsMHg4OCB9IH0sCi17ICAxNiwgMHhkZWUwLCAwLCB7MHgwYywweGUwLDB4MDIsMHgyOCwweDAyLDB4Y2EsMHgwMCwweGIzLDB4YTksMHgwYywweGEwLDB4MDMsMHgzYiwweDEwLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhkZWYwLCAwLCB7MHhhMiwweDgwLDB4MGMsMHhhMCwweDBiLDB4MzgsMHgwMCwweGRhLDB4MDAsMHgzZiwweGIwLDB4MGMsMHhlNiwweDAzLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhkZjAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGMwLDB4MjAsMHg5OCwweDA4LDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhkZjEwLCAwLCB7MHgwZiwweDgwLDB4MGIsMHhlMSwweDAwLDB4ZjgsMHgwMSwweDNjLDB4MTAsMHg0ZiwweDAwLDB4MDMsMHhhMCwweDQwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhkZjIwLCAwLCB7MHgzZSwweDEwLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzYywweDAyLDB4MmYsMHgwNCwweDkzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhkZjMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhjMSwweGMxLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhkZjQwLCAwLCB7MHgwYywweDk4LDB4MDMsMHgyNiwweDQwLDB4ZjksMHgwMCwweDMyLDB4NDAsMHgwYywweDk4LDB4MDMsMHgyNCwweDI0LDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhkZjUwLCAwLCB7MHgzYywweDYwLDB4MGMsMHgxMCwweDAzLDB4YTQsMHgwMCwweGY5LDB4ODIsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhkZjYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg1MCB9IH0sCi17ICAxNiwgMHhkZjcwLCAwLCB7MHgwZCwweDk4LDB4MDIsMHgyNSwweDgwLDB4YjksMHgwMCwweDIyLDB4NTIsMHgwZCwweDljLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhkZjgwLCAwLCB7MHgyZSwweDYwLDB4MDgsMHg5MCwweDQyLDB4MjQsMHgwMCwweGI5LDB4NDAsMHgzNiwweDQwLDB4MDgsMHg5MCwweDBhLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkZjkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4ZCwweDAwLDB4MjMsMHg0MCB9IH0sCi17ICAxNiwgMHhkZmEwLCAwLCB7MHgwOCwweDEyLDB4MDIsMHgyNCwweDAwLDB4YTEsMHgxMCwweGEyLDB4NjAsMHgwOCwweDkyLDB4OGEsMHgyNCwweDAwLDB4YjksMHgwMSB9IH0sCi17ICAxNiwgMHhkZmIwLCAwLCB7MHgyZSwweDQ2LDB4MDgsMHg5MCwweDAyLDB4YTQsMHgwMCwweGIxLDB4NTAsMHgyMiwweDQwLDB4MjgsMHg5MCwweDgyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhkZmMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4ODQsMHg4NSwweDIwLDB4YTEsMHhkOCB9IH0sCi17ICAxNiwgMHhkZmQwLCAwLCB7MHgwOSwweDEwLDB4MDIsMHgwNCwweDgwLDB4YjMsMHgyMCwweDIwLDB4NDAsMHgyOSwweDEyLDB4MDYsMHgwNCwweDAwLDB4YjEsMHgwMSB9IH0sCi17ICAxNiwgMHhkZmUwLCAwLCB7MHgyYywweDQ4LDB4MjgsMHgxMiwweDAyLDB4MDQsMHgwMCwweGIxLDB4MjAsMHgyNCwweDQ4LDB4MDgsMHgxMiwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhkZmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDIsMHg4YSwweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhlMDAwLCAwLCB7MHgwYywweDA1LDB4MDMsMHgyMSwweDQwLDB4ZTAsMHg1MCwweGIyLDB4MDAsMHgyYywweDgwLDB4MDIsMHgyMSwweDQwLDB4ZjAsMHg1MCB9IH0sCi17ICAxNiwgMHhlMDEwLCAwLCB7MHgzYywweDE0LDB4MGMsMHg4NSwweDEzLDB4YTEsMHg1MCwweGY4LDB4NTAsMHgzMiwweDE0LDB4MGMsMHg4NSwweDIzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhlMDIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGY0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCB9IH0sCi17ICAxNiwgMHhlMDMwLCAwLCB7MHgwZiwweGQ0LDB4MGIsMHhmNCwweDQ0LDB4ZjksMHgxMCwweDNmLDB4NTAsMHg0ZiwweDExLDB4MDMsMHhmNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhlMDQwLCAwLCB7MHgzZSwweDQ0LDB4MGYsMHg5MSwweDUzLDB4ZjQsMHgxNCwweGY5LDB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkMSwweDAzLDB4ZTYsMHgwMiB9IH0sCi17ICAxNiwgMHhlMDUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgwNSwweGU2LDB4YTAsMHhkZCwweDg4LDB4YjMsMHg2NiB9IH0sCi17ICAxNiwgMHhlMDYwLCAwLCB7MHgwYywweGRjLDB4ODMsMHgzNiwweDg4LDB4YmQsMHhhMCwweDM3LDB4NmEsMHgwYywweGRhLDB4MGIsMHgyNSwweDAyLDB4YzksMHg0MCB9IH0sCi17ICAxNiwgMHhlMDcwLCAwLCB7MHgzZiwweDc4LDB4NGYsMHg5OCwweGIzLDB4ZTUsMHgwNCwweGNkLDB4YTAsMHg3MiwweDc4LDB4MGMsMHhkOCwweDhiLDB4MjYsMHgxNCB9IH0sCi17ICAxNiwgMHhlMDgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUzLDB4MDAsMHg4OCwweDQyLDB4MjIsMHgzMSB9IH0sCi17ICAxNiwgMHhlMDkwLCAwLCB7MHgwOCwweDBhLDB4MDIsMHgyMiwweGEwLDB4YjgsMHhmOSwweDIyLDB4MTAsMHgwZCwweDg0LDB4MTIsMHg2YSwweDgwLDB4ODgsMHg4MCB9IH0sCi17ICAxNiwgMHhlMGEwLCAwLCB7MHgyZSwweDIwLDB4MGIsMHgwOCwweDAyLDB4ZTIsMHg4MCwweGE4LDB4YTgsMHhhMiwweDM4LDB4NDgsMHhhOCwweDAyLDB4MGUsMHgwMCB9IH0sCi17ICAxNiwgMHhlMGIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4YTIsMHg4MSwweDAwLDB4MjAsMHg0OCB9IH0sCi17ICAxNiwgMHhlMGMwLCAwLCB7MHgwOCwweDEyLDB4NDIsMHg0NSwweDAwLDB4YjEsMHgwMCwweDI0LDB4NDAsMHgwOSwweDE0LDB4MDIsMHgyNCwweDAwLDB4ODEsMHgyMCB9IH0sCi17ICAxNiwgMHhlMGQwLCAwLCB7MHgyYywweDU4LDB4MGIsMHgxMCwweDgyLDB4YzQsMHgwNCwweDkxLDB4NDAsMHg2NCwweDZjLDB4MDgsMHgzMCwweDgyLDB4MTIsMHgwNSB9IH0sCi17ICAxNiwgMHhlMGUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MSB9IH0sCi17ICAxNiwgMHhlMGYwLCAwLCB7MHgwOCwweDkwLDB4OGEsMHg2NCwweDgwLDB4YjksMHgwMCwweDIyLDB4NTAsMHgwOSwweDkwLDB4MDYsMHg2NCwweDA4LDB4OTksMHgwMCB9IH0sCi17ICAxNiwgMHhlMTAwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHg5MCwweDA2LDB4YzQsMHgwMSwweGI5LDB4MDIsMHgyNiwweDYxLDB4ODgsMHg5MCwweDAyLDB4MDYsMHgwNCB9IH0sCi17ICAxNiwgMHhlMTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhjOSwweDAwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhlMTIwLCAwLCB7MHgyYywweDk0LDB4MjMsMHg2NCwweDAwLDB4YjksMHgwMCwweDM2LDB4NDAsMHgwOSwweDkwLDB4MTMsMHgwNSwweDAwLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHhlMTMwLCAwLCB7MHgzZSwweDQwLDB4NGYsMHg5MCwweDEzLDB4ZTUsMHhjMCwweGQ5LDB4MDAsMHgyNiwweDQwLDB4MmMsMHg5NCwweDAzLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhlMTQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwMSwweGE0LDB4MDIsMHhlOSwweDA4LDB4M2MsMHg0MCB9IH0sCi17ICAxNiwgMHhlMTUwLCAwLCB7MHgwZiwweDkwLDB4MGIsMHhhNCwweDAwLDB4ZjEsMHgwMCwweDNlLDB4NDEsMHgwZiwweDkwLDB4NDMsMHhhNCwweDg4LDB4ZTksMHgwNCB9IH0sCi17ICAxNiwgMHhlMTYwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwMCwweGUxLDB4MDAsMHgzYSwweDQwLDB4OWYsMHg5MiwweDYzLDB4ZGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlMTcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweDgwLDB4MTAsMHhlMCwweDAxLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhlMTgwLCAwLCB7MHg4ZiwweDgwLDB4MDMsMHgyMCwweDAwLDB4ZDgsMHgwOCwweDMwLDB4MDEsMHg4YywweDAwLDB4MDMsMHhlMSwweDAyLDB4YzgsMHgwNCB9IH0sCi17ICAxNiwgMHhlMTkwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4MCwweDBiLDB4MjEsMHgwMCwweGM4LDB4MDAsMHg3OCwweDAwLDB4MGYsMHg4NiwweDAzLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlMWEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHg4ZSwweDQwLDB4MmIsMHg4MiB9IH0sCi17ICAxNiwgMHhlMWIwLCAwLCB7MHgwYiwweGEwLDB4MDIsMHgzYSwweDAwLDB4OGUsMHg4MCwweDIzLDB4ODIsMHgwOCwweGUyLDB4MDIsMHgyOCwweDEwLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlMWMwLCAwLCB7MHgyZiwweDk4LDB4MjgsMHhhMCwweDEyLDB4MjgsMHgwMCwweDhlLDB4MjAsMHgyZSwweDgwLDB4NGIsMHhlNCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlMWQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDIsMHhhMiwweDQwLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhlMWUwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHg0ZSwweDQwLDB4OTMsMHhjMCwweGEwLDB4MjAsMHgwOCwweDM2LDB4MDIsMHg4YywweDAwLDB4OTMsMHgwMCB9IH0sCi17ICAxNiwgMHhlMWYwLCAwLCB7MHgyYywweGUyLDB4MDgsMHgzMCwweDA2LDB4NGMsMHgxMiwweDkzLDB4MDgsMHgyOCwweGMwLDB4MGIsMHhiMCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlMjAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFjLDB4MDgsMHg4MiwweDQwLDB4MjksMHg0MCB9IH0sCi17ICAxNiwgMHhlMjEwLCAwLCB7MHgwYiwweDcwLDB4MDIsMHg1ZSwweDA4LDB4ODQsMHgwOCwweDIzLDB4NDAsMHgwOCwweDcwLDB4MDYsMHgxYywweDgwLDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHhlMjIwLCAwLCB7MHgyZCwweDIwLDB4MDgsMHg3OSwweDEyLDB4NWMsMHgwMCwweDk0LDB4MDAsMHgyZCwweGMwLDB4MGIsMHgzMCwweDQyLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhlMjMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNlLDB4MDAsMHhlNCwweDgwLDB4MzEsMHhhMSB9IH0sCi17ICAxNiwgMHhlMjQwLCAwLCB7MHgwZiwweDU4LDB4MTMsMHg3NiwweDAwLDB4ZDAsMHg4MCwweDMxLDB4YzAsMHgwYywweDM4LDB4MDMsMHhiZSwweDgwLDB4ZDcsMHg4MSB9IH0sCi17ICAxNiwgMHhlMjUwLCAwLCB7MHgzZiwweDIwLDB4OGMsMHg3OSwweDAzLDB4N2YsMHgwMSwweGQ2LDB4ODAsMHgzOSwweGU4LDB4NGYsMHg2OCwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhlMjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGJlLDB4MDAsMHhmYSwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhlMjcwLCAwLCB7MHg4ZiwweDk2LDB4MGIsMHhhNCwweDAwLDB4ZWEsMHgwMCwweDNjLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhhYywweDIwLDB4ZmIsMHg0MCB9IH0sCi17ICAxNiwgMHhlMjgwLCAwLCB7MHgyZSwweDAwLDB4MGYsMHhiMiwweDAzLDB4YWQsMHhhMCwweGVhLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhhMCwweDFiLDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHhlMjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGZlLDB4MDgsMHhkZSwweDgxLDB4MzMsMHhhNCB9IH0sCi17ICAxNiwgMHhlMmEwLCAwLCB7MHgwZSwweGZjLDB4MTMsMHgzZSwweDAwLDB4ZmMsMHg4MCwweDEzLDB4MjAsMHgwYywweDY4LDB4MDMsMHgzZSwweDIwLDB4ZmYsMHhjOCB9IH0sCi17ICAxNiwgMHhlMmIwLCAwLCB7MHgzZiwweDYwLDB4MWQsMHhmOCwweDAzLDB4N2UsMHgwMCwweGM3LDB4ODAsMHgzMywweGUyLDB4MGMsMHhkOCwweDAzLDB4MTAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMmMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDAsMHg4NiwweDQxLDB4MzEsMHhjNCB9IH0sCi17ICAxNiwgMHhlMmQwLCAwLCB7MHgwOCwweDc5LDB4NDIsMHg5YywweDAwLDB4YmMsMHgxMCwweDIxLDB4NDAsMHg4NSwweDM1LDB4MDMsMHg1YywweDAwLDB4YjcsMHgwMCB9IH0sCi17ICAxNiwgMHhlMmUwLCAwLCB7MHgyZCwweGMwLDB4MDgsMHg3MiwweDAyLDB4MmMsMHgwMCwweGE3LDB4MDEsMHgzNywweGMwLDB4MDgsMHg1MSwweDQyLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhlMmYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDhjLDB4NDAsMHg4MiwweDAwLDB4MjQsMHg4MSB9IH0sCi17ICAxNiwgMHhlMzAwLCAwLCB7MHgwOCwweGQ4LDB4MDIsMHgxNCwweDIwLDB4YjUsMHgwMCwweDIwLDB4NDAsMHgwOSwweDYwLDB4MDIsMHgxYywweDQwLDB4YjcsMHgwMCB9IH0sCi17ICAxNiwgMHhlMzEwLCAwLCB7MHgyYywweDQwLDB4MGIsMHgzMCwweDIyLDB4ZGMsMHgwMCwweDk3LDB4MDAsMHgyMSwweGM0LDB4MDgsMHg0MCwweDAyLDB4NDQsMHgwMCB9IH0sCi17ICAxNiwgMHhlMzIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgxNCwweGVjLDB4MDAsMHg5MiwweDA2LDB4MjAsMHg5MCB9IH0sCi17ICAxNiwgMHhlMzMwLCAwLCB7MHgzOCwweDE1LDB4MDIsMHg4NiwweDAwLDB4YjgsMHgwMCwweDYwLDB4NTAsMHgwOSwweDMwLDB4MDIsMHg0ZSwweDAxLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhlMzQwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHgzMCwweDAyLDB4Y2UsMHgyMCwweGIzLDB4MDAsMHgyNCwweGYwLDB4NDgsMHgwMiwweDBhLDB4NTgsMHgwNCB9IH0sCi17ICAxNiwgMHhlMzUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhjYSwweDAwLDB4YTYsMHg5NCB9IH0sCi17ICAxNiwgMHhlMzYwLCAwLCB7MHgyYywweDkwLDB4MDMsMHgyZSwweDAwLDB4ZmIsMHgwNSwweGIyLDB4ODUsMHgwZCwweDkwLDB4MDMsMHgzZiwweDkwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhlMzcwLCAwLCB7MHg3ZSwweDgwLDB4MWYsMHhmMCwweDQzLDB4ZmMsMHgyMSwweDlhLDB4MDAsMHgzMywweGM4LDB4M2MsMHhiMiwweDAzLDB4NmEsMHgwNCB9IH0sCi17ICAxNiwgMHhlMzgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgwMCwweGVjLDB4MDIsMHhlYSwweDQwLDB4M2QsMHg4MCB9IH0sCi17ICAxNiwgMHhlMzkwLCAwLCB7MHgwZiwweDEwLDB4OTMsMHhlZCwweDAwLDB4ZmIsMHg0MCwweDNlLDB4OTAsMHg4ZiwweDMwLDB4MDMsMHhlYywweDgwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhlM2EwLCAwLCB7MHgzZSwweDkxLDB4MWMsMHhiMCwweDAzLDB4MmMsMHgxMCwweGU4LDB4MDAsMHgzZSwweGM4LDB4MWYsMHg5MCwweDAzLDB4YTUsMHgxMCB9IH0sCi17ICAxNiwgMHhlM2IwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGZjLDB4MDIsMHhlNCwweDAwLDB4NzMsMHhhMCB9IH0sCi17ICAxNiwgMHhlM2MwLCAwLCB7MHgwYywweGZjLDB4MDMsMHg3YywweDAyLDB4ZmYsMHgxMCwweDEzLDB4YzQsMHgxYywweGMwLDB4MDMsMHgzYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhlM2QwLCAwLCB7MHgzNywweGUwLDB4MGQsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGVkLDB4ODAsMHgzMSwweGMwLDB4MGMsMHgzMiwweDYzLDB4MjAsMHgwNCB9IH0sCi17ICAxNiwgMHhlM2UwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODQsMHgwMCwweDZjLDB4MDAsMHg4YSwweGMwLDB4MjIsMHhiMSB9IH0sCi17ICAxNiwgMHhlM2YwLCAwLCB7MHg4YSwweGI4LDB4NDMsMHg0YSwweDEwLDB4ZGIsMHgyMCwweDIwLDB4ZjAsMHgwYSwweDk0LDB4MDMsMHg2YywweDAwLDB4YmIsMHgwNyB9IH0sCi17ICAxNiwgMHhlNDAwLCAwLCB7MHgyMiwweGI4LDB4MDgsMHhiMCwweDAyLDB4ZWMsMHgxMSwweGU4LDB4YzAsMHhiMiwweGMwLDB4MmEsMHg5MiwweDFhLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNDEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDJjLDB4MDAsMHhhYSwweDgwLDB4MjIsMHg5OCB9IH0sCi17ICAxNiwgMHhlNDIwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgyZiwweDAzLDB4YmIsMHgwMSwweDJhLDB4ODMsMHgwOCwweGIyLDB4NGUsMHgyYywweDA0LDB4YWIsMHgwMiB9IH0sCi17ICAxNiwgMHhlNDMwLCAwLCB7MHgyMiwweGM0LDB4MjgsMHhiMCwweDIyLDB4ZWMsMHgwOSwweGIzLDB4NTAsMHg2MiwweGMwLDB4MDgsMHhiMCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNDQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDEsMHg4MywweDAwLDB4NjAsMHg4MCB9IH0sCi17ICAxNiwgMHhlNDUwLCAwLCB7MHgwOCwweDEyLDB4MGEsMHg0NCwweDAwLDB4OTMsMHgwMCwweDJhLDB4ODAsMHg0YSwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhlNDYwLCAwLCB7MHg2MCwweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDIsMHg2MCwweGMwLDB4MDgsMHgwMCwweDQ2LDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhlNDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwZCwweDZjLDB4MDAsMHhlOCwweDAyLDB4MjIsMHg4MCB9IH0sCi17ICAxNiwgMHhlNDgwLCAwLCB7MHgyYywweGYyLDB4NDMsMHgyYywweDAwLDB4ZmIsMHgwMCwweGJhLDB4YzAsMHgwOCwweGE1LDB4MDIsMHgzYywweDAwLDB4ZWYsMHgwMCB9IH0sCi17ICAxNiwgMHhlNDkwLCAwLCB7MHgzNiwweGMwLDB4NGQsMHhmMCwweDEzLDB4ZmQsMHg1MSwweGZiLDB4MDAsMHgzMiwweGMwLDB4MGMsMHhiMCwweDAzLDB4MjAsMHgwMSB9IH0sCi17ICAxNiwgMHhlNGEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGZjLDB4MDAsMHg3ZSwweDA0LDB4M2YsMHg4MCB9IH0sCi17ICAxNiwgMHhlNGIwLCAwLCB7MHgwZiwweDMxLDB4NDMsMHhmMCwweDAyLDB4ZmYsMHgwMCwweDM3LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDA4LDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhlNGMwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGVmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZTgsMHgxNiB9IH0sCi17ICAxNiwgMHhlNGQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGYyLDB4NDAsMHhmYywweDgwLDB4M2YsMHgyNCB9IH0sCi17ICAxNiwgMHhlNGUwLCAwLCB7MHgwZCwweGQ4LDB4NTMsMHhkNiwweDA0LDB4ZGYsMHgzMiwweDNmLDB4Y2MsMHg0YywweGMwLDB4NDMsMHhmYywweDAwLDB4ZGYsMHg2MCB9IH0sCi17ICAxNiwgMHhlNGYwLCAwLCB7MHgzNywweGMwLDB4MGYsMHhjNCwweDAzLDB4N2MsMHhkMCwweGRmLDB4MjAsMHgzMywweGQ4LDB4MGQsMHhmOCwweDQzLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNTAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxOCwweGU4LDB4ODAsMHhiMCwweDAxLDB4MmUsMHgwOCB9IH0sCi17ICAxNiwgMHhlNTEwLCAwLCB7MHg4OCwweDkwLDB4MDIsMHhlYywweDIwLDB4OGIsMHg3MCwweDJmLDB4Y2MsMHgwOCwweGIzLDB4ODIsMHhmZCwweGUwLDB4YmYsMHg0MCB9IH0sCi17ICAxNiwgMHhlNTIwLCAwLCB7MHgyMiwweGQ4LDB4MGIsMHg5MywweDAyLDB4ZmQsMHhjMCwweGFmLDB4MTAsMHgyOCwweGYwLDB4MDgsMHhiYywweDEyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHhlNTMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4MDAsMHhiMCwweDAwLDB4MmUsMHgwMSB9IH0sCi17ICAxNiwgMHhlNTQwLCAwLCB7MHgwYSwweDEyLDB4ODIsMHhlYywweDgwLDB4YjMsMHgwMCwweDJjLDB4YzgsMHgwYSwweDAwLDB4MzIsMHg4YywweDAwLDB4YTMsMHgzMCB9IH0sCi17ICAxNiwgMHhlNTUwLCAwLCB7MHgyMCwweGQyLDB4MDksMHgwMCwweDAyLDB4OGMsMHg4MCwweDgzLDB4MDAsMHgyOCwweGQ4LDB4MGIsMHgzNCwweDEyLDB4ZjIsMHgwMSB9IH0sCi17ICAxNiwgMHhlNTYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGFjLDB4MDEsMHhiOCwweDAyLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHhlNTcwLCAwLCB7MHgwYSwweDkwLDB4MTIsMHhlYywweDEwLDB4OGIsMHgwMCwweDJlLDB4YzAsMHgwYSwweGIwLDB4MDAsMHhlYywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhlNTgwLCAwLCB7MHgyMiwweGMxLDB4MGIsMHg5MiwweDAyLDB4Y2MsMHgwMSwweGFiLDB4MDAsMHgyYSwweGMwLDB4MDIsMHhiMCwweDAyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHhlNTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGUwLDB4MDAsMHhmYSwweDBjLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhlNWEwLCAwLCB7MHgwZiwweGEwLDB4MTMsMHhlZSwweDIwLDB4ZGIsMHgwMCwweDNlLDB4YzAsMHgyZSwweDg4LDB4NTMsMHhlYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhlNWIwLCAwLCB7MHhiMiwweGMwLDB4OGYsMHhhYywweDgzLDB4YWMsMHgwOCwweGRiLDB4MDAsMHgxYSwweGMwLDB4NGYsMHhiMCwweDAzLDB4YzAsMHgwNCB9IH0sCi17ICAxNiwgMHhlNWMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI4LDB4MDAsMHhmZSwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhlNWQwLCAwLCB7MHgyZCwweGUwLDB4MDMsMHhmZSwweDgwLDB4N2YsMHgwMCwweDNmLDB4YzAsMHgwZCwweGQyLDB4MDMsMHhmYywweDAwLDB4YmYsMHgwMSB9IH0sCi17ICAxNiwgMHhlNWUwLCAwLCB7MHgzZSwweGMwLDB4MGQsMHhjOCwweDAzLDB4ZmMsMHgwYywweGZmLDB4MDAsMHgzZiwweGMwLDB4MDksMHhmMCwweDIzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhlNWYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGE0LDB4MDAsMHhmYSwweDQwLDB4MzIsMHhjMSB9IH0sCi17ICAxNiwgMHhlNjAwLCAwLCB7MHgwZiwweGEwLDB4MDMsMHgyOSwweDA4LDB4ZGIsMHgwMCwweDNlLDB4YzAsMHgwZSwweDg1LDB4MDMsMHhlYywweDIwLDB4Y2IsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjEwLCAwLCB7MHgzYSwweGMwLDB4MGUsMHhhNCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzYSwweGMyLDB4MGUsMHhiMCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhlNjIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJjLDB4MDAsMHhiYSwweDYwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhlNjMwLCAwLCB7MHgwYiwweGEwLDB4MDIsMHgwOCwweDAwLDB4YWYsMHgwMCwweDJmLDB4ZDAsMHgwYiwweGI1LDB4MDIsMHhmZSwweDAyLDB4OGYsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjQwLCAwLCB7MHgyZiwweGMwLDB4MGQsMHg4MCwweDBhLDB4M2MsMHgwMCwweGI3LDB4MDAsMHgyMywweGMyLDB4MDUsMHhmMCwweDIyLDB4MzYsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNCwweDQwLDB4MDAsMHhiMSwweDg4LDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjYwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHgwYywweDAwLDB4ODMsMHgwMCwweDJlLDB4YzgsMHgwYiwweDA4LDB4MDYsMHg0ZCwweDQwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjcwLCAwLCB7MHgyMCwweGMwLDB4MDgsMHgzMCwweDA2LDB4MGMsMHgwOCwweDkzLDB4MjAsMHgwYSwweGUwLDB4NGEsMHgzMCwweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxMCwweDVhLDB4MDAsMHhiNSwweDkwLDB4MjEsMHgyMCB9IH0sCi17ICAxNiwgMHhlNjkwLCAwLCB7MHgwYiwweDU4LDB4NDIsMHgzZSwweDAwLDB4YTcsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDY5LDB4MDIsMHhkZSwweDQwLDB4ODcsMHg5MiB9IH0sCi17ICAxNiwgMHhlNmEwLCAwLCB7MHgyZCwweGUwLDB4MDksMHgxOCwweDAyLDB4OWUsMHgwMSwweGI3LDB4ODAsMHgyOSwweGUwLDB4MDMsMHg3MCwweDAyLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhlNmIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDQ0LDB4MDAsMHhmMSwweDAxLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNmMwLCAwLCB7MHg1ZiwweDE4LDB4MDMsMHgwYywweDEwLDB4ODMsMHgwMCwweDNjLDB4YzQsMHgwZSwweDA0LDB4MDMsMHhlYywweDAwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhlNmQwLCAwLCB7MHgzMCwweGM0LDB4MGMsMHgzMSwweDAzLDB4OGMsMHgwMCwweGYzLDB4MDAsMHgzOCwweGM4LDB4MGUsMHgzMSwweDAzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhlNmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGJjLDB4MDAsMHhmZCwweDA0LDB4YmYsMHgwNCB9IH0sCi17ICAxNiwgMHhlNmYwLCAwLCB7MHg0ZiwweDU4LDB4MDMsMHhmOCwweDA4LDB4ZWYsMHgwOCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDEsMHhmYywweDAwLDB4ZmYsMHg0YyB9IH0sCi17ICAxNiwgMHhlNzAwLCAwLCB7MHgzZiwweGMxLDB4MGYsMHhkMCwweDAzLDB4M2MsMHgwMCwweGY3LDB4MDAsMHgzNywweGMyLDB4MGQsMHg3MiwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhlNzEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGUyLDB4MDAsMHhkYiwweDAwLDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHhlNzIwLCAwLCB7MHg0ZCwweGE4LDB4MDMsMHgyYywweDA4LDB4ZmIsMHgwMCwweDdlLDB4YzgsMHg4ZiwweGIwLDB4MGIsMHg2ZiwweDQ1LDB4ZWIsMHhjMiB9IH0sCi17ICAxNiwgMHhlNzMwLCAwLCB7MHgzNiwweGMwLDB4MDcsMHhhMCwweDAzLDB4ZWYsMHgyMCwweGNiLDB4NTAsMHhiMiwweGMwLDB4MGMsMHg3OSwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhlNzQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxOSwweDk4LDB4MDAsMHg4ZiwweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHhlNzUwLCAwLCB7MHgwYiwweDYwLDB4MDMsMHg1YywweDAwLDB4MzcsMHgwMCwweDJkLDB4ZDIsMHgwYiwweDMwLDB4MDIsMHgwYywweGE4LDB4ODcsMHgyNCB9IH0sCi17ICAxNiwgMHhlNzYwLCAwLCB7MHgyMSwweGQwLDB4MDksMHg3MCwweDAyLDB4ZGQsMHg4OCwweDg3LDB4MmEsMHgyMywweGU4LDB4MDgsMHg3MCwweDAyLDB4MzIsMHgwNCB9IH0sCi17ICAxNiwgMHhlNzcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweGI2LDB4MDAsMHg5NywweDgwLDB4MjEsMHhlMCB9IH0sCi17ICAxNiwgMHhlNzgwLCAwLCB7MHgwYiwweDY4LDB4MDIsMHgxZSwweDAwLDB4YjcsMHg4MCwweDJkLDB4ZTgsMHg4YiwweDQ4LDB4ODIsMHgxZSwweDgwLDB4YTMsMHg4NCB9IH0sCi17ICAxNiwgMHhlNzkwLCAwLCB7MHgyNSwweGU4LDB4MGIsMHg2OCwweDAyLDB4Y2UsMHgwMiwweDg3LDB4ODAsMHgyMSwweGUwLDB4MDgsMHg3YSwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlN2EwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwNCwweGNjLDB4MDgsMHg4MywweDgyLDB4MjAsMHhlMCB9IH0sCi17ICAxNiwgMHhlN2IwLCAwLCB7MHg4YiwweDJhLDB4MDIsMHg0OCwweDQwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4ODIsMHgwYywweDAwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhlN2MwLCAwLCB7MHgwMCwweGMxLDB4MDksMHgzMSwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDBhLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhlN2QwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGU4LDB4MDAsMHhkYSwweGEwLDB4MzIsMHhhOCB9IH0sCi17ICAxNiwgMHhlN2UwLCAwLCB7MHg4ZCwweGE4LDB4MDMsMHgzYiwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwZiwweGU0LDB4MDMsMHg2OCwweDAwLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHhlN2YwLCAwLCB7MHgzNiwweDgwLDB4MGYsMHhlNCwweDAzLDB4ZTgsMHgwMCwweGNhLDB4MDAsMHgzMiwweDgwLDB4MmMsMHhhMCwweDAzLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhlODAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMSwweGEwLDB4MTAsMHhmOCwweDAwLDB4YmUsMHgyMCB9IH0sCi17ICAxNiwgMHhlODEwLCAwLCB7MHg4ZiwweGMxLDB4MDMsMHhlMCwweDI0LDB4ZjgsMHgwMCwweDNlLDB4MTAsMHgwZiwweDg0LDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMSB9IH0sCi17ICAxNiwgMHhlODIwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDEsMHhiZSwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhlODMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGE0LDB4MDAsMHhmOSwweDQwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhlODQwLCAwLCB7MHhjZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4YzksMHgwMCwweDBlLDB4NTAsMHgwZiwweDFhLDB4MDMsMHgyNiwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhlODUwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDgxLDB4ZTQsMHgwMCwweGY5LDB4ODAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHhlODYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDQsMHhiMSwweDA0LDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhlODcwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YTksMHgwMCwweDJlLDB4NTMsMHgwYiwweDkyLDB4MGEsMHgyNiwweDQ4LDB4YjksMHgwNCB9IH0sCi17ICAxNiwgMHhlODgwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4ODAsMHgwMiwweDUwLDB4MDgsMHg5MCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhlODkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgwNSwweDI0LDB4MDAsMHhiZCwweDAwLDB4MjMsMHg0MCB9IH0sCi17ICAxNiwgMHhlOGEwLCAwLCB7MHgwYiwweGQwLDB4MTIsMHhjNCwweDAwLDB4ODksMHgwMiwweDJlLDB4NDAsMHgwYiwweDkwLDB4MjIsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhlOGIwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGIxLDB4MjAsMHgyMCwweDQwLDB4NjgsMHg5MCwweDIyLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHhlOGMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxNCwweDE0LDB4MDAsMHhiZiwweDEyLDB4YTEsMHg0MCB9IH0sCi17ICAxNiwgMHhlOGQwLCAwLCB7MHgwYiwweDUwLDB4MDIsMHhjNCwweDAwLDB4YTEsMHgyMCwweDJjLDB4NDgsMHgwYiwweDEyLDB4MDIsMHgwNCwweDEwLDB4YjEsMHgxMSB9IH0sCi17ICAxNiwgMHhlOGUwLCAwLCB7MHgyYywweDQ4LDB4MGIsMHgxMywweDIyLDB4YzQsMHgwMCwweGIxLDB4NDAsMHgyMCwweDVhLDB4MDgsMHgxMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhlOGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhmOCwweDQwLDB4MzIsMHgxNCB9IH0sCi17ICAxNiwgMHhlOTAwLCAwLCB7MHgwZiwweDQ1LDB4MDMsMHhlMSwweDQwLDB4YzgsMHg1MCwweDNlLDB4MTUsMHg4ZiwweDg1LDB4MDMsMHgyMSwweGU4LDB4ZjgsMHg2OCB9IH0sCi17ICAxNiwgMHhlOTEwLCAwLCB7MHgzZSwweDE0LDB4MGYsMHg4NCwweDAzLDB4ZTEsMHhlMCwweGYwLDB4MjgsMHgzMiwweGE4LDB4Y2MsMHg4MCwweDIzLDB4ZWUsMHgwMyB9IH0sCi17ICAxNiwgMHhlOTIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxNSwweGM0LDB4MTAsMHhmOSwweDIwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhlOTMwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhmNCwweDAwLDB4ZjksMHgxMCwweDNlLDB4NDQsMHgwZiwweGQxLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgyMCB9IH0sCi17ICAxNiwgMHhlOTQwLCAwLCB7MHgzZSwweDQ0LDB4MGYsMHhkMywweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHhiZSwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhlOTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGU0LDB4MDAsMHhmZCwweDEwLDB4MzMsMHg0MCB9IH0sCi17ICAxNiwgMHhlOTYwLCAwLCB7MHgwYywweGQwLDB4MDMsMHgyNCwweDAwLDB4ZDksMHgwMCwweDNmLDB4NDAsMHg0YywweGQwLDB4MDMsMHhmNiwweDAwLDB4ZmQsMHg5MCB9IH0sCi17ICAxNiwgMHhlOTcwLCAwLCB7MHgzYSwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTYsMHhhMCwweGZkLDB4YTgsMHgzNywweDY4LDB4MGMsMHhkOCwweDgzLDB4MjYsMHgwMCB9IH0sCi17ICAxNiwgMHhlOTgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUwLDB4MDgsMHhjOCwweGEwLDB4MjIsMHgwMCB9IH0sCi17ICAxNiwgMHhlOTkwLCAwLCB7MHgwOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4ODgsMHgwMCwweDJlLDB4MDAsMHgwYywweDgwLDB4MTIsMHhlMCwweDAwLDB4YjgsMHg4MCB9IH0sCi17ICAxNiwgMHhlOWEwLCAwLCB7MHgyMiwweDAwLDB4MGQsMHgwYSwweDAyLDB4ZTMsMHg4MCwweGIwLDB4YzAsMHgyMCwweDM0LDB4MDgsMHg4NCwweDAzLDB4NGUsMHgwNCB9IH0sCi17ICAxNiwgMHhlOWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDg0LDB4MDksMHhhMSwweDAwLDB4MjAsMHg0MSB9IH0sCi17ICAxNiwgMHhlOWMwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4OTEsMHgwMCwweDJjLDB4NDAsMHgwOCwweDEwLDB4MDIsMHhjNSwweDAwLDB4YjEsMHg2MCB9IH0sCi17ICAxNiwgMHhlOWQwLCAwLCB7MHgyMCwweDQwLDB4MDgsMHgxMCwweGEyLDB4YzQsMHgyMCwweGIxLDB4MjgsMHgyNCwweDRhLDB4MDgsMHgxMCwweDAyLDB4NTIsMHgwMSB9IH0sCi17ICAxNiwgMHhlOWUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNCwweGE0LDB4MDEsMHg4MSwweDAwLDB4YTIsMHg0MCB9IH0sCi17ICAxNiwgMHhlOWYwLCAwLCB7MHhhOCwweDkwLDB4MDAsMHgyNSwweDQwLDB4ODksMHgwMSwweDJjLDB4NDAsMHgwOCwweDk0LDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhlYTAwLCAwLCB7MHgyYSwweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDQsMHgyMiwweDQxLDB4NDgsMHg5MCwweDAyLDB4NDYsMHgwNCB9IH0sCi17ICAxNiwgMHhlYTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNCwweGE1LDB4MjAsMHhlOSwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhlYTIwLCAwLCB7MHg0YywweDEwLDB4MGIsMHgyNiwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAsMHgyYywweDk4LDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhlYTMwLCAwLCB7MHhiMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDQwLDB4MmMsMHg5MCwweDAzLDB4NjgsMHgwNCB9IH0sCi17ICAxNiwgMHhlYTQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMSwweGE0LDB4MDAsMHhlOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhlYTUwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZSwweDlhLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhlYTYwLCAwLCB7MHgzNiwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4ZGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlYTcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGExLDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhlYTgwLCAwLCB7MHgwZiwweDgwLDB4MTMsMHhhMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDQsMHg4YywweDgwLDB4MDMsMHhhMCwweGMwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhlYTkwLCAwLCB7MHgzYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjAsMHgwMCwweGMwLDB4MDksMHgzMiwweDAwLDB4NGMsMHg4MCwweDAxLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhlYWEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHhiZSwweDAwLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhlYWIwLCAwLCB7MHgwYiwweGUwLDB4MDIsMHg4OCwweDAwLDB4YWEsMHgwMCwweDAzLDB4YTAsMHgwYSwweGU2LDB4MDIsMHhmYSwweDAwLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlYWMwLCAwLCB7MHgzMiwweDgwLDB4MGIsMHhhMCwweDAyLDB4MjgsMHgwMCwweDhlLDB4ODAsMHhhMywweDgwLDB4MjgsMHgyMCwweDAyLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlYWQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZjLDB4MDAsMHhiMywweDQ4LDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhlYWUwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHgwYywweDAwLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDM0LDB4ODIsMHg4ZSwweDA0LDB4OTksMHgwMCB9IH0sCi17ICAxNiwgMHhlYWYwLCAwLCB7MHgwYSwweGMwLDB4MWIsMHgzMCwweDAyLDB4MGMsMHgwMiwweDkwLDB4NTAsMHgyMCwweDYwLDB4MDgsMHgzMCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlYjAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMSwweDFjLDB4ODAsMHhiZCwweDBhLDB4MjEsMHg0OCB9IH0sCi17ICAxNiwgMHhlYjEwLCAwLCB7MHgwYiwweDUyLDB4MDIsMHg5YywweDQwLDB4YTMsMHhhMCwweDIwLDB4ODAsMHgwYSwweDYwLDB4MDIsMHhjZSwweDAwLDB4ODUsMHgyMCB9IH0sCi17ICAxNiwgMHhlYjIwLCAwLCB7MHgyMSwweGM0LDB4MGIsMHg3YSwweDA2LDB4MWUsMHg4MCwweDk1LDB4MjAsMHgyMSwweDkwLDB4MDgsMHg3MCwweDAyLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhlYjMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwOCwweDFlLDB4ODAsMHhmNywweDgwLDB4YjEsMHg3OSB9IH0sCi17ICAxNiwgMHhlYjQwLCAwLCB7MHgwZiwweGRiLDB4MDIsMHgzZSwweDIwLDB4YzcsMHhhMCwweGIxLDB4NjAsMHhjYywweDc4LDB4MTMsMHg5NiwweDAwLDB4ZjEsMHhmMCB9IH0sCi17ICAxNiwgMHhlYjUwLCAwLCB7MHgzOSwweGUyLDB4MGYsMHg3YiwweDEzLDB4MGYsMHgwMCwweGQ0LDB4YTAsMHgzMSwweDYwLDB4MmMsMHg3MCwweDAzLDB4MmEsMHgwMiB9IH0sCi17ICAxNiwgMHhlYjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxNSwweGFjLDB4MDAsMHhmNywweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhlYjcwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlZCwweDgwLDB4ZmIsMHgxMCwweDNlLDB4NDAsMHgwYiwweGIwLDB4MjMsMHhlYywweDAwLDB4ZjksMHgyMCB9IH0sCi17ICAxNiwgMHhlYjgwLCAwLCB7MHgzYSwweGQ4LDB4MGYsMHhiMCwweDBiLDB4ZWQsMHg4MSwweGVkLDB4MTAsMHgzZSwweDgwLDB4MGYsMHgzMCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhlYjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweGJlLDB4MjAsMHhlZSwweDgwLDB4MzMsMHg2MCB9IH0sCi17ICAxNiwgMHhlYmEwLCAwLCB7MHgwYywweGQ4LDB4ODMsMHgxZSwweDAwLDB4NmYsMHg4MCwweDMzLDB4ZTAsMHgwZiwweGI4LDB4MTEsMHgzMiwweDA0LDB4ZjUsMHg4MCB9IH0sCi17ICAxNiwgMHhlYmIwLCAwLCB7MHgzMywweGUwLDB4MGYsMHhmOCwweDgzLDB4MmYsMHg0MCwweGZlLDB4ODAsMHhiMywweGUwLDB4MGMsMHhmOCwweDAzLDB4MTAsMHgwMCB9IH0sCi17ICAxNiwgMHhlYmMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxOCwweDljLDB4MDAsMHhiYywweDAwLDB4YTEsMHg0NCB9IH0sCi17ICAxNiwgMHhlYmQwLCAwLCB7MHgwOCwweDEwLDB4MDMsMHg1YywweDAwLDB4OGYsMHgwMCwweDIxLDB4ODAsMHgwYiwweGVhLDB4MjIsMHgxYywweDgwLDB4YjUsMHgwMSB9IH0sCi17ICAxNiwgMHhlYmUwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHhmMCwweDAyLDB4MWUsMHg4MCwweGJlLDB4MDAsMHgyMywweDgwLDB4MmEsMHg3MCwweDAyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhlYmYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MjAsMHhhNywweDAwLDB4MjMsMHg0MCB9IH0sCi17ICAxNiwgMHhlYzAwLCAwLCB7MHgwYiwweDUwLDB4MGEsMHgzYywweDAwLDB4YTcsMHgwMCwweDI1LDB4YzAsMHgwYSwweDQzLDB4MDIsMHgxMCwweDAwLDB4YjUsMHgwMCB9IH0sCi17ICAxNiwgMHhlYzEwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHg3MCwweDgyLDB4MWMsMHg4MCwweGI0LDB4MDAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MDQsMHgwMCB9IH0sCi17ICAxNiwgMHhlYzIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwNCwweDhlLDB4MDQsMHhiMywweDAwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhlYzMwLCAwLCB7MHgwOSwweDE0LDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDI0LDB4ODIsMHgwNCwweDAwLDB4YjEsMHgwMCB9IH0sCi17ICAxNiwgMHhlYzQwLCAwLCB7MHgyMCwweGMwLDB4OGIsMHgzYSwweDAyLDB4MmMsMHgwMSwweGIwLDB4MDAsMHgyMCwweDgwLDB4MGEsMHgzMCwweDAyLDB4MWEsMHgwNCB9IH0sCi17ICAxNiwgMHhlYzUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweDllLDB4MDAsMHhlYiwweDA0LDB4MzMsMHg0MCB9IH0sCi17ICAxNiwgMHhlYzYwLCAwLCB7MHgyZCwweGRjLDB4MDMsMHgxZCwweDYwLDB4ZWYsMHgwMCwweDMyLDB4MDAsMHhjZiwweDlhLDB4MDMsMHgyOCwweDAwLDB4ZmQsMHgwMCB9IH0sCi17ICAxNiwgMHhlYzcwLCAwLCB7MHgzMywweGMxLDB4OGIsMHhmYywweDBiLDB4M2MsMHgwMCwweGZjLDB4MDAsMHgzMiwweDgwLDB4MGMsMHg5MCwweDAzLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhlYzgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGFjLDB4MTAsMHhmOCwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhlYzkwLCAwLCB7MHgwZSwweDk4LDB4MjMsMHhhYywweDA0LDB4ZmIsMHgwMCwweDNjLDB4MDAsMHgwZiwweDg0LDB4MjAsMHhlZCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhlY2EwLCAwLCB7MHgzZSwweGMwLDB4NGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZkLDB4MDAsMHgzZSwweDgwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCB9IH0sCi17ICAxNiwgMHhlY2IwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjEsMHgxMCwweGZjLDB4MDAsMHhjZiwweDgwLDB4MzMsMHg0MCB9IH0sCi17ICAxNiwgMHhlY2MwLCAwLCB7MHgwYywweGQwLDB4ODMsMHhmYywweDAwLDB4ZWYsMHgwMCwweDNmLDB4NDAsMHgwYywweGYxLDB4NDEsMHgzMCwweDEwLDB4Y2QsMHgwMCB9IH0sCi17ICAxNiwgMHhlY2QwLCAwLCB7MHgzZiwweGMwLDB4MDAsMHg3MCwweDEzLDB4M2MsMHgwMCwweGU0LDB4MDAsMHhiMSwweGQwLDB4MGMsMHgxMCwweDAzLDB4MjAsMHgwNCB9IH0sCi17ICAxNiwgMHhlY2UwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTEsMHgwNCwweDJjLDB4MDAsMHg4YSwweGU0LDB4MmEsMHg0MCB9IH0sCi17ICAxNiwgMHhlY2YwLCAwLCB7MHgyOCwweDkwLDB4MDIsMHhlYywweDAwLDB4OGIsMHgwMCwweDNlLDB4MDIsMHgwYSwweDgwLDB4MDIsMHgyYywweDgyLDB4ODksMHgwNCB9IH0sCi17ICAxNiwgMHhlZDAwLCAwLCB7MHgyZSwweGMxLDB4MGEsMHhiMCwweDBhLDB4MmMsMHgwMCwweDg5LDB4MDIsMHgyMiwweGYyLDB4MmEsMHg5OCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDIsMHg4MCwweDE0LDB4MmEsMHg0MCB9IH0sCi17ICAxNiwgMHhlZDIwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHhlYywweDA4LDB4YWIsMHgwNCwweDJlLDB4ODQsMHgwOCwweDEwLDB4ODIsMHg4MCwweDEwLDB4ODksMHgwMyB9IH0sCi17ICAxNiwgMHhlZDMwLCAwLCB7MHgyYywweGMwLDB4NGEsMHhiMCwweDIyLDB4MmMsMHgwMCwweGFhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHg5MSwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxNCwweDJjLDB4MDAsMHg4MCwweDAwLDB4MjgsMHg0MCB9IH0sCi17ICAxNiwgMHhlZDUwLCAwLCB7MHgwOCwweDExLDB4MDIsMHhlYywweDAwLDB4ODMsMHgwMCwweDJjLDB4ODEsMHgwYSwweDAwLDB4NWEsMHg4OCwweDAwLDB4MDEsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDYwLCAwLCB7MHgyYywweGMwLDB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MGEsMHgxMCwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhlZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhjOSwweDAwLDB4M2EsMHg0MCB9IH0sCi17ICAxNiwgMHhlZDgwLCAwLCB7MHgwYywweGQ0LDB4MDMsMHhmYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4NDAsMHgwYywweDkyLDB4MDMsMHhhMCwweDAwLDB4NGQsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDkwLCAwLCB7MHgzZiwweGMwLDB4MGUsMHhmMCwweDMzLDB4M2MsMHg4MCwweGU4LDB4MDAsMHgzMiwweGMwLDB4MGMsMHg5MCwweDAzLDB4MjAsMHgwMyB9IH0sCi17ICAxNiwgMHhlZGEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGZjLDB4MDAsMHhmYywweDAwLDB4M2QsMHg0MCB9IH0sCi17ICAxNiwgMHhlZGIwLCAwLCB7MHgwZiwweDUwLDB4MDMsMHhmYywweDAyLDB4M2YsMHgwNCwweDNiLDB4MDEsMHg0ZiwweGM0LDB4MTMsMHg3MCwweDAwLDB4ZmQsMHgwMCB9IH0sCi17ICAxNiwgMHhlZGMwLCAwLCB7MHgzZiwweGMwLDB4MWYsMHhmMCwweDAxLDB4ZmMsMHg0MCwweGZjLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhkMCwweDEzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhlZGQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGY4LDB4ZTAsMHhmZiwweDgwLDB4M2QsMHhjMCB9IH0sCi17ICAxNiwgMHhlZGUwLCAwLCB7MHgwZCwweGYzLDB4ODIsMHhmMCwweDgwLDB4ZmYsMHg0MCwweDMxLDB4Y2IsMHgwYywweGYzLDB4MDMsMHhmZCwweDA0LDB4ZWYsMHhjMSB9IH0sCi17ICAxNiwgMHhlZGYwLCAwLCB7MHgzMywweGUwLDB4MGYsMHg3OSwweDAzLDB4ZmUsMHgwMCwweGNmLDB4NDIsMHgzMywweGYwLDB4NGMsMHhmOCwweDAzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZTAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgxMCwweGU5LDB4MDgsMHhiOSwweDgxLDB4MmYsMHhmMCB9IH0sCi17ICAxNiwgMHhlZTEwLCAwLCB7MHgwOCwweGY0LDB4NTIsMHhlOSwweDIwLDB4YmYsMHg0MCwweDIzLDB4ZjAsMHgwYSwweGYzLDB4MDIsMHhmZCwweDA4LDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhlZTIwLCAwLCB7MHgzNiwweGUwLDB4MGIsMHg4MCwweDIyLDB4ZTgsMHg4MCwweDhmLDB4NDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDgyLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhlZTMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweGNjLDB4MDAsMHhiMSwweDgwLDB4MmMsMHhjNSB9IH0sCi17ICAxNiwgMHhlZTQwLCAwLCB7MHgwOSwweDMyLDB4NDIsMHhjOCwweGMwLDB4YjMsMHgzMSwweDIwLDB4YzEsMHgwOCwweDMyLDB4MDIsMHhjYywweGQ0LDB4YmIsMHgyMCB9IH0sCi17ICAxNiwgMHhlZTUwLCAwLCB7MHg2OCwweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgyMCwweDkzLDB4NjAsMHgyMCwweDg4LDB4MDgsMHgzMiwweDAyLDB4MzIsMHgwMSB9IH0sCi17ICAxNiwgMHhlZTYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgxNSwweGEwLDB4MDAsMHhiYiwweDgwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhlZTcwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHhlYSwweDAwLDB4YmIsMHgwMCwweDYyLDB4YzEsMHgwYSwweGIwLDB4MDIsMHhjYywweDAwLDB4YWIsMHgwMCB9IH0sCi17ICAxNiwgMHhlZTgwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHhhMCwweDAwLDB4ZTgsMHgwMCwweDgzLDB4MDAsMHgyMiwweGMxLDB4MDgsMHgzMCwweDAyLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhlZTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweGU4LDB4OTAsMHhmYiwweDgwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhlZWEwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHhlMiwweDEwLDB4ZmIsMHgwMCwweDMyLDB4YzAsMHg0YywweGIwLDB4MTMsMHhlYywweDAwLDB4ZTksMHg1NCB9IH0sCi17ICAxNiwgMHhlZWIwLCAwLCB7MHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTYsMHgwMCwweGNiLDB4MDAsMHhiMiwweDQwLDB4MGMsMHhiMCwweDAzLDB4MDQsMHgwNCB9IH0sCi17ICAxNiwgMHhlZWMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI4LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhlZWQwLCAwLCB7MHg4ZiwweGYwLDB4MDMsMHhmMCwweDAwLDB4ZjcsMHgwMiwweGJmLDB4YzEsMHgwZiwweGYwLDB4MjMsMHhmYywweDAwLDB4ZGYsMHgwNiB9IH0sCi17ICAxNiwgMHhlZWUwLCAwLCB7MHgzNywweGMwLDB4OGYsMHhjOSwweDA3LDB4ZmEsMHg5MiwweGZmLDB4MDQsMHgzZiwweDUwLDB4MmYsMHhmMCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhlZWYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgxMCwweGFjLDB4MDAsMHhjOSwweDAwLDB4M2UsMHhjMiB9IH0sCi17ICAxNiwgMHhlZjAwLCAwLCB7MHgwZSwweGIwLDB4MjMsMHhlNCwweDAwLDB4ZWIsMHgwMCwweDNhLDB4YzgsMHgwZSwweGIwLDB4MDMsMHhlYywweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhlZjEwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhiNCwweDAzLDB4YTQsMHgwMCwweGZiLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhiMCwweDgzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHhlZjIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDI4LDB4MDAsMHg4YiwweDc0LDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHhlZjMwLCAwLCB7MHgwOCwweGYwLDB4MDIsMHhlNCwweDAwLDB4OGYsMHgwMCwweDIxLDB4ZjAsMHgwOCwweGYwLDB4MDIsMHhmYywweDEwLDB4ZDMsMHgwMCB9IH0sCi17ICAxNiwgMHhlZjQwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHg5MCwweDEyLDB4MmMsMHgwMCwweGVmLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiNiwweDAyLDB4ZjYsMHgwMCB9IH0sCi17ICAxNiwgMHhlZjUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweDQ4LDB4MDAsMHhhMywweDAwLDB4MmMsMHhjNCB9IH0sCi17ICAxNiwgMHhlZjYwLCAwLCB7MHgwYSwweDMwLDB4MDIsMHhjMCwweDAwLDB4YTMsMHgwMCwweDY4LDB4ZjAsMHgwYSwweDMwLDB4MTIsMHhjYywweDA0LDB4YTIsMHgwMCB9IH0sCi17ICAxNiwgMHhlZjcwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4ZWMsMHgwMCwweGIzLDB4MDEsMHgyZSwweGMwLDB4MGIsMHgzNCwweDAyLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhlZjgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjAsMHgwMSwweDBjLDB4MDAsMHg4NywweDgwLDB4MmQsMHhlOCB9IH0sCi17ICAxNiwgMHhlZjkwLCAwLCB7MHgwOCwweDc4LDB4NDIsMHhkYSwweDAwLDB4ODcsMHg4MCwweDI1LDB4ZTAsMHgwOCwweDc5LDB4MDIsMHhjZSwweDAwLDB4OTYsMHg4MCB9IH0sCi17ICAxNiwgMHhlZmEwLCAwLCB7MHgyZCwweGUwLDB4MGIsMHhkOSwweDAyLDB4ZGUsMHgwMCwweGE3LDB4ODAsMHgyZCwweGUwLDB4MGIsMHg3OCwweDAyLDB4ZmMsMHgwMCB9IH0sCi17ICAxNiwgMHhlZmIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4NDAsMHhlMywweDEwLDB4M2MsMHhjMCB9IH0sCi17ICAxNiwgMHhlZmMwLCAwLCB7MHgwYSwweDM4LDB4MDMsMHhlOCwweDAwLDB4ZWIsMHgwMCwweDM4LDB4YzIsMHgwYSwweDMwLDB4MDMsMHhjYywweDAwLDB4ZTMsMHg0MCB9IH0sCi17ICAxNiwgMHhlZmQwLCAwLCB7MHgzYywweGMwLDB4MGYsMHgzNCwweDAzLDB4Y2QsMHgwMCwweGYzLDB4MjAsMHgzYywweDg4LDB4MGYsMHgzMCwweDAzLDB4ZDIsMHgwMiB9IH0sCi17ICAxNiwgMHhlZmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGI0LDB4ODAsMHhmZiwweDA0LDB4M2YsMHhjOCB9IH0sCi17ICAxNiwgMHhlZmYwLCAwLCB7MHgwZiwweGYwLDB4ODMsMHhmOCwweDQwLDB4ZmYsMHgxOCwweDNiLDB4YzAsMHgwZiwweGY0LDB4ODMsMHhmYywweDAwLDB4ZWUsMHgwMiB9IH0sCi17ICAxNiwgMHhmMDAwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4M2MsMHgwMCwweGVmLDB4MDgsMHgzZiwweDgwLDB4MGYsMHhmMCwweDEzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhmMDEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGU4LDB4MDAsMHhjYiwweDAwLDB4M2UsMHhmMiB9IH0sCi17ICAxNiwgMHhmMDIwLCAwLCB7MHg0ZCwweGIyLDB4MTMsMHhlOCwweDA0LDB4Y2IsMHgwMSwweDMyLDB4ZjgsMHg0ZCwweGIyLDB4MTMsMHg2ZCwweDIwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhmMDMwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHgzMCwweDAzLDB4MjQsMHgwMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4OGYsMHhiOCwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhmMDQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgxMSwweDhjLDB4MDAsMHg4NiwweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhmMDUwLCAwLCB7MHgwOCwweDczLDB4MDIsMHhkOCwweDEyLDB4ODcsMHgzMCwweDIwLDB4Y2IsMHgwOCwweGYyLDB4MDIsMHgxZCwweDA1LDB4YjUsMHgwMCB9IH0sCi17ICAxNiwgMHhmMDYwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHg2MCwweDAzLDB4NTAsMHgxMCwweGI3LDB4MDksMHgyZCwweGMwLDB4MGIsMHhmMCwweDAyLDB4MzIsMHgwNCB9IH0sCi17ICAxNiwgMHhmMDcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MDAsMHg4NywweDgwLDB4MmQsMHhlNCB9IH0sCi17ICAxNiwgMHhmMDgwLCAwLCB7MHgwOSwweDdhLDB4MDIsMHhjZSwweDAxLDB4ODcsMHg4MCwweDIxLDB4ZWMsMHgwOSwweDc4LDB4MDIsMHg1ZSwweDgwLDB4YjcsMHhjMCB9IH0sCi17ICAxNiwgMHhmMDkwLCAwLCB7MHgyZCwweGUwLDB4MGIsMHhmOCwweDAyLDB4MWUsMHgwMCwweGI3LDB4YTAsMHgyZCwweDYwLDB4MGIsMHg3OCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMGEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGVlLDB4MDAsMHg4MiwweDgwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhmMGIwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHhlYywweDAwLDB4ODMsMHgwMCwweGEwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHg4MCB9IH0sCi17ICAxNiwgMHhmMGMwLCAwLCB7MHgyYywweGMxLDB4MGIsMHgzMCwweDAyLDB4NGUsMHgwMCwweGIzLDB4MDAsMHgyYywweGYxLDB4MGIsMHgzMCwweDBhLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhmMGQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGJhLDB4ODAsMHhjNiwweDAwLDB4M2UsMHg4MCB9IH0sCi17ICAxNiwgMHhmMGUwLCAwLCB7MHgwZCwweGEwLDB4MDMsMHhmOCwweDQwLDB4Y2EsMHgwMCwweDMyLDB4ODAsMHgwZCwweGEwLDB4MTMsMHg2OCwweDAwLDB4ZmUsMHgwMiB9IH0sCi17ICAxNiwgMHhmMGYwLCAwLCB7MHg3ZSwweDgwLDB4MGYsMHhlZCwweDgzLDB4MzksMHgxMCwweGZhLDB4MDAsMHgzZiwweDhjLDB4MGYsMHhhMCwweDAzLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhmMTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MTIsMHhmOCwweDkwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhmMTEwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwNSwweDNlLDB4MDAsMHgwZSwweDAwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHg4MCB9IH0sCi17ICAxNiwgMHhmMTIwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHg2MCwweGY4LDB4MDAsMHg3ZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmMTMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhjOSwweDgwLDB4MzIsMHg2NCB9IH0sCi17ICAxNiwgMHhmMTQwLCAwLCB7MHgwZiwweDkwLDB4NDMsMHhlNCwweDA2LDB4YzEsMHgwNCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMCB9IH0sCi17ICAxNiwgMHhmMTUwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHg5MCwweDAzLDB4MjQsMHgwMCwweGMxLDB4MDEsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHhmMTYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweGMwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhmMTcwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NTAsMHgxYiwweDkwLDB4MjIsMHgyNCwweDAwLDB4ODEsMHgwMCB9IH0sCi17ICAxNiwgMHhmMTgwLCAwLCB7MHgyMiwweDQwLDB4MGIsMHg5MCwweDIyLDB4MjQsMHgwOCwweGM5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHg5NCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMTkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg5OSwweDIwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhmMWEwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDJhLDB4NTgsMHgwYiwweDkwLDB4MDIsMHg4NCwweDAwLDB4YTksMHgwMCB9IH0sCi17ICAxNiwgMHhmMWIwLCAwLCB7MHgyMiwweDQwLDB4MGIsMHgxMCwweDBhLDB4MDQsMHgwMCwweDk5LDB4MDIsMHgyMiwweGMxLDB4MDgsMHg5MCwweDgyLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHhmMWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4MDAsMHg5MSwweDAyLDB4YTAsMHhjOCB9IH0sCi17ICAxNiwgMHhmMWQwLCAwLCB7MHgwYiwweDEyLDB4MDIsMHgwNCwweDgwLDB4ODEsMHgyMiwweDIwLDB4NDgsMHg5YiwweDEyLDB4MDIsMHgwNCwweDkwLDB4ODksMHgwMSB9IH0sCi17ICAxNiwgMHhmMWUwLCAwLCB7MHgyMCwweDQwLDB4MGIsMHgxMCwweDAyLDB4MDQsMHgwMiwweDgxLDB4MjIsMHgyMiwweDQwLDB4MDgsMHgxMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhmMWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDIsMHhkYSwweDAxLDB4MzIsMHgwMSB9IH0sCi17ICAxNiwgMHhmMjAwLCAwLCB7MHgwZiwweDg1LDB4MDMsMHhhMSwweDQwLDB4YzAsMHg1MCwweDNhLDB4MDEsMHg4YiwweDg1LDB4MjMsMHhhMSwweDQ0LDB4ZTgsMHg1MCB9IH0sCi17ICAxNiwgMHhmMjEwLCAwLCB7MHhiMiwweDAwLDB4MGYsMHg4NSwweDAzLDB4MjEsMHg0OCwweGQ4LDB4NTEsMHgzMiwweDE0LDB4MmMsMHg4NSwweDAzLDB4ZWUsMHgwMyB9IH0sCi17ICAxNiwgMHhmMjIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGY1LDB4MDAsMHhlZCwweDAyLDB4M2UsMHg0NCB9IH0sCi17ICAxNiwgMHhmMjMwLCAwLCB7MHgwZiwweDkxLDB4MDMsMHhmNCwweDQwLDB4ZjksMHgxMCwweDNlLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZmQsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjQwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGU5LDB4MTAsMHhiZiwweDQwLDB4MGYsMHg5MCwweDAzLDB4NjYsMHgwNiB9IH0sCi17ICAxNiwgMHhmMjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU2LDB4MjEsMHhjNSwweDAwLDB4MzMsMHg2OCB9IH0sCi17ICAxNiwgMHhmMjYwLCAwLCB7MHgwZiwweDlhLDB4MDMsMHg2ZiwweDg4LDB4YzksMHhjMCwweDMzLDB4NjgsMHgwYywweDllLDB4MDMsMHgyNywweDgwLDB4ZDksMHg0MCB9IH0sCi17ICAxNiwgMHhmMjcwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzUsMHgxMCwweGQ5LDB4ZTgsMHgzNiwweDUwLDB4MGMsMHhkMCwweDAzLDB4ZTYsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUxLDB4MDgsMHg4OCwweDAwLDB4ODIsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjkwLCAwLCB7MHgwYiwweDhlLDB4ODIsMHhlYiwweGM4LDB4ODgsMHhlMCwweDIyLDB4MDAsMHgyOCwweDg4LDB4NDIsMHhhMiwweDgwLDB4OGEsMHg4MCB9IH0sCi17ICAxNiwgMHhmMmEwLCAwLCB7MHgyMiwweDAwLDB4MGIsMHhhYSwweDAyLDB4ZTIsMHgwMCwweDg4LDB4YzAsMHgyMiwweGE5LDB4MDgsMHg4YSwweDAzLDB4OGUsMHgwNCB9IH0sCi17ICAxNiwgMHhmMmIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4MDAsMHg4MSwweDAwLDB4MjAsMHhkMCB9IH0sCi17ICAxNiwgMHhmMmMwLCAwLCB7MHgwYiwweDExLDB4MzIsMHg4NCwweDg0LDB4ODEsMHg2MCwweDYwLDB4NTAsMHgwOCwweDE2LDB4MDYsMHgwNSwweDAwLDB4OTEsMHgyMCB9IH0sCi17ICAxNiwgMHhmMmQwLCAwLCB7MHgyMCwweDQwLDB4MGIsMHgxMCwweDgyLDB4ZTQsMHgwOSwweDkxLDB4MjAsMHgyNCwweDQwLDB4MDgsMHgxMCwweGMyLDB4ZDIsMHgwMSB9IH0sCi17ICAxNiwgMHhmMmUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE0LDB4MDQsMHg4OSwweDA0LDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhmMmYwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHhjNCwweDAwLDB4YTksMHgwMCwweDIyLDB4NDEsMHgwMCwweDkwLDB4MDIsMHhhNCwweDAwLDB4ODEsMHgwMCB9IH0sCi17ICAxNiwgMHhmMzAwLCAwLCB7MHgyMiwweDQwLDB4MGIsMHg5MiwweDIyLDB4ZTUsMHg4MCwweDk5LDB4MDEsMHgyMiwweDYxLDB4MDgsMHg5MCwweDAyLDB4ODYsMHgwNCB9IH0sCi17ICAxNiwgMHhmMzEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNCwweGE1LDB4ODIsMHg4MSwweDkwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhmMzIwLCAwLCB7MHgwZiwweDkwLDB4MTMsMHg2NywweDAyLDB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MjMsMHgyNCwweDA0LDB4ZDksMHhjMCB9IH0sCi17ICAxNiwgMHhmMzMwLCAwLCB7MHhiMiwweDQwLDB4MGYsMHg5YywweDAzLDB4ZTYsMHgwMCwweGQ5LDB4MDAsMHgzNiwweDUwLDB4MGMsMHg5MCwweDAzLDB4ZTgsMHgwNCB9IH0sCi17ICAxNiwgMHhmMzQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwMCwweGE2LDB4ODAsMHhmOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhmMzUwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlNywweDAwLDB4ZDksMHgwMCwweGJjLDB4NDIsMHgwZiwweDkwLDB4NTMsMHhlNCwweDA0LDB4ZjksMHgxMCB9IH0sCi17ICAxNiwgMHhmMzYwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5OCwweDAzLDB4ZTYsMHgwNCwweGUxLDB4MDAsMHgzZSwweDQwLDB4MmYsMHg5MCwweDAzLDB4ZGEsMHgwMCB9IH0sCi17ICAxNiwgMHhmMzcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweDgxLDB4MTAsMHg0OCwweDEwLDB4MzIsMHgwOCB9IH0sCi17ICAxNiwgMHhmMzgwLCAwLCB7MHgwYywweDgwLDB4MGYsMHgyMSwweDAyLDB4YzgsMHgwMCwweDNhLDB4MDQsMHgwZiwweDgwLDB4MDcsMHg2MCwweDAwLDB4ZjgsMHg0MCB9IH0sCi17ICAxNiwgMHhmMzkwLCAwLCB7MHhiMiwweDAwLDB4MGYsMHg4NCwweDBiLDB4MjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDEwLDB4MGMsMHg4MCwweDAzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHhmM2EwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNCwweDI4LDB4MDQsMHg4ZSwweDgwLDB4MjMsMHg4MCB9IH0sCi17ICAxNiwgMHhmM2IwLCAwLCB7MHgwOCwweGEwLDB4NDIsMHgyOCwweDAwLDB4OGEsMHgwMCwweDIzLDB4YTAsMHg0YiwweGEwLDB4MDIsMHhlOCwweDAwLDB4YmEsMHgwMCB9IH0sCi17ICAxNiwgMHhmM2MwLCAwLCB7MHg3NiwweDgwLDB4MGIsMHhhMCwweDAyLDB4MDgsMHgwMCwweDhhLDB4MDAsMHgzMiwweDgwLDB4MDgsMHhlMCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhmM2QwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MiwweDAwLDB4MjAsMHhkMCB9IH0sCi17ICAxNiwgMHhmM2UwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHgwYywweDAwLDB4OWIsMHgwMCwweDI4LDB4YzAsMHgxYSwweGIwLDB4MDIsMHg2YywweDAwLDB4YjMsMHgwMiB9IH0sCi17ICAxNiwgMHhmM2YwLCAwLCB7MHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyMiwweGMwLDB4MjgsMHgzNCwweDgyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhmNDAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFjLDB4MDAsMHg4NywweDAwLDB4MjAsMHhlMCB9IH0sCi17ICAxNiwgMHhmNDEwLCAwLCB7MHgwOCwweDc4LDB4MDIsMHgwYywweDAwLDB4OTcsMHgyMCwweDI1LDB4YzAsMHgwYiwweDcxLDB4MDIsMHhkYywweDgxLDB4YjcsMHgyMCB9IH0sCi17ICAxNiwgMHhmNDIwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHg3YSwweDQyLDB4M2MsMHg4MCwweDg3LDB4MjAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHhmNDMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwOCwweDBlLDB4ODIsMHhjNywweDgwLDB4YjEsMHhlMCB9IH0sCi17ICAxNiwgMHhmNDQwLCAwLCB7MHgyYywweGZhLDB4MDYsMHgxZSwweDA4LDB4ZDMsMHhiMSwweDM5LDB4NjAsMHg0ZSwweDc4LDB4MTIsMHg1ZSwweGEwLDB4ZmYsMHhmMCB9IH0sCi17ICAxNiwgMHhmNDUwLCAwLCB7MHgyMSwweGUwLDB4MGYsMHhmOCwweDAzLDB4MWYsMHgwOCwweGUzLDB4YTAsMHgzMywweGUwLDB4MGMsMHg2OCwweDAzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHhmNDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4NDAsMHhmYiwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhmNDcwLCAwLCB7MHgwZiwweGIyLDB4MDMsMHhlZCwweGE4LDB4ZWIsMHgxMCwweDNhLDB4ODAsMHgwZiwweGIwLDB4YzMsMHhlYywweDQwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNDgwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhiMCwweDgzLDB4ZWMsMHg4MCwweGViLDB4NzAsMHhiZSwweGM0LDB4MGYsMHhiMCwweDAzLDB4ODIsMHgwNiB9IH0sCi17ICAxNiwgMHhmNDkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGZlLDB4MDAsMHhjZSwweDgwLDB4YjMsMHg2MCB9IH0sCi17ICAxNiwgMHhmNGEwLCAwLCB7MHgwZiwweGZjLDB4ODMsMHg3ZSwweDIwLDB4ZWYsMHhiMCwweDNiLDB4ZTAsMHgwZiwweGI4LDB4MDMsMHgzZSwweDAwLDB4Y2YsMHg4MSB9IH0sCi17ICAxNiwgMHhmNGIwLCAwLCB7MHgzZiwweGUwLDB4OGYsMHhmOCwweDgzLDB4ZWYsMHg0MCwweGZmLDB4YzIsMHgzMywweGUxLDB4MGMsMHhmOCwweDAzLDB4ZDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNGMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4ODIsMHg4NywweDE4LDB4MjEsMHg4MCB9IH0sCi17ICAxNiwgMHhmNGQwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHgxYywweDYwLDB4ZDcsMHgxMCwweDIxLDB4ZDAsMHgwYiwweDdiLDB4MDIsMHgzYywweDAwLDB4ZDcsMHgwMCB9IH0sCi17ICAxNiwgMHhmNGUwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZGUsMHgwMCwweGJmLDB4MDAsMHhhMywweGM0LDB4MDgsMHg3MCwweDAzLDB4YWEsMHgwNCB9IH0sCi17ICAxNiwgMHhmNGYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGJjLDB4MTEsMHg4NywweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHhmNTAwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHgxYywweDAwLDB4OTMsMHgyMCwweDY5LDB4YzAsMHgwYiwweDcwLDB4MDIsMHgxYywweDAwLDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHhmNTEwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHg3MSwweDAyLDB4ZGMsMHgyMCwweGI3LDB4MTAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAyLDB4ODQsMHgwMCB9IH0sCi17ICAxNiwgMHhmNTIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgxNCwweGNkLDB4MDAsMHg4MywweDQwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhmNTMwLCAwLCB7MHg0YiwweDMwLDB4MDIsMHgwYywweDAxLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDAwLDB4OTMsMHg4MCB9IH0sCi17ICAxNiwgMHhmNTQwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMSwweGIzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDIyLDB4OTgsMHgwNCB9IH0sCi17ICAxNiwgMHhmNTUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJmLDB4MjAsMHhjYSwweGMwLDB4MzIsMHg4MCB9IH0sCi17ICAxNiwgMHhmNTYwLCAwLCB7MHgwZiwweGYwLDB4MDMsMHgzZSwweDAwLDB4OWYsMHgwMCwweDNhLDB4ODAsMHgwZiwweGYwLDB4MGIsMHgzYywweDAwLDB4Y2YsMHg5OCB9IH0sCi17ICAxNiwgMHhmNTcwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhmNiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHgzMSwweGUwLDB4MmMsMHhiMCwweDAzLDB4YWUsMHgwNCB9IH0sCi17ICAxNiwgMHhmNTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGNjLDB4ODAsMHhmYiwweDAwLDB4M2UsMHg1MCB9IH0sCi17ICAxNiwgMHhmNTkwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhhYywweDAyLDB4ZmIsMHgwMCwweDdlLDB4NTAsMHgwZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNWEwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhiMiwweDAzLDB4ZWMsMHgyMCwweGYzLDB4MDAsMHgzZSwweGM2LDB4MGYsMHg5MCwweDAzLDB4YTAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDIsMHhjZiwweDk4LDB4NzMsMHhjOCB9IH0sCi17ICAxNiwgMHhmNWMwLCAwLCB7MHgwZiwweDcwLDB4MDMsMHgzYywweDAwLDB4ZmYsMHgwMCwweDMzLDB4MjgsMHgwZiwweGIwLDB4MDIsMHgxYywweDAwLDB4NGYsMHgwMCB9IH0sCi17ICAxNiwgMHhmNWQwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDEsMHgzMywweGMwLDB4MGMsMHhlNCwweDAzLDB4ZTQsMHgwNCB9IH0sCi17ICAxNiwgMHhmNWUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDZjLDB4MDAsMHg4MywweDgwLDB4YTIsMHhmOCB9IH0sCi17ICAxNiwgMHhmNWYwLCAwLCB7MHgwYiwweGIwLDB4NDIsMHgyYywweDAwLDB4YmIsMHgwMCwweDMyLDB4MTAsMHgwZiwweGIwLDB4MDMsMHg2YywweDA0LDB4YWIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjAwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHhiMCwweDEyLDB4ZWMsMHgwNCwweGViLDB4MDAsMHgyMiwweGMwLDB4NGEsMHg5NCwweDgyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDZjLDB4MDAsMHg4YSwweDAwLDB4MjIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjIwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4YjMsMHgwMCwweGEyLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhhYywweDAwLDB4YWIsMHgwNCB9IH0sCi17ICAxNiwgMHhmNjMwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHhiMCwweDQyLDB4ZWMsMHgwMCwweGJiLDB4MDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDIyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDBjLDB4MDAsMHg4YiwweDAxLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjUwLCAwLCB7MHgwYiwweDMwLDB4MDYsMHgwYywweDAwLDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwYSwweDMyLDB4MGEsMHhjYywweDAwLDB4YTMsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjYwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MDAsMHgyMiwweGMwLDB4NGEsMHgwMCwweDEyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhmNjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDZjLDB4MDAsMHg4YiwweDA0LDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhmNjgwLCAwLCB7MHgwZiwweGYxLDB4MDMsMHgxYywweDAwLDB4ZmYsMHgwNCwweDMyLDB4YzAsMHgwYiwweGYyLDB4MDMsMHhiYywweDAwLDB4ZWYsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjkwLCAwLCB7MHgzZSwweGMwLDB4MDcsMHhmMCwweDAzLDB4ZmMsMHg4MCwweGZmLDB4MDAsMHhiMiwweGMwLDB4MGMsMHhhMCwweDAzLDB4ZTAsMHgwMyB9IH0sCi17ICAxNiwgMHhmNmEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxOSwweGRjLDB4MDAsMHhmNSwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhmNmIwLCAwLCB7MHgwZiwweGYwLDB4MDMsMHhmYywweDAxLDB4ZmYsMHgwMiwweDNiLDB4YzAsMHgwZiwweGYxLDB4MDMsMHg3YywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhmNmMwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmMCwweDEzLDB4ZmMsMHg0MCwweGVmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhmNmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGYyLDB4NDAsMHhjYywweDgwLDB4MzcsMHgyMCB9IH0sCi17ICAxNiwgMHhmNmUwLCAwLCB7MHgwYywweGQ4LDB4MDMsMHhiMCwweDQ0LDB4ZmMsMHgwOCwweDNmLDB4MGUsMHgwZiwweGMxLDB4MDMsMHhmYywweDAwLDB4Y2MsMHg5NCB9IH0sCi17ICAxNiwgMHhmNmYwLCAwLCB7MHgzZiwweDBhLDB4MmUsMHhjNCwweDAzLDB4N2QsMHg4MCwweGNmLDB4MTAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDgzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNzAwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwOCwweGUwLDB4OTAsMHg4OCwweDAyLDB4MjIsMHg4MSB9IH0sCi17ICAxNiwgMHhmNzEwLCAwLCB7MHgwOCwweDkyLDB4MTMsMHhhNCwweDQwLDB4M2IsMHg2MCwweDIyLDB4MTgsMHgwYiwweDgxLDB4MDIsMHhmYywweGQ0LDB4ODEsMHgwMCB9IH0sCi17ICAxNiwgMHhmNzIwLCAwLCB7MHgzYSwweGIwLDB4MGEsMHg5NCwweDAyLDB4M2QsMHg0MCwweGFmLDB4NjMsMHgyZiwweGRmLDB4MGIsMHg5OCwweDAwLDB4MjAsMHgwNCB9IH0sCi17ICAxNiwgMHhmNzMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGUwLDB4MDAsMHg4OCwweDAwLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhmNzQwLCAwLCB7MHg4OCwweDMwLDB4ODIsMHhjMCwweDAwLDB4YjAsMHgwOCwweDI4LDB4ODAsMHgwYSwweDEwLDB4MDIsMHhjYywweDIwLDB4ODAsMHgwMSB9IH0sCi17ICAxNiwgMHhmNzUwLCAwLCB7MHgyYywweDQwLDB4MWIsMHgwNiwweDAyLDB4OGMsMHg5MCwweDkzLDB4NjAsMHg2OCwweGMwLDB4NGEsMHgwMCwweDQyLDB4MjIsMHgwMSB9IH0sCi17ICAxNiwgMHhmNzYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGEwLDB4MDIsMHg4OCwweDAwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhmNzcwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHhlNCwweDIwLDB4YmIsMHg4OCwweDI2LDB4OTgsMHgwYiwweDgwLDB4NDIsMHhjYywweDE4LDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHhmNzgwLCAwLCB7MHgyZSwweGMyLDB4MWIsMHg5OCwweDAyLDB4YWMsMHgwMCwweGFiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHg5OCwweDgyLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhmNzkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweGUzLDB4YzAsMHhjYiwweDAyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhmN2EwLCAwLCB7MHgyYywweDgwLDB4MDMsMHhhZSwweDA4LDB4YjksMHgwMCwweDNlLDB4NzAsMHgwZiwweGI5LDB4MDMsMHhlYywweDAyLDB4NDgsMHg0OCB9IH0sCi17ICAxNiwgMHhmN2IwLCAwLCB7MHgzYywweGMwLDB4MGYsMHg4YywweDkzLDB4ZWMsMHgwMCwweGRiLDB4MDAsMHgxYSwweGMwLDB4MGUsMHhhYywweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhmN2MwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGIyLDB4MDAsMHhmZiwweDAwLDB4YmIsMHg4MCB9IH0sCi17ICAxNiwgMHhmN2QwLCAwLCB7MHgwZiwweGMwLDB4NDMsMHhiNiwweDQwLDB4YmQsMHgwMCwweDNiLDB4NjAsMHgwZiwweGU4LDB4MDMsMHhmYywweDAwLDB4ZmYsMHg5NCB9IH0sCi17ICAxNiwgMHhmN2UwLCAwLCB7MHgzYiwweGU0LDB4MGUsMHg2MCwweDBmLDB4NmMsMHgwOCwweGVmLDB4MDEsMHgzZiwweGMwLDB4MGYsMHg2MCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhmN2YwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGExLDB4MDAsMHhmYiwweDAwLDB4M2UsMHg2MCB9IH0sCi17ICAxNiwgMHhmODAwLCAwLCB7MHgwZiwweGEwLDB4MDMsMHhlZCwweDAwLDB4ZjksMHg0MCwweDNhLDB4MDAsMHgwZiwweDkwLDB4MDMsMHhlYywweDAyLDB4YzksMHgwNCB9IH0sCi17ICAxNiwgMHhmODEwLCAwLCB7MHgzMiwweGQwLDB4MGYsMHg5MCwweDAzLDB4MmMsMHgwOCwweGRiLDB4MDAsMHhiNiwweGMwLDB4MGQsMHhiNCwweDAzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHhmODIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDAwLDB4MDAsMHhiMywweDg5LDB4MmUsMHhlMCB9IH0sCi17ICAxNiwgMHhmODMwLCAwLCB7MHgwYiwweGE0LDB4MDMsMHhhNCwweDAxLDB4YjksMHgwMCwweDJlLDB4MDEsMHgwYiwweDkwLDB4NDIsMHhmYywweDEwLDB4ODksMHg1MCB9IH0sCi17ICAxNiwgMHhmODQwLCAwLCB7MHhhMiwweGMwLDB4OGQsMHhiNCwweDAyLDB4M2MsMHg0NCwweDhmLDB4MDAsMHgyMywweGMwLDB4MDgsMHhiMCwweDAyLDB4ZjIsMHgwMCB9IH0sCi17ICAxNiwgMHhmODUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNCwweDBjLDB4MDAsMHhiMCwweDgwLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHhmODYwLCAwLCB7MHgwYiwweDEyLDB4MDIsMHhjOCwweDAwLDB4YmEsMHgwMCwweDJjLDB4YzAsMHgwYiwweDIwLDB4MDIsMHhjYywweDAwLDB4YTIsMHgwMCB9IH0sCi17ICAxNiwgMHhmODcwLCAwLCB7MHgyMCwweDAwLDB4MmIsMHgyZCwweDlhLDB4MmUsMHg0MiwweDgzLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgyMCwweDAyLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhmODgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDFlLDB4MDQsMHhiNCwweDgwLDB4MmQsMHhhMCB9IH0sCi17ICAxNiwgMHhmODkwLCAwLCB7MHgwYiwweDU4LDB4MDIsMHg5MiwweDAwLDB4YjYsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDY4LDB4MDIsMHhkZSwweDQwLDB4YTYsMHg4MCB9IH0sCi17ICAxNiwgMHhmOGEwLCAwLCB7MHgyMSwweDI0LDB4MjksMHg0OCwweDAyLDB4MWUsMHg4MCwweDg3LDB4ODAsMHg2OSwweGUwLDB4MDgsMHg2MSwweDAyLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHhmOGIwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxOCwweDBjLDB4MDAsMHhmMCwweDMwLDB4M2MsMHg0YyB9IH0sCi17ICAxNiwgMHhmOGMwLCAwLCB7MHgwZiwweDMyLDB4MDMsMHhjOCwweDgwLDB4YjIsMHgwMCwweDM4LDB4ODAsMHgwZiwweDFiLDB4MDMsMHhlYywweDAwLDB4ZTAsMHgzMCB9IH0sCi17ICAxNiwgMHhmOGQwLCAwLCB7MHgzMCwweDA0LDB4MGYsMHhiMSwweDAzLDB4MGUsMHg4NSwweGNiLDB4MDAsMHgzYSwweGMwLDB4MGMsMHgzMSwweDAzLDB4ZDIsMHgwMiB9IH0sCi17ICAxNiwgMHhmOGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxYywweGJjLDB4MDAsMHhmYywweDExLDB4M2YsMHhjNCB9IH0sCi17ICAxNiwgMHhmOGYwLCAwLCB7MHgwZiwweGI4LDB4MTMsMHhiMCwweDA0LDB4ZmUsMHgwMiwweDNmLDB4ODAsMHgwZiwweGMwLDB4MDMsMHhmZCwweDAwLDB4ZGYsMHgxMiB9IH0sCi17ICAxNiwgMHhmOTAwLCAwLCB7MHgxZCwweDA0LDB4MGYsMHhkMCwweDQzLDB4YmMsMHgwMSwweGVmLDB4MTAsMHgzMywweGM0LDB4MGUsMHhmMywweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhmOTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGVlLDB4MDAsMHhjYiwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTIwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHgyOCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4NDAsMHgzZCwweGIwLDB4MDMsMHhlZiwweDA4LDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHhmOTMwLCAwLCB7MHgzYSwweDAwLDB4MGMsMHhhMCwweDAzLDB4ZWMsMHg5OCwweGZiLDB4MjAsMHgzMiwweGQyLDB4MGMsMHhhOCwweDAzLDB4MmEsMHgwMiB9IH0sCi17ICAxNiwgMHhmOTQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4MDAsMHg4NywweDAxLDB4MmQsMHg4MCB9IH0sCi17ICAxNiwgMHhmOTUwLCAwLCB7MHgwYiwweDQwLDB4NDIsMHgxYywweDA0LDB4MzcsMHgwMCwweGExLDB4NDAsMHgwOCwweDYwLDB4MDIsMHhjYywweDgwLDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTYwLCAwLCB7MHgyZCwweDgwLDB4MmUsMHg3MCwweDAyLDB4ZGMsMHhhOSwweGI3LDB4MjgsMHgyMSwweGQwLDB4MDgsMHg3MCwweDAyLDB4MTIsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweGJlLDB4MDIsMHg4NywweDgwLDB4MmQsMHg2MCB9IH0sCi17ICAxNiwgMHhmOTgwLCAwLCB7MHg0YiwweGU4LDB4MDIsMHg1YSwweDAxLDB4YjQsMHg4OCwweDI4LDB4ZTAsMHg4OCwweDc4LDB4YzIsMHhkZSwweDUyLDB4ODYsMHhjMCB9IH0sCi17ICAxNiwgMHhmOTkwLCAwLCB7MHgyOSwweDYwLDB4MDgsMHg2OCwweDAyLDB4ZGUsMHg0MCwweGIzLDB4OTIsMHhlMSwweGU4LDB4MjgsMHgyOCwweDAyLDB4NzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOWEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgxNCwweGNjLDB4MDAsMHg4YiwweDgwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhmOWIwLCAwLCB7MHgwYiwweDIwLDB4MDIsMHg0ZCwweDgwLDB4OWIsMHgyMCwweDIwLDB4ZTAsMHgwOCwweDM4LDB4MDIsMHhjYywweDAwLDB4ODMsMHg4MCB9IH0sCi17ICAxNiwgMHhmOWMwLCAwLCB7MHgyYywweGMwLDB4MGEsMHhiMCwweDAyLDB4Y2MsMHgwOCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMSwweDAyLDB4NTIsMHgwNCB9IH0sCi17ICAxNiwgMHhmOWQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweGE4LDB4MDAsMHhjYSwweGUwLDB4M2UsMHg4MCB9IH0sCi17ICAxNiwgMHhmOWUwLCAwLCB7MHgxZiwweGE0LDB4MGIsMHg3OSwweDAwLDB4ZmUsMHgwMCwweDNmLDB4ODIsMHgxZCwweGUwLDB4MDMsMHhlOCwweDAwLDB4Y2UsMHg0MCB9IH0sCi17ICAxNiwgMHhmOWYwLCAwLCB7MHgzYiwweDg4LDB4MmMsMHhlNCwweDAzLDB4ZTgsMHgwMSwweGZhLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhlOCwweDAzLDB4N2EsMHgwNCB9IH0sCi17ICAxNiwgMHhmYTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweGEwLDB4MDAsMHhmOCwweDA5LDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTEwLCAwLCB7MHg4ZiwweGMwLDB4ODMsMHhhMCwweDE4LDB4ZjgsMHgwMCwweDNjLDB4MjAsMHgwZiwweDg4LDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwOCB9IH0sCi17ICAxNiwgMHhmYTIwLCAwLCB7MHgzZSwweDIwLDB4MGUsMHg4MCwweDgzLDB4ZTEsMHgwMSwweGYwLDB4MDAsMHgzYywweDAwLDB4MGYsMHg4MCwweDBiLDB4OTIsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGE0LDB4MDAsMHhmOSwweDQyLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhmYTQwLCAwLCB7MHg0YywweDk4LDB4MDMsMHgwNCwweDAwLDB4YzksMHgwMCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MjMsMHgyNCwweDAwLDB4YjksMHg4MSB9IH0sCi17ICAxNiwgMHhmYTUwLCAwLCB7MHgzYywweDQwLDB4MGMsMHg5MiwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDUsMHgzMiwweDQwLDB4NmMsMHg5MCwweGMzLDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHhmYTYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDI0LDB4MTQsMHhiOSwweDAwLDB4YTIsMHg1NCB9IH0sCi17ICAxNiwgMHhmYTcwLCAwLCB7MHgwOCwweDliLDB4MWEsMHgyNCwweDAyLDB4ODksMHgwMCwweDIyLDB4NDAsMHgyOCwweDkwLDB4MDIsMHhhNCwweDAwLDB4YjksMHg5MCB9IH0sCi17ICAxNiwgMHhmYTgwLCAwLCB7MHgyZSwweDQwLDB4MjgsMHg5YywweDgyLDB4MjUsMHgwNCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5OCwweDEyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTkwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhhZCwweDAwLDB4MjMsMHg0MCB9IH0sCi17ICAxNiwgMHhmYWEwLCAwLCB7MHgwOCwweDUwLDB4MDIsMHg2NCwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAsMHgwOCwweDEwLDB4MDIsMHg2NCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhmYWIwLCAwLCB7MHg2ZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjUsMHgwMCwweGE5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MSwweDA2LDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHhmYWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDE0LDB4MDAsMHhiNSwweDEwLDB4YTEsMHg0NCB9IH0sCi17ICAxNiwgMHhmYWQwLCAwLCB7MHgyOCwweDUwLDB4MDIsMHg0NCwweDgwLDB4ODEsMHgzMCwweDIwLDB4NDgsMHgwOCwweDEyLDB4MDIsMHg4NCwweDQwLDB4YjEsMHg4MCB9IH0sCi17ICAxNiwgMHhmYWUwLCAwLCB7MHg2YywweGM4LDB4MDgsMHgxMiwweDAyLDB4MDQsMHg4MCwweGIxLDB4MzQsMHgyMCwweDQ4LDB4MDgsMHgxMiwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhmYWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhlOCwweDQwLDB4MzIsMHg5MCB9IH0sCi17ICAxNiwgMHhmYjAwLCAwLCB7MHgwYywweGM1LDB4MDMsMHg2MSwweDQwLDB4YzAsMHg0MCwweDNhLDB4MTQsMHgwZiwweDg1LDB4MDMsMHgyMSwweGIwLDB4ZjgsMHg1MCB9IH0sCi17ICAxNiwgMHhmYjEwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4NSwweDAzLDB4MjEsMHg0MCwweGY4LDB4NDAsMHhiMCwweDE0LDB4MGMsMHg4MCwweDAzLDB4ZWUsMHgwMSB9IH0sCi17ICAxNiwgMHhmYjIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgxZCwweGM0LDB4MDQsMHhmOSwweDIyLDB4MGUsMHg0OCB9IH0sCi17ICAxNiwgMHhmYjMwLCAwLCB7MHgwZiwweDEwLDB4MTMsMHhiNCwweDQwLDB4ZmQsMHgzMCwweDNmLDB4NDQsMHg0ZiwweGQxLDB4MDAsMHhlNCwweDg0LDB4ZmYsMHgwMSB9IH0sCi17ICAxNiwgMHhmYjQwLCAwLCB7MHgzZCwweDQ0LDB4MGYsMHhkMSwweDBiLDB4ZTQsMHg0MCwweGY5LDB4MzAsMHgzZSwweDQ0LDB4MGYsMHhkMSwweDAzLDB4ZTYsMHgwNCB9IH0sCi17ICAxNiwgMHhmYjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgwNSwweGU0LDB4MDAsMHhkZCwweDQwLDB4M2YsMHg1MCB9IH0sCi17ICAxNiwgMHhmYjYwLCAwLCB7MHgwYywweGQwLDB4MDMsMHgyYywweDAwLDB4YzksMHgwMCwweDM2LDB4NDAsMHgwZiwweDkwLDB4MTMsMHgyNywweDA0LDB4ZjUsMHgwMSB9IH0sCi17ICAxNiwgMHhmYjcwLCAwLCB7MHgzNywweDQwLDB4MGMsMHhmMCwweDAzLDB4ZjYsMHgyMCwweGY5LDB4YTgsMHgzMiwweDY4LDB4MGMsMHhkMCwweDAzLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjgwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMCwweGUwLDB4MDAsMHg4OCwweGEwLDB4MmUsMHgyOCB9IH0sCi17ICAxNiwgMHhmYjkwLCAwLCB7MHgyOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4ODgsMHhhMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4MGEsMHg2MiwweDgwLDB4YjgsMHgwMCB9IH0sCi17ICAxNiwgMHhmYmEwLCAwLCB7MHgyMiwweDAwLDB4MDgsMHg4MCwweDAyLDB4ZTEsMHgwMCwweGI4LDB4ZTAsMHgyMiwweDNhLDB4MDgsMHhhMCwweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHhmYmIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDg0LDB4MDIsMHg4MSwweDAwLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHhmYmMwLCAwLCB7MHgwOCwweDEwLDB4MGEsMHg0NCwweDAyLDB4ODEsMHgwOCwweDI0LDB4NDAsMHgwYSwweDEwLDB4MDIsMHg0NSwweDgwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhmYmQwLCAwLCB7MHgyNCwweDQwLDB4MjksMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MDgsMHgyNCwweDQ0LDB4MDgsMHgxMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhmYmUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNCwweGE0LDB4MDQsMHg4OSwweDAxLDB4MmUsMHg1MCB9IH0sCi17ICAxNiwgMHhmYmYwLCAwLCB7MHg0OCwweGIyLDB4MDIsMHg2NCwweDAwLDB4OTEsMHgwMCwweDIyLDB4NDYsMHgwYiwweDkwLDB4MDIsMHg2NCwweDAwLDB4YjksMHgwMSB9IH0sCi17ICAxNiwgMHhmYzAwLCAwLCB7MHgyNiwweGMwLDB4MDksMHhiMCwweDEyLDB4ZTQsMHgwMCwweGIxLDB4MDAsMHgyNiwweDQwLDB4MDgsMHg5MCwweDAyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHhmYzEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNCwweGU0LDB4MDAsMHhjOSwweDAwLDB4M2MsMHg0MCB9IH0sCi17ICAxNiwgMHhmYzIwLCAwLCB7MHgwYywweDkwLDB4MDMsMHg2NCwweDAwLDB4YzksMHgwMiwweDM2LDB4NTAsMHgwZSwweDkzLDB4MDMsMHgyNCwweDAwLDB4ZjksMHg5MCB9IH0sCi17ICAxNiwgMHhmYzMwLCAwLCB7MHgzNiwweDQ4LDB4MGQsMHg5NCwweDgzLDB4ZTQsMHgwOCwweGY5LDB4MDAsMHhiNiwweDQwLDB4MGMsMHg5NCwweDAzLDB4ZTgsMHgwNCB9IH0sCi17ICAxNiwgMHhmYzQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgxMCwweGE0LDB4MDAsMHhlOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhmYzUwLCAwLCB7MHgwZiwweDkwLDB4MTMsMHhhNCwweDAwLDB4ZTksMHgwMiwweDJlLDB4NjEsMHgwNSwweDkwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhmYzYwLCAwLCB7MHgzYSwweDQwLDB4MGUsMHg5MCwweDQzLDB4ZTQsMHgxMCwweGY5LDB4MDAsMHgzOCwweDQwLDB4MmYsMHg5MCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzcwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhkOCwweDAxLDB4MzIsMHgwNCB9IH0sCi17ICAxNiwgMHhmYzgwLCAwLCB7MHgwZiwweDgwLDB4NDMsMHhjMCwweDAxLDB4YzgsMHgwMCwweGIyLDB4MDEsMHgwYywweDgwLDB4MDMsMHgyMCwweDAwLDB4YzgsMHg0MCB9IH0sCi17ICAxNiwgMHhmYzkwLCAwLCB7MHgzMCwweDAwLDB4OGMsMHg4NCwweDgzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4NmMsMHg4NCwweDAzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHhmY2EwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDI4LDB4MDAsMHhiYSwweDAwLDB4MjMsMHg4MCB9IH0sCi17ICAxNiwgMHhmY2IwLCAwLCB7MHgwYiwweGVhLDB4MDIsMHhlOCwweDAwLDB4YWEsMHgwMCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ODYsMHgyMCB9IH0sCi17ICAxNiwgMHhmY2MwLCAwLCB7MHgzNywweGEwLDB4OGQsMHhlNCwweDAyLDB4ZjgsMHgwMCwweGRhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhmY2QwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweDZjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhmY2UwLCAwLCB7MHgwYiwweGI4LDB4MDIsMHg0YywweDA0LDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgwYywweDAyLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhmY2YwLCAwLCB7MHgyMCwweDQwLDB4MjgsMHgzNCwweDAyLDB4Y2UsMHg5MCwweDgzLDB4MDAsMHhhMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFjLDB4YzAsMHhiNSwweDg4LDB4MjEsMHg0MCB9IH0sCi17ICAxNiwgMHhmZDEwLCAwLCB7MHgwYiwweDcwLDB4MDIsMHhkYywweDgwLDB4YTMsMHgyMCwweDIxLDB4ZTAsMHg0OCwweDMyLDB4NDIsMHgwZSwweDkwLDB4OGUsMHgwMSB9IH0sCi17ICAxNiwgMHhmZDIwLCAwLCB7MHg2NSwweDUwLDB4MDksMHg3MCwweDAyLDB4ZGUsMHgyMCwweDkzLDB4MjEsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxOCwweDFlLDB4MDAsMHhmZiwweDgwLDB4YjEsMHhhMCB9IH0sCi17ICAxNiwgMHhmZDQwLCAwLCB7MHgwZiwweDQ4LDB4MDIsMHg3ZSwweDAwLDB4ODcsMHhhMCwweDMzLDB4ZTAsMHgyOCwweDdhLDB4MGIsMHgxZiwweDAwLDB4YzQsMHg4MCB9IH0sCi17ICAxNiwgMHhmZDUwLCAwLCB7MHgzMSwweDYwLDB4OGMsMHg1OCwweDAzLDB4ZmUsMHgwMCwweGM3LDB4YzgsMHgzMywweGU4LDB4MGMsMHg1OCwweDAzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHhmZDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDcwLCAwLCB7MHgwZiwweDkwLDB4MjMsMHhlYywweGEwLDB4ZmIsMHg0MCwweDNlLDB4YzAsMHg4ZiwweGI1LDB4MDMsMHhlZCwweDgwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDgwLCAwLCB7MHgzYywweDQwLDB4MGYsMHhiMCwweDAzLDB4ZTgsMHgwMCwweGZiLDB4MDIsMHgzZSwweGQwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhmZDkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgwNCwweGJlLDB4MDAsMHhmZiwweDgwLDB4M2YsMHhlMCB9IH0sCi17ICAxNiwgMHhmZGEwLCAwLCB7MHgwZiwweGQ5LDB4MDMsMHhmZSwweDIwLDB4Y2YsMHhjOCwweDMzLDB4ZWEsMHg4ZiwweGZjLDB4MDMsMHgzZiwweDAwLDB4ZmQsMHg4MCB9IH0sCi17ICAxNiwgMHhmZGIwLCAwLCB7MHgzZiwweDYwLDB4MGUsMHhlOCwweDAzLDB4ZjIsMHgwMCwweGNmLDB4ODAsMHgyZiwweGZlLDB4MGMsMHg3OCwweDAzLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZGMwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwMCwweDljLDB4MDAsMHhiNSwweDAyLDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHhmZGQwLCAwLCB7MHgwYiwweDU4LDB4NDIsMHhkYywweDgwLDB4Y2YsMHgwMCwweDIxLDB4YzEsMHgwYiwweDMwLDB4MTIsMHgxYywweDQwLDB4YjQsMHgwMiB9IH0sCi17ICAxNiwgMHhmZGUwLCAwLCB7MHgyZCwweDQ2LDB4MDgsMHg3MSwweDEyLDB4YzgsMHgwMCwweGU3LDB4MDAsMHgyZCwweGM0LDB4MDgsMHg3MCwweDAzLDB4NmEsMHgwNCB9IH0sCi17ICAxNiwgMHhmZGYwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhiNywweDAwLDB4MmQsMHgwMiB9IH0sCi17ICAxNiwgMHhmZTAwLCAwLCB7MHgwYiwweDQ2LDB4MDIsMHhkYywweDA4LDB4OTcsMHgwMCwweDIxLDB4YzksMHgwYSwweDMwLDB4MjIsMHgxYywweDAwLDB4YjQsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTEwLCAwLCB7MHgyZCwweDQwLDB4MGEsMHg1MCwweDgyLDB4YzQsMHgwMCwweGI3LDB4MDAsMHgyYywweGM4LDB4MjgsMHg1MCwweDAyLDB4NDAsMHgxMCB9IH0sCi17ICAxNiwgMHhmZTIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNCwweDhjLDB4MTgsMHhiMywweDAwLDB4MmUsMHgyMCB9IH0sCi17ICAxNiwgMHhmZTMwLCAwLCB7MHgwYiwweDE4LDB4MDIsMHhjZiwweDRhLDB4ODMsMHhjMiwweDIwLDB4YzEsMHgwYiwweDM0LDB4MjIsMHgwYywweDA0LDB4YjgsMHg1OCB9IH0sCi17ICAxNiwgMHhmZTQwLCAwLCB7MHgyYywweDQwLDB4MGIsMHgyOCwweDAyLDB4YzgsMHgwMCwweGEzLDB4MDAsMHgyYywweGMwLDB4MDgsMHgxNCwweDAyLDB4NDgsMHgwNCB9IH0sCi17ICAxNiwgMHhmZTUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGJjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHg4MCB9IH0sCi17ICAxNiwgMHhmZTYwLCAwLCB7MHgwZiwweGEwLDB4MDIsMHhmYywweDAwLDB4ZGYsMHhhMCwweGIzLDB4YzAsMHgwZSwweGYwLDB4MGIsMHgzYywweDAwLDB4ZmIsMHhjMCB9IH0sCi17ICAxNiwgMHhmZTcwLCAwLCB7MHgzYywweGEwLDB4MGUsMHhiZCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGMsMHgzMCwweDAzLDB4NmEsMHgwNCB9IH0sCi17ICAxNiwgMHhmZTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMCwweGVjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHgwMSB9IH0sCi17ICAxNiwgMHhmZTkwLCAwLCB7MHg4ZiwweGIxLDB4NDMsMHhlYywweDAwLDB4ZjMsMHgwMCwweDNlLDB4YzAsMHg0ZiwweGIwLDB4MTMsMHhlYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhmZWEwLCAwLCB7MHgzZSwweDgwLDB4MGMsMHg4NCwweDAzLDB4ZTEsMHgwMCwweDczLDB4MDAsMHgzZSwweGMxLDB4MGYsMHhiMiwweDQzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZWIwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg1MCwweGZjLDB4MTAsMHhmZiwweDgwLDB4MzcsMHhjMCB9IH0sCi17ICAxNiwgMHhmZWMwLCAwLCB7MHgwYywweGUwLDB4MDMsMHhmYywweDIwLDB4ZmYsMHgwOCwweDMzLDB4YzAsMHgwZiwweGYwLDB4ODMsMHhiYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhmZWQwLCAwLCB7MHgzMywweGMwLDB4MmUsMHg0MCwweDAzLDB4MWMsMHgwMSwweGNmLDB4MDAsMHgxMSwweGMwLDB4NGMsMHhkMCwweDAzLDB4MDAsMHg0NCB9IH0sCi17ICAxNiwgMHhmZWUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZjLDB4MDQsMHhiMywweDAyLDB4MjIsMHg3MiB9IH0sCi17ICAxNiwgMHhmZWYwLCAwLCB7MHgwOCwweGExLDB4MTYsMHhlYywweDAwLDB4YmIsMHgwNCwweDIyLDB4YzAsMHgwYiwweGIwLDB4NDIsMHhlYywweDAwLDB4YmEsMHgxOSB9IH0sCi17ICAxNiwgMHhmZjAwLCAwLCB7MHhiNiwweGQwLDB4MDgsMHg5YywweDRhLDB4MjYsMHg4MCwweGRiLDB4MDAsMHgyMiwweGMwLDB4MDgsMHg5MCwweDAzLDB4NjAsMHg0MCB9IH0sCi17ICAxNiwgMHhmZjEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiOSwweDEwLDB4NjIsMHgyMCB9IH0sCi17ICAxNiwgMHhmZjIwLCAwLCB7MHg0OCwweGEwLDB4MDIsMHhlYywweDAwLDB4YmIsMHgwMCwweDIyLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhlYywweDEwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjMwLCAwLCB7MHg2NiwweDA4LDB4MGEsMHhhOCwweDEyLDB4MjYsMHgxMCwweDliLDB4MDAsMHgyYSwweGMwLDB4MjgsMHhiMCwweDI2LDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDBjLDB4MDAsMHhiOSwweDAwLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjUwLCAwLCB7MHgwOCwweDMyLDB4MDIsMHhjYywweDA0LDB4YjMsMHgwMCwweDIwLDB4YzAsMHg0YiwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjYwLCAwLCB7MHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDEsMHgwMCwweDkzLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzMCwweDA2LDB4NDIsMHgxMSB9IH0sCi17ICAxNiwgMHhmZjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxYywweDZjLDB4MDAsMHhmOSwweDAwLDB4YjIsMHg0MCB9IH0sCi17ICAxNiwgMHhmZjgwLCAwLCB7MHgwYywweDgyLDB4MDIsMHhkYywweDAxLDB4ZmYsMHgwMCwweGIyLDB4YzAsMHgwYiwweGYxLDB4MDMsMHhiYywweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhmZjkwLCAwLCB7MHgyNiwweDQwLDB4MmUsMHg4MCwweDAzLDB4MjEsMHgwNCwweGNmLDB4MDAsMHhiYiwweGMwLDB4MGMsMHg5MCwweDAzLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHhmZmEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCB9IH0sCi17ICAxNiwgMHhmZmIwLCAwLCB7MHgwZiwweDgxLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MjMsMHhmYywweDAwLDB4ZmMsMHgwMCB9IH0sCi17ICAxNiwgMHhmZmMwLCAwLCB7MHgyZCwweDQwLDB4MmYsMHhjMCwweDAzLDB4ZjAsMHg4OCwweGZmLDB4MDAsMHgzNywweGMwLDB4OGYsMHhkMCwweDAzLDB4ZTgsMHgwMiB9IH0sCi17ICAxNiwgMHhmZmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZlLDB4NDAsMHhmZiwweDgwLDB4MzMsMHhjMiB9IH0sCi17ICAxNiwgMHhmZmUwLCAwLCB7MHgwYywweGY4LDB4MDMsMHg3YywweGEwLDB4ZmYsMHg5MCwweDNmLDB4YzQsMHgyYywweGI0LDB4MDMsMHhiYywweDgwLDB4Y2YsMHg0MCB9IH0sCi17ICAxNiwgMHhmZmYwLCAwLCB7MHgzNywweGUwLDB4MGYsMHhmMSwweDkzLDB4NmUsMHg0NCwweGJmLDB4MzAsMHgzZiwweDIwLDB4MmMsMHhmOCwweDYzLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHg4MDEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGVjLDB4MDAsMHhlYiwweDIwLDB4MjMsMHhmMCB9IH0sCi17ICAxNiwgMHg4MDIwLCAwLCB7MHgwOCwweGI4LDB4NTIsMHgzZCwweDAwLDB4YjMsMHgwMCwweDJlLDB4ZGMsMHgwOCwweGY0LDB4NDIsMHgxYywweDQyLDB4OGIsMHg0MCB9IH0sCi17ICAxNiwgMHg4MDMwLCAwLCB7MHgyMiwweGM4LDB4MGIsMHhmNiwweDAzLDB4NmMsMHg4OCwweGJiLDB4MzAsMHgyZSwweDAwLDB4MDgsMHhiMiwweDAyLDB4ZTAsMHgwNCB9IH0sCi17ICAxNiwgMHg4MDQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiYiwweDA4LDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHg4MDUwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHg0YywweGEwLDB4YjMsMHgyMCwweDI2LDB4ODAsMHg4OCwweDM2LDB4MDIsMHhjYywweGEwLDB4OTMsMHg2MCB9IH0sCi17ICAxNiwgMHg4MDYwLCAwLCB7MHhhNCwweGMyLDB4MGEsMHgzMiwweDQyLDB4NGMsMHg5MCwweGIzLDB4MjAsMHgyYywweDBiLDB4ODgsMHgzMCwweDgyLDB4ZTIsMHgwMSB9IH0sCi17ICAxNiwgMHg4MDcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGFjLDB4MDgsMHhiYiwweDIyLDB4YTIsMHhjMCB9IH0sCi17ICAxNiwgMHg4MDgwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHgyYywweDAwLDB4YmIsMHgwMCwweDJlLDB4OTAsMHgwOCwweGIwLDB4MDIsMHhlYywweDAwLDB4OWIsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDkwLCAwLCB7MHgyMiwweGMwLDB4MGIsMHhiMCwweDAyLDB4NmMsMHgwMCwweGJiLDB4MDIsMHgyZSwweDIwLDB4MDgsMHhiMCwweDAyLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhiMSwweDgzLDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHg4MGIwLCAwLCB7MHgwYywweDFhLDB4MDMsMHg2YywweDEwLDB4ZmIsMHgwMCwweDM0LDB4YzAsMHgwYywweGIwLDB4MDMsMHhlYywweDA4LDB4ZGEsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGMwLCAwLCB7MHgzNiwweGMwLDB4MGUsMHhiMCwweDBiLDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzZSwweDI4LDB4MGMsMHhiMCwweDAyLDB4ZDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGJjLDB4MDAsMHhlZCwweDgwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHg4MGUwLCAwLCB7MHgwZiwweGQ0LDB4MDMsMHhlYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzgsMHgwZiwweGIwLDB4MDMsMHgzYywweDAwLDB4ZWUsMHg0MCB9IH0sCi17ICAxNiwgMHg4MGYwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhmYiwweDIwLDB4YjAsMHhjMCB9IH0sCi17ICAxNiwgMHg4MTEwLCAwLCB7MHgwZiwweGI0LDB4MDMsMHhhYywweDAyLDB4Y2IsMHgwMCwweDMyLDB4OTAsMHgwZSwweGIwLDB4MDMsMHg2YywweDAwLDB4ZWIsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTIwLCAwLCB7MHgzYSwweGMwLDB4MGMsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzZSwweDkxLDB4MGYsMHhiMCwweDAzLDB4OTAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJjLDB4MDAsMHhiYiwweDgwLDB4MjMsMHhkNyB9IH0sCi17ICAxNiwgMHg4MTQwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHgzYywweDE0LDB4OGIsMHgwMCwweDZhLDB4MDgsMHgyOCwweGYwLDB4MDAsMHhiYywweDAwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTUwLCAwLCB7MHhiZSwweGMwLDB4ODgsMHhmMCwweDEzLDB4MmMsMHgwMCwweGVmLDB4MDAsMHgyZSwweDgwLDB4MGIsMHhiMCwweDA3LDB4YjIsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMywweDQwLDB4MjAsMHhkMCB9IH0sCi17ICAxNiwgMHg4MTcwLCAwLCB7MHgwYiwweDI4LDB4MDIsMHg4YywweDAwLDB4ODMsMHgwMSwweDIwLDB4YzAsMHgxYSwweGI4LDB4MDAsMHg2YywweDEwLDB4YTEsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTgwLCAwLCB7MHg2OCwweGMwLDB4MmEsMHgzMCwweDAyLDB4OGMsMHgwMCwweGIzLDB4MDIsMHgyZSwweDAwLDB4NGIsMHgzMCwweDAyLDB4ZjgsMHgwNCB9IH0sCi17ICAxNiwgMHg4MTkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweGEwLDB4MjEsMHhlMCB9IH0sCi17ICAxNiwgMHg4MWEwLCAwLCB7MHgwYiwweGVjLDB4YzIsMHgxZSwweDA0LDB4ODcsMHg4MCwweDI5LDB4ZTQsMHgwOCwweDc5LDB4ODIsMHg5ZSwweDQwLDB4YWYsMHg5MCB9IH0sCi17ICAxNiwgMHg4MWIwLCAwLCB7MHgyOSwweGUwLDB4MGEsMHgzOCwweDAwLDB4MWUsMHgwMCwweGE3LDB4OTAsMHgyZCwweDI0LDB4MGIsMHg3OCwweDAyLDB4ODgsMHgwMCB9IH0sCi17ICAxNiwgMHg4MWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4NTAsMHhmYiwweDA5LDB4MzAsMHhjMCB9IH0sCi17ICAxNiwgMHg4MWQwLCAwLCB7MHgwZiwweDIwLDB4MDIsMHg4YywweDQwLDB4YzMsMHgwMCwweDIwLDB4YzAsMHgwYSwweDM4LDB4MDMsMHg0YywweDQ0LDB4ZTEsMHgwMCB9IH0sCi17ICAxNiwgMHg4MWUwLCAwLCB7MHhhYSwweGMwLDB4MGUsMHgzMSwweDQzLDB4OGUsMHgwMCwweGYzLDB4MDAsMHgzYywweDAwLDB4MGYsMHgzMCwweDAzLDB4ZDIsMHgwMiB9IH0sCi17ICAxNiwgMHg4MWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0ZCwweGJjLDB4MDAsMHhmZiwweDIwLDB4M2YsMHhkMCB9IH0sCi17ICAxNiwgMHg4MjAwLCAwLCB7MHg0ZiwweDcwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNkLDB4YzAsMHgwZiwweGYzLDB4NDMsMHhmYywweDQwLDB4ZDcsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjEwLCAwLCB7MHhiZiwweGMwLDB4MGQsMHhmNCwweGMzLDB4ZmMsMHg0MCwweGZmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhmMCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHg4MjIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDAsMHhmYiwweDAwLDB4MzIsMHhkMCB9IH0sCi17ICAxNiwgMHg4MjMwLCAwLCB7MHgwZCwweDkwLDB4MDEsMHhlZCwweGMwLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgxZiwweGJhLDB4MDMsMHhhYywweGMwLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjQwLCAwLCB7MHgzMiwweGUwLDB4OGQsMHhiNCwweDQzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzNiwweGEwLDB4MGMsMHhiMCwweDAzLDB4NmEsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4MDAsMHhiNywweDAwLDB4MjEsMHhjOCB9IH0sCi17ICAxNiwgMHg4MjYwLCAwLCB7MHgwOCwweDYwLDB4MDIsMHhkYywweDIwLDB4YjcsMHgwMCwweDJkLDB4YzAsMHgwZiwweDc0LDB4YTIsMHgxYywweDI4LDB4ZDYsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjcwLCAwLCB7MHgzNSwweGMwLDB4MDgsMHg3MiwweDAyLDB4NWMsMHgwOCwweGI3LDB4NDQsMHhhMSwweDgwLDB4NDgsMHg3MCwweDAyLDB4MTIsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiNywweDgwLDB4MjAsMHhlNCB9IH0sCi17ICAxNiwgMHg4MjkwLCAwLCB7MHgwOSwweDc4LDB4MjYsMHhkZSwweDAwLDB4YjcsMHg4MCwweDJkLDB4ZTIsMHgwYSwweDcwLDB4MTIsMHg4YywweDg4LDB4ODEsMHg4MCB9IH0sCi17ICAxNiwgMHg4MmEwLCAwLCB7MHgyMSwweGUwLDB4MDksMHg3OCwweDAyLDB4ZGUsMHgwMCwweGIzLDB4YTAsMHgyNSwweGEwLDB4MjgsMHg3OCwweDAyLDB4NzAsMHgwNCB9IH0sCi17ICAxNiwgMHg4MmIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDEsMHhiYiwweDgwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHg4MmMwLCAwLCB7MHgwOCwweDMwLDB4NDIsMHhlYywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgwYSwweDMwLDB4MjIsMHgwYywweDAwLDB4OTMsMHgwMCB9IH0sCi17ICAxNiwgMHg4MmQwLCAwLCB7MHgyNCwweGMxLDB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyMCwweGUwLDB4MDgsMHhiMCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHg4MmUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmYSwweDA4LDB4YjIsMHg4MCB9IH0sCi17ICAxNiwgMHg4MmYwLCAwLCB7MHgwZCwweGUyLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHgwMCwweDNmLDB4ODAsMHgwYSwweGEwLDB4MDMsMHhhOCwweDAwLDB4Y2UsMHg1MCB9IH0sCi17ICAxNiwgMHg4MzAwLCAwLCB7MHgzMiwweDgwLDB4MDUsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzNywweGE4LDB4MGMsMHhhMCwweDAzLDB4N2EsMHgwNCB9IH0sCi17ICAxNiwgMHg4MzEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDYwLDB4MDgsMHhmOCwweDAwLDB4M2MsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzIwLCAwLCB7MHgwZiwweDg4LDB4MDEsMHhlMCwweDAwLDB4ZjgsMHgwNCwweDNjLDB4MDAsMHg0ZiwweDAwLDB4MTMsMHhjMCwweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzMwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4NjAsMHgwMCwweGY4LDB4MDIsMHgzZSwweDAxLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhmOSwweDkwLDB4MTIsMHg0MCB9IH0sCi17ICAxNiwgMHg4MzUwLCAwLCB7MHgwYywweDkwLDB4MDMsMHhhNCwweDAwLDB4YzksMHgwMCwweDNlLDB4NzAsMHgwZSwweDk0LDB4MzMsMHgyNCwweDA4LDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHg4MzYwLCAwLCB7MHgyYSwweDQwLDB4MGIsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHg4MzcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDQyLDB4MjIsMHg2MCB9IH0sCi17ICAxNiwgMHg4MzgwLCAwLCB7MHgwOCwweDEwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgwMywweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhhNCwweDAxLDB4ODEsMHgwNCB9IH0sCi17ICAxNiwgMHg4MzkwLCAwLCB7MHgzZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDIsMHgyMiwweDQwLDB4MGUsMHg5MCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4M2EwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDQwLDB4MmEsMHg0YSB9IH0sCi17ICAxNiwgMHg4M2IwLCAwLCB7MHgwOCwweDkxLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDJlLDB4NDAsMHgxYSwweDkwLDB4MGEsMHgyNCwweDA0LDB4ODksMHgwMCB9IH0sCi17ICAxNiwgMHg4M2MwLCAwLCB7MHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGIxLDB4MDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHg4M2QwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMSwweDAxLDB4YTgsMHg0OCB9IH0sCi17ICAxNiwgMHg4M2UwLCAwLCB7MHg4OCwweDkwLDB4MDIsMHgwNCwweDgwLDB4ODEsMHg0MCwweDJjLDB4NTAsMHgxOCwweDE0LDB4MGEsMHg4NCwweDEwLDB4ODksMHg0MCB9IH0sCi17ICAxNiwgMHg4M2YwLCAwLCB7MHgyYywweDQwLDB4MGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweDMxLDB4MjAsMHgyMCwweDQwLDB4MGEsMHgxMCwweDBhLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHg4NDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhmMCwweDUwLDB4M2EsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDEwLCAwLCB7MHgyYywweGEwLDB4MDIsMHhhMSwweDQyLDB4YzgsMHgwMCwweDNlLDB4MDAsMHhkZSwweDAwLDB4MjMsMHgyMSwweDQyLDB4ODgsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDIwLCAwLCB7MHgzOCwweDE0LDB4MGYsMHg4NSwweDAzLDB4ZTEsMHg0MCwweGY4LDB4NTAsMHgzOCwweDE0LDB4MGYsMHgwNSwweDAzLDB4MmUsMHgwMSB9IH0sCi17ICAxNiwgMHg4NDMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGU0LDB4MDgsMHhmZCwweDAwLDB4MzYsMHg0NCB9IH0sCi17ICAxNiwgMHg4NDQwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHg2NCwweDQwLDB4ZjksMHgwMCwweDNkLDB4NTAsMHgwZiwweDk0LDB4MDMsMHhlNSwweDAwLDB4N2QsMHg0MCB9IH0sCi17ICAxNiwgMHg4NDUwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MTAsMHgzZiwweDQwLDB4MGUsMHg5MCwweDAzLDB4ZTYsMHgwNCB9IH0sCi17ICAxNiwgMHg4NDYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU0LDB4MDAsMHhmZCwweDQwLDB4MzMsMHg2OCB9IH0sCi17ICAxNiwgMHg4NDcwLCAwLCB7MHgwYywweGQwLDB4MDMsMHhlNywweDgxLDB4ZjksMHgwMCwweDMzLDB4NzgsMHgwZCwweGQ4LDB4MTMsMHgyNiwweGEwLDB4Y2QsMHhhMCB9IH0sCi17ICAxNiwgMHg4NDgwLCAwLCB7MHgzMiwweDQwLDB4MGQsMHg5YiwweDAzLDB4MjQsMHgwMCwweGY5LDB4YTAsMHgzYywweDQ0LDB4MmMsMHg5MCwweDA3LDB4ODYsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDkwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUwLDB4MDAsMHhiOCwweGEwLDB4YTIsMHgxMCB9IH0sCi17ICAxNiwgMHg4NGEwLCAwLCB7MHgxOCwweDgwLDB4MDMsMHg4MiwweDg0LDB4YjgsMHg4MCwweDM2LDB4MmMsMHgyZSwweDBmLDB4MDIsMHhhMywweGEwLDB4ZDgsMHhlMCB9IH0sCi17ICAxNiwgMHg4NGIwLCAwLCB7MHgzNiwweDIyLDB4OGIsMHgwOCwweDAzLDB4NDIsMHhhMCwweGY4LDB4ZTAsMHgyZSwweDI4LDB4MDgsMHg4OCwweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHg4NGMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDAwLDB4YTAsMHg1MCB9IH0sCi17ICAxNiwgMHg4NGQwLCAwLCB7MHgyOCwweDMwLDB4MDIsMHhjNSwweDgwLDB4YjEsMHgwOCwweDIwLDB4NDAsMHgwOSwweDEwLDB4YTIsMHg0NCwweDA4LDB4ODEsMHg0OCB9IH0sCi17ICAxNiwgMHg4NGUwLCAwLCB7MHgyMCwweDQwLDB4MGIsMHgxNCwweDAyLDB4MDQsMHg4MCwweGIxLDB4MzgsMHgyYywweDQ4LDB4MDgsMHgxMiwweDgyLDB4ODIsMHgwMSB9IH0sCi17ICAxNiwgMHg4NGYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxMSwweGE0LDB4MDAsMHhiMSwweDAwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHg4NTAwLCAwLCB7MHgwOCwweDkyLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMiwweDI2LDB4NTgsMHg0YSwweDkwLDB4MDIsMHhlNCwweDA4LDB4OTksMHg0MCB9IH0sCi17ICAxNiwgMHg4NTEwLCAwLCB7MHgyNiwweDQwLDB4MGIsMHg5MCwweDAyLDB4NjQsMHgwOCwweGI5LDB4MDEsMHgyYywweDQ4LDB4MDgsMHg5MCwweDEyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHg4NTIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweDgwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHg4NTMwLCAwLCB7MHgwOCwweDk4LDB4ODMsMHhlNCwweDA0LDB4YjksMHgwMSwweDMwLDB4NDAsMHgwZCwweDkwLDB4MGIsMHg2NCwweDAyLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHg4NTQwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAsMHgxZSwweDU4LDB4MGMsMHg5MCwweDAzLDB4YTgsMHgwNCB9IH0sCi17ICAxNiwgMHg4NTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDIwLDB4M2MsMHg0MCB9IH0sCi17ICAxNiwgMHg4NTYwLCAwLCB7MHgwZiwweDk4LDB4MDMsMHhhNCwweDAwLDB4YjksMHgwMCwweDNlLDB4NDIsMHg4ZSwweDEwLDB4NGIsMHg4NCwweDA0LDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg4NTcwLCAwLCB7MHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhkOCwweDAwLDB4MzIsMHgwOCB9IH0sCi17ICAxNiwgMHg4NTkwLCAwLCB7MHgwZiwweDg0LDB4ODMsMHhhMCwweDA0LDB4YzgsMHgwNCwweDNlLDB4MDAsMHg4MywweDgwLDB4MDEsMHgyMCwweDAwLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWEwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHgwMCwweDAzLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDEwLDB4NGUsMHg4MCwweDEzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHg4NWIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHg4ZSwweDkwLDB4YTMsMHg4MCB9IH0sCi17ICAxNiwgMHg4NWMwLCAwLCB7MHgwYiwweGU0LDB4MDIsMHgyOCwweDAwLDB4Y2EsMHgwMCwweDJmLDB4ODAsMHg0YSwweGEwLDB4MTMsMHhhOCwweDAwLDB4YWEsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWQwLCAwLCB7MHgzNiwweDgxLDB4MGIsMHhhMCwweDAyLDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAzLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg5MywweGMwLDB4MjAsMHhkMCB9IH0sCi17ICAxNiwgMHg4NWYwLCAwLCB7MHgwYiwweDM0LDB4MDIsMHg4YywweDAwLDB4OGIsMHgwMCwweDJjLDB4ZjAsMHg4YiwweDE4LDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjAwLCAwLCB7MHg2MCwweGMwLDB4MGIsMHgzMCwweDAyLDB4OGMsMHgwMiwweDgzLDB4MDAsMHgyOCwweGMxLDB4MGEsMHgzMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFlLDB4MDAsMHhiNCwweDBiLDB4NjksMHhjMCB9IH0sCi17ICAxNiwgMHg4NjIwLCAwLCB7MHgwOSwweDU4LDB4MDYsMHgxZSwweDgwLDB4OTcsMHgxMCwweDJmLDB4YzIsMHg0OCwweDcwLDB4ODIsMHg5YywweDgwLDB4YTcsMHgwOCB9IH0sCi17ICAxNiwgMHg4NjMwLCAwLCB7MHgyNSwweGNjLDB4MGIsMHg3MCwweDAyLDB4MWUsMHg4MSwweDg3LDB4YTIsMHhhYiwweGM0LDB4MDgsMHg3MywweDAyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNlLDB4MTAsMHhkYywweDg0LDB4MjEsMHhlMCB9IH0sCi17ICAxNiwgMHg4NjUwLCAwLCB7MHgwZiwweDc4LDB4NDIsMHg5ZiwweDAyLDB4YzcsMHg4OCwweDNkLDB4ZTAsMHgyZiwweDcxLDB4MDMsMHg0ZSwweDAwLDB4Y2YsMHg4MCB9IH0sCi17ICAxNiwgMHg4NjYwLCAwLCB7MHgyMSwweGUyLDB4MGYsMHg3OCwweDgzLDB4OWUsMHg0OSwweGNmLDB4ZDAsMHgzOSwweGU4LDB4MGUsMHg3OCwweDAzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHg4NjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg0ZCwweGFjLDB4NDAsMHhjYSwweDAwLDB4MzYsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjgwLCAwLCB7MHg4ZiwweDMwLDB4MjMsMHhlYywweGE4LDB4ZWIsMHg0MCwweDNjLDB4YzAsMHgwZiwweDk2LDB4NDMsMHhlZCwweDgwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjkwLCAwLCB7MHgzZSwweGQ4LDB4OGYsMHhiMSwweDQzLDB4ZWQsMHg4MCwweGZiLDB4MjAsMHgzNiwweGNhLDB4MGYsMHhiMCwweGEzLDB4ODIsMHgwNiB9IH0sCi17ICAxNiwgMHg4NmEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4ODAsMHhmYywweDgwLDB4MzEsMHhlMCB9IH0sCi17ICAxNiwgMHg4NmIwLCAwLCB7MHgwNSwweGFhLDB4MTAsMHhmZSwweDQ0LDB4ZmYsMHg5MCwweDNmLDB4ZTEsMHhjZiwweGY5LDB4MTcsMHgzZiwweDIwLDB4ZDcsMHg4MCB9IH0sCi17ICAxNiwgMHg4NmMwLCAwLCB7MHg4YiwweGU0LDB4MGYsMHhmOCwweDAzLDB4M2UsMHgzMCwweGZmLDB4ODAsMHgzNywweGUwLDB4MGYsMHhmOCwweDAwLDB4NDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDAsMHhiZCwweDEwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHg4NmUwLCAwLCB7MHgwOCwweDRhLDB4MDIsMHhkYywweGMwLDB4YjcsMHgwMCwweDJkLDB4YzIsMHgwYywweGQzLDB4MDIsMHgxYywweDgwLDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHg4NmYwLCAwLCB7MHgyOSwweGMwLDB4NGIsMHg3MiwweDAyLDB4MWMsMHgwMCwweGI3LDB4MDEsMHgyMSwweGMwLDB4MGIsMHhmMCwweDEyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHg4NzAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4OTAsMHgzNCwweDAwLDB4MjEsMHg4MCB9IH0sCi17ICAxNiwgMHg4NzEwLCAwLCB7MHgwOSwweDcwLDB4MDAsMHg1YywweDBjLDB4YjcsMHgwMCwweDJkLDB4YzQsMHgwOCwweDUwLDB4MWEsMHgwYywweDAwLDB4OTcsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzIwLCAwLCB7MHgyMSwweGMwLDB4NGIsMHgzMCwweDAyLDB4MWMsMHgwMCwweGI3LDB4MDAsMHgyNSwweGMwLDB4MGIsMHg3MCwweDAyLDB4NDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMCwweDAwLDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzQwLCAwLCB7MHgwOCwweDNlLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMiwweDBjLDB4ZTAsMHgyYiwweGIwLDB4MDIsMHgwYywweDAwLDB4OTMsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzUwLCAwLCB7MHgyOCwweGMwLDB4MGIsMHhiMCwweDAyLDB4MmMsMHgxMCwweGIzLDB4MDAsMHgyMCwweGQ2LDB4MDMsMHgzMCwweDAyLDB4MDgsMHgwNCB9IH0sCi17ICAxNiwgMHg4NzYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhmYiwweDAwLDB4YjIsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzcwLCAwLCB7MHgwNSwweGJlLDB4MDMsMHg3YywweDAwLDB4ZmYsMHgwMCwweDNlLDB4MjAsMHgwYywweGIwLDB4MDMsMHgzYywweDAwLDB4ZDksMHg4MCB9IH0sCi17ICAxNiwgMHg4NzgwLCAwLCB7MHgzMywweGMwLDB4OGIsMHhmMCwweDAzLDB4M2MsMHgwMCwweGZmLDB4MDAsMHgzNywweGUwLDB4MGYsMHhmMCwweDAzLDB4NmEsMHgwNCB9IH0sCi17ICAxNiwgMHg4NzkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA0LDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2EwLCAwLCB7MHgwZiwweGE0LDB4MjMsMHhjYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4ODEsMHgwOCwweDkwLDB4MDMsMHhlYywweDAwLDB4ZTksMHgxNCB9IH0sCi17ICAxNiwgMHg4N2IwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgxMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2MwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhmZiwweDAwLDB4MzcsMHg4MCB9IH0sCi17ICAxNiwgMHg4N2QwLCAwLCB7MHgwZiwweGZhLDB4MDMsMHhmYywweDAwLDB4Y2YsMHgwMCwweDNmLDB4OTAsMHgwNiwweGRjLDB4MjMsMHgzYywweDAwLDB4ZmQsMHgxMCB9IH0sCi17ICAxNiwgMHg4N2UwLCAwLCB7MHgzMywweGMwLDB4MGYsMHhmMCwweDBiLDB4M2MsMHgwMCwweDQzLDB4MDAsMHgzMywweGMwLDB4MGYsMHhmMCwweDAzLDB4YzAsMHg0NCB9IH0sCi17ICAxNiwgMHg4N2YwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwMCwweDZjLDB4MDksMHhiYiwweDE5LDB4MjIsMHgzMiB9IH0sCi17ICAxNiwgMHg4ODAwLCAwLCB7MHgwYiwweGJlLDB4MDMsMHg2YywweDAwLDB4OGIsMHgwMCwweDJjLDB4OTAsMHgwZCwweGI4LDB4MDIsMHhhYywweDAwLDB4YjEsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODEwLCAwLCB7MHhmMiwweGMwLDB4MGIsMHhiMCwweDEyLDB4YWMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGMwLDB4MGIsMHhiMCwweDAzLDB4YTAsMHg0MCB9IH0sCi17ICAxNiwgMHg4ODIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MTAsMHhiMywweDAwLDB4MjYsMHgyMCB9IH0sCi17ICAxNiwgMHg4ODMwLCAwLCB7MHgwYiwweDkwLDB4MTIsMHhlYywweDAxLDB4OGIsMHgwMCwweDJhLDB4YzIsMHgwYSwweDkwLDB4MDIsMHgyYywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODQwLCAwLCB7MHhhMiwweGMwLDB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGFiLDB4MDAsMHgyYSwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDEsMHhiMywweDAwLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODYwLCAwLCB7MHgwYiwweDAwLDB4MDIsMHg4YywweDAwLDB4ODMsMHgwMCwweDJlLDB4YzAsMHgwYiwweDM0LDB4MDIsMHg4YywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODcwLCAwLCB7MHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGQsMHgwMCwweGEzLDB4MDAsMHhhMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4ODIsMHgwMSB9IH0sCi17ICAxNiwgMHg4ODgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhiYiwweDA0LDB4MzYsMHg4MCB9IH0sCi17ICAxNiwgMHg4ODkwLCAwLCB7MHgwZiwweGIyLDB4MDIsMHhmYywweDAyLDB4Y2YsMHgwMiwweDM4LDB4YzAsMHgwZSwweGYwLDB4MDMsMHgzYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGEwLCAwLCB7MHgyMywweGMwLDB4MGYsMHhmMCwweDAzLDB4M2QsMHgwMiwweGVmLDB4MDAsMHgzMywweGMwLDB4MGYsMHhmMCwweDQzLDB4YzAsMHgwMyB9IH0sCi17ICAxNiwgMHg4OGIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGMwLCAwLCB7MHgwZiwweGY0LDB4MjMsMHg3YywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZCwweGQwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGQwLCAwLCB7MHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHg4OCwweGRmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4YTgsMHgwNiB9IH0sCi17ICAxNiwgMHg4OGUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGYwLDB4NTAsMHhjZSwweDEyLDB4MzMsMHhkMCB9IH0sCi17ICAxNiwgMHg4OGYwLCAwLCB7MHg0YywweDg2LDB4ODMsMHgzMCwweDgwLDB4NWYsMHg2OCwweDMzLDB4YzQsMHgwZiwweGYzLDB4ODMsMHgzYywweGMwLDB4Y2MsMHgzOCB9IH0sCi17ICAxNiwgMHg4OTAwLCAwLCB7MHhiMywweDA4LDB4MGMsMHhjNiwweDAzLDB4ZjEsMHhhMCwweGZmLDB4MDAsMHgzMywweDI0LDB4MGMsMHhjMiwweDAzLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGVjLDB4ODAsMHhkMiwweDIwLDB4MjMsMHhkOCB9IH0sCi17ICAxNiwgMHg4OTIwLCAwLCB7MHgwZCwweDk2LDB4MDIsMHg4OCwweDYwLDB4YWYsMHg0MCwweDIzLDB4ZGMsMHgwYiwweGY2LDB4MDIsMHgzYywweGMyLDB4ODgsMHg2MCB9IH0sCi17ICAxNiwgMHg4OTMwLCAwLCB7MHgyMiwweDUyLDB4MDgsMHg5MSwweDIyLDB4ZTEsMHgwMCwweGI3LDB4MjQsMHhhMiwweDQ4LDB4OGEsMHg4NCwweDgyLDB4NjAsMHgwNCB9IH0sCi17ICAxNiwgMHg4OTQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4MDAsMHg4MSwweDAwLDB4ZTAsMHhjNCB9IH0sCi17ICAxNiwgMHg4OTUwLCAwLCB7MHgwYSwweDAwLDB4MDIsMHgwNCwweDgwLDB4YTMsMHgyMCwweGE4LDB4YzAsMHgxYiwweDMwLDB4MGEsMHgwYywweDAwLDB4YTAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTYwLCAwLCB7MHgyOCwweDBjLDB4MDksMHgwMiwweDAyLDB4YzQsMHg4MCwweGIzLDB4MWMsMHgyMiwweDA4LDB4MTksMHgwMywweDAyLDB4ZTIsMHgxMSB9IH0sCi17ICAxNiwgMHg4OTcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGE0LDB4MDAsMHg5OSwweDgwLDB4NjIsMHhjMCB9IH0sCi17ICAxNiwgMHg4OTgwLCAwLCB7MHgwYiwweGEwLDB4MzIsMHhhNCwweDUxLDB4YWIsMHgwMCwweDJhLDB4YzAsMHg4YiwweGIwLDB4MDAsMHgwYywweDAwLDB4YTksMHhjMCB9IH0sCi17ICAxNiwgMHg4OTkwLCAwLCB7MHgyYSwweDIxLDB4MDgsMHhiOCwweDIyLDB4ZTIsMHgwMCwweGJiLDB4MDAsMHgyMiwweDg0LDB4MWIsMHhhOCwweDQyLDB4NzAsMHgwNCB9IH0sCi17ICAxNiwgMHg4OWEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGUyLDB4MDAsMHhjYiwweGM5LDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHg4OWIwLCAwLCB7MHgwZSwweDhiLDB4MTMsMHgyMiwweDEwLDB4ZGIsMHgwMSwweDMyLDB4YzAsMHgwZiwweGIwLDB4MGIsMHgyYywweDAwLDB4NjgsMHg4MSB9IH0sCi17ICAxNiwgMHg4OWMwLCAwLCB7MHgzYSwweDIyLDB4MmMsMHg4OCwweDIzLDB4ZTMsMHgwMCwweGZiLDB4MDAsMHgzMCwweDMwLDB4OGQsMHg5YywweDgzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHg4OWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGJhLDB4NDAsMHhmNywweDA0LDB4M2UsMHhjMiB9IH0sCi17ICAxNiwgMHg4OWUwLCAwLCB7MHgwZCwweGQ4LDB4MjMsMHhkOCwweDAwLDB4N2IsMHgwMCwweDM3LDB4YzAsMHgwZiwweDcwLDB4MzMsMHhmYywweDEwLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg4OWYwLCAwLCB7MHgzNSwweGMwLDB4OGYsMHhjMCwweDAzLDB4ZjQsMHgwMCwweGY3LDB4MDIsMHgzZiwweGUwLDB4MGUsMHg4MCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweDgxLDB4MjAsMHhjOCwweDA4LDB4MzAsMHhjMCB9IH0sCi17ICAxNiwgMHg4YTEwLCAwLCB7MHgwYywweDAwLDB4ODMsMHgyNCwweDQwLDB4YzMsMHg4OSwweDNhLDB4YzAsMHgwZSwweGIwLDB4MGIsMHgyYywweDA4LDB4YzksMHg0OCB9IH0sCi17ICAxNiwgMHg4YTIwLCAwLCB7MHg3MiwweDU0LDB4MGYsMHg5MSwweDAzLDB4ZWQsMHgwMiwweGViLDB4OGEsMHgzYSwweDYyLDB4OGMsMHg4MCwweDBiLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHg4YTMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJiLDB4MDQsMHg4OCwweDQwLDB4YTMsMHhjMiB9IH0sCi17ICAxNiwgMHg4YTQwLCAwLCB7MHgwMiwweGFlLDB4MTIsMHgyNywweDQyLDB4OGYsMHg0NCwweDIzLDB4YzIsMHgwYiwweGY0LDB4MDIsMHgzZCwweDAwLDB4MGEsMHg0MCB9IH0sCi17ICAxNiwgMHg4YTUwLCAwLCB7MHgyMiwweGUwLDB4MGIsMHhiNSwweDAyLDB4ZWMsMHgyMCwweDhmLDB4NDQsMHhhMiwweDQwLDB4OGQsMHhiZCwweDIzLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ5LDB4NDAsMHg4MywweDgxLDB4MjQsMHhjMSB9IH0sCi17ICAxNiwgMHg4YTcwLCAwLCB7MHgwOCwweDI4LDB4MDIsMHgwMSwweDAwLDB4OTMsMHgwMCwweGEwLDB4ZTgsMHgwYSwweDMwLDB4ODIsMHg4ZiwweDYwLDB4YjMsMHg5MCB9IH0sCi17ICAxNiwgMHg4YTgwLCAwLCB7MHg2MCwweGI4LDB4MGIsMHgyOCwweDEyLDB4NGEsMHgwMCwweDkzLDB4MDAsMHgyMCwweDkwLDB4MDksMHgyMCwweDAyLDB4NzgsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFlLDB4MDIsMHg4NywweGE4LDB4MjUsMHhlMCB9IH0sCi17ICAxNiwgMHg4YWEwLCAwLCB7MHgwYSwweDdiLDB4MDIsMHgxYSwweDA0LDB4ODcsMHg4MCwweDIxLDB4ZTQsMHgwYiwweDc4LDB4ODIsMHg4ZSwweDAyLDB4OTYsMHg5MSB9IH0sCi17ICAxNiwgMHg4YWIwLCAwLCB7MHgyMSwweDIxLDB4MGIsMHg2OSwweDQwLDB4ZGIsMHg0MCwweDk3LDB4OTIsMHgyMywweGEwLDB4ODksMHg1OCwweDgyLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDI1LDB4ODIsMHhjMywweDAwLDB4MzQsMHhjMCB9IH0sCi17ICAxNiwgMHg4YWQwLCAwLCB7MHgwYywweDliLDB4NDMsMHgwOCwweGQwLDB4ZDMsMHgyMCwweDM4LDB4YzAsMHgwZSwweGIwLDB4MDMsMHg4YywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWUwLCAwLCB7MHgyMCwweDgwLDB4MDcsMHgxMCwweDAzLDB4ZTAsMHgwMCwweGQzLDB4MTAsMHgzOCwweDE4LDB4MGQsMHgzMCwweDAzLDB4NTIsMHgwMiB9IH0sCi17ICAxNiwgMHg4YWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGI0LDB4MDAsMHg3ZiwweDIwLDB4MWIsMHhkMCB9IH0sCi17ICAxNiwgMHg4YjAwLCAwLCB7MHgwZiwweGYxLDB4MDMsMHhmOCwweDQwLDB4ZWYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGI0LDB4MDMsMHg3YywweDIwLDB4Y2YsMHgwNCB9IH0sCi17ICAxNiwgMHg4YjEwLCAwLCB7MHhiZiwweDQwLDB4MGYsMHhmMCwweDAzLDB4ZTQsMHgxMCwweGVmLDB4MTgsMHgzZCwweGMwLDB4MGYsMHhlMCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHg4YjIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU4LDB4MDAsMHhlMywweDAwLDB4YjIsMHhjNCB9IH0sCi17ICAxNiwgMHg4YjMwLCAwLCB7MHgwYywweGEwLDB4MDMsMHgyNCwweDAwLDB4ZGIsMHg2OCwweDMyLDB4YzgsMHgwYywweGI0LDB4MDMsMHhlYywweDgwLDB4YzgsMHg4MCB9IH0sCi17ICAxNiwgMHg4YjQwLCAwLCB7MHhiNiwweGUwLDB4MGMsMHhhMCwweDAzLDB4MmUsMHgwMCwweGNiLDB4ZTAsMHhiMiwweDYwLDB4MGMsMHhiOCwweDBiLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4MDIsMHg4NywweDAwLDB4YTEsMHhjOCB9IH0sCi17ICAxNiwgMHg4YjYwLCAwLCB7MHgwOCwweDcwLDB4MDIsMHgxYywweDA4LDB4OTcsMHgwMiwweDIxLDB4ZDQsMHgwOCwweDc0LDB4MDIsMHhkYywweGMwLDB4MDcsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjcwLCAwLCB7MHgyMSwweGMwLDB4ODgsMHg3MCwweDAyLDB4MTgsMHgwMCwweDgzLDB4MDgsMHgyMSwweGMwLDB4MDgsMHg1MCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHg4YjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MjAsMHhhZCwweDgwLDB4MjksMHhlMCB9IH0sCi17ICAxNiwgMHg4YjkwLCAwLCB7MHgwOCwweDU4LDB4MDIsMHgxZSwweDAwLDB4OTcsMHhiMCwweDIxLDB4ZTgsMHgwOCwweDc4LDB4MDIsMHhkZSwweDEwLDB4MTUsMHg4MCB9IH0sCi17ICAxNiwgMHg4YmEwLCAwLCB7MHgyMSwweGExLDB4MDgsMHg0OCwweDAyLDB4NWUsMHgwMCwweDg3LDB4YTQsMHg2NSwweGEwLDB4MDgsMHg3OCwweDAyLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNmLDB4MTAsMHg4MSwweDcwLDB4YTgsMHhjMCB9IH0sCi17ICAxNiwgMHg4YmMwLCAwLCB7MHgzOCwweDMwLDB4MGEsMHgwZCwweDAwLDB4OTMsMHgwMCwweGEwLDB4YzEsMHgyOCwweDMwLDB4MDIsMHhjYywweDAyLDB4ODMsMHg4OCB9IH0sCi17ICAxNiwgMHg4YmQwLCAwLCB7MHgyMCwweGUwLDB4MzgsMHgzNCwweDBhLDB4NGQsMHg3MiwweDgzLDB4MDAsMHgyNCwweGU4LDB4MjgsMHgzNCwweDgyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHg4YmUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGJhLDB4NDAsMHhlZSwweGMwLDB4YmEsMHg4MCB9IH0sCi17ICAxNiwgMHg4YmYwLCAwLCB7MHgwYywweGUwLDB4MDMsMHgzOSwweDEwLDB4ZGEsMHgwMCwweDMyLDB4ODAsMHgwYywweGEwLDB4MDMsMHhlOCwweDAwLDB4ZGUsMHhjOCB9IH0sCi17ICAxNiwgMHg4YzAwLCAwLCB7MHgzMywweGEwLDB4MGMsMHhlMCwweDAzLDB4N2IsMHgwMCwweGNhLDB4MDAsMHgzNywweGIxLDB4MGMsMHhlNCwweDIzLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHg4YzEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGMxLDB4MDAsMHhmOCwweDAwLDB4MzYsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzIwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhjMCwweDIwLDB4MzgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDAwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMiB9IH0sCi17ICAxNiwgMHg4YzMwLCAwLCB7MHgzYSwweDI0LDB4MGYsMHg4MCwweDgzLDB4YTAsMHgwMSwweGY4LDB4MDQsMHgzYSwweDA0LDB4MGQsMHg4MCwweDEzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4NDQsMHhjMSwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHg4YzUwLCAwLCB7MHgwYywweDkwLDB4MzIsMHgyNCwweDBjLDB4YzEsMHgwNiwweDM4LDB4NDAsMHgwZCwweDkwLDB4MDksMHgwNCwweDAwLDB4ZDksMHgwMCB9IH0sCi17ICAxNiwgMHg4YzYwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHgxOCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDEsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHg4YzcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDYsMHg4OSwweDAwLDB4MmEsMHg1MCB9IH0sCi17ICAxNiwgMHg4YzgwLCAwLCB7MHgwOCwweDk0LDB4MGEsMHgyNCwweDAwLDB4ODksMHg0MiwweDIyLDB4NTAsMHgwYSwweDkwLDB4MTIsMHgyNSwweDAwLDB4ODksMHgwMCB9IH0sCi17ICAxNiwgMHg4YzkwLCAwLCB7MHgyZSwweDUwLDB4MGIsMHg5YywweDBhLDB4MjUsMHgxMCwweGI5LDB4MDAsMHgyZSwweDUwLDB4MGIsMHg5MCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2EwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MjAsMHg4OSwweDAwLDB4MjAsMHg0MiB9IH0sCi17ICAxNiwgMHg4Y2IwLCAwLCB7MHgwOCwweDEwLDB4YzIsMHhhYywweDEwLDB4ODksMHgwOCwweDJhLDB4NDIsMHgwOSwweDkwLDB4MDIsMHgyNCwweDIwLDB4OTksMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2MwLCAwLCB7MHgyZSwweDQyLDB4MGEsMHhiMSwweDgyLDB4MmMsMHgyMCwweGI5LDB4MDAsMHg2ZSwweDQyLDB4MGIsMHg5MCwweDAyLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2QwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4MDAsMHg4MywweDAwLDB4MjgsMHg0OCB9IH0sCi17ICAxNiwgMHg4Y2UwLCAwLCB7MHgwOCwweDEyLDB4NjIsMHg4YywweDgwLDB4ODEsMHgwMCwweDIwLDB4NDAsMHgwMiwweDEwLDB4MDIsMHg4NCwweDgwLDB4ODEsMHgyMCB9IH0sCi17ICAxNiwgMHg4Y2YwLCAwLCB7MHgyYywweDQ5LDB4MGIsMHgxMiwweDA2LDB4MDQsMHg4NCwweGIzLDB4MDIsMHg2YywweDQwLDB4MGIsMHgxMiwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg4ZDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDQxLDB4ZTAsMHhjOCwweDc4LDB4MzAsMHgxNCB9IH0sCi17ICAxNiwgMHg4ZDEwLCAwLCB7MHg0YywweDA1LDB4MTMsMHhhMSwweDQyLDB4YzAsMHg3OCwweDM4LDB4MWUsMHgwZCwweDg3LDB4ODMsMHgwMSwweDQwLDB4ZDAsMHg1MCB9IH0sCi17ICAxNiwgMHg4ZDIwLCAwLCB7MHgzYywweDE0LDB4MGUsMHgwNSwweDAzLDB4MDEsMHg0MCwweGY4LDB4NzgsMHgzYywweDE0LDB4MGYsMHgwNSwweDAzLDB4ZWUsMHgwMyB9IH0sCi17ICAxNiwgMHg4ZDMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGZjLDB4MDAsMHhmZiwweDAwLDB4MGUsMHg0NCB9IH0sCi17ICAxNiwgMHg4ZDQwLCAwLCB7MHgyZiwweGYxLDB4MDMsMHg3NCwweDQwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZCwweDkwLDB4MDMsMHg2NCwweDQwLDB4ZmQsMHgxMCB9IH0sCi17ICAxNiwgMHg4ZDUwLCAwLCB7MHgzZiwweDQ0LDB4MGYsMHhkMSwweDAxLDB4ZjQsMHg0MCwweGY5LDB4MDEsMHgzZiwweGMwLDB4MGYsMHhkMSwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHg4ZDYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU2LDB4MjIsMHhlOSwweDg4LDB4YjIsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZDcwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyNCwweDE2LDB4YzksMHg4YywweDM2LDB4N2IsMHg4ZiwweDljLDB4ODMsMHhhNywweDkwLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDgwLCAwLCB7MHgzZSwweDUwLDB4MDQsMHg5NCwweDEzLDB4MjQsMHg1MCwweGM5LDB4ZTAsMHgzZSwweDUwLDB4MGYsMHg5MCwweDAzLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDkwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUyLDB4ODAsMHg4OCwweGEwLDB4MjIsMHgyOCB9IH0sCi17ICAxNiwgMHg4ZGEwLCAwLCB7MHgwYiwweDhhLDB4MDIsMHgyYSwweDgwLDB4ODgsMHhhNCwweDIyLDB4MzAsMHgwOCwweDhlLDB4MGEsMHgyMiwweDAyLDB4ODgsMHhhMCB9IH0sCi17ICAxNiwgMHg4ZGIwLCAwLCB7MHgyZSwweDI4LDB4ODgsMHhhYSwweDEyLDB4MjIsMHg5MCwweDg4LDB4ZjQsMHgyZSwweDIwLDB4MGIsMHhjOCwweDAyLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZGMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGQ0LDB4MjAsMHhhNSwweDA4LDB4MjEsMHg0MiB9IH0sCi17ICAxNiwgMHg4ZGQwLCAwLCB7MHgwYiwweDUwLDB4ODIsMHgxNCwweDMxLDB4ODUsMHgwOCwweDI1LDB4NDAsMHgwYSwweDUwLDB4MjIsMHg5NCwweDQwLDB4ODUsMHgwOCB9IH0sCi17ICAxNiwgMHg4ZGUwLCAwLCB7MHg2ZCwweDQwLDB4MDgsMHg1MCwweDAyLDB4NTQsMHgwMiwweDk1LDB4MDAsMHgyZCwweDQ4LDB4MGIsMHg1MCwweDgyLDB4NDIsMHgwMSB9IH0sCi17ICAxNiwgMHg4ZGYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweDg0LDB4MDAsMHg4ZCwweDEwLDB4MjMsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZTAwLCAwLCB7MHgwYiwweGQwLDB4MDAsMHgzNCwweDAxLDB4OGQsMHgwMCwweDIzLDB4NDEsMHg1OCwweGQwLDB4MDIsMHgzNCwweDAwLDB4OGQsMHgwOCB9IH0sCi17ICAxNiwgMHg4ZTEwLCAwLCB7MHgyZiwweDUwLDB4MDgsMHhkMiwweDAyLDB4NzQsMHg4MCwweDlkLDB4MDAsMHgyZiwweDQ4LDB4MGIsMHhkYywweDAyLDB4NDYsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZTIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU3LDB4NDAsMHhlOSwweGMwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZTMwLCAwLCB7MHgwZiwweDkwLDB4MDksMHgyNiwweDAwLDB4YzksMHgwNCwweDM2LDB4NDAsMHgxZiwweDkwLDB4MjMsMHhhNCwweDA4LDB4YzksMHg0MCB9IH0sCi17ICAxNiwgMHg4ZTQwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHg5NCwweDBiLDB4NjQsMHgyMCwweGQ5LDB4MDIsMHgzZSwweDQxLDB4MGYsMHg5NCwweDAzLDB4NjgsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDgwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZTYwLCAwLCB7MHgwZiwweDE0LDB4MDMsMHhjNSwweDA4LDB4ZjksMHgwMCwweDNlLDB4NDAsMHgxZiwweDkwLDB4MjMsMHhlNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTcwLCAwLCB7MHgzYywweDQwLDB4YWYsMHg5OCwweDAzLDB4ODYsMHgwMCwweGU5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHgxMCwweDBiLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGIwLDB4MDAsMHhkYywweDQwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTkwLCAwLCB7MHgwZiwweGMwLDB4MDMsMHgzMSwweDAyLDB4YzQsMHgwNCwweGIxLDB4MDAsMHgzYywweDQwLDB4MDMsMHgxMCwweDAwLDB4ZmMsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZWEwLCAwLCB7MHgzMywweDAwLDB4MGMsMHhjNCwweDAzLDB4YjEsMHgwMCwweGNjLDB4MDAsMHhiMywweDAwLDB4MGMsMHhjNCwweDAzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHg4ZWIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHg4YSwweDgwLDB4MjIsMHhhMCB9IH0sCi17ICAxNiwgMHg4ZWMwLCAwLCB7MHgwYiwweGEwLDB4MDIsMHgyYSwweDAwLDB4OGEsMHg4NCwweDIyLDB4YTEsMHgwOCwweGEwLDB4MDIsMHgyOCwweDA4LDB4YmEsMHgwMSB9IH0sCi17ICAxNiwgMHg4ZWQwLCAwLCB7MHgyMiwweDgwLDB4MDgsMHhhMCwweDJiLDB4MjgsMHgwMCwweDhhLDB4ODAsMHgyYSwweDgwLDB4MDgsMHhlMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZWUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDIsMHg5YiwweDgxLDB4MjAsMHhlMCB9IH0sCi17ICAxNiwgMHg4ZWYwLCAwLCB7MHg4YiwweDM4LDB4MDYsMHhjZSwweDAwLDB4OTMsMHg4MCwweDIwLDB4YzAsMHgwOCwweDM4LDB4MDIsMHgwYywweDAwLDB4YjMsMHg4MCB9IH0sCi17ICAxNiwgMHg4ZjAwLCAwLCB7MHg2YywweGUwLDB4MGEsMHhiMCwweDAyLDB4NGMsMHgwMCwweDkzLDB4MDAsMHgyMCwweGUwLDB4MDgsMHgzMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDEwLDB4MDQsMHg4MCwweDA4LDB4MjEsMHgwMiB9IH0sCi17ICAxNiwgMHg4ZjIwLCAwLCB7MHg0YiwweDQ0LDB4MDYsMHhkMCwweDIwLDB4OTAsMHgwOCwweDIxLDB4MDIsMHg4MCwweDQ0LDB4MDIsMHgxMCwweDAwLDB4YjQsMHhjMCB9IH0sCi17ICAxNiwgMHg4ZjMwLCAwLCB7MHgyZCwweDEwLDB4NDgsMHg0MCwweDAyLDB4MDAsMHgwMCwweDk0LDB4ODksMHgyOSwweDMwLDB4MDgsMHg0MCwweDAyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDMyLDB4MDAsMHhkNiwweDgwLDB4MzEsMHhhMCB9IH0sCi17ICAxNiwgMHg4ZjUwLCAwLCB7MHgwZiwweGU4LDB4MGIsMHhjYSwweDAwLDB4ZDYsMHg4MCwweDIzLDB4YTAsMHgwNCwweGY4LDB4MGIsMHgxYSwweDAwLDB4ZmYsMHg4MCB9IH0sCi17ICAxNiwgMHg4ZjYwLCAwLCB7MHhiZiwweGEwLDB4MmUsMHhjOCwweDEzLDB4ZGEsMHgwMiwweDVlLDB4ODAsMHg3MywweGEwLDB4MmMsMHg3OCwweDAzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHg4ZjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHg4ZjgwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZTksMHgwMCwweDNlLDB4NDAsMHgwZSwweDgwLDB4MDMsMHhlNCwweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjkwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHhiMCwweDAzLDB4ZTQsMHgwMSwweGU5LDB4MDQsMHgzNiwweDQwLDB4MGYsMHg4MCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHg4ZmEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhjZCwweDgwLDB4MzMsMHg2MCB9IH0sCi17ICAxNiwgMHg4ZmIwLCAwLCB7MHgwYywweGQ4LDB4NDMsMHgzNiwweDAwLDB4Y2QsMHg4MCwweDMzLDB4NjAsMHgwYywweGQ5LDB4MjMsMHhiZSwweDAwLDB4NGQsMHg4MCB9IH0sCi17ICAxNiwgMHg4ZmMwLCAwLCB7MHgzMywweDYwLDB4MDgsMHhmOCwweDBiLDB4M2UsMHgwMCwweGZkLDB4ODQsMHgzZiwweDYwLDB4MGYsMHhmOSwweDAzLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDkwLDB4MDQsMHhkZSwweDAwLDB4MjMsMHg4MCB9IH0sCi17ICAxNiwgMHg4ZmUwLCAwLCB7MHgwOCwweDYwLDB4MDIsMHhiOCwweDIwLDB4OGUsMHgwNCwweDIzLDB4ODAsMHgwOCwweDY4LDB4MDIsMHgxMCwweDAwLDB4OGUsMHgyMCB9IH0sCi17ICAxNiwgMHg4ZmYwLCAwLCB7MHgyMywweDgyLDB4MDgsMHg0MCwweDAyLDB4MTIsMHgwMCwweGY2LDB4MDAsMHgyZCwweDgwLDB4MGIsMHg0MSwweGEwLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHg5MDAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHg4NCwweDAwLDB4MjEsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDEwLCAwLCB7MHgwOCwweDQxLDB4MDIsMHg1MCwweDQwLDB4OTQsMHgwMCwweDIxLDB4MDAsMHgwYSwweDUyLDB4MDIsMHhkOCwweDAwLDB4ODUsMHgwMiB9IH0sCi17ICAxNiwgMHg5MDIwLCAwLCB7MHgyNSwweDA0LDB4MDgsMHg0MCwweDIyLDB4MTgsMHgwOCwweGI0LDB4MDAsMHgyZCwweDEwLDB4MGIsMHg3OCwweDQwLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGVlLDB4MjIsMHg5MywweDAwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHg5MDQwLCAwLCB7MHgwOCwweDM4LDB4MDIsMHhlYywweDAwLDB4OTMsMHgwMCwweDIwLDB4YzEsMHgyYSwweDIwLDB4MDIsMHg2NCwweDAyLDB4ODIsMHgxMCB9IH0sCi17ICAxNiwgMHg5MDUwLCAwLCB7MHgyNCwweGYwLDB4MGEsMHgzYywweDQyLDB4MjQsMHgyOCwweGIzLDB4MDAsMHgyYywweGUwLDB4MGIsMHg4OCwweDgyLDB4YzgsMHgwNCB9IH0sCi17ICAxNiwgMHg5MDYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFkLDB4MDAsMHhjYiwweDAwLDB4YjIsMHhjMCB9IH0sCi17ICAxNiwgMHg5MDcwLCAwLCB7MHhhYywweGJlLDB4MDMsMHg2ZSwweDAyLDB4ZGIsMHgwMCwweGIyLDB4YzAsMHgxZSwweGEwLDB4MDMsMHhlNCwweDAwLDB4Y2EsMHgxMSB9IH0sCi17ICAxNiwgMHg5MDgwLCAwLCB7MHhiNiwweGQwLDB4YWMsMHhiYywweDAzLDB4MjQsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4Y2YsMHg4NCwweDAzLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHg5MDkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGUwLDB4NDAsMHhmOCwweDAwLDB4M2MsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGEwLCAwLCB7MHgyZiwweDgyLDB4MDMsMHhhMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgxZCwweDkwLDB4MTMsMHhhOCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg5MGIwLCAwLCB7MHgzYSwweDAwLDB4ODEsMHg4MywweDQzLDB4ZTgsMHgwMCwweGU4LDB4MDMsMHgzZSwweDA0LDB4MGYsMHhiMCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGUwLDB4MDAsMHhkNiwweDAwLDB4MzcsMHg4MCB9IH0sCi17ICAxNiwgMHg5MGQwLCAwLCB7MHgwYywweGEwLDB4MDMsMHhmOCwweDAwLDB4Y2UsMHgwMCwweDMzLDB4ODAsMHgwZCwweGEwLDB4MTMsMHgyMCwweDA4LDB4Y2UsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGUwLCAwLCB7MHgzMywweDgyLDB4MGMsMHg0MCwweDczLDB4MzAsMHgxOCwweGNlLDB4MDAsMHgxZiwweDgwLDB4NGYsMHhjMSwweDQzLDB4MDAsMHg0NCB9IH0sCi17ICAxNiwgMHg5MGYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDdjLDB4MDAsMHg4ZCwweDAwLDB4MjMsMHg0MCB9IH0sCi17ICAxNiwgMHg5MTAwLCAwLCB7MHgwYSwweGQwLDB4MDIsMHhmNCwweDAwLDB4OGQsMHgwMCwweDIzLDB4NDAsMHgwOCwweGQ0LDB4ODAsMHgzZSwweDQyLDB4OGQsMHg0MCB9IH0sCi17ICAxNiwgMHg5MTEwLCAwLCB7MHgyMywweDQwLDB4MDgsMHhmMCwweDAyLDB4M2UsMHg0MCwweDhkLDB4MDAsMHgwZiwweDQwLDB4MGIsMHhmNCwweDAyLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHg5MTIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5OSwweDAwLDB4YTYsMHg0MCB9IH0sCi17ICAxNiwgMHg5MTMwLCAwLCB7MHgwOCwweDkwLDB4MDYsMHhlNCwweDAwLDB4OTEsMHgwMCwweDIwLDB4NDAsMHg4OCwweDAwLDB4MDIsMHgyNCwweDA4LDB4ODAsMHg0MCB9IH0sCi17ICAxNiwgMHg5MTQwLCAwLCB7MHgyMCwweDQwLDB4MGEsMHhiMCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgwZSwweDQwLDB4MGIsMHg4NCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHg5MTYwLCAwLCB7MHgwYSwweDIxLDB4MDYsMHhjOCwweDAxLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDMyLDB4ODIsMHgwOCwweDA4LDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTcwLCAwLCB7MHg2MCwweDgwLDB4MGEsMHgwMCwweDEyLDB4MDgsMHg4MCwweDgyLDB4MDAsMHgyYywweDgwLDB4MGIsMHgzMCwweDBhLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHg5MTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTkwLCAwLCB7MHgwYywweDg0LDB4MjMsMHhlMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAsMHgwZCwweDgyLDB4MGIsMHgyMCwweDAyLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHg5MWEwLCAwLCB7MHgzMiwweDAwLDB4MGUsMHgwMCwweDAzLDB4MjAsMHgwMiwweGM4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHg5MWIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGZjLDB4MDAsMHhiZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHg5MWMwLCAwLCB7MHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCwweGJmLDB4YzAsMHg4ZiwweGIwLDB4MDMsMHhmYywweDA4LDB4ZmYsMHgwMiB9IH0sCi17ICAxNiwgMHg5MWQwLCAwLCB7MHgzZiwweGMwLDB4MGQsMHhmMCwweDAzLDB4ZWQsMHgwMCwweGZmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHg5MWUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMSwweGYwLDB4OGMsMHhmZiwweDAwLDB4M2QsMHg2MCB9IH0sCi17ICAxNiwgMHg5MWYwLCAwLCB7MHgyYywweGIyLDB4ODMsMHg3YywweDkwLDB4ZGYsMHgzOCwweDMxLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHgzYywweDAwLDB4ZmYsMHgyMCB9IH0sCi17ICAxNiwgMHg5MjAwLCAwLCB7MHgzZiwweGM0LDB4MGUsMHhmNCwweDAzLDB4N2MsMHgwMCwweGY0LDB4ODAsMHgzMywweDAwLDB4MGQsMHhmOCwweDAzLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MjEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGUxLDB4MjAsMHhiYiwweDYyLDB4MmUsMHg0MiB9IH0sCi17ICAxNiwgMHg5MjIwLCAwLCB7MHgyOCwweGY0LDB4NDIsMHgzZSwweDQwLDB4OGYsMHg0NCwweDIyLDB4ZTAsMHgwYiwweGIwLDB4ODMsMHg3ZiwweDQ0LDB4YmYsMHhjMSB9IH0sCi17ICAxNiwgMHg5MjMwLCAwLCB7MHgyZCwweGRjLDB4MmEsMHhmNiwweDAyLDB4M2YsMHg0NSwweGI4LDB4ODAsMHgyMiwweDYxLDB4ODgsMHhiOCwweDAyLDB4ZTAsMHgwNCB9IH0sCi17ICAxNiwgMHg5MjQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM1LDB4ODAsMHhiMiwweDE4LDB4MmUsMHhjOCB9IH0sCi17ICAxNiwgMHg5MjUwLCAwLCB7MHgyOSwweDMwLDB4MzIsMHgwYywweDA4LDB4YjMsMHgyMCwweDIwLDB4YzAsMHg0YiwweDkyLDB4MDIsMHgwYywweDAwLDB4YjMsMHg0MCB9IH0sCi17ICAxNiwgMHg5MjYwLCAwLCB7MHgyYywweGMwLDB4ODksMHgzNCwweDEyLDB4NGMsMHgwMCwweGIwLDB4MDAsMHgyNCwweGMxLDB4NDksMHgzMCwweDAyLDB4ZTIsMHgwMSB9IH0sCi17ICAxNiwgMHg5MjcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMSwweGE0LDB4MDAsMHhiYSwweDBjLDB4MmUsMHhlMCB9IH0sCi17ICAxNiwgMHg5MjgwLCAwLCB7MHhhOSwweGIwLDB4MDYsMHgyYywweDAwLDB4OGIsMHgwMCwweGEyLDB4YzAsMHgwYiwweDkwLDB4MDAsMHg2YywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5MjkwLCAwLCB7MHgyZSwweGMwLDB4MGIsMHgzMCwweDAyLDB4NmMsMHgwMCwweGJhLDB4ODAsMHgyNiwweGYwLDB4MDgsMHhiMCwweDAyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHg5MmEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMSwweGVlLDB4MDAsMHhmYiwweGM0LDB4M2UsMHg3OCB9IH0sCi17ICAxNiwgMHg5MmIwLCAwLCB7MHgyZCwweGIwLDB4MDMsMHg2YywweDA4LDB4ZmIsMHgwMCwweDMyLDB4YzAsMHg4YiwweDI0LDB4ODMsMHgyYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5MmMwLCAwLCB7MHgzZSwweGMwLDB4OGYsMHhiMCwweDBiLDB4NmMsMHgwOCwweGIyLDB4ZTAsMHgxNiwweDYwLDB4OGQsMHhiMCwweDIzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHg5MmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGJlLDB4OTgsMHhmZiwweDQwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHg5MmUwLCAwLCB7MHgwZSwweDcwLDB4MDMsMHhkYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGUwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg5MmYwLCAwLCB7MHgzZiwweGMwLDB4MGUsMHhmMCwweDAzLDB4YWMsMHgwMCwweGZlLDB4MDAsMHhiOSwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5MzAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFkLDB4MDAsMHhmYSwweDQwLDB4M2UsMHhkMCB9IH0sCi17ICAxNiwgMHg5MzEwLCAwLCB7MHgwZSwweGIyLDB4MDMsMHhlYywweDAwLDB4YzMsMHgwMCwweDNlLDB4YzAsMHgwYywweGEwLDB4MDMsMHgyYywweDAxLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5MzIwLCAwLCB7MHgzYywweGMwLDB4MGUsMHhiOCwweDAzLDB4ZWMsMHgwMCwweGRhLDB4MDAsMHgzYSwweGQwLDB4NGYsMHhiMCwweDIzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHg5MzMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJjLDB4MDAsMHhiYSwweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHg5MzQwLCAwLCB7MHgwOCwweGY0LDB4MDcsMHhiYywweDE0LDB4ZGYsMHgwMCwweDNlLDB4YzAsMHgxYSwweGEwLDB4NTIsMHhiYywweDAwLDB4YmYsMHgwNCB9IH0sCi17ICAxNiwgMHg5MzUwLCAwLCB7MHgzZiwweGMwLDB4OGEsMHhmMCwweDAzLDB4YmMsMHgwMCwweGZhLDB4MDAsMHgyMiwweGM4LDB4MGYsMHhiMCwweDAzLDB4ZjIsMHgwMCB9IH0sCi17ICAxNiwgMHg5MzYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ4LDB4MDEsMHhiMSwweDAwLDB4NmMsMHhjMiB9IH0sCi17ICAxNiwgMHg5MzcwLCAwLCB7MHgwYSwweDMwLDB4NDIsMHhjYywweDAwLDB4ODMsMHgwNSwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHg4YywweDAxLDB4YjMsMHgwNCB9IH0sCi17ICAxNiwgMHg5MzgwLCAwLCB7MHgyYywweGMwLDB4MGEsMHgzMCwweDIyLDB4OGMsMHgwMCwweDgwLDB4ODAsMHgyOCwweGMwLDB4MGIsMHgzMCwweDIyLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5MzkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFlLDB4MDgsMHhiNywweDgwLDB4NmYsMHhlMCB9IH0sCi17ICAxNiwgMHg5M2EwLCAwLCB7MHgxOCwweDc4LDB4MDIsMHg4ZSwweDQwLDB4YjcsMHg4MCwweDJkLDB4ZTAsMHgwYSwweDc4LDB4MDIsMHg5ZSwweDAwLDB4YjcsMHg4MCB9IH0sCi17ICAxNiwgMHg5M2IwLCAwLCB7MHgyOSwweGUxLDB4MGEsMHg3OCwweDAyLDB4OWUsMHgwMSwweGJjLDB4ODAsMHgyOSwweGU0LDB4MGIsMHg3OCwweDAyLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHg5M2MwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA5LDB4NDAsMHhmMSwweDIwLDB4M2MsMHhjNCB9IH0sCi17ICAxNiwgMHg5M2QwLCAwLCB7MHgwZSwweDM5LDB4MDIsMHhjYywweDAwLDB4YzMsMHgwMCwweDJjLDB4YzQsMHgwOCwweDkyLDB4MDMsMHg4YywweDg4LDB4YjMsMHgxMCB9IH0sCi17ICAxNiwgMHg5M2UwLCAwLCB7MHgyYywweGM0LDB4MGUsMHhiMCwweDA3LDB4OGMsMHgwMCwweGMyLDB4MDgsMHgzOCwweGMwLDB4MGYsMHgzMCwweDQzLDB4ZDIsMHgwMiB9IH0sCi17ICAxNiwgMHg5M2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGJjLDB4MTAsMHhmYywweDAwLDB4N2YsMHhjMCB9IH0sCi17ICAxNiwgMHg5NDAwLCAwLCB7MHgwZiwweGYwLDB4ODMsMHhmYywweDIxLDB4ZGYsMHgwOCwweDNiLDB4YzAsMHg4ZiwweDkwLDB4MDEsMHhmYywweDIxLDB4ZmYsMHgwYyB9IH0sCi17ICAxNiwgMHg5NDEwLCAwLCB7MHgzZiwweGMyLDB4MGYsMHhmMSwweDAzLDB4ZWMsMHgwMCwweGVmLDB4MDAsMHg3NywweGMwLDB4MWUsMHhmMCwweDAzLDB4OTAsMHgwNiB9IH0sCi17ICAxNiwgMHg5NDIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU4LDB4MDEsMHhmOSwweDAwLDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHg5NDMwLCAwLCB7MHgwZiwweGIyLDB4MDMsMHhlZSwweDkwLDB4ZGIsMHhlMSwweDNhLDB4YzAsMHg0ZCwweDM4LDB4MTMsMHgyZCwweDMwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5NDQwLCAwLCB7MHgzZSwweGUwLDB4NGYsMHhiYSwweDQzLDB4MmMsMHg0MCwweGZhLDB4MDAsMHgzZiwweGMwLDB4OGMsMHhiMCwweDAzLDB4ZWEsMHgwMCB9IH0sCi17ICAxNiwgMHg5NDUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4MDAsMHhiMSwweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHg5NDYwLCAwLCB7MHgwYiwweDcxLDB4MDIsMHhjYywweDIwLDB4YTcsMHgyOCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MTMsMHg1YywweDA4LDB4YjcsMHgxMCB9IH0sCi17ICAxNiwgMHg5NDcwLCAwLCB7MHgyZCwweGM0LDB4NGIsMHgzNCwweDgzLDB4MWMsMHhjMSwweGI3LDB4MDIsMHgyZCwweGMwLDB4MWEsMHg3MCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHg5NDgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlhLDB4MjAsMHhiNCwweGM0LDB4MjUsMHhhMiB9IH0sCi17ICAxNiwgMHg5NDkwLCAwLCB7MHgwYiwweDc4LDB4MDYsMHhkZSwweDAwLDB4ODMsMHg4MCwweDI5LDB4ZTAsMHgxYiwweGY4LDB4MDIsMHg1ZSwweDgwLDB4YTcsMHhhMCB9IH0sCi17ICAxNiwgMHg5NGEwLCAwLCB7MHgyZCwweGM4LDB4MGEsMHg3MiwweDAyLDB4MWUsMHgwMCwweGE2LDB4ODAsMHgyOCwweGUwLDB4MDgsMHg3OCwweDAyLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg5NGIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGVkLDB4MDAsMHhiMywweDQwLDB4MjQsMHhjMyB9IH0sCi17ICAxNiwgMHg5NGMwLCAwLCB7MHgwYiwweDMwLDB4NDIsMHhjYywweDAwLDB4YTMsMHgwMCwweDIwLDB4YzAsMHgxYiwweDM0LDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHg5NGQwLCAwLCB7MHgyYywweGMwLDB4NGIsMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4ODgsMHgyYywweGQ0LDB4MGEsMHgzMCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHg5NGUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4MDAsMHhmZSwweDQwLDB4YjcsMHhhMCB9IH0sCi17ICAxNiwgMHg5NGYwLCAwLCB7MHgwZiwweGEwLDB4MDMsMHhlOCwweDAwLDB4ZGEsMHgwMCwweDNhLDB4ODAsMHgwZiwweGUyLDB4MDMsMHg2OCwweDAwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHg5NTAwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDBiLDB4MjgsMHgwMCwweGVlLDB4ZTAsMHgzZiwweGIwLDB4MDQsMHhhMCwweDAzLDB4ZmEsMHgwNCB9IH0sCi17ICAxNiwgMHg5NTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MDQsMHhmMCwweDA4LDB4M2EsMHgxMCB9IH0sCi17ICAxNiwgMHg5NTIwLCAwLCB7MHgwZiwweDg0LDB4MDMsMHhlMCwweDEwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHg0ZiwweDgwLDB4ODMsMHhlMCwweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5NTMwLCAwLCB7MHgzYywweDAwLDB4MGYsMHg4MCwweDAzLDB4ODAsMHgwMCwweGY4LDB4NDAsMHgzZSwweDA5LDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg5NTQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MjAsMHhlOSwweDAwLDB4MzIsMHg0NCB9IH0sCi17ICAxNiwgMHg5NTUwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MTMsMHhlNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHg5NTYwLCAwLCB7MHgxZSwweDQwLDB4MGMsMHgxMCwweDAzLDB4MjQsMHgwMCwweGM5LDB4YTAsMHgzYywweDY0LDB4MGMsMHg5MCwweDAzLDB4ODIsMHgwNCB9IH0sCi17ICAxNiwgMHg5NTcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg2OCB9IH0sCi17ICAxNiwgMHg5NTgwLCAwLCB7MHgwOCwweDEzLDB4MDIsMHgyNCwweDA4LDB4ZjksMHgwMCwweDJlLDB4NDgsMHgxYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHg5NTkwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHg5MCwweDAyLDB4MjQsMHgwOCwweGY5LDB4NDAsMHgyZSwweDYwLDB4MGEsMHg5MCwweDA2LDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5NWEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHhhOSwweDAwLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHg5NWIwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMSwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHg5NWMwLCAwLCB7MHgyZSwweDQwLDB4MDgsMHg5MiwweDIyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHg5NWQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIxLDB4ZTAsMHg1MCB9IH0sCi17ICAxNiwgMHg5NWUwLCAwLCB7MHgyOCwweDE2LDB4MGEsMHgwNCwweDgwLDB4YTEsMHg0MCwweDJjLDB4NDAsMHg0YiwweDE0LDB4MjIsMHhjNCwweDAwLDB4YjEsMHgwMCB9IH0sCi17ICAxNiwgMHg5NWYwLCAwLCB7MHgyYywweDUwLDB4MDksMHgxNCwweDAyLDB4MDQsMHgwNCwweGIxLDB4MDAsMHgyYywweDQwLDB4MGEsMHgxMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg5NjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhlOCwweDUwLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHg5NjEwLCAwLCB7MHg4YywweDgwLDB4MDIsMHgyMCwweDAwLDB4YjgsMHgwMCwweDNlLDB4MDAsMHgwYiwweDgwLDB4MzMsMHhlMCwweDEwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5NjIwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwOCwweGNhLDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4YWUsMHgwMyB9IH0sCi17ICAxNiwgMHg5NjMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGZjLDB4NDAsMHhmZCwweDEwLDB4MmYsMHg0MSB9IH0sCi17ICAxNiwgMHg5NjQwLCAwLCB7MHg0ZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHg0MCwweDNlLDB4NDAsMHg0ZiwweGQwLDB4NjMsMHhlNSwweDAwLDB4ZjksMHg0MCB9IH0sCi17ICAxNiwgMHg5NjUwLCAwLCB7MHgzYSwweDUwLDB4MmUsMHg5NCwweDAzLDB4NjUsMHgwMCwweGVkLDB4MDAsMHgzZiwweDUwLDB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHg5NjYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGU2LDB4MDAsMHhmOSwweGUwLDB4MzMsMHg1MCB9IH0sCi17ICAxNiwgMHg5NjcwLCAwLCB7MHgwYywweGRhLDB4MDMsMHhhNiwweDAwLDB4ZDksMHg4MCwweDNmLDB4NDAsMHgwZiwweDkxLDB4MDMsMHhhNiwweDAwLDB4ZjksMHg4OCB9IH0sCi17ICAxNiwgMHg5NjgwLCAwLCB7MHgzZSwweDY4LDB4MGMsMHhkZSwweDAzLDB4NjYsMHgwMCwweGVkLDB4MDAsMHgzYiwweDY5LDB4MGMsMHg5MCwweDAzLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHg5NjkwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUxLDB4MDgsMHhiOCwweGUwLDB4MjAsMHgyMCB9IH0sCi17ICAxNiwgMHg5NmEwLCAwLCB7MHgxOCwweDhlLDB4MjYsMHhlMSwweDAwLDB4ODAsMHhhMCwweDJlLDB4MDAsMHg0YiwweDg4LDB4NDIsMHhlMSwweDUwLDB4YjgsMHg0MCB9IH0sCi17ICAxNiwgMHg5NmIwLCAwLCB7MHgyZSwweDJhLDB4MGQsMHgwYSwweDAyLDB4MjAsMHgwOCwweGI4LDB4MDAsMHgyZSwweDE0LDB4MGQsMHg4MCwweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHg5NmMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDYwLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHg5NmQwLCAwLCB7MHgwOCwweDMxLDB4YTIsMHhjNSwweDAwLDB4OTEsMHg0OCwweDJjLDB4NDAsMHgxYiwweDEyLDB4MDIsMHg4NCwweDAwLDB4YjEsMHgwMCB9IH0sCi17ICAxNiwgMHg5NmUwLCAwLCB7MHgyYywweDUwLDB4MDksMHgxNiwweDAyLDB4MDUsMHgwMCwweGEzLDB4MDQsMHgyOCwweDQwLDB4MDgsMHgxMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg5NmYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGE0LDB4MDAsMHhiOSwweDA4LDB4MjAsMHg3MCB9IH0sCi17ICAxNiwgMHg5NzAwLCAwLCB7MHgyOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDA4LDB4YjksMHgwMyB9IH0sCi17ICAxNiwgMHg5NzEwLCAwLCB7MHgyYywweDQwLDB4MjksMHg5MCwweDAyLDB4NjQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDYyLDB4MDksMHg5MCwweDAyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHg5NzIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU1LDB4MDAsMHhmOSwweGQwLDB4YjIsMHg3MCB9IH0sCi17ICAxNiwgMHg5NzMwLCAwLCB7MHgwOCwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZDksMHgwNCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhhNCwweDEwLDB4ZjksMHgwMiB9IH0sCi17ICAxNiwgMHg5NzQwLCAwLCB7MHgzZSwweDQwLDB4MGQsMHg5MCwweDJiLDB4NjQsMHgwMCwweGU5LDB4OGQsMHgzYSwweDYwLDB4MGMsMHg5MCwweDAzLDB4ZTgsMHgwNCB9IH0sCi17ICAxNiwgMHg5NzUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDgwLDB4M2UsMHg0MiB9IH0sCi17ICAxNiwgMHg5NzYwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDlhLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg5NzcwLCAwLCB7MHgzZSwweDQwLDB4MmYsMHgxMCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MjIsMHgzYywweDQwLDB4NGYsMHg5MCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg5NzgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMCwweGEwLDB4MDAsMHhmMCwweDQwLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHg5NzkwLCAwLCB7MHgwYywweDgwLDB4MDMsMHhjMCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MjAsMHgxZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHg5N2EwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4MCwweDAyLDB4MjAsMHgwMCwweGM4LDB4YzAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHg5N2IwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxNSwweDI4LDB4MTAsMHhiYSwweDAwLDB4MjMsMHhhMCB9IH0sCi17ICAxNiwgMHg5N2MwLCAwLCB7MHgwYSwweGU0LDB4MDIsMHhlOCwweDAwLDB4YmEsMHgwMCwweDJiLDB4YTEsMHgwYiwweGEwLDB4MDIsMHhlOCwweDAwLDB4YWEsMHgwMCB9IH0sCi17ICAxNiwgMHg5N2QwLCAwLCB7MHgyYSwweDgxLDB4MGEsMHhhMCwweDAzLDB4ZTgsMHgwOCwweGRlLDB4MDAsMHgyZSwweDgwLDB4MGEsMHhhMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg5N2UwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDA0LDB4YTAsMHhiMSB9IH0sCi17ICAxNiwgMHg5N2YwLCAwLCB7MHgwOCwweDM2LDB4MjIsMHhjYywweDAwLDB4YjMsMHgwMCwweDIwLDB4ZTQsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHg5ODAwLCAwLCB7MHgyMCwweGMwLDB4MDgsMHgxOCwweDAyLDB4MGMsMHgwMCwweDkxLDB4MDEsMHgyYywweGMwLDB4MDgsMHgzMCwweDA2LDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg5ODEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFjLDB4YzgsMHhiMywweDIxLDB4MjEsMHhjMiB9IH0sCi17ICAxNiwgMHg5ODIwLCAwLCB7MHgyYSwweDcwLDB4MDIsMHhkYywweDAwLDB4YjcsMHhhMCwweDI5LDB4YzAsMHgwYiwweDcyLDB4MDIsMHhjZSwweDAwLDB4YTcsMHg4MSB9IH0sCi17ICAxNiwgMHg5ODMwLCAwLCB7MHgyOSwweGMwLDB4NGEsMHg3NCwweDAyLDB4ZmUsMHgwMCwweDk3LDB4MDEsMHgyYywweGMwLDB4MGEsMHg3MCwweDEyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHg5ODQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4ODAsMHhmNywweGMwLDB4MzEsMHhlMCB9IH0sCi17ICAxNiwgMHg5ODUwLCAwLCB7MHgwYywweDQ4LDB4MDMsMHhkZSwweDExLDB4ZjcsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDdhLDB4MDMsMHhkZSwweDAwLDB4YzMsMHg4MCB9IH0sCi17ICAxNiwgMHg5ODYwLCAwLCB7MHgzMywweGQ4LDB4NmMsMHg3OCwweDAzLDB4M2UsMHgwMCwweGQ2LDB4ODAsMHgzZCwweGUwLDB4MGMsMHg3OCwweDAzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHg5ODcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwZCwweGFjLDB4MDgsMHhmYiwweDgwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHg5ODgwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHhlYywweDA0LDB4ZmIsMHgzYywweDNlLDB4YzAsMHgwZiwweGI2LDB4MDcsMHg2YywweDAxLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5ODkwLCAwLCB7MHgzZSwweGQwLDB4MGYsMHg5NCwweDA3LDB4ZWMsMHgwMSwweGVhLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHg5OGEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweGZlLDB4MDAsMHhjZiwweGE0LDB4M2IsMHg2MCB9IH0sCi17ICAxNiwgMHg5OGIwLCAwLCB7MHgwOCwweGQ5LDB4MDMsMHg3ZSwweDAwLDB4Y2YsMHg4MCwweDNmLDB4MjUsMHg0ZiwweGZjLDB4ODcsMHhiZSwweDAwLDB4Y2YsMHg4MCB9IH0sCi17ICAxNiwgMHg5OGMwLCAwLCB7MHg3ZiwweGZjLDB4MGMsMHhmYywweDAzLDB4N2MsMHgwMCwweGY2LDB4OTAsMHgzMywweGUwLDB4MGYsMHhmOCwweDAzLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg5OGQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDgsMHg4ZiwweDI4LDB4MjEsMHg0MCB9IH0sCi17ICAxNiwgMHg5OGUwLCAwLCB7MHgwOCwweGQwLDB4MDIsMHgxYywweDQwLDB4YTcsMHgyMCwweDMxLDB4MDQsMHgxYiwweDc4LDB4MDIsMHhkYywweDgwLDB4ZDcsMHgwMCB9IH0sCi17ICAxNiwgMHg5OGYwLCAwLCB7MHgyZiwweGM0LDB4MWEsMHhkMCwweDAyLDB4MWUsMHg0OCwweGI2LDB4MDAsMHg2MSwweGMwLDB4MGIsMHg3MCwweDA2LDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHg5OTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDhjLDB4MDAsMHg4NywweDMwLDB4NjksMHg0NCB9IH0sCi17ICAxNiwgMHg5OTEwLCAwLCB7MHgwOCwweDUwLDB4MjIsMHgwYywweDAwLDB4ODcsMHgwMSwweDJkLDB4NDQsMHg4YiwweDcwLDB4MDYsMHg4YywweDEwLDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHg5OTIwLCAwLCB7MHgyOSwweGM5LDB4MDgsMHg1MCwweDAyLDB4MWMsMHg0NCwweGE2LDB4MDAsMHg2MSwweGMwLDB4MGIsMHg3MCwweDAyLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg5OTMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNkLDB4MDAsMHg4MywweDg4LDB4NjAsMHg0MCB9IH0sCi17ICAxNiwgMHg5OTQwLCAwLCB7MHgwMCwweDEwLDB4MDIsMHg0YywweDAwLDB4MmIsMHgwMCwweDJjLDB4NDEsMHgxYiwweDMwLDB4MDIsMHhjYywweDAwLDB4OTMsMHgwMCB9IH0sCi17ICAxNiwgMHg5OTUwLCAwLCB7MHgyYywweGMwLDB4MGEsMHgzMCwweDQyLDB4MGMsMHgwMCwweGIyLDB4NDAsMHgyMCwweGYxLDB4MGIsMHgzMCwweDAyLDB4YzgsMHgwNCB9IH0sCi17ICAxNiwgMHg5OTYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJkLDB4NDEsMHhjZiwweGMwLDB4YmEsMHhmMCB9IH0sCi17ICAxNiwgMHg5OTcwLCAwLCB7MHgyOCwweDkwLDB4MWIsMHg2YywweDA4LDB4Y2YsMHgwMCwweDJjLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhhYywweDAwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHg5OTgwLCAwLCB7MHgzZiwweGMwLDB4NmMsMHhiMCwweDRiLDB4MmMsMHgwMSwweGZiLDB4NDAsMHgyMiwweGM4LDB4MGYsMHhiMCwweDAzLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHg5OTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4MDQsMHhmYiwweDA0LDB4M2YsMHhkNCB9IH0sCi17ICAxNiwgMHg5OWEwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHhhYywweDAwLDB4ZmIsMHgwMCwweDMyLDB4YzAsMHg1ZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwNCB9IH0sCi17ICAxNiwgMHg5OWIwLCAwLCB7MHgzZSwweGMwLDB4NGYsMHgxMCwweDEzLDB4ZWMsMHgwMCwweGZiLDB4ODgsMHgzZSwweGMwLDB4NGYsMHhiMCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5OWMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGRjLDB4MDAsMHhjNywweDAwLDB4MzMsMHg2MiB9IH0sCi17ICAxNiwgMHg5OWQwLCAwLCB7MHgwYywweGMwLDB4MGIsMHgzYywweDAwLDB4ZWYsMHgwMCwweDMzLDB4ZTAsMHgxYywweGYwLDB4MTMsMHgzYywweDA4LDB4ZjcsMHgwMCB9IH0sCi17ICAxNiwgMHg5OWUwLCAwLCB7MHgzMSwweGMwLDB4MGUsMHhkOCwweDAzLDB4YmMsMHgwMCwweGZlLDB4MDAsMHgzZCwweGM2LDB4MGMsMHhmMCwweDAzLDB4YzAsMHg0NCB9IH0sCi17ICAxNiwgMHg5OWYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZjLDB4MDAsMHhjYiwweDAzLDB4MjIsMHg0NyB9IH0sCi17ICAxNiwgMHg5YTAwLCAwLCB7MHgwOCwweDk4LDB4NDIsMHgyYywweDAwLDB4OWIsMHgwMCwweDJhLDB4YzAsMHgwYSwweGIwLDB4MDIsMHgyYywweDAwLDB4YmIsMHgwNCB9IH0sCi17ICAxNiwgMHg5YTEwLCAwLCB7MHgyYSwweGMwLDB4MGEsMHhiMCwweDAyLDB4YWMsMHgwOCwweGZhLDB4MDAsMHgyZSwweDYwLDB4MDgsMHhiMCwweDAyLDB4ZTAsMHg0MCB9IH0sCi17ICAxNiwgMHg5YTIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5YiwweDAwLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHg5YTMwLCAwLCB7MHgwOCwweDk4LDB4MDIsMHgyYywweDAwLDB4YmIsMHgwMCwweDIyLDB4ODgsMHgwOCwweDMwLDB4MDIsMHgyYywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YTQwLCAwLCB7MHgyMiwweGMwLDB4OGEsMHg5MiwweDAyLDB4YWMsMHgwMCwweGFhLDB4ODAsMHgyZSwweGMwLDB4MDgsMHhiMCwweDA2LDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5YTUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MywweDAwLDB4YTAsMHg0MCB9IH0sCi17ICAxNiwgMHg5YTYwLCAwLCB7MHgwOCwweDEwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweDI4LDB4ODAsMHgwYSwweDMyLDB4MTIsMHgwYywweDAwLDB4YjMsMHgwNCB9IH0sCi17ICAxNiwgMHg5YTcwLCAwLCB7MHgyOCwweGMwLDB4MGEsMHgzMCwweDIyLDB4OGMsMHgyMCwweGIyLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg5YTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDIsMHhjYiwweDAwLDB4MzAsMHg0MCB9IH0sCi17ICAxNiwgMHg5YTkwLCAwLCB7MHgxYywweDk0LDB4MDMsMHgyYywweDAwLDB4ZWYsMHgwMCwweDMyLDB4YzAsMHg4OCwweGYwLDB4OGIsMHgyYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YWEwLCAwLCB7MHgzMywweGMwLDB4YWUsMHhmMCwweDAzLDB4YWMsMHg4MCwweGVhLDB4MDEsMHgzZSwweGMwLDB4MmMsMHhiMCwweDAzLDB4YzAsMHgwMyB9IH0sCi17ICAxNiwgMHg5YWIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDAwLDB4MmYsMHg0MCB9IH0sCi17ICAxNiwgMHg5YWMwLCAwLCB7MHgwNywweGQyLDB4ODMsMHhmYywweDAwLDB4ZGYsMHgwNCwweDNmLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg5YWQwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhkMCwweDBiLDB4ZWMsMHgwMCwweGVlLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhmMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHg5YWUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGY1LDB4MDAsMHhjZiwweDA4LDB4M2YsMHg0OCB9IH0sCi17ICAxNiwgMHg5YWYwLCAwLCB7MHgwZiwweGMzLDB4OTMsMHg3MCwweGQwLDB4ZGMsMHgzMCwweDNmLDB4ZDgsMHgwYywweGIyLDB4MDMsMHgzYywweGMwLDB4ZmYsMHg0MCB9IH0sCi17ICAxNiwgMHg5YjAwLCAwLCB7MHgzMywweGM0LDB4MmMsMHhmMSwweDAzLDB4NjIsMHg1MCwweGZjLDB4MzQsMHgzMywweDAwLDB4MGYsMHg1YywweDAzLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg5YjEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGM0LDB4ODAsMHg4YiwweDAwLDB4MmYsMHg1YSB9IH0sCi17ICAxNiwgMHg5YjIwLCAwLCB7MHgwYiwweGE2LDB4MTIsMHgyMSwweGMwLDB4ODksMHg3MCwweDJmLDB4ZGMsMHgwOCwweGYyLDB4YzIsMHgzZCwweGQwLDB4YmYsMHg0MCB9IH0sCi17ICAxNiwgMHg5YjMwLCAwLCB7MHgzNywweGRjLDB4ODgsMHhmNSwweDBhLDB4MjAsMHg4MCwweGU4LDB4MTAsMHgyYSwweDE2LDB4MGIsMHg5MCwweDAyLDB4ZTAsMHgwNCB9IH0sCi17ICAxNiwgMHg5YjQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGMwLDB4MDAsMHg4MywweDA4LDB4MmMsMHg0NCB9IH0sCi17ICAxNiwgMHg5YjUwLCAwLCB7MHgwYiwweDAyLDB4MDIsMHgwYywweDAwLDB4ODAsMHgwMCwweDJjLDB4YzgsMHgwOCwweDMzLDB4NDIsMHg4YywweDkwLDB4YjMsMHgzMCB9IH0sCi17ICAxNiwgMHg5YjYwLCAwLCB7MHgyOCwweGM4LDB4NGEsMHgzMiwweDEyLDB4ODAsMHgwYywweGIwLDB4YTAsMHgyOCwweDI4LDB4MGIsMHgxMiwweDAyLDB4ZTIsMHgwMSB9IH0sCi17ICAxNiwgMHg5YjcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGEyLDB4MDAsMHg4YiwweDAwLDB4MmUsMHg0OCB9IH0sCi17ICAxNiwgMHg5YjgwLCAwLCB7MHgwYiwweGEwLDB4MjIsMHgyMCwweDIwLDB4ODgsMHg4MCwweDJlLDB4YzAsMHgyOCwweGIwLDB4MGEsMHhhYywweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YjkwLCAwLCB7MHgyZSwweGMwLDB4MGEsMHhiMCwweDAyLDB4YTAsMHgwMCwweGFiLDB4ODIsMHgyYSwweGEwLDB4MGIsMHhiMiwweDAyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHg5YmEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGU3LDB4MDAsMHhjYiwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHg5YmIwLCAwLCB7MHhjZiwweDljLDB4MGIsMHgyMSwweDAwLDB4ZDgsMHg4OCwweDNlLDB4YzAsMHgwYywweGIwLDB4MDMsMHhhYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YmMwLCAwLCB7MHgzYSwweGMwLDB4MGUsMHhiMCwweDQzLDB4ZTgsMHg0MCwweGY4LDB4ODAsMHgzYSwweDYwLDB4MGYsMHg5OCwweDAzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHg5YmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI0LDB4MDAsMHhmZiwweDAwLDB4MGYsMHhlMCB9IH0sCi17ICAxNiwgMHg5YmUwLCAwLCB7MHgwNywweGExLDB4MDMsMHhlOCwweDAyLDB4ZmIsMHgwMCwweDNmLDB4YzAsMHgwZiwweDcwLDB4MjMsMHg3YywweDAwLDB4ZmYsMHgwMiB9IH0sCi17ICAxNiwgMHg5YmYwLCAwLCB7MHgzNSwweGMwLDB4NGQsMHhiMCwweDAzLDB4NzQsMHgyMCwweGZjLDB4MDEsMHgzZiwweDAwLDB4MGYsMHhmOCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGE1LDB4MDAsMHhjYiwweDAwLDB4YmEsMHg0MCB9IH0sCi17ICAxNiwgMHg5YzEwLCAwLCB7MHgwYywweDE0LDB4MGIsMHgyZiwweDIyLDB4YzksMHg0MCwweDMyLDB4YzAsMHg4ZSwweGIwLDB4MDMsMHhhYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzIwLCAwLCB7MHgzZSwweGMwLDB4MGUsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzMiwweDAwLDB4MmMsMHg5MCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHg5YzMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwMSwweDI0LDB4MDAsMHg4ZiwweDAwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHg5YzQwLCAwLCB7MHgyYywweGE1LDB4NDIsMHgyOSwweDAwLDB4OGIsMHgwNCwweGEzLDB4YzEsMHgwZCwweGYwLDB4MGEsMHgzYywweDAwLDB4YmYsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzUwLCAwLCB7MHgzZiwweGMwLDB4MDgsMHhmMCwweDAxLDB4NjksMHgwMCwweGRhLDB4MDUsMHgyMiwweGQwLDB4MDgsMHg5NCwweDAzLDB4NzIsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDYwLDB4NDAsMHg4MywweDAxLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHg5YzcwLCAwLCB7MHgwOSwweDAwLDB4MDIsMHgyMCwweDAwLDB4ODIsMHg2MCwweDIyLDB4YzAsMHgwOCwweDMwLDB4NDIsMHg0YywweDEwLDB4YmIsMHgwMiB9IH0sCi17ICAxNiwgMHg5YzgwLCAwLCB7MHgyYywweGMwLDB4MDgsMHhiMCwweDEyLDB4MDUsMHgwMCwweDliLDB4MDAsMHgyMCwweDgyLDB4MDksMHgzMiwweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHg5YzkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDE2LDB4OTAsMHg4NywweDgwLDB4MjAsMHhlMCB9IH0sCi17ICAxNiwgMHg5Y2EwLCAwLCB7MHgwOCwweDU4LDB4MDIsMHgxNiwweDE0LDB4ODQsMHg4MSwweDIxLDB4ZTAsMHgyOSwweDM5LDB4MDIsMHg1ZSwweDAwLDB4YjcsMHg4MCB9IH0sCi17ICAxNiwgMHg5Y2IwLCAwLCB7MHgyOCwweGUwLDB4MDgsMHg3OCwweDAyLDB4N2EsMHg4MCwweDk2LDB4ODEsMHgyMSwweGUwLDB4MDksMHhmOCwweDAyLDB4NDgsMHgwMCB9IH0sCi17ICAxNiwgMHg5Y2MwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA4LDB4MDksMHg4YiwweDEwLDB4MzgsMHg0NCB9IH0sCi17ICAxNiwgMHg5Y2QwLCAwLCB7MHg0ZCwweDI1LDB4MTIsMHgwYywweDAwLDB4YzIsMHgxMCwweDIyLDB4YzgsMHgwYSwweDM4LDB4MDMsMHhjYywweDAwLDB4ZjMsMHgxMCB9IH0sCi17ICAxNiwgMHg5Y2UwLCAwLCB7MHgyYywweGMwLDB4MGMsMHgzMCwweDAzLDB4OGEsMHhjMCwweGQ5LDB4MTAsMHgzMiwweDQwLDB4MmQsMHgxMCwweDAzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHg5Y2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGJjLDB4ODAsMHhmZiwweDAwLDB4M2YsMHg0MCB9IH0sCi17ICAxNiwgMHg5ZDAwLCAwLCB7MHgwZiwweGYwLDB4MDMsMHhmNCwweDQwLDB4ZWQsMHgwMCwweDNmLDB4YzAsMHgwZSwweGYzLDB4MDMsMHhiYywweDA0LDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZDEwLCAwLCB7MHgzZiwweGMyLDB4MGYsMHhmMCwweDBiLDB4ZDQsMHgwMCwweGZmLDB4MTAsMHhiZiwweDgwLDB4MGUsMHhmMCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHg5ZDIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGZhLDB4MDAsMHhjYiwweDAyLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHg5ZDMwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhhMCwweDAwLDB4Y2IsMHgwMCwweDNhLDB4Y2EsMHgwYywweGIzLDB4MTMsMHhhZiwweDI0LDB4Y2IsMHg0OCB9IH0sCi17ICAxNiwgMHg5ZDQwLCAwLCB7MHgxZSwweGM4LDB4MGYsMHhiNiwweDAzLDB4MmMsMHgwMCwweGZhLDB4MDAsMHgzZSwweGMwLDB4MGYsMHg5MCwweDAzLDB4ZWEsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZDUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4MDgsMHg4NywweDIwLDB4MmQsMHhjNCB9IH0sCi17ICAxNiwgMHg5ZDYwLCAwLCB7MHgwYiwweDUwLDB4MTIsMHhkYywweDA0LDB4ODcsMHgwMCwweDJjLDB4YzAsMHgwOCwweDcwLDB4YTIsMHgxZCwweDAwLDB4YTcsMHg0MCB9IH0sCi17ICAxNiwgMHg5ZDcwLCAwLCB7MHgyNSwweGNiLDB4OGIsMHg3NCwweDgyLDB4MWMsMHgwMCwweGI3LDB4MDAsMHgyZCwweGMxLDB4MGIsMHg3MCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZDgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlhLDB4MDEsMHg4NywweDkwLDB4MmQsMHhlMCB9IH0sCi17ICAxNiwgMHg5ZDkwLCAwLCB7MHgwYiwweDc4LDB4MDIsMHhjZSwweDAwLDB4ODYsMHg4MCwweDJkLDB4ZTQsMHgyOSwweDdhLDB4MDIsMHg5ZSwweDgwLDB4ODcsMHhhMCB9IH0sCi17ICAxNiwgMHg5ZGEwLCAwLCB7MHg2ZCwweGU4LDB4MGIsMHg3OCwweDAyLDB4MWUsMHgwMCwweGI1LDB4ODAsMHgyZCwweDYwLDB4MGIsMHg3OCwweDAyLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZGIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNkLDB4MDAsMHg4MywweDAyLDB4MmMsMHhlMCB9IH0sCi17ICAxNiwgMHg5ZGMwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4ODMsMHhlMCwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwYywweDAwLDB4YTMsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZGQwLCAwLCB7MHgyNCwweGMwLDB4MGIsMHhiMCwweDAyLDB4MGUsMHgyMCwweGIzLDB4MDgsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZGUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4ODIsMHhjYSwweDAwLDB4M2UsMHhhOCB9IH0sCi17ICAxNiwgMHg5ZGYwLCAwLCB7MHgwZiwweGUwLDB4MDMsMHhmOCwweDAyLDB4OGUsMHg4MCwweDNlLDB4ODAsMHgwZCwweGEwLDB4NWIsMHhhOCwweDAwLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZTAwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4M2IsMHg4MCwweGZlLDB4NDIsMHgyZiwweDgwLDB4MGYsMHhhOCwweDAzLDB4ZmEsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MjAsMHhmOCwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZTIwLCAwLCB7MHgwZiwweDA2LDB4MDMsMHhjMCwweDAwLDB4ZjgsMHgxMSwweDNlLDB4MDAsMHgwZiwweDAwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZTMwLCAwLCB7MHgzNiwweDAwLDB4MGYsMHg4MCwweDBiLDB4ZTAsMHgwMCwweGY4LDB4MDQsMHgzZSwweDIwLDB4MGYsMHg4MSwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZTQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHg5ZTUwLCAwLCB7MHgwYywweDlhLDB4MDMsMHgyNCwweDQwLDB4YzksMHhjMCwweDNlLDB4NDAsMHg0YywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHg5ZTYwLCAwLCB7MHgzNiwweDQwLDB4MDcsMHg5MCwweDAzLDB4MjQsMHgwMCwweGM5LDB4MDQsMHgzMiwweDYwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZTcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDAyLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHg5ZTgwLCAwLCB7MHgwYSwweDkyLDB4MDIsMHgyNSwweDAyLDB4ODksMHhlMCwweDJlLDB4NDAsMHg5OCwweDkwLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHg5ZTkwLCAwLCB7MHgyMiwweDQwLDB4MDksMHg5MCwweDAyLDB4MDQsMHgwMCwweGQ5LDB4MDAsMHgyMiwweDQ0LDB4MGIsMHg5YywweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZWEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDJjLDB4MDAsMHhiOSwweDAwLDB4MmMsMHg0MCB9IH0sCi17ICAxNiwgMHg5ZWIwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgyNCwweDI4LDB4ODksMHgwMCwweDJjLDB4NDAsMHg2OCwweDkwLDB4NDIsMHgyNCwweDBjLDB4YjEsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZWMwLCAwLCB7MHgyNiwweDQwLDB4MGIsMHg5MCwweDBhLDB4MmMsMHg4MCwweDgxLDB4MDAsMHgyMiwweDQwLDB4Y2IsMHg5MiwweDgyLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZWQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMSwweDIwLDB4MmMsMHg0OCB9IH0sCi17ICAxNiwgMHg5ZWUwLCAwLCB7MHgwYSwweDEyLDB4MDIsMHgwNCwweDgwLDB4ODEsMHgyMSwweDJjLDB4NGMsMHgwOCwweDExLDB4MDIsMHgwNCwweDA4LDB4YjEsMHgxMCB9IH0sCi17ICAxNiwgMHg5ZWYwLCAwLCB7MHgyMCwweDRjLDB4MDksMHgxMiwweDAyLDB4MjQsMHgwMSwweDkxLDB4MjAsMHhhMCwweDQ4LDB4MGIsMHgxMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg5ZjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDQxLDB4ZTAsMHhmOCwweDUwLDB4M2UsMHgxNCB9IH0sCi17ICAxNiwgMHg5ZjEwLCAwLCB7MHgwYywweDg1LDB4MDMsMHgyMSwweDQwLDB4YzgsMHg1MCwweDNlLDB4MTAsMHgwOCwweDA2LDB4ODMsMHgwMSwweGYwLDB4ZjgsMHg2OCB9IH0sCi17ICAxNiwgMHg5ZjIwLCAwLCB7MHgzNiwweDEwLDB4MGYsMHgwNSwweDAzLDB4MjksMHg0MCwweGM4LDB4NTAsMHgzMiwweDk0LDB4MGYsMHg4NSwweDAzLDB4ZWUsMHgwMyB9IH0sCi17ICAxNiwgMHg5ZjMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGY0LDB4MDAsMHhmOSwweDEwLDB4M2YsMHg0NCB9IH0sCi17ICAxNiwgMHg5ZjQwLCAwLCB7MHgwZiwweGQxLDB4MGIsMHhmNCwweDQwLDB4ZmQsMHgxMiwweDJlLDB4NGMsMHgwMywweDkyLDB4MGIsMHhlNCwweDAwLDB4ZjksMHgyMCB9IH0sCi17ICAxNiwgMHg5ZjUwLCAwLCB7MHgzZSwweDRjLDB4MGYsMHg5MSwweDAzLDB4ZmMsMHgwMCwweGZkLDB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHg5ZjYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4MjAsMHhjOSwweDAxLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHg5ZjcwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHgzYywweDAwLDB4YmQsMHgwMCwweDMyLDB4NjMsMHgwYywweDllLDB4NDMsMHgyNywweDAwLDB4ZTksMHhjMCB9IH0sCi17ICAxNiwgMHg5ZjgwLCAwLCB7MHgzZSwweDY4LDB4MGMsMHg5OCwweDAzLDB4MzQsMHgwMCwweGY5LDB4MTAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZjkwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGMyLDB4MjAsMHhkOCwweDAwLDB4MmUsMHgwMCB9IH0sCi17ICAxNiwgMHg5ZmEwLCAwLCB7MHgwYiwweDgwLDB4NTIsMHgyOCwweDA0LDB4YjgsMHgwMCwweDIyLDB4MzgsMHgwOCwweDg4LDB4MDMsMHg2MiwweDAwLDB4ODgsMHhmMCB9IH0sCi17ICAxNiwgMHg5ZmIwLCAwLCB7MHgyZSwweDNhLDB4NDgsMHg4ZiwweDBhLDB4MjAsMHgwMCwweGIwLDB4ODAsMHgyZSwweDAwLDB4MGIsMHg4MCwweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHg5ZmMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDAwLDB4MmMsMHg0MCB9IH0sCi17ICAxNiwgMHg5ZmQwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjEsMHgwMCwweDIwLDB4NDIsMHg0OCwweDE0LDB4NDIsMHgwNSwweDgwLDB4YTEsMHgyMCB9IH0sCi17ICAxNiwgMHg5ZmUwLCAwLCB7MHgyYywweDQ0LDB4MDgsMHgxMCwweDgyLDB4MDQsMHgwMCwweGIxLDB4MjAsMHgyYywweDQwLDB4MGIsMHgxMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHg5ZmYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE1LDB4MDEsMHg5OSwweDAwLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHhhMDAwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHgyNCwweDQwLDB4YmIsMHgwMSwweDIyLDB4NDEsMHgwOCwweDkwLDB4MTIsMHgyNCwweDAwLDB4YTksMHgwMCB9IH0sCi17ICAxNiwgMHhhMDEwLCAwLCB7MHgyYywweDQwLDB4MDgsMHgxMCwweDQwLDB4MjQsMHgwOCwweGI5LDB4NDAsMHg2ZSwweDUwLDB4MGIsMHg5MiwweDAyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHhhMDIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU3LDB4MTQsMHhjOSwweDA1LDB4M2UsMHg0MSB9IH0sCi17ICAxNiwgMHhhMDMwLCAwLCB7MHgwZiwweDkwLDB4MGIsMHgyNCwweDA0LDB4ZjksMHgwOCwweGIyLDB4NDAsMHgyYywweDkwLDB4MGEsMHgyNCwweDAwLDB4ZTksMHgwMCB9IH0sCi17ICAxNiwgMHhhMDQwLCAwLCB7MHgzZSwweDQwLDB4MmMsMHg5MCwweDAzLDB4MjcsMHgwMCwweGY5LDB4ODAsMHgzZSwweDYwLDB4MGYsMHg5MCwweDAzLDB4ZTgsMHgwNCB9IH0sCi17ICAxNiwgMHhhMDUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweDg0LDB4ODgsMHhmOSwweDAwLDB4M2UsMHg0OCB9IH0sCi17ICAxNiwgMHhhMDYwLCAwLCB7MHgwZiwweDk5LDB4MDMsMHhlNiwweDAwLDB4ZjksMHgwMiwweDNjLDB4NDAsMHhhZiwweDEwLDB4MDMsMHhlNCwweDEyLDB4ZDksMHgwNCB9IH0sCi17ICAxNiwgMHhhMDcwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTUsMHgwMCwweGY5LDB4YzAsMHgzZSwweDY0LDB4MGYsMHg5MCwweDgzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhhMDgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGExLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhhMDkwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHgyMSwweDAwLDB4YzgsMHg0MCwweGIyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyMCwweDEwLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHhhMGEwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHg4MCwweGY4LDB4MDQsMHgzMiwweDAwLDB4MmMsMHg4MCwweDBiLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhhMGIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHhjYSwweDAwLDB4MmUsMHg4MCB9IH0sCi17ICAxNiwgMHhhMGMwLCAwLCB7MHgwYiwweGU4LDB4MGEsMHgzOCwweDEwLDB4OGUsMHhjMCwweDIyLDB4ODAsMHgwZCwweGEwLDB4MDIsMHgyOCwweDAwLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhhMGQwLCAwLCB7MHgwMiwweDgwLDB4MjgsMHhhMCwweDAyLDB4ZmIsMHgwMCwweGJhLDB4MDAsMHgzNywweGIwLDB4NDgsMHhlYSwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhMGUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg5MywweDAxLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhhMGYwLCAwLCB7MHg4YiwweGIwLDB4NDIsMHgwYywweDkwLDB4OWIsMHgyMCwweDIwLDB4YzAsMHg0OCwweDMwLDB4NDIsMHgyYywweDAwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhhMTAwLCAwLCB7MHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2QsMHg0MCwweGIzLDB4MDAsMHgyNCwweGM4LDB4MDgsMHgzOCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhMTEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDE0LDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHhhMTIwLCAwLCB7MHgwYiwweDI0LDB4MDYsMHgxNiwweDAwLDB4OTMsMHgwOCwweDIxLDB4YzgsMHgwOSwweDMxLDB4MDIsMHgwYywweDgwLDB4ODcsMHhhMCB9IH0sCi17ICAxNiwgMHhhMTMwLCAwLCB7MHgyMSwweGMwLDB4MTgsMHg3MiwweDAyLDB4ZGMsMHgwMCwweGI3LDB4YjQsMHgyNCwweGUzLDB4MDgsMHg3OCwweDAyLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhMTQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDIsMHg5NywweGEwLDB4M2QsMHhmMCB9IH0sCi17ICAxNiwgMHhhMTUwLCAwLCB7MHgwZiwweDQ4LDB4MDMsMHgzZSwweDAwLDB4ZDYsMHg4MCwweDMwLDB4ZTAsMHgyYywweDdhLDB4MDIsMHgxZSwweDgyLDB4YzMsMHhmMCB9IH0sCi17ICAxNiwgMHhhMTYwLCAwLCB7MHgzMywweGVjLDB4MGMsMHg3YywweDAzLDB4ZDYsMHgwMCwweGY3LDB4ODAsMHgzNSwweGUwLDB4MGMsMHhkOCwweDAzLDB4MmEsMHgwMiB9IH0sCi17ICAxNiwgMHhhMTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxOSwweGE1LDB4YTAsMHhmYiwweDAwLDB4M2UsMHhjYSB9IH0sCi17ICAxNiwgMHhhMTgwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlYywweDAyLDB4ZWEsMHgwMCwweDNlLDB4YzYsMHgwZiwweGI0LDB4MGIsMHhlZCwweDQwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhhMTkwLCAwLCB7MHhiZSwweGMwLDB4MGYsMHhiNiwweDQzLDB4ZTAsMHgwMCwweGZiLDB4MDIsMHgzZSwweDgwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhhMWEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDIsMHhjZiwweDg4LDB4M2YsMHhlMCB9IH0sCi17ICAxNiwgMHhhMWIwLCAwLCB7MHgwYywweGI5LDB4MDMsMHhmZSwweDAwLDB4ZGQsMHg4MSwweDMzLDB4ZTAsMHg4YywweGZjLDB4MDMsMHgzZiwweDA0LDB4Y2YsMHg4MCB9IH0sCi17ICAxNiwgMHhhMWMwLCAwLCB7MHgzMywweGUyLDB4NGYsMHhmYywweDAzLDB4M2UsMHgwMCwweGNmLDB4YzAsMHgzMywweDY0LDB4MGMsMHhmOCwweDAzLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhhMWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDk0LDB4NDAsMHg4NywweDAwLDB4MmYsMHhjMSB9IH0sCi17ICAxNiwgMHhhMWUwLCAwLCB7MHgwZCwweDY5LDB4YTIsMHhkMCwweDQwLDB4YmMsMHgwMCwweDIzLDB4YzAsMHgwOCwweGYwLDB4MDIsMHg5YywweDAwLDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHhhMWYwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHg3MCwweDBhLDB4M2MsMHgwNCwweDg3LDB4MTAsMHgyMSwweDRjLDB4MDgsMHg2MCwweDAyLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhhMjAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDllLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHhhMjEwLCAwLCB7MHgwOSwweDYyLDB4MDIsMHhkOCwweDAwLDB4OTcsMHgwMCwweDIxLDB4YzQsMHgwOCwweDcwLDB4MDIsMHgwYywweDQwLDB4OTcsMHgwMCB9IH0sCi17ICAxNiwgMHhhMjIwLCAwLCB7MHgyMSwweGM0LDB4MGIsMHgzMCwweDAyLDB4NTgsMHgwMCwweGE3LDB4MDgsMHgyMSwweDgwLDB4MDgsMHg2MCwweDgyLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhhMjMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGU0LDB4MjUsMHg4MywweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhhMjQwLCAwLCB7MHgwOSwweDIyLDB4MDIsMHhjYywweDIwLDB4YjIsMHgwMCwweDIwLDB4YzAsMHgyOCwweGIwLDB4MDIsMHg4YywweDAwLDB4OTMsMHgwMCB9IH0sCi17ICAxNiwgMHhhMjUwLCAwLCB7MHgyMCwweGMwLDB4MGIsMHgzMCwweDQyLDB4NmMsMHgyMCwweDgzLDB4MDgsMHgyMCwweGUyLDB4MDgsMHhiOCwweDAyLDB4YzgsMHgwNCB9IH0sCi17ICAxNiwgMHhhMjYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGE0LDB4MDAsMHhjZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhhMjcwLCAwLCB7MHgwZCwweDljLDB4MDMsMHhlOCwweDAwLDB4ZGIsMHg4MCwweDMzLDB4YzAsMHgwYywweGYwLDB4MGIsMHgzYywweDA2LDB4ZGYsMHgwMCB9IH0sCi17ICAxNiwgMHhhMjgwLCAwLCB7MHhiMywweGMwLDB4MGIsMHhmMCwweDA3LDB4NjgsMHgwMCwweGVmLDB4NDAsMHgzMiwweGE4LDB4MGMsMHhhOCwweDAzLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhhMjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhhMmEwLCAwLCB7MHgwZiwweDk0LDB4MDMsMHhjNSwweDQwLDB4ZmEsMHgzMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg2YywweDAwLDB4ZWIsMHgwMCB9IH0sCi17ICAxNiwgMHhhMmIwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHgzMCwweDEzLDB4YWQsMHg0MCwweGZiLDB4MDIsMHgzZSwweGQwLDB4MGYsMHhiNCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhhMmMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGU0LDB4MDAsMHhjNywweDAwLDB4MzEsMHhjMSB9IH0sCi17ICAxNiwgMHhhMmQwLCAwLCB7MHg4YywweGQwLDB4MDMsMHgzNCwweDAwLDB4Y2QsMHgwMCwweDNkLDB4YzAsMHgwYywweGYwLDB4MDEsMHg3YywweDAwLDB4ZGIsMHgwMSB9IH0sCi17ICAxNiwgMHhhMmUwLCAwLCB7MHgzZCwweGMwLDB4NGMsMHhmMCwweDBiLDB4MzAsMHgwMiwweGMzLDB4MDAsMHgzMiwweDAwLDB4MGYsMHhkMCwweDAzLDB4MDAsMHg0NCB9IH0sCi17ICAxNiwgMHhhMmYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZlLDB4NDAsMHg4YiwweDAwLDB4MmEsMHhjMCB9IH0sCi17ICAxNiwgMHhhMzAwLCAwLCB7MHgyOCwweDg0LDB4NDIsMHgyMiwweDgwLDB4ODgsMHg4MCwweDNhLDB4YzAsMHgwZCwweGIwLDB4MDIsMHhhYywweDA4LDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhhMzEwLCAwLCB7MHgyZSwweGMwLDB4MDgsMHhiMCwweDAyLDB4MjMsMHgyMCwweDhiLDB4MDAsMHgyMiwweDMwLDB4OGIsMHg4YywweDAyLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhhMzIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI0LDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhhMzMwLCAwLCB7MHgwOCwweDM4LDB4ODYsMHgyYSwweDAwLDB4ODksMHg4MCwweDJhLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhjYywweDAwLDB4OWIsMHgwMCB9IH0sCi17ICAxNiwgMHhhMzQwLCAwLCB7MHgyZSwweGMwLDB4MDgsMHhiMCwweDQyLDB4MjYsMHgwMCwweDhiLDB4MDAsMHgyMiwweDcxLDB4MGIsMHg4YywweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhMzUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MywweDAwLDB4MjgsMHhjMCB9IH0sCi17ICAxNiwgMHhhMzYwLCAwLCB7MHgwOCwweDMyLDB4NDIsMHgwMCwweDAwLDB4ODEsMHgwMCwweDI4LDB4YzAsMHgwOSwweDMwLDB4NTIsMHg4YywweDA4LDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhhMzcwLCAwLCB7MHgyYywweGMwLDB4MTgsMHgzMCwweDA2LDB4MDAsMHgwMCwweDgzLDB4MDAsMHhhMCwweDAwLDB4MGIsMHgwMCwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhhMzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDc0LDB4MDIsMHg4YiwweDAwLDB4MzMsMHhjMCB9IH0sCi17ICAxNiwgMHhhMzkwLCAwLCB7MHgwYywweDkyLDB4MGIsMHgyMCwweDAyLDB4YzgsMHgwMCwweDNiLDB4YzAsMHgwYywweGY1LDB4MDMsMHhmYywweDAwLDB4ZGYsMHgwMSB9IH0sCi17ICAxNiwgMHhhM2EwLCAwLCB7MHgzZiwweGMxLDB4MDQsMHhmMCwweDMzLDB4MjEsMHg0MCwweGNmLDB4MDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDBiLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHhhM2IwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhhM2MwLCAwLCB7MHgwZiwweGM0LDB4MDMsMHhmMCwweDAwLDB4OWMsMHgwMCwweDNiLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhhM2QwLCAwLCB7MHgyZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjAsMHg4MCwweGZmLDB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhhM2UwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGYwLDB4YzAsMHhmZiwweGEwLDB4MzEsMHgyNCB9IH0sCi17ICAxNiwgMHhhM2YwLCAwLCB7MHgwZSwweGYwLDB4NjMsMHgxMCwweDA0LDB4ZWYsMHg2NCwweDNmLDB4YzAsMHg0YywweGYzLDB4MDMsMHgxYywweDgwLDB4ZGYsMHgwOCB9IH0sCi17ICAxNiwgMHhhNDAwLCAwLCB7MHgzNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjAsMHhhMCwweGZjLDB4MDAsMHgzMSwweDA4LDB4MmMsMHhkMiwweDAzLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhNDEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGUxLDB4MDAsMHhiYiwweGMxLDB4MjIsMHg0OCB9IH0sCi17ICAxNiwgMHhhNDIwLCAwLCB7MHgwOCwweGZkLDB4MDIsMHgyZSwweDAwLDB4OTcsMHgwMCwweDJmLDB4YzIsMHg0OCwweDcxLDB4MjMsMHg3ZSwweDQwLDB4YmYsMHgwMCB9IH0sCi17ICAxNiwgMHhhNDMwLCAwLCB7MHgyMSwweGM1LDB4NGIsMHhmNSwweDAyLDB4ZWYsMHgwMCwweGJiLDB4NDAsMHgzNiwweGUwLDB4MDgsMHhhOCwweDAyLDB4ZTAsMHgwNCB9IH0sCi17ICAxNiwgMHhhNDQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM1LDB4ODQsMHhiMywweDExLDB4YTIsMHhjOSB9IH0sCi17ICAxNiwgMHhhNDUwLCAwLCB7MHgwYSwweDMwLDB4MDIsMHgwMCwweDAxLDB4YjMsMHgzMCwweDI4LDB4YzQsMHgwOCwweDMyLDB4NDIsMHgwYywweDAwLDB4YTMsMHgwOCB9IH0sCi17ICAxNiwgMHhhNDYwLCAwLCB7MHhhMCwweGNhLDB4MGEsMHgzMiwweDgyLDB4ODAsMHgxMCwweGIwLDB4NDEsMHgyNCwweDExLDB4MDgsMHgzMSwweDAyLDB4ZTIsMHgwMSB9IH0sCi17ICAxNiwgMHhhNDcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGE1LDB4MDAsMHhiYiwweDAwLDB4MjIsMHhlMSB9IH0sCi17ICAxNiwgMHhhNDgwLCAwLCB7MHgyOCwweGIwLDB4MDIsMHgyYywweDgwLDB4OWIsMHgwMCwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHg2YywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhhNDkwLCAwLCB7MHgyMiwweGMwLDB4MGIsMHhiMCwweDAwLDB4ZWMsMHgyMCwweGJiLDB4MDAsMHgyNiwweGMwLDB4MDgsMHg4MCwweDAyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHhhNGEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGUzLDB4NDAsMHhmNywweDA0LDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHhhNGIwLCAwLCB7MHg0ZSwweGIwLDB4MjMsMHgyZSwweDIwLDB4ZWIsMHgwMCwweDFlLDB4YzAsMHgwYywweGIwLDB4MDEsMHgyYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhhNGMwLCAwLCB7MHgzNiwweGMwLDB4MWYsMHhiMCwweDAzLDB4ZTEsMHg0MCwweGZiLDB4MDAsMHgzNiwweDk4LDB4MGMsMHg5MCwweDAzLDB4ZDAsMHgwNCB9IH0sCi17ICAxNiwgMHhhNGQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI2LDB4MDQsMHhmZiwweDAyLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhhNGUwLCAwLCB7MHgwZiwweGYwLDB4MDMsMHhmZSwweDAwLDB4ZWYsMHgwMiwweDNkLDB4YzAsMHgwZiwweGYwLDB4MjMsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhhNGYwLCAwLCB7MHgzZiwweGMwLDB4NGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGY0LDB4MDAsMHgzYiwweDQwLDB4MGYsMHhhMCwweDEzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFhLDB4MjAsMHhlYiwweDEwLDB4MzYsMHhjMCB9IH0sCi17ICAxNiwgMHhhNTEwLCAwLCB7MHgwZCwweGIwLDB4MDcsMHhlYywweDIwLDB4ZGIsMHgwMCwweDMyLDB4YzAsMHgwYywweGIwLDB4MDIsMHg2YywweDIwLDB4ZWIsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTIwLCAwLCB7MHgzZSwweGMxLDB4MGQsMHhiMCwweDAzLDB4ZTAsMHgyMCwweGRiLDB4YTAsMHgzMiwweDkwLDB4NGMsMHhiMCwweDBiLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhhNTMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJkLDB4MDAsMHg4ZiwweDgwLDB4MjAsMHhjMSB9IH0sCi17ICAxNiwgMHhhNTQwLCAwLCB7MHgwOCwweDcwLDB4MTIsMHhjZiwweDAwLDB4OGYsMHgwMCwweGEzLDB4YzAsMHgwZCwweGYwLDB4MDIsMHgzYywweDAwLDB4OGYsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTUwLCAwLCB7MHgzNywweGMwLDB4ODgsMHhmMCwweDAyLDB4ZWMsMHgwMCwweDg4LDB4MDAsMHgyMCwweDQwLDB4MDgsMHg4MCwweDAyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhhMywweDgwLDB4MjQsMHg4MSB9IH0sCi17ICAxNiwgMHhhNTcwLCAwLCB7MHgwOSwweDMwLDB4MDYsMHhjYywweDQwLDB4OTMsMHgwMCwweDI4LDB4YzEsMHgwOCwweGIwLDB4MDIsMHhjZiwweDQwLDB4YTMsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTgwLCAwLCB7MHgyYywweGMwLDB4MDksMHgzMCwweDAyLDB4Y2QsMHgwMCwweDkwLDB4NDAsMHg2MCwweDQwLDB4MjgsMHgxMCwweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHhhNTkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDBlLDB4MDAsMHg4NywweDgwLDB4MjMsMHhlMCB9IH0sCi17ICAxNiwgMHhhNWEwLCAwLCB7MHg0OCwweDc5LDB4MDIsMHhkZSwweDQxLDB4OTcsMHg4MCwweDI5LDB4ZTAsMHgxOSwweDc4LDB4MDYsMHg5ZSwweDAwLDB4ODcsMHg4MCB9IH0sCi17ICAxNiwgMHhhNWIwLCAwLCB7MHgyNSwweGUwLDB4MDgsMHg3OCwweDAyLDB4ZDIsMHgwMywweDgzLDB4ODAsMHgyMSwweGEwLDB4MDgsMHg2OCwweDAyLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHhhNWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhhMywweDAwLDB4MzQsMHhjMCB9IH0sCi17ICAxNiwgMHhhNWQwLCAwLCB7MHgwZCwweDMwLDB4NDIsMHhjYywweDAxLDB4ZDMsMHgxMCwweDNhLDB4YzUsMHgwYywweDM5LDB4MDMsMHhjYywweDAwLDB4ZTMsMHgwNCB9IH0sCi17ICAxNiwgMHhhNWUwLCAwLCB7MHgzYywweGM0LDB4MGQsMHgzMCwweDAzLDB4Y2UsMHgwMCwweGQwLDB4MDAsMHgzMCwweDQwLDB4MGMsMHgzMCwweDAzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhhNWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGJjLDB4MDAsMHhmNywweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhhNjAwLCAwLCB7MHgxZiwweGYwLDB4NTMsMHhmYywweDAwLDB4ZWYsMHgwOCwweDM3LDB4ZDEsMHgwZiwweGYwLDB4ODMsMHg3YywweDAwLDB4ZjcsMHg0MCB9IH0sCi17ICAxNiwgMHhhNjEwLCAwLCB7MHgzZiwweGMxLDB4MGYsMHhmMSwweDAzLDB4ZDAsMHgwMCwweGZmLDB4MDAsMHhiZiwweDg0LDB4MGYsMHhjOCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhhNjIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGUwLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhlMCB9IH0sCi17ICAxNiwgMHhhNjMwLCAwLCB7MHgyYywweGJlLDB4ODMsMHhlYywweDAwLDB4ZWIsMHg0MCwweDNlLDB4YzAsMHgwZiwweGI0LDB4MDMsMHhlZCwweDIwLDB4ZmIsMHgxMCB9IH0sCi17ICAxNiwgMHhhNjQwLCAwLCB7MHhiNiwweGQyLDB4MGYsMHhiNCwweDgzLDB4ZWMsMHgwMCwweGRiLDB4ODAsMHgzNiwweGMxLDB4MGMsMHg5MCwweDIxLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhhNjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDk0LDB4MDAsMHhiNywweDAwLDB4MmYsMHhjMCB9IH0sCi17ICAxNiwgMHhhNjYwLCAwLCB7MHgwOCwweDM2LDB4MDIsMHgwYywweDA4LDB4ODcsMHgzMCwweDJkLDB4ZDksMHg4YiwweDcyLDB4ODYsMHhkZCwweDAwLDB4YjMsMHgyMCB9IH0sCi17ICAxNiwgMHhhNjcwLCAwLCB7MHgyMSwweGM4LDB4MGIsMHg3NCwweDAyLDB4ZDAsMHgwMiwweDg0LDB4MDAsMHhhMCwweDAwLDB4MjgsMHgyMCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhhNjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlhLDB4MDAsMHhiNywweDgwLDB4MmQsMHhlMCB9IH0sCi17ICAxNiwgMHhhNjkwLCAwLCB7MHgwOCwweDdhLDB4MDIsMHg5ZCwweDAwLDB4YTcsMHhhMCwweDJkLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHg5ZSwweDgwLDB4YTcsMHg4MCB9IH0sCi17ICAxNiwgMHhhNmEwLCAwLCB7MHgyMSwweGU0LDB4MDgsMHg3YSwweDI2LDB4OWUsMHgxOCwweDgzLDB4MDQsMHgyMSwweGUwLDB4MDgsMHg3OCwweDBhLDB4NzAsMHgwMCB9IH0sCi17ICAxNiwgMHhhNmIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhlMCB9IH0sCi17ICAxNiwgMHhhNmMwLCAwLCB7MHg1OCwweDMwLDB4MTIsMHgwZSwweDgyLDB4ODMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAxLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhhNmQwLCAwLCB7MHgyMCwweGMxLDB4MGIsMHgzMCwweDAyLDB4YzAsMHgwOCwweDg4LDB4ZDIsMHgyMCwweDIwLDB4MDgsMHgwMCwweDAyLDB4NTIsMHgwNCB9IH0sCi17ICAxNiwgMHhhNmUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4NjAsMHhmYSwweDAwLDB4M2YsMHg4MiB9IH0sCi17ICAxNiwgMHhhNmYwLCAwLCB7MHgwYywweGEwLDB4MDMsMHhmYSwweDAwLDB4YWEsMHgwMCwweDFlLDB4ODAsMHg4ZiwweGEwLDB4MDMsMHhlOCwweDAwLDB4ZjIsMHgwMCB9IH0sCi17ICAxNiwgMHhhNzAwLCAwLCB7MHgzMiwweDgwLDB4MWYsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGRhLDB4MDAsMHgzNiwweDg4LDB4YWMsMHhlMCwweDAzLDB4N2EsMHgwNCB9IH0sCi17ICAxNiwgMHhhNzEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUxLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgyMCB9IH0sCi17ICAxNiwgMHhhNzIwLCAwLCB7MHg0ZiwweDgwLDB4MDMsMHhlMSwweDAwLDB4ZjAsMHgwMCwweDNjLDB4MDAsMHgwYiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMiB9IH0sCi17ICAxNiwgMHhhNzMwLCAwLCB7MHgzYSwweDAwLDB4MGYsMHg4MCwweDQzLDB4ZjEsMHgwMCwweGZjLDB4MGEsMHgzZCwweDAwLDB4MGYsMHhjMCwweDAzLDB4OTIsMHgwMCB9IH0sCi17ICAxNiwgMHhhNzQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU2LDB4MDAsMHhjOSwweDkwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhhNzUwLCAwLCB7MHgwZiwweDkyLDB4MDMsMHhlNCwweDAwLDB4ZDksMHgwMCwweDMyLDB4NDAsMHgwNCwweDkwLDB4MDcsMHhlNywweDAwLDB4ZjksMHgxMCB9IH0sCi17ICAxNiwgMHhhNzYwLCAwLCB7MHgzMCwweDQwLDB4MGMsMHg5MCwweDQzLDB4ZTQsMHgwOSwweGQ5LDB4ODAsMHgyMiwweDQwLDB4MmMsMHgxMCwweDBiLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhhNzcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4NjAsMHg4OSwweGMwLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHhhNzgwLCAwLCB7MHgwYiwweDk4LDB4MjYsMHhjNSwweDgwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgyOCwweDkwLDB4MTIsMHhlNywweDEwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhhNzkwLCAwLCB7MHgzNiwweDQwLDB4MjgsMHg5MCwweDEyLDB4YzUsMHg4MywweGM5LDB4ODAsMHhiNiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhN2EwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg4OSwweDQwLDB4MmUsMHg0MSB9IH0sCi17ICAxNiwgMHhhN2IwLCAwLCB7MHg0YiwweDkwLDB4MDIsMHhlNCwweDAwLDB4OTksMHgwMCwweGEyLDB4NDAsMHgwYSwweDkwLDB4MDIsMHhlNSwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhhN2MwLCAwLCB7MHhlMiwweDQxLDB4MDgsMHg5MCwweDQyLDB4ZTQsMHgwMCwweDlkLDB4NTAsMHhhYiwweDRhLDB4MDgsMHhkMCwweDI2LDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhhN2QwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4ODIsMHg4MSwweDIwLDB4MmMsMHg1MCB9IH0sCi17ICAxNiwgMHhhN2UwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHhlNCwweDAwLDB4ODEsMHg0MCwweDIwLDB4NTAsMHg0YSwweDE0LDB4MzIsMHhjNCwweDAwLDB4YjEsMHg0MCB9IH0sCi17ICAxNiwgMHhhN2YwLCAwLCB7MHgyNCwweDUxLDB4MTgsMHgxNCwweDEyLDB4ZDQsMHgwMCwweDg1LDB4NDAsMHgyZCwweDQwLDB4MDgsMHg1MCwweDA2LDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhhODAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhjOCwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhhODEwLCAwLCB7MHgwZiwweDgwLDB4MDIsMHhlMCwweDAwLDB4ZDgsMHgwMCwweDMyLDB4MDAsMHgwYSwweDgwLDB4MDIsMHhlMCwweDEwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhODIwLCAwLCB7MHgzMiwweDAwLDB4MDQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGQ4LDB4MDAsMHgzYSwweDAwLDB4MGMsMHhjMCwweDAzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhhODMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGY0LDB4NDAsMHhmOSwweDEwLDB4M2YsMHg0MSB9IH0sCi17ICAxNiwgMHhhODQwLCAwLCB7MHgwZiwweDk0LDB4MDMsMHhmNSwweDAwLDB4ZjksMHg0MCwweDNlLDB4NTAsMHgwZCwweDk0LDB4MDMsMHhlNSwweDEwLDB4ZjksMHg0MCB9IH0sCi17ICAxNiwgMHhhODUwLCAwLCB7MHgzZSwweDUwLDB4NGYsMHg5NCwweDAzLDB4YzUsMHgwMCwweGU5LDB4NDEsMHgzNiwweDUwLDB4MGYsMHg5NCwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhhODYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4MDAsMHhmZCwweGE4LDB4M2EsMHg0MCB9IH0sCi17ICAxNiwgMHhhODcwLCAwLCB7MHgwYywweGQ4LDB4MjMsMHgzNiwweDAwLDB4ZTksMHhhMCwweDNlLDB4NzgsMHgwZiwweDllLDB4MDMsMHhiNiwweDgwLDB4Y2QsMHhlMiB9IH0sCi17ICAxNiwgMHhhODgwLCAwLCB7MHgzMiwweDY4LDB4MGMsMHg5YiwweDAzLDB4MzYsMHg4MiwweDRkLDB4YTAsMHgzNywweDY4LDB4OGMsMHg5OCwweDAzLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhhODkwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGViLDB4YTAsMHhiOCwweDQwLDB4MjAsMHgyMCB9IH0sCi17ICAxNiwgMHhhOGEwLCAwLCB7MHgwOCwweDg1LDB4MDIsMHgyMSwweDUxLDB4ODgsMHhjMCwweDJlLDB4MjksMHgwYiwweDhlLDB4MDIsMHhlMSwweDAwLDB4ZDgsMHhlMCB9IH0sCi17ICAxNiwgMHhhOGIwLCAwLCB7MHgyMiwweDMyLDB4MGQsMHg4ZCwweDIzLDB4NjEsMHg0OCwweDk4LDB4ZDQsMHhhMiwweDEwLDB4MjgsMHg4NCwweDAyLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHhhOGMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMywweDAwLDB4MmEsMHg0YSB9IH0sCi17ICAxNiwgMHhhOGQwLCAwLCB7MHgyOCwweDEwLDB4NGUsMHhhNCwweDA4LDB4YTEsMHg2OCwweDI4LDB4NDQsMHgwYiwweDE0LDB4MDIsMHhjNSwweDAwLDB4ODEsMHg0MCB9IH0sCi17ICAxNiwgMHhhOGUwLCAwLCB7MHhhMCwweDUwLDB4MDgsMHgxMCwweDAyLDB4MDQsMHgwMiwweDkxLDB4MmEsMHgyMCwweDQ0LDB4MjgsMHgxNCwweDRhLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhhOGYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGFjLDB4ODAsMHhiOSwweDAwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhhOTAwLCAwLCB7MHg0OCwweDkwLDB4MDYsMHhhNCwweDAwLDB4YTksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MjIsMHhlNCwweDAwLDB4OTksMHgwMCB9IH0sCi17ICAxNiwgMHhhOTEwLCAwLCB7MHgyMiwweDQwLDB4MDksMHgxMCwweDAyLDB4NjQsMHgwMiwweDk5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDYsMHgwNCB9IH0sCi17ICAxNiwgMHhhOTIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweDAwLDB4MzgsMHg1OCB9IH0sCi17ICAxNiwgMHhhOTMwLCAwLCB7MHgwYywweDkwLDB4NTMsMHg4NCwweDE0LDB4YTksMHgwNCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHhhOTQwLCAwLCB7MHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwNCwweGQ5LDB4MDAsMHhiNiwweDQwLDB4NGMsMHg5MCwweDBiLDB4MjgsMHgwNCB9IH0sCi17ICAxNiwgMHhhOTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAyLDB4M2UsMHg0OSB9IH0sCi17ICAxNiwgMHhhOTYwLCAwLCB7MHgwZiwweDEwLDB4NDMsMHg2NCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNCwweDAwLDB4ZjEsMHgwMiB9IH0sCi17ICAxNiwgMHhhOTcwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzQsMHgwMiwweGU5LDB4MDQsMHgzYywweDQwLDB4MGYsMHgxYywweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhhOTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGExLDB4ODAsMHhjOCwweDIwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhhOTkwLCAwLCB7MHg4YywweDgwLDB4MGIsMHgyMCwweDAwLDB4ZTgsMHgwMiwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhhMCwweDgyLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHhhOWEwLCAwLCB7MHg2YywweDAwLDB4MGYsMHg4MCwweDAzLDB4MjAsMHgxMCwweGM4LDB4MDAsMHgzMiwweDAyLDB4MGMsMHg4MCwweDAzLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhhOWIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDM4LDB4MDAsMHg4NiwweDAwLDB4MmUsMHg4MCB9IH0sCi17ICAxNiwgMHhhOWMwLCAwLCB7MHg2OCwweGE4LDB4ODAsMHgzYSwweDAwLDB4OGEsMHgwMCwweDJlLDB4ODAsMHgwYiwweGEwLDB4MDIsMHhmOCwweDAwLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhOWQwLCAwLCB7MHgyZSwweDgwLDB4MGIsMHhhMCwweDBhLDB4M2EsMHgwMCwweDhlLDB4MTAsMHgyMywweDgwLDB4MDgsMHhhMCwweDAzLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhOWUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRkLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhhOWYwLCAwLCB7MHgwOCwweDM4LDB4MDAsMHgwYywweDYwLDB4MjMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDQwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhhYTAwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMiwweDhhLDB4ODAsMHhhMCwweGUwLDB4MjgsMHgzMCwweDBhLDB4NGEsMHgwMCB9IH0sCi17ICAxNiwgMHhhYTEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDE2LDB4MjAsMHg4NywweDAyLDB4MmQsMHhjMSB9IH0sCi17ICAxNiwgMHhhYTIwLCAwLCB7MHg0OCwweDcwLDB4MTIsMHg3YywweDAwLDB4YTcsMHgyMCwweDJkLDB4YzksMHgwYiwweDcyLDB4MDAsMHhkYywweDAwLDB4ODcsMHgwOCB9IH0sCi17ICAxNiwgMHhhYTMwLCAwLCB7MHgyZCwweGM0LDB4MWIsMHgzMiwweDAyLDB4MWQsMHgwMSwweDg3LDB4NDIsMHgyMSwweGMyLDB4MDgsMHg3MCwweDAyLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhYTQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNlLDB4MDIsMHhjNywweDgwLDB4M2QsMHhlYyB9IH0sCi17ICAxNiwgMHhhYTUwLCAwLCB7MHgwYywweDU4LDB4MDMsMHgxZSwweDAwLDB4ZTcsMHg4MCwweDNkLDB4ZWMsMHgwZiwweDdmLDB4MDMsMHg5NiwweDAwLDB4YzcsMHg4MCB9IH0sCi17ICAxNiwgMHhhYTYwLCAwLCB7MHgyZCwweGUyLDB4MDcsMHg3OSwweDAzLDB4MGEsMHgwNiwweGMzLDB4ODAsMHgzMCwweDIwLDB4OGMsMHgzOCwweDAzLDB4NmEsMHgwMiB9IH0sCi17ICAxNiwgMHhhYTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhhYTgwLCAwLCB7MHgwZiwweDEwLDB4NDMsMHg4YywweDAwLDB4ZGIsMHgzOCwweDNlLDB4ZDgsMHgwZiwweGIwLDB4MDMsMHhjYywweDA0LDB4ZmIsMHg0NCB9IH0sCi17ICAxNiwgMHhhYTkwLCAwLCB7MHgzZSwweGMwLDB4OGYsMHhiNiwweDEzLDB4ZWMsMHgwMiwweGZmLDB4MDIsMHgzZSwweDAwLDB4MGYsMHhiMCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhhYWEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZhLDB4MDAsMHhmZiwweDgwLDB4MzEsMHhlMyB9IH0sCi17ICAxNiwgMHhhYWIwLCAwLCB7MHgwZSwweGY4LDB4MjMsMHhmZSwweDAyLDB4ZGYsMHg4MCwweGI3LDB4ZTIsMHgwZSwweGY4LDB4MDMsMHg3ZSwweDAwLDB4NmQsMHhkMCB9IH0sCi17ICAxNiwgMHhhYWMwLCAwLCB7MHgzMywweGUwLDB4MGMsMHhmOCwweDliLDB4NzYsMHhjMCwweGRmLDB4ODQsMHhiMywweGUwLDB4MDQsMHhmOCwweDAzLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhhYWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDkwLDB4NDAsMHhiNywweDAyLDB4MjEsMHhjNCB9IH0sCi17ICAxNiwgMHhhYWUwLCAwLCB7MHgwOCwweDdiLDB4NDIsMHhkYywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzQsMHgwYiwweDMwLDB4MDAsMHgxMCwweDgwLDB4OGQsMHgwMCB9IH0sCi17ICAxNiwgMHhhYWYwLCAwLCB7MHgyMywweGMwLDB4MGQsMHhmMiwweDAyLDB4MDQsMHg0MiwweDhmLDB4MDAsMHgyOSwweGM4LDB4MjgsMHg3MCwweDAyLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhhYjAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk0LDB4MDAsMHhiNiwweDAwLDB4MjMsMHhjMCB9IH0sCi17ICAxNiwgMHhhYjEwLCAwLCB7MHgwYSwweDcyLDB4MDIsMHg4YywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzAsMHgwYSwweDMwLDB4MDIsMHgwNCwweDAxLDB4YTcsMHgwMiB9IH0sCi17ICAxNiwgMHhhYjIwLCAwLCB7MHgyMSwweGMwLDB4MDgsMHg3MCwweDQyLDB4MDAsMHg4YSwweDg3LDB4MDAsMHgyMSwweGMwLDB4MjgsMHg3MCwweDAyLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhhYjMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGM1LDB4MDAsMHhiMCwweDAwLDB4YTAsMHhkMCB9IH0sCi17ICAxNiwgMHhhYjQwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHhjOSwweDQyLDB4OGIsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MjIsMHgwNCwweDAwLDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhhYjUwLCAwLCB7MHhhMCwweGMwLDB4NDksMHgzMCwweDAyLDB4NDUsMHg0MCwweDkzLDB4YzAsMHhhOCwweGQ0LDB4MDAsMHgzNSwweDAyLDB4YzgsMHgwNCB9IH0sCi17ICAxNiwgMHhhYjYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDAsMHhiYiwweDAwLDB4MzEsMHhjMCB9IH0sCi17ICAxNiwgMHhhYjcwLCAwLCB7MHgwZSwweGIwLDB4MjMsMHhjZCwweDAwLDB4ZGYsMHgwMCwweDM3LDB4YzAsMHgwZSwweGYwLDB4MDEsMHg2OCwweDAwLDB4ZTMsMHgwMCB9IH0sCi17ICAxNiwgMHhhYjgwLCAwLCB7MHgzMywweGMwLDB4MWMsMHhmMCwweDAzLDB4NDUsMHgwMCwweGRhLDB4YzgsMHg5MiwweGQ0LDB4MmMsMHhiNCwweDAzLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhhYjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGU1LDB4MjAsMHhmYiwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhhYmEwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHg0ZiwweGIwLDB4MDMsMHhhZCwweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhhYmIwLCAwLCB7MHg3ZSwweGMwLDB4MWYsMHgzMCwweDAzLDB4YTQsMHg4MCwweGU5LDB4MjAsMHgzYywweGMwLDB4MGYsMHgzMiwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhhYmMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGRjLDB4MDAsMHhjNywweDAwLDB4MzMsMHhjMiB9IH0sCi17ICAxNiwgMHhhYmQwLCAwLCB7MHgyYywweGYwLDB4MDMsMHgzZSwweDIwLDB4ZGIsMHgwMCwweDEzLDB4YzAsMHgwYywweDcwLDB4MDMsMHgzYywweDgwLDB4ZWYsMHgwNCB9IH0sCi17ICAxNiwgMHhhYmUwLCAwLCB7MHg3MywweGMxLDB4MGYsMHhmMCwweDIyLDB4MzAsMHgwMCwweGM2LDB4MDAsMHhiMiwweGMwLDB4MGMsMHhmMCwweDAzLDB4MDAsMHg0NCB9IH0sCi17ICAxNiwgMHhhYmYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwMCwweDY5LDB4MDAsMHg4YiwweDQ0LDB4YTIsMHhjMSB9IH0sCi17ICAxNiwgMHhhYzAwLCAwLCB7MHg4OCwweGIwLDB4MDMsMHg2YywweDAwLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgyOCwweGIwLDB4MGEsMHgyZCwweDAwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhhYzEwLCAwLCB7MHg2MiwweGMwLDB4MGIsMHhiMCwweDAyLDB4MjYsMHgwMiwweDhiLDB4ODAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDAzLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhhYzIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI4LDB4MDEsMHg4YSwweDA4LDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhhYzMwLCAwLCB7MHgwOCwweGIyLDB4MDIsMHg2YywweDQwLDB4OWIsMHgwMCwweDI4LDB4YzAsMHg0OCwweGIwLDB4MTYsMHgyOSwweDA0LDB4YjksMHgwMSB9IH0sCi17ICAxNiwgMHhhYzQwLCAwLCB7MHgyMiwweGMwLDB4NDksMHhiMCwweDA2LDB4YWUsMHgwOSwweDhiLDB4ODAsMHgyMiwweGUwLDB4NDgsMHhiMCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhYzUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDAwLDB4MDIsMHg4MiwweDAwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhhYzYwLCAwLCB7MHg4OCwweGIwLDB4MDIsMHg0NCwweDAwLDB4ODMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwOCwweDAwLDB4YjEsMHgwMCB9IH0sCi17ICAxNiwgMHhhYzcwLCAwLCB7MHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4OGMsMHgwMCwweDgzLDB4ODAsMHgyMCwweGUwLDB4MDgsMHgzMCwweDBhLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhhYzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY0LDB4MDAsMHhjYSwweDAwLDB4MzMsMHhjMCB9IH0sCi17ICAxNiwgMHhhYzkwLCAwLCB7MHgwYywweGIyLDB4MDMsMHgyYywweDAwLDB4ZGYsMHgwMCwweDNiLDB4YzAsMHg0YywweGY1LDB4MTMsMHgyYywweDA0LDB4ZWYsMHgwMCB9IH0sCi17ICAxNiwgMHhhY2EwLCAwLCB7MHhhMywweGMwLDB4MGQsMHhmMCwweDAzLDB4YTgsMHg0MCwweGNiLDB4MDAsMHhiMiwweDAwLDB4MmMsMHhiMCwweDAzLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHhhY2IwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGYwLDB4MDAsMHhmNCwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhhY2MwLCAwLCB7MHgwZiwweGIxLDB4MDMsMHhmMCwweDAwLDB4ZmYsMHgwMCwweDM3LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhhY2QwLCAwLCB7MHgzZiwweGMwLDB4MDcsMHhmMCwweDBiLDB4N2MsMHgwOCwweGZmLDB4MDEsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4YTgsMHgwNiB9IH0sCi17ICAxNiwgMHhhY2UwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGYwLDB4YzUsMHhlZCwweDMzLDB4M2IsMHhjYyB9IH0sCi17ICAxNiwgMHhhY2YwLCAwLCB7MHgwYywweGYwLDB4MDMsMHgzMCwweDQwLDB4ZmYsMHgyNSwweDNmLDB4Y2MsMHgwYywweGYzLDB4ODMsMHgzYywweGQwLDB4ZGYsMHg0OCB9IH0sCi17ICAxNiwgMHhhZDAwLCAwLCB7MHgzNywweDMwLDB4NGMsMHhmMywweDAzLDB4ZmQsMHg4MCwweGNmLDB4MjgsMHgzMywweGQ4LDB4MGMsMHhmMSwweDAzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhhZDEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGVjLDB4ZDAsMHhiYiwweDMxLDB4MjAsMHhjYyB9IH0sCi17ICAxNiwgMHhhZDIwLCAwLCB7MHg4OCwweGYzLDB4NDIsMHgyMCwweDUwLDB4YmYsMHg5MCwweDJmLDB4YzQsMHgwYSwweGY2LDB4MDIsMHg3ZCwweGMwLDB4OGYsMHg0MCB9IH0sCi17ICAxNiwgMHhhZDMwLCAwLCB7MHgyNiwweDQwLDB4OGYsMHhmNiwweDAyLDB4ZmQsMHgwMCwweGZmLDB4MDgsMHgzOSwweGM4LDB4MDgsMHhmNiwweDAyLDB4YTAsMHgwNCB9IH0sCi17ICAxNiwgMHhhZDQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4ODAsMHhhMSwweDIwLDB4MjgsMHhjOSB9IH0sCi17ICAxNiwgMHhhZDUwLCAwLCB7MHgwOCwweDMwLDB4OWEsMHgwMCwweDA5LDB4YjMsMHgwMCwweDJjLDB4YzAsMHgyMCwweDMwLDB4MDIsMHg0YywweDkwLDB4ODMsMHgyMCB9IH0sCi17ICAxNiwgMHhhZDYwLCAwLCB7MHgwMiwweDA4LDB4MGIsMHgzMywweDEyLDB4Y2QsMHg4MCwweDkzLDB4MjAsMHgyNCwweGQ4LDB4MDgsMHgzNCwweDIyLDB4MjIsMHgwMSB9IH0sCi17ICAxNiwgMHhhZDcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMSwweGFlLDB4MDAsMHhiYiwweDEwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhhZDgwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHgyNiwweDAxLDB4M2IsMHgwMSwweDZlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHg0YywweDA4LDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhhZDkwLCAwLCB7MHhhMiwweDg5LDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGFiLDB4MDAsMHg2YSwweGMxLDB4MjgsMHhiMCwweDAyLDB4YjAsMHgwNCB9IH0sCi17ICAxNiwgMHhhZGEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweDZlLDB4MDAsMHhlOCwweGMxLDB4M2EsMHhjMCB9IH0sCi17ICAxNiwgMHhhZGIwLCAwLCB7MHgyYywweGIwLDB4NDMsMHgyNiwweDAwLDB4ZmIsMHgwNiwweDNlLDB4YzEsMHgwYywweGIwLDB4MGIsMHgyYywweDAyLDB4Y2IsMHgwMCB9IH0sCi17ICAxNiwgMHhhZGMwLCAwLCB7MHgzNCwweDIyLDB4OWYsMHhiMCwweDQzLDB4ZWMsMHgwMCwweDliLDB4MDIsMHgzNiwweGMxLDB4OGMsMHhiMCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhhZGQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYywweDgwLDB4M2QsMHhkMCB9IH0sCi17ICAxNiwgMHhhZGUwLCAwLCB7MHgyZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmIsMHgwMCwweDNkLDB4YzAsMHgwNywweDMwLDB4MDMsMHhiYywweDAwLDB4ZWYsMHgwNCB9IH0sCi17ICAxNiwgMHhhZGYwLCAwLCB7MHgzZiwweGUwLDB4NWUsMHhiMCwweDAxLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgxYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhhZTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhjYiwweDAxLDB4M2UsMHhjOSB9IH0sCi17ICAxNiwgMHhhZTEwLCAwLCB7MHgwYywweGIwLDB4MTcsMHgyMCwweDg0LDB4ZWIsMHgwMCwweGIyLDB4YzEsMHgwZCwweGIwLDB4MDMsMHg2YywweDAwLDB4YzMsMHgwMCB9IH0sCi17ICAxNiwgMHhhZTIwLCAwLCB7MHgzMiwweDUwLDB4MGYsMHhiMCwweDAzLDB4MGMsMHg0MCwweGMzLDB4MDAsMHg3ZSwweGMwLDB4MGMsMHgzMCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhhZTMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJjLDB4MDAsMHg4YSwweDU4LDB4MmUsMHhlMCB9IH0sCi17ICAxNiwgMHhhZTQwLCAwLCB7MHg0OCwweGYwLDB4MDIsMHgyZCwweDAwLDB4ZWYsMHgwMSwweDIzLDB4YzAsMHgwOCwweGYwLDB4MjIsMHgzYywweDA0LDB4OGYsMHg2MCB9IH0sCi17ICAxNiwgMHhhZTUwLCAwLCB7MHgzNiwweDU0LDB4MGIsMHhmMCwweDBhLDB4M2QsMHg0MCwweDhmLDB4MDAsMHgyZiwweGMwLDB4MDgsMHhmMCwweDAzLDB4NzIsMHgwMCB9IH0sCi17ICAxNiwgMHhhZTYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQwLDB4MDAsMHg4OSwweDgwLDB4MmMsMHgxMCB9IH0sCi17ICAxNiwgMHhhZTcwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHg0OSwweDAwLDB4YTMsMHhhMCwweDI0LDB4YzAsMHgwOSwweDMwLDB4MDIsMHg0YywweDAwLDB4ODMsMHhjOSB9IH0sCi17ICAxNiwgMHhhZTgwLCAwLCB7MHgyMCwweDkwLDB4NDIsMHgzMCwweDEyLDB4NGQsMHgwMCwweDgzLDB4MDAsMHg2YSwweGMwLDB4MDksMHgzMCwweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHhhZTkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDE2LDB4MDAsMHg4NSwweDgwLDB4NmQsMHg2MiB9IH0sCi17ICAxNiwgMHhhZWEwLCAwLCB7MHgwOCwweDdlLDB4MDIsMHg1NiwweDQwLDB4MjcsMHg4MCwweDI1LDB4ZTAsMHgxOSwweDc4LDB4MDYsMHgwZSwweDAwLDB4ODMsMHg4MCB9IH0sCi17ICAxNiwgMHhhZWIwLCAwLCB7MHg2MSwweGEwLDB4MGIsMHg3OCwweDAyLDB4NGUsMHgwMCwweDg3LDB4ODIsMHg2ZCwweGUwLDB4MDksMHg3OSwweDAyLDB4NDgsMHgwMCB9IH0sCi17ICAxNiwgMHhhZWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDJjLDB4MDIsMHhjMywweDYxLDB4M2MsMHg4OCB9IH0sCi17ICAxNiwgMHhhZWQwLCAwLCB7MHgyYywweGJhLDB4MTIsMHg0OSwweDEwLDB4ZTMsMHgyYywweDM2LDB4YzAsMHgwZCwweDMwLDB4NTMsMHg0YywweDQ0LDB4YzMsMHgwMCB9IH0sCi17ICAxNiwgMHhhZWUwLCAwLCB7MHgyMCwweDAxLDB4MGYsMHgzMSwweDAzLDB4NGMsMHgwMCwweGMzLDB4MDEsMHgzYywweGMwLDB4MmQsMHhiMSwweDAzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhhZWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHgwMCB9IH0sCi17ICAxNiwgMHhhZjAwLCAwLCB7MHg0ZiwweGYxLDB4MDksMHhiMCwweDAwLDB4ZmYsMHgwMCwweDNiLDB4YzAsMHgwZSwweGY0LDB4MDEsMHhmZCwweDI0LDB4ZmYsMHg0MCB9IH0sCi17ICAxNiwgMHhhZjEwLCAwLCB7MHhiZiwweGMwLDB4MDcsMHhmMCwweDAzLDB4YmMsMHgwMCwweDZmLDB4MTAsMHgzZiwweGM0LDB4MWUsMHhmMSwweDgzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhhZjIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGM0LDB4MDAsMHhlOCwweDA0LDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhhZjMwLCAwLCB7MHgwYywweGI2LDB4MDMsMHhlOCwweDAyLDB4Y2IsMHgwMCwweDM2LDB4Y2EsMHgwZiwweGI1LDB4MDMsMHhhZCwweDAwLDB4ZmIsMHgyMCB9IH0sCi17ICAxNiwgMHhhZjQwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHhiMywweDAzLDB4ZWMsMHg4MCwweGZiLDB4YTgsMHgzMiwweGM2LDB4OGMsMHhiNiwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhhZjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDk0LDB4MDIsMHhlNiwweDAwLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhhZjYwLCAwLCB7MHgwOCwweDczLDB4MDIsMHhkYywweDAwLDB4ODcsMHg3MCwweDJkLDB4ZDAsMHgwYiwweGYwLDB4MDIsMHgxYywweDg0LDB4YjcsMHgyMCB9IH0sCi17ICAxNiwgMHhhZjcwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHg3MCwweDgyLDB4ZGQsMHgyNCwweGI3LDB4NDAsMHgzNCwweGM5LDB4MjgsMHg3MiwweDgyLDB4OTIsMHgwNCB9IH0sCi17ICAxNiwgMHhhZjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweGJlLDB4MDIsMHhhYywweDgwLDB4YTEsMHgyMCB9IH0sCi17ICAxNiwgMHhhZjkwLCAwLCB7MHgwOCwweDc5LDB4MDAsMHhjZSwweDA0LDB4ODcsMHg4MCwweDY1LDB4ZTAsMHgwYiwweDdhLDB4MDIsMHg5ZSwweDAwLDB4YjcsMHg5MCB9IH0sCi17ICAxNiwgMHhhZmEwLCAwLCB7MHg2ZCwweGEwLDB4MGIsMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI3LDB4ODAsMHgyMSwweGUwLDB4MDgsMHg3OCwweDAyLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhhZmIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGVkLDB4ODIsMHhhYiwweGUwLDB4MjAsMHhlNCB9IH0sCi17ICAxNiwgMHhhZmMwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHhlZSwweDA0LDB4ODMsMHgwMCwweDJjLDB4YzEsMHgxYiwweDMwLDB4MDIsMHgwYywweDA4LDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhhZmQwLCAwLCB7MHg2NCwweGY2LDB4MGIsMHhiMCwweDAyLDB4Y2MsMHgwNCwweGIzLDB4MDAsMHgyNiwweGMwLDB4MDgsMHgzMCwweDAyLDB4OTIsMHgwNCB9IH0sCi17ICAxNiwgMHhhZmUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGJiLDB4ODAsMHhlZSwweDQ5LDB4MzEsMHhhMCB9IH0sCi17ICAxNiwgMHhhZmYwLCAwLCB7MHgyYywweGEwLDB4MDMsMHhmYSwweDAwLDB4Y2EsMHgwMiwweDM2LDB4ODAsMHgwZiwweGEwLDB4MDMsMHhhOCwweDAwLDB4ZmEsMHgwMiB9IH0sCi17ICAxNiwgMHhiMDAwLCAwLCB7MHgzZiwweDkwLDB4MGYsMHhhMCwweDYzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhhMCwweDIzLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhiMDEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MGEsMHhlOCwweDAwLDB4M2UsMHgwOCB9IH0sCi17ICAxNiwgMHhiMDIwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlMywweDUwLDB4ZjAsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhiMDMwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMSwweGY4LDB4MDEsMHg3ZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhiMDQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4NDAsMHhjOSwweGExLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhiMDUwLCAwLCB7MHgyMCwweDExLDB4MDEsMHhhNiwweDQwLDB4YzksMHg4NCwweDM2LDB4NDAsMHgwZCwweDkwLDB4MDMsMHg0NCwweDAwLDB4NDEsMHgwMCB9IH0sCi17ICAxNiwgMHhiMDYwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHg5MCwweDBiLDB4MjQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4NGMsMHgxMCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhiMDcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDgyLDB4YTIsMHg0MCB9IH0sCi17ICAxNiwgMHhiMDgwLCAwLCB7MHgwOCwweDljLDB4MDIsMHgyNSwweDAwLDB4ODksMHhjOCwweDIyLDB4NDAsMHgwOCwweDkwLDB4NDIsMHgyNCwweDAwLDB4ODksMHgyMCB9IH0sCi17ICAxNiwgMHhiMDkwLCAwLCB7MHgyMiwweDYwLDB4MGIsMHg5MCwweDAyLDB4MjQsMHgxMCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAzLDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHhiMGEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDA0LDB4MjIsMHhjYSB9IH0sCi17ICAxNiwgMHhiMGIwLCAwLCB7MHgwYSwweDkwLDB4MGEsMHgyNSwweDAyLDB4ODksMHgyMCwweDIwLDB4NDAsMHgyOCwweDEwLDB4MDIsMHg2NCwweDAxLDB4YTksMHgwMCB9IH0sCi17ICAxNiwgMHhiMGMwLCAwLCB7MHgyMiwweDRiLDB4MGIsMHg5MCwweDAyLDB4MjQsMHgwMSwweGI5LDB4MDAsMHgyZSwweDQxLDB4MjgsMHg5MCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhiMGQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4OTAsMHg4MSwweGEwLDB4MjAsMHg0OCB9IH0sCi17ICAxNiwgMHhiMGUwLCAwLCB7MHgwYSwweDMyLDB4MDIsMHgwNCwweDgwLDB4ODEsMHgwMCwweDIwLDB4NDQsMHgwOCwweDExLDB4MDIsMHgwNCwweGQwLDB4YTEsMHgyMCB9IH0sCi17ICAxNiwgMHhiMGYwLCAwLCB7MHgyMCwweDQwLDB4MGIsMHgxMSwweDAyLDB4MDYsMHgwMCwweGIxLDB4MzEsMHgyYywweDQ4LDB4MDgsMHgxNCwweDAyLDB4NDIsMHgwMSB9IH0sCi17ICAxNiwgMHhiMTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDIsMHhjOCwweDU0LDB4MzIsMHgxNCB9IH0sCi17ICAxNiwgMHhiMTEwLCAwLCB7MHgwZSwweDg1LDB4MDMsMHgyMSwweDQ0LDB4YzgsMHgyOCwweGIyLDB4MWEsMHg0YywweDg2LDB4OTMsMHg2MSwweDE0LDB4ZTgsMHg1MCB9IH0sCi17ICAxNiwgMHhiMTIwLCAwLCB7MHgyMiwweDE0LDB4MGYsMHg4NiwweDgzLDB4MjEsMHg0MCwweGYwLDB4NDAsMHgxZSwweDE0LDB4MGMsMHgwMCwweDAzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhiMTMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweDc0LDB4NDQsMHhmNSwweDEwLDB4M2YsMHg0NCB9IH0sCi17ICAxNiwgMHhiMTQwLCAwLCB7MHgwZCwweDkxLDB4MDMsMHg3NCwweDQwLDB4ZjksMHgwMCwweDNlLDB4NDgsMHgwYiwweDkyLDB4MDMsMHhlNCwweGMyLDB4ZDksMHgxMCB9IH0sCi17ICAxNiwgMHhiMTUwLCAwLCB7MHhiZiwweDQwLDB4MGYsMHg5MiwweDAzLDB4ZTUsMHgwNCwweGY5LDB4MzAsMHgzZSwweDQ0LDB4MGYsMHg5NCwweDQzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhiMTYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4MjIsMHhjZCwweGExLDB4MzMsMHg2MSB9IH0sCi17ICAxNiwgMHhiMTcwLCAwLCB7MHgwYywweGQ4LDB4ZDMsMHgzNCwweDEwLDB4Y2QsMHhhOCwweDNlLDB4NjAsMHg4ZSwweDljLDB4OTMsMHhhNywweDA4LDB4Y2QsMHg4MCB9IH0sCi17ICAxNiwgMHhiMTgwLCAwLCB7MHgzMywweDQwLDB4MGUsMHg5YSwweGQzLDB4MzYsMHhhMCwweGM5LDB4ODAsMHgzMiwweDYwLDB4MGMsMHg5OSwweDAzLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhiMTkwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUzLDB4ODgsMHg4YSwweGEwLDB4MjAsMHgyOCB9IH0sCi17ICAxNiwgMHhiMWEwLCAwLCB7MHgwOCwweDgwLDB4MjIsMHgyMCwweDEyLDB4ODgsMHg0MCwweDJjLDB4MjgsMHgwOCwweDhhLDB4MDIsMHgyMiwweDAwLDB4ODgsMHgwMCB9IH0sCi17ICAxNiwgMHhiMWIwLCAwLCB7MHgyMiwweDAwLDB4MGIsMHg4YywweDAzLDB4MjEsMHgwMCwweDg4LDB4ZDAsMHhhMiwweDNlLDB4MjgsMHg4ZCwweDAyLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHhiMWMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGNlLDB4MjAsMHhhMSwweDQ4LDB4MjAsMHg1MiB9IH0sCi17ICAxNiwgMHhiMWQwLCAwLCB7MHgyOSwweDEwLDB4MDIsMHgyNCwweDAzLDB4ODEsMHgwMCwweDJjLDB4NTIsMHgwYSwweDEwLDB4MTIsMHg4NSwweDEwLDB4OTEsMHg0MCB9IH0sCi17ICAxNiwgMHhiMWUwLCAwLCB7MHhhNCwweDQwLDB4MGEsMHgxMiwweDgyLDB4NDQsMHgwMCwweDkxLDB4MjgsMHgyNCwweDQwLDB4MjgsMHgxMiwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhiMWYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE0LDB4MDAsMHhhOSwweDE0LDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhiMjAwLCAwLCB7MHgwOSwweDkwLDB4MDIsMHhhNCwweDAxLDB4ODksMHgwNCwweDJjLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4OTksMHgwMCB9IH0sCi17ICAxNiwgMHhiMjEwLCAwLCB7MHgyMiwweDQ0LDB4NGIsMHgxMCwweDQyLDB4MjQsMHgxNCwweDk5LDB4MDAsMHgyNiwweDQwLDB4MDgsMHgxMCwweDAyLDB4MDYsMHgwNCB9IH0sCi17ICAxNiwgMHhiMjIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4NDAsMHhlOSwweDQwLDB4YjIsMHg3OCB9IH0sCi17ICAxNiwgMHhiMjMwLCAwLCB7MHgwZCwweDkwLDB4MGIsMHgyNCwweDIyLDB4YzksMHgwMywweDNlLDB4NDEsMHgwZSwweDkwLDB4MDMsMHhhNCwweDAyLDB4ZDksMHgwMCB9IH0sCi17ICAxNiwgMHhiMjQwLCAwLCB7MHgxNiwweDU4LDB4MDYsMHg5MCwweDBiLDB4NjQsMHgwMiwweGQ5LDB4MDAsMHgzNiwweDQwLDB4MGMsMHg5MCwweDBiLDB4MjgsMHgwNCB9IH0sCi17ICAxNiwgMHhiMjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweDg0LDB4MDAsMHhkOSwweDgwLDB4M2UsMHg0YSB9IH0sCi17ICAxNiwgMHhiMjYwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHg2NCwweDIwLDB4ZjksMHgwOCwweDNlLDB4NDEsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTEsMHgwOCB9IH0sCi17ICAxNiwgMHhiMjcwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzQsMHgwMCwweGUxLDB4MDAsMHgzOCwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhiMjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDksMHhmMCwweDQwLDB4YjAsMHgxMCB9IH0sCi17ICAxNiwgMHhiMjkwLCAwLCB7MHg0YywweDAwLDB4MGIsMHgyMCwweDAwLDB4ZjgsMHgwMCwweDNhLDB4MDAsMHgxYywweDAwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHhiMmEwLCAwLCB7MHgzNiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhiMmIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDI4LDB4MDAsMHgzZSwweDg4LDB4MjMsMHhhMiB9IH0sCi17ICAxNiwgMHhiMmMwLCAwLCB7MHg0OCwweGUwLDB4MDAsMHgxOSwweDgwLDB4YmUsMHg4OCwweDJlLDB4ODAsMHgwZCwweGEwLDB4NDIsMHhlOCwweDAwLDB4OGUsMHgwMCB9IH0sCi17ICAxNiwgMHhiMmQwLCAwLCB7MHgyMywweDkwLDB4MDgsMHhhMCwweDBhLDB4M2EsMHgwMCwweGRhLDB4MDAsMHgzNiwweDgwLDB4MGIsMHhhMCwweDBhLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhiMmUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDgwLDB4MjAsMHhlMCB9IH0sCi17ICAxNiwgMHhiMmYwLCAwLCB7MHgyOCwweDMwLDB4YzIsMHgwZiwweDEwLDB4YjMsMHg0MCwweDI4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHhlYywweDExLDB4ODMsMHg0MCB9IH0sCi17ICAxNiwgMHhiMzAwLCAwLCB7MHgyOCwweGQyLDB4MGEsMHgzMCwweDAyLDB4MGMsMHhjMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhiMzEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNiwweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHhiMzIwLCAwLCB7MHgwOCwweDIwLDB4YzIsMHgxYywweDEwLDB4YjUsMHgwMCwweDJkLDB4YzgsMHgwYSwweDcyLDB4MDIsMHhkYywweDQwLDB4ODUsMHgwOCB9IH0sCi17ICAxNiwgMHhiMzMwLCAwLCB7MHgyOSwweGEyLDB4MWEsMHg3MiwweDIyLDB4MGMsMHgwMCwweDkzLDB4MzAsMHgwNSwweGM0LDB4MGIsMHgzMiwweDIyLDB4MjgsMHgwMCB9IH0sCi17ICAxNiwgMHhiMzQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDE2LDB4MDAsMHhiMiwweDgwLDB4MzEsMHgyMCB9IH0sCi17ICAxNiwgMHhiMzUwLCAwLCB7MHgwYywweDU4LDB4MDMsMHgxZSwweDAwLDB4ZjcsMHg4MCwweDM5LDB4ZjgsMHgwYiwweDdjLDB4MjIsMHhjZSwweDQwLDB4Y2YsMHg4MCB9IH0sCi17ICAxNiwgMHhiMzYwLCAwLCB7MHg5YiwweDYwLDB4MmUsMHgzYiwweDAzLDB4MWEsMHgwMCwweGM3LDB4YTgsMHgxMSwweGUwLDB4MGYsMHg3OCwweDAzLDB4MmEsMHgwMiB9IH0sCi17ICAxNiwgMHhiMzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGE0LDB4MDAsMHhmYSwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhiMzgwLCAwLCB7MHgwZiwweDkwLDB4MjMsMHhlOCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4ZDAsMHgyZCwweGI2LDB4MDMsMHhlZCwweDAyLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhiMzkwLCAwLCB7MHgzMiwweDQwLDB4MGQsMHhiMCwweDA3LDB4ZWMsMHgwMCwweGZiLDB4NjAsMHgzZSwweGM4LDB4MGYsMHhiNSwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhiM2EwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhmZiwweDgwLDB4MzMsMHhhMCB9IH0sCi17ICAxNiwgMHhiM2IwLCAwLCB7MHgwYywweGY4LDB4MGIsMHgzMiwweDQwLDB4Y2UsMHg4MSwweDM3LDB4ZjAsMHgwYywweGJjLDB4MDMsMHhmZSwweDAwLDB4ZmYsMHg4NCB9IH0sCi17ICAxNiwgMHhiM2MwLCAwLCB7MHgzMywweGUwLDB4MmMsMHhmOCwweDgzLDB4ZTYsMHgwMiwweGNmLDB4ODUsMHgzMywweGYwLDB4MGMsMHhmYywweDAzLDB4MDAsMHgxNCB9IH0sCi17ICAxNiwgMHhiM2QwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDAsMHhiZSwweDAwLDB4MzUsMHhjNiB9IH0sCi17ICAxNiwgMHhiM2UwLCAwLCB7MHgyOCwweDMwLDB4MDIsMHgzMCwweDQwLDB4ODcsMHgwMCwweDIzLDB4YzAsMHgwOCwweDdhLDB4MDIsMHhkYywweDAwLDB4YmUsMHgwMCB9IH0sCi17ICAxNiwgMHhiM2YwLCAwLCB7MHgyMywweGMwLDB4MDgsMHg3MCwweDEyLDB4ZmUsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwLDB4MDgsMHhmMCwweDAyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhiNDAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk1LDB4MjAsMHhiNiwweDAwLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhiNDEwLCAwLCB7MHgwOCwweDMxLDB4MDIsMHg1YywweDAxLDB4ODcsMHgwMCwweDI1LDB4YzAsMHgwOCwweDcyLDB4MDIsMHhkYywweDAwLDB4YjYsMHgwMCB9IH0sCi17ICAxNiwgMHhiNDIwLCAwLCB7MHgyMSwweGQwLDB4MDksMHg3MCwweDAyLDB4ZDQsMHgwOCwweDkzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhiNDMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGM0LDB4MDAsMHhiMCwweGUwLDB4MjQsMHg2MCB9IH0sCi17ICAxNiwgMHhiNDQwLCAwLCB7MHgwOCwweDIwLDB4MDYsMHg0OCwweDAxLDB4ODAsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYywweDA0LDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhiNDUwLCAwLCB7MHgyMCwweDg0LDB4MGIsMHgzMCwweDAyLDB4ZTgsMHgwMCwweDliLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4MDgsMHgwNCB9IH0sCi17ICAxNiwgMHhiNDYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDAsMHhiOSwweGUwLDB4MzIsMHg4MCB9IH0sCi17ICAxNiwgMHhiNDcwLCAwLCB7MHg2YywweGIwLDB4MjMsMHg2ZiwweDAwLDB4YzMsMHgwMCwweDM3LDB4YzEsMHgzYywweGYwLDB4MDMsMHhmYywweDAwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHhiNDgwLCAwLCB7MHhiMCwweGMwLDB4MDksMHhmMCwweDAzLDB4ZWMsMHgxMCwweGRmLDB4MDAsMHg3MywweGMwLDB4MGMsMHhmMCwweDBiLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhiNDkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4MTAsMHhmOCwweDAwLDB4M2UsMHg0MiB9IH0sCi17ICAxNiwgMHhiNGEwLCAwLCB7MHgwZiwweDI0LDB4MDMsMHhhOCwweDYwLDB4ZjgsMHgwMCwweDNjLDB4YzEsMHgwZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZjksMHg0MCB9IH0sCi17ICAxNiwgMHhiNGIwLCAwLCB7MHgzZSwweDgwLDB4MDQsMHhiMCwweDIzLDB4ZTEsMHgwMCwweGViLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhiNGMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGY0LDB4MDAsMHhlZSwweDAwLDB4M2QsMHgzMCB9IH0sCi17ICAxNiwgMHhiNGQwLCAwLCB7MHgwYywweGMwLDB4MDMsMHgxNCwweDAwLDB4Y2MsMHhhMCwweGIzLDB4YzAsMHg0YywweDcwLDB4MDMsMHg1YywweDEwLDB4ZGYsMHgwMCB9IH0sCi17ICAxNiwgMHhiNGUwLCAwLCB7MHgzZiwweDAwLDB4MGMsMHhmMCwweDAzLDB4ZjgsMHgwMCwweGNmLDB4MDAsMHgyMywweGMwLDB4MGMsMHhmMCwweDAzLDB4MDAsMHg0MCB9IH0sCi17ICAxNiwgMHhiNGYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDY0LDB4MDAsMHhiYSwweDgxLDB4MmUsMHg1OCB9IH0sCi17ICAxNiwgMHhiNTAwLCAwLCB7MHgwOCwweDg4LDB4MDIsMHgyNywweDgwLDB4ODksMHgyMCwweDIyLDB4YzAsMHgyOCwweGIwLDB4MDIsMHgyYywweDAwLDB4ODgsMHg4MyB9IH0sCi17ICAxNiwgMHhiNTEwLCAwLCB7MHgyZSwweDIwLDB4MDUsMHhiMCwweDYyLDB4ZTMsMHgwMCwweDhiLDB4MDAsMHgyYSwweGMwLDB4MDgsMHhiMCwweDAzLDB4NjAsMHg0MCB9IH0sCi17ICAxNiwgMHhiNTIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI2LDB4MDAsMHhiOSwweDgxLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHhiNTMwLCAwLCB7MHgwOCwweDhjLDB4MDYsMHgyNiwweDAwLDB4ODgsMHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MTYsMHg2YywweDAwLDB4OTgsMHg4OCB9IH0sCi17ICAxNiwgMHhiNTQwLCAwLCB7MHgyZSwweDIwLDB4MDgsMHhiMCwweDA0LDB4ZTMsMHgwMSwweDBiLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhiNTUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMCwweDAwLDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhiNTYwLCAwLCB7MHgyOCwweDAwLDB4MGUsMHgwMCwweDEwLDB4ODAsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMyLDB4MDIsMHgwYywweDAwLDB4ODAsMHgwNCB9IH0sCi17ICAxNiwgMHhiNTcwLCAwLCB7MHgyZSwweDIwLDB4MDksMHgzMCwweDAyLDB4YzQsMHgxMiwweDgzLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NDIsMHgwMSB9IH0sCi17ICAxNiwgMHhiNTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhmYSwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhiNTkwLCAwLCB7MHgyYywweDkxLDB4MDMsMHgyMCwweDAwLDB4OGEsMHgwMCwweDMzLDB4YzAsMHgwYywweGYwLDB4MDMsMHg3YywweDAwLDB4ZDgsMHgwMCB9IH0sCi17ICAxNiwgMHhiNWEwLCAwLCB7MHgyZSwweDQwLDB4MGMsMHhmMCwweDAzLDB4ZTAsMHg4MCwweGNmLDB4MDAsMHgzYiwweGMwLDB4MGMsMHhmMCwweDAzLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHhiNWIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGZjLDB4MDAsMHhmYywweDAxLDB4M2YsMHg0MCB9IH0sCi17ICAxNiwgMHhiNWMwLCAwLCB7MHgwZiwweGMwLDB4MTMsMHhmMCwweDAwLDB4ZjQsMHgwMCwweDNmLDB4YzEsMHgwZiwweGY0LDB4MjMsMHhmYywweDA4LDB4ZmMsMHgwMCB9IH0sCi17ICAxNiwgMHhiNWQwLCAwLCB7MHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZjAsMHg0MCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhiNWUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4MjAsMHhjZCwweDEwLDB4MzksMHhjOCB9IH0sCi17ICAxNiwgMHhiNWYwLCAwLCB7MHgwZCwweGMxLDB4MDMsMHgzYywweDgwLDB4ZWYsMHg5MCwweDIzLDB4ZDgsMHgwZiwweGY4LDB4MDAsMHhmZSwweDAwLDB4Y2YsMHg4MCB9IH0sCi17ICAxNiwgMHhiNjAwLCAwLCB7MHgxZiwweGQwLDB4MGYsMHhmOSwweDAzLDB4ZmYsMHgwMCwweGU3LDB4YzAsMHgzMywweGM0LDB4MGYsMHhmMCwweDAzLDB4YjAsMHgwMCB9IH0sCi17ICAxNiwgMHhiNjEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMCwweGZlLDB4MDIsMHg4OSwweDQwLDB4MjMsMHhmMCB9IH0sCi17ICAxNiwgMHhiNjIwLCAwLCB7MHgwOCwweDg1LDB4MTAsMHgzYywweDAwLDB4OGIsMHgwMCwweGEzLDB4ZGMsMHg0YiwweGIyLDB4ODIsMHhlYywweDIwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhiNjMwLCAwLCB7MHgyNiwweGMwLDB4NGIsMHhiMCwweDAyLDB4ZWMsMHgxMCwweGI5LDB4MDQsMHgyYSwweGM5LDB4MGIsMHhiNSwweDgwLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHhiNjQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweGNjLDB4MDAsMHg4MSwweDY0LDB4MjgsMHhjNCB9IH0sCi17ICAxNiwgMHhiNjUwLCAwLCB7MHgwOSwweGIyLDB4MGEsMHgwYywweGYwLDB4YTMsMHgyMCwweDIwLDB4YzgsMHgwYiwweDMyLDB4MDIsMHhlYywweDAyLDB4ODMsMHgwOCB9IH0sCi17ICAxNiwgMHhiNjYwLCAwLCB7MHgyYywweGM4LDB4MDksMHgzMiwweDAyLDB4Y2MsMHg4MCwweGFiLDB4YTAsMHgyMCwweGM4LDB4MGIsMHgzMiwweDAwLDB4YjIsMHgwMSB9IH0sCi17ICAxNiwgMHhiNjcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGFjLDB4MTAsMHg4OSwweDAwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhiNjgwLCAwLCB7MHgwOCwweGIyLDB4MTIsMHgyYywweDAyLDB4MGIsMHgwMCwweDIyLDB4YzAsMHgwYiwweGI4LDB4MDIsMHhlYywweDAwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhiNjkwLCAwLCB7MHgyNiwweGMwLDB4NGIsMHhiMCwweDQ2LDB4ZWMsMHgwMCwweGI5LDB4MDAsMHgwYSwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHhiNmEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZDAsMHgxNSwweGVjLDB4MTAsMHhjOSwweGUwLDB4M2EsMHhjMCB9IH0sCi17ICAxNiwgMHhiNmIwLCAwLCB7MHgwZCwweDI4LDB4MDMsMHgyYywweDAwLDB4ZWIsMHgxMCwweDMyLDB4YzAsMHgwZiwweDgyLDB4MDMsMHhjNCwweDAwLDB4Y2IsMHgwMCB9IH0sCi17ICAxNiwgMHhiNmMwLCAwLCB7MHgzZSwweGMxLDB4MGYsMHhiMCwweDA2LDB4ZWMsMHgwOCwweGU5LDB4MDAsMHhiMiwweGMwLDB4MGYsMHhiMCwweDEzLDB4OTAsMHgwNCB9IH0sCi17ICAxNiwgMHhiNmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDljLDB4MDAsMHhmNSwweGEwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhiNmUwLCAwLCB7MHgwZiwweGU4LDB4MDMsMHhmYywweDA4LDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhiNmYwLCAwLCB7MHgzNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDQsMHgzZSwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhiNzAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgxMCwweGFjLDB4MDAsMHhmOSwweDQwLDB4MzQsMHhjMCB9IH0sCi17ICAxNiwgMHhiNzEwLCAwLCB7MHgwZCwweGI0LDB4MDMsMHgyYywweDAwLDB4ZGIsMHg0MCwweDNlLDB4YzAsMHgyYywweDgwLDB4MDMsMHg2NCwweDA4LDB4ZmIsMHgxMCB9IH0sCi17ICAxNiwgMHhiNzIwLCAwLCB7MHgzZSwweGM2LDB4OGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4ODAsMHgzMiwweGMwLDB4MGMsMHhiMCwweDBiLDB4MTQsMHgwNCB9IH0sCi17ICAxNiwgMHhiNzMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDNlLDB4MjAsMHhlOSwweGM4LDB4MzcsMHhkNCB9IH0sCi17ICAxNiwgMHhiNzQwLCAwLCB7MHg0OCwweGFhLDB4MjIsMHgxYywweDAwLDB4OGIsMHgwMCwweDZmLDB4ZTAsMHgwOCwweDg1LDB4ODIsMHhlZCwweDQwLDB4YmIsMHg4NCB9IH0sCi17ICAxNiwgMHhiNzUwLCAwLCB7MHgyZiwweGMwLDB4NGIsMHhiOCwweDAzLDB4YWQsMHg0MCwweGIzLDB4MDAsMHgyMywweGQ0LDB4MDgsMHhmNywweDAyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhiNzYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDRjLDB4MDAsMHhiMSwweDY0LDB4YTQsMHhjMCB9IH0sCi17ICAxNiwgMHhiNzcwLCAwLCB7MHgwOSwweDIwLDB4MGEsMHgwYywweDA0LDB4YjgsMHgwMCwweDZjLDB4YzAsMHgwOCwweDM4LDB4MDIsMHhjOCwweDQwLDB4YjMsMHg4MCB9IH0sCi17ICAxNiwgMHhiNzgwLCAwLCB7MHgyYywweGQxLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwNCwweGIzLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4M2EsMHgwMCB9IH0sCi17ICAxNiwgMHhiNzkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjAsMHgwMSwweDFlLDB4MDAsMHhhNSwweDgwLDB4MjUsMHhlMCB9IH0sCi17ICAxNiwgMHhiN2EwLCAwLCB7MHg4OCwweDNhLDB4MTIsMHgxZSwweDAwLDB4YTYsMHg5MCwweDJkLDB4ZTIsMHgwOCwweDc5LDB4MDIsMHhkYSwweDAwLDB4YjcsMHg4MiB9IH0sCi17ICAxNiwgMHhiN2IwLCAwLCB7MHgyZCwweGUwLDB4MDMsMHg3OCwweDgyLDB4OWUsMHgwMCwweGJjLDB4YzEsMHgyOSwweGUwLDB4MDgsMHg3OCwweDAyLDB4MmMsMHgxMCB9IH0sCi17ICAxNiwgMHhiN2MwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDksMHgwOCwweDBjLDB4MDAsMHhmMywweDAwLDB4MzQsMHhjMCB9IH0sCi17ICAxNiwgMHhiN2QwLCAwLCB7MHgwZCwweDNlLDB4MDMsMHgwYywweDAwLDB4ZjAsMHg0MCwweDJlLDB4YzAsMHgwYywweDMwLDB4NDMsMHhjOCwweDAwLDB4ZjMsMHgwMCB9IH0sCi17ICAxNiwgMHhiN2UwLCAwLCB7MHgzYywweGMwLDB4MDcsMHgzMCwweDAzLDB4Y2MsMHg4MCwweGYyLDB4MDAsMHgzOCwweGMwLDB4MGMsMHgzMCwweDAzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhiN2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxOSwweGJkLDB4MjAsMHhmNywweDAwLDB4M2YsMHhjMiB9IH0sCi17ICAxNiwgMHhiODAwLCAwLCB7MHgwZiwweGYxLDB4MGIsMHhkYywweDIwLDB4ZGUsMHgwNCwweDNmLDB4ZDIsMHgwNywweGYwLDB4MTMsMHhmOCwweDQwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhiODEwLCAwLCB7MHgzZiwweGMwLDB4MDcsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZkLDB4MDAsMHgzNywweGMwLDB4MGYsMHg3MCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhiODIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YWEsMHgwNSwweGNmLDB4MDAsMHhkYywweDAwLDB4M2UsMHhjYSB9IH0sCi17ICAxNiwgMHhiODMwLCAwLCB7MHgwZiwweGEwLDB4MDAsMHhhYywweDkyLDB4YzksMHgwMCwweDMyLDB4YzAsMHgwZiwweGIwLDB4MTEsMHhhNCwweDA4LDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhiODQwLCAwLCB7MHgyZSwweGMwLDB4NGYsMHhiMCwweDIzLDB4ZWMsMHgwMCwweGY5LDB4MDAsMHgzZSwweGM0LDB4MGYsMHhiMCwweDAzLDB4ZWEsMHgwMCB9IH0sCi17ICAxNiwgMHhiODUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHg5MSwweDljLDB4MDAsMHg4NCwweDAwLDB4MDEsMHhjMCB9IH0sCi17ICAxNiwgMHhiODYwLCAwLCB7MHg0YiwweDcwLDB4MjIsMHgxYywweGMwLDB4ODcsMHgwMCwweDIxLDB4YzAsMHg0YiwweDcwLDB4MDIsMHgxYywweDAwLDB4YjcsMHgwMSB9IH0sCi17ICAxNiwgMHhiODcwLCAwLCB7MHgyNSwweGQ4LDB4MGIsMHg3MCwweDIyLDB4ZGMsMHgwMCwweGI2LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MiwweDIyLDB4ZjIsMHgwNCB9IH0sCi17ICAxNiwgMHhiODgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4ODAsMHg5NywweDgwLDB4YTksMHhlMCB9IH0sCi17ICAxNiwgMHhiODkwLCAwLCB7MHgwYiwweGY4LDB4MDIsMHhjZSwweDA4LDB4ODUsMHg4MCwweDI5LDB4ZTgsMHgwYiwweGZjLDB4MDIsMHgxNywweDAwLDB4YjcsMHg4MCB9IH0sCi17ICAxNiwgMHhiOGEwLCAwLCB7MHgyZCwweGUwLDB4OGIsMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI0LDB4YzAsMHgyZCwweGU4LDB4MGIsMHg3OSwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhiOGIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDA4LDB4YTAsMHhjMCB9IH0sCi17ICAxNiwgMHhiOGMwLCAwLCB7MHg4YiwweDNjLDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweGEwLDB4YzAsMHgxYiwweDNjLDB4MGEsMHgwZiwweDI5LDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhiOGQwLCAwLCB7MHgyNCwweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4ODAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHhiOGUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhkZSwweDAwLDB4M2EsMHg4MCB9IH0sCi17ICAxNiwgMHhiOGYwLCAwLCB7MHgwZiwweGVhLDB4MDIsMHhlOCwweDAwLDB4Y2UsMHgwMCwweDNhLDB4ODAsMHgwZiwweGUwLDB4MDMsMHgzOCwweDAwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHhiOTAwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGZlLDB4MDAsMHgzZSwweDgwLDB4MGIsMHhhMCwweDAzLDB4ZmEsMHgwNCB9IH0sCi17ICAxNiwgMHhiOTEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDA0LDB4YmEsMHgwMSB9IH0sCi17ICAxNiwgMHhiOTIwLCAwLCB7MHgwZiwweDgyLDB4MGIsMHg4MCwweDA0LDB4ZjgsMHg4MCwweDNlLDB4MDAsMHgwZiwweDg2LDB4MDMsMHg2MCwweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhiOTMwLCAwLCB7MHgzNiwweDAwLDB4MGYsMHg4MCwweDIzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhiOTQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDEsMHhmOSwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhiOTUwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4NDksMHgwMCwweDMyLDB4NDAsMHgwYiwweDkwLDB4MDMsMHgyNCwweDAwLDB4NDksMHgwMCB9IH0sCi17ICAxNiwgMHhiOTYwLCAwLCB7MHgzYywweDQwLDB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwOCwweGM5LDB4MDAsMHgzZSwweDYwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhiOTcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDQwLDB4YTIsMHg2NCB9IH0sCi17ICAxNiwgMHhiOTgwLCAwLCB7MHgwYiwweDE4LDB4MDIsMHgyNSwweDAwLDB4ZDEsMHg1MCwweDM2LDB4NTAsMHg0ZSwweDkwLDB4MGEsMHgyNCwweDAyLDB4ODksMHg0MCB9IH0sCi17ICAxNiwgMHhiOTkwLCAwLCB7MHgzYSwweDUxLDB4MDgsMHg5NCwweDAyLDB4ZTUsMHgyMiwweDg5LDB4NDQsMHgyZSwweDYwLDB4MjgsMHg5MCwweDBhLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhiOWEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHhiMSwweDA4LDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhiOWIwLCAwLCB7MHg0YiwweDkyLDB4ODIsMHhhNSwweDAwLDB4YTksMHgwOCwweDIyLDB4NTAsMHgwYSwweDEwLDB4MDIsMHgwYywweDAwLDB4YTksMHg0MCB9IH0sCi17ICAxNiwgMHhiOWMwLCAwLCB7MHg2ZSwweDUwLDB4MGIsMHg5NCwweDAyLDB4YzQsMHgwNCwweDg5LDB4NDQsMHg2YywweDQ4LDB4ODgsMHgxMCwweDAyLDB4NDYsMHgwMCB9IH0sCi17ICAxNiwgMHhiOWQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDA0LDB4MDAsMHhiMSwweDQwLDB4ZTAsMHg0MCB9IH0sCi17ICAxNiwgMHhiOWUwLCAwLCB7MHgxYiwweDE0LDB4MGEsMHgwNCwweDAwLDB4YjksMHgwMCwweDI0LDB4NDAsMHgxYSwweDEwLDB4MjIsMHgwNCwweDAwLDB4YTEsMHgwMCB9IH0sCi17ICAxNiwgMHhiOWYwLCAwLCB7MHgyOCwweDQwLDB4MGEsMHgxMCwweDEyLDB4YzQsMHgwMCwweDgxLDB4MDIsMHg2YywweDQwLDB4MDgsMHgxMiwweDAyLDB4NDIsMHgwMSB9IH0sCi17ICAxNiwgMHhiYTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDgsMHhiMCwweDAwLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhiYTEwLCAwLCB7MHg0ZiwweDgwLDB4MDIsMHhhMSwweDUwLDB4ZTAsMHg1MCwweDMyLDB4MTQsMHgwZSwweGE1LDB4MjMsMHgyMSwweDQwLDB4ZTgsMHg1MCB9IH0sCi17ICAxNiwgMHhiYTIwLCAwLCB7MHgzZSwweDE0LDB4MGYsMHg4NSwweDAzLDB4ZTEsMHg0MCwweGM4LDB4NTAsMHgxZSwweDE0LDB4MGMsMHg4NSwweDQzLDB4NmUsMHgwMyB9IH0sCi17ICAxNiwgMHhiYTMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZDgsMHgxOSwweGU1LDB4MDAsMHhmZCwweDQwLDB4M2UsMHg1MCB9IH0sCi17ICAxNiwgMHhiYTQwLCAwLCB7MHgwZiwweDc0LDB4MDMsMHhhNSwweDAwLDB4NWQsMHgwMCwweDNlLDB4NTAsMHgwYSwweDUwLDB4MTMsMHhmNCwweDAwLDB4ZDksMHgwMCB9IH0sCi17ICAxNiwgMHhiYTUwLCAwLCB7MHgzYSwweDUwLDB4MGQsMHg5MCwweDEzLDB4ZTQsMHgwMCwweGZmLDB4MDAsMHgzZSwweDUwLDB4MGYsMHg5MSwweDAzLDB4YTYsMHgwNiB9IH0sCi17ICAxNiwgMHhiYTYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4OTAsMHhiZCwweGU4LDB4MjMsMHg2YiB9IH0sCi17ICAxNiwgMHhiYTcwLCAwLCB7MHgwYiwweGRhLDB4MGIsMHgzNiwweDgwLDB4YzksMHgwMCwweDMyLDB4NjgsMHg0NiwweDkwLDB4NDMsMHhlNCwweDAwLDB4NDksMHgwMCB9IH0sCi17ICAxNiwgMHhiYTgwLCAwLCB7MHgzMiwweDY4LDB4MGMsMHg5MCwweDAzLDB4MjQsMHg0MCwweGY5LDB4MDAsMHgzMiwweDYwLDB4MGMsMHg5YywweDAzLDB4YzYsMHgwMSB9IH0sCi17ICAxNiwgMHhiYTkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NzgsMHgxMCwweGUxLDB4MDAsMHhiOCwweGUwLDB4YTIsMHgxMSB9IH0sCi17ICAxNiwgMHhiYWEwLCAwLCB7MHgwYiwweDhlLDB4MGEsMHgyMywweDIyLDB4ODgsMHg4MCwweDJhLDB4MzEsMHgyOCwweDg4LDB4MDIsMHg2MiwweDAwLDB4ODgsMHg4MCB9IH0sCi17ICAxNiwgMHhiYWIwLCAwLCB7MHhhMiwweDMwLDB4MjgsMHg4OCwweDhhLDB4MjIsMHgwMCwweGI4LDB4YTgsMHhhMiwweDM5LDB4MDgsMHhjYSwweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHhiYWMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM1LDB4MDgsMHgyMSwweDAwLDB4MDAsMHg0MCB9IH0sCi17ICAxNiwgMHhiYWQwLCAwLCB7MHgwMywweDE0LDB4ODIsMHg4NSwweDgwLDB4YWQsMHgwOCwweDIxLDB4NTIsMHg5OCwweDUwLDB4ODIsMHgzNCwweDIzLDB4ODUsMHgwOCB9IH0sCi17ICAxNiwgMHhiYWUwLCAwLCB7MHgyMSwweDUyLDB4MDgsMHg1MCwweDA2LDB4NTQsMHgwMCwweGI1LDB4MjAsMHgyMSwweDVhLDB4MDksMHg1NCwweDAyLDB4ZDIsMHgwMSB9IH0sCi17ICAxNiwgMHhiYWYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxMSwweGE0LDB4MDAsMHhiOSwweDYxLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhiYjAwLCAwLCB7MHgwYiwweDkwLDB4MDYsMHgwNCwweDAwLDB4YWQsMHgwMCwweDY5LDB4NDAsMHgwOCwweGQwLDB4MDIsMHg3NCwweDAwLDB4ODUsMHgwMCB9IH0sCi17ICAxNiwgMHhiYjEwLCAwLCB7MHgwMSwweDQwLDB4MDAsMHg3MCwweDA2LDB4NzQsMHgwNCwweGI1LDB4MDAsMHgyMywweDQwLDB4MDksMHhkMCwweDAyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHhiYjIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNCwweGE0LDB4MDAsMHhlOSwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhiYjMwLCAwLCB7MHg0ZiwweDk1LDB4MGIsMHhhNCwweDAwLDB4ZTksMHgwMCwweDMyLDB4NDAsMHg4YywweDkwLDB4MDMsMHgyNCwweDAwLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHhiYjQwLCAwLCB7MHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4NjQsMHgwOCwweGY5LDB4MDAsMHgzMiwweDQwLDB4M2QsMHg5MCwweDAzLDB4ZTgsMHgwNCB9IH0sCi17ICAxNiwgMHhiYjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwMSwweGE0LDB4MDgsMHhmOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhiYjYwLCAwLCB7MHg0ZiwweDkwLDB4OGIsMHhlNCwweDA0LDB4ZDksMHgwMSwweDNlLDB4NDAsMHgwZCwweDkwLDB4MDMsMHg2NCwweDAwLDB4ZDksMHgwMSB9IH0sCi17ICAxNiwgMHhiYjcwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzYywweDQwLDB4MGUsMHg5MCwweDAzLDB4ZGEsMHgwMCB9IH0sCi17ICAxNiwgMHhiYjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhmOCwweDQwLDB4MzYsMHgyMCB9IH0sCi17ICAxNiwgMHhiYjkwLCAwLCB7MHgxNywweDg0LDB4MDMsMHgyMCwweDIxLDB4YzgsMHgwMCwweDdlLDB4MDIsMHgyYywweDgwLDB4NDMsMHgyMCwweDAwLDB4ZTgsMHgwMiB9IH0sCi17ICAxNiwgMHhiYmEwLCAwLCB7MHgzZSwweDAxLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4NDAsMHgxZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHhiYmIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDJhLDB4ODgsMHhiNiwweDAyLDB4MjMsMHhhMCB9IH0sCi17ICAxNiwgMHhiYmMwLCAwLCB7MHgwYiwweGVjLDB4NDIsMHgyYiwweDAwLDB4ZDIsMHg4MCwweDZlLDB4YjEsMHgwOCwweGEwLDB4MjIsMHgwOCwweDAwLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhiYmQwLCAwLCB7MHgzYSwweDgwLDB4OWYsMHhhMCwweDAzLDB4YTgsMHgwMCwweDhhLDB4MDQsMHgyZSwweDgwLDB4MGIsMHhhOCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhiYmUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMiwweDAwLDB4YTQsMHhlMSB9IH0sCi17ICAxNiwgMHhiYmYwLCAwLCB7MHg4YiwweGI0LDB4MzIsMHg0NywweDQ1LDB4ODMsMHg5MCwweDJjLDB4ZjQsMHg0YiwweDM4LDB4MTIsMHgwZSwweDQ0LDB4YTMsMHgwMSB9IH0sCi17ICAxNiwgMHhiYzAwLCAwLCB7MHgyYywweGMwLDB4NGIsMHgzMCwweDAyLDB4Y2UsMHgwMCwweDkzLDB4MDAsMHg2YywweGMwLDB4MGIsMHgzOCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhiYzEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNywweDQ0LDB4MjEsMHhjMiB9IH0sCi17ICAxNiwgMHhiYzIwLCAwLCB7MHgwYiwweDU0LDB4MDIsMHg1NCwweDA1LDB4ODcsMHgwMCwweDJjLDB4NDAsMHg5YiwweDZjLDB4MDIsMHgxOCwweDEwLDB4YTcsMHgwNCB9IH0sCi17ICAxNiwgMHhiYzMwLCAwLCB7MHgyOSwweGMwLDB4MGEsMHg3MCwweDAyLDB4OWIsMHgwMCwweDk3LDB4MDQsMHgwZCwweDgwLDB4MGIsMHg2MCwweDgyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHhiYzQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhmMywweDgwLDB4MzUsMHhlMCB9IH0sCi17ICAxNiwgMHhiYzUwLCAwLCB7MHgwYiwweDM4LDB4MDIsMHg1MiwweDEwLDB4ODQsMHg4MCwweDJkLDB4YTAsMHgwZiwweGY4LDB4MGIsMHgxZSwweDAwLDB4ZTYsMHg4MCB9IH0sCi17ICAxNiwgMHhiYzYwLCAwLCB7MHgxZCwweGEwLDB4MGIsMHg2OCwweDAzLDB4ZmUsMHgwMiwweGQ2LDB4ODAsMHgzZCwweGUwLDB4MGYsMHg3OCwweDAzLDB4ZWEsMHgwMiB9IH0sCi17ICAxNiwgMHhiYzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGEsMHgxZCwweGFjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMSB9IH0sCi17ICAxNiwgMHhiYzgwLCAwLCB7MHg4YiwweDkwLDB4MGIsMHg4MCwweDBhLDB4YjgsMHgwMSwweDJlLDB4MDAsMHgwYywweGIwLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHgwMCB9IH0sCi17ICAxNiwgMHhiYzkwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhhMCwweDQzLDB4ZWMsMHgwMCwweGViLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhhNiwweDIzLDB4YzIsMHgwMiB9IH0sCi17ICAxNiwgMHhiY2EwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhmZSwweDgwLDB4MzMsMHgyMCB9IH0sCi17ICAxNiwgMHhiY2IwLCAwLCB7MHg0ZSwweGM5LDB4MTIsMHhmNiwweDUwLDB4ZWYsMHg5MCwweDNmLDB4ZTAsMHgwYywweDE5LDB4MDAsMHhiNiwweDQyLDB4Y2YsMHgyMSB9IH0sCi17ICAxNiwgMHhiY2MwLCAwLCB7MHgzZiwweGUwLDB4MGUsMHhmOSwweDAyLDB4ZTYsMHhjMCwweGZmLDB4ODAsMHgzZiwweGUwLDB4NGMsMHhkYywweDAzLDB4NDAsMHgwMCB9IH0sCi17ICAxNiwgMHhiY2QwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YWEsMHgxMSwweDk0LDB4MDAsMHhiNywweDAwLDB4ODEsMHg0MCB9IH0sCi17ICAxNiwgMHhiY2UwLCAwLCB7MHgwOCwweDAzLDB4MDIsMHgxNCwweGM0LDB4ODcsMHgwMSwweDJkLDB4YzgsMHgwOCwweDZhLDB4MTIsMHgzOCwweDQwLDB4ODcsMHgwMiB9IH0sCi17ICAxNiwgMHhiY2YwLCAwLCB7MHgyZCwweGMwLDB4MDgsMHg3MSwweDEyLDB4ZDIsMHg4MCwweGI3LDB4MDAsMHgyZCwweDgwLDB4MDgsMHg2MCwweDAyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhiZDAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhiNywweDEwLDB4MjEsMHg4MCB9IH0sCi17ICAxNiwgMHhiZDEwLCAwLCB7MHgwOCwweGY0LDB4MTIsMHg5NCwweDA0LDB4YTYsMHgwMCwweDJjLDB4YzAsMHgxOCwweGQyLDB4MDIsMHgxNCwweDQ4LDB4ODYsMHgxMCB9IH0sCi17ICAxNiwgMHhiZDIwLCAwLCB7MHgyZCwweDgwLDB4MGEsMHg2MSwweDMyLDB4ZDQsMHgwMCwweGI2LDB4MTgsMHgyZCwweGM0LDB4MDgsMHg1OCwweDAyLDB4MDAsMHgxMCB9IH0sCi17ICAxNiwgMHhiZDMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGM0LDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhiZDQwLCAwLCB7MHg0MCwweGIwLDB4MjIsMHgwNCwweDAwLDB4ODIsMHg4MSwweDBjLDB4YzAsMHgwOCwweDMwLDB4MGEsMHgwYSwweDAwLDB4OGEsMHgwMCB9IH0sCi17ICAxNiwgMHhiZDUwLCAwLCB7MHgyZSwweGMwLDB4MDgsMHhhMCwweDAyLDB4YzQsMHgwMCwweGJiLDB4MDAsMHgyZSwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwNCB9IH0sCi17ICAxNiwgMHhiZDYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDAsMHhmYiwweDAwLDB4YTAsMHhjMCB9IH0sCi17ICAxNiwgMHhiZDcwLCAwLCB7MHgyNCwweDk0LDB4MjMsMHhhYywweDEwLDB4ZWIsMHhhMCwweDBlLDB4YzAsMHgwYywweGIwLDB4MDIsMHgyZSwweDIwLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHhiZDgwLCAwLCB7MHgyZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4ODAsMHgzZSwweDQwLDB4NmMsMHhhMCwweDBiLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhiZDkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGNjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhiZGEwLCAwLCB7MHg4OSwweDkwLDB4MDMsMHgyYywweDAwLDB4ZmIsMHgwMiwweDNlLDB4NDAsMHg0ZiwweGEwLDB4MDMsMHg2ZCwweDAxLDB4ZmIsMHg0MSB9IH0sCi17ICAxNiwgMHhiZGIwLCAwLCB7MHgzZSwweGMwLDB4OGYsMHhiNCwweDAzLDB4ZTgsMHgwMCwweGZiLDB4MjAsMHgzZSwweDUwLDB4MGYsMHhhNCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhiZGMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhjMywweDIwLDB4YjIsMHhjMCB9IH0sCi17ICAxNiwgMHhiZGQwLCAwLCB7MHgwZCwweGQwLDB4MDMsMHgzOCwweDAwLDB4Y2QsMHgwMCwweDNmLDB4ODAsMHgwZCwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmQsMHgwMiB9IH0sCi17ICAxNiwgMHhiZGUwLCAwLCB7MHgzNiwweDAwLDB4MGMsMHhkMCwweDAzLDB4M2YsMHgwOCwweGZjLDB4MDQsMHgxMiwweGMwLDB4MGMsMHhhMCwweDAzLDB4YzAsMHg0NCB9IH0sCi17ICAxNiwgMHhiZGYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDZjLDB4MDIsMHg4YiwweGM4LDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhiZTAwLCAwLCB7MHgwOCwweDk4LDB4MGEsMHgyYSwweDQwLDB4ODksMHgyMCwweDJlLDB4MDEsMHg4ZSwweGIwLDB4MTIsMHhlYywweDgwLDB4YmIsMHhmMCB9IH0sCi17ICAxNiwgMHhiZTEwLCAwLCB7MHgyMiwweGU1LDB4MDgsMHhiZCwweDAyLDB4MmUsMHgwMCwweGJiLDB4OTAsMHgyMiwweGVkLDB4MDgsMHhhMiwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhiZTIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAxLDB4MjIsMHgwMCB9IH0sCi17ICAxNiwgMHhiZTMwLCAwLCB7MHg0OSwweGE4LDB4MWUsMHgwNCwweDAwLDB4OGIsMHgwMSwweDJlLDB4YzAsMHg0OSwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhiZTQwLCAwLCB7MHgyMiwweDQwLDB4MGEsMHg5MCwweDAyLDB4MmMsMHgwMCwweGI5LDB4MDAsMHgyYSwweDQwLDB4MDgsMHg4MCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhiZTUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhiZTYwLCAwLCB7MHgwOCwweDIwLDB4MDIsMHgwNCwweDAwLDB4ODMsMHgwMCwweDJjLDB4YzAsMHgwYSwweDIwLDB4NDIsMHhjYywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhiZTcwLCAwLCB7MHgyMCwweGMwLDB4MDIsMHgzMCwweDAyLDB4MDgsMHg4NCwweGIzLDB4MDQsMHgwOCwweDQwLDB4MDgsMHgyMCwweDAyLDB4YzIsMHgxMSB9IH0sCi17ICAxNiwgMHhiZTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHg4YiwweDAwLDB4YjIsMHg4MCB9IH0sCi17ICAxNiwgMHhiZTkwLCAwLCB7MHgwZCwweGIxLDB4MDMsMHgyNCwweDAyLDB4Y2IsMHgwMSwweDNlLDB4YzAsMHg0ZCwweDkwLDB4NDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhiZWEwLCAwLCB7MHhiMiwweDAwLDB4MmUsMHg5MCwweDBiLDB4MmMsMHg4MCwweGY4LDB4MDAsMHhiYSwweGMwLDB4MmMsMHg4MCwweDAzLDB4YzAsMHgwMyB9IH0sCi17ICAxNiwgMHhiZWIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGY0LDB4MDAsMHg3ZCwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhiZWMwLCAwLCB7MHgwZiwweDcyLDB4MDMsMHhkNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZSwweGYxLDB4NDcsMHhmYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhiZWQwLCAwLCB7MHgzYiwweGMwLDB4MGQsMHhmMCwweDEzLDB4ZmMsMHg1MCwweGZmLDB4MDAsMHgzNywweGMwLDB4MGYsMHhlMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhiZWUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGYwLDB4YzQsMHhjYywweDMzLDB4M2YsMHgwNCB9IH0sCi17ICAxNiwgMHhiZWYwLCAwLCB7MHgyYywweGY2LDB4MDMsMHgzOCwweDYwLDB4Y2MsMHg5MCwweGIzLDB4MjAsMHgwZiwweGYxLDB4MjMsMHhmMCwweDYwLDB4ZmYsMHgwMSB9IH0sCi17ICAxNiwgMHhiZjAwLCAwLCB7MHgyMywweGM4LDB4MGMsMHhmMiwweDhhLDB4M2MsMHg4MSwweGRmLDB4MzAsMHgzZiwweDY0LDB4MGMsMHhkOCwweDAzLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhiZjEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGUwLDB4YzIsMHg4YSwweDMwLDB4MmUsMHgxOCB9IH0sCi17ICAxNiwgMHhiZjIwLCAwLCB7MHgwOCwweGY1LDB4MzAsMHhhNSwweDk0LDB4NTgsMHgyMiwweDIyLDB4MjEsMHg0YiwweGYzLDB4MDIsMHhlMSwweDAwLDB4OWYsMHg3MCB9IH0sCi17ICAxNiwgMHhiZjMwLCAwLCB7MHgyYiwweGU0LDB4MGEsMHhmNCwweDEyLDB4MWQsMHg0MCwweGFmLDB4NzIsMHgyYywweDQ5LDB4MmYsMHgzMCwweDgyLDB4YTAsMHgwNiB9IH0sCi17ICAxNiwgMHhiZjQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4ODAsMHg4MCwweGEwLDB4MmMsMHg5OCB9IH0sCi17ICAxNiwgMHhiZjUwLCAwLCB7MHgwOCwweDMyLDB4MjIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDI4LDB4MDAsMHgwMywweDMyLDB4MDIsMHhjMCwweDg0LDB4YjMsMHgwYyB9IH0sCi17ICAxNiwgMHhiZjYwLCAwLCB7MHgyMCwweGMwLDB4NTgsMHgzMiwweDkyLDB4OGMsMHgzMCwweGEzLDB4MjAsMHgyZSwweGMwLDB4NDgsMHgxMiwweDQyLDB4NjIsMHgwMSB9IH0sCi17ICAxNiwgMHhiZjcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGE4LDB4MDAsMHg4YiwweDAwLDB4MmUsMHgyMCB9IH0sCi17ICAxNiwgMHhiZjgwLCAwLCB7MHgwOCwweGIwLDB4MGEsMHgyMCwweDAxLDB4OTgsMHgwMCwweDJhLDB4MjIsMHgwYiwweGIwLDB4MDIsMHhlNiwweDAwLDB4OWIsMHgwMCB9IH0sCi17ICAxNiwgMHhiZjkwLCAwLCB7MHgyMiwweGMwLDB4MGEsMHhiMCwweDEyLDB4YWMsMHgwNCwweGFiLDB4MDAsMHgyZSwweGMwLDB4MDMsMHhiMCwweDAyLDB4ZjAsMHgwMCB9IH0sCi17ICAxNiwgMHhiZmEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweGU1LDB4MDAsMHhjOCwweDAwLDB4M2UsMHhiMCB9IH0sCi17ICAxNiwgMHhiZmIwLCAwLCB7MHgwYywweGIwLDB4MDMsMHgyOSwweDAwLDB4YzgsMHgwMCwweDNhLDB4MjAsMHg0ZiwweGIwLDB4MDMsMHhlMiwweDIwLDB4ZmIsMHgwMSB9IH0sCi17ICAxNiwgMHhiZmMwLCAwLCB7MHhiMCwweGMwLDB4MGMsMHhiMCwweDAzLDB4MmMsMHgwMCwweGZiLDB4MDIsMHgzYywweDQxLDB4MGMsMHg5MCwweDQzLDB4NDgsMHgwNCB9IH0sCi17ICAxNiwgMHhiZmQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGEyLDB4ODAsMHhmZSwweDQwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhiZmUwLCAwLCB7MHgwZiwweGYwLDB4NjMsMHhlYywweDAwLDB4YmYsMHhjNCwweDE3LDB4NDIsMHgwZiwweGYwLDB4MDMsMHhlYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhiZmYwLCAwLCB7MHgxZiwweGMxLDB4MGYsMHhiMCwweDAzLDB4NWMsMHgwMCwweGZiLDB4MDAsMHgzZiwweDQwLDB4NGYsMHhmMCwweDAwLDB4YjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGE1LDB4MDIsMHhjOCwweDAwLDB4M2UsMHg5MCB9IH0sCi17ICAxNiwgMHhjMDEwLCAwLCB7MHgyYywweGIwLDB4MGIsMHgwMSwweDA2LDB4Y2IsMHgwMSwweDNlLDB4NTAsMHg1ZiwweGIwLDB4MTMsMHgyMSwweDEwLDB4Y2IsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDIwLCAwLCB7MHg3ZSwweGMwLDB4MGMsMHhiMCwweDBiLDB4MmMsMHgwMCwweGNiLDB4MDAsMHgzMiwweGMwLDB4MGMsMHg5MCwweDAzLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhjMDMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDI4LDB4MDEsMHg4YiwweGQwLDB4MmMsMHgzNCB9IH0sCi17ICAxNiwgMHhjMDQwLCAwLCB7MHg0OCwweGZmLDB4MDIsMHgzMCwweDAwLDB4YWEsMHgwNCwweDJlLDB4NjksMHgwZiwweGYwLDB4MDMsMHg2OCwweDEwLDB4ZGYsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDUwLCAwLCB7MHgyZiwweGQ0LDB4MGQsMHhmMCwweDAyLDB4M2UsMHgwMCwweDVmLDB4MDQsMHhiNiwweGMwLDB4MDgsMHhiMCwweDAzLDB4NzIsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDY5LDB4OTAsMHg4MSwweDgwLDB4MmMsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDcwLCAwLCB7MHg0OCwweGI4LDB4MDIsMHgwOCwweDA5LDB4OTksMHgwMCwweDRjLDB4YjAsMHgwYiwweDMwLDB4MDIsMHgwYywweDAwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDgwLCAwLCB7MHgyYywweGMwLDB4MDksMHhiMCwweDQwLDB4MGMsMHg0MCwweDgzLDB4MDAsMHgwMCwweDQwLDB4MGEsMHg5MCwweDAyLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhjMDkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDE2LDB4MDAsMHg4NCwweDg4LDB4MmQsMHhlNCB9IH0sCi17ICAxNiwgMHhjMGEwLCAwLCB7MHg0OCwweDM5LDB4MDIsMHgxNiwweDAwLDB4YjQsMHg4MCwweDJkLDB4ZTAsMHgwYSwweDdiLDB4MDYsMHg1ZSwweDAwLDB4OTcsMHg4MCB9IH0sCi17ICAxNiwgMHhjMGIwLCAwLCB7MHgyZCwweGUyLDB4MDksMHg3OCwweDAyLDB4MWUsMHg5MCwweDk3LDB4ODAsMHgyNSwweDY0LDB4OGEsMHg3OCwweDAyLDB4NDgsMHgwMCB9IH0sCi17ICAxNiwgMHhjMGMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBkLDB4MDAsMHg4MSwweDEwLDB4MmMsMHg5NiB9IH0sCi17ICAxNiwgMHhjMGQwLCAwLCB7MHgwOCwweDMxLDB4MjMsMHgwYywweDAwLDB4OTAsMHgyMCwweDNjLDB4YzQsMHgxYiwweGI4LDB4MDIsMHgwOCwweDQwLDB4YzMsMHgwMCB9IH0sCi17ICAxNiwgMHhjMGUwLCAwLCB7MHgyYywweGM0LDB4MGQsMHgzMCwweDAzLDB4MGUsMHg0MCwweGMzLDB4MTAsMHgzMCwweGMwLDB4NGUsMHgxMCwweDA3LDB4MWEsMHgxMiB9IH0sCi17ICAxNiwgMHhjMGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGJjLDB4MDAsMHg3ZCwweDA1LDB4M2YsMHhjNSB9IH0sCi17ICAxNiwgMHhjMTAwLCAwLCB7MHgwZiwweGIxLDB4MGIsMHhmNCwweDAwLDB4ZWYsMHgwMCwweDFmLDB4NDUsMHgwZiwweGYwLDB4NDMsMHhmYywweDAxLDB4ZmYsMHg0MCB9IH0sCi17ICAxNiwgMHhjMTEwLCAwLCB7MHgzZCwweGM0LDB4MWYsMHhmMCwweDA2LDB4ZmMsMHgxMCwweGZmLDB4MDAsMHgzYiwweGMxLDB4MmQsMHhmMSwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhjMTIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDQsMHhjYiwweDA0LDB4M2UsMHhhMCB9IH0sCi17ICAxNiwgMHhjMTMwLCAwLCB7MHg0NCwweGI2LDB4MDMsMHgyOCwweDA0LDB4Y2IsMHg4MCwweDMyLDB4ODAsMHgwZiwweGIzLDB4OTMsMHg2MCwweDA4LDB4ZmIsMHgyMCB9IH0sCi17ICAxNiwgMHhjMTQwLCAwLCB7MHgzZSwweGQyLDB4MWYsMHhiMywweDAzLDB4MmQsMHg4MCwweGZiLDB4NjEsMHg3ZSwweDQwLDB4OGMsMHg5OCwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhjMTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDg0LDB4MGMsMHg4NiwweDA1LDB4MmQsMHhjMCB9IH0sCi17ICAxNiwgMHhjMTYwLCAwLCB7MHgwOCwweGY0LDB4ODIsMHg4YywweDkwLDB4ODUsMHgwMCwweGExLDB4YzAsMHgwYiwweGYwLDB4MDIsMHg1YywweDAwLDB4MzcsMHgwMCB9IH0sCi17ICAxNiwgMHhjMTcwLCAwLCB7MHgyZCwweGQwLDB4MGIsMHg3MSwweDAyLDB4MWMsMHhjOCwweGI3LDB4NDgsMHgyZCwweDQwLDB4MGEsMHg3MCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhjMTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHg4NywweDgwLDB4MmQsMHhhMSB9IH0sCi17ICAxNiwgMHhjMTkwLCAwLCB7MHg2MCwweDc4LDB4NGEsMHgxNiwweGQwLDB4YTcsMHg4MCwweDI5LDB4ZTAsMHgwYiwweDc4LDB4NTIsMHg5NiwweDAxLDB4YjcsMHg5MCB9IH0sCi17ICAxNiwgMHhjMWEwLCAwLCB7MHgyZCwweGU4LDB4MGIsMHg3YSwweDIyLDB4NWUsMHg0MCwweGI3LDB4YTAsMHgyZiwweGUxLDB4NDgsMHg1MCwweDIyLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhjMWIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MTAsMHg4MywweDg0LDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhjMWMwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHhhNCwweDEwLDB4ODMsMHhjYiwweDI4LDB4ZTAsMHgwYiwweDMwLDB4MmEsMHg0ZiwweDQwLDB4OTMsMHgwMCB9IH0sCi17ICAxNiwgMHhjMWQwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4NGMsMHgxMCwweGIzLDB4MDIsMHgyYywweGMwLDB4YWEsMHgzMCwweDAyLDB4MTIsMHgwNCB9IH0sCi17ICAxNiwgMHhjMWUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4MDAsMHhjZSwweGEwLDB4M2YsMHg4MCB9IH0sCi17ICAxNiwgMHhjMWYwLCAwLCB7MHg0YywweGEwLDB4MmIsMHgzYSwweDAwLDB4Y2UsMHg0MCwweDNiLDB4YjgsMHgwZiwweGEwLDB4MDMsMHhiOSwweDAwLDB4YmEsMHgwMCB9IH0sCi17ICAxNiwgMHhjMjAwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4NjgsMHgwMCwweGZhLDB4MDAsMHg3ZSwweDgwLDB4MWMsMHhhMCwweDBiLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhjMjEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MDIsMHhmOCwweDAwLDB4M2UsMHgwNCB9IH0sCi17ICAxNiwgMHhjMjIwLCAwLCB7MHg4ZiwweDAwLDB4MDMsMHhlMCwweDRhLDB4ZjgsMHgxMCwweDI2LDB4MTgsMHgwZiwweDgwLDB4MDMsMHhhMCwweDgwLDB4ZjgsMHgwMiB9IH0sCi17ICAxNiwgMHhjMjMwLCAwLCB7MHgzZSwweDAwLDB4OGYsMHgwMCwweDBiLDB4YTAsMHgwMCwweGY4LDB4MDIsMHgzZSwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhjMjQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MjAsMHhjOSwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhjMjUwLCAwLCB7MHg0ZCwweDk5LDB4MDMsMHgyNCwweDAwLDB4YzksMHgwMiwweDNlLDB4NjgsMHgwZiwweDkwLDB4MDIsMHgyNCwweDAwLDB4ZTksMHgwMCB9IH0sCi17ICAxNiwgMHhjMjYwLCAwLCB7MHgzMCwweDQwLDB4OGMsMHg5MCwweDAzLDB4MDQsMHg0MCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhjMjcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MjAsMHg4OSwweDA2LDB4MjIsMHg1MCB9IH0sCi17ICAxNiwgMHhjMjgwLCAwLCB7MHg4YiwweDljLDB4YzIsMHgyNCwweDAwLDB4ZDksMHgwMSwweDJlLDB4NDAsMHgwYiwweDkwLDB4NDIsMHgyNCwweDA4LDB4YjksMHgwMSB9IH0sCi17ICAxNiwgMHhjMjkwLCAwLCB7MHgyMiwweDQ2LDB4MGQsMHg5MCwweDBhLDB4MjYsMHgwMiwweDg5LDB4MDAsMHgyYywweDQwLDB4MGEsMHgxMCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhjMmEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDA2LDB4MDAsMHg5MSwweDQwLDB4NDIsMHg3MCB9IH0sCi17ICAxNiwgMHhjMmIwLCAwLCB7MHgwYiwweDkwLDB4MTIsMHgyYywweDAyLDB4OGIsMHgwMCwweDJlLDB4NDAsMHgwYiwweDEwLDB4MjIsMHhlNCwweDEwLDB4YjEsMHgwMCB9IH0sCi17ICAxNiwgMHhjMmMwLCAwLCB7MHhhMiwweDQwLDB4NDgsMHg5MCwweDEyLDB4MjQsMHgwOCwweDk5LDB4MDIsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhjMmQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4OTIsMHg5MSwweDIwLDB4ZTAsMHg0OCB9IH0sCi17ICAxNiwgMHhjMmUwLCAwLCB7MHgwYiwweDEyLDB4MDIsMHgwNCwweDAyLDB4OTEsMHgxMCwweDJjLDB4YzAsMHgwYiwweDEwLDB4MDYsMHg4NCwweGMwLDB4YjEsMHgxMCB9IH0sCi17ICAxNiwgMHhjMmYwLCAwLCB7MHgyMCwweDQ4LDB4ODksMHgxMSwweDAyLDB4MDUsMHg4MCwweDkxLDB4NDAsMHgyZSwweDQ0LDB4MmEsMHg5NCwweDAyLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhjMzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUwLDB4MzAsMHgxNCB9IH0sCi17ICAxNiwgMHhjMzEwLCAwLCB7MHgwZiwweDg1LDB4MGIsMHgyMSwweGUwLDB4ODAsMHg0MCwweDNlLDB4MDAsMHgwZiwweDg3LDB4OGIsMHhlMSwweDBjLDB4ZjgsMHg2YyB9IH0sCi17ICAxNiwgMHhjMzIwLCAwLCB7MHgzMiwweDAwLDB4ODQsMHgwNiwweDgzLDB4MjAsMHgwNCwweGQ4LDB4MjgsMHgzZSwweDEwLDB4MGMsMHgwMCwweDAzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhjMzMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGY0LDB4NDAsMHhhZCwweDEwLDB4M2YsMHg0NSB9IH0sCi17ICAxNiwgMHhjMzQwLCAwLCB7MHgwZiwweDkxLDB4MDMsMHhmYywweDE4LDB4N2QsMHgyMCwweDFmLDB4NDEsMHgwZiwweDkwLDB4MDMsMHg3NCwweGMwLDB4ZjksMHgyMSB9IH0sCi17ICAxNiwgMHhjMzUwLCAwLCB7MHgzZSwweDQ0LDB4MGYsMHg5MiwweDAxLDB4ZTQsMHg0MCwweGU5LDB4MDAsMHgzZCwweDQ4LDB4NGYsMHhkMCwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhjMzYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY3LDB4ODAsMHhmZCwweGUwLDB4MzMsMHg3MCB9IH0sCi17ICAxNiwgMHhjMzcwLCAwLCB7MHgwYywweGRhLDB4MDMsMHgyNiwweDIwLDB4YzksMHg0MCwweDMxLDB4NDAsMHgwZSwweDlhLDB4MDMsMHgyNCwweDAwLDB4ZjksMHg4MCB9IH0sCi17ICAxNiwgMHhjMzgwLCAwLCB7MHgzYiwweDYwLDB4MGYsMHg5YywweDgzLDB4MzYsMHhhMCwweGY5LDB4YTEsMHhiMCwweDQwLDB4MGYsMHg5MSwweDAzLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHhjMzkwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUyLDB4OTAsMHhiOCwweGEwLDB4MjIsMHgyOCB9IH0sCi17ICAxNiwgMHhjM2EwLCAwLCB7MHgyOCwweDg4LDB4MGEsMHgyMiwweDAyLDB4ODgsMHhhMCwweDIyLDB4MDAsMHgwOCwweDg4LDB4MDIsMHhjMiwweDgwLDB4YjgsMHg4OCB9IH0sCi17ICAxNiwgMHhjM2IwLCAwLCB7MHgyMiwweDA0LDB4MGIsMHg4ZSwweDAzLDB4MjIsMHg4MCwweGI4LDB4ZDAsMHgyYSwweDIwLDB4MGIsMHg4OCwweDAyLDB4Y2UsMHgwNCB9IH0sCi17ICAxNiwgMHhjM2MwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4ODAsMHhiMSwweDYxLDB4MDAsMHg1OCB9IH0sCi17ICAxNiwgMHhjM2QwLCAwLCB7MHg0OCwweDE2LDB4OGEsMHgwNCwweGEwLDB4ODksMHgwMSwweDIyLDB4NDAsMHgxYSwweDE0LDB4ODgsMHgwNCwweDIwLDB4YjEsMHg0MCB9IH0sCi17ICAxNiwgMHhjM2UwLCAwLCB7MHgyOCwweDQwLDB4MGIsMHgxMCwweDBhLDB4MDQsMHgyMCwweGIxLDB4MmMsMHgyMCwweDRhLDB4MGIsMHgxMiwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhjM2YwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE1LDB4OTAsMHhiYiwweDQwLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhjNDAwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgyNCwweDQwLDB4ODksMHg0MiwweDYyLDB4NTgsMHgwOCwweDEwLDB4MDIsMHhlNSwweDAwLDB4YjksMHgwMyB9IH0sCi17ICAxNiwgMHhjNDEwLCAwLCB7MHgyMiwweGMwLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgxNCwweDMxLDB4MDAsMHgyYSwweDQ0LDB4MGIsMHg5MCwweDAyLDB4YzYsMHgwNCB9IH0sCi17ICAxNiwgMHhjNDIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMCwweGE1LDB4MDAsMHhmOSwweDAxLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhjNDMwLCAwLCB7MHg4YywweDkwLDB4MDMsMHgyNywweDAwLDB4YzEsMHg5NCwweDMwLDB4NDAsMHgwZSwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhjNDQwLCAwLCB7MHgzYSwweDQwLDB4MGYsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDYwLDB4MDcsMHg5MCwweDI3LDB4ZTgsMHgwNSB9IH0sCi17ICAxNiwgMHhjNDUwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMCwweGE0LDB4MTgsMHhmOSwweDAwLDB4YmUsMHg0NCB9IH0sCi17ICAxNiwgMHhjNDYwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhjNCwweDAwLDB4ZjksMHgwMCwweGJlLDB4NjEsMHg4ZiwweDkwLDB4MDMsMHhhNCwweDAwLDB4ZjEsMHgwMCB9IH0sCi17ICAxNiwgMHhjNDcwLCAwLCB7MHgxZSwweDQwLDB4MGYsMHgxMCwweDAzLDB4MjQsMHgwOCwweGY5LDB4MDAsMHg3ZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhjNDgwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGExLDB4ODEsMHhmOCwweDAwLDB4MzIsMHgwNCB9IH0sCi17ICAxNiwgMHhjNDkwLCAwLCB7MHgwYywweDAwLDB4ZDMsMHgyMSwweDAwLDB4ZDgsMHgwNCwweDNhLDB4MTQsMHg5YywweDgwLDB4MDMsMHgyMSwweDAxLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHhjNGEwLCAwLCB7MHgzNiwweDAwLDB4MGMsMHg4MCwweDEzLDB4MjAsMHgxMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4MmMsMHg4MCwweDAzLDB4Y2EsMHgwNCB9IH0sCi17ICAxNiwgMHhjNGIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNCwweDNhLDB4MDAsMHhiZSwweDg0LDB4MjMsMHg4NSB9IH0sCi17ICAxNiwgMHhjNGMwLCAwLCB7MHgwOCwweGVjLDB4ODMsMHg2OCwweDA0LDB4OGEsMHgwMCwweDJmLDB4OTAsMHg0ZCwweGEwLDB4MDIsMHgyOCwweDAxLDB4ZGEsMHgwMCB9IH0sCi17ICAxNiwgMHhjNGQwLCAwLCB7MHgyMywweGIwLDB4MGEsMHhhMCwweDAyLDB4MmEsMHgwOCwweGRhLDB4MDEsMHgyMiwweDgwLDB4MGYsMHhhMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhjNGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiYiwweGYwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhjNGYwLCAwLCB7MHgwOCwweDNjLDB4MGEsMHgwYywweDAwLDB4OTMsMHgwMSwweDI4LDB4YzgsMHg4OSwweDMwLDB4MDYsMHg0YywweDAwLDB4ODMsMHgwMiB9IH0sCi17ICAxNiwgMHhjNTAwLCAwLCB7MHgyYywweGY2LDB4MDgsMHgzMCwweDAyLDB4MDQsMHgwMCwweGEzLDB4MDAsMHgyMCwweGMwLDB4MGEsMHgzMCwweDAyLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhjNTEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFkLDB4MTEsMHhiMywweDAwLDB4YTAsMHhjMCB9IH0sCi17ICAxNiwgMHhjNTIwLCAwLCB7MHgwOCwweDUwLDB4MDIsMHg1YywweDEwLDB4ODcsMHgwMSwweDZkLDB4ODEsMHg0OSwweDMyLDB4NTIsMHgxZSwweGMzLDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHhjNTMwLCAwLCB7MHgyOCwweGUwLDB4MGEsMHgzMiwweDI2LDB4MWYsMHgwMCwweDM3LDB4MDAsMHgyMywweGUwLDB4MGIsMHg3MiwweDAyLDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHhjNTQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwOCwweDEyLDB4MDAsMHhiNywweDgyLDB4MzEsMHgyMCB9IH0sCi17ICAxNiwgMHhjNTUwLCAwLCB7MHgwOCwweDA4LDB4MzcsMHgwZiwweDA4LDB4ZDcsMHhlMCwweDM5LDB4NjAsMHgxOSwweDdhLDB4MGIsMHg1ZSwweDBjLDB4ODMsMHhiMiB9IH0sCi17ICAxNiwgMHhjNTYwLCAwLCB7MHg3ZCwweGUwLDB4MGMsMHg3YSwweDBiLDB4M2UsMHgwMiwweGFmLDB4YTAsMHhiMSwweGUwLDB4MGUsMHg3YSwweDAzLDB4Y2EsMHgwMiB9IH0sCi17ICAxNiwgMHhjNTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGEwLDB4MTAsMHhmYiwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhjNTgwLCAwLCB7MHg2ZiwweGIwLDB4NDMsMHhlYywweDExLDB4ZmIsMHgwMCwweDNlLDB4NDAsMHgwZiwweGI1LDB4MDMsMHhlYywweDIwLDB4ZmIsMHg1MCB9IH0sCi17ICAxNiwgMHhjNTkwLCAwLCB7MHgzNiwweDAwLDB4MGYsMHhiNSwweDQzLDB4ZTUsMHhhMSwweGRiLDB4NzgsMHgzZSwweGMwLDB4MGYsMHhiNCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhjNWEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGZlLDB4MDAsMHhmZiwweGEwLDB4M2YsMHhhMCB9IH0sCi17ICAxNiwgMHhjNWIwLCAwLCB7MHgwZCwweGM5LDB4MTMsMHgzZSwweDAwLDB4Y2YsMHhkMCwweDNkLDB4ZTgsMHgwMiwweGZmLDB4MTMsMHgzZSwweDAwLDB4Y2YsMHg4MiB9IH0sCi17ICAxNiwgMHhjNWMwLCAwLCB7MHgzZiwweDYwLDB4MGMsMHhmYywweDIzLDB4M2UsMHgxMCwweGVmLDB4ODAsMHgzMywweGYyLDB4MGMsMHhmYywweDgzLDB4MTAsMHgwMCB9IH0sCi17ICAxNiwgMHhjNWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4NDAsMHhiNSwweDAxLDB4MmQsMHhkMCB9IH0sCi17ICAxNiwgMHhjNWUwLCAwLCB7MHgwOCwweDU4LDB4MDIsMHgxYywweDQwLDB4NTcsMHgxMCwweDJkLDB4NWEsMHgyOCwweDMxLDB4MDIsMHhiYywweDAxLDB4OTcsMHgxMCB9IH0sCi17ICAxNiwgMHhjNWYwLCAwLCB7MHgyZCwweDAwLDB4MGEsMHg3MCwweDAyLDB4ODQsMHgwNCwweGNmLDB4MDAsMHgyOSwweGMwLDB4MGEsMHhmMCwweDAyLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhjNjAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHhiNywweDJhLDB4MmQsMHg4MiB9IH0sCi17ICAxNiwgMHhjNjEwLCAwLCB7MHgwOCwweDQyLDB4MjIsMHgzYywweDAwLDB4ODcsMHgxMSwweDBkLDB4Y2MsMHg4OCwweDMyLDB4MDIsMHgxZCwweDAwLDB4OTcsMHgwMCB9IH0sCi17ICAxNiwgMHhjNjIwLCAwLCB7MHgyYywweGM0LDB4MDgsMHgzMCwweDAyLDB4MTQsMHgwMCwweGE3LDB4MDAsMHgyMywweGMwLDB4MDksMHg3MCwweDgyLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhjNjMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgxNCwweGMwLDB4MjAsMHhiMCwweDIwLDB4MmMsMHg1MCB9IH0sCi17ICAxNiwgMHhjNjQwLCAwLCB7MHgwOCwweDEwLDB4MDIsMHgyZCwweGMwLDB4OTMsMHhlMiwweDJjLDB4MjEsMHgwOCwweDMwLDB4MDIsMHgwZSwweDA4LDB4OTMsMHgwMCB9IH0sCi17ICAxNiwgMHhjNjUwLCAwLCB7MHgyYywweDQwLDB4MGEsMHgzMCwweDAyLDB4OGMsMHgwMCwweDkzLDB4MDAsMHgyYSwweGMwLDB4MGIsMHgzMCwweDAyLDB4MTgsMHgwNCB9IH0sCi17ICAxNiwgMHhjNjYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDAsMHhmOCwweGMwLDB4M2UsMHg4MCB9IH0sCi17ICAxNiwgMHhjNjcwLCAwLCB7MHgyYywweGEwLDB4MGIsMHgzZiwweDAwLDB4YzcsMHg2MCwweDNlLDB4ZDAsMHgwYywweGYwLDB4MGIsMHgzYywweDAwLDB4Y2YsMHgwMCB9IH0sCi17ICAxNiwgMHhjNjgwLCAwLCB7MHgzZSwweDgwLDB4MGMsMHhmMCwweDBiLDB4MmMsMHgwMCwweGVmLDB4MDAsMHgzMywweGMxLDB4MGQsMHhmMCwweDBiLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhjNjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4NDAsMHhmMywweDQwLDB4M2UsMHg1MCB9IH0sCi17ICAxNiwgMHhjNmEwLCAwLCB7MHg4ZSwweGI0LDB4MDMsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlLDB4MDksMHgwZiwweGIwLDB4MTMsMHhlYywweDQyLDB4ZWIsMHgwMCB9IH0sCi17ICAxNiwgMHhjNmIwLCAwLCB7MHgzYywweDAwLDB4OGYsMHhiMCwweDEzLDB4YzQsMHgxMSwweGUzLDB4MDAsMHgzZSwweGMwLDB4MGUsMHhiMCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhjNmMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhmYywweDgwLDB4MzEsMHgyMiB9IH0sCi17ICAxNiwgMHhjNmQwLCAwLCB7MHgwYywweGE4LDB4MDMsMHgzYywweDAwLDB4Y2YsMHgwMCwweDMzLDB4YTAsMHgwZSwweGYwLDB4MDMsMHhkYywweDAwLDB4Y2YsMHgwMCB9IH0sCi17ICAxNiwgMHhjNmUwLCAwLCB7MHgxZiwweGYwLDB4MGMsMHhmMCwweDAzLDB4ZjQsMHgwMCwweGNmLDB4MDIsMHgzMywweGMwLDB4MGMsMHhmMCwweDAyLDB4MDAsMHg1NCB9IH0sCi17ICAxNiwgMHhjNmYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZmLDB4MDAsMHhiYiwweGMwLDB4MjIsMHg3MCB9IH0sCi17ICAxNiwgMHhjNzAwLCAwLCB7MHgwYSwweGI5LDB4NDIsMHgyYywweDEwLDB4OGIsMHgwMCwweDc2LDB4MTEsMHg4MywweGIwLDB4MDIsMHhlYywweDEwLDB4YWIsMHgwMCB9IH0sCi17ICAxNiwgMHhjNzEwLCAwLCB7MHgyZSwweGIwLDB4MGEsMHhiMCwweDAzLDB4ZWMsMHgwNCwweDhiLDB4MDAsMHhhMiwweGMwLDB4MjgsMHhiMCwweDAyLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhjNzIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDY1LDB4NDAsMHhiOCwweDIwLDB4MjIsMHg0NCB9IH0sCi17ICAxNiwgMHhjNzMwLCAwLCB7MHg1OCwweDM0LDB4MGEsMHgyYywweDAwLDB4OGIsMHgwMCwweDIyLDB4ODQsMHg0YiwweGIwLDB4MDIsMHhlYywweDAwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhjNzQwLCAwLCB7MHg2ZSwweGMwLDB4MDgsMHhiMCwweDQyLDB4ZTYsMHgwNCwweDhiLDB4MDAsMHgwMiwweGMwLDB4MDgsMHgzMCwweDAyLDB4YTAsMHgwMSB9IH0sCi17ICAxNiwgMHhjNzUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHgwMCwweDAwLDB4MDAsMHhiMSwweDAwLDB4MjAsMHhjMCB9IH0sCi17ICAxNiwgMHhjNzYwLCAwLCB7MHgwYSwweDMwLDB4MGEsMHgwYywweDAwLDB4OGIsMHgwMywweDI0LDB4ODAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YTMsMHgwMCB9IH0sCi17ICAxNiwgMHhjNzcwLCAwLCB7MHg2YywweDAwLDB4MGEsMHgzMCwweDAyLDB4OGQsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MTgsMHgzMCwweDAyLDB4ODIsMHgwMCB9IH0sCi17ICAxNiwgMHhjNzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDY0LDB4MDAsMHhmOCwweDAwLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhjNzkwLCAwLCB7MHg0YywweGEwLDB4MGIsMHgyYywweDAyLDB4Y2YsMHgwMCwweDIyLDB4NDAsMHgwZSwweGY1LDB4MDMsMHhmYywweDAwLDB4Y2YsMHgwMSB9IH0sCi17ICAxNiwgMHhjN2EwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHhmMCwweDEyLDB4ZGQsMHgwMiwweGNmLDB4MDIsMHgzMywweGMwLDB4NGMsMHhmMCwweDBiLDB4ODAsMHgwMyB9IH0sCi17ICAxNiwgMHhjN2IwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTQsMHgxOSwweGYwLDB4MDAsMHhmYywweDAwLDB4M2YsMHg0MCB9IH0sCi17ICAxNiwgMHhjN2MwLCAwLCB7MHgwZiwweGIxLDB4MDMsMHhkYywweDAwLDB4YmYsMHgwMSwweDNmLDB4MDAsMHgwZiwweGYyLDB4MjMsMHhmYywweDEwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhjN2QwLCAwLCB7MHgzZiwweDAwLDB4MGYsMHhmMCwweDAxLDB4ZjQsMHg4NCwweGZmLDB4MDAsMHgzZCwweGMwLDB4NGYsMHhmMCwweDEzLDB4NjgsMHgwNiB9IH0sCi17ICAxNiwgMHhjN2UwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZlLDB4NDAsMHhkZiwweDgwLDB4MzMsMHhjOCB9IH0sCi17ICAxNiwgMHhjN2YwLCAwLCB7MHgwYywweGY4LDB4MDMsMHgzYywweDBhLDB4OWYsMHhjMCwweDNmLDB4ZjAsMHgwOCwweGI4LDB4MDIsMHgzZSwweDAwLDB4ZmYsMHg4MCB9IH0sCi17ICAxNiwgMHhjODAwLCAwLCB7MHgzZiwweGQ4LDB4MGMsMHhmOSwweDYxLDB4MmUsMHg0MCwweDZmLDB4OTAsMHgzZiwweGU0LDB4OGYsMHhmMSwweDgzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhjODEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGVjLDB4MDQsMHg4YiwweDgwLDB4MjMsMHhmMCB9IH0sCi17ICAxNiwgMHhjODIwLCAwLCB7MHgwOCwweGI4LDB4MDIsMHgzZCwweDQwLDB4YWIsMHgwMCwweDBlLDB4MDgsMHg0OCwweDIyLDB4ODIsMHg2YywweDIwLDB4YmIsMHgwMCB9IH0sCi17ICAxNiwgMHhjODMwLCAwLCB7MHgyZiwweGQwLDB4NDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMxLDB4MGIsMHhiMCwweDAyLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhjODQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDIsMHg4MywweDAxLDB4YTAsMHhjNSB9IH0sCi17ICAxNiwgMHhjODUwLCAwLCB7MHgwOCwweGIwLDB4NGEsMHg0YywweGEwLDB4ODAsMHgyNCwweDI4LDB4YzgsMHgwOSwweDMyLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwOCB9IH0sCi17ICAxNiwgMHhjODYwLCAwLCB7MHgyZSwweGQxLDB4MjksMHhiMiwweDNhLDB4MGMsMHg4NCwweGEzLDB4MjEsMHgyYywweGM4LDB4NGIsMHhiMiwweDBhLDB4MzIsMHgwMSB9IH0sCi17ICAxNiwgMHhjODcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGFjLDB4MDgsMHg4YiwweDAwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhjODgwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHg0YywweDAwLDB4ODgsMHgyMSwweDI0LDB4MjEsMHgwOSwweGIwLDB4NDYsMHg2YywweDAwLDB4YmIsMHgwNiB9IH0sCi17ICAxNiwgMHhjODkwLCAwLCB7MHgyZSwweGMwLDB4MDksMHhiMCwweDAyLDB4MmMsMHgxMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4MzAsMHgwNCB9IH0sCi17ICAxNiwgMHhjOGEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhjYiwweDAwLDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHhjOGIwLCAwLCB7MHgwYywweGI5LDB4MDIsMHg2YywweDAwLDB4Y2IsMHhjOCwweDNhLDB4YzAsMHgyZCwweDkwLDB4MGIsMHgyYywweDA4LDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhjOGMwLCAwLCB7MHgzZSwweGMwLDB4MGQsMHgzMCwweDQyLDB4MmMsMHgwMCwweGViLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDEzLDB4MDAsMHgwNCB9IH0sCi17ICAxNiwgMHhjOGQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGJjLDB4MDAsMHhlZiwweDAwLDB4M2QsMHhjMCB9IH0sCi17ICAxNiwgMHhjOGUwLCAwLCB7MHgwZiwweGYwLDB4MDMsMHhiYywweDA2LDB4ZWYsMHg4MiwweDNmLDB4NDAsMHg0ZSwweGM5LDB4ODMsMHhiYywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhjOGYwLCAwLCB7MHg3ZiwweGMwLDB4MWMsMHhmMCwweDEzLDB4N2MsMHgwMCwweGZmLDB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjOTAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhmYiwweDAyLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhjOTEwLCAwLCB7MHgwZSwweGIwLDB4MDMsMHhhYywweDIwLDB4ZDgsMHg0MCwweDNlLDB4YzAsMHg4YywweDkwLDB4MGIsMHgyYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhjOTIwLCAwLCB7MHgzZSwweGM5LDB4MGQsMHhiMCwweDMzLDB4ZWMsMHgwOCwweGZiLDB4MDIsMHgzZSwweGMwLDB4MGYsMHhiMCwweDBiLDB4NTQsMHgwNCB9IH0sCi17ICAxNiwgMHhjOTMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJjLDB4MDAsMHhiMywweDAwLDB4MmYsMHhjMCB9IH0sCi17ICAxNiwgMHhjOTQwLCAwLCB7MHgwYiwweDMwLDB4MTIsMHhmYywweDAwLDB4ODgsMHhhMCwweDJlLDB4NDAsMHgyOCwweDk0LDB4MDIsMHgyYywweDEwLDB4YmIsMHgwNCB9IH0sCi17ICAxNiwgMHhjOTUwLCAwLCB7MHgyZCwweGMwLDB4MjgsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHg3MiwweDA2LDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhjOTYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDZjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhlMCB9IH0sCi17ICAxNiwgMHhjOTcwLCAwLCB7MHgwYSwweDEwLDB4MDIsMHhjZCwweDAwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwOCwweGIwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhjOTgwLCAwLCB7MHgyOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4M2EsMHgwMCB9IH0sCi17ICAxNiwgMHhjOTkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDFlLDB4NDAsMHhiNywweDgwLDB4MmQsMHhlMiB9IH0sCi17ICAxNiwgMHhjOWEwLCAwLCB7MHgwYiwweDU4LDB4MDIsMHhkZSwweDAyLDB4OTcsMHg4MSwweDJmLDB4YTAsMHgwOCwweDY4LDB4MDIsMHg1ZSwweDAwLDB4YjcsMHg4MSB9IH0sCi17ICAxNiwgMHhjOWIwLCAwLCB7MHgyZiwweGUwLDB4MDgsMHg3OSwweDAyLDB4ZGUsMHgwMCwweGI3LDB4ODEsMHgyZCwweGUwLDB4MGIsMHg3OCwweDAyLDB4M2MsMHgwMCB9IH0sCi17ICAxNiwgMHhjOWMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhmMywweDAwLDB4M2MsMHhjMCB9IH0sCi17ICAxNiwgMHhjOWQwLCAwLCB7MHgwZSwweDMyLDB4MDMsMHhjYywweDgwLDB4ZDMsMHgwMCwweDNjLDB4YzQsMHgwYywweDM5LDB4MDMsMHg0YywweDA4LDB4ZjMsMHgxYSB9IH0sCi17ICAxNiwgMHhjOWUwLCAwLCB7MHgzYywweGM2LDB4MGQsMHgzMCwweDAzLDB4Y2UsMHgyMCwweGYzLDB4MDgsMHgzYywweGMwLDB4MGYsMHgzMCwweDAzLDB4NTIsMHgwMiB9IH0sCi17ICAxNiwgMHhjOWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxZCwweGFjLDB4MDAsMHhmYiwweDAwLDB4MmUsMHhjMCB9IH0sCi17ICAxNiwgMHhjYTAwLCAwLCB7MHgwYiwweGIwLDB4MDMsMHhjYywweDIwLDB4ZWIsMHgwMCwweDNjLDB4ODAsMHgwZiwweGIwLDB4NDEsMHhhYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhjYTEwLCAwLCB7MHgzYywweGMyLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHg0MCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHgzMCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhjYTIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVlLDB4MDIsMHhjMywweDgwLDB4MzAsMHhjZSB9IH0sCi17ICAxNiwgMHhjYTMwLCAwLCB7MHgwZCwweDk4LDB4MDMsMHhhYywweGEwLDB4YzMsMHg4MCwweGIyLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhjYTQwLCAwLCB7MHgzZSwweGQyLDB4NGYsMHhiMCwweDA5LDB4MmUsMHgwOCwweDRiLDB4MDEsMHgzZSwweGMwLDB4MjQsMHhiMCwweDAzLDB4ZWEsMHgwMCB9IH0sCi17ICAxNiwgMHhjYTUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDljLDB4MDAsMHg4NywweDAxLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHhjYTYwLCAwLCB7MHg0OCwweDUwLDB4MTIsMHg0YywweDAwLDB4ODcsMHgwMCwweDM1LDB4YzAsMHg0YiwweDYwLDB4MDIsMHhkYywweDA0LDB4YjcsMHgwMSB9IH0sCi17ICAxNiwgMHhjYTcwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4MWMsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMxLDB4MGMsMHg3MiwweDAyLDB4ZjIsMHgwNCB9IH0sCi17ICAxNiwgMHhjYTgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHg4NywweDgwLDB4MjMsMHhlMCB9IH0sCi17ICAxNiwgMHhjYTkwLCAwLCB7MHgwOCwweGY4LDB4MDIsMHhkZSwweDgwLDB4OGYsMHg4MSwweDIxLDB4ZTAsMHg0YiwweDc4LDB4MTIsMHhkZSwweDA0LDB4MzcsMHg4MCB9IH0sCi17ICAxNiwgMHhjYWEwLCAwLCB7MHgyZCwweGU4LDB4MGIsMHhmOCwweDAyLDB4M2UsMHgxOCwweDg3LDB4ODAsMHgyZiwweGUwLDB4MDksMHg3OSwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhjYWIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDAwLDB4YTAsMHhjMCB9IH0sCi17ICAxNiwgMHhjYWMwLCAwLCB7MHgyOCwweDMwLDB4NDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDI0LDB4YzAsMHgwYiwweDM4LDB4MDYsMHhjYywweDA0LDB4YjMsMHgwMCB9IH0sCi17ICAxNiwgMHhjYWQwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMiwweDgzLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4ZDIsMHgwNCB9IH0sCi17ICAxNiwgMHhjYWUwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhjYSwweDAwLDB4MzEsMHg4MCB9IH0sCi17ICAxNiwgMHhjYWYwLCAwLCB7MHgwOCwweGUwLDB4MDIsMHg5OCwweDAyLDB4Y2UsMHgwMCwweDMzLDB4ODQsMHgwYiwweGVhLDB4MDMsMHhlOCwweDAwLDB4YmEsMHgwMCB9IH0sCi17ICAxNiwgMHhjYjAwLCAwLCB7MHgzZiwweDgxLDB4MGYsMHhhMCwweDAzLDB4MjgsMHgwMCwweGNhLDB4MDAsMHgzZSwweDgwLDB4MGQsMHhlMCwweDAzLDB4ZmEsMHgwNCB9IH0sCi17ICAxNiwgMHhjYjEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhjYjIwLCAwLCB7MHgwZSwweDg0LDB4MjMsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNhLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjYjMwLCAwLCB7MHgzZSwweDEwLDB4MGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhjYjQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDEsMHhmOSwweDAwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhjYjUwLCAwLCB7MHgwYywweDlhLDB4MTMsMHhlNCwweDAwLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDk4LDB4MjMsMHhlNCwweDgwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhjYjYwLCAwLCB7MHgzZSwweDQwLDB4MmMsMHg5OCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHhjYjcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDQsMHhiOSwweDAwLDB4MmUsMHg0MCB9IH0sCi17ICAxNiwgMHhjYjgwLCAwLCB7MHg2OCwweDljLDB4MjIsMHhlNCwweDAyLDB4ODksMHgwMSwweDdjLDB4NTAsMHg4ZCwweDk4LDB4MjIsMHhlNCwweDgwLDB4YjksMHgyMCB9IH0sCi17ICAxNiwgMHhjYjkwLCAwLCB7MHgyZSwweDUwLDB4NDgsMHgxMCwweDBiLDB4MjUsMHgwMCwweGI5LDB4NDQsMHgyYywweDQwLDB4MjgsMHg5MCwweDAwLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhjYmEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg1MCB9IH0sCi17ICAxNiwgMHhjYmIwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHhlNCwweDA0LDB4ODksMHgwMCwweDJlLDB4NTAsMHgwYSwweDkyLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhjYmMwLCAwLCB7MHgyYywweDQwLDB4MDgsMHg5MSwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHhjYmQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA1LDB4MDAsMHhiMSwweDAxLDB4MmMsMHg0MCB9IH0sCi17ICAxNiwgMHhjYmUwLCAwLCB7MHg0OCwweDMwLDB4MDIsMHhlNCwweDAwLDB4ODEsMHgwMCwweDJhLDB4NDAsMHg0YiwweDEwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHgwMCB9IH0sCi17ICAxNiwgMHhjYmYwLCAwLCB7MHgwYywweGMwLDB4MDgsMHg5MCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyZSwweDQwLDB4NDgsMHgxMiwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhjYzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhiOCwweDAxLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhjYzEwLCAwLCB7MHgxYywweDgwLDB4MDcsMHhlMSwweDUwLDB4YzgsMHg1MCwweDJlLDB4MTQsMHgxZSwweDg1LDB4MDMsMHhlMSwweDQxLDB4ZjgsMHg1MCB9IH0sCi17ICAxNiwgMHhjYzIwLCAwLCB7MHgzZSwweDE0LDB4MGMsMHg4NSwweDEzLDB4MjEsMHg0OCwweGY4LDB4NTAsMHgzZSwweDE0LDB4MGMsMHg4NSwweDQzLDB4ZWUsMHgwMyB9IH0sCi17ICAxNiwgMHhjYzMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxOSwweGM0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg1MSB9IH0sCi17ICAxNiwgMHhjYzQwLCAwLCB7MHgwZiwweDUwLDB4MDMsMHhlNSwweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgxZCwweGQwLDB4MDMsMHhmNCwweDEwLDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhjYzUwLCAwLCB7MHgzZSwweDUwLDB4MGYsMHg1MCwweDAwLDB4OTQsMHgwMCwweGY5LDB4MDAsMHgzZCwweDQwLDB4MGYsMHg5MSwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhjYzYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweGU0LDB4NTAsMHhjZCwweDAwLDB4MzEsMHg2MCB9IH0sCi17ICAxNiwgMHhjYzcwLCAwLCB7MHgwNCwweGQwLDB4MDMsMHgzNiwweDgwLDB4YzEsMHg0MiwweDJlLDB4NTAsMHgxZiwweDk0LDB4MDMsMHhlNSwweDAwLDB4ZTksMHgwMiB9IH0sCi17ICAxNiwgMHhjYzgwLCAwLCB7MHgyZSwweDcyLDB4MGEsMHg5MCwweDIyLDB4MDUsMHgwOCwweGU5LDB4NDAsMHgzZSwweDUwLDB4NDAsMHg5YywweDAzLDB4MjYsMHgwMCB9IH0sCi17ICAxNiwgMHhjYzkwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGMyLDB4ODIsMHg4OCwweDAwLDB4MjIsMHgxNSB9IH0sCi17ICAxNiwgMHhjY2EwLCAwLCB7MHgwOCwweDgwLDB4MDIsMHgyMywweDU4LDB4ODgsMHhhMCwweDJlLDB4MjgsMHgwYiwweGFhLDB4NDIsMHhlMiwweDgyLDB4ODgsMHg4MCB9IH0sCi17ICAxNiwgMHhjY2IwLCAwLCB7MHgyZSwweDM4LDB4MjgsMHg4OCwweDAyLDB4MjIsMHg4MCwweGI4LDB4YTAsMHgzYSwweDI4LDB4MDgsMHhjZCwweDAyLDB4MGUsMHgwNCB9IH0sCi17ICAxNiwgMHhjY2MwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHg4MSwweDAwLDB4YTYsMHg0MCB9IH0sCi17ICAxNiwgMHhjY2QwLCAwLCB7MHgyOCwweDEwLDB4MGEsMHgyNCwweDI2LDB4OTUsMHgwMCwweDBkLDB4NDAsMHgwYiwweDUwLDB4MDIsMHg3NCwweDAwLDB4ODUsMHgwOCB9IH0sCi17ICAxNiwgMHhjY2UwLCAwLCB7MHgyZiwweDQwLDB4NzksMHhkMiwweGFhLDB4MTQsMHgwMCwweGE1LDB4MDEsMHgyZiwweDQwLDB4MzgsMHg1MCwweDAyLDB4MTIsMHgwMSB9IH0sCi17ICAxNiwgMHhjY2YwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE0LDB4MDQsMHg4OSwweDAwLDB4MjYsMHg0MCB9IH0sCi17ICAxNiwgMHhjZDAwLCAwLCB7MHgwOCwweDkxLDB4MDIsMHgyNCwweDEwLDB4OWQsMHgwOCwweDJmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHhmNCwweDAwLDB4OGQsMHgwMiB9IH0sCi17ICAxNiwgMHhjZDEwLCAwLCB7MHgyZiwweDQwLDB4MDksMHhkMCwweDAwLDB4MzQsMHgwMCwweGJkLDB4MDAsMHgwYiwweDQwLDB4MTgsMHg3MCwweDAyLDB4MDYsMHgwNCB9IH0sCi17ICAxNiwgMHhjZDIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGM0LDB4MDAsMHhjOSwweDA1LDB4MzYsMHg0MSB9IH0sCi17ICAxNiwgMHhjZDMwLCAwLCB7MHg0YywweDkwLDB4NjMsMHgyNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAsMHgwYiwweDkwLDB4MDMsMHg0NCwweDA4LDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHhjZDQwLCAwLCB7MHgzZSwweDQwLDB4MTUsMHgxMCwweDAzLDB4MjQsMHgwMCwweGU5LDB4MDAsMHgzYywweDQwLDB4MGMsMHg5MCwweDAzLDB4MjgsMHgwNCB9IH0sCi17ICAxNiwgMHhjZDUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweGE0LDB4MDQsMHhmOSwweDAwLDB4M2EsMHg0MCB9IH0sCi17ICAxNiwgMHhjZDYwLCAwLCB7MHg0ZiwweDk4LDB4MDMsMHhlNCwweDAwLDB4ZTksMHg5OSwweDNlLDB4NDAsMHg0ZiwweDkwLDB4MDMsMHhlNCwweDIwLDB4ZjksMHgwYSB9IH0sCi17ICAxNiwgMHhjZDcwLCAwLCB7MHgzZSwweDQwLDB4MGUsMHg5MCwweDQzLDB4NjQsMHgyNCwweGY5LDB4MDgsMHgzYSwweDQyLDB4MGYsMHg5MCwweDhiLDB4ZGEsMHgwMCB9IH0sCi17ICAxNiwgMHhjZDgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhjOCwweDAwLDB4MTIsMHgwMCB9IH0sCi17ICAxNiwgMHhjZDkwLCAwLCB7MHgwYywweDgwLDB4NDMsMHhlMCwweDAwLDB4YzgsMHg0MCwweDMyLDB4MDAsMHgwZiwweDg0LDB4NTMsMHhlMCwweDEwLDB4ZjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjZGEwLCAwLCB7MHgzZSwweDAwLDB4MGQsMHg4MCwweDIzLDB4MjAsMHgwMCwweGQ4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhjZGIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDM4LDB4MDIsMHg4MiwweDAwLDB4YTEsMHg4OCB9IH0sCi17ICAxNiwgMHhjZGMwLCAwLCB7MHgwOCwweDYwLDB4MjIsMHhjOCwweDAwLDB4OGEsMHg0MCwweDM2LDB4YTEsMHgwYiwweGEwLDB4MDIsMHhlOSwweDEwLDB4YmEsMHg0NCB9IH0sCi17ICAxNiwgMHhjZGQwLCAwLCB7MHgyYywweDgwLDB4MGMsMHhhNCwweDEyLDB4MjksMHgwMiwweDhhLDB4NDQsMHgyZSwweDk4LDB4MGIsMHhhNCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhjZGUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MTAsMHg4MywweDAwLDB4MjAsMHhlMCB9IH0sCi17ICAxNiwgMHhjZGYwLCAwLCB7MHgxOCwweDMwLDB4OTIsMHhjNCwweDA4LDB4OTMsMHg0MCwweDIwLDB4ZTAsMHgwYiwweDMwLDB4MDIsMHhjZCwweDAwLDB4YjMsMHg0MCB9IH0sCi17ICAxNiwgMHhjZTAwLCAwLCB7MHgyYywweGMwLDB4MGIsMHgzYSwweDQyLDB4Y2QsMHgwMCwweDgzLDB4NDAsMHgyYywweGQwLDB4MGIsMHgzOCwweDAyLDB4NGEsMHgwMCB9IH0sCi17ICAxNiwgMHhjZTEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHg0MSwweDFjLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHhjZTIwLCAwLCB7MHgyOCwweDcwLDB4MDIsMHhkMSwweDAwLDB4OWQsMHg4MCwweDI1LDB4YzIsMHg0YiwweDYwLDB4MDIsMHhkYywweDA4LDB4YjcsMHgwMiB9IH0sCi17ICAxNiwgMHhjZTMwLCAwLCB7MHgyYywweGMwLDB4MGEsMHg3NCwweDAyLDB4ZmUsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHgzNCwweDAyLDB4NjgsMHgwMCB9IH0sCi17ICAxNiwgMHhjZTQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhjNywweDg0LDB4MzEsMHhlMCB9IH0sCi17ICAxNiwgMHhjZTUwLCAwLCB7MHgwYywweDY4LDB4MDMsMHhkNiwweDAwLDB4OTcsMHg4MCwweDMxLDB4YTAsMHgwZiwweDU4LDB4MTMsMHhkZSwweDA4LDB4ZjcsMHg4MiB9IH0sCi17ICAxNiwgMHhjZTYwLCAwLCB7MHgzZCwweGEwLDB4MGYsMHhmOCwweDBiLDB4ZGUsMHgwMCwweGM3LDB4ODAsMHgzZCwweGUwLDB4MGYsMHg3OCwweDhiLDB4NmEsMHgwMiB9IH0sCi17ICAxNiwgMHhjZTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFkLDB4ODAsMHhmMywweDAwLDB4M2UsMHhjMSB9IH0sCi17ICAxNiwgMHhjZTgwLCAwLCB7MHgwZiwweGEwLDB4MjMsMHhjMCwweDAyLDB4ZTksMHgwMCwweDNlLDB4ODEsMHgwZiwweDgwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhjZTkwLCAwLCB7MHgzZSwweGMwLDB4MGQsMHhiMCwweDEzLDB4MmMsMHgwMCwweGViLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ODIsMHgwMiB9IH0sCi17ICAxNiwgMHhjZWEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZmLDB4MzIsMHhjNywweDgwLDB4MzMsMHg2MCB9IH0sCi17ICAxNiwgMHhjZWIwLCAwLCB7MHgwZiwweDc4LDB4MDMsMHgzZSwweGM4LDB4NGUsMHg4MCwweDIzLDB4NjQsMHgwYywweGY4LDB4MDMsMHgzYSwweDAwLDB4Y2UsMHg4MCB9IH0sCi17ICAxNiwgMHhjZWMwLCAwLCB7MHgxMywweGVjLDB4MDYsMHhkOCwweDAzLDB4M2EsMHgwMCwweGRlLDB4ODAsMHgzMywweGE0LDB4MGMsMHhjOCwweDAzLDB4ZDAsMHgwMCB9IH0sCi17ICAxNiwgMHhjZWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweDljLDB4MDAsMHg4NywweDEwLDB4MDEsMHhjMCB9IH0sCi17ICAxNiwgMHhjZWUwLCAwLCB7MHgwYiwweDcwLDB4MDIsMHgxOCwweDUwLDB4ODQsMHgwMCwweDJiLDB4NDQsMHgwOCwweDYwLDB4MTIsMHg5OCwweDAwLDB4ODYsMHgxMyB9IH0sCi17ICAxNiwgMHhjZWYwLCAwLCB7MHgyMSwweGM0LDB4ODgsMHg1MCwweDAyLDB4MTgsMHg4MCwweDg2LDB4MDAsMHgyMSwweDgwLDB4MDgsMHg2MSwweDAyLDB4ZWEsMHgwNCB9IH0sCi17ICAxNiwgMHhjZjAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg4NywweDAwLDB4MjEsMHg0MCB9IH0sCi17ICAxNiwgMHhjZjEwLCAwLCB7MHgwYiwweGYxLDB4MDIsMHg1YywweDgwLDB4MDYsMHgwMCwweDIxLDB4MDAsMHg4OCwweGQwLDB4MDIsMHg1YywweDAwLDB4ODcsMHgwMCB9IH0sCi17ICAxNiwgMHhjZjIwLCAwLCB7MHgyMCwweDg5LDB4OGEsMHhmMSwweDAyLDB4MWMsMHgwOCwweDg3LDB4MTAsMHgyMSwweDgxLDB4ODgsMHg0OCwweDAyLDB4YzYsMHgwMCB9IH0sCi17ICAxNiwgMHhjZjMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNjLDB4MTAsMHg4MywweDA0LDB4YTAsMHhjMSB9IH0sCi17ICAxNiwgMHhjZjQwLCAwLCB7MHgwYiwweDMwLDB4MGEsMHg0OCwweDBjLDB4ODgsMHgwNiwweDYwLDB4MzgsMHgwOCwweDA0LDB4NDIsMHhlYywweDAxLDB4OGIsMHgwNCB9IH0sCi17ICAxNiwgMHhjZjUwLCAwLCB7MHgyMiwweGMxLDB4MDgsMHgzMCwweDBhLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweDgwLDB4MDAsMHgyMCwweDAyLDB4ZDgsMHgwNCB9IH0sCi17ICAxNiwgMHhjZjYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhjMywweDAwLDB4MjIsMHg4MCB9IH0sCi17ICAxNiwgMHhjZjcwLCAwLCB7MHg4ZiwweDkwLDB4MDMsMHg2NCwweDBhLDB4Y2IsMHgwMiwweGIyLDB4ZjIsMHgyMCwweDM1LDB4MTIsMHg2NCwweDBhLDB4YzksMHgwMCB9IH0sCi17ICAxNiwgMHhjZjgwLCAwLCB7MHhiMiwweDQwLDB4MGUsMHhhMCwweDAzLDB4MjQsMHgwYSwweGM5LDB4MDAsMHhhMiwweDQwLDB4MmMsMHhhMCwweDAzLDB4ZWUsMHgwNCB9IH0sCi17ICAxNiwgMHhjZjkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2MsMHg4MCB9IH0sCi17ICAxNiwgMHhjZmEwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhhNSwweDAwLDB4ZGIsMHg0MCwweDNlLDB4ZDAsMHg0ZCwweGI0LDB4MTMsMHhhNCwweDA4LDB4ZmIsMHgwMSB9IH0sCi17ICAxNiwgMHhjZmIwLCAwLCB7MHgzZSwweGMwLDB4MWMsMHhhMCwweDAzLDB4NmMsMHgwMCwweGZiLDB4MDQsMHgzZSwweDUwLDB4NGYsMHhhNCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhjZmMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhmZiwweDAwLDB4MzMsMHhjMCB9IH0sCi17ICAxNiwgMHhjZmQwLCAwLCB7MHgwYywweGU4LDB4NDMsMHgyNiwweDAwLDB4ZGYsMHg4MCwweGIzLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHg3YywweDAwLDB4Y2QsMHgwMCB9IH0sCi17ICAxNiwgMHhjZmUwLCAwLCB7MHgzMywweDA0LDB4MGMsMHhlMCwweDIzLDB4MzQsMHg0MCwweGNkLDB4MDAsMHgyMywweDQwLDB4MGMsMHhlMCwweDAzLDB4ZTAsMHgwNCB9IH0sCi17ICAxNiwgMHhjZmYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDZjLDB4MTAsMHhiYiwweDAwLDB4YTIsMHhkMiB9IH0sCi17ICAxNiwgMHhkMDAwLCAwLCB7MHgwOCwweDI4LDB4MDIsMHgwNCwweDYwLDB4OGIsMHgxOSwweDIyLDB4YzYsMHgwZSwweGIxLDB4OGEsMHgyZSwweDQwLDB4OGIsMHg5MCB9IH0sCi17ICAxNiwgMHhkMDEwLCAwLCB7MHgyMiwweGMxLDB4MDgsMHhhNCwweDgyLDB4MmMsMHgwMCwweDhiLDB4OTAsMHgyMiwweDY0LDB4NDgsMHhhNCwweDAyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhkMDIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MjIsMHgwMCB9IH0sCi17ICAxNiwgMHhkMDMwLCAwLCB7MHgwOCwweDkxLDB4MmUsMHgyNCwweDAwLDB4OWIsMHgwMCwweDIyLDB4YzAsMHg4YiwweGIwLDB4MTIsMHgyMCwweDA0LDB4ODgsMHgwMCB9IH0sCi17ICAxNiwgMHhkMDQwLCAwLCB7MHgyMiwweDQwLDB4MDgsMHgxMCwweDIyLDB4MjAsMHgwMCwweDg4LDB4MDEsMHgyYSwweGQwLDB4MDgsMHg4MCwweDQyLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhkMDUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDA0LDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhkMDYwLCAwLCB7MHgwOCwweDEwLDB4MDYsMHgwNCwweDEwLDB4ODMsMHgwMCwweDIwLDB4YzAsMHg4YiwweGIwLDB4MTIsMHgwMCwweDAwLDB4ODIsMHgwMCB9IH0sCi17ICAxNiwgMHhkMDcwLCAwLCB7MHgyMCwweGMwLDB4MjgsMHgxMCwweDQyLDB4MDksMHgwNiwweDgyLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgyMCwweDAyLDB4YzIsMHgwMSB9IH0sCi17ICAxNiwgMHhkMDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDAsMHhiYiwweDAwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhkMDkwLCAwLCB7MHgyYywweGIwLDB4MDMsMHgyNCwweDAwLDB4ZDMsMHgwMCwweDMyLDB4YzAsMHg1ZiwweGI1LDB4MDMsMHgwYywweDAyLDB4YzEsMHgwMCB9IH0sCi17ICAxNiwgMHhkMGEwLCAwLCB7MHhiMiwweDAwLDB4MGMsMHhiMCwweDBiLDB4MDUsMHgwMCwweGMxLDB4MDAsMHhiOCwweGMwLDB4MmMsMHg4MCwweDEzLDB4ZTAsMHgwMyB9IH0sCi17ICAxNiwgMHhkMGIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGRjLDB4MDAsMHhmZiwweDAwLDB4MWYsMHhjMCB9IH0sCi17ICAxNiwgMHhkMGMwLCAwLCB7MHg4NywweGYwLDB4MDEsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZSwweDcwLDB4NDMsMHhmYywweDEwLDB4N2YsMHgwMCB9IH0sCi17ICAxNiwgMHhkMGQwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzNywweGMwLDB4MGYsMHhlMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhkMGUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGYxLDB4ODQsMHhmZSwweDYxLDB4MzEsMHhkOCB9IH0sCi17ICAxNiwgMHhkMGYwLCAwLCB7MHgwYywweGIyLDB4YzMsMHhmYywweGUwLDB4Y2MsMHg4MCwweDdiLDB4YzAsMHgwZSwweGYxLDB4MDMsMHg3YywweGUwLDB4Y2MsMHg4MyB9IH0sCi17ICAxNiwgMHhkMTAwLCAwLCB7MHgzZiwweDIwLDB4MGYsMHhmMCwweGNiLDB4MzIsMHg0NCwweGRjLDB4ODQsMHgzZiwweDI1LDB4NGMsMHhmMiwweDQzLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhkMTEwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweGU0LDB4NDgsMHhiMCwweDEwLDB4MjIsMHhkYyB9IH0sCi17ICAxNiwgMHhkMTIwLCAwLCB7MHgwOCwweGI2LDB4MDIsMHhmZCwweDkyLDB4ODgsMHg4NSwweDIzLDB4ZjQsMHg0MCwweGYxLDB4MDIsMHhlZCwweDAwLDB4ODgsMHgyZCB9IH0sCi17ICAxNiwgMHhkMTMwLCAwLCB7MHgwZSwweDYwLDB4MGIsMHhiYywweDEyLDB4MmMsMHgxMCwweGE4LDB4ODIsMHgyZSwweDAwLDB4MGEsMHhmYywweDIyLDB4YTAsMHgwNCB9IH0sCi17ICAxNiwgMHhkMTQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGMwLDB4ODAsMHhiMywweDIyLDB4MjgsMHhjMCB9IH0sCi17ICAxNiwgMHhkMTUwLCAwLCB7MHgwOCwweDMwLDB4ODIsMHhjYywweDAxLDB4ODgsMHgwMCwweDJjLDB4YzAsMHg0YSwweDMyLDB4MDIsMHhjYywweDAwLDB4MDEsMHgwMSB9IH0sCi17ICAxNiwgMHhkMTYwLCAwLCB7MHgyOCwweDAwLDB4NGIsMHhiMCwweDAyLDB4YTAsMHgwMCwweDgwLDB4MDAsMHgyYywweDA5LDB4MDgsMHgzNCwweDAyLDB4NjIsMHgwMSB9IH0sCi17ICAxNiwgMHhkMTcwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGFjLDB4MDQsMHhiMiwweDEwLDB4MmEsMHhjMSB9IH0sCi17ICAxNiwgMHhkMTgwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHhlYywweDEwLDB4ODksMHg4MCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlYywweDA4LDB4ODgsMHgwMCB9IH0sCi17ICAxNiwgMHhkMTkwLCAwLCB7MHgyZSwweDQwLDB4ODMsMHhiMCwweDAyLDB4YTAsMHg0MCwweGI5LDB4ODAsMHgyYywweDIxLDB4MGEsMHhiMCwweDAyLDB4ZjAsMHgwNCB9IH0sCi17ICAxNiwgMHhkMWEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhmYSwweDAwLDB4YmEsMHhjMCB9IH0sCi17ICAxNiwgMHhkMWIwLCAwLCB7MHgyYywweGIwLDB4NDMsMHhlYywweDAwLDB4YzAsMHg4MCwweDNlLDB4YzAsMHg4ZSwweGIwLDB4MDMsMHg0YywweDBjLDB4YzgsMHgxMCB9IH0sCi17ICAxNiwgMHhkMWMwLCAwLCB7MHgzZSwweDgwLDB4OGYsMHhiMCwweDAzLDB4ODIsMHgxMCwweGQ4LDB4ODIsMHgzZSwweDI4LDB4MGMsMHhiMCwweDBiLDB4NTAsMHgwNCB9IH0sCi17ICAxNiwgMHhkMWQwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweGI2LDB4ODAsMHhmZCwweDAyLDB4MzcsMHhjMSB9IH0sCi17ICAxNiwgMHhkMWUwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhmYywweDAwLDB4ZmQsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4NTMsMHhmYywweDAyLDB4ZmYsMHgwMSB9IH0sCi17ICAxNiwgMHhkMWYwLCAwLCB7MHgyZiwweGE0LDB4OGIsMHhmMCwweDgzLDB4N2MsMHgwMCwweGFkLDB4MDIsMHgyZiwweDQwLDB4MDMsMHg3MCwweDAzLDB4YjgsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhmYiwweDA0LDB4MzIsMHhjMCB9IH0sCi17ICAxNiwgMHhkMjEwLCAwLCB7MHg0YywweGIwLDB4MjMsMHgyYywweDAwLDB4ZjgsMHg0MCwweDNlLDB4YzIsMHgwYywweGIwLDB4MDMsMHgyYywweDAwLDB4ZmIsMHg0MSB9IH0sCi17ICAxNiwgMHhkMjIwLCAwLCB7MHgzMiwweGMyLDB4MGYsMHhiMCwweDQzLDB4MmQsMHgwMCwweGM4LDB4NTAsMHgzZSwweDQwLDB4MGMsMHhiMCwweDBiLDB4MTAsMHgwNCB9IH0sCi17ICAxNiwgMHhkMjMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzgsMHgwNSwweDJmLDB4OTAsMHhiOSwweDUwLDB4MDMsMHhjMCB9IH0sCi17ICAxNiwgMHhkMjQwLCAwLCB7MHgxOCwweGYwLDB4MWEsMHgzYywweDAwLDB4YjksMHgzMiwweDJkLDB4ZTAsMHgzOCwweGYwLDB4NjAsMHgzYywweDA0LDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhkMjUwLCAwLCB7MHgzZSwweGYwLDB4MGIsMHg3YywweDgwLDB4MmMsMHgwMCwweGQ5LDB4YzAsMHgyZSwweDQwLDB4MGQsMHhmMCwweDAyLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRiLDB4MjQsMHhiMiwweDEwLDB4MDIsMHhjMSB9IH0sCi17ICAxNiwgMHhkMjcwLCAwLCB7MHgyOCwweDMwLDB4MDIsMHg2YywweDA0LDB4YjIsMHhjMSwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDAsMHgwYywweDAwLDB4YjIsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjgwLCAwLCB7MHgyOCwweDI0LDB4MDMsMHgzYywweDBhLDB4MDAsMHgwMCwweDgyLDB4YzgsMHgyYywweGEwLDB4MDgsMHgzMCwweDAyLDB4MzgsMHgwMCB9IH0sCi17ICAxNiwgMHhkMjkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMSwweDE2LDB4MDAsMHhiNCwweDgwLDB4MjEsMHhlNCB9IH0sCi17ICAxNiwgMHhkMmEwLCAwLCB7MHg0OCwweDdiLDB4MDIsMHg1ZSwweDAwLDB4YjYsMHg4MCwweDZkLDB4ZTIsMHg0OCwweDc5LDB4MjIsMHgxZSwweDQwLDB4YWMsMHg4NCB9IH0sCi17ICAxNiwgMHhkMmIwLCAwLCB7MHgyZCwweGUwLDB4MGIsMHhmYSwweDAwLDB4NTIsMHg0MCwweDk2LDB4ODAsMHgyZCwweGU4LDB4MTksMHgzOCwweDAyLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHhkMmMwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA4LDB4NDAsMHhmMywweDEwLDB4YjAsMHhjNCB9IH0sCi17ICAxNiwgMHhkMmQwLCAwLCB7MHgwOCwweDNhLDB4MDIsMHg0YywweDkwLDB4ZjMsMHgxMCwweDNjLDB4Y2MsMHgwOCwweDMxLDB4MDMsMHgwYywweDQ5LDB4YjAsMHg0MCB9IH0sCi17ICAxNiwgMHhkMmUwLCAwLCB7MHgzMCwweDA1LDB4MGYsMHgzMCwweDA3LDB4MjEsMHg0MCwweDQzLDB4MDEsMHgzZSwweGMyLDB4MWMsMHgzMCwweDQzLDB4MTIsMHgwMiB9IH0sCi17ICAxNiwgMHhkMmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwZCwweGJjLDB4MTAsMHhmYywweDEwLDB4M2YsMHhjNSB9IH0sCi17ICAxNiwgMHhkMzAwLCAwLCB7MHgwZiwweGYxLDB4MDEsMHhiYywweDA0LDB4ZmYsMHgwNCwweDNmLDB4YzQsMHgwZiwweGIxLDB4NGIsMHhmYywweDY0LDB4ZjcsMHgwMCB9IH0sCi17ICAxNiwgMHhkMzEwLCAwLCB7MHgzNywweGMwLDB4MGYsMHg3MiwweDUzLDB4YWMsMHg0NCwweGZmLDB4MDEsMHgzZiwweGM5LDB4MGYsMHhmNCwweDAzLDB4ZDAsMHgwNiB9IH0sCi17ICAxNiwgMHhkMzIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDgsMHhmYSwweDAwLDB4M2UsMHhlMCB9IH0sCi17ICAxNiwgMHhkMzMwLCAwLCB7MHgwYywweGIwLDB4MDMsMHgyYywweDAwLDB4Y2IsMHgwMiwweDNlLDB4Y2EsMHgwZiwweGIyLDB4MDcsMHgyZSwweDAwLDB4ZGIsMHgwMiB9IH0sCi17ICAxNiwgMHhkMzQwLCAwLCB7MHgzMiwweDA4LDB4MGYsMHgzMSwweDAzLDB4MmMsMHgwMCwweGNiLDB4MDQsMHgzZSwweDgwLDB4MGMsMHgzNSwweDAzLDB4MmEsMHgwMCB9IH0sCi17ICAxNiwgMHhkMzUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxMSwweDk0LDB4MDAsMHhiNSwweDAwLDB4MmQsMHhjOCB9IH0sCi17ICAxNiwgMHhkMzYwLCAwLCB7MHgwOCwweDcwLDB4MGEsMHgxYywweDIyLDB4ODcsMHgwMCwweDJkLDB4YzksMHgwYiwweGYyLDB4ODIsMHg5YywweDgwLDB4YTYsMHgwMCB9IH0sCi17ICAxNiwgMHhkMzcwLCAwLCB7MHgwOSwweDhiLDB4MGIsMHg3MCwweDBhLDB4MWMsMHgwMiwweDg1LDB4MDAsMHgyZCwweDQwLDB4MDgsMHg3MCwweDAyLDB4OTIsMHgwNCB9IH0sCi17ICAxNiwgMHhkMzgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiNywweDgwLDB4MmMsMHhlYyB9IH0sCi17ICAxNiwgMHhkMzkwLCAwLCB7MHgwOCwweDdiLDB4MDIsMHg1ZSwweDQwLDB4ODUsMHg4OSwweDJkLDB4ZWMsMHg4YiwweDdiLDB4MDIsMHg0ZSwweDg0LDB4OGYsMHg4MCB9IH0sCi17ICAxNiwgMHhkM2EwLCAwLCB7MHgyNSwweDY0LDB4MGIsMHhmYSwweDAyLDB4MTIsMHgwOCwweDk3LDB4ODAsMHg2ZiwweGUxLDB4MDgsMHg3YSwweDAyLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhkM2IwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxNCwweGNjLDB4MjAsMHhiMywweDY0LDB4MmMsMHhjMCB9IH0sCi17ICAxNiwgMHhkM2MwLCAwLCB7MHgwOCwweDMwLDB4MDYsMHgwYywweDEwLDB4ODMsMHg4YSwweDZjLDB4YzAsMHg1YiwweDMwLDB4NDIsMHhjYywweDAwLDB4YWIsMHgxMCB9IH0sCi17ICAxNiwgMHhkM2QwLCAwLCB7MHgyYywweGYyLDB4MGIsMHgzMCwweDAyLDB4MGQsMHgwMCwweDkzLDB4MDQsMHgyYywweGQ1LDB4MDgsMHgzMCwweDBhLDB4OTIsMHgwNCB9IH0sCi17ICAxNiwgMHhkM2UwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGJiLDB4MDAsMHhmZSwweGMwLDB4M2UsMHg4MCB9IH0sCi17ICAxNiwgMHhkM2YwLCAwLCB7MHgyYywweGEwLDB4MDMsMHg2OCwweDAwLDB4YzYsMHg0MCwweDNmLDB4ODAsMHgwZiwweGEwLDB4MDIsMHg2OCwweDAwLDB4Y2UsMHg0NCB9IH0sCi17ICAxNiwgMHhkNDAwLCAwLCB7MHgzNiwweDkwLDB4NGYsMHg2MCwweDAzLDB4MWIsMHg3MCwweGRlLDB4ZDgsMHgzZiwweGEwLDB4MGMsMHgyMCwweDAzLDB4M2EsMHgwNCB9IH0sCi17ICAxNiwgMHhkNDEwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweGUwLDB4NDAsMHhmOCwweDEwLDB4M2UsMHgwMCB9IH0sCi17ICAxNiwgMHhkNDIwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhMCwweDEwLDB4ZjgsMHg0MiwweDNlLDB4MTAsMHgxZiwweDgwLDB4MDMsMHhhMCwweDAwLDB4ZTgsMHgwYyB9IH0sCi17ICAxNiwgMHhkNDMwLCAwLCB7MHgzYSwweDA0LDB4MWYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGU4LDB4NDUsMHg3ZSwweDAyLDB4MmYsMHg4MCwweDAzLDB4ZDIsMHgwMCB9IH0sCi17ICAxNiwgMHhkNDQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweDY0LDB4MDAsMHhlOSwweDgwLDB4MzIsMHg0MCB9IH0sCi17ICAxNiwgMHhkNDUwLCAwLCB7MHgwZiwweDkwLDB4MGIsMHgwNCwweDA4LDB4ZDksMHg4MCwweDM2LDB4NDAsMHgwZiwweDEwLDB4MTMsMHgyNCwweDA4LDB4ZjksMHgwMCB9IH0sCi17ICAxNiwgMHhkNDYwLCAwLCB7MHg3MiwweDcwLDB4MGYsMHg5MSwweDEzLDB4MjQsMHgxMCwweGM5LDB4MTAsMHgzZSwweDY5LDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhkNDcwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNCwweDY0LDB4MDgsMHhiOSwweDgwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhkNDgwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHgyNCwweDAwLDB4ODksMHhjNCwweDIyLDB4NTIsMHgwYiwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhkNDkwLCAwLCB7MHgyMiwweGUwLDB4MGIsMHg5MCwweDEyLDB4MjQsMHgwNCwweGQ5LDB4NGEsMHgyZSwweDYwLDB4MDgsMHg5MCwweDAzLDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkNGEwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiMSwweDE4LDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhkNGIwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHgyNCwweDAwLDB4OGIsMHgyMCwweDI2LDB4NDksMHgwYiwweDkwLDB4MDIsMHg2NCwweDAwLDB4YjksMHgwMCB9IH0sCi17ICAxNiwgMHhkNGMwLCAwLCB7MHhhMiwweDQwLDB4MGIsMHg5MCwweDhhLDB4MjQsMHgwMCwweDhiLDB4MDAsMHgyYywweDQwLDB4YTgsMHg5MCwweDAyLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhkNGQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDA0LDB4ODQsMHhiMSwweDIwLDB4YTAsMHg0OCB9IH0sCi17ICAxNiwgMHhkNGUwLCAwLCB7MHgwYiwweDExLDB4MDYsMHgwNCwweDAwLDB4ODMsMHgwMCwweDAwLDB4NDAsMHg0YiwweDExLDB4MDIsMHgwNCwweDQ5LDB4YjEsMHgxMCB9IH0sCi17ICAxNiwgMHhkNGYwLCAwLCB7MHgyOCwweDQwLDB4MGIsMHgxMCwweDAyLDB4MjQsMHg0MSwweDkxLDB4MDAsMHgyYywweDUwLDB4MDgsMHgxMCwweDAyLDB4NDIsMHgwMSB9IH0sCi17ICAxNiwgMHhkNTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDY5LDB4NDAsMHhlOCwweDUwLDB4MzIsMHgxNCB9IH0sCi17ICAxNiwgMHhkNTEwLCAwLCB7MHgwZiwweDg2LDB4OTMsMHgyMSwweGUyLDB4YzgsMHgwMCwweDM2LDB4MGEsMHgwYiwweDg2LDB4OGIsMHg2MSwweGE4LDB4ZjgsMHg0MCB9IH0sCi17ICAxNiwgMHhkNTIwLCAwLCB7MHgyMiwweDgwLDB4MGYsMHg4MiwweGEzLDB4MjEsMHgwOCwweGM4LDB4MDIsMHgzZSwweDAwLDB4MGMsMHg4MCwweDQzLDB4MmUsMHgwMyB9IH0sCi17ICAxNiwgMHhkNTMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgxZCwweGY0LDB4NDgsMHhmZCwweDEyLDB4M2UsMHg0NCB9IH0sCi17ICAxNiwgMHhkNTQwLCAwLCB7MHgwZiwweDEyLDB4MDMsMHhjNCwweDAwLDB4N2QsMHgwMSwweDFlLDB4NDAsMHgwYiwweDkyLDB4MDMsMHhlNCwweDgwLDB4ZjUsMHgyMCB9IH0sCi17ICAxNiwgMHhkNTUwLCAwLCB7MHgzNiwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZDQsMHg5MCwweDdkLDB4MDAsMHgzZCwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZTYsMHgwNiB9IH0sCi17ICAxNiwgMHhkNTYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweGY2LDB4YzEsMHhkZCwweDg4LDB4MzIsMHg3MiB9IH0sCi17ICAxNiwgMHhkNTcwLCAwLCB7MHgwYywweDk4LDB4MDMsMHgyNiwweDIyLDB4ZGQsMHgwMCwweDNmLDB4NjIsMHgyYywweDk5LDB4ODMsMHg0NiwweGEwLDB4YzksMHg0MCB9IH0sCi17ICAxNiwgMHhkNTgwLCAwLCB7MHhiMiwweDQwLDB4MGYsMHhkOCwweDAzLDB4MjQsMHgwMCwweGZkLDB4MDAsMHgzMywweDUxLDB4MmMsMHhkOCwweDgzLDB4MDYsMHgwMCB9IH0sCi17ICAxNiwgMHhkNTkwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgxMCwweGUzLDB4YzIsMHg4OCwweGMwLDB4MjIsMHgzMCB9IH0sCi17ICAxNiwgMHhkNWEwLCAwLCB7MHgwOCwweDhjLDB4NDIsMHgyMiwweDExLDB4OGEsMHgwMSwweDJlLDB4MDAsMHgwOCwweDg4LDB4NTIsMHgyMywweDAwLDB4ODAsMHhhMyB9IH0sCi17ICAxNiwgMHhkNWIwLCAwLCB7MHgyYSwweDAwLDB4NGIsMHg4MCwweDQyLDB4MjIsMHhhMCwweGI4LDB4MDAsMHgyMiwweDI4LDB4MDgsMHg4NCwweDAyLDB4OGUsMHgwNCB9IH0sCi17ICAxNiwgMHhkNWMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHg4MSwweDJkLDB4MjAsMHg0OCB9IH0sCi17ICAxNiwgMHhkNWQwLCAwLCB7MHg2OCwweDE0LDB4ODAsMHgwNCwweDIwLDB4ODEsMHgwMCwweDJlLDB4NDAsMHgwYiwweDEyLDB4MTIsMHgwNCwweDI0LDB4ODEsMHgyMCB9IH0sCi17ICAxNiwgMHhkNWUwLCAwLCB7MHgyMCwweDQwLDB4MGIsMHg5NCwweDMyLDB4MDQsMHg5MCwweGI5LDB4MDAsMHgyMCwweDQwLDB4NDgsMHgxMCwweDRhLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhkNWYwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDIwLDB4MjIsMHg0MCB9IH0sCi17ICAxNiwgMHhkNjAwLCAwLCB7MHgwOCwweDkwLDB4MTIsMHgyNCwweDAwLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDA4LDB4ODksMHg0MCB9IH0sCi17ICAxNiwgMHhkNjEwLCAwLCB7MHgyMiwweDUwLDB4MGIsMHhiMCwweDAyLDB4MjQsMHgyMCwweGI5LDB4MDksMHhhMiwweDQ0LDB4MDgsMHg5MCwweDAyLDB4ODYsMHgwNCB9IH0sCi17ICAxNiwgMHhkNjIwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhkOSwweDA4LDB4YjIsMHg0MCB9IH0sCi17ICAxNiwgMHhkNjMwLCAwLCB7MHg0YywweDEwLDB4MjMsMHgwNCwweDA0LDB4ZDksMHhjMSwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MGIsMHgwNCwweDA4LDB4YzEsMHg0MCB9IH0sCi17ICAxNiwgMHhkNjQwLCAwLCB7MHgxMiwweDQwLDB4MGYsMHg5MCwweDQzLDB4MjQsMHgwNCwweGYxLDB4NDEsMHgzMCwweDc4LDB4MGMsMHg5MCwweDAzLDB4MjgsMHgwNCB9IH0sCi17ICAxNiwgMHhkNjUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweDg2LDB4NjQsMHhmOSwweDgwLDB4M2UsMHg0MCB9IH0sCi17ICAxNiwgMHhkNjYwLCAwLCB7MHgwZiwweDkwLDB4MGIsMHhlNCwweDAwLDB4ZjksMHg5OCwweDNlLDB4NDAsMHgyZiwweDEwLDB4MDMsMHhhNCwweDAyLDB4ZjksMHgxMCB9IH0sCi17ICAxNiwgMHhkNjcwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MCwweDBiLDB4ZTYsMHg0MCwweGY5LDB4OTAsMHgzZSwweDYwLDB4MGYsMHg5MCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhkNjgwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhjOCwweDQxLDB4MzIsMHgwMCB9IH0sCi17ICAxNiwgMHhkNjkwLCAwLCB7MHgwYywweDgwLDB4MDcsMHgyMCwweDEwLDB4YzgsMHgxMCwweDNlLDB4MGMsMHgwZSwweDgwLDB4MDMsMHhlMCwweDA0LDB4YzgsMHgwMCB9IH0sCi17ICAxNiwgMHhkNmEwLCAwLCB7MHhiYSwweDAwLDB4MGYsMHg4MSwweDQzLDB4MjAsMHgwMCwweGY4LDB4NzAsMHgzZSwweDAwLDB4MGYsMHgwMCwweDBiLDB4MGEsMHgwNCB9IH0sCi17ICAxNiwgMHhkNmIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDM5LDB4MDIsMHg4ZSwweDIwLDB4YTMsMHg4MCB9IH0sCi17ICAxNiwgMHhkNmMwLCAwLCB7MHgyOCwweGUwLDB4MGEsMHgzOCwweDEwLDB4YWUsMHgwNCwweDNkLDB4YTEsMHg4ZSwweGUwLDB4MDIsMHhmOCwweDAwLDB4OGUsMHgwMCB9IH0sCi17ICAxNiwgMHhkNmQwLCAwLCB7MHg3NiwweDgwLDB4MGIsMHg2MCwweDAzLDB4NzgsMHgwMCwweGJlLDB4NDAsMHgyZiwweDgyLDB4MGIsMHhhMCwweDAzLDB4Y2EsMHgwMCB9IH0sCi17ICAxNiwgMHhkNmUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRkLDB4MDAsMHg4YiwweDg4LDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhkNmYwLCAwLCB7MHgxOCwweDMwLDB4MDIsMHgwYywweDAwLDB4ODMsMHg0NCwweDJjLDB4ZDAsMHgxYiwweDMwLDB4MTIsMHhjYywweDA2LDB4ODMsMHgwMCB9IH0sCi17ICAxNiwgMHhkNzAwLCAwLCB7MHgyMCwweGMxLDB4MGIsMHgzMCwweDgyLDB4MGMsMHgwMSwweGIzLDB4MDAsMHgyYywweDQwLDB4MGIsMHgzMCwweDAyLDB4MGEsMHgwMCB9IH0sCi17ICAxNiwgMHhkNzEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwMSwweDFjLDB4MDAsMHg4NSwweDAwLDB4MjAsMHhjYyB9IH0sCi17ICAxNiwgMHhkNzIwLCAwLCB7MHgwOCwweDcwLDB4MDYsMHgxYywweDg0LDB4YTcsMHgwMSwweDI5LDB4YzAsMHgwYiwweDcyLDB4MjIsMHhkYywweDgwLDB4ODcsMHgzNCB9IH0sCi17ICAxNiwgMHhkNzMwLCAwLCB7MHg2MSwweDgwLDB4MGIsMHgxMCwweDAyLDB4NWMsMHgwMCwweGI3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZTgsMHgwMCB9IH0sCi17ICAxNiwgMHhkNzQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDBlLDB4MDAsMHg4YywweDgwLDB4MzEsMHhlMCB9IH0sCi17ICAxNiwgMHhkNzUwLCAwLCB7MHgwYywweGZlLDB4MDIsMHgzZiwweDAwLDB4YzUsMHg4MCwweDJkLDB4ZTAsMHgwZSwweDc4LDB4MDMsMHhkZiwweGEwLDB4YzcsMHhhMCB9IH0sCi17ICAxNiwgMHhkNzYwLCAwLCB7MHgyMSwweDYwLDB4MGYsMHg3OCwweDAzLDB4MWUsMHg4MCwweGY3LDB4ODAsMHgzZCwweGUwLDB4MGYsMHg3OCwweDAzLDB4MmEsMHgwMiB9IH0sCi17ICAxNiwgMHhkNzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxZCwweGFjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHhjMCB9IH0sCi17ICAxNiwgMHhkNzgwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmEsMHgwMCwweDNlLDB4YzAsMHgwNiwweGIwLDB4MDMsMHhlYywweDgwLDB4ZmIsMHgyOCB9IH0sCi17ICAxNiwgMHhkNzkwLCAwLCB7MHgzNiwweGQ4LDB4NGYsMHhhMCwweDAzLDB4ZWMsMHgxMCwweGZhLDB4MDAsMHgzZSwweDUwLDB4MGYsMHgzMCwweDAzLDB4YzIsMHgwNiB9IH0sCi17ICAxNiwgMHhkN2EwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZhLDB4MDAsMHhjYywweDgwLDB4YjMsMHhlMCB9IH0sCi17ICAxNiwgMHhkN2IwLCAwLCB7MHgwZiwweGY4LDB4MDMsMHgzZSwweDAwLDB4Y2YsMHg5MCwweDNmLDB4NjAsMHg0ZiwweGY4LDB4YzMsMHgzZSwweDAwLDB4ZWYsMHg4MCB9IH0sCi17ICAxNiwgMHhkN2MwLCAwLCB7MHgzMywweGYwLDB4MGMsMHg3YSwweDAzLDB4M2UsMHg3MCwweGM1LDB4OTAsMHgzMywweGYxLDB4MGMsMHg3OCwweDAzLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhkN2QwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGI4LDB4MDAsMHg4NywweDAwLDB4MjEsMHhjMCB9IH0sCi17ICAxNiwgMHhkN2UwLCAwLCB7MHgwYiwweDcwLDB4NGEsMHgxYywweDAwLDB4ODcsMHgxMCwweDJkLDB4YzAsMHg0YiwweDcxLDB4MGEsMHgzYywweDQ0LDB4OGYsMHgxMiB9IH0sCi17ICAxNiwgMHhkN2YwLCAwLCB7MHgyMSwweDg2LDB4MGQsMHg3MiwweDAyLDB4MWUsMHgwMCwweDg3LDB4MDAsMHgyMywweDQwLDB4MDgsMHg3MCwweDBhLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhkODAwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg4NCwweDAwLDB4MjUsMHhjMCB9IH0sCi17ICAxNiwgMHhkODEwLCAwLCB7MHgwYiwweDcxLDB4MGEsMHgwYywweDAwLDB4YTcsMHgxMiwweDJkLDB4ODQsMHgwYiwweDcwLDB4MGEsMHgxYywweDAwLDB4YjcsMHgwOCB9IH0sCi17ICAxNiwgMHhkODIwLCAwLCB7MHgyMywweDQwLDB4MDksMHhmMywweDFhLDB4NWMsMHg4NiwweDk3LDB4MDgsMHgyNSwweDQwLDB4MDgsMHg3MCwweDAyLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhkODMwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgxNCwweGNjLDB4MjAsMHg4MSwweDIwLDB4MjYsMHhjMCB9IH0sCi17ICAxNiwgMHhkODQwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHgyYywweDAwLDB4ODIsMHg0MiwweDJjLDB4ODAsMHgwYiwweDMwLDB4MjIsMHgwYywweDA4LDB4OWIsMHg4MCB9IH0sCi17ICAxNiwgMHhkODUwLCAwLCB7MHgyMCwweGUwLDB4MDksMHgyMCwweDAyLDB4NGQsMHgwOCwweDkyLDB4MDAsMHgyNCwweGU1LDB4MDgsMHgzMCwweDBhLDB4MDgsMHgwNCB9IH0sCi17ICAxNiwgMHhkODYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFlLDB4ODIsMHhjYSwweGUwLDB4YjcsMHhjMCB9IH0sCi17ICAxNiwgMHhkODcwLCAwLCB7MHgwZiwweGYwLDB4MTMsMHgzYywweDBhLDB4YzksMHhjOCwweDNlLDB4NDAsMHgwZiwweGYwLDB4MDMsMHgzYywweDA0LDB4ZmYsMHg4NCB9IH0sCi17ICAxNiwgMHhkODgwLCAwLCB7MHgzMiwweGMwLDB4MGQsMHg5MCwweDEzLDB4N2MsMHgwMCwweGQ5LDB4MDAsMHhmNiwweGMwLDB4MmMsMHgxMCwweDAzLDB4MmEsMHgwNCB9IH0sCi17ICAxNiwgMHhkODkwLCAwLCB7MHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGU0LDB4MDAsMHhmMywweDAwLDB4M2EsMHhjMSB9IH0sCi17ICAxNiwgMHhkOGEwLCAwLCB7MHg0ZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZjksMHgwOCwweDNjLDB4MDAsMHgwZiwweDMwLDB4MTMsMHhlYywweDAwLDB4ZWIsMHgwNCB9IH0sCi17ICAxNiwgMHhkOGIwLCAwLCB7MHhiZSwweDE4LDB4MGYsMHg5MCwweDIzLDB4YWMsMHg2MCwweGU5LDB4MDIsMHgzYSwweDQwLDB4NGYsMHg5MCwweDAzLDB4ZTAsMHgwMCB9IH0sCi17ICAxNiwgMHhkOGMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhjYSwweDAwLDB4MzMsMHhjMCB9IH0sCi17ICAxNiwgMHhkOGQwLCAwLCB7MHgwYywweGYwLDB4MDMsMHhmYywweDAwLDB4Y2QsMHgwMiwweDdmLDB4NDAsMHgwYywweGYwLDB4NDIsMHgzYywweDAwLDB4Y2YsMHgwOCB9IH0sCi17ICAxNiwgMHhkOGUwLCAwLCB7MHgzNywweDEwLDB4MGYsMHhkMCwweDAzLDB4ZmMsMHgxMCwweGNkLDB4MDgsMHgzZiwweDY2LDB4MmMsMHhkOSwweDAzLDB4MDAsMHg0NCB9IH0sCi17ICAxNiwgMHhkOGYwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwNCwweDYzLDB4ODAsMHg4YiwweGUwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhkOTAwLCAwLCB7MHgwOCwweGIwLDB4MjIsMHhlYywweDAwLDB4ZDgsMHg4MCwweDZlLDB4MjAsMHg2OCwweGIwLDB4MWEsMHgyYywweDAxLDB4ZmIsMHgwMCB9IH0sCi17ICAxNiwgMHhkOTEwLCAwLCB7MHgyMiwweDE4LDB4MGIsMHg4OCwweDQzLDB4NGMsMHgwMCwweDg4LDB4YTAsMHgyYywweGMwLDB4MWQsMHg5MCwweDAyLDB4MjAsMHg0MCB9IH0sCi17ICAxNiwgMHhkOTIwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDA4LDB4ODAsMHg4YiwweDIwLDB4MjIsMHhjMCB9IH0sCi17ICAxNiwgMHhkOTMwLCAwLCB7MHgwOCwweGIwLDB4MjIsMHhlYywweDAwLDB4ODgsMHg4OCwweDJlLDB4NjIsMHg0OCwweGIwLDB4MWEsMHhjYywweDAwLDB4OGIsMHgwMCB9IH0sCi17ICAxNiwgMHhkOTQwLCAwLCB7MHgyNiwweGMwLDB4NGEsMHg4OCwweDAyLDB4ZWMsMHgwMCwweDA4LDB4ODQsMHgyZSwweDQwLDB4MDksMHg5MCwweDAyLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkOTUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MywweDAwLDB4NjAsMHhjMCB9IH0sCi17ICAxNiwgMHhkOTYwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHhjYywweDAwLDB4OTAsMHgwNiwweDZjLDB4MDAsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4YTMsMHgwNCB9IH0sCi17ICAxNiwgMHhkOTcwLCAwLCB7MHgyMCwweDAwLDB4OGIsMHgwMCwweDA2LDB4NGMsMHgyMSwweDgwLDB4MDAsMHg2YywweGMwLDB4NDksMHgxMCwweDBhLDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhkOTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhjYSwweDAwLDB4YjIsMHhjMSB9IH0sCi17ICAxNiwgMHhkOTkwLCAwLCB7MHg4OCwweGI0LDB4MDMsMHhlYywweDEwLDB4YzgsMHgwMCwweDJlLDB4MDAsMHgwYywweGIwLDB4MGIsMHhiYywweDA4LDB4OGYsMHgwMCB9IH0sCi17ICAxNiwgMHhkOWEwLCAwLCB7MHgzNiwweDAwLDB4MDYsMHg4MCwweDAzLDB4ZWMsMHg4MCwweGM4LDB4MDIsMHgzZiwweGMxLDB4MGMsMHg5MCwweDAzLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHhkOWIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxZCwweGYwLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCB9IH0sCi17ICAxNiwgMHhkOWMwLCAwLCB7MHgwZiwweDcyLDB4ODMsMHhmYywweDE4LDB4ZmMsMHgwMywweDNmLDB4MDAsMHg4ZiwweDcwLDB4MDMsMHg3YywweDAwLDB4ZmYsMHgwMCB9IH0sCi17ICAxNiwgMHhkOWQwLCAwLCB7MHgzZCwweDAwLDB4MGYsMHhjMCwweDIzLDB4OGMsMHgwNiwweGZjLDB4MDAsMHgzZiwweDQwLDB4MGUsMHhkMCwweDAzLDB4ZTgsMHgwNiB9IH0sCi17ICAxNiwgMHhkOWUwLCAwLCB7MHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQxLDB4MDMsMHg3MCwweDQwLDB4ZGMsMHgxMCB9IH0sCi17ICAxNiwgMHhkOWYwLCAwLCB7MHgzNywweDA0LDB4MGQsMHhjMSwweDAzLDB4NzAsMHg0MCwweGRjLDB4MTAsMHgzNywweDA0LDB4MGQsMHhjMSwweDAxLDB4NzAsMHg0MCB9IH0sCi17ICAxNiwgMHhkYTAwLCAwLCB7MHg5YywweDEwLDB4MTcsMHgxNCwweDA1LDB4YzEsMHgwMywweDcwLDB4NDAsMHhkYywweDEwLDB4MTcsMHgwNCwweDBkLDB4YzAsMHgzMSB9IH0sCi17ICAxNiwgMHhkYTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ0LDB4MDUsMHg3MSwweDAxLDB4NWMsMHg0MCB9IH0sCi17ICAxNiwgMHhkYTIwLCAwLCB7MHg1NywweDEwLDB4MTUsMHhjNCwweDA1LDB4MjEsMHgwMSwweDVjLDB4NDAsMHg1NywweDEwLDB4MTUsMHhjNCwweDAxLDB4NzEsMHgwMSB9IH0sCi17ICAxNiwgMHhkYTMwLCAwLCB7MHg1YywweDQwLDB4MTcsMHgxMCwweDA1LDB4YzQsMHgwNSwweDcxLDB4MDUsMHg1YywweDQxLDB4NTcsMHgxMCwweDE1LDB4YzAsMHgxMSB9IH0sCi17ICAxNiwgMHhkYTQwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9IH0sCi17ICAxNiwgMHhkYTUwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhkYTYwLCAwLCB7MHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODAsMHgyMCB9IH0sCi17ICAxNiwgMHhkYTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MDAsMHg2MCwweDAwLDB4NTgsMHgwMCB9IH0sCi17ICAxNiwgMHhkYTgwLCAwLCB7MHgxNiwweDAwLDB4MDUsMHg4MCwweDAxLDB4NjAsMHgwMCwweDU4LDB4MDAsMHgxNiwweDAwLDB4MDUsMHg4MCwweDA1LDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkYTkwLCAwLCB7MHg1OCwweDAwLDB4MTYsMHgxOCwweDAxLDB4ODAsMHgwMSwweDYwLDB4MDAsMHg1OCwweDAwLDB4NTYsMHgwMCwweDA1LDB4ODAsMHgyMCB9IH0sCi17ICAxNiwgMHhkYWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ4LDB4MDUsMHgyMiwweDAxLDB4MWMsMHg4MCB9IH0sCi17ICAxNiwgMHhkYWIwLCAwLCB7MHg0NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMSwweDVjLDB4ODAsMHg1NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHg0MSB9IH0sCi17ICAxNiwgMHhkYWMwLCAwLCB7MHg1YywweDgwLDB4NTcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4NDcsMHgyMCwweDE1LDB4YzAsMHgzMSB9IH0sCi17ICAxNiwgMHhkYWQwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCB9IH0sCi17ICAxNiwgMHhkYWUwLCAwLCB7MHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkYWYwLCAwLCB7MHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgzMSB9IH0sCi17ICAxNiwgMHhkYjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ4LDB4MDQsMHgyMiwweDAxLDB4MDgsMHg4MCB9IH0sCi17ICAxNiwgMHhkYjEwLCAwLCB7MHg0MiwweDIwLDB4MTAsMHg4OCwweDA0LDB4MjIsMHgwMSwweDA4LDB4ODAsMHg0MiwweDIwLDB4MTAsMHg4MCwweDA0LDB4MjMsMHgwMSB9IH0sCi17ICAxNiwgMHhkYjIwLCAwLCB7MHgwOCwweDgwLDB4NDIsMHgyMCwweDEwLDB4ODgsMHgwNCwweDIyLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgyMCwweDEwLDB4ODAsMHgyMSB9IH0sCi17ICAxNiwgMHhkYjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDRhLDB4MDUsMHg0MiwweDgxLDB4NTAsMHhhMCB9IH0sCi17ICAxNiwgMHhkYjQwLCAwLCB7MHg0NCwweDJjLDB4MTEsMHgwYiwweDA0LDB4NDIsMHg4MSwweDEwLDB4ZTAsMHg1NCwweDI4LDB4MTEsMHgwMiwweDAwLDB4NDIsMHg4MSB9IH0sCi17ICAxNiwgMHhkYjUwLCAwLCB7MHgxMCwweGEwLDB4NDQsMHgzOCwweDExLDB4MGIsMHgwNSwweDQyLDB4ODEsMHgxMCwweDIxLDB4MTQsMHgyOCwweDE1LDB4MDAsMHgzMSB9IH0sCi17ICAxNiwgMHhkYjYwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDBjLDB4MDEsMHg1NywweDAwLDB4NTQsMHhjMCB9IH0sCi17ICAxNiwgMHhkYjcwLCAwLCB7MHgxNSwweDMwLDB4MDQsMHg0YywweDAxLDB4MTMsMHgwMCwweDU0LDB4YzAsMHgxNSwweDcwLDB4MDUsMHg0YywweDAxLDB4NTMsMHgwMCB9IH0sCi17ICAxNiwgMHhkYjgwLCAwLCB7MHg1NCwweGMwLDB4MTUsMHgzMCwweDg1LDB4NGMsMHgwMSwweDEzLDB4MDAsMHg1NCwweGMwLDB4MTUsMHgzMCwweDA1LDB4NDAsMHgyMSB9IH0sCi17ICAxNiwgMHhkYjkwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAsMHgwMCB9IH0sCi17ICAxNiwgMHhkYmEwLCAwLCB7MHgwNCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDEwLDB4NjIsMHgwNCwweDAwLDB4MDEsMHgwOCwweDA0LDB4NDEsMHgwMCB9IH0sCi17ICAxNiwgMHhkYmIwLCAwLCB7MHgxMCwweDAwLDB4NDQsMHgxOCwweDExLDB4MDAsMHgwMCwweDEwLDB4MDAsMHgxMCwweDgwLDB4MDQsMHgwMCwweDAxLDB4MDEsMHgyMCB9IH0sCi17ICAxNiwgMHhkYmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDYwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCB9IH0sCi17ICAxNiwgMHhkYmQwLCAwLCB7MHgyMCwweDgwLDB4MDgsMHg2MCwweDAyLDB4MTgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAwLDB4MDgsMHgyMCB9IH0sCi17ICAxNiwgMHhkYmUwLCAwLCB7MHg4MiwweDAwLDB4MDAsMHg4MCwweDgwLDB4MjAsMHgwMiwweDE4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MDEsMHgzMSB9IH0sCi17ICAxNiwgMHhkYmYwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQwLDB4MDUsMHg2NCwweDAxLDB4NTgsMHgwMCB9IH0sCi17ICAxNiwgMHhkYzAwLCAwLCB7MHg1NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDAsMHg1NiwweDQwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMSB9IH0sCi17ICAxNiwgMHhkYzEwLCAwLCB7MHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NzYsMHgwMCwweDE1LDB4ODAsMHgzMSB9IH0sCi17ICAxNiwgMHhkYzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCB9IH0sCi17ICAxNiwgMHhkYzMwLCAwLCB7MHgzNiwweDAwLDB4MGQsMHg4MCwweDAzLDB4NjAsMHgwMCwweDk4LDB4MDAsMHgzNiwweDAwLDB4MWQsMHg4OCwweDA1LDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHhkYzQwLCAwLCB7MHhkOCwweDAwLDB4MTYsMHgwMCwweDBkLDB4ODAsMHgwMywweDYwLDB4MDAsMHhkOCwweDgwLDB4NDYsMHgwMCwweDBkLDB4ODAsMHgzMSB9IH0sCi17ICAxNiwgMHhkYzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCB9IH0sCi17ICAxNiwgMHhkYzYwLCAwLCB7MHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjIsMHg0MSwweDA4LDB4MTgsMHhjMiwweDA0LDB4MzAsMHg4OSB9IH0sCi17ICAxNiwgMHhkYzcwLCAwLCB7MHgwYywweDIwLDB4MDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzAsMHgxMCB9IH0sCi17ICAxNiwgMHhkYzgwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9IH0sCi17ICAxNiwgMHhkYzkwLCAwLCB7MHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhkY2EwLCAwLCB7MHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMSB9IH0sCi17ICAxNiwgMHhkY2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAyLDB4MDEsMHgzMCwweDgwLDB4NGMsMHgyMCB9IH0sCi17ICAxNiwgMHhkY2MwLCAwLCB7MHgxMywweDA4LDB4MDQsMHhjMiwweDAxLDB4MzAsMHg4MCwweDRjLDB4MjAsMHgxMywweDA4LDB4MDQsMHhjMywweDAxLDB4MzAsMHg4MCB9IH0sCi17ICAxNiwgMHhkY2QwLCAwLCB7MHg0YywweDIwLDB4MTMsMHgwOCwweDA0LDB4YzIsMHgwMSwweDMwLDB4ODAsMHg0YywweDMwLDB4MTMsMHgwOCwweDA0LDB4YzAsMHgyMSB9IH0sCi17ICAxNiwgMHhkY2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQyLDB4MDUsMHg2MCwweDgxLDB4NTgsMHgyMCB9IH0sCi17ICAxNiwgMHhkY2YwLCAwLCB7MHg1NiwweDA4LDB4MTEsMHg4MiwweDA1LDB4NjAsMHg4MSwweDU4LDB4MjAsMHg1NiwweDA4LDB4MTEsMHg4MywweDAwLDB4NjAsMHg4MSB9IH0sCi17ICAxNiwgMHhkZDAwLCAwLCB7MHg1OCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODEsMHgxOCwweDMwLDB4NTYsMHgwOCwweDE1LDB4ODAsMHgzMCB9IH0sCi17ICAxNiwgMHhkZDEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCB9IH0sCi17ICAxNiwgMHhkZDIwLCAwLCB7MHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MzAsMHg4MCB9IH0sCi17ICAxNiwgMHhkZDMwLCAwLCB7MHgwOCwweDIwLDB4MDIsMHgwMCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDMsMHgwOCwweDAwLDB4ODAsMHgzMSB9IH0sCi17ICAxNiwgMHhkZDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgyMCB9IH0sCi17ICAxNiwgMHhkZDUwLCAwLCB7MHg0NiwweDQ4LDB4MTEsMHg5MiwweDA0LDB4NjAsMHg4MSwweDE5LDB4MjAsMHg0NiwweDI4LDB4MTEsMHg4MiwweDAwLDB4MzQsMHg4MSB9IH0sCi17ICAxNiwgMHhkZDYwLCAwLCB7MHgxOCwweDIwLDB4NDYsMHg0OCwweDExLDB4OTIsMHgwNCwweDYwLDB4ODEsMHgxOCwweDIwLDB4NDMsMHgwOCwweDExLDB4ODAsMHgxMSB9IH0sCi17ICAxNiwgMHhkZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDYwLDB4MDQsMHg1OCwweDAxLDB4NTYsMHgwMCB9IH0sCi17ICAxNiwgMHhkZDgwLCAwLCB7MHg1NSwweDgwLDB4MTUsMHg2MCwweDA0LDB4NTgsMHgwMSwweDE2LDB4MDAsMHg1NSwweDgwLDB4MDEsMHg2MCwweDA0LDB4MTgsMHgwMSB9IH0sCi17ICAxNiwgMHhkZDkwLCAwLCB7MHg1NiwweDAwLDB4NDUsMHg4MCwweDExLDB4NjAsMHgwNCwweDU4LDB4MDEsMHgxNiwweDAwLDB4NDEsMHg4MCwweDExLDB4NDAsMHgzMSB9IH0sCi17ICAxNiwgMHhkZGEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA2LDB4MDEsMHg0MSwweDgwLDB4NTAsMHg2MCB9IH0sCi17ICAxNiwgMHhkZGIwLCAwLCB7MHgxNCwweDE4LDB4MDUsMHgwNiwweDAxLDB4NDEsMHg4MCwweDUwLDB4NjAsMHgwNCwweDE4LDB4MDUsMHgwNiwweDAwLDB4NDEsMHg4MCB9IH0sCi17ICAxNiwgMHhkZGMwLCAwLCB7MHgxMCwweDYwLDB4MTQsMHgxOCwweDA1LDB4MDYsMHgwMSwweDQxLDB4ODAsMHg1MCwweDYwLDB4MTQsMHgxOCwweDA1LDB4MDAsMHgyMCB9IH0sCi17ICAxNiwgMHhkZGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAsMHgyMCB9IH0sCi17ICAxNiwgMHhkZGUwLCAwLCB7MHgxMCwweDQ4LDB4MDQsMHgxMiwweDAxLDB4MDAsMHg4MCwweDQxLDB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDQsMHg4MCB9IH0sCi17ICAxNiwgMHhkZGYwLCAwLCB7MHg0MCwweDIwLDB4NTAsMHg0OCwweDA0LDB4MTIsMHgwMSwweDAwLDB4ODQsMHg0MCwweDIwLDB4MTAsMHgwOCwweDA0LDB4MDAsMHgyMCB9IH0sCi17ICAxNiwgMHhkZTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCB9IH0sCi17ICAxNiwgMHhkZTEwLCAwLCB7MHgzMCwweDE4LDB4MGQsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ1LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0NiwweDAzLDB4MDUsMHg4MCB9IH0sCi17ICAxNiwgMHhkZTIwLCAwLCB7MHhkNCwweDYwLDB4MTUsMHgxOCwweDBkLDB4NDYsMHgwMywweDExLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDAsMHgzMSB9IH0sCi17ICAxNiwgMHhkZTMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ2LDB4MDUsMHg3MSwweDgwLDB4NWMsMHg2MCB9IH0sCi17ICAxNiwgMHhkZTQwLCAwLCB7MHg5NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEsMHg4MSwweDVjLDB4MjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDAzLDB4NzAsMHg4MSB9IH0sCi17ICAxNiwgMHhkZTUwLCAwLCB7MHg1YywweDYwLDB4NTcsMHgxOCwweDExLDB4YzYsMHgwNSwweDMxLDB4ODEsMHg1YywweDYwLDB4NzcsMHgxOCwweDE1LDB4YzAsMHgzMSB9IH0sCi17ICAxNiwgMHhkZTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQ2LDB4MDMsMHg3MSwweDgwLDB4ZGMsMHg2MCB9IH0sCi17ICAxNiwgMHhkZTcwLCAwLCB7MHgzNywweDE4LDB4MGQsMHhjNiwweDAzLDB4NzEsMHg4MCwweGRkLDB4NjAsMHgzNywweDE4LDB4MDUsMHhjNiwweDAxLDB4NzUsMHg4MSB9IH0sCi17ICAxNiwgMHhkZTgwLCAwLCB7MHhkYywweDYwLDB4MzcsMHgxOCwweDBkLDB4YzYsMHgwMywweDcxLDB4ODQsMHg1YywweDYwLDB4MTcsMHgxOCwweDE5LDB4YzAsMHgxMSB9IH0sCi17ICAxNiwgMHhkZTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQ2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCB9IH0sCi17ICAxNiwgMHhkZWEwLCAwLCB7MHg1NywweDE4LDB4MTQsMHg4NiwweDA1LDB4NzEsMHg4MSwweDVjLDB4NjAsMHg1NywweDE4LDB4MDUsMHhjNiwweDA0LDB4MzEsMHg4MSB9IH0sCi17ICAxNiwgMHhkZWIwLCAwLCB7MHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODAsMHg1YywweDYwLDB4NDMsMHgxOCwweDE1LDB4YzAsMHgxMSB9IH0sCi17ICAxNiwgMHhkZWMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9IH0sCi17ICAxNiwgMHhkZWQwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4NzAsMHg4MCB9IH0sCi17ICAxNiwgMHhkZWUwLCAwLCB7MHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTcsMHgwOCwweDA0LDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhkZWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA2LDB4MDEsMHg2MSwweDgwLDB4NTgsMHg2MCB9IH0sCi17ICAxNiwgMHhkZjAwLCAwLCB7MHgxNiwweDE4LDB4NDEsMHg4NiwweDAxLDB4NjEsMHg4MCwweDE4LDB4NjAsMHgwNiwweDNjLDB4MDUsMHg4NiwweDA0LDB4NjEsMHg4MCB9IH0sCi17ICAxNiwgMHhkZjEwLCAwLCB7MHgxOCwweDYwLDB4MTYsMHgxOCwweDAxLDB4ODYsMHgwMCwweDYxLDB4ODAsMHg1OCwweDYwLDB4NTYsMHgxOCwweDE1LDB4ODAsMHgxMCB9IH0sCi17ICAxNiwgMHhkZjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQwLDB4MDUsMHg3MCwweDAxLDB4NWMsMHgwMCB9IH0sCi17ICAxNiwgMHhkZjMwLCAwLCB7MHg1NywweDAwLDB4MTUsMHhjMCwweDA0LDB4NzAsMHgwMSwweDVjLDB4MDAsMHg1NywweDAwLDB4MTAsMHhjMCwweDA0LDB4NzAsMHgwMCB9IH0sCi17ICAxNiwgMHhkZjQwLCAwLCB7MHgxYywweDAwLDB4NDcsMHgwMCwweDExLDB4YzAsMHgwNCwweDcwLDB4MDEsMHg1YywweDAwLDB4NDcsMHgwMCwweDAxLDB4YzAsMHgxMSB9IH0sCi17ICAxNiwgMHhkZjUwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQyLDB4MDAsMHg2MCwweDgwLDB4MTgsMHgyMCB9IH0sCi17ICAxNiwgMHhkZjYwLCAwLCB7MHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDAsMHg4MiwweDAwLDB4NjAsMHg4MCB9IH0sCi17ICAxNiwgMHhkZjcwLCAwLCB7MHgxOCwweDIwLDB4MDYsMHgwOCwweDAxLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAxLDB4ODAsMHgxMSB9IH0sCi17ICAxNiwgMHhkZjgwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDQyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCB9IH0sCi17ICAxNiwgMHhkZjkwLCAwLCB7MHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTEsMHg4MiwweDA0LDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhkZmEwLCAwLCB7MHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDAwLDB4ODAsMHgxMSB9IH0sCi17ICAxNiwgMHhkZmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQyLDB4MDUsMHg0MCwweDgxLDB4NTAsMHgyMCB9IH0sCi17ICAxNiwgMHhkZmMwLCAwLCB7MHg1NCwweDA4LDB4MTUsMHgwMiwweDA1LDB4NDAsMHg4MSwweDEwLDB4MjAsMHg1NCwweDBjLDB4MTUsMHg0MiwweDAwLDB4NDAsMHg4MSB9IH0sCi17ICAxNiwgMHhkZmQwLCAwLCB7MHg1MCwweDIwLDB4NDQsMHgwOCwweDExLDB4MDIsMHgwNSwweDQwLDB4ODEsMHgxMCwweDIwLDB4MTQsMHgwOCwweDA1LDB4MDAsMHgxMSB9IH0sCi17ICAxNiwgMHhkZmUwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAzLDB4MDEsMHg1MCwweGMwLDB4NTQsMHgzMCB9IH0sCi17ICAxNiwgMHhkZmYwLCAwLCB7MHgxNSwweDA4LDB4MDUsMHg0MiwweDAxLDB4NTAsMHhjMCwweDU0LDB4MzAsMHgxNSwweDBjLDB4MDUsMHg0MywweDAxLDB4NTAsMHhjMCB9IH0sCi17ICAxNiwgMHhlMDAwLCAwLCB7MHg1NCwweDMwLDB4MTUsMHgwYywweDA1LDB4NDIsMHgwMSwweDUwLDB4YzAsMHg1NCwweDMwLDB4MTUsMHgwYywweDA1LDB4NDAsMHgxMCB9IH0sCi17ICAxNiwgMHhlMDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDAwLDB4MTAsMHg4MCB9IH0sCi17ICAxNiwgMHhlMDIwLCAwLCB7MHgwNCwweDIwLDB4MDEsMHg4OCwweDAwLDB4NjIsMHgwMCwweDEwLDB4ODAsMHgwNCwweDAwLDB4MTEsMHgwOCwweDAwLDB4NDIsMHgwMCB9IH0sCi17ICAxNiwgMHhlMDMwLCAwLCB7MHgxMCwweDgwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDEsMHgxMCwweDgwLDB4MDQsMHgyMCwweDAxLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQyLDB4MDIsMHgwMCwweDgwLDB4ODAsMHgyMCB9IH0sCi17ICAxNiwgMHhlMDUwLCAwLCB7MHgyMCwweDA4LDB4MDgsMHgwMiwweDAyLDB4MjAsMHg4MCwweDgwLDB4MjAsMHgyMCwweDI4LDB4MDAsMHgwMiwweDAyLDB4MDAsMHg4MCB9IH0sCi17ICAxNiwgMHhlMDYwLCAwLCB7MHg4MCwweDIwLDB4MjAsMHgwYSwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHgwMCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDAsMHgxMSB9IH0sCi17ICAxNiwgMHhlMDcwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQwLDB4MDUsMHg2MCwweDAxLDB4NTgsMHgwMCB9IH0sCi17ICAxNiwgMHhlMDgwLCAwLCB7MHg1NiwweDAwLDB4MDUsMHg4MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDgsMHg1NiwweDAwLDB4MTUsMHg4MCwweDA3LDB4NjAsMHgwMiB9IH0sCi17ICAxNiwgMHhlMDkwLCAwLCB7MHg1OCwweDAwLDB4NTYsMHg0MCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDMsMHgxOCwweDAwLDB4NzYsMHgwMCwweDE1LDB4ODAsMHgxMSB9IH0sCi17ICAxNiwgMHhlMGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCB9IH0sCi17ICAxNiwgMHhlMGIwLCAwLCB7MHgzNiwweDAwLDB4MGQsMHg4MCwweDAxLDB4NjAsMHgwMCwweGQ4LDB4MGEsMHgzNiwweDAwLDB4MGQsMHg4MCwweDA1LDB4NzAsMHgwOSB9IH0sCi17ICAxNiwgMHhlMGMwLCAwLCB7MHhkOCwweDAxLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwLDB4NTcsMHgwMCwweDBkLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHgzMCwweDAxLDB4MGMsMHgwMCB9IH0sCi17ICAxNiwgMHhlMGUwLCAwLCB7MHg0MywweDAwLDB4MTAsMHhjMCwweDAwLDB4MzAsMHgwMSwweDBjLDB4MDAsMHg0MywweDIwLDB4MTAsMHhjMCwweDA0LDB4NjAsMHgwMSB9IH0sCi17ICAxNiwgMHhlMGYwLCAwLCB7MHgwYywweDAwLDB4NDMsMHg0MCwweDUwLDB4YzEsMHgwNCwweDMwLDB4MDEsMHgwYywweDAwLDB4NDYsMHgwMCwweDEwLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9IH0sCi17ICAxNiwgMHhlMTEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhkMCwweDAwLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMTIwLCAwLCB7MHgwYywweDAwLDB4MDMsMHg0MCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwZCwweDAwLDB4MDIsMHgwMCwweDAwLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4MDEsMHgzMSwweDQwLDB4NGMsMHg1MCB9IH0sCi17ICAxNiwgMHhlMTQwLCAwLCB7MHgxMywweDEwLDB4MDQsMHhjNCwweDAxLDB4MzEsMHg0MCwweDRjLDB4NTAsMHgxMywweDE0LDB4MDQsMHhjNSwweDExLDB4MzEsMHg0MSB9IH0sCi17ICAxNiwgMHhlMTUwLCAwLCB7MHg0YywweDUwLDB4MTMsMHgxNCwweDA0LDB4YzUsMHgwMSwweDMxLDB4NDAsMHg0YywweDUwLDB4MTMsMHgxNCwweDA0LDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIzLDB4MDUsMHg2OCwweGMxLDB4NWEsMHgzMCB9IH0sCi17ICAxNiwgMHhlMTcwLCAwLCB7MHg1NiwweDhjLDB4MTEsMHhhMywweDA0LDB4NjgsMHhjMSwweDFhLDB4MzAsMHg1NiwweDhjLDB4MTEsMHhhMywweDA1LDB4NjgsMHhjMCB9IH0sCi17ICAxNiwgMHhlMTgwLCAwLCB7MHg1YSwweDMwLDB4NDYsMHg4YywweDExLDB4YTMsMHgwNCwweDY4LDB4YzEsMHg1YSwweDMwLDB4MTYsMHg4YywweDE1LDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHhlMWEwLCAwLCB7MHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDIwLDB4MDAsMHg5MCwweDAwLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMWIwLCAwLCB7MHgwOCwweDAwLDB4MDIsMHg0MCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOSwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4NDQsMHg2MiwweDAxLDB4MTgsMHg4NCB9IH0sCi17ICAxNiwgMHhlMWQwLCAwLCB7MHg0NiwweDIxLDB4MTEsMHg4OCwweDQ0LDB4NjIsMHgxMSwweDE4LDB4ODQsMHg0NiwweDAxLDB4MTEsMHg4OCwweDQ0LDB4NjIsMHgxMCB9IH0sCi17ICAxNiwgMHhlMWUwLCAwLCB7MHgxOCwweDg0LDB4NDYsMHgyMSwweDExLDB4ODgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDg0LDB4MDYsMHgyMSwweDExLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg1MCwweDExLDB4NTQsMHgwNCB9IH0sCi17ICAxNiwgMHhlMjAwLCAwLCB7MHg1NSwweDAxLDB4MTEsMHg0MCwweDQ1LDB4NTAsMHgxMSwweDE0LDB4MDAsMHg0NSwweDAxLDB4MTEsMHg0MCwweDQ0LDB4NTAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMjEwLCAwLCB7MHgxNCwweDA0LDB4NDUsMHgwMCwweDE1LDB4NDAsMHg0NCwweDUwLDB4MTEsMHgxNCwweDA0LDB4NTUsMHgwMSwweDExLDB4NDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MjEsMHg0MiwweDA4LDB4NTAsMHg4MiB9IH0sCi17ICAxNiwgMHhlMjMwLCAwLCB7MHgxNCwweDIwLDB4ODUsMHgwOCwweDIxLDB4NDIsMHgwOCwweDUwLDB4ODIsMHgwNCwweDIwLDB4ODUsMHgwOCwweDIxLDB4NDIsMHgwOCB9IH0sCi17ICAxNiwgMHhlMjQwLCAwLCB7MHg1MCwweDgyLDB4MTQsMHgyMCwweDA1LDB4MDgsMHgyMSwweDQyLDB4MDgsMHg1MCwweDgyLDB4MTQsMHgyMCwweDg1LDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCB9IH0sCi17ICAxNiwgMHhlMjYwLCAwLCB7MHgxMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgxMCwweDI4LDB4NDAsMHgwYSwweDAxLDB4MDIsMHg4MCB9IH0sCi17ICAxNiwgMHhlMjcwLCAwLCB7MHg0MCwweGEwLDB4MTAsMHgyOCwweDQ0LDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MTAsMHgyOCwweDA0LDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBjLDB4MDMsMHg1MywweDAwLDB4ZDQsMHhjMCB9IH0sCi17ICAxNiwgMHhlMjkwLCAwLCB7MHgzNSwweDMwLDB4MGQsMHg0YywweDAxLDB4NTMsMHgwMCwweGQ0LDB4YzAsMHgzNSwweDEwLDB4MGMsMHg0YywweDAzLDB4NTMsMHgwMCB9IH0sCi17ICAxNiwgMHhlMmEwLCAwLCB7MHhkNCwweGMwLDB4MzUsMHgzMCwweDBkLDB4NGMsMHgwMywweDUzLDB4MDAsMHhkNCwweGMwLDB4MzUsMHgzMCwweDBkLDB4NDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHg3MiwweDAxLDB4NWMsMHg4MCB9IH0sCi17ICAxNiwgMHhlMmMwLCAwLCB7MHgxNywweDIwLDB4MDUsMHhjOCwweDA2LDB4NzIsMHgwMSwweDVjLDB4ODAsMHg1NywweDIwLDB4MTUsMHhjOCwweDAyLDB4NzIsMHgwMSB9IH0sCi17ICAxNiwgMHhlMmQwLCAwLCB7MHg1YywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzgsMHgwNSwweDcyLDB4MDEsMHg1YywweDgwLDB4MzcsMHgyMCwweDExLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIzLDB4MTgsMHg0MCwweGM2LDB4MTIsMHgzMSB9IH0sCi17ICAxNiwgMHhlMmYwLCAwLCB7MHg4NCwweDhjLDB4MjEsMHgyMywweDA4LDB4NDgsMHhjNiwweDEyLDB4MzAsMHg4NCwweDBjLDB4NjEsMHgyMywweDEwLDB4NDgsMHhjMiB9IH0sCi17ICAxNiwgMHhlMzAwLCAwLCB7MHgxMiwweDMxLDB4ODQsMHg4YywweDAxLDB4MjMsMHgwOCwweDQ4LDB4YzYsMHgxMiwweDMxLDB4MDQsMHg4YywweDYxLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiB9IH0sCi17ICAxNiwgMHhlMzIwLCAwLCB7MHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiB9IH0sCi17ICAxNiwgMHhlMzMwLCAwLCB7MHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlMzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJjLDB4ZGIsMHgwZiwweGI2LDB4YzIsMHhjZCB9IH0sCi17ICAxNiwgMHhlMzgwLCAwLCB7MHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4ZGYsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHg3ZSB9IH0sCi17ICAxNiwgMHhlMzkwLCAwLCB7MHhjMiwweGNkLDB4YjAsMHhiNywweGZkLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlM2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMzLDB4M2MsMHg0ZiwweGNmLDB4MTMsMHgzMyB9IH0sCi17ICAxNiwgMHhlM2IwLCAwLCB7MHhjNCwweGNjLDB4ZjEsMHgzMywweDNjLDB4NGMsMHhjZiwweDEzLDB4M2YsMHhjNCwweGNjLDB4ZjEsMHgzMywweDNjLDB4NGMsMHhmZiB9IH0sCi17ICAxNiwgMHhlM2MwLCAwLCB7MHgxMywweDMzLDB4YzQsMHhjZiwweGZkLDB4MzMsMHgzYywweDRjLDB4Y2YsMHgxMywweDMzLDB4YzQsMHhjYywweGYxLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlM2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNiLDB4N2UsMHg0ZSwweGRmLDB4OTMsMHhiNyB9IH0sCi17ICAxNiwgMHhlM2UwLCAwLCB7MHhlNCwweGVjLDB4NzksMHgzYiwweDFlLDB4NGUsMHhkZiwweDkzLDB4YmYsMHhlNCwweDhkLDB4ZjksMHgzYiwweDc4LDB4NGUsMHhmZiB9IH0sCi17ICAxNiwgMHhlM2YwLCAwLCB7MHg5MywweGI3LDB4ZTQsMHhlZCwweGZkLDB4M2IsMHgxZSwweDRlLDB4ZGYsMHg5MywweGI3LDB4ODQsMHhlZCwweGY5LDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MDIsMHg3MCwweDQwLDB4OWMsMHgxMCB9IH0sCi17ICAxNiwgMHhlNDEwLCAwLCB7MHgyNywweDFjLDB4MDksMHhjMSwweDAxLDB4MzAsMHg0MCwweDFjLDB4MTAsMHg2NywweDA0LDB4MDksMHhjMSwweDAyLDB4NzAsMHg0MSB9IH0sCi17ICAxNiwgMHhlNDIwLCAwLCB7MHg5YywweDExLDB4MDcsMHgxNCwweDAxLDB4YzEsMHgwMiwweDcwLDB4NDAsMHg5YywweDUwLDB4MDcsMHgxYywweDAxLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4MDUsMHg3MSwweDAxLDB4NWMsMHg0MCB9IH0sCi17ICAxNiwgMHhlNDQwLCAwLCB7MHg1NywweDEwLDB4NTUsMHhjNCwweDAxLDB4MzEsMHgwMCwweDVjLDB4NDAsMHg1NywweDEwLDB4MTUsMHhjNCwweDA1LDB4NzEsMHgwMSB9IH0sCi17ICAxNiwgMHhlNDUwLCAwLCB7MHhkYywweDQwLDB4MTcsMHgxOCwweDFkLDB4YzQsMHgwNSwweDcxLDB4MDUsMHg1YywweDQwLDB4NTcsMHgxMCwweDFkLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9IH0sCi17ICAxNiwgMHhlNDcwLCAwLCB7MHgxMiwweDAwLDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhlNDgwLCAwLCB7MHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDYwLDB4MTIsMHgwOCwweDA0LDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCB9IH0sCi17ICAxNiwgMHhlNGEwLCAwLCB7MHgwNiwweDAwLDB4NDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHg0NiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNGIwLCAwLCB7MHgxMCwweDAwLDB4MDYsMHgxMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDIwLDB4NDYsMHgxMCwweDAxLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCB9IH0sCi17ICAxNiwgMHhlNGQwLCAwLCB7MHg0NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMSwweDFjLDB4ODAsMHgwNywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzMsMHgwMCB9IH0sCi17ICAxNiwgMHhlNGUwLCAwLCB7MHgxYywweDgwLDB4NDcsMHgyMCwweDExLDB4Y2MsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4NDcsMHgyMCwweDExLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCB9IH0sCi17ICAxNiwgMHhlNTAwLCAwLCB7MHgwNiwweDAwLDB4MDEsMHg4NCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHg0MCB9IH0sCi17ICAxNiwgMHhlNTEwLCAwLCB7MHgxOCwweDAwLDB4MDYsMHgwNCwweDAxLDB4ODEsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgxNCwweDAxLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgyMiwweDAxLDB4MDgsMHg4MCB9IH0sCi17ICAxNiwgMHhlNTMwLCAwLCB7MHg0MiwweDcwLDB4MTAsMHg4YywweDA0LDB4MjIsMHgwMSwweDA4LDB4YzAsMHgwMiwweDIwLDB4MTAsMHg4OCwweDA0LDB4MjIsMHgwMCB9IH0sCi17ICAxNiwgMHhlNTQwLCAwLCB7MHgwOCwweDgwLDB4NDIsMHg1MCwweDEwLDB4MDgsMHgwNCwweDIyLDB4MDEsMHgwOSwweDAwLDB4NDIsMHg0MCwweDEwLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJlLDB4MDQsMHg0YSwweDgxLDB4MTIsMHhhMCB9IH0sCi17ICAxNiwgMHhlNTYwLCAwLCB7MHg0NCwweGE4LDB4MTEsMHgyYSwweDA0LDB4NGEsMHg4MSwweDEyLDB4YTAsMHgwNCwweGE4LDB4MTEsMHgyYSwweDA0LDB4NGIsMHg4MCB9IH0sCi17ICAxNiwgMHhlNTcwLCAwLCB7MHgxMiwweGEwLDB4NDQsMHg4OCwweDAxLDB4MmUsMHgwNCwweDRhLDB4ODEsMHgxMiwweDIwLDB4MDQsMHg5OCwweDAxLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMCwweDBlLDB4MDAsMHg1MywweDAwLDB4MTQsMHhjMCB9IH0sCi17ICAxNiwgMHhlNTkwLCAwLCB7MHgwNSwweDMwLDB4MDEsMHg0YywweDAwLDB4NTMsMHgwMCwweDE0LDB4ZTAsMHgwNSwweDMwLDB4MDEsMHg0YywweDAwLDB4NTMsMHgwMCB9IH0sCi17ICAxNiwgMHhlNWEwLCAwLCB7MHgwNCwweGMwLDB4MDUsMHgzMCwweDAwLDB4NGMsMHgwMCwweDAzLDB4MDAsMHgxNCwweGMwLDB4MDUsMHgzMCwweDAwLDB4NDAsMHgxMCB9IH0sCi17ICAxNiwgMHhlNWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMCwweDA0LDB4MDAsMHg0MCwweDAwLDB4MTAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNWMwLCAwLCB7MHgwNCwweDU4LDB4MDEsMHgwNCwweDAwLDB4NDAsMHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NDEsMHgwMCB9IH0sCi17ICAxNiwgMHhlNWQwLCAwLCB7MHgwNCwweDAwLDB4NDQsMHg1OCwweDEwLDB4NDQsMHgwMCwweDAwLDB4MDAsMHgxMSwweDgwLDB4MDQsMHg1MCwweDEwLDB4NDAsMHgzMCB9IH0sCi17ICAxNiwgMHhlNWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMCwweDQwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNWYwLCAwLCB7MHgyMCwweDAwLDB4MDgsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjAwLCAwLCB7MHg4NCwweDAwLDB4MDAsMHgwMCwweDA4LDB4NDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4NDAsMHgzMCB9IH0sCi17ICAxNiwgMHhlNjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMCwweDQwLDB4MDAsMHg2MCwweDAxLDB4MTgsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjIwLCAwLCB7MHg0NiwweDAwLDB4MDEsMHg4MCwweDA2LDB4NjAsMHgwMSwweDk4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSB9IH0sCi17ICAxNiwgMHhlNjMwLCAwLCB7MHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAsMHgwNCwweDIwLDB4MDEsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgzMCB9IH0sCi17ICAxNiwgMHhlNjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMSwweDQwLDB4MDAsMHg2MCwweDAwLDB4OTgsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjUwLCAwLCB7MHgyNiwweDAwLDB4MDksMHg4MCwweDAyLDB4NjAsMHgwMSwweDk4LDB4MDAsMHgwNiwweDAwLDB4MGMsMHg4MCwweDAyLDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjYwLCAwLCB7MHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMiwweDYwLDB4MDAsMHg5OCwweDgwLDB4MDYsMHgwMCwweDAxLDB4ODIsMHgwMCB9IH0sCi17ICAxNiwgMHhlNjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQyLDB4MDAsMHgzMCwweDgxLDB4MGMsMHgyMCB9IH0sCi17ICAxNiwgMHhlNjgwLCAwLCB7MHg0MywweDA4LDB4MTAsMHhjMiwweDI0LDB4MzAsMHg4MSwweDhjLDB4MjAsMHgwMywweDA4LDB4MTAsMHhjMiwweDA0LDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhlNjkwLCAwLCB7MHgwYywweDIwLDB4MDMsMHgwOCwweDE4LDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDE4LDB4YzAsMHgxMSB9IH0sCi17ICAxNiwgMHhlNmEwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9IH0sCi17ICAxNiwgMHhlNmIwLCAwLCB7MHgwMywweDAwLDB4MDAsMHhjMCwweDQwLDB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHg4MCwweDAwLDB4MzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNmMwLCAwLCB7MHgwYywweDAwLDB4MDMsMHgyMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgyMCwweDAwLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDAyLDB4MTAsMHgzMCwweDgwLDB4MGMsMHgyMCB9IH0sCi17ICAxNiwgMHhlNmUwLCAwLCB7MHgwMywweDA4LDB4MDAsMHhjMiwweDAwLDB4MzAsMHg4MCwweDBjLDB4MjAsMHgwMywweDA4LDB4MDAsMHhjMiwweDAxLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhlNmYwLCAwLCB7MHgwYywweDIwLDB4MDMsMHgyYywweDAwLDB4YzIsMHgwMCwweDMwLDB4ODAsMHgwYywweDMwLDB4NDMsMHgyYywweDAwLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNzAwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgyMCB9IH0sCi17ICAxNiwgMHhlNzEwLCAwLCB7MHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MCwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MSB9IH0sCi17ICAxNiwgMHhlNzIwLCAwLCB7MHgxOCwweDIwLDB4NDYsMHgwYywweDExLDB4YzIsMHgwNCwweDYwLDB4ODEsMHgxOCwweDMwLDB4NDYsMHgwYywweDExLDB4YzAsMHgxMSB9IH0sCi17ICAxNiwgMHhlNzMwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDQyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCB9IH0sCi17ICAxNiwgMHhlNzQwLCAwLCB7MHgwMiwweDI4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhlNzUwLCAwLCB7MHgwOCwweDIwLDB4MDIsMHgwOCwweDAxLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDMsMHgwOCwweDAxLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgwMSwweDQyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgyMCB9IH0sCi17ICAxNiwgMHhlNzcwLCAwLCB7MHg0NiwweDI4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MCwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MSB9IH0sCi17ICAxNiwgMHhlNzgwLCAwLCB7MHgxOCwweDIwLDB4NDYsMHgwOCwweDEwLDB4ODIsMHgwNCwweDYwLDB4ODEsMHgxOCwweDIwLDB4NDMsMHgwOCwweDEwLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlNzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQwLDB4MDQsMHg1MCwweDAxLDB4MTQsMHgwMCB9IH0sCi17ICAxNiwgMHhlN2EwLCAwLCB7MHg0NSwweDAwLDB4MTEsMHg0MCwweDI1LDB4MDAsMHgwMCwweDE0LDB4MDAsMHg0NSwweDAwLDB4MTEsMHg0MCwweDA0LDB4NTAsMHgwMSB9IH0sCi17ICAxNiwgMHhlN2IwLCAwLCB7MHgxNCwweDAwLDB4NDUsMHgwMCwweDAwLDB4NDAsMHgwNCwweDUwLDB4MDEsMHg0MCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NDIsMHgxMSB9IH0sCi17ICAxNiwgMHhlN2MwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDA2LDB4MDAsMHg0MSwweDgwLDB4MTAsMHg2MCB9IH0sCi17ICAxNiwgMHhlN2QwLCAwLCB7MHgwNCwweDE4LDB4MDEsMHgwNiwweDAwLDB4NDEsMHg4MCwweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwNiwweDAwLDB4NDEsMHg4MCB9IH0sCi17ICAxNiwgMHhlN2UwLCAwLCB7MHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlN2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDAyLDB4MDUsMHgwMCwweDgwLDB4NDAsMHgyMSB9IH0sCi17ICAxNiwgMHhlODAwLCAwLCB7MHgxMCwweDA4LDB4MDQsMHgwMCwweDAxLDB4MDAsMHg4MCwweDQwLDB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAsMHg4MCB9IH0sCi17ICAxNiwgMHhlODEwLCAwLCB7MHg0MCwweDIwLDB4NTAsMHgwOCwweDE0LDB4MDIsMHgxMSwweDAwLDB4ODQsMHg0MCwweDIwLDB4MTAsMHgwOCwweDE0LDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQ2LDB4MDEsMHg1MSwweDgwLDB4ZDQsMHg2MCB9IH0sCi17ICAxNiwgMHhlODMwLCAwLCB7MHgzNSwweDE4LDB4MGQsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAsMHgxNSwweDE4LDB4MGQsMHg0NiwweDAzLDB4NTEsMHg4MCB9IH0sCi17ICAxNiwgMHhlODQwLCAwLCB7MHg1NCwweDYwLDB4MTUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDAsMHgxMSB9IH0sCi17ICAxNiwgMHhlODUwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDQ2LDB4MDQsMHg3MSwweDgxLDB4MWMsMHg2MCB9IH0sCi17ICAxNiwgMHhlODYwLCAwLCB7MHg0NSwweDE4LDB4MTEsMHhkNiwweDA0LDB4NzEsMHg4MSwweDFjLDB4NjAsMHg2NywweDE4LDB4MTEsMHhjNiwweDA0LDB4NzEsMHg4MSB9IH0sCi17ICAxNiwgMHhlODcwLCAwLCB7MHg5YywweDYwLDB4NDcsMHgxOCwweDExLDB4YzYsMHgwNCwweDcxLDB4ODEsMHgxYywweDYwLDB4NjcsMHgxOCwweDExLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlODgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweDQ2LDB4MDIsMHg3MSwweDgwLDB4OWMsMHg2MCB9IH0sCi17ICAxNiwgMHhlODkwLCAwLCB7MHgyNywweDE4LDB4MDksMHhjNiwweDAwLDB4NzEsMHg4MCwweDljLDB4NjAsMHg2NywweDE4LDB4MDksMHhjNiwweDAyLDB4NzEsMHg4MCB9IH0sCi17ICAxNiwgMHhlOGEwLCAwLCB7MHg5YywweDYxLDB4MjcsMHgxOCwweDAxLDB4YzYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYwLDB4MDcsMHgxOCwweDAxLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlOGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHg0NSwweDQ2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCB9IH0sCi17ICAxNiwgMHhlOGMwLCAwLCB7MHg1NywweDE4LDB4NTUsMHhkNiwweDAxLDB4NzEsMHg4MSwweDVjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEsMHg4MSB9IH0sCi17ICAxNiwgMHhlOGQwLCAwLCB7MHg1YywweDYwLDB4NTcsMHgxOCwweDE4LDB4YzYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NDMsMHgxOCwweDE4LDB4ODIsMHgxMSB9IH0sCi17ICAxNiwgMHhlOGUwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNCwweDUyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9IH0sCi17ICAxNiwgMHhlOGYwLCAwLCB7MHgxMiwweDQ4LDB4MDQsMHg5MCwweDAxLDB4MjAsMHg4MCwweDQ5LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjQsMHg4MCB9IH0sCi17ICAxNiwgMHhlOTAwLCAwLCB7MHg0OCwweDIwLDB4MTIsMHg0OCwweDAwLDB4OTIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTcsMHg0OCwweDA0LDB4ODAsMHgwMSB9IH0sCi17ICAxNiwgMHhlOTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDA2LDB4MDAsMHg2MSwweDgwLDB4MTgsMHg2MCB9IH0sCi17ICAxNiwgMHhlOTIwLCAwLCB7MHgwNiwweDNjLDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MCwweDE4LDB4NjAsMHg0NiwweDE4LDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MCB9IH0sCi17ICAxNiwgMHhlOTMwLCAwLCB7MHgxOCwweDYwLDB4MDYsMHgxOCwweDAxLDB4ODYsMHgwMCwweDYxLDB4ODAsMHgxOCwweDYwLDB4NDYsMHgxOCwweDAxLDB4ODAsMHgwMSB9IH0sCi17ICAxNiwgMHhlOTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MSwweDYwLDB4MDQsMHg3OCwweDAxLDB4MWUsMHgwMCB9IH0sCi17ICAxNiwgMHhlOTUwLCAwLCB7MHg0NywweDgwLDB4MTEsMHhlMCwweDI0LDB4NzgsMHgwMSwweDFlLDB4MDAsMHgwNywweDgwLDB4MTEsMHhlMCwweDA0LDB4NzgsMHgwMSB9IH0sCi17ICAxNiwgMHhlOTYwLCAwLCB7MHgxZSwweDAwLDB4NDcsMHg4MCwweDExLDB4ZTAsMHgwNCwweDM4LDB4MDEsMHgxZSwweDAwLDB4NDcsMHg4MCwweDExLDB4YzAsMHgxMSB9IH0sCi17ICAxNiwgMHhlOTcwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDEyLDB4MDAsMHg2MCwweDgwLDB4MTgsMHgyMCB9IH0sCi17ICAxNiwgMHhlOTgwLCAwLCB7MHgwNiwweDQ4LDB4MDEsMHg5MiwweDAwLDB4NjAsMHg4MCwweDE5LDB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjQsMHg4MCB9IH0sCi17ICAxNiwgMHhlOTkwLCAwLCB7MHgxOCwweDIwLDB4MDYsMHg0OCwweDAxLDB4OTMsMHgwMCwweDIwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHg0OCwweDAxLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlOWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDQyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCB9IH0sCi17ICAxNiwgMHhlOWIwLCAwLCB7MHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAsMHgwMiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSB9IH0sCi17ICAxNiwgMHhlOWMwLCAwLCB7MHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4OGEsMHgwNCwweDYwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlOWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQyLDB4MDQsMHg0MCwweDgxLDB4MTAsMHgyMCB9IH0sCi17ICAxNiwgMHhlOWUwLCAwLCB7MHg0NCwweDA4LDB4MTEsMHgwMiwweDA0LDB4NDAsMHg4MSwweDEwLDB4MjAsMHgwNCwweDA4LDB4MTEsMHgwMiwweDA0LDB4NDAsMHg4MSB9IH0sCi17ICAxNiwgMHhlOWYwLCAwLCB7MHgxMCwweDIxLDB4NDQsMHgwOCwweDAxLDB4MDIsMHgwNCwweDUwLDB4ODEsMHgxMCwweDIwLDB4MDQsMHgwOCwweDAxLDB4MDAsMHgxMSB9IH0sCi17ICAxNiwgMHhlYTAwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDAzLDB4MDAsMHg1MCwweGMwLDB4MTQsMHgzMCB9IH0sCi17ICAxNiwgMHhlYTEwLCAwLCB7MHgwNSwweDBjLDB4MDEsMHg0MywweDAwLDB4NTAsMHhjMCwweDE0LDB4MzAsMHgwNSwweDBjLDB4MDEsMHg0MywweDAwLDB4NTAsMHg4MCB9IH0sCi17ICAxNiwgMHhlYTIwLCAwLCB7MHgxNCwweDMwLDB4MDUsMHgwOCwweDAxLDB4NGEsMHgwMCwweDUwLDB4YzAsMHgxNCwweDMwLDB4MDUsMHgwOCwweDAxLDB4NDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlYTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDAwLDB4MTAsMHg4MCB9IH0sCi17ICAxNiwgMHhlYTQwLCAwLCB7MHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCB9IH0sCi17ICAxNiwgMHhlYTUwLCAwLCB7MHgxMCwweDgwLDB4MDQsMHgyMCwweDExLDB4MDAsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgwLDB4MDQsMHgyMCwweDExLDB4MDAsMHgxMCB9IH0sCi17ICAxNiwgMHhlYTYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQyLDB4MDIsMHgwMCwweDgwLDB4ODAsMHgyMCB9IH0sCi17ICAxNiwgMHhlYTcwLCAwLCB7MHgyMCwweDA4LDB4MDgsMHgwMiwweDAwLDB4MDAsMHg4MCwweDgwLDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMiwweDAyLDB4MDAsMHg4MCB9IH0sCi17ICAxNiwgMHhlYTgwLCAwLCB7MHg4MCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4MCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDAsMHgxMSB9IH0sCi17ICAxNiwgMHhlYTkwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDQwLDB4MDAsMHg2MCwweDAxLDB4MTgsMHgwMCB9IH0sCi17ICAxNiwgMHhlYWEwLCAwLCB7MHg0NiwweDAwLDB4MTEsMHg4MCwweDA2LDB4NjAsMHgwMSwweDE4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSB9IH0sCi17ICAxNiwgMHhlYWIwLCAwLCB7MHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgxMCB9IH0sCi17ICAxNiwgMHhlYWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDQwLDB4MDIsMHg2NCwweDAwLDB4OTgsMHgwMCB9IH0sCi17ICAxNiwgMHhlYWQwLCAwLCB7MHgyNiwweDAwLDB4MDksMHg5MCwweDA2LDB4NjAsMHgwMSwweDk4LDB4MDAsMHgyNiwweDQwLDB4MDksMHg4MCwweDAyLDB4NjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlYWUwLCAwLCB7MHg5OCwweDAwLDB4MjYsMHgwMCwweDAwLDB4OTAsMHgwMiwweDYwLDB4MDAsMHg5OCwweDAwLDB4MDcsMHgwMCwweDAxLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlYWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDYwLDB4MDQsMHgzOCwweDA1LDB4MGUsMHgwMCB9IH0sCi17ICAxNiwgMHhlYjAwLCAwLCB7MHg0MywweDgwLDB4MTAsMHhlMCwweDQ0LDB4MzgsMHgwMSwweDBlLDB4MDAsMHg0MywweDgwLDB4MTAsMHhlMCwweDA0LDB4MzgsMHgwMSB9IH0sCi17ICAxNiwgMHhlYjEwLCAwLCB7MHgwZSwweDAwLDB4NDMsMHg4MCwweDE4LDB4YTAsMHgwNCwweDM4LDB4MDEsMHgwZSwweDAwLDB4NDYsMHg4MCwweDE4LDB4ODAsMHgxMSB9IH0sCi17ICAxNiwgMHhlYjIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgwMCwweDAxLDB4MDAsMHgzMCwweDQwLDB4MGMsMHgxMCB9IH0sCi17ICAxNiwgMHhlYjMwLCAwLCB7MHgwMywweDA0LDB4MDAsMHhjNSwweDAwLDB4MzAsMHg0MCwweDBjLDB4MTAsMHgwMywweDE0LDB4MDAsMHhjMSwweDAwLDB4MzAsMHg0MCB9IH0sCi17ICAxNiwgMHhlYjQwLCAwLCB7MHgwYywweDEwLDB4MDMsMHgwNCwweDAwLDB4ODcsMHg0MCwweDMwLDB4NDAsMHgwYywweDEwLDB4MDIsMHgwNCwweDAwLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlYjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNCwweDA1LDB4MDAsMHgzNSwweDQwLDB4MGMsMHg1MCB9IH0sCi17ICAxNiwgMHhlYjYwLCAwLCB7MHgwMywweDE0LDB4MDAsMHhkNSwweDA0LDB4MzEsMHg0MSwweDBjLDB4NTAsMHgwMywweDVjLDB4MDAsMHhjNSwweDAwLDB4MzEsMHgwMCB9IH0sCi17ICAxNiwgMHhlYjcwLCAwLCB7MHgwYywweDUwLDB4MDMsMHgxMCwweDAwLDB4OTQsMHgwMCwweDMxLDB4NDAsMHgwYywweDUwLDB4NDMsMHgxMCwweDAwLDB4YzIsMHgwMCB9IH0sCi17ICAxNiwgMHhlYjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQzLDB4MDUsMHgyMCwweGMxLDB4MTgsMHgzMCB9IH0sCi17ICAxNiwgMHhlYjkwLCAwLCB7MHg0NiwweDBjLDB4MTEsMHg5NywweDAwLDB4NjAsMHhjMCwweDE4LDB4MzAsMHg0NiwweDFjLDB4MTEsMHg4MywweDA0LDB4NjAsMHhjMSB9IH0sCi17ICAxNiwgMHhlYmEwLCAwLCB7MHgxOCwweDMwLDB4NTIsMHgwYywweDExLDB4ODcsMHgwNCwweDYwLDB4YzEsMHgxOCwweDMwLDB4NDYsMHgwYywweDExLDB4ODAsMHgxMSB9IH0sCi17ICAxNiwgMHhlYmIwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDAwLDB4MDAsMHgyMSwweDQwLDB4MDgsMHgwMCB9IH0sCi17ICAxNiwgMHhlYmMwLCAwLCB7MHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCB9IH0sCi17ICAxNiwgMHhlYmQwLCAwLCB7MHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlYmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDQ4LDB4NDQsMHgyMiwweDAxLDB4MTgsMHg4NCB9IH0sCi17ICAxNiwgMHhlYmYwLCAwLCB7MHg0NiwweDIxLDB4MTEsMHg5OCwweDAwLDB4NjIsMHgxMCwweDE4LDB4ODQsMHg0NCwweDIwLDB4MTEsMHg4OCwweDQ0LDB4NjIsMHgxMSB9IH0sCi17ICAxNiwgMHhlYzAwLCAwLCB7MHgxOCwweDg0LDB4NDIsMHgyMSwweDExLDB4ODAsMHg0NCwweDYyLDB4MTEsMHgxOCwweDg0LDB4NDYsMHgyMSwweDExLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhlYzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQwLDB4MDQsMHg1MCwweDExLDB4MTQsMHgwNCB9IH0sCi17ICAxNiwgMHhlYzIwLCAwLCB7MHg0NSwweDAwLDB4MTEsMHg0MSwweDAwLDB4NTAsMHgxMCwweDE0LDB4MDAsMHg0NSwweDAxLDB4MTEsMHg0MCwweDQ0LDB4NTAsMHgxMSB9IH0sCi17ICAxNiwgMHhlYzMwLCAwLCB7MHgxNCwweDA0LDB4NDUsMHgwMSwweDAxLDB4NDAsMHg0NCwweDUwLDB4MTEsMHgxNCwweDA0LDB4MDUsMHgwMSwweDAxLDB4NDAsMHgxMSB9IH0sCi17ICAxNiwgMHhlYzQwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiB9IH0sCi17ICAxNiwgMHhlYzUwLCAwLCB7MHgwNCwweDIwLDB4MDEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCB9IH0sCi17ICAxNiwgMHhlYzYwLCAwLCB7MHgxMCwweDgyLDB4MDQsMHgyMiwweDgxLDB4MDgsMHgyMCwweDUyLDB4MDgsMHgxMCwweDhhLDB4MDQsMHgyMiwweDgxLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlYzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDBhLDB4MDEsMHgwMiwweDg0LDB4NDAsMHhhMSB9IH0sCi17ICAxNiwgMHhlYzgwLCAwLCB7MHgxMCwweDI4LDB4MDAsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgxMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCB9IH0sCi17ICAxNiwgMHhlYzkwLCAwLCB7MHg0MCwweGEwLDB4MTAsMHgyYywweDE0LDB4MGEsMHgwMCwweDAyLDB4ODAsMHg0MCwweGIwLDB4MTAsMHgyYywweDE0LDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlY2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDRkLDB4MDMsMHg1MywweDQwLDB4ZDQsMHhkMCB9IH0sCi17ICAxNiwgMHhlY2IwLCAwLCB7MHgzNSwweDMwLDB4MGMsMHg0ZCwweDAzLDB4NTMsMHg0MCwweGQ0LDB4ZDAsMHgzNSwweDM0LDB4MGQsMHg0ZCwweDAzLDB4NTMsMHg0MCB9IH0sCi17ICAxNiwgMHhlY2MwLCAwLCB7MHhkNCwweGQwLDB4MzUsMHgzNCwweDBkLDB4NGQsMHgwMiwweDEzLDB4NDAsMHhkNCwweGQwLDB4MzUsMHgzNCwweDBkLDB4NDAsMHgxMSB9IH0sCi17ICAxNiwgMHhlY2QwLCAwLCB7MHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDA4LDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCB9IH0sCi17ICAxNiwgMHhlY2UwLCAwLCB7MHg0NywweDIwLDB4MTUsMHhjOCwweDA0LDB4NzIsMHgwMSwweDFjLDB4ODAsMHg0NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgxMSB9IH0sCi17ICAxNiwgMHhlY2YwLCAwLCB7MHgxYywweDgwLDB4NDcsMHgyNiwweDExLDB4YzgsMHg0NCwweDcyLDB4MDEsMHgxYywweDkwLDB4NjcsMHgyNiwweDExLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIzLDB4MDgsMHg0MCwweGM2LDB4MTIsMHgzMSB9IH0sCi17ICAxNiwgMHhlZDEwLCAwLCB7MHg4NCwweDhjLDB4MDEsMHgwMywweDA4LDB4NDgsMHhjNiwweDEyLDB4MzAsMHg4NCwweDBjLDB4NjEsMHgyMywweDE4LDB4NDgsMHhjMiB9IH0sCi17ICAxNiwgMHhlZDIwLCAwLCB7MHgxMiwweDMxLDB4ODQsMHg4YywweDAxLDB4MDMsMHgwOCwweDQ4LDB4YzYsMHgxMiwweDMxLDB4MDQsMHg4YywweDAxLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiB9IH0sCi17ICAxNiwgMHhlZDQwLCAwLCB7MHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiB9IH0sCi17ICAxNiwgMHhlZDUwLCAwLCB7MHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJkLDB4ZmIsMHgwZiwweGI2LDB4YzIsMHhjZCB9IH0sCi17ICAxNiwgMHhlZGEwLCAwLCB7MHhiMCwweGI3LDB4ZmQsMHgzZiwweGZiLDB4MGIsMHgzNiwweGMyLDB4ZGYsMHhiMCwweGZiLDB4NmMsMHgyYywweGRiLDB4MGIsMHg3ZSB9IH0sCi17ICAxNiwgMHhlZGIwLCAwLCB7MHhjMiwweGNkLDB4YjAsMHhiNywweGZkLDB4M2YsMHhmYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4ZjQsMHhiNywweGZkLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMzLDB4ZmMsMHg0ZiwweGNmLDB4MTMsMHgzMyB9IH0sCi17ICAxNiwgMHhlZGQwLCAwLCB7MHhjNCwweGNmLDB4ZmQsMHgzZiwweGZjLDB4NGMsMHhjZiwweDEzLDB4M2YsMHhjNCwweGZjLDB4ZjEsMHgzMywweDNjLDB4NGMsMHhmZiB9IH0sCi17ICAxNiwgMHhlZGUwLCAwLCB7MHgxMywweDMzLDB4YzQsMHhjZiwweGZkLDB4M2YsMHhmYywweDRjLDB4Y2YsMHgxMywweDMzLDB4ZjQsMHhjZiwweGZkLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNiLDB4N2UsMHg0ZSwweGRmLDB4OTMsMHhiNyB9IH0sCi17ICAxNiwgMHhlZTAwLCAwLCB7MHhlNCwweGVkLDB4ZjksMHgzZiwweGZlLDB4NGUsMHhkZiwweDkzLDB4YjcsMHhlNCwweGVkLDB4ZjksMHgzYiwweDdlLDB4NGUsMHhjNyB9IH0sCi17ICAxNiwgMHhlZTEwLCAwLCB7MHg5MywweGI3LDB4ZTQsMHhlYywweDYxLDB4MjMsMHgxZSwweDRlLDB4ZGYsMHg5MywweGI3LDB4ODQsMHhlYywweDYxLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHgyNCwweGExLDB4NGEsMHgyNCB9IH0sCi17ICAxNiwgMHhlZTMwLCAwLCB7MHg2MywweDAxLDB4MTQsMHgwMiwweDQ0LDB4MDAsMHg4MSwweDBiLDB4MjgsMHg3MSwweDAyLDB4MTAsMHg4MiwweDQwLDB4MzgsMHgxMSB9IH0sCi17ICAxNiwgMHhlZTQwLCAwLCB7MHg0MSwweDA0LDB4NTAsMHgwOCwweDE4LDB4ODIsMHg4NywweDM4LDB4MzEsMHhjMywweDJjLDB4NTIsMHgwYSwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4NDUsMHgxMiwweDgxLDB4NDQsMHg4MCB9IH0sCi17ICAxNiwgMHhlZTYwLCAwLCB7MHg3MSwweDIxLDB4MWMsMHgwYSwweDA3LDB4MWEsMHg4MSwweDAyLDB4YTAsMHg1MiwweDIwLDB4MTQsMHg0OCwweDA3LDB4MTIsMHg4MSB9IH0sCi17ICAxNiwgMHhlZTcwLCAwLCB7MHhjNiwweDgwLDB4NjAsMHgyMCwweDA4LDB4ODgsMHg0NywweDAyLDB4MDEsMHg0YSwweDgwLDB4NzAsMHgyMCwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4YzUsMHgyYywweDAxLDB4NGEsMHgwMCB9IH0sCi17ICAxNiwgMHhlZTkwLCAwLCB7MHg1MiwweDA5LDB4MWMsMHg4MCwweDA3LDB4MjQsMHgyMSwweDA4LDB4MDgsMHg3MSwweDAyLDB4MTAsMHg4MCwweDQ1LDB4MjAsMHhhMSB9IH0sCi17ICAxNiwgMHhlZWEwLCAwLCB7MHg0OSwweDI4LDB4NTIsMHgwMSwweDE0LDB4YzAsMHg0NSwweDAwLDB4OTEsMHhjNCwweDAwLDB4NzIsMHgwMiwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDcsMHgyMCwweDAxLDB4YzEsMHgwMCB9IH0sCi17ICAxNiwgMHhlZWMwLCAwLCB7MHg3MSwweDA5LDB4MTAsMHg4MCwweDA3LDB4MDAsMHgwMSwweDAxLDB4MDAsMHg3MCwweDA4LDB4MTgsMHg4MCwweDA3LDB4MDAsMHgwMSB9IH0sCi17ICAxNiwgMHhlZWQwLCAwLCB7MHg4OSwweDIwLDB4NTIsMHgwMSwweDBjLDB4ODAsMHg0NiwweDMwLDB4ODEsMHg0NSwweDA0LDB4NjAsMHgwMCwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzIsMHgwMiwweDIwLDB4MDAsMHg4OCB9IH0sCi17ICAxNiwgMHhlZWYwLCAwLCB7MHgyMCwweDIyLDB4MDAsMHgwOCwweGMyLDB4MjIsMHg4MCwweDQwLDB4ODgsMHgwMiwweDIyLDB4MDAsMHgwOCwweDgyLDB4MGEsMHhhMCB9IH0sCi17ICAxNiwgMHhlZjAwLCAwLCB7MHgwYywweGE4LDB4MDIsMHgyMiwweDAwLDB4MDgsMHg4MCwweDBhLDB4MDAsMHg4MCwweDhjLDB4MDIsMHgyMiwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhlZjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4NDMsMHgwMCwweDAwLDB4NDAsMHgyMCB9IH0sCi17ICAxNiwgMHhlZjIwLCAwLCB7MHgzMCwweDA4LDB4MDQsMHg0MCwweDQxLDB4MzAsMHgxMCwweGM4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAzLDB4MDAsMHgxMCB9IH0sCi17ICAxNiwgMHhlZjMwLCAwLCB7MHhjMCwweDAwLDB4MTEsMHgwOCwweDAwLDB4YzIsMHg0MywweDEwLDB4ODAsMHhjMCwweDIwLDB4MDEsMHgwOCwweDAwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhlZjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4YzMsMHgwYSwweDIwLDB4YzEsMHg4YyB9IH0sCi17ICAxNiwgMHhlZjUwLCAwLCB7MHgxMiwweDIyLDB4MDQsMHg4OCwweDAxLDB4MzYsMHgyMCwweGMzLDB4MDgsMHgxMiwweDI4LDB4MDQsMHgwOCwweDAxLDB4MDQsMHgwMCB9IH0sCi17ICAxNiwgMHhlZjYwLCAwLCB7MHg0YSwweGE4LDB4MjIsMHgwMSwweDA0LDB4YzgsMHg0MSwweDI2LDB4MzAsMHhjMCwweDg4LDB4MDIsMHgyMSwweDAwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhlZjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4MDAsMHgwYSwweDEwLDB4YzEsMHg4MCB9IH0sCi17ICAxNiwgMHhlZjgwLCAwLCB7MHgzMiwweDIxLDB4MGMsMHg4OCwweDQzLDB4MDIsMHg4MCwweDQ0LDB4ODAsMHgxMiwweDI5LDB4MDQsMHgwOCwweDQyLDB4MGEsMHg5MCB9IH0sCi17ICAxNiwgMHhlZjkwLCAwLCB7MHg4YSwweDgwLDB4MDAsMHgyMCwweDA0LDB4NDgsMHgwMywweDBhLDB4MTAsMHg4MiwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhlZmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBhLDB4ODcsMHgwMiwweGExLDB4ODAsMHhhYyB9IH0sCi17ICAxNiwgMHhlZmIwLCAwLCB7MHg0MywweDI5LDB4MTQsMHg4YSwweDg0LDB4MDIsMHhhMSwweDAwLDB4YWMsMHg0MSwweDIwLDB4MTAsMHgwOCwweDA2LDB4MjYsMHgzMSB9IH0sCi17ICAxNiwgMHhlZmMwLCAwLCB7MHg4MCwweGE0LDB4NjAsMHgyMCwweDE0LDB4NGEsMHg0NCwweDMyLDB4ODEsMHg4MSwweGFjLDB4NjAsMHgyYSwweDE4LDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhlZmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4MDcsMHgyMiwweDAxLDB4YzUsMHg4MCB9IH0sCi17ICAxNiwgMHhlZmUwLCAwLCB7MHg3MywweDIxLDB4MWMsMHhjOCwweDA3LDB4MmEsMHgwMSwweDBjLDB4ODAsMHg3MiwweDIwLDB4MTAsMHg0OCwweDQ3LDB4MjYsMHgxMSB9IH0sCi17ICAxNiwgMHhlZmYwLCAwLCB7MHhjNSwweDgwLDB4NzMsMHgyMCwweDFjLDB4ODgsMHgwNywweDJhLDB4MTEsMHg0OSwweDgwLDB4NzAsMHgyMCwweDE0LDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmMDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAwLDB4NDUsMHgxMCwweDMxLDB4YzksMHgwYyB9IH0sCi17ICAxNiwgMHhmMDEwLCAwLCB7MHg3MywweDAyLDB4MWMsMHhjMCwweDQ3LDB4MDQsMHgwMSwweDBhLDB4MGMsMHg1MSwweDBhLDB4MTAsMHg4MiwweDQ3LDB4MjAsMHgzMSB9IH0sCi17ICAxNiwgMHhmMDIwLCAwLCB7MHhjOCwweDAwLDB4NzIsMHgwMiwweDFjLDB4NDAsMHgwNSwweDMwLDB4MTEsMHhjNCwweDAwLDB4NzIsMHgwMSwweDE4LDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmMDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweDEwLDB4MDYsMHgyNCwweDAxLDB4NDUsMHgwNCB9IH0sCi17ICAxNiwgMHhmMDQwLCAwLCB7MHg1MSwweDgxLDB4MTgsMHg5MCwweDQ3LDB4MTQsMHgwMSwweDA0LDB4MDQsMHg3MSwweDg4LDB4MTAsMHgxMiwweDA1LDB4MzQsMHgwMSB9IH0sCi17ICAxNiwgMHhmMDUwLCAwLCB7MHg0NCwweDA0LDB4NTEsMHg0MCwweDE4LDB4ZDAsMHgwNywweDM4LDB4MDEsMHhjNCwweDA0LDB4NTIsMHgwMSwweDE0LDB4YzIsMHgwNCB9IH0sCi17ICAxNiwgMHhmMDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODcsMHgwMCwweDIxLDB4ODksMHgwYyB9IH0sCi17ICAxNiwgMHhmMDcwLCAwLCB7MHg2MCwweDAxLDB4MWMsMHhkMCwweDQ1LDB4MjQsMHgwMSwweGMxLDB4MGMsMHg0MiwweDAxLDB4MDAsMHgwMCwweGM1LDB4MjAsMHgzMSB9IH0sCi17ICAxNiwgMHhmMDgwLCAwLCB7MHg0MSwweDA4LDB4NDAsMHgwMCwweDE4LDB4ODAsMHg0NSwweDAwLDB4MjEsMHg0MSwweDBjLDB4NzAsMHg0MiwweDFjLDB4YzIsMHgwMCB9IH0sCi17ICAxNiwgMHhmMDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDEsMHgxYywweDgwLDB4YzQsMHgyMCB9IH0sCi17ICAxNiwgMHhmMGEwLCAwLCB7MHgzMSwweDA4LDB4MTAsMHg0MiwweDQyLDB4MDgsMHg4MCwweGM2LDB4MjAsMHgzMSwweDA5LDB4MDAsMHgyMCwweDAzLDB4MWMsMHg5MCB9IH0sCi17ICAxNiwgMHhmMGIwLCAwLCB7MHhjNCwweDIwLDB4MDEsMHg0OSwweDBjLDB4NDIsMHg0MywweDEwLDB4ODAsMHg0NCwweDIwLDB4MzEsMHgwOCwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4ODMsMHgyMCwweDMwLDB4NDgsMHgwYyB9IH0sCi17ICAxNiwgMHhmMGQwLCAwLCB7MHgzMiwweDQwLDB4MTAsMHg5MCwweDgxLDB4MjQsMHgyMCwweGM4LDB4MDQsMHgzMiwweDQwLDB4MTAsMHgyMCwweGMzLDB4MjAsMHg4MCB9IH0sCi17ICAxNiwgMHhmMGUwLCAwLCB7MHhjOCwweDAwLDB4MDIsMHg0YSwweDBjLDB4YTAsMHgwMSwweDI0LDB4MTAsMHhjOCwweDA4LDB4MzIsMHg0MSwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4MDMsMHgwMCwweDAwLDB4YzksMHgwNCB9IH0sCi17ICAxNiwgMHhmMTAwLCAwLCB7MHgzMCwweDQwLDB4MDAsMHg5MCwweDAwLDB4MjAsMHgwMCwweDgwLDB4MDAsMHgxMCwweDQwLDB4MTAsMHgwMCwweDQwLDB4MjAsMHgxMCB9IH0sCi17ICAxNiwgMHhmMTEwLCAwLCB7MHhjMiwweDAwLDB4MDAsMHg4MCwweDA4LDB4MjAsMHg0MywweDA4LDB4MTAsMHg4MSwweDAwLDB4MzIsMHg0MCwweDBjLDB4YzAsMHgwNCB9IH0sCi17ICAxNiwgMHhmMTIwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMTMwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHhmMCwweDEwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHhmMCwweDEwLDB4ODAsMHg0MCB9IH0sCi17ICAxNiwgMHhmMTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4ZjAsMHgxMCwweDkwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2MsMHgzYywweDEwLDB4ODAsMHg5MCwweDQwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMTYwLCAwLCB7MHgwMCwweDgwLDB4MTAsMHg5MCwweGEwLDB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweDkwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OGYsMHgwZiB9IH0sCi17ICAxNiwgMHhmMTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI0LDB4YzYsMHhiYSwweDA2LDB4YzAsMHgxYyB9IH0sCi17ICAxNiwgMHhmMTkwLCAwLCB7MHg0OSwweDI4LDB4NjEsMHgxNCwweDJiLDB4MWMsMHgwZSwweDQwLDB4M2YsMHhkOSwweGJmLDB4ZDksMHhhYSwweGJjLDB4MWEsMHg1ZiB9IH0sCi17ICAxNiwgMHhmMWEwLCAwLCB7MHgwMCwweDEwLDB4YTYsMHg1MCwweDNiLDB4NjEsMHhiMywweDI1LDB4YmMsMHg0MCwweDE5LDB4YmYsMHhmZiwweGU5LDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTIsMHgxNCwweDk0LDB4ODAsMHgwYyB9IH0sCi17ICAxNiwgMHhmMWMwLCAwLCB7MHgwNywweDNmLDB4MmIsMHg5NCwweDg2LDB4MTQsMHg4NCwweDgwLDB4MjgsMHgwMCwweDAwLDB4NDksMHgxNCwweDA0LDB4ODYsMHgxMiB9IH0sCi17ICAxNiwgMHhmMWQwLCAwLCB7MHg4MCwweDAwLDB4NDEsMHgyNywweDM0LDB4ZDAsMHg5MCwweDg0LDB4OTIsMHgwMCwweDJkLDB4OGEsMHgyMSwweDFlLDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhhMiB9IH0sCi17ICAxNiwgMHhmMWYwLCAwLCB7MHhiMSwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4ODQsMHhiMSwweDc4LDB4MjgsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjAwLCAwLCB7MHgwOCwweGIxLDB4MzIsMHgxNCwweDE0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGE4LDB4MjMsMHg1NCwweDIxLDB4NDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgyZiwweGZmLDB4ZmUsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGQ3LDB4ZmUsMHhlZiB9IH0sCi17ICAxNiwgMHhmMjMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweDdmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwZiwweGVmLDB4NzcsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZSwweGZmLDB4ZmUsMHhlZiB9IH0sCi17ICAxNiwgMHhmMjYwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGJmLDB4ZmYsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiB9IH0sCi17ICAxNiwgMHhmMjkwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHg3ZiwweDJmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgxZiwweGZmLDB4ZmYsMHhlZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGVmLDB4ZWYsMHhlZiB9IH0sCi17ICAxNiwgMHhmMmMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZWYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGFmLDB4ZGYsMHhmZiB9IH0sCi17ICAxNiwgMHhmMmYwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhlZiwweGZmLDB4ZjcsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGRmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiB9IH0sCi17ICAxNiwgMHhmMzIwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MWYsMHhmZiwweGRmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4YzQsMHgyNCwweGExLDB4MDAsMHgyYyB9IH0sCi17ICAxNiwgMHhmMzQwLCAwLCB7MHg1MiwweDBiLDB4MTgsMHhjMiwweDg2LDB4MmMsMHhhMSwweDgwLDB4MzgsMHg2MiwweDBhLDB4MDgsMHg0MCwweGM0LDB4MmMsMHhhMSB9IH0sCi17ICAxNiwgMHhmMzUwLCAwLCB7MHgwOCwweDI4LDB4NDIsMHgwYiwweDE0LDB4MDAsMHg4NSwweDE0LDB4YTEsMHgwOCwweDI4LDB4NDMsMHgwYSwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmMzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgxMiwweDAxLDB4MDMsMHg4MCB9IH0sCi17ICAxNiwgMHhmMzcwLCAwLCB7MHg2MSwweDIwLDB4MTAsMHgwOCwweDA3LDB4MTIsMHg0MSwweDQyLDB4ODAsMHg3MCwweDIwLDB4MWMsMHgwOCwweDA0LDB4MWEsMHgwMSB9IH0sCi17ICAxNiwgMHhmMzgwLCAwLCB7MHg4NCwweDgxLDB4NDAsMHgyMCwweDE4LDB4MDgsMHg0NiwweDM2LDB4ODEsMHgwNSwweDgwLDB4NjMsMHgyMCwweDEwLDB4MDAsMHgwMSB9IH0sCi17ICAxNiwgMHhmMzkwLCAwLCB7MHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODQsMHgyNCwweDIxLDB4MDAsMHgwYyB9IH0sCi17ICAxNiwgMHhmM2EwLCAwLCB7MHg1MiwweDAyLDB4MTQsMHgwMCwweDg3LDB4MjgsMHgyMSwweDgxLDB4MDgsMHg3MiwweDA2LDB4MWMsMHg4MiwweDg0LDB4MjAsMHgyMSB9IH0sCi17ICAxNiwgMHhmM2IwLCAwLCB7MHg0OCwweDE4LDB4NDIsMHgwMywweDU0LDB4ODAsMHg0NSwweDMwLDB4MjUsMHg0YSwweDE4LDB4NTMsMHgwMiwweDEwLDB4MDAsMHgwMSB9IH0sCi17ICAxNiwgMHhmM2MwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgyMiwweDAxLDB4MDEsMHg4MCB9IH0sCi17ICAxNiwgMHhmM2QwLCAwLCB7MHg0MiwweDIwLDB4MTgsMHhjOCwweDQ0LDB4MjIsMHgwMSwweDgwLDB4ODQsMHg0MiwweDIwLDB4MWMsMHg4OCwweDA0LDB4MjIsMHgwMSB9IH0sCi17ICAxNiwgMHhmM2UwLCAwLCB7MHgwMCwweDgwLDB4NDAsMHgyMCwweDEwLDB4ODgsMHg0NCwweDM2LDB4MDEsMHg0MCwweDgwLDB4NDEsMHgwMCwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmM2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwOCwweDIwLDB4MDAsMHgwYyB9IH0sCi17ICAxNiwgMHhmNDAwLCAwLCB7MHgyMiwweDAzLDB4MDQsMHg0MCwweDgxLDB4MDAsMHgyMCwweDg0LDB4MDgsMHgwMywweDAwLDB4MDAsMHg4MCwweGMyLDB4MDAsMHgyMCB9IH0sCi17ICAxNiwgMHhmNDEwLCAwLCB7MHhjNCwweDA4LDB4MDAsMHgwMywweDA4LDB4ODgsMHg4MiwweDE2LDB4YTAsMHg0MCwweDg4LDB4MzIsMHgyMiwweDgwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDEsMHgwMCwweDgwLDB4MDQsMHgyMCB9IH0sCi17ICAxNiwgMHhmNDMwLCAwLCB7MHgxMCwweDA4LDB4MGMsMHhjMiwweDEyLDB4MTAsMHg4NCwweGM4LDB4MjIsMHgxMiwweDA4LDB4MDQsMHgwMiwweDAzLDB4MDAsMHg4OCB9IH0sCi17ICAxNiwgMHhmNDQwLCAwLCB7MHgwMCwweDIxLDB4MDAsMHgwYywweDBjLDB4NDAsMHg0MSwweDMwLDB4MDAsMHg4NCwweDIwLDB4MTAsMHgwOCwweDAwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4ODIsMHgwNiwweDIwLDB4MDgsMHg4YyB9IH0sCi17ICAxNiwgMHhmNDYwLCAwLCB7MHgzMiwweDIyLDB4MGMsMHg4OCwweDgxLDB4MjYsMHgyMCwweDRkLDB4ODgsMHgyMywweDIyLDB4ODAsMHg4OCwweDgzLDB4MDYsMHgyMCB9IH0sCi17ICAxNiwgMHhmNDcwLCAwLCB7MHgwOCwweDg4LDB4MDAsMHgyMywweDA0LDB4OGEsMHg4MSwweDM2LDB4MjAsMHg0YiwweDg4LDB4MzIsMHgyMiwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4MDIsMHgwMiwweDAwLDB4MDksMHg4MCB9IH0sCi17ICAxNiwgMHhmNDkwLCAwLCB7MHgzMiwweDIwLDB4MDQsMHg4OCwweDYwLDB4MjIsMHgwMCwweDg5LDB4ODQsMHgwMCwweDIwLDB4MDgsMHg5OCwweDAwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNGEwLCAwLCB7MHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMiwweDNhLDB4ODAsMHg0OCwweDgwLDB4MzAsMHgyMCwweDAwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDBhLDB4YzQsMHgxYSwweGExLDB4ODAsMHhhOCB9IH0sCi17ICAxNiwgMHhmNGMwLCAwLCB7MHg0MSwweDJhLDB4MTAsMHhjYSwweGM3LDB4MWEsMHhhMSwweDA0LDB4YWQsMHg3MSwweDJhLDB4MTgsMHg0YSwweGQ0LDB4MDYsMHhiMSB9IH0sCi17ICAxNiwgMHhmNGQwLCAwLCB7MHgwMCwweGE4LDB4NzEsMHgyYSwweDEwLDB4MDgsMHg4NCwweDI2LDB4MjksMHgwNiwweGFjLDB4NTIsMHgyYSwweDEwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4MDQsMHgyYSwweDAxLDB4NDEsMHg4MCB9IH0sCi17ICAxNiwgMHhmNGYwLCAwLCB7MHg0MiwweDIwLDB4MWMsMHgwMCwweDA0LDB4MGEsMHgwMSwweDA5LDB4ODQsMHg1MSwweDIwLDB4MWMsMHg4OCwweDQ0LDB4MDIsMHgwMSB9IH0sCi17ICAxNiwgMHhmNTAwLCAwLCB7MHgwOCwweDgwLDB4NDAsMHgyMCwweDEwLDB4NGEsMHg0NywweDAyLDB4MDEsMHg0OCwweDgwLDB4NjMsMHgyMCwweDEwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNTEwLCAwLCB7MHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAwLDB4YzQsMHgxMCwweDIxLDB4ODEsMHgwYyB9IH0sCi17ICAxNiwgMHhmNTIwLCAwLCB7MHg0MSwweDAyLDB4MGMsMHgwMCwweGMwLDB4MjAsMHg2MSwweDBkLDB4MGUsMHg3MiwweDAyLDB4MWMsMHg0MCwweGM0LDB4MDgsMHgzMSB9IH0sCi17ICAxNiwgMHhmNTMwLCAwLCB7MHgwNCwweDE4LDB4NDIsMHgwMiwweDEwLDB4ODAsMHg4NywweDIwLDB4YjEsMHhjNCwweDBjLDB4NTMsMHgwMiwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweDIwLDB4MDcsMHgyNCwweDAxLDB4Y2MsMHgwMCB9IH0sCi17ICAxNiwgMHhmNTUwLCAwLCB7MHg3MiwweDQwLDB4MTQsMHgwMCwweDA0LDB4MjQsMHgwMSwweDA4LDB4MDAsMHg3MywweDQxLDB4MTAsMHhjMCwweDA3LDB4MzAsMHgxMSB9IH0sCi17ICAxNiwgMHhmNTYwLCAwLCB7MHhjYywweDAwLDB4NzEsMHgwMSwweDEwLDB4MDIsMHgwNCwweDIwLDB4ODEsMHg0NiwweDEwLDB4NDIsMHg0MCwweDEwLDB4MDIsMHgwNCB9IH0sCi17ICAxNiwgMHhmNTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAwLDB4YzUsMHgxMCwweDIxLDB4MDAsMHgwOCB9IH0sCi17ICAxNiwgMHhmNTgwLCAwLCB7MHg2MiwweDAyLDB4MWMsMHg5MCwweGM1LDB4MjQsMHgyMSwweDAwLDB4MGMsMHg3MCwweDgyLDB4MWMsMHgxMCwweGM0LDB4MjAsMHgzMSB9IH0sCi17ICAxNiwgMHhmNTkwLCAwLCB7MHg4OCwweDAyLDB4NDAsMHgwNiwweDFjLDB4MDAsMHg4NSwweDAwLDB4YTEsMHgwMCwweDBjLDB4NDAsMHg0MiwweDAwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIyLDB4MDUsMHgxNCwweDgwLDB4MDEsMHgyMCB9IH0sCi17ICAxNiwgMHhmNWIwLCAwLCB7MHgzMCwweDA4LDB4MGMsMHg0MiwweDA2LDB4MDAsMHg4MCwweDAxLDB4MjQsMHg1MSwweDA4LDB4MGMsMHgwMiwweDQxLDB4MDAsMHg4MCB9IH0sCi17ICAxNiwgMHhmNWMwLCAwLCB7MHg0YywweDIwLDB4MDAsMHgwOCwweDBjLDB4MzAsMHg0MiwweDA0LDB4MDAsMHgwNCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4YzYsMHgyNCwweDIwLDB4MDAsMHgwYyB9IH0sCi17ICAxNiwgMHhmNWUwLCAwLCB7MHgzMiwweGMyLDB4MDQsMHg4MCwweGM3LDB4MzAsMHgyMCwweDAwLDB4MGMsMHg1MywweGMyLDB4MDQsMHgxMCwweGMyLDB4MjgsMHg3MCB9IH0sCi17ICAxNiwgMHhmNWYwLCAwLCB7MHgwYywweDA5LDB4MDIsMHgwMiwweDRjLDB4ODAsMHg4MSwweDA0LDB4MzAsMHgwOSwweDBjLDB4MDIsMHg0MiwweDEwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDgwLDB4MDEsMHgzOCwweDAwLDB4MDIsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjEwLCAwLCB7MHgxMiwweDQwLDB4MGMsMHgyMCwweDA3LDB4MzQsMHgwNCwweDAyLDB4MDAsMHg2MywweDAxLDB4MDgsMHgxMCwweDAwLDB4MjQsMHgxMCB9IH0sCi17ICAxNiwgMHhmNjIwLCAwLCB7MHgwNCwweDAwLDB4MDIsMHgwMSwweDA0LDB4ODIsMHgwMSwweDA4LDB4ODAsMHgwOSwweDEwLDB4MDIsMHg0MCwweDEwLDB4MDAsMHgwNCB9IH0sCi17ICAxNiwgMHhmNjMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MjAsMHgxMCwweDgwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjQwLCAwLCB7MHgyMCwweDgwLDB4MDAsMHhmMCwweDIwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgyMCwweDgwLDB4MDAsMHhkMCwweDgwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgxMCwweDAwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4Y2MsMHg0MCB9IH0sCi17ICAxNiwgMHhmNjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2MsMHgzYywweDEwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNjcwLCAwLCB7MHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4MDAsMHg5MCB9IH0sCi17ICAxNiwgMHhmNjgwLCAwLCB7MHg4MCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MTAsMHhhMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDEwLDB4OGMsMHgwOCB9IH0sCi17ICAxNiwgMHhmNjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM0LDB4MWEsMHhiZSwweDE3LDB4ODAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNmEwLCAwLCB7MHgzZSwweDQwLDB4MjYsMHg2ZiwweGJhLDB4ZTMsMHgyNCwweDgwLDB4MDAsMHgxNiwweDU5LDB4YmQsMHg4MiwweDgxLDB4ODIsMHhkOCB9IH0sCi17ICAxNiwgMHhmNmIwLCAwLCB7MHg4MCwweDAwLDB4MDAsMHgxOSwweDk5LDB4ODYsMHg4MCwweDY0LDB4ODAsMHhjMCwweDNmLDB4ZDksMHg5OSwweDgwLDB4MDAsMHgwMSB9IH0sCi17ICAxNiwgMHhmNmMwLCAwLCB7MHhmMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA2LDB4MTYsMHgwMiwweDk0LDB4MDAsMHgxNiB9IH0sCi17ICAxNiwgMHhmNmQwLCAwLCB7MHhjMCwweDE2LDB4OTQsMHg4MiwweDkwLDB4MTYsMHgxMCwweDgwLDB4MjEsMHgxOCwweDI4LDB4MjgsMHgwMiwweDBhLDB4MDIsMHgwOCB9IH0sCi17ICAxNiwgMHhmNmUwLCAwLCB7MHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHg4MiwweDgwLDB4MTQsMHgwMCwweDAxLDB4MTQsMHgxMSwweGEwLDB4NDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg4NCB9IH0sCi17ICAxNiwgMHhmNzAwLCAwLCB7MHgwMiwweDg0LDB4YTgsMHg4MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4OTEsMHgyMiwweDg0LDB4NDEsMHhhMiwweDA4LDB4MjQsMHgwMSB9IH0sCi17ICAxNiwgMHhmNzEwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDg0LDB4MDEsMHg0NCwweDAxLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZSwweGY3LDB4ZmYsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGU3LDB4YjcsMHhmZiB9IH0sCi17ICAxNiwgMHhmNzQwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhmZSwweDdmLDB4ZjcsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzNiwweGJmLDB4ZmUsMHhkZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweGY3LDB4ZGYsMHhmZiB9IH0sCi17ICAxNiwgMHhmNzcwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2QsMHhiNywweGI3LDB4ZWYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmNzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgxZiwweGRmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweGRmLDB4ZGYsMHhmZiB9IH0sCi17ICAxNiwgMHhmN2EwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhlZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmN2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmN2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGJmLDB4N2YsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4N2YsMHhmNyB9IH0sCi17ICAxNiwgMHhmN2QwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhkZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmN2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmN2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweDdlLDB4ZmYsMHhmZiwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZlLDB4ZmYsMHhmZiB9IH0sCi17ICAxNiwgMHhmODAwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmODEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzNywweGZmLDB4NmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiB9IH0sCi17ICAxNiwgMHhmODMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmODQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmODUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmODYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmODcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDIwLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmODgwLCAwLCB7MHgzMCwweDAwLDB4NDMsMHgwYywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmODkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCB9IH0sCi17ICAxNiwgMHhmOTAwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHhjMCwweDMwLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweGMwLDB4MzAsMHhjMCwweDMwLDB4YzAsMHgzMCB9IH0sCi17ICAxNiwgMHhmOWMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmOWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiB9IH0sCi17ICAxNiwgMHhmYTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiB9IH0sCi17ICAxNiwgMHhmYTgwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4MzAsMHhjMCwweDMwLDB4YzAsMHgwZiB9IH0sCi17ICAxNiwgMHhmYWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMywweDZiLDB4MDAsMHhjMCwweDAwLDB4Y2YsMHgyYyB9IH0sCi17ICAxNiwgMHhmYjQwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweGMwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgzMCB9IH0sCi17ICAxNiwgMHhmYzAwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhjMCwweDNmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmYzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmY2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmY2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweGMwLDB4M2YsMHhjMCwweDNmLDB4YzAsMHgzMCB9IH0sCi17ICAxNiwgMHhmY2MwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmY2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmY2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmY2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgwZiB9IH0sCi17ICAxNiwgMHhmZDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGMwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgzZiB9IH0sCi17ICAxNiwgMHhmZDgwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4M2YsMHhjMCwweDNmLDB4YzAsMHgwZiB9IH0sCi17ICAxNiwgMHhmZGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgzMywweDVkLDB4ODAsMHhjMCwweDAwLDB4ZmQsMHhhYyB9IH0sCi17ICAxNiwgMHhmZTQwLCAwLCB7MHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCB9IH0sCi17ICAxNiwgMHhmZjAwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHhjMCwweDMwLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweGMwLDB4MzAsMHhjMCwweDMwLDB4YzAsMHgzMCB9IH0sCi17ICAxNiwgMHhmZmMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHhmZmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiB9IH0sCi17ICAxNiwgMHg4MDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiB9IH0sCi17ICAxNiwgMHg4MDkwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4MzAsMHhjMCwweDMwLDB4YzAsMHgwZiB9IH0sCi17ICAxNiwgMHg4MGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMywweDc0LDB4YzAsMHhjMCwweDAwLDB4ZjAsMHhlYyB9IH0sCi17ICAxNiwgMHg4MTUwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweGMwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgzMCB9IH0sCi17ICAxNiwgMHg4MjEwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhjMCwweDNmLDB4YzAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOSwweDg2LDB4MTAsMHg4MCwweDMwLDB4ODIsMHgzZCB9IH0sCi17ICAxNiwgMHg4MmQwLCAwLCB7MHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgwZiB9IH0sCi17ICAxNiwgMHg4MzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4MzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGMwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgzZiB9IH0sCi17ICAxNiwgMHg4MzkwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4M2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4M2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4M2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4M2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4M2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZiwweDAwLDB4M2YsMHhjMCwweDNmLDB4YzAsMHgwZiB9IH0sCi17ICAxNiwgMHg4M2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzcsMHg2NSwweDI1LDB4ZTQsMHg4MCwweDAwLDB4YjAsMHg4OCB9IH0sCi17ICAxNiwgMHg4NDUwLCAwLCB7MHhhYiwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgyMCwweDAxLDB4MDIsMHgwMiwweDAwLDB4MDAsMHgzMCwweDAwLDB4NDMsMHgwMCB9IH0sCi17ICAxNiwgMHg4NGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4NzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4N2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ODkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4OWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4YzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4Y2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg4ZmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGQwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDAsMHg0NCwweDcyLDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMyB9IH0sCi17ICAxNiwgMHg5MGUwLCAwLCB7MHgzMCwweDAwLDB4NDAsMHgwYywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxNiwgMHg5MTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDUsMHgzMCwweDAwLDB4YTAsMHgwMSB9IH0sCi17ICAxNiwgMHg5MTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwMCwweGUxLDB4NWEsMHgwMCwweDAwLDB4MDAsMHgwMCB9IH0sCi17ICAxMiwgMHg5MTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMCAsIDB4MDAwMCwgMSwgezAgfX0KLX07Ci0vLyBWRVJTSU9OPTEuMS4xLjEzMQotLy8gREFURT0yMDAxZGVjMDYKLS8vIFBST0RVQ1Q9RU1JIDJ8NgotLyoKLSAqIFRoaXMgZmlybXdhcmUgaXMgZm9yIHRoZSBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UKLSAqCi0gKiBUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMiBFbWFnaWMKLSAqIGFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZAotICogb3IgcHVibGljIGFjY2VzcyB0byB0aGlzIGZpcm13YXJlIHdoaWNoIGlzIGEgdHJhZGUgc2VjcmV0IG9mIEVtYWdpYywKLSAqIGFuZCB3aGljaCBtYXkgbm90IGJlIHJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8KLSAqIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IEVtYWdpYydzIHdyaXR0ZW4gY29uc2VudC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCB0aGUKLSAqIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZS4gRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YKLSAqIGFueSBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwKLSAqIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuCi0gKi8KLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGdfRmlybXdhcmVbXSA9IHsKLXsgICAzLDB4MDAwMCwwLHsweDAyLDB4NDMsMHg1Nn0gfSwKLXsgICAzLDB4MDAwMywwLHsweDAyLDB4NGIsMHhjZH0gfSwKLXsgICAzLDB4MDAwYiwwLHsweDAyLDB4NGIsMHhkMn0gfSwKLXsgICAzLDB4MDAxMywwLHsweDAyLDB4NGIsMHg5Mn0gfSwKLXsgICAzLDB4MDAxYiwwLHsweDAyLDB4NGIsMHhkNX0gfSwKLXsgICAzLDB4MDAyMywwLHsweDAyLDB4MWIsMHgzOX0gfSwKLXsgICAzLDB4MDAyYiwwLHsweDAyLDB4NDMsMHhlMn0gfSwKLXsgICAzLDB4MDAzMywwLHsweDAyLDB4M2YsMHhmM30gfSwKLXsgICAzLDB4MDAzYiwwLHsweDAyLDB4NGIsMHhjMH0gfSwKLXsgICAzLDB4MDA0MywwLHsweDAyLDB4NDcsMHgwMH0gfSwKLXsgICAzLDB4MDA0YiwwLHsweDAyLDB4M2YsMHhmY30gfSwKLXsgICAzLDB4MDA1MywwLHsweDAyLDB4MzcsMHhmYX0gfSwKLXsgICAzLDB4MDA1YiwwLHsweDAyLDB4NGIsMHhjN30gfSwKLXsgICAzLDB4MDA2MywwLHsweDAyLDB4NDYsMHhmY30gfSwKLXsgIDE2LDB4MDUwMCwwLHsweDEyLDB4MDEsMHgxMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg2YSwweDA4LDB4MDEsMHgwMSwweDAwLDB4MDEsMHgwMSwweDAyfSB9LAoteyAgMTYsMHgwNTEwLDAsezB4MDAsMHgwMSwweDA5LDB4MDIsMHhiOCwweDAxLDB4MDMsMHgwMSwweDAwLDB4ODAsMHhhMCwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDA1MjAsMCx7MHgwMSwweDAxLDB4MDAsMHgwMCwweDBhLDB4MjQsMHgwMSwweDAwLDB4MDEsMHg1NiwweDAwLDB4MDIsMHgwMSwweDAyLDB4MGMsMHgyNH0gfSwKLXsgIDE2LDB4MDUzMCwwLHsweDAyLDB4MDEsMHgwMSwweDAxLDB4MDAsMHgwNiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHgyNCwweDA2LDB4MDUsMHgwMSwweDAyfSB9LAoteyAgMTYsMHgwNTQwLDAsezB4MDMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDl9IH0sCi17ICAxNiwweDA1NTAsMCx7MHgyNCwweDAzLDB4MDIsMHgwNCwweDAzLDB4MDAsMHgwNSwweDAwLDB4MGMsMHgyNCwweDAyLDB4MDMsMHgwMSwweDAyLDB4MDAsMHgwMn0gfSwKLXsgIDE2LDB4MDU2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHgyNCwweDA2LDB4MDYsMHgwMywweDAyLDB4MDMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgwNTcwLDAsezB4MDAsMHgwOSwweDI0LDB4MDMsMHgwNCwweDAxLDB4MDEsMHgwMCwweDA2LDB4MDAsMHgwOSwweDA0LDB4MDEsMHgwMCwweDAwLDB4MDF9IH0sCi17ICAxNiwweDA1ODAsMCx7MHgwMiwweDAwLDB4MDAsMHgwOSwweDA0LDB4MDEsMHgwMSwweDAyLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwMX0gfSwKLXsgIDE2LDB4MDU5MCwwLHsweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxLDB4MDIsMHgwMiwweDEwLDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJifSB9LAoteyAgMTYsMHgwNWEwLDAsezB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1LDB4MGEsMHgwNSwweDg0LDB4MDEsMHgwMSwweDAwLDB4OGYsMHgwNywweDI1LDB4MDF9IH0sCi17ICAxNiwweDA1YjAsMCx7MHgwMSwweDAwLDB4MDAsMHgwMCwweDA5LDB4MDUsMHg4ZiwweDAxLDB4MDMsMHgwMCwweDAxLDB4MDYsMHgwMCwweDA5LDB4MDQsMHgwMX0gfSwKLXsgIDE2LDB4MDVjMCwwLHsweDAyLDB4MDIsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDAxLDB4MDAsMHgwMSwweDAwLDB4MGUsMHgyNCwweDAyfSB9LAoteyAgMTYsMHgwNWQwLDAsezB4MDEsMHgwNiwweDAyLDB4MTAsMHgwMiwweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDA5LDB4MDUsMHgwYSwweDA1LDB4NGN9IH0sCi17ICAxNiwweDA1ZTAsMCx7MHgwMiwweDAxLDB4MDAsMHg4ZiwweDA3LDB4MjUsMHgwMSwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDksMHgwNSwweDhmLDB4MDEsMHgwM30gfSwKLXsgIDE2LDB4MDVmMCwwLHsweDAwLDB4MDEsMHgwNiwweDAwLDB4MDksMHgwNCwweDAxLDB4MDMsMHgwMiwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxfSB9LAoteyAgMTYsMHgwNjAwLDAsezB4MDEsMHgwMCwweDAxLDB4MDAsMHgwZSwweDI0LDB4MDIsMHgwMSwweDA2LDB4MDMsMHgxOCwweDAyLDB4NDQsMHhhYywweDAwLDB4ODB9IH0sCi17ICAxNiwweDA2MTAsMCx7MHhiYiwweDAwLDB4MDksMHgwNSwweDBhLDB4MDUsMHg3MiwweDAzLDB4MDEsMHgwMCwweDhmLDB4MDcsMHgyNSwweDAxLDB4MDEsMHgwMH0gfSwKLXsgIDE2LDB4MDYyMCwwLHsweDAwLDB4MDAsMHgwOSwweDA1LDB4OGYsMHgwMSwweDAzLDB4MDAsMHgwMSwweDA2LDB4MDAsMHgwOSwweDA0LDB4MDEsMHgwNCwweDAyfSB9LAoteyAgMTYsMHgwNjMwLDAsezB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwMSwweDAwLDB4MDEsMHgwMCwweDBiLDB4MjQsMHgwMiwweDAxLDB4MDJ9IH0sCi17ICAxNiwweDA2NDAsMCx7MHgwMywweDE4LDB4MDEsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1LDB4MGEsMHgwNSwweDQ2LDB4MDIsMHgwMSwweDAwLDB4OGYsMHgwN30gfSwKLXsgIDE2LDB4MDY1MCwwLHsweDI1LDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA5LDB4MDUsMHg4ZiwweDAxLDB4MDMsMHgwMCwweDAxLDB4MDYsMHgwMCwweDA5fSB9LAoteyAgMTYsMHgwNjYwLDAsezB4MDQsMHgwMiwweDAwLDB4MDAsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMiwweDAxLDB4MDEsMHgwMSwweDAyLDB4MDB9IH0sCi17ICAxNiwweDA2NzAsMCx7MHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyLDB4MDEsMHgwMiwweDAyLDB4MTAsMHgwM30gfSwKLXsgIDE2LDB4MDY4MCwwLHsweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDUsMHg4YywweDA1LDB4ODQsMHgwMSwweDAxfSB9LAoteyAgMTYsMHgwNjkwLDAsezB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAyLDB4MDIsMHgwMSwweDAxLDB4MDJ9IH0sCi17ICAxNiwweDA2YTAsMCx7MHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgxMSwweDI0LDB4MDIsMHgwMSwweDAyLDB4MDMsMHgxOH0gfSwKLXsgIDE2LDB4MDZiMCwwLHsweDAzLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDhjLDB4MDUsMHg0NiwweDAyfSB9LAoteyAgMTYsMHgwNmMwLDAsezB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNSwweDBjLDB4MDksMHgwMSwweGExLDB4MDF9IH0sCi17ICAxNiwweDA2ZDAsMCx7MHgwNSwweDBjLDB4MDksMHhlOSwweDA1LDB4MGMsMHgwOSwweGVhLDB4MTUsMHgwMCwweDI1LDB4MDEsMHg5NSwweDAyLDB4NzUsMHgwMX0gfSwKLXsgIDE2LDB4MDZlMCwwLHsweDgxLDB4NDIsMHg5NSwweDAxLDB4NzUsMHgwNiwweDgxLDB4MDEsMHgwNSwweDBjLDB4MDksMHgwMCwweDA1LDB4MGMsMHgwOSwweDAwfSB9LAoteyAgMTYsMHgwNmYwLDAsezB4MTUsMHgwMCwweDI1LDB4MDEsMHg5NSwweDAyLDB4NzUsMHgwMSwweDkxLDB4MDYsMHg5NSwweDAxLDB4NzUsMHgwNiwweDkxLDB4MDN9IH0sCi17ICAxNiwweDA3MDAsMCx7MHhjMCwweDA0LDB4MDMsMHgwOSwweDA0LDB4MTgsMHgwMywweDQ1LDB4MDAsMHg0ZCwweDAwLDB4NDEsMHgwMCwweDQ3LDB4MDAsMHg0OX0gfSwKLXsgIDE2LDB4MDcxMCwwLHsweDAwLDB4NDMsMHgwMCwweDIwLDB4MDAsMHg0NywweDAwLDB4NmQsMHgwMCwweDYyLDB4MDAsMHg0OCwweDAwLDB4MWUsMHgwMywweDQ1fSB9LAoteyAgMTYsMHgwNzIwLDAsezB4MDAsMHg2ZCwweDAwLDB4NjEsMHgwMCwweDY3LDB4MDAsMHg2OSwweDAwLDB4NjMsMHgwMCwweDIwLDB4MDAsMHg0NSwweDAwLDB4NGR9IH0sCi17ICAxNiwweDA3MzAsMCx7MHgwMCwweDQ5LDB4MDAsMHgyMCwweDAwLDB4MzIsMHgwMCwweDdjLDB4MDAsMHgzNiwweDAwLDB4MmEsMHgwMywweDQzLDB4MDAsMHg2Zn0gfSwKLXsgIDE2LDB4MDc0MCwwLHsweDAwLDB4NmUsMHgwMCwweDY2LDB4MDAsMHg2OSwweDAwLDB4NjcsMHgwMCwweDc1LDB4MDAsMHg3MiwweDAwLDB4NjEsMHgwMCwweDc0fSB9LAoteyAgMTYsMHgwNzUwLDAsezB4MDAsMHg2OSwweDAwLDB4NmYsMHgwMCwweDZlLDB4MDAsMHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwLDB4Njl9IH0sCi17ICAxNiwweDA3NjAsMCx7MHgwMCwweDZlLDB4MDAsMHg2NywweDAwLDB4MjIsMHgwMywweDQ5LDB4MDAsMHg2ZSwweDAwLDB4NzQsMHgwMCwweDY1LDB4MDAsMHg3Mn0gfSwKLXsgIDE2LDB4MDc3MCwwLHsweDAwLDB4NjYsMHgwMCwweDYxLDB4MDAsMHg2MywweDAwLDB4NjUsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyfSB9LAoteyAgIDksMHgwNzgwLDAsezB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwweDY3LDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgwNzg5LDAsezB4NzQsMHgwMCwweGY1LDB4ODYsMHg5MCwweGZkLDB4YTUsMHg3YywweDA1LDB4YTMsMHhlNSwweDgyLDB4NDUsMHg4MywweDcwLDB4Zjl9IH0sCi17ICAgMSwweDA3OTksMCx7MHgyMn0gfSwKLXsgIDE2LDB4MDc5YSwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4NDQsMHg4MCwweGYwLDB4NDMsMHg4NywweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIyfSB9LAoteyAgMTYsMHgwN2FhLDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHg4ZiwweGUwLDB4YzAsMHhlMCwweDhlLDB4ZTAsMHhjMCwweGUwLDB4OGQsMHhlMCwweGMwLDB4ZTB9IH0sCi17ICAxNiwweDA3YmEsMCx7MHg4YywweGUwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4MDUsMHg4NiwweGMwLDB4ODQsMHhjMCwweDg1LDB4ZTUsMHgxOH0gfSwKLXsgIDE2LDB4MDdjYSwwLHsweGI0LDB4MDIsMHgwMywweDAyLDB4MDcsMHhkOSwweGI0LDB4MDEsMHgwMywweDAyLDB4MDcsMHhkZSwweDAyLDB4MDcsMHhmYSwweDdkfSB9LAoteyAgMTYsMHgwN2RhLDAsezB4MDEsMHgwMiwweDA4LDB4MTYsMHhlNSwweDE5LDB4MTQsMHhmNSwweDE5LDB4YzMsMHhiNSwweDEzLDB4MDMsMHgwMiwweDA3LDB4ZjV9IH0sCi17ICAxNiwweDA3ZWEsMCx7MHg1MCwweDA5LDB4YjQsMHgwMCwweGVhLDB4NzUsMHgxOSwweDBhLDB4MDIsMHgwNywweGQ5LDB4N2QsMHgwMCwweDAyLDB4MDgsMHgxNn0gfSwKLXsgIDE2LDB4MDdmYSwwLHsweGU1LDB4MTksMHgxNCwweGY1LDB4MTksMHhjMywweGI1LDB4MTQsMHgwMywweDAyLDB4MDgsMHgxMSwweDUwLDB4MDksMHhiNCwweDAwfSB9LAoteyAgMTYsMHgwODBhLDAsezB4Y2UsMHg3NSwweDE5LDB4MGEsMHgwMiwweDA3LDB4ZDksMHg3ZCwweDAyLDB4MDIsMHgwOCwweDE2LDB4N2MsMHgwNSwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDA4MWEsMCx7MHg5OSwweGUwLDB4NTQsMHg0MCwweGRjLDB4MDMsMHgwMiwweDA4LDB4NDMsMHhiNCwweDAwLDB4MWQsMHg5MCwweDdmLDB4ZTMsMHg3NH0gfSwKLXsgIDE2LDB4MDgyYSwwLHsweDdiLDB4ZjAsMHhhMywweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4NDAsMHhmMCwweDkwLDB4N2YsMHhlNSwweGYwfSB9LAoteyAgMTYsMHgwODNhLDAsezB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4MDIsMHgwOCwweDE4LDB4MDUsMHg4NiwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODB9IH0sCi17ICAxNiwweDA4NGEsMCx7MHhmMCwweDkwLDB4NzksMHg2NSwweGUwLDB4YjQsMHgwMSwweDAzLDB4MDIsMHgwOCwweDllLDB4YjQsMHgwMiwweDAzLDB4MDIsMHgwOH0gfSwKLXsgIDE2LDB4MDg1YSwwLHsweDk2LDB4YjQsMHgwMywweDAzLDB4MDIsMHgwOCwweDhlLDB4YjQsMHgwNCwweDAzLDB4MDIsMHgwOCwweDg2LDB4YjQsMHgwNSwweDAzfSB9LAoteyAgMTYsMHgwODZhLDAsezB4MDIsMHgwOCwweDdlLDB4YjQsMHgwNiwweDAzLDB4MDIsMHgwOCwweDc2LDB4MDIsMHgwOCwweGY0LDB4MDUsMHg4NiwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDA4N2EsMCx7MHg2YywweDAyLDB4MDgsMHhlOSwweDA1LDB4ODYsMHg5MCwweDdmLDB4NmMsMHgwMiwweDA4LDB4ZGQsMHgwNSwweDg2LDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MDg4YSwwLHsweDZjLDB4MDIsMHgwOCwweGNmLDB4MDUsMHg4NiwweDkwLDB4N2YsMHg2YywweDAyLDB4MDgsMHhjMCwweDA1LDB4ODYsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgwODlhLDAsezB4NmMsMHgwMiwweDA4LDB4YjIsMHgwNSwweDg2LDB4OTAsMHg3ZiwweDZjLDB4ZjAsMHgwMCwweGYwLDB4MDAsMHhmMCwweDAwLDB4ZjB9IH0sCi17ICAxNiwweDA4YWEsMCx7MHgwZCwweGVkLDB4YjQsMHgyZCwweGY0LDB4MDIsMHgwOCwweGY0LDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4MGQsMHhlZH0gfSwKLXsgIDE2LDB4MDhiYSwwLHsweGI0LDB4MmQsMHhmNSwweDAyLDB4MDgsMHhmNCwweGYwLDB4MDAsMHhmMCwweDAwLDB4ZjAsMHgwMCwweGYwLDB4MGQsMHhlZCwweGI0fSB9LAoteyAgMTYsMHgwOGNhLDAsezB4MzEsMHhmNCwweDAyLDB4MDgsMHhmNCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweDBkLDB4ZWQsMHhiNCwweDMxLDB4ZjV9IH0sCi17ICAxNiwweDA4ZGEsMCx7MHgwMiwweDA4LDB4ZjQsMHhmMCwweGYwLDB4ZjAsMHhmMCwweDBkLDB4ZWQsMHhiNCwweDYxLDB4ZjcsMHgwMiwweDA4LDB4ZjQsMHhmMH0gfSwKLXsgIDE2LDB4MDhlYSwwLHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHgwZCwweGVkLDB4YjQsMHg2MSwweGY1LDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwfSB9LAoteyAgMTYsMHgwOGZhLDAsezB4ZDAsMHg4NSwweGQwLDB4ODQsMHgwNSwweDg2LDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmR9IH0sCi17ICAgNSwweDA5MGEsMCx7MHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwfSB9LAoteyAgIDYsMHgwOTBmLDAsezB4ZmYsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfSB9LAoteyAgMTYsMHgwOTE1LDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHhjMCwweDgyLDB4YzAsMHg4MywweDkwLDB4N2YsMHg2ZiwweGU1LDB4MGMsMHhmMCwweGU1LDB4MGR9IH0sCi17ICAxMywweDA5MjUsMCx7MHhmMCwweGU1LDB4MGUsMHhmMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn0gfSwKLXsgIDE2LDB4MDkzMiwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4OGYsMHhlMCwweGMwLDB4ZTAsMHg4ZSwweGUwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzfSB9LAoteyAgMTYsMHgwOTQyLDAsezB4MDUsMHg4NiwweGMwLDB4ODQsMHhjMCwweDg1LDB4OTAsMHg3OSwweDcwLDB4ZTAsMHhmZiwweGJmLDB4MDAsMHgwMywweDAyLDB4MGF9IH0sCi17ICAxNiwweDA5NTIsMCx7MHhiOCwweDkwLDB4N2YsMHg5NiwweGUwLDB4NDQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MDk2MiwwLHsweDYyLDB4ZTAsMHgwNSwweDg2LDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3ZiwweDk2LDB4ZTAsMHg1NCwweDdmfSB9LAoteyAgMTYsMHgwOTcyLDAsezB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDc5LDB4ODgsMHhlMCwweGI0LDB4MDEsMHgwMywweDAyLDB4MDl9IH0sCi17ICAxNiwweDA5ODIsMCx7MHhiZSwweGI0LDB4MDIsMHgwMywweDAyLDB4MDksMHhjMywweGI0LDB4MDMsMHgwMywweDAyLDB4MDksMHhhYywweGI0LDB4MDQsMHgwM30gfSwKLXsgIDE2LDB4MDk5MiwwLHsweDAyLDB4MDksMHg5YSwweDA1LDB4ODYsMHgwMiwweDBhLDB4YjIsMHhlZiwweDU0LDB4MDMsMHhmZSwweGVmLDB4MDMsMHgwMywweDU0fSB9LAoteyAgMTYsMHgwOWEyLDAsezB4M2YsMHhmZiwweDkwLDB4N2YsMHg2MywweDA1LDB4ODYsMHgwMiwweDA5LDB4YzksMHhlZiwweDU0LDB4MDMsMHhmZSwweGVmLDB4MDN9IH0sCi17ICAxNiwweDA5YjIsMCx7MHgwMywweDU0LDB4M2YsMHhmZiwweDkwLDB4N2YsMHg2MywweDA1LDB4ODYsMHgwMiwweDBhLDB4MzYsMHgwNSwweDg2LDB4MDIsMHgwYX0gfSwKLXsgIDE2LDB4MDljMiwwLHsweGE1LDB4MDUsMHg4NiwweDAyLDB4MGEsMHg4ZSwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwfSB9LAoteyAgMTYsMHgwOWQyLDAsezB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODZ9IH0sCi17ICAxNiwweDA5ZTIsMCx7MHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMH0gfSwKLXsgIDE2LDB4MDlmMiwwLHsweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZGYsMHhjYSwweGVlLDB4YjQsMHgwMCwweDAzfSB9LAoteyAgMTYsMHgwYTAyLDAsezB4MDIsMHgwYSwweGIyLDB4YjQsMHgwMSwweDAzLDB4MDIsMHgwYSwweDI1LDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDV9IH0sCi17ICAxNiwweDBhMTIsMCx7MHg4NiwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMH0gfSwKLXsgIDE2LDB4MGEyMiwwLHsweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2fSB9LAoteyAgMTYsMHgwYTMyLDAsezB4MDIsMHgwYSwweGIyLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTB9IH0sCi17ICAxMywweDBhNDIsMCx7MHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4Nn0gfSwKLXsgIDE2LDB4MGE0ZiwwLHsweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhkZiwweGQ2fSB9LAoteyAgMTYsMHgwYTVmLDAsezB4ZWUsMHhiNCwweDAwLDB4MDMsMHgwMiwweDBhLDB4YjIsMHhiNCwweDAxLDB4MDMsMHgwMiwweDBhLDB4ODAsMHhlMCwweGUwLDB4ZTB9IH0sCi17ICAxNiwweDBhNmYsMCx7MHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHgwNX0gfSwKLXsgIDE2LDB4MGE3ZiwwLHsweDg2LDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweDA1LDB4ODYsMHgwMiwweDBhLDB4YjIsMHhlMCwweGUwfSB9LAoteyAgMTYsMHgwYThmLDAsezB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTB9IH0sCi17ICAxNiwweDBhOWYsMCx7MHhkZiwweGVjLDB4MDIsMHgwYSwweGIyLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMH0gfSwKLXsgIDE2LDB4MGFhZiwwLHsweGUwLDB4ZGYsMHhmMiwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweGQwLDB4ODUsMHhkMCwweDg0LDB4MDUsMHg4NiwweGQwfSB9LAoteyAgMTQsMHgwYWJmLDAsezB4ODMsMHhkMCwweDgyLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn0gfSwKLXsgIDE2LDB4MGFjZCwwLHsweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhlMCwweGU4LDB4YzAsMHhlMCwweDc4LDB4ZDEsMHhlOCwweDE0LDB4ZjgsMHg3MCwweGZifSB9LAoteyAgMTAsMHgwYWRkLDAsezB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhlMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MjJ9IH0sCi17ICAxNiwweDBhZTcsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweDhmLDB4ZTAsMHhjMCwweGUwLDB4OGUsMHhlMCwweGMwLDB4ZTAsMHg4ZCwweGUwLDB4YzAsMHhlMH0gfSwKLXsgIDE2LDB4MGFmNywwLHsweDhjLDB4ZTAsMHhjMCwweGUwLDB4NzUsMHg4NiwweDAwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHgwNSwweDg2LDB4YzAsMHg4NCwweGMwfSB9LAoteyAgMTYsMHgwYjA3LDAsezB4ODUsMHg3ZSwweDAwLDB4OTAsMHg3OSwweDhlLDB4ZTAsMHhiNCwweDAwLDB4MTYsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDA2LDB4Y2F9IH0sCi17ICAxNiwweDBiMTcsMCx7MHhhMywweGEzLDB4YTMsMHhhMywweGEzLDB4YTMsMHhhMywweGUwLDB4ZmYsMHg5MCwweDc5LDB4OGQsMHhmMCwweDAyLDB4MGIsMHgzOX0gfSwKLXsgIDE2LDB4MGIyNywwLHsweDkwLDB4NzksMHg4ZCwweGUwLDB4ZmYsMHg5MCwweDc5LDB4OGYsMHhlMCwweGZkLDB4OTAsMHg3OSwweDkwLDB4ZTAsMHhmYywweDAyfSB9LAoteyAgMTYsMHgwYjM3LDAsezB4MGIsMHg0NiwweDkwLDB4MDYsMHhjYSwweDA1LDB4ODYsMHg5MCwweDdmLDB4MDAsMHgwNSwweDg2LDB4MDIsMHgwYiwweDUxLDB4OGR9IH0sCi17ICAxNiwweDBiNDcsMCx7MHg4NCwweDhjLDB4ODUsMHgwNSwweDg2LDB4OTAsMHg3ZiwweDAwLDB4MDUsMHg4NiwweGUwLDB4YTMsMHgwNSwweDg2LDB4ZjAsMHhhM30gfSwKLXsgIDE2LDB4MGI1NywwLHsweDBlLDB4ZWUsMHhiNCwweDQwLDB4MDMsMHgwMiwweDBiLDB4NmMsMHgwNSwweDg2LDB4ZGYsMHhlZSwweDkwLDB4NzksMHg4ZSwweDc0fSB9LAoteyAgMTYsMHgwYjY3LDAsezB4MDAsMHhmMCwweDAyLDB4MGIsMHg4MiwweDA1LDB4ODYsMHhhZCwweDg0LDB4YWMsMHg4NSwweDkwLDB4NzksMHg4ZiwweGVkLDB4ZjB9IH0sCi17ICAxNiwweDBiNzcsMCx7MHg5MCwweDc5LDB4OTAsMHhlYywweGYwLDB4OTAsMHg3OSwweDhkLDB4MWYsMHhlZiwweGYwLDB4OTAsMHg3ZiwweGI1LDB4ZWUsMHhmMH0gfSwKLXsgIDE2LDB4MGI4NywwLHsweGQwLDB4ODUsMHhkMCwweDg0LDB4MDUsMHg4NiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZkfSB9LAoteyAgMTEsMHgwYjk3LDAsezB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn0gfSwKLXsgIDE2LDB4MGJhMiwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHg5MCwweDdmLDB4YWUsMHhlMCwweDU0LDB4ZTAsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgwYmIyLDAsezB4N2YsMHg5NiwweGUwLDB4NDQsMHgwOCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwLDB4NTQsMHhiZiwweGYwLDB4OTB9IH0sCi17ICAxNiwweDBiYzIsMCx7MHg3ZiwweGUzLDB4NzQsMHg3YiwweGYwLDB4OTAsMHg3ZiwweGU0LDB4NzQsMHg0MCwweGYwLDB4OTAsMHg3OSwweDc4LDB4ZTAsMHg5MH0gfSwKLXsgIDE2LDB4MGJkMiwwLHsweDdiLDB4NDAsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4NDgsMHhmMCwweDkwLDB4N2YsMHhlNSwweGUwLDB4OTAsMHg3ZiwweGUyfSB9LAoteyAgMTYsMHgwYmUyLDAsezB4NzQsMHgwMCwweGYwLDB4OTAsMHg3ZiwweDk2LDB4ZTAsMHg1NCwweGY3LDB4NDQsMHgwNCwweGYwLDB4OTAsMHg3ZiwweGUzLDB4NzR9IH0sCi17ICAxNiwweDBiZjIsMCx7MHg3YiwweGYwLDB4OTAsMHg3ZiwweGU0LDB4NzQsMHg0MCwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg5MCwweDdiLDB4NDAsMHhmMH0gfSwKLXsgIDE2LDB4MGMwMiwwLHsweDkwLDB4N2YsMHhlMiwweDc0LDB4NDgsMHhmMCwweDkwLDB4N2YsMHhlNSwweGUwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwfSB9LAoteyAgMTYsMHgwYzEyLDAsezB4OTAsMHg3ZiwweDk2LDB4ZTAsMHg1NCwweGYzLDB4ZjAsMHg5MCwweDdmLDB4YWUsMHhlMCwweDQ0LDB4MWYsMHhmMCwweGQwLDB4ODN9IH0sCi17ICAgNywweDBjMjIsMCx7MHhkMCwweDgyLDB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn0gfSwKLXsgIDE2LDB4MGMyOSwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg5MCwweDc5LDB4MmYsMHhlMCwweDY0LDB4ZmYsMHhjMywweDI0fSB9LAoteyAgMTEsMHgwYzM5LDAsezB4MDEsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn0gfSwKLXsgIDE2LDB4MGM0NCwwLHsweGJiLDB4MDEsMHgwNiwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZTAsMHgyMiwweDUwLDB4MDIsMHhlNywweDIyLDB4YmIsMHhmZSwweDAyfSB9LAoteyAgIDksMHgwYzU0LDAsezB4ZTMsMHgyMiwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZTQsMHg5MywweDIyfSB9LAoteyAgMTYsMHgwYzVkLDAsezB4YmIsMHgwMSwweDBjLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlMCwweDIyLDB4NTB9IH0sCi17ICAxNiwweDBjNmQsMCx7MHgwNiwweGU5LDB4MjUsMHg4MiwweGY4LDB4ZTYsMHgyMiwweGJiLDB4ZmUsMHgwNiwweGU5LDB4MjUsMHg4MiwweGY4LDB4ZTIsMHgyMn0gfSwKLXsgIDEzLDB4MGM3ZCwwLHsweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTQsMHg5MywweDIyfSB9LAoteyAgMTYsMHgwYzhhLDAsezB4YmIsMHgwMSwweDA2LDB4ODksMHg4MiwweDhhLDB4ODMsMHhmMCwweDIyLDB4NTAsMHgwMiwweGY3LDB4MjIsMHhiYiwweGZlLDB4MDF9IH0sCi17ICAgMiwweDBjOWEsMCx7MHhmMywweDIyfSB9LAoteyAgMTYsMHgwYzljLDAsezB4ZjgsMHhiYiwweDAxLDB4MGQsMHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweGU4LDB4ZjB9IH0sCi17ICAxNiwweDBjYWMsMCx7MHgyMiwweDUwLDB4MDYsMHhlOSwweDI1LDB4ODIsMHhjOCwweGY2LDB4MjIsMHhiYiwweGZlLDB4MDUsMHhlOSwweDI1LDB4ODIsMHhjOH0gfSwKLXsgICAyLDB4MGNiYywwLHsweGYyLDB4MjJ9IH0sCi17ICAxNiwweDBjYmUsMCx7MHhjMiwweGQ1LDB4ZWMsMHgzMCwweGU3LDB4MDksMHhiMiwweGQ1LDB4ZTQsMHhjMywweDlkLDB4ZmQsMHhlNCwweDljLDB4ZmMsMHhlZX0gfSwKLXsgIDE2LDB4MGNjZSwwLHsweDMwLDB4ZTcsMHgxNSwweGIyLDB4ZDUsMHhlNCwweGMzLDB4OWYsMHhmZiwweGU0LDB4OWUsMHhmZSwweDEyLDB4MGUsMHg0MCwweGMzfSB9LAoteyAgMTYsMHgwY2RlLDAsezB4ZTQsMHg5ZCwweGZkLDB4ZTQsMHg5YywweGZjLDB4ODAsMHgwMywweDEyLDB4MGUsMHg0MCwweDMwLDB4ZDUsMHgwNywweGMzLDB4ZTR9IH0sCi17ICAgNiwweDBjZWUsMCx7MHg5ZiwweGZmLDB4ZTQsMHg5ZSwweGZlLDB4MjJ9IH0sCi17ICAxNiwweDBjZjQsMCx7MHhjNSwweGYwLDB4ZjgsMHhhMywweGUwLDB4MjgsMHhmMCwweGM1LDB4ZjAsMHhmOCwweGU1LDB4ODIsMHgxNSwweDgyLDB4NzAsMHgwMn0gfSwKLXsgICA2LDB4MGQwNCwwLHsweDE1LDB4ODMsMHhlMCwweDM4LDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4MGQwYSwwLHsweGJiLDB4MDEsMHgxMCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTAsMHhmNSwweGYwfSB9LAoteyAgMTYsMHgwZDFhLDAsezB4YTMsMHhlMCwweDIyLDB4NTAsMHgwOSwweGU5LDB4MjUsMHg4MiwweGY4LDB4ODYsMHhmMCwweDA4LDB4ZTYsMHgyMiwweGJiLDB4ZmV9IH0sCi17ICAxNiwweDBkMmEsMCx7MHgwYSwweGU5LDB4MjUsMHg4MiwweGY4LDB4ZTIsMHhmNSwweGYwLDB4MDgsMHhlMiwweDIyLDB4ZTUsMHg4MywweDJhLDB4ZjUsMHg4M30gfSwKLXsgICA4LDB4MGQzYSwwLHsweGU5LDB4OTMsMHhmNSwweGYwLDB4YTMsMHhlOSwweDkzLDB4MjJ9IH0sCi17ICAxNiwweDBkNDIsMCx7MHhlOCwweDhmLDB4ZjAsMHhhNCwweGNjLDB4OGIsMHhmMCwweGE0LDB4MmMsMHhmYywweGU5LDB4OGUsMHhmMCwweGE0LDB4MmMsMHhmY30gfSwKLXsgIDE2LDB4MGQ1MiwwLHsweDhhLDB4ZjAsMHhlZCwweGE0LDB4MmMsMHhmYywweGVhLDB4OGUsMHhmMCwweGE0LDB4Y2QsMHhhOCwweGYwLDB4OGIsMHhmMCwweGE0fSB9LAoteyAgMTYsMHgwZDYyLDAsezB4MmQsMHhjYywweDM4LDB4MjUsMHhmMCwweGZkLDB4ZTksMHg4ZiwweGYwLDB4YTQsMHgyYywweGNkLDB4MzUsMHhmMCwweGZjLDB4ZWJ9IH0sCi17ICAxNiwweDBkNzIsMCx7MHg4ZSwweGYwLDB4YTQsMHhmZSwweGE5LDB4ZjAsMHhlYiwweDhmLDB4ZjAsMHhhNCwweGNmLDB4YzUsMHhmMCwweDJlLDB4Y2QsMHgzOX0gfSwKLXsgIDE1LDB4MGQ4MiwwLHsweGZlLDB4ZTQsMHgzYywweGZjLDB4ZWEsMHhhNCwweDJkLDB4Y2UsMHgzNSwweGYwLDB4ZmQsMHhlNCwweDNjLDB4ZmMsMHgyMn0gfSwKLXsgIDE2LDB4MGQ5MSwwLHsweGViLDB4OWYsMHhmNSwweGYwLDB4ZWEsMHg5ZSwweDQyLDB4ZjAsMHhlOSwweDlkLDB4NDIsMHhmMCwweGU4LDB4OWMsMHg0NSwweGYwfSB9LAoteyAgIDEsMHgwZGExLDAsezB4MjJ9IH0sCi17ICAxNiwweDBkYTIsMCx7MHhiYiwweDAxLDB4MGQsMHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweDAyLDB4MGUsMHhhMX0gfSwKLXsgIDE2LDB4MGRiMiwwLHsweDUwLDB4MDcsMHhlOSwweDI1LDB4ODIsMHhmOCwweDAyLDB4MGUsMHg5NSwweGJiLDB4ZmUsMHgwNywweGU5LDB4MjUsMHg4MiwweGY4fSB9LAoteyAgMTYsMHgwZGMyLDAsezB4MDIsMHgwZSwweGFkLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHgwMiwweDBlLDB4Yjl9IH0sCi17ICAxNiwweDBkZDIsMCx7MHhiYiwweDAxLDB4MGQsMHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweDAyLDB4MGUsMHhkNX0gfSwKLXsgIDE2LDB4MGRlMiwwLHsweDUwLDB4MDcsMHhlOSwweDI1LDB4ODIsMHhmOCwweDAyLDB4MGUsMHhjOSwweGJiLDB4ZmUsMHgwNywweGU5LDB4MjUsMHg4MiwweGY4fSB9LAoteyAgIDQsMHgwZGYyLDAsezB4MDIsMHgwZSwweGUxLDB4MjJ9IH0sCi17ICAxNiwweDBkZjYsMCx7MHhiYiwweDAxLDB4MGQsMHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweDAyLDB4MGYsMHgwNn0gfSwKLXsgIDE2LDB4MGUwNiwwLHsweDUwLDB4MDcsMHhlOSwweDI1LDB4ODIsMHhmOCwweDAyLDB4MGUsMHhlZCwweGJiLDB4ZmUsMHgwNywweGU5LDB4MjUsMHg4MiwweGY4fSB9LAoteyAgIDQsMHgwZTE2LDAsezB4MDIsMHgwZiwweDM3LDB4MjJ9IH0sCi17ICAxNiwweDBlMWEsMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGY4LDB4ZTQsMHg5MywweDcwLDB4MTIsMHg3NCwweDAxLDB4OTMsMHg3MCwweDBkLDB4YTMsMHhhM30gfSwKLXsgIDE2LDB4MGUyYSwwLHsweDkzLDB4ZjgsMHg3NCwweDAxLDB4OTMsMHhmNSwweDgyLDB4ODgsMHg4MywweGU0LDB4NzMsMHg3NCwweDAyLDB4OTMsMHg2OCwweDYwfSB9LAoteyAgIDYsMHgwZTNhLDAsezB4ZWYsMHhhMywweGEzLDB4YTMsMHg4MCwweGRmfSB9LAoteyAgMTYsMHgwZTQwLDAsezB4YmMsMHgwMCwweDBiLDB4YmUsMHgwMCwweDI5LDB4ZWYsMHg4ZCwweGYwLDB4ODQsMHhmZiwweGFkLDB4ZjAsMHgyMiwweGU0LDB4Y2N9IH0sCi17ICAxNiwweDBlNTAsMCx7MHhmOCwweDc1LDB4ZjAsMHgwOCwweGVmLDB4MmYsMHhmZiwweGVlLDB4MzMsMHhmZSwweGVjLDB4MzMsMHhmYywweGVlLDB4OWQsMHhlY30gfSwKLXsgIDE2LDB4MGU2MCwwLHsweDk4LDB4NDAsMHgwNSwweGZjLDB4ZWUsMHg5ZCwweGZlLDB4MGYsMHhkNSwweGYwLDB4ZTksMHhlNCwweGNlLDB4ZmQsMHgyMiwweGVkfSB9LAoteyAgMTYsMHgwZTcwLDAsezB4ZjgsMHhmNSwweGYwLDB4ZWUsMHg4NCwweDIwLDB4ZDIsMHgxYywweGZlLDB4YWQsMHhmMCwweDc1LDB4ZjAsMHgwOCwweGVmLDB4MmZ9IH0sCi17ICAxNiwweDBlODAsMCx7MHhmZiwweGVkLDB4MzMsMHhmZCwweDQwLDB4MDcsMHg5OCwweDUwLDB4MDYsMHhkNSwweGYwLDB4ZjIsMHgyMiwweGMzLDB4OTgsMHhmZH0gfSwKLXsgICA1LDB4MGU5MCwwLHsweDBmLDB4ZDUsMHhmMCwweGVhLDB4MjJ9IH0sCi17ICAxMiwweDBlOTUsMCx7MHhlNiwweGZjLDB4MDgsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZlLDB4MDgsMHhlNiwweGZmLDB4MjJ9IH0sCi17ICAxMiwweDBlYTEsMCx7MHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4MjJ9IH0sCi17ICAxMiwweDBlYWQsMCx7MHhlMiwweGZjLDB4MDgsMHhlMiwweGZkLDB4MDgsMHhlMiwweGZlLDB4MDgsMHhlMiwweGZmLDB4MjJ9IH0sCi17ICAxNiwweDBlYjksMCx7MHhlNCwweDkzLDB4ZmMsMHhhMywweGU0LDB4OTMsMHhmZCwweGEzLDB4ZTQsMHg5MywweGZlLDB4YTMsMHhlNCwweDkzLDB4ZmYsMHgyMn0gfSwKLXsgIDEyLDB4MGVjOSwwLHsweGVjLDB4ZjYsMHgwOCwweGVkLDB4ZjYsMHgwOCwweGVlLDB4ZjYsMHgwOCwweGVmLDB4ZjYsMHgyMn0gfSwKLXsgIDEyLDB4MGVkNSwwLHsweGVjLDB4ZjAsMHhhMywweGVkLDB4ZjAsMHhhMywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHgyMn0gfSwKLXsgIDEyLDB4MGVlMSwwLHsweGVjLDB4ZjIsMHgwOCwweGVkLDB4ZjIsMHgwOCwweGVlLDB4ZjIsMHgwOCwweGVmLDB4ZjIsMHgyMn0gfSwKLXsgIDE2LDB4MGVlZCwwLHsweGQwLDB4ODMsMHhkMCwweDgyLDB4ZTQsMHg5MywweGY2LDB4MDgsMHg3NCwweDAxLDB4OTMsMHhmNiwweDA4LDB4NzQsMHgwMiwweDkzfSB9LAoteyAgIDksMHgwZWZkLDAsezB4ZjYsMHgwOCwweDc0LDB4MDMsMHg5MywweGY2LDB4NzQsMHgwNCwweDczfSB9LAoteyAgMTYsMHgwZjA2LDAsezB4YTgsMHg4MiwweDg1LDB4ODMsMHhmMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MTIsMHgwZiwweDFkLDB4MTIsMHgwZiwweDFkLDB4MTJ9IH0sCi17ICAxNiwweDBmMTYsMCx7MHgwZiwweDFkLDB4MTIsMHgwZiwweDFkLDB4ZTQsMHg3MywweGU0LDB4OTMsMHhhMywweGM1LDB4ODMsMHhjNSwweGYwLDB4YzUsMHg4M30gfSwKLXsgIDE2LDB4MGYyNiwwLHsweGM4LDB4YzUsMHg4MiwweGM4LDB4ZjAsMHhhMywweGM1LDB4ODMsMHhjNSwweGYwLDB4YzUsMHg4MywweGM4LDB4YzUsMHg4MiwweGM4fSB9LAoteyAgIDEsMHgwZjM2LDAsezB4MjJ9IH0sCi17ICAxNiwweDBmMzcsMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGU0LDB4OTMsMHhmMiwweDA4LDB4NzQsMHgwMSwweDkzLDB4ZjIsMHgwOCwweDc0LDB4MDIsMHg5M30gfSwKLXsgICA5LDB4MGY0NywwLHsweGYyLDB4MDgsMHg3NCwweDAzLDB4OTMsMHhmMiwweDc0LDB4MDQsMHg3M30gfSwKLXsgIDE2LDB4MGY1MCwwLHsweGMyLDB4YWYsMHhkMiwweDJjLDB4OTAsMHg3ZiwweDkzLDB4NzQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweDljLDB4NzQsMHhiZiwweGYwfSB9LAoteyAgMTYsMHgwZjYwLDAsezB4OTAsMHg3ZiwweDk2LDB4ZTAsMHg1NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4OTQsMHg3NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4OWR9IH0sCi17ICAxNiwweDBmNzAsMCx7MHg3NCwweGNmLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHg3NCwweGEwLDB4ZjAsMHg5MCwweDdmLDB4OTUsMHg3NCwweGNjLDB4ZjAsMHhlNH0gfSwKLXsgIDE2LDB4MGY4MCwwLHsweDkwLDB4N2YsMHg5ZSwweGYwLDB4YzIsMHgyZCwweGMyLDB4MmEsMHhjMiwweDJiLDB4YzIsMHgyZSwweDkwLDB4NzksMHg3NCwweDA0fSB9LAoteyAgMTYsMHgwZjkwLDAsezB4ZjAsMHgxMiwweDJlLDB4OTQsMHgxMiwweDQ5LDB4ZTIsMHgxMiwweDRiLDB4ZTYsMHgxMiwweDMyLDB4MGQsMHgxMiwweDNiLDB4MGR9IH0sCi17ICAxNiwweDBmYTAsMCx7MHgxMiwweDQxLDB4ZmQsMHgxMiwweDNlLDB4OTksMHhlNSwweDFmLDB4NzAsMHgxOCwweDc1LDB4MWYsMHgwMSwweDEyLDB4MTcsMHhmZn0gfSwKLXsgIDE2LDB4MGZiMCwwLHsweDEyLDB4MmYsMHhmZiwweDEyLDB4NDksMHhjOCwweDEyLDB4NGIsMHhkOCwweDEyLDB4NGIsMHhkYSwweDEyLDB4NDksMHg2ZiwweDEyfSB9LAoteyAgMTYsMHgwZmMwLDAsezB4MWIsMHg0MCwweDEyLDB4MzksMHg4ZCwweDkwLDB4N2YsMHhhZiwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTB9IH0sCi17ICAxNiwweDBmZDAsMCx7MHg0NCwweDFmLDB4ZjAsMHg5MCwweDdmLDB4YWMsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDdmLDB4YWQsMHhmMCwweDkwLDB4N2YsMHhkZX0gfSwKLXsgIDE2LDB4MGZlMCwwLHsweGYwLDB4OTAsMHg3ZiwweGRmLDB4ZjAsMHg5MCwweDdmLDB4YWIsMHhmMCwweDkwLDB4N2YsMHhhOSwweGYwLDB4OTAsMHg3ZiwweGFhfSB9LAoteyAgMTYsMHgwZmYwLDAsezB4ZjAsMHg1MywweDkxLDB4ZWYsMHg0MywweGQ4LDB4MjAsMHhkMiwweGU4LDB4NDMsMHhkOCwweDIwLDB4NDMsMHhhOCwweDgwLDB4MjJ9IH0sCi17ICAxNiwweDEwMDAsMCx7MHg5MCwweDc5LDB4NjMsMHhlMCwweDE0LDB4NjAsMHg0NCwweDE0LDB4NzAsMHgwMiwweDIxLDB4ZDAsMHgxNCwweDcwLDB4MDIsMHg0MX0gfSwKLXsgIDE2LDB4MTAxMCwwLHsweGQ5LDB4MTQsMHg3MCwweDAyLDB4NjEsMHhkNywweDI0LDB4MDQsMHg2MCwweDAyLDB4ODEsMHg1NiwweGU0LDB4OTAsMHg3OSwweDc4fSB9LAoteyAgMTYsMHgxMDIwLDAsezB4ZjAsMHg5MCwweDc5LDB4N2IsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NDQsMHgwMSwweGYwLDB4NTQsMHhmZCwweGYwLDB4OTB9IH0sCi17ICAxNiwweDEwMzAsMCx7MHg3OSwweDdiLDB4ZjAsMHhlNCwweDkwLDB4NzksMHg4OCwweGYwLDB4YTIsMHhhZiwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMn0gfSwKLXsgIDE2LDB4MTA0MCwwLHsweDBiLDB4YTIsMHhlNSwweDEyLDB4NzAsMHgwMiwweDgxLDB4NTYsMHhkMiwweGFmLDB4MjIsMHg5MCwweDc5LDB4MmQsMHhlMCwweDY0fSB9LAoteyAgMTYsMHgxMDUwLDAsezB4MDEsMHg3MCwweDc5LDB4OTAsMHg3ZiwweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4ZmZ9IH0sCi17ICAxNiwweDEwNjAsMCx7MHg3NCwweGZjLDB4ZjAsMHhlNCwweDkwLDB4NzksMHg3OCwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMH0gfSwKLXsgIDE2LDB4MTA3MCwwLHsweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg3YiwweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyfSB9LAoteyAgMTYsMHgxMDgwLDAsezB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTB9IH0sCi17ICAxNiwweDEwOTAsMCx7MHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZX0gfSwKLXsgIDE2LDB4MTBhMCwwLHsweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZkfSB9LAoteyAgMTYsMHgxMGIwLDAsezB4ZjAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg4MiwweDc0LDB4MDR9IH0sCi17ICAxNiwweDEwYzAsMCx7MHhmMCwweDkwLDB4NzksMHg4OCwweDE0LDB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHg5MCwweDc5LDB4MmQsMHhlMH0gfSwKLXsgIDE2LDB4MTBkMCwwLHsweDY0LDB4MDIsMHg3MCwweDc5LDB4OTAsMHg3ZiwweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDM0LDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgxMGUwLDAsezB4ZmYsMHg3NCwweGZjLDB4ZjAsMHhlNCwweDkwLDB4NzksMHg3OCwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZTAsMHg5MCwweDc5LDB4Nzl9IH0sCi17ICAxNiwweDEwZjAsMCx7MHhmMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg3YiwweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNX0gfSwKLXsgIDE2LDB4MTEwMCwwLHsweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwfSB9LAoteyAgMTYsMHgxMTEwLDAsezB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTR9IH0sCi17ICAxNiwweDExMjAsMCx7MHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NH0gfSwKLXsgIDE2LDB4MTEzMCwwLHsweDAyLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg4MiwweDc0fSB9LAoteyAgMTYsMHgxMTQwLDAsezB4MDQsMHhmMCwweDkwLDB4NzksMHg4OCwweDE0LDB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHg5MCwweDc5LDB4MmR9IH0sCi17ICAxNiwweDExNTAsMCx7MHhlMCwweDY0LDB4MDMsMHg2MCwweDAyLDB4ODEsMHg1NiwweDkwLDB4N2YsMHhmMiwweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHg2NH0gfSwKLXsgIDE2LDB4MTE2MCwwLHsweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4ZTQsMHg5MCwweDc5LDB4NzgsMHhmMCwweDkwLDB4NzksMHg3YiwweGUwfSB9LAoteyAgMTYsMHgxMTcwLDAsezB4OTAsMHg3OSwweDc5LDB4ZjAsMHg0NCwweDAxLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhmMCwweGEyLDB4YWZ9IH0sCi17ICAxNiwweDExODAsMCx7MHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MTE5MCwwLHsweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5fSB9LAoteyAgMTYsMHgxMWEwLDAsezB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDExYjAsMCx7MHg3OSwweGUwLDB4NDQsMHgwNCwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4ODIsMHg3NH0gfSwKLXsgIDE2LDB4MTFjMCwwLHsweDA0LDB4ZjAsMHg5MCwweDc5LDB4ODgsMHgxNCwweGYwLDB4ZTUsMHgxMiwweDcwLDB4MDIsMHg4MSwweDU2LDB4ZDIsMHhhZiwweDIyfSB9LAoteyAgMTYsMHgxMWQwLDAsezB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAxLDB4NzAsMHg3YSwweDkwLDB4N2YsMHhmMiwweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzR9IH0sCi17ICAxNiwweDExZTAsMCx7MHg4OCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4ZTQsMHg5MCwweDc5LDB4NzgsMHhmMCwweDkwLDB4NzksMHg3Yn0gfSwKLXsgIDE2LDB4MTFmMCwwLHsweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg0NCwweDAxLDB4ZjAsMHg1NCwweGZkLDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhmMCwweGEyfSB9LAoteyAgMTYsMHgxMjAwLDAsezB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjB9IH0sCi17ICAxNiwweDEyMTAsMCx7MHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MH0gfSwKLXsgIDE2LDB4MTIyMCwwLHsweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgxMjMwLDAsezB4NzksMHg3OSwweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTJ9IH0sCi17ICAxNiwweDEyNDAsMCx7MHg5MCwweDc5LDB4ODIsMHg3NCwweDBjLDB4ZjAsMHg5MCwweDc5LDB4ODgsMHg3NCwweDAxLDB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMn0gfSwKLXsgIDE2LDB4MTI1MCwwLHsweGQyLDB4YWYsMHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDIsMHg2MCwweDAyLDB4ODEsMHg1NiwweDkwLDB4N2YsMHhmMiwweGYwfSB9LAoteyAgMTYsMHgxMjYwLDAsezB4OTAsMHg3ZiwweGYzLDB4NzQsMHg5NCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4ZTQsMHg5MCwweDc5LDB4Nzh9IH0sCi17ICAxNiwweDEyNzAsMCx7MHhmMCwweDkwLDB4NzksMHg3YiwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg0NCwweDAxLDB4ZjAsMHg1NCwweGZkLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MTI4MCwwLHsweDc5LDB4N2IsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgxMjkwLDAsezB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTB9IH0sCi17ICAxNiwweDEyYTAsMCx7MHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMH0gfSwKLXsgIDE2LDB4MTJiMCwwLHsweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMiwweGYwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OSwweDg0fSB9LAoteyAgMTYsMHgxMmMwLDAsezB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4ODIsMHg3NCwweDBjLDB4ZjAsMHg5MCwweDc5LDB4ODgsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDEyZDAsMCx7MHhlNSwweDEyLDB4NzAsMHgwMiwweDgxLDB4NTYsMHhkMiwweGFmLDB4MjIsMHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDEsMHg3MH0gfSwKLXsgIDE2LDB4MTJlMCwwLHsweDc3LDB4OTAsMHg3ZiwweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweGNjLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjfSB9LAoteyAgMTYsMHgxMmYwLDAsezB4ZjAsMHhlNCwweDkwLDB4NzksMHg3OCwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDU0LDB4ZmN9IH0sCi17ICAxNiwweDEzMDAsMCx7MHhmMCwweDkwLDB4NzksMHg3YiwweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMn0gfSwKLXsgIDE2LDB4MTMxMCwwLHsweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgxMzIwLDAsezB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4Nzl9IH0sCi17ICAxNiwweDEzMzAsMCx7MHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MTM0MCwwLHsweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg4MiwweDc0LDB4MTIsMHhmMCwweDkwLDB4NzksMHg4OCwweDc0fSB9LAoteyAgMTYsMHgxMzUwLDAsezB4MDIsMHhmMCwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMiwweDcwLDB4Nzd9IH0sCi17ICAxNiwweDEzNjAsMCx7MHg5MCwweDdmLDB4ZjIsMHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4ZTAsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMH0gfSwKLXsgIDE2LDB4MTM3MCwwLHsweGU0LDB4OTAsMHg3OSwweDc4LDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NTQsMHhmYywweGYwfSB9LAoteyAgMTYsMHgxMzgwLDAsezB4OTAsMHg3OSwweDdiLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4OTB9IH0sCi17ICAxNiwweDEzOTAsMCx7MHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3Zn0gfSwKLXsgIDE2LDB4MTNhMCwwLHsweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5fSB9LAoteyAgMTYsMHgxM2IwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDEzYzAsMCx7MHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDgyLDB4NzQsMHgxMiwweGYwLDB4OTAsMHg3OSwweDg4LDB4NzQsMHgwMn0gfSwKLXsgIDE2LDB4MTNkMCwwLHsweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAzLDB4NzAsMHg3NywweDkwfSB9LAoteyAgMTYsMHgxM2UwLDAsezB4N2YsMHhmMiwweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHg5NCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4ZTR9IH0sCi17ICAxNiwweDEzZjAsMCx7MHg5MCwweDc5LDB4NzgsMHhmMCwweDkwLDB4NzksMHg3YiwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg1NCwweGZlLDB4ZjAsMHg0NH0gfSwKLXsgIDE2LDB4MTQwMCwwLHsweDAyLDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBifSB9LAoteyAgMTYsMHgxNDEwLDAsezB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTB9IH0sCi17ICAxNiwweDE0MjAsMCx7MHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MH0gfSwKLXsgIDE2LDB4MTQzMCwwLHsweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwNCwweGYwLDB4OTAsMHg3OSwweDg0fSB9LAoteyAgMTYsMHgxNDQwLDAsezB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4ODIsMHg3NCwweDA2LDB4ZjAsMHg5MCwweDc5LDB4ODgsMHg3NCwweDA0LDB4ZjB9IH0sCi17ICAgNywweDE0NTAsMCx7MHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHgyMn0gfSwKLXsgIDE2LDB4MTQ1NywwLHsweGMyLDB4MjgsMHhjMiwweDI5LDB4OTAsMHg3ZiwweGU4LDB4ZTAsMHgxMiwweDBlLDB4MWEsMHgxNCwweDg0LDB4MDAsMHgxNCwweGUwfSB9LAoteyAgMTYsMHgxNDY3LDAsezB4MDEsMHgxNCwweGY2LDB4MDIsMHgxNiwweDdjLDB4MjEsMHgxNiwweGJlLDB4MjIsMHgxNSwweDkxLDB4ODAsMHgxNSwweGQxLDB4ODF9IH0sCi17ICAxNiwweDE0NzcsMCx7MHgxNiwweDJlLDB4ODIsMHgxNiwweGNmLDB4YTEsMHgxNywweDA1LDB4YTIsMHgwMCwweDAwLDB4MTcsMHgwYSwweDkwLDB4N2YsMHhlOX0gfSwKLXsgIDE2LDB4MTQ4NywwLHsweGUwLDB4MTQsMHg2MCwweDExLDB4MjQsMHhmZSwweDYwLDB4MjgsMHgyNCwweGZlLDB4NjAsMHgzYiwweDI0LDB4ZmMsMHg3MCwweDQwfSB9LAoteyAgMTYsMHgxNDk3LDAsezB4MTIsMHg0YSwweDJhLDB4ZTEsMHgxNiwweDEyLDB4NGIsMHhlMCwweDQwLDB4MDIsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGVhLDB4ZTB9IH0sCi17ICAxNiwweDE0YTcsMCx7MHhiNCwweDAxLDB4MDQsMHhjMiwweDJhLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNn0gfSwKLXsgIDE2LDB4MTRiNywwLHsweDEyLDB4NGIsMHhlMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4YjQsMHgwMSwweDA0LDB4ZDIsMHgyYSwweGUxLDB4MTYsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgxNGM3LDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTZ9IH0sCi17ICAxNiwweDE0ZDcsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZjUsMHg3MH0gfSwKLXsgIDE2LDB4MTRlNywwLHsweDA1LDB4MTIsMHg0NywweDljLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDkwfSB9LAoteyAgMTYsMHgxNGY3LDAsezB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZCwweDYwLDB4NTQsMHgyNCwweDAyLDB4NjAsMHgwMiwweGExLDB4ODgsMHgxMiwweDRiLDB4ZTB9IH0sCi17ICAxNiwweDE1MDcsMCx7MHg0MCwweDAyLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhlYSwweGUwLDB4NzAsMHgzOCwweDkwLDB4N2YsMHhlYywweGUwLDB4ZjQsMHg1NH0gfSwKLXsgIDE2LDB4MTUxNywwLHsweDgwLDB4ZmYsMHhjNCwweDU0LDB4MGYsMHhmZiwweGUwLDB4NTQsMHgwNywweDJmLDB4MjUsMHhlMCwweDI0LDB4YjQsMHhmNSwweDgyfSB9LAoteyAgMTYsMHgxNTI3LDAsezB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg5MCwweDdmLDB4ZWMsMHhlMCwweDU0LDB4ODAsMHhmZiwweDEzLDB4MTN9IH0sCi17ICAxNiwweDE1MzcsMCx7MHgxMywweDU0LDB4MWYsMHhmZiwweGUwLDB4NTQsMHgwNywweDJmLDB4OTAsMHg3ZiwweGQ3LDB4ZjAsMHhlMCwweDQ0LDB4MjAsMHhmMH0gfSwKLXsgIDE2LDB4MTU0NywwLHsweGUxLDB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHgxMiwweDRiLDB4ZTIsMHg0MCwweDAyfSB9LAoteyAgMTYsMHgxNTU3LDAsezB4ZTEsMHgxNiwweDkwLDB4N2YsMHhlYSwweGUwLDB4NzAsMHgyMCwweDkwLDB4N2YsMHhlYywweGUwLDB4ZjQsMHg1NCwweDgwLDB4ZmZ9IH0sCi17ICAxNiwweDE1NjcsMCx7MHhjNCwweDU0LDB4MGYsMHhmZiwweGUwLDB4NTQsMHgwNywweDJmLDB4MjUsMHhlMCwweDI0LDB4YjQsMHhmNSwweDgyLDB4ZTQsMHgzNH0gfSwKLXsgIDE2LDB4MTU3NywwLHsweDdmLDB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxfSB9LAoteyAgMTYsMHgxNTg3LDAsezB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHg5MCwweDdmLDB4ZTksMHhlMCwweDYwLDB4MTJ9IH0sCi17ICAxNiwweDE1OTcsMCx7MHgyNCwweGY4LDB4NjAsMHgwOSwweDI0LDB4MDIsMHg3MCwweDI5LDB4MTIsMHgxNywweDFlLDB4ZTEsMHgxNiwweDEyLDB4NGIsMHhhMH0gfSwKLXsgIDE2LDB4MTVhNywwLHsweGUxLDB4MTYsMHgxMiwweDRiLDB4ZGUsMHhhMiwweDJhLDB4ZTQsMHgzMywweGZmLDB4MjUsMHhlMCwweGZmLDB4YTIsMHgyYiwweGU0fSB9LAoteyAgMTYsMHgxNWI3LDAsezB4MzMsMHg0ZiwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4ZTF9IH0sCi17ICAxNiwweDE1YzcsMCx7MHgxNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhlOSwweGUwLDB4NjAsMHgzN30gfSwKLXsgIDE2LDB4MTVkNywwLHsweDI0LDB4ZjYsMHg2MCwweDJlLDB4MjQsMHgwNCwweDcwLDB4NDEsMHg5MCwweDdmLDB4ZWIsMHhlMCwweDI0LDB4ZGUsMHg2MCwweDBlfSB9LAoteyAgMTYsMHgxNWU3LDAsezB4MDQsMHg3MCwweDE2LDB4ZDIsMHgyOSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweGQyLDB4Mjl9IH0sCi17ICAxNiwweDE1ZjcsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4MTYwNywwLHsweGUxLDB4MTYsMHgxMiwweDQ0LDB4NjMsMHhlMSwweDE2LDB4MTIsMHg0YiwweGRlLDB4ZTQsMHg5MCwweDdmLDB4MDAsMHhmMCwweGEzfSB9LAoteyAgMTYsMHgxNjE3LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHhlMSwweDE2LDB4MjAsMHgyOSwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTB9IH0sCi17ICAxNiwweDE2MjcsMCx7MHg0NCwweDAxLDB4ZjAsMHhjMiwweDI5LDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmNCwweDYwLDB4MzQsMHgyNH0gfSwKLXsgIDE2LDB4MTYzNywwLHsweDBjLDB4NzAsMHgzOSwweDEyLDB4NGIsMHhkZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZjQsMHg1NCwweDgwLDB4ZmYsMHhjNCwweDU0fSB9LAoteyAgMTYsMHgxNjQ3LDAsezB4MGYsMHhmZiwweGUwLDB4NTQsMHgwNywweDJmLDB4MjUsMHhlMCwweDI0LDB4YjQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjV9IH0sCi17ICAxNiwweDE2NTcsMCx7MHg4MywweGUwLDB4NTQsMHhmZCwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMn0gfSwKLXsgIDE2LDB4MTY2NywwLHsweGYwLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhiNCwweGUwfSB9LAoteyAgMTYsMHgxNjc3LDAsezB4NDQsMHgwMSwweGYwLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmNiwweDYwLDB4MTIsMHgxNCwweDYwLDB4MWF9IH0sCi17ICAxNiwweDE2ODcsMCx7MHgyNCwweDAyLDB4NzAsMHgxZCwweGQyLDB4MjgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MTIsMHhkMn0gfSwKLXsgIDE2LDB4MTY5NywwLHsweDI4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfSB9LAoteyAgMTYsMHgxNmE3LDAsezB4ZjAsMHgyMCwweDI4LDB4MGYsMHg5MCwweDc5LDB4ODUsMHg3NCwweDAxLDB4ZjAsMHgxMiwweDQ5LDB4NmYsMHg5MCwweDdmLDB4YzV9IH0sCi17ICAxNiwweDE2YjcsMCx7MHg3NCwweDAyLDB4ZjAsMHhjMiwweDI4LDB4ODAsMHg1OCwweDkwLDB4NzksMHg4NiwweDc0LDB4MDEsMHhmMCwweDEyLDB4NDksMHg2Zn0gfSwKLXsgIDE2LDB4MTZjNywwLHsweDkwLDB4N2YsMHhjNSwweDc0LDB4MDIsMHhmMCwweDgwLDB4NDcsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg2MCwweDEyfSB9LAoteyAgMTYsMHgxNmQ3LDAsezB4MTQsMHg2MCwweDFhLDB4MjQsMHgwMiwweDcwLDB4MWQsMHhkMiwweDI4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDE2ZTcsMCx7MHg4MCwweDEyLDB4ZDIsMHgyOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgwNywweDkwLDB4N2YsMHhiNH0gfSwKLXsgIDE2LDB4MTZmNywwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4MjAsMHgyOCwweDAzLDB4MTIsMHgxYSwweDdiLDB4YzIsMHgyOCwweDgwLDB4MTEsMHgxMiwweDJjfSB9LAoteyAgMTYsMHgxNzA3LDAsezB4MmIsMHg4MCwweDBjLDB4MTIsMHg0YiwweGU0LDB4NTAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTB9IH0sCi17ICAgNywweDE3MTcsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4MTcxZSwwLHsweDEyLDB4NGIsMHhkYywweDQwLDB4MDIsMHhlMSwweGUzLDB4OTAsMHg3ZiwweGViLDB4ZTAsMHgyNCwweGZlLDB4NjAsMHgxZSwweDE0fSB9LAoteyAgMTYsMHgxNzJlLDAsezB4NjAsMHg0NiwweDE0LDB4NjAsMHg2ZSwweDE0LDB4NzAsMHgwMiwweGUxLDB4ZDQsMHgyNCwweDA0LDB4NjAsMHgwMiwweGUxLDB4ZGN9IH0sCi17ICAxNiwweDE3M2UsMCx7MHg3NCwweDA1LDB4OTAsMHg3ZiwweGQ0LDB4ZjAsMHg3NCwweDAwLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYX0gfSwKLXsgIDE2LDB4MTc0ZSwwLHsweGUwLDB4ZmYsMHgxMiwweDNmLDB4YTIsMHg4YiwweDMzLDB4OGEsMHgzNCwweDg5LDB4MzUsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlfSB9LAoteyAgMTYsMHgxNzVlLDAsezB4ZWEsMHhjZSwweGVlLDB4OTAsMHg3ZiwweGQ0LDB4ZjAsMHhjZiwweGU5LDB4Y2YsMHhlZiwweDkwLDB4N2YsMHhkNSwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDE3NmUsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZiwweDEyLDB4NDgsMHgwMH0gfSwKLXsgIDE2LDB4MTc3ZSwwLHsweDhiLDB4MzMsMHg4YSwweDM0LDB4ODksMHgzNSwweGVhLDB4NDksMHg2MCwweDExLDB4Y2UsMHhlYSwweGNlLDB4ZWUsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgxNzhlLDAsezB4ZDQsMHhmMCwweGNmLDB4ZTksMHhjZiwweGVmLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9IH0sCi17ICAxNiwweDE3OWUsMCx7MHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZmLDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYn0gfSwKLXsgIDE2LDB4MTdhZSwwLHsweDEyLDB4NDQsMHhkMiwweDhiLDB4MzMsMHg4YSwweDM0LDB4ODksMHgzNSwweGVhLDB4NDksMHg2MCwweDExLDB4Y2UsMHhlYSwweGNlfSB9LAoteyAgMTYsMHgxN2JlLDAsezB4ZWUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweGNmLDB4ZTksMHhjZiwweGVmLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMiwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDE3Y2UsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3Zn0gfSwKLXsgICA1LDB4MTdkZSwwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDE3ZTMsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MTdlNCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDkwLDB4N2YsMHhjNCwweGU0LDB4ZjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmfSB9LAoteyAgMTEsMHgxN2Y0LDAsezB4YWIsMHg3NCwweDA0LDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgICAxLDB4MTdmZiwwLHsweDIyfSB9LAoteyAgMTYsMHgxODAwLDAsezB4ZTQsMHg5MCwweDc4LDB4MTUsMHhmMCwweDdiLDB4MDEsMHg5MCwweDc4LDB4MTIsMHgwNCwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjB9IH0sCi17ICAxNiwweDE4MTAsMCx7MHhhMywweDc0LDB4NTgsMHhmMCwweDkwLDB4NzgsMHgxMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MH0gfSwKLXsgIDE2LDB4MTgyMCwwLHsweDAwLDB4MDEsMHgxMiwweDBjLDB4NWQsMHhmZiwweDkwLDB4NzksMHg5YSwweGUwLDB4NmYsMHg2MCwweDE4LDB4OTAsMHg3OCwweDE1fSB9LAoteyAgMTYsMHgxODMwLDAsezB4ZTAsMHhjMywweDk0LDB4MDYsMHg1MCwweDBmLDB4ZTAsMHgwNCwweGYwLDB4OTAsMHg3OCwweDEzLDB4ZTQsMHg3NSwweGYwLDB4MGZ9IH0sCi17ICAxNiwweDE4NDAsMCx7MHgxMiwweDBjLDB4ZjQsMHg4MCwweGNmLDB4OTAsMHg3OCwweDE1LDB4ZTAsMHhiNCwweDA2LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMH0gfSwKLXsgIDE2LDB4MTg1MCwwLHsweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OCwweDEyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDEyfSB9LAoteyAgMTYsMHgxODYwLDAsezB4MGMsMHg0NCwweGZmLDB4MjQsMHhiZiwweDcwLDB4MDIsMHg0MSwweDdhLDB4MjQsMHhlMCwweDcwLDB4MDIsMHg0MSwweDRjLDB4MjR9IH0sCi17ICAxNiwweDE4NzAsMCx7MHgyMSwweDYwLDB4MDIsMHg0MSwweDczLDB4OTAsMHg3OSwweDk3LDB4ZTAsMHgyNCwweGZlLDB4NzAsMHgwMiwweDIxLDB4OWEsMHgxNH0gfSwKLXsgIDE2LDB4MTg4MCwwLHsweDcwLDB4MDIsMHgyMSwweGVmLDB4MjQsMHgwMiwweDYwLDB4MDIsMHg0MSwweDQ0LDB4OTAsMHg3OSwweDJkLDB4ZTAsMHhhMywweGYwfSB9LAoteyAgMTYsMHgxODkwLDAsezB4OTAsMHg3OSwweDIzLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweGZlLDB4ZmIsMHhmYSwweDc5LDB4MDEsMHhmOCwweDEyLDB4MGR9IH0sCi17ICAxNiwweDE4YTAsMCx7MHg0MiwweGM4LDB4ZWMsMHhjOCwweGM5LDB4ZWQsMHhjOSwweGNhLDB4ZWUsMHhjYSwweGNiLDB4ZWYsMHhjYiwweDkwLDB4NzksMHgyMn0gfSwKLXsgIDE2LDB4MThiMCwwLHsweGUwLDB4ZmUsMHhlNCwweGZjLDB4ZmQsMHgyYiwweGZiLDB4ZWEsMHgzZSwweGZhLDB4ZWQsMHgzOSwweGY5LDB4ZWMsMHgzOCwweGY4fSB9LAoteyAgMTYsMHgxOGMwLDAsezB4OTAsMHg3OSwweDIxLDB4ZTAsMHhmZiwweGU0LDB4ZmUsMHhlYiwweDJmLDB4ZmYsMHhlZSwweDNhLDB4ZmUsMHhlZCwweDM5LDB4ZmR9IH0sCi17ICAxNiwweDE4ZDAsMCx7MHhlYywweDM4LDB4ZmMsMHg5MCwweDc4LDB4MTIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMH0gfSwKLXsgIDE2LDB4MThlMCwwLHsweDAyLDB4MTIsMHgwZCwweGQyLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwZCwweGEyLDB4N2IsMHg0NCwweDdhLDB4YWMsMHg3OSwweDAwfSB9LAoteyAgMTYsMHgxOGYwLDAsezB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NzAsMHgwNSwweDkwLDB4NzksMHgyZCwweDA0LDB4ZjAsMHg5MCwweDc4LDB4MTJ9IH0sCi17ICAxNiwweDE5MDAsMCx7MHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwZCwweGEyLDB4N2IsMHg4MH0gfSwKLXsgIDE2LDB4MTkxMCwwLHsweDdhLDB4YmIsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NzAsMHgwNiwweDkwLDB4NzksMHgyZCwweDc0fSB9LAoteyAgMTYsMHgxOTIwLDAsezB4MDIsMHhmMCwweDkwLDB4NzgsMHgxMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDJ9IH0sCi17ICAxNiwweDE5MzAsMCx7MHgxMiwweDBkLDB4YTIsMHg3YiwweDAwLDB4N2EsMHg3NywweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg3MH0gfSwKLXsgIDE2LDB4MTk0MCwwLHsweDA2LDB4OTAsMHg3OSwweDJkLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgwOSwweDc1fSB9LAoteyAgMTYsMHgxOTUwLDAsezB4MGMsMHg2NywweDc1LDB4MGQsMHgwNiwweDc1LDB4MGUsMHgwYiwweGVmLDB4YjQsMHgwMiwweDA4LDB4ZTQsMHhmNSwweDBjLDB4ZjV9IH0sCi17ICAxNiwweDE5NjAsMCx7MHgwZCwweDc1LDB4MGUsMHgwYywweGVmLDB4YjQsMHgwMywweDA4LDB4ZTQsMHhmNSwweDBjLDB4ZjUsMHgwZCwweDc1LDB4MGUsMHgxOH0gfSwKLXsgIDE2LDB4MTk3MCwwLHsweGVmLDB4YjQsMHgwMywweDBkLDB4OTAsMHg3OSwweDJlLDB4ZTAsMHg2NCwweDAzLDB4NjAsMHgwNSwweGQyLDB4MmYsMHgxMiwweDNkfSB9LAoteyAgMTYsMHgxOTgwLDAsezB4NzksMHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDMsMHg2MCwweDBhLDB4YTMsMHhlMCwweGI0LDB4MDMsMHgwNSwweGMyLDB4MmZ9IH0sCi17ICAxNiwweDE5OTAsMCx7MHgxMiwweDNkLDB4NzksMHgxMiwweDEwLDB4MDAsMHgxMiwweDI4LDB4MDEsMHgyMiwweDkwLDB4NzksMHgyMywweGUwLDB4ZmYsMHhlNH0gfSwKLXsgIDE2LDB4MTlhMCwwLHsweGZjLDB4ZmQsMHhmZSwweGZiLDB4ZmEsMHg3OSwweDAxLDB4ZjgsMHgxMiwweDBkLDB4NDIsMHhjOCwweGVjLDB4YzgsMHhjOSwweGVkfSB9LAoteyAgMTYsMHgxOWIwLDAsezB4YzksMHhjYSwweGVlLDB4Y2EsMHhjYiwweGVmLDB4Y2IsMHg5MCwweDc5LDB4MjIsMHhlMCwweGZlLDB4ZTQsMHhmYywweGZkLDB4MmJ9IH0sCi17ICAxNiwweDE5YzAsMCx7MHhmYiwweGVhLDB4M2UsMHhmYSwweGVkLDB4MzksMHhmOSwweGVjLDB4MzgsMHhmOCwweDkwLDB4NzksMHgyMSwweGUwLDB4ZmYsMHhlNH0gfSwKLXsgIDE2LDB4MTlkMCwwLHsweGZlLDB4ZWIsMHgyZiwweGZmLDB4ZWUsMHgzYSwweGZlLDB4ZWQsMHgzOSwweGZkLDB4ZWMsMHgzOCwweGZjLDB4OTAsMHg3OCwweDEyfSB9LAoteyAgMTYsMHgxOWUwLDAsezB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNiwweDEyLDB4MGQsMHhkMiwweDIyLDB4OTB9IH0sCi17ICAxNiwweDE5ZjAsMCx7MHg3OSwweDIzLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweGZlLDB4ZmIsMHhmYSwweDc5LDB4MDEsMHhmOCwweDEyLDB4MGQsMHg0Mn0gfSwKLXsgIDE2LDB4MWEwMCwwLHsweGM4LDB4ZWMsMHhjOCwweGM5LDB4ZWQsMHhjOSwweGNhLDB4ZWUsMHhjYSwweGNiLDB4ZWYsMHhjYiwweDkwLDB4NzksMHgyMiwweGUwfSB9LAoteyAgMTYsMHgxYTEwLDAsezB4ZmUsMHhlNCwweGZjLDB4ZmQsMHgyYiwweGZiLDB4ZWEsMHgzZSwweGZhLDB4ZWQsMHgzOSwweGY5LDB4ZWMsMHgzOCwweGY4LDB4OTB9IH0sCi17ICAxNiwweDFhMjAsMCx7MHg3OSwweDIxLDB4ZTAsMHhmZiwweGU0LDB4ZmUsMHhlYiwweDJmLDB4ZmYsMHhlZSwweDNhLDB4ZmUsMHhlZCwweDM5LDB4ZmQsMHhlY30gfSwKLXsgIDE2LDB4MWEzMCwwLHsweDM4LDB4ZmMsMHg5MCwweDc4LDB4MTIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDBhfSB9LAoteyAgMTYsMHgxYTQwLDAsezB4MTIsMHgwZCwweGQyLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OSwweDk3LDB4ZTB9IH0sCi17ICAxNiwweDFhNTAsMCx7MHgxNCwweDcwLDB4MTgsMHg5MCwweDc5LDB4MjEsMHhlMCwweGZmLDB4OTAsMHg3OCwweDEyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYX0gfSwKLXsgIDE2LDB4MWE2MCwwLHsweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwZSwweGVmLDB4MTIsMHgwYywweDljLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fSB9LAoteyAgMTAsMHgxYTcwLDAsezB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDFhN2EsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MWE3YiwwLHsweGU0LDB4ZmYsMHhmZSwweDdiLDB4MDEsMHg5MCwweDc4LDB4MGYsMHgwNCwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0fSB9LAoteyAgMTYsMHgxYThiLDAsezB4MmIsMHhmMCwweDkwLDB4NzgsMHgwZiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDJ9IH0sCi17ICAxNiwweDFhOWIsMCx7MHgxMiwweDBjLDB4NWQsMHhmZCwweDkwLDB4N2YsMHhlYywweGUwLDB4NmQsMHg2MCwweDEzLDB4ZWYsMHhjMywweDk0LDB4MDUsMHg1MH0gfSwKLXsgIDE2LDB4MWFhYiwwLHsweDBkLDB4MGYsMHg5MCwweDc4LDB4MTAsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDgwLDB4ZDQsMHg4ZCwweDMzfSB9LAoteyAgMTYsMHgxYWJiLDAsezB4OTAsMHg3OCwweDBmLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDEyLDB4MGN9IH0sCi17ICAxNiwweDFhY2IsMCx7MHg1ZCwweGZkLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHg2ZCwweDYwLDB4MTMsMHhlZSwweGMzLDB4OTQsMHgwYiwweDUwLDB4MGQsMHgwZX0gfSwKLXsgIDE2LDB4MWFkYiwwLHsweDkwLDB4NzgsMHgxMCwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4ODAsMHhkNCwweDkwLDB4N2YsMHhlZCwweGUwfSB9LAoteyAgMTYsMHgxYWViLDAsezB4ZjUsMHgzNCwweGVmLDB4NjQsMHgwNSwweDYwLDB4MDMsMHhiZSwweDBiLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9IH0sCi17ICAxNiwweDFhZmIsMCx7MHhmMCwweDIyLDB4OTAsMHg3OCwweDBmLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDEyLDB4MGMsMHg0NH0gfSwKLXsgIDE2LDB4MWIwYiwwLHsweGZmLDB4MjQsMHhmMCwweDYwLDB4MDgsMHgyNCwweDBmLDB4NzAsMHgwZSwweDEyLDB4NDksMHgyYSwweDIyLDB4MTIsMHg0YiwweDgzfSB9LAoteyAgMTQsMHgxYjFiLDAsezB4OTAsMHg3OSwweDIwLDB4ZTUsMHgzNCwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4MWIyOSwwLHsweDIyfSB9LAoteyAgMTUsMHgxYjJhLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhiNCwweGZmLDB4MDQsMHgxMiwweDM0LDB4MTYsMHgyMiwweDEyLDB4MzgsMHgwMCwweDIyfSB9LAoteyAgIDcsMHgxYjM5LDAsezB4NTMsMHg5OCwweGZlLDB4NTMsMHg5OCwweGZkLDB4MzJ9IH0sCi17ICAxNiwweDFiNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWI1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYjYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWI4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYjkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWJiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYmMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWJlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYmYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWMxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWM0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWM3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWNhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxY2IwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWNkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxY2UwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQ2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQ5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZGEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWRjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZGQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWRmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWUyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWU1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWU4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE0LDB4MWViMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlYmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWVjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZWRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWVmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZjBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmMWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWYyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgIDIsMHgxZjNlLDAsezB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWY0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZjUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWY3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZjgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWZhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZmIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWZkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZmUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjAwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjAzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjA2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjA5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMGEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjBjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMGQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjBmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjEyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjE1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjE4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjFiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMWMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjFlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMWYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjIxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjI0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjI3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjJhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMmIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjJkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMmUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjMwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjMzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjM2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTQsMHgyMzcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjM3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzOWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjNhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyM2JlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzY2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjNkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyM2VlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0MmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0NWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQ2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0OGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQ5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNGFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0YmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjRjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNGRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0ZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjRmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNTBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1MWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjUyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNTNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1NGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjU1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNTZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1N2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjU4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNTllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1YWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjViZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNWNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1ZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjVlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNWZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2MGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjYxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2M2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjY0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2NmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjY3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2OWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjZhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNmJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2Y2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjZkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTQsMHgyNmVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjZmYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzBjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3MWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjcyYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzNjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3NGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4Mjc1YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3N2MsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4Mjc4YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzljLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3YWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjdiYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyN2NjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3ZGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjdlYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgIDUsMHgyN2ZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMn0gfSwKLXsgIDE2LDB4MjgwMSwwLHsweDkwLDB4NzksMHg2NCwweGUwLDB4MTQsMHg2MCwweDQ2LDB4MTQsMHg3MCwweDAyLDB4NDEsMHgzYywweDI0LDB4MDIsMHg2MCwweDAyfSB9LAoteyAgMTYsMHgyODExLDAsezB4ODEsMHgyYSwweDkwLDB4N2YsMHhmYywweDc0LDB4Y2MsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDI4MjEsMCx7MHg3OCwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3YywweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg1NCwweGZkLDB4ZjAsMHg0NH0gfSwKLXsgIDE2LDB4MjgzMSwwLHsweDAxLDB4ZjAsMHg5MCwweDc5LDB4N2MsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBifSB9LAoteyAgMTYsMHgyODQxLDAsezB4YTIsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHhlNCwweDkwLDB4NzksMHg3YSwweGYwLDB4MjIsMHg5MCwweDc5LDB4MmR9IH0sCi17ICAxNiwweDI4NTEsMCx7MHhlMCwweDY0LDB4MDEsMHg2MCwweDAyLDB4MDEsMHhmMSwweDkwLDB4N2YsMHhmYywweDc0LDB4Y2MsMHhmMCwweDkwLDB4N2YsMHhmZn0gfSwKLXsgIDE2LDB4Mjg2MSwwLHsweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzksMHg3OCwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3YywweGUwLDB4OTAsMHg3OSwweDc5fSB9LAoteyAgMTYsMHgyODcxLDAsezB4ZjAsMHg0NCwweDAxLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4N2UsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDI4ODEsMCx7MHg3OSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4Mjg5MSwwLHsweDc5LDB4ZTAsMHg5MCwweDc5LDB4N2MsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBifSB9LAoteyAgMTYsMHgyOGExLDAsezB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTB9IH0sCi17ICAxNiwweDI4YjEsMCx7MHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MH0gfSwKLXsgIDE2LDB4MjhjMSwwLHsweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwfSB9LAoteyAgMTYsMHgyOGQxLDAsezB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4N2EsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NjV9IH0sCi17ICAxNiwweDI4ZTEsMCx7MHhmMCwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweGU0LDB4OTAsMHg3OSwweDhjLDB4ZjAsMHg5MCwweDc5LDB4OGIsMHhmMH0gfSwKLXsgIDE2LDB4MjhmMSwwLHsweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMiwweDYwLDB4MDIsMHgyMSwweDk2LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhjOCwweGYwfSB9LAoteyAgMTYsMHgyOTAxLDAsezB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDdjLDB4ZTB9IH0sCi17ICAxNiwweDI5MTEsMCx7MHg5MCwweDc5LDB4NzksMHhmMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg3ZSwweGUwLDB4YjQsMHgwMX0gfSwKLXsgIDE2LDB4MjkyMSwwLHsweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZifSB9LAoteyAgMTYsMHgyOTMxLDAsezB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDkwLDB4NzksMHg3YywweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzJ9IH0sCi17ICAxNiwweDI5NDEsMCx7MHhhZiwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4Mjk1MSwwLHsweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwfSB9LAoteyAgMTYsMHgyOTYxLDAsezB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAyLDB4ZjB9IH0sCi17ICAxNiwweDI5NzEsMCx7MHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3YSwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4Mjk4MSwwLHsweDkwLDB4NzksMHg2NSwweDc0LDB4MDMsMHhmMCwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweGU0LDB4OTAsMHg3OSwweDhjfSB9LAoteyAgMTYsMHgyOTkxLDAsezB4ZjAsMHg5MCwweDc5LDB4OGIsMHhmMCwweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMywweDYwLDB4MDIsMHg4MSwweDJhLDB4OTB9IH0sCi17ICAxNiwweDI5YTEsMCx7MHg3ZiwweGZjLDB4NzQsMHg5OCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMX0gfSwKLXsgIDE2LDB4MjliMSwwLHsweGYwLDB4OTAsMHg3OSwweDdjLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgyOWMxLDAsezB4NzksMHg3ZSwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTB9IH0sCi17ICAxNiwweDI5ZDEsMCx7MHg3OSwweDc5LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDkwLDB4NzksMHg3YywweGYwLDB4YTIsMHhhZn0gfSwKLXsgIDE2LDB4MjllMSwwLHsweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgyOWYxLDAsezB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDJhMDEsMCx7MHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MmExMSwwLHsweDc5LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg0NCwweDA0LDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwfSB9LAoteyAgMTYsMHgyYTIxLDAsezB4NzksMHg3YSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg2NSwweDc0LDB4MDUsMHhmMCwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDJ9IH0sCi17ICAxNiwweDJhMzEsMCx7MHhhZiwweGU0LDB4OTAsMHg3OSwweDhjLDB4ZjAsMHg5MCwweDc5LDB4OGIsMHhmMCwweDIyLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NH0gfSwKLXsgIDE2LDB4MmE0MSwwLHsweDAxLDB4NjAsMHgwMiwweDQxLDB4ZTAsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGI0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjfSB9LAoteyAgMTYsMHgyYTUxLDAsezB4ZjAsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4N2MsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NTR9IH0sCi17ICAxNiwweDJhNjEsMCx7MHhmZSwweGYwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDdlLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMH0gfSwKLXsgIDE2LDB4MmE3MSwwLHsweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwfSB9LAoteyAgMTYsMHgyYTgxLDAsezB4OTAsMHg3OSwweDdjLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4OTB9IH0sCi17ICAxNiwweDJhOTEsMCx7MHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3Zn0gfSwKLXsgIDE2LDB4MmFhMSwwLHsweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5fSB9LAoteyAgMTYsMHgyYWIxLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDJhYzEsMCx7MHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDdhLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDY1LDB4MDQsMHhmMH0gfSwKLXsgIDE2LDB4MmFkMSwwLHsweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweGU0LDB4OTAsMHg3OSwweDhjLDB4ZjAsMHg5MCwweDc5LDB4OGIsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgyYWUxLDAsezB4NzksMHgyZCwweGUwLDB4NjQsMHgwMiwweDYwLDB4MDIsMHg2MSwweDg1LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhiMCwweGYwLDB4OTB9IH0sCi17ICAxNiwweDJhZjEsMCx7MHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDdjLDB4ZTAsMHg5MH0gfSwKLXsgIDE2LDB4MmIwMSwwLHsweDc5LDB4NzksMHhmMCwweDU0LDB4ZmUsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg3ZSwweGUwLDB4YjQsMHgwMSwweDA5fSB9LAoteyAgMTYsMHgyYjExLDAsezB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZiLDB4ZjB9IH0sCi17ICAxNiwweDJiMjEsMCx7MHg5MCwweDc5LDB4NzksMHhlMCwweDkwLDB4NzksMHg3YywweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZn0gfSwKLXsgIDE2LDB4MmIzMSwwLHsweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5fSB9LAoteyAgMTYsMHgyYjQxLDAsezB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODB9IH0sCi17ICAxNiwweDJiNTEsMCx7MHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg1NH0gfSwKLXsgIDE2LDB4MmI2MSwwLHsweGZiLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3YSwweDc0LDB4MDEsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgyYjcxLDAsezB4NzksMHg2NSwweDc0LDB4MDQsMHhmMCwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweGU0LDB4OTAsMHg3OSwweDhjLDB4ZjB9IH0sCi17ICAxNiwweDJiODEsMCx7MHg5MCwweDc5LDB4OGIsMHhmMCwweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMywweDYwLDB4MDIsMHg4MSwweDJhLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MmI5MSwwLHsweGZjLDB4NzQsMHg2OCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgyYmExLDAsezB4OTAsMHg3OSwweDdjLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDU0LDB4ZmUsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDJiYjEsMCx7MHg3ZSwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MmJjMSwwLHsweDc5LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDkwLDB4NzksMHg3YywweGYwLDB4YTIsMHhhZiwweGU0fSB9LAoteyAgMTYsMHgyYmQxLDAsezB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDJiZTEsMCx7MHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OX0gfSwKLXsgIDE2LDB4MmJmMSwwLHsweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5fSB9LAoteyAgMTYsMHgyYzAxLDAsezB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg0NCwweDA0LDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDJjMTEsMCx7MHg3YSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg2NSwweDc0LDB4MDYsMHhmMCwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZn0gfSwKLXsgIDEwLDB4MmMyMSwwLHsweGU0LDB4OTAsMHg3OSwweDhjLDB4ZjAsMHg5MCwweDc5LDB4OGIsMHhmMCwweDIyfSB9LAoteyAgMTYsMHgyYzJiLDAsezB4ZTQsMHhmZiwweDdiLDB4MDEsMHg5MCwweDc4LDB4MTYsMHgwNCwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4NTh9IH0sCi17ICAxNiwweDJjM2IsMCx7MHhmMCwweDkwLDB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHgxMn0gfSwKLXsgIDE2LDB4MmM0YiwwLHsweDBjLDB4NWQsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4NmUsMHg2MCwweDEzLDB4ZWYsMHhjMywweDk0LDB4MDYsMHg1MCwweDBkfSB9LAoteyAgMTYsMHgyYzViLDAsezB4MGYsMHg5MCwweDc4LDB4MTcsMHhlNCwweDc1LDB4ZjAsMHgwZiwweDEyLDB4MGMsMHhmNCwweDgwLDB4ZDQsMHhiZiwweDA2LDB4MDh9IH0sCi17ICAxNiwweDJjNmIsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYX0gfSwKLXsgIDE2LDB4MmM3YiwwLHsweGEzLDB4ZTAsMHhmOSwweDEyLDB4MGMsMHg0NCwweGZmLDB4MjQsMHg5ZiwweDcwLDB4MDIsMHhjMSwweDY2LDB4MjQsMHgyMSwweDYwfSB9LAoteyAgMTYsMHgyYzhiLDAsezB4MDIsMHhjMSwweDhjLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdlLDB4NzAsMHgwMiwweGExLDB4MzAsMHgxNCwweDcwLDB4MDJ9IH0sCi17ICAxNiwweDJjOWIsMCx7MHhhMSwweGM4LDB4MjQsMHgwMiwweDYwLDB4MDIsMHhjMSwweDVlLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwZCwweGEyLDB4N2IsMHg0NH0gfSwKLXsgIDE2LDB4MmNhYiwwLHsweDdhLDB4YWMsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0fSB9LAoteyAgMTYsMHgyY2JiLDAsezB4NDQsMHhmMCwweGEzLDB4NzQsMHhhYywweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTB9IH0sCi17ICAxNiwweDJjY2IsMCx7MHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MGQsMHhhMn0gfSwKLXsgIDE2LDB4MmNkYiwwLHsweDdiLDB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDcwLDB4MTMsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgyY2ViLDAsezB4MDAsMHg3NCwweDgwLDB4ZjAsMHhhMywweDc0LDB4YmIsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDN9IH0sCi17ICAxNiwweDJjZmIsMCx7MHhmMCwweDkwLDB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDIsMHgxMn0gfSwKLXsgIDE2LDB4MmQwYiwwLHsweDBkLDB4YTIsMHg3YiwweDAwLDB4N2EsMHg3NywweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg2MCwweDAyfSB9LAoteyAgMTYsMHgyZDFiLDAsezB4YzEsMHg5MywweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDJkMmIsMCx7MHhiNSwweDc0LDB4MDMsMHhmMCwweDIyLDB4OTAsMHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOX0gfSwKLXsgIDE2LDB4MmQzYiwwLHsweDkwLDB4MDAsMHgwNiwweDEyLDB4MGQsMHhhMiwweDdiLDB4NDQsMHg3YSwweGFjLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyfSB9LAoteyAgMTYsMHgyZDRiLDAsezB4MGQsMHg5MSwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDAsMHg3NCwweDQ0LDB4ZjAsMHhhMywweDc0LDB4YWMsMHhmMCwweGU0LDB4YTN9IH0sCi17ICAxNiwweDJkNWIsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhM30gfSwKLXsgIDE2LDB4MmQ2YiwwLHsweGUwLDB4ZjksMHg5MCwweDAwLDB4MDYsMHgxMiwweDBkLDB4YTIsMHg3YiwweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwfSB9LAoteyAgMTYsMHgyZDdiLDAsezB4YzMsMHgxMiwweDBkLDB4OTEsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjB9IH0sCi17ICAxNiwweDJkOGIsMCx7MHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4MmQ5YiwwLHsweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwZCwweGEyLDB4N2IsMHgwMCwweDdhLDB4NzcsMHg3OSwweDAxfSB9LAoteyAgMTYsMHgyZGFiLDAsezB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NjAsMHgwMiwweGMxLDB4OTMsMHg5MCwweDdmLDB4MDAsMHhmMCwweGEzLDB4NzR9IH0sCi17ICAxNiwweDJkYmIsMCx7MHg3NywweGYwLDB4YTMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwLDB4NzgsMHgxNn0gfSwKLXsgIDE2LDB4MmRjYiwwLHsweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MGEsMHgxMiwweDBkLDB4YTIsMHg3YiwweDQ0fSB9LAoteyAgMTYsMHgyZGRiLDAsezB4N2EsMHhhYywweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzR9IH0sCi17ICAxNiwweDJkZWIsMCx7MHg0NCwweGYwLDB4YTMsMHg3NCwweGFjLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MmRmYiwwLHsweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDBhLDB4MTIsMHgwZCwweGEyfSB9LAoteyAgMTYsMHgyZTBiLDAsezB4N2IsMHg4MCwweDdhLDB4YmIsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NzAsMHgxMywweDkwLDB4N2Z9IH0sCi17ICAxNiwweDJlMWIsMCx7MHgwMCwweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwM30gfSwKLXsgIDE2LDB4MmUyYiwwLHsweGYwLDB4OTAsMHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwYSwweDEyfSB9LAoteyAgMTYsMHgyZTNiLDAsezB4MGQsMHhhMiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDcwLDB4NDh9IH0sCi17ICAxNiwweDJlNGIsMCx7MHg5MCwweDdmLDB4MDAsMHhmMCwweGEzLDB4NzQsMHg3NywweGYwLDB4YTMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NH0gfSwKLXsgIDE2LDB4MmU1YiwwLHsweDAzLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0fSB9LAoteyAgMTYsMHgyZTZiLDAsezB4N2YsMHg3MCwweDE2LDB4OTAsMHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDB9IH0sCi17ICAxNiwweDJlN2IsMCx7MHgwZSwweDEyLDB4MGMsMHg1ZCwweDkwLDB4N2YsMHgwMCwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICA4LDB4MmU4YiwwLHsweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDJlOTMsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MmU5NCwwLHsweDc1LDB4MzYsMHgyNSwweDc1LDB4MzcsMHgyNCwweDkwLDB4NzksMHg3NCwweGUwLDB4NjQsMHgwMSwweDcwLDB4NTQsMHhmMCwweGY1fSB9LAoteyAgMTYsMHgyZWE0LDAsezB4MzUsMHg3NSwweDIyLDB4MDEsMHhlNSwweDIyLDB4NjQsMHgwMSwweDcwLDB4NDgsMHg5MCwweDdmLDB4YTUsMHhlMCwweDQ0LDB4ODB9IH0sCi17ICAxNiwweDJlYjQsMCx7MHhmMCwweDkwLDB4N2YsMHhhNiwweGU1LDB4MzYsMHhmMCwweDEyLDB4NDYsMHhjMCwweDc0LDB4NGYsMHgyNSwweDM1LDB4ZjUsMHg4Mn0gfSwKLXsgIDE2LDB4MmVjNCwwLHsweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHhhNiwweGYwLDB4MTIsMHg0NiwweGMwLDB4NzQsMHgzNSwweDI1fSB9LAoteyAgMTYsMHgyZWQ0LDAsezB4MzUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweGE2LDB4ZjAsMHgxMiwweDQ2LDB4YzB9IH0sCi17ICAxNiwweDJlZTQsMCx7MHg5MCwweDdmLDB4YTUsMHg3NCwweDQwLDB4ZjAsMHgxMiwweDBhLDB4Y2QsMHgwNSwweDM1LDB4ZTUsMHgzNSwweGMzLDB4OTQsMHgwZH0gfSwKLXsgIDE2LDB4MmVmNCwwLHsweDQwLDB4YjIsMHg5MCwweDc5LDB4NzUsMHhlMCwweDY0LDB4MDEsMHg2MCwweDAyLDB4ZTEsMHhkZSwweGYwLDB4OTAsMHg3OSwweDIwfSB9LAoteyAgMTYsMHgyZjA0LDAsezB4ZTAsMHg2NCwweDA1LDB4NjAsMHgwMiwweGUxLDB4OGQsMHg3YiwweDAxLDB4OTAsMHg3OSwweDVjLDB4MDQsMHhmMCwweGEzLDB4NzR9IH0sCi17ICAxNiwweDJmMTQsMCx7MHg3OCwweGYwLDB4YTMsMHg3NCwweGIyLDB4ZjAsMHg3NSwweDMzLDB4MDcsMHg5MCwweDc5LDB4NWMsMHhlMCwweGZiLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4MmYyNCwwLHsweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4MTIsMHgwYywweDVkLDB4NzAsMHgwZiwweDkwLDB4MDAsMHgwNCwweDEyfSB9LAoteyAgMTYsMHgyZjM0LDAsezB4MGMsMHg1ZCwweDkwLDB4NzksMHgyZiwweGYwLDB4MTIsMHgwYywweDI5LDB4ODAsMHgwNiwweDkwLDB4NzksMHgyZiwweDc0LDB4ZmZ9IH0sCi17ICAxNiwweDJmNDQsMCx7MHhmMCwweGU0LDB4ZjUsMHgzNSwweDc1LDB4MjIsMHgwMSwweDc1LDB4MzQsMHgwMiwweGU1LDB4MjIsMHg2NCwweDAxLDB4NzAsMHgzOX0gfSwKLXsgIDE2LDB4MmY1NCwwLHsweDkwLDB4N2YsMHhhNSwweGUwLDB4NDQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweGE2LDB4ZTUsMHgzNiwweGYwLDB4MTIsMHg0NiwweGMwfSB9LAoteyAgMTYsMHgyZjY0LDAsezB4YWYsMHgzNCwweDA1LDB4MzQsMHg5MCwweDdmLDB4YTYsMHhlZiwweGYwLDB4MTIsMHg0NiwweGMwLDB4OTAsMHg3OSwweDJmLDB4ZTB9IH0sCi17ICAxNiwweDJmNzQsMCx7MHg5MCwweDdmLDB4YTYsMHhmMCwweDEyLDB4NDYsMHhjMCwweDkwLDB4N2YsMHhhNSwweDc0LDB4NDAsMHhmMCwweDEyLDB4MGEsMHhjZH0gfSwKLXsgIDE2LDB4MmY4NCwwLHsweDA1LDB4MzUsMHhlNSwweDM1LDB4YzMsMHg5NCwweDA2LDB4NDAsMHhjMSwweDkwLDB4NzksMHgyMCwweGUwLDB4NjQsMHgwNiwweDcwfSB9LAoteyAgMTYsMHgyZjk0LDAsezB4NDksMHg3YiwweDAxLDB4OTAsMHg3OSwweDVmLDB4MDQsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGZmLDB4ZjB9IH0sCi17ICAxNiwweDJmYTQsMCx7MHg3NSwweDMzLDB4MDMsMHg5MCwweDc5LDB4NWYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMH0gfSwKLXsgIDE2LDB4MmZiNCwwLHsweDAxLDB4MTIsMHgwYywweDVkLDB4NzAsMHgxYywweDkwLDB4MDAsMHgwNCwweDEyLDB4MGMsMHg1ZCwweDkwLDB4NzksMHgzMywweGYwfSB9LAoteyAgMTYsMHgyZmM0LDAsezB4NzAsMHgwMywweDc0LDB4ZmYsMHhmMCwweDkwLDB4NzksMHgzMywweGUwLDB4NTQsMHg3ZiwweGZmLDB4ZjAsMHgyNSwweGUwLDB4ZjB9IH0sCi17ICAxMCwweDJmZDQsMCx7MHg4MCwweDA1LDB4ZTQsMHg5MCwweDc5LDB4MzMsMHhmMCwweDEyLDB4NDcsMHhkZn0gfSwKLXsgICAxLDB4MmZkZSwwLHsweDIyfSB9LAoteyAgMTYsMHgyZmRmLDAsezB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3OSwweDgzLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweGEyLDB4YWZ9IH0sCi17ICAxNiwweDJmZWYsMCx7MHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHgyMn0gfSwKLXsgICAxLDB4MmZmZiwwLHsweDIyfSB9LAoteyAgMTYsMHgzMDAwLDAsezB4ZTQsMHhmZSwweDkwLDB4NzksMHgyMCwweGUwLDB4ZmQsMHhiNCwweDA1LDB4MTEsMHg5MCwweDc4LDB4MjUsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDMwMTAsMCx7MHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhiMiwweGYwLDB4NzUsMHgzNSwweDA3LDB4ZWQsMHhiNCwweDA2LDB4MTEsMHg5MH0gfSwKLXsgIDE2LDB4MzAyMCwwLHsweDc4LDB4MjUsMHg3NCwweDAxLDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhmZiwweGYwLDB4NzUsMHgzNSwweDAzfSB9LAoteyAgMTYsMHgzMDMwLDAsezB4OTAsMHg3ZiwweGViLDB4ZTAsMHgxNCwweDYwLDB4MTEsMHgxNCwweDYwLDB4NWIsMHgyNCwweDAyLDB4NjAsMHgwMiwweDQxLDB4MDV9IH0sCi17ICAxNiwweDMwNDAsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdmLDB4NzAsMHgzZH0gfSwKLXsgIDE2LDB4MzA1MCwwLHsweGU0LDB4ZmYsMHhlZiwweGMzLDB4OTUsMHgzNSwweDUwLDB4MmYsMHg5MCwweDc4LDB4MjUsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhfSB9LAoteyAgMTYsMHgzMDYwLDAsezB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4MTIsMHgwYywweDVkLDB4ZmQsMHhjYywweGVlLDB4Y2MsMHgwZSwweDc0LDB4MDB9IH0sCi17ICAxNiwweDMwNzAsMCx7MHgyYywweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWQsMHhmMCwweDkwLDB4NzgsMHgyNiwweGU0LDB4NzUsMHhmMH0gfSwKLXsgIDE2LDB4MzA4MCwwLHsweDBiLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGNiLDB4OTAsMHg3ZiwweGI1LDB4ZWUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0fSB9LAoteyAgMTYsMHgzMDkwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZSwweDYwLDB4NjQsMHgxNCwweDcwLDB4MDJ9IH0sCi17ICAxNiwweDMwYTAsMCx7MHgyMSwweDU1LDB4MTQsMHg3MCwweDAyLDB4MjEsMHhhOSwweDI0LDB4MDMsMHg2MCwweDAyLDB4MjEsMHhmZCwweGU0LDB4ZmYsMHhlZn0gfSwKLXsgIDE2LDB4MzBiMCwwLHsweGMzLDB4OTUsMHgzNSwweDUwLDB4NDYsMHg5MCwweDc4LDB4MjUsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5fSB9LAoteyAgMTYsMHgzMGMwLDAsezB4OTAsMHgwMCwweDAzLDB4MTIsMHgwYywweDVkLDB4ZmQsMHhjYywweGVlLDB4Y2MsMHgwZSwweDc0LDB4MDAsMHgyYywweGY1LDB4ODJ9IH0sCi17ICAxNiwweDMwZDAsMCx7MHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWQsMHhmMCwweDkwLDB4MDAsMHgwNCwweDEyLDB4MGMsMHg1ZCwweGZkLDB4Y2MsMHhlZX0gfSwKLXsgIDE2LDB4MzBlMCwwLHsweGNjLDB4MGUsMHg3NCwweDAwLDB4MmMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVkLDB4ZjAsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzMGYwLDAsezB4MjYsMHhlNCwweDc1LDB4ZjAsMHgwYiwweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhiNCwweDkwLDB4N2YsMHhiNSwweGVlLDB4ZjB9IH0sCi17ICAxNiwweDMxMDAsMCx7MHgyMiwweGU0LDB4ZmYsMHhlZiwweGMzLDB4OTUsMHgzNSwweDUwLDB4NDYsMHg5MCwweDc4LDB4MjUsMHhlMCwweGZiLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4MzExMCwwLHsweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwYywweDVkLDB4ZmQsMHhjYywweGVlLDB4Y2MsMHgwZSwweDc0fSB9LAoteyAgMTYsMHgzMTIwLDAsezB4MDAsMHgyYywweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWQsMHhmMCwweDkwLDB4MDAsMHgwNiwweDEyLDB4MGN9IH0sCi17ICAxNiwweDMxMzAsMCx7MHg1ZCwweGZkLDB4Y2MsMHhlZSwweGNjLDB4MGUsMHg3NCwweDAwLDB4MmMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4M30gfSwKLXsgIDE2LDB4MzE0MCwwLHsweGVkLDB4ZjAsMHg5MCwweDc4LDB4MjYsMHhlNCwweDc1LDB4ZjAsMHgwYiwweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhiNCwweDkwfSB9LAoteyAgMTYsMHgzMTUwLDAsezB4N2YsMHhiNSwweGVlLDB4ZjAsMHgyMiwweGU0LDB4ZmYsMHhlZiwweGMzLDB4OTUsMHgzNSwweDUwLDB4NDYsMHg5MCwweDc4LDB4MjV9IH0sCi17ICAxNiwweDMxNjAsMCx7MHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA3LDB4MTIsMHgwYywweDVkLDB4ZmQsMHhjY30gfSwKLXsgIDE2LDB4MzE3MCwwLHsweGVlLDB4Y2MsMHgwZSwweDc0LDB4MDAsMHgyYywweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWQsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgzMTgwLDAsezB4MDAsMHgwOCwweDEyLDB4MGMsMHg1ZCwweGZkLDB4Y2MsMHhlZSwweGNjLDB4MGUsMHg3NCwweDAwLDB4MmMsMHhmNSwweDgyLDB4ZTR9IH0sCi17ICAxNiwweDMxOTAsMCx7MHgzNCwweDdmLDB4ZjUsMHg4MywweGVkLDB4ZjAsMHg5MCwweDc4LDB4MjYsMHhlNCwweDc1LDB4ZjAsMHgwYiwweDEyLDB4MGMsMHhmNH0gfSwKLXsgIDE2LDB4MzFhMCwwLHsweDBmLDB4ODAsMHhiNCwweDkwLDB4N2YsMHhiNSwweGVlLDB4ZjAsMHgyMiwweGU0LDB4ZmYsMHhlZiwweGMzLDB4OTUsMHgzNSwweDUwfSB9LAoteyAgMTYsMHgzMWIwLDAsezB4NDYsMHg5MCwweDc4LDB4MjUsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA5LDB4MTJ9IH0sCi17ICAxNiwweDMxYzAsMCx7MHgwYywweDVkLDB4ZmQsMHhjYywweGVlLDB4Y2MsMHgwZSwweDc0LDB4MDAsMHgyYywweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNX0gfSwKLXsgIDE2LDB4MzFkMCwwLHsweDgzLDB4ZWQsMHhmMCwweDkwLDB4MDAsMHgwYSwweDEyLDB4MGMsMHg1ZCwweGZkLDB4Y2MsMHhlZSwweGNjLDB4MGUsMHg3NCwweDAwfSB9LAoteyAgMTYsMHgzMWUwLDAsezB4MmMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVkLDB4ZjAsMHg5MCwweDc4LDB4MjYsMHhlNCwweDc1LDB4ZjB9IH0sCi17ICAxNiwweDMxZjAsMCx7MHgwYiwweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhiNCwweDkwLDB4N2YsMHhiNSwweGVlLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNH0gfSwKLXsgIDEyLDB4MzIwMCwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4MzIwYywwLHsweDIyfSB9LAoteyAgMTYsMHgzMjBkLDAsezB4N2IsMHgwMSwweDdhLDB4NzgsMHg3OSwweDJiLDB4OTAsMHg3OCwweDAwLDB4ZWIsMHhmMCwweGEzLDB4ZWEsMHhmMCwweGEzLDB4ZTl9IH0sCi17ICAxNiwweDMyMWQsMCx7MHhmMCwweDc0LDB4MDEsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4MzIyZCwwLHsweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwMSwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMiwweGU0LDB4MTIsMHgwYywweDljfSB9LAoteyAgMTYsMHgzMjNkLDAsezB4OTAsMHg3OCwweDAxLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTN9IH0sCi17ICAxNiwweDMyNGQsMCx7MHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHgxMCwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhM30gfSwKLXsgIDE2LDB4MzI1ZCwwLHsweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDA1LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyfSB9LAoteyAgMTYsMHgzMjZkLDAsezB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDEsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDMyN2QsMCx7MHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDAyLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzI4ZCwwLHsweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDIsMHgxMiwweDBjfSB9LAoteyAgMTYsMHgzMjlkLDAsezB4OWMsMHg5MCwweDAwLDB4MDIsMHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwMSwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTJ9IH0sCi17ICAxNiwweDMyYWQsMCx7MHgwYywweGY0LDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4MDEsMHgxMn0gfSwKLXsgIDE2LDB4MzJiZCwwLHsweDBjLDB4OGEsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxfSB9LAoteyAgMTYsMHgzMmNkLDAsezB4NzQsMHgwMywweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMiwweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDAxLDB4ZTR9IH0sCi17ICAxNiwweDMyZGQsMCx7MHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4MzJlZCwwLHsweGY5LDB4NzQsMHgxMCwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwfSB9LAoteyAgMTYsMHgzMmZkLDAsezB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDA2LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyLDB4ZTQsMHgxMiwweDBjLDB4OWN9IH0sCi17ICAxNiwweDMzMGQsMCx7MHg5MCwweDc4LDB4MDEsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhM30gfSwKLXsgIDE2LDB4MzMxZCwwLHsweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDAyLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzfSB9LAoteyAgMTYsMHgzMzJkLDAsezB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDJ9IH0sCi17ICAxNiwweDMzM2QsMCx7MHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwMSwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzM0ZCwwLHsweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4MDIsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzMzVkLDAsezB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwNCwweDEyLDB4MGN9IH0sCi17ICAxNiwweDMzNmQsMCx7MHg5YywweDkwLDB4MDAsMHgwMiwweDc0LDB4MDQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDEsMHhlNCwweDc1LDB4ZjAsMHgwM30gfSwKLXsgIDE2LDB4MzM3ZCwwLHsweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDAyfSB9LAoteyAgMTYsMHgzMzhkLDAsezB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDB9IH0sCi17ICAxNiwweDMzOWQsMCx7MHgwMSwweDc0LDB4MDMsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDIsMHg3NCwweDA0LDB4MTIsMHgwYywweDljLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzNhZCwwLHsweDAxLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhfSB9LAoteyAgMTYsMHgzM2JkLDAsezB4YTMsMHhlMCwweGY5LDB4NzQsMHgwMiwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmF9IH0sCi17ICAxNiwweDMzY2QsMCx7MHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDAyLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyLDB4NzQsMHgwNH0gfSwKLXsgIDE2LDB4MzNkZCwwLHsweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwMSwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAwfSB9LAoteyAgMTYsMHgzM2VkLDAsezB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4MDIsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDB9IH0sCi17ICAxNiwweDMzZmQsMCx7MHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwMSwweDEyLDB4MGMsMHg5Y30gfSwKLXsgICA4LDB4MzQwZCwwLHsweDkwLDB4MDAsMHgwMiwweDc0LDB4MDQsMHgxMiwweDBjLDB4OWN9IH0sCi17ICAgMSwweDM0MTUsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MzQxNiwwLHsweGU0LDB4ZmUsMHg5MCwweDc5LDB4MjAsMHhlMCwweGZkLDB4YjQsMHgwNSwweDExLDB4OTAsMHg3OCwweDFmLDB4NzQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgzNDI2LDAsezB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4YjIsMHhmMCwweDc1LDB4MzUsMHgwNywweGVkLDB4YjQsMHgwNiwweDExLDB4OTB9IH0sCi17ICAxNiwweDM0MzYsMCx7MHg3OCwweDFmLDB4NzQsMHgwMSwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4ZmYsMHhmMCwweDc1LDB4MzUsMHgwM30gfSwKLXsgIDE2LDB4MzQ0NiwwLHsweDkwLDB4NzksMHg5OSwweGUwLDB4MTQsMHg2MCwweDExLDB4MTQsMHg2MCwweDViLDB4MjQsMHgwMiwweDYwLDB4MDIsMHhjMSwweDA2fSB9LAoteyAgMTYsMHgzNDU2LDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzksMHg5NywweGUwLDB4MTQsMHg3MCwweDNlLDB4ZTR9IH0sCi17ICAxNiwweDM0NjYsMCx7MHhmZiwweGVmLDB4YzMsMHg5NSwweDM1LDB4NTAsMHgyZiwweGNkLDB4ZWUsMHhjZCwweDBlLDB4NzQsMHgyMSwweDJkLDB4ZjUsMHg4Mn0gfSwKLXsgIDE2LDB4MzQ3NiwwLHsweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweGZkLDB4OTAsMHg3OCwweDFmLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzfSB9LAoteyAgMTYsMHgzNDg2LDAsezB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweGVkLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDIwLDB4ZTQsMHg3NSwweGYwLDB4MGJ9IH0sCi17ICAxNiwweDM0OTYsMCx7MHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4Y2IsMHg5MCwweDc5LDB4NzUsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNH0gfSwKLXsgIDE2LDB4MzRhNiwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc5LDB4OTcsMHhlMCwweDI0LDB4ZmUsMHg2MCwweDYzLDB4MTQsMHg3MCwweDAyfSB9LAoteyAgMTYsMHgzNGI2LDAsezB4YTEsMHg2NCwweDE0LDB4NzAsMHgwMiwweGExLDB4YjIsMHgyNCwweDAzLDB4NjAsMHgwMiwweGExLDB4ZmUsMHhlNCwweGZmLDB4ZWZ9IH0sCi17ICAxNiwweDM0YzYsMCx7MHhjMywweDk1LDB4MzUsMHg1MCwweDQ0LDB4Y2QsMHhlZSwweGNkLDB4MGUsMHg3NCwweDIxLDB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNH0gfSwKLXsgIDE2LDB4MzRkNiwwLHsweDc5LDB4ZjUsMHg4MywweGUwLDB4ZmQsMHg5MCwweDc4LDB4MWYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5fSB9LAoteyAgMTYsMHgzNGU2LDAsezB4OTAsMHgwMCwweDAzLDB4ZWQsMHgxMiwweDBjLDB4OWMsMHhjZCwweGVlLDB4Y2QsMHgwZSwweDc0LDB4MjEsMHgyZCwweGY1LDB4ODJ9IH0sCi17ICAxNiwweDM0ZjYsMCx7MHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDAwLDB4MDQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MjAsMHhlNH0gfSwKLXsgIDE2LDB4MzUwNiwwLHsweDc1LDB4ZjAsMHgwYiwweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhiNiwweDkwLDB4NzksMHg3NSwweDc0LDB4MDEsMHhmMCwweDIyfSB9LAoteyAgMTYsMHgzNTE2LDAsezB4ZTQsMHhmZiwweGVmLDB4YzMsMHg5NSwweDM1LDB4NDAsMHgwMiwweGMxLDB4MGQsMHhjZCwweGVlLDB4Y2QsMHgwZSwweDc0LDB4MjF9IH0sCi17ICAxNiwweDM1MjYsMCx7MHgyZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHhmZCwweDkwLDB4NzgsMHgxZiwweGUwLDB4ZmIsMHhhM30gfSwKLXsgIDE2LDB4MzUzNiwwLHsweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDUsMHhlZCwweDEyLDB4MGMsMHg5YywweGNkLDB4ZWUsMHhjZCwweDBlfSB9LAoteyAgMTYsMHgzNTQ2LDAsezB4NzQsMHgyMSwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4MDAsMHgwNiwweDEyLDB4MGN9IH0sCi17ICAxNiwweDM1NTYsMCx7MHg5YywweDkwLDB4NzgsMHgyMCwweGU0LDB4NzUsMHhmMCwweDBiLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGI0LDB4ZTQsMHhmZn0gfSwKLXsgIDE2LDB4MzU2NiwwLHsweGVmLDB4YzMsMHg5NSwweDM1LDB4NDAsMHgwMiwweGMxLDB4MGQsMHhjZCwweGVlLDB4Y2QsMHgwZSwweDc0LDB4MjEsMHgyZCwweGY1fSB9LAoteyAgMTYsMHgzNTc2LDAsezB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHhmZCwweDkwLDB4NzgsMHgxZiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmF9IH0sCi17ICAxNiwweDM1ODYsMCx7MHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDcsMHhlZCwweDEyLDB4MGMsMHg5YywweGNkLDB4ZWUsMHhjZCwweDBlLDB4NzQsMHgyMX0gfSwKLXsgIDE2LDB4MzU5NiwwLHsweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4MDAsMHgwOCwweDEyLDB4MGMsMHg5YywweDkwfSB9LAoteyAgMTYsMHgzNWE2LDAsezB4NzgsMHgyMCwweGU0LDB4NzUsMHhmMCwweDBiLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGI0LDB4ZTQsMHhmZiwweGVmLDB4YzN9IH0sCi17ICAxNiwweDM1YjYsMCx7MHg5NSwweDM1LDB4NTAsMHg1MywweGNkLDB4ZWUsMHhjZCwweDBlLDB4NzQsMHgyMSwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OX0gfSwKLXsgIDE2LDB4MzVjNiwwLHsweGY1LDB4ODMsMHhlMCwweGZkLDB4OTAsMHg3OCwweDFmLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwfSB9LAoteyAgMTYsMHgzNWQ2LDAsezB4MDAsMHgwOSwweGVkLDB4MTIsMHgwYywweDljLDB4Y2QsMHhlZSwweGNkLDB4MGUsMHg3NCwweDIxLDB4MmQsMHhmNSwweDgyLDB4ZTR9IH0sCi17ICAxNiwweDM1ZTYsMCx7MHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHgwMCwweDBhLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDIwLDB4ZTQsMHg3NX0gfSwKLXsgIDE2LDB4MzVmNiwwLHsweGYwLDB4MGIsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4YjYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyfSB9LAoteyAgIDcsMHgzNjA2LDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDM2MGQsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MzYwZSwwLHsweGU0LDB4ZmUsMHg5MCwweDc5LDB4MjAsMHhlMCwweGZkLDB4YjQsMHgwNSwweDEwLDB4OTAsMHg3OCwweDI4LDB4NzQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgzNjFlLDAsezB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4YjIsMHhmMCwweDdmLDB4MDcsMHhlZCwweGI0LDB4MDYsMHgxMCwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDM2MmUsMCx7MHgyOCwweDc0LDB4MDEsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGZmLDB4ZjAsMHg3ZiwweDAzLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzYzZSwwLHsweDI4LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDEyLDB4MGMsMHg0NCwweGZkLDB4OTAsMHg3ZiwweGVhfSB9LAoteyAgMTYsMHgzNjRlLDAsezB4ZTAsMHg2ZCwweDYwLDB4MTIsMHhlZSwweGMzLDB4OWYsMHg1MCwweDBkLDB4OTAsMHg3OCwweDI5LDB4ZTQsMHg3NSwweGYwLDB4MGJ9IH0sCi17ICAxNiwweDM2NWUsMCx7MHgxMiwweDBjLDB4ZjQsMHgwZSwweDgwLDB4ZDgsMHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NjAsMHgxMSwweDE0LDB4NjAsMHg0Nn0gfSwKLXsgIDE2LDB4MzY2ZSwwLHsweDI0LDB4MDIsMHg2MCwweDAyLDB4ZTEsMHg5YSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgzNjdlLDAsezB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDI4LDB4ZWUsMHg2ZiwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9IH0sCi17ICAxNiwweDM2OGUsMCx7MHhmMCwweDIyLDB4OTAsMHg3OCwweDI4LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMX0gfSwKLXsgIDE2LDB4MzY5ZSwwLHsweDEyLDB4MGMsMHg1ZCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgzNmFlLDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdlLDB4NjAsMHg0MCwweDE0LDB4NjB9IH0sCi17ICAxNiwweDM2YmUsMCx7MHg2ZiwweDE0LDB4NzAsMHgwMiwweGUxLDB4NjAsMHgyNCwweDAzLDB4NjAsMHgwMiwweGUxLDB4OTIsMHhlZSwweDZmLDB4NzAsMHgwOH0gfSwKLXsgIDE2LDB4MzZjZSwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc4LDB4MjgsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhfSB9LAoteyAgMTYsMHgzNmRlLDAsezB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAzLDB4MTIsMHgwYywweDVkLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDAwLDB4MDR9IH0sCi17ICAxNiwweDM2ZWUsMCx7MHgxMiwweDBjLDB4NWQsMHg5MCwweDdmLDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDIyLDB4ZWUsMHg2Zn0gfSwKLXsgIDE2LDB4MzZmZSwwLHsweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OCwweDI4LDB4ZTAsMHhmYiwweGEzfSB9LAoteyAgMTYsMHgzNzBlLDAsezB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNSwweDEyLDB4MGMsMHg1ZCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTB9IH0sCi17ICAxNiwweDM3MWUsMCx7MHgwMCwweDA2LDB4MTIsMHgwYywweDVkLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4MzcyZSwwLHsweGVlLDB4NmYsMHg3MCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzgsMHgyOCwweGUwfSB9LAoteyAgMTYsMHgzNzNlLDAsezB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDcsMHgxMiwweDBjLDB4NWQsMHg5MCwweDdmLDB4MDB9IH0sCi17ICAxNiwweDM3NGUsMCx7MHhmMCwweDkwLDB4MDAsMHgwOCwweDEyLDB4MGMsMHg1ZCwweDkwLDB4N2YsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMn0gfSwKLXsgIDE2LDB4Mzc1ZSwwLHsweGYwLDB4MjIsMHhlZSwweDZmLDB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzNzZlLDAsezB4MjgsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA5LDB4MTIsMHgwYywweDVkLDB4OTB9IH0sCi17ICAxNiwweDM3N2UsMCx7MHg3ZiwweDAwLDB4ZjAsMHg5MCwweDAwLDB4MGEsMHgxMiwweDBjLDB4NWQsMHg5MCwweDdmLDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNX0gfSwKLXsgIDE2LDB4Mzc4ZSwwLHsweDc0LDB4MDIsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwfSB9LAoteyAgIDMsMHgzNzllLDAsezB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHgzN2ExLDAsezB4MjJ9IH0sCi17ICAxNiwweDM3YTIsMCx7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4YzAsMHhkMCwweGU4LDB4YzAsMHhlMCwweGU5LDB4YzAsMHhlMH0gfSwKLXsgIDE2LDB4MzdiMiwwLHsweGVhLDB4YzAsMHhlMCwweGViLDB4YzAsMHhlMCwweGVjLDB4YzAsMHhlMCwweGVkLDB4YzAsMHhlMCwweGVlLDB4YzAsMHhlMCwweGVmfSB9LAoteyAgMTYsMHgzN2MyLDAsezB4YzAsMHhlMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MTAsMHhmMCwweDkwLDB4NzksMHg4MywweGUwLDB4NTR9IH0sCi17ICAxNiwweDM3ZDIsMCx7MHhmZCwweGYwLDB4MTIsMHgyZiwweGRmLDB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMH0gfSwKLXsgIDE2LDB4MzdlMiwwLHsweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDAsMHhlMCwweGZhLDB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhkMCwweGQwfSB9LAoteyAgIDgsMHgzN2YyLDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgICA2LDB4MzdmYSwwLHsweDUzLDB4OTEsMHhiZiwweGQyLDB4MjYsMHgzMn0gfSwKLXsgIDE2LDB4MzgwMCwwLHsweGU0LDB4ZmUsMHg5MCwweDc5LDB4MjAsMHhlMCwweGZkLDB4YjQsMHgwNSwweDEwLDB4OTAsMHg3OCwweDIyLDB4NzQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgzODEwLDAsezB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4YjIsMHhmMCwweDdmLDB4MDcsMHhlZCwweGI0LDB4MDYsMHgxMCwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDM4MjAsMCx7MHgyMiwweDc0LDB4MDEsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGZmLDB4ZjAsMHg3ZiwweDAzLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzgzMCwwLHsweDIyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDEyLDB4MGMsMHg0NCwweGZkLDB4OTAsMHg3OSwweDk4fSB9LAoteyAgMTYsMHgzODQwLDAsezB4ZTAsMHg2ZCwweDYwLDB4MTIsMHhlZSwweGMzLDB4OWYsMHg1MCwweDBkLDB4OTAsMHg3OCwweDIzLDB4ZTQsMHg3NSwweGYwLDB4MGJ9IH0sCi17ICAxNiwweDM4NTAsMCx7MHgxMiwweDBjLDB4ZjQsMHgwZSwweDgwLDB4ZDgsMHg5MCwweDc5LDB4OTksMHhlMCwweDE0LDB4NjAsMHgxMSwweDE0LDB4NjAsMHg0OH0gfSwKLXsgIDE2LDB4Mzg2MCwwLHsweDI0LDB4MDIsMHg2MCwweDAyLDB4MjEsMHg4NSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgzODcwLDAsezB4OTcsMHhlMCwweDE0LDB4NzAsMHgyYiwweGVlLDB4NmYsMHg3MCwweDA5LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDM4ODAsMCx7MHg4MCwweDE3LDB4OTAsMHg3OSwweDIxLDB4ZTAsMHhmZCwweDkwLDB4NzgsMHgyMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhM30gfSwKLXsgIDE2LDB4Mzg5MCwwLHsweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHhlZCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzksMHg3NSwweDc0LDB4MDEsMHhmMCwweDIyfSB9LAoteyAgMTYsMHgzOGEwLDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzksMHg5NywweGUwLDB4MjQsMHhmZSwweDYwLDB4NDN9IH0sCi17ICAxNiwweDM4YjAsMCx7MHgxNCwweDYwLDB4NmUsMHgxNCwweDcwLDB4MDIsMHgyMSwweDRmLDB4MjQsMHgwMywweDYwLDB4MDIsMHgyMSwweDdkLDB4ZWUsMHg2Zn0gfSwKLXsgIDE2LDB4MzhjMCwwLHsweDcwLDB4MDksMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MjEsMHg5MCwweDc5LDB4MjEsMHhlMCwweGZkfSB9LAoteyAgMTYsMHgzOGQwLDAsezB4OTAsMHg3OCwweDIyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMywweGVkLDB4MTJ9IH0sCi17ICAxNiwweDM4ZTAsMCx7MHgwYywweDljLDB4OTAsMHg3OSwweDIyLDB4ZTAsMHg5MCwweDAwLDB4MDQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc5LDB4NzUsMHg3NH0gfSwKLXsgIDE2LDB4MzhmMCwwLHsweDAxLDB4ZjAsMHgyMiwweGVlLDB4NmYsMHg3MCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwfSB9LAoteyAgMTYsMHgzOTAwLDAsezB4NzksMHgyMSwweGUwLDB4ZmQsMHg5MCwweDc4LDB4MjIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTB9IH0sCi17ICAxNiwweDM5MTAsMCx7MHgwMCwweDA1LDB4ZWQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc5LDB4MjIsMHhlMCwweDkwLDB4MDAsMHgwNiwweDEyLDB4MGMsMHg5Y30gfSwKLXsgIDE2LDB4MzkyMCwwLHsweDIyLDB4ZWUsMHg2ZiwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OSwweDIxfSB9LAoteyAgMTYsMHgzOTMwLDAsezB4ZTAsMHhmZCwweDkwLDB4NzgsMHgyMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDd9IH0sCi17ICAxNiwweDM5NDAsMCx7MHhlZCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzksMHgyMiwweGUwLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwYywweDljLDB4MjIsMHhlZX0gfSwKLXsgIDE2LDB4Mzk1MCwwLHsweDZmLDB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc5LDB4MjEsMHhlMCwweGZlfSB9LAoteyAgMTYsMHgzOTYwLDAsezB4OTAsMHg3OCwweDIyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwOSwweGVlLDB4MTJ9IH0sCi17ICAxNiwweDM5NzAsMCx7MHgwYywweDljLDB4OTAsMHg3OSwweDIyLDB4ZTAsMHg5MCwweDAwLDB4MGEsMHgxMiwweDBjLDB4OWMsMHgyMiwweDkwLDB4N2YsMHhiNH0gfSwKLXsgIDEyLDB4Mzk4MCwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4Mzk4YywwLHsweDIyfSB9LAoteyAgMTYsMHgzOThkLDAsezB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4ZTQsMHg5MCwweDc5LDB4ODMsMHhmMCwweDEyLDB4MmYsMHhkZiwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDM5OWQsMCx7MHhlMCwweDc0LDB4OTAsMHhmMCwweDkwLDB4N2YsMHhlMSwweDc0LDB4MDQsMHhmMCwweGU0LDB4OTAsMHg3ZiwweGRkLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MzlhZCwwLHsweDdmLDB4YTEsMHhmMCwweDUzLDB4OGUsMHhmOCwweDc1LDB4ODgsMHgwNSwweDc1LDB4YjgsMHgyMCwweDc1LDB4ZjgsMHgwMSwweDQzfSB9LAoteyAgMTYsMHgzOWJkLDAsezB4OGUsMHgzMCwweGY1LDB4YzgsMHg3NSwweGNhLDB4N2YsMHg3NSwweGNiLDB4ZjgsMHg0MywweGE4LDB4MjAsMHg5MCwweDc5LDB4NzR9IH0sCi17ICAxNiwweDM5Y2QsMCx7MHgwNCwweGYwLDB4YzIsMHgyMiwweGU0LDB4ZjUsMHgwZiwweDkwLDB4NzksMHg3OCwweGYwLDB4YTMsMHhmMCwweDkwLDB4NzksMHg2Mn0gfSwKLXsgIDE2LDB4MzlkZCwwLHsweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHg5MCwweDc5LDB4NjYsMHhmMCwweGEzLDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhmMCwweGEzfSB9LAoteyAgMTYsMHgzOWVkLDAsezB4ZjAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDkwLDB4NzksMHg3ZCwweGYwLDB4OTAsMHg3OSwweDc1LDB4ZjAsMHhhMywweGYwLDB4YTN9IH0sCi17ICAxNiwweDM5ZmQsMCx7MHhmMCwweGMyLDB4MjMsMHhjMiwweDI0LDB4YzIsMHgyNSwweGMyLDB4MjYsMHhjMiwweDIwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmNX0gfSwKLXsgIDE2LDB4M2EwZCwwLHsweDBhLDB4NTQsMHgyMCwweGY1LDB4MGEsMHg3MCwweDA2LDB4OTAsMHg3OSwweDdlLDB4ZjAsMHg4MCwweDA2LDB4OTAsMHg3OSwweDdlfSB9LAoteyAgMTYsMHgzYTFkLDAsezB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmNSwweDBhLDB4NTQsMHgwMiwweGY1LDB4MGEsMHg3MCwweDA2LDB4OTB9IH0sCi17ICAxNiwweDNhMmQsMCx7MHg3OSwweDdmLDB4ZjAsMHg4MCwweDA2LDB4OTAsMHg3OSwweDdmLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMn0gfSwKLXsgIDE2LDB4M2EzZCwwLHsweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5fSB9LAoteyAgMTYsMHgzYTRkLDAsezB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDNhNWQsMCx7MHg5MCwweDc5LDB4NzksMHhlMCwweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMX0gfSwKLXsgIDE2LDB4M2E2ZCwwLHsweGYwLDB4OTAsMHg3OSwweDdjLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3ZSwweGUwLDB4YjQsMHgwMSwweDA5fSB9LAoteyAgMTYsMHgzYTdkLDAsezB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZiLDB4ZjB9IH0sCi17ICAxNiwweDNhOGQsMCx7MHg5MCwweDc5LDB4NzksMHhlMCwweDkwLDB4NzksMHg3YywweGYwLDB4MTIsMHgwYiwweGEyLDB4ZTQsMHg5MCwweDc5LDB4NzgsMHhmMH0gfSwKLXsgIDE2LDB4M2E5ZCwwLHsweGEzLDB4MDQsMHhmMCwweGU0LDB4OTAsMHg3OSwweDg4LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGRkfSB9LAoteyAgMTYsMHgzYWFkLDAsezB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAxLDB4ZjAsMHhhMywweGYwLDB4MTJ9IH0sCi17ICAxNiwweDNhYmQsMCx7MHgwYiwweGEyLDB4ZTQsMHg5MCwweDc5LDB4N2EsMHhmMCwweDkwLDB4NzksMHg4MywweDA0LDB4ZjAsMHgxMiwweDJmLDB4ZGYsMHhlNH0gfSwKLXsgIDE2LDB4M2FjZCwwLHsweDkwLDB4NzksMHgzMCwweGYwLDB4OTAsMHg3OSwweDg1LDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweDEyLDB4MmUsMHg5NCwweDkwfSB9LAoteyAgMTYsMHgzYWRkLDAsezB4NzksMHgyZCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4OCwweDE0LDB4ZjAsMHhjMiwweDJmLDB4ZTQsMHg5MCwweDc5LDB4Njh9IH0sCi17ICAxNiwweDNhZWQsMCx7MHhmMCwweDkwLDB4NzksMHg4YSwweGYwLDB4OTAsMHg3OSwweDZhLDB4ZjAsMHhhMywweGYwLDB4NzUsMHgxMywweDA4LDB4NzUsMHgxNH0gfSwKLXsgIDE2LDB4M2FmZCwwLHsweDA4LDB4ZjUsMHgxNiwweGY1LDB4MTUsMHhmNSwweDE3LDB4OTAsMHg3OSwweDhjLDB4ZjAsMHg5MCwweDc5LDB4OGIsMHhmMCwweDIyfSB9LAoteyAgMTYsMHgzYjBkLDAsezB4N2IsMHgwMSwweDdhLDB4NzgsMHg3OSwweDU4LDB4OTAsMHg3OCwweDAzLDB4ZWIsMHhmMCwweGEzLDB4ZWEsMHhmMCwweGEzLDB4ZTl9IH0sCi17ICAxNiwweDNiMWQsMCx7MHhmMCwweDc0LDB4NDAsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4M2IyZCwwLHsweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwYSwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMiwweDEyLDB4MGQsMHhmNiwweDAwfSB9LAoteyAgMTYsMHgzYjNkLDAsezB4MDAsMHhiYiwweDgwLDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwZCwweGY2LDB4MDAsMHgwMCwweGFjLDB4NDQsMHg5MCwweDAwLDB4MGF9IH0sCi17ICAxNiwweDNiNGQsMCx7MHgxMiwweDBkLDB4ZjYsMHgwMCwweDAxLDB4NzcsMHgwMCwweDkwLDB4NzgsMHgwNCwweGU0LDB4NzUsMHhmMCwweDBmLDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4M2I1ZCwwLHsweGY0LDB4OTAsMHg3OCwweDAzLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4NDAsMHgxMiwweDBjfSB9LAoteyAgMTYsMHgzYjZkLDAsezB4OGEsMHg5MCwweDc4LDB4MDMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzR9IH0sCi17ICAxNiwweDNiN2QsMCx7MHg4YywweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMiwweDEyLDB4MGQsMHhmNiwweDAwLDB4MDAsMHhiYiwweDgwLDB4OTAsMHgwMH0gfSwKLXsgIDE2LDB4M2I4ZCwwLHsweDA2LDB4MTIsMHgwZCwweGY2LDB4MDAsMHgwMCwweGFjLDB4NDQsMHg5MCwweDAwLDB4MGEsMHgxMiwweDBkLDB4ZjYsMHgwMCwweDAxfSB9LAoteyAgMTYsMHgzYjlkLDAsezB4NzcsMHgwMCwweDkwLDB4NzgsMHgwNCwweGU0LDB4NzUsMHhmMCwweDBmLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAzLDB4ZTB9IH0sCi17ICAxNiwweDNiYWQsMCx7MHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4NDAsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDMsMHhlMH0gfSwKLXsgIDE2LDB4M2JiZCwwLHsweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHg4ZiwweDEyLDB4MGMsMHg5YywweDkwfSB9LAoteyAgMTYsMHgzYmNkLDAsezB4NzgsMHgwNCwweGU0LDB4NzUsMHhmMCwweDBmLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAzLDB4ZTAsMHhmYiwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDNiZGQsMCx7MHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4NDEsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDMsMHhlMCwweGZiLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4M2JlZCwwLHsweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHg4NCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwNCwweGU0fSB9LAoteyAgMTYsMHgzYmZkLDAsezB4NzUsMHhmMCwweDBmLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAzLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDNjMGQsMCx7MHhmOSwweDc0LDB4NjEsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4M2MxZCwwLHsweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHg4MSwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwNCwweGU0LDB4NzUsMHhmMCwweDBmfSB9LAoteyAgMTYsMHgzYzJkLDAsezB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAzLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4NjF9IH0sCi17ICAxNiwweDNjM2QsMCx7MHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMH0gfSwKLXsgICA2LDB4M2M0ZCwwLHsweDAxLDB4NzQsMHgwMSwweDEyLDB4MGMsMHg5Y30gfSwKLXsgICAxLDB4M2M1MywwLHsweDIyfSB9LAoteyAgMTYsMHgzYzU0LDAsezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwweGMwLDB4ZTB9IH0sCi17ICAxNiwweDNjNjQsMCx7MHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLDB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLDB4ZTAsMHhlZn0gfSwKLXsgICAyLDB4M2M3NCwwLHsweGMwLDB4ZTB9IH0sCi17ICAxNiwweDNjNzYsMCx7MHg5MCwweDdmLDB4YTIsMHhlMCwweGY1LDB4MGIsMHg5MCwweDdmLDB4NzQsMHhlMCwweDkwLDB4NzksMHg3MCwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4M2M4NiwwLHsweDc1LDB4ZTAsMHg5MCwweDc5LDB4NzEsMHhmMCwweDkwLDB4NzksMHg4MywweGUwLDB4ZmYsMHhmZSwweDU0LDB4MDIsMHhmZSwweDcwfSB9LAoteyAgMTYsMHgzYzk2LDAsezB4MGQsMHhlZiwweDQ0LDB4MDIsMHhmMCwweDEyLDB4MmYsMHhkZiwweDkwLDB4NzksMHg3NCwweDc0LDB4MDEsMHhmMCwweGU1LDB4MGJ9IH0sCi17ICAxNiwweDNjYTYsMCx7MHgyMCwweGUyLDB4MjgsMHg5MCwweDc5LDB4NzAsMHhlMCwweGZlLDB4YTMsMHhlMCwweDdjLDB4MDAsMHgyNCwweDAwLDB4ZjUsMHgxMX0gfSwKLXsgIDE2LDB4M2NiNiwwLHsweGVjLDB4M2UsMHhmNSwweDEwLDB4OTAsMHg3OSwweDgyLDB4ZTAsMHhmZCwweGFlLDB4MTAsMHhhZiwweDExLDB4MTIsMHgwYywweGJlfSB9LAoteyAgMTYsMHgzY2M2LDAsezB4OTAsMHg3OSwweDcwLDB4ZWYsMHhmMCwweDkwLDB4NzksMHg4OSwweDc0LDB4MDEsMHhmMCwweDEyLDB4NDgsMHg0MywweDEyLDB4NDh9IH0sCi17ICAxNiwweDNjZDYsMCx7MHg3NiwweDkwLDB4NzksMHg4OSwweGUwLDB4NjQsMHgwMSwweDcwLDB4MzIsMHgxMiwweDQxLDB4MDgsMHg5MCwweDc5LDB4ODksMHhlNH0gfSwKLXsgIDE2LDB4M2NlNiwwLHsweGYwLDB4OTAsMHg3ZiwweDk4LDB4ZTAsMHg0NCwweDQwLDB4ZjAsMHg5MCwweDdmLDB4OWUsMHhlMCwweDQ0LDB4NDAsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgzY2Y2LDAsezB4N2YsMHg5NSwweDc0LDB4ODAsMHhmMCwweDc1LDB4ZTgsMHgwMSwweDEyLDB4MDksMHgzMiwweDc1LDB4ZTgsMHgwZCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDNkMDYsMCx7MHg5NSwweDc0LDB4YzAsMHhmMCwweDc1LDB4ZTgsMHgwZCwweGQyLDB4MjAsMHg4MCwweDA1LDB4NzUsMHhlOCwweDAxLDB4YzIsMHgyMH0gfSwKLXsgIDE2LDB4M2QxNiwwLHsweDIwLDB4MjAsMHgyYiwweDkwLDB4NzksMHgyZCwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MDksMHg3NSwweDBjLDB4NjcsMHg3NSwweDBkfSB9LAoteyAgMTYsMHgzZDI2LDAsezB4MDYsMHg3NSwweDBlLDB4MGIsMHhlZiwweGI0LDB4MDIsMHgwOSwweDc1LDB4MGMsMHgwMCwweDc1LDB4MGQsMHgwMCwweDc1LDB4MGV9IH0sCi17ICAxNiwweDNkMzYsMCx7MHgwYywweGVmLDB4YjQsMHgwMywweDA5LDB4NzUsMHgwYywweDAwLDB4NzUsMHgwZCwweDAwLDB4NzUsMHgwZSwweDE4LDB4NzUsMHhjYX0gfSwKLXsgIDE2LDB4M2Q0NiwwLHsweDZmLDB4NzUsMHhjYiwweGZlLDB4ZDIsMHhjYSwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDIsMHhmMCwweGYwfSB9LAoteyAgMTYsMHgzZDU2LDAsezB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDB9IH0sCi17ICAxNiwweDNkNjYsMCx7MHhlMCwweGZhLDB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhkMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhmMH0gfSwKLXsgICAzLDB4M2Q3NiwwLHsweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4M2Q3OSwwLHsweDc1LDB4MzMsMHgyNSwweDc1LDB4MzQsMHgyNCwweDkwLDB4NzksMHg1YywweDc0LDB4MDEsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwfSB9LAoteyAgMTYsMHgzZDg5LDAsezB4YTMsMHg3NCwweGIyLDB4ZjAsMHgyMCwweDJmLDB4MDIsMHhjMSwweDE3LDB4ZTQsMHhmNSwweDM1LDB4NzUsMHgyMiwweDAxLDB4OTB9IH0sCi17ICAxNiwweDNkOTksMCx7MHg3OSwweDVjLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNCwweDEyLDB4MGMsMHg1ZH0gfSwKLXsgIDE2LDB4M2RhOSwwLHsweGY1LDB4MzYsMHg3NSwweDM1LDB4MDYsMHg3NCwweDQyLDB4MjUsMHgzNSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzfSB9LAoteyAgMTYsMHgzZGI5LDAsezB4ZTUsMHgzNiwweGYwLDB4MDUsMHgzNSwweGU1LDB4MzUsMHhiNCwweDBjLDB4ZWIsMHhlNSwweDM1LDB4YzMsMHg5NCwweDBkLDB4NDB9IH0sCi17ICAxNiwweDNkYzksMCx7MHgwMiwweGMxLDB4OTgsMHhlNSwweDIyLDB4NjQsMHgwMSwweDYwLDB4MDIsMHhjMSwweDk4LDB4OTAsMHg3ZiwweGE1LDB4ZTAsMHg0NH0gfSwKLXsgIDE2LDB4M2RkOSwwLHsweDgwLDB4ZjAsMHg5MCwweDdmLDB4YTYsMHhlNSwweDMzLDB4ZjAsMHgxMiwweDQ2LDB4YzAsMHg3NCwweDRmLDB4MjUsMHgzNSwweGY1fSB9LAoteyAgMTYsMHgzZGU5LDAsezB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4YTYsMHhmMCwweDEyLDB4NDYsMHhjMCwweDc0LDB4NDJ9IH0sCi17ICAxNiwweDNkZjksMCx7MHgyNSwweDM1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHhhNiwweGYwLDB4MTIsMHg0Nn0gfSwKLXsgIDE2LDB4M2UwOSwwLHsweGMwLDB4OTAsMHg3ZiwweGE1LDB4NzQsMHg0MCwweGYwLDB4MTIsMHgwYSwweGNkLDB4MDUsMHgzNSwweDgwLDB4YWMsMHhlNCwweGY1fSB9LAoteyAgMTYsMHgzZTE5LDAsezB4MzUsMHg3NSwweDIyLDB4MDEsMHg5MCwweDc5LDB4NWMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTB9IH0sCi17ICAxNiwweDNlMjksMCx7MHgwMCwweDA0LDB4MTIsMHgwYywweDVkLDB4ZjUsMHgzNiwweDc1LDB4MzUsMHgwNiwweDc0LDB4MzUsMHgyNSwweDM1LDB4ZjUsMHg4Mn0gfSwKLXsgIDE2LDB4M2UzOSwwLHsweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlNSwweDM2LDB4ZjAsMHgwNSwweDM1LDB4ZTUsMHgzNSwweGI0LDB4MGMsMHhlYiwweGU1fSB9LAoteyAgMTYsMHgzZTQ5LDAsezB4MzUsMHhjMywweDk0LDB4MGQsMHg1MCwweDQ5LDB4ZTUsMHgyMiwweDY0LDB4MDEsMHg3MCwweDQzLDB4OTAsMHg3ZiwweGE1LDB4ZTB9IH0sCi17ICAxNiwweDNlNTksMCx7MHg0NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4YTYsMHhlNSwweDMzLDB4ZjAsMHgxMiwweDQ2LDB4YzAsMHg3NCwweDRmLDB4MjUsMHgzNX0gfSwKLXsgIDE2LDB4M2U2OSwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4YTYsMHhmMCwweDEyLDB4NDYsMHhjMCwweDc0fSB9LAoteyAgMTYsMHgzZTc5LDAsezB4MzUsMHgyNSwweDM1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHhhNiwweGYwLDB4MTJ9IH0sCi17ICAxNSwweDNlODksMCx7MHg0NiwweGMwLDB4OTAsMHg3ZiwweGE1LDB4NzQsMHg0MCwweGYwLDB4MTIsMHgwYSwweGNkLDB4MDUsMHgzNSwweDgwLDB4YjB9IH0sCi17ICAgMSwweDNlOTgsMCx7MHgyMn0gfSwKLXsgIDE2LDB4M2U5OSwwLHsweDkwLDB4NzgsMHgwOSwweDc0LDB4MDEsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGIyLDB4ZjAsMHhlNCwweGZmfSB9LAoteyAgMTYsMHgzZWE5LDAsezB4ZmUsMHg5MCwweDc4LDB4MDksMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4ZWYsMHgxMiwweDBjLDB4OGF9IH0sCi17ICAxNiwweDNlYjksMCx7MHg5MCwweDc4LDB4MDksMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4ZTQsMHgxMn0gfSwKLXsgIDE2LDB4M2VjOSwwLHsweDBjLDB4OWMsMHg5MCwweDAwLDB4MDIsMHg3NCwweDE1LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAzLDB4ZTQsMHgxMiwweDBjfSB9LAoteyAgMTYsMHgzZWQ5LDAsezB4OWMsMHg5MCwweDAwLDB4MDQsMHg3NCwweGZmLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDA1LDB4ZTQsMHgxMiwweDBjLDB4OWN9IH0sCi17ICAxNiwweDNlZTksMCx7MHg5MCwweDAwLDB4MDYsMHg3NCwweGMzLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDA3LDB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MH0gfSwKLXsgIDE2LDB4M2VmOSwwLHsweDAwLDB4MDgsMHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwOSwweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDBhfSB9LAoteyAgMTYsMHgzZjA5LDAsezB4NzQsMHgwMSwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwYSwweGU0LDB4NzUsMHhmMCwweDBiLDB4MTIsMHgwYywweGY0LDB4MGZ9IH0sCi17ICAxNiwweDNmMTksMCx7MHgwZSwweGJlLDB4MDcsMHg4ZCwweDkwLDB4NzgsMHgwOSwweDc0LDB4MDEsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NH0gfSwKLXsgIDE2LDB4M2YyOSwwLHsweGZmLDB4ZjAsMHhlNCwweGZmLDB4ZmUsMHg5MCwweDc4LDB4MDksMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5fSB9LAoteyAgMTYsMHgzZjM5LDAsezB4ZWYsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDksMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTB9IH0sCi17ICAxNiwweDNmNDksMCx7MHgwMCwweDAxLDB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDIsMHg3NCwweDE1LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMH0gfSwKLXsgIDE2LDB4M2Y1OSwwLHsweDAzLDB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDQsMHg3NCwweDgwLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDA1fSB9LAoteyAgMTYsMHgzZjY5LDAsezB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDYsMHg3NCwweGMzLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDA3LDB4ZTR9IH0sCi17ICAxNiwweDNmNzksMCx7MHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDgsMHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwOSwweGU0LDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4M2Y4OSwwLHsweDljLDB4OTAsMHgwMCwweDBhLDB4NzQsMHgwMSwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwYSwweGU0LDB4NzUsMHhmMCwweDBifSB9LAoteyAgIDgsMHgzZjk5LDAsezB4MTIsMHgwYywweGY0LDB4MGYsMHgwZSwweGJlLDB4MDMsMHg4ZH0gfSwKLXsgICAxLDB4M2ZhMSwwLHsweDIyfSB9LAoteyAgMTYsMHgzZmEyLDAsezB4ZTQsMHhmZSwweDc1LDB4M2QsMHhmZiwweDc1LDB4M2UsMHgwNSwweDc1LDB4M2YsMHgxMiwweGFiLDB4M2QsMHhhYSwweDNlLDB4YTl9IH0sCi17ICAxNiwweDNmYjIsMCx7MHgzZiwweDkwLDB4MDAsMHgwMSwweDEyLDB4MGMsMHg1ZCwweDY0LDB4MDIsMHg3MCwweDJmLDB4Y2QsMHhlZSwweGNkLDB4MGUsMHhlZH0gfSwKLXsgIDE2LDB4M2ZjMiwwLHsweDZmLDB4NzAsMHgwMSwweDIyLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwZCwweDBhLDB4ODUsMHhmMCwweDNiLDB4ZjUsMHgzYywweDYyfSB9LAoteyAgMTYsMHgzZmQyLDAsezB4M2IsMHhlNSwweDNiLDB4NjIsMHgzYywweGU1LDB4M2MsMHg2MiwweDNiLDB4MjksMHhmZCwweGU1LDB4M2IsMHgzYSwweGM5LDB4ZWR9IH0sCi17ICAxNiwweDNmZTIsMCx7MHhjOSwweDc1LDB4M2QsMHhmZiwweGY1LDB4M2UsMHg4OSwweDNmLDB4ODAsMHhjMSwweDdiLDB4MDAsMHg3YSwweDAwLDB4NzksMHgwMH0gfSwKLXsgICAxLDB4M2ZmMiwwLHsweDIyfSB9LAoteyAgIDksMHgzZmYzLDAsezB4NTMsMHhkOCwweGVmLDB4NDMsMHhkOCwweDIwLDB4YzIsMHgyZCwweDMyfSB9LAoteyAgIDQsMHgzZmZjLDAsezB4NTMsMHg5MSwweGRmLDB4MzJ9IH0sCi17ICAxNiwweDQwMDAsMCx7MHg5MCwweDc5LDB4ODcsMHhlMCwweGI0LDB4MDEsMHgxZCwweDkwLDB4NzksMHg4NSwweGUwLDB4YjQsMHgwMSwweDAzLDB4MTIsMHg0Mn0gfSwKLXsgIDE2LDB4NDAxMCwwLHsweGFhLDB4OTAsMHg3OSwweDg2LDB4ZTAsMHhiNCwweDAxLDB4MDMsMHgxMiwweDE4LDB4MDAsMHhlNCwweDkwLDB4NzksMHg4NSwweGYwfSB9LAoteyAgMTYsMHg0MDIwLDAsezB4YTMsMHhmMCwweGEzLDB4ZjAsMHgxMiwweDJlLDB4OTQsMHg5MCwweDdmLDB4OWIsMHhlMCwweGY1LDB4MGEsMHg1NCwweDAyLDB4ZjV9IH0sCi17ICAxNiwweDQwMzAsMCx7MHgwYSwweDcwLDB4MDQsMHg5MCwweDc5LDB4N2YsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZjUsMHgwYSwweDU0LDB4MDIsMHhmZn0gfSwKLXsgIDE2LDB4NDA0MCwwLHsweGY1LDB4MGEsMHhiZiwweDAyLDB4MDYsMHg5MCwweDc5LDB4N2YsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweGY1fSB9LAoteyAgMTYsMHg0MDUwLDAsezB4MGEsMHg1NCwweDIwLDB4ZjUsMHgwYSwweDcwLDB4MDQsMHg5MCwweDc5LDB4N2UsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZjV9IH0sCi17ICAxNiwweDQwNjAsMCx7MHgwYSwweDU0LDB4MjAsMHhmZiwweGY1LDB4MGEsMHhiZiwweDIwLDB4MDYsMHg5MCwweDc5LDB4N2UsMHg3NCwweDAxLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4NDA3MCwwLHsweDc5LDB4N2YsMHhlMCwweGZmLDB4OTAsMHg3OSwweDgxLDB4ZTAsMHg2ZiwweDYwLDB4MzgsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyfSB9LAoteyAgMTYsMHg0MDgwLDAsezB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4ZWYsMHhiNCwweDAxLDB4MDYsMHhlMCwweDU0LDB4ZmV9IH0sCi17ICAxNiwweDQwOTAsMCx7MHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4NDBhMCwwLHsweDg0LDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4ZTUsMHgxMiwweDYwfSB9LAoteyAgMTYsMHg0MGIwLDAsezB4MDIsMHhkMiwweGFmLDB4OTAsMHg3OSwweDdlLDB4ZTAsMHhmZiwweDkwLDB4NzksMHg4MCwweGUwLDB4NmYsMHg2MCwweDM4LDB4OTB9IH0sCi17ICAxNiwweDQwYzAsMCx7MHg3OSwweDc4LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDdjLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweGVmLDB4YjQsMHgwMX0gfSwKLXsgIDE2LDB4NDBkMCwwLHsweDA2LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHg0MGUwLDAsezB4NzksMHhlMCwweDkwLDB4NzksMHg3YywweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGJ9IH0sCi17ICAxNiwweDQwZjAsMCx7MHhhMiwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweDkwLDB4NzksMHg3ZiwweGUwLDB4OTAsMHg3OSwweDgxLDB4ZjAsMHg5MH0gfSwKLXsgICA4LDB4NDEwMCwwLHsweDc5LDB4N2UsMHhlMCwweDkwLDB4NzksMHg4MCwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDQxMDgsMCx7MHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDEsMHg3MCwweDM1LDB4OTAsMHg3OSwweDcwLDB4ZTAsMHhmZiwweGQzLDB4OTQsMHgyZH0gfSwKLXsgIDE2LDB4NDExOCwwLHsweDQwLDB4MmIsMHg5MCwweDc5LDB4NjksMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NjgsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGQzfSB9LAoteyAgMTYsMHg0MTI4LDAsezB4OTQsMHgwZiwweDQwLDB4MTksMHhlNCwweGYwLDB4ZWYsMHhkMywweDk0LDB4MzEsMHg0MCwweDA4LDB4OTAsMHg3OSwweDJkLDB4NzR9IH0sCi17ICAxNiwweDQxMzgsMCx7MHgwMywweGYwLDB4ODAsMHgwNiwweDkwLDB4NzksMHgyZCwweDc0LDB4MDIsMHhmMCwweDEyLDB4MTAsMHgwMCwweDkwLDB4NzksMHgyZH0gfSwKLXsgIDE2LDB4NDE0OCwwLHsweGUwLDB4YjQsMHgwMiwweDJjLDB4OTAsMHg3OSwweDcwLDB4ZTAsMHhmZiwweGMzLDB4OTQsMHgyZiwweDUwLDB4MjIsMHhlZiwweGQzfSB9LAoteyAgMTYsMHg0MTU4LDAsezB4OTQsMHgyYSwweDQwLDB4MWMsMHg5MCwweDc5LDB4NjksMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NjgsMHhlMCwweDA0LDB4ZjB9IH0sCi17ICAxNiwweDQxNjgsMCx7MHhlMCwweGQzLDB4OTQsMHgwZiwweDQwLDB4MGEsMHhlNCwweGYwLDB4OTAsMHg3OSwweDJkLDB4MDQsMHhmMCwweDEyLDB4MTAsMHgwMH0gfSwKLXsgIDE2LDB4NDE3OCwwLHsweDkwLDB4NzksMHgyZCwweGUwLDB4YjQsMHgwMiwweDI2LDB4OTAsMHg3OSwweDcwLDB4ZTAsMHhkMywweDk0LDB4MzEsMHg0MCwweDFkfSB9LAoteyAgMTYsMHg0MTg4LDAsezB4OTAsMHg3OSwweDY5LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDY4LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkMywweDk0LDB4MGZ9IH0sCi17ICAxNiwweDQxOTgsMCx7MHg0MCwweDBiLDB4ZTQsMHhmMCwweDkwLDB4NzksMHgyZCwweDc0LDB4MDMsMHhmMCwweDEyLDB4MTAsMHgwMCwweDkwLDB4NzksMHgyZH0gfSwKLXsgIDE2LDB4NDFhOCwwLHsweGUwLDB4NjQsMHgwMywweDcwLDB4M2YsMHg5MCwweDc5LDB4NzAsMHhlMCwweGZmLDB4YzMsMHg5NCwweDVmLDB4NTAsMHgzNSwweDkwfSB9LAoteyAgMTYsMHg0MWI4LDAsezB4NzksMHg2OSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg2OCwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDMsMHg5NCwweDBmLDB4NDB9IH0sCi17ICAxNiwweDQxYzgsMCx7MHgyMywweGU0LDB4ZjAsMHhlZiwweGMzLDB4OTQsMHgyZiwweDUwLDB4MGMsMHhlZiwweGQzLDB4OTQsMHgyYSwweDQwLDB4MDYsMHg5MH0gfSwKLXsgIDE2LDB4NDFkOCwwLHsweDc5LDB4MmQsMHg3NCwweDAxLDB4ZjAsMHhlZiwweGQzLDB4OTQsMHgyZiwweDQwLDB4MDYsMHg5MCwweDc5LDB4MmQsMHg3NCwweDAyfSB9LAoteyAgMTYsMHg0MWU4LDAsezB4ZjAsMHgxMiwweDEwLDB4MDAsMHg5MCwweDc5LDB4NjksMHhlMCwweDcwLDB4MDUsMHg5MCwweDc5LDB4NjgsMHhmMCwweDIyLDB4ZTR9IH0sCi17ICAgNSwweDQxZjgsMCx7MHg5MCwweDc5LDB4NjksMHhmMCwweDIyfSB9LAoteyAgMTYsMHg0MWZkLDAsezB4N2IsMHgwMSwweDdhLDB4NzgsMHg3OSwweDRjLDB4OTAsMHg3OCwweDA2LDB4ZWIsMHhmMCwweGEzLDB4ZWEsMHhmMCwweGEzLDB4ZTl9IH0sCi17ICAxNiwweDQyMGQsMCx7MHhmMCwweGU0LDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDA2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOX0gfSwKLXsgIDE2LDB4NDIxZCwwLHsweDkwLDB4MDAsMHgwMSwweDc0LDB4MDEsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDcsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyfSB9LAoteyAgMTYsMHg0MjJkLDAsezB4MGMsMHhmNCwweDkwLDB4NzgsMHgwNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHhlNCwweDEyLDB4MGN9IH0sCi17ICAxNiwweDQyM2QsMCx7MHg4YSwweDkwLDB4NzgsMHgwNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NH0gfSwKLXsgIDE2LDB4NDI0ZCwwLHsweDAyLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDA3LDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4fSB9LAoteyAgMTYsMHg0MjVkLDAsezB4MDYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4ZTQsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDZ9IH0sCi17ICAxNiwweDQyNmQsMCx7MHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwMywweDEyLDB4MGMsMHg5Y30gfSwKLXsgIDE2LDB4NDI3ZCwwLHsweDkwLDB4NzgsMHgwNywweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDA2LDB4ZTAsMHhmYiwweGEzfSB9LAoteyAgMTYsMHg0MjhkLDAsezB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweGU0LDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDA2LDB4ZTAsMHhmYiwweGEzLDB4ZTB9IH0sCi17ICAxMiwweDQyOWQsMCx7MHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDQsMHgxMiwweDBjLDB4OWN9IH0sCi17ICAgMSwweDQyYTksMCx7MHgyMn0gfSwKLXsgIDE2LDB4NDJhYSwwLHsweGU0LDB4ZmYsMHhmZSwweDdiLDB4MDEsMHg5MCwweDc4LDB4MGMsMHgwNCwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0fSB9LAoteyAgMTYsMHg0MmJhLDAsezB4MmIsMHhmMCwweDkwLDB4NzgsMHgwYywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDJ9IH0sCi17ICAxNiwweDQyY2EsMCx7MHgxMiwweDBjLDB4NWQsMHhmZCwweDkwLDB4NzksMHg5YSwweGUwLDB4NmQsMHg2MCwweDEzLDB4ZWYsMHhjMywweDk0LDB4MDUsMHg1MH0gfSwKLXsgIDE2LDB4NDJkYSwwLHsweDBkLDB4MGYsMHg5MCwweDc4LDB4MGQsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDgwLDB4ZDQsMHg4ZCwweDMzfSB9LAoteyAgMTYsMHg0MmVhLDAsezB4OTAsMHg3OCwweDBjLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDEyLDB4MGN9IH0sCi17ICAxNiwweDQyZmEsMCx7MHg1ZCwweGZkLDB4OTAsMHg3OSwweDliLDB4ZTAsMHhmYywweDZkLDB4NjAsMHgxMywweGVlLDB4YzMsMHg5NCwweDBiLDB4NTAsMHgwZH0gfSwKLXsgIDE2LDB4NDMwYSwwLHsweDBlLDB4OTAsMHg3OCwweDBkLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg4MCwweGQzLDB4OGMsMHgzNCwweGVmfSB9LAoteyAgMTYsMHg0MzFhLDAsezB4NjQsMHgwNSwweDYwLDB4MDMsMHhiZSwweDBiLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTB9IH0sCi17ICAxNiwweDQzMmEsMCx7MHg3OCwweDBjLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDEyLDB4MGMsMHg0NCwweGZmLDB4MjQsMHhmMH0gfSwKLXsgIDE2LDB4NDMzYSwwLHsweDYwLDB4MDgsMHgyNCwweDBlLDB4NzAsMHgwZSwweDEyLDB4NDksMHg0ZCwweDIyLDB4OTAsMHg3OSwweDIwLDB4ZTUsMHgzNCwweGYwfSB9LAoteyAgMTEsMHg0MzRhLDAsezB4MTIsMHgxYiwweDJhLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4NDM1NSwwLHsweDIyfSB9LAoteyAgMTIsMHg0MzU2LDAsezB4NzgsMHg3ZiwweGU0LDB4ZjYsMHhkOCwweGZkLDB4NzUsMHg4MSwweDNmLDB4MDIsMHg0MywweDlkfSB9LAoteyAgMTYsMHg0MzYyLDAsezB4MDIsMHg0OCwweGE5LDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHg0MCwweDAzLDB4ZjYsMHg4MCwweDAxLDB4ZjJ9IH0sCi17ICAxNiwweDQzNzIsMCx7MHgwOCwweGRmLDB4ZjQsMHg4MCwweDI5LDB4ZTQsMHg5MywweGEzLDB4ZjgsMHg1NCwweDA3LDB4MjQsMHgwYywweGM4LDB4YzMsMHgzM30gfSwKLXsgIDE2LDB4NDM4MiwwLHsweGM0LDB4NTQsMHgwZiwweDQ0LDB4MjAsMHhjOCwweDgzLDB4NDAsMHgwNCwweGY0LDB4NTYsMHg4MCwweDAxLDB4NDYsMHhmNiwweGRmfSB9LAoteyAgMTYsMHg0MzkyLDAsezB4ZTQsMHg4MCwweDBiLDB4MDEsMHgwMiwweDA0LDB4MDgsMHgxMCwweDIwLDB4NDAsMHg4MCwweDkwLDB4NDYsMHg2MSwweGU0LDB4N2V9IH0sCi17ICAxNiwweDQzYTIsMCx7MHgwMSwweDkzLDB4NjAsMHhiYywweGEzLDB4ZmYsMHg1NCwweDNmLDB4MzAsMHhlNSwweDA5LDB4NTQsMHgxZiwweGZlLDB4ZTQsMHg5M30gfSwKLXsgIDE2LDB4NDNiMiwwLHsweGEzLDB4NjAsMHgwMSwweDBlLDB4Y2YsMHg1NCwweGMwLDB4MjUsMHhlMCwweDYwLDB4YTgsMHg0MCwweGI4LDB4ZTQsMHg5MywweGEzfSB9LAoteyAgMTYsMHg0M2MyLDAsezB4ZmEsMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2F9IH0sCi17ICAxNiwweDQzZDIsMCx7MHhmMCwweGEzLDB4YzgsMHhjNSwweDgyLDB4YzgsMHhjYSwweGM1LDB4ODMsMHhjYSwweGRmLDB4ZTksMHhkZSwweGU3LDB4ODAsMHhiZX0gfSwKLXsgIDE2LDB4NDNlMiwwLHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksMHhjMCwweGUwfSB9LAoteyAgMTYsMHg0M2YyLDAsezB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWZ9IH0sCi17ICAxNiwweDQ0MDIsMCx7MHhjMCwweGUwLDB4YzIsMHhjYSwweGMyLDB4Y2YsMHg5MCwweDc5LDB4N2EsMHhlMCwweGI0LDB4MDEsMHgxZiwweDEyLDB4NGIsMHhhZX0gfSwKLXsgIDE2LDB4NDQxMiwwLHsweDEyLDB4NDcsMHg1OCwweDUzLDB4YTgsMHhhMCwweDkwLDB4N2YsMHhhZSwweGU0LDB4ZjAsMHgxMiwweDA3LDB4YWEsMHgxMiwweDRifSB9LAoteyAgMTYsMHg0NDIyLDAsezB4YjcsMHg5MCwweDdmLDB4YWUsMHg3NCwweDFmLDB4ZjAsMHg0MywweGE4LDB4MDUsMHg4MCwweDAzLDB4NTMsMHhhOCwweGEwLDB4NTN9IH0sCi17ICAxNiwweDQ0MzIsMCx7MHhhOCwweGZhLDB4NzUsMHhlOCwweDAxLDB4MTIsMHgwOSwweDE1LDB4NzUsMHhlOCwweDBkLDB4NDMsMHhhOCwweDA1LDB4ZDAsMHhlMH0gfSwKLXsgIDE2LDB4NDQ0MiwwLHsweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDAsMHhlMCwweGZhfSB9LAoteyAgMTYsMHg0NDUyLDAsezB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhkMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhmMCwweGQwLDB4ZTB9IH0sCi17ICAgMSwweDQ0NjIsMCx7MHgzMn0gfSwKLXsgIDE2LDB4NDQ2MywwLHsweDkwLDB4N2YsMHhlYywweGUwLDB4ZjUsMHgwOSwweDE0LDB4NjAsMHgxZCwweDE0LDB4NjAsMHgyYSwweDE0LDB4NjAsMHgzNywweDE0fSB9LAoteyAgMTYsMHg0NDczLDAsezB4NjAsMHg0NCwweDI0LDB4MDQsMHg3MCwweDUwLDB4OTAsMHg3OSwweDYyLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDQ0ODMsMCx7MHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4NDcsMHg5MCwweDc5LDB4NjMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4NDQ5MywwLHsweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgzNywweDkwLDB4NzksMHg2NCwweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTYsMHg0NGEzLDAsezB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDI3LDB4OTAsMHg3OSwweDY2LDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDQ0YjMsMCx7MHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MTcsMHg5MCwweDc5LDB4NjcsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE1LDB4NDRjMywwLHsweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZDMsMHgyMn0gfSwKLXsgICA0LDB4NDRkMiwwLHsweDhkLDB4MzYsMHg4YiwweDM3fSB9LAoteyAgMTYsMHg0NGQ2LDAsezB4MTIsMHgzZiwweGEyLDB4ZWEsMHg0OSwweDYwLDB4NTcsMHgxMiwweDBjLDB4NDQsMHg3ZSwweDAwLDB4MjksMHhmZiwweGVlLDB4M2F9IH0sCi17ICAxNiwweDQ0ZTYsMCx7MHhjOSwweGVmLDB4YzksMHg3NSwweDM4LDB4ZmYsMHhmNSwweDM5LDB4ODksMHgzYSwweGFiLDB4MzgsMHhhYSwweDM5LDB4YTksMHgzYX0gfSwKLXsgIDE2LDB4NDRmNiwwLHsweDkwLDB4MDAsMHgwMSwweDEyLDB4MGMsMHg1ZCwweGZmLDB4NjQsMHgwNCwweDYwLDB4MDUsMHhlZiwweDY0LDB4MDUsMHg3MCwweDJlfSB9LAoteyAgMTYsMHg0NTA2LDAsezB4ZWYsMHhiNCwweDA0LDB4MTUsMHg5MCwweDAwLDB4MDIsMHgxMiwweDBjLDB4NWQsMHg2NSwweDM2LDB4NzAsMHgwYiwweDkwLDB4MDB9IH0sCi17ICAxNiwweDQ1MTYsMCx7MHgwMywweDEyLDB4MGMsMHg1ZCwweDY1LDB4MzcsMHg3MCwweDAxLDB4MjIsMHgxMiwweDBjLDB4NDQsMHg3ZSwweDAwLDB4MjksMHhmZn0gfSwKLXsgIDE2LDB4NDUyNiwwLHsweGVlLDB4M2EsMHhjOSwweGVmLDB4YzksMHg3NSwweDM4LDB4ZmYsMHhmNSwweDM5LDB4ODksMHgzYSwweDgwLDB4YmMsMHg3YiwweDAwfSB9LAoteyAgIDQsMHg0NTM2LDAsezB4N2EsMHgwMCwweDc5LDB4MDB9IH0sCi17ICAgMSwweDQ1M2EsMCx7MHgyMn0gfSwKLXsgIDE2LDB4NDUzYiwwLHsweGU0LDB4ZmYsMHg3YiwweDAxLDB4OTAsMHg3OCwweDFjLDB4MDQsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweDRjfSB9LAoteyAgMTYsMHg0NTRiLDAsezB4ZjAsMHg5MCwweDc4LDB4MWMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAyLDB4MTJ9IH0sCi17ICAxNiwweDQ1NWIsMCx7MHgwYywweDVkLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweDZlLDB4NjAsMHgxMywweGVmLDB4YzMsMHg5NCwweDA0LDB4NTAsMHgwZH0gfSwKLXsgIDE2LDB4NDU2YiwwLHsweDkwLDB4NzgsMHgxZCwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGQ0LDB4YmYsMHgwNCwweDA5fSB9LAoteyAgMTYsMHg0NTdiLDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDE0LDB4OTAsMHg3OSwweDIxLDB4ZTAsMHhmZiwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDQ1OGIsMCx7MHgxYywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHhlZiwweDEyLDB4MGMsMHg4YSwweDkwLDB4N2YsMHhjNX0gfSwKLXsgICAzLDB4NDU5YiwwLHsweDc0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4NDU5ZSwwLHsweDIyfSB9LAoteyAgMTQsMHg0NTlmLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4YzAsMHhkMCwweGVlLDB4YzAsMHhlMCwweGVmLDB4YzAsMHhlMH0gfSwKLXsgIDE2LDB4NDVhZCwwLHsweDkwLDB4NzksMHg4NSwweGUwLDB4NjQsMHgwMSwweDYwLDB4MDUsMHhhMywweGUwLDB4YjQsMHgwMSwweDJkLDB4OTAsMHg3OSwweDg3fSB9LAoteyAgMTYsMHg0NWJkLDAsezB4NzQsMHgwMSwweGYwLDB4ZTQsMHhmZiwweDkwLDB4N2YsMHhjNSwweGUwLDB4ZmUsMHhlZiwweGMzLDB4OWUsMHg1MCwweDFiLDB4NzR9IH0sCi17ICAxNiwweDQ1Y2QsMCx7MHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZlLDB4NzQsMHgyMSwweDJmLDB4ZjUsMHg4Mn0gfSwKLXsgIDE2LDB4NDVkZCwwLHsweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlZSwweGYwLDB4MGYsMHg4MCwweGRiLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhfSB9LAoteyAgIDQsMHg0NWVkLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAxNSwweDQ1ZjEsMCx7MHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGQwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDQ2MDAsMCx7MHhlNCwweGZmLDB4N2IsMHgwMSwweDkwLDB4NzgsMHgxOSwweDA0LDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHg0Y30gfSwKLXsgIDE2LDB4NDYxMCwwLHsweGYwLDB4OTAsMHg3OCwweDE5LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMiwweDEyfSB9LAoteyAgMTYsMHg0NjIwLDAsezB4MGMsMHg1ZCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg2ZSwweDYwLDB4MTMsMHhlZiwweGMzLDB4OTQsMHgwNCwweDUwLDB4MGR9IH0sCi17ICAxNiwweDQ2MzAsMCx7MHg5MCwweDc4LDB4MWEsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhkNCwweGJmLDB4MDQsMHgwOH0gfSwKLXsgIDE2LDB4NDY0MCwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc4LDB4MTksMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhfSB9LAoteyAgMTYsMHg0NjUwLDAsezB4YTMsMHhlMCwweGY5LDB4MTIsMHgwYywweDQ0LDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDQ2NjAsMCx7MHgyMn0gfSwKLXsgIDE2LDB4NDY2MSwwLHsweDAxLDB4MTgsMHgwMiwweDAxLDB4MTksMHgwYSwweDAxLDB4MWMsMHgwMCwweGMxLDB4MjgsMHhjMSwweDI5LDB4MDEsMHgxZiwweDAxfSB9LAoteyAgMTUsMHg0NjcxLDAsezB4NDQsMHg3OSwweDlmLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MSwweDc5LDB4YTMsMHgwMCwweDQxLDB4NzksMHhhNCwweDAwfSB9LAoteyAgIDQsMHg0NjgwLDAsezB4NDEsMHg3OSwweDg5LDB4MDB9IH0sCi17ICAxNiwweDQ2ODQsMCx7MHgwMSwweDIyLDB4MDEsMHg0MSwweDc5LDB4MzEsMHhmZiwweDQxLDB4NzksMHgzNCwweDAwLDB4NGQsMHg3OSwweDM1LDB4M2YsMHgzZn0gfSwKLXsgIDE2LDB4NDY5NCwwLHsweDAwLDB4MDgsMHgwMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHg0ZCwweDc5LDB4NDIsMHgzZiwweDNmfSB9LAoteyAgMTYsMHg0NmE0LDAsezB4MDYsMHgwOCwweDA0LDB4MDcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweDRkLDB4NzksMHg0ZiwweDBhLDB4MGF9IH0sCi17ICAxMSwweDQ2YjQsMCx7MHgwOSwweDAwLDB4MDEsMHgwOSwweDAyLDB4MDMsMHgwNCwweDA1LDB4MDYsMHgwNywweDA4fSB9LAoteyAgIDEsMHg0NmJmLDAsezB4MDB9IH0sCi17ICAxNiwweDQ2YzAsMCx7MHgxMiwweDBhLDB4Y2QsMHg5MCwweDdmLDB4YTUsMHhlMCwweGY1LDB4MjEsMHhlNSwweDIxLDB4NTQsMHgwMSwweGY1LDB4MjEsMHg2NH0gfSwKLXsgIDE2LDB4NDZkMCwwLHsweDAxLDB4NjAsMHgyOCwweGU1LDB4MjIsMHg2NCwweDAxLDB4NzAsMHgyMiwweDkwLDB4N2YsMHhhNSwweGUwLDB4ZjUsMHgyMSwweDU0fSB9LAoteyAgMTYsMHg0NmUwLDAsezB4MDIsMHhmNSwweDIxLDB4NzAsMHgwMywweDc1LDB4MjIsMHgwMSwweDkwLDB4N2YsMHhhNSwweGUwLDB4ZjUsMHgyMSwweDU0LDB4MDR9IH0sCi17ICAxMiwweDQ2ZjAsMCx7MHhmZiwweGY1LDB4MjEsMHhiZiwweDA0LDB4ZDMsMHg3NSwweDIyLDB4MDEsMHg4MCwweGNlLDB4MjJ9IH0sCi17ICAgNCwweDQ2ZmMsMCx7MHg1MywweGQ4LDB4ZjcsMHgzMn0gfSwKLXsgIDE2LDB4NDcwMCwwLHsweDAyLDB4NDksMHhmYSwweDAwLDB4MDIsMHgzYywweDU0LDB4MDAsMHgwMiwweDE3LDB4ZTQsMHgwMCwweDAyLDB4NGEsMHgxMiwweDAwfSB9LAoteyAgMTYsMHg0NzEwLDAsezB4MDIsMHgzNywweGEyLDB4MDAsMHgwMiwweDQ3LDB4ZmYsMHgwMCwweDAyLDB4NGEsMHg0MSwweDAwLDB4MDIsMHg0NSwweDlmLDB4MDB9IH0sCi17ICAxNiwweDQ3MjAsMCx7MHgwMiwweDQ5LDB4OGUsMHgwMCwweDAyLDB4NDksMHhhYiwweDAwLDB4MDIsMHg0YSwweDU4LDB4MDAsMHgwMiwweDRhLDB4NmYsMHgwMH0gfSwKLXsgIDE2LDB4NDczMCwwLHsweDAyLDB4NGEsMHg4NiwweDAwLDB4MDIsMHg0YSwweDlkLDB4MDAsMHgwMiwweDRhLDB4YjQsMHgwMCwweDAyLDB4NGEsMHhjYiwweDAwfSB9LAoteyAgMTYsMHg0NzQwLDAsezB4MDIsMHg0YSwweGUyLDB4MDAsMHgwMiwweDRhLDB4ZjksMHgwMCwweDAyLDB4NGIsMHgxMCwweDAwLDB4MDIsMHg0YiwweDI3LDB4MDB9IH0sCi17ICAgOCwweDQ3NTAsMCx7MHgwMiwweDRiLDB4M2UsMHgwMCwweDAyLDB4NGIsMHg1NSwweDAwfSB9LAoteyAgMTYsMHg0NzU4LDAsezB4ZTUsMHgxOCwweDcwLDB4MTQsMHg5MCwweDc5LDB4OGMsMHhlMCwweDA0LDB4ZjAsMHg5MCwweDc5LDB4OGIsMHhlMCwweGMzLDB4OTR9IH0sCi17ICAxNiwweDQ3NjgsMCx7MHgwMCwweDQwLDB4MTUsMHhlMCwweDE0LDB4ZjAsMHg4MCwweDEwLDB4OTAsMHg3OSwweDhiLDB4ZTAsMHgwNCwweGYwLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4NDc3OCwwLHsweGMzLDB4OTQsMHgwMCwweDQwLDB4MDMsMHhlMCwweDE0LDB4ZjAsMHg5MCwweDc5LDB4OGIsMHhlMCwweGQzLDB4OTQsMHgxNCwweDQwfSB9LAoteyAgMTYsMHg0Nzg4LDAsezB4MDQsMHhlNCwweGY1LDB4MTgsMHhmMCwweDkwLDB4NzksMHg4YywweGUwLDB4ZDMsMHg5NCwweDE0LDB4NDAsMHgwNSwweDc1LDB4MTh9IH0sCi17ICAgNCwweDQ3OTgsMCx7MHgwMSwweGU0LDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4NDc5YywwLHsweDkwLDB4N2YsMHhkNywweGUwLDB4ZjUsMHgzMywweDkwLDB4N2YsMHhlYywweGUwLDB4ZjUsMHgwOSwweDE0LDB4NjAsMHgxMSwweDE0fSB9LAoteyAgMTYsMHg0N2FjLDAsezB4NjAsMHgxYiwweDI0LDB4MDIsMHg3MCwweDI0LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc5LDB4NjIsMHhmMCwweDgwLDB4MjF9IH0sCi17ICAxNiwweDQ3YmMsMCx7MHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzksMHg2MywweGYwLDB4MTIsMHgxMCwweDAwLDB4ODAsMHgxNCwweDkwLDB4N2YsMHhlYX0gfSwKLXsgIDE2LDB4NDdjYywwLHsweGUwLDB4OTAsMHg3OSwweDY0LDB4ZjAsMHgxMiwweDI4LDB4MDEsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfSB9LAoteyAgIDIsMHg0N2RjLDAsezB4ZjAsMHhkM30gfSwKLXsgICAxLDB4NDdkZSwwLHsweDIyfSB9LAoteyAgMTYsMHg0N2RmLDAsezB4OTAsMHg3OSwweDc4LDB4NzQsMHgwNCwweGYwLDB4OTAsMHg3OSwweDMzLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweGEyLDB4YWZ9IH0sCi17ICAxNiwweDQ3ZWYsMCx7MHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHgyMn0gfSwKLXsgICAxLDB4NDdmZiwwLHsweDMyfSB9LAoteyAgIDIsMHg0ODAwLDAsezB4OGYsMHgzNn0gfSwKLXsgIDE2LDB4NDgwMiwwLHsweGU0LDB4ZjUsMHgzNywweDc1LDB4MzgsMHhmZiwweDc1LDB4MzksMHgwNywweDc1LDB4M2EsMHgwMSwweGFiLDB4MzgsMHhhYSwweDM5fSB9LAoteyAgMTYsMHg0ODEyLDAsezB4YTksMHgzYSwweDkwLDB4MDAsMHgwMSwweDEyLDB4MGMsMHg1ZCwweGI0LDB4MDMsMHgxZiwweGFmLDB4MzcsMHgwNSwweDM3LDB4ZWZ9IH0sCi17ICAxNiwweDQ4MjIsMCx7MHg2NSwweDM2LDB4NzAsMHgwMSwweDIyLDB4MTIsMHgwYywweDQ0LDB4N2UsMHgwMCwweDI5LDB4ZmYsMHhlZSwweDNhLDB4YzksMHhlZn0gfSwKLXsgIDE2LDB4NDgzMiwwLHsweGM5LDB4NzUsMHgzOCwweGZmLDB4ZjUsMHgzOSwweDg5LDB4M2EsMHg4MCwweGQyLDB4N2IsMHgwMCwweDdhLDB4MDAsMHg3OSwweDAwfSB9LAoteyAgIDEsMHg0ODQyLDAsezB4MjJ9IH0sCi17ICAxNiwweDQ4NDMsMCx7MHgzMCwweDI2LDB4MmYsMHhjMiwweDI2LDB4OTAsMHg3OSwweDJkLDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgwOSwweGU0LDB4ZjUsMHgwY30gfSwKLXsgIDE2LDB4NDg1MywwLHsweDc1LDB4MGQsMHhmOCwweDc1LDB4MGUsMHgwYSwweGVmLDB4YjQsMHgwMiwweDA5LDB4ZTQsMHhmNSwweDBjLDB4NzUsMHgwZCwweGYwfSB9LAoteyAgMTYsMHg0ODYzLDAsezB4NzUsMHgwZSwweDBiLDB4ZWYsMHhiNCwweDAzLDB4MDksMHhlNCwweGY1LDB4MGMsMHg3NSwweDBkLDB4ZjgsMHg3NSwweDBlLDB4MTd9IH0sCi17ICAgMywweDQ4NzMsMCx7MHhkMiwweDIyLDB4MjJ9IH0sCi17ICAxNiwweDQ4NzYsMCx7MHgzMCwweDI1LDB4MmYsMHhjMiwweDI1LDB4OTAsMHg3OSwweDJkLDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgwOSwweDc1LDB4MGMsMHhjMH0gfSwKLXsgIDE2LDB4NDg4NiwwLHsweDc1LDB4MGQsMHgxNCwweDc1LDB4MGUsMHgwYiwweGVmLDB4YjQsMHgwMiwweDA5LDB4ZTQsMHhmNSwweDBjLDB4NzUsMHgwZCwweDEwfSB9LAoteyAgMTYsMHg0ODk2LDAsezB4NzUsMHgwZSwweDBjLDB4ZWYsMHhiNCwweDAzLDB4MDksMHhlNCwweGY1LDB4MGMsMHg3NSwweDBkLDB4MTgsMHg3NSwweDBlLDB4MTh9IH0sCi17ICAgMywweDQ4YTYsMCx7MHhkMiwweDIyLDB4MjJ9IH0sCi17ICAxNiwweDQ4YTksMCx7MHhlNCwweGY1LDB4MzIsMHgxMiwweDBmLDB4NTAsMHgyMCwweDJlLDB4MTAsMHhlNSwweDMyLDB4YzMsMHg5NCwweDAyLDB4NTAsMHgwOX0gfSwKLXsgIDE2LDB4NDhiOSwwLHsweDA1LDB4MzIsMHhkMiwweDMwLDB4MTIsMHg0OSwweDA1LDB4ODAsMHhlZCwweDMwLDB4MmUsMHgwNSwweDEyLDB4MTQsMHg1NywweGMyfSB9LAoteyAgMTUsMHg0OGM5LDAsezB4MmUsMHgzMCwweDJkLDB4MDYsMHgxMiwweDA3LDB4OWEsMHgxMiwweDQ4LDB4ZDksMHgxMiwweDQwLDB4MDAsMHg4MCwweGVhfSB9LAoteyAgIDEsMHg0OGQ4LDAsezB4MjJ9IH0sCi17ICAxNiwweDQ4ZDksMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweGY1LDB4MWQsMHg1NCwweDgwLDB4ZjUsMHgxZCwweDY0LDB4ODAsMHg3MCwweDFkLDB4YzIsMHhhZn0gfSwKLXsgIDE2LDB4NDhlOSwwLHsweGUwLDB4NDQsMHg4MCwweGYwLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg3ZiwweDBjLDB4N2UsMHgwMCwweDEyLDB4NGIsMHg2YywweDkwfSB9LAoteyAgMTIsMHg0OGY5LDAsezB4N2YsMHhkNiwweGUwLDB4NTQsMHhmZSwweGYwLDB4NTMsMHg4NywweGZlLDB4ZDIsMHhhZiwweDIyfSB9LAoteyAgMTYsMHg0OTA1LDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDMwLDB4MzAsMHgwNCwweGUwLDB4NDR9IH0sCi17ICAxNiwweDQ5MTUsMCx7MHgwMiwweGYwLDB4N2YsMHhkYywweDdlLDB4MDUsMHgxMiwweDRiLDB4NmMsMHg5MCwweDdmLDB4ZDYsMHhlMCwweDU0LDB4ZjcsMHhmMH0gfSwKLXsgICA1LDB4NDkyNSwwLHsweGUwLDB4NDQsMHgwNCwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDQ5MmEsMCx7MHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NzAsMHgxNCwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZiwweDcwLDB4MDQsMHgxMn0gfSwKLXsgIDE2LDB4NDkzYSwwLHsweDQ2LDB4MDAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fSB9LAoteyAgIDMsMHg0OTRhLDAsezB4MDEsMHhmMCwweDIyfSB9LAoteyAgMTYsMHg0OTRkLDAsezB4OTAsMHg3ZiwweGViLDB4ZTAsMHgxNCwweDcwLDB4MTMsMHg5MCwweDdmLDB4ZTksMHhlMCwweDE0LDB4NzAsMHgwNCwweDEyLDB4NDV9IH0sCi17ICAxNiwweDQ5NWQsMCx7MHgzYiwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0gfSwKLXsgICAyLDB4NDk2ZCwwLHsweGYwLDB4MjJ9IH0sCi17ICAxNiwweDQ5NmYsMCx7MHhlNCwweGZmLDB4NzQsMHhlOCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlMCwweGZlLDB4NzQsMHg5Nn0gfSwKLXsgIDE0LDB4NDk3ZiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlZSwweGYwLDB4MGYsMHhiZiwweDA4LDB4ZTR9IH0sCi17ICAgMSwweDQ5OGQsMCx7MHgyMn0gfSwKLXsgIDE2LDB4NDk4ZSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwMiwweGYwfSB9LAoteyAgMTMsMHg0OTllLDAsezB4OTAsMHg3ZiwweGI3LDB4NzQsMHgwMywweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDQ5YWIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDIsMHhmMH0gfSwKLXsgIDEzLDB4NDliYiwwLHsweDkwLDB4N2YsMHhjNywweDc0LDB4MDMsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0OWM4LDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHgzMCwweGU3LDB4MTIsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDdmLDB4MTQsMHg3ZSwweDAwLDB4MTJ9IH0sCi17ICAxMCwweDQ5ZDgsMCx7MHg0YiwweDZjLDB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4NDllMiwwLHsweGU0LDB4ZjUsMHgxYSwweDc1LDB4MWIsMHgwMSwweDkwLDB4NzksMHg5MSwweDA0LDB4ZjAsMHhhMywweGYwLDB4ZTQsMHhhMywweGYwfSB9LAoteyAgIDgsMHg0OWYyLDAsezB4YTMsMHg3NCwweDBhLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4NDlmYSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGQyLDB4MmUsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAxfSB9LAoteyAgIDgsMHg0YTBhLDAsezB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGExMiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGQyLDB4MmQsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDA4fSB9LAoteyAgIDgsMHg0YTIyLDAsezB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGEyYSwwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjUsMHgwOCwweGU0LDB4OTAsMHg3OSwweDYyLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweDkwfSB9LAoteyAgIDcsMHg0YTNhLDAsezB4NzksMHg2NiwweGYwLDB4YTMsMHhmMCwweGQzLDB4MjJ9IH0sCi17ICAxNiwweDRhNDEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICA3LDB4NGE1MSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YTU4LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDA0LDB4ZjB9IH0sCi17ICAgNywweDRhNjgsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGE2ZiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwNCwweGYwfSB9LAoteyAgIDcsMHg0YTdmLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhODYsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDgsMHhmMH0gfSwKLXsgICA3LDB4NGE5NiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YTlkLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDA4LDB4ZjB9IH0sCi17ICAgNywweDRhYWQsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGFiNCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgxMCwweGYwfSB9LAoteyAgIDcsMHg0YWM0LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhY2IsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MTAsMHhmMH0gfSwKLXsgICA3LDB4NGFkYiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YWUyLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDIwLDB4ZjB9IH0sCi17ICAgNywweDRhZjIsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGFmOSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgyMCwweGYwfSB9LAoteyAgIDcsMHg0YjA5LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRiMTAsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4NDAsMHhmMH0gfSwKLXsgICA3LDB4NGIyMCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YjI3LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDQwLDB4ZjB9IH0sCi17ICAgNywweDRiMzcsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGIzZSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHg4MCwweGYwfSB9LAoteyAgIDcsMHg0YjRlLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRiNTUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4ODAsMHhmMH0gfSwKLXsgICA3LDB4NGI2NSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YjZjLDAsezB4OGUsMHgzMywweDhmLDB4MzQsMHhlNSwweDM0LDB4MTUsMHgzNCwweGFlLDB4MzMsMHg3MCwweDAyLDB4MTUsMHgzMywweDRlLDB4NjB9IH0sCi17ICAgNywweDRiN2MsMCx7MHgwNSwweDEyLDB4MDcsMHg4OSwweDgwLDB4ZWUsMHgyMn0gfSwKLXsgIDE1LDB4NGI4MywwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4YjQsMHhmZiwweDA0LDB4MTIsMHgzMCwweDAwLDB4MjIsMHgxMiwweDM2LDB4MGUsMHgyMn0gfSwKLXsgIDE0LDB4NGI5MiwwLHsweGMwLDB4ZTAsMHhjMiwweDhiLDB4ZDIsMHgyNCwweDMwLDB4MjMsMHgwMiwweGMyLDB4MjMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNCwweDRiYTAsMCx7MHg5MCwweDdmLDB4MDAsMHhlNSwweDA4LDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHhkMywweDIyfSB9LAoteyAgIDksMHg0YmFlLDAsezB4MzAsMHgyNCwweDA1LDB4YzIsMHgyNCwweDc1LDB4MTgsMHgwMSwweDIyfSB9LAoteyAgIDksMHg0YmI3LDAsezB4MzAsMHgyMywweDA1LDB4YzIsMHgyMywweGU0LDB4ZjUsMHgxOCwweDIyfSB9LAoteyAgIDcsMHg0YmMwLDAsezB4NTMsMHhjMCwweGZlLDB4NTMsMHhjMCwweGZkLDB4MzJ9IH0sCi17ICAgNiwweDRiYzcsMCx7MHg1MywweDkxLDB4N2YsMHhkMiwweDI1LDB4MzJ9IH0sCi17ICAgNSwweDRiY2QsMCx7MHhjMiwweDg5LDB4ZDIsMHgyMywweDMyfSB9LAoteyAgIDMsMHg0YmQyLDAsezB4YzIsMHg4ZCwweDMyfSB9LAoteyAgIDMsMHg0YmQ1LDAsezB4YzIsMHg4ZiwweDMyfSB9LAoteyAgIDIsMHg0YmQ4LDAsezB4ZDMsMHgyMn0gfSwKLXsgICAyLDB4NGJkYSwwLHsweGQzLDB4MjJ9IH0sCi17ICAgMiwweDRiZGMsMCx7MHhkMywweDIyfSB9LAoteyAgIDIsMHg0YmRlLDAsezB4ZDMsMHgyMn0gfSwKLXsgICAyLDB4NGJlMCwwLHsweGQzLDB4MjJ9IH0sCi17ICAgMiwweDRiZTIsMCx7MHhkMywweDIyfSB9LAoteyAgIDIsMHg0YmU0LDAsezB4YzMsMHgyMn0gfSwKLXsgICAxLDB4NGJlNiwwLHsweDIyfSB9LAoteyAgIDAsMHgwMDAwLDEsezAgfX0KLX07Ci0vKgotVkVSU0lPTj0xLjAuMi45MTYKLURBVEU9MTIuMDIuMjAwMgotKi8KLS8qCi0gKiBUaGlzIGZpcm13YXJlIGlzIGZvciB0aGUgRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlCi0gKgotICogVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDIgRW1hZ2ljCi0gKiBhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQKLSAqIG9yIHB1YmxpYyBhY2Nlc3MgdG8gdGhpcyBmaXJtd2FyZSB3aGljaCBpcyBhIHRyYWRlIHNlY3JldCBvZiBFbWFnaWMsCi0gKiBhbmQgd2hpY2ggbWF5IG5vdCBiZSByZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvCi0gKiBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCBFbWFnaWMncyB3cml0dGVuIGNvbnNlbnQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggdGhlCi0gKiBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UuIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mCi0gKiBhbnkgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsCi0gKiByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LgotICovCi1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBnX0xvYWRlcltdID0gewoteyAgIDMsMHgwMDAwLDAsezB4MDIsMHgwMywweDFjfSB9LAoteyAgIDMsMHgwMDQzLDAsezB4MDIsMHgwNCwweDAwfSB9LAoteyAgMTYsMHgwMTAwLDAsezB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDViLDB4NjAsMHg2MCwweDI0LDB4MDIsMHg2MCwweDAzLDB4MDIsMHgwMSwweGJlLDB4OTB9IH0sCi17ICAxNiwweDAxMTAsMCx7MHg3ZiwweGVhLDB4ZTAsMHg3NSwweDBhLDB4MDAsMHhmNSwweDBiLDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MGEsMHg5MH0gfSwKLXsgIDE2LDB4MDEyMCwwLHsweDdmLDB4ZWUsMHhlMCwweDc1LDB4MTUsMHgwMCwweGY1LDB4MTYsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgxNSwweGU1fSB9LAoteyAgMTYsMHgwMTMwLDAsezB4MTYsMHg0NSwweDE1LDB4NzAsMHgwMywweDAyLDB4MDEsMHhiZSwweGU0LDB4OTAsMHg3ZiwweGM1LDB4ZjAsMHg5MCwweDdmLDB4YjR9IH0sCi17ICAxNiwweDAxNDAsMCx7MHhlMCwweDIwLDB4ZTMsMHhmOSwweDkwLDB4N2YsMHhjNSwweGUwLDB4ZjUsMHgwYywweDEyLDB4MDIsMHg3NywweGFmLDB4MGMsMHg3ZX0gfSwKLXsgIDE2LDB4MDE1MCwwLHsweDAwLDB4ZWYsMHgyNSwweDBiLDB4ZjUsMHgwYiwweGVlLDB4MzUsMHgwYSwweGY1LDB4MGEsMHhjMywweGU1LDB4MTYsMHg5ZiwweGY1fSB9LAoteyAgMTYsMHgwMTYwLDAsezB4MTYsMHhlNSwweDE1LDB4OWUsMHhmNSwweDE1LDB4ODAsMHhjNywweDkwLDB4N2YsMHhlYSwweGUwLDB4NzUsMHgwYSwweDAwLDB4ZjV9IH0sCi17ICAxNiwweDAxNzAsMCx7MHgwYiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDBhLDB4OTAsMHg3ZiwweGVlLDB4ZTAsMHg3NSwweDE1LDB4MDAsMHhmNX0gfSwKLXsgIDE2LDB4MDE4MCwwLHsweDE2LDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MTUsMHhlNSwweDE2LDB4NDUsMHgxNSwweDYwLDB4MzAsMHhlNCwweDkwfSB9LAoteyAgMTYsMHgwMTkwLDAsezB4N2YsMHhjNSwweGYwLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHgyMCwweGUzLDB4ZjksMHg5MCwweDdmLDB4YzUsMHhlMCwweGY1LDB4MGN9IH0sCi17ICAxNiwweDAxYTAsMCx7MHgxMiwweDAyLDB4OGYsMHhhZiwweDBjLDB4N2UsMHgwMCwweGVmLDB4MjUsMHgwYiwweGY1LDB4MGIsMHhlZSwweDM1LDB4MGEsMHhmNX0gfSwKLXsgIDE1LDB4MDFiMCwwLHsweDBhLDB4YzMsMHhlNSwweDE2LDB4OWYsMHhmNSwweDE2LDB4ZTUsMHgxNSwweDllLDB4ZjUsMHgxNSwweDgwLDB4Y2EsMHhjM30gfSwKLXsgICAxLDB4MDFiZiwwLHsweDIyfSB9LAoteyAgMTYsMHgwMWMwLDAsezB4YzIsMHgyMCwweGQyLDB4ZTgsMHg0MywweGQ4LDB4MjAsMHg5MCwweDdmLDB4YWIsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDdmLDB4YTl9IH0sCi17ICAxNiwweDAxZDAsMCx7MHhmMCwweDkwLDB4N2YsMHhhYSwweGYwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweDk1LDB4ZTAsMHg0NCwweGMwLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MDFlMCwwLHsweDdmLDB4OTgsMHhlMCwweDQ0LDB4YzAsMHhmMCwweDkwLDB4N2YsMHg5ZSwweGUwLDB4NDQsMHhjMCwweGYwLDB4ZTQsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgwMWYwLDAsezB4OTQsMHhmMCwweDkwLDB4N2YsMHg5ZCwweGUwLDB4NDQsMHgwZiwweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg1NCwweGYwLDB4ZjB9IH0sCi17ICAxNiwweDAyMDAsMCx7MHg5MCwweDdmLDB4YWYsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhhZSwweGUwLDB4NDQsMHgwZCwweGYwLDB4ZDIsMHhhZn0gfSwKLXsgIDE2LDB4MDIxMCwwLHsweDkwLDB4N2YsMHg5NywweGUwLDB4NTQsMHhmMCwweGYwLDB4MjAsMHgyMCwweDQyLDB4NzUsMHgxNCwweDAwLDB4NzUsMHgxMywweDAwfSB9LAoteyAgMTYsMHgwMjIwLDAsezB4NzUsMHgxMiwweDAwLDB4NzUsMHgxMSwweDAwLDB4N2YsMHg0OCwweDdlLDB4OTIsMHg3ZCwweDAwLDB4N2MsMHgwMCwweGFiLDB4MTR9IH0sCi17ICAxNiwweDAyMzAsMCx7MHhhYSwweDEzLDB4YTksMHgxMiwweGE4LDB4MTEsMHhjMywweDEyLDB4MDQsMHg5YSwweDUwLDB4ZGIsMHgyMCwweDIwLDB4ZDgsMHg3YX0gfSwKLXsgIDE2LDB4MDI0MCwwLHsweDAwLDB4NzksMHgwMCwweDc4LDB4MDAsMHhlNSwweDE0LDB4MjQsMHgwMSwweGY1LDB4MTQsMHhlYSwweDM1LDB4MTMsMHhmNSwweDEzfSB9LAoteyAgMTYsMHgwMjUwLDAsezB4ZTksMHgzNSwweDEyLDB4ZjUsMHgxMiwweGU4LDB4MzUsMHgxMSwweGY1LDB4MTEsMHg4MCwweGNhLDB4MzAsMHgyMCwweGZkLDB4MTJ9IH0sCi17ICAxNiwweDAyNjAsMCx7MHgwMSwweDAwLDB4NTAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH0gfSwKLXsgICA2LDB4MDI3MCwwLHsweDAyLDB4ZjAsMHhjMiwweDIwLDB4ODAsMHhlNn0gfSwKLXsgICAxLDB4MDI3NiwwLHsweDIyfSB9LAoteyAgMTYsMHgwMjc3LDAsezB4ZTUsMHgwYywweGZmLDB4ZTUsMHgwYiwweGY1LDB4ODIsMHhlNSwweDBhLDB4ZjUsMHg4MywweDc1LDB4OTIsMHg3ZSwweDc0LDB4YzB9IH0sCi17ICAgOCwweDAyODcsMCx7MHhmOCwweGUyLDB4MDgsMHhmMCwweGEzLDB4ZGYsMHhmYSwweDIyfSB9LAoteyAgMTYsMHgwMjhmLDAsezB4OTAsMHg3ZiwweDk2LDB4ODUsMHg4MywweDkyLDB4YTgsMHg4MiwweDc5LDB4MDIsMHg5MCwweDAwLDB4MDAsMHhlMCwweGI0LDB4MDB9IH0sCi17ICAxNiwweDAyOWYsMCx7MHgzNywweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHg5MywweGUwLDB4NTQsMHhmYywweGYwLDB4OTAsMHg3ZiwweDk2LDB4ZTAsMHg1NH0gfSwKLXsgIDE2LDB4MDJhZiwwLHsweGZjLDB4ZjAsMHg5MCwweDdmLDB4OWMsMHhlMCwweDQ0LDB4MDMsMHhmMCwweDkwLDB4N2YsMHg5NCwweGUwLDB4NTQsMHg3ZiwweGYwfSB9LAoteyAgMTYsMHgwMmJmLDAsezB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4OWQsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDAyY2YsMCx7MHg5NywweGUwLDB4NTQsMHg3ZiwweGYwLDB4NDQsMHg4MCwweGYwLDB4ZTUsMHgwYywweGZmLDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmNX0gfSwKLXsgIDE2LDB4MDJkZiwwLHsweDI4LDB4ZTQsMHhhMiwweDQ3LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDYsMHgzMywweGYyLDB4NjksMHhmMiwweGU0fSB9LAoteyAgMTYsMHgwMmVmLDAsezB4YTIsMHg0NSwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQ0LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDN9IH0sCi17ICAxNiwweDAyZmYsMCx7MHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0MiwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQxLDB4MzMsMHhmMn0gfSwKLXsgIDEzLDB4MDMwZiwwLHsweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDAsMHgzMywweGYyLDB4NjksMHhmMiwweGEzLDB4ZGYsMHhjMiwweDIyfSB9LAoteyAgMTIsMHgwMzFjLDAsezB4NzgsMHg3ZiwweGU0LDB4ZjYsMHhkOCwweGZkLDB4NzUsMHg4MSwweDI5LDB4MDIsMHgwMywweDYzfSB9LAoteyAgMTYsMHgwMzI4LDAsezB4MDIsMHgwMSwweGMwLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHg0MCwweDAzLDB4ZjYsMHg4MCwweDAxLDB4ZjJ9IH0sCi17ICAxNiwweDAzMzgsMCx7MHgwOCwweGRmLDB4ZjQsMHg4MCwweDI5LDB4ZTQsMHg5MywweGEzLDB4ZjgsMHg1NCwweDA3LDB4MjQsMHgwYywweGM4LDB4YzMsMHgzM30gfSwKLXsgIDE2LDB4MDM0OCwwLHsweGM0LDB4NTQsMHgwZiwweDQ0LDB4MjAsMHhjOCwweDgzLDB4NDAsMHgwNCwweGY0LDB4NTYsMHg4MCwweDAxLDB4NDYsMHhmNiwweGRmfSB9LAoteyAgMTYsMHgwMzU4LDAsezB4ZTQsMHg4MCwweDBiLDB4MDEsMHgwMiwweDA0LDB4MDgsMHgxMCwweDIwLDB4NDAsMHg4MCwweDkwLDB4MDQsMHg4NCwweGU0LDB4N2V9IH0sCi17ICAxNiwweDAzNjgsMCx7MHgwMSwweDkzLDB4NjAsMHhiYywweGEzLDB4ZmYsMHg1NCwweDNmLDB4MzAsMHhlNSwweDA5LDB4NTQsMHgxZiwweGZlLDB4ZTQsMHg5M30gfSwKLXsgIDE2LDB4MDM3OCwwLHsweGEzLDB4NjAsMHgwMSwweDBlLDB4Y2YsMHg1NCwweGMwLDB4MjUsMHhlMCwweDYwLDB4YTgsMHg0MCwweGI4LDB4ZTQsMHg5MywweGEzfSB9LAoteyAgMTYsMHgwMzg4LDAsezB4ZmEsMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2F9IH0sCi17ICAxNiwweDAzOTgsMCx7MHhmMCwweGEzLDB4YzgsMHhjNSwweDgyLDB4YzgsMHhjYSwweGM1LDB4ODMsMHhjYSwweGRmLDB4ZTksMHhkZSwweGU3LDB4ODAsMHhiZX0gfSwKLXsgIDE2LDB4MDNhOCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDkwLDB4N2YsMHhjNCwweGU0LDB4ZjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmfSB9LAoteyAgMTEsMHgwM2I4LDAsezB4YWIsMHg3NCwweDA0LDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4MDNjMywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGQyLDB4MjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAxfSB9LAoteyAgIDgsMHgwM2QzLDAsezB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4MDNkYiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDIsMHhmMCwweGQwfSB9LAoteyAgIDYsMHgwM2ViLDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgIDEsMHgwM2YxLDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZjIsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmMywwLHsweDMyfSB9LAoteyAgIDEsMHgwM2Y0LDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZjUsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmNiwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2Y3LDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZjgsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmOSwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2ZhLDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZmIsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmYywwLHsweDMyfSB9LAoteyAgIDEsMHgwM2ZkLDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZmUsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmZiwwLHsweDMyfSB9LAoteyAgMTYsMHgwNDAwLDAsezB4MDIsMHgwMywweGMzLDB4MDAsMHgwMiwweDAzLDB4ZGIsMHgwMCwweDAyLDB4MDMsMHhhOCwweDAwLDB4MDIsMHgwNCwweDZlLDB4MDB9IH0sCi17ICAxNiwweDA0MTAsMCx7MHgwMiwweDA0LDB4NTgsMHgwMCwweDAyLDB4MDMsMHhmMSwweDAwLDB4MDIsMHgwMywweGYyLDB4MDAsMHgwMiwweDAzLDB4ZjMsMHgwMH0gfSwKLXsgIDE2LDB4MDQyMCwwLHsweDAyLDB4MDMsMHhmNCwweDAwLDB4MDIsMHgwMywweGY1LDB4MDAsMHgwMiwweDAzLDB4ZjYsMHgwMCwweDAyLDB4MDMsMHhmNywweDAwfSB9LAoteyAgMTYsMHgwNDMwLDAsezB4MDIsMHgwMywweGY4LDB4MDAsMHgwMiwweDAzLDB4ZjksMHgwMCwweDAyLDB4MDMsMHhmYSwweDAwLDB4MDIsMHgwMywweGZiLDB4MDB9IH0sCi17ICAxNiwweDA0NDAsMCx7MHgwMiwweDAzLDB4ZmMsMHgwMCwweDAyLDB4MDMsMHhmZCwweDAwLDB4MDIsMHgwMywweGZlLDB4MDAsMHgwMiwweDAzLDB4ZmYsMHgwMH0gfSwKLXsgICA4LDB4MDQ1MCwwLHsweDAyLDB4MDQsMHhhYiwweDAwLDB4MDIsMHgwNCwweGFjLDB4MDB9IH0sCi17ICAxNiwweDA0NTgsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDEwLDB4ZjAsMHhkMH0gfSwKLXsgICA2LDB4MDQ2OCwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4MDQ2ZSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDgsMHhmMCwweGQwfSB9LAoteyAgIDYsMHgwNDdlLDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHgwNDg0LDAsezB4MDIsMHgwYSwweDAwLDB4MGYsMHgwMSwweDBjLDB4MTEsMHgwNCwweDBkLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MSwweDAwLDB4MDB9IH0sCi17ICAgMSwweDA0OTQsMCx7MHgwMH0gfSwKLXsgICA0LDB4MDQ5NSwwLHsweDAyLDB4MTcsMHgwMCwweDAwfSB9LAoteyAgIDEsMHgwNDk5LDAsezB4MDB9IH0sCi17ICAxNiwweDA0OWEsMCx7MHhlYiwweDlmLDB4ZjUsMHhmMCwweGVhLDB4OWUsMHg0MiwweGYwLDB4ZTksMHg5ZCwweDQyLDB4ZjAsMHhlOCwweDljLDB4NDUsMHhmMH0gfSwKLXsgICAxLDB4MDRhYSwwLHsweDIyfSB9LAoteyAgIDEsMHgwNGFiLDAsezB4MzJ9IH0sCi17ICAgMSwweDA0YWMsMCx7MHgzMn0gfSwKLXsgIDE2LDB4MTEwMCwwLHsweDEyLDB4MDEsMHgxMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg2YSwweDA4LDB4MDEsMHgwMSwweDAwLDB4MDEsMHgwMSwweDAyfSB9LAoteyAgMTYsMHgxMTEwLDAsezB4MDAsMHgwMSwweDA5LDB4MDIsMHgyMCwweDAwLDB4MDEsMHgwMSwweDAzLDB4YTAsMHgwMCwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDJ9IH0sCi17ICAxNiwweDExMjAsMCx7MHhmZiwweDAwLDB4MDAsMHgwNCwweDA3LDB4MDUsMHg4MiwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDAyLDB4MDIsMHg0MH0gfSwKLXsgIDE2LDB4MTEzMCwwLHsweDAwLDB4MDAsMHgwNCwweDAzLDB4MDksMHgwNCwweDI2LDB4MDMsMHg0MSwweDAwLDB4NmUsMHgwMCwweDYzLDB4MDAsMHg2OCwweDAwfSB9LAoteyAgMTYsMHgxMTQwLDAsezB4NmYsMHgwMCwweDcyLDB4MDAsMHgyMCwweDAwLDB4NDMsMHgwMCwweDY4LDB4MDAsMHg2OSwweDAwLDB4NzAsMHgwMCwweDczLDB4MDB9IH0sCi17ICAxNiwweDExNTAsMCx7MHgyYywweDAwLDB4MjAsMHgwMCwweDQ5LDB4MDAsMHg2ZSwweDAwLDB4NjMsMHgwMCwweDJlLDB4MDAsMHgyOCwweDAzLDB4NDYsMHgwMH0gfSwKLXsgIDE2LDB4MTE2MCwwLHsweDY5LDB4MDAsMHg3MiwweDAwLDB4NmQsMHgwMCwweDc3LDB4MDAsMHg2MSwweDAwLDB4NzIsMHgwMCwweDY1LDB4MDAsMHgyMCwweDAwfSB9LAoteyAgMTYsMHgxMTcwLDAsezB4NDYsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NmQsMHgwMCwweDY1LDB4MDAsMHg1NywweDAwLDB4NmYsMHgwMCwweDcyLDB4MDB9IH0sCi17ICAxNiwweDExODAsMCx7MHg2YiwweDAwLDB4NzMsMHgwMCwweDJhLDB4MDMsMHg0MywweDAwLDB4NmYsMHgwMCwweDZlLDB4MDAsMHg2NiwweDAwLDB4NjksMHgwMH0gfSwKLXsgIDE2LDB4MTE5MCwwLHsweDY3LDB4MDAsMHg3NSwweDAwLDB4NzIsMHgwMCwweDYxLDB4MDAsMHg3NCwweDAwLDB4NjksMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwfSB9LAoteyAgMTYsMHgxMWEwLDAsezB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMCwweDIyLDB4MDN9IH0sCi17ICAxNiwweDExYjAsMCx7MHg0OSwweDAwLDB4NmUsMHgwMCwweDc0LDB4MDAsMHg2NSwweDAwLDB4NzIsMHgwMCwweDY2LDB4MDAsMHg2MSwweDAwLDB4NjMsMHgwMH0gfSwKLXsgIDE2LDB4MTFjMCwwLHsweDY1LDB4MDAsMHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwLDB4NjksMHgwMCwweDZlLDB4MDAsMHg2NywweDAwfSB9LAoteyAgIDIsMHgxMWQwLDAsezB4MDAsMHgwMH0gfSwKLXsgICAwLDB4MDAwMCwxLHswIH19Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9lbWk2Mi5jIGIvZHJpdmVycy91c2IvbWlzYy9lbWk2Mi5jCmluZGV4IDFhMmI3OWEuLjIwODg2YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL21pc2MvZW1pNjIuYworKysgYi9kcml2ZXJzL3VzYi9taXNjL2VtaTYyLmMKQEAgLTE2LDE1ICsxNiw4IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLQotI2RlZmluZSBNQVhfSU5URUxfSEVYX1JFQ09SRF9MRU5HVEggMTYKLXR5cGVkZWYgc3RydWN0IF9JTlRFTF9IRVhfUkVDT1JECi17Ci0JX191MzIJbGVuZ3RoOwotCV9fdTMyCWFkZHJlc3M7Ci0JX191MzIJdHlwZTsKLQlfX3U4CWRhdGFbTUFYX0lOVEVMX0hFWF9SRUNPUkRfTEVOR1RIXTsKLX0gSU5URUxfSEVYX1JFQ09SRCwgKlBJTlRFTF9IRVhfUkVDT1JEOworI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaWhleC5oPgogCiAvKiBpbmNsdWRlIGZpcm13YXJlICh2YXJpYWJsZXMpKi8KIApAQCAtMzMsOSArMjYsOSBAQAogLy8jdW5kZWYgU1BESUYJLyogaWYgeW91IHdhbnQgTUlESSB1bmNvbW1lbnQgdGhpcyBsaW5lICovIAogCiAjaWZkZWYgU1BESUYKLSMgIGluY2x1ZGUgImVtaTYyX2Z3X3MuaCIgLyogc3BkaWYgZncgKi8KKyNkZWZpbmUgRklSTVdBUkVfRlcgImVtaTYyL3NwZGlmLmZ3IgogI2Vsc2UKLSMgIGluY2x1ZGUgImVtaTYyX2Z3X20uaCIgLyogbWlkaSBmdyAqLworI2RlZmluZSBGSVJNV0FSRV9GVyAiZW1pNjIvbWlkaS5mdyIKICNlbmRpZgogCiAjZGVmaW5lIEVNSTYyX1ZFTkRPUl9JRCAJCTB4MDg2YSAgLyogRW1hZ2ljIFNvZnQtdW5kIEhhcmR3YXJlIEdtQkggKi8KQEAgLTQ4LDcgKzQxLDkgQEAKICNkZWZpbmUgQ1BVQ1NfUkVHCQkweDdGOTIgIC8qIEVaLVVTQiBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXIuICBCaXQgMCBjb250cm9scyA4MDUxIHJlc2V0ICovIAogI2RlZmluZSBJTlRFUk5BTF9SQU0oYWRkcmVzcykgICAoYWRkcmVzcyA8PSBNQVhfSU5URVJOQUxfQUREUkVTUykKIAotc3RhdGljIGludCBlbWk2Ml93cml0ZW1lbW9yeSggc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IGFkZHJlc3MsIHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgsIF9fdTggYlJlcXVlc3QpOworc3RhdGljIGludCBlbWk2Ml93cml0ZW1lbW9yeShzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYWRkcmVzcywKKwkJCSAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCwKKwkJCSAgICAgX191OCBiUmVxdWVzdCk7CiBzdGF0aWMgaW50IGVtaTYyX3NldF9yZXNldChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyIHJlc2V0X2JpdCk7CiBzdGF0aWMgaW50IGVtaTYyX2xvYWRfZmlybXdhcmUgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYpOwogc3RhdGljIGludCBlbWk2Ml9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTsKQEAgLTU4LDcgKzUzLDkgQEAKIAogCiAvKiB0aGFua3MgdG8gZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhLmMgY29kZSAqLwotc3RhdGljIGludCBlbWk2Ml93cml0ZW1lbW9yeSAoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IGFkZHJlc3MsIHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgsIF9fdTggcmVxdWVzdCkKK3N0YXRpYyBpbnQgZW1pNjJfd3JpdGVtZW1vcnkoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IGFkZHJlc3MsCisJCQkgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgsCisJCQkgICAgIF9fdTggcmVxdWVzdCkKIHsKIAlpbnQgcmVzdWx0OwogCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlciA9ICBrbWVtZHVwKGRhdGEsIGxlbmd0aCwgR0ZQX0tFUk5FTCk7CkBAIC05MSw5ICs4OCwxMiBAQAogCiBzdGF0aWMgaW50IGVtaTYyX2xvYWRfZmlybXdhcmUgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYpCiB7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpsb2FkZXJfZncgPSBOVUxMOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqYml0c3RyZWFtX2Z3ID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZpcm13YXJlX2Z3ID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKIAlpbnQgZXJyOwogCWludCBpOwotCWludCBwb3MgPSAwOwkvKiBQb3NpdGlvbiBpbiBoZXggcmVjb3JkICovCiAJX191MzIgYWRkcjsJLyogQWRkcmVzcyB0byB3cml0ZSAqLwogCV9fdTggKmJ1ZjsKIApAQCAtMTA1LDYgKzEwNSwyMiBAQAogCQlnb3RvIHdyYXBlcnI7CiAJfQogCisJZXJyID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZsb2FkZXJfZncsICJlbWk2Mi9sb2FkZXIuZnciLCAmZGV2LT5kZXYpOworCWlmIChlcnIpCisJCWdvdG8gbm9mdzsKKworCWVyciA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmYml0c3RyZWFtX2Z3LCAiZW1pNjIvYml0c3RyZWFtLmZ3IiwKKwkJCQkgICAgJmRldi0+ZGV2KTsKKwlpZiAoZXJyKQorCQlnb3RvIG5vZnc7CisKKwllcnIgPSByZXF1ZXN0X2loZXhfZmlybXdhcmUoJmZpcm13YXJlX2Z3LCBGSVJNV0FSRV9GVywgJmRldi0+ZGV2KTsKKwlpZiAoZXJyKSB7CisJbm9mdzoKKwkJZXJyKCAiJXMgLSByZXF1ZXN0X2Zpcm13YXJlKCkgZmFpbGVkIiwgX19mdW5jX18pOworCQlnb3RvIHdyYXBlcnI7CisJfQorCiAJLyogQXNzZXJ0IHJlc2V0IChzdG9wIHRoZSBDUFUgaW4gdGhlIEVNSSkgKi8KIAllcnIgPSBlbWk2Ml9zZXRfcmVzZXQoZGV2LDEpOwogCWlmIChlcnIgPCAwKSB7CkBAIC0xMTIsMTMgKzEyOCwxOCBAQAogCQlnb3RvIHdyYXBlcnI7CiAJfQogCisJcmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWxvYWRlcl9mdy0+ZGF0YTsKKwogCS8qIDEuIFdlIG5lZWQgdG8gcHV0IHRoZSBsb2FkZXIgZm9yIHRoZSBGUEdBIGludG8gdGhlIEVaLVVTQiAqLwotCWZvciAoaT0wOyBnX2VtaTYyX2xvYWRlcltpXS50eXBlID09IDA7IGkrKykgewotCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGdfZW1pNjJfbG9hZGVyW2ldLmFkZHJlc3MsIGdfZW1pNjJfbG9hZGVyW2ldLmRhdGEsIGdfZW1pNjJfbG9hZGVyW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfSU5URVJOQUwpOworCXdoaWxlIChyZWMpIHsKKwkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCQkJCQlyZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSwKKwkJCQkJQU5DSE9SX0xPQURfSU5URVJOQUwpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWQiLCBfX2Z1bmNfXywgZXJyKTsKIAkJCWdvdG8gd3JhcGVycjsKIAkJfQorCQlyZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYyk7CiAJfQogCiAJLyogRGUtYXNzZXJ0IHJlc2V0IChsZXQgdGhlIENQVSBydW4pICovCkBAIC0xMzIsMTUgKzE1MywxNiBAQAogCS8qIDIuIFdlIHVwbG9hZCB0aGUgRlBHQSBmaXJtd2FyZSBpbnRvIHRoZSBFTUkKIAkgKiBOb3RlOiBjb2xsZWN0IHVwIHRvIDEwMjMgKHllcyEpIGJ5dGVzIGFuZCBzZW5kIHRoZW0gd2l0aAogCSAqIGEgc2luZ2xlIHJlcXVlc3QuIFRoaXMgaXMgX211Y2hfIGZhc3RlciEgKi8KKwlyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopYml0c3RyZWFtX2Z3LT5kYXRhOwogCWRvIHsKIAkJaSA9IDA7Ci0JCWFkZHIgPSBnX2VtaTYyYnNbcG9zXS5hZGRyZXNzOworCQlhZGRyID0gYmUzMl90b19jcHUocmVjLT5hZGRyKTsKIAogCQkvKiBpbnRlbCBoZXggcmVjb3JkcyBhcmUgdGVybWluYXRlZCB3aXRoIHR5cGUgMCBlbGVtZW50ICovCi0JCXdoaWxlICgoZ19lbWk2MmJzW3Bvc10udHlwZSA9PSAwKSAmJiAoaSArIGdfZW1pNjJic1twb3NdLmxlbmd0aCA8IEZXX0xPQURfU0laRSkpIHsKLQkJCW1lbWNweShidWYgKyBpLCBnX2VtaTYyYnNbcG9zXS5kYXRhLCBnX2VtaTYyYnNbcG9zXS5sZW5ndGgpOwotCQkJaSArPSBnX2VtaTYyYnNbcG9zXS5sZW5ndGg7Ci0JCQlwb3MrKzsKKwkJd2hpbGUgKHJlYyAmJiAoaSArIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSA8IEZXX0xPQURfU0laRSkpIHsKKwkJCW1lbWNweShidWYgKyBpLCByZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CisJCQlpICs9IGJlMTZfdG9fY3B1KHJlYy0+bGVuKTsKKwkJCXJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKTsKIAkJfQogCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGFkZHIsIGJ1ZiwgaSwgQU5DSE9SX0xPQURfRlBHQSk7CiAJCWlmIChlcnIgPCAwKSB7CkBAIC0xNTcsOCArMTc5LDExIEBACiAJfQogCiAJLyogMy4gV2UgbmVlZCB0byBwdXQgdGhlIGxvYWRlciBmb3IgdGhlIGZpcm13YXJlIGludG8gdGhlIEVaLVVTQiAoYWdhaW4uLi4pICovCi0JZm9yIChpPTA7IGdfZW1pNjJfbG9hZGVyW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgZ19lbWk2Ml9sb2FkZXJbaV0uYWRkcmVzcywgZ19lbWk2Ml9sb2FkZXJbaV0uZGF0YSwgZ19lbWk2Ml9sb2FkZXJbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CisJZm9yIChyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopbG9hZGVyX2Z3LT5kYXRhOworCSAgICAgcmVjOyByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCQkJCQlyZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSwKKwkJCQkJQU5DSE9SX0xPQURfSU5URVJOQUwpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWQiLCBfX2Z1bmNfXywgZXJyKTsKIAkJCWdvdG8gd3JhcGVycjsKQEAgLTE3NSwyOSArMjAwLDE5IEBACiAKIAkvKiA0LiBXZSBwdXQgdGhlIHBhcnQgb2YgdGhlIGZpcm13YXJlIHRoYXQgbGllcyBpbiB0aGUgZXh0ZXJuYWwgUkFNIGludG8gdGhlIEVaLVVTQiAqLwogCi0vKiBGSVhNRTogcXVpY2sgYW5kIGRpcnR5IGlmZGVmcyAqLwotI2lmZGVmIFNQRElGCi0JZm9yIChpPTA7IGdfSGV4U3BkaWZGdzYyW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWlmICghSU5URVJOQUxfUkFNKGdfSGV4U3BkaWZGdzYyW2ldLmFkZHJlc3MpKSB7Ci0JCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGdfSGV4U3BkaWZGdzYyW2ldLmFkZHJlc3MsIGdfSGV4U3BkaWZGdzYyW2ldLmRhdGEsIGdfSGV4U3BkaWZGdzYyW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfRVhURVJOQUwpOworCWZvciAocmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZpcm13YXJlX2Z3LT5kYXRhOworCSAgICAgcmVjOyByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJaWYgKCFJTlRFUk5BTF9SQU0oYmUzMl90b19jcHUocmVjLT5hZGRyKSkpIHsKKwkJCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkJCQkJCXJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQkJQU5DSE9SX0xPQURfRVhURVJOQUwpOwogCQkJaWYgKGVyciA8IDApIHsKIAkJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZCIsIF9fZnVuY19fLCBlcnIpOwogCQkJCWdvdG8gd3JhcGVycjsKIAkJCX0KIAkJfQogCX0KLSNlbHNlIC8qIE1JREkgKi8KLQlmb3IgKGk9MDsgZ19IZXhNaWRpRnc2MltpXS50eXBlID09IDA7IGkrKykgewotCQlpZiAoIUlOVEVSTkFMX1JBTShnX0hleE1pZGlGdzYyW2ldLmFkZHJlc3MpKSB7Ci0JCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGdfSGV4TWlkaUZ3NjJbaV0uYWRkcmVzcywgZ19IZXhNaWRpRnc2MltpXS5kYXRhLCBnX0hleE1pZGlGdzYyW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfRVhURVJOQUwpOwotCQkJaWYgKGVyciA8IDApIHsKLQkJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZFxuIiwgX19mdW5jX18sIGVycik7Ci0JCQkJZ290byB3cmFwZXJyOwotCQkJCXJldHVybiBlcnI7Ci0JCQl9Ci0JCX0KLQl9Ci0jZW5kaWYJCisKIAkvKiBBc3NlcnQgcmVzZXQgKHN0b3AgdGhlIENQVSBpbiB0aGUgRU1JKSAqLwogCWVyciA9IGVtaTYyX3NldF9yZXNldChkZXYsMSk7CiAJaWYgKGVyciA8IDApIHsKQEAgLTIwNSwyOSArMjIwLDE5IEBACiAJCWdvdG8gd3JhcGVycjsKIAl9CiAKLS8qIEZJWE1FOiBxdWljayBhbmQgZGlydHkgaWZkZWZzICovCi0jaWZkZWYgU1BESUYKLQlmb3IgKGk9MDsgZ19IZXhTcGRpZkZ3NjJbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJaWYgKElOVEVSTkFMX1JBTShnX0hleFNwZGlmRnc2MltpXS5hZGRyZXNzKSkgewotCQkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBnX0hleFNwZGlmRnc2MltpXS5hZGRyZXNzLCBnX0hleFNwZGlmRnc2MltpXS5kYXRhLCBnX0hleFNwZGlmRnc2MltpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKKwlmb3IgKHJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilmaXJtd2FyZV9mdy0+ZGF0YTsKKwkgICAgIHJlYzsgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCWlmIChJTlRFUk5BTF9SQU0oYmUzMl90b19jcHUocmVjLT5hZGRyKSkpIHsKKwkJCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkJCQkJCXJlYy0+ZGF0YSwgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQkJQU5DSE9SX0xPQURfRVhURVJOQUwpOwogCQkJaWYgKGVyciA8IDApIHsKIAkJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZCIsIF9fZnVuY19fLCBlcnIpOwogCQkJCWdvdG8gd3JhcGVycjsKIAkJCX0KIAkJfQogCX0KLSNlbHNlIC8qIE1JREkgKi8KLQlmb3IgKGk9MDsgZ19IZXhNaWRpRnc2MltpXS50eXBlID09IDA7IGkrKykgewotCQlpZiAoSU5URVJOQUxfUkFNKGdfSGV4TWlkaUZ3NjJbaV0uYWRkcmVzcykpIHsKLQkJCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgZ19IZXhNaWRpRnc2MltpXS5hZGRyZXNzLCBnX0hleE1pZGlGdzYyW2ldLmRhdGEsIGdfSGV4TWlkaUZ3NjJbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9JTlRFUk5BTCk7Ci0JCQlpZiAoZXJyIDwgMCkgewotCQkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkXG4iLCBfX2Z1bmNfXywgZXJyKTsKLQkJCQlnb3RvIHdyYXBlcnI7Ci0JCQl9Ci0JCX0KLQl9Ci0jZW5kaWYKLQkKKwogCS8qIERlLWFzc2VydCByZXNldCAobGV0IHRoZSBDUFUgcnVuKSAqLwogCWVyciA9IGVtaTYyX3NldF9yZXNldChkZXYsMCk7CiAJaWYgKGVyciA8IDApIHsKQEAgLTIzNiw2ICsyNDEsMTAgQEAKIAl9CiAJbXNsZWVwKDI1MCk7CS8qIGxldCBkZXZpY2Ugc2V0dGxlICovCiAKKwlyZWxlYXNlX2Zpcm13YXJlKGxvYWRlcl9mdyk7CisJcmVsZWFzZV9maXJtd2FyZShiaXRzdHJlYW1fZncpOworCXJlbGVhc2VfZmlybXdhcmUoZmlybXdhcmVfZncpOworCiAJa2ZyZWUoYnVmKTsKIAogCS8qIHJldHVybiAxIHRvIGZhaWwgdGhlIGRyaXZlciBpbmlhbGl6YXRpb24KQEAgLTI0Myw2ICsyNTIsMTAgQEAKIAlyZXR1cm4gMTsKIAogd3JhcGVycjoKKwlyZWxlYXNlX2Zpcm13YXJlKGxvYWRlcl9mdyk7CisJcmVsZWFzZV9maXJtd2FyZShiaXRzdHJlYW1fZncpOworCXJlbGVhc2VfZmlybXdhcmUoZmlybXdhcmVfZncpOworCiAJa2ZyZWUoYnVmKTsKIAlkZXZfZXJyKCZkZXYtPmRldiwgIkVycm9yXG4iKTsKIAlyZXR1cm4gZXJyOwpAQCAtMzAwLDUgKzMxMyw4IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oIkVtYWdpYyBFTUkgNnwybSBmaXJtd2FyZSBsb2FkZXIuIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiAKK01PRFVMRV9GSVJNV0FSRSgiZW1pNjIvbG9hZGVyLmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImVtaTYyL2JpdHN0cmVhbS5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKEZJUk1XQVJFX0ZXKTsKIC8qIHZpOmFpOnN5bnRheD1jOnN3PTg6dHM9ODp0dz04MAogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL2VtaTYyX2Z3X20uaCBiL2RyaXZlcnMvdXNiL21pc2MvZW1pNjJfZndfbS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTY3YzkwMC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9taXNjL2VtaTYyX2Z3X20uaAorKysgL2Rldi9udWxsCkBAIC0xLDg4NTMgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSB0aHJlZSBkaWZmZXJlbnQgZmlsZXMsIHByb3ZpZGVkIGJ5IEVtYWdpYy4KLSAqLwotLyogZ2VuZXJhdGVkIFR1ZSBKdW4gMyAyMTozNjoxMSBFRVNUIDIwMDMgKi8KLQotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZ19lbWk2MmJzW109ewotICAxNiwgMHg4MDEwLCAwLCB7MHhmZiwweGZmLDB4ZmYsMHhmZiwweGFhLDB4OTksMHg1NSwweDY2LDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwNyB9LAotICAxNiwgMHg4MDIwLCAwLCB7MHgzMCwweDAxLDB4NjAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDBkLDB4MzAsMHgwMSwweDIwLDB4MDEsMHgwMCwweDgwLDB4M2YsMHgyZCB9LAotICAxNiwgMHg4MDMwLCAwLCB7MHgzMCwweDAwLDB4YzAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSB9LAotICAxNiwgMHg4MDQwLCAwLCB7MHgzMCwweDAwLDB4MjAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMSB9LAotICAxNiwgMHg4MDUwLCAwLCB7MHgzMCwweDAwLDB4NDAsMHgwMCwweDUwLDB4MDAsMHg1OCwweDFhLDB4ODAsMHgxMiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDQwLDB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MDkwLCAwLCB7MHgwMCwweDEyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg0OCB9LAotICAxNiwgMHg4MGMwLCAwLCB7MHgwNCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTAwLCAwLCB7MHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTMwLCAwLCB7MHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTcwLCAwLCB7MHg4MCwweDEyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MWEwLCAwLCB7MHgwMCwweDkwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MWUwLCAwLCB7MHg3ZiwweDEwLDB4MDAsMHgzNCwweDAwLDB4MGQsMHgwMCwweDAzLDB4NDAsMHgwMCwweGQwLDB4MDAsMHgzNCwweDAwLDB4MDUsMHgwMCB9LAotICAxNiwgMHg4MWYwLCAwLCB7MHgwNywweDQwLDB4MDEsMHhkMCwweDAwLDB4NzQsMHgwMCwweDFkLDB4MDAsMHgwNywweDQwLDB4MDEsMHhkMCwweDAwLDB4NzQsMHgwMCB9LAotICAxNiwgMHg4MjAwLCAwLCB7MHgxZCwweDgwLDB4MDcsMHhlMCwweDAxLDB4YjgsMHgwMCwweDZlLDB4MDAsMHgxYiwweDgwLDB4MDYsMHhlMCwweDAxLDB4MzgsMHgzNyB9LAotICAxNiwgMHg4MjEwLCAwLCB7MHhjNCwweDkwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMSwweGZjLDB4ODAsMHhmYiwweDMwLDB4MzYsMHhjOCB9LAotICAxNiwgMHg4MjIwLCAwLCB7MHg0ZSwweDA5LDB4MDMsMHhmYywweDg0LDB4ZmYsMHgxMCwweDNiLDB4YzAsMHgwZSwweGM4LDB4MDcsMHgyMiwweDgwLDB4ZmYsMHgyMiB9LAotICAxNiwgMHg4MjMwLCAwLCB7MHgzMywweGMwLDB4MGYsMHhjOCwweDMzLDB4NmUsMHgwMCwweGZiLDB4ODAsMHgzZiwweDIwLDB4MGQsMHhjMiwweDUzLDB4ZDQsMHg4MCB9LAotICAxNiwgMHg4MjQwLCAwLCB7MHhjYywweDNhLDB4M2YsMHgwMCwweDBjLDB4ZjEsMHgwMywweGYwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MjUwLCAwLCB7MHg4MCwweDAwLDB4ZWQsMHg2MCwweGJmLDB4NjAsMHgyMywweGYwLDB4MGQsMHg4MiwweDEyLDB4M2MsMHg2MCwweDhmLDB4NzAsMHgyMyB9LAotICAxNiwgMHg4MjYwLCAwLCB7MHhmMCwweDA4LDB4ODgsMHgwMiwweGE1LDB4NDAsMHhiZiwweGQwLDB4NjMsMHhkNiwweDBiLDB4ODgsMHgwMiwweDJlLDB4MGMsMHhiYiB9LAotICAxNiwgMHg4MjcwLCAwLCB7MHg4MCwweDJlLDB4MjAsMHg4OCwweDhkLDB4MDIsMHhlNiwweDQwLDB4ODAsMHg2MCwweDJlLDB4MzAsMHgwYSwweGIxLDB4MTIsMHgyMCB9LAotICAxNiwgMHg4MjgwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4ODAsMHhhMywweDQwLDB4MmMsMHhjNCB9LAotICAxNiwgMHg4MjkwLCAwLCB7MHg0YSwweDAwLDB4MTIsMHg4YywweDg4LDB4YTMsMHgyMiwweDIwLDB4YzQsMHgwYSwweDkwLDB4NDIsMHgwNCwweGE5LDB4YTMsMHgwMCB9LAotICAxNiwgMHg4MmEwLCAwLCB7MHgyNCwweGM4LDB4OGIsMHg4MCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyZSwweDAxLDB4MDksMHgwOCwweDAyLDB4ODQsMHgwMCB9LAotICAxNiwgMHg4MmIwLCAwLCB7MHg4MCwweDIwLDB4MmMsMHgxMCwweDBhLDB4MzIsMHg0MiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MmMwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwNCwweGIzLDB4MDAsMHgyYSwweGMwLDB4MDgsMHgwOCwweGEyLDB4OGMsMHgwMCwweDhiLDB4MDAsMHhhMiB9LAotICAxNiwgMHg4MmQwLCAwLCB7MHhjMSwweDEwLDB4OTgsMHg0MiwweGE3LDB4MDAsMHhiYiwweDAxLDB4NjYsMHhjMSwweDBiLDB4ODAsMHgwMiwweGFjLDB4MDQsMHhiYiB9LAotICAxNiwgMHg4MmUwLCAwLCB7MHgwMCwweDJlLDB4MDAsMHgwYiwweGI4LDB4MTIsMHhlNCwweDAyLDB4ODksMHgwOCwweDBlLDB4NDAsMHgwYSwweGIwLDB4MDIsMHgzMCB9LAotICAxNiwgMHg4MmYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweGFjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjMCB9LAotICAxNiwgMHg4MzAwLCAwLCB7MHg0YSwweGI4LDB4MjMsMHhlYywweDE4LDB4ZWIsMHgwMCwweDMyLDB4YzAsMHgwZSwweDJjLDB4MTIsMHgyMiwweDEwLDB4ZWIsMHgwMCB9LAotICAxNiwgMHg4MzEwLCAwLCB7MHgyNiwweGMwLDB4NGYsMHgwMCwweDQzLDB4ZWQsMHgwMCwweGZiLDB4MDAsMHgyZSwweDI0LDB4MGQsMHg4MCwweDEzLDB4ZTQsMHgwMCB9LAotICAxNiwgMHg4MzIwLCAwLCB7MHhjOCwweGQwLDB4N2MsMHgxMiwweDBlLDB4YjAsMHgwMywweDQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MzMwLCAwLCB7MHhlMSwweDAwLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzNSwweGMwLDB4NGYsMHhlMCwweDAzLDB4N2MsMHgwOCwweGZmLDB4MDEsMHgxNyB9LAotICAxNiwgMHg4MzQwLCAwLCB7MHhjMiwweDRkLDB4YzAsMHgwMywweGY0LDB4MDgsMHhmNywweDAwLDB4M2IsMHhjMCwweDA3LDB4YzAsMHgwMywweDdjLDB4ODAsMHhmZiB9LAotICAxNiwgMHg4MzUwLCAwLCB7MHgyNCwweDNmLDB4NDAsMHgwYywweGYwLDB4MDEsMHhmNCwweDA0LDB4YmMsMHgwOCwweDNmLDB4MjgsMHgwZiwweGYwLDB4MDMsMHg3OCB9LAotICAxNiwgMHg4MzYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDgsMHhmYiwweDA0LDB4M2EsMHhjOCB9LAotICAxNiwgMHg4MzcwLCAwLCB7MHgwZiwweDk0LDB4MDMsMHhlYywweDEwLDB4ZjMsMHgwMCwweDM0LDB4YzAsMHgwZSwweGIwLDB4MDMsMHg2MSwweDA0LDB4ZmIsMHgwMCB9LAotICAxNiwgMHg4MzgwLCAwLCB7MHgzNiwweGMwLDB4MGUsMHhhMywweDAzLDB4MmMsMHg4MCwweGZiLDB4NzIsMHgzZSwweDAyLDB4MGYsMHg4YSwweDAzLDB4ZTQsMHgwMiB9LAotICAxNiwgMHg4MzkwLCAwLCB7MHhjOSwweDgwLDB4MmEsMHg1MCwweDBmLDB4YjAsMHgwMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4M2EwLCAwLCB7MHhjYSwweDQ0LDB4M2MsMHgwMCwweGJmLDB4MDAsMHgwMywweGMwLDB4MDgsMHg4MCwweDAzLDB4N2MsMHgwMCwweGJmLDB4MDAsMHgzZiB9LAotICAxNiwgMHg4M2IwLCAwLCB7MHhlMiwweDA4LDB4OTAsMHg0MywweDYwLDB4MDAsMHhiZiwweDAwLDB4MzcsMHhjMCwweDA4LDB4OTAsMHgwMSwweDZkLDB4MDAsMHhiYiB9LAotICAxNiwgMHg4M2MwLCAwLCB7MHg0MCwweDJjLDB4MTAsMHgwYiwweGIwLDB4NDIsMHhkNywweGMwLDB4ODksMHgwMCwweDJhLDB4N2MsMHgwYiwweGYwLDB4MDIsMHhmMiB9LAotICAxNiwgMHg4M2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTIsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhkNSB9LAotICAxNiwgMHg4M2UwLCAwLCB7MHg0YSwweDAwLDB4MDAsMHgwYywweDA0LDB4OTMsMHgwMCwweDBjLDB4ZjAsMHgwYiwweDA5LDB4MDIsMHgwOCwweDAxLDB4YjMsMHgyMCB9LAotICAxNiwgMHg4M2YwLCAwLCB7MHgyOCwweGMwLDB4MGEsMHgwYywweDBhLDB4MGUsMHgwMCwweGIzLDB4MDAsMHgyNCwweDMwLDB4MDksMHgwMCwweDAyLDB4YzYsMHgxMCB9LAotICAxNiwgMHg4NDAwLCAwLCB7MHg4MCwweDQyLDB4MjAsMHgwMCwweDhiLDB4YjAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NDEwLCAwLCB7MHgyMiwweDAxLDB4MWUsMHgwMCwweGI3LDB4OTQsMHgyMSwweGU0LDB4NDgsMHhkOSwweDEyLDB4NWUsMHg0MCwweGI3LDB4OTAsMHgyOSB9LAotICAxNiwgMHg4NDIwLCAwLCB7MHhlMCwweDhiLDB4NjksMHgxMiwweGQ2LDB4ODAsMHgzNywweDgyLDB4MmMsMHhlOCwweDA4LDB4NGEsMHgwMiwweDVlLDB4MDAsMHhiNyB9LAotICAxNiwgMHg4NDMwLCAwLCB7MHhhNCwweDJkLDB4MjAsMHgwYiwweDc5LDB4MDIsMHhkNiwweDA4LDB4ODYsMHg5MCwweDI5LDB4YTAsMHgwYiwweDc5LDB4MDIsMHhkOCB9LAotICAxNiwgMHg4NDQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDBjLDB4MDAsMHhmYiwweGEwLDB4MjgsMHhlOCB9LAotICAxNiwgMHg4NDUwLCAwLCB7MHgwZSwweDJhLDB4MDIsMHg4YywweDAwLDB4ZDMsMHgwMCwweDY0LDB4YzAsMHgwZiwweDAwLDB4NDMsMHgwZSwweGM0LDB4ZjMsMHgwMCB9LAotICAxNiwgMHg4NDYwLCAwLCB7MHg3OCwweGVjLDB4MGUsMHgwYSwweDQzLDB4MGUsMHgyMCwweDczLDB4ZTAsMHgzYywweDAyLDB4NGYsMHgwMCwweDAzLDB4YzQsMHg0MCB9LAotICAxNiwgMHg4NDcwLCAwLCB7MHhjMywweDAwLDB4MzgsMHhjMCwweDBmLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NDgwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGZmLDB4MDAsMHhiYywweGNjLDB4MGUsMHhiMCwweDAzLDB4ZWMsMHgyMCwweGZiLDB4MDAsMHgzYyB9LAotICAxNiwgMHg4NDkwLCAwLCB7MHhjMiwweDBjLDB4MjAsMHgwMywweDZjLDB4NTAsMHhmMywweDAwLDB4MzYsMHhjNCwweDBmLDB4NDAsMHgwMywweGZjLDB4MDgsMHhmZiB9LAotICAxNiwgMHg4NGEwLCAwLCB7MHgxYSwweDNmLDB4ODAsMHgwZiwweGYwLDB4MDEsMHhlNCwweDMwLDB4ZmYsMHgwMiwweDNmLDB4YzAsMHgwZiwweGYwLDB4NjMsMHhkMCB9LAotICAxNiwgMHg4NGIwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGVjLDB4NDAsMHhmYiwweDAwLDB4YjIsMHhkOCB9LAotICAxNiwgMHg4NGMwLCAwLCB7MHgwYywweGIwLDB4MDEsMHgyZCwweDIwLDB4ZGIsMHgwMSwweDNhLDB4YzgsMHg4YywweDM4LDB4MDMsMHhhOCwweDAwLDB4ZmIsMHg0OCB9LAotICAxNiwgMHg4NGQwLCAwLCB7MHgzZSwweGM5LDB4MGYsMHg4MCwweDAzLDB4ZWMsMHg0MCwweGZiLDB4MDEsMHgzZSwweDAwLDB4MGYsMHgwOCwweDAzLDB4YTQsMHgwOCB9LAotICAxNiwgMHg4NGUwLCAwLCB7MHhmYSwweDgwLDB4YjIsMHg4MCwweDBmLDB4YjEsMHgwMiwweDZhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NGYwLCAwLCB7MHg0OCwweDE5LDB4MWMsMHg4MCwweGJmLDB4MzAsMHgyMSwweGNhLDB4MDgsMHhmMCwweDBhLDB4MGMsMHg4MCwweDhmLDB4NTAsMHgyMSB9LAotICAxNiwgMHg4NTAwLCAwLCB7MHhjMiwweDA4LDB4NzAsMHg1MCwweDljLDB4MDAsMHhiNywweDAwLDB4MzksMHhjNCwweDBiLDB4NDAsMHgwMiwweDljLDB4MDQsMHhiNyB9LAotICAxNiwgMHg4NTEwLCAwLCB7MHgyMCwweDI1LDB4NDAsMHgwYiwweDcwLDB4MDIsMHgxNCwweDgwLDB4YjYsMHgwMCwweDIxLDB4ODAsMHgwYiwweGY4LDB4MDIsMHgxMiB9LAotICAxNiwgMHg4NTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiNywweGIwLDB4MjEsMHhlYyB9LAotICAxNiwgMHg4NTMwLCAwLCB7MHgwYiwweDc4LDB4MTIsMHhkZSwweDg0LDB4OTcsMHg4MCwweDBkLDB4ZTAsMHgyOCwweGY4LDB4MDIsMHhkZSwweDAwLDB4YjcsMHg5MCB9LAotICAxNiwgMHg4NTQwLCAwLCB7MHgyZCwweGU0LDB4MGIsMHg2OCwweDgyLDB4NWUsMHg4MCwweGI3LDB4YTAsMHgyOSwweDIwLDB4MGIsMHg0OCwweDAyLDB4OTYsMHgwMCB9LAotICAxNiwgMHg4NTUwLCAwLCB7MHhiNywweDgwLDB4MjEsMHhlMSwweDBiLDB4N2EsMHgwMiwweDcwLDB4NDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NTYwLCAwLCB7MHg0OCwweDA0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzOCwweDAyLDB4OGMsMHgwNCwweDgzLDB4MDAsMHgyOCB9LAotICAxNiwgMHg4NTcwLCAwLCB7MHhjMCwweDg4LDB4MzksMHgwMiwweDRjLDB4NDAsMHhiMywweDA0LDB4MjgsMHhjMCwweDFiLDB4MTAsMHgwMiwweDhjLDB4MDEsMHhiMyB9LAotICAxNiwgMHg4NTgwLCAwLCB7MHgwNCwweDI0LDB4ODgsMHg0YiwweDMxLDB4MDIsMHgwNCwweDAwLDB4YjMsMHg4MCwweDIwLDB4ZjIsMHgwYiwweDMwLDB4MDIsMHgwMiB9LAotICAxNiwgMHg4NTkwLCAwLCB7MHgyNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweGE4LDB4MDAsMHhmYSwweDAwLDB4MzIsMHg4MCB9LAotICAxNiwgMHg4NWEwLCAwLCB7MHgwZiwweGU4LDB4MDMsMHhlOCwweDAwLDB4ZGEsMHgwMSwweDNhLDB4ODAsMHg4YywweGVkLDB4MDMsMHhmYiwweDA0LDB4ZmEsMHgwMCB9LAotICAxNiwgMHg4NWIwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHg2YywweDAzLDB4ZmIsMHhjOCwweGJlLDB4YzIsMHgxZiwweDgwLDB4MGYsMHhlNSwweDAzLDB4YTgsMHgwMCB9LAotICAxNiwgMHg4NWMwLCAwLCB7MHhmZSwweDQ4LDB4MzMsMHg4MCwweDRmLDB4YTAsMHgwMywweDdhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NWQwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzYywweDAwLDB4MGMsMHg4MSwweDkzLDB4NjAsMHgwMCwweGY4LDB4MDEsMHgzNiB9LAotICAxNiwgMHg4NWUwLCAwLCB7MHgxMCwweDBmLDB4ODAsMHgwMywweGEwLDB4MjAsMHhmOCwweDAwLDB4MmEsMHgwMSwweDhmLDB4ODQsMHgxMywweGUxLDB4MDAsMHhmOCB9LAotICAxNiwgMHg4NWYwLCAwLCB7MHgxOCwweDM2LDB4MDAsMHgwZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjgsMHgyMCwweDNlLDB4MTQsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg4NjAwLCAwLCB7MHg4MCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweGU0LDB4MDAsMHhmMSwweDAwLDB4YWEsMHg0MCB9LAotICAxNiwgMHg4NjEwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZTEsMHgwMCwweDM4LDB4NDAsMHgxYywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHhhMCB9LAotICAxNiwgMHg4NjIwLCAwLCB7MHgzYSwweDQwLDB4NDcsMHg5YSwweDkzLDB4YTIsMHg4MCwweGY4LDB4MTAsMHgzZSwweDQwLDB4MGIsMHg5NCwweDAzLDB4ZTYsMHg0MCB9LAotICAxNiwgMHg4NjMwLCAwLCB7MHhmOSwweGMwLDB4M2UsMHg2OCwweDBiLDB4MTAsMHgwMywweDAyLDB4ODQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NjQwLCAwLCB7MHg4MCwweDA0LDB4ZTQsMHgwNCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwNCwweDg5LDB4MDAsMHgzNiB9LAotICAxNiwgMHg4NjUwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDQsMHhiOSwweDgwLDB4MmUsMHg0MCwweDRmLDB4OTQsMHgwMywweDYxLDB4MTAsMHhlOCB9LAotICAxNiwgMHg4NjYwLCAwLCB7MHg0MCwweDJlLDB4NDAsMHgwYiwweDkwLDB4NDIsMHhlNiwweDA0LDB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgyMCB9LAotICAxNiwgMHg4NjcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNCwweDI0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0MCB9LAotICAxNiwgMHg4NjgwLCAwLCB7MHgwYSwweDEwLDB4NTIsMHgwNCwweDA0LDB4YTksMHgwNCwweDJhLDB4NDAsMHgwOCwweGIwLDB4MDIsMHhlNCwweDAxLDB4YjksMHgwMCB9LAotICAxNiwgMHg4NjkwLCAwLCB7MHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4YTgsMHgwZCwweGI4LDB4NDAsMHgyZSwweDQwLDB4MDksMHg5NCwweDAyLDB4ZTUsMHgwMCB9LAotICAxNiwgMHg4NmEwLCAwLCB7MHhiOSwweDA0LDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NmIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGIxLDB4MjAsMHgyMCwweGM4LDB4MGEsMHgxMCwweDQyLDB4MDQsMHg5MCwweDgxLDB4MjAsMHgwNCB9LAotICAxNiwgMHg4NmMwLCAwLCB7MHhjOCwweDA4LDB4MzAsMHgyNiwweGM0LDB4MDAsMHhiMSwweDIwLDB4MmMsMHg0OCwweDBiLDB4OTAsMHgwMiwweDQ1LDB4MDEsMHhiMSB9LAotICAxNiwgMHg4NmQwLCAwLCB7MHg0MCwweDJjLDB4NDAsMHgwYiwweDEyLDB4ODIsMHhjNCwweDAwLDB4YjEsMHgyYiwweDJjLDB4NGEsMHgwYiwweDEyLDB4ODIsMHgwMiB9LAotICAxNiwgMHg4NmUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwOCwweDIxLDB4NDgsMHhmOCwweDUwLDB4MzIsMHgwMCB9LAotICAxNiwgMHg4NmYwLCAwLCB7MHg0ZSwweDg1LDB4MGIsMHgyMSwweDQwLDB4YTgsMHg1MiwweDJhLDB4MDAsMHgwOCwweDgwLDB4MjMsMHhlMSwweDQwLDB4ZjgsMHgwMCB9LAotICAxNiwgMHg4NzAwLCAwLCB7MHgzYSwweDE0LDB4MGYsMHhhMCwweDQzLDB4YTgsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MiwweDAzLDB4ZTAsMHgwMCB9LAotICAxNiwgMHg4NzEwLCAwLCB7MHhmMCwweDIwLDB4M2UsMHg4OCwweDRmLDB4ODIsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NzIwLCAwLCB7MHg5OCwweDE5LDB4ZTQsMHg0MCwweGY5LDB4MTEsMHgzNCwweDQ0LDB4MmQsMHhkMCwweDAzLDB4ZTQsMHg1MCwweDc5LDB4MTAsMHgzOCB9LAotICAxNiwgMHg4NzMwLCAwLCB7MHg0NCwweDJmLDB4ZDAsMHgwMywweGY1LDB4MTAsMHhmOSwweDEwLDB4M2UsMHg0NSwweDA2LDB4NTAsMHgwMywweGU1LDB4MDAsMHhlOSB9LAotICAxNiwgMHg4NzQwLCAwLCB7MHg0MCwweDNmLDB4NDAsMHgwZiwweGQwLDB4NDMsMHhmNSwweDAwLDB4ZmQsMHgyOCwweDNmLDB4NDAsMHgwZiwweDkyLDB4ODMsMHhlNiB9LAotICAxNiwgMHg4NzUwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMSwweGU2LDB4MDAsMHhkOSwweDkwLDB4MzcsMHg2OSB9LAotICAxNiwgMHg4NzYwLCAwLCB7MHg0ZCwweDkwLDB4MjMsMHg2NywweDgwLDB4ZDksMHhlMCwweDM3LDB4NjgsMHgwZSwweGQwLDB4MDcsMHhhNCwweDAwLDB4MDUsMHg4NiB9LAotICAxNiwgMHg4NzcwLCAwLCB7MHgzZSwweDY2LDB4MGQsMHg1MCwweDIzLDB4MjYsMHgwMCwweGM5LDB4ODIsMHgzZCwweDQwLDB4MGQsMHhkOCwweDA3LDB4MzYsMHgwMiB9LAotICAxNiwgMHg4NzgwLCAwLCB7MHhjZCwweGMwLDB4MzMsMHg2MCwweDBjLDB4OWMsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NzkwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHg4MCwweDg4LDB4YTIsMHgyMiwweDEwLDB4MjgsMHg4YSwweDgyLDB4MjMsMHg4NCwweDg4LDB4YTAsMHgyMiB9LAotICAxNiwgMHg4N2EwLCAwLCB7MHgxNCwweDQ4LDB4ODAsMHg0MiwweDgyLDB4MDAsMHg4OCwweDQwLDB4MmUsMHgzMCwweDA4LDB4ODAsMHgwMiwweGEyLDB4MDAsMHhkOCB9LAotICAxNiwgMHg4N2IwLCAwLCB7MHg5MCwweDI2LDB4MDAsMHgwOCwweDg0LDB4MGEsMHgyMSwweDAwLDB4YzgsMHhhMCwweGEyLDB4MTQsMHgyOCwweDhjLDB4MDIsMHgwZSB9LAotICAxNiwgMHg4N2MwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MjAsMHg5MSwweDQwLDB4MmMsMHg0NCB9LAotICAxNiwgMHg4N2QwLCAwLCB7MHgxOCwweDEwLDB4MDIsMHg4NSwweDA0LDB4YjEsMHg0MCwweDBjLDB4NDAsMHgwYSwweDEwLDB4MDYsMHg4NCwweDMwLDB4ODEsMHg0MCB9LAotICAxNiwgMHg4N2UwLCAwLCB7MHgyYywweDQ4LDB4NTksMHgxMCwweDFhLDB4MDQsMHg2MCwweDgxLDB4MDksMHgyZSwweDQwLDB4MWIsMHgxNCwweDAyLDB4MjUsMHgwMCB9LAotICAxNiwgMHg4N2YwLCAwLCB7MHg5MSwweGUwLDB4MjAsMHg2MCwweDA4LDB4MTYsMHgwMiwweDAwLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ODAwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDgxLDB4MDAsMHgyYSwweDQxLDB4MDgsMHg5MCwweDAyLDB4YTQsMHgwMCwweGExLDB4MDAsMHgyYSB9LAotICAxNiwgMHg4ODEwLCAwLCB7MHg0MSwweDA4LDB4YjAsMHg4MiwweDI0LDB4MTEsMHg4YiwweDAwLDB4MmUsMHg0MCwweDE4LDB4OTEsMHgwMiwweGEwLDB4MDQsMHg5OCB9LAotICAxNiwgMHg4ODIwLCAwLCB7MHgyMCwweDJlLDB4NTQsMHgxYiwweDkwLDB4ODIsMHgyYywweDAwLDB4ODksMHgxMCwweDIyLDB4NDQsMHg4OCwweDkwLDB4MDIsMHgwNiB9LAotICAxNiwgMHg4ODMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCB9LAotICAxNiwgMHg4ODQwLCAwLCB7MHg0YywweDkwLDB4MDMsMHhhNCwweDEwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHg4ZSwweDEwLDB4MDIsMHhhNCwweGMyLDB4YzksMHgwMCB9LAotICAxNiwgMHg4ODUwLCAwLCB7MHgzZSwweDQwLDB4MGQsMHgxNiwweDEzLDB4MDEsMHg4NCwweGM4LDB4MjAsMHgzYywweDYwLDB4MGYsMHg5MCwweDEyLDB4MDQsMHgwMCB9LAotICAxNiwgMHg4ODYwLCAwLCB7MHhkOSwweDQwLDB4MzIsMHg1MCwweDBjLDB4OTAsMHgwMywweDI4LDB4ODQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ODcwLCAwLCB7MHgyOCwweDAxLDB4ODQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDQwLDB4NGYsMHg5OSwweDRhLDB4NDQsMHgwMCwweDk5LDB4MDAsMHhiNCB9LAotICAxNiwgMHg4ODgwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgxMywweGU2LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDBmLDB4OTAsMHgwMywweGUzLDB4MDAsMHhmOCB9LAotICAxNiwgMHg4ODkwLCAwLCB7MHgwMSwweDM2LDB4NDAsMHgwYywweDk5LDB4MDMsMHhlNCwweDAyLDB4ZjksMHg4MCwweDNlLDB4NjAsMHg0ZiwweDkwLDB4MGIsMHhjYSB9LAotICAxNiwgMHg4OGEwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhkOCwweDAwLDB4M2MsMHgwMCB9LAotICAxNiwgMHg4OGIwLCAwLCB7MHgxZCwweDgwLDB4MDMsMHgyMCwweDAwLDB4ZTgsMHgwMCwweDMyLDB4MDAsMHgwYywweDg0LDB4ODMsMHhlMCwweDEwLDB4ZTgsMHgyMCB9LAotICAxNiwgMHg4OGMwLCAwLCB7MHgzMiwweDAwLDB4OGUsMHg4NCwweDAzLDB4MjEsMHg4MCwweGM4LDB4MDAsMHgzYSwweDE5LDB4MGYsMHgwNCwweDAzLDB4ZTAsMHgyNCB9LAotICAxNiwgMHg4OGQwLCAwLCB7MHhmMCwweDAyLDB4M2MsMHgwMCwweDBmLDB4ODAsMHgxMywweDhhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4OGUwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMiwweDhhLDB4MDEsMHgwZiwweGEyLDB4NjgsMHhhMCwweDAwLDB4MjgsMHgwMCwweDhhLDB4MDAsMHg3NyB9LAotICAxNiwgMHg4OGYwLCAwLCB7MHg4MCwweDY4LDB4ZTAsMHgxMiwweGU4LDB4MDAsMHhkZSwweDAwLDB4MzYsMHg4MSwweDA4LDB4ZTAsMHgwMywweDdhLDB4MDgsMHhhZSB9LAotICAxNiwgMHg4OTAwLCAwLCB7MHhjNCwweDJmLDB4ODAsMHgwOCwweGVkLDB4MDIsMHhmYSwweDAwLDB4YmUsMHhhMCwweDNiLDB4ODAsMHgwYiwweGEwLDB4NDIsMHgwYSB9LAotICAxNiwgMHg4OTEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHg4NSwweDRjLDB4MDAsMHg5MywweDAwLDB4MmMsMHhjMCB9LAotICAxNiwgMHg4OTIwLCAwLCB7MHg4OCwweGIwLDB4MDIsMHgwYywweDE0LDB4YTMsMHgwNCwweDIwLDB4YzQsMHgxOCwweDM4LDB4MDIsMHhlYywweDEwLDB4OTMsMHg1NCB9LAotICAxNiwgMHg4OTMwLCAwLCB7MHgyOCwweGMwLDB4MGEsMHgwMCwweDAyLDB4NGUsMHgwMCwweDgzLDB4NDksMHg2OCwweGMwLDB4MDIsMHgzOSwweDQyLDB4Y2UsMHg0MCB9LAotICAxNiwgMHg4OTQwLCAwLCB7MHhiMywweDAwLDB4MmMsMHhlNiwweDBiLDB4YjAsMHgwMiwweDhiLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4OTUwLCAwLCB7MHgyMCwweDAxLDB4MWMsMHgwOCwweDg3LDB4MjAsMHgyYywweDgwLDB4MTgsMHhmMiwweDIyLDB4MWMsMHgwMCwweDg3LDB4MTAsMHgyMSB9LAotICAxNiwgMHg4OTYwLCAwLCB7MHhjMCwweDA4LDB4NzAsMHg4MiwweGRjLDB4ODAsMHg5NiwweDgwLDB4MmQsMHhjMCwweDBhLDB4NDAsMHgwMiwweDdkLDB4NDAsMHgyNyB9LAotICAxNiwgMHg4OTcwLCAwLCB7MHg2NCwweDZkLDB4ZDAsMHg0OCwweDYwLDB4NDIsMHhkOCwweDA1LDB4YjYsMHgwNCwweDI5LDB4YzAsMHg0YiwweDcyLDB4MDIsMHgyOCB9LAotICAxNiwgMHg4OTgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwOCwweDNlLDB4ODgsMHhkNywweGUwLDB4M2QsMHhlMCB9LAotICAxNiwgMHg4OTkwLCAwLCB7MHgwOCwweDdjLDB4NDIsMHgzZSwweDAwLDB4ZTMsMHg4MiwweDIwLDB4ZTAsMHgwYywweDY4LDB4MDMsMHhkZiwweDA0LDB4ZDcsMHg4MCB9LAotICAxNiwgMHg4OWEwLCAwLCB7MHgzYiwweGUwLDB4NGUsMHg0OCwweDBhLDB4NWUsMHg4MCwweGM3LDB4YzIsMHgxOSwweGUwLDB4MGUsMHg3OCwweDAzLDB4ZDYsMHgwOCB9LAotICAxNiwgMHg4OWIwLCAwLCB7MHhmNywweDgwLDB4M2QsMHhlMCwweDBmLDB4ZjgsMHgwMywweGFhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4OWMwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHg0MCwweGZiLDB4NDAsMHg3ZSwweDgwLDB4MGUsMHgzNiwweDgzLDB4ZWQsMHg0MCwweGRiLDB4NjAsMHgzZSB9LAotICAxNiwgMHg4OWQwLCAwLCB7MHg4MCwweDBmLDB4YTAsMHgwMywweGVkLDB4MjgsMHhkYSwweDAwLDB4MzIsMHhjNCwweDBjLDB4YjAsMHgwYiwweGNjLDB4MDAsMHhmYiB9LAotICAxNiwgMHg4OWUwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHgwZSwweDgwLDB4MTMsMHhlMCwweDEwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGIxLDB4NTMsMHhjMiB9LAotICAxNiwgMHg4OWYwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGZlLDB4MDAsMHhmZiwweGMwLDB4MzMsMHhlMCB9LAotICAxNiwgMHg4YTAwLCAwLCB7MHgwYywweGY5LDB4MDMsMHg3ZiwweDA0LDB4Y2YsMHhkMCwweDNmLDB4ZTQsMHgwZiwweGI4LDB4MDMsMHhmZSwweDAwLDB4ZmYsMHg5NCB9LAotICAxNiwgMHg4YTEwLCAwLCB7MHgzZiwweGUwLDB4MGYsMHhjOCwweDAzLDB4N2UsMHgxMCwweGYzLDB4ODAsMHgzYiwweGUwLDB4MGYsMHhmOCwweDAzLDB4ZmUsMHg0OCB9LAotICAxNiwgMHg4YTIwLCAwLCB7MHhlZCwweDgwLDB4MzMsMHgyNCwweDA0LDB4ZjgsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YTMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg4MCwweGJmLDB4MDQsMHgyMSwweDI4LDB4MDgsMHhmOCwweDAyLDB4MWUsMHhjMCwweGNmLDB4OTAsMHgyMSB9LAotICAxNiwgMHg4YTQwLCAwLCB7MHg0YywweDBiLDB4NWEsMHg0MiwweGRlLDB4MDAsMHhiNywweDgwLDB4MmMsMHhlOCwweDBiLDB4MDQsMHgwMiwweDFjLDB4MDAsMHhiNyB9LAotICAxNiwgMHg4YTUwLCAwLCB7MHhhMCwweDM1LDB4MTAsMHg4ZiwweDcxLDB4MTMsMHhkZSwweGMwLDB4ODQsMHgxMCwweDIxLDB4ODAsMHgwZCwweDcxLDB4MDIsMHgyYSB9LAotICAxNiwgMHg4YTYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHg0MCwweDljLDB4MDgsMHhiNywweDAwLDB4MjUsMHhjOCB9LAotICAxNiwgMHg4YTcwLCAwLCB7MHgwOCwweDcxLDB4MDIsMHhjYywweDgwLDB4OTcsMHgwMCwweDI5LDB4YzAsMHg4YiwweDcyLDB4MDYsMHhkYywweDA4LDB4YjUsMHgwMCB9LAotICAxNiwgMHg4YTgwLCAwLCB7MHgyZCwweGM4LDB4MGIsMHg0MCwweDAyLDB4MWMsMHg0MCwweGJmLDB4MTAsMHgyMSwweGMwLDB4MGIsMHg3NCwweDAyLDB4ZDQsMHg4MCB9LAotICAxNiwgMHg4YTkwLCAwLCB7MHhhNywweDQwLDB4MjEsMHg0MSwweDA4LDB4NzAsMHgwMiwweDA0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YWEwLCAwLCB7MHg2MCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyNCwweDAwLDB4MDgsMHgzNCwweDgyLDB4YWMsMHgxMSwweDgzLDB4MDAsMHgyMCB9LAotICAxNiwgMHg4YWIwLCAwLCB7MHgwMCwweDRiLDB4MTgsMHgyNiwweGNmLDB4MjAsMHhiMSwweDA2LDB4MmMsMHhjMSwweDBiLDB4MzIsMHgwMiwweDBlLDB4MDgsMHhiMyB9LAotICAxNiwgMHg4YWMwLCAwLCB7MHg4OCwweDI0LDB4MzIsMHgwYSwweDMwLDB4MTIsMHg4NCwweDA4LDB4ODAsMHgwMCwweGEwLDB4MzQsMHgyOCwweDMwLDB4MDIsMHgxOCB9LAotICAxNiwgMHg4YWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4YjYsMHg0MCB9LAotICAxNiwgMHg4YWUwLCAwLCB7MHgyYywweGY0LDB4NDMsMHhmYywweDAxLDB4ZGYsMHgwMCwweDNhLDB4MDAsMHgwMywweDkyLDB4MDMsMHhmZiwweDg4LDB4ZjksMHgwMCB9LAotICAxNiwgMHg4YWYwLCAwLCB7MHgyZiwweGMwLDB4MWIsMHgwZSwweDRiLDB4MmUsMHg5MCwweGZiLDB4ZTAsMHgzMCwweDMyLDB4MGIsMHg5OCwweDAyLDB4ZWMsMHgwOCB9LAotICAxNiwgMHg4YjAwLCAwLCB7MHg2YiwweGMwLDB4MzIsMHhjMCwweDA4LDB4ZjAsMHgwOSwweDNlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YjEwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGYzLDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAxLDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzYSB9LAotICAxNiwgMHg4YjIwLCAwLCB7MHgxMCwweDBmLDB4YjQsMHgwMywweGVjLDB4MDAsMHhmMCwweDAwLDB4M2MsMHhjMCwweDBmLDB4ODAsMHgwYiwweGFkLDB4MjAsMHhmYiB9LAotICAxNiwgMHg4YjMwLCAwLCB7MHg0MCwweDNlLDB4MTAsMHgwNywweGE4LDB4NjMsMHhlMCwweDAwLDB4ZmIsMHg4MCwweDNlLDB4ZDgsMHgwZiwweGIwLDB4MDMsMHhlMCB9LAotICAxNiwgMHg4YjQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhmZiwweDAwLDB4NzIsMHgwMCB9LAotICAxNiwgMHg4YjUwLCAwLCB7MHgwZiwweGYwLDB4MjMsMHhmYywweDAwLDB4ZGYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGMwLDB4MDMsMHhkYywweDAwLDB4OGYsMHgwMCB9LAotICAxNiwgMHg4YjYwLCAwLCB7MHgzMywweGMxLDB4MGMsMHhjMCwweDAzLDB4YmUsMHgwMCwweGZmLDB4OTAsMHgzYiwweDI4LDB4MGUsMHg1OSwweDAzLDB4MmUsMHgwMCB9LAotICAxNiwgMHg4YjcwLCAwLCB7MHg3YiwweDAwLDB4MzIsMHhjNCwweDBmLDB4YjAsMHgwMywweGQwLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YjgwLCAwLCB7MHhjMSwweDA0LDB4NmMsMHgwMCwweGJiLDB4MDAsMHg2MiwweGEwLDB4MGYsMHhiMCwweDAyLDB4ZWMsMHgwOSwweDhiLDB4MDAsMHgyZSB9LAotICAxNiwgMHg4YjkwLCAwLCB7MHgzMCwweDBiLDB4YTgsMHgwMywweGFjLDB4MDAsMHhmYSwweGMxLDB4MjIsMHhjMSwweDA4LDB4OGMsMHgwMiwweDJjLDB4MDAsMHhiMyB9LAotICAxNiwgMHg4YmEwLCAwLCB7MHg4MSwweDJhLDB4MDAsMHgwZCwweDg4LDB4YjIsMHgyMiwweDAwLDB4YjMsMHhjMCwweDIyLDB4YzgsMHgwYiwweGIwLDB4NDIsMHg2MSB9LAotICAxNiwgMHg4YmIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDZjLDB4MDAsMHhiYiwweDAxLDB4MjIsMHg2MiB9LAotICAxNiwgMHg4YmMwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHhlYywweDA0LDB4OGIsMHgwMCwweDJlLDB4YTIsMHg0OSwweDg4LDB4MjYsMHhlYywweDAwLDB4YTgsMHg4MCB9LAotICAxNiwgMHg4YmQwLCAwLCB7MHgyMiwweGMwLDB4MjgsMHg4MiwweDBhLDB4YWMsMHhhMCwweGJiLDB4MDgsMHgyMiwweGMwLDB4MDgsMHg4MCwweDBhLDB4MjgsMHg4NCB9LAotICAxNiwgMHg4YmUwLCAwLCB7MHhiOSwweGMwLDB4YTIsMHgwMCwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YmYwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIzLDB4MTAsMHgyMCwweDQ4LDB4MGEsMHgzMiwweDAyLDB4Y2MsMHg4MCwweDgzLDB4MDEsMHgyNCB9LAotICAxNiwgMHg4YzAwLCAwLCB7MHgwMCwweDBiLDB4MDIsMHgwNiwweDhjLDB4NjAsMHhhMCwweDIwLDB4MjAsMHhjOCwweDA4LDB4MDEsMHgwMiwweDBjLDB4MDAsMHhiMyB9LAotICAxNiwgMHg4YzEwLCAwLCB7MHgwMCwweDI4LDB4MDAsMHgwOSwweDIwLDB4MDIsMHgwOCwweDgwLDB4YjEsMHgwMCwweGEwLDB4ODAsMHgwYiwweDMwLDB4MDIsMHg0MiB9LAotICAxNiwgMHg4YzIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOSwweDZjLDB4MDAsMHhmZiwweDAwLDB4YTIsMHgwZSB9LAotICAxNiwgMHg4YzMwLCAwLCB7MHgwYiwweGYxLDB4MDMsMHhmYywweDA4LDB4Y2YsMHgyMCwweDNlLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhmYywweDg0LDB4YTgsMHgyMCB9LAotICAxNiwgMHg4YzQwLCAwLCB7MHhiMiwweGM4LDB4OGMsMHg4MCwweDAzLDB4YWMsMHg0NCwweGZiLDB4NzAsMHgzYSwweGMwLDB4MGUsMHg5MCwweDAzLDB4MmMsMHhhNCB9LAotICAxNiwgMHg4YzUwLCAwLCB7MHhmYiwweDAwLDB4YjIsMHg0MCwweDBmLDB4YjAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YzYwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwMCwweGZmLDB4MjYsMHgzZSwweDAwLDB4MGYsMHhiNiwweDEzLDB4ZWQsMHgwMCwweGZiLDB4MTAsMHgzZiB9LAotICAxNiwgMHg4YzcwLCAwLCB7MHgwMCwweDBmLDB4YzEsMHgxMywweGFjLDB4ODAsMHhmOCwweDEyLDB4M2UsMHhjNiwweDRmLDB4NDIsMHg0MywweGZjLDB4MDQsMHhmZiB9LAotICAxNiwgMHg4YzgwLCAwLCB7MHgzMSwweDNmLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhlYywweDAwLDB4ZmYsMHgwMCwweGJmLDB4YzAsMHg4ZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHg4YzkwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMSwweGZjLDB4NDAsMHhmYywweDgwLDB4MzYsMHhjOCB9LAotICAxNiwgMHg4Y2EwLCAwLCB7MHgwZiwweDA5LDB4MDMsMHhjMiwweDAwLDB4ZjgsMHhjMCwweDMzLDB4Y2MsMHgyYywweDRjLDB4MDMsMHg2MywweDkwLDB4ZTAsMHg5MCB9LAotICAxNiwgMHg4Y2IwLCAwLCB7MHgzYSwweGMwLDB4MGQsMHg1MCwweDBiLDB4M2MsMHgwNCwweGRmLDB4NjQsMHgzZiwweGM4LDB4OGQsMHhmMSwweDQzLDB4MmMsMHgwMCB9LAotICAxNiwgMHg4Y2MwLCAwLCB7MHhkNSwweDAwLDB4MzMsMHhjMCwweDQ1LDB4ZjIsMHgyMywweDcwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4Y2QwLCAwLCB7MHg4MCwweDEwLDB4ZWQsMHg4MCwweGJhLDB4MDIsMHgyMSwweGRlLDB4OGIsMHg4MiwweDIyLDB4ZTAsMHgyMCwweGIwLDB4MDAsMHgyYiB9LAotICAxNiwgMHg4Y2UwLCAwLCB7MHhlYywweDA5LDB4ODAsMHgwMiwweGUzLDB4NDAsMHhiYSwweDIwLDB4MmYsMHhkYywweDA4LDB4OTgsMHgxMiwweDJjLDB4MDAsMHg4YiB9LAotICAxNiwgMHg4Y2YwLCAwLCB7MHg1MSwweDJhLDB4ZDAsMHgwOCwweDcyLDB4MjIsMHgyZSwweDAwLDB4OGQsMHg4MCwweDIxLDB4ZDAsMHgwOCwweGI2LDB4ODIsMHgyMCB9LAotICAxNiwgMHg4ZDAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NDAsMHhiOSwweDI4LDB4MjQsMHhjMCB9LAotICAxNiwgMHg4ZDEwLCAwLCB7MHg0YSwweDEyLDB4MTIsMHg4OCwweDg1LDB4YTgsMHgyMCwweDIwLDB4YzAsMHgwYiwweDIyLDB4MDIsMHhjMCwweDkxLDB4YTEsMHgwMCB9LAotICAxNiwgMHg4ZDIwLCAwLCB7MHgyOCwweGMyLDB4MGIsMHgwMCwweDEyLDB4OGMsMHg0MCwweGEzLDB4MjAsMHgyMCwweGM0LDB4MGIsMHgzMCwweDBhLDB4MGMsMHgxMSB9LAotICAxNiwgMHg4ZDMwLCAwLCB7MHg5OSwweDAwLDB4MjAsMHhjNSwweDA5LDB4MDEsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZDQwLCAwLCB7MHhjMCwweDExLDB4YWMsMHgwMCwweGI4LDB4ODAsMHgyMiwweGMwLDB4MGIsMHg4OCwweDAyLDB4ZWUsMHgwMSwweGI4LDB4YzEsMHgyYSB9LAotICAxNiwgMHg4ZDUwLCAwLCB7MHhjMCwweDFiLDB4YTgsMHgwNiwweGUyLDB4MDAsMHhiYiwweDgwLDB4MmUsMHhjMCwweDhhLDB4ODAsMHgwMiwweGFjLDB4MDAsMHhhYiB9LAotICAxNiwgMHg4ZDYwLCAwLCB7MHgwMCwweDJlLDB4YzAsMHgwYSwweGIwLDB4MDIsMHgyYywweDAwLDB4OTksMHgwMCwweDI0LDB4YzAsMHgwOCwweDgwLDB4MDIsMHgzMCB9LAotICAxNiwgMHg4ZDcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhiMCwweDgwLDB4MzYsMHhjMCB9LAotICAxNiwgMHg4ZDgwLCAwLCB7MHgwZSwweGE4LDB4MTMsMHhlMiwweDg1LDB4ZjMsMHhjMCwweDMyLDB4YzAsMHgwZSwweDljLDB4MjMsMHhlNywweDI0LDB4ZTgsMHg4MiB9LAotICAxNiwgMHg4ZDkwLCAwLCB7MHgzYSwweGMxLDB4MGYsMHg5NCwweDAzLDB4YWMsMHgwMiwweGViLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MmUsMHgxMCB9LAotICAxNiwgMHg4ZGEwLCAwLCB7MHg1MSwweDAwLDB4YjIsMHhjMCwweDBkLDB4YjAsMHgwMywweDUwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZGIwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGYsMHhkMCwweDAzLDB4ZjAsMHgwNCwweGZkLDB4MDQsMHgzZiB9LAotICAxNiwgMHg4ZGMwLCAwLCB7MHhjMCwweDRjLDB4YzAsMHgwMywweGYwLDB4MTAsMHhmYywweDAwLDB4MWYsMHhjMCwweDBkLDB4ZDEsMHgyMywweDFjLDB4MDAsMHhjNyB9LAotICAxNiwgMHg4ZGQwLCAwLCB7MHgwMCwweDM5LDB4YzAsMHgwZCwweGYwLDB4ODMsMHhmZSwweDQ0LDB4ZWQsMHgwMCwweDNiLDB4YzAsMHgwZiwweDc0LDB4MDMsMHhmOCB9LAotICAxNiwgMHg4ZGUwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhmOSwweDAxLDB4YmEsMHhjMSB9LAotICAxNiwgMHg4ZGYwLCAwLCB7MHgwYywweGIwLDB4MDMsMHhhMSwweDA4LDB4ZmEsMHgwMCwweDMwLDB4YzgsMHg4ZiwweDk0LDB4MDMsMHgyNSwweDAwLDB4ZjksMHgwMCB9LAotICAxNiwgMHg4ZTAwLCAwLCB7MHgzYywweGMwLDB4MGYsMHgwNCwweDgzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzZSwweGUwLDB4MGYsMHg3MSwweDBiLDB4MmMsMHg0MCB9LAotICAxNiwgMHg4ZTEwLCAwLCB7MHhmZCwweDA4LDB4MzcsMHhjMCwweDRlLDB4OTEsMHgwMywweDkwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZTIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweGI5LDB4MDAsMHgyMywweGMwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweGM4LDB4MDAsMHgzNyB9LAotICAxNiwgMHg4ZTMwLCAwLCB7MHhmMCwweDBiLDB4ODAsMHgwMSwweDY0LDB4MDAsMHg0OSwweDAyLDB4MzMsMHhjMCwweDg0LDB4OWMsMHgwMywweDNjLDB4MDAsMHhiZiB9LAotICAxNiwgMHg4ZTQwLCAwLCB7MHgwMiwweDBmLDB4ZDAsMHgwOCwweGY0LDB4MDIsMHgwZSwweDEwLDB4YmQsMHg4MCwweDMzLDB4ZTAsMHgwOCwweDkwLDB4MGEsMHgzMiB9LAotICAxNiwgMHg4ZTUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMCwweDA2LDB4MjAsMHhjMCB9LAotICAxNiwgMHg4ZTYwLCAwLCB7MHgwOCwweDAwLDB4NDIsMHg4NCwweDAwLDB4YTAsMHgwMCwweDIwLDB4ZjAsMHgwYiwweDAwLDB4MjIsMHhjYywweDAwLDB4OTAsMHgwMCB9LAotICAxNiwgMHg4ZTcwLCAwLCB7MHgyOCwweGMwLDB4MDIsMHgzZCwweDAyLDB4OGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGMyLDB4OWEsMHgzOCwweDAyLDB4MDYsMHgwNCB9LAotICAxNiwgMHg4ZTgwLCAwLCB7MHhiMSwweDEyLDB4MjAsMHhlMCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZTkwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweGI2LDB4ODAsMHgyMSwweGUwLDB4MjgsMHhlYSwweDAyLDB4MzYsMHg4MCwweDg2LDB4OTAsMHg2NSB9LAotICAxNiwgMHg4ZWEwLCAwLCB7MHhlMCwweDFiLDB4ZGEsMHgwNiwweDVlLDB4MDEsMHg5ZSwweDg0LDB4MjUsMHhlYywweDBhLDB4NzgsMHgwMiwweDVlLDB4MDAsMHhiNyB9LAotICAxNiwgMHg4ZWIwLCAwLCB7MHg4MCwweDJkLDB4ZTAsMHgwOCwweDc5LDB4NGEsMHgxNiwweDQwLDB4YmQsMHg4MCwweDI1LDB4ZTAsMHgwOCwweDM4LDB4MDIsMHgwOCB9LAotICAxNiwgMHg4ZWMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhmYiwweDAwLDB4MjgsMHhlMCB9LAotICAxNiwgMHg4ZWQwLCAwLCB7MHgwOCwweDE4LDB4MDIsMHg4YSwweDg4LDB4YTEsMHhhMCwweDIwLDB4YzIsMHgxZiwweDJhLDB4MjMsMHhlNiwweGM4LDB4ZjAsMHhjMCB9LAotICAxNiwgMHg4ZWUwLCAwLCB7MHgzYSwweGVkLDB4NGUsMHgzNCwweDAyLDB4OGMsMHgwOCwweGYzLDB4ODEsMHgxZSwweGMwLDB4MGUsMHgzMCwweDAzLDB4MGUsMHhjMCB9LAotICAxNiwgMHg4ZWYwLCAwLCB7MHhmMSwweDAwLDB4YjAsMHhjYSwweDBlLDB4MjEsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZjAwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwOCwweGZlLDB4MTAsMHgzZiwweGQyLDB4MGYsMHhlMCwweDAzLDB4ZWMsMHgwNCwweGZmLDB4MTQsMHg3ZSB9LAotICAxNiwgMHg4ZjEwLCAwLCB7MHhjMCwweDBmLDB4YjEsMHgyMywweGZjLDB4MDEsMHhlZSwweDAwLDB4M2EsMHhjNCwweDBkLDB4YjAsMHgxMywweGJjLDB4MDAsMHhmZiB9LAotICAxNiwgMHg4ZjIwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZSwweGYwLDB4ODMsMHhmYywweDBjLDB4ZmQsMHgxMCwweDNiLDB4YzAsMHgyZiwweGUxLDB4MDMsMHhkMCB9LAotICAxNiwgMHg4ZjMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4NDAsMHhmMCwweDgwLDB4MzIsMHhkMCB9LAotICAxNiwgMHg4ZjQwLCAwLCB7MHgwYywweGEwLDB4MDMsMHg2YywweDAwLDB4ZjMsMHg4MCwweDMyLDB4ZGEsMHgwZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCB9LAotICAxNiwgMHg4ZjUwLCAwLCB7MHgzZSwweGNjLDB4NGMsMHg5OCwweDEzLDB4MmMsMHgxMCwweGZiLDB4MDQsMHgzZSwweGM0LDB4MGMsMHhmMiwweDgzLDB4YTYsMHgxMCB9LAotICAxNiwgMHg4ZjYwLCAwLCB7MHhkZCwweDIwLDB4M2YsMHhkMSwweDBjLDB4YjAsMHgwMywweGVhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZjcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHg4MCwweGI3LDB4MDAsMHgyMSwweGM4LDB4MGMsMHg3MCwweDAyLDB4ZGMsMHgwOCwweGI3LDB4MDAsMHgyMSB9LAotICAxNiwgMHg4ZjgwLCAwLCB7MHhjOCwweDBlLDB4NzAsMHgyMiwweGQ4LDB4MDAsMHhiNywweDAwLDB4MmMsMHhjMiwweDBhLDB4NzAsMHgwYSwweDFmLDB4MDgsMHhiNyB9LAotICAxNiwgMHg4ZjkwLCAwLCB7MHgwMCwweDM5LDB4YzgsMHgwYSwweDcwLDB4MDIsMHgxNCwweDAwLDB4YzUsMHg2OSwweDJjLDB4Y2EsMHgyYSwweDcwLDB4MDIsMHhkMiB9LAotICAxNiwgMHg4ZmEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiZiwweDgxLDB4NjQsMHhlMSB9LAotICAxNiwgMHg4ZmIwLCAwLCB7MHgwOCwweDc4LDB4MDIsMHg1YSwweDAxLDB4YmYsMHg4MCwweDIxLDB4ZWMsMHg0YiwweDc4LDB4NDYsMHg5ZiwweDA4LDB4MzcsMHg4MCB9LAotICAxNiwgMHg4ZmMwLCAwLCB7MHgyZCwweGU4LDB4ODgsMHgxOCwweDAyLDB4MWUsMHg4MSwweGI3LDB4YjAsMHgyZCwweGUwLDB4MDksMHg3YSwweDAyLDB4OGUsMHgwMCB9LAotICAxNiwgMHg4ZmQwLCAwLCB7MHg5NSwweGEwLDB4MmQsMHhlNCwweDA4LDB4NzgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZmUwLCAwLCB7MHg0OCwweDE0LDB4ZWMsMHgwMCwweGIzLDB4NjAsMHgyMCwweGMwLDB4MDgsMHhiNiwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDEsMHgyMCB9LAotICAxNiwgMHg4ZmYwLCAwLCB7MHhjMCwweDhhLDB4YjAsMHg4NiwweGNmLDB4MDAsMHhiYiwweDEwLDB4NmMsMHhjMSwweDBhLDB4MzgsMHgwMiwweDBjLDB4MDEsMHhiMyB9LAotICAxNiwgMHg5MDAwLCAwLCB7MHgwMiwweDI4LDB4YzAsMHgwYiwweGIwLDB4MGEsMHgwYywweDAwLDB4ODEsMHgwMCwweDJlLDB4YzAsMHgwYSwweGI0LDB4ODIsMHhkMiB9LAotICAxNiwgMHg5MDEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmZSwweDQwLDB4YjYsMHg4MCB9LAotICAxNiwgMHg5MDIwLCAwLCB7MHgwYywweGU0LDB4MDMsMHg3OCwweDgwLDB4ZmUsMHg3NCwweDMyLDB4ODAsMHgwYiwweGU2LDB4MDMsMHhmOSwweDAwLDB4ZmUsMHgwMCB9LAotICAxNiwgMHg5MDMwLCAwLCB7MHgzZSwweDgwLDB4MGMsMHhlMCwweDAzLDB4MjgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4NGQsMHhhMCwweDAzLDB4YTgsMHgwMCB9LAotICAxNiwgMHg5MDQwLCAwLCB7MHhkYSwweDA0LDB4M2UsMHg4MCwweDBjLDB4ZTQsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MDUwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MmUsMHg4MCwweDIzLDB4ZTAsMHgwMCwweGY4LDB4MDEsMHgzYyB9LAotICAxNiwgMHg5MDYwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MjAsMHhmOCwweDIwLDB4M2UsMHgwMSwweDhmLDB4ODksMHgwMywweGUwLDB4MDAsMHhmOCB9LAotICAxNiwgMHg5MDcwLCAwLCB7MHgwMCwweDNhLDB4MTAsMHgwZSwweDgwLDB4MDEsMHhlMCwweDAwLDB4ZTgsMHg0MCwweDdlLDB4MDAsMHg0ZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg5MDgwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDIsMHhjOSwweDAxLDB4N2UsMHg0MCB9LAotICAxNiwgMHg5MDkwLCAwLCB7MHgyYywweDkwLDB4MGIsMHgyNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NjgsMHgwNSwweDkwLDB4MTMsMHhhNCwweDA0LDB4ZDksMHgwMCB9LAotICAxNiwgMHg5MGEwLCAwLCB7MHgzMiwweDQxLDB4MGUsMHg5MSwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDYwLDB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCB9LAotICAxNiwgMHg5MGIwLCAwLCB7MHhmMSwweDAwLDB4MzIsMHg0MCwweDY4LDB4OTAsMHg0MywweDgyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MGMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHg2ZSwweDQwLDB4MDgsMHg5MCwweDQyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSB9LAotICAxNiwgMHg5MGQwLCAwLCB7MHg3MCwweDg4LDB4OTAsMHgwMywweDI0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTgsMHgxMiwweGU0LDB4MDAsMHhiOSB9LAotICAxNiwgMHg5MGUwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwYSwweDkwLDB4MGEsMHgyNiwweDAwLDB4YjksMHg4MCwweGEyLDB4NDAsMHgwOCwweDkwLDB4MTIsMHgyMCB9LAotICAxNiwgMHg5MGYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDA0LDB4MmMsMHg0MCB9LAotICAxNiwgMHg5MTAwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgyNCwweDAxLDB4YjksMHgwMCwweDJhLDB4NDAsMHgwYiwweGIwLDB4MDIsMHhhNCwweDAxLDB4YjksMHgwMCB9LAotICAxNiwgMHg5MTEwLCAwLCB7MHhlMCwweDQwLDB4MGEsMHg5MCwweDgyLDB4YTQsMHgwMCwweGI5LDB4MDAsMHgyYywweDQ4LDB4MGEsMHg5OCwweDAyLDB4MjQsMHg4MCB9LAotICAxNiwgMHg5MTIwLCAwLCB7MHgzOSwweDIwLDB4MjIsMHg0MCwweDJhLDB4OTAsMHgwMiwweDg2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MTMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MDAsMHgyYywweDQ4LDB4MDgsMHgxMCwweDEyLDB4MDQsMHgxMCwweGIxLDB4MDQsMHgyYyB9LAotICAxNiwgMHg5MTQwLCAwLCB7MHhkOCwweDBhLDB4MTAsMHgwMiwweDA0LDB4MDAsMHhiMSwweDAwLDB4MjAsMHg0OCwweDA4LDB4MTAsMHgwMiwweGM0LDB4ODAsMHhiMSB9LAotICAxNiwgMHg5MTUwLCAwLCB7MHgyMiwweDJjLDB4NTAsMHg4YSwweDMyLDB4ODIsMHgwNSwweGEwLDB4YjEsMHgyYSwweDIwLDB4NGEsMHgwYSwweDEyLDB4ODIsMHgwMiB9LAotICAxNiwgMHg5MTYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NTAsMHhjOCwweDUyLDB4MmUsMHgxNCB9LAotICAxNiwgMHg5MTcwLCAwLCB7MHgwYywweDg1LDB4MDMsMHgyMSwweDQwLDB4ZjgsMHg1MCwweDNhLDB4MDAsMHgxZiwweDg1LDB4MDMsMHhhMSwweDQwLDB4ZjgsMHg1MCB9LAotICAxNiwgMHg5MTgwLCAwLCB7MHgzMiwweDE0LDB4MGUsMHg4MCwweDAzLDB4YTEsMHg0MCwweGY4LDB4NTAsMHgzYywweDgwLDB4MGUsMHgwMiwweDAzLDB4MjAsMHg4MCB9LAotICAxNiwgMHg5MTkwLCAwLCB7MHhmYSwweDIwLDB4MzIsMHgwOCwweDBlLDB4ODIsMHgxMywweGFlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MWEwLCAwLCB7MHg5OCwweDFkLDB4ZTQsMHg1MCwweGZkLDB4MDAsMHgzZSwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGZkLDB4MDAsMHgzZSB9LAotICAxNiwgMHg5MWIwLCAwLCB7MHg0NCwweDhkLDB4ZDAsMHgwMSwweGJkLDB4MDAsMHhmZCwweDAyLDB4M2UsMHg0NCwweDBmLDB4ZDQsMHgwMCwweGU0LDB4NDgsMHg3OSB9LAotICAxNiwgMHg5MWMwLCAwLCB7MHgxNCwweDNlLDB4NTAsMHgwZiwweDkyLDB4YTIsMHhmNCwweDA4LDB4ZmQsMHgwMCwweDNlLDB4NGEsMHgwZCwweGQyLDB4ODMsMHhlNiB9LAotICAxNiwgMHg5MWQwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU3LDB4MDAsMHhmOSwweDEwLDB4M2EsMHg2ZSB9LAotICAxNiwgMHg5MWUwLCAwLCB7MHgwYywweGIxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHg0NCwweDNiLDB4NjEsMHg4ZSwweDk0LDB4MDMsMHhlNCwweDAwLDB4ZTksMHg0MCB9LAotICAxNiwgMHg5MWYwLCAwLCB7MHgzMiwweDY2LDB4MGYsMHhkYSwweDBiLDB4YTcsMHgyOCwweGM5LDB4ZTAsMHgzZiwweDY4LDB4MGMsMHhkYSwweDgzLDB4YjMsMHgyMCB9LAotICAxNiwgMHg5MjAwLCAwLCB7MHhlZCwweGEwLDB4MzMsMHg3OSwweDA4LDB4ZDgsMHgwMywweDQ2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MjEwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHgwMCwweGI4LDB4YTAsMHgyZSwweDM4LDB4MDgsMHg4YSwweDAyLDB4ZTIsMHg4OCwweGU4LDB4ODEsMHgyZSB9LAotICAxNiwgMHg5MjIwLCAwLCB7MHgxNCwweDA5LDB4MGEsMHgwMywweGUyLDB4ODAsMHhiOCwweDgwLDB4MzIsMHgzMCwweDBiLDB4ODUsMHgwMiwweDIxLDB4MDEsMHhhOCB9LAotICAxNiwgMHg5MjMwLCAwLCB7MHhmNCwweDM4LDB4MmEsMHgwOCwweDBlLDB4Y2EsMHgyMywweDkwLDB4YzgsMHg1NCwweDM0LDB4MzgsMHgwOCwweDhhLDB4OTIsMHgwZSB9LAotICAxNiwgMHg5MjQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDAwLDB4MjgsMHg0MCB9LAotICAxNiwgMHg5MjUwLCAwLCB7MHgxOSwweDEwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHgyMCwweDI4LDB4NDAsMHgwYiwweDEwLDB4MDYsMHhjNCwweDIwLDB4YTEsMHhhMiB9LAotICAxNiwgMHg5MjYwLCAwLCB7MHg2YywweDQ4LDB4MGIsMHgxMCwweDAyLDB4ODQsMHgwOCwweDgxLDB4MjAsMHgyYywweDUwLDB4MDksMHgxMCwweDAyLDB4YzQsMHgwNCB9LAotICAxNiwgMHg5MjcwLCAwLCB7MHhiMSwweDAwLDB4MjQsMHg1OCwweDA4LDB4M2MsMHgwMiwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MjgwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMSwweGI5LDB4MjAsMHgyYywweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgxMCwweGE5LDB4NDAsMHgyZSB9LAotICAxNiwgMHg5MjkwLCAwLCB7MHg0MCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDAsMHhiMSwweDAxLDB4MmEsMHg0MCwweDBiLDB4OTQsMHgwMiwweDI0LDB4MDAsMHhhOSB9LAotICAxNiwgMHg5MmEwLCAwLCB7MHgwMCwweDJhLDB4NDAsMHgwMSwweDEwLDB4NTIsMHg2NCwweDAwLDB4ODksMHgwMCwweDI2LDB4NDAsMHgwMCwweDk4LDB4MDIsMHg0NiB9LAotICAxNiwgMHg5MmIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweDYxLDB4M2EsMHg0MCB9LAotICAxNiwgMHg5MmMwLCAwLCB7MHgwZCwweDkwLDB4ODMsMHhlNSwweDIwLDB4ZjksMHgwMSwweDNhLDB4NDAsMHgyZSwweDkwLDB4MDIsMHhlNCwweDQwLDB4ZTksMHgwMSB9LAotICAxNiwgMHg5MmQwLCAwLCB7MHg5ZSwweDQwLDB4MGYsMHg5NCwweDAzLDB4YTQsMHgwMCwweDg5LDB4MDAsMHgzZSwweDQwLDB4MmQsMHg5MCwweDAyLDB4ZTYsMHgwOCB9LAotICAxNiwgMHg5MmUwLCAwLCB7MHhiOSwweDAxLDB4MzYsMHg0MCwweDJjLDB4OTAsMHgwMSwweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MmYwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MmUsMHg5MCwweDAzLDB4ZTQsMHg4MCwweGY5LDB4MDAsMHgzYyB9LAotICAxNiwgMHg5MzAwLCAwLCB7MHg0MCwweDBjLDB4OWMsMHgyMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDBmLDB4MTAsMHg0MywweDg0LDB4MDAsMHhmOSB9LAotICAxNiwgMHg5MzEwLCAwLCB7MHgwMiwweDNlLDB4NDAsMHgwZSwweDkwLDB4MDMsMHg4MCwweDgwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgyZiwweDkwLDB4MDMsMHg4YSB9LAotICAxNiwgMHg5MzIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhjOCwweDQwLDB4MzYsMHgwMSB9LAotICAxNiwgMHg5MzMwLCAwLCB7MHgwZCwweDg0LDB4MDMsMHhlMSwweDAwLDB4ZTgsMHg0MCwweDNlLDB4MDgsMHgwYywweDgwLDB4MDMsMHhlMSwweDAwLDB4ZjgsMHgwMCB9LAotICAxNiwgMHg5MzQwLCAwLCB7MHgzMiwweDAwLDB4OGYsMHg4MCwweDAzLDB4YTAsMHgxMCwweGY4LDB4MDAsMHgzMiwweDA0LDB4MGUsMHg4MCwweDgzLDB4NjAsMHgwMCB9LAotICAxNiwgMHg5MzUwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4MDAsMHgwMywweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MzYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4MDEsMHgyMiwweDgwLDB4MDgsMHhhMCwweDI0LDB4ZTgsMHgwMCwweDBhLDB4MDAsMHgyZiB9LAotICAxNiwgMHg5MzcwLCAwLCB7MHg4MCwweDFhLDB4YTAsMHgwMiwweDI4LDB4MDAsMHhiYSwweDAwLDB4MTYsMHg4MCwweDBiLDB4ZTAsMHgwMywweDI4LDB4MDgsMHhlYSB9LAotICAxNiwgMHg5MzgwLCAwLCB7MHgwMCwweDMzLDB4OTAsMHgwOCwweGVjLDB4MWIsMHgyMiwweDgwLDB4YzYsMHgxNCwweDJmLDB4OTEsMHgwOCwweGEwLDB4NDMsMHg0YSB9LAotICAxNiwgMHg5MzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg5MywweDAwLDB4MjQsMHhjMCB9LAotICAxNiwgMHg5M2EwLCAwLCB7MHgwOSwweDMwLDB4MTIsMHhjYywweDA0LDB4YTMsMHgwNCwweDZjLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg4YywweDAwLDB4YjMsMHgwMCB9LAotICAxNiwgMHg5M2IwLCAwLCB7MHgyYywweGMwLDB4MTMsMHgzMCwweDAyLDB4OGMsMHgwMCwweGIzLDB4MDAsMHhlNiwweGI4LDB4MGEsMHgzOCwweDAyLDB4NDQsMHgwOCB9LAotICAxNiwgMHg5M2MwLCAwLCB7MHg4MiwweDUwLDB4MmMsMHhkMiwweDNhLDB4MzAsMHgwMiwweDhhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5M2QwLCAwLCB7MHhhMCwweDAxLDB4MGUsMHg4MCwweDk3LDB4YjQsMHgyMSwweGM0LDB4NDksMHg3MSwweDAyLDB4ZGUsMHg4MSwweDg3LDB4MjEsMHgyZCB9LAotICAxNiwgMHg5M2UwLCAwLCB7MHhkMCwweDBiLDB4N2IsMHgwMiwweDFjLDB4MDEsMHhiZiwweDIwLDB4MjksMHhjNCwweDBiLDB4MzAsMHgwMiwweDVjLDB4MDAsMHhhNyB9LAotICAxNiwgMHg5M2YwLCAwLCB7MHhhMSwweDIxLDB4YzAsMHg0YSwweDcwLDB4OGEsMHgwYywweDgxLDB4ODQsMHgwMCwweDJkLDB4ZDAsMHgwYSwweDUwLDB4MDIsMHhlOCB9LAotICAxNiwgMHg5NDAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4ODIsMHhkZiwweGEwLDB4MzQsMHhlYyB9LAotICAxNiwgMHg5NDEwLCAwLCB7MHgwZCwweDc5LDB4MDIsMHhmZSwweDgwLDB4ZTcsMHhlOCwweDJmLDB4YTAsMHgwOSwweDdhLDB4MDIsMHg5ZSwweDAwLDB4ZjcsMHhhMiB9LAotICAxNiwgMHg5NDIwLCAwLCB7MHgyNSwweGVhLDB4MGIsMHg0OCwweDAzLDB4OWUsMHgwNCwweGZmLDB4YzAsMHg2NSwweGU0LDB4MGUsMHg2OCwweDAzLDB4NWYsMHgwMCB9LAotICAxNiwgMHg5NDMwLCAwLCB7MHhlNCwweDgwLDB4M2QsMHhlMCwweDBlLDB4ZjgsMHgwMywweGFhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NDQwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHg0OCwweGViLDB4MDUsMHgzZSwweGQ5LDB4MGUsMHhiMiwweDAzLDB4ZWMsMHgwMCwweGZiLDB4NjAsMHgzZSB9LAotICAxNiwgMHg5NDUwLCAwLCB7MHhjMCwweDBlLDB4YjIsMHg4MywweGFjLDB4MDAsMHhmMywweDUwLDB4YTYsMHhjMCwweDRmLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmYiB9LAotICAxNiwgMHg5NDYwLCAwLCB7MHg4MCwweDNmLDB4ZDgsMHgwZCwweGEwLDB4MDMsMHhlYywweDBhLDB4ZjksMHgwMCwweDNlLDB4YzAsMHgwZCwweDkwLDB4MDMsMHg0MiB9LAotICAxNiwgMHg5NDcwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhiYiwweDkwLDB4M2UsMHhlMCB9LAotICAxNiwgMHg5NDgwLCAwLCB7MHgwOCwweDM5LDB4MDMsMHg5ZSwweDIwLDB4Y2YsMHg4MiwweDc3LDB4ZTAsMHgxZiwweGY4LDB4MDMsMHhlZSwweDAwLDB4ZmYsMHhjMCB9LAotICAxNiwgMHg5NDkwLCAwLCB7MHgzZiwweGU1LDB4MGQsMHhmOSwweDAzLDB4ZWUsMHgwMCwweGZiLDB4OTAsMHgzNywweGEwLDB4MDgsMHhmOCwweDBmLDB4MWUsMHgwMCB9LAotICAxNiwgMHg5NGEwLCAwLCB7MHhjYywweDk0LDB4MzMsMHg2MCwweDBkLDB4ZjgsMHgwMywweGMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NGIwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGI3LDB4OTAsMHgyZiwweGU0LDB4MDgsMHg3YSwweDAyLDB4MWUsMHgwMCwweDhmLDB4MTIsMHgyNSB9LAotICAxNiwgMHg5NGMwLCAwLCB7MHhkOCwweDBiLDB4YmIsMHgwMiwweDFlLDB4MDAsMHhiNywweDAwLDB4MmQsMHhlOCwweDA4LDB4N2QsMHg4MiwweGRlLDB4NDAsMHhiYiB9LAotICAxNiwgMHg5NGQwLCAwLCB7MHhhMCwweDI3LDB4OTAsMHgwYSwweDc2LDB4MDIsMHg1YywweDgwLDB4ODUsMHgwMCwweDM3LDB4YzQsMHg0ZCwweDcxLDB4MDMsMHhlYSB9LAotICAxNiwgMHg5NGUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhiNywweDIwLDB4MmQsMHhjMCB9LAotICAxNiwgMHg5NGYwLCAwLCB7MHgyOSwweGYyLDB4MjIsMHhiYywweDgwLDB4OTcsMHgwMCwweDI1LDB4NDEsMHgwYiwweDcwLDB4MTIsMHg5YywweDAwLDB4YjcsMHgwOCB9LAotICAxNiwgMHg5NTAwLCAwLCB7MHgyOSwweGMwLDB4MDgsMHg0MiwweDEyLDB4ZGMsMHg0MCwweGI3LDB4MDAsMHgyOSwweGMwLDB4MDksMHg2MCwweDIyLDB4ZGMsMHgxMCB9LAotICAxNiwgMHg5NTEwLCAwLCB7MHg4MCwweDAwLDB4MjEsMHg0MCwweDA5LDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NTIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4YzAsMHgyZSwweGMwLDB4MDgsMHgzNCwweDgyLDB4MmQsMHgwMCwweDkzLDB4MDAsMHgyNCB9LAotICAxNiwgMHg5NTMwLCAwLCB7MHhjMCwweDBiLDB4MzAsMHgwMiwweDBmLDB4ODAsMHgxMywweDAwLDB4MmMsMHhjMCwweDBhLDB4MzQsMHhhMiwweGVjLDB4MDAsMHhiMyB9LAotICAxNiwgMHg5NTQwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHgwYiwweDAwLDB4MDIsMHhjYywweDAwLDB4ODEsMHgwMCwweDIwLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg4OSB9LAotICAxNiwgMHg5NTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGJjLDB4MDAsMHhmZiwweGUwLDB4M2YsMHhjMCB9LAotICAxNiwgMHg5NTYwLCAwLCB7MHgwYywweGY0LDB4ODMsMHhiZCwweDAwLDB4ZGYsMHgwOCwweDM2LDB4NDAsMHgwYiwweDc1LDB4NDIsMHhmYywweDIwLDB4ZmYsMHg4MCB9LAotICAxNiwgMHg5NTcwLCAwLCB7MHgzYiwweGMwLDB4MmMsMHgzYywweDAzLDB4ZmMsMHgwMCwweGJmLDB4MDAsMHhiZSwweGMwLDB4OGQsMHg5MCwweDBiLDB4YWMsMHgwMiB9LAotICAxNiwgMHg5NTgwLCAwLCB7MHhjYSwweDAwLDB4MjIsMHg4MCwweDBkLDB4YjAsMHgwMiwweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NTkwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDgsMHgxZSwweGMwLDB4MGYsMHhiMCwweDEzLDB4ZWMsMHgwMCwweGViLDB4MDAsMHgzYSB9LAotICAxNiwgMHg5NWEwLCAwLCB7MHgxMCwweDBmLDB4YjAsMHgyMywweGFjLDB4MDEsMHhmYiwweDAwLDB4M2UsMHhjMCwweDNjLDB4ODQsMHgwMywweGVjLDB4MDAsMHhmYiB9LAotICAxNiwgMHg5NWIwLCAwLCB7MHgwMCwweDI2LDB4NDAsMHgwZSwweDk0LDB4MGIsMHgyYywweDAwLDB4ZjksMHg0MCwweDNlLDB4OTAsMHgwZSwweDkwLDB4MTMsMHhlMCB9LAotICAxNiwgMHg5NWMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGRjLDB4MDIsMHhjZiwweDAwLDB4M2YsMHhjMCB9LAotICAxNiwgMHg5NWQwLCAwLCB7MHgwZCwweGYwLDB4MGIsMHgzYywweDIwLDB4Y2YsMHgwMCwweDNkLDB4MDAsMHgwZSwweGYwLDB4MDcsMHg5YywweDAxLDB4Y2YsMHgwMiB9LAotICAxNiwgMHg5NWUwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhjNCwweDAzLDB4M2MsMHgwMCwweGNmLDB4MDAsMHgwZiwweGMwLDB4MGUsMHg0NCwweDAzLDB4MWYsMHgwMiB9LAotICAxNiwgMHg5NWYwLCAwLCB7MHhjYywweDAwLDB4M2YsMHg4MCwweDJjLDB4NzAsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NjAwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4MDIsMHgyZSwweGMwLDB4MGQsMHhiMCwweDAyLDB4MmMsMHgwMCwweGFiLDB4MDAsMHgwNiB9LAotICAxNiwgMHg5NjEwLCAwLCB7MHgyMCwweDA4LDB4YjAsMHgwMywweGZjLDB4MDAsMHhhYiwweDAwLDB4MmUsMHhjMCwweDBmLDB4ODAsMHgwNiwweGJjLDB4MDAsMHhhYiB9LAotICAxNiwgMHg5NjIwLCAwLCB7MHgwNCwweDNhLDB4ZjAsMHgwYywweDg4LDB4MDIsMHgyYywweDAwLDB4YzksMHg4MCwweDNhLDB4OTIsMHgwOCwweDkwLDB4MGEsMHhhMCB9LAotICAxNiwgMHg5NjMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhhYiwweDAwLDB4MmUsMHhjMCB9LAotICAxNiwgMHg5NjQwLCAwLCB7MHgwOSwweDMwLDB4MDIsMHgyYywweDAwLDB4OGIsMHgwMCwweDI2LDB4NjAsMHgwYiwweGIwLDB4MDIsMHhhYywweDAwLDB4OGIsMHgwMCB9LAotICAxNiwgMHg5NjUwLCAwLCB7MHg2ZSwweGMwLDB4MGIsMHhiMCwweDQyLDB4MmMsMHgwMCwweDliLDB4MDAsMHg0YywweGUwLDB4MGEsMHg5MCwweDIyLDB4MmMsMHgwMCB9LAotICAxNiwgMHg5NjYwLCAwLCB7MHg4YSwweGMyLDB4MmMsMHg0MCwweDA4LDB4YjAsMHg0MiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NjcwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweDgzLDB4MGQsMHgyYywweGM2LDB4MDksMHgzMSwweDAyLDB4MGQsMHg4MSwweGEzLDB4MTEsMHgyNCB9LAotICAxNiwgMHg5NjgwLCAwLCB7MHgwMCwweDhhLDB4YjEsMHhlMiwweDRjLDB4ODAsMHhhMywweDAwLDB4MmMsMHhjYywweDBiLDB4MDIsMHgwMiwweDhjLDB4ODAsMHhhMyB9LAotICAxNiwgMHg5NjkwLCAwLCB7MHg0OCwweDA4LDB4YzAsMHgwOCwweDAwLDB4MGEsMHgwZCwweDAwLDB4ODEsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg4MiB9LAotICAxNiwgMHg5NmEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhjYiwweDIwLDB4MmYsMHhjOCB9LAotICAxNiwgMHg5NmIwLCAwLCB7MHg4ZCwweGY2LDB4MTMsMHgyZCwweGIwLDB4OGYsMHgwMCwweDM2LDB4NDAsMHgwZiwweGYwLDB4MDIsMHhhZCwweGE4LDB4OGYsMHgxMCB9LAotICAxNiwgMHg5NmMwLCAwLCB7MHgzZiwweGNhLDB4MGIsMHg4MCwweDkyLDB4MmMsMHgxMCwweGRiLDB4NDAsMHgzZiwweGMwLDB4MGUsMHgwMCwweDAzLDB4MmQsMHgwNCB9LAotICAxNiwgMHg5NmQwLCAwLCB7MHhjOCwweDAyLDB4M2UsMHg0MCwweDBjLDB4YjAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NmUwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGM4LDB4MGUsMHhmMSwweDAzLDB4ZWMsMHg4NCwweGZmLDB4MjAsMHgzNyB9LAotICAxNiwgMHg5NmYwLCAwLCB7MHgwMCwweDBkLDB4YjIsMHgwMywweGJjLDB4YTAsMHhmZiwweDAwLDB4M2UsMHhjOSwweDBlLDB4ODAsMHgwMywweGZkLDB4MTEsMHhmZiB9LAotICAxNiwgMHg5NzAwLCAwLCB7MHgwMCwweDNiLDB4YzAsMHgwZSwweGMwLDB4MDMsMHhmYywweDgwLDB4ZWQsMHgwMCwweDNiLDB4YzAsMHgwZiwweGYwLDB4NDMsMHg2OCB9LAotICAxNiwgMHg5NzEwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMSwweGZjLDB4OTAsMHhjYywweDkyLDB4M2IsMHhjOCB9LAotICAxNiwgMHg5NzIwLCAwLCB7MHgwZCwweGYwLDB4ODMsMHg3MywweDEwLDB4ZmYsMHgyOCwweDM3LDB4Y2EsMHg0ZiwweGIyLDB4MDMsMHhmYywweDAwLDB4ZGYsMHgyMCB9LAotICAxNiwgMHg5NzMwLCAwLCB7MHhiMywweGM0LDB4MGQsMHg2OCwweDQzLDB4ZmUsMHgxNCwweGNiLDB4ODQsMHgzMywweGUwLDB4MGQsMHg3OCwweDAzLDB4YmUsMHgwMCB9LAotICAxNiwgMHg5NzQwLCAwLCB7MHhmZiwweDgwLDB4MzcsMHhhMCwweDBjLDB4ZjMsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NzUwLCAwLCB7MHg4MCwweDAwLDB4ZmMsMHg0OCwweDgyLDB4MjEsMHgwMywweGY0LDB4MGYsMHhmNiwweDQyLDB4MjAsMHgwNCwweDhhLDB4NjAsMHgyYiB9LAotICAxNiwgMHg5NzYwLCAwLCB7MHhkYSwweDBiLDB4ZjksMHgwMiwweDNmLDB4MDQsMHg4ZiwweDUyLDB4MjMsMHhkNSwweDRkLDB4ODgsMHgwMiwweGFlLDB4MDAsMHhkYiB9LAotICAxNiwgMHg5NzcwLCAwLCB7MHg4MCwweDM2LDB4YzAsMHgwOCwweDgwLDB4MDIsMHgyMCwweDA0LDB4YjgsMHgwMCwweDIyLDB4NjAsMHgwZCwweDc0LDB4MDMsMHhlMCB9LAotICAxNiwgMHg5NzgwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4YTAsMHg4MCwweDAxLDB4MDgsMHhjMCB9LAotICAxNiwgMHg5NzkwLCAwLCB7MHg0YiwweDMwLDB4ODIsMHg0MiwweDkwLDB4YTMsMHgwOCwweDJjLDB4YzgsMHgxYSwweDMwLDB4MjIsMHg4ZCwweDAwLDB4OTMsMHgwMCB9LAotICAxNiwgMHg5N2EwLCAwLCB7MHgyNCwweGM4LDB4MDksMHhhMCwweDEyLDB4MGMsMHgwNCwweGFiLDB4MDAsMHg2MiwweGMwLDB4MDksMHhiMCwweDAyLDB4Y2MsMHgwMCB9LAotICAxNiwgMHg5N2IwLCAwLCB7MHhiMywweDAwLDB4MjgsMHg4MCwweDA4LDB4MzYsMHgwNiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5N2MwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwMCwweDg4LDB4MDgsMHgyMiwweGMwLDB4MGEsMHgzMCwweDFhLDB4MDAsMHgxMSwweDgyLDB4MDAsMHgwYSB9LAotICAxNiwgMHg5N2QwLCAwLCB7MHhjMCwweDBiLDB4YjAsMHg0MiwweDJjLDB4MDAsMHg4YiwweDAwLDB4MjYsMHhjMCwweDA5LDB4OTEsMHgwMiwweGVjLDB4MjAsMHhiYiB9LAotICAxNiwgMHg5N2UwLCAwLCB7MHgyOCwweDY2LDB4YzAsMHgwOCwweDgwLDB4MDIsMHg2MCwweDAwLDB4YjgsMHgwMCwweDJhLDB4NDAsMHg4MSwweGIwLDB4MDYsMHhmOCB9LAotICAxNiwgMHg5N2YwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweGVjLDB4MDIsMHhjOCwweDA0LDB4M2EsMHhjMCB9LAotICAxNiwgMHg5ODAwLCAwLCB7MHg4OSwweGIwLDB4MDMsMHg2OCwweDAwLDB4ZTksMHhjMSwweDFlLDB4YzEsMHgwZSwweDMwLDB4MDMsMHhlYywweDAwLDB4ZGIsMHgwMCB9LAotICAxNiwgMHg5ODEwLCAwLCB7MHgzNiwweGMxLDB4MGQsMHgwMCwweDIzLDB4MGUsMHgwMCwweGViLDB4ODAsMHgzMiwweGM4LDB4Y2QsMHgzMCwweDMyLDB4ZWMsMHgwOCB9LAotICAxNiwgMHg5ODIwLCAwLCB7MHhmMywweDAwLDB4M2MsMHg4MCwweDBjLDB4YjAsMHgwNiwweDgwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ODMwLCAwLCB7MHhlMCwweDAxLDB4OWMsMHgwMCwweDdjLDB4MDAsMHgzZiwweGMwLDB4MGIsMHhiMCwweDQzLDB4ZmQsMHgwMCwweGJlLDB4YzQsMHgzNyB9LAotICAxNiwgMHg5ODQwLCAwLCB7MHhjMCwweDFmLDB4ZjAsMHgwMywweDVjLDB4MDAsMHhmZiwweDAxLDB4M2IsMHhjMCwweDBlLDB4YzgsMHgwMywweGJmLDB4MjAsMHhkZiB9LAotICAxNiwgMHg5ODUwLCAwLCB7MHgwMCwweDNmLDB4ZDAsMHgwZiwweGMwLDB4MTMsMHhiMCwweDAwLDB4N2MsMHgwMCwweGI3LDB4NDAsMHgwZiwweGYwLDB4MWIsMHhiMCB9LAotICAxNiwgMHg5ODYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MGMsMHhkOCwweDQxLDB4MzIsMHhjMCB9LAotICAxNiwgMHg5ODcwLCAwLCB7MHgwZSwweGIwLDB4MDcsMHhhOCwweDAxLDB4NjksMHg0MCwweGIyLDB4YzAsMHg4ZCwweGIwLDB4YTMsMHhlYywweDA4LDB4ZjMsMHgwMCB9LAotICAxNiwgMHg5ODgwLCAwLCB7MHgzMiwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWQsMHgwMCwweGZiLDB4NDgsMHgzYSwweGMwLDB4MGQsMHhiMCwweDgzLDB4MmMsMHgwMCB9LAotICAxNiwgMHg5ODkwLCAwLCB7MHhmYiwweDIwLDB4M2UsMHg4MCwweDBmLDB4NzAsMHgyMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OGEwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDg4LDB4MDAsMHgyMywweGMwLDB4MDgsMHhmMCwweDA2LDB4MmMsMHgxMCwweDg4LDB4NTEsMHgzNyB9LAotICAxNiwgMHg5OGIwLCAwLCB7MHhjMCwweDA4LDB4ZjAsMHgwNywweDdkLDB4NjAsMHg4ZiwweDAyLDB4MzcsMHhjMCwweDBiLDB4OGMsMHgwMCwweDJkLDB4MDAsMHhiMyB9LAotICAxNiwgMHg5OGMwLCAwLCB7MHgwMCwweDM4LDB4YzAsMHgwOCwweDgwLDB4ODIsMHgyMCwweDAwLDB4YjgsMHgwMCwweDJlLDB4NTAsMHgwYiwweGYwLDB4MDAsMHgzMiB9LAotICAxNiwgMHg5OGQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHg5OCwweDAwLDB4MjgsMHhjMCB9LAotICAxNiwgMHg5OGUwLCAwLCB7MHgwYSwweDMwLDB4MDIsMHg4NCwweDA0LDB4YTMsMHgwMCwweDAwLDB4YzAsMHg2OCwweDM5LDB4MDYsMHgwYywweDEwLDB4OTMsMHgyMCB9LAotICAxNiwgMHg5OGYwLCAwLCB7MHgyMiwweGMwLDB4OWIsMHgwMSwweGEwLDB4OGYsMHgxNCwweDMzLDB4MTQsMHgyOCwweGMwLDB4MDksMHgzYywweDAyLDB4MGMsMHgwMSB9LAotICAxNiwgMHg5OTAwLCAwLCB7MHg5MywweDQwLDB4MmMsMHg4OCwweDBiLDB4MzAsMHgwMiwweGI4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OTEwLCAwLCB7MHg2MCwweDAxLDB4MWUsMHgxMCwweDg3LDB4ODAsMHgyOSwweGUwLDB4MDgsMHg3OCwweDAyLDB4M2UsMHgwMCwweDgzLDB4OTAsMHgyNCB9LAotICAxNiwgMHg5OTIwLCAwLCB7MHhlMCwweDA4LDB4NzgsMHgxMCwweGNlLDB4MDQsMHgwNywweDkxLDB4MjUsMHhlMCwweDgzLDB4YzksMHgwMiwweDFlLDB4MDQsMHhiNyB9LAotICAxNiwgMHg5OTMwLCAwLCB7MHg4NCwweDJiLDB4YTQsMHgwOCwweDQ4LDB4NDIsMHgxMiwweGNjLDB4YjQsMHg4MCwweDJkLDB4NjQsMHgwYiwweDc4LDB4MDIsMHgxOSB9LAotICAxNiwgMHg5OTQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDJjLDB4MDAsMHhkMCwweDEwLDB4MjgsMHhjOCB9LAotICAxNiwgMHg5OTUwLCAwLCB7MHgwZSwweDNiLDB4MDIsMHg4NCwweDAwLDB4ZTMsMHg0MCwweDMwLDB4YzgsMHgwYywweDM4LDB4NjIsMHg4YywweDAwLDB4NTMsMHgwMCB9LAotICAxNiwgMHg5OTYwLCAwLCB7MHgzMCwweGM0LDB4MWYsMHgwMCwweDIzLDB4OGMsMHgzYywweGYzLDB4ODAsMHgxOCwweGMwLDB4MGQsMHgzMCwweDAzLDB4MGUsMHg4MCB9LAotICAxNiwgMHg5OTcwLCAwLCB7MHhkMywweDEwLDB4M2MsMHg4MCwweDBmLDB4MzAsMHgwMywweDkyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OTgwLCAwLCB7MHg0MCwweDFkLDB4YmQsMHgwMCwweGY5LDB4MTIsMHhiNCwweGMwLDB4MDcsMHhiMCwweDAzLDB4Y2MsMHgwMCwweDRhLDB4MDAsMHg3NyB9LAotICAxNiwgMHg5OTkwLCAwLCB7MHhjMCwweDBlLDB4NzEsMHg0MywweDZjLDB4MDAsMHhmMywweDAwLDB4M2YsMHhkMCwweDFmLDB4ZDAsMHg1MywweGFjLDB4NjgsMHhmYiB9LAotICAxNiwgMHg5OWEwLCAwLCB7MHgxOCwweDNkLDB4YzAsMHgwZiwweGMwLDB4MTMsMHhmMCwweDUwLDB4ZmMsMHgwNCwweDNmLDB4NDAsMHgwZiwweGY0LDB4MDMsMHg5MCB9LAotICAxNiwgMHg5OWIwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVkLDB4NDAsMHhmOCwweDA0LDB4M2UsMHhkMiB9LAotICAxNiwgMHg5OWMwLCAwLCB7MHgwZiwweGIzLDB4MTMsMHhlMCwweDEwLDB4ZjksMHgwMCwweGIyLDB4Y2MsMHgwZSwweGJhLDB4MDMsMHg2ZCwweDgwLDB4ZGIsMHgwMiB9LAotICAxNiwgMHg5OWQwLCAwLCB7MHgzMiwweGRjLDB4NGYsMHgwMCwweDAzLDB4NmMsMHgwNCwweGYzLDB4MDIsMHgzNiwweDQwLDB4MGUsMHhiMCwweDAzLDB4Y2MsMHgwMCB9LAotICAxNiwgMHg5OWUwLCAwLCB7MHg0YiwweDAwLDB4M2MsMHg4MCwweDBjLDB4ZjEsMHgwMywweDYyLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OWYwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI0LDB4MDAsMHgyZCwweGM5LDB4MGIsMHg3MCwweDgyLDB4ZGMsMHgwMCwweGJjLDB4MDQsMHgyMSB9LAotICAxNiwgMHg5YTAwLCAwLCB7MHhjNCwweDRiLDB4MzcsMHgwMiwweDBjLDB4YTAsMHg4ZiwweDc0LDB4MjEsMHhjMCwweDBiLDB4NDAsMHgwMiwweDFjLDB4ODEsMHhiNyB9LAotICAxNiwgMHg5YTEwLCAwLCB7MHgyMCwweDJiLDB4YzAsMHgwOCwweDQwLDB4MDIsMHhkMCwweDAyLDB4ODQsMHgwMCwweDJkLDB4NDAsMHgwYSwweGYyLDB4MDIsMHgxMiB9LAotICAxNiwgMHg5YTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ODAsMHhiNCwweGMwLDB4MmQsMHhlNCB9LAotICAxNiwgMHg5YTMwLCAwLCB7MHgwYiwweDdhLDB4MDIsMHhkMiwweDAwLDB4YjUsMHg4OCwweDIxLDB4ZTgsMHgwYSwweDc4LDB4MDIsMHhkZSwweDQwLDB4OTcsMHgwMCB9LAotICAxNiwgMHg5YTQwLCAwLCB7MHgyMSwweGU4LDB4MGIsMHhjYywweDQ2LDB4NWUsMHgyOCwweGI3LDB4YzQsMHgyMSwweGYwLDB4MGEsMHg3OCwweDAyLDB4ZmUsMHgwOCB9LAotICAxNiwgMHg5YTUwLCAwLCB7MHg5NywweDg0LDB4MmQsMHhhMCwweDA4LDB4NzgsMHgwMiwweDcwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YTYwLCAwLCB7MHgwOCwweDE0LDB4Y2MsMHgwMCwweGIwLDB4YzAsMHgyYywweGMwLDB4OWIsMHhiMCwweDAyLDB4Y2MsMHgyMCwweGIzLDB4NjAsMHgyMiB9LAotICAxNiwgMHg5YTcwLCAwLCB7MHhjMCwweDBiLDB4MzAsMHgwMiwweDhjLDB4MDAsMHg4MywweDAxLDB4MjAsMHhjMCwweDFiLDB4MDYsMHgxNiwweDRmLDB4MDAsMHhiMyB9LAotICAxNiwgMHg5YTgwLCAwLCB7MHhhMCwweDJhLDB4ZjAsMHgwOCwweDAwLDB4MDIsMHhlMCwweDAwLDB4OTAsMHgwMCwweDJjLDB4NDAsMHgwYSwweDMwLDB4MDIsMHgwMiB9LAotICAxNiwgMHg5YTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MTAsMHhmZSwweGMwLDB4M2UsMHg4MCB9LAotICAxNiwgMHg5YWEwLCAwLCB7MHgwZiwweGEwLDB4MDMsMHhmOSwweDA4LDB4ZmUsMHg0MCwweDIyLDB4ODAsMHgwZSwweGEwLDB4MDMsMHhlOCwweDAwLDB4ZDIsMHgwMCB9LAotICAxNiwgMHg5YWIwLCAwLCB7MHgzMiwweDgwLDB4OGYsMHhlMCwweDAzLDB4NTgsMHgwMCwweGY2LDB4MDAsMHgzMywweGIwLDB4MGUsMHgyMCwweDAyLDB4ZTgsMHgwYyB9LAotICAxNiwgMHg5YWMwLCAwLCB7MHhkMiwweDAyLDB4M2MsMHg4MCwweDBjLDB4YTAsMHgwMywweDdhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YWQwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MjAsMHgzZSwweDAxLDB4MGIsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGYwLDB4NDAsMHgzZSB9LAotICAxNiwgMHg5YWUwLCAwLCB7MHgwMCwweDU3LDB4ODAsMHgyMywweDAwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODQsMHgwMywweGEwLDB4MzAsMHgzOCB9LAotICAxNiwgMHg5YWYwLCAwLCB7MHgwMCwweDNhLDB4MDgsMHgwZiwweGM0LDB4MDMsMHhmMCwweDAwLDB4ZWMsMHgwMCwweDNmLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg5YjAwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhkOSwweDAxLDB4M2MsMHg0OCB9LAotICAxNiwgMHg5YjEwLCAwLCB7MHg0YywweDkwLDB4MGIsMHgyNCwweDAxLDB4YzksMHhjMCwweDMyLDB4NDAsMHhhYywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZDksMHg0MCB9LAotICAxNiwgMHg5YjIwLCAwLCB7MHgzMCwweDQwLDB4MGQsMHg5YSwweDAzLDB4MjIsMHg4NCwweGM4LDB4MTQsMHgzMiwweDQwLDB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCB9LAotICAxNiwgMHg5YjMwLCAwLCB7MHhjOSwweDAwLDB4ODIsMHg2OCwweDJjLDB4OTAsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YjQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDIyLDB4MjQsMHgwMCwweDg5LDB4MDIsMHg4MiB9LAotICAxNiwgMHg5YjUwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgwMiwweGU3LDB4NDAsMHg4OSwweDgwLDB4MzYsMHg0MSwweDhkLDB4MTgsMHgwMiwweGEwLDB4MjQsMHhhOCB9LAotICAxNiwgMHg5YjYwLCAwLCB7MHgwNCwweDYyLDB4NDAsMHgwOCwweDk0LDB4ODMsMHgyNCwweDAwLDB4ODksMHgwMSwweDIyLDB4NzIsMHgwOCwweDkwLDB4MGIsMHgyMCB9LAotICAxNiwgMHg5YjcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg5OSwweDAwLDB4MmEsMHg0MCB9LAotICAxNiwgMHg5YjgwLCAwLCB7MHgyOCwweDkwLDB4MTIsMHgwNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhhNCwweDIwLDB4OTksMHgwMCB9LAotICAxNiwgMHg5YjkwLCAwLCB7MHgyMiwweDQwLDB4MTgsMHg5MCwweDA2LDB4MjAsMHgwMSwweDg4LDB4MDgsMHg2MiwweDQwLDB4MGEsMHg5MCwweDAyLDB4MzQsMHgxMCB9LAotICAxNiwgMHg5YmEwLCAwLCB7MHg4ZCwweDgxLDB4MjMsMHg0MSwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YmIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MDQsMHgyYywweDQ4LDB4MDgsMHgxMiwweDAyLDB4MDQsMHgwMiwweDgzLDB4MjAsMHgyMCB9LAotICAxNiwgMHg5YmMwLCAwLCB7MHg0OCwweDA4LDB4MTIsMHgwMiwweGM0LDB4ODAsMHg4MywweDYwLDB4MjQsMHg0OCwweDE5LDB4MzQsMHg2MiwweGE1LDB4MDQsMHhhMSB9LAotICAxNiwgMHg5YmQwLCAwLCB7MHgwMiwweDYwLDB4NDAsMHgwOCwweGQwLDB4MDIsMHg1NCwweDAwLDB4OGQsMHgwMCwweDI5LDB4NDAsMHgwOCwweDEyLDB4ODIsMHgwMiB9LAotICAxNiwgMHg5YmUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUwLDB4M2EsMHg4MCB9LAotICAxNiwgMHg5YmYwLCAwLCB7MHgwYywweDg1LDB4MDIsMHgyMSwweDQ0LDB4ODgsMHg1MCwweDMyLDB4MTQsMHg0YywweDgwLDB4NDMsMHhlMCwweDAwLDB4ZDgsMHgwMCB9LAotICAxNiwgMHg5YzAwLCAwLCB7MHgyMiwweDE0LDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGM4LDB4MDAsMHhhMiwweDAwLDB4MGUsMHg4MCwweDAzLDB4MjAsMHgwMCB9LAotICAxNiwgMHg5YzEwLCAwLCB7MHhjOCwweDAwLDB4MzMsMHgwMCwweDBjLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YzIwLCAwLCB7MHg5OCwweDFkLDB4ZTQsMHg0NCwweGZkLDB4MDAsMHgzZSwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZjQsMHgxMCwweGZmLDB4MTAsMHgzZSB9LAotICAxNiwgMHg5YzMwLCAwLCB7MHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBiLDB4ZjAsMHgxMywweGU1LDB4MTAsMHhmOSB9LAotICAxNiwgMHg5YzQwLCAwLCB7MHg0MCwweDNmLDB4NGEsMHgyZiwweDkyLDB4OGEsMHhhNCwweGEyLDB4ZjksMHgyOCwweDM2LDB4NDAsMHgwZiwweDkyLDB4ODMsMHhhNiB9LAotICAxNiwgMHg5YzUwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxMSwweGU2LDB4YzAsMHhjMSwweDAwLDB4M2YsMHg2OSB9LAotICAxNiwgMHg5YzYwLCAwLCB7MHgwYywweDlhLDB4NDMsMHg2YywweDAwLDB4ZmQsMHhhMCwweDNlLDB4NzgsMHgyYywweGQ4LDB4MDcsMHhkNiwweDAyLDB4ZDUsMHg5NiB9LAotICAxNiwgMHg5YzcwLCAwLCB7MHgzMiwweDc4LDB4MGQsMHg5MCwweDAzLDB4MjcsMHgwMCwweGZkLDB4YTAsMHgzNSwweDUwLDB4MDYsMHhkNCwweDAzLDB4ZTUsMHgwMCB9LAotICAxNiwgMHg5YzgwLCAwLCB7MHhmZCwweDQwLDB4YjMsMHg0MCwweDBmLDB4OTgsMHhhMywweDQ2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YzkwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHhjMiwweDg4LDB4ODgsMHgyZSwweDE0LDB4YTgsMHg4YSwweGMyLDB4MjIsMHhhMCwweGI4LDB4YzAsMHgyYyB9LAotICAxNiwgMHg5Y2EwLCAwLCB7MHgyNCwweDQ4LDB4ODQsMHgwMiwweGUxLDB4MDAsMHg5OCwweGM0LDB4MjAsMHgzYywweDA4LDB4OGEsMHg4MiwweDIzLDB4ODAsMHhiOCB9LAotICAxNiwgMHg5Y2IwLCAwLCB7MHgwNCwweDIyLDB4MjAsMHgwOCwweDg4LDB4MDMsMHhhMiwweDAwLDB4YjgsMHhhMCwweDIyLDB4MDAsMHgwYiwweDg4LDB4MDIsMHgwZSB9LAotICAxNiwgMHg5Y2MwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHhhMSwweDIwLDB4NmMsMHg0MCB9LAotICAxNiwgMHg5Y2QwLCAwLCB7MHgwYSwweDE0LDB4MDIsMHg0NCwweDA0LDB4YTEsMHg2OCwweDJjLDB4NDgsMHgwOCwweDE0LDB4MDIsMHhjNSwweDAwLDB4ODEsMHg2MCB9LAotICAxNiwgMHg5Y2UwLCAwLCB7MHgyMCwweDQ4LDB4MTksMHg5MCwweDAyLDB4ODUsMHg4MSwweGIxLDB4NDAsMHgyNCwweDY4LDB4MGEsMHgxMiwweDQyLDB4YzQsMHg4MCB9LAotICAxNiwgMHg5Y2YwLCAwLCB7MHhiOSwweDIwLDB4MjAsMHg0MCwweDhiLDB4MTAsMHg4MiwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZDAwLCAwLCB7MHgxOCwweDA1LDB4YTQsMHgxMCwweGE5LDB4MDAsMHg2ZSwweGMwLDB4MGEsMHgxMCwweDAyLDB4MjQsMHgxNCwweGI5LDB4MDAsMHgyZSB9LAotICAxNiwgMHg5ZDEwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgxMiwweGU0LDB4MDAsMHg5OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4ODAsMHgwNiwweGEwLDB4NjAsMHhiOSB9LAotICAxNiwgMHg5ZDIwLCAwLCB7MHgwOSwweDIyLDB4NjAsMHgwOCwweDkwLDB4MDIsMHhhNCwweDAwLDB4YjksMHgwMCwweDAyLDB4NDAsMHgwYiwweDEwLDB4MDYsMHgwNiB9LAotICAxNiwgMHg5ZDMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU0LDB4MDAsMHhlOSwweDgwLDB4M2UsMHg0MSB9LAotICAxNiwgMHg5ZDQwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHg2NCwweDAwLDB4ZTksMHhjMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MDIsMHhlNCwweDAwLDB4YzksMHgwMCB9LAotICAxNiwgMHg5ZDUwLCAwLCB7MHgyMiwweDQxLDB4MGQsMHg4MCwweDAyLDB4YTMsMHgwNCwweGYxLDB4NDAsMHgzNiwweDQwLDB4MGUsMHg5MCwweDAyLDB4ZTQsMHgwMCB9LAotICAxNiwgMHg5ZDYwLCAwLCB7MHhmMSwweDAwLDB4MTIsMHg0MCwweDBmLDB4OTAsMHgwMywweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZDcwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGQ5LDB4MjIsMHgzZSwweDQyLDB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGI5LDB4YzQsMHgzYyB9LAotICAxNiwgMHg5ZDgwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAyLDB4YWUsMHg0MCwweDBmLDB4ODAsMHg0YiwweDYyLDB4MTAsMHhmOSB9LAotICAxNiwgMHg5ZDkwLCAwLCB7MHgyMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMiwweDdlLDB4NDEsMHgwZiwweDkwLDB4MTMsMHhjYSB9LAotICAxNiwgMHg5ZGEwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMCwweDgwLDB4MDAsMHhjOCwweDAwLDB4MzgsMHgwMCB9LAotICAxNiwgMHg5ZGIwLCAwLCB7MHgwZiwweDgwLDB4MjAsMHhlMCwweDAwLDB4YTgsMHgyMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDcsMHhlMCwweDgwLDB4YzgsMHgwMCB9LAotICAxNiwgMHg5ZGMwLCAwLCB7MHgzOCwweDAwLDB4MGQsMHg4MCwweDgzLDB4MjEsMHgxMCwweGY4LDB4NjAsMHgzMiwweDAwLDB4OGUsMHg4MCwweGIzLDB4MjAsMHgwOCB9LAotICAxNiwgMHg5ZGQwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZGUwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwNCwweDhhLDB4MDAsMHgzMywweDkwLDB4NDMsMHhhMCwweDIyLDB4MjgsMHgwMCwweDhlLDB4ODAsMHg3NiB9LAotICAxNiwgMHg5ZGYwLCAwLCB7MHg4MCwweDA4LDB4ZTEsMHgwMywweDE5LDB4MDAsMHg4NiwweDgwLDB4MjIsMHg4MCwweDBkLDB4NjAsMHgwMSwweDc4LDB4MDAsMHhiZSB9LAotICAxNiwgMHg5ZTAwLCAwLCB7MHgwMCwweDM2LDB4ODAsMHgwYywweGU0LDB4MDIsMHhhOCwweDEwLDB4YmUsMHhhMCwweDJmLDB4ODAsMHgwZCwweGEwLDB4MDIsMHgwYSB9LAotICAxNiwgMHg5ZTEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMSwweDRjLDB4MDQsMHgwMywweDA0LDB4MmMsMHhkNCB9LAotICAxNiwgMHg5ZTIwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHg0YywweDAxLDB4YTMsMHhjNCwweDIwLDB4YzAsMHgyOCwweDM1LDB4MDIsMHg4NiwweDAwLDB4ODMsMHg4MCB9LAotICAxNiwgMHg5ZTMwLCAwLCB7MHgyOCwweGMwLDB4MDgsMHgzOCwweDA2LDB4MGUsMHg5NCwweDMwLDB4YzAsMHhhMiwweGMwLDB4MGIsMHgzYywweDAyLDB4MGMsMHgwMCB9LAotICAxNiwgMHg5ZTQwLCAwLCB7MHhiMywweDgwLDB4MmMsMHg0OCwweDA4LDB4MzAsMHgwMiwweDhhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZTUwLCAwLCB7MHhhMCwweDAxLDB4MGMsMHgwNCwweDhmLDB4ODAsMHgyMSwweGMxLDB4MWIsMHg3MiwweDQyLDB4MWUsMHhjMCwweDgzLDB4ODgsMHgyMSB9LAotICAxNiwgMHg5ZTYwLCAwLCB7MHhjMCwweDE4LDB4MjgsMHgwNiwweDEwLDB4MjEsMHg4NiwweDM4LDB4MjEsMHhjMCwweDE5LDB4ZjcsMHgwMiwweDVkLDB4YzAsMHhiNCB9LAotICAxNiwgMHg5ZTcwLCAwLCB7MHg0MSwweDI3LDB4ZDAsMHgwOCwweDc4LDB4YzYsMHg5YywweDAwLDB4YjcsMHgwMCwweDJmLDB4NjAsMHgwOSwweDcyLDB4MDIsMHgyOCB9LAotICAxNiwgMHg5ZTgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDIsMHhjNywweDgwLDB4MmQsMHhhMCB9LAotICAxNiwgMHg5ZTkwLCAwLCB7MHgwZiwweDNlLDB4MDMsMHhmZSwweDgwLDB4YTcsMHg4MCwweGExLDB4ZTAsMHgwYywweDc4LDB4MDIsMHg5NCwweDAwLDB4ODUsMHhhMCB9LAotICAxNiwgMHg5ZWEwLCAwLCB7MHgzOSwweGU0LDB4MGMsMHg3OCwweDEzLDB4MWUsMHg5MCwweGI1LDB4ODQsMHgzMSwweGUwLDB4MGYsMHhmOCwweDg3LDB4MWUsMHgwNCB9LAotICAxNiwgMHg5ZWIwLCAwLCB7MHhmNywweDgwLDB4M2QsMHg2MCwweDBjLDB4M2IsMHgwMywweGFhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZWMwLCAwLCB7MHgwOCwweDFkLDB4YWQsMHhlNCwweGZiLDB4NTQsMHgzZSwweDgwLDB4MGYsMHhiNCwweDIzLDB4ZWMsMHgzMiwweGZiLDB4MDAsMHgzZSB9LAotICAxNiwgMHg5ZWQwLCAwLCB7MHhkOCwweDRmLDB4YTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHhjMCwweDBmLDB4MzAsMHgzMywweGVjLDB4MDQsMHhmMiB9LAotICAxNiwgMHg5ZWUwLCAwLCB7MHgwMSwweDNlLDB4YzAsMHgwZiwweGIyLDB4MDMsMHhmZSwweDEwLDB4ZmIsMHg2OCwweDNjLDB4NDEsMHgwZiwweGYwLDB4NDMsMHg4MiB9LAotICAxNiwgMHg5ZWYwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGZlLDB4MDAsMHhjZiwweGU0LDB4M2YsMHhlNCB9LAotICAxNiwgMHg5ZjAwLCAwLCB7MHgwYywweGZjLDB4MDMsMHg3ZSwweDgwLDB4Y2YsMHg4MSwweDMzLDB4ZmEsMHgwZiwweGY4LDB4MDMsMHhmNiwweDAwLDB4ZmYsMHg4MCB9LAotICAxNiwgMHg5ZjEwLCAwLCB7MHgzZiwweGUyLDB4MGYsMHg3OSwweDAzLDB4M2UsMHg0MCwweGY0LDB4ODAsMHgzMywweDYwLDB4MGMsMHhlOCwweDAzLDB4M2UsMHgwMCB9LAotICAxNiwgMHg5ZjIwLCAwLCB7MHhmZiwweDgwLDB4MzMsMHg2MCwweDBjLDB4ZjgsMHg4MywweDUwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZjMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGQ3LDB4YTAsMHgyZCwweGM0LDB4MDgsMHhiYSwweDAyLDB4M2MsMHhhMCwweDg3LDB4MjAsMHgyMSB9LAotICAxNiwgMHg5ZjQwLCAwLCB7MHhjMCwweDBmLDB4NTIsMHgwMywweGQ0LDB4MDAsMHhiNiwweDEwLDB4MmQsMHhjMCwweDhiLDB4NzMsMHgwMywweDVjLDB4NDAsMHhiNCB9LAotICAxNiwgMHg5ZjUwLCAwLCB7MHhiMCwweDJiLDB4NDgsMHgyOCwweDQxLDB4MDIsMHgwYywweDAwLDB4YmYsMHgxOCwweDM1LDB4NDYsMHgyOCwweDcyLDB4NDIsMHgyYSB9LAotICAxNiwgMHg5ZjYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMCwweDljLDB4MDAsMHg4NywweDQxLDB4MmQsMHg0NCB9LAotICAxNiwgMHg5ZjcwLCAwLCB7MHgwYSwweDczLDB4MDIsMHg5YywweGM0LDB4ODEsMHgwMCwweDZkLDB4YzgsMHg4YiwweDcwLDB4MDIsMHhkNCwweDAwLDB4YjcsMHgwMCB9LAotICAxNiwgMHg5ZjgwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHhmMCwweDQ2LDB4OWMsMHg1NSwweGI0LDB4MjAsMHgyNSwweDQwLDB4MTgsMHg2MCwweDgyLDB4MWMsMHgwMCB9LAotICAxNiwgMHg5ZjkwLCAwLCB7MHhiNywweDAwLDB4MjMsMHg0MCwweDA4LDB4NzAsMHg0NiwweDQ0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZmEwLCAwLCB7MHg2MCwweDE0LDB4Y2MsMHgwMCwweDkzLDB4MDAsMHgyYywweDQwLDB4MGIsMHhiMCwweDAyLDB4MGMsMHg4MiwweDgwLDB4YzAsMHgyMCB9LAotICAxNiwgMHg5ZmIwLCAwLCB7MHhjMCwweDBhLDB4MTAsMHgwMiwweDA0LDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDFiLDB4MzAsMHgwMCwweGNkLDB4MDEsMHhiMCB9LAotICAxNiwgMHg5ZmMwLCAwLCB7MHg0MCwweGFjLDB4NzgsMHg4OCwweDhjLDB4MDYsMHgwZCwweDYwLDB4YjMsMHg0YywweDI0LDB4MTIsMHgwOCwweDMwLDB4MGEsMHgxOCB9LAotICAxNiwgMHg5ZmQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgxNSwweGJjLDB4MDAsMHhjNywweDAwLDB4MmUsMHg0MCB9LAotICAxNiwgMHg5ZmUwLCAwLCB7MHgwZSwweGYwLDB4MmEsMHhiZiwweDAwLDB4YzgsMHhjOCwweGJmLDB4YzAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDA0LDB4YmYsMHgwMCB9LAotICAxNiwgMHg5ZmYwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhiMiwweDBhLDB4YWMsMHgwMCwweGY4LDB4ODAsMHgzNCwweDQ5LDB4MGMsMHhiOSwweDBiLDB4M2YsMHgwMCB9LAotICAxNiwgMHhhMDAwLCAwLCB7MHhmYiwweGMwLDB4MzAsMHhmMCwweDBjLDB4ZjAsMHgwMywweDZlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMDEwLCAwLCB7MHg4MCwweDAwLDB4Y2MsMHgwMCwweGZiLDB4ODAsMHgzZSwweDQxLDB4MmMsMHhiMCwweDEzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzZSB9LAotICAxNiwgMHhhMDIwLCAwLCB7MHhjMSwweDBmLDB4YTAsMHgwMywweGU4LDB4MDAsMHhmYSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwYiwweDZkLDB4NDAsMHhmOCB9LAotICAxNiwgMHhhMDMwLCAwLCB7MHgxMCwweDNhLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhlYywweDEwLDB4ZmUsMHg0MCwweDNlLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlMSB9LAotICAxNiwgMHhhMDQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweGVjLDB4MGMsMHhkZiwweDAwLDB4M2IsMHg4MCB9LAotICAxNiwgMHhhMDUwLCAwLCB7MHgwZiwweGYwLDB4MGIsMHgzYywweDA4LDB4ZTcsMHgwOCwweDMzLDB4YzAsMHgwYiwweGQwLDB4MjMsMHg3NCwweDAwLDB4NTQsMHgwMCB9LAotICAxNiwgMHhhMDYwLCAwLCB7MHgzMywweGMwLDB4MGYsMHhmMCwweDgzLDB4YmUsMHgyMCwweGZkLDB4MGMsMHgzYiwweDYwLDB4MmMsMHhlMCwweDAzLDB4M2MsMHgwMCB9LAotICAxNiwgMHhhMDcwLCAwLCB7MHhjZiwweDEyLDB4MzMsMHg1MCwweDBjLDB4MzAsMHgwMywweDgwLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMDgwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwNCwweGFiLDB4MDAsMHgyMiwweGEwLDB4MGIsMHhiMCwweDA2LDB4MGMsMHgwMCwweGFiLDB4NDAsMHgzNiB9LAotICAxNiwgMHhhMDkwLCAwLCB7MHhjMCwweDBiLDB4YTgsMHgwMiwweDY2LDB4MDAsMHhiOCwweDAwLDB4MzYsMHhjMSwweDBiLDB4MzQsMHg0MywweGVlLDB4MDAsMHhiMiB9LAotICAxNiwgMHhhMGEwLCAwLCB7MHgwMCwweDIyLDB4NjAsMHgwOCwweGI0LDB4ODIsMHg4YywweDA0LDB4OGEsMHgyMSwweDIyLDB4NDAsMHgwOCwweGIwLDB4MDIsMHgyMCB9LAotICAxNiwgMHhhMGIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5YiwweDAwLDB4MmEsMHgyMCB9LAotICAxNiwgMHhhMGMwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4ODgsMHhjNSwweDIyLDB4YzAsMHgwYiwweDg4LDB4ODIsMHhlNiwweDAxLDB4YmIsMHgwOCB9LAotICAxNiwgMHhhMGQwLCAwLCB7MHgyMiwweGMwLDB4MGEsMHhiMiwweDgyLDB4YWMsMHg2MCwweGI4LDB4MDIsMHg0YSwweGM0LDB4MDgsMHhiMSwweDAyLDB4MmMsMHgwMCB9LAotICAxNiwgMHhhMGUwLCAwLCB7MHg4MywweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMGYwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGFiLDB4MjAsMHgyMCwweDAxLDB4MGIsMHgzMiwweDA2LDB4MmMsMHgwMCwweGEwLDB4MDAsMHgyMCB9LAotICAxNiwgMHhhMTAwLCAwLCB7MHhjMCwweDA5LDB4MDQsMHgyMiwweGM0LDB4MDAsMHhiMiwweDAwLDB4MjQsMHhjMSwweDhiLDB4YjAsMHgwMiwweDRjLDB4MDAsMHhiMCB9LAotICAxNiwgMHhhMTEwLCAwLCB7MHgwMCwweDYyLDB4YzAsMHg0OCwweDMwLDB4MDIsMHhhYywweDEwLDB4ODIsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwMiB9LAotICAxNiwgMHhhMTIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDgsMHhkZiwweDJhLDB4M2EsMHgwMCB9LAotICAxNiwgMHhhMTMwLCAwLCB7MHgwZiwweGY1LDB4MTIsMHgzYywweDEwLDB4YzksMHgwMCwweGEzLDB4YzAsMHgwZiwweDgwLDB4NTMsMHhlYywweDAxLDB4ZGEsMHgwMCB9LAotICAxNiwgMHhhMTQwLCAwLCB7MHgzMywweGMwLDB4MGUsMHhiMCwweDAzLDB4YWMsMHgwNCwweGY4LDB4NzAsMHgzYSwweGMwLDB4MGMsMHg2MCwweDQzLDB4MmMsMHg0MiB9LAotICAxNiwgMHhhMTUwLCAwLCB7MHhjZCwweDAwLDB4YjIsMHg0MCwweDJjLDB4ZjAsMHgwMywweDgwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMTYwLCAwLCB7MHhhMCwweDE5LDB4ZmMsMHgwMCwweGZiLDB4MDEsMHgzZCwweDAwLDB4MGYsMHhiNCwweDE3LDB4ZmMsMHgwMCwweDNjLDB4MDAsMHgzZiB9LAotICAxNiwgMHhhMTcwLCAwLCB7MHhjMCwweDRmLDB4YzAsMHgwMywweDc0LDB4MDgsMHhmZSwweDAwLDB4M2YsMHhjMCwweDRmLDB4ZjAsMHgwMywweGZjLDB4MDgsMHhmOCB9LAotICAxNiwgMHhhMTgwLCAwLCB7MHgzMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDA0LDB4ZmMsMHgwMCwweDNkLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhhMTkwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGY0LDB4OTAsMHhlZiwweDAwLDB4M2YsMHhkOCB9LAotICAxNiwgMHhhMWEwLCAwLCB7MHgwZSwweGYzLDB4MDMsMHgyYywweDAxLDB4ZDQsMHg4MCwweDM3LDB4Y2MsMHgwZCwweDg5LDB4NDMsMHgxMiwweDUwLDB4ZWMsMHgyYyB9LAotICAxNiwgMHhhMWIwLCAwLCB7MHgzMiwweDA1LDB4MGQsMHhiMCwweDUzLDB4M2MsMHhkNCwweGM1LDB4OTQsMHg3ZiwweGEwLDB4OGYsMHhmMCwweDQzLDB4MzAsMHgwMCB9LAotICAxNiwgMHhhMWMwLCAwLCB7MHhkYywweDAwLDB4MzMsMHgwMCwweDBjLDB4NDgsMHgwNywweGYwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMWQwLCAwLCB7MHg4MCwweDEwLDB4ZTYsMHg0MCwweDhiLDB4NzAsMHgyZiwweGRjLDB4MDgsMHhmNywweDAyLDB4MGMsMHg4MCwweDhhLDB4MjAsMHgwMCB9LAotICAxNiwgMHhhMWUwLCAwLCB7MHhjOCwweDRhLDB4MjIsMHgwMiwweGEwLDB4MDAsMHg4YSwweDQ4LDB4MjIsMHg1OCwweDg4LDB4ZmQsMHgwMiwweGFkLDB4MDIsMHhhOSB9LAotICAxNiwgMHhhMWYwLCAwLCB7MHgyMCwweDFlLDB4YTAsMHgwMywweDgwLDB4MDIsMHgyYywweDA0LDB4OGIsMHgwMCwweDIyLDB4YzAsMHg0YywweDg4LDB4MDcsMHg2MCB9LAotICAxNiwgMHhhMjAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGMwLDB4MDAsMHgyMywweDJjLDB4MmMsMHhjOSB9LAotICAxNiwgMHhhMjEwLCAwLCB7MHgwMiwweDMwLDB4MDIsMHgwYywweDY4LDB4YTAsMHgyOCwweDJjLDB4ZDAsMHgwOSwweDEyLDB4MDIsMHg4NCwweDAwLDB4YTAsMHgyMSB9LAotICAxNiwgMHhhMjIwLCAwLCB7MHgyMCwweDE4LDB4MTksMHgzMCwweDIyLDB4ODAsMHhkMCwweDgzLDB4MDYsMHgwYywweGEwLDB4MGIsMHhiMCwweDA2LDB4MDAsMHgxMiB9LAotICAxNiwgMHhhMjMwLCAwLCB7MHhhMCwweDAwLDB4MjAsMHgwMCwweDI5LDB4MDAsMHgwZSwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMjQwLCAwLCB7MHhjMCwweDExLDB4YTgsMHgzMCwweDhiLDB4MDAsMHgyZSwweGMwLDB4NGEsMHgzMCwweDBhLDB4MmMsMHgxNCwweGEwLDB4ODAsMHgwYSB9LAotICAxNiwgMHhhMjUwLCAwLCB7MHhjMSwweDA4LDB4ODgsMHg4NiwweDg3LDB4MDAsMHg4MywweDAwLDB4MjIsMHg0OSwweDA4LDB4YjAsMHgwNiwweGEwLDB4NDAsMHhhYiB9LAotICAxNiwgMHhhMjYwLCAwLCB7MHgyMCwweDIyLDB4MjAsMHgwYiwweDgwLDB4MGEsMHgwYywweDA0LDB4YWIsMHgwMiwweDIyLDB4YzAsMHg4OCwweDgwLDB4MDIsMHhmMCB9LAotICAxNiwgMHhhMjcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVmLDB4NDAsMHhlYiwweDA2LDB4M2UsMHhjMCB9LAotICAxNiwgMHhhMjgwLCAwLCB7MHgwZSwweGIwLDB4MDMsMHgyYywweDAyLDB4ZjksMHhhMCwweDNlLDB4YzAsMHgwZCwweDhjLDB4MDMsMHhhYSwweDEwLDB4ZTksMHg0MCB9LAotICAxNiwgMHhhMjkwLCAwLCB7MHhiMiwweDQ4LDB4MGQsMHhiMCwweDQzLDB4YWQsMHgwMCwweGNiLDB4ODYsMHgyZSwweDIwLDB4MGYsMHgzMCwweDAzLDB4MjQsMHgwMCB9LAotICAxNiwgMHhhMmEwLCAwLCB7MHhmOSwweDgwLDB4MzIsMHhjMCwweDBkLDB4MGMsMHhjMiwweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMmIwLCAwLCB7MHhlMCwweDAxLDB4OTQsMHgwMCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MGQsMHhmMCwweDAzLDB4N2MsMHgwMCwweGRmLDB4MDAsMHgzNyB9LAotICAxNiwgMHhhMmMwLCAwLCB7MHhjMCwweDBmLDB4ZTAsMHgwMywweGYwLDB4MDAsMHhmZSwweDIwLDB4M2YsMHg0MCwweDBmLDB4NzAsMHgwMywweGZlLDB4MDAsMHhmZiB9LAotICAxNiwgMHhhMmQwLCAwLCB7MHg4MiwweDdmLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhmOSwweDA0LDB4ZGUsMHgyMCwweGJkLDB4MDAsMHgwZiwweGQ5LDB4MGIsMHg3YyB9LAotICAxNiwgMHhhMmUwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDEsMHhjYiwweDAwLDB4M2UsMHhjMCB9LAotICAxNiwgMHhhMmYwLCAwLCB7MHgyYywweGIwLDB4MGIsMHgyYywweDAwLDB4ZTgsMHg0MCwweDNlLDB4YzAsMHgwZiwweDk0LDB4MDcsMHgyOSwweDAwLDB4YzksMHg0MCB9LAotICAxNiwgMHhhMzAwLCAwLCB7MHhiMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4MDEsMHgwMiwweGNiLDB4MDAsMHgzMiwweDA0LDB4NGYsMHhmMCwweDQzLDB4MzQsMHhjMCB9LAotICAxNiwgMHhhMzEwLCAwLCB7MHhiNSwweDFhLDB4M2YsMHhjMSwweDBmLDB4ODAsMHg5MywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMzIwLCAwLCB7MHhjOCwweDA1LDB4MjgsMHgwMCwweDhmLDB4MDAsMHgyZiwweGMwLDB4MDgsMHhmMCwweDAyLDB4M2MsMHgwNCwweGQ4LDB4MDAsMHgyYiB9LAotICAxNiwgMHhhMzMwLCAwLCB7MHhjMCwweDBjLDB4ODAsMHg0NSwweDYwLDB4MDAsMHg3YiwweDU4LDB4MjIsMHhjOCwweDBiLDB4ZmEsMHgwMSwweDYxLDB4NDAsMHg4YiB9LAotICAxNiwgMHhhMzQwLCAwLCB7MHgwMCwweDMyLDB4MDQsMHg0YiwweGNlLDB4MDIsMHgyOCwweDAwLDB4M2EsMHg0MCwweDJlLDB4MDcsMHgwYiwweDkwLDB4MDIsMHgyNiB9LAotICAxNiwgMHhhMzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHg4MywweDAxLDB4NGMsMHhjMCB9LAotICAxNiwgMHhhMzYwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHhlYywweDEwLDB4OTAsMHgwMCwweDJhLDB4YzAsMHgwYSwweDgwLDB4MDYsMHhjMCwweDA0LDB4ODMsMHgwNCB9LAotICAxNiwgMHhhMzcwLCAwLCB7MHhhMiwweDg5LDB4MTksMHgzMCwweDA2LDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyMCwweDkwLDB4MGIsMHgzMCwweGMyLDB4NDgsMHgwMCB9LAotICAxNiwgMHhhMzgwLCAwLCB7MHhiMiwweDQwLDB4MjQsMHgyMCwweDBiLDB4MDksMHgwMCwweGI4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMzkwLCAwLCB7MHgyMCwweDAxLDB4MDYsMHgwNCwweDg3LDB4YTQsMHgyZCwweGUwLDB4MDksMHgzOCwweDAyLDB4ZGUsMHgwMCwweDllLDB4ODEsMHgyOSB9LAotICAxNiwgMHhhM2EwLCAwLCB7MHhlMCwweDA4LDB4NzgsMHg1MiwweGZhLDB4YzAsMHg5NiwweDgwLDB4MDEsMHhhMCwweDhiLDB4M2EsMHgyMiwweGNlLDB4NDAsMHg4ZiB9LAotICAxNiwgMHhhM2IwLCAwLCB7MHhiMCwweDI1LDB4YTAsMHgwYiwweDA4LDB4MDIsMHg1NiwweDA4LDB4YjUsMHg5MCwweDJkLDB4ZTQsMHg0YiwweGQ4LDB4MjIsMHgwYyB9LAotICAxNiwgMHhhM2MwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA4LDB4MDIsMHg4MywweDgwLDB4MmUsMHhlOCB9LAotICAxNiwgMHhhM2QwLCAwLCB7MHgwYiwweDM4LDB4MTMsMHhjZSwweDQxLDB4ZDMsMHgxMCwweDI4LDB4YzAsMHgwZSwweDNhLDB4MDIsMHhjNiwweDA4LDB4NGIsMHg0MCB9LAotICAxNiwgMHhhM2UwLCAwLCB7MHgzMCwweDYwLDB4MGQsMHgzYiwweDI3LDB4Y2YsMHhjNCwweGMzLDB4YTAsMHgzMCwweDAwLDB4MGYsMHgzMCwweDQzLDB4NDgsMHg0MCB9LAotICAxNiwgMHhhM2YwLCAwLCB7MHhmMiwweDAwLDB4M2MsMHgwNCwweDBmLDB4MDIsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNDAwLCAwLCB7MHg0MCwweDFkLDB4YjgsMHgwMCwweGZmLDB4MDAsMHgzZiwweGM0LDB4MGUsMHhmMSwweDAzLDB4M2MsMHgwMCwweGZmLDB4MDEsMHgzMyB9LAotICAxNiwgMHhhNDEwLCAwLCB7MHhjMCwweDRkLDB4YjEsMHgwNywweDdjLDB4OTAsMHhmZiwweDAwLDB4M2YsMHg0MCwweDAzLDB4ZjEsMHgwMywweDcwLDB4MDAsMHhmYiB9LAotICAxNiwgMHhhNDIwLCAwLCB7MHgxMCwweDNiLDB4MDAsMHgwZiwweGMwLDB4MGIsMHhiNCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4YzQsMHgwZiwweGQwLDB4MDMsMHg5MCB9LAotICAxNiwgMHhhNDMwLCAwLCB7MHgwMiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDQsMHhmYiwweDg0LDB4M2EsMHhjMiB9LAotICAxNiwgMHhhNDQwLCAwLCB7MHg0YywweGI0LDB4OTMsMHgyYywweDA0LDB4ZTksMHgwMCwweDNhLDB4YzQsMHg4ZCwweDA4LDB4MDMsMHgyZSwweDAwLDB4Y2IsMHgwMSB9LAotICAxNiwgMHhhNDUwLCAwLCB7MHgzMiwweDgwLDB4OGYsMHhiMiwweDgzLDB4ZWMsMHgwMCwweGNiLDB4ODAsMHgzMiwweDAwLDB4MGYsMHhmOSwweDAzLDB4M2MsMHgxMCB9LAotICAxNiwgMHhhNDYwLCAwLCB7MHhkZiwweDgxLDB4YjMsMHhlMCwweDhjLDB4YTAsMHgwMywweGVhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNDcwLCAwLCB7MHg0OCwweDExLDB4OTQsMHgwOCwweGI3LDB4MDQsMHgyNCwweGM4LDB4MWEsMHgzMCwweDRhLDB4MWQsMHgwMCwweGI3LDB4MDEsMHgyZCB9LAotICAxNiwgMHhhNDgwLCAwLCB7MHhjMCwweDg4LDB4NzAsMHgwNiwweDFjLDB4MDAsMHg4MiwweDAwLDB4MjEsMHg4MCwweDRiLDB4NzYsMHgxMiwweGRjLDB4MDAsMHg4NyB9LAotICAxNiwgMHhhNDkwLCAwLCB7MHgwMCwweDI5LDB4NDAsMHg4YiwweDQwLDB4MDIsMHgxMCwweDAwLDB4YmMsMHgwMCwweDIwLDB4MDEsMHgyOCwweDcwLDB4MDMsMHhiMiB9LAotICAxNiwgMHhhNGEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlhLDB4MDAsMHhiMywweDkwLDB4MmQsMHhlNCB9LAotICAxNiwgMHhhNGIwLCAwLCB7MHgwOSwweDc5LDB4MDIsMHgxZSwweDgwLDB4YTcsMHg4MCwweDJjLDB4ZTgsMHgxOSwweGY4LDB4MTIsMHg1ZSwweDAxLDB4ODcsMHg4MCB9LAotICAxNiwgMHhhNGMwLCAwLCB7MHgyNSwweGUwLDB4NGIsMHg3OCwweDA2LDB4ZDIsMHgwMCwweDk3LDB4ODAsMHgyMSwweDYyLDB4MGIsMHgzYSwweDAyLDB4MWUsMHgwMCB9LAotICAxNiwgMHhhNGQwLCAwLCB7MHhiNywweDg2LDB4MjksMHhmMCwweDA4LDB4NjgsMHgwNiwweGUwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNGUwLCAwLCB7MHg0OCwweDE0LDB4Y2YsMHhjMCwweGIzLDB4MDAsMHgyNCwweGMwLDB4OGEsMHgzMCwweDMyLDB4MGMsMHgwMCwweGIzLDB4MDgsMHgyYyB9LAotICAxNiwgMHhhNGYwLCAwLCB7MHhjMCwweDA4LDB4MzAsMHgxMiwweDBlLDB4MjAsMHg4MywweDAwLDB4MjQsMHhmMSwweDBiLDB4MzAsMHgwNiwweGNlLDB4MDAsMHg4MyB9LAotICAxNiwgMHhhNTAwLCAwLCB7MHg5MCwweDI4LDB4NjAsMHgwYiwweDAwLDB4MmEsMHgyMSwweDgwLDB4YjAsMHgwOCwweDI4LDB4MDAsMHgwOCwweDM3LDB4MDIsMHg5MiB9LAotICAxNiwgMHhhNTEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI5LDB4MDAsMHhmYSwweDAwLDB4M2UsMHg4MCB9LAotICAxNiwgMHhhNTIwLCAwLCB7MHg0ZCwweGEwLDB4MDMsMHgyOCwweDAwLDB4ZWUsMHg0MSwweDNlLDB4ODAsMHgwZCwweGUwLDB4MDMsMHg3OCwweDAwLDB4OGUsMHg0MCB9LAotICAxNiwgMHhhNTMwLCAwLCB7MHgyNywweGE4LDB4MGIsMHhhMCwweDAzLDB4ZmIsMHgwMiwweGNhLDB4ODIsMHgzMywweGEwLDB4MGYsMHhhMCwweDEzLDB4MjksMHgwMCB9LAotICAxNiwgMHhhNTQwLCAwLCB7MHhmYSwweDQwLDB4M2EsMHg4MCwweDBjLDB4NmMsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNTUwLCAwLCB7MHg0OCwweDAwLDB4YzAsMHgwMCwweGY4LDB4MDAsMHgzYSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwOCwweGY4LDB4MDAsMHgzZSB9LAotICAxNiwgMHhhNTYwLCAwLCB7MHgwMCwweDhmLDB4ODAsMHgyMywweGEwLDB4NDIsMHhmOCwweDA5LDB4YmEsMHgxMCwweDRmLDB4ODAsMHgwMywweGUwLDB4NjAsMHhmOCB9LAotICAxNiwgMHhhNTcwLCAwLCB7MHgwMCwweDNlLDB4MjAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDI3LDB4MDAsMHg4ZiwweDgwLDB4MDMsMHg5MiB9LAotICAxNiwgMHhhNTgwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU1LDB4MDAsMHg4OSwweDAwLDB4M2UsMHg0MCB9LAotICAxNiwgMHhhNTkwLCAwLCB7MHg2ZSwweDkwLDB4MDMsMHhhNCwweDA4LDB4YzksMHgwMCwweDNjLDB4NDAsMHgwZCwweDkwLDB4MDMsMHgyNCwweDEwLDB4ZjksMHhhMCB9LAotICAxNiwgMHhhNWEwLCAwLCB7MHgzMiwweDQyLDB4MGMsMHg5MCwweDEzLDB4YzQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHg0MCB9LAotICAxNiwgMHhhNWIwLCAwLCB7MHhjOSwweDIwLDB4M2UsMHg1MiwweGNmLDB4OTAsMHgwOSwweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNWMwLCAwLCB7MHg4MCwweDA0LDB4NjYsMHgwMCwweDg5LDB4MDQsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweGQ5LDB4MDAsMHgzYSB9LAotICAxNiwgMHhhNWQwLCAwLCB7MHg0MSwweDA4LDB4OTAsMHgwNSwweGE0LDB4MDAsMHhiOSwweDQwLDB4YTIsMHg0MCwweDBkLDB4OTAsMHgwMiwweGU1LDB4NDYsMHg4OSB9LAotICAxNiwgMHhhNWUwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MTIsMHhlNSwweDAwLDB4YTksMHhjOCwweDJlLDB4NjEsMHg4YiwweDk0LDB4NDIsMHgyMCB9LAotICAxNiwgMHhhNWYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHhhOSwweDAwLDB4NmMsMHg0MCB9LAotICAxNiwgMHhhNjAwLCAwLCB7MHg0OCwweDEwLDB4MjIsMHg4NCwweDAzLDB4YTksMHgwMCwweDJlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDA0LDB4YjEsMHgwOCB9LAotICAxNiwgMHhhNjEwLCAwLCB7MHgyOCwweDQwLDB4MTgsMHg5OCwweDAyLDB4ZTUsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZjQsMHgyMCB9LAotICAxNiwgMHhhNjIwLCAwLCB7MHg4ZCwweDAwLDB4MmYsMHg0MCwweDBiLDB4OTQsMHg0MiwweDg2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNjMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGExLDB4MjQsMHgyYywweDQ4LDB4MTgsMHgxMiwweDAyLDB4MDQsMHg4MCwweGExLDB4MDAsMHgyOCB9LAotICAxNiwgMHhhNjQwLCAwLCB7MHg0OCwweDA4LDB4MTAsMHgwMiwweDg0LDB4MDAsMHg5MSwweDIwLDB4MjAsMHg0OCwweDA5LDB4MTIsMHgwMiwweGM0LDB4OTQsMHg4MSB9LAotICAxNiwgMHhhNjUwLCAwLCB7MHgwMCwweDJjLDB4NjEsMHgwYiwweDVhLDB4ODIsMHhkNCwweGEwLDB4YTUsMHgyOCwweDJkLDB4NGEsMHgwYiwweDkwLDB4MDIsMHg4MiB9LAotICAxNiwgMHhhNjYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDIsMHhlOCwweDUwLDB4MmUsMHgxNCB9LAotICAxNiwgMHhhNjcwLCAwLCB7MHgwZSwweDg1LDB4MDMsMHhhMSwweDQwLDB4YTgsMHg1MCwweDNlLDB4MTQsMHgwZCwweDg1LDB4MDEsMHg4MSwweDQwLDB4ZjgsMHg1MiB9LAotICAxNiwgMHhhNjgwLCAwLCB7MHgzMiwweDk0LDB4MGMsMHg4MCwweDEzLDB4YzEsMHg0MiwweGMwLDB4NTEsMHgzZSwweDAwLDB4OGYsMHg4MiwweDAzLDB4ZTAsMHg4MCB9LAotICAxNiwgMHhhNjkwLCAwLCB7MHhjOCwweDIwLDB4M2YsMHgwOCwweDBmLDB4ODAsMHgwMywweGFlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNmEwLCAwLCB7MHg5OCwweDE5LDB4ZjQsMHg1MCwweGQ5LDB4MTEsMHgzZSwweDQ0LDB4OGYsMHg5MSwweDQzLDB4ZTQsMHg0MCwweGRkLDB4MDAsMHgzYSB9LAotICAxNiwgMHhhNmIwLCAwLCB7MHg0NCwweDRmLDB4ZDAsMHgyNywweGI0LDB4MDAsMHhmZCwweDEyLDB4M2YsMHg0NCwweDRmLDB4OTEsMHg0MywweGY0LDB4NDAsMHhmZCB9LAotICAxNiwgMHhhNmMwLCAwLCB7MHgwMCwweDNmLDB4NDEsMHgwZiwweDkyLDB4ODMsMHhlNCwweGEwLDB4ZjksMHgyOCwweDNlLDB4NGEsMHgwZiwweGQwLDB4MDMsMHg2NiB9LAotICAxNiwgMHhhNmQwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxMSwweGY2LDB4ODAsMHhlOSwweGMwLDB4M2UsMHg3OCB9LAotICAxNiwgMHhhNmUwLCAwLCB7MHg4ZiwweDliLDB4MDMsMHhhNywweDgwLDB4YzksMHg0MCwweDM2LDB4NzgsMHgwZiwweDEwLDB4MjMsMHhlNSwweDA0LDB4ZGQsMHhhNCB9LAotICAxNiwgMHhhNmYwLCAwLCB7MHgzMywweDYyLDB4MGYsMHhkYSwweDAzLDB4ZjYsMHg2MCwweGM5LDB4MTAsMHgzMywweDQwLDB4MGUsMHg5OCwweDkzLDB4ZTYsMHgzMCB9LAotICAxNiwgMHhhNzAwLCAwLCB7MHhjOSwweGM5LDB4MzIsMHg3OCwweDhjLDB4ZDAsMHgwYiwweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNzEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMCwweDg4LDB4ZTIsMHgyZSwweDMwLDB4MGIsMHg4OCwweDQyLDB4MjMsMHg0MCwweGEwLDB4YTEsMHgyMiB9LAotICAxNiwgMHhhNzIwLCAwLCB7MHgzOCwweDBiLDB4OGEsMHgwMiwweGUyLDB4ODAsMHhhYSwweGUwLDB4MjIsMHgzMCwweDBiLDB4ODAsMHgyMywweGFiLDB4MDIsMHg4OCB9LAotICAxNiwgMHhhNzMwLCAwLCB7MHhhMCwweDJhLDB4MDAsMHgwYiwweDhjLDB4MDIsMHhlMywweDAwLDB4ODgsMHhlMCwweDIzLDB4MzgsMHgwOCwweDgwLDB4MDIsMHgwZSB9LAotICAxNiwgMHhhNzQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhhMSwweDQ0LDB4MjgsMHg1OCB9LAotICAxNiwgMHhhNzUwLCAwLCB7MHg0MywweDE2LDB4MjIsMHg4NCwweDgxLDB4ODEsMHgyMCwweDJjLDB4NTgsMHg0OSwweDEwLDB4ODAsMHhjNCwweDgxLDB4OTEsMHg0OCB9LAotICAxNiwgMHhhNzYwLCAwLCB7MHg2YywweDRhLDB4MGIsMHgxNCwweDAyLDB4NDQsMHg4NCwweDgxLDB4MDEsMHg2MCwweDQwLDB4MGEsMHg1MiwweDg2LDB4ZDQsMHhhMCB9LAotICAxNiwgMHhhNzcwLCAwLCB7MHg4NSwweDAwLDB4YTEsMHg1MCwweDY4LDB4OTAsMHgwNiwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNzgwLCAwLCB7MHgxOCwweDA1LDB4YTYsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDQsMHgwMCwweGE5LDB4NjAsMHgyMiB9LAotICAxNiwgMHhhNzkwLCAwLCB7MHg0MCwweDBiLDB4OTUsMHgwMiwweGU0LDB4MTAsMHhiMSwweDAwLDB4NGUsMHg0MCwweDBiLDB4OTAsMHg2NiwweGFjLDB4ODAsMHg4OSB9LAotICAxNiwgMHhhN2EwLCAwLCB7MHgwMCwweDJhLDB4NjAsMHgwYiwweDkwLDB4NTIsMHhmNCwweDAwLDB4ODUsMHgwMCwweDIxLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNiB9LAotICAxNiwgMHhhN2IwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU2LDB4MjAsMHhlOSwweDAwLDB4M2UsMHg0MCB9LAotICAxNiwgMHhhN2MwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhhNCwweDEwLDB4YzksMHgwMCwweDM2LDB4NDAsMHgwZiwweDk0LDB4MDEsMHhlNSwweDIwLDB4ZDksMHg0MCB9LAotICAxNiwgMHhhN2QwLCAwLCB7MHhiYSwweDY4LDB4OGYsMHg5MCwweDA3LDB4ZTYsMHgwMCwweGM5LDB4MTAsMHgzMiwweDYyLDB4MGUsMHg5MCwweDAyLDB4ZTQsMHgxOCB9LAotICAxNiwgMHhhN2UwLCAwLCB7MHhjOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhN2YwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDQsMHgzZSwweDQwLDB4MGIsMHg5MCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MDAsMHgzZSB9LAotICAxNiwgMHhhODAwLCAwLCB7MHg0MCwweDhmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAyLDB4NzIsMHg2OCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDAsMHhmOSB9LAotICAxNiwgMHhhODEwLCAwLCB7MHgwMSwweDNlLDB4NDIsMHgwZiwweDkwLDB4MDMsMHhjNCwweDAyLDB4ZjksMHgwNCwweDNlLDB4NDAsMHg0ZiwweDkwLDB4MDMsMHgxYSB9LAotICAxNiwgMHhhODIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMCwweDgwLDB4MDIsMHhjOCwweDAwLDB4MzIsMHgwMCB9LAotICAxNiwgMHhhODMwLCAwLCB7MHgwYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YzgsMHg0MCwweDM2LDB4MDAsMHgwZiwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZDgsMHg1MCB9LAotICAxNiwgMHhhODQwLCAwLCB7MHhiMiwweDEwLDB4OGMsMHg4MSwweDAzLDB4YzEsMHgyMCwweGM4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHhjMCwweDEzLDB4ZjAsMHgwNCB9LAotICAxNiwgMHhhODUwLCAwLCB7MHg0YywweDAwLDB4M2YsMHgwMCwweDBmLDB4ODAsMHgwMywweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhODYwLCAwLCB7MHgyOCwweDE1LDB4MmEsMHgwMCwweDhhLDB4MDQsMHgyMiwweDgxLDB4MjgsMHhhMCwweDEyLDB4MjgsMHgwMCwweDhhLDB4MDEsMHgzNiB9LAotICAxNiwgMHhhODcwLCAwLCB7MHg4MCwweDBiLDB4YTAsMHgxMCwweDI4LDB4MTAsMHhjZSwweDAxLDB4MjMsMHg4MSwweDBjLDB4YTgsMHgxMiwweGZiLDB4MDAsMHg4YSB9LAotICAxNiwgMHhhODgwLCAwLCB7MHgwMSwweDNiLDB4ODAsMHg4MywweGEwLDB4NDIsMHhlOCwweDEwLDB4OGEsMHgwMCwweDJmLDB4ODAsMHgwYiwweDYwLDB4NDIsMHgwYSB9LAotICAxNiwgMHhhODkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDAwLDB4YTAsMHhjMCB9LAotICAxNiwgMHhhOGEwLCAwLCB7MHgxOCwweGIwLDB4MDAsMHhjYywweDAwLDB4OWIsMHgwMCwweDI0LDB4YzAsMHgwYiwweDMwLDB4MDYsMHg2YywweDAwLDB4YTMsMHgwOCB9LAotICAxNiwgMHhhOGIwLCAwLCB7MHgyOCwweGM4LDB4MDksMHgzMCwweDAyLDB4Y2MsMHg0MywweDhiLDB4MDAsMHgyYywweDgwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMiB9LAotICAxNiwgMHhhOGMwLCAwLCB7MHg4MywweDAxLDB4MmMsMHhjMCwweDRiLDB4MzAsMHgwMCwweDRhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOGQwLCAwLCB7MHhhMCwweDAxLDB4MGMsMHgyNCwweDg3LDB4OTQsMHgyMSwweGU0LDB4MTgsMHgzMSwweDAyLDB4ZGMsMHg4MCwweDk3LDB4MTAsMHgyNSB9LAotICAxNiwgMHhhOGUwLCAwLCB7MHhjZCwweDBiLDB4ZjIsMHgwMiwweDdjLDB4MDAsMHhhMCwweDAwLDB4MjgsMHhlMCwweDE4LDB4NzAsMHgwMiwweGRjLDB4MDEsMHg4NyB9LAotICAxNiwgMHhhOGYwLCAwLCB7MHgzNCwweDI5LDB4NDAsMHgwOSwweDQwLDB4MDIsMHhkMCwweDA0LDB4ODQsMHgwNCwweDJkLDB4MDAsMHg0YiwweGQwLDB4MjIsMHg2OCB9LAotICAxNiwgMHhhOTAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDE2LDB4MDAsMHhjZiwweGEwLDB4NzAsMHhlOSB9LAotICAxNiwgMHhhOTEwLCAwLCB7MHgxOCwweDdiLDB4MDMsMHhmZiwweDQwLDB4OTcsMHhhMCwweDM1LDB4ZTgsMHgwZiwweDc0LDB4MDIsMHg1ZSwweDIwLDB4ZTQsMHg4MCB9LAotICAxNiwgMHhhOTIwLCAwLCB7MHgzOSwweGEwLDB4MmQsMHg3OCwweDAzLDB4ZmUsMHgwMCwweGM3LDB4ODAsMHgzZCwweGUwLDB4NWYsMHg2OCwweDQzLDB4YzIsMHgwMCB9LAotICAxNiwgMHhhOTMwLCAwLCB7MHhjNCwweDg0LDB4MWQsMHg2MCwweDBmLDB4NzgsMHgwMywweDZhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOTQwLCAwLCB7MHgwOCwweDBkLDB4YTQsMHgwMCwweDNiLDB4MDAsMHgyZSwweGQ4LDB4MGYsMHhiNCwweDAzLDB4MmQsMHg4YSwweGViLDB4NjIsMHgzYSB9LAotICAxNiwgMHhhOTUwLCAwLCB7MHhkMCwweDBmLDB4YjIsMHg4NywweDBjLDB4ZDAsMHhkOCwweDAwLDB4MzIsMHhjMCwweDRmLDB4OTAsMHg0MywweGVjLDB4MDAsMHhmYiB9LAotICAxNiwgMHhhOTYwLCAwLCB7MHgwOCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwNCwweDNmLDB4ODAsMHgwZiwweDAwLDB4MmIsMHg4MiB9LAotICAxNiwgMHhhOTcwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGY2LDB4MDAsMHhmZiwweGEwLDB4M2UsMHhmNCB9LAotICAxNiwgMHhhOTgwLCAwLCB7MHgwZSwweGI4LDB4MDMsMHhlZSwweDA4LDB4NGIsMHhmMCwweDdmLDB4ZjQsMHgwYywweGY5LDB4MjMsMHhlZSwweDQ4LDB4NzgsMHg5MCB9LAotICAxNiwgMHhhOTkwLCAwLCB7MHgzMiwweGU0LDB4MGMsMHhmOSwweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODAsMHgzZiwweGU0LDB4MWMsMHg3OSwweDAzLDB4MmUsMHg0MCB9LAotICAxNiwgMHhhOWEwLCAwLCB7MHhmZiwweDgwLDB4MzMsMHhlMCwweDJjLDB4NzgsMHgwNywweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOWIwLCAwLCB7MHhhOCwweDExLDB4OTQsMHgwMCwweGIzLDB4MDAsMHgwYywweGU1LDB4MGIsMHgzOCwweDAyLDB4ZmUsMHg4MCwweDhmLDB4ODAsMHg2MSB9LAotICAxNiwgMHhhOWMwLCAwLCB7MHhjNCwweDI4LDB4NzgsMHgwMCwweDRlLDB4MDAsMHhmNCwweDg0LDB4MjUsMHhhOCwweDBjLDB4NzAsMHgwMiwweGNjLDB4MDQsMHhiMyB9LAotICAxNiwgMHhhOWQwLCAwLCB7MHg5MCwweDI1LDB4NDAsMHgwYywweDQxLDB4ODMsMHg1MiwweDQwLDB4YjQsMHgxMCwweGEzLDB4MDAsMHgwYywweDUyLDB4MDMsMHg2YSB9LAotICAxNiwgMHhhOWUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk0LDB4MDAsMHhiNywweDIxLDB4NmQsMHhjOCB9LAotICAxNiwgMHhhOWYwLCAwLCB7MHg0YiwweDcwLDB4MDIsMHhkYywweDQyLDB4YTcsMHgzMSwweDI5LDB4YzQsMHgwOCwweDcyLDB4MDIsMHhkYywweDAwLDB4YjcsMHgyOCB9LAotICAxNiwgMHhhYTAwLCAwLCB7MHgyNCwweDgwLDB4MDgsMHg3MCwweDA2LDB4ZDQsMHgyMCwweGI3LDB4MDEsMHgyZCwweGMxLDB4MDgsMHg2MCwweDAyLDB4NTAsMHg4MCB9LAotICAxNiwgMHhhYTEwLCAwLCB7MHhiNCwweDA4LDB4MjEsMHg2MiwweDA5LDB4NzQsMHgwNiwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYTIwLCAwLCB7MHgyMCwweDE0LDB4YzcsMHgwNCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGIsMHhiMCwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MDIsMHg2MCB9LAotICAxNiwgMHhhYTMwLCAwLCB7MHhjMCwweDA4LDB4MzgsMHgwMiwweDRlLDB4NDQsMHhhMCwweGMwLDB4MjQsMHg5MSwweDA4LDB4MzAsMHgwMiwweGMwLDB4MDAsMHhiMyB9LAotICAxNiwgMHhhYTQwLCAwLCB7MHgwMCwweDI0LDB4NjAsMHgwOCwweDFjLDB4MDIsMHg0YywweDg4LDB4YjMsMHhjMCwweDIwLDB4YTAsMHgwOCwweDAwLDB4MGEsMHg4OCB9LAotICAxNiwgMHhhYTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDAsMHhmZiwweDAwLDB4MmYsMHhjMCB9LAotICAxNiwgMHhhYTYwLCAwLCB7MHg0ZiwweGYwLDB4MTMsMHhmYywweDA4LDB4ZTcsMHg4YSwweDNmLDB4YzAsMHgwYywweGY1LDB4YzIsMHhmZSwweDEwLDB4YmIsMHhjMCB9LAotICAxNiwgMHhhYTcwLCAwLCB7MHgzMiwweGQ0LDB4MGMsMHgzMCwweDEzLDB4ZTMsMHgwNCwweGJmLDB4MDAsMHgyZSwweDYyLDB4MDgsMHhiOSwweDAyLDB4NmUsMHgwMCB9LAotICAxNiwgMHhhYTgwLCAwLCB7MHhmYiwweDAxLDB4MzIsMHhhNCwweDRkLDB4OTQsMHgwMiwweGFiLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYTkwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHg2MCwweGZiLDB4MDAsMHgxZSwweGMwLDB4MGYsMHhiMCwweDEzLDB4ZWMsMHgwMCwweDViLDB4MDAsMHgzYSB9LAotICAxNiwgMHhhYWEwLCAwLCB7MHhjMCwweDBmLDB4YjAsMHg0MSwweGVjLDB4MDAsMHg3YiwweDQ1LDB4YmEsMHg0MCwweDJlLDB4YjAsMHgxNSwweGUwLDB4MDEsMHhmYiB9LAotICAxNiwgMHhhYWIwLCAwLCB7MHgwMCwweDNlLDB4NTAsMHgwZSwweGMwLDB4MDMsMHhmMCwweDQwLDB4ZmMsMHgyMCwweDNmLDB4NTAsMHg4ZiwweDkwLDB4MDEsMHg2MCB9LAotICAxNiwgMHhhYWMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCB9LAotICAxNiwgMHhhYWQwLCAwLCB7MHg4ZiwweGYwLDB4MDMsMHgxYywweDAyLDB4Y2YsMHgwMCwweDM2LDB4YzAsMHgwZCwweGYwLDB4MDMsMHg3YywweDAwLDB4N2YsMHgyYSB9LAotICAxNiwgMHhhYWUwLCAwLCB7MHgzZiwweDgwLDB4MGYsMHhmOCwweDEzLDB4OTAsMHgyMSwweGNmLDB4MDAsMHgzZiwweDYyLDB4MGMsMHhlMCwweDAzLDB4MzAsMHgwMCB9LAotICAxNiwgMHhhYWYwLCAwLCB7MHhmOCwweDAwLDB4M2YsMHgwMCwweDBmLDB4ZDAsMHgwMywweDgwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYjAwLCAwLCB7MHg4MSwweDA0LDB4NjQsMHgxMSwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGRiLDB4MDQsMHgzMiB9LAotICAxNiwgMHhhYjEwLCAwLCB7MHhjMCwweDBlLDB4YjAsMHgwMiwweGVjLDB4MDAsMHhiYiwweDg0LDB4MmUsMHg0MCwweDBiLDB4YjksMHg0MiwweDIyLDB4NDIsMHg4YiB9LAotICAxNiwgMHhhYjIwLCAwLCB7MHgwMSwweDJjLDB4NzIsMHgwYSwweDkwLDB4NDIsMHgyYywweDAwLDB4YmIsMHgwMCwweDJlLDB4YzIsMHg4ZiwweDg4LDB4MDYsMHhlMCB9LAotICAxNiwgMHhhYjMwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDI0LDB4MDAsMHhiYiwweDAwLDB4NmUsMHhjMCB9LAotICAxNiwgMHhhYjQwLCAwLCB7MHg0OCwweGIwLDB4NDIsMHgyYywweDAwLDB4OGIsMHgwMCwweDI2LDB4YzAsMHgwYSwweGIwLDB4MTIsMHhlYywweDAwLDB4YmIsMHg0MCB9LAotICAxNiwgMHhhYjUwLCAwLCB7MHgyZSwweGM4LDB4MGIsMHhiMCwweDEyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyZSwweDQ4LDB4MGEsMHgzMCwweDAyLDB4NmMsMHgwMCB9LAotICAxNiwgMHhhYjYwLCAwLCB7MHhiYiwweDAwLDB4MmUsMHg4MCwweDRiLDB4OTgsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYjcwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHgwMCwweGIzLDB4MDAsMHg2YywweGMyLDB4NGIsMHgzMSwweDAyLDB4MGMsMHg1MCwweDliLDB4MjAsMHgyMCB9LAotICAxNiwgMHhhYjgwLCAwLCB7MHhjMCwweDBhLDB4MzIsMHgxMiwweGNjLDB4ODAsMHhiMywweDAwLDB4NmMsMHgwYywweDBiLDB4MzEsMHgwMiwweDBjLDB4NDIsMHg4MyB9LAotICAxNiwgMHhhYjkwLCAwLCB7MHgwOCwweDJlLDB4NDAsMHgwYSwweDAwLDB4MDIsMHgwMCwweDgwLDB4YjAsMHgwMCwweDJjLDB4NDEsMHgwYiwweDEwLDB4MDIsMHg0MiB9LAotICAxNiwgMHhhYmEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY0LDB4MDAsMHhiYiwweDQwLDB4M2YsMHhjYyB9LAotICAxNiwgMHhhYmIwLCAwLCB7MHgwZSwweGYwLDB4ODMsMHgzZCwweGEwLDB4Y2YsMHgyMCwweDM3LDB4YzAsMHgwYywweGY3LDB4YzMsMHhmZCwweDQ4LDB4ZjMsMHgwMCB9LAotICAxNiwgMHhhYmMwLCAwLCB7MHgzZSwweDg4LDB4MGYsMHhiNCwweDEzLDB4YTUsMHgwMCwweDhmLDB4MzAsMHgzZSwweDQwLDB4MGMsMHhhMCwweDAzLDB4NjAsMHg4MCB9LAotICAxNiwgMHhhYmQwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4OTAsMHgyMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYmUwLCAwLCB7MHhhMCwweDE5LDB4ZjQsMHgwMCwweGZmLDB4MjksMHgzZiwweGM5LDB4MGYsMHhmMCwweDEzLDB4ZmMsMHg5NCwweGVmLDB4MTIsMHgzYiB9LAotICAxNiwgMHhhYmYwLCAwLCB7MHhjMCwweDhlLDB4YjIsMHgwNywweGZkLDB4MDQsMHhmZiwweDEwLDB4M2YsMHgwYywweDBmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmYiB9LAotICAxNiwgMHhhYzAwLCAwLCB7MHgyMCwweDNkLDB4NDAsMHgwZiwweGQwLDB4NDMsMHhmYywweDQwLDB4ZmYsMHgwNCwweDNmLDB4YzAsMHgwZSwweGMwLDB4NDMsMHhlOCB9LAotICAxNiwgMHhhYzEwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4YTIsMHhjNywweDIwLDB4M2YsMHgyNCB9LAotICAxNiwgMHhhYzIwLCAwLCB7MHgwYywweGYwLDB4MDMsMHgzYywweDgwLDB4Y2MsMHgwOSwweDMzLDB4ZDEsMHgwYywweGYxLDB4MjMsMHhmYywweDIwLDB4ZGYsMHgzNiB9LAotICAxNiwgMHhhYzMwLCAwLCB7MHgzZiwweGMwLDB4MGUsMHg0OCwweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODAsMHgzNywweGU0LDB4MGQsMHg3OCwweDAzLDB4MTEsMHhhMCB9LAotICAxNiwgMHhhYzQwLCAwLCB7MHhjZiwweDAwLDB4MzcsMHhjOCwweDBjLDB4ZjAsMHgwMywweDMwLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYzUwLCAwLCB7MHg4MCwweDEwLDB4ZmYsMHgwMCwweDhmLDB4ZDEsMHgyZSwweDA4LDB4MGQsMHhiNiwweDEyLDB4M2QsMHg0NSwweGY5LDB4NjQsMHgyNyB9LAotICAxNiwgMHhhYzYwLCAwLCB7MHhkMCwweDg4LDB4YmEsMHgxNCwweGNjLDB4MDQsMHg4ZiwweDQwLDB4MjMsMHhmMCwweDBiLDB4ODgsMHgwMiwweDJlLDB4MDQsMHhiYiB9LAotICAxNiwgMHhhYzcwLCAwLCB7MHg4MCwweGFlLDB4YzAsMHgwOCwweGI4LDB4MGEsMHgyMSwweDAwLDB4ODgsMHhkMCwweDIyLDB4MjAsMHgyOCwweGIwLDB4MDIsMHgyMCB9LAotICAxNiwgMHhhYzgwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg5MywweDAwLDB4MmUsMHgwMCB9LAotICAxNiwgMHhhYzkwLCAwLCB7MHgwYSwweDM0LDB4ODIsMHg4YywweGEwLDB4YTAsMHgwOCwweDI0LDB4ZDgsMHgwOSwweDMxLDB4MDIsMHhjYywweDIwLDB4YjMsMHgzMiB9LAotICAxNiwgMHhhY2EwLCAwLCB7MHgyOCwweGQwLDB4NGEsMHg4MCwweDAyLDB4Y2MsMHgwYywweGJiLDB4MDAsMHgyMiwweDQwLDB4ODksMHhiMCwweDAyLDB4NjAsMHg4MCB9LAotICAxNiwgMHhhY2IwLCAwLCB7MHg5MywweDAwLDB4MjQsMHhkMCwweDBiLDB4MzAsMHgwMiwweGEyLDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhY2MwLCAwLCB7MHhjMCwweDExLDB4YWMsMHgwMCwweDliLDB4MDAsMHgyZSwweDIwLDB4MDksMHhiMCwweDRhLDB4MmMsMHgwMiwweGEwLDB4MDAsMHgwNiB9LAotICAxNiwgMHhhY2QwLCAwLCB7MHhjMCwweDA5LDB4YjAsMHgwMCwweGVjLDB4MDAsMHhhYiwweDAwLDB4MmEsMHhjMCwweDBiLDB4ODgsMHgwMiwweDZjLDB4MDAsMHhiYiB9LAotICAxNiwgMHhhY2UwLCAwLCB7MHgyMCwweDJhLDB4ZTIsMHg0MSwweGI4LDB4MmEsMHg2MCwweDBhLDB4OTgsMHgwMCwweDI2LDB4MDAsMHgwYiwweGIwLDB4MDIsMHhiOCB9LAotICAxNiwgMHhhY2YwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDgsMHhkYiwweDAyLDB4M2UsMHgyMCB9LAotICAxNiwgMHhhZDAwLCAwLCB7MHg0YywweGIwLDB4MDMsMHgyYywweDAyLDB4OGIsMHgyMCwweDEyLDB4YzAsMHgyOSwweGIwLDB4MTIsMHhlYywweDAwLDB4ZmIsMHgwMCB9LAotICAxNiwgMHhhZDEwLCAwLCB7MHgzYSwweGMwLDB4MGUsMHg4OCwweDAzLDB4ZWQsMHgyMCwweGZiLDB4YzgsMHgzNCwweGYwLDB4MGQsMHhiYSwweDAzLDB4NDcsMHg2MCB9LAotICAxNiwgMHhhZDIwLCAwLCB7MHhjOSwweDAwLDB4MzYsMHg0MCwweDBmLDB4YjAsMHgwYiwweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZDMwLCAwLCB7MHhlMCwweDAxLDB4OWMsMHgwMCwweGVmLDB4MDAsMHgwZiwweDAwLDB4MGYsMHgzMCwweDAwLDB4ZmMsMHgwMCwweGRmLDB4OTAsMHhiYiB9LAotICAxNiwgMHhhZDQwLCAwLCB7MHhjMCwweGNlLDB4ZjAsMHgwMywweGZjLDB4MDQsMHhjYiwweDAwLDB4MTcsMHhjMCwweDBmLDB4YzAsMHgwMywweGJjLDB4ODQsMHhmZiB9LAotICAxNiwgMHhhZDUwLCAwLCB7MHgwMCwweDM3LDB4YzAsMHgwZSwweGQwLDB4NjMsMHhiOCwweDAwLDB4ZWEsMHgwMCwweDNhLDB4ODAsMHgwYywweDMwLDB4MDMsMHg3MCB9LAotICAxNiwgMHhhZDYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhmYiwweDAyLDB4MzIsMHgwMCB9LAotICAxNiwgMHhhZDcwLCAwLCB7MHgwZiwweGIwLDB4NTMsMHgyYywweDAwLDB4ZmEsMHgwMCwweDMyLDB4YzAsMHg4ZiwweGIwLDB4MDcsMHgyYywweDAwLDB4ZmIsMHgwMCB9LAotICAxNiwgMHhhZDgwLCAwLCB7MHhiMiwweGMwLDB4MGYsMHg4MCwweDA3LDB4YWMsMHg4MCwweGRiLDB4MjQsMHg3ZSwweGQwLDB4MGUsMHhiMCwweDIzLDB4NzQsMHgwNCB9LAotICAxNiwgMHhhZDkwLCAwLCB7MHhkZCwweDA4LDB4YjUsMHg0MCwweDBjLDB4YjAsMHgwMywweDEwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZGEwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweGJmLDB4YzAsMHhhMCwweDAwLDB4MWIsMHhmMCwweDAyLDB4M2YsMHg2MCwweGVhLDB4NTAsMHgyMyB9LAotICAxNiwgMHhhZGIwLCAwLCB7MHhjMCwweDA4LDB4ZmEsMHgwNywweGZjLDB4MDAsMHhkZiwweDAwLDB4NjMsMHhjMCwweDQ4LDB4MTgsMHgwMiwweDJkLDB4MDAsMHhiMyB9LAotICAxNiwgMHhhZGMwLCAwLCB7MHgwMCwweDZlLDB4YzAsMHgwZCwweDNhLDB4MDMsMHgyNCwweDAwLDB4ODIsMHg4MCwweDMyLDB4ODAsMHgwZCwweGYwLDB4MDMsMHgzMiB9LAotICAxNiwgMHhhZGQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MTQsMHhiMywweDU5LDB4MjAsMHg4MCB9LAotICAxNiwgMHhhZGUwLCAwLCB7MHgwOSwweDMwLDB4MDIsMHgyZSwweDA1LDB4YjAsMHg0NCwweDJlLDB4YzAsMHgwOSwweDM0LDB4ODIsMHhlYywweDAwLDB4YWIsMHgwNCB9LAotICAxNiwgMHhhZGYwLCAwLCB7MHgyMCwweGMwLDB4MDksMHgyMSwweGIyLDB4OGUsMHgwNCwweDkzLDB4YzAsMHgyNCwweGMwLDB4MGEsMHgxOCwweDA2LDB4NGMsMHgwMCB9LAotICAxNiwgMHhhZTAwLCAwLCB7MHg5MiwweDUwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDcwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZTEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweGI3LDB4ODAsMHg2MSwweGUwLDB4MGIsMHg3OCwweDBhLDB4NWUsMHgwMSwweGIxLDB4YTAsMHgyZCB9LAotICAxNiwgMHhhZTIwLCAwLCB7MHhlMCwweDBhLDB4NzgsMHgwMiwweDVlLDB4MDAsMHgwNywweDkwLDB4MjEsMHhlMCwweDE4LDB4YzgsMHgwMiwweDFlLDB4MDAsMHhiNyB9LAotICAxNiwgMHhhZTMwLCAwLCB7MHg4MCwweDJkLDB4ZTAsMHg4YSwweGQ4LDB4MDIsMHgzZSwweGMwLDB4ODUsMHg4MCwweDIxLDB4MjAsMHgxOSwweDc4LDB4MjIsMHgwMCB9LAotICAxNiwgMHhhZTQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhmMywweDk0LDB4MjAsMHgxMCB9LAotICAxNiwgMHhhZTUwLCAwLCB7MHg0YiwweDMwLDB4MDcsMHgwYywweDAwLDB4ZjMsMHgwMCwweDNlLDB4YzgsMHgwZiwweDMwLDB4MDMsMHhjYywweDAwLDB4MjMsMHgxMCB9LAotICAxNiwgMHhhZTYwLCAwLCB7MHgwMCwweGNiLDB4MDUsMHgyMCwweDAyLDB4OGMsMHg2MCwweDkzLDB4MGEsMHgyZSwweGM0LDB4MGEsMHgwMSwweDA3LDB4NGMsMHg4MCB9LAotICAxNiwgMHhhZTcwLCAwLCB7MHhkMiwweDAxLDB4MzAsMHhjMCwweDJjLDB4MzAsMHgwYiwweDVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZTgwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGZmLDB4MDEsMHgwZiwweDQwLDB4MGYsMHhmMCwweDEzLDB4YmMsMHgwMCwweGVmLDB4MjYsMHg3MyB9LAotICAxNiwgMHhhZTkwLCAwLCB7MHhjMiwweDBjLDB4YjAsMHg4MywweGJjLDB4NDAsMHhmZiwweDE4LDB4M2QsMHhjMCwweDRhLDB4YzEsMHgwMywweGZjLDB4MDAsMHhmYiB9LAotICAxNiwgMHhhZWEwLCAwLCB7MHgxMiwweDNmLDB4YzQsMHg0ZCwweGMxLDB4MGIsMHhmYywweDgxLDB4ZmQsMHgwMCwweDNmLDB4MjAsMHgwZiwweGYwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhhZWIwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MjAsMHhjYiwweDQ4LDB4M2UsMHgwMCB9LAotICAxNiwgMHhhZWMwLCAwLCB7MHgwYywweGIwLDB4MDMsMHgyZCwweDIwLDB4ZTksMHg4MCwweGZhLDB4YzgsMHgwZCwweGIwLDB4MDMsMHhlZSwweDAwLDB4ZGIsMHgyNCB9LAotICAxNiwgMHhhZWQwLCAwLCB7MHg3NiwweGYzLDB4OGUsMHg4MCwweDMzLDB4ZWMsMHg0NCwweGViLDB4MTAsMHgzZSwweGMwLDB4MGYsMHg5MCwweDAzLDB4ZTgsMHgwNCB9LAotICAxNiwgMHhhZWUwLCAwLCB7MHhkYywweDAwLDB4YjMsMHg2MSwweDBjLDB4YjAsMHgwMywweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZWYwLCAwLCB7MHg0OCwweDExLDB4OGQsMHgwMCwweDg3LDB4MjAsMHgyZiwweDAxLDB4MjgsMHg3MCwweDAyLDB4MGMsMHg4NCwweDhkLDB4MDQsMHgzMSB9LAotICAxNiwgMHhhZjAwLCAwLCB7MHhjYywweGM5LDB4NzIsMHgwMiwweGRkLDB4MDAsMHgzNywweDMzLDB4MjEsMHhkOCwweDA4LDB4NDAsMHgwMiwweGRjLDB4MDAsMHhiNyB9LAotICAxNiwgMHhhZjEwLCAwLCB7MHgyMCwweDNkLDB4YzAsMHgwOSwweDUwLDB4MjIsMHhmMCwweDAwLDB4OTcsMHgwMCwweDIxLDB4ODAsMHgwYSwweGZjLDB4MDIsMHg5MiB9LAotICAxNiwgMHhhZjIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDFlLDB4ODIsMHg4NywweGIwLDB4MmQsMHgyMCB9LAotICAxNiwgMHhhZjMwLCAwLCB7MHgwOCwweDM5LDB4MDIsMHgxZSwweDQxLDB4YTcsMHg4MCwweDI0LDB4ZTAsMHgwOSwweDdhLDB4MzIsMHg4ZSwweDgyLDB4MDcsMHhhMCB9LAotICAxNiwgMHhhZjQwLCAwLCB7MHgyNSwweGUwLDB4OGIsMHg0OCwweDAyLDB4MWUsMHgwMCwweGE3LDB4ZTEsMHgyZCwweGUwLDB4NGIsMHg1OCwweDAwLDB4ZGEsMHgwMCB9LAotICAxNiwgMHhhZjUwLCAwLCB7MHhhMCwweDgwLDB4MjQsMHg2MCwweDA4LDB4N2EsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZjYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyYywweDAwLDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweDkzLDB4MDAsMHgyMiB9LAotICAxNiwgMHhhZjcwLCAwLCB7MHhjMSwweDA5LDB4MzAsMHg0MiwweGNjLDB4MDAsMHg4MywweDAwLDB4NjAsMHhjMCwweDA4LDB4MWEsMHgwMiwweGNlLDB4MDQsMHhiMyB9LAotICAxNiwgMHhhZjgwLCAwLCB7MHhlMCwweDI4LDB4YTAsMHgwOSwweDFjLDB4ODIsMHg0YiwweDA4LDB4YTMsMHg4MCwweDI0LDB4YTAsMHgyYSwweDMwLDB4MDIsMHg5YSB9LAotICAxNiwgMHhhZjkwLCAwLCB7MHgwNCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhjYSwweDAwLDB4MmYsMHg4OCB9LAotICAxNiwgMHhhZmEwLCAwLCB7MHgwYywweGEwLDB4MTMsMHgyOCwweDAwLDB4ZWUsMHgwMCwweDJlLDB4ODAsMHgyZCwweGEwLDB4MDMsMHhlOCwweDAwLDB4ZGEsMHgwMCB9LAotICAxNiwgMHhhZmIwLCAwLCB7MHg3NiwweDgwLDB4MGUsMHhlOCwweDAzLDB4YmIsMHg4MCwweGVlLDB4NDAsMHgyZiwweGEyLDB4OGYsMHhlNiwweDAzLDB4ZWIsMHg4NiB9LAotICAxNiwgMHhhZmMwLCAwLCB7MHhmYSwweDgwLDB4MzcsMHg4MiwweDBjLDB4MjAsMHgwNywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZmQwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4NDAsMHgxZSwweDAwLDB4MGYsMHg4MCwweDBiLDB4NjEsMHgwMCwweGU4LDB4YzAsMHgzYSB9LAotICAxNiwgMHhhZmUwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MDEsMHhmOCwweDAwLDB4N2UsMHgxMCwweDFlLDB4ODEsMHgwMywweGUwLDB4MDgsMHhmOCB9LAotICAxNiwgMHhhZmYwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHhjMCwweDI4LDB4ZGMsMHg1MCwweDNiLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhiMDAwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGM0LDB4MDIsMHhjOSwweDAwLDB4M2UsMHg0MiB9LAotICAxNiwgMHhiMDEwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHhhNiwweDAwLDB4YzksMHgwMSwweDNhLDB4NDAsMHgwZSwweDk0LDB4MDEsMHhlNCwweDEwLDB4ZjEsMHgwNCB9LAotICAxNiwgMHhiMDIwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHg5YSwweDIzLDB4MjAsMHg2MCwweGY4LDB4MDQsMHgwYSwweDQyLDB4MGUsMHg5MCwweDEzLDB4MjQsMHgwMCB9LAotICAxNiwgMHhiMDMwLCAwLCB7MHhjMSwweDAwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMDQwLCAwLCB7MHg4MCwweDA0LDB4NjcsMHgwOCwweGE5LDB4MDAsMHg2ZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjcsMHg4MiwweDg5LDB4MDAsMHgyNiB9LAotICAxNiwgMHhiMDUwLCAwLCB7MHg0MCwweDA4LDB4OWMsMHgwMywweGE0LDB4MTAsMHhiOSwweDAwLDB4MzYsMHg0MCwweDliLDB4MWMsMHgxYSwweDIzLDB4MDQsMHhiOCB9LAotICAxNiwgMHhiMDYwLCAwLCB7MHgwMCwweDNhLDB4NDAsMHgwZSwweDEwLDB4MDIsMHgyNCwweDAyLDB4YzksMHhhMCwweGEyLDB4NDAsMHgwYiwweDkwLDB4MGEsMHgyMCB9LAotICAxNiwgMHhiMDcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI1LDB4ODAsMHg4OSwweDA0LDB4MmMsMHg0MCB9LAotICAxNiwgMHhiMDgwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHg4NCwweDgxLDB4OTksMHg0MCwweDJlLDB4NDAsMHgxYSwweDkwLDB4MDYsMHhlNCwweDAxLDB4YjksMHgwMCB9LAotICAxNiwgMHhiMDkwLCAwLCB7MHhhNiwweDQxLDB4MWIsMHg5MCwweDgyLDB4MjEsMHgwMCwweGI4LDB4MTAsMHgyZSwweDQwLDB4MGEsMHg5MiwweDBhLDB4YTQsMHgwMSB9LAotICAxNiwgMHhiMGEwLCAwLCB7MHg4ZiwweDIyLDB4MjMsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMGIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGEzLDB4MjAsMHgyYywweDQxLDB4MDksMHgxMiwweDAyLDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyNCB9LAotICAxNiwgMHhiMGMwLCAwLCB7MHg0OCwweDBhLDB4MzYsMHgwMiwweGM0LDB4ODAsMHhiMSwweDIwLDB4MDQsMHhjOCwweDRiLDB4MTQsMHgwMiwweDA1LDB4MDAsMHhiMSB9LAotICAxNiwgMHhiMGQwLCAwLCB7MHgwNSwweDI4LDB4NTAsMHgwYSwweDkwLDB4MDIsMHgwNSwweDAyLDB4ODUsMHgwMCwweDIxLDB4NDAsMHgwYiwweDEyLDB4MDIsMHgwMiB9LAotICAxNiwgMHhiMGUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjOCwweDAwLDB4NmUsMHgxNCB9LAotICAxNiwgMHhiMGYwLCAwLCB7MHgyYywweDg1LDB4MDIsMHhhMSwweDQwLDB4YzgsMHg1MCwweDNhLDB4MTQsMHgwZSwweDgwLDB4MDIsMHhlMSwweDQwLDB4YjAsMHg1MCB9LAotICAxNiwgMHhiMTAwLCAwLCB7MHgzMiwweDAwLDB4MGIsMHg4MCwweDAzLDB4MjAsMHgwMCwweGZhLDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4YTAsMHgwMiB9LAotICAxNiwgMHhiMTEwLCAwLCB7MHhjOCwweDAwLDB4MTMsMHgwMCwweDBmLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMTIwLCAwLCB7MHg5OCwweDFkLDB4ZTQsMHg0OCwweGY5LDB4MTQsMHgzZiwweDQwLDB4MGMsMHg5MSwweDAzLDB4ZTQsMHg0MiwweGZkLDB4MTAsMHgzNiB9LAotICAxNiwgMHhiMTMwLCAwLCB7MHg0NCwweDBkLDB4OTEsMHgyMywweGE0LDB4NDgsMHhmOSwweDExLDB4MzgsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU1LDB4MTQsMHgzOSB9LAotICAxNiwgMHhiMTQwLCAwLCB7MHg0MiwweDdiLDB4NDAsMHg4ZSwweGQwLDB4MDEsMHhmNSwweDAwLDB4YTksMHg0MCwweDNlLDB4NTAsMHgwNywweDk2LDB4ODMsMHhlNiB9LAotICAxNiwgMHhiMTUwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweGY2LDB4ODAsMHhkZCwweGFlLDB4M2EsMHg1MCB9LAotICAxNiwgMHhiMTYwLCAwLCB7MHgwZCwweDlhLDB4MGIsMHg3NiwweDgwLDB4Y2YsMHg4OCwweDMyLDB4NzAsMHgyZCwweGRhLDB4MDMsMHhhNywweDAxLDB4ZTksMHg5MiB9LAotICAxNiwgMHhiMTcwLCAwLCB7MHgzNywweDY4LDB4MGQsMHg5NCwweDAzLDB4ZTcsMHgwMCwweGVkLDB4YTAsMHgzYSwweDUwLDB4MGYsMHhkMCwweDAzLDB4ZTcsMHgwMiB9LAotICAxNiwgMHhiMTgwLCAwLCB7MHhjZCwweDgwLDB4MzMsMHg2OCwweDBjLDB4ZDgsMHg4MywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMTkwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgwMCwweDg4LDB4NDAsMHgyMCwweDIwLDB4MGMsMHg4YywweDAyLDB4MjMsMHgwMCwweDg4LDB4ZTAsMHgyMiB9LAotICAxNiwgMHhiMWEwLCAwLCB7MHgzMCwweDA4LDB4ODQsMHgwMiwweGUzLDB4MDAsMHhiOCwweGUwLDB4MjIsMHgxNCwweDhkLDB4ODgsMHgwMiwweGUzLDB4MDAsMHhiOCB9LAotICAxNiwgMHhiMWIwLCAwLCB7MHg1MCwweDJlLDB4YTgsMHg4YiwweDgwLDB4MjIsMHhlMywweDQ4LDB4ODgsMHg1MCwweDIyLDB4MDAsMHgwOCwweDhjLDB4MDIsMHgwZSB9LAotICAxNiwgMHhiMWMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4NDAsMHg5MSwweDAwLDB4MmEsMHg0OCB9LAotICAxNiwgMHhiMWQwLCAwLCB7MHgwOSwweDE0LDB4ODIsMHgwNSwweDIwLDB4ODEsMHgwOCwweDIwLDB4NTgsMHgwOSwweDExLDB4MDIsMHg4NSwweDg4LDB4YjEsMHg0MCB9LAotICAxNiwgMHhiMWUwLCAwLCB7MHhhMCwweDQwLDB4MDgsMHgxMiwweDAyLDB4YzUsMHg4MCwweGExLDB4MDAsMHgyOCwweDQwLDB4MGIsMHgxOCwweDAyLDB4YzQsMHg4NCB9LAotICAxNiwgMHhiMWYwLCAwLCB7MHhhMSwweDAwLDB4MjQsMHg1MCwweDA4LDB4MTAsMHg5MiwweDAzLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMjAwLCAwLCB7MHgxOCwweDE1LDB4YWMsMHgxMCwweDliLDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDQsMHgwNiwweDg5LDB4MDQsMHgyMCB9LAotICAxNiwgMHhiMjEwLCAwLCB7MHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MDEsMHhiOSwweDAyLDB4MjIsMHg0MSwweDg5LDB4YTAsMHg4MiwweGUwLDB4YTAsMHhiOSB9LAotICAxNiwgMHhiMjIwLCAwLCB7MHgyOCwweDJlLDB4NDQsMHgwYiwweGIwLDB4MDIsMHhlNCwweDAyLDB4YjksMHgwMCwweDI2LDB4NDAsMHgyOCwweDEwLDB4MDIsMHgwNiB9LAotICAxNiwgMHhiMjMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhkOSwweDAwLDB4MzgsMHg0MCB9LAotICAxNiwgMHhiMjQwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHgyNCwweDAwLDB4YzksMHhhMCwweGEyLDB4NDAsMHg4ZCwweDkwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHgwMCB9LAotICAxNiwgMHhiMjUwLCAwLCB7MHgzNiwweDQwLDB4MGMsMHg4NCwweDEzLDB4ZTIsMHgwMCwweGU5LDB4MDAsMHgzYSwweDUwLDB4MGYsMHg5YywweDAyLDB4ZTYsMHg4NCB9LAotICAxNiwgMHhiMjYwLCAwLCB7MHhlOSwweDAwLDB4YjYsMHg0MCwweDBjLDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMjcwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGUxLDB4MDAsMHgzZSwweDY4LDB4MGUsMHgxMCwweDAzLDB4YTQsMHgwMCwweGYxLDB4MjgsMHgzYSB9LAotICAxNiwgMHhiMjgwLCAwLCB7MHg0MCwweDBlLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MiwweDBmLDB4ODAsMHgyMywweGUyLDB4MDAsMHhmOSB9LAotICAxNiwgMHhiMjkwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwZiwweDkxLDB4MjMsMHhlNCwweDQwLDB4YzEsMHgwMCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MGIsMHhjYSB9LAotICAxNiwgMHhiMmEwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweDgwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCB9LAotICAxNiwgMHhiMmIwLCAwLCB7MHgwYywweDgwLDB4MDMsMHhhMCwweDIwLDB4YzgsMHg0MCwweDNlLDB4MDAsMHgwZSwweDgxLDB4NjMsMHg2MCwweDAwLDB4ZjAsMHgwNCB9LAotICAxNiwgMHhiMmMwLCAwLCB7MHgzYywweDAxLDB4MGMsMHg4NCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4YzEsMHgwMCB9LAotICAxNiwgMHhiMmQwLCAwLCB7MHhkOCwweDEwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgyMywweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMmUwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHg2MCwweDhlLDB4MDAsMHgyMiwweDgwLDB4MGEsMHhhMCwweDAyLDB4MzgsMHg4MCwweGJlLDB4MDAsMHgzYSB9LAotICAxNiwgMHhiMmYwLCAwLCB7MHg4MCwweDA4LDB4ZTAsMHgwMiwweDI4LDB4MDAsMHhiYSwweDAwLDB4MjMsMHg5OCwweDE4LDB4ZWMsMHgwMiwweGY4LDB4MjAsMHhhZSB9LAotICAxNiwgMHhiMzAwLCAwLCB7MHgwMCwweDIyLDB4ODAsMHgwYiwweGU0LDB4ODIsMHhlOCwweDAyLDB4Y2UsMHg0NCwweDI4LDB4ODAsMHgwZCwweGEwLDB4MGEsMHgwYSB9LAotICAxNiwgMHhiMzEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQwLDB4MDAsMHg4MiwweDA0LDB4YTAsMHhjMCB9LAotICAxNiwgMHhiMzIwLCAwLCB7MHgwOSwweDMwLDB4MDIsMHg4ZSwweDA0LDB4ODMsMHg1MCwweDZjLDB4YzAsMHgwYSwweDMwLDB4ODYsMHgwYywweDAwLDB4YjMsMHgwMCB9LAotICAxNiwgMHhiMzMwLCAwLCB7MHgyOCwweDMwLDB4MGEsMHgzNiwweDEyLDB4Y2MsMHg4MCwweDgxLDB4MDAsMHgyNCwweGMwLDB4MGIsMHgzMiwweDA2LDB4Y2MsMHgwMCB9LAotICAxNiwgMHhiMzQwLCAwLCB7MHg4MCwweDg4LDB4NjQsMHg2MCwweDI4LDB4MTAsMHgwMiwweDAyLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMzUwLCAwLCB7MHhhMCwweDAxLDB4MTAsMHgxMiwweDg0LDB4NDAsMHgyMSwweGM4LDB4MGEsMHg3MiwweDAyLDB4MTAsMHgwMCwweGI3LDB4MDAsMHgyZCB9LAotICAxNiwgMHhiMzYwLCAwLCB7MHhjYywweDA4LDB4MzgsMHgxMiwweDFjLDB4MDAsMHhiMywweDMwLDB4MjAsMHgwMCwweDA4LDB4NzEsMHg4MiwweGZlLDB4MDAsMHhhNCB9LAotICAxNiwgMHhiMzcwLCAwLCB7MHg4MCwweDIxLDB4YzgsMHgwYiwweDcwLDB4MDIsMHhkYywweDAxLDB4ODcsMHgwMCwweDJjLDB4NDIsMHgwOSwweDUxLDB4MDIsMHgyMCB9LAotICAxNiwgMHhiMzgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDEyLDB4MDAsMHhjMiwweDgwLDB4MzEsMHhmOCB9LAotICAxNiwgMHhiMzkwLCAwLCB7MHg0YywweGZjLDB4MTMsMHg5MiwweDA5LDB4YzcsMHg4MCwweDNjLDB4ZWQsMHgxZSwweDc4LDB4MjcsMHgxZSwweDAwLDB4ZjcsMHg4YyB9LAotICAxNiwgMHhiM2EwLCAwLCB7MHg3OSwweDIwLDB4MDgsMHg3YSwweDAzLDB4ZGUsMHg4MSwweDg0LDB4ODAsMHgzZCwweGUwLDB4MGUsMHg3OCwweDAzLDB4ZmUsMHgyMCB9LAotICAxNiwgMHhiM2IwLCAwLCB7MHhjNSwweDgxLDB4MzUsMHg2MCwweDJjLDB4NTgsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiM2MwLCAwLCB7MHgwOCwweDFkLDB4ODAsMHgwMCwweGY4LDB4MDQsMHgzZSwweGQwLDB4MGYsMHhiMCwweDEzLDB4ZTAsMHgwMCwweGZiLDB4MDIsMHgzYSB9LAotICAxNiwgMHhiM2QwLCAwLCB7MHhkMCwweDBmLDB4YTAsMHgwYiwweGFjLDB4NDAsMHhmYiwweDAwLDB4M2EsMHgwMCwweDJmLDB4YjAsMHgwMywweGNjLDB4MDAsMHhmMCB9LAotICAxNiwgMHhiM2UwLCAwLCB7MHgwMCwweDNhLDB4YzQsMHgwZiwweGIwLDB4MDMsMHhmYywweDQxLDB4ZjMsMHgwMCwweDNhLDB4NDAsMHgwZiwweDUwLDB4OTMsMHhjMiB9LAotICAxNiwgMHhiM2YwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGY2LDB4MDAsMHhjYywweDgxLDB4M2YsMHhmYyB9LAotICAxNiwgMHhiNDAwLCAwLCB7MHgxYywweGY4LDB4MDMsMHg3NiwweDQwLDB4ZWYsMHg5MiwweDNmLDB4ZTQsMHg4YywweGY4LDB4MDMsMHhiZiwweDEwLDB4ZmYsMHg4MCB9LAotICAxNiwgMHhiNDEwLCAwLCB7MHhiMywweDIwLDB4MGUsMHhmOSwweDEzLDB4ZmUsMHgyNCwweGZkLDB4OTQsMHgzNywweGUwLDB4MWMsMHhmOSwweDAzLDB4ZWUsMHgwMCB9LAotICAxNiwgMHhiNDIwLCAwLCB7MHhjZCwweDgwLDB4YjMsMHhlMCwweDBjLDB4NTgsMHgwMiwweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNDMwLCAwLCB7MHhhOCwweDExLDB4OTQsMHg0MCwweDgwLDB4MDAsMHgyZiwweGM0LDB4MDgsMHg3MiwweDAyLDB4ZGQsMHgwOCwweGQ3LDB4MDAsMHgyZCB9LAotICAxNiwgMHhiNDQwLCAwLCB7MHhjYywweDA4LDB4ZGUsMHgwMywweDVjLDB4MDAsMHhiNywweDA0LDB4MjEsMHg4MCwweGM4LDB4NzAsMHg4MywweGRjLDB4MDAsMHhiNCB9LAotICAxNiwgMHhiNDUwLCAwLCB7MHhhMCwweDJmLDB4YzAsMHgwYywweDcwLDB4MDIsMHhkZSwweDgwLDB4ODcsMHgwMCwweDIxLDB4YzIsMHgwYSwweDUxLDB4NDIsMHgyYSB9LAotICAxNiwgMHhiNDYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHg4NCwweDAwLDB4MmQsMHhjOCB9LAotICAxNiwgMHhiNDcwLCAwLCB7MHg0OCwweDcwLDB4MDIsMHg1NCwweDBjLDB4YTcsMHgwMCwweDJjLDB4YzAsMHg4OSwweDcyLDB4MDIsMHg1YywweDAwLDB4YjMsMHgxMCB9LAotICAxNiwgMHhiNDgwLCAwLCB7MHgyMCwweDAwLDB4MGEsMHg3MCwweDA2LDB4ZGMsMHgwMCwweGI0LDB4MjAsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZGMsMHg4MCB9LAotICAxNiwgMHhiNDkwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4NTAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNGEwLCAwLCB7MHgyMCwweDE0LDB4YzAsMHgwMCwweDgwLDB4MDAsMHgyZSwweGMwLDB4MDgsMHgzMCwweDAyLDB4YzQsMHgwOCwweGEyLDB4NDIsMHgyYyB9LAotICAxNiwgMHhiNGIwLCAwLCB7MHhjMSwweDA5LDB4MjAsMHgwMiwweDRjLDB4MDAsMHhiMywweDAwLDB4MjAsMHg4MCwweDA4LDB4M2MsMHgyMiwweDhjLDB4MjAsMHhiMCB9LAotICAxNiwgMHhiNGMwLCAwLCB7MHgwOCwweDJlLDB4ZTAsMHgwOCwweDM4LDB4MTAsMHhjZiwweDBhLDB4OTMsMHg0MCwweGEwLDB4ZjAsMHgwYSwweDEwLDB4MDIsMHgwOCB9LAotICAxNiwgMHhiNGQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGE4LDB4MDAsMHhjMSwweDAwLDB4M2YsMHhjMCB9LAotICAxNiwgMHhiNGUwLCAwLCB7MHgyYywweGYwLDB4MDMsMHg2OCwweDAwLDB4YWEsMHgwMCwweDNmLDB4YzAsMHgyZCwweDgwLDB4MDMsMHg3YywweDAwLDB4ZmYsMHgwMCB9LAotICAxNiwgMHhiNGYwLCAwLCB7MHgzMiwweDAwLDB4MGUsMHhiMCwweDEyLDB4ZWQsMHgyNCwweGZhLDB4MDgsMHgyNywweGM4LDB4MTAsMHhiOCwweGEyLDB4ZmYsMHg2MCB9LAotICAxNiwgMHhiNTAwLCAwLCB7MHg5OCwweGEwLDB4YTIsMHhlMCwweDBjLDB4NTAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNTEwLCAwLCB7MHg4MCwweDAwLDB4YzksMHgwNiwweGY4LDB4NDEsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTksMHgxMCwweDVhLDB4MjAsMHgzZSB9LAotICAxNiwgMHhiNTIwLCAwLCB7MHhjMCwweDBlLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmMywweDAwLDB4N2UsMHgwMSwweDBmLDB4YjAsMHg5MywweGVkLDB4MDAsMHhmOCB9LAotICAxNiwgMHhiNTMwLCAwLCB7MHg0MCwweDNlLDB4YzAsMHgwZSwweGIwLDB4MDMsMHhmYywweDAwLDB4ZTMsMHgwOCwweDNjLDB4YzIsMHgwZiwweGQwLDB4MTMsMHhlMCB9LAotICAxNiwgMHhiNTQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGYzLDB4MDIsMHhjYywweDAwLDB4M2IsMHhjMiB9LAotICAxNiwgMHhiNTUwLCAwLCB7MHgwYywweGYwLDB4MjMsMHhhZSwweDQwLDB4ZGYsMHg4MSwweDM5LDB4YzAsMHgwNiwweGQwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwNCB9LAotICAxNiwgMHhiNTYwLCAwLCB7MHgzMSwweDQxLDB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGNjLDB4YTAsMHgzNywweGMyLDB4MGMsMHhmMCwweDAzLDB4N2MsMHgwNCB9LAotICAxNiwgMHhiNTcwLCAwLCB7MHhjZCwweDAwLDB4MzMsMHhmMCwweDBjLDB4ZDAsMHgwMywweDA4LDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNTgwLCAwLCB7MHg4MSwweDA0LDB4NjAsMHgwMCwweDg4LDB4ODAsMHgyMiwweGMwLDB4MGEsMHhiMCwweDAyLDB4ZTksMHgwMCwweGFiLDB4NDQsMHgyZSB9LAotICAxNiwgMHhiNTkwLCAwLCB7MHhjMCwweDA4LDB4ODgsMHgwMiwweGVjLDB4MDAsMHhiYiwweDAwLDB4YTIsMHg3MCwweDBhLDB4YjQsMHgwMiwweGNjLDB4MDAsMHhhMCB9LAotICAxNiwgMHhiNWEwLCAwLCB7MHgyMCwweDIyLDB4YzAsMHgwZiwweGJjLDB4MDIsMHhjYywweDBhLDB4OGIsMHg4MCwweGEyLDB4YzAsMHgwZCwweDkwLDB4MDIsMHgyMCB9LAotICAxNiwgMHhiNWIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDIwLDB4MDAsMHg4OSwweDgwLDB4MmEsMHhjMCB9LAotICAxNiwgMHhiNWMwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHhjYywweDA2LDB4ODgsMHg2MCwweDJlLDB4YzAsMHgwYSwweDk4LDB4MDYsMHhlYywweDAxLDB4YmIsMHgwMCB9LAotICAxNiwgMHhiNWQwLCAwLCB7MHgyMiwweDMxLDB4MDIsMHhiMiwweDAyLDB4ZWMsMHhhMCwweDhhLDB4MDAsMHgyNiwweGMwLDB4NDgsMHhhOCwweDAyLDB4ZWMsMHgwNCB9LAotICAxNiwgMHhiNWUwLCAwLCB7MHhhOSwweDgwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNWYwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweGMwLDB4MGEsMHgzMCwweDQyLDB4Y2MsMHgwMCwweDgwLDB4MDEsMHgyYyB9LAotICAxNiwgMHhiNjAwLCAwLCB7MHhjMCwweDFhLDB4MTIsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHgwMCwweDRhLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhhMCB9LAotICAxNiwgMHhiNjEwLCAwLCB7MHgwMCwweDA4LDB4YzAsMHgwYiwweDIwLDB4MDYsMHhlYywweGEwLDB4YTMsMHgwMCwweGEwLDB4NDAsMHgyOSwweDEwLDB4MDAsMHgwMiB9LAotICAxNiwgMHhiNjIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhjOCwweDUwLDB4M2IsMHhjMCB9LAotICAxNiwgMHhiNjMwLCAwLCB7MHgwYywweGIwLDB4MDMsMHhhYywweDAwLDB4YzksMHgwMCwweDNiLDB4YzAsMHgwZSwweDkyLDB4ODMsMHhmYywweDAwLDB4YmYsMHgwMCB9LAotICAxNiwgMHhiNjQwLCAwLCB7MHgxMiwweDAwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweDg4LDB4MjYsMHgxNiwweGMwLDB4MGMsMHg4MCwweDE3LDB4NWMsMHg4MCB9LAotICAxNiwgMHhiNjUwLCAwLCB7MHhlOSwweDAxLDB4MzIsMHg0MCwweDJjLDB4ZDAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNjYwLCAwLCB7MHhhMCwweDFkLDB4ZDAsMHgwMCwweGZjLDB4MjAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZjLDB4MDAsMHgzZiB9LAotICAxNiwgMHhiNjcwLCAwLCB7MHhjMCwweDBkLDB4ODAsMHgwMywweGZjLDB4MDgsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MTAsMHhmOCB9LAotICAxNiwgMHhiNjgwLCAwLCB7MHg0MCwweDM3LDB4YzAsMHgwZSwweGUwLDB4MjEsMHhmYywweDA4LDB4ZGYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhiNjkwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4YzAsMHhmZiwweDIxLDB4NzEsMHgyNCB9LAotICAxNiwgMHhiNmEwLCAwLCB7MHgwZiwweGYxLDB4ODMsMHhmMiwweDQwLDB4ZmYsMHgwMCwweDM3LDB4YzQsMHg5ZiwweGYyLDB4NDcsMHgzZCwweDA0LDB4YzcsMHgyMCB9LAotICAxNiwgMHhiNmIwLCAwLCB7MHgzMywweGMwLDB4MGMsMHg3OCwweDIzLDB4ZmUsMHg0MCwweGU4LDB4MTAsMHgyNywweGM0LDB4MGYsMHhmMiwweDEzLDB4M2MsMHg4NCB9LAotICAxNiwgMHhiNmMwLCAwLCB7MHhjNCwweDgxLDB4MzMsMHgyMCwweDRjLDB4ZjAsMHgyMywweDcwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNmQwLCAwLCB7MHg4MCwweDEwLDB4ZWQsMHg0MCwweGJmLDB4NTQsMHg2MiwweGM4LDB4MGIsMHhmNiwweDAyLDB4ZTAsMHgwMCwweGJiLDB4ZDAsMHgyMiB9LAotICAxNiwgMHhiNmUwLCAwLCB7MHhmMCwweDFmLDB4ZjksMHgxMiwweDNkLDB4ODAsMHg5ZiwweDgxLDB4MmIsMHhlMCwweDBhLDB4YjgsMHgxMiwweGU4LDB4MDAsMHg4ZiB9LAotICAxNiwgMHhiNmYwLCAwLCB7MHgwNCwweDIyLDB4ZDAsMHgwOCwweGIzLDB4OGEsMHhiZiwweDQyLDB4OGIsMHg4MiwweDIyLDB4ZTAsMHgyOCwweDhjLDB4MDIsMHgyMCB9LAotICAxNiwgMHhiNzAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiMywweDI4LDB4MjgsMHgwOCB9LAotICAxNiwgMHhiNzEwLCAwLCB7MHgwYiwweDMwLDB4MDYsMHg4MCwweDgwLDB4YjMsMHgwMiwweDI0LDB4ZDEsMHgwYiwweDMwLDB4MDIsMHg4ZCwweDgwLDB4OTMsMHgxMCB9LAotICAxNiwgMHhiNzIwLCAwLCB7MHgyMCwweGNlLDB4OGIsMHgzMCwweDAyLDB4Y2MsMHg4NCwweGExLDB4MjEsMHgyYywweGNjLDB4MGEsMHgzMCwweDBhLDB4NGMsMHgwMCB9LAotICAxNiwgMHhiNzMwLCAwLCB7MHg5MywweDAwLDB4MjgsMHhjMCwweDA4LDB4M2MsMHgwMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNzQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgxMCwweGJiLDB4MDIsMHg2YSwweGUwLDB4MGIsMHhiMCwweDAyLDB4ZTEsMHgwOCwweGJiLDB4MDQsMHgyYSB9LAotICAxNiwgMHhiNzUwLCAwLCB7MHhjMCwweDBhLDB4YjAsMHgxMiwweDhjLDB4MDAsMHg5YiwweDAwLDB4MmEsMHhjMCwweDBiLDB4YjEsMHgwNiwweGM4LDB4ODAsMHg4YiB9LAotICAxNiwgMHhiNzYwLCAwLCB7MHg4MiwweDZhLDB4YzEsMHgwYSwweDMwLDB4MDIsMHhhYywweDE4LDB4ODgsMHgxMCwweDJhLDB4NDgsMHgwOCwweDgwLDB4MDIsMHgzMCB9LAotICAxNiwgMHhiNzcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhmYiwweDAwLDB4YWEsMHgzMCB9LAotICAxNiwgMHhiNzgwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhhOCwweDAwLDB4ZjMsMHgwMSwweGI2LDB4YzEsMHgwYiwweGIwLDB4MDIsMHhhYywweDA4LDB4NGIsMHgwMCB9LAotICAxNiwgMHhiNzkwLCAwLCB7MHhiMiwweGMwLDB4MGYsMHhiOCwweDAyLDB4ZWMsMHgxMCwweGE5LDB4ODEsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MGMsMHgwMCB9LAotICAxNiwgMHhiN2EwLCAwLCB7MHhjYiwweGEwLDB4MTgsMHhkMCwweDBjLDB4YjAsMHgwMywweDEwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiN2IwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwOCwweGY3LDB4MDAsMHgzNywweDAwLDB4MGYsMHhmMCwweDAzLDB4ZmQsMHgwMCwweGZmLDB4MDAsMHgzNyB9LAotICAxNiwgMHhiN2MwLCAwLCB7MHhjMCwweDBmLDB4YjAsMHgwNywweDdjLDB4MDAsMHhlNywweDAwLDB4M2UsMHhjMCwweDBhLDB4ZjAsMHgwMywweGZlLDB4MDAsMHhmNyB9LAotICAxNiwgMHhiN2QwLCAwLCB7MHgwMCwweDM2LDB4YzAsMHgwYywweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHg4MCwweDM3LDB4ZTAsMHgwZiwweGEwLDB4MDMsMHhiOCB9LAotICAxNiwgMHhiN2UwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhkYiwweDAwLDB4MzYsMHgwMCB9LAotICAxNiwgMHhiN2YwLCAwLCB7MHgwZSwweGIwLDB4MDMsMHg2OSwweDAwLDB4ZGIsMHgwOSwweDNhLDB4YzAsMHgxZiwweDMwLDB4MjMsMHhlYywweDA4LDB4Y2IsMHgyMCB9LAotICAxNiwgMHhiODAwLCAwLCB7MHgzNCwweGMwLDB4MmYsMHhiMCwweDAzLDB4ZWMsMHg0MCwweGViLDB4NDgsMHgzZSwweGM0LDB4NGQsMHhiMCwweDhiLDB4NmMsMHgwMCB9LAotICAxNiwgMHhiODEwLCAwLCB7MHhjYiwweDAwLDB4MzIsMHg5MCwweDBmLDB4MzAsMHgwMywweDkwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiODIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDhmLDB4MDAsMHgyMiwweDAwLDB4NDgsMHhmMCwweDIyLDB4MmMsMHgwMCwweDhmLDB4MDAsMHgyMyB9LAotICAxNiwgMHhiODMwLCAwLCB7MHhlMCwweDhiLDB4ZjUsMHgxMCwweDNjLDB4MDAsMHg4ZiwweDgwLDB4MjMsMHhmMCwweDgwLDB4OTgsMHgwMywweDJkLDB4NDQsMHhkYiB9LAotICAxNiwgMHhiODQwLCAwLCB7MHgwMCwweDIzLDB4ZDQsMHgwOCwweGY4LDB4MDIsMHgzYywweDAwLDB4ODMsMHgwMCwweDIyLDB4YzAsMHgwYiwweGE0LDB4ODIsMHgzMiB9LAotICAxNiwgMHhiODUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHg5MywweDAwLDB4MjQsMHgwMCB9LAotICAxNiwgMHhiODYwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHg4NCwweDAwLDB4YjMsMHgwMSwweDI4LDB4ZjYsMHgwOSwweDM0LDB4MzIsMHg4YywweDAxLDB4YjMsMHhkMCB9LAotICAxNiwgMHhiODcwLCAwLCB7MHgyNCwweGU4LDB4MGEsMHgzMSwweDBhLDB4ODYsMHgwMCwweDgzLDB4MDAsMHgyYSwweGUwLDB4MDAsMHgzMCwweDAyLDB4OGMsMHgwMCB9LAotICAxNiwgMHhiODgwLCAwLCB7MHg4MywweDAwLDB4MjgsMHhjMCwweDg5LDB4MzgsMHhhMiwweDc4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiODkwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweDk3LDB4OTQsMHgyMywweGUwLDB4MDksMHgzOCwweDAyLDB4MzIsMHgwMCwweDk3LDB4YTEsMHgyMSB9LAotICAxNiwgMHhiOGEwLCAwLCB7MHhlNCwweDBiLDB4NzgsMHgwMiwweDFlLDB4NDAsMHhiNywweGEwLDB4MjUsMHhlYywweDA4LDB4ZmMsMHgwMiwweDNhLDB4MDAsMHg5MyB9LAotICAxNiwgMHhiOGIwLCAwLCB7MHhiOCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4ODIsMHg5ZSwweDQwLDB4ODcsMHhjMCwweDI5LDB4YTAsMHgwYiwweDU4LDB4MDIsMHg0OCB9LAotICAxNiwgMHhiOGMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDJjLDB4MDAsMHhkYiwweDAwLDB4MzQsMHgyMCB9LAotICAxNiwgMHhiOGQwLCAwLCB7MHgwZiwweDNhLDB4MDMsMHg4ZSwweDAwLDB4ZjMsMHhiMCwweDI4LDB4YzQsMHgwYiwweDNhLDB4MDMsMHhhZSwweDQwLDB4ZjMsMHhhMCB9LAotICAxNiwgMHhiOGUwLCAwLCB7MHgzNCwweGVlLDB4MGYsMHgzMCwweDIzLDB4ODQsMHgwMCwweGUzLDB4ZjAsMHgzOCwweGMwLDB4MGMsMHhiMCwweDBiLDB4OGUsMHg0MiB9LAotICAxNiwgMHhiOGYwLCAwLCB7MHhjMywweDAwLDB4MzgsMHhjMCwweDBmLDB4MzAsMHg2MywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOTAwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGViLDB4NDIsMHgzYSwweGM0LDB4MWUsMHhiMSwweDA3LDB4ODgsMHhkMSwweGUzLDB4MDAsMHgzZiB9LAotICAxNiwgMHhiOTEwLCAwLCB7MHhjNSwweDhmLDB4ZjEsMHg2MywweGFjLDB4MTAsMHhjYiwweDUwLDB4M2IsMHhjMywweDBmLDB4ZDEsMHgwMywweGM4LDB4MDAsMHhiYiB9LAotICAxNiwgMHhiOTIwLCAwLCB7MHgyMCwweDNiLDB4YzAsMHgyZSwweGYxLDB4MDMsMHgxYywweDAwLDB4ZmYsMHgwMCwweDM3LDB4YzAsMHg0ZiwweGQxLDB4MDMsMHg5MCB9LAotICAxNiwgMHhiOTMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4NDAsMHhmYiwweDQ0LDB4YjIsMHhjMCB9LAotICAxNiwgMHhiOTQwLCAwLCB7MHg0ZiwweGIzLDB4NDMsMHgyNCwweDAwLDB4ZGIsMHgxMCwweDM2LDB4YzAsMHg0YywweGJlLDB4MjIsMHg2ZCwweDIwLDB4Y2IsMHg1MCB9LAotICAxNiwgMHhiOTUwLCAwLCB7MHgzZSwweGM5LDB4NGMsMHhiMCwweDEzLDB4MjQsMHgwMCwweGNmLDB4MjAsMHgzMywweGMwLDB4M2QsMHhmMCwweDIzLDB4MmMsMHhjMCB9LAotICAxNiwgMHhiOTYwLCAwLCB7MHhkOCwweDAwLDB4M2UsMHg0MCwweDhmLDB4MzAsMHgwMywweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOTcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwNCwweGI3LDB4NjAsMHgyMSwweGMxLDB4OGIsMHhmMCwweGEyLDB4MTQsMHgxMCwweDg3LDB4MDAsMHgwZiB9LAotICAxNiwgMHhiOTgwLCAwLCB7MHhjOCwweDBkLDB4NzEsMHgwYSwweDFkLDB4MDAsMHg4NywweDAwLDB4MmMsMHhjYywweDQ4LDB4NzAsMHgyYSwweDljLDB4MDAsMHg4NyB9LAotICAxNiwgMHhiOTkwLCAwLCB7MHgwYywweDIxLDB4YzAsMHgwYywweDcyLDB4MDIsMHgwYywweGEyLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhiOWEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiMywweDgwLDB4MjEsMHhlMCB9LAotICAxNiwgMHhiOWIwLCAwLCB7MHgwYiwweDdhLDB4MDIsMHhkZSwweDAwLDB4YjcsMHg4MSwweDA1LDB4ZTQsMHgwOCwweDc5LDB4MDIsMHg1YywweDgwLDB4ODcsMHhhMCB9LAotICAxNiwgMHhiOWMwLCAwLCB7MHgyZCwweGUwLDB4MDgsMHhmOCwweDA2LDB4YjYsMHgwMCwweDg3LDB4ODAsMHgyMCwweGU0LDB4MGEsMHg3YiwweDEyLDB4MWUsMHg5MCB9LAotICAxNiwgMHhiOWQwLCAwLCB7MHg5NywweDg4LDB4MmQsMHhlMCwweDBiLDB4NzgsMHgwZSwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOWUwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyMCwweGQwLDB4MGIsMHhiMCwweDAyLDB4NmUsMHgzNCwweGEzLDB4MDAsMHgyYyB9LAotICAxNiwgMHhiOWYwLCAwLCB7MHhjMSwweDA5LDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCwweDQ4LDB4MTAsMHgwMiwweDhkLDB4ODAsMHg4MyB9LAotICAxNiwgMHhiYTAwLCAwLCB7MHhjMCwweDAwLDB4YzAsMHg4YSwweDMwLDB4MTIsMHgwYywweDAwLDB4ODAsMHgwMCwweDJjLDB4MTYsMHgwYiwweDM4LDB4MDIsMHgxMiB9LAotICAxNiwgMHhiYTEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmYSwweDAwLDB4MzMsMHg4OCB9LAotICAxNiwgMHhiYTIwLCAwLCB7MHgwZiwweGEwLDB4MDMsMHg3OSwweDkwLDB4ZmEsMHgwMSwweDM2LDB4ODAsMHgxYywweGEwLDB4MDMsMHg2OCwweDAwLDB4Y2EsMHgwMCB9LAotICAxNiwgMHhiYTMwLCAwLCB7MHgzZSwweDgxLDB4MmMsMHhhMCwweDBiLDB4YjksMHgwYywweGNlLDB4ZTIsMHhiMiwweDgwLDB4OGUsMHhhMCwweDBiLDB4MjgsMHgwMCB9LAotICAxNiwgMHhiYTQwLCAwLCB7MHhkYSwweDgwLDB4M2MsMHhiMCwweDBmLDB4ZTAsMHg4MywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYTUwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGYwLDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgyZSB9LAotICAxNiwgMHhiYTYwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHgyMywweGEwLDB4MDAsMHhmMCwweDQwLDB4M2UsMHgxMCwweDBmLDB4ODQsMHgwMywweGUxLDB4MDIsMHhmOCB9LAotICAxNiwgMHhiYTcwLCAwLCB7MHg0OCwweDNlLDB4MTAsMHgwYywweDgwLDB4MDMsMHhjMCwweDEwLDB4ZjgsMHg4MCwweDNlLDB4MDAsMHgwZiwweDAwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhiYTgwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhkOSwweDAwLDB4MzYsMHg0MiB9LAotICAxNiwgMHhiYTkwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyNCwweDE4LDB4ZjksMHgxMCwweDNjLDB4NDgsMHg2OCwweDkyLDB4MTMsMHhlNCwweDAwLDB4YTksMHgxMSB9LAotICAxNiwgMHhiYWEwLCAwLCB7MHhiMiwweDYwLDB4MGUsMHg5MSwweDAzLDB4MjYsMHgwMCwweGM5LDB4MDAsMHgzMiwweDYwLDB4MGMsMHgxMCwweDAzLDB4MjQsMHgwOCB9LAotICAxNiwgMHhiYWIwLCAwLCB7MHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgyMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYWMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgwOCwweDg5LDB4MDAsMHgyZSB9LAotICAxNiwgMHhiYWQwLCAwLCB7MHg0MiwweDQ4LDB4OTQsMHgwMiwweGU0LDB4MDAsMHg4OSwweDgwLDB4MjIsMHg3MCwweDA4LDB4MTQsMHgyMiwweGE0LDB4MDIsMHg4OSB9LAotICAxNiwgMHhiYWUwLCAwLCB7MHg0MiwweDJhLDB4NzAsMHgyOCwweDkwLDB4MGEsMHgyNCwweDAwLDB4YTksMHgwMCwweDJlLDB4NDAsMHgyOCwweDkwLDB4MDIsMHhhMCB9LAotICAxNiwgMHhiYWYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg5OSwweDAwLDB4MjYsMHhjMCB9LAotICAxNiwgMHhiYjAwLCAwLCB7MHgwMywweDkwLDB4MDIsMHgyNCwweDAxLDB4YTksMHgwMCwweDBlLDB4NDAsMHgwYSwweDkwLDB4NDYsMHhjNCwweDBhLDB4ODksMHgwMCB9LAotICAxNiwgMHhiYjEwLCAwLCB7MHgyMCwweDQ4LDB4MGEsMHg5MCwweDAyLDB4MDUsMHg4MCwweDgxLDB4NDEsMHhhMCwweDU4LDB4ODgsMHg5MCwweDAyLDB4MjQsMHgwOCB9LAotICAxNiwgMHhiYjIwLCAwLCB7MHg4ZCwweDgwLDB4MmYsMHhjMCwweDA4LDB4OTgsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYjMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyMCwweDQwLDB4MGIsMHgxMiwweDAyLDB4ODQsMHgwMCwweDgxLDB4MjQsMHgyYyB9LAotICAxNiwgMHhiYjQwLCAwLCB7MHg1OCwweDBhLDB4MzIsMHgyMiwweGM1LDB4ODQsMHhhMSwweDAwLDB4MjAsMHg1MCwweDA4LDB4YjAsMHgwMiwweDg1LDB4MDgsMHg4MSB9LAotICAxNiwgMHhiYjUwLCAwLCB7MHg0MCwweDIwLDB4NWEsMHgwOCwweDE2LDB4ODIsMHgwNCwweDAwLDB4YTUsMHgwMCwweDJkLDB4NDAsMHgwOCwweDEyLDB4ODIsMHg4MiB9LAotICAxNiwgMHhiYjYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUwLDB4MzYsMHgxNCB9LAotICAxNiwgMHhiYjcwLCAwLCB7MHgwZiwweDg1LDB4MjMsMHgwMSwweDQwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgwZSwweDgwLDB4NDMsMHhjMCwweDA4LDB4Y2EsMHgwMCB9LAotICAxNiwgMHhiYjgwLCAwLCB7MHgzMiwweDgwLDB4MGUsMHg4MCwweDAzLDB4MjAsMHgwMCwweGMwLDB4MDAsMHgzMiwweDA4LDB4MmMsMHgwMiwweDAzLDB4MjAsMHgwOCB9LAotICAxNiwgMHhiYjkwLCAwLCB7MHhjOCwweDAwLDB4M2YsMHgwMCwweDBjLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYmEwLCAwLCB7MHg5OCwweDFkLDB4ZTQsMHg0MCwweGY5LDB4MTAsMHgzZiwweDQwLDB4MGYsMHg5MSwweDQzLDB4ZjQsMHgwNCwweGY5LDB4MTAsMHgzZSB9LAotICAxNiwgMHhiYmIwLCAwLCB7MHg0NCwweDBkLDB4MTEsMHgwMywweGU0LDB4NDQsMHg1OSwweDQwLDB4M2UsMHg1MCwweDRmLDB4NTAsMHg0MywweGQ0LDB4MDIsMHhmZCB9LAotICAxNiwgMHhiYmMwLCAwLCB7MHg0MCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MGIsMHhlNSwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHg0ZiwweGQwLDB4MDMsMHhlNiB9LAotICAxNiwgMHhiYmQwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDY2LDB4NjAsMHhjOSwweGUwLDB4MzIsMHg0NCB9LAotICAxNiwgMHhiYmUwLCAwLCB7MHgwZiwweDljLDB4MDMsMHhlNCwweDAwLDB4ZGQsMHg4NCwweDNmLDB4NjgsMHg4ZiwweGQ4LDB4NDIsMHhlNiwweGEwLDB4ZGQsMHhhNCB9LAotICAxNiwgMHhiYmYwLCAwLCB7MHgzMywweDY4LDB4MGQsMHg3MCwweDAzLDB4MjUsMHgwMCwweGM5LDB4ZTAsMHhiMiwweDY4LDB4MGMsMHg5YSwweGMzLDB4MjYsMHgwMCB9LAotICAxNiwgMHhiYzAwLCAwLCB7MHg5OSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OWEsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYzEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHgwMCwweDg4LDB4ODAsMHhhYSwweDIwLDB4OGIsMHg4OCwweDAyLDB4ZTIsMHg4OCwweGI4LDB4MDEsMHgyZSB9LAotICAxNiwgMHhiYzIwLCAwLCB7MHgwMCwweDBiLDB4ODQsMHgwMiwweGUyLDB4YjAsMHg4OCwweDUwLDB4MjIsMHgxNCwweDA4LDB4ODAsMHgwMiwweDgyLDB4ODAsMHg4OCB9LAotICAxNiwgMHhiYzMwLCAwLCB7MHhlMCwweGI2LDB4M2EsMHgwOCwweGNlLDB4YTIsMHgyMSwweDA4LDB4ODgsMHgwMCwweDJlLDB4MDAsMHgwYiwweGM0LDB4MDIsMHgwZSB9LAotICAxNiwgMHhiYzQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDYwLDB4NjgsMHg0OCB9LAotICAxNiwgMHhiYzUwLCAwLCB7MHg1YiwweDE2LDB4MDIsMHhjNCwweDIwLDB4YTEsMHg0MCwweDZjLDB4NTAsMHgwYiwweDE0LDB4MDIsMHhjNCwweDAwLDB4YTEsMHgwMCB9LAotICAxNiwgMHhiYzYwLCAwLCB7MHgyNCwweDQwLDB4MGIsMHg5MCwweDIyLDB4MTQsMHg5MCwweDg1LDB4NDIsMHgyMSwweDUwLDB4NWIsMHg1MCwweDFhLDB4MTUsMHgwMCB9LAotICAxNiwgMHhiYzcwLCAwLCB7MHg5NSwweDAwLDB4MmQsMHg0MCwweDBiLDB4NTEsMHgwYSwweDgyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYzgwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMSwweDg5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDQ2LDB4ZTQsMHgwMCwweGI5LDB4MDEsMHgyZSB9LAotICAxNiwgMHhiYzkwLCAwLCB7MHg0MCwweDBiLDB4OTAsMHgyMCwweGU0LDB4MDAsMHhiOSwweDAwLDB4MjYsMHg0MCwweDE4LDB4YjgsMHgwMiwweGE0LDB4MDIsMHg4ZCB9LAotICAxNiwgMHhiY2EwLCAwLCB7MHgwOCwweDJmLDB4NDAsMHg4YiwweGQwLDB4MDIsMHgyNCwweDAwLDB4OGQsMHgyMCwweDJmLDB4NDgsMHgwYiwweGQwLDB4MDIsMHg4NiB9LAotICAxNiwgMHhiY2IwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHg0MCB9LAotICAxNiwgMHhiY2MwLCAwLCB7MHgwZiwweDkwLDB4MDIsMHhlNCwweDEwLDB4NDksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDIsMHhlNCwweDAwLDB4ZTksMHgwMSB9LAotICAxNiwgMHhiY2QwLCAwLCB7MHgzNiwweDQwLDB4MGYsMHgxOCwweDEzLDB4MjQsMHgxMCwweGM5LDB4ODIsMHgzMiwweDQwLDB4N2YsMHg5MCwweDIzLDB4MjQsMHgwMCB9LAotICAxNiwgMHhiY2UwLCAwLCB7MHhkOSwweDIwLDB4M2UsMHg3MiwweDBmLDB4OTAsMHgwMywweGE4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiY2YwLCAwLCB7MHgyOCwweDAxLDB4ODQsMHgwMiwweGYxLDB4MDEsMHgxNiwweDQwLDB4NGYsMHg5MCwweDAzLDB4ZTUsMHgxMCwweGY5LDB4MDgsMHgyZSB9LAotICAxNiwgMHhiZDAwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgxMywweGU0LDB4MDAsMHhjOSwweDAxLDB4M2EsMHg0MCwweDFmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhiZDEwLCAwLCB7MHgyMCwweDM0LDB4NDAsMHg4YywweDkwLDB4MDMsMHhjNCwweDA4LDB4ZjksMHgwMCwweDNlLDB4NjAsMHgwZiwweDEwLDB4MDMsMHg0YSB9LAotICAxNiwgMHhiZDIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDgsMHhmOCwweDAwLDB4M2UsMHgwMCB9LAotICAxNiwgMHhiZDMwLCAwLCB7MHgwYywweDgwLDB4MDMsMHg2MCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDIsMHg0ZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZDAsMHgwMCB9LAotICAxNiwgMHhiZDQwLCAwLCB7MHgzZSwweDAwLDB4MGUsMHg4MSwweDAzLDB4MzAsMHgwMCwweGNjLDB4NDAsMHgzMywweDAwLDB4MGMsMHhjMCwweDBiLDB4MjAsMHgyMCB9LAotICAxNiwgMHhiZDUwLCAwLCB7MHhlOCwweDAwLDB4M2UsMHgxMCwweDBmLDB4YzAsMHgwMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZDYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwNCwweGJhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweGJlLDB4YzgsMHg2ZiB9LAotICAxNiwgMHhiZDcwLCAwLCB7MHg4MCwweDBiLDB4ZTEsMHgyMiwweGE4LDB4MDAsMHg4ZSwweDIwLDB4MmYsMHg4MCwweDBiLDB4ZTAsMHgyMywweDY4LDB4MDAsMHg4YSB9LAotICAxNiwgMHhiZDgwLCAwLCB7MHgwMCwweDIyLDB4ODAsMHgwOCwweGUwLDB4MDIsMHgyOSwweDAwLDB4OGEsMHgwMCwweDJlLDB4YTgsMHgwYiwweGEwLDB4MDAsMHhjYSB9LAotICAxNiwgMHhiZDkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCB9LAotICAxNiwgMHhiZGEwLCAwLCB7MHgwOSwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHhjMSwweDJjLDB4ZTAsMHgwYiwweDM4LDB4NTYsMHgyYywweDEwLDB4MTMsMHgwMCB9LAotICAxNiwgMHhiZGIwLCAwLCB7MHgyZSwweGMwLDB4MGEsMHgzOCwweDZhLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyMCwweDAwLDB4MDksMHg4MCwweDIyLDB4NGMsMHg0MiB9LAotICAxNiwgMHhiZGMwLCAwLCB7MHhhMywweDAwLDB4MmMsMHhlMCwweDBiLDB4MjQsMHg4MCwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZGQwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHgwOCwweGI3LDB4MjQsMHgyZiwweGUwLDB4MDksMHgzOSwweDAyLDB4MWMsMHgwMSwweGI2LDB4MDAsMHgyZCB9LAotICAxNiwgMHhiZGUwLCAwLCB7MHg5MCwweDBiLDB4NjAsMHg5MiwweDhlLDB4MDAsMHg4NiwweDgyLDB4MmQsMHhjMiwweDBiLDB4ZjAsMHgwMiwweDVjLDB4MDYsMHg4NyB9LAotICAxNiwgMHhiZGYwLCAwLCB7MHgwMCwweDYwLDB4YzAsMHgyOSwweDcwLDB4MDIsMHg1YywweDAwLDB4ODYsMHgwMCwweDJkLDB4YzAsMHgwYiwweDYwLDB4MDIsMHhlOCB9LAotICAxNiwgMHhiZTAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFmLDB4NDAsMHhmMywweGU0LDB4M2QsMHhlOCB9LAotICAxNiwgMHhiZTEwLCAwLCB7MHgwZCwweDc5LDB4MGIsMHgxZSwweGMwLDB4NjcsMHg4MCwweDJkLDB4ZTAsMHgwZiwweDcwLDB4NDMsMHgxZCwweDgwLDB4ZDUsMHgwMCB9LAotICAxNiwgMHhiZTIwLCAwLCB7MHgzZCwweDYwLDB4MGUsMHg3OCwweDAzLDB4MWUsMHgwMCwweGNkLDB4ODAsMHgzMSwweGUwLDB4MGQsMHhjOCwweDAzLDB4NGUsMHgwMCB9LAotICAxNiwgMHhiZTMwLCAwLCB7MHhlNSwweDgwLDB4M2QsMHhlMCwweDBmLDB4NDgsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZTQwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHg4MCwweGZiLDB4MDAsMHg3MCwweGMwLDB4NmUsMHhiNiwweDEzLDB4YWQsMHg0MCwweGZhLDB4MDAsMHgzZSB9LAotICAxNiwgMHhiZTUwLCAwLCB7MHhjMCwweDBmLDB4MjAsMHg0MywweDJkLDB4MTgsMHg1OSwweDAwLDB4M2UsMHgwMCwweDAzLDB4YjAsMHgwYiwweGUwLDB4MDAsMHhmYSB9LAotICAxNiwgMHhiZTYwLCAwLCB7MHgwMCwweGJlLDB4MDAsMHgwZSwweGIwLDB4MTMsMHhhYywweDAwLDB4ZjgsMHgwMCwweDNlLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhiZTcwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4NDAsMHhmZiwweDgwLDB4M2YsMHhlNiB9LAotICAxNiwgMHhiZTgwLCAwLCB7MHgwZiwweGY4LDB4MjMsMHgyZSwweDA0LDB4ZmYsMHg5MCwweDNmLDB4ZTQsMHgwZCwweGJhLDB4MDMsMHhmZiwweDQwLDB4Y2YsMHg4MCB9LAotICAxNiwgMHhiZTkwLCAwLCB7MHgyMiwweGUxLDB4MGMsMHgzOSwweDQzLDB4MzIsMHgxMCwweGVjLDB4OTAsMHgzMywweDIwLDB4OGUsMHhjOCwweDAzLDB4ZjIsMHgwMCB9LAotICAxNiwgMHhiZWEwLCAwLCB7MHhkZiwweDgwLDB4M2YsMHg2MCwweDBmLDB4ZjgsMHgwMywweGMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZWIwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg0MCwweGI3LDB4OTAsMHgzYywweGUwLDB4MGIsMHgzYSwweDAzLDB4NGUsMHg4MCwweGYzLDB4YjEsMHgyZCB9LAotICAxNiwgMHhiZWMwLCAwLCB7MHgwNCwweDRjLDB4MzgsMHgyMywweGFlLDB4MDAsMHg4MCwweDgwLDB4MzQsMHhlOCwweDRkLDB4NzgsMHgwMiwweDNlLDB4ODAsMHg4NyB9LAotICAxNiwgMHhiZWQwLCAwLCB7MHhhMCwweDI5LDB4YzAsMHgwOCwweDcwLDB4MDIsMHhjMCwweDgwLDB4ODYsMHgwMiwweDJkLDB4NDEsMHgwYiwweDcwLDB4MDIsMHhlYSB9LAotICAxNiwgMHhiZWUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4NDgsMHgzNywweDAxLDB4MmQsMHhjOSB9LAotICAxNiwgMHhiZWYwLCAwLCB7MHgwYiwweDcyLDB4MjIsMHgxYywweDg0LDB4YjUsMHgxNiwweDBkLDB4YzQsMHgxOSwweDQwLDB4NDIsMHhkYywweDgwLDB4ODcsMHgwMCB9LAotICAxNiwgMHhiZjAwLCAwLCB7MHgyMCwweGM4LDB4ODgsMHg3MywweDBhLDB4OWMsMHg4MCwweGI1LDB4MDAsMHgyOSwweGMwLDB4MGEsMHg0OCwweDAyLDB4YzAsMHgwMiB9LAotICAxNiwgMHhiZjEwLCAwLCB7MHg5NSwweDAwLDB4MmQsMHg0MiwweDBiLDB4NTgsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZjIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYSwweGUwLDB4MGIsMHgzMCwweDAyLDB4NGMsMHgyMCwweGExLDB4MDEsMHgyNCB9LAotICAxNiwgMHhiZjMwLCAwLCB7MHhjMSwweDA4LDB4MDAsMHgwMiwweDhjLDB4MDAsMHg4MSwweDAwLDB4MjQsMHg4MCwweDA5LDB4MzgsMHgwYSwweDYwLDB4ODAsMHg5MiB9LAotICAxNiwgMHhiZjQwLCAwLCB7MHg0MCwweDJhLDB4MDAsMHgwYSwweDMwLDB4MDIsMHhjMCwweDAwLDB4ODAsMHhjOCwweDJjLDB4NzIsMHgwYiwweDE0LDB4MDIsMHhjOCB9LAotICAxNiwgMHhiZjUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhmZiwweDAwLDB4MmYsMHhmNCB9LAotICAxNiwgMHhiZjYwLCAwLCB7MHg4ZiwweGYwLDB4MDMsMHgzYywweDAwLDB4YjksMHgwMCwweDNlLDB4NDAsMHgwOSwweDkwLDB4MDMsMHhmYywweDAyLDB4YzMsMHgwMSB9LAotICAxNiwgMHhiZjcwLCAwLCB7MHgzMiwweGMwLDB4NDgsMHhiOCwweDEzLDB4YTEsMHgwMCwweGJhLDB4MDAsMHgyYSwweDAwLDB4MGEsMHhhMCwweDA3LDB4ZWMsMHgwMCB9LAotICAxNiwgMHhiZjgwLCAwLCB7MHhkYiwweGM4LDB4M2UsMHg5MCwweDBmLDB4YTIsMHgwMiwweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZjkwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDIsMHgzZSwweGM0LDB4MGYsMHhiMCwweDYzLDB4ZWMsMHgwMSwweGY4LDB4NDAsMHgzZSB9LAotICAxNiwgMHhiZmEwLCAwLCB7MHg0MCwweDBiLDB4ODAsMHgwMywweGNjLDB4MDAsMHhmYSwweDQyLDB4M2UsMHhjMCwweDBmLDB4YjUsMHgwMCwweGFjLDB4NTgsMHhlOSB9LAotICAxNiwgMHhiZmIwLCAwLCB7MHg4MiwweDNlLDB4YzAsMHgxZCwweDkwLDB4MDMsMHhlYywweDA0LDB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhiZmMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MGMsMHhkZiwweDAwLDB4N2YsMHhjMCB9LAotICAxNiwgMHhiZmQwLCAwLCB7MHgyYywweGYwLDB4MDMsMHg3YywweDAxLDB4YzcsMHgwMCwweDMzLDB4NDAsMHg4ZiwweGQwLDB4MDMsMHhmYywweDAwLDB4ZDgsMHgwMCB9LAotICAxNiwgMHhiZmUwLCAwLCB7MHgxNSwweDQ0LDB4MGMsMHhlMCwweDFiLDB4M2MsMHgwMCwweGNiLDB4MGUsMHgzMywweGMwLDB4NWMsMHg2MiwweDAyLDB4MWMsMHgwMiB9LAotICAxNiwgMHhiZmYwLCAwLCB7MHhjNSwweDAwLDB4MmIsMHg4MCwweDBmLDB4YzAsMHg4NywweDgwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMDAwLCAwLCB7MHg4MSwweDQ0LDB4NmMsMHgxMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MDgsMHhiMCwweDUyLDB4MGMsMHgwMSwweGZhLDB4YzQsMHgyMiB9LAotICAxNiwgMHhjMDEwLCAwLCB7MHg2MSwweDBiLDB4ODgsMHgwMywweDZjLDB4MDAsMHg4OCwweDQ3LDB4MmEsMHgwMCwweDBlLDB4MWMsMHgwMiwweDIwLDB4MDIsMHg4OCB9LAotICAxNiwgMHhjMDIwLCAwLCB7MHgwMCwweGFhLDB4MDAsMHgyOCwweDkwLDB4MGEsMHgyYywweDA0LDB4YTgsMHgwMCwweDIyLDB4OTAsMHgwYiwweDgwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhjMDMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMSB9LAotICAxNiwgMHhjMDQwLCAwLCB7MHgwOCwweDMwLDB4MTIsMHg2YywweDAwLDB4ODgsMHg4OCwweDJhLDB4MzAsMHgwYiwweGI4LDB4MDIsMHhlYywweDAwLDB4OWIsMHgwOCB9LAotICAxNiwgMHhjMDUwLCAwLCB7MHgyYSwweDQwLDB4MDgsMHhiOCwweDAyLDB4MjAsMHgwMCwweDgyLDB4MTAsMHgyMiwweDAwLDB4MDgsMHhhMCwweDIyLDB4YTAsMHgwMCB9LAotICAxNiwgMHhjMDYwLCAwLCB7MHg4YiwweDAwLDB4MmEsMHgwMiwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMDcwLCAwLCB7MHgwOCwweDAwLDB4MGMsMHgwMCwweGIzLDB4MjAsMHgyYywweGMyLDB4MDgsMHgzNiwweDAyLDB4MmMsMHhjMCwweGEwLDB4MDgsMHgyMCB9LAotICAxNiwgMHhjMDgwLCAwLCB7MHgwMCwweDBiLDB4MzMsMHg0NiwweGNkLDB4MjgsMHg4MCwweDIwLDB4MjgsMHhjMCwweDBiLDB4MzIsMHgwMiwweDBjLDB4MjAsMHg4MSB9LAotICAxNiwgMHhjMDkwLCAwLCB7MHgzMCwweDI4LDB4YzAsMHgwOCwweDEwLDB4MDIsMHg4MSwweDAwLDB4YWEsMHgwMCwweDI4LDB4MDAsMHgwMywweDMwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhjMGEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDdjLDB4MDAsMHhmYiwweDI4LDB4MmUsMHhjYyB9LAotICAxNiwgMHhjMGIwLCAwLCB7MHgwYywweDcwLDB4NTMsMHg3ZCwweDA5LDB4ODgsMHgwMCwweGJhLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhmZCwweDgwLDB4ZGEsMHg2MCB9LAotICAxNiwgMHhjMGMwLCAwLCB7MHgzYSwweDUwLDB4OGMsMHhhMiwweDgzLDB4MmMsMHg4MCwweDRiLDB4MjAsMHgzMCwweGMwLDB4MjgsMHhhMCwweDAzLDB4YTEsMHgwMCB9LAotICAxNiwgMHhjMGQwLCAwLCB7MHhjOSwweDAwLDB4M2EsMHgwMCwweDBmLDB4OTAsMHgwMywweGMwLDB4MDMsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMGUwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwNCwweGZiLDB4MDAsMHg3ZSwweGM5LDB4MGIsMHhiNiwweDAzLDB4ZmMsMHhjMCwweGY4LDB4MGMsMHgzZiB9LAotICAxNiwgMHhjMGYwLCAwLCB7MHgwMCwweDRmLDB4YzMsMHg0MywweDJjLDB4MDAsMHhiOCwweDM4LDB4M2YsMHg4ZSwweDVlLDB4ZjAsMHg0MywweGUwLDB4MTAsMHhmOCB9LAotICAxNiwgMHhjMTAwLCAwLCB7MHgzMCwweDNmLDB4MDEsMHgwZiwweGQwLDB4MDMsMHg3MCwweDAwLDB4ZmMsMHgwMCwweDM3LDB4MDAsMHgwZCwweGQwLDB4MDcsMHhlOSB9LAotICAxNiwgMHhjMTEwLCAwLCB7MHgwMywweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4ZTAsMHhjYywweDgwLDB4MzMsMHhjMCB9LAotICAxNiwgMHhjMTIwLCAwLCB7MHgwZCwweGYwLDB4ODMsMHhmYywweDgwLDB4ZGMsMHg5NCwweDMzLDB4YzAsMHgxYywweGYxLDB4MDMsMHg3ZCwweDhjLDB4ZmYsMHgzMCB9LAotICAxNiwgMHhjMTMwLCAwLCB7MHgzZiwweDMwLDB4OGYsMHhjOCwweDAzLDB4N2UsMHgxMCwweGNmLDB4OTAsMHgzOSwweGEwLDB4OGQsMHhmOCwweDAzLDB4YWUsMHgwMCB9LAotICAxNiwgMHhjMTQwLCAwLCB7MHhkNSwweDgwLDB4MTMsMHhlMCwweDBjLDB4NTgsMHgwMywweGYwLDB4MDEsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMTUwLCAwLCB7MHg4MCwweDEwLDB4ZGQsMHgwOCwweDg4LDB4MDAsMHgyMywweGM0LDB4MDgsMHhmYywweDAyLDB4ZWMsMHhhOCwweGNiLDB4MjAsMHgyMSB9LAotICAxNiwgMHhjMTYwLCAwLCB7MHhjMiwweDBkLDB4ZjcsMHgxMiwweDFjLDB4NDAsMHhkZiwweDMwLDB4MjIsMHhhMCwweDBiLDB4ODgsMHgwMiwweDJlLDB4MDQsMHhkYiB9LAotICAxNiwgMHhjMTcwLCAwLCB7MHgyMSwweDIyLDB4YzAsMHgwOCwweGI4LDB4MjIsMHgyZSwweDAwLDB4YjksMHg4MCwweDJhLDB4NjAsMHgwYSwweDg4LDB4MDIsMHhlMCB9LAotICAxNiwgMHhjMTgwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHg0NSwweGNjLDB4MTAsMHg4MCwweDJjLDB4MjgsMHhjYSB9LAotICAxNiwgMHhjMTkwLCAwLCB7MHg2OCwweDMwLDB4MDIsMHg4ZCwweDAwLDB4OWIsMHgyMCwweDI4LDB4YzQsMHgwOCwweDMyLDB4MDIsMHhjYywweDEwLDB4YjMsMHgwMCB9LAotICAxNiwgMHhjMWEwLCAwLCB7MHgyNCwweDA4LDB4MGIsMHg4MCwweDQyLDB4NmMsMHgwMCwweDgzLDB4MDAsMHgyYSwweGNhLDB4M2EsMHhiMCwweDAyLDB4OGMsMHgwNCB9LAotICAxNiwgMHhjMWIwLCAwLCB7MHhiMCwweDA0LDB4MjgsMHhjMCwweDA4LDB4MTAsMHgwMiwweGUzLDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMWMwLCAwLCB7MHhjMCwweDE1LDB4OGMsMHgwMiwweDgwLDB4NDAsMHhhYSwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZWMsMHgwMCwweDliLDB4MjAsMHgyYSB9LAotICAxNiwgMHhjMWQwLCAwLCB7MHhjMCwweDg4LDB4YjAsMHgwMiwweGFjLDB4MDAsMHg5YiwweDAwLDB4MjYsMHhlMCwweDAzLDB4ODAsMHg4MiwweDJjLDB4MjgsMHg5YiB9LAotICAxNiwgMHhjMWUwLCAwLCB7MHgyMCwweDIyLDB4ZTEsMHgwYiwweGIyLDB4MDIsMHhhYywweDgwLDB4YjgsMHg4MCwweDJhLDB4YzEsMHgwYSwweDk4LDB4MDIsMHhmMCB9LAotICAxNiwgMHhjMWYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhjOCwweDUwLDB4M2EsMHhjMCB9LAotICAxNiwgMHhjMjAwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHhlYywweDAwLDB4ZGIsMHg4OCwweGJhLDB4YzAsMHgwOCwweGIwLDB4MDMsMHg2YywweDA4LDB4ZmIsMHgwMCB9LAotICAxNiwgMHhjMjEwLCAwLCB7MHgzNiwweDYwLDB4MGYsMHg4YywweDYzLDB4NmMsMHgwMCwweGNiLDB4YzAsMHgzYSwweDgwLDB4MGUsMHhiZSwweDAzLDB4YWYsMHg4NCB9LAotICAxNiwgMHhjMjIwLCAwLCB7MHg3OSwweDgwLDB4M2EsMHg4OCwweDA0LDB4OTgsMHgwMSwweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMjMwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGZjLDB4ODAsMHgzNSwweGMwLDB4NGYsMHhmMCwweDAzLDB4ZGMsMHgwMCwweGVmLDB4MDAsMHgzNyB9LAotICAxNiwgMHhjMjQwLCAwLCB7MHhjMCwweGFmLDB4ZjAsMHgwMywweDFjLDB4MDEsMHg2ZiwweDAwLDB4MTMsMHgwMCwweDBmLDB4YzEsMHgyMywweGZjLDB4YjgsMHhmZiB9LAotICAxNiwgMHhjMjUwLCAwLCB7MHgwNCwweDM3LDB4YzAsMHgwYywweGY4LDB4NDMsMHg3ZSwweDA0LDB4ZmQsMHgwMCwweDNmLDB4MDQsMHgwZiwweGQwLDB4MDMsMHhmOCB9LAotICAxNiwgMHhjMjYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhjOCwweDQwLDB4M2EsMHhjMCB9LAotICAxNiwgMHhjMjcwLCAwLCB7MHgwYywweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHg0MCwweDM4LDB4YzEsMHgwZSwweGIwLDB4NDMsMHgyYywweDA4LDB4YzMsMHgwMCB9LAotICAxNiwgMHhjMjgwLCAwLCB7MHgzZSwweDQwLDB4MGUsMHg4MiwweDAzLDB4NmQsMHgwMCwweGRiLDB4NDAsMHgzMiwweGMxLDB4NWYsMHhiNCwweGEzLDB4ZWQsMHgyMCB9LAotICAxNiwgMHhjMjkwLCAwLCB7MHhjOSwweDQwLDB4MzIsMHhlMCwweDhmLDB4OTgsMHg0MywweDkwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMmEwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDg4LDB4MDAsMHgyMywweGMwLDB4MjgsMHhmNSwweGMyLDB4ZmMsMHgwMCwweGIzLDB4MDQsMHgyMyB9LAotICAxNiwgMHhjMmIwLCAwLCB7MHhjMSwweDQ4LDB4ZjAsMHgyMiwweGJjLDB4MDYsMHhhZiwweDAwLDB4MGUsMHg0MCwweDA4LDB4MDAsMHgwMiwweGNkLDB4MDAsMHhiYiB9LAotICAxNiwgMHhjMmMwLCAwLCB7MHgwMSwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhlZSwweDAwLDB4ODEsMHhlMCwweDM0LDB4YTAsMHgwYiwweDkwLDB4MDIsMHgzMiB9LAotICAxNiwgMHhjMmQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDIsMHg4MCwweDAwLDB4MjgsMHhjMCB9LAotICAxNiwgMHhjMmUwLCAwLCB7MHgwOSwweDNjLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgwYSwweGIwLDB4MDIsMHgwYywweDAwLDB4ODMsMHgwMSB9LAotICAxNiwgMHhjMmYwLCAwLCB7MHgyYywweDAwLDB4MGEsMHgwNSwweDAyLDB4Y2QsMHg1OCwweGJiLDB4MDAsMHgyMCwweDAwLDB4MGEsMHgzZCwweDAyLDB4Y2YsMHg0MCB9LAotICAxNiwgMHhjMzAwLCAwLCB7MHgyMSwweDIwLDB4NjAsMHhjMCwweDA5LDB4MTAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMzEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweDg0LDB4ODAsMHgyOCwweGU0LDB4ODgsMHg3OCwweDQyLDB4ZGUsMHgwMCwweGI3LDB4OTAsMHg2NSB9LAotICAxNiwgMHhjMzIwLCAwLCB7MHhlNCwweDg4LDB4N2EsMHg0MiwweDllLDB4NDAsMHhhNywweDkwLDB4MmQsMHhhMCwweDBhLDB4NDgsMHgyMiwweGRlLDB4MDQsMHhiNyB9LAotICAxNiwgMHhjMzMwLCAwLCB7MHg4MCwweDIzLDB4NjAsMHg0OCwweDc4LDB4NDIsMHhmZSwweDgwLDB4YWYsMHg5MCwweDY1LDB4ZTAsMHgwYiwweGU4LDB4MDIsMHhjOCB9LAotICAxNiwgMHhjMzQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhjOCwweDAwLDB4MzgsMHhjMCB9LAotICAxNiwgMHhjMzUwLCAwLCB7MHgwYywweDMwLDB4MDMsMHhjYywweDAwLDB4ZmIsMHgwMCwweDNjLDB4YzAsMHgwZSwweGJhLDB4MDMsMHgwYywweDAwLDB4YzMsMHgwMCB9LAotICAxNiwgMHhjMzYwLCAwLCB7MHgzZSwweDAwLDB4NGUsMHgyMiwweDAyLDB4Y2MsMHhjMCwweGZiLDB4NDAsMHgzMCwweGMwLDB4MGEsMHgzMCwweDAzLDB4Y2UsMHg4MCB9LAotICAxNiwgMHhjMzcwLCAwLCB7MHhlMSwweDQxLDB4MzAsMHhjOSwweDBmLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMzgwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgyMCwweGZjLDB4MDAsMHgzNywweGMyLDB4MGUsMHhmMSwweDIzLDB4ZWMsMHg0MCwweGZmLDB4MDQsMHgzYSB9LAotICAxNiwgMHhjMzkwLCAwLCB7MHhjMCwweDBmLDB4YjAsMHgyMywweGZjLDB4MDAsMHhmZiwweDA0LDB4M2UsMHhjMCwweDBkLDB4YTAsMHgwMywweGZjLDB4NTgsMHhmZiB9LAotICAxNiwgMHhjM2EwLCAwLCB7MHgwMCwweGJmLDB4YzAsMHgwNiwweGYwLDB4ODMsMHhkYywweDYyLDB4ZGYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgxMCB9LAotICAxNiwgMHhjM2IwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVkLDB4ODAsMHhjOSwweDAxLDB4M2UsMHhjMCB9LAotICAxNiwgMHhjM2MwLCAwLCB7MHg4YywweGIyLDB4MDcsMHhhZSwweDA0LDB4Y2IsMHg4MCwweDNhLDB4YzgsMHg0YywweGIyLDB4MDMsMHgyYywweDg0LDB4Y2IsMHgzMCB9LAotICAxNiwgMHhjM2QwLCAwLCB7MHhiMCwweGUwLDB4MGQsMHg4OCwweDBiLDB4MmMsMHgwMCwweGViLDB4MDAsMHgzMCwweDAwLDB4MGMsMHhiYywweDgzLDB4MmQsMHg4MCB9LAotICAxNiwgMHhjM2UwLCAwLCB7MHhmYiwweDAwLDB4MzIsMHhjMCwweDBjLDB4OTAsMHgwMywweGVhLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjM2YwLCAwLCB7MHg0OCwweDExLDB4OWMsMHg0MCwweDg3LDB4MDAsMHgyYywweGNjLDB4MDgsMHg3NiwweDgyLDB4M2MsMHg4MiwweDg3LDB4MDAsMHgyMSB9LAotICAxNiwgMHhjNDAwLCAwLCB7MHhjMiwweDhkLDB4MzIsMHg4MiwweDBkLDB4NGMsMHhhNywweDI4LDB4MjEsMHg4MCwweDA4LDB4NDAsMHgwMiwweDFkLDB4ODAsMHhiZiB9LAotICAxNiwgMHhjNDEwLCAwLCB7MHgyMCwweDM1LDB4NDAsMHgwOSwweDcyLDB4NDMsMHg1YywweGEwLDB4YjcsMHgwMCwweDI5LDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkMiB9LAotICAxNiwgMHhjNDIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg4NCwweDgwLDB4MmQsMHhlMCB9LAotICAxNiwgMHhjNDMwLCAwLCB7MHgwOCwweDc4LDB4MDIsMHhkZSwweGMwLDB4OGYsMHg4MCwweDI4LDB4ZWMsMHgyOCwweDdiLDB4MGEsMHg5ZSwweDk0LDB4ODMsMHg4NCB9LAotICAxNiwgMHhjNDQwLCAwLCB7MHgyMywweGUwLDB4MDksMHg1OCwweDUwLDB4OWUsMHgxMCwweGE3LDB4YjAsMHgyMywweGUwLDB4MGIsMHg3OCwweDAyLDB4MWUsMHgyMCB9LAotICAxNiwgMHhjNDUwLCAwLCB7MHhiNywweDgwLDB4MjEsMHhlMCwweDA5LDB4NzgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNDYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMiwweDgyLDB4MWMsMHgyYywweGMwLDB4MjgsMHgzMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4YzAsMHgyMCB9LAotICAxNiwgMHhjNDcwLCAwLCB7MHhjMCwweDA4LDB4MzAsMHgwMiwweDBjLDB4MDAsMHhhMywweDAwLDB4NjAsMHhkMiwweDA4LDB4MWQsMHgwMiwweDBmLDB4MjAsMHhiYiB9LAotICAxNiwgMHhjNDgwLCAwLCB7MHgyNCwweDI0LDB4YzAsMHgwYiwweDNjLDB4MDIsMHg0ZiwweDAwLDB4YjMsMHg4MCwweDI4LDB4ZDgsMHgwOSwweDMyLDB4MDIsMHhkMiB9LAotICAxNiwgMHhjNDkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxMSwweGE4LDB4MDAsMHhjZSwweDg0LDB4M2UsMHg4MCB9LAotICAxNiwgMHhjNGEwLCAwLCB7MHgwYywweGEwLDB4MDMsMHhlOCwweDAwLDB4Y2UsMHhjMCwweDNhLDB4ODAsMHgwOCwweGEwLDB4MDMsMHhhOCwweDAwLDB4Y2EsMHgwMCB9LAotICAxNiwgMHhjNGIwLCAwLCB7MHgzMywweDgwLDB4MGQsMHhlYywweDAzLDB4M2IsMHg4MCwweGVlLDB4ODIsMHgzMywweDgwLDB4MGEsMHhjMCwweDg3LDB4MTAsMHg0MCB9LAotICAxNiwgMHhjNGMwLCAwLCB7MHhmNiwweGMwLDB4MzMsMHg5MCwweGFkLDB4NjQsMHgwMywweGZhLDB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNGQwLCAwLCB7MHg0OCwweDAwLDB4YzAsMHgwMiwweGY4LDB4MDAsMHgzYywweDAwLDB4MWYsMHgwNCwweDAzLDB4YTAsMHgwNCwweGY4LDB4MzAsMHgzZSB9LAotICAxNiwgMHhjNGUwLCAwLCB7MHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwNCwweDBmLDB4ODAsMHg5MywweGUwLDB4MDAsMHhmOCB9LAotICAxNiwgMHhjNGYwLCAwLCB7MHgxMCwweDNlLDB4MDAsMHgyYywweDg0LDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgxOCwweDNlLDB4MTAsMHgwZSwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhjNTAwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCB9LAotICAxNiwgMHhjNTEwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHhhNCwweDEwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwNCwweDkwLDB4MDMsMHgyNCwweDAwLDB4NDEsMHgwMCB9LAotICAxNiwgMHhjNTIwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MSwweDEzLDB4ZTEsMHgwOCwweGY4LDB4MDAsMHgzMiwweDQwLDB4MDgsMHg4OSwweDgzLDB4YTIsMHgwMCB9LAotICAxNiwgMHhjNTMwLCAwLCB7MHhjOSwweDgwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwYiwweDAyLDB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNTQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMiwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGQsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSB9LAotICAxNiwgMHhjNTUwLCAwLCB7MHg0MCwweDQ4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDhiLDB4OTQsMHg0MiwweGUyLDB4MjAsMHhiOCB9LAotICAxNiwgMHhjNTYwLCAwLCB7MHgwMCwweGEyLDB4NDAsMHgwOCwweDk0LDB4MDIsMHhlNSwweDA0LDB4YTksMHg5MCwweDM0LDB4NjAsMHgwOCwweDkwLDB4MDIsMHgyMCB9LAotICAxNiwgMHhjNTcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MTAsMHg5OSwweDAwLDB4MmUsMHg0MCB9LAotICAxNiwgMHhjNTgwLCAwLCB7MHgwYSwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCwweDI0LDB4NDAsMHgwYSwweDEwLDB4MDIsMHgwNCwweDAwLDB4YTksMHgwMCB9LAotICAxNiwgMHhjNTkwLCAwLCB7MHgyYSwweDQwLDB4MGIsMHg5MCwweDgyLDB4ZTAsMHgwMSwweGI4LDB4MDAsMHgyMCwweDQwLDB4M2EsMHg5MCwweDAyLDB4YTQsMHg0NCB9LAotICAxNiwgMHhjNWEwLCAwLCB7MHg4OSwweDA0LDB4MjIsMHg2MiwweDA4LDB4OTgsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNWIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4YSwweDgxLDB4MDAsMHgyYywweDQ4LDB4MDksMHgzMiwweDA2LDB4NDQsMHg4MCwweGIxLDB4MDAsMHgyYyB9LAotICAxNiwgMHhjNWMwLCAwLCB7MHg0OCwweDBhLDB4MTIsMHgwMiwweDg0LDB4ODAsMHhhMSwweDIwLDB4MjAsMHg1MCwweDBiLDB4MTQsMHgwMiwweGM1LDB4MDAsMHhiMSB9LAotICAxNiwgMHhjNWQwLCAwLCB7MHg0MCwweDIwLDB4NTAsMHgwYSwweDI0LDB4MDIsMHhjOSwweDAwLDB4YTMsMHgwMCwweDI0LDB4NDAsMHgwOCwweDExLDB4MDIsMHgwMiB9LAotICAxNiwgMHhjNWUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUwLDB4M2UsMHgxNCB9LAotICAxNiwgMHhjNWYwLCAwLCB7MHgwZSwweDgwLDB4MDMsMHhlMSwweDQwLDB4ZjgsMHg1MSwweDM2LDB4MTQsMHgyZSwweDg1LDB4NDMsMHgyMSwweDQyLDB4ZTgsMHg1MCB9LAotICAxNiwgMHhjNjAwLCAwLCB7MHgzYSwweDAwLDB4MGYsMHg4MCwweDEyLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzMiwweDAwLDB4MWUsMHg4MCwweDQzLDB4YTAsMHgwMCB9LAotICAxNiwgMHhjNjEwLCAwLCB7MHhjOCwweDAxLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNjIwLCAwLCB7MHg5OCwweDFkLDB4ZTQsMHg0MCwweGZkLDB4MDAsMHgzZSwweDQ0LDB4NGUsMHgxMSwweDAzLDB4YTQsMHg0MCwweGI1LDB4MDAsMHgzZSB9LAotICAxNiwgMHhjNjMwLCAwLCB7MHg0NCwweDBkLDB4OTEsMHgwMywweGU0LDB4NDAsMHhkOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4NTAsMHgwMywweGU1LDB4MDAsMHhmOSB9LAotICAxNiwgMHhjNjQwLCAwLCB7MHg0MCwweDNmLDB4NDAsMHgwZCwweDQ0LDB4MDMsMHhmMSwweDAwLDB4ZjUsMHgwMiwweDNkLDB4YzAsMHgyZiwweGQyLDB4MDMsMHhlNiB9LAotICAxNiwgMHhjNjUwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU3LDB4MDAsMHhlOSwweDAwLDB4MzYsMHg2MCB9LAotICAxNiwgMHhjNjYwLCAwLCB7MHgwZCwweGRhLDB4MDMsMHhlNiwweDQwLDB4ZjksMHg0MCwweDNlLDB4NjgsMHgwYywweDlhLDB4MDMsMHg2NiwweDIwLDB4ODksMHhhMCB9LAotICAxNiwgMHhjNjcwLCAwLCB7MHgzMywweDQwLDB4MGUsMHg5MCwweDA3LDB4YTYsMHgwMCwweGY5LDB4ODAsMHgzZSwweDUwLDB4MGMsMHhjYSwweDAzLDB4ZjMsMHg4MCB9LAotICAxNiwgMHhjNjgwLCAwLCB7MHhjNSwweDAyLDB4MzMsMHg0MCwweDBjLDB4YzAsMHgwMywweGM2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNjkwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHgwNCwweDg4LDB4YTIsMHgyMCwweDM4LDB4MDgsMHg4MCwweDAyLDB4ZTMsMHg0MCwweGIwLDB4ODAsMHgyZSB9LAotICAxNiwgMHhjNmEwLCAwLCB7MHgyOCwweDA4LDB4OGEsMHg4MiwweDIzLDB4ODAsMHg4OCwweDgwLDB4MjIsMHgwMCwweGRiLDB4ODgsMHgwMiwweDYyLDB4MDQsMHhiOCB9LAotICAxNiwgMHhjNmIwLCAwLCB7MHhiMCwweDJlLDB4YTgsMHg4OCwweDhlLDB4YTIsMHhlYSwweDgwLDB4ODgsMHgwMCwweDJhLDB4MDAsMHgyOCwweDg4LDB4MDMsMHg4ZSB9LAotICAxNiwgMHhjNmMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4ODIsMHhhOSwweDA4LDB4MmMsMHg1MiB9LAotICAxNiwgMHhjNmQwLCAwLCB7MHgwYiwweDE0LDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMSwweDBjLDB4NTIsMHg4OCwweDE0LDB4MDIsMHg0NCwweDIwLDB4OTEsMHg2OSB9LAotICAxNiwgMHhjNmUwLCAwLCB7MHgyMCwweDQwLDB4MGEsMHgxMCwweDgyLDB4YzYsMHhlMCwweGIxLDB4MGMsMHgyYywweDQ4LDB4MDgsMHgwMSwweDAyLDB4ZTEsMHg5MyB9LAotICAxNiwgMHhjNmYwLCAwLCB7MHhhMSwweDAxLDB4MjQsMHg0MSwweDBhLDB4MTAsMHgwMiwweGMyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNzAwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDg5LDB4MDQsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAwLDB4ZTQsMHgwMCwweDM5LDB4MDIsMHgwZSB9LAotICAxNiwgMHhjNzEwLCAwLCB7MHg0MCwweDA4LDB4MTAsMHg2MiwweDI0LDB4MDAsMHg5MSwweDAwLDB4NjIsMHg0MCwweDhiLDB4ODAsMHgwMiwweGUwLDB4NTQsMHhiOSB9LAotICAxNiwgMHhjNzIwLCAwLCB7MHgwYywweDJlLDB4NDAsMHgwOSwweGI2LDB4NTIsMHhlYywweDAwLDB4YTksMHgwMCwweDJhLDB4NDAsMHgwYSwweDkyLDB4ODAsMHg4NiB9LAotICAxNiwgMHhjNzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGU0LDB4MDAsMHhlMSwweDYwLDB4MzYsMHg0MCB9LAotICAxNiwgMHhjNzQwLCAwLCB7MHgwZCwweDkwLDB4MjMsMHhlNCwweDAwLDB4ZjksMHgzMCwweDNlLDB4NDAsMHgyYywweDkwLDB4NDMsMHg2NCwweDA2LDB4YzksMHgwMCB9LAotICAxNiwgMHhjNzUwLCAwLCB7MHgzMiwweDQ5LDB4MGUsMHg4ZCwweDkzLDB4ZTAsMHgwMCwweGY5LDB4MDAsMHgyZSwweDQwLDB4MmMsMHg5NCwweDAzLDB4YzcsMHg0MCB9LAotICAxNiwgMHhjNzYwLCAwLCB7MHhlOSwweDIwLDB4MzAsMHg1NSwweDBlLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNzcwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgxZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4ODAsMHgzYyB9LAotICAxNiwgMHhjNzgwLCAwLCB7MHg0MCwweDRmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDA0LDB4YmUsMHg0MCwweDBmLDB4ODgsMHgzMywweDYyLDB4MDAsMHhmOSB9LAotICAxNiwgMHhjNzkwLCAwLCB7MHhjMiwweDNlLDB4NDgsMHgyZSwweDg4LDB4MzMsMHhlMiwweDAwLDB4ZDksMHgwMCwweDNlLDB4NjAsMHgwZCwweDgwLDB4MDMsMHhjYSB9LAotICAxNiwgMHhjN2EwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgwMCB9LAotICAxNiwgMHhjN2IwLCAwLCB7MHgwZCwweDgwLDB4MDMsMHhhMCwweDA0LDB4ZTgsMHg0MCwweGJhLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDA0LDB4YzgsMHgwMCB9LAotICAxNiwgMHhjN2MwLCAwLCB7MHgzYSwweDAwLDB4MGUsMHg4YywweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDIsMHgzMiwweDAwLDB4MGUsMHg4MCwweDAzLDB4NjEsMHgyMCB9LAotICAxNiwgMHhjN2QwLCAwLCB7MHhmOCwweDAwLDB4MzIsMHgxNiwweDBmLDB4ODAsMHgwMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjN2UwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyZSwweDgwLDB4MDgsMHhlMiwweDAzLDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyMiB9LAotICAxNiwgMHhjN2YwLCAwLCB7MHg4MCwweDA4LDB4YTAsMHgwMiwweGU4LDB4MDQsMHg4YSwweDAwLDB4MmUsMHhhMiwweDA5LDB4ZTgsMHgwMiwweGZhLDB4MDQsMHhiZSB9LAotICAxNiwgMHhjODAwLCAwLCB7MHgwMCwweGEyLDB4ODAsMHgwOCwweGNkLDB4ODIsMHgzMywweDIwLDB4YjYsMHhjMCwweDM3LDB4YTAsMHg0YiwweGM4LDB4ODIsMHhjYSB9LAotICAxNiwgMHhjODEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZjLDB4MDAsMHg4MywweDAwLDB4MjYsMHhjMCB9LAotICAxNiwgMHhjODIwLCAwLCB7MHgwOSwweDM4LDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhlYywweDAwLDB4ODMsMHgwMCB9LAotICAxNiwgMHhjODMwLCAwLCB7MHgyOCwweGUwLDB4MGIsMHgzMCwweDAyLDB4Y2UsMHg4MSwweGIzLDB4MDAsMHg2MiwweGMwLDB4MDgsMHgzYywweDAyLDB4NGYsMHgwMCB9LAotICAxNiwgMHhjODQwLCAwLCB7MHhiMywweGEwLDB4MjAsMHhiMCwweDAzLDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjODUwLCAwLCB7MHhhMCwweDAxLDB4MGMsMHg0MSwweDg3LDB4MzQsMHgyZCwweGMwLDB4MDgsMHg2MCwweDAyLDB4OWUsMHg0MCwweGI3LDB4YTAsMHgyZCB9LAotICAxNiwgMHhjODYwLCAwLCB7MHhjMCwweDA4LDB4NzMsMHgwMiwweGRjLDB4MDAsMHg4NywweDIwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHg4MiwweGRkLDB4ODUsMHhiZiB9LAotICAxNiwgMHhjODcwLCAwLCB7MHg4MSwweDYzLDB4YzgsMHg4OCwweDdiLDB4MDIsMHgxYywweDAwLDB4YjcsMHg0MCwweDY1LDB4MDAsMHgxYiwweDcyLDB4MDIsMHhlOCB9LAotICAxNiwgMHhjODgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhjNywweDgxLDB4M2QsMHhlMCB9LAotICAxNiwgMHhjODkwLCAwLCB7MHhkZCwweDcwLDB4MDMsMHhmZSwweDgwLDB4ZjcsMHg5MCwweDNmLDB4ZTAsMHgyYywweDc5LDB4MDMsMHhmZSwweDgwLDB4YzcsMHhhMCB9LAotICAxNiwgMHhjOGEwLCAwLCB7MHgzOSwweGUwLDB4MGYsMHg3YSwweDAyLDB4ZGUsMHg4NCwweGY3LDB4YzIsMHgzMSwweGYyLDB4MGMsMHg3OSwweDAzLDB4NWUsMHgwNCB9LAotICAxNiwgMHhjOGIwLCAwLCB7MHhmNywweDg0LDB4MzEsMHg2MCwweDBmLDB4N2UsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjOGMwLCAwLCB7MHgwOCwweDFkLDB4YWQsMHgwYSwweGZiLDB4NjAsMHg3ZSwweGQ0LDB4MGYsMHgzMCwweDAzLDB4NmMsMHgwMCwweGNiLDB4MDAsMHgzMiB9LAotICAxNiwgMHhjOGQwLCAwLCB7MHhkZSwweDJmLDB4YjIsMHgwMywweGVkLDB4NDIsMHgxYiwweDYwLDB4M2UsMHhjMSwweDBkLDB4YjEsMHgwMywweGVjLDB4NTAsMHhmNyB9LAotICAxNiwgMHhjOGUwLCAwLCB7MHg4MCwweDNkLDB4ZDgsMHgyZSwweDMyLDB4MDMsMHhlYywweDMwLDB4ZmIsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhjOGYwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZmLDB4MDAsMHhjYiwweGQwLDB4M2YsMHhmMCB9LAotICAxNiwgMHhjOTAwLCAwLCB7MHg0YywweGY4LDB4MTMsMHhmZSwweDAwLDB4Y2YsMHg4OCwweDNmLDB4ZTAsMHgwYywweGY4LDB4NDMsMHgzZiwweDAwLDB4Y2YsMHhjOCB9LAotICAxNiwgMHhjOTEwLCAwLCB7MHgzMywweGUwLDB4MGMsMHhmOCwweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODAsMHgzZiwweGUwLDB4MmMsMHhmOCwweDAzLDB4YmUsMHgyMCB9LAotICAxNiwgMHhjOTIwLCAwLCB7MHhjNywweDgwLDB4MzMsMHhlMCwweDBjLDB4ZjgsMHgwMSwweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjOTMwLCAwLCB7MHhhOCwweDAxLDB4YmMsMHg0MCwweDg3LDB4OTAsMHgzZCwweGMwLDB4MDgsMHg0MCwweDAyLDB4ZGMsMHg4MCwweGQ3LDB4MDAsMHgyZCB9LAotICAxNiwgMHhjOTQwLCAwLCB7MHhjMCwweDBjLDB4MzAsMHgwMywweDdjLDB4MDAsMHg4NywweDEwLDB4MjEsMHhjNCwweDFlLDB4NzAsMHgyMCwweGRjLDB4NDQsMHhiNyB9LAotICAxNiwgMHhjOTUwLCAwLCB7MHgwMCwweDM5LDB4YzAsMHgwYywweDcxLDB4MDIsMHgxYywweDQwLDB4ZDcsMHgwMiwweDI5LDB4NDAsMHgwOCwweDcwLDB4MDIsMHgyYSB9LAotICAxNiwgMHhjOTYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg4NywweDMyLDB4MmQsMHhjMCB9LAotICAxNiwgMHhjOTcwLCAwLCB7MHgwOCwweDcwLDB4MDIsMHhkYywweDAxLDB4ODcsMHgwMCwweDJjLDB4YzAsMHgyYiwweDcwLDB4MGEsMHg1YywweDAwLDB4ODMsMHgwMCB9LAotICAxNiwgMHhjOTgwLCAwLCB7MHgyMywweGMwLDB4MDgsMHg3MCwweDAyLDB4ZGQsMHgwMCwweGI3LDB4MDAsMHgyZCwweGM0LDB4MGIsMHhmMCwweDAyLDB4OWMsMHgyMCB9LAotICAxNiwgMHhjOTkwLCAwLCB7MHg4NywweDE4LDB4MjksMHg0MCwweDA4LDB4NzAsMHg4MiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjOWEwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MDIsMHgyOCwweGMwLDB4MDgsMHgxMCwweDAyLDB4Y2MsMHgwOCwweDgzLDB4NDAsMHgyZSB9LAotICAxNiwgMHhjOWIwLCAwLCB7MHhjMCwweDJhLDB4MzAsMHgwMiwweDBjLDB4MDAsMHg4YiwweDAwLDB4MjAsMHhmMiwweDBhLDB4MzAsMHgwMiwweGNlLDB4MDAsMHhiMyB9LAotICAxNiwgMHhjOWMwLCAwLCB7MHg4OCwweDJhLDB4ZDAsMHgwYSwweDMwLDB4MDYsMHgwYywweDAwLDB4OTIsMHgwMCwweDI4LDB4NzgsMHgwOCwweDNjLDB4NDIsMHgwOCB9LAotICAxNiwgMHhjOWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDIsMHhjNywweDAwLDB4MmYsMHhjMCB9LAotICAxNiwgMHhjOWUwLCAwLCB7MHgyYywweDkwLDB4MDIsMHhmYywweDAyLDB4OGYsMHhkOCwweDNmLDB4YzAsMHg0YiwweGYwLDB4MDIsMHg3YywweDAyLDB4Y2YsMHgwMCB9LAotICAxNiwgMHhjOWYwLCAwLCB7MHgyMCwweGYyLDB4MDgsMHhiMCwweDEzLDB4ZWUsMHg4MCwweGZmLDB4MDAsMHgzZiwweGQ0LDB4MmUsMHhiZCwweDgzLDB4YWMsMHgwMCB9LAotICAxNiwgMHhjYTAwLCAwLCB7MHhjYiwweDgwLDB4M2EsMHhhMCwweGFjLDB4YjgsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYTEwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MTAsMHgzZSwweGMwLDB4MGYsMHg4NCwweDAzLDB4ZWMsMHgxMCwweGZiLDB4MDAsMHgzZSB9LAotICAxNiwgMHhjYTIwLCAwLCB7MHhjMCwweDAxLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwLDB4YmUsMHhjMCwweDBlLDB4YjAsMHgyMywweGVjLDB4MDgsMHhmYiB9LAotICAxNiwgMHhjYTMwLCAwLCB7MHgxMCwweDNmLDB4YzAsMHgwZCwweGI0LDB4MDMsMHhlZCwweDA0LDB4ZjksMHgwMCwweDFlLDB4MTQsMHhjZiwweGIwLDB4ODMsMHhlMCB9LAotICAxNiwgMHhjYTQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhjZiwweDAwLDB4MzAsMHhjMCB9LAotICAxNiwgMHhjYTUwLCAwLCB7MHgwYywweDQwLDB4MDMsMHhhYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgyYywweGIwLDB4MDMsMHhiYywweDAwLDB4ZmYsMHgwMCB9LAotICAxNiwgMHhjYTYwLCAwLCB7MHhiMywweGUwLDB4MGQsMHhmYSwweDAzLDB4N2UsMHg4MCwweGNmLDB4MDAsMHgzMywweGMwLDB4MGMsMHhmYywweDQzLDB4ZmYsMHgyMCB9LAotICAxNiwgMHhjYTcwLCAwLCB7MHhmZiwweDAwLDB4M2YsMHg0MCwweDA4LDB4ZjgsMHgwMywweGMwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYTgwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgxMCwweGFiLDB4MDAsMHgyYSwweGMwLDB4MGEsMHg4ZSwweDQyLDB4MmMsMHgwNCwweGJiLDB4MDAsMHgyZSB9LAotICAxNiwgMHhjYTkwLCAwLCB7MHhjMCwweDA4LDB4YjAsMHgwMiwweDZjLDB4MDAsMHhiYiwweDAwLDB4M2EsMHhjMCwweDBlLDB4MzAsMHgwMiwweDBkLDB4MDgsMHg4MyB9LAotICAxNiwgMHhjYWEwLCAwLCB7MHgwMiwweDIyLDB4YzAsMHgwYSwweGJjLDB4MDIsMHhlZiwweDAwLDB4YmIsMHhjMCwweDJjLDB4NjgsMHgwYSwweGI5LDB4MDIsMHhlMCB9LAotICAxNiwgMHhjYWIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDBjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCB9LAotICAxNiwgMHhjYWMwLCAwLCB7MHgwOCwweGI4LDB4MDIsMHhhYywweDAwLDB4YmIsMHgwMiwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlYywweDAwLDB4YmIsMHgwMCB9LAotICAxNiwgMHhjYWQwLCAwLCB7MHgyNiwweDQ4LDB4MTksMHhiMCwweDAyLDB4NmQsMHgwMCwweDhiLDB4MDAsMHgyMiwweGMwLDB4MGEsMHhiMCwweDAyLDB4ZWMsMHgwNCB9LAotICAxNiwgMHhjYWUwLCAwLCB7MHhiYiwweDFjLDB4MmUsMHgyMCwweDBhLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYWYwLCAwLCB7MHgwOCwweDE0LDB4MGMsMHgwMCwweGFiLDB4MjAsMHgyOCwweGMwLDB4MGEsMHgwMCwweDAyLDB4MGMsMHgwMCwweDkzLDB4MDQsMHgyYyB9LAotICAxNiwgMHhjYjAwLCAwLCB7MHhjMSwweDA4LDB4MzAsMHgwMiwweDRjLDB4MDAsMHhiMywweDAwLDB4MjQsMHg0MSwweDA5LDB4YjgsMHgwMiwweDBjLDB4MDIsMHg4MyB9LAotICAxNiwgMHhjYjEwLCAwLCB7MHgwMSwweGEwLDB4YzAsMHgwYSwweDMwLDB4MDIsMHhjYywweDEwLDB4OTMsMHgwMCwweDJjLDB4MDAsMHgwYSwweDMwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhjYjIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDdjLDB4MDAsMHhjZiwweDI4LDB4MzMsMHhjMCB9LAotICAxNiwgMHhjYjMwLCAwLCB7MHgwYywweGEwLDB4NDYsMHhhYywweDExLDB4YmYsMHgwMCwweDNmLDB4YzAsMHg1YywweGYwLDB4NDMsMHhmYywweDAwLDB4ZmYsMHgwNCB9LAotICAxNiwgMHhjYjQwLCAwLCB7MHgzMiwweDQwLDB4MGQsMHhiMCwweDAzLDB4NmMsMHgwOCwweGNiLDB4MDQsMHgzMSwweGMwLDB4MGMsMHhiMCwweDMzLDB4ZWQsMHg0MCB9LAotICAxNiwgMHhjYjUwLCAwLCB7MHhmYiwweDA0LDB4M2UsMHg0MCwweDBlLDB4YjAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYjYwLCAwLCB7MHhhMCwweDE1LDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDIzLDB4ZmMsMHgwMSwweGZmLDB4MDAsMHgzZiB9LAotICAxNiwgMHhjYjcwLCAwLCB7MHhjMCwweDRmLDB4ZjAsMHg4NywweDdjLDB4MDAsMHhmZiwweDAwLDB4MzksMHg0MCwweDBlLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiB9LAotICAxNiwgMHhjYjgwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweDcwLDB4MDMsMHhkYywweDgwLDB4ZmYsMHgwMCwweDNkLDB4NDAsMHgwZiwweDcwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhjYjkwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4NDAsMHhlYiwweDQ4LDB4M2UsMHhjMiB9LAotICAxNiwgMHhjYmEwLCAwLCB7MHgwZSwweDA5LDB4MDMsMHhiYywweDYwLDB4YzAsMHgyMCwweDM1LDB4MjQsMHgwZSwweGQyLDB4MTMsMHgyYywweDYwLDB4ZmIsMHg2YSB9LAotICAxNiwgMHhjYmIwLCAwLCB7MHgzMywweGMwLDB4MGYsMHhjYSwweDAzLDB4MjIsMHgyMCwweGMwLDB4ODAsMHgzNywweGMwLDB4MGQsMHhmMCwweDAzLDB4N2MsMHgwMCB9LAotICAxNiwgMHhjYmMwLCAwLCB7MHhlZiwweDAwLDB4MzMsMHgyNCwweDBmLDB4YzgsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYmQwLCAwLCB7MHg4MCwweDEwLDB4ZGQsMHgwMCwweDhmLDB4NjAsMHgyZiwweGQ4LDB4MDgsMHhhMiwweDAyLDB4ZmQsMHg4MCwweGM4LDB4NzAsMHgyMiB9LAotICAxNiwgMHhjYmUwLCAwLCB7MHgwMCwweDJjLDB4ZmQsMHgwNywweGRjLDB4ODQsMHhiZiwweDYwLDB4MjMsMHhkMiwweDBiLDB4YmQsMHgwMiwweDIzLDB4MDAsMHg4OCB9LAotICAxNiwgMHhjYmYwLCAwLCB7MHg4MCwweGEyLDB4MjAsMHg4OCwweGIwLDB4MjIsMHgzNCwweDAwLDB4YmIsMHg1MCwweDIyLDB4YzgsMHgwYiwweGIwLDB4MDIsMHgyMCB9LAotICAxNiwgMHhjYzAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NDAsMHhhMywweDAzLDB4MmMsMHhjMiB9LAotICAxNiwgMHhjYzEwLCAwLCB7MHgwYSwweDAwLDB4NDIsMHg4YywweDgyLDB4YTMsMHgwYSwweDI0LDB4ODAsMHgwYiwweDMwLDB4MDIsMHhjYywweDkwLDB4YjMsMHgwMCB9LAotICAxNiwgMHhjYzIwLCAwLCB7MHgyOCwweGQ4LDB4MGIsMHgxMCwweDAyLDB4OGMsMHgwMiwweDkwLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgxMCwweDQyLDB4NGMsMHgwMCB9LAotICAxNiwgMHhjYzMwLCAwLCB7MHhiMywweDA0LDB4MjQsMHhjMCwweDBiLDB4MzAsMHgwZSwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYzQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgxMCwweDliLDB4MDQsMHgyYywweGMwLDB4ZjgsMHg5OCwweDA2LDB4ZWMsMHgwMCwweGFiLDB4ODAsMHgyNiB9LAotICAxNiwgMHhjYzUwLCAwLCB7MHgyMCwweDA4LDB4OTAsMHgyYSwweGFjLDB4MTAsMHhiYiwweDAwLDB4MGEsMHhjMCwweDFiLDB4YjAsMHgyMiwweGFkLDB4MDAsMHg5OCB9LAotICAxNiwgMHhjYzYwLCAwLCB7MHg0MCwweDJhLDB4NzAsMHg0YiwweGIwLDB4MDIsMHgyYywweDAwLDB4YjMsMHgwMCwweGE2LDB4ODYsMHgxYiwweGIwLDB4ODIsMHhiMCB9LAotICAxNiwgMHhjYzcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjMCB9LAotICAxNiwgMHhjYzgwLCAwLCB7MHg4ZSwweDk4LDB4MDMsMHhhYywweDA4LDB4ZTgsMHhjMCwweDM2LDB4MzAsMHg0ZiwweGIwLDB4NDIsMHhlYywweDAwLDB4ZjksMHg4MCB9LAotICAxNiwgMHhjYzkwLCAwLCB7MHgzYSwweGMwLDB4OGYsMHg4OCwweDQyLDB4MjAsMHgxMCwweGM4LDB4MTAsMHgzMCwweGYwLDB4MGYsMHgzMCwweDEzLDB4NmMsMHgxMCB9LAotICAxNiwgMHhjY2EwLCAwLCB7MHhlYiwweDAwLDB4MzYsMHhmMCwweDBmLDB4YmQsMHgwMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjY2IwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGVmLDB4MDQsMHg3ZiwweGMwLDB4MGYsMHhmMCwweDQzLDB4ZGMsMHgwMCwweGM0LDB4MDAsMHgzYiB9LAotICAxNiwgMHhjY2MwLCAwLCB7MHg0MCwweDhiLDB4ZGMsMHgwMywweDdjLDB4MTAsMHhmOSwweDkwLDB4MzYsMHhjMiwweDRmLDB4ZjksMHgyMywweDYyLDB4NDEsMHhhYyB9LAotICAxNiwgMHhjY2QwLCAwLCB7MHgwMSwweDEzLDB4NDAsMHgwNCwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZmYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGMwLDB4MDMsMHg3OCB9LAotICAxNiwgMHhjY2UwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweDhjLDB4MTIsMHhjYiwweDAwLDB4ZjIsMHhjMCB9LAotICAxNiwgMHhjY2YwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhYywweDA4LDB4ZDksMHgwMCwweDNhLDB4ODAsMHgwZiwweDEyLDB4MDMsMHhhYywweDAwLDB4ZTEsMHgwMCB9LAotICAxNiwgMHhjZDAwLCAwLCB7MHgzMiwweGMwLDB4MGMsMHg5MCwweDAzLDB4ZWQsMHgwMiwweGM4LDB4NDAsMHgzZSwweGQwLDB4MGYsMHg5MCwweDEzLDB4MmMsMHgwMiB9LAotICAxNiwgMHhjZDEwLCAwLCB7MHhkYiwweDAwLDB4M2UsMHg1MCwweDBjLDB4YjQsMHgwMywweDEwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZDIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDhmLDB4MDAsMHgxNywweGMwLDB4MDgsMHg5MCwweDAyLDB4M2MsMHgwOCwweDhkLDB4MDAsMHgyMiB9LAotICAxNiwgMHhjZDMwLCAwLCB7MHg1NCwweDA4LDB4YjQsMHgwMywweDNjLDB4MDAsMHg4OSwweDAwLDB4MjMsMHhjMCwweDQwLDB4MzUsMHgwMiwweGNjLDB4MjQsMHg4MCB9LAotICAxNiwgMHhjZDQwLCAwLCB7MHgwMCwweDIyLDB4NzQsMHg0YywweGIwLDB4MDIsMHgyYywweDAwLDB4OGYsMHgwMCwweDJlLDB4ZDQsMHgwYSwweGIwLDB4MGEsMHgzMiB9LAotICAxNiwgMHhjZDUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDRjLDB4MDIsMHg4MywweDAwLDB4MjQsMHhjMCB9LAotICAxNiwgMHhjZDYwLCAwLCB7MHgwOSwweDAwLDB4MDIsMHg4YywweDAxLDB4OTAsMHgwMCwweDZhLDB4NDEsMHgwYSwweDMwLDB4MjAsMHg0ZSwweDEwLDB4MzEsMHgwMiB9LAotICAxNiwgMHhjZDcwLCAwLCB7MHgyYywweGMwLDB4MDksMHgyMCwweDA2LDB4Y2UsMHgwMCwweDgwLDB4MDAsMHg2MCwweGUwLDB4MGEsMHgzMCwweDgyLDB4MGMsMHgwOCB9LAotICAxNiwgMHhjZDgwLCAwLCB7MHg4MywweDA4LDB4MmMsMHhkMCwweDA5LDB4YjAsMHgwMiwweDc4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZDkwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwNCwweDg3LDB4YjAsMHgyMCwweGVjLDB4MDksMHhlOSwweDAyLDB4OGUsMHg1OCwweDlkLDB4YjAsMHgyYiB9LAotICAxNiwgMHhjZGEwLCAwLCB7MHhhNSwweDQwLDB4NWIsMHgwNiwweGRlLDB4NDAsMHg5NSwweDk0LDB4MmQsMHhlNCwweDE5LDB4N2IsMHgwNiwweGRlLDB4MDAsMHg4NCB9LAotICAxNiwgMHhjZGIwLCAwLCB7MHg4MCwweDYwLDB4ZTAsMHgwYSwweDc4LDB4MGEsMHgxNiwweDEwLDB4ODcsMHg4MCwweDJkLDB4NjgsMHgwYiwweDc5LDB4MDIsMHg0OCB9LAotICAxNiwgMHhjZGMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhjYiwweGEwLDB4MjQsMHhlMCB9LAotICAxNiwgMHhjZGQwLCAwLCB7MHgwZiwweDJhLDB4MDMsMHg4ZSwweDAwLDB4ZDIsMHhkMCwweDM4LDB4ZmEsMHgwZiwweDE4LDB4YzMsMHhjZSwweDI0LDB4MzEsMHhiMCB9LAotICAxNiwgMHhjZGUwLCAwLCB7MHgzYywweGU1LDB4MGMsMHgzYiwweDE3LDB4Y2UsMHgwNCwweGMwLDB4ODIsMHgzOCwweGMyLDB4OWUsMHgxMCwweDAzLDB4MGMsMHgwMCB9LAotICAxNiwgMHhjZGYwLCAwLCB7MHhjMywweDAxLDB4M2UsMHhjMCwweDBkLDB4ODEsMHgwMywweDUyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZTAwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGVmLDB4MTAsMHgzZSwweGMyLDB4MGUsMHhiMSwweDIzLDB4MmMsMHhjMSwweGFiLDB4MDEsMHgzNiB9LAotICAxNiwgMHhjZTEwLCAwLCB7MHg4MCwweDBmLDB4YjAsMHgyMywweDJkLDB4OTAsMHhlOSwweDg0LDB4NzIsMHhjOCwweDYyLDB4ZjEsMHgxNywweGZjLDB4MDAsMHhmYyB9LAotICAxNiwgMHhjZTIwLCAwLCB7MHgwMCwweDNiLDB4YzQsMHgxZCwweGYwLDB4MDMsMHhlYywweDAwLDB4ZWYsMHgwOCwweDNmLDB4YzgsMHgwZSwweGYxLDB4MDMsMHg5MCB9LAotICAxNiwgMHhjZTMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4ODAsMHhmYiwweGE0LDB4M2EsMHhjOCB9LAotICAxNiwgMHhjZTQwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHgyYywweDA0LDB4Y2EsMHgwMCwweDMwLDB4NjAsMHgyZCwweDFhLDB4MjcsMHg2YywweDg0LDB4Y2IsMHg2MCB9LAotICAxNiwgMHhjZTUwLCAwLCB7MHgzMiwweGQyLDB4MGMsMHhhMCwweDEzLDB4MmQsMHg4NCwweGNiLDB4MDIsMHgzZSwweGMwLDB4MGQsMHhiOCwweDAzLDB4YWMsMHg4MCB9LAotICAxNiwgMHhjZTYwLCAwLCB7MHhjYiwweDgxLDB4MzIsMHg4MCwweDBjLDB4YjAsMHgwMywweGFhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZTcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHhhNCwweGI3LDB4MjgsMHg3MywweGMyLDB4MDgsMHhmMCwweDAyLDB4M2MsMHhjMCwweDhmLDB4MDAsMHgzMSB9LAotICAxNiwgMHhjZTgwLCAwLCB7MHhjMCwweDA5LDB4NzAsMHg4MiwweDljLDB4ODAsMHg4NywweDBjLDB4MjAsMHhkOCwweDA5LDB4NzAsMHgyMiwweDFjLDB4MzAsMHg4NCB9LAotICAxNiwgMHhjZTkwLCAwLCB7MHgwMCwweDNkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgxNCwweDI0LDB4ODcsMHhhMCwweDIxLDB4YzAsMHgwOCwweDcwLDB4MTIsMHgxMiB9LAotICAxNiwgMHhjZWEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4NDAsMHhiMywweDk1LDB4MjksMHhlOSB9LAotICAxNiwgMHhjZWIwLCAwLCB7MHgwYSwweDY4LDB4MDIsMHg5ZSwweGQwLDB4ODYsMHhmMCwweGEzLDB4ZTAsMHgwOCwweDc4LDB4MTIsMHg5ZSwweDQ0LDB4YTMsMHg4MiB9LAotICAxNiwgMHhjZWMwLCAwLCB7MHgyMSwweGU4LDB4MGIsMHgzOCwweDAyLDB4MGUsMHgxMCwweDg3LDB4ODAsMHgyZiwweGUwLDB4MGIsMHgxOCwweDAyLDB4OGUsMHgwMiB9LAotICAxNiwgMHhjZWQwLCAwLCB7MHg4NywweDAwLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZWUwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyNCwweGMwLDB4NDgsMHgzMCwweDAyLDB4MGMsMHgwNCwweDgzLDB4ODAsMHgyMCB9LAotICAxNiwgMHhjZWYwLCAwLCB7MHhkMCwweDA5LDB4MTAsMHgwMiwweDhjLDB4MDYsMHhhMywweDgwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBjLDB4MDIsMHg4MCB9LAotICAxNiwgMHhjZjAwLCAwLCB7MHg0MCwweDI4LDB4ZDIsMHgwYSwweDMwLDB4MDIsMHgwYywweDAxLDB4ODMsMHgwMCwweDIyLDB4M2MsMHgwOCwweDg3LDB4MDIsMHgxMiB9LAotICAxNiwgMHhjZjEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MTgsMHhmYSwweDAwLDB4M2EsMHg4MCB9LAotICAxNiwgMHhjZjIwLCAwLCB7MHg4ZSwweGU0LDB4NDIsMHgyOCwweDAyLDB4Y2UsMHg4MCwweDMzLDB4ODAsMHg0ZCwweGEwLDB4ODMsMHhlOCwweDAwLDB4ZWEsMHhhMCB9LAotICAxNiwgMHhjZjMwLCAwLCB7MHhiMiwweDgwLDB4MGEsMHhhMCwweDBhLDB4MjgsMHgwMCwweGNlLDB4MTgsMHgyZiwweDgwLDB4MGYsMHhhMCwweDEzLDB4YTgsMHgwMCB9LAotICAxNiwgMHhjZjQwLCAwLCB7MHhjYSwweDAwLDB4MzIsMHg5MCwweDJjLDB4YWMsMHgwYiwweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZjUwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MDQsMHgzYSwweDAwLDB4MGYsMHg4MCwweDgzLDB4YzAsMHgwOCwweGU4LDB4MDMsMHgzYSB9LAotICAxNiwgMHhjZjYwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgyMiwweGMwLDB4MDAsMHhkMCwweDAwLDB4N2UsMHgxMCwweGE0LDB4ODAsMHgwMywweGMwLDB4MDAsMHhmOCB9LAotICAxNiwgMHhjZjcwLCAwLCB7MHgwMCwweDNlLDB4MTAsMHgwZCwweDg0LDB4MDMsMHhjMCwweDAwLDB4ZjgsMHgwMCwweGJlLDB4MDAsMHgwZiwweDgwLDB4MDEsMHg1MiB9LAotICAxNiwgMHhjZjgwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGM0LDB4MDIsMHhjOSwweDAwLDB4MzYsMHg0MCB9LAotICAxNiwgMHhjZjkwLCAwLCB7MHgwYywweDkwLDB4MDMsMHg2NCwweDAyLDB4ODksMHgwNCwweDMyLDB4NDIsMHgwZCwweDkyLDB4MDMsMHhlNiwweDQyLDB4YzksMHgwMCB9LAotICAxNiwgMHhjZmEwLCAwLCB7MHgzMiwweDcwLDB4MGUsMHgxMiwweDBiLDB4MjQsMHgwOCwweGM5LDB4MDAsMHgzZSwweDQ1LDB4MGUsMHg5OSwweDAzLDB4ZTQsMHgwMiB9LAotICAxNiwgMHhjZmIwLCAwLCB7MHhjMSwweDAwLDB4MzIsMHg1MCwweDA0LDB4OTQsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZmMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHg2ZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyMiB9LAotICAxNiwgMHhjZmQwLCAwLCB7MHg1NCwweDBiLDB4OTAsMHgwMywweGU2LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwYSwweDI0LDB4MDAsMHg4OSB9LAotICAxNiwgMHhjZmUwLCAwLCB7MHgwMCwweDM4LDB4NDgsMHgwOCwweDkwLDB4ODIsMHhlNCwweDA0LDB4ZDksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyMCB9LAotICAxNiwgMHhjZmYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDAxLDB4MmMsMHg0MCB9LAotICAxNiwgMHhkMDAwLCAwLCB7MHgyOCwweDEwLDB4NDIsMHg2NCwweDAwLDB4YTEsMHgwNCwweDIyLDB4NTAsMHgwMSwweDkwLDB4NDIsMHhlNCwweDAwLDB4ODksMHgwNCB9LAotICAxNiwgMHhkMDEwLCAwLCB7MHgyMCwweDQyLDB4MGEsMHg5MCwweDQyLDB4MzQsMHgwMCwweDg5LDB4MDAsMHg2ZSwweDQwLDB4MGEsMHg5MCwweDAwLDB4ZTQsMHgwMCB9LAotICAxNiwgMHhkMDIwLCAwLCB7MHg4OSwweDAwLDB4MjMsMHg0MCwweDBhLDB4ZDAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMDMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjQsMHgyYywweDQ4LDB4MDgsMHgxMCwweDAyLDB4MDQsMHg4MCwweGExLDB4MjAsMHgyOCB9LAotICAxNiwgMHhkMDQwLCAwLCB7MHg0MCwweDBiLDB4MTAsMHgwMiwweDg1LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0OCwweDA4LDB4NTAsMHg2MiwweDE0LDB4MDIsMHg4MSB9LAotICAxNiwgMHhkMDUwLCAwLCB7MHgwMywweDJlLDB4NDAsMHg4OCwweDE2LDB4ODIsMHhjNCwweGEwLDB4OTEsMHgyOCwweDIxLDB4NDAsMHgyYSwweDUwLDB4MDIsMHgwMiB9LAotICAxNiwgMHhkMDYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhjOCwweDUwLDB4MmUsMHgxNCB9LAotICAxNiwgMHhkMDcwLCAwLCB7MHgwYywweDg1LDB4MDMsMHg2MSwweDQwLDB4ZTgsMHg1MCwweGIyLDB4MTUsMHg0ZCwweDgwLDB4MDIsMHhjMCwweDAwLDB4NDgsMHg1MCB9LAotICAxNiwgMHhkMDgwLCAwLCB7MHhiMiwweDE1LDB4MWEsMHg4MCwweDEzLDB4MzAsMHgwOCwweGM4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MiwweDAzLDB4ZTAsMHg4MCB9LAotICAxNiwgMHhkMDkwLCAwLCB7MHhjMCwweDIwLDB4MzAsMHgwMCwweDBlLDB4NDAsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMGEwLCAwLCB7MHg5OCwweDFkLDB4ZTQsMHg0MCwweGY5LDB4MTAsMHgzZSwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTQsMHg0OCwweGRkLDB4MTAsMHgzNyB9LAotICAxNiwgMHhkMGIwLCAwLCB7MHg0MCwweDBmLDB4ZDQsMHgwNywweGU0LDB4NDAsMHhmZCwweDEwLDB4M2UsMHg0NSwweDBmLDB4OTQsMHgwMywweGU1LDB4MDgsMHhmZCB9LAotICAxNiwgMHhkMGMwLCAwLCB7MHgwMiwweDM5LDB4ZDAsMHgwZiwweGQwLDB4NDMsMHhmNCwweGEwLDB4ZjksMHgyOCwweDNlLDB4NGIsMHgwZCwweDkyLDB4ODMsMHhlNiB9LAotICAxNiwgMHhkMGQwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU2LDB4ODAsMHhjOSwweGE2LDB4MzIsMHg2OCB9LAotICAxNiwgMHhkMGUwLCAwLCB7MHgwYywweDkwLDB4MDMsMHhhNiwweDgxLDB4ZTksMHhlOSwweDNiLDB4NDAsMHgwZSwweDU4LDB4MDMsMHgzNiwweDIwLDB4YzksMHhhMCB9LAotICAxNiwgMHhkMGYwLCAwLCB7MHgzNywweDc4LDB4MGQsMHhkYSwweDAzLDB4MzYsMHgyNiwweGM1LDB4MDAsMHgzNywweDY5LDB4MGUsMHhkZSwweDAzLDB4YTYsMHg4MiB9LAotICAxNiwgMHhkMTAwLCAwLCB7MHhjZCwweGMwLDB4MzMsMHg1MCwweDBmLDB4ZDAsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMTEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHhhNCwweDg4LDB4YTksMHgyMiwweDNhLDB4MDgsMHgwOCwweDAwLDB4MjIsMHhhMCwweGI4LDB4ZTUsMHgzMCB9LAotICAxNiwgMHhkMTIwLCAwLCB7MHgyMCwweDI4LDB4ODAsMHgyMiwweDQzLDB4YTAsMHgwOCwweGU4LDB4MmEsMHgzZCwweDA4LDB4YTQsMHg2MiwweDIwLDB4MDAsMHg4OCB9LAotICAxNiwgMHhkMTMwLCAwLCB7MHgwMCwweDJlLDB4MTAsMHgwOCwweDhlLDB4MDMsMHgyMywweGEwLDB4ODgsMHhhMCwweDIwLDB4MjgsMHgwYiwweDhhLDB4ODIsMHgwZSB9LAotICAxNiwgMHhkMTQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4NDAsMHg5MSwweDQwLDB4MjAsMHg0NCB9LAotICAxNiwgMHhkMTUwLCAwLCB7MHgwOCwweDkwLDB4YTIsMHg4NSwweDEwLDB4YTEsMHgyMCwweDJjLDB4NDIsMHgwYiwweDE0LDB4MTIsMHg4YywweDAxLDB4OTEsMHgxMCB9LAotICAxNiwgMHhkMTYwLCAwLCB7MHgyYywweDQ4LDB4MDksMHgxMSwweDBhLDB4YzQsMHgwMCwweDgxLDB4MDAsMHgyYywweDUwLDB4MGIsMHgxMSwweDEyLDB4YzUsMHgwMSB9LAotICAxNiwgMHhkMTcwLCAwLCB7MHhiMSwweDQwLDB4MjQsMHg0OCwweDBiLDB4MTgsMHgwZSwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMTgwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDkxLDB4MDAsMHgyMiwweDQxLDB4MDgsMHg5NCwweDQyLDB4MjQsMHgwMCwweGIxLDB4NDAsMHgyMCB9LAotICAxNiwgMHhkMTkwLCAwLCB7MHg0MCwweDQ5LDB4YjIsMHg2MiwweDI0LDB4MDAsMHg5OSwweDAwLDB4MGEsMHg0MCwweDA4LDB4OTAsMHgwMiwweGU1LDB4ODAsMHg4OSB9LAotICAxNiwgMHhkMWEwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwOSwweGIwLDB4MDIsMHgyNCwweDgwLDB4YjksMHgwMCwweDI2LDB4NTAsMHg0YiwweDkwLDB4MDIsMHgwNiB9LAotICAxNiwgMHhkMWIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDIsMHhkOSwweDAwLDB4YjIsMHg0MCB9LAotICAxNiwgMHhkMWMwLCAwLCB7MHgyYywweDk1LDB4MTMsMHhhNCwweDEwLDB4ZTksMHgwMCwweGJlLDB4NjAsMHg4ZiwweDkwLDB4MGIsMHhhNCwweDEwLDB4NTksMHgwMCB9LAotICAxNiwgMHhkMWQwLCAwLCB7MHgxZSwweDQwLDB4OWQsMHg5NCwweDIzLDB4ZTQsMHgwMiwweDg5LDB4MDAsMHgzNCwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwOCB9LAotICAxNiwgMHhkMWUwLCAwLCB7MHg3OSwweDAwLDB4YjYsMHg0MCwweDA3LDB4OTgsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMWYwLCAwLCB7MHgyOCwweDAxLDB4ODQsMHgwMCwweGU5LDB4MDIsMHgzYywweDQwLDB4MmYsMHg5OCwweDAyLDB4ZTQsMHgwMCwweGY5LDB4NDIsMHgzYSB9LAotICAxNiwgMHhkMjAwLCAwLCB7MHg2OCwweDBhLDB4MTAsMHgwMywweGU0LDB4MTAsMHhlOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4OTAsMHgwZiwweDI2LDB4MDAsMHhmOSB9LAotICAxNiwgMHhkMjEwLCAwLCB7MHgwNCwweDNlLDB4NDAsMHgwZSwweDFjLDB4MDMsMHhlNiwweDAwLDB4YzEsMHgwMCwweDNhLDB4NTAsMHgwZiwweDk5LDB4ODMsMHhjYSB9LAotICAxNiwgMHhkMjIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhlOCwweDAwLDB4M2EsMHgwMCB9LAotICAxNiwgMHhkMjMwLCAwLCB7MHgwYywweDg0LDB4MDMsMHgyMCwweDAwLDB4ZDgsMHg0MiwweDMyLDB4MDQsMHgwYywweDg4LDB4MTMsMHhlMCwweDAwLDB4YzgsMHgwMCB9LAotICAxNiwgMHhkMjQwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwNCwweDBiLDB4MDAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MGUsMHg4MCwweDIzLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMjUwLCAwLCB7MHhjOCwweDgwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMSwweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMjYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgxMCwweDhhLDB4MDAsMHgyZSwweDgwLDB4MjgsMHgyMCwweDIyLDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyMyB9LAotICAxNiwgMHhkMjcwLCAwLCB7MHhiMCwweDg4LDB4ZTAsMHgwMiwweDI4LDB4MTAsMHhkYSwweDAwLDB4YTMsMHhiNCwweDA4LDB4ZTgsMHgxMCwweDI4LDB4MDAsMHg4ZSB9LAotICAxNiwgMHhkMjgwLCAwLCB7MHgyMCwweDIzLDB4YTAsMHg0OCwweGVkLDB4MWEsMHgyOCwweDAwLDB4ZGUsMHgwMCwweDIzLDB4OTAsMHgwYSwweGUwLDB4MDIsMHgwYSB9LAotICAxNiwgMHhkMjkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhhMywweDAwLDB4MjgsMHhjMCB9LAotICAxNiwgMHhkMmEwLCAwLCB7MHgwOCwweDMwLDB4MGEsMHgwYywweDAwLDB4OTMsMHgwMCwweDIwLDB4YzIsMHgyYSwweDMwLDB4MjIsMHhhNCwweDAwLDB4YmIsMHgwMCB9LAotICAxNiwgMHhkMmIwLCAwLCB7MHgwOCwweGUwLDB4MTgsMHgwOSwweDBhLDB4NGMsMHgwMCwweDkzLDB4MDIsMHgyNCwweGU4LDB4MDIsMHgwOCwweDA2LDB4NGMsMHgwMCB9LAotICAxNiwgMHhkMmMwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhkOCwweDBhLDB4OTAsMHgwMiwweDRhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMmQwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHg4MCwweDg3LDB4MDQsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MGUsMHgwMCwweDg3LDB4MTAsMHgyNSB9LAotICAxNiwgMHhkMmUwLCAwLCB7MHgwMCwweDBhLDB4NjAsMHgwMiwweDVlLDB4MDAsMHg5NywweDAwLDB4MjksMHg4MiwweDA4LDB4NTAsMHgxMiwweDU0LDB4MDAsMHg4ZiB9LAotICAxNiwgMHhkMmYwLCAwLCB7MHg4MCwweDYxLDB4ZDAsMHgwOCwweDA0LDB4MDIsMHg1YywweDAxLDB4YjcsMHgwOCwweGE5LDB4YTAsMHgwYSwweDUwLDB4ODIsMHg2OCB9LAotICAxNiwgMHhkMzAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNlLDB4ODAsMHhlNywweDgwLDB4MzgsMHhlNCB9LAotICAxNiwgMHhkMzEwLCAwLCB7MHgwOCwweDdlLDB4MDMsMHgxZiwweDAwLDB4ZGYsMHg4MCwweGIxLDB4MjEsMHgxZSwweDc4LDB4MDMsMHhkYywweDA0LDB4ZjMsMHg4MCB9LAotICAxNiwgMHhkMzIwLCAwLCB7MHg1YiwweGUxLDB4MDgsMHgyOCwweDAzLDB4NWUsMHgwMCwweGQ3LDB4ODAsMHgzNSwweDYwLDB4MGUsMHg2OCwweDAzLDB4NGUsMHgwMCB9LAotICAxNiwgMHhkMzMwLCAwLCB7MHhkZiwweDgwLDB4MzEsMHhlMCwweDBlLDB4ZjgsMHgwYiwweDZhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMzQwLCAwLCB7MHgwOCwweDFkLDB4YWQsMHgwMiwweGZiLDB4NzQsMHgzZSwweGQwLDB4NGYsMHhiMiwweDgzLDB4ZWQsMHgwMCwweDdiLDB4NjgsMHgzYSB9LAotICAxNiwgMHhkMzUwLCAwLCB7MHgwMCwweDhkLDB4ODAsMHgwMywweGE0LDB4MjAsMHhkYiwweDAxLDB4MzYsMHg4MCwweDZmLDB4YjAsMHg0MSwweDg0LDB4MDAsMHhlYiB9LAotICAxNiwgMHhkMzYwLCAwLCB7MHgwMCwweDNjLDB4YzAsMHgwZiwweGU2LDB4ODMsMHhiYywweDQwLDB4ZGIsMHgwMCwweGI2LDB4ODAsMHgwZiwweGIwLDB4MDMsMHg4MiB9LAotICAxNiwgMHhkMzcwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZmLDB4MjAsMHhkZiwweGMwLDB4M2IsMHhlNiB9LAotICAxNiwgMHhkMzgwLCAwLCB7MHgwZSwweGY4LDB4MTMsMHhmZiwweDQ0LDB4YzcsMHg4MiwweDNiLDB4ZTAsMHgwZiwweGY5LDB4MDMsMHhiZSwweDEwLDB4Y2YsMHhjOCB9LAotICAxNiwgMHhkMzkwLCAwLCB7MHgzMywweDYwLDB4OGQsMHhlYiwweDAzLDB4M2UsMHgwMCwweGRiLDB4ODIsMHgzZiwweGUwLDB4MGMsMHhkOCwweDAzLDB4M2UsMHg0MCB9LAotICAxNiwgMHhkM2EwLCAwLCB7MHhjZSwweDgwLDB4MzMsMHhlNCwweDBmLDB4ZjgsMHgwMywweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkM2IwLCAwLCB7MHhhOCwweDExLDB4YmMsMHg0MCwweDg3LDB4MDAsMHgyMSwweGU0LDB4MGIsMHg3OCwweGEyLDB4Y2UsMHg5MCwweGM3LDB4YjAsMHgyMCB9LAotICAxNiwgMHhkM2MwLCAwLCB7MHhlOCwweDBiLDB4MjgsMHg5MiwweGI2LDB4ODgsMHg4NywweGEwLDB4MjAsMHg2NCwweDBiLDB4MzUsMHgwMywweDE0LDB4MDAsMHg4NyB9LAotICAxNiwgMHhkM2QwLCAwLCB7MHhiMiwweDM5LDB4YzAsMHgyYywweGMwLDB4MDMsMHg1ZSwweDAyLDB4Y2YsMHgwMCwweDMxLDB4Y2UsMHgwYiwweDc2LDB4MTIsMHgyYSB9LAotICAxNiwgMHhkM2UwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhMywweDEwLDB4MjksMHhjOCB9LAotICAxNiwgMHhkM2YwLCAwLCB7MHgwYiwweDc0LDB4MDIsMHhkYywweDgwLDB4OGYsMHgwMCwweDI5LDB4Y2MsMHgwYSwweDMwLDB4MDYsMHgxNCwweDgwLDB4ODcsMHgxMCB9LAotICAxNiwgMHhkNDAwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHg2NiwweDAyLDB4NWMsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg1MSwweDAyLDB4MWMsMHg4MCB9LAotICAxNiwgMHhkNDEwLCAwLCB7MHg5NiwweDAwLDB4MjEsMHhjMCwweDViLDB4NzQsMHg4MiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNDIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwOCwweGEzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHhiOCwweDAyLDB4Y2MsMHgwMCwweDhiLDB4NDAsMHhhOCB9LAotICAxNiwgMHhkNDMwLCAwLCB7MHhjMCwweDhiLDB4MDgsMHgyMiwweDhjLDB4MDIsMHg4MywweDAwLDB4NjAsMHhjMCwweDBiLDB4MzAsMHg0MiwweDA0LDB4MDAsMHg4MyB9LAotICAxNiwgMHhkNDQwLCAwLCB7MHg0MCwweDI4LDB4ZmMsMHg4YSwweDAwLDB4MDIsMHg2ZSwweDAwLDB4ODMsMHgwMCwweGEwLDB4ZDAsMHg4YiwweDM4LDB4MDIsMHgwOCB9LAotICAxNiwgMHhkNDUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGJjLDB4MDIsMHhlZiwweDAwLDB4M2IsMHhjMCB9LAotICAxNiwgMHhkNDYwLCAwLCB7MHg0ZiwweGY4LDB4MDIsMHhmYywweDAyLDB4Y2YsMHgwMCwweDM4LDB4MTIsMHgwZSwweDk4LDB4MDIsMHgyYywweDAwLDB4Y2YsMHgwMCB9LAotICAxNiwgMHhkNDcwLCAwLCB7MHgzMiwweGMwLDB4MDksMHg5MCwweDAzLDB4NjQsMHgwMiwweDgxLDB4YzAsMHgzZSwweGQwLDB4MGYsMHg5MCwweDA3LDB4M2MsMHgwMyB9LAotICAxNiwgMHhkNDgwLCAwLCB7MHhkOSwweDAwLDB4MzIsMHg2MCwweDBmLDB4ODgsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNDkwLCAwLCB7MHg4MCwweDAwLDB4Y2MsMHgwMCwweGRiLDB4MDAsMHgzZSwweGMwLDB4OGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDIsMHgzNiB9LAotICAxNiwgMHhkNGEwLCAwLCB7MHhjMCwweDRmLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhmYiwweDAwLDB4YmUsMHg5MCwweDBmLDB4OWMsMHgxMywweGVjLDB4MDAsMHhlOSB9LAotICAxNiwgMHhkNGIwLCAwLCB7MHgxOCwweDNhLDB4ZDAsMHgwNCwweGQ1LDB4MDMsMHhlYywweDQwLDB4ZTksMHgwMCwweDNhLDB4MDAsMHg4ZiwweDgwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhkNGMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhjZiwweDAwLDB4M2QsMHhjMSB9LAotICAxNiwgMHhkNGQwLCAwLCB7MHg4YywweGYwLDB4MDMsMHgyYywweDAwLDB4ZWYsMHgwYSwweGIzLDB4MTIsMHgyYywweDcwLDB4MjMsMHgxNCwweDBhLDB4NGYsMHgwMCB9LAotICAxNiwgMHhkNGUwLCAwLCB7MHgzNSwweDYwLDB4MGQsMHhiMCwweDAzLDB4MDQsMHgwMCwweGNkLDB4ODAsMHgwNywweGU4LDB4MGMsMHhjNCwweDAzLDB4MmMsMHgwMCB9LAotICAxNiwgMHhkNGYwLCAwLCB7MHhjZCwweDAwLDB4MzEsMHhlMiwweDJjLDB4ZTAsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNTAwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMiwweGFiLDB4MDIsMHgyZSwweGMwLDB4MGUsMHhiMCwweDAyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgzMiB9LAotICAxNiwgMHhkNTEwLCAwLCB7MHgzMCwweDAwLDB4OWMsMHgwMywweDZjLDB4MDAsMHg4YiwweDA0LDB4MjIsMHgzNiwweDA4LDB4MzQsMHg0YSwweDJjLDB4MDgsMHg4OSB9LAotICAxNiwgMHhkNTIwLCAwLCB7MHg5MCwweDIwLDB4YjgsMHgwZiwweDg0LDB4MDAsMHhhYywweDAyLDB4ODksMHgwMCwweDM2LDB4YTAsMHgwOCwweGE0LDB4MDIsMHgyMCB9LAotICAxNiwgMHhkNTMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHhjMCB9LAotICAxNiwgMHhkNTQwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHgwYywweDAwLDB4OGIsMHgwMCwweDIyLDB4ZDEsMHgwOCwweDg4LDB4MTIsMHgyNiwweDAwLDB4YTMsMHgwMCB9LAotICAxNiwgMHhkNTUwLCAwLCB7MHgyNiwweDQwLDB4MGIsMHhiMCwweDAyLDB4MjYsMHgwMCwweDhiLDB4MDAsMHgyNiwweGMwLDB4NTgsMHgxMCwweDEyLDB4MmMsMHgwNCB9LAotICAxNiwgMHhkNTYwLCAwLCB7MHg4MiwweDgwLDB4MmEsMHg0OSwweDA4LDB4MzAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNTcwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGEzLDB4MTQsMHgyYywweGM4LDB4MWEsMHgzNCwweDhhLDB4MGMsMHg4NCwweDgzLDB4NDAsMHgyMiB9LAotICAxNiwgMHhkNTgwLCAwLCB7MHhjOCwweDA4LDB4MDMsMHg2MiwweDRjLDB4YzAsMHhhMywweDYwLDB4MjAsMHg0MCwweDBhLDB4MzAsMHgwMiwweDBjLDB4MDAsMHg4YiB9LAotICAxNiwgMHhkNTkwLCAwLCB7MHg0NSwweDA4LDB4YzAsMHgwYiwweDEwLDB4MDIsMHg4YywweGEwLDB4ODMsMHgwMCwweDI2LDB4NDAsMHgwOCwweDMwLDB4MGEsMHgwMiB9LAotICAxNiwgMHhkNWEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDAsMHhjZiwweDQwLDB4MmYsMHhkMiB9LAotICAxNiwgMHhkNWIwLCAwLCB7MHg4YywweGY2LDB4MDMsMHgzYywweDIyLDB4Y2YsMHg0MCwweDMyLDB4ZDYsMHg0YywweGE2LDB4YzEsMHgzZCwweGEwLDB4ODcsMHg0OCB9LAotICAxNiwgMHhkNWMwLCAwLCB7MHgzNiwweDBkLDB4MGYsMHhiMSwweDAyLDB4MjQsMHg0MiwweGNiLDB4NjAsMHgxNiwweGMwLDB4MGMsMHhkMCwweDAzLDB4MmMsMHg4MCB9LAotICAxNiwgMHhkNWQwLCAwLCB7MHhjYSwweDAwLDB4MzIsMHhjMCwweDBjLDB4MzAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNWUwLCAwLCB7MHhhMCwweDE5LDB4ZmMsMHgwMCwweGZmLDB4MjAsMHgzZSwweGNhLDB4MGUsMHhiMCwweDAzLDB4ZWMsMHgyMCwweGRiLDB4MzQsMHgzYSB9LAotICAxNiwgMHhkNWYwLCAwLCB7MHhjOCwweDBmLDB4ODAsMHgwMywweGU0LDB4MTAsMHhkYiwweDIxLDB4M2UsMHgxOCwweDBkLDB4ZjIsMHgwMywweGZjLDB4ODAsMHhmZiB9LAotICAxNiwgMHhkNjAwLCAwLCB7MHgzMCwweDM1LDB4YzAsMHgwZiwweGMwLDB4MTMsMHhlYywweDAwLDB4ZmYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhkNjEwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMSwweGZjLDB4MDAsMHhmYiwweDBiLDB4MmYsMHhjYSB9LAotICAxNiwgMHhkNjIwLCAwLCB7MHg4ZCwweGYyLDB4MDMsMHhmYSwweDAwLDB4OTYsMHg4MCwweDNiLDB4YzQsMHgwZCwweGYxLDB4MDMsMHg3YywweDgwLDB4ZWMsMHg4MCB9LAotICAxNiwgMHhkNjMwLCAwLCB7MHgzYiwweDA4LDB4MGMsMHhjMiwweDAzLDB4NzQsMHgwMiwweGNjLDB4ODAsMHgzZiwweDQ4LDB4MGUsMHhmMCwweDAzLDB4MzAsMHhhMCB9LAotICAxNiwgMHhkNjQwLCAwLCB7MHhkNSwweDgwLDB4M2YsMHg0MCwweDBjLDB4ZjgsMHgwMywweGYwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNjUwLCAwLCB7MHg4MCwweDA4LDB4ZWUsMHg0MCwweGJmLDB4ODAsMHgyZiwweGYwLDB4MGIsMHhmNywweDIyLDB4ZWUsMHgyMCwweDhhLDB4ODAsMHgyMyB9LAotICAxNiwgMHhkNjYwLCAwLCB7MHhmYywweDg4LDB4NzUsMHgxMiwweDNkLDB4MDAsMHg4OCwweDAwLDB4MjIsMHgwMCwweDI4LDB4ODAsMHgwMiwweDI0LDB4MDgsMHg4OCB9LAotICAxNiwgMHhkNjcwLCAwLCB7MHgwMCwweDZmLDB4NTAsMHgwMCwweGY1LDB4MDIsMHgyOSwweDAwLDB4ODksMHgwMCwweDJlLDB4NTQsMHgwZCwweDkwLDB4MTEsMHhhMCB9LAotICAxNiwgMHhkNjgwLCAwLCB7MHgwNCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMSB9LAotICAxNiwgMHhkNjkwLCAwLCB7MHgwOSwweDMwLDB4ODIsMHhjYywweDgyLDB4YmIsMHgwMCwweDI4LDB4YzAsMHg0OSwweDMyLDB4MDIsMHhjZCwweDAwLDB4YjgsMHgwMCB9LAotICAxNiwgMHhkNmEwLCAwLCB7MHgyYywweDUwLDB4MDksMHgwMSwweDAyLDB4MGMsMHg0MCwweDgwLDB4MDAsMHg2YywweDQ0LDB4MDksMHgzMCwweDAyLDB4MjAsMHgwMCB9LAotICAxNiwgMHhkNmIwLCAwLCB7MHhiMCwweDAwLDB4MmMsMHg0MCwweDE4LDB4MzAsMHgwNiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNmMwLCAwLCB7MHhjMCwweDAxLDB4YWMsMHgwMCwweGJiLDB4MDEsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZWUsMHgwMCwweGFhLDB4MDAsMHg0YSB9LAotICAxNiwgMHhkNmQwLCAwLCB7MHhjMCwweDA4LDB4YjAsMHg1MiwweGVjLDB4MDAsMHg5OCwweDAyLDB4MjYsMHg0MCwweDA5LDB4ODAsMHgwMiwweDZjLDB4MDEsMHhhYSB9LAotICAxNiwgMHhkNmUwLCAwLCB7MHgwNCwweDJlLDB4NDAsMHgwOSwweGIwLDB4MDIsMHgyMiwweDAwLDB4YTksMHg4MCwweDJlLDB4NDEsMHgwOSwweDkwLDB4MDIsMHhmMCB9LAotICAxNiwgMHhkNmYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCB9LAotICAxNiwgMHhkNzAwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHhjZSwweDg0LDB4ZmEsMHgwMCwweDFhLDB4YzAsMHg4ZCwweGIwLDB4NDMsMHhlYywweDAwLDB4ZjAsMHgwMiB9LAotICAxNiwgMHhkNzEwLCAwLCB7MHgzZiwweDAwLDB4MGQsMHhkMSwweDAzLDB4MzUsMHgwMCwweGNiLDB4NDgsMHgyZSwweDQwLDB4MmYsMHhiMCwweDA5LDB4MjIsMHg4MCB9LAotICAxNiwgMHhkNzIwLCAwLCB7MHhmOSwweGM4LDB4MWUsMHhlMCwweDA4LDB4YjEsMHhlMiwweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNzMwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweDdiLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDIzLDB4ZmMsMHgwMCwweGRlLDB4MDAsMHgyNCB9LAotICAxNiwgMHhkNzQwLCAwLCB7MHhjMCwweDRmLDB4ZjAsMHgwMywweDJjLDB4MDAsMHhlYywweDIwLDB4M2IsMHgwMCwweDBlLDB4OTgsMHgwMywweDk0LDB4MDIsMHhkZCB9LAotICAxNiwgMHhkNzUwLCAwLCB7MHgwMCwweDNmLDB4NDAsMHg0ZSwweGYwLDB4MDEsMHhmOCwweDAwLDB4ZGQsMHgwMCwweDNjLDB4ZTQsMHgwZiwweGQ4LDB4MDMsMHhiOCB9LAotICAxNiwgMHhkNzYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweGFjLDB4YzAsMHhmYiwweDIwLDB4MzIsMHhjOCB9LAotICAxNiwgMHhkNzcwLCAwLCB7MHg4ZCwweGIwLDB4MDMsMHhlYywweDAwLDB4ZjksMHgwMCwweDNhLDB4YzIsMHgyYywweDMwLDB4MDMsMHg2YywweDA0LDB4ZDgsMHgwMiB9LAotICAxNiwgMHhkNzgwLCAwLCB7MHgzYywweDQ0LDB4OGQsMHgxMCwweDAzLDB4YWQsMHgwMywweGVhLDB4MDAsMHgzYywweDQwLDB4MGMsMHg3MCwweDIzLDB4ZTQsMHgwMCB9LAotICAxNiwgMHhkNzkwLCAwLCB7MHhjOCwweDQwLDB4M2EsMHhjMCwweDBkLDB4YmMsMHgwMywweDUwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkN2EwLCAwLCB7MHhjOCwweDAxLDB4M2QsMHgwMCwweGJmLDB4NDIsMHgyMywweGYwLDB4MGQsMHhmMCwweDAyLDB4ZTUsMHgwMCwweGUyLDB4MDEsMHgzNyB9LAotICAxNiwgMHhkN2IwLCAwLCB7MHhmMSwweDA4LDB4ZjAsMHgwZSwweDNkLDB4YzAsMHhhOCwweDAwLDB4MmUsMHg1NCwweDI4LDB4OTAsMHgwMiwweDJjLDB4MDAsMHg4YSB9LAotICAxNiwgMHhkN2MwLCAwLCB7MHgwNSwweDNiLDB4NDEsMHg0OCwweGY1LDB4MDMsMHg4YywweDAwLDB4ODksMHgwMCwweDIyLDB4ZDQsMHgwZSwweDk1LDB4MDIsMHhmMiB9LAotICAxNiwgMHhkN2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMywweDA0LDB4MjAsMHhjMCB9LAotICAxNiwgMHhkN2UwLCAwLCB7MHg4OSwweDMwLDB4MDIsMHhjYywweDQwLDB4YjIsMHgwMCwweDJjLDB4YzQsMHg0OCwweDMwLDB4MDIsMHgyYywweDAyLDB4YTIsMHgwMCB9LAotICAxNiwgMHhkN2YwLCAwLCB7MHgyYywweDIwLDB4MTksMHgyMCwweDFhLDB4ODAsMHgwOCwweGIwLDB4MDAsMHg2YywweDQwLDB4MDgsMHgzMCwweDAyLDB4YzQsMHgwMCB9LAotICAxNiwgMHhkODAwLCAwLCB7MHg4MSwweDAwLDB4MmMsMHg0MCwweDA4LDB4MzAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkODEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweGI3LDB4YTAsMHhlMSwweGUwLDB4MDksMHg3OCwweDAyLDB4ZGYsMHgwNCwweGFlLDB4ODAsMHgyZCB9LAotICAxNiwgMHhkODIwLCAwLCB7MHhlMCwweDA4LDB4NzksMHgwMiwweDFlLDB4MTAsMHg4NywweDkwLDB4MmMsMHgyOCwweDI5LDB4NjgsMHgwMiwweDgyLDB4ODEsMHhiNCB9LAotICAxNiwgMHhkODMwLCAwLCB7MHg4MCwweDJkLDB4NjAsMHgwOCwweDc4LDB4MTAsMHhiYywweDAwLDB4OGYsMHg4MCwweDJkLDB4NjAsMHgwYiwweDY4LDB4MDIsMHhjOCB9LAotICAxNiwgMHhkODQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDBjLDB4MDUsMHhmMywweDkyLDB4MzAsMHhjYSB9LAotICAxNiwgMHhkODUwLCAwLCB7MHgwZCwweDMwLDB4MDMsMHhjYywweDAwLDB4ZjMsMHgwMCwweDNjLDB4YzAsMHgwYywweDMwLDB4MDIsMHgwYywweDgwLDB4NzAsMHgwMCB9LAotICAxNiwgMHhkODYwLCAwLCB7MHgyYywweDQwLDB4MGQsMHgyMCwweDAzLDB4ODksMHgwMCwweGIxLDB4MDAsMHgzZSwweDQwLDB4MmMsMHgzMCwweDAzLDB4ZWMsMHg1MCB9LAotICAxNiwgMHhkODcwLCAwLCB7MHhjMywweDIwLDB4M2MsMHg0MCwweDBjLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkODgwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzYywweGMwLDB4MGUsMHhiMCwweDgzLDB4ZWMsMHg0MCwweGVhLDB4MDAsMHgzNiB9LAotICAxNiwgMHhkODkwLCAwLCB7MHhjMiwweDBmLDB4YjAsMHg4MywweGFjLDB4MDAsMHhmOCwweDAwLDB4M2UsMHg0OCwweDBlLDB4ZTAsMHgwYiwweDdhLDB4ODAsMHhjZiB9LAotICAxNiwgMHhkOGEwLCAwLCB7MHgwMCwweDNiLDB4NDQsMHgwZiwweGYwLDB4MDMsMHhlYywweGMwLDB4ZmYsMHgwMCwweDAzLDB4NDQsMHgwZSwweGUwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhkOGIwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDAsMHhmYiwweDIzLDB4M2UsMHhjOCB9LAotICAxNiwgMHhkOGMwLCAwLCB7MHgxZCwweGIwLDB4MDMsMHhlZSwweDAwLDB4Y2EsMHgwMCwweDNlLDB4YzgsMHgwYywweGIyLDB4MDMsMHgyZCwweDkwLDB4YzgsMHg4NCB9LAotICAxNiwgMHhkOGQwLCAwLCB7MHgzNiwweDAwLDB4MmQsMHhiMCwweDAzLDB4NjAsMHgxOCwweDliLDB4ODAsMHgzMywweDUwLDB4MGMsMHhmMiwweDAzLDB4ZTIsMHgwMCB9LAotICAxNiwgMHhkOGUwLCAwLCB7MHhjOSwweDgwLDB4MzIsMHg0MCwweDBjLDB4YjgsMHgwMywweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOGYwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI3LDB4MjgsMHgwYywweGQyLDB4MjgsMHg3MywweDAyLDB4ZmMsMHgwMCwweDg2LDB4MDQsMHgyYyB9LAotICAxNiwgMHhkOTAwLCAwLCB7MHhjYywweDI4LDB4NzAsMHg4MywweDBjLDB4MjAsMHg5NSwweDAxLDB4MjAsMHgwMCwweDA5LDB4MzAsMHgxMiwweDEwLDB4MDQsMHg4NSB9LAotICAxNiwgMHhkOTEwLCAwLCB7MHgwMCwweDIxLDB4NTIsMHgwOCwweDc1LDB4MDIsMHhkOCwweDAwLDB4ODcsMHgwMCwweDIxLDB4NDAsMHgwOCwweDYwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhkOTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ZDQsMHhiNywweGIxLDB4MDksMHhlMSB9LAotICAxNiwgMHhkOTMwLCAwLCB7MHgwOCwweDc4LDB4MjIsMHhkZSwweDAwLDB4OTUsMHg4MCwweDJkLDB4ZTAsMHgwOCwweDc4LDB4MGEsMHg1ZSwweDQyLDB4OTQsMHhjMCB9LAotICAxNiwgMHhkOTQwLCAwLCB7MHgyMSwweDYwLDB4MDgsMHg3OCwweDAyLDB4NWEsMHgwMCwweDg3LDB4ODAsMHgyZCwweDY4LDB4MDgsMHg3YSwweDAyLDB4ZDcsMHgwMCB9LAotICAxNiwgMHhkOTUwLCAwLCB7MHg5NywweDgwLDB4MjAsMHg2MCwweDA5LDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOTYwLCAwLCB7MHg0OCwweDEwLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MDgsMHhiMCwweDAyLDB4Y2QsMHg4MCwweDkyLDB4MDAsMHgyYyB9LAotICAxNiwgMHhkOTcwLCAwLCB7MHhjMCwweDA4LDB4YjAsMHgwMiwweGNjLDB4MDAsMHg5MCwweDgwLDB4YTAsMHg0MCwweDA5LDB4MzYsMHgwMiwweDQ4LDB4MDIsMHg4MyB9LAotICAxNiwgMHhkOTgwLCAwLCB7MHhhMCwweGFjLDB4NDAsMHgyYSwweDMwLDB4MDYsMHhjZSwweDAyLDB4OTMsMHgwNCwweGEwLDB4NDAsMHgwOSwweDIwLDB4MGEsMHgxMiB9LAotICAxNiwgMHhkOTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmYSwweDAwLDB4M2EsMHg4MCB9LAotICAxNiwgMHhkOWEwLCAwLCB7MHgwZCwweGEwLDB4MDMsMHhmYiwweDAyLDB4ZGUsMHg4MCwweDNlLDB4ODAsMHgwYywweGEwLDB4MDMsMHgyOCwweDAwLDB4Y2UsMHg4MCB9LAotICAxNiwgMHhkOWIwLCAwLCB7MHgzMiwweDgwLDB4MGMsMHhhNCwweDAzLDB4NzgsMHgwMCwweGNlLDB4YTQsMHgzZiwweDgwLDB4MGMsMHhhMCwweDA3LDB4ZjksMHgwMCB9LAotICAxNiwgMHhkOWMwLCAwLCB7MHhkZSwweDAwLDB4MzIsMHg4MCwweDJkLDB4ZTAsMHgwMiwweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOWQwLCAwLCB7MHg0OCwweDAwLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHg3YywweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHg0MCwweGU4LDB4MTAsMHgzYyB9LAotICAxNiwgMHhkOWUwLCAwLCB7MHgwMSwweGNmLDB4ODAsMHgwZiwweDIwLDB4MDAsMHhlOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4MDQsMHgwMywweDkwLDB4MDAsMHhlOCB9LAotICAxNiwgMHhkOWYwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwZCwweDgwLDB4MDcsMHhlMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDQsMHgwZSwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhkYTAwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhmOSwweDEwLDB4N2UsMHg0MSB9LAotICAxNiwgMHhkYTEwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCwweDM2LDB4NjgsMHgwZSwweDkwLDB4MGYsMHhhNCwweDA4LDB4YzksMHgwMCB9LAotICAxNiwgMHhkYTIwLCAwLCB7MHgzYSwweDQwLDB4MGMsMHg5MCwweDBiLDB4MjQsMHgxMiwweGU5LDB4MDAsMHgzZSwweDQ0LDB4MmMsMHg5MCwweDAzLDB4NjQsMHgyNCB9LAotICAxNiwgMHhkYTMwLCAwLCB7MHhmOSwweDAyLDB4MmUsMHg0MCwweDBjLDB4OTAsMHgwMywweGMyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYTQwLCAwLCB7MHg4MCwweDA0LDB4NjUsMHgxMCwweGI5LDB4ODAsMHgzZSwweDQwLDB4MDgsMHg5MCwweDBhLDB4MjYsMHgwMCwweGIxLDB4MTAsMHgyYSB9LAotICAxNiwgMHhkYTUwLCAwLCB7MHg3MiwweDA4LDB4OTAsMHgwNywweDY0LDB4MDIsMHg4OSwweDQwLDB4MmUsMHg0MCwweDI4LDB4OTAsMHgxMiwweDI1LDB4MDAsMHg4OSB9LAotICAxNiwgMHhkYTYwLCAwLCB7MHg0NSwweDNlLDB4NTAsMHgwZCwweDkwLDB4MGEsMHgyNSwweDAwLDB4YjksMHg0MCwweDJlLDB4NDAsMHgyOCwweDk0LDB4MDMsMHhlMCB9LAotICAxNiwgMHhkYTcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9LAotICAxNiwgMHhkYTgwLCAwLCB7MHg0OCwweDkwLDB4NDIsMHgyNiwweDAxLDB4YjksMHg0MCwweDI2LDB4NDAsMHgwYSwweDkwLDB4NDIsMHg4NCwweDAxLDB4OGIsMHgwOCB9LAotICAxNiwgMHhkYTkwLCAwLCB7MHgyYywweDQwLDB4MDksMHhkMCwweDgyLDB4MzQsMHgzMiwweGE5LDB4MDgsMHg2ZSwweDQyLDB4MDgsMHgxMCwweDAyLDB4MjQsMHgyMCB9LAotICAxNiwgMHhkYWEwLCAwLCB7MHhiOSwweDA4LDB4MmMsMHg0MCwweDE4LDB4OTAsMHg4MiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYWIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGIzLDB4MjAsMHgyOCwweDQ4LDB4MDgsMHgxMiwweDAyLDB4MDQsMHgwMSwweGIxLDB4MDAsMHgyOCB9LAotICAxNiwgMHhkYWMwLCAwLCB7MHg1OCwweDA4LDB4MTIsMHgwMiwweDA1LDB4ODksMHg4MSwweDQwLDB4MmMsMHg1OCwweDA4LDB4NTYsMHgwNiwweDE1LDB4ODAsMHg4MSB9LAotICAxNiwgMHhkYWQwLCAwLCB7MHg0MCwweDI4LDB4NTAsMHgwOSwweDE0LDB4MDIsMHgwNSwweDgwLDB4YjEsMHg0MCwweDJjLDB4NWEsMHgwOCwweDE0LDB4MDIsMHhjMiB9LAotICAxNiwgMHhkYWUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDY4LDB4MDAsMHhmOCwweDAwLDB4MmUsMHgwMCB9LAotICAxNiwgMHhkYWYwLCAwLCB7MHgyZSwweDg1LDB4MDMsMHgyMSwweDQ4LDB4ZjgsMHgwMCwweDM2LDB4MDAsMHg4ZSwweDA1LDB4MDIsMHhhMCwweDA4LDB4ODAsMHgwMCB9LAotICAxNiwgMHhkYjAwLCAwLCB7MHgzZSwweDAwLDB4MGQsMHg4MCwweDBiLDB4MTAsMHgwNCwweGUwLDB4MDAsMHgyYywweDAwLDB4NGMsMHg4MCwweDAzLDB4NDAsMHgwMCB9LAotICAxNiwgMHhkYjEwLCAwLCB7MHhmMCwweDAwLDB4M2UsMHgwOCwweDBjLDB4MDAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYjIwLCAwLCB7MHg5OCwweDFkLDB4ZTQsMHg0MCwweGY5LDB4MTAsMHgzZSwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZjQsMHgwMCwweGZkLDB4MDAsMHgzZSB9LAotICAxNiwgMHhkYjMwLCAwLCB7MHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCwweDAzLDB4M2YsMHg0NCwweDFmLDB4OTEsMHgxYiwweGU0LDB4NDAsMHhmZCB9LAotICAxNiwgMHhkYjQwLCAwLCB7MHgwMSwweDNmLDB4NTAsMHgwZSwweDk0LDB4MDMsMHhmNCwweDQwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhhNiB9LAotICAxNiwgMHhkYjUwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGY0LDB4MDAsMHhjZCwweGEwLDB4NzEsMHg2OCB9LAotICAxNiwgMHhkYjYwLCAwLCB7MHg4ZCwweDk4LDB4MDMsMHhkNCwweDAwLDB4Y2QsMHgwMCwweDMzLDB4NjAsMHgwYywweDk4LDB4OGYsMHgyNywweDIwLDB4YzksMHg0MCB9LAotICAxNiwgMHhkYjcwLCAwLCB7MHgzZSwweDc4LDB4MGMsMHg5ZSwweDhiLDB4MjcsMHgyMCwweGQxLDB4MTEsMHgzMCwweDYwLDB4OGMsMHg5YywweDAzLDB4MjUsMHgwMCB9LAotICAxNiwgMHhkYjgwLCAwLCB7MHhmOSwweDQwLDB4M2UsMHg3OCwweDBmLDB4OTAsMHgwMywweDQ2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYjkwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgxMCwweDg4LDB4MDEsMHgyMiwweDAxLDB4MDgsMHg4YywweDIyLDB4ZTgsMHgwMCwweDg4LDB4MDIsMHgyYSB9LAotICAxNiwgMHhkYmEwLCAwLCB7MHgxNCwweDA4LDB4OGMsMHgwYiwweDIzLDB4OTAsMHg4OCwweGEwLDB4MmUsMHhiMCwweDA4LDB4OGMsMHg0MiwweDIzLDB4MDAsMHg4OCB9LAotICAxNiwgMHhkYmIwLCAwLCB7MHhhMCwweDM2LDB4MmEsMHgxOCwweDhhLDB4MDIsMHgyMiwweDAwLDB4YjgsMHhhMCwweDJlLDB4MzQsMHgwYiwweGNhLDB4ODIsMHgwZSB9LAotICAxNiwgMHhkYmMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHg4MSwweDQwLDB4MjQsMHg1MCB9LAotICAxNiwgMHhkYmQwLCAwLCB7MHgwOSwweDE2LDB4ODIsMHhjNCwweDAwLDB4YTksMHgwMCwweDIwLDB4NDAsMHgwOCwweDEyLDB4OTIsMHg1NCwweDA4LDB4ODUsMHgwMCB9LAotICAxNiwgMHhkYmUwLCAwLCB7MHgyZiwweDRjLDB4MDksMHg1MiwweDEyLDB4MTQsMHg4MCwweDlkLDB4MDAsMHgyMSwweDUwLDB4MDgsMHg1NCwweDIyLDB4MTQsMHg4MCB9LAotICAxNiwgMHhkYmYwLCAwLCB7MHhiNSwweDAwLDB4MmQsMHg0OCwweDBiLDB4ZDAsMHgwMiwweDQyLDB4MDUsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYzAwLCAwLCB7MHgxOCwweDA1LDB4YTQsMHgwMiwweDg5LDB4MDEsMHhhMiwweDQwLDB4NDgsMHg5MCwweDAyLDB4ZTQsMHgwMiwweGE5LDB4MDAsMHgyYSB9LAotICAxNiwgMHhkYzEwLCAwLCB7MHg0MCwweDY4LDB4OTAsMHgwMiwweDY0LDB4MTAsMHhhZCwweDAwLDB4MmYsMHg0MSwweDI4LDB4NTAsMHgwMiwweDM0LDB4MDAsMHg4ZCB9LAotICAxNiwgMHhkYzIwLCAwLCB7MHg0NCwweDI3LDB4NDAsMHgzOSwweGQwLDB4MDIsMHgzNSwweDAwLDB4YmQsMHgxNCwweDJmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHg0NiB9LAotICAxNiwgMHhkYzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGM0LDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MCB9LAotICAxNiwgMHhkYzQwLCAwLCB7MHgyZCwweDkwLDB4MDMsMHhlNywweDAwLDB4ZTEsMHhlMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MGIsMHg2NCwweDAyLDB4YzksMHgwOCB9LAotICAxNiwgMHhkYzUwLCAwLCB7MHgzYywweDUwLDB4MGMsMHg5MCwweDAyLDB4MjYsMHgwMiwweGQ5LDB4YzAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDEzLDB4MjcsMHgwMCB9LAotICAxNiwgMHhkYzYwLCAwLCB7MHhmOSwweDIwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYzcwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMiwweGY5LDB4MDAsMHgzOCwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTYsMHg4MCwweGQ5LDB4YTAsMHgzYyB9LAotICAxNiwgMHhkYzgwLCAwLCB7MHg0MCwweDBmLDB4MTAsMHgwMywweGE0LDB4MDAsMHhkOSwweDEwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGM0LDB4OTIsMHhmOSB9LAotICAxNiwgMHhkYzkwLCAwLCB7MHgyMSwweDNjLDB4NDAsMHgyZSwweDkwLDB4MGYsMHhlNiwweDgwLDB4ZjksMHg4MCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg4YSB9LAotICAxNiwgMHhkY2EwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMCwweGEwLDB4NDAsMHhlOCwweDEwLDB4M2UsMHgwNCB9LAotICAxNiwgMHhkY2IwLCAwLCB7MHg0ZSwweDgwLDB4MDMsMHgyMCwweDgwLDB4ZDgsMHg2MCwweDNhLDB4MDIsMHgwYywweDgwLDB4MTMsMHgyMCwweDAwLDB4ZjgsMHg0MCB9LAotICAxNiwgMHhkY2MwLCAwLCB7MHgzNiwweDEwLDB4MmQsMHg4MCwweDAzLDB4YTAsMHgwOCwweGU4LDB4NDAsMHgzMiwweDAwLDB4MGQsMHgwMCwweDAzLDB4MjEsMHgwMiB9LAotICAxNiwgMHhkY2QwLCAwLCB7MHhjOCwweDQwLDB4YjIsMHgwMCwweDBmLDB4YzAsMHgwMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkY2UwLCAwLCB7MHgyOCwweDExLDB4M2IsMHgxMCwweDg2LDB4MDEsMHgyZiwweGEwLDB4MGQsMHhhMCwweDAyLDB4MzgsMHgwMCwweDhlLDB4ZTAsMHgyMyB9LAotICAxNiwgMHhkY2YwLCAwLCB7MHhhMiwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHhiYSwweDgwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHg4MiB9LAotICAxNiwgMHhkZDAwLCAwLCB7MHgwMCwweDJhLDB4ODAsMHgyOCwweGEwLDB4MDIsMHgyYSwweDA0LDB4OGEsMHg4MCwweDIyLDB4YTAsMHgwYiwweDYwLDB4MDIsMHhjYSB9LAotICAxNiwgMHhkZDEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQzLDB4ODAsMHhhMiwweDAwLDB4MmMsMHhhMCB9LAotICAxNiwgMHhkZDIwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHgyZSwweDAwLDB4OTIsMHgwMCwweDI4LDB4YzAsMHgyOCwweDMwLDB4MDIsMHgyYywweDAwLDB4YjMsMHg4MCB9LAotICAxNiwgMHhkZDMwLCAwLCB7MHgyNCwweGMwLDB4MDksMHgzMCwweDBhLDB4OGMsMHgwMCwweGEzLDB4MDAsMHg2MCwweGMwLDB4MDgsMHgzMCwweDBhLDB4NGMsMHgwMCB9LAotICAxNiwgMHhkZDQwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhlMCwweDBiLDB4MjAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZDUwLCAwLCB7MHhhMCwweDAxLDB4MTAsMHgwMCwweDg2LDB4MDAsMHgyZCwweGMwLDB4MDksMHgzYSwweDAyLDB4MzUsMHgwMCwweDg2LDB4MDAsMHgyMSB9LAotICAxNiwgMHhkZDYwLCAwLCB7MHhjMCwweDA4LDB4NzMsMHgwMiwweDEwLDB4MDAsMHhiZiwweDg4LDB4MjEsMHgwMCwweDA4LDB4NzAsMHgwMiwweDFjLDB4MDgsMHg4ZiB9LAotICAxNiwgMHhkZDcwLCAwLCB7MHgwMCwweDJiLDB4YzAsMHgwOCwweDIwLDB4MTIsMHg1ZSwweDIwLDB4ODcsMHg4OCwweDIxLDB4ODMsMHgwYiwweDYwLDB4MDIsMHhlOCB9LAotICAxNiwgMHhkZDgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDEyLDB4MDAsMHhlNSwweDgxLDB4M2QsMHhhMCB9LAotICAxNiwgMHhkZDkwLCAwLCB7MHgyYywweDdhLDB4MGIsMHgxZSwweDAwLDB4ZDQsMHg4MCwweDM4LDB4ZTAsMHgwYywweGZhLDB4MGIsMHgxZSwweDAwLDB4ZjYsMHg4MCB9LAotICAxNiwgMHhkZGEwLCAwLCB7MHgzNCwweGUwLDB4MGQsMHgyOCwweDAzLDB4OGEsMHgwMCwweGU2LDB4ODAsMHgzMSwweDIwLDB4MGMsMHg3OCwweDAzLDB4N2EsMHgwNCB9LAotICAxNiwgMHhkZGIwLCAwLCB7MHhjZSwweDg0LDB4MzEsMHhlMCwweDRmLDB4NzgsMHg0MywweGVhLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZGMwLCAwLCB7MHgwOCwweDBkLDB4ODAsMHgwMCwweGY4LDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiNSwweDIzLDB4ZTQsMHgwMCwweGYwLDB4MDQsMHgzNiB9LAotICAxNiwgMHhkZGQwLCAwLCB7MHg0MCwweDBmLDB4YjYsMHg4NywweGUwLDB4MDAsMHhmMiwweDAwLDB4M2UsMHgwMCwweDFmLDB4YTAsMHgwYiwweGU4LDB4MDAsMHhmYSB9LAotICAxNiwgMHhkZGUwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZSwweGEwLDB4MDMsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhkZGYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGY2LDB4MDAsMHhjYywweDgwLDB4MzMsMHhhMCB9LAotICAxNiwgMHhkZTAwLCAwLCB7MHgwYywweGZjLDB4MDMsMHgzZSwweDAwLDB4ZmMsMHg4MCwweDM3LDB4ZTAsMHgwZiwweGI5LDB4MjEsMHgzZSwweDAwLDB4ZmQsMHg4MiB9LAotICAxNiwgMHhkZTEwLCAwLCB7MHgzMywweGUwLDB4MmMsMHhmOCwweDAzLDB4N2UsMHgxMCwweGRmLDB4ODQsMHgzZCwweGUwLDB4MGMsMHhmOCwweDAzLDB4ZjYsMHgwMCB9LAotICAxNiwgMHhkZTIwLCAwLCB7MHhmZCwweDgwLDB4M2YsMHg2MCwweDBjLDB4ZTgsMHgyMywweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZTMwLCAwLCB7MHhhOCwweDExLDB4OTgsMHg0MCwweDg0LDB4MTAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MTAsMHg4MCwweGI0LDB4MDAsMHgyMSB9LAotICAxNiwgMHhkZTQwLCAwLCB7MHhjOCwweDBiLDB4N2EsMHgwMiwweDEwLDB4MDAsMHhmZCwweDAwLDB4MjEsMHgwNCwweDA4LDB4NzAsMHgwMiwweDFjLDB4NDIsMHg4NyB9LAotICAxNiwgMHhkZTUwLCAwLCB7MHgwMCwweDJkLDB4YzQsMHg0OCwweDYxLDB4MDIsMHhkNiwweDgwLDB4YjUsMHgwMCwweDJmLDB4MDQsMHgwOCwweDYxLDB4ODIsMHgyYSB9LAotICAxNiwgMHhkZTYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHg4MSwweDAwLDB4MjEsMHg4MCB9LAotICAxNiwgMHhkZTcwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHgxYywweDEwLDB4YmMsMHgwOCwweDI1LDB4ODAsMHg0YiwweDMwLDB4MGUsMHgxYywweDAwLDB4YjQsMHgwMCB9LAotICAxNiwgMHhkZTgwLCAwLCB7MHgyMCwweGMwLDB4MDgsMHgyMCwweDAyLDB4NTgsMHgwMCwweDk2LDB4MDAsMHgyZiwweDAwLDB4MGEsMHg3MCwweDAyLDB4ZDAsMHg4MCB9LAotICAxNiwgMHhkZTkwLCAwLCB7MHhiNCwweDE4LDB4MmQsMHg0MCwweDA5LDB4ZjgsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZWEwLCAwLCB7MHgyMCwweDE0LDB4YzgsMHgwMiwweDgwLDB4MDAsMHhhMCwweGMwLDB4MDgsMHgzMCwweDIyLDB4MGIsMHhjMCwweGIwLDB4YzAsMHgyMiB9LAotICAxNiwgMHhkZWIwLCAwLCB7MHg4MCwweDBiLDB4MzAsMHgwMiwweDAwLDB4MDAsMHhhMCwweDA0LDB4MjIsMHgwMCwweDI4LDB4YTAsMHgwMiwweDJiLDB4MDAsMHg4YSB9LAotICAxNiwgMHhkZWMwLCAwLCB7MHgwMCwweDJjLDB4MDAsMHgwOCwweGEwLDB4MDYsMHhjMCwweDAwLDB4YjAsMHhjMiwweDJjLDB4MDAsMHgwOSwweGJjLDB4MWEsMHgwOCB9LAotICAxNiwgMHhkZWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGEwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHhjMCB9LAotICAxNiwgMHhkZWUwLCAwLCB7MHgwYywweGYwLDB4MGIsMHgyNiwweDAwLDB4ZjksMHhjMCwweDM2LDB4MDAsMHgwZiwweGYwLDB4MTMsMHgyYywweDEwLDB4YmIsMHg0MCB9LAotICAxNiwgMHhkZWYwLCAwLCB7MHhmMiwweGMwLDB4MDgsMHg5MCwweDAzLDB4NjcsMHgwMCwweGQ5LDB4ODAsMHgzZSwweGMwLDB4MDgsMHg5MCwweDAyLDB4ZWMsMHgwMCB9LAotICAxNiwgMHhkZjAwLCAwLCB7MHhmYiwweGQwLDB4M2UsMHhjMCwweDI5LDB4OGMsMHgwMCwweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZjEwLCAwLCB7MHg4MCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4NDQsMHgzYywweGQwLDB4MmYsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MjAsMHgzZSB9LAotICAxNiwgMHhkZjIwLCAwLCB7MHg0MCwweDBmLDB4MzAsMHgwMywweGUwLDB4MDAsMHhmYiwweDA4LDB4M2UsMHgwMCwweDBmLDB4OTAsMHgxMywweGU0LDB4NDIsMHhmOSB9LAotICAxNiwgMHhkZjMwLCAwLCB7MHgxMCwweDNlLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAwLDB4ZmIsMHgwMCwweDNlLDB4ODAsMHgwZSwweDgyLDB4MDMsMHhlMCB9LAotICAxNiwgMHhkZjQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGUwLDB4MDgsMHhmYywweDgwLDB4MzIsMHhlNCB9LAotICAxNiwgMHhkZjUwLCAwLCB7MHgwZSwweGYwLDB4MDMsMHg3NCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4NDAsMHgwYywweGYwLDB4MGIsMHgzYywweDAwLDB4ZmUsMHgwMCB9LAotICAxNiwgMHhkZjYwLCAwLCB7MHgzZiwweGMwLDB4MGQsMHhjMSwweDAzLDB4MjAsMHgyMCwweGNjLDB4MTAsMHgzMywweDAwLDB4MGMsMHhkMSwweDAzLDB4NTgsMHgwMCB9LAotICAxNiwgMHhkZjcwLCAwLCB7MHhjZSwweDAwLDB4MmYsMHhjMCwweDBmLDB4ZDEsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZjgwLCAwLCB7MHg4MSwweDQ0LDB4NjIsMHgwMCwweGIwLDB4NDAsMHgyYSwweGYxLDB4MDgsMHhiMCwweDEyLDB4MjYsMHgwOCwweGI4LDB4YzgsMHgyZSB9LAotICAxNiwgMHhkZjkwLCAwLCB7MHg3MCwweDBhLDB4YjAsMHgwMiwweDIwLDB4MDAsMHhiYSwweDAwLDB4MmUsMHgwMCwweDI4LDB4ODAsMHgwMywweDIyLDB4NDAsMHg4OCB9LAotICAxNiwgMHhkZmEwLCAwLCB7MHgwMSwweDIwLDB4MDAsMHgwYSwweDgwLDB4MDIsMHgyOCwweDAwLDB4OGEsMHgwMSwweDJlLDB4ODAsMHg4YiwweDkwLDB4MDIsMHgyMCB9LAotICAxNiwgMHhkZmIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI2LDB4MDAsMHhiOCwweDI4LDB4MjIsMHg0MiB9LAotICAxNiwgMHhkZmMwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHg2NiwweDAwLDB4YjgsMHg4MCwweDJlLDB4MzAsMHg4OCwweGIwLDB4MDIsMHgyYywweDAwLDB4YjksMHgwMSB9LAotICAxNiwgMHhkZmQwLCAwLCB7MHgyZSwweGMwLDB4ODgsMHg5MCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAsMHgyMiwweGMwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwYyB9LAotICAxNiwgMHhkZmUwLCAwLCB7MHg4OSwweDAxLDB4MmUsMHg0MCwweDFiLDB4ODAsMHgwMiwweDYwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZmYwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweGIwLDB4MDAsMHgyOCwweGMwLDB4MjgsMHgzMCwweDAyLDB4MDAsMHgwMCwweGIwLDB4MDAsMHgyYyB9LAotICAxNiwgMHhlMDAwLCAwLCB7MHg0MCwweDBhLDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiMSwweDAwLDB4MmMsMHgwMCwweDA4LDB4MTAsMHgwYSwweDA0LDB4MDAsMHg4MSB9LAotICAxNiwgMHhlMDEwLCAwLCB7MHgwMSwweGEyLDB4YzAsMHgwOCwweDAwLDB4MGEsMHgwNCwweDgwLDB4ODEsMHgwMCwweDJjLDB4MDAsMHgxYiwweDAwLDB4MGEsMHgwMiB9LAotICAxNiwgMHhlMDIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhmOCwweDAwLDB4MzIsMHg0MCB9LAotICAxNiwgMHhlMDMwLCAwLCB7MHgwZSwweGYwLDB4MjMsMHg2NCwweDA4LDB4ZjgsMHgwMCwweDJlLDB4MDAsMHgwYywweGYwLDB4MDMsMHgyYywweDAwLDB4ZjgsMHgwMCB9LAotICAxNiwgMHhlMDQwLCAwLCB7MHgzZSwweGMwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMiwweGM4LDB4MDQsMHgzMiwweDAwLDB4MWMsMHg5MCwweDAzLDB4MjAsMHgwMCB9LAotICAxNiwgMHhlMDUwLCAwLCB7MHhjOCwweDAxLDB4M2UsMHg0MSwweDlmLDB4OTAsMHg0MywweDQwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMDYwLCAwLCB7MHhhMCwweDFkLDB4ZjAsMHgwMCwweGZjLDB4MGMsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjAsMHgxMCwweGY0LDB4MDAsMHgzZiB9LAotICAxNiwgMHhlMDcwLCAwLCB7MHgwMCwweDBmLDB4ZjQsMHgyMywweGYwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDBlLDB4YzAsMHgwMywweGIwLDB4MDAsMHhmYyB9LAotICAxNiwgMHhlMDgwLCAwLCB7MHgwMCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhlMSwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDEsMHgxZiwweDUwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhlMDkwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwZCwweGYwLDB4ZDAsMHhmZiwweDIwLDB4M2UsMHhkMCB9LAotICAxNiwgMHhlMGEwLCAwLCB7MHg4ZSwweGIwLDB4MDMsMHhlYywweGEwLDB4ZGIsMHgyOCwweDNlLDB4Y2MsMHgwYywweGIzLDB4MDMsMHhhZCwweDA4LDB4ZjgsMHgzYyB9LAotICAxNiwgMHhlMGIwLCAwLCB7MHgzMiwweDIzLDB4MGUsMHg0OCwweDIzLDB4N2EsMHgwMCwweGZkLDB4OTQsMHgzZiwweGUwLDB4MGYsMHg3OCwweDMzLDB4ZWUsMHgwOCB9LAotICAxNiwgMHhlMGMwLCAwLCB7MHhiZiwweDgwLDB4M2YsMHhlNCwweDBmLDB4ZjksMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMGQwLCAwLCB7MHhhMCwweDAwLDB4ZWMsMHhjOCwweGJmLDB4ZDEsMHgwZiwweGM4LDB4MGMsMHgyNiwweDgyLDB4ZmQsMHgyNCwweDhmLDB4MDAsMHgyZSB9LAotICAxNiwgMHhlMGUwLCAwLCB7MHg5OSwweDBhLDB4ZjIsMHg2MiwweDFkLDB4ZDAsMHg5OSwweDYxLDB4MjIsMHg3MSwweDg4LDB4ODgsMHgwMiwweGFjLDB4MDAsMHhiOCB9LAotICAxNiwgMHhlMGYwLCAwLCB7MHgyMiwweDJlLDB4MjAsMHg0YiwweDg4LDB4MDMsMHhhMCwweDAwLDB4ODAsMHgwMCwweDJlLDB4MDgsMHgwYiwweDgwLDB4MjMsMHg2MCB9LAotICAxNiwgMHhlMTAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDQsMHhiMywweDAzLDB4MGMsMHhjYyB9LAotICAxNiwgMHhlMTEwLCAwLCB7MHgwYSwweDEzLDB4MTIsMHhjYywweDE0LDB4YTMsMHgwZSwweDBjLDB4NTgsMHgwYSwweDMzLDB4MDIsMHg4YywweDEwLDB4YTMsMHgyMCB9LAotICAxNiwgMHhlMTIwLCAwLCB7MHhhMCwweDBhLDB4MTgsMHg5MCwweDAyLDB4NDgsMHhhMCwweGIwLDB4MjAsMHgyNCwweDgwLDB4MGEsMHgyMCwweDAyLDB4Y2MsMHgwOSB9LAotICAxNiwgMHhlMTMwLCAwLCB7MHhhMSwweDAwLDB4MmMsMHg4MCwweDBiLDB4MzIsMHg0MiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTQwLCAwLCB7MHhlMCwweDExLDB4YWMsMHgyMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4NGIsMHg4MCwweGEyLDB4ZWMsMHgwMCwweGFiLDB4MDAsMHg0ZSB9LAotICAxNiwgMHhlMTUwLCAwLCB7MHg0NiwweDJhLDB4YjAsMHgwMiwweDJjLDB4MDQsMHg5YiwweDgwLDB4MmEsMHg2MCwweDhhLDB4OWMsMHgwMiwweGFjLDB4MDAsMHhiOSB9LAotICAxNiwgMHhlMTYwLCAwLCB7MHg4MSwweDJlLDB4NDAsMHgwYiwweDk4LDB4MDIsMHhhMywweDAwLDB4OGEsMHgwMCwweDJlLDB4NDAsMHgwYiwweDgwLDB4MDQsMHhmMCB9LAotICAxNiwgMHhlMTcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGUxLDB4MDAsMHhmYiwweDA0LDB4M2UsMHhjMCB9LAotICAxNiwgMHhlMTgwLCAwLCB7MHgwZSwweGI0LDB4MDMsMHhlYywweDBhLDB4ZGIsMHgwMiwweDJlLDB4ZDEsMHgwZSwweGIwLDB4MDMsMHhhYywweDAwLDB4ZmIsMHg4MiB9LAotICAxNiwgMHhlMTkwLCAwLCB7MHgzMiwweDI4LDB4MWUsMHgwYywweDAzLDB4NjgsMHgwMCwweGI5LDB4MDAsMHgzZSwweDQwLDB4NGYsMHhiMCwweDQzLDB4ZWQsMHgwMCB9LAotICAxNiwgMHhlMWEwLCAwLCB7MHhlYSwweDAwLDB4M2UsMHg0MCwweDBmLDB4ODAsMHgwMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMWIwLCAwLCB7MHhjMCwweDAxLDB4YjgsMHgxOCwweGZmLDB4MDIsMHgxZiwweGMwLDB4MGMsMHhlMiwweDAzLDB4ZmMsMHgwMCwweGRmLDB4MDMsMHgyZiB9LAotICAxNiwgMHhlMWMwLCAwLCB7MHhhMSwweDBmLDB4NzAsMHgwMywweGZjLDB4MDQsMHhhYiwweDA0LDB4MzcsMHg0MiwweDJkLDB4ZDAsMHgwMiwweDdjLDB4MDAsMHhmYyB9LAotICAxNiwgMHhlMWQwLCAwLCB7MHgwMCwweDNmLDB4ODAsMHgwZiwweGMwLDB4MDMsMHhiMCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4ODAsMHgwZiwweGYwLDB4MDMsMHg3OCB9LAotICAxNiwgMHhlMWUwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGE5LDB4MDAsMHhkYiwweDAwLDB4M2MsMHhjMCB9LAotICAxNiwgMHhlMWYwLCAwLCB7MHgyZSwweDk0LDB4MDEsMHg2YywweDExLDB4Y2IsMHgwMCwweGI4LDB4YzAsMHgwYywweGIwLDB4MDMsMHg2YywweDAwLDB4ZWIsMHgwMSB9LAotICAxNiwgMHhlMjAwLCAwLCB7MHgzMiwweDEwLDB4MDcsMHg5MiwweDAzLDB4YTgsMHgwMCwweGY4LDB4MDAsMHgzZSwweDBjLDB4MDcsMHhhMiwweDAzLDB4YWQsMHgwMCB9LAotICAxNiwgMHhlMjEwLCAwLCB7MHhkOCwweDAwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjIwLCAwLCB7MHhjOCwweDA1LDB4MjgsMHgwOCwweGJmLDB4MDAsMHgyZiwweGMwLDB4ODgsMHg4MCwweDAyLDB4M2MsMHgwOCwweGVmLDB4MDMsMHgyMiB9LAotICAxNiwgMHhlMjMwLCAwLCB7MHgwMCwweDBkLDB4ZjUsMHgwMCwweDNjLDB4MDAsMHg4YiwweDgyLDB4MjIsMHg2MCwweDAzLDB4OWMsMHgwMiwweDJjLDB4MTAsMHhiOSB9LAotICAxNiwgMHhlMjQwLCAwLCB7MHhiMCwweDIyLDB4ZjAsMHgwYiwweDkwLDB4MDIsMHgyMCwweDAwLDB4YmIsMHgwMCwweDIyLDB4ZTIsMHgwZCwweGIwLDB4MDIsMHhmMiB9LAotICAxNiwgMHhlMjUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQwLDB4MDAsMHhiMywweDAyLDB4MmMsMHhjMCB9LAotICAxNiwgMHhlMjYwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHg2YywweDAwLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwOSwweDM0LDB4MDQsMHhlYywweDAwLDB4YTgsMHgwMCB9LAotICAxNiwgMHhlMjcwLCAwLCB7MHgyMiwweGYwLDB4MGIsMHgwMCwweDAyLDB4ODgsMHgwMCwweGIzLDB4MDAsMHgyOCwweGUwLDB4MGIsMHgxNCwweDAyLDB4YTAsMHgwMCB9LAotICAxNiwgMHhlMjgwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjkwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwNCwweGI3LDB4ODAsMHgyZCwweGU4LDB4MDgsMHg3OCwweDAyLDB4MGUsMHhjOCwweGE3LDB4OTAsMHgyMSB9LAotICAxNiwgMHhlMmEwLCAwLCB7MHhhOCwweDE5LDB4MzgsMHg1MiwweDllLDB4YzEsMHg4NywweDgwLDB4MjEsMHhlMiwweDBiLDB4ZDksMHg4MiwweDllLDB4MDAsMHhiNiB9LAotICAxNiwgMHhlMmIwLCAwLCB7MHhhMCwweDJkLDB4MjAsMHgwYiwweDY4LDB4MDIsMHgxZSwweDAwLDB4YjQsMHhjMSwweDIxLDB4MjAsMHgwOSwweDQ4LDB4MDIsMHhjOCB9LAotICAxNiwgMHhlMmMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDBjLDB4ODAsMHhiMywweDEwLDB4M2UsMHhlMCB9LAotICAxNiwgMHhlMmQwLCAwLCB7MHgwZSwweDNhLDB4MDcsMHg0ZSwweDAwLDB4Y2IsMHg5MCwweDNhLDB4NjEsMHgwZCwweDM4LDB4MDMsMHhjZSwweGQxLDB4ZTEsMHg5OCB9LAotICAxNiwgMHhlMmUwLCAwLCB7MHgzMCwweGE0LDB4OGYsMHgxMCwweDAzLDB4ODgsMHgwMCwweGJhLDB4YTEsMHgzYywweDg0LDB4MDcsMHgwMCwweDAzLDB4ODIsMHhkNCB9LAotICAxNiwgMHhlMmYwLCAwLCB7MHhkMSwweDAwLDB4NzIsMHg4MCwweDBjLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzAwLCAwLCB7MHg0MCwweDE1LDB4YmMsMHgwNCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMiwweDIzLDB4ZWMsMHhiMCwweGZmLDB4MDAsMHgzMiB9LAotICAxNiwgMHhlMzEwLCAwLCB7MHgwNCwweDA2LDB4YjQsMHgyMywweDdjLDB4MTAsMHhiZiwweDAwLDB4M2UsMHg4NCwweDBmLDB4YjAsMHgwMywweDdjLDB4NDAsMHhmZiB9LAotICAxNiwgMHhlMzIwLCAwLCB7MHgwMCwweDMzLDB4NDAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmUsMHgwMCwweGJmLDB4NDAsMHgwZiwweGM4LDB4MDMsMHhkMCB9LAotICAxNiwgMHhlMzMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGU0LDB4MDAsMHhjYiwweDMzLDB4M2UsMHhjOCB9LAotICAxNiwgMHhlMzQwLCAwLCB7MHg0YywweGIwLDB4MDMsMHhhYywweDkwLDB4ZGIsMHhhMCwweDM2LDB4YzAsMHgwZSwweGJhLDB4NDMsMHg2YywweDAwLDB4YzksMHgwMCB9LAotICAxNiwgMHhlMzUwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHgwMCwweDBmLDB4MjgsMHgwMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHgxOCwweDQzLDB4NjAsMHgwMCB9LAotICAxNiwgMHhlMzYwLCAwLCB7MHhmYSwweDAwLDB4M2UsMHg0MCwweDRmLDB4MDgsMHgwYiwweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgxMCwweDA3LDB4MDgsMHgyYywweGNhLDB4MDgsMHgyMCwweDAyLDB4MWMsMHgyMCwweDg3LDB4MjgsMHgzZiB9LAotICAxNiwgMHhlMzgwLCAwLCB7MHg4MCwweDhhLDB4ZjAsMHgwMiwweDFkLDB4NDAsMHg4NywweDA0LDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweDFjLDB4MDAsMHhiNiB9LAotICAxNiwgMHhlMzkwLCAwLCB7MHgwMCwweDJkLDB4ODAsMHgwYiwweDYwLDB4MDMsMHgxYywweDAwLDB4YjUsMHgwMCwweDJkLDB4ODAsMHgwYiwweDcwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhlM2EwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg4NywweGEwLDB4MmQsMHhlNCB9LAotICAxNiwgMHhlM2IwLCAwLCB7MHgwYSwweDU4LDB4MDIsMHgxZSwweDAxLDB4ODMsMHg5MCwweDIxLDB4NzAsMHgwYiwweDc5LDB4MDIsMHg5ZSwweDAxLDB4ODUsMHhjMCB9LAotICAxNiwgMHhlM2MwLCAwLCB7MHgyZCwweGUwLDB4NGIsMHg1OCwweDEyLDB4MWEsMHgwMCwweGI2LDB4ODAsMHgyZCwweDIwLDB4MGIsMHg0OCwweDAyLDB4NTIsMHgwMCB9LAotICAxNiwgMHhlM2QwLCAwLCB7MHhiNCwweDgwLDB4MmQsMHgyMCwweDBiLDB4NDgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlM2UwLCAwLCB7MHg0OCwweDE0LDB4ZWMsMHgwMCwweDgzLDB4MDAsMHgyYywweGMwLDB4ODgsMHgzNiwweDAyLDB4MGMsMHgwMiwweDgzLDB4MDAsMHg2YyB9LAotICAxNiwgMHhlM2YwLCAwLCB7MHhjMCwweDBiLDB4MzAsMHgwYSwweGFjLDB4MDAsMHg5YiwweGUwLDB4NmMsMHhjOCwweDBiLDB4MzIsMHgwMiwweDBjLDB4MDEsMHhiMyB9LAotICAxNiwgMHhlNDAwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDEwLDB4YjMsMHg0MCwweDJjLDB4YzAsMHgwYiwweDNjLDB4ODIsMHgxMiB9LAotICAxNiwgMHhlNDEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4MDIsMHhjYSwweDAwLDB4M2UsMHg4MCB9LAotICAxNiwgMHhlNDIwLCAwLCB7MHgwZSwweGU0LDB4OGIsMHgyOCwweDAwLDB4Y2EsMHgwMCwweDMzLDB4OTUsMHgwZiwweGEwLDB4MDcsMHhhOCwweDAyLDB4Y2UsMHg0MCB9LAotICAxNiwgMHhlNDMwLCAwLCB7MHgzZiwweGIwLDB4MGYsMHhlNCwweDgyLDB4MjgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhhMCwweDIzLDB4NjgsMHgwMCB9LAotICAxNiwgMHhlNDQwLCAwLCB7MHhmYSwweDQwLDB4M2UsMHg4MSwweDRmLDB4YTQsMHhlMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDUwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHg4MCwweGYwLDB4MDAsMHgzYywweDAwLDB4MmYsMHgwMCwweDAyLDB4NjAsMHgwMCwweGU4LDB4MDAsMHgzYyB9LAotICAxNiwgMHhlNDYwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgwMSwweDIwLDB4MDAsMHhlOCwweDA0LDB4NWUsMHgwNCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmYyB9LAotICAxNiwgMHhlNDcwLCAwLCB7MHgwMSwweDNmLDB4MTAsMHgwZiwweGM0LDB4MDMsMHhiMCwweDAwLDB4ZmMsMHgwOSwweDNmLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhlNDgwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhhOSwweDIwLDB4MzYsMHg0MCB9LAotICAxNiwgMHhlNDkwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHg0NCwweDA0LDB4ZDksMHgwMCwweDNlLDB4NDAsMHgwZCwweDkwLDB4MDMsMHhlNCwweDA0LDB4YzksMHgwMCB9LAotICAxNiwgMHhlNGEwLCAwLCB7MHgzMiwweDQwLDB4OGYsMHg5MCwweDBiLDB4ZTQsMHgwOCwweGY5LDB4MDAsMHgzZSwweDQ0LDB4MGUsMHg5OCwweDAzLDB4ZTYsMHgwMCB9LAotICAxNiwgMHhlNGIwLCAwLCB7MHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNGMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MTgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyZSB9LAotICAxNiwgMHhlNGQwLCAwLCB7MHg0MCwweDA4LDB4OTQsMHgwMiwweGU0LDB4MDAsMHhkOSwweDA0LDB4MjIsMHg0MCwweDBiLDB4MWMsMHgwYiwweDY0LDB4MDAsMHhiOSB9LAotICAxNiwgMHhlNGUwLCAwLCB7MHg5NCwweDJjLDB4NTAsMHgwOCwweDljLDB4MDIsMHhlNCwweDE0LDB4YjksMHg5MCwweDBlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhlNGYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDIsMHg4OSwweDAwLDB4MjYsMHg0MCB9LAotICAxNiwgMHhlNTAwLCAwLCB7MHg0YSwweDkwLDB4MDIsMHg2NCwweDAwLDB4OTksMHgwNCwweDJlLDB4NDAsMHgwOCwweDk4LDB4ODIsMHhlNCwweDAwLDB4ODksMHgwMCB9LAotICAxNiwgMHhlNTEwLCAwLCB7MHg2YSwweDQwLDB4MGEsMHg5MiwweDgyLDB4ZTQsMHgwMCwweGJkLDB4MDEsMHgyZiwweDUwLDB4MTIsMHhkNiwweDAyLDB4ZjQsMHg0MCB9LAotICAxNiwgMHhlNTIwLCAwLCB7MHhiZCwweDAwLDB4MGYsMHg0MCwweDBiLDB4ZDAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyMCwweDQ4LDB4MDgsMHgxMiwweDAyLDB4MDQsMHg4MCwweDgxLDB4MjIsMHgyYyB9LAotICAxNiwgMHhlNTQwLCAwLCB7MHg0OCwweGE4LDB4MTIsMHgwNiwweGM0LDB4OTAsMHg5MSwweDIwLDB4MjgsMHg1MCwweDBiLDB4OTAsMHgwMiwweDQ1LDB4MDAsMHhiNSB9LAotICAxNiwgMHhlNTUwLCAwLCB7MHg0MCwweDZkLDB4NDAsMHgwOCwweDUwLDB4MTIsMHhkNCwweDA0LDB4YjUsMHgwMiwweDJkLDB4NDAsMHgwYiwweDUwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhlNTYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhjOCwweDAwLDB4MzYsMHgxNCB9LAotICAxNiwgMHhlNTcwLCAwLCB7MHgwYSwweDg1LDB4MDMsMHg0MSwweDQwLDB4ZDgsMHg1MCwweDJlLDB4MTQsMHgwYywweDg1LDB4MDMsMHhjMSwweDQwLDB4YzgsMHg1MCB9LAotICAxNiwgMHhlNTgwLCAwLCB7MHhiYSwweDAwLDB4MGUsMHg4MCwweDIzLDB4ZTAsMHgwMCwweDc4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwNCB9LAotICAxNiwgMHhlNTkwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4YzAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNWEwLCAwLCB7MHg5OCwweDFkLDB4ZjQsMHg0MCwweGQ5LDB4MTAsMHgzZSwweDQ0LDB4MDcsMHhmMSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MTAsMHgzZiB9LAotICAxNiwgMHhlNWIwLCAwLCB7MHg0NCwweGFmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCwweDEwLDB4MzcsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhlNWMwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweGEwLDB4ZjksMHgyOCwweDNlLDB4NGEsMHgwZiwweDkyLDB4ODMsMHhlNiB9LAotICAxNiwgMHhlNWQwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU2LDB4ZDQsMHhmZCwweGEyLDB4M2EsMHg3MCB9LAotICAxNiwgMHhlNWUwLCAwLCB7MHg4YywweDllLDB4MDMsMHgyNiwweDgwLDB4YzksMHhhMCwweDMyLDB4NjgsMHgwYywweGRiLDB4NDMsMHgyNywweDgwLDB4OWQsMHhhMiB9LAotICAxNiwgMHhlNWYwLCAwLCB7MHhiNywweDQwLDB4MGYsMHg1MCwweDAzLDB4NjUsMHgwMCwweGZkLDB4MDAsMHgzZiwweGMxLDB4MDcsMHhkMCwweDAzLDB4ZjUsMHgwNCB9LAotICAxNiwgMHhlNjAwLCAwLCB7MHhmZCwweDQwLDB4MmYsMHhjMCwweDBjLDB4ZDAsMHgwMywweGM2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHg4OCwweGI4LDB4NTAsMHgyMiwweDM4LDB4MDgsMHg4ZSwweDAwLDB4YTIsMHhhMCwweDg4LDB4ZTgsMHgyMiB9LAotICAxNiwgMHhlNjIwLCAwLCB7MHgzOCwweDQ4LDB4ODgsMHgwMywweDYyLDB4MTAsMHhhOCwweGU4LDB4M2MsMHgwMCwweDBiLDB4ODAsMHgwMywweDYyLDB4ODAsMHhiOCB9LAotICAxNiwgMHhlNjMwLCAwLCB7MHgwMSwweDJlLDB4ODAsMHgwYiwweDgwLDB4MjEsMHhhMiwweDAwLDB4YjAsMHg4NCwweDJlLDB4MmEsMHgyOCwweDhhLDB4ODIsMHhjZSB9LAotICAxNiwgMHhlNjQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4NDAsMHhiMSwweDAwLDB4MjgsMHg1OCB9LAotICAxNiwgMHhlNjUwLCAwLCB7MHg4MCwweDEzLDB4NDAsMHgwNSwweDAwLDB4ODEsMHg0MCwweDIwLDB4NTIsMHgyOCwweDE2LDB4MDIsMHg4NSwweDgwLDB4OWIsMHhjMiB9LAotICAxNiwgMHhlNjYwLCAwLCB7MHg2NCwweDQxLDB4OGIsMHg5OCwweDAyLDB4MDQsMHgwMCwweGIxLDB4MDksMHgyYywweDQwLDB4MWIsMHgxMCwweDIwLDB4YzQsMHgwMCB9LAotICAxNiwgMHhlNjcwLCAwLCB7MHhiMSwweDAwLDB4MmMsMHg0MCwweDQ4LDB4MTAsMHgwMiwweGMyLDB4MDUsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjgwLCAwLCB7MHgxOCwweDE1LDB4YTUsMHg4NCwweGI5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDAxLDB4MDAsMHgyMCB9LAotICAxNiwgMHhlNjkwLCAwLCB7MHg1MCwweDA4LDB4OTAsMHg0MiwweDY0LDB4MDAsMHhhOSwweDEwLDB4YWUsMHg1OCwweDAzLDB4OTgsMHgwMiwweDY0LDB4MDAsMHhiOSB9LAotICAxNiwgMHhlNmEwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4NDYsMHhhNCwweDEwLDB4YjksMHgwMCwweDJlLDB4NDEsMHgwOCwweDkwLDB4MDIsMHhjNiB9LAotICAxNiwgMHhlNmIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGU3LDB4MDAsMHhmOSwweDAwLDB4MmEsMHg0MCB9LAotICAxNiwgMHhlNmMwLCAwLCB7MHgyYywweDk0LDB4MGIsMHgyNCwweDAyLDB4YzksMHgwMCwweGIyLDB4NDQsMHgwYywweDkwLDB4MDMsMHgyNCwweDA0LDB4ZDksMHg4MCB9LAotICAxNiwgMHhlNmQwLCAwLCB7MHhiNiwweDQxLDB4OGYsMHgxOCwweDAzLDB4MjQsMHgwMCwweGY5LDB4NjAsMHgzZSwweDQwLDB4MGYsMHg5NiwweDAzLDB4ZTQsMHgwMCB9LAotICAxNiwgMHhlNmUwLCAwLCB7MHhmOSwweDgwLDB4M2UsMHg0MiwweDhjLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNmYwLCAwLCB7MHgyOCwweDAxLDB4YTYsMHgwMCwweGYxLDB4MDAsMHgzZSwweDQwLDB4MGYsMHgxYywweDAzLDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzZSB9LAotICAxNiwgMHhlNzAwLCAwLCB7MHg0MCwweDhmLDB4OTAsMHgyMywweGM0LDB4MTAsMHhmOSwweDAwLDB4YmUsMHg0MCwweDBmLDB4OTAsMHgwYiwweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhlNzEwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwNywweDkwLDB4MjMsMHhlNCwweDAwLDB4ZjksMHgyMCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhjYSB9LAotICAxNiwgMHhlNzIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGExLDB4MDAsMHhmOCwweDAwLDB4YmUsMHgwMCB9LAotICAxNiwgMHhlNzMwLCAwLCB7MHgwZSwweDg0LDB4MDMsMHgyMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAsMHgwYywweDAwLDB4ODMsMHgyMCwweDAwLDB4ZjgsMHgwMCB9LAotICAxNiwgMHhlNzQwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzNiwweDEwLDB4MGYsMHg4MCwweDQzLDB4ZTAsMHgwOCB9LAotICAxNiwgMHhlNzUwLCAwLCB7MHhmOCwweDAwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGNhLDB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyMiwweDgwLDB4NDgsMHhhMCwweDAzLDB4NjgsMHgwMCwweGFhLDB4MDAsMHgyYSB9LAotICAxNiwgMHhlNzcwLCAwLCB7MHg4MCwweDA4LDB4ZTAsMHgwMywweDY4LDB4MDAsMHg4MiwweDAwLDB4MmYsMHg4MCwweDA4LDB4ZTYsMHgwMiwweDI4LDB4MDQsMHhiZSB9LAotICAxNiwgMHhlNzgwLCAwLCB7MHg0MCwweDIzLDB4ODAsMHgwYiwweGU4LDB4MDIsMHhlYSwweDAwLDB4YmUsMHgwMSwweDIyLDB4ODAsMHgwYiwweGUwLDB4MDIsMHhjYSB9LAotICAxNiwgMHhlNzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDEsMHg5MywweDAxLDB4MjAsMHhjMSB9LAotICAxNiwgMHhlN2EwLCAwLCB7MHgwYSwweDMwLDB4MDIsMHgwYywweDAwLDB4YTMsMHgwMCwweDIwLDB4YzAsMHg4OCwweDM4LDB4NDIsMHgwYywweDAwLDB4YTMsMHgwMCB9LAotICAxNiwgMHhlN2IwLCAwLCB7MHgyNCwweGMwLDB4MGEsMHgzZSwweDQyLDB4OGMsMHgwMCwweGIyLDB4NGMsMHgyNCwweGUwLDB4NGIsMHgzOCwweDAyLDB4YzQsMHg0MSB9LAotICAxNiwgMHhlN2MwLCAwLCB7MHhiMywweDAwLDB4MjIsMHhjMCwweDBiLDB4MTAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlN2QwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHgwMCwweGI3LDB4MDAsMHgyMCwweGM5LDB4NDgsMHg3MCwweDAyLDB4ZGMsMHg0MCwweGE3LDB4MTQsMHgyYyB9LAotICAxNiwgMHhlN2UwLCAwLCB7MHhjOCwweDI4LDB4MzAsMHg4MiwweDVjLDB4YzEsMHg4NSwweDAwLDB4MmQsMHhlMCwweDJhLDB4ZjAsMHgxMiwweDFjLDB4ODAsMHhiNyB9LAotICAxNiwgMHhlN2YwLCAwLCB7MHhhMCwweDIxLDB4ODIsMHgwYiwweDcwLDB4ODIsMHhkNCwweDExLDB4YjYsMHg4MCwweDIxLDB4NDAsMHg0YiwweDUwLDB4MDIsMHhlOCB9LAotICAxNiwgMHhlODAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4ODAsMHhkNSwweDgwLDB4MjksMHhlYSB9LAotICAxNiwgMHhlODEwLCAwLCB7MHg0ZSwweDNhLDB4MDcsMHgwZSwweDgwLDB4ZTMsMHhiMCwweDMxLDB4ZmMsMHgwYywweDQ4LDB4MDMsMHgwZSwweDQxLDB4ZTcsMHg4MCB9LAotICAxNiwgMHhlODIwLCAwLCB7MHgzZCwweGUwLDB4MGUsMHg3OCwweDAzLDB4OWUsMHg4MCwweGY0LDB4YzQsMHgzNSwweGUwLDB4MGYsMHg3OCwweDI3LDB4ZGUsMHgwMCB9LAotICAxNiwgMHhlODMwLCAwLCB7MHhmNSwweDgwLDB4YjEsMHhlMCwweDBmLDB4NTgsMHgwMywweGVhLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODQwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHgwMCwweDMxLDB4MDQsMHgzYSwweGM0LDB4MGYsMHhiNSwweDkzLDB4NmQsMHgwOCwweGZiLDB4NDAsMHgzYSB9LAotICAxNiwgMHhlODUwLCAwLCB7MHhjOCwweDYzLDB4ODAsMHgyMywweGVjLDB4OTgsMHhlOSwweDAwLDB4M2UsMHhjMCwweDBkLDB4YjAsMHg0MywweGVjLDB4MDAsMHhmMyB9LAotICAxNiwgMHhlODYwLCAwLCB7MHg4MCwweDNlLDB4NDAsMHg0ZiwweGEwLDB4MDMsMHhlYywweDAwLDB4ZjgsMHg2OCwweDNlLDB4NDAsMHg4ZiwweDk4LDB4MDMsMHhjMiB9LAotICAxNiwgMHhlODcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4NjAsMHhlYiwweDkwLDB4M2UsMHhlNCB9LAotICAxNiwgMHhlODgwLCAwLCB7MHgwZiwweGI4LDB4MDAsMHgzZiwweDQwLDB4Y2IsMHg4MCwweDdmLDB4ZTAsMHgwZSwweGZiLDB4MDMsMHgyZSwweDQwLDB4Y2IsMHg4MCB9LAotICAxNiwgMHhlODkwLCAwLCB7MHgzZiwweGUwLDB4MGYsMHg3OSwweDQzLDB4MmUsMHg2MCwweGNhLDB4ODEsMHgzMywweDY0LDB4OGYsMHhkOSwweDAzLDB4ZmUsMHgwMCB9LAotICAxNiwgMHhlOGEwLCAwLCB7MHhmZiwweDgxLDB4MzMsMHhlMCwweDBmLDB4ZDksMHg4YiwweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOGIwLCAwLCB7MHhhOCwweDAxLDB4OWMsMHgwMCwweDg3LDB4ODEsMHgxOSwweGU0LDB4MGIsMHhmYSwweDEzLDB4NWUsMHg4MCwweDg3LDB4YjIsMHgyZCB9LAotICAxNiwgMHhlOGMwLCAwLCB7MHhlYywweDBkLDB4NzksMHgwMSwweDllLDB4MDAsMHhkNSwweDkwLDB4MmQsMHhmOCwweDBiLDB4NzgsMHgwMywweDdlLDB4MDgsMHhhYiB9LAotICAxNiwgMHhlOGQwLCAwLCB7MHg5MSwweDI5LDB4ODUsMHgwYiwweDUxLDB4MDIsMHhkYywweDQ4LDB4YjYsMHg0MCwweDIxLDB4NDAsMHgwYiwweDUwLDB4MDIsMHgyYSB9LAotICAxNiwgMHhlOGUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDhjLDB4MTQsMHhiNSwweDIwLDB4NmQsMHhjOCB9LAotICAxNiwgMHhlOGYwLCAwLCB7MHgwYiwweDcyLDB4MDIsMHg1YywweDgwLDB4ODcsMHgyMCwweDY5LDB4YzAsMHg4OCwweDUzLDB4MDIsMHhjYywweDgxLDB4OTcsMHg1MCB9LAotICAxNiwgMHhlOTAwLCAwLCB7MHgyZCwweGM4LDB4MGIsMHhmNywweDBhLDB4ZGMsMHhjMCwweDg0LDB4MDEsMHgyMSwweDQ0LDB4MWIsMHg3MCwweDIyLDB4ZGMsMHgwMCB9LAotICAxNiwgMHhlOTEwLCAwLCB7MHhiNSwweDAwLDB4MjEsMHhjNCwweDBiLDB4NTAsMHg4NiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTIwLCAwLCB7MHgyMCwweDE0LDB4Y2YsMHgzMCwweDkxLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzNCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYyB9LAotICAxNiwgMHhlOTMwLCAwLCB7MHhmMiwweDBiLDB4MTAsMHgyMiwweDBjLDB4MDAsMHg5MSwweDAwLDB4MmMsMHhjOCwweDBiLDB4MTgsMHgwYSwweGNkLDB4MDEsMHhhMyB9LAotICAxNiwgMHhlOTQwLCAwLCB7MHgwMCwweDI4LDB4NjAsMHgwYiwweDIxLDB4MDIsMHhjZSwweDIwLDB4YjgsMHg0MCwweGEwLDB4NTQsMHgwYiwweDE4LDB4MDIsMHgwOCB9LAotICAxNiwgMHhlOTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGJkLDB4MDAsMHhmOSwweDAwLDB4MmYsMHhjMCB9LAotICAxNiwgMHhlOTYwLCAwLCB7MHgwZiwweGY0LDB4MDIsMHg3YywweDEyLDB4Y2YsMHgwMywweDNmLDB4YzIsMHgwZSwweGIwLDB4MDMsMHhmYywweDA0LDB4OWIsMHgwMiB9LAotICAxNiwgMHhlOTcwLCAwLCB7MHgyZSwweGYyLDB4MGYsMHhhNCwweDBiLDB4ZGMsMHgwMCwweGNlLDB4MDAsMHhiMCwweGM4LDB4OGYsMHhhNCwweDAzLDB4ZWYsMHgwMCB9LAotICAxNiwgMHhlOTgwLCAwLCB7MHhmOCwweDgwLDB4MzIsMHhmNSwweDFmLDB4ZGQsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTkwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHg0MCwweGU5LDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMSwweDAzLDB4Y2MsMHgwMCwweGYzLDB4MDAsMHgzZSB9LAotICAxNiwgMHhlOWEwLCAwLCB7MHhjMCwweDBkLDB4YjQsMHgwOSwweGVjLDB4MTgsMHhmOSwweDEwLDB4M2UsMHgxMCwweDRmLDB4YjEsMHgwYSwweDZjLDB4ODAsMHhmOSB9LAotICAxNiwgMHhlOWIwLCAwLCB7MHg4OSwweDM2LDB4ODIsMHgwYiwweGE2LDB4MDMsMHhlYywweDUwLDB4ZjksMHg1MCwweDNlLDB4YzAsMHgxZiwweDkwLDB4MDMsMHg2MCB9LAotICAxNiwgMHhlOWMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhmZCwweGEwLDB4M2QsMHhjMCB9LAotICAxNiwgMHhlOWQwLCAwLCB7MHgwYywweDcwLDB4ODMsMHgyYywweDAwLDB4ZWYsMHgwMiwweDM1LDB4YzAsMHgwZCwweGUyLDB4MDMsMHhmYywweDA0LDB4ZmYsMHgwMiB9LAotICAxNiwgMHhlOWUwLCAwLCB7MHgyZCwweGUwLDB4OGUsMHhmMCwweDAzLDB4M2MsMHgxMCwweGRjLDB4MDAsMHgzZiwweDgwLDB4MGMsMHhkOCwweDAzLDB4ZmMsMHgwMCB9LAotICAxNiwgMHhlOWYwLCAwLCB7MHhkZSwweDE4LDB4MzMsMHhmMCwweDRmLDB4ZDAsMHgwMywweGMwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTAwLCAwLCB7MHg4MSwweDAwLDB4NmMsMHgwMCwweGI5LDB4MDAsMHgyZSwweGMwLDB4NGMsMHhiMCwweDAzLDB4NmMsMHgwMCwweDhiLDB4MDIsMHgzNiB9LAotICAxNiwgMHhlYTEwLCAwLCB7MHhjMCwweDBkLDB4YWMsMHgxMiwweGVjLDB4MDAsMHg3OSwweDAwLDB4MmUsMHgzMCwweDBkLDB4M2QsMHg0MiwweGFjLDB4MDAsMHg4OSB9LAotICAxNiwgMHhlYTIwLCAwLCB7MHg4OCwweDFhLDB4MTAsMHgwZCwweDg2LDB4MDIsMHhlZSwweDA0LDB4YmIsMHg0MCwweDIyLDB4ZTAsMHgwYiwweDkwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhlYTMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDEsMHhiOSwweDAwLDB4MmUsMHhjMCB9LAotICAxNiwgMHhlYTQwLCAwLCB7MHgwOCwweGIwLDB4NDIsMHhhYywweDAwLDB4MGIsMHgwNSwweDI2LDB4YzAsMHgwOSwweDk0LDB4MjAsMHhlYywweDAwLDB4YjksMHg4MCB9LAotICAxNiwgMHhlYTUwLCAwLCB7MHg2ZSwweGM0LDB4ODgsMHhiMCwweDgyLDB4MmMsMHgwMCwweDliLDB4ODIsMHgyZSwweDQyLDB4MDgsMHg4MSwweDAyLDB4ZTQsMHg4MCB9LAotICAxNiwgMHhlYTYwLCAwLCB7MHhiOCwweDAwLDB4MjIsMHhjMSwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTcwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgxMCwweGIxLDB4MjUsMHgyYywweGNhLDB4MDgsMHgzNCwweDQ2LDB4Y2MsMHgwOCwweDgzLDB4MDAsMHgyNCB9LAotICAxNiwgMHhlYTgwLCAwLCB7MHhjMiwweDBiLDB4MDIsMHg1MiwweGNjLDB4ODEsMHg4MywweDAwLDB4MmMsMHgwMCwweDE5LDB4YjIsMHg0MiwweGFjLDB4ODAsMHg4MSB9LAotICAxNiwgMHhlYTkwLCAwLCB7MHgwOCwweDI4LDB4ODAsMHgwOSwweDAwLDB4MDIsMHhjNCwweDQwLDB4YjEsMHgwMCwweDIwLDB4YzAsMHgwYiwweDEwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhlYWEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDZjLDB4MDAsMHhiOSwweDAwLDB4M2YsMHhkMCB9LAotICAxNiwgMHhlYWIwLCAwLCB7MHgwOCwweGY2LDB4MDcsMHhiYywweGMyLDB4YWYsMHgzMCwweDc1LDB4ZGMsMHgwZCwweDE2LDB4MDIsMHhmYywweGUwLDB4YjksMHg1MCB9LAotICAxNiwgMHhlYWMwLCAwLCB7MHgzZSwweGNjLDB4MGMsMHhiMCwweDIzLDB4MmMsMHgxMCwweGQ5LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg5MCwweDAzLDB4ZWMsMHgwMCB9LAotICAxNiwgMHhlYWQwLCAwLCB7MHhkZSwweDAxLDB4MzIsMHhjMCwweDBmLDB4OTAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYWUwLCAwLCB7MHhhMCwweDE5LDB4ZmMsMHgwMCwweGZkLDB4MTAsMHgzZiwweGNhLDB4MmUsMHhmNiwweDAzLDB4NmQsMHg5NCwweDlmLDB4MzAsMHgzYSB9LAotICAxNiwgMHhlYWYwLCAwLCB7MHhjOSwweDBjLDB4ODMsMHg5MywweGZjLDB4ODAsMHhmZiwweDExLDB4N2UsMHgxOSwweDBiLDB4YjEsMHgwMywweGZjLDB4NDAsMHhmZCB9LAotICAxNiwgMHhlYjAwLCAwLCB7MHgwOCwweDNiLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhmYywweDgwLDB4NzcsMHgwMCwweGJmLDB4YzAsMHgwZiwweDUwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhlYjEwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMSwweGZjLDB4MDAsMHhmNCwweDk0LDB4MzcsMHhjOCB9LAotICAxNiwgMHhlYjIwLCAwLCB7MHgwZCwweDY5LDB4NjMsMHg3YywweDEwLDB4ZmYsMHg2MiwweDM3LDB4YzAsMHgwZCwweGI0LDB4MDMsMHg3YywweDYwLDB4ZDQsMHg4MCB9LAotICAxNiwgMHhlYjMwLCAwLCB7MHgzZiwweDQwLDB4MGYsMHg0OCwweDIzLDB4MzIsMHgwMCwweGNlLDB4MDAsMHhiZiwweDQwLDB4OGYsMHhkMSwweDAzLDB4MzAsMHhlMCB9LAotICAxNiwgMHhlYjQwLCAwLCB7MHhmZiwweDMwLDB4M2IsMHg2MCwweDBmLDB4ZDgsMHgwMywweGIwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjUwLCAwLCB7MHg4MCwweDEwLDB4ZWQsMHgyMCwweGI4LDB4MjQsMHgyMywweGY0LDB4NDksMHhhMiwweDAyLDB4M2YsMHg0MCwweDhmLDB4NTEsMHgyMyB9LAotICAxNiwgMHhlYjYwLCAwLCB7MHhkYSwweDA4LDB4ZjYsMHgxMiwweDNkLDB4ODAsMHg5YiwweDgwLDB4MmUsMHg0OSwweDRiLDB4ODAsMHgwMywweDQwLDB4MDAsMHhkOSB9LAotICAxNiwgMHhlYjcwLCAwLCB7MHgwMSwweDIyLDB4NzQsMHgwYiwweGQ1LDB4MDIsMHgyMSwweDAwLDB4YmYsMHg0MiwweDJlLDB4NDksMHgwYiwweDljLDB4MDIsMHhlMCB9LAotICAxNiwgMHhlYjgwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNkLDB4ODAsMHhiOCwweDIwLDB4MjgsMHhjMSB9LAotICAxNiwgMHhlYjkwLCAwLCB7MHgxYiwweGEwLDB4MDIsMHg0YywweDAwLDB4OTMsMHgyMCwweDJjLDB4ZDgsMHgwYiwweDM0LDB4MDIsMHhjYywweDAwLDB4OTAsMHgwMSB9LAotICAxNiwgMHhlYmEwLCAwLCB7MHgyYywweGM2LDB4MWEsMHhhMCwweDAyLDB4NjgsMHgwOCwweDgzLDB4MDAsMHhhNCwweDQwLDB4MGIsMHgxMCwweDAyLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYmIwLCAwLCB7MHhiMywweDEwLDB4MjgsMHg0MiwweDBiLDB4MTQsMHgwMiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYmMwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwMCwweGI4LDB4NjAsMHgyYSwweGMwLDB4MWIsMHhhMCwweDhlLDB4YWMsMHgwMSwweDliLDB4MDUsMHgyNiB9LAotICAxNiwgMHhlYmQwLCAwLCB7MHhjMCwweDAzLDB4YjAsMHg0MiwweDZjLDB4MDAsMHg5YiwweDgwLDB4MmUsMHhjMCwweDAzLDB4YTAsMHgwNiwweDY5LDB4MDAsMHg5OSB9LAotICAxNiwgMHhlYmUwLCAwLCB7MHg4MCwweGFhLDB4YzAsMHgwYiwweDkwLDB4MDIsMHg2MywweDAwLDB4M2IsMHgwMCwweDJlLDB4NTgsMHg0YiwweDkwLDB4MDIsMHhmMCB9LAotICAxNiwgMHhlYmYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMSwweGVjLDB4MDQsMHhmOCwweDgwLDB4YmEsMHhjMCB9LAotICAxNiwgMHhlYzAwLCAwLCB7MHgwZiwweDMwLDB4MDMsMHg2YywweDEwLDB4ZGIsMHgwMywweDM2LDB4YzAsMHg4ZiwweGIwLDB4MDMsMHhlYywweDA4LDB4ZDgsMHg4MCB9LAotICAxNiwgMHhlYzEwLCAwLCB7MHg3ZSwweGUwLDB4MDYsMHg4OCwweDAzLDB4NDEsMHgwOCwweGNiLDB4YTAsMHgzZSwweDY0LDB4MGYsMHg5MCwweDBiLDB4MmEsMHgwMCB9LAotICAxNiwgMHhlYzIwLCAwLCB7MHg3YiwweDAwLDB4M2EsMHgwMSwweDBmLDB4OTAsMHgwMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzMwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGZjLDB4ODQsMHgzMiwweGMwLDB4MGMsMHhmOSwweDAzLDB4NWMsMHgxMCwweGVmLDB4MDAsMHgzYiB9LAotICAxNiwgMHhlYzQwLCAwLCB7MHhjMCwweDBjLDB4NzAsMHgwMywweDljLDB4MDAsMHhlYywweDAxLDB4M2YsMHhlNCwweDRmLDB4ZDEsMHgwMywweGYxLDB4MDAsMHhmMyB9LAotICAxNiwgMHhlYzUwLCAwLCB7MHgwNSwweDMzLDB4NjAsMHgwZiwweGQwLDB4MDMsMHhiYywweDA0LDB4ZmYsMHgwMCwweDNmLDB4MjEsMHgwZiwweGQwLDB4MDMsMHhmOCB9LAotICAxNiwgMHhlYzYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhjOCwweDQwLDB4M2EsMHhjNiB9LAotICAxNiwgMHhlYzcwLCAwLCB7MHgwZCwweGI0LDB4MDMsMHg2YywweDAwLDB4ZjMsMHgwMCwweDM0LDB4YzAsMHgwZSwweGIwLDB4MDMsMHg2YywweDAwLDB4ZTksMHgxMCB9LAotICAxNiwgMHhlYzgwLCAwLCB7MHgzYSwweGMwLDB4MGYsMHg4NCwweDAzLDB4MmMsMHg2MCwweGNiLDB4MDAsMHgzMiwweDYwLDB4MGMsMHg1MCwweDAzLDB4NjEsMHgwMCB9LAotICAxNiwgMHhlYzkwLCAwLCB7MHhjYiwweDAwLDB4M2UsMHg5MCwweDBlLDB4OTAsMHhhMywweDkwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlY2EwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMiwweDg4LDB4MDEsMHgwMSwweGYwLDB4MjAsMHhiMCwweDAxLDB4M2UsMHgwMCwweDNmLDB4MDAsMHgzMyB9LAotICAxNiwgMHhlY2IwLCAwLCB7MHhjMCwweDBiLDB4ZjAsMHgzMiwweDNjLDB4MDgsMHg4OSwweDgwLDB4MjIsMHhjMCwweDAxLDB4MTUsMHgxMiwweGFjLDB4MDAsMHg4YiB9LAotICAxNiwgMHhlY2MwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHg0OCwweGRiLDB4MDIsMHgyZiwweDQwLDB4OGYsMHgwMCwweDJlLDB4MDEsMHgwOCwweGQ0LDB4ODAsMHgzMiB9LAotICAxNiwgMHhlY2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHgwOCwweDAwLDB4MDgsMHhmMCB9LAotICAxNiwgMHhlY2UwLCAwLCB7MHgwOCwweDAwLDB4MTIsMHg0YywweDAwLDB4MzMsMHgwMSwweDI0LDB4YzAsMHg0YSwweDMwLDB4MDIsMHg0YywweDAwLDB4YTAsMHgyMCB9LAotICAxNiwgMHhlY2YwLCAwLCB7MHgyOCwweGMwLDB4MGIsMHgxMCwweDAyLDB4NDYsMHgwNCwweDgzLDB4MDQsMHgyMCwweGMwLDB4MjksMHgxOCwweDAyLDB4MDQsMHg0MCB9LAotICAxNiwgMHhlZDAwLCAwLCB7MHhiMywweDAwLDB4MmMsMHg0MCwweDBhLDB4MWMsMHg0MiwweGIxLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMSwweDhkLDB4ODAsMHgyMSwweGUwLDB4MTgsMHhjOCwweDAyLDB4MWUsMHgwMCwweGIzLDB4YTAsMHgyMSB9LAotICAxNiwgMHhlZDIwLCAwLCB7MHhlMCwweDFiLDB4MzgsMHgwMiwweDBlLDB4MDEsMHhhNywweDgwLDB4MjEsMHhlMCwweDA5LDB4ZDgsMHg0MCwweGQ2LDB4NDAsMHg4NyB9LAotICAxNiwgMHhlZDMwLCAwLCB7MHg4MCwweDAxLDB4ZTAsMHgwOSwweDU5LDB4MDIsMHgxNiwweDAwLDB4OTcsMHg4NCwweDJkLDB4NjAsMHgwOCwweDU4LDB4NDAsMHgwMCB9LAotICAxNiwgMHhlZDQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDJjLDB4NDAsMHhjMCwweDAwLDB4MzgsMHhjNCB9LAotICAxNiwgMHhlZDUwLCAwLCB7MHgwYywweDMwLDB4MjcsMHg0YywweDIwLDB4ZjMsMHgwMSwweDM0LDB4YzEsMHgwZSwweDNhLDB4MDMsMHg0YywweGM0LDB4ZTAsMHgwMCB9LAotICAxNiwgMHhlZDYwLCAwLCB7MHgxOCwweGM4LDB4MGYsMHgzNCwweDAzLDB4NDQsMHg0MCwweGMzLDB4MDAsMHgzMCwweGMwLDB4MGQsMHg5MCwweDAzLDB4MmUsMHgwMCB9LAotICAxNiwgMHhlZDcwLCAwLCB7MHhmMywweDAwLDB4M2UsMHg0MCwweDBlLDB4MTAsMHgwMSwweDlhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDgwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGY5LDB4MDAsMHgwZSwweGQ0LDB4MGUsMHhiMCwweDAzLDB4ZWMsMHgyMCwweGZiLDB4MjAsMHgzZiB9LAotICAxNiwgMHhlZDkwLCAwLCB7MHhjNCwweDBmLDB4ZjEsMHgwMywweGVjLDB4NjAsMHhkYiwweDEwLDB4M2YsMHhjMCwweDRmLDB4ZjAsMHgwMywweGE0LDB4NDYsMHhmYiB9LAotICAxNiwgMHhlZGEwLCAwLCB7MHgwMCwweGJkLDB4YzAsMHgwZSwweGQwLDB4MGIsMHhiNCwweDAwLDB4ZWYsMHg0OCwweDNmLDB4NDAsMHgwZiwweDUwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhlZGIwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDAsMHhmOCwweDAwLDB4MzIsMHhkNCB9LAotICAxNiwgMHhlZGMwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhZCwweDAwLDB4ZWIsMHgwOCwweDIyLDB4ZDIsMHgwYywweGI2LDB4MDMsMHg2YywweDAwLDB4ZjIsMHg4MCB9LAotICAxNiwgMHhlZGQwLCAwLCB7MHgzNiwweGMwLDB4MGUsMHhhMCwweDAzLDB4MjgsMHgxMCwweGNiLDB4MDAsMHhiMiwweGMwLDB4MGYsMHhkNiwweDAzLDB4MjgsMHgxMCB9LAotICAxNiwgMHhlZGUwLCAwLCB7MHhmYiwweDIwLDB4M2UsMHg0MCwweDRmLDB4OTksMHgxMywweDJiLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZGYwLCAwLCB7MHg0OCwweDExLDB4OWQsMHgxMCwweGI0LDB4MDEsMHgyMSwweGMxLDB4OGIsMHhjMCwweDAyLDB4MWMsMHhhMCwweGJmLDB4MDQsMHgyNyB9LAotICAxNiwgMHhlZTAwLCAwLCB7MHhjOCwweDA4LDB4NzUsMHgwMiwweDFjLDB4YzAsMHhiNiwweDAwLDB4MjEsMHhjMCwweDA4LDB4ZjAsMHg0MiwweDE4LDB4MTAsMHg4ZiB9LAotICAxNiwgMHhlZTEwLCAwLCB7MHgwMCwweDIxLDB4YzAsMHgwYiwweDU0LDB4YTIsMHgxYywweDAwLDB4YjcsMHgwNCwweDJkLDB4NDEsMHgwYiwweDUyLDB4MDIsMHgxMiB9LAotICAxNiwgMHhlZTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ODAsMHhiNiwweDg4LDB4YTUsMHhlMCB9LAotICAxNiwgMHhlZTMwLCAwLCB7MHgwYiwweDc4LDB4MTIsMHg5ZSwweDgxLDB4YTcsMHg5MCwweDI1LDB4ZTQsMHg4OCwweDc4LDB4MDIsMHgxZSwweDgwLDB4YmYsMHg4MCB9LAotICAxNiwgMHhlZTQwLCAwLCB7MHgyNCwweDYwLDB4MGIsMHg2OCwweDAyLDB4MWUsMHgwMCwweDg3LDB4ODQsMHg2MSwweGUwLDB4MGEsMHgxYSwweDBhLDB4MWEsMHgwMCB9LAotICAxNiwgMHhlZTUwLCAwLCB7MHhiNywweGEwLDB4MmQsMHhlMCwweDBiLDB4ZGEsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweGJhLDB4YzAsMHhhNCwweGMwLDB4MGIsMHgzNCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyNCB9LAotICAxNiwgMHhlZTcwLCAwLCB7MHhjMCwweDA4LDB4YjAsMHgwZSwweDJjLDB4MDAsMHhiMywweDk4LDB4MjAsMHg2MCwweDA5LDB4MzMsMHgwMiwweDJjLDB4MDAsMHhhMyB9LAotICAxNiwgMHhlZTgwLCAwLCB7MHhjOCwweDIwLDB4YzAsMHgwYiwweDEwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweDJjLDB4ZjAsMHgwYiwweDEwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhlZTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmZSwweDgwLDB4MzYsMHg4MSB9LAotICAxNiwgMHhlZWEwLCAwLCB7MHgwYiwweGUwLDB4MDMsMHhhOCwweDAwLDB4ZWEsMHgwMCwweGIyLDB4ODAsMHgwOCwweGEwLDB4MDMsMHg2OCwweDAwLDB4ZmUsMHgwMCB9LAotICAxNiwgMHhlZWIwLCAwLCB7MHgzNiwweGEwLDB4MWYsMHhlOCwweDEzLDB4M2IsMHg4MiwweGNlLDB4ZTAsMHgyMiwweDgwLDB4OGUsMHhhMCwweDAzLDB4MzgsMHgwMCB9LAotICAxNiwgMHhlZWMwLCAwLCB7MHhiYSwweDAwLDB4M2YsMHhhMiwweDBmLDB4YTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZWQwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MjAsMHgzYSwweDEwLDB4MDcsMHg4MCwweDAzLDB4YzEsMHgwMCwweGY4LDB4MDAsMHgzOCB9LAotICAxNiwgMHhlZWUwLCAwLCB7MHgwMCwweDJmLDB4ODAsMHgwMywweGEwLDB4MDEsMHhmOCwweDQyLDB4M2UsMHgwNSwweDBlLDB4ODAsMHgwYiwweGUwLDB4ODAsMHhkOCB9LAotICAxNiwgMHhlZWYwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MDMsMHhlMSwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MGIsMHhkMiB9LAotICAxNiwgMHhlZjAwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhjOSwweDAwLDB4M2EsMHg1MCB9LAotICAxNiwgMHhlZjEwLCAwLCB7MHg4ZiwweDkwLDB4ODMsMHhhNCwweDAyLDB4ZDEsMHgwMCwweGIyLDB4NDAsMHg0YywweDkwLDB4MjMsMHgyNCwweDA4LDB4YzksMHgwMSB9LAotICAxNiwgMHhlZjIwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGMxLDB4MDAsMHgzMiwweDQwLDB4MGYsMHgxNCwweDBhLDB4MjUsMHgyMCB9LAotICAxNiwgMHhlZjMwLCAwLCB7MHhlOSwweDAwLDB4M2UsMHg0MiwweDBmLDB4OTAsMHgwMywweGMyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwYSwweDg5LDB4MDAsMHgyMiwweDcwLDB4MGIsMHg5MCwweDEyLDB4MjUsMHg4MCwweGM5LDB4MDAsMHgyMiB9LAotICAxNiwgMHhlZjUwLCAwLCB7MHg0MCwweDBhLDB4OTAsMHgwMywweDY0LDB4MDAsMHg4OSwweDIwLDB4MmMsMHg0MCwweDBhLDB4OTAsMHgwYSwweDI0LDB4MDAsMHg4OSB9LAotICAxNiwgMHhlZjYwLCAwLCB7MHhjMSwweDMyLDB4NDAsMHgwYiwweDk4LDB4MDIsMHgwNiwweDAwLDB4ODksMHg5MCwweDJlLDB4NDAsMHgwYiwweDk0LDB4MTIsMHhlMCB9LAotICAxNiwgMHhlZjcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDA0LDB4MDAsMHg4OSwweDAwLDB4NmEsMHg0MiB9LAotICAxNiwgMHhlZjgwLCAwLCB7MHgwYSwweDEwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweGEyLDB4NDAsMHgwYSwweDkwLDB4MDIsMHgyNCwweDAwLDB4MDksMHgwMCB9LAotICAxNiwgMHhlZjkwLCAwLCB7MHgyZSwweDQwLDB4NTgsMHgxMCwweDAyLDB4MjQsMHgwMCwweDg5LDB4ODAsMHhhYSwweDYwLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgwNCB9LAotICAxNiwgMHhlZmEwLCAwLCB7MHhhOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTQsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZmIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MDAsMHg2MCwweDQ4LDB4MGIsMHgxMCwweDAyLDB4MDQsMHg4MSwweDgxLDB4MjAsMHg2MCB9LAotICAxNiwgMHhlZmMwLCAwLCB7MHg0OCwweDBhLDB4MTIsMHgwMiwweDQ0LDB4ODgsMHg4MSwweDAwLDB4MGUsMHg1OSwweDBhLDB4MTQsMHgwMiwweDA1LDB4MDAsMHg4MSB9LAotICAxNiwgMHhlZmQwLCAwLCB7MHhjMCwweDI4LDB4NTAsMHg0OSwweDMwLDB4MDIsMHg4YywweDg0LDB4MDEsMHg2MCwweDJjLDB4NTAsMHgwYiwweDEwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhlZmUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhjMCwweDU0LDB4MmEsMHgwMCB9LAotICAxNiwgMHhlZmYwLCAwLCB7MHgwZSwweDg1LDB4MDMsMHhhMCwweDAwLDB4YzgsMHg1MCwweDMyLDB4MTUsMHgxZSwweDA1LDB4MjIsMHgyMSwweDQyLDB4YzgsMHgwMCB9LAotICAxNiwgMHhmMDAwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4MDAsMHgwNCwweGM4LDB4MDAsMHgzYSwweDAwLDB4NGYsMHg4NSwweDAzLDB4YTEsMHg0MCB9LAotICAxNiwgMHhmMDEwLCAwLCB7MHg2OCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDIwLCAwLCB7MHg5OCwweDFkLDB4ZTQsMHg0MCwweGZkLDB4MDMsMHgzZSwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTQsMHg0OCwweGU5LDB4MTAsMHgzZSB9LAotICAxNiwgMHhmMDMwLCAwLCB7MHg0NSwweDBmLDB4OTEsMHgxMywweGU0LDB4NDAsMHhmZCwweDAwLDB4M2YsMHg0NCwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDIsMHhmZCB9LAotICAxNiwgMHhmMDQwLCAwLCB7MHg0MCwweDMzLDB4NTAsMHgwZiwweGQ0LDB4MjMsMHg3NCwweDQwLDB4ZjksMHgxMCwweDNmLDB4NDAsMHgwZiwweDU0LDB4MDMsMHhlNiB9LAotICAxNiwgMHhmMDUwLCAwLCB7MHgwMiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU0LDB4MDAsMHhmOSwweDAxLDB4MzMsMHg2YSB9LAotICAxNiwgMHhmMDYwLCAwLCB7MHgwOSwweDkwLDB4MDMsMHhiNiwweDM0LDB4ZjksMHhjOCwweDMyLDB4NjQsMHgwYywweDlhLDB4MDMsMHhlNiwweGEwLDB4ZGQsMHgwMCB9LAotICAxNiwgMHhmMDcwLCAwLCB7MHgzYywweDcwLDB4MGYsMHg5MCwweDAzLDB4YTUsMHgwMCwweDg5LDB4ODAsMHgzMywweDMyLDB4MGYsMHhkOCwweDEzLDB4M2MsMHgwMCB9LAotICAxNiwgMHhmMDgwLCAwLCB7MHhmZCwweDAwLDB4NzAsMHg1MCwweDBmLDB4ZDAsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDkwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHg4MCwweGI4LDB4YTgsMHgyMiwweDEwLDB4MDgsMHg4OCwweDAyLDB4MjEsMHgwMCwweGI4LDB4YzAsMHgyMCB9LAotICAxNiwgMHhmMGEwLCAwLCB7MHgzMCwweDBkLDB4OGUsMHg4NywweDgzLDB4ODgsMHg4OCwweDAwLDB4MmUsMHgzNCwweDBiLDB4OGEsMHg4MiwweDIyLDB4ODAsMHhkYyB9LAotICAxNiwgMHhmMGIwLCAwLCB7MHhlMCwweDIyLDB4MzgsMHgwYiwweDgwLDB4MDIsMHgyMCwweDAwLDB4ZjgsMHhhOCwweDJhLDB4MjgsMHgwYiwweDgwLDB4MDIsMHgwZSB9LAotICAxNiwgMHhmMGMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MjAsMHhiMSwweDAwLDB4MjAsMHg0MCB9LAotICAxNiwgMHhmMGQwLCAwLCB7MHgwYSwweDkyLDB4OTIsMHg4NCwweDExLDB4YjEsMHgyNCwweDY4LDB4NTgsMHgwOSwweDExLDB4MDIsMHhjNCwweDIwLDB4OTEsMHgwMSB9LAotICAxNiwgMHhmMGUwLCAwLCB7MHgyYywweDQ4LDB4MWIsMHg1MCwweDAyLDB4NzQsMHg4NCwweDk1LDB4NDgsMHhhYywweDQ4LDB4MGIsMHg5NCwweDAyLDB4MDQsMHgwNCB9LAotICAxNiwgMHhmMGYwLCAwLCB7MHhiMSwweDAyLDB4MjQsMHg0OCwweDBiLDB4MTAsMHgwMiwweDAyLDB4MDUsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTAwLCAwLCB7MHgxOCwweDExLDB4YTQsMHgwMCwweGIxLDB4MjAsMHgyMiwweDQwLDB4MGEsMHg5MCwweDA2LDB4MmMsMHgwMSwweGI5LDB4MDAsMHgyYSB9LAotICAxNiwgMHhmMTEwLCAwLCB7MHg0MCwweDA5LDB4OTAsMHgwMiwweGE0LDB4MDAsMHg5YiwweDA4LDB4MmUsMHg0OCwweDBiLDB4MTIsMHgxYSwweDc0LDB4MDAsMHg5NSB9LAotICAxNiwgMHhmMTIwLCAwLCB7MHg0NSwweDJlLDB4NjAsMHgwMywweDkwLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiB9LAotICAxNiwgMHhmMTMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweDgwLDB4MzAsMHg0MCB9LAotICAxNiwgMHhmMTQwLCAwLCB7MHgwZSwweDE2LDB4MDMsMHhhNCwweDAwLDB4YjksMHgwNCwweDMyLDB4NDAsMHgwZCwweDkwLDB4MDIsMHhlNCwweDAwLDB4ZDksMHg0MCB9LAotICAxNiwgMHhmMTUwLCAwLCB7MHgyZSwweDQwLDB4MWYsMHg5OCwweDAzLDB4ZTUsMHg4MCwweGQ5LDB4MDAsMHhhZSwweDYwLDB4MDcsMHgxMCwweDBiLDB4MjYsMHgwMSB9LAotICAxNiwgMHhmMTYwLCAwLCB7MHhiOSwweDAwLDB4YTYsMHg0MCwweDBmLDB4OTAsMHgwYiwweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTcwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDAsMHhiZSwweDQwLDB4YWMsMHg5MiwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHhiNCB9LAotICAxNiwgMHhmMTgwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAwLDB4M2UsMHg2MCwweDBmLDB4OTAsMHgwMywweGE0LDB4ODAsMHhmOSB9LAotICAxNiwgMHhmMTkwLCAwLCB7MHgwMCwweDMyLDB4MDAsMHgwZiwweDkwLDB4ODMsMHhlNiwweDg1LDB4ZTEsMHgwMCwweDMyLDB4NDQsMHgwZiwweDEwLDB4MDMsMHhjYSB9LAotICAxNiwgMHhmMWEwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwMCB9LAotICAxNiwgMHhmMWIwLCAwLCB7MHgwZiwweDgwLDB4MTMsMHhlMCwweDk0LDB4ZTAsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YzgsMHgwMCB9LAotICAxNiwgMHhmMWMwLCAwLCB7MHgzZSwweDAwLDB4MGQsMHg4MCwweDQzLDB4MjAsMHgwOCwweGY4LDB4MDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHg0MCB9LAotICAxNiwgMHhmMWQwLCAwLCB7MHhmOCwweDAwLDB4MzIsMHgwMCwweDRjLDB4ODAsMHgyMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMWUwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyMywweDgwLDB4MGIsMHhhMCwweDAyLDB4ZmIsMHgwNCwweDZhLDB4MDAsMHgyMiB9LAotICAxNiwgMHhmMWYwLCAwLCB7MHg4MCwweDBhLDB4YTAsMHgwMywweDY4LDB4MGEsMHg4ZSwweDg4LDB4M2EsMHg4MCwweDA4LDB4YTAsMHgwMiwweDA4LDB4MDAsMHhiYSB9LAotICAxNiwgMHhmMjAwLCAwLCB7MHgwMCwweGI3LDB4MjIsMHgwMywweGU0LDB4MDIsMHhmYSwweDAwLDB4OGEsMHgwMCwweDIyLDB4ODAsMHgwOCwweGU4LDB4MDIsMHhjYSB9LAotICAxNiwgMHhmMjEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4NjAsMHg0MSB9LAotICAxNiwgMHhmMjIwLCAwLCB7MHgwMywweDMwLDB4MDIsMHhjYywweDQxLDB4YTMsMHgwMCwweDA0LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgyYywweDAwLDB4YTMsMHg4MCB9LAotICAxNiwgMHhmMjMwLCAwLCB7MHgyYywweGMwLDB4MDksMHgzOCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHhhMCwweGMwLDB4MGIsMHgzNCwweDAyLDB4Y2MsMHg4MCB9LAotICAxNiwgMHhmMjQwLCAwLCB7MHhhMSwweDAwLDB4MjAsMHhjMCwweDA4LDB4MzgsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjUwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHg0MCwweGI3LDB4MDAsMHg2MSwweDAwLDB4MGIsMHg3MSwweDAyLDB4ZGMsMHgwMCwweGEzLDB4MDAsMHgyNSB9LAotICAxNiwgMHhmMjYwLCAwLCB7MHhjOCwweDE5LDB4MzgsMHgwMiwweDVjLDB4ODAsMHhhNywweDAwLDB4MGYsMHhlOCwweDA5LDB4NjQsMHgyMiwweDEwLDB4MDAsMHhiMyB9LAotICAxNiwgMHhmMjcwLCAwLCB7MHgwMCwweDI1LDB4YzgsMHgwYiwweDYwLDB4MDIsMHhmMiwweDAwLDB4ODUsMHgwMSwweDIzLDB4ZTgsMHgwOCwweDcwLDB4ODIsMHhlOCB9LAotICAxNiwgMHhmMjgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MjAsMHhmZiwweDgwLDB4YTEsMHhhMCB9LAotICAxNiwgMHhmMjkwLCAwLCB7MHgwZiwweDdhLDB4NDIsMHhkYSwweDAwLDB4ZTcsMHhlOCwweDM1LDB4ZjAsMHgyZiwweDdiLDB4NjIsMHgxZSwweDgyLDB4ZTYsMHg4MCB9LAotICAxNiwgMHhmMmEwLCAwLCB7MHgxZCwweGUwLDB4MGQsMHhmOCwweDBiLDB4MWUsMHgwMCwweGY3LDB4ODAsMHgzMSwweGYwLDB4MGYsMHg3OCwweDAzLDB4ZGUsMHgwYyB9LAotICAxNiwgMHhmMmIwLCAwLCB7MHhlZiwweDgwLDB4MzEsMHhmOCwweDJjLDB4NzgsMHgwMywweGVhLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMmMwLCAwLCB7MHgwOCwweDFkLDB4YWQsMHg4NCwweGZiLDB4NjgsMHgzZSwweDAwLDB4MGYsMHhiMCwweDAzLDB4ZTgsMHgwMCwweGZiLDB4MDAsMHhmYSB9LAotICAxNiwgMHhmMmQwLCAwLCB7MHhkOCwweDBlLDB4YjUsMHgwMywweGVkLDB4MDAsMHhkYiwweDAwLDB4M2EsMHhjMCwweDhlLDB4YTAsMHgwMywweGUwLDB4MDAsMHhmYiB9LAotICAxNiwgMHhmMmUwLCAwLCB7MHg0MCwweDNlLDB4YzAsMHgwYiwweGIwLDB4NDMsMHhjNCwweDA0LDB4ZWYsMHgwMiwweGJmLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhmMmYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4NDIsMHhjNywweDM4LDB4MzMsMHg2NCB9LAotICAxNiwgMHhmMzAwLCAwLCB7MHgwZSwweDdjLDB4MDMsMHg1ZSwweDAwLDB4ZGYsMHhhMCwweDM3LDB4ZjAsMHgwZCwweGY4LDB4MDMsMHhmZiwweDIwLDB4Y2YsMHg4MSB9LAotICAxNiwgMHhmMzEwLCAwLCB7MHgzMywweGUyLDB4MGMsMHhkOCwweDAzLDB4YmUsMHgwMCwweDdmLDB4YzAsMHgzMywweGUwLDB4MGMsMHhmOSwweDAzLDB4N2UsMHgwMCB9LAotICAxNiwgMHhmMzIwLCAwLCB7MHhmZCwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZjgsMHgwMywweGMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweDg3LDB4YTAsMHgyMSwweDE0LDB4MDgsMHg3MSwweDAyLDB4MTQsMHgxMCwweGQ3LDB4MjAsMHgzNSB9LAotICAxNiwgMHhmMzQwLCAwLCB7MHhjMCwweDBjLDB4NzAsMHgwMywweGJjLDB4MDAsMHg4NSwweDA4LDB4MmIsMHhjMCwweDRkLDB4NDYsMHgwMiwweGQxLDB4MDAsMHhiNyB9LAotICAxNiwgMHhmMzUwLCAwLCB7MHgwMCwweDIxLDB4YzAsMHgwOCwweDYwLDB4MDIsMHgwOCwweDgwLDB4ZjUsMHgyMCwweDNkLDB4Y2EsMHgwZiwweDU0LDB4MDMsMHhlYSB9LAotICAxNiwgMHhmMzYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MTEsMHg4ZiwweDAxLDB4MjAsMHg4NCB9LAotICAxNiwgMHhmMzcwLCAwLCB7MHgxYSwweGYwLDB4MDIsMHgxOCwweDAwLDB4YTcsMHgzNCwweDY1LDB4YzAsMHgwOSwweDcxLDB4MDIsMHhkYywweDAwLDB4OGUsMHgwMCB9LAotICAxNiwgMHhmMzgwLCAwLCB7MHgyOSwweGMwLDB4MDgsMHg1MCwweDA2LDB4OWMsMHgwMCwweGJmLDB4ODgsMHgyZCwweGM0LDB4MGEsMHg2MCwweDI2LDB4NTgsMHgyNCB9LAotICAxNiwgMHhmMzkwLCAwLCB7MHg5NywweDAwLDB4NmQsMHhjMCwweDliLDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmM2EwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweDhiLDB4NDAsMHgyMCwweDAwLDB4MTgsMHgzMCwweDAyLDB4MDAsMHgwMCwweGJiLDB4MDIsMHgyNCB9LAotICAxNiwgMHhmM2IwLCAwLCB7MHhjMCwweDA4LDB4MzAsMHgyMCwweGNjLDB4MDAsMHg4MSwweGMwLDB4MjgsMHhjMCwweDBiLDB4MDQsMHg4MiwweGUwLDB4MTAsMHhiYiB9LAotICAxNiwgMHhmM2MwLCAwLCB7MHhhMCwweDJjLDB4ZTAsMHgwYSwweDIwLDB4MDYsMHgwMCwweDAwLDB4YjMsMHgwMCwweDI4LDB4YzAsMHgwYSwweDEwLDB4MDIsMHg4OCB9LAotICAxNiwgMHhmM2QwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhjZiwweDEwLDB4MzIsMHgwMCB9LAotICAxNiwgMHhmM2UwLCAwLCB7MHgwZSwweGYwLDB4MGIsMHgyNCwweDAwLDB4ZWYsMHgwMCwweDM3LDB4YzAsMHgwZCwweGYwLDB4MDMsMHhmYywweDA2LDB4YzEsMHg1MCB9LAotICAxNiwgMHhmM2YwLCAwLCB7MHgzYiwweGMwLDB4MGMsMHhiNCwweDAzLDB4YWMsMHgwMCwweGY4LDB4YzAsMHhiZSwweGM4LDB4MmUsMHhiMCwweDAzLDB4NmUsMHgwMSB9LAotICAxNiwgMHhmNDAwLCAwLCB7MHhmYiwweDAwLDB4MmQsMHhjMCwweDRiLDB4OTAsMHgwMiwweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDEwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwNCwweGZiLDB4MDAsMHgzZSwweDAwLDB4MGYsMHhiMCwweDAzLDB4YWQsMHgwMCwweDliLDB4MDAsMHgzZSB9LAotICAxNiwgMHhmNDIwLCAwLCB7MHhjMCwweDBmLDB4MzAsMHgwMywweGFjLDB4MDAsMHhmOCwweDAwLDB4MmUsMHhjMCwweDA1LDB4YjQsMHgwMywweGVkLDB4MDAsMHhmOCB9LAotICAxNiwgMHhmNDMwLCAwLCB7MHg0MCwweDMyLDB4YzAsMHgwOSwweDAwLDB4MDMsMHhlMCwweDkxLDB4ZTMsMHgwMCwweDNlLDB4YzAsMHgwZiwweDkwLDB4MTEsMHhlMCB9LAotICAxNiwgMHhmNDQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGVjLDB4MDAsMHhlZiwweDAwLDB4MzMsMHgyMCB9LAotICAxNiwgMHhmNDUwLCAwLCB7MHg0ZiwweGYwLDB4MDMsMHhiNCwweDAwLDB4ZWYsMHgwMywweDNhLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgzYywweDAwLDB4ZGMsMHgwMCB9LAotICAxNiwgMHhmNDYwLCAwLCB7MHgzMSwweGMwLDB4OGQsMHhmOCwweDAzLDB4ZmUsMHgwNCwweGNmLDB4MDAsMHgzMiwweGM4LDB4MGMsMHhmMCwweDBiLDB4MWMsMHgwMCB9LAotICAxNiwgMHhmNDcwLCAwLCB7MHhjZiwweDkzLDB4MzMsMHhjMCwweDhjLDB4NDAsMHgwMiwweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDgwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweGJiLDB4MDAsMHhhMiwweDA0LDB4MGIsMHgzMCwweDAyLDB4MGUsMHgwMCwweGFiLDB4MDAsMHgyYSB9LAotICAxNiwgMHhmNDkwLCAwLCB7MHhjMCwweDA5LDB4YjAsMHgwMywweDZjLDB4MDgsMHhhOCwweGMwLDB4MzYsMHhjMCwweDA4LDB4YmMsMHgwMiwweGVmLDB4MDIsMHhhYiB9LAotICAxNiwgMHhmNGEwLCAwLCB7MHhkMCwweDIwLDB4ZTAsMHgwOCwweGI4LDB4MjIsMHgyNiwweDEwLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgyMCwweDljLDB4MDIsMHgyMCB9LAotICAxNiwgMHhmNGIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MjYsMHgwMCB9LAotICAxNiwgMHhmNGMwLCAwLCB7MHgwYSwweGIwLDB4MDIsMHhhMiwweDA4LDB4YWIsMHgwMCwweDZhLDB4YzAsMHgwYiwweGIwLDB4MGEsMHgwYywweDAwLDB4OGIsMHg4MCB9LAotICAxNiwgMHhmNGQwLCAwLCB7MHgyMiwweGMwLDB4MDksMHhiMSwweDAyLDB4ZWMsMHg0MCwweDg4LDB4MDgsMHgyMiwweGMwLDB4MDgsMHhiOCwweDAyLDB4MjYsMHgwMCB9LAotICAxNiwgMHhmNGUwLCAwLCB7MHg4YiwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTgsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNGYwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweDAwLDB4MGIsMHhiMCwweDAyLDB4MDAsMHgwMSwweDgzLDB4MDAsMHgyMCB9LAotICAxNiwgMHhmNTAwLCAwLCB7MHhjMCwweDA5LDB4MzAsMHgwMiwweDRjLDB4MDAsMHgwMCwweDA0LDB4MjQsMHhjMCwweDA4LDB4MzAsMHgwNiwweDRjLDB4MDAsMHg4MCB9LAotICAxNiwgMHhmNTEwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDQxLDB4ODMsMHgwMCwweGEyLDB4YzAsMHgwOCwweDEwLDB4MGEsMHg4MiB9LAotICAxNiwgMHhmNTIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDAsMHhlZiwweDA4LDB4MjYsMHgwMCB9LAotICAxNiwgMHhmNTMwLCAwLCB7MHgwZSwweGYwLDB4MDIsMHhhMCwweDAwLDB4ZTcsMHgwMCwweDNiLDB4YzAsMHgwZiwweGY1LDB4NDMsMHgzYywweDAyLDB4ZGEsMHgwMCB9LAotICAxNiwgMHhmNTQwLCAwLCB7MHgzMiwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MDAsMHhiMiwweGMwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgxMCB9LAotICAxNiwgMHhmNTUwLCAwLCB7MHhjYiwweDAwLDB4MzIsMHhjMCwweDBjLDB4ODAsMHgwMywweDgwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTYwLCAwLCB7MHhhMCwweDBkLDB4ZmMsMHgwMCwweGZiLDB4MDAsMHgzYiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZjAsMHgwMCwweGZmLDB4MDIsMHgzZiB9LAotICAxNiwgMHhmNTcwLCAwLCB7MHhjMCwweDBkLDB4ZjIsMHgwMywweGJjLDB4MDAsMHhmNCwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmNyB9LAotICAxNiwgMHhmNTgwLCAwLCB7MHgwMCwweDMzLDB4YzAsMHgwZiwweDYwLDB4MDMsMHhmMCwweDg4LDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg0ZiwweGQwLDB4MDMsMHg2OCB9LAotICAxNiwgMHhmNTkwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4NDAsMHhmYywweDMxLDB4M2IsMHgwOCB9LAotICAxNiwgMHhmNWEwLCAwLCB7MHg0ZiwweGY5LDB4NDMsMHhlZiwweDAwLDB4ZGYsMHgzMCwweDMyLDB4MjEsMHgwZiwweDk0LDB4MDcsMHg3ZCwweDgwLDB4ZWYsMHgzOCB9LAotICAxNiwgMHhmNWIwLCAwLCB7MHgzMiwweDA5LDB4MWMsMHgzOCwweDAzLDB4ZjIsMHgyMSwweGZkLDB4MDAsMHgzMywweGM0LDB4MGMsMHhmMCwweDAyLDB4ZmMsMHgwMCB9LAotICAxNiwgMHhmNWMwLCAwLCB7MHhkZiwweDAwLDB4MzMsMHhjMCwweDBmLDB4ZjAsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNWQwLCAwLCB7MHg4MCwweDEwLDB4ZWMsMHg4OCwweDhiLDB4NjAsMHgyMiwweGU1LDB4MGUsMHhiMiwweDIyLDB4ZWMsMHg4MCwweGFmLDB4MTEsMHgyYSB9LAotICAxNiwgMHhmNWUwLCAwLCB7MHgyMCwweDBiLDB4YjEsMHgxMywweGFjLDB4NDgsMHg4YiwweDQ1LDB4MzQsMHhjYywweDQ4LDB4YjAsMHgwMiwweDZiLDB4MDAsMHhiYSB9LAotICAxNiwgMHhmNWYwLCAwLCB7MHg4MiwweDM2LDB4MDAsMHgwOCwweDg4LDB4MjIsMHhjMCwweDA0LDB4ODgsMHgwMCwweGEyLDB4MDgsMHg4YiwweDg4LDB4NjIsMHgyMCB9LAotICAxNiwgMHhmNjAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhhMSwweDMwLDB4MjgsMHgwMCB9LAotICAxNiwgMHhmNjEwLCAwLCB7MHgwYiwweDMyLDB4MDIsMHhjYywweDAwLDB4YTMsMHgyMiwweDJjLDB4MDAsMHg4YiwweDEyLDB4MDYsMHhjOCwweDgwLDB4YTMsMHgwMCB9LAotICAxNiwgMHhmNjIwLCAwLCB7MHgyMCwweDAyLDB4Y2EsMHgzMCwweDA2LDB4YzQsMHgwMSwweGIxLDB4MDAsMHg2OCwweDgwLDB4MDksMHgyMCwweDAyLDB4ODgsMHgwMCB9LAotICAxNiwgMHhmNjMwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMiwweDBiLDB4MDAsMHgwYSwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwMCwweDhiLDB4NjEsMHg2MiwweGMwLDB4MGIsMHhiMiwweDAyLDB4ZTgsMHgwMCwweGFiLDB4MDIsMHgyYSB9LAotICAxNiwgMHhmNjUwLCAwLCB7MHg2MSwweDFiLDB4OTAsMHgwMiwweGE4LDB4MDAsMHhhYiwweDAwLDB4MjAsMHhjMCwweDBhLDB4YjAsMHgwMiwweDZjLDB4MDQsMHhiYSB9LAotICAxNiwgMHhmNjYwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHg4OSwweDkwLDB4MDIsMHhlNiwweDA4LDB4OTgsMHgwMCwweDIyLDB4MDAsMHgwYiwweGIwLDB4MDIsMHhiMCB9LAotICAxNiwgMHhmNjcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVlLDB4MDAsMHhmOCwweDAxLDB4M2EsMHgwNCB9LAotICAxNiwgMHhmNjgwLCAwLCB7MHgwZiwweGFjLDB4MDMsMHhlYywweDkwLDB4ZmIsMHgwMiwweDNlLDB4ZTAsMHgwYiwweDkwLDB4NDIsMHg2NywweDgwLDB4YTgsMHhjNCB9LAotICAxNiwgMHhmNjkwLCAwLCB7MHgyMiwweDQ4LDB4MjIsMHg4NiwweDAzLDB4ZTEsMHg0MCwweGI4LDB4MDIsMHgyYSwweDQwLDB4MjksMHg5MCwweDAzLDB4ZWMsMHgwMiB9LAotICAxNiwgMHhmNmEwLCAwLCB7MHhjOSwweDQ4LDB4MzIsMHg0MCwweDBmLDB4YjAsMHgxMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNmIwLCAwLCB7MHhlMCwweDAxLDB4YWMsMHg0MCwweGZiLDB4MDAsMHgxZiwweGEyLDB4MGUsMHhmOCwweDgyLDB4ZmMsMHgwOCwweGZmLDB4MDAsMHgzZiB9LAotICAxNiwgMHhmNmMwLCAwLCB7MHhjMCwweDBmLDB4ZmEsMHg0MywweDk2LDB4NDQsMHhkNCwweDkxLDB4M2YsMHg0MCwweDBkLDB4YzAsMHgwMywweGZhLDB4MDAsMHhmZiB9LAotICAxNiwgMHhmNmQwLCAwLCB7MHgwOCwweDI1LDB4ODAsMHgwZSwweGUwLDB4MDMsMHhkMCwweDAwLDB4ZWEsMHgwMCwweDNmLDB4ODAsMHgwZiwweGMwLDB4MDMsMHg3OCB9LAotICAxNiwgMHhmNmUwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhlMSwweDIwLDB4M2EsMHg1MCB9LAotICAxNiwgMHhmNmYwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyYywweDAwLDB4ZWIsMHgwOCwweDc2LDB4MDUsMHgwZSwweGIwLDB4MjcsMHhlMCwweDEwLDB4ZWEsMHg0MCB9LAotICAxNiwgMHhmNzAwLCAwLCB7MHhiMiwweGMwLDB4MGMsMHhhNCwweDQzLDB4MjUsMHgwMCwweGY4LDB4MDAsMHgzMiwweDA4LDB4MGYsMHg4MCwweDQzLDB4ZTgsMHgwMCB9LAotICAxNiwgMHhmNzEwLCAwLCB7MHhkMSwweDA4LDB4ZWUsMHg0MCwweDBmLDB4MDAsMHgwMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzIwLCAwLCB7MHhjOCwweDA1LDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGQwLDB4MGIsMHg5MCwweDgyLDB4MmMsMHgwMCwweDg3LDB4NDAsMHgyMiB9LAotICAxNiwgMHhmNzMwLCAwLCB7MHg2MCwweDhiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHhkOCwweDUwLDB4MjIsMHhkMCwweDBjLDB4YTAsMHgwMywweDZjLDB4MDAsMHhiMyB9LAotICAxNiwgMHhmNzQwLCAwLCB7MHhjOCwweDNlLDB4ZDAsMHgwYiwweGI4LDB4MDIsMHgyNSwweDA4LDB4OGEsMHgyMCwweDJhLDB4ODAsMHg4YiwweGI4LDB4ODIsMHhmMiB9LAotICAxNiwgMHhmNzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDY0LDB4MDAsMHhhMCwweGMwLDB4MjQsMHhjMCB9LAotICAxNiwgMHhmNzYwLCAwLCB7MHgwOSwweDM4LDB4MDIsMHgyYywweDAwLDB4ODMsMHgwMywweDIwLDB4MDAsMHgxMCwweDMwLDB4MjIsMHhjYywweDAwLDB4ODMsMHgwMCB9LAotICAxNiwgMHhmNzcwLCAwLCB7MHg2MCwweDA4LDB4MGEsMHgzMCwweDgyLDB4NGMsMHgwMCwweGIxLDB4YzAsMHgwMCwweGQxLDB4MGIsMHgzOCwweDAyLDB4ODQsMHg4MCB9LAotICAxNiwgMHhmNzgwLCAwLCB7MHg4MiwweDAxLDB4MjAsMHg4MCwweDAzLDB4MzgsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzkwLCAwLCB7MHgyMCwweDAxLDB4MTYsMHg0MCwweDg0LDB4OTgsMHgyNSwweGUwLDB4MGIsMHg3YSwweDAyLDB4ZmEsMHg0OCwweGEzLDB4MjAsMHg2MSB9LAotICAxNiwgMHhmN2EwLCAwLCB7MHgyNCwweDBiLDB4NzksMHgwMCwweGNlLDB4YzAsMHg5MywweGE0LDB4MjEsMHhhNiwweDBiLDB4NzgsMHgxMiwweGRlLDB4ODAsMHhiNiB9LAotICAxNiwgMHhmN2IwLCAwLCB7MHg4MCwweDJkLDB4MjQsMHgwYiwweDRiLDB4MDIsMHgxYSwweDQwLDB4ODUsMHg4MSwweDIxLDB4NjAsMHgwYiwweDQ4LDB4MDIsMHhjOCB9LAotICAxNiwgMHhmN2MwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhlMiwweGEwLDB4YjQsMHhmZSB9LAotICAxNiwgMHhmN2QwLCAwLCB7MHg0YiwweGI4LDB4MGIsMHgwZSwweDAwLDB4YTMsMHhiMCwweDI0LDB4YTgsMHgwZSwweDFiLDB4MDIsMHhjZSwweGMxLDB4YzMsMHhjMCB9LAotICAxNiwgMHhmN2UwLCAwLCB7MHgzMCwweDY4LDB4MmUsMHgzYSwweDQ3LDB4NGUsMHg4MCwweGYxLDB4ODAsMHgzMCwweDgwLDB4MGYsMHgyMiwweDgzLDB4ODAsMHgwMCB9LAotICAxNiwgMHhmN2YwLCAwLCB7MHhjMiwweDEwLDB4MzgsMHg4MCwweDRmLDB4MDAsMHgwNywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODAwLCAwLCB7MHg0MCwweDBkLDB4YmMsMHgxMCwweGZlLDB4MDQsMHgzYiwweGMxLDB4MDcsMHhmMCwweDAzLDB4MWMsMHhjOCwweGRmLDB4MmEsMHgwYiB9LAotICAxNiwgMHhmODEwLCAwLCB7MHhjNCwweDhmLDB4ZDEsMHg0MywweGY4LDB4MDIsMHg3ZiwweDAwLDB4M2YsMHhjMCwweDBjLDB4ZjEsMHgwZiwweDNjLDB4MDAsMHhmMiB9LAotICAxNiwgMHhmODIwLCAwLCB7MHgxMSwweDNmLDB4NDEsMHgxZiwweDUyLDB4MDMsMHhiYywweDBlLDB4ZWQsMHgxNCwweDNmLDB4NDAsMHgwZiwweGY4LDB4MDMsMHhkMCB9LAotICAxNiwgMHhmODMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU0LDB4MDAsMHhlOSwweDAwLDB4MzIsMHg4MCB9LAotICAxNiwgMHhmODQwLCAwLCB7MHgwZSwweGJlLDB4NGIsMHg2ZiwweDAwLDB4Y2IsMHg4MiwweDdhLDB4YzAsMHgyYywweGIwLDB4MDMsMHgyYywweDAwLDB4YzksMHgwMCB9LAotICAxNiwgMHhmODUwLCAwLCB7MHgzMiwweDAwLDB4MmMsMHgxMCwweDAzLDB4MmMsMHgwOCwweGMwLDB4MDAsMHgyNiwweDQwLDB4NmMsMHg5MCwweDEzLDB4MjQsMHgxMiB9LAotICAxNiwgMHhmODYwLCAwLCB7MHhjOCwweDAxLDB4M2UsMHgwMCwweDBmLDB4YjgsMHgwYiwweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODcwLCAwLCB7MHg0OCwweDExLDB4OTQsMHgwMCwweDhkLDB4MDAsMHgyMSwweDgwLDB4MGIsMHg3MCwweDgyLDB4M2MsMHgyMCwweDgzLDB4MzIsMHgyOSB9LAotICAxNiwgMHhmODgwLCAwLCB7MHhjMCwweDA4LDB4ZjAsMHgyMCwweDE0LDB4MDAsMHg4MCwweDAwLDB4MjMsMHgwMCwweDA4LDB4NTAsMHgwNiwweDljLDB4MDQsMHhkNyB9LAotICAxNiwgMHhmODkwLCAwLCB7MHgwMiwweDI4LDB4ODAsMHgwOCwweDYwLDB4MDIsMHgwOCwweDEwLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDQwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhmOGEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhhNywweDgwLDB4MjEsMHhlMCB9LAotICAxNiwgMHhmOGIwLCAwLCB7MHgwYiwweDVjLDB4MTIsMHgxZSwweDA0LDB4ODcsMHg4MiwweDBkLDB4YTAsMHgwOSwweDc4LDB4MTYsMHgwMiwweDAwLDB4YjQsMHg4MCB9LAotICAxNiwgMHhmOGMwLCAwLCB7MHgyNSwweGUwLDB4MGIsMHg3OCwweDAyLDB4OWUsMHgwMCwweDg0LDB4ODAsMHgyMSwweDIyLDB4MDgsMHgwOCwweDAyLDB4MTIsMHgwMSB9LAotICAxNiwgMHhmOGQwLCAwLCB7MHg4NCwweGMwLDB4MmQsMHgyMCwweDBiLDB4MDgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOGUwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4NDIsMHhhMCwweGQ4LDB4MGIsMHgzNCwweDgyLDB4MGMsMHgwMCwweGEzLDB4MDIsMHgyMCB9LAotICAxNiwgMHhmOGYwLCAwLCB7MHhlMCwweDA4LDB4YjAsMHgwMiwweDBjLDB4ODgsMHhiMywweDIxLDB4MjQsMHhkOCwweDBiLDB4M2UsMHgwMiwweDhjLDB4MDAsMHg5MyB9LAotICAxNiwgMHhmOTAwLCAwLCB7MHgwOCwweDI4LDB4YzAsMHgwOCwweDM4LDB4MDIsMHgyYywweDA1LDB4OGIsMHgwMSwweDJjLDB4ZTAsMHgwYiwweDMwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhmOTEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhlZSwweDAwLDB4MzMsMHg5MCB9LAotICAxNiwgMHhmOTIwLCAwLCB7MHgwZiwweGEwLDB4MGIsMHg2OCwweDAwLDB4Y2EsMHgwMSwweDdmLDB4YTgsMHgwYywweGFhLDB4MDMsMHgzYSwweDEyLDB4ZmUsMHhlMiB9LAotICAxNiwgMHhmOTMwLCAwLCB7MHgzNywweGIwLDB4MGYsMHhlZSwweDAyLDB4MTgsMHgwMCwweGNhLDB4NDAsMHgzNiwweGEwLDB4MDgsMHhhMCwweDhiLDB4MjgsMHgwMCB9LAotICAxNiwgMHhmOTQwLCAwLCB7MHhjYSwweDgxLDB4MmUsMHhhMCwweDBmLDB4ZTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTUwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MDgsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4YTIsMHgwMiwweGQ4LDB4NDAsMHgzZSB9LAotICAxNiwgMHhmOTYwLCAwLCB7MHgwOCwweDBmLDB4ODAsMHgxMywweGUwLDB4NDAsMHg0OCwweDQwLDB4YjgsMHgwNCwweDA4LDB4ODQsMHgwMywweDYxLDB4MDAsMHhmYyB9LAotICAxNiwgMHhmOTcwLCAwLCB7MHgwMCwweDNmLDB4MDAsMHg0ZiwweGMwLDB4MDMsMHhmMSwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDQsMHgwZiwweGMwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhmOTgwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGM0LDB4MDAsMHhmOSwweDAwLDB4MzAsMHg1MCB9LAotICAxNiwgMHhmOTkwLCAwLCB7MHg0YywweGI5LDB4MDMsMHg2YywweDE4LDB4ZjksMHgwMCwweDM2LDB4NDAsMHgwZSwweDljLDB4MjMsMHhhNCwweDAyLDB4NDEsMHgwMCB9LAotICAxNiwgMHhmOWEwLCAwLCB7MHhiMiwweDQ0LDB4MGUsMHg5YSwweDAzLDB4YTYsMHg4MCwweGM5LDB4MDAsMHgzYSwweDYwLDB4MGEsMHg5MCwweDAzLDB4YTQsMHg4MCB9LAotICAxNiwgMHhmOWIwLCAwLCB7MHhjOSwweDAwLDB4MzQsMHg0MCwweDBjLDB4OTAsMHgwMywweGMyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOWMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4NDAsMHgyMiwweDc4LDB4MDgsMHg5NCwweDAyLDB4ZTQsMHgxMCwweGI5LDB4MDAsMHgzYyB9LAotICAxNiwgMHhmOWQwLCAwLCB7MHg2MiwweDE4LDB4OTQsMHg4MiwweGE0LDB4MDAsMHg4OSwweGM4LDB4MjIsMHg3MCwweDQ4LDB4MWUsMHgwMSwweDY3LDB4ODAsMHhkMSB9LAotICAxNiwgMHhmOWUwLCAwLCB7MHgwMCwweGJjLDB4NDIsMHgwOCwweDEwLDB4MDIsMHgyNSwweDIwLDB4ODksMHgwMiwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhmOWYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiMSwweDI4LDB4MjIsMHg0MCB9LAotICAxNiwgMHhmYTAwLCAwLCB7MHgwOCwweGIwLDB4ODIsMHg2NCwweDA0LDB4MzksMHg0MSwweDJlLDB4NDgsMHgwYSwweDkwLDB4MDIsMHgwNCwweDE4LDB4YTksMHgyMCB9LAotICAxNiwgMHhmYTEwLCAwLCB7MHgyMiwweDQyLDB4NGEsMHg5MCwweDAyLDB4MmMsMHgwNCwweDg5LDB4MDQsMHgyYiwweDQ4LDB4MDIsMHhkMCwweDAyLDB4YjQsMHgwYSB9LAotICAxNiwgMHhmYTIwLCAwLCB7MHg4ZCwweDgwLDB4MjMsMHhjMCwweDQ4LDB4ZDAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjAsMHhhMCwweDQ4LDB4MjgsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MjQsMHgyYSB9LAotICAxNiwgMHhmYTQwLCAwLCB7MHg0MCwweDA4LDB4MTIsMHg0MiwweDg1LDB4ODAsMHhhMSwweDIwLDB4YTAsMHg0OCwweDA4LDB4OTAsMHgwMiwweDQ0LDB4MDAsMHg5NSB9LAotICAxNiwgMHhmYTUwLCAwLCB7MHgyYywweDJkLDB4NWEsMHgwYSwweDcyLDB4ODIsMHgxNCwweGEwLDB4ODUsMHhhOCwweDIxLDB4NGEsMHgwOCwweDUyLDB4ODIsMHhjMiB9LAotICAxNiwgMHhmYTYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDQxLDB4NDAsMHhmOCwweDUwLDB4MzIsMHgwMCB9LAotICAxNiwgMHhmYTcwLCAwLCB7MHg4YywweDA1LDB4MDMsMHg2MSwweDQwLDB4ZjgsMHg1MSwweDJlLDB4MDAsMHgwYSwweDg1LDB4MDIsMHgyMCwweDAwLDB4ZTgsMHg1MCB9LAotICAxNiwgMHhmYTgwLCAwLCB7MHgzMiwweDE0LDB4MDYsMHg4NSwweDE3LDB4YTAsMHgwMCwweGM4LDB4MjAsMHgzYSwweDA4LDB4MGUsMHg4MiwweDAzLDB4YTAsMHg4MCB9LAotICAxNiwgMHhmYTkwLCAwLCB7MHhjOCwweDIwLDB4MzIsMHgwOCwweDJjLDB4YzIsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYWEwLCAwLCB7MHg5OCwweDE5LDB4ZjQsMHg0MCwweGZmLDB4MTAsMHgzZiwweDQ0LDB4MGIsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MTAsMHgzZCB9LAotICAxNiwgMHhmYWIwLCAwLCB7MHg0MCwweDBmLDB4ZDEsMHgwMywweGY0LDB4NTgsMHg5ZCwweDEwLDB4M2YsMHg0NCwweDRmLDB4ZDAsMHgwMywweGQ1LDB4MDAsMHhmOSB9LAotICAxNiwgMHhmYWMwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHg4ZCwweDkwLDB4MDMsMHhlNCwweGI4LDB4ZjksMHgyOCwweGJhLDB4NmEsMHgwZiwweDkwLDB4MDMsMHhlNiB9LAotICAxNiwgMHhmYWQwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweGU3LDB4MDAsMHhmZCwweDg4LDB4M2UsMHg2MCB9LAotICAxNiwgMHhmYWUwLCAwLCB7MHg4ZiwweGQwLDB4MDMsMHgyNCwweDAxLDB4ZGQsMHg4MCwweDczLDB4NDAsMHgwZiwweGQ4LDB4MDMsMHhhNiwweDA0LDB4Y2QsMHhhMiB9LAotICAxNiwgMHhmYWYwLCAwLCB7MHgzMywweDc4LDB4MWMsMHhkMCwweDAzLDB4MzQsMHgwMSwweGY1LDB4ODgsMHgzYiwweDY4LDB4MGMsMHhkYSwweDQ3LDB4MzcsMHg4MCB9LAotICAxNiwgMHhmYjAwLCAwLCB7MHhjZCwweDg4LDB4MzIsMHg2MiwweDBjLDB4ZGEsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHg4MCwweGI4LDB4ODAsMHgyZSwweDE0LDB4MGIsMHgwYSwweDgyLDB4MjIsMHg4MCwweGI4LDB4ZjgsMHhhMiB9LAotICAxNiwgMHhmYjIwLCAwLCB7MHgwMCwweDBiLDB4OGYsMHhhMywweDgzLDB4ZTAsMHg4OCwweGViLDB4MjIsMHhhOSwweDA4LDB4ODgsMHgxMiwweGEwLDB4MDUsMHhiOCB9LAotICAxNiwgMHhmYjMwLCAwLCB7MHgwMCwweDJhLDB4YWEsMHg4OCwweDgwLDB4MTMsMHg2MiwweDgyLDB4ODgsMHg4MCwweDIyLDB4MjgsMHg4OCwweGE0LDB4MDIsMHgwZSB9LAotICAxNiwgMHhmYjQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDBhLDB4MmMsMHg0MSB9LAotICAxNiwgMHhmYjUwLCAwLCB7MHgwYiwweDEwLDB4MDYsMHgwNCwweDIwLDB4YTEsMHgwMCwweDAwLDB4NDAsMHg4YiwweDEwLDB4NDYsMHhjNCwweDAxLDB4OTEsMHgxMSB9LAotICAxNiwgMHhmYjYwLCAwLCB7MHgyNCwweDU4LDB4NjgsMHg5MCwweGMyLDB4MDQsMHgwMCwweGIxLDB4MDAsMHhhOCwweDUwLDB4MDksMHgxNCwweDBhLDB4MDUsMHg5NSB9LAotICAxNiwgMHhmYjcwLCAwLCB7MHhhMSwweDA4LDB4YTAsMHg0MiwweDI4LDB4MTEsMHgwYSwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjgwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgxOCwweGI5LDB4MjAsMHgyZSwweDUwLDB4MGIsMHg5MCwweDA2LDB4MjQsMHgwOSwweGI5LDB4MDAsMHgyMiB9LAotICAxNiwgMHhmYjkwLCAwLCB7MHg0MCwweDhiLDB4OTEsMHgwMiwweDg0LDB4MDAsMHg5OSwweDY0LDB4MjQsMHg0MCwweDU4LDB4OTAsMHgwMiwweGE0LDB4MjAsMHhiYiB9LAotICAxNiwgMHhmYmEwLCAwLCB7MHgwMCwweDJhLDB4NDAsMHgwOSwweGIwLDB4MDIsMHgwNSwweDAxLDB4YTksMHgwMCwweDIyLDB4NDAsMHg4OCwweDkyLDB4MDIsMHgwNiB9LAotICAxNiwgMHhmYmIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU2LDB4MDAsMHhmOSwweDQwLDB4M2UsMHg0MCB9LAotICAxNiwgMHhmYmMwLCAwLCB7MHg0ZiwweDk4LDB4MGIsMHgyNCwweDgwLDB4ZDksMHgwMCwweDIyLDB4NzIsMHgwYiwweDk4LDB4MDMsMHhlNCwweDg0LDB4ZDksMHgwMCB9LAotICAxNiwgMHhmYmQwLCAwLCB7MHhiNiwweDcwLDB4MDgsMHg5OSwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyYSwweDQwLDB4MGQsMHg5NCwweGMyLDB4MjUsMHgwMCB9LAotICAxNiwgMHhmYmUwLCAwLCB7MHhhOSwweDAwLDB4MjIsMHg0MCwweDBjLDB4OTQsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYmYwLCAwLCB7MHgyOCwweDAxLDB4YTYsMHg4MCwweGY5LDB4MDgsMHgzZSwweGMwLDB4MGYsMHg5MSwweDQzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSB9LAotICAxNiwgMHhmYzAwLCAwLCB7MHg1MCwweDBmLDB4OTgsMHgwMywweGE1LDB4MDAsMHhlOSwweDAwLDB4M2EsMHg2NCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhmYzEwLCAwLCB7MHgwMCwweDNjLDB4NDAsMHg2ZSwweDkwLDB4MDMsMHhlNCwweDIwLDB4ZDksMHgwMCwweDNjLDB4NDAsMHgwZiwweDkwLDB4ODIsMHhjYSB9LAotICAxNiwgMHhmYzIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhlOCwweDAwLDB4M2UsMHgwMCB9LAotICAxNiwgMHhmYzMwLCAwLCB7MHg0ZiwweDg0LDB4MGIsMHgyMCwweDAwLDB4ZjgsMHgwMCwweDM2LDB4MDEsMHgwZSwweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHg0MCB9LAotICAxNiwgMHhmYzQwLCAwLCB7MHgzMiwweDEwLDB4MmQsMHg4MCwweDAzLDB4ZTAsMHg1NCwweGM4LDB4MDAsMHgzNiwweDEwLDB4MGYsMHgwNCwweDgzLDB4ZTAsMHg1MCB9LAotICAxNiwgMHhmYzUwLCAwLCB7MHhkOCwweDA0LDB4MTIsMHgwMCwweDBjLDB4MDAsMHgwYiwweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhlLDB4NDIsMHgyZSwweGEyLDB4OGIsMHhlYSwweDAyLDB4MjgsMHgwOCwweGJlLDB4ODksMHgzNyB9LAotICAxNiwgMHhmYzcwLCAwLCB7MHg4NCwweDQ4LDB4ZTAsMHgxMiwweDI4LDB4MDIsMHg4ZSwweGMwLDB4MjMsMHhiMCwweDRkLDB4NjAsMHg2MiwweGY4LDB4MDAsMHg4NiB9LAotICAxNiwgMHhmYzgwLCAwLCB7MHgwMCwweDIzLDB4ODAsMHgwYiwweGUwLDB4MDIsMHhmOCwweDAwLDB4MGUsMHgwMCwweDIyLDB4ODAsMHgwOCwweGU0LDB4MDIsMHgwYSB9LAotICAxNiwgMHhmYzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhhMywweDAwLDB4MmMsMHg4MCB9LAotICAxNiwgMHhmY2EwLCAwLCB7MHgxYiwweGIwLDB4OWEsMHg0YywweDEwLDB4OWIsMHg4MCwweDI0LDB4YzAsMHgwYSwweDMwLDB4MDAsMHgwYywweDA0LDB4OWIsMHgyMCB9LAotICAxNiwgMHhmY2IwLCAwLCB7MHgyMCwweGQ2LDB4MDgsMHgzMCwweDAyLDB4OGUsMHgwOCwweGEzLDB4MDQsMHgyNCwweGMwLDB4MTksMHgzNCwweDAyLDB4YzcsMHgwNyB9LAotICAxNiwgMHhmY2MwLCAwLCB7MHhhYSwweGE0LDB4YTAsMHhjMCwweDQ4LDB4MzQsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmY2QwLCAwLCB7MHhhMCwweDAxLDB4MGUsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg0MCwweDAyLDB4NWMsMHg0MCwweGIzLDB4MTQsMHgyNSB9LAotICAxNiwgMHhmY2UwLCAwLCB7MHhlMCwweDA4LDB4N2EsMHgwMiwweDllLDB4YzAsMHg5MiwweDQwLDB4YTAsMHgwMCwweDQ5LDB4NjAsMHgwMiwweGNlLDB4MDIsMHg4ZSB9LAotICAxNiwgMHhmY2YwLCAwLCB7MHgwMSwweDIxLDB4YzAsMHg4YiwweDU0LDB4MDIsMHhjNCwweDA4LDB4ODYsMHg0MCwweDIxLDB4YzgsMHg4OCwweDEwLDB4MDIsMHgyOCB9LAotICAxNiwgMHhmZDAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4YzAsMHhlNCwweDgwLDB4M2QsMHhlMiB9LAotICAxNiwgMHhmZDEwLCAwLCB7MHgwZiwweDU4LDB4MDMsMHg1ZSwweDkwLDB4YjYsMHhhMiwweDM1LDB4ZTAsMHgwZSwweDdjLDB4MjMsMHgxYywweDAwLDB4ZDYsMHg4MCB9LAotICAxNiwgMHhmZDIwLCAwLCB7MHgzMSwweGUwLDB4ODQsMHg3OCwweDAzLDB4ZGUsMHgwMCwweGM3LDB4ODAsMHgzNSwweGUwLDB4MGYsMHg2OCwweDAzLDB4ZGUsMHgwMCB9LAotICAxNiwgMHhmZDMwLCAwLCB7MHhlMywweDgwLDB4MzMsMHhlOCwweDJjLDB4NzgsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDQwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHg5MCwweGZhLDB4MDAsMHg3ZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YWMsMHgwMSwweGZiLDB4MDAsMHgzYyB9LAotICAxNiwgMHhmZDUwLCAwLCB7MHg0MSwweDBmLDB4MzAsMHgwYiwweDJkLDB4MDQsMHhlYiwweDAxLDB4M2UsMHhjMCwweDBlLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYSB9LAotICAxNiwgMHhmZDYwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhlYywweDAwLDB4ZTksMHg2MCwweDNlLDB4ZTQsMHgwZiwweDkwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhmZDcwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MjAsMHhmZiwweDkwLDB4M2UsMHgyMCB9LAotICAxNiwgMHhmZDgwLCAwLCB7MHgwYywweGE5LDB4MDcsMHgyZSwweDQ0LDB4YzksMHg5MSwweDMwLDB4YTAsMHgwYywweGI4LDB4NjMsMHgyZiwweDQ0LDB4Y2IsMHhhMSB9LAotICAxNiwgMHhmZDkwLCAwLCB7MHgzNiwweDIwLDB4OGMsMHhmOCwweDAzLDB4MzYsMHgwMCwweGNmLDB4ODIsMHgzMywweGUwLDB4MGMsMHhmOCwweDIzLDB4MmUsMHgwMCB9LAotICAxNiwgMHhmZGEwLCAwLCB7MHhjZSwweGMwLDB4M2IsMHhlMCwweDBjLDB4NjgsMHgwMywweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZGIwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg4NCwweGIzLDB4NTQsMHgyYywweGY0LDB4MjgsMHhiYSwweDhhLDB4M2UsMHg0MCwweDgxLDB4YTAsMHgyOSB9LAotICAxNiwgMHhmZGMwLCAwLCB7MHhiMCwweDBmLDB4NzgsMHg0MiwweGFlLDB4MDAsMHg4MywweDkwLDB4MzMsMHhlOCwweDBkLDB4ZTEsMHgwMCwweDg1LDB4NDAsMHg4MiB9LAotICAxNiwgMHhmZGQwLCAwLCB7MHgyNCwweDIzLDB4YzYsMHgwZCwweDcxLDB4MDMsMHg1ZSwweGUwLDB4ODcsMHgwMCwweDJiLDB4YzEsMHgwZCwweDQ0LDB4MDIsMHgyYSB9LAotICAxNiwgMHhmZGUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDgsMHgzNSwweDE0LDB4NmQsMHhjMCB9LAotICAxNiwgMHhmZGYwLCAwLCB7MHg4OCwweDcyLDB4MzIsMHg1YywweDgwLDB4ODQsMHgzMCwweDJiLDB4ODgsMHgwYSwweDcwLDB4NDIsMHg1YywweGE4LDB4OTEsMHgwOCB9LAotICAxNiwgMHhmZTAwLCAwLCB7MHgyNSwweGM4LDB4MDksMHg3MCwweDAyLDB4NGMsMHgyMiwweDgzLDB4MGEsMHg2MSwweGMwLDB4MDksMHgyMCwweDAyLDB4MDQsMHgwMCB9LAotICAxNiwgMHhmZTEwLCAwLCB7MHg4NywweDAwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZTIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgxMCwweGIzLDB4ODUsMHg2YywweGRjLDB4MDgsMHgzNCwweDAyLDB4NGQsMHgyMSwweDgxLDB4MDAsMHgyOCB9LAotICAxNiwgMHhmZTMwLCAwLCB7MHgwMiwweDRhLDB4MzEsMHgxMiwweGVmLDB4MGMsMHg5MSwweGMyLDB4MjAsMHhmMCwweDA4LDB4MzAsMHg0MiwweDhlLDB4MDAsMHg4MiB9LAotICAxNiwgMHhmZTQwLCAwLCB7MHg0MCwweDIwLDB4YzgsMHgxOSwweDI4LDB4MDIsMHgyMiwweDgxLDB4ODMsMHhjMCwweDI4LDB4ZDQsMHgwOSwweDAwLDB4MGEsMHgwOCB9LAotICAxNiwgMHhmZTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhmYiwweGEwLDB4M2UsMHhjMCB9LAotICAxNiwgMHhmZTYwLCAwLCB7MHg4YywweDA0LDB4MTIsMHg3ZCwweDEwLDB4Y2YsMHgwMiwweDNhLDB4NTAsMHgwOCwweGMwLDB4NDIsMHg3ZCwweDUyLDB4NTgsMHgwMSB9LAotICAxNiwgMHhmZTcwLCAwLCB7MHgzNiwweDIyLDB4NjksMHhkMCwweDEzLDB4MmEsMHgwMCwweDg4LDB4ODIsMHgzMiwweGYwLDB4MDksMHhiOCwweDgyLDB4MmYsMHgwMCB9LAotICAxNiwgMHhmZTgwLCAwLCB7MHhjOSwweGM4LDB4MjMsMHhjMCwweDBjLDB4OGEsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZTkwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGI5LDB4NDAsMHgzYywweDUwLDB4NGYsMHg4MCwweDIzLDB4YWMsMHgxMiwweGZiLDB4MDAsMHgyYSB9LAotICAxNiwgMHhmZWEwLCAwLCB7MHhjMCwweDZkLDB4ODAsMHgxMywweGFjLDB4MDAsMHhlOCwweDA0LDB4YmEsMHgxMCwweDBmLDB4ODAsMHgwMywweGU4LDB4MDAsMHhmMyB9LAotICAxNiwgMHhmZWIwLCAwLCB7MHgwOCwweDNjLDB4ODAsMHgwZiwweDkwLDB4ODMsMHhlYywweDA0LDB4ZjksMHg2MCwweDJjLDB4YzIsMHgwZiwweDgwLDB4ODMsMHhlMCB9LAotICAxNiwgMHhmZWMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGRjLDB4MDAsMHhlYywweDJjLDB4M2YsMHhmMCB9LAotICAxNiwgMHhmZWQwLCAwLCB7MHg4YywweGZhLDB4OGIsMHhiYywweDAwLDB4ZmUsMHgwMCwweDNmLDB4MDAsMHgwZiwweDc5LDB4MDMsMHgzYywweDAwLDB4Y2UsMHgwOCB9LAotICAxNiwgMHhmZWUwLCAwLCB7MHgwYiwweGMyLDB4MGMsMHhmMCwweDAzLDB4YmMsMHgwMCwweGZjLDB4MDAsMHgzMywweDQwLDB4OGMsMHg3YSwweDAzLDB4M2EsMHgwMCB9LAotICAxNiwgMHhmZWYwLCAwLCB7MHhjNSwweDAwLDB4MzMsMHhjMCwweDRjLDB4YzgsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZjAwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDg4LDB4YzAsMHgyZSwweGUwLDB4MDgsMHg5NCwweDAyLDB4MmMsMHgwMCwweGJiLDB4ODAsMHg2NiB9LAotICAxNiwgMHhmZjEwLCAwLCB7MHgzMCwweDE2LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhkYSwweDRjLDB4MjIsMHhmMCwweDA4LDB4ZjAsMHgwMywweGVjLDB4MDAsMHhlYiB9LAotICAxNiwgMHhmZjIwLCAwLCB7MHhjMCwweDIyLDB4NjgsMHgwMCwweDk0LDB4MDIsMHgyYywweDAyLDB4YTksMHg4MCwweDIyLDB4YzAsMHgwOCwweDBjLDB4MDIsMHhhMCB9LAotICAxNiwgMHhmZjMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhhYiwweDA0LDB4MmUsMHhjMCB9LAotICAxNiwgMHhmZjQwLCAwLCB7MHgwOCwweGE0LDB4MDYsMHgyYywweDA0LDB4YWIsMHgxMCwweDJlLDB4NjAsMHg0MywweDgwLDB4ODIsMHg2YywweDAxLDB4ODEsMHg4MCB9LAotICAxNiwgMHhmZjUwLCAwLCB7MHgyOCwweDBhLDB4MDgsMHg5MSwweDAwLDB4ZTAsMHgwMCwweGI4LDB4ODAsMHgwMiwweGUwLDB4MDgsMHg4MCwweDAyLDB4MmQsMHg4MCB9LAotICAxNiwgMHhmZjYwLCAwLCB7MHg4OCwweGMwLDB4MjIsMHhjMCwweDA4LDB4ODIsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZjcwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweDgwLDB4NDQsMHgyYywweGM4LDB4MjgsMHhhMCwweDIyLDB4MGMsMHgwNCwweGIzLDB4MjYsMHgyYyB9LAotICAxNiwgMHhmZjgwLCAwLCB7MHhjOCwweDg4LDB4MDEsMHgwNiwweDBjLDB4ZTAsMHg5MSwweDIwLDB4MjAsMHgwYywweDM4LDB4MDQsMHgyMiwweGMwLDB4NDgsMHhhMyB9LAotICAxNiwgMHhmZjkwLCAwLCB7MHg0MiwweGEwLDB4ODEsMHgwOCwweDAwLDB4MDIsMHgwYywweDgwLDB4ODEsMHgwMCwweDIwLDB4YzAsMHgyOCwweDAwLDB4MDIsMHg4MiB9LAotICAxNiwgMHhmZmEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDAsMHhhOSwweDQwLDB4M2UsMHg0NCB9LAotICAxNiwgMHhmZmIwLCAwLCB7MHgwOCwweGIxLDB4MDMsMHgyYywweDQwLDB4ZWEsMHg0OSwweDJlLDB4MGQsMHgwYiwweGI2LDB4MTMsMHg3ZCwweDgwLDB4YzksMHg0MCB9LAotICAxNiwgMHhmZmMwLCAwLCB7MHhiYSwweGQwLDB4MGMsMHhiNCwweDAzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg4MCwweDBiLDB4MjAsMHgwMCB9LAotICAxNiwgMHhmZmQwLCAwLCB7MHhjNSwweDAwLDB4YjIsMHhjMCwweDBjLDB4ODAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZmUwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwNCwweGZjLDB4MDAsMHgzZCwweGM1LDB4MGIsMHhmMSwweDAwLDB4ZmMsMHhkMCwweDc3LDB4MjksMHgzNyB9LAotICAxNiwgMHhmZmYwLCAwLCB7MHgwYywweDhlLDB4NzQsMHgwMywweGZjLDB4MDgsMHhmZCwweDY5LDB4M2YsMHhkOCwweDBmLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhlZiB9LAotICAxNiwgMHg4MDEwLCAwLCB7MHgwMCwweDNmLDB4NDAsMHgwNywweGMwLDB4MDMsMHhmMCwweDQwLDB4ZmQsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhlOCB9LAotICAxNiwgMHg4MDIwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwZCwweGZjLDB4YzAsMHhkYywweDgwLDB4M2YsMHhjOCB9LAotICAxNiwgMHg4MDMwLCAwLCB7MHgwZiwweDQ4LDB4MDMsMHg3YywweDIwLDB4ZmYsMHg2OCwweDM3LDB4ZTAsMHgwZSwweGYxLDB4MDMsMHg5YywweDAwLDB4YmYsMHgyMCB9LAotICAxNiwgMHg4MDQwLCAwLCB7MHgzNywweGUwLDB4MGMsMHhjOCwweDEzLDB4M2MsMHg0MCwweGVkLDB4NjAsMHhiYiwweGU0LDB4MmMsMHg0MywweDRiLDB4NzAsMHhhMCB9LAotICAxNiwgMHg4MDUwLCAwLCB7MHhjYywweDJjLDB4M2YsMHgwOSwweDBmLDB4ZDgsMHg0MywweDcwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MDYwLCAwLCB7MHg4MCwweDAwLDB4ZWQsMHhjMCwweGI4LDB4ODAsMHgyZiwweGY0LDB4MGYsMHg5OCwweDAyLDB4M2YsMHgwMCwweGJmLDB4NDIsMHgyMiB9LAotICAxNiwgMHg4MDcwLCAwLCB7MHhjYSwweDA4LDB4ZjQsMHgwMiwweDNlLDB4MDAsMHhiZiwweGQwLDB4MjIsMHg2MCwweDI4LDB4ODgsMHgwYSwweDNkLDB4ODAsMHg4ZCB9LAotICAxNiwgMHg4MDgwLCAwLCB7MHg0MCwweDIyLDB4YzgsMHgwOCwweDgxLDB4MDIsMHgyMSwweDgwLDB4ZGIsMHhjMCwweDJlLDB4YTUsMHgwYiwweDk4LDB4NDIsMHgyMCB9LAotICAxNiwgMHg4MDkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MTAsMHhiMCwweDAwLDB4MmMsMHhjMCB9LAotICAxNiwgMHg4MGEwLCAwLCB7MHgwYiwweDIwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgyMCwweDI2LDB4YzAsMHg4YSwweDM2LDB4MTIsMHg4YywweDQxLDB4YjMsMHgwMCB9LAotICAxNiwgMHg4MGIwLCAwLCB7MHgyZSwweDQwLDB4MDgsMHgwMCwweDAyLDB4MGQsMHg4MSwweGExLDB4MzAsMHgyMiwweGM4LDB4ODksMHhhMiwweDQyLDB4MDgsMHgyMCB9LAotICAxNiwgMHg4MGMwLCAwLCB7MHhiMCwweDAwLDB4MmMsMHg0MCwweDBiLDB4OTAsMHgyNiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MGQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwMCwweGI4LDB4NTAsMHgyZSwweGMwLDB4MGEsMHg5MCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDAsMHgyMiB9LAotICAxNiwgMHg4MGUwLCAwLCB7MHhjMCwweDA4LDB4YjAsMHg2MiwweDJjLDB4MTAsMHhiYiwweDA0LDB4MmEsMHhmMCwweDRhLDB4ODgsMHgwMiwweDBjLDB4MDAsMHg4MSB9LAotICAxNiwgMHg4MGYwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOSwweGI4LDB4ODAsMHgyNiwweDAwLDB4YjgsMHg4MCwweDJlLDB4MjEsMHgwYiwweDkwLDB4MDIsMHgzMCB9LAotICAxNiwgMHg4MTAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxNSwweGVjLDB4MDAsMHhkOCwweGMwLDB4M2UsMHhjMCB9LAotICAxNiwgMHg4MTEwLCAwLCB7MHgwYiwweDgwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCwweDM2LDB4ODAsMHgwZSwweGIwLDB4MDMsMHhhYywweDAwLDB4ZmIsMHgwMCB9LAotICAxNiwgMHg4MTIwLCAwLCB7MHgzYywweGUwLDB4MGMsMHgwYywweDAzLDB4MmMsMHgwMCwweGU5LDB4MDAsMHgxMCwweGMwLDB4MGMsMHg4YywweDAzLDB4MDYsMHgwMCB9LAotICAxNiwgMHg4MTMwLCAwLCB7MHhmOCwweGNkLDB4M2UsMHgyMiwweDBmLDB4MTgsMHgwMywweDQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTQwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhmMCwweDAzLDB4N2MsMHgwMCwweGY3LDB4MDIsMHgzZiB9LAotICAxNiwgMHg4MTUwLCAwLCB7MHhlNCwweDBmLDB4NzAsMHgwMywweDdjLDB4MDQsMHhiNywweDAwLDB4MzcsMHg0MCwweDBkLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZCB9LAotICAxNiwgMHg4MTYwLCAwLCB7MHgwMCwweDM3LDB4ZDAsMHgwZSwweGMwLDB4NDMsMHhmNCwweDAwLDB4ZGYsMHgwMCwweDNmLDB4ODAsMHg4ZiwweGRhLDB4MDMsMHhmOCB9LAotICAxNiwgMHg4MTcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhmOCwweDEwLDB4M2EsMHhjMCB9LAotICAxNiwgMHg4MTgwLCAwLCB7MHg2ZCwweGE2LDB4MTMsMHhlYywweDAwLDB4Y2IsMHgwMCwweDNhLDB4ZDAsMHgwZiwweGIwLDB4MDMsMHgyYywweDEwLDB4ZGIsMHgxMCB9LAotICAxNiwgMHg4MTkwLCAwLCB7MHgzNiwweGQ4LDB4MGQsMHg4NCwweDAzLDB4ZWMsMHgwNiwweGM5LDB4MDgsMHgzYSwweGMwLDB4MGUsMHg4NiwweDAzLDB4YTgsMHg2MCB9LAotICAxNiwgMHg4MWEwLCAwLCB7MHhmOCwweDIwLDB4M2EsMHg0MCwweDBjLDB4OTAsMHgwMywweDU0LDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MWIwLCAwLCB7MHg5OCwweDA1LDB4M2MsMHgwMCwweGJiLDB4NDAsMHgyMywweGQwLDB4MDgsMHgzMCwweDAyLDB4M2UsMHgxMCwweGFmLDB4MDAsMHgyMCB9LAotICAxNiwgMHg4MWMwLCAwLCB7MHhjMCwweDBiLDB4ZjAsMHgwMiwweDNjLDB4MDAsMHg4ZiwweDUwLDB4MmUsMHhjOCwweDA2LDB4OGEsMHgwMiwweGZjLDB4MDAsMHg4ZCB9LAotICAxNiwgMHg4MWQwLCAwLCB7MHgyNCwweDgyLDB4ZDYsMHgwOCwweDMyLDB4MDIsMHgyZCwweDA4LDB4M2EsMHg0MCwweDIyLDB4ODAsMHgwZCwweDkwLDB4MDMsMHg2MiB9LAotICAxNiwgMHg4MWUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweDRjLDB4MDAsMHhiMCwweDIwLDB4MjgsMHhjMiB9LAotICAxNiwgMHg4MWYwLCAwLCB7MHgwOCwweDA0LDB4MDIsMHg4YywweDAwLDB4MTMsMHgwMiwweDI4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDMwLDB4OTMsMHg4MCB9LAotICAxNiwgMHg4MjAwLCAwLCB7MHgyNCwweGQwLDB4MDksMHgyMCwweDAyLDB4Y2MsMHgwMCwweDkxLDB4NDAsMHgwOCwweGMwLDB4MmEsMHgxNCwweDAyLDB4ODEsMHgwMCB9LAotICAxNiwgMHg4MjEwLCAwLCB7MHg5MCwweDAwLDB4NjgsMHgwMCwweDA4LDB4MTgsMHgwMiwweDNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MjIwLCAwLCB7MHg3MCwweDAxLDB4MWUsMHgwMCwweGI0LDB4YTAsMHgyMSwweGUwLDB4MDgsMHhjOCwweDEyLDB4OWUsMHgwMCwweGIzLDB4ODIsMHgyMSB9LAotICAxNiwgMHg4MjMwLCAwLCB7MHhlMCwweDBiLDB4N2EsMHgwYSwweDFlLDB4MDAsMHg5NywweDgwLDB4MmQsMHhlMSwweDBhLDB4NDgsMHgwMiwweGNlLDB4NDAsMHg5NSB9LAotICAxNiwgMHg4MjQwLCAwLCB7MHg5MCwweDI5LDB4ZTQsMHgwOCwweDU4LDB4MDIsMHg5YSwweDAwLDB4YjcsMHg4OCwweDIxLDB4ZTAsMHgwOSwweDU4LDB4MDIsMHg1YyB9LAotICAxNiwgMHg4MjUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NGEsMHgwMCwweDBjLDB4MDAsMHhmMCwweDgwLDB4MzgsMHhjNCB9LAotICAxNiwgMHg4MjYwLCAwLCB7MHgwYywweDI1LDB4MDMsMHg4YywweDIwLDB4OTMsMHgwMCwweDM4LDB4YzQsMHgwZiwweGIwLDB4MDMsMHgwYywweDgwLDB4ZDMsMHgwMCB9LAotICAxNiwgMHg4MjcwLCAwLCB7MHgzNCwweGMwLDB4MGQsMHgwNCwweDEzLDB4Y2MsMHgwOCwweDk5LDB4MDAsMHgyYSwweGMwLDB4MGUsMHgyMSwweDAzLDB4ODgsMHgwNCB9LAotICAxNiwgMHg4MjgwLCAwLCB7MHhmMywweDAwLDB4MzgsMHhjMCwweDBjLDB4MTEsMHg4MywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MjkwLCAwLCB7MHg0MiwweDE1LDB4YmMsMHgwMCwweGY0LDB4MDAsMHgzZiwweGMzLDB4MGUsMHhjMCwweDAzLDB4MWMsMHgwMCwweGFmLDB4NGEsMHg3ZiB9LAotICAxNiwgMHg4MmEwLCAwLCB7MHhjNCwweDBmLDB4YjIsMHgwMywweGZkLDB4MDEsMHhlZiwweDEwLDB4M2YsMHg4NCwweDBmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhlOSB9LAotICAxNiwgMHg4MmIwLCAwLCB7MHgwMCwweDM3LDB4YzIsMHgwZSwweGYxLDB4NDcsMHg3YywweDAwLDB4ZjcsMHgwMCwweDNkLDB4YzAsMHgwZiwweDUwLDB4MDMsMHhkMCB9LAotICAxNiwgMHg4MmMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YWEsMHgxNSwweGVjLDB4MDgsMHhmOCwweDAwLDB4M2UsMHhjYSB9LAotICAxNiwgMHg4MmQwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlZiwweDIxLDB4ZmIsMHg4MCwweDdhLDB4NDAsMHg4ZiwweGIyLDB4YTEsMHgyZiwweDAwLDB4Y2IsMHg2MCB9LAotICAxNiwgMHg4MmUwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZWQsMHhhMCwweGU5LDB4MzAsMHgzMiwweGMwLDB4MmQsMHhiMCwweDAzLDB4ZTQsMHgwMCB9LAotICAxNiwgMHg4MmYwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGVhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MzAwLCAwLCB7MHhjOCwweDkxLDB4OWQsMHgwMCwweGI0LDB4MDEsMHgyZCwweGM4LDB4MGIsMHg3MCwweDAyLDB4Y2MsMHg4MCwweDhmLDB4MjAsMHgyMSB9LAotICAxNiwgMHg4MzEwLCAwLCB7MHhjMCwweDhiLDB4NzYsMHgwMywweDVkLDB4MDAsMHg4NywweDBhLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgyMiwweGZkLDB4MDAsMHg4ZCB9LAotICAxNiwgMHg4MzIwLCAwLCB7MHgxMCwweDIzLDB4YzgsMHgwOCwweDUwLDB4MTIsMHhkNCwweDAwLDB4YjcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhmMiB9LAotICAxNiwgMHg4MzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwMCwweDllLDB4MDAsMHhiNCwweDgwLDB4MmQsMHhlMCB9LAotICAxNiwgMHg4MzQwLCAwLCB7MHgwYiwweDdjLDB4MDIsMHhkZSwweDQwLDB4YTcsMHg4MiwweDJkLDB4ZTAsMHgwYiwweDNhLDB4MDIsMHg4ZSwweDAwLDB4ODcsMHg5MCB9LAotICAxNiwgMHg4MzUwLCAwLCB7MHgyZCwweGUwLDB4MGIsMHg1OCwweDAyLDB4NWUsMHgwMCwweGE1LDB4YTIsMHg2NSwweGUwLDB4MDgsMHg2OCwweDgyLDB4ZGEsMHgwMCB9LAotICAxNiwgMHg4MzYwLCAwLCB7MHg5NSwweDgwLDB4MmQsMHg2MCwweDBiLDB4NzgsMHgwMiwweGUwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MzcwLCAwLCB7MHgwOCwweDg0LDB4Y2MsMHgwMCwweGIwLDB4MDksMHgyYywweGMwLDB4MGIsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyZSB9LAotICAxNiwgMHg4MzgwLCAwLCB7MHhjMCwweDBiLDB4MzAsMHg0MiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMsMHhhMCwweDBiLDB4MDQsMHgwMiwweGNjLDB4MDAsMHg4MSB9LAotICAxNiwgMHg4MzkwLCAwLCB7MHgwMCwweGEwLDB4YzAsMHgwOCwweGIwLDB4MDYsMHhjZiwweDgwLDB4YjMsMHgxMCwweDJjLDB4YzQsMHgwYiwweDMxLDB4MDIsMHhjMyB9LAotICAxNiwgMHg4M2EwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweGE4LDB4MDAsMHhmZSwweDgwLDB4M2UsMHg4MCB9LAotICAxNiwgMHg4M2IwLCAwLCB7MHgwZiwweGU4LDB4MTMsMHhlOCwweDAwLDB4ZWEsMHgwMCwweDNmLDB4YjAsMHgwZiwweGEwLDB4MDMsMHhhOCwweDAyLDB4YzIsMHgwMCB9LAotICAxNiwgMHg4M2MwLCAwLCB7MHgyZiwweDg4LDB4MGYsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGVhLDB4MDAsMHgzNiwweDAwLDB4MGMsMHhlMCwweDAzLDB4ZjksMHgyMCB9LAotICAxNiwgMHg4M2QwLCAwLCB7MHhkZSwweDgwLDB4M2YsMHhhMCwweDRmLDB4YTgsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4M2UwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MTAsMHgzYywweDEwLDB4MGYsMHg4MCwweDgzLDB4ZTEsMHgwMCwweGU4LDB4MDAsMHgyMiB9LAotICAxNiwgMHg4M2YwLCAwLCB7MHgwNiwweDBmLDB4MDAsMHgxMywweGUwLDB4MDEsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHg4MywweGUwLDB4MDAsMHhmOCB9LAotICAxNiwgMHg4NDAwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MjMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg4NDEwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweGU0LDB4MDAsMHhmOSwweDEwLDB4M2UsMHg0NCB9LAotICAxNiwgMHg4NDIwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MTIsMHgyNCwweDAwLDB4ZjksMHgxMCB9LAotICAxNiwgMHg4NDMwLCAwLCB7MHgzMiwweDQwLDB4OGYsMHg5MCwweDAzLDB4YzQsMHgwMCwweGM5LDB4MDAsMHgzMiwweDEwLDB4MGMsMHg5YywweDAxLDB4MjQsMHgwMCB9LAotICAxNiwgMHg4NDQwLCAwLCB7MHhmOSwweDEwLDB4M2UsMHg3MCwweDBmLDB4OTAsMHgwMiwweGMyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NDUwLCAwLCB7MHg4MCwweDE0LDB4NjQsMHgwMCwweGI5LDB4YzAsMHgyZSwweDQ4LDB4MDgsMHg5MSwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSB9LAotICAxNiwgMHg4NDYwLCAwLCB7MHg0MCwweDBkLDB4OTAsMHgwMywweDY3LDB4MDAsMHhiOSwweDgwLDB4MmEsMHg2MCwweDBiLDB4OTksMHgwMiwweGU0LDB4MDAsMHg4MSB9LAotICAxNiwgMHg4NDcwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHgyYywweDkwLDB4MTIsMHgyNSwweDIwLDB4YjksMHg0OCwweDJlLDB4NTIsMHgwYiwweDk0LDB4MDIsMHhlMCB9LAotICAxNiwgMHg4NDgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9LAotICAxNiwgMHg4NDkwLCAwLCB7MHg2OCwweDkwLDB4NDYsMHhlNCwweDAwLDB4YjksMHgwMCwweDJlLDB4YzAsMHgwOCwweDkwLDB4MDIsMHhhNCwweDYwLDB4YjksMHgwMCB9LAotICAxNiwgMHg4NGEwLCAwLCB7MHgyMiwweDQ4LDB4MGIsMHg5MCwweDA2LDB4ZTQsMHgwMiwweDg5LDB4MDAsMHhhMCwweDQwLDB4MDgsMHg5MCwweDAyLDB4YTYsMHgxMCB9LAotICAxNiwgMHg4NGIwLCAwLCB7MHhiOSwweDAwLDB4MGUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NGMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGIxLDB4MDAsMHgyYywweDQ4LDB4MDgsMHgxMCwweDAyLDB4YzQsMHg4NCwweGIxLDB4MjAsMHgyYyB9LAotICAxNiwgMHg4NGQwLCAwLCB7MHg0MCwweDA5LDB4MTIsMHgwMiwweGM0LDB4ODAsMHhiMSwweDIwLDB4MjgsMHg0MCwweDBiLDB4MTAsMHgwMiwweGM0LDB4ODAsMHg4OSB9LAotICAxNiwgMHg4NGUwLCAwLCB7MHgyMCwweDIwLDB4NDAsMHg0YiwweDEyLDB4MGEsMHg4NCwweDg0LDB4YjEsMHgyMCwweDJjLDB4NDgsMHg4YiwweDEwLDB4MDIsMHhjMiB9LAotICAxNiwgMHg4NGYwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhiYSwweDAwLDB4MmUsMHgwMCB9LAotICAxNiwgMHg4NTAwLCAwLCB7MHgwYywweDgwLDB4MDMsMHhlOCwweDA4LDB4ZjgsMHg1MCwweDNlLDB4MTQsMHgwYywweDg1LDB4MDMsMHgyMCwweDAwLDB4YjgsMHgwMCB9LAotICAxNiwgMHg4NTEwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHhhMCwweDAzLDB4ZTEsMHg0MCwweGM4LDB4NTAsMHgzMiwweDE0LDB4MGMsMHhhNSwweDAzLDB4YTEsMHg0MCB9LAotICAxNiwgMHg4NTIwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4YTAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NTMwLCAwLCB7MHg4OCwweDBkLDB4ZTQsMHg0MCwweGZkLDB4MDAsMHgzZSwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTQsMHg0MCwweGI5LDB4MTEsMHgzZiB9LAotICAxNiwgMHg4NTQwLCAwLCB7MHg0MCwweDBmLDB4OTEsMHgwMywweDY0LDB4NDQsMHhmOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmZCB9LAotICAxNiwgMHg4NTUwLCAwLCB7MHgxMCwweDNmLDB4MTAsMHg4YywweGQxLDB4MDMsMHg3NCwweDQwLDB4ZmYsMHgxMCwweDNmLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNiB9LAotICAxNiwgMHg4NTYwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweDY2LDB4MjAsMHhlZCwweDAwLDB4MzMsMHg2OSB9LAotICAxNiwgMHg4NTcwLCAwLCB7MHg0ZCwweDUwLDB4NDMsMHg1NiwweDAwLDB4ZjksMHhhMCwweDM0LDB4NDAsMHgwZiwweDlhLDB4MGIsMHgzNCwweDAwLDB4ZGQsMHg4MCB9LAotICAxNiwgMHg4NTgwLCAwLCB7MHgzYiwweDQwLDB4MGIsMHg1MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweGUwLDB4MGUsMHhkMCwweDAzLDB4ZjQsMHgwMCB9LAotICAxNiwgMHg4NTkwLCAwLCB7MHhmZCwweDAwLDB4M2YsMHg0MCwweDBjLDB4ZDAsMHgwMywweGM2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NWEwLCAwLCB7MHg3OCwweDEwLDB4ZTIsMHg4MCwweDg4LDB4MDQsMHgyMiwweDEwLDB4MGIsMHg4MCwweDAyLDB4MjAsMHgwOSwweGI4LDB4ZjAsMHgyMiB9LAotICAxNiwgMHg4NWIwLCAwLCB7MHgwMCwweDBiLDB4OGUsMHgxMiwweGEwLDB4MDAsMHhiOCwweDUyLDB4MmUsMHgwMCwweDBiLDB4ODAsMHgwMiwweGUwLDB4MDUsMHhiOCB9LAotICAxNiwgMHg4NWMwLCAwLCB7MHhhYSwweDIzLDB4M2UsMHgwZCwweDgwLDB4MDIsMHhlMCwweDAwLDB4YjgsMHgwMCwweDNhLDB4MDAsMHgwOCwweDgwLDB4MDIsMHhjZSB9LAotICAxNiwgMHg4NWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4MjAsMHhhOSwweDAwLDB4YTQsMHg0NCB9LAotICAxNiwgMHg4NWUwLCAwLCB7MHgwOSwweDkwLDB4MDIsMHhjNSwweDAwLDB4YTEsMHgwOCwweDJjLDB4NDAsMHgwYiwweDExLDB4ODIsMHgwNCwweDAwLDB4YjEsMHgwMCB9LAotICAxNiwgMHg4NWYwLCAwLCB7MHgyOCwweDQwLDB4MGEsMHgxMCwweDQyLDB4YzQsMHgwMCwweGI1LDB4MDAsMHhhMSwweDQwLDB4MDgsMHgxMCwweDAyLDB4YzQsMHgwMCB9LAotICAxNiwgMHg4NjAwLCAwLCB7MHhiMSwweDAxLDB4MmMsMHg0MCwweDA4LDB4MTAsMHgyMCwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NjEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDg5LDB4MDQsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAwLDB4YWMsMHgwMCwweDM5LDB4MDAsMHgyYSB9LAotICAxNiwgMHg4NjIwLCAwLCB7MHg0MCwweDBiLDB4MTAsMHgwMiwweGE0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0OCwweDBiLDB4OTAsMHgxMiwweGU0LDB4MDAsMHhiOSB9LAotICAxNiwgMHg4NjMwLCAwLCB7MHgwMCwweDIxLDB4NjAsMHgwOSwweDkyLDB4MjIsMHhlNCwweDI4LDB4YjksMHgwMCwweDBhLDB4NTAsMHgwOCwweDkwLDB4MDYsMHhjNiB9LAotICAxNiwgMHg4NjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhlOSwweDAwLDB4MzYsMHg0MCB9LAotICAxNiwgMHg4NjUwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDgsMHgwZiwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZDksMHgwMCB9LAotICAxNiwgMHg4NjYwLCAwLCB7MHgzYSwweDc4LDB4MGUsMHg5OCwweDAzLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHhiMiwweDQwLDB4MGUsMHg5MiwweDIzLDB4ZTYsMHgwMCB9LAotICAxNiwgMHg4NjcwLCAwLCB7MHhiOSwweDUwLDB4M2UsMHg3MCwweDJjLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NjgwLCAwLCB7MHg2OCwweDAxLDB4ODQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4NGYsMHg5YywweDIzLDB4NjQsMHgwMCwweGY5LDB4MDQsMHgzNiB9LAotICAxNiwgMHg4NjkwLCAwLCB7MHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2MCwweDBmLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHg4NmEwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4ODMsMHhlNCwweDQ0LDB4ZjksMHgwMCwweDc4LDB4NjQsMHgwZiwweDkwLDB4MDMsMHhkYSB9LAotICAxNiwgMHg4NmIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCB9LAotICAxNiwgMHg4NmMwLCAwLCB7MHgwZiwweDgyLDB4MDMsMHhhMCwweDQwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHgyMCwweGMwLDB4YzgsMHg4MCB9LAotICAxNiwgMHg4NmQwLCAwLCB7MHgzZSwweDEyLDB4MGYsMHg4MCwweDAzLDB4NjAsMHgwMCwweDdjLDB4MDAsMHgzMywweDAwLDB4MGQsMHg4MCwweDEzLDB4ZTAsMHgxMCB9LAotICAxNiwgMHg4NmUwLCAwLCB7MHhjOCwweDY0LDB4M2UsMHgwOCwweDBjLDB4ODIsMHgwMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NmYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGI2LDB4ZTAsMHgwZiwweGEwLDB4MGIsMHg2MCwweDgyLDB4MzgsMHgwMCwweGFhLDB4MDAsMHgyZSB9LAotICAxNiwgMHg4NzAwLCAwLCB7MHg4MCwweDA4LDB4YTAsMHg0MiwweGJhLDB4MDAsMHhhZSwweDIwLDB4MmYsMHg4OCwweDBiLDB4ZTUsMHgwMiwweDI4LDB4MDAsMHhiYSB9LAotICAxNiwgMHg4NzEwLCAwLCB7MHhkOCwweDM3LDB4ODAsMHgwOCwweGVjLDB4MDIsMHhmOCwweDA0LDB4OGUsMHgwMCwweDJmLDB4OTAsMHgwZCwweGUwLDB4MDIsMHhjYSB9LAotICAxNiwgMHg4NzIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMCwweDI0LDB4MmMsMHg2MCB9LAotICAxNiwgMHg4NzMwLCAwLCB7MHgwYiwweDM4LDB4MDIsMHg4ZSwweDgwLDB4YWIsMHgwMCwweDJjLDB4YzAsMHgwOSwweDMwLDB4MDIsMHgwZCwweDA4LDB4MDAsMHg4MCB9LAotICAxNiwgMHg4NzQwLCAwLCB7MHg2YywweGQwLDB4MGIsMHgzNCwweDAyLDB4Y2MsMHgwMCwweGI4LDB4YzAsMHgyMCwweDAwLDB4NDgsMHgzNCwweDEyLDB4Y2MsMHg0MCB9LAotICAxNiwgMHg4NzUwLCAwLCB7MHg4MywweDAwLDB4MmMsMHhlMCwweDBhLDB4MzUsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NzYwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHg0MCwweGI3LDB4MDAsMHgyZCwweDAyLDB4OGIsMHg2MCwweDAyLDB4OWUsMHgwMCwweDg3LDB4MjAsMHgyZiB9LAotICAxNiwgMHg4NzcwLCAwLCB7MHhlMCwweDA4LDB4NzIsMHgwMiwweDllLDB4MDAsMHhhNCwweDAwLDB4MmQsMHhjMCwweDBiLDB4ZjgsMHgwMiwweDljLDB4YzAsMHhiMyB9LAotICAxNiwgMHg4NzgwLCAwLCB7MHgwMiwweGE1LDB4YzAsMHgwOCwweDUwLDB4ODYsMHhmZSwweDAwLDB4ODcsMHgwMCwweDJmLDB4ZDAsMHgwOSwweDcwLDB4MDIsMHhlOCB9LAotICAxNiwgMHg4NzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhmNCwweDgwLDB4M2QsMHgyMCB9LAotICAxNiwgMHg4N2EwLCAwLCB7MHgwZiwweDU4LDB4MDMsMHg5ZSwweDAwLDB4NjcsMHg4MCwweDNkLDB4ZjgsMHgwZCwweDM4LDB4MDIsMHgxYSwweDEwLDB4NDQsMHg4MCB9LAotICAxNiwgMHg4N2IwLCAwLCB7MHgzZCwweGUwLDB4MGYsMHg1OCwweDAzLDB4ZGUsMHgyMCwweGI0LDB4ODAsMHgzMywweGEwLDB4MmMsMHg2OCwweDAzLDB4ZDYsMHgwMCB9LAotICAxNiwgMHg4N2MwLCAwLCB7MHhjNywweDgxLDB4M2QsMHhlMCwweDBjLDB4NzgsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4N2QwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHgwOCwweGY4LDB4MDAsMHgzZSwweDAwLDB4OGYsMHg4MCwweDAzLDB4NmMsMHgwMCwweDNiLDB4MTIsMHgzZSB9LAotICAxNiwgMHg4N2UwLCAwLCB7MHhjYSwweDBmLDB4YjUsMHgwMywweGM4LDB4MDAsMHhmOCwweDA0LDB4N2UsMHhjMCwweDBmLDB4OTAsMHgwMywweDZjLDB4ODAsMHhmYiB9LAotICAxNiwgMHg4N2YwLCAwLCB7MHgwNCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MjMsMHhjOCwweDAwLDB4ZjksMHgwMSwweDNjLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHg4ODAwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZlLDB4MDAsMHhhYywweDkwLDB4MzEsMHg0OCB9LAotICAxNiwgMHg4ODEwLCAwLCB7MHgwOCwweGY4LDB4MDMsMHhmYSwweDAwLDB4Y2YsMHg4MCwweDNmLDB4ZTAsMHgwYywweGZjLDB4MTMsMHgzZSwweDA0LDB4ZmMsMHg4MCB9LAotICAxNiwgMHg4ODIwLCAwLCB7MHgzNSwweGEwLDB4MGMsMHg3OCwweDAzLDB4YmUsMHgwMCwweGRmLDB4ODAsMHgzYiwweDIwLDB4MjQsMHhmOCwweDAzLDB4MmUsMHg0MCB9LAotICAxNiwgMHg4ODMwLCAwLCB7MHhjZiwweDgwLDB4MzMsMHhlMCwweDAzLDB4ZjksMHgwMywweGQwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ODQwLCAwLCB7MHhhOCwweDExLDB4YmMsMHgwMCwweDgwLDB4MDAsMHgwMSwweDAwLDB4MDgsMHg3MiwweDAyLDB4ZDAsMHgwMCwweDg3LDB4MDAsMHgyZCB9LAotICAxNiwgMHg4ODUwLCAwLCB7MHhjOCwweDBhLDB4ZjAsMHgwMiwweDk4LDB4NDAsMHhmNSwweDAwLDB4NjEsMHg0MSwweDAwLDB4NzQsMHgwMiwweDFjLDB4MDAsMHhiNCB9LAotICAxNiwgMHg4ODYwLCAwLCB7MHgwMCwweDIxLDB4YzgsMHgwOCwweDYwLDB4MDIsMHgzZSwweDIwLDB4ODYsMHgwOCwweDIxLDB4ZDgsMHgwZiwweDUwLDB4MDIsMHhlYSB9LAotICAxNiwgMHg4ODcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMCwweDljLDB4MDAsMHhhNCwweDAwLDB4MjEsMHgwMCB9LAotICAxNiwgMHg4ODgwLCAwLCB7MHgwOCwweDUwLDB4MDIsMHhkOCwweDAwLDB4OTcsMHgwMCwweDJkLDB4YzAsMHg4OCwweDcxLDB4MDIsMHgxNCwweDAwLDB4YjAsMHgwMCB9LAotICAxNiwgMHg4ODkwLCAwLCB7MHgyNSwweDkwLDB4MDgsMHhjMCwweDgyLDB4OWMsMHg0MCwweDkzLDB4MDAsMHgyOSwweGExLDB4ODgsMHg2MCwweDAyLDB4MTQsMHgxMiB9LAotICAxNiwgMHg4OGEwLCAwLCB7MHg4NywweDQwLDB4MjksMHg0MCwweDBiLDB4NjAsMHgwMiwweGM0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4OGIwLCAwLCB7MHg2MCwweDE0LDB4Y2MsMHgwMCwweDgwLDB4ZDAsMHhhMCwweDAwLDB4MDgsMHgxYywweDAyLDB4YzAsMHgwMCwweDkzLDB4MDAsMHgyYyB9LAotICAxNiwgMHg4OGMwLCAwLCB7MHhkMCwweDBhLDB4YjAsMHgyNiwweDgwLDB4MDAsMHhiMywweDAwLDB4MjQsMHhlNCwweDA4LDB4MDgsMHgwMiwweDhjLDB4MDAsMHhiMCB9LAotICAxNiwgMHg4OGQwLCAwLCB7MHgwMiwweDAyLDB4NDEsMHgwOCwweDA4LDB4MDIsMHgwMywweDAxLDB4ODEsMHgwMCwweDI4LDB4NDIsMHgxYSwweDAwLDB4NDIsMHhkOCB9LAotICAxNiwgMHg4OGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZjgsMHgxNSwweGJjLDB4MDAsMHhlOCwweGMwLDB4MzIsMHg4MCB9LAotICAxNiwgMHg4OGYwLCAwLCB7MHgwYywweGI1LDB4MDMsMHhlNCwweDAwLDB4OWYsMHgwMCwweDNkLDB4ZTAsMHgwYywweGYwLDB4MGIsMHgyNCwweDAwLDB4ZjgsMHgwMCB9LAotICAxNiwgMHg4OTAwLCAwLCB7MHgzNiwweGUwLDB4MGMsMHgyNSwweDAzLDB4YmMsMHgwNSwweGQ4LDB4MDIsMHgyYSwweDAwLDB4MDgsMHhiYSwweDAyLDB4MmEsMHgwMCB9LAotICAxNiwgMHg4OTEwLCAwLCB7MHhjMSwweDAyLDB4M2EsMHg1MCwweDhiLDB4OTAsMHgwMywweGVlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4OTIwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDgsMHgzZSwweDgwLDB4MGYsMHhhMSwweDAzLDB4ZWMsMHgwNCwweGViLDB4MDIsMHgyZSB9LAotICAxNiwgMHg4OTMwLCAwLCB7MHhjNiwweDBmLDB4YjAsMHgxNywweDQ0LDB4MDAsMHhlOCwweDAwLDB4M2EsMHg0MCwweDBmLDB4ODAsMHgwMiwweDZjLDB4MDAsMHhmYiB9LAotICAxNiwgMHg4OTQwLCAwLCB7MHgwMCwweDNlLDB4ZTAsMHgwZiwweDkwLDB4OTMsMHhlMSwweDAwLDB4ZDksMHgwMCwweDI2LDB4NzAsMHg4ZiwweDkwLDB4MDEsMHhlMSB9LAotICAxNiwgMHg4OTUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweGZjLDB4MDAsMHhmYywweDAzLDB4MzcsMHgyNCB9LAotICAxNiwgMHg4OTYwLCAwLCB7MHgwZCwweGY4LDB4MDMsMHhlMCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzEsMHg4ZCwweGYwLDB4MGIsMHgzOCwweDAwLDB4Y2MsMHgwMCB9LAotICAxNiwgMHg4OTcwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmYSwweDAzLDB4M2MsMHgwYywweGZjLDB4MDQsMHgzYiwweDgwLDB4MGMsMHhhMCwweDAzLDB4OTQsMHgyMCB9LAotICAxNiwgMHg4OTgwLCAwLCB7MHg4OSwweDA1LDB4M2IsMHgwMCwweDRmLDB4ZDAsMHgyMywweGMwLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4OTkwLCAwLCB7MHg4MCwweDA0LDB4NmMsMHgwMCwweGIwLDB4MDYsMHgyMCwweDEzLDB4ODgsMHhhOCwweDAyLDB4ZWIsMHgwMCwweGJiLDB4MDAsMHgyZSB9LAotICAxNiwgMHg4OWEwLCAwLCB7MHhjMCwweDA4LDB4YjAsMHgwMiwweDJhLDB4MDAsMHhhOCwweDgwLDB4MmUsMHhlMCwweDBiLDB4OTQsMHgxYSwweDJjLDB4MDAsMHhiYiB9LAotICAxNiwgMHg4OWIwLCAwLCB7MHgwMCwweGEyLDB4NDAsMHgyOSwweDk4LDB4MDIsMHhlMiwweDAwLDB4YTksMHg4NCwweDIyLDB4MjAsMHgwYiwweDk4LDB4MDIsMHhlMCB9LAotICAxNiwgMHg4OWMwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiOCwweDAwLDB4MjIsMHgwMCB9LAotICAxNiwgMHg4OWQwLCAwLCB7MHgwOSwweDgyLDB4MDIsMHhlNiwweDAwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHgyNiwweDAwLDB4ODgsMHg4MCB9LAotICAxNiwgMHg4OWUwLCAwLCB7MHgyZSwweGEwLDB4MGIsMHhhMCwweDAyLDB4MmMsMHgwMCwweGIzLDB4MDAsMHgyYSwweDAwLDB4MDksMHg5OCwweDAyLDB4ZWEsMHgyMCB9LAotICAxNiwgMHg4OWYwLCAwLCB7MHhhOSwweDgwLDB4MmEsMHg2MCwweDliLDB4OTgsMHg4MiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YTAwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGI4LDB4MDAsMHgyMCwweDAwLDB4MDksMHgwOCwweDAyLDB4YzQsMHgwMCwweGIzLDB4MDAsMHgyNiB9LAotICAxNiwgMHg4YTEwLCAwLCB7MHhjMCwweDAwLDB4MzAsMHgwMiwweDAwLDB4MDAsMHg4MSwweDAwLDB4MmMsMHg0MSwweDBiLDB4MDAsMHgwMiwweDBjLDB4MDAsMHhiMCB9LAotICAxNiwgMHg4YTIwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwYiwweDAwLDB4MDIsMHhjOCwweDgwLDB4YTgsMHgwMCwweDIwLDB4NDEsMHgwYiwweDEwLDB4MDIsMHhjMiB9LAotICAxNiwgMHg4YTMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MTAsMHhmOCwweDUwLDB4YjIsMHgwMCB9LAotICAxNiwgMHg4YTQwLCAwLCB7MHgwZCwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZmIsMHgwMCwweDNkLDB4YzAsMHgwZCwweGYwLDB4MTMsMHgyNCwweDAyLDB4YzgsMHgwNiB9LAotICAxNiwgMHg4YTUwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4M2MsMHgwNCwweGZiLDB4MDAsMHg3OCwweDgwLDB4MGMsMHhhMCwweDAzLDB4ZTQsMHgwMCB9LAotICAxNiwgMHg4YTYwLCAwLCB7MHhlOSwweDAwLDB4MWEsMHg0MCwweDBmLDB4OTAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YTcwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwMCwweGY0LDB4MjAsMHgzZiwweDAwLDB4MGUsMHhjMCwweDAyLDB4ZjAsMHgwMSwweGZmLDB4MDAsMHgzZiB9LAotICAxNiwgMHg4YTgwLCAwLCB7MHhjMCwweDBmLDB4ZjAsMHgyMywweGYwLDB4MDAsMHhmZCwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmYyB9LAotICAxNiwgMHg4YTkwLCAwLCB7MHgwMCwweDNmLDB4NDAsMHg5YywweGMwLDB4MDMsMHhmMCwweDQwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4NDMsMHhlOCB9LAotICAxNiwgMHg4YWEwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGYwLDB4MDAsMHhlZCwweDIzLDB4YjcsMHg0OCB9LAotICAxNiwgMHg4YWIwLCAwLCB7MHgwYywweGUxLDB4YzMsMHg3YywweGMwLDB4ZGQsMHg4MCwweDM3LDB4ZTAsMHgwZiwweGNiLDB4MDMsMHhmZSwweDA4LDB4ZmMsMHgyOCB9LAotICAxNiwgMHg4YWMwLCAwLCB7MHgzZiwweGYwLDB4MWMsMHhmYiwweDIzLDB4N2MsMHgwMSwweGZmLDB4MTQsMHg3NywweGUyLDB4NGYsMHhlOCwweDIzLDB4N2MsMHgwMCB9LAotICAxNiwgMHg4YWQwLCAwLCB7MHhjNCwweDgwLDB4MzMsMHg0OCwweDJjLDB4ZjgsMHgyMiwweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YWUwLCAwLCB7MHg4MCwweDEwLDB4ZTAsMHhlMCwweGM5LDB4YzAsMHgyMiwweDViLDB4ODgsMHg5NiwweDIyLDB4MmQsMHgwMCwweDg5LDB4MjIsMHgyMiB9LAotICAxNiwgMHg4YWYwLCAwLCB7MHhjYSwweDBiLDB4OWUsMHgyMiwweGUyLDB4YTAsMHhiOSwweDYxLDB4MmMsMHhlMCwweDg4LDB4OWYsMHgwMiwweDNkLDB4ODUsMHhiZiB9LAotICAxNiwgMHg4YjAwLCAwLCB7MHg2MCwweDI2LDB4NTAsMHg0OCwweGEwLDB4MDIsMHgzYywweDAwLDB4ODgsMHgwMCwweDIyLDB4NTAsMHgwOCwweGIwLDB4MDIsMHgyMCB9LAotICAxNiwgMHg4YjEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGMwLDB4ODAsMHhiMSwweDEwLDB4MjAsMHg0NCB9LAotICAxNiwgMHg4YjIwLCAwLCB7MHgwYiwweGIyLDB4MDIsMHhjZSwweGQwLDB4ODEsMHgwOCwweDJjLDB4YzAsMHgwYiwweDAxLDB4MDIsMHg4YywweDA4LDB4YjMsMHgwOCB9LAotICAxNiwgMHg4YjMwLCAwLCB7MHgyYywweGM5LDB4MDgsMHgxMCwweDYyLDB4OGMsMHg2MCwweGIzLDB4MzIsMHgyNCwweDgwLDB4MGEsMHhhMCwweDAyLDB4NmMsMHgwMyB9LAotICAxNiwgMHg4YjQwLCAwLCB7MHg5YSwweDAxLDB4MjYsMHg0NCwweDQ4LDB4YjAsMHg0MiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YjUwLCAwLCB7MHhjMCwweDE1LDB4YTQsMHhhMCwweDhiLDB4MDIsMHgyMiwweGUwLDB4MGIsMHhiMCwweDYyLDB4YWMsMHg5OCwweDk5LDB4MDAsMHgyYSB9LAotICAxNiwgMHg4YjYwLCAwLCB7MHhjMiwweDBiLDB4OTgsMHgwNiwweGU0LDB4MDAsMHhiYiwweDAyLDB4MmUsMHhjMCwweDA4LDB4OTEsMHg0MiwweDJjLDB4MTAsMHhiYiB9LAotICAxNiwgMHg4YjcwLCAwLCB7MHgwMCwweDZlLDB4ODAsMHgwYSwweDgwLDB4MDIsMHg2YywweDAwLDB4MWIsMHgwMCwweDA2LDB4NDAsMHg0OCwweGI4LDB4MGEsMHg3MCB9LAotICAxNiwgMHg4YjgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweGU3LDB4MDAsMHhhMSwweDAwLDB4NzYsMHg3OCB9LAotICAxNiwgMHg4YjkwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhlOCwweDEwLDB4ZDksMHgwMCwweDNlLDB4ZDAsMHg0YiwweDllLDB4MTMsMHhhYywweDA4LDB4YjgsMHhhMCB9LAotICAxNiwgMHg4YmEwLCAwLCB7MHg3ZSwweGM2LDB4MDgsMHhhOCwweDAyLDB4MmMsMHgwMSwweGJiLDB4MDAsMHgyNiwweDMwLDB4NGUsMHgyMCwweDAzLDB4NGMsMHgxOCB9LAotICAxNiwgMHg4YmIwLCAwLCB7MHg5OSwweDgwLDB4YjQsMHg0MCwweDRjLDB4M2EsMHgwMywweDQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YmMwLCAwLCB7MHhlMCwweDAxLDB4YjIsMHgwMCwweGZkLDB4YzUsMHgzYiwweGMwLDB4NGMsMHhkMCwweDAzLDB4NmEsMHgwMiwweGVkLDB4MDYsMHgzMyB9LAotICAxNiwgMHg4YmQwLCAwLCB7MHhjNCwweDBmLDB4ZDAsMHg1MywweGY4LDB4MDAsMHhmYywweDkwLDB4N2YsMHhjMSwweDBmLDB4NzgsMHgwMywweGJjLDB4MDQsMHhmZiB9LAotICAxNiwgMHg4YmUwLCAwLCB7MHgwMCwweDM3LDB4NjQsMHgwYywweGYxLDB4MDMsMHhhNCwweDAwLDB4ZWQsMHhhMSwweDNiLDB4NDAsMHgwYiwweGYwLDB4ODMsMHhiOCB9LAotICAxNiwgMHg4YmYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweDhjLDB4MDAsMHhjYiwweDIwLDB4M2UsMHg3MSB9LAotICAxNiwgMHg4YzAwLCAwLCB7MHgwZiwweGIzLDB4MDMsMHg5OCwweDAyLDB4ZmIsMHgwMiwweDM2LDB4NDgsMHgwZiwweDkwLDB4MDMsMHhlYywweDIwLDB4ZjgsMHgwMCB9LAotICAxNiwgMHg4YzEwLCAwLCB7MHgzZSwweGNjLDB4MDQsMHg4NCwweDAzLDB4MmMsMHgwMCwweGRiLDB4MDQsMHgzYywweDEwLDB4MGYsMHhhMCwweDAzLDB4ZWMsMHgwMCB9LAotICAxNiwgMHg4YzIwLCAwLCB7MHg5YiwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YzMwLCAwLCB7MHg4OCwweDA1LDB4MmMsMHgwMiwweDhiLDB4NDgsMHgyZSwweGUwLDB4MGIsMHgzNCwweDAzLDB4NmIsMHgwMCwweDhiLDB4ZjUsMHgyMiB9LAotICAxNiwgMHg4YzQwLCAwLCB7MHhmMiwweDBiLDB4OWMsMHgwMywweGFmLDB4MDAsMHhiOCwweDUwLDB4MmUsMHhjMCwweDA4LDB4YjAsMHgwMiwweDdjLDB4MDAsMHg4ZiB9LAotICAxNiwgMHg4YzUwLCAwLCB7MHgwMCwweDBlLDB4NWQsMHgwYiwweDgwLDB4MDIsMHhmNSwweDQwLDB4ODMsMHg1MCwweDIzLDB4NTQsMHgwOCwweDljLDB4MDIsMHhlNiB9LAotICAxNiwgMHg4YzYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNCwweDRjLDB4MDAsMHg4MSwweDgxLDB4MmUsMHg0MCB9LAotICAxNiwgMHg4YzcwLCAwLCB7MHgwMywweDJjLDB4MDIsMHgwNCwweDMzLDB4OTksMHgwMCwweDIwLDB4ZjAsMHg0YSwweDI4LDB4ODAsMHhjYywweDQwLDB4YjAsMHgwMCB9LAotICAxNiwgMHg4YzgwLCAwLCB7MHgyNiwweDEwLDB4MDgsMHgyMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYywweGMwLDB4MDksMHgyMCwweDAyLDB4Y2MsMHgwMCB9LAotICAxNiwgMHg4YzkwLCAwLCB7MHhhMCwweDAyLDB4MjgsMHg0MCwweDA4LDB4MDgsMHgwMiwweDdhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4Y2EwLCAwLCB7MHgyMCwweDAxLDB4MGEsMHgwMCwweDg1LDB4ODAsMHgyZCwweGY4LDB4MGIsMHhkYSwweDAyLDB4ZDYsMHg0MCwweDg1LDB4YTAsMHgyMSB9LAotICAxNiwgMHg4Y2IwLCAwLCB7MHhlMCwweDBiLDB4NDgsMHgwNiwweDkyLDB4MDQsMHhiNSwweDgwLDB4MmQsMHgyMSwweDA4LDB4MDAsMHgwMiwweDRlLDB4MDAsMHg4NyB9LAotICAxNiwgMHg4Y2MwLCAwLCB7MHhhNCwweDJkLDB4NjAsMHgwYiwweDY4LDB4MDIsMHhkZSwweGMyLDB4YWQsMHg5MCwweDJiLDB4NjAsMHgyOCwweDU4LDB4ODIsMHhkYyB9LAotICAxNiwgMHg4Y2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDRjLDB4NDAsMHhjMywweDEwLDB4MmMsMHg2YyB9LAotICAxNiwgMHg4Y2UwLCAwLCB7MHgwZiwweDMwLDB4MDMsMHg4NiwweGEyLDB4ZjksMHhiMCwweGIwLDB4ZTAsMHgwZiwweDI5LDB4ODMsMHhjZSwweDQ0LDB4ZjMsMHg4MCB9LAotICAxNiwgMHg4Y2YwLCAwLCB7MHgzYywweGFjLDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCwweGMzLDB4MDAsMHgzYywweGQ1LDB4MGYsMHgyMCwweDAzLDB4Y2UsMHhjMSB9LAotICAxNiwgMHg4ZDAwLCAwLCB7MHhlMCwweDEwLDB4YjgsMHg0MCwweDBjLDB4MDAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZDEwLCAwLCB7MHhjMCwweDFkLDB4YmMsMHgwMCwweGViLDB4MDAsMHgzZSwweGNjLDB4MGYsMHgzMiwweDAzLDB4NjQsMHgwOCwweGY5LDB4MDAsMHgzYiB9LAotICAxNiwgMHg4ZDIwLCAwLCB7MHg5MCwweDBmLDB4ZjAsMHg0MywweGU0LDB4NDAsMHhmYiwweDM0LDB4M2YsMHg4MSwweDA3LDB4ZDEsMHgwMywweGFkLDB4MjAsMHhlYiB9LAotICAxNiwgMHg4ZDMwLCAwLCB7MHgyMCwweDdmLDB4YzQsMHgwZiwweGUxLDB4MDMsMHhmYywweDUwLDB4Y2QsMHgxMCwweDM1LDB4NDAsMHgwZiwweGQwLDB4MDMsMHhkMCB9LAotICAxNiwgMHg4ZDQwLCAwLCB7MHgwMiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU0LDB4MDQsMHhmZCwweDA0LDB4M2QsMHg0MCB9LAotICAxNiwgMHg4ZDUwLCAwLCB7MHgyZCwweDMwLDB4MDIsMHgzYywweDAwLDB4YzksMHgwMSwweDNlLDB4YzAsMHg0ZiwweGI4LDB4NDMsMHhlYywweDEwLDB4ZmIsMHgwMCB9LAotICAxNiwgMHg4ZDYwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHhhMCwweDIzLDB4ZWMsMHg4MCwweGNiLDB4MzYsMHgzMiwweDgwLDB4NGQsMHhhOCwweDAzLDB4MmMsMHgxMCB9LAotICAxNiwgMHg4ZDcwLCAwLCB7MHhjYiwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweDZhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZDgwLCAwLCB7MHhjOCwweDExLDB4OTAsMHgwOCwweGI1LDB4MDAsMHgyZCwweGMwLDB4MDgsMHg1MCwweDAyLDB4YmMsMHgwMiwweDg1LDB4MDQsMHgyZCB9LAotICAxNiwgMHg4ZDkwLCAwLCB7MHhjMCwweDhlLDB4NjAsMHgwNiwweGQ4LDB4MDQsMHhiNywweDA0LDB4MjEsMHg0MCwweDBiLDB4NzAsMHgwMiwweGZjLDB4ODAsMHhhZiB9LAotICAxNiwgMHg4ZGEwLCAwLCB7MHgyOCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgwNiwweDQwLDB4ODcsMHgwMCwweDIxLDB4NTAsMHgwOCwweDUwLDB4MDIsMHgzMiB9LAotICAxNiwgMHg4ZGIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MjAsMHhiNywweDgwLDB4MmIsMHg3MCB9LAotICAxNiwgMHg4ZGMwLCAwLCB7MHgwOCwweGY4LDB4MDYsMHgxZSwweDAwLDB4ODcsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDcwLDB4MzIsMHhkZSwweDA0LDB4MzcsMHg4NCB9LAotICAxNiwgMHg4ZGQwLCAwLCB7MHgyNSwweGUwLDB4MGIsMHg2OCwweDA2LDB4ZGUsMHg4MCwweDg3LDB4ODAsMHgyMSwweGExLDB4MWIsMHg2OCwweDAyLDB4MWUsMHg0MCB9LAotICAxNiwgMHg4ZGUwLCAwLCB7MHg5ZiwweDgwLDB4MjAsMHg2MCwweDA4LDB4NTgsMHgwMiwweDIwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZGYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgyMCwweGIzLDB4MDAsMHgyYywweDgwLDB4ODgsMHhiNCwweDIyLDB4OGQsMHgwMCwweDgzLDB4OTAsMHgyYyB9LAotICAxNiwgMHg4ZTAwLCAwLCB7MHhjMCwweDBhLDB4MzgsMHgwMiwweGNlLDB4MDgsMHhiYiwweDIwLDB4MjQsMHhkMCwweDBiLDB4YjMsMHgwMiwweGNjLDB4MDAsMHhhMyB9LAotICAxNiwgMHg4ZTEwLCAwLCB7MHgwMCwweDYwLDB4ZDIsMHgwYiwweDIwLDB4MmEsMHgwNCwweDA4LDB4OTMsMHg1MCwweDIwLDB4NDAsMHgwOCwweDE3LDB4MGEsMHgwMiB9LAotICAxNiwgMHg4ZTIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGJhLDB4MDAsMHhiYSwweGEwLDB4M2YsMHg4NCB9LAotICAxNiwgMHg4ZTMwLCAwLCB7MHgxYywweGUwLDB4MGIsMHgzOCwweDQwLDB4OGUsMHgwNiwweDJlLDB4ODAsMHgwYiwweGUzLDB4MDMsMHhmOCwweDgwLDB4ZmUsMHhlNCB9LAotICAxNiwgMHg4ZTQwLCAwLCB7MHhiNywweDkwLDB4MGYsMHhlYywweDAyLDB4ZTgsMHgwMCwweDhhLDB4MDAsMHhhMywweGEwLDB4MDksMHhlNCwweDAzLDB4MmEsMHgwMiB9LAotICAxNiwgMHg4ZTUwLCAwLCB7MHhkZSwweGMwLDB4ZjMsMHg4MCwweDBjLDB4NmMsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZTYwLCAwLCB7MHg0OCwweDAxLDB4ZTAsMHgwMCwweGY4LDB4NDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyZSB9LAotICAxNiwgMHg4ZTcwLCAwLCB7MHgzMCwweDBhLDB4ODQsMHgwMywweGUwLDB4MDQsMHhmOCwweDAwLDB4M2EsMHgwMiwweDBmLDB4ODAsMHgxMywweGUwLDB4MDAsMHhmOCB9LAotICAxNiwgMHg4ZTgwLCAwLCB7MHgwMCwweDNlLDB4MDQsMHgwZCwweDgwLDB4ODMsMHhlMCwweDQwLDB4ZTgsMHgyMCwweDNlLDB4MDAsMHgyZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg4ZTkwLCAwLCB7MHgxMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg2NCB9LAotICAxNiwgMHg4ZWEwLCAwLCB7MHg0ZSwweDkwLDB4ODMsMHgyNCwweDgwLDB4YzksMHgwMCwweDMyLDB4ZTAsMHgwZiwweDEwLDB4MDMsMHgyNSwweDAwLDB4ZjksMHgwMCB9LAotICAxNiwgMHg4ZWIwLCAwLCB7MHgzMiwweDQ0LDB4MGYsMHg5MiwweDIzLDB4NjQsMHgwMCwweGMxLDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDEzLDB4ZTQsMHgwMCB9LAotICAxNiwgMHg4ZWMwLCAwLCB7MHhjOSwweDAwLDB4MjIsMHg0MCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZWQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4MjAsMHgyZSwweDQwLDB4NDgsMHg5NiwweDIyLDB4MjUsMHgwMCwweGQ5LDB4YzAsMHhhMiB9LAotICAxNiwgMHg4ZWUwLCAwLCB7MHg3MCwweDBiLDB4OTgsMHgwMiwweDI0LDB4MDAsMHhiOSwweDQwLDB4YTIsMHg3MCwweDRiLDB4OTAsMHgwMiwweDI0LDB4MDAsMHhkOSB9LAotICAxNiwgMHg4ZWYwLCAwLCB7MHgwMCwweGEyLDB4NDAsMHgyYywweDk0LDB4MjIsMHhlNCwweDAyLDB4ODksMHgwMCwweGEyLDB4NDAsMHgyOCwweDk0LDB4MTMsMHgyMCB9LAotICAxNiwgMHg4ZjAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9LAotICAxNiwgMHg4ZjEwLCAwLCB7MHgwYSwweDkwLDB4MDIsMHgwNCwweDAwLDB4ODEsMHg4MCwweGEyLDB4NDQsMHgwYiwweDkxLDB4MDIsMHgyNSwweDAwLDB4MTksMHg0MCB9LAotICAxNiwgMHg4ZjIwLCAwLCB7MHg2MiwweDQwLDB4MGIsMHhiNCwweDAyLDB4NDQsMHgwMCwweDg5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHg5MCwweDgyLDB4YzQsMHgwMSB9LAotICAxNiwgMHg4ZjMwLCAwLCB7MHg4MywweDAyLDB4MjgsMHg0MCwweDQ4LDB4OTAsMHg4MiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZjQwLCAwLCB7MHgwMCwweDA0LDB4MDUsMHg4MCwweGIxLDB4MDAsMHg2YywweDUxLDB4MDgsMHgxNCwweDFhLDB4MDUsMHgwMCwweDkzLDB4MDAsMHgyMCB9LAotICAxNiwgMHg4ZjUwLCAwLCB7MHg0MCwweDhiLDB4MTQsMHgwMiwweDA1LDB4MDAsMHhiMSwweDIwLDB4MjAsMHg1MCwweDBiLDB4MTQsMHgwNiwweDA0LDB4ODAsMHg5MSB9LAotICAxNiwgMHg4ZjYwLCAwLCB7MHgyMCwweDIwLDB4NDAsMHgwOSwweDEwLDB4MDIsMHhjNCwweGE4LDB4ODEsMHgwMCwweDI4LDB4NGEsMHgwOCwweDkwLDB4NGEsMHg0MiB9LAotICAxNiwgMHg4ZjcwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCB9LAotICAxNiwgMHg4ZjgwLCAwLCB7MHgwZSwweDgwLDB4MDMsMHgyOCwweDAxLDB4YzgsMHg1MCwweDMyLDB4OTQsMHg4YiwweGEwLDB4MDMsMHgyMCwweDAwLDB4YjAsMHg1MCB9LAotICAxNiwgMHg4ZjkwLCAwLCB7MHgzMiwweDgwLDB4MGYsMHg4MCwweDA3LDB4NjEsMHg1MSwweGM4LDB4NTAsMHgyMiwweDAwLDB4MGMsMHgwMCwweDAzLDB4ZTAsMHg4NCB9LAotICAxNiwgMHg4ZmEwLCAwLCB7MHhjOCwweDA0LDB4M2EsMHgwOCwweDBjLDB4MDAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZmIwLCAwLCB7MHg5OCwweDlkLDB4ZjQsMHg0MCwweGJkLDB4NDEsMHgzZiwweDUwLDB4MGYsMHhmNCwweDAzLDB4ZjUsMHgxMCwweGZkLDB4MDAsMHgzZSB9LAotICAxNiwgMHg4ZmMwLCAwLCB7MHg0MCwweDBmLDB4ZDQsMHgwMywweGY0LDB4MDAsMHhmZiwweDEwLDB4MmYsMHg0MCwweDRmLDB4ZDQsMHg0MCwweGE0LDB4NDgsMHhmOSB9LAotICAxNiwgMHg4ZmQwLCAwLCB7MHgxMiwweDNmLDB4NWEsMHg4ZSwweGQyLDB4ODMsMHhmNCwweGE4LDB4ZjUsMHgyYywweDM3LDB4NGEsMHgwZiwweGQyLDB4ODMsMHhhNiB9LAotICAxNiwgMHg4ZmUwLCAwLCB7MHgxMiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU2LDB4ODAsMHhmZCwweDI4LDB4M2YsMHg0YyB9LAotICAxNiwgMHg4ZmYwLCAwLCB7MHgwZiwweDUwLDB4MDMsMHgzYywweDQ0LDB4Y2QsMHg0MCwweDNmLDB4ZDAsMHgwZCwweGQwLDB4MDIsMHgxNCwweDAxLDB4ZmQsMHhhMCB9LAotICAxNiwgMHg5MDAwLCAwLCB7MHgzMSwweDQwLDB4MDMsMHhkMCwweDAzLDB4ZTcsMHg4OSwweGY5LDB4OTAsMHg3ZSwweDUwLDB4MGMsMHg5NCwweDAzLDB4ZTYsMHhjMCB9LAotICAxNiwgMHg5MDEwLCAwLCB7MHhjOSwweDEwLDB4MzIsMHg2ZCwweDBmLDB4OTEsMHgwMiwweGM2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MDIwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHg4MCwweGI4LDB4MDEsMHgyZSwweDBjLDB4OGIsMHg4NCwweDgyLDB4MjAsMHg0MiwweDg4LDB4YTAsMHg2ZSB9LAotICAxNiwgMHg5MDMwLCAwLCB7MHgyMCwweDA4LDB4ODAsMHgwMywweDYwLDB4MDAsMHg5OCwweGU4LDB4MjIsMHgwMCwweDA5LDB4ODAsMHgwMiwweGUzLDB4YzAsMHhlOCB9LAotICAxNiwgMHg5MDQwLCAwLCB7MHhkMCwweDJlLDB4MjgsMHgwOCwweDhhLDB4MjMsMHhlMiwweDg0LDB4ZDgsMHhhMCwweDIyLDB4M2QsMHgwYiwweGM4LDB4MDIsMHhjZSB9LAotICAxNiwgMHg5MDUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM1LDB4YjAsMHhiMSwweDAwLDB4MmMsMHg0OCB9LAotICAxNiwgMHg5MDYwLCAwLCB7MHgwYiwweDEzLDB4MDIsMHgwNCwweDAyLDB4YjEsMHgyMCwweDJlLDB4NDAsMHg4OCwweDEwLDB4MjIsMHhjNCwweDAwLDB4YjEsMHgxNCB9LAotICAxNiwgMHg5MDcwLCAwLCB7MHgyNCwweDQwLDB4MGIsMHgxMCwweDUyLDB4YzQsMHgwMCwweGIxLDB4MjEsMHgyZCwweDQ4LDB4MGEsMHg1MiwweDAyLDB4ZDUsMHgwMCB9LAotICAxNiwgMHg5MDgwLCAwLCB7MHhiZCwweDAwLDB4YWQsMHg0MCwweDBiLDB4NTIsMHgwMiwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MDkwLCAwLCB7MHgxOCwweDU1LDB4YTUsMHgwMCwweGI5LDB4ODIsMHgyZSwweDQ5LDB4OGIsMHhiMCwweDEyLDB4MjQsMHgxMCwweDk5LDB4MDIsMHgyZSB9LAotICAxNiwgMHg5MGEwLCAwLCB7MHg0MCwweDA4LDB4YjIsMHgwMCwweDY1LDB4MDAsMHg5OSwweDgwLDB4MjYsMHg0NCwweDA5LDB4OTEsMHgwMiwweGU0LDB4MDksMHhhOSB9LAotICAxNiwgMHg5MGIwLCAwLCB7MHgwNCwweDJlLDB4NDYsMHgwYSwweGQ0LDB4MDIsMHhiNCwweDAwLDB4YmQsMHg0MCwweDJmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHhjNiB9LAotICAxNiwgMHg5MGMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU3LDB4NDAsMHhmOSwweDgwLDB4MmUsMHg2MiB9LAotICAxNiwgMHg5MGQwLCAwLCB7MHgwZiwweDljLDB4NDIsMHgyNCwweDAwLDB4OTksMHgwMSwweDJlLDB4NjgsMHgyYywweDkyLDB4MDIsMHg2NCwweDAwLDB4YjksMHg0MCB9LAotICAxNiwgMHg5MGUwLCAwLCB7MHhiNiwweDYwLDB4MGYsMHg5YSwweDAzLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDcwLDB4M2UsMHg5OSwweDA2LDB4ZTQsMHgwMiB9LAotICAxNiwgMHg5MGYwLCAwLCB7MHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTgsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MTAwLCAwLCB7MHg2OCwweDAxLDB4YTYsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MWYsMHgxMiwweGFiLDB4ZTQsMHgwMCwweGU5LDB4OTAsMHgzZSB9LAotICAxNiwgMHg5MTEwLCAwLCB7MHg0OSwweDBlLDB4OTgsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2EsMHg0MCwweDBkLDB4OTgsMHgwMywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHg5MTIwLCAwLCB7MHgwMSwweDNlLDB4NjAsMHgwNSwweDkwLDB4MTMsMHhlNCwweDAwLDB4NTksMHgyMCwweDMyLDB4NDAsMHg4ZiwweDkxLDB4MDMsMHhkYSB9LAotICAxNiwgMHg5MTMwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgxMCwweGEwLDB4MDAsMHhjOCwweDA4LDB4M2UsMHgwMSB9LAotICAxNiwgMHg5MTQwLCAwLCB7MHgwZiwweDg0LDB4NjMsMHgwMCwweDIyLDB4ZTgsMHgyMCwweDNlLDB4MTMsMHgwZiwweDg0LDB4MDMsMHhlMSwweGMwLDB4ZDgsMHg0YyB9LAotICAxNiwgMHg5MTUwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4NCwweDQzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyMiwweDEwLDB4MGYsMHg4NCwweDAzLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MTYwLCAwLCB7MHhjOCwweDAwLDB4YjIsMHgwMCwweDBjLDB4YzAsMHgwMywweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MTcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhlLDB4MDAsMHgyZiwweDg2LDB4NGIsMHhlMCwweDAyLDB4MzksMHgwOCwweDhlLDB4MjAsMHgyZCB9LAotICAxNiwgMHg5MTgwLCAwLCB7MHg5MCwweDBiLDB4ZWQsMHg5MiwweGY4LDB4MDIsMHg4ZSwweGUwLDB4YTMsMHg5OCwweDA4LDB4ZTAsMHgwMiwweGU4LDB4MDgsMHhiYSB9LAotICAxNiwgMHg5MTkwLCAwLCB7MHgwMCwweDYyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4MDIsMHg4MCwweDAyLDB4ODAsMHg0OCwweGUwLDB4MDMsMHg0YSB9LAotICAxNiwgMHg5MWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDEwLDB4MmMsMHhmMCB9LAotICAxNiwgMHg5MWIwLCAwLCB7MHgwYSwweDE0LDB4MmEsMHgwZCwweDFhLDB4YjMsMHgwMSwweDI0LDB4ZDAsMHgwYiwweGJjLDB4MzIsMHhjYywweDA4LDB4MDMsMHgwMCB9LAotICAxNiwgMHg5MWMwLCAwLCB7MHgyMCwweGM4LDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDIsMHgyMiwweGMwLDB4MDksMHgzMCwweDAyLDB4MGMsMHgxMSB9LAotICAxNiwgMHg5MWQwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMCwweDI4LDB4MjAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MWUwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMSwweDg1LDB4MDAsMHgyZCwweDAwLDB4MGIsMHg3MCwweDAyLDB4MTgsMHgzMiwweDg2LDB4MDAsMHgyZCB9LAotICAxNiwgMHg5MWYwLCAwLCB7MHhjMCwweDBiLDB4NjAsMHgxNiwweGZlLDB4MDQsMHg4NiwweDAwLDB4MjcsMHhhMCwweDhiLDB4NzAsMHg0MiwweGRjLDB4ODAsMHhiNyB9LAotICAxNiwgMHg5MjAwLCAwLCB7MHg4MCwweDIxLDB4MDEsMHgwOCwweGY4LDB4MGEsMHgxOCwweDAwLDB4ODYsMHgwOCwweDIwLDB4YTAsMHgwOCwweGU4LDB4MGEsMHg2OCB9LAotICAxNiwgMHg5MjEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwOCwweDNlLDB4MDIsMHhjNiwweDgwLDB4M2QsMHhlMCB9LAotICAxNiwgMHg5MjIwLCAwLCB7MHgwZiwweDQ4LDB4MDMsMHgwNiwweDA0LDB4ZjUsMHg4MiwweDM1LDB4ZTAsMHgwZiwweDc4LDB4MDMsMHhkYSwweDAwLDB4ZDMsMHg4MCB9LAotICAxNiwgMHg5MjMwLCAwLCB7MHgzMSwweDYwLDB4MDcsMHg3OCwweDAzLDB4ZGUsMHgyMCwweGYzLDB4YjAsMHg4MSwweGUwLDB4NGYsMHg2OCwweDA3LDB4MGUsMHgwMiB9LAotICAxNiwgMHg5MjQwLCAwLCB7MHhjZiwweDgwLDB4MzEsMHhlMCwweDBjLDB4NzgsMHgxMywweDJhLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MjUwLCAwLCB7MHgwOCwweDFkLDB4YWQsMHhhMCwweGY5LDB4MDAsMHgzZiwweDAwLDB4MGYsMHhiMCwweDUzLDB4ZjgsMHgxMCwweGE5LDB4MDAsMHgzZSB9LAotICAxNiwgMHg5MjYwLCAwLCB7MHgwMCwweDBmLDB4ODAsMHgwMSwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2EsMHhjMCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiB9LAotICAxNiwgMHg5MjcwLCAwLCB7MHg3NCwweDNjLDB4MDAsMHgwZiwweDIwLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwZiwweDMwLDB4MDMsMHhjMiB9LAotICAxNiwgMHg5MjgwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGZlLDB4MDIsMHg4ZiwweDgwLDB4MzUsMHhlMCB9LAotICAxNiwgMHg5MjkwLCAwLCB7MHg4ZCwweGQ5LDB4MDMsMHgyZSwweGM0LDB4ZjYsMHg4MCwweDMyLDB4YTQsMHgwYywweGI4LDB4MDMsMHhkZSwweDAwLDB4Y2YsMHg5MCB9LAotICAxNiwgMHg5MmEwLCAwLCB7MHgzYywweGU0LDB4MGMsMHhiOCwweDAzLDB4ZmUsMHg2NSwweGZmLDB4ODAsMHgwZiwweGVjLDB4OGYsMHhmOCwweDAzLDB4ZmUsMHgwMCB9LAotICAxNiwgMHg5MmIwLCAwLCB7MHhjNSwweDgwLDB4MzMsMHhlMCwweDBmLDB4NjgsMHgwMywweDEwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MmMwLCAwLCB7MHhhYSwweDExLDB4OWMsMHg4MCwweDg0LDB4YjAsMHgyMCwweDIwLDB4MjksMHg3MywweDBhLDB4MGUsMHg4MiwweGEyLDB4YTAsMHhhMiB9LAotICAxNiwgMHg5MmQwLCAwLCB7MHhhMCwweDRmLDB4M2IsMHgwMywweDg3LDB4ODQsMHhiMiwweDgwLDB4MmMsMHhhMCwweDBhLDB4N2QsMHgwMiwweGRlLDB4ODAsMHhmNyB9LAotICAxNiwgMHg5MmUwLCAwLCB7MHgyMCwweDI1LDB4MDYsMHgwOCwweDcwLDB4MDIsMHhjOCwweDQwLDB4ODQsMHgwMCwweDM1LDB4ODAsMHgwYiwweDYwLDB4MDMsMHg2YSB9LAotICAxNiwgMHg5MmYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MTAsMHg4NiwweDM4LDB4MjcsMHhjMCB9LAotICAxNiwgMHg5MzAwLCAwLCB7MHg0OSwweDU0LDB4MDYsMHg1NCwweDQwLDB4MWQsMHgyMCwweDIxLDB4Y2EsMHgwOSwweDYxLDB4NDAsMHhmOCwweDgwLDB4YjcsMHgyMCB9LAotICAxNiwgMHg5MzEwLCAwLCB7MHgyZiwweDAwLDB4ODksMHg3MCwweDEyLDB4ZGMsMHg4MSwweGI3LDB4MDQsMHgyZCwweGM5LDB4MGEsMHg2MCwweDAyLDB4Y2MsMHgwMCB9LAotICAxNiwgMHg5MzIwLCAwLCB7MHg4ZCwweDAwLDB4MmQsMHhjMCwweDBiLDB4ZjgsMHgwMiwweDA0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MzMwLCAwLCB7MHg2MCwweDE0LDB4Y2QsMHgyOCwweDgwLDB4MDAsMHgyNCwweDAwLDB4MDksMHhiMCwweDIyLDB4NGMsMHgwMiwweGExLDB4MDEsMHgyMCB9LAotICAxNiwgMHg5MzQwLCAwLCB7MHgzMCwweDFiLDB4MjMsMHgwMiwweGFmLDB4MjAsMHhiMywweDA4LDB4MmMsMHg4MCwweDFiLDB4MzAsMHgwMCwweGNjLDB4MDQsMHhhMyB9LAotICAxNiwgMHg5MzUwLCAwLCB7MHgwMSwweDI2LDB4MzAsMHgwOCwweGFjLDB4MjIsMHhlOCwweDAyLDB4ODAsMHgwOCwweDJlLDB4ODAsMHg0YiwweGI0LDB4MDIsMHg1OCB9LAotICAxNiwgMHg5MzYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MTAsMHg4YiwweDgwLDB4MzYsMHhmMCB9LAotICAxNiwgMHg5MzcwLCAwLCB7MHgyZCwweGJjLDB4MGIsMHg2YywweDAxLDB4ZGEsMHgwNCwweDIyLDB4NDAsMHg3ZCwweDk0LDB4MjIsMHhlNCwweDAwLDB4YWIsMHg0NCB9LAotICAxNiwgMHg5MzgwLCAwLCB7MHgyZSwweGMwLDB4MDksMHhiOCwweDAyLDB4ZmMsMHgwMCwweGJmLDB4MDAsMHgzZSwweGYwLDB4Y2EsMHg5MiwweDAyLDB4ZTQsMHgwMiB9LAotICAxNiwgMHg5MzkwLCAwLCB7MHhjYiwweDAwLDB4NmUsMHg0MCwweDBmLDB4ODQsMHgwMSwweDJlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5M2EwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzYSwweGUwLDB4MmUsMHhiYywweDAzLDB4OTgsMHgwOCwweGVhLDB4NDAsMHgzNiB9LAotICAxNiwgMHg5M2IwLCAwLCB7MHg0MywweDhjLDB4OTAsMHgwMywweGE0LDB4NDQsMHgyYSwweDQwLDB4M2UsMHgxMCwweDBlLDB4YjUsMHg4MywweGVjLDB4MTQsMHhmYiB9LAotICAxNiwgMHg5M2MwLCAwLCB7MHgwMCwweDI2LDB4MDAsMHgwZSwweDkyLDB4MDMsMHhlMCwweDQwLDB4ZmEsMHgwMCwweDE2LDB4MDAsMHgwZiwweDgwLDB4MTMsMHhlMCB9LAotICAxNiwgMHg5M2QwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGVjLDB4MDIsMHhmYSwweDgwLDB4M2YsMHhlMiB9LAotICAxNiwgMHg5M2UwLCAwLCB7MHgwZiwweGIwLDB4MGIsMHgyNCwweDAwLDB4ZWYsMHg5MiwweGJiLDB4ZTAsMHgxYywweGQwLDB4MDMsMHg3NCwweDAwLDB4Y2YsMHgwNSB9LAotICAxNiwgMHg5M2YwLCAwLCB7MHgzYiwweDQwLDB4MGYsMHhjOCwweDAzLDB4NWMsMHgwMCwweGNmLDB4MDAsMHgzMiwweGMyLDB4NGQsMHhjMSwweDIzLDB4MzQsMHg0MCB9LAotICAxNiwgMHg5NDAwLCAwLCB7MHhjZiwweDAwLDB4MTcsMHg0NCwweDBjLDB4ZDEsMHg4MywweDAwLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NDEwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4ODQsMHgyZSwweDU0LDB4MGIsMHhiYywweDBhLDB4MjksMHg4MCwweDhiLDB4ODAsMHgzMiB9LAotICAxNiwgMHg5NDIwLCAwLCB7MHgwMCwweDA4LDB4OWMsMHgwMywweGE3LDB4MDAsMHhhYiwweDg0LDB4MmUsMHg3YywweDBiLDB4ODAsMHgwMiwweDJjLDB4MTAsMHhkYiB9LAotICAxNiwgMHg5NDMwLCAwLCB7MHgwMSwweDM2LDB4MDAsMHgwOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4ODIsMHgwMCwweDIyLDB4MDAsMHgwOCwweDkwLDB4MDIsMHgyNCB9LAotICAxNiwgMHg5NDQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDBjLDB4MDAsMHg4OSwweDEwLDB4NjYsMHg5MCB9LAotICAxNiwgMHg5NDUwLCAwLCB7MHgwYiwweGI4LDB4MDIsMHg2ZSwweDEyLDB4YTMsMHg0MSwweDIwLDB4MDQsMHgwYSwweDk4LDB4MjIsMHhlMiwweDAwLDB4ODksMHgxOSB9LAotICAxNiwgMHg5NDYwLCAwLCB7MHgyZSwweGMwLDB4NGIsMHgzMSwweDIyLDB4NmMsMHgwOCwweDgzLDB4MDAsMHgyMiwweGMwLDB4MDksMHg5MCwweDAyLDB4MjQsMHgwMCB9LAotICAxNiwgMHg5NDcwLCAwLCB7MHg4OSwweDAwLDB4MmEsMHg0MCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NDgwLCAwLCB7MHgwOCwweDEwLDB4MGMsMHgwMCwweDgwLDB4MjAsMHgyYywweDBlLDB4MWIsMHgzMCwweDAyLDB4MDQsMHg0MSwweDgwLDB4MjAsMHgyMCB9LAotICAxNiwgMHg5NDkwLCAwLCB7MHgxMiwweDE4LDB4MTYsMHg0MiwweDAwLDB4NTAsMHhhMCwweDQwLDB4MmMsMHg4OCwweDFiLDB4MzAsMHgwMiwweDBjLDB4ODEsMHg5MyB9LAotICAxNiwgMHg5NGEwLCAwLCB7MHgwMCwweDI0LDB4MDAsMHgwOCwweDEwLDB4MmEsMHgwMCwweDBhLDB4ODgsMHgwMCwweDI4LDB4MDAsMHgyOCwweDAwLDB4MGEsMHgwMiB9LAotICAxNiwgMHg5NGIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDdjLDB4MTEsMHhlOCwweDAwLDB4MjYsMHg5OCB9LAotICAxNiwgMHg5NGMwLCAwLCB7MHgwZiwweGIwLDB4MTMsMHgyMSwweDBjLDB4ZWIsMHg2MCwweDNhLDB4ZDgsMHgyOCwweDg0LDB4YTIsMHhlMSwweDgwLDB4YzgsMHgyMCB9LAotICAxNiwgMHg5NGQwLCAwLCB7MHgzZSwweDVlLDB4MWYsMHg4MiwweDAzLDB4N2MsMHgwMCwweGNmLDB4MDAsMHgzMiwweGMwLDB4NGQsMHg4MCwweDA3LDB4MjUsMHgwMCB9LAotICAxNiwgMHg5NGUwLCAwLCB7MHhjOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweDAwLDB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NGYwLCAwLCB7MHhhMSwweDExLDB4ZmMsMHgwMCwweGY4LDB4MTMsMHgxZSwweDAwLDB4MGIsMHhmMCwweDAxLDB4ZjAsMHhkMCwweGY5LDB4MTksMHgxZiB9LAotICAxNiwgMHg5NTAwLCAwLCB7MHgwOCwweDRmLDB4YzAsMHgxMywweGExLDB4MDAsMHhmOCwweDYyLDB4M2YsMHhjMCwweDBiLDB4YzQsMHgwNywweGVkLDB4MDAsMHhmZiB9LAotICAxNiwgMHg5NTEwLCAwLCB7MHgwMCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MjMsMHhmMCwweGEwLDB4ZmMsMHgwMCwweDMzLDB4MDAsMHgwZiwweGQwLDB4MDMsMHhlOCB9LAotICAxNiwgMHg5NTIwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4MDAsMHhmZiwweDBjLDB4M2YsMHgyMCB9LAotICAxNiwgMHg5NTMwLCAwLCB7MHgwYywweGM5LDB4MDMsMHgzMiwweDAwLDB4Y2YsMHgzOCwweDNmLDB4ZDAsMHgwZiwweDQ4LDB4MDMsMHhmYywweGEwLDB4Y2UsMHgyMiB9LAotICAxNiwgMHg5NTQwLCAwLCB7MHgzMywweDAwLDB4MGYsMHhjMSwweDAzLDB4M2MsMHgwMCwweGZmLDB4MDAsMHgzZCwweGM0LDB4NGMsMHhjMCwweDIzLDB4OGMsMHhlNCB9LAotICAxNiwgMHg5NTUwLCAwLCB7MHhmZiwweDEwLDB4MzcsMHgyMCwweDA4LDB4ZjEsMHgwMywweGYwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NTYwLCAwLCB7MHg4MCwweDEwLDB4ZmUsMHgwMCwweGJmLDB4ODAsMHgyZSwweDc0LDB4MDUsMHgyMiwweDAyLDB4YTIsMHgxMCwweGRmLDB4NjEsMHgyZiB9LAotICAxNiwgMHg5NTcwLCAwLCB7MHhkMCwweDhiLDB4OTAsMHgwMiwweDNkLDB4YTQsMHhhYSwweDkwLDB4MjIsMHhmNCwweDBiLDB4MDcsMHgxMiwweDFkLDB4MjAsMHhiYiB9LAotICAxNiwgMHg5NTgwLCAwLCB7MHhjMCwweDJmLDB4ZDgsMHg4OCwweDk3LDB4ODIsMHhmZCwweDgwLDB4ZWYsMHg3MiwweDIyLDB4MDgsMHgyOCwweGY2LDB4MjMsMHhlMCB9LAotICAxNiwgMHg5NTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NDAsMHhiMywweDAwLDB4MmMsMHgwMCB9LAotICAxNiwgMHg5NWEwLCAwLCB7MHgwOCwweDgyLDB4MDIsMHgyMiwweDAwLDB4ODMsMHgwMSwweDA4LDB4Y2MsMHg4YiwweDIwLDB4ODIsMHhjYywweDAwLDB4OTAsMHgwMCB9LAotICAxNiwgMHg5NWIwLCAwLCB7MHgyMCwweDAwLDB4NGIsMHgxMiwweDAyLDB4MGQsMHg4MCwweGIzLDB4NDAsMHgyYywweGQ4LDB4MDgsMHgyMCwweDQyLDB4OGMsMHg4MCB9LAotICAxNiwgMHg5NWMwLCAwLCB7MHhiMywweDIwLDB4MjYsMHgwMiwweDE4LDB4MzMsMHgyNiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NWQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwOSwweGJiLDB4MDAsMHgyZSwweDYwLDB4MDgsMHg4MCwweDAyLDB4YTIsMHgwMCwweDliLDB4MDAsMHgyZSB9LAotICAxNiwgMHg5NWUwLCAwLCB7MHhjMCwweDBiLDB4YWMsMHgwMiwweDJjLDB4MDAsMHhiYSwweDA2LDB4MjIsMHhjMiwweDBiLDB4OTQsMHgwMiwweGFjLDB4MTAsMHhiYiB9LAotICAxNiwgMHg5NWYwLCAwLCB7MHgwMCwweDJlLDB4YzEsMHgwOCwweGE4LDB4MDIsMHhlYywweDAwLDB4YWIsMHgwMCwweDIyLDB4MDAsMHgwOCwweGIwLDB4MDYsMHhmMCB9LAotICAxNiwgMHg5NjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgxNSwweGVjLDB4MDAsMHhmYiwweDA0LDB4M2UsMHg2MCB9LAotICAxNiwgMHg5NjEwLCAwLCB7MHgyOCwweDgyLDB4MTMsMHgwZSwweDA4LDB4Y2IsMHgwMCwweDNhLDB4YzAsMHgwZiwweDhjLDB4MDMsMHhlYywweDExLDB4ZGIsMHgyMCB9LAotICAxNiwgMHg5NjIwLCAwLCB7MHhiMiwweDkwLDB4NGIsMHhhOCwweDBiLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyYywweGMwLDB4MGMsMHg4OCwweDEzLDB4YWMsMHgwMCB9LAotICAxNiwgMHg5NjMwLCAwLCB7MHhmMywweDAwLDB4MzYsMHgwNiwweDQ4LDB4YjAsMHgxMiwweGM0LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NjQwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGZiLDB4MDgsMHgzZCwweDQwLDB4OGYsMHhlYSwweDAxLDB4ZjQsMHgwMCwweGZmLDB4MDEsMHgyZiB9LAotICAxNiwgMHg5NjUwLCAwLCB7MHhjMCwweDBmLDB4ZDAsMHgyMiwweGZjLDB4MDQsMHhhZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4ZTksMHgwMywweDdjLDB4MDAsMHhmZiB9LAotICAxNiwgMHg5NjYwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweDkwLDB4NDMsMHhmYywweDIwLDB4ZWYsMHgwMiwweDNmLDB4MDAsMHg4ZiwweGYwLDB4MDMsMHhiOCB9LAotICAxNiwgMHg5NjcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgxMCwweGFjLDB4MDgsMHhlYiwweDAwLDB4MTIsMHg0MCB9LAotICAxNiwgMHg5NjgwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyOCwweDIwLDB4YWIsMHgwMCwweDNhLDB4YzAsMHg4ZiwweDg1LDB4ODMsMHhhYywweDEwLDB4ZjMsMHg1MCB9LAotICAxNiwgMHg5NjkwLCAwLCB7MHgzMiwweDkwLDB4NGMsMHgzNCwweDEzLDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGMsMHg5OCwweDAzLDB4MmMsMHg0MCB9LAotICAxNiwgMHg5NmEwLCAwLCB7MHhlYiwweDgwLDB4MzIsMHgxMiwweDBkLDB4YjAsMHgwYiwweDUwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NmIwLCAwLCB7MHg4OCwweDAxLDB4M2MsMHgxMCwweDBmLDB4MDUsMHhhMiwweDUwLDB4MGMsMHgxMCwweDAyLDB4MjIsMHgxMCwweDhmLDB4MDAsMHgyMyB9LAotICAxNiwgMHg5NmMwLCAwLCB7MHhjMCwweDBiLDB4ODgsMHgxMiwweDNjLDB4MDAsMHg5YiwweDgyLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDNjLDB4MDAsMHg4ZiB9LAotICAxNiwgMHg5NmQwLCAwLCB7MHhhMCwweDJmLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgzYywweDA4LDB4OGYsMHgwMiwweDIwLDB4MDAsMHgwOCwweGYwLDB4MDMsMHgyNiB9LAotICAxNiwgMHg5NmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRkLDB4MjAsMHg5MywweDAwLDB4MjAsMHhiMiB9LAotICAxNiwgMHg5NmYwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHgwMSwweDAwLDB4YTMsMHgwMCwweDY4LDB4YzAsMHgwYiwweDg0LDB4MDIsMHhhYywweDAwLDB4YjMsMHg4MCB9LAotICAxNiwgMHg5NzAwLCAwLCB7MHgyMCwweDQwLDB4MGEsMHgzMCwweDAyLDB4NGMsMHgwMCwweGEzLDB4MDQsMHgyYywweGMwLDB4MDgsMHgwMCwweDAyLDB4MGQsMHgwMCB9LAotICAxNiwgMHg5NzEwLCAwLCB7MHhhMywweDAwLDB4MjAsMHgyNCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NzIwLCAwLCB7MHg3MCwweDAxLDB4MWMsMHgyMCwweDk3LDB4ODAsMHgyMywweDYwLDB4MDgsMHg3OCwweDEyLDB4M2EsMHgwMCwweDgzLDB4OTEsMHgyOSB9LAotICAxNiwgMHg5NzMwLCAwLCB7MHhlNCwweDBiLDB4NTksMHgwMiwweDFlLDB4MDAsMHg5NywweDkwLDB4MjAsMHhmYywweDBhLDB4NzgsMHgwMiwweDFlLDB4MDAsMHg4NyB9LAotICAxNiwgMHg5NzQwLCAwLCB7MHg5MCwweDJkLDB4ZTAsMHgxOSwweDU5LDB4MDIsMHgxZSwweDgwLDB4ODMsMHg4MCwweDYxLDB4YTAsMHgwOCwweDc4LDB4MDIsMHgxOCB9LAotICAxNiwgMHg5NzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4NDAsMHhkMywweDMyLDB4MzAsMHgwNiB9LAotICAxNiwgMHg5NzYwLCAwLCB7MHgwZiwweDMwLDB4MDMsMHgwNCwweDY0LDB4ZTMsMHgwMSwweDM4LDB4YzQsMHgxZiwweDMwLDB4MDcsMHg4YywweDE4LDB4ZjEsMHgwMCB9LAotICAxNiwgMHg5NzcwLCAwLCB7MHgzMCwweDRjLDB4MGUsMHgzMCwweDAzLDB4NGMsMHgwMCwweGUzLDB4MDAsMHgyYywweGMwLDB4MGMsMHgyMCwweDAzLDB4MGUsMHgwMCB9LAotICAxNiwgMHg5NzgwLCAwLCB7MHhlMywweDAwLDB4MzIsMHgwOCwweDBjLDB4YjEsMHgwMywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NzkwLCAwLCB7MHg0MCwweDFkLDB4OWMsMHg4MCwweGVmLDB4MTAsMHgzZCwweDQ0LDB4NGYsMHhmMSwweDA3LDB4Y2MsMHgwMCwweGZmLDB4MDgsMHgzNiB9LAotICAxNiwgMHg5N2EwLCAwLCB7MHhjNiwweGNmLDB4YjAsMHgwMywweGZjLDB4MDAsMHg5NywweDAwLDB4YmUsMHhjYywweDBkLDB4YjEsMHgwMywweGZkLDB4MDQsMHhmZiB9LAotICAxNiwgMHg5N2IwLCAwLCB7MHgwYywweDNmLDB4ZDIsMHg5ZSwweGUwLDB4NGIsMHhmZCwweDIwLDB4ZmYsMHgwMiwweDNmLDB4ODAsMHgwZSwweGYwLDB4MTMsMHhkMCB9LAotICAxNiwgMHg5N2MwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGVjLDB4YzAsMHhjYiwweDI4LDB4M2UsMHhjMCB9LAotICAxNiwgMHg5N2QwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMSwweDMyLDB4ZTksMHgwYywweDI4LDB4MDMsMHgyYywweDAwLDB4ZmIsMHgwMCB9LAotICAxNiwgMHg5N2UwLCAwLCB7MHgzMiwweGMwLDB4MGMsMHhiNCwweDgzLDB4MmMsMHgwMSwweGVmLDB4MDAsMHhiMiwweGM4LDB4MGMsMHgyMCwweDAzLDB4NmQsMHgwMCB9LAotICAxNiwgMHg5N2YwLCAwLCB7MHhjYiwweDEwLDB4M2UsMHgwMCwweDBmLDB4YjIsMHgwMywweGVhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ODAwLCAwLCB7MHhjOCwweDkxLDB4OWMsMHhjNCwweDg3LDB4NjAsMHgyZCwweGMwLDB4MGIsMHg2MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MTIsMHgyMCB9LAotICAxNiwgMHg5ODEwLCAwLCB7MHhjYywweDBhLDB4NzAsMHgwMiwweDFjLDB4YzAsMHhiMywweDAwLDB4YTAsMHhjMCwweGM4LDB4NzAsMHgyMiwweDFjLDB4ODAsMHhiNyB9LAotICAxNiwgMHg5ODIwLCAwLCB7MHgyNCwweDIxLDB4YzgsMHg0OCwweDUwLDB4MDIsMHgwYywweDgwLDB4ODcsMHgxMCwweDJkLDB4NDAsMHgwYiwweDcyLDB4ODIsMHhmMiB9LAotICAxNiwgMHg5ODMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwMCwweDhlLDB4MDIsMHg4NywweDgwLDB4MmQsMHhlMCB9LAotICAxNiwgMHg5ODQwLCAwLCB7MHgwYiwweDc4LDB4MTIsMHhkZSwweDAwLDB4YjcsMHhhMCwweDIxLDB4ZTAsMHgwOCwweGY4LDB4OGUsMHgxZSwweDQwLDB4YjcsMHg4OCB9LAotICAxNiwgMHg5ODUwLCAwLCB7MHgyMSwweGUwLDB4MDgsMHgzOCwweDAyLDB4MWUsMHg0MCwweGIzLDB4YTEsMHgyMCwweGU4LDB4NDgsMHhmOCwweDgyLDB4NWUsMHgwMiB9LAotICAxNiwgMHg5ODYwLCAwLCB7MHg4NywweDgwLDB4MmQsMHgyMiwweDBiLDB4NzksMHgwMiwweGUwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ODcwLCAwLCB7MHgwOCwweDA0LDB4Y2MsMHgwNCwweDgzLDB4MDIsMHgyYywweGQ0LDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHhhMCB9LAotICAxNiwgMHg5ODgwLCAwLCB7MHhjMCwweDhhLDB4MzgsMHgwNiwweDBjLDB4MDAsMHhiMywweDgwLDB4MjAsMHhlMSwweDQ4LDB4MzksMHgxMiwweDJjLDB4MDAsMHhiMyB9LAotICAxNiwgMHg5ODkwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4ODIsMHg2YywweDAwLDB4ODMsMHgwMCwweDJjLDB4NDgsMHgwYiwweDMwLDB4MDIsMHhjMiB9LAotICAxNiwgMHg5OGEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweGE4LDB4MDAsMHhjYSwweDAwLDB4M2YsMHhhMCB9LAotICAxNiwgMHg5OGIwLCAwLCB7MHgwZiwweGU0LDB4MDMsMHhkOCwweDAwLDB4ZmEsMHgwMCwweDMyLDB4ODAsMHgwYywweGU4LDB4MDMsMHgyOCwweDAwLDB4ZmEsMHg0MCB9LAotICAxNiwgMHg5OGMwLCAwLCB7MHgzMiwweGE4LDB4MmMsMHhhMCwweDA5LDB4MjgsMHgwOCwweGYyLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhlNCwweDAzLDB4NjgsMHgwMCB9LAotICAxNiwgMHg5OGQwLCAwLCB7MHhjYSwweDAwLDB4M2YsMHg4MCwweDBmLDB4YTAsMHgwMywweGZiLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OGUwLCAwLCB7MHg0OCwweDAwLDB4YzAsMHgwMCwweGY4LDB4MDEsMHgzZSwweDEyLDB4MGIsMHg4MCwweDAzLDB4ZTAsMHg0MCwweGY4LDB4MDAsMHgzZSB9LAotICAxNiwgMHg5OGYwLCAwLCB7MHgwMCwweDRmLDB4ODQsMHgwMywweGUwLDB4MDQsMHhmMCwweDA4LDB4M2UsMHgwMCwweDRmLDB4MDAsMHgwMywweGUwLDB4MDAsMHhmOCB9LAotICAxNiwgMHg5OTAwLCAwLCB7MHg0MSwweDNlLDB4MDAsMHgyZiwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg5OTEwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweGU2LDB4MDAsMHhjOSwweDEyLDB4M2UsMHg1MCB9LAotICAxNiwgMHg5OTIwLCAwLCB7MHg4ZiwweDkwLDB4ODMsMHhlNCwweDIwLDB4YzEsMHgwMCwweDNhLDB4NDEsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9LAotICAxNiwgMHg5OTMwLCAwLCB7MHgzMCwweDY4LDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGQ5LDB4MDAsMHgzYSwweDQwLDB4MGUsMHg5OCwweDAzLDB4MjQsMHgwMCB9LAotICAxNiwgMHg5OTQwLCAwLCB7MHhjOSwweDkwLDB4M2UsMHg2OSwweDBjLDB4MTAsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OTUwLCAwLCB7MHg4MCwweDA0LDB4NjcsMHg0YSwweDg5LDB4ODAsMHgyZSwweDUwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHg4MCwweGE5LDB4MDAsMHgyMiB9LAotICAxNiwgMHg5OTYwLCAwLCB7MHg0MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAxLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MTAsMHg4OSB9LAotICAxNiwgMHg5OTcwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHgwOCwweDkzLDB4MDIsMHgyNCwweDIyLDB4ODksMHg0MiwweDJjLDB4NjAsMHg0OCwweDkwLDB4MDIsMHgyMCB9LAotICAxNiwgMHg5OTgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweDI0LDB4MDAsMHg5OSwweDAwLDB4MmUsMHg0MCB9LAotICAxNiwgMHg5OTkwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCB9LAotICAxNiwgMHg5OWEwLCAwLCB7MHgyMywweDQwLDB4MDgsMHhkMCwweDAyLDB4MjQsMHgwMCwweDk5LDB4MDAsMHgyYSwweDQwLDB4MGEsMHg5MCwweDA2LDB4MjQsMHg0MCB9LAotICAxNiwgMHg5OWIwLCAwLCB7MHg4OSwweDQxLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OWMwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHg4MCwweDkxLDB4MjAsMHgyYywweDQ4LDB4MGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweGExLDB4MjAsMHgyMCB9LAotICAxNiwgMHg5OWQwLCAwLCB7MHg0OCwweDBiLDB4MTAsMHgwMiwweGM0LDB4ODAsMHhiMSwweDIwLDB4YTEsMHg0OSwweDA4LDB4NTIsMHg0YSwweDA0LDB4ODAsMHg4MSB9LAotICAxNiwgMHg5OWUwLCAwLCB7MHgwMCwweDIwLDB4NDgsMHg0OCwweDEyLDB4MGEsMHgwNCwweDgwLDB4ODEsMHgyMCwweDJjLDB4NDAsMHgyOCwweDEyLDB4MDIsMHgwMiB9LAotICAxNiwgMHg5OWYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDgsMHhkOCwweDA0LDB4M2UsMHg4MCB9LAotICAxNiwgMHg5YTAwLCAwLCB7MHgwZiwweDg1LDB4MDMsMHhlMCwweDAwLDB4YzAsMHg1MCwweDNhLDB4MTQsMHgwZiwweGE1LDB4MDMsMHhlMSwweDQwLDB4ZjgsMHgwMiB9LAotICAxNiwgMHg5YTEwLCAwLCB7MHgzMiwweDgwLDB4MmMsMHhjNSwweDAzLDB4MjEsMHg0MCwweGRhLDB4MDAsMHgzYSwweDE0LDB4MGUsMHg4NSwweDQzLDB4MjEsMHg0MCB9LAotICAxNiwgMHg5YTIwLCAwLCB7MHhjOCwweDUyLDB4M2UsMHgxNCwweDBjLDB4ODUsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YTMwLCAwLCB7MHg4OCwweDFkLDB4ZTQsMHg0NCwweGU5LDB4MTAsMHgzZiwweDQ0LDB4NGYsMHhkMCwweDAyLDB4ZmMsMHgwMCwweGY5LDB4MTIsMHgzZSB9LAotICAxNiwgMHg5YTQwLCAwLCB7MHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmZCwweDEwLDB4M2UsMHg0NCwweDRmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhlOSB9LAotICAxNiwgMHg5YTUwLCAwLCB7MHg0MCwweDNlLDB4NDQsMHgwZiwweGQxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMiwweDNmLDB4NDAsMHgwZiwweDkxLDB4MDMsMHhlNiB9LAotICAxNiwgMHg5YTYwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGY2LDB4YTAsMHhmZCwweDgwLDB4YjMsMHg0MCB9LAotICAxNiwgMHg5YTcwLCAwLCB7MHgwYywweDEwLDB4MDMsMHgxNCwweDAwLDB4ZmQsMHhhMCwweDMyLDB4NDAsMHgwZiwweGQxLDB4MDMsMHhlNCwweDAwLDB4ZjUsMHg4NiB9LAotICAxNiwgMHg5YTgwLCAwLCB7MHgzMywweDYwLDB4MmMsMHg5YSwweDgzLDB4MjQsMHgwNCwweGZkLDB4YTgsMHgyMiwweDQwLDB4MGQsMHg1MCwweDQzLDB4ZjQsMHgwMCB9LAotICAxNiwgMHg5YTkwLCAwLCB7MHhmZCwweDAwLDB4MzMsMHg0MCwweDBmLDB4OTAsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YWEwLCAwLCB7MHg3OCwweDEwLDB4ZTEsMHgwMCwweGI4LDB4MDAsMHgyMiwweDAwLDB4MjgsMHg4MCwweDAyLDB4MjAsMHgwMCwweGI4LDB4MDAsMHhhMiB9LAotICAxNiwgMHg5YWIwLCAwLCB7MHgwMCwweDBiLDB4OGEsMHgxMiwweGUwLDB4MDAsMHhiOCwweDA0LDB4MjIsMHgxNCwweDA4LDB4ODQsMHgwMiwweDIwLDB4MDAsMHhiOCB9LAotICAxNiwgMHg5YWMwLCAwLCB7MHg0MCwweDIwLDB4MDAsMHg4OCwweDgwLDB4MDIsMHhlMCwweDAwLDB4YjgsMHgwMCwweGEyLDB4MDAsMHgwYiwweDgwLDB4MDIsMHgwZSB9LAotICAxNiwgMHg5YWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDQyLDB4MjAsMHg0MCB9LAotICAxNiwgMHg5YWUwLCAwLCB7MHgwOCwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjEsMHg0MCwweDIwLDB4NDAsMHgwYiwweDEwLDB4MDYsMHhjNCwweDAwLDB4YjEsMHg0MCB9LAotICAxNiwgMHg5YWYwLCAwLCB7MHgyNCwweDQwLDB4MDgsMHgxMCwweDAyLDB4NDQsMHgwNCwweGIxLDB4MDAsMHg2MCwweDQwLDB4MDksMHgxMCwweDAyLDB4YzQsMHgwMCB9LAotICAxNiwgMHg5YjAwLCAwLCB7MHhiMSwweDAwLDB4MjAsMHg0MCwweDBiLDB4MTAsMHgwMiwweDEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YjEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGI5LDB4MDIsMHgyMiwweDYwLDB4MDgsMHg5NCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDEsMHgyMiB9LAotICAxNiwgMHg5YjIwLCAwLCB7MHg0MCwweDBiLDB4OTAsMHgwNiwweGU0LDB4MDAsMHhiOSwweDIwLDB4MjYsMHg0MCwweDA4LDB4OTQsMHgwMiwweDY0LDB4MDgsMHhiOSB9LAotICAxNiwgMHg5YjMwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHgwOCwweDkyLDB4MDIsMHhlYywweDA4LDB4YjksMHgwNCwweDIyLDB4NDEsMHgwYiwweDEwLDB4MDIsMHgwNiB9LAotICAxNiwgMHg5YjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MTAsMHhmMSwweDAwLDB4MzIsMHg2MCB9LAotICAxNiwgMHg5YjUwLCAwLCB7MHgwYywweDk0LDB4MGIsMHgyNSwweDAwLDB4ZjksMHgwMCwweDMyLDB4NDAsMHg4ZiwweDk0LDB4ZDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9LAotICAxNiwgMHg5YjYwLCAwLCB7MHgzNiwweDQwLDB4NGMsMHg5MCwweDBiLDB4NjQsMHgwMCwweGYxLDB4MDAsMHgzMiwweDQwLDB4MGQsMHg5MiwweDEyLDB4ZTQsMHgwMCB9LAotICAxNiwgMHg5YjcwLCAwLCB7MHhmOSwweDAwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHgwYiwweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YjgwLCAwLCB7MHg2OCwweDQxLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzYywweDQwLDB4OGYsMHg5MiwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSB9LAotICAxNiwgMHg5YjkwLCAwLCB7MHg0MCwweDBmLDB4OWMsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4YmEsMHg0MCwweDJmLDB4OTAsMHgyMywweGE0LDB4MDAsMHhmOSB9LAotICAxNiwgMHg5YmEwLCAwLCB7MHgwOCwweGJlLDB4NDAsMHhjZiwweDkwLDB4MDMsMHhlNCwweDEwLDB4ZjEsMHgwMSwweDNlLDB4NDEsMHgwZiwweDkwLDB4MDMsMHhkYSB9LAotICAxNiwgMHg5YmIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4YzgsMHhmOCwweDAwLDB4M2UsMHgwMyB9LAotICAxNiwgMHg5YmMwLCAwLCB7MHgwYywweDg0LDB4MDMsMHhhMSwweDEwLDB4ZTgsMHgwMCwweDMyLDB4MDAsMHg4YywweDg1LDB4ODMsMHhlMCwweDAwLDB4YzAsMHgwMCB9LAotICAxNiwgMHg5YmQwLCAwLCB7MHgzOCwweDBjLDB4MmMsMHgwMCwweDAzLDB4NjAsMHgwMCwweGM4LDB4MDAsMHgzYywweDAwLDB4MGQsMHg4MCwweDAyLDB4MjAsMHgxMCB9LAotICAxNiwgMHg5YmUwLCAwLCB7MHhjOCwweDIwLDB4YjIsMHgwMiwweDBmLDB4ODAsMHgwMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YmYwLCAwLCB7MHgyOCwweDA1LDB4MzksMHgxMCwweGJlLDB4MDQsMHg2ZiwweGEwLDB4MDgsMHhhMCwweDAyLDB4M2EsMHgwMCwweDgyLDB4MDAsMHhhMiB9LAotICAxNiwgMHg5YzAwLCAwLCB7MHg4MCwweDhkLDB4ZWMsMHgwMywweGE4LDB4MDAsMHg4YSwweDAwLDB4MjMsMHg4MCwweDA4LDB4YTAsMHgyMiwweDI4LDB4MDAsMHg4ZSB9LAotICAxNiwgMHg5YzEwLCAwLCB7MHhjYywweDJmLDB4ODAsMHgwOCwweGU4LDB4YzIsMHhiOCwweDAwLDB4OGUsMHg2MCwweDIzLDB4OTAsMHgwYiwweGEwLDB4MDIsMHhjYSB9LAotICAxNiwgMHg5YzIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRlLDB4MDgsMHhiMCwweDcyLDB4MmMsMHhkMCB9LAotICAxNiwgMHg5YzMwLCAwLCB7MHgyOCwweGIwLDB4MDYsMHg4YywweDAxLDB4YTEsMHgwMiwweDIwLDB4YzAsMHgwOCwweDM4LDB4MDIsMHhjYywweDAwLDB4ODMsMHgwMCB9LAotICAxNiwgMHg5YzQwLCAwLCB7MHgyMCwweGMwLDB4MjksMHgzMCwweDAyLDB4NGMsMHgwMCwweDgxLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzMiwweDAyLDB4MGMsMHg0MCB9LAotICAxNiwgMHg5YzUwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhmNCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YzYwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHgwMCwweGI0LDB4MDAsMHgyZCwweGQwLDB4NDgsMHhmMiwweDAyLDB4MWUsMHgyMSwweDg1LDB4MjAsMHgyMCB9LAotICAxNiwgMHg5YzcwLCAwLCB7MHhlOCwweDA5LDB4NzIsMHgwMiwweDhlLDB4ODAsMHg4ZiwweDAxLDB4MjAsMHhjMCwweDA5LDB4NzIsMHgwMiwweDBlLDB4ODAsMHg4NyB9LAotICAxNiwgMHg5YzgwLCAwLCB7MHgwMCwweDJkLDB4Y2MsMHgxOCwweDU4LDB4MDIsMHg4ZSwweDAwLDB4ODUsMHgwMCwweDIxLDB4YzAsMHgwYiwweDcyLDB4MDIsMHhlOCB9LAotICAxNiwgMHg5YzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhiNCwweDgwLDB4MmQsMHhlMCB9LAotICAxNiwgMHg5Y2EwLCAwLCB7MHgwYywweDc4LDB4ODMsMHg5YSwweDAwLDB4ZWQsMHhkMCwweDMxLDB4ZjQsMHgwYywweDZhLDB4MDMsMHhkZSwweDgyLDB4YzcsMHg4MCB9LAotICAxNiwgMHg5Y2IwLCAwLCB7MHgzOSwweGUwLDB4MGQsMHhmOCwweDgzLDB4NWUsMHhjMiwweGM1LDB4ODAsMHgzZCwweGU4LDB4MGMsMHg2OCwweDAzLDB4MTIsMHgwMCB9LAotICAxNiwgMHg5Y2MwLCAwLCB7MHhjZiwweDgwLDB4MzEsMHhlMCwweDBmLDB4N2UsMHg4MywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5Y2QwLCAwLCB7MHgwOCwweDBkLDB4YWMsMHgwOCwweGY4LDB4MDAsMHgzYywweGMwLDB4MGYsMHhiMywweDAzLDB4ZWMsMHgwMCwweGY5LDB4MDIsMHgzZSB9LAotICAxNiwgMHg5Y2UwLCAwLCB7MHhjOCwweDBmLDB4YjAsMHgwMywweGVkLDB4NDAsMHhmYiwweDAwLDB4YmUsMHg4MCwweDBlLDB4YjMsMHgwMywweGVkLDB4YzAsMHhmYiB9LAotICAxNiwgMHg5Y2YwLCAwLCB7MHgwMCwweDNlLDB4ZDIsMHgyZSwweDgwLDB4MDMsMHhlYywweDAyLDB4ZjksMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHg5ZDAwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZlLDB4MDAsMHhmMCwweDkxLDB4MzMsMHhlMCB9LAotICAxNiwgMHg5ZDEwLCAwLCB7MHg4ZiwweGY4LDB4MDMsMHhmZSwweDAwLDB4ZmQsMHg4MCwweDNmLDB4ZTAsMHgwYywweDc4LDB4ODMsMHgzZiwweDAwLDB4Y2YsMHg4MCB9LAotICAxNiwgMHg5ZDIwLCAwLCB7MHgzZiwweGEwLDB4MGMsMHhmOCwweDAzLDB4M2UsMHgwMCwweGNkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhmOCwweDEzLDB4ZmUsMHgxMCB9LAotICAxNiwgMHg5ZDMwLCAwLCB7MHhmZiwweDgwLDB4M2YsMHgyMCwweDBmLDB4ZjksMHg0MywweGQwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZDQwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGI0LDB4YzEsMHgzMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZDQsMHgxMCwweGU1LDB4MjAsMHgyZiB9LAotICAxNiwgMHg5ZDUwLCAwLCB7MHhjOCwweDBmLDB4NDAsMHgwMywweDVjLDB4MDAsMHg4NywweDAwLDB4MmQsMHg4MCwweDA4LDB4NzAsMHgwMiwweDFjLDB4NDAsMHg4NyB9LAotICAxNiwgMHg5ZDYwLCAwLCB7MHgxMCwweDJkLDB4YzAsMHgwYiwweDc2LDB4MDIsMHhkYywweDgwLDB4YjcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhlYSB9LAotICAxNiwgMHg5ZDcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDljLDB4MDAsMHhiNiwweDIyLDB4MjEsMHhkMCB9LAotICAxNiwgMHg5ZDgwLCAwLCB7MHgwYiwweDcwLDB4ODIsMHhkOCwweDQwLDB4YjUsMHgwMiwweDJkLDB4YzAsMHg4OCwweDY1LDB4MDIsMHgwYywweDAwLDB4ODcsMHgxOCB9LAotICAxNiwgMHg5ZDkwLCAwLCB7MHgyYywweDA0LDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMiwweDg1LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDQ2LDB4OTAsMHgxMCB9LAotICAxNiwgMHg5ZGEwLCAwLCB7MHhiNiwweDAwLDB4MmQsMHgwMCwweDBiLDB4NzAsMHgyMiwweGM0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZGIwLCAwLCB7MHg2MCwweDE0LDB4Y2MsMHgwOCwweGIyLDB4MDAsMHhhNCwweGMwLDB4MGIsMHgzMCwweDQyLDB4YzYsMHgxMCwweGExLDB4MDAsMHgyYyB9LAotICAxNiwgMHg5ZGMwLCAwLCB7MHhjMCwweDBhLDB4MDAsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMsMHgwOCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAsMHg4MyB9LAotICAxNiwgMHg5ZGQwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwYiwweDE4LDB4ODIsMHhjNCwweDAwLDB4YjAsMHgwMCwweDJjLDB4NDAsMHgwYiwweDMwLDB4MTIsMHhkOCB9LAotICAxNiwgMHg5ZGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZjgsMHgxNSwweGFjLDB4MDAsMHgzOCwweDAwLDB4MzIsMHg1MCB9LAotICAxNiwgMHg5ZGYwLCAwLCB7MHgwZiwweGYwLDB4MDMsMHhlNiwweDIwLDB4ZmQsMHgwMCwweDNmLDB4YzAsMHgwOCwweGQwLDB4MDIsMHgzYywweDAyLDB4Y2IsMHg4MCB9LAotICAxNiwgMHg5ZTAwLCAwLCB7MHgzYywweDUwLDB4MmMsMHhmMCwweDBhLDB4YmMsMHgwMCwweGM5LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhiZSwweDAzLDB4YWMsMHgwMCB9LAotICAxNiwgMHg5ZTEwLCAwLCB7MHhmYSwweDAyLDB4MmUsMHhmNywweDRmLDB4ZjAsMHgwMywweGVlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZTIwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGYxLDB4MDAsMHgzYSwweGYwLDB4MGYsMHhiMCwweDAzLDB4ZTksMHgwMCwweGY5LDB4MDEsMHgzZSB9LAotICAxNiwgMHg5ZTMwLCAwLCB7MHhjMCwweDBmLDB4OTAsMHgxMywweGVjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHg1NSwweDBmLDB4YjAsMHgwMSwweDZjLDB4MDAsMHhmYiB9LAotICAxNiwgMHg5ZTQwLCAwLCB7MHgwMiwweDNlLDB4YzAsMHgwZiwweDkwLDB4NzMsMHhlMCwweDAwLDB4ZjgsMHg0MSwweDNlLDB4MDAsMHgwZiwweDMwLDB4MDEsMHhlMCB9LAotICAxNiwgMHg5ZTUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweGZjLDB4MDAsMHhmYywweDAwLDB4MzMsMHhjMCB9LAotICAxNiwgMHg5ZTYwLCAwLCB7MHgxZiwweGYwLDB4MTMsMHhmMCwweDA4LDB4ZmQsMHgwMiwweDNmLDB4YzAsMHg4ZCwweGMwLDB4MDMsMHgzYywweDAwLDB4Y2YsMHhhMCB9LAotICAxNiwgMHg5ZTcwLCAwLCB7MHgzZiwweDgwLDB4MGMsMHg3MCwweDAzLDB4M2MsMHgxMCwweGZjLDB4MDAsMHgzNywweGMwLDB4MGYsMHhlMCwweDAzLDB4YjAsMHgwMCB9LAotICAxNiwgMHg5ZTgwLCAwLCB7MHhmZSwweDAwLDB4M2YsMHhjMCwweDBjLDB4ZjAsMHgwMywweDA0LDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZTkwLCAwLCB7MHg4NCwweDA0LDB4NmUsMHgwMCwweGI5LDB4YzIsMHhhMiwweGYwLDB4MGIsMHhiMCwweDQyLDB4ZWIsMHgwMCwweGI5LDB4MDAsMHgyZSB9LAotICAxNiwgMHg5ZWEwLCAwLCB7MHhjMCwweDBmLDB4MTgsMHgwMywweDZjLDB4MDAsMHhkOSwweDgxLDB4MmUsMHhiMCwweDBhLDB4YjAsMHg0MiwweDJjLDB4MDAsMHhiYSB9LAotICAxNiwgMHg5ZWIwLCAwLCB7MHhjNiwweDJlLDB4YzAsMHgwYiwweDhjLDB4MDIsMHhlMywweDAwLDB4YjgsMHhjMCwweDNjLDB4YTAsMHgwZCwweGIwLDB4MDIsMHgyMCB9LAotICAxNiwgMHg5ZWMwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJmLDB4MDAsMHhiOCwweDgwLDB4MjIsMHhlMiB9LAotICAxNiwgMHg5ZWQwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHhlNiwweDIwLDB4YjksMHgwMCwweDJjLDB4YzAsMHgwOCwweGI4LDB4MDIsMHgwYywweDAwLDB4OGIsMHgwMCB9LAotICAxNiwgMHg5ZWUwLCAwLCB7MHgyZSwweDMwLDB4NDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGI5LDB4YzAsMHgyZSwweGMxLDB4MGIsMHg4OCwweDAyLDB4ZWUsMHgxMCB9LAotICAxNiwgMHg5ZWYwLCAwLCB7MHhiOSwweGMwLDB4MmUsMHgyMCwweDE5LDB4YjAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZjAwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIwLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDA2LDB4YzAsMHgwMCwweDkxLDB4MDAsMHgyYyB9LAotICAxNiwgMHg5ZjEwLCAwLCB7MHhjMCwweDQ5LDB4ODAsMHgwMiwweDRjLDB4MDQsMHg5MSwweDAwLDB4MmMsMHgwMCwweDhhLDB4MzAsMHgwYSwweDBjLDB4MDQsMHhiMSB9LAotICAxNiwgMHg5ZjIwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgxYiwweDAwLDB4MTIsMHg0OSwweDEwLDB4YjEsMHgwMCwweDJlLDB4MjAsMHgwOSwweDMwLDB4MDIsMHgwMiB9LAotICAxNiwgMHg5ZjMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhiOCwweDIwLDB4MjIsMHhjMCB9LAotICAxNiwgMHg5ZjQwLCAwLCB7MHg4YiwweGYwLDB4MDMsMHhlMCwweDA4LDB4ZmQsMHgwMCwweDNmLDB4YzAsMHgwYywweGEwLDB4MDMsMHgzYywweDAwLDB4Y2IsMHgwMCB9LAotICAxNiwgMHg5ZjUwLCAwLCB7MHgzZSwweDAwLDB4NGMsMHhmMCwweDBhLDB4M2MsMHgwMCwweGI5LDB4MDAsMHgzNywweGMxLDB4MGYsMHhhMCwweDAzLDB4ZTAsMHgwMCB9LAotICAxNiwgMHg5ZjYwLCAwLCB7MHhmYSwweDAwLDB4M2UsMHgwMCwweDBkLDB4ZjAsMHgwYiwweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZjcwLCAwLCB7MHhhMCwweDFkLDB4ZjAsMHgwMSwweGZjLDB4NDAsMHgzZiwweDgwLDB4NGYsMHhmMCwweDAyLDB4ZjAsMHgwMCwweGZkLDB4MDAsMHgzZiB9LAotICAxNiwgMHg5ZjgwLCAwLCB7MHhjMSwweDBmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHgwMCwweDRmLDB4ZjAsMHg2MywweGZjLDB4MDAsMHhmZCB9LAotICAxNiwgMHg5ZjkwLCAwLCB7MHgwNCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDgwLDB4ZmMsMHgwMCwweDdiLDB4MDAsMHgwZiwweGYwLDB4NDMsMHhlOCB9LAotICAxNiwgMHg5ZmEwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGY4LDB4MDAsMHhjOCwweDEwLDB4MzMsMHgwNCB9LAotICAxNiwgMHg5ZmIwLCAwLCB7MHgwYywweDQwLDB4MDIsMHgzNCwweDAwLDB4YzgsMHg4NSwweDFmLDB4YzAsMHgyZCwweGQ5LDB4MDMsMHhmYywweGMwLDB4ZGIsMHgyOCB9LAotICAxNiwgMHg5ZmMwLCAwLCB7MHgzNywweDY0LDB4MGYsMHhkYiwweDAzLDB4M2UsMHgwMCwweGZmLDB4MjUsMHgzZiwweGM4LDB4MGUsMHhmMiwweDAzLDB4ZmUsMHgyMCB9LAotICAxNiwgMHg5ZmQwLCAwLCB7MHhmZiwweGE0LDB4MzcsMHhjNCwweDBjLDB4YzgsMHgwMywweDMwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZmUwLCAwLCB7MHg4MCwweDEwLDB4ZTgsMHgwMCwweDg4LDB4MjAsMHgyMiwweDAwLDB4MDgsMHg4OCwweDEyLDB4MjYsMHgwNCwweDg5LDB4ODIsMHgyZSB9LAotICAxNiwgMHg5ZmYwLCAwLCB7MHhmNCwweDQ4LDB4YjgsMHgwMiwweGZjLDB4YzQsMHg5OCwweGMyLDB4MjIsMHg3YywweDRiLDB4OWQsMHg0MiwweDI2LDB4MDgsMHhiZiB9LAotICAxNiwgMHhhMDAwLCAwLCB7MHgxOCwweDc3LDB4ZTQsMHgwOCwweGYxLDB4ODIsMHhlZiwweDAwLDB4YmIsMHhkMCwweDIyLDB4ZDgsMHgwOCwweDkwLDB4ODMsMHg2MCB9LAotICAxNiwgMHhhMDEwLCAwLCB7MHgwMiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHg0NSwweGM4LDB4MDQsMHhhMCwweDAwLDB4MjQsMHgwMCB9LAotICAxNiwgMHhhMDIwLCAwLCB7MHgwYSwweDAwLDB4MDIsMHgwYywweDAwLDB4ODIsMHgwNCwweDJjLDB4ZTAsMHgwOCwweDEwLDB4MDIsMHhjYywweDgwLDB4ODMsMHgwMCB9LAotICAxNiwgMHhhMDMwLCAwLCB7MHgyNCwweDAwLDB4MGIsMHgxMCwweDA2LDB4YzgsMHgwMSwweGIzLDB4MjAsMHgyYywweGMwLDB4MjksMHgzMiwweDAyLDB4YzgsMHgwOCB9LAotICAxNiwgMHhhMDQwLCAwLCB7MHhiMSwweDAwLDB4MjQsMHhkMCwweDA4LDB4ODIsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMDUwLCAwLCB7MHhjMCwweDE1LDB4YTgsMHgwMCwweGE4LDB4MGMsMHgyNiwweDAwLDB4MGEsMHg4MCwweDAyLDB4MmMsMHgxNCwweDhhLDB4MDIsMHg2ZSB9LAotICAxNiwgMHhhMDYwLCAwLCB7MHhlMCwweDA4LDB4YjAsMHgwMiwweDRjLDB4MDgsMHhhOCwweDAwLDB4MjYsMHgyMCwweDBiLDB4OWMsMHgwMiwweGU0LDB4MDAsMHhiYiB9LAotICAxNiwgMHhhMDcwLCAwLCB7MHgwNCwweDIyLDB4YzAsMHgxOSwweGIwLDB4MDIsMHhlOCwweDAxLDB4YmIsMHgxMSwweDAyLDB4YzAsMHg4OCwweDkwLDB4MDIsMHhmMCB9LAotICAxNiwgMHhhMDgwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweGVjLDB4MDIsMHhlYSwweDQwLDB4YjYsMHg2MCB9LAotICAxNiwgMHhhMDkwLCAwLCB7MHgyZSwweDk4LDB4MGIsMHgyMCwweDAyLDB4YzgsMHgwMiwweDNlLDB4YzAsMHgwZCwweDk4LDB4MDMsMHhlYywweDAyLDB4ZGIsMHg4OCB9LAotICAxNiwgMHhhMGEwLCAwLCB7MHhiNiwweDIxLDB4MGYsMHg4OCwweDAzLDB4YWMsMHgwOCwweGZiLDB4MDAsMHgyYywweGMwLDB4MGUsMHhiMCwweDQzLDB4ZTUsMHg4MCB9LAotICAxNiwgMHhhMGIwLCAwLCB7MHhmMCwweDYwLDB4MzYsMHhjMCwweDBjLDB4MDEsMHg0MywweDQ4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMGMwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGQ2LDB4MDEsMHgzYiwweDY0LDB4ODUsMHhkOSwweDAzLDB4ZjAsMHgwYywweGZmLDB4MDAsMHgzZSB9LAotICAxNiwgMHhhMGQwLCAwLCB7MHhjMSwweDBmLDB4ZmMsMHgyMSwweGVjLDB4MDAsMHhkNywweDkwLDB4M2IsMHg0MCwweDBmLDB4NTAsMHgwMywweDNjLDB4MDAsMHhmZiB9LAotICAxNiwgMHhhMGUwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHg4ZSwweGYwLDB4MDMsMHhmNCwweDQwLDB4ZmQsMHg4OCwweDNmLDB4YzAsMHgyZiwweGQwLDB4MDIsMHg3OCB9LAotICAxNiwgMHhhMGYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweDhjLDB4MDAsMHhkYSwweDQwLDB4M2MsMHg0MCB9LAotICAxNiwgMHhhMTAwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHg0OCwweDAwLDB4ZjksMHgyMiwweDNjLDB4YzIsMHgwZSwweDkwLDB4ODMsMHhlYywweDAyLDB4ZGIsMHgwNCB9LAotICAxNiwgMHhhMTEwLCAwLCB7MHgzYSwweDA4LDB4MGYsMHg4NCwweDg3LDB4ZTgsMHgwMCwweGNiLDB4MDAsMHgzZSwweGM0LDB4MGUsMHhiMCwweDAzLDB4ZWQsMHgwMCB9LAotICAxNiwgMHhhMTIwLCAwLCB7MHhlOCwweDQyLDB4M2EsMHhjMCwweDBmLDB4ODAsMHgwYiwweDEwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMTMwLCAwLCB7MHg4OCwweDA1LDB4MmMsMHgwOCwweDhhLDB4MDAsMHgyZSwweDQyLDB4OGIsMHg5MCwweDAyLDB4MjgsMHgxOCwweGJiLDB4NDksMHgyMiB9LAotICAxNiwgMHhhMTQwLCAwLCB7MHhkMCwweDM4LDB4YmMsMHg4MiwweGZjLDB4MDAsMHhlOCwweDAyLDB4MjIsMHg2MiwweGNiLDB4OWMsMHgwMCwweGVmLDB4NjAsMHhkZiB9LAotICAxNiwgMHhhMTUwLCAwLCB7MHgwMCwweDJmLDB4YzAsMHgwYiwweGYwLDB4MDIsMHhlYywweDAwLDB4MDksMHg0MCwweDM3LDB4YzAsMHgwYiwweDkwLDB4MDIsMHgzMiB9LAotICAxNiwgMHhhMTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ4LDB4MTAsMHgxMSwweDAwLDB4MmMsMHhhMCB9LAotICAxNiwgMHhhMTcwLCAwLCB7MHgwYiwweDIwLDB4MDIsMHg0NCwweDAwLDB4OTAsMHhjMCwweDY0LDB4MzQsMHgyOCwweDM0LDB4MDIsMHhjYywweDAwLDB4OTMsMHg4NCB9LAotICAxNiwgMHhhMTgwLCAwLCB7MHgyOCwweDQwLDB4MGIsMHgwOCwweDAwLDB4Y2UsMHgwMCwweDkzLDB4MDAsMHgyYywweGMyLDB4MGEsMHgzMCwweDAyLDB4YzAsMHgwMCB9LAotICAxNiwgMHhhMTkwLCAwLCB7MHhiMiwweDQwLDB4MjIsMHhjMCwweDBiLDB4MjAsMHgwMiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMWEwLCAwLCB7MHg3MCwweDAxLDB4MWEsMHg0MCwweDg1LDB4ODAsMHgyZCwweGEwLDB4MGIsMHg2OCwweDA2LDB4MTYsMHg4MCwweGJkLDB4OTAsMHgyNSB9LAotICAxNiwgMHhhMWIwLCAwLCB7MHgyNCwweDE4LDB4N2IsMHg0MiwweGRlLDB4NDAsMHhhMCwweDgwLDB4MjEsMHhlMCwweDBiLDB4NjgsMHgwMiwweGQ2LDB4MDAsMHg5NyB9LAotICAxNiwgMHhhMWMwLCAwLCB7MHg5MCwweDJkLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHhjZSwweDQwLDB4OTIsMHg4MCwweDZkLDB4ZTQsMHgwYiwweDc4LDB4MDIsMHgwOCB9LAotICAxNiwgMHhhMWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDI4LDB4MDAsMHhkMSwweDgwLDB4M2MsMHg4OCB9LAotICAxNiwgMHhhMWUwLCAwLCB7MHgwYiwweDIyLDB4MDMsMHg0ZSwweDgwLDB4ZjIsMHhhMSwweDNjLDB4MjQsMHgyYSwweDM5LDB4MDMsMHhjYywweDQwLDB4ZDMsMHhhYyB9LAotICAxNiwgMHhhMWYwLCAwLCB7MHgzOCwweGM1LDB4MGYsMHgzMCwweDgyLDB4YzgsMHgwMCwweGQzLDB4MDAsMHgzYywweGMwLDB4MGUsMHgzMCwweDEzLDB4YzAsMHgwMCB9LAotICAxNiwgMHhhMjAwLCAwLCB7MHhmMSwweDAwLDB4MzgsMHhjMCwweDBmLDB4YTAsMHgwMywweDFhLDB4MDYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMjEwLCAwLCB7MHg0MCwweDFkLDB4YjgsMHgxMCwweGZkLDB4MzQsMHgzZSwweDgwLDB4MGYsMHhlMCwweDAzLDB4ZWUsMHgwMCwweDcyLDB4MDAsMHgzYSB9LAotICAxNiwgMHhhMjIwLCAwLCB7MHgwMCwweDBmLDB4YjAsMHg2MywweGVjLDB4NDAsMHhmOCwweDIyLDB4M2UsMHhjMCwweDBmLDB4ZjAsMHgwMywweGQ0LDB4NDAsMHhmZiB9LAotICAxNiwgMHhhMjMwLCAwLCB7MHgwMCwweDNmLDB4ZDIsMHgwZiwweGYwLDB4MDMsMHhlYywweDAwLDB4Y2YsMHgwMCwweDM3LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhhMjQwLCAwLCB7MHgwNiwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVlLDB4MDAsMHhlYiwweDAwLDB4MzYsMHhlMCB9LAotICAxNiwgMHhhMjUwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHgyMCwweDAwLDB4ZjAsMHg4MCwweDMzLDB4YzAsMHgwOCwweGI4LDB4MDMsMHgyYywweDgwLDB4Y2IsMHgwMCB9LAotICAxNiwgMHhhMjYwLCAwLCB7MHgzMiwweDgwLDB4MGYsMHhhMCwweDEzLDB4NmUsMHgwOCwweGNiLDB4MjgsMHgzMiwweGUwLDB4MGQsMHhiNCwweDgzLDB4ZTIsMHgwMCB9LAotICAxNiwgMHhhMjcwLCAwLCB7MHhjYSwweDAwLDB4M2UsMHhlMCwweDBjLDB4YTgsMHgwMywweDAyLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMjgwLCAwLCB7MHhjOCwweDExLDB4OGMsMHgwNCwweDgzLDB4MDAsMHgyMSwweGMwLDB4NDgsMHg3MCwweDAyLDB4MTAsMHgwMCwweGI3LDB4MDIsMHgyMSB9LAotICAxNiwgMHhhMjkwLCAwLCB7MHhjMCwweDRhLDB4NzAsMHgwMiwweDBkLDB4NDgsMHhkNCwweDAwLDB4MzUsMHhjMCwweDBlLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhhNyB9LAotICAxNiwgMHhhMmEwLCAwLCB7MHg0MCwweDI5LDB4YzAsMHgwOSwweDcyLDB4MDIsMHhkNCwweDEwLDB4YTYsMHgwMiwweDJmLDB4YzgsMHgwOCwweDcwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhhMmIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MDAsMHhhNywweDgwLDB4MjAsMHhlMCB9LAotICAxNiwgMHhhMmMwLCAwLCB7MHgwYSwweDM4LDB4MDIsMHgxYSwweDAwLDB4YjUsMHg4MCwweDIxLDB4ZTAsMHgwOCwweGY4LDB4MjIsMHg1YywweDgxLDB4ODMsMHg4MCB9LAotICAxNiwgMHhhMmQwLCAwLCB7MHgyMSwweGExLDB4MGIsMHg3OCwweDgyLDB4NWEsMHgxMCwweDgzLDB4YTAsMHgyMCwweGU4LDB4MGEsMHg3YiwweDAyLDB4ZGEsMHgwMCB9LAotICAxNiwgMHhhMmUwLCAwLCB7MHg5NywweGMwLDB4MmQsMHhlNCwweDA4LDB4ZTgsMHgwMiwweDA4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMmYwLCAwLCB7MHgwOCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MTAsMHgyMCwweGMwLDB4MGEsMHgzMCwweDAyLDB4MDgsMHgwOCwweGIzLDB4NzAsMHgyMCB9LAotICAxNiwgMHhhMzAwLCAwLCB7MHhmOCwweDBhLDB4MzAsMHg0MiwweDRjLDB4MDQsMHg5MywweDE0LDB4MjYsMHhjNCwweDBhLDB4MzgsMHgwMiwweGNjLDB4MDAsMHhhMyB9LAotICAxNiwgMHhhMzEwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHhhYSwweDMwLDB4MDIsMHhjZSwweDQwLDB4YjMsMHg4OCwweDJjLDB4YzAsMHgyOCwweDMwLDB4MGEsMHgxMiB9LAotICAxNiwgMHhhMzIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE5LDB4MDAsMHhlYSwweDgwLDB4YjYsMHg5MCB9LAotICAxNiwgMHhhMzMwLCAwLCB7MHgyZiwweDI0LDB4MGIsMHgzOSwweDA0LDB4YmUsMHhjMCwweDMzLDB4OTIsMHgwYywweGEwLDB4MGIsMHg2OCwweDE4LDB4Y2UsMHhjMCB9LAotICAxNiwgMHhhMzQwLCAwLCB7MHgzMywweDgwLDB4MGYsMHhlOSwweDQzLDB4NzgsMHgwMCwweGNhLDB4MDAsMHgzMiwweDgwLDB4MGYsMHhhMCwweDEzLDB4ZjgsMHg0OCB9LAotICAxNiwgMHhhMzUwLCAwLCB7MHhkZSwweDAwLDB4M2UsMHg4MCwweDBjLDB4ZTAsMHgwMiwweDNhLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMzYwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgyNCwweGY4LDB4MDAsMHgzZSwweDEyLDB4MGQsMHg4MCwweDkzLDB4YjAsMHgyOCwweGY4LDB4MDAsMHhiYyB9LAotICAxNiwgMHhhMzcwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHgwMywweGEwLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMiwweDBlLDB4ODAsMHgwMCwweGUwLDB4MDAsMHhmOCB9LAotICAxNiwgMHhhMzgwLCAwLCB7MHgwMSwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhhMzkwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhmOSwweDAwLDB4YjIsMHg3MCB9LAotICAxNiwgMHhhM2EwLCAwLCB7MHgwZiwweDkwLDB4MDEsMHgwNCwweDAwLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDk4LDB4MDMsMHhlNCwweDA0LDB4ZTksMHgwOCB9LAotICAxNiwgMHhhM2IwLCAwLCB7MHgzYSwweDQ4LDB4MGMsMHg5YSwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDQwLDB4MGIsMHgxMCwweDBiLDB4MjYsMHg4MCB9LAotICAxNiwgMHhhM2MwLCAwLCB7MHhmMSwweDgwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhM2QwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDYxLDB4MGIsMHg5MCwweDAyLDB4MjQsMHgwOCwweDg5LDB4MDAsMHgyZSB9LAotICAxNiwgMHhhM2UwLCAwLCB7MHg0MCwweDBkLDB4OWEsMHgwMiwweGU0LDB4MDgsMHhhOSwweDAwLDB4MjIsMHg3OCwweDBkLDB4OTQsMHgwNiwweGU0LDB4MTAsMHhiOSB9LAotICAxNiwgMHhhM2YwLCAwLCB7MHgwMCwweDIyLDB4NTAsMHgwYiwweDkwLDB4MDIsMHgyNSwweDgwLDB4YjksMHg4MCwweDM2LDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhhNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiNSwweDAwLDB4MjMsMHg0MiB9LAotICAxNiwgMHhhNDEwLCAwLCB7MHgwYiwweGQwLDB4MGUsMHhiNCwweDAwLDB4ODksMHgwNCwweDJlLDB4NjAsMHgwOCwweDkxLDB4MDIsMHhjNCwweDA0LDB4YjksMHgwNCB9LAotICAxNiwgMHhhNDIwLCAwLCB7MHgyYSwweGMwLDB4MDgsMHg5NCwweDAyLDB4ZTQsMHgxMCwweGIxLDB4MDAsMHgyNiwweDQyLDB4MGEsMHg5MCwweDAyLDB4MjQsMHgwMCB9LAotICAxNiwgMHhhNDMwLCAwLCB7MHhiOSwweDIxLDB4NjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNDQwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHgwMCwweGI1LDB4NDAsMHgyMSwweDUwLDB4NGIsMHg1MCwweDA2LDB4OTQsMHgwMiwweDgxLDB4MDAsMHgyYyB9LAotICAxNiwgMHhhNDUwLCAwLCB7MHg2MCwweDI5LDB4MTQsMHgwNiwweGM1LDB4MDAsMHhhMSwweDIyLDB4MjAsMHg1MSwweDg5LDB4MTQsMHgwMiwweGM0LDB4MDAsMHhiMSB9LAotICAxNiwgMHhhNDYwLCAwLCB7MHgyMCwweDIwLDB4NDgsMHgwYiwweDE0LDB4MDIsMHgwNCwweDAxLDB4YjEsMHgwMCwweDA0LDB4NTAsMHgwYiwweDEwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhhNDcwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDgsMHhiOCwweDAwLDB4MzIsMHgwMCB9LAotICAxNiwgMHhhNDgwLCAwLCB7MHg4ZiwweDgwLDB4MDMsMHhiMCwweDAwLDB4ODgsMHgwMCwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDAwLDB4ZTgsMHgwNCB9LAotICAxNiwgMHhhNDkwLCAwLCB7MHgzYSwweDAwLDB4MGMsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGY4LDB4NTAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjAsMHgwNCB9LAotICAxNiwgMHhhNGEwLCAwLCB7MHhmOCwweDAxLDB4MTIsMHgwMCwweDRmLDB4ODAsMHgwNywweGVlLDB4MDcsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNGIwLCAwLCB7MHg5OCwweDFkLDB4ZTUsMHgxMCwweGY5LDB4NDAsMHgzZSwweDUwLDB4MGYsMHg5NCwweDAyLDB4NjUsMHgwMSwweGZkLDB4MDEsMHgzZCB9LAotICAxNiwgMHhhNGMwLCAwLCB7MHg1MCwweDRmLDB4NTAsMHgxMywweGU1LDB4MDAsMHhmZCwweDEwLDB4MWYsMHg1MCwweDA3LDB4ZDQsMHg0MywweGQ0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhhNGQwLCAwLCB7MHgxMCwweDFlLDB4NDQsMHgwZiwweDk0LDB4MDMsMHhkNSwweDAwLDB4ZmQsMHg0MCwweDNlLDB4NTAsMHgwZiwweDUyLDB4ODMsMHhlZSB9LAotICAxNiwgMHhhNGUwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGU0LDB4NDAsMHhmOSwweDYwLDB4M2YsMHg0NCB9LAotICAxNiwgMHhhNGYwLCAwLCB7MHgwZiwweGQwLDB4YzMsMHhlNCwweDMwLDB4ZjksMHgwMSwweDNlLDB4NDIsMHgwYywweGQwLDB4MDMsMHhlNywweDgwLDB4ZGQsMHhhMCB9LAotICAxNiwgMHhhNTAwLCAwLCB7MHgzMywweDQwLDB4MGMsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGM5LDB4OTAsMHgzZiwweDY4LDB4MWUsMHg5MSwweDAzLDB4MzQsMHgwMCB9LAotICAxNiwgMHhhNTEwLCAwLCB7MHhmZCwweDAwLDB4M2UsMHg2OCwweDBjLDB4OTQsMHgwMywweDBlLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNTIwLCAwLCB7MHgzOSwweDEwLDB4ZTAsMHgwMCwweGI4LDB4NDIsMHgyZSwweDA5LDB4MGIsMHg4NCwweDAyLDB4ZTEsMHgwNCwweGJlLDB4MDAsMHgyZSB9LAotICAxNiwgMHhhNTMwLCAwLCB7MHgxMCwweDA4LDB4ODAsMHgyMiwweGMyLDB4ODAsMHg4OCwweDQwLDB4MjIsMHgwMCwweDBhLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhhOCB9LAotICAxNiwgMHhhNTQwLCAwLCB7MHhkMCwweDJlLDB4MTAsMHg0YiwweDhhLDB4MDMsMHg2MCwweDAwLDB4YmEsMHgwMCwweDJlLDB4MzAsMHgwOCwweDhhLDB4MDIsMHg4NiB9LAotICAxNiwgMHhhNTUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGM1LDB4ODAsMHhiMSwweDYwLDB4NmMsMHhkMCB9LAotICAxNiwgMHhhNTYwLCAwLCB7MHgwYiwweDEwLDB4MDAsMHhkYywweDBjLDB4YjUsMHgwMCwweDJjLDB4NDEsMHgwOCwweDEwLDB4MDIsMHhjNSwweDgwLDB4OTEsMHgxMCB9LAotICAxNiwgMHhhNTcwLCAwLCB7MHg2OCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZTQsMHgwYywweDgxLDB4MjIsMHgyYywweDUwLDB4MDgsMHgxMCwweDQyLDB4MDQsMHgwMCB9LAotICAxNiwgMHhhNTgwLCAwLCB7MHhhMSwweDAwLDB4MmMsMHg1YSwweDI4LDB4OTAsMHgwMiwweDUyLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNTkwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQxLDB4MGIsMHg5MCwweDEyLDB4ZjQsMHg4MCwweGJmLDB4MDAsMHgyZSB9LAotICAxNiwgMHhhNWEwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhhOSwweDYwLDB4NjAsMHg0MiwweDBhLDB4OTQsMHgxMiwweGU1LDB4MDAsMHhhOSB9LAotICAxNiwgMHhhNWIwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHg2NCwweDIwLDB4YjksMHgwMCwweDBlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhjNiB9LAotICAxNiwgMHhhNWMwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MSB9LAotICAxNiwgMHhhNWQwLCAwLCB7MHgwZiwweDkwLDB4MjMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHhlNCwweDA0LDB4ZDEsMHhjMCB9LAotICAxNiwgMHhhNWUwLCAwLCB7MHhiYSwweDcwLDB4MGMsMHg5OCwweDAzLDB4YzQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4MjUsMHg0MCB9LAotICAxNiwgMHhhNWYwLCAwLCB7MHhlOSwweDQwLDB4M2UsMHg0MCwweDBjLDB4MTAsMHgwMywweDY4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNjAwLCAwLCB7MHg2OCwweDAxLDB4YTQsMHgxNCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDIzLDB4ZTQsMHgwOCwweGY5LDB4YTAsMHgzYyB9LAotICAxNiwgMHhhNjEwLCAwLCB7MHhjMiwweDJmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhkOSwweDgwLDB4M2UsMHg3MCwweDBmLDB4OTEsMHg0MywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhhNjIwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgxZiwweDkwLDB4MTMsMHhlNiwweDIwLDB4ZjksMHhhMCwweDNjLDB4NDAsMHg0ZSwweDkwLDB4MDMsMHg5YSB9LAotICAxNiwgMHhhNjMwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMCwweGEwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMiB9LAotICAxNiwgMHhhNjQwLCAwLCB7MHgwZiwweDgwLDB4MTMsMHgyMCwweDBjLDB4ZmMsMHgwMSwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHg1MCB9LAotICAxNiwgMHhhNjUwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHg4MCwweDBiLDB4MjAsMHgwOCwweGY4LDB4MDAsMHgzMiwweDAwLDB4MmMsMHg4MCwweDQzLDB4ZTAsMHg0MCB9LAotICAxNiwgMHhhNjYwLCAwLCB7MHhmOCwweDAyLDB4M2EsMHgwMCwweDhmLDB4ODAsMHgwMywweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNjcwLCAwLCB7MHhhOCwweDg1LDB4MjgsMHgwOCwweDNhLDB4MDAsMHgwZiwweDgwLDB4NGIsMHhhMSwweDAyLDB4MjgsMHgwMCwweGJhLDB4ODIsMHgyZSB9LAotICAxNiwgMHhhNjgwLCAwLCB7MHg4OCwweDQ4LDB4ZTQsMHgwMiwweGU4LDB4MDAsMHhhZSwweDkwLDB4YTMsMHg5MCwweDBiLDB4ZTAsMHgwMCwweDM4LDB4MDAsMHhiYSB9LAotICAxNiwgMHhhNjkwLCAwLCB7MHgwMCwweDM3LDB4YTAsMHgwOCwweGEwLDB4MDIsMHhmOCwweDAwLDB4OWUsMHhlMCwweDIyLDB4ODAsMHgwYiwweGEwLDB4MjMsMHg0MiB9LAotICAxNiwgMHhhNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MTAsMHgzMywweDAwLDB4MmMsMHhkMCB9LAotICAxNiwgMHhhNmIwLCAwLCB7MHgwYiwweDE0LDB4MDIsMHgwYywweDAwLDB4YjIsMHg5MSwweDJjLDB4ZDAsMHgwOCwweDNlLDB4MDIsMHg0YywweDAwLDB4ODMsMHg0MCB9LAotICAxNiwgMHhhNmMwLCAwLCB7MHgyNCwweGMyLDB4MGIsMHgzNiwweDAwLDB4OGMsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MDksMHhiMCwweDAyLDB4Y2UsMHgwMCB9LAotICAxNiwgMHhhNmQwLCAwLCB7MHhiMywweGNjLDB4NjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweDAyLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNmUwLCAwLCB7MHhlMCwweDAxLDB4MWMsMHg4OCwweGI3LDB4MjUsMHgyZCwweGMwLDB4OGIsMHg1OCwweDFhLDB4MWMsMHgwOCwweGI2LDB4MDAsMHgyZCB9LAotICAxNiwgMHhhNmYwLCAwLCB7MHhjMCwweDA4LDB4NzQsMHgwMiwweGRjLDB4NDAsMHhhNSwweDAwLDB4MjUsMHhjMCwweDFiLDB4NzgsMHgwMiwweDk0LDB4MDgsMHhiNyB9LAotICAxNiwgMHhhNzAwLCAwLCB7MHg4MCwweDI1LDB4ZTMsMHgwYSwweDcxLDB4MDIsMHhkYywweDAwLDB4OTcsMHg4MywweDIxLDB4YzgsMHg4YiwweGYxLDB4MDIsMHg0OCB9LAotICAxNiwgMHhhNzEwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFmLDB4MDAsMHhmNywweGUyLDB4N2QsMHhlMCB9LAotICAxNiwgMHhhNzIwLCAwLCB7MHgwZiwweDU4LDB4NDMsMHgxZSwweDE4LDB4ZjYsMHg4MCwweDdjLDB4ZTAsMHgyYywweDY4LDB4MDIsMHg1ZSwweDkwLDB4YzMsMHg4MCB9LAotICAxNiwgMHhhNzMwLCAwLCB7MHgzNSwweGUwLDB4MGYsMHhmOCwweDAzLDB4OWUsMHgwNCwweGZmLDB4YTEsMHgyMCwweGExLDB4MGQsMHg3OCwweDAzLDB4ZDYsMHgwMCB9LAotICAxNiwgMHhhNzQwLCAwLCB7MHhmNywweDgwLDB4MzksMHhmOCwweDBmLDB4NzgsMHgwMywweDBhLDB4MDYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNzUwLCAwLCB7MHg0OCwweDFkLDB4YWMsMHgwMCwweGZiLDB4NDAsMHg3ZiwweDQxLDB4MGYsMHgxMCwweDAzLDB4ZWMsMHgwNCwweGZhLDB4MDAsMHgzZSB9LAotICAxNiwgMHhhNzYwLCAwLCB7MHhkMCwweDBmLDB4YTAsMHgwMywweGVkLDB4MDAsMHhlOSwweDAwLDB4MmEsMHgwMCwweDBmLDB4YjAsMHgwMywweDY0LDB4MDAsMHhmYiB9LAotICAxNiwgMHhhNzcwLCAwLCB7MHg0MCwweDNlLDB4YzAsMHgwZCwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZDMsMHgwMCwweDM2LDB4YzAsMHgwZiwweDM4LDB4MDMsMHhjMiB9LAotICAxNiwgMHhhNzgwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGZlLDB4NDgsMHhjZiwweGMwLDB4MzMsMHg2MCB9LAotICAxNiwgMHhhNzkwLCAwLCB7MHg4YywweGM4LDB4NDMsMHhkNiwweDAwLDB4Y2MsMHg5NCwweDNmLDB4YjAsMHgwZCwweGY4LDB4MDMsMHg3ZiwweDAwLDB4ZGYsMHg4MCB9LAotICAxNiwgMHhhN2EwLCAwLCB7MHgzZiwweDYwLDB4MGYsMHhkOCwweDAzLDB4ZGUsMHgwMCwweGNmLDB4Y2EsMHgzZCwweDYwLDB4MGMsMHhmOCwweDEzLDB4M2EsMHg0NCB9LAotICAxNiwgMHhhN2IwLCAwLCB7MHhkZCwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZjgsMHg0MywweDE4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhN2MwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweDhmLDB4MTEsMHgzMywweGMwLDB4NDgsMHg0MSwweDEyLDB4YzQsMHg0OCwweDg0LDB4MTEsMHgyYyB9LAotICAxNiwgMHhhN2QwLCAwLCB7MHhlYywweDJhLDB4YmEsMHgwMywweDNjLDB4NDAsMHhkNywweDQ4LDB4MmQsMHg0MSwweDBiLDB4NjAsMHgwMiwweGQ0LDB4MDAsMHhkNyB9LAotICAxNiwgMHhhN2UwLCAwLCB7MHgwMSwweDNkLDB4YzAsMHgwZCwweGYwLDB4MDMsMHg1YSwweDAwLDB4ODQsMHgxOCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDMsMHg2YSB9LAotICAxNiwgMHhhN2YwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDhjLDB4MDgsMHg4NywweDAwLDB4MjEsMHg0MCB9LAotICAxNiwgMHhhODAwLCAwLCB7MHgwOSwweDQwLDB4MDIsMHhkNCwweDAwLDB4YTQsMHg5MiwweDJkLDB4YzgsMHgwOSwweDYyLDB4ODIsMHg1YywweDAwLDB4ODcsMHgwMCB9LAotICAxNiwgMHhhODEwLCAwLCB7MHgyZCwweGMwLDB4MGIsMHg1MCwweDAyLDB4ZmMsMHgwMCwweDg3LDB4MDAsMHgyZCwweDA0LDB4MDgsMHg3MCwweDAyLDB4MWMsMHg4MCB9LAotICAxNiwgMHhhODIwLCAwLCB7MHhiNSwweDAwLDB4MmQsMHhjMCwweDBiLDB4ZjAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhODMwLCAwLCB7MHg2MCwweDEwLDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyMCwweDQwLDB4MDksMHgwMCwweDIyLDB4YzcsMHgwMCwweGEwLDB4NDEsMHgyYyB9LAotICAxNiwgMHhhODQwLCAwLCB7MHhjMSwweDRiLDB4MDgsMHgwMiwweDJjLDB4MDAsMHg5MywweDQwLDB4MmMsMHg3YywweDBiLDB4MzgsMHgwMiwweGM3LDB4MjAsMHg5MyB9LAotICAxNiwgMHhhODUwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg0ZiwweDg0LDB4YjAsMHg4MCwweDJjLDB4YzAsMHgwYiwweDMyLDB4MTAsMHg1MCB9LAotICAxNiwgMHhhODYwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YWEsMHgxNSwweGJjLDB4MDIsMHhjZiwweDAwLDB4YjIsMHg0MCB9LAotICAxNiwgMHhhODcwLCAwLCB7MHgwZCwweDEwLDB4MDMsMHhlOCwweDI0LDB4ZWIsMHhjMSwweDNlLDB4YzAsMHgyZCwweDk4LDB4MTMsMHg3YywweDBhLDB4YzIsMHg0MyB9LAotICAxNiwgMHhhODgwLCAwLCB7MHgzZSwweGIwLDB4MGYsMHhhOSwweDAzLDB4ZTksMHgyMCwweGNmLDB4MDAsMHgzZSwweGMwLDB4OGMsMHhmMCwweDAzLDB4MGQsMHgyMCB9LAotICAxNiwgMHhhODkwLCAwLCB7MHhmYSwweGMwLDB4M2YsMHhjMCwweDBmLDB4NzQsMHgwMSwweDJhLDB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOGEwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDIsMHgzYSwweDQwLDB4OGUsMHg5MCwweDAzLDB4ZTgsMHgxNCwweDViLDB4NTAsMHgzYyB9LAotICAxNiwgMHhhOGIwLCAwLCB7MHg1MCwweDRlLDB4ODQsMHgwMywweGVjLDB4MDAsMHhmOCwweDQwLDB4M2UsMHg4MCwweDA3LDB4ODEsMHgwMywweGVjLDB4MDgsMHhmMyB9LAotICAxNiwgMHhhOGMwLCAwLCB7MHgwMCwweDNhLDB4YzAsMHg5ZiwweDMwLDB4MDMsMHhlYywweDAwLDB4Y2IsMHgyMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MjMsMHhlOCB9LAotICAxNiwgMHhhOGQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg5MCwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHg0MCB9LAotICAxNiwgMHhhOGUwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHgzOCwweDIwLDB4Y2YsMHgwOCwweDMyLDB4YzEsMHgwZSwweGQwLDB4MDMsMHhmYywweDAwLDB4ZmUsMHgwOCB9LAotICAxNiwgMHhhOGYwLCAwLCB7MHgzMSwweGU1LDB4MGUsMHhlNCwweDAzLDB4M2EsMHgwMCwweGZmLDB4MDAsMHgzMywweDgwLDB4MGYsMHhmMCwweDJiLDB4MjQsMHgwMCB9LAotICAxNiwgMHhhOTAwLCAwLCB7MHhjYywweGEwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOTEwLCAwLCB7MHg4MCwweDA0LDB4NmMsMHgwMCwweGJiLDB4MDAsMHgzYSwweDY5LDB4MGIsMHg5MCwweDZlLDB4MDgsMHgwMCwweDgzLDB4NDEsMHgzNiB9LAotICAxNiwgMHhhOTIwLCAwLCB7MHg0MCwweGM4LDB4ODgsMHhjNiwweGVjLDB4MDAsMHg4OCwweDQwLDB4MzYsMHg4MCwweDBkLDB4YTgsMHgwMywweDZlLDB4NTAsMHhiYiB9LAotICAxNiwgMHhhOTMwLCAwLCB7MHgwMCwweDM2LDB4YzAsMHgwYiwweGIwLDB4MDIsMHgyNCwweDAwLDB4ZDksMHgwOCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhhOTQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHg2MCB9LAotICAxNiwgMHhhOTUwLCAwLCB7MHgwMywweDgwLDB4MDIsMHgyMCwweDAwLDB4ODksMHgwMSwweDIyLDB4NTgsMHgwOCwweDk4LDB4MjIsMHhlYywweDAxLDB4YWIsMHgwMCB9LAotICAxNiwgMHhhOTYwLCAwLCB7MHgyMiwweDAwLDB4MGEsMHgxMCwweDAyLDB4MjgsMHgwMCwweGJiLDB4MDAsMHgyMiwweDQwLDB4MGIsMHhiMCwweDAyLDB4MjgsMHgwMCB9LAotICAxNiwgMHhhOTcwLCAwLCB7MHg4YSwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweDIwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOTgwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyOCwweDQwLDB4OGIsMHgwMCwweDAyLDB4MDIsMHg0MCwweDg5LDB4MDEsMHgyNCB9LAotICAxNiwgMHhhOTkwLCAwLCB7MHhkMiwweDI4LDB4MTAsMHgwMiwweGNjLDB4MDAsMHg4MywweDEwLDB4MjQsMHgyMCwweDA4LDB4MDgsMHgwMiwweDRlLDB4MDAsMHhiMyB9LAotICAxNiwgMHhhOWEwLCAwLCB7MHgwNCwweGEwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwOCwweDg4LDB4OTIsMHgwMCwweDJjLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhhOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHgwMCB9LAotICAxNiwgMHhhOWMwLCAwLCB7MHgwZiwweDgwLDB4MDIsMHgyMCwweDEwLDB4ODksMHg1MCwweDIyLDB4ZDgsMHgyZSwweDk2LDB4MjIsMHhmYywweDAwLDB4ZWIsMHg0MCB9LAotICAxNiwgMHhhOWQwLCAwLCB7MHgzMiwweGMwLDB4MGEsMHg5MCwweDAzLDB4MjgsMHgwMCwweGZmLDB4MDAsMHgyMiwweDAwLDB4MGYsMHhiMCwweDAzLDB4MmMsMHhhMCB9LAotICAxNiwgMHhhOWUwLCAwLCB7MHhjOCwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDAwLDB4MDYsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOWYwLCAwLCB7MHhhMCwweDE5LDB4ZmMsMHgwMCwweGZmLDB4MGMsMHgzYiwweDAwLDB4MGYsMHhjMCwweDAyLDB4NzAsMHg5MCwweGZkLDB4MDAsMHgzZSB9LAotICAxNiwgMHhhYTAwLCAwLCB7MHhjOSwweDBmLDB4OTYsMHhjMywweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDQsMHhmZiB9LAotICAxNiwgMHhhYTEwLCAwLCB7MHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlYywweDAwLDB4ZmMsMHgwMCwweDNmLDB4YzAsMHgwZiwweDcwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhhYTIwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGRjLDB4ODAsMHhmYiwweDI4LDB4M2YsMHgwMCB9LAotICAxNiwgMHhhYTMwLCAwLCB7MHgwYywweGMxLDB4MGIsMHhmMSwweDAyLDB4ZWQsMHgwMCwweDM3LDB4MzAsMHgyYywweGYxLDB4MDMsMHhiMiwweDQwLDB4ZmYsMHgwMCB9LAotICAxNiwgMHhhYTQwLCAwLCB7MHhiYiwweGMwLDB4MGYsMHg0OCwweDA2LDB4YjIsMHgwMCwweGZjLDB4ODAsMHgzYiwweGNjLDB4MGMsMHhmMCwweDAzLDB4NzAsMHg4MCB9LAotICAxNiwgMHhhYTUwLCAwLCB7MHhkZiwweDI4LDB4MzMsMHgwNCwweDBmLDB4ZjQsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYTYwLCAwLCB7MHg4MCwweDEwLDB4ZmYsMHg0MCwweGJmLDB4NjAsMHgyZSwweDIxLDB4MDgsMHg4MiwweDAyLDB4MjAsMHgwMCwweGE5LDB4MjgsMHgyYSB9LAotICAxNiwgMHhhYTcwLCAwLCB7MHgwMCwweDA5LDB4ZmEsMHgwMiwweDIwLDB4MDAsMHhiZiwweDUxLDB4MjMsMHhkOCwweDA5LDB4OTgsMHgwMiwweGU0LDB4MzAsMHhiMCB9LAotICAxNiwgMHhhYTgwLCAwLCB7MHgwMCwweDIzLDB4ZDAsMHgwOCwweGY1LDB4YTIsMHgyNSwweGE0LDB4OGYsMHg0MiwweDNjLDB4MTAsMHgwYiwweGIwLDB4MGEsMHgyMCB9LAotICAxNiwgMHhhYTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiMywweDA4LDB4MmMsMHgwMCB9LAotICAxNiwgMHhhYWEwLCAwLCB7MHgyOCwweDAwLDB4MWEsMHhjMCwweDg0LDB4MjAsMHgwMCwweDI0LDB4YzgsMHg0YiwweDMxLDB4NDIsMHhjMCwweDAwLDB4OTMsMHgwMiB9LAotICAxNiwgMHhhYWIwLCAwLCB7MHgyMCwweGM2LDB4MDgsMHgwMCwweDA2LDB4YzAsMHg4MSwweGIzLDB4MDAsMHgyYywweGQ4LDB4MDksMHgzMiwweDAyLDB4YTAsMHg0MCB9LAotICAxNiwgMHhhYWMwLCAwLCB7MHg5MywweDAxLDB4MjQsMHg0YywweDBiLDB4MzIsMHgwMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYWQwLCAwLCB7MHhjMCwweDExLDB4YWMsMHgwMCwweGJiLDB4MDIsMHgyZSwweDBhLDB4MDgsMHg4MCwweDgyLDB4NjAsMHgwMCwweGE4LDB4MDAsMHgyZSB9LAotICAxNiwgMHhhYWUwLCAwLCB7MHhlMCwweDFiLDB4YjAsMHgwMiwweDYyLDB4MDEsMHgzYiwweDAwLDB4MjIsMHhjMSwweDA5LDB4OTAsMHgwMiwweGUyLDB4MDAsMHhiYiB9LAotICAxNiwgMHhhYWYwLCAwLCB7MHg2MCwweDI2LDB4YzEsMHgwOCwweGIwLDB4MmEsMHgyNiwweDAwLDB4OWIsMHgwNCwweDJlLDB4MjEsMHgwYiwweGIwLDB4MDIsMHgzMCB9LAotICAxNiwgMHhhYjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMSwweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UsMHgxMCB9LAotICAxNiwgMHhhYjEwLCAwLCB7MHgwOCwweDg0LDB4MTMsMHhlYywweDAyLDB4YTksMHgwNCwweDM2LDB4MjAsMHgwZiwweGIwLDB4MDMsMHhlZSwweDgwLDB4ZmIsMHgwMCB9LAotICAxNiwgMHhhYjIwLCAwLCB7MHgzYSwweGMwLDB4MGMsMHhhMCwweDAzLDB4YTIsMHg4MCwweDc5LDB4NDAsMHgxZSwweGMwLDB4OGMsMHhiMCwweDYzLDB4NmEsMHgxMCB9LAotICAxNiwgMHhhYjMwLCAwLCB7MHhkMywweDAwLDB4MzYsMHhhMiwweDA3LDB4YjAsMHgwMywweDAwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYjQwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZSwweDIwLDB4NGQsMHg0MSwweDAzLDB4OWMsMHgwMCwweGZkLDB4MjAsMHhhYiB9LAotICAxNiwgMHhhYjUwLCAwLCB7MHgwMCwweDBjLDB4ZjAsMHgwMywweGI4LDB4MDAsMHhmNywweDAwLDB4M2YsMHhjMCwweDRkLDB4YzksMHgwMywweGY0LDB4MDAsMHhmZiB9LAotICAxNiwgMHhhYjYwLCAwLCB7MHgwMCwweDNiLDB4YzAsMHgyZSwweGYwLDB4MDAsMHhmMCwweDAwLDB4ZWYsMHgwMCwweDNmLDB4MDAsMHg0YiwweDcwLDB4MDMsMHhmOCB9LAotICAxNiwgMHhhYjcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4ODAsMHhlYiwweDAwLDB4N2UsMHgxMCB9LAotICAxNiwgMHhhYjgwLCAwLCB7MHgyZSwweDg0LDB4MDMsMHhlYywweDAwLDB4ZTAsMHgwMCwweDMyLDB4NTAsMHgwZiwweGIwLDB4ODYsMHgyNSwweDAwLDB4ZGIsMHgyMCB9LAotICAxNiwgMHhhYjkwLCAwLCB7MHgzYSwweGMwLDB4MGQsMHhiMCwweDYzLDB4ZTEsMHgxMCwweGZiLDB4NDgsMHgzOCwweGMxLDB4MGYsMHgzMCwweDAzLDB4MmMsMHgwNCB9LAotICAxNiwgMHhhYmEwLCAwLCB7MHhmYiwweDA4LDB4MzIsMHhjMCwweDBjLDB4YjAsMHgwYiwweDkwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYmIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDhmLDB4MDAsMHg2NCwweDI5LDB4MjgsMHg4MCwweDAzLDB4ZWMsMHgwMiwweGU4LDB4MDQsMHhhOCB9LAotICAxNiwgMHhhYmMwLCAwLCB7MHg1NiwweDA4LDB4ZmMsMHgwNywweGUwLDB4MDAsMHgwZiwweGEwLDB4YmYsMHhjMCwweDBiLDB4OTUsMHgwMiwweGEwLDB4MDAsMHhiYiB9LAotICAxNiwgMHhhYmQwLCAwLCB7MHgwNSwweDM3LDB4YzAsMHg4OSwweGYwLDB4MGEsMHgwZCwweGM4LDB4YmYsMHgwOCwweDJhLDB4ODAsMHgwOCwweGYwLDB4MDIsMHgzMiB9LAotICAxNiwgMHhhYmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDEsMHhiMywweDAyLDB4MjQsMHhlMCB9LAotICAxNiwgMHhhYmYwLCAwLCB7MHgwYSwweDMwLDB4MTIsMHg4MCwweDAzLDB4YTMsMHgwMCwweGE4LDB4MDAsMHgwMiwweGI4LDB4MjIsMHhjMCwweDAwLDB4YjMsMHgwMCB9LAotICAxNiwgMHhhYzAwLCAwLCB7MHgyOCwweGMxLDB4MGIsMHgwNCwweDAyLDB4MDgsMHgwMCwweGI5LDB4NDAsMHgyOCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MDMsMHgwNCB9LAotICAxNiwgMHhhYzEwLCAwLCB7MHhiMywweDQ0LDB4MjAsMHgwMCwweDRhLDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYzIwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgyMCwweDE3LDB4YTAsMHg2NSwweGVjLDB4MDgsMHgzOCwweDAyLDB4YzIsMHg0MSwweGIzLDB4OTIsMHgyYiB9LAotICAxNiwgMHhhYzMwLCAwLCB7MHg2NCwweDBhLDB4MzgsMHgwMiwweDM2LDB4MDEsMHhiNywweDkwLDB4MmQsMHhlMCwweDAzLDB4ZjgsMHgwMCwweDlhLDB4MDAsMHhiNSB9LAotICAxNiwgMHhhYzQwLCAwLCB7MHg4MCwweDJkLDB4ZTAsMHg4OSwweDc4LDB4MTIsMHgxZSwweDAwLDB4YjcsMHg4MCwweDI5LDB4ZTAsMHgwYSwweDc4LDB4MDIsMHgwOCB9LAotICAxNiwgMHhhYzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg3MywweGIwLDB4MjQsMHhjOCB9LAotICAxNiwgMHhhYzYwLCAwLCB7MHg0ZSwweDMwLDB4MGEsMHg4MCwweDAyLDB4ZTIsMHgwMCwweDM4LDB4OTQsMHgwZSwweDMxLDB4YTIsMHhjOCwweDAwLDB4NzMsMHgwMCB9LAotICAxNiwgMHhhYzcwLCAwLCB7MHgxOCwweGM0LDB4MDUsMHgwMCwweDAzLDB4MDAsMHgwMCwweGYzLDB4MDAsMHgzOCwweGMwLDB4MDcsMHhiMSwweDAzLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYzgwLCAwLCB7MHhmMywweDAxLDB4MzAsMHg0MSwweDBlLDB4YjAsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYzkwLCAwLCB7MHg0MCwweDFkLDB4YmQsMHgwMCwweGVmLDB4MTAsMHgyNiwweGM4LDB4MDMsMHhiMSwweDAzLDB4ZTAsMHgwMCwweGVhLDB4ODEsMHg3OCB9LAotICAxNiwgMHhhY2EwLCAwLCB7MHhjNSwweDBjLDB4YjUsMHhlMywweGRjLDB4MDAsMHhjMywweDAwLDB4M2UsMHhjMSwweDBmLDB4ZjAsMHg4MywweGIwLDB4MDAsMHhmZiB9LAotICAxNiwgMHhhY2IwLCAwLCB7MHgwMCwweDM3LDB4YzAsMHgwZCwweGY0LDB4MDMsMHhlNCwweDAwLDB4ZjcsMHgwMCwweDNmLDB4NDAsMHgwZCwweGYwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhhY2MwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVkLDB4MTAsMHhjYiwweDI4LDB4M2UsMHhjMCB9LAotICAxNiwgMHhhY2QwLCAwLCB7MHgwZCwweGIwLDB4MTMsMHhhYywweDEwLDB4ZmIsMHgwMCwweDNhLDB4ODAsMHgwNCwweGI0LDB4MDMsMHhhYywweDAwLDB4ZmIsMHgwNCB9LAotICAxNiwgMHhhY2UwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhhNCwweGIzLDB4ZTAsMHgwMCwweGZiLDB4ODAsMHgzMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTgsMHgwMCB9LAotICAxNiwgMHhhY2YwLCAwLCB7MHhmYiwweDQ4LDB4YjIsMHg4MCwweDBmLDB4YjAsMHg0MywweGVhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZDAwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMiwweDg3LDB4NDQsMHgzOCwweGMwLDB4OGQsMHgzMCwweDAyLDB4NGMsMHgwMCwweGZmLDB4MDAsMHgyMSB9LAotICAxNiwgMHhhZDEwLCAwLCB7MHhjMCwweDA4LDB4NzAsMHgwMywweDljLDB4MDAsMHhiMywweDUwLDB4MjEsMHhkNCwweDRlLDB4NjIsMHgwMiwweGQwLDB4MDAsMHhiZiB9LAotICAxNiwgMHhhZDIwLCAwLCB7MHgwMCwweDM1LDB4ZDQsMHgwOSwweDcwLDB4MjIsMHhkOCwweDAwLDB4YmYsMHgyMiwweDIxLDB4YzAsMHgwYiwweDcyLDB4MDIsMHhkMiB9LAotICAxNiwgMHhhZDMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4NDAsMHg4NywweDgwLDB4MmQsMHhlMCB9LAotICAxNiwgMHhhZDQwLCAwLCB7MHgwOSwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjYsMHg4MCwweDI5LDB4YTEsMHgyOCwweDdhLDB4MzIsMHhkZSwweDAwLDB4MzcsMHhhMCB9LAotICAxNiwgMHhhZDUwLCAwLCB7MHgyNSwweGUwLDB4MDksMHg3OCwweDA2LDB4ZDIsMHgwMCwweGI3LDB4ODAsMHgyMSwweGU4LDB4MGIsMHg3OSwweDAyLDB4ZGUsMHgwMCB9LAotICAxNiwgMHhhZDYwLCAwLCB7MHhiNywweDkwLDB4MjEsMHhlMCwweDBiLDB4NzksMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZDcwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwNCwweDgzLDB4MDEsMHgyOCwweGMwLDB4ODksMHhiMCwweDBhLDB4NGYsMHgwMCwweGIyLDB4MDAsMHgyMCB9LAotICAxNiwgMHhhZDgwLCAwLCB7MHhjNCwweDg4LDB4MzAsMHgxNiwweGNmLDB4MDAsMHhiYiwweDA0LDB4MjAsMHhjMSwweDBhLDB4MzIsMHgwNiwweGMyLDB4MDAsMHhiMyB9LAotICAxNiwgMHhhZDkwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwOSwweDMwLDB4NDIsMHhlZiwweDEwLDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhkMiB9LAotICAxNiwgMHhhZGEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHg0YSwweDAwLDB4M2UsMHg4MCB9LAotICAxNiwgMHhhZGIwLCAwLCB7MHgyZCwweGEwLDB4MGIsMHhhYSwweDgwLDB4ZmUsMHgwMCwweDJiLDB4ODAsMHgwYywweGEwLDB4NDMsMHhmYiwweDMwLDB4ZmEsMHgwMCB9LAotICAxNiwgMHhhZGMwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDgzLDB4ZmEsMHgwNCwweGZlLDB4MTgsMHgyMiwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZmEsMHg4NCB9LAotICAxNiwgMHhhZGQwLCAwLCB7MHhmMiwweDAwLDB4MzMsMHhhMiwweDBmLDB4YTAsMHgwMywweGYyLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZGUwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGYwLDB4MDAsMHgzZSwweDAwLDB4MmYsMHg4MCwweDAzLDB4YTAsMHgyMCwweGZjLDB4MDIsMHgzZSB9LAotICAxNiwgMHhhZGYwLCAwLCB7MHgwMCwweDFmLDB4ODQsMHgwMywweGEwLDB4MDAsMHhmOCwweDQwLDB4M2UsMHgwMCwweDRmLDB4ODAsMHgwMSwweGUwLDB4NDAsMHhmOCB9LAotICAxNiwgMHhhZTAwLCAwLCB7MHg0MCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhhZTEwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGM2LDB4MDAsMHhkOSwweDAwLDB4MzYsMHg0MCB9LAotICAxNiwgMHhhZTIwLCAwLCB7MHgwZiwweDkwLDB4MGIsMHgwNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NjgsMHg2YywweDk0LDB4MDMsMHhlNCwweDIwLDB4YjksMHg5MCB9LAotICAxNiwgMHhhZTMwLCAwLCB7MHgzNiwweDQwLDB4MGMsMHg5NCwweDAzLDB4ZTQsMHgwMCwweDI5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4MjQsMHgyMCB9LAotICAxNiwgMHhhZTQwLCAwLCB7MHhjOSwweDAwLDB4MzYsMHg0MCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZTUwLCAwLCB7MHg4MCwweDA0LDB4NjYsMHg1MCwweDg5LDB4MDAsMHgyMCwweDUwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwOSwweGQ5LDB4MDAsMHgyMCB9LAotICAxNiwgMHhhZTYwLCAwLCB7MHg0OCwweDQ4LDB4OTAsMHgwNiwweGU0LDB4MDQsMHg5OSwweGEwLDB4MjIsMHg0MCwweDBkLDB4YjgsMHgyMiwweDY0LDB4MDAsMHgwOSB9LAotICAxNiwgMHhhZTcwLCAwLCB7MHg1MCwweDMyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgyNywweDkwLDB4ODksMHg0MCwweDJhLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhhZTgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHg5OSwweDAwLDB4NjYsMHg0MiB9LAotICAxNiwgMHhhZTkwLCAwLCB7MHgwYSwweGQwLDB4MTIsMHgzNCwweDAwLDB4ODUsMHgwMCwweDI2LDB4NDAsMHg0YSwweDkwLDB4MDIsMHhlNCwweDAxLDB4YjksMHgwMSB9LAotICAxNiwgMHhhZWEwLCAwLCB7MHgyNCwweDQwLDB4NTgsMHg5MCwweDEyLDB4YzQsMHgwMCwweDI5LDB4NDAsMHgyZSwweDQwLDB4MGIsMHgxMCwweDBhLDB4MjQsMHg4MCB9LAotICAxNiwgMHhhZWIwLCAwLCB7MHg4OSwweDA1LDB4MjYsMHg0MSwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZWMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjAsMHg2MSwweDQ4LDB4MDgsMHg1MiwweDAyLDB4MTQsMHg4MSwweDk1LDB4MjAsMHgyMCB9LAotICAxNiwgMHhhZWQwLCAwLCB7MHg0MCwweDBhLDB4MzYsMHgwMiwweGM0LDB4MDAsMHhiMSwweDIwLDB4MDAsMHg0OCwweDQxLDB4MTAsMHg0MiwweDQ0LDB4MDEsMHhhMSB9LAotICAxNiwgMHhhZWUwLCAwLCB7MHgwMCwweDI0LDB4NDgsMHgwYiwweDEyLDB4MTIsMHgwNCwweDgwLDB4ODEsMHgyMCwweDI4LDB4NDgsMHgwYiwweDEyLDB4MDIsMHhjYSB9LAotICAxNiwgMHhhZWYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhkOCwweDUwLDB4MzYsMHgwMCB9LAotICAxNiwgMHhhZjAwLCAwLCB7MHgwZSwweDg1LDB4MjMsMHgyMSwweDQyLDB4OGMsMHg1NCwweDM0LDB4MTQsMHgwZSwweDgwLDB4MDIsMHhlMSwweDQwLDB4ZjgsMHg1MCB9LAotICAxNiwgMHhhZjEwLCAwLCB7MHgzNiwweDE0LDB4MDQsMHg4MCwweDAzLDB4ZTEsMHg0NCwweGU4LDB4NTAsMHg3ZSwweDE1LDB4MGYsMHg4NSwweDAzLDB4MjEsMHg0MiB9LAotICAxNiwgMHhhZjIwLCAwLCB7MHg0YSwweDAwLDB4MzYsMHgxNCwweDBmLDB4ODAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZjMwLCAwLCB7MHg5OCwweDFkLDB4YzQsMHg0MCwweGY5LDB4MTAsMHgxZSwweDQ0LDB4NGUsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MTAsMHgzZiB9LAotICAxNiwgMHhhZjQwLCAwLCB7MHhjMCwweDBkLDB4OTEsMHgwMywweGY0LDB4MDAsMHhkOSwweDE0LDB4M2UsMHg0NCwweDBmLDB4OTAsMHgwMywweDc0LDB4MDAsMHhkZCB9LAotICAxNiwgMHhhZjUwLCAwLCB7MHgwMCwweDdhLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhmNCwweDQwLDB4ZjksMHgzOCwweDNmLDB4NDQsMHgwZiwweDkzLDB4ODMsMHhlNyB9LAotICAxNiwgMHhhZjYwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweGY2LDB4ODAsMHhmOSwweGE0LDB4M2YsMHg2OCB9LAotICAxNiwgMHhhZjcwLCAwLCB7MHgwZSwweDllLDB4NDMsMHg2NywweDgwLDB4ZDksMHhlNCwweDNmLDB4NDEsMHgwZiwweGQ4LDB4NDMsMHgwNCwweDAwLDB4ZWQsMHhjMCB9LAotICAxNiwgMHhhZjgwLCAwLCB7MHgzNiwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGQ1LDB4NDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZjQsMHgwMCB9LAotICAxNiwgMHhhZjkwLCAwLCB7MHhkZCwweDAwLDB4MzIsMHg0MCwweDJjLDB4OWEsMHgwMywweGM2LDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZmEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMCwweGU4LDB4YzAsMHgyZSwweDE0LDB4NGQsMHg4ZiwweDIyLDB4MjMsMHhjMCwweGY4LDB4ZjAsMHhhYSB9LAotICAxNiwgMHhhZmIwLCAwLCB7MHgwMCwweDBjLDB4ODAsMHgwMywweGEyLDB4YTAsMHhkOCwweDgyLDB4MjIsMHgwMCwweDA4LDB4ODAsMHgwMiwweGU4LDB4MDAsMHhkOCB9LAotICAxNiwgMHhhZmMwLCAwLCB7MHg4MCwweDJhLDB4MDAsMHgwOCwweDgwLDB4MDIsMHhlOCwweDA4LDB4ODgsMHhhOCwweDM2LDB4MDAsMHg0OCwweDhhLDB4ODIsMHhjZSB9LAotICAxNiwgMHhhZmQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDQ4LDB4MmUsMHg0MCB9LAotICAxNiwgMHhhZmUwLCAwLCB7MHgwYSwweDEyLDB4MjIsMHg0NCwweDAwLDB4OTEsMHgwNCwweGE0LDB4NDEsMHgwYSwweDk0LDB4MDYsMHgyNCwweDAwLDB4OTEsMHg0MiB9LAotICAxNiwgMHhhZmYwLCAwLCB7MHgyNCwweDQxLDB4MDksMHgxMCwweDAyLDB4ZTQsMHgwMSwweDkxLDB4MjAsMHgyNCwweDQwLDB4MDksMHgxMCwweDAyLDB4YzQsMHgwMSB9LAotICAxNiwgMHhiMDAwLCAwLCB7MHg5MSwweDAwLDB4MmMsMHg0MCwweDA5LDB4MTQsMHgwMiwweGMyLDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMDEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGE5LDB4MDAsMHgyZSwweDQwLDB4NDgsMHgxMCwweDAyLDB4MjQsMHgwMCwweGI5LDB4NDAsMHhhYSB9LAotICAxNiwgMHhiMDIwLCAwLCB7MHg0MCwweDE4LDB4YjAsMHgwMiwweGU0LDB4MDgsMHg5OSwweDAwLDB4MjIsMHg0MCwweDE5LDB4OTAsMHg0NiwweGU0LDB4ODAsMHg5OSB9LAotICAxNiwgMHhiMDMwLCAwLCB7MHgwNCwweDJlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDAxLDB4OTksMHgwNCwweDI2LDB4NTAsMHgwOSwweDkwLDB4MDIsMHhjNiB9LAotICAxNiwgMHhiMDQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGU0LDB4MDAsMHhmOSwweDA2LDB4M2MsMHg0MCB9LAotICAxNiwgMHhiMDUwLCAwLCB7MHgwYSwweDkwLDB4MDMsMHg2NCwweDAyLDB4ZDksMHgwMCwweGI2LDB4NTAsMHgwZSwweDkwLDB4MjMsMHgyNiwweDAxLDB4ZjksMHgwMCB9LAotICAxNiwgMHhiMDYwLCAwLCB7MHgzNiwweDQwLDB4MjksMHg5NCwweDgzLDB4ZTQsMHgwMCwweGQ5LDB4NDgsMHgzNiwweDQwLDB4MGQsMHg5MCwweDAzLDB4YzcsMHgwMCB9LAotICAxNiwgMHhiMDcwLCAwLCB7MHhkMSwweDA3LDB4M2EsMHg1MCwweGNkLDB4OTAsMHgwMywweGU4LDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMDgwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwOCwweGU5LDB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4YzQsMHgwOCwweGYxLDB4MDAsMHgzYSB9LAotICAxNiwgMHhiMDkwLCAwLCB7MHg2OCwweDhmLDB4OTAsMHgwMywweGE0LDB4NDEsMHhmOSwweDAwLDB4YmUsMHg0MCwweDBlLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhiMGEwLCAwLCB7MHhjMCwweDM4LDB4NDAsMHgyZSwweDkwLDB4MDMsMHhlNiwweDQwLDB4ZTksMHgwMCwweDNlLDB4NjgsMHgwNiwweDkwLDB4MDMsMHhjYSB9LAotICAxNiwgMHhiMGIwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhkOCwweDA1LDB4M2UsMHgwMCB9LAotICAxNiwgMHhiMGMwLCAwLCB7MHgwNywweDgwLDB4MGIsMHgyMCwweDAwLDB4ZTgsMHg0MCwweDNlLDB4MTAsMHgwZCwweDgyLDB4MDMsMHg2MCwweDAwLDB4YzgsMHgwMCB9LAotICAxNiwgMHhiMGQwLCAwLCB7MHhiMiwweDAwLDB4OGQsMHg4MywweDAzLDB4ZTAsMHgwMCwweGQ4LDB4NTAsMHgzYSwweDAwLDB4MWUsMHg4MCwweDAzLDB4ZTEsMHgyNCB9LAotICAxNiwgMHhiMGUwLCAwLCB7MHhmOCwweDAwLDB4YjIsMHgwMCwweDBmLDB4ODAsMHgwMywweDAyLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMGYwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweDhhLDB4MDQsMHgyZiwweDg0LDB4NmEsMHhhMCwweDBiLDB4ZTgsMHgwOCwweDhlLDB4MDAsMHgzZCB9LAotICAxNiwgMHhiMTAwLCAwLCB7MHg4MCwweDg4LDB4ZWMsMHgwMywweDY4LDB4MTAsMHhhNiwweDAxLDB4MzYsMHg4MCwweDA4LDB4YTgsMHgwMCwweGM4LDB4MTAsMHg4ZSB9LAotICAxNiwgMHhiMTEwLCAwLCB7MHgxMCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHhmYiwweDIwLDB4YmUsMHg1MSwweDJhLDB4ODAsMHgwYiwweGEwLDB4MDIsMHg4MiB9LAotICAxNiwgMHhiMTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQxLDB4MjEsMHg5MywweDAwLDB4MmMsMHhmMCB9LAotICAxNiwgMHhiMTMwLCAwLCB7MHgzOSwweDMwLDB4MDYsMHgwYywweDAwLDB4YTMsMHgwMCwweDI4LDB4MDgsMHgyOCwweGJjLDB4MDIsMHgyYywweDAwLDB4ODMsMHg4MCB9LAotICAxNiwgMHhiMTQwLCAwLCB7MHgyYSwweGMwLDB4MDgsMHgzMCwweDAwLDB4Y2MsMHgwMCwweDlhLDB4ODAsMHgyOCwweGMwLDB4MGEsMHgzMCwweDAyLDB4Y2QsMHgwMCB9LAotICAxNiwgMHhiMTUwLCAwLCB7MHhiMywweDA0LDB4NjIsMHhjMSwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMTYwLCAwLCB7MHhhMCwweDAxLDB4MWUsMHgwNCwweDA3LDB4MTEsMHgyYywweGQwLDB4MGEsMHgzMiwweDIyLDB4ZGMsMHhjMSwweDg3LDB4MDAsMHg2ZCB9LAotICAxNiwgMHhiMTcwLCAwLCB7MHhkMCwweDA4LDB4MzQsMHgwMiwweDdjLDB4MDAsMHhhNywweDA4LDB4MjQsMHhjOCwweDA4LDB4NzAsMHgwMiwweGRjLDB4ODAsMHgwZiB9LAotICAxNiwgMHhiMTgwLCAwLCB7MHgwMCwweDIxLDB4YzQsMHgwOCwweDczLDB4MDYsMHhkYywweDAwLDB4YjIsMHgwMCwweDYxLDB4YzgsMHgwYiwweDNhLDB4MDIsMHg4OCB9LAotICAxNiwgMHhiMTkwLCAwLCB7MHgwNCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDBhLDB4MDAsMHg1NywweDgxLDB4MmQsMHhhMCB9LAotICAxNiwgMHhiMWEwLCAwLCB7MHgyZCwweDdjLDB4MDIsMHgzZSwweDgyLDB4ZTMsMHhlMCwweDNiLDB4ZTAsMHgwYywweDc4LDB4MDMsMHgxZSwweDIwLDB4YzcsMHg4MCB9LAotICAxNiwgMHhiMWIwLCAwLCB7MHhiOSwweGU4LDB4MmMsMHg3OCwweDAzLDB4ZmYsMHg4MCwweGQ2LDB4ODAsMHgzYiwweGVjLDB4MDIsMHg3YSwweDAzLDB4ZGUsMHgwMCB9LAotICAxNiwgMHhiMWMwLCAwLCB7MHhmNywweDgxLDB4MzEsMHhlYywweDhmLDB4N2MsMHgwMywweDBhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMWQwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgxZSwweDgwLDB4MjMsMHhiNiwweDgzLDB4ZWQsMHhhMCwweGRiLDB4NjQsMHgzZSB9LAotICAxNiwgMHhiMWUwLCAwLCB7MHhjMCwweDBlLDB4YjAsMHgwMywweGVkLDB4YzAsMHhmMiwweDAwLDB4M2UsMHhkNCwweDBhLDB4YjAsMHgwMywweGVjLDB4MzAsMHhlZSB9LAotICAxNiwgMHhiMWYwLCAwLCB7MHg2NCwweDNlLDB4YzAsMHgwNywweGIwLDB4YzMsMHhlOCwweDAwLDB4ZmIsMHgwMSwweDNlLDB4YzgsMHgwZiwweGI4LDB4MDMsMHhjMiB9LAotICAxNiwgMHhiMjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGY2LDB4MDAsMHhlZiwweDgwLDB4M2IsMHhlMCB9LAotICAxNiwgMHhiMjEwLCAwLCB7MHgwZiwweGY4LDB4NjMsMHg3ZSwweDA0LDB4Y2YsMHhjMCwweGI3LDB4MjAsMHgwZSwweGY4LDB4MDMsMHhmYywweDAwLDB4YzcsMHg4MCB9LAotICAxNiwgMHhiMjIwLCAwLCB7MHgzMywweGYwLDB4MGMsMHhjYywweDAzLDB4ZmUsMHgwOCwweGY3LDB4YzEsMHgzMywweGUwLDB4NGYsMHhmOCwweDAzLDB4YjIsMHg0MCB9LAotICAxNiwgMHhiMjMwLCAwLCB7MHhmZiwweGEwLDB4MzEsMHhlNiwweDBjLDB4ZjgsMHgwMywweDEwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMjQwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGVmLDB4MDIsMHgyMSwweDQwLDB4MmQsMHg3MCwweDAyLDB4MWMsMHgwMCwweGY3LDB4MTAsMHgyOSB9LAotICAxNiwgMHhiMjUwLCAwLCB7MHg0MCwweDA4LDB4NzAsMHgyMiwweGZjLDB4YzAsMHhhNywweDAwLDB4M2QsMHhjMCwweDA4LDB4NDAsMHgwMiwweGRjLDB4MDAsMHhiNyB9LAotICAxNiwgMHhiMjYwLCAwLCB7MHg0MCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhkYSwweDgwLDB4YjcsMHgyNCwweDI5LDB4YzYsMHg0OCwweGYwLDB4MDIsMHgyYSB9LAotICAxNiwgMHhiMjcwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhNywweDAwLDB4MjgsMHg4NCB9LAotICAxNiwgMHhiMjgwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHgwYywweDAwLDB4OTMsMHgwMCwweDI1LDB4ODAsMHgwYSwweDYxLDB4MDIsMHhkYywweDAxLDB4YTcsMHgxMCB9LAotICAxNiwgMHhiMjkwLCAwLCB7MHgyNCwweGMwLDB4MDgsMHg0MCwweDgyLDB4ZGMsMHgwMCwweDlmLDB4MDAsMHgyNSwweGM0LDB4MGIsMHg3MCwweDAyLDB4OTQsMHgyNSB9LAotICAxNiwgMHhiMmEwLCAwLCB7MHhiNywweDMyLDB4MjMsMHhjNCwweDFiLDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMmIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwYywweGEzLDB4MDAsMHgyMCwweDAwLDB4MjksMHgzMCwweDBhLDB4MGMsMHgwMCwweGEzLDB4MDAsMHg2YyB9LAotICAxNiwgMHhiMmMwLCAwLCB7MHgwMCwweDA4LDB4MTAsMHg0MiwweGNkLDB4MTAsMHhhYSwweDAwLDB4YWMsMHhjMCwweDAwLDB4MDQsMHgwMiwweGNkLDB4MDAsMHhiYiB9LAotICAxNiwgMHhiMmQwLCAwLCB7MHgxMCwweDI0LDB4YzAsMHgwMywweDMwLDB4NDIsMHhjMywweDA5LDB4YjMsMHgwMCwweDJjLDB4ZDAsMHgwYSwweDMwLDB4MDIsMHgxOCB9LAotICAxNiwgMHhiMmUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweDgwLDB4MDAsMHhlZiwweDAwLDB4M2EsMHg0MCB9LAotICAxNiwgMHhiMmYwLCAwLCB7MHgwNywweGYwLDB4NDMsMHgzYywweDAwLDB4OWYsMHhjMCwweGI2LDB4MTQsMHgwZSwweDgwLDB4MDYsMHhmYywweDAxLDB4Y2IsMHgwMSB9LAotICAxNiwgMHhiMzAwLCAwLCB7MHgzNywweGMwLDB4YWMsMHhiNCwweDAyLDB4ZmMsMHgwMCwweGQ5LDB4MDEsMHgzNywweGMwLDB4NGIsMHhmMCwweDEzLDB4YWUsMHgwOCB9LAotICAxNiwgMHhiMzEwLCAwLCB7MHhmYiwweDAwLDB4MzMsMHhkMCwweDJlLDB4ZjAsMHgwYiwweDJhLDB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMzIwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDUsMHgzZSwweDQwLDB4MGYsMHgzMCwweDAzLDB4YWMsMHgxNCwweGZiLDB4YTAsMHgzYSB9LAotICAxNiwgMHhiMzMwLCAwLCB7MHhjMCwweDBmLDB4ODQsMHg0MywweGVjLDB4MDEsMHhmOSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YTIsMHgwMywweGVjLDB4MjEsMHhmOSB9LAotICAxNiwgMHhiMzQwLCAwLCB7MHgwMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlNCwweDIwLDB4ZjAsMHgwMCwweGJhLDB4YzAsMHgwZCwweGIwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhiMzUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGY4LDB4MDAsMHhkNywweDAxLDB4MzUsMHg2OCB9LAotICAxNiwgMHhiMzYwLCAwLCB7MHg2ZCwweGYwLDB4MDMsMHgzYywweDAxLDB4ZTcsMHgwMCwweDMzLDB4YzAsMHgwZCwweGMwLDB4MDMsMHhmYywweDI0LDB4Y2YsMHgwMiB9LAotICAxNiwgMHhiMzcwLCAwLCB7MHgzNywweGMwLDB4MGQsMHhkMiwweDAyLDB4ZmMsMHgwMCwweGRmLDB4MDEsMHgzMywweGMwLDB4NWUsMHg3MCwweDMzLDB4MWMsMHgxOCB9LAotICAxNiwgMHhiMzgwLCAwLCB7MHhjZiwweDQxLDB4MzEsMHhjMiwweDBjLDB4ZjAsMHgwMywweDQwLDB4NDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMzkwLCAwLCB7MHg4MSwweDAwLDB4NmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweDUyLDB4MmEsMHhiMCwweDAzLDB4NmMsMHgwMCwweGFiLDB4MDAsMHgyOCB9LAotICAxNiwgMHhiM2EwLCAwLCB7MHhjMCwweDBhLDB4OGMsMHgwMiwweGVjLDB4MTAsMHg4YiwweGUwLDB4MjIsMHhjMCwweDBmLDB4ODAsMHgwMiwweGNjLDB4MDAsMHg4YiB9LAotICAxNiwgMHhiM2IwLCAwLCB7MHg4MCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYSwweDEwLDB4ZDksMHg4MCwweDIyLDB4YzAsMHhjOCwweGIwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhiM2MwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI0LDB4MDEsMHg5YiwweDAwLDB4MjYsMHg4MCB9LAotICAxNiwgMHhiM2QwLCAwLCB7MHgyOSwweGIwLDB4NjIsMHgwYywweDAwLDB4YWIsMHgwMSwweDZhLDB4MDAsMHgwOCwweDk4LDB4MDIsMHhjYywweDAwLDB4OWIsMHg4MyB9LAotICAxNiwgMHhiM2UwLCAwLCB7MHgyZSwweGMwLDB4Y2IsMHhiNCwweDEyLDB4ZWMsMHgwMywweDhiLDB4ODAsMHgyOCwweGMwLDB4MGEsMHhiMCwweDA2LDB4YTIsMHgwMCB9LAotICAxNiwgMHhiM2YwLCAwLCB7MHg4YiwweDAyLDB4NjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGUwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNDAwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMSwweDgzLDB4MTQsMHgyMCwweDAwLDB4MGEsMHgzMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYSB9LAotICAxNiwgMHhiNDEwLCAwLCB7MHg0MCwweDBhLDB4MTAsMHgwMCwweGNjLDB4MDIsMHg5MywweDAwLDB4MjgsMHhjMCwweDBhLDB4MjAsMHgwMiwweGVjLDB4MDAsMHgwMyB9LAotICAxNiwgMHhiNDIwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MTYsMHgwMCwweDgwLDB4OTEsMHgwMCwweDYwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhiNDMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhkYiwweDAwLDB4MzYsMHg4MCB9LAotICAxNiwgMHhiNDQwLCAwLCB7MHgyZCwweGYwLDB4MDMsMHgzYywweDAwLDB4YWYsMHgwMCwweDNhLDB4ODAsMHgwZCwweDgwLDB4MDMsMHhmYywweDAwLDB4NWIsMHgwMCB9LAotICAxNiwgMHhiNDUwLCAwLCB7MHgzNywweGMwLDB4MDksMHg5MCwweDAzLDB4ZmMsMHgwMCwweGRmLDB4MDAsMHgzMywweGMwLDB4MGEsMHhmMCwweDAzLDB4YTQsMHgyMCB9LAotICAxNiwgMHhiNDYwLCAwLCB7MHhjYiwweDAwLDB4YjMsMHhjMCwweDhjLDB4YjAsMHgwMywweDQwLDB4MDIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNDcwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwNCwweGZmLDB4MjAsMHgwZiwweDAwLDB4MjcsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgyZCB9LAotICAxNiwgMHhiNDgwLCAwLCB7MHgwMCwweDBiLDB4ZDAsMHgyNywweGZjLDB4MDAsMHhlZiwweDAwLDB4MzcsMHhjMCwweDBmLDB4YzAsMHg0MywweGZjLDB4MDAsMHhmZiB9LAotICAxNiwgMHhiNDkwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZCwweGYwLDB4MGIsMHhlMCwweDAwLDB4ZjUsMHgwMCwweDNmLDB4YzAsMHgxZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhiNGEwLCAwLCB7MHgwNywweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMSwweGY0LDB4YzAsMHhmYywweDIyLDB4N2YsMHhjMCB9LAotICAxNiwgMHhiNGIwLCAwLCB7MHgwYywweGQwLDB4NDMsMHgzNiwweDAwLDB4YzQsMHg4MSwweDM0LDB4YzAsMHgxYywweDg5LDB4MDcsMHhmMiwweDgwLDB4Y2YsMHg4MCB9LAotICAxNiwgMHhiNGMwLCAwLCB7MHgzMywweDYwLDB4MGYsMHg3OSwweDAzLDB4M2MsMHhlMCwweGNmLDB4MDgsMHgzMywweDQ4LDB4MGQsMHhjNCwweDAzLDB4ZjAsMHg1MCB9LAotICAxNiwgMHhiNGQwLCAwLCB7MHhkYywweDkwLDB4MzcsMHhjYywweDBmLDB4ZjgsMHgwMywweGYwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNGUwLCAwLCB7MHg4MCwweDEwLDB4ZTksMHg5MCwweGI4LDB4ODAsMHg3ZSwweGU0LDB4ODgsMHg5OSwweDBhLDB4MjYsMHgwOCwweGE5LDB4ODAsMHgyMiB9LAotICAxNiwgMHhiNGYwLCAwLCB7MHhmNCwweDJjLDB4OTksMHgwMywweGE3LDB4MDIsMHg4OSwweDgwLDB4MjIsMHgzNCwweDBiLDB4OWEsMHgwMywweDdkLDB4MDAsMHhkZiB9LAotICAxNiwgMHhiNTAwLCAwLCB7MHg0OCwweDJiLDB4NjAsMHgwOCwweDA1LDB4MDIsMHhlNSwweDAwLDB4ODIsMHgyMCwweDIyLDB4YzQsMHg4YiwweGIwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhiNTEwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM1LDB4MDAsMHhiMCwweDEwLDB4MmMsMHhjMCB9LAotICAxNiwgMHhiNTIwLCAwLCB7MHgyYSwweDAwLDB4MDIsMHhhNCwweDA4LDB4YTgsMHgwNCwweGUwLDB4ODAsMHgwYiwweDAwLDB4MDIsMHhjNCwweDQxLDB4YjIsMHgwNCB9LAotICAxNiwgMHhiNTMwLCAwLCB7MHhhNCwweDBhLDB4MGIsMHhiMCwweDAyLDB4OGMsMHg4MSwweDgzLDB4MjAsMHg2MCwweDUwLDB4OTgsMHgxMiwweDEyLDB4OGIsMHg4MCB9LAotICAxNiwgMHhiNTQwLCAwLCB7MHg4OSwweDAwLDB4MmMsMHhjOCwweDBiLDB4MzAsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNTUwLCAwLCB7MHhjMCwweDExLDB4YWMsMHgyMCwweGJiLDB4MDIsMHgyYSwweGMwLDB4MGEsMHg4OCwweDAyLDB4YTQsMHgwOCwweGE5LDB4ODAsMHhhMiB9LAotICAxNiwgMHhiNTYwLCAwLCB7MHhlMSwweDFiLDB4OWMsMHgyMiwweGU2LDB4MDAsMHhiOCwweDQwLDB4MjYsMHgzMCwweDBiLDB4OTAsMHgwMiwweGNjLDB4MDEsMHg5MyB9LAotICAxNiwgMHhiNTcwLCAwLCB7MHgwNCwweDJhLDB4NDAsMHgzOSwweDk4LDB4ODIsMHhlYywweDE0LDB4OGIsMHg2NSwweDJhLDB4YzAsMHgwYiwweGIyLDB4MDIsMHhmOCB9LAotICAxNiwgMHhiNTgwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGU3LDB4MDAsMHhiOCwweDQ4LDB4MmUsMHgwMCB9LAotICAxNiwgMHhiNTkwLCAwLCB7MHgwZSwweDg4LDB4NDMsMHg4NCwweDAwLDB4ZTMsMHhjMSwweDM2LDB4ZTgsMHgwZiwweDljLDB4MTIsMHhlMiwweDgwLDB4ZjMsMHhjMCB9LAotICAxNiwgMHhiNWEwLCAwLCB7MHgzNiwweDcwLDB4NWYsMHhhOCwweDIzLDB4YWMsMHgwMSwweGNiLDB4MDQsMHgyMiwweDQwLDB4NGQsMHg4NCwweDAzLDB4ZTIsMHgwMCB9LAotICAxNiwgMHhiNWIwLCAwLCB7MHhkOCwweDAwLDB4M2UsMHhjMCwweDBmLDB4OTAsMHgwMywweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNWMwLCAwLCB7MHhlMCwweDAxLDB4YjMsMHgwOSwweGZlLDB4MTAsMHgzZSwweDgxLDB4MGQsMHhjMCwweDAzLDB4NzQsMHgwYywweGZmLDB4MDAsMHgzZCB9LAotICAxNiwgMHhiNWQwLCAwLCB7MHhjMSwweDhjLDB4ZDAsMHg4MywweDE0LDB4MDAsMHhjZCwweDIwLDB4M2EsMHg0MCwweDBkLDB4Y2EsMHgwMSwweDdjLDB4MDAsMHhmZiB9LAotICAxNiwgMHhiNWUwLCAwLCB7MHgwMCwweDFmLDB4NDAsMHgwZSwweGMwLDB4MjMsMHhmMiwweDQ2LDB4ZmUsMHg4NCwweDM3LDB4YzAsMHgwZiwweGQ4LDB4MDMsMHhmOCB9LAotICAxNiwgMHhiNWYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhkZCwweDAyLDB4M2QsMHg0MCB9LAotICAxNiwgMHhiNjAwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHhhYywweDAwLDB4ZWIsMHg0OCwweDNlLDB4ZDAsMHgwYywweDgwLDB4NjMsMHhhMiwweDA4LDB4Y2EsMHgwMCB9LAotICAxNiwgMHhiNjEwLCAwLCB7MHgzMiwweDA4LDB4MGMsMHhiMCwweDAzLDB4YWMsMHgwOCwweGViLDB4MDAsMHgzZSwweDQwLDB4MGMsMHhkNCwweDgzLDB4NTgsMHgyMCB9LAotICAxNiwgMHhiNjIwLCAwLCB7MHhmOSwweDQyLDB4MzIsMHhjMCwweDBjLDB4YjAsMHgwMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNjMwLCAwLCB7MHhjOCwweDA1LDB4MjgsMHgwMiwweGRiLDB4MDAsMHgyZSwweGUwLDB4MjgsMHgzYSwweDAyLDB4MmUsMHgwMCwweGRiLDB4NjAsMHg3NiB9LAotICAxNiwgMHhiNjQwLCAwLCB7MHhlMCwweDBkLDB4OGMsMHgwMiwweGUwLDB4MDAsMHg4OCwweDAyLDB4MzYsMHg1OCwweDY4LDB4MTUsMHg4MywweDdjLDB4MDgsMHhiZiB9LAotICAxNiwgMHhiNjUwLCAwLCB7MHgwMCwweDJkLDB4NjAsMHgwOCwweDkwLDB4MDIsMHhhOSwweDAwLDB4YjMsMHgwNSwweDIzLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhmMiB9LAotICAxNiwgMHhiNjYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MTAsMHg4MCwweDAwLDB4MGMsMHhjMSB9LAotICAxNiwgMHhiNjcwLCAwLCB7MHgwOCwweDFjLDB4ODIsMHgwNiwweDAwLDB4OTMsMHhjMCwweDIwLDB4ZjYsMHgwYSwweDIwLDB4MDIsMHgwOCwweDAwLDB4OTMsMHgwMCB9LAotICAxNiwgMHhiNjgwLCAwLCB7MHgyNCwweDYwLDB4MDksMHgzYywweDAyLDB4MGMsMHgwMCwweDgzLDB4MDAsMHgyYywweDYwLDB4MDksMHgwMSwweDEyLDB4MDAsMHg0MCB9LAotICAxNiwgMHhiNjkwLCAwLCB7MHhiMCwweDAwLDB4ZTAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDcwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNmEwLCAwLCB7MHgyMCwweDQxLDB4MGEsMHg0MCwweDg2LDB4ODEsMHgyZCwweGUwLDB4NTgsMHgxOCwweDBhLDB4MTYsMHhhMCwweDk3LDB4ODAsMHgyNSB9LAotICAxNiwgMHhiNmIwLCAwLCB7MHhlOSwweDE5LDB4NzgsMHg4MiwweGQ2LDB4MDAsMHg5NywweDgwLDB4MjUsMHhhMCwweDE5LDB4ZjgsMHgwMiwweDVlLDB4MDAsMHhiNyB9LAotICAxNiwgMHhiNmMwLCAwLCB7MHg4MCwweDJkLDB4NjAsMHgyOCwweDQ4LDB4MTIsMHg5NiwweDAwLDB4YjQsMHg4MCwweDIxLDB4ZTAsMHgyOCwweDc4LDB4MDIsMHhjOCB9LAotICAxNiwgMHhiNmQwLCAwLCB7MHgwNCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg4MSwweDMwLDB4M2MsMHhjMiB9LAotICAxNiwgMHhiNmUwLCAwLCB7MHgwZSwweDAwLDB4MDIsMHg4NCwweDAwLDB4ZTMsMHg0MCwweDI4LDB4ZTgsMHg0YywweDI5LDB4MDMsMHgwYywweDAwLDB4ZDMsMHgwMCB9LAotICAxNiwgMHhiNmYwLCAwLCB7MHgzNCwweGM0LDB4MGQsMHgzMSwweDAzLDB4OGMsMHgwOCwweGUzLDB4MDAsMHgzYywweDQ2LDB4MGMsMHgyMCwweDAzLDB4MDAsMHg4MCB9LAotICAxNiwgMHhiNzAwLCAwLCB7MHhmMiwweDAwLDB4MzIsMHhjMCwweDBjLDB4MzAsMHgwMywweGQyLDB4MDIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNzEwLCAwLCB7MHg0MCwweDE5LDB4YjgsMHgwMCwweGZmLDB4MTAsMHgyZiwweGMwLDB4MGYsMHhjMCwweDIzLDB4YzQsMHg4MCwweDdmLDB4MTAsMHgzZSB9LAotICAxNiwgMHhiNzIwLCAwLCB7MHhjMCwweDBmLDB4YjEsMHgwMywweGRjLDB4MDAsMHhlNywweDAwLDB4M2YsMHg4MCwweDA2LDB4ZjEsMHg0MywweGZjLDB4MDAsMHhmZiB9LAotICAxNiwgMHhiNzMwLCAwLCB7MHgwOCwweDdkLDB4NTAsMHgwZSwweGUxLDB4MjMsMHhiNCwweDA4LDB4ZmUsMHgxMCwweDNmLDB4YzQsMHgwZiwweGYwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhiNzQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU0LDB4MDIsMHhjYywweDAwLDB4M2UsMHgwMCB9LAotICAxNiwgMHhiNzUwLCAwLCB7MHgyYywweGMwLDB4MDMsMHgwNCwweDAxLDB4Y2IsMHgwMCwweDMzLDB4NjAsMHgyYywweDkwLDB4MTMsMHhlOCwweDAwLDB4NzMsMHgwMCB9LAotICAxNiwgMHhiNzYwLCAwLCB7MHhiMiwweGMxLDB4MGYsMHhhMCwweDAzLDB4ZWMsMHg4MCwweGZiLDB4MjgsMHgzZSwweDU0LDB4MWYsMHhkMCwweDAzLDB4ZmUsMHgwMiB9LAotICAxNiwgMHhiNzcwLCAwLCB7MHhjOSwweDgwLDB4MzIsMHhjMCwweDBmLDB4YjAsMHgwMywweGNhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNzgwLCAwLCB7MHg0OCwweDExLDB4ODAsMHgwMCwweDg2LDB4MDAsMHgyZCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MTQsMHgwOCwweDg3LDB4MDAsMHgyOSB9LAotICAxNiwgMHhiNzkwLCAwLCB7MHg0MCwweDA4LDB4NzAsMHgwMiwweGRjLDB4MDAsMHhiNywweDAwLDB4MjEsMHhjMCwweDBiLDB4NjAsMHgwMiwweDVjLDB4YTAsMHg5NyB9LAotICAxNiwgMHhiN2EwLCAwLCB7MHgyMCwweDJkLDB4NDgsMHgwYiwweDUwLDB4MDIsMHhkYywweDEwLDB4OGQsMHgwMCwweDIxLDB4YzgsMHgwYiwweDcwLDB4MDIsMHhkMiB9LAotICAxNiwgMHhiN2IwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlmLDB4MDAsMHg4NSwweDgxLDB4MmMsMHg2MCB9LAotICAxNiwgMHhiN2MwLCAwLCB7MHgxOCwweDU4LDB4MDIsMHhkZSwweDIwLDB4YjcsMHg4MiwweDI4LDB4NjAsMHg1YSwweDc4LDB4NTIsMHhkZSwweDEwLDB4YmYsMHg4MCB9LAotICAxNiwgMHhiN2QwLCAwLCB7MHgyMSwweGUwLDB4NGIsMHg3OCwweDA2LDB4ZGUsMHg0MCwweGI3LDB4YTAsMHgyZCwweDY5LDB4OWIsMHg3OCwweDEyLDB4Y2UsMHgwMCB9LAotICAxNiwgMHhiN2UwLCAwLCB7MHg4NywweDgwLDB4ZTEsMHhlNCwweDBiLDB4NzgsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiN2YwLCAwLCB7MHg0OCwweDE0LDB4ZWUsMHgwMCwweDgzLDB4MDAsMHgyYywweGMyLDB4MDgsMHgzNiwweDAyLDB4OGMsMHgwOCwweDgzLDB4ZjAsMHg2OCB9LAotICAxNiwgMHhiODAwLCAwLCB7MHg0MCwweDBhLDB4M2UsMHgwMiwweGNkLDB4NDAsMHhiMywweDAwLDB4MjAsMHhlMCwweDBiLDB4MzIsMHgwNiwweDRjLDB4MDAsMHg5YiB9LAotICAxNiwgMHhiODEwLCAwLCB7MHgwMCwweDBjLDB4NDAsMHgwYiwweDMwLDB4MDIsMHhjZCwweDgwLDB4ODMsMHgwOCwweDIwLDB4YzAsMHgwYiwweGIxLDB4MDIsMHhkYSB9LAotICAxNiwgMHhiODIwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4MDAsMHhjZSwweDA4LDB4M2YsMHhiMCB9LAotICAxNiwgMHhiODMwLCAwLCB7MHgwYywweGU0LDB4MjMsMHhkYSwweDAyLDB4ZGUsMHg0MCwweGJiLDB4YjIsMHgwZSwweGUyLDB4NDMsMHhmYSwweDAwLDB4ZmUsMHgwMCB9LAotICAxNiwgMHhiODQwLCAwLCB7MHgzMywweDkwLDB4MGIsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgxLDB4MGIsMHhlMCwweDEzLDB4ZjksMHgwOCB9LAotICAxNiwgMHhiODUwLCAwLCB7MHhjZSwweDQwLDB4MzIsMHg4MCwweDBmLDB4YTgsMHgwMywweGZhLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiODYwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgyNCwweDk4LDB4MDgsMHgzYywweDA0LDB4MGYsMHgwMCwweDBiLDB4NjAsMHgwMCwweGY4LDB4NDAsMHgyZSB9LAotICAxNiwgMHhiODcwLCAwLCB7MHgwMywweDBkLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwNiwweDBiLDB4ODAsMHgwMywweGUwLDB4MDAsMHhkOCB9LAotICAxNiwgMHhiODgwLCAwLCB7MHgwMCwweDNjLDB4MDAsMHgwMywweDhjLDB4MjMsMHhlMSwweDAwLDB4ZjgsMHgwMCwweDdlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhiODkwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDIsMHhjOSwweDAwLDB4M2UsMHg0MCB9LAotICAxNiwgMHhiOGEwLCAwLCB7MHg4YywweDkwLDB4MDMsMHgyNSwweDAwLDB4ZTksMHg4MCwweDMyLDB4NDQsMHgwZiwweDk0LDB4MDIsMHhlNCwweDIwLDB4ZjksMHgwMCB9LAotICAxNiwgMHhiOGIwLCAwLCB7MHgzMiwweDcwLDB4MGYsMHg5YSwweDQzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHgxMCwweDMzLDB4MjQsMHgxMCB9LAotICAxNiwgMHhiOGMwLCAwLCB7MHhmOSwweDAxLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweDAyLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOGQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4ODIsMHgyZSwweDQwLDB4MjgsMHg5MCwweDAyLDB4MjQsMHg4MiwweDgxLDB4YzAsMHhhMiB9LAotICAxNiwgMHhiOGUwLCAwLCB7MHg3MCwweDBiLDB4OWMsMHgwMiwweGU0LDB4MDAsMHgzMSwweDQyLDB4YTIsMHg2MCwweDBiLDB4OTQsMHg4MiwweGU0LDB4MDAsMHhiOSB9LAotICAxNiwgMHhiOGYwLCAwLCB7MHgwMCwweDJhLDB4NDAsMHgwOCwweDk0LDB4YTIsMHgyNSwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MGEsMHgyMCB9LAotICAxNiwgMHhiOTAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDY0LDB4MmUsMHg0MCB9LAotICAxNiwgMHhiOTEwLCAwLCB7MHgwOCwweDkwLDB4NDIsMHhhNCwweDAwLDB4ODksMHg2MCwweDIyLDB4NDIsMHgwYiwweDkwLDB4MDIsMHhlNiwweDAwLDB4YjksMHg4MCB9LAotICAxNiwgMHhiOTIwLCAwLCB7MHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgwNCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MjgsMHg5MCwweDAyLDB4MjQsMHgwNCB9LAotICAxNiwgMHhiOTMwLCAwLCB7MHhiOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDBlLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOTQwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHg4MCwweDgxLDB4MDAsMHgyYywweGMxLDB4NDgsMHgxMCwweDAyLDB4YTQsMHgwMiwweDgxLDB4MDAsMHgyMCB9LAotICAxNiwgMHhiOTUwLCAwLCB7MHg0MCwweDgzLDB4MzQsMHgwMiwweGM0LDB4MDAsMHhiYiwweDAwLDB4MjAsMHhkMCwweDBiLDB4MTQsMHgwMiwweGM0LDB4ODAsMHhiMSB9LAotICAxNiwgMHhiOTYwLCAwLCB7MHgyMCwweGEwLDB4NjgsMHgxOCwweDE0LDB4MWEsMHgwZCwweDAwLDB4YjEsMHg0MCwweDJjLDB4NTAsMHgwYiwweDEwLDB4MDIsMHgwYSB9LAotICAxNiwgMHhiOTcwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgwMCB9LAotICAxNiwgMHhiOTgwLCAwLCB7MHg4YywweDgwLDB4MGIsMHhhMCwweDA0LDB4ZTgsMHgwMCwweDMyLDB4MDAsMHgwNywweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCB9LAotICAxNiwgMHhiOTkwLCAwLCB7MHgzMiwweDAwLDB4MWYsMHg4MCwweDAzLDB4YTEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCB9LAotICAxNiwgMHhiOWEwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOWIwLCAwLCB7MHg5OCwweDFkLDB4ZjQsMHg0NiwweGZkLDB4NDAsMHgzZiwweDUwLDB4MjMsMHhkNCwweDEzLDB4NzQsMHgwNCwweGY1LDB4MDIsMHgzZiB9LAotICAxNiwgMHhiOWMwLCAwLCB7MHg1MCwweDBmLDB4ZDQsMHgwMywweGZkLDB4MDAsMHhiZCwweDAwLDB4MmYsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmOSB9LAotICAxNiwgMHhiOWQwLCAwLCB7MHgxMCwweDNmLDB4NDQsMHgwZiwweGQ0LDB4MDMsMHhmNSwweDA4LDB4ZmQsMHgwNiwweDNlLDB4NTAsMHgwZiwweGQyLDB4ODMsMHhlNiB9LAotICAxNiwgMHhiOWUwLCAwLCB7MHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGU2LDB4NDAsMHhlZCwweDA0LDB4M2UsMHg0OCB9LAotICAxNiwgMHhiOWYwLCAwLCB7MHgwYywweGIyLDB4ODMsMHhmNCwweDAwLDB4YzEsMHgwMCwweDMyLDB4NDAsMHg4YywweGQwLDB4MDMsMHgzNCwweDAwLDB4ZmQsMHgwMCB9LAotICAxNiwgMHhiYTAwLCAwLCB7MHgzNywweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTYsMHgyMCwweGY5LDB4ODgsMHgzZCwweDYyLDB4MGMsMHhkOCwweDAzLDB4ZmUsMHgyNCB9LAotICAxNiwgMHhiYTEwLCAwLCB7MHhjMSwweDAwLDB4M2UsMHg3OCwweDBmLDB4ZDAsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYTIwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgwMCwweDg4LDB4NDAsMHgyZSwweDEwLDB4MDgsMHhjNCwweDIzLDB4YTAsMHgwOCwweDg4LDB4MDYsMHgyYSB9LAotICAxNiwgMHhiYTMwLCAwLCB7MHgxNCwweDA4LDB4ODAsMHgwMywweDYwLDB4MDQsMHhiOCwweDAwLDB4MjIsMHgwMCwweDBiLDB4ODAsMHgwMiwweGUyLDB4MDAsMHhiOCB9LAotICAxNiwgMHhiYTQwLCAwLCB7MHg4MCwweDJlLDB4MDAsMHgwOCwweDhjLDB4MDIsMHhlMywweDgwLDB4ODgsMHgwMiwweDJlLDB4MzgsMHgwYiwweDg4LDB4MDIsMHgwZSB9LAotICAxNiwgMHhiYTUwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4ODAsMHhhMSwweGMwLDB4MmQsMHg3MCB9LAotICAxNiwgMHhiYTYwLCAwLCB7MHgwOCwweDUwLDB4NDIsMHhjNCwweDAwLDB4YTksMHgwMCwweDIwLDB4ZTAsMHgyYSwweDEwLDB4MGEsMHgwNCwweDEwLDB4YjEsMHgwMCB9LAotICAxNiwgMHhiYTcwLCAwLCB7MHgyNCwweDQwLDB4NGIsMHgxMCwweDA2LDB4YzQsMHgyMCwweGIxLDB4MDgsMHg2ZSwweDQwLDB4MGIsMHgxNiwweDgyLDB4YzQsMHgyMCB9LAotICAxNiwgMHhiYTgwLCAwLCB7MHg4MSwweDAwLDB4MmMsMHg1MCwweDBiLDB4OTIsMHg4MiwweDUyLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYTkwLCAwLCB7MHgxOCwweDExLDB4YTQsMHgwMCwweGE5LDB4MDEsMHgyZSwweDQwLDB4MjgsMHhkMCwweDIwLDB4YTQsMHgwNCwweGE5LDB4MDAsMHgyYSB9LAotICAxNiwgMHhiYWEwLCAwLCB7MHg0MCwweDFhLDB4YjAsMHgxMiwweDI0LDB4MDAsMHhiOSwweDBjLDB4MjIsMHg0MiwweDBiLDB4OTQsMHgwMiwweGU0LDB4MDAsMHhiOSB9LAotICAxNiwgMHhiYWIwLCAwLCB7MHgwMCwweDZlLDB4NDAsMHgwYiwweDk2LDB4MDIsMHhlNCwweDExLDB4ODksMHgyMCwweDZlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHg0NiB9LAotICAxNiwgMHhiYWMwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4YzAsMHhhOSwweGMwLDB4M2UsMHg1MCB9LAotICAxNiwgMHhiYWQwLCAwLCB7MHgwOCwweDljLDB4ODMsMHhlNCwweDAyLDB4ZTksMHgwMCwweGIyLDB4NDAsMHgyYSwweDkyLDB4MTIsMHgyNiwweDQwLDB4ZjksMHg0MCB9LAotICAxNiwgMHhiYWUwLCAwLCB7MHgzNiwweDcwLDB4MGYsMHg5NCwweDAzLDB4ZTQsMHgwNCwweGY5LDB4MDEsMHgzYywweDQwLDB4MGYsMHg5OCwweDAzLDB4ZTYsMHgwMiB9LAotICAxNiwgMHhiYWYwLCAwLCB7MHhjOSwweDIyLDB4M2UsMHg0MCwweDBmLDB4MTAsMHgwMiwweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYjAwLCAwLCB7MHgyOCwweDAxLDB4ODYsMHgwNCwweGQ5LDB4NDAsMHgxYywweDQwLDB4MGYsMHg5MiwweDIzLDB4YTQsMHhiMCwweGRiLDB4MDQsMHgzYyB9LAotICAxNiwgMHhiYjEwLCAwLCB7MHhjMCwweDBkLDB4OWEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0NCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhiYjIwLCAwLCB7MHgwMCwweDNlLDB4NDIsMHgyYywweDkwLDB4MjMsMHhlNCwweDgwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHg4ZiwweDkyLDB4MDMsMHg5MiB9LAotICAxNiwgMHhiYjMwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGExLDB4MDAsMHhjOCwweDIwLDB4MzIsMHgwMCB9LAotICAxNiwgMHhiYjQwLCAwLCB7MHg0YywweGMwLDB4OGIsMHgyMCwweDAyLDB4YzgsMHgzMSwweDMyLDB4MjAsMHgyZCwweDg0LDB4MDMsMHhlMSwweDA0LDB4ZjgsMHg0OCB9LAotICAxNiwgMHhiYjUwLCAwLCB7MHhiYSwweDAwLDB4MGYsMHg4OSwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4MGQsMHg4MSwweDEzLDB4MjAsMHgxMCB9LAotICAxNiwgMHhiYjYwLCAwLCB7MHhmOCwweDAwLDB4M2EsMHgwMCwweDBmLDB4ODEsMHgyMywweDAyLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYjcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDBlLDB4NDAsMHgyMiwweDgwLDB4MjgsMHhhNCwweDAyLDB4MTksMHgwMCwweDUyLDB4ODAsMHhhMiB9LAotICAxNiwgMHhiYjgwLCAwLCB7MHg4MCwweDRkLDB4ZWQsMHg4MiwweGU4LDB4MDAsMHhiNiwweDQyLDB4MjMsMHhiZCwweDBiLDB4ZTgsMHgwMiwweGU4LDB4MDQsMHhkYSB9LAotICAxNiwgMHhiYjkwLCAwLCB7MHgwMCwweDM3LDB4ODAsMHgwOCwweGUwLDB4MDIsMHgzYSwweDIwLDB4YmEsMHgwMCwweDIyLDB4ODAsMHgwYiwweGE4LDB4MGEsMHgwYSB9LAotICAxNiwgMHhiYmEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDgwLDB4NjAsMHhjMCB9LAotICAxNiwgMHhiYmIwLCAwLCB7MHgwOCwweDI5LDB4MDIsMHgwZCwweDAwLDB4OTIsMHg0MCwweDI0LDB4YzAsMHgwOCwweGI0LDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCB9LAotICAxNiwgMHhiYmMwLCAwLCB7MHg2OCwweGUwLDB4MWIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDkzLDB4MDEsMHgyNCwweGMwLDB4NjksMHgzOCwweDAyLDB4NmMsMHgwMCB9LAotICAxNiwgMHhiYmQwLCAwLCB7MHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYmUwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHg0MCwweDgzLDB4YzAsMHgyMCwweDQwLDB4MDgsMHgyOCwweDA2LDB4OWMsMHgxOCwweDljLDB4MDIsMHgyNCB9LAotICAxNiwgMHhiYmYwLCAwLCB7MHhjMCwweDA5LDB4NzAsMHgwMiwweGQ0LDB4MDAsMHhiNywweDAwLDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGNlLDB4NDAsMHg5NyB9LAotICAxNiwgMHhiYzAwLCAwLCB7MHhiMCwweDI1LDB4NDAsMHgwOCwweDc4LDB4MWEsMHg1OCwweDAwLDB4YmYsMHhhMiwweDY1LDB4YzgsMHgwYiwweDc4LDB4MDIsMHgyMCB9LAotICAxNiwgMHhiYzEwLCAwLCB7MHgwNCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDBlLDB4MDIsMHg4NywweDgwLDB4YjEsMHhhMCB9LAotICAxNiwgMHhiYzIwLCAwLCB7MHgwYywweDY4LDB4MDMsMHgxYSwweDA4LDB4ZDYsMHg5MiwweDM1LDB4ZTQsMHgyOCwweDc4LDB4NDIsMHhkNiwweDEwLDB4ZjUsMHg4MCB9LAotICAxNiwgMHhiYzMwLCAwLCB7MHgzOSwweGEwLDB4MGYsMHg3OCwweDIzLDB4ZGUsMHgzMCwweGQzLDB4YTIsMHgzNSwweGEwLDB4NGQsMHhlOCwweDAzLDB4NWUsMHgwMCB9LAotICAxNiwgMHhiYzQwLCAwLCB7MHhmNywweGQwLDB4M2QsMHhmOCwweDBmLDB4ZjAsMHgwMywweDIyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYzUwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHgwMCwweGZiLDB4MDQsMHgzZSwweDAwLDB4MGIsMHhhMCwweDAzLDB4NDgsMHgwNCwweGZhLDB4NDEsMHgzYSB9LAotICAxNiwgMHhiYzYwLCAwLCB7MHg1MCwweDBmLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGVkLDB4ODgsMHhmYiB9LAotICAxNiwgMHhiYzcwLCAwLCB7MHg0ZCwweDNlLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhiYywweDA4LDB4ZmIsMHgyMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhiYzgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhkYywweDgwLDB4YjMsMHhlMCB9LAotICAxNiwgMHhiYzkwLCAwLCB7MHgwYywweGQ4LDB4MDMsMHhjZSwweDAwLDB4YzgsMHhhMCwweDMxLDB4YTAsMHg4ZCwweGU5LDB4MDMsMHhiZSwweDAwLDB4YjIsMHg4MCB9LAotICAxNiwgMHhiY2EwLCAwLCB7MHgzMywweGUwLDB4MGMsMHhlOCwweDQzLDB4N2UsMHgwNCwweDBmLDB4ODEsMHgzMSwweGU0LDB4MGMsMHhkOCwweDAzLDB4ZjYsMHgwMCB9LAotICAxNiwgMHhiY2IwLCAwLCB7MHhmZiwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZjgsMHgwMywweDAwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiY2MwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGI0LDB4NDAsMHgzNSwweDQwLDB4MDgsMHg1MCwweDgyLDB4ZGUsMHg4MCwweGQ0LDB4OTAsMHgyMSB9LAotICAxNiwgMHhiY2QwLCAwLCB7MHhlMCwweDBkLDB4NTEsMHgwMiwweGQ0LDB4NDAsMHhiNiwweGIwLDB4MmIsMHg5MCwweDBlLDB4ZTUsMHgwMiwweDljLDB4NDAsMHhkNyB9LAotICAxNiwgMHhiY2UwLCAwLCB7MHgyMiwweDE5LDB4NWMsMHgwZCwweDcwLDB4MDIsMHhkOCwweDAwLDB4YjcsMHgyMCwweDJkLDB4YzAsMHgwYiwweGYwLDB4MDMsMHg2YSB9LAotICAxNiwgMHhiY2YwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg5MywweDEwLDB4MjEsMHg4MCB9LAotICAxNiwgMHhiZDAwLCAwLCB7MHgwOCwweDU4LDB4MDIsMHhkYywweGMwLDB4OTQsMHgwMCwweDIzLDB4ZDAsMHgwOCwweDcwLDB4YTAsMHhkNCwweDIwLDB4YjUsMHgwMiB9LAotICAxNiwgMHhiZDEwLCAwLCB7MHgyOSwweDgwLDB4MDksMHg2MCwweDgyLDB4MGMsMHgwMCwweDg3LDB4MDIsMHgyNSwweGMwLDB4MTksMHg0MCwweDAyLDB4ZDQsMHgwMCB9LAotICAxNiwgMHhiZDIwLCAwLCB7MHhiNywweDAwLDB4NmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZDMwLCAwLCB7MHgyMCwweDE0LDB4ZWMsMHgwMCwweGIzLDB4YzAsMHgyMCwweDAxLDB4NDgsMHgxOCwweDAyLDB4Y2MsMHgwMiwweDgxLDB4NDQsMHhhMCB9LAotICAxNiwgMHhiZDQwLCAwLCB7MHhjMCwweDg5LDB4MzgsMHgwMiwweGM3LDB4ODAsMHhiMSwweDAwLDB4MmMsMHgwOSwweDRhLDB4MDAsMHg2MiwweGFjLDB4MDksMHg5MyB9LAotICAxNiwgMHhiZDUwLCAwLCB7MHgwMSwweDI4LDB4NDAsMHgxOSwweDMwLDB4MDIsMHhjZCwweDEwLDB4YjMsMHg5MCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjOCB9LAotICAxNiwgMHhiZDYwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MjAsMHhkYiwweDYyLDB4MjIsMHhlMCB9LAotICAxNiwgMHhiZDcwLCAwLCB7MHg2YywweGEwLDB4MDMsMHhlNCwweDAwLDB4OTgsMHgwMCwweDMyLDB4YzAsMHhlYywweDk4LDB4MjMsMHhhZSwweDA4LDB4ZmIsMHgwOCB9LAotICAxNiwgMHhiZDgwLCAwLCB7MHgzYSwweDc4LDB4MDksMHg5MCwweDAzLDB4N2MsMHgxMCwweGNmLDB4MDAsMHgyNiwweDQwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCB9LAotICAxNiwgMHhiZDkwLCAwLCB7MHhmZiwweDgwLDB4M2YsMHhjMCwweDBmLDB4OTAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZGEwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgyMCwweGZiLDB4NDgsMHgzYywweDYxLDB4MGYsMHhhMCwweDQzLDB4ZWQsMHgwMCwweGY4LDB4MjQsMHgzZSB9LAotICAxNiwgMHhiZGIwLCAwLCB7MHg1MCwweDBmLDB4OTAsMHg4MywweGU0LDB4MDAsMHhmYiwweDAwLDB4M2EsMHg1MCwweDBmLDB4ODAsMHg0MywweGVjLDB4MDgsMHhmYiB9LAotICAxNiwgMHhiZGMwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwZiwweDQwLDB4MDMsMHhmMCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzEsMHgwZiwweDkwLDB4MDMsMHg2MCB9LAotICAxNiwgMHhiZGQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhkZCwweGEwLDB4MzIsMHg4MCB9LAotICAxNiwgMHhiZGUwLCAwLCB7MHgwYywweGUwLDB4MDEsMHhmYywweDAwLDB4ZGMsMHg5MSwweDM5LDB4YzAsMHgzYywweDQwLDB4MDMsMHgzNCwweDAwLDB4ZmYsMHg4MCB9LAotICAxNiwgMHhiZGYwLCAwLCB7MHgzZiwweDAwLDB4MGYsMHhkMCwweDA3LDB4ZmMsMHgwMCwweGNiLDB4MDAsMHgzZCwweDQwLDB4MGMsMHhlMCwweDAzLDB4MzgsMHgyMCB9LAotICAxNiwgMHhiZTAwLCAwLCB7MHhjZiwweDAyLDB4M2QsMHhjMCwweDBjLDB4ZDAsMHgwMywweDA4LDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZTEwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDAxLDB4NDAsMHgyMiwweDAwLDB4MjgsMHhhMCwweDAyLDB4Y2UsMHg4NiwweDgzLDB4NjQsMHgyMiB9LAotICAxNiwgMHhiZTIwLCAwLCB7MHhmNCwweDA4LDB4OGMsMHgwZiwweDY0LDB4MDAsMHhiYiwweDEwLDB4MmUsMHg2MCwweDBiLDB4OWMsMHgwMywweGFjLDB4MDEsMHhkYiB9LAotICAxNiwgMHhiZTMwLCAwLCB7MHgwMCwweDNlLDB4NjAsMHgwOCwweDhmLDB4MDIsMHgyMywweDQwLDB4OGIsMHgwMCwweDNhLDB4YzAsMHgwZCwweDEwLDB4NDMsMHg2OCB9LAotICAxNiwgMHhiZTQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5OSwweDAwLDB4YTIsMHhjMCB9LAotICAxNiwgMHhiZTUwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHhhNiwweDA3LDB4OTgsMHgwMCwweDAyLDB4YzIsMHg0OCwweDg4LDB4MDIsMHgyYywweDAwLDB4YmEsMHgwMiB9LAotICAxNiwgMHhiZTYwLCAwLCB7MHg2ZSwweDYwLDB4MGEsMHg5OCwweDAyLDB4ZWMsMHgwMCwweDhiLDB4MDEsMHgyZSwweDYwLDB4MDgsMHg5MCwweDAyLDB4MDUsMHgwMCB9LAotICAxNiwgMHhiZTcwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YjEsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZTgwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgxMCwweDgxLDB4MDAsMHgyMCwweDQwLDB4MjgsMHgxMCwweDI2LDB4Y2MsMHg4MCwweDgwLDB4MjAsMHhhMCB9LAotICAxNiwgMHhiZTkwLCAwLCB7MHhjYywweDE4LDB4MTQsMHg0MiwweDA0LDB4MDAsMHhiMiwweDIwLDB4NmMsMHg0MCwweDBiLDB4MDAsMHgwMiwweDhjLDB4MDAsMHg4MyB9LAotICAxNiwgMHhiZWEwLCAwLCB7MHgwMCwweDI4LDB4NDAsMHgyOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODMsMHgwMCwweDI4LDB4YzAsMHgwOSwweGIwLDB4MDIsMHg0MiB9LAotICAxNiwgMHhiZWIwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhkOSwweDAwLDB4MjIsMHg4MCB9LAotICAxNiwgMHhiZWMwLCAwLCB7MHgwYywweDkwLDB4MDMsMHhhYywweDgwLDB4ZGEsMHgyOSwweDJhLDB4ZDIsMHgyOCwweDgwLDB4MDIsMHgyNCwweDAwLDB4ZmIsMHgyMCB9LAotICAxNiwgMHhiZWQwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg5MCwweDAyLDB4ZmMsMHgwMCwweDhmLDB4MDAsMHgyZSwweDQwLDB4MGMsMHg4MCwweDBiLDB4MjAsMHgwMiB9LAotICAxNiwgMHhiZWUwLCAwLCB7MHhjZiwweDAwLDB4M2UsMHhjMCwweDBjLDB4YjAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZWYwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwMCwweGZkLDB4MDAsMHgzZiwweDAwLDB4MGYsMHhkMCwweDYzLDB4ZmMsMHg0OSwweGY1LDB4MDAsMHgzZSB9LAotICAxNiwgMHhiZjAwLCAwLCB7MHhjMCwweDBiLDB4YzAsMHgwMSwweGY0LDB4MDAsMHg3ZiwweDQwLDB4M2YsMHg0MCwweDFmLDB4ZDAsMHgwMywweGJjLDB4MDAsMHhmZiB9LAotICAxNiwgMHhiZjEwLCAwLCB7MHgwMCwweDNmLDB4NDAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDAwLDB4ZmYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhiZjIwLCAwLCB7MHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMSwweGYyLDB4NDAsMHhlYywweGEwLDB4M2YsMHhlMCB9LAotICAxNiwgMHhiZjMwLCAwLCB7MHgwZCwweDQ4LDB4MDMsMHg3ZCwweDgwLDB4ZjQsMHg4MCwweDMzLDB4NmMsMHgwZSwweGM4LDB4MDMsMHgzMiwweDAwLDB4ZGQsMHg5MCB9LAotICAxNiwgMHhiZjQwLCAwLCB7MHgzYiwweGEwLDB4MmQsMHhmMCwweDAzLDB4ZmMsMHhjMCwweGZmLDB4MDAsMHgzYiwweGUwLDB4OGUsMHhmMCwweDAzLDB4M2MsMHgwNCB9LAotICAxNiwgMHhiZjUwLCAwLCB7MHhlYywweDYwLDB4MzEsMHgwMCwweDBjLDB4ZjAsMHgwMywweGIwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZjYwLCAwLCB7MHg4MCwweDEwLDB4ZWMsMHgwMCwweGQ5LDB4YzEsMHgyZSwweGUxLDB4MGQsMHg4OCwweDAyLDB4M2MsMHg4MCwweGY4LDB4ODAsMHgzNiB9LAotICAxNiwgMHhiZjcwLCAwLCB7MHg3ZCwweDE4LDB4YTAsMHgwMiwweDI4LDB4YjAsMHhlYSwweDIwLDB4MjIsMHgyMCwweDA4LDB4NzcsMHgwMiwweGZkLDB4NTAsMHhiYiB9LAotICAxNiwgMHhiZjgwLCAwLCB7MHg4MCwweDIyLDB4NDAsMHgwYiwweGY0LDB4NDIsMHgzZCwweDgwLDB4ODgsMHgzMSwweDIyLDB4MTIsMHgwOCwweGY2LDB4MDIsMHhlMCB9LAotICAxNiwgMHhiZjkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg4MCwweDExLDB4MmUsMHhjMSB9LAotICAxNiwgMHhiZmEwLCAwLCB7MHgwOCwweDAwLDB4MDIsMHg0ZCwweDgwLDB4YjgsMHgwMCwweDIwLDB4MDAsMHgwYSwweDAyLDB4ODIsMHgwMCwweDAwLDB4OTksMHgyMCB9LAotICAxNiwgMHhiZmIwLCAwLCB7MHgyMiwweGMwLDB4MDksMHgzMCwweDgyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyOCwweGNhLDB4MGIsMHgzNCwweDgyLDB4MGQsMHgyMCB9LAotICAxNiwgMHhiZmMwLCAwLCB7MHg4MCwweDAwLDB4YTAsMHg4YywweDA4LDB4MzQsMHg4MiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZmQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHg0MCwweDk5LDB4ODAsMHgyZSwweGMyLDB4MDksMHg5NCwweDAyLDB4MmMsMHgwMCwweGE5LDB4ODAsMHgyNiB9LAotICAxNiwgMHhiZmUwLCAwLCB7MHg2MCwweDA4LDB4MzgsMHg0MiwweDIyLDB4MjAsMHhiYSwweDQxLDB4NjIsMHg0NiwweDNiLDB4YjAsMHgwMiwweGVjLDB4MDEsMHhiYiB9LAotICAxNiwgMHhiZmYwLCAwLCB7MHg4MCwweDIyLDB4NDAsMHgwYiwweGIwLDB4NDYsMHgwYywweDE4LDB4ODgsMHhjMCwweDIyLDB4MjIsMHgwOCwweGIwLDB4MDYsMHhmMCB9LAotICAxNiwgMHhjMDAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGNjLDB4MDAsMHhjOSwweDgxLDB4M2MsMHhjMSB9LAotICAxNiwgMHhjMDEwLCAwLCB7MHgwYywweGE5LDB4MjMsMHg2YywweDAwLDB4YjIsMHg4MCwweDMyLDB4NzgsMHgwYSwweDhhLDB4MGIsMHgyNiwweDAwLDB4OTksMHgwMSB9LAotICAxNiwgMHhjMDIwLCAwLCB7MHgzMCwweGUwLDB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGI5LDB4MDAsMHgzYSwweGMwLDB4MWUsMHhiMCwweDAzLDB4MmMsMHgwMCB9LAotICAxNiwgMHhjMDMwLCAwLCB7MHhjYiwweDgwLDB4MzIsMHg2MSwweDBjLDB4YjAsMHgxMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMDQwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgxMCwweGRkLDB4MDAsMHgzZiwweGMyLDB4MGYsMHhlOCwweDAzLDB4YWMsMHgwMCwweGZlLDB4MDAsMHgzZCB9LAotICAxNiwgMHhjMDUwLCAwLCB7MHg0MCwweDBmLDB4YzAsMHg0MywweGY4LDB4MTAsMHhlZiwweDE0LDB4YjcsMHhlMCwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmNSB9LAotICAxNiwgMHhjMDYwLCAwLCB7MHgwMiwweDNmLDB4NDQsMHg0ZiwweGIwLDB4NGIsMHhmYywweDAyLDB4ZDQsMHgwNCwweDNkLDB4NDAsMHgyZiwweGYwLDB4MDMsMHhmOCB9LAotICAxNiwgMHhjMDcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhmOSwweDA4LDB4M2UsMHg2MCB9LAotICAxNiwgMHhjMDgwLCAwLCB7MHgwZCwweGEwLDB4MDMsMHhhYywweDAwLDB4ZTgsMHg1MCwweDMyLDB4MDAsMHgwYywweDg0LDB4MDMsMHhhNSwweDAwLDB4ZTksMHgwMCB9LAotICAxNiwgMHhjMDkwLCAwLCB7MHgzYSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4MmMsMHgwMCwweGY5LDB4MDAsMHgzYSwweGMwLDB4MGYsMHgzMCwweDAzLDB4MmMsMHgwMCB9LAotICAxNiwgMHhjMGEwLCAwLCB7MHhjYiwweDQ0LDB4M2UsMHhkNCwweDBlLDB4YjAsMHgwMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMGIwLCAwLCB7MHhjOCwweDA1LDB4MmMsMHgwOCwweGI5LDB4ODAsMHgyZSwweGMwLDB4MGEsMHgzMCwweDQyLDB4M2MsMHgwMCwweDg5LDB4MDQsMHg3NiB9LAotICAxNiwgMHhjMGMwLCAwLCB7MHg2MCwweDA4LDB4OTAsMHg2MiwweDIwLDB4MDAsMHg4MiwweDA0LDB4MjIsMHhkMCwweDA4LDB4ZjAsMHg0MywweDdjLDB4MDAsMHhiYiB9LAotICAxNiwgMHhjMGQwLCAwLCB7MHg4MiwweDIyLDB4NDAsMHgwYiwweGYwLDB4NDIsMHgzYywweDAwLDB4OGEsMHhjMCwweDJlLDB4YzEsMHgwOCwweGYwLDB4MDIsMHhmMiB9LAotICAxNiwgMHhjMGUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MTAsMHhiMiwweGQwLDB4MmMsMHhjMCB9LAotICAxNiwgMHhjMGYwLCAwLCB7MHgyOSwweDE4LDB4MDIsMHg4YywweDA0LDB4YTEsMHgwMCwweDI0LDB4OWMsMHgwOCwweDEwLDB4MDIsMHg4MCwweDAwLDB4YTEsMHgwMSB9LAotICAxNiwgMHhjMTAwLCAwLCB7MHgwYywweGMxLDB4MmIsMHgzMCwweDUyLDB4OGMsMHgwNCwweGIzLDB4MDEsMHgyOCwweDQwLDB4NGIsMHgzMCwweDAyLDB4NGMsMHgwMCB9LAotICAxNiwgMHhjMTEwLCAwLCB7MHg5MCwweDIwLDB4MmMsMHgyMCwweDBhLDB4MzAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMTIwLCAwLCB7MHgyMCwweDQxLDB4MWUsMHgwMCwweGI3LDB4YTIsMHgyNSwweGU4LDB4OGEsMHg2OCwweDAyLDB4MWUsMHgwMCwweDg1LDB4ODAsMHgyNSB9LAotICAxNiwgMHhjMTMwLCAwLCB7MHg4MCwweDg4LDB4ZTgsMHgwMiwweDNlLDB4MDAsMHg4NSwweDgwLDB4MmYsMHhlNCwweDI4LDB4NzgsMHgwMiwweGRlLDB4MDAsMHhiNyB9LAotICAxNiwgMHhjMTQwLCAwLCB7MHg4MCwweDYxLDB4ZTAsMHgwMywweDc4LDB4MDIsMHg1ZSwweDgyLDB4YjcsMHg4MiwweDJkLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHhjOCB9LAotICAxNiwgMHhjMTUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBkLDB4MDAsMHhmMCwweDEwLDB4M2MsMHg4MCB9LAotICAxNiwgMHhjMTYwLCAwLCB7MHgwZCwweDEwLDB4ODMsMHg4YywweDAwLDB4ZTIsMHg1MCwweDI2LDB4MDQsMHgwYywweDExLDB4MDMsMHg4OCwweDQwLDB4ZWIsMHgwMCB9LAotICAxNiwgMHhjMTcwLCAwLCB7MHgzYywweGM0LDB4MGYsMHgzMCwweDAzLDB4OGMsMHgwMCwweGYzLDB4MDgsMHgzOCwweDQwLDB4MDcsMHgzMCwweDAzLDB4NmUsMHg0MCB9LAotICAxNiwgMHhjMTgwLCAwLCB7MHhkMCwweDA4LDB4M2MsMHg4OCwweDBlLDB4MzAsMHg0MywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMTkwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGZiLDB4MzQsMHgzYywweGM5LDB4NGUsMHhiMCwweDIzLDB4ZWQsMHgyMCwweGZiLDB4MDQsMHgzZiB9LAotICAxNiwgMHhjMWEwLCAwLCB7MHhjOCwweDhmLDB4NzAsMHg1MywweDRjLDB4MDAsMHhlYiwweDEwLDB4MzEsMHhjNSwweDBlLDB4ZjQsMHgwMywweDZkLDB4MDAsMHhmMyB9LAotICAxNiwgMHhjMWIwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweGY0LDB4MGIsMHhiYywweDAwLDB4Y2QsMHgwMCwweDNmLDB4YzAsMHgwZiwweGY0LDB4ODMsMHhkMCB9LAotICAxNiwgMHhjMWMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGNlLDB4MDQsMHhjOSwweDA0LDB4YjAsMHhjMSB9LAotICAxNiwgMHhjMWQwLCAwLCB7MHgwZiwweDk4LDB4MTMsMHg2YywweDkwLDB4Y2IsMHgwMiwweDNlLDB4YzAsMHg0ZiwweGIwLDB4NjMsMHhlNCwweDAwLDB4ZjEsMHg4MCB9LAotICAxNiwgMHhjMWUwLCAwLCB7MHgxMiwweGMwLDB4MGMsMHhiNSwweDAzLDB4ZWMsMHhjMCwweGNmLDB4ODMsMHgzMiwweDQwLDB4MGYsMHhiMywweDIzLDB4MmQsMHhhNCB9LAotICAxNiwgMHhjMWYwLCAwLCB7MHhmYiwweDAwLDB4M2UsMHgwMCwweDBmLDB4YjQsMHgwMywweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMjAwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwLDB4MmQsMHg2MCwweDAyLDB4MWMsMHgwMCwweGQ3LDB4MDAsMHgzOSB9LAotICAxNiwgMHhjMjEwLCAwLCB7MHhjMCwweDBiLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhiNSwweDAwLDB4MjEsMHhjMCwweDJhLDB4NzAsMHgxMiwweGNjLDB4ODAsMHg4NyB9LAotICAxNiwgMHhjMjIwLCAwLCB7MHgwMCwweDM1LDB4YzAsMHgwYiwweDcyLDB4NTIsMHgxYywweDAwLDB4YjcsMHgwMCwweDJkLDB4NDEsMHgwYiwweDMyLDB4MDIsMHgxMiB9LAotICAxNiwgMHhjMjMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweGJlLDB4MDAsMHg4MSwweGMwLDB4MjMsMHgyMCB9LAotICAxNiwgMHhjMjQwLCAwLCB7MHgwYiwweGQ4LDB4MDIsMHg1ZSwweDAwLDB4MDYsMHhjMCwweDJkLDB4YTAsMHgwYiwweDdjLDB4MTIsMHhkZSwweDA4LDB4YmYsMHg4MCB9LAotICAxNiwgMHhjMjUwLCAwLCB7MHhhMSwweGUyLDB4MmEsMHg3YSwweDAyLDB4ZGUsMHgwMCwweDkzLDB4ODAsMHgyNSwweDYwLDB4MGIsMHg3OCwweDFlLDB4NWUsMHg1MCB9LAotICAxNiwgMHhjMjYwLCAwLCB7MHhiNywweDgwLDB4MmQsMHhhMCwweDBiLDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMjcwLCAwLCB7MHg0OCwweDE0LDB4Y2UsMHgwMCwweDgzLDB4NjAsMHgyMCwweGMwLDB4MDksMHgzMSwweDAyLDB4MmMsMHgwMCwweDkzLDB4MDAsMHgyOCB9LAotICAxNiwgMHhjMjgwLCAwLCB7MHhjMCwweDFiLDB4YjAsMHgwNiwweGNjLDB4ODAsMHhiMywweDQ4LDB4MjAsMHhmMCwweDBhLDB4MzAsMHgwMiwweGVjLDB4MDAsMHg5MyB9LAotICAxNiwgMHhjMjkwLCAwLCB7MHg4MCwweDI0LDB4YzAsMHgwYiwweGIwLDB4MDIsMHg0YywweDEwLDB4YjMsMHhjOCwweDJjLDB4ZDIsMHg4YiwweDMwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhjMmEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGJiLDB4MDAsMHhjNiwweGM0LDB4MzEsMHg4MSB9LAotICAxNiwgMHhjMmIwLCAwLCB7MHgwZiwweGUwLDB4MDMsMHg2OCwweDAwLDB4Y2UsMHg4MCwweDNmLDB4YTIsMHgwYiwweGU4LDB4MDMsMHhmOSwweDAwLDB4ZmUsMHg0MCB9LAotICAxNiwgMHhjMmMwLCAwLCB7MHgzMSwweDgwLDB4NmUsMHhhMCwweDA3LDB4ZTgsMHgwMCwweGRhLDB4MDAsMHgyNiwweDgxLDB4MGYsMHhhMCwweDAyLDB4NjgsMHgwMSB9LAotICAxNiwgMHhjMmQwLCAwLCB7MHhmNiwweGUwLDB4M2QsMHg5MiwweDBmLDB4YTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMmUwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHhjMiwweGY4LDB4MDQsMHgzZSwweDE0LDB4MGYsMHg4MCwweDEzLDB4ZTAsMHgxMCwweGY4LDB4MDEsMHgzZSB9LAotICAxNiwgMHhjMmYwLCAwLCB7MHgxMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MDAsMHhiOCwweDAwLDB4M2UsMHgwMCwweDQ3LDB4ODAsMHgwMywweGUwLDB4MDIsMHhlOCB9LAotICAxNiwgMHhjMzAwLCAwLCB7MHgxMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDcsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAsMHgwZiwweDgwLDB4MGIsMHhkMiB9LAotICAxNiwgMHhjMzEwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhmOSwweDAxLDB4MzIsMHg0MCB9LAotICAxNiwgMHhjMzIwLCAwLCB7MHg4YywweDkwLDB4MDMsMHhlNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NDIsMHgwZiwweDkwLDB4MDMsMHhhNCwweDAwLDB4YzksMHgwMCB9LAotICAxNiwgMHhjMzMwLCAwLCB7MHgzZSwweDQyLDB4MGQsMHg5MCwweDAzLDB4NjQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDBiLDB4NjQsMHgwMCB9LAotICAxNiwgMHhjMzQwLCAwLCB7MHhmOSwweDkwLDB4MzIsMHg0MSwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMzUwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4YzgsMHhhMiwweDYwLDB4MGEsMHg5MiwweDAyLDB4ZTQsMHgwMCwweDg5LDB4NDAsMHgyZSB9LAotICAxNiwgMHhjMzYwLCAwLCB7MHg1OCwweDBiLDB4OTAsMHgwMiwweDA0LDB4MDAsMHhkOSwweDAwLDB4MmUsMHg0MiwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDQsMHg4OSB9LAotICAxNiwgMHhjMzcwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDYsMHgyNCwweDA0LDB4YjksMHgwOCwweDJhLDB4NDAsMHg0OCwweDkwLDB4MTIsMHgyMCB9LAotICAxNiwgMHhjMzgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDEwLDB4MjIsMHg0NCB9LAotICAxNiwgMHhjMzkwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDUsMHg4YiwweDkwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCB9LAotICAxNiwgMHhjM2EwLCAwLCB7MHgyYSwweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwMCwweDk5LDB4ODAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDI2LDB4MjQsMHgwMCB9LAotICAxNiwgMHhjM2IwLCAwLCB7MHhiOSwweDAxLDB4MjIsMHg3MCwweDA5LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjM2MwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHgwOCwweGIxLDB4MjAsMHgyMCwweDQwLDB4MGEsMHgxMCwweDAyLDB4YzQsMHg4MCwweDgzLDB4MDAsMHgyYyB9LAotICAxNiwgMHhjM2QwLCAwLCB7MHg1MCwweDRiLDB4MTAsMHgwMiwweDI0LDB4MDAsMHg5MSwweDAwLDB4MmUsMHg0MCwweDA4LDB4MTIsMHgwMiwweGM0LDB4ODEsMHg4MSB9LAotICAxNiwgMHhjM2UwLCAwLCB7MHhhMiwweDZjLDB4NDAsMHgwYiwweDEyLDB4MDIsMHgwNCwweDgwLDB4YjksMHgyMCwweDJhLDB4NDgsMHgyOSwweDEyLDB4MDIsMHgwMiB9LAotICAxNiwgMHhjM2YwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhmOCwweDAwLDB4MzIsMHg4MCB9LAotICAxNiwgMHhjNDAwLCAwLCB7MHgwOCwweDgwLDB4MDMsMHhlMSwweDQyLDB4YzgsMHgwMCwweDMyLDB4MDAsMHgxZiwweDg1LDB4MDMsMHhhMSwweDQwLDB4YzgsMHg1MCB9LAotICAxNiwgMHhjNDEwLCAwLCB7MHgzYSwweDAwLDB4OGQsMHg4NSwweDAzLDB4NjEsMHg0MCwweGQ4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHgwNSwweDAzLDB4MjEsMHg0MCB9LAotICAxNiwgMHhjNDIwLCAwLCB7MHhmOCwweDUwLDB4MzIsMHgxNCwweDBkLDB4ODUsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNDMwLCAwLCB7MHg5OCwweDFkLDB4ZjQsMHgwNCwweGZkLDB4MTAsMHgzZiwweDQwLDB4MGYsMHg1MCwweDAzLDB4YzQsMHg0MCwweGZkLDB4MDAsMHgzZiB9LAotICAxNiwgMHhjNDQwLCAwLCB7MHg1MSwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmZiwweDAxLDB4M2QsMHg0MCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCB9LAotICAxNiwgMHhjNDUwLCAwLCB7MHgxMCwweDNmLDB4NGEsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZmQsMHgxMCwweDNmLDB4NDQsMHgwZSwweDkxLDB4MDMsMHhlNiB9LAotICAxNiwgMHhjNDYwLCAwLCB7MHgwMiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGM1LDB4MDAsMHhjZCwweDAwLDB4MzEsMHg0MCB9LAotICAxNiwgMHhjNDcwLCAwLCB7MHgwZCwweGQwLDB4NDMsMHhlNCwweDAwLDB4Y2QsMHgwMCwweDMzLDB4NDAsMHg0ZiwweDExLDB4MDIsMHhlNCwweDA0LDB4YzEsMHgwMCB9LAotICAxNiwgMHhjNDgwLCAwLCB7MHgzZCwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGVkLDB4YTQsMHgzMiwweDUwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCB9LAotICAxNiwgMHhjNDkwLCAwLCB7MHhmZCwweDAwLDB4M2YsMHg0MCwweDBmLDB4OTAsMHgwMywweGM2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNGEwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHgwOCwweGQ4LDB4MDAsMHgzMiwweDAxLDB4MDAsMHg4MCwweDEyLDB4YzAsMHgwMCwweDQ4LDB4MDAsMHgzNiB9LAotICAxNiwgMHhjNGIwLCAwLCB7MHg4MCwweDBiLDB4OGEsMHgwMiwweGUwLDB4MDAsMHhhOCwweDAwLDB4MmUsMHgwMCwweDBmLDB4ODAsMHgwMiwweGUwLDB4MDAsMHg4OCB9LAotICAxNiwgMHhjNGMwLCAwLCB7MHg1MCwweDM0LDB4MjgsMHgwYiwweDgwLDB4MDIsMHhlMCwweDAwLDB4YjgsMHgwMCwweDJlLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhjZSB9LAotICAxNiwgMHhjNGQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDAwLDB4MjYsMHg0MCB9LAotICAxNiwgMHhjNGUwLCAwLCB7MHgwOSwweDE4LDB4MDIsMHhjNCwweDA4LDB4MjEsMHgwMCwweDI4LDB4NDAsMHg4YiwweDEwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHgwMSB9LAotICAxNiwgMHhjNGYwLCAwLCB7MHgyZSwweDQwLDB4MTgsMHgxMCwweDAyLDB4YzQsMHgwMCwweGExLDB4MDEsMHgyMCwweDQ4LDB4MWIsMHgxMCwweDAyLDB4YzQsMHgwMCB9LAotICAxNiwgMHhjNTAwLCAwLCB7MHhiMSwweDAwLDB4NmMsMHg0MCwweDBiLDB4MTAsMHgxMiwweGMyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNTEwLCAwLCB7MHgxOCwweDExLDB4YTQsMHgwMCwweDk5LDB4ODAsMHhhMiwweDQyLDB4NDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGE5LDB4MmEsMHgyNiB9LAotICAxNiwgMHhjNTIwLCAwLCB7MHg0NCwweDBiLDB4OTAsMHg4MiwweGM0LDB4ODEsMHhiOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHg0MiwweGM0LDB4MDAsMHg4OSB9LAotICAxNiwgMHhjNTMwLCAwLCB7MHgwMCwweDI2LDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMSwweDJlLDB4NDEsMHgwYiwweDkwLDB4MDIsMHhjNiB9LAotICAxNiwgMHhjNTQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGM1LDB4MjAsMHhjOSwweDg0LDB4MzAsMHg3MCB9LAotICAxNiwgMHhjNTUwLCAwLCB7MHgwZCwweDkwLDB4MTMsMHhlNCwweDAyLDB4ZTksMHgwMCwweDMyLDB4NzAsMHgwZiwweDk0LDB4MDMsMHhlNCwweDAwLDB4ZjksMHg0MCB9LAotICAxNiwgMHhjNTYwLCAwLCB7MHgzYywweDQ4LDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGUxLDB4MDAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDAxLDB4ZTQsMHgwMCB9LAotICAxNiwgMHhjNTcwLCAwLCB7MHhmOSwweDkwLDB4M2UsMHg2MCwweDBmLDB4OTAsMHgyNiwweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNTgwLCAwLCB7MHgyOCwweDAxLDB4YTUsMHgwMCwweGYxLDB4MDQsMHgzYSwweDQ0LDB4OGYsMHg5MCwweDAzLDB4ZTQsMHgxMCwweGM5LDB4MDQsMHgzZSB9LAotICAxNiwgMHhjNTkwLCAwLCB7MHg2MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDIwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MTAsMHhmOSB9LAotICAxNiwgMHhjNWEwLCAwLCB7MHg5MCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHg4MCwweDNlLDB4NjQsMHgwZiwweDkwLDB4MDcsMHhjYSB9LAotICAxNiwgMHhjNWIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGExLDB4MDAsMHhjOCwweDA0LDB4M2EsMHgwMCB9LAotICAxNiwgMHhjNWMwLCAwLCB7MHgxZSwweDgwLDB4MDMsMHg4MCwweDAzLDB4YzgsMHg0MCwweDJhLDB4MDQsMHgxZiwweDgwLDB4MDMsMHgyMCwweDAwLDB4ODgsMHgwMCB9LAotICAxNiwgMHhjNWQwLCAwLCB7MHgzMiwweDMwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwMCB9LAotICAxNiwgMHhjNWUwLCAwLCB7MHhjOCwweDgwLDB4M2UsMHgyMCwweDBmLDB4ODAsMHgwMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNWYwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweGFlLDB4ZDAsMHgzNywweDgwLDB4MDgsMHhlYywweDQ2LDB4MzgsMHgwMCwweGQ2LDB4MDQsMHgyMyB9LAotICAxNiwgMHhjNjAwLCAwLCB7MHhhMCwweDBiLDB4YTAsMHg0MSwweDc4LDB4MDQsMHhmYSwweDAwLDB4MzcsMHg4MCwweDBkLDB4YTAsMHgwMiwweGE4LDB4MTAsMHhlZSB9LAotICAxNiwgMHhjNjEwLCAwLCB7MHgyMSwweDJlLDB4ODAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDA4LDB4OGUsMHg4MCwweDJmLDB4YTAsMHg4YiwweGEwLDB4MDIsMHhjYSB9LAotICAxNiwgMHhjNjIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweDRjLDB4MDIsMHg4MywweGMwLDB4YTgsMHhlOCB9LAotICAxNiwgMHhjNjMwLCAwLCB7MHg0YSwweDM2LDB4MDIsMHg4YywweDAwLDB4MTMsMHhhMCwweDI4LDB4YzIsMHgwYiwweDMwLDB4MDYsMHgwYywweDAwLDB4YjMsMHgwMCB9LAotICAxNiwgMHhjNjQwLCAwLCB7MHgyNCwweDg0LDB4MDksMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MjAsMHgyOCwweGMwLDB4MDksMHgzMCwweDAyLDB4Y2MsMHgwMCB9LAotICAxNiwgMHhjNjUwLCAwLCB7MHg4MywweDgwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNjYwLCAwLCB7MHhhMCwweDAxLDB4M2MsMHg0NCwweGFmLDB4NDAsMHgyNSwweGMyLDB4NDgsMHhmOCwweDgyLDB4MWMsMHhjOCwweDlmLDB4MDgsMHgyMSB9LAotICAxNiwgMHhjNjcwLCAwLCB7MHhjMCwweDhiLDB4ZjgsMHgwMiwweDVjLDB4MDAsMHhiZiwweGIwLDB4MjcsMHg4MCwweDA5LDB4M2EsMHgwMiwweDljLDB4MDAsMHhhNSB9LAotICAxNiwgMHhjNjgwLCAwLCB7MHgwMiwweDJkLDB4ZTgsMHgwOSwweDcwLDB4MDIsMHhjZSwweDgwLDB4ODUsMHgwOCwweDJkLDB4YzIsMHgwYiwweDczLDB4MDIsMHhlOCB9LAotICAxNiwgMHhjNjkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhjNywweDgyLDB4YTksMHhlMCB9LAotICAxNiwgMHhjNmEwLCAwLCB7MHgwYSwweDc4LDB4MDIsMHg5ZSwweDQwLDB4OTcsMHg4NCwweDM5LDB4YTAsMHgwYiwweDdhLDB4ODMsMHgzZiwweDgwLDB4ZDcsMHg5MSB9LAotICAxNiwgMHhjNmIwLCAwLCB7MHgzNSwweGEwLDB4MGQsMHg3YSwweDA5LDB4MWUsMHg0NCwweGY3LDB4ODAsMHgzZCwweGU4LDB4MmQsMHg3YSwweDAzLDB4ZGUsMHg4MiB9LAotICAxNiwgMHhjNmMwLCAwLCB7MHhjNiwweDgwLDB4M2QsMHgyMCwweDRiLDB4N2IsMHgyMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNmQwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHgwMCwweGQzLDB4MDAsMHgzZSwweGMxLDB4MGYsMHgzMCwweDAzLDB4ZWQsMHg4MCwweGUzLDB4MDAsMHgzZSB9LAotICAxNiwgMHhjNmUwLCAwLCB7MHg4MCwweDBmLDB4YjYsMHgyMSwweGVjLDB4MDgsMHhkYiwweDIxLDB4M2UsMHg4MCwweDBmLDB4YjUsMHgwMywweDZjLDB4NDAsMHhmOSB9LAotICAxNiwgMHhjNmYwLCAwLCB7MHgwMCwweDNlLDB4ZGMsMHgwZSwweGIyLDB4MDMsMHhlZCwweDQwLDB4ZjksMHgwMiwweDNlLDB4ODAsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhjNzAwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhjZiwweDgwLDB4M2QsMHhlMCB9LAotICAxNiwgMHhjNzEwLCAwLCB7MHgwZiwweGM4LDB4NDMsMHhmZSwweDAwLDB4ZmUsMHg4NCwweDNmLDB4ZTAsMHgwZCwweGY4LDB4YzMsMHhmZiwweDEwLDB4YWYsMHg5MCB9LAotICAxNiwgMHhjNzIwLCAwLCB7MHgzNSwweGEwLDB4MGMsMHhmYywweDAzLDB4M2UsMHgxNCwweGVjLDB4ODQsMHgzZiwweGYwLDB4MGUsMHhmYywweGMzLDB4ZmYsMHgwOCB9LAotICAxNiwgMHhjNzMwLCAwLCB7MHg0ZiwweDgwLDB4MzMsMHhlNCwweDBjLDB4ZjgsMHgwMywweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNzQwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGQ3LDB4YTIsMHgyZCwweGM0LDB4MGMsMHg0MSwweGMyLDB4ZGMsMHgwMCwweDc0LDB4MDAsMHgyNSB9LAotICAxNiwgMHhjNzUwLCAwLCB7MHg4MCwweDBmLDB4NzIsMHg0MiwweGRjLDB4OTAsMHhkNywweDM4LDB4MmQsMHg5OCwweDBhLDB4NzAsMHgwMiwweDFjLDB4MDQsMHg4NiB9LAotICAxNiwgMHhjNzYwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZCwweDcwLDB4MDIsMHhjYywweDAwLDB4ODYsMHgwOCwweDM3LDB4YzYsMHgyOCwweDcwLDB4MDIsMHgyYSB9LAotICAxNiwgMHhjNzcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg4NywweDYwLDB4MmQsMHhjMiB9LAotICAxNiwgMHhjNzgwLCAwLCB7MHgwYSwweDUwLDB4MDIsMHhkYywweDAwLDB4YjYsMHgxMCwweDI1LDB4YzIsMHgwOSwweDcwLDB4ODYsMHhkYywweDMwLDB4OTcsMHgwMCB9LAotICAxNiwgMHhjNzkwLCAwLCB7MHgyNSwweDgwLDB4MDgsMHgzMCwweDAyLDB4NWMsMHgwMCwweDg3LDB4MDgsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4Y2MsMHg0MCB9LAotICAxNiwgMHhjN2EwLCAwLCB7MHg4NiwweDAwLDB4MjEsMHgwMCwweDA5LDB4NzAsMHgwYSwweDAwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjN2IwLCAwLCB7MHgyMCwweDE0LDB4ZWQsMHg4MCwweDkzLDB4MDAsMHgwYywweGUxLDB4MjgsMHgxOCwweDAyLDB4Y2MsMHgwOCwweGEwLDB4MDAsMHgyNCB9LAotICAxNiwgMHhjN2MwLCAwLCB7MHgxMiwweDFhLDB4MzQsMHgwMiwweGNmLDB4MDQsMHg5MywweDQwLDB4MmMsMHg4MCwweDBhLDB4YjAsMHgyMiwweDRjLDB4MDIsMHg4MSB9LAotICAxNiwgMHhjN2QwLCAwLCB7MHg4MCwweDI4LDB4ZTAsMHgyOCwweDMwLDB4MDIsMHhjYywweDAwLDB4ODgsMHg4MiwweDI0LDB4MjAsMHgwOCwweGIwLDB4MDIsMHgwOCB9LAotICAxNiwgMHhjN2UwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJmLDB4MjAsMHhjOSwweGUwLDB4MmMsMHhmMSB9LAotICAxNiwgMHhjN2YwLCAwLCB7MHgwZSwweGJkLDB4MDMsMHhmYywweDAwLDB4YjksMHg0MCwweDM2LDB4NDAsMHgwOSwweGY1LDB4MDIsMHhmZCwweDQwLDB4ZmYsMHg4MCB9LAotICAxNiwgMHhjODAwLCAwLCB7MHgzNiwweGEyLDB4MDgsMHhmMCwweDBiLDB4N2MsMHgwMCwweGViLDB4ODAsMHgyZiwweGUwLDB4MGEsMHhmMCwweDQzLDB4ZmMsMHgwMiB9LAotICAxNiwgMHhjODEwLCAwLCB7MHg4YiwweGQwLDB4MzIsMHhmMCwweDBkLDB4ZjAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjODIwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgxMCwweGZiLDB4MDAsMHgzZSwweGM4LDB4MGYsMHg5NCwweDEzLDB4ZWMsMHgwMCwweGY5LDB4NDAsMHgzNiB9LAotICAxNiwgMHhjODMwLCAwLCB7MHg0MCwweDFmLDB4YjAsMHgwMywweGVjLDB4MTAsMHhmYiwweDAxLDB4M2UsMHhkMCwweDBmLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmOSB9LAotICAxNiwgMHhjODQwLCAwLCB7MHgwMCwweDNlLDB4YzQsMHgwZiwweGIwLDB4MDEsMHhlYywweDAwLDB4ZjksMHgwNCwweDNlLDB4NDgsMHgwZiwweGIwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhjODUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhkZiwweDAwLDB4M2YsMHhjMCB9LAotICAxNiwgMHhjODYwLCAwLCB7MHgwYywweGUwLDB4MDcsMHhmYywweDAwLDB4ZmMsMHgwYSwweDI3LDB4MDAsMHg0ZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwOCB9LAotICAxNiwgMHhjODcwLCAwLCB7MHgzMywweDgwLDB4MGMsMHhmMCwweDAwLDB4MmMsMHgwMCwweDVmLDB4MDAsMHgzMywweGMwLDB4MGMsMHhmMCwweDAxLDB4ZmMsMHgwMCB9LAotICAxNiwgMHhjODgwLCAwLCB7MHhmZSwweDAwLDB4MjMsMHg0MCwweDBmLDB4YjAsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjODkwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4ODYsMHgyZSwweGUwLDB4NDgsMHg4ZiwweDAyLDB4ZWMsMHgwOCwweGI4LDB4YTAsMHgzNiB9LAotICAxNiwgMHhjOGEwLCAwLCB7MHgzMCwweDRiLDB4YjAsMHgwMywweGFjLDB4MGMsMHg5YiwweDAyLDB4M2MsMHhhMCwweDBjLDB4YjAsMHg0MywweDZjLDB4MDAsMHhiMSB9LAotICAxNiwgMHhjOGIwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHgwZCwweGIwLDB4MTIsMHhlYywweDEwLDB4YjksMHg4MCwweGEyLDB4NjEsMHgwYiwweGIwLDB4MDIsMHgyMCB9LAotICAxNiwgMHhjOGMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5YiwweDg4LDB4MmUsMHhlMCB9LAotICAxNiwgMHhjOGQwLCAwLCB7MHgwOCwweGEwLDB4MDIsMHhlYywweDAxLDB4YmIsMHg4MCwweDI2LDB4NjIsMHgwYiwweGIwLDB4MDIsMHhlYywweDAwLDB4YjMsMHgwMSB9LAotICAxNiwgMHhjOGUwLCAwLCB7MHgyYSwweDIxLDB4MDgsMHhiMCwweDEyLDB4MmMsMHgwMCwweGI4LDB4MDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDEyLDB4ZWMsMHgxNCB9LAotICAxNiwgMHhjOGYwLCAwLCB7MHhiOSwweDg0LDB4MjIsMHhhMiwweDBiLDB4YjAsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjOTAwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwNCwweDkzLDB4MDAsMHgyYywweGUwLDB4MDgsMHgwMCwweDAyLDB4Y2MsMHgwOSwweDkxLDB4MDAsMHgyMCB9LAotICAxNiwgMHhjOTEwLCAwLCB7MHg0MCwweDBiLDB4MzAsMHgwNiwweDRjLDB4MDQsMHgxMywweDAwLDB4MjYsMHgwMCwweDA4LDB4MzAsMHgwMiwweGNjLDB4MDQsMHhiMiB9LAotICAxNiwgMHhjOTIwLCAwLCB7MHgwMCwweDJhLDB4YzAsMHgwMSwweDMwLDB4MDAsMHhjZCwweDAwLDB4YjAsMHgwMCwweDIwLDB4ODAsMHgwYiwweDMwLDB4MGEsMHgwMiB9LAotICAxNiwgMHhjOTMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhkYiwweDI0LDB4NmUsMHhjMCB9LAotICAxNiwgMHhjOTQwLCAwLCB7MHgyYywweGEwLDB4MDIsMHhmYywweDAwLDB4YmEsMHgwNCwweDI2LDB4NDAsMHg0ZiwweGYwLDB4NTcsMHhmYywweDAwLDB4M2YsMHgwMSB9LAotICAxNiwgMHhjOTUwLCAwLCB7MHgzYSwweDAwLDB4MmMsMHhmMCwweDAxLDB4M2MsMHgwMCwweGRiLDB4MDAsMHgzMywweGMwLDB4ODQsMHhmMCwweDAzLDB4ZmQsMHgwOCB9LAotICAxNiwgMHhjOTYwLCAwLCB7MHhmYSwweDAwLDB4MzIsMHgwMCwweDBmLDB4ZjAsMHgwMywweDAwLDB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjOTcwLCAwLCB7MHhhMCwweDE5LDB4ZGMsMHgwMCwweGVhLDB4NDAsMHgzZiwweDAwLDB4MDcsMHhjMCwweDAzLDB4ZmMsMHgwNCwweGZjLDB4MDAsMHgzZiB9LAotICAxNiwgMHhjOTgwLCAwLCB7MHg0MCwweDBmLDB4ZjAsMHgwMywweDljLDB4MDAsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBlLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhmZCB9LAotICAxNiwgMHhjOTkwLCAwLCB7MHgwMCwweDNmLDB4YzEsMHgwZiwweGYwLDB4MDMsMHhmYywweDg0LDB4ZjQsMHgwMCwweDNmLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhjOWEwLCAwLCB7MHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMSwweGYwLDB4ODAsMHhmZiwweDAwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhjOWIwLCAwLCB7MHgwZiwweGMyLDB4MDMsMHgzZSwweDAwLDB4ZGYsMHhjMCwweDNlLDB4YzAsMHg0ZCwweGRiLDB4MDIsMHhiMCwweGMwLDB4ZGMsMHgzMCB9LAotICAxNiwgMHhjOWMwLCAwLCB7MHgzZiwweGUwLDB4MGYsMHhkYiwweDIzLDB4ZjYsMHgyMCwweGZmLDB4MjYsMHgzMywweGUwLDB4MGYsMHg1MiwweDAzLDB4NWUsMHgwMCB9LAotICAxNiwgMHhjOWQwLCAwLCB7MHhmZiwweDgwLDB4MzMsMHhjMCwweDRjLDB4NDksMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjOWUwLCAwLCB7MHg4MCwweDEwLDB4ZTEsMHhlMCwweGI3LDB4MDgsMHgyMywweGYwLDB4MGIsMHhhZCwweDBhLDB4MmUsMHgwMCwweDlhLDB4MDQsMHgyZSB9LAotICAxNiwgMHhjOWYwLCAwLCB7MHhiMCwweDA5LDB4OGYsMHgwMywweGEwLDB4NDAsMHhiOSwweDMwLDB4MmUsMHhhMCwweDBiLDB4OWYsMHgwMywweGE3LDB4MDAsMHhiYiB9LAotICAxNiwgMHhjYTAwLCAwLCB7MHg4MCwweDI2LDB4ZTAsMHgwYiwweGRkLDB4MDIsMHgyZSwweDAwLDB4YmIsMHg4MCwweDIyLDB4ZjQsMHgwYSwweDkyLDB4MDIsMHhhMCB9LAotICAxNiwgMHhjYTEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM4LDB4ODAsMHhiMywweDEwLDB4MjQsMHhjMCB9LAotICAxNiwgMHhjYTIwLCAwLCB7MHgwYiwweDgwLDB4MDIsMHhhYywweDAwLDB4YTMsMHgyNCwweDJjLDB4ZDAsMHgwOCwweDEwLDB4MDYsMHhjMCwweDgwLDB4YjIsMHgwMSB9LAotICAxNiwgMHhjYTMwLCAwLCB7MHgyYywweGVhLDB4NGIsMHgwMCwweDEyLDB4YzIsMHgwNCwweGIzLDB4MTAsMHgwOCwweGMwLDB4MGEsMHg5MCwweDAyLDB4MGMsMHgwMCB9LAotICAxNiwgMHhjYTQwLCAwLCB7MHg5MywweDA0LDB4MjQsMHhjMCwweDA5LDB4ODIsMHgwMiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYTUwLCAwLCB7MHhjMCwweDE1LDB4YTUsMHgwMCwweGJiLDB4MDAsMHgyMiwweGMwLDB4MGIsMHg4MCwweDAyLDB4YWMsMHgwOCwweGJiLDB4MTgsMHgyZSB9LAotICAxNiwgMHhjYTYwLCAwLCB7MHhlMCwweDE4LDB4ODgsMHgwMiwweGVjLDB4MDEsMHhiYSwweDAwLDB4MmUsMHg4MCwweDBiLDB4OTgsMHg4NiwweGUyLDB4MDAsMHhiYiB9LAotICAxNiwgMHhjYTcwLCAwLCB7MHgwMCwweDIyLDB4YzQsMHgwYiwweDkwLDB4MDIsMHg2YywweDAwLDB4YmIsMHgwMCwweGE2LDB4YzAsMHgwYiwweDkwLDB4MDAsMHhiMCB9LAotICAxNiwgMHhjYTgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMSwweGU3LDB4MDAsMHhmYiwweDAwLDB4YjIsMHhjMCB9LAotICAxNiwgMHhjYTkwLCAwLCB7MHgwZiwweGE4LDB4MDMsMHhhYywweDAyLDB4ZWIsMHgwMCwweDNlLDB4NjAsMHgwZCwweDllLDB4MDMsMHhlYywweDAwLDB4ZDgsMHg0MCB9LAotICAxNiwgMHhjYWEwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg4OCwweDQzLDB4ZTIsMHgwMCwweGZiLDB4MjAsMHgzMiwweGMwLDB4MGYsMHgxMCwweDBiLDB4NmYsMHg5MCB9LAotICAxNiwgMHhjYWIwLCAwLCB7MHg1YiwweDgyLDB4MzYsMHhjMCwweDJkLDB4MDgsMHgwMSwweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYWMwLCAwLCB7MHhlMCwweDAxLDB4YjcsMHgwOCwweGY3LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmOSwweDAzLDB4N2MsMHgwOCwweGNmLDB4ODIsMHgzYyB9LAotICAxNiwgMHhjYWQwLCAwLCB7MHgwMCwweGFmLDB4ZDAsMHgyMSwweGJjLDB4MDgsMHhmZCwweDEwLDB4M2YsMHg4MCwweDhmLDB4YzAsMHgwMywweGE0LDB4MDAsMHhmNyB9LAotICAxNiwgMHhjYWUwLCAwLCB7MHgwMSwweGJmLDB4YzAsMHgwNywweGQwLDB4MDMsMHhiZCwweDMwLDB4ZmYsMHhhNCwweDM4LDB4YzAsMHgwZSwweGRhLDB4MDMsMHhmOCB9LAotICAxNiwgMHhjYWYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGE4LDB4MDAsMHhmYiwweDAwLDB4YjIsMHhjMSB9LAotICAxNiwgMHhjYjAwLCAwLCB7MHgwZSwweDgxLDB4MDMsMHhlYywweDQwLDB4ZmIsMHg0NCwweDNhLDB4YzEsMHgwZSwweDk1LDB4MDMsMHhlMCwweDAwLDB4Y2IsMHg0MSB9LAotICAxNiwgMHhjYjEwLCAwLCB7MHgzMiwweDRkLDB4MGYsMHg4MSwweDAzLDB4ZTAsMHgyMCwweGM5LDB4MDAsMHg3MiwweGU4LDB4NDQsMHg5MSwweDAzLDB4NmQsMHgwMCB9LAotICAxNiwgMHhjYjIwLCAwLCB7MHhjYiwweDAyLDB4M2UsMHhjMCwweDBjLDB4ODAsMHgwMywweDkwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYjMwLCAwLCB7MHhjOCwweDA1LDB4MjQsMHgwMCwweGJmLDB4MDAsMHgzMywweGM0LDB4MDgsMHgxZCwweDAzLDB4OGMsMHgwMCwweGJiLDB4OTgsMHgzNiB9LAotICAxNiwgMHhjYjQwLCAwLCB7MHg0OCwweDRkLDB4OTgsMHgyMiwweGVkLDB4NDAsMHhkYiwweDAwLDB4MzYsMHhiMCwweDBiLDB4OTgsMHgwMiwweGUzLDB4MDAsMHhkYiB9LAotICAxNiwgMHhjYjUwLCAwLCB7MHgwMCwweDMyLDB4ZTAsMHg4OCwweGQ4LDB4MDIsMHgyYywweDAyLDB4YzMsMHg4MCwweDJmLDB4YzAsMHgwOCwweDkwLDB4MDMsMHg3MiB9LAotICAxNiwgMHhjYjYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDQ0LDB4MDAsMHhiMywweDAwLDB4MjAsMHhmMCB9LAotICAxNiwgMHhjYjcwLCAwLCB7MHgxOCwweDA4LDB4MDIsMHg0ZiwweDg0LDB4YjEsMHhjMCwweDI0LDB4YzAsMHg4OSwweDA2LDB4MDIsMHhjNCwweDAwLDB4OTEsMHgwMCB9LAotICAxNiwgMHhjYjgwLCAwLCB7MHgyMCwweGYwLDB4MWIsMHgxOCwweDgyLDB4YzYsMHgwMCwweDkzLDB4MDAsMHgyYywweGQxLDB4MDgsMHgxZSwweDAyLDB4MGUsMHg0NCB9LAotICAxNiwgMHhjYjkwLCAwLCB7MHg5MywweDk0LDB4MmMsMHhjMCwweDA4LDB4MjAsMHgwMiwweGI4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYmEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwNCwweGI3LDB4ODAsMHgyMCwweGUyLDB4MDgsMHg2OCwweDA2LDB4OWUsMHg4MCwweGJmLDB4ODQsMHgyNSB9LAotICAxNiwgMHhjYmIwLCAwLCB7MHhhOCwweDA5LDB4NjgsMHgwMiwweGM2LDB4MDAsMHg5MywweGEwLDB4NjUsMHhlNCwweDBiLDB4NzgsMHgxMiwweGRlLDB4MDAsMHg5MyB9LAotICAxNiwgMHhjYmMwLCAwLCB7MHgwMCwweGExLDB4ZTAsMHgwOCwweGQ4LDB4MDIsMHgxZSwweGQwLDB4YTcsMHg4MCwweDJkLDB4ZTAsMHgwOCwweGY4LDB4MDIsMHg0OCB9LAotICAxNiwgMHhjYmQwLCAwLCB7MHgxMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA4LDB4MDAsMHhiMywweDIwLDB4MzAsMHhjMCB9LAotICAxNiwgMHhjYmUwLCAwLCB7MHgwYSwweDIyLDB4MDIsMHhjZSwweDQwLDB4ZjMsMHhhMCwweDNjLDB4ZTgsMHgwYiwweDMwLDB4MDIsMHhjMSwweDAwLDB4ZDAsMHhjMSB9LAotICAxNiwgMHhjYmYwLCAwLCB7MHgzMCwweGMwLDB4MGIsMHgyMSwweDEzLDB4Y2MsMHgyMSwweGQzLDB4MDAsMHgyYywweGMwLDB4MmMsMHgxMCwweDBiLDB4MGMsMHg4MCB9LAotICAxNiwgMHhjYzAwLCAwLCB7MHhkMywweDYxLDB4M2MsMHhjOCwweDJjLDB4MjAsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYzEwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGZmLDB4NDAsMHgzYiwweGMwLDB4MGYsMHhlMCwweDAzLDB4ZmMsMHgwMCwweGY3LDB4NTAsMHg3ZiB9LAotICAxNiwgMHhjYzIwLCAwLCB7MHhjNCwweDJlLDB4ZjAsMHgwMywweGZjLDB4NDAsMHhmZSwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHg0NywweGZjLDB4MDAsMHhmZiB9LAotICAxNiwgMHhjYzMwLCAwLCB7MHgwMCwweDdkLDB4YzIsMHgwZiwweGQwLDB4MDEsMHhiYywweDgwLDB4NWYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhjYzQwLCAwLCB7MHgwMiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGU0LDB4MDAsMHhmYiwweGMwLDB4MzIsMHhjOCB9LAotICAxNiwgMHhjYzUwLCAwLCB7MHgwZSwweGUwLDB4MDMsMHhhYywweGEwLDB4ZWIsMHgyMCwweDMyLDB4NDAsMHg4YywweGEwLDB4MTMsMHgyYywweDAwLDB4ZDksMHgwMCB9LAotICAxNiwgMHhjYzYwLCAwLCB7MHgzZSwweDYwLDB4MGMsMHhiMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4ODAsMHgzMCwweGMwLDB4M2MsMHg5MiwweDAzLDB4ZWYsMHg2MCB9LAotICAxNiwgMHhjYzcwLCAwLCB7MHhjMywweDIwLDB4MzEsMHhjNCwweDBjLDB4YTAsMHgwMywweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYzgwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDMzLDB4MjAsMHgyMSwweGRhLDB4MGIsMHg3MCwweDQzLDB4OWMsMHgwMSwweGI1LDB4MDAsMHgyMSB9LAotICAxNiwgMHhjYzkwLCAwLCB7MHgwMCwweDBhLDB4ZTAsMHgwMiwweDFjLDB4MDAsMHhiNywweDAwLDB4MmYsMHhjMCwweDBkLDB4NzAsMHgwMywweDljLDB4MDAsMHhiNiB9LAotICAxNiwgMHhjY2EwLCAwLCB7MHgwMCwweDMxLDB4YzgsMHgwOCwweDU3LDB4MDIsMHhkYywweDAwLDB4ODcsMHg1MCwweDIxLDB4YzAsMHgwYSwweDcwLDB4NDIsMHg5MiB9LAotICAxNiwgMHhjY2IwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlhLDB4MTEsMHhiNywweDkwLDB4MjEsMHhlMCB9LAotICAxNiwgMHhjY2MwLCAwLCB7MHgwYiwweDY4LDB4ODIsMHhkZSwweDA4LDB4YTcsMHg4MCwweDI0LDB4NjAsMHgwOCwweDcwLDB4MTIsMHgxMiwweDA4LDB4OTUsMHg4MCB9LAotICAxNiwgMHhjY2QwLCAwLCB7MHgyZCwweDYwLDB4MDksMHg2YywweDAyLDB4ZGUsMHgwMCwweGIxLDB4ODAsMHgyMywweGUwLDB4MGEsMHg1OCwweDYyLDB4ZmUsMHgwMCB9LAotICAxNiwgMHhjY2UwLCAwLCB7MHg5NywweGEwLDB4MjEsMHhlOCwweDA5LDB4ZTgsMHgwMiwweDMwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjY2YwLCAwLCB7MHg0OCwweDE0LDB4Y2QsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwLDB4OGIsMHgzYywweDAyLDB4OGMsMHgwMCwweGJiLDB4MDAsMHgyNCB9LAotICAxNiwgMHhjZDAwLCAwLCB7MHhjNCwweDFhLDB4M2QsMHgwMiwweDJmLDB4ODgsMHhiMywweDQ4LDB4MmMsMHhlMCwweDg5LDB4M2UsMHgwMiwweDhkLDB4ODAsMHg5MyB9LAotICAxNiwgMHhjZDEwLCAwLCB7MHhkOSwweGE0LDB4NDAsMHg4OCwweDEwLDB4MDIsMHhjYywweDA0LDB4OTMsMHhjOCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg5MiB9LAotICAxNiwgMHhjZDIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI5LDB4NDAsMHhmYSwweDAwLDB4YjIsMHg4MCB9LAotICAxNiwgMHhjZDMwLCAwLCB7MHgwZiwweGUwLDB4MDMsMHhlOCwweDAwLDB4ZWEsMHg4MCwweDM3LDB4YTAsMHgwYywweGU4LDB4MTMsMHgzYiwweDA4LDB4ZGUsMHgwMSB9LAotICAxNiwgMHhjZDQwLCAwLCB7MHgzZiwweDgyLDB4MGMsMHhlMCwweDQzLDB4ZmEsMHg4MCwweGZlLDB4ODAsMHgzMSwweDI4LDB4MGMsMHhhMCwweDAzLDB4ZjAsMHgwMiB9LAotICAxNiwgMHhjZDUwLCAwLCB7MHhjNCwweGMwLDB4YjIsMHg4MCwweDBkLDB4ZTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZDYwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDEwLDB4MGIsMHg4MCwweDgzLDB4ZTAsMHgwMCwweGY4LDB4MzAsMHgzYSB9LAotICAxNiwgMHhjZDcwLCAwLCB7MHgwMCwweDZkLDB4ODAsMHg4MywweGUxLDB4NDQsMHhiOCwweDA0LDB4M2UsMHgxMCwweDBmLDB4ODAsMHgxMywweGUwLDB4MDAsMHhmOCB9LAotICAxNiwgMHhjZDgwLCAwLCB7MHgwMCwweDNhLDB4MTAsMHg0ZiwweDA0LDB4MDMsMHhlMywweDAwLDB4ZTgsMHgxMCwweDNlLDB4MDAsMHgwZSwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhjZDkwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhjOSwweDAwLDB4MzgsMHg0MCB9LAotICAxNiwgMHhjZGEwLCAwLCB7MHgwZiwweDFhLDB4MDMsMHgyZSwweDAwLDB4ZmIsMHhhMCwweDM2LDB4NjAsMHgwYywweDk4LDB4MDMsMHhlNiwweDA0LDB4ZDEsMHgwMCB9LAotICAxNiwgMHhjZGIwLCAwLCB7MHgzNiwweDQ4LDB4MGUsMHg5MSwweDAyLDB4ZTYsMHgwMCwweGY5LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg5OSwweDAzLDB4NjIsMHg0MCB9LAotICAxNiwgMHhjZGMwLCAwLCB7MHhmOCwweDAwLDB4YTAsMHg2OCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZGQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMiwweDg5LDB4MDQsMHgyZSwweDY0LDB4ODgsMHg5NCwweDAyLDB4YTUsMHgwMCwweGI5LDB4ODAsMHgyMCB9LAotICAxNiwgMHhjZGUwLCAwLCB7MHg2NCwweDBkLDB4OWMsMHgwMiwweGU2LDB4NDIsMHg4OSwweDAwLDB4MjIsMHg2MCwweDBiLDB4OWMsMHgwMiwweGU0LDB4MTAsMHhiOSB9LAotICAxNiwgMHhjZGYwLCAwLCB7MHg0MCwweDNhLDB4NTAsMHgwOCwweDljLDB4MDIsMHgyNywweDIwLDB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDEwLDB4MDMsMHg2MCB9LAotICAxNiwgMHhjZTAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCB9LAotICAxNiwgMHhjZTEwLCAwLCB7MHgwYSwweDkwLDB4ODIsMHgyNSwweDRjLDB4YjksMHgwMCwweDAyLDB4NDAsMHgwOCwweDk2LDB4MDIsMHhlNCwweDEwLDB4ODksMHgwMCB9LAotICAxNiwgMHhjZTIwLCAwLCB7MHgyNiwweDUwLDB4MTMsMHg5NCwweDAyLDB4ZTQsMHg0MCwweGI5LDB4MDgsMHgyZSwweDQwLDB4MDgsMHg5MCwweDhhLDB4MjQsMHgwMCB9LAotICAxNiwgMHhjZTMwLCAwLCB7MHhiOSwweDAxLDB4MmEsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZTQwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHg4MCwweDgxLDB4NDAsMHgyYywweGM4LDB4MDgsMHgxMCwweDA2LDB4ODQsMHgwMCwweGIxLDB4MDQsMHgyMCB9LAotICAxNiwgMHhjZTUwLCAwLCB7MHg0OSwweDA5LDB4MTQsMHg0MiwweGNjLDB4ODksMHg4MSwweDIwLDB4MjAsMHg1MCwweDBiLDB4MTQsMHg0NiwweGM0LDB4MDAsMHhiMSB9LAotICAxNiwgMHhjZTYwLCAwLCB7MHgwMCwweDJhLDB4YzAsMHgyOCwweDE0LDB4MDIsMHgwMSwweDAxLDB4YjAsMHgwNCwweDI4LDB4NDAsMHgzOCwweDk0LDB4MDIsMHg0MiB9LAotICAxNiwgMHhjZTcwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHg4OCwweDAwLDB4M2EsMHgwMCB9LAotICAxNiwgMHhjZTgwLCAwLCB7MHgwZSwweDgwLDB4MjMsMHgyMCwweDAwLDB4ZjgsMHg1MCwweGIyLDB4MDAsMHgwYywweDgwLDB4MTIsMHhlMSwweDQwLDB4ZDgsMHg1MCB9LAotICAxNiwgMHhjZTkwLCAwLCB7MHgzNiwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGMsMHg4MCwweDUzLDB4NjAsMHgwNCB9LAotICAxNiwgMHhjZWEwLCAwLCB7MHhmOCwweDAwLDB4M2EsMHgwMCwweDBjLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZWIwLCAwLCB7MHg5OCwweDFkLDB4ZjQsMHg0MCwweGY5LDB4NDQsMHgzZSwweDQ0LDB4MGYsMHhkNCwweDAzLDB4ZTQsMHgwMCwweGYxLDB4MDAsMHgzZiB9LAotICAxNiwgMHhjZWMwLCAwLCB7MHg0NCwweDBmLDB4ZDQsMHg1MywweGY0LDB4NDQsMHhmZCwweDEwLDB4MmYsMHg0MCwweDBmLDB4ZjQsMHgwMywweGZkLDB4MDAsMHhmZCB9LAotICAxNiwgMHhjZWQwLCAwLCB7MHg0MCwweDNiLDB4MTAsMHgwZiwweGQ0LDB4MjMsMHhkMSwweDA0LDB4N2MsMHg0MywweDM2LDB4NTAsMHgwZiwweDUwLDB4MDMsMHhlNiB9LAotICAxNiwgMHhjZWUwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGE2LDB4MDAsMHhmOSwweDEwLDB4MmUsMHg2MiB9LAotICAxNiwgMHhjZWYwLCAwLCB7MHgwZiwweGQyLDB4ODMsMHhlNCwweDAwLDB4YmQsMHg0MiwweDNlLDB4NjEsMHgwZiwweGQwLDB4MDMsMHhmNiwweGMwLDB4YzksMHhhMiB9LAotICAxNiwgMHhjZjAwLCAwLCB7MHgyYiwweDQwLDB4MGMsMHhkMCwweDAzLDB4MzQsMHgwMCwweGY5LDB4ODEsMHgzZSwweDY4LDB4MDgsMHhjMSwweDQzLDB4ZmEsMHgwMCB9LAotICAxNiwgMHhjZjEwLCAwLCB7MHhmNSwweDgwLDB4M2YsMHg2MiwweDBjLDB4MTQsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZjIwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgyMCwweDg4LDB4MTEsMHgyZSwweDEwLDB4MGIsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4ODIsMHgyZSB9LAotICAxNiwgMHhjZjMwLCAwLCB7MHgxMCwweDBiLDB4ODAsMHgwMCwweGUzLDB4YzQsMHg4OCwweGYwLDB4MjIsMHgwMCwweDBiLDB4ODAsMHgwYSwweDIwLDB4MDAsMHhlOCB9LAotICAxNiwgMHhjZjQwLCAwLCB7MHg0MCwweDJmLDB4MTQsMHgwOCwweDg4LDB4MDIsMHhlMiwweDAwLDB4YjgsMHgwMCwweDJlLDB4MDAsMHgwOCwweDg4LDB4MDIsMHg4ZSB9LAotICAxNiwgMHhjZjUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweGM1LDB4MDAsMHhhMSwweDAwLDB4MmMsMHg0MCB9LAotICAxNiwgMHhjZjYwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHhjNCwweDE4LDB4YjEsMHgyMiwweDZjLDB4ZDEsMHgwYiwweDEwLDB4MjYsMHhjNCwweDAwLDB4ODEsMHgwOCB9LAotICAxNiwgMHhjZjcwLCAwLCB7MHgyYSwweDQwLDB4ODgsMHgxMCwweDAyLDB4MDQsMHgwNCwweGI1LDB4YzAsMHgwZiwweDQwLDB4MGIsMHgwMiwweDAyLDB4NDEsMHhhMCB9LAotICAxNiwgMHhjZjgwLCAwLCB7MHhiMSwweDQwLDB4MmMsMHg0MCwweDA4LDB4MTIsMHgwMiwweDAyLDB4MTEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZjkwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDg5LDB4MDYsMHgyZSwweDQwLDB4MGIsMHg5MCwweDEyLDB4ZTQsMHgwMCwweGI5LDB4NDAsMHgyZSB9LAotICAxNiwgMHhjZmEwLCAwLCB7MHg0MCwweDBiLDB4YjAsMHg4MiwweGM0LDB4MDIsMHg4OSwweDQ0LDB4MjIsMHg0MCwweDBhLDB4OTAsMHgwMiwweDI0LDB4MDAsMHhhOSB9LAotICAxNiwgMHhjZmIwLCAwLCB7MHgwMCwweDI3LDB4NDgsMHgwOSwweGIwLDB4MTIsMHhlYywweDE4LDB4YjksMHgwMSwweDJlLDB4NDAsMHg0MCwweDkwLDB4MDIsMHg4NiB9LAotICAxNiwgMHhjZmMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU3LDB4ODQsMHhlOSwweDAxLDB4M2UsMHg0MCB9LAotICAxNiwgMHhjZmQwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NzIsMHgwZiwweDkwLDB4MDMsMHhlNywweDYwLDB4ODksMHgxMCB9LAotICAxNiwgMHhjZmUwLCAwLCB7MHgzYSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4NDQsMHgzYywweDQwLDB4MmQsMHg5MCwweDAzLDB4ZTcsMHg2MCB9LAotICAxNiwgMHhjZmYwLCAwLCB7MHhmOSwweDcxLDB4M2UsMHg0MCwweDI4LDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMDAwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHg0OCwweGE5LDB4MDAsMHgzZSwweGMwLDB4MGYsMHg5YSwweDQzLDB4ZWMsMHgwMCwweGY5LDB4MjAsMHg3ZSB9LAotICAxNiwgMHhkMDEwLCAwLCB7MHhjOCwweDBmLDB4OWEsMHgwNywweDY2LDB4MDAsMHg3OSwweDgwLDB4N2UsMHg0MCwweDBmLDB4MWMsMHgwMywweGU3LDB4MDAsMHhlOSB9LAotICAxNiwgMHhkMDIwLCAwLCB7MHhhMCwweDNlLDB4NDAsMHg0NiwweDgwLDB4MDMsMHhlMCwweDIwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSB9LAotICAxNiwgMHhkMDMwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweDgwLDB4MDAsMHhmOCwweDAwLDB4M2EsMHgwMCB9LAotICAxNiwgMHhkMDQwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhMCwweDA4LDB4ZTgsMHg0MCwweDNhLDB4MTAsMHgwYywweDgzLDB4MDMsMHhhMSwweGMwLDB4ZjAsMHg0MCB9LAotICAxNiwgMHhkMDUwLCAwLCB7MHgzZSwweDA2LDB4MGYsMHg4NCwweDAzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHgzYiwweDAwLDB4MGYsMHg4MSwweDAzLDB4MjAsMHgwMCB9LAotICAxNiwgMHhkMDYwLCAwLCB7MHhmOCwweDEwLDB4YjIsMHgwMCwweDRjLDB4ODAsMHgwYiwweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMDcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyZSwweGIwLDB4MGIsMHhlOCwweDAyLDB4ZTksMHgwMCwweDNlLDB4OTAsMHgwMiB9LAotICAxNiwgMHhkMDgwLCAwLCB7MHg4MSwweDA4LDB4ZTQsMHgxMiwweDc4LDB4MDAsMHhiYSwweDAwLDB4MmQsMHhiMCwweDg5LDB4ZTgsMHgyMiwweGY4LDB4MGMsMHhiYSB9LAotICAxNiwgMHhkMDkwLCAwLCB7MHgwMCwweDZlLDB4ODAsMHgwMywweGM1LDB4MDMsMHgzMCwweDAwLDB4YmEsMHgwMCwweDIyLDB4YTgsMHgwOCwweGEwLDB4MjIsMHg4YSB9LAotICAxNiwgMHhkMGEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjgsMHhlOCB9LAotICAxNiwgMHhkMGIwLCAwLCB7MHgxYiwweDMxLDB4MTIsMHg4YywweGM0LDB4YTMsMHg5MiwweDJjLDB4NDAsMHg4OCwweDM0LDB4MDYsMHg4ZSwweDAwLDB4OTMsMHgwMCB9LAotICAxNiwgMHhkMGMwLCAwLCB7MHgyYywweGYwLDB4MTksMHgzMSwweGEyLDB4Y2MsMHgwNCwweGIzLDB4MDAsMHgyOCwweDgwLDB4MDEsMHgzOCwweDAyLDB4NGMsMHgwMCB9LAotICAxNiwgMHhkMGQwLCAwLCB7MHhiMywweDgwLDB4MjAsMHhlMCwweDBhLDB4YjAsMHgxMiwweDAyLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMGUwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHgwMCwweGI3LDB4MTQsMHgyZCwweDQyLDB4MGIsMHg2MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4ODEsMHgyNyB9LAotICAxNiwgMHhkMGYwLCAwLCB7MHhlMCwweDE4LDB4NjAsMHgwMiwweDU4LDB4MTgsMHhiNywweDIyLDB4MmQsMHg4MCwweDA5LDB4NzAsMHgyMiwweGRjLDB4MDAsMHhiNyB9LAotICAxNiwgMHhkMTAwLCAwLCB7MHgwMCwweDJkLDB4ODAsMHgwYiwweDNiLDB4MDIsMHgxZCwweGQwLDB4YmYsMHg4MCwweDI4LDB4YzAsMHg4YSwweGYyLDB4MDIsMHhhMCB9LAotICAxNiwgMHhkMTEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFmLDB4ODAsMHhmNywweGEwLDB4MzksMHhlMiB9LAotICAxNiwgMHhkMTIwLCAwLCB7MHgwZiwweDY4LDB4MDMsMHg5ZSwweDAwLDB4ZWQsMHg4NCwweDNkLDB4ZTIsMHg0NCwweDc4LDB4MDMsMHg5ZSwweDAwLDB4ZjcsMHhiNCB9LAotICAxNiwgMHhkMTMwLCAwLCB7MHgyZCwweGUwLDB4MGQsMHg2OCwweDAzLDB4ZDYsMHgwMCwweGY2LDB4ODAsMHgzOSwweGUwLDB4MGYsMHg3OSwweDAzLDB4NWUsMHg5MCB9LAotICAxNiwgMHhkMTQwLCAwLCB7MHhmNywweDgxLDB4MzEsMHg2MCwweDJlLDB4N2MsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMTUwLCAwLCB7MHgwOCwweDFkLDB4YWQsMHgwMCwweGZiLDB4NDIsMHgzZSwweGM4LDB4MGYsMHhhMCwweDAzLDB4ZWQsMHhhMCwweGJiLDB4MDAsMHgzOCB9LAotICAxNiwgMHhkMTYwLCAwLCB7MHhjOCwweDBmLDB4YjAsMHgwMywweDY4LDB4MDAsMHhmYiwweDExLDB4M2UsMHg0MCwweDA5LDB4YjAsMHg0MSwweGVjLDB4MDAsMHhmYSB9LAotICAxNiwgMHhkMTcwLCAwLCB7MHgwMiwweDNlLDB4YzAsMHgwZiwweGIyLDB4MGIsMHhlZCwweDgwLDB4M2IsMHgwMCwweDM2LDB4NDAsMHgwZCwweGIwLDB4MjMsMHg0MiB9LAotICAxNiwgMHhkMTgwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZmLDB4MDAsMHhjZiwweGQwLDB4MzMsMHhlNCB9LAotICAxNiwgMHhkMTkwLCAwLCB7MHg0ZiwweGY5LDB4MDMsMHhkZSwweDQwLDB4ZGMsMHg4MCwweDM2LDB4ZTQsMHgwYywweGI5LDB4MTMsMHhmZSwweDAwLDB4Y2YsMHg5MCB9LAotICAxNiwgMHhkMWEwLCAwLCB7MHgzNywweGU1LDB4MGYsMHhmOCwweDQzLDB4ZmUsMHgwMCwweGNmLDB4OTIsMHgzZiwweGE0LDB4MGYsMHg3OCwweDAzLDB4MWYsMHgwMCB9LAotICAxNiwgMHhkMWIwLCAwLCB7MHhjNSwweDgwLDB4MzMsMHg2MCwweDBjLDB4ZjgsMHgyMCwweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMWMwLCAwLCB7MHhhOCwweDExLDB4YmMsMHgwMCwweDBmLDB4MTAsMHgyMSwweDgxLDB4MGIsMHg2MCwweDAzLDB4ODQsMHgwMCwweDhiLDB4MDgsMHgyMSB9LAotICAxNiwgMHhkMWQwLCAwLCB7MHg2MCwweDBhLDB4N2IsMHgwMywweDk4LDB4MDAsMHg4YiwweDEwLDB4MjksMHg4NCwweDBlLDB4NjQsMHgyMiwweGRjLDB4NDAsMHhkNyB9LAotICAxNiwgMHhkMWUwLCAwLCB7MHgwMiwweDJkLDB4ODQsMHgwYiwweDcwLDB4MDIsMHgxYywweDAwLDB4ODUsMHgxOCwweDIxLDB4NDAsMHgwYSwweGYwLDB4MjIsMHhhYSB9LAotICAxNiwgMHhkMWYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhNywweDE0LDB4NjksMHhjMCB9LAotICAxNiwgMHhkMjAwLCAwLCB7MHgxYSwweDYwLDB4MTIsMHhmYywweDAxLDB4YTQsMHgxMCwweDJkLDB4YzAsMHgwYSwweDUyLDB4MDIsMHg0NSwweDQwLDB4ODcsMHgwYyB9LAotICAxNiwgMHhkMjEwLCAwLCB7MHgyMSwweDgwLDB4MWIsMHg2MCwweDgyLDB4ZDQsMHgwMCwweDg2LDB4MDMsMHgyNSwweGUwLDB4MWIsMHg3MCwweDAyLDB4NWMsMHg0MCB9LAotICAxNiwgMHhkMjIwLCAwLCB7MHg5ZCwweDAwLDB4MjksMHg0MCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMjMwLCAwLCB7MHgyMCwweDE0LDB4Y2QsMHgwMCwweGEzLDB4MDAsMHgyOCwweGMwLDB4MWIsMHgyMCwweDIyLDB4OGMsMHgxMSwweGEzLDB4MDAsMHg2OCB9LAotICAxNiwgMHhkMjQwLCAwLCB7MHhmNiwweDBhLDB4M2MsMHgwNiwweDgyLDB4MDAsMHg4MywweDgwLDB4MjgsMHg4NCwweDBhLDB4OGMsMHg4MiwweGNjLDB4NDQsMHg5MiB9LAotICAxNiwgMHhkMjUwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg0ZSwweDAwLDB4OTEsMHgwMCwweDI4LDB4NDAsMHgwYSwweDMwLDB4MDIsMHg4OCB9LAotICAxNiwgMHhkMjYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJlLDB4MjIsMHhlZiwweDA0LDB4YmEsMHhjMCB9LAotICAxNiwgMHhkMjcwLCAwLCB7MHgwZiwweDE0LDB4OTMsMHhlYywweDAyLDB4ZjEsMHhjMywweDNlLDB4ZjAsMHgwZSwweDkwLDB4ODMsMHg2NiwweDAwLDB4Y2YsMHhkMiB9LAotICAxNiwgMHhkMjgwLCAwLCB7MHgzMiwweDUwLDB4MGYsMHg5YywweDAzLDB4Y2IsMHgwMCwweGM5LDB4ODAsMHgzZSwweDI4LDB4MGYsMHhiMCwweDAzLDB4NGYsMHgwMCB9LAotICAxNiwgMHhkMjkwLCAwLCB7MHhkMSwweGMwLDB4YWEsMHhjMCwweDBjLDB4NzEsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMmEwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgyMCwweGRiLDB4MDAsMHgyNiwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZWMsMHgwOCwweDFiLDB4MDAsMHgzNiB9LAotICAxNiwgMHhkMmIwLCAwLCB7MHhjMCwweDBmLDB4ODYsMHgwMSwweGU1LDB4NDAsMHhmYiwweDAyLDB4M2EsMHg0OCwweDBlLDB4OTQsMHgwMywweGVjLDB4ODAsMHhmMSB9LAotICAxNiwgMHhkMmMwLCAwLCB7MHg4NCwweDNlLDB4MDAsMHg0ZiwweGIwLDB4MDMsMHhhZCwweGMwLDB4ZWIsMHgyMCwweDM2LDB4YzAsMHgwZiwweGIwLDB4MjMsMHhlMCB9LAotICAxNiwgMHhkMmQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGRjLDB4MDAsMHhjZiwweDAwLDB4M2YsMHg2MCB9LAotICAxNiwgMHhkMmUwLCAwLCB7MHgwYywweGUwLDB4ODMsMHgzZSwweDgwLDB4ZWQsMHgwOCwweDMzLDB4ZDAsMHg4ZiwweDUwLDB4MDMsMHg5ZSwweDAwLDB4ZGYsMHgwMCB9LAotICAxNiwgMHhkMmYwLCAwLCB7MHgzMywweDQwLDB4MGMsMHhjMCwweDAzLDB4MzAsMHgwMCwweGNjLDB4MTAsMHgzMywweDY4LDB4MGMsMHhmMCwweDAzLDB4M2MsMHg4NCB9LAotICAxNiwgMHhkMzAwLCAwLCB7MHg4ZCwweDkwLDB4MzAsMHg0MCwweDBjLDB4ZjAsMHgwMywweDA4LDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMzEwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4MDIsMHgyYywweGY0LDB4MDgsMHhhOCwweDYyLDB4MGMsMHg4MCwweDhiLDB4ODAsMHgyYSB9LAotICAxNiwgMHhkMzIwLCAwLCB7MHg2MCwweDBmLDB4OWMsMHgwMiwweDJlLDB4MDAsMHg4YiwweDAwLDB4MjAsMHg2MCwweDBkLDB4OTgsMHgwMiwweDJjLDB4ODAsMHhkOCB9LAotICAxNiwgMHhkMzMwLCAwLCB7MHgwMCwweDE0LDB4NDAsMHgwOCwweDM0LDB4MTIsMHgyZSwweDAwLDB4OGIsMHg4MiwweDMyLDB4NDAsMHgwZCwweGIwLDB4MDMsMHg2MCB9LAotICAxNiwgMHhkMzQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHhkMCB9LAotICAxNiwgMHhkMzUwLCAwLCB7MHgwOCwweGI4LDB4MDIsMHgyYywweDAwLDB4OGEsMHg4NCwweDIyLDB4YzAsMHgwYiwweDg4LDB4MDIsMHhlNCwweGEwLDB4ODMsMHgwMCB9LAotICAxNiwgMHhkMzYwLCAwLCB7MHgyMiwweDYyLDB4MGEsMHg5OCwweDAyLDB4MjgsMHgwMCwweDg5LDB4MDAsMHgyMiwweDAwLDB4MGEsMHhiMSwweDA2LDB4MmMsMHgwMCB9LAotICAxNiwgMHhkMzcwLCAwLCB7MHhhYiwweDAwLDB4MjIsMHg0MCwweDA4LDB4YjAsMHgwMiwweDYwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMzgwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMiwweGEzLDB4MDAsMHgyYywweGMxLDB4MDgsMHgyMCwweDAyLDB4MGMsMHgwMiwweDhiLDB4MDAsMHgyOCB9LAotICAxNiwgMHhkMzkwLCAwLCB7MHhjMiwweDBhLDB4MDAsMHgwMiwweDQ0LDB4MTAsMHg4MywweDEwLDB4MjIsMHg0MCwweDBiLDB4MTAsMHgwNiwweDBjLDB4MDAsMHg5MSB9LAotICAxNiwgMHhkM2EwLCAwLCB7MHgwNCwweGFhLDB4MDAsMHgyOCwweDMwLDB4MDIsMHgyYywweDAwLDB4YTEsMHgwMSwweDIwLDB4NDAsMHgwOSwweGIwLDB4MDIsMHg0MiB9LAotICAxNiwgMHhkM2IwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDAsMHg4ZiwweDAwLDB4M2UsMHhjMCB9LAotICAxNiwgMHhkM2MwLCAwLCB7MHgyYywweGEwLDB4MDMsMHgyOSwweDQwLDB4YTgsMHg0MCwweDMyLDB4Y2MsMHg4YiwweDgwLDB4MDIsMHhlMCwweDAwLDB4Y2YsMHg0MCB9LAotICAxNiwgMHhkM2QwLCAwLCB7MHgzMiwweDAwLDB4MGUsMHg4MCwweDBhLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyMiwweDQwLDB4MGMsMHhiMCwweDAzLDB4MmMsMHgwNCB9LAotICAxNiwgMHhkM2UwLCAwLCB7MHhlYiwweDAwLDB4YjIsMHg0MCwweDhjLDB4YjAsMHgwMywweDQwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkM2YwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwMCwweGRmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhlMCwweDAzLDB4ZmMsMHg4MCwweGZmLDB4MjgsMHgzZCB9LAotICAxNiwgMHhkNDAwLCAwLCB7MHhjMCwweDBiLDB4YzEsMHgwMywweGIwLDB4MTQsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBkLDB4ZDAsMHgwMywweGRjLDB4MDAsMHhmYyB9LAotICAxNiwgMHhkNDEwLCAwLCB7MHgwMCwweDM3LDB4NDAsMHgwZiwweGYwLDB4MjEsMHhmYywweDAwLDB4MWQsMHgwMCwweDdiLDB4NDAsMHg4ZiwweGYwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhkNDIwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGQyLDB4MDAsMHhkZiwweDAwLDB4MzEsMHhhMCB9LAotICAxNiwgMHhkNDMwLCAwLCB7MHg0ZCwweGYwLDB4NDMsMHgzMiwweDAwLDB4Y2UsMHgxNCwweDFiLDB4NjgsMHgwZSwweGRhLDB4MjMsMHhiMiwweGMwLDB4MmYsMHgwMCB9LAotICAxNiwgMHhkNDQwLCAwLCB7MHgzZiwweGMyLDB4MmMsMHhlOCwweDAzLDB4M2MsMHg0MCwweGZkLDB4MDgsMHgzYiwweGM4LDB4NGMsMHhmMCwweDgzLDB4M2MsMHhhMCB9LAotICAxNiwgMHhkNDUwLCAwLCB7MHhjZiwweDAwLDB4MzMsMHhjNCwweDBjLDB4ZjMsMHgwNywweGYwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNDYwLCAwLCB7MHg4MCwweDEwLDB4ZTIsMHgwMCwweDhmLDB4YzAsMHgyMiwweGEwLDB4MDgsMHhmZCwweDQyLDB4MmYsMHgwMCwweDhiLDB4NzAsMHgyMiB9LAotICAxNiwgMHhkNDcwLCAwLCB7MHgxZSwweDQ4LDB4ODksMHgwMiwweDI3LDB4YzAsMHg4ZiwweDVhLDB4MmUsMHg1MCwweDQ4LDB4MzAsMHgwMiwweGJkLDB4YzAsMHhiZCB9LAotICAxNiwgMHhkNDgwLCAwLCB7MHg0MCwweDIzLDB4YzUsMHg0OCwweGY0LDB4ODIsMHgzZCwweDJjLDB4ODcsMHg3MCwweDIyLDB4YzAsMHgwOCwweGYxLDB4MDMsMHhlMCB9LAotICAxNiwgMHhkNDkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGUwLDB4MDAsMHg5MywweDEwLDB4MjYsMHg4MSB9LAotICAxNiwgMHhkNGEwLCAwLCB7MHg0OSwweDMwLDB4MDIsMHg4MCwweDQwLDB4ODMsMHgyMCwweDI4LDB4NDAsMHgwYSwweDEwLDB4MDIsMHg4MCwweDAwLDB4YTMsMHgyNCB9LAotICAxNiwgMHhkNGIwLCAwLCB7MHgyYywweGNhLDB4MDgsMHgzMiwweDgyLDB4MGMsMHgwMCwweDkxLDB4MjgsMHgyMCwweGNhLDB4MWIsMHgzMiwweDAyLDB4MGMsMHg4OCB9LAotICAxNiwgMHhkNGMwLCAwLCB7MHg4MywweDA5LDB4MjAsMHhjOCwweDA5LDB4MzIsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNGQwLCAwLCB7MHhjMCwweDE1LDB4YTMsMHgxNCwweDhiLDB4MDQsMHgyNiwweDg5LDB4MDgsMHhiMCwweDAyLDB4YWMsMHgyMiwweDhiLDB4ODgsMHgyYSB9LAotICAxNiwgMHhkNGUwLCAwLCB7MHgyMCwweDA4LDB4OTgsMHg4MiwweGE2LDB4MTAsMHhhYiwweDAwLDB4MmUsMHhjYSwweDA4LDB4YjAsMHg4MiwweGFjLDB4MDAsMHhiOSB9LAotICAxNiwgMHhkNGYwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgyOSwweGIwLDB4MGEsMHgyYywweDAxLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgwOSwweGIwLDB4MjIsMHhmMCB9LAotICAxNiwgMHhkNTAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGUzLDB4MDAsMHhkYiwweDAwLDB4MzQsMHhlMiB9LAotICAxNiwgMHhkNTEwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHhhMywweDAwLDB4Y2EsMHg4MCwweGJhLDB4NzAsMHgwZSwweDg4LDB4MDMsMHhhNiwweDAwLDB4ZWIsMHgwMCB9LAotICAxNiwgMHhkNTIwLCAwLCB7MHgzZSwweDkwLDB4MGMsMHhiNSwweDAzLDB4MmMsMHgwMCwweGZiLDB4MTAsMHhiYSwweGMwLDB4MGUsMHhiMCwweDAzLDB4MmMsMHgwMiB9LAotICAxNiwgMHhkNTMwLCAwLCB7MHhjYiwweDAyLDB4MzIsMHhjMCwweDA5LDB4YjAsMHgwMiwweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNTQwLCAwLCB7MHhlMCwweDAxLDB4YjAsMHgwOCwweGZmLDB4MDAsMHhiYiwweGUwLDB4MGYsMHg3MCwweDAzLDB4NjUsMHgwMCwweGY0LDB4MDAsMHgzNSB9LAotICAxNiwgMHhkNTUwLCAwLCB7MHg0MCwweDBmLDB4NDAsMHgwMywweDU0LDB4MDAsMHhkZiwweDAwLDB4M2UsMHg0MCwweDBmLDB4ZjgsMHgwMywweGVjLDB4MDAsMHhmNyB9LAotICAxNiwgMHhkNTYwLCAwLCB7MHgwMSwweDNkLDB4YzEsMHgwZSwweDMwLDB4MDMsMHhlYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg4ZSwweGYwLDB4MDMsMHhiOCB9LAotICAxNiwgMHhkNTcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGEwLDB4NDAsMHhlYiwweDA4LDB4M2UsMHg4MCB9LAotICAxNiwgMHhkNTgwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHgwMCwweDNhLDB4NTEsMHgwZiwweDgyLDB4MDMsMHg2NCwweDIwLDB4ZGIsMHgwMCB9LAotICAxNiwgMHhkNTkwLCAwLCB7MHgzZCwweDgyLDB4MGMsMHhiYywweDAzLDB4MmMsMHgxMCwweGRiLDB4MDAsMHg3MiwweGMwLDB4MGQsMHhiMSwweDAzLDB4MGMsMHgyMCB9LAotICAxNiwgMHhkNWEwLCAwLCB7MHhkMywweDAwLDB4MzIsMHhjMCwweDBmLDB4YjAsMHgwYiwweDUwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNWIwLCAwLCB7MHhjOCwweDA1LDB4MDEsMHgwMCwweDg3LDB4YzAsMHgyZSwweGE4LDB4MDgsMHhmMSwweDEyLDB4YzUsMHg0MCwweDg4LDB4MDAsMHgyMiB9LAotICAxNiwgMHhkNWMwLCAwLCB7MHg0MCwweDBiLDB4ODQsMHgwMiwweDI3LDB4MDAsMHhhZiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YmMsMHgxMiwweDNjLDB4MDAsMHg4YiB9LAotICAxNiwgMHhkNWQwLCAwLCB7MHgwMSwweDIzLDB4YzAsMHgyOCwweGY1LDB4NGEsMHgzZCwweDI4LDB4ZGYsMHgwMCwweDMzLDB4YzAsMHg0YiwweGYwLDB4MDMsMHgzMiB9LAotICAxNiwgMHhkNWUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ4LDB4ODAsMHhhMywweDkwLDB4MmMsMHgwMCB9LAotICAxNiwgMHhkNWYwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHhjMSwweDAwLDB4OTIsMHgwNCwweDI4LDB4MDAsMHgwYiwweDE0LDB4MTIsMHg0MywweDAwLDB4YjMsMHgwNCB9LAotICAxNiwgMHhkNjAwLCAwLCB7MHgyYywweDMwLDB4MGEsMHhiMCwweDBhLDB4OGMsMHgwMCwweDkzLDB4MDAsMHg2MCwweGMwLDB4MDgsMHgzYywweDA2LDB4MGUsMHgwMSB9LAotICAxNiwgMHhkNjEwLCAwLCB7MHhiMywweDAwLDB4MmUsMHhjMCwweDhiLDB4MzAsMHgwNiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNjIwLCAwLCB7MHgyMCwweDAxLDB4MTIsMHgwMCwweDg3LDB4ODAsMHgyZCwweDI0LDB4MDgsMHg3OCwweDAyLDB4ZDIsMHgwMCwweDk1LDB4ODAsMHgyMSB9LAotICAxNiwgMHhkNjMwLCAwLCB7MHhhMCwweDBiLDB4NjgsMHgwMiwweDVhLDB4MjAsMHg4NywweDgwLDB4MmQsMHg2NiwweDFhLDB4N2MsMHgwMiwweDllLDB4MDAsMHg4NyB9LAotICAxNiwgMHhkNjQwLCAwLCB7MHg4MCwweDIxLDB4ZTEsMHgxOCwweDc5LDB4MDIsMHg5ZSwweDQwLDB4YjcsMHg4MCwweGExLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHg0OCB9LAotICAxNiwgMHhkNjUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDAwLDB4MDAsMHhlMywweGEwLDB4M2MsMHg0MCB9LAotICAxNiwgMHhkNjYwLCAwLCB7MHgwYywweDMwLDB4MDMsMHhjNCwweDIyLDB4ZDksMHgwMCwweDM4LDB4ZDQsMHgwZiwweDMwLDB4ODMsMHg2OCwweDQwLDB4ZjMsMHgwMCB9LAotICAxNiwgMHhkNjcwLCAwLCB7MHgzYywweDgwLDB4MGEsMHgzMiwweDAyLDB4OGMsMHgwMCwweGRiLDB4MDAsMHhhMiwweGM0LDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCB9LAotICAxNiwgMHhkNjgwLCAwLCB7MHhmMywweDAwLDB4M2MsMHhjMCwweDBmLDB4YjEsMHgwMywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNjkwLCAwLCB7MHg0MCwweDBkLDB4YjAsMHgwMCwweGZmLDB4MTAsMHgzZiwweDQwLDB4MGUsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGVkLDB4MDAsMHgzZiB9LAotICAxNiwgMHhkNmEwLCAwLCB7MHhjMCwweDBmLDB4MzAsMHgxMywweGJjLDB4NDAsMHg3ZiwweDEwLDB4M2YsMHhjMSwweDJkLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhmYiB9LAotICAxNiwgMHhkNmIwLCAwLCB7MHg0MCwweDNmLDB4YzIsMHgwZSwweGY0LDB4ODMsMHg3YywweDAwLDB4ZGYsMHgwMCwweDNmLDB4YzIsMHgwZiwweGYwLDB4MDMsMHg5MCB9LAotICAxNiwgMHhkNmMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDAsMHhkYiwweGEwLDB4MzIsMHhjMCB9LAotICAxNiwgMHhkNmQwLCAwLCB7MHgwZCwweGI3LDB4MDMsMHhlMCwweDAwLDB4Y2EsMHgwNCwweDNlLDB4ODAsMHgwZiwweGI4LDB4MDMsMHgyYywweDEwLDB4ZmIsMHgwMCB9LAotICAxNiwgMHhkNmUwLCAwLCB7MHgzMywweDAwLDB4OGQsMHhiMCwweDAzLDB4MmMsMHg4MCwweGU5LDB4NDAsMHgzZSwweGQyLDB4MGYsMHhiNCwweDAzLDB4MmQsMHg4MCB9LAotICAxNiwgMHhkNmYwLCAwLCB7MHhlYiwweDIwLDB4YjIsMHhjMCwweDBmLDB4YjIsMHgwMywweGVhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNzAwLCAwLCB7MHg0OCwweDExLDB4OTAsMHgwMCwweGI3LDB4MTAsMHgxMSwweGMwLDB4MDgsMHg3MCwweDgyLDB4ZDgsMHgwYSwweDg3LDB4MDEsMHgyZCB9LAotICAxNiwgMHhkNzEwLCAwLCB7MHg4MCwweDg5LDB4NzAsMHgwMywweGQ4LDB4MDgsMHhiNywweDBhLDB4MjEsMHg0MCwweDJjLDB4NzAsMHgwMiwweDBkLDB4YzAsMHg4NSB9LAotICAxNiwgMHhkNzIwLCAwLCB7MHgwMSwweDc5LDB4YzgsMHgwYiwweDMyLDB4MDIsMHgwZCwweDIwLDB4OGYsMHgyOCwweDIxLDB4YzAsMHgwYiwweDcyLDB4ODIsMHhkMiB9LAotICAxNiwgMHhkNzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHg0MCwweDk2LDB4MTAsMHg5NywweDkwLDB4MjMsMHhlMCB9LAotICAxNiwgMHhkNzQwLCAwLCB7MHgwOSwweDdhLDB4MDIsMHhkNiwweDAwLDB4OTcsMHg4MCwweDJkLDB4ZjAsMHgwYiwweDc4LDB4ODIsMHgxZSwweDAwLDB4YjMsMHhiMCB9LAotICAxNiwgMHhkNzUwLCAwLCB7MHgyMSwweGEwLDB4MDgsMHg3OCwweDAyLDB4MWUsMHgwMCwweGE1LDB4ODAsMHgyZCwweGUwLDB4MGIsMHg3YSwweDAyLDB4MWUsMHg4MCB9LAotICAxNiwgMHhkNzYwLCAwLCB7MHhhNywweGIwLDB4MjEsMHhlOCwweDBiLDB4NzksMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNzcwLCAwLCB7MHg0OCwweDE0LDB4YzAsMHgwMCwweGIzLDB4MDAsMHgyMCwweGUyLDB4MDgsMHgzMCwweDAyLDB4YzYsMHg0MCwweDkzLDB4NzAsMHgyYyB9LAotICAxNiwgMHhkNzgwLCAwLCB7MHhjMCwweDA5LDB4M2MsMHgwMiwweDhlLDB4MDAsMHhiMywweDAwLDB4MjAsMHhkOCwweDA4LDB4MTgsMHgwMiwweDBjLDB4MDAsMHg4MSB9LAotICAxNiwgMHhkNzkwLCAwLCB7MHg5MCwweDJlLDB4YzAsMHgwYiwweDMwLDB4MmEsMHgyYywweDEwLDB4ODMsMHgwMCwweGEwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhkMiB9LAotICAxNiwgMHhkN2EwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxMSwweGI5LDB4MDAsMHhkYSwweDAyLDB4MzMsMHhiOCB9LAotICAxNiwgMHhkN2IwLCAwLCB7MHgwZCwweGEwLDB4MDMsMHhmOCwweDAwLDB4ZGUsMHhjMCwweDNmLDB4YjAsMHg0ZiwweGVjLDB4MDYsMHgzOCwweDQwLDB4ZmEsMHgwMCB9LAotICAxNiwgMHhkN2MwLCAwLCB7MHhiMywweDkwLDB4MGMsMHg2YywweDBiLDB4MjgsMHgwOCwweGVhLDB4MDEsMHg3ZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4MjgsMHgwMCB9LAotICAxNiwgMHhkN2QwLCAwLCB7MHhlYSwweDAwLDB4MzIsMHg4MCwweDBmLDB4YTAsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkN2UwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4NDAsMHgzYSwweDAwLDB4MGYsMHg4NCwweDAzLDB4ZTEsMHgwMCwweGU4LDB4MDIsMHgzZSB9LAotICAxNiwgMHhkN2YwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHgwMywweGUxLDB4NDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4MDAsMHhmOCB9LAotICAxNiwgMHhkODAwLCAwLCB7MHgwMCwweDNhLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhkODEwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MjAsMHhmOSwweGMwLDB4M2UsMHg3MCB9LAotICAxNiwgMHhkODIwLCAwLCB7MHgwZSwweDkwLDB4MDIsMHhlNCwweDgwLDB4YzksMHgwMCwweDMyLDB4NDIsMHgwYywweDk4LDB4ODMsMHhhNCwweDg0LDB4ZjksMHgwMCB9LAotICAxNiwgMHhkODMwLCAwLCB7MHhiMiwweDYwLDB4MGMsMHg5MCwweDgzLDB4MjQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHgxYSwweDAyLDB4MjQsMHgwMCB9LAotICAxNiwgMHhkODQwLCAwLCB7MHhjMSwweDAwLDB4YjIsMHg0MCwweDBmLDB4OTAsMHgwMSwweGMyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkODUwLCAwLCB7MHg4MCwweDA0LDB4NjUsMHgwMCwweGI5LDB4ODEsMHgyYywweDYwLDB4MGQsMHg5NCwweGMyLDB4YzcsMHgwOCwweDg5LDB4MDAsMHgyMiB9LAotICAxNiwgMHhkODYwLCAwLCB7MHg0MCwweDA4LDB4OTUsMHhjNywweGE0LDB4MDAsMHhiOSwweDAwLDB4MjgsMHg3MCwweGE4LDB4OTQsMHgwYSwweDI0LDB4MDAsMHg4OSB9LAotICAxNiwgMHhkODcwLCAwLCB7MHgwNCwweDJlLDB4NDAsMHgyOCwweDkwLDB4MmEsMHgyNiwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhkODgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDQwLDB4MmUsMHg0MCB9LAotICAxNiwgMHhkODkwLCAwLCB7MHgwYSwweDkwLDB4MDIsMHhlNSwweDAwLDB4ODEsMHgwMCwweGEwLDB4NDAsMHgwOSwweDkwLDB4NDIsMHhlYywweDAwLDB4YjEsMHgwMCB9LAotICAxNiwgMHhkOGEwLCAwLCB7MHgyMiwweDU4LDB4MDgsMHg5MCwweGEyLDB4MDQsMHgwMiwweDg5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHhhMCB9LAotICAxNiwgMHhkOGIwLCAwLCB7MHg4OSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOGMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHgwMCwweGIxLDB4MjAsMHgyZSwweGMwLDB4ODksMHgxMiwweDAyLDB4YzQsMHg4MCwweDgxLDB4MjAsMHgyMCB9LAotICAxNiwgMHhkOGQwLCAwLCB7MHg0MCwweDYxLDB4MTAsMHg0MiwweGM1LDB4MDAsMHhiMSwweDIwLDB4MjgsMHg0OCwweDE4LDB4OTAsMHg0MiwweDA0LDB4ODAsMHg4MSB9LAotICAxNiwgMHhkOGUwLCAwLCB7MHgyOCwweDJjLDB4NDgsMHgwOCwweDEyLDB4ODIsMHg4NCwweGEwLDB4ODEsMHgyMCwweDIwLDB4NDgsMHgwYiwweDEyLDB4ODIsMHhjMiB9LAotICAxNiwgMHhkOGYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDY4LDB4MDAsMHhmOCwweDAwLDB4MmUsMHgwMCB9LAotICAxNiwgMHhkOTAwLCAwLCB7MHgwZSwweDgwLDB4MDMsMHhlMCwweDA4LDB4YzgsMHg1MCwweDMyLDB4MTQsMHgwZCwweDgwLDB4MTcsMHhlOCwweDA0LDB4ZjgsMHg1MCB9LAotICAxNiwgMHhkOTEwLCAwLCB7MHgzMiwweDE0LDB4NGMsMHgwNSwweDBiLDB4MjEsMHg0MCwweGM4LDB4MjAsMHgzZSwweDAwLDB4MGMsMHg4NywweDAzLDB4YTEsMHhjMiB9LAotICAxNiwgMHhkOTIwLCAwLCB7MHhjOCwweDAwLDB4MzIsMHgxNCwweDhmLDB4ODIsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOTMwLCAwLCB7MHg5OCwweDFkLDB4ZjQsMHgwMCwweGYxLDB4MTAsMHgzZCwweDQwLDB4MGYsMHg5MSwweDAyLDB4ZDQsMHg0MiwweGZkLDB4MTAsMHgzZiB9LAotICAxNiwgMHhkOTQwLCAwLCB7MHg1MSwweDBlLDB4NTQsMHgxMywweGI1LDB4MDAsMHhmOSwweDEwLDB4MzUsMHg0NCwweDJmLDB4ZDAsMHgwMywweGU0LDB4NTAsMHhmZCB9LAotICAxNiwgMHhkOTUwLCAwLCB7MHgyOCwweDNlLDB4NGUsMHgwZiwweDkwLDB4MDMsMHg2NCwweDAwLDB4ZjksMHgzOCwweDNlLDB4NDQsMHgwZiwweDkyLDB4ODMsMHhlNiB9LAotICAxNiwgMHhkOTYwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweGY0LDB4MDAsMHhmZCwweDAwLDB4M2QsMHg0MCB9LAotICAxNiwgMHhkOTcwLCAwLCB7MHgyYywweGQwLDB4MDMsMHhiNiwweDAwLDB4ZjksMHg4MiwweDNlLDB4NDAsMHgwYywweGQwLDB4MDMsMHhmNCwweDAwLDB4ZjksMHg4MCB9LAotICAxNiwgMHhkOTgwLCAwLCB7MHgzMywweDcwLDB4MGMsMHg1MCwweDAzLDB4MzQsMHgwMCwweGM5LDB4YzAsMHgzZSwweDQwLDB4MGMsMHhkYSwweDAzLDB4MTYsMHg4MCB9LAotICAxNiwgMHhkOTkwLCAwLCB7MHhjOSwweDQwLDB4M2UsMHg2MiwweDJjLDB4OTgsMHg4MywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOWEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDAwLDB4MDgsMHg4MCwweDAyLDB4MjgsMHgwMCwweGI4LDB4NTAsMHgyNiB9LAotICAxNiwgMHhkOWIwLCAwLCB7MHgwMCwweDA4LDB4YTAsMHgwMiwweGU4LDB4MDAsMHhiOCwweDAwLDB4MmEsMHgzNCwweDJhLDB4YWEsMHgwYSwweDIwLDB4MDAsMHg4OCB9LAotICAxNiwgMHhkOWMwLCAwLCB7MHhjMCwweDJlLDB4MmEsMHgwOCwweDgwLDB4MjIsMHgyMSwweDAwLDB4YTgsMHg4MCwweDJlLDB4MDAsMHgwOCwweDgwLDB4MDIsMHgwZSB9LAotICAxNiwgMHhkOWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDAwLDB4MmUsMHg0MCB9LAotICAxNiwgMHhkOWUwLCAwLCB7MHg0OCwweDEwLDB4MDYsMHg4ZCwweDAwLDB4YjEsMHgwMCwweDJjLDB4NDAsMHgyOCwweDEwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHg0MCB9LAotICAxNiwgMHhkOWYwLCAwLCB7MHgyYywweDQ4LDB4MDgsMHgxMCwweDgyLDB4NDQsMHgwMCwweDgxLDB4NjAsMHgyYywweDQwLDB4MjgsMHgxNCwweDBhLDB4MDQsMHg0MCB9LAotICAxNiwgMHhkYTAwLCAwLCB7MHg4MSwweDIwLDB4MmMsMHg0MCwweDA4LDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYTEwLCAwLCB7MHgxOCwweDA1LDB4YTQsMHg0MCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHhiMCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MjgsMHgyZSB9LAotICAxNiwgMHhkYTIwLCAwLCB7MHg1MCwweDA4LDB4OTAsMHgyMiwweGU0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg2MCwweDBiLDB4MTIsMHg0MiwweDY0LDB4MDAsMHg4OSB9LAotICAxNiwgMHhkYTMwLCAwLCB7MHgwMCwweDJjLDB4NDAsMHgwOSwweDkwLDB4MDIsMHgyNCwweDAwLDB4YTksMHgwMCwweDJjLDB4NDAsMHgwOCwweDEwLDB4MDIsMHg0NiB9LAotICAxNiwgMHhkYTQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU2LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MiB9LAotICAxNiwgMHhkYTUwLCAwLCB7MHgwYywweDkwLDB4MDMsMHhhNywweDQwLDB4ZjksMHg0MCwweDNlLDB4NzAsMHgwYywweDk4LDB4MDIsMHhlNSwweDQwLDB4ZjksMHgwMCB9LAotICAxNiwgMHhkYTYwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHg5OCwweDAzLDB4NjQsMHgwNiwweGM5LDB4MDEsMHgyZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwNCB9LAotICAxNiwgMHhkYTcwLCAwLCB7MHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwYiwweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYTgwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDgzLDB4ZTYsMHgxMCwweGY5LDB4MDAsMHgzNiB9LAotICAxNiwgMHhkYTkwLCAwLCB7MHg2OCwweDBmLDB4OWMsMHgwMywweGU2LDB4MDAsMHhmOSwweDAwLDB4M2EsMHg0MCwweDBlLDB4OTgsMHg5MywweGE0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhkYWEwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwZSwweDkwLDB4ODMsMHhjNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg4YSB9LAotICAxNiwgMHhkYWIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMCwweGEwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwNCB9LAotICAxNiwgMHhkYWMwLCAwLCB7MHgwYywweDgwLDB4MDMsMHgyMSwweDAyLDB4YzgsMHg0MCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMSwweDAwLDB4ZjAsMHgwMCB9LAotICAxNiwgMHhkYWQwLCAwLCB7MHgzZSwweDAyLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHgwMCwweDAzLDB4MjAsMHgwMCB9LAotICAxNiwgMHhkYWUwLCAwLCB7MHhjOCwweDAwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYWYwLCAwLCB7MHgyOCwweDE1LDB4M2EsMHgwMCwweGJlLDB4MDIsMHgyZiwweGIwLDB4MDgsMHg2OCwweDEyLDB4MzgsMHgwMCwweDhhLDB4MDQsMHgyYSB9LAotICAxNiwgMHhkYjAwLCAwLCB7MHg4MCwweDBiLDB4ZTAsMHg0MiwweGZiLDB4MjAsMHhiYSwweDAwLDB4MmYsMHg5MSwweDA4LDB4ZTAsMHgwMiwweDI4LDB4MDAsMHhiYSB9LAotICAxNiwgMHhkYjEwLCAwLCB7MHgwMCwweDI2LDB4ODAsMHgwOCwweGVlLDB4MGEsMHgzOCwweDAwLDB4OGEsMHgwMCwweDIyLDB4ODAsMHgwYiwweGEwLDB4MDIsMHg4YSB9LAotICAxNiwgMHhkYjIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQyLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMiB9LAotICAxNiwgMHhkYjMwLCAwLCB7MHgyOCwweDM4LDB4MGEsMHg0OCwweDAwLDB4ODMsMHgwNCwweDIyLDB4YzAsMHgwYiwweDEwLDB4MDIsMHhjZCwweDgwLDB4YjMsMHgwMCB9LAotICAxNiwgMHhkYjQwLCAwLCB7MHgyZSwweGMwLDB4MDgsMHgxYywweDAyLDB4MjQsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzNCwweDEyLDB4MGUsMHg0MCB9LAotICAxNiwgMHhkYjUwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgxMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYjYwLCAwLCB7MHhhMCwweDAxLDB4MTEsMHgwMCwweGI3LDB4MDAsMHgyZiwweGMwLDB4MDgsMHg3MCwweGEyLDB4NGUsMHgwMCwweDhmLDB4YjAsMHgyMSB9LAotICAxNiwgMHhkYjcwLCAwLCB7MHhjYywweDBiLDB4NjAsMHgxMiwweGRjLDB4MTAsMHhiNywweDMwLDB4MmQsMHhjMCwweDA4LDB4ZDAsMHg4MiwweDE0LDB4ODAsMHhiNyB9LAotICAxNiwgMHhkYjgwLCAwLCB7MHgxMiwweDI1LDB4YzgsMHgyOCwweDYwLDB4MDIsMHgxNCwweDAwLDB4ODcsMHhiMiwweDIxLDB4Y2MsMHgwYiwweDMxLDB4MDIsMHhhOCB9LAotICAxNiwgMHhkYjkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDEyLDB4MDAsMHhmNywweDgwLDB4M2QsMHhlMCB9LAotICAxNiwgMHhkYmEwLCAwLCB7MHgwYywweDM4LDB4MDMsMHg1NiwweDAwLDB4YzcsMHg5MCwweGIxLDB4ZTQsMHgwZiwweDc4LDB4MDMsMHhkZSwweDAwLDB4ZjcsMHg5MCB9LAotICAxNiwgMHhkYmIwLCAwLCB7MHgxZiwweDYwLDB4MmMsMHg0OCwweDBiLDB4MTYsMHhhMCwweGY3LDB4ODAsMHgzYywweGY0LDB4MGMsMHgzOCwweDAzLDB4MWUsMHgwMCB9LAotICAxNiwgMHhkYmMwLCAwLCB7MHhjZiwweGEwLDB4YjEsMHhlOCwweDBmLDB4N2IsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYmQwLCAwLCB7MHgwOCwweDBkLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweGMwLDB4MGIsMHhiMCwweDAzLDB4YWMsMHgwMCwweGYzLDB4MjEsMHgzZSB9LAotICAxNiwgMHhkYmUwLCAwLCB7MHhjOCwweDA3LDB4YjAsMHgwMiwweGU0LDB4MDAsMHhmYiwweDIwLDB4M2YsMHg0MCwweDBmLDB4ODAsMHgwMywweGU0LDB4ODAsMHhmYiB9LAotICAxNiwgMHhkYmYwLCAwLCB7MHgwMCwweDM2LDB4ZDAsMHgwZiwweGEwLDB4MDMsMHhlMCwweDA4LDB4ZmIsMHg0MiwweDNlLDB4ZDgsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhkYzAwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGYwLDB4ODAsMHhjZiwweDgwLDB4MzEsMHhlMSB9LAotICAxNiwgMHhkYzEwLCAwLCB7MHgwYywweGY4LDB4MDMsMHhkYSwweDEwLDB4ZWYsMHg4MCwweDNmLDB4ZTQsMHgwZiwweGQ4LDB4MDMsMHhmZSwweDEwLDB4ZmYsMHg4MiB9LAotICAxNiwgMHhkYzIwLCAwLCB7MHgzZiwweGUwLDB4NGMsMHhkOCwweDFiLDB4MTYsMHgyMCwweGNmLDB4ODAsMHgzZiwweGUwLDB4NGMsMHhkOCwweDMwLDB4ZWUsMHg0MCB9LAotICAxNiwgMHhkYzMwLCAwLCB7MHhmZiwweGMwLDB4YjMsMHhmNCwweDBmLDB4ZjgsMHgwMywweGMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYzQwLCAwLCB7MHhhOCwweDAxLDB4OTgsMHgyMCwweDgzLDB4NDAsMHgyMSwweGMwLDB4MDgsMHg3MSwweDAyLDB4ZGMsMHg4NCwweDg3LDB4MjAsMHgyZCB9LAotICAxNiwgMHhkYzUwLCAwLCB7MHhjMCwweDBiLDB4NjAsMHgwMiwweGQ5LDB4NjAsMHhmNywweDAwLDB4MmQsMHhjMCwweDA4LDB4ZjAsMHg4MiwweDE0LDB4MDQsMHg4NyB9LAotICAxNiwgMHhkYzYwLCAwLCB7MHgwMCwweDJkLDB4YzAsMHgwOCwweGYwLDB4MDMsMHgxZSwweDAwLDB4YjcsMHgyMCwweDIxLDB4YzAsMHg4YiwweDcwLDB4MDIsMHhlYSB9LAotICAxNiwgMHhkYzcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGIwLDB4MDAsMHg4NywweDAwLDB4MjEsMHg4MCB9LAotICAxNiwgMHhkYzgwLCAwLCB7MHgwOCwweDcwLDB4MDIsMHhmNSwweDA0LDB4MjcsMHgwMCwweDJkLDB4YzAsMHg4YiwweDcwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgwMCB9LAotICAxNiwgMHhkYzkwLCAwLCB7MHgyYywweDUwLDB4MDgsMHg0MCwweDAyLDB4MTQsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MDgsMHg1MCwweDAyLDB4NWMsMHgwNCB9LAotICAxNiwgMHhkY2EwLCAwLCB7MHhiNywweDAwLDB4YTEsMHhjMCwweDhiLDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkY2IwLCAwLCB7MHgyMCwweDE0LDB4YzgsMHgwMCwweDgwLDB4MDAsMHgwMCwweDgwLDB4MDgsMHgzMCwweDAyLDB4Y2UsMHgwMCwweDgzLDB4YzAsMHgyYyB9LAotICAxNiwgMHhkY2MwLCAwLCB7MHhkMCwweDRiLDB4MzAsMHgwMiwweGNlLDB4MDAsMHhhYiwweDAyLDB4MmMsMHg0MCwweDQ4LDB4YmMsMHgwMiwweDA0LDB4MDAsMHg4MyB9LAotICAxNiwgMHhkY2QwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwOCwweDEwLDB4MDIsMHgwMCwweDA4LDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwOSwweDMwLDB4MDIsMHhjOCB9LAotICAxNiwgMHhkY2UwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweDgzLDB4NDAsMHhjOCwweDAwLDB4MzAsMHhjMCB9LAotICAxNiwgMHhkY2YwLCAwLCB7MHgyYywweGIwLDB4MDMsMHhlYywweDAwLDB4ZWYsMHg4OCwweDNmLDB4ZTYsMHgwNywweGIxLDB4ODMsMHhlMSwweDAwLDB4YmYsMHgwMCB9LAotICAxNiwgMHhkZDAwLCAwLCB7MHgzZSwweGUwLDB4MGMsMHhiOCwweDAzLDB4MzQsMHgwMCwweGNmLDB4MDAsMHgzZiwweGMwLDB4MmMsMHhiMCwweDAzLDB4NjgsMHgxMCB9LAotICAxNiwgMHhkZDEwLCAwLCB7MHhmZiwweDAwLDB4MzMsMHhjMCwweDBmLDB4ZjAsMHgwMywweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZDIwLCAwLCB7MHg4MCwweDAwLDB4ZTQsMHgwMCwweGYxLDB4NDAsMHgzZSwweGMwLDB4MGYsMHhiNCwweDAzLDB4ZWQsMHg0MCwweGZiLDB4MDgsMHgzZSB9LAotICAxNiwgMHhkZDMwLCAwLCB7MHhjMCwweDBmLDB4YTAsMHgwMywweGU1LDB4MjAsMHhmYiwweDAwLDB4M2UsMHhlMCwweDBkLDB4YjAsMHg4MywweGU0LDB4MDAsMHhmMyB9LAotICAxNiwgMHhkZDQwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhjNCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweDMwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhkZDUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGYwLDB4MDAsMHhjYSwweDAwLDB4MzMsMHhlMCB9LAotICAxNiwgMHhkZDYwLCAwLCB7MHg0ZSwweGYwLDB4MDMsMHgzNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGU4LDB4MDMsMHhmMCwweDAwLDB4ZmYsMHgwMCB9LAotICAxNiwgMHhkZDcwLCAwLCB7MHhiMSwweDQwLDB4MGMsMHhlMCwweDAzLDB4MzQsMHgwMCwweGVmLDB4MDAsMHhiMywweGMwLDB4MGMsMHhmMCwweDAzLDB4MzgsMHgwMCB9LAotICAxNiwgMHhkZDgwLCAwLCB7MHhjZiwweDAwLDB4M2QsMHhjMCwweDBhLDB4ZjAsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZDkwLCAwLCB7MHg4MSwweDA0LDB4NjIsMHgyMiwweDg4LDB4OTAsMHgyMiwweGUwLDB4MDgsMHgzYywweDAyLDB4MmUsMHgwOCwweGJiLDB4MDEsMHgyZSB9LAotICAxNiwgMHhkZGEwLCAwLCB7MHhjMCwweDBiLDB4YTAsMHgwMiwweDY2LDB4MDAsMHhiYiwweDAwLDB4MjIsMHhhMCwweDA4LDB4YTksMHgwMiwweDI0LDB4MDAsMHhiYiB9LAotICAxNiwgMHhkZGIwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgyOCwweDJjLDB4MDIsMHhhMiwweDAwLDB4ZGIsMHgwMCwweDJlLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhhMCB9LAotICAxNiwgMHhkZGMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDIyLDB4MDAsMHg5OCwweDAwLDB4MjIsMHhjOCB9LAotICAxNiwgMHhkZGQwLCAwLCB7MHgwYSwweDk4LDB4MDIsMHgyNywweDA0LDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIxLDB4MDIsMHhlMiwweDAwLDB4YmIsMHgwMCB9LAotICAxNiwgMHhkZGUwLCAwLCB7MHgyMiwweGUyLDB4MDgsMHhiMCwweDAyLDB4YTQsMHgwMCwweGFiLDB4MDAsMHgyMCwweGMwLDB4MGEsMHg4OCwweDgyLDB4MjMsMHgwMCB9LAotICAxNiwgMHhkZGYwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YjAsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZTAwLCAwLCB7MHgwOCwweDE0LDB4MDQsMHgwMCwweDkxLDB4NDAsMHgyMiwweGMwLDB4MDgsMHgxMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyYyB9LAotICAxNiwgMHhkZTEwLCAwLCB7MHhjMCwweDRiLDB4MjgsMHgyMiwweDQwLDB4MDQsMHhiMywweDAwLDB4MjAsMHhjMCwweDI4LDB4MzAsMHgwYSwweDA0LDB4MDQsMHhiMyB9LAotICAxNiwgMHhkZTIwLCAwLCB7MHgwMCwweDYwLDB4YzAsMHgwOCwweDAwLDB4MDIsMHg4NCwweDIwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwYSwweDMwLDB4MDIsMHg4MiB9LAotICAxNiwgMHhkZTMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDYwLDB4MDAsMHhkYSwweDQwLDB4YjIsMHg4MCB9LAotICAxNiwgMHhkZTQwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGEwLDB4MDMsMHhlMCwweDA5LDB4ZmYsMHgwMCB9LAotICAxNiwgMHhkZTUwLCAwLCB7MHgzMiwweDQwLDB4MDgsMHhhMCwweDBiLDB4MzQsMHgwMCwweGViLDB4MDAsMHgzMSwweGMwLDB4MGMsMHg4MCwweDAzLDB4MjgsMHg4MCB9LAotICAxNiwgMHhkZTYwLCAwLCB7MHhjNywweDAwLDB4M2YsMHhjMCwweDBjLDB4ZjAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZTcwLCAwLCB7MHhhMCwweDE1LDB4ZDAsMHgwMCwweGVjLDB4MjAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDBiLDB4ZmMsMHgxMCwweGZmLDB4MDEsMHgzZiB9LAotICAxNiwgMHhkZTgwLCAwLCB7MHhjMCwweDBmLDB4ZTAsMHgwMywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGY0LDB4MDAsMHhmZiB9LAotICAxNiwgMHhkZTkwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHg0ZiwweGMwLDB4MDEsMHhmMCwweDA4LDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhkZWEwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4MDAsMHhjYywweDkwLDB4MzcsMHgyMCB9LAotICAxNiwgMHhkZWIwLCAwLCB7MHgwZSwweGYwLDB4MTMsMHhiZCwweDA0LDB4ZDQsMHhjMSwweDMzLDB4MmMsMHg0YywweGQ5LDB4MjMsMHgzMiwweDYwLDB4ZmYsMHgyMCB9LAotICAxNiwgMHhkZWMwLCAwLCB7MHgzZCwweGUwLDB4NGYsMHhjMSwweDAzLDB4YjYsMHg0MCwweGNkLDB4MDAsMHgzNywweGUwLDB4MGMsMHhlMiwweDhiLDB4MTAsMHhjMCB9LAotICAxNiwgMHhkZWQwLCAwLCB7MHhjZCwweDAwLDB4MzMsMHhjNiwweDBmLDB4ZDgsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZWUwLCAwLCB7MHg4MCwweDEwLDB4ZWUsMHgwOCwweDhhLDB4MjAsMHgyMiwweDAwLDB4MDgsMHhiNywweDAyLDB4MmQsMHgwMCwweDhhLDB4MDAsMHhiNiB9LAotICAxNiwgMHhkZWYwLCAwLCB7MHgzYywweDA4LDB4OTksMHgwMiwweDI3LDB4ODQsMHhiZiwweDY4LDB4MmUsMHg4MiwweDBiLDB4MDEsMHgwMiwweDI0LDB4NDAsMHhkOSB9LAotICAxNiwgMHhkZjAwLCAwLCB7MHg0MiwweDIwLDB4YzAsMHg4YSwweGFjLDB4MDIsMHgyZCwweGMyLDB4ODIsMHg0OCwweGEyLDB4ZDAsMHgwYiwweDgyLDB4MDIsMHgyMCB9LAotICAxNiwgMHhkZjEwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg4OCwweDA0LDB4MjYsMHg4MCB9LAotICAxNiwgMHhkZjIwLCAwLCB7MHgyYSwweDMwLDB4YzIsMHhhNSwweDgwLDB4YTksMHgyMSwweDI4LDB4MDAsMHg4YSwweDAwLDB4MDIsMHgwMCwweDAwLDB4YTMsMHgxMCB9LAotICAxNiwgMHhkZjMwLCAwLCB7MHgyYywweGM4LDB4MGIsMHgwMCwweDAyLDB4YzQsMHg5MCwweDgzLDB4NDIsMHgyNCwweGMxLDB4MDgsMHgwMCwweDAyLDB4NDAsMHg4OCB9LAotICAxNiwgMHhkZjQwLCAwLCB7MHhhMywweDYwLDB4YTgsMHhjMCwweDBiLDB4MDAsMHhjMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZjUwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwNiwweDhhLDB4MDAsMHgyMiwweGUwLDB4NDgsMHhiMCwweDAyLDB4MmUsMHgwMiwweGFiLDB4ODAsMHgyZSB9LAotICAxNiwgMHhkZjYwLCAwLCB7MHgyMCwweDRhLDB4OGMsMHgwMiwweDI2LDB4MjAsMHhiYiwweDAwLDB4NmUsMHg4MCwweDBiLDB4MzAsMHhjMiwweDQ2LDB4MDQsMHg5YiB9LAotICAxNiwgMHhkZjcwLCAwLCB7MHgwYSwweGEyLDB4YzAsMHgwYSwweDgwLDB4MTIsMHg2YywweDQwLDB4YTgsMHgwMCwweDJhLDB4YzAsMHgwYiwweDhjLDB4MDIsMHgzMCB9LAotICAxNiwgMHhkZjgwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhjMSwweDA5LDB4MzYsMHg2MSB9LAotICAxNiwgMHhkZjkwLCAwLCB7MHgwZSwweDMyLDB4MDMsMHhhYiwweDIwLDB4ZjgsMHg4NCwweDNhLDB4NzgsMHgyZSwweDk4LDB4MDMsMHgyNiwweDAwLDB4ZWIsMHgwMCB9LAotICAxNiwgMHhkZmEwLCAwLCB7MHgzZSwweDQwLDB4NGYsMHg5MCwweDAzLDB4ZTIsMHgwMCwweGM5LDB4NDAsMHgzNiwweGUwLDB4MGMsMHhiNCwweDAzLDB4NmUsMHgwMCB9LAotICAxNiwgMHhkZmIwLCAwLCB7MHhlYiwweDAwLDB4M2EsMHhjMCwweDBmLDB4ODgsMHgwMywweDEwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZmMwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhmYSwweDEzLDB4ZjgsMHgxMCwweGRjLDB4MDQsMHgyNyB9LAotICAxNiwgMHhkZmQwLCAwLCB7MHg0MCwweDBkLDB4NTAsMHg0MywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZDksMHgwMywweGIwLDB4MDAsMHhmOSB9LAotICAxNiwgMHhkZmUwLCAwLCB7MHgwMSwweDNmLDB4ZjAsMHgwZiwweGYwLDB4MjMsMHhiMiwweDAwLDB4ZDQsMHhhMCwweDM3LDB4YzAsMHgwZiwweGMwLDB4MGIsMHhmOCB9LAotICAxNiwgMHhkZmYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MjAsMHhlYiwweDEwLDB4ZjIsMHgwMCB9LAotICAxNiwgMHhlMDAwLCAwLCB7MHgwZSwweGI0LDB4MDMsMHgyMSwweDgwLDB4YzksMHg0MCwweDNhLDB4NDgsMHgwZiwweDkwLDB4MTMsMHhlMSwweDIwLDB4ZmIsMHgwMCB9LAotICAxNiwgMHhlMDEwLCAwLCB7MHgzZSwweGMwLDB4MGMsMHg4NCwweDAzLDB4MjQsMHgwMCwweGZiLDB4MDEsMHgzNiwweGUwLDB4MGMsMHg3NCwweDBiLDB4OWMsMHgwMCB9LAotICAxNiwgMHhlMDIwLCAwLCB7MHhjZiwweDAwLDB4MzIsMHhlMCwweDBmLDB4ODQsMHgwMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMDMwLCAwLCB7MHhjOCwweDA1LDB4MWUsMHgwMCwweDhiLDB4ODAsMHgyMCwweDQwLDB4MDgsMHhiOCwweDAyLDB4ODMsMHg4MCwweDgxLDB4YTAsMHgyMiB9LAotICAxNiwgMHhlMDQwLCAwLCB7MHg3OCwweDBiLDB4OTEsMHg4MywweGUzLDB4MDAsMHhiZiwweDAwLDB4MGUsMHhjMSwweDBhLDB4YjQsMHgwMywweDY0LDB4MDQsMHhiOSB9LAotICAxNiwgMHhlMDUwLCAwLCB7MHg1MCwweDMyLDB4YzAsMHgwYSwweGIyLDB4MDIsMHgyMCwweDAwLDB4ODgsMHgwMCwweDIzLDB4ZDQsMHgwYiwweDg4LDB4MDIsMHhmMiB9LAotICAxNiwgMHhlMDYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4NDIsMHhhMCwweDgwLDB4MjAsMHgwMCB9LAotICAxNiwgMHhlMDcwLCAwLCB7MHg0OCwweDAwLDB4MDIsMHgwZCwweDA2LDB4ODAsMHg4MCwweDJhLDB4ZDAsMHgwMywweDAwLDB4MDIsMHhjOCwweDAwLDB4YjMsMHgwMCB9LAotICAxNiwgMHhlMDgwLCAwLCB7MHgyYywweGMwLDB4MDgsMHgzNiwweDAyLDB4NDAsMHgwMCwweGI5LDB4MDIsMHgyMiwweGMyLDB4OGIsMHgyNiwweDAyLDB4MGMsMHgxMCB9LAotICAxNiwgMHhlMDkwLCAwLCB7MHgwMSwweDAyLDB4MjQsMHhjMCwweDRiLDB4YTEsMHgwMiwweGY4LDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMGEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwOCwweDhlLDB4ODAsMHgyMSwweDIxLDB4MDgsMHgyOCwweGMyLDB4OWUsMHgwMCwweDhlLDB4ODAsMHgyMSB9LAotICAxNiwgMHhlMGIwLCAwLCB7MHg2MCwweDBiLDB4NzgsMHgwMiwweDllLDB4MjAsMHhiNywweDgyLDB4MmYsMHhhMSwweDBhLDB4NzgsMHgwMiwweDVlLDB4MDAsMHhiNSB9LAotICAxNiwgMHhlMGMwLCAwLCB7MHg5MSwweGExLDB4ZTAsMHgwYiwweDI5LDB4MDIsMHgzMiwweDQ0LDB4ODYsMHg4MCwweGE1LDB4ZTAsMHgwYiwweDRjLDB4MDIsMHhjOCB9LAotICAxNiwgMHhlMGQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhlMSwweDAwLDB4MjIsMHg4MCB9LAotICAxNiwgMHhlMGUwLCAwLCB7MHgwZSwweDAwLDB4MGIsMHgyNCwweDAwLDB4YzAsMHg0NCwweDI4LDB4YWQsMHgwZiwweDIwLDB4MDIsMHhjOCwweDAwLDB4ZjMsMHgwMCB9LAotICAxNiwgMHhlMGYwLCAwLCB7MHgxYywweGMwLDB4MGMsMHgwMSwweDAzLDB4NDgsMHg0YywweGYyLDB4MDQsMHgzMCwweGMwLDB4MGYsMHgxNSwweDAzLDB4ODAsMHg0MCB9LAotICAxNiwgMHhlMTAwLCAwLCB7MHhjMSwweDAwLDB4MTQsMHhjOCwweDBmLDB4MDAsMHgwMywweGRhLDB4MDIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTEwLCAwLCB7MHg0MCwweDFkLDB4OWMsMHg0MCwweGY3LDB4MDAsMHgzZiwweGMwLDB4OGYsMHhjMCwweDAzLDB4ZTQsMHgwMCwweGZhLDB4MDEsMHgzZiB9LAotICAxNiwgMHhlMTIwLCAwLCB7MHhjMCwweDBmLDB4ZjAsMHgyMywweGZjLDB4MDgsMHhmYiwweDAwLDB4M2YsMHg4MCwweDBmLDB4ZjAsMHgwMSwweGZjLDB4MTAsMHhmZiB9LAotICAxNiwgMHhlMTMwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZSwweGQxLDB4MDMsMHhmYywweDQyLDB4ZmUsMHg4MCwweDNiLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhlMTQwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4NDAsMHhjOCwweDAwLDB4M2UsMHhjMCB9LAotICAxNiwgMHhlMTUwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlZSwweDA4LDB4Y2IsMHgwMCwweDMyLDB4YzAsMHgwZiwweGEwLDB4MjMsMHhlNiwweDAzLDB4Y2IsMHg0YyB9LAotICAxNiwgMHhlMTYwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHhiMCwweDA3LDB4ZTgsMHgwMCwweGY5LDB4MDAsMHgxNiwweDQwLDB4MGMsMHhhMCwweDBiLDB4NmMsMHgwMCB9LAotICAxNiwgMHhlMTcwLCAwLCB7MHhjZiwweDAyLDB4MzIsMHhjNSwweDBjLDB4ODAsMHgwMywweDAyLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTgwLCAwLCB7MHg0OCwweDExLDB4OWMsMHg4MCwweDg0LDB4MDQsMHgyZCwweGMxLDB4MGIsMHg0MCwweDQwLDB4ZGMsMHgwMCwweDg3LDB4MDQsMHgyMSB9LAotICAxNiwgMHhlMTkwLCAwLCB7MHhjMCwweDRiLDB4NzAsMHgxMiwweGZjLDB4MDEsMHg4ZiwweDYwLDB4MjksMHg0MCwweDBiLDB4NzAsMHgxMywweDljLDB4MDAsMHhiNSB9LAotICAxNiwgMHhlMWEwLCAwLCB7MHgwMCwweGEzLDB4NDAsMHgwYSwweDYwLDB4MDIsMHgwMCwweDAwLDB4ODQsMHgwMCwweDIxLDB4YzAsMHgwOCwweDQwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhlMWIwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg4NywweDgwLDB4MmQsMHhhMiB9LAotICAxNiwgMHhlMWMwLCAwLCB7MHgwYiwweDRjLDB4MTYsMHhkNiwweDA4LDB4OTcsMHg4OCwweDIxLDB4YTAsMHg0YiwweDY4LDB4MDIsMHhkZSwweDA0LDB4YTcsMHg4MCB9LAotICAxNiwgMHhlMWQwLCAwLCB7MHgyMSwweGUwLDB4MGIsMHg0OCwweDAyLDB4ZGEsMHgwNCwweGI2LDB4ODIsMHgyNSwweDYwLDB4MGEsMHhlOCwweDYyLDB4MWUsMHgwMCB9LAotICAxNiwgMHhlMWUwLCAwLCB7MHg4NywweDgwLDB4MjAsMHhlOCwweDA4LDB4NDgsMHgwMiwweDA4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMWYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweDhiLDB4ODAsMHg2YywweGYwLDB4MGIsMHgzYywweDAyLDB4Y2UsMHg0NiwweDliLDB4YzAsMHgyMCB9LAotICAxNiwgMHhlMjAwLCAwLCB7MHhlNCwweDBiLDB4M2MsMHgwMiwweGNjLDB4MjAsMHhhMywweDAwLDB4MjgsMHhlMCwweDBiLDB4MzAsMHgwMiwweDhkLDB4ODAsMHhiMSB9LAotICAxNiwgMHhlMjEwLCAwLCB7MHg4MCwweDIyLDB4NDQsMHgwYSwweDIxLDB4MGEsMHgwMywweDgyLDB4ODAsMHg4MCwweGEwLDB4YzAsMHgwOCwweDA2LDB4MGEsMHgxMiB9LAotICAxNiwgMHhlMjIwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDIsMHhjZSwweDgwLDB4M2YsMHhhMCB9LAotICAxNiwgMHhlMjMwLCAwLCB7MHgwZiwweGUwLDB4MDMsMHhmYSwweDQwLDB4ZGUsMHhjMCwweGIzLDB4OTAsMHgwZiwweGVhLDB4MTMsMHhmOSwweDA4LDB4ZWEsMHgwNCB9LAotICAxNiwgMHhlMjQwLCAwLCB7MHgzMywweDgyLDB4OGYsMHhlNCwweDAzLDB4ZmIsMHgwOCwweGZlLDB4YTAsMHgzNiwweGEwLDB4MGMsMHhhYywweDBiLDB4NmIsMHg4MiB9LAotICAxNiwgMHhlMjUwLCAwLCB7MHhjNiwweGEwLDB4MzIsMHg4MCwweDJjLDB4ZTQsMHgwMywweDNhLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjYwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4OTAsMHgzZSwweDAyLDB4MGYsMHg4MCwweDgzLDB4ZTEsMHgwMCwweGU4LDB4MjAsMHgzZSB9LAotICAxNiwgMHhlMjcwLCAwLCB7MHgwMywweDBmLDB4ODIsMHgwMywweGUxLDB4NDAsMHhkOCwweDAwLDB4M2UsMHgyMCwweDBmLDB4MDAsMHg5MywweGEwLDB4NDAsMHhmOCB9LAotICAxNiwgMHhlMjgwLCAwLCB7MHgwMCwweDNlLDB4MTAsMHg4ZiwweDA4LDB4MGIsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhlMjkwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhlOSwweDAwLDB4MzYsMHg0MCB9LAotICAxNiwgMHhlMmEwLCAwLCB7MHgwZiwweDk0LDB4MDcsMHhlNiwweDAwLDB4ZjksMHg4MCwweGIwLDB4NDAsMHgwYywweDk0LDB4MDMsMHhlNCwweDQwLDB4ZjksMHgwMCB9LAotICAxNiwgMHhlMmIwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHg5NCwweDBiLDB4YTQsMHgwMCwweDcxLDB4YzAsMHgzMiwweDQwLDB4MmMsMHg5NCwweDIzLDB4MjQsMHgwMiB9LAotICAxNiwgMHhlMmMwLCAwLCB7MHhjOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMmQwLCAwLCB7MHg4MCwweDA0LDB4NDQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5OCwweDAyLDB4ZTYsMHg2MCwweGI5LDB4MDAsMHgyMiB9LAotICAxNiwgMHhlMmUwLCAwLCB7MHg2MCwweDBhLDB4OWMsMHgwMiwweGU2LDB4MjQsMHhiOSwweDA0LDB4MzYsMHg0MCwweDBiLDB4OTgsMHgwMCwweDI0LDB4MDAsMHhiOSB9LAotICAxNiwgMHhlMmYwLCAwLCB7MHg4MCwweGEyLDB4NTIsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODksMHg0MCwweDIyLDB4NDAsMHg2OCwweDk0LDB4MDIsMHgyMCB9LAotICAxNiwgMHhlMzAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhhOSwweDAwLDB4MjYsMHg0MCB9LAotICAxNiwgMHhlMzEwLCAwLCB7MHgwMywweDk0LDB4MDIsMHhlNCwweDAxLDB4YjksMHgxMCwweDIyLDB4NTUsMHgwOCwweDkwLDB4MjIsMHhlNCwweDAwLDB4YjEsMHgwMCB9LAotICAxNiwgMHhlMzIwLCAwLCB7MHgyNiwweDQwLDB4MGIsMHg5MCwweDAwLDB4MmMsMHgwOSwweGI5LDB4MDAsMHgyMiwweDYwLDB4MDgsMHg5MCwweDBhLDB4MWMsMHgwNCB9LAotICAxNiwgMHhlMzMwLCAwLCB7MHg4ZCwweDA4LDB4YTAsMHg0MCwweDA4LDB4MTAsMHg4MiwweDBlLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzQwLCAwLCB7MHgwOCwweDA0LDB4MDYsMHgwMCwweDgxLDB4MDAsMHgyMCwweDUwLDB4MGIsMHgxMiwweDQyLDB4YzQsMHg4MCwweGIxLDB4MDQsMHgyMCB9LAotICAxNiwgMHhlMzUwLCAwLCB7MHg1MCwweDBhLDB4MTQsMHgwMiwweGM1LDB4MDAsMHhiMSwweDIyLDB4MjQsMHg0MCwweDBiLDB4MTIsMHgyMiwweDA0LDB4MDEsMHhiMSB9LAotICAxNiwgMHhlMzYwLCAwLCB7MHg0MCwweDIwLDB4NTAsMHgwOCwweDEwLDB4MGEsMHgxNSwweDAwLDB4ODUsMHg0MCwweDI4LDB4NTAsMHgwOCwweDE0LDB4MGEsMHgwYSB9LAotICAxNiwgMHhlMzcwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhlOCwweDUwLDB4MzYsMHgwMCB9LAotICAxNiwgMHhlMzgwLCAwLCB7MHgwZiwweDg1LDB4MDIsMHhlMSwweDQwLDB4ZjgsMHg1MCwweDMyLDB4MDAsMHgwYywweGEwLDB4MjMsMHhlMCwweDEwLDB4ZjgsMHg1MCB9LAotICAxNiwgMHhlMzkwLCAwLCB7MHhiMiwweDE0LDB4MGYsMHhhNSwweDAzLDB4YTEsMHg0OCwweGZhLDB4MDAsMHhiMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwNCB9LAotICAxNiwgMHhlM2EwLCAwLCB7MHhjNCwweDAyLDB4MzIsMHgwMCwweDBjLDB4MDAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlM2IwLCAwLCB7MHg5OCwweDFkLDB4ZTUsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMSwweDAzLDB4ZDQsMHg0NCwweGY1LDB4MDAsMHgzZiB9LAotICAxNiwgMHhlM2MwLCAwLCB7MHg1MSwweDBmLDB4ZDQsMHgwMywweGY1LDB4MDAsMHhmOSwweDEwLDB4M2IsMHg0MCwweDBmLDB4ZDEsMHgwMCwweGY1LDB4MTAsMHhmNSB9LAotICAxNiwgMHhlM2QwLCAwLCB7MHg0MCwweDdmLDB4NDAsMHgwZiwweDU0LDB4MmIsMHhlNSwweDAwLDB4ZjksMHg0MCwweDM2LDB4NTAsMHgwZiwweGQwLDB4MDMsMHhlNiB9LAotICAxNiwgMHhlM2UwLCAwLCB7MHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4MTAsMHhiZCwweDQwLDB4MzMsMHg0MCB9LAotICAxNiwgMHhlM2YwLCAwLCB7MHgwZiwweGRhLDB4MDMsMHgzNywweDgwLDB4Y2QsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZTksMHhhMCB9LAotICAxNiwgMHhlNDAwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHhkZSwweDE3LDB4YTQsMHgwOCwweGZkLDB4YzAsMHgzMywweDQxLDB4OGQsMHhkYSwweDEzLDB4MjYsMHhhMCB9LAotICAxNiwgMHhlNDEwLCAwLCB7MHhmOSwweGE4LDB4MzIsMHg3OCwweDBjLDB4YjQsMHgwYiwweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDIwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgwMCwweGI4LDB4YTAsMHgzNiwweDIwLDB4MGIsMHg4YSwweDgyLDB4YTIsMHg4MCwweDJhLDB4YTgsMHgyZSB9LAotICAxNiwgMHhlNDMwLCAwLCB7MHgwMCwweDBiLDB4ODAsMHgxMiwweGUwLDB4MDQsMHhiOCwweGExLDB4MmUsMHgyOCwweDRhLDB4OGUsMHgwMiwweDJhLDB4YTAsMHhiYSB9LAotICAxNiwgMHhlNDQwLCAwLCB7MHhjMCwweDIyLDB4MjgsMHgwOCwweDg1LDB4MDIsMHgyMSwweDA4LDB4YjgsMHhlOCwweGEyLDB4M2MsMHgwOCwweGM4LDB4MDIsMHgwZSB9LAotICAxNiwgMHhlNDUwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiOSwweDAwLDB4MjAsMHg0YSB9LAotICAxNiwgMHhlNDYwLCAwLCB7MHgwYiwweDE0LDB4MDIsMHgwNSwweDgwLDB4MDEsMHgwMCwweDJjLDB4NDEsMHgwYiwweDEwLDB4MDIsMHhjNCwweDA0LDB4YTEsMHg0YSB9LAotICAxNiwgMHhlNDcwLCAwLCB7MHgyZSwweDQyLDB4MDgsMHgxNCwweDAyLDB4ODQsMHgxMCwweGIxLDB4NjAsMHhhMCwweDRhLDB4MDksMHgxMCwweDAyLDB4NDQsMHgwMCB9LAotICAxNiwgMHhlNDgwLCAwLCB7MHhiNSwweDAxLDB4MjksMHg0MCwweDE4LDB4ZDIsMHgwMiwweDEyLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDkwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGI5LDB4MjEsMHgyNiwweDQwLDB4MGIsMHg5NiwweDAyLDB4YTQsMHgxMCwweGE5LDB4MDAsMHgyZSB9LAotICAxNiwgMHhlNGEwLCAwLCB7MHg0MCwweDBiLDB4OTYsMHgxMiwweGU0LDB4MjAsMHhiOSwweDAwLDB4MmUsMHg0MSwweDBhLDB4OTAsMHg0MiwweDI0LDB4MDAsMHhiOSB9LAotICAxNiwgMHhlNGIwLCAwLCB7MHgwMCwweDIyLDB4NDEsMHgwOCwweDk4LDB4MjIsMHg2NCwweDAwLDB4YjksMHgyMCwweDJiLDB4NDEsMHgyOCwweGQ0LDB4MDIsMHgwNiB9LAotICAxNiwgMHhlNGMwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGU0LDB4MDAsMHhmOSwweGUwLDB4MzIsMHg1OCB9LAotICAxNiwgMHhlNGQwLCAwLCB7MHgwZiwweDk4LDB4MDMsMHgyNiwweDQwLDB4YzksMHg0MCwweDNlLDB4NTgsMHgwZiwweDljLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMCB9LAotICAxNiwgMHhlNGUwLCAwLCB7MHg2ZSwweDQwLDB4MGMsMHg5YSwweDAyLDB4YTYsMHgwMCwweGY5LDB4NDQsMHgzMiwweDQwLDB4MGQsMHg5YSwweDBiLDB4NjQsMHg4NCB9LAotICAxNiwgMHhlNGYwLCAwLCB7MHhmOSwweDAwLDB4YmEsMHg0MCwweDBjLDB4MTgsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTAwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDUwLDB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwMCwweGY5LDB4MDQsMHgzZSB9LAotICAxNiwgMHhlNTEwLCAwLCB7MHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4NDAsMHhmOSwweDAwLDB4M2UsMHg2NSwweDBmLDB4OTksMHg4MSwweGU0LDB4NTAsMHhmOSB9LAotICAxNiwgMHhlNTIwLCAwLCB7MHgyMCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhhNCwweDgwLDB4ZjksMHgwMCwweDM0LDB4NDAsMHgwZiwweDkyLDB4MDMsMHhkMiB9LAotICAxNiwgMHhlNTMwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhmOCwweDQwLDB4M2UsMHgxMCB9LAotICAxNiwgMHhlNTQwLCAwLCB7MHgwZSwweDg0LDB4MDMsMHg2MCwweDA4LDB4YzgsMHgwMCwweDNlLDB4MDgsMHgwZiwweDgwLDB4ODMsMHhlMCwweDI4LDB4ZTgsMHgwNCB9LAotICAxNiwgMHhlNTUwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4NCwweDAzLDB4MjEsMHgxYywweGYwLDB4NDgsMHgzMiwweDAwLDB4MGIsMHgwMCwweDAzLDB4ZTAsMHgwMiB9LAotICAxNiwgMHhlNTYwLCAwLCB7MHhjMCwweDAwLDB4MzIsMHgwMCwweDBjLDB4YzAsMHgwYiwweDAyLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTcwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweGIyLDB4ODgsMHgyZSwweDgwLDB4MDgsMHhlMCwweDAzLDB4N2EsMHg4MCwweDhlLDB4MDAsMHgyZiB9LAotICAxNiwgMHhlNTgwLCAwLCB7MHhhMCwweDBiLDB4ZTgsMHgwMiwweGY5LDB4MTAsMHhiYSwweDAwLDB4MmMsMHg4MCwweDI4LDB4ZTQsMHgwMiwweDI4LDB4MDAsMHhiZSB9LAotICAxNiwgMHhlNTkwLCAwLCB7MHg0MCwweDIzLDB4YjgsMHgwOCwweGU4LDB4MDIsMHhlOCwweDA0LDB4Y2EsMHgyMCwweGEyLDB4ODAsMHgwOCwweGU4LDB4MDIsMHgwYSB9LAotICAxNiwgMHhlNWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDEsMHhiMywweDAwLDB4MmMsMHg0MCB9LAotICAxNiwgMHhlNWIwLCAwLCB7MHgwOCwweGI4LDB4NDIsMHg2YywweDAyLDB4ODMsMHgwMCwweDJjLDB4ZTAsMHgwYiwweDM4LDB4MDAsMHhjZiwweDQwLDB4YjMsMHgwMCB9LAotICAxNiwgMHhlNWMwLCAwLCB7MHgyYywweGMwLDB4MDgsMHhiNCwweDBhLDB4MGMsMHgwMCwweGIzLDB4NDAsMHhhMiwweDgyLDB4MGEsMHgzOSwweDAyLDB4Y2MsMHgwMCB9LAotICAxNiwgMHhlNWQwLCAwLCB7MHg5MywweDgwLDB4YTAsMHhjMCwweDI5LDB4MjAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNWUwLCAwLCB7MHhhMCwweDAxLDB4MWQsMHgwMCwweGI3LDB4MDAsMHgyZCwweDY0LDB4MjgsMHg3NCwweDAyLDB4NDAsMHgwMCwweDg3LDB4MDUsMHgyZCB9LAotICAxNiwgMHhlNWYwLCAwLCB7MHg5MCwweDBiLDB4NzQsMHgwMiwweGRjLDB4MTAsMHhiNywweDMwLDB4MmQsMHhjOCwweDA4LDB4MzQsMHgwNiwweDFjLDB4ODAsMHhiNyB9LAotICAxNiwgMHhlNjAwLCAwLCB7MHgwMCwweGExLDB4YzAsMHgwYSwweDcwLDB4MDIsMHhkZSwweDgwLDB4ODMsMHgwMCwweDAxLDB4MDAsMHgwOSwweDYwLDB4ODIsMHgyMCB9LAotICAxNiwgMHhlNjEwLCAwLCB7MHgwNCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFhLDB4MDAsMHhmNywweDgwLDB4M2QsMHg2MCB9LAotICAxNiwgMHhlNjIwLCAwLCB7MHgwZSwweGQ4LDB4MGIsMHg1ZSwweDAwLDB4YzcsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDY4LDB4MDMsMHhkZSwweDEwLDB4ZjcsMHhhOSB9LAotICAxNiwgMHhlNjMwLCAwLCB7MHg3ZiwweGU4LDB4NDgsMHg3OCwweDAzLDB4MWYsMHgzMCwweGZmLDB4OTQsMHgzMywweGEwLDB4MGUsMHg3OCwweDAzLDB4Y2YsMHgyNCB9LAotICAxNiwgMHhlNjQwLCAwLCB7MHhkNiwweDgwLDB4YjEsMHhlMCwweDBkLDB4ZjgsMHg0MywweDIyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjUwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHgwMCwweGJiLDB4MDAsMHgwYywweDQwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgwOCwweGY5LDB4MDAsMHgzZSB9LAotICAxNiwgMHhlNjYwLCAwLCB7MHgwMCwweDBmLDB4OTAsMHg0MSwweGVjLDB4MDAsMHhmYiwweDYxLDB4N2UsMHhkMCwweDBmLDB4YjAsMHgwMywweGVjLDB4ODAsMHhmYiB9LAotICAxNiwgMHhlNjcwLCAwLCB7MHg0MCwweDNmLDB4OWIsMHgwYywweGIwLDB4MDMsMHhlZCwweDkwLDB4ZmEsMHgwMCwweDNjLDB4MDAsMHgwZSwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhlNjgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGRlLDB4MDAsMHhlZiwweDgwLDB4MzMsMHg2MCB9LAotICAxNiwgMHhlNjkwLCAwLCB7MHgwZCwweGQ4LDB4MDMsMHgzNiwweDQwLDB4ZWYsMHg5MCwweDNlLDB4ZTAsMHgwZiwweGY5LDB4MDMsMHhmZSwweDAwLDB4ZmYsMHg4MCB9LAotICAxNiwgMHhlNmEwLCAwLCB7MHgzMywweGZlLDB4MGMsMHhmYSwweDAzLDB4ZmUsMHgwMCwweGNmLDB4ODAsMHhiMywweGUwLDB4MGYsMHhmOCwweDAzLDB4ZmUsMHgwMCB9LAotICAxNiwgMHhlNmIwLCAwLCB7MHhjZCwweDgwLDB4MzMsMHhlMCwweDBmLDB4YzgsMHg0MywweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNmMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweDg1LDB4MDgsMHgzNSwweDQwLDB4MDgsMHg3MCwweDAzLDB4NTIsMHgyMCwweDg3LDB4MTEsMHgyYyB9LAotICAxNiwgMHhlNmQwLCAwLCB7MHhlYywweDBiLDB4NzEsMHgwMiwweGQwLDB4MDAsMHhlNywweDAwLDB4MzUsMHhjNCwweDA4LDB4NzQsMHgwMiwweGRjLDB4NDAsMHg4NyB9LAotICAxNiwgMHhlNmUwLCAwLCB7MHgxMCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhmYywweDgwLDB4ODUsMHgwOCwweDIxLDB4MDAsMHgwYiwweDQxLDB4ODIsMHhlYSB9LAotICAxNiwgMHhlNmYwLCAwLCB7MHgwNiwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MDAsMHhhZiwweDAwLDB4MjMsMHg1MCB9LAotICAxNiwgMHhlNzAwLCAwLCB7MHgwOSwweDUwLDB4MDIsMHgxYywweDgwLDB4YTcsMHgwMSwweDI5LDB4YzAsMHgxYiwweDYwLDB4MDYsMHhkYywweDQwLDB4YjcsMHgxMCB9LAotICAxNiwgMHhlNzEwLCAwLCB7MHgyMSwweGM4LDB4NGEsMHg1MiwweDAyLDB4ZGMsMHgwMCwweDgzLDB4MDAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZGMsMHgxMyB9LAotICAxNiwgMHhlNzIwLCAwLCB7MHg4NCwweDAwLDB4MjUsMHhjMCwweDBiLDB4NTgsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzMwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweDgxLDB4ODAsMHgyNCwweDQwLDB4MDgsMHgzZSwweDAyLDB4NmUsMHgwMCwweDg5LDB4MDAsMHgyYyB9LAotICAxNiwgMHhlNzQwLCAwLCB7MHhjMCwweDBiLDB4YjQsMHgwMiwweGNhLDB4ODAsMHhhMywweDAwLDB4MjQsMHhjMCwweDBhLDB4MDQsMHgwMiwweGVjLDB4NDAsMHg4MiB9LAotICAxNiwgMHhlNzUwLCAwLCB7MHgwYSwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjZCwweDEwLDB4ODAsMHhjMCwweGE0LDB4MDAsMHgwYiwweDFjLDB4MDIsMHhjOCB9LAotICAxNiwgMHhlNzYwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweDg0LDB4MDAsMHhlYiwweDgwLDB4MzMsMHg0MCB9LAotICAxNiwgMHhlNzcwLCAwLCB7MHgwZCwweDhjLDB4ODMsMHgyNiwweDAwLDB4ZTksMHhhMCwweDNlLDB4NzgsMHg4ZiwweDkwLDB4ODMsMHhlMSwweDAwLDB4ZmYsMHgwMCB9LAotICAxNiwgMHhlNzgwLCAwLCB7MHgzMSwweGQxLDB4MGUsMHg4NCwweDIzLDB4ZmMsMHgwMCwweGNiLDB4ODIsMHgzMiwweGMwLDB4OGYsMHhiMCwweDAyLDB4ZmQsMHg0MCB9LAotICAxNiwgMHhlNzkwLCAwLCB7MHhjYiwweDgwLDB4YjYsMHhjMCwweDBmLDB4YTQsMHgwMywweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlN2EwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhhMCwweDAzLDB4ZTAsMHgwMCwweGY5LDB4MDEsMHgzZSB9LAotICAxNiwgMHhlN2IwLCAwLCB7MHg0MiwweDBmLDB4OTAsMHgwMywweGU1LDB4NTQsMHhlMywweDAwLDB4M2UsMHhjOCwweDA1LDB4OTMsMHgwMywweGVjLDB4ODAsMHhmYiB9LAotICAxNiwgMHhlN2MwLCAwLCB7MHhjMSwweDNlLDB4YzAsMHgwZiwweDIwLDB4MDMsMHhjYywweDQ4LDB4ZjMsMHgwOCwweDNhLDB4MDAsMHgwZiwweGEwLDB4NDMsMHhlMCB9LAotICAxNiwgMHhlN2QwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGYwLDB4MDAsMHhjZiwweDAwLDB4M2YsMHg0MCB9LAotICAxNiwgMHhlN2UwLCAwLCB7MHgwZiwweDMwLDB4MDEsMHgyYywweDBhLDB4Y2QsMHgxMCwweDMzLDB4MDAsMHgwZiwweGQwLDB4ODMsMHgxNCwweDAwLDB4Y2IsMHgwMiB9LAotICAxNiwgMHhlN2YwLCAwLCB7MHgzMywweGMwLDB4MGMsMHhlMSwweDAzLDB4ZWMsMHgxMCwweGNkLDB4MDAsMHgzMywweGMwLDB4MGMsMHhmMCwweDMzLDB4M2MsMHgwMCB9LAotICAxNiwgMHhlODAwLCAwLCB7MHhlYSwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHg4MywweGM4LDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODEwLCAwLCB7MHg4MSwweDA0LDB4NmUsMHgwMCwweDhiLDB4MDAsMHgyZSwweDQwLDB4MGIsMHhiYywweDAyLDB4MmUsMHgwMCwweDBiLDB4MDAsMHgyMiB9LAotICAxNiwgMHhlODIwLCAwLCB7MHgzMCwweDBiLDB4OWMsMHgwMiwweDI3LDB4ODAsMHhhYiwweDAwLDB4MmEsMHhjMCwweDA4LDB4YjgsMHgwMiwweGVjLDB4MDAsMHg4OSB9LAotICAxNiwgMHhlODMwLCAwLCB7MHhjMCwweDIwLDB4ZTAsMHgwOCwweGFlLDB4MDIsMHgyYywweDA4LDB4OGEsMHgwMCwweDIyLDB4MDAsMHgwOCwweGIwLDB4NDIsMHhlOCB9LAotICAxNiwgMHhlODQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJlLDB4MDAsMHg4YiwweDA0LDB4MmUsMHg0MCB9LAotICAxNiwgMHhlODUwLCAwLCB7MHg4YiwweDhjLDB4MDIsMHhhZSwweDEwLDB4ODksMHgwMCwweDIyLDB4NzAsMHgwYiwweDhjLDB4MDIsMHhhMiwweDAwLDB4OGIsMHgwMSB9LAotICAxNiwgMHhlODYwLCAwLCB7MHgyMiwweGMwLDB4MDgsMHg4MCwweDAyLDB4ZWMsMHgxMCwweDgyLDB4ODgsMHhhMiwweDcwLDB4MDksMHhiOCwweDAyLDB4MmMsMHgwOCB9LAotICAxNiwgMHhlODcwLCAwLCB7MHg4OSwweDAwLDB4MjAsMHhjMCwweDI4LDB4ODAsMHgyMiwweGUwLDB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODgwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwNCwweDgxLDB4MDAsMHgyYywweDQwLDB4MGIsMHgyMCwweDAyLDB4ODAsMHgwMCwweDgxLDB4MDQsMHhhMCB9LAotICAxNiwgMHhlODkwLCAwLCB7MHg1MCwweDRiLDB4MDAsMHgwYSwweDgwLDB4MDAsMHhhMywweDAxLDB4MmEsMHhjMSwweDIwLDB4MTAsMHgwMiwweGNjLDB4MTQsMHg4MyB9LAotICAxNiwgMHhlOGEwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweDIwLDB4MDIsMHgwYywweDAwLDB4ODEsMHgwMCwweGUwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhlOGIwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY4LDB4MDAsMHhjYiwweDAwLDB4M2UsMHg0MCB9LAotICAxNiwgMHhlOGMwLCAwLCB7MHgwZiwweDkwLDB4MGIsMHhhYywweDgwLDB4YzksMHgwMCwweDMyLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhhNCwweDAwLDB4Y2YsMHgwMiB9LAotICAxNiwgMHhlOGQwLCAwLCB7MHgzMSwweGMwLDB4MGMsMHg4MCwweDEzLDB4ZmMsMHgwMiwweGNkLDB4MDAsMHgzMywweGMwLDB4MmMsMHg5MCwweDAzLDB4M2MsMHgwMiB9LAotICAxNiwgMHhlOGUwLCAwLCB7MHhlOCwweDAwLDB4YjIsMHhjMCwweDBjLDB4OTAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOGYwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwMiwweGY1LDB4MDAsMHgzZCwweDQwLDB4OGYsMHhmMCwweDIzLDB4NmQsMHgwMCwweGZmLDB4MDAsMHgzZiB9LAotICAxNiwgMHhlOTAwLCAwLCB7MHgwNCwweDBmLDB4YzAsMHgwMywweDcwLDB4MWMsMHhmZiwweDAxLDB4M2YsMHhjMCwweDRmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZCB9LAotICAxNiwgMHhlOTEwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweGUwLDB4MGYsMHhmYywweDE4LDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgwZiwweGQwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhlOTIwLCAwLCB7MHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZlLDB4MDAsMHhkNywweDAyLDB4MGYsMHgzMCB9LAotICAxNiwgMHhlOTMwLCAwLCB7MHgwYywweGYyLDB4MDEsMHg3ZSwweDA2LDB4NDQsMHgzMCwweDNmLDB4MjAsMHgwZSwweGYwLDB4MDIsMHg3YywweDg0LDB4ZmQsMHgyMCB9LAotICAxNiwgMHhlOTQwLCAwLCB7MHgyNywweDA4LDB4MGMsMHhkMCwweDAxLDB4MzYsMHgwMCwweGZmLDB4NjAsMHgzMywweGNjLDB4MGIsMHhmMSwweDEzLDB4MmMsMHhjNCB9LAotICAxNiwgMHhlOTUwLCAwLCB7MHhmZiwweDMwLDB4MGYsMHhjZCwweDBjLDB4ZjQsMHgwMywweGYwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTYwLCAwLCB7MHg4MCwweDEwLDB4ZWUsMHgwMCwweDhmLDB4YzAsMHgyZSwweDAwLDB4MDgsMHhmYywweDAyLDB4MmUsMHgwMCwweDhhLDB4MzAsMHgyOCB9LAotICAxNiwgMHhlOTcwLCAwLCB7MHg1MiwweDA4LDB4ZjYsMHg4MiwweDNjLDB4NjgsMHhiZCwweDkwLDB4MzIsMHgzNCwweDQ4LDB4OWMsMHgxMiwweDI2LDB4MDAsMHhjZiB9LAotICAxNiwgMHhlOTgwLCAwLCB7MHg0MCwweDIzLDB4Y2MsMHgwYiwweGY2LDB4MDIsMHgzZCwweDAwLDB4YmYsMHgxMCwweDJmLDB4Y2MsMHg4OCwweGY2LDB4MDIsMHhlMCB9LAotICAxNiwgMHhlOTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg5MywweDEwLDB4MmMsMHgwOCB9LAotICAxNiwgMHhlOWEwLCAwLCB7MHgwOSwweDMxLDB4MDIsMHg0YywweDAwLDB4OWIsMHgyMCwweDY0LDB4NTgsMHgwMywweDMxLDB4NjIsMHg0YywweDgxLDB4YTEsMHgwMCB9LAotICAxNiwgMHhlOWIwLCAwLCB7MHgyMCwweDAwLDB4NDgsMHgxNCwweDAyLDB4NDQsMHgwMCwweDkzLDB4MzAsMHgyNCwweGMwLDB4MGIsMHgzMywweDAyLDB4OGQsMHg4NCB9LAotICAxNiwgMHhlOWMwLCAwLCB7MHhiMywweDIwLDB4NmMsMHhjMCwweDJhLDB4MzYsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOWQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgxMCwweDliLDB4MDIsMHgyZSwweDQxLDB4MGIsMHhiMCwweDAyLDB4YTQsMHgwMCwweDlhLDB4MDAsMHg0YSB9LAotICAxNiwgMHhlOWUwLCAwLCB7MHg2MCwweDg4LDB4YjAsMHg1MiwweDZjLDB4MDEsMHhiOSwweDAwLDB4MjYsMHgwMCwweDA4LDB4OTEsMHgyMiwweGVjLDB4MDgsMHhiYiB9LAotICAxNiwgMHhlOWYwLCAwLCB7MHgwMCwweDI2LDB4YzAsMHgwYiwweGIwLDB4MDIsMHhhYywweDAwLDB4YmIsMHgwNSwweDZlLDB4YzEsMHgwYSwweGIwLDB4MDIsMHhmMCB9LAotICAxNiwgMHhlYTAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhkYiwweDAxLDB4M2UsMHgzMCB9LAotICAxNiwgMHhlYTEwLCAwLCB7MHgyZCwweDMwLDB4MDMsMHg0NywweDYwLDB4ZDgsMHhhMCwweDE2LDB4MzgsMHg4ZiwweGIwLDB4MDMsMHg2YywweDAwLDB4NzksMHgwMiB9LAotICAxNiwgMHhlYTIwLCAwLCB7MHgzMSwweDYwLDB4MGMsMHhjOCwweDBhLDB4NjYsMHgwMCwweGJiLDB4MDAsMHhiNiwweGMwLDB4MGYsMHhiMCwweDBiLDB4YWMsMHgwMCB9LAotICAxNiwgMHhlYTMwLCAwLCB7MHhmYiwweDAxLDB4M2UsMHhjMSwweDBlLDB4YjAsMHgwMywweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTQwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgxMCwweGVmLDB4MDgsMHgzZiwweDI0LDB4MGMsMHhmMCwweDAzLDB4NzYsMHgyMCwweGVlLDB4OTAsMHgzNSB9LAotICAxNiwgMHhlYTUwLCAwLCB7MHg0MCwweDBlLDB4NzAsMHgwMywweGFjLDB4MDAsMHhmZCwweDAwLDB4YmIsMHg2NCwweDBmLDB4ODgsMHgxMywweDM0LDB4ODAsMHhjYiB9LAotICAxNiwgMHhlYTYwLCAwLCB7MHgwMCwweDNiLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg2YywweDA4LDB4ZmYsMHgwMCwweDNlLDB4YzAsMHgwZCwweGYwLDB4MDMsMHhmOCB9LAotICAxNiwgMHhlYTcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDEsMHhmYiwweDgwLDB4MzIsMHgxMCB9LAotICAxNiwgMHhlYTgwLCAwLCB7MHgwZSwweGIwLDB4MDMsMHhlZCwweDAwLDB4Y2IsMHg1MCwweDNlLDB4NDAsMHg4YywweGIwLDB4NDMsMHgyYywweDEwLDB4ZjksMHgwMCB9LAotICAxNiwgMHhlYTkwLCAwLCB7MHgzMiwweDYwLDB4MGMsMHg0MCwweDBiLDB4MjYsMHgwMCwweGMzLDB4MDQsMHgzNiwweGMwLDB4MGMsMHgzMCwweDAzLDB4MmMsMHgwMCB9LAotICAxNiwgMHhlYWEwLCAwLCB7MHg5YiwweDAwLDB4YjAsMHhjMCwweDBjLDB4YjAsMHgwMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYWIwLCAwLCB7MHhjOCwweDA1LDB4MGUsMHg4MCwweGJmLDB4MDQsMHgyYSwweDQwLDB4MDAsMHhmNSwweDAwLDB4ZTYsMHgwMCwweDgyLDB4ZDIsMHgyMiB9LAotICAxNiwgMHhlYWMwLCAwLCB7MHg0MCwweDBkLDB4ZjAsMHgyMiwweDNjLDB4MDAsMHg5NSwweDAyLDB4MzYsMHg0MCwweDBhLDB4ODAsMHgwMiwweDJlLDB4MDAsMHg4ZiB9LAotICAxNiwgMHhlYWQwLCAwLCB7MHgwMCwweDM3LDB4YzAsMHgwYSwweGYwLDB4NDIsMHgzYywweDAwLDB4OGYsMHgwMCwweDIzLDB4YzAsMHgyOCwweGYwLDB4MDIsMHhmMiB9LAotICAxNiwgMHhlYWUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRlLDB4MDAsMHhiMywweDAwLDB4MjIsMHgyMCB9LAotICAxNiwgMHhlYWYwLCAwLCB7MHg0YSwweDMwLDB4MDAsMHhjYywweDAwLDB4ODEsMHhjMCwweDI4LDB4MDAsMHgwOCwweDMwLDB4MDIsMHgwYywweDEwLDB4YTEsMHgwMCB9LAotICAxNiwgMHhlYjAwLCAwLCB7MHgyOCwweDgwLDB4MTgsMHgzMCwweDIyLDB4MDQsMHgwNCwweDgzLDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwOCB9LAotICAxNiwgMHhlYjEwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwNiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjIwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweGI3LDB4ODAsMHgyOSwweGEwLDB4MDgsMHg3OCwweDAyLDB4ZmUsMHgyMCwweDhkLDB4ODAsMHgyOSB9LAotICAxNiwgMHhlYjMwLCAwLCB7MHhlNSwweDViLDB4MzgsMHg0MiwweDFlLDB4NDAsMHhhMSwweDgxLDB4MjUsMHhhOCwweDA4LDB4NzksMHgwMiwweDM3LDB4MDAsMHg4NyB9LAotICAxNiwgMHhlYjQwLCAwLCB7MHg4MCwweDI1LDB4ZTAsMHgwYSwweDc4LDB4MGEsMHhkZSwweDgxLDB4ODcsMHg4MCwweDI1LDB4ZTUsMHg0OCwweDc4LDB4MDIsMHhjOCB9LAotICAxNiwgMHhlYjUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhiMywweDEwLDB4MzAsMHgxMiB9LAotICAxNiwgMHhlYjYwLCAwLCB7MHgwZSwweDMwLDB4MTIsMHhjYywweGMwLDB4YzMsMHgwMCwweDM4LDB4ODAsMHgwYywweDMxLDB4MDYsMHgwYywweDQwLDB4ZjEsMHgwMCB9LAotICAxNiwgMHhlYjcwLCAwLCB7MHgzOCwweDgwLDB4MGMsMHgzMCwweDQzLDB4MDQsMHg0MiwweGMzLDB4MDAsMHgzNiwweGMwLDB4MGMsMHgzMiwweDAzLDB4Y2UsMHhjMCB9LAotICAxNiwgMHhlYjgwLCAwLCB7MHhkYiwweDAwLDB4MzAsMHhjMCwweDBjLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjkwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGZmLDB4MTAsMHgzZCwweDg0LDB4NGYsMHhmMSwweDAzLDB4ZDAsMHg0MCwweGZjLDB4MTAsMHgzMyB9LAotICAxNiwgMHhlYmEwLCAwLCB7MHg4MCwweDVkLDB4YjEsMHg4MywweGZjLDB4NTAsMHhkZCwweDBhLDB4MjUsMHg4OSwweDBmLDB4YjgsMHgwMywweGQ0LDB4MDAsMHhmZiB9LAotICAxNiwgMHhlYmIwLCAwLCB7MHgxMCwweDNmLDB4YzAsMHgwZiwweGY0LDB4MDMsMHgzYywweDQwLDB4ZmYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhlYmMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDAsMHhmYiwweDIwLDB4M2UsMHgwMCB9LAotICAxNiwgMHhlYmQwLCAwLCB7MHgwZiwweGI1LDB4MDMsMHgyOSwweDIwLDB4ZjksMHgwMCwweDMyLDB4YTAsMHgwYywweGIwLDB4ODMsMHhlYywweDAwLDB4NDksMHhjOCB9LAotICAxNiwgMHhlYmUwLCAwLCB7MHhiMiwweGMwLDB4OGMsMHhhMCwweDAzLDB4NjQsMHgwMCwweGZiLDB4MDgsMHgxMiwweGVhLDB4MGMsMHhiMCwweDBiLDB4MmMsMHg4MCB9LAotICAxNiwgMHhlYmYwLCAwLCB7MHhmYiwweDIwLDB4MmUsMHhkMiwweDZjLDB4YjYsMHg0MywweGVhLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzAwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI3LDB4NDksMHgyZCwweDAwLDB4MGIsMHgzMCwweDgyLDB4MTAsMHgwMSwweGI1LDB4MDIsMHg4MyB9LAotICAxNiwgMHhlYzEwLCAwLCB7MHhjMCwweDFhLDB4NzIsMHgyMiwweGRkLDB4NDEsMHg4NSwweDAwLDB4NjEsMHhjMCwweDE4LDB4MjAsMHgyMCwweDE0LDB4MDAsMHhiZiB9LAotICAxNiwgMHhlYzIwLCAwLCB7MHg0MCwweDM1LDB4ZDAsMHgwZCwweDM0LDB4MDIsMHgxZCwweDIwLDB4YjcsMHgyOCwweDI1LDB4YzEsMHgwOCwweDc0LDB4ODIsMHhkMiB9LAotICAxNiwgMHhlYzMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDQsMHgzNywweGEwLDB4MmQsMHgyMCB9LAotICAxNiwgMHhlYzQwLCAwLCB7MHgwYiwweDdhLDB4MTIsMHgxNiwweDAxLDB4YjMsMHg4MCwweDIxLDB4ZTIsMHgwOCwweDc4LDB4NDIsMHg5ZSwweDAwLDB4ODUsMHg4MCB9LAotICAxNiwgMHhlYzUwLCAwLCB7MHgyMCwweGUxLDB4MTgsMHg2OCwweDAyLDB4NTYsMHgwMCwweGI3LDB4YTAsMHgyNSwweGUwLDB4MDgsMHg3YSwweDAyLDB4MWUsMHgwMCB9LAotICAxNiwgMHhlYzYwLCAwLCB7MHhiNywweDkwLDB4MmMsMHhlNSwweDg4LDB4N2EsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzcwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHg2YywweDI0LDB4MWIsMHgzMCwweDAyLDB4MDAsMHgwMCwweGIwLDB4MDAsMHgyMCB9LAotICAxNiwgMHhlYzgwLCAwLCB7MHhmOCwweDBhLDB4MzAsMHgwMiwweGNjLDB4MDAsMHg4MSwweDAwLDB4MjAsMHhkOCwweDE4LDB4MjAsMHgwMiwweDA0LDB4MDAsMHhiMyB9LAotICAxNiwgMHhlYzkwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwOSwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweDI2LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhkMiB9LAotICAxNiwgMHhlY2EwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmYSwweDAwLDB4M2QsMHg4MCB9LAotICAxNiwgMHhlY2IwLCAwLCB7MHgwZiwweDIwLDB4MGIsMHgyOCwweDgwLDB4ZmUsMHgwMCwweDMzLDB4YTAsMHgwYywweGEwLDB4MDMsMHhlOCwweDAyLDB4Y2EsMHgwMiB9LAotICAxNiwgMHhlY2MwLCAwLCB7MHgzMiwweDkwLDB4MmMsMHhlNCwweDAzLDB4NzgsMHgwMCwweGZhLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgwMCB9LAotICAxNiwgMHhlY2QwLCAwLCB7MHhmYSwweDAwLDB4M2UsMHg4MCwweDBjLDB4YTAsMHgwMywweGZhLDB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlY2UwLCAwLCB7MHg0OCwweDAwLDB4ZTEsMHgwMCwweGYwLDB4MDAsMHgzZSwweDAwLDB4NGYsMHg4MCwweDAzLDB4ZTAsMHg4MCwweGY4LDB4MDAsMHgzZSB9LAotICAxNiwgMHhlY2YwLCAwLCB7MHgwMCwweDBmLDB4ODAsMHgyMywweGMwLDB4MDAsMHhmOCwweDAyLDB4M2MsMHgwMCwweDBmLDB4YzAsMHg4MywweDYwLDB4MDAsMHhiOCB9LAotICAxNiwgMHhlZDAwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MjMsMHhlMCwweDE4LDB4ZjgsMHgwMSwweDM2LDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhlZDEwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU2LDB4MDAsMHhmOSwweDIxLDB4MzIsMHg2MCB9LAotICAxNiwgMHhlZDIwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyYywweDQ0LDB4ZjksMHgwMCwweGIyLDB4NDAsMHgwZiwweDkwLDB4MWIsMHgyNCwweDAwLDB4ZTksMHgwMCB9LAotICAxNiwgMHhlZDMwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHgxMCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MGYsMHgxMCwweDMzLDB4MjQsMHgxMCB9LAotICAxNiwgMHhlZDQwLCAwLCB7MHhmMSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDUwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4NDAsMHhhMiwweDQxLDB4MDgsMHg5MCwweDAyLDB4MjQsMHg4MCwweGU5LDB4MDAsMHgyMiB9LAotICAxNiwgMHhlZDYwLCAwLCB7MHg0MCwweDBiLDB4OTAsMHgxMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg0MSwweDE4LDB4OTAsMHg0MiwweDI0LDB4MDAsMHhiOSB9LAotICAxNiwgMHhlZDcwLCAwLCB7MHgwNCwweDJhLDB4NDEsMHgwYiwweDkwLDB4MDMsMHg2NCwweDAwLDB4ZjksMHgwMCwweDJhLDB4NDAsMHgwYSwweDkwLDB4MGEsMHgyMCB9LAotICAxNiwgMHhlZDgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4ODAsMHhiOSwweDQyLDB4NjIsMHg0OCB9LAotICAxNiwgMHhlZDkwLCAwLCB7MHgyOCwweDkwLDB4MGEsMHgyNCwweDAwLDB4YjEsMHgwMCwweDIyLDB4NDAsMHgwYiwweDEwLDB4MDIsMHgyNCwweDEwLDB4YjksMHgwMiB9LAotICAxNiwgMHhlZGEwLCAwLCB7MHgyZSwweDQwLDB4MDgsMHhkMCwweDAyLDB4YTQsMHgwMCwweGIxLDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4MjQsMHgwNCB9LAotICAxNiwgMHhlZGIwLCAwLCB7MHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZGMwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIxLDB4MjAsMHg2MCwweDQwLDB4MDgsMHgxMiwweDAyLDB4MDQsMHgwMCwweGExLDB4MjAsMHgyMCB9LAotICAxNiwgMHhlZGQwLCAwLCB7MHg0MCwweDBiLDB4MTIsMHgwMiwweDA0LDB4ODAsMHg5MSwweDIwLDB4MmQsMHg2OCwweDA4LDB4NTIsMHgxMiwweDA0LDB4MDAsMHhiMSB9LAotICAxNiwgMHhlZGUwLCAwLCB7MHgyOCwweDI4LDB4NGEsMHgwOSwweDEyLDB4ODIsMHg0NCwweGEwLDB4YjEsMHgyYywweDI4LDB4NGEsMHgwYSwweDEyLDB4ODIsMHgwMiB9LAotICAxNiwgMHhlZGYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhmOCwweDAwLDB4MzIsMHgxNCB9LAotICAxNiwgMHhlZTAwLCAwLCB7MHgwYywweDgwLDB4MDMsMHgyMCwweDAwLDB4ZjgsMHg1MCwweDMyLDB4MTQsMHgwZiwweDg1LDB4MDMsMHgwMSwweDQwLDB4ZjgsMHgwMCB9LAotICAxNiwgMHhlZTEwLCAwLCB7MHgyZSwweDAwLDB4MjgsMHhjMCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MjQsMHgzMCwweDA4LDB4MGYsMHg4MiwweDIzLDB4MjAsMHg4MCB9LAotICAxNiwgMHhlZTIwLCAwLCB7MHhmOCwweDIwLDB4MzIsMHgwOCwweDBjLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTMwLCAwLCB7MHg5OCwweDFkLDB4ZTQsMHgwOCwweGY5LDB4MTAsMHgzZiwweDQwLDB4OGYsMHg5MSwweDEzLDB4ZTQsMHgwMCwweGVkLDB4MTAsMHgzZiB9LAotICAxNiwgMHhlZTQwLCAwLCB7MHg1MCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhhNSwweDEwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGY0LDB4MDQsMHhmOSB9LAotICAxNiwgMHhlZTUwLCAwLCB7MHgyOCwweDNlLDB4NGIsMHgwYiwweDkyLDB4YTMsMHhlNCwweGEwLDB4ZTksMHgyOCwweDNlLDB4NGEsMHgwZiwweDkyLDB4ODMsMHhlNiB9LAotICAxNiwgMHhlZTYwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY0LDB4MDAsMHhjZCwweDAwLDB4MzMsMHg0MCB9LAotICAxNiwgMHhlZTcwLCAwLCB7MHg4MCwweGQwLDB4MDEsMHhmNCwweDAwLDB4YTUsMHgwMCwweDI2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyNiwweDAwLDB4ZjEsMHg4OCB9LAotICAxNiwgMHhlZTgwLCAwLCB7MHgzZSwweDY4LDB4MGQsMHg5OCwweDgzLDB4NDQsMHgwMCwweGM5LDB4YzAsMHgzYSwweDQwLDB4MGMsMHg5OCwweDAzLDB4MjQsMHgwOCB9LAotICAxNiwgMHhlZTkwLCAwLCB7MHhmOSwweGEwLDB4MzIsMHg3OCwweDBmLDB4OWEsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZWEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMiwweDg4LDB4MDAsMHhhMiwweDAwLDB4MDgsMHg4MCwweDAyLDB4ZTAsMHgwMCwweDBhLDB4MDAsMHgyMiB9LAotICAxNiwgMHhlZWIwLCAwLCB7MHgwMCwweDBiLDB4ODAsMHgwMiwweDIwLDB4MDAsMHhiOCwweDQwLDB4MmUsMHgxNCwweDA4LDB4ODAsMHg0MywweDMwLDB4MDAsMHg4OCB9LAotICAxNiwgMHhlZWMwLCAwLCB7MHhhMCwweDIyLDB4MmEsMHgwYSwweDhhLDB4NDIsMHhhMCwweDA1LDB4YjgsMHg0MiwweDMyLDB4MzgsMHgwYiwweDgwLDB4MDIsMHgwZSB9LAotICAxNiwgMHhlZWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDMsMHg5MSwweDAwLDB4MjQsMHg0MCB9LAotICAxNiwgMHhlZWUwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHhjNCwweDExLDB4YjEsMHgwNCwweDIwLDB4NDEsMHgxYiwweDEwLDB4MjIsMHg0NSwweDAwLDB4YjUsMHgwMCB9LAotICAxNiwgMHhlZWYwLCAwLCB7MHgyNSwweDQwLDB4MDksMHg1MCwweDAyLDB4NTQsMHgwMSwweDgxLDB4NDAsMHgyYywweDQwLDB4MDksMHgxNCwweDkyLDB4NDQsMHgwMCB9LAotICAxNiwgMHhlZjAwLCAwLCB7MHhiMSwweDQwLDB4MjQsMHg0YywweDBiLDB4MTQsMHgwYSwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDk5LDB4MDAsMHgyNCwweDQyLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMSwweDk5LDB4MjAsMHgyNiB9LAotICAxNiwgMHhlZjIwLCAwLCB7MHg0MCwweGNiLDB4OTAsMHgwMiwweDY0LDB4MDAsMHhiYiwweDAwLDB4MmYsMHg0MSwweDBhLDB4ZDAsMHgwMiwweDM0LDB4MDAsMHg4OSB9LAotICAxNiwgMHhlZjMwLCAwLCB7MHgwMCwweDI2LDB4NDAsMHgwYiwweDEwLDB4MDIsMHhlNCwweDAwLDB4MzEsMHgwMCwweDYyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHg0NiB9LAotICAxNiwgMHhlZjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGM0LDB4MDAsMHhkOSwweDAxLDB4MzYsMHg1MCB9LAotICAxNiwgMHhlZjUwLCAwLCB7MHgyZiwweDkwLDB4MDMsMHhlNiwweDYwLDB4ZjksMHg4MCwweDM2LDB4NTIsMHgwYiwweDkwLDB4MGEsMHg2NCwweDAwLDB4ZjksMHgwMCB9LAotICAxNiwgMHhlZjYwLCAwLCB7MHgzNiwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjQsMHgwMiwweDA5LDB4MDAsMHgzZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjQsMHgwMCB9LAotICAxNiwgMHhlZjcwLCAwLCB7MHhiOSwweDAwLDB4YjYsMHg0MCwweDBmLDB4OTAsMHgwMywweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjgwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGUxLDB4MDAsMHgzYSwweDQxLDB4MGMsMHg5MCwweDIzLDB4ZTYsMHgyMCwweGU5LDB4MDAsMHhiYSB9LAotICAxNiwgMHhlZjkwLCAwLCB7MHg3MCwweDBmLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBkLDB4MTAsMHgxMywweGE3LDB4MDAsMHhmOSB9LAotICAxNiwgMHhlZmEwLCAwLCB7MHgwMCwweDNhLDB4NDAsMHgwZSwweDkwLDB4NDMsMHhhNCwweDA4LDB4ZjksMHgwMCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg4YSB9LAotICAxNiwgMHhlZmIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MjAsMHhmOCwweDAwLDB4MzIsMHgwMCB9LAotICAxNiwgMHhlZmMwLCAwLCB7MHgwZiwweDgwLDB4ODMsMHgyMSwweDAwLDB4ZjAsMHgwMCwweDNhLDB4MTEsMHgwOSwweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHgwMSB9LAotICAxNiwgMHhlZmQwLCAwLCB7MHgzMCwweDAxLDB4MGMsMHg4MCwweDAzLDB4YjAsMHgwMCwweGQwLDB4MDAsMHgzNCwweDAwLDB4MGQsMHg4MCwweDAzLDB4MjAsMHgwMCB9LAotICAxNiwgMHhlZmUwLCAwLCB7MHhjOCwweDAwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZmYwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweGJlLDB4MDAsMHgyMiwweDgwLDB4MDMsMHhlOCwweDAyLDB4MWEsMHgwOCwweGJlLDB4NDgsMHgyMiB9LAotICAxNiwgMHhmMDAwLCAwLCB7MHg4MCwweDBhLDB4YTAsMHgwMywweGI4LDB4MDAsMHhjYSwweDA4LDB4MjIsMHg4MCwweDBmLDB4YTQsMHgwMiwweDA4LDB4MDAsMHg4YSB9LAotICAxNiwgMHhmMDEwLCAwLCB7MHgwMCwweDIyLDB4ODAsMHg4ZCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ZGEsMHgwMCwweDJhLDB4ODEsMHgwOCwweGEwLDB4MDIsMHg4YSB9LAotICAxNiwgMHhmMDIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQ0LDB4MDAsMHhiMywweDAwLDB4MjAsMHg0MCB9LAotICAxNiwgMHhmMDMwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHgwOCwweDAwLDB4YjAsMHg2NCwweDY4LDB4YzEsMHgwOCwweGIwLDB4MjIsMHhjYywweDBjLDB4OTMsMHg4MCB9LAotICAxNiwgMHhmMDQwLCAwLCB7MHgwMCwweGMwLDB4NDgsMHgzNiwweDAyLDB4ODgsMHgwMCwweGIzLDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDA2LDB4MGMsMHgwMSB9LAotICAxNiwgMHhmMDUwLCAwLCB7MHhhMywweDAyLDB4MmMsMHhjMCwweDA4LDB4YjAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDYwLCAwLCB7MHhhMCwweDAxLDB4MTQsMHgwOCwweGI1LDB4MDAsMHgyMSwweDQwLDB4MGIsMHgzOCwweDgyLDB4MWMsMHgyMSwweGI3LDB4MDAsMHgyMyB9LAotICAxNiwgMHhmMDcwLCAwLCB7MHhlOCwweDRhLDB4NzIsMHgyNiwweDllLDB4NDAsMHg4ZiwweDgxLDB4YWIsMHg0MCwweDQyLDB4NzAsMHg1MiwweDM4LDB4MDAsMHhhMyB9LAotICAxNiwgMHhmMDgwLCAwLCB7MHgyMiwweDIwLDB4YzQsMHg0OSwweDMxLDB4MDIsMHgxZSwweDBhLDB4YjcsMHgyMiwweDJkLDB4ZTgsMHgwOCwweDcyLDB4MDIsMHhhOCB9LAotICAxNiwgMHhmMDkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDEyLDB4MDAsMHhmNiwweDgwLDB4MjEsMHhlMCB9LAotICAxNiwgMHhmMGEwLCAwLCB7MHgwYiwweDc4LDB4MGIsMHgxZSwweDAwLDB4YjQsMHg4MiwweDNiLDB4ZTgsMHg0YywweDdjLDB4MTMsMHhmZSwweDAyLDB4OTcsMHg4MCB9LAotICAxNiwgMHhmMGIwLCAwLCB7MHgzMywweGEwLDB4MDgsMHgzOCwweDAzLDB4OWEsMHgwMCwweGY3LDB4ODgsMHgzNSwweGUyLDB4MGMsMHg3OCwweGUzLDB4MGUsMHgwMCB9LAotICAxNiwgMHhmMGMwLCAwLCB7MHhlMywweGU4LDB4MzQsMHhmOCwweDBjLDB4M2MsMHgyMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMGQwLCAwLCB7MHgwOCwweDFkLDB4YTgsMHgwNCwweGYxLDB4MDAsMHgzZSwweDQyLDB4MGYsMHhiMCwweDEzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHhiZSB9LAotICAxNiwgMHhmMGUwLCAwLCB7MHhjYywweDFlLDB4YjYsMHgwNywweGVkLDB4ODAsMHhmYiwweDAwLDB4MzYsMHgwMCwweDBmLDB4YjAsMHg0MywweDY4LDB4MDAsMHhjYiB9LAotICAxNiwgMHhmMGYwLCAwLCB7MHgzMCwweDNlLDB4ZDgsMHgwZiwweGI2LDB4MGIsMHhlZCwweDQwLDB4Y2IsMHgwMCwweDNhLDB4YzAsMHgyZiwweGI2LDB4MDMsMHhjMiB9LAotICAxNiwgMHhmMTAwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGYyLDB4NDAsMHhmYiwweDkxLDB4M2QsMHg0YyB9LAotICAxNiwgMHhmMTEwLCAwLCB7MHg4MCwweGY4LDB4MDMsMHhkZSwweDQwLDB4YzYsMHg4MCwweDFiLDB4ZjAsMHg0ZiwweGZkLDB4MDcsMHhmZiwweDAwLDB4Y2QsMHg4MCB9LAotICAxNiwgMHhmMTIwLCAwLCB7MHgzMywweGUwLDB4MGMsMHg2OCwweDAzLDB4YmEsMHgwMCwweGZmLDB4ODAsMHgzMywweGUwLDB4MDcsMHhmOCwweDAzLDB4M2YsMHgxMCB9LAotICAxNiwgMHhmMTMwLCAwLCB7MHhjZiwweDgwLDB4M2YsMHhlMCwweDBjLDB4ZmMsMHgwMywweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTQwLCAwLCB7MHhhOCwweDExLDB4OTAsMHgwMCwweGI1LDB4YzAsMHgyZCwweDQwLDB4MDgsMHg2MiwweDAyLDB4ZGMsMHgyMCwweGQ2LDB4MDIsMHgyMSB9LAotICAxNiwgMHhmMTUwLCAwLCB7MHhjOCwweDhmLDB4NzAsMHgwMiwweGRjLDB4ODEsMHhiNSwweDAwLDB4ODEsMHg0NCwweDBkLDB4NjEsMHgyMiwweDE4LDB4MDQsMHhiNyB9LAotICAxNiwgMHhmMTYwLCAwLCB7MHgwMCwweDM1LDB4YzAsMHgwYiwweDcwLDB4MDIsMHhiYywweDAwLDB4YTcsMHgwMSwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDMsMHhlYSB9LAotICAxNiwgMHhmMTcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDEsMHhiNiwweDAxLDB4MmYsMHhjMCB9LAotICAxNiwgMHhmMTgwLCAwLCB7MHgxOCwweDcwLDB4MDIsMHhkYywweDBhLDB4OTYsMHgxMCwweDI5LDB4YzEsMHg0YiwweDcwLDB4MDYsMHhkYywweDEwLDB4ODUsMHgwMCB9LAotICAxNiwgMHhmMTkwLCAwLCB7MHgyNSwweDgwLDB4MDgsMHg2MCwweDgyLDB4MWEsMHgyMCwweGEzLDB4MDAsMHgyNSwweGMwLDB4MGIsMHgzMSwweDAyLDB4NWMsMHg0MCB9LAotICAxNiwgMHhmMWEwLCAwLCB7MHg4NywweDAwLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMWIwLCAwLCB7MHgyMCwweDE0LDB4YzgsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4ODgsMHgyMCwweDAyLDB4ZWQsMHgwMCwweDhhLDB4NjAsMHgyMCB9LAotICAxNiwgMHhmMWMwLCAwLCB7MHhjMCwweDBhLDB4MzAsMHgwMiwweGNjLDB4MDQsMHhiMSwweDAwLDB4MjQsMHgwMCwweDI4LDB4MjQsMHgwMiwweDBhLDB4MDAsMHgzMyB9LAotICAxNiwgMHhmMWQwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwYiwweGIwLDB4MDIsMHhjYywweDAwLDB4YTMsMHgwMCwweDJjLDB4YzAsMHg4OCwweDMwLDB4MDIsMHg4OCB9LAotICAxNiwgMHhmMWUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGEwLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjNiB9LAotICAxNiwgMHhmMWYwLCAwLCB7MHgwYywweDgwLDB4MDMsMHhlNSwweDAwLDB4MDksMHhjOCwweGFiLDB4ZTIsMHgwYiwweGYwLDB4MDIsMHhmYywweDAwLDB4NGEsMHgwMCB9LAotICAxNiwgMHhmMjAwLCAwLCB7MHgzNiwweGMwLDB4MDgsMHg5MCwweDAzLDB4YTYsMHgwMCwweGZmLDB4MDAsMHgzMywweGMwLDB4MGYsMHhmMCwweDAzLDB4N2MsMHgwMCB9LAotICAxNiwgMHhmMjEwLCAwLCB7MHg4ZiwweDAwLDB4MmYsMHhjMCwweDI4LDB4ZjAsMHgwMiwweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjIwLCAwLCB7MHg4MCwweDAwLDB4ZTEsMHgwMCwweGZhLDB4MDEsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4NDAsMHgzZSB9LAotICAxNiwgMHhmMjMwLCAwLCB7MHhjMCwweDA3LDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYSwweDAwLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgyMywweGU1LDB4MDAsMHhmYiB9LAotICAxNiwgMHhmMjQwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZmIsMHgwMCwweDNjLDB4YzAsMHgwZiwweGIwLDB4MjMsMHhlMCB9LAotICAxNiwgMHhmMjUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGYwLDB4MDAsMHhmYywweDIwLDB4M2YsMHhjMCB9LAotICAxNiwgMHhmMjYwLCAwLCB7MHgwYywweGM4LDB4MDMsMHhmYywweDIwLDB4Y2QsMHg4MSwweGIzLDB4YzIsMHg0ZiwweGYwLDB4MDMsMHhmYywweDAwLDB4Y2EsMHgwMCB9LAotICAxNiwgMHhmMjcwLCAwLCB7MHgzYywweDgwLDB4MGMsMHhkMCwweDgyLDB4MzYsMHgwMSwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4M2MsMHgwOCB9LAotICAxNiwgMHhmMjgwLCAwLCB7MHhjZiwweDA0LDB4M2EsMHhjMCwweDVjLDB4YjAsMHgwMywweGMwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjkwLCAwLCB7MHg4MSwweDA0LDB4NjIsMHgwNCwweGI4LDB4NDAsMHgyYywweDYwLDB4MDgsMHg4OSwweDAyLDB4ZWUsMHg4MCwweGE5LDB4NjAsMHgyYSB9LAotICAxNiwgMHhmMmEwLCAwLCB7MHhjMCwweDBiLDB4YjAsMHgwMywweDhjLDB4MDAsMHhhYSwweDQwLDB4MmUsMHgwMCwweDA4LDB4MTAsMHgwMiwweDI2LDB4ODEsMHhlYiB9LAotICAxNiwgMHhmMmIwLCAwLCB7MHgwMCwweDI2LDB4YzAsMHg4YiwweGIwLDB4MTMsMHg2YywweDAwLDB4ZGIsMHgwMCwweDJlLDB4YzAsMHgzZCwweGIwLDB4MDIsMHhlMCB9LAotICAxNiwgMHhmMmMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDIzLDB4MDAsMHhiYiwweDAzLDB4MmUsMHhjOCB9LAotICAxNiwgMHhmMmQwLCAwLCB7MHgwOSwweGIwLDB4MDIsMHhlZSwweDAwLDB4OGIsMHgxMCwweDI2LDB4YzAsMHgwYiwweGIwLDB4MDIsMHhlYywweDAwLDB4YTgsMHgwMCB9LAotICAxNiwgMHhmMmUwLCAwLCB7MHgyZSwweGMwLDB4MDgsMHg4OCwweDIyLDB4YTQsMHg4MCwweGJiLDB4MDAsMHgyZSwweGMwLDB4NGIsMHhiMCwweDIyLDB4MGMsMHgwMCB9LAotICAxNiwgMHhmMmYwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzAwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweGIyLDB4MDAsMHgyZSwweGMwLDB4MjksMHgyOCwweDAyLDB4ZWMsMHgwMSwweGEwLDB4MDIsMHgyMCB9LAotICAxNiwgMHhmMzEwLCAwLCB7MHhjMCwweDA5LDB4MzAsMHgwMiwweGNjLDB4MDAsMHhhMCwweDAwLDB4MmMsMHg0MCwweDA4LDB4MDAsMHg0MiwweDg0LDB4MDAsMHg5MyB9LAotICAxNiwgMHhmMzIwLCAwLCB7MHgwMCwweDZjLDB4YzAsMHgwYiwweDMwLDB4MDYsMHg0ZCwweDAwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhmMzMwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhmOCwweDIwLDB4MmYsMHhjMCB9LAotICAxNiwgMHhmMzQwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHhlYywweDAwLDB4Y2IsMHgwMCwweDMzLDB4YzAsMHgwYiwweGYwLDB4MDMsMHhmYywweDE4LDB4ZTgsMHgwMCB9LAotICAxNiwgMHhmMzUwLCAwLCB7MHgyZSwweDgwLDB4MDgsMHg4MCwweDAzLDB4YTQsMHgwMCwweGJmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDQzLDB4M2QsMHgxMSB9LAotICAxNiwgMHhmMzYwLCAwLCB7MHhjZiwweDAzLDB4M2UsMHhjMSwweDVkLDB4ZjAsMHgyMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzcwLCAwLCB7MHhhMCwweDFkLDB4ZjAsMHgwMCwweGZjLDB4MTAsMHgzZiwweDQwLDB4MGUsMHhlMCwweDAzLDB4ZmMsMHgwMCwweGZjLDB4MDAsMHgzZiB9LAotICAxNiwgMHhmMzgwLCAwLCB7MHhjMCwweDBmLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDJmLDB4YzAsMHgwMywweDc0LDB4MDAsMHhlZiB9LAotICAxNiwgMHhmMzkwLCAwLCB7MHgwMCwweDI3LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDE4LDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhmM2EwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxNSwweGZjLDB4ODgsMHg5YywweDI5LDB4M2YsMHgwOCB9LAotICAxNiwgMHhmM2IwLCAwLCB7MHgwZiwweGQyLDB4ODMsMHhlYywweDAwLDB4ZmYsMHgwOCwweDNmLDB4MjgsMHgwZiwweGNhLDB4MDMsMHgzYywweDQxLDB4Y2YsMHgyMCB9LAotICAxNiwgMHhmM2MwLCAwLCB7MHg3MywweDJjLDB4MGMsMHhjMCwweDAzLDB4MzAsMHgyMCwweGNmLDB4NjAsMHgzMywweGQ4LDB4MGYsMHg3OCwweDAzLDB4M2YsMHg4MCB9LAotICAxNiwgMHhmM2QwLCAwLCB7MHhkZCwweDkyLDB4MzMsMHhjOCwweDBmLDB4NTAsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmM2UwLCAwLCB7MHg4MCwweDEwLDB4ZTUsMHg0MCwweDg4LDB4NDAsMHgyZSwweDA0LDB4OGIsMHg5NCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgwZSB9LAotICAxNiwgMHhmM2YwLCAwLCB7MHg3ZiwweDhmLDB4OWUsMHg4MywweDY1LDB4ODIsMHhjZiwweDY4LDB4M2UsMHg1MCwweDhkLDB4MDQsMHg5MiwweDJmLDB4MDQsMHhkMyB9LAotICAxNiwgMHhmNDAwLCAwLCB7MHg0MCwweDc0LDB4ZGMsMHgwZCwweGEyLDB4MDIsMHgyMCwweDQwLDB4ODksMHgwMCwweDIyLDB4ZjAsMHgwYiwweDk4LDB4MDIsMHgyMCB9LAotICAxNiwgMHhmNDEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM4LDB4MDksMHhhMCwweDg1LDB4MmMsMHgwMSB9LAotICAxNiwgMHhmNDIwLCAwLCB7MHgwYiwweDAwLDB4MTAsMHhjYywweDQwLDB4YTIsMHgwOCwweDJjLDB4MDAsMHhkYiwweDExLDB4MDIsMHg4OSwweDAwLDB4OTMsMHgzMCB9LAotICAxNiwgMHhmNDMwLCAwLCB7MHgyMCwweDA1LDB4MDgsMHgxMywweDAyLDB4ODAsMHgwOCwweGEzLDB4NjAsMHg2MCwweGMwLDB4MGEsMHhiMCwweDgyLDB4MDgsMHg4NCB9LAotICAxNiwgMHhmNDQwLCAwLCB7MHg4MSwweDIwLDB4MjAsMHhkMCwweDBiLDB4MTAsMHgwMiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDUwLCAwLCB7MHhjMCwweDE1LDB4YTQsMHgxMiwweDg4LDB4ODAsMHg2ZSwweDIwLDB4MGIsMHg4OCwweDgyLDB4ZWUsMHgwMCwweGJhLDB4ODEsMHgyZSB9LAotICAxNiwgMHhmNDYwLCAwLCB7MHg2MCwweDVhLDB4OTgsMHgwMiwweGEyLDB4MDAsMHg4YiwweDAwLDB4MmEsMHg2MCwweDA4LDB4MTEsMHgxYSwweDJjLDB4MDAsMHhiYiB9LAotICAxNiwgMHhmNDcwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweGI4LDB4MGEsMHgyOCwweDAwLDB4ODEsMHgyMCwweDAyLDB4YzAsMHgwYiwweDkwLDB4MDIsMHhiMCB9LAotICAxNiwgMHhmNDgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGVkLDB4MDAsMHhkOSwweDgwLDB4M2UsMHgyMCB9LAotICAxNiwgMHhmNDkwLCAwLCB7MHg0ZiwweDk4LDB4MDAsMHhlYiwweDIwLDB4ZmIsMHhlMCwweDJlLDB4NjAsMHgwYiwweDhjLDB4NjIsMHhhZSwweDIwLDB4OGIsMHgwMCB9LAotICAxNiwgMHhmNGEwLCAwLCB7MHgyMiwweDYwLDB4MDgsMHhiYywweDAzLDB4YTAsMHgyMCwweGViLDB4MDAsMHgyMiwweGMxLDB4MGEsMHgxOCwweDBiLDB4MjUsMHgwMCB9LAotICAxNiwgMHhmNGIwLCAwLCB7MHhkOSwweDAwLDB4YjIsMHhjMCwweDBmLDB4OTAsMHgwYiwweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNGMwLCAwLCB7MHhlMCwweDAxLDB4OTQsMHg4OCwweGZmLDB4MDAsMHgzZiwweDAxLDB4MGYsMHhkMCwweDAxLDB4ZjAsMHgwOCwweGRkLDB4MDEsMHgzZiB9LAotICAxNiwgMHhmNGQwLCAwLCB7MHg0MiwweDA3LDB4NDAsMHgwMywweDVjLDB4MDAsMHhhZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZjgsMHgwMCwweGYwLDB4MDAsMHhkZiB9LAotICAxNiwgMHhmNGUwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MjMsMHhmNCwweDUwLDB4ZmQsMHg4MCwweDNmLDB4YzAsMHgwZiwweGQwLDB4MDMsMHg3OCB9LAotICAxNiwgMHhmNGYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweGFjLDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCB9LAotICAxNiwgMHhmNTAwLCAwLCB7MHgwZiwweDk0LDB4MDMsMHhhOCwweDIwLDB4Y2EsMHg0MCwweDNhLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhlYSwweDA4LDB4ZmIsMHgwMCB9LAotICAxNiwgMHhmNTEwLCAwLCB7MHgzYSwweDAwLDB4NGMsMHhmNiwweDIzLDB4MmMsMHgzMCwweGNiLDB4MDAsMHgzNiwweGMwLDB4MGQsMHg5MCwweDAzLDB4YTEsMHgwMiB9LAotICAxNiwgMHhmNTIwLCAwLCB7MHhkOSwweDAwLDB4YmEsMHhjMCwweDBmLDB4OTgsMHgwMywweDEwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTMwLCAwLCB7MHhjOCwweDA1LDB4MjQsMHgwMCwweDhhLDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5NSwweDAyLDB4ZTAsMHgwOCwweDg4LDB4ODAsMHgyMiB9LAotICAxNiwgMHhmNTQwLCAwLCB7MHg3MCwweDhmLDB4OGMsMHgwMiwweGUwLDB4MDAsMHhiZiwweDAyLDB4MjAsMHgwMCwweDA4LDB4YjgsMHgwMiwweDBlLDB4MDAsMHhkZiB9LAotICAxNiwgMHhmNTUwLCAwLCB7MHgwMCwweDIzLDB4ZGQsMHgwOCwweDk4LDB4ODIsMHgyYSwweDAwLDB4ODksMHg4MCwweDIzLDB4YzAsMHgwYiwweDUwLDB4MWEsMHgzMiB9LAotICAxNiwgMHhmNTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ0LDB4MDAsMHg4MywweDA1LDB4MjQsMHg0MSB9LAotICAxNiwgMHhmNTcwLCAwLCB7MHgwOSwweDEwLDB4MDIsMHhjZSwweDAwLDB4ODMsMHg5MCwweDJjLDB4ODAsMHgxYiwweDI0LDB4ODIsMHhjYywweDAwLDB4YmIsMHgwMCB9LAotICAxNiwgMHhmNTgwLCAwLCB7MHgyYywweDgwLDB4MDgsMHgwNCwweDA4LDB4MDQsMHgwMSwweDhiLDB4MDAsMHgyMiwweGMwLDB4MjgsMHgxMiwweDAyLDB4NmMsMHg4MCB9LAotICAxNiwgMHhmNTkwLCAwLCB7MHg4MSwweDQ4LDB4MjQsMHhjNCwweDBiLDB4MTAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNWEwLCAwLCB7MHgyMCwweDAxLDB4M2UsMHg0MiwweDg2LDB4ODAsMHgyZCwweDYwLDB4MGIsMHg2OCwweDAyLDB4ZjYsMHg5MCwweDhkLDB4ODAsMHgyMSB9LAotICAxNiwgMHhmNWIwLCAwLCB7MHgyMiwweDBiLDB4NTgsMHgwMiwweGQ3LDB4NDAsMHhiNywweDkwLDB4MjEsMHhlMCwweDA4LDB4NDksMHg5MiwweDFlLDB4NTMsMHg5NyB9LAotICAxNiwgMHhmNWMwLCAwLCB7MHg4MSwweDIxLDB4ZTAsMHg0OCwweGM4LDB4MGEsMHg1MiwweDIyLDB4ODUsMHg4OCwweDI1LDB4ZTAsMHgwYiwweDU4LDB4MDIsMHgwOCB9LAotICAxNiwgMHhmNWQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg4MywweDAwLDB4MzQsMHhjMCB9LAotICAxNiwgMHhmNWUwLCAwLCB7MHgwZiwweDAwLDB4MDMsMHhjZSwweDIwLDB4YzMsMHgzMCwweDdjLDB4OTQsMHgwYiwweDM0LDB4ODMsMHhjYywweDE0LDB4ZjMsMHgwMiB9LAotICAxNiwgMHhmNWYwLCAwLCB7MHgzYywweDgwLDB4MGMsMHgwNCwweDAzLDB4MDQsMHg2MCwweGMzLDB4MDAsMHhiMCwweGMwLDB4MGMsMHgxMCwweDAzLDB4ZWMsMHgwMCB9LAotICAxNiwgMHhmNjAwLCAwLCB7MHhjOSwweDAwLDB4M2MsMHhjNCwweDBmLDB4MTEsMHgwMywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjEwLCAwLCB7MHg0MCwweDFkLDB4OWMsMHgwMCwweGVlLDB4MDEsMHgzZiwweGMwLDB4NGYsMHhlMSwweDAzLDB4ZDQsMHg0MCwweGY1LDB4MTYsMHg3YSB9LAotICAxNiwgMHhmNjIwLCAwLCB7MHhjMCwweDRlLDB4ZjAsMHgwMywweGY0LDB4MTAsMHgzNywweDA1LDB4M2QsMHhjMCwweDBmLDB4YzAsMHgwYiwweGRjLDB4NDAsMHhmZiB9LAotICAxNiwgMHhmNjMwLCAwLCB7MHgwMCwweDNiLDB4YzIsMHgwZSwweGQwLDB4MDcsMHhiYywweDAyLDB4ZWYsMHgwMCwweDNiLDB4YzYsMHgwZiwweGQwLDB4MDMsMHhkMCB9LAotICAxNiwgMHhmNjQwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGY0LDB4MDAsMHhkZCwweDg0LDB4MzMsMHg4MCB9LAotICAxNiwgMHhmNjUwLCAwLCB7MHgwNCwweGYwLDB4MDMsMHg2YywweDAyLDB4Y2IsMHgwMiwweDdlLDB4YzAsMHgxZiwweGEwLDB4NTMsMHhlYywweDAwLDB4Y2IsMHgyMCB9LAotICAxNiwgMHhmNjYwLCAwLCB7MHgzNCwweDQwLDB4MGMsMHhkMCwweDBiLDB4MjAsMHgxMCwweGViLDB4MDAsMHgxZSwweGUwLDB4MGYsMHgzMCwweDBiLDB4MmMsMHgwMCB9LAotICAxNiwgMHhmNjcwLCAwLCB7MHhjMSwweDAwLDB4MzIsMHhjMCwweDBmLDB4OTEsMHgwMywweGVhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjgwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDg3LDB4MDAsMHgyMSwweDgwLDB4MDgsMHg2MCwweDAwLDB4MTQsMHgwMCwweDg1LDB4MDAsMHgyZCB9LAotICAxNiwgMHhmNjkwLCAwLCB7MHg4MCwweDBiLDB4NzAsMHg1MiwweGQ0LDB4MDQsMHg4MywweDI4LDB4MjksMHhjMCwweDI4LDB4NTAsMHgwMywweDUwLDB4MDAsMHg4NyB9LAotICAxNiwgMHhmNmEwLCAwLCB7MHg0MCwweDI1LDB4YzgsMHgwZiwweDYwLDB4MDIsMHgwNCwweDAwLDB4YTcsMHgwMCwweDNkLDB4YzgsMHgwYiwweDUyLDB4MDIsMHhkMiB9LAotICAxNiwgMHhmNmIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg5NSwweDgwLDB4MjEsMHhlMCB9LAotICAxNiwgMHhmNmMwLCAwLCB7MHgwOSwweDM4LDB4MDIsMHgxZSwweDExLDB4YTcsMHg4MCwweDJkLDB4ZjAsMHgwYiwweDc4LDB4NTIsMHhjZSwweDBhLDB4OTcsMHg5NSB9LAotICAxNiwgMHhmNmQwLCAwLCB7MHgyMSwweGUwLDB4MTksMHg1YywweDAyLDB4MGUsMHgwMCwweGE3LDB4ODAsMHgyOSwweGM4LDB4MGIsMHhmOCwweDAyLDB4MWUsMHgyMCB9LAotICAxNiwgMHhmNmUwLCAwLCB7MHg4ZCwweDgwLDB4MjEsMHhlMCwweDBiLDB4NTgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNmYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweDgyLDB4ZTAsMHhhMCwweGU4LDB4MjksMHgzMCwweDA2LDB4MGUsMHg1MCwweGFiLDB4ODAsMHgyYyB9LAotICAxNiwgMHhmNzAwLCAwLCB7MHhmMCwweDBiLDB4MzEsMHg0MiwweGNjLDB4MDAsMHg5MywweDAwLDB4MjgsMHhjNCwweDA5LDB4OTgsMHgwMiwweDRjLDB4MjgsMHg4MyB9LAotICAxNiwgMHhmNzEwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwYSwweGIwLDB4MDIsMHgwZCwweDAwLDB4YTIsMHg1OCwweDI4LDB4YzAsMHgwYiwweDEwLDB4MDIsMHhkMiB9LAotICAxNiwgMHhmNzIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI5LDB4MDAsMHhkZSwweDgwLDB4MzEsMHhhMCB9LAotICAxNiwgMHhmNzMwLCAwLCB7MHgwOSwweGUyLDB4MGIsMHg3OCwweDA0LDB4ZWUsMHhhNCwweDJmLDB4YTQsMHg4YiwweGVjLDB4MDIsMHhkOCwweDAwLDB4ZGEsMHgwMCB9LAotICAxNiwgMHhmNzQwLCAwLCB7MHgyNywweDgxLDB4MGQsMHhlYywweDA2LDB4MWIsMHgwMCwweGVhLDB4MDQsMHgzZSwweDgwLDB4MGIsMHhlMCwweDAzLDB4M2IsMHgwMCB9LAotICAxNiwgMHhmNzUwLCAwLCB7MHhjZSwweGMwLDB4MjIsMHg4MCwweDBmLDB4YTAsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzYwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHg4MCwweGY4LDB4MTAsMHgzZSwweDA1LDB4MGUsMHg4OCwweDAzLDB4ZTAsMHgwOCwweDk4LDB4NDAsMHgzZSB9LAotICAxNiwgMHhmNzcwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHg4MywweGUxLDB4NDAsMHhlOCwweDAwLDB4M2EsMHgwMiwweDBlLDB4ODAsMHg0MywweGUxLDB4NDAsMHhmOCB9LAotICAxNiwgMHhmNzgwLCAwLCB7MHgwMCwweDM2LDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDIwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHhmNzkwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGM0LDB4MDAsMHhlOSwweDAwLDB4M2UsMHg0MCB9LAotICAxNiwgMHhmN2EwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgwNCwweDIwLDB4ZTksMHg5MCwweDMyLDB4NjgsMHgwZSwweDk4LDB4MDMsMHhhNCwweDAwLDB4YzEsMHgwMCB9LAotICAxNiwgMHhmN2IwLCAwLCB7MHgzMCwweDQwLDB4MGMsMHg5NCwweDgzLDB4MjQsMHgwOCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4YTQsMHgwMCB9LAotICAxNiwgMHhmN2MwLCAwLCB7MHhjOSwweDAwLDB4MzAsMHg1MCwweDBjLDB4MWEsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmN2QwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4NDAsMHgyZSwweDUwLDB4MjgsMHg5MCwweDBhLDB4MjQsMHgwOCwweDg5LDB4MDYsMHgxNiB9LAotICAxNiwgMHhmN2UwLCAwLCB7MHg2MSwweDBiLDB4OWMsMHgwMiwweGU0LDB4MjAsMHhhOSwweDAwLDB4MzYsMHg0MCwweDBkLDB4OTAsMHgwMiwweDI3LDB4NjAsMHhhOSB9LAotICAxNiwgMHhmN2YwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgyOCwweDkwLDB4MWEsMHgyNCwweDAwLDB4ODksMHgwMCwweDM2LDB4NDAsMHgyOCwweDk4LDB4MDIsMHgyMCB9LAotICAxNiwgMHhmODAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDJjLDB4MDAsMHhhOSwweDA4LDB4MmUsMHhjMiB9LAotICAxNiwgMHhmODEwLCAwLCB7MHgwOSwweDEwLDB4MDAsMHgyNCwweDAwLDB4YTksMHgwMCwweDA2LDB4NDAsMHg4OSwweDk2LDB4MDYsMHhlNiwweDAwLDB4ODksMHgwMCB9LAotICAxNiwgMHhmODIwLCAwLCB7MHgyMiwweGMwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMiwweDg5LDB4MDAsMHgyNCwweDQwLDB4MDgsMHg5MCwweDAyLDB4MGMsMHgwNiB9LAotICAxNiwgMHhmODMwLCAwLCB7MHg4MywweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODQwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHgwMCwweDgxLDB4NDQsMHgyYywweDUwLDB4MDgsMHgxNCwweDAyLDB4MDUsMHg4MCwweDgxLDB4MjAsMHg2NCB9LAotICAxNiwgMHhmODUwLCAwLCB7MHg3MCwweDFiLDB4MTQsMHgwMiwweGU0LDB4ODAsMHhhMSwweDIwLDB4NjQsMHg0MCwweDE5LDB4MTIsMHgwYSwweDA0LDB4ODAsMHhhMSB9LAotICAxNiwgMHhmODYwLCAwLCB7MHgwMCwweDJjLDB4NTAsMHgxOCwweDE0LDB4MDIsMHg4NSwweDAwLDB4ODEsMHg0MCwweDI0LDB4NDAsMHg0MCwweDEwLDB4MDIsMHgwMiB9LAotICAxNiwgMHhmODcwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhlMCwweDAwLDB4M2MsMHgwMCB9LAotICAxNiwgMHhmODgwLCAwLCB7MHgwZCwweDgwLDB4MDIsMHgwMCwweDAwLDB4YWEsMHg1MCwweDM2LDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMSwweDQwLDB4YzgsMHg1MiB9LAotICAxNiwgMHhmODkwLCAwLCB7MHg3MiwweDE0LDB4MGMsMHgwNSwweDE2LDB4MjAsMHgwOCwweGM4LDB4NTAsMHgzZSwweDAxLDB4MGMsMHg4MCwweDAzLDB4YTAsMHgwNCB9LAotICAxNiwgMHhmOGEwLCAwLCB7MHhjOCwweDAwLDB4YjIsMHgwMCwweDBjLDB4ODAsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOGIwLCAwLCB7MHg5OCwweDE5LDB4ZjUsMHgwMiwweGZkLDB4NDAsMHgzZiwweGQwLDB4MGYsMHhkNCwweDIzLDB4ZjQsMHg0NCwweGZkLDB4MTQsMHg3ZiB9LAotICAxNiwgMHhmOGMwLCAwLCB7MHg1MCwweDBmLDB4ZDQsMHgwNywweGY0LDB4NDAsMHhmOSwweDEwLDB4M2YsMHg1MCwweDA3LDB4ZDEsMHgyMywweGY0LDB4NDAsMHhmOSB9LAotICAxNiwgMHhmOGQwLCAwLCB7MHg0MCwweDFlLDB4NTAsMHgwNywweGQwLDB4MGIsMHg3NSwweDAwLDB4ZmQsMHgwMiwweDNlLDB4NTAsMHgwZiwweGQ0LDB4MDMsMHhlNiB9LAotICAxNiwgMHhmOGUwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4MDAsMHhjOSwweGE4LDB4M2UsMHg3MiB9LAotICAxNiwgMHhmOGYwLCAwLCB7MHgwZiwweDk4LDB4MDMsMHhlNiwweGMwLDB4ZmQsMHhhMCwweGIzLDB4NDAsMHgwZiwweGQwLDB4MDMsMHg3NywweDgwLDB4Y2QsMHg5MCB9LAotICAxNiwgMHhmOTAwLCAwLCB7MHg3ZiwweDQwLDB4MGYsMHhkYSwweGEzLDB4MTYsMHg5MCwweGE5LDB4YzAsMHgzMiwweDYwLDB4NGMsMHhiMSwweDAzLDB4MjQsMHgwMCB9LAotICAxNiwgMHhmOTEwLCAwLCB7MHhjMSwweDAwLDB4MzMsMHg2YSwweDBiLDB4ZGEsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTIwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHg0MCwweDg4LDB4ZTAsMHgyZSwweDMwLDB4MGIsMHg4ZCwweDAyLDB4ZjMsMHg0MCwweGI4LDB4ZTgsMHg3NiB9LAotICAxNiwgMHhmOTMwLCAwLCB7MHgwMCwweDRmLDB4ODAsMHgwYSwweDIyLDB4ODAsMHg4OCwweDkwLDB4NmUsMHgyOCwweDhmLDB4OGEsMHgwMywweDYxLDB4NDQsMHhmOCB9LAotICAxNiwgMHhmOTQwLCAwLCB7MHhlMSwweDNlLDB4MmEsMHgwOCwweDg4LDB4MDMsMHg0MiwweGEwLDB4ZGMsMHhhMCwweDNlLDB4MTAsMHgwYiwweDg1LDB4MGEsMHgwZSB9LAotICAxNiwgMHhmOTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4YTAsMHg4NSwweDA4LDB4MmQsMHg0OCB9LAotICAxNiwgMHhmOTYwLCAwLCB7MHgxYiwweDUyLDB4ODIsMHhkNCwweDgwLDB4YjEsMHgxNCwweDIwLDB4NDAsMHgwYiwweDE4LDB4MDIsMHgwNSwweDgyLDB4ODEsMHgwMCB9LAotICAxNiwgMHhmOTcwLCAwLCB7MHg2YywweDQyLDB4MGIsMHgxMiwweDgyLDB4MDQsMHgwMCwweGExLDB4NjAsMHgyMSwweDUwLDB4MGIsMHg1MCwweDAyLDB4MTQsMHg5MCB9LAotICAxNiwgMHhmOTgwLCAwLCB7MHg5NSwweDJjLDB4MjgsMHg0MCwweDBiLDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTkwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMSwweDhkLDB4NDQsMHgyZiwweDQwLDB4MGIsMHhkNCwweDAyLDB4ZjQsMHgwNCwweGI5LDB4MDgsMHgyMiB9LAotICAxNiwgMHhmOWEwLCAwLCB7MHg0MCwweDBhLDB4OTIsMHgwMiwweDJjLDB4ODQsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBhLDB4MTQsMHgwMiwweDZjLDB4ODAsMHhhOSB9LAotICAxNiwgMHhmOWIwLCAwLCB7MHgwMSwweDJhLDB4NDAsMHgwOSwweDUwLDB4MGEsMHg1YywweDAyLDB4OGQsMHg2MCwweDJhLDB4NDAsMHgwYiwweDkwLDB4NDIsMHgwNiB9LAotICAxNiwgMHhmOWMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU2LDB4NjIsMHhjOSwweDAyLDB4M2UsMHg1NCB9LAotICAxNiwgMHhmOWQwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHg0MCwweDIyLDB4NDYsMHgwYiwweDk4LDB4MDMsMHg2NywweDIwLDB4YzksMHgwMSB9LAotICAxNiwgMHhmOWUwLCAwLCB7MHgyZSwweDY5LDB4MGIsMHg5NCwweDBiLDB4MjUsMHgyMCwweGE5LDB4MDAsMHgyMiwweDQwLDB4MmQsMHg5MiwweDBhLDB4MjYsMHgyMiB9LAotICAxNiwgMHhmOWYwLCAwLCB7MHg5OSwweDAwLDB4MmEsMHg0MCwweDhmLDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTAwLCAwLCB7MHgyOCwweDAxLDB4ODYsMHgwMiwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTYsMHg4MCwweGYxLDB4YTAsMHgzZSB9LAotICAxNiwgMHhmYTEwLCAwLCB7MHg2MiwweDBmLDB4OTgsMHg4MywweGM2LDB4MjAsMHhmOSwweDAwLDB4M2UsMHg0OSwweDBmLDB4OTAsMHg4MywweGU0LDB4MDAsMHg3MSB9LAotICAxNiwgMHhmYTIwLCAwLCB7MHgwMiwweDNlLDB4NDAsMHgwZSwweDkwLDB4MGIsMHhlNiwweDgwLDB4ZjksMHg4MCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSB9LAotICAxNiwgMHhmYTMwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MTAsMHhjOCwweDAwLDB4M2UsMHgwMCB9LAotICAxNiwgMHhmYTQwLCAwLCB7MHg0ZiwweDgwLDB4NDMsMHhiMCwweDAwLDB4YzgsMHg0MSwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyMSwweDAyLDB4YzgsMHgwMiB9LAotICAxNiwgMHhmYTUwLCAwLCB7MHgzZSwweDEwLDB4NGMsMHg4MCwweDAzLDB4MDEsMHgyMCwweGM4LDB4MDAsMHgzYiwweDAwLDB4MGMsMHhjMCwweDAzLDB4YjAsMHgwMCB9LAotICAxNiwgMHhmYTYwLCAwLCB7MHhjYywweDA0LDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4ODAsMHgyZSwweDgwLDB4MGIsMHhhMCwweDAyLDB4ZjgsMHgwNCwweDhlLDB4MDAsMHgyMyB9LAotICAxNiwgMHhmYTgwLCAwLCB7MHhiMiwweDBlLDB4ZTAsMHg4MiwweGY5LDB4MDQsMHg4YSwweDAwLDB4MmUsMHg4MSwweDBjLDB4ZTAsMHgwYSwweDNhLDB4ODAsMHhkYSB9LAotICAxNiwgMHhmYTkwLCAwLCB7MHgwMCwweDIyLDB4YjYsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4OGUsMHgwMCwweDJhLDB4ODAsMHgwYiwweDYwLDB4MGIsMHgwYSB9LAotICAxNiwgMHhmYWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQ0LDB4MDIsMHg5MywweDgxLDB4MmMsMHhjMCB9LAotICAxNiwgMHhmYWIwLCAwLCB7MHg0YiwweDMwLDB4MDIsMHhjOCwweDAwLDB4ODMsMHhjYSwweDIwLDB4ZTAsMHgxOSwweGIwLDB4MDYsMHg4YywweDAwLDB4ODEsMHgwNCB9LAotICAxNiwgMHhmYWMwLCAwLCB7MHg0NCwweDQwLDB4MDgsMHgzNCwweDAyLDB4MGQsMHgwMCwweDgzLDB4MDAsMHgyYSwweDAwLDB4MDgsMHgwMCwweDBhLDB4ODAsMHg0MCB9LAotICAxNiwgMHhmYWQwLCAwLCB7MHg4OCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDRiLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYWUwLCAwLCB7MHhhMCwweDAxLDB4MDQsMHgwMiwweDk3LDB4MDgsMHgyZCwweGMwLDB4MGIsMHg2MCwweDA2LDB4Y2EsMHgwMCwweDgzLDB4MDksMHgyMSB9LAotICAxNiwgMHhmYWYwLCAwLCB7MHhjMCwweDBhLDB4NzAsMHgwMiwweGRjLDB4MDAsMHg4NSwweDMxLDB4MmQsMHg2OCwweDA5LDB4MzAsMHgwMiwweDFjLDB4MTQsMHg5MyB9LAotICAxNiwgMHhmYjAwLCAwLCB7MHgyMCwweDIwLDB4YzAsMHgwOCwweGYwLDB4NDIsMHg5YywweDAyLDB4OGYsMHgwMCwweDI5LDB4NDAsMHgwMywweDcwLDB4MTIsMHgyOCB9LAotICAxNiwgMHhmYjEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDE2LDB4MDAsMHg5NiwweDg0LDB4M2QsMHhhMCB9LAotICAxNiwgMHhmYjIwLCAwLCB7MHgwZiwweDc4LDB4MDMsMHg5YSwweDAyLDB4ODcsMHg4MCwweGIxLDB4ZTAsMHgwYiwweDc4LDB4MDMsMHhiNiwweDAwLDB4YzUsMHhhMCB9LAotICAxNiwgMHhmYjMwLCAwLCB7MHgzNSwweDYxLDB4MGMsMHg3OCwweDEzLDB4MWUsMHgwMiwweGM3LDB4ODAsMHgyOSwweDAwLDB4MGMsMHg0OCwweDAzLDB4OTAsMHgwMCB9LAotICAxNiwgMHhmYjQwLCAwLCB7MHhjNCwweDgwLDB4MzEsMHg2MCwweDBmLDB4NTgsMHgwMywweDZhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjUwLCAwLCB7MHgwOCwweDFkLDB4YTQsMHgwMCwweGVhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZTgsMHgwOCwweGZiLDB4MDAsMHgzZSB9LAotICAxNiwgMHhmYjYwLCAwLCB7MHg4MCwweDBmLDB4OTAsMHgxMywweGU0LDB4MDgsMHhmOSwweDAwLDB4M2MsMHg1MCwweDJlLDB4ZjAsMHgwMywweGU4LDB4MDgsMHhmYiB9LAotICAxNiwgMHhmYjcwLCAwLCB7MHg0MCwweDNlLDB4YzAsMHgwYiwweDMwLDB4MTMsMHg2YywweDAwLDB4ZmIsMHgwMCwweDNlLDB4NDAsMHgwZiwweDMwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhmYjgwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGQ2LDB4MDAsMHhjZCwweDgwLDB4MzMsMHhlMCB9LAotICAxNiwgMHhmYjkwLCAwLCB7MHgwYywweGY4LDB4MDMsMHhmYSwweDAwLDB4ZmQsMHg4MCwweDNmLDB4YTAsMHgwZCwweGY4LDB4MDMsMHhmYSwweDQwLDB4Y2QsMHhkMCB9LAotICAxNiwgMHhmYmEwLCAwLCB7MHg3NywweDdlLDB4MGMsMHhlOCwweDQzLDB4MWUsMHgwMCwweGNmLDB4ZDgsMHgzZiwweGUwLDB4MGMsMHhjOCwweDAzLDB4M2EsMHhjNCB9LAotICAxNiwgMHhmYmIwLCAwLCB7MHhjYywweDgwLDB4MzMsMHhlMCwweDBjLDB4ZjgsMHgwMywweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYmMwLCAwLCB7MHhhOCwweDExLDB4OTQsMHgwMiwweDhkLDB4MDAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAzLDB4ZDgsMHgxMCwweDM1LDB4MjAsMHg4YiB9LAotICAxNiwgMHhmYmQwLCAwLCB7MHhkNCwweDBkLDB4NjQsMHgwMywweGQ4LDB4YzAsMHg4NSwweDAwLDB4MmYsMHg0ZSwweDA3LDB4NjQsMHgwMiwweDljLDB4MDIsMHhkNyB9LAotICAxNiwgMHhmYmUwLCAwLCB7MHgzMCwweDJmLDB4MDQsMHgwZCwweGYxLDB4MGIsMHg1NCwweDQwLDB4YWYsMHgwMCwweDM1LDB4NDAsMHgwOCwweDcwLDB4MDIsMHgyYSB9LAotICAxNiwgMHhmYmYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk0LDB4NDAsMHg4NCwweDE4LDB4MjEsMHg4MCB9LAotICAxNiwgMHhmYzAwLCAwLCB7MHgwOCwweDcwLDB4MDIsMHhkYSwweDIwLDB4YjUsMHgwMCwweDA5LDB4MDAsMHgwOCwweDcwLDB4MDIsMHhkNCwweDA0LDB4ODUsMHgwMCB9LAotICAxNiwgMHhmYzEwLCAwLCB7MHg2ZCwweDRjLDB4ODksMHg2MCwweDAyLDB4NWMsMHg0MCwweDk3LDB4MDAsMHg2ZCwweGMwLDB4MDksMHg0MCwweDAyLDB4NTgsMHg4MCB9LAotICAxNiwgMHhmYzIwLCAwLCB7MHg4NCwweDg4LDB4MjUsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzMwLCAwLCB7MHgyMCwweDE0LDB4YzYsMHg0OCwweDgwLDB4MDAsMHgyMCwweDgwLDB4MDgsMHhhYywweDAyLDB4YTgsMHgwMCwweGIxLDB4MDAsMHhhOCB9LAotICAxNiwgMHhmYzQwLCAwLCB7MHg4OCwweDA5LDB4MjIsMHgwMiwweDg2LDB4NDIsMHg4MSwweDAwLDB4NmMsMHg1MiwweDBiLDB4MjAsMHgwMiwweGM3LDB4NTIsMHg4MyB9LAotICAxNiwgMHhmYzUwLCAwLCB7MHgwMCwweDJjLDB4MDAsMHgwOCwweDM0LDB4ODIsMHg2NywweDAwLDB4YTMsMHg4MCwweDIwLDB4NDAsMHgwOCwweDMwLDB4MDIsMHgwOCB9LAotICAxNiwgMHhmYzYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGEzLDB4MDAsMHhjYiwweGMwLDB4YjIsMHg0MCB9LAotICAxNiwgMHhmYzcwLCAwLCB7MHgyYywweDkwLDB4ODIsMHhlNiwweDAwLDB4YmIsMHg4MCwweGJlLDB4NzgsMHgwOCwweDhlLDB4MDIsMHhlZSwweDAwLDB4OGQsMHgwMCB9LAotICAxNiwgMHhmYzgwLCAwLCB7MHgyNywweDYwLDB4MGQsMHg5MCwweDBhLDB4NmYsMHgwMCwweDlmLDB4MDIsMHgyZSwweDAwLDB4MDksMHhiNCwweDAzLDB4NjcsMHg4MCB9LAotICAxNiwgMHhmYzkwLCAwLCB7MHhjYSwweDQwLDB4ZTQsMHhjMCwweDBjLDB4MzAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmY2EwLCAwLCB7MHg4MCwweDAwLDB4ZTAsMHg4MCwweGZiLDB4MjIsMHgzZSwweDQwLDB4MGYsMHg4MCwweDEzLDB4ZTQsMHgwMCwweGZiLDB4ODAsMHgzZSB9LAotICAxNiwgMHhmY2IwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgwMywweGU1LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4NzAsMHgyMywweGFjLDB4MjAsMHhmYiB9LAotICAxNiwgMHhmY2MwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHg4ZiwweDgwLDB4MDMsMHhlOSwweDIwLDB4ZjksMHgwOCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MTMsMHhlMCB9LAotICAxNiwgMHhmY2QwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGYwLDB4MDAsMHhjNiwweDAwLDB4MzIsMHgwMCB9LAotICAxNiwgMHhmY2UwLCAwLCB7MHgwZiwweGQxLDB4ODMsMHgzNCwweDQwLDB4Y2YsMHgwMCwweDNkLDB4NDAsMHgwYywweGQwLDB4MDMsMHhkZSwweDUwLDB4MGQsMHgwMCB9LAotICAxNiwgMHhmY2YwLCAwLCB7MHg3MywweDQwLDB4MGMsMHhkMSwweDAzLDB4N2MsMHg0MCwweDg3LDB4MDIsMHhiMywweDAwLDB4MGQsMHhmNCwweDAzLDB4MjQsMHgwMCB9LAotICAxNiwgMHhmZDAwLCAwLCB7MHhjZSwweDIwLDB4MzIsMHg0MCwweDBjLDB4ZDAsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDEwLCAwLCB7MHg4MSwweDA0LDB4NjEsMHgyMiwweDhhLDB4MDAsMHgyMiwweDAwLDB4MGIsMHg4MCwweDQwLDB4MjUsMHgwMCwweDg5LDB4YzMsMHgyZSB9LAotICAxNiwgMHhmZDIwLCAwLCB7MHgyMCwweDBhLDB4OTgsMHgwMywweGExLDB4MDAsMHg4OSwweDAwLDB4MzYsMHg0MCwweDg4LDB4OTQsMHgwMiwweDBmLDB4MDEsMHhhYiB9LAotICAxNiwgMHhmZDMwLCAwLCB7MHgwMCwweDMyLDB4YzAsMHgwOCwweDA0LDB4MGEsMHgyOSwweDAwLDB4YTksMHgwMiwweGEyLDB4NDAsMHgwZCwweGIwLDB4MGEsMHgyMCB9LAotICAxNiwgMHhmZDQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDAwLDB4MDAsMHg4OSwweDAwLDB4MjIsMHg2MSB9LAotICAxNiwgMHhmZDUwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHgyNSwweDAxLDB4OWIsMHg4OCwweDJlLDB4NjAsMHgwOCwweDg4LDB4MDIsMHhlOCwweDAwLDB4YjEsMHgwMiB9LAotICAxNiwgMHhmZDYwLCAwLCB7MHgyNCwweDQwLDB4MTgsMHg5MCwweDAyLDB4MmMsMHgwMCwweGFiLDB4MDEsMHgyMCwweGMxLDB4MDgsMHhiNCwweDQyLDB4MmMsMHgwMCB9LAotICAxNiwgMHhmZDcwLCAwLCB7MHg4MiwweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDgwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweDAxLDB4MDAsMHgyMCwweDQwLDB4MGIsMHgwMCwweDBhLDB4MDQsMHg0NiwweDgzLDB4MDEsMHgyYyB9LAotICAxNiwgMHhmZDkwLCAwLCB7MHg0MCwweDFhLDB4MDAsMHgwNiwweDgwLDB4MDAsMHg4MSwweDAwLDB4MjQsMHg0MCwweDA4LDB4MjAsMHgwYSwweDBjLDB4MDEsMHhhMyB9LAotICAxNiwgMHhmZGEwLCAwLCB7MHgwMCwweDI0LDB4MDAsMHgwOCwweDgwLDB4MDIsMHgwMCwweDAwLDB4YTEsMHgwMCwweDIwLDB4NDAsMHgwOSwweDMwLDB4MDIsMHgwMiB9LAotICAxNiwgMHhmZGIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDIsMHhjOCwweDAwLDB4MjIsMHgwMCB9LAotICAxNiwgMHhmZGMwLCAwLCB7MHgwZiwweDkwLDB4MDIsMHgyNSwweDAwLDB4ZGEsMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MDIsMHhjYywweDAwLDB4ZmQsMHgwMCB9LAotICAxNiwgMHhmZGQwLCAwLCB7MHgzNywweDQwLDB4MGMsMHgxMCwweDEzLDB4MmMsMHgwMiwweGFmLDB4MDAsMHgzMiwweGMwLDB4MGQsMHhiMCwweDAzLDB4MmMsMHgwMCB9LAotICAxNiwgMHhmZGUwLCAwLCB7MHhjYSwweDAwLDB4MzIsMHg0MCwweDRjLDB4OTAsMHgwYiwweDAwLDB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZGYwLCAwLCB7MHhhMCwweDFkLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgzZiwweDAwLDB4MDcsMHhjMCwweDAzLDB4ZjQsMHgxYywweGY0LDB4MDAsMHgzZiB9LAotICAxNiwgMHhmZTAwLCAwLCB7MHgwMCwweDFmLDB4YzAsMHgyMywweGIwLDB4MDIsMHg5ZCwweDAxLDB4M2YsMHg0MCwweDhmLDB4YzAsMHgwNywweGZjLDB4MDIsMHhmZiB9LAotICAxNiwgMHhmZTEwLCAwLCB7MHgwMCwweDdiLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweDcwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhmZTIwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZhLDB4MDAsMHhjYiwweDgwLDB4M2YsMHgyNCB9LAotICAxNiwgMHhmZTMwLCAwLCB7MHgwYSwweGMxLDB4MDMsMHhmYywweDI0LDB4Y2QsMHgyMCwweDM3LDB4MGEsMHgwYywweGMyLDB4ODMsMHgzMCwweDgwLDB4ZGMsMHgwMiB9LAotICAxNiwgMHhmZTQwLCAwLCB7MHgzZiwweGNjLDB4MGQsMHhkOSwweDAzLDB4M2MsMHg1OCwweGRmLDB4MzAsMHgzMywweGM4LDB4MGQsMHhmNCwweDIzLDB4M2MsMHg0MCB9LAotICAxNiwgMHhmZTUwLCAwLCB7MHhmZiwweDAwLDB4M2YsMHhjNSwweDRmLDB4ZjAsMHgyMywweGIwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZTYwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMiwweDBiLDB4ODIsMHgyZSwweDA4LDB4MGQsMHhiNywweDAyLDB4ZmQsMHgwMCwweDgzLDB4MTgsMHgwYSB9LAotICAxNiwgMHhmZTcwLCAwLCB7MHg1OCwweDBhLDB4ODQsMHhhMiwweGE1LDB4YTAsMHg4OSwweDMwLDB4MjIsMHg1NSwweDA4LDB4MTIsMHg2MiwweGJkLDB4OTAsMHg4ZiB9LAotICAxNiwgMHhmZTgwLCAwLCB7MHg2MiwweDIxLDB4ZDYsMHg0OCwweGYzLDB4MDIsMHgzYywweGM1LDB4YmYsMHg0OCwweDJmLDB4ZDgsMHg0YiwweGI3LDB4MDIsMHhlMCB9LAotICAxNiwgMHhmZTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGVjLDB4MDAsMHg4MywweDAwLDB4MmUsMHg4OSB9LAotICAxNiwgMHhmZWEwLCAwLCB7MHgyOCwweDAwLDB4MDIsMHhlYywweGEwLDB4ODksMHgyMiwweDI4LDB4ODIsMHgwOCwweDEyLDB4MDIsMHgyOCwweDQwLDB4OWEsMHgwOCB9LAotICAxNiwgMHhmZWIwLCAwLCB7MHgyOCwweGM4LDB4ODgsMHhiMiwweDBhLDB4MGQsMHgxMCwweDkzLDB4MTAsMHhhMCwweGM4LDB4MjgsMHgzMCwweDAyLDB4NGMsMHgwMCB9LAotICAxNiwgMHhmZWMwLCAwLCB7MHhiMywweDYwLDB4MmMsMHhjNCwweDBiLDB4MzAsMHhjMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZWQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHg0MCwweDhiLDB4MDAsMHgyZSwweDgwLDB4MDgsMHhiMSwweDAyLDB4ZWMsMHgwMiwweDhiLDB4MDAsMHgyMCB9LAotICAxNiwgMHhmZWUwLCAwLCB7MHhkMCwweDBhLDB4OTAsMHgwMiwweGFjLDB4MDAsMHgwYiwweDAxLDB4MjYsMHg0MCwweDA4LDB4OTQsMHgwMiwweDhjLDB4MDAsMHg4YiB9LAotICAxNiwgMHhmZWYwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYywweDEwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhmMCB9LAotICAxNiwgMHhmZjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNCwweDhjLDB4MjAsMHhjYiwweDAyLDB4M2UsMHgyZCB9LAotICAxNiwgMHhmZjEwLCAwLCB7MHgwOCwweDgwLDB4MDMsMHhlYywweDA4LDB4YzksMHg4MCwweDFlLDB4MDQsMHgwYywweGIwLDB4MDMsMHgwMSwweDA4LDB4NTAsMHgxOCB9LAotICAxNiwgMHhmZjIwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHgwNCwweDAzLDB4MmMsMHgwMCwweGRiLDB4MDEsMHgzMiwweGMwLDB4MGMsMHhiMCwweDBiLDB4MmMsMHgwOCB9LAotICAxNiwgMHhmZjMwLCAwLCB7MHhiYiwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDgwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZjQwLCAwLCB7MHhlMSwweDAwLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweDYwLDB4MGYsMHhjMCwweDIzLDB4ZWMsMHgwMCwweGZmLDB4YzAsMHhiZSB9LAotICAxNiwgMHhmZjUwLCAwLCB7MHg2MCwweDhmLDB4YzksMHgyMywweGY2LDB4NTAsMHhlZCwweDgwLDB4YjgsMHg1MCwweGFmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZiB9LAotICAxNiwgMHhmZjYwLCAwLCB7MHgwMCwweDNmLDB4YzEsMHgwZSwweGIwLDB4MDMsMHhmYywweDA0LDB4ZmYsMHgwMiwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmOCB9LAotICAxNiwgMHhmZjcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDAsMHhlYiwweDAwLDB4MzIsMHg4MCB9LAotICAxNiwgMHhmZjgwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHgyYywweDAwLDB4ODksMHgwMCwweDNlLDB4OTgsMHg4YywweDMwLDB4MDMsMHg2MSwweDgwLDB4ZmEsMHg0MCB9LAotICAxNiwgMHhmZjkwLCAwLCB7MHgzZSwweDQwLDB4MmMsMHhhNSwweDAzLDB4MmMsMHgwMCwweGZiLDB4MDEsMHgzYywweGMwLDB4MmMsMHgzMCwweDAzLDB4MmMsMHgwMCB9LAotICAxNiwgMHhmZmEwLCAwLCB7MHhkYiwweDAyLDB4MzIsMHhjMCwweDBmLDB4YjAsMHgwMywweGQwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZmIwLCAwLCB7MHhjYSwweDAwLDB4MmUsMHg4MCwweDhiLDB4ODIsMHhhMCwweGMwLDB4OGMsMHg5MCwweDAyLDB4M2MsMHgwMCwweDhiLDB4ZjAsMHgyMiB9LAotICAxNiwgMHhmZmMwLCAwLCB7MHhjMiwweDBkLDB4ODAsMHgwMiwweDI3LDB4MDAsMHg4YiwweDEwLDB4MjIsMHg0MCwweDA4LDB4ODAsMHgyMiwweDNjLDB4MDAsMHhiZiB9LAotICAxNiwgMHhmZmQwLCAwLCB7MHgwMCwweDJmLDB4YzAsMHgwOCwweGYwLDB4MDIsMHgzYywweDAwLDB4YmYsMHgwMSwweGEzLDB4YzAsMHgwYiwweGYwLDB4MTIsMHhmMiB9LAotICAxNiwgMHhmZmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMywweDFjLDB4MjAsMHg0MCB9LAotICAxNiwgMHhmZmYwLCAwLCB7MHgwOCwweDAwLDB4MDYsMHgyYywweDAwLDB4OWIsMHgwMCwweDIwLDB4ZDAsMHgwOCwweDIwLDB4MDIsMHg0YywweDAwLDB4YTMsMHgwMCB9LAotICAxNiwgMHg4MDEwLCAwLCB7MHgyYywweGMwLDB4MDgsMHgxMCwweDBhLDB4MGMsMHgwMCwweGJiLDB4MDAsMHgyOCwweGMwLDB4MDksMHgzMCwweDAyLDB4MGMsMHgwMCB9LAotICAxNiwgMHg4MDIwLCAwLCB7MHhiMywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MDMwLCAwLCB7MHgyMiwweDExLDB4MWUsMHgwMCwweDk3LDB4YTAsMHgyMSwweGEwLDB4MDgsMHg3OSwweDAyLDB4MWUsMHgwMCwweDk3LDB4OTAsMHgyMSB9LAotICAxNiwgMHg4MDQwLCAwLCB7MHg2MCwweDA5LDB4ZTgsMHgyMiwweDNlLDB4MDAsMHhhZiwweDg0LDB4MjEsMHhlNCwweDQ4LDB4NWMsMHgwMiwweDFlLDB4MDAsMHhiNyB9LAotICAxNiwgMHg4MDUwLCAwLCB7MHg5MCwweDJkLDB4ZTAsMHgwOSwweDc4LDB4MDAsMHgxZSwweDA5LDB4YjMsMHg5MCwweDIxLDB4ZTQsMHgwYiwweDc4LDB4MDIsMHhkOCB9LAotICAxNiwgMHg4MDYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxOCwweDJjLDB4NDAsMHhiMywweGIwLDB4MzIsMHg0MCB9LAotICAxNiwgMHg4MDcwLCAwLCB7MHgyYywweDgxLDB4MTMsMHgwYywweDQyLDB4ZDEsMHgwMCwweGIwLDB4YzAsMHg4YywweDMwLDB4MDMsMHg0OCwweDIwLDB4ZTMsMHgwMSB9LAotICAxNiwgMHg4MDgwLCAwLCB7MHgzYywweGMwLDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCwweGYzLDB4MTAsMHgzYywweGMwLDB4Y2QsMHgzMiwweDBiLDB4MGMsMHg0MCB9LAotICAxNiwgMHg4MDkwLCAwLCB7MHhkMywweDAwLDB4MzAsMHhjMCwweDBmLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MGEwLCAwLCB7MHg0MCwweDE1LDB4YmMsMHgwMCwweGU3LDB4MDAsMHgzZiwweDgwLDB4MGIsMHhmMSwweDAzLDB4ZmQsMHgwMCwweDZkLDB4MDAsMHgzMiB9LAotICAxNiwgMHg4MGIwLCAwLCB7MHg0MCwweDFmLDB4NzAsMHgwNywweGQ4LDB4NDEsMHhjMywweDEwLDB4M2IsMHhjMCwweDBmLDB4ZDEsMHgwMywweGZkLDB4MDAsMHhmZiB9LAotICAxNiwgMHg4MGMwLCAwLCB7MHgxMCwweDNmLDB4YzAsMHgwZSwweGYwLDB4MDMsMHhlYywweDEwLDB4ZmYsMHgwOCwweDNmLDB4YzMsMHgwZiwweGYwLDB4MDMsMHhkMCB9LAotICAxNiwgMHg4MGQwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGVjLDB4MDQsMHhmYiwweDAyLDB4M2UsMHg0MCB9LAotICAxNiwgMHg4MGUwLCAwLCB7MHgwYiwweGEwLDB4MDMsMHhhYywweDAwLDB4ZGIsMHgwMCwweDM2LDB4ODAsMHgwZCwweGIwLDB4MDMsMHhhYywweDAwLDB4ZTgsMHgwMCB9LAotICAxNiwgMHg4MGYwLCAwLCB7MHgzNiwweGMxLDB4MmUsMHg5MCwweDAzLDB4MmMsMHgwMCwweGNiLDB4YTAsMHgzNiwweGRjLDB4MGYsMHhiMCwweDAzLDB4MmQsMHg2OCB9LAotICAxNiwgMHg4MTAwLCAwLCB7MHhmYiwweGEwLDB4OTIsMHhjMiwweDBjLDB4YjEsMHgwMywweGVhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTEwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwOCwweDM3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHhlMCwweDAyLDB4MWQsMHg4MCwweGI3LDB4MDQsMHgyMyB9LAotICAxNiwgMHg4MTIwLCAwLCB7MHgwMCwweDBhLDB4NDAsMHgwMiwweDFjLDB4MTgsMHg4NCwweDAwLDB4MjUsMHhjMCwweDE4LDB4NTAsMHgzMiwweDBkLDB4ODAsMHhhMyB9LAotICAxNiwgMHg4MTMwLCAwLCB7MHgzMCwweDIxLDB4Y2MsMHgwYiwweDM0LDB4ODIsMHgxYywweDEwLDB4YjcsMHgzMCwweDIxLDB4YzgsMHgwOCwweDcwLDB4MDIsMHhkMiB9LAotICAxNiwgMHg4MTQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MjAsMHhiNywweDgwLDB4MmQsMHg2MCB9LAotICAxNiwgMHg4MTUwLCAwLCB7MHgwYiwweGZjLDB4MjIsMHg5ZSwweDAwLDB4OGQsMHg4MCwweDI1LDB4YTAsMHgwOCwweGY4LDB4MjIsMHg5MiwweDAwLDB4YjQsMHg4MCB9LAotICAxNiwgMHg4MTYwLCAwLCB7MHgyNSwweGUwLDB4MDgsMHhmOCwweDAyLDB4MWUsMHgwMCwweDg3LDB4YjAsMHgyMSwweGUwLDB4MDksMHg3YSwweDAyLDB4MWUsMHgxOCB9LAotICAxNiwgMHg4MTcwLCAwLCB7MHhiMywweDgwLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MTgwLCAwLCB7MHg0OCwweDA0LDB4YzUsMHgyMCwweGIzLDB4MDEsMHgyYywweGQ4LDB4MGIsMHgzYywweDAyLDB4MmMsMHgwOCwweGI5LDB4MDAsMHgyMCB9LAotICAxNiwgMHg4MTkwLCAwLCB7MHgwMywweDBhLDB4MDAsMHg4MiwweDIyLDB4MDgsMHg5MCwweDBkLDB4MjYsMHhlNCwweDA4LDB4MTAsMHgwMiwweDBjLDB4MDAsMHhhMyB9LAotICAxNiwgMHg4MWEwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg2YywweDAwLDB4YjMsMHgwMCwweDIyLDB4YzAsMHgyOCwweDMwLDB4MDIsMHhjMiB9LAotICAxNiwgMHg4MWIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweDk5LDB4MDAsMHhmYSwweDAyLDB4M2YsMHg5MCB9LAotICAxNiwgMHg4MWMwLCAwLCB7MHgwZiwweGVjLDB4MjMsMHhhOCwweDAwLDB4ZGEsMHgwMCwweDM1LDB4ODAsMHgwZCwweGUwLDB4MDIsMHhiYSwweDAyLDB4ZmUsMHhjMiB9LAotICAxNiwgMHg4MWQwLCAwLCB7MHhiNiwweGEwLDB4MGUsMHhlNCwweDBiLDB4MjgsMHgwMCwweGNhLDB4MDAsMHhiMiwweDgwLDB4MGYsMHhhMCwweDBiLDB4MjgsMHgwMCB9LAotICAxNiwgMHg4MWUwLCAwLCB7MHhmYSwweDAwLDB4MzIsMHg4MCwweDBjLDB4YTAsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MWYwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MiwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSB9LAotICAxNiwgMHg4MjAwLCAwLCB7MHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4NDAsMHhlOCwweDEwLDB4M2EsMHgwMCwweDRmLDB4ODQsMHg4MywweGUwLDB4MDAsMHhmOCB9LAotICAxNiwgMHg4MjEwLCAwLCB7MHgwMCwweDNhLDB4MDAsMHgwZiwweDAwLDB4MDMsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg4MjIwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweGU1LDB4MDAsMHhjOSwweDAyLDB4M2UsMHg0MCB9LAotICAxNiwgMHg4MjMwLCAwLCB7MHgwZiwweDkwLDB4MjMsMHgyNCwweDAwLDB4YzksMHgwMCwweDMyLDB4NjgsMHgyZiwweDEwLDB4MDMsMHgyNCwweDAwLDB4ZTksMHgxNCB9LAotICAxNiwgMHg4MjQwLCAwLCB7MHgzMiwweDQwLDB4MGQsMHg5MCwweDBiLDB4MDQsMHgwMCwweGQ5LDB4MDAsMHgxZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCB9LAotICAxNiwgMHg4MjUwLCAwLCB7MHhjOSwweDAwLDB4MzYsMHg0MCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MjYwLCAwLCB7MHg4MCwweDE0LDB4NjQsMHgwMCwweDg5LDB4MDEsMHgyZSwweDQwLDB4NGIsMHg5MCwweDEyLDB4MjQsMHgwMCwweDg5LDB4YzIsMHhhMiB9LAotICAxNiwgMHg4MjcwLCAwLCB7MHg2MCwweDg4LDB4OTAsMHgwMywweDY0LDB4MDAsMHg4OSwweGMxLDB4YTIsMHg0MCwweDQ4LDB4MTYsMHgwMywweDY0LDB4MDIsMHg4OSB9LAotICAxNiwgMHg4MjgwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MjIsMHgyNCwweDAwLDB4ODksMHgwMCwweDNlLDB4NDAsMHgyOCwweDkwLDB4MGEsMHgyMCB9LAotICAxNiwgMHg4MjkwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNCwweDI0LDB4MDAsMHg4OSwweDAyLDB4MmUsMHg0MCB9LAotICAxNiwgMHg4MmEwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgxMCwweDIyLDB4NDAsMHg4OSwweDkwLDB4MDIsMHhhYywweDAwLDB4YTEsMHgwOCB9LAotICAxNiwgMHg4MmIwLCAwLCB7MHgyMiwweDQwLDB4MDksMHg5OCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAsMHgyYSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCB9LAotICAxNiwgMHg4MmMwLCAwLCB7MHg4OSwweDAwLDB4MjYsMHg0MCwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MmQwLCAwLCB7MHgwOCwweDAwLDB4MjQsMHgwMCwweDgxLDB4MDAsMHgyYywweDQxLDB4MGIsMHgxMiwweDAyLDB4MDQsMHg4MSwweDgxLDB4MjAsMHgyMiB9LAotICAxNiwgMHg4MmUwLCAwLCB7MHg0OCwweDA4LDB4MTIsMHgwMiwweGM0LDB4ODEsMHg4MSwweDI0LDB4MDIsMHg0OCwweDBhLDB4OTAsMHgwMiwweDg0LDB4YTAsMHg4MSB9LAotICAxNiwgMHg4MmYwLCAwLCB7MHgyOCwweDZjLDB4NGEsMHgwOCwweDEyLDB4ZDIsMHgwNCwweGExLDB4ODEsMHgyOCwweDJjLDB4NGEsMHgwOCwweDEyLDB4ODIsMHgwMiB9LAotICAxNiwgMHg4MzAwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwOCwweDYxLDB4NDAsMHhjOCwweDAwLDB4MmUsMHgxNCB9LAotICAxNiwgMHg4MzEwLCAwLCB7MHgwZiwweDg1LDB4MGIsMHgyMSwweDQyLDB4Y2EsMHg1MCwweDIyLDB4MTQsMHgwZCwweDg1LDB4NDMsMHhhMSwweDQwLDB4ZTgsMHg1MCB9LAotICAxNiwgMHg4MzIwLCAwLCB7MHgzMCwweDAwLDB4MGQsMHg4NSwweDAyLDB4YTEsMHhjMCwweGQ4LDB4MjAsMHgzYSwweDA4LDB4MmMsMHg4MiwweDBiLDB4MjAsMHg4MiB9LAotICAxNiwgMHg4MzMwLCAwLCB7MHhjOCwweDIwLDB4MzQsMHgwOSwweDhjLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4MzQwLCAwLCB7MHg5OCwweDBkLDB4ZmMsMHgwMiwweGY5LDB4MDAsMHgzZiwweDQwLDB4NGYsMHhkMSwweDAzLDB4ZTQsMHg0MCwweGY1LDB4MTQsMHhiZiB9LAotICAxNiwgMHg4MzUwLCAwLCB7MHg0NCwweDBkLDB4NTEsMHgyMywweDVjLDB4NDAsMHhmNSwweDEwLDB4MWYsMHg0ZSwweDRkLDB4NTAsMHgwMywweDY0LDB4MDgsMHhmOSB9LAotICAxNiwgMHg4MzYwLCAwLCB7MHgyOCwweDNlLDB4NGEsMHg4ZiwweDkyLDB4ODMsMHhlNCwweGEwLDB4ZjksMHgyOCwweDNhLDB4NGIsMHgwZiwweDkyLDB4ODMsMHhlNiB9LAotICAxNiwgMHg4MzcwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGY0LDB4NDAsMHhmZCwweDAwLDB4MzAsMHg0MCB9LAotICAxNiwgMHg4MzgwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZGQsMHgwMCwweDNiLDB4NDAsMHgwZSwweDkwLDB4MDMsMHg3NCwweDAwLDB4NWQsMHgwMCB9LAotICAxNiwgMHg4MzkwLCAwLCB7MHgzNiwweDY0LDB4MGQsMHhkMCwweDAwLDB4YTYsMHgwMCwweGY5LDB4NDAsMHgzMiwweDc4LDB4MGMsMHg5OSwweDAzLDB4MjQsMHg0MCB9LAotICAxNiwgMHg4M2EwLCAwLCB7MHhjOSwweDkwLDB4MzIsMHg1MCwweDBmLDB4OWIsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4M2IwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHg4MCwweGI4LDB4MDAsMHgyMiwweDAxLDB4MDgsMHg4MCwweDBhLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyYSB9LAotICAxNiwgMHg4M2MwLCAwLCB7MHgwMCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHg4OCwweDAwLDB4MjIsMHgyMCwweDA4LDB4OGEsMHg4YiwweGUxLDB4MDAsMHhiOCB9LAotICAxNiwgMHg4M2QwLCAwLCB7MHg4MCwweDIyLDB4MzAsMHgyOCwweDBkLDB4MDIsMHgyMiwweDAwLDB4ZDgsMHhlNCwweDIyLDB4MjgsMHgwYiwweDhmLDB4MGEsMHgwZSB9LAotICAxNiwgMHg4M2UwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHhiMSwweDAwLDB4YTAsMHg0MCB9LAotICAxNiwgMHg4M2YwLCAwLCB7MHgwOCwweDEwLDB4MDIsMHgwNCwweDAwLDB4ODksMHgwMCwweDA4LDB4NDAsMHgwYSwweDkwLDB4NDIsMHg0NCwweDAwLDB4OTEsMHgwMCB9LAotICAxNiwgMHg4NDAwLCAwLCB7MHgyMCwweDU4LDB4MjgsMHg5MCwweDAyLDB4ODUsMHgwMCwweDgxLDB4MjAsMHhhMCwweDRjLDB4MDksMHgxMiwweDBhLDB4MDQsMHg4MCB9LAotICAxNiwgMHg4NDEwLCAwLCB7MHg5MSwweDQwLDB4YTAsMHg0MCwweDBiLDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NDIwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGI5LDB4MDIsMHgyMCwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDQsMHgwMCwweDg5LDB4MDEsMHgyMiB9LAotICAxNiwgMHg4NDMwLCAwLCB7MHg0MCwweDI4LDB4OTAsMHgyMiwweDA0LDB4MDAsMHg4OSwweDEwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiMSB9LAotICAxNiwgMHg4NDQwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHg4MSwweDkwLDB4MDIsMHgwNCwweDAwLDB4OTEsMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiB9LAotICAxNiwgMHg4NDUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU1LDB4MDAsMHhmMSwweDAwLDB4MzIsMHg2MCB9LAotICAxNiwgMHg4NDYwLCAwLCB7MHgyYywweDkyLDB4MTMsMHgyNCwweDAyLDB4ZDEsMHgxMCwweDNhLDB4NDAsMHgwZSwweDEyLDB4MDMsMHg2NiwweDA0LDB4ZDksMHgwMCB9LAotICAxNiwgMHg4NDcwLCAwLCB7MHhiNiwweDQwLDB4MGQsMHgxOSwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MDksMHg5MCwweDAxLDB4MjQsMHgwMCB9LAotICAxNiwgMHg4NDgwLCAwLCB7MHhkOSwweDAyLDB4MjIsMHg0MCwweDBmLDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NDkwLCAwLCB7MHgyYSwweDAxLDB4YTUsMHgwMCwweGY5LDB4MDAsMHgzZSwweDY0LDB4MGYsMHgxMCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4ODEsMHgzZSB9LAotICAxNiwgMHg4NGEwLCAwLCB7MHg2NiwweDhmLDB4OTAsMHgyMywweGU0LDB4ODAsMHhmOSwweDA0LDB4M2UsMHg0MCwweDhmLDB4OTAsMHgwMywweGU0LDB4MDQsMHhmOSB9LAotICAxNiwgMHg4NGIwLCAwLCB7MHgwMCwweDNjLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDEwLDB4MDMsMHhjYSB9LAotICAxNiwgMHg4NGMwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmEsMHgxMCwweGEwLDB4MDAsMHhmOCwweDI0LDB4M2UsMHgwMCB9LAotICAxNiwgMHg4NGQwLCAwLCB7MHgyYywweDg0LDB4MDMsMHgyMCwweDAwLDB4YjgsMHgyMCwweDNlLDB4MDAsMHg4YywweDgwLDB4MDMsMHhhMCwweDAwLDB4NzAsMHg4MiB9LAotICAxNiwgMHg4NGUwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjAsMHgwOCwweGY4LDB4MDAsMHgzMiwweDAwLDB4MmMsMHg4MCwweDBiLDB4MjAsMHgwOCB9LAotICAxNiwgMHg4NGYwLCAwLCB7MHhjOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NTAwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwNCwweGJlLDB4ODAsMHgzYSwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwNCwweDhlLDB4MDAsMHg2ZCB9LAotICAxNiwgMHg4NTEwLCAwLCB7MHg5MCwweDBkLDB4YTAsMHgwMiwweDNhLDB4MDAsMHg4ZSwweDgwLDB4YTIsMHg4MCwweDBlLDB4ZTAsMHgwYiwweDY4LDB4MDAsMHhiYSB9LAotICAxNiwgMHg4NTIwLCAwLCB7MHgwMCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ZGEsMHgwMCwweDJlLDB4ODAsMHgwOCwweGEwLDB4MDIsMHhjYSB9LAotICAxNiwgMHg4NTMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHg4MSwweDRjLDB4MDAsMHhiMSwweDAwLDB4MmMsMHhjMCB9LAotICAxNiwgMHg4NTQwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHgwYywweDE4LDB4YTMsMHgwMiwweDJjLDB4MTAsMHg4OCwweDMwLDB4MDYsMHg4MiwweDgxLDB4YTAsMHgwMCB9LAotICAxNiwgMHg4NTUwLCAwLCB7MHgyYSwweGMwLDB4MGIsMHgzMCwweDBhLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MWEsMHhiMCwweDAyLDB4OGMsMHgwMSB9LAotICAxNiwgMHg4NTYwLCAwLCB7MHg4MywweDAwLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NTcwLCAwLCB7MHgyMCwweDAxLDB4MWMsMHgxMCwweGI0LDB4MGEsMHgyYiwweGM4LDB4MDgsMHgzMSwweDI2LDB4MWMsMHgwMCwweDg2LDB4MDAsMHgyZCB9LAotICAxNiwgMHg4NTgwLCAwLCB7MHhjMCwweDA5LDB4NzIsMHgwMiwweDFkLDB4MDAsMHhhNSwweDQwLDB4MjksMHhjMCwweDBhLDB4NjAsMHgwMiwweDVjLDB4ODgsMHhiMyB9LAotICAxNiwgMHg4NTkwLCAwLCB7MHgyMCwweDI1LDB4YzgsMHgwYSwweDcyLDB4MDIsMHg5YywweDgwLDB4OTcsMHgyMCwweDJjLDB4ZTgsMHg4MCwweDcyLDB4MDIsMHhlOCB9LAotICAxNiwgMHg4NWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwOCwweDE2LDB4MDAsMHhiNSwweDgwLDB4M2QsMHhlMiB9LAotICAxNiwgMHg4NWIwLCAwLCB7MHgwYywweDdhLDB4OGIsMHgwZSwweGMwLDB4YTcsMHg4MSwweDJjLDB4MjAsMHgwYywweGZjLDB4MDMsMHg5MiwweDAyLDB4ZWYsMHg4MCB9LAotICAxNiwgMHg4NWMwLCAwLCB7MHgzOSwweGU0LDB4MGIsMHhkOCwweDAxLDB4MWYsMHgwMCwweGY3LDB4ODAsMHhiMywweGY0LDB4OGUsMHg3OSwweDAzLDB4OGUsMHgwMCB9LAotICAxNiwgMHg4NWQwLCAwLCB7MHhjNywweGM0LDB4M2QsMHhlOCwweDJjLDB4N2IsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NWUwLCAwLCB7MHgwOCwweDFkLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzZSwweGRkLDB4ODcsMHhiNiwweDAzLDB4ZWQsMHhjYywweGU5LDB4MDAsMHgzZSB9LAotICAxNiwgMHg4NWYwLCAwLCB7MHg0MCwweDBmLDB4YjAsMHgwNywweGNjLDB4MTAsMHgwYiwweDAwLDB4MzYsMHhkOCwweDBmLDB4ODAsMHg0MywweGFkLDB4ODAsMHhmYiB9LAotICAxNiwgMHg4NjAwLCAwLCB7MHgyOCwweDNhLDB4YzAsMHgwZCwweGI0LDB4MDMsMHg2YywweGUyLDB4ZWIsMHg2MCwweDNlLDB4ZDQsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHg4NjEwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGZlLDB4MDAsMHhmZSwweDkwLDB4M2YsMHhlNSB9LAotICAxNiwgMHg4NjIwLCAwLCB7MHgwZSwweGY4LDB4MDMsMHgzZSwweDEwLDB4ZmYsMHg5MCwweDE3LDB4NjAsMHgwZiwweGZjLDB4MDMsMHg3YSwweDAwLDB4ZWUsMHg4MCB9LAotICAxNiwgMHg4NjMwLCAwLCB7MHgzNywweGUyLDB4MGUsMHg3OCwweDBmLDB4ZmYsMHg0MCwweGVmLDB4ODgsMHgxZiwweGUwLDB4MGMsMHhmOCwweDgzLDB4ZmUsMHg4MCB9LAotICAxNiwgMHg4NjQwLCAwLCB7MHhjZiwweGQwLDB4YjMsMHhmMCwweDBjLDB4ZjgsMHhjMywweDEwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NjUwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg0MCwweGI0LDB4MTAsMHgwZiwweGNjLDB4MDAsMHg3MiwweDAyLDB4MWMsMHgwMCwweGI2LDB4MDIsMHgwOSB9LAotICAxNiwgMHg4NjYwLCAwLCB7MHhjMCwweDI4LDB4ZjAsMHgwMiwweDk4LDB4MDAsMHhhNiwweDAwLDB4MjEsMHhjMCwweDBiLDB4NjAsMHgwMywweGZjLDB4MDIsMHg4NyB9LAotICAxNiwgMHg4NjcwLCAwLCB7MHgwMCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkZSwweDAwLDB4OGYsMHgxMCwweDIxLDB4YzAsMHgwOCwweGYwLDB4MDMsMHg2YSB9LAotICAxNiwgMHg4NjgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDk0LDB4MDAsMHhiNiwweDAyLDB4MmYsMHhjMiB9LAotICAxNiwgMHg4NjkwLCAwLCB7MHgxYSwweDMwLDB4ODAsMHgxYywweDAwLDB4YjYsMHgwOCwweDAxLDB4NDAsMHgwYSwweGYwLDB4MDIsMHgxOCwweDAwLDB4ODcsMHgwMCB9LAotICAxNiwgMHg4NmEwLCAwLCB7MHgyMSwweGMwLDB4MGIsMHhkMCwweDAyLDB4OWMsMHgxMCwweDg3LDB4MDAsMHgyOSwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZGMsMHg0NCB9LAotICAxNiwgMHg4NmIwLCAwLCB7MHg4NywweDEwLDB4NjQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDA2LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NmMwLCAwLCB7MHg2MCwweDE0LDB4Y2UsMHg2MCwweGIwLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzNCwweDBhLDB4MGMsMHgwOCwweGIwLDB4MDQsMHgwMCB9LAotICAxNiwgMHg4NmQwLCAwLCB7MHg0MCwweDA4LDB4MzAsMHhhMiwweDg5LDB4ODAsMHhhMiwweDYyLDB4MjAsMHhlMCwweDBiLDB4MDAsMHgwYSwweGNjLDB4MDgsMHg4MyB9LAotICAxNiwgMHg4NmUwLCAwLCB7MHgwMCwweDZjLDB4YzAsMHgwOCwweDMwLDB4NTIsMHhjYywweDAwLDB4ODMsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg1OCB9LAotICAxNiwgMHg4NmYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFlLDB4MDAsMHhmOCwweDAwLDB4M2YsMHhkMCB9LAotICAxNiwgMHg4NzAwLCAwLCB7MHgwZSwweGZjLDB4MDMsMHgzYywweDAwLDB4ZjksMHgwMCwweDkyLDB4ODQsMHgwZiwweGZjLDB4MDMsMHg2NCwweDAwLDB4ODAsMHgwMCB9LAotICAxNiwgMHg4NzEwLCAwLCB7MHhiNywweGMzLDB4MGYsMHhiOCwweDgzLDB4YmMsMHgwNCwweGVmLDB4MDAsMHgzZiwweGMwLDB4M2MsMHhmMCwweDAzLDB4ZmMsMHgwMiB9LAotICAxNiwgMHg4NzIwLCAwLCB7MHhjZiwweDAwLDB4MzcsMHhjMCwweDI4LDB4ZjAsMHgxMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4NzMwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMCwweGY4LDB4NDEsMHgzZSwweGM4LDB4MGYsMHgzMiwweDAzLDB4ZWMsMHgwMCwweGY4LDB4MDAsMHgzYSB9LAotICAxNiwgMHg4NzQwLCAwLCB7MHhjNCwweDBmLDB4YjEsMHgwMywweGM0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHhjMCwweDBmLDB4ZTQsMHgwYiwweGVjLDB4MDQsMHhmYiB9LAotICAxNiwgMHg4NzUwLCAwLCB7MHgwMCwweDNlLDB4YzEsMHgwZiwweGIwLDB4NDMsMHhlYywweDA0LDB4ZmIsMHgwMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlNCB9LAotICAxNiwgMHg4NzYwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGY0LDB4MDAsMHhmYywweDgwLDB4M2YsMHhjMCB9LAotICAxNiwgMHg4NzcwLCAwLCB7MHgxZiwweGYwLDB4MDMsMHgzYywweDA4LDB4ZmIsMHgwMCwweDMzLDB4ODAsMHgyZSwweGYwLDB4MTMsMHhhNCwweDA0LDB4Y2IsMHgwMCB9LAotICAxNiwgMHg4NzgwLCAwLCB7MHhiOSwweGMwLDB4MmMsMHhkOCwweDBiLDB4M2MsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MDksMHg3MCwweDAwLDB4MmMsMHgwNCB9LAotICAxNiwgMHg4NzkwLCAwLCB7MHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGMwLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4N2EwLCAwLCB7MHhjMSwweDAwLDB4NmMsMHgwMCwweGI4LDB4ODAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAzLDB4NmMsMHgwMCwweGI5LDB4MTYsMHgyOCB9LAotICAxNiwgMHg4N2IwLCAwLCB7MHg3MiwweDA4LDB4YjAsMHgyMiwweDI3LDB4NDAsMHhkYiwweDAwLDB4MjIsMHhjMCwweDA4LDB4YmQsMHg4MiwweDJjLDB4MDgsMHhiYiB9LAotICAxNiwgMHg4N2MwLCAwLCB7MHgwMCwweDJlLDB4YzAsMHg0OCwweGIwLDB4MDIsMHgyYywweDAwLDB4YmIsMHgwMCwweDJlLDB4YzEsMHgwYiwweGIwLDB4MDIsMHhlMCB9LAotICAxNiwgMHg4N2QwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiOCwweDYwLDB4MmUsMHhjMCB9LAotICAxNiwgMHg4N2UwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4YjEsMHgwMCwweDJhLDB4ODQsMHg0YSwweDMwLDB4MjIsMHhhYywweDIwLDB4OTgsMHg4MCB9LAotICAxNiwgMHg4N2YwLCAwLCB7MHgyYSwweGMwLDB4MDgsMHgzMCwweDAyLDB4YWMsMHgwMCwweDNiLDB4MDAsMHgyYywweGMwLDB4MGEsMHhiMCwweDAyLDB4YWMsMHgwOCB9LAotICAxNiwgMHg4ODAwLCAwLCB7MHhiYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ODEwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMSwweGIwLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4NGMsMHgwNCwweGIwLDB4MDAsMHgyYSB9LAotICAxNiwgMHg4ODIwLCAwLCB7MHg4MCwweDA4LDB4MzAsMHgwMiwweDAwLDB4MDAsMHgxMCwweDA0LDB4MjgsMHhjMCwweDA4LDB4MjAsMHg0MiwweDhjLDB4MDAsMHhiMyB9LAotICAxNiwgMHg4ODMwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHg0MiwweDMwLDB4MGEsMHg4YywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHg4YiwweDMwLDB4MDIsMHhjMiB9LAotICAxNiwgMHg4ODQwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY0LDB4MDAsMHhmOCwweDUwLDB4M2YsMHhjMCB9LAotICAxNiwgMHg4ODUwLCAwLCB7MHgwYiwweGYwLDB4MDMsMHgzYywweDAwLDB4ZmEsMHgwNCwweDMyLDB4ODAsMHgwZSwweGYwLDB4MjMsMHhhYywweDAwLDB4ZDksMHgwMCB9LAotICAxNiwgMHg4ODYwLCAwLCB7MHgzYiwweGMwLDB4MGMsMHg5MCwweDAzLDB4YmMsMHgwNCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MmUsMHhmMCwweDBiLDB4M2MsMHgwMCB9LAotICAxNiwgMHg4ODcwLCAwLCB7MHhmZiwweDA0LDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ODgwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwMCwweGZjLDB4MDAsMHgzZiwweGMwLDB4MDcsMHhmMCwweDAzLDB4ZmMsMHgwNCwweDdjLDB4MDIsMHhiNSB9LAotICAxNiwgMHg4ODkwLCAwLCB7MHgwMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmYywweDAwLDB4MzcsMHhjMCwweDBmLDB4ZjAsMHgxMywweDdjLDB4MDAsMHhmZiB9LAotICAxNiwgMHg4OGEwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZCwweGYwLDB4MDMsMHg2ZCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgxZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHg4OGIwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGQyLDB4MDAsMHhkNSwweDgwLDB4MzMsMHgwYSB9LAotICAxNiwgMHg4OGMwLCAwLCB7MHg0YywweGY4LDB4MDMsMHhmMiwweDAwLDB4ZmMsMHgwMCwweDM3LDB4MjYsMHgxZiwweGNhLDB4MDMsMHhiYywweGM0LDB4Y2YsMHgyMCB9LAotICAxNiwgMHg4OGQwLCAwLCB7MHgzMywweGU0LDB4MGYsMHg3OCwweDAzLDB4M2UsMHg0NCwweGNmLDB4MDAsMHgzYiwweGNlLDB4OWYsMHg2OCwweDEzLDB4ZDAsMHgwMCB9LAotICAxNiwgMHg4OGUwLCAwLCB7MHhjZCwweDgwLDB4YjMsMHg2MCwweDBmLDB4ZmEsMHg4MywweGYwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4OGYwLCAwLCB7MHg4MCwweDEwLDB4ZTAsMHg4MCwweGM5LDB4MjgsMHgyMiwweDMwLDB4MDgsMHhiMiwweDIyLDB4ZWEsMHgwMSwweGI4LDB4ODIsMHgyMCB9LAotICAxNiwgMHg4OTAwLCAwLCB7MHg1MCwweDRmLDB4OWMsMHgwMCwweGE4LDB4ZDEsMHhkYiwweDEwLDB4YTYsMHhlMCwweDE3LDB4YjgsMHgwMywweGVjLDB4ODAsMHhkYiB9LAotICAxNiwgMHg4OTEwLCAwLCB7MHgwOCwweDFmLDB4ZDAsMHgwYiwweGI4LDB4MDIsMHhmNiwweDAwLDB4ZmIsMHg4MCwweDIyLDB4NDAsMHgwYiwweGIwLDB4MDIsMHg2MCB9LAotICAxNiwgMHg4OTIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4MjAsMHg4MSwweDgwLDB4MjAsMHgwMCB9LAotICAxNiwgMHg4OTMwLCAwLCB7MHg4YiwweDMwLDB4ODIsMHhjMCwweDAwLDB4YjAsMHgxMCwweDI4LDB4MDgsMHg4YiwweDExLDB4MzAsMHhjNCwweDg0LDB4OTAsMHgyOCB9LAotICAxNiwgMHg4OTQwLCAwLCB7MHgyNCwweGM4LDB4MGIsMHgzMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MTAsMHgwNCwweGM4LDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCB9LAotICAxNiwgMHg4OTUwLCAwLCB7MHhiMywweDAwLDB4MjQsMHg0MCwweDBiLDB4MzAsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4OTYwLCAwLCB7MHhjMCwweDE1LDB4YTYsMHgwMCwweDgxLDB4MDAsMHgyMiwweDEwLDB4MGIsMHhiMCwweDEyLDB4ZWEsMHgyMCwweGJiLDB4MDAsMHgyYSB9LAotICAxNiwgMHg4OTcwLCAwLCB7MHg3MCwweDBhLDB4OWMsMHgwMiwweDYyLDB4MDAsMHg5OCwweDg4LDB4MjYsMHhjOCwweDAyLDB4YjIsMHgwMiwweDhlLDB4MDgsMHg4YiB9LAotICAxNiwgMHg4OTgwLCAwLCB7MHgxOCwweDIyLDB4YzAsMHgwYiwweGEwLDB4MDIsMHhlZSwweDIwLDB4M2IsMHgwMCwweDI2LDB4NDAsMHgwYiwweGIwLDB4MDIsMHg3MCB9LAotICAxNiwgMHg4OTkwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGUwLDB4MDAsMHhjYiwweDAwLDB4MzIsMHg4MCB9LAotICAxNiwgMHg4OWEwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhlNywweDAwLDB4YjgsMHg1MiwweDNlLDB4MjAsMHg0YiwweDBjLDB4NDMsMHhlZiwweDgyLDB4OWIsMHhjMCB9LAotICAxNiwgMHg4OWIwLCAwLCB7MHgzMiwweGMwLDB4MGIsMHhiMCwweDAyLDB4NmMsMHgwMSwweDhiLDB4ODAsMHgyZSwweGMwLDB4MGIsMHhhMCwweDgzLDB4ZTYsMHgwMCB9LAotICAxNiwgMHg4OWMwLCAwLCB7MHhmYiwweDAwLDB4MzYsMHg0MCwweDBmLDB4ZjAsMHgwMywweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4OWQwLCAwLCB7MHhlMCwweDAxLDB4YjAsMHgwMiwweGZmLDB4MDQsMHgzZiwweDkwLDB4MGMsMHhmMSwweDAxLDB4ZjQsMHgwOCwweDdkLDB4ODAsMHgzNyB9LAotICAxNiwgMHg4OWUwLCAwLCB7MHgwMCwweDBmLDB4YzAsMHgyMywweDk4LDB4MDAsMHhmNywweDAwLDB4MmIsMHhlMCwweDBmLDB4ZjgsMHgyMywweGZjLDB4MDYsMHhmYiB9LAotICAxNiwgMHg4OWYwLCAwLCB7MHg4MywweGJmLDB4YzAsMHg4NywweGQwLDB4MDMsMHhkYywweDAwLDB4ZWYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGIwLDB4MDEsMHhmOCB9LAotICAxNiwgMHg4YTAwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGE2LDB4MDAsMHhjYiwweDAwLDB4MzMsMHg4MCB9LAotICAxNiwgMHg4YTEwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhlMSwweDEwLDB4ZjIsMHg0MCwweGIyLDB4MDAsMHgzZCwweDk0LDB4MTcsMHgyZCwweDQ0LDB4ZmEsMHg0MSB9LAotICAxNiwgMHg4YTIwLCAwLCB7MHgzMiwweGMwLDB4OWYsMHhiMCwweDIzLDB4MmMsMHgwMiwweGNiLDB4NDAsMHgzMiwweGMwLDB4NGYsMHg5MCwweDAzLDB4M2QsMHgwMCB9LAotICAxNiwgMHg4YTMwLCAwLCB7MHhjYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4YjAsMHgwMywweDEwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YTQwLCAwLCB7MHg4OCwweDA1LDB4MjYsMHgwMCwweDhiLDB4NzEsMHgyMCwweGQ1LDB4MDMsMHg5OSwweDAyLDB4ZTAsMHgwMCwweGJiLDB4ODAsMHgyMiB9LAotICAxNiwgMHg4YTUwLCAwLCB7MHg2MCwweDFjLDB4ODAsMHgwMywweDYwLDB4MDAsMHhiOCwweDAyLDB4MjIsMHhjMiwweDBiLDB4MzIsMHgwMiwweDJjLDB4MDEsMHg4ZiB9LAotICAxNiwgMHg4YTYwLCAwLCB7MHgwMiwweGQ3LDB4YzAsMHgwYiwweGEwLDB4MDMsMHg2ZCwweDQwLDB4NTMsMHg4MCwweDJlLDB4YzAsMHgwZSwweGYwLDB4NDMsMHg3MiB9LAotICAxNiwgMHg4YTcwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDY4LDB4MDIsMHg4MCwweDAwLDB4MjQsMHgwMCB9LAotICAxNiwgMHg4YTgwLCAwLCB7MHgwYiwweDM1LDB4MjYsMHhjMiwweDAwLDB4YjAsMHg5MCwweDIwLDB4YzAsMHg4OCwweDAwLDB4MDIsMHg0ZiwweDIwLDB4YjMsMHgwMiB9LAotICAxNiwgMHg4YTkwLCAwLCB7MHg2MCwweGUyLDB4MWIsMHgzOCwweDAyLDB4MGMsMHgwMCwweDg4LDB4MDAsMHg2MCwweGMwLDB4MGIsMHgzNCwweDgyLDB4NGMsMHgwMiB9LAotICAxNiwgMHg4YWEwLCAwLCB7MHhhMSwweDkwLDB4MmMsMHg0MCwweDBiLDB4MzAsMHgwMiwweDMwLDB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YWIwLCAwLCB7MHgyMCwweDAxLDB4M2EsMHgwOCwweDhjLDB4YTAsMHgyZCwweDIwLDB4NGIsMHg3OCwweDAyLDB4ZGEsMHgwMCwweGIyLDB4OTAsMHgyMSB9LAotICAxNiwgMHg4YWMwLCAwLCB7MHg2NiwweDQ4LDB4NzksMHgwMiwweGRlLDB4NDAsMHhiNywweDkxLDB4YTEsMHhlMCwweGRiLDB4ZjgsMHgwMiwweDFlLDB4NDAsMHg4NCB9LAotICAxNiwgMHg4YWQwLCAwLCB7MHg5MCwweDAxLDB4ZTAsMHg4YiwweGY5LDB4MDIsMHg1ZSwweDAxLDB4OTcsMHg4MCwweDJkLDB4NjAsMHgwYSwweDc4LDB4MDAsMHg0OCB9LAotICAxNiwgMHg4YWUwLCAwLCB7MHgwNCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg4MCwweDAwLDB4MjQsMHgwNCB9LAotICAxNiwgMHg4YWYwLCAwLCB7MHgwZiwweDMyLDB4MDMsMHhjNCwweGEwLDB4ZjEsMHg0MiwweDMwLDB4YzQsMHgyYywweDMxLDB4MDIsMHg0NCwweDAwLDB4ZjEsMHgxMSB9LAotICAxNiwgMHg4YjAwLCAwLCB7MHhhMCwweGMwLDB4MGIsMHgzMCwweDBiLDB4MGMsMHg0MiwweDgzLDB4MDAsMHgwMCwweGMwLDB4MGYsMHgzMCwweDAzLDB4NGMsMHgwMiB9LAotICAxNiwgMHg4YjEwLCAwLCB7MHhlMywweDAwLDB4M2MsMHg0MCwweDBiLDB4MzAsMHgwMSwweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YjIwLCAwLCB7MHhjMCwweDFkLDB4YmMsMHgwMCwweGZjLDB4YTUsMHgzMywweGMwLDB4MGYsMHhkMCwweDAzLDB4ZmMsMHgwMSwweGJmLDB4MDAsMHgzZiB9LAotICAxNiwgMHg4YjMwLCAwLCB7MHhjNCwweDBlLDB4NzEsMHgwMywweDc0LDB4MDAsMHg3NSwweDEwLDB4M2YsMHhjMCwweDA1LDB4ZjAsMHgwMywweGRjLDB4NDAsMHhmZiB9LAotICAxNiwgMHg4YjQwLCAwLCB7MHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4NDMsMHhmYywweDAwLDB4N2YsMHgwMCwweDNmLDB4NDAsMHgwZSwweGYwLDB4MDMsMHhkMCB9LAotICAxNiwgMHg4YjUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNCwweGU4LDB4MDAsMHhmMiwweDA0LDB4YjMsMHg4MCB9LAotICAxNiwgMHg4YjYwLCAwLCB7MHgwZiwweGI4LDB4MGIsMHgyYywweDAwLDB4ZWIsMHg4MCwweDMyLDB4YzAsMHgwYywweDIwLDB4MTMsMHgyZSwweDA4LDB4Y2IsMHgwMSB9LAotICAxNiwgMHg4YjcwLCAwLCB7MHgzMiwweGM1LDB4MGYsMHhiMSwweDAzLDB4ZWMsMHg0OCwweGM4LDB4MTAsMHgzMiwweGZhLDB4OGMsMHgzOCwweDAzLDB4M2MsMHg5MCB9LAotICAxNiwgMHg4YjgwLCAwLCB7MHhjYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4YjAsMHgxMywweGMyLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YjkwLCAwLCB7MHhjOCwweDEwLDB4OTgsMHgwMCwweGY2LDB4MDAsMHg2MSwweDgxLDB4MGIsMHhmMCwweDAyLDB4MWMsMHgwMCwweGQ3LDB4MDAsMHhiNyB9LAotICAxNiwgMHg4YmEwLCAwLCB7MHg4MCwweDBjLDB4NzAsMHgwMiwweGJjLDB4MTAsMHg4ZiwweDAwLDB4MjEsMHhjOCwweDhiLDB4NzIsMHg0MywweGZjLDB4ODgsMHhkYyB9LAotICAxNiwgMHg4YmIwLCAwLCB7MHgwMCwweDM3LDB4YzgsMHgwZCwweDUwLDB4MDIsMHgxYywweDIyLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhkMyB9LAotICAxNiwgMHg4YmMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MDAsMHhiNiwweDgwLDB4YTksMHhhMCB9LAotICAxNiwgMHg4YmQwLCAwLCB7MHg0YiwweDdjLDB4MDIsMHg1ZSwweDMwLDB4YTMsMHg4OCwweDIxLDB4ZjAsMHgwOCwweDc4LDB4MDIsMHgxNiwweDAwLDB4ODUsMHg4MCB9LAotICAxNiwgMHg4YmUwLCAwLCB7MHgyMSwweGUwLDB4MGIsMHg3OCwweDAyLDB4ZGUsMHgwMCwweDg3LDB4ODAsMHhhMSwweGU0LDB4MDgsMHhkOCwweDAyLDB4NGUsMHgwMCB9LAotICAxNiwgMHg4YmYwLCAwLCB7MHg5NywweDgwLDB4MmQsMHg3MCwweDBiLDB4NzgsMHgwMiwweGM4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YzAwLCAwLCB7MHg0OCwweDE0LDB4ZWMsMHgwMCwweGIyLDB4MDAsMHgyOCwweGMwLDB4MGIsMHgxMCwweDAyLDB4NGUsMHg5MCwweDkzLDB4MDIsMHgyMiB9LAotICAxNiwgMHg4YzEwLCAwLCB7MHhmMCwweDA4LDB4MzgsMHg0MiwweDhjLDB4NDIsMHg4MywweDA0LDB4MjIsMHhlNCwweDRiLDB4MzgsMHgwMiwweDhlLDB4NDAsMHg4MyB9LAotICAxNiwgMHg4YzIwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwOSwweDM4LDB4MjIsMHg0ZSwweDIxLDB4OTMsMHgwMCwweDJlLDB4ZTAsMHgwYiwweDMwLDB4MDIsMHhkYiB9LAotICAxNiwgMHg4YzMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDEsMHhmYSwweDAwLDB4M2IsMHg4OSB9LAotICAxNiwgMHg4YzQwLCAwLCB7MHgwZiwweGEwLDB4MDIsMHg3OCwweDA4LDB4YWUsMHg0MCwweDIzLDB4ODAsMHgyYywweDZjLDB4MGIsMHgzYSwweDAwLDB4OGUsMHg4YyB9LAotICAxNiwgMHg4YzUwLCAwLCB7MHhiMiwweDAwLDB4MGIsMHg4MCwweDgyLDB4ZTAsMHgwMiwweDhlLDB4MDAsMHgyMiwweDgwLDB4MGMsMHhlOCwweDAyLDB4N2IsMHg4MCB9LAotICAxNiwgMHg4YzYwLCAwLCB7MHg5YSwweDgwLDB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweGZhLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4YzcwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwOSwweGVjLDB4MDAsMHgzNiwweDIxLDB4MGIsMHg4MCwweDEzLDB4YTEsMHgwMCwweGY4LDB4NjAsMHgzZSB9LAotICAxNiwgMHg4YzgwLCAwLCB7MHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MTAsMHhmOCB9LAotICAxNiwgMHg4YzkwLCAwLCB7MHgwMCwweGJlLDB4MDAsMHgwZiwweDg1LDB4MGIsMHg4MCwweDAwLDB4ZTgsMHgxMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg4Y2EwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDIsMHhjOSwweDAyLDB4MzAsMHg0OCB9LAotICAxNiwgMHg4Y2IwLCAwLCB7MHgwYywweDk5LDB4MTMsMHhhNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDIsMHgwYywweDkwLDB4OGYsMHgyNCwweDAwLDB4ZjksMHgwMCB9LAotICAxNiwgMHg4Y2MwLCAwLCB7MHgzMiwweDI4LDB4MGMsMHg4OCwweDAzLDB4ZTAsMHgwMCwweGM5LDB4MDAsMHhiMiwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTcsMHgwMCB9LAotICAxNiwgMHg4Y2QwLCAwLCB7MHhjOSwweDEwLDB4M2UsMHg0MCwweDBjLDB4MTAsMHgwMywweDAyLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4Y2UwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMSwweDg5LDB4ODAsMHhhMiwweDQ4LDB4MjgsMHg5MiwweDQyLDB4YzUsMHgwMCwweDg5LDB4NDAsMHgyZSB9LAotICAxNiwgMHg4Y2YwLCAwLCB7MHg0MCwweDJjLDB4OTAsMHgwNiwweDI1LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg1MCwweDA4LDB4OTgsMHgwMiwweGM0LDB4MDAsMHg4OSB9LAotICAxNiwgMHg4ZDAwLCAwLCB7MHgwMSwweDc2LDB4NDAsMHg0YiwweDkyLDB4MDIsMHhlNSwweDAyLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwZCwweDkwLDB4MDMsMHg2MCB9LAotICAxNiwgMHg4ZDEwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MGMsMHg4NSwweDIwLDB4YTIsMHg0MCB9LAotICAxNiwgMHg4ZDIwLCAwLCB7MHgwOCwweDkwLDB4MDYsMHhlNSwweDAwLDB4ODksMHg0MCwweDJlLDB4NDAsMHgwOSwweDkwLDB4NDIsMHhhNCwweGEwLDB4MzEsMHgwMCB9LAotICAxNiwgMHg4ZDMwLCAwLCB7MHgyMiwweDUwLDB4MTgsMHg5MSwweDAyLDB4ZTQsMHgwMCwweDgxLDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDA2LDB4ZTQsMHgwMCB9LAotICAxNiwgMHg4ZDQwLCAwLCB7MHg4OSwweDAwLDB4MmUsMHg0MCwweDA5LDB4OTAsMHgwMiwweDBlLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZDUwLCAwLCB7MHgwMCwweDA0LDB4MTUsMHgwMCwweDg1LDB4NDAsMHgyMCwweDQwLDB4MDgsMHgxNCwweDI2LDB4ZTQsMHgwMCwweDgxLDB4MDAsMHgyYyB9LAotICAxNiwgMHg4ZDYwLCAwLCB7MHg0MCwweDE4LDB4MTAsMHgwMiwweDg0LDB4ODAsMHhiMSwweDIwLDB4YTAsMHg1MCwweDA4LDB4MTQsMHgwMiwweGU1LDB4MDIsMHg4MSB9LAotICAxNiwgMHg4ZDcwLCAwLCB7MHg0MCwweDIwLDB4NDgsMHgwYiwweDEwLDB4MDYsMHhjYywweDAwLDB4ODEsMHgwMSwweDJjLDB4NTAsMHgwOSwweDE0LDB4MDIsMHg0YSB9LAotICAxNiwgMHg4ZDgwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHg4YywweDAwLDB4MzIsMHgwMCB9LAotICAxNiwgMHg4ZDkwLCAwLCB7MHgwYywweDgwLDB4MjMsMHhlMCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MTQsMHgwZCwweDgwLDB4MTIsMHhhMSwweDQ0LDB4ZjgsMHg1MSB9LAotICAxNiwgMHg4ZGEwLCAwLCB7MHgzMiwweDAwLDB4MmMsMHg4MCwweDAzLDB4ZTAsMHgwMCwweDg4LDB4MDQsMHgyMiwweDE0LDB4MGYsMHg4MCwweDA3LDB4ZTAsMHgwMCB9LAotICAxNiwgMHg4ZGIwLCAwLCB7MHhjOCwweDAwLDB4M2UsMHgwMCwweDBkLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZGMwLCAwLCB7MHg5OCwweDlkLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZiwweDUwLDB4MGYsMHhkMCwweDAzLDB4ZGMsMHgwMSwweGJkLDB4NDIsMHgzZiB9LAotICAxNiwgMHg4ZGQwLCAwLCB7MHg1MCwweDRmLDB4ZDQsMHg0MywweDc0LDB4NDEsMHhmZCwweDEwLDB4M2YsMHgxMCwweDFmLDB4YzQsMHgxMywweGYxLDB4MDAsMHhmZCB9LAotICAxNiwgMHg4ZGUwLCAwLCB7MHg0MCwweDdlLDB4NDQsMHgwZiwweGQwLDB4NDMsMHhmNSwweDAxLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhlNiB9LAotICAxNiwgMHg4ZGYwLCAwLCB7MHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY0LDB4MDAsMHhkZiwweDA1LDB4MzMsMHg2MSB9LAotICAxNiwgMHg4ZTAwLCAwLCB7MHgwZiwweDUwLDB4NTMsMHgzNCwweDEwLDB4ZmQsMHgwNCwweDMzLDB4NDQsMHg0ZiwweDUwLDB4MDMsMHg3NiwweGMxLDB4Y2QsMHhlMCB9LAotICAxNiwgMHg4ZTEwLCAwLCB7MHgzMywweDYwLDB4MGMsMHhjZSwweDAzLDB4ZjYsMHhjMCwweGUxLDB4YzAsMHhiNiwweDY0LDB4OGYsMHg1MCwweDBiLDB4MzYsMHg4MiB9LAotICAxNiwgMHg4ZTIwLCAwLCB7MHhjZCwweDAwLDB4M2UsMHg0NCwweDRjLDB4OWUsMHhjMywweGM2LDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZTMwLCAwLCB7MHgzOCwweDEwLDB4ZWEsMHgyOCwweDgwLDB4YTAsMHhiMiwweDA0LDB4MGIsMHg4YSwweDgzLDB4NjAsMHgwMCwweGZhLDB4MDAsMHgzNiB9LAotICAxNiwgMHg4ZTQwLCAwLCB7MHgyOCwweDhiLDB4ODAsMHgwMywweGUzLDB4YzgsMHhjOCwweDg0LDB4MjIsMHgxNCwweDA4LDB4OGEsMHgwMiwweGUyLDB4ODAsMHhkOCB9LAotICAxNiwgMHg4ZTUwLCAwLCB7MHg4MiwweDM0LDB4MzQsMHgxYiwweDgwLDB4MDMsMHg2MCwweDA0LDB4ODgsMHgwMCwweDJlLDB4MjAsMHgwYSwweDhlLDB4NDIsMHhjZSB9LAotICAxNiwgMHg4ZTYwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDA4LDB4MDQsMHg0MSB9LAotICAxNiwgMHg4ZTcwLCAwLCB7MHgwYiwweDkyLDB4MDIsMHgwNCwweDAwLDB4YjEsMHgwMCwweDJjLDB4NDAsMHgwYiwweDE4LDB4MDIsMHgyNCwweDAwLDB4YjEsMHg2MCB9LAotICAxNiwgMHg4ZTgwLCAwLCB7MHgyNiwweDQwLDB4MGEsMHgxNiwweDAyLDB4YzUsMHgwMCwweGExLDB4YzAsMHgyMCwweDQ4LDB4MGIsMHg5MCwweDAyLDB4NDcsMHgwMCB9LAotICAxNiwgMHg4ZTkwLCAwLCB7MHg5MSwweDAxLDB4MmMsMHg0OCwweDE4LDB4MTIsMHgwMiwweGQyLDB4MDEsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZWEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwYywweDhiLDB4MDQsMHhhMiwweDUwLDB4MGIsMHg5MSwweDAyLDB4MjQsMHgwNCwweGE5LDB4MDEsMHgyZSB9LAotICAxNiwgMHg4ZWIwLCAwLCB7MHg0MiwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDAsMHhhOSwweDAwLDB4MjYsMHg2MCwweDBhLDB4OTAsMHgwMiwweGU2LDB4MDAsMHg4MSB9LAotICAxNiwgMHg4ZWMwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHg4YiwweGIwLDB4MDIsMHgyNCwweDA4LDB4OTksMHgxMCwweDJlLDB4NDAsMHgxYSwweDkwLDB4MDIsMHhjNiB9LAotICAxNiwgMHg4ZWQwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU1LDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MCB9LAotICAxNiwgMHg4ZWUwLCAwLCB7MHgwZiwweDEwLDB4MDIsMHgyNSwweDAwLDB4YjEsMHgwMCwweDJlLDB4NjAsMHgwZiwweDEwLDB4MTIsMHgyNCwweDAyLDB4YjksMHhhMCB9LAotICAxNiwgMHg4ZWYwLCAwLCB7MHhhNCwweDQwLDB4MmUsMHg5MSwweDAzLDB4ZTYsMHgwMCwweGE5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHgxOSwweDgwLDB4NjQsMHgwNCB9LAotICAxNiwgMHg4ZjAwLCAwLCB7MHhkOSwweDgxLDB4MmUsMHg0MCwweDRjLDB4OTAsMHgwMywweGU4LDB4MTQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZjEwLCAwLCB7MHg2OCwweDAxLDB4YTQsMHgwYSwweGU5LDB4MDAsMHhiZSwweDQ4LDB4MGYsMHg5OCwweDBiLDB4ZTQsMHgwMCwweGY5LDB4YzQsMHgzNiB9LAotICAxNiwgMHg4ZjIwLCAwLCB7MHg3MCwweDFmLDB4OTIsMHgwMywweGU2LDB4OTAsMHhjMSwweDkwLDB4M2EsMHg0MCwweDhkLDB4ODgsMHgwMywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHg4ZjMwLCAwLCB7MHg5MCwweDNlLDB4NDAsMHgwYiwweDk4LDB4MDMsMHhlNiwweDQwLDB4ZTksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg4ZjQwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgxMCwweGExLDB4MDIsMHhkOCwweDIwLDB4YjIsMHgxMCB9LAotICAxNiwgMHg4ZjUwLCAwLCB7MHgwYywweDgwLDB4ODMsMHgyMSwweDQwLDB4YzgsMHg1OCwweGIyLDB4MTAsMHg0YywweDgwLDB4MGIsMHgyMCwweDAwLDB4ZjgsMHg0MiB9LAotICAxNiwgMHg4ZjYwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMiwweGQ4LDB4MDAsMHg3MiwweDAwLDB4MWMsMHg4MCwweDAwLDB4MjAsMHgwMCB9LAotICAxNiwgMHg4ZjcwLCAwLCB7MHhmOCwweDA0LDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweDAyLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZjgwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwNCwweGNlLDB4NDEsMHgyMywweDgwLDB4MDgsMHhlMCwweDAyLDB4MzksMHgxMCwweGFlLDB4NDAsMHgyMiB9LAotICAxNiwgMHg4ZjkwLCAwLCB7MHg4MCwweDA4LDB4ZTAsMHgwMiwweDFhLDB4MDAsMHhiYSwweDAwLDB4MmIsMHhhZCwweDAzLDB4ODAsMHgwMiwweGU4LDB4MDAsMHhjYSB9LAotICAxNiwgMHg4ZmEwLCAwLCB7MHgwMCwweDJhLDB4ODAsMHgwYSwweGUwLDB4MDIsMHgxOCwweDAwLDB4YmEsMHgwMCwweDFhLDB4ODAsMHgwYiwweGEwLDB4MDMsMHg0YSB9LAotICAxNiwgMHg4ZmIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwNSwweDZjLDB4MTIsMHg4OSwweDAwLDB4YTAsMHhlMCB9LAotICAxNiwgMHg4ZmMwLCAwLCB7MHgwOCwweDM4LDB4MDIsMHgwZCwweDg4LDB4ODMsMHgwMCwweDA0LDB4ZTAsMHgwOCwweDM4LDB4MzIsMHgwZSwweDI1LDB4MzEsMHgwMSB9LAotICAxNiwgMHg4ZmQwLCAwLCB7MHgyNCwweGUwLDB4OGIsMHgzOCwweDAyLDB4ZTQsMHgwMSwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCB9LAotICAxNiwgMHg4ZmUwLCAwLCB7MHhiMywweDAwLDB4MmUsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg4ZmYwLCAwLCB7MHhhMCwweDAxLDB4MTQsMHgyMCwweDg2LDB4MjAsMHgyOSwweGIwLDB4MDgsMHhmMCwweDgyLDB4M2UsMHgwNCwweGE3LDB4MDAsMHgyMSB9LAotICAxNiwgMHg5MDAwLCAwLCB7MHg3MCwweDg4LDB4NzAsMHg5MiwweDFjLDB4MjAsMHhiZCwweDAwLDB4NjksMHhjMCwweDBiLDB4NzYsMHgwMiwweGQ0LDB4ODAsMHg4ZiB9LAotICAxNiwgMHg5MDEwLCAwLCB7MHgyMSwweDI5LDB4ZTAsMHgwYSwweDYwLDB4ODYsMHg5OCwweDAxLDB4YjcsMHgwMCwweDJkLDB4YzgsMHgwYiwweDNiLDB4MDIsMHg2MCB9LAotICAxNiwgMHg5MDIwLCAwLCB7MHgwNCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNlLDB4MDAsMHhjNywweGEwLDB4YjAsMHhlMCB9LAotICAxNiwgMHg5MDMwLCAwLCB7MHgyYywweDc4LDB4MGIsMHgxYSwweDAwLDB4YzMsMHg4MCwweDM3LDB4ZTAsMHgyOCwweDc4LDB4MDMsMHgxYSwweDA4LDB4ZjUsMHg5MCB9LAotICAxNiwgMHg5MDQwLCAwLCB7MHgzNSwweGUwLDB4MGYsMHg3YywweDEyLDB4ZDYsMHg4MiwweGM3LDB4OTAsMHgyMSwweGU0LDB4MDgsMHg3OCwweDAzLDB4OWUsMHgwMCB9LAotICAxNiwgMHg5MDUwLCAwLCB7MHhmNSwweDgwLDB4M2QsMHhmMSwweDBmLDB4NzgsMHgwMywweDIyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MDYwLCAwLCB7MHgwOCwweDE5LDB4YTQsMHgwMCwweGVlLDB4ODAsMHgzNiwweGMxLDB4NGYsMHhkMCwweDAzLDB4YzgsMHgwMCwweGZiLDB4MDAsMHgzZSB9LAotICAxNiwgMHg5MDcwLCAwLCB7MHg1MSwweDBmLDB4YjAsMHgwMywweGU0LDB4MDgsMHhmMSwweDYwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGM1LDB4MDAsMHhlYiB9LAotICAxNiwgMHg5MDgwLCAwLCB7MHgxMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDksMHg2YywweDAwLDB4ZmIsMHgwMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9LAotICAxNiwgMHg5MDkwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweGZlLDB4MDAsMHhmZCwweDg4LDB4MzMsMHg2MCB9LAotICAxNiwgMHg5MGEwLCAwLCB7MHgwZiwweGY5LDB4MDMsMHhjZSwweDQwLDB4ZDcsMHg4NCwweDM3LDB4NzAsMHgwYywweGQ4LDB4MjMsMHgzNiwweDAwLDB4YzUsMHg4OCB9LAotICAxNiwgMHg5MGIwLCAwLCB7MHgzMywweGUwLDB4NGYsMHhmOCwweDEzLDB4ZjcsMHgyOCwweGRmLDB4ODAsMHgzNywweGUyLDB4MGMsMHg1OCwweDAzLDB4M2UsMHgwMCB9LAotICAxNiwgMHg5MGMwLCAwLCB7MHhmZiwweDkwLDB4M2YsMHhlMCwweDBjLDB4ZjgsMHgwMywweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MGQwLCAwLCB7MHhhOSwweDExLDB4OWMsMHgwOCwweGY2LDB4MDAsMHhhMSwweDAwLDB4MGIsMHg2MywweDAyLDB4ZDYsMHgzMCwweDg1LDB4NDEsMHgzMSB9LAotICAxNiwgMHg5MGUwLCAwLCB7MHhjOCwweDA4LDB4NTAsMHgyMywweDFjLDB4MDAsMHhkNSwweDIwLDB4YjEsMHg4MCwweDBmLDB4NzAsMHgwMywweGI0LDB4MDAsMHhjNyB9LAotICAxNiwgMHg5MGYwLCAwLCB7MHgwMCwweDIxLDB4YzAsMHgwZiwweDQwLDB4YTMsMHg1OCwweDQwLDB4YjcsMHgwMCwweDNmLDB4YzQsMHgwYSwweGYwLDB4MDIsMHgyYSB9LAotICAxNiwgMHg5MTAwLCAwLCB7MHgwNiwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4NDAsMHhiNywweDEwLDB4MjEsMHhkMiB9LAotICAxNiwgMHg5MTEwLCAwLCB7MHgwYiwweDcwLDB4MDIsMHhkYywweDQyLDB4ODYsMHgwMCwweDI1LDB4NjEsMHgwOCwweDUxLDB4MDIsMHg1MCwweDAwLDB4OTUsMHgwMCB9LAotICAxNiwgMHg5MTIwLCAwLCB7MHgyNSwweGMwLDB4MDksMHg3MCwweDgyLDB4ZDQsMHgwMCwweDg3LDB4MDAsMHgyNCwweGMwLDB4MDgsMHg1MCwweDAyLDB4NWMsMHgwMCB9LAotICAxNiwgMHg5MTMwLCAwLCB7MHg5NSwweDA0LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MTQwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwOCwweGIyLDB4ZDAsMHgyMCwweGUwLDB4NGIsMHgwOCwweDAyLDB4YzQsMHgwMCwweDgwLDB4ODAsMHgyMCB9LAotICAxNiwgMHg5MTUwLCAwLCB7MHhmMCwweDA4LDB4MWEsMHgwMiwweDg1LDB4NDgsMHg4MSwweDEwLDB4MjAsMHg0MCwweDBhLDB4MzAsMHgwMiwweGM2LDB4MTAsMHg5MyB9LAotICAxNiwgMHg5MTYwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwYSwweDFjLDB4MDIsMHgwZCwweDQwLDB4YjMsMHgwMCwweDY4LDB4YzQsMHgwYSwweGIwLDB4MDIsMHgwOSB9LAotICAxNiwgMHg5MTcwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDEsMHhmZSwweDAwLDB4MzIsMHhmMCB9LAotICAxNiwgMHg5MTgwLCAwLCB7MHgwZiwweDg4LDB4MDMsMHhlNiwweDAwLDB4YzgsMHhjOCwweDM2LDB4ZjYsMHgyOCwweGE2LDB4MGEsMHg2ZCwweDAwLDB4OWQsMHgwMCB9LAotICAxNiwgMHg5MTkwLCAwLCB7MHgzMiwweDAwLDB4MGIsMHhiMCwweDAzLDB4ZjYsMHgwMywweGM3LDB4MDAsMHgzNywweGMwLDB4MDgsMHg5YywweDBhLDB4NmUsMHgwMCB9LAotICAxNiwgMHg5MWEwLCAwLCB7MHhiYiwweDAwLDB4MmYsMHhjMCwweDBjLDB4ZjAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MWIwLCAwLCB7MHg4MCwweDAwLDB4ZTQsMHgwMSwweGViLDB4NDAsMHgzZSwweDgwLDB4NGYsMHhjMSwweDAzLDB4ZTQsMHgwMCwweGI4LDB4MDgsMHgzYSB9LAotICAxNiwgMHg5MWMwLCAwLCB7MHg0MCwweDhmLDB4YTQsMHgxMywweDZjLDB4MjAsMHhmOSwweDAwLDB4M2UsMHg3MCwweDBmLDB4YjAsMHgwMywweGE0LDB4NDAsMHhlYiB9LAotICAxNiwgMHg5MWQwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHgwZiwweDkyLDB4MjMsMHhlOCwweDAwLDB4ZjksMHg4MCwweDNlLDB4YzAsMHgwZiwweGIwLDB4NjMsMHhlMCB9LAotICAxNiwgMHg5MWUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDgsMHhjZSwweDA4LDB4MzMsMHhjMCB9LAotICAxNiwgMHg5MWYwLCAwLCB7MHgwZiwweGRhLDB4MDMsMHgzMCwweDAwLDB4ZTQsMHgwNCwweDM1LDB4YzAsMHgwZCwweGEwLDB4MDMsMHgyOCwweDAwLDB4YzUsMHgwMCB9LAotICAxNiwgMHg5MjAwLCAwLCB7MHgzMywweDAwLDB4MGIsMHhmYSwweDAzLDB4ZjQsMHgwMywweGNiLDB4MDAsMHgzMSwweGMwLDB4MGMsMHhkNCwweDAzLDB4MTQsMHgyMCB9LAotICAxNiwgMHg5MjEwLCAwLCB7MHhjZCwweDgwLDB4MjMsMHhjMSwweDBjLDB4ZjAsMHgwMiwweDA4LDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MjIwLCAwLCB7MHg4MSwweDA0LDB4NDQsMHgxMCwweGNiLDB4ZDAsMHgyMiwweGMwLDB4MGIsMHg5NCwweDAyLDB4MjIsMHg4NCwweGI4LDB4YzYsMHgwMiB9LAotICAxNiwgMHg5MjMwLCAwLCB7MHg0MCwweDA4LDB4MjgsMHgwMiwweGE1LDB4ODAsMHg4OSwweDAwLDB4MjIsMHg2MCwweDBiLDB4YjgsMHgwMiwweDY0LDB4MDAsMHg4YiB9LAotICAxNiwgMHg5MjQwLCAwLCB7MHgwMCwweDJhLDB4YzAsMHhjOCwweDAwLDB4MDMsMHg2NiwweDAwLDB4ODEsMHgwMCwweDAwLDB4YzAsMHgwZCwweGIwLDB4MGEsMHhhOCB9LAotICAxNiwgMHg5MjUwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHgxMywweDAwLDB4MjIsMHg0MCB9LAotICAxNiwgMHg5MjYwLCAwLCB7MHg4YiwweDI0LDB4MDIsMHgyYSwweDAwLDB4YmIsMHg4MiwweDIyLDB4NDAsMHgwMCwweGFjLDB4MDIsMHg4NCwweDAwLDB4ODksMHgwMCB9LAotICAxNiwgMHg5MjcwLCAwLCB7MHgyMiwweDIyLDB4MGIsMHhiMCwweDAyLDB4YzQsMHgwMCwweDliLDB4MDAsMHgyYSwweGMwLDB4MDgsMHhiMCwweDAyLDB4MmUsMHgwMCB9LAotICAxNiwgMHg5MjgwLCAwLCB7MHg4YiwweDEwLDB4MmEsMHhjMCwweDA4LDB4YjAsMHgwMiwweGEwLDB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MjkwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgxMCwweDgzLDB4MDAsMHgyMCwweDAxLDB4MGIsMHgyMCwweDAyLDB4MDAsMHg4MCwweGIxLDB4MDAsMHgyMCB9LAotICAxNiwgMHg5MmEwLCAwLCB7MHhjMSwweDA4LDB4MjAsMHgwMiwweDg4LDB4MDEsMHg4MSwweDAwLDB4YTAsMHgwMCwweDBiLDB4MzAsMHgwMiwweDQ0LDB4MDEsMHg5YiB9LAotICAxNiwgMHg5MmIwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHgwOCwweGIwLDB4MDIsMHg0OCwweDA2LDB4ODksMHgwMCwweDJhLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg4MiB9LAotICAxNiwgMHg5MmMwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4ZCwweDZjLDB4MDAsMHhjMywweDAwLDB4YjIsMHhjMCB9LAotICAxNiwgMHg5MmQwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHgyOCwweDIwLDB4ZmEsMHgwMCwweGIxLDB4NDAsMHgwZCwweGEwLDB4MDcsMHhhMCwweDAwLDB4Y2QsMHgwMCB9LAotICAxNiwgMHg5MmUwLCAwLCB7MHgyMiwweDAwLDB4MGYsMHhiMCwweDAzLDB4ZjQsMHgwMCwweDlmLDB4MDAsMHgzYiwweGMwLDB4MmMsMHhiMCwweDBiLDB4MjQsMHgwMCB9LAotICAxNiwgMHg5MmYwLCAwLCB7MHhjOSwweDAwLDB4YmEsMHhjMCwweDBjLDB4YjAsMHgwMywweDgwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MzAwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgwNiwweGZmLDB4MDIsMHhhZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgxMCwweGZjLDB4MDAsMHgzZiB9LAotICAxNiwgMHg5MzEwLCAwLCB7MHhjMCwweDlmLDB4ZTAsMHgxMywweGYwLDB4MDAsMHhmZCwweDA0LDB4M2YsMHg0MCwweDRmLDB4ZjAsMHgwMywweDc0LDB4MDAsMHhlZiB9LAotICAxNiwgMHg5MzIwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHg4ZiwweGUwLDB4MDIsMHhiNCwweDAxLDB4ZmQsMHgwNCwweDM3LDB4YzAsMHgwZiwweGYwLDB4NDMsMHg2OCB9LAotICAxNiwgMHg5MzMwLCAwLCB7MHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4MDAsMHhjNywweDIwLDB4YjMsMHhjOCB9LAotICAxNiwgMHg5MzQwLCAwLCB7MHgxYywweGYxLDB4MDMsMHg3YywweDIwLDB4Y2YsMHgwYSwweDNmLDB4ZDAsMHgwZCwweGYwLDB4MDMsMHg3YywweDgwLDB4OGYsMHgzMiB9LAotICAxNiwgMHg5MzUwLCAwLCB7MHgzMywweGM0LDB4MGYsMHhmMSwweDgzLDB4M2MsMHhlMCwweGNmLDB4MTAsMHgzMywweGM0LDB4MGQsMHhmMiwweDgzLDB4M2MsMHhlMiB9LAotICAxNiwgMHg5MzYwLCAwLCB7MHhjNywweDgwLDB4MTcsMHhjYywweDRjLDB4ZjMsMHg4MywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5MzcwLCAwLCB7MHg4MCwweDEwLDB4ZTMsMHg0MCwweDg4LDB4NjgsMHgyMiwweDMwLDB4MDgsMHgwNiwweDAyLDB4MDEsMHhhMSwweDg4LDB4YzQsMHgwZSB9LAotICAxNiwgMHg5MzgwLCAwLCB7MHgxNCwweDA4LDB4ODcsMHg4MCwweDAxLDB4YzAsMHgyOCwweDUwLDB4MDIsMHgwNCwweDhiLDB4ODYsMHgwMiwweGExLDB4OTgsMHg4OCB9LAotICAxNiwgMHg5MzkwLCAwLCB7MHg0MSwweDJhLDB4MDQsMHgwYSwweDg0LDB4ODIsMHhiZCwweDgwLDB4OGIsMHgwOCwweDJiLDB4YzQsMHg4OCwweGY0LDB4MDMsMHg2MCB9LAotICAxNiwgMHg5M2EwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDgsMHg4MiwweDQwLDB4MjAsMHgxMCB9LAotICAxNiwgMHg5M2IwLCAwLCB7MHgwOCwweDIxLDB4MTIsMHg0NCwweDA0LDB4ODIsMHgwNCwweDJjLDB4MDgsMHg4OSwweDkwLDB4MDIsMHg0NCwweDIxLDB4OGIsMHgwMCB9LAotICAxNiwgMHg5M2MwLCAwLCB7MHgyNCwweDg4LDB4OGIsMHhhMCwweDAwLDB4NDAsMHg4NCwweDg5LDB4MzAsMHgyMiwweDQ4LDB4ODgsMHhiMCwweDAyLDB4Y2MsMHgwOCB9LAotICAxNiwgMHg5M2QwLCAwLCB7MHg4OCwweDIwLDB4YTQsMHhjOCwweDAwLDB4MzIsMHgwYSwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5M2UwLCAwLCB7MHhjMCwweDE1LDB4YTAsMHgwMCwweDg5LDB4MDAsMHgyMiwweGMxLDB4ODgsMHg5MCwweDYyLDB4MjgsMHgwOCwweDg5LDB4MDgsMHgyZSB9LAotICAxNiwgMHg5M2YwLCAwLCB7MHhjMCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDgsMHhhOCwweDAwLDB4MjYsMHg0MiwweDBiLDB4OTAsMHgwMiwweGNjLDB4NTAsMHg4YSB9LAotICAxNiwgMHg5NDAwLCAwLCB7MHgyMiwweDJhLDB4ODYsMHgwYSwweDgwLDB4MDIsMHhlYywweDAwLDB4ODgsMHg4NCwweDJhLDB4YzEsMHgwOCwweGIwLDB4MjYsMHgzMCB9LAotICAxNiwgMHg5NDEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGYwLDB4MDIsMHhjZiwweDAwLDB4MzMsMHhjMCB9LAotICAxNiwgMHg5NDIwLCAwLCB7MHg0OCwweGY4LDB4NDMsMHg3OSwweDAwLDB4OGQsMHhjMCwweDNmLDB4MzAsMHg4ZCwweDYwLDB4ODMsMHg3OCwweDYwLDB4YzQsMHg1OCB9LAotICAxNiwgMHg5NDMwLCAwLCB7MHgzNywweDIwLDB4MGYsMHg1OCwweDEzLDB4N2IsMHgwMiwweGNjLDB4YzQsMHgzMSwweDIwLDB4MGMsMHg0NCwweDAzLDB4ZWMsMHgwMiB9LAotICAxNiwgMHg5NDQwLCAwLCB7MHg4YiwweDgwLDB4MzYsMHhjMCwweDI0LDB4YjAsMHgxMiwweDEwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NDUwLCAwLCB7MHhlMCwweDAxLDB4OWMsMHgwMCwweGY0LDB4MTAsMHgzZCwweDAwLDB4NmYsMHhjOSwweDEzLDB4ZDQsMHgxMiwweGZlLDB4OTAsMHgzZiB9LAotICAxNiwgMHg5NDYwLCAwLCB7MHhmMCwweDBmLDB4ZGEsMHgyMywweGY0LDB4MTQsMHhmZiwweDAyLDB4M2IsMHhmMCwweDBmLDB4ZWEsMHgyMywweGI2LDB4MDAsMHhmZiB9LAotICAxNiwgMHg5NDcwLCAwLCB7MHg4MiwweDNmLDB4ZTEsMHg4ZiwweGY0LDB4MDMsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHhhZiwweDcwLDB4MDMsMHhmOCB9LAotICAxNiwgMHg5NDgwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGEwLDB4MDAsMHhjYSwweDAwLDB4MzIsMHgwOCB9LAotICAxNiwgMHg5NDkwLCAwLCB7MHgxYywweGEwLDB4MDMsMHhhNSwweDIwLDB4Y2IsMHg0MCwweGJhLDB4MTAsMHgxZiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZWIsMHgwMCB9LAotICAxNiwgMHg5NGEwLCAwLCB7MHg3MiwweDkwLDB4MGMsMHhiNCwweDAzLDB4MjksMHgwNCwweGM5LDB4NTIsMHgzMiwweDUwLDB4MGMsMHhiNCwweDAzLDB4MGMsMHgwMCB9LAotICAxNiwgMHg5NGIwLCAwLCB7MHhmOCwweDQwLDB4MzIsMHhjMSwweDBlLDB4YjAsMHgwYiwweDUwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NGMwLCAwLCB7MHhjOCwweDA1LDB4MmQsMHg4MCwweDg5LDB4ODAsMHgyMiwweGQ5LDB4MDgsMHg5MCwweDIyLDB4MmEsMHgwMCwweDg4LDB4NTQsMHgyMiB9LAotICAxNiwgMHg5NGQwLCAwLCB7MHhjMCwweDhiLDB4ODAsMHgyMiwweDIwLDB4MTksMHhjOCwweDAwLDB4MjIsMHg0MCwweDhkLDB4ODAsMHgxYSwweDI0LDB4MTAsMHhkMiB9LAotICAxNiwgMHg5NGUwLCAwLCB7MHg0NCwweDIyLDB4ODEsMHgwZCwweDgwLDB4MDMsMHg3YywweDAwLDB4YjAsMHgwMCwweDM3LDB4YzAsMHg4OCwweGYwLDB4MDIsMHgzMiB9LAotICAxNiwgMHg5NGYwLCAwLCB7MHgxMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRlLDB4MDAsMHg4MSwweDAwLDB4YTAsMHhmMCB9LAotICAxNiwgMHg5NTAwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHg4OSwweDAyLDB4ODAsMHgwMCwweDIyLDB4YzAsMHgwYiwweDAwLDB4MjIsMHhhMCwweDAwLDB4YjAsMHgwMCB9LAotICAxNiwgMHg5NTEwLCAwLCB7MHgyMCwweDQwLDB4MDgsMHgwMCwweDAyLDB4MDQsMHgwMCwweDgyLDB4NjAsMHgyMCwweDgwLDB4MDgsMHgwMCwweDAyLDB4MGMsMHgwOCB9LAotICAxNiwgMHg5NTIwLCAwLCB7MHhiMiwweDAwLDB4MjIsMHhjMCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NTMwLCAwLCB7MHgyMCwweDAxLDB4MDMsMHgxMCwweDhlLDB4OTAsMHgyMywweDI0LDB4MDgsMHg2YiwweDAyLDB4MTYsMHg2MCwweDhmLDB4ODAsMHgyMSB9LAotICAxNiwgMHg5NTQwLCAwLCB7MHgyOCwweDBiLDB4ZjksMHgwNiwweDFlLDB4NDAsMHg4ZiwweDgwLDB4MjMsMHhhNCwweDQ5LDB4NzksMHgwMiwweDNhLDB4NDAsMHg5ZCB9LAotICAxNiwgMHg5NTUwLCAwLCB7MHg5MCwweDIzLDB4NjQsMHgwOSwweGY4LDB4MDIsMHg1ZSwweDQwLDB4YmUsMHg5MCwweDI0LDB4ZTQsMHgyOCwweDc5LDB4MDIsMHgwOCB9LAotICAxNiwgMHg5NTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4NDIsMHhjMCwweDA5LDB4MzAsMHgwMCB9LAotICAxNiwgMHg5NTcwLCAwLCB7MHgyOCwweDAyLDB4MDMsMHg4NCwweDAwLDB4OGEsMHgyMCwweDMwLDB4YzQsMHg4YiwweDExLDB4MDMsMHg4NCwweDUwLDB4YjMsMHgwMCB9LAotICAxNiwgMHg5NTgwLCAwLCB7MHgyMCwweGMwLDB4MGMsMHhhNCwweDIyLDB4MDQsMHgwMCwweGNiLDB4NDAsMHgzMCwweGM1LDB4MGMsMHgzMCwweDAzLDB4MGUsMHg0MCB9LAotICAxNiwgMHg5NTkwLCAwLCB7MHhmMywweDEwLDB4MzAsMHhjNCwweDBjLDB4YjAsMHgwMywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NWEwLCAwLCB7MHg0MCwweDFkLDB4YjAsMHgwNCwweGZiLDB4MDQsMHgzZCwweGMwLDB4MGYsMHhmMiwweDQzLDB4ZjgsMHgwNCwweGZkLDB4MDEsMHgzZiB9LAotICAxNiwgMHg5NWIwLCAwLCB7MHgwYywweDBmLDB4NjEsMHgwMywweGY4LDB4NDgsMHhmNCwweDAwLDB4M2QsMHgwMSwweDBmLDB4ZDAsMHgwMywweGM4LDB4MDAsMHhmYyB9LAotICAxNiwgMHg5NWMwLCAwLCB7MHgwNCwweGJkLDB4MDQsMHgwYiwweDQ4LDB4MDMsMHhmYywweDE4LDB4ZmYsMHgxNCwweDNmLDB4ZDUsMHgwZCwweGYwLDB4MDMsMHg5MCB9LAotICAxNiwgMHg5NWQwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGUwLDB4MDAsMHhmOSwweDAxLDB4MzIsMHhjMCB9LAotICAxNiwgMHg5NWUwLCAwLCB7MHg4ZSwweDkwLDB4MDMsMHgyOCwweDAyLDB4ZDEsMHgwMCwweDMyLDB4YzAsMHgwZCwweGE4LDB4MGIsMHgwOCwweDAwLDB4ZTgsMHgwMCB9LAotICAxNiwgMHg5NWYwLCAwLCB7MHgyZSwweDQwLDB4MGMsMHg5OCwweDBiLDB4MmUsMHgwMiwweGNhLDB4MDAsMHhiMiwweGEwLDB4NmMsMHg4MCwweDIzLDB4MmQsMHg4MCB9LAotICAxNiwgMHg5NjAwLCAwLCB7MHhjYSwweDgwLDB4MzIsMHhkMCwweDBjLDB4YmEsMHgwMywweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NjEwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI2LDB4MDAsMHhhMywweDAwLDB4MDgsMHg2MCwweDAyLDB4MDQsMHgwMCwweDg2LDB4MDQsMHgyOSB9LAotICAxNiwgMHg5NjIwLCAwLCB7MHgwMCwweDA4LDB4NTAsMHg0MiwweDE0LDB4MDQsMHhhNywweDAwLDB4MGQsMHg4MCwweDRhLDB4NjAsMHgwMiwweDAwLDB4MDAsMHg4MSB9LAotICAxNiwgMHg5NjMwLCAwLCB7MHgwMCwweDIxLDB4NDAsMHgwOCwweDcwLDB4MDIsMHg5ZCwweDQyLDB4ODYsMHgwMSwweDIwLDB4YzAsMHgwOCwweDMyLDB4ODIsMHgxMiB9LAotICAxNiwgMHg5NjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDkyLDB4MDAsMHhiYywweDgwLDB4NjMsMHgyMCB9LAotICAxNiwgMHg5NjUwLCAwLCB7MHg4MiwweDA4LDB4MDIsMHg1MiwweDAwLDB4ODQsMHhjMiwweDIzLDB4MjAsMHg4OCwweDBjLDB4MDIsMHgzMywweDAwLDB4ODQsMHg4MCB9LAotICAxNiwgMHg5NjYwLCAwLCB7MHgyZiwweDIxLDB4ODksMHg0YywweDAyLDB4MTIsMHgxNCwweDk0LDB4YzUsMHg2NCwweDIxLDB4MDgsMHg0YywweDAyLDB4MGUsMHg4MCB9LAotICAxNiwgMHg5NjcwLCAwLCB7MHg5NywweDgyLDB4YTEsMHhlYywweDA4LDB4NzksMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NjgwLCAwLCB7MHg0OCwweDE0LDB4Y2QsMHg0NCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NGQsMHg4MCwweDAzLDB4ODgsMHgyOCB9LAotICAxNiwgMHg5NjkwLCAwLCB7MHhjMCwweDA4LDB4M2MsMHgwNiwweDBmLDB4MDAsMHhhMywweDQzLDB4MmMsMHhjMiwweDFiLDB4MzgsMHgwMiwweDBmLDB4MDAsMHg5YiB9LAotICAxNiwgMHg5NmEwLCAwLCB7MHg4OCwweDY0LDB4ZDAsMHgwOCwweGI4LDB4MDIsMHg4YywweDEwLDB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MGEsMHgxMiB9LAotICAxNiwgMHg5NmIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGFhLDB4MDAsMHhmYSwweDA1LDB4MzIsMHg4MCB9LAotICAxNiwgMHg5NmMwLCAwLCB7MHg4ZSwweGEwLDB4MGIsMHg2OSwweDAwLDB4Y2EsMHg0MCwweDMyLDB4YTAsMHgzYywweGE4LDB4MDMsMHgyYSwweDAwLDB4ZWEsMHgyNiB9LAotICAxNiwgMHg5NmQwLCAwLCB7MHgzZSwweGIwLDB4MGQsMHhhMSwweDYzLDB4MjgsMHgyMCwweGNhLDB4NDAsMHgzNiwweGEwLDB4MGMsMHhlMCwweDEzLDB4MjgsMHgwOSB9LAotICAxNiwgMHg5NmUwLCAwLCB7MHhkZSwweDAwLDB4MzIsMHg4MCwweDJjLDB4YTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NmYwLCAwLCB7MHg0OCwweDAwLDB4ZjAsMHgyMCwweGY0LDB4MDAsMHgzZiwweDAwLDB4MGYsMHg0MCwweDIzLDB4YjAsMHgwMCwweGVjLDB4MDAsMHgzZiB9LAotICAxNiwgMHg5NzAwLCAwLCB7MHgwNiwweDFlLDB4YzIsMHgxMywweGYwLDB4ODgsMHhmYywweDIwLDB4M2YsMHgwNCwweDhlLDB4YzAsMHgwMywweGYwLDB4ODAsMHhlYyB9LAotICAxNiwgMHg5NzEwLCAwLCB7MHg0MCwweDNiLDB4MGMsMHgwZiwweGMwLDB4YTMsMHhlMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHg0ZiwweDgwLDB4MDMsMHhkMiB9LAotICAxNiwgMHg5NzIwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCB9LAotICAxNiwgMHg5NzMwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4YzksMHg4MCwweDMyLDB4NDAsMHgwZiwweDkwLDB4NTMsMHhlNCwweDEwLDB4YzksMHgwMCB9LAotICAxNiwgMHg5NzQwLCAwLCB7MHgzMiwweDQwLDB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDQwLDB4OGYsMHg5MCwweDAzLDB4MjQsMHgxMCB9LAotICAxNiwgMHg5NzUwLCAwLCB7MHhjOSwweDAxLDB4M2MsMHg0MCwweDBjLDB4OTAsMHgwMywweGMyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5NzYwLCAwLCB7MHg4MCwweDA0LDB4NDcsMHg0NCwweDg5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjUsMHgwYSwweDgxLDB4MTAsMHgyMiB9LAotICAxNiwgMHg5NzcwLCAwLCB7MHg0MCwweDQ4LDB4OTAsMHgwMywweGM0LDB4MDAsMHg4OSwweDAwLDB4NzYsMHg0MCwweDI4LDB4OTAsMHgwMiwweGU0LDB4MTAsMHhiOSB9LAotICAxNiwgMHg5NzgwLCAwLCB7MHg0MCwweGIyLDB4NDAsMHgwYiwweDkwLDB4MDMsMHg2NCwweDAwLDB4ODksMHgwMCwweDJlLDB4NDEsMHgwOCwweDkwLDB4NDIsMHhlMCB9LAotICAxNiwgMHg5NzkwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDIsMHhiZCwweDAwLDB4MjMsMHg0OCB9LAotICAxNiwgMHg5N2EwLCAwLCB7MHgwOCwweGQwLDB4MDYsMHgxZCwweDA0LDB4OGQsMHgwMCwweDI5LDB4YzAsMHg0YSwweGQwLDB4MjIsMHhmNCwweDAwLDB4ODUsMHgwMCB9LAotICAxNiwgMHg5N2IwLCAwLCB7MHg2MSwweDQwLDB4MTgsMHhkMCwweDEyLDB4ZmMsMHgwMCwweGJkLDB4NDAsMHhhMywweDQwLDB4NGIsMHhmMCwweDAyLDB4MDQsMHgwMSB9LAotICAxNiwgMHg5N2MwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5N2QwLCAwLCB7MHgwOCwweDA0LDB4MzYsMHg4MCwweDg1LDB4MjAsMHhhMywweDQ4LDB4MDgsMHg1MiwweDBhLDB4MTQsMHg4MSwweDg1LDB4MjAsMHgyOSB9LAotICAxNiwgMHg5N2UwLCAwLCB7MHg0OCwweDA4LDB4NTIsMHgwMiwweGI0LDB4ODAsMHg4NSwweDIwLDB4MjUsMHg0OCwweDg4LDB4NTIsMHgwMiwweGQ0LDB4ODAsMHhiNSB9LAotICAxNiwgMHg5N2YwLCAwLCB7MHgyMCwweDIxLDB4NDgsMHgwYiwweDUyLDB4MDIsMHg0NCwweGEyLDB4ODEsMHgwMCwweDJjLDB4NGEsMHgwOCwweDEyLDB4ODIsMHhjMiB9LAotICAxNiwgMHg5ODAwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhmOCwweDUxLDB4MjIsMHgwMCB9LAotICAxNiwgMHg5ODEwLCAwLCB7MHgyYywweDg1LDB4MDIsMHgyMSwweDQ4LDB4YzgsMHgwMCwweGJhLDB4MTQsMHgwZiwweDg1LDB4MTIsMHhlMSwweDQyLDB4YzgsMHg1MCB9LAotICAxNiwgMHg5ODIwLCAwLCB7MHgyMiwweDAwLDB4MGMsMHgwMCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4NTAsMHgzMiwweDAwLDB4MDcsMHg0NSwweDAzLDB4MjAsMHg4MCB9LAotICAxNiwgMHg5ODMwLCAwLCB7MHhjMCwweDAxLDB4M2UsMHgwOCwweDJjLDB4ODIsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ODQwLCAwLCB7MHg5OCwweDBkLDB4ZTQsMHg0MCwweGYxLDB4MTAsMHgzZSwweDQ0LDB4MDcsMHg5MSwweDQzLDB4ZTQsMHg1OCwweGY5LDB4MTEsMHgzNCB9LAotICAxNiwgMHg5ODUwLCAwLCB7MHg0NCwweDRmLDB4OTEsMHgwMiwweGU0LDB4NTAsMHhmOSwweDEwLDB4M2MsMHg0ZiwweDBmLDB4OTMsMHg4MywweGU0LDB4ZjAsMHhmOSB9LAotICAxNiwgMHg5ODYwLCAwLCB7MHgxMSwweDNhLDB4NGYsMHgwZiwweDkxLDB4MDMsMHhlNCwweGEwLDB4ZmQsMHgyOCwweDNlLDB4NGEsMHgwZiwweDkyLDB4ODMsMHhlNiB9LAotICAxNiwgMHg5ODcwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4YTAsMHhjZCwweGEwLDB4YjMsMHg2OCB9LAotICAxNiwgMHg5ODgwLCAwLCB7MHg4YywweDlhLDB4MDMsMHgzNiwweDgwLDB4YzUsMHhhMCwweDIyLDB4NjAsMHgwYywweDlhLDB4MjMsMHgyNiwweDA0LDB4ZjksMHhhMCB9LAotICAxNiwgMHg5ODkwLCAwLCB7MHgzMiwweDY2LDB4MGMsMHg5YSwweDgzLDB4MDYsMHgyMCwweGM1LDB4YTAsMHgyMiwweDYwLDB4MGMsMHg5YiwweDAzLDB4MjYsMHg0OCB9LAotICAxNiwgMHg5OGEwLCAwLCB7MHhjOSwweDAwLDB4M2UsMHg3OCwweDBjLDB4OWEsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OGIwLCAwLCB7MHgzOCwweDAwLDB4ZTEsMHgwMCwweDg4LDB4NDQsMHgyMiwweDk1LDB4MDgsMHg4NSwweDEyLDB4YTEsMHg0MiwweDg4LDB4NDAsMHgwMiB9LAotICAxNiwgMHg5OGMwLCAwLCB7MHg5MCwweDA4LDB4ODQsMHgwMiwweDIzLDB4YTAsMHhiYSwweDQwLDB4MjIsMHhhMCwweDA4LDB4OGUsMHg5MiwweGEzLDB4YTAsMHhhOCB9LAotICAxNiwgMHg5OGQwLCAwLCB7MHg0MCwweDJhLDB4MTAsMHgwOCwweGFlLDB4MDIsMHgyMywweDQwLDB4ODgsMHgwMCwweDJlLDB4MzgsMHgwOCwweDg0LDB4MTIsMHgwZSB9LAotICAxNiwgMHg5OGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxNSwweGM0LDB4MDAsMHg4YiwweDEyLDB4MjIsMHg0MCB9LAotICAxNiwgMHg5OGYwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHg0NCwweDAwLDB4ODEsMHg0MCwweGEwLDB4NTAsMHgwOCwweDExLDB4MGEsMHgwNSwweDAwLDB4YjEsMHgxMCB9LAotICAxNiwgMHg5OTAwLCAwLCB7MHhhMCwweDQ4LDB4MDgsMHg5MCwweDAyLDB4MDQsMHgwMCwweDgxLDB4NDAsMHgyMCwweDUwLDB4MjgsMHgxMSwweDAyLDB4NDQsMHg4MiB9LAotICAxNiwgMHg5OTEwLCAwLCB7MHg4MSwweDAwLDB4MmMsMHg1MCwweDA4LDB4MTEsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OTIwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMiwweDg5LDB4NDAsMHgyMiwweDQwLDB4MDgsMHg5NCwweDEyLDB4YTUsMHgwMCwweDg5LDB4MjgsMHgyMiB9LAotICAxNiwgMHg5OTMwLCAwLCB7MHg0OSwweDA4LDB4OTQsMHgwMiwweDI0LDB4NDgsMHhiOSwweDE0LDB4MjIsMHg0MCwweDA4LDB4OTQsMHgwMiwweGE0LDB4NDAsMHhhMSB9LAotICAxNiwgMHg5OTQwLCAwLCB7MHg1MCwweDJhLDB4NTAsMHgwOCwweDkxLDB4NDIsMHg2NCwweDAwLDB4ODksMHg0MCwweDJlLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNiB9LAotICAxNiwgMHg5OTUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhjOSwweDAwLDB4MzAsMHg3MCB9LAotICAxNiwgMHg5OTYwLCAwLCB7MHgyYywweDEwLDB4MGIsMHg2NiwweDAwLDB4YzksMHg0MCwweDMyLDB4NTAsMHgwYywweDkwLDB4MDMsMHgyNiwweDIwLDB4ZjksMHhjMCB9LAotICAxNiwgMHg5OTcwLCAwLCB7MHgzMiwweDcwLDB4MGMsMHg5MCwweDAzLDB4MjYsMHgyMCwweGM5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5YywweDAzLDB4NjQsMHgwMCB9LAotICAxNiwgMHg5OTgwLCAwLCB7MHhjOSwweDQxLDB4M2UsMHg0MCwweDJjLDB4OTAsMHgwYiwweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5OTkwLCAwLCB7MHgyOCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDQsMHgzZSwweDQ4LDB4MGYsMHg5MCwweDAzLDB4ZTQsMHg4OCwweGY5LDB4MDAsMHgzNCB9LAotICAxNiwgMHg5OWEwLCAwLCB7MHg0MSwweDJmLDB4OWMsMHgwMywweGU0LDB4MTAsMHhmOSwweDAwLDB4M2UsMHg0NCwweDJmLDB4OTksMHgwMywweGU0LDB4MTAsMHhmOSB9LAotICAxNiwgMHg5OWIwLCAwLCB7MHgwMCwweDNlLDB4NTAsMHgwZiwweDEwLDB4NGIsMHhhNCwweDEwLDB4ZjksMHgyMCwweDNjLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg0YSB9LAotICAxNiwgMHg5OWMwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgxMCB9LAotICAxNiwgMHg5OWQwLCAwLCB7MHgyYywweDgwLDB4MDMsMHgyMCwweDAyLDB4YzAsMHg0MCwweDMyLDB4MDAsMHgxYywweDA0LDB4MGYsMHgyMSwweDAwLDB4YzAsMHgwNCB9LAotICAxNiwgMHg5OWUwLCAwLCB7MHgzOCwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjEsMHgwOCwweGM4LDB4NjAsMHgzMCwweDEwLDB4MGYsMHg4MCwweDAyLDB4MjAsMHgwMCB9LAotICAxNiwgMHg5OWYwLCAwLCB7MHhmOCwweDAwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweGNhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YTAwLCAwLCB7MHgyOCwweDA1LDB4MWEsMHgyMCwweDgyLDB4MDQsMHgyZiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MzgsMHgwMCwweDhlLDB4ODAsMHgyMiB9LAotICAxNiwgMHg5YTEwLCAwLCB7MHg4MCwweDA4LDB4ZTAsMHgwMiwweDI4LDB4MDAsMHg4YSwweDAwLDB4MjIsMHg4MSwweDBiLDB4MjAsMHgwMiwweDI4LDB4MDAsMHhkZSB9LAotICAxNiwgMHg5YTIwLCAwLCB7MHhlNCwweDM2LDB4ODAsMHgwYiwweGEwLDB4NDIsMHgyOCwweDAwLDB4YmEsMHgwNCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHhjYSB9LAotICAxNiwgMHg5YTMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDAxLDB4MmMsMHg4MCB9LAotICAxNiwgMHg5YTQwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHgyZSwweDYwLDB4ODIsMHg5MCwweGEwLDB4YzAsMHg0OCwweDMwLDB4MDIsMHgwYywweDAyLDB4ODMsMHgwMCB9LAotICAxNiwgMHg5YTUwLCAwLCB7MHgyOCwweGMwLDB4MGIsMHgzMCwweDBhLDB4MmMsMHgwMCwweDgzLDB4YzIsMHgyMCwweGMwLDB4MGIsMHgzMCwweDJhLDB4MmMsMHgwMCB9LAotICAxNiwgMHg5YTYwLCAwLCB7MHhiMywweDAwLDB4YTAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YTcwLCAwLCB7MHhhMCwweDAxLDB4M2MsMHgwMCwweDg3LDB4MDEsMHgyZCwweGMyLDB4MDgsMHhmMywweDEyLDB4M2MsMHgwMCwweDhmLDB4MDEsMHgyMSB9LAotICAxNiwgMHg5YTgwLCAwLCB7MHhjOCwweDY4LDB4NzIsMHgyMiwweDFlLDB4MDQsMHg4NywweDIwLDB4MjEsMHhjNCwweDBiLDB4NzAsMHgwMiwweDNjLDB4ODQsMHg5ZiB9LAotICAxNiwgMHg5YTkwLCAwLCB7MHgwMCwweDI1LDB4YzQsMHg0YiwweDcwLDB4MDIsMHgxYywweDA0LDB4YjcsMHg4MSwweDIxLDB4YzgsMHgwOCwweDcyLDB4MDIsMHhlOCB9LAotICAxNiwgMHg5YWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwMCwweDFlLDB4MDAsMHhjNywweDgxLDB4M2MsMHhhMCB9LAotICAxNiwgMHg5YWIwLCAwLCB7MHg0YywweDdhLDB4MGIsMHgxYSwweDAwLDB4YzYsMHg4MCwweDMwLDB4ZTAsMHgwOCwweGY4LDB4ODIsMHgwZSwweDQwLDB4Y2YsMHhmMCB9LAotICAxNiwgMHg5YWMwLCAwLCB7MHgzOSwweGU4LDB4MGYsMHgzYSwweDAzLDB4MWUsMHgyMCwweGM3LDB4ODAsMHgzMSwweGUzLDB4MGYsMHgzOCwweDIzLDB4MWYsMHgwOCB9LAotICAxNiwgMHg5YWQwLCAwLCB7MHhmZiwweGMwLDB4MzMsMHhmMiwweDBjLDB4N2UsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YWUwLCAwLCB7MHgwOCwweDE1LDB4ODgsMHgwYSwweDdiLDB4MDAsMHgzZSwweGMxLDB4MGIsMHgzNCwweDIzLDB4YzgsMHgxMCwweGZiLDB4MDIsMHgzZSB9LAotICAxNiwgMHg5YWYwLCAwLCB7MHhjYSwweDBmLDB4YjcsMHg0MywweGVjLDB4ODAsMHhmYiwweDAwLDB4MmUsMHhjMiwweDBiLDB4YjQsMHg4MywweGVkLDB4ZDAsMHhmYSB9LAotICAxNiwgMHg5YjAwLCAwLCB7MHgwMCwweDNlLDB4ZDksMHgwZiwweGIzLDB4ODMsMHhlYywweDgwLDB4YmIsMHgyMCwweDNlLDB4ZDgsMHgyZiwweGI0LDB4MDMsMHhjMiB9LAotICAxNiwgMHg5YjEwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGZlLDB4MDAsMHhmNSwweDkxLDB4MzEsMHhhMCB9LAotICAxNiwgMHg5YjIwLCAwLCB7MHgwYywweGZjLDB4MDMsMHhmZSwweDAwLDB4YzQsMHg4MSwweDMxLDB4ZWUsMHg4ZCwweGY4LDB4MGEsMHgzZSwweDMwLDB4Y2YsMHg4NCB9LAotICAxNiwgMHg5YjMwLCAwLCB7MHgzMywweGUwLDB4MmMsMHhmOCwweDgzLDB4ZmUsMHgxMCwweGZlLDB4ODAsMHgzMywweGUwLDB4MGMsMHhmOSwweDE5LDB4M2YsMHg0OCB9LAotICAxNiwgMHg5YjQwLCAwLCB7MHhjZiwweGMwLDB4MzMsMHhlMCwweDA0LDB4ZmMsMHgwMywweGMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YjUwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwOCwweGI3LDB4YTEsMHgyMSwweGM4LDB4MDgsMHg3MSwweDAyLDB4ZjAsMHhhMCwweDg1LDB4MjAsMHgyMSB9LAotICAxNiwgMHg5YjYwLCAwLCB7MHhjZSwweDA4LDB4NzAsMHgwMiwweDNjLDB4ODAsMHg4ZiwweDAwLDB4MmIsMHhjNSwweDA4LDB4NzEsMHgwMiwweGRjLDB4MTAsMHhiNCB9LAotICAxNiwgMHg5YjcwLCAwLCB7MHgwMCwweDIxLDB4YzEsMHgwYSwweGYzLDB4ODIsMHgwYywweDAwLDB4ODcsMHgwMSwweDI5LDB4YzAsMHgwOCwweDcxLDB4MDIsMHg2YSB9LAotICAxNiwgMHg5YjgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDlkLDB4MDAsMHhiZCwweDIxLDB4MjcsMHg4MiB9LAotICAxNiwgMHg5YjkwLCAwLCB7MHgwMCwweDcwLDB4MDIsMHhmYywweDA0LDB4OGMsMHgwMCwweGE3LDB4Y2MsMHhhOCwweDcwLDB4MDIsMHgzYywweDA4LDB4YWYsMHgwMCB9LAotICAxNiwgMHg5YmEwLCAwLCB7MHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MDAsMHgyMSwweGM0LDB4MDgsMHg3MCwweDE2LDB4MWMsMHgwYSB9LAotICAxNiwgMHg5YmIwLCAwLCB7MHg4ZiwweDAwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YmMwLCAwLCB7MHgyMCwweDEwLDB4YzgsMHgwMCwweGJiLDB4NDQsMHgyNCwweGUyLDB4MDgsMHhiMSwweDAyLDB4YzIsMHg4MCwweDAxLDB4ODAsMHgyNCB9LAotICAxNiwgMHg5YmQwLCAwLCB7MHhkMCwweDg4LDB4MzAsMHgwMiwweDBmLDB4NTIsMHg4MywweDkxLDB4MjgsMHhlNCwweDg4LDB4M2QsMHgwMiwweGNlLDB4ZDAsMHhiMCB9LAotICAxNiwgMHg5YmUwLCAwLCB7MHhiMiwweGEyLDB4YzAsMHgwYSwweDM0LDB4MTIsMHgwYywweDAyLDB4ODMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg0OCB9LAotICAxNiwgMHg5YmYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDAsMHhmYiwweDAxLDB4ZTQsMHg0MCB9LAotICAxNiwgMHg5YzAwLCAwLCB7MHgyYywweGYwLDB4NDMsMHhlNSwweDAwLDB4OGEsMHg4OCwweDM3LDB4ZTAsMHgwMCwweGZhLDB4MDIsMHgzZCwweDAwLDB4ZWYsMHgwMCB9LAotICAxNiwgMHg5YzEwLCAwLCB7MHgzMywweGQxLDB4MGMsMHhmNCwweDAzLDB4ZmQsMHgwMCwweGY5LDB4NDAsMHgzMywweGU4LDB4MGMsMHhmYywweDAxLDB4M2MsMHgwNCB9LAotICAxNiwgMHg5YzIwLCAwLCB7MHhjZiwweDAyLDB4MzMsMHhjMCwweDJjLDB4ZjAsMHgwMywweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5YzMwLCAwLCB7MHg4MCwweDAwLDB4ZWUsMHgwOCwweGY5LDB4MTAsMHgzYSwweGQwLDB4MGYsMHhiMCwweDkzLDB4ZWMsMHgwMCwweGZiLDB4MGIsMHgzYSB9LAotICAxNiwgMHg5YzQwLCAwLCB7MHhjMCwweDhlLDB4YjAsMHg4MywweGVjLDB4ODAsMHhmYiwweDA5LDB4N2UsMHhjOCwweDBmLDB4YjIsMHgxMywweGVjLDB4MDAsMHhmOSB9LAotICAxNiwgMHg5YzUwLCAwLCB7MHgwMCwweDNlLDB4YzIsMHg4ZiwweGIyLDB4NGIsMHhjYywweDA0LDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg2MCB9LAotICAxNiwgMHg5YzYwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHhmZiwweDA4LDB4MzMsMHhjMCB9LAotICAxNiwgMHg5YzcwLCAwLCB7MHgxYywweGYwLDB4MDMsMHg3MCwweDQwLDB4YzQsMHhjMCwweDMzLDB4YzIsMHgwZiwweGYwLDB4MDMsMHgxYywweDEwLDB4YzcsMHgwMCB9LAotICAxNiwgMHg5YzgwLCAwLCB7MHgzMSwweGMwLDB4MGMsMHg3MCwweDAzLDB4MWMsMHgwMCwweGM1LDB4NDEsMHgzMywweGMwLDB4MGMsMHhmMCwweDIzLDB4MmMsMHgwMCB9LAotICAxNiwgMHg5YzkwLCAwLCB7MHhjZiwweDAwLDB4YjMsMHhjMCwweDZjLDB4ZjAsMHgwMywweDgwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5Y2EwLCAwLCB7MHg4MSwweDA0LDB4NmEsMHgwMCwweGI5LDB4OTAsMHgzMiwweGYxLDB4MDgsMHhiMCwweDAyLDB4MGEsMHgxMCwweGQ5LDB4MDAsMHgyMiB9LAotICAxNiwgMHg5Y2IwLCAwLCB7MHhjMSwweDBiLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhjYiwweDA2LDB4MjIsMHhjMCwweDg4LDB4YjAsMHgxMiwweDJjLDB4MDAsMHg4OCB9LAotICAxNiwgMHg5Y2MwLCAwLCB7MHg4MCwweDIyLDB4YzEsMHgwZCwweGIwLDB4MDIsMHgyYywweDAwLDB4ODMsMHgwMCwweDIyLDB4YzEsMHgwOCwweGIwLDB4NDYsMHhlMCB9LAotICAxNiwgMHg5Y2QwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDJlLDB4MDAsMHhiOSwweDAwLDB4MjIsMHhmMCB9LAotICAxNiwgMHg5Y2UwLCAwLCB7MHgwOCwweGIwLDB4MTIsMHg2NCwweDAwLDB4OGEsMHgwMCwweDIyLDB4YzAsMHgwYiwweDMwLDB4NDIsMHgyYywweDAwLDB4OGIsMHgwMCB9LAotICAxNiwgMHg5Y2YwLCAwLCB7MHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweDhhLDB4MDAsMHgyMiwweGMwLDB4ODgsMHgzMCwweDBhLDB4MmMsMHgwMCB9LAotICAxNiwgMHg5ZDAwLCAwLCB7MHg4YiwweDAwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZDEwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwNCwweGIxLDB4MDIsMHhlNCwweGMxLDB4MDgsMHhiMCwweDIyLDB4MjAsMHgwMiwweDkzLDB4MDAsMHgyMCB9LAotICAxNiwgMHg5ZDIwLCAwLCB7MHhjMCwweDBiLDB4MzAsMHgxMiwweDBjLDB4MDIsMHg4MywweDAyLDB4YTAsMHhjMCwweDI4LDB4MzAsMHgwZSwweDBjLDB4MDIsMHg4MCB9LAotICAxNiwgMHg5ZDMwLCAwLCB7MHgwMCwweGEwLDB4YzAsMHg0OSwweDMwLDB4MGEsMHgwYywweDAyLDB4OGIsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiB9LAotICAxNiwgMHg5ZDQwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhmOSwweDI0LDB4MzIsMHhjMCB9LAotICAxNiwgMHg5ZDUwLCAwLCB7MHgwOCwweGYwLDB4MDMsMHg2NCwweDAwLDB4YzgsMHgwMCwweGIzLDB4YzAsMHgxZiwweGYwLDB4MGIsMHgzYywweDAwLDB4OGYsMHgwMCB9LAotICAxNiwgMHg5ZDYwLCAwLCB7MHgzMywweGMwLDB4NGMsMHhmMCwweDQzLDB4M2MsMHgwOCwweGMzLDB4MDAsMHgzMSwweGMwLDB4MGMsMHhmMCwweDAzLDB4M2QsMHg0OCB9LAotICAxNiwgMHg5ZDcwLCAwLCB7MHhjZiwweDAwLDB4MzEsMHhjMCwweDBjLDB4ZjAsMHgwMywweDgwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZDgwLCAwLCB7MHhhMCwweDFkLDB4ZjAsMHgwNCwweGY5LDB4NDEsMHgzYiwweGMwLDB4NGYsMHhmMCwweDAzLDB4ZjAsMHgxMSwweGZkLDB4MDAsMHgzZiB9LAotICAxNiwgMHg5ZDkwLCAwLCB7MHhjMCwweDg3LDB4NzAsMHgyNywweGZjLDB4MDAsMHhlZiwweDA2LDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMiwweGZjLDB4MDgsMHhmYyB9LAotICAxNiwgMHg5ZGEwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHg0NywweGYwLDB4NDMsMHhmYywweDAwLDB4NzcsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHg5ZGIwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGQyLDB4MDAsMHhjNywweDAxLDB4MzcsMHgwYyB9LAotICAxNiwgMHg5ZGMwLCAwLCB7MHgwZiwweGU4LDB4MjMsMHgxMCwweDRhLDB4YzQsMHhjMCwweDMxLDB4MzAsMHgwYywweGM5LDB4MDMsMHgzNCwweDQ2LDB4Y2YsMHgxMCB9LAotICAxNiwgMHg5ZGQwLCAwLCB7MHgzMywweGQwLDB4MGMsMHhmNCwweDAzLDB4M2MsMHg1OCwweGNmLDB4MDAsMHgzMywweGMwLDB4MmQsMHhmMSwweDAzLDB4M2UsMHgwMiB9LAotICAxNiwgMHg5ZGUwLCAwLCB7MHhjZiwweDIxLDB4M2YsMHhlNCwweDBmLDB4ZjIsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZGYwLCAwLCB7MHg4MCwweDEwLDB4ZTQsMHg4NCwweDBiLDB4NDAsMHgyMiwweDRjLDB4MGIsMHhhOCwweDAyLDB4MmMsMHhjMCwweDhiLDB4MjAsMHgyMiB9LAotICAxNiwgMHg5ZTAwLCAwLCB7MHhjOCwweDRhLDB4MzIsMHgwMiwweDI0LDB4ODAsMHg4MywweDIwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDIwLDB4MDAsMHg4YiB9LAotICAxNiwgMHg5ZTEwLCAwLCB7MHgyMSwweDMyLDB4Y2EsMHg0OCwweDMyLDB4MDIsMHgyYywweDMwLDB4OGYsMHg5MCwweDJlLDB4ODgsMHgwYiwweGJkLDB4MTIsMHgyMCB9LAotICAxNiwgMHg5ZTIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNlLDB4MjAsMHhhMywweDQwLDB4ZTAsMHg0OCB9LAotICAxNiwgMHg5ZTMwLCAwLCB7MHg0YiwweDIwLDB4MjIsMHgwYywweDAyLDB4ODIsMHgwMCwweDJhLDB4MDAsMHgwOCwweDIwLDB4MDIsMHgwNCwweDgwLDB4ODAsMHgyMCB9LAotICAxNiwgMHg5ZTQwLCAwLCB7MHgyMCwweGM4LDB4MDgsMHgwMiwweDAyLDB4MGMsMHgwMCwweDgwLDB4MGMsMHg2MCwweDAwLDB4MDgsMHgyMCwweDEyLDB4MmMsMHg4OCB9LAotICAxNiwgMHg5ZTUwLCAwLCB7MHg4MywweDAwLDB4MmMsMHhlOCwweDBiLDB4MzAsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZTYwLCAwLCB7MHhjMCwweDE1LDB4YWUsMHgwMCwweGFiLDB4MDEsMHhhMiwweDYwLDB4MGIsMHhhMCwweDAyLDB4MjAsMHgwMSwweDgxLDB4MDAsMHgyMiB9LAotICAxNiwgMHg5ZTcwLCAwLCB7MHhjMCwweDBhLDB4OTAsMHgxMiwweDA0LDB4MjAsMHg4YSwweDA4LDB4MjIsMHhjMSwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHg4OCB9LAotICAxNiwgMHg5ZTgwLCAwLCB7MHgwMCwweDI0LDB4NDQsMHgwOCwweGEyLDB4MDIsMHhhYywweDAwLDB4OGIsMHgwNCwweDJlLDB4ODgsMHgwMywweGIwLDB4MDIsMHg3MCB9LAotICAxNiwgMHg5ZTkwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhlYSwweDkwLDB4MzIsMHgyOCB9LAotICAxNiwgMHg5ZWEwLCAwLCB7MHgwZiwweGI2LDB4MDMsMHgyMCwweDA4LDB4YzksMHgwNCwweDNhLDB4YzAsMHg0YywweDkwLDB4MjIsMHgyNCwweDAwLDB4Y2IsMHg0MCB9LAotICAxNiwgMHg5ZWIwLCAwLCB7MHgzMiwweGE4LDB4MGMsMHhiMiwweDAzLDB4MmMsMHgwMCwweGNiLDB4ODAsMHhiMiwweGUwLDB4MGMsMHhiMCwweDBiLDB4MDQsMHgwMCB9LAotICAxNiwgMHg5ZWMwLCAwLCB7MHhjYiwweDAwLDB4M2UsMHhjMCwweDRmLDB4YjAsMHgwYiwweDUwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZWQwLCAwLCB7MHhlMCwweDAxLDB4YmMsMHgwMCwweGRmLDB4ODAsMHgzYiwweDgxLDB4MGYsMHhmMCwweGMzLDB4ZmMsMHgwMCwweGJlLDB4MDEsMHgxZiB9LAotICAxNiwgMHg5ZWUwLCAwLCB7MHgwMCwweDBmLDB4ZTAsMHgyMywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhiMCwweDRmLDB4ZjAsMHg0MywweGQ0LDB4MDIsMHhmZiB9LAotICAxNiwgMHg5ZWYwLCAwLCB7MHg5MSwweDNhLDB4ZTAsMHg0ZSwweGYwLDB4MDMsMHg3YywweDBjLDB4ZmYsMHgwMCwweDJmLDB4ODAsMHgwZiwweDMwLDB4MDMsMHhiOCB9LAotICAxNiwgMHg5ZjAwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGFjLDB4MDEsMHhjYSwweDAwLDB4NzIsMHg1MCB9LAotICAxNiwgMHg5ZjEwLCAwLCB7MHgwNCwweGI0LDB4MDMsMHgyYywweDgyLDB4Y2IsMHgwMCwweDMyLDB4ZTAsMHgwYywweGI4LDB4MDMsMHgyNywweDA0LDB4YzgsMHhjOCB9LAotICAxNiwgMHg5ZjIwLCAwLCB7MHhiMiwweGEyLDB4MGMsMHg4OCwweDAzLDB4MmMsMHgwMCwweGMxLDB4MDAsMHgzZSwweDAwLDB4MmMsMHgzMCwweDFiLDB4MmMsMHgwNCB9LAotICAxNiwgMHg5ZjMwLCAwLCB7MHhmYiwweDEwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDEwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZjQwLCAwLCB7MHhjOCwweDA1LDB4MmMsMHgwNCwweDAzLDB4NTAsMHhhMiwweGUwLDB4MDgsMHgzNCwweDQyLDB4MzMsMHgwMCwweDg4LDB4MDAsMHgyMCB9LAotICAxNiwgMHg5ZjUwLCAwLCB7MHgxMCwweDBkLDB4ODQsMHgwMywweDI1LDB4MDAsMHg4YSwweDQwLDB4MjIsMHg5MCwweDA4LDB4YTUsMHgwMiwweDJjLDB4MDAsMHg4OSB9LAotICAxNiwgMHg5ZjYwLCAwLCB7MHhhNCwweDNhLDB4NDAsMHgwOCwweGIwLDB4MDIsMHgyYywweDAwLDB4YmYsMHg4NCwweDJlLDB4ODAsMHgwYiwweGYwLDB4NTIsMHgzMiB9LAotICAxNiwgMHg5ZjcwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDZjLDB4ODAsMHg4MSwweDgwLDB4MjQsMHg4OCB9LAotICAxNiwgMHg5ZjgwLCAwLCB7MHg4OSwweDNjLDB4MjYsMHgyMSwweDAwLDB4OTAsMHgwMCwweDIwLDB4MDIsMHgwOCwweDgwLDB4ODIsMHgwMCwweDIwLDB4OWIsMHgwMCB9LAotICAxNiwgMHg5ZjkwLCAwLCB7MHgyMiwweDQwLDB4ODgsMHhiMCwweDEyLDB4MGMsMHgwOCwweDgzLDB4ODAsMHgyYywweGMwLDB4MDgsMHgxMCwweDAyLDB4MGMsMHgwMCB9LAotICAxNiwgMHg5ZmEwLCAwLCB7MHhiMywweDgwLDB4MmMsMHg0MCwweDBiLDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHg5ZmIwLCAwLCB7MHgyMCwweDAxLDB4M2UsMHgwYSwweDg1LDB4YTAsMHhhNSwweDYwLDB4MDgsMHhmYiwweDgyLDB4M2UsMHg4NCwweDlmLDB4ODEsMHg2MyB9LAotICAxNiwgMHg5ZmMwLCAwLCB7MHhlMCwweDg5LDB4NzksMHgxMiwweDUyLDB4ODAsMHg5NywweDgyLDB4MjEsMHg2YywweDE4LDB4NzgsMHgwMiwweDEyLDB4MDAsMHg4NyB9LAotICAxNiwgMHg5ZmQwLCAwLCB7MHhhMSwweDI5LDB4ZTAsMHgwOCwweDViLDB4MDIsMHgxZSwweDAwLDB4YjcsMHhjMCwweDJkLDB4NjAsMHgwYiwweDc4LDB4MDIsMHgwOCB9LAotICAxNiwgMHg5ZmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg4MSwweDA4LDB4MjYsMHhjMiB9LAotICAxNiwgMHg5ZmYwLCAwLCB7MHgyYywweDMyLDB4MTMsMHgwZSwweGE0LDB4ZDIsMHgwMCwweGIwLDB4MDAsMHgxYywweDIxLDB4MTIsMHgyNCwweDAyLDB4ZDEsMHgyMCB9LAotICAxNiwgMHhhMDAwLCAwLCB7MHgzMCwweGM4LDB4MGMsMHgxMCwweDAzLDB4MGMsMHgwMCwweGMyLDB4MTAsMHgzYywweDgwLDB4MGMsMHgyMywweDAzLDB4MGMsMHg0MCB9LAotICAxNiwgMHhhMDEwLCAwLCB7MHhmMywweDAwLDB4M2MsMHg0OCwweDBmLDB4MzAsMHgwYiwweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMDIwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGZkLDB4MjAsMHhiYiwweDQwLDB4MDcsMHg3MiwweDAyLDB4ZjAsMHgxMCwweGVkLDB4MTAsMHgzZiB9LAotICAxNiwgMHhhMDMwLCAwLCB7MHhjNCwweDBmLDB4ZDEsMHg2MywweGI0LDB4ODAsMHhlZiwweDAwLDB4M2YsMHhjOCwweDBmLDB4ZjAsMHgwMywweGQ4LDB4MDAsMHhmZSB9LAotICAxNiwgMHhhMDQwLCAwLCB7MHgzNCwweDNmLDB4YzQsMHgwZiwweGViLDB4NDMsMHhmYywweDAwLDB4ZmYsMHgwOCwweDdmLDB4NDAsMHgwZiwweGYxLDB4ODMsMHhkMCB9LAotICAxNiwgMHhhMDUwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGVjLDB4MDAsMHhjOCwweDAwLDB4MzMsMHg4MCB9LAotICAxNiwgMHhhMDYwLCAwLCB7MHg4ZiwweDI4LDB4MDMsMHgyMCwweDAwLDB4NDksMHgwMiwweDMyLDB4YzAsMHgwZiwweDkwLDB4MDMsMHgyMCwweDAwLDB4Y2IsMHgwMCB9LAotICAxNiwgMHhhMDcwLCAwLCB7MHgzMiwweDQwLDB4NGMsMHhiMCwweDBiLDB4MmMsMHgwMCwweGNiLDB4ODAsMHgzMiwweGMwLDB4MGUsMHg5ZSwweDAzLDB4MjQsMHgwMCB9LAotICAxNiwgMHhhMDgwLCAwLCB7MHhmYiwweDIwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMDkwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDhkLDB4MDEsMHgyMSwweGMwLDB4MGIsMHg2MCwweDAyLDB4MWQsMHgwMCwweGQ2LDB4MDAsMHgyMSB9LAotICAxNiwgMHhhMGEwLCAwLCB7MHgwMCwweDBiLDB4ZTAsMHgwMiwweDAwLDB4MDAsMHg4MywweDA0LDB4MjAsMHg0MCwweDA4LDB4NzAsMHg0MiwweDM0LDB4MDIsMHg4NyB9LAotICAxNiwgMHhhMGIwLCAwLCB7MHgwMSwweDIzLDB4YzAsMHgyOCwweDUxLDB4MGEsMHgxYywweDA0LDB4YjcsMHgzMCwweDJkLDB4YzAsMHgwYiwweDcyLDB4MDMsMHg5MiB9LAotICAxNiwgMHhhMGMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhhNiwweDQwLDB4MjEsMHhhMCB9LAotICAxNiwgMHhhMGQwLCAwLCB7MHgwYiwweDY4LDB4MDIsMHgwZSwweDAwLDB4OGYsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHgxNiwweDEwLDB4YTUsMHg4MCB9LAotICAxNiwgMHhhMGUwLCAwLCB7MHgyMSwweGUwLDB4MDgsMHgxOCwweDAyLDB4MWUsMHgwMCwweDgzLDB4ODAsMHgyMSwweGEwLDB4MDgsMHg3OCwweDAyLDB4MWYsMHgwMCB9LAotICAxNiwgMHhhMGYwLCAwLCB7MHhiNywweDgwLDB4MmQsMHhlMCwweDBiLDB4MzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMTAwLCAwLCB7MHg0OCwweDE0LDB4ZWMsMHgxMiwweGExLDB4NjQsMHgyMCwweGU2LDB4MGIsMHgyMCwweDAyLDB4MDAsMHgxMCwweDkwLDB4NGEsMHgyMCB9LAotICAxNiwgMHhhMTEwLCAwLCB7MHgyMCwweDRiLDB4MDAsMHg0MiwweDA0LDB4MDAsMHg4MywweDAwLDB4MjAsMHhjMiwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAsMHg4MyB9LAotICAxNiwgMHhhMTIwLCAwLCB7MHgwNCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwZSwweDAwLDB4YjMsMHgwMCwweDJjLDB4ZTAsMHg0YiwweDMwLDB4MDIsMHg5MiB9LAotICAxNiwgMHhhMTMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4MDAsMHhlZSwweGMwLDB4MzMsMHg5MCB9LAotICAxNiwgMHhhMTQwLCAwLCB7MHgwZiwweGEwLDB4MWIsMHgwOCwweDAwLDB4Y2EsMHg0MCwweGIyLDB4ODIsMHgwZiwweGEwLDB4MGIsMHgyOCwweDAyLDB4Y2EsMHgwMCB9LAotICAxNiwgMHhhMTUwLCAwLCB7MHhiMiwweDkwLDB4YWMsMHhhMCwweDAzLDB4MjksMHgwMCwweGNhLDB4NDAsMHhiMiwweDgwLDB4OGUsMHhhNCwweDAzLDB4MmEsMHgwMCB9LAotICAxNiwgMHhhMTYwLCAwLCB7MHhmYSwweDAwLDB4M2YsMHhhOCwweDBmLDB4YTAsMHgwYiwweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMTcwLCAwLCB7MHg0OCwweDAwLDB4ZTIsMHgwMiwweDkwLDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4OCwweDAzLDB4ZjEsMHgwMCwweGZjLDB4MDIsMHgzZiB9LAotICAxNiwgMHhhMTgwLCAwLCB7MHgyMCwweDBmLDB4YzgsMHgwMywweGMxLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDhmLDB4MDAsMHgwMSwweDYwLDB4MDIsMHhmOCB9LAotICAxNiwgMHhhMTkwLCAwLCB7MHgwOCwweDNlLDB4MDAsMHgwZiwweDgwLDB4ODMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAsMHg4ZiwweDgwLDB4MTMsMHg5MiB9LAotICAxNiwgMHhhMWEwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4MDIsMHhjOSwweDAwLDB4YjIsMHg2NCB9LAotICAxNiwgMHhhMWIwLCAwLCB7MHgwZiwweDkxLDB4MDMsMHhlNCwweDA0LDB4YzksMHgwMCwweDMyLDB4NDAsMHg2YywweDkwLDB4MDMsMHgyNSwweDAyLDB4YzksMHg5MCB9LAotICAxNiwgMHhhMWMwLCAwLCB7MHhiMCwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgyMCwweGM5LDB4YTAsMHgzZSwweDQwLDB4NGMsMHg5MCwweDIzLDB4ZTQsMHgwMCB9LAotICAxNiwgMHhhMWQwLCAwLCB7MHhmMSwweDAwLDB4OTIsMHg0MCwweDBjLDB4MTAsMHgwMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMWUwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4ODAsMHhhMiwweDQwLDB4MGIsMHg5NiwweDQyLDB4ZTUsMHgwNCwweDg5LDB4MDAsMHgyMiB9LAotICAxNiwgMHhhMWYwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDgsMHgwOSwweDQxLDB4MjIsMHg0MCwweDQ4LDB4OTAsMHg0MiwweDI0LDB4MDQsMHg4OSB9LAotICAxNiwgMHhhMjAwLCAwLCB7MHg4MCwweDI2LDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDk0LDB4MDIsMHgyMCB9LAotICAxNiwgMHhhMjEwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI1LDB4MDAsMHg4OSwweDIwLDB4MjIsMHg0MCB9LAotICAxNiwgMHhhMjIwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHhmNCwweDg0LDB4ODUsMHgwMCwweDIxLDB4NDAsMHg0OCwweDUwLDB4MDIsMHgyNCwweDIwLDB4OGQsMHgwOCB9LAotICAxNiwgMHhhMjMwLCAwLCB7MHgyMywweDQwLDB4MDgsMHhkMCwweDAyLDB4OTQsMHgwMCwweDhkLDB4MDAsMHgyOSwweDQwLDB4MGEsMHhkMCwweDAyLDB4YTQsMHgwOCB9LAotICAxNiwgMHhhMjQwLCAwLCB7MHhiOSwweDAwLDB4MjgsMHg0MCwweDE4LDB4OTAsMHhjMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMjUwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHgwMCwweDgxLDB4MDAsMHgyMCwweDUxLDB4MGIsMHgxMCwweDAyLDB4ZjUsMHg4MCwweDg1LDB4YzEsMHhhMSB9LAotICAxNiwgMHhhMjYwLCAwLCB7MHg1MCwweDA4LDB4NTQsMHgwYSwweDA1LDB4MDYsMHg4NSwweDQwLDB4MjEsMHg1MCwweDg4LDB4NTQsMHgwMiwweDk1LDB4MDAsMHg4NSB9LAotICAxNiwgMHhhMjcwLCAwLCB7MHg0NCwweDJkLDB4NTAsMHgyYSwweDU0LDB4MTIsMHhjNSwweDAxLDB4YjEsMHgwMCwweDA4LDB4NTAsMHgwOCwweDEwLDB4MDIsMHgwMiB9LAotICAxNiwgMHhhMjgwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjYSwweDUwLDB4MzIsMHg4MCB9LAotICAxNiwgMHhhMjkwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlOCwweDAyLDB4YzgsMHgwMSwweDMyLDB4MDAsMHgyYywweGMwLDB4MDMsMHgyMCwweDAwLDB4YzgsMHgwMiB9LAotICAxNiwgMHhhMmEwLCAwLCB7MHgzMiwweDAwLDB4MmMsMHg4MCwweDBiLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzYSwweDAwLDB4NGUsMHg0MCwweDIzLDB4YTAsMHgwOCB9LAotICAxNiwgMHhhMmIwLCAwLCB7MHhmOCwweDAwLDB4M2EsMHgwMCwweDJjLDB4ODAsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMmMwLCAwLCB7MHg5OCwweDFkLDB4ZGMsMHgwNCwweGZkLDB4NDAsMHgzZiwweDUwLDB4NGYsMHg5MCwweDYzLDB4ZTQsMHg0MCwweGYxLDB4MDIsMHgzZSB9LAotICAxNiwgMHhhMmQwLCAwLCB7MHg0MSwweDBmLDB4OTAsMHgxMywweGY1LDB4MDQsMHhmOSwweDQxLDB4M2UsMHg1MCwweDBmLDB4OTQsMHg0MywweDY1LDB4MDIsMHhmOSB9LAotICAxNiwgMHhhMmUwLCAwLCB7MHg0MSwweDM2LDB4NTAsMHg0ZCwweDk0LDB4MDMsMHhmNCwweDAwLDB4ZjksMHg0MSwweDM3LDB4NDAsMHg0ZiwweDk0LDB4MDMsMHhlNiB9LAotICAxNiwgMHhhMmYwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweGZjLDB4MDAsMHhjZCwweGE4LDB4MzMsMHg3MCB9LAotICAxNiwgMHhhMzAwLCAwLCB7MHgwZiwweGQwLDB4MTMsMHhmNiwweDg4LDB4Y2QsMHgwMCwweDMyLDB4NTAsMHg0ZiwweDE0LDB4MjMsMHgwNywweGEwLDB4YzksMHhjMCB9LAotICAxNiwgMHhhMzEwLCAwLCB7MHgzMiwweDc4LDB4MGMsMHg5ZSwweDAzLDB4MzcsMHgwMiwweGNkLDB4YzAsMHgzMiwweDY0LDB4MGYsMHg5OCwweDAzLDB4MjQsMHgwMCB9LAotICAxNiwgMHhhMzIwLCAwLCB7MHhjZCwweDAwLDB4MzIsMHg0MCwweDJjLDB4ZGEsMHgwMywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhMzMwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHgwOCwweDg4LDB4ZWIsMHgyMiwweDMwLDB4MGIsMHg4MCwweDEyLDB4ZTgsMHgwNCwweGEwLDB4YTAsMHgyYSB9LAotICAxNiwgMHhhMzQwLCAwLCB7MHgyMCwweDBiLDB4OGEsMHgwYSwweDIzLDB4MDAsMHg4OCwweDgwLDB4MjIsMHgyOCwweDAwLDB4YzgsMHg0MiwweDIzLDB4ODAsMHg4MCB9LAotICAxNiwgMHhhMzUwLCAwLCB7MHhkNCwweDIwLDB4MjgsMHgwOSwweDgwLDB4MDIsMHgyMiwweDk0LDB4YTgsMHgwMCwweDJhLDB4MDAsMHg4OCwweDg1LDB4MDIsMHgwZSB9LAotICAxNiwgMHhhMzYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4YTAsMHg4MywweDAwLDB4MjQsMHhkOCB9LAotICAxNiwgMHhhMzcwLCAwLCB7MHg4YiwweDEwLDB4MDIsMHhlNSwweDE0LDB4ODksMHgwYSwweDIxLDB4NDgsMHgwYiwweDUyLDB4MDIsMHg1NCwweDgwLDB4ODUsMHg0MCB9LAotICAxNiwgMHhhMzgwLCAwLCB7MHgyNSwweDU4LDB4MDksMHg1NiwweDAyLDB4NDUsMHgwMiwweDgxLDB4MjAsMHgyMCwweDUwLDB4MGIsMHgxNCwweDAyLDB4MDQsMHgzMCB9LAotICAxNiwgMHhhMzkwLCAwLCB7MHg4MSwweDAwLDB4MjAsMHg0MCwweDA4LDB4MTAsMHgwMiwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhM2EwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgxMiwweDg5LDB4MDAsMHhhNiwweDQwLDB4MGIsMHg5MCwweDQyLDB4ZTQsMHg5OCwweGE5LDB4ODAsMHgyYiB9LAotICAxNiwgMHhhM2IwLCAwLCB7MHg0MCwweDBiLDB4NTEsMHgwMiwweDU1LDB4MDAsMHg5ZCwweDA4LDB4MjcsMHg0OCwweDA5LDB4ZjYsMHgwMiwweDQ0LDB4MDAsMHg4MSB9LAotICAxNiwgMHhhM2MwLCAwLCB7MHgwNCwweDIyLDB4NDAsMHgxOSwweDkxLDB4OGEsMHgyNCwweDgwLDB4YTksMHgwMCwweDJhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHg0NiB9LAotICAxNiwgMHhhM2QwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU3LDB4MDIsMHhjOSwweDA0LDB4MzYsMHg1OCB9LAotICAxNiwgMHhhM2UwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhjNSwweDAwLDB4YzksMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MTMsMHg2NCwweDAyLDB4YzksMHgwMCB9LAotICAxNiwgMHhhM2YwLCAwLCB7MHgzNiwweDQwLDB4MmQsMHg5MCwweDBiLDB4NjYsMHgwNCwweGM5LDB4ZTAsMHhiMiwweDQ4LDB4OGYsMHg5OCwweDQ3LDB4MjQsMHgwMCB9LAotICAxNiwgMHhhNDAwLCAwLCB7MHhjOSwweDAwLDB4NzIsMHg0MCwweDBjLDB4MTAsMHgwMywweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNDEwLCAwLCB7MHgyOCwweDAxLDB4YTUsMHgwOCwweGY5LDB4MjEsMHgzYSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwNCwweGY5LDB4MDAsMHgzZSB9LAotICAxNiwgMHhhNDIwLCAwLCB7MHg0MCwweDRmLDB4OTgsMHg4MywweGE0LDB4MDAsMHhlOSwweDQwLDB4YmEsMHg2MCwweDBlLDB4OTAsMHgwMywweGE0LDB4ODAsMHhmOSB9LAotICAxNiwgMHhhNDMwLCAwLCB7MHhhMywweDNlLDB4NDgsMHgwZiwweDk4LDB4MGIsMHhlNCwweDAwLDB4ZjksMHgwMCwweDFlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg4YSB9LAotICAxNiwgMHhhNDQwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEyLDB4NDgsMHhjOCwweDIwLDB4MzIsMHgwOCB9LAotICAxNiwgMHhhNDUwLCAwLCB7MHgxZiwweDgwLDB4ODMsMHhlMSwweDIyLDB4YzgsMHgwMSwweDMzLDB4MDAsMHgyYywweGMwLDB4MDMsMHgzMCwweDA0LDB4Y2MsMHg0MCB9LAotICAxNiwgMHhhNDYwLCAwLCB7MHhiMSwweDAwLDB4MGMsMHg0NCwweDAzLDB4MjAsMHgxMiwweGM4LDB4NDEsMHgzMiwweDAwLDB4MmQsMHg4NCwweDBiLDB4NjAsMHgwMCB9LAotICAxNiwgMHhhNDcwLCAwLCB7MHhmOCwweDAwLDB4YjIsMHgwMCwweDRjLDB4ODAsMHgwYiwweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNDgwLCAwLCB7MHgyOCwweDA1LDB4M2EsMHgwMCwweGE2LDB4MDAsMHgyMywweDkwLDB4MDMsMHhlNCwweDkyLDB4ZjgsMHgwMCwweDgyLDB4MDAsMHgzNiB9LAotICAxNiwgMHhhNDkwLCAwLCB7MHg4MCwweDA4LDB4YTAsMHgwMywweDY4LDB4MDAsMHhjYSwweDAwLDB4MjIsMHg4MywweDA4LDB4YTAsMHgwMiwweDI4LDB4MDMsMHg4YSB9LAotICAxNiwgMHhhNGEwLCAwLCB7MHgwMCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4YjYsMHg4MCwweDIyLDB4ODAsMHgwZCwweGU4LDB4MDIsMHgwYSB9LAotICAxNiwgMHhhNGIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZlLDB4MDAsMHg4MiwweDQyLDB4MjAsMHhjMCB9LAotICAxNiwgMHhhNGMwLCAwLCB7MHgwYiwweDM0LDB4MDIsMHhjZCwweDA5LDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAyLDB4OTgsMHgwMCB9LAotICAxNiwgMHhhNGQwLCAwLCB7MHgyMCwweDIwLDB4MjgsMHgwMCwweDBhLDB4MDQsMHgxMCwweDgxLDB4ODAsMHgyMCwweGMwLDB4MDgsMHhiMCwweDAyLDB4MmMsMHgwMCB9LAotICAxNiwgMHhhNGUwLCAwLCB7MHhiMywweDAwLDB4MjIsMHhjMCwweDE4LDB4MzEsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNGYwLCAwLCB7MHhhMCwweDAxLDB4MzgsMHgwMiwweGEzLDB4MDAsMHgyMSwweDQwLDB4MWIsMHg3MCwweDAyLDB4ZGMsMHgyMCwweDg0LDB4MDUsMHg2NSB9LAotICAxNiwgMHhhNTAwLCAwLCB7MHhlMCwweDA4LDB4ZjAsMHgwMiwweDdjLDB4MTAsMHg5NywweDAwLDB4MjQsMHhjMCwweDA4LDB4MzAsMHgwMiwweDU0LDB4ODgsMHg4NyB9LAotICAxNiwgMHhhNTEwLCAwLCB7MHgwOSwweDIxLDB4ZTgsMHgwOSwweDMzLDB4MDIsMHgxYywweDgwLDB4YjYsMHgwOCwweDYzLDB4YzgsMHgwOSwweDM4LDB4MTIsMHgyOCB9LAotICAxNiwgMHhhNTIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhjNywweGEwLDB4YTEsMHhlMCB9LAotICAxNiwgMHhhNTMwLCAwLCB7MHgwYiwweDc4LDB4MDMsMHhmZSwweDAwLDB4YzUsMHg4MiwweDMzLDB4MjAsMHgwYywweDQ4LDB4MDMsMHgxZSwweDAxLDB4ZGYsMHg4MCB9LAotICAxNiwgMHhhNTQwLCAwLCB7MHgzMSwweDIwLDB4MGMsMHg0OCwweDAzLDB4MDYsMHg0MCwweDg3LDB4ODIsMHgzMSwweGY4LDB4MGQsMHg3YiwweDAzLDB4NWYsMHgwMCB9LAotICAxNiwgMHhhNTUwLCAwLCB7MHhmMywweDgwLDB4MzEsMHhmMiwweDBjLDB4NjAsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNTYwLCAwLCB7MHgwOCwweDFkLDB4OWMsMHgwMCwweGZiLDB4MDEsMHgyZiwweDQwLDB4MDcsMHhiMCwweDAzLDB4ZTgsMHgwNCwweGY5LDB4MDAsMHgzZSB9LAotICAxNiwgMHhhNTcwLCAwLCB7MHhjMSwweDBmLDB4YjAsMHgwMywweGUwLDB4MDYsMHhlOCwweDAyLDB4M2EsMHhjMCwweDBmLDB4YjAsMHgwMSwweGE0LDB4MTAsMHhmOSB9LAotICAxNiwgMHhhNTgwLCAwLCB7MHg0MCwweGJlLDB4ZDAsMHgwNiwweGIwLDB4MDMsMHhlZSwweDAwLDB4ZmEsMHgwMCwweDNjLDB4ZDgsMHgwZiwweGEwLDB4MDMsMHhjMiB9LAotICAxNiwgMHhhNTkwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGY2LDB4MDAsMHhjZiwweDg4LDB4MzMsMHg2NCB9LAotICAxNiwgMHhhNWEwLCAwLCB7MHgyYywweGY4LDB4MDMsMHhmZSwweDAyLDB4YzQsMHhiMCwweDMzLDB4MjAsMHg4YywweGQ4LDB4MDMsMHgzMiwweDAwLDB4Y2MsMHhiNCB9LAotICAxNiwgMHhhNWIwLCAwLCB7MHgzMywweGEwLDB4MGMsMHhjOCwweDAzLDB4MTYsMHgyMCwweGNmLDB4YzAsMHgzMywweGYwLDB4MGMsMHhmOCwweDAzLDB4ZmUsMHgwMCB9LAotICAxNiwgMHhhNWMwLCAwLCB7MHhjZCwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZDgsMHgwMywweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNWQwLCAwLCB7MHhhOCwweDExLDB4YjUsMHgwNCwweDg3LDB4MTIsMHhhMSwweDUwLDB4MGEsMHg3NCwweDEyLDB4YzQsMHg0MCwweDg0LDB4MTEsMHgyMyB9LAotICAxNiwgMHhhNWUwLCAwLCB7MHhjMCwweDI4LDB4ZTAsMHgwMiwweDFjLDB4MDIsMHhhNywweDExLDB4MjEsMHg1OCwweDQ4LDB4NzAsMHgwYSwweDE0LDB4MDAsMHg4ZCB9LAotICAxNiwgMHhhNWYwLCAwLCB7MHgwMCwweDIzLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhmYywweDQwLDB4ODYsMHgwMCwweDJkLDB4YzAsMHgwYiwweDUwLDB4MDIsMHgyYSB9LAotICAxNiwgMHhhNjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk1LDB4MDAsMHg4NywweDQwLDB4MjEsMHgwMCB9LAotICAxNiwgMHhhNjEwLCAwLCB7MHgxOCwweDcxLDB4MDIsMHhkYywweDAwLDB4OTUsMHgyOCwweGUxLDB4MDIsMHgwOCwweDUwLDB4MDIsMHgzYywweDQyLDB4YTcsMHgyMiB9LAotICAxNiwgMHhhNjIwLCAwLCB7MHgyMSwweDgwLDB4ODgsMHg0MSwweDAyLDB4MTQsMHgwMCwweDg1LDB4MDAsMHhhMSwweGMwLDB4MDksMHg3MSwweDAyLDB4ZGMsMHgwMCB9LAotICAxNiwgMHhhNjMwLCAwLCB7MHhiNSwweDEwLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNjQwLCAwLCB7MHgyMCwweDE0LDB4YzQsMHgxMCwweDgzLDB4ODQsMHgyMCwweDExLDB4MDgsMHgzMCwweDAyLDB4YzMsMHgxMCwweDkxLDB4MjAsMHgyMCB9LAotICAxNiwgMHhhNjUwLCAwLCB7MHhjMCwweDA4LDB4MjgsMHgxMiwweDAwLDB4MDAsMHhhMCwweDg0LDB4MjAsMHg0MCwweDA4LDB4MzAsMHgwMiwweDA0LDB4MjYsMHg4MyB9LAotICAxNiwgMHhhNjYwLCAwLCB7MHgwMCwweDIwLDB4ZDAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YjIsMHgwMCwweDJjLDB4YzAsMHgwYiwweDAwLDB4MDIsMHgwOCB9LAotICAxNiwgMHhhNjcwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFkLDB4MDAsMHhjZiwweDg4LDB4YjIsMHhlOCB9LAotICAxNiwgMHhhNjgwLCAwLCB7MHgwYywweDMwLDB4MTMsMHhjZSwweGMyLDB4ZDAsMHg4MiwweDMyLDB4MDAsMHgwYywweDBlLDB4MGIsMHgyMCwweDAwLDB4YzgsMHg4OCB9LAotICAxNiwgMHhhNjkwLCAwLCB7MHhiMiwweDQwLDB4MmMsMHhiYSwweDQzLDB4MzcsMHgwMiwweGNiLDB4MDAsMHhiMywweGMwLDB4MmMsMHhmMCwweDAzLDB4ZmMsMHgxMiB9LAotICAxNiwgMHhhNmEwLCAwLCB7MHhmYiwweDAwLDB4N2YsMHhkMSwweDBmLDB4MzAsMHgwYiwweDJiLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNmIwLCAwLCB7MHg4MCwweDAwLDB4ZWQsMHgwMiwweGYxLDB4NDAsMHgzZSwweDQxLDB4MGYsMHhiMCwweDIzLDB4ZWQsMHgwMCwweGU4LDB4MDEsMHgzZSB9LAotICAxNiwgMHhhNmMwLCAwLCB7MHhjOCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDQsMHhkYiwweDAwLDB4M2MsMHg4MCwweDBmLDB4MDQsMHgwMywweGU0LDB4NDAsMHhmOSB9LAotICAxNiwgMHhhNmQwLCAwLCB7MHgwMCwweDNjLDB4YzIsMHgwZSwweGIwLDB4MDMsMHhlZSwweDAwLDB4NGIsMHg0MSwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhhNmUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGZjLDB4MDAsMHg0YiwweDAwLDB4MzIsMHg0MiB9LAotICAxNiwgMHhhNmYwLCAwLCB7MHgwYywweGYwLDB4MDMsMHgzNiwweDgwLDB4Y2QsMHgwMCwweDMzLDB4MDAsMHg0YywweGMwLDB4ODMsMHgzYywweDA0LDB4ZjcsMHgwMCB9LAotICAxNiwgMHhhNzAwLCAwLCB7MHgzMiwweDQwLDB4MGMsMHhiMSwweDQzLDB4MTQsMHgwMCwweGNkLDB4ODAsMHgzMywweGMwLDB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCB9LAotICAxNiwgMHhhNzEwLCAwLCB7MHhmZiwweDAwLDB4YjMsMHhjMiwweDBjLDB4YTAsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNzIwLCAwLCB7MHg4MSwweDA0LDB4NGYsMHgwMiwweDhiLDB4ODAsMHgyMCwweDMwLDB4MDgsMHhiYywweDAyLDB4MjAsMHgxMCwweDg5LDB4MDAsMHgyMiB9LAotICAxNiwgMHhhNzMwLCAwLCB7MHhjMCwweDAwLDB4YjAsMHgwMywweDYwLDB4MDQsMHhiOCwweDAwLDB4YTIsMHg5MCwweDI4LDB4OGMsMHgxYSwweDI0LDB4MDIsMHg4YiB9LAotICAxNiwgMHhhNzQwLCAwLCB7MHg4MywweDIyLDB4YzEsMHgwOCwweGIwLDB4MDIsMHhmYywweDAwLDB4YjMsMHg2MCwweDIwLDB4YzAsMHgwZCwweGEwLDB4MDMsMHhlMCB9LAotICAxNiwgMHhhNzUwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJlLDB4MDAsMHhhYiwweGMwLDB4MjIsMHg2MCB9LAotICAxNiwgMHhhNzYwLCAwLCB7MHgwOCwweGI4LDB4MDIsMHgyOSwweDAwLDB4ODgsMHgwMSwweDIwLDB4MDAsMHgwOCwweDkwLDB4MDIsMHgyMCwweDAwLDB4YjgsMHgwMCB9LAotICAxNiwgMHhhNzcwLCAwLCB7MHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZTQsMHgwMCwweDgxLDB4MjQsMHhhMiwweGMwLDB4MDksMHhiMCwweDQ2LDB4ZWMsMHgwMCB9LAotICAxNiwgMHhhNzgwLCAwLCB7MHhiOSwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhNzkwLCAwLCB7MHgwOCwweDA0LDB4MmMsMHgwMCwweGExLDB4MDAsMHhhMCwweDQxLDB4MDgsMHhiMCwweDBhLDB4MjAsMHg1MywweDg4LDB4MDAsMHgyMCB9LAotICAxNiwgMHhhN2EwLCAwLCB7MHhjMCwweDI4LDB4YTAsMHgwMiwweDRjLDB4MDAsMHhiMywweDAwLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgwMiwweDg0LDB4MDAsMHg4MyB9LAotICAxNiwgMHhhN2IwLCAwLCB7MHgwNCwweDIwLDB4YzAsMHgyOCwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMiwweDYyLDB4YzAsMHgwOSwweDEwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhhN2MwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhlOSwweDAwLDB4MjIsMHgwMCB9LAotICAxNiwgMHhhN2QwLCAwLCB7MHgwYywweGIwLDB4MDMsMHgwMCwweDA0LDB4YzksMHgwMCwweGIyLDB4MDAsMHgwYywweDkwLDB4MDMsMHgyYywweDAwLDB4ZjMsMHgwMCB9LAotICAxNiwgMHhhN2UwLCAwLCB7MHhiMiwweGMwLDB4OGMsMHhiMCwweDAzLDB4YjQsMHgwMiwweDhmLDB4MDAsMHgyMywweGMwLDB4MDQsMHhmMCwweDAzLDB4ZWMsMHgwOCB9LAotICAxNiwgMHhhN2YwLCAwLCB7MHhmOSwweDAwLDB4MzMsMHhjMCwweDBjLDB4ODAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhODAwLCAwLCB7MHhhMCwweDFkLDB4ZmMsMHgxMCwweGRkLDB4MDQsMHgzZiwweDAwLDB4MGYsMHhjMCwweDIzLDB4ZjAsMHg5MCwweGZkLDB4MDAsMHgyZiB9LAotICAxNiwgMHhhODEwLCAwLCB7MHhjMCwweDBmLDB4ZTAsMHg0MywweGQwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDhmLDB4YzAsMHgyMiwweDc0LDB4MDAsMHhmZCB9LAotICAxNiwgMHhhODIwLCAwLCB7MHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwNiwweDNmLDB4YzAsMHgwZiwweGMwLDB4NDMsMHhlOCB9LAotICAxNiwgMHhhODMwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGZjLDB4ODAsMHhlZiwweDIwLDB4MTEsMHhjMCB9LAotICAxNiwgMHhhODQwLCAwLCB7MHgwZSwweDcyLDB4MDMsMHhiZCwweGIwLDB4Y2YsMHgzMSwweGJmLDB4Y2MsMHgwMiwweGYwLDB4MDMsMHhmYywweGM2LDB4Y2YsMHgwMSB9LAotICAxNiwgMHhhODUwLCAwLCB7MHgwYiwweGM1LDB4MGYsMHhmMSwweDAzLDB4M2MsMHgwNCwweGVmLDB4NjEsMHgzMywweGQ4LDB4MDcsMHhmMCwweDAzLDB4MzQsMHg4MCB9LAotICAxNiwgMHhhODYwLCAwLCB7MHhjZCwweDMwLDB4NzMsMHhjYywweDBmLDB4ZTgsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhODcwLCAwLCB7MHg4MCwweDE4LDB4ZTksMHgwMCwweDg4LDB4NjksMHgyMiwweDEwLDB4MDgsMHg4YywweDAwLDB4MjEsMHg4NCwweDg4LDB4NDEsMHgyMiB9LAotICAxNiwgMHhhODgwLCAwLCB7MHgxMCwweDg4LDB4ODYsMHg5MiwweDAxLDB4MDAsMHg4OCwweDYyLDB4MjIsMHgxMCwweDRiLDB4ODcsMHgwMiwweDIxLDB4YTAsMHg4OCB9LAotICAxNiwgMHhhODkwLCAwLCB7MHg2MCwweDIwLDB4MTAsMHgwYiwweDg2LDB4YTIsMHgzNSwweGEwLDB4YWIsMHg2MCwweGExLDB4YzQsMHgwYiwweGI4LDB4MDIsMHgyMCB9LAotICAxNiwgMHhhOGEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNkLDB4YTgsMHgzMywweDQxLDB4MjAsMHhjNiB9LAotICAxNiwgMHhhOGIwLCAwLCB7MHg0YSwweDMxLDB4MDAsMHg4YywweDEwLDB4OTMsMHgzMywweDI4LDB4Y2MsMHgyOSwweDM0LDB4MTIsMHg4YywweDUwLDB4OTMsMHgxYyB9LAotICAxNiwgMHhhOGMwLCAwLCB7MHgyOCwweDg0LDB4MDEsMHgyMCwweDRhLDB4NGMsMHg0MSwweDgzLDB4MTAsMHgyNCwweGNjLDB4NGIsMHgzMSwweDQyLDB4NGMsMHg0MCB9LAotICAxNiwgMHhhOGQwLCAwLCB7MHg5MSwweDEwLDB4MjQsMHhjMCwweDBiLDB4ODAsMHgwMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOGUwLCAwLCB7MHhjMCwweDA1LDB4YTgsMHgyMCwweDkwLDB4MDIsMHgyMiwweDAwLDB4MDgsMHg4MCwweDAwLDB4MjAsMHgzMCwweGI4LDB4MDgsMHgyNiB9LAotICAxNiwgMHhhOGYwLCAwLCB7MHgwMCwweDAxLDB4ODAsMHg4MiwweDIwLDB4MjAsMHgxOCwweDA4LDB4NDIsMHg0MCwweDAzLDB4OTEsMHgwMiwweDYwLDB4MDAsMHgwOCB9LAotICAxNiwgMHhhOTAwLCAwLCB7MHgwMSwweGE2LDB4MDAsMHgwYiwweDgwLDB4MDAsMHg2YywweDEwLDB4YmIsMHgwMSwweDI2LDB4YzAsMHg0YiwweDkwLDB4MGEsMHgzMCB9LAotICAxNiwgMHhhOTEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweGZkLDB4MDAsMHhmZCwweDQxLDB4MzMsMHhhMSB9LAotICAxNiwgMHhhOTIwLCAwLCB7MHgwZSwweGQyLDB4MDMsMHhiNSwweDAyLDB4ZGYsMHg0MiwweDNiLDB4MDEsMHgwZiwweGQ0LDB4NDMsMHhiNSwweDAwLDB4Y2QsMHg0MCB9LAotICAxNiwgMHhhOTMwLCAwLCB7MHgxYiwweGM0LDB4MGQsMHg3OCwweDAzLDB4NzAsMHgwMiwweGVjLDB4MDAsMHgxNywweGExLDB4MGYsMHhlOCwweDBiLDB4MmMsMHgwMiB9LAotICAxNiwgMHhhOTQwLCAwLCB7MHhkOSwweDkwLDB4MjYsMHhjMCwweDBmLDB4YWMsMHgwMywweDAwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOTUwLCAwLCB7MHhlMCwweDAxLDB4YjgsMHgwMCwweGVlLDB4MDAsMHgxZiwweDY0LDB4NGYsMHhlMCwweDAzLDB4ZDgsMHgxMCwweGM0LDB4MTgsMHgzMyB9LAotICAxNiwgMHhhOTYwLCAwLCB7MHhjMCwweDBjLDB4YTAsMHhhMSwweGI4LDB4MDksMHhlNiwweDA5LDB4MzYsMHgyMiwweDBmLDB4ODgsMHgyMywweGJjLDB4MDAsMHhmYiB9LAotICAxNiwgMHhhOTcwLCAwLCB7MHgwMCwweDNiLDB4NjQsMHgwZiwweGQ5LDB4MDMsMHg5YywweDAwLDB4ZTMsMHgwNCwweDNiLDB4YzAsMHgwZiwweGY0LDB4MDMsMHhmOCB9LAotICAxNiwgMHhhOTgwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweDhkLDB4MDAsMHhjOSwweDQwLDB4YjYsMHg4MCB9LAotICAxNiwgMHhhOTkwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHhhNywweDIwLDB4ZmIsMHg1MCwweGI2LDB4MDgsMHg0YywweDE0LDB4MDMsMHg2NSwweDIyLDB4ZDksMHg0MCB9LAotICAxNiwgMHhhOWEwLCAwLCB7MHhiNiwweDgwLDB4MGUsMHhhMCwweDBiLDB4MDAsMHgwMCwweGQ4LDB4MDAsMHg3NiwweDgyLDB4MjgsMHhhMCwweDIzLDB4NjQsMHgwMCB9LAotICAxNiwgMHhhOWIwLCAwLCB7MHhjOSwweDA0LDB4MTIsMHhjMCwweDhlLDB4ODAsMHgwMywweDkwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhOWMwLCAwLCB7MHhjOCwweDA1LDB4MmIsMHg2MCwweDhhLDB4MDksMHgyMCwweDUwLDB4MDgsMHhhMCwweDIzLDB4ZTksMHgwMCwweGI4LDB4YzAsMHgyMiB9LAotICAxNiwgMHhhOWQwLCAwLCB7MHhmMCwweDA4LDB4YWMsMHgwMiwweDI4LDB4MDQsMHg4YSwweGMyLDB4MjIsMHg1MCwweDA4LDB4OTAsMHgwNiwweDJjLDB4MDAsMHg4YiB9LAotICAxNiwgMHhhOWUwLCAwLCB7MHgwNCwweDIyLDB4NTEsMHgwOCwweDk0LDB4MDIsMHhlNCwweDA0LDB4OGIsMHgwNCwweDM3LDB4YzAsMHgwOCwweDE4LDB4NDIsMHgyNiB9LAotICAxNiwgMHhhOWYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNCwweDRiLDB4MDAsMHg4MiwweGM4LDB4MjQsMHg0MyB9LAotICAxNiwgMHhhYTAwLCAwLCB7MHgwYiwweDI2LDB4MGEsMHg4OCwweDAwLDB4YjAsMHg4MCwweDIyLDB4ZTQsMHgwYiwweDIwLDB4NDIsMHg2OSwweDAwLDB4YTIsMHg5MCB9LAotICAxNiwgMHhhYTEwLCAwLCB7MHgyOCwweDQwLDB4ZTgsMHgxMCwweDAyLDB4MGMsMHgwMCwweGJiLDB4MDAsMHgyOCwweDUwLDB4ODgsMHg5MCwweDgyLDB4YzQsMHgwMSB9LAotICAxNiwgMHhhYTIwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMCwweDBhLDB4MTAsMHgwMiwweGJhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYTMwLCAwLCB7MHgyMCwweDEwLDB4NGUsMHg4MCwweDgxLDB4MDAsMHgyMSwweGE4LDB4MDgsMHg1OCwweDAyLDB4ZDYsMHgwMSwweGI3LDB4OTAsMHg2OCB9LAotICAxNiwgMHhhYTQwLCAwLCB7MHgyMCwweDAzLDB4NTksMHg4MiwweDU2LDB4MDAsMHhhNSwweDg0LDB4MmQsMHhhMiwweDE4LDB4NjksMHgyMiwweDAyLDB4MDAsMHgzNCB9LAotICAxNiwgMHhhYTUwLCAwLCB7MHg4MCwweDI5LDB4YTgsMHgwOCwweDY4LDB4MDYsMHhjNiwweDE0LDB4ODUsMHg4MiwweDI1LDB4ZTAsMHgwOCwweDU4LDB4ODIsMHgxYyB9LAotICAxNiwgMHhhYTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDQ4LDB4MDAsMHhjMiwweGYwLDB4MzQsMHg0MCB9LAotICAxNiwgMHhhYTcwLCAwLCB7MHgwZiwweDIwLDB4MDMsMHg4OCwweDgwLDB4ZjgsMHgxMCwweDMwLDB4YzAsMHgyNywweDIxLDB4MGIsMHg0OCwweDgwLDB4ZWEsMHgyMCB9LAotICAxNiwgMHhhYTgwLCAwLCB7MHgzOCwweDAwLDB4MGMsMHgwMCwweDEyLDB4MGMsMHgwOCwweDczLDB4MDAsMHhiOCwweDQwLDB4MGMsMHgxMiwweDIzLDB4NGMsMHgwMiB9LAotICAxNiwgMHhhYTkwLCAwLCB7MHg0MywweDM0LDB4MzAsMHhjMCwweDBlLDB4MTEsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYWEwLCAwLCB7MHg0MCwweDE1LDB4YWMsMHg5MCwweGY5LDB4MDEsMHgyZSwweDg4LDB4NGIsMHg5MCwweDExLDB4NjQsMHgwMCwweGZiLDB4MTAsMHgzMiB9LAotICAxNiwgMHhhYWIwLCAwLCB7MHgwMCwweDAwLDB4OTEsMHgwMywweGE0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHhjNCwweDRkLDB4YjAsMHg0MywweGUwLDB4MDQsMHhjOCB9LAotICAxNiwgMHhhYWMwLCAwLCB7MHgwMCwweDM2LDB4ODksMHgwZiwweGE4LDB4MDMsMHhlZCwweDAwLDB4ZjksMHgxNCwweDNlLDB4YzAsMHgwZiwweDEwLDB4NDMsMHhkMCB9LAotICAxNiwgMHhhYWQwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGU4LDB4MDAsMHhjOCwweDAwLDB4M2EsMHgwMCB9LAotICAxNiwgMHhhYWUwLCAwLCB7MHgwYywweDAwLDB4NTMsMHhhMCwweDAwLDB4ZTgsMHgwMSwweDMyLDB4MDEsMHgwZSwweDgwLDB4NTMsMHgyMCwweDEwLDB4YzgsMHgwMCB9LAotICAxNiwgMHhhYWYwLCAwLCB7MHgzYSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjAsMHgxMCwweGU4LDB4MDQsMHhiNiwweDAwLDB4ODQsMHg4MCwweDAzLDB4MmQsMHgxMiB9LAotICAxNiwgMHhhYjAwLCAwLCB7MHhjYiwweDAwLDB4MmUsMHhjYSwweDA0LDB4OTAsMHgwMywweGVhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYjEwLCAwLCB7MHg0YywweDE5LDB4OGMsMHgwMCwweDg3LDB4MDIsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MGMsMHgwMCwweDgzLDB4MDAsMHgyMSB9LAotICAxNiwgMHhhYjIwLCAwLCB7MHhjMCwweDA4LDB4MzAsMHg2MiwweDRjLDB4MDQsMHg4MywweDAwLDB4MjEsMHg4MCwweDQ4LDB4ZTAsMHgxMiwweDNjLDB4MDAsMHg4NyB9LAotICAxNiwgMHhhYjMwLCAwLCB7MHgwMCwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgxYywweDAwLDB4ODUsMHgwMSwweDI0LDB4ZDAsMHgwYSwweDUwLDB4MDIsMHhmMiB9LAotICAxNiwgMHhhYjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDlhLDB4MDAsMHg4MCwweDgwLDB4MjgsMHgyMCB9LAotICAxNiwgMHhhYjUwLCAwLCB7MHgwOCwweDRjLDB4MjIsMHhkMiwweDAwLDB4YTQsMHg4MCwweDI0LDB4MzAsMHgwYiwweDQ4LDB4MDIsMHg1MiwweDAwLDB4ODQsMHhjMCB9LAotICAxNiwgMHhhYjYwLCAwLCB7MHgyMSwweDIwLDB4MDksMHg0OCwweDY4LDB4MTMsMHgwMCwweGE0LDB4ODAsMHg2MCwweDIwLDB4MDksMHgwOCwweDAyLDB4NTYsMHgwMCB9LAotICAxNiwgMHhhYjcwLCAwLCB7MHg5NywweDgwLDB4MmQsMHhlMCwweDg4LDB4NTgsMHgwMiwweGUwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYjgwLCAwLCB7MHg2YywweDA0LDB4Y2MsMHgwMCwweDgzLDB4ODAsMHgyMCwweGQ4LDB4MDgsMHgzMCwweDAyLDB4NGMsMHg0MCwweDgzLDB4MDAsMHgyNCB9LAotICAxNiwgMHhhYjkwLCAwLCB7MHhkMSwweDA5LDB4YjksMHg0MiwweDRlLDB4MDAsMHg4MywweDAwLDB4MjAsMHhjMSwweDg5LDB4MzAsMHg0MiwweDBjLDB4MDAsMHg4MyB9LAotICAxNiwgMHhhYmEwLCAwLCB7MHhmMCwweGEwLDB4ZDksMHgxOSwweDM2LDB4MjIsMHg2NiwweDA2LDB4OTEsMHgwMCwweDBjLDB4YzEsMHgwYSwweDEwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhhYmIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGU4LDB4MDIsMHhjYSwweGE1LDB4MmEsMHg5MSB9LAotICAxNiwgMHhhYmMwLCAwLCB7MHgyOCwweGE4LDB4MDMsMHhlYSwweDAyLDB4YWEsMHgwMCwweGI2LDB4YTAsMHgwZiwweGEwLDB4MGEsMHgyYSwweDkyLDB4Y2EsMHg4MyB9LAotICAxNiwgMHhhYmQwLCAwLCB7MHhiYSwweDgwLDB4MjksMHhhMCwweDAzLDB4MmIsMHgwMCwweGVhLDB4NDAsMHg2NiwweDkwLDB4MmQsMHhlNCwweDBiLDB4NmEsMHg4MCB9LAotICAxNiwgMHhhYmUwLCAwLCB7MHhkYSwweDAwLDB4M2UsMHg4MCwweDBjLDB4ZTAsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYmYwLCAwLCB7MHg0OCwweDAxLDB4ODAsMHgwMCwweGZjLDB4MDAsMHgzZCwweDAwLDB4MGYsMHhjMCwweDAzLDB4YjAsMHgxNCwweGZjLDB4MDAsMHgzYiB9LAotICAxNiwgMHhhYzAwLCAwLCB7MHgxMiwweDBlLDB4YzAsMHg0MywweGIxLDB4MTQsMHhmYywweDAwLDB4M2QsMHgwMCwweDBlLDB4YzAsMHgwMywweGYwLDB4MjAsMHhmNCB9LAotICAxNiwgMHhhYzEwLCAwLCB7MHgwMCwweDMxLDB4MDAsMHgwZSwweDQ0LDB4MTMsMHhhMCwweDAwLDB4ZTgsMHgwNiwweDM2LDB4MDAsMHg0ZiwweDgwLDB4MTMsMHhkMiB9LAotICAxNiwgMHhhYzIwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGE0LDB4MDAsMHhkMSwweDAwLDB4MzYsMHg2MCB9LAotICAxNiwgMHhhYzMwLCAwLCB7MHgxYywweDE4LDB4MGIsMHg0NiwweDAwLDB4ZDksMHg4MCwweDMwLDB4NDAsMHgyYywweDk4LDB4MDUsMHg4NiwweDAwLDB4YzEsMHg4MCB9LAotICAxNiwgMHhhYzQwLCAwLCB7MHg5MiwweDQwLDB4MGQsMHgxMCwweDAzLDB4NDQsMHgwMiwweDg5LDB4MDAsMHgzMiwweDcwLDB4MGMsMHg5OCwweDAxLDB4MjQsMHgwMCB9LAotICAxNiwgMHhhYzUwLCAwLCB7MHhjOSwweDA0LDB4MzAsMHg0MCwweDBjLDB4OTAsMHgwMywweGMyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhYzYwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4MjQsMHg4MCwweDg5LDB4MDEsMHgyMiB9LAotICAxNiwgMHhhYzcwLCAwLCB7MHg0MCwweDQ4LDB4OTEsMHgwMiwweDI0LDB4MDAsMHhkOSwweDkwLDB4MjIsMHg0MSwweDA4LDB4OTAsMHgxMiwweDI0LDB4MTAsMHg4OSB9LAotICAxNiwgMHhhYzgwLCAwLCB7MHgwMCwweDMyLDB4NDAsMHgwOCwweDk1LDB4MTIsMHgyNCwweDAyLDB4ODEsMHgwMCwweGEyLDB4NDEsMHgwZCwweDkwLDB4NDIsMHhlMCB9LAotICAxNiwgMHhhYzkwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgwNSwweDI0LDB4MDIsMHg5ZCwweDAwLDB4MjMsMHg0NCB9LAotICAxNiwgMHhhY2EwLCAwLCB7MHgwOCwweGQyLDB4MDYsMHg3NCwweDgwLDB4YjUsMHgyMCwweDIzLDB4NDAsMHgxYSwweGQwLDB4MDYsMHgzNSwweDkwLDB4OGQsMHgwMiB9LAotICAxNiwgMHhhY2IwLCAwLCB7MHgyZiwweDQ0LDB4MTksMHhkMCwweDAyLDB4NzQsMHgwMCwweDhkLDB4MDAsMHg2MywweDQwLDB4MTgsMHhkNCwweDAyLDB4YTQsMHgxMSB9LAotICAxNiwgMHhhY2MwLCAwLCB7MHg4OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4YjAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhY2QwLCAwLCB7MHgyOCwweDE0LDB4MDQsMHg4MCwweDg1LDB4MjAsMHgyMSwweDY4LDB4MDgsMHg1MiwweDAyLDB4MTQsMHg4MCwweGE1LDB4MjAsMHhhMSB9LAotICAxNiwgMHhhY2UwLCAwLCB7MHg0OCwweDBhLDB4NzIsMHgzOCwweDE0LDB4ODAsMHg5NSwweDI0LDB4MmQsMHg0OCwweDI4LDB4NTIsMHgwMiwweDE0LDB4ODAsMHg4NSB9LAotICAxNiwgMHhhY2YwLCAwLCB7MHgyMCwweDIxLDB4NDgsMHgwOCwweDUyLDB4MDYsMHg4NCwweDgwLDB4ODEsMHgyMCwweDIwLDB4NGEsMHgwOSwweDEwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhhZDAwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUwLDB4YjIsMHgxNCB9LAotICAxNiwgMHhhZDEwLCAwLCB7MHgyOCwweGEwLDB4MDMsMHg2MSwweDQwLDB4ZjgsMHg1MCwweDMyLDB4OTQsMHg0ZSwweDg1LDB4MDQsMHgyMSwweDQyLDB4YzgsMHg1MCB9LAotICAxNiwgMHhhZDIwLCAwLCB7MHgzYywweDE0LDB4MGQsMHg4MCwweDAzLDB4NjEsMHg0MCwweDg4LDB4NTAsMHhiMiwweDE0LDB4MmMsMHhjNSwweDA5LDB4YTEsMHg0MCB9LAotICAxNiwgMHhhZDMwLCAwLCB7MHhjOCwweDUwLDB4MzIsMHgxYywweDBjLDB4ODAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZDQwLCAwLCB7MHg5OCwweDE1LDB4ZTQsMHg0MCwweGY5LDB4MTAsMHgzYSwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGQ5LDB4MTQsMHgzZSB9LAotICAxNiwgMHhhZDUwLCAwLCB7MHg0NCwweDBkLDB4OTEsMHg0MywweDY0LDB4NDAsMHhlOSwweDEwLDB4MzIsMHg0NCwweDA3LDB4OTMsMHhjMywweGU0LDB4NTAsMHhkMSB9LAotICAxNiwgMHhhZDYwLCAwLCB7MHgxMCwweDdlLDB4NDQsMHgwMywweDkxLDB4MDEsMHg1NCwweDQ0LDB4ZmQsMHgxNCwweDNlLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhlNiB9LAotICAxNiwgMHhhZDcwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4ODAsMHhkZCwweGEwLDB4MzMsMHg2OCB9LAotICAxNiwgMHhhZDgwLCAwLCB7MHgxZSwweGRhLDB4MDMsMHgzNiwweDkwLDB4Y2QsMHhhMCwweDNiLDB4NjgsMHgwYSwweGQ4LDB4MjMsMHg3NiwweDBjLDB4ZWQsMHg4MCB9LAotICAxNiwgMHhhZDkwLCAwLCB7MHgyYiwweDYyLDB4MGIsMHg5OSwweDAyLDB4YTcsMHg4MCwweGY5LDB4ZTEsMHgzNywweDY4LDB4MGMsMHhkYSwweDAzLDB4MjcsMHg4MCB9LAotICAxNiwgMHhhZGEwLCAwLCB7MHhjOSwweGEyLDB4MjIsMHg2OCwweDRjLDB4NTAsMHgwMywweGM2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZGIwLCAwLCB7MHgzOCwweDE4LDB4ZTEsMHg0MCwweDg4LDB4NTAsMHgyMiwweDE0LDB4MDgsMHg4MCwweDIyLDB4NjAsMHgwMCwweDg4LDB4MDQsMHgyMiB9LAotICAxNiwgMHhhZGMwLCAwLCB7MHgwMCwweDA4LDB4MDQsMHgyNiwweDAxLDB4MDAsMHg4OCwweDUwLDB4MjIsMHgxMCwweDA4LDB4YWYsMHgwMiwweDIzLDB4MDAsMHg4OCB9LAotICAxNiwgMHhhZGQwLCAwLCB7MHhjMCwweGEwLDB4MTAsMHg4OCwweDg0LDB4MDIsMHgyMywweDgwLDB4YTAsMHg0MCwweDJhLDB4MTAsMHgwOCwweDgwLDB4MTIsMHg0ZSB9LAotICAxNiwgMHhhZGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDg0LDB4MDAsMHg4MSwweDAxLDB4MjAsMHg0MCB9LAotICAxNiwgMHhhZGYwLCAwLCB7MHgwYSwweDE0LDB4MDIsMHg0NSwweDAwLDB4ODEsMHg0MSwweDJjLDB4NTAsMHgwYiwweDE0LDB4MDIsMHgwNSwweDA0LDB4YTEsMHgwMCB9LAotICAxNiwgMHhhZTAwLCAwLCB7MHgyOCwweDQwLDB4ODIsMHgxMCwweDAyLDB4ODQsMHg0MCwweGExLDB4MzIsMHg4MCwweDUwLDB4MDksMHgxNCwweDAyLDB4MDQsMHhjNCB9LAotICAxNiwgMHhhZTEwLCAwLCB7MHg5MSwweDEwLDB4NjQsMHg0NCwweDI4LDB4MTAsMHgwMiwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZTIwLCAwLCB7MHgxOCwweDA0LDB4YWMsMHgwMiwweDgxLDB4MDAsMHgyMiwweGMxLDB4MDgsMHg5MCwweDAyLDB4NDQsMHgwMiwweDg5LDB4MDIsMHgyNiB9LAotICAxNiwgMHhhZTMwLCAwLCB7MHg0MSwweDA5LDB4OTAsMHgwYSwweDI0LDB4MGMsMHg4OSwweDA0LDB4MjIsMHg1MCwweDA4LDB4OTAsMHgyNiwweDI0LDB4MDAsMHg4OSB9LAotICAxNiwgMHhhZTQwLCAwLCB7MHgwMCwweDIyLDB4NDEsMHgwOSwweDEwLDB4MjIsMHgyNCwweDQwLDB4YjksMHgwMSwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHg0NiB9LAotICAxNiwgMHhhZTUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MTAsMHg4OSwweDAwLDB4MzIsMHg0MCB9LAotICAxNiwgMHhhZTYwLCAwLCB7MHgwYSwweDkwLDB4MGIsMHgyNCwweDEwLDB4ODksMHgwMCwweDFlLDB4NDAsMHg5YiwweDkwLDB4MDIsMHgyNCwweDEwLDB4MjksMHgwMCB9LAotICAxNiwgMHhhZTcwLCAwLCB7MHgxYSwweDQwLDB4MGUsMHg5NCwweDQxLDB4YTQsMHgwMCwweDI5LDB4MDAsMHgxMiwweDQwLDB4MDUsMHg5MCwweDQxLDB4MjYsMHgwMCB9LAotICAxNiwgMHhhZTgwLCAwLCB7MHhkOSwweDAwLDB4MjQsMHg0MCwweDBjLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZTkwLCAwLCB7MHg0OCwweDAxLDB4YTQsMHgwMiwweGE5LDB4MDAsMHhiYywweDQwLDB4MGYsMHg5MCwweDAzLDB4YTQsMHgwNCwweGY5LDB4MDAsMHgzYSB9LAotICAxNiwgMHhhZWEwLCAwLCB7MHg0MSwweDBlLDB4OTAsMHg4MywweDg0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDBlLDB4OTAsMHgwMiwweGM0LDB4MDgsMHhlOSB9LAotICAxNiwgMHhhZWIwLCAwLCB7MHgwMCwweDNhLDB4NDAsMHgyZSwweDkwLDB4MGIsMHhlNiwweDAwLDB4ZTEsMHgwNCwweDNhLDB4NDAsMHgwZiwweDkyLDB4MDMsMHg1YSB9LAotICAxNiwgMHhhZWMwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGEwLDB4MjAsMHhkOCwweDAwLDB4MzYsMHgwMiB9LAotICAxNiwgMHhhZWQwLCAwLCB7MHgwZSwweDAwLDB4YTMsMHhlMCwweDE4LDB4YzAsMHgwMCwweDMwLDB4MDMsMHgwZiwweDgwLDB4MzMsMHgyMCwweDAwLDB4NDAsMHgwMCB9LAotICAxNiwgMHhhZWUwLCAwLCB7MHgzMiwweDBkLDB4MGYsMHgwNCwweDBiLDB4YTAsMHgwMiwweGM4LDB4MDIsMHgzMiwweDAyLDB4OGMsMHg4MiwweDAzLDB4MjAsMHgwMiB9LAotICAxNiwgMHhhZWYwLCAwLCB7MHhjOCwweDA0LDB4MTYsMHgwMCwweDRlLDB4ODAsMHgwMSwweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZjAwLCAwLCB7MHgyOCwweDA1LDB4M2IsMHgwMCwweDhlLDB4ZDgsMHgyMywweDgwLDB4MDgsMHhlMCwweDAyLDB4ZjgsMHg4MCwweDhlLDB4MTAsMHgyMyB9LAotICAxNiwgMHhhZjEwLCAwLCB7MHhhMiwweDBiLDB4ZTAsMHg4MiwweDdhLDB4MjAsMHg4ZSwweDMwLDB4MjMsMHhhMSwweDBiLDB4ZTAsMHgwMiwweDI4LDB4MDAsMHg4ZSB9LAotICAxNiwgMHhhZjIwLCAwLCB7MHgwMCwweDJiLDB4ODgsMHgwOCwweGU0LDB4NDIsMHgzOCwweDAwLDB4OGUsMHgwNCwweDIzLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgwYSB9LAotICAxNiwgMHhhZjMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZmLDB4NDAsMHg5MywweGM2LDB4MjQsMHg0MCB9LAotICAxNiwgMHhhZjQwLCAwLCB7MHgwYSwweDM4LDB4MDIsMHhjYywweDAwLDB4ODMsMHgwMSwweGFjLDB4ZjAsMHgwYiwweGI0LDB4MDIsMHg0YywweDA0LDB4YTMsMHg4MCB9LAotICAxNiwgMHhhZjUwLCAwLCB7MHgyOCwweGQwLDB4NGIsMHgzMCwweDAyLDB4NGMsMHgwMCwweGFiLDB4MDQsMHgyYSwweGMwLDB4MmEsMHgzMCwweDBhLDB4YWMsMHgxMCB9LAotICAxNiwgMHhhZjYwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMSwweDBhLDB4MzEsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZjcwLCAwLCB7MHg4MCwweDExLDB4MWMsMHgwMCwweDgyLDB4MDAsMHgyMSwweDQyLDB4ODgsMHg3NCwweDA2LDB4ZGMsMHgwYiwweDg2LDB4MDIsMHgyZCB9LAotICAxNiwgMHhhZjgwLCAwLCB7MHg4MCwweDBiLDB4NzAsMHgyYSwweDU4LDB4MDAsMHhhNiwweDAwLDB4YTksMHhjMCwweDBiLDB4NzAsMHgwMiwweDVjLDB4ODgsMHhhNyB9LAotICAxNiwgMHhhZjkwLCAwLCB7MHgyMCwweDI5LDB4YzAsMHgwYSwweDcwLDB4MDIsMHg5YywweDEwLDB4OTcsMHgyMCwweGExLDB4YzgsMHgwOCwweGQ4LDB4MDIsMHgyOCB9LAotICAxNiwgMHhhZmEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwOCwweDBlLDB4MDAsMHhkNywweDgwLDB4MzcsMHg2MCB9LAotICAxNiwgMHhhZmIwLCAwLCB7MHgwZSwweDY4LDB4MTMsMHhmZSwweDAwLDB4Y2YsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDc4LDB4MjMsMHgxZSwweDAwLDB4ZWYsMHg4MiB9LAotICAxNiwgMHhhZmMwLCAwLCB7MHgzMSwweGUwLDB4MGYsMHgzYywweGMzLDB4N2UsMHgwNCwweGVmLDB4ODAsMHhiMSwweGUwLDB4MGUsMHhlOCwweDAzLDB4YmUsMHg4MCB9LAotICAxNiwgMHhhZmQwLCAwLCB7MHhkNywweGUwLDB4MzMsMHhlYSwweDBlLDB4NzgsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhhZmUwLCAwLCB7MHgwOCwweDE1LDB4YWMsMHgwMCwweGZhLDB4MDEsMHgzZSwweDAwLDB4MGYsMHhiMCwweDAzLDB4ZTAsMHgwNCwweGY4LDB4MDAsMHgzMiB9LAotICAxNiwgMHhhZmYwLCAwLCB7MHg4MCwweDBmLDB4ODAsMHg0MywweGFjLDB4MGEsMHhkOCwweDAwLDB4MzYsMHg0MCwweDBmLDB4YjAsMHgwMywweDJjLDB4MGMsMHhkYiB9LAotICAxNiwgMHhiMDAwLCAwLCB7MHgwMCwweDI2LDB4YzEsMHgwOSwweGEwLDB4MTMsMHg2YywweDQwLDB4ZWIsMHg0MCwweDNhLDB4ZGMsMHgwZiwweDkwLDB4MGIsMHhjMiB9LAotICAxNiwgMHhiMDEwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNCwweGJlLDB4MDAsMHhjZiwweDgxLDB4MzMsMHhlOSB9LAotICAxNiwgMHhiMDIwLCAwLCB7MHgxZiwweGY5LDB4MTMsMHhiNiwweDUwLDB4ZWYsMHg4MCwweDFmLDB4ZTQsMHgwNCwweGM4LDB4MDMsMHg3ZSwweDAwLDB4NmQsMHg4MSB9LAotICAxNiwgMHhiMDMwLCAwLCB7MHgzMywweDY0LDB4MGMsMHhmOCwweDFiLDB4M2UsMHgyMCwweDJmLDB4ODgsMHg5MywweGU4LDB4MGYsMHhmYiwweDAzLDB4MmUsMHg4MCB9LAotICAxNiwgMHhiMDQwLCAwLCB7MHhjZiwweGMwLDB4NzMsMHhlMCwweDJjLDB4ZDksMHgwMywweGQwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMDUwLCAwLCB7MHhhOCwweDE4LDB4OTAsMHg0MiwweDg5LDB4MTgsMHgyMSwweGMwLDB4MWYsMHg3MSwweDAyLDB4MTQsMHhjMCwweGY3LDB4MjAsMHgyNyB9LAotICAxNiwgMHhiMDYwLCAwLCB7MHg0MCwweDQwLDB4NzEsMHgxMiwweDE4LDB4MDAsMHg4NywweDIwLDB4MjEsMHg4MCwweDQ4LDB4NzEsMHgwMiwweDNjLDB4MDgsMHg4NyB9LAotICAxNiwgMHhiMDcwLCAwLCB7MHgyMCwweDIxLDB4ODIsMHgwYiwweDYxLDB4YTIsMHgxZSwweDQ0LDB4ZGYsMHgwMSwweDMxLDB4YzgsMHgwOCwweDczLDB4MDIsMHhlYSB9LAotICAxNiwgMHhiMDgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDhjLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjOCB9LAotICAxNiwgMHhiMDkwLCAwLCB7MHgwYiwweDcwLDB4MDIsMHg5YywweDA5LDB4ODcsMHgwMiwweDJkLDB4ODIsMHg5OSwweDQwLDB4MDIsMHgwNCwweDAwLDB4YTUsMHgwOSB9LAotICAxNiwgMHhiMGEwLCAwLCB7MHgyMSwweDQwLDB4MTksMHg3MCwweDAyLDB4MWMsMHgwMCwweDg3LDB4MDUsMHgyNSwweDQ4LDB4NGIsMHg3MiwweDAyLDB4MGMsMHg0MCB9LAotICAxNiwgMHhiMGIwLCAwLCB7MHg4NywweDAwLDB4YTEsMHhjMCwweDQ4LDB4NTAsMHgwMiwweGM0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMGMwLCAwLCB7MHg2OCwweDA0LDB4YzEsMHgyMCwweDg5LDB4NGMsMHhhMCwweGI0LDB4MGEsMHgzOCwweDAyLDB4MjIsMHgwMCwweGExLDB4ZDAsMHgyNCB9LAotICAxNiwgMHhiMGQwLCAwLCB7MHgzMCwweDA5LDB4ODAsMHgwMiwweDI3LDB4NDQsMHg4MSwweGM2LDB4MjIsMHgxNCwweDA5LDB4M2QsMHgyYSwweDBmLDB4MDIsMHg4YiB9LAotICAxNiwgMHhiMGUwLCAwLCB7MHhjMCwweGE2LDB4MjAsMHgwYiwweDI0LDB4MDAsMHgwYywweDEwLDB4OTMsMHg4MSwweDIwLDB4YzAsMHg0OCwweDMwLDB4MDYsMHhkOCB9LAotICAxNiwgMHhiMGYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgxNSwweGExLDB4MDAsMHg4OSwweGMxLDB4MzIsMHhkMSB9LAotICAxNiwgMHhiMTAwLCAwLCB7MHgwMywweGJjLDB4MDMsMHhhOSwweDIwLDB4ODksMHg0MSwweDNlLDB4NjAsMHg4NSwweGJjLDB4OGIsMHgyNSwweDQwLDB4ZWIsMHg0MSB9LAotICAxNiwgMHhiMTEwLCAwLCB7MHhhMiwweGEwLDB4MGQsMHhmMCwweDEzLDB4M2UsMHgyMCwweGNmLDB4OTAsMHgzNiwweDMwLDB4NGYsMHhiYywweDBiLDB4M2MsMHgwMCB9LAotICAxNiwgMHhiMTIwLCAwLCB7MHhjZiwweDgwLDB4MzMsMHhjMSwweDBjLDB4YjEsMHgwMywweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMTMwLCAwLCB7MHg4MCwweDAwLDB4ZWQsMHgwMCwweGY4LDB4MDEsMHgzYywweGQwLDB4MGYsMHhiMywweDAzLDB4ZTgsMHg4MiwweGQ4LDB4MjAsMHgzNiB9LAotICAxNiwgMHhiMTQwLCAwLCB7MHg4MCwweDJlLDB4YjIsMHgxMywweGUxLDB4MDAsMHhmYSwweDAwLDB4N2UsMHhjOCwweDJlLDB4YjAsMHgwMywweGVjLDB4ODAsMHhkYiB9LAotICAxNiwgMHhiMTUwLCAwLCB7MHgxMCwweDNhLDB4MDgsMHg0ZiwweGIyLDB4MjMsMHhjYywweDAyLDB4ZmIsMHgxMCwweDNhLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhlNCB9LAotICAxNiwgMHhiMTYwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMCwweGYwLDB4MDAsMHhjZCwweDEwLDB4MzMsMHg0MiB9LAotICAxNiwgMHhiMTcwLCAwLCB7MHgwYywweGNhLDB4MjMsMHg3YywweDAwLDB4Y2YsMHgwMCwweDMzLDB4NjIsMHgwNiwweGYwLDB4MDEsMHgzYSwweDAwLDB4Y2YsMHgwOCB9LAotICAxNiwgMHhiMTgwLCAwLCB7MHgzMywweDgwLDB4MWMsMHhmMCwweDgxLDB4M2MsMHgwMCwweGZmLDB4MDAsMHgzMywweGEwLDB4MGMsMHhjYSwweDAxLDB4ZmMsMHgwNCB9LAotICAxNiwgMHhiMTkwLCAwLCB7MHhjZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGMwLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMWEwLCAwLCB7MHhhMSwweDA0LDB4NmQsMHg0MCwweDg4LDB4NDgsMHhhMiwweDMxLDB4MDgsMHgxMCwweDAyLDB4MjAsMHgxMCwweDg4LDB4YjQsMHgyMiB9LAotICAxNiwgMHhiMWIwLCAwLCB7MHhhMCwweDA4LDB4ODAsMHgwMCwweDZhLDB4ODQsMHg4OCwweDIwLDB4MjIsMHg1MiwweDA4LDB4YjAsMHgwYSwweDJjLDB4MTAsMHhiYiB9LAotICAxNiwgMHhiMWMwLCAwLCB7MHgwMCwweDMyLDB4YjMsMHg4OCwweDgwLDB4MDIsMHhlYywweDAwLDB4ZGIsMHgwMCwweDJlLDB4YzAsMHgwYiwweDkwLDB4MTIsMHhlMSB9LAotICAxNiwgMHhiMWQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDAwLDB4MTAsMHg4YSwweDAxLDB4MjIsMHhhMCB9LAotICAxNiwgMHhiMWUwLCAwLCB7MHgwOCwweGIwLDB4NDIsMHg2MCwweDIwLDB4ODAsMHgwMCwweDIwLDB4NDQsMHgxYSwweDgwLDB4MWEsMHhlNCwweDQyLDB4YTAsMHgwNiB9LAotICAxNiwgMHhiMWYwLCAwLCB7MHgyMiwweDAwLDB4NzgsMHgzMCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDAsMHhhMiwweDQ0LDB4MDgsMHhiMCwweDEyLDB4ZWMsMHgwMCB9LAotICAxNiwgMHhiMjAwLCAwLCB7MHg4YiwweDAwLDB4MGUsMHhjMCwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMjEwLCAwLCB7MHgwOCwweDE0LDB4MDAsMHgwOCwweDgwLDB4MDAsMHgyMCwweDgxLDB4MDgsMHgzMCwweDAyLDB4NDAsMHgxMiwweDgwLDB4MDAsMHhhMCB9LAotICAxNiwgMHhiMjIwLCAwLCB7MHg0MCwweDA4LDB4YjAsMHgwMiwweGMwLDB4MDAsMHg4MiwweDAwLDB4MDAsMHg4MCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAsMHhiYiB9LAotICAxNiwgMHhiMjMwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwOCwweDIwLDB4MDIsMHhjYywweDgwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjMiB9LAotICAxNiwgMHhiMjQwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhjYSwweDE0LDB4MzIsMHgwMCB9LAotICAxNiwgMHhiMjUwLCAwLCB7MHgwYywweGIwLDB4MDMsMHg0YywweDAwLDB4Y2EsMHgwMCwweDMyLDB4MDAsMHgwZSwweDAwLDB4MTIsMHhhMCwweDAwLDB4YzAsMHgwMCB9LAotICAxNiwgMHhiMjYwLCAwLCB7MHg3MCwweDAwLDB4MjgsMHhmMCwweDEzLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzMiwweDQwLDB4MmMsMHgxMCwweDQzLDB4ZWMsMHgwMCB9LAotICAxNiwgMHhiMjcwLCAwLCB7MHhjZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4OTAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMjgwLCAwLCB7MHgyMCwweDE1LDB4ZjAsMHgwMiwweGZjLDB4MDAsMHgxZiwweDAwLDB4NjcsMHg3MCwweDAzLDB4YjAsMHgwMCwweGZjLDB4MDAsMHgzZiB9LAotICAxNiwgMHhiMjkwLCAwLCB7MHgwMCwweDJkLDB4YzAsMHgwMywweDMwLDB4MTAsMHhmYywweDAxLDB4YmYsMHgwMCwweDBmLDB4NzAsMHgwMywweDdjLDB4MDAsMHhmNyB9LAotICAxNiwgMHhiMmEwLCAwLCB7MHgwNCwweDNiLDB4MDAsMHgwZiwweGMwLDB4MTMsMHhmZCwweDEwLDB4ZmYsMHgwMCwweDNkLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9LAotICAxNiwgMHhiMmIwLCAwLCB7MHgxMiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNSwweGY0LDB4YzAsMHhjZiwweDgwLDB4MzMsMHg2MCB9LAotICAxNiwgMHhiMmMwLCAwLCB7MHgwZSwweGM5LDB4MTMsMHgzNiwweDUwLDB4Y2UsMHg4NiwweDNmLDB4MDgsMHgwYywweGMwLDB4MDMsMHgzZSwweDAyLDB4ZDcsMHg4MCB9LAotICAxNiwgMHhiMmQwLCAwLCB7MHgzOSwweGUwLDB4MGYsMHhmOCwweDEzLDB4M2UsMHg0MCwweGM3LDB4MzAsMHgzYiwweGNlLDB4MGQsMHhmNiwweDAzLDB4M2QsMHg4OCB9LAotICAxNiwgMHhiMmUwLCAwLCB7MHhjZiwweDMxLDB4MzMsMHhlNCwweDBmLDB4NzgsMHgwMywweDMwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMmYwLCAwLCB7MHg4MCwweDEwLDB4ZTUsMHhkMCwweGRiLDB4ODAsMHg3MiwweDYwLDB4ODgsMHg5MiwweDAyLDB4ZTQsMHgxMCwweDhhLDB4ODAsMHgyZSB9LAotICAxNiwgMHhiMzAwLCAwLCB7MHgzNCwweDRhLDB4OGMsMHgwMywweDJlLDB4MDAsMHhhYiwweDgwLDB4MDIsMHhlMCwweDBiLDB4YjgsMHgwMiwweDJjLDB4ODAsMHg4ZiB9LAotICAxNiwgMHhiMzEwLCAwLCB7MHg2MCwweDEzLDB4ZDgsMHg0YSwweDc2LDB4MDIsMHg5ZCwweDg0LDB4YWYsMHgzMCwweDIyLDB4NDgsMHgwYiwweDg4LDB4MTIsMHhhMCB9LAotICAxNiwgMHhiMzIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4MDAsMHg4YiwweDAwLDB4MjQsMHgwMCB9LAotICAxNiwgMHhiMzMwLCAwLCB7MHg0YSwweDAwLDB4MDIsMHhhYywweDgwLDB4ODMsMHgwMCwweDJjLDB4MDEsMHgyOCwweDA0LDB4MDIsMHhhYywweDAwLDB4OGIsMHgwMSB9LAotICAxNiwgMHhiMzQwLCAwLCB7MHgyMCwweGMwLDB4MDMsMHhiMCwweDAyLDB4MGMsMHg4MCwweDgzLDB4NDAsMHgyMCwweGMxLDB4YTgsMHgzNCwweDIyLDB4OGQsMHgxMyB9LAotICAxNiwgMHhiMzUwLCAwLCB7MHg4MywweDIwLDB4YWMsMHhjOCwweDBiLDB4YjAsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiMzYwLCAwLCB7MHhjMCwweDE1LDB4ODYsMHgwMCwweDliLDB4MDQsMHhhZSwweDAwLDB4MGEsMHg5MCwweDAyLDB4ZWMsMHgwMCwweDBiLDB4MTQsMHgyZSB9LAotICAxNiwgMHhiMzcwLCAwLCB7MHhjNiwweDAyLDB4YjEsMHgxMiwweDZjLDB4MDAsMHhhYiwweDIwLDB4MmEsMHhjMSwweDBiLDB4YjAsMHg0MiwweDJjLDB4MDAsMHg4YiB9LAotICAxNiwgMHhiMzgwLCAwLCB7MHgwMiwweDI2LDB4YzEsMHgwYSwweGIwLDB4MDIsMHhhYywweDAwLDB4YWIsMHgwNCwweDJhLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhmMCB9LAotICAxNiwgMHhiMzkwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweGU3LDB4MDAsMHhjMywweDAxLDB4MzYsMHg0MCB9LAotICAxNiwgMHhiM2EwLCAwLCB7MHgwZSwweDg4LDB4MTMsMHgyNCwweDAyLDB4Y2EsMHgwMCwweDFlLDB4MjAsMHgyYywweDhlLDB4MGIsMHgyYywweDAwLDB4Y2IsMHgwMCB9LAotICAxNiwgMHhiM2IwLCAwLCB7MHgyYSwweGMwLDB4MGYsMHhiOCwweDAzLDB4MmUsMHgwNiwweGNiLDB4MDAsMHgzYSwweGMwLDB4NGMsMHhiMCwweDEzLDB4YWMsMHgwYyB9LAotICAxNiwgMHhiM2MwLCAwLCB7MHhjYiwweDAwLDB4M2UsMHhjOCwweDBmLDB4YjAsMHg0MywweDUwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiM2QwLCAwLCB7MHhlMCwweDAxLDB4YjQsMHgwOCwweGZmLDB4OTEsMHgzMywweDQwLDB4MDksMHhkYywweDAxLDB4ZjQsMHgyMCwweDdlLDB4MDIsMHgyZSB9LAotICAxNiwgMHhiM2UwLCAwLCB7MHg0MCwweDBkLDB4OTgsMHgwMSwweGJjLDB4ODAsMHhlZiwweDgwLDB4YjcsMHhlNCwweDhmLDB4ZjQsMHgwYiwweGZlLDB4NDAsMHg3ZiB9LAotICAxNiwgMHhiM2YwLCAwLCB7MHgwMCwweGI5LDB4YzAsMHg0ZSwweGYwLDB4MDMsMHhmYywweDA4LDB4ZjcsMHgwMCwweDM3LDB4YzAsMHgwZiwweGUwLDB4MDIsMHhiOCB9LAotICAxNiwgMHhiNDAwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweGExLDB4NDQsMHhjYiwweDAyLDB4MzIsMHgwMCB9LAotICAxNiwgMHhiNDEwLCAwLCB7MHgwZCwweDgwLDB4MGEsMHg2ZCwweDAwLDB4ZWIsMHgwNCwweDEwLDB4OTAsMHgyOCwweDIyLDB4MGIsMHgyYywweGMyLDB4Y2IsMHgyMCB9LAotICAxNiwgMHhiNDIwLCAwLCB7MHg3NiwweGMwLDB4MGUsMHhiMSwweDAzLDB4ZWMsMHgwMSwweGNiLDB4MDYsMHgzMiwweGMxLDB4MGMsMHgzMCwweDAzLDB4MmMsMHgwMiB9LAotICAxNiwgMHhiNDMwLCAwLCB7MHhjYiwweDAwLDB4M2UsMHhkMCwweDBjLDB4YjAsMHgwMywweDEwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNDQwLCAwLCB7MHhjOCwweDA1LDB4MjEsMHg0OCwweGFiLDB4MDAsMHgyMCwweDAwLDB4MDAsMHg5NSwweDIzLDB4NGMsMHgwOCwweGJiLDB4MDEsMHgyMiB9LAotICAxNiwgMHhiNDUwLCAwLCB7MHhjMCwweDA4LDB4YjIsMHgwMiwweDBjLDB4MDgsMHg4MywweDg4LDB4OTIsMHhkNSwweDI4LDB4MzQsMHgwMiwweGVjLDB4MDIsMHg4ZiB9LAotICAxNiwgMHhiNDYwLCAwLCB7MHgyMCwweDIzLDB4YzAsMHg0ZCwweGYwLDB4MDEsMHg3YywweDAwLDB4ZGYsMHgwMCwweDJlLDB4YzAsMHgwZCwweDMwLDB4MDMsMHg3MiB9LAotICAxNiwgMHhiNDcwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ0LDB4MDAsMHg4MywweDEwLDB4MjAsMHg2MCB9LAotICAxNiwgMHhiNDgwLCAwLCB7MHgwOSwweDI1LDB4MDIsMHgwMCwweDA4LDB4YTAsMHgwMCwweDRjLDB4MDAsMHgwYiwweDBjLDB4MjIsMHg0ZiwweDEyLDB4OTMsMHg0MCB9LAotICAxNiwgMHhiNDkwLCAwLCB7MHgwMCwweGMwLDB4MDksMHgzZSwweDAyLDB4ZWMsMHgwMCwweGFiLDB4ODAsMHhhNCwweGMwLDB4MDksMHgzMCwweDIyLDB4MmMsMHgwOCB9LAotICAxNiwgMHhiNGEwLCAwLCB7MHhiMywweDAxLDB4MGMsMHg4MSwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNGIwLCAwLCB7MHg2MCwweDAxLDB4MTYsMHgwOSwweGI3LDB4ODAsMHgyMSwweDY0LDB4MDgsMHg3OCwweDA2LDB4MTIsMHgwMCwweGI0LDB4ODIsMHgyZCB9LAotICAxNiwgMHhiNGMwLCAwLCB7MHhhNCwweDFiLDB4NjksMHgwNiwweDdlLDB4MDQsMHgxNywweDkyLDB4MjUsMHhlNiwweDA5LDB4NzgsMHgwNiwweGRlLDB4ODAsMHhhNyB9LAotICAxNiwgMHhiNGQwLCAwLCB7MHg5MCwweDI1LDB4ZTAsMHgwOSwweDc5LDB4NTAsMHg1ZSwweDA0LDB4YjcsMHg5MiwweDJmLDB4NjEsMHgwOSwweGM4LDB4MDIsMHg0OCB9LAotICAxNiwgMHhiNGUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDI1LDB4MDAsMHhjMywweDAwLDB4YjAsMHgwMyB9LAotICAxNiwgMHhiNGYwLCAwLCB7MHgwZCwweGEzLDB4NDIsMHgwOSwweDQwLDB4ZTEsMHgwMCwweGJjLDB4NDAsMHgwZiwweDExLDB4MDMsMHg0YywweDAwLDB4MTMsMHgwMCB9LAotICAxNiwgMHhiNTAwLCAwLCB7MHgyMCwweGMwLDB4MDksMHgzMiwweDAzLDB4Y2MsMHgxMCwweGEzLDB4MDAsMHgyNiwweGM0LDB4OGQsMHgzMCwweDJiLDB4MGMsMHg4MCB9LAotICAxNiwgMHhiNTEwLCAwLCB7MHhmMywweDAwLDB4N2MsMHg4MCwweDBjLDB4MzAsMHgwMSwweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNTIwLCAwLCB7MHg0MCwweDFkLDB4YmMsMHgwMCwweGU3LDB4MTAsMHgzZCwweDAxLDB4MmYsMHhmMSwweDQyLDB4ZTgsMHgwMCwweGY1LDB4OTAsMHgwMyB9LAotICAxNiwgMHhiNTMwLCAwLCB7MHhjMSwweDBjLDB4ZjEsMHg0MywweDljLDB4MDQsMHhlZiwweDA4LDB4M2IsMHhjMiwweDBjLDB4ZjAsMHg4MSwweGRjLDB4YTAsMHhkZiB9LAotICAxNiwgMHhiNTQwLCAwLCB7MHgwMCwweDNiLDB4YzMsMHgzZiwweGYwLDB4ODMsMHhmYywweDA1LDB4ZGYsMHgwYywweDNkLDB4NDAsMHgwZiwweGQxLDB4MDMsMHhkMCB9LAotICAxNiwgMHhiNTUwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwNSwweGY0LDB4MDAsMHhjYiwweDgwLDB4MzAsMHg0MCB9LAotICAxNiwgMHhiNTYwLCAwLCB7MHgyYywweGEwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHg4MCwweDMyLDB4YzAsMHgyZSwweGI4LDB4MGIsMHgyYywweDQ2LDB4ZDMsMHgwMCB9LAotICAxNiwgMHhiNTcwLCAwLCB7MHgzMCwweGMwLDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCwweGRiLDB4NDgsMHgzMiwweGMwLDB4MWYsMHhiNCwweDAzLDB4MmMsMHg4OCB9LAotICAxNiwgMHhiNTgwLCAwLCB7MHhjYiwweDQ4LDB4MzIsMHg4MCwweDBjLDB4MzAsMHgxMywweDJhLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNTkwLCAwLCB7MHg0OCwweDExLDB4YjQsMHgwMCwweDg3LDB4MDEsMHgyMSwweDQwLDB4MDgsMHg3MCwweDQyLDB4ZDAsMHgwOCwweGI0LDB4MDAsMHgyOSB9LAotICAxNiwgMHhiNWEwLCAwLCB7MHhjMCwweDA4LDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjOCwweDBjLDB4NzIsMHgwYSwweDFjLDB4ODQsMHg4ZiB9LAotICAxNiwgMHhiNWIwLCAwLCB7MHg0MCwweDA5LDB4YzQsMHg4ZiwweDczLDB4MTIsMHg5YywweDQwLDB4ODMsMHgyMCwweDIxLDB4YzAsMHgwOCwweDYwLDB4MDIsMHg5MiB9LAotICAxNiwgMHhiNWMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDk2LDB4MDEsMHhhZiwweDgwLDB4MjEsMHgyMCB9LAotICAxNiwgMHhiNWQwLCAwLCB7MHgwOCwweDY4LDB4MDIsMHhkYSwweDAwLDB4YmQsMHg4MCwweDIxLDB4ZTAsMHgwOSwweDc4LDB4MDIsMHgxZSwweDAwLDB4OGYsMHg4OCB9LAotICAxNiwgMHhiNWUwLCAwLCB7MHg4MywweGUyLDB4MjksMHhmOCwweDgyLDB4NWYsMHg4MCwweDg3LDB4YTAsMHgyNSwweGUwLDB4MGIsMHgzYSwweDEyLDB4MGUsMHg1MCB9LAotICAxNiwgMHhiNWYwLCAwLCB7MHg5NywweGE0LDB4MjEsMHhhMCwweDI5LDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNjAwLCAwLCB7MHgwOCwweDE0LDB4Y2MsMHgwMiwweGExLDB4ODEsMHgwMCwweDAwLDB4NDgsMHg3MCwweDAyLDB4YzgsMHgwMCwweGIxLDB4MDAsMHgyYyB9LAotICAxNiwgMHhiNjEwLCAwLCB7MHhmOCwweDA5LDB4MzEsMHg0MiwweDBjLDB4MTAsMHg4MywweDAwLDB4MjAsMHhlMCwweDA4LDB4MzgsMHgxMiwweDRlLDB4MDAsMHg4MyB9LAotICAxNiwgMHhiNjIwLCAwLCB7MHgwMCwweDZhLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg4YywweDA0LDB4OTMsMHgwMCwweDIwLDB4ZTAsMHgwOSwweDM4LDB4MDIsMHg5MiB9LAotICAxNiwgMHhiNjMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI5LDB4NDAsMHhlZSwweDIwLDB4MzAsMHg4MCB9LAotICAxNiwgMHhiNjQwLCAwLCB7MHgwYywweGEwLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHgwMCwweDMzLDB4YjAsMHgwZCwweGU0LDB4MDMsMHgzMiwweDg4LDB4Y2MsMHg4MCB9LAotICAxNiwgMHhiNjUwLCAwLCB7MHgyMywweDAwLDB4MGQsMHhjMCwweDAzLDB4NjIsMHgwMiwweGNhLDB4MDAsMHgzNiwweDgwLDB4MGYsMHhhMCwweDQzLDB4MjgsMHgwNiB9LAotICAxNiwgMHhiNjYwLCAwLCB7MHhkYSwweDAwLDB4MzMsMHhhMCwweDBkLDB4NmEsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNjcwLCAwLCB7MHg0OCwweDAwLDB4ZTAsMHgwMCwweDk4LDB4MDEsMHhiZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZjAsMHgwMCwweGJjLDB4MDAsMHgzOCB9LAotICAxNiwgMHhiNjgwLCAwLCB7MHgwNCwweDA4LDB4ODAsMHhhMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgxMywweGEwLDB4MDAsMHhlMCB9LAotICAxNiwgMHhiNjkwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZSwweDAwLDB4MDMsMHhjMCwweDAwLDB4ZTgsMHgwMCwweGJlLDB4MDQsMHg0ZSwweDgwLDB4MDcsMHhkMiB9LAotICAxNiwgMHhiNmEwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweGU0LDB4ODAsMHhjOSwweDAwLDB4M2UsMHg2OCB9LAotICAxNiwgMHhiNmIwLCAwLCB7MHgwYywweDkwLDB4MDMsMHg2NCwweDAwLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4NDMsMHhlMCwweDAwLDB4YzgsMHgwMCB9LAotICAxNiwgMHhiNmMwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4MCwweDEzLDB4MjAsMHgwMCwweGM5LDB4MDAsMHgzNiwweDQwLDB4MGMsMHg5MCwweDAzLDB4NjQsMHgwMCB9LAotICAxNiwgMHhiNmQwLCAwLCB7MHg4MSwweDAwLDB4MzIsMHg0MCwweDA0LDB4OTAsMHgxMywweDAyLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNmUwLCAwLCB7MHg4MCwweDA0LDB4NjUsMHgwNiwweDg5LDB4NDAsMHgyZSwweDYwLDB4MWEsMHgxNCwweDJhLDB4MDUsMHgyMCwweDg5LDB4MDAsMHgyZSB9LAotICAxNiwgMHhiNmYwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgwMiwweGM0LDB4MDgsMHhjMSwweDAyLDB4MjAsMHg0MCwweDA4LDB4MTAsMHgxYSwweDI0LDB4MDAsMHg4OSB9LAotICAxNiwgMHhiNzAwLCAwLCB7MHgxMCwweDMyLDB4NDEsMHgwOCwweDkwLDB4MTIsMHgyNCwweDAwLDB4ODksMHgwNCwweDM2LDB4NDAsMHg4OCwweDk0LDB4MGEsMHgyMCB9LAotICAxNiwgMHhiNzEwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MjAsMHg4OSwweDU1LDB4MmUsMHg0MCB9LAotICAxNiwgMHhiNzIwLCAwLCB7MHgwOCwweGQ1LDB4MDIsMHgzNCwweDAwLDB4OGQsMHgwMCwweDJlLDB4NDAsMHgxOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4OTksMHgwMCB9LAotICAxNiwgMHhiNzMwLCAwLCB7MHgyNiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDQsMHgwYSwweDg5LDB4MDAsMHgyNiwweDQwLDB4MzgsMHg5MCwweDBhLDB4MjQsMHgwMCB9LAotICAxNiwgMHhiNzQwLCAwLCB7MHhhOSwweDAwLDB4MjAsMHg0MCwweDBhLDB4OTAsMHg4MiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiNzUwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHgwMCwweDgxLDB4MDAsMHgyZiwweDQwLDB4MGEsMHhkNCwweDAyLDB4MzQsMHgwMCwweDg1LDB4MDEsMHgyYyB9LAotICAxNiwgMHhiNzYwLCAwLCB7MHg0MCwweDA4LDB4MTAsMHg0MiwweGU0LDB4MDYsMHg5OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4MTAsMHgwMiwweDA1LDB4MDAsMHg4MSB9LAotICAxNiwgMHhiNzcwLCAwLCB7MHg0MCwweDI4LDB4NTAsMHgwOCwweDE0LDB4MTIsMHgwNSwweDAwLDB4YTEsMHg0MCwweDI0LDB4NTAsMHg1YSwweDEwLDB4MDIsMHgwMiB9LAotICAxNiwgMHhiNzgwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjOCwweDA0LDB4M2UsMHgwMCB9LAotICAxNiwgMHhiNzkwLCAwLCB7MHgwOCwweDgwLDB4MDMsMHgyMSwweDQyLDB4Y2MsMHgwMCwweDNlLDB4MDAsMHgyYywweDgwLDB4MDIsMHhlMCwweDAwLDB4ZDgsMHgwMCB9LAotICAxNiwgMHhiN2EwLCAwLCB7MHhiNiwweDAwLDB4MmMsMHg4MCwweDAyLDB4MjAsMHgwMiwweGM4LDB4MDAsMHgzNiwweDAwLDB4MGMsMHg4MCwweDAzLDB4NjAsMHgwMiB9LAotICAxNiwgMHhiN2IwLCAwLCB7MHhlOCwweDAwLDB4MzIsMHgwMCwweDhlLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiN2MwLCAwLCB7MHg5OCwweDFkLDB4ZjUsMHgwMCwweGY1LDB4MDAsMHgzZSwweDQwLDB4ODcsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGYxLDB4MDAsMHgzZCB9LAotICAxNiwgMHhiN2QwLCAwLCB7MHg1MCwweDBmLDB4NTQsMHgwMywweGQxLDB4MDAsMHhlYywweDQwLDB4M2YsMHgxMCwweDBiLDB4YzQsMHg0MywweGYxLDB4MDAsMHhmOSB9LAotICAxNiwgMHhiN2UwLCAwLCB7MHg0MCwweDM2LDB4NTAsMHgwZiwweDk0LDB4MTMsMHhlNSwweDEwLDB4ZDksMHg0NCwweDNkLDB4NDAsMHgyZCwweGQwLDB4MDMsMHhlNiB9LAotICAxNiwgMHhiN2YwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweGY2LDB4NjAsMHhjZCwweDAyLDB4M2IsMHg0MCB9LAotICAxNiwgMHhiODAwLCAwLCB7MHgwYywweGQwLDB4MDMsMHhiNCwweDQwLDB4ZmQsMHgwNiwweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHg2NiwweDA0LDB4YzksMHg4MiB9LAotICAxNiwgMHhiODEwLCAwLCB7MHhiNiwweDYyLDB4MGYsMHgxOCwweDBiLDB4MzYsMHgwMCwweGNkLDB4NDAsMHgzMiwweDYxLDB4MGMsMHg5MCwweDIzLDB4MjQsMHgwYSB9LAotICAxNiwgMHhiODIwLCAwLCB7MHhjOSwweDAwLDB4MzIsMHg0MCwweDRjLDB4ZDAsMHg0MywweDA2LDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiODMwLCAwLCB7MHgzOSwweDEwLDB4ZTMsMHg4MCwweGQ4LDB4MDAsMHgyMiwweDAwLDB4MGQsMHg4MCwweDAyLDB4MjIsMHg5NCwweGI4LDB4MDAsMHgyZSB9LAotICAxNiwgMHhiODQwLCAwLCB7MHgwMCwweDBkLDB4ODAsMHgwMywweDIxLDB4MDAsMHg4OCwweDQwLDB4MjIsMHgwMCwweDBiLDB4YzQsMHgyMiwweDIxLDB4NTAsMHg4OCB9LAotICAxNiwgMHhiODUwLCAwLCB7MHg4MCwweDIyLDB4MjIsMHgwOCwweDgwLDB4MDIsMHgyMCwweDEwLDB4ODAsMHgwMSwweDJhLDB4MDAsMHgwYSwweDgwLDB4MDMsMHg0ZSB9LAotICAxNiwgMHhiODYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGM2LDB4MDAsMHg4OSwweDAwLDB4MmEsMHg0MCB9LAotICAxNiwgMHhiODcwLCAwLCB7MHg4OCwweDEwLDB4MGEsMHg4NCwweDA4LDB4YjEsMHgwMCwweDI5LDB4NDAsMHgwYSwweDcwLDB4MGEsMHhiNSwweDAwLDB4OGYsMHg0MCB9LAotICAxNiwgMHhiODgwLCAwLCB7MHgyOSwweGMwLDB4MGIsMHhmNCwweDAyLDB4MjQsMHgwMCwweDgxLDB4MjAsMHgyOCwweDQ0LDB4ODksMHgxMCwweDAyLDB4MDQsMHgwNCB9LAotICAxNiwgMHhiODkwLCAwLCB7MHg4MSwweDAyLDB4MmEsMHg0MCwweDA4LDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOGEwLCAwLCB7MHgxOCwweDE1LDB4YTYsMHgwMCwweDk5LDB4MjAsMHgyMiwweDQwLDB4MDksMHg5MCwweDEyLDB4MjQsMHg4MCwweGI5LDB4MDAsMHgyZiB9LAotICAxNiwgMHhiOGIwLCAwLCB7MHg0NCwweDAzLDB4ZDAsMHgwMiwweGY0LDB4MDAsMHg4ZCwweDAwLDB4MmIsMHg0MSwweDBiLDB4ZDAsMHgwMiwweDI2LDB4MTAsMHg4OSB9LAotICAxNiwgMHhiOGMwLCAwLCB7MHgwNCwweDJhLDB4NDAsMHgwOSwweDkwLDB4NmUsMHgyNCwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAsMHgwYSwweDk0LDB4MDIsMHg0NiB9LAotICAxNiwgMHhiOGQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTIsMHgxNSwweGU2LDB4MDAsMHhjOSwweDAwLDB4MzgsMHg0MiB9LAotICAxNiwgMHhiOGUwLCAwLCB7MHgwYywweDEwLDB4MTMsMHhhNiwweDA0LDB4NzksMHgwOCwweDNhLDB4NzgsMHgwNiwweDkyLDB4MDMsMHhhNCwweDA4LDB4YzksMHgwMCB9LAotICAxNiwgMHhiOGYwLCAwLCB7MHgzYSwweDYwLDB4OGYsMHg5OCwweDIzLDB4MDYsMHgwMiwweGM5LDB4MDIsMHgzYSwweDQwLDB4MGQsMHg5MCwweDAzLDB4MDQsMHgwMCB9LAotICAxNiwgMHhiOTAwLCAwLCB7MHhjOSwweDAwLDB4MzgsMHg0MCwweDBjLDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOTEwLCAwLCB7MHgyOCwweDAxLDB4ODQsMHgxMCwweGY5LDB4ODAsMHhiZSwweDQwLDB4NGYsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzYyB9LAotICAxNiwgMHhiOTIwLCAwLCB7MHg2MCwweDhkLDB4OTIsMHgwMywweDI0LDB4NDIsMHhlOSwweDEwLDB4MzIsMHg1MCwweDBmLDB4OTQsMHgwMywweGU0LDB4MDAsMHhmOSB9LAotICAxNiwgMHhiOTMwLCAwLCB7MHgwMCwweGI2LDB4NDEsMHgyZSwweDEwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDJlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSB9LAotICAxNiwgMHhiOTQwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMCwweGEwLDB4MDgsMHhjOCwweDAwLDB4M2UsMHgxMCB9LAotICAxNiwgMHhiOTUwLCAwLCB7MHgwZiwweDg4LDB4MDMsMHgyMCwweDA4LDB4ZjgsMHhjMCwweDFlLDB4MTAsMHgyYywweDQwLDB4MDMsMHhmMiwweDAwLDB4Y2MsMHgwMCB9LAotICAxNiwgMHhiOTYwLCAwLCB7MHgzZiwweDAwLDB4MGMsMHhjMCwweDEzLDB4MjAsMHgwMiwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHg4MCwweDJiLDB4MjAsMHgxMCB9LAotICAxNiwgMHhiOTcwLCAwLCB7MHhjMCwweDA0LDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDBhLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOTgwLCAwLCB7MHhhOCwweDA1LDB4M2EsMHg4MCwweDg2LDB4ZTAsMHgyZiwweGEwLDB4MWIsMHhlMCwweDAyLDB4M2EsMHg4MCwweGJhLDB4MDQsMHgyZSB9LAotICAxNiwgMHhiOTkwLCAwLCB7MHg4MCwweDA4LDB4YTAsMHgwMywweDg4LDB4MDgsMHhjMiwweDAwLDB4MmUsMHg4MSwweDA4LDB4NjAsMHgwMiwweDI4LDB4MTAsMHg4ZSB9LAotICAxNiwgMHhiOWEwLCAwLCB7MHg4MSwweDAzLDB4ODAsMHgwOCwweGUwLDB4MDEsMHg3OCwweDAwLDB4OGUsMHgwNCwweDAzLDB4ODAsMHgwOSwweDY4LDB4MDMsMHhjYSB9LAotICAxNiwgMHhiOWIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDYwLDB4MmMsMHg0NCB9LAotICAxNiwgMHhiOWMwLCAwLCB7MHgwYiwweDM4LDB4MDIsMHgwZiwweDgwLDB4YjEsMHgwMCwweDJjLDB4ZTUsMHgwMywweDMwLDB4MTAsMHhjYywweDEwLDB4ODMsMHgwMCB9LAotICAxNiwgMHhiOWQwLCAwLCB7MHgwYywweGMwLDB4MjksMHgzMCwweDIyLDB4MDQsMHgwOSwweDkxLDB4MTAsMHgyNCwweGMwLDB4YzgsMHgzMCwweDAwLDB4NGMsMHgwNCB9LAotICAxNiwgMHhiOWUwLCAwLCB7MHg5MywweDAyLDB4MjQsMHhjMCwweDBiLDB4MzEsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiOWYwLCAwLCB7MHhlMCwweDAxLDB4MTgsMHg4MCwweDg3LDB4MDAsMHgyZCwweDQwLDB4MGIsMHg3NCwweDQyLDB4MWMsMHgwMSwweGI1LDB4MDEsMHgyYyB9LAotICAxNiwgMHhiYTAwLCAwLCB7MHhjMCwweDBiLDB4NjAsMHgwMiwweGIwLDB4MDAsMHg5NCwweDA0LDB4MmYsMHgyMCwweDA5LDB4YzAsMHgwMiwweDE0LDB4OTAsMHg5NyB9LAotICAxNiwgMHhiYTEwLCAwLCB7MHgwMCwweDI1LDB4YzgsMHgwOCwweDcwLDB4MDIsMHg0YywweDgwLDB4OTcsMHgyMCwweDI1LDB4YzAsMHgwOSwweDcwLDB4MDIsMHhlOCB9LAotICAxNiwgMHhiYTIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNhLDB4ODIsMHhjNiwweDgwLDB4MmQsMHg2MCB9LAotICAxNiwgMHhiYTMwLCAwLCB7MHgwYiwweGY4LDB4MGIsMHgxYSwweDAwLDB4ZjUsMHg4MCwweDNkLDB4ZTAsMHg4ZiwweDc4LDB4MDMsMHhkZSwweDAyLDB4YzcsMHg4MCB9LAotICAxNiwgMHhiYTQwLCAwLCB7MHgyZCwweGUwLDB4MGQsMHg3OCwweDBiLDB4MTcsMHgwMiwweGRmLDB4ODAsMHgyNCwweGY4LDB4MmMsMHhmZCwweDAzLDB4NWUsMHgwYyB9LAotICAxNiwgMHhiYTUwLCAwLCB7MHhkNywweGUwLDB4MzUsMHhlMCwweDBmLDB4NjgsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYTYwLCAwLCB7MHg0OCwweDFkLDB4YWUsMHg0MCwweGZhLDB4MDQsMHgzZSwweDQwLDB4MGYsMHg4MCwweDEzLDB4ZWMsMHgwNCwweGY5LDB4MDAsMHgzZSB9LAotICAxNiwgMHhiYTcwLCAwLCB7MHhjMSwweDBjLDB4YTAsMHgxMywweGMwLDB4MTAsMHhlOCwweDAwLDB4M2MsMHgwMCwweDRlLDB4ODAsMHg0MywweGM0LDB4MjAsMHg4OSB9LAotICAxNiwgMHhiYTgwLCAwLCB7MHgwMCwweGJhLDB4YzAsMHgwNywweGI2LDB4MjEsMHhlZCwweDA2LDB4ZWIsMHg2OCwweGJhLDB4Y2MsMHgwZiwweDIwLDB4MTMsMHhjMiB9LAotICAxNiwgMHhiYTkwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGJlLDB4MDAsMHhjNiwweDgwLDB4MzEsMHg2MCB9LAotICAxNiwgMHhiYWEwLCAwLCB7MHgyZCwweDc4LDB4MGIsMHgzZSwweDQ4LDB4ZWMsMHg5MiwweDNkLDB4NjAsMHgwYywweDU4LDB4MDMsMHg1YSwweDQwLDB4ZDUsMHg4MCB9LAotICAxNiwgMHhiYWIwLCAwLCB7MHgzMSwweDYxLDB4MGMsMHg1OCwweDIzLDB4MzYsMHgwMCwweGNmLDB4ODIsMHgzZiwweGUwLDB4MGMsMHhmOCwweDAzLDB4ZmYsMHg2MCB9LAotICAxNiwgMHhiYWMwLCAwLCB7MHhjZiwweDkwLDB4MzMsMHhmMCwweDBjLDB4NTIsMHgwMywweDAwLDB4MDAsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYWQwLCAwLCB7MHhhOCwweDExLDB4YjgsMHg4NCwweDg2LDB4MTQsMHhiNSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MWUsMHhjMCwweGM0LDB4MDAsMHgyZCB9LAotICAxNiwgMHhiYWUwLCAwLCB7MHg0MCwweDA4LDB4NDAsMHgwMiwweDE0LDB4ZDAsMHg4NiwweDEwLDB4MjEsMHg4MCwweDRjLDB4NjIsMHg0MiwweDM0LDB4NDAsMHhhNSB9LAotICAxNiwgMHhiYWYwLCAwLCB7MHgwMCwweDM1LDB4YzAsMHgyOCwweDcwLDB4NDIsMHhkYywweGMyLDB4OGYsMHgzMCwweDIzLDB4YzAsMHgwOCwweDUwLDB4MDIsMHgyYSB9LAotICAxNiwgMHhiYjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDk4LDB4MjgsMHg4ZSwweDAwLDB4YTUsMHg0MCB9LAotICAxNiwgMHhiYjEwLCAwLCB7MHgwOCwweGYxLDB4MDIsMHgxOCwweDY0LDB4YjQsMHgwMCwweDZkLDB4NDIsMHgwOCwweDUwLDB4MDIsMHgxOCwweDAxLDB4ODUsMHgwOCB9LAotICAxNiwgMHhiYjIwLCAwLCB7MHgyMSwweDQwLDB4MDksMHg1OCwweDIyLDB4NTQsMHgwMCwweDg1LDB4MTAsMHgyZCwweGM0LDB4MDksMHg3MCwweDAyLDB4ZGMsMHgwNCB9LAotICAxNiwgMHhiYjMwLCAwLCB7MHg5NywweDAwLDB4MjUsMHhjMCwweDA4LDB4NDQsMHgwMiwweDAwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYjQwLCAwLCB7MHg2MCwweDE0LDB4OGMsMHgwMCwweDgyLDB4ODAsMHgyNCwweGMwLDB4MDgsMHg4MCwweDAyLDB4MmQsMHgwMCwweDgwLDB4NGEsMHgyYyB9LAotICAxNiwgMHhiYjUwLCAwLCB7MHg0MiwweDA4LDB4MGEsMHg0MiwweDA2LDB4MDAsMHg5MiwweDg0LDB4MjAsMHhhMCwweDg4LDB4MjgsMHg0MiwweDQ0LDB4MDAsMHhhMyB9LAotICAxNiwgMHhiYjYwLCAwLCB7MHgwNiwweDI0LDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDEwLDB4OTMsMHgwNCwweDI0LDB4YzEsMHgwOSwweDAwLDB4MDIsMHgwOCB9LAotICAxNiwgMHhiYjcwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhjYiwweDAwLDB4MzYsMHg0MCB9LAotICAxNiwgMHhiYjgwLCAwLCB7MHgwYywweGI0LDB4MTMsMHgyYywweDAwLDB4ZjksMHgwMCwweDNlLDB4YTAsMHgwYywweGEyLDB4MDMsMHgwNCwweDA4LDB4YzIsMHg4MCB9LAotICAxNiwgMHhiYjkwLCAwLCB7MHgzMCwweGE4LDB4MGQsMHgyYSwweDAzLDB4NTQsMHgwMCwweGNiLDB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDAzLDB4ZmMsMHgwOCB9LAotICAxNiwgMHhiYmEwLCAwLCB7MHhkZiwweDAwLDB4MzcsMHhkMCwweDBjLDB4YjAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYmIwLCAwLCB7MHg4MCwweDAwLDB4ZTAsMHgwMCwweGZiLDB4MTAsMHgzYSwweDQwLDB4MGUsMHhiMCwweDAzLDB4ZWQsMHg5MCwweGY5LDB4MTEsMHg3ZSB9LAotICAxNiwgMHhiYmMwLCAwLCB7MHg4MCwweDRmLDB4YjAsMHg1MywweGU4LDB4NDAsMHhlOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGE2LDB4MDgsMHhmOSB9LAotICAxNiwgMHhiYmQwLCAwLCB7MHgwMSwweDNhLDB4YzAsMHgwYywweGIwLDB4MTMsMHhjYywweDAwLDB4ZWIsMHgwMiwweDNhLDB4YzYsMHg4ZSwweGI4LDB4MDMsMHhlMCB9LAotICAxNiwgMHhiYmUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgxMCwweGYwLDB4MGMsMHhjZSwweDAwLDB4M2YsMHhlMCB9LAotICAxNiwgMHhiYmYwLCAwLCB7MHgyYywweGYwLDB4ODMsMHgzYSwweDQ4LDB4Y2QsMHgwMSwweDM1LDB4ODAsMHgwYywweDYwLDB4MTIsMHgzNCwweDBhLDB4Y2UsMHgwMCB9LAotICAxNiwgMHhiYzAwLCAwLCB7MHhiMywweDgwLDB4MmMsMHhlMCwweDBiLDB4NzQsMHgwMCwweGM5LDB4MTAsMHhiMywweGMxLDB4MGYsMHhmMCwweDFiLDB4M2MsMHgwMCB9LAotICAxNiwgMHhiYzEwLCAwLCB7MHhjZiwweDAwLDB4YjcsMHhjMCwweDJjLDB4ZTAsMHgwMywweDAwLDB4NDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYzIwLCAwLCB7MHg4MSwweDA0LDB4NmUsMHgxMCwweDg4LDB4ODAsMHgyYywweGMwLDB4MTgsMHg5OCwweDAyLDB4MmQsMHg4MCwweDgxLDB4MDAsMHgzNiB9LAotICAxNiwgMHhiYzMwLCAwLCB7MHg5MSwweDA4LDB4YjAsMHgwMywweDY4LDB4MDAsMHhjOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4MyB9LAotICAxNiwgMHhiYzQwLCAwLCB7MHg4MCwweDM2LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgyYywweDAyLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDIwLDB4MDMsMHg2MCB9LAotICAxNiwgMHhiYzUwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDA2LDB4MDAsMHg4YSwweDgwLDB4MmUsMHg0NSB9LAotICAxNiwgMHhiYzYwLCAwLCB7MHgyOCwweDg4LDB4MDIsMHgyNCwweDAyLDB4ODgsMHgwMiwweDAyLDB4MDIsMHgwOCwweDgwLDB4MDIsMHhhMiwweDAwLDB4OTgsMHgwMCB9LAotICAxNiwgMHhiYzcwLCAwLCB7MHgyMiwweDAwLDB4MDgsMHg4MCwweDEyLDB4MjQsMHgwMCwweDg5LDB4MDEsMHgyMiwweGMxLDB4MGEsMHhiMCwweDAyLDB4NmMsMHgwMCB9LAotICAxNiwgMHhiYzgwLCAwLCB7MHhhYiwweDAwLDB4MjIsMHhjMSwweDA4LDB4OTAsMHgxMiwweDYwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiYzkwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyYywweGMwLDB4NDgsMHgwOCwweDEyLDB4MDAsMHg4MCwweDgwLDB4MDIsMHgyNCB9LAotICAxNiwgMHhiY2EwLCAwLCB7MHgwMCwweDA4LDB4MTgsMHg0MiwweGFjLDB4MDIsMHg4YiwweDgwLDB4MjIsMHhlMCwweDA4LDB4YjgsMHgxMiwweDA0LDB4MDIsMHg4MyB9LAotICAxNiwgMHhiY2IwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4NDIsMHgwYywweDAwLDB4YTMsMHgwMSwweDYwLDB4YzAsMHg0OCwweDEwLDB4MDIsMHg0MiB9LAotICAxNiwgMHhiY2MwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY4LDB4MDgsMHhjYSwweDAwLDB4MmUsMHg0MCB9LAotICAxNiwgMHhiY2QwLCAwLCB7MHgwOCwweDgwLDB4MDMsMHgwMCwweDAwLDB4YzgsMHgwNiwweDMyLDB4MDAsMHgwYywweDgwLDB4MDIsMHhhMCwweDAwLDB4ZDgsMHgwMCB9LAotICAxNiwgMHhiY2UwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4NzQsMHgwMCwweGNiLDB4MDAsMHgyMiwweGMwLDB4MGYsMHhmMCwweDAzLDB4M2MsMHgwMCB9LAotICAxNiwgMHhiY2YwLCAwLCB7MHhlZiwweDAwLDB4MzcsMHhjMCwweDBjLDB4ODAsMHgwMSwweDQwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZDAwLCAwLCB7MHhhMCwweDE5LDB4ZmMsMHgwMCwweGZjLDB4MDQsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZTEsMHgwMCwweGZjLDB4MDAsMHgzYiB9LAotICAxNiwgMHhiZDEwLCAwLCB7MHgwMCwweDBmLDB4ZDAsMHgwMywweDdjLDB4MDAsMHhlZiwweDAwLDB4MmYsMHhjMCwweDBmLDB4ZjAsMHgxMSwweGY0LDB4MTAsMHhmZCB9LAotICAxNiwgMHhiZDIwLCAwLCB7MHgwMiwweDNkLDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhkYywweDAwLDB4ZGYsMHgwNCwweDNmLDB4YzAsMHgwZiwweGMwLDB4NDMsMHhlOSB9LAotICAxNiwgMHhiZDMwLCAwLCB7MHgwNiwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQxLDB4MDIsMHg3MCwweDIwLDB4ZGMsMHgxMCB9LAotICAxNiwgMHhiZDQwLCAwLCB7MHg2NywweDA0LDB4MGQsMHhjMSwweDAyLDB4NzAsMHgyMCwweDljLDB4MTAsMHgzNywweDA0LDB4MGQsMHhjMSwweDA2LDB4NzAsMHg0MCB9LAotICAxNiwgMHhiZDUwLCAwLCB7MHg0YywweDEwLDB4MzcsMHgxNCwweDE1LDB4YzEsMHgwMywweDcwLDB4NDAsMHhkYywweDEwLDB4MTMsMHgwNCwweDBkLDB4YzEsMHgwNyB9LAotICAxNiwgMHhiZDYwLCAwLCB7MHg3MCwweDQwLDB4ZGMsMHgxMCwweDM3LDB4MDQsMHgwZCwweGMwLDB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZDcwLCAwLCB7MHgwMCwweGM1LDB4NDQsMHgwNSwweDcxLDB4MjEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzQsMHgwNSwweDcxLDB4MDUsMHg1YyB9LAotICAxNiwgMHhiZDgwLCAwLCB7MHg0MCwweDU3LDB4MTAsMHgxNSwweGM0LDB4MDYsMHg3MSwweDAxLDB4NGMsMHg0MCwweDU3LDB4MTAsMHgwZCwweGM0LDB4MDUsMHg3MSB9LAotICAxNiwgMHhiZDkwLCAwLCB7MHgwNSwweDVjLDB4NDAsMHg1MywweDEwLDB4MTUsMHhjNCwweDA3LDB4NzEsMHgwMSwweDVjLDB4NDAsMHg1NywweDEwLDB4MTUsMHhjMCB9LAotICAxNiwgMHhiZGEwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9LAotICAxNiwgMHhiZGIwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCB9LAotICAxNiwgMHhiZGMwLCAwLCB7MHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSB9LAotICAxNiwgMHhiZGQwLCAwLCB7MHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZGUwLCAwLCB7MHgwMCwweDg0LDB4MDAsMHgwMSwweDYwLDB4MDAsMHg1OCwweDAwLDB4NTYsMHgwMCwweDA1LDB4ODAsMHgwMSwweDYwLDB4MDQsMHg1OCB9LAotICAxNiwgMHhiZGYwLCAwLCB7MHgwMCwweDE2LDB4MDAsMHgwNSwweDgwLDB4MDEsMHgyMCwweDAxLDB4NTgsMHgwMCwweDE2LDB4MDAsMHgwNSwweDgwLDB4MDEsMHg2MCB9LAotICAxNiwgMHhiZTAwLCAwLCB7MHgwMCwweDU4LDB4MDAsMHg1NiwweDAwLDB4MDUsMHg4MCwweDAxLDB4NjAsMHgwMCwweDU4LDB4MDAsMHgxNiwweDAwLDB4MDEsMHg4MCB9LAotICAxNiwgMHhiZTEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ4LDB4MDUsMHg3MiwweDExLDB4NWMsMHg4MCB9LAotICAxNiwgMHhiZTIwLCAwLCB7MHgxNywweDIwLDB4MTUsMHhkOCwweDA1LDB4MzIsMHgxMSwweDFjLDB4ODAsMHg0NywweDIwLDB4MTQsMHg4OCwweDAwLDB4NzIsMHgwMSB9LAotICAxNiwgMHhiZTMwLCAwLCB7MHgxYywweDgwLDB4NTcsMHgyMCwweDA1LDB4YzgsMHgwNCwweDcyLDB4MDEsMHg1YywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzgsMHgwMSB9LAotICAxNiwgMHhiZTQwLCAwLCB7MHg3MiwweDAxLDB4NWMsMHg4MCwweDU3LDB4MjQsMHgxNSwweGMwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZTUwLCAwLCB7MHgwMCwweGMxLDB4NDAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHg0MCwweDIwLDB4MDAsMHgxOCB9LAotICAxNiwgMHhiZTYwLCAwLCB7MHgwMCwweDA2LDB4MDAsMHgwMSwweDkwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHg0MSwweDgwLDB4MDAsMHg2MCB9LAotICAxNiwgMHhiZTcwLCAwLCB7MHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MTAsMHgwNiwweDAwLDB4MDEsMHg4MCB9LAotICAxNiwgMHhiZTgwLCAwLCB7MHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ4LDB4MDQsMHgyMiwweDAxLDB4MDgsMHg4MCB9LAotICAxNiwgMHhiZTkwLCAwLCB7MHgwMiwweDIwLDB4MTAsMHg4OCwweDA0LDB4NjIsMHgwMSwweDA4LDB4ODAsMHg0MiwweDIwLDB4MTAsMHg4OCwweDAwLDB4MjAsMHgwMSB9LAotICAxNiwgMHhiZWEwLCAwLCB7MHgwOCwweDgwLDB4NDIsMHgyMCwweDAwLDB4ODgsMHgwNCwweDIyLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgyMCwweDEwLDB4ODgsMHgwMCB9LAotICAxNiwgMHhiZWIwLCAwLCB7MHgyMiwweDAxLDB4MDgsMHg4MCwweDQyLDB4MzAsMHgxMCwweDgwLDB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZWMwLCAwLCB7MHgwMCwweGM1LDB4NGEsMHgwNSwweDQyLDB4ODEsMHg1MCwweGEwLDB4MDQsMHgyOCwweDE1LDB4MGEsMHgwNSwweDUyLDB4ODEsMHgxMCB9LAotICAxNiwgMHhiZWQwLCAwLCB7MHhhMCwweDQ0LDB4MjgsMHgxMSwweDFhLDB4MDAsMHg0MCwweDgwLDB4MTAsMHhhMCwweDU0LDB4MjgsMHgwNSwweDBhLDB4MDUsMHg0MiB9LAotICAxNiwgMHhiZWUwLCAwLCB7MHg4MSwweDUxLDB4MjAsMHgxNCwweDI4LDB4MTUsMHgwYSwweDAxLDB4NDIsMHg4MSwweDUwLDB4YTAsMHg1NCwweDI4LDB4MTUsMHgwMCB9LAotICAxNiwgMHhiZWYwLCAwLCB7MHgzMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDBjLDB4MDEsMHg1MywweDQwLDB4NTQsMHhjMCB9LAotICAxNiwgMHhiZjAwLCAwLCB7MHgxNSwweDMwLDB4MDUsMHg1YywweDAxLDB4NTcsMHg0MCwweDU0LDB4YzAsMHgxNSwweDMwLDB4MDUsMHg1YywweDAxLDB4NTMsMHgwMCB9LAotICAxNiwgMHhiZjEwLCAwLCB7MHg1NSwweGMwLDB4MTUsMHg3NCwweDA1LDB4NGMsMHgwMSwweDUzLDB4MDAsMHg1NSwweGMwLDB4MTUsMHg3NCwweDA1LDB4NGMsMHgwMSB9LAotICAxNiwgMHhiZjIwLCAwLCB7MHg1MywweDAwLDB4NTQsMHhjMCwweDExLDB4MzAsMHgwMSwweDQwLDB4MjEsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZjMwLCAwLCB7MHgwMCwweDgwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgxMCB9LAotICAxNiwgMHhiZjQwLCAwLCB7MHgwMCwweDA0LDB4MDAsMHgwMSwweDAwLDB4MDAsMHg0MiwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgxMSwweDAwLDB4MDAsMHg0MCB9LAotICAxNiwgMHhiZjUwLCAwLCB7MHgwMCwweDEwLDB4YzEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NDAsMHgwMCwweDEwLDB4MDAsMHgwMSwweDEwLDB4MDEsMHgwMSB9LAotICAxNiwgMHhiZjYwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDYwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCB9LAotICAxNiwgMHhiZjcwLCAwLCB7MHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCB9LAotICAxNiwgMHhiZjgwLCAwLCB7MHg4MiwweDAwLDB4MjAsMHg4NCwweDAwLDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4NCwweDA4LDB4MjAsMHgwMiB9LAotICAxNiwgMHhiZjkwLCAwLCB7MHgwOCwweDAwLDB4ODIsMHgwMCwweDIxLDB4ODAsMHgwOCwweDAxLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhiZmEwLCAwLCB7MHgwMCwweGM1LDB4NDAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4OTYsMHgwMCwweDE1LDB4OTAsMHgwNSwweDY0LDB4MDIsMHg1OCB9LAotICAxNiwgMHhiZmIwLCAwLCB7MHgwMCwweDU2LDB4MDAsMHg1NSwweDkwLDB4MDUsMHg2MCwweDAxLDB4ZDksMHgwMCwweDE2LDB4NDAsMHgxNSwweDgwLDB4MDUsMHg2MCB9LAotICAxNiwgMHhiZmMwLCAwLCB7MHgwMSwweDU5LDB4MDAsMHg3NiwweDQwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCB9LAotICAxNiwgMHhiZmQwLCAwLCB7MHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNCwweDQwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCB9LAotICAxNiwgMHhiZmUwLCAwLCB7MHgzNiwweDAwLDB4NGQsMHg4MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MGQsMHg4MCwweDA3LDB4NjIsMHgwMCB9LAotICAxNiwgMHhiZmYwLCAwLCB7MHg1OCwweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwNywweDYwLDB4MDAsMHhkOCwweDgwLDB4MTYsMHgwMCwweDBkLDB4ODAsMHgwMyB9LAotICAxNiwgMHhjMDAwLCAwLCB7MHg2MCwweDAwLDB4ZDgsMHgwMCwweDM2LDB4MDAsMHgxZCwweDgwLDB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMDEwLCAwLCB7MHgwMCwweGM1LDB4NDIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYyB9LAotICAxNiwgMHhjMDIwLCAwLCB7MHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweGMxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDYsMHgzMCB9LAotICAxNiwgMHhjMDMwLCAwLCB7MHg4MSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTgsMHhjMCB9LAotICAxNiwgMHhjMDQwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9LAotICAxNiwgMHhjMDUwLCAwLCB7MHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDQwLDB4MzAsMHgwMCB9LAotICAxNiwgMHhjMDYwLCAwLCB7MHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCB9LAotICAxNiwgMHhjMDcwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMDgwLCAwLCB7MHgwMCwweDgwLDB4MDIsMHgwMSwweDMwLDB4ODAsMHg0YywweDIwLDB4MTMsMHgwOCwweDA0LDB4YzIsMHgwMSwweDMwLDB4ODAsMHg0YyB9LAotICAxNiwgMHhjMDkwLCAwLCB7MHgyMCwweDEzLDB4MDgsMHgwNCwweGMyLDB4MjUsMHgzMCwweDgxLDB4NGMsMHgyMCwweDEzLDB4MDgsMHgwNCwweGMyLDB4MDEsMHgzMCB9LAotICAxNiwgMHhjMGEwLCAwLCB7MHg4MCwweDRjLDB4MzIsMHg1MywweDA4LDB4MDQsMHhjMiwweDAxLDB4MzAsMHg4MCwweDRjLDB4MjAsMHgxMywweDA4LDB4MDQsMHhjMCB9LAotICAxNiwgMHhjMGIwLCAwLCB7MHgyMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQyLDB4MDUsMHg2MiwweDgxLDB4NTgsMHgyMCB9LAotICAxNiwgMHhjMGMwLCAwLCB7MHg1NiwweDA4LDB4MTUsMHg4MiwweDA0LDB4NjAsMHg4MSwweDU4LDB4MjAsMHg0NiwweDA4LDB4MTUsMHg4MiwweDAxLDB4NjAsMHhjMSB9LAotICAxNiwgMHhjMGQwLCAwLCB7MHg1OCwweDIwLDB4NDYsMHgwOCwweDE1LDB4ODIsMHgwMSwweDYwLDB4ODEsMHg1OCwweDMwLDB4NTYsMHgwOCwweDE1LDB4ODIsMHgwNSB9LAotICAxNiwgMHhjMGUwLCAwLCB7MHg2MCwweDgxLDB4NTgsMHgyMCwweDU2LDB4MDgsMHgwNSwweDgwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMGYwLCAwLCB7MHgwMCwweGM1LDB4NDIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCB9LAotICAxNiwgMHhjMTAwLCAwLCB7MHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MGMsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCB9LAotICAxNiwgMHhjMTEwLCAwLCB7MHg4MCwweDA4LDB4MjAsMHgwMywweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MCB9LAotICAxNiwgMHhjMTIwLCAwLCB7MHgyMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQyLDB4MDQsMHg2NiwweDgxLDB4MTgsMHgyMCB9LAotICAxNiwgMHhjMTMwLCAwLCB7MHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjQsMHg4MSwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDAwLDB4NjAsMHg4MSB9LAotICAxNiwgMHhjMTQwLCAwLCB7MHgwYywweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwMCwweDYwLDB4ODEsMHgxOSwweDIwLDB4NDMsMHgwOCwweDExLDB4ODIsMHgwNCB9LAotICAxNiwgMHhjMTUwLCAwLCB7MHg2MCwweDgxLDB4MTksMHgyMCwweDQ2LDB4NDgsMHgwMSwweDgwLDB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMTYwLCAwLCB7MHgwMCwweGM1LDB4NjAsMHgwNSwweDU4LDB4MDEsMHg1NiwweDAwLDB4NTUsMHg4MCwweDE1LDB4NjAsMHgwNCwweDU4LDB4MDEsMHg1NiB9LAotICAxNiwgMHhjMTcwLCAwLCB7MHgwMCwweDQ1LDB4ODAsMHgxMSwweDYwLDB4MDAsMHg1OCwweDAwLDB4MDYsMHgwMCwweDQ1LDB4ODAsMHgxNSwweDYwLDB4MDEsMHg1OCB9LAotICAxNiwgMHhjMTgwLCAwLCB7MHgwMSwweDE2LDB4MDAsMHgwMSwweDgwLDB4MTUsMHg2MCwweDA1LDB4NTgsMHgwMSwweDU2LDB4MDAsMHg1NSwweDgwLDB4MDUsMHg0MCB9LAotICAxNiwgMHhjMTkwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA2LDB4MDEsMHg0OSwweDgwLDB4MTAsMHg2MCB9LAotICAxNiwgMHhjMWEwLCAwLCB7MHgxNCwweDE4LDB4MDUsMHgwNiwweDAxLDB4NzksMHg4MCwweDUwLDB4NjAsMHgxNCwweDE4LDB4MDEsMHgwNiwweDAxLDB4NDEsMHg4MCB9LAotICAxNiwgMHhjMWIwLCAwLCB7MHg1MCwweDYwLDB4MDQsMHgxOCwweDA1LDB4MDYsMHgwMSwweDQxLDB4ODAsMHgxMCwweDYwLDB4MTQsMHgxOCwweDA1LDB4MDYsMHgwMSB9LAotICAxNiwgMHhjMWMwLCAwLCB7MHg0MSwweDgwLDB4NTAsMHg2MCwweDE0LDB4MTgsMHgwNSwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMWQwLCAwLCB7MHgwMCwweDgwLDB4MDIsMHgwMSwweDA0LDB4ODAsMHg0MCwweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMCwweDA0LDB4MDQsMHg0MCB9LAotICAxNiwgMHhjMWUwLCAwLCB7MHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwMCwweDg0LDB4NDAsMHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwMCB9LAotICAxNiwgMHhjMWYwLCAwLCB7MHg4MCwweDQxLDB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDExLDB4MDAsMHg4MCwweDQxLDB4MjAsMHgxMCwweDQ4LDB4MDQsMHgwMCB9LAotICAxNiwgMHhjMjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCB9LAotICAxNiwgMHhjMjEwLCAwLCB7MHgzNSwweDE4LDB4MGQsMHg0NiwweDAyLDB4MTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0NiwweDAzLDB4MTEsMHg4MCB9LAotICAxNiwgMHhjMjIwLCAwLCB7MHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMyB9LAotICAxNiwgMHhjMjMwLCAwLCB7MHg1MSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQwLDB4MzEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMjQwLCAwLCB7MHgwMCwweGM1LDB4NDYsMHgwNSwweDcwLDB4ODEsMHg1YywweDYwLDB4MDcsMHgxOCwweDE1LDB4YzYsMHgwNCwweDcxLDB4ODEsMHgxYyB9LAotICAxNiwgMHhjMjUwLCAwLCB7MHg2MCwweDE3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHgzMSwweDgxLDB4ZGMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSB9LAotICAxNiwgMHhjMjYwLCAwLCB7MHg4MCwweDFjLDB4NjAsMHg3NywweDE4LDB4MTUsMHhjZSwweDA1LDB4NzEsMHg4MSwweDVjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjMCB9LAotICAxNiwgMHhjMjcwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDQ2LDB4MDIsMHg3MSwweDgwLDB4OWMsMHg2MSB9LAotICAxNiwgMHhjMjgwLCAwLCB7MHg3NywweDE4LDB4MGQsMHhjNiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjAsMHgzNywweDE4LDB4MGQsMHhjMiwweDAzLDB4MzEsMHg4MCB9LAotICAxNiwgMHhjMjkwLCAwLCB7MHg1YywweDYwLDB4MjcsMHgxOCwweDBkLDB4YzYsMHgwMywweDcxLDB4ODAsMHg5YywweDYwLDB4MTcsMHgxOCwweDBkLDB4Y2UsMHgwMyB9LAotICAxNiwgMHhjMmEwLCAwLCB7MHg3MSwweDgwLDB4ZGMsMHg2MCwweDM3LDB4MTgsMHgwZCwweGMwLDB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMmIwLCAwLCB7MHgwMCwweDQ1LDB4NDYsMHgwNSwweDc1LDB4ODEsMHg1YywweDYwLDB4NzcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDc1LDB4ODEsMHg1YyB9LAotICAxNiwgMHhjMmMwLCAwLCB7MHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHgzMSwweDgxLDB4MGMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSB9LAotICAxNiwgMHhjMmQwLCAwLCB7MHg4MSwweDVjLDB4NjAsMHg0MywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEsMHg4MSwweDVjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjMCB9LAotICAxNiwgMHhjMmUwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9LAotICAxNiwgMHhjMmYwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCB9LAotICAxNiwgMHhjMzAwLCAwLCB7MHg1YywweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDAwLDB4MTcsMHgwOCwweDA0LDB4ODIsMHgwMSB9LAotICAxNiwgMHhjMzEwLCAwLCB7MHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMzIwLCAwLCB7MHgwMCwweDAwLDB4MDYsMHgwMSwweDYzLDB4ODAsMHg1OCwweDYwLDB4MTYsMHgxOCwweDA1LDB4ODYsMHgwMSwweDYxLDB4ODAsMHg1OCB9LAotICAxNiwgMHhjMzMwLCAwLCB7MHg2MCwweDE2LDB4MTgsMHgwNSwweDg2LDB4MDEsMHg2MSwweDgxLDB4NTgsMHg2MCwweDE2LDB4MTgsMHgwNSwweDg2LDB4MDEsMHg2MSB9LAotICAxNiwgMHhjMzQwLCAwLCB7MHg4MCwweDU4LDB4NjAsMHg1NiwweDE4LDB4MDUsMHg4NiwweDAxLDB4NjEsMHg4MCwweDU4LDB4NjAsMHgxNiwweDE4LDB4MDUsMHg4MCB9LAotICAxNiwgMHhjMzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQwLDB4MDUsMHg3MCwweDAxLDB4NWMsMHgwMCB9LAotICAxNiwgMHhjMzYwLCAwLCB7MHgxNywweDAwLDB4MTUsMHhjMCwweDg1LDB4NzQsMHgwMSwweDFjLDB4MDAsMHg0NywweDAwLDB4MTEsMHhjMCwweDA1LDB4NzAsMHgwMSB9LAotICAxNiwgMHhjMzcwLCAwLCB7MHg1YywweDAwLDB4NTMsMHgwMCwweDEwLDB4YzAsMHgwNSwweDcwLDB4MDEsMHg1YywweDAwLDB4NTcsMHgwMCwweDE0LDB4YzksMHgwNCB9LAotICAxNiwgMHhjMzgwLCAwLCB7MHg3MCwweDAxLDB4MWMsMHgwMCwweDU3LDB4MDAsMHgxNSwweGMwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjMzkwLCAwLCB7MHgwMCwweDQ1LDB4NDIsMHgwMCwweDYwLDB4YzAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAxLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOCB9LAotICAxNiwgMHhjM2EwLCAwLCB7MHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHgyMCwweDgwLDB4MTgsMHgzMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MTAsMHg2MCB9LAotICAxNiwgMHhjM2IwLCAwLCB7MHg4MCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDAsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MCB9LAotICAxNiwgMHhjM2MwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NCwweDQyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCB9LAotICAxNiwgMHhjM2QwLCAwLCB7MHgwMiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSB9LAotICAxNiwgMHhjM2UwLCAwLCB7MHgwOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDExLDB4ODIsMHgwNCB9LAotICAxNiwgMHhjM2YwLCAwLCB7MHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDgwLDB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNDAwLCAwLCB7MHgwMCwweDQ1LDB4NDIsMHgwNSwweDQwLDB4YzUsMHg1MCwweDIwLDB4MTQsMHgwOCwweDE1LDB4MDAsMHgwNCwweDQwLDB4ODEsMHg1MCB9LAotICAxNiwgMHhjNDEwLCAwLCB7MHgyMCwweDU0LDB4MDgsMHgxMSwweDAyLDB4MDUsMHgwMCwweDgwLDB4MTAsMHgyMCwweDQ1LDB4MGMsMHgxMSwweDQyLDB4MDQsMHg0MCB9LAotICAxNiwgMHhjNDIwLCAwLCB7MHg4MSwweDUwLDB4MjAsMHgxNCwweDBjLDB4MTUsMHg0MiwweDA0LDB4NDAsMHg4MSwweDEwLDB4MjAsMHg1NCwweDA4LDB4MTUsMHgwMCB9LAotICAxNiwgMHhjNDMwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAzLDB4MDEsMHg1MCwweGMwLDB4NDQsMHgzMCB9LAotICAxNiwgMHhjNDQwLCAwLCB7MHgxNSwweDBjLDB4MDUsMHg0MywweDAxLDB4NTAsMHhjMCwweDRjLDB4MzAsMHgxNSwweDBjLDB4MDUsMHg0MywweDIxLDB4NTAsMHhjMCB9LAotICAxNiwgMHhjNDUwLCAwLCB7MHg1NCwweDMwLDB4MTUsMHgwYywweDA1LDB4NDMsMHgwMSwweDUwLDB4YzAsMHg1NCwweDMwLDB4MTUsMHgwYywweDA1LDB4NDMsMHgwMSB9LAotICAxNiwgMHhjNDYwLCAwLCB7MHg1MCwweGMwLDB4NTQsMHgyMCwweDE1LDB4MGMsMHgwNSwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNDcwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgwNCwweDgwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgwNCB9LAotICAxNiwgMHhjNDgwLCAwLCB7MHg4MCwweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHgwMiwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDA4LDB4MDAsMHg0MiB9LAotICAxNiwgMHhjNDkwLCAwLCB7MHgwMCwweDEwLDB4ODAsMHgwNCwweDAwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAsMHgwNCwweDIwLDB4MDEsMHgwMCB9LAotICAxNiwgMHhjNGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQyLDB4MDIsMHgwMCwweDgwLDB4ODQsMHgyMCB9LAotICAxNiwgMHhjNGIwLCAwLCB7MHgyMCwweDA4LDB4MDgsMHgwMiwweDAyLDB4MDAsMHg4MCwweDg0LDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMiwweDAyLDB4MDAsMHg4MCB9LAotICAxNiwgMHhjNGMwLCAwLCB7MHg4MCwweGEwLDB4MjAsMHgyOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4MCwweDIwLDB4MjAsMHgyOCwweDA4LDB4MDIsMHgwMiB9LAotICAxNiwgMHhjNGQwLCAwLCB7MHgwMCwweDgwLDB4ODAsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNGUwLCAwLCB7MHgwMCwweDQ1LDB4NDAsMHgwNSwweDYwLDB4NDEsMHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCB9LAotICAxNiwgMHhjNGYwLCAwLCB7MHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHgyMCwweDAxLDB4ZDgsMHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHg2MCB9LAotICAxNiwgMHhjNTAwLCAwLCB7MHgwMSwweDU4LDB4MDAsMHg3NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCB9LAotICAxNiwgMHhjNTEwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCB9LAotICAxNiwgMHhjNTIwLCAwLCB7MHgyNiwweDAwLDB4MGQsMHg4MCwweDAyLDB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MGQsMHg4MCwweDA3LDB4NjAsMHgwMSB9LAotICAxNiwgMHhjNTMwLCAwLCB7MHg1YywweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwLDB4NTcsMHgwMCwweDBkLDB4ODAsMHgwMiB9LAotICAxNiwgMHhjNTQwLCAwLCB7MHg2MCwweDAwLDB4OTgsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwNCwweDMwLDB4MjEsMHgwYywweDAwLDB4NDMsMHgwMCwweDEwLDB4YzAsMHgwNCwweDMwLDB4MDEsMHgwYyB9LAotICAxNiwgMHhjNTYwLCAwLCB7MHgwMCwweDQzLDB4MDAsMHgxMCwweGMwLDB4MDQsMHgzMCwweDAxLDB4MTgsMHgwMCwweDQzLDB4MDAsMHgxMCwweGMwLDB4MDQsMHgzMCB9LAotICAxNiwgMHhjNTcwLCAwLCB7MHgwMSwweDBjLDB4MDAsMHg0NiwweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAsMHgwMSwweDBjLDB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCB9LAotICAxNiwgMHhjNTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9LAotICAxNiwgMHhjNTkwLCAwLCB7MHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzUsMHgwOCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjNiwweDAwLDB4MTQsMHgwMCB9LAotICAxNiwgMHhjNWEwLCAwLCB7MHgwOCwweDAwLDB4MDMsMHg0MCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwZCwweDQwLDB4MDIsMHgwMCwweDAwLDB4YzAsMHgwMCB9LAotICAxNiwgMHhjNWIwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNWMwLCAwLCB7MHgwMCwweDAwLDB4MDUsMHgwMSwweDMxLDB4NDAsMHg0YywweDUwLDB4MTMsMHgxNCwweDA0LDB4YzUsMHgwMSwweDMxLDB4YzAsMHg0YyB9LAotICAxNiwgMHhjNWQwLCAwLCB7MHg1MCwweDEzLDB4MTQsMHgwNCwweGM1LDB4MDUsMHgzMSwweDQxLDB4NGMsMHg1MCwweDEzLDB4MTQsMHgwNCwweGM1LDB4MDEsMHgzMSB9LAotICAxNiwgMHhjNWUwLCAwLCB7MHg0MCwweDRjLDB4NzAsMHg1MywweDE0LDB4MDQsMHhjNSwweDAxLDB4MzEsMHg0MCwweDRjLDB4NDAsMHgxMywweDE0LDB4MDQsMHhjMCB9LAotICAxNiwgMHhjNWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIzLDB4MDUsMHg2OCwweGMxLDB4NWEsMHgzMCB9LAotICAxNiwgMHhjNjAwLCAwLCB7MHg1NiwweDhjLDB4MTUsMHhhMywweDA1LDB4NjksMHhjMSwweDVhLDB4MzAsMHg0NiwweDhjLDB4MTEsMHhhNywweDAxLDB4NjgsMHhjMCB9LAotICAxNiwgMHhjNjEwLCAwLCB7MHgxYSwweDMwLDB4NTYsMHg4YywweDExLDB4YTMsMHgwNCwweDY4LDB4YzEsMHgxYSwweDMwLDB4MTYsMHg4YywweDE1LDB4YTMsMHgwNCB9LAotICAxNiwgMHhjNjIwLCAwLCB7MHg2OCwweGMxLDB4NWEsMHgzMCwweDU2LDB4OGMsMHgxMSwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDI0LDB4MDAsMHgwOCB9LAotICAxNiwgMHhjNjQwLCAwLCB7MHgwMSwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyNCwweDAwLDB4MDgsMHg4MCwweDAyLDB4NjAsMHgwMCwweDgwLDB4MDAsMHgyMCB9LAotICAxNiwgMHhjNjUwLCAwLCB7MHgwMCwweDA5LDB4NDAsMHgwMiwweDIwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCB9LAotICAxNiwgMHhjNjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4NDQsMHg2MiwweDExLDB4MTgsMHg4NCB9LAotICAxNiwgMHhjNjcwLCAwLCB7MHg0NiwweDIxLDB4MTEsMHg4OCwweDQ0LDB4NjIsMHgwOSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4OCwweDYwLDB4NjIsMHgxMCB9LAotICAxNiwgMHhjNjgwLCAwLCB7MHgxOCwweDA0LDB4NDYsMHgwMSwweDExLDB4ODgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDgwLDB4MDYsMHgwMSwweDExLDB4ODgsMHg0NCB9LAotICAxNiwgMHhjNjkwLCAwLCB7MHg2MiwweDExLDB4MTgsMHg4NCwweDQ2LDB4MjEsMHgxMSwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg0NSwweDUwLDB4MTEsMHg1NCwweDA0LDB4NTUsMHgwMSwweDE1LDB4NDAsMHg0NCwweDUwLDB4MTEsMHg1NCB9LAotICAxNiwgMHhjNmIwLCAwLCB7MHgwNCwweDQ1LDB4MDEsMHgxMSwweDQwLDB4NDAsMHg1MCwweDEwLDB4NTQsMHgwNCwweDQ1LDB4MDEsMHgxNSwweDQwLDB4NDQsMHg1MCB9LAotICAxNiwgMHhjNmMwLCAwLCB7MHgxMSwweDE0LDB4MDAsMHgxNSwweDAxLDB4MTUsMHg0MCwweDQ0LDB4NTAsMHgxMSwweDU0LDB4MDQsMHg1NSwweDAwLDB4MTEsMHg0MCB9LAotICAxNiwgMHhjNmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MjEsMHg0MiwweDA4LDB4NTAsMHg4MiB9LAotICAxNiwgMHhjNmUwLCAwLCB7MHgxNCwweDIwLDB4ODUsMHgwOCwweDIxLDB4NDIsMHgwMCwweDUwLDB4ODIsMHgxNCwweDIwLDB4ODUsMHgwOCwweDIwLDB4NDIsMHgwOCB9LAotICAxNiwgMHhjNmYwLCAwLCB7MHg1MCwweDgyLDB4MTUsMHgyMCwweDA1LDB4NDgsMHgyMSwweDQyLDB4MDgsMHg1MCwweDgyLDB4MTQsMHgyMCwweDgxLDB4NDAsMHgyMSB9LAotICAxNiwgMHhjNzAwLCAwLCB7MHg0MiwweDA4LDB4NTAsMHg4MiwweDE0LDB4MjAsMHg4NSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNzEwLCAwLCB7MHgwMCwweDAwLDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MTAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODQsMHg0MCB9LAotICAxNiwgMHhjNzIwLCAwLCB7MHhhMSwweDEwLDB4MjgsMHgwNCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDAwLDB4MjgsMHgwMCwweDBhLDB4MDEsMHgwMiB9LAotICAxNiwgMHhjNzMwLCAwLCB7MHg4MCwweDQwLDB4YjAsMHgxMCwweDI4LDB4MDAsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgxMCwweDI4LDB4MDQsMHgwMCB9LAotICAxNiwgMHhjNzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBjLDB4MDMsMHg1MywweDAwLDB4ZDQsMHhjMCB9LAotICAxNiwgMHhjNzUwLCAwLCB7MHgzNSwweDMwLDB4MGQsMHg0YywweDAzLDB4NTMsMHgwMCwweGQ0LDB4YzAsMHgzNSwweDMwLDB4MGQsMHg0YywweDAzLDB4NTMsMHgwMCB9LAotICAxNiwgMHhjNzYwLCAwLCB7MHhkNCwweGMwLDB4MjEsMHgzMCwweDA4LDB4NGMsMHgwMywweDUzLDB4MDAsMHhkNCwweGMwLDB4MzUsMHgzMCwweDA4LDB4NGMsMHgwMyB9LAotICAxNiwgMHhjNzcwLCAwLCB7MHg1MywweDAwLDB4ZDQsMHhjMCwweDM1LDB4MzAsMHgwZCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjNzgwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHgwNCwweDcwLDB4MDEsMHg1YywweDgwLDB4MDcsMHgyMCwweDI1LDB4YzksMHgwNCwweDcyLDB4MDEsMHg1YyB9LAotICAxNiwgMHhjNzkwLCAwLCB7MHg4MCwweDQ3LDB4MjAsMHgxNSwweGM4LDB4MDAsMHg3MiwweDA1LDB4ZGMsMHg4MCwweDU3LDB4MjAsMHgxNSwweGM4LDB4MDUsMHg3MiB9LAotICAxNiwgMHhjN2EwLCAwLCB7MHgwMSwweDFjLDB4OTAsMHg2NywweDIwLDB4MTUsMHhjOCwweDA1LDB4NzIsMHgwMSwweDFjLDB4ODAsMHg1NywweDIwLDB4MTUsMHhjMCB9LAotICAxNiwgMHhjN2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIzLDB4MTgsMHg0OCwweGMyLDB4MTIsMHgzMSB9LAotICAxNiwgMHhjN2MwLCAwLCB7MHg4NCwweDhjLDB4NjEsMHgwMywweDE4LDB4NDAsMHhjOCwweDEyLDB4MzEsMHg4NCwweDhjLDB4NjEsMHgwMywweDE4LDB4NDgsMHhjNCB9LAotICAxNiwgMHhjN2QwLCAwLCB7MHgxMCwweDMxLDB4ODQsMHgwYywweDQxLDB4MjMsMHgxOCwweDQ4LDB4YzYsMHgxMCwweDMwLDB4MDQsMHgwYywweDYxLDB4MjMsMHgxOCB9LAotICAxNiwgMHhjN2UwLCAwLCB7MHg0OCwweGM2LDB4MTIsMHgzMCwweDg0LDB4OGMsMHgyMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjN2YwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMyB9LAotICAxNiwgMHhjODAwLCAwLCB7MHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiB9LAotICAxNiwgMHhjODEwLCAwLCB7MHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4YmQsMHgwMCB9LAotICAxNiwgMHhjODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjODMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjODQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjODUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjODYwLCAwLCB7MHgwMCwweDAwLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDA5LDB4MzYsMHhjMiB9LAotICAxNiwgMHhjODcwLCAwLCB7MHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiB9LAotICAxNiwgMHhjODgwLCAwLCB7MHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4MmMsMHgwMCB9LAotICAxNiwgMHhjODkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMzLDB4M2MsMHg0YywweGNmLDB4MTMsMHgzMyB9LAotICAxNiwgMHhjOGEwLCAwLCB7MHhjNCwweGNjLDB4ZjEsMHgzMywweDNjLDB4NGQsMHg0ZSwweDkzLDB4MzMsMHhjNCwweGNjLDB4ZjEsMHgyYiwweDNjLDB4NGMsMHhjZiB9LAotICAxNiwgMHhjOGIwLCAwLCB7MHgxMywweDMzLDB4YzQsMHhjYywweGU5LDB4MzMsMHgzYywweDRjLDB4Y2YsMHgxMiwweGI1LDB4YzQsMHhjYywweGYxLDB4MzMsMHgzYyB9LAotICAxNiwgMHhjOGMwLCAwLCB7MHg0YywweGNmLDB4MTMsMHgzMywweGM0LDB4Y2QsMHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjOGQwLCAwLCB7MHgwMCwweDAwLDB4M2IsMHg3ZSwweDRlLDB4YzcsMHg5MywweGI3LDB4ZTQsMHhlZCwweGY5LDB4MjMsMHg3ZSwweDRlLDB4NDcsMHg5MyB9LAotICAxNiwgMHhjOGUwLCAwLCB7MHhiNywweGU0LDB4ZWQsMHhmOSwweDNmLDB4N2UsMHg0ZSwweGRlLDB4MTIsMHgzNywweGU0LDB4OGQsMHhmOSwweDNiLDB4N2UsMHg0ZSB9LAotICAxNiwgMHhjOGYwLCAwLCB7MHhkZiwweDkzLDB4ZjcsMHg4NCwweDhkLDB4ZjksMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzLDB4YjEsMHhlNCwweGVkLDB4YjksMHgwMCB9LAotICAxNiwgMHhjOTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MDIsMHg3MCwweDQwLDB4OWMsMHgxMSB9LAotICAxNiwgMHhjOTEwLCAwLCB7MHg2NywweDA0LDB4MTksMHhjMywweDAyLDB4NzAsMHg0MCwweDljLDB4MTAsMHgyNywweDA0LDB4MDksMHhjMSwweDAyLDB4NzAsMHg0MCB9LAotICAxNiwgMHhjOTIwLCAwLCB7MHgxYywweDEwLDB4MjcsMHgxNCwweDAxLDB4YzEsMHgwMiwweDcwLDB4NDAsMHg5YywweDUwLDB4MDcsMHgwNCwweDA5LDB4YzEsMHgwMiB9LAotICAxNiwgMHhjOTMwLCAwLCB7MHg3MCwweDQwLDB4OWMsMHgxMCwweDY3LDB4MTQsMHgxMSwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjOTQwLCAwLCB7MHgwMCwweDAwLDB4MDQsMHgwNSwweDcxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzQsMHgwNSwweDcxLDB4MDEsMHg1YyB9LAotICAxNiwgMHhjOTUwLCAwLCB7MHg0MCwweDU3LDB4MTAsMHgxNSwweGM2LDB4MDUsMHg3MSwweDAxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxMCwweGM0LDB4MDUsMHg3MSB9LAotICAxNiwgMHhjOTYwLCAwLCB7MHgwMSwweDVjLDB4NjQsMHgwMywweDEwLDB4NTUsMHhjNCwweDA1LDB4NzEsMHgwMSwweDVjLDB4NDAsMHg1NywweDEwLDB4MTUsMHhjMCB9LAotICAxNiwgMHhjOTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9LAotICAxNiwgMHhjOTgwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjEsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDAxLDB4MjAsMHg4MCB9LAotICAxNiwgMHhjOTkwLCAwLCB7MHg0OCwweDIwLDB4MTIsMHgwOCwweDA1LDB4YzIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDI0LDB4MTcsMHgwOCwweDA0LDB4ODIsMHgwMSB9LAotICAxNiwgMHhjOWEwLCAwLCB7MHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODQsMHgwMCwweDYwLDB4MDAsMHgxOCB9LAotICAxNiwgMHhjOWMwLCAwLCB7MHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAxLDB4MTgsMHgwMCwweDA2LDB4MTAsMHg5MSwweDgwLDB4MDAsMHg2MCB9LAotICAxNiwgMHhjOWQwLCAwLCB7MHgwMCwweDE4LDB4NDYsMHg0NiwweDE4LDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDEwLDB4MDEsMHg4MCB9LAotICAxNiwgMHhjOWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHg3MywweDAxLDB4MWMsMHg4MCB9LAotICAxNiwgMHhjOWYwLCAwLCB7MHgwNywweDIwLDB4MDEsMHhjOCwweDA0LDB4NzIsMHgwMSwweDFjLDB4ODAsMHg0NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMSB9LAotICAxNiwgMHhjYTAwLCAwLCB7MHgxYywweDgwLDB4NDcsMHgyMiwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4MDcsMHgyMCwweDExLDB4YzgsMHgwNCB9LAotICAxNiwgMHhjYTEwLCAwLCB7MHg3MiwweDAxLDB4MWMsMHg4MCwweDA3LDB4MjgsMHgxMSwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCB9LAotICAxNiwgMHhjYTMwLCAwLCB7MHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCB9LAotICAxNiwgMHhjYTQwLCAwLCB7MHgwMCwweDE4LDB4MDAsMHg0NiwweDA0LDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCB9LAotICAxNiwgMHhjYTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4MDQsMHgyMiwweDAxLDB4MDgsMHg4MCB9LAotICAxNiwgMHhjYTYwLCAwLCB7MHgwMiwweDIwLDB4MDAsMHg5MCwweDA0LDB4MjcsMHg4MSwweDA4LDB4ODAsMHg0MiwweDIwLDB4MTAsMHg5OCwweDA0LDB4MjQsMHgwMSB9LAotICAxNiwgMHhjYTcwLCAwLCB7MHgwOCwweDgwLDB4NDIsMHg0OCwweDEwLDB4ODgsMHgwNCwweDIyLDB4MDEsMHgwOSwweDQwLDB4NDIsMHg2MCwweDEwLDB4ODgsMHgwNCB9LAotICAxNiwgMHhjYTgwLCAwLCB7MHgyMiwweDAxLDB4MDgsMHhjMCwweDAyLDB4NDAsMHgxMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYTkwLCAwLCB7MHgwMCwweDAwLDB4MmEsMHgwNCwweDRiLDB4ODEsMHgxMiwweGEwLDB4MDQsMHhhOCwweDAxLDB4MmEsMHgwNCwweDRhLDB4ODEsMHgxMiB9LAotICAxNiwgMHhjYWEwLCAwLCB7MHhhMCwweDQ0LDB4YTgsMHgxMSwweDJhLDB4MDQsMHg0OCwweDgwLDB4MTIsMHhhMCwweDQ0LDB4ODgsMHgwMSwweDJhLDB4MDQsMHg0YSB9LAotICAxNiwgMHhjYWIwLCAwLCB7MHg4MSwweDEyLDB4MjAsMHgwNCwweGFjLDB4MTEsMHgyYSwweDA0LDB4NGEsMHg4MSwweDEyLDB4YjAsMHg0NCwweDljLDB4MTEsMHgwMCB9LAotICAxNiwgMHhjYWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMCwweDBjLDB4MDAsMHg1MywweDAwLDB4MTQsMHhjMCB9LAotICAxNiwgMHhjYWQwLCAwLCB7MHgwNSwweDMwLDB4MDEsMHg0NCwweDAwLDB4NTMsMHgwMCwweDE0LDB4YzAsMHgwNSwweDMwLDB4MDQsMHgwYywweDAwLDB4NTMsMHgwMCB9LAotICAxNiwgMHhjYWUwLCAwLCB7MHgxNCwweGMwLDB4MDUsMHhiMCwweDAxLDB4NGMsMHgwMCwweDUzLDB4MDAsMHgxNiwweGMwLDB4MDEsMHgzMCwweDAxLDB4NGMsMHgwMCB9LAotICAxNiwgMHhjYWYwLCAwLCB7MHg1MywweDAwLDB4MTQsMHhjMCwweDAxLDB4MzgsMHgwMCwweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYjAwLCAwLCB7MHgwOCwweGMwLDB4MDAsMHgxMCwweDQwLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MTAsMHgwMCwweDQ0LDB4ODAsMHgxMCB9LAotICAxNiwgMHhjYjEwLCAwLCB7MHgwMCwweDA0LDB4MDAsMHgwMSwweDEwLDB4MDAsMHg0NiwweDAwLDB4MDAsMHgwMCwweDA0LDB4NjAsMHgwMSwweDAwLDB4MDAsMHg0MCB9LAotICAxNiwgMHhjYjIwLCAwLCB7MHgwMCwweDExLDB4NjAsMHgwMiwweDQwLDB4MDEsMHgwMCwweDEwLDB4NDAsMHgwMCwweDEwLDB4NjAsMHgwMSwweDUwLDB4MTAsMHg0MCB9LAotICAxNiwgMHhjYjMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMCwweDQwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCB9LAotICAxNiwgMHhjYjQwLCAwLCB7MHgyMCwweDAwLDB4MDgsMHgwOCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYjUwLCAwLCB7MHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMiB9LAotICAxNiwgMHhjYjYwLCAwLCB7MHgwMCwweDAwLDB4ODAsMHgwMCwweDIxLDB4MDAsMHgwOCwweDQwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYjcwLCAwLCB7MHgwOCwweGMwLDB4NDAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCB9LAotICAxNiwgMHhjYjgwLCAwLCB7MHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAxLDB4YzgsMHgwMCwweDQ2LDB4MDAsMHgxOSwweDgwLDB4MDAsMHg2MCB9LAotICAxNiwgMHhjYjkwLCAwLCB7MHgwMCwweDE4LDB4MDAsMHg2NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSwweDE4LDB4MDAsMHgwNiwweDAwLDB4MTEsMHg4MCB9LAotICAxNiwgMHhjYmEwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMSwweDAwLDB4MDIsMHg2MCwweDAwLDB4OTgsMHgwMCB9LAotICAxNiwgMHhjYmIwLCAwLCB7MHgyNiwweDAwLDB4MDksMHg4MSwweDAyLDB4NjAsMHgwMSwweDk4LDB4MDAsMHgyNiwweDAwLDB4MDksMHg4MCwweDA2LDB4NjIsMHgwMCB9LAotICAxNiwgMHhjYmMwLCAwLCB7MHg0OCwweDAwLDB4MjYsMHgyMCwweDAxLDB4YzAsMHgwMiwweDYwLDB4MDEsMHg5OCwweDAwLDB4MDcsMHgwMCwweDA5LDB4ODAsMHgwMiB9LAotICAxNiwgMHhjYmQwLCAwLCB7MHg2MCwweDAwLDB4OTgsMHgwMCwweDI2LDB4MDAsMHgxMSwweDgyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYmUwLCAwLCB7MHg0MCwweDQ1LDB4NDIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODUsMHg4YyB9LAotICAxNiwgMHhjYmYwLCAwLCB7MHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4NDgsMHgxMSwweDgyLDB4MDQsMHgzMCB9LAotICAxNiwgMHhjYzAwLCAwLCB7MHg4MSwweDhkLDB4MjAsMHg0NiwweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDBjLDB4MTAsMHhjMCB9LAotICAxNiwgMHhjYzEwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9LAotICAxNiwgMHhjYzIwLCAwLCB7MHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MTAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCB9LAotICAxNiwgMHhjYzMwLCAwLCB7MHgwOCwweDAwLDB4MDMsMHgwMCwweDAwLDB4ODAsMHgwMCwweDMwLDB4MDAsMHgwYywweDgwLDB4MDIsMHgwMCwweDAwLDB4YzAsMHgwMCB9LAotICAxNiwgMHhjYzQwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MjAsMHgwMCwweGMwLDB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjYzUwLCAwLCB7MHg0MCwweDAwLDB4MDIsMHgwMCwweDMwLDB4ODAsMHgwYywweDIxLDB4MDMsMHgwOCwweDAwLDB4YzIsMHgwMCwweDMwLDB4ODAsMHgwYyB9LAotICAxNiwgMHhjYzYwLCAwLCB7MHgyMCwweDAzLDB4MDgsMHgwMCwweGMyLDB4MDQsMHgzMCwweGMxLDB4MGMsMHgyMCwweDAzLDB4MGMsMHgxMCwweGMyLDB4MDAsMHgzMCB9LAotICAxNiwgMHhjYzcwLCAwLCB7MHg4MCwweDBjLDB4YjAsMHg0MywweDA4LDB4MDAsMHhjMiwweDAwLDB4MzAsMHg4MCwweDBjLDB4MjAsMHgwMywweDI4LDB4MTAsMHhjMCB9LAotICAxNiwgMHhjYzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgyMCB9LAotICAxNiwgMHhjYzkwLCAwLCB7MHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MCwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDAwLDB4NjAsMHg4MSB9LAotICAxNiwgMHhjY2EwLCAwLCB7MHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDExLDB4ODIsMHgwNCB9LAotICAxNiwgMHhjY2IwLCAwLCB7MHg2MCwweDgxLDB4MTgsMHgyMCwweDQ2LDB4MGMsMHgxMSwweGMwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjY2MwLCAwLCB7MHg0MCwweDAxLDB4NDIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCB9LAotICAxNiwgMHhjY2QwLCAwLCB7MHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MGMsMHgyMCwweDAyLDB4MDgsMHgwMCwweGMyLDB4MDAsMHgyMCB9LAotICAxNiwgMHhjY2UwLCAwLCB7MHg4MCwweDA4LDB4MjAsMHg0MiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDEsMHg4MCB9LAotICAxNiwgMHhjY2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgwMSwweDQyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgyMCB9LAotICAxNiwgMHhjZDAwLCAwLCB7MHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MCwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDAwLDB4NjAsMHhjMSB9LAotICAxNiwgMHhjZDEwLCAwLCB7MHgwYywweDIwLDB4NDYsMHgwYywweDEwLDB4YzIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDMwLDB4NDIsMHgwOCwweDExLDB4ODIsMHgwNCB9LAotICAxNiwgMHhjZDIwLCAwLCB7MHg2MCwweDgxLDB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMCwweDgwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZDMwLCAwLCB7MHg0MCwweDQ1LDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDAwLDB4NDUsMHgwMCwweDExLDB4NDAsMHgwNCwweDUwLDB4MDAsMHgxNCB9LAotICAxNiwgMHhjZDQwLCAwLCB7MHgwMCwweDQ1LDB4MDAsMHgxMSwweDQwLDB4MDAsMHg1MCwweDAwLDB4MDQsMHgwMCwweDQ1LDB4MDAsMHgwMCwweDQwLDB4MDQsMHg1MCB9LAotICAxNiwgMHhjZDUwLCAwLCB7MHgwMCwweDE0LDB4MDAsMHgwMSwweDAwLDB4MTEsMHg0MCwweDA0LDB4NTAsMHgwMSwweDE0LDB4MDAsMHg0NSwweDAwLDB4MDAsMHg0MiB9LAotICAxNiwgMHhjZDYwLCAwLCB7MHgwMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDA2LDB4MDAsMHg0MSwweDgwLDB4MTAsMHg2MCB9LAotICAxNiwgMHhjZDcwLCAwLCB7MHgwNCwweDE4LDB4MDEsMHgwNiwweDAwLDB4NDEsMHg4MCwweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwNiwweDAwLDB4NDEsMHg4MCB9LAotICAxNiwgMHhjZDgwLCAwLCB7MHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCB9LAotICAxNiwgMHhjZDkwLCAwLCB7MHg0MSwweDgwLDB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZGEwLCAwLCB7MHg0OCwweDAwLDB4MDIsMHgwMSwweDAwLDB4ODAsMHg0MCwweDIxLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwLDB4ODAsMHg0MCB9LAotICAxNiwgMHhjZGIwLCAwLCB7MHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAsMHgyMSwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwMCB9LAotICAxNiwgMHhjZGMwLCAwLCB7MHg4MCwweDQwLDB4MzAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDExLDB4MDAsMHg4NCwweDQwLDB4MjAsMHgxMCwweDA4LDB4MTQsMHgwMCB9LAotICAxNiwgMHhjZGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCB9LAotICAxNiwgMHhjZGUwLCAwLCB7MHgzNSwweDE4LDB4MGQsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0NiwweDAzLDB4NTEsMHg4MCB9LAotICAxNiwgMHhjZGYwLCAwLCB7MHhkNCwweDYwLDB4MzUsMHgxMCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDQwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMyB9LAotICAxNiwgMHhjZTAwLCAwLCB7MHg1MSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZTEwLCAwLCB7MHgwMCwweDAxLDB4NDYsMHgwNCwweDcxLDB4ODEsMHgxYywweDYwLDB4MDcsMHgxOCwweDExLDB4Y2UsMHgwNCwweDcxLDB4ODEsMHgxYyB9LAotICAxNiwgMHhjZTIwLCAwLCB7MHg2MCwweDQ3LDB4MTgsMHgwMSwweGM2LDB4MDQsMHg3MSwweDgxLDB4OWMsMHg2MCwweDQ3LDB4MTgsMHgxOSwweGM2LDB4MDQsMHg3MSB9LAotICAxNiwgMHhjZTMwLCAwLCB7MHg4MCwweDFjLDB4NjAsMHg2NywweDE4LDB4MTEsMHhjNiwweDA0LDB4NzEsMHg4MSwweDFjLDB4NjAsMHg0NywweDE4LDB4MTEsMHhjMCB9LAotICAxNiwgMHhjZTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDQ2LDB4MDIsMHg3MSwweDgwLDB4OWMsMHg2MCB9LAotICAxNiwgMHhjZTUwLCAwLCB7MHgyNywweDE4LDB4MDksMHhjNiwweDA2LDB4NzEsMHg4MCwweDFjLDB4NjAsMHgyNywweDE4LDB4MDksMHhjNiwweDAxLDB4MzEsMHg4MCB9LAotICAxNiwgMHhjZTYwLCAwLCB7MHgxYywweDYwLDB4MDcsMHgxOCwweDA5LDB4YzYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYwLDB4MDcsMHgxOCwweDA5LDB4YzYsMHgxMiB9LAotICAxNiwgMHhjZTcwLCAwLCB7MHg3MSwweDgwLDB4OWMsMHg2MCwweDMzLDB4MTgsMHgwMSwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZTgwLCAwLCB7MHg1MCwweDQ1LDB4NDYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODAsMHg1YyB9LAotICAxNiwgMHhjZTkwLCAwLCB7MHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDEsMHgzMSwweDgxLDB4MGMsMHg2MCwweDE3LDB4MTgsMHgxMCwweGM2LDB4MDUsMHg3MSB9LAotICAxNiwgMHhjZWEwLCAwLCB7MHg4MSwweDVjLDB4NjAsMHgwMywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEsMHg4MSwweDVjLDB4NjAsMHg1MywweDE4LDB4MTgsMHg4MiB9LAotICAxNiwgMHhjZWIwLCAwLCB7MHgxMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0MCwweDEyLDB4MDEsMHgyNCwweDgwLDB4NDgsMHgyMCB9LAotICAxNiwgMHhjZWMwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjQsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCB9LAotICAxNiwgMHhjZWQwLCAwLCB7MHg1OCwweDIwLDB4NTIsMHgwYywweDA1LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OSwweDIwLDB4MDIsMHgwOCwweDA0LDB4ODIsMHgwMSB9LAotICAxNiwgMHhjZWUwLCAwLCB7MHgyMCwweDgwLDB4NDksMHgyMCwweDEyLDB4NDgsMHgwNCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZWYwLCAwLCB7MHg0MCwweDA0LDB4MDYsMHgwMCwweDYxLDB4ODAsMHgxOCwweDYwLDB4MDYsMHgxOCwweDAxLDB4ODYsMHgwNCwweDYxLDB4ODAsMHgxOCB9LAotICAxNiwgMHhjZjAwLCAwLCB7MHg2MCwweDA2LDB4MTgsMHgwMSwweDg2LDB4MDAsMHg2MSwweDgxLDB4NDgsMHg2MCwweDA2LDB4MTgsMHgxNCwweDg2LDB4MDAsMHg2MSB9LAotICAxNiwgMHhjZjEwLCAwLCB7MHg4MCwweDE4LDB4NjAsMHg0MiwweDE4LDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MCwweDE4LDB4NjAsMHgwNiwweDE4LDB4MDAsMHg4MCB9LAotICAxNiwgMHhjZjIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDYwLDB4MDQsMHg3OCwweDAxLDB4MWUsMHgwMCB9LAotICAxNiwgMHhjZjMwLCAwLCB7MHg0NywweDgwLDB4MTEsMHhlOCwweDAwLDB4NzgsMHgwMSwweDFlLDB4MDAsMHg0NywweDgwLDB4MTEsMHhlMCwweDA0LDB4NzgsMHgwMSB9LAotICAxNiwgMHhjZjQwLCAwLCB7MHgxZSwweDAwLDB4NDMsMHg4MCwweDExLDB4ZTAsMHgwNCwweDc4LDB4MDEsMHgxZSwweDAwLDB4MDMsMHg4MCwweDE1LDB4ZTAsMHgwNCB9LAotICAxNiwgMHhjZjUwLCAwLCB7MHg3OCwweDAxLDB4MWUsMHgwMCwweDQ3LDB4ODAsMHgxMSwweGMwLDB4MTAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZjYwLCAwLCB7MHg0MCwweDAxLDB4MTIsMHgwMCwweDY0LDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAxLDB4ODIsMHgwMCwweDY0LDB4ODAsMHgxOCB9LAotICAxNiwgMHhjZjcwLCAwLCB7MHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCwweDgwLDB4MTgsMHgzMCwweDAyLDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCB9LAotICAxNiwgMHhjZjgwLCAwLCB7MHg4MCwweDE5LDB4MzAsMHg0MiwweDA4LDB4MDAsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE5LDB4MjAsMHgwNiwweDQ4LDB4MDEsMHg4MCB9LAotICAxNiwgMHhjZjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDQyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCB9LAotICAxNiwgMHhjZmEwLCAwLCB7MHg0MiwweDA4LDB4MTAsMHg4MiwweDAwLDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSB9LAotICAxNiwgMHhjZmIwLCAwLCB7MHgwOCwweDIwLDB4NDYsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDExLDB4ODIsMHgwNCB9LAotICAxNiwgMHhjZmMwLCAwLCB7MHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhjZmQwLCAwLCB7MHg0MCwweDQ1LDB4NDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4NDQsMHgwOCwweDExLDB4MDIsMHgwMCwweDQwLDB4ODEsMHgxMCB9LAotICAxNiwgMHhjZmUwLCAwLCB7MHgyMCwweDQ0LDB4MDgsMHgxMSwweDAyLDB4MDQsMHg0MCwweDgwLDB4MTAsMHgyMCwweDQ1LDB4MDgsMHgwMSwweDAyLDB4MDQsMHg0MCB9LAotICAxNiwgMHhjZmYwLCAwLCB7MHg4MSwweDEwLDB4MjEsMHgwMCwweDBjLDB4MTEsMHgwMiwweDA0LDB4NDAsMHg4MSwweDEwLDB4MjAsMHg0NCwweDA4LDB4MDEsMHgwMCB9LAotICAxNiwgMHhkMDAwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDAzLDB4MDAsMHg1MCwweGMwLDB4MTQsMHgzMCB9LAotICAxNiwgMHhkMDEwLCAwLCB7MHgwNSwweDBjLDB4MDEsMHg0MywweDAwLDB4NTAsMHhjMCwweDE0LDB4MzAsMHgwNSwweDBjLDB4MDEsMHg0MywweDAwLDB4NTAsMHhjMCB9LAotICAxNiwgMHhkMDIwLCAwLCB7MHgxNCwweDMwLDB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAsMHgxNCwweDMwLDB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCB9LAotICAxNiwgMHhkMDMwLCAwLCB7MHg1MCwweGMwLDB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMDQwLCAwLCB7MHg0MCwweDAwLDB4MDgsMHgwMCwweDQyLDB4MDQsMHgxMCwweDgwLDB4MDQsMHgyMCwweDAxLDB4MDksMHgwMCwweDQyLDB4MDEsMHgxMCB9LAotICAxNiwgMHhkMDUwLCAwLCB7MHg4MCwweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAwLDB4MTAsMHgwMCwweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHg0MiB9LAotICAxNiwgMHhkMDYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAsMHgwNCwweDIwLDB4MTEsMHgwMCB9LAotICAxNiwgMHhkMDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQyLDB4MDIsMHgwMCwweDgwLDB4ODAsMHgyMCB9LAotICAxNiwgMHhkMDgwLCAwLCB7MHgyMCwweDA4LDB4MDgsMHgwMiwweDAyLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMiwweDAwLDB4MDAsMHg4MCB9LAotICAxNiwgMHhkMDkwLCAwLCB7MHg4MCwweGEwLDB4MDAsMHgwYSwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4MCwweDM0LDB4NjIsMHgyOCwweDA4LDB4MDIsMHgwMiB9LAotICAxNiwgMHhkMGEwLCAwLCB7MHgwMCwweDgwLDB4ODAsMHgzMCwweDIwLDB4MGMsMHgwOCwweDAwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMGIwLCAwLCB7MHg0MCwweDAxLDB4NDAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDMsMHgxOCB9LAotICAxNiwgMHhkMGMwLCAwLCB7MHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDYsMHg2MCwweDAxLDB4OTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCB9LAotICAxNiwgMHhkMGQwLCAwLCB7MHgwMSwweDE4LDB4MDAsMHg2NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSwweDE4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCB9LAotICAxNiwgMHhkMGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDAwLDB4MDIsMHg2MCwweDAwLDB4OTgsMHgwMCB9LAotICAxNiwgMHhkMGYwLCAwLCB7MHgyNiwweDAwLDB4MDksMHg4MCwweDAyLDB4NjQsMHgwMCwweDk4LDB4MDAsMHgyNiwweDAwLDB4MTksMHg5MCwweDAyLDB4NjAsMHgwMCB9LAotICAxNiwgMHhkMTAwLCAwLCB7MHgxZCwweDAwLDB4MjYsMHgwMCwweDAxLDB4YzAsMHgwMiwweDYwLDB4MDAsMHg5OSwweDAwLDB4MDYsMHg0MCwweDE5LDB4ODAsMHgwMiB9LAotICAxNiwgMHhkMTEwLCAwLCB7MHg2MCwweDAwLDB4OTgsMHgwMCwweDY2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMTIwLCAwLCB7MHg0MCwweDQ1LDB4NjAsMHgwNCwweDM4LDB4MDEsMHgwZSwweDAwLDB4NDMsMHg4MCwweDEwLDB4ZTAsMHgwNCwweDM4LDB4MDEsMHgwZSB9LAotICAxNiwgMHhkMTMwLCAwLCB7MHgwMCwweDQzLDB4ODAsMHgxMCwweGUwLDB4MDQsMHgzOCwweDAxLDB4MWEsMHgwMCwweDQzLDB4ODAsMHgxMSwweGEwLDB4MDQsMHgzOCB9LAotICAxNiwgMHhkMTQwLCAwLCB7MHgwMSwweDBlLDB4MDAsMHgwMiwweDgwLDB4NDAsMHhlMCwweDA0LDB4MzgsMHgwMSwweDBlLDB4MDAsMHg0MywweDgwLDB4MTgsMHg4MCB9LAotICAxNiwgMHhkMTUwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgwNCwweDAxLDB4MDAsMHgzMCwweDQwLDB4MGMsMHgxMCB9LAotICAxNiwgMHhkMTYwLCAwLCB7MHgwMywweDA0LDB4MDAsMHhjOSwweDAwLDB4MzAsMHg0MCwweDBjLDB4MTAsMHgwMywweDA0LDB4MDAsMHhjMSwweDAwLDB4MzAsMHg0MCB9LAotICAxNiwgMHhkMTcwLCAwLCB7MHgwOCwweDEwLDB4MDMsMHgwNCwweDAwLDB4ODEsMHgwMCwweDMwLDB4NDAsMHgwYywweDc4LDB4MDIsMHgxNCwweDAwLDB4YzEsMHgwMCB9LAotICAxNiwgMHhkMTgwLCAwLCB7MHgzMCwweDQwLDB4MGMsMHgxMCwweDAzLDB4MDQsMHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMTkwLCAwLCB7MHg0MCwweDAwLDB4MDUsMHgwMCwweDMxLDB4NDAsMHgwYywweDUwLDB4MDMsMHgxNCwweDAwLDB4YzUsMHgwMCwweDM1LDB4NDAsMHgwYyB9LAotICAxNiwgMHhkMWEwLCAwLCB7MHg1MCwweDAzLDB4MTQsMHgxMCwweGQ1LDB4MDAsMHgzMSwweDQxLDB4MGQsMHg1MCwweDAzLDB4MTQsMHgxMCwweGM1LDB4MDAsMHgzMSB9LAotICAxNiwgMHhkMWIwLCAwLCB7MHg0MCwweDBkLDB4NDgsMHg0MywweDU0LDB4MTAsMHhjNSwweDAwLDB4MzEsMHg0MCwweDBjLDB4NDAsMHg0MywweDEwLDB4MDAsMHhjMiB9LAotICAxNiwgMHhkMWMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQzLDB4MDQsMHg2MCwweGMxLDB4MTgsMHgzMCB9LAotICAxNiwgMHhkMWQwLCAwLCB7MHg0NiwweDBjLDB4MTEsMHg4MywweDA0LDB4NjEsMHhjMSwweDE4LDB4MzAsMHg0NiwweDBjLDB4MDEsMHg4NywweDA0LDB4NjAsMHhjMSB9LAotICAxNiwgMHhkMWUwLCAwLCB7MHgxOCwweDMwLDB4NDYsMHgwOCwweDExLDB4ODMsMHgwNCwweDYwLDB4YzEsMHgxOCwweDIwLDB4MDYsMHgwYywweDAxLDB4ODMsMHgwNCB9LAotICAxNiwgMHhkMWYwLCAwLCB7MHg2MCwweGMxLDB4MTgsMHgzMCwweDQ2LDB4MGMsMHgxMSwweDgwLDB4MTAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMjAwLCAwLCB7MHg0MCwweDAxLDB4NDAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCB9LAotICAxNiwgMHhkMjEwLCAwLCB7MHgwMCwweDAyLDB4MDAsMHgwMCwweDgxLDB4MDAsMHgyMCwweDAwLDB4MDgsMHg4MCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgyMCB9LAotICAxNiwgMHhkMjIwLCAwLCB7MHgwMCwweDA4LDB4NDAsMHg0MywweDMwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCB9LAotICAxNiwgMHhkMjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMSwweDQ4LDB4NDQsMHg2MiwweDExLDB4MTgsMHg4NCB9LAotICAxNiwgMHhkMjQwLCAwLCB7MHg0NiwweDIxLDB4MTEsMHg4OCwweDQ0LDB4NjMsMHgwMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MDEsMHg4OCwweDA0LDB4NjIsMHgxMSB9LAotICAxNiwgMHhkMjUwLCAwLCB7MHgxOCwweDA0LDB4NDYsMHgyMSwweDEwLDB4YzgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDA1LDB4NDMsMHgwMSwweDgxLDB4ODgsMHg0NCB9LAotICAxNiwgMHhkMjYwLCAwLCB7MHg2MiwweDExLDB4MTgsMHg4NCwweDQ2LDB4MjEsMHgxMSwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMjcwLCAwLCB7MHg0MCwweDQ1LDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDA0LDB4NDUsMHgwMSwweDExLDB4NDAsMHg0NCwweDUwLDB4MDEsMHgxNCB9LAotICAxNiwgMHhkMjgwLCAwLCB7MHgwNCwweDQ1LDB4MDEsMHgwMSwweDQwLDB4NDUsMHgwMCwweDEwLDB4MTQsMHgwNCwweDQ1LDB4MDMsMHgwMCwweDQwLDB4NDQsMHg1MCB9LAotICAxNiwgMHhkMjkwLCAwLCB7MHgxMSwweDE0LDB4MDQsMHgwMSwweDA1LDB4NDEsMHg0MCwweDQ0LDB4NTAsMHgxMSwweDE0LDB4MDQsMHgwNSwweDAxLDB4MDEsMHg0MCB9LAotICAxNiwgMHhkMmEwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiB9LAotICAxNiwgMHhkMmIwLCAwLCB7MHgwNCwweDIwLDB4ODEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDAwLDB4NDIsMHgwOCB9LAotICAxNiwgMHhkMmMwLCAwLCB7MHgxMCwweDgyLDB4MDUsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDhhLDB4MDUsMHgyMCwweDA1LDB4MDgsMHgyMCB9LAotICAxNiwgMHhkMmQwLCAwLCB7MHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjIsMHg4MSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMmUwLCAwLCB7MHgwMCwweDAwLDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MTAsMHgyOCwweDA0LDB4MDIsMHgwMSwweDAyLDB4ODAsMHg0MCB9LAotICAxNiwgMHhkMmYwLCAwLCB7MHhhMCwweDEwLDB4MjgsMHgwNCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDAwLDB4MjksMHgwNCwweDBhLDB4MDEsMHgwMiB9LAotICAxNiwgMHhkMzAwLCAwLCB7MHg4MCwweDQwLDB4YTQsMHgwMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTgsMHgxMCwweDJiLDB4MTQsMHgwMCB9LAotICAxNiwgMHhkMzEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDRkLDB4MDMsMHg1MywweDQwLDB4ZDQsMHhkMCB9LAotICAxNiwgMHhkMzIwLCAwLCB7MHgzNSwweDM0LDB4MGQsMHg0ZCwweDAzLDB4NTMsMHg0MCwweGQ0LDB4ZDAsMHgzNSwweDM0LDB4MGQsMHg0ZCwweDAzLDB4NTMsMHg0MCB9LAotICAxNiwgMHhkMzMwLCAwLCB7MHhkNCwweGQwLDB4MjEsMHgzNCwweDRkLDB4NGQsMHgwMywweDUzLDB4NDAsMHhkNCwweGQ5LDB4NjEsMHgzNCwweDA0LDB4MGQsMHgwMyB9LAotICAxNiwgMHhkMzQwLCAwLCB7MHg1MywweDQwLDB4YzAsMHhkOCwweDM1LDB4MzcsMHgwZCwweDQwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkMzUwLCAwLCB7MHg0MCwweDAxLDB4NDgsMHgwNCwweDcyLDB4MDAsMHgxYywweDgwLDB4NDcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYyB9LAotICAxNiwgMHhkMzYwLCAwLCB7MHg4MCwweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAwLDB4OWMsMHg4MCwweDQ3LDB4MjAsMHgxOSwweGM4LDB4MDAsMHg3MiB9LAotICAxNiwgMHhkMzcwLCAwLCB7MHgwMSwweDFjLDB4ODgsMHg2NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMSwweDVjLDB4ODIsMHg0NywweDIyLDB4MTEsMHhjMCB9LAotICAxNiwgMHhkMzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIzLDB4MDgsMHg0OCwweGMyLDB4MTIsMHgzMSB9LAotICAxNiwgMHhkMzkwLCAwLCB7MHg4NCwweDhjLDB4NjEsMHgyMywweDEwLDB4NDAsMHhjMCwweDEyLDB4MzEsMHg4NCwweDhjLDB4NjEsMHgwMywweDEwLDB4NDgsMHhjNCB9LAotICAxNiwgMHhkM2EwLCAwLCB7MHgxMCwweDMxLDB4ODQsMHg4YywweDQxLDB4MjMsMHgxOCwweDQ4LDB4YzYsMHgxMCwweDMwLDB4MDQsMHgwYywweDQxLDB4MjMsMHgxOCB9LAotICAxNiwgMHhkM2IwLCAwLCB7MHg0OCwweGM2LDB4MTIsMHgzMCwweDg0LDB4OGMsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkM2MwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMyB9LAotICAxNiwgMHhkM2QwLCAwLCB7MHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiB9LAotICAxNiwgMHhkM2UwLCAwLCB7MHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZGQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgwMCB9LAotICAxNiwgMHhkM2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNDMwLCAwLCB7MHgwMCwweDAwLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiB9LAotICAxNiwgMHhkNDQwLCAwLCB7MHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiB9LAotICAxNiwgMHhkNDUwLCAwLCB7MHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NGMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgwMCB9LAotICAxNiwgMHhkNDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMzLDB4NWMsMHg0YywweGQ3LDB4MTMsMHgzMyB9LAotICAxNiwgMHhkNDcwLCAwLCB7MHhjNCwweGNjLDB4ZjEsMHgzMywweDNhLDB4NGEsMHhkNiwweDkzLDB4MzMsMHhjNCwweGNjLDB4ZjEsMHgyYiwweDNhLDB4NGMsMHhjZiB9LAotICAxNiwgMHhkNDgwLCAwLCB7MHgxMywweDMzLDB4YzQsMHhjYywweGU5LDB4MzMsMHgzYywweDRjLDB4Y2YsMHgxMiwweGI1LDB4YTQsMHhhYywweGM5LDB4MzMsMHgzYyB9LAotICAxNiwgMHhkNDkwLCAwLCB7MHg0YywweGNmLDB4MTMsMHgzNSwweGM0LDB4Y2QsMHg2OSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNGEwLCAwLCB7MHgwMCwweDAwLDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGI3LDB4ZTQsMHhlZCwweGY5LDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MyB9LAotICAxNiwgMHhkNGIwLCAwLCB7MHhiNywweGU0LDB4ZWQsMHhmOSwweDNiLDB4N2UsMHg0ZSwweGRlLDB4MTIsMHgzNywweGU0LDB4ZWQsMHhlMSwweDNiLDB4N2UsMHg0ZSB9LAotICAxNiwgMHhkNGMwLCAwLCB7MHhkZiwweDkyLDB4MzEsMHg4NCwweDhkLDB4ZDksMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzLDB4YjEsMHhlNCwweGVjLDB4NjEsMHgwMCB9LAotICAxNiwgMHhkNGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODQsMHgwNCwweGExLDB4ODMsMHgyYyB9LAotICAxNiwgMHhkNGUwLCAwLCB7MHgwMywweDBhLDB4MTAsMHg4MiwweGMxLDB4MzQsMHgxMCwweDhmLDB4MDAsMHg0MCwweDA5LDB4MTQsMHgwMiwweDAzLDB4MTQsMHg5MSB9LAotICAxNiwgMHhkNGYwLCAwLCB7MHgwMCwweDA4LDB4NDIsMHgwYiwweDE4LDB4ODIsMHhjNCwweDAwLDB4MzEsMHhjYSwweDBjLDB4NTIsMHgwMiwweDEwLDB4ODAsMHg4NSB9LAotICAxNiwgMHhkNTAwLCAwLCB7MHgwMCwweDIxLDB4ODIsMHgyOCwweDQwLDB4MGEsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNTEwLCAwLCB7MHgwMCwweDAwLDB4MGEsMHgwNCwweDAyLDB4MDEsMHg0MCwweDgwLDB4NzMsMHgyOCwweDEwLDB4NDgsMHgwNywweDA2LDB4MDEsMHgwNCB9LAotICAxNiwgMHhkNTIwLCAwLCB7MHhhNCwweDQxLDB4MjEsMHgxNCwweDA4LDB4NDQsMHgwNiwweDExLDB4NDAsMHg4MCwweDcwLDB4MjAsMHgxNCwweDBhLDB4MDQsMHgwMiB9LAotICAxNiwgMHhkNTMwLCAwLCB7MHgwMCwweGM4LDB4ODQsMHg0MSwweDIxLDB4MWMsMHgwOCwweDA2LDB4MTIsMHgwMSwweGMwLDB4ODAsMHg2MCwweDIwLDB4MTQsMHgwMCB9LAotICAxNiwgMHhkNTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4ODQsMHgwNCwweDIxLDB4ODIsMHgwOCB9LAotICAxNiwgMHhkNTUwLCAwLCB7MHg1MywweDAyLDB4MTAsMHg4MCwweGM1LDB4MDAsMHg4MSwweDRhLDB4MDQsMHg0MiwweDAyLDB4MTQsMHgwMCwweDA0LDB4MjAsMHgyMSB9LAotICAxNiwgMHhkNTYwLCAwLCB7MHg4MCwweGE4LDB4NzIsMHgyMiwweDFjLDB4ODgsMHhjNCwweDA2LDB4YTEsMHg0MiwweDhjLDB4NTIsMHgyMiwweDFjLDB4ODgsMHg4NSB9LAotICAxNiwgMHhkNTcwLCAwLCB7MHgyNiwweDIxLDB4YzAsMHg4OCwweDUwLDB4MjIsMHgxOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNTgwLCAwLCB7MHgwMCwweDAwLDB4MDIsMHg0NCwweDAwLDB4MDEsMHgwMSwweDAwLDB4NjIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MDEsMHgwMSB9LAotICAxNiwgMHhkNTkwLCAwLCB7MHgyMCwweDQwLDB4MDAsMHgxYywweDAwLDB4NDQsMHgwNCwweDAxLDB4MDIsMHgyMCwweDYyLDB4MDAsMHgxYywweDgwLDB4MDQsMHgwNCB9LAotICAxNiwgMHhkNWEwLCAwLCB7MHg4MCwweDg5LDB4MjAsMHg1MCwweDA4LDB4MTQsMHg4MCwweDA0LDB4MjQsMHgwMSwweGMxLDB4MDAsMHg1MCwweDAwLDB4MTgsMHgwMCB9LAotICAxNiwgMHhkNWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4ODAsMHgzOCwweDIwLDB4MDQsMHgwYyB9LAotICAxNiwgMHhkNWMwLCAwLCB7MHgzMSwweDBhLDB4MDAsMHgwMCwweDAyLDB4MTgsMHgyMCwweDhjLDB4YTgsMHgxMCwweDI4LDB4MDgsMHg4OCwweGMxLDB4MTQsMHgxMCB9LAotICAxNiwgMHhkNWQwLCAwLCB7MHhjNiwweDAwLDB4MjIsMHgwMywweDA4LDB4MDIsMHgwMSwweDA4LDB4YjAsMHgwMCwweDBjLDB4MjEsMHgwMiwweDAwLDB4ODIsMHg4MCB9LAotICAxNiwgMHhkNWUwLCAwLCB7MHgwOCwweDAwLDB4NDksMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4ODAsMHgwOCwweDIwLDB4MDMsMHgwMCwweDA0LDB4MDIsMHg0MywweDIwLDB4MDAsMHg0MCB9LAotICAxNiwgMHhkNjAwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwNCwweDQyLDB4MDEsMHgxMCwweDgwLDB4ODQsMHgyMCwweDExLDB4MDgsMHgwNCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNjEwLCAwLCB7MHgwMCwweDQ0LDB4MjQsMHgyMCwweDA5LDB4MDgsMHg0MCwweDAzLDB4MDAsMHg5MCwweGM0LDB4MjAsMHgyMCwweDA4LDB4MGMsMHgwMiB9LAotICAxNiwgMHhkNjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4ODEsMHgwOCwweDIwLDB4MDQsMHg4OCB9LAotICAxNiwgMHhkNjMwLCAwLCB7MHgwMiwweDIyLDB4MDgsMHgwOCwweGMzLDB4MmEsMHg5MCwweDQwLDB4ODQsMHgxMCwweDIwLDB4MDQsMHg4MCwweGMyLDB4MjYsMHgyMCB9LAotICAxNiwgMHhkNjQwLCAwLCB7MHg0OSwweDg4LDB4MjIsMHgyMiwweDBjLDB4MDgsMHhjMSwweDI2LDB4YTAsMHhjOSwweDhjLDB4MTIsMHgyYSwweDA0LDB4ODgsMHg0MyB9LAotICAxNiwgMHhkNjUwLCAwLCB7MHgwZSwweGEwLDB4Y2IsMHg4OCwweDEwLDB4MjIsMHgwYywweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNjYwLCAwLCB7MHgwOCwweDAwLDB4MGEsMHg0MCwweDMyLDB4MDAsMHgwMSwweDgwLDB4MzEsMHgyOCwweDAwLDB4MDAsMHgwMSwweDEyLDB4ODAsMHg4ZCB9LAotICAxNiwgMHhkNjcwLCAwLCB7MHg4NCwweDAwLDB4MjgsMHgwYywweDA4LDB4MDEsMHgzMiwweDAwLDB4OGMsMHg4MCwweDAyLDB4MjAsMHgwYywweDA4LDB4MDEsMHgyZSB9LAotICAxNiwgMHhkNjgwLCAwLCB7MHgwMCwweGMzLDB4ODAsMHgwMiwweDIwLDB4MDQsMHgwOCwweDQzLDB4MDIsMHgwMCwweDQwLDB4ODAsMHgxMCwweDIwLDB4MDQsMHgwMiB9LAotICAxNiwgMHhkNjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4ODcsMHgwYSwweDIxLDB4MDQsMHg4OCB9LAotICAxNiwgMHhkNmEwLCAwLCB7MHgxMSwweDJhLDB4MWMsMHgwYSwweDA2LDB4MjIsMHgyMSwweDQwLDB4YTAsMHg0MiwweDJhLDB4MTAsMHg4OCwweDg1LDB4MGEsMHhhMSB9LAotICAxNiwgMHhkNmIwLCAwLCB7MHgwNiwweGE0LDB4NjIsMHgyMiwweDFjLDB4MGEsMHhjNCwweDAyLDB4MjEsMHg4MCwweDhjLDB4NTIsMHgyMiwweDE0LDB4NDgsMHg4NiB9LAotICAxNiwgMHhkNmMwLCAwLCB7MHgyMiwweDIwLDB4MDgsMHhhOCwweDYwLDB4MmEsMHgxNCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNmQwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHg0NSwweDA2LDB4MDEsMHg4OSwweDgwLDB4NjMsMHgyMCwweDFjLDB4ODgsMHg0MCwweDM0LDB4MTEsMHgwMSB9LAotICAxNiwgMHhkNmUwLCAwLCB7MHhhNCwweDUwLDB4MjgsMHgxOCwweDQ4LDB4MDQsMHgwZSwweDAxLDB4NGIsMHg4MCwweDczLDB4MjgsMHgxYywweDhhLDB4MDQsMHgwNiB9LAotICAxNiwgMHhkNmYwLCAwLCB7MHg5MSwweDQ5LDB4MDQsMHg2MywweDIwLDB4MWMsMHg4YSwweDA2LDB4MjYsMHgwMSwweDg1LDB4ODAsMHg3MCwweDIwLDB4MTgsMHgwMiB9LAotICAxNiwgMHhkNzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAwLDB4ODUsMHgwMCwweGIxLDB4NDUsMHgyYyB9LAotICAxNiwgMHhkNzEwLCAwLCB7MHg3MCwweDAyLDB4MTQsMHhjMCwweDA3LDB4MDgsMHgyMSwweDQ5LDB4MDAsMHg0MiwweDAxLDB4MTQsMHg4MiwweDA1LDB4MDAsMHgxMSB9LAotICAxNiwgMHhkNzIwLCAwLCB7MHg4NCwweDAwLDB4NTIsMHgwMiwweDFjLDB4MDAsMHhjNCwweDAwLDB4MjEsMHhjNCwweDJjLDB4NTMsMHgwMiwweDFjLDB4MDIsMHg4MSB9LAotICAxNiwgMHhkNzMwLCAwLCB7MHgwNCwweGExLDB4Y2QsMHgwOCwweDUwLDB4MDIsMHgxNCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkNzQwLCAwLCB7MHgwOCwweDEwLDB4MTIsMHgwNCwweDM0LDB4MDEsMHhjYywweDAwLDB4NzMsMHg0MCwweDFjLDB4OTAsMHg0NSwweDA0LDB4MDEsMHg0OCB9LAotICAxNiwgMHhkNzUwLCAwLCB7MHgwNCwweDYwLDB4NDEsMHgxOCwweGMwLDB4NDQsMHgwNCwweDAxLDB4MDUsMHgwNCwweDczLDB4NDgsMHgxNCwweDUwLDB4NDcsMHgzNCB9LAotICAxNiwgMHhkNzYwLCAwLCB7MHgwMSwweDQ1LDB4MjAsMHg2MiwweDA4LDB4MWMsMHhjMiwweDA0LDB4MGMsMHg4MSwweGM3LDB4MDAsMHg3MywweDgwLDB4MTgsMHhjMiB9LAotICAxNiwgMHhkNzcwLCAwLCB7MHgwNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDEwLDB4ODQsMHgxMCwweDIxLDB4Y2MsMHgyOCB9LAotICAxNiwgMHhkNzgwLCAwLCB7MHg0MiwweDAyLDB4MTQsMHgxMiwweGM1LDB4MTAsMHgyMSwweDg0LDB4MDQsMHg0MCwweDAwLDB4MWMsMHg4MCwweDg0LDB4MDAsMHg5MSB9LAotICAxNiwgMHhkNzkwLCAwLCB7MHgwMCwweDA4LDB4NzMsMHg4MiwweDFjLDB4OTAsMHgwNSwweDBjLDB4MDEsMHhjZiwweDBjLDB4NDAsMHgwMiwweDE0LDB4MzAsMHg0NSB9LAotICAxNiwgMHhkN2EwLCAwLCB7MHgyMCwweGExLDB4YzAsMHgwOCwweDUwLDB4MDIsMHgxMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkN2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg0NSwweDBjLDB4ODEsMHgwMCwweDAwLDB4MDEsMHgwOCwweDA4LDB4MDAsMHgwNSwweDE4LDB4OTEsMHgwNSB9LAotICAxNiwgMHhkN2MwLCAwLCB7MHgwNCwweDAwLDB4MDEsMHgwNCwweDQwLDB4MDYsMHgxOCwweDAwLDB4MDIsMHgyNCwweDcwLDB4NDAsMHgwNCwweDAwLDB4NDAsMHgwMCB9LAotICAxNiwgMHhkN2QwLCAwLCB7MHgwMSwweGM0LDB4MjQsMHgwMCwweDg4LDB4MDQsMHgwMCwweDQzLDB4MTAsMHgwMCwweDQwLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgwMCB9LAotICAxNiwgMHhkN2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEyLDB4ODUsMHgyNCwweDMxLDB4MDIsMHgwYyB9LAotICAxNiwgMHhkN2YwLCAwLCB7MHgwMiwweGMyLDB4MDQsMHgxMCwweGM0LDB4MjgsMHgyMSwweDQ5LDB4MGMsMHgwMiwweGMwLDB4MDQsMHhiMiwweDA2LDB4MWMsMHgyMCB9LAotICAxNiwgMHhkODAwLCAwLCB7MHgwMywweDA4LDB4NTAsMHg0MiwweDBjLDB4ODAsMHgwMSwweDA0LDB4YTEsMHg0OSwweDBjLDB4MDAsMHhjMiwweDBjLDB4MTAsMHg0MyB9LAotICAxNiwgMHhkODEwLCAwLCB7MHgyNCwweGEwLDB4YzEsMHgwOCwweDEwLDB4NDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkODIwLCAwLCB7MHgwMCwweDEwLDB4YTIsMHgwMCwweDIwLDB4MDAsMHhjZCwweDAwLDB4MDAsMHg0MCwweDA0LDB4MjAsMHgwMSwweDEwLDB4MDAsMHgwOSB9LAotICAxNiwgMHhkODMwLCAwLCB7MHgwNCwweDAyLDB4NDksMHgwYywweDkyLDB4MDcsMHgzMCwweDAwLDB4MDAsMHgwMCwweDMzLDB4MDgsMHgwYywweDkyLDB4NDEsMHgwMCB9LAotICAxNiwgMHhkODQwLCAwLCB7MHg4MCwweGNjLDB4MDAsMHgwMCwweDAwLDB4MGMsMHgwMCwweDQzLDB4MjgsMHg4MCwweGMyLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkODUwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MTAsMHg1MCwweDgwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkODYwLCAwLCB7MHgxMCwweDAwLDB4MDAsMHhmMCwweDAwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhkMCwweDgwLDB4ODAsMHgwMCB9LAotICAxNiwgMHhkODcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OTAsMHg4MCB9LAotICAxNiwgMHhkODgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkODkwLCAwLCB7MHgzYywweDNjLDB4MTAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHhhMCwweDgwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOGEwLCAwLCB7MHgwMCwweDAwLDB4NDAsMHgxMCwweDkwLDB4ODAsMHhhMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMCwweDkwLDB4ODAsMHhhMCB9LAotICAxNiwgMHhkOGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgyMCwweDgwLDB4MTAsMHg5MCwweGEwLDB4YTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHg4ZiB9LAotICAxNiwgMHhkOGMwLCAwLCB7MHgwZiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJjLDB4YzIsMHhlNCwweDgxLDB4ODAsMHgzZiB9LAotICAxNiwgMHhkOGQwLCAwLCB7MHhkOSwweGJmLDB4ZDksMHg5OCwweDcxLDB4OWQsMHg0MiwweDgwLDB4MDAsMHgyNiwweDdmLDB4ZTYsMHg3MiwweGFiLDB4N2MsMHgzYSB9LAotICAxNiwgMHhkOGUwLCAwLCB7MHg0MCwweDAwLDB4MTksMHg4MCwweDI2LDB4NDgsMHhkZCwweDNjLDB4OTEsMHhjMCwweDI2LDB4NDAsMHgyNiwweDQwLDB4MzgsMHgzMSB9LAotICAxNiwgMHhkOGYwLCAwLCB7MHhkYiwweDYxLDB4YzAsMHgxOSwweDk5LDB4YmYsMHhjOSwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOTAwLCAwLCB7MHgwMCwweDAwLDB4MTAsMHg4MCwweDEwLDB4MTQsMHg4MCwweDA2LDB4ODQsMHg5NywweDk2LDB4ODYsMHg5NiwweDA2LDB4OTAsMHgwMCB9LAotICAxNiwgMHhkOTEwLCAwLCB7MHgzZiwweGExLDB4MjgsMHgwMSwweDAyLDB4OTAsMHgxMiwweDAwLDB4ODAsMHgxNywweDg4LDB4MTYsMHg5ZSwweDkwLDB4OTAsMHgwNCB9LAotICAxNiwgMHhkOTIwLCAwLCB7MHgxMCwweDAwLDB4MzYsMHhiZSwweGJlLDB4OWUsMHg4NiwweDE2LDB4MTIsMHg4NCwweDgwLDB4MTMsMHhiZSwweDk3LDB4YWUsMHg4MCB9LAotICAxNiwgMHhkOTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg4MiB9LAotICAxNiwgMHhkOTQwLCAwLCB7MHg4MSwweDg0LDB4MjEsMHg0MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YTEsMHgzOCwweDAxLDB4NzgsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOTUwLCAwLCB7MHgwOCwweGI4LDB4MjEsMHg3MiwweDY4LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDk4LDB4NDQsMHg4OCwweDY4LDB4ODAsMHgwMCB9LAotICAxNiwgMHhkOTYwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHhiOCwweDAxLDB4NzgsMHgwMSwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOTcwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmNywweGFmLDB4ZmYsMHhjMCB9LAotICAxNiwgMHhkOTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiB9LAotICAxNiwgMHhkOTkwLCAwLCB7MHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4YmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9LAotICAxNiwgMHhkOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHg3ZiwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiB9LAotICAxNiwgMHhkOWMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiB9LAotICAxNiwgMHhkOWQwLCAwLCB7MHgyZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkOWUwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHhjMCB9LAotICAxNiwgMHhkOWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiB9LAotICAxNiwgMHhkYTAwLCAwLCB7MHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHg3ZiwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9LAotICAxNiwgMHhkYTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4YmYsMHhiZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGRmLDB4YmYsMHhkZiB9LAotICAxNiwgMHhkYTMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhlZiwweGZmLDB4ZmYsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhkZiB9LAotICAxNiwgMHhkYTQwLCAwLCB7MHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYTUwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHgzZSwweGFmLDB4ZmYsMHhjMCB9LAotICAxNiwgMHhkYTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDFmLDB4ZmYsMHhkZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZTcsMHhmZSB9LAotICAxNiwgMHhkYTcwLCAwLCB7MHhlZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhkZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9LAotICAxNiwgMHhkYTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGY3LDB4ZmYsMHhmZiB9LAotICAxNiwgMHhkYWEwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhmZiwweGZmLDB4ZGYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmNyB9LAotICAxNiwgMHhkYWIwLCAwLCB7MHhkZiwweGY3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYWMwLCAwLCB7MHgwMCwweDAwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHhjMywweDJjLDB4NTAsMHgwOSwweDE0LDB4ODIsMHhjNCwweDMwLDB4OTEsMHhjNyB9LAotICAxNiwgMHhkYWQwLCAwLCB7MHgyNCwweDYwLDB4MDgsMHgxYywweDgyLDB4MDcsMHgzNCwweDkxLDB4NGMsMHgwNCwweDQzLDB4MGEsMHgxMCwweGMyLDB4ODQsMHgwNCB9LAotICAxNiwgMHhkYWUwLCAwLCB7MHg5MSwweDg0LDB4MjQsMHg1MiwweDBiLDB4MTgsMHgwMiwweGM0LDB4MjQsMHhiMSwweGMzLDB4MmMsMHg0MCwweDBhLDB4MTAsMHg4MCB9LAotICAxNiwgMHhkYWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHgwMiwweDAxLDB4YzQsMHg4MCB9LAotICAxNiwgMHhkYjAwLCAwLCB7MHg2MCwweDIwLDB4MWMsMHgwOCwweDQ0LDB4MjIsMHgwMSwweGMwLDB4ODQsMHg1MCwweDAxLDB4OWMsMHgwOCwweDA3LDB4MGEsMHgwMSB9LAotICAxNiwgMHhkYjEwLCAwLCB7MHhjMCwweDg0LDB4NzIsMHgyMCwweDFjLDB4YzgsMHgwNCwweDEyLDB4MTEsMHg0NCwweDgwLDB4NDEsMHgwMSwweDFjLDB4ODAsMHgwNyB9LAotICAxNiwgMHhkYjIwLCAwLCB7MHgwOCwweDExLDB4YzQsMHgwMCwweDcwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg4NiwweDJjLDB4MjEsMHg0YSwweDBjLDB4NTIsMHgwMiwweDFjLDB4ODAsMHgwNCwweDIwLDB4MjEsMHhjYSB9LAotICAxNiwgMHhkYjQwLCAwLCB7MHgxMCwweDYyLDB4MDIsMHgxYywweDgxLDB4NDcsMHgwNCwweDIxLDB4YzMsMHgyMCwweDUxLDB4MDEsMHgxYywweDgwLDB4MDQsMHgyYyB9LAotICAxNiwgMHhkYjUwLCAwLCB7MHgwMSwweGNiLDB4MDQsMHg1MiwweDAzLDB4MTQsMHg0MCwweGM3LDB4MjAsMHgzMSwweGM4LDB4MGMsMHg1MCwweDIyLDB4MTAsMHg4MCB9LAotICAxNiwgMHhkYjYwLCAwLCB7MHgwMSwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgyMCwweDAxLDB4ODksMHgwMCB9LAotICAxNiwgMHhkYjcwLCAwLCB7MHg1MiwweDAwLDB4MTQsMHg4MCwweDA0LDB4MjgsMHgwMSwweDQ1LDB4MDQsMHg2MiwweDAwLDB4MTAsMHg4MCwweDQ2LDB4MzAsMHgxMSB9LAotICAxNiwgMHhkYjgwLCAwLCB7MHgwZCwweDAwLDB4NDIsMHgwMSwweDE0LDB4YzAsMHg0NCwweDAwLDB4MTEsMHgwNSwweDAwLDB4NTAsMHgwMCwweDFjLDB4MDAsMHg0NCB9LAotICAxNiwgMHhkYjkwLCAwLCB7MHgyOCwweDAxLDB4NDksMHgwMCwweDcwLDB4MDAsMHgxMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYmEwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHhjMCwweDAyLDB4MzAsMHgwYywweDhjLDB4MzAsMHgyMiwweDA4LDB4ODgsMHhjMiwweDI2LDB4MDAsMHgwOCB9LAotICAxNiwgMHhkYmIwLCAwLCB7MHg4MCwweDIwLDB4MjIsMHgwYywweDg4LDB4ODEsMHgwMiwweDEwLDB4YzQsMHg4MCwweDEwLDB4MjIsMHgwYywweDA4LDB4NDAsMHgwMiB9LAotICAxNiwgMHhkYmMwLCAwLCB7MHgxMCwweDQ4LDB4ODgsMHgwMSwweDIzLDB4MDQsMHhjOCwweDQyLDB4MDIsMHgxMCwweDQ2LDB4OGMsMHgxMiwweDIyLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYmQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4YzgsMHgyMCB9LAotICAxNiwgMHhkYmUwLCAwLCB7MHgxMSwweDA5LDB4MDAsMHg4MCwweDQxLDB4MTAsMHg5MCwweDA4LDB4MjQsMHgzMCwweDA4LDB4MDQsMHg0MiwweDQxLDB4MDAsMHg5MCB9LAotICAxNiwgMHhkYmYwLCAwLCB7MHhjNCwweDIwLDB4MDAsMHgwOCwweDA0LDB4NDIsMHgwMCwweDEwLDB4ODAsMHg0YywweDIwLDB4MjMsMHgwOSwweDA0LDB4YzIsMHg0MyB9LAotICAxNiwgMHhkYzAwLCAwLCB7MHgzMCwweDgwLDB4NDAsMHgyMCwweDExLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYzEwLCAwLCB7MHgwOCwweDAwLDB4MDgsMHg4MSwweDAyLDB4MjAsMHhjOSwweDhjLDB4MTIsMHgyMCwweDA0LDB4NDgsMHg0MSwweDIyLDB4MDAsMHgwOSB9LAotICAxNiwgMHhkYzIwLCAwLCB7MHg4OCwweDMwLDB4MjAsMHgwYywweDg4LDB4MDMsMHgwZSwweDAwLDB4NDksMHg4YywweDEwLDB4MjIsMHgwYywweDg4LDB4NDAsMHgyZSB9LAotICAxNiwgMHhkYzMwLCAwLCB7MHgwMCwweGM5LDB4ODQsMHgxMywweDIxLDB4MDQsMHhjOCwweGMzLDB4MjIsMHgwMCwweGNiLDB4OGMsMHgzMiwweDIyLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYzQwLCAwLCB7MHgwNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4MDEsMHgwMiwweDAwLDB4NGIsMHg4MCB9LAotICAxNiwgMHhkYzUwLCAwLCB7MHgzMiwweDIxLDB4MDgsMHg4OCwweDQxLDB4MDIsMHgxMCwweDBmLDB4ODAsMHgxMCwweDIxLDB4OGMsMHgwOCwweDQxLDB4MDIsMHgwMCB9LAotICAxNiwgMHhkYzYwLCAwLCB7MHg4NywweDg0LDB4MTAsMHgyMCwweDA0LDB4ODgsMHgwMCwweDAyLDB4MDAsMHg0NywweDgwLDB4MTAsMHgyMSwweDBjLDB4ODgsMHg0MSB9LAotICAxNiwgMHhkYzcwLCAwLCB7MHgxNiwweDEwLDB4NDYsMHg4MCwweDMwLDB4MjAsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkYzgwLCAwLCB7MHgwMCwweDAwLDB4MGEsMHhjNCwweDIyLDB4YTEsMHgwOCwweGE0LDB4NzIsMHgyYSwweDE0LDB4MGEsMHg4NSwweDAyLDB4ODEsMHg4NCB9LAotICAxNiwgMHhkYzkwLCAwLCB7MHhhMCwweDQyLDB4MjgsMHgxYywweDBhLDB4YzUsMHgwMiwweDkxLDB4NDAsMHhiOCwweDczLDB4MjksMHgxMCwweGNhLDB4YzQsMHgwMiB9LAotICAxNiwgMHhkY2EwLCAwLCB7MHhhMSwweDgwLDB4YTQsMHg0MiwweDJhLDB4MTQsMHhjYSwweDg1LDB4MjIsMHg5MSwweDgwLDB4YTgsMHg3MCwweDJhLDB4MTgsMHgwMiB9LAotICAxNiwgMHhkY2IwLCAwLCB7MHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4MDQsMHgxZSwweDAxLDB4YzgsMHg4MCB9LAotICAxNiwgMHhkY2MwLCAwLCB7MHg0MywweDIwLDB4MTgsMHgwOCwweDQ1LDB4M2UsMHgwMSwweDBjLDB4ODAsMHg2MSwweDIwLDB4OWMsMHg0OCwweDA2LDB4MTIsMHg4MSB9LAotICAxNiwgMHhkY2QwLCAwLCB7MHhjMCwweDgwLDB4NzMsMHgwMCwweDEwLDB4ODgsMHgwNiwweDAyLDB4MDEsMHhjOCwweDAwLDB4NDIsMHgyMCwweDEwLDB4YzgsMHgwNyB9LAotICAxNiwgMHhkY2UwLCAwLCB7MHgwMiwweDExLDB4Y2QsMHg4MCwweDUxLDB4MjAsMHgxNCwweDgyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkY2YwLCAwLCB7MHgwOCwweDAwLDB4MDAsMHhjNCwweDI0LDB4MjEsMHhjOCwweDBjLDB4NDIsMHgwMSwweDE0LDB4MDAsMHgwMCwweDI4LDB4MTAsMHg0YyB9LAotICAxNiwgMHhkZDAwLCAwLCB7MHgwOCwweDUyLDB4MDIsMHgxNCwweDgwLDB4NDUsMHgyNCwweDI5LDB4NDAsMHgwNCwweDcyLDB4MDAsMHgxMCwweGMwLDB4MDUsMHgyNCB9LAotICAxNiwgMHhkZDEwLCAwLCB7MHgxMSwweDQ0LDB4MDgsMHg0MywweDAxLDB4MTQsMHhjMCwweDQ3LDB4MjQsMHgyMCwweDQ4LDB4MDgsMHg3MiwweDAyLDB4MTAsMHgwMCB9LAotICAxNiwgMHhkZDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweDAwLDB4MDcsMHgxMCwweDExLDB4MDYsMHgwMCB9LAotICAxNiwgMHhkZDMwLCAwLCB7MHg3MiwweDAwLDB4MTgsMHhkMCwweDQ2LDB4MjAsMHgwMSwweDRkLDB4MDAsMHg3MSwweDQwLDB4MTAsMHg1MCwweDA3LDB4MzAsMHgxMSB9LAotICAxNiwgMHhkZDQwLCAwLCB7MHhjMywweDAwLDB4NzEsMHg0MSwweDEwLDB4YjAsMHgwNSwweDJjLDB4MDEsMHg0OSwweDAwLDB4NDMsMHgwMCwweDFjLDB4NTAsMHg0NSB9LAotICAxNiwgMHhkZDUwLCAwLCB7MHgzMCwweDAxLDB4OGMsMHgwMCwweDYxLDB4NDAsMHgxOCwweDQyLDB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZDYwLCAwLCB7MHgwMCwweDAwLDB4MzAsMHhjNSwweDAwLDB4MjEsMHhjMCwweDBjLDB4NDAsMHgwMSwweDE0LDB4MTIsMHg0NCwweDA0LDB4MzEsMHg4NCB9LAotICAxNiwgMHhkZDcwLCAwLCB7MHgyNCwweDQwLDB4ODAsMHgxNCwweGExLDB4YzcsMHgwMCwweDAxLDB4NDAsMHgwOCwweDQwLDB4MDEsMHgxNCwweDIwLDB4MDUsMHgyMCB9LAotICAxNiwgMHhkZDgwLCAwLCB7MHgxMSwweGMwLDB4MDIsMHg2MCwweDgyLDB4MTgsMHgwMCwweDg3LDB4MjQsMHgxMSwweDQwLDB4MDgsMHg0MCwweDQyLDB4MTAsMHgwMiB9LAotICAxNiwgMHhkZDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwYywweDgwLDB4YzQsMHgyNCB9LAotICAxNiwgMHhkZGEwLCAwLCB7MHgzMSwweDQ4LDB4MGMsMHgwMCwweDAxLDB4MDgsMHhjMSwweDQxLDB4MDAsMHgwMCwweDQ5LDB4MDAsMHg0MiwweDAzLDB4MDgsMHgxMCB9LAotICAxNiwgMHhkZGIwLCAwLCB7MHg4MCwweDIwLDB4MjEsMHgwOSwweDBjLDB4MDIsMHgwMiwweDE4LDB4ODAsMHhjMSwweDI0LDB4MzAsMHgwOCwweDBjLDB4NDIsMHgwMSB9LAotICAxNiwgMHhkZGMwLCAwLCB7MHgxMCwweDgwLDB4ODMsMHgyMCwweDExLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZGQwLCAwLCB7MHgwMCwweDAwLDB4MTAsMHhjMSwweDA0LDB4MjAsMHg0OCwweDBjLDB4MTIsMHg0MiwweDA0LDB4MDAsMHg4MywweDAwLDB4MzEsMHg0OCB9LAotICAxNiwgMHhkZGUwLCAwLCB7MHgwMCwweDAyLDB4NDEsMHgwNCwweGEwLDB4MDcsMHgwYywweDIwLDB4NDAsMHgwMCwweDEyLDB4YzIsMHgwYywweDgwLDB4YzEsMHgyMCB9LAotICAxNiwgMHhkZGYwLCAwLCB7MHgyMCwweGM4LDB4MDAsMHgxMiwweGMxLDB4MGMsMHhiMCwweDQxLDB4MjAsMHgwMCwweDQ5LDB4MDgsMHgwMiwweDQyLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDgwLDB4MDEsMHgwMCwweDEwLDB4ODEsMHgwMCB9LAotICAxNiwgMHhkZTEwLCAwLCB7MHgzMCwweDQwLDB4MDgsMHgyMCwweDAzLDB4MDAsMHgxMCwweGMxLDB4MjAsMHgwMiwweDAwLDB4MDQsMHg4MCwweDQwLDB4MzAsMHg5MCB9LAotICAxNiwgMHhkZTIwLCAwLCB7MHgwMSwweDE0LDB4MDIsMHg0MCwweDA0LDB4ODAsMHg0MCwweDIwLDB4MDAsMHgwOSwweDA0LDB4MzIsMHgwMSwweDA4LDB4YTAsMHgwMyB9LAotICAxNiwgMHhkZTMwLCAwLCB7MHgwNCwweDEwLDB4MDgsMHgwMCwweDIyLDB4NDAsMHgwMCwweDAwLDB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZTQwLCAwLCB7MHgwMCwweDAwLDB4MzAsMHgwMCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4ZjAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZTUwLCAwLCB7MHgwMCwweDEwLDB4ODAsMHgwMCwweGYwLDB4MDAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweGYwLDB4MTAsMHhhMCB9LAotICAxNiwgMHhkZTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHhmMCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDgwLDB4MDAsMHhjYyB9LAotICAxNiwgMHhkZTcwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2MsMHgzYywweDEwLDB4YTAsMHg4MCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZTgwLCAwLCB7MHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4YzAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4ODAsMHgwMCB9LAotICAxNiwgMHhkZTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCB9LAotICAxNiwgMHhkZWEwLCAwLCB7MHhlMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDhjLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZWIwLCAwLCB7MHgwMCwweDAwLDB4MDksMHg0ZCwweGIxLDB4ZTksMHgwMCwweDI2LDB4NDAsMHgyYSwweDdmLDB4ZTMsMHhmMiwweDU0LDB4OTgsMHhjMCB9LAotICAxNiwgMHhkZWMwLCAwLCB7MHgzZiwweGU2LDB4NDAsMHgwMCwweDAxLDB4NDIsMHg5MSwweGQwLDB4YzAsMHgxMywweGU1LDB4ODcsMHg2MywweDgzLDB4YjgsMHhjZCB9LAotICAxNiwgMHhkZWQwLCAwLCB7MHhmOSwweDAwLDB4MjYsMHg3ZiwweDAwLDB4MDAsMHgzNSwweDJlLDB4ZDUsMHgwMywweDQwLDB4M2YsMHhkOSwweGJmLDB4YjEsMHg4MCB9LAotICAxNiwgMHhkZWUwLCAwLCB7MHgwMSwweGYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4MDIsMHgxNiwweDE0LDB4MDAsMHgxYyB9LAotICAxNiwgMHhkZWYwLCAwLCB7MHhhOCwweDNmLDB4ODgsMHgxNiwweDAwLDB4ODAsMHg4NCwweDgwLDB4MzcsMHg5ZSwweGJhLDB4YTAsMHg1MCwweDEwLDB4MDIsMHgxMiB9LAotICAxNiwgMHhkZjAwLCAwLCB7MHgwMCwweDE3LDB4OTYsMHg5NywweDI2LDB4NTAsMHgxMCwweDEwLDB4ODIsMHg4MCwweDFlLDB4ODAsMHhkZSwweGJlLDB4OTQsMHgxNCB9LAotICAxNiwgMHhkZjEwLCAwLCB7MHgwMiwweDEwLDB4ODAsMHgxNywweGJlLDB4ODEsMHg5NCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGE4LDB4NDQsMHg5NCwweDI4LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwOCB9LAotICAxNiwgMHhkZjMwLCAwLCB7MHg5NCwweDIxLDB4NDQsMHg1MSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg4NCwweDQyLDB4NDEsMHgwMSwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZjQwLCAwLCB7MHgwMCwweDA4LDB4YTEsMHg3MiwweDIzLDB4NDEsMHg0MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YjgsMHgwMSwweDc4LDB4MzIsMHg0MCB9LAotICAxNiwgMHhkZjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9LAotICAxNiwgMHhkZjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGY3LDB4ZmUsMHhkNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZDcsMHhkZiB9LAotICAxNiwgMHhkZjcwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweDdmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzcsMHg3ZiB9LAotICAxNiwgMHhkZjgwLCAwLCB7MHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZjkwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MWUsMHhmZiwweGRlLDB4NzcsMHhjMCB9LAotICAxNiwgMHhkZmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDFmLDB4ZWYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiB9LAotICAxNiwgMHhkZmIwLCAwLCB7MHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHg3ZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhkZmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9LAotICAxNiwgMHhkZmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgxZiwweGNmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhiZiB9LAotICAxNiwgMHhkZmUwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4YmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiB9LAotICAxNiwgMHhkZmYwLCAwLCB7MHhmZiwweGJmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMDAwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCB9LAotICAxNiwgMHhlMDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDFmLDB4ZmYsMHgxZiB9LAotICAxNiwgMHhlMDIwLCAwLCB7MHg3ZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGRmLDB4ZmYsMHhjZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9LAotICAxNiwgMHhlMDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGJmLDB4YWYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiB9LAotICAxNiwgMHhlMDUwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2UsMHhkZSwweDdmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiB9LAotICAxNiwgMHhlMDYwLCAwLCB7MHhmZiwweGY3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMDcwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHg3ZiwweGZmLDB4ZmYsMHhjMCB9LAotICAxNiwgMHhlMDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmUsMHhiZSB9LAotICAxNiwgMHhlMDkwLCAwLCB7MHg3ZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZSwweGZmLDB4ZDcsMHg3ZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMGUwLCAwLCB7MHgzMCwweDAwLDB4MjAsMHgwMSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDQzLDB4OGUsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlMzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlM2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlM2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlM2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlM2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlM2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlM2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlNzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlN2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlN2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlN2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlN2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlN2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlN2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlODkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlOWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlYzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlY2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlY2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlY2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlY2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlY2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlY2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgyMCwweDAxLDB4MDIsMHgwMiwweDAwLDB4MDAsMHgzMCwweDAwLDB4NDMsMHg4MCB9LAotICAxNiwgMHhlZjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhlZmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmMzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmM2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmM2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmM2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmM2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmM2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmM2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmNzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmN2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmN2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmN2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmN2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmN2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmN2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmODkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmOWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmYzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmY2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmY2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmY2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmY2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmY2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmY2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDAsMHg1ZiwweGE3LDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMyB9LAotICAxNiwgMHhmZDQwLCAwLCB7MHgzMCwweDAwLDB4NDAsMHgwZSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAxNiwgMHhmZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4ODAsMHgwMSB9LAotICAxNiwgMHhmZDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwNSwweDMwLDB4MDAsMHhhMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMSB9LAotICAxNiwgMHhmZDkwLCAwLCB7MHgwMCwweDAwLDB4NmIsMHg5NywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICA0LCAweGZkYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwIH0sCi0gIDAgLCAweDAwMDAsIDEsIHswfQotfTsKLS8vIFZFUlNJT049IDEuMC4wLjE5MQotLy8gREFURT0gMjAwMm9jdDI4Ci1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBnX0hleE1pZGlGdzYyW10gPSB7Ci0gICAzLDB4MDAwMCwwLHsweDAyLDB4NDYsMHhiOX0sCi0gICAzLDB4MDAwMywwLHsweDAyLDB4MGYsMHhmZH0sCi0gICAzLDB4MDAwYiwwLHsweDAyLDB4NGUsMHgwZn0sCi0gICAzLDB4MDAxMywwLHsweDAyLDB4MTcsMHhmZH0sCi0gICAzLDB4MDAxYiwwLHsweDAyLDB4NGUsMHgxMn0sCi0gICAzLDB4MDAyMywwLHsweDAyLDB4NGQsMHhlZn0sCi0gICAzLDB4MDAyYiwwLHsweDAyLDB4NDgsMHgwMH0sCi0gICAzLDB4MDAzMywwLHsweDAyLDB4NGQsMHhlNn0sCi0gICAzLDB4MDAzYiwwLHsweDAyLDB4NGQsMHhmNn0sCi0gICAzLDB4MDA0MywwLHsweDAyLDB4NDksMHgwMH0sCi0gICAzLDB4MDA0YiwwLHsweDAyLDB4NGUsMHgwM30sCi0gICAzLDB4MDA1MywwLHsweDAyLDB4NDgsMHhmYX0sCi0gICAzLDB4MDA1YiwwLHsweDAyLDB4NGQsMHhmZH0sCi0gICAzLDB4MDA2MywwLHsweDAyLDB4NGUsMHgwN30sCi0gIDE2LDB4MDUwMCwwLHsweDEyLDB4MDEsMHgxMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg2YSwweDA4LDB4MTEsMHgwMSwweDAwLDB4MDEsMHgwMSwweDAyfSwKLSAgMTYsMHgwNTEwLDAsezB4MDAsMHgwMSwweDA5LDB4MDIsMHgwOCwweDAyLDB4MDUsMHgwMSwweDAwLDB4ODAsMHgzMiwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDA1MjAsMCx7MHgwMSwweDAxLDB4MDAsMHgwMCwweDBhLDB4MjQsMHgwMSwweDAwLDB4MDEsMHg1NiwweDAwLDB4MDIsMHgwMSwweDAyLDB4MGMsMHgyNH0sCi0gIDE2LDB4MDUzMCwwLHsweDAyLDB4MDEsMHgwMSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHgyNCwweDA2LDB4MDUsMHgwMSwweDAyfSwKLSAgMTYsMHgwNTQwLDAsezB4MDMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOSwweDI0LDB4MDMsMHgwMiwweDA0LDB4MDMsMHgwMCwweDA1LDB4MDB9LAotICAxNiwweDA1NTAsMCx7MHgwYywweDI0LDB4MDIsMHgwMywweDA1LDB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweDI0LDB4MDYsMHgwNn0sCi0gIDE2LDB4MDU2MCwwLHsweDAzLDB4MDIsMHgwMCwweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwfSwKLSAgMTYsMHgwNTcwLDAsezB4MDAsMHgwOSwweDI0LDB4MDMsMHgwNCwweDAxLDB4MDEsMHgwMCwweDA2LDB4MDAsMHgwOSwweDA0LDB4MDEsMHgwMCwweDAwLDB4MDF9LAotICAxNiwweDA1ODAsMCx7MHgwMiwweDAwLDB4MDAsMHgwOSwweDA0LDB4MDEsMHgwMSwweDAyLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwMX0sCi0gIDE2LDB4MDU5MCwwLHsweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxLDB4MDIsMHgwMiwweDEwLDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJifSwKLSAgMTYsMHgwNWEwLDAsezB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1LDB4MGEsMHgwNSwweDg0LDB4MDEsMHgwMSwweDAwLDB4OGYsMHgwNywweDI1LDB4MDF9LAotICAxNiwweDA1YjAsMCx7MHgwMSwweDAwLDB4MDAsMHgwMCwweDA5LDB4MDUsMHg4ZiwweDAxLDB4MDMsMHgwMCwweDAxLDB4MDUsMHgwMCwweDA5LDB4MDQsMHgwMX0sCi0gIDE2LDB4MDVjMCwwLHsweDAyLDB4MDIsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDAxLDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyfSwKLSAgMTYsMHgwNWQwLDAsezB4MDEsMHgwMiwweDAzLDB4MTgsMHgwMywweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDV9LAotICAxNiwweDA1ZTAsMCx7MHgwYSwweDA1LDB4NDYsMHgwMiwweDAxLDB4MDAsMHg4ZiwweDA3LDB4MjUsMHgwMSwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDksMHgwNX0sCi0gIDE2LDB4MDVmMCwwLHsweDhmLDB4MDEsMHgwMywweDAwLDB4MDEsMHgwNSwweDAwLDB4MDksMHgwNCwweDAyLDB4MDAsMHgwMCwweDAxLDB4MDIsMHgwMCwweDAwfSwKLSAgMTYsMHgwNjAwLDAsezB4MDksMHgwNCwweDAyLDB4MDEsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDB9LAotICAxNiwweDA2MTAsMCx7MHgwZSwweDI0LDB4MDIsMHgwMSwweDA2LDB4MDIsMHgxMCwweDAyLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDksMHgwNX0sCi0gIDE2LDB4MDYyMCwwLHsweDhjLDB4MDUsMHg0YywweDAyLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0fSwKLSAgMTYsMHgwNjMwLDAsezB4MDIsMHgwMiwweDAxLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDBlLDB4MjR9LAotICAxNiwweDA2NDAsMCx7MHgwMiwweDAxLDB4MDYsMHgwMywweDE4LDB4MDIsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwOSwweDA1LDB4OGMsMHgwNX0sCi0gIDE2LDB4MDY1MCwwLHsweDcyLDB4MDMsMHgwMSwweDAwLDB4MDAsMHgwNywweDI1LDB4MDEsMHgwMCwweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMiwweDAzfSwKLSAgMTYsMHgwNjYwLDAsezB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyLDB4MDF9LAotICAxNiwweDA2NzAsMCx7MHgwMiwweDAyLDB4MTAsMHgwMywweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDUsMHg4Y30sCi0gIDE2LDB4MDY4MCwwLHsweDA1LDB4ODQsMHgwMSwweDAxLDB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAyfSwKLSAgMTYsMHgwNjkwLDAsezB4MDQsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgxMSwweDI0LDB4MDJ9LAotICAxNiwweDA2YTAsMCx7MHgwMSwweDAyLDB4MDMsMHgxOCwweDAzLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNX0sCi0gIDE2LDB4MDZiMCwwLHsweDhjLDB4MDUsMHg0NiwweDAyLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0fSwKLSAgMTYsMHgwNmMwLDAsezB4MDMsMHgwMCwweDAwLDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwOSwweDI0LDB4MDEsMHgwMCwweDAxLDB4MDksMHgwMCwweDAxLDB4MDR9LAotICAxNiwweDA2ZDAsMCx7MHgwOSwweDA0LDB4MDQsMHgwMCwweDAyLDB4MDEsMHgwMywweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwMCwweDAxLDB4MjQsMHgwMH0sCi0gIDE2LDB4MDZlMCwwLHsweDA2LDB4MjQsMHgwMiwweDAxLDB4MDcsMHgwMCwweDA5LDB4MjQsMHgwMywweDAyLDB4MDgsMHgwMSwweDA3LDB4MDEsMHgwMCwweDA2fSwKLSAgMTYsMHgwNmYwLDAsezB4MjQsMHgwMiwweDAyLDB4MDksMHgwMCwweDA5LDB4MjQsMHgwMywweDAxLDB4MGEsMHgwMSwweDA5LDB4MDEsMHgwMCwweDA5LDB4MDV9LAotICAxNiwweDA3MDAsMCx7MHgwMSwweDAyLDB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4MjUsMHgwMSwweDAxLDB4MDcsMHgwOSwweDA1LDB4ODEsMHgwMn0sCi0gIDE2LDB4MDcxMCwwLHsweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDI1LDB4MDEsMHgwMSwweDBhLDB4MDQsMHgwMywweDA5LDB4MDQsMHgxOCwweDAzfSwKLSAgMTYsMHgwNzIwLDAsezB4NDUsMHgwMCwweDZkLDB4MDAsMHg2MSwweDAwLDB4NjcsMHgwMCwweDY5LDB4MDAsMHg2MywweDAwLDB4MjAsMHgwMCwweDQ3LDB4MDB9LAotICAxNiwweDA3MzAsMCx7MHg2ZCwweDAwLDB4NjIsMHgwMCwweDQ4LDB4MDAsMHgyMiwweDAzLDB4NDUsMHgwMCwweDZkLDB4MDAsMHg2MSwweDAwLDB4NjcsMHgwMH0sCi0gIDE2LDB4MDc0MCwwLHsweDY5LDB4MDAsMHg2MywweDAwLDB4MjAsMHgwMCwweDQ1LDB4MDAsMHg0ZCwweDAwLDB4NDksMHgwMCwweDIwLDB4MDAsMHgzNiwweDAwfSwKLSAgMTYsMHgwNzUwLDAsezB4N2MsMHgwMCwweDMyLDB4MDAsMHgyMCwweDAwLDB4NmQsMHgwMCwweDJhLDB4MDMsMHg0MywweDAwLDB4NmYsMHgwMCwweDZlLDB4MDB9LAotICAxNiwweDA3NjAsMCx7MHg2NiwweDAwLDB4NjksMHgwMCwweDY3LDB4MDAsMHg3NSwweDAwLDB4NzIsMHgwMCwweDYxLDB4MDAsMHg3NCwweDAwLDB4NjksMHgwMH0sCi0gIDE2LDB4MDc3MCwwLHsweDZmLDB4MDAsMHg2ZSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwfSwKLSAgMTYsMHgwNzgwLDAsezB4NjcsMHgwMCwweDIyLDB4MDMsMHg0OSwweDAwLDB4NmUsMHgwMCwweDc0LDB4MDAsMHg2NSwweDAwLDB4NzIsMHgwMCwweDY2LDB4MDB9LAotICAxNiwweDA3OTAsMCx7MHg2MSwweDAwLDB4NjMsMHgwMCwweDY1LDB4MDAsMHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwLDB4NjksMHgwMH0sCi0gICA2LDB4MDdhMCwwLHsweDZlLDB4MDAsMHg2NywweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MDdhNiwwLHsweGU0LDB4OTAsMHg3NiwweDY2LDB4ZjAsMHgxMiwweDQ0LDB4YWQsMHgyMCwweDI2LDB4MTMsMHg5MCwweDc2LDB4NjYsMHhlMCwweGMzfSwKLSAgMTYsMHgwN2I2LDAsezB4OTQsMHgwMiwweDUwLDB4MGEsMHhlMCwweDA0LDB4ZjAsMHhkMiwweDQyLDB4MTIsMHg0YiwweDdmLDB4ODAsMHhlYSwweDMwLDB4MjZ9LAotICAxNiwweDA3YzYsMCx7MHgwNSwweDEyLDB4MjgsMHgwMSwweGMyLDB4MjYsMHgzMCwweDI1LDB4MmIsMHg5MCwweDc2LDB4OTYsMHhlMCwweDU0LDB4ZmMsMHhmMH0sCi0gIDE2LDB4MDdkNiwwLHsweDkwLDB4ODAsMHgwMywweGYwLDB4MTIsMHgxNCwweDk2LDB4OTAsMHg3NiwweDk2LDB4ZTAsMHg0NCwweDAzLDB4ZjAsMHg5MCwweDgwfSwKLSAgMTYsMHgwN2U2LDAsezB4MDMsMHhmMCwweGU0LDB4OTAsMHg3NiwweDY3LDB4ZjAsMHg5MCwweDc2LDB4NjcsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGI0LDB4NGJ9LAotICAxMCwweDA3ZjYsMCx7MHhmNiwweDEyLDB4NDcsMHhmYSwweDEyLDB4NDEsMHgxYiwweDgwLDB4YzUsMHgyMn0sCi0gIDE2LDB4MDgwMCwwLHsweGU0LDB4OTAsMHg3NiwweDMxLDB4ZjAsMHg5MCwweDc2LDB4MzEsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmfSwKLSAgMTYsMHgwODEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHhmZCwweGVlLDB4NmR9LAotICAxNiwweDA4MjAsMCx7MHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MGIsMHg1MCwweDA4LDB4OTAsMHg3NiwweDMxLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkNX0sCi0gIDE2LDB4MDgzMCwwLHsweGVmLDB4YjQsMHgwYiwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweGVmLDB4NzUsMHhmMCwweDAzfSwKLSAgMTYsMHgwODQwLDAsezB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4NzYsMHgzMywweGYwLDB4MjR9LAotICAxNiwweDA4NTAsMCx7MHhmMCwweDYwLDB4MGEsMHgyNCwweDBlLDB4NjAsMHgwMiwweDgxLDB4ODcsMHgxMiwweDRiLDB4YzcsMHgyMiwweDkwLDB4N2YsMHhlZH0sCi0gIDE2LDB4MDg2MCwwLHsweGUwLDB4NjQsMHgwNSwweDcwLDB4NTEsMHg5MCwweDc2LDB4MTgsMHg3NCwweDA1LDB4ZjAsMHg5MCwweDc2LDB4MzcsMHg3NCwweDAxfSwKLSAgMTYsMHgwODcwLDAsezB4ZjAsMHg5MCwweDc2LDB4MzksMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjEsMHhmMCwweGU0LDB4OTAsMHg3NiwweDIwLDB4ZjB9LAotICAxNiwweDA4ODAsMCx7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NjAsMHgyZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNH0sCi0gIDE2LDB4MDg5MCwwLHsweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZkfSwKLSAgMTYsMHgwOGEwLDAsezB4ZWUsMHg2ZCwweDYwLDB4MTIsMHg5MCwweDc2LDB4MjEsMHhlMCwweGZlLDB4ZWYsMHhjMywweDllLDB4NTAsMHgwOCwweDkwLDB4NzZ9LAotICAxNiwweDA4YjAsMCx7MHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDEsMHg5MCwweDdmLDB4ZWQsMHhlMCwweDY0LDB4MDYsMHg3MCwweDUyLDB4OTAsMHg3Nn0sCi0gIDE2LDB4MDhjMCwwLHsweDE4LDB4NzQsMHgwNiwweGYwLDB4OTAsMHg3NiwweDM3LDB4NzQsMHgwNCwweGYwLDB4OTAsMHg3NiwweDM5LDB4NzQsMHgwYSwweGYwfSwKLSAgMTYsMHgwOGQwLDAsezB4OTAsMHg3NiwweDIxLDB4ZjAsMHg5MCwweDc2LDB4MjAsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NjB9LAotICAxNiwweDA4ZTAsMCx7MHgyZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNH0sCi0gIDE2LDB4MDhmMCwwLHsweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZkLDB4ZWUsMHg2ZCwweDYwLDB4MTIsMHg5MCwweDc2fSwKLSAgMTYsMHgwOTAwLDAsezB4MjEsMHhlMCwweGZlLDB4ZWYsMHhjMywweDllLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDF9LAotICAxNiwweDA5MTAsMCx7MHg5MCwweDc2LDB4MjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4MDkyMCwwLHsweGY1LDB4ODMsMHhlMCwweDkwLDB4NzIsMHgyOSwweGYwLDB4ZTQsMHg5MCwweDc2LDB4M2IsMHhmMCwweDkwLDB4NzYsMHgyMSwweGUwfSwKLSAgMTYsMHgwOTMwLDAsezB4ZmUsMHhlZiwweDZlLDB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWJ9LAotICAxNiwweDA5NDAsMCx7MHhlMCwweDE0LDB4NjAsMHgxMywweDE0LDB4NzAsMHgwMiwweDIxLDB4ZTIsMHgyNCwweDAyLDB4NjAsMHgwMiwweDgxLDB4N2YsMHg5MH0sCi0gIDE2LDB4MDk1MCwwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgxNCwweDcwLDB4N2MsMHg5MCwweDdmfSwKLSAgMTYsMHgwOTYwLDAsezB4ZWEsMHhlMCwweGY0LDB4NzAsMHg0OCwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2LDB4Mzl9LAotICAxNiwweDA5NzAsMCx7MHhlMCwweGZlLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZCwweGMzLDB4OWUsMHg1MCwweDJiLDB4OTAsMHg3NiwweDNiLDB4ZTAsMHhmZX0sCi0gIDE2LDB4MDk4MCwwLHsweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmUsMHhlZCwweDc1fSwKLSAgMTYsMHgwOTkwLDAsezB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWUsMHhmMCwweDkwLDB4NzZ9LAotICAxNiwweDA5YTAsMCx7MHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4YzcsMHg5MCwweDc2LDB4M2YsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2UsMHhjMH0sCi0gIDE2LDB4MDliMCwwLHsweGUwLDB4ZmUsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfSwKLSAgMTYsMHgwOWMwLDAsezB4ZWUsMHhmMCwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTAsMHg3NiwweDNlLDB4NzQsMHgwMSwweGYwLDB4ODAsMHgwNSwweGU0LDB4OTB9LAotICAxNiwweDA5ZDAsMCx7MHg3NiwweDNlLDB4ZjAsMHg5MCwweDc2LDB4M2YsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0sCi0gIDE2LDB4MDllMCwwLHsweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg3MCwweDAyLDB4NDEsMHhhMywweDE0LDB4NzAsMHgwMiwweDYxfSwKLSAgMTYsMHgwOWYwLDAsezB4M2YsMHgxNCwweDcwLDB4MDIsMHg2MSwweGRiLDB4MjQsMHgwMywweDYwLDB4MDIsMHg4MSwweDc3LDB4OTAsMHg3ZiwweGVhLDB4ZTB9LAotICAxNiwweDBhMDAsMCx7MHhmNCwweDcwLDB4NmIsMHg5MCwweDc2LDB4MzcsMHhlMCwweDkwLDB4NzYsMHgyMCwweGYwLDB4OTAsMHg3NiwweDM5LDB4ZTAsMHhmZn0sCi0gIDE2LDB4MGExMCwwLHsweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHhjMywweDlmLDB4NTAsMHg0ZSwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwfSwKLSAgMTYsMHgwYTIwLDAsezB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGF9LAotICAxNiwweDBhMzAsMCx7MHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4M2IsMHhlMH0sCi0gIDE2LDB4MGE0MCwwLHsweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlfSwKLSAgMTYsMHgwYTUwLDAsezB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTB9LAotICAxNiwweDBhNjAsMCx7MHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhNCwweDkwLDB4NzYsMHg0MCwweDc0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZX0sCi0gIDE2LDB4MGE3MCwwLHsweGMwLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyfSwKLSAgMTYsMHgwYTgwLDAsezB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGF9LAotICAxNiwweDBhOTAsMCx7MHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4NDEsMHg3NH0sCi0gIDE2LDB4MGFhMCwwLHsweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDY2LDB4OTAsMHg3NiwweDM3LDB4ZTAsMHg5MCwweDc2fSwKLSAgMTYsMHgwYWIwLDAsezB4MjAsMHhmMCwweDkwLDB4NzYsMHgzOSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4YzMsMHg5ZiwweDQwLDB4MDJ9LAotICAxNiwweDBhYzAsMCx7MHg4MSwweDhlLDB4OTAsMHg3NiwweDNiLDB4ZTAsMHhmZiwweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNH0sCi0gIDE2LDB4MGFkMCwwLHsweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0fSwKLSAgMTYsMHgwYWUwLDAsezB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjV9LAotICAxNiwweDBhZjAsMCx7MHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWYsMHhmNX0sCi0gIDE2LDB4MGIwMCwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGEyfSwKLSAgMTYsMHgwYjEwLDAsezB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWV9LAotICAxNiwweDBiMjAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZmLDB4ZWUsMHg3NX0sCi0gIDE2LDB4MGIzMCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YWYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwfSwKLSAgMTYsMHgwYjQwLDAsezB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDY2LDB4OTAsMHg3NiwweDM3LDB4ZTAsMHg5MCwweDc2LDB4MjAsMHhmMCwweDkwLDB4NzZ9LAotICAxNiwweDBiNTAsMCx7MHgzOSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4YzMsMHg5ZiwweDQwLDB4MDIsMHg4MSwweDhlLDB4OTAsMHg3Nn0sCi0gIDE2LDB4MGI2MCwwLHsweDNiLDB4ZTAsMHhmZiwweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwfSwKLSAgMTYsMHgwYjcwLDAsezB4ZmYsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWZ9LAotICAxNiwweDBiODAsMCx7MHhmMCwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZX0sCi0gIDE2LDB4MGI5MCwwLHsweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgwYmEwLDAsezB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGEyLDB4OTAsMHg3ZSwweGMwLDB4ZTB9LAotICAxNiwweDBiYjAsMCx7MHhmZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNH0sCi0gIDE2LDB4MGJjMCwwLHsweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0fSwKLSAgMTYsMHgwYmQwLDAsezB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjR9LAotICAxNiwweDBiZTAsMCx7MHg3MCwweDY2LDB4OTAsMHg3NiwweDM3LDB4ZTAsMHg5MCwweDc2LDB4MjAsMHhmMCwweDkwLDB4NzYsMHgzOSwweGUwLDB4ZmYsMHg5MH0sCi0gIDE2LDB4MGJmMCwwLHsweDc2LDB4MjAsMHhlMCwweGZlLDB4YzMsMHg5ZiwweDQwLDB4MDIsMHg4MSwweDhlLDB4OTAsMHg3NiwweDNiLDB4ZTAsMHhmZiwweDA0fSwKLSAgMTYsMHgwYzAwLDAsezB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZSwweDc1LDB4ZjB9LAotICAxNiwweDBjMTAsMCx7MHgwYSwweGE0LDB4MjQsMHhiMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgzYn0sCi0gIDE2LDB4MGMyMCwwLHsweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmfSwKLSAgMTYsMHgwYzMwLDAsezB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjB9LAotICAxNiwweDBjNDAsMCx7MHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGEyLDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyMH0sCi0gIDE2LDB4MGM1MCwwLHsweGUwLDB4ZmUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmfSwKLSAgMTYsMHgwYzYwLDAsezB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDBjNzAsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MH0sCi0gIDE1LDB4MGM4MCwwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn0sCi0gIDE2LDB4MGM4ZiwwLHsweDQxLDB4NzYsMHg2OCwweDAxLDB4NDEsMHg3NiwweDZhLDB4MDIsMHg0MSwweDc2LDB4NmIsMHgwYSwweGMxLDB4MjAsMHhjMSwweDIxfSwKLSAgIDIsMHgwYzlmLDAsezB4YzEsMHgyZn0sCi0gICA0LDB4MGNhMSwwLHsweDQxLDB4NzYsMHgyMywweDAwfSwKLSAgMTYsMHgwY2E1LDAsezB4NDEsMHg3MiwweDAxLDB4MDEsMHg0NSwweDcyLDB4MDUsMHgwMCwweDAyLDB4YzksMHgwMCwweDAwLDB4NDUsMHg3MiwweDBhLDB4MDB9LAotICAxNiwweDBjYjUsMCx7MHgwMSwweDAyLDB4MDMsMHgwNCwweDRkLDB4NzIsMHgwZiwweGQxLDB4MDAsMHhkMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGNjNSwwLHsweDI4LDB4MjgsMHgwOSwweDAwLDB4NGQsMHg3MiwweDFjLDB4MDEsMHgwMCwweDAxLDB4MDIsMHgwMywweDA0LDB4MDUsMHgwNiwweDA3fSwKLSAgMTYsMHgwY2Q1LDAsezB4MDgsMHgwOSwweDBhLDB4MGIsMHg0MSwweDcyLDB4MmUsMHgyMiwweDQxLDB4NzIsMHgyZiwweDIzLDB4NDEsMHg3MiwweDMwLDB4MjB9LAotICAxNiwweDBjZTUsMCx7MHg0MSwweDcyLDB4MzEsMHgyMSwweDYyLDB4ZDIsMHg3MiwweDNhLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGNmNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwZDA1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBkMTUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGQyNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwZDM1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBkNDUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGQ1NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwZDY1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBkNzUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMX0sCi0gIDE2LDB4MGQ4NSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfSwKLSAgMTYsMHgwZDk1LDAsezB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDF9LAotICAxNiwweDBkYTUsMCx7MHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMX0sCi0gIDE2LDB4MGRiNSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfSwKLSAgMTYsMHgwZGM1LDAsezB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDJ9LAotICAxNiwweDBkZDUsMCx7MHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMn0sCi0gIDE2LDB4MGRlNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfSwKLSAgMTYsMHgwZGY1LDAsezB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDN9LAotICAxNiwweDBlMDUsMCx7MHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwM30sCi0gIDE2LDB4MGUxNSwwLHsweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfSwKLSAgMTYsMHgwZTI1LDAsezB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDN9LAotICAxNiwweDBlMzUsMCx7MHgwMywweDAzLDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNH0sCi0gIDE2LDB4MGU0NSwwLHsweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fSwKLSAgMTYsMHgwZTU1LDAsezB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDR9LAotICAxNiwweDBlNjUsMCx7MHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNH0sCi0gIDE2LDB4MGU3NSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1fSwKLSAgMTYsMHgwZTg1LDAsezB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDV9LAotICAxNiwweDBlOTUsMCx7MHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNX0sCi0gIDE2LDB4MGVhNSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNiwweDA2fSwKLSAgMTYsMHgwZWI1LDAsezB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDZ9LAotICAxNiwweDBlYzUsMCx7MHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNn0sCi0gIDE2LDB4MGVkNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2fSwKLSAgMTYsMHgwZWU1LDAsezB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA3LDB4MDcsMHgwNywweDA4LDB4MDh9LAotICAxNiwweDBlZjUsMCx7MHgwOCwweDA5LDB4MDksMHgwOSwweDBhLDB4MGEsMHgwYSwweDBiLDB4MGIsMHgwYiwweDBjLDB4MGMsMHgwYywweDBkLDB4MGQsMHgwZH0sCi0gIDE2LDB4MGYwNSwwLHsweDBlLDB4MGUsMHgwZSwweDBmLDB4MGYsMHgwZiwweDEwLDB4MTAsMHgxMCwweDExLDB4MTEsMHgxMSwweDEyLDB4MTIsMHgxMiwweDEzfSwKLSAgMTYsMHgwZjE1LDAsezB4MTMsMHgxMywweDE0LDB4MTQsMHgxNCwweDE1LDB4MTUsMHgxNSwweDE2LDB4MTYsMHgxNiwweDE3LDB4MTcsMHgxNywweDE4LDB4MTh9LAotICAxNiwweDBmMjUsMCx7MHgxOCwweDE5LDB4MTksMHgxOSwweDE5LDB4MWEsMHgxYSwweDFhLDB4MWEsMHgxYiwweDFiLDB4MWIsMHgxYiwweDFjLDB4MWMsMHgxY30sCi0gIDE2LDB4MGYzNSwwLHsweDFjLDB4MWQsMHgxZCwweDFkLDB4MWQsMHgxZSwweDFlLDB4MWUsMHgxZSwweDFmLDB4MWYsMHgxZiwweDFmLDB4MjAsMHgyMCwweDIwfSwKLSAgMTYsMHgwZjQ1LDAsezB4MjEsMHgyMSwweDIxLDB4MjIsMHgyMiwweDIyLDB4MjMsMHgyMywweDI0LDB4MjQsMHgyNSwweDI1LDB4MjYsMHgyNiwweDI3LDB4Mjd9LAotICAxNiwweDBmNTUsMCx7MHgyOCwweDI4LDB4MjksMHgyOSwweDJhLDB4MmEsMHgyYiwweDJiLDB4MmMsMHgyYywweDJkLDB4MmQsMHgyZSwweDJlLDB4MmYsMHgyZn0sCi0gIDE2LDB4MGY2NSwwLHsweDMwLDB4MzAsMHgzMSwweDMxLDB4MzIsMHgzMiwweDMzLDB4MzMsMHgzNCwweDM0LDB4MzUsMHgzNSwweDM2LDB4MzYsMHgzNywweDM3fSwKLSAgMTYsMHgwZjc1LDAsezB4MzgsMHgzOCwweDM5LDB4MzksMHgzYSwweDNhLDB4M2IsMHgzYywweDNkLDB4M2UsMHgzZiwweDQwLDB4NDEsMHg0MiwweDQzLDB4NDR9LAotICAxNiwweDBmODUsMCx7MHg0NSwweDQ2LDB4NDcsMHg0OCwweDQ5LDB4NDksMHg0YSwweDRiLDB4NGIsMHg0YywweDRkLDB4NGUsMHg0ZiwweDUwLDB4NTEsMHg1Mn0sCi0gIDE2LDB4MGY5NSwwLHsweDUzLDB4NTQsMHg1NSwweDU1LDB4NTYsMHg1NiwweDU3LDB4NTcsMHg1OCwweDVhLDB4NWIsMHg1ZCwweDVlLDB4NWYsMHg2MSwweDYyfSwKLSAgMTYsMHgwZmE1LDAsezB4NjMsMHg2NCwweDY1LDB4NjYsMHg2NywweDY4LDB4NjksMHg2YSwweDZiLDB4NmMsMHg2ZCwweDZmLDB4NzEsMHg3MiwweDczLDB4NzR9LAotICAxNiwweDBmYjUsMCx7MHg3NSwweDc2LDB4NzcsMHg3OCwweDc5LDB4N2EsMHg3YiwweDdjLDB4N2UsMHg4MCwweDAxLDB4MzcsMHgwMSwweDAxLDB4MzgsMHgwMH0sCi0gICAxLDB4MGZjNSwwLHsweDAwfSwKLSAgMTYsMHgwZmM2LDAsezB4ZTQsMHhmZiwweDc0LDB4NDYsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4MjB9LAotICAxNiwweDBmZDYsMCx7MHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWUsMHhmMCwweDc0LDB4NGUsMHgyZiwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MGZlNiwwLHsweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4MzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzfSwKLSAgIDYsMHgwZmY2LDAsezB4ZWUsMHhmMCwweDBmLDB4YmYsMHgwOCwweGNjfSwKLSAgIDEsMHgwZmZjLDAsezB4MjJ9LAotICAgMywweDBmZmQsMCx7MHhjMiwweDg5LDB4MzJ9LAotICAxNiwweDEwMDAsMCx7MHhlNCwweDkwLDB4NzYsMHgyYywweGYwLDB4OTAsMHg3NiwweDJjLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZn0sCi0gIDE2LDB4MTAxMCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlZCwweGUwLDB4ZmQsMHhlZSwweDZkfSwKLSAgMTYsMHgxMDIwLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDBiLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyYywweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9LAotICAxNiwweDEwMzAsMCx7MHhlZiwweGI0LDB4MGIsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE2LDB4MTA0MCwwLHsweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDc2LDB4MmUsMHhmMCwweDI0fSwKLSAgMTYsMHgxMDUwLDAsezB4ZjAsMHg2MCwweDBhLDB4MjQsMHgwZiwweDYwLDB4MDIsMHg4MSwweDdkLDB4MTIsMHg0YiwweGE0LDB4MjIsMHg5MCwweDdmLDB4ZWR9LAotICAxNiwweDEwNjAsMCx7MHhlMCwweDY0LDB4MDUsMHg3MCwweDUxLDB4OTAsMHg3NiwweDE4LDB4NzQsMHgwNSwweGYwLDB4OTAsMHg3NiwweDM4LDB4NzQsMHgwMX0sCi0gIDE2LDB4MTA3MCwwLHsweGYwLDB4OTAsMHg3NiwweDNhLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDFjLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHgxYiwweGYwfSwKLSAgMTYsMHgxMDgwLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwLDB4MmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9LAotICAxNiwweDEwOTAsMCx7MHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZH0sCi0gIDE2LDB4MTBhMCwwLHsweGVlLDB4NmQsMHg2MCwweDEyLDB4OTAsMHg3NiwweDFjLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2fSwKLSAgMTYsMHgxMGIwLDAsezB4MWIsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHg2NCwweDA2LDB4NzAsMHg1MiwweDkwLDB4NzZ9LAotICAxNiwweDEwYzAsMCx7MHgxOCwweDc0LDB4MDYsMHhmMCwweDkwLDB4NzYsMHgzOCwweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHgzYSwweDc0LDB4MGEsMHhmMH0sCi0gIDE2LDB4MTBkMCwwLHsweDkwLDB4NzYsMHgxYywweGYwLDB4OTAsMHg3NiwweDFiLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwfSwKLSAgMTYsMHgxMGUwLDAsezB4MmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDEwZjAsMCx7MHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZCwweGVlLDB4NmQsMHg2MCwweDEyLDB4OTAsMHg3Nn0sCi0gIDE2LDB4MTEwMCwwLHsweDFjLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2LDB4MWIsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxfSwKLSAgMTYsMHgxMTEwLDAsezB4ZTQsMHg5MCwweDc2LDB4MWUsMHhmMCwweDkwLDB4NzYsMHgxYywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZlLDB4NmZ9LAotICAxNiwweDExMjAsMCx7MHg3MCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYiwweGUwLDB4MTQsMHg2MH0sCi0gIDE2LDB4MTEzMCwwLHsweDEzLDB4MTQsMHg3MCwweDAyLDB4MjEsMHhiZiwweDI0LDB4MDIsMHg2MCwweDAyLDB4ODEsMHg3NSwweDkwLDB4N2YsMHhiNCwweGUwfSwKLSAgMTYsMHgxMTQwLDAsezB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDZiLDB4OTAsMHg3ZiwweGVhLDB4ZTB9LAotICAxNiwweDExNTAsMCx7MHhmNCwweDcwLDB4NGEsMHg5MCwweDc2LDB4MzgsMHhlMCwweDkwLDB4NzYsMHgxYiwweGYwLDB4OTAsMHg3NiwweDNhLDB4ZTAsMHhmZn0sCi0gIDE2LDB4MTE2MCwwLHsweDkwLDB4NzYsMHgxYiwweGUwLDB4ZmQsMHhjMywweDlmLDB4NTAsMHgyYiwweGVkLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFifSwKLSAgMTYsMHgxMTcwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjB9LAotICAxNiwweDExODAsMCx7MHg3NCwweDAwLDB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4MWIsMHhlMH0sCi0gIDE2LDB4MTE5MCwwLHsweDA0LDB4ZjAsMHg4MCwweGM3LDB4OTAsMHg3NiwweDFlLDB4ZTAsMHg5MCwweDdmLDB4YjUsMHhmMCwweDIyLDB4ZWUsMHg3NSwweGYwfSwKLSAgMTYsMHgxMWEwLDAsezB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjB9LAotICAxNiwweDExYjAsMCx7MHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MH0sCi0gIDE2LDB4MTFjMCwwLHsweDdmLDB4ZTksMHhlMCwweDI0LDB4N2UsMHg3MCwweDAyLDB4NDEsMHg3ZSwweDE0LDB4NzAsMHgwMiwweDYxLDB4MjMsMHgxNCwweDcwfSwKLSAgMTYsMHgxMWQwLDAsezB4MDIsMHg2MSwweGM4LDB4MjQsMHgwMywweDYwLDB4MDIsMHg4MSwweDZkLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDcwLDB4NmR9LAotICAxNiwweDExZTAsMCx7MHg5MCwweDc2LDB4MzgsMHhlMCwweDkwLDB4NzYsMHgxYiwweGYwLDB4OTAsMHg3NiwweDNhLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxYn0sCi0gIDE2LDB4MTFmMCwwLHsweGUwLDB4YzMsMHg5ZiwweDUwLDB4NGYsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgxMjAwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmR9LAotICAxNiwweDEyMTAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZH0sCi0gIDE2LDB4MTIyMCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmUsMHgwNCwweGYwfSwKLSAgMTYsMHgxMjMwLDAsezB4NzQsMHgwMCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTB9LAotICAxNiwweDEyNDAsMCx7MHgwNCwweGYwLDB4ODAsMHhhNCwweDkwLDB4NzYsMHgxZSwweGUwLDB4OTAsMHg3ZiwweGI1LDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxYn0sCi0gIDE2LDB4MTI1MCwwLHsweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwfSwKLSAgMTYsMHgxMjYwLDAsezB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9LAotICAxNiwweDEyNzAsMCx7MHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDIyLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MTI4MCwwLHsweGVhLDB4ZTAsMHhmNCwweDcwLDB4NmQsMHg5MCwweDc2LDB4MzgsMHhlMCwweDkwLDB4NzYsMHgxYiwweGYwLDB4OTAsMHg3NiwweDNhfSwKLSAgMTYsMHgxMjkwLDAsezB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxYiwweGUwLDB4YzMsMHg5ZiwweDUwLDB4NGYsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9LAotICAxNiwweDEyYTAsMCx7MHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZH0sCi0gIDE2LDB4MTJiMCwwLHsweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHhlZiwweDc1fSwKLSAgMTYsMHgxMmMwLDAsezB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzZ9LAotICAxNiwweDEyZDAsMCx7MHgxZSwweGUwLDB4ZmUsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZn0sCi0gIDE2LDB4MTJlMCwwLHsweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhNCwweDkwLDB4NzYsMHgxZSwweGUwLDB4OTAsMHg3ZiwweGI1fSwKLSAgMTYsMHgxMmYwLDAsezB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxYiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWUsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDEzMDAsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZn0sCi0gIDE2LDB4MTMxMCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0fSwKLSAgMTYsMHgxMzIwLDAsezB4MDIsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDcwLDB4NmQsMHg5MCwweDc2LDB4MzgsMHhlMCwweDkwLDB4NzZ9LAotICAxNiwweDEzMzAsMCx7MHgxYiwweGYwLDB4OTAsMHg3NiwweDNhLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxYiwweGUwLDB4YzMsMHg5ZiwweDUwLDB4NGYsMHhlMH0sCi0gIDE2LDB4MTM0MCwwLHsweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlfSwKLSAgMTYsMHgxMzUwLDAsezB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjV9LAotICAxNiwweDEzNjAsMCx7MHg4MywweGVlLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4MTM3MCwwLHsweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmUsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJlLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgxMzgwLDAsezB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhNCwweDkwLDB4NzZ9LAotICAxNiwweDEzOTAsMCx7MHgxZSwweGUwLDB4OTAsMHg3ZiwweGI1LDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxYiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNH0sCi0gIDE2LDB4MTNhMCwwLHsweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlZiwweDc1fSwKLSAgMTYsMHgxM2IwLDAsezB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDF9LAotICAxNiwweDEzYzAsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDcwLDB4NmQsMHg5MH0sCi0gIDE2LDB4MTNkMCwwLHsweDc2LDB4MzgsMHhlMCwweDkwLDB4NzYsMHgxYiwweGYwLDB4OTAsMHg3NiwweDNhLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxYiwweGUwfSwKLSAgMTYsMHgxM2UwLDAsezB4YzMsMHg5ZiwweDUwLDB4NGYsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDEzZjAsMCx7MHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmQsMHhmNX0sCi0gIDE2LDB4MTQwMCwwLHsweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMywweGY1fSwKLSAgMTYsMHgxNDEwLDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmUsMHgwNCwweGYwLDB4NzR9LAotICAxNiwweDE0MjAsMCx7MHgwMCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHgwNH0sCi0gIDE2LDB4MTQzMCwwLHsweGYwLDB4ODAsMHhhNCwweDkwLDB4NzYsMHgxZSwweGUwLDB4OTAsMHg3ZiwweGI1LDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxYiwweGUwfSwKLSAgMTYsMHgxNDQwLDAsezB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTB9LAotICAxNiwweDE0NTAsMCx7MHg3ZiwweDAwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4MTQ2MCwwLHsweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0fSwKLSAgMTYsMHgxNDcwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjR9LAotICAgNSwweDE0ODAsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHgxNDg1LDAsezB4NzQsMHgwMCwweGY1LDB4ODYsMHg5MCwweGZkLDB4YTUsMHg3YywweDA1LDB4YTMsMHhlNSwweDgyLDB4NDUsMHg4MywweDcwLDB4Zjl9LAotICAgMSwweDE0OTUsMCx7MHgyMn0sCi0gIDE2LDB4MTQ5NiwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4NDQsMHg4MCwweGYwLDB4NDMsMHg4NywweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIyfSwKLSAgMTYsMHgxNGE2LDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHg4ZiwweGUwLDB4YzAsMHhlMCwweDhlLDB4ZTAsMHhjMCwweGUwLDB4OGQsMHhlMCwweGMwLDB4ZTB9LAotICAxNiwweDE0YjYsMCx7MHg4YywweGUwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4MDUsMHg4NiwweGMwLDB4ODQsMHhjMCwweDg1LDB4N2QsMHgwMH0sCi0gIDE2LDB4MTRjNiwwLHsweDkwLDB4N2YsMHhlMywweDc0LDB4N2IsMHhmMCwweGEzLDB4NzQsMHg4MCwweGYwLDB4N2MsMHgxMSwweDkwLDB4N2YsMHg5OSwweGUwfSwKLSAgMTYsMHgxNGQ2LDAsezB4NTQsMHg0MCwweGRjLDB4MDMsMHgwMiwweDE0LDB4ZjMsMHhiNCwweDAwLDB4MTMsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDQwLDB4ZjB9LAotICAxNiwweDE0ZTYsMCx7MHg5MCwweDdmLDB4ZTUsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDAyLDB4MTQsMHhkMiwweDkwLDB4NzYsMHg5MH0sCi0gIDE2LDB4MTRmNiwwLHsweGUwLDB4YjQsMHgwMSwweDEyLDB4OTAsMHg3NiwweDhmLDB4ZTAsMHgyZCwweGZkLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwfSwKLSAgMTYsMHgxNTA2LDAsezB4OTAsMHg3ZiwweDZjLDB4MDIsMHgxNSwweDU3LDB4YjQsMHgwMiwweDEyLDB4OTAsMHg3NiwweDhmLDB4ZTAsMHgyZCwweGZkLDB4OTB9LAotICAxNiwweDE1MTYsMCx7MHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgxNSwweDk2LDB4YjQsMHgwMywweDEyLDB4OTAsMHg3Nn0sCi0gIDE2LDB4MTUyNiwwLHsweDhmLDB4ZTAsMHgyZCwweGZkLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgxNSwweGUxfSwKLSAgMTYsMHgxNTM2LDAsezB4YjQsMHgwNCwweDEyLDB4OTAsMHg3NiwweDhmLDB4ZTAsMHgyZCwweGZkLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTB9LAotICAxNiwweDE1NDYsMCx7MHg3ZiwweDZjLDB4MDIsMHgxNiwweDEwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgxNn0sCi0gIDE2LDB4MTU1NiwwLHsweDQwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhmMiwweDdkfSwKLSAgMTYsMHgxNTY2LDAsezB4MDIsMHgwNSwweDg2LDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHg1NCwweDA0LDB4YjR9LAotICAxNiwweDE1NzYsMCx7MHgwMCwweDA1LDB4MDUsMHg4NiwweDAyLDB4MTYsMHg0MCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDA1LDB4ODYsMHhmMH0sCi0gIDE2LDB4MTU4NiwwLHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhkZCwweGQ0LDB4MDIsMHgxNiwweDQwfSwKLSAgMTYsMHgxNTk2LDAsezB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjB9LAotICAxNiwweDE1YTYsMCx7MHhmMCwweGYwLDB4ZGQsMHhlYywweDdkLDB4MDIsMHgwNSwweDg2LDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MTViNiwwLHsweDliLDB4ZTAsMHg1NCwweDA0LDB4YjQsMHgwMCwweDA1LDB4MDUsMHg4NiwweDAyLDB4MTYsMHg0MCwweDkwLDB4N2YsMHhlMiwweDc0fSwKLSAgMTYsMHgxNWM2LDAsezB4ODAsMHhmMCwweDA1LDB4ODYsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjB9LAotICAgNiwweDE1ZDYsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjB9LAotICAxNiwweDE1ZGMsMCx7MHhkZCwweGNlLDB4MDIsMHgxNiwweDQwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhkZCwweGZhLDB4N2QsMHgwMiwweDA1LDB4ODYsMHg5MH0sCi0gIDE2LDB4MTVlYywwLHsweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweDU0LDB4MDQsMHhiNCwweDAwLDB4MDUsMHgwNSwweDg2fSwKLSAgMTYsMHgxNWZjLDAsezB4MDIsMHgxNiwweDQwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4MDUsMHg4NiwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGR9LAotICAxNiwweDE2MGMsMCx7MHhkYywweDAyLDB4MTYsMHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGRkLDB4ZjgsMHg3ZCwweDAyLDB4MDUsMHg4Nn0sCi0gIDE2LDB4MTYxYywwLHsweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4NTQsMHgwNCwweGI0LDB4MDAsMHgwNSwweDA1fSwKLSAgMTYsMHgxNjJjLDAsezB4ODYsMHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHgwNSwweDg2LDB4ZjAsMHhmMCwweGYwLDB4ZjB9LAotICAxNiwweDE2M2MsMCx7MHhmMCwweGYwLDB4ZGQsMHhkYSwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweGQwLDB4ODUsMHhkMCwweDg0LDB4MDUsMHg4Nn0sCi0gIDE2LDB4MTY0YywwLHsweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZmfSwKLSAgIDUsMHgxNjVjLDAsezB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn0sCi0gIDE2LDB4MTY2MSwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHg5MCwweDc2LDB4N2MsMHhlMCwweDkwLDB4N2YsMHg2ZiwweGYwfSwKLSAgMTYsMHgxNjcxLDAsezB4OTAsMHg3NiwweDdkLDB4ZTAsMHg5MCwweDdmLDB4NmYsMHhmMCwweDkwLDB4NzYsMHg3ZSwweGUwLDB4OTAsMHg3ZiwweDZmLDB4ZjB9LAotICAgOSwweDE2ODEsMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9LAotICAxNiwweDE2OGEsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweDhmLDB4ZTAsMHhjMCwweGUwLDB4OGUsMHhlMCwweGMwLDB4ZTAsMHhjMCwweDgyLDB4YzAsMHg4M30sCi0gIDE2LDB4MTY5YSwwLHsweDA1LDB4ODYsMHhjMCwweDg0LDB4YzAsMHg4NSwweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhiZiwweDAwLDB4MDMsMHgwMiwweDE3fSwKLSAgMTYsMHgxNmFhLDAsezB4MDEsMHg5MCwweDdmLDB4OTYsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDE2YmEsMCx7MHg2MiwweGUwLDB4MDUsMHg4NiwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5NiwweGUwLDB4NTQsMHg3Zn0sCi0gIDE2LDB4MTZjYSwwLHsweGYwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3NiwweDhlLDB4ZTAsMHhiNCwweDAxLDB4MDUsMHgwNSwweDg2fSwKLSAgMTYsMHgxNmRhLDAsezB4MDIsMHgxNiwweGY2LDB4YjQsMHgwMiwweDA1LDB4MDUsMHg4NiwweDAyLDB4MTYsMHhlYiwweDA1LDB4ODYsMHgwMiwweDE2LDB4ZmJ9LAotICAxNiwweDE2ZWEsMCx7MHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhkZiwweGY4LDB4MDIsMHgxNiwweGZiLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhkZn0sCi0gIDE2LDB4MTZmYSwwLHsweGZhLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4ZDAsMHg4NSwweGQwLDB4ODQsMHgwNSwweDg2LDB4ZDAsMHg4MywweGQwfSwKLSAgMTIsMHgxNzBhLDAsezB4ODIsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfSwKLSAgMTYsMHgxNzE2LDAsezB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGUwLDB4ZTgsMHhjMCwweGUwLDB4NzgsMHhkMSwweGU4LDB4MTQsMHhmOCwweDcwLDB4ZmJ9LAotICAxMCwweDE3MjYsMCx7MHhkMCwweGUwLDB4ZjgsMHhkMCwweGUwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHgyMn0sCi0gIDE2LDB4MTczMCwwLHsweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhlMCwweGU4LDB4YzAsMHhlMCwweDc4LDB4NzgsMHhlOCwweDE0LDB4ZjgsMHg3MCwweGZifSwKLSAgMTAsMHgxNzQwLDAsezB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhlMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MjJ9LAotICAgNywweDE3NGEsMCx7MHg5MCwweDdmLDB4YzUsMHg3NCwweDAyLDB4ZjAsMHgyMn0sCi0gIDE2LDB4MTc1MSwwLHsweDkwLDB4N2UsMHhjMCwweGUwLDB4OTAsMHg3NiwweDQ1LDB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweDkwLDB4NzYsMHg0NCwweGYwfSwKLSAgMTYsMHgxNzYxLDAsezB4OTAsMHg3ZSwweGMyLDB4ZTAsMHg5MCwweDc2LDB4NDMsMHhmMCwweGI0LDB4MDAsMHgwMywweDAyLDB4MTcsMHg3OCwweDkwLDB4NzZ9LAotICAxNiwweDE3NzEsMCx7MHgxOSwweDc0LDB4MDMsMHhmMCwweDAyLDB4MTcsMHg4ZSwweDkwLDB4NzYsMHg0NCwweGUwLDB4YjQsMHhiYiwweDA5LDB4OTAsMHg3Nn0sCi0gIDE2LDB4MTc4MSwwLHsweDE5LDB4NzQsMHgwMiwweGYwLDB4MDIsMHgxNywweDhlLDB4OTAsMHg3NiwweDE5LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDQyfSwKLSAgIDMsMHgxNzkxLDAsezB4ZTQsMHhmMCwweDIyfSwKLSAgIDQsMHgxNzk0LDAsezB4OGQsMHgyOSwweDhiLDB4MmF9LAotICAxNiwweDE3OTgsMCx7MHgxMiwweDRhLDB4NTUsMHhlYSwweDQ5LDB4NjAsMHg1NywweDEyLDB4MzYsMHg5MiwweDdlLDB4MDAsMHgyOSwweGZmLDB4ZWUsMHgzYX0sCi0gIDE2LDB4MTdhOCwwLHsweGM5LDB4ZWYsMHhjOSwweDc1LDB4MmIsMHhmZiwweGY1LDB4MmMsMHg4OSwweDJkLDB4YWIsMHgyYiwweGFhLDB4MmMsMHhhOSwweDJkfSwKLSAgMTYsMHgxN2I4LDAsezB4OTAsMHgwMCwweDAxLDB4MTIsMHgzNiwweGFiLDB4ZmYsMHg2NCwweDA0LDB4NjAsMHgwNSwweGVmLDB4NjQsMHgwNSwweDcwLDB4MmV9LAotICAxNiwweDE3YzgsMCx7MHhlZiwweGI0LDB4MDQsMHgxNSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MzYsMHhhYiwweDY1LDB4MjksMHg3MCwweDBiLDB4OTAsMHgwMH0sCi0gIDE2LDB4MTdkOCwwLHsweDAzLDB4MTIsMHgzNiwweGFiLDB4NjUsMHgyYSwweDcwLDB4MDEsMHgyMiwweDEyLDB4MzYsMHg5MiwweDdlLDB4MDAsMHgyOSwweGZmfSwKLSAgMTYsMHgxN2U4LDAsezB4ZWUsMHgzYSwweGM5LDB4ZWYsMHhjOSwweDc1LDB4MmIsMHhmZiwweGY1LDB4MmMsMHg4OSwweDJkLDB4ODAsMHhiYywweDdiLDB4MDB9LAotICAgNCwweDE3ZjgsMCx7MHg3YSwweDAwLDB4NzksMHgwMH0sCi0gICAxLDB4MTdmYywwLHsweDIyfSwKLSAgIDMsMHgxN2ZkLDAsezB4YzIsMHg4YiwweDMyfSwKLSAgMTYsMHgxODAwLDAsezB4OTAsMHg3NiwweDkwLDB4ZTAsMHgxNCwweDYwLDB4MzcsMHgxNCwweDcwLDB4MDIsMHgwMSwweGQ4LDB4MTQsMHg3MCwweDAyLDB4MjF9LAotICAxNiwweDE4MTAsMCx7MHg3MiwweDE0LDB4NzAsMHgwMiwweDQxLDB4M2IsMHgyNCwweDA0LDB4NjAsMHgwMiwweDYxLDB4MDMsMHg5MCwweDdmLDB4ZmMsMHg3NH0sCi0gIDE2LDB4MTgyMCwwLHsweGNjLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTUsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDU0fSwKLSAgMTYsMHgxODMwLDAsezB4MDUsMHhmMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4ZTQsMHg5MCwweDc2LDB4MWEsMHhmMCwweGMyLDB4MmUsMHgyMiwweDkwLDB4NzZ9LAotICAxNiwweDE4NDAsMCx7MHg5NSwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4MzAsMHgzZSwweDA2LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MH0sCi0gIDE2LDB4MTg1MCwwLHsweDA3LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc2LDB4MWEsMHhlMCwweGI0LDB4MDEsMHgwOCwweDkwfSwKLSAgMTYsMHgxODYwLDAsezB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDIyLDB4OTB9LAotICAxNiwweDE4NzAsMCx7MHg3ZiwweGZjLDB4NzQsMHg3NCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyYn0sCi0gIDE2LDB4MTg4MCwwLHsweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwfSwKLSAgMTYsMHgxODkwLDAsezB4ZjAsMHhlZiwweGI0LDB4MDIsMHgyMiwweDkwLDB4N2YsMHhmYywweDc0LDB4NjgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmN9LAotICAxNiwweDE4YTAsMCx7MHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmYsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMiwweGYwLDB4ZTQsMHg5MH0sCi0gIDE2LDB4MThiMCwwLHsweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4MzAsMHgzZiwweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlfSwKLSAgMTYsMHgxOGMwLDAsezB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmJ9LAotICAxNiwweDE4ZDAsMCx7MHhmMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4ZDIsMHgyZSwweDIyLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg0NH0sCi0gIDE2LDB4MThlMCwwLHsweDAyLDB4ZjAsMHgzMCwweDNlLDB4MDYsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0fSwKLSAgMTYsMHgxOGYwLDAsezB4ZmIsMHhmMCwweDkwLDB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDF9LAotICAxNiwweDE5MDAsMCx7MHhmMCwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MjIsMHg5MCwweDdmLDB4ZmMsMHg3NCwweDMwLDB4ZjAsMHg5MH0sCi0gIDE2LDB4MTkxMCwwLHsweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJiLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0fSwKLSAgMTYsMHgxOTIwLDAsezB4ZmQsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDIyLDB4OTB9LAotICAxNiwweDE5MzAsMCx7MHg3ZiwweGZjLDB4NzQsMHgxYywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyZn0sCi0gIDE2LDB4MTk0MCwwLHsweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwfSwKLSAgMTYsMHgxOTUwLDAsezB4ZjAsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTd9LAotICAxNiwweDE5NjAsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHhkMn0sCi0gIDE2LDB4MTk3MCwwLHsweDJlLDB4MjIsMHg5MCwweDc2LDB4OTUsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDQ0LDB4MDgsMHhmMCwweDMwfSwKLSAgMTYsMHgxOTgwLDAsezB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTB9LAotICAxNiwweDE5OTAsMCx7MHg3NiwweDFhLDB4ZTAsMHhiNCwweDAxLDB4MDgsMHg5MCwweDc2LDB4OTUsMHhlMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4OTAsMHg3Nn0sCi0gIDE2LDB4MTlhMCwwLHsweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4Y2MsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0fSwKLSAgMTYsMHgxOWIwLDAsezB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmIsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4NTR9LAotICAxNiwweDE5YzAsMCx7MHhmYiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MjUsMHg5MH0sCi0gIDE2LDB4MTlkMCwwLHsweDdmLDB4ZmMsMHg3NCwweGM4LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJmfSwKLSAgMTYsMHgxOWUwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjB9LAotICAxNiwweDE5ZjAsMCx7MHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMywweDI1LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHg5OCwweGYwLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MWEwMCwwLHsweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHg1ZiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZkfSwKLSAgMTYsMHgxYTEwLDAsezB4ZjAsMHg0NCwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgzMCwweDNmLDB4MDl9LAotICAxNiwweDFhMjAsMCx7MHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gIDE2LDB4MWEzMCwwLHsweDkwLDB4NzYsMHg5NywweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHhkMiwweDJlLDB4MjIsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0fSwKLSAgMTYsMHgxYTQwLDAsezB4ZmUsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDQ0LDB4MDgsMHhmMCwweDMwLDB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODB9LAotICAxNiwweDFhNTAsMCx7MHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3NiwweDFhLDB4ZTAsMHhiNCwweDAxLDB4MDgsMHg5MH0sCi0gIDE2LDB4MWE2MCwwLHsweDc2LDB4OTUsMHhlMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgyNSwweDkwfSwKLSAgMTYsMHgxYTcwLDAsezB4N2YsMHhmYywweDc0LDB4YjQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmJ9LAotICAxNiwweDFhODAsMCx7MHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMH0sCi0gIDE2LDB4MWE5MCwwLHsweDkwLDB4NzYsMHg4MCwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MjUsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGIwLDB4ZjAsMHg5MCwweDdmfSwKLSAgMTYsMHgxYWEwLDAsezB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDJ9LAotICAxNiwweDFhYjAsMCx7MHhmMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwM30sCi0gIDE2LDB4MWFjMCwwLHsweDI1LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHg2OCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmfSwKLSAgMTYsMHgxYWQwLDAsezB4NzQsMHg1ZiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg0NCwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzZ9LAotICAxNiwweDFhZTAsMCx7MHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMH0sCi0gIDE2LDB4MWFmMCwwLHsweDgwLDB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4OTAsMHg4MCwweDAyfSwKLSAgIDQsMHgxYjAwLDAsezB4ZjAsMHhkMiwweDJlLDB4MjJ9LAotICAxNiwweDFiMDQsMCx7MHgzMCwweDJjLDB4MzgsMHhjMiwweDJjLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgwZSwweDkwLDB4NzYsMHg3Y30sCi0gIDE2LDB4MWIxNCwwLHsweDc0LDB4YzAsMHhmMCwweGEzLDB4NzQsMHgxNCwweGYwLDB4YTMsMHg3NCwweDBiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgwZCwweGU0fSwKLSAgMTYsMHgxYjI0LDAsezB4OTAsMHg3NiwweDdjLDB4ZjAsMHhhMywweDc0LDB4MTAsMHhmMCwweGEzLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGJ9LAotICAxMiwweDFiMzQsMCx7MHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHg3NCwweDE4LDB4ZjAsMHhhMywweGYwLDB4MjJ9LAotICAxNiwweDFiNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWI1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYjYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWI4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYjkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWJiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYmMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWJlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYmYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWMxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWM0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWM3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWNhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxY2IwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWNkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxY2UwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZDEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZDQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQ2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZDcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQ5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZGEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWRjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZGQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWRmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWUyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWU1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWU4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE0LDB4MWViMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlYmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWVjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZWRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWVmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZjBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmMWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWYyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgIDIsMHgxZjNlLDAsezB4MDAsMHgwMH0sCi0gIDE2LDB4MWY0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZjUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWY3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZjgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWZhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZmIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWZkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZmUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjAwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMDEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjAzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMDQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjA2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMDcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjA5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMGEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjBjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMGQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjBmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjEyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjE1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjE4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjFiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMWMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjFlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMWYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjIxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjI0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjI3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjJhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMmIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjJkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMmUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjMwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMzEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjMzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMzQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjM2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTQsMHgyMzcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjM3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMzhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzOWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjNhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyM2JlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzY2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjNkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyM2VlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNDFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0MmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNDRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0NWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQ2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNDdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0OGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQ5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNGFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0YmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjRjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNGRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0ZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjRmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1MWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjUyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1NGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjU1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1N2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjU4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1YWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjViZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNWNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1ZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjVlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNWZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2MGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjYxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2M2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjY0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2NmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjY3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2OWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjZhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNmJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2Y2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjZkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTQsMHgyNmVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjZmYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzBjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3MWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjcyYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzNjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3NGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4Mjc1YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3N2MsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4Mjc4YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzljLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3YWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjdiYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyN2NjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3ZGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjdlYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgIDUsMHgyN2ZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMn0sCi0gIDE2LDB4MjgwMSwwLHsweGMyLDB4MjAsMHhjMiwweDIxLDB4YzIsMHgyYSwweDkwLDB4N2YsMHhlOCwweGUwLDB4MTIsMHgzNywweGY5LDB4MjgsMHgzMCwweDAwfSwKLSAgMTYsMHgyODExLDAsezB4MjgsMHg4YywweDAxLDB4MjgsMHhhMiwweDAyLDB4MmEsMHgxZiwweDIxLDB4MmEsMHg2YSwweDIyLDB4MjksMHgzZCwweDgwLDB4Mjl9LAotICAxNiwweDI4MjEsMCx7MHg3ZCwweDgxLDB4MjksMHhkMSwweDgyLDB4MmEsMHg4NCwweGExLDB4MmEsMHhiYSwweGEyLDB4MDAsMHgwMCwweDJhLDB4YmYsMHg5MH0sCi0gIDE2LDB4MjgzMSwwLHsweDdmLDB4ZTksMHhlMCwweDE0LDB4NjAsMHgxMSwweDI0LDB4ZmUsMHg2MCwweDI4LDB4MjQsMHhmZSwweDYwLDB4M2IsMHgyNCwweGZjfSwKLSAgMTYsMHgyODQxLDAsezB4NzAsMHg0MCwweDEyLDB4M2YsMHhlNSwweDQxLDB4Y2IsMHgxMiwweDRlLDB4MWQsMHg0MCwweDAyLDB4NDEsMHhjYiwweDkwLDB4N2Z9LAotICAxNiwweDI4NTEsMCx7MHhlYSwweGUwLDB4YjQsMHgwMSwweDA0LDB4YzIsMHgyMiwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gIDE2LDB4Mjg2MSwwLHsweDQxLDB4Y2IsMHgxMiwweDRlLDB4MWYsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGI0LDB4MDEsMHgwNCwweGQyLDB4MjIsMHg0MSwweGNifSwKLSAgMTYsMHgyODcxLDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9LAotICAxNiwweDI4ODEsMCx7MHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNH0sCi0gIDE2LDB4Mjg5MSwwLHsweGY1LDB4NzAsMHgwNSwweDEyLDB4NDgsMHg2MywweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxfSwKLSAgMTYsMHgyOGExLDAsezB4Y2IsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmQsMHg2MCwweDU0LDB4MjQsMHgwMiwweDYwLDB4MDIsMHgyMSwweDM0LDB4MTJ9LAotICAxNiwweDI4YjEsMCx7MHg0ZSwweDFkLDB4NDAsMHgwMiwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDcwLDB4MzgsMHg5MCwweDdmLDB4ZWMsMHhlMH0sCi0gIDE2LDB4MjhjMSwwLHsweGY0LDB4NTQsMHg4MCwweGZmLDB4YzQsMHg1NCwweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1LDB4ZTAsMHgyNCwweGI0fSwKLSAgMTYsMHgyOGQxLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg1NCwweDgwLDB4ZmZ9LAotICAxNiwweDI4ZTEsMCx7MHgxMywweDEzLDB4MTMsMHg1NCwweDFmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDkwLDB4N2YsMHhkNywweGYwLDB4ZTAsMHg0NH0sCi0gIDE2LDB4MjhmMSwwLHsweDIwLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4MTIsMHg0ZSwweDFmfSwKLSAgMTYsMHgyOTAxLDAsezB4NDAsMHgwMiwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDcwLDB4MjAsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGY0LDB4NTR9LAotICAxNiwweDI5MTEsMCx7MHg4MCwweGZmLDB4YzQsMHg1NCwweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1LDB4ZTAsMHgyNCwweGI0LDB4ZjUsMHg4Mn0sCi0gIDE2LDB4MjkyMSwwLHsweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfSwKLSAgMTYsMHgyOTMxLDAsezB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGU5LDB4ZTB9LAotICAxNiwweDI5NDEsMCx7MHg2MCwweDEyLDB4MjQsMHhmOCwweDYwLDB4MDksMHgyNCwweDAyLDB4NzAsMHgyOSwweDEyLDB4NDMsMHhlNywweDQxLDB4Y2IsMHgxMn0sCi0gIDE2LDB4Mjk1MSwwLHsweDRkLDB4Y2EsMHg0MSwweGNiLDB4MTIsMHg0ZSwweDFiLDB4YTIsMHgyMiwweGU0LDB4MzMsMHhmZiwweDI1LDB4ZTAsMHhmZiwweGEyfSwKLSAgMTYsMHgyOTYxLDAsezB4MjMsMHhlNCwweDMzLDB4NGYsMHg5MCwweDdmLDB4MDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDJ9LAotICAxNiwweDI5NzEsMCx7MHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZTksMHhlMH0sCi0gIDE2LDB4Mjk4MSwwLHsweDYwLDB4MzMsMHgyNCwweGY2LDB4NjAsMHgyYSwweDI0LDB4MDQsMHg3MCwweDNkLDB4OTAsMHg3ZiwweGViLDB4ZTAsMHgyNCwweGRlfSwKLSAgMTYsMHgyOTkxLDAsezB4NjAsMHgwYywweDA0LDB4NzAsMHgxMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2Z9LAotICAxNiwweDI5YTEsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYn0sCi0gIDE2LDB4MjliMSwwLHsweDEyLDB4NDcsMHg0NSwweDQxLDB4Y2IsMHgxMiwweDRlLDB4MWIsMHhlNCwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHhmMCwweDkwfSwKLSAgMTYsMHgyOWMxLDAsezB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2J9LAotICAxNiwweDI5ZDEsMCx7MHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZjQsMHg2MCwweDM0LDB4MjQsMHgwYywweDcwLDB4MzksMHgxMiwweDRlLDB4MWIsMHg5MH0sCi0gIDE2LDB4MjllMSwwLHsweDdmLDB4ZWMsMHhlMCwweGY0LDB4NTQsMHg4MCwweGZmLDB4YzQsMHg1NCwweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1fSwKLSAgMTYsMHgyOWYxLDAsezB4ZTAsMHgyNCwweGI0LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZmQsMHg5MCwweDdmLDB4MDB9LAotICAxNiwweDJhMDEsMCx7MHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMH0sCi0gIDE2LDB4MmExMSwwLHsweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmfSwKLSAgMTYsMHgyYTIxLDAsezB4ZTksMHhlMCwweDI0LDB4ZjYsMHg2MCwweDEyLDB4MTQsMHg2MCwweDFhLDB4MjQsMHgwMiwweDcwLDB4MWQsMHhkMiwweDIwLDB4OTB9LAotICAxNiwweDJhMzEsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDEyLDB4ZDIsMHgyMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0sCi0gIDE2LDB4MmE0MSwwLHsweGYwLDB4ODAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjAsMHgyMCwweDE4LDB4OTAsMHg3ZiwweGVlfSwKLSAgMTYsMHgyYTUxLDAsezB4ZTAsMHg3MCwweDA0LDB4YTMsMHhlMCwweDYwLDB4MGIsMHhkMiwweDI5LDB4ZDIsMHgyNywweDEyLDB4MTcsMHg0YSwweGQyLDB4MmF9LAotICAxNiwweDJhNjEsMCx7MHg4MCwweDAzLDB4MTIsMHgwOCwweDAwLDB4YzIsMHgyMCwweDgwLDB4NjEsMHg5MCwweDdmLDB4ZWUsMHhlMCwweDcwLDB4MDQsMHhhM30sCi0gIDE2LDB4MmE3MSwwLHsweGUwLDB4NjAsMHgwYiwweGQyLDB4MjksMHhkMiwweDI4LDB4MTIsMHgxNywweDRhLDB4ZDIsMHgyYSwweDgwLDB4NGMsMHgxMiwweDM4fSwKLSAgMTYsMHgyYTgxLDAsezB4NzQsMHg4MCwweDQ3LDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGZlLDB4NjAsMHgxMiwweDE0LDB4NjAsMHgxYSwweDI0LDB4MDJ9LAotICAxNiwweDJhOTEsMCx7MHg3MCwweDFkLDB4ZDIsMHgyMSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgxMiwweGQyLDB4MjEsMHg5MH0sCi0gIDE2LDB4MmFhMSwwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwfSwKLSAgMTYsMHgyYWIxLDAsezB4MjEsMHgwMywweDEyLDB4MTAsMHgwMCwweGMyLDB4MjEsMHg4MCwweDExLDB4MTIsMHgyYSwweGQ2LDB4ODAsMHgwYywweDEyLDB4NGV9LAotICAxNiwweDJhYzEsMCx7MHgyMSwweDUwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwLDB4MmEsMHgwNywweDkwLDB4N2YsMHhiNH0sCi0gICA1LDB4MmFkMSwwLHsweGUwLDB4NDQsMHgwMiwweGYwLDB4MjJ9LAotICAxNiwweDJhZDYsMCx7MHhlNCwweDkwLDB4NzYsMHgyNywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0Mn0sCi0gIDE2LDB4MmFlNiwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmQsMHhlZSwweDZkfSwKLSAgMTYsMHgyYWY2LDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA2LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyNywweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9LAotICAxNiwweDJiMDYsMCx7MHhlZiwweGI0LDB4MDYsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwZn0sCi0gIDE2LDB4MmIxNiwwLHsweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDc2LDB4MjgsMHhmMCwweDI0fSwKLSAgMTYsMHgyYjI2LDAsezB4OWYsMHg3MCwweDAyLDB4YTEsMHg3NCwweDI0LDB4MjEsMHg2MCwweDAyLDB4YTEsMHhhMSwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjR9LAotICAxNiwweDJiMzYsMCx7MHg3ZSwweDcwLDB4MDIsMHg2MSwweGZjLDB4MTQsMHg3MCwweDAyLDB4ODEsMHhiNSwweDI0LDB4MDIsMHg2MCwweDAyLDB4YTEsMHg2Y30sCi0gIDE2LDB4MmI0NiwwLHsweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjfSwKLSAgMTYsMHgyYjU2LDAsezB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHg0NCwweDdhLDB4YWMsMHg3OSwweDAwLDB4Nzh9LAotICAxNiwweDJiNjYsMCx7MHgwMCwweGMzLDB4MTIsMHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4NDQsMHhmMCwweGEzLDB4NzQsMHhhY30sCi0gIDE2LDB4MmI3NiwwLHsweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwfSwKLSAgMTYsMHgyYjg2LDAsezB4MGYsMHhhNCwweDI0LDB4NDMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmR9LAotICAxNiwweDJiOTYsMCx7MHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMn0sCi0gIDE2LDB4MmJhNiwwLHsweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjAsMHhlNCwweGEzfSwKLSAgMTYsMHgyYmI2LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjR9LAotICAxNiwweDJiYzYsMCx7MHg0MywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZX0sCi0gIDE2LDB4MmJkNiwwLHsweGEzLDB4ZTAsMHhmZiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDYwfSwKLSAgMTYsMHgyYmU2LDAsezB4MDIsMHhhMSwweGE4LDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhhMywweDc0LDB4NzcsMHhmMCwweGEzLDB4NzQsMHgwMSwweGYwLDB4OTB9LAotICAxNiwweDJiZjYsMCx7MHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4MjIsMHg5MCwweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0N30sCi0gIDE2LDB4MmMwNiwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzfSwKLSAgMTYsMHgyYzE2LDAsezB4ZTAsMHhmZiwweDdiLDB4NDQsMHg3YSwweGFjLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDcwLDB4MTN9LAotICAxNiwweDJjMjYsMCx7MHg5MCwweDdmLDB4MDAsMHg3NCwweDQ0LDB4ZjAsMHhhMywweDc0LDB4YWMsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNX0sCi0gIDE2LDB4MmMzNiwwLHsweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgyYzQ2LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2J9LAotICAxNiwweDJjNTYsMCx7MHg4MCwweDdhLDB4YmIsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMH0sCi0gIDE2LDB4MmM2NiwwLHsweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwfSwKLSAgMTYsMHgyYzc2LDAsezB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDJjODYsMCx7MHg4MywweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDAwLDB4N2EsMHg3N30sCi0gIDE2LDB4MmM5NiwwLHsweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg2MCwweDAyLDB4YTEsMHhhOCwweDkwLDB4N2YsMHgwMCwweGYwfSwKLSAgMTYsMHgyY2E2LDAsezB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDIyLDB4OTB9LAotICAxNiwweDJjYjYsMCx7MHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4MmNjNiwwLHsweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDQ0LDB4N2EsMHhhYywweDc5fSwKLSAgMTYsMHgyY2Q2LDAsezB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg0NCwweGYwLDB4YTN9LAotICAxNiwweDJjZTYsMCx7MHg3NCwweGFjLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMH0sCi0gIDE2LDB4MmNmNiwwLHsweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzfSwKLSAgMTYsMHgyZDA2LDAsezB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDB9LAotICAxNiwweDJkMTYsMCx7MHhjMywweDEyLDB4MzcsMHhhYiwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDAsMHg3NCwweDgwLDB4ZjAsMHhhMywweDc0LDB4YmIsMHhmMH0sCi0gIDE2LDB4MmQyNiwwLHsweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmfSwKLSAgMTYsMHgyZDM2LDAsezB4YTQsMHgyNCwweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTN9LAotICAxNiwweDJkNDYsMCx7MHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHgwMCwweDdhLDB4NzcsMHg3OSwweDAxLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgzN30sCi0gIDE2LDB4MmQ1NiwwLHsweGFiLDB4NzAsMHg0ZiwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwfSwKLSAgMTYsMHgyZDY2LDAsezB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2Z9LAotICAxNiwweDJkNzYsMCx7MHhlOSwweGUwLDB4MjQsMHg3ZiwweDcwLDB4MWUsMHg5MCwweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0Zn0sCi0gIDE2LDB4MmQ4NiwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0fSwKLSAgMTYsMHgyZDk2LDAsezB4MDEsMHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9LAotICAgMywweDJkYTYsMCx7MHgwMSwweGYwLDB4MjJ9LAotICAxNiwweDJkYTksMCx7MHhlNCwweDkwLDB4NzYsMHgzNiwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MmRiOSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyfSwKLSAgMTYsMHgyZGM5LDAsezB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjV9LAotICAxNiwweDJkZDksMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZn0sCi0gIDE2LDB4MmRlOSwwLHsweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgxMCwweGYwfSwKLSAgMTYsMHgyZGY5LDAsezB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDV9LAotICAxNiwweDJlMDksMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNH0sCi0gIDE2LDB4MmUxOSwwLHsweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1fSwKLSAgMTYsMHgyZTI5LDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGZ9LAotICAxNiwweDJlMzksMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNH0sCi0gIDE2LDB4MmU0OSwwLHsweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwfSwKLSAgMTYsMHgyZTU5LDAsezB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzR9LAotICAxNiwweDJlNjksMCx7MHgwMSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4MmU3OSwwLHsweDc0LDB4MDMsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fSwKLSAgMTYsMHgyZTg5LDAsezB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjR9LAotICAxNiwweDJlOTksMCx7MHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgxMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNH0sCi0gIDE2LDB4MmVhOSwwLHsweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDYsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzfSwKLSAgMTYsMHgyZWI5LDAsezB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTB9LAotICAxNiwweDJlYzksMCx7MHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4MmVkOSwwLHsweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgyZWU5LDAsezB4ZjUsMHg4MywweDc0LDB4MDQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDJlZjksMCx7MHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE2LDB4MmYwOSwwLHsweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwfSwKLSAgMTYsMHgyZjE5LDAsezB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDgsMHhmMCwweGVmLDB4NzV9LAotICAxNiwweDJmMjksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHg5MH0sCi0gIDE2LDB4MmYzOSwwLHsweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgyZjQ5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZiwweGY1LDB4ODJ9LAotICAxNiwweDJmNTksMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwYSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNX0sCi0gIDE2LDB4MmY2OSwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwfSwKLSAgMTYsMHgyZjc5LDAsezB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDJ9LAotICAxNiwweDJmODksMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH0sCi0gIDE2LDB4MmY5OSwwLHsweDA5LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfSwKLSAgMTYsMHgyZmE5LDAsezB4NzQsMHgwNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjR9LAotICAxNiwweDJmYjksMCx7MHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNH0sCi0gIDE2LDB4MmZjOSwwLHsweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDcsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzfSwKLSAgMTQsMHgyZmQ5LDAsezB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHgyMn0sCi0gIDE2LDB4MmZlNywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGQyLDB4MjYsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAxfSwKLSAgIDgsMHgyZmY3LDAsezB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gICAxLDB4MmZmZiwwLHsweDMyfSwKLSAgMTYsMHgzMDAwLDAsezB4OTAsMHg3ZiwweGI2LDB4ZTAsMHgyMCwweGUxLDB4MDIsMHhjMiwweDNkLDB4ZDIsMHgzNiwweDIwLDB4MzYsMHgwMiwweDQxLDB4NmV9LAotICAxNiwweDMwMTAsMCx7MHgzMCwweDNkLDB4MDIsMHg0MSwweDZlLDB4OTAsMHg4MCwweDA3LDB4ZTAsMHg2MCwweDA0LDB4ZDIsMHgzNiwweDgwLDB4MDIsMHhjMn0sCi0gIDE2LDB4MzAyMCwwLHsweDM2LDB4MjAsMHgzNiwweDAyLDB4NDEsMHgyZSwweGQyLDB4MzUsMHhlNCwweGY1LDB4MWEsMHg5MCwweDgwLDB4MDQsMHhlMCwweGY1fSwKLSAgMTYsMHgzMDMwLDAsezB4MTksMHg3NCwweDA4LDB4MjUsMHgwZSwweGY4LDB4YTYsMHgxOSwweDg1LDB4MTksMHgxOCwweGU1LDB4MTgsMHgyMCwweGU3LDB4MDR9LAotICAxNiwweDMwNDAsMCx7MHhkMiwweDM4LDB4ODAsMHgwMiwweGMyLDB4MzgsMHgzMCwweDM4LDB4MDIsMHgyMSwweGQ0LDB4ZTQsMHhmNSwweDE2LDB4ZTUsMHgxOX0sCi0gIDE2LDB4MzA1MCwwLHsweGI0LDB4ZjAsMHgwYywweGQyLDB4MzksMHg3NSwweDA4LDB4MDQsMHg3NSwweDA5LDB4ZjAsMHgwNSwweDBlLDB4ODAsMHgwMiwweDA1fSwKLSAgMTYsMHgzMDYwLDAsezB4MTYsMHhlNSwweDE5LDB4NjQsMHhmNywweDcwLDB4M2QsMHhjMiwweDM5LDB4ZTUsMHgwZSwweDI0LDB4ZmUsMHg2MCwweDE3LDB4MTR9LAotICAxNiwweDMwNzAsMCx7MHg2MCwweDIyLDB4MjQsMHgwMywweDcwLDB4MjksMHg3NSwweDA4LDB4MDUsMHg3NSwweDA5LDB4ZjcsMHhlNCwweGY1LDB4MGEsMHhmNX0sCi0gIDE2LDB4MzA4MCwwLHsweDBiLDB4NzUsMHgwZSwweDA0LDB4ODAsMHgyMCwweDc1LDB4MDgsMHgwNiwweDc1LDB4MGEsMHhmNywweGU0LDB4ZjUsMHgwYiwweDc1fSwKLSAgMTYsMHgzMDkwLDAsezB4MGUsMHgwNCwweDgwLDB4MTIsMHg3NSwweDA4LDB4MDcsMHg3NSwweDBiLDB4ZjcsMHg3NSwweDBlLDB4MDQsMHg4MCwweDA3LDB4MTJ9LAotICAxNiwweDMwYTAsMCx7MHg0ZCwweGRhLDB4ODAsMHgwMiwweDA1LDB4MTYsMHhlNSwweDE5LDB4NTQsMHhmOCwweDY0LDB4ZjgsMHg3MCwweDNiLDB4YzIsMHgzNX0sCi0gIDE2LDB4MzBiMCwwLHsweGU1LDB4MTksMHgyNCwweDA3LDB4NjAsMHgwYywweDI0LDB4ZmMsMHg2MCwweDA4LDB4MjQsMHgwNSwweDI0LDB4ZjgsMHg1MCwweDA2fSwKLSAgMTYsMHgzMGMwLDAsezB4ODAsMHgwOCwweGQyLDB4M2EsMHg4MCwweDA2LDB4YzIsMHgzYSwweDgwLDB4MDIsMHhkMiwweDNhLDB4NzUsMHgxYSwweDAxLDB4MjB9LAotICAxNiwweDMwZDAsMCx7MHgzYSwweDE5LDB4OTAsMHg3ZSwweDgwLDB4NzQsMHgwZiwweGYwLDB4YTMsMHhlNSwweDE5LDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhM30sCi0gIDE2LDB4MzBlMCwwLHsweGYwLDB4OTAsMHg3ZiwweGI3LDB4NzQsMHgwNCwweGYwLDB4ODAsMHgwMiwweDA1LDB4MTYsMHgyMCwweDM5LDB4NmQsMHhlNSwweDE5fSwKLSAgMTYsMHgzMGYwLDAsezB4NjQsMHhmNywweDYwLDB4NjcsMHhlNSwweDFhLDB4NzAsMHg2MywweGU1LDB4MTgsMHg1NCwweGYwLDB4NjQsMHhmMCwweDcwLDB4NTl9LAotICAxNiwweDMxMDAsMCx7MHg4NSwweDE4LDB4MTksMHhmNSwweDBlLDB4ZTUsMHgxOSwweDI0LDB4MGYsMHg2MCwweDFiLDB4MjQsMHhmZSwweDYwLDB4MTcsMHgyNH0sCi0gIDE2LDB4MzExMCwwLHsweGZkLDB4NjAsMHgyMiwweDE0LDB4NjAsMHgxZiwweDI0LDB4MDUsMHg3MCwweDJmLDB4NzUsMHgwOCwweDAzLDB4MDUsMHgwZSwweDg1fSwKLSAgMTYsMHgzMTIwLDAsezB4MTgsMHgwOSwweGQyLDB4MzcsMHg4MCwweDI4LDB4NzUsMHgwOCwweDAyLDB4MDUsMHgwZSwweDg1LDB4MTgsMHgwOSwweDc1LDB4MTR9LAotICAxNiwweDMxMzAsMCx7MHgwMSwweGQyLDB4MzcsMHg4MCwweDE5LDB4NzUsMHgwOCwweDA1LDB4MDUsMHgwZSwweDg1LDB4MTgsMHgwOSwweGU0LDB4ZjUsMHgwYX0sCi0gIDE2LDB4MzE0MCwwLHsweGY1LDB4MGIsMHg3NSwweDBlLDB4MDMsMHhkMiwweDM3LDB4ODAsMHgwNSwweDEyLDB4NGQsMHhkYSwweGMyLDB4MzUsMHgzMCwweDM1fSwKLSAgMTYsMHgzMTUwLDAsezB4MGEsMHg4NSwweDA4LDB4MTMsMHg4NSwweDE4LDB4MTIsMHg4MCwweDAyLDB4MDUsMHgxNiwweDg1LDB4MTgsMHgxOSwweGU1LDB4MTZ9LAotICAxNiwweDMxNjAsMCx7MHg2NCwweDA0LDB4NzAsMHg2MiwweGY1LDB4MGUsMHhlNSwweDE5LDB4NTQsMHhmMCwweGY1LDB4MTksMHhmNSwweDE1LDB4ODUsMHgxOH0sCi0gIDE2LDB4MzE3MCwwLHsweDE5LDB4ZTUsMHgxNSwweDI0LDB4NzAsMHg2MCwweDE4LDB4MjQsMHhmMCwweDYwLDB4MTQsMHgyNCwweGYwLDB4NjAsMHgxMCwweDI0fSwKLSAgMTYsMHgzMTgwLDAsezB4ZjAsMHg2MCwweDFlLDB4MjQsMHhmMCwweDYwLDB4MWEsMHgyNCwweGYwLDB4NjAsMHgwNCwweDI0LDB4NjAsMHg3MCwweDI3LDB4ZTV9LAotICAxNiwweDMxOTAsMCx7MHgxNSwweGM0LDB4NTQsMHgwZiwweGY1LDB4MTksMHhmNSwweDA4LDB4MDUsMHgwZSwweDg1LDB4MTgsMHgwOSwweGQyLDB4MzcsMHg4MH0sCi0gIDE2LDB4MzFhMCwwLHsweDFhLDB4ZTUsMHgxNSwweGM0LDB4NTQsMHgwZiwweGY1LDB4MTksMHhmNSwweDA4LDB4MDUsMHgwZSwweDg1LDB4MTgsMHgwOSwweDc1fSwKLSAgMTYsMHgzMWIwLDAsezB4MTQsMHgwMSwweGQyLDB4MzcsMHg4MCwweDA1LDB4MTIsMHg0ZCwweGRhLDB4YzIsMHgzNSwweDMwLDB4MzUsMHgwYSwweDg1LDB4MTl9LAotICAxNiwweDMxYzAsMCx7MHgxMywweDg1LDB4MTgsMHgxMiwweDgwLDB4MDIsMHgwNSwweDE2LDB4ZTUsMHgxNiwweGQzLDB4OTQsMHgwNSwweDQwLDB4NTcsMHgxMn0sCi0gIDE2LDB4MzFkMCwwLHsweDRkLDB4ZGEsMHg4MCwweDUyLDB4MzAsMHgzOSwweDE3LDB4ZTUsMHgwZSwweDcwLDB4MGEsMHg4NSwweDA4LDB4MDksMHg3NSwweDA4fSwKLSAgMTYsMHgzMWUwLDAsezB4MDQsMHgwNSwweDBlLDB4ODAsMHg0MSwweDc0LDB4MDgsMHgyNSwweDBlLDB4ZjgsMHhhNiwweDE5LDB4ODAsMHgzOCwweDIwLDB4Mzd9LAotICAxNiwweDMxZjAsMCx7MHgyYSwweGU1LDB4MGUsMHhiNCwweDAxLDB4MGYsMHg4NSwweDA4LDB4MGEsMHg4NSwweDA5LDB4MGIsMHg4NSwweDEzLDB4MDgsMHg4NX0sCi0gIDE2LDB4MzIwMCwwLHsweDEyLDB4MDksMHg3NSwweDBlLDB4MDQsMHhlNSwweDE0LDB4YjQsMHgwMSwweDFjLDB4ODUsMHgwOCwweDBhLDB4ZTQsMHhmNSwweDBifSwKLSAgMTYsMHgzMjEwLDAsezB4ODUsMHgxMywweDA4LDB4ODUsMHgxMiwweDA5LDB4NzUsMHgwZSwweDA0LDB4ODAsMHgwYiwweGU1LDB4MTQsMHhiNCwweDAxLDB4MDZ9LAotICAxNiwweDMyMjAsMCx7MHhlNCwweGY1LDB4MGIsMHg3NSwweDBlLDB4MDQsMHhlNCwweGY1LDB4MWEsMHgzMCwweDM1LDB4MDIsMHgwNSwweDBlLDB4ZTUsMHgwZX0sCi0gIDE2LDB4MzIzMCwwLHsweGQzLDB4OTQsMHgwMywweDUwLDB4MDIsMHgwMSwweDBiLDB4YzIsMHgzNywweGU0LDB4ZjUsMHgwZSwweGY1LDB4MTAsMHhjMiwweDM2fSwKLSAgMTYsMHgzMjQwLDAsezB4ZDIsMHgzZCwweGY1LDB4MTQsMHg3NCwweDA4LDB4MjUsMHgxMCwweGY4LDB4ZTYsMHhmZiwweDc0LDB4ODAsMHgyNSwweDEwLDB4ZjV9LAotICAxNiwweDMyNTAsMCx7MHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlZiwweGYwLDB4NzQsMHgwOCwweDI1LDB4MTAsMHhmOCwweGU0LDB4ZjYsMHgwNX0sCi0gIDE1LDB4MzI2MCwwLHsweDEwLDB4ZTUsMHgxMCwweGI0LDB4MDQsMHhkZSwweDkwLDB4N2YsMHhiNywweDc0LDB4MDQsMHhmMCwweDAxLDB4MGIsMHgyMn0sCi0gIDE2LDB4MzI2ZiwwLHsweDkwLDB4NzYsMHgxOCwweGUwLDB4ZmYsMHg2NCwweDA1LDB4NzAsMHg0MiwweDkwLDB4NzUsMHhhYiwweGUwLDB4YjQsMHgwMSwweDE5fSwKLSAgMTYsMHgzMjdmLDAsezB4OTAsMHg3MiwweDM3LDB4NzQsMHgwMSwweGYwLDB4ZTQsMHg5MCwweDgwLDB4MjAsMHhmMCwweDkwLDB4ODAsMHgzMSwweGYwLDB4OTB9LAotICAxNiwweDMyOGYsMCx7MHg4MCwweDI4LDB4ZjAsMHg5MCwweDgwLDB4MzksMHhmMCwweDgwLDB4MjIsMHhlNCwweDkwLDB4NzIsMHgzNywweGYwLDB4OTAsMHg3NX0sCi0gIDE2LDB4MzI5ZiwwLHsweGFkLDB4ZTAsMHg5MCwweDcyLDB4MmIsMHhmMCwweGUwLDB4MjQsMHg4MCwweGYwLDB4ZTAsMHg5MCwweDgwLDB4MjAsMHhmMCwweDkwfSwKLSAgMTYsMHgzMmFmLDAsezB4ODAsMHgzMSwweGYwLDB4OTAsMHg4MCwweDI4LDB4ZjAsMHg5MCwweDgwLDB4MzksMHhmMCwweGVmLDB4NjQsMHgwNiwweDYwLDB4MDJ9LAotICAxNiwweDMyYmYsMCx7MHg4MSwweDk5LDB4OTAsMHg3MiwweDM5LDB4NzQsMHgwNCwweGYwLDB4OTAsMHg3MiwweDM5LDB4ZTAsMHhmZiwweDI0LDB4ZmUsMHg5MH0sCi0gIDE2LDB4MzJjZiwwLHsweDcyLDB4MDQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fSwKLSAgMTYsMHgzMmRmLDAsezB4ODMsMHhlMCwweDY0LDB4MDEsMHg3MCwweDU0LDB4OTAsMHg3MiwweDM2LDB4MDQsMHhmMCwweDkwLDB4NzIsMHgwNCwweGUwLDB4ZmZ9LAotICAxNiwweDMyZWYsMCx7MHgyNCwweGZkLDB4NjAsMHgyOCwweDI0LDB4ZmUsMHg2MCwweDI0LDB4MjQsMHgwMywweDI0LDB4ZmIsMHg1MCwweDA0LDB4NjAsMHgxY30sCi0gIDE2LDB4MzJmZiwwLHsweDgxLDB4OGMsMHg3NCwweDIwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3NCwweDI4fSwKLSAgMTYsMHgzMzBmLDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg4MSwweDhjLDB4OTAsMHg3MiwweDA0LDB4ZTB9LAotICAxNiwweDMzMWYsMCx7MHhmZiwweDI0LDB4MzAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3NCwweDM4LDB4MmYsMHhmNX0sCi0gIDE2LDB4MzMyZiwwLHsweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg4MSwweDhjLDB4ZTQsMHg5MCwweDcyLDB4MzYsMHhmMCwweDkwfSwKLSAgMTYsMHgzMzNmLDAsezB4NzIsMHgzOSwweGUwLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9LAotICAxNiwweDMzNGYsMCx7MHhlMCwweGZmLDB4N2UsMHgwMCwweDkwLDB4NzUsMHgwYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHg3MCwweDA2LDB4OTAsMHg3Mn0sCi0gIDE2LDB4MzM1ZiwwLHsweDAyLDB4NzQsMHgzYiwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDY0LDB4ODAsMHg0ZSwweDcwfSwKLSAgMTYsMHgzMzZmLDAsezB4MDQsMHg5MCwweDcyLDB4MDIsMHhmMCwweGVmLDB4NGUsMHg3MCwweDAyLDB4ODEsMHgzNSwweGVmLDB4NjQsMHg4MCwweDRlLDB4NzB9LAotICAxNiwweDMzN2YsMCx7MHgwMiwweDgxLDB4MzUsMHhlZiwweGY4LDB4ZTQsMHg5MCwweDc1LDB4MGQsMHhmMCwweGU4LDB4OTAsMHg3NSwweDBjLDB4ZjAsMHg5MH0sCi0gIDE2LDB4MzM4ZiwwLHsweDcyLDB4MzQsMHhlMCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfSwKLSAgMTYsMHgzMzlmLDAsezB4ZTAsMHhmZiwweDkwLDB4NzIsMHgwMiwweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTAsMHgyZiwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTB9LAotICAxNiwweDMzYWYsMCx7MHgzNCwweDAwLDB4ZjAsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4N2IsMHhkNiwweDdhLDB4YTUsMHhmOX0sCi0gIDE2LDB4MzNiZiwwLHsweGY4LDB4ZDMsMHgxMiwweDM3LDB4OTUsMHg0MCwweDBhLDB4OTAsMHg3NSwweDBjLDB4NzQsMHhhNSwweGYwLDB4YTMsMHg3NCwweGQ2fSwKLSAgMTYsMHgzM2NmLDAsezB4ZjAsMHg5MCwweDc1LDB4MGQsMHhlMCwweDI0LDB4MmEsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4MzQsMHg1YSwweGYwLDB4ZTB9LAotICAxNiwweDMzZGYsMCx7MHhmZSwweGEzLDB4ZTAsMHg3OCwweDA1LDB4Y2UsMHhhMiwweGU3LDB4MTMsMHhjZSwweDEzLDB4ZDgsMHhmOCwweGZmLDB4OTAsMHg3NX0sCi0gIDE2LDB4MzNlZiwwLHsweDBjLDB4ZWUsMHhmMCwweGEzLDB4ZWYsMHhmMCwweDkwLDB4NzIsMHgyYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHhkMywweDk0fSwKLSAgMTYsMHgzM2ZmLDAsezB4ZDIsMHhlZSwweDY0LDB4ODAsMHg5NCwweDgyLDB4NDAsMHgwYSwweDkwLDB4NzIsMHgyYywweDc0LDB4MDIsMHhmMCwweGEzLDB4NzR9LAotICAxNiwweDM0MGYsMCx7MHhkMiwweGYwLDB4YzMsMHg5MCwweDcyLDB4MmMsMHhlMCwweDY0LDB4ODAsMHg5NCwweDgwLDB4NTAsMHgwNCwweGU0LDB4ZjAsMHhhM30sCi0gIDE2LDB4MzQxZiwwLHsweGYwLDB4OTAsMHg3MiwweDJjLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHgyNCwweDNhLDB4ZjUsMHg4MiwweGVlLDB4MzQsMHg3MiwweGY1fSwKLSAgMTYsMHgzNDJmLDAsezB4ODMsMHhlMCwweDkwLDB4NzIsMHgwMiwweGYwLDB4OTAsMHg3MiwweDA0LDB4ZTAsMHhmZiwweDI0LDB4ZmQsMHg2MCwweDJkLDB4MjR9LAotICAxNiwweDM0M2YsMCx7MHhmZSwweDYwLDB4MjksMHgyNCwweDAzLDB4MjQsMHhmYiwweDUwLDB4MDQsMHg2MCwweDIxLDB4ODAsMHg0MCwweDkwLDB4NzIsMHgwMn0sCi0gIDE2LDB4MzQ0ZiwwLHsweGUwLDB4ZmUsMHg3NCwweDIwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDI4fSwKLSAgMTYsMHgzNDVmLDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg4MCwweDIxLDB4OTAsMHg3MiwweDAyLDB4ZTB9LAotICAxNiwweDM0NmYsMCx7MHhmZiwweDkwLDB4NzIsMHgwNCwweGUwLDB4ZmUsMHgyNCwweDMwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZn0sCi0gIDE2LDB4MzQ3ZiwwLHsweGYwLDB4NzQsMHgzOCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3MiwweDM5fSwKLSAgMTEsMHgzNDhmLDAsezB4ZTAsMHgwNCwweGYwLDB4ZTAsMHg2NCwweDBhLDB4NjAsMHgwMiwweDQxLDB4YzcsMHgyMn0sCi0gIDE2LDB4MzQ5YSwwLHsweDkwLDB4NzYsMHgxOCwweGUwLDB4ZmYsMHhiNCwweDA1LDB4MjMsMHg5MCwweDcyLDB4MzcsMHhlMCwweDcwLDB4MWQsMHg5MCwweDc1fSwKLSAgMTYsMHgzNGFhLDAsezB4YWQsMHhlMCwweDkwLDB4NzIsMHgyYiwweGYwLDB4ZTAsMHgyNCwweDgwLDB4ZjAsMHhlMCwweDkwLDB4ODAsMHgyMCwweGYwLDB4OTB9LAotICAxNiwweDM0YmEsMCx7MHg4MCwweDMxLDB4ZjAsMHg5MCwweDgwLDB4MjgsMHhmMCwweDkwLDB4ODAsMHgzOSwweGYwLDB4ZWYsMHg2NCwweDA2LDB4NjAsMHgwMn0sCi0gIDE2LDB4MzRjYSwwLHsweGMxLDB4OTEsMHg5MCwweDcyLDB4MzYsMHhlMCwweDYwLDB4MDIsMHhjMSwweDkxLDB4OTAsMHg3NiwweDQwLDB4ZTAsMHg3MCwweDMxfSwKLSAgMTYsMHgzNGRhLDAsezB4OTAsMHg3MiwweDAzLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3MiwweDAzLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjR9LAotICAxNiwweDM0ZWEsMCx7MHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzIsMHgyOSwweGUwLDB4ZmQsMHhlZX0sCi0gIDE2LDB4MzRmYSwwLHsweDZkLDB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDBhLDB4NTAsMHgwOCwweDkwLDB4NzIsMHgwMywweGUwLDB4MDQsMHhmMCwweDgwfSwKLSAgMTYsMHgzNTBhLDAsezB4ZDUsMHg5MCwweDcyLDB4MzksMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4NDAsMHhlMCwweDcwLDB4MDgsMHg5MCwweDcyLDB4MDN9LAotICAxNiwweDM1MWEsMCx7MHhlMCwweDkwLDB4NzIsMHgzOSwweGYwLDB4OTAsMHg3MiwweDM5LDB4ZTAsMHhmZCwweDI0LDB4ZmUsMHg5MCwweDcyLDB4MmEsMHhmMH0sCi0gIDE2LDB4MzUyYSwwLHsweGVkLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZmfSwKLSAgMTYsMHgzNTNhLDAsezB4N2UsMHgwMCwweDkwLDB4NzUsMHgwYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHg3MCwweDA2LDB4OTAsMHg3MiwweDAyLDB4NzR9LAotICAxNiwweDM1NGEsMCx7MHg4MCwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDY0LDB4ODAsMHg0ZSwweDcwLDB4MDQsMHg5MH0sCi0gIDE2LDB4MzU1YSwwLHsweDcyLDB4MDIsMHhmMCwweGVmLDB4NGUsMHg3MCwweDAyLDB4YzEsMHgxYiwweGVmLDB4NjQsMHg4MCwweDRlLDB4NzAsMHgwMiwweGMxfSwKLSAgMTYsMHgzNTZhLDAsezB4MWIsMHhlZiwweGY4LDB4ZTQsMHg5MCwweDc1LDB4MGQsMHhmMCwweGU4LDB4OTAsMHg3NSwweDBjLDB4ZjAsMHhlZCwweDc1LDB4ZjB9LAotICAxNiwweDM1N2EsMCx7MHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzIsMHgwMn0sCi0gIDE2LDB4MzU4YSwwLHsweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTAsMHgyZiwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTAsMHgzNCwweDAwLDB4ZjAsMHhlMCwweGZlfSwKLSAgMTYsMHgzNTlhLDAsezB4YTMsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4N2IsMHhkNiwweDdhLDB4YTUsMHhmOSwweGY4LDB4ZDMsMHgxMiwweDM3LDB4OTV9LAotICAxNiwweDM1YWEsMCx7MHg0MCwweDBhLDB4OTAsMHg3NSwweDBjLDB4NzQsMHhhNSwweGYwLDB4YTMsMHg3NCwweGQ2LDB4ZjAsMHg5MCwweDc1LDB4MGQsMHhlMH0sCi0gIDE2LDB4MzViYSwwLHsweDI0LDB4MmEsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4MzQsMHg1YSwweGYwLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHg3OCwweDA1fSwKLSAgMTYsMHgzNWNhLDAsezB4Y2UsMHhhMiwweGU3LDB4MTMsMHhjZSwweDEzLDB4ZDgsMHhmOCwweGZmLDB4OTAsMHg3NSwweDBjLDB4ZWUsMHhmMCwweGEzLDB4ZWZ9LAotICAxNiwweDM1ZGEsMCx7MHhmMCwweDkwLDB4NzIsMHgyYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHhkMywweDk0LDB4ZDIsMHhlZSwweDY0LDB4ODAsMHg5NH0sCi0gIDE2LDB4MzVlYSwwLHsweDgyLDB4NDAsMHgwYSwweDkwLDB4NzIsMHgyYywweDc0LDB4MDIsMHhmMCwweGEzLDB4NzQsMHhkMiwweGYwLDB4YzMsMHg5MCwweDcyfSwKLSAgMTYsMHgzNWZhLDAsezB4MmMsMHhlMCwweDY0LDB4ODAsMHg5NCwweDgwLDB4NTAsMHgwNCwweGU0LDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3MiwweDJjLDB4ZTB9LAotICAxNiwweDM2MGEsMCx7MHhmZSwweGEzLDB4ZTAsMHgyNCwweDNhLDB4ZjUsMHg4MiwweGVlLDB4MzQsMHg3MiwweGY1LDB4ODMsMHhlMCwweDkwLDB4NzIsMHgwMn0sCi0gIDE2LDB4MzYxYSwwLHsweGYwLDB4OTAsMHg3MiwweDJhLDB4ZTAsMHhmZiwweDI0LDB4ZmQsMHg2MCwweDJkLDB4MjQsMHhmZSwweDYwLDB4MjksMHgyNCwweDAzfSwKLSAgMTYsMHgzNjJhLDAsezB4MjQsMHhmYiwweDUwLDB4MDQsMHg2MCwweDIxLDB4ODAsMHg0MCwweDkwLDB4NzIsMHgwMiwweGUwLDB4ZmUsMHg3NCwweDIwLDB4MmZ9LAotICAxNiwweDM2M2EsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDI4LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNH0sCi0gIDE2LDB4MzY0YSwwLHsweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg4MCwweDIxLDB4OTAsMHg3MiwweDAyLDB4ZTAsMHhmZiwweDkwLDB4NzIsMHgyYSwweGUwfSwKLSAgMTYsMHgzNjVhLDAsezB4ZmUsMHgyNCwweDMwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZiwweGYwLDB4NzQsMHgzOCwweDJlLDB4ZjV9LAotICAxNiwweDM2NmEsMCx7MHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDQwLDB4ZTAsMHg3MCwweDA2LDB4OTAsMHg3Mn0sCi0gIDE2LDB4MzY3YSwwLHsweDM5LDB4NzQsMHgwYSwweGYwLDB4OTAsMHg3MiwweDM5LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhjMywweDk0LDB4MGEsMHg1MCwweDAyfSwKLSAgIDgsMHgzNjhhLDAsezB4YTEsMHgxMSwweGU0LDB4OTAsMHg3NiwweDQwLDB4ZjAsMHgyMn0sCi0gIDE2LDB4MzY5MiwwLHsweGJiLDB4MDEsMHgwNiwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZTAsMHgyMiwweDUwLDB4MDIsMHhlNywweDIyLDB4YmIsMHhmZSwweDAyfSwKLSAgIDksMHgzNmEyLDAsezB4ZTMsMHgyMiwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZTQsMHg5MywweDIyfSwKLSAgMTYsMHgzNmFiLDAsezB4YmIsMHgwMSwweDBjLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlMCwweDIyLDB4NTB9LAotICAxNiwweDM2YmIsMCx7MHgwNiwweGU5LDB4MjUsMHg4MiwweGY4LDB4ZTYsMHgyMiwweGJiLDB4ZmUsMHgwNiwweGU5LDB4MjUsMHg4MiwweGY4LDB4ZTIsMHgyMn0sCi0gIDEzLDB4MzZjYiwwLHsweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTQsMHg5MywweDIyfSwKLSAgMTYsMHgzNmQ4LDAsezB4YzIsMHhkNSwweGVjLDB4MzAsMHhlNywweDA5LDB4YjIsMHhkNSwweGU0LDB4YzMsMHg5ZCwweGZkLDB4ZTQsMHg5YywweGZjLDB4ZWV9LAotICAxNiwweDM2ZTgsMCx7MHgzMCwweGU3LDB4MTUsMHhiMiwweGQ1LDB4ZTQsMHhjMywweDlmLDB4ZmYsMHhlNCwweDllLDB4ZmUsMHgxMiwweDM4LDB4MWYsMHhjM30sCi0gIDE2LDB4MzZmOCwwLHsweGU0LDB4OWQsMHhmZCwweGU0LDB4OWMsMHhmYywweDgwLDB4MDMsMHgxMiwweDM4LDB4MWYsMHgzMCwweGQ1LDB4MDcsMHhjMywweGU0fSwKLSAgIDYsMHgzNzA4LDAsezB4OWYsMHhmZiwweGU0LDB4OWUsMHhmZSwweDIyfSwKLSAgMTYsMHgzNzBlLDAsezB4YmIsMHgwMSwweDEwLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlMCwweGY1LDB4ZjB9LAotICAxNiwweDM3MWUsMCx7MHhhMywweGUwLDB4MjIsMHg1MCwweDA5LDB4ZTksMHgyNSwweDgyLDB4ZjgsMHg4NiwweGYwLDB4MDgsMHhlNiwweDIyLDB4YmIsMHhmZX0sCi0gIDE2LDB4MzcyZSwwLHsweDBhLDB4ZTksMHgyNSwweDgyLDB4ZjgsMHhlMiwweGY1LDB4ZjAsMHgwOCwweGUyLDB4MjIsMHhlNSwweDgzLDB4MmEsMHhmNSwweDgzfSwKLSAgIDgsMHgzNzNlLDAsezB4ZTksMHg5MywweGY1LDB4ZjAsMHhhMywweGU5LDB4OTMsMHgyMn0sCi0gIDE2LDB4Mzc0NiwwLHsweGU4LDB4OGYsMHhmMCwweGE0LDB4Y2MsMHg4YiwweGYwLDB4YTQsMHgyYywweGZjLDB4ZTksMHg4ZSwweGYwLDB4YTQsMHgyYywweGZjfSwKLSAgMTYsMHgzNzU2LDAsezB4OGEsMHhmMCwweGVkLDB4YTQsMHgyYywweGZjLDB4ZWEsMHg4ZSwweGYwLDB4YTQsMHhjZCwweGE4LDB4ZjAsMHg4YiwweGYwLDB4YTR9LAotICAxNiwweDM3NjYsMCx7MHgyZCwweGNjLDB4MzgsMHgyNSwweGYwLDB4ZmQsMHhlOSwweDhmLDB4ZjAsMHhhNCwweDJjLDB4Y2QsMHgzNSwweGYwLDB4ZmMsMHhlYn0sCi0gIDE2LDB4Mzc3NiwwLHsweDhlLDB4ZjAsMHhhNCwweGZlLDB4YTksMHhmMCwweGViLDB4OGYsMHhmMCwweGE0LDB4Y2YsMHhjNSwweGYwLDB4MmUsMHhjZCwweDM5fSwKLSAgMTUsMHgzNzg2LDAsezB4ZmUsMHhlNCwweDNjLDB4ZmMsMHhlYSwweGE0LDB4MmQsMHhjZSwweDM1LDB4ZjAsMHhmZCwweGU0LDB4M2MsMHhmYywweDIyfSwKLSAgMTYsMHgzNzk1LDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZWMsMHg2NCwweDgwLDB4Yzh9LAotICAgNiwweDM3YTUsMCx7MHg2NCwweDgwLDB4OTgsMHg0NSwweGYwLDB4MjJ9LAotICAxNiwweDM3YWIsMCx7MHhlYiwweDlmLDB4ZjUsMHhmMCwweGVhLDB4OWUsMHg0MiwweGYwLDB4ZTksMHg5ZCwweDQyLDB4ZjAsMHhlOCwweDljLDB4NDUsMHhmMH0sCi0gICAxLDB4MzdiYiwwLHsweDIyfSwKLSAgMTIsMHgzN2JjLDAsezB4ZWMsMHhmMCwweGEzLDB4ZWQsMHhmMCwweGEzLDB4ZWUsMHhmMCwweGEzLDB4ZWYsMHhmMCwweDIyfSwKLSAgMTYsMHgzN2M4LDAsezB4YTgsMHg4MiwweDg1LDB4ODMsMHhmMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MTIsMHgzNywweGRmLDB4MTIsMHgzNywweGRmLDB4MTJ9LAotICAxNiwweDM3ZDgsMCx7MHgzNywweGRmLDB4MTIsMHgzNywweGRmLDB4ZTQsMHg3MywweGU0LDB4OTMsMHhhMywweGM1LDB4ODMsMHhjNSwweGYwLDB4YzUsMHg4M30sCi0gIDE2LDB4MzdlOCwwLHsweGM4LDB4YzUsMHg4MiwweGM4LDB4ZjAsMHhhMywweGM1LDB4ODMsMHhjNSwweGYwLDB4YzUsMHg4MywweGM4LDB4YzUsMHg4MiwweGM4fSwKLSAgIDEsMHgzN2Y4LDAsezB4MjJ9LAotICAxNiwweDM3ZjksMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGY4LDB4ZTQsMHg5MywweDcwLDB4MTIsMHg3NCwweDAxLDB4OTMsMHg3MCwweDBkLDB4YTMsMHhhM30sCi0gIDE2LDB4MzgwOSwwLHsweDkzLDB4ZjgsMHg3NCwweDAxLDB4OTMsMHhmNSwweDgyLDB4ODgsMHg4MywweGU0LDB4NzMsMHg3NCwweDAyLDB4OTMsMHg2OCwweDYwfSwKLSAgIDYsMHgzODE5LDAsezB4ZWYsMHhhMywweGEzLDB4YTMsMHg4MCwweGRmfSwKLSAgMTYsMHgzODFmLDAsezB4YmMsMHgwMCwweDBiLDB4YmUsMHgwMCwweDI5LDB4ZWYsMHg4ZCwweGYwLDB4ODQsMHhmZiwweGFkLDB4ZjAsMHgyMiwweGU0LDB4Y2N9LAotICAxNiwweDM4MmYsMCx7MHhmOCwweDc1LDB4ZjAsMHgwOCwweGVmLDB4MmYsMHhmZiwweGVlLDB4MzMsMHhmZSwweGVjLDB4MzMsMHhmYywweGVlLDB4OWQsMHhlY30sCi0gIDE2LDB4MzgzZiwwLHsweDk4LDB4NDAsMHgwNSwweGZjLDB4ZWUsMHg5ZCwweGZlLDB4MGYsMHhkNSwweGYwLDB4ZTksMHhlNCwweGNlLDB4ZmQsMHgyMiwweGVkfSwKLSAgMTYsMHgzODRmLDAsezB4ZjgsMHhmNSwweGYwLDB4ZWUsMHg4NCwweDIwLDB4ZDIsMHgxYywweGZlLDB4YWQsMHhmMCwweDc1LDB4ZjAsMHgwOCwweGVmLDB4MmZ9LAotICAxNiwweDM4NWYsMCx7MHhmZiwweGVkLDB4MzMsMHhmZCwweDQwLDB4MDcsMHg5OCwweDUwLDB4MDYsMHhkNSwweGYwLDB4ZjIsMHgyMiwweGMzLDB4OTgsMHhmZH0sCi0gICA1LDB4Mzg2ZiwwLHsweDBmLDB4ZDUsMHhmMCwweGVhLDB4MjJ9LAotICAxNiwweDM4NzQsMCx7MHhlNCwweDkwLDB4NzYsMHgyOSwweGYwLDB4OTAsMHg3NiwweDI5LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0Mn0sCi0gIDE2LDB4Mzg4NCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmQsMHhlZSwweDZkfSwKLSAgMTYsMHgzODk0LDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA2LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyOSwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9LAotICAxNiwweDM4YTQsMCx7MHhlZiwweGI0LDB4MDYsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwZn0sCi0gIDE2LDB4MzhiNCwwLHsweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDc2LDB4MmEsMHhmMCwweDI0fSwKLSAgMTYsMHgzOGM0LDAsezB4YmYsMHg3MCwweDAyLDB4NDEsMHg0MSwweDI0LDB4ZTAsMHg3MCwweDAyLDB4NDEsMHgxMiwweDI0LDB4MjEsMHg2MCwweDAyLDB4NDF9LAotICAxNiwweDM4ZDQsMCx7MHgzYSwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZSwweDYwLDB4N2QsMHgxNCwweDcwLDB4MDIsMHgyMSwweGIyLDB4MjQsMHgwMn0sCi0gIDE2LDB4MzhlNCwwLHsweDYwLDB4MDIsMHg0MSwweDBhLDB4MTIsMHgxNywweDUxLDB4OTAsMHg3NiwweDQyLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzfSwKLSAgMTYsMHgzOGY0LDAsezB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyOSwweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjV9LAotICAxNiwweDM5MDQsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YmMsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMX0sCi0gIDE2LDB4MzkxNCwwLHsweDEyLDB4OTAsMHg3NiwweDdjLDB4NzQsMHg2NywweGYwLDB4OTAsMHg3NiwweDdkLDB4NzQsMHgwNiwweGYwLDB4OTAsMHg3NiwweDdlfSwKLSAgMTYsMHgzOTI0LDAsezB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGYsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4OTAsMHg3NiwweDdkLDB4ZjB9LAotICAxNiwweDM5MzQsMCx7MHg5MCwweDc2LDB4N2UsMHg3NCwweDBjLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgwZiwweGU0LDB4OTAsMHg3NiwweDdjLDB4ZjAsMHg5MH0sCi0gIDE2LDB4Mzk0NCwwLHsweDc2LDB4N2QsMHhmMCwweDkwLDB4NzYsMHg3ZSwweDc0LDB4MTgsMHhmMCwweDkwLDB4NzYsMHgxYSwweDc0LDB4MDEsMHhmMCwweDEyfSwKLSAgMTYsMHgzOTU0LDAsezB4M2UsMHg5ZiwweDEyLDB4MTgsMHgwMCwweDIyLDB4OTAsMHg3ZSwweGMyLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweGZlLDB4ZmJ9LAotICAxNiwweDM5NjQsMCx7MHhmYSwweDc5LDB4MDEsMHhmOCwweDEyLDB4MzcsMHg0NiwweGM4LDB4ZWMsMHhjOCwweGM5LDB4ZWQsMHhjOSwweGNhLDB4ZWUsMHhjYX0sCi0gIDE2LDB4Mzk3NCwwLHsweGNiLDB4ZWYsMHhjYiwweDkwLDB4N2UsMHhjMSwweGUwLDB4ZmUsMHhlNCwweGZjLDB4ZmQsMHgyYiwweGZiLDB4ZWEsMHgzZSwweGZhfSwKLSAgMTYsMHgzOTg0LDAsezB4ZWQsMHgzOSwweGY5LDB4ZWMsMHgzOCwweGY4LDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZiwweGU0LDB4ZmUsMHhlYiwweDJmLDB4ZmZ9LAotICAxNiwweDM5OTQsMCx7MHhlZSwweDNhLDB4ZmUsMHhlZCwweDM5LDB4ZmQsMHhlYywweDM4LDB4ZmMsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjAsMHgwZn0sCi0gIDE2LDB4MzlhNCwwLHsweGE0LDB4MjQsMHg0NywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGJjLDB4MjIsMHg5MCwweDdlfSwKLSAgMTYsMHgzOWI0LDAsezB4YzIsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4ZmUsMHhmYiwweGZhLDB4NzksMHgwMSwweGY4LDB4MTIsMHgzNywweDQ2LDB4Yzh9LAotICAxNiwweDM5YzQsMCx7MHhlYywweGM4LDB4YzksMHhlZCwweGM5LDB4Y2EsMHhlZSwweGNhLDB4Y2IsMHhlZiwweGNiLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZX0sCi0gIDE2LDB4MzlkNCwwLHsweGU0LDB4ZmMsMHhmZCwweDJiLDB4ZmIsMHhlYSwweDNlLDB4ZmEsMHhlZCwweDM5LDB4ZjksMHhlYywweDM4LDB4ZjgsMHg5MCwweDdlfSwKLSAgMTYsMHgzOWU0LDAsezB4YzAsMHhlMCwweGZmLDB4ZTQsMHhmZSwweGViLDB4MmYsMHhmZiwweGVlLDB4M2EsMHhmZSwweGVkLDB4MzksMHhmZCwweGVjLDB4Mzh9LAotICAxNiwweDM5ZjQsMCx7MHhmYywweDkwLDB4NzYsMHgyOSwweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4M2EwNCwwLHsweGY1LDB4ODMsMHgxMiwweDM3LDB4YmMsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfSwKLSAgMTYsMHgzYTE0LDAsezB4ZTksMHhlMCwweDE0LDB4NzAsMHgxOSwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjB9LAotICAxNiwweDNhMjQsMCx7MHgwZiwweGE0LDB4MjQsMHg0ZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDIyLDB4OTAsMHg3Zn0sCi0gIDE0LDB4M2EzNCwwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjJ9LAotICAxNiwweDNhNDIsMCx7MHhlNCwweDkwLDB4NzYsMHgzNSwweGYwLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHhmZiwweGMzLDB4OTQsMHgwMywweDQwLDB4MDIsMHg0MX0sCi0gIDE2LDB4M2E1MiwwLHsweGZmLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmfSwKLSAgMTYsMHgzYTYyLDAsezB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTR9LAotICAxNiwweDNhNzIsMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH0sCi0gIDE2LDB4M2E4MiwwLHsweGYwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfSwKLSAgMTYsMHgzYTkyLDAsezB4NzQsMHhmZiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDNhYTIsMCx7MHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4M2FiMiwwLHsweDgzLDB4NzQsMHg4MCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgzYWMyLDAsezB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9LAotICAxNiwweDNhZDIsMCx7MHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4M2FlMiwwLHsweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgzYWYyLDAsezB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHgzNSwweGUwLDB4MDQsMHhmMCwweDQxLDB4NDcsMHg5MCwweDc2LDB4M2N9LAotICAxNiwweDNiMDIsMCx7MHg3NCwweDBhLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDc2LDB4MzUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4M2MsMHhlMH0sCi0gIDE2LDB4M2IxMiwwLHsweGZmLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyLDB4NjEsMHhkMiwweDkwLDB4NzYsMHgzZCwweGUwfSwKLSAgMTYsMHgzYjIyLDAsezB4ZmYsMHgwNCwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDNiMzIsMCx7MHg4MywweGVmLDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4M2I0MiwwLHsweDgzLDB4ZTQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fSwKLSAgMTYsMHgzYjUyLDAsezB4ODMsMHg3NCwweDVlLDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9LAotICAxNiwweDNiNjIsMCx7MHhmNSwweDgzLDB4NzQsMHhiYSwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWUsMHhmNSwweDgyLDB4ZTQsMHgzNH0sCi0gIDE2LDB4M2I3MiwwLHsweDc1LDB4ZjUsMHg4MywweDc0LDB4MDUsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFmLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgzYjgyLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMCwweGY1LDB4ODJ9LAotICAxNiwweDNiOTIsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIxLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4M2JhMiwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyfSwKLSAgMTYsMHgzYmIyLDAsezB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MTUsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjV9LAotICAxNiwweDNiYzIsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHgwNCwweGYwLDB4NjEsMHgwZX0sCi0gICAxLDB4M2JkMiwwLHsweDIyfSwKLSAgMTYsMHgzYmQzLDAsezB4ZTQsMHg5MCwweDc2LDB4MzYsMHhmMCwweGUwLDB4ZmIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDNiZTMsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDAsMHhmMCwweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4M2JmMywwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDBhLDB4ZjAsMHhlYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MywweGY1fSwKLSAgMTYsMHgzYzAzLDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGM4LDB4MDAsMHgwMCwweGFjLDB4NDQsMHhlYiwweDc1LDB4ZjB9LAotICAxNiwweDNjMTMsMCx7MHgwZiwweGE0LDB4MjQsMHg0NywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGM4LDB4MDAsMHgwMH0sCi0gIDE2LDB4M2MyMywwLHsweGFjLDB4NDQsMHhlYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfSwKLSAgMTYsMHgzYzMzLDAsezB4MTIsMHgzNywweGM4LDB4MDAsMHgwMSwweDc3LDB4MDAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZiLDB4NzV9LAotICAxNiwweDNjNDMsMCx7MHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDQwLDB4ZjAsMHhlYn0sCi0gIDE2LDB4M2M1MywwLHsweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4YywweGYwfSwKLSAgMTYsMHgzYzYzLDAsezB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4Mzd9LAotICAxNiwweDNjNzMsMCx7MHhjOCwweDAwLDB4MDAsMHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNH0sCi0gIDE2LDB4M2M4MywwLHsweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhjOCwweDAwLDB4MDAsMHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0fSwKLSAgMTYsMHgzYzkzLDAsezB4NGIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhjOCwweDAwLDB4MDEsMHg3NywweDAwLDB4OTB9LAotICAxNiwweDNjYTMsMCx7MHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4M2NiMywwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg0MCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyfSwKLSAgMTYsMHgzY2MzLDAsezB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4OGYsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmZ9LAotICAxNiwweDNjZDMsMCx7MHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDEsMHhmMH0sCi0gIDE2LDB4M2NlMywwLHsweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDg0fSwKLSAgMTYsMHgzY2YzLDAsezB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjV9LAotICAxNiwweDNkMDMsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDYxLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0Mn0sCi0gIDE2LDB4M2QxMywwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4MSwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwfSwKLSAgMTYsMHgzZDIzLDAsezB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzR9LAotICAxNiwweDNkMzMsMCx7MHg2MSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gICA0LDB4M2Q0MywwLHsweDc0LDB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHgzZDQ3LDAsezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwweGMwLDB4ZTB9LAotICAxNiwweDNkNTcsMCx7MHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLDB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLDB4ZTAsMHhlZn0sCi0gIDE2LDB4M2Q2NywwLHsweGMwLDB4ZTAsMHg5MCwweDdmLDB4YTIsMHhlMCwweDkwLDB4NzYsMHg3ZiwweGYwLDB4OTAsMHg3ZiwweDc0LDB4ZTAsMHg5MCwweDc2fSwKLSAgMTYsMHgzZDc3LDAsezB4ODcsMHhmMCwweDkwLDB4N2YsMHg3NSwweGUwLDB4OTAsMHg3NiwweDg4LDB4ZjAsMHg5MCwweDdmLDB4OTgsMHhlMCwweDQ0LDB4MDJ9LAotICAxNiwweDNkODcsMCx7MHhmMCwweDkwLDB4NzYsMHg5NiwweGUwLDB4ZmYsMHgyMCwweGUxLDB4MGMsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMH0sCi0gIDE2LDB4M2Q5NywwLHsweGQyLDB4MzIsMHgxMiwweDRiLDB4MjgsMHg5MCwweDc2LDB4N2YsMHhlMCwweDIwLDB4ZTIsMHg1MCwweDkwLDB4NzYsMHg4NywweGUwfSwKLSAgMTYsMHgzZGE3LDAsezB4ZmUsMHhhMywweGUwLDB4N2MsMHgwMCwweDI0LDB4MDAsMHhmNSwweDM0LDB4ZWMsMHgzZSwweGY1LDB4MzMsMHg5MCwweDc2LDB4OTh9LAotICAxNiwweDNkYjcsMCx7MHhlMCwweGZkLDB4YWUsMHgzMywweGFmLDB4MzQsMHgxMiwweDM2LDB4ZDgsMHg5MCwweDc2LDB4ODcsMHhlZiwweGYwLDB4ZDIsMHgyZn0sCi0gIDE2LDB4M2RjNywwLHsweDMwLDB4MzEsMHgyOSwweDIwLDB4M2YsMHgyNiwweGMyLDB4MzEsMHg5MCwweDdmLDB4OTQsMHhlMCwweDU0LDB4Y2YsMHhmMCwweDkwfSwKLSAgMTYsMHgzZGQ3LDAsezB4N2YsMHg5YSwweGUwLDB4MzAsMHhlNCwweDA0LDB4ZDIsMHgyZCwweGMyLDB4MmMsMHg5MCwweDdmLDB4OWEsMHhlMCwweDIwLDB4ZTV9LAotICAxNiwweDNkZTcsMCx7MHgwNCwweGMyLDB4MmQsMHhkMiwweDJjLDB4OTAsMHg3ZiwweDk0LDB4ZTAsMHg0NCwweDMwLDB4ZjAsMHgxMiwweDQ4LDB4YmQsMHgxMn0sCi0gIDE2LDB4M2RmNywwLHsweDFiLDB4MDQsMHgzMCwweDJmLDB4MTIsMHgxMiwweDQyLDB4MWYsMHhjMiwweDJmLDB4NzUsMHhlOCwweDAxLDB4MTIsMHgxNiwweDhhfSwKLSAgMTYsMHgzZTA3LDAsezB4NzUsMHhlOCwweDBkLDB4ZDIsMHgyYiwweDgwLDB4MDUsMHg3NSwweGU4LDB4MDEsMHhjMiwweDJiLDB4MjAsMHgyYiwweDM0LDB4OTB9LAotICAxNiwweDNlMTcsMCx7MHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgwZSwweDkwLDB4NzYsMHg3YywweDc0LDB4NjcsMHhmMCwweGEzLDB4NzQsMHgwNn0sCi0gIDE2LDB4M2UyNywwLHsweGYwLDB4YTMsMHg3NCwweDBiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgwYiwweDkwLDB4NzYsMHg3YywweGU0LDB4ZjAsMHhhMywweGYwfSwKLSAgMTYsMHgzZTM3LDAsezB4YTMsMHg3NCwweDBjLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgwYiwweDkwLDB4NzYsMHg3YywweGU0LDB4ZjAsMHhhMywweGYwLDB4YTN9LAotICAxNiwweDNlNDcsMCx7MHg3NCwweDE4LDB4ZjAsMHg3NSwweGNhLDB4ZDMsMHg3NSwweGNiLDB4ZmUsMHhkMiwweGNhLDB4MzAsMHgzNCwweDA0LDB4YzIsMHgzNH0sCi0gIDE2LDB4M2U1NywwLHsweDgwLDB4MDIsMHhkMiwweDM0LDB4MzAsMHgzNCwweDBkLDB4OTAsMHg3NiwweDg5LDB4ZTAsMHhjMywweDk0LDB4MDMsMHg0MCwweDA0fSwKLSAgMTYsMHgzZTY3LDAsezB4ZTAsMHgyNCwweGZkLDB4ZjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAyLDB4ZjAsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDNlNzcsMCx7MHg5OCwweGUwLDB4NTQsMHhmZCwweGYwLDB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMH0sCi0gIDE2LDB4M2U4NywwLHsweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDAsMHhlMCwweGZhLDB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhkMCwweGQwfSwKLSAgIDgsMHgzZTk3LDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4M2U5ZiwwLHsweDkwLDB4NzYsMHg5MiwweGUwLDB4MTQsMHg2MCwweDFkLDB4MTQsMHg3MCwweDAyLDB4ZTEsMHg1NCwweDI0LDB4MDIsMHg2MCwweDAyfSwKLSAgMTYsMHgzZWFmLDAsezB4ZTEsMHhlNCwweDkwLDB4NzYsMHg5NCwweDc0LDB4MDEsMHhmMCwweDkwLDB4ODAsMHgwMCwweGYwLDB4ZTQsMHg5MCwweDc2LDB4OGV9LAotICAxNiwweDNlYmYsMCx7MHhmMCwweGQyLDB4MzEsMHgyMiwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MWIsMHhlNCwweDkwLDB4N2YsMHhmMn0sCi0gIDE2LDB4M2VjZiwwLHsweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3fSwKLSAgMTYsMHgzZWRmLDAsezB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgxYiwweGU0LDB4OTAsMHg3ZiwweGYyLDB4ZjB9LAotICAxNiwweDNlZWYsMCx7MHg5MCwweDdmLDB4ZjMsMHg3NCwweDM0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMH0sCi0gIDE2LDB4M2VmZiwwLHsweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGVmLDB4YjQsMHgwMywweDE4LDB4ZTQsMHg5MCwweDdmLDB4ZjIsMHhmMCwweDkwfSwKLSAgMTYsMHgzZjBmLDAsezB4N2YsMHhmMywweDc0LDB4NjQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NDR9LAotICAxNiwweDNmMWYsMCx7MHgwNCwweGYwLDB4OTAsMHg3NiwweDk0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDgwLDB4MDAsMHhmMCwweDMwLDB4M2YsMHgwOX0sCi0gIDE2LDB4M2YyZiwwLHsweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMSwweGYwfSwKLSAgMTYsMHgzZjNmLDAsezB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDkwLDB4NzYsMHg5OCwweDc0LDB4MDQsMHhmMCwweDkwLDB4NzZ9LAotICAxNiwweDNmNGYsMCx7MHg4ZSwweDc0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgxYiwweGU0LDB4OTAsMHg3Zn0sCi0gIDE2LDB4M2Y1ZiwwLHsweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDQ0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2fSwKLSAgMTYsMHgzZjZmLDAsezB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGVmLDB4YjQsMHgwMiwweDFiLDB4ZTQsMHg5MCwweDdmLDB4ZjJ9LAotICAxNiwweDNmN2YsMCx7MHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4NGMsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5N30sCi0gIDE2LDB4M2Y4ZiwwLHsweGUwLDB4NDQsMHgwMiwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZWYsMHhiNCwweDAzLDB4MTgsMHhlNCwweDkwLDB4N2YsMHhmMiwweGYwfSwKLSAgMTYsMHgzZjlmLDAsezB4OTAsMHg3ZiwweGYzLDB4NzQsMHg5NCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTB9LAotICAxNiwweDNmYWYsMCx7MHg0NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4OTQsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDkwLDB4ODAsMHgwMCwweGYwLDB4MzAsMHgzZn0sCi0gIDE2LDB4M2ZiZiwwLHsweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxfSwKLSAgMTYsMHgzZmNmLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4OTAsMHg3NiwweDk4LDB4NzQsMHgwNiwweGYwLDB4OTB9LAotICAgNiwweDNmZGYsMCx7MHg3NiwweDhlLDB4NzQsMHgwMiwweGYwLDB4MjJ9LAotICAxNiwweDNmZTUsMCx7MHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg4MiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4OTEsMHhmMCwweDkwLDB4NzYsMHg5Mn0sCi0gIDExLDB4M2ZmNSwwLHsweGYwLDB4OTAsMHg3NiwweDkwLDB4ZjAsMHg5MCwweDc2LDB4OTMsMHhmMCwweGQzLDB4MjJ9LAotICAxNiwweDQwMDAsMCx7MHhlNSwweDExLDB4ZDMsMHg5NCwweDAwLDB4NTAsMHgwMiwweDIxLDB4MDYsMHg5MCwweDc2LDB4ODksMHhlMCwweGMzLDB4OTQsMHgwOH0sCi0gIDE2LDB4NDAxMCwwLHsweDQwLDB4MDIsMHgyMSwweDA2LDB4NzQsMHg0MCwweDI1LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwfSwKLSAgMTYsMHg0MDIwLDAsezB4ZjUsMHgxNywweGU1LDB4MGQsMHg2MCwweDBlLDB4OTAsMHg4MCwweDA1LDB4ZTUsMHgxNywweGYwLDB4OTAsMHg3NiwweDg5LDB4ZTB9LAotICAxNiwweDQwMzAsMCx7MHgwNCwweGYwLDB4MDEsMHhkYSwweGU1LDB4MTcsMHgxMiwweDM3LDB4ZjksMHg0MCwweGMxLDB4MDIsMHg0MCwweDY3LDB4MDUsMHg0MH0sCi0gIDE2LDB4NDA0MCwwLHsweDdhLDB4MDYsMHg0MCwweDk4LDB4MDcsMHg0MCwweGMxLDB4MGMsMHg0MCwweGMxLDB4MGQsMHg0MCwweGM3LDB4MGYsMHg0MCwweGNifSwKLSAgMTYsMHg0MDUwLDAsezB4ZjYsMHg0MCwweGNiLDB4ZjgsMHg0MCwweGNiLDB4ZmEsMHg0MCwweGNiLDB4ZmIsMHg0MCwweGNiLDB4ZmMsMHg0MCwweGNiLDB4ZmV9LAotICAxNiwweDQwNjAsMCx7MHg0MCwweGNiLDB4ZmYsMHgwMCwweDAwLDB4NDAsMHhkYSwweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MH0sCi0gIDE2LDB4NDA3MCwwLHsweDc2LDB4ODksMHhlMCwweDA0LDB4ZjAsMHg3NSwweDExLDB4MDEsMHg4MCwweDYwLDB4OTAsMHg3ZSwweDQxLDB4ZTAsMHg5MCwweDgwfSwKLSAgMTYsMHg0MDgwLDAsezB4MDUsMHhmMCwweDkwLDB4N2UsMHg0MiwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MCwweDc2LDB4ODksMHhlMCwweDA0LDB4ZjB9LAotICAxNiwweDQwOTAsMCx7MHhlMCwweDA0LDB4ZjAsMHg3NSwweDExLDB4MDEsMHg4MCwweDQyLDB4OTAsMHg3ZSwweDQxLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMH0sCi0gIDE2LDB4NDBhMCwwLHsweDkwLDB4N2UsMHg0MiwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MCwweDdlLDB4NDMsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwfSwKLSAgMTYsMHg0MGIwLDAsezB4OTAsMHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxLDB4ODB9LAotICAxNiwweDQwYzAsMCx7MHgxOSwweGQyLDB4M2IsMHhkMiwweDNjLDB4ODAsMHgxMywweGQyLDB4M2IsMHg4MCwweDBmLDB4OTAsMHg4MCwweDA1LDB4ZTUsMHgxN30sCi0gIDE2LDB4NDBkMCwwLHsweGYwLDB4OTAsMHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxLDB4MjAsMHgzYiwweDA0LDB4MDUsMHgwZCwweDgwfSwKLSAgMTYsMHg0MGUwLDAsezB4MWYsMHgzMCwweDNjLDB4MWMsMHg5MCwweDdlLDB4NDEsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTAsMHg3ZSwweDQyLDB4ZTB9LAotICAxNiwweDQwZjAsMCx7MHg5MCwweDgwLDB4MDUsMHhmMCwweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMX0sCi0gIDE2LDB4NDEwMCwwLHsweDA1LDB4MGYsMHgxNSwweDExLDB4MDEsMHgwMCwweGU1LDB4MTEsMHg3MCwweDEwLDB4YzIsMHgzMywweGY1LDB4MGQsMHhmNSwweDBmfSwKLSAgMTEsMHg0MTEwLDAsezB4OTAsMHg3ZiwweGM3LDB4NzQsMHgwNCwweGYwLDB4YzIsMHgzYiwweGMyLDB4M2MsMHgyMn0sCi0gIDE2LDB4NDExYiwwLHsweDkwLDB4NzYsMHg4ZCwweGUwLDB4NjQsMHgwMSwweDcwLDB4MjcsMHgzMCwweDI3LDB4MDgsMHhjMiwweDI3LDB4MTIsMHgwOCwweDAwfSwKLSAgMTYsMHg0MTJiLDAsezB4MTIsMHgxNywweDRhLDB4MzAsMHgyOCwweDA4LDB4YzIsMHgyOCwweDEyLDB4MzgsMHg3NCwweDEyLDB4MTcsMHg0YSwweDMwLDB4MmF9LAotICAxNiwweDQxM2IsMCx7MHgwZSwweGU0LDB4OTAsMHg3NiwweDhkLDB4ZjAsMHhjMiwweDJhLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg5MH0sCi0gIDE2LDB4NDE0YiwwLHsweDc2LDB4M2YsMHhlMCwweGI0LDB4MDEsMHgwNSwweGU0LDB4ZjAsMHgxMiwweDMyLDB4NmYsMHg5MCwweDc2LDB4NDEsMHhlMCwweGI0fSwKLSAgMTYsMHg0MTViLDAsezB4MDEsMHgwNSwweGU0LDB4ZjAsMHgxMiwweDM0LDB4OWEsMHg5MCwweDc2LDB4NDAsMHhlMCwweGI0LDB4MDEsMHgwMywweDEyLDB4MzR9LAotICAxNiwweDQxNmIsMCx7MHg5YSwweDEyLDB4MzAsMHgwMCwweDMwLDB4MzMsMHgwMywweDEyLDB4NDAsMHgwMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4MjAsMHhlNH0sCi0gIDE2LDB4NDE3YiwwLHsweDAyLDB4YzIsMHgzZiwweDkwLDB4N2YsMHg5YiwweGUwLDB4MzAsMHhlNCwweDAyLDB4ZDIsMHgzZiwweDkwLDB4N2YsMHg5YiwweGUwfSwKLSAgMTYsMHg0MThiLDAsezB4MjAsMHhlNSwweDAyLDB4YzIsMHgzZSwweDkwLDB4N2YsMHg5YiwweGUwLDB4MzAsMHhlNSwweDAyLDB4ZDIsMHgzZSwweGEyLDB4NDF9LAotICAxNiwweDQxOWIsMCx7MHgzMCwweDNmLDB4MDEsMHhiMywweDUwLDB4MWYsMHhhMiwweDNmLDB4OTIsMHg0MSwweDMwLDB4M2YsMHgwOSwweDkwLDB4NzYsMHg5N30sCi0gIDE2LDB4NDFhYiwwLHsweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDk3fSwKLSAgMTYsMHg0MWJiLDAsezB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDMwLDB4M2YsMHgzNCwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGV9LAotICAxNiwweDQxY2IsMCx7MHg5MCwweDc2LDB4N2MsMHg3NCwweDY3LDB4ZjAsMHhhMywweDc0LDB4MDYsMHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNH0sCi0gIDE2LDB4NDFkYiwwLHsweDAyLDB4MGIsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHhmMCwweGEzLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzfSwKLSAgMTYsMHg0MWViLDAsezB4MGIsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHhmMCwweGEzLDB4NzQsMHgxOCwweGYwLDB4YTIsMHg0MCwweDMwLDB4M2V9LAotICAxNiwweDQxZmIsMCx7MHgwMSwweGIzLDB4NTAsMHgxZiwweGEyLDB4M2UsMHg5MiwweDQwLDB4MzAsMHgzZSwweDA5LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg0NH0sCi0gIDE2LDB4NDIwYiwwLHsweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc2LDB4OTUsMHhlMCwweDkwfSwKLSAgIDQsMHg0MjFiLDAsezB4ODAsMHgwMSwweGYwLDB4MjJ9LAotICAxNiwweDQyMWYsMCx7MHg5MCwweDc2LDB4MTksMHhlMCwweDY0LDB4MDEsMHg3MCwweDM1LDB4OTAsMHg3NiwweDg3LDB4ZTAsMHhmZiwweGQzLDB4OTQsMHgyZH0sCi0gIDE2LDB4NDIyZiwwLHsweDQwLDB4MmIsMHg5MCwweDc2LDB4ODYsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4ODUsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGQzfSwKLSAgMTYsMHg0MjNmLDAsezB4OTQsMHgwZiwweDQwLDB4MTksMHhlNCwweGYwLDB4ZWYsMHhkMywweDk0LDB4MzEsMHg0MCwweDA4LDB4OTAsMHg3NiwweDE5LDB4NzR9LAotICAxNiwweDQyNGYsMCx7MHgwMywweGYwLDB4ODAsMHgwNiwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDIsMHhmMCwweDEyLDB4M2UsMHg5ZiwweDkwLDB4NzYsMHgxOX0sCi0gIDE2LDB4NDI1ZiwwLHsweGUwLDB4YjQsMHgwMiwweDJjLDB4OTAsMHg3NiwweDg3LDB4ZTAsMHhmZiwweGMzLDB4OTQsMHgyZiwweDUwLDB4MjIsMHhlZiwweGQzfSwKLSAgMTYsMHg0MjZmLDAsezB4OTQsMHgyYSwweDQwLDB4MWMsMHg5MCwweDc2LDB4ODYsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4ODUsMHhlMCwweDA0LDB4ZjB9LAotICAxNiwweDQyN2YsMCx7MHhlMCwweGQzLDB4OTQsMHgwZiwweDQwLDB4MGEsMHhlNCwweGYwLDB4OTAsMHg3NiwweDE5LDB4MDQsMHhmMCwweDEyLDB4M2UsMHg5Zn0sCi0gIDE2LDB4NDI4ZiwwLHsweDkwLDB4NzYsMHgxOSwweGUwLDB4YjQsMHgwMiwweDI2LDB4OTAsMHg3NiwweDg3LDB4ZTAsMHhkMywweDk0LDB4MzEsMHg0MCwweDFkfSwKLSAgMTYsMHg0MjlmLDAsezB4OTAsMHg3NiwweDg2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDg1LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkMywweDk0LDB4MGZ9LAotICAxNiwweDQyYWYsMCx7MHg0MCwweDBiLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDMsMHhmMCwweDEyLDB4M2UsMHg5ZiwweDkwLDB4NzYsMHgxOX0sCi0gIDE2LDB4NDJiZiwwLHsweGUwLDB4NjQsMHgwMywweDcwLDB4M2YsMHg5MCwweDc2LDB4ODcsMHhlMCwweGZmLDB4YzMsMHg5NCwweDVmLDB4NTAsMHgzNSwweDkwfSwKLSAgMTYsMHg0MmNmLDAsezB4NzYsMHg4NiwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg4NSwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDMsMHg5NCwweDBmLDB4NDB9LAotICAxNiwweDQyZGYsMCx7MHgyMywweGU0LDB4ZjAsMHhlZiwweGMzLDB4OTQsMHgyZiwweDUwLDB4MGMsMHhlZiwweGQzLDB4OTQsMHgyYSwweDQwLDB4MDYsMHg5MH0sCi0gIDE2LDB4NDJlZiwwLHsweDc2LDB4MTksMHg3NCwweDAxLDB4ZjAsMHhlZiwweGQzLDB4OTQsMHgyZiwweDQwLDB4MDYsMHg5MCwweDc2LDB4MTksMHg3NCwweDAyfSwKLSAgMTYsMHg0MmZmLDAsezB4ZjAsMHgxMiwweDNlLDB4OWYsMHg5MCwweDc2LDB4ODYsMHhlMCwweDcwLDB4MDUsMHg5MCwweDc2LDB4ODUsMHhmMCwweDIyLDB4ZTR9LAotICAgNSwweDQzMGYsMCx7MHg5MCwweDc2LDB4ODYsMHhmMCwweDIyfSwKLSAgMTYsMHg0MzE0LDAsezB4ZTQsMHg5MCwweDc2LDB4OTYsMHhmMCwweDkwLDB4ODAsMHgwMywweGYwLDB4OTAsMHg3ZiwweGUwLDB4NzQsMHg5MCwweGYwLDB4OTB9LAotICAxNiwweDQzMjQsMCx7MHg3ZiwweGUxLDB4NzQsMHgwNCwweGYwLDB4ZTQsMHg5MCwweDdmLDB4ZGQsMHhmMCwweDkwLDB4N2YsMHhhMSwweGYwLDB4NTMsMHg4ZX0sCi0gIDE2LDB4NDMzNCwwLHsweGY4LDB4NzUsMHg4OCwweDA1LDB4NzUsMHhiOCwweDIwLDB4NzUsMHhmOCwweDAxLDB4NDMsMHg4ZSwweDMwLDB4ZjUsMHhjOCwweDc1fSwKLSAgMTYsMHg0MzQ0LDAsezB4Y2EsMHg3ZiwweDc1LDB4Y2IsMHhmOCwweDQzLDB4YTgsMHgyMCwweDEyLDB4NDUsMHg2NSwweGMyLDB4MmMsMHhjMiwweDJkLDB4YzJ9LAotICAxNiwweDQzNTQsMCx7MHgyYiwweGMyLDB4MmYsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGRkLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZmLDB4ZjAsMHg5MH0sCi0gIDE2LDB4NDM2NCwwLHsweDdmLDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDEsMHhmMCwweGU0LDB4OTAsMHg3NiwweDg1fSwKLSAgMTYsMHg0Mzc0LDAsezB4ZjAsMHhhMywweGYwLDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweDEyLDB4NDksMHhhZSwweDEyLDB4MGZ9LAotICAxNiwweDQzODQsMCx7MHhjNiwweDEyLDB4NGEsMHhmMSwweDkwLDB4N2YsMHg5NywweGUwLDB4NDQsMHgwOCwweGYwLDB4ZTAsMHg1NCwweGI5LDB4ZjAsMHhkMn0sCi0gIDE2LDB4NDM5NCwwLHsweDMwLDB4MjAsMHgzMCwweDE4LDB4MTIsMHg0YSwweGE2LDB4MTIsMHgzMCwweDAwLDB4MTIsMHg0MCwweDAwLDB4MTIsMHg0MiwweDFmfSwKLSAgMTYsMHg0M2E0LDAsezB4MTIsMHg0OCwweGJkLDB4MTIsMHgxYiwweDA0LDB4MTIsMHgxNiwweDYxLDB4MTIsMHg0MiwweDFmLDB4MTIsMHg0YSwweGE2LDB4YzJ9LAotICAxNiwweDQzYjQsMCx7MHgyZiwweGMyLDB4MzEsMHhjMiwweDMyLDB4YzIsMHgzNCwweGMyLDB4MzMsMHhjMiwweDI5LDB4YzIsMHgyNywweGMyLDB4MjgsMHhlNH0sCi0gIDE2LDB4NDNjNCwwLHsweGY1LDB4MTEsMHg5MCwweDc2LDB4ODksMHhmMCwweDkwLDB4NzYsMHgzZiwweGYwLDB4OTAsMHg3NiwweDQxLDB4ZjAsMHg5MCwweDc2fSwKLSAgMTYsMHg0M2Q0LDAsezB4NDAsMHhmMCwweDkwLDB4NzYsMHg4YSwweGYwLDB4YTMsMHhmMCwweGEzLDB4MDQsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4NzZ9LAotICAgMywweDQzZTQsMCx7MHg5OSwweGYwLDB4MjJ9LAotICAxNiwweDQzZTcsMCx7MHgxMiwweDRlLDB4MTksMHg0MCwweDAyLDB4ODEsMHhhYywweDkwLDB4N2YsMHhlYiwweGUwLDB4MjQsMHhmZSwweDYwLDB4MWUsMHgxNH0sCi0gIDE2LDB4NDNmNywwLHsweDYwLDB4NDYsMHgxNCwweDYwLDB4NmUsMHgxNCwweDcwLDB4MDIsMHg4MSwweDlkLDB4MjQsMHgwNCwweDYwLDB4MDIsMHg4MSwweGE1fSwKLSAgMTYsMHg0NDA3LDAsezB4NzQsMHgwNSwweDkwLDB4N2YsMHhkNCwweGYwLDB4NzQsMHgwMCwweDkwLDB4N2YsMHhkNSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWF9LAotICAxNiwweDQ0MTcsMCx7MHhlMCwweGZmLDB4MTIsMHg0YSwweDU1LDB4OGIsMHgyMCwweDhhLDB4MjEsMHg4OSwweDIyLDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZX0sCi0gIDE2LDB4NDQyNywwLHsweGVhLDB4Y2UsMHhlZSwweDkwLDB4N2YsMHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyfSwKLSAgMTYsMHg0NDM3LDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmYsMHgxMiwweDQ3LDB4Yjd9LAotICAxNiwweDQ0NDcsMCx7MHg4YiwweDIwLDB4OGEsMHgyMSwweDg5LDB4MjIsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlLDB4ZWEsMHhjZSwweGVlLDB4OTAsMHg3Zn0sCi0gIDE2LDB4NDQ1NywwLHsweGQ0LDB4ZjAsMHhjZiwweGU5LDB4Y2YsMHhlZiwweDkwLDB4N2YsMHhkNSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fSwKLSAgMTYsMHg0NDY3LDAsezB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZiwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmJ9LAotICAxNiwweDQ0NzcsMCx7MHgxMiwweDE3LDB4OTQsMHg4YiwweDIwLDB4OGEsMHgyMSwweDg5LDB4MjIsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlLDB4ZWEsMHhjZX0sCi0gIDE2LDB4NDQ4NywwLHsweGVlLDB4OTAsMHg3ZiwweGQ0LDB4ZjAsMHhjZiwweGU5LDB4Y2YsMHhlZiwweDkwLDB4N2YsMHhkNSwweGYwLDB4MjIsMHg5MCwweDdmfSwKLSAgMTYsMHg0NDk3LDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2Z9LAotICAgNSwweDQ0YTcsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSwKLSAgIDEsMHg0NGFjLDAsezB4MjJ9LAotICAxNiwweDQ0YWQsMCx7MHhjMiwweGFmLDB4ZDIsMHgyNCwweDkwLDB4N2YsMHg5MywweDc0LDB4MzAsMHhmMCwweDkwLDB4N2YsMHg5YywweDc0LDB4YmIsMHhmMH0sCi0gIDE2LDB4NDRiZCwwLHsweDkwLDB4N2YsMHg5NiwweGUwLDB4NDQsMHgzMCwweGYwLDB4ZTAsMHg1NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4OTQsMHg3NCwweDMwfSwKLSAgMTYsMHg0NGNkLDAsezB4ZjAsMHg5MCwweDdmLDB4OWQsMHg3NCwweGNmLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHg3NCwweGEwLDB4ZjAsMHg5MCwweDdmLDB4OTV9LAotICAxNiwweDQ0ZGQsMCx7MHg3NCwweGMwLDB4ZjAsMHg5MCwweDdmLDB4OWUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDdmLDB4OTksMHhlMCwweDMwLDB4ZTIsMHgwOX0sCi0gIDE2LDB4NDRlZCwwLHsweDkwLDB4MDUsMHgxOSwweDc0LDB4YTAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGMyLDB4MjUsMHhjMiwweDIyLDB4YzIsMHgyMywweGMyfSwKLSAgMTYsMHg0NGZkLDAsezB4MjYsMHgxMiwweDRiLDB4MjgsMHgxMiwweDJkLDB4YTksMHgxMiwweDNiLDB4ZDMsMHgxMiwweDQ2LDB4MTksMHgxMiwweDNhLDB4NDJ9LAotICAxNiwweDQ1MGQsMCx7MHg5MCwweDc2LDB4NjgsMHg3NCwweDAxLDB4ZjAsMHg3MCwweDBmLDB4MTIsMHg0YywweDI5LDB4MTIsMHg0ZSwweDE1LDB4MTIsMHg0ZX0sCi0gIDE2LDB4NDUxZCwwLHsweDE3LDB4MTIsMHgxYiwweDQwLDB4MTIsMHgxNCwweDk2LDB4MTIsMHg0MywweDE0LDB4OTAsMHg3ZiwweGFmLDB4ZTAsMHg0NCwweDAxfSwKLSAgMTYsMHg0NTJkLDAsezB4ZjAsMHg5MCwweDdmLDB4YWUsMHhlMCwweDQ0LDB4MWYsMHhmMCwweDkwLDB4N2YsMHhhYywweDc0LDB4ZmYsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDQ1M2QsMCx7MHhhZCwweGYwLDB4OTAsMHg3ZiwweGRlLDB4ZjAsMHg5MCwweDdmLDB4ZGYsMHhmMCwweDkwLDB4N2YsMHhhYiwweGYwLDB4OTAsMHg3Zn0sCi0gIDE2LDB4NDU0ZCwwLHsweGE5LDB4ZjAsMHg5MCwweDdmLDB4YWEsMHhmMCwweDUzLDB4OTEsMHhlZiwweDQzLDB4ZDgsMHgyMCwweGQyLDB4ZTgsMHg0MywweGQ4fSwKLSAgIDgsMHg0NTVkLDAsezB4MjAsMHg1MywweGE4LDB4YTAsMHg0MywweGE4LDB4ODAsMHgyMn0sCi0gIDE2LDB4NDU2NSwwLHsweDkwLDB4NzYsMHg5YSwweDc0LDB4MDIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDkxLDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3NiwweDkwfSwKLSAgMTYsMHg0NTc1LDAsezB4ZjAsMHg5MCwweDc2LDB4OTMsMHhmMCwweDkwLDB4NzYsMHg5NiwweDc0LDB4MDMsMHhmMCwweDkwLDB4ODAsMHgwMywweGYwLDB4ZTR9LAotICAxNiwweDQ1ODUsMCx7MHg5MCwweDc2LDB4OTcsMHhmMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4OTAsMHg3NiwweDk0LDB4MDQsMHhmMCwweDkwLDB4ODAsMHgwMH0sCi0gIDE2LDB4NDU5NSwwLHsweGYwLDB4ZTQsMHg5MCwweDc2LDB4OGUsMHhmMCwweDkwLDB4NzYsMHgxYSwweGYwLDB4OTAsMHg3NiwweDk1LDB4MDQsMHhmMCwweGMyfSwKLSAgMTYsMHg0NWE1LDAsezB4MmUsMHg5MCwweDdmLDB4OWIsMHhlMCwweGZmLDB4NTQsMHgxMCwweGZmLDB4NzAsMHgwMiwweGMyLDB4M2YsMHg5MCwweDdmLDB4OWJ9LAotICAxNiwweDQ1YjUsMCx7MHhlMCwweGZmLDB4NTQsMHgxMCwweGZlLDB4ZmYsMHhiZSwweDEwLDB4MDIsMHhkMiwweDNmLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmZn0sCi0gIDE2LDB4NDVjNSwwLHsweDU0LDB4MjAsMHhmZiwweDcwLDB4MDIsMHhjMiwweDNlLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmZiwweDU0LDB4MjAsMHhmZSwweGZmfSwKLSAgMTYsMHg0NWQ1LDAsezB4YmUsMHgyMCwweDAyLDB4ZDIsMHgzZSwweDMwLDB4M2YsMHgwOSwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZSwweGYwLDB4ODB9LAotICAxNiwweDQ1ZTUsMCx7MHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMH0sCi0gIDE2LDB4NDVmNSwwLHsweDMwLDB4M2UsMHgwOSwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwfSwKLSAgMTYsMHg0NjA1LDAsezB4NTQsMHhmYiwweGYwLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweGEyLDB4M2UsMHg5MiwweDQwLDB4YTJ9LAotICAgMywweDQ2MTUsMCx7MHgzZiwweDkyLDB4NDF9LAotICAgMSwweDQ2MTgsMCx7MHgyMn0sCi0gIDE2LDB4NDYxOSwwLHsweGU0LDB4OTAsMHg3NiwweDM2LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHg0NjI5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzMsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDQ2MzksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NX0sCi0gIDE2LDB4NDY0OSwwLHsweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZiwweDc1fSwKLSAgMTYsMHg0NjU5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4OTB9LAotICAxNiwweDQ2NjksMCx7MHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4NDY3OSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDMzLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHg0Njg5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzV9LAotICAxNiwweDQ2OTksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NX0sCi0gIDE2LDB4NDZhOSwwLHsweGYwLDB4MDMsMHhhNCwweDI0LDB4MzMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDQsMHhmMCwweDIyfSwKLSAgMTIsMHg0NmI5LDAsezB4NzgsMHg3ZiwweGU0LDB4ZjYsMHhkOCwweGZkLDB4NzUsMHg4MSwweDM4LDB4MDIsMHg0NywweDAwfSwKLSAgMTYsMHg0NmM1LDAsezB4MDIsMHgwNywweGE2LDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHg0MCwweDAzLDB4ZjYsMHg4MCwweDAxLDB4ZjJ9LAotICAxNiwweDQ2ZDUsMCx7MHgwOCwweGRmLDB4ZjQsMHg4MCwweDI5LDB4ZTQsMHg5MywweGEzLDB4ZjgsMHg1NCwweDA3LDB4MjQsMHgwYywweGM4LDB4YzMsMHgzM30sCi0gIDE2LDB4NDZlNSwwLHsweGM0LDB4NTQsMHgwZiwweDQ0LDB4MjAsMHhjOCwweDgzLDB4NDAsMHgwNCwweGY0LDB4NTYsMHg4MCwweDAxLDB4NDYsMHhmNiwweGRmfSwKLSAgMTYsMHg0NmY1LDAsezB4ZTQsMHg4MCwweDBiLDB4MDEsMHgwMiwweDA0LDB4MDgsMHgxMCwweDIwLDB4NDAsMHg4MCwweDkwLDB4MGMsMHg4ZiwweGU0LDB4N2V9LAotICAxNiwweDQ3MDUsMCx7MHgwMSwweDkzLDB4NjAsMHhiYywweGEzLDB4ZmYsMHg1NCwweDNmLDB4MzAsMHhlNSwweDA5LDB4NTQsMHgxZiwweGZlLDB4ZTQsMHg5M30sCi0gIDE2LDB4NDcxNSwwLHsweGEzLDB4NjAsMHgwMSwweDBlLDB4Y2YsMHg1NCwweGMwLDB4MjUsMHhlMCwweDYwLDB4YTgsMHg0MCwweGI4LDB4ZTQsMHg5MywweGEzfSwKLSAgMTYsMHg0NzI1LDAsezB4ZmEsMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2F9LAotICAxNiwweDQ3MzUsMCx7MHhmMCwweGEzLDB4YzgsMHhjNSwweDgyLDB4YzgsMHhjYSwweGM1LDB4ODMsMHhjYSwweGRmLDB4ZTksMHhkZSwweGU3LDB4ODAsMHhiZX0sCi0gIDE2LDB4NDc0NSwwLHsweDkwLDB4N2YsMHhlYywweGUwLDB4OTAsMHg3NiwweDgzLDB4ZjAsMHhlMCwweDE0LDB4NjAsMHgxZCwweDE0LDB4NjAsMHgyYSwweDE0fSwKLSAgMTYsMHg0NzU1LDAsezB4NjAsMHgzNywweDE0LDB4NjAsMHg0NCwweDI0LDB4MDQsMHg3MCwweDUwLDB4OTAsMHg3NiwweDkxLDB4ZTAsMHg5MCwweDdmLDB4MDB9LAotICAxNiwweDQ3NjUsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4NDcsMHg5MCwweDc2LDB4OTIsMHhlMCwweDkwLDB4N2YsMHgwMH0sCi0gIDE2LDB4NDc3NSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgzNywweDkwLDB4NzYsMHg5MCwweGUwLDB4OTAsMHg3ZiwweDAwfSwKLSAgMTYsMHg0Nzg1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDI3LDB4OTAsMHg3NiwweDg0LDB4ZTAsMHg5MCwweDdmLDB4MDB9LAotICAxNiwweDQ3OTUsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MTcsMHg5MCwweDc2LDB4OTMsMHhlMCwweDkwLDB4N2YsMHgwMH0sCi0gIDE2LDB4NDdhNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSwKLSAgIDIsMHg0N2I1LDAsezB4ZDMsMHgyMn0sCi0gICAyLDB4NDdiNywwLHsweDhmLDB4MmV9LAotICAxNiwweDQ3YjksMCx7MHhlNCwweGY1LDB4MmYsMHg3NSwweDMwLDB4ZmYsMHg3NSwweDMxLDB4MDcsMHg3NSwweDMyLDB4MWEsMHhhYiwweDMwLDB4YWEsMHgzMX0sCi0gIDE2LDB4NDdjOSwwLHsweGE5LDB4MzIsMHg5MCwweDAwLDB4MDEsMHgxMiwweDM2LDB4YWIsMHhiNCwweDAzLDB4MWYsMHhhZiwweDJmLDB4MDUsMHgyZiwweGVmfSwKLSAgMTYsMHg0N2Q5LDAsezB4NjUsMHgyZSwweDcwLDB4MDEsMHgyMiwweDEyLDB4MzYsMHg5MiwweDdlLDB4MDAsMHgyOSwweGZmLDB4ZWUsMHgzYSwweGM5LDB4ZWZ9LAotICAxNiwweDQ3ZTksMCx7MHhjOSwweDc1LDB4MzAsMHhmZiwweGY1LDB4MzEsMHg4OSwweDMyLDB4ODAsMHhkMiwweDdiLDB4MDAsMHg3YSwweDAwLDB4NzksMHgwMH0sCi0gICAxLDB4NDdmOSwwLHsweDIyfSwKLSAgIDYsMHg0N2ZhLDAsezB4MTIsMHg0YiwweDI4LDB4YzIsMHgzMSwweDIyfSwKLSAgMTYsMHg0ODAwLDAsezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwweGMwLDB4ZTB9LAotICAxNiwweDQ4MTAsMCx7MHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLDB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLDB4ZTAsMHhlZn0sCi0gIDE2LDB4NDgyMCwwLHsweGMwLDB4ZTAsMHhjMiwweGNhLDB4YzIsMHhjZiwweDkwLDB4N2YsMHg5OCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MzAsMHgyZSwweDAzfSwKLSAgMTYsMHg0ODMwLDAsezB4MTIsMHgxNCwweGE2LDB4OTAsMHg3ZiwweDk4LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg1MywweGE4LDB4ZmEsMHgxMiwweDE2LDB4NjF9LAotICAxNiwweDQ4NDAsMCx7MHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmQsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmIsMHhkMH0sCi0gIDE2LDB4NDg1MCwwLHsweGUwLDB4ZmEsMHhkMCwweGUwLDB4ZjksMHhkMCwweGUwLDB4ZjgsMHhkMCwweGQwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGYwfSwKLSAgIDMsMHg0ODYwLDAsezB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0ODYzLDAsezB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg5MCwweDc2LDB4ODMsMHhmMCwweGUwLDB4MTQsMHg2MCwweDE3LDB4MTQsMHg2MCwweDIxLDB4MTR9LAotICAxNiwweDQ4NzMsMCx7MHg2MCwweDJiLDB4MTQsMHg2MCwweDMyLDB4MjQsMHgwNCwweDcwLDB4MzgsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MX0sCi0gIDE2LDB4NDg4MywwLHsweGYwLDB4ODAsMHgzNSwweDkwLDB4N2YsMHhlYSwweGUwLDB4OTAsMHg3NiwweDkyLDB4ZjAsMHgxMiwweDNlLDB4OWYsMHg4MCwweDI4fSwKLSAgMTYsMHg0ODkzLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4OTAsMHhmMCwweDEyLDB4MTgsMHgwMCwweDgwLDB4MWIsMHg5MCwweDdmLDB4ZWF9LAotICAxNiwweDQ4YTMsMCx7MHhlMCwweDkwLDB4NzYsMHg4NCwweGYwLDB4ODAsMHgxMSwweDkwLDB4N2YsMHhlYSwweGUwLDB4OTAsMHg3NiwweDkzLDB4ZjAsMHg4MH0sCi0gIDEwLDB4NDhiMywwLHsweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhkMywweDIyfSwKLSAgMTYsMHg0OGJkLDAsezB4MzAsMHgyZCwweDM5LDB4YzIsMHgyZCwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGQsMHhlNCwweDkwLDB4NzZ9LAotICAxNiwweDQ4Y2QsMCx7MHg3YywweGYwLDB4YTMsMHg3NCwweGY4LDB4ZjAsMHhhMywweDc0LDB4MGEsMHhmMCwweGVmLDB4YjQsMHgwMiwweDBkLDB4ZTQsMHg5MH0sCi0gIDE2LDB4NDhkZCwwLHsweDc2LDB4N2MsMHhmMCwweGEzLDB4NzQsMHhmMCwweGYwLDB4YTMsMHg3NCwweDBiLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgwZCwweGU0fSwKLSAgMTMsMHg0OGVkLDAsezB4OTAsMHg3NiwweDdjLDB4ZjAsMHhhMywweDc0LDB4ZjgsMHhmMCwweGEzLDB4NzQsMHgxNywweGYwLDB4MjJ9LAotICAgNiwweDQ4ZmEsMCx7MHg1MywweDkxLDB4YmYsMHhkMiwweDJkLDB4MzJ9LAotICAxNiwweDQ5MDAsMCx7MHgwMiwweDJmLDB4ZTcsMHgwMCwweDAyLDB4M2QsMHg0NywweDAwLDB4MDIsMHg0ZCwweGI0LDB4MDAsMHgwMiwweDRjLDB4NDMsMHgwMH0sCi0gIDE2LDB4NDkxMCwwLHsweDAyLDB4NGIsMHhlOSwweDAwLDB4MDIsMHgyZiwweGZmLDB4MDAsMHgwMiwweDRjLDB4NWIsMHgwMCwweDAyLDB4NGMsMHgwYSwweDAwfSwKLSAgMTYsMHg0OTIwLDAsezB4MDIsMHg0YywweDcyLDB4MDAsMHgwMiwweDRiLDB4NWEsMHgwMCwweDAyLDB4NGMsMHg4OSwweDAwLDB4MDIsMHg0YywweGEwLDB4MDB9LAotICAxNiwweDQ5MzAsMCx7MHgwMiwweDRjLDB4YjcsMHgwMCwweDAyLDB4NGMsMHhjZSwweDAwLDB4MDIsMHg0YywweGU1LDB4MDAsMHgwMiwweDRjLDB4ZmMsMHgwMH0sCi0gIDE2LDB4NDk0MCwwLHsweDAyLDB4NGQsMHgxMywweDAwLDB4MDIsMHg0ZCwweDJhLDB4MDAsMHgwMiwweDRkLDB4NDEsMHgwMCwweDAyLDB4NGQsMHg1OCwweDAwfSwKLSAgIDgsMHg0OTUwLDAsezB4MDIsMHg0ZCwweDZmLDB4MDAsMHgwMiwweDRkLDB4ODYsMHgwMH0sCi0gIDE2LDB4NDk1OCwwLHsweGU0LDB4OTAsMHg3NiwweDI2LDB4ZjAsMHg5MCwweDc2LDB4MjYsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDM0fSwKLSAgMTYsMHg0OTY4LDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmZCwweGVlLDB4NmR9LAotICAxNiwweDQ5NzgsMCx7MHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MDQsMHg1MCwweDA4LDB4OTAsMHg3NiwweDI2LDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkNX0sCi0gIDE2LDB4NDk4OCwwLHsweGVmLDB4YjQsMHgwNCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweGVmLDB4NzUsMHhmMCwweDAzfSwKLSAgMTYsMHg0OTk4LDAsezB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTB9LAotICAgNiwweDQ5YTgsMCx7MHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4MjJ9LAotICAxNiwweDQ5YWUsMCx7MHg5MCwweDc2LDB4NDYsMHg3NCwweDgwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhM30sCi0gIDE2LDB4NDliZSwwLHsweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHg3NCwweDgwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhMywweGYwfSwKLSAgMTYsMHg0OWNlLDAsezB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTN9LAotICAxNiwweDQ5ZGUsMCx7MHg3NCwweDQwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMH0sCi0gIDE2LDB4NDllZSwwLHsweGEzLDB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHg3NCwweDQwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhMywweGYwfSwKLSAgIDUsMHg0OWZlLDAsezB4YTMsMHhmMCwweGEzLDB4ZjAsMHgyMn0sCi0gIDE2LDB4NGEwMywwLHsweGU0LDB4OTAsMHg3NiwweDI1LDB4ZjAsMHg5MCwweDc2LDB4MjUsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDM0fSwKLSAgMTYsMHg0YTEzLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmZCwweGVlLDB4NmR9LAotICAxNiwweDRhMjMsMCx7MHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MDQsMHg1MCwweDA4LDB4OTAsMHg3NiwweDI1LDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkNX0sCi0gIDE2LDB4NGEzMywwLHsweGVmLDB4YjQsMHgwNCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2UsMHhjMCwweGUwfSwKLSAgMTYsMHg0YTQzLDAsezB4ZmUsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWV9LAotICAgMiwweDRhNTMsMCx7MHhmMCwweDIyfSwKLSAgMTYsMHg0YTU1LDAsezB4ZTQsMHhmZSwweDc1LDB4MWQsMHhmZiwweDc1LDB4MWUsMHgwNSwweDc1LDB4MWYsMHgxMiwweGFiLDB4MWQsMHhhYSwweDFlLDB4YTl9LAotICAxNiwweDRhNjUsMCx7MHgxZiwweDkwLDB4MDAsMHgwMSwweDEyLDB4MzYsMHhhYiwweDY0LDB4MDIsMHg3MCwweDJmLDB4Y2QsMHhlZSwweGNkLDB4MGUsMHhlZH0sCi0gIDE2LDB4NGE3NSwwLHsweDZmLDB4NzAsMHgwMSwweDIyLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgzNywweDBlLDB4ODUsMHhmMCwweDFiLDB4ZjUsMHgxYywweDYyfSwKLSAgMTYsMHg0YTg1LDAsezB4MWIsMHhlNSwweDFiLDB4NjIsMHgxYywweGU1LDB4MWMsMHg2MiwweDFiLDB4MjksMHhmZCwweGU1LDB4MWIsMHgzYSwweGM5LDB4ZWR9LAotICAxNiwweDRhOTUsMCx7MHhjOSwweDc1LDB4MWQsMHhmZiwweGY1LDB4MWUsMHg4OSwweDFmLDB4ODAsMHhjMSwweDdiLDB4MDAsMHg3YSwweDAwLDB4NzksMHgwMH0sCi0gICAxLDB4NGFhNSwwLHsweDIyfSwKLSAgMTYsMHg0YWE2LDAsezB4ZTQsMHg5MCwweDc2LDB4OWIsMHhmMCwweDkwLDB4NzYsMHg5YiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4ZWYsMHg2MCwweDA4LDB4ZTB9LAotICAxNiwweDRhYjYsMCx7MHgyNCwweDA4LDB4ZjgsMHhlNCwweGY2LDB4ODAsMHhlZSwweDkwLDB4NzYsMHg5NiwweGUwLDB4NDQsMHgwNCwweGYwLDB4NDQsMHgwOH0sCi0gIDE2LDB4NGFjNiwwLHsweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjAsMHhlNCwweGY1LDB4MTgsMHhkMiwweDM1LDB4ZjUsMHgwZSwweGY1LDB4MTAsMHhkMiwweDM2fSwKLSAgMTYsMHg0YWQ2LDAsezB4NzUsMHgxMiwweDExLDB4NzUsMHgxMywweDIyLDB4YzIsMHgzNywweGMyLDB4MzksMHhjMiwweDM4LDB4ZjUsMHgxNiwweGY1LDB4MTR9LAotICAxMSwweDRhZTYsMCx7MHhmNSwweDFhLDB4ZjUsMHgwZCwweGMyLDB4M2IsMHhjMiwweDNjLDB4YzIsMHgzZCwweDIyfSwKLSAgMTYsMHg0YWYxLDAsezB4ZTQsMHhmZiwweDc0LDB4NTYsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4Mjh9LAotICAxNiwweDRiMDEsMCx7MHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWUsMHhmMCwweDc0LDB4NWUsMHgyZiwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4NGIxMSwwLHsweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4MzgsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzfSwKLSAgIDYsMHg0YjIxLDAsezB4ZWUsMHhmMCwweDBmLDB4YmYsMHgwOCwweGNjfSwKLSAgIDEsMHg0YjI3LDAsezB4MjJ9LAotICAxNiwweDRiMjgsMCx7MHhlNCwweDkwLDB4NzIsMHgzNiwweGYwLDB4YTMsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwLDB4NTQsMHhmYiwweGYwLDB4ZTQsMHg5MH0sCi0gIDE2LDB4NGIzOCwwLHsweDcyLDB4MzMsMHhmMCwweDkwLDB4NzIsMHgzMiwweGYwLDB4OTAsMHg3MiwweDAxLDB4MDQsMHhmMCwweGU0LDB4OTAsMHg3MiwweDMzfSwKLSAgMTYsMHg0YjQ4LDAsezB4ZjAsMHg5MCwweDcyLDB4MzIsMHhmMCwweDkwLDB4NzIsMHgwMSwweDA0LDB4ZjAsMHg5MCwweDdmLDB4OTcsMHhlMCwweDQ0LDB4MDR9LAotICAgMiwweDRiNTgsMCx7MHhmMCwweDIyfSwKLSAgMTYsMHg0YjVhLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDAyLDB4ZjB9LAotICAxNiwweDRiNmEsMCx7MHg5MCwweDdmLDB4YzcsMHhlMCwweGY1LDB4MTEsMHg3NSwweDBmLDB4MDAsMHg3NSwweDBkLDB4MDAsMHhkMiwweDMzLDB4ZDAsMHg4Mn0sCi0gICA1LDB4NGI3YSwwLHsweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRiN2YsMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweDU0LDB4ZmIsMHhmMCwweGUwLDB4NDQsMHgwOCwweGYwLDB4MzAsMHg0MiwweDA0LDB4ZTAsMHg0NH0sCi0gIDE2LDB4NGI4ZiwwLHsweDAyLDB4ZjAsMHg3ZiwweGRjLDB4N2UsMHgwNSwweDEyLDB4NGQsMHg5ZCwweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmNywweGYwfSwKLSAgIDUsMHg0YjlmLDAsezB4ZTAsMHg0NCwweDA0LDB4ZjAsMHgyMn0sCi0gIDE2LDB4NGJhNCwwLHsweDkwLDB4N2YsMHhlYiwweGUwLDB4MTQsMHg3MCwweDE0LDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdmLDB4NzAsMHgwNCwweDEyfSwKLSAgMTYsMHg0YmI0LDAsezB4NDksMHg1OCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9LAotICAgMywweDRiYzQsMCx7MHgwMSwweGYwLDB4MjJ9LAotICAxNiwweDRiYzcsMCx7MHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NzAsMHgxMywweDkwLDB4N2YsMHhlOSwweGUwLDB4MTQsMHg3MCwweDA0LDB4MTIsMHg0YX0sCi0gIDE2LDB4NGJkNywwLHsweDAzLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfSwKLSAgIDIsMHg0YmU3LDAsezB4ZjAsMHgyMn0sCi0gIDE2LDB4NGJlOSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MTAsMHhmMCwweDkwfSwKLSAgMTYsMHg0YmY5LDAsezB4NzYsMHg5NiwweGUwLDB4NTQsMHhmZCwweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTB9LAotICAgMSwweDRjMDksMCx7MHgzMn0sCi0gIDE2LDB4NGMwYSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwMSwweGYwfSwKLSAgMTUsMHg0YzFhLDAsezB4YzIsMHgyOSwweDkwLDB4NzYsMHg4ZCwweDc0LDB4MDEsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0YzI5LDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHgzMCwweGU3LDB4MTIsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDdmLDB4MTQsMHg3ZSwweDAwLDB4MTJ9LAotICAxMCwweDRjMzksMCx7MHg0ZCwweDlkLDB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHgyMn0sCi0gIDE2LDB4NGM0MywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGQyLDB4MjUsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDA4fSwKLSAgIDgsMHg0YzUzLDAsezB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGM1YiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwMSwweGYwfSwKLSAgIDcsMHg0YzZiLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRjNzIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDIsMHhmMH0sCi0gICA3LDB4NGM4MiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0Yzg5LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDA0LDB4ZjB9LAotICAgNywweDRjOTksMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGNhMCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwNCwweGYwfSwKLSAgIDcsMHg0Y2IwLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRjYjcsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDgsMHhmMH0sCi0gICA3LDB4NGNjNywwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0Y2NlLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDA4LDB4ZjB9LAotICAgNywweDRjZGUsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGNlNSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgxMCwweGYwfSwKLSAgIDcsMHg0Y2Y1LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRjZmMsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MTAsMHhmMH0sCi0gICA3LDB4NGQwYywwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0ZDEzLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDIwLDB4ZjB9LAotICAgNywweDRkMjMsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGQyYSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgyMCwweGYwfSwKLSAgIDcsMHg0ZDNhLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRkNDEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4NDAsMHhmMH0sCi0gICA3LDB4NGQ1MSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0ZDU4LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDQwLDB4ZjB9LAotICAgNywweDRkNjgsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGQ2ZiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHg4MCwweGYwfSwKLSAgIDcsMHg0ZDdmLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRkODYsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4ODAsMHhmMH0sCi0gICA3LDB4NGQ5NiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0ZDlkLDAsezB4OGUsMHgzNSwweDhmLDB4MzYsMHhlNSwweDM2LDB4MTUsMHgzNiwweGFlLDB4MzUsMHg3MCwweDAyLDB4MTUsMHgzNSwweDRlLDB4NjB9LAotICAgNywweDRkYWQsMCx7MHgwNSwweDEyLDB4MTQsMHg4NSwweDgwLDB4ZWUsMHgyMn0sCi0gIDE2LDB4NGRiNCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDQsMHhmMCwweGQwfSwKLSAgIDYsMHg0ZGM0LDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0ZGNhLDAsezB4OTAsMHg3NiwweDgyLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweGQzLDB4MjJ9LAotICAxMiwweDRkZGEsMCx7MHhjMiwweDM3LDB4ZTQsMHhmNSwweDBlLDB4ZjUsMHgxMCwweGMyLDB4MzYsMHhmNSwweDE0LDB4MjJ9LAotICAgOSwweDRkZTYsMCx7MHhjMiwweDI1LDB4NTMsMHhkOCwweGVmLDB4NDMsMHhkOCwweDIwLDB4MzJ9LAotICAgNywweDRkZWYsMCx7MHg1MywweDk4LDB4ZmUsMHg1MywweDk4LDB4ZmQsMHgzMn0sCi0gICA3LDB4NGRmNiwwLHsweDUzLDB4YzAsMHhmZSwweDUzLDB4YzAsMHhmZCwweDMyfSwKLSAgIDYsMHg0ZGZkLDAsezB4NTMsMHg5MSwweDdmLDB4ZDIsMHgyYywweDMyfSwKLSAgIDQsMHg0ZTAzLDAsezB4NTMsMHg5MSwweGRmLDB4MzJ9LAotICAgNCwweDRlMDcsMCx7MHg1MywweGQ4LDB4ZjcsMHgzMn0sCi0gICA0LDB4NGUwYiwwLHsweDEyLDB4MTcsMHgzMCwweDIyfSwKLSAgIDMsMHg0ZTBmLDAsezB4YzIsMHg4ZCwweDMyfSwKLSAgIDMsMHg0ZTEyLDAsezB4YzIsMHg4ZiwweDMyfSwKLSAgIDIsMHg0ZTE1LDAsezB4ZDMsMHgyMn0sCi0gICAyLDB4NGUxNywwLHsweGQzLDB4MjJ9LAotICAgMiwweDRlMTksMCx7MHhkMywweDIyfSwKLSAgIDIsMHg0ZTFiLDAsezB4ZDMsMHgyMn0sCi0gICAyLDB4NGUxZCwwLHsweGQzLDB4MjJ9LAotICAgMiwweDRlMWYsMCx7MHhkMywweDIyfSwKLSAgIDIsMHg0ZTIxLDAsezB4YzMsMHgyMn0sCi0gICAwLDB4MDAwMCwxLHswfQotfTsKLS8qIFNvdXJjZTogRU1JNjJNRlcuSEVYIAotOjEwMEM4RjAwNDE3NjY4MDE0MTc2NkEwMjQxNzY2QjBBQzEyMEMxMjEyMwotOjEwNDRBRDAwQzJBRkQyMjQ5MDdGOTM3NDMwRjA5MDdGOUM3NEJCRjA5OAotOjEwNDRCRDAwOTA3Rjk2RTA0NDMwRjBFMDU0MzBGMDkwN0Y5NDc0MzA2QgotOjEwNDRDRDAwRjA5MDdGOUQ3NENGRjA5MDdGOTc3NEEwRjA5MDdGOTVDMgotOjEwNDRERDAwNzRDMEYwOTA3RjlFNzQwM0YwOTA3Rjk5RTAzMEUyMDlGNAotOjEwNDRFRDAwOTAwNTE5NzRBMEYwRTRBM0YwQzIyNUMyMjJDMjIzQzIyNAotOjEwNDRGRDAwMjYxMjRCMjgxMjJEQTkxMjNCRDMxMjQ2MTkxMjNBNDJGRAotOjEwNDUwRDAwOTA3NjY4NzQwMUYwNzAwRjEyNEMyOTEyNEUxNTEyNEVGMAotOjEwNDUxRDAwMTcxMjFCNDAxMjE0OTYxMjQzMTQ5MDdGQUZFMDQ0MDEwMgotOjEwNDUyRDAwRjA5MDdGQUVFMDQ0MUZGMDkwN0ZBQzc0RkZGMDkwN0Y3MQotOjEwNDUzRDAwQURGMDkwN0ZERUYwOTA3RkRGRjA5MDdGQUJGMDkwN0Y1RAotOjEwNDU0RDAwQTlGMDkwN0ZBQUYwNTM5MUVGNDNEODIwRDJFODQzRDgzOQotOjA4NDU1RDAwMjA1M0E4QTA0M0E4ODAyMjBFCi06MTAwN0E2MDBFNDkwNzY2NkYwMTI0NEFEMjAyNjEzOTA3NjY2RTBDMzk4Ci06MTAwN0I2MDA5NDAyNTAwQUUwMDRGMEQyNDIxMjRCN0Y4MEVBMzAyNkJGCi06MTAwN0M2MDAwNTEyMjgwMUMyMjYzMDI1MkI5MDc2OTZFMDU0RkNGMEJGCi06MTAwN0Q2MDA5MDgwMDNGMDEyMTQ5NjkwNzY5NkUwNDQwM0YwOTA4MDkxCi06MTAwN0U2MDAwM0YwRTQ5MDc2NjdGMDkwNzY2N0UwMDRGMEUwQjQ0QkFGCi06MEEwN0Y2MDBGNjEyNDdGQTEyNDExQjgwQzUyMkRCCi06MTAyODAxMDBDMjIwQzIyMUMyMkE5MDdGRThFMDEyMzdGOTI4MzAwMEE1Ci06MTAyODExMDAyODhDMDEyOEEyMDIyQTFGMjEyQTZBMjIyOTNEODAyOTA3Ci06MTAyODIxMDA3RDgxMjlEMTgyMkE4NEExMkFCQUEyMDAwMDJBQkY5MERGCi06MTAyODMxMDA3RkU5RTAxNDYwMTEyNEZFNjAyODI0RkU2MDNCMjRGQzQzCi06MTAyODQxMDA3MDQwMTIzRkU1NDFDQjEyNEUxRDQwMDI0MUNCOTA3RkJCCi06MTAyODUxMDBFQUUwQjQwMTA0QzIyMjQxQ0I5MDdGQjRFMDQ0MDFGMDJDCi06MTAyODYxMDA0MUNCMTI0RTFGOTA3RkVBRTBCNDAxMDREMjIyNDFDQjRBCi06MTAyODcxMDA5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDlCCi06MTAyODgxMDA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTAyNDVCCi06MTAyODkxMDBGNTcwMDUxMjQ4NjM0MUNCOTA3RkI0RTA0NDAxRjA0MUVCCi06MTAyOEExMDBDQjkwN0ZFOUUwMjRGRDYwNTQyNDAyNjAwMjIxMzQxMkMwCi06MTAyOEIxMDA0RTFENDAwMjQxQ0I5MDdGRUFFMDcwMzg5MDdGRUNFMDAyCi06MTAyOEMxMDBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEQzCi06MTAyOEQxMDBGNTgyRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRkVGCi06MTAyOEUxMDAxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NEQ4Ci06MTAyOEYxMDAyMEYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjEyNEUxRjU4Ci06MTAyOTAxMDA0MDAyNDFDQjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NEVDCi06MTAyOTExMDA4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MjUzCi06MTAyOTIxMDBFNDM0N0ZGNTgzNzQwMUYwNDFDQjkwN0ZCNEUwNDQwMTNFCi06MTAyOTMxMDBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGRTlFMERFCi06MTAyOTQxMDA2MDEyMjRGODYwMDkyNDAyNzAyOTEyNDNFNzQxQ0IxMjc2Ci06MTAyOTUxMDA0RENBNDFDQjEyNEUxQkEyMjJFNDMzRkYyNUUwRkZBMjU4Ci06MTAyOTYxMDAyM0U0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMjJECi06MTAyOTcxMDBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGRTlFMDlFCi06MTAyOTgxMDA2MDMzMjRGNjYwMkEyNDA0NzAzRDkwN0ZFQkUwMjRERTVFCi06MTAyOTkxMDA2MDBDMDQ3MDEyOTA3RkI0RTA0NDAxRjA0MUNCOTA3RjUxCi06MTAyOUExMDBCNEUwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjZECi06MTAyOUIxMDAxMjQ3NDU0MUNCMTI0RTFCRTQ5MDdGMDBGMEEzRjA5MEVCCi06MTAyOUMxMDA3RkI1NzQwMkYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjdDCi06MTAyOUQxMDA5MDdGRTlFMDI0RjQ2MDM0MjQwQzcwMzkxMjRFMUI5MDhFCi06MTAyOUUxMDA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNTFGCi06MTAyOUYxMDBFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMDU4Ci06MTAyQTAxMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDQxQ0I5MDdGQjRFMDg1Ci06MTAyQTExMDA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RjgxCi06MTAyQTIxMDBFOUUwMjRGNjYwMTIxNDYwMUEyNDAyNzAxREQyMjA5MDhECi06MTAyQTMxMDA3RkI0RTA0NDAxRjA4MDEyRDIyMDkwN0ZCNEUwNDQwMUUxCi06MTAyQTQxMDBGMDgwMDc5MDdGQjRFMDQ0MDFGMDIwMjAxODkwN0ZFRUUxCi06MTAyQTUxMDBFMDcwMDRBM0UwNjAwQkQyMjlEMjI3MTIxNzRBRDIyQUQwCi06MTAyQTYxMDA4MDAzMTIwODAwQzIyMDgwNjE5MDdGRUVFMDcwMDRBMzExCi06MTAyQTcxMDBFMDYwMEJEMjI5RDIyODEyMTc0QUQyMkE4MDRDMTIzODkwCi06MTAyQTgxMDA3NDgwNDc5MDdGRTlFMDI0RkU2MDEyMTQ2MDFBMjQwMkVBCi06MTAyQTkxMDA3MDFERDIyMTkwN0ZCNEUwNDQwMUYwODAxMkQyMjE5MEM4Ci06MTAyQUExMDA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjAyMDVFCi06MTAyQUIxMDAyMTAzMTIxMDAwQzIyMTgwMTExMjJBRDY4MDBDMTI0RTVECi06MTAyQUMxMDAyMTUwMDc5MDdGQjRFMDQ0MDFGMDIwMkEwNzkwN0ZCNEExCi06MDUyQUQxMDBFMDQ0MDJGMDIyQzgKLToxMDQzRTcwMDEyNEUxOTQwMDI4MUFDOTA3RkVCRTAyNEZFNjAxRTE0NTAKLToxMDQzRjcwMDYwNDYxNDYwNkUxNDcwMDI4MTlEMjQwNDYwMDI4MUE1REEKLToxMDQ0MDcwMDc0MDU5MDdGRDRGMDc0MDA5MDdGRDVGMDIyOTA3RkVBRjYKLToxMDQ0MTcwMEUwRkYxMjRBNTU4QjIwOEEyMTg5MjJFQTQ5NjAxMUNFOTIKLToxMDQ0MjcwMEVBQ0VFRTkwN0ZENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyQTAKLToxMDQ0MzcwMDkwN0ZCNEUwNDQwMUYwMjI5MDdGRUFFMEZGMTI0N0I3OTMKLToxMDQ0NDcwMDhCMjA4QTIxODkyMkVBNDk2MDExQ0VFQUNFRUU5MDdGM0QKLToxMDQ0NTcwMEQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5MDdGQjRFMDQ0M0UKLToxMDQ0NjcwMDAxRjAyMjkwN0ZFQUUwRkY5MDdFQzBFMEZEQTNFMEZCMzEKLToxMDQ0NzcwMDEyMTc5NDhCMjA4QTIxODkyMkVBNDk2MDExQ0VFQUNFNEQKLToxMDQ0ODcwMEVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5MDdGRTkKLToxMDQ0OTcwMEI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGMjEKLTowNTQ0QTcwMEI0RTA0NDAxRjA0NwotOjAxNDRBQzAwMjJFRAotOjAzMDAzMzAwMDI0REU2OTUKLTowOTRERTYwMEMyMjU1M0Q4RUY0M0Q4MjAzMjU2Ci06MDIwQzlGMDBDMTJGNjMKLTowNjQ3RkEwMDEyNEIyOEMyMzEyMjFGCi06MTA0MzE0MDBFNDkwNzY5NkYwOTA4MDAzRjA5MDdGRTA3NDkwRjA5MEIzCi06MTA0MzI0MDA3RkUxNzQwNEYwRTQ5MDdGRERGMDkwN0ZBMUYwNTM4RTgwCi06MTA0MzM0MDBGODc1ODgwNTc1QjgyMDc1RjgwMTQzOEUzMEY1Qzg3NTkxCi06MTA0MzQ0MDBDQTdGNzVDQkY4NDNBODIwMTI0NTY1QzIyQ0MyMkRDMjgyCi06MTA0MzU0MDAyQkMyMkY5MDdGRkM3NERERjA5MDdGRkY3NEZGRjA5MEYwCi06MTA0MzY0MDA3Rjk3RTA0NDAxRjA5MDc2MTk3NDAxRjBFNDkwNzY4NTJCCi06MTA0Mzc0MDBGMEEzRjA5MDc2ODFGMDkwNzY4MEYwMTI0OUFFMTIwRjlGCi06MTA0Mzg0MDBDNjEyNEFGMTkwN0Y5N0UwNDQwOEYwRTA1NEI5RjBEMkE1Ci06MTA0Mzk0MDAzMDIwMzAxODEyNEFBNjEyMzAwMDEyNDAwMDEyNDIxRjc4Ci06MTA0M0E0MDAxMjQ4QkQxMjFCMDQxMjE2NjExMjQyMUYxMjRBQTZDMjAxCi06MTA0M0I0MDAyRkMyMzFDMjMyQzIzNEMyMzNDMjI5QzIyN0MyMjhFNDU2Ci06MTA0M0M0MDBGNTExOTA3Njg5RjA5MDc2M0ZGMDkwNzY0MUYwOTA3NkYyCi06MTA0M0Q0MDA0MEYwOTA3NjhBRjBBM0YwQTMwNEYwRTRBM0YwOTA3NjgyCi06MDM0M0U0MDA5OUYwMjIyQgotOjEwNDhCRDAwMzAyRDM5QzIyRDkwNzYxOUUwRkZCNDAxMERFNDkwNzZCQwotOjEwNDhDRDAwN0NGMEEzNzRGOEYwQTM3NDBBRjBFRkI0MDIwREU0OTAzOQotOjEwNDhERDAwNzY3Q0YwQTM3NEYwRjBBMzc0MEJGMEVGQjQwMzBERTQ0OQotOjBENDhFRDAwOTA3NjdDRjBBMzc0RjhGMEEzNzQxN0YwMjIwRAotOjEwMUIwNDAwMzAyQzM4QzIyQzkwNzYxOUUwRkZCNDAxMEU5MDc2N0MwQwotOjEwMUIxNDAwNzRDMEYwQTM3NDE0RjBBMzc0MEJGMEVGQjQwMjBERTREQQotOjEwMUIyNDAwOTA3NjdDRjBBMzc0MTBGMEEzNzQwQ0YwRUZCNDAzMEI2NAotOjBDMUIzNDAwRTQ5MDc2N0NGMEEzNzQxOEYwQTNGMDIyN0IKLToxMDQxMUIwMDkwNzY4REUwNjQwMTcwMjczMDI3MDhDMjI3MTIwODAwQzMKLToxMDQxMkIwMDEyMTc0QTMwMjgwOEMyMjgxMjM4NzQxMjE3NEEzMDJBM0MKLToxMDQxM0IwMDBFRTQ5MDc2OERGMEMyMkE5MDdGQjRFMDQ0MDJGMDkwQUEKLToxMDQxNEIwMDc2M0ZFMEI0MDEwNUU0RjAxMjMyNkY5MDc2NDFFMEI0QjMKLToxMDQxNUIwMDAxMDVFNEYwMTIzNDlBOTA3NjQwRTBCNDAxMDMxMjM0NzYKLToxMDQxNkIwMDlBMTIzMDAwMzAzMzAzMTI0MDAwOTA3RjlCRTAyMEU0MjIKLToxMDQxN0IwMDAyQzIzRjkwN0Y5QkUwMzBFNDAyRDIzRjkwN0Y5QkUwRjYKLToxMDQxOEIwMDIwRTUwMkMyM0U5MDdGOUJFMDMwRTUwMkQyM0VBMjQxODkKLToxMDQxOUIwMDMwM0YwMUIzNTAxRkEyM0Y5MjQxMzAzRjA5OTA3Njk3QjkKLToxMDQxQUIwMEUwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3MEMKLToxMDQxQkIwMEUwOTA4MDAyRjAzMDNGMzQ5MDc2MTlFMEZGQjQwMTBFQUUKLToxMDQxQ0IwMDkwNzY3Qzc0NjdGMEEzNzQwNkYwQTM3NDBCRjBFRkI0RDUKLToxMDQxREIwMDAyMEJFNDkwNzY3Q0YwQTNGMEEzNzQwQ0YwRUZCNDAzMjUKLToxMDQxRUIwMDBCRTQ5MDc2N0NGMEEzRjBBMzc0MThGMEEyNDAzMDNFNjEKLToxMDQxRkIwMDAxQjM1MDFGQTIzRTkyNDAzMDNFMDk5MDc2OTVFMDQ0QTkKLToxMDQyMEIwMDA0RjA4MDA3OTA3Njk1RTA1NEZCRjA5MDc2OTVFMDkwNjMKLTowNDQyMUIwMDgwMDFGMDIyMEMKLTowMjRFMTUwMEQzMjJBNgotOjAyNEUxNzAwRDMyMkE0Ci06MDI0RTE5MDBEMzIyQTIKLToxMDNGRTUwMDkwN0ZFQUUwOTA3NjgyRjBFNDkwNzY5MUYwOTA3NjkyNzgKLTowQjNGRjUwMEYwOTA3NjkwRjA5MDc2OTNGMEQzMjJDRAotOjEwNERDQTAwOTA3NjgyRTA5MDdGMDBGMDkwN0ZCNTc0MDFGMEQzMjI1NAotOjEwNDg2MzAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDE3MTQ2MDIxMTRERAotOjEwNDg3MzAwNjAyQjE0NjAzMjI0MDQ3MDM4OTA3RkVBRTA5MDc2OTFDNAotOjEwNDg4MzAwRjA4MDM1OTA3RkVBRTA5MDc2OTJGMDEyM0U5RjgwMjg4OAotOjEwNDg5MzAwOTA3RkVBRTA5MDc2OTBGMDEyMTgwMDgwMUI5MDdGRUFGOAotOjEwNDhBMzAwRTA5MDc2ODRGMDgwMTE5MDdGRUFFMDkwNzY5M0YwODAzOAotOjBBNDhCMzAwMDc5MDdGQjRFMDQ0MDFGMEQzMjIyNwotOjEwNDc0NTAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDFEMTQ2MDJBMTRFRAotOjEwNDc1NTAwNjAzNzE0NjA0NDI0MDQ3MDUwOTA3NjkxRTA5MDdGMDA5NwotOjEwNDc2NTAwRjA5MDdGQjU3NDAxRjA4MDQ3OTA3NjkyRTA5MDdGMDBERAotOjEwNDc3NTAwRjA5MDdGQjU3NDAxRjA4MDM3OTA3NjkwRTA5MDdGMDBERgotOjEwNDc4NTAwRjA5MDdGQjU3NDAxRjA4MDI3OTA3Njg0RTA5MDdGMDBFQgotOjEwNDc5NTAwRjA5MDdGQjU3NDAxRjA4MDE3OTA3NjkzRTA5MDdGMDBEQwotOjEwNDdBNTAwRjA5MDdGQjU3NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA4QwotOjAyNDdCNTAwRDMyMjBECi06MDI0RTFCMDBEMzIyQTAKLTowMjRFMUQwMEQzMjI5RQotOjAyNEUxRjAwRDMyMjlDCi06MDI0RTIxMDBDMzIyQUEKLToxMDJGRTcwMEMwRTBDMDgzQzA4MkQyMjY1MzkxRUY5MDdGQUI3NDAxQkIKLTowODJGRjcwMEYwRDA4MkQwODNEMEUwMzI1QgotOjEwNERCNDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwNEYwRDAwNQotOjA2NERDNDAwODJEMDgzRDBFMDMyMzIKLToxMDNENDcwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwRjYKLToxMDNENTcwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGQjEKLToxMDNENjcwMEMwRTA5MDdGQTJFMDkwNzY3RkYwOTA3Rjc0RTA5MDc2M0QKLToxMDNENzcwMDg3RjA5MDdGNzVFMDkwNzY4OEYwOTA3Rjk4RTA0NDAyMTYKLToxMDNEODcwMEYwOTA3Njk2RTBGRjIwRTEwQzQ0MDJGMDkwODAwM0YwN0IKLToxMDNEOTcwMEQyMzIxMjRCMjg5MDc2N0ZFMDIwRTI1MDkwNzY4N0UwNkYKLToxMDNEQTcwMEZFQTNFMDdDMDAyNDAwRjUzNEVDM0VGNTMzOTA3Njk4RDIKLToxMDNEQjcwMEUwRkRBRTMzQUYzNDEyMzZEODkwNzY4N0VGRjBEMjJGQ0UKLToxMDNEQzcwMDMwMzEyOTIwM0YyNkMyMzE5MDdGOTRFMDU0Q0ZGMDkwQzQKLToxMDNERDcwMDdGOUFFMDMwRTQwNEQyMkRDMjJDOTA3RjlBRTAyMEU1NTAKLToxMDNERTcwMDA0QzIyREQyMkM5MDdGOTRFMDQ0MzBGMDEyNDhCRDEyQ0IKLToxMDNERjcwMDFCMDQzMDJGMTIxMjQyMUZDMjJGNzVFODAxMTIxNjhBQjgKLToxMDNFMDcwMDc1RTgwREQyMkI4MDA1NzVFODAxQzIyQjIwMkIzNDkwNjUKLToxMDNFMTcwMDc2MTlFMEZGQjQwMTBFOTA3NjdDNzQ2N0YwQTM3NDA2MDAKLToxMDNFMjcwMEYwQTM3NDBCRjBFRkI0MDIwQjkwNzY3Q0U0RjBBM0YwRjAKLToxMDNFMzcwMEEzNzQwQ0YwRUZCNDAzMEI5MDc2N0NFNEYwQTNGMEEzMkIKLToxMDNFNDcwMDc0MThGMDc1Q0FEMzc1Q0JGRUQyQ0EzMDM0MDRDMjM0QTUKLToxMDNFNTcwMDgwMDJEMjM0MzAzNDBEOTA3Njg5RTBDMzk0MDM0MDA0NTUKLToxMDNFNjcwMEUwMjRGREYwNTM5MUVGOTA3RkFCNzQwMkYwRjA5MDdGNjgKLToxMDNFNzcwMDk4RTA1NEZERjBEMEUwRkZEMEUwRkVEMEUwRkREMEUwQzgKLToxMDNFODcwMEZDRDBFMEZCRDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwMTkKLTowODNFOTcwMDgyRDA4M0QwRjBEMEUwMzJBQwotOjEwNEJFOTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwOTAwNgotOjEwNEJGOTAwNzY5NkUwNTRGREYwOTA4MDAzRjBEMDgyRDA4M0QwRTAyNwotOjAxNEMwOTAwMzI3OAotOjAxMkZGRjAwMzI5RgotOjEwNEM0MzAwQzBFMEMwODNDMDgyRDIyNTUzOTFFRjkwN0ZBQjc0MDgzQwotOjA4NEM1MzAwRjBEMDgyRDA4M0QwRTAzMkUyCi06MTA0QzVCMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDFGMDg0Ci06MDc0QzZCMDBEMDgyRDA4M0QwRTAzMkJCCi06MTA0QzBBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDFGMEQ0Ci06MEY0QzFBMDBDMjI5OTA3NjhENzQwMUYwRDA4MkQwODNEMEUwMzIyMQotOjEwNEM3MjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAyRjA2QwotOjA3NEM4MjAwRDA4MkQwODNEMEUwMzJBNAotOjEwNEI1QTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAyRjA4NAotOjEwNEI2QTAwOTA3RkM3RTBGNTExNzUwRjAwNzUwRDAwRDIzM0QwODIyMgotOjA1NEI3QTAwRDA4M0QwRTAzMjAxCi06MTA0Qzg5MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDRGMDUzCi06MDc0Qzk5MDBEMDgyRDA4M0QwRTAzMjhECi06MTA0Q0EwMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDRGMDNCCi06MDc0Q0IwMDBEMDgyRDA4M0QwRTAzMjc2Ci06MTA0Q0I3MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDhGMDIxCi06MDc0Q0M3MDBEMDgyRDA4M0QwRTAzMjVGCi06MTA0Q0NFMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDhGMDA5Ci06MDc0Q0RFMDBEMDgyRDA4M0QwRTAzMjQ4Ci06MTA0Q0U1MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MTBGMEVCCi06MDc0Q0Y1MDBEMDgyRDA4M0QwRTAzMjMxCi06MTA0Q0ZDMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MTBGMEQzCi06MDc0RDBDMDBEMDgyRDA4M0QwRTAzMjE5Ci06MTA0RDEzMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MjBGMEFDCi06MDc0RDIzMDBEMDgyRDA4M0QwRTAzMjAyCi06MTA0RDJBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MjBGMDk0Ci06MDc0RDNBMDBEMDgyRDA4M0QwRTAzMkVCCi06MTA0RDQxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0NDBGMDVFCi06MDc0RDUxMDBEMDgyRDA4M0QwRTAzMkQ0Ci06MTA0RDU4MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0NDBGMDQ2Ci06MDc0RDY4MDBEMDgyRDA4M0QwRTAzMkJECi06MTA0RDZGMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0ODBGMEYwCi06MDc0RDdGMDBEMDgyRDA4M0QwRTAzMkE2Ci06MTA0RDg2MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0ODBGMEQ4Ci06MDc0RDk2MDBEMDgyRDA4M0QwRTAzMjhGCi06MTA0MjFGMDA5MDc2MTlFMDY0MDE3MDM1OTA3Njg3RTBGRkQzOTQyRDg2Ci06MTA0MjJGMDA0MDJCOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzExCi06MTA0MjNGMDA5NDBGNDAxOUU0RjBFRkQzOTQzMTQwMDg5MDc2MTk3NDNECi06MTA0MjRGMDAwM0YwODAwNjkwNzYxOTc0MDJGMDEyM0U5RjkwNzYxOTUzCi06MTA0MjVGMDBFMEI0MDIyQzkwNzY4N0UwRkZDMzk0MkY1MDIyRUZEMzY3Ci06MTA0MjZGMDA5NDJBNDAxQzkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEQ1Ci06MTA0MjdGMDBFMEQzOTQwRjQwMEFFNEYwOTA3NjE5MDRGMDEyM0U5RkI5Ci06MTA0MjhGMDA5MDc2MTlFMEI0MDIyNjkwNzY4N0UwRDM5NDMxNDAxREUyCi06MTA0MjlGMDA5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzOTQwRjY5Ci06MTA0MkFGMDA0MDBCRTRGMDkwNzYxOTc0MDNGMDEyM0U5RjkwNzYxOTRDCi06MTA0MkJGMDBFMDY0MDM3MDNGOTA3Njg3RTBGRkMzOTQ1RjUwMzU5MEMyCi06MTA0MkNGMDA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzk0MEY0MDg5Ci06MTA0MkRGMDAyM0U0RjBFRkMzOTQyRjUwMENFRkQzOTQyQTQwMDY5MEIxCi06MTA0MkVGMDA3NjE5NzQwMUYwRUZEMzk0MkY0MDA2OTA3NjE5NzQwMjZCCi06MTA0MkZGMDBGMDEyM0U5RjkwNzY4NkUwNzAwNTkwNzY4NUYwMjJFNDZFCi06MDU0MzBGMDA5MDc2ODZGMDIyMEIKLToxMDQ1NjUwMDkwNzY5QTc0MDJGMEU0OTA3NjkxRjBBM0YwOTA3NjkwQUMKLToxMDQ1NzUwMEYwOTA3NjkzRjA5MDc2OTY3NDAzRjA5MDgwMDNGMEU0RDMKLToxMDQ1ODUwMDkwNzY5N0YwOTA4MDAyRjA5MDc2OTQwNEYwOTA4MDAwRjkKLToxMDQ1OTUwMEYwRTQ5MDc2OEVGMDkwNzYxQUYwOTA3Njk1MDRGMEMyNUQKLToxMDQ1QTUwMDJFOTA3RjlCRTBGRjU0MTBGRjcwMDJDMjNGOTA3RjlCQ0YKLToxMDQ1QjUwMEUwRkY1NDEwRkVGRkJFMTAwMkQyM0Y5MDdGOUJFMEZGNEMKLToxMDQ1QzUwMDU0MjBGRjcwMDJDMjNFOTA3RjlCRTBGRjU0MjBGRUZGMDcKLToxMDQ1RDUwMEJFMjAwMkQyM0UzMDNGMDk5MDc2OTdFMDU0RkVGMDgwMkYKLToxMDQ1RTUwMDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDkwODAwMkYwOEUKLToxMDQ1RjUwMDMwM0UwOTkwNzY5NUUwNDQwNEYwODAwNzkwNzY5NUUwOEEKLToxMDQ2MDUwMDU0RkJGMDkwNzY5NUUwOTA4MDAxRjBBMjNFOTI0MEEyOTYKLTowMzQ2MTUwMDNGOTI0MTkwCi06MDE0NjE4MDAyMjdGCi06MTAzRTlGMDA5MDc2OTJFMDE0NjAxRDE0NzAwMkUxNTQyNDAyNjAwMkM3Ci06MTAzRUFGMDBFMUU0OTA3Njk0NzQwMUYwOTA4MDAwRjBFNDkwNzY4RUM3Ci06MTAzRUJGMDBGMEQyMzEyMjkwNzYxOUUwRkZCNDAxMUJFNDkwN0ZGMjJCCi06MTAzRUNGMDBGMDkwN0ZGMzc0MzBGMDkwN0ZGRjc0RkNGMDkwNzY5NzUyCi06MTAzRURGMDBFMDU0RkRGMDU0RkJGMEVGQjQwMjFCRTQ5MDdGRjJGMERFCi06MTAzRUVGMDA5MDdGRjM3NDM0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDNFCi06MTAzRUZGMDA0NDAyRjA1NEZCRjBFRkI0MDMxOEU0OTA3RkYyRjA5MDFCCi06MTAzRjBGMDA3RkYzNzQ2NEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTA0NDM5Ci06MTAzRjFGMDAwNEYwOTA3Njk0RTA0NDAxRjA5MDgwMDBGMDMwM0YwOTc3Ci06MTAzRjJGMDA5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMDhBCi06MTAzRjNGMDA5MDc2OTdFMDkwODAwMkYwOTA3Njk4NzQwNEYwOTA3NkU3Ci06MTAzRjRGMDA4RTc0MDFGMDIyOTA3NjE5RTBGRkI0MDExQkU0OTA3RjhDCi06MTAzRjVGMDBGMkYwOTA3RkYzNzQ0NEYwOTA3RkZGNzRGQ0YwOTA3NjUyCi06MTAzRjZGMDA5N0UwNTRGREYwNTRGQkYwRUZCNDAyMUJFNDkwN0ZGMkE2Ci06MTAzRjdGMDBGMDkwN0ZGMzc0NENGMDkwN0ZGRjc0RkNGMDkwNzY5Nzg1Ci06MTAzRjhGMDBFMDQ0MDJGMDU0RkJGMEVGQjQwMzE4RTQ5MDdGRjJGMDNBCi06MTAzRjlGMDA5MDdGRjM3NDk0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDJECi06MTAzRkFGMDA0NDA0RjA5MDc2OTRFMDU0RkVGMDkwODAwMEYwMzAzRjlGCi06MTAzRkJGMDAwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUUxCi06MTAzRkNGMDBGMDkwNzY5N0UwOTA4MDAyRjA5MDc2OTg3NDA2RjA5MERCCi06MDYzRkRGMDA3NjhFNzQwMkYwMjI1MAotOjEwMTgwMDAwOTA3NjkwRTAxNDYwMzcxNDcwMDIwMUQ4MTQ3MDAyMjFCMQotOjEwMTgxMDAwNzIxNDcwMDI0MTNCMjQwNDYwMDI2MTAzOTA3RkZDNzRFNwotOjEwMTgyMDAwQ0NGMDkwN0ZGRjc0RkNGMDkwNzY5NUUwNDQwMUYwNTQ4QQotOjEwMTgzMDAwMDVGMDkwODAwMUYwRTQ5MDc2MUFGMEMyMkUyMjkwNzZBNgotOjEwMTg0MDAwOTVFMDQ0MDFGMDQ0MDJGMDMwM0UwNkUwNDQwNEYwODBBQwotOjEwMTg1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3QQotOjEwMTg2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTIyOTAyNwotOjEwMTg3MDAwN0ZGQzc0NzRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkI3MwotOjEwMTg4MDAwRjA5MDc2OTdFMDU0RkRGMEU0OTA3NjgxRjA5MDc2ODBDOQotOjEwMTg5MDAwRjBFRkI0MDIyMjkwN0ZGQzc0NjhGMDkwN0ZGRjc0RkMzQwotOjEwMThBMDAwRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJGMEU0OTBGOQotOjEwMThCMDAwNzY4MUYwOTA3NjgwRjAzMDNGMDk5MDc2OTdFMDU0RkU4NAotOjEwMThDMDAwRjA4MDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDU0RkIyMwotOjEwMThEMDAwRjA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTRGRUYwNDRGMwotOjEwMThFMDAwMDJGMDMwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTQyNAotOjEwMThGMDAwRkJGMDkwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFCNAotOjEwMTkwMDAwRjA5MDc2MTlFMEZGQjQwMTIyOTA3RkZDNzQzMEYwOTBFMwotOjEwMTkxMDAwN0ZGRjc0RkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGNAotOjEwMTkyMDAwRkRGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjIyOTBBMgotOjEwMTkzMDAwN0ZGQzc0MUNGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkYwNgotOjEwMTk0MDAwRjA5MDc2OTdFMDQ0MDJGMEU0OTA3NjgxRjA5MDc2ODAxMwotOjEwMTk1MDAwRjAzMDNGMDk5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTczQwotOjEwMTk2MDAwRTA0NDAxRjA5MDc2OTdFMDU0RkJGMDkwODAwMkYwRDJEMgotOjEwMTk3MDAwMkUyMjkwNzY5NUUwNDQwMUYwNDQwMkYwNDQwOEYwMzBDNQotOjEwMTk4MDAwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTRGQkYwOTAyQQotOjEwMTk5MDAwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFGMDkwNzY5OAotOjEwMTlBMDAwMTlFMEZGQjQwMTI1OTA3RkZDNzRDQ0YwOTA3RkZGNzRBOAotOjEwMTlCMDAwRkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGREYwNTQwNQotOjEwMTlDMDAwRkJGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjI1OTAwMQotOjEwMTlEMDAwN0ZGQzc0QzhGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkZCQQotOjEwMTlFMDAwRjA5MDc2OTdFMDQ0MDJGMDU0RkJGMEU0OTA3NjgxRjBCQQotOjEwMTlGMDAwOTA3NjgwRjBFRkI0MDMyNTkwN0ZGQzc0OThGMDkwN0Y5MAotOjEwMUEwMDAwRkY3NEZDRjA5MDc2OEY3NDVGRjA5MDc2OTdFMDU0RkQ1MQotOjEwMUExMDAwRjA0NDA0RjBFNDkwNzY4MUYwOTA3NjgwRjAzMDNGMDk1NQotOjEwMUEyMDAwOTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjBCRQotOjEwMUEzMDAwOTA3Njk3RTA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTQzNgotOjEwMUE0MDAwRkVGMDQ0MDJGMDQ0MDhGMDMwM0UwNkUwNDQwNEYwODAyQQotOjEwMUE1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3OAotOjEwMUE2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTI1OTAyMgotOjEwMUE3MDAwN0ZGQzc0QjRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkIzMQotOjEwMUE4MDAwRjA5MDc2OTdFMDU0RkRGMDU0RkJGMEU0OTA3NjgxRjAwRQotOjEwMUE5MDAwOTA3NjgwRjBFRkI0MDIyNTkwN0ZGQzc0QjBGMDkwN0ZEOAotOjEwMUFBMDAwRkY3NEZDRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJFQwotOjEwMUFCMDAwRjA1NEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDM4MAotOjEwMUFDMDAwMjU5MDdGRkM3NDY4RjA5MDdGRkY3NEZDRjA5MDc2OEYxNwotOjEwMUFEMDAwNzQ1RkYwOTA3Njk3RTA1NEZERjA0NDA0RjBFNDkwNzY2MwotOjEwMUFFMDAwODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFRjBEOAotOjEwMUFGMDAwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDIxRQotOjA0MUIwMDAwRjBEMjJFMjJDRgotOjA0MENBMTAwNDE3NjIzMDA3NQotOjEwMkRBOTAwRTQ5MDc2MzZGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MgotOjEwMkRCOTAwMzQ3NUY1ODM3NDAxRjBFRjc1RjAwM0E0MjQwRkY1ODJERgotOjEwMkRDOTAwRTQzNDc1RjU4Mzc0MDFGMEVGNzVGMDAzQTQyNDEwRjU2QwotOjEwMkREOTAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkZBMAotOjEwMkRFOTAwNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDEwRjBBQwotOjEwMkRGOTAwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDVBNwotOjEwMkUwOTAwRjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzRTQzQQotOjEwMkUxOTAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU5NwotOjEwMkUyOTAwODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0MEY3RQotOjEwMkUzOTAwRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQ4OAotOjEwMkU0OTAwMTBGNTgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMDA0RjAwOQotOjEwMkU1OTAwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQ1QwotOjEwMkU2OTAwMDFGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODNCRQotOjEwMkU3OTAwNzQwM0YwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjVCQQotOjEwMkU4OTAwODNFNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjRDMwotOjEwMkU5OTAwMEVGNTgyRTQzNDc1RjU4Mzc0MTBGMEVGNzVGMDAzQTQzMAotOjEwMkVBOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwNkYwRUY3NUYwMDNBOQotOjEwMkVCOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTBDNQotOjEwMkVDOTAwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjVFRgotOjEwMkVEOTAwODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVDRQotOjEwMkVFOTAwRjU4Mzc0MDRGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQzQgotOjEwMkVGOTAwNzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNCMQotOjEwMkYwOTAwQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjBBQwotOjEwMkYxOTAwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDhGMEVGNzU4MgotOjEwMkYyOTAwRjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzNzQwNEYwOTA1OQotOjEwMkYzOTAwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MAotOjEwMkY0OTAwMzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODI0QwotOjEwMkY1OTAwRTQzNDc1RjU4Mzc0MEFGMEVGNzVGMDAzQTQyNDEwRjVEMQotOjEwMkY2OTAwODJFNDM0NzVGNTgzNzQwNEYwOTA3NjM2RTAwNEYwRTA3OQotOjEwMkY3OTAwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MDIxOQotOjEwMkY4OTAwRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQyQQotOjEwMkY5OTAwMDlGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODM4NAotOjEwMkZBOTAwNzQwNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQ5MQotOjEwMkZCOTAwMEVGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQxRAotOjEwMkZDOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwN0YwRUY3NUYwMDM4NwotOjBFMkZEOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMjBDCi06MTAzQkQzMDBFNDkwNzYzNkYwRTBGQjc1RjAwRkE0MjQ0MUY1ODJFNDFGCi06MTAzQkUzMDAzNDc1RjU4Mzc0NDBGMEVCNzVGMDBGQTQyNDQyRjU4MjJECi06MTAzQkYzMDBFNDM0NzVGNTgzNzQwQUYwRUI3NUYwMEZBNDI0NDNGNUYwCi06MTAzQzAzMDA4MkU0MzQ3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMEQ5Ci06MTAzQzEzMDAwRkE0MjQ0N0Y1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMEY2Ci06MTAzQzIzMDBBQzQ0RUI3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0IzCi06MTAzQzMzMDAxMjM3QzgwMDAxNzcwMDkwNzYzNkUwMDRGMEUwRkI3NTk4Ci06MTAzQzQzMDBGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQwRjBFQjVFCi06MTAzQzUzMDA3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0OENGMDc3Ci06MTAzQzYzMDBFQjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzMTIzNzIyCi06MTAzQzczMDBDODAwMDBBQzQ0RUI3NUYwMEZBNDI0NDdGNTgyRTQzNDhDCi06MTAzQzgzMDA3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMDBGQTQyNDFDCi06MTAzQzkzMDA0QkY1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMTc3MDA5MDQxCi06MTAzQ0EzMDA3NjM2RTAwNEYwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNERBCi06MTAzQ0IzMDAzNDc1RjU4Mzc0NDBGMEVGNzVGMDBGQTQyNDQyRjU4MjU4Ci06MTAzQ0MzMDBFNDM0NzVGNTgzNzQ4RkYwOTA3NjM2RTAwNEYwRTBGRjBBCi06MTAzQ0QzMDA3NUYwMEZBNDI0NDFGNTgyRTQzNDc1RjU4Mzc0NDFGMDQzCi06MTAzQ0UzMDBFRjc1RjAwRkE0MjQ0MkY1ODJFNDM0NzVGNTgzNzQ4NEYwCi06MTAzQ0YzMDBGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTcwCi06MTAzRDAzMDA4MkU0MzQ3NUY1ODM3NDYxRjBFRjc1RjAwRkE0MjQ0MkY3Ci06MTAzRDEzMDBGNTgyRTQzNDc1RjU4Mzc0ODFGMDkwNzYzNkUwMDRGMDJGCi06MTAzRDIzMDBFMEZGNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQ0Ci06MTAzRDMzMDA2MUYwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4MzQ2Ci06MDQzRDQzMDA3NDAxRjAyMkY1Ci06MTA0NjE5MDBFNDkwNzYzNkYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNEU1Ci06MTA0NjI5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNERGCi06MTA0NjM5MDAzNDc1RjU4Mzc0MDFGMDkwNzYzNkUwMDRGMEUwRkY3NTg3Ci06MTA0NjQ5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NUMwCi06MTA0NjU5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDAyRjA5MEYxCi06MTA0NjY5MDA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNDI1Ci06MTA0Njc5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNDhGCi06MTA0Njg5MDAzNDc1RjU4Mzc0MDNGMDkwNzYzNkUwMDRGMEUwRkY3NTM1Ci06MTA0Njk5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NTcwCi06MTA0NkE5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMjBECi06MTAzQTQyMDBFNDkwNzYzNUYwOTA3NjM1RTBGRkMzOTQwMzQwMDI0MTZFCi06MTAzQTUyMDBGRkVGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUY1ODNFRjJBCi06MTAzQTYyMDBGMEVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFNDMzCi06MTAzQTcyMDBGMEVGNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODM3NDkyCi06MTAzQTgyMDBGMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4MzA1Ci06MTAzQTkyMDA3NEZGRjBFRjc1RjAwQUE0MjRBRUY1ODJFNDM0NzVGNUY0Ci06MTAzQUEyMDA4M0U0RjBFRjc1RjAwQUE0MjRBRkY1ODJFNDM0NzVGNUVGCi06MTAzQUIyMDA4Mzc0ODBGMEVGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUMzCi06MTAzQUMyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUNECi06MTAzQUQyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUJDCi06MTAzQUUyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUFCCi06MTAzQUYyMDBGNTgzNzQwMUYwOTA3NjM1RTAwNEYwNDE0NzkwNzYzQzBFCi06MTAzQjAyMDA3NDBBRjBFNEEzRjA5MDc2MzU3NDAzRjA5MDc2M0NFMDBBCi06MTAzQjEyMDBGRjkwNzYzNUUwRkVDMzlGNDAwMjYxRDI5MDc2M0RFMDkxCi06MTAzQjIyMDBGRjA0RjBFRTc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNUQ4Ci06MTAzQjMyMDA4M0VGRjBFRTc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTU4Ci06MTAzQjQyMDA4M0U0RjBFRTc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTUyCi06MTAzQjUyMDA4Mzc0NUVGMEVFNzVGMDBBQTQyNEFERjU4MkU0MzQ3NTQ4Ci06MTAzQjYyMDBGNTgzNzRCQUYwRUU3NUYwMEFBNDI0QUVGNTgyRTQzNDVCCi06MTAzQjcyMDA3NUY1ODM3NDA1RjBFRTc1RjAwQUE0MjRBRkY1ODJFNEJFCi06MTAzQjgyMDAzNDc1RjU4Mzc0ODBGMEVFNzVGMDBBQTQyNEIwRjU4MkUyCi06MTAzQjkyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIxRjU4MkZECi06MTAzQkEyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIyRjU4MkVDCi06MTAzQkIyMDBFNDM0NzVGNTgzNzQxNUYwRUU3NUYwMEFBNDI0QjNGNUI4Ci06MTAzQkMyMDA4MkU0MzQ3NUY1ODNFNEYwOTA3NjM1RTAwNEYwNjEwRTFBCi06MDEzQkQyMDAyMkQwCi06MTAwODAwMDBFNDkwNzYzMUYwOTA3NjMxRTBGRjc1RjAwM0E0MjQwRjg4Ci06MTAwODEwMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRURFMEZERUU2RDRBCi06MTAwODIwMDA2MDBFRUZDMzk0MEI1MDA4OTA3NjMxRTAwNEYwODBENTUxCi06MTAwODMwMDBFRkI0MEIwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwM0IxCi06MTAwODQwMDBBNDI0MEVGNTgyRTQzNDc1RjU4M0UwOTA3NjMzRjAyNDI5Ci06MTAwODUwMDBGMDYwMEEyNDBFNjAwMjgxODcxMjRCQzcyMjkwN0ZFRDYwCi06MTAwODYwMDBFMDY0MDU3MDUxOTA3NjE4NzQwNUYwOTA3NjM3NzQwMTQ1Ci06MTAwODcwMDBGMDkwNzYzOTc0MDNGMDkwNzYyMUYwRTQ5MDc2MjBGMEQxCi06MTAwODgwMDA5MDdGRUFFMEY0NjAyRjkwNzYyMEUwRkY3NUYwMEFBNEY0Ci06MTAwODkwMDAyNEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVBRTBGRDVBCi06MTAwOEEwMDBFRTZENjAxMjkwNzYyMUUwRkVFRkMzOUU1MDA4OTA3NkM4Ci06MTAwOEIwMDAyMEUwMDRGMDgwRDE5MDdGRURFMDY0MDY3MDUyOTA3NkU1Ci06MTAwOEMwMDAxODc0MDZGMDkwNzYzNzc0MDRGMDkwNzYzOTc0MEFGMDU0Ci06MTAwOEQwMDA5MDc2MjFGMDkwNzYyMDc0MDNGMDkwN0ZFQUUwRjQ2MDQ3Ci06MTAwOEUwMDAyRjkwNzYyMEUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDY0Ci06MTAwOEYwMDA3NUY1ODNFMEZFOTA3RkVBRTBGREVFNkQ2MDEyOTA3Njg0Ci06MTAwOTAwMDAyMUUwRkVFRkMzOUU1MDA4OTA3NjIwRTAwNEYwODBEMUY1Ci06MTAwOTEwMDA5MDc2MjBFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUVECi06MTAwOTIwMDBGNTgzRTA5MDcyMjlGMEU0OTA3NjNCRjA5MDc2MjFFMDM4Ci06MTAwOTMwMDBGRUVGNkU3MDA4OTA3RkI0RTA0NDAxRjAyMjkwN0ZFQkYwCi06MTAwOTQwMDBFMDE0NjAxMzE0NzAwMjIxRTIyNDAyNjAwMjgxN0Y5MDlGCi06MTAwOTUwMDA3RkI0RTA0NDAxRjAyMjkwN0ZFOUUwMTQ3MDdDOTA3RjQ2Ci06MTAwOTYwMDBFQUUwRjQ3MDQ4OTA3NjM3RTA5MDc2MjBGMDkwNzYzOTlGCi06MTAwOTcwMDBFMEZFOTA3NjIwRTBGREMzOUU1MDJCOTA3NjNCRTBGRTlCCi06MTAwOTgwMDAwNEYwNzRDMDJFRjU4MkU0MzQ3RUY1ODNFMEZFRUQ3NTRDCi06MTAwOTkwMDBGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFRUYwOTA3NjhBCi06MTAwOUEwMDAyMEUwMDRGMDgwQzc5MDc2M0Y3NDAxRjAyMjkwN0VDMDcyCi06MTAwOUIwMDBFMEZFRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4MzBDCi06MTAwOUMwMDBFRUYwRTBCNDAxMDg5MDc2M0U3NDAxRjA4MDA1RTQ5MDBBCi06MTAwOUQwMDA3NjNFRjA5MDc2M0Y3NDAxRjAyMjkwN0ZCNEUwNDQwMUJGCi06MTAwOUUwMDBGMDIyOTA3RkU5RTAyNEZFNzAwMjQxQTMxNDcwMDI2MUJFCi06MTAwOUYwMDAzRjE0NzAwMjYxREIyNDAzNjAwMjgxNzc5MDdGRUFFMDlDCi06MTAwQTAwMDBGNDcwNkI5MDc2MzdFMDkwNzYyMEYwOTA3NjM5RTBGRkM2Ci06MTAwQTEwMDA5MDc2MjBFMEZFQzM5RjUwNEU5MDc2M0JFMEZGMDRGMEJFCi06MTAwQTIwMDA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRTc1RjAwQUEyCi06MTAwQTMwMDBBNDI0QUNGNTgyRTQzNDc1RjU4M0VGRjA5MDc2M0JFMEM2Ci06MTAwQTQwMDBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRUZFCi06MTAwQTUwMDA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MEM3Ci06MTAwQTYwMDA3NjIwRTAwNEYwODBBNDkwNzY0MDc0MDFGMDIyOTA3RTFECi06MTAwQTcwMDBDMEUwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEFDRjU4Mjc5Ci06MTAwQTgwMDBFNDM0NzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1RjAwQTc3Ci06MTAwQTkwMDBBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MDc2NDE3NENCCi06MTAwQUEwMDAwMUYwMjI5MDdGRUFFMEY0NzA2NjkwNzYzN0UwOTA3NjZECi06MTAwQUIwMDAyMEYwOTA3NjM5RTBGRjkwNzYyMEUwRkVDMzlGNDAwMjYwCi06MTAwQUMwMDA4MThFOTA3NjNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDExCi06MTAwQUQwMDA3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUVGNTgyRTQzNERGCi06MTAwQUUwMDA3NUY1ODNFRkYwOTA3NjNCRTBGRjA0RjA3NEMwMkZGNUNFCi06MTAwQUYwMDA4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUZGNUJFCi06MTAwQjAwMDA4MkU0MzQ3NUY1ODNFRkYwOTA3NjIwRTAwNEYwODBBMjYzCi06MTAwQjEwMDA5MDdFQzBFMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRBRTNGCi06MTAwQjIwMDBGNTgyRTQzNDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NTU5Ci06MTAwQjMwMDBGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDM3Ci06MTAwQjQwMDA3RkVBRTBGNDcwNjY5MDc2MzdFMDkwNzYyMEYwOTA3NjU5Ci06MTAwQjUwMDAzOUUwRkY5MDc2MjBFMEZFQzM5RjQwMDI4MThFOTA3NkMwCi06MTAwQjYwMDAzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEFGCi06MTAwQjcwMDBGRkVFNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFRjM2Ci06MTAwQjgwMDBGMDkwNzYzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUYxCi06MTAwQjkwMDBGNTgzRTBGRkVFNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NTI0Ci06MTAwQkEwMDBGNTgzRUZGMDkwNzYyMEUwMDRGMDgwQTI5MDdFQzBFMDI0Ci06MTAwQkIwMDBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QjBGNTgyRTQzNEJDCi06MTAwQkMwMDA3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzVGMDBBQTQyNDg2Ci06MTAwQkQwMDBCMUY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkVBRTBGNDFBCi06MTAwQkUwMDA3MDY2OTA3NjM3RTA5MDc2MjBGMDkwNzYzOUUwRkY5MDRFCi06MTAwQkYwMDA3NjIwRTBGRUMzOUY0MDAyODE4RTkwNzYzQkUwRkYwNEFBCi06MTAwQzAwMDBGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFNzVGMERBCi06MTAwQzEwMDAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRUZGMDkwNzYzQkI0Ci06MTAwQzIwMDBFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRjJBCi06MTAwQzMwMDBFRTc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVGNTgzRUZGMDgxCi06MTAwQzQwMDA5MDc2MjBFMDA0RjA4MEEyOTA3RUMwRTBGRjkwNzYyMEI1Ci06MTAwQzUwMDBFMEZFNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFRjYyCi06MTAwQzYwMDBGMDkwN0VDMUUwRkZFRTc1RjAwQUE0MjRCM0Y1ODJFNEIzCi06MTAwQzcwMDAzNDc1RjU4M0VGRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MEM4Ci06MEYwQzgwMDA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjIwMQotOjEwMTAwMDAwRTQ5MDc2MkNGMDkwNzYyQ0UwRkY3NUYwMDNBNDI0MEY4QQotOjEwMTAxMDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVERTBGREVFNkQ0MgotOjEwMTAyMDAwNjAwRUVGQzM5NDBCNTAwODkwNzYyQ0UwMDRGMDgwRDU0RQotOjEwMTAzMDAwRUZCNDBCMDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDNBOQotOjEwMTA0MDAwQTQyNDBFRjU4MkU0MzQ3NUY1ODNFMDkwNzYyRUYwMjQyNgotOjEwMTA1MDAwRjA2MDBBMjQwRjYwMDI4MTdEMTI0QkE0MjI5MDdGRUQ4NAotOjEwMTA2MDAwRTA2NDA1NzA1MTkwNzYxODc0MDVGMDkwNzYzODc0MDEzQwotOjEwMTA3MDAwRjA5MDc2M0E3NDAzRjA5MDc2MUNGMEU0OTA3NjFCRjBEMgotOjEwMTA4MDAwOTA3RkVBRTBGNDYwMkY5MDc2MUJFMEZGNzVGMDBBQTRGMQotOjEwMTA5MDAwMjRBQUY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQUUwRkQ1MgotOjEwMTBBMDAwRUU2RDYwMTI5MDc2MUNFMEZFRUZDMzlFNTAwODkwNzZDNQotOjEwMTBCMDAwMUJFMDA0RjA4MEQxOTA3RkVERTA2NDA2NzA1MjkwNzZFMgotOjEwMTBDMDAwMTg3NDA2RjA5MDc2Mzg3NDA0RjA5MDc2M0E3NDBBRjA0QQotOjEwMTBEMDAwOTA3NjFDRjA5MDc2MUI3NDAzRjA5MDdGRUFFMEY0NjA0OQotOjEwMTBFMDAwMkY5MDc2MUJFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ2MQotOjEwMTBGMDAwNzVGNTgzRTBGRTkwN0ZFQUUwRkRFRTZENjAxMjkwNzY3QwotOjEwMTEwMDAwMUNFMEZFRUZDMzlFNTAwODkwNzYxQkUwMDRGMDgwRDFGNwotOjEwMTExMDAwRTQ5MDc2MUVGMDkwNzYxQ0UwRkY5MDc2MUJFMEZFNkY2OAotOjEwMTEyMDAwNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDdGRUJFMDE0NjBGRgotOjEwMTEzMDAwMTMxNDcwMDIyMUJGMjQwMjYwMDI4MTc1OTA3RkI0RTAxNQotOjEwMTE0MDAwNDQwMUYwMjI5MDdGRTlFMDI0N0Y3MDZCOTA3RkVBRTAxOQotOjEwMTE1MDAwRjQ3MDRBOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MwotOjEwMTE2MDAwOTA3NjFCRTBGREMzOUY1MDJCRUQ3NUYwMEFBNDI0QUJENQotOjEwMTE3MDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRDA0RjAxRgotOjEwMTE4MDAwNzQwMDJERjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTA1OAotOjEwMTE5MDAwMDRGMDgwQzc5MDc2MUVFMDkwN0ZCNUYwMjJFRTc1RjBFNwotOjEwMTFBMDAwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA2NwotOjEwMTFCMDAwOTA3RkI1NzQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA1QQotOjEwMTFDMDAwN0ZFOUUwMjQ3RTcwMDI0MTdFMTQ3MDAyNjEyMzE0NzA3NgotOjEwMTFEMDAwMDI2MUM4MjQwMzYwMDI4MTZEOTA3RkVBRTBGNDcwNkRDMwotOjEwMTFFMDAwOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MDc2MUI5MAotOjEwMTFGMDAwRTBDMzlGNTA0RkUwRkY3NUYwMEFBNDI0QUNGNTgyRTRGMQotOjEwMTIwMDAwMzQ3NUY1ODNFMEZFOTA3NjFFRTBGRDA0RjA3NDAwMkQ0OQotOjEwMTIxMDAwRjU4MkU0MzQ3RkY1ODNFRUYwRUY3NUYwMEFBNDI0QUQ5NwotOjEwMTIyMDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRTA0RjA2RAotOjEwMTIzMDAwNzQwMDJFRjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTBBNgotOjEwMTI0MDAwMDRGMDgwQTQ5MDc2MUVFMDkwN0ZCNUYwMjI5MDc2MUI4QgotOjEwMTI1MDAwRTBGRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzRTA3MAotOjEwMTI2MDAwOTA3RjAwRjBFRjc1RjAwQUE0MjRBREY1ODJFNDM0NzVBOAotOjEwMTI3MDAwRjU4M0UwOTA3RjAxRjA5MDdGQjU3NDAyRjAyMjkwN0ZCQgotOjEwMTI4MDAwRUFFMEY0NzA2RDkwNzYzOEUwOTA3NjFCRjA5MDc2M0E1NAotOjEwMTI5MDAwRTBGRjkwNzYxQkUwQzM5RjUwNEZFMEZGNzVGMDBBQTQ3QgotOjEwMTJBMDAwMjRBRUY1ODJFNDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQxMQotOjEwMTJCMDAwMDRGMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVEMQotOjEwMTJDMDAwRjAwQUE0MjRBRkY1ODJFNDM0NzVGNTgzRTBGRjkwNzY0QwotOjEwMTJEMDAwMUVFMEZFMDRGMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUYwNwotOjEwMTJFMDAwRjA5MDc2MUJFMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjUyRAotOjEwMTJGMDAwRjAyMjkwNzYxQkUwRkY3NUYwMEFBNDI0QUVGNTgyRTQ5QwotOjEwMTMwMDAwMzQ3NUY1ODNFMDkwN0YwMEYwRUY3NUYwMEFBNDI0QUYwOAotOjEwMTMxMDAwRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMUYwOTA3RkI1NzQzOQotOjEwMTMyMDAwMDJGMDIyOTA3RkVBRTBGNDcwNkQ5MDc2MzhFMDkwNzZEQgotOjEwMTMzMDAwMUJGMDkwNzYzQUUwRkY5MDc2MUJFMEMzOUY1MDRGRTBBMQotOjEwMTM0MDAwRkY3NUYwMEFBNDI0QjBGNTgyRTQzNDc1RjU4M0UwRkU1RAotOjEwMTM1MDAwOTA3NjFFRTBGRDA0RjA3NDAwMkRGNTgyRTQzNDdGRjVGNAotOjEwMTM2MDAwODNFRUYwRUY3NUYwMEFBNDI0QjFGNTgyRTQzNDc1RjU0QwotOjEwMTM3MDAwODNFMEZGOTA3NjFFRTBGRTA0RjA3NDAwMkVGNTgyRTQxOAotOjEwMTM4MDAwMzQ3RkY1ODNFRkYwOTA3NjFCRTAwNEYwODBBNDkwNzYzNAotOjEwMTM5MDAwMUVFMDkwN0ZCNUYwMjI5MDc2MUJFMEZGNzVGMDBBQTQ2NgotOjEwMTNBMDAwMjRCMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVBQQotOjEwMTNCMDAwRjAwQUE0MjRCMUY1ODJFNDM0NzVGNTgzRTA5MDdGMDE0RQotOjEwMTNDMDAwRjA5MDdGQjU3NDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTBBNwotOjEwMTNEMDAwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCRTA0RQotOjEwMTNFMDAwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzRBNQotOjEwMTNGMDAwNzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJERjU5NwotOjEwMTQwMDAwODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEIzRjU5RgotOjEwMTQxMDAwODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNzRGQwotOjEwMTQyMDAwMDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDQyNAotOjEwMTQzMDAwRjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCRTBCRAotOjEwMTQ0MDAwRkY3NUYwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0UwOTBDOAotOjEwMTQ1MDAwN0YwMEYwRUY3NUYwMEFBNDI0QjNGNTgyRTQzNDc1RjU0QgotOjEwMTQ2MDAwODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQjQwQQotOjEwMTQ3MDAwRTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjQ3OAotOjA1MTQ4MDAwRTA0NDAxRjAyMjMwCi06MTAzODc0MDBFNDkwNzYyOUYwOTA3NjI5RTBGRjc1RjAwRkE0MjQ0MkI1Ci06MTAzODg0MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2REE3Ci06MTAzODk0MDA2MDBFRUZDMzk0MDY1MDA4OTA3NjI5RTAwNEYwODBENUJBCi06MTAzOEE0MDBFRkI0MDYwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwRjA2Ci06MTAzOEI0MDBBNDI0NDFGNTgyRTQzNDc1RjU4M0UwOTA3NjJBRjAyNDVCCi06MTAzOEM0MDBCRjcwMDI0MTQxMjRFMDcwMDI0MTEyMjQyMTYwMDI0MTkwCi06MTAzOEQ0MDAzQTkwN0ZFOUUwMjRGRTYwN0QxNDcwMDIyMUIyMjQwMjU0Ci06MTAzOEU0MDA2MDAyNDEwQTEyMTc1MTkwNzY0MkUwRkNBM0UwRkRBMzY2Ci06MTAzOEY0MDBFMEZFQTNFMEZGOTA3NjI5RTA3NUYwMEZBNDI0NDNGNUUxCi06MTAzOTA0MDA4MkU0MzQ3NUY1ODMxMjM3QkM5MDc2MTlFMEZGQjQwMTc0Ci06MTAzOTE0MDAxMjkwNzY3Qzc0NjdGMDkwNzY3RDc0MDZGMDkwNzY3RUQzCi06MTAzOTI0MDA3NDBCRjBFRkI0MDIwRkU0OTA3NjdDRjA5MDc2N0RGMEE3Ci06MTAzOTM0MDA5MDc2N0U3NDBDRjBFRkI0MDMwRkU0OTA3NjdDRjA5MEY0Ci06MTAzOTQ0MDA3NjdERjA5MDc2N0U3NDE4RjA5MDc2MUE3NDAxRjAxMkY5Ci06MTAzOTU0MDAzRTlGMTIxODAwMjI5MDdFQzJFMEZGRTRGQ0ZERkVGQkI1Ci06MTAzOTY0MDBGQTc5MDFGODEyMzc0NkM4RUNDOEM5RURDOUNBRUVDQURCCi06MTAzOTc0MDBDQkVGQ0I5MDdFQzFFMEZFRTRGQ0ZEMkJGQkVBM0VGQUVDCi06MTAzOTg0MDBFRDM5RjlFQzM4Rjg5MDdFQzBFMEZGRTRGRUVCMkZGRjUwCi06MTAzOTk0MDBFRTNBRkVFRDM5RkRFQzM4RkM5MDc2MjlFMDc1RjAwRjM3Ci06MTAzOUE0MDBBNDI0NDdGNTgyRTQzNDc1RjU4MzEyMzdCQzIyOTA3RTUzCi06MTAzOUI0MDBDMkUwRkZFNEZDRkRGRUZCRkE3OTAxRjgxMjM3NDZDOEM5Ci06MTAzOUM0MDBFQ0M4QzlFREM5Q0FFRUNBQ0JFRkNCOTA3RUMxRTBGRTBDCi06MTAzOUQ0MDBFNEZDRkQyQkZCRUEzRUZBRUQzOUY5RUMzOEY4OTA3RTc1Ci06MTAzOUU0MDBDMEUwRkZFNEZFRUIyRkZGRUUzQUZFRUQzOUZERUMzOENDCi06MTAzOUY0MDBGQzkwNzYyOUUwNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NTJECi06MTAzQTA0MDBGNTgzMTIzN0JDMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RjBBCi06MTAzQTE0MDBFOUUwMTQ3MDE5OTA3RUMwRTBGRjkwNzYyOUUwNzVGMDFCCi06MTAzQTI0MDAwRkE0MjQ0RkY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkUwCi06MEUzQTM0MDBCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOUYKLToxMDJBRDYwMEU0OTA3NjI3RjA5MDc2MjdFMEZGNzVGMDBGQTQyNDQyNjUKLToxMDJBRTYwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZENTMKLToxMDJBRjYwMDYwMEVFRkMzOTQwNjUwMDg5MDc2MjdFMDA0RjA4MEQ1NjgKLToxMDJCMDYwMEVGQjQwNjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDBGQjEKLToxMDJCMTYwMEE0MjQ0MUY1ODJFNDM0NzVGNTgzRTA5MDc2MjhGMDI0MDgKLToxMDJCMjYwMDlGNzAwMkExNzQyNDIxNjAwMkExQTE5MDdGRTlFMDI0OTQKLToxMDJCMzYwMDdFNzAwMjYxRkMxNDcwMDI4MUI1MjQwMjYwMDJBMTZDRjEKLToxMDJCNDYwMEVGNzVGMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQjkKLToxMDJCNTYwMEEzRTBGREEzRTBGRUEzRTBGRjdCNDQ3QUFDNzkwMDc4MTYKLToxMDJCNjYwMDAwQzMxMjM3QUI3MDEzOTA3RjAwNzQ0NEYwQTM3NEFDQUIKLToxMDJCNzYwMEYwRTRBM0YwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwNEIKLToxMDJCODYwMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZENEQKLToxMDJCOTYwMEEzRTBGRUEzRTBGRjdCODA3QUJCNzkwMDc4MDBDMzEyMzYKLToxMDJCQTYwMDM3QUI3MDEzOTA3RjAwNzQ4MEYwQTM3NEJCRjBFNEEzN0UKLToxMDJCQjYwMEYwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwMEZBNDI0QUIKLToxMDJCQzYwMDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZEQTNFMEZFNjMKLToxMDJCRDYwMEEzRTBGRjdCMDA3QTc3NzkwMTc4MDBDMzEyMzdBQjYwRjgKLToxMDJCRTYwMDAyQTFBODkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwN0YKLToxMDJCRjYwMDdGQjU3NDAzRjAyMjkwNzYyN0UwNzVGMDBGQTQyNDQ3ODIKLToxMDJDMDYwMEY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzQzIKLToxMDJDMTYwMEUwRkY3QjQ0N0FBQzc5MDA3ODAwQzMxMjM3QUI3MDEzQkYKLToxMDJDMjYwMDkwN0YwMDc0NDRGMEEzNzRBQ0YwRTRBM0YwOTA3RkI1RjkKLToxMDJDMzYwMDc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0M0MKLToxMDJDNDYwMDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCODMKLToxMDJDNTYwMDgwN0FCQjc5MDA3ODAwQzMxMjM3QUI3MDEzOTA3RjAwN0YKLToxMDJDNjYwMDc0ODBGMEEzNzRCQkYwRTRBM0YwOTA3RkI1NzQwM0YwMTYKLToxMDJDNzYwMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0MzQ3NUY1QzUKLToxMDJDODYwMDgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCMDA3QTc3RjAKLToxMDJDOTYwMDc5MDE3ODAwQzMxMjM3QUI2MDAyQTFBODkwN0YwMEYwREIKLToxMDJDQTYwMEEzNzQ3N0YwQTM3NDAxRjA5MDdGQjU3NDAzRjAyMjkwQkIKLToxMDJDQjYwMDc2MjdFMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzOEUKLToxMDJDQzYwMEUwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5NDEKLToxMDJDRDYwMDAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzRTIKLToxMDJDRTYwMDc0QUNGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwMUYKLToxMDJDRjYwMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzNEMKLToxMDJEMDYwMEUwRkRBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQkMKLToxMDJEMTYwMEMzMTIzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwQkUKLToxMDJEMjYwMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGN0EKLToxMDJEMzYwMEE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRkYKLToxMDJENDYwMEUwRkVBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QjMKLToxMDJENTYwMEFCNzA0RjkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwRUUKLToxMDJENjYwMDdGQjU3NDAzRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGOTcKLToxMDJENzYwMEU5RTAyNDdGNzAxRTkwNzYyN0UwNzVGMDBGQTQyNDRGQkIKLToxMDJEODYwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDkwN0ZCNTc0QUEKLToxMDJEOTYwMDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0RjYKLTowMzJEQTYwMDAxRjAyMjE3Ci06MTA0QkE0MDA5MDdGRUJFMDE0NzAxNDkwN0ZFOUUwMjQ3RjcwMDQxMjhFCi06MTA0QkI0MDA0OTU4MjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDRECi06MDM0QkM0MDAwMUYwMjJEQgotOjEwNEJDNzAwOTA3RkVCRTAxNDcwMTM5MDdGRTlFMDE0NzAwNDEyNEFCMQotOjEwNEJENzAwMDMyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFDNwotOjAyNEJFNzAwRjAyMkJBCi06MTA0OTU4MDBFNDkwNzYyNkYwOTA3NjI2RTBGRjc1RjAwM0E0MjQzNEUwCi06MTA0OTY4MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2REIyCi06MTA0OTc4MDA2MDBFRUZDMzk0MDQ1MDA4OTA3NjI2RTAwNEYwODBENUNBCi06MTA0OTg4MDBFRkI0MDQwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwMzFGCi06MTA0OTk4MDBBNDI0MzJGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA5MDJBCi06MDY0OUE4MDA3RkI1NzQwMUYwMjI0RQotOjEwNEEwMzAwRTQ5MDc2MjVGMDkwNzYyNUUwRkY3NUYwMDNBNDI0MzQzNgotOjEwNEExMzAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkQwNgotOjEwNEEyMzAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNUUwMDRGMDgwRDUxRgotOjEwNEEzMzAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyOTA3RUMwRTAxQwotOjEwNEE0MzAwRkVFRjc1RjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRUVBQQotOjAyNEE1MzAwRjAyMjRGCi06MDMwMDAzMDAwMjBGRkRFQwotOjAzMEZGRDAwQzI4OTMyNzQKLTowMzAwMTMwMDAyMTdGREQ0Ci06MDMxN0ZEMDBDMjhCMzI2QQotOjAzMDA0QjAwMDI0RTAzNUYKLTowNDRFMDMwMDUzOTFERjMyQjYKLTowMzAwNTMwMDAyNDhGQTY2Ci06MDY0OEZBMDA1MzkxQkZEMjJEMzJFNAotOjAzMDA1QjAwMDI0REZENTYKLTowNjRERkQwMDUzOTE3RkQyMkMzMjFECi06MDMwMDYzMDAwMjRFMDc0MwotOjA0NEUwNzAwNTNEOEY3MzI1MwotOjAzMDAwQjAwMDI0RTBGOTMKLTowMzRFMEYwMEMyOEQzMjFGCi06MDMwMDFCMDAwMjRFMTI4MAotOjAzNEUxMjAwQzI4RjMyMUEKLTowMzAwMjMwMDAyNERFRjlDCi06MDc0REVGMDA1Mzk4RkU1Mzk4RkQzMkJBCi06MDMwMDNCMDAwMjRERjY3RAotOjA3NERGNjAwNTNDMEZFNTNDMEZEMzI2MwotOjAzMDAyQjAwMDI0ODAwODgKLToxMDQ4MDAwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwMzIKLToxMDQ4MTAwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGRUQKLToxMDQ4MjAwMEMwRTBDMkNBQzJDRjkwN0Y5OEUwNDQwMUYwMzAyRTAzQUUKLToxMDQ4MzAwMDEyMTRBNjkwN0Y5OEUwNTRGRUYwNTNBOEZBMTIxNjYxNjUKLToxMDQ4NDAwMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBGQ0QwRTBGQkQwMzcKLToxMDQ4NTAwMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDA4MkQwODNEMEYwMjgKLTowMzQ4NjAwMEQwRTAzMjczCi06MTA0QUE2MDBFNDkwNzY5QkYwOTA3NjlCRTBGRjA0RjBFRjYwMDhFMEUwCi06MTA0QUI2MDAyNDA4RjhFNEY2ODBFRTkwNzY5NkUwNDQwNEYwNDQwODg0Ci06MTA0QUM2MDBGMDkwODAwM0YwRTRGNTE4RDIzNUY1MEVGNTEwRDIzNkU1Ci06MTA0QUQ2MDA3NTEyMTE3NTEzMjJDMjM3QzIzOUMyMzhGNTE2RjUxNDhDCi06MEI0QUU2MDBGNTFBRjUwREMyM0JDMjNDQzIzRDIyOTgKLToxMDMwMDAwMDkwN0ZCNkUwMjBFMTAyQzIzREQyMzYyMDM2MDI0MTZFMEEKLToxMDMwMTAwMDMwM0QwMjQxNkU5MDgwMDdFMDYwMDREMjM2ODAwMkMyRUIKLToxMDMwMjAwMDM2MjAzNjAyNDEyRUQyMzVFNEY1MUE5MDgwMDRFMEY1QzAKLToxMDMwMzAwMDE5NzQwODI1MEVGOEE2MTk4NTE5MThFNTE4MjBFNzA0NTMKLToxMDMwNDAwMEQyMzg4MDAyQzIzODMwMzgwMjIxRDRFNEY1MTZFNTE5QUUKLToxMDMwNTAwMEI0RjAwQ0QyMzk3NTA4MDQ3NTA5RjAwNTBFODAwMjA1MkMKLToxMDMwNjAwMDE2RTUxOTY0Rjc3MDNEQzIzOUU1MEUyNEZFNjAxNzE0QTkKLToxMDMwNzAwMDYwMjIyNDAzNzAyOTc1MDgwNTc1MDlGN0U0RjUwQUY1M0YKLToxMDMwODAwMDBCNzUwRTA0ODAyMDc1MDgwNjc1MEFGN0U0RjUwQjc1QkMKLToxMDMwOTAwMDBFMDQ4MDEyNzUwODA3NzUwQkY3NzUwRTA0ODAwNzEyNzEKLToxMDMwQTAwMDREREE4MDAyMDUxNkU1MTk1NEY4NjRGODcwM0JDMjM1MTQKLToxMDMwQjAwMEU1MTkyNDA3NjAwQzI0RkM2MDA4MjQwNTI0Rjg1MDA2NTgKLToxMDMwQzAwMDgwMDhEMjNBODAwNkMyM0E4MDAyRDIzQTc1MUEwMTIwQUMKLToxMDMwRDAwMDNBMTk5MDdFODA3NDBGRjBBM0U1MTlGMEU0QTNGMEEzRjEKLToxMDMwRTAwMEYwOTA3RkI3NzQwNEYwODAwMjA1MTYyMDM5NkRFNTE5NjEKLToxMDMwRjAwMDY0Rjc2MDY3RTUxQTcwNjNFNTE4NTRGMDY0RjA3MDU5N0UKLToxMDMxMDAwMDg1MTgxOUY1MEVFNTE5MjQwRjYwMUIyNEZFNjAxNzI0OUQKLToxMDMxMTAwMEZENjAyMjE0NjAxRjI0MDU3MDJGNzUwODAzMDUwRTg1QkQKLToxMDMxMjAwMDE4MDlEMjM3ODAyODc1MDgwMjA1MEU4NTE4MDk3NTE0MEMKLToxMDMxMzAwMDAxRDIzNzgwMTk3NTA4MDUwNTBFODUxODA5RTRGNTBBQ0UKLToxMDMxNDAwMEY1MEI3NTBFMDNEMjM3ODAwNTEyNEREQUMyMzUzMDM1RDYKLToxMDMxNTAwMDBBODUwODEzODUxODEyODAwMjA1MTY4NTE4MTlFNTE2QzgKLToxMDMxNjAwMDY0MDQ3MDYyRjUwRUU1MTk1NEYwRjUxOUY1MTU4NTE4MkIKLToxMDMxNzAwMDE5RTUxNTI0NzA2MDE4MjRGMDYwMTQyNEYwNjAxMDI0MDAKLToxMDMxODAwMEYwNjAxRTI0RjA2MDFBMjRGMDYwMDQyNDYwNzAyN0U1Q0IKLToxMDMxOTAwMDE1QzQ1NDBGRjUxOUY1MDgwNTBFODUxODA5RDIzNzgwQTYKLToxMDMxQTAwMDFBRTUxNUM0NTQwRkY1MTlGNTA4MDUwRTg1MTgwOTc1QUIKLToxMDMxQjAwMDE0MDFEMjM3ODAwNTEyNEREQUMyMzUzMDM1MEE4NTE5MkYKLToxMDMxQzAwMDEzODUxODEyODAwMjA1MTZFNTE2RDM5NDA1NDA1NzEyOTAKLToxMDMxRDAwMDREREE4MDUyMzAzOTE3RTUwRTcwMEE4NTA4MDk3NTA4RjYKLToxMDMxRTAwMDA0MDUwRTgwNDE3NDA4MjUwRUY4QTYxOTgwMzgyMDM3OTIKLToxMDMxRjAwMDJBRTUwRUI0MDEwRjg1MDgwQTg1MDkwQjg1MTMwODg1OTkKLToxMDMyMDAwMDEyMDk3NTBFMDRFNTE0QjQwMTFDODUwODBBRTRGNTBCRDcKLToxMDMyMTAwMDg1MTMwODg1MTIwOTc1MEUwNDgwMEJFNTE0QjQwMTA2QTgKLToxMDMyMjAwMEU0RjUwQjc1MEUwNEU0RjUxQTMwMzUwMjA1MEVFNTBFRDMKLToxMDMyMzAwMEQzOTQwMzUwMDIwMTBCQzIzN0U0RjUwRUY1MTBDMjM2RTkKLToxMDMyNDAwMEQyM0RGNTE0NzQwODI1MTBGOEU2RkY3NDgwMjUxMEY1QkEKLToxMDMyNTAwMDgyRTQzNDdFRjU4M0VGRjA3NDA4MjUxMEY4RTRGNjA1NzcKLTowRjMyNjAwMDEwRTUxMEI0MDRERTkwN0ZCNzc0MDRGMDAxMEIyMjY4Ci06MEM0RERBMDBDMjM3RTRGNTBFRjUxMEMyMzZGNTE0MjJDNQotOjEwNDAwMDAwRTUxMUQzOTQwMDUwMDIyMTA2OTA3Njg5RTBDMzk0MDgwQwotOjEwNDAxMDAwNDAwMjIxMDY3NDQwMjUwRkY1ODJFNDM0N0VGNTgzRTBFQQotOjEwNDAyMDAwRjUxN0U1MEQ2MDBFOTA4MDA1RTUxN0YwOTA3Njg5RTBCNAotOjEwNDAzMDAwMDRGMDAxREFFNTE3MTIzN0Y5NDBDMTAyNDA2NzA1NDA4NAotOjEwNDA0MDAwN0EwNjQwOTgwNzQwQzEwQzQwQzEwRDQwQzcwRjQwQ0JENQotOjEwNDA1MDAwRjY0MENCRjg0MENCRkE0MENCRkI0MENCRkM0MENCRkU0QwotOjEwNDA2MDAwNDBDQkZGMDAwMDQwREE5MDdFNDFFMDkwODAwNUYwOTA2OAotOjEwNDA3MDAwNzY4OUUwMDRGMDc1MTEwMTgwNjA5MDdFNDFFMDkwODBDNwotOjEwNDA4MDAwMDVGMDkwN0U0MkUwOTA4MDA1RjA5MDc2ODlFMDA0RjBBMwotOjEwNDA5MDAwRTAwNEYwNzUxMTAxODA0MjkwN0U0MUUwOTA4MDA1RjBDRgotOjEwNDBBMDAwOTA3RTQyRTA5MDgwMDVGMDkwN0U0M0UwOTA4MDA1RjBBNQotOjEwNDBCMDAwOTA3Njg5RTAwNEYwRTAwNEYwRTAwNEYwNzUxMTAxODBFRQotOjEwNDBDMDAwMTlEMjNCRDIzQzgwMTNEMjNCODAwRjkwODAwNUU1MTc3QwotOjEwNDBEMDAwRjA5MDc2ODlFMDA0RjA3NTExMDEyMDNCMDQwNTBEODAxNQotOjEwNDBFMDAwMUYzMDNDMUM5MDdFNDFFMDkwODAwNUYwOTA3RTQyRTBDNQotOjEwNDBGMDAwOTA4MDA1RjA5MDc2ODlFMDA0RjBFMDA0RjA3NTExMDFGRAotOjEwNDEwMDAwMDUwRjE1MTEwMTAwRTUxMTcwMTBDMjMzRjUwREY1MEYwMwotOjBCNDExMDAwOTA3RkM3NzQwNEYwQzIzQkMyM0MyMjQ5Ci06MTA0QzI5MDA5MDdGRDZFMDMwRTcxMkUwNDQwMUYwN0YxNDdFMDAxMjU1Ci06MEE0QzM5MDA0RDlEOTA3RkQ2RTA1NEZFRjAyMjVFCi06MTA0QjdGMDA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzA0MjA0RTA0NDZDCi06MTA0QjhGMDAwMkYwN0ZEQzdFMDUxMjREOUQ5MDdGRDZFMDU0RjdGMDRBCi06MDU0QjlGMDBFMDQ0MDRGMDIyRDcKLToxMDREOUQwMDhFMzU4RjM2RTUzNjE1MzZBRTM1NzAwMjE1MzU0RTYwQ0IKLTowNzREQUQwMDA1MTIxNDg1ODBFRTIyQkYKLToxMDRBNTUwMEU0RkU3NTFERkY3NTFFMDU3NTFGMTJBQjFEQUExRUE5NjcKLToxMDRBNjUwMDFGOTAwMDAxMTIzNkFCNjQwMjcwMkZDREVFQ0QwRUVEMTYKLToxMDRBNzUwMDZGNzAwMTIyOTAwMDAyMTIzNzBFODVGMDFCRjUxQzYyNDMKLToxMDRBODUwMDFCRTUxQjYyMUNFNTFDNjIxQjI5RkRFNTFCM0FDOUVERjQKLToxMDRBOTUwMEM5NzUxREZGRjUxRTg5MUY4MEMxN0IwMDdBMDA3OTAwNEQKLTowMTRBQTUwMDIyRUUKLTowNDE3OTQwMDhEMjk4QjJBRTYKLToxMDE3OTgwMDEyNEE1NUVBNDk2MDU3MTIzNjkyN0UwMDI5RkZFRTNBRkUKLToxMDE3QTgwMEM5RUZDOTc1MkJGRkY1MkM4OTJEQUIyQkFBMkNBOTJEQjgKLToxMDE3QjgwMDkwMDAwMTEyMzZBQkZGNjQwNDYwMDVFRjY0MDU3MDJFREIKLToxMDE3QzgwMEVGQjQwNDE1OTAwMDAyMTIzNkFCNjUyOTcwMEI5MDAwMzcKLToxMDE3RDgwMDAzMTIzNkFCNjUyQTcwMDEyMjEyMzY5MjdFMDAyOUZGNjkKLToxMDE3RTgwMEVFM0FDOUVGQzk3NTJCRkZGNTJDODkyRDgwQkM3QjAwMUIKLTowNDE3RjgwMDdBMDA3OTAwRkEKLTowMTE3RkMwMDIyQ0EKLTowMjQ3QjcwMDhGMkU0MwotOjEwNDdCOTAwRTRGNTJGNzUzMEZGNzUzMTA3NzUzMjFBQUIzMEFBMzEyMAotOjEwNDdDOTAwQTkzMjkwMDAwMTEyMzZBQkI0MDMxRkFGMkYwNTJGRUZBQQotOjEwNDdEOTAwNjUyRTcwMDEyMjEyMzY5MjdFMDAyOUZGRUUzQUM5RUY0QQotOjEwNDdFOTAwQzk3NTMwRkZGNTMxODkzMjgwRDI3QjAwN0EwMDc5MDBCMgotOjAxNDdGOTAwMjI5RAotOjEwMDUwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgxMTAxMDAwMTAxMDJGRgotOjEwMDUxMDAwMDAwMTA5MDIwODAyMDUwMTAwODAzMjA5MDQwMDAwMDAwMAotOjEwMDUyMDAwMDEwMTAwMDAwQTI0MDEwMDAxNTYwMDAyMDEwMjBDMjQwRQotOjEwMDUzMDAwMDIwMTAxMDEwMDAyMDAwMDAwMDAwRDI0MDYwNTAxMDI3NQotOjEwMDU0MDAwMDMwMDAwMDAwMDAwMDAwOTI0MDMwMjA0MDMwMDA1MDA2QQotOjEwMDU1MDAwMEMyNDAyMDMwNTAyMDAwNjAwMDAwMDAwMTUyNDA2MDYxNAotOjEwMDU2MDAwMDMwMjAwMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDAzMDA3NAotOjEwMDU3MDAwMDAwOTI0MDMwNDAxMDEwMDA2MDAwOTA0MDEwMDAwMDEzMAotOjEwMDU4MDAwMDIwMDAwMDkwNDAxMDEwMjAxMDIwMDAwMDcyNDAxMDEyOAotOjEwMDU5MDAwMDAwMTAwMTEyNDAyMDEwMjAyMTAwMzQ0QUMwMDgwQkJFMAotOjEwMDVBMDAwMDAwMDc3MDEwOTA1MEEwNTg0MDEwMTAwOEYwNzI1MDE3NAotOjEwMDVCMDAwMDEwMDAwMDAwOTA1OEYwMTAzMDAwMTA1MDAwOTA0MDE4NQotOjEwMDVDMDAwMDIwMjAxMDIwMDAwMDcyNDAxMDEwMDAxMDAxMTI0MDJCRgotOjEwMDVEMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU0OQotOjEwMDVFMDAwMEEwNTQ2MDIwMTAwOEYwNzI1MDEwMTAwMDAwMDA5MDVFOAotOjEwMDVGMDAwOEYwMTAzMDAwMTA1MDAwOTA0MDIwMDAwMDEwMjAwMDA1MAotOjEwMDYwMDAwMDkwNDAyMDEwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDBBNQotOjEwMDYxMDAwMEUyNDAyMDEwNjAyMTAwMjQ0QUMwMDgwQkIwMDA5MDU1MgotOjEwMDYyMDAwOEMwNTRDMDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDRBRQotOjEwMDYzMDAwMDIwMjAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDBFMjQ0RgotOjEwMDY0MDAwMDIwMTA2MDMxODAyNDRBQzAwODBCQjAwMDkwNThDMDVCQQotOjEwMDY1MDAwNzIwMzAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNDAyMDNFMwotOjEwMDY2MDAwMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyMDExRAotOjEwMDY3MDAwMDIwMjEwMDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1OEMyNgotOjEwMDY4MDAwMDU4NDAxMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MDJBMQotOjEwMDY5MDAwMDQwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDJFQQotOjEwMDZBMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU3OAotOjEwMDZCMDAwOEMwNTQ2MDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDQyNAotOjEwMDZDMDAwMDMwMDAwMDEwMTAwMDAwOTI0MDEwMDAxMDkwMDAxMDRFOAotOjEwMDZEMDAwMDkwNDA0MDAwMjAxMDMwMDAwMDcyNDAxMDAwMTI0MDBCMgotOjEwMDZFMDAwMDYyNDAyMDEwNzAwMDkyNDAzMDIwODAxMDcwMTAwMDY4RAotOjEwMDZGMDAwMjQwMjAyMDkwMDA5MjQwMzAxMEEwMTA5MDEwMDA5MDU3NQotOjEwMDcwMDAwMDEwMjA0MDAwMDAwMDAwNTI1MDEwMTA3MDkwNTgxMDIxRQotOjEwMDcxMDAwMDQwMDAwMDAwMDA1MjUwMTAxMEEwNDAzMDkwNDE4MDM3MAotOjEwMDcyMDAwNDUwMDZEMDA2MTAwNjcwMDY5MDA2MzAwMjAwMDQ3MDAxQwotOjEwMDczMDAwNkQwMDYyMDA0ODAwMjIwMzQ1MDA2RDAwNjEwMDY3MDAwMwotOjEwMDc0MDAwNjkwMDYzMDAyMDAwNDUwMDREMDA0OTAwMjAwMDM2MDA4QwotOjEwMDc1MDAwN0MwMDMyMDAyMDAwNkQwMDJBMDM0MzAwNkYwMDZFMDAxMQotOjEwMDc2MDAwNjYwMDY5MDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDAyRQotOjEwMDc3MDAwNkYwMDZFMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2QwotOjEwMDc4MDAwNjcwMDIyMDM0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA3NQotOjEwMDc5MDAwNjEwMDYzMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RQotOjA2MDdBMDAwNkUwMDY3MDAwMDAwN0UKLToxMDE0ODUwMDc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5N0EKLTowMTE0OTUwMDIyMzQKLToxMDE0OTYwMDkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyRTAKLToxMDE0QTYwMEMwRDBDMEUwOEZFMEMwRTA4RUUwQzBFMDhERTBDMEUwREMKLToxMDE0QjYwMDhDRTBDMEUwQzA4MkMwODMwNTg2QzA4NEMwODU3RDAwMDQKLToxMDE0QzYwMDkwN0ZFMzc0N0JGMEEzNzQ4MEYwN0MxMTkwN0Y5OUUwQTkKLToxMDE0RDYwMDU0NDBEQzAzMDIxNEYzQjQwMDEzOTA3RkUyNzQ0MEYwMkUKLToxMDE0RTYwMDkwN0ZFNUYwOTA3RkUyNzQwMEYwMDIxNEQyOTA3NjkwM0YKLToxMDE0RjYwMEUwQjQwMTEyOTA3NjhGRTAyREZEOTA3RkUyNzQ4MEYwQ0IKLToxMDE1MDYwMDkwN0Y2QzAyMTU1N0I0MDIxMjkwNzY4RkUwMkRGRDkwRjUKLToxMDE1MTYwMDdGRTI3NDgwRjA5MDdGNkMwMjE1OTZCNDAzMTI5MDc2ODkKLToxMDE1MjYwMDhGRTAyREZEOTA3RkUyNzQ4MEYwOTA3RjZDMDIxNUUxRDQKLToxMDE1MzYwMEI0MDQxMjkwNzY4RkUwMkRGRDkwN0ZFMjc0ODBGMDkwRDcKLToxMDE1NDYwMDdGNkMwMjE2MTA5MDdGRTI3NDgwRjA5MDdGNkMwMjE2MUEKLToxMDE1NTYwMDQwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRERGMjdEQjkKLToxMDE1NjYwMDAyMDU4NjkwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0RkQKLToxMDE1NzYwMDAwMDUwNTg2MDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwMkQKLToxMDE1ODYwMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEREQ0MDIxNjQwRkMKLToxMDE1OTYwMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwNDUKLToxMDE1QTYwMEYwRjBEREVDN0QwMjA1ODY5MDdGRTI3NDAwRjA5MDdGMUUKLToxMDE1QjYwMDlCRTA1NDA0QjQwMDA1MDU4NjAyMTY0MDkwN0ZFMjc0NTEKLToxMDE1QzYwMDgwRjAwNTg2RjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwREEKLTowNjE1RDYwMEYwRjBGMEYwRjBGMDZGCi06MTAxNURDMDBERENFMDIxNjQwRjBGMEYwRjBEREZBN0QwMjA1ODY5MENCCi06MTAxNUVDMDA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjQwMDA1MDU4NjA0Ci06MTAxNUZDMDAwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjBGMEYwRjBERDhBCi06MTAxNjBDMDBEQzAyMTY0MEYwRjBGMEYwRjBGMERERjg3RDAyMDU4NjFCCi06MTAxNjFDMDA5MDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNDAwMDUwNUM5Ci06MTAxNjJDMDA4NjAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMEYwRjBGMEIwCi06MTAxNjNDMDBGMEYwREREQTkwN0ZFMjc0MDBGMEQwODVEMDg0MDU4NjdFCi06MTAxNjRDMDBEMDgzRDA4MkQwRTBGQ0QwRTBGREQwRTBGRUQwRTBGRjMzCi06MDUxNjVDMDBEMEUwRDBEMDIyMTcKLToxMDE2NjEwMEMwRDBDMEUwQzA4MkMwODM5MDc2N0NFMDkwN0Y2RkYwRjQKLToxMDE2NzEwMDkwNzY3REUwOTA3RjZGRjA5MDc2N0VFMDkwN0Y2RkYwQzYKLTowOTE2ODEwMEQwODNEMDgyRDBFMEQwRDAyMjQ5Ci06MTAxNjhBMDBDMEQwQzBFMDhGRTBDMEUwOEVFMEMwRTBDMDgyQzA4MzdFCi06MTAxNjlBMDAwNTg2QzA4NEMwODU5MDc2ODdFMEZGQkYwMDAzMDIxN0U1Ci06MTAxNkFBMDAwMTkwN0Y5NkUwNDQ4MEYwOTA3RkUyNzQ4MEYwOTA3RjEyCi06MTAxNkJBMDA2MkUwMDU4NjkwN0ZFMjc0MDBGMDkwN0Y5NkUwNTQ3RkE2Ci06MTAxNkNBMDBGMDkwN0ZFMjc0ODBGMDkwNzY4RUUwQjQwMTA1MDU4NjkyCi06MTAxNkRBMDAwMjE2RjZCNDAyMDUwNTg2MDIxNkVCMDU4NjAyMTZGQjBCCi06MTAxNkVBMDBFMEUwRTBFMEUwRTBERkY4MDIxNkZCRTBFMEUwRTBERjY3Ci06MTAxNkZBMDBGQTkwN0ZFMjc0MDBGMEQwODVEMDg0MDU4NkQwODNEMDNBCi06MEMxNzBBMDA4MkQwRTBGRUQwRTBGRkQwRTBEMEQwMjI4MgotOjEwMTcxNjAwQzA4MkMwODNDMEUwRThDMEUwNzhEMUU4MTRGODcwRkI2RQotOjBBMTcyNjAwRDBFMEY4RDBFMEQwODNEMDgyMjI5QQotOjEwMENBNTAwNDE3MjAxMDE0NTcyMDUwMDAyQzkwMDAwNDU3MjBBMDA0MgotOjEwMENCNTAwMDEwMjAzMDQ0RDcyMEZEMTAwRDEwMDAwMDAwMDAwMDBCNQotOjEwMENDNTAwMjgyODA5MDA0RDcyMUMwMTAwMDEwMjAzMDQwNTA2MDdDRQotOjEwMENENTAwMDgwOTBBMEI0MTcyMkUyMjQxNzIyRjIzNDE3MjMwMjBERQotOjEwMENFNTAwNDE3MjMxMjE2MkQyNzIzQTAwMDAwMDAwMDAwMDAwMDAxQQotOjEwMENGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgotOjEwMEQwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQotOjEwMEQxNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQotOjEwMEQyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQotOjEwMEQzNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQotOjEwMEQ0NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQotOjEwMEQ1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQotOjEwMEQ2NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQotOjEwMEQ3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAxMDEwMTAxMDE2OAotOjEwMEQ4NTAwMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE0RQotOjEwMEQ5NTAwMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEzRQotOjEwMERBNTAwMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEyRQotOjEwMERCNTAwMDEwMTAxMDEwMTAxMDEwMTAyMDIwMjAyMDIwMjAyMDIxNgotOjEwMERDNTAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJGRQotOjEwMERENTAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJFRQotOjEwMERFNTAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJERQotOjEwMERGNTAwMDIwMjAyMDIwMjAzMDMwMzAzMDMwMzAzMDMwMzAzMDNDMwotOjEwMEUwNTAwMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDNBRAotOjEwMEUxNTAwMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDM5RAotOjEwMEUyNTAwMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDM4RAotOjEwMEUzNTAwMDMwMzA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQ2RgotOjEwMEU0NTAwMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQ1RAotOjEwMEU1NTAwMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQ0RAotOjEwMEU2NTAwMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQzRAotOjEwMEU3NTAwMDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUxRAotOjEwMEU4NTAwMDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwRAotOjEwMEU5NTAwMDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDVGRAotOjEwMEVBNTAwMDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA2MDZFQgotOjEwMEVCNTAwMDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDZDRAotOjEwMEVDNTAwMDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDZCRAotOjEwMEVENTAwMDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDZBRAotOjEwMEVFNTAwMDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA3MDcwNzA4MDg5NgotOjEwMEVGNTAwMDgwOTA5MDkwQTBBMEEwQjBCMEIwQzBDMEMwRDBEMEQ0MAotOjEwMEYwNTAwMEUwRTBFMEYwRjBGMTAxMDEwMTExMTExMTIxMjEyMTNEOQotOjEwMEYxNTAwMTMxMzE0MTQxNDE1MTUxNTE2MTYxNjE3MTcxNzE4MTg3NAotOjEwMEYyNTAwMTgxOTE5MTkxOTFBMUExQTFBMUIxQjFCMUIxQzFDMUMxOAotOjEwMEYzNTAwMUMxRDFEMUQxRDFFMUUxRTFFMUYxRjFGMUYyMDIwMjBDOAotOjEwMEY0NTAwMjEyMTIxMjIyMjIyMjMyMzI0MjQyNTI1MjYyNjI3Mjc2MQotOjEwMEY1NTAwMjgyODI5MjkyQTJBMkIyQjJDMkMyRDJEMkUyRTJGMkZENAotOjEwMEY2NTAwMzAzMDMxMzEzMjMyMzMzMzM0MzQzNTM1MzYzNjM3Mzc0NAotOjEwMEY3NTAwMzgzODM5MzkzQTNBM0IzQzNEM0UzRjQwNDE0MjQzNDQ5QgotOjEwMEY4NTAwNDU0NjQ3NDg0OTQ5NEE0QjRCNEM0RDRFNEY1MDUxNTJBNwotOjEwMEY5NTAwNTM1NDU1NTU1NjU2NTc1NzU4NUE1QjVENUU1RjYxNjJCNwotOjEwMEZBNTAwNjM2NDY1NjY2NzY4Njk2QTZCNkM2RDZGNzE3MjczNzQ4QgotOjEwMEZCNTAwNzU3Njc3Nzg3OTdBN0I3QzdFODAwMTM3MDEwMTM4MDBGOAotOjEwNEIyODAwRTQ5MDcyMzZGMEEzRjA5MDdGOTdFMDU0RkJGMEU0OTBBNQotOjEwNEIzODAwNzIzM0YwOTA3MjMyRjA5MDcyMDEwNEYwRTQ5MDcyMzNBNAotOjEwNEI0ODAwRjA5MDcyMzJGMDkwNzIwMTA0RjA5MDdGOTdFMDQ0MDQ4NAotOjAyNEI1ODAwRjAyMjQ5Ci06MTAzMjZGMDA5MDc2MThFMEZGNjQwNTcwNDI5MDc1QUJFMEI0MDExOUQ5Ci06MTAzMjdGMDA5MDcyMzc3NDAxRjBFNDkwODAyMEYwOTA4MDMxRjA5MERDCi06MTAzMjhGMDA4MDI4RjA5MDgwMzlGMDgwMjJFNDkwNzIzN0YwOTA3NUFBCi06MTAzMjlGMDBBREUwOTA3MjJCRjBFMDI0ODBGMEUwOTA4MDIwRjA5MDcxCi06MTAzMkFGMDA4MDMxRjA5MDgwMjhGMDkwODAzOUYwRUY2NDA2NjAwMjUyCi06MTAzMkJGMDA4MTk5OTA3MjM5NzQwNEYwOTA3MjM5RTBGRjI0RkU5MDc2Ci06MTAzMkNGMDA3MjA0RjBFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNUJGCi06MTAzMkRGMDA4M0UwNjQwMTcwNTQ5MDcyMzYwNEYwOTA3MjA0RTBGRjQyCi06MTAzMkVGMDAyNEZENjAyODI0RkU2MDI0MjQwMzI0RkI1MDA0NjAxQzZBCi06MTAzMkZGMDA4MThDNzQyMDJGRjU4MkU0MzQ4MEY1ODNFNEYwNzQyOEY4Ci06MTAzMzBGMDAyRkY1ODJFNDM0ODBGNTgzRTRGMDgxOEM5MDcyMDRFMDMxCi06MTAzMzFGMDBGRjI0MzBGNTgyRTQzNDgwRjU4M0U0RjA3NDM4MkZGNTIwCi06MTAzMzJGMDA4MkU0MzQ4MEY1ODNFNEYwODE4Q0U0OTA3MjM2RjA5MDdGCi06MTAzMzNGMDA3MjM5RTA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4MzkzCi06MTAzMzRGMDBFMEZGN0UwMDkwNzUwQ0VFRjBBM0VGRjA3MDA2OTA3MjI4Ci06MTAzMzVGMDAwMjc0M0JGMDkwNzUwQ0UwRkVBM0UwRkY2NDgwNEU3MEFBCi06MTAzMzZGMDAwNDkwNzIwMkYwRUY0RTcwMDI4MTM1RUY2NDgwNEU3MDYwCi06MTAzMzdGMDAwMjgxMzVFRkY4RTQ5MDc1MERGMEU4OTA3NTBDRjA5MDQwCi06MTAzMzhGMDA3MjM0RTA3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4MzQ5Ci06MTAzMzlGMDBFMEZGOTA3MjAyRjA5MDc1MERFMDJGRjA5MDc1MENFMDQ5Ci06MTAzM0FGMDAzNDAwRjBFMEZFQTNFMEZGRTRGQ0ZEN0JENjdBQTVGOTQ0Ci06MTAzM0JGMDBGOEQzMTIzNzk1NDAwQTkwNzUwQzc0QTVGMEEzNzRENjA0Ci06MTAzM0NGMDBGMDkwNzUwREUwMjQyQUYwOTA3NTBDRTAzNDVBRjBFMDdGCi06MTAzM0RGMDBGRUEzRTA3ODA1Q0VBMkU3MTNDRTEzRDhGOEZGOTA3NUMxCi06MTAzM0VGMDAwQ0VFRjBBM0VGRjA5MDcyMkNFRUYwQTNFRkYwRDM5NDZECi06MTAzM0ZGMDBEMkVFNjQ4MDk0ODI0MDBBOTA3MjJDNzQwMkYwQTM3NDBGCi06MTAzNDBGMDBEMkYwQzM5MDcyMkNFMDY0ODA5NDgwNTAwNEU0RjBBMzU3Ci06MTAzNDFGMDBGMDkwNzIyQ0UwRkVBM0UwMjQzQUY1ODJFRTM0NzJGNUMwCi06MTAzNDJGMDA4M0UwOTA3MjAyRjA5MDcyMDRFMEZGMjRGRDYwMkQyNDdGCi06MTAzNDNGMDBGRTYwMjkyNDAzMjRGQjUwMDQ2MDIxODA0MDkwNzIwMjE3Ci06MTAzNDRGMDBFMEZFNzQyMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQyOENCCi06MTAzNDVGMDAyRkY1ODJFNDM0ODBGNTgzRUVGMDgwMjE5MDcyMDJFMDQ0Ci06MTAzNDZGMDBGRjkwNzIwNEUwRkUyNDMwRjU4MkU0MzQ4MEY1ODNFRkEwCi06MTAzNDdGMDBGMDc0MzgyRUY1ODJFNDM0ODBGNTgzRUZGMDkwNzIzOUQyCi06MEIzNDhGMDBFMDA0RjBFMDY0MEE2MDAyNDFDNzIyODQKLToxMDM0OUEwMDkwNzYxOEUwRkZCNDA1MjM5MDcyMzdFMDcwMUQ5MDc1OUUKLToxMDM0QUEwMEFERTA5MDcyMkJGMEUwMjQ4MEYwRTA5MDgwMjBGMDkwNjQKLToxMDM0QkEwMDgwMzFGMDkwODAyOEYwOTA4MDM5RjBFRjY0MDY2MDAyNDUKLToxMDM0Q0EwMEMxOTE5MDcyMzZFMDYwMDJDMTkxOTA3NjQwRTA3MDMxMEQKLToxMDM0REEwMDkwNzIwMzc0MDNGMDkwNzIwM0UwRkY3NUYwMEFBNDI0NUIKLToxMDM0RUEwMEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3MjI5RTBGREVFRDgKLToxMDM0RkEwMDZENjAwRUVGQzM5NDBBNTAwODkwNzIwM0UwMDRGMDgwRTYKLToxMDM1MEEwMEQ1OTA3MjM5NzQwNEYwOTA3NjQwRTA3MDA4OTA3MjAzOTYKLToxMDM1MUEwMEUwOTA3MjM5RjA5MDcyMzlFMEZEMjRGRTkwNzIyQUYwNDAKLToxMDM1MkEwMEVENzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODNFMEZGNjUKLToxMDM1M0EwMDdFMDA5MDc1MENFRUYwQTNFRkYwNzAwNjkwNzIwMjc0QTQKLToxMDM1NEEwMDgwRjA5MDc1MENFMEZFQTNFMEZGNjQ4MDRFNzAwNDkwNUEKLToxMDM1NUEwMDcyMDJGMEVGNEU3MDAyQzExQkVGNjQ4MDRFNzAwMkMxMUUKLToxMDM1NkEwMDFCRUZGOEU0OTA3NTBERjBFODkwNzUwQ0YwRUQ3NUYwMkUKLToxMDM1N0EwMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODNFMEZGOTA3MjAyNjQKLToxMDM1OEEwMEYwOTA3NTBERTAyRkYwOTA3NTBDRTAzNDAwRjBFMEZFM0QKLToxMDM1OUEwMEEzRTBGRkU0RkNGRDdCRDY3QUE1RjlGOEQzMTIzNzk1QjAKLToxMDM1QUEwMDQwMEE5MDc1MEM3NEE1RjBBMzc0RDZGMDkwNzUwREUwREUKLToxMDM1QkEwMDI0MkFGMDkwNzUwQ0UwMzQ1QUYwRTBGRUEzRTA3ODA1NzYKLToxMDM1Q0EwMENFQTJFNzEzQ0UxM0Q4RjhGRjkwNzUwQ0VFRjBBM0VGNTYKLToxMDM1REEwMEYwOTA3MjJDRUVGMEEzRUZGMEQzOTREMkVFNjQ4MDk0QzQKLToxMDM1RUEwMDgyNDAwQTkwNzIyQzc0MDJGMEEzNzREMkYwQzM5MDcyRDMKLToxMDM1RkEwMDJDRTA2NDgwOTQ4MDUwMDRFNEYwQTNGMDkwNzIyQ0UwRjQKLToxMDM2MEEwMEZFQTNFMDI0M0FGNTgyRUUzNDcyRjU4M0UwOTA3MjAyNkEKLToxMDM2MUEwMEYwOTA3MjJBRTBGRjI0RkQ2MDJEMjRGRTYwMjkyNDAzMjUKLToxMDM2MkEwMDI0RkI1MDA0NjAyMTgwNDA5MDcyMDJFMEZFNzQyMDJGMzcKLToxMDM2M0EwMEY1ODJFNDM0ODBGNTgzRUVGMDc0MjgyRkY1ODJFNDM0QzEKLToxMDM2NEEwMDgwRjU4M0VFRjA4MDIxOTA3MjAyRTBGRjkwNzIyQUUwMEEKLToxMDM2NUEwMEZFMjQzMEY1ODJFNDM0ODBGNTgzRUZGMDc0MzgyRUY1RDkKLToxMDM2NkEwMDgyRTQzNDgwRjU4M0VGRjA5MDc2NDBFMDcwMDY5MDcyNDEKLToxMDM2N0EwMDM5NzQwQUYwOTA3MjM5RTAwNEYwRTBDMzk0MEE1MDAyRjcKLTowODM2OEEwMEExMTFFNDkwNzY0MEYwMjI0QQotOjA0NEUwQjAwMTIxNzMwMjIyOAotOjEwNDlBRTAwOTA3NjQ2NzQ4MEYwRTRBM0YwQTNGMEEzRjBBM0YwQTNGNgotOjEwNDlCRTAwRjBBM0YwQTNGMEEzRjBBMzc0ODBGMEU0QTNGMEEzRjBBRgotOjEwNDlDRTAwQTNGMEEzRjBBM0YwQTNGMEEzNzQ0MEYwRTRBM0YwQTMyQwotOjEwNDlERTAwNzQ0MEYwRTRBM0YwQTNGMEEzRjBBM0YwQTNGMEEzRjBDRgotOjEwNDlFRTAwQTM3NDQwRjBFNEEzRjBBMzc0NDBGMEU0QTNGMEEzRjBBQQotOjA1NDlGRTAwQTNGMEEzRjAyMjZDCi06MTAwRkM2MDBFNEZGNzQ0NjJGRjU4MkU0MzQ3NkY1ODNFMEZFNzQyMDYwCi06MTAwRkQ2MDAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0NEUyRkY1ODJFNDJCCi06MTAwRkU2MDAzNDc2RjU4M0UwRkU3NDMwMkZGNTgyRTQzNDgwRjU4M0ExCi06MDYwRkY2MDBFRUYwMEZCRjA4Q0M3NQotOjAxMEZGQzAwMjJEMgotOjEwNEFGMTAwRTRGRjc0NTYyRkY1ODJFNDM0NzZGNTgzRTBGRTc0MjhFMgotOjEwNEIwMTAwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDVFMkZGNTgyRTRCNAotOjEwNEIxMTAwMzQ3NkY1ODNFMEZFNzQzODJGRjU4MkU0MzQ4MEY1ODMzMgotOjA2NEIyMTAwRUVGMDBGQkYwOENDMEUKLTowMTRCMjcwMDIyNkIKLToxMDE3MzAwMEMwODJDMDgzQzBFMEU4QzBFMDc4NzhFODE0Rjg3MEZCQUQKLTowQTE3NDAwMEQwRTBGOEQwRTBEMDgzRDA4MjIyODAKLTowMzAwNDMwMDAyNDkwMDZGCi06MTA0OTAwMDAwMjJGRTcwMDAyM0Q0NzAwMDI0REI0MDAwMjRDNDMwMDc1Ci06MTA0OTEwMDAwMjRCRTkwMDAyMkZGRjAwMDI0QzVCMDAwMjRDMEEwMDMwCi06MTA0OTIwMDAwMjRDNzIwMDAyNEI1QTAwMDI0Qzg5MDAwMjRDQTAwMDVCCi06MTA0OTMwMDAwMjRDQjcwMDAyNENDRTAwMDI0Q0U1MDAwMjRDRkMwMEQ5Ci06MTA0OTQwMDAwMjREMTMwMDAyNEQyQTAwMDI0RDQxMDAwMjRENTgwMDU1Ci06MDg0OTUwMDAwMjRENkYwMDAyNEQ4NjAwQ0MKLToxMDFCNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUKLToxMDFCNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODUKLToxMDFCNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKLToxMDFCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKLToxMDFCODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTUKLToxMDFCOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDUKLToxMDFCQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzUKLToxMDFCQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKLToxMDFCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTUKLToxMDFCRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUKLToxMDFCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjUKLToxMDFCRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKLToxMDFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKLToxMDFDMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzQKLToxMDFDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjQKLToxMDFDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKLToxMDFDNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTQKLToxMDFDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQKLToxMDFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKLToxMDFDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKLToxMDFDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKLToxMDFDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQKLToxMDFDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKLToxMDFDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKLToxMDFDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKLToxMDFDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKLToxMDFDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKLToxMDFDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKLToxMDFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKLToxMDFEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKLToxMDFEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKLToxMDFEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKLToxMDFENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKLToxMDFENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKLToxMDFENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKLToxMDFENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKLToxMDFEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKLToxMDFEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKLToxMDFEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKLToxMDFEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKLToxMDFEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKLToxMDFERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKLToxMDFERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKLToxMDFERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKLToxMDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKLToxMDFFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzIKLToxMDFFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjIKLToxMDFFMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKLToxMDFFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKLToxMDFFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKLToxMDFFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKLToxMDFFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKLToxMDFFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKLToxMDFFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKLToxMDFFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKLTowRTFFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAotOjEwMUVCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAotOjEwMUVDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAotOjEwMUVERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAotOjEwMUVFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAotOjEwMUVGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAotOjEwMUYwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMwotOjEwMUYxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMwotOjEwMUYyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMwotOjAyMUYzRTAwMDAwMEExCi06MTAxRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCi06MTAxRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCi06MTAxRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCi06MTAxRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCi06MTAxRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCi06MTAxRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCi06MTAxRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCi06MTAxRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCi06MTAxRkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCi06MTAxRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCi06MTAxRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCi06MTAxRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCi06MTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCi06MTAyMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCi06MTAyMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCi06MTAyMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCi06MTAyMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwCi06MTAyMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCi06MTAyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCi06MTAyMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCi06MTAyMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCi06MTAyMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCi06MTAyMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCi06MTAyMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCi06MTAyMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCi06MTAyMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi06MTAyMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwCi06MTAyMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCi06MTAyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCi06MTAyMTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJGCi06MTAyMTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFGCi06MTAyMTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlGCi06MTAyMTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhGCi06MTAyMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdGCi06MTAyMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCi06MTAyMTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCi06MTAyMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCi06MTAyMTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCi06MTAyMUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCi06MTAyMUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCi06MTAyMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCi06MTAyMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCi06MTAyMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCi06MTAyMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCi06MTAyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCi06MTAyMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCi06MTAyMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCi06MTAyMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCi06MTAyMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCi06MTAyMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCi06MTAyMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCi06MTAyMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCi06MTAyMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCi06MTAyMjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCi06MTAyMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCi06MTAyMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCi06MTAyMkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCi06MTAyMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCi06MTAyMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCi06MTAyMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCi06MTAyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECi06MTAyMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECi06MTAyMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECi06MTAyMzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECi06MTAyMzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECi06MTAyMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECi06MTAyMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECi06MEUyMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKLToxMDIzN0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKLToxMDIzOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKLToxMDIzOUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKLToxMDIzQUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKLToxMDIzQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKLToxMDIzQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKLToxMDIzREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKLToxMDIzRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKLToxMDIzRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKLToxMDI0MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKLToxMDI0MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKLToxMDI0MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKLToxMDI0M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKLToxMDI0NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKLToxMDI0NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKLToxMDI0NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKLToxMDI0N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKLToxMDI0OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKLToxMDI0OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKLToxMDI0QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKLToxMDI0QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKLToxMDI0Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKLToxMDI0REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKLToxMDI0RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKLToxMDI0RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKLToxMDI1MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKLToxMDI1MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKLToxMDI1MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKLToxMDI1M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKLToxMDI1NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKLToxMDI1NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKLToxMDI1NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKLToxMDI1N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKLToxMDI1OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKLToxMDI1OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKLToxMDI1QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKLToxMDI1QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKLToxMDI1Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKLToxMDI1REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKLToxMDI1RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKLToxMDI1RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKLToxMDI2MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkMKLToxMDI2MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUMKLToxMDI2MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUMKLToxMDI2M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMKLToxMDI2NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0MKLToxMDI2NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKLToxMDI2NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUMKLToxMDI2N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEMKLToxMDI2OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0MKLToxMDI2OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKLToxMDI2QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUMKLToxMDI2QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMKLToxMDI2Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkMKLToxMDI2REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKLTowRTI2RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQotOjEwMjZGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQotOjEwMjcwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAotOjEwMjcxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAotOjEwMjcyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAotOjEwMjczQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAotOjEwMjc0QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAotOjEwMjc1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAotOjEwMjc2QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAotOjEwMjc3QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAotOjEwMjc4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAotOjEwMjc5QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAotOjEwMjdBQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAotOjEwMjdCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAotOjEwMjdDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAotOjEwMjdEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAotOjEwMjdFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAotOjA1MjdGQzAwMDAwMDAwMDAyMkI2Ci06MDcxNzRBMDA5MDdGQzU3NDAyRjAyMjNDCi06MTAxNzUxMDA5MDdFQzBFMDkwNzY0NUYwOTA3RUMxRTA5MDc2NDRGMEI2Ci06MTAxNzYxMDA5MDdFQzJFMDkwNzY0M0YwQjQwMDAzMDIxNzc4OTA3NjQxCi06MTAxNzcxMDAxOTc0MDNGMDAyMTc4RTkwNzY0NEUwQjRCQjA5OTA3Njk5Ci06MTAxNzgxMDAxOTc0MDJGMDAyMTc4RTkwNzYxOTc0MDFGMDkwNzY0MjY2Ci06MDMxNzkxMDBFNEYwMjI1RgotOjAzMDAwMDAwMDI0NkI5RkMKLTowQzQ2QjkwMDc4N0ZFNEY2RDhGRDc1ODEzODAyNDcwMEQ4Ci06MTAzNjkyMDBCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMjM2Ci06MDkzNkEyMDBFMzIyODk4MjhBODNFNDkzMjI2OQotOjEwMzZBQjAwQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTBENAotOjEwMzZCQjAwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjIxRQotOjBEMzZDQjAwRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjIzOAotOjEwMzZEODAwQzJENUVDMzBFNzA5QjJENUU0QzM5REZERTQ5Q0ZDRUUwRAotOjEwMzZFODAwMzBFNzE1QjJENUU0QzM5RkZGRTQ5RUZFMTIzODFGQzMyRQotOjEwMzZGODAwRTQ5REZERTQ5Q0ZDODAwMzEyMzgxRjMwRDUwN0MzRTQyOQotOjA2MzcwODAwOUZGRkU0OUVGRTIyN0IKLToxMDM3MEUwMEJCMDExMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTBGNUYwRjkKLToxMDM3MUUwMEEzRTAyMjUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFRDYKLToxMDM3MkUwMDBBRTkyNTgyRjhFMkY1RjAwOEUyMjJFNTgzMkFGNTgzMUMKLTowODM3M0UwMEU5OTNGNUYwQTNFOTkzMjJFMQotOjEwMzc0NjAwRTg4RkYwQTRDQzhCRjBBNDJDRkNFOThFRjBBNDJDRkMyMgotOjEwMzc1NjAwOEFGMEVEQTQyQ0ZDRUE4RUYwQTRDREE4RjA4QkYwQTRBMAotOjEwMzc2NjAwMkRDQzM4MjVGMEZERTk4RkYwQTQyQ0NEMzVGMEZDRUJGRgotOjEwMzc3NjAwOEVGMEE0RkVBOUYwRUI4RkYwQTRDRkM1RjAyRUNEMzlDNAotOjBGMzc4NjAwRkVFNDNDRkNFQUE0MkRDRTM1RjBGREU0M0NGQzIyMzEKLToxMDM3OTUwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEVDNjQ4MEM4QUIKLTowNjM3QTUwMDY0ODA5ODQ1RjAyMjRCCi06MTAzN0FCMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMDc0Ci06MDEzN0JCMDAyMkVCCi06MEMzN0JDMDBFQ0YwQTNFREYwQTNFRUYwQTNFRkYwMjI4MAotOjEwMzdDODAwQTg4Mjg1ODNGMEQwODNEMDgyMTIzN0RGMTIzN0RGMTJDOAotOjEwMzdEODAwMzdERjEyMzdERkU0NzNFNDkzQTNDNTgzQzVGMEM1ODNFRAotOjEwMzdFODAwQzhDNTgyQzhGMEEzQzU4M0M1RjBDNTgzQzhDNTgyQzg0QgotOjAxMzdGODAwMjJBRQotOjEwMzdGOTAwRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM1RgotOjEwMzgwOTAwOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjA3MgotOjA2MzgxOTAwRUZBM0EzQTM4MERGNzIKLToxMDQ2QzUwMDAyMDdBNkU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyNUUKLToxMDQ2RDUwMDA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzRjYKLToxMDQ2RTUwMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGQzUKLToxMDQ2RjUwMEU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDBDOEZFNDdFQkEKLToxMDQ3MDUwMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQjkKLToxMDQ3MTUwMEEzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzODAKLToxMDQ3MjUwMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBQUIKLToxMDQ3MzUwMEYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFNjMKLTowMTBGQzUwMDAwMkIKLToxMDM4MUYwMEJDMDAwQkJFMDAyOUVGOERGMDg0RkZBREYwMjJFNENDOEQKLToxMDM4MkYwMEY4NzVGMDA4RUYyRkZGRUUzM0ZFRUMzM0ZDRUU5REVDNTYKLToxMDM4M0YwMDk4NDAwNUZDRUU5REZFMEZENUYwRTlFNENFRkQyMkVEOUMKLToxMDM4NEYwMEY4RjVGMEVFODQyMEQyMUNGRUFERjA3NUYwMDhFRjJGRTYKLToxMDM4NUYwMEZGRUQzM0ZENDAwNzk4NTAwNkQ1RjBGMjIyQzM5OEZERDcKLTowNTM4NkYwMDBGRDVGMEVBMjI3NAotOjAwMDAwMDAxRkYKLS8qCi1WRVJTSU9OPTEuMDQuMDYyCi1EQVRFPTE2LjEwLjIwMDIgIAotKi8KLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGdfZW1pNjJfbG9hZGVyW10gPSB7Ci0gICAzLDB4MDAwMCwwLHsweDAyLDB4MDIsMHg4N30sCi0gICAzLDB4MDA0MywwLHsweDAyLDB4MDQsMHgwMH0sCi0gIDE2LDB4MDEwMCwwLHsweGU0LDB4ZmYsMHhmZSwweGMyLDB4MjAsMHhkMiwweGU4LDB4NDMsMHhkOCwweDIwLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHhmZiwweGYwfSwKLSAgMTYsMHgwMTEwLDAsezB4OTAsMHg3ZiwweGE5LDB4ZjAsMHg5MCwweDdmLDB4YWEsMHhmMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHg5NSwweDc0LDB4YzB9LAotICAxNiwweDAxMjAsMCx7MHhmMCwweDkwLDB4N2YsMHg5ZSwweGYwLDB4OTAsMHg3ZiwweDk4LDB4ZjAsMHhlNCwweDkwLDB4N2YsMHg5NCwweGYwLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MDEzMCwwLHsweDlkLDB4NzQsMHhmZiwweGYwLDB4OTAsMHg3ZiwweDk3LDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweDkzLDB4ZTAsMHg1NCwweGZjfSwKLSAgMTYsMHgwMTQwLDAsezB4ZjAsMHg5MCwweDdmLDB4OWMsMHg3NCwweDAzLDB4ZjAsMHhlNCwweDkwLDB4N2YsMHg5NiwweGYwLDB4OTAsMHg3ZiwweGFmLDB4ZTB9LAotICAxNiwweDAxNTAsMCx7MHg0NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YWUsMHhlMCwweDQ0LDB4MGQsMHhmMCwweGQyLDB4YWYsMHgwZiwweGJmLDB4MDAsMHgwMX0sCi0gIDE2LDB4MDE2MCwwLHsweDBlLDB4YmUsMHgwNywweGY4LDB4YmYsMHgwOCwweGY1LDB4MjAsMHgyMCwweDQyLDB4NzUsMHgxNCwweDAwLDB4NzUsMHgxMywweDAwfSwKLSAgMTYsMHgwMTcwLDAsezB4NzUsMHgxMiwweDAwLDB4NzUsMHgxMSwweDAwLDB4N2YsMHg0OCwweDdlLDB4OTIsMHg3ZCwweDAwLDB4N2MsMHgwMCwweGFiLDB4MTR9LAotICAxNiwweDAxODAsMCx7MHhhYSwweDEzLDB4YTksMHgxMiwweGE4LDB4MTEsMHhjMywweDEyLDB4MDMsMHhlZCwweDUwLDB4ZGIsMHgyMCwweDIwLDB4ZDgsMHg3YX0sCi0gIDE2LDB4MDE5MCwwLHsweDAwLDB4NzksMHgwMCwweDc4LDB4MDAsMHhlNSwweDE0LDB4MjQsMHgwMSwweGY1LDB4MTQsMHhlYSwweDM1LDB4MTMsMHhmNSwweDEzfSwKLSAgMTYsMHgwMWEwLDAsezB4ZTksMHgzNSwweDEyLDB4ZjUsMHgxMiwweGU4LDB4MzUsMHgxMSwweGY1LDB4MTEsMHg4MCwweGNhLDB4MzAsMHgyMCwweGZkLDB4MTJ9LAotICAxNiwweDAxYjAsMCx7MHgwMSwweGM3LDB4NTAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH0sCi0gICA2LDB4MDFjMCwwLHsweDAyLDB4ZjAsMHhjMiwweDIwLDB4ODAsMHhlNn0sCi0gICAxLDB4MDFjNiwwLHsweDIyfSwKLSAgMTYsMHgwMWM3LDAsezB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDViLDB4NjAsMHg2MCwweDI0LDB4MDIsMHg2MCwweDAzLDB4MDIsMHgwMiwweDg1LDB4OTB9LAotICAxNiwweDAxZDcsMCx7MHg3ZiwweGVhLDB4ZTAsMHg3NSwweDBhLDB4MDAsMHhmNSwweDBiLDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MGEsMHg5MH0sCi0gIDE2LDB4MDFlNywwLHsweDdmLDB4ZWUsMHhlMCwweDc1LDB4MTUsMHgwMCwweGY1LDB4MTYsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgxNSwweGU1fSwKLSAgMTYsMHgwMWY3LDAsezB4MTYsMHg0NSwweDE1LDB4NzAsMHgwMywweDAyLDB4MDIsMHg4NSwweGU0LDB4OTAsMHg3ZiwweGM1LDB4ZjAsMHg5MCwweDdmLDB4YjR9LAotICAxNiwweDAyMDcsMCx7MHhlMCwweDIwLDB4ZTMsMHhmOSwweDkwLDB4N2YsMHhjNSwweGUwLDB4ZjUsMHgwYywweDEyLDB4MDMsMHgxMywweGFmLDB4MGMsMHg3ZX0sCi0gIDE2LDB4MDIxNywwLHsweDAwLDB4ZWYsMHgyNSwweDBiLDB4ZjUsMHgwYiwweGVlLDB4MzUsMHgwYSwweGY1LDB4MGEsMHhjMywweGU1LDB4MTYsMHg5ZiwweGY1fSwKLSAgMTYsMHgwMjI3LDAsezB4MTYsMHhlNSwweDE1LDB4OWUsMHhmNSwweDE1LDB4ODAsMHhjNywweDkwLDB4N2YsMHhlYSwweGUwLDB4NzUsMHgwYSwweDAwLDB4ZjV9LAotICAxNiwweDAyMzcsMCx7MHgwYiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDBhLDB4OTAsMHg3ZiwweGVlLDB4ZTAsMHg3NSwweDE1LDB4MDAsMHhmNX0sCi0gIDE2LDB4MDI0NywwLHsweDE2LDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MTUsMHhlNSwweDE2LDB4NDUsMHgxNSwweDYwLDB4MzAsMHhlNCwweDkwfSwKLSAgMTYsMHgwMjU3LDAsezB4N2YsMHhjNSwweGYwLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHgyMCwweGUzLDB4ZjksMHg5MCwweDdmLDB4YzUsMHhlMCwweGY1LDB4MGN9LAotICAxNiwweDAyNjcsMCx7MHgxMiwweDAzLDB4MmIsMHhhZiwweDBjLDB4N2UsMHgwMCwweGVmLDB4MjUsMHgwYiwweGY1LDB4MGIsMHhlZSwweDM1LDB4MGEsMHhmNX0sCi0gIDE1LDB4MDI3NywwLHsweDBhLDB4YzMsMHhlNSwweDE2LDB4OWYsMHhmNSwweDE2LDB4ZTUsMHgxNSwweDllLDB4ZjUsMHgxNSwweDgwLDB4Y2EsMHhjM30sCi0gICAxLDB4MDI4NiwwLHsweDIyfSwKLSAgMTIsMHgwMjg3LDAsezB4NzgsMHg3ZiwweGU0LDB4ZjYsMHhkOCwweGZkLDB4NzUsMHg4MSwweDI5LDB4MDIsMHgwMiwweGNlfSwKLSAgMTYsMHgwMjkzLDAsezB4MDIsMHgwMSwweDAwLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHg0MCwweDAzLDB4ZjYsMHg4MCwweDAxLDB4ZjJ9LAotICAxNiwweDAyYTMsMCx7MHgwOCwweGRmLDB4ZjQsMHg4MCwweDI5LDB4ZTQsMHg5MywweGEzLDB4ZjgsMHg1NCwweDA3LDB4MjQsMHgwYywweGM4LDB4YzMsMHgzM30sCi0gIDE2LDB4MDJiMywwLHsweGM0LDB4NTQsMHgwZiwweDQ0LDB4MjAsMHhjOCwweDgzLDB4NDAsMHgwNCwweGY0LDB4NTYsMHg4MCwweDAxLDB4NDYsMHhmNiwweGRmfSwKLSAgMTYsMHgwMmMzLDAsezB4ZTQsMHg4MCwweDBiLDB4MDEsMHgwMiwweDA0LDB4MDgsMHgxMCwweDIwLDB4NDAsMHg4MCwweDkwLDB4MDQsMHg2ZSwweGU0LDB4N2V9LAotICAxNiwweDAyZDMsMCx7MHgwMSwweDkzLDB4NjAsMHhiYywweGEzLDB4ZmYsMHg1NCwweDNmLDB4MzAsMHhlNSwweDA5LDB4NTQsMHgxZiwweGZlLDB4ZTQsMHg5M30sCi0gIDE2LDB4MDJlMywwLHsweGEzLDB4NjAsMHgwMSwweDBlLDB4Y2YsMHg1NCwweGMwLDB4MjUsMHhlMCwweDYwLDB4YTgsMHg0MCwweGI4LDB4ZTQsMHg5MywweGEzfSwKLSAgMTYsMHgwMmYzLDAsezB4ZmEsMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2F9LAotICAxNiwweDAzMDMsMCx7MHhmMCwweGEzLDB4YzgsMHhjNSwweDgyLDB4YzgsMHhjYSwweGM1LDB4ODMsMHhjYSwweGRmLDB4ZTksMHhkZSwweGU3LDB4ODAsMHhiZX0sCi0gIDE2LDB4MDMxMywwLHsweGU1LDB4MGMsMHhmZiwweGU1LDB4MGIsMHhmNSwweDgyLDB4ZTUsMHgwYSwweGY1LDB4ODMsMHg3NSwweDkyLDB4N2UsMHg3NCwweGMwfSwKLSAgIDgsMHgwMzIzLDAsezB4ZjgsMHhlMiwweDA4LDB4ZjAsMHhhMywweGRmLDB4ZmEsMHgyMn0sCi0gIDE2LDB4MDMyYiwwLHsweDkwLDB4N2YsMHg5NiwweDg1LDB4ODMsMHg5MiwweGE4LDB4ODIsMHg3OSwweDAyLDB4OTAsMHgwMCwweDAwLDB4ZTAsMHhiNCwweDAwfSwKLSAgMTYsMHgwMzNiLDAsezB4MGQsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHhlMCwweDU0LDB4N2YsMHhmMCwweDQ0LDB4ODAsMHhmMCwweGU1LDB4MGN9LAotICAxNiwweDAzNGIsMCx7MHhmZiwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZjUsMHgyOCwweGU0LDB4YTIsMHg0NywweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMn0sCi0gIDE2LDB4MDM1YiwwLHsweDQ2LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDUsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0NCwweDMzfSwKLSAgMTYsMHgwMzZiLDAsezB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQzLDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDIsMHgzMywweGYyLDB4Njl9LAotICAxNiwweDAzN2IsMCx7MHhmMiwweGU0LDB4YTIsMHg0MSwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQwLDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhhM30sCi0gICAzLDB4MDM4YiwwLHsweGRmLDB4YzIsMHgyMn0sCi0gIDE2LDB4MDM4ZSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDkwLDB4N2YsMHhjNCwweGU0LDB4ZjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmfSwKLSAgMTEsMHgwMzllLDAsezB4YWIsMHg3NCwweDA0LDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4MDNhOSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGQyLDB4MjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAxfSwKLSAgIDgsMHgwM2I5LDAsezB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4MDNjMSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDIsMHhmMCwweGQwfSwKLSAgIDYsMHgwM2QxLDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHgwM2Q3LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgxMCwweGYwLDB4ZDB9LAotICAgNiwweDAzZTcsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDAzZWQsMCx7MHhlYiwweDlmLDB4ZjUsMHhmMCwweGVhLDB4OWUsMHg0MiwweGYwLDB4ZTksMHg5ZCwweDQyLDB4ZjAsMHhlOCwweDljLDB4NDUsMHhmMH0sCi0gICAxLDB4MDNmZCwwLHsweDIyfSwKLSAgIDEsMHgwM2ZlLDAsezB4MzJ9LAotICAgMSwweDAzZmYsMCx7MHgzMn0sCi0gIDE2LDB4MDQwMCwwLHsweDAyLDB4MDMsMHhhOSwweDAwLDB4MDIsMHgwMywweGMxLDB4MDAsMHgwMiwweDAzLDB4OGUsMHgwMCwweDAyLDB4MDQsMHg1OCwweDAwfSwKLSAgMTYsMHgwNDEwLDAsezB4MDIsMHgwMywweGQ3LDB4MDAsMHgwMiwweDAzLDB4ZmUsMHgwMCwweDAyLDB4MDMsMHhmZiwweDAwLDB4MDIsMHgwNCwweDg0LDB4MDB9LAotICAxNiwweDA0MjAsMCx7MHgwMiwweDA0LDB4ODUsMHgwMCwweDAyLDB4MDQsMHg4NiwweDAwLDB4MDIsMHgwNCwweDg3LDB4MDAsMHgwMiwweDA0LDB4ODgsMHgwMH0sCi0gIDE2LDB4MDQzMCwwLHsweDAyLDB4MDQsMHg4OSwweDAwLDB4MDIsMHgwNCwweDhhLDB4MDAsMHgwMiwweDA0LDB4OGIsMHgwMCwweDAyLDB4MDQsMHg4YywweDAwfSwKLSAgMTYsMHgwNDQwLDAsezB4MDIsMHgwNCwweDhkLDB4MDAsMHgwMiwweDA0LDB4OGUsMHgwMCwweDAyLDB4MDQsMHg4ZiwweDAwLDB4MDIsMHgwNCwweDkwLDB4MDB9LAotICAgOCwweDA0NTAsMCx7MHgwMiwweDA0LDB4OTEsMHgwMCwweDAyLDB4MDQsMHg5MiwweDAwfSwKLSAgMTYsMHgwNDU4LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwOCwweGYwLDB4ZDB9LAotICAgNiwweDA0NjgsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDA0NmUsMCx7MHgwMiwweDBhLDB4MDAsMHgwZiwweDAxLDB4MGMsMHgxMSwweDA0LDB4MGQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQxLDB4MDAsMHgwMH0sCi0gICAxLDB4MDQ3ZSwwLHsweDAwfSwKLSAgIDQsMHgwNDdmLDAsezB4MDIsMHgxNywweDAwLDB4MDB9LAotICAgMSwweDA0ODMsMCx7MHgwMH0sCi0gICAxLDB4MDQ4NCwwLHsweDMyfSwKLSAgIDEsMHgwNDg1LDAsezB4MzJ9LAotICAgMSwweDA0ODYsMCx7MHgzMn0sCi0gICAxLDB4MDQ4NywwLHsweDMyfSwKLSAgIDEsMHgwNDg4LDAsezB4MzJ9LAotICAgMSwweDA0ODksMCx7MHgzMn0sCi0gICAxLDB4MDQ4YSwwLHsweDMyfSwKLSAgIDEsMHgwNDhiLDAsezB4MzJ9LAotICAgMSwweDA0OGMsMCx7MHgzMn0sCi0gICAxLDB4MDQ4ZCwwLHsweDMyfSwKLSAgIDEsMHgwNDhlLDAsezB4MzJ9LAotICAgMSwweDA0OGYsMCx7MHgzMn0sCi0gICAxLDB4MDQ5MCwwLHsweDMyfSwKLSAgIDEsMHgwNDkxLDAsezB4MzJ9LAotICAgMSwweDA0OTIsMCx7MHgzMn0sCi0gIDE2LDB4MTEwMCwwLHsweDEyLDB4MDEsMHgxMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg2YSwweDA4LDB4MDEsMHgwMSwweDAwLDB4MDEsMHgwMSwweDAyfSwKLSAgMTYsMHgxMTEwLDAsezB4MDAsMHgwMSwweDA5LDB4MDIsMHgyMCwweDAwLDB4MDEsMHgwMSwweDAzLDB4YTAsMHgwMCwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDJ9LAotICAxNiwweDExMjAsMCx7MHhmZiwweDAwLDB4MDAsMHgwNCwweDA3LDB4MDUsMHg4MiwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDAyLDB4MDIsMHg0MH0sCi0gIDE2LDB4MTEzMCwwLHsweDAwLDB4MDAsMHgwNCwweDAzLDB4MDksMHgwNCwweDI2LDB4MDMsMHg0MSwweDAwLDB4NmUsMHgwMCwweDYzLDB4MDAsMHg2OCwweDAwfSwKLSAgMTYsMHgxMTQwLDAsezB4NmYsMHgwMCwweDcyLDB4MDAsMHgyMCwweDAwLDB4NDMsMHgwMCwweDY4LDB4MDAsMHg2OSwweDAwLDB4NzAsMHgwMCwweDczLDB4MDB9LAotICAxNiwweDExNTAsMCx7MHgyYywweDAwLDB4MjAsMHgwMCwweDQ5LDB4MDAsMHg2ZSwweDAwLDB4NjMsMHgwMCwweDJlLDB4MDAsMHgyOCwweDAzLDB4NDYsMHgwMH0sCi0gIDE2LDB4MTE2MCwwLHsweDY5LDB4MDAsMHg3MiwweDAwLDB4NmQsMHgwMCwweDc3LDB4MDAsMHg2MSwweDAwLDB4NzIsMHgwMCwweDY1LDB4MDAsMHgyMCwweDAwfSwKLSAgMTYsMHgxMTcwLDAsezB4NDYsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NmQsMHgwMCwweDY1LDB4MDAsMHg1NywweDAwLDB4NmYsMHgwMCwweDcyLDB4MDB9LAotICAxNiwweDExODAsMCx7MHg2YiwweDAwLDB4NzMsMHgwMCwweDJhLDB4MDMsMHg0MywweDAwLDB4NmYsMHgwMCwweDZlLDB4MDAsMHg2NiwweDAwLDB4NjksMHgwMH0sCi0gIDE2LDB4MTE5MCwwLHsweDY3LDB4MDAsMHg3NSwweDAwLDB4NzIsMHgwMCwweDYxLDB4MDAsMHg3NCwweDAwLDB4NjksMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwfSwKLSAgMTYsMHgxMWEwLDAsezB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMCwweDIyLDB4MDN9LAotICAxNiwweDExYjAsMCx7MHg0OSwweDAwLDB4NmUsMHgwMCwweDc0LDB4MDAsMHg2NSwweDAwLDB4NzIsMHgwMCwweDY2LDB4MDAsMHg2MSwweDAwLDB4NjMsMHgwMH0sCi0gIDE2LDB4MTFjMCwwLHsweDY1LDB4MDAsMHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwLDB4NjksMHgwMCwweDZlLDB4MDAsMHg2NywweDAwfSwKLSAgIDIsMHgxMWQwLDAsezB4MDAsMHgwMH0sCi0gICAwLDB4MDAwMCwxLHswfQotfTsKLS8qIFNvdXJjZTogRU1JTE9BRC5IRVggCi06MTAwNDZFMDAwMjBBMDAwRjAxMEMxMTA0MEQwMDAwMDAwMDQxMDAwMEYzCi06MDEwNDdFMDAwMDdECi06MTAwMUM3MDA5MDdGRTlFMDI0NUI2MDYwMjQwMjYwMDMwMjAyODU5MDZGCi06MTAwMUQ3MDA3RkVBRTA3NTBBMDBGNTBCQTNFMEZFRTRFRTQyMEE5MDIxCi06MTAwMUU3MDA3RkVFRTA3NTE1MDBGNTE2QTNFMEZFRTRFRTQyMTVFNTk3Ci06MTAwMUY3MDAxNjQ1MTU3MDAzMDIwMjg1RTQ5MDdGQzVGMDkwN0ZCNDIxCi06MTAwMjA3MDBFMDIwRTNGOTkwN0ZDNUUwRjUwQzEyMDMxM0FGMEM3RUY1Ci06MTAwMjE3MDAwMEVGMjUwQkY1MEJFRTM1MEFGNTBBQzNFNTE2OUZGNTNBCi06MTAwMjI3MDAxNkU1MTU5RUY1MTU4MEM3OTA3RkVBRTA3NTBBMDBGNTdCCi06MTAwMjM3MDAwQkEzRTBGRUU0RUU0MjBBOTA3RkVFRTA3NTE1MDBGNUIxCi06MTAwMjQ3MDAxNkEzRTBGRUU0RUU0MjE1RTUxNjQ1MTU2MDMwRTQ5MDhFCi06MTAwMjU3MDA3RkM1RjA5MDdGQjRFMDIwRTNGOTkwN0ZDNUUwRjUwQzBGCi06MTAwMjY3MDAxMjAzMkJBRjBDN0UwMEVGMjUwQkY1MEJFRTM1MEFGNUNECi06MEYwMjc3MDAwQUMzRTUxNjlGRjUxNkU1MTU5RUY1MTU4MENBQzM1NwotOjAxMDI4NjAwMjI1NQotOjEwMDNBOTAwQzBFMEMwODNDMDgyRDIyMDUzOTFFRjkwN0ZBQjc0MDEyQgotOjA4MDNCOTAwRjBEMDgyRDA4M0QwRTAzMkM1Ci06MTAwMzhFMDBDMEUwQzA4M0MwODI5MDdGQzRFNEYwNTM5MUVGOTA3RkIxCi06MEIwMzlFMDBBQjc0MDRGMEQwODJEMDgzRDBFMDMyQkEKLToxMDAzQzEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDJGMEQwNDQKLTowNjAzRDEwMDgyRDA4M0QwRTAzMjZGCi06MTAwM0Q3MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDEwRjBEMDIwCi06MDYwM0U3MDA4MkQwODNEMEUwMzI1OQotOjAxMDNGRTAwMzJDQwotOjEwMDQ1ODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwOEYwRDBBNgotOjA2MDQ2ODAwODJEMDgzRDBFMDMyRDcKLTowMTAzRkYwMDMyQ0IKLTowMTA0ODQwMDMyNDUKLTowMTA0ODUwMDMyNDQKLTowMTA0ODYwMDMyNDMKLTowMTA0ODcwMDMyNDIKLTowMTA0ODgwMDMyNDEKLTowMTA0ODkwMDMyNDAKLTowMTA0OEEwMDMyM0YKLTowMTA0OEIwMDMyM0UKLTowMTA0OEMwMDMyM0QKLTowMTA0OEQwMDMyM0MKLTowMTA0OEUwMDMyM0IKLTowMTA0OEYwMDMyM0EKLTowMTA0OTAwMDMyMzkKLTowMTA0OTEwMDMyMzgKLTowMTA0OTIwMDMyMzcKLTowNDA0N0YwMDAyMTcwMDAwNjAKLToxMDAxMDAwMEU0RkZGRUMyMjBEMkU4NDNEODIwOTA3RkFCNzRGRkYwMUEKLToxMDAxMTAwMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGOTU3NEMwRTMKLToxMDAxMjAwMEYwOTA3RjlFRjA5MDdGOThGMEU0OTA3Rjk0RjA5MDdGMjUKLToxMDAxMzAwMDlENzRGRkYwOTA3Rjk3NzRBMEYwOTA3RjkzRTA1NEZDNDMKLToxMDAxNDAwMEYwOTA3RjlDNzQwM0YwRTQ5MDdGOTZGMDkwN0ZBRkUwOTYKLToxMDAxNTAwMDQ0MDFGMDkwN0ZBRUUwNDQwREYwRDJBRjBGQkYwMDAxM0MKLToxMDAxNjAwMDBFQkUwN0Y4QkYwOEY1MjAyMDQyNzUxNDAwNzUxMzAwNzUKLToxMDAxNzAwMDc1MTIwMDc1MTEwMDdGNDg3RTkyN0QwMDdDMDBBQjE0RTMKLToxMDAxODAwMEFBMTNBOTEyQTgxMUMzMTIwM0VENTBEQjIwMjBEODdBQkMKLToxMDAxOTAwMDAwNzkwMDc4MDBFNTE0MjQwMUY1MTRFQTM1MTNGNTEzMEQKLToxMDAxQTAwMEU5MzUxMkY1MTJFODM1MTFGNTExODBDQTMwMjBGRDEyM0IKLToxMDAxQjAwMDAxQzc1MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0NjEKLTowNjAxQzAwMDAyRjBDMjIwODBFNkZGCi06MDEwMUM2MDAyMjE2Ci06MTAxMTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODAxMDEwMDAxMDEwMjAzCi06MTAxMTEwMDAwMDAxMDkwMjIwMDAwMTAxMDNBMDAwMDkwNDAwMDAwMkVGCi06MTAxMTIwMDBGRjAwMDAwNDA3MDU4MjAyNDAwMDAwMDcwNTAyMDI0MDlDCi06MTAxMTMwMDAwMDAwMDQwMzA5MDQyNjAzNDEwMDZFMDA2MzAwNjgwMEY4Ci06MTAxMTQwMDA2RjAwNzIwMDIwMDA0MzAwNjgwMDY5MDA3MDAwNzMwMEE3Ci06MTAxMTUwMDAyQzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAyODAzNDYwMDhBCi06MTAxMTYwMDA2OTAwNzIwMDZEMDA3NzAwNjEwMDcyMDA2NTAwMjAwMDY4Ci06MTAxMTcwMDA0NjAwNzIwMDYxMDA2RDAwNjUwMDU3MDA2RjAwNzIwMDRDCi06MTAxMTgwMDA2QjAwNzMwMDJBMDM0MzAwNkYwMDZFMDA2NjAwNjkwMDY1Ci06MTAxMTkwMDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDA2RjAwNkUwMEU2Ci06MTAxMUEwMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjIwMzgzCi06MTAxMUIwMDA0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA2MTAwNjMwMDAzCi06MTAxMUMwMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIzCi06MDIxMUQwMDAwMDAwMUQKLToxMDAzMTMwMEU1MENGRkU1MEJGNTgyRTUwQUY1ODM3NTkyN0U3NEMwNjMKLTowODAzMjMwMEY4RTIwOEYwQTNERkZBMjI2MgotOjEwMDMyQjAwOTA3Rjk2ODU4MzkyQTg4Mjc5MDI5MDAwMDBFMEI0MDBCQQotOjEwMDMzQjAwMEQ3NDAxRjA5MDdGOTdFMDU0N0ZGMDQ0ODBGMEU1MEM1MgotOjEwMDM0QjAwRkY5MDdFQzBFMEY1MjhFNEEyNDczM0YyNjlGMkU0QTIwNQotOjEwMDM1QjAwNDYzM0YyNjlGMkU0QTI0NTMzRjI2OUYyRTRBMjQ0MzM4NAotOjEwMDM2QjAwRjI2OUYyRTRBMjQzMzNGMjY5RjJFNEEyNDIzM0YyNjk5NgotOjEwMDM3QjAwRjJFNEEyNDEzM0YyNjlGMkU0QTI0MDMzRjI2OUYyQTM1MAotOjAzMDM4QjAwREZDMjIyQUMKLTowMzAwNDMwMDAyMDQwMEI0Ci06MTAwNDAwMDAwMjAzQTkwMDAyMDNDMTAwMDIwMzhFMDAwMjA0NTgwMDg3Ci06MTAwNDEwMDAwMjAzRDcwMDAyMDNGRTAwMDIwM0ZGMDAwMjA0ODQwMDZGCi06MTAwNDIwMDAwMjA0ODUwMDAyMDQ4NjAwMDIwNDg3MDAwMjA0ODgwMDlBCi06MTAwNDMwMDAwMjA0ODkwMDAyMDQ4QTAwMDIwNDhCMDAwMjA0OEMwMDdBCi06MTAwNDQwMDAwMjA0OEQwMDAyMDQ4RTAwMDIwNDhGMDAwMjA0OTAwMDVBCi06MDgwNDUwMDAwMjA0OTEwMDAyMDQ5MjAwNzUKLTowMzAwMDAwMDAyMDI4NzcyCi06MEMwMjg3MDA3ODdGRTRGNkQ4RkQ3NTgxMjkwMjAyQ0VENAotOjEwMDNFRDAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjA2NgotOjAxMDNGRDAwMjJERAotOjEwMDI5MzAwMDIwMTAwRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjI4MAotOjEwMDJBMzAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzM2QwotOjEwMDJCMzAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REYzQgotOjEwMDJDMzAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMDQ2RUU0N0U1OQotOjEwMDJEMzAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTMzMAotOjEwMDJFMzAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGNwotOjEwMDJGMzAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0EyMgotOjEwMDMwMzAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkVEOQotOjAxMDQ4MzAwMDA3OAotOjAwMDAwMDAxRkYKLS8qCi1WRVJTSU9OPTEuMC4yLjAwMgotREFURT0xMC4wMS4yMDAyCi1FTUkyNl82MgotKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL21pc2MvZW1pNjJfZndfcy5oIGIvZHJpdmVycy91c2IvbWlzYy9lbWk2Ml9md19zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlZjA1ZTguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9lbWk2Ml9md19zLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4ODM3ICswLDAgQEAKLS8qCi0gKiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhyZWUgZGlmZmVyZW50IGZpbGVzLCBwcm92aWRlZCBieSBFbWFnaWMuCi0gKi8KLS8qIGdlbmVyYXRlZCBUdWUgQXByIDE1IDIxOjU5OjQyIEVFU1QgMjAwMyAqLwotCi1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBnX2VtaTYyYnNbXT17Ci0gezE2LCAweDgwMTAsIDAsIHsweGZmLDB4ZmYsMHhmZiwweGZmLDB4YWEsMHg5OSwweDU1LDB4NjYsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA3IH19LAotIHsxNiwgMHg4MDIwLCAwLCB7MHgzMCwweDAxLDB4NjAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDBkLDB4MzAsMHgwMSwweDIwLDB4MDEsMHgwMCwweDgwLDB4M2YsMHgyZCB9fSwKLSB7MTYsIDB4ODAzMCwgMCwgezB4MzAsMHgwMCwweGMwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDkgfX0sCi0gezE2LCAweDgwNDAsIDAsIHsweDMwLDB4MDAsMHgyMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAxIH19LAotIHsxNiwgMHg4MDUwLCAwLCB7MHgzMCwweDAwLDB4NDAsMHgwMCwweDUwLDB4MDAsMHg1OCwweDFhLDB4ODAsMHgxMiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDQwLDB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODA5MCwgMCwgezB4MDAsMHgxMiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg0OCB9fSwKLSB7MTYsIDB4ODBjMCwgMCwgezB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxMDAsIDAsIHsweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxMzAsIDAsIHsweDAwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTcwLCAwLCB7MHg4MCwweDEyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MWEwLCAwLCB7MHgwMCwweDkwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODFlMCwgMCwgezB4N2YsMHgxMCwweDAwLDB4MzQsMHgwMCwweDBkLDB4MDAsMHgwMywweDQwLDB4MDAsMHhkMCwweDAwLDB4MzQsMHgwMCwweDA1LDB4MDAgfX0sCi0gezE2LCAweDgxZjAsIDAsIHsweDA3LDB4NDAsMHgwMSwweGQwLDB4MDAsMHg3NCwweDAwLDB4MWQsMHgwMCwweDA3LDB4NDAsMHgwMSwweGQwLDB4MDAsMHg3NCwweDAwIH19LAotIHsxNiwgMHg4MjAwLCAwLCB7MHgxZCwweDgwLDB4MDcsMHhlMCwweDAxLDB4YjgsMHgwMCwweDZlLDB4MDAsMHgxYiwweDgwLDB4MDYsMHhlMCwweDAxLDB4MzgsMHgzNyB9fSwKLSB7MTYsIDB4ODIxMCwgMCwgezB4YzQsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDgwLDB4ZmIsMHgzMCwweDM2LDB4YzggfX0sCi0gezE2LCAweDgyMjAsIDAsIHsweDRlLDB4MDksMHgwMywweGZjLDB4ODQsMHhmZiwweDEwLDB4M2IsMHhjMCwweDBlLDB4YzgsMHgwNywweDIyLDB4ODAsMHhmZiwweDIyIH19LAotIHsxNiwgMHg4MjMwLCAwLCB7MHgzMywweGMwLDB4MGYsMHhjOCwweDMzLDB4NmUsMHgwMCwweGZiLDB4ODAsMHgzZiwweDIwLDB4MGQsMHhjMiwweDUzLDB4ZDQsMHg4MCB9fSwKLSB7MTYsIDB4ODI0MCwgMCwgezB4Y2MsMHgzYSwweDNmLDB4MDAsMHgwYywweGYxLDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgyNTAsIDAsIHsweDgwLDB4MDAsMHhlZCwweDYwLDB4YmYsMHg2MCwweDIzLDB4ZjAsMHgwZCwweDgyLDB4MTIsMHgzYywweDYwLDB4OGYsMHg3MCwweDIzIH19LAotIHsxNiwgMHg4MjYwLCAwLCB7MHhmMCwweDA4LDB4ODgsMHgwMiwweGE1LDB4NDAsMHhiZiwweGQwLDB4NjMsMHhkNiwweDBiLDB4ODgsMHgwMiwweDJlLDB4MGMsMHhiYiB9fSwKLSB7MTYsIDB4ODI3MCwgMCwgezB4ODAsMHgyZSwweDIwLDB4ODgsMHg4ZCwweDAyLDB4ZTYsMHg0MCwweDgwLDB4NjAsMHgyZSwweDMwLDB4MGEsMHhiMSwweDEyLDB4MjAgfX0sCi0gezE2LCAweDgyODAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHg4MCwweGEzLDB4NDAsMHgyYywweGM0IH19LAotIHsxNiwgMHg4MjkwLCAwLCB7MHg0YSwweDAwLDB4MTIsMHg4YywweDg4LDB4YTMsMHgyMiwweDIwLDB4YzQsMHgwYSwweDkwLDB4NDIsMHgwNCwweGE5LDB4YTMsMHgwMCB9fSwKLSB7MTYsIDB4ODJhMCwgMCwgezB4MjQsMHhjOCwweDhiLDB4ODAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MmUsMHgwMSwweDA5LDB4MDgsMHgwMiwweDg0LDB4MDAgfX0sCi0gezE2LCAweDgyYjAsIDAsIHsweDgwLDB4MjAsMHgyYywweDEwLDB4MGEsMHgzMiwweDQyLDB4MjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MmMwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwNCwweGIzLDB4MDAsMHgyYSwweGMwLDB4MDgsMHgwOCwweGEyLDB4OGMsMHgwMCwweDhiLDB4MDAsMHhhMiB9fSwKLSB7MTYsIDB4ODJkMCwgMCwgezB4YzEsMHgxMCwweDk4LDB4NDIsMHhhNywweDAwLDB4YmIsMHgwMSwweDY2LDB4YzEsMHgwYiwweDgwLDB4MDIsMHhhYywweDA0LDB4YmIgfX0sCi0gezE2LCAweDgyZTAsIDAsIHsweDAwLDB4MmUsMHgwMCwweDBiLDB4YjgsMHgxMiwweGU0LDB4MDIsMHg4OSwweDA4LDB4MGUsMHg0MCwweDBhLDB4YjAsMHgwMiwweDMwIH19LAotIHsxNiwgMHg4MmYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweGFjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjMCB9fSwKLSB7MTYsIDB4ODMwMCwgMCwgezB4NGEsMHhiOCwweDIzLDB4ZWMsMHgxOCwweGViLDB4MDAsMHgzMiwweGMwLDB4MGUsMHgyYywweDEyLDB4MjIsMHgxMCwweGViLDB4MDAgfX0sCi0gezE2LCAweDgzMTAsIDAsIHsweDI2LDB4YzAsMHg0ZiwweDAwLDB4NDMsMHhlZCwweDAwLDB4ZmIsMHgwMCwweDJlLDB4MjQsMHgwZCwweDgwLDB4MTMsMHhlNCwweDAwIH19LAotIHsxNiwgMHg4MzIwLCAwLCB7MHhjOCwweGQwLDB4N2MsMHgxMiwweDBlLDB4YjAsMHgwMywweDQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODMzMCwgMCwgezB4ZTEsMHgwMCwweGJjLDB4MDAsMHhmZiwweDAwLDB4MzUsMHhjMCwweDRmLDB4ZTAsMHgwMywweDdjLDB4MDgsMHhmZiwweDAxLDB4MTcgfX0sCi0gezE2LCAweDgzNDAsIDAsIHsweGMyLDB4NGQsMHhjMCwweDAzLDB4ZjQsMHgwOCwweGY3LDB4MDAsMHgzYiwweGMwLDB4MDcsMHhjMCwweDAzLDB4N2MsMHg4MCwweGZmIH19LAotIHsxNiwgMHg4MzUwLCAwLCB7MHgyNCwweDNmLDB4NDAsMHgwYywweGYwLDB4MDEsMHhmNCwweDA0LDB4YmMsMHgwOCwweDNmLDB4MjgsMHgwZiwweGYwLDB4MDMsMHg3OCB9fSwKLSB7MTYsIDB4ODM2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDA4LDB4ZmIsMHgwNCwweDNhLDB4YzggfX0sCi0gezE2LCAweDgzNzAsIDAsIHsweDBmLDB4OTQsMHgwMywweGVjLDB4MTAsMHhmMywweDAwLDB4MzQsMHhjMCwweDBlLDB4YjAsMHgwMywweDYxLDB4MDQsMHhmYiwweDAwIH19LAotIHsxNiwgMHg4MzgwLCAwLCB7MHgzNiwweGMwLDB4MGUsMHhhMywweDAzLDB4MmMsMHg4MCwweGZiLDB4NzIsMHgzZSwweDAyLDB4MGYsMHg4YSwweDAzLDB4ZTQsMHgwMiB9fSwKLSB7MTYsIDB4ODM5MCwgMCwgezB4YzksMHg4MCwweDJhLDB4NTAsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgzYTAsIDAsIHsweGNhLDB4NDQsMHgzYywweDAwLDB4YmYsMHgwMCwweDAzLDB4YzAsMHgwOCwweDgwLDB4MDMsMHg3YywweDAwLDB4YmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHg4M2IwLCAwLCB7MHhlMiwweDA4LDB4OTAsMHg0MywweDYwLDB4MDAsMHhiZiwweDAwLDB4MzcsMHhjMCwweDA4LDB4OTAsMHgwMSwweDZkLDB4MDAsMHhiYiB9fSwKLSB7MTYsIDB4ODNjMCwgMCwgezB4NDAsMHgyYywweDEwLDB4MGIsMHhiMCwweDQyLDB4ZDcsMHhjMCwweDg5LDB4MDAsMHgyYSwweDdjLDB4MGIsMHhmMCwweDAyLDB4ZjIgfX0sCi0gezE2LCAweDgzZDAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMiwweDA1LDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyMCwweGQ1IH19LAotIHsxNiwgMHg4M2UwLCAwLCB7MHg0YSwweDAwLDB4MDAsMHgwYywweDA0LDB4OTMsMHgwMCwweDBjLDB4ZjAsMHgwYiwweDA5LDB4MDIsMHgwOCwweDAxLDB4YjMsMHgyMCB9fSwKLSB7MTYsIDB4ODNmMCwgMCwgezB4MjgsMHhjMCwweDBhLDB4MGMsMHgwYSwweDBlLDB4MDAsMHhiMywweDAwLDB4MjQsMHgzMCwweDA5LDB4MDAsMHgwMiwweGM2LDB4MTAgfX0sCi0gezE2LCAweDg0MDAsIDAsIHsweDgwLDB4NDIsMHgyMCwweDAwLDB4OGIsMHhiMCwweDAyLDB4ZjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NDEwLCAwLCB7MHgyMiwweDAxLDB4MWUsMHgwMCwweGI3LDB4OTQsMHgyMSwweGU0LDB4NDgsMHhkOSwweDEyLDB4NWUsMHg0MCwweGI3LDB4OTAsMHgyOSB9fSwKLSB7MTYsIDB4ODQyMCwgMCwgezB4ZTAsMHg4YiwweDY5LDB4MTIsMHhkNiwweDgwLDB4MzcsMHg4MiwweDJjLDB4ZTgsMHgwOCwweDRhLDB4MDIsMHg1ZSwweDAwLDB4YjcgfX0sCi0gezE2LCAweDg0MzAsIDAsIHsweGE0LDB4MmQsMHgyMCwweDBiLDB4NzksMHgwMiwweGQ2LDB4MDgsMHg4NiwweDkwLDB4MjksMHhhMCwweDBiLDB4NzksMHgwMiwweGQ4IH19LAotIHsxNiwgMHg4NDQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDBjLDB4MDAsMHhmYiwweGEwLDB4MjgsMHhlOCB9fSwKLSB7MTYsIDB4ODQ1MCwgMCwgezB4MGUsMHgyYSwweDAyLDB4OGMsMHgwMCwweGQzLDB4MDAsMHg2NCwweGMwLDB4MGYsMHgwMCwweDQzLDB4MGUsMHhjNCwweGYzLDB4MDAgfX0sCi0gezE2LCAweDg0NjAsIDAsIHsweDc4LDB4ZWMsMHgwZSwweDBhLDB4NDMsMHgwZSwweDIwLDB4NzMsMHhlMCwweDNjLDB4MDIsMHg0ZiwweDAwLDB4MDMsMHhjNCwweDQwIH19LAotIHsxNiwgMHg4NDcwLCAwLCB7MHhjMywweDAwLDB4MzgsMHhjMCwweDBmLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODQ4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAwLDB4YmMsMHhjYywweDBlLDB4YjAsMHgwMywweGVjLDB4MjAsMHhmYiwweDAwLDB4M2MgfX0sCi0gezE2LCAweDg0OTAsIDAsIHsweGMyLDB4MGMsMHgyMCwweDAzLDB4NmMsMHg1MCwweGYzLDB4MDAsMHgzNiwweGM0LDB4MGYsMHg0MCwweDAzLDB4ZmMsMHgwOCwweGZmIH19LAotIHsxNiwgMHg4NGEwLCAwLCB7MHgxYSwweDNmLDB4ODAsMHgwZiwweGYwLDB4MDEsMHhlNCwweDMwLDB4ZmYsMHgwMiwweDNmLDB4YzAsMHgwZiwweGYwLDB4NjMsMHhkMCB9fSwKLSB7MTYsIDB4ODRiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhlYywweDQwLDB4ZmIsMHgwMCwweGIyLDB4ZDggfX0sCi0gezE2LCAweDg0YzAsIDAsIHsweDBjLDB4YjAsMHgwMSwweDJkLDB4MjAsMHhkYiwweDAxLDB4M2EsMHhjOCwweDhjLDB4MzgsMHgwMywweGE4LDB4MDAsMHhmYiwweDQ4IH19LAotIHsxNiwgMHg4NGQwLCAwLCB7MHgzZSwweGM5LDB4MGYsMHg4MCwweDAzLDB4ZWMsMHg0MCwweGZiLDB4MDEsMHgzZSwweDAwLDB4MGYsMHgwOCwweDAzLDB4YTQsMHgwOCB9fSwKLSB7MTYsIDB4ODRlMCwgMCwgezB4ZmEsMHg4MCwweGIyLDB4ODAsMHgwZiwweGIxLDB4MDIsMHg2YSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg0ZjAsIDAsIHsweDQ4LDB4MTksMHgxYywweDgwLDB4YmYsMHgzMCwweDIxLDB4Y2EsMHgwOCwweGYwLDB4MGEsMHgwYywweDgwLDB4OGYsMHg1MCwweDIxIH19LAotIHsxNiwgMHg4NTAwLCAwLCB7MHhjMiwweDA4LDB4NzAsMHg1MCwweDljLDB4MDAsMHhiNywweDAwLDB4MzksMHhjNCwweDBiLDB4NDAsMHgwMiwweDljLDB4MDQsMHhiNyB9fSwKLSB7MTYsIDB4ODUxMCwgMCwgezB4MjAsMHgyNSwweDQwLDB4MGIsMHg3MCwweDAyLDB4MTQsMHg4MCwweGI2LDB4MDAsMHgyMSwweDgwLDB4MGIsMHhmOCwweDAyLDB4MTIgfX0sCi0gezE2LCAweDg1MjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweGI3LDB4YjAsMHgyMSwweGVjIH19LAotIHsxNiwgMHg4NTMwLCAwLCB7MHgwYiwweDc4LDB4MTIsMHhkZSwweDg0LDB4OTcsMHg4MCwweDBkLDB4ZTAsMHgyOCwweGY4LDB4MDIsMHhkZSwweDAwLDB4YjcsMHg5MCB9fSwKLSB7MTYsIDB4ODU0MCwgMCwgezB4MmQsMHhlNCwweDBiLDB4NjgsMHg4MiwweDVlLDB4ODAsMHhiNywweGEwLDB4MjksMHgyMCwweDBiLDB4NDgsMHgwMiwweDk2LDB4MDAgfX0sCi0gezE2LCAweDg1NTAsIDAsIHsweGI3LDB4ODAsMHgyMSwweGUxLDB4MGIsMHg3YSwweDAyLDB4NzAsMHg0MCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NTYwLCAwLCB7MHg0OCwweDA0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzOCwweDAyLDB4OGMsMHgwNCwweDgzLDB4MDAsMHgyOCB9fSwKLSB7MTYsIDB4ODU3MCwgMCwgezB4YzAsMHg4OCwweDM5LDB4MDIsMHg0YywweDQwLDB4YjMsMHgwNCwweDI4LDB4YzAsMHgxYiwweDEwLDB4MDIsMHg4YywweDAxLDB4YjMgfX0sCi0gezE2LCAweDg1ODAsIDAsIHsweDA0LDB4MjQsMHg4OCwweDRiLDB4MzEsMHgwMiwweDA0LDB4MDAsMHhiMywweDgwLDB4MjAsMHhmMiwweDBiLDB4MzAsMHgwMiwweDAyIH19LAotIHsxNiwgMHg4NTkwLCAwLCB7MHgyNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweGE4LDB4MDAsMHhmYSwweDAwLDB4MzIsMHg4MCB9fSwKLSB7MTYsIDB4ODVhMCwgMCwgezB4MGYsMHhlOCwweDAzLDB4ZTgsMHgwMCwweGRhLDB4MDEsMHgzYSwweDgwLDB4OGMsMHhlZCwweDAzLDB4ZmIsMHgwNCwweGZhLDB4MDAgfX0sCi0gezE2LCAweDg1YjAsIDAsIHsweDNlLDB4ODAsMHgwZiwweDZjLDB4MDMsMHhmYiwweGM4LDB4YmUsMHhjMiwweDFmLDB4ODAsMHgwZiwweGU1LDB4MDMsMHhhOCwweDAwIH19LAotIHsxNiwgMHg4NWMwLCAwLCB7MHhmZSwweDQ4LDB4MzMsMHg4MCwweDRmLDB4YTAsMHgwMywweDdhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODVkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2MsMHgwMCwweDBjLDB4ODEsMHg5MywweDYwLDB4MDAsMHhmOCwweDAxLDB4MzYgfX0sCi0gezE2LCAweDg1ZTAsIDAsIHsweDEwLDB4MGYsMHg4MCwweDAzLDB4YTAsMHgyMCwweGY4LDB4MDAsMHgyYSwweDAxLDB4OGYsMHg4NCwweDEzLDB4ZTEsMHgwMCwweGY4IH19LAotIHsxNiwgMHg4NWYwLCAwLCB7MHgxOCwweDM2LDB4MDAsMHgwZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjgsMHgyMCwweDNlLDB4MTQsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4ODYwMCwgMCwgezB4ODAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNCwweDAwLDB4ZjEsMHgwMCwweGFhLDB4NDAgfX0sCi0gezE2LCAweDg2MTAsIDAsIHsweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhlMSwweDAwLDB4MzgsMHg0MCwweDFjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweGEwIH19LAotIHsxNiwgMHg4NjIwLCAwLCB7MHgzYSwweDQwLDB4NDcsMHg5YSwweDkzLDB4YTIsMHg4MCwweGY4LDB4MTAsMHgzZSwweDQwLDB4MGIsMHg5NCwweDAzLDB4ZTYsMHg0MCB9fSwKLSB7MTYsIDB4ODYzMCwgMCwgezB4ZjksMHhjMCwweDNlLDB4NjgsMHgwYiwweDEwLDB4MDMsMHgwMiwweDg0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg2NDAsIDAsIHsweDgwLDB4MDQsMHhlNCwweDA0LDB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDA0LDB4ODksMHgwMCwweDM2IH19LAotIHsxNiwgMHg4NjUwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDQsMHhiOSwweDgwLDB4MmUsMHg0MCwweDRmLDB4OTQsMHgwMywweDYxLDB4MTAsMHhlOCB9fSwKLSB7MTYsIDB4ODY2MCwgMCwgezB4NDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDQyLDB4ZTYsMHgwNCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MjAgfX0sCi0gezE2LCAweDg2NzAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA0LDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDQwIH19LAotIHsxNiwgMHg4NjgwLCAwLCB7MHgwYSwweDEwLDB4NTIsMHgwNCwweDA0LDB4YTksMHgwNCwweDJhLDB4NDAsMHgwOCwweGIwLDB4MDIsMHhlNCwweDAxLDB4YjksMHgwMCB9fSwKLSB7MTYsIDB4ODY5MCwgMCwgezB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGE4LDB4MGQsMHhiOCwweDQwLDB4MmUsMHg0MCwweDA5LDB4OTQsMHgwMiwweGU1LDB4MDAgfX0sCi0gezE2LCAweDg2YTAsIDAsIHsweGI5LDB4MDQsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NmIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGIxLDB4MjAsMHgyMCwweGM4LDB4MGEsMHgxMCwweDQyLDB4MDQsMHg5MCwweDgxLDB4MjAsMHgwNCB9fSwKLSB7MTYsIDB4ODZjMCwgMCwgezB4YzgsMHgwOCwweDMwLDB4MjYsMHhjNCwweDAwLDB4YjEsMHgyMCwweDJjLDB4NDgsMHgwYiwweDkwLDB4MDIsMHg0NSwweDAxLDB4YjEgfX0sCi0gezE2LCAweDg2ZDAsIDAsIHsweDQwLDB4MmMsMHg0MCwweDBiLDB4MTIsMHg4MiwweGM0LDB4MDAsMHhiMSwweDJiLDB4MmMsMHg0YSwweDBiLDB4MTIsMHg4MiwweDAyIH19LAotIHsxNiwgMHg4NmUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwOCwweDIxLDB4NDgsMHhmOCwweDUwLDB4MzIsMHgwMCB9fSwKLSB7MTYsIDB4ODZmMCwgMCwgezB4NGUsMHg4NSwweDBiLDB4MjEsMHg0MCwweGE4LDB4NTIsMHgyYSwweDAwLDB4MDgsMHg4MCwweDIzLDB4ZTEsMHg0MCwweGY4LDB4MDAgfX0sCi0gezE2LCAweDg3MDAsIDAsIHsweDNhLDB4MTQsMHgwZiwweGEwLDB4NDMsMHhhOCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgyLDB4MDMsMHhlMCwweDAwIH19LAotIHsxNiwgMHg4NzEwLCAwLCB7MHhmMCwweDIwLDB4M2UsMHg4OCwweDRmLDB4ODIsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODcyMCwgMCwgezB4OTgsMHgxOSwweGU0LDB4NDAsMHhmOSwweDExLDB4MzQsMHg0NCwweDJkLDB4ZDAsMHgwMywweGU0LDB4NTAsMHg3OSwweDEwLDB4MzggfX0sCi0gezE2LCAweDg3MzAsIDAsIHsweDQ0LDB4MmYsMHhkMCwweDAzLDB4ZjUsMHgxMCwweGY5LDB4MTAsMHgzZSwweDQ1LDB4MDYsMHg1MCwweDAzLDB4ZTUsMHgwMCwweGU5IH19LAotIHsxNiwgMHg4NzQwLCAwLCB7MHg0MCwweDNmLDB4NDAsMHgwZiwweGQwLDB4NDMsMHhmNSwweDAwLDB4ZmQsMHgyOCwweDNmLDB4NDAsMHgwZiwweDkyLDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4ODc1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDEsMHhlNiwweDAwLDB4ZDksMHg5MCwweDM3LDB4NjkgfX0sCi0gezE2LCAweDg3NjAsIDAsIHsweDRkLDB4OTAsMHgyMywweDY3LDB4ODAsMHhkOSwweGUwLDB4MzcsMHg2OCwweDBlLDB4ZDAsMHgwNywweGE0LDB4MDAsMHgwNSwweDg2IH19LAotIHsxNiwgMHg4NzcwLCAwLCB7MHgzZSwweDY2LDB4MGQsMHg1MCwweDIzLDB4MjYsMHgwMCwweGM5LDB4ODIsMHgzZCwweDQwLDB4MGQsMHhkOCwweDA3LDB4MzYsMHgwMiB9fSwKLSB7MTYsIDB4ODc4MCwgMCwgezB4Y2QsMHhjMCwweDMzLDB4NjAsMHgwYywweDljLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg3OTAsIDAsIHsweDM4LDB4MTAsMHhlMiwweDgwLDB4ODgsMHhhMiwweDIyLDB4MTAsMHgyOCwweDhhLDB4ODIsMHgyMywweDg0LDB4ODgsMHhhMCwweDIyIH19LAotIHsxNiwgMHg4N2EwLCAwLCB7MHgxNCwweDQ4LDB4ODAsMHg0MiwweDgyLDB4MDAsMHg4OCwweDQwLDB4MmUsMHgzMCwweDA4LDB4ODAsMHgwMiwweGEyLDB4MDAsMHhkOCB9fSwKLSB7MTYsIDB4ODdiMCwgMCwgezB4OTAsMHgyNiwweDAwLDB4MDgsMHg4NCwweDBhLDB4MjEsMHgwMCwweGM4LDB4YTAsMHhhMiwweDE0LDB4MjgsMHg4YywweDAyLDB4MGUgfX0sCi0gezE2LCAweDg3YzAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHgyMCwweDkxLDB4NDAsMHgyYywweDQ0IH19LAotIHsxNiwgMHg4N2QwLCAwLCB7MHgxOCwweDEwLDB4MDIsMHg4NSwweDA0LDB4YjEsMHg0MCwweDBjLDB4NDAsMHgwYSwweDEwLDB4MDYsMHg4NCwweDMwLDB4ODEsMHg0MCB9fSwKLSB7MTYsIDB4ODdlMCwgMCwgezB4MmMsMHg0OCwweDU5LDB4MTAsMHgxYSwweDA0LDB4NjAsMHg4MSwweDA5LDB4MmUsMHg0MCwweDFiLDB4MTQsMHgwMiwweDI1LDB4MDAgfX0sCi0gezE2LCAweDg3ZjAsIDAsIHsweDkxLDB4ZTAsMHgyMCwweDYwLDB4MDgsMHgxNiwweDAyLDB4MDAsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ODAwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDgxLDB4MDAsMHgyYSwweDQxLDB4MDgsMHg5MCwweDAyLDB4YTQsMHgwMCwweGExLDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ODgxMCwgMCwgezB4NDEsMHgwOCwweGIwLDB4ODIsMHgyNCwweDExLDB4OGIsMHgwMCwweDJlLDB4NDAsMHgxOCwweDkxLDB4MDIsMHhhMCwweDA0LDB4OTggfX0sCi0gezE2LCAweDg4MjAsIDAsIHsweDIwLDB4MmUsMHg1NCwweDFiLDB4OTAsMHg4MiwweDJjLDB4MDAsMHg4OSwweDEwLDB4MjIsMHg0NCwweDg4LDB4OTAsMHgwMiwweDA2IH19LAotIHsxNiwgMHg4ODMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCB9fSwKLSB7MTYsIDB4ODg0MCwgMCwgezB4NGMsMHg5MCwweDAzLDB4YTQsMHgxMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4OGUsMHgxMCwweDAyLDB4YTQsMHhjMiwweGM5LDB4MDAgfX0sCi0gezE2LCAweDg4NTAsIDAsIHsweDNlLDB4NDAsMHgwZCwweDE2LDB4MTMsMHgwMSwweDg0LDB4YzgsMHgyMCwweDNjLDB4NjAsMHgwZiwweDkwLDB4MTIsMHgwNCwweDAwIH19LAotIHsxNiwgMHg4ODYwLCAwLCB7MHhkOSwweDQwLDB4MzIsMHg1MCwweDBjLDB4OTAsMHgwMywweDI4LDB4ODQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODg3MCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDRmLDB4OTksMHg0YSwweDQ0LDB4MDAsMHg5OSwweDAwLDB4YjQgfX0sCi0gezE2LCAweDg4ODAsIDAsIHsweDQwLDB4MGYsMHg5MCwweDEzLDB4ZTYsMHgwMCwweGY5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTMsMHgwMCwweGY4IH19LAotIHsxNiwgMHg4ODkwLCAwLCB7MHgwMSwweDM2LDB4NDAsMHgwYywweDk5LDB4MDMsMHhlNCwweDAyLDB4ZjksMHg4MCwweDNlLDB4NjAsMHg0ZiwweDkwLDB4MGIsMHhjYSB9fSwKLSB7MTYsIDB4ODhhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZDgsMHgwMCwweDNjLDB4MDAgfX0sCi0gezE2LCAweDg4YjAsIDAsIHsweDFkLDB4ODAsMHgwMywweDIwLDB4MDAsMHhlOCwweDAwLDB4MzIsMHgwMCwweDBjLDB4ODQsMHg4MywweGUwLDB4MTAsMHhlOCwweDIwIH19LAotIHsxNiwgMHg4OGMwLCAwLCB7MHgzMiwweDAwLDB4OGUsMHg4NCwweDAzLDB4MjEsMHg4MCwweGM4LDB4MDAsMHgzYSwweDE5LDB4MGYsMHgwNCwweDAzLDB4ZTAsMHgyNCB9fSwKLSB7MTYsIDB4ODhkMCwgMCwgezB4ZjAsMHgwMiwweDNjLDB4MDAsMHgwZiwweDgwLDB4MTMsMHg4YSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg4ZTAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAyLDB4OGEsMHgwMSwweDBmLDB4YTIsMHg2OCwweGEwLDB4MDAsMHgyOCwweDAwLDB4OGEsMHgwMCwweDc3IH19LAotIHsxNiwgMHg4OGYwLCAwLCB7MHg4MCwweDY4LDB4ZTAsMHgxMiwweGU4LDB4MDAsMHhkZSwweDAwLDB4MzYsMHg4MSwweDA4LDB4ZTAsMHgwMywweDdhLDB4MDgsMHhhZSB9fSwKLSB7MTYsIDB4ODkwMCwgMCwgezB4YzQsMHgyZiwweDgwLDB4MDgsMHhlZCwweDAyLDB4ZmEsMHgwMCwweGJlLDB4YTAsMHgzYiwweDgwLDB4MGIsMHhhMCwweDQyLDB4MGEgfX0sCi0gezE2LCAweDg5MTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDg1LDB4NGMsMHgwMCwweDkzLDB4MDAsMHgyYywweGMwIH19LAotIHsxNiwgMHg4OTIwLCAwLCB7MHg4OCwweGIwLDB4MDIsMHgwYywweDE0LDB4YTMsMHgwNCwweDIwLDB4YzQsMHgxOCwweDM4LDB4MDIsMHhlYywweDEwLDB4OTMsMHg1NCB9fSwKLSB7MTYsIDB4ODkzMCwgMCwgezB4MjgsMHhjMCwweDBhLDB4MDAsMHgwMiwweDRlLDB4MDAsMHg4MywweDQ5LDB4NjgsMHhjMCwweDAyLDB4MzksMHg0MiwweGNlLDB4NDAgfX0sCi0gezE2LCAweDg5NDAsIDAsIHsweGIzLDB4MDAsMHgyYywweGU2LDB4MGIsMHhiMCwweDAyLDB4OGIsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4OTUwLCAwLCB7MHgyMCwweDAxLDB4MWMsMHgwOCwweDg3LDB4MjAsMHgyYywweDgwLDB4MTgsMHhmMiwweDIyLDB4MWMsMHgwMCwweDg3LDB4MTAsMHgyMSB9fSwKLSB7MTYsIDB4ODk2MCwgMCwgezB4YzAsMHgwOCwweDcwLDB4ODIsMHhkYywweDgwLDB4OTYsMHg4MCwweDJkLDB4YzAsMHgwYSwweDQwLDB4MDIsMHg3ZCwweDQwLDB4MjcgfX0sCi0gezE2LCAweDg5NzAsIDAsIHsweDY0LDB4NmQsMHhkMCwweDQ4LDB4NjAsMHg0MiwweGQ4LDB4MDUsMHhiNiwweDA0LDB4MjksMHhjMCwweDRiLDB4NzIsMHgwMiwweDI4IH19LAotIHsxNiwgMHg4OTgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwOCwweDNlLDB4ODgsMHhkNywweGUwLDB4M2QsMHhlMCB9fSwKLSB7MTYsIDB4ODk5MCwgMCwgezB4MDgsMHg3YywweDQyLDB4M2UsMHgwMCwweGUzLDB4ODIsMHgyMCwweGUwLDB4MGMsMHg2OCwweDAzLDB4ZGYsMHgwNCwweGQ3LDB4ODAgfX0sCi0gezE2LCAweDg5YTAsIDAsIHsweDNiLDB4ZTAsMHg0ZSwweDQ4LDB4MGEsMHg1ZSwweDgwLDB4YzcsMHhjMiwweDE5LDB4ZTAsMHgwZSwweDc4LDB4MDMsMHhkNiwweDA4IH19LAotIHsxNiwgMHg4OWIwLCAwLCB7MHhmNywweDgwLDB4M2QsMHhlMCwweDBmLDB4ZjgsMHgwMywweGFhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODljMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4NDAsMHhmYiwweDQwLDB4N2UsMHg4MCwweDBlLDB4MzYsMHg4MywweGVkLDB4NDAsMHhkYiwweDYwLDB4M2UgfX0sCi0gezE2LCAweDg5ZDAsIDAsIHsweDgwLDB4MGYsMHhhMCwweDAzLDB4ZWQsMHgyOCwweGRhLDB4MDAsMHgzMiwweGM0LDB4MGMsMHhiMCwweDBiLDB4Y2MsMHgwMCwweGZiIH19LAotIHsxNiwgMHg4OWUwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHgwZSwweDgwLDB4MTMsMHhlMCwweDEwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGIxLDB4NTMsMHhjMiB9fSwKLSB7MTYsIDB4ODlmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4ZmYsMHhjMCwweDMzLDB4ZTAgfX0sCi0gezE2LCAweDhhMDAsIDAsIHsweDBjLDB4ZjksMHgwMywweDdmLDB4MDQsMHhjZiwweGQwLDB4M2YsMHhlNCwweDBmLDB4YjgsMHgwMywweGZlLDB4MDAsMHhmZiwweDk0IH19LAotIHsxNiwgMHg4YTEwLCAwLCB7MHgzZiwweGUwLDB4MGYsMHhjOCwweDAzLDB4N2UsMHgxMCwweGYzLDB4ODAsMHgzYiwweGUwLDB4MGYsMHhmOCwweDAzLDB4ZmUsMHg0OCB9fSwKLSB7MTYsIDB4OGEyMCwgMCwgezB4ZWQsMHg4MCwweDMzLDB4MjQsMHgwNCwweGY4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhhMzAsIDAsIHsweGE4LDB4MTEsMHg5YywweDgwLDB4YmYsMHgwNCwweDIxLDB4MjgsMHgwOCwweGY4LDB4MDIsMHgxZSwweGMwLDB4Y2YsMHg5MCwweDIxIH19LAotIHsxNiwgMHg4YTQwLCAwLCB7MHg0YywweDBiLDB4NWEsMHg0MiwweGRlLDB4MDAsMHhiNywweDgwLDB4MmMsMHhlOCwweDBiLDB4MDQsMHgwMiwweDFjLDB4MDAsMHhiNyB9fSwKLSB7MTYsIDB4OGE1MCwgMCwgezB4YTAsMHgzNSwweDEwLDB4OGYsMHg3MSwweDEzLDB4ZGUsMHhjMCwweDg0LDB4MTAsMHgyMSwweDgwLDB4MGQsMHg3MSwweDAyLDB4MmEgfX0sCi0gezE2LCAweDhhNjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDQwLDB4OWMsMHgwOCwweGI3LDB4MDAsMHgyNSwweGM4IH19LAotIHsxNiwgMHg4YTcwLCAwLCB7MHgwOCwweDcxLDB4MDIsMHhjYywweDgwLDB4OTcsMHgwMCwweDI5LDB4YzAsMHg4YiwweDcyLDB4MDYsMHhkYywweDA4LDB4YjUsMHgwMCB9fSwKLSB7MTYsIDB4OGE4MCwgMCwgezB4MmQsMHhjOCwweDBiLDB4NDAsMHgwMiwweDFjLDB4NDAsMHhiZiwweDEwLDB4MjEsMHhjMCwweDBiLDB4NzQsMHgwMiwweGQ0LDB4ODAgfX0sCi0gezE2LCAweDhhOTAsIDAsIHsweGE3LDB4NDAsMHgyMSwweDQxLDB4MDgsMHg3MCwweDAyLDB4MDQsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YWEwLCAwLCB7MHg2MCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyNCwweDAwLDB4MDgsMHgzNCwweDgyLDB4YWMsMHgxMSwweDgzLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4OGFiMCwgMCwgezB4MDAsMHg0YiwweDE4LDB4MjYsMHhjZiwweDIwLDB4YjEsMHgwNiwweDJjLDB4YzEsMHgwYiwweDMyLDB4MDIsMHgwZSwweDA4LDB4YjMgfX0sCi0gezE2LCAweDhhYzAsIDAsIHsweDg4LDB4MjQsMHgzMiwweDBhLDB4MzAsMHgxMiwweDg0LDB4MDgsMHg4MCwweDAwLDB4YTAsMHgzNCwweDI4LDB4MzAsMHgwMiwweDE4IH19LAotIHsxNiwgMHg4YWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4YjYsMHg0MCB9fSwKLSB7MTYsIDB4OGFlMCwgMCwgezB4MmMsMHhmNCwweDQzLDB4ZmMsMHgwMSwweGRmLDB4MDAsMHgzYSwweDAwLDB4MDMsMHg5MiwweDAzLDB4ZmYsMHg4OCwweGY5LDB4MDAgfX0sCi0gezE2LCAweDhhZjAsIDAsIHsweDJmLDB4YzAsMHgxYiwweDBlLDB4NGIsMHgyZSwweDkwLDB4ZmIsMHhlMCwweDMwLDB4MzIsMHgwYiwweDk4LDB4MDIsMHhlYywweDA4IH19LAotIHsxNiwgMHg4YjAwLCAwLCB7MHg2YiwweGMwLDB4MzIsMHhjMCwweDA4LDB4ZjAsMHgwOSwweDNlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGIxMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmMywweDAwLDB4M2EsMHhjMCwweDBmLDB4YjAsMHgwMSwweDZjLDB4MDAsMHhmYiwweDAwLDB4M2EgfX0sCi0gezE2LCAweDhiMjAsIDAsIHsweDEwLDB4MGYsMHhiNCwweDAzLDB4ZWMsMHgwMCwweGYwLDB4MDAsMHgzYywweGMwLDB4MGYsMHg4MCwweDBiLDB4YWQsMHgyMCwweGZiIH19LAotIHsxNiwgMHg4YjMwLCAwLCB7MHg0MCwweDNlLDB4MTAsMHgwNywweGE4LDB4NjMsMHhlMCwweDAwLDB4ZmIsMHg4MCwweDNlLDB4ZDgsMHgwZiwweGIwLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4OGI0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmYsMHgwMCwweDcyLDB4MDAgfX0sCi0gezE2LCAweDhiNTAsIDAsIHsweDBmLDB4ZjAsMHgyMywweGZjLDB4MDAsMHhkZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4YzAsMHgwMywweGRjLDB4MDAsMHg4ZiwweDAwIH19LAotIHsxNiwgMHg4YjYwLCAwLCB7MHgzMywweGMxLDB4MGMsMHhjMCwweDAzLDB4YmUsMHgwMCwweGZmLDB4OTAsMHgzYiwweDI4LDB4MGUsMHg1OSwweDAzLDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4OGI3MCwgMCwgezB4N2IsMHgwMCwweDMyLDB4YzQsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhiODAsIDAsIHsweGMxLDB4MDQsMHg2YywweDAwLDB4YmIsMHgwMCwweDYyLDB4YTAsMHgwZiwweGIwLDB4MDIsMHhlYywweDA5LDB4OGIsMHgwMCwweDJlIH19LAotIHsxNiwgMHg4YjkwLCAwLCB7MHgzMCwweDBiLDB4YTgsMHgwMywweGFjLDB4MDAsMHhmYSwweGMxLDB4MjIsMHhjMSwweDA4LDB4OGMsMHgwMiwweDJjLDB4MDAsMHhiMyB9fSwKLSB7MTYsIDB4OGJhMCwgMCwgezB4ODEsMHgyYSwweDAwLDB4MGQsMHg4OCwweGIyLDB4MjIsMHgwMCwweGIzLDB4YzAsMHgyMiwweGM4LDB4MGIsMHhiMCwweDQyLDB4NjEgfX0sCi0gezE2LCAweDhiYjAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4NmMsMHgwMCwweGJiLDB4MDEsMHgyMiwweDYyIH19LAotIHsxNiwgMHg4YmMwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHhlYywweDA0LDB4OGIsMHgwMCwweDJlLDB4YTIsMHg0OSwweDg4LDB4MjYsMHhlYywweDAwLDB4YTgsMHg4MCB9fSwKLSB7MTYsIDB4OGJkMCwgMCwgezB4MjIsMHhjMCwweDI4LDB4ODIsMHgwYSwweGFjLDB4YTAsMHhiYiwweDA4LDB4MjIsMHhjMCwweDA4LDB4ODAsMHgwYSwweDI4LDB4ODQgfX0sCi0gezE2LCAweDhiZTAsIDAsIHsweGI5LDB4YzAsMHhhMiwweDAwLDB4MGIsMHhiMCwweDAyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YmYwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIzLDB4MTAsMHgyMCwweDQ4LDB4MGEsMHgzMiwweDAyLDB4Y2MsMHg4MCwweDgzLDB4MDEsMHgyNCB9fSwKLSB7MTYsIDB4OGMwMCwgMCwgezB4MDAsMHgwYiwweDAyLDB4MDYsMHg4YywweDYwLDB4YTAsMHgyMCwweDIwLDB4YzgsMHgwOCwweDAxLDB4MDIsMHgwYywweDAwLDB4YjMgfX0sCi0gezE2LCAweDhjMTAsIDAsIHsweDAwLDB4MjgsMHgwMCwweDA5LDB4MjAsMHgwMiwweDA4LDB4ODAsMHhiMSwweDAwLDB4YTAsMHg4MCwweDBiLDB4MzAsMHgwMiwweDQyIH19LAotIHsxNiwgMHg4YzIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOSwweDZjLDB4MDAsMHhmZiwweDAwLDB4YTIsMHgwZSB9fSwKLSB7MTYsIDB4OGMzMCwgMCwgezB4MGIsMHhmMSwweDAzLDB4ZmMsMHgwOCwweGNmLDB4MjAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZmMsMHg4NCwweGE4LDB4MjAgfX0sCi0gezE2LCAweDhjNDAsIDAsIHsweGIyLDB4YzgsMHg4YywweDgwLDB4MDMsMHhhYywweDQ0LDB4ZmIsMHg3MCwweDNhLDB4YzAsMHgwZSwweDkwLDB4MDMsMHgyYywweGE0IH19LAotIHsxNiwgMHg4YzUwLCAwLCB7MHhmYiwweDAwLDB4YjIsMHg0MCwweDBmLDB4YjAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGM2MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDI2LDB4M2UsMHgwMCwweDBmLDB4YjYsMHgxMywweGVkLDB4MDAsMHhmYiwweDEwLDB4M2YgfX0sCi0gezE2LCAweDhjNzAsIDAsIHsweDAwLDB4MGYsMHhjMSwweDEzLDB4YWMsMHg4MCwweGY4LDB4MTIsMHgzZSwweGM2LDB4NGYsMHg0MiwweDQzLDB4ZmMsMHgwNCwweGZmIH19LAotIHsxNiwgMHg4YzgwLCAwLCB7MHgzMSwweDNmLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhlYywweDAwLDB4ZmYsMHgwMCwweGJmLDB4YzAsMHg4ZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4OGM5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDQwLDB4ZmMsMHg4MCwweDM2LDB4YzggfX0sCi0gezE2LCAweDhjYTAsIDAsIHsweDBmLDB4MDksMHgwMywweGMyLDB4MDAsMHhmOCwweGMwLDB4MzMsMHhjYywweDJjLDB4NGMsMHgwMywweDYzLDB4OTAsMHhlMCwweDkwIH19LAotIHsxNiwgMHg4Y2IwLCAwLCB7MHgzYSwweGMwLDB4MGQsMHg1MCwweDBiLDB4M2MsMHgwNCwweGRmLDB4NjQsMHgzZiwweGM4LDB4OGQsMHhmMSwweDQzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4OGNjMCwgMCwgezB4ZDUsMHgwMCwweDMzLDB4YzAsMHg0NSwweGYyLDB4MjMsMHg3MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhjZDAsIDAsIHsweDgwLDB4MTAsMHhlZCwweDgwLDB4YmEsMHgwMiwweDIxLDB4ZGUsMHg4YiwweDgyLDB4MjIsMHhlMCwweDIwLDB4YjAsMHgwMCwweDJiIH19LAotIHsxNiwgMHg4Y2UwLCAwLCB7MHhlYywweDA5LDB4ODAsMHgwMiwweGUzLDB4NDAsMHhiYSwweDIwLDB4MmYsMHhkYywweDA4LDB4OTgsMHgxMiwweDJjLDB4MDAsMHg4YiB9fSwKLSB7MTYsIDB4OGNmMCwgMCwgezB4NTEsMHgyYSwweGQwLDB4MDgsMHg3MiwweDIyLDB4MmUsMHgwMCwweDhkLDB4ODAsMHgyMSwweGQwLDB4MDgsMHhiNiwweDgyLDB4MjAgfX0sCi0gezE2LCAweDhkMDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHg0MCwweGI5LDB4MjgsMHgyNCwweGMwIH19LAotIHsxNiwgMHg4ZDEwLCAwLCB7MHg0YSwweDEyLDB4MTIsMHg4OCwweDg1LDB4YTgsMHgyMCwweDIwLDB4YzAsMHgwYiwweDIyLDB4MDIsMHhjMCwweDkxLDB4YTEsMHgwMCB9fSwKLSB7MTYsIDB4OGQyMCwgMCwgezB4MjgsMHhjMiwweDBiLDB4MDAsMHgxMiwweDhjLDB4NDAsMHhhMywweDIwLDB4MjAsMHhjNCwweDBiLDB4MzAsMHgwYSwweDBjLDB4MTEgfX0sCi0gezE2LCAweDhkMzAsIDAsIHsweDk5LDB4MDAsMHgyMCwweGM1LDB4MDksMHgwMSwweDAyLDB4NjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZDQwLCAwLCB7MHhjMCwweDExLDB4YWMsMHgwMCwweGI4LDB4ODAsMHgyMiwweGMwLDB4MGIsMHg4OCwweDAyLDB4ZWUsMHgwMSwweGI4LDB4YzEsMHgyYSB9fSwKLSB7MTYsIDB4OGQ1MCwgMCwgezB4YzAsMHgxYiwweGE4LDB4MDYsMHhlMiwweDAwLDB4YmIsMHg4MCwweDJlLDB4YzAsMHg4YSwweDgwLDB4MDIsMHhhYywweDAwLDB4YWIgfX0sCi0gezE2LCAweDhkNjAsIDAsIHsweDAwLDB4MmUsMHhjMCwweDBhLDB4YjAsMHgwMiwweDJjLDB4MDAsMHg5OSwweDAwLDB4MjQsMHhjMCwweDA4LDB4ODAsMHgwMiwweDMwIH19LAotIHsxNiwgMHg4ZDcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhiMCwweDgwLDB4MzYsMHhjMCB9fSwKLSB7MTYsIDB4OGQ4MCwgMCwgezB4MGUsMHhhOCwweDEzLDB4ZTIsMHg4NSwweGYzLDB4YzAsMHgzMiwweGMwLDB4MGUsMHg5YywweDIzLDB4ZTcsMHgyNCwweGU4LDB4ODIgfX0sCi0gezE2LCAweDhkOTAsIDAsIHsweDNhLDB4YzEsMHgwZiwweDk0LDB4MDMsMHhhYywweDAyLDB4ZWIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgyZSwweDEwIH19LAotIHsxNiwgMHg4ZGEwLCAwLCB7MHg1MSwweDAwLDB4YjIsMHhjMCwweDBkLDB4YjAsMHgwMywweDUwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGRiMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4ZDAsMHgwMywweGYwLDB4MDQsMHhmZCwweDA0LDB4M2YgfX0sCi0gezE2LCAweDhkYzAsIDAsIHsweGMwLDB4NGMsMHhjMCwweDAzLDB4ZjAsMHgxMCwweGZjLDB4MDAsMHgxZiwweGMwLDB4MGQsMHhkMSwweDIzLDB4MWMsMHgwMCwweGM3IH19LAotIHsxNiwgMHg4ZGQwLCAwLCB7MHgwMCwweDM5LDB4YzAsMHgwZCwweGYwLDB4ODMsMHhmZSwweDQ0LDB4ZWQsMHgwMCwweDNiLDB4YzAsMHgwZiwweDc0LDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4OGRlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZjksMHgwMSwweGJhLDB4YzEgfX0sCi0gezE2LCAweDhkZjAsIDAsIHsweDBjLDB4YjAsMHgwMywweGExLDB4MDgsMHhmYSwweDAwLDB4MzAsMHhjOCwweDhmLDB4OTQsMHgwMywweDI1LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHg4ZTAwLCAwLCB7MHgzYywweGMwLDB4MGYsMHgwNCwweDgzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzZSwweGUwLDB4MGYsMHg3MSwweDBiLDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4OGUxMCwgMCwgezB4ZmQsMHgwOCwweDM3LDB4YzAsMHg0ZSwweDkxLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhlMjAsIDAsIHsweGM4LDB4MDUsMHgzYywweDAwLDB4YjksMHgwMCwweDIzLDB4YzAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4YzgsMHgwMCwweDM3IH19LAotIHsxNiwgMHg4ZTMwLCAwLCB7MHhmMCwweDBiLDB4ODAsMHgwMSwweDY0LDB4MDAsMHg0OSwweDAyLDB4MzMsMHhjMCwweDg0LDB4OWMsMHgwMywweDNjLDB4MDAsMHhiZiB9fSwKLSB7MTYsIDB4OGU0MCwgMCwgezB4MDIsMHgwZiwweGQwLDB4MDgsMHhmNCwweDAyLDB4MGUsMHgxMCwweGJkLDB4ODAsMHgzMywweGUwLDB4MDgsMHg5MCwweDBhLDB4MzIgfX0sCi0gezE2LCAweDhlNTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGIwLDB4MDYsMHgyMCwweGMwIH19LAotIHsxNiwgMHg4ZTYwLCAwLCB7MHgwOCwweDAwLDB4NDIsMHg4NCwweDAwLDB4YTAsMHgwMCwweDIwLDB4ZjAsMHgwYiwweDAwLDB4MjIsMHhjYywweDAwLDB4OTAsMHgwMCB9fSwKLSB7MTYsIDB4OGU3MCwgMCwgezB4MjgsMHhjMCwweDAyLDB4M2QsMHgwMiwweDhjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMiwweDlhLDB4MzgsMHgwMiwweDA2LDB4MDQgfX0sCi0gezE2LCAweDhlODAsIDAsIHsweGIxLDB4MTIsMHgyMCwweGUwLDB4MDgsMHgzMCwweDAyLDB4MzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZTkwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweGI2LDB4ODAsMHgyMSwweGUwLDB4MjgsMHhlYSwweDAyLDB4MzYsMHg4MCwweDg2LDB4OTAsMHg2NSB9fSwKLSB7MTYsIDB4OGVhMCwgMCwgezB4ZTAsMHgxYiwweGRhLDB4MDYsMHg1ZSwweDAxLDB4OWUsMHg4NCwweDI1LDB4ZWMsMHgwYSwweDc4LDB4MDIsMHg1ZSwweDAwLDB4YjcgfX0sCi0gezE2LCAweDhlYjAsIDAsIHsweDgwLDB4MmQsMHhlMCwweDA4LDB4NzksMHg0YSwweDE2LDB4NDAsMHhiZCwweDgwLDB4MjUsMHhlMCwweDA4LDB4MzgsMHgwMiwweDA4IH19LAotIHsxNiwgMHg4ZWMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhmYiwweDAwLDB4MjgsMHhlMCB9fSwKLSB7MTYsIDB4OGVkMCwgMCwgezB4MDgsMHgxOCwweDAyLDB4OGEsMHg4OCwweGExLDB4YTAsMHgyMCwweGMyLDB4MWYsMHgyYSwweDIzLDB4ZTYsMHhjOCwweGYwLDB4YzAgfX0sCi0gezE2LCAweDhlZTAsIDAsIHsweDNhLDB4ZWQsMHg0ZSwweDM0LDB4MDIsMHg4YywweDA4LDB4ZjMsMHg4MSwweDFlLDB4YzAsMHgwZSwweDMwLDB4MDMsMHgwZSwweGMwIH19LAotIHsxNiwgMHg4ZWYwLCAwLCB7MHhmMSwweDAwLDB4YjAsMHhjYSwweDBlLDB4MjEsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGYwMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDgsMHhmZSwweDEwLDB4M2YsMHhkMiwweDBmLDB4ZTAsMHgwMywweGVjLDB4MDQsMHhmZiwweDE0LDB4N2UgfX0sCi0gezE2LCAweDhmMTAsIDAsIHsweGMwLDB4MGYsMHhiMSwweDIzLDB4ZmMsMHgwMSwweGVlLDB4MDAsMHgzYSwweGM0LDB4MGQsMHhiMCwweDEzLDB4YmMsMHgwMCwweGZmIH19LAotIHsxNiwgMHg4ZjIwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZSwweGYwLDB4ODMsMHhmYywweDBjLDB4ZmQsMHgxMCwweDNiLDB4YzAsMHgyZiwweGUxLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4OGYzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDQwLDB4ZjAsMHg4MCwweDMyLDB4ZDAgfX0sCi0gezE2LCAweDhmNDAsIDAsIHsweDBjLDB4YTAsMHgwMywweDZjLDB4MDAsMHhmMywweDgwLDB4MzIsMHhkYSwweDBmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwIH19LAotIHsxNiwgMHg4ZjUwLCAwLCB7MHgzZSwweGNjLDB4NGMsMHg5OCwweDEzLDB4MmMsMHgxMCwweGZiLDB4MDQsMHgzZSwweGM0LDB4MGMsMHhmMiwweDgzLDB4YTYsMHgxMCB9fSwKLSB7MTYsIDB4OGY2MCwgMCwgezB4ZGQsMHgyMCwweDNmLDB4ZDEsMHgwYywweGIwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhmNzAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDgwLDB4YjcsMHgwMCwweDIxLDB4YzgsMHgwYywweDcwLDB4MDIsMHhkYywweDA4LDB4YjcsMHgwMCwweDIxIH19LAotIHsxNiwgMHg4ZjgwLCAwLCB7MHhjOCwweDBlLDB4NzAsMHgyMiwweGQ4LDB4MDAsMHhiNywweDAwLDB4MmMsMHhjMiwweDBhLDB4NzAsMHgwYSwweDFmLDB4MDgsMHhiNyB9fSwKLSB7MTYsIDB4OGY5MCwgMCwgezB4MDAsMHgzOSwweGM4LDB4MGEsMHg3MCwweDAyLDB4MTQsMHgwMCwweGM1LDB4NjksMHgyYywweGNhLDB4MmEsMHg3MCwweDAyLDB4ZDIgfX0sCi0gezE2LCAweDhmYTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweGJmLDB4ODEsMHg2NCwweGUxIH19LAotIHsxNiwgMHg4ZmIwLCAwLCB7MHgwOCwweDc4LDB4MDIsMHg1YSwweDAxLDB4YmYsMHg4MCwweDIxLDB4ZWMsMHg0YiwweDc4LDB4NDYsMHg5ZiwweDA4LDB4MzcsMHg4MCB9fSwKLSB7MTYsIDB4OGZjMCwgMCwgezB4MmQsMHhlOCwweDg4LDB4MTgsMHgwMiwweDFlLDB4ODEsMHhiNywweGIwLDB4MmQsMHhlMCwweDA5LDB4N2EsMHgwMiwweDhlLDB4MDAgfX0sCi0gezE2LCAweDhmZDAsIDAsIHsweDk1LDB4YTAsMHgyZCwweGU0LDB4MDgsMHg3OCwweDAyLDB4ZjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZmUwLCAwLCB7MHg0OCwweDE0LDB4ZWMsMHgwMCwweGIzLDB4NjAsMHgyMCwweGMwLDB4MDgsMHhiNiwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDEsMHgyMCB9fSwKLSB7MTYsIDB4OGZmMCwgMCwgezB4YzAsMHg4YSwweGIwLDB4ODYsMHhjZiwweDAwLDB4YmIsMHgxMCwweDZjLDB4YzEsMHgwYSwweDM4LDB4MDIsMHgwYywweDAxLDB4YjMgfX0sCi0gezE2LCAweDkwMDAsIDAsIHsweDAyLDB4MjgsMHhjMCwweDBiLDB4YjAsMHgwYSwweDBjLDB4MDAsMHg4MSwweDAwLDB4MmUsMHhjMCwweDBhLDB4YjQsMHg4MiwweGQyIH19LAotIHsxNiwgMHg5MDEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmZSwweDQwLDB4YjYsMHg4MCB9fSwKLSB7MTYsIDB4OTAyMCwgMCwgezB4MGMsMHhlNCwweDAzLDB4NzgsMHg4MCwweGZlLDB4NzQsMHgzMiwweDgwLDB4MGIsMHhlNiwweDAzLDB4ZjksMHgwMCwweGZlLDB4MDAgfX0sCi0gezE2LCAweDkwMzAsIDAsIHsweDNlLDB4ODAsMHgwYywweGUwLDB4MDMsMHgyOCwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAsMHg0ZCwweGEwLDB4MDMsMHhhOCwweDAwIH19LAotIHsxNiwgMHg5MDQwLCAwLCB7MHhkYSwweDA0LDB4M2UsMHg4MCwweDBjLDB4ZTQsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTA1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDJlLDB4ODAsMHgyMywweGUwLDB4MDAsMHhmOCwweDAxLDB4M2MgfX0sCi0gezE2LCAweDkwNjAsIDAsIHsweDAwLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgyMCwweGY4LDB4MjAsMHgzZSwweDAxLDB4OGYsMHg4OSwweDAzLDB4ZTAsMHgwMCwweGY4IH19LAotIHsxNiwgMHg5MDcwLCAwLCB7MHgwMCwweDNhLDB4MTAsMHgwZSwweDgwLDB4MDEsMHhlMCwweDAwLDB4ZTgsMHg0MCwweDdlLDB4MDAsMHg0ZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4OTA4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMSwweDdlLDB4NDAgfX0sCi0gezE2LCAweDkwOTAsIDAsIHsweDJjLDB4OTAsMHgwYiwweDI0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2OCwweDA1LDB4OTAsMHgxMywweGE0LDB4MDQsMHhkOSwweDAwIH19LAotIHsxNiwgMHg5MGEwLCAwLCB7MHgzMiwweDQxLDB4MGUsMHg5MSwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDYwLDB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4OTBiMCwgMCwgezB4ZjEsMHgwMCwweDMyLDB4NDAsMHg2OCwweDkwLDB4NDMsMHg4MiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkwYzAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHgwMCwweDZlLDB4NDAsMHgwOCwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlIH19LAotIHsxNiwgMHg5MGQwLCAwLCB7MHg3MCwweDg4LDB4OTAsMHgwMywweDI0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTgsMHgxMiwweGU0LDB4MDAsMHhiOSB9fSwKLSB7MTYsIDB4OTBlMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGEsMHg5MCwweDBhLDB4MjYsMHgwMCwweGI5LDB4ODAsMHhhMiwweDQwLDB4MDgsMHg5MCwweDEyLDB4MjAgfX0sCi0gezE2LCAweDkwZjAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweDg5LDB4MDQsMHgyYywweDQwIH19LAotIHsxNiwgMHg5MTAwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHgyNCwweDAxLDB4YjksMHgwMCwweDJhLDB4NDAsMHgwYiwweGIwLDB4MDIsMHhhNCwweDAxLDB4YjksMHgwMCB9fSwKLSB7MTYsIDB4OTExMCwgMCwgezB4ZTAsMHg0MCwweDBhLDB4OTAsMHg4MiwweGE0LDB4MDAsMHhiOSwweDAwLDB4MmMsMHg0OCwweDBhLDB4OTgsMHgwMiwweDI0LDB4ODAgfX0sCi0gezE2LCAweDkxMjAsIDAsIHsweDM5LDB4MjAsMHgyMiwweDQwLDB4MmEsMHg5MCwweDAyLDB4ODYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MTMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MDAsMHgyYywweDQ4LDB4MDgsMHgxMCwweDEyLDB4MDQsMHgxMCwweGIxLDB4MDQsMHgyYyB9fSwKLSB7MTYsIDB4OTE0MCwgMCwgezB4ZDgsMHgwYSwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjEsMHgwMCwweDIwLDB4NDgsMHgwOCwweDEwLDB4MDIsMHhjNCwweDgwLDB4YjEgfX0sCi0gezE2LCAweDkxNTAsIDAsIHsweDIyLDB4MmMsMHg1MCwweDhhLDB4MzIsMHg4MiwweDA1LDB4YTAsMHhiMSwweDJhLDB4MjAsMHg0YSwweDBhLDB4MTIsMHg4MiwweDAyIH19LAotIHsxNiwgMHg5MTYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NTAsMHhjOCwweDUyLDB4MmUsMHgxNCB9fSwKLSB7MTYsIDB4OTE3MCwgMCwgezB4MGMsMHg4NSwweDAzLDB4MjEsMHg0MCwweGY4LDB4NTAsMHgzYSwweDAwLDB4MWYsMHg4NSwweDAzLDB4YTEsMHg0MCwweGY4LDB4NTAgfX0sCi0gezE2LCAweDkxODAsIDAsIHsweDMyLDB4MTQsMHgwZSwweDgwLDB4MDMsMHhhMSwweDQwLDB4ZjgsMHg1MCwweDNjLDB4ODAsMHgwZSwweDAyLDB4MDMsMHgyMCwweDgwIH19LAotIHsxNiwgMHg5MTkwLCAwLCB7MHhmYSwweDIwLDB4MzIsMHgwOCwweDBlLDB4ODIsMHgxMywweGFlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTFhMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NTAsMHhmZCwweDAwLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmZCwweDAwLDB4M2UgfX0sCi0gezE2LCAweDkxYjAsIDAsIHsweDQ0LDB4OGQsMHhkMCwweDAxLDB4YmQsMHgwMCwweGZkLDB4MDIsMHgzZSwweDQ0LDB4MGYsMHhkNCwweDAwLDB4ZTQsMHg0OCwweDc5IH19LAotIHsxNiwgMHg5MWMwLCAwLCB7MHgxNCwweDNlLDB4NTAsMHgwZiwweDkyLDB4YTIsMHhmNCwweDA4LDB4ZmQsMHgwMCwweDNlLDB4NGEsMHgwZCwweGQyLDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4OTFkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNywweDAwLDB4ZjksMHgxMCwweDNhLDB4NmUgfX0sCi0gezE2LCAweDkxZTAsIDAsIHsweDBjLDB4YjEsMHgwMywweGU0LDB4NDAsMHhmOSwweDQ0LDB4M2IsMHg2MSwweDhlLDB4OTQsMHgwMywweGU0LDB4MDAsMHhlOSwweDQwIH19LAotIHsxNiwgMHg5MWYwLCAwLCB7MHgzMiwweDY2LDB4MGYsMHhkYSwweDBiLDB4YTcsMHgyOCwweGM5LDB4ZTAsMHgzZiwweDY4LDB4MGMsMHhkYSwweDgzLDB4YjMsMHgyMCB9fSwKLSB7MTYsIDB4OTIwMCwgMCwgezB4ZWQsMHhhMCwweDMzLDB4NzksMHgwOCwweGQ4LDB4MDMsMHg0NiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkyMTAsIDAsIHsweDM4LDB4MTAsMHhlMiwweDAwLDB4YjgsMHhhMCwweDJlLDB4MzgsMHgwOCwweDhhLDB4MDIsMHhlMiwweDg4LDB4ZTgsMHg4MSwweDJlIH19LAotIHsxNiwgMHg5MjIwLCAwLCB7MHgxNCwweDA5LDB4MGEsMHgwMywweGUyLDB4ODAsMHhiOCwweDgwLDB4MzIsMHgzMCwweDBiLDB4ODUsMHgwMiwweDIxLDB4MDEsMHhhOCB9fSwKLSB7MTYsIDB4OTIzMCwgMCwgezB4ZjQsMHgzOCwweDJhLDB4MDgsMHgwZSwweGNhLDB4MjMsMHg5MCwweGM4LDB4NTQsMHgzNCwweDM4LDB4MDgsMHg4YSwweDkyLDB4MGUgfX0sCi0gezE2LCAweDkyNDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHgwMCwweGIxLDB4MDAsMHgyOCwweDQwIH19LAotIHsxNiwgMHg5MjUwLCAwLCB7MHgxOSwweDEwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHgyMCwweDI4LDB4NDAsMHgwYiwweDEwLDB4MDYsMHhjNCwweDIwLDB4YTEsMHhhMiB9fSwKLSB7MTYsIDB4OTI2MCwgMCwgezB4NmMsMHg0OCwweDBiLDB4MTAsMHgwMiwweDg0LDB4MDgsMHg4MSwweDIwLDB4MmMsMHg1MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4MDQgfX0sCi0gezE2LCAweDkyNzAsIDAsIHsweGIxLDB4MDAsMHgyNCwweDU4LDB4MDgsMHgzYywweDAyLDB4NDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MjgwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMSwweGI5LDB4MjAsMHgyYywweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgxMCwweGE5LDB4NDAsMHgyZSB9fSwKLSB7MTYsIDB4OTI5MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDIsMHhhNCwweDAwLDB4YjEsMHgwMSwweDJhLDB4NDAsMHgwYiwweDk0LDB4MDIsMHgyNCwweDAwLDB4YTkgfX0sCi0gezE2LCAweDkyYTAsIDAsIHsweDAwLDB4MmEsMHg0MCwweDAxLDB4MTAsMHg1MiwweDY0LDB4MDAsMHg4OSwweDAwLDB4MjYsMHg0MCwweDAwLDB4OTgsMHgwMiwweDQ2IH19LAotIHsxNiwgMHg5MmIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweDYxLDB4M2EsMHg0MCB9fSwKLSB7MTYsIDB4OTJjMCwgMCwgezB4MGQsMHg5MCwweDgzLDB4ZTUsMHgyMCwweGY5LDB4MDEsMHgzYSwweDQwLDB4MmUsMHg5MCwweDAyLDB4ZTQsMHg0MCwweGU5LDB4MDEgfX0sCi0gezE2LCAweDkyZDAsIDAsIHsweDllLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhhNCwweDAwLDB4ODksMHgwMCwweDNlLDB4NDAsMHgyZCwweDkwLDB4MDIsMHhlNiwweDA4IH19LAotIHsxNiwgMHg5MmUwLCAwLCB7MHhiOSwweDAxLDB4MzYsMHg0MCwweDJjLDB4OTAsMHgwMSwweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTJmMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDJlLDB4OTAsMHgwMywweGU0LDB4ODAsMHhmOSwweDAwLDB4M2MgfX0sCi0gezE2LCAweDkzMDAsIDAsIHsweDQwLDB4MGMsMHg5YywweDIzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDQwLDB4MGYsMHgxMCwweDQzLDB4ODQsMHgwMCwweGY5IH19LAotIHsxNiwgMHg5MzEwLCAwLCB7MHgwMiwweDNlLDB4NDAsMHgwZSwweDkwLDB4MDMsMHg4MCwweDgwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgyZiwweDkwLDB4MDMsMHg4YSB9fSwKLSB7MTYsIDB4OTMyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHg0MCwweDM2LDB4MDEgfX0sCi0gezE2LCAweDkzMzAsIDAsIHsweDBkLDB4ODQsMHgwMywweGUxLDB4MDAsMHhlOCwweDQwLDB4M2UsMHgwOCwweDBjLDB4ODAsMHgwMywweGUxLDB4MDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHg5MzQwLCAwLCB7MHgzMiwweDAwLDB4OGYsMHg4MCwweDAzLDB4YTAsMHgxMCwweGY4LDB4MDAsMHgzMiwweDA0LDB4MGUsMHg4MCwweDgzLDB4NjAsMHgwMCB9fSwKLSB7MTYsIDB4OTM1MCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkzNjAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4OGEsMHgwMSwweDIyLDB4ODAsMHgwOCwweGEwLDB4MjQsMHhlOCwweDAwLDB4MGEsMHgwMCwweDJmIH19LAotIHsxNiwgMHg5MzcwLCAwLCB7MHg4MCwweDFhLDB4YTAsMHgwMiwweDI4LDB4MDAsMHhiYSwweDAwLDB4MTYsMHg4MCwweDBiLDB4ZTAsMHgwMywweDI4LDB4MDgsMHhlYSB9fSwKLSB7MTYsIDB4OTM4MCwgMCwgezB4MDAsMHgzMywweDkwLDB4MDgsMHhlYywweDFiLDB4MjIsMHg4MCwweGM2LDB4MTQsMHgyZiwweDkxLDB4MDgsMHhhMCwweDQzLDB4NGEgfX0sCi0gezE2LCAweDkzOTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDkzLDB4MDAsMHgyNCwweGMwIH19LAotIHsxNiwgMHg5M2EwLCAwLCB7MHgwOSwweDMwLDB4MTIsMHhjYywweDA0LDB4YTMsMHgwNCwweDZjLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg4YywweDAwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4OTNiMCwgMCwgezB4MmMsMHhjMCwweDEzLDB4MzAsMHgwMiwweDhjLDB4MDAsMHhiMywweDAwLDB4ZTYsMHhiOCwweDBhLDB4MzgsMHgwMiwweDQ0LDB4MDggfX0sCi0gezE2LCAweDkzYzAsIDAsIHsweDgyLDB4NTAsMHgyYywweGQyLDB4M2EsMHgzMCwweDAyLDB4OGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5M2QwLCAwLCB7MHhhMCwweDAxLDB4MGUsMHg4MCwweDk3LDB4YjQsMHgyMSwweGM0LDB4NDksMHg3MSwweDAyLDB4ZGUsMHg4MSwweDg3LDB4MjEsMHgyZCB9fSwKLSB7MTYsIDB4OTNlMCwgMCwgezB4ZDAsMHgwYiwweDdiLDB4MDIsMHgxYywweDAxLDB4YmYsMHgyMCwweDI5LDB4YzQsMHgwYiwweDMwLDB4MDIsMHg1YywweDAwLDB4YTcgfX0sCi0gezE2LCAweDkzZjAsIDAsIHsweGExLDB4MjEsMHhjMCwweDRhLDB4NzAsMHg4YSwweDBjLDB4ODEsMHg4NCwweDAwLDB4MmQsMHhkMCwweDBhLDB4NTAsMHgwMiwweGU4IH19LAotIHsxNiwgMHg5NDAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4ODIsMHhkZiwweGEwLDB4MzQsMHhlYyB9fSwKLSB7MTYsIDB4OTQxMCwgMCwgezB4MGQsMHg3OSwweDAyLDB4ZmUsMHg4MCwweGU3LDB4ZTgsMHgyZiwweGEwLDB4MDksMHg3YSwweDAyLDB4OWUsMHgwMCwweGY3LDB4YTIgfX0sCi0gezE2LCAweDk0MjAsIDAsIHsweDI1LDB4ZWEsMHgwYiwweDQ4LDB4MDMsMHg5ZSwweDA0LDB4ZmYsMHhjMCwweDY1LDB4ZTQsMHgwZSwweDY4LDB4MDMsMHg1ZiwweDAwIH19LAotIHsxNiwgMHg5NDMwLCAwLCB7MHhlNCwweDgwLDB4M2QsMHhlMCwweDBlLDB4ZjgsMHgwMywweGFhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTQ0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4NDgsMHhlYiwweDA1LDB4M2UsMHhkOSwweDBlLDB4YjIsMHgwMywweGVjLDB4MDAsMHhmYiwweDYwLDB4M2UgfX0sCi0gezE2LCAweDk0NTAsIDAsIHsweGMwLDB4MGUsMHhiMiwweDgzLDB4YWMsMHgwMCwweGYzLDB4NTAsMHhhNiwweGMwLDB4NGYsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiIH19LAotIHsxNiwgMHg5NDYwLCAwLCB7MHg4MCwweDNmLDB4ZDgsMHgwZCwweGEwLDB4MDMsMHhlYywweDBhLDB4ZjksMHgwMCwweDNlLDB4YzAsMHgwZCwweDkwLDB4MDMsMHg0MiB9fSwKLSB7MTYsIDB4OTQ3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4YmIsMHg5MCwweDNlLDB4ZTAgfX0sCi0gezE2LCAweDk0ODAsIDAsIHsweDA4LDB4MzksMHgwMywweDllLDB4MjAsMHhjZiwweDgyLDB4NzcsMHhlMCwweDFmLDB4ZjgsMHgwMywweGVlLDB4MDAsMHhmZiwweGMwIH19LAotIHsxNiwgMHg5NDkwLCAwLCB7MHgzZiwweGU1LDB4MGQsMHhmOSwweDAzLDB4ZWUsMHgwMCwweGZiLDB4OTAsMHgzNywweGEwLDB4MDgsMHhmOCwweDBmLDB4MWUsMHgwMCB9fSwKLSB7MTYsIDB4OTRhMCwgMCwgezB4Y2MsMHg5NCwweDMzLDB4NjAsMHgwZCwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk0YjAsIDAsIHsweGE4LDB4MTEsMHg5YywweDAwLDB4YjcsMHg5MCwweDJmLDB4ZTQsMHgwOCwweDdhLDB4MDIsMHgxZSwweDAwLDB4OGYsMHgxMiwweDI1IH19LAotIHsxNiwgMHg5NGMwLCAwLCB7MHhkOCwweDBiLDB4YmIsMHgwMiwweDFlLDB4MDAsMHhiNywweDAwLDB4MmQsMHhlOCwweDA4LDB4N2QsMHg4MiwweGRlLDB4NDAsMHhiYiB9fSwKLSB7MTYsIDB4OTRkMCwgMCwgezB4YTAsMHgyNywweDkwLDB4MGEsMHg3NiwweDAyLDB4NWMsMHg4MCwweDg1LDB4MDAsMHgzNywweGM0LDB4NGQsMHg3MSwweDAzLDB4ZWEgfX0sCi0gezE2LCAweDk0ZTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGI3LDB4MjAsMHgyZCwweGMwIH19LAotIHsxNiwgMHg5NGYwLCAwLCB7MHgyOSwweGYyLDB4MjIsMHhiYywweDgwLDB4OTcsMHgwMCwweDI1LDB4NDEsMHgwYiwweDcwLDB4MTIsMHg5YywweDAwLDB4YjcsMHgwOCB9fSwKLSB7MTYsIDB4OTUwMCwgMCwgezB4MjksMHhjMCwweDA4LDB4NDIsMHgxMiwweGRjLDB4NDAsMHhiNywweDAwLDB4MjksMHhjMCwweDA5LDB4NjAsMHgyMiwweGRjLDB4MTAgfX0sCi0gezE2LCAweDk1MTAsIDAsIHsweDgwLDB4MDAsMHgyMSwweDQwLDB4MDksMHg3MCwweDAyLDB4YzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NTIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4YzAsMHgyZSwweGMwLDB4MDgsMHgzNCwweDgyLDB4MmQsMHgwMCwweDkzLDB4MDAsMHgyNCB9fSwKLSB7MTYsIDB4OTUzMCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MDIsMHgwZiwweDgwLDB4MTMsMHgwMCwweDJjLDB4YzAsMHgwYSwweDM0LDB4YTIsMHhlYywweDAwLDB4YjMgfX0sCi0gezE2LCAweDk1NDAsIDAsIHsweDAwLDB4MjgsMHhjMCwweDBiLDB4MDAsMHgwMiwweGNjLDB4MDAsMHg4MSwweDAwLDB4MjAsMHhjMCwweDA5LDB4MzAsMHgwMiwweDg5IH19LAotIHsxNiwgMHg5NTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGJjLDB4MDAsMHhmZiwweGUwLDB4M2YsMHhjMCB9fSwKLSB7MTYsIDB4OTU2MCwgMCwgezB4MGMsMHhmNCwweDgzLDB4YmQsMHgwMCwweGRmLDB4MDgsMHgzNiwweDQwLDB4MGIsMHg3NSwweDQyLDB4ZmMsMHgyMCwweGZmLDB4ODAgfX0sCi0gezE2LCAweDk1NzAsIDAsIHsweDNiLDB4YzAsMHgyYywweDNjLDB4MDMsMHhmYywweDAwLDB4YmYsMHgwMCwweGJlLDB4YzAsMHg4ZCwweDkwLDB4MGIsMHhhYywweDAyIH19LAotIHsxNiwgMHg5NTgwLCAwLCB7MHhjYSwweDAwLDB4MjIsMHg4MCwweDBkLDB4YjAsMHgwMiwweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTU5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA4LDB4MWUsMHhjMCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHhlYiwweDAwLDB4M2EgfX0sCi0gezE2LCAweDk1YTAsIDAsIHsweDEwLDB4MGYsMHhiMCwweDIzLDB4YWMsMHgwMSwweGZiLDB4MDAsMHgzZSwweGMwLDB4M2MsMHg4NCwweDAzLDB4ZWMsMHgwMCwweGZiIH19LAotIHsxNiwgMHg5NWIwLCAwLCB7MHgwMCwweDI2LDB4NDAsMHgwZSwweDk0LDB4MGIsMHgyYywweDAwLDB4ZjksMHg0MCwweDNlLDB4OTAsMHgwZSwweDkwLDB4MTMsMHhlMCB9fSwKLSB7MTYsIDB4OTVjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAyLDB4Y2YsMHgwMCwweDNmLDB4YzAgfX0sCi0gezE2LCAweDk1ZDAsIDAsIHsweDBkLDB4ZjAsMHgwYiwweDNjLDB4MjAsMHhjZiwweDAwLDB4M2QsMHgwMCwweDBlLDB4ZjAsMHgwNywweDljLDB4MDEsMHhjZiwweDAyIH19LAotIHsxNiwgMHg5NWUwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhjNCwweDAzLDB4M2MsMHgwMCwweGNmLDB4MDAsMHgwZiwweGMwLDB4MGUsMHg0NCwweDAzLDB4MWYsMHgwMiB9fSwKLSB7MTYsIDB4OTVmMCwgMCwgezB4Y2MsMHgwMCwweDNmLDB4ODAsMHgyYywweDcwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk2MDAsIDAsIHsweDgxLDB4MDQsMHg2YywweDAwLDB4OGIsMHgwMiwweDJlLDB4YzAsMHgwZCwweGIwLDB4MDIsMHgyYywweDAwLDB4YWIsMHgwMCwweDA2IH19LAotIHsxNiwgMHg5NjEwLCAwLCB7MHgyMCwweDA4LDB4YjAsMHgwMywweGZjLDB4MDAsMHhhYiwweDAwLDB4MmUsMHhjMCwweDBmLDB4ODAsMHgwNiwweGJjLDB4MDAsMHhhYiB9fSwKLSB7MTYsIDB4OTYyMCwgMCwgezB4MDQsMHgzYSwweGYwLDB4MGMsMHg4OCwweDAyLDB4MmMsMHgwMCwweGM5LDB4ODAsMHgzYSwweDkyLDB4MDgsMHg5MCwweDBhLDB4YTAgfX0sCi0gezE2LCAweDk2MzAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweGFiLDB4MDAsMHgyZSwweGMwIH19LAotIHsxNiwgMHg5NjQwLCAwLCB7MHgwOSwweDMwLDB4MDIsMHgyYywweDAwLDB4OGIsMHgwMCwweDI2LDB4NjAsMHgwYiwweGIwLDB4MDIsMHhhYywweDAwLDB4OGIsMHgwMCB9fSwKLSB7MTYsIDB4OTY1MCwgMCwgezB4NmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweDJjLDB4MDAsMHg5YiwweDAwLDB4NGMsMHhlMCwweDBhLDB4OTAsMHgyMiwweDJjLDB4MDAgfX0sCi0gezE2LCAweDk2NjAsIDAsIHsweDhhLDB4YzIsMHgyYywweDQwLDB4MDgsMHhiMCwweDQyLDB4MjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NjcwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweDgzLDB4MGQsMHgyYywweGM2LDB4MDksMHgzMSwweDAyLDB4MGQsMHg4MSwweGEzLDB4MTEsMHgyNCB9fSwKLSB7MTYsIDB4OTY4MCwgMCwgezB4MDAsMHg4YSwweGIxLDB4ZTIsMHg0YywweDgwLDB4YTMsMHgwMCwweDJjLDB4Y2MsMHgwYiwweDAyLDB4MDIsMHg4YywweDgwLDB4YTMgfX0sCi0gezE2LCAweDk2OTAsIDAsIHsweDQ4LDB4MDgsMHhjMCwweDA4LDB4MDAsMHgwYSwweDBkLDB4MDAsMHg4MSwweDAwLDB4MjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweDgyIH19LAotIHsxNiwgMHg5NmEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhjYiwweDIwLDB4MmYsMHhjOCB9fSwKLSB7MTYsIDB4OTZiMCwgMCwgezB4OGQsMHhmNiwweDEzLDB4MmQsMHhiMCwweDhmLDB4MDAsMHgzNiwweDQwLDB4MGYsMHhmMCwweDAyLDB4YWQsMHhhOCwweDhmLDB4MTAgfX0sCi0gezE2LCAweDk2YzAsIDAsIHsweDNmLDB4Y2EsMHgwYiwweDgwLDB4OTIsMHgyYywweDEwLDB4ZGIsMHg0MCwweDNmLDB4YzAsMHgwZSwweDAwLDB4MDMsMHgyZCwweDA0IH19LAotIHsxNiwgMHg5NmQwLCAwLCB7MHhjOCwweDAyLDB4M2UsMHg0MCwweDBjLDB4YjAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTZlMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjOCwweDBlLDB4ZjEsMHgwMywweGVjLDB4ODQsMHhmZiwweDIwLDB4MzcgfX0sCi0gezE2LCAweDk2ZjAsIDAsIHsweDAwLDB4MGQsMHhiMiwweDAzLDB4YmMsMHhhMCwweGZmLDB4MDAsMHgzZSwweGM5LDB4MGUsMHg4MCwweDAzLDB4ZmQsMHgxMSwweGZmIH19LAotIHsxNiwgMHg5NzAwLCAwLCB7MHgwMCwweDNiLDB4YzAsMHgwZSwweGMwLDB4MDMsMHhmYywweDgwLDB4ZWQsMHgwMCwweDNiLDB4YzAsMHgwZiwweGYwLDB4NDMsMHg2OCB9fSwKLSB7MTYsIDB4OTcxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDkwLDB4Y2MsMHg5MiwweDNiLDB4YzggfX0sCi0gezE2LCAweDk3MjAsIDAsIHsweDBkLDB4ZjAsMHg4MywweDczLDB4MTAsMHhmZiwweDI4LDB4MzcsMHhjYSwweDRmLDB4YjIsMHgwMywweGZjLDB4MDAsMHhkZiwweDIwIH19LAotIHsxNiwgMHg5NzMwLCAwLCB7MHhiMywweGM0LDB4MGQsMHg2OCwweDQzLDB4ZmUsMHgxNCwweGNiLDB4ODQsMHgzMywweGUwLDB4MGQsMHg3OCwweDAzLDB4YmUsMHgwMCB9fSwKLSB7MTYsIDB4OTc0MCwgMCwgezB4ZmYsMHg4MCwweDM3LDB4YTAsMHgwYywweGYzLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk3NTAsIDAsIHsweDgwLDB4MDAsMHhmYywweDQ4LDB4ODIsMHgyMSwweDAzLDB4ZjQsMHgwZiwweGY2LDB4NDIsMHgyMCwweDA0LDB4OGEsMHg2MCwweDJiIH19LAotIHsxNiwgMHg5NzYwLCAwLCB7MHhkYSwweDBiLDB4ZjksMHgwMiwweDNmLDB4MDQsMHg4ZiwweDUyLDB4MjMsMHhkNSwweDRkLDB4ODgsMHgwMiwweGFlLDB4MDAsMHhkYiB9fSwKLSB7MTYsIDB4OTc3MCwgMCwgezB4ODAsMHgzNiwweGMwLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgwNCwweGI4LDB4MDAsMHgyMiwweDYwLDB4MGQsMHg3NCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweDk3ODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHhhMCwweDgwLDB4MDEsMHgwOCwweGMwIH19LAotIHsxNiwgMHg5NzkwLCAwLCB7MHg0YiwweDMwLDB4ODIsMHg0MiwweDkwLDB4YTMsMHgwOCwweDJjLDB4YzgsMHgxYSwweDMwLDB4MjIsMHg4ZCwweDAwLDB4OTMsMHgwMCB9fSwKLSB7MTYsIDB4OTdhMCwgMCwgezB4MjQsMHhjOCwweDA5LDB4YTAsMHgxMiwweDBjLDB4MDQsMHhhYiwweDAwLDB4NjIsMHhjMCwweDA5LDB4YjAsMHgwMiwweGNjLDB4MDAgfX0sCi0gezE2LCAweDk3YjAsIDAsIHsweGIzLDB4MDAsMHgyOCwweDgwLDB4MDgsMHgzNiwweDA2LDB4YTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5N2MwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwMCwweDg4LDB4MDgsMHgyMiwweGMwLDB4MGEsMHgzMCwweDFhLDB4MDAsMHgxMSwweDgyLDB4MDAsMHgwYSB9fSwKLSB7MTYsIDB4OTdkMCwgMCwgezB4YzAsMHgwYiwweGIwLDB4NDIsMHgyYywweDAwLDB4OGIsMHgwMCwweDI2LDB4YzAsMHgwOSwweDkxLDB4MDIsMHhlYywweDIwLDB4YmIgfX0sCi0gezE2LCAweDk3ZTAsIDAsIHsweDI4LDB4NjYsMHhjMCwweDA4LDB4ODAsMHgwMiwweDYwLDB4MDAsMHhiOCwweDAwLDB4MmEsMHg0MCwweDgxLDB4YjAsMHgwNiwweGY4IH19LAotIHsxNiwgMHg5N2YwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweGVjLDB4MDIsMHhjOCwweDA0LDB4M2EsMHhjMCB9fSwKLSB7MTYsIDB4OTgwMCwgMCwgezB4ODksMHhiMCwweDAzLDB4NjgsMHgwMCwweGU5LDB4YzEsMHgxZSwweGMxLDB4MGUsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGRiLDB4MDAgfX0sCi0gezE2LCAweDk4MTAsIDAsIHsweDM2LDB4YzEsMHgwZCwweDAwLDB4MjMsMHgwZSwweDAwLDB4ZWIsMHg4MCwweDMyLDB4YzgsMHhjZCwweDMwLDB4MzIsMHhlYywweDA4IH19LAotIHsxNiwgMHg5ODIwLCAwLCB7MHhmMywweDAwLDB4M2MsMHg4MCwweDBjLDB4YjAsMHgwNiwweDgwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTgzMCwgMCwgezB4ZTAsMHgwMSwweDljLDB4MDAsMHg3YywweDAwLDB4M2YsMHhjMCwweDBiLDB4YjAsMHg0MywweGZkLDB4MDAsMHhiZSwweGM0LDB4MzcgfX0sCi0gezE2LCAweDk4NDAsIDAsIHsweGMwLDB4MWYsMHhmMCwweDAzLDB4NWMsMHgwMCwweGZmLDB4MDEsMHgzYiwweGMwLDB4MGUsMHhjOCwweDAzLDB4YmYsMHgyMCwweGRmIH19LAotIHsxNiwgMHg5ODUwLCAwLCB7MHgwMCwweDNmLDB4ZDAsMHgwZiwweGMwLDB4MTMsMHhiMCwweDAwLDB4N2MsMHgwMCwweGI3LDB4NDAsMHgwZiwweGYwLDB4MWIsMHhiMCB9fSwKLSB7MTYsIDB4OTg2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDBjLDB4ZDgsMHg0MSwweDMyLDB4YzAgfX0sCi0gezE2LCAweDk4NzAsIDAsIHsweDBlLDB4YjAsMHgwNywweGE4LDB4MDEsMHg2OSwweDQwLDB4YjIsMHhjMCwweDhkLDB4YjAsMHhhMywweGVjLDB4MDgsMHhmMywweDAwIH19LAotIHsxNiwgMHg5ODgwLCAwLCB7MHgzMiwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWQsMHgwMCwweGZiLDB4NDgsMHgzYSwweGMwLDB4MGQsMHhiMCwweDgzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4OTg5MCwgMCwgezB4ZmIsMHgyMCwweDNlLDB4ODAsMHgwZiwweDcwLDB4MjMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk4YTAsIDAsIHsweGM4LDB4MDUsMHgzYywweDAwLDB4ODgsMHgwMCwweDIzLDB4YzAsMHgwOCwweGYwLDB4MDYsMHgyYywweDEwLDB4ODgsMHg1MSwweDM3IH19LAotIHsxNiwgMHg5OGIwLCAwLCB7MHhjMCwweDA4LDB4ZjAsMHgwNywweDdkLDB4NjAsMHg4ZiwweDAyLDB4MzcsMHhjMCwweDBiLDB4OGMsMHgwMCwweDJkLDB4MDAsMHhiMyB9fSwKLSB7MTYsIDB4OThjMCwgMCwgezB4MDAsMHgzOCwweGMwLDB4MDgsMHg4MCwweDgyLDB4MjAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDUwLDB4MGIsMHhmMCwweDAwLDB4MzIgfX0sCi0gezE2LCAweDk4ZDAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweDk4LDB4MDAsMHgyOCwweGMwIH19LAotIHsxNiwgMHg5OGUwLCAwLCB7MHgwYSwweDMwLDB4MDIsMHg4NCwweDA0LDB4YTMsMHgwMCwweDAwLDB4YzAsMHg2OCwweDM5LDB4MDYsMHgwYywweDEwLDB4OTMsMHgyMCB9fSwKLSB7MTYsIDB4OThmMCwgMCwgezB4MjIsMHhjMCwweDliLDB4MDEsMHhhMCwweDhmLDB4MTQsMHgzMywweDE0LDB4MjgsMHhjMCwweDA5LDB4M2MsMHgwMiwweDBjLDB4MDEgfX0sCi0gezE2LCAweDk5MDAsIDAsIHsweDkzLDB4NDAsMHgyYywweDg4LDB4MGIsMHgzMCwweDAyLDB4YjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OTEwLCAwLCB7MHg2MCwweDAxLDB4MWUsMHgxMCwweDg3LDB4ODAsMHgyOSwweGUwLDB4MDgsMHg3OCwweDAyLDB4M2UsMHgwMCwweDgzLDB4OTAsMHgyNCB9fSwKLSB7MTYsIDB4OTkyMCwgMCwgezB4ZTAsMHgwOCwweDc4LDB4MTAsMHhjZSwweDA0LDB4MDcsMHg5MSwweDI1LDB4ZTAsMHg4MywweGM5LDB4MDIsMHgxZSwweDA0LDB4YjcgfX0sCi0gezE2LCAweDk5MzAsIDAsIHsweDg0LDB4MmIsMHhhNCwweDA4LDB4NDgsMHg0MiwweDEyLDB4Y2MsMHhiNCwweDgwLDB4MmQsMHg2NCwweDBiLDB4NzgsMHgwMiwweDE5IH19LAotIHsxNiwgMHg5OTQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDJjLDB4MDAsMHhkMCwweDEwLDB4MjgsMHhjOCB9fSwKLSB7MTYsIDB4OTk1MCwgMCwgezB4MGUsMHgzYiwweDAyLDB4ODQsMHgwMCwweGUzLDB4NDAsMHgzMCwweGM4LDB4MGMsMHgzOCwweDYyLDB4OGMsMHgwMCwweDUzLDB4MDAgfX0sCi0gezE2LCAweDk5NjAsIDAsIHsweDMwLDB4YzQsMHgxZiwweDAwLDB4MjMsMHg4YywweDNjLDB4ZjMsMHg4MCwweDE4LDB4YzAsMHgwZCwweDMwLDB4MDMsMHgwZSwweDgwIH19LAotIHsxNiwgMHg5OTcwLCAwLCB7MHhkMywweDEwLDB4M2MsMHg4MCwweDBmLDB4MzAsMHgwMywweDkyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTk4MCwgMCwgezB4NDAsMHgxZCwweGJkLDB4MDAsMHhmOSwweDEyLDB4YjQsMHhjMCwweDA3LDB4YjAsMHgwMywweGNjLDB4MDAsMHg0YSwweDAwLDB4NzcgfX0sCi0gezE2LCAweDk5OTAsIDAsIHsweGMwLDB4MGUsMHg3MSwweDQzLDB4NmMsMHgwMCwweGYzLDB4MDAsMHgzZiwweGQwLDB4MWYsMHhkMCwweDUzLDB4YWMsMHg2OCwweGZiIH19LAotIHsxNiwgMHg5OWEwLCAwLCB7MHgxOCwweDNkLDB4YzAsMHgwZiwweGMwLDB4MTMsMHhmMCwweDUwLDB4ZmMsMHgwNCwweDNmLDB4NDAsMHgwZiwweGY0LDB4MDMsMHg5MCB9fSwKLSB7MTYsIDB4OTliMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZCwweDQwLDB4ZjgsMHgwNCwweDNlLDB4ZDIgfX0sCi0gezE2LCAweDk5YzAsIDAsIHsweDBmLDB4YjMsMHgxMywweGUwLDB4MTAsMHhmOSwweDAwLDB4YjIsMHhjYywweDBlLDB4YmEsMHgwMywweDZkLDB4ODAsMHhkYiwweDAyIH19LAotIHsxNiwgMHg5OWQwLCAwLCB7MHgzMiwweGRjLDB4NGYsMHgwMCwweDAzLDB4NmMsMHgwNCwweGYzLDB4MDIsMHgzNiwweDQwLDB4MGUsMHhiMCwweDAzLDB4Y2MsMHgwMCB9fSwKLSB7MTYsIDB4OTllMCwgMCwgezB4NGIsMHgwMCwweDNjLDB4ODAsMHgwYywweGYxLDB4MDMsMHg2MiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk5ZjAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDAwLDB4YjQsMHgwMCwweDJkLDB4YzksMHgwYiwweDcwLDB4ODIsMHhkYywweDAwLDB4YmMsMHgwNCwweDIxIH19LAotIHsxNiwgMHg5YTAwLCAwLCB7MHhjNCwweDRiLDB4MzcsMHgwMiwweDBjLDB4YTAsMHg4ZiwweDc0LDB4MjEsMHhjMCwweDBiLDB4NDAsMHgwMiwweDFjLDB4ODEsMHhiNyB9fSwKLSB7MTYsIDB4OWExMCwgMCwgezB4MjAsMHgyYiwweGMwLDB4MDgsMHg0MCwweDAyLDB4ZDAsMHgwMiwweDg0LDB4MDAsMHgyZCwweDQwLDB4MGEsMHhmMiwweDAyLDB4MTIgfX0sCi0gezE2LCAweDlhMjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHg4MCwweGI0LDB4YzAsMHgyZCwweGU0IH19LAotIHsxNiwgMHg5YTMwLCAwLCB7MHgwYiwweDdhLDB4MDIsMHhkMiwweDAwLDB4YjUsMHg4OCwweDIxLDB4ZTgsMHgwYSwweDc4LDB4MDIsMHhkZSwweDQwLDB4OTcsMHgwMCB9fSwKLSB7MTYsIDB4OWE0MCwgMCwgezB4MjEsMHhlOCwweDBiLDB4Y2MsMHg0NiwweDVlLDB4MjgsMHhiNywweGM0LDB4MjEsMHhmMCwweDBhLDB4NzgsMHgwMiwweGZlLDB4MDggfX0sCi0gezE2LCAweDlhNTAsIDAsIHsweDk3LDB4ODQsMHgyZCwweGEwLDB4MDgsMHg3OCwweDAyLDB4NzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YTYwLCAwLCB7MHgwOCwweDE0LDB4Y2MsMHgwMCwweGIwLDB4YzAsMHgyYywweGMwLDB4OWIsMHhiMCwweDAyLDB4Y2MsMHgyMCwweGIzLDB4NjAsMHgyMiB9fSwKLSB7MTYsIDB4OWE3MCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMsMHgwMSwweDIwLDB4YzAsMHgxYiwweDA2LDB4MTYsMHg0ZiwweDAwLDB4YjMgfX0sCi0gezE2LCAweDlhODAsIDAsIHsweGEwLDB4MmEsMHhmMCwweDA4LDB4MDAsMHgwMiwweGUwLDB4MDAsMHg5MCwweDAwLDB4MmMsMHg0MCwweDBhLDB4MzAsMHgwMiwweDAyIH19LAotIHsxNiwgMHg5YTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MTAsMHhmZSwweGMwLDB4M2UsMHg4MCB9fSwKLSB7MTYsIDB4OWFhMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4ZjksMHgwOCwweGZlLDB4NDAsMHgyMiwweDgwLDB4MGUsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGQyLDB4MDAgfX0sCi0gezE2LCAweDlhYjAsIDAsIHsweDMyLDB4ODAsMHg4ZiwweGUwLDB4MDMsMHg1OCwweDAwLDB4ZjYsMHgwMCwweDMzLDB4YjAsMHgwZSwweDIwLDB4MDIsMHhlOCwweDBjIH19LAotIHsxNiwgMHg5YWMwLCAwLCB7MHhkMiwweDAyLDB4M2MsMHg4MCwweDBjLDB4YTAsMHgwMywweDdhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWFkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDIwLDB4M2UsMHgwMSwweDBiLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmMCwweDQwLDB4M2UgfX0sCi0gezE2LCAweDlhZTAsIDAsIHsweDAwLDB4NTcsMHg4MCwweDIzLDB4MDAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDAzLDB4YTAsMHgzMCwweDM4IH19LAotIHsxNiwgMHg5YWYwLCAwLCB7MHgwMCwweDNhLDB4MDgsMHgwZiwweGM0LDB4MDMsMHhmMCwweDAwLDB4ZWMsMHgwMCwweDNmLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4OWIwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMSwweDNjLDB4NDggfX0sCi0gezE2LCAweDliMTAsIDAsIHsweDRjLDB4OTAsMHgwYiwweDI0LDB4MDEsMHhjOSwweGMwLDB4MzIsMHg0MCwweGFjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhkOSwweDQwIH19LAotIHsxNiwgMHg5YjIwLCAwLCB7MHgzMCwweDQwLDB4MGQsMHg5YSwweDAzLDB4MjIsMHg4NCwweGM4LDB4MTQsMHgzMiwweDQwLDB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4OWIzMCwgMCwgezB4YzksMHgwMCwweDgyLDB4NjgsMHgyYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDliNDAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MjIsMHgyNCwweDAwLDB4ODksMHgwMiwweDgyIH19LAotIHsxNiwgMHg5YjUwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgwMiwweGU3LDB4NDAsMHg4OSwweDgwLDB4MzYsMHg0MSwweDhkLDB4MTgsMHgwMiwweGEwLDB4MjQsMHhhOCB9fSwKLSB7MTYsIDB4OWI2MCwgMCwgezB4MDQsMHg2MiwweDQwLDB4MDgsMHg5NCwweDgzLDB4MjQsMHgwMCwweDg5LDB4MDEsMHgyMiwweDcyLDB4MDgsMHg5MCwweDBiLDB4MjAgfX0sCi0gezE2LCAweDliNzAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MDQsMHgwMCwweDk5LDB4MDAsMHgyYSwweDQwIH19LAotIHsxNiwgMHg5YjgwLCAwLCB7MHgyOCwweDkwLDB4MTIsMHgwNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhhNCwweDIwLDB4OTksMHgwMCB9fSwKLSB7MTYsIDB4OWI5MCwgMCwgezB4MjIsMHg0MCwweDE4LDB4OTAsMHgwNiwweDIwLDB4MDEsMHg4OCwweDA4LDB4NjIsMHg0MCwweDBhLDB4OTAsMHgwMiwweDM0LDB4MTAgfX0sCi0gezE2LCAweDliYTAsIDAsIHsweDhkLDB4ODEsMHgyMywweDQxLDB4MDgsMHgxMCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YmIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MDQsMHgyYywweDQ4LDB4MDgsMHgxMiwweDAyLDB4MDQsMHgwMiwweDgzLDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4OWJjMCwgMCwgezB4NDgsMHgwOCwweDEyLDB4MDIsMHhjNCwweDgwLDB4ODMsMHg2MCwweDI0LDB4NDgsMHgxOSwweDM0LDB4NjIsMHhhNSwweDA0LDB4YTEgfX0sCi0gezE2LCAweDliZDAsIDAsIHsweDAyLDB4NjAsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDU0LDB4MDAsMHg4ZCwweDAwLDB4MjksMHg0MCwweDA4LDB4MTIsMHg4MiwweDAyIH19LAotIHsxNiwgMHg5YmUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUwLDB4M2EsMHg4MCB9fSwKLSB7MTYsIDB4OWJmMCwgMCwgezB4MGMsMHg4NSwweDAyLDB4MjEsMHg0NCwweDg4LDB4NTAsMHgzMiwweDE0LDB4NGMsMHg4MCwweDQzLDB4ZTAsMHgwMCwweGQ4LDB4MDAgfX0sCi0gezE2LCAweDljMDAsIDAsIHsweDIyLDB4MTQsMHgwYywweDgwLDB4MDMsMHgyMCwweDAwLDB4YzgsMHgwMCwweGEyLDB4MDAsMHgwZSwweDgwLDB4MDMsMHgyMCwweDAwIH19LAotIHsxNiwgMHg5YzEwLCAwLCB7MHhjOCwweDAwLDB4MzMsMHgwMCwweDBjLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWMyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDQsMHhmZCwweDAwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGY0LDB4MTAsMHhmZiwweDEwLDB4M2UgfX0sCi0gezE2LCAweDljMzAsIDAsIHsweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MTAsMHgzZSwweDQ0LDB4MGIsMHhmMCwweDEzLDB4ZTUsMHgxMCwweGY5IH19LAotIHsxNiwgMHg5YzQwLCAwLCB7MHg0MCwweDNmLDB4NGEsMHgyZiwweDkyLDB4OGEsMHhhNCwweGEyLDB4ZjksMHgyOCwweDM2LDB4NDAsMHgwZiwweDkyLDB4ODMsMHhhNiB9fSwKLSB7MTYsIDB4OWM1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhlNiwweGMwLDB4YzEsMHgwMCwweDNmLDB4NjkgfX0sCi0gezE2LCAweDljNjAsIDAsIHsweDBjLDB4OWEsMHg0MywweDZjLDB4MDAsMHhmZCwweGEwLDB4M2UsMHg3OCwweDJjLDB4ZDgsMHgwNywweGQ2LDB4MDIsMHhkNSwweDk2IH19LAotIHsxNiwgMHg5YzcwLCAwLCB7MHgzMiwweDc4LDB4MGQsMHg5MCwweDAzLDB4MjcsMHgwMCwweGZkLDB4YTAsMHgzNSwweDUwLDB4MDYsMHhkNCwweDAzLDB4ZTUsMHgwMCB9fSwKLSB7MTYsIDB4OWM4MCwgMCwgezB4ZmQsMHg0MCwweGIzLDB4NDAsMHgwZiwweDk4LDB4YTMsMHg0NiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDljOTAsIDAsIHsweDM4LDB4MTAsMHhlMywweGMyLDB4ODgsMHg4OCwweDJlLDB4MTQsMHhhOCwweDhhLDB4YzIsMHgyMiwweGEwLDB4YjgsMHhjMCwweDJjIH19LAotIHsxNiwgMHg5Y2EwLCAwLCB7MHgyNCwweDQ4LDB4ODQsMHgwMiwweGUxLDB4MDAsMHg5OCwweGM0LDB4MjAsMHgzYywweDA4LDB4OGEsMHg4MiwweDIzLDB4ODAsMHhiOCB9fSwKLSB7MTYsIDB4OWNiMCwgMCwgezB4MDQsMHgyMiwweDIwLDB4MDgsMHg4OCwweDAzLDB4YTIsMHgwMCwweGI4LDB4YTAsMHgyMiwweDAwLDB4MGIsMHg4OCwweDAyLDB4MGUgfX0sCi0gezE2LCAweDljYzAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHg4MCwweGExLDB4MjAsMHg2YywweDQwIH19LAotIHsxNiwgMHg5Y2QwLCAwLCB7MHgwYSwweDE0LDB4MDIsMHg0NCwweDA0LDB4YTEsMHg2OCwweDJjLDB4NDgsMHgwOCwweDE0LDB4MDIsMHhjNSwweDAwLDB4ODEsMHg2MCB9fSwKLSB7MTYsIDB4OWNlMCwgMCwgezB4MjAsMHg0OCwweDE5LDB4OTAsMHgwMiwweDg1LDB4ODEsMHhiMSwweDQwLDB4MjQsMHg2OCwweDBhLDB4MTIsMHg0MiwweGM0LDB4ODAgfX0sCi0gezE2LCAweDljZjAsIDAsIHsweGI5LDB4MjAsMHgyMCwweDQwLDB4OGIsMHgxMCwweDgyLDB4NDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZDAwLCAwLCB7MHgxOCwweDA1LDB4YTQsMHgxMCwweGE5LDB4MDAsMHg2ZSwweGMwLDB4MGEsMHgxMCwweDAyLDB4MjQsMHgxNCwweGI5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4OWQxMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MTIsMHhlNCwweDAwLDB4OTksMHgwMCwweDIyLDB4NDAsMHgwOCwweDgwLDB4MDYsMHhhMCwweDYwLDB4YjkgfX0sCi0gezE2LCAweDlkMjAsIDAsIHsweDA5LDB4MjIsMHg2MCwweDA4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHhiOSwweDAwLDB4MDIsMHg0MCwweDBiLDB4MTAsMHgwNiwweDA2IH19LAotIHsxNiwgMHg5ZDMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU0LDB4MDAsMHhlOSwweDgwLDB4M2UsMHg0MSB9fSwKLSB7MTYsIDB4OWQ0MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4NjQsMHgwMCwweGU5LDB4YzAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGM5LDB4MDAgfX0sCi0gezE2LCAweDlkNTAsIDAsIHsweDIyLDB4NDEsMHgwZCwweDgwLDB4MDIsMHhhMywweDA0LDB4ZjEsMHg0MCwweDM2LDB4NDAsMHgwZSwweDkwLDB4MDIsMHhlNCwweDAwIH19LAotIHsxNiwgMHg5ZDYwLCAwLCB7MHhmMSwweDAwLDB4MTIsMHg0MCwweDBmLDB4OTAsMHgwMywweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWQ3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhkOSwweDIyLDB4M2UsMHg0MiwweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhiOSwweGM0LDB4M2MgfX0sCi0gezE2LCAweDlkODAsIDAsIHsweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDIsMHhhZSwweDQwLDB4MGYsMHg4MCwweDRiLDB4NjIsMHgxMCwweGY5IH19LAotIHsxNiwgMHg5ZDkwLCAwLCB7MHgyMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMiwweDdlLDB4NDEsMHgwZiwweDkwLDB4MTMsMHhjYSB9fSwKLSB7MTYsIDB4OWRhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHg4MCwweDAwLDB4YzgsMHgwMCwweDM4LDB4MDAgfX0sCi0gezE2LCAweDlkYjAsIDAsIHsweDBmLDB4ODAsMHgyMCwweGUwLDB4MDAsMHhhOCwweDIwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwNywweGUwLDB4ODAsMHhjOCwweDAwIH19LAotIHsxNiwgMHg5ZGMwLCAwLCB7MHgzOCwweDAwLDB4MGQsMHg4MCwweDgzLDB4MjEsMHgxMCwweGY4LDB4NjAsMHgzMiwweDAwLDB4OGUsMHg4MCwweGIzLDB4MjAsMHgwOCB9fSwKLSB7MTYsIDB4OWRkMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlkZTAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDA0LDB4OGEsMHgwMCwweDMzLDB4OTAsMHg0MywweGEwLDB4MjIsMHgyOCwweDAwLDB4OGUsMHg4MCwweDc2IH19LAotIHsxNiwgMHg5ZGYwLCAwLCB7MHg4MCwweDA4LDB4ZTEsMHgwMywweDE5LDB4MDAsMHg4NiwweDgwLDB4MjIsMHg4MCwweDBkLDB4NjAsMHgwMSwweDc4LDB4MDAsMHhiZSB9fSwKLSB7MTYsIDB4OWUwMCwgMCwgezB4MDAsMHgzNiwweDgwLDB4MGMsMHhlNCwweDAyLDB4YTgsMHgxMCwweGJlLDB4YTAsMHgyZiwweDgwLDB4MGQsMHhhMCwweDAyLDB4MGEgfX0sCi0gezE2LCAweDllMTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDExLDB4NGMsMHgwNCwweDAzLDB4MDQsMHgyYywweGQ0IH19LAotIHsxNiwgMHg5ZTIwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHg0YywweDAxLDB4YTMsMHhjNCwweDIwLDB4YzAsMHgyOCwweDM1LDB4MDIsMHg4NiwweDAwLDB4ODMsMHg4MCB9fSwKLSB7MTYsIDB4OWUzMCwgMCwgezB4MjgsMHhjMCwweDA4LDB4MzgsMHgwNiwweDBlLDB4OTQsMHgzMCwweGMwLDB4YTIsMHhjMCwweDBiLDB4M2MsMHgwMiwweDBjLDB4MDAgfX0sCi0gezE2LCAweDllNDAsIDAsIHsweGIzLDB4ODAsMHgyYywweDQ4LDB4MDgsMHgzMCwweDAyLDB4OGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZTUwLCAwLCB7MHhhMCwweDAxLDB4MGMsMHgwNCwweDhmLDB4ODAsMHgyMSwweGMxLDB4MWIsMHg3MiwweDQyLDB4MWUsMHhjMCwweDgzLDB4ODgsMHgyMSB9fSwKLSB7MTYsIDB4OWU2MCwgMCwgezB4YzAsMHgxOCwweDI4LDB4MDYsMHgxMCwweDIxLDB4ODYsMHgzOCwweDIxLDB4YzAsMHgxOSwweGY3LDB4MDIsMHg1ZCwweGMwLDB4YjQgfX0sCi0gezE2LCAweDllNzAsIDAsIHsweDQxLDB4MjcsMHhkMCwweDA4LDB4NzgsMHhjNiwweDljLDB4MDAsMHhiNywweDAwLDB4MmYsMHg2MCwweDA5LDB4NzIsMHgwMiwweDI4IH19LAotIHsxNiwgMHg5ZTgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDIsMHhjNywweDgwLDB4MmQsMHhhMCB9fSwKLSB7MTYsIDB4OWU5MCwgMCwgezB4MGYsMHgzZSwweDAzLDB4ZmUsMHg4MCwweGE3LDB4ODAsMHhhMSwweGUwLDB4MGMsMHg3OCwweDAyLDB4OTQsMHgwMCwweDg1LDB4YTAgfX0sCi0gezE2LCAweDllYTAsIDAsIHsweDM5LDB4ZTQsMHgwYywweDc4LDB4MTMsMHgxZSwweDkwLDB4YjUsMHg4NCwweDMxLDB4ZTAsMHgwZiwweGY4LDB4ODcsMHgxZSwweDA0IH19LAotIHsxNiwgMHg5ZWIwLCAwLCB7MHhmNywweDgwLDB4M2QsMHg2MCwweDBjLDB4M2IsMHgwMywweGFhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWVjMCwgMCwgezB4MDgsMHgxZCwweGFkLDB4ZTQsMHhmYiwweDU0LDB4M2UsMHg4MCwweDBmLDB4YjQsMHgyMywweGVjLDB4MzIsMHhmYiwweDAwLDB4M2UgfX0sCi0gezE2LCAweDllZDAsIDAsIHsweGQ4LDB4NGYsMHhhMCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGYsMHgzMCwweDMzLDB4ZWMsMHgwNCwweGYyIH19LAotIHsxNiwgMHg5ZWUwLCAwLCB7MHgwMSwweDNlLDB4YzAsMHgwZiwweGIyLDB4MDMsMHhmZSwweDEwLDB4ZmIsMHg2OCwweDNjLDB4NDEsMHgwZiwweGYwLDB4NDMsMHg4MiB9fSwKLSB7MTYsIDB4OWVmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4Y2YsMHhlNCwweDNmLDB4ZTQgfX0sCi0gezE2LCAweDlmMDAsIDAsIHsweDBjLDB4ZmMsMHgwMywweDdlLDB4ODAsMHhjZiwweDgxLDB4MzMsMHhmYSwweDBmLDB4ZjgsMHgwMywweGY2LDB4MDAsMHhmZiwweDgwIH19LAotIHsxNiwgMHg5ZjEwLCAwLCB7MHgzZiwweGUyLDB4MGYsMHg3OSwweDAzLDB4M2UsMHg0MCwweGY0LDB4ODAsMHgzMywweDYwLDB4MGMsMHhlOCwweDAzLDB4M2UsMHgwMCB9fSwKLSB7MTYsIDB4OWYyMCwgMCwgezB4ZmYsMHg4MCwweDMzLDB4NjAsMHgwYywweGY4LDB4ODMsMHg1MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlmMzAsIDAsIHsweGE4LDB4MTEsMHg5YywweDAwLDB4ZDcsMHhhMCwweDJkLDB4YzQsMHgwOCwweGJhLDB4MDIsMHgzYywweGEwLDB4ODcsMHgyMCwweDIxIH19LAotIHsxNiwgMHg5ZjQwLCAwLCB7MHhjMCwweDBmLDB4NTIsMHgwMywweGQ0LDB4MDAsMHhiNiwweDEwLDB4MmQsMHhjMCwweDhiLDB4NzMsMHgwMywweDVjLDB4NDAsMHhiNCB9fSwKLSB7MTYsIDB4OWY1MCwgMCwgezB4YjAsMHgyYiwweDQ4LDB4MjgsMHg0MSwweDAyLDB4MGMsMHgwMCwweGJmLDB4MTgsMHgzNSwweDQ2LDB4MjgsMHg3MiwweDQyLDB4MmEgfX0sCi0gezE2LCAweDlmNjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAwLDB4OWMsMHgwMCwweDg3LDB4NDEsMHgyZCwweDQ0IH19LAotIHsxNiwgMHg5ZjcwLCAwLCB7MHgwYSwweDczLDB4MDIsMHg5YywweGM0LDB4ODEsMHgwMCwweDZkLDB4YzgsMHg4YiwweDcwLDB4MDIsMHhkNCwweDAwLDB4YjcsMHgwMCB9fSwKLSB7MTYsIDB4OWY4MCwgMCwgezB4MmQsMHhjMCwweDBiLDB4ZjAsMHg0NiwweDljLDB4NTUsMHhiNCwweDIwLDB4MjUsMHg0MCwweDE4LDB4NjAsMHg4MiwweDFjLDB4MDAgfX0sCi0gezE2LCAweDlmOTAsIDAsIHsweGI3LDB4MDAsMHgyMywweDQwLDB4MDgsMHg3MCwweDQ2LDB4NDQsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZmEwLCAwLCB7MHg2MCwweDE0LDB4Y2MsMHgwMCwweDkzLDB4MDAsMHgyYywweDQwLDB4MGIsMHhiMCwweDAyLDB4MGMsMHg4MiwweDgwLDB4YzAsMHgyMCB9fSwKLSB7MTYsIDB4OWZiMCwgMCwgezB4YzAsMHgwYSwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgxYiwweDMwLDB4MDAsMHhjZCwweDAxLDB4YjAgfX0sCi0gezE2LCAweDlmYzAsIDAsIHsweDQwLDB4YWMsMHg3OCwweDg4LDB4OGMsMHgwNiwweDBkLDB4NjAsMHhiMywweDRjLDB4MjQsMHgxMiwweDA4LDB4MzAsMHgwYSwweDE4IH19LAotIHsxNiwgMHg5ZmQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgxNSwweGJjLDB4MDAsMHhjNywweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4OWZlMCwgMCwgezB4MGUsMHhmMCwweDJhLDB4YmYsMHgwMCwweGM4LDB4YzgsMHhiZiwweGMwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwNCwweGJmLDB4MDAgfX0sCi0gezE2LCAweDlmZjAsIDAsIHsweDNmLDB4YzAsMHgwZiwweGIyLDB4MGEsMHhhYywweDAwLDB4ZjgsMHg4MCwweDM0LDB4NDksMHgwYywweGI5LDB4MGIsMHgzZiwweDAwIH19LAotIHsxNiwgMHhhMDAwLCAwLCB7MHhmYiwweGMwLDB4MzAsMHhmMCwweDBjLDB4ZjAsMHgwMywweDZlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTAxMCwgMCwgezB4ODAsMHgwMCwweGNjLDB4MDAsMHhmYiwweDgwLDB4M2UsMHg0MSwweDJjLDB4YjAsMHgxMywweGFjLDB4MDAsMHhmOCwweDAwLDB4M2UgfX0sCi0gezE2LCAweGEwMjAsIDAsIHsweGMxLDB4MGYsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4NDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDBiLDB4NmQsMHg0MCwweGY4IH19LAotIHsxNiwgMHhhMDMwLCAwLCB7MHgxMCwweDNhLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhlYywweDEwLDB4ZmUsMHg0MCwweDNlLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlMSB9fSwKLSB7MTYsIDB4YTA0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhlYywweDBjLDB4ZGYsMHgwMCwweDNiLDB4ODAgfX0sCi0gezE2LCAweGEwNTAsIDAsIHsweDBmLDB4ZjAsMHgwYiwweDNjLDB4MDgsMHhlNywweDA4LDB4MzMsMHhjMCwweDBiLDB4ZDAsMHgyMywweDc0LDB4MDAsMHg1NCwweDAwIH19LAotIHsxNiwgMHhhMDYwLCAwLCB7MHgzMywweGMwLDB4MGYsMHhmMCwweDgzLDB4YmUsMHgyMCwweGZkLDB4MGMsMHgzYiwweDYwLDB4MmMsMHhlMCwweDAzLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4YTA3MCwgMCwgezB4Y2YsMHgxMiwweDMzLDB4NTAsMHgwYywweDMwLDB4MDMsMHg4MCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEwODAsIDAsIHsweDgxLDB4MDQsMHg2YywweDA0LDB4YWIsMHgwMCwweDIyLDB4YTAsMHgwYiwweGIwLDB4MDYsMHgwYywweDAwLDB4YWIsMHg0MCwweDM2IH19LAotIHsxNiwgMHhhMDkwLCAwLCB7MHhjMCwweDBiLDB4YTgsMHgwMiwweDY2LDB4MDAsMHhiOCwweDAwLDB4MzYsMHhjMSwweDBiLDB4MzQsMHg0MywweGVlLDB4MDAsMHhiMiB9fSwKLSB7MTYsIDB4YTBhMCwgMCwgezB4MDAsMHgyMiwweDYwLDB4MDgsMHhiNCwweDgyLDB4OGMsMHgwNCwweDhhLDB4MjEsMHgyMiwweDQwLDB4MDgsMHhiMCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGEwYjAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDliLDB4MDAsMHgyYSwweDIwIH19LAotIHsxNiwgMHhhMGMwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4ODgsMHhjNSwweDIyLDB4YzAsMHgwYiwweDg4LDB4ODIsMHhlNiwweDAxLDB4YmIsMHgwOCB9fSwKLSB7MTYsIDB4YTBkMCwgMCwgezB4MjIsMHhjMCwweDBhLDB4YjIsMHg4MiwweGFjLDB4NjAsMHhiOCwweDAyLDB4NGEsMHhjNCwweDA4LDB4YjEsMHgwMiwweDJjLDB4MDAgfX0sCi0gezE2LCAweGEwZTAsIDAsIHsweDgzLDB4MDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4YTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMGYwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGFiLDB4MjAsMHgyMCwweDAxLDB4MGIsMHgzMiwweDA2LDB4MmMsMHgwMCwweGEwLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YTEwMCwgMCwgezB4YzAsMHgwOSwweDA0LDB4MjIsMHhjNCwweDAwLDB4YjIsMHgwMCwweDI0LDB4YzEsMHg4YiwweGIwLDB4MDIsMHg0YywweDAwLDB4YjAgfX0sCi0gezE2LCAweGExMTAsIDAsIHsweDAwLDB4NjIsMHhjMCwweDQ4LDB4MzAsMHgwMiwweGFjLDB4MTAsMHg4MiwweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDAyIH19LAotIHsxNiwgMHhhMTIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDgsMHhkZiwweDJhLDB4M2EsMHgwMCB9fSwKLSB7MTYsIDB4YTEzMCwgMCwgezB4MGYsMHhmNSwweDEyLDB4M2MsMHgxMCwweGM5LDB4MDAsMHhhMywweGMwLDB4MGYsMHg4MCwweDUzLDB4ZWMsMHgwMSwweGRhLDB4MDAgfX0sCi0gezE2LCAweGExNDAsIDAsIHsweDMzLDB4YzAsMHgwZSwweGIwLDB4MDMsMHhhYywweDA0LDB4ZjgsMHg3MCwweDNhLDB4YzAsMHgwYywweDYwLDB4NDMsMHgyYywweDQyIH19LAotIHsxNiwgMHhhMTUwLCAwLCB7MHhjZCwweDAwLDB4YjIsMHg0MCwweDJjLDB4ZjAsMHgwMywweDgwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTE2MCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmYiwweDAxLDB4M2QsMHgwMCwweDBmLDB4YjQsMHgxNywweGZjLDB4MDAsMHgzYywweDAwLDB4M2YgfX0sCi0gezE2LCAweGExNzAsIDAsIHsweGMwLDB4NGYsMHhjMCwweDAzLDB4NzQsMHgwOCwweGZlLDB4MDAsMHgzZiwweGMwLDB4NGYsMHhmMCwweDAzLDB4ZmMsMHgwOCwweGY4IH19LAotIHsxNiwgMHhhMTgwLCAwLCB7MHgzMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDA0LDB4ZmMsMHgwMCwweDNkLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4YTE5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmNCwweDkwLDB4ZWYsMHgwMCwweDNmLDB4ZDggfX0sCi0gezE2LCAweGExYTAsIDAsIHsweDBlLDB4ZjMsMHgwMywweDJjLDB4MDEsMHhkNCwweDgwLDB4MzcsMHhjYywweDBkLDB4ODksMHg0MywweDEyLDB4NTAsMHhlYywweDJjIH19LAotIHsxNiwgMHhhMWIwLCAwLCB7MHgzMiwweDA1LDB4MGQsMHhiMCwweDUzLDB4M2MsMHhkNCwweGM1LDB4OTQsMHg3ZiwweGEwLDB4OGYsMHhmMCwweDQzLDB4MzAsMHgwMCB9fSwKLSB7MTYsIDB4YTFjMCwgMCwgezB4ZGMsMHgwMCwweDMzLDB4MDAsMHgwYywweDQ4LDB4MDcsMHhmMCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGExZDAsIDAsIHsweDgwLDB4MTAsMHhlNiwweDQwLDB4OGIsMHg3MCwweDJmLDB4ZGMsMHgwOCwweGY3LDB4MDIsMHgwYywweDgwLDB4OGEsMHgyMCwweDAwIH19LAotIHsxNiwgMHhhMWUwLCAwLCB7MHhjOCwweDRhLDB4MjIsMHgwMiwweGEwLDB4MDAsMHg4YSwweDQ4LDB4MjIsMHg1OCwweDg4LDB4ZmQsMHgwMiwweGFkLDB4MDIsMHhhOSB9fSwKLSB7MTYsIDB4YTFmMCwgMCwgezB4MjAsMHgxZSwweGEwLDB4MDMsMHg4MCwweDAyLDB4MmMsMHgwNCwweDhiLDB4MDAsMHgyMiwweGMwLDB4NGMsMHg4OCwweDA3LDB4NjAgfX0sCi0gezE2LCAweGEyMDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzAsMHgwMCwweDIzLDB4MmMsMHgyYywweGM5IH19LAotIHsxNiwgMHhhMjEwLCAwLCB7MHgwMiwweDMwLDB4MDIsMHgwYywweDY4LDB4YTAsMHgyOCwweDJjLDB4ZDAsMHgwOSwweDEyLDB4MDIsMHg4NCwweDAwLDB4YTAsMHgyMSB9fSwKLSB7MTYsIDB4YTIyMCwgMCwgezB4MjAsMHgxOCwweDE5LDB4MzAsMHgyMiwweDgwLDB4ZDAsMHg4MywweDA2LDB4MGMsMHhhMCwweDBiLDB4YjAsMHgwNiwweDAwLDB4MTIgfX0sCi0gezE2LCAweGEyMzAsIDAsIHsweGEwLDB4MDAsMHgyMCwweDAwLDB4MjksMHgwMCwweDBlLDB4YTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMjQwLCAwLCB7MHhjMCwweDExLDB4YTgsMHgzMCwweDhiLDB4MDAsMHgyZSwweGMwLDB4NGEsMHgzMCwweDBhLDB4MmMsMHgxNCwweGEwLDB4ODAsMHgwYSB9fSwKLSB7MTYsIDB4YTI1MCwgMCwgezB4YzEsMHgwOCwweDg4LDB4ODYsMHg4NywweDAwLDB4ODMsMHgwMCwweDIyLDB4NDksMHgwOCwweGIwLDB4MDYsMHhhMCwweDQwLDB4YWIgfX0sCi0gezE2LCAweGEyNjAsIDAsIHsweDIwLDB4MjIsMHgyMCwweDBiLDB4ODAsMHgwYSwweDBjLDB4MDQsMHhhYiwweDAyLDB4MjIsMHhjMCwweDg4LDB4ODAsMHgwMiwweGYwIH19LAotIHsxNiwgMHhhMjcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVmLDB4NDAsMHhlYiwweDA2LDB4M2UsMHhjMCB9fSwKLSB7MTYsIDB4YTI4MCwgMCwgezB4MGUsMHhiMCwweDAzLDB4MmMsMHgwMiwweGY5LDB4YTAsMHgzZSwweGMwLDB4MGQsMHg4YywweDAzLDB4YWEsMHgxMCwweGU5LDB4NDAgfX0sCi0gezE2LCAweGEyOTAsIDAsIHsweGIyLDB4NDgsMHgwZCwweGIwLDB4NDMsMHhhZCwweDAwLDB4Y2IsMHg4NiwweDJlLDB4MjAsMHgwZiwweDMwLDB4MDMsMHgyNCwweDAwIH19LAotIHsxNiwgMHhhMmEwLCAwLCB7MHhmOSwweDgwLDB4MzIsMHhjMCwweDBkLDB4MGMsMHhjMiwweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTJiMCwgMCwgezB4ZTAsMHgwMSwweDk0LDB4MDAsMHhmZiwweDAwLDB4M2QsMHhjMCwweDBkLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhkZiwweDAwLDB4MzcgfX0sCi0gezE2LCAweGEyYzAsIDAsIHsweGMwLDB4MGYsMHhlMCwweDAzLDB4ZjAsMHgwMCwweGZlLDB4MjAsMHgzZiwweDQwLDB4MGYsMHg3MCwweDAzLDB4ZmUsMHgwMCwweGZmIH19LAotIHsxNiwgMHhhMmQwLCAwLCB7MHg4MiwweDdmLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhmOSwweDA0LDB4ZGUsMHgyMCwweGJkLDB4MDAsMHgwZiwweGQ5LDB4MGIsMHg3YyB9fSwKLSB7MTYsIDB4YTJlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAxLDB4Y2IsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGEyZjAsIDAsIHsweDJjLDB4YjAsMHgwYiwweDJjLDB4MDAsMHhlOCwweDQwLDB4M2UsMHhjMCwweDBmLDB4OTQsMHgwNywweDI5LDB4MDAsMHhjOSwweDQwIH19LAotIHsxNiwgMHhhMzAwLCAwLCB7MHhiMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4MDEsMHgwMiwweGNiLDB4MDAsMHgzMiwweDA0LDB4NGYsMHhmMCwweDQzLDB4MzQsMHhjMCB9fSwKLSB7MTYsIDB4YTMxMCwgMCwgezB4YjUsMHgxYSwweDNmLDB4YzEsMHgwZiwweDgwLDB4OTMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEzMjAsIDAsIHsweGM4LDB4MDUsMHgyOCwweDAwLDB4OGYsMHgwMCwweDJmLDB4YzAsMHgwOCwweGYwLDB4MDIsMHgzYywweDA0LDB4ZDgsMHgwMCwweDJiIH19LAotIHsxNiwgMHhhMzMwLCAwLCB7MHhjMCwweDBjLDB4ODAsMHg0NSwweDYwLDB4MDAsMHg3YiwweDU4LDB4MjIsMHhjOCwweDBiLDB4ZmEsMHgwMSwweDYxLDB4NDAsMHg4YiB9fSwKLSB7MTYsIDB4YTM0MCwgMCwgezB4MDAsMHgzMiwweDA0LDB4NGIsMHhjZSwweDAyLDB4MjgsMHgwMCwweDNhLDB4NDAsMHgyZSwweDA3LDB4MGIsMHg5MCwweDAyLDB4MjYgfX0sCi0gezE2LCAweGEzNTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweDgzLDB4MDEsMHg0YywweGMwIH19LAotIHsxNiwgMHhhMzYwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHhlYywweDEwLDB4OTAsMHgwMCwweDJhLDB4YzAsMHgwYSwweDgwLDB4MDYsMHhjMCwweDA0LDB4ODMsMHgwNCB9fSwKLSB7MTYsIDB4YTM3MCwgMCwgezB4YTIsMHg4OSwweDE5LDB4MzAsMHgwNiwweGNjLDB4MDAsMHg4MywweDAwLDB4MjAsMHg5MCwweDBiLDB4MzAsMHhjMiwweDQ4LDB4MDAgfX0sCi0gezE2LCAweGEzODAsIDAsIHsweGIyLDB4NDAsMHgyNCwweDIwLDB4MGIsMHgwOSwweDAwLDB4YjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMzkwLCAwLCB7MHgyMCwweDAxLDB4MDYsMHgwNCwweDg3LDB4YTQsMHgyZCwweGUwLDB4MDksMHgzOCwweDAyLDB4ZGUsMHgwMCwweDllLDB4ODEsMHgyOSB9fSwKLSB7MTYsIDB4YTNhMCwgMCwgezB4ZTAsMHgwOCwweDc4LDB4NTIsMHhmYSwweGMwLDB4OTYsMHg4MCwweDAxLDB4YTAsMHg4YiwweDNhLDB4MjIsMHhjZSwweDQwLDB4OGYgfX0sCi0gezE2LCAweGEzYjAsIDAsIHsweGIwLDB4MjUsMHhhMCwweDBiLDB4MDgsMHgwMiwweDU2LDB4MDgsMHhiNSwweDkwLDB4MmQsMHhlNCwweDRiLDB4ZDgsMHgyMiwweDBjIH19LAotIHsxNiwgMHhhM2MwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA4LDB4MDIsMHg4MywweDgwLDB4MmUsMHhlOCB9fSwKLSB7MTYsIDB4YTNkMCwgMCwgezB4MGIsMHgzOCwweDEzLDB4Y2UsMHg0MSwweGQzLDB4MTAsMHgyOCwweGMwLDB4MGUsMHgzYSwweDAyLDB4YzYsMHgwOCwweDRiLDB4NDAgfX0sCi0gezE2LCAweGEzZTAsIDAsIHsweDMwLDB4NjAsMHgwZCwweDNiLDB4MjcsMHhjZiwweGM0LDB4YzMsMHhhMCwweDMwLDB4MDAsMHgwZiwweDMwLDB4NDMsMHg0OCwweDQwIH19LAotIHsxNiwgMHhhM2YwLCAwLCB7MHhmMiwweDAwLDB4M2MsMHgwNCwweDBmLDB4MDIsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTQwMCwgMCwgezB4NDAsMHgxZCwweGI4LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjNCwweDBlLDB4ZjEsMHgwMywweDNjLDB4MDAsMHhmZiwweDAxLDB4MzMgfX0sCi0gezE2LCAweGE0MTAsIDAsIHsweGMwLDB4NGQsMHhiMSwweDA3LDB4N2MsMHg5MCwweGZmLDB4MDAsMHgzZiwweDQwLDB4MDMsMHhmMSwweDAzLDB4NzAsMHgwMCwweGZiIH19LAotIHsxNiwgMHhhNDIwLCAwLCB7MHgxMCwweDNiLDB4MDAsMHgwZiwweGMwLDB4MGIsMHhiNCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4YzQsMHgwZiwweGQwLDB4MDMsMHg5MCB9fSwKLSB7MTYsIDB4YTQzMCwgMCwgezB4MDIsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDA0LDB4ZmIsMHg4NCwweDNhLDB4YzIgfX0sCi0gezE2LCAweGE0NDAsIDAsIHsweDRjLDB4YjQsMHg5MywweDJjLDB4MDQsMHhlOSwweDAwLDB4M2EsMHhjNCwweDhkLDB4MDgsMHgwMywweDJlLDB4MDAsMHhjYiwweDAxIH19LAotIHsxNiwgMHhhNDUwLCAwLCB7MHgzMiwweDgwLDB4OGYsMHhiMiwweDgzLDB4ZWMsMHgwMCwweGNiLDB4ODAsMHgzMiwweDAwLDB4MGYsMHhmOSwweDAzLDB4M2MsMHgxMCB9fSwKLSB7MTYsIDB4YTQ2MCwgMCwgezB4ZGYsMHg4MSwweGIzLDB4ZTAsMHg4YywweGEwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE0NzAsIDAsIHsweDQ4LDB4MTEsMHg5NCwweDA4LDB4YjcsMHgwNCwweDI0LDB4YzgsMHgxYSwweDMwLDB4NGEsMHgxZCwweDAwLDB4YjcsMHgwMSwweDJkIH19LAotIHsxNiwgMHhhNDgwLCAwLCB7MHhjMCwweDg4LDB4NzAsMHgwNiwweDFjLDB4MDAsMHg4MiwweDAwLDB4MjEsMHg4MCwweDRiLDB4NzYsMHgxMiwweGRjLDB4MDAsMHg4NyB9fSwKLSB7MTYsIDB4YTQ5MCwgMCwgezB4MDAsMHgyOSwweDQwLDB4OGIsMHg0MCwweDAyLDB4MTAsMHgwMCwweGJjLDB4MDAsMHgyMCwweDAxLDB4MjgsMHg3MCwweDAzLDB4YjIgfX0sCi0gezE2LCAweGE0YTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWEsMHgwMCwweGIzLDB4OTAsMHgyZCwweGU0IH19LAotIHsxNiwgMHhhNGIwLCAwLCB7MHgwOSwweDc5LDB4MDIsMHgxZSwweDgwLDB4YTcsMHg4MCwweDJjLDB4ZTgsMHgxOSwweGY4LDB4MTIsMHg1ZSwweDAxLDB4ODcsMHg4MCB9fSwKLSB7MTYsIDB4YTRjMCwgMCwgezB4MjUsMHhlMCwweDRiLDB4NzgsMHgwNiwweGQyLDB4MDAsMHg5NywweDgwLDB4MjEsMHg2MiwweDBiLDB4M2EsMHgwMiwweDFlLDB4MDAgfX0sCi0gezE2LCAweGE0ZDAsIDAsIHsweGI3LDB4ODYsMHgyOSwweGYwLDB4MDgsMHg2OCwweDA2LDB4ZTAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNGUwLCAwLCB7MHg0OCwweDE0LDB4Y2YsMHhjMCwweGIzLDB4MDAsMHgyNCwweGMwLDB4OGEsMHgzMCwweDMyLDB4MGMsMHgwMCwweGIzLDB4MDgsMHgyYyB9fSwKLSB7MTYsIDB4YTRmMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4MTIsMHgwZSwweDIwLDB4ODMsMHgwMCwweDI0LDB4ZjEsMHgwYiwweDMwLDB4MDYsMHhjZSwweDAwLDB4ODMgfX0sCi0gezE2LCAweGE1MDAsIDAsIHsweDkwLDB4MjgsMHg2MCwweDBiLDB4MDAsMHgyYSwweDIxLDB4ODAsMHhiMCwweDA4LDB4MjgsMHgwMCwweDA4LDB4MzcsMHgwMiwweDkyIH19LAotIHsxNiwgMHhhNTEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI5LDB4MDAsMHhmYSwweDAwLDB4M2UsMHg4MCB9fSwKLSB7MTYsIDB4YTUyMCwgMCwgezB4NGQsMHhhMCwweDAzLDB4MjgsMHgwMCwweGVlLDB4NDEsMHgzZSwweDgwLDB4MGQsMHhlMCwweDAzLDB4NzgsMHgwMCwweDhlLDB4NDAgfX0sCi0gezE2LCAweGE1MzAsIDAsIHsweDI3LDB4YTgsMHgwYiwweGEwLDB4MDMsMHhmYiwweDAyLDB4Y2EsMHg4MiwweDMzLDB4YTAsMHgwZiwweGEwLDB4MTMsMHgyOSwweDAwIH19LAotIHsxNiwgMHhhNTQwLCAwLCB7MHhmYSwweDQwLDB4M2EsMHg4MCwweDBjLDB4NmMsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTU1MCwgMCwgezB4NDgsMHgwMCwweGMwLDB4MDAsMHhmOCwweDAwLDB4M2EsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDgsMHhmOCwweDAwLDB4M2UgfX0sCi0gezE2LCAweGE1NjAsIDAsIHsweDAwLDB4OGYsMHg4MCwweDIzLDB4YTAsMHg0MiwweGY4LDB4MDksMHhiYSwweDEwLDB4NGYsMHg4MCwweDAzLDB4ZTAsMHg2MCwweGY4IH19LAotIHsxNiwgMHhhNTcwLCAwLCB7MHgwMCwweDNlLDB4MjAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDI3LDB4MDAsMHg4ZiwweDgwLDB4MDMsMHg5MiB9fSwKLSB7MTYsIDB4YTU4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNSwweDAwLDB4ODksMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGE1OTAsIDAsIHsweDZlLDB4OTAsMHgwMywweGE0LDB4MDgsMHhjOSwweDAwLDB4M2MsMHg0MCwweDBkLDB4OTAsMHgwMywweDI0LDB4MTAsMHhmOSwweGEwIH19LAotIHsxNiwgMHhhNWEwLCAwLCB7MHgzMiwweDQyLDB4MGMsMHg5MCwweDEzLDB4YzQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHg0MCB9fSwKLSB7MTYsIDB4YTViMCwgMCwgezB4YzksMHgyMCwweDNlLDB4NTIsMHhjZiwweDkwLDB4MDksMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE1YzAsIDAsIHsweDgwLDB4MDQsMHg2NiwweDAwLDB4ODksMHgwNCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ZDksMHgwMCwweDNhIH19LAotIHsxNiwgMHhhNWQwLCAwLCB7MHg0MSwweDA4LDB4OTAsMHgwNSwweGE0LDB4MDAsMHhiOSwweDQwLDB4YTIsMHg0MCwweDBkLDB4OTAsMHgwMiwweGU1LDB4NDYsMHg4OSB9fSwKLSB7MTYsIDB4YTVlMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDEyLDB4ZTUsMHgwMCwweGE5LDB4YzgsMHgyZSwweDYxLDB4OGIsMHg5NCwweDQyLDB4MjAgfX0sCi0gezE2LCAweGE1ZjAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4MjQsMHgwMCwweGE5LDB4MDAsMHg2YywweDQwIH19LAotIHsxNiwgMHhhNjAwLCAwLCB7MHg0OCwweDEwLDB4MjIsMHg4NCwweDAzLDB4YTksMHgwMCwweDJlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDA0LDB4YjEsMHgwOCB9fSwKLSB7MTYsIDB4YTYxMCwgMCwgezB4MjgsMHg0MCwweDE4LDB4OTgsMHgwMiwweGU1LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGY0LDB4MjAgfX0sCi0gezE2LCAweGE2MjAsIDAsIHsweDhkLDB4MDAsMHgyZiwweDQwLDB4MGIsMHg5NCwweDQyLDB4ODYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNjMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGExLDB4MjQsMHgyYywweDQ4LDB4MTgsMHgxMiwweDAyLDB4MDQsMHg4MCwweGExLDB4MDAsMHgyOCB9fSwKLSB7MTYsIDB4YTY0MCwgMCwgezB4NDgsMHgwOCwweDEwLDB4MDIsMHg4NCwweDAwLDB4OTEsMHgyMCwweDIwLDB4NDgsMHgwOSwweDEyLDB4MDIsMHhjNCwweDk0LDB4ODEgfX0sCi0gezE2LCAweGE2NTAsIDAsIHsweDAwLDB4MmMsMHg2MSwweDBiLDB4NWEsMHg4MiwweGQ0LDB4YTAsMHhhNSwweDI4LDB4MmQsMHg0YSwweDBiLDB4OTAsMHgwMiwweDgyIH19LAotIHsxNiwgMHhhNjYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDIsMHhlOCwweDUwLDB4MmUsMHgxNCB9fSwKLSB7MTYsIDB4YTY3MCwgMCwgezB4MGUsMHg4NSwweDAzLDB4YTEsMHg0MCwweGE4LDB4NTAsMHgzZSwweDE0LDB4MGQsMHg4NSwweDAxLDB4ODEsMHg0MCwweGY4LDB4NTIgfX0sCi0gezE2LCAweGE2ODAsIDAsIHsweDMyLDB4OTQsMHgwYywweDgwLDB4MTMsMHhjMSwweDQyLDB4YzAsMHg1MSwweDNlLDB4MDAsMHg4ZiwweDgyLDB4MDMsMHhlMCwweDgwIH19LAotIHsxNiwgMHhhNjkwLCAwLCB7MHhjOCwweDIwLDB4M2YsMHgwOCwweDBmLDB4ODAsMHgwMywweGFlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTZhMCwgMCwgezB4OTgsMHgxOSwweGY0LDB4NTAsMHhkOSwweDExLDB4M2UsMHg0NCwweDhmLDB4OTEsMHg0MywweGU0LDB4NDAsMHhkZCwweDAwLDB4M2EgfX0sCi0gezE2LCAweGE2YjAsIDAsIHsweDQ0LDB4NGYsMHhkMCwweDI3LDB4YjQsMHgwMCwweGZkLDB4MTIsMHgzZiwweDQ0LDB4NGYsMHg5MSwweDQzLDB4ZjQsMHg0MCwweGZkIH19LAotIHsxNiwgMHhhNmMwLCAwLCB7MHgwMCwweDNmLDB4NDEsMHgwZiwweDkyLDB4ODMsMHhlNCwweGEwLDB4ZjksMHgyOCwweDNlLDB4NGEsMHgwZiwweGQwLDB4MDMsMHg2NiB9fSwKLSB7MTYsIDB4YTZkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhmNiwweDgwLDB4ZTksMHhjMCwweDNlLDB4NzggfX0sCi0gezE2LCAweGE2ZTAsIDAsIHsweDhmLDB4OWIsMHgwMywweGE3LDB4ODAsMHhjOSwweDQwLDB4MzYsMHg3OCwweDBmLDB4MTAsMHgyMywweGU1LDB4MDQsMHhkZCwweGE0IH19LAotIHsxNiwgMHhhNmYwLCAwLCB7MHgzMywweDYyLDB4MGYsMHhkYSwweDAzLDB4ZjYsMHg2MCwweGM5LDB4MTAsMHgzMywweDQwLDB4MGUsMHg5OCwweDkzLDB4ZTYsMHgzMCB9fSwKLSB7MTYsIDB4YTcwMCwgMCwgezB4YzksMHhjOSwweDMyLDB4NzgsMHg4YywweGQwLDB4MGIsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE3MTAsIDAsIHsweDM4LDB4MTAsMHhlMCwweDAwLDB4ODgsMHhlMiwweDJlLDB4MzAsMHgwYiwweDg4LDB4NDIsMHgyMywweDQwLDB4YTAsMHhhMSwweDIyIH19LAotIHsxNiwgMHhhNzIwLCAwLCB7MHgzOCwweDBiLDB4OGEsMHgwMiwweGUyLDB4ODAsMHhhYSwweGUwLDB4MjIsMHgzMCwweDBiLDB4ODAsMHgyMywweGFiLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4YTczMCwgMCwgezB4YTAsMHgyYSwweDAwLDB4MGIsMHg4YywweDAyLDB4ZTMsMHgwMCwweDg4LDB4ZTAsMHgyMywweDM4LDB4MDgsMHg4MCwweDAyLDB4MGUgfX0sCi0gezE2LCAweGE3NDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHgwMCwweGExLDB4NDQsMHgyOCwweDU4IH19LAotIHsxNiwgMHhhNzUwLCAwLCB7MHg0MywweDE2LDB4MjIsMHg4NCwweDgxLDB4ODEsMHgyMCwweDJjLDB4NTgsMHg0OSwweDEwLDB4ODAsMHhjNCwweDgxLDB4OTEsMHg0OCB9fSwKLSB7MTYsIDB4YTc2MCwgMCwgezB4NmMsMHg0YSwweDBiLDB4MTQsMHgwMiwweDQ0LDB4ODQsMHg4MSwweDAxLDB4NjAsMHg0MCwweDBhLDB4NTIsMHg4NiwweGQ0LDB4YTAgfX0sCi0gezE2LCAweGE3NzAsIDAsIHsweDg1LDB4MDAsMHhhMSwweDUwLDB4NjgsMHg5MCwweDA2LDB4ZDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNzgwLCAwLCB7MHgxOCwweDA1LDB4YTYsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDQsMHgwMCwweGE5LDB4NjAsMHgyMiB9fSwKLSB7MTYsIDB4YTc5MCwgMCwgezB4NDAsMHgwYiwweDk1LDB4MDIsMHhlNCwweDEwLDB4YjEsMHgwMCwweDRlLDB4NDAsMHgwYiwweDkwLDB4NjYsMHhhYywweDgwLDB4ODkgfX0sCi0gezE2LCAweGE3YTAsIDAsIHsweDAwLDB4MmEsMHg2MCwweDBiLDB4OTAsMHg1MiwweGY0LDB4MDAsMHg4NSwweDAwLDB4MjEsMHg0MCwweDA4LDB4OTAsMHgwMiwweGM2IH19LAotIHsxNiwgMHhhN2IwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU2LDB4MjAsMHhlOSwweDAwLDB4M2UsMHg0MCB9fSwKLSB7MTYsIDB4YTdjMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4YTQsMHgxMCwweGM5LDB4MDAsMHgzNiwweDQwLDB4MGYsMHg5NCwweDAxLDB4ZTUsMHgyMCwweGQ5LDB4NDAgfX0sCi0gezE2LCAweGE3ZDAsIDAsIHsweGJhLDB4NjgsMHg4ZiwweDkwLDB4MDcsMHhlNiwweDAwLDB4YzksMHgxMCwweDMyLDB4NjIsMHgwZSwweDkwLDB4MDIsMHhlNCwweDE4IH19LAotIHsxNiwgMHhhN2UwLCAwLCB7MHhjOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTdmMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDA0LDB4M2UsMHg0MCwweDBiLDB4OTAsMHgwMywweDY0LDB4MDAsMHhmOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGE4MDAsIDAsIHsweDQwLDB4OGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDIsMHg3MiwweDY4LDB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwMCwweGY5IH19LAotIHsxNiwgMHhhODEwLCAwLCB7MHgwMSwweDNlLDB4NDIsMHgwZiwweDkwLDB4MDMsMHhjNCwweDAyLDB4ZjksMHgwNCwweDNlLDB4NDAsMHg0ZiwweDkwLDB4MDMsMHgxYSB9fSwKLSB7MTYsIDB4YTgyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHg4MCwweDAyLDB4YzgsMHgwMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGE4MzAsIDAsIHsweDBjLDB4ODAsMHgwMywweDYwLDB4MDAsMHhjOCwweDQwLDB4MzYsMHgwMCwweDBmLDB4ODQsMHgwMywweGEwLDB4MDAsMHhkOCwweDUwIH19LAotIHsxNiwgMHhhODQwLCAwLCB7MHhiMiwweDEwLDB4OGMsMHg4MSwweDAzLDB4YzEsMHgyMCwweGM4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHhjMCwweDEzLDB4ZjAsMHgwNCB9fSwKLSB7MTYsIDB4YTg1MCwgMCwgezB4NGMsMHgwMCwweDNmLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE4NjAsIDAsIHsweDI4LDB4MTUsMHgyYSwweDAwLDB4OGEsMHgwNCwweDIyLDB4ODEsMHgyOCwweGEwLDB4MTIsMHgyOCwweDAwLDB4OGEsMHgwMSwweDM2IH19LAotIHsxNiwgMHhhODcwLCAwLCB7MHg4MCwweDBiLDB4YTAsMHgxMCwweDI4LDB4MTAsMHhjZSwweDAxLDB4MjMsMHg4MSwweDBjLDB4YTgsMHgxMiwweGZiLDB4MDAsMHg4YSB9fSwKLSB7MTYsIDB4YTg4MCwgMCwgezB4MDEsMHgzYiwweDgwLDB4ODMsMHhhMCwweDQyLDB4ZTgsMHgxMCwweDhhLDB4MDAsMHgyZiwweDgwLDB4MGIsMHg2MCwweDQyLDB4MGEgfX0sCi0gezE2LCAweGE4OTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDgzLDB4MDAsMHhhMCwweGMwIH19LAotIHsxNiwgMHhhOGEwLCAwLCB7MHgxOCwweGIwLDB4MDAsMHhjYywweDAwLDB4OWIsMHgwMCwweDI0LDB4YzAsMHgwYiwweDMwLDB4MDYsMHg2YywweDAwLDB4YTMsMHgwOCB9fSwKLSB7MTYsIDB4YThiMCwgMCwgezB4MjgsMHhjOCwweDA5LDB4MzAsMHgwMiwweGNjLDB4NDMsMHg4YiwweDAwLDB4MmMsMHg4MCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDIgfX0sCi0gezE2LCAweGE4YzAsIDAsIHsweDgzLDB4MDEsMHgyYywweGMwLDB4NGIsMHgzMCwweDAwLDB4NGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhOGQwLCAwLCB7MHhhMCwweDAxLDB4MGMsMHgyNCwweDg3LDB4OTQsMHgyMSwweGU0LDB4MTgsMHgzMSwweDAyLDB4ZGMsMHg4MCwweDk3LDB4MTAsMHgyNSB9fSwKLSB7MTYsIDB4YThlMCwgMCwgezB4Y2QsMHgwYiwweGYyLDB4MDIsMHg3YywweDAwLDB4YTAsMHgwMCwweDI4LDB4ZTAsMHgxOCwweDcwLDB4MDIsMHhkYywweDAxLDB4ODcgfX0sCi0gezE2LCAweGE4ZjAsIDAsIHsweDM0LDB4MjksMHg0MCwweDA5LDB4NDAsMHgwMiwweGQwLDB4MDQsMHg4NCwweDA0LDB4MmQsMHgwMCwweDRiLDB4ZDAsMHgyMiwweDY4IH19LAotIHsxNiwgMHhhOTAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDE2LDB4MDAsMHhjZiwweGEwLDB4NzAsMHhlOSB9fSwKLSB7MTYsIDB4YTkxMCwgMCwgezB4MTgsMHg3YiwweDAzLDB4ZmYsMHg0MCwweDk3LDB4YTAsMHgzNSwweGU4LDB4MGYsMHg3NCwweDAyLDB4NWUsMHgyMCwweGU0LDB4ODAgfX0sCi0gezE2LCAweGE5MjAsIDAsIHsweDM5LDB4YTAsMHgyZCwweDc4LDB4MDMsMHhmZSwweDAwLDB4YzcsMHg4MCwweDNkLDB4ZTAsMHg1ZiwweDY4LDB4NDMsMHhjMiwweDAwIH19LAotIHsxNiwgMHhhOTMwLCAwLCB7MHhjNCwweDg0LDB4MWQsMHg2MCwweDBmLDB4NzgsMHgwMywweDZhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTk0MCwgMCwgezB4MDgsMHgwZCwweGE0LDB4MDAsMHgzYiwweDAwLDB4MmUsMHhkOCwweDBmLDB4YjQsMHgwMywweDJkLDB4OGEsMHhlYiwweDYyLDB4M2EgfX0sCi0gezE2LCAweGE5NTAsIDAsIHsweGQwLDB4MGYsMHhiMiwweDg3LDB4MGMsMHhkMCwweGQ4LDB4MDAsMHgzMiwweGMwLDB4NGYsMHg5MCwweDQzLDB4ZWMsMHgwMCwweGZiIH19LAotIHsxNiwgMHhhOTYwLCAwLCB7MHgwOCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwNCwweDNmLDB4ODAsMHgwZiwweDAwLDB4MmIsMHg4MiB9fSwKLSB7MTYsIDB4YTk3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4ZmYsMHhhMCwweDNlLDB4ZjQgfX0sCi0gezE2LCAweGE5ODAsIDAsIHsweDBlLDB4YjgsMHgwMywweGVlLDB4MDgsMHg0YiwweGYwLDB4N2YsMHhmNCwweDBjLDB4ZjksMHgyMywweGVlLDB4NDgsMHg3OCwweDkwIH19LAotIHsxNiwgMHhhOTkwLCAwLCB7MHgzMiwweGU0LDB4MGMsMHhmOSwweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODAsMHgzZiwweGU0LDB4MWMsMHg3OSwweDAzLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YTlhMCwgMCwgezB4ZmYsMHg4MCwweDMzLDB4ZTAsMHgyYywweDc4LDB4MDcsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE5YjAsIDAsIHsweGE4LDB4MTEsMHg5NCwweDAwLDB4YjMsMHgwMCwweDBjLDB4ZTUsMHgwYiwweDM4LDB4MDIsMHhmZSwweDgwLDB4OGYsMHg4MCwweDYxIH19LAotIHsxNiwgMHhhOWMwLCAwLCB7MHhjNCwweDI4LDB4NzgsMHgwMCwweDRlLDB4MDAsMHhmNCwweDg0LDB4MjUsMHhhOCwweDBjLDB4NzAsMHgwMiwweGNjLDB4MDQsMHhiMyB9fSwKLSB7MTYsIDB4YTlkMCwgMCwgezB4OTAsMHgyNSwweDQwLDB4MGMsMHg0MSwweDgzLDB4NTIsMHg0MCwweGI0LDB4MTAsMHhhMywweDAwLDB4MGMsMHg1MiwweDAzLDB4NmEgfX0sCi0gezE2LCAweGE5ZTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTQsMHgwMCwweGI3LDB4MjEsMHg2ZCwweGM4IH19LAotIHsxNiwgMHhhOWYwLCAwLCB7MHg0YiwweDcwLDB4MDIsMHhkYywweDQyLDB4YTcsMHgzMSwweDI5LDB4YzQsMHgwOCwweDcyLDB4MDIsMHhkYywweDAwLDB4YjcsMHgyOCB9fSwKLSB7MTYsIDB4YWEwMCwgMCwgezB4MjQsMHg4MCwweDA4LDB4NzAsMHgwNiwweGQ0LDB4MjAsMHhiNywweDAxLDB4MmQsMHhjMSwweDA4LDB4NjAsMHgwMiwweDUwLDB4ODAgfX0sCi0gezE2LCAweGFhMTAsIDAsIHsweGI0LDB4MDgsMHgyMSwweDYyLDB4MDksMHg3NCwweDA2LDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYTIwLCAwLCB7MHgyMCwweDE0LDB4YzcsMHgwNCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGIsMHhiMCwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MDIsMHg2MCB9fSwKLSB7MTYsIDB4YWEzMCwgMCwgezB4YzAsMHgwOCwweDM4LDB4MDIsMHg0ZSwweDQ0LDB4YTAsMHhjMCwweDI0LDB4OTEsMHgwOCwweDMwLDB4MDIsMHhjMCwweDAwLDB4YjMgfX0sCi0gezE2LCAweGFhNDAsIDAsIHsweDAwLDB4MjQsMHg2MCwweDA4LDB4MWMsMHgwMiwweDRjLDB4ODgsMHhiMywweGMwLDB4MjAsMHhhMCwweDA4LDB4MDAsMHgwYSwweDg4IH19LAotIHsxNiwgMHhhYTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDAsMHhmZiwweDAwLDB4MmYsMHhjMCB9fSwKLSB7MTYsIDB4YWE2MCwgMCwgezB4NGYsMHhmMCwweDEzLDB4ZmMsMHgwOCwweGU3LDB4OGEsMHgzZiwweGMwLDB4MGMsMHhmNSwweGMyLDB4ZmUsMHgxMCwweGJiLDB4YzAgfX0sCi0gezE2LCAweGFhNzAsIDAsIHsweDMyLDB4ZDQsMHgwYywweDMwLDB4MTMsMHhlMywweDA0LDB4YmYsMHgwMCwweDJlLDB4NjIsMHgwOCwweGI5LDB4MDIsMHg2ZSwweDAwIH19LAotIHsxNiwgMHhhYTgwLCAwLCB7MHhmYiwweDAxLDB4MzIsMHhhNCwweDRkLDB4OTQsMHgwMiwweGFiLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWE5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4NjAsMHhmYiwweDAwLDB4MWUsMHhjMCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHg1YiwweDAwLDB4M2EgfX0sCi0gezE2LCAweGFhYTAsIDAsIHsweGMwLDB4MGYsMHhiMCwweDQxLDB4ZWMsMHgwMCwweDdiLDB4NDUsMHhiYSwweDQwLDB4MmUsMHhiMCwweDE1LDB4ZTAsMHgwMSwweGZiIH19LAotIHsxNiwgMHhhYWIwLCAwLCB7MHgwMCwweDNlLDB4NTAsMHgwZSwweGMwLDB4MDMsMHhmMCwweDQwLDB4ZmMsMHgyMCwweDNmLDB4NTAsMHg4ZiwweDkwLDB4MDEsMHg2MCB9fSwKLSB7MTYsIDB4YWFjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAgfX0sCi0gezE2LCAweGFhZDAsIDAsIHsweDhmLDB4ZjAsMHgwMywweDFjLDB4MDIsMHhjZiwweDAwLDB4MzYsMHhjMCwweDBkLDB4ZjAsMHgwMywweDdjLDB4MDAsMHg3ZiwweDJhIH19LAotIHsxNiwgMHhhYWUwLCAwLCB7MHgzZiwweDgwLDB4MGYsMHhmOCwweDEzLDB4OTAsMHgyMSwweGNmLDB4MDAsMHgzZiwweDYyLDB4MGMsMHhlMCwweDAzLDB4MzAsMHgwMCB9fSwKLSB7MTYsIDB4YWFmMCwgMCwgezB4ZjgsMHgwMCwweDNmLDB4MDAsMHgwZiwweGQwLDB4MDMsMHg4MCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFiMDAsIDAsIHsweDgxLDB4MDQsMHg2NCwweDExLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4ZGIsMHgwNCwweDMyIH19LAotIHsxNiwgMHhhYjEwLCAwLCB7MHhjMCwweDBlLDB4YjAsMHgwMiwweGVjLDB4MDAsMHhiYiwweDg0LDB4MmUsMHg0MCwweDBiLDB4YjksMHg0MiwweDIyLDB4NDIsMHg4YiB9fSwKLSB7MTYsIDB4YWIyMCwgMCwgezB4MDEsMHgyYywweDcyLDB4MGEsMHg5MCwweDQyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMyLDB4OGYsMHg4OCwweDA2LDB4ZTAgfX0sCi0gezE2LCAweGFiMzAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAxLDB4MjQsMHgwMCwweGJiLDB4MDAsMHg2ZSwweGMwIH19LAotIHsxNiwgMHhhYjQwLCAwLCB7MHg0OCwweGIwLDB4NDIsMHgyYywweDAwLDB4OGIsMHgwMCwweDI2LDB4YzAsMHgwYSwweGIwLDB4MTIsMHhlYywweDAwLDB4YmIsMHg0MCB9fSwKLSB7MTYsIDB4YWI1MCwgMCwgezB4MmUsMHhjOCwweDBiLDB4YjAsMHgxMiwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHg0OCwweDBhLDB4MzAsMHgwMiwweDZjLDB4MDAgfX0sCi0gezE2LCAweGFiNjAsIDAsIHsweGJiLDB4MDAsMHgyZSwweDgwLDB4NGIsMHg5OCwweDAyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYjcwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHgwMCwweGIzLDB4MDAsMHg2YywweGMyLDB4NGIsMHgzMSwweDAyLDB4MGMsMHg1MCwweDliLDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4YWI4MCwgMCwgezB4YzAsMHgwYSwweDMyLDB4MTIsMHhjYywweDgwLDB4YjMsMHgwMCwweDZjLDB4MGMsMHgwYiwweDMxLDB4MDIsMHgwYywweDQyLDB4ODMgfX0sCi0gezE2LCAweGFiOTAsIDAsIHsweDA4LDB4MmUsMHg0MCwweDBhLDB4MDAsMHgwMiwweDAwLDB4ODAsMHhiMCwweDAwLDB4MmMsMHg0MSwweDBiLDB4MTAsMHgwMiwweDQyIH19LAotIHsxNiwgMHhhYmEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY0LDB4MDAsMHhiYiwweDQwLDB4M2YsMHhjYyB9fSwKLSB7MTYsIDB4YWJiMCwgMCwgezB4MGUsMHhmMCwweDgzLDB4M2QsMHhhMCwweGNmLDB4MjAsMHgzNywweGMwLDB4MGMsMHhmNywweGMzLDB4ZmQsMHg0OCwweGYzLDB4MDAgfX0sCi0gezE2LCAweGFiYzAsIDAsIHsweDNlLDB4ODgsMHgwZiwweGI0LDB4MTMsMHhhNSwweDAwLDB4OGYsMHgzMCwweDNlLDB4NDAsMHgwYywweGEwLDB4MDMsMHg2MCwweDgwIH19LAotIHsxNiwgMHhhYmQwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4OTAsMHgyMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWJlMCwgMCwgezB4YTAsMHgxOSwweGY0LDB4MDAsMHhmZiwweDI5LDB4M2YsMHhjOSwweDBmLDB4ZjAsMHgxMywweGZjLDB4OTQsMHhlZiwweDEyLDB4M2IgfX0sCi0gezE2LCAweGFiZjAsIDAsIHsweGMwLDB4OGUsMHhiMiwweDA3LDB4ZmQsMHgwNCwweGZmLDB4MTAsMHgzZiwweDBjLDB4MGYsMHhmMCwweDAzLDB4ZjAsMHgwMCwweGZiIH19LAotIHsxNiwgMHhhYzAwLCAwLCB7MHgyMCwweDNkLDB4NDAsMHgwZiwweGQwLDB4NDMsMHhmYywweDQwLDB4ZmYsMHgwNCwweDNmLDB4YzAsMHgwZSwweGMwLDB4NDMsMHhlOCB9fSwKLSB7MTYsIDB4YWMxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweGEyLDB4YzcsMHgyMCwweDNmLDB4MjQgfX0sCi0gezE2LCAweGFjMjAsIDAsIHsweDBjLDB4ZjAsMHgwMywweDNjLDB4ODAsMHhjYywweDA5LDB4MzMsMHhkMSwweDBjLDB4ZjEsMHgyMywweGZjLDB4MjAsMHhkZiwweDM2IH19LAotIHsxNiwgMHhhYzMwLCAwLCB7MHgzZiwweGMwLDB4MGUsMHg0OCwweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODAsMHgzNywweGU0LDB4MGQsMHg3OCwweDAzLDB4MTEsMHhhMCB9fSwKLSB7MTYsIDB4YWM0MCwgMCwgezB4Y2YsMHgwMCwweDM3LDB4YzgsMHgwYywweGYwLDB4MDMsMHgzMCwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFjNTAsIDAsIHsweDgwLDB4MTAsMHhmZiwweDAwLDB4OGYsMHhkMSwweDJlLDB4MDgsMHgwZCwweGI2LDB4MTIsMHgzZCwweDQ1LDB4ZjksMHg2NCwweDI3IH19LAotIHsxNiwgMHhhYzYwLCAwLCB7MHhkMCwweDg4LDB4YmEsMHgxNCwweGNjLDB4MDQsMHg4ZiwweDQwLDB4MjMsMHhmMCwweDBiLDB4ODgsMHgwMiwweDJlLDB4MDQsMHhiYiB9fSwKLSB7MTYsIDB4YWM3MCwgMCwgezB4ODAsMHhhZSwweGMwLDB4MDgsMHhiOCwweDBhLDB4MjEsMHgwMCwweDg4LDB4ZDAsMHgyMiwweDIwLDB4MjgsMHhiMCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGFjODAsIDAsIHsweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMCwweDkzLDB4MDAsMHgyZSwweDAwIH19LAotIHsxNiwgMHhhYzkwLCAwLCB7MHgwYSwweDM0LDB4ODIsMHg4YywweGEwLDB4YTAsMHgwOCwweDI0LDB4ZDgsMHgwOSwweDMxLDB4MDIsMHhjYywweDIwLDB4YjMsMHgzMiB9fSwKLSB7MTYsIDB4YWNhMCwgMCwgezB4MjgsMHhkMCwweDRhLDB4ODAsMHgwMiwweGNjLDB4MGMsMHhiYiwweDAwLDB4MjIsMHg0MCwweDg5LDB4YjAsMHgwMiwweDYwLDB4ODAgfX0sCi0gezE2LCAweGFjYjAsIDAsIHsweDkzLDB4MDAsMHgyNCwweGQwLDB4MGIsMHgzMCwweDAyLDB4YTIsMHgwMSwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhY2MwLCAwLCB7MHhjMCwweDExLDB4YWMsMHgwMCwweDliLDB4MDAsMHgyZSwweDIwLDB4MDksMHhiMCwweDRhLDB4MmMsMHgwMiwweGEwLDB4MDAsMHgwNiB9fSwKLSB7MTYsIDB4YWNkMCwgMCwgezB4YzAsMHgwOSwweGIwLDB4MDAsMHhlYywweDAwLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwYiwweDg4LDB4MDIsMHg2YywweDAwLDB4YmIgfX0sCi0gezE2LCAweGFjZTAsIDAsIHsweDIwLDB4MmEsMHhlMiwweDQxLDB4YjgsMHgyYSwweDYwLDB4MGEsMHg5OCwweDAwLDB4MjYsMHgwMCwweDBiLDB4YjAsMHgwMiwweGI4IH19LAotIHsxNiwgMHhhY2YwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDgsMHhkYiwweDAyLDB4M2UsMHgyMCB9fSwKLSB7MTYsIDB4YWQwMCwgMCwgezB4NGMsMHhiMCwweDAzLDB4MmMsMHgwMiwweDhiLDB4MjAsMHgxMiwweGMwLDB4MjksMHhiMCwweDEyLDB4ZWMsMHgwMCwweGZiLDB4MDAgfX0sCi0gezE2LCAweGFkMTAsIDAsIHsweDNhLDB4YzAsMHgwZSwweDg4LDB4MDMsMHhlZCwweDIwLDB4ZmIsMHhjOCwweDM0LDB4ZjAsMHgwZCwweGJhLDB4MDMsMHg0NywweDYwIH19LAotIHsxNiwgMHhhZDIwLCAwLCB7MHhjOSwweDAwLDB4MzYsMHg0MCwweDBmLDB4YjAsMHgwYiwweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWQzMCwgMCwgezB4ZTAsMHgwMSwweDljLDB4MDAsMHhlZiwweDAwLDB4MGYsMHgwMCwweDBmLDB4MzAsMHgwMCwweGZjLDB4MDAsMHhkZiwweDkwLDB4YmIgfX0sCi0gezE2LCAweGFkNDAsIDAsIHsweGMwLDB4Y2UsMHhmMCwweDAzLDB4ZmMsMHgwNCwweGNiLDB4MDAsMHgxNywweGMwLDB4MGYsMHhjMCwweDAzLDB4YmMsMHg4NCwweGZmIH19LAotIHsxNiwgMHhhZDUwLCAwLCB7MHgwMCwweDM3LDB4YzAsMHgwZSwweGQwLDB4NjMsMHhiOCwweDAwLDB4ZWEsMHgwMCwweDNhLDB4ODAsMHgwYywweDMwLDB4MDMsMHg3MCB9fSwKLSB7MTYsIDB4YWQ2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZmIsMHgwMiwweDMyLDB4MDAgfX0sCi0gezE2LCAweGFkNzAsIDAsIHsweDBmLDB4YjAsMHg1MywweDJjLDB4MDAsMHhmYSwweDAwLDB4MzIsMHhjMCwweDhmLDB4YjAsMHgwNywweDJjLDB4MDAsMHhmYiwweDAwIH19LAotIHsxNiwgMHhhZDgwLCAwLCB7MHhiMiwweGMwLDB4MGYsMHg4MCwweDA3LDB4YWMsMHg4MCwweGRiLDB4MjQsMHg3ZSwweGQwLDB4MGUsMHhiMCwweDIzLDB4NzQsMHgwNCB9fSwKLSB7MTYsIDB4YWQ5MCwgMCwgezB4ZGQsMHgwOCwweGI1LDB4NDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFkYTAsIDAsIHsweGM4LDB4MDUsMHgzYywweDAwLDB4YmYsMHhjMCwweGEwLDB4MDAsMHgxYiwweGYwLDB4MDIsMHgzZiwweDYwLDB4ZWEsMHg1MCwweDIzIH19LAotIHsxNiwgMHhhZGIwLCAwLCB7MHhjMCwweDA4LDB4ZmEsMHgwNywweGZjLDB4MDAsMHhkZiwweDAwLDB4NjMsMHhjMCwweDQ4LDB4MTgsMHgwMiwweDJkLDB4MDAsMHhiMyB9fSwKLSB7MTYsIDB4YWRjMCwgMCwgezB4MDAsMHg2ZSwweGMwLDB4MGQsMHgzYSwweDAzLDB4MjQsMHgwMCwweDgyLDB4ODAsMHgzMiwweDgwLDB4MGQsMHhmMCwweDAzLDB4MzIgfX0sCi0gezE2LCAweGFkZDAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgxNCwweGIzLDB4NTksMHgyMCwweDgwIH19LAotIHsxNiwgMHhhZGUwLCAwLCB7MHgwOSwweDMwLDB4MDIsMHgyZSwweDA1LDB4YjAsMHg0NCwweDJlLDB4YzAsMHgwOSwweDM0LDB4ODIsMHhlYywweDAwLDB4YWIsMHgwNCB9fSwKLSB7MTYsIDB4YWRmMCwgMCwgezB4MjAsMHhjMCwweDA5LDB4MjEsMHhiMiwweDhlLDB4MDQsMHg5MywweGMwLDB4MjQsMHhjMCwweDBhLDB4MTgsMHgwNiwweDRjLDB4MDAgfX0sCi0gezE2LCAweGFlMDAsIDAsIHsweDkyLDB4NTAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NzAsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZTEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweGI3LDB4ODAsMHg2MSwweGUwLDB4MGIsMHg3OCwweDBhLDB4NWUsMHgwMSwweGIxLDB4YTAsMHgyZCB9fSwKLSB7MTYsIDB4YWUyMCwgMCwgezB4ZTAsMHgwYSwweDc4LDB4MDIsMHg1ZSwweDAwLDB4MDcsMHg5MCwweDIxLDB4ZTAsMHgxOCwweGM4LDB4MDIsMHgxZSwweDAwLDB4YjcgfX0sCi0gezE2LCAweGFlMzAsIDAsIHsweDgwLDB4MmQsMHhlMCwweDhhLDB4ZDgsMHgwMiwweDNlLDB4YzAsMHg4NSwweDgwLDB4MjEsMHgyMCwweDE5LDB4NzgsMHgyMiwweDAwIH19LAotIHsxNiwgMHhhZTQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhmMywweDk0LDB4MjAsMHgxMCB9fSwKLSB7MTYsIDB4YWU1MCwgMCwgezB4NGIsMHgzMCwweDA3LDB4MGMsMHgwMCwweGYzLDB4MDAsMHgzZSwweGM4LDB4MGYsMHgzMCwweDAzLDB4Y2MsMHgwMCwweDIzLDB4MTAgfX0sCi0gezE2LCAweGFlNjAsIDAsIHsweDAwLDB4Y2IsMHgwNSwweDIwLDB4MDIsMHg4YywweDYwLDB4OTMsMHgwYSwweDJlLDB4YzQsMHgwYSwweDAxLDB4MDcsMHg0YywweDgwIH19LAotIHsxNiwgMHhhZTcwLCAwLCB7MHhkMiwweDAxLDB4MzAsMHhjMCwweDJjLDB4MzAsMHgwYiwweDVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWU4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAxLDB4MGYsMHg0MCwweDBmLDB4ZjAsMHgxMywweGJjLDB4MDAsMHhlZiwweDI2LDB4NzMgfX0sCi0gezE2LCAweGFlOTAsIDAsIHsweGMyLDB4MGMsMHhiMCwweDgzLDB4YmMsMHg0MCwweGZmLDB4MTgsMHgzZCwweGMwLDB4NGEsMHhjMSwweDAzLDB4ZmMsMHgwMCwweGZiIH19LAotIHsxNiwgMHhhZWEwLCAwLCB7MHgxMiwweDNmLDB4YzQsMHg0ZCwweGMxLDB4MGIsMHhmYywweDgxLDB4ZmQsMHgwMCwweDNmLDB4MjAsMHgwZiwweGYwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4YWViMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDIwLDB4Y2IsMHg0OCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGFlYzAsIDAsIHsweDBjLDB4YjAsMHgwMywweDJkLDB4MjAsMHhlOSwweDgwLDB4ZmEsMHhjOCwweDBkLDB4YjAsMHgwMywweGVlLDB4MDAsMHhkYiwweDI0IH19LAotIHsxNiwgMHhhZWQwLCAwLCB7MHg3NiwweGYzLDB4OGUsMHg4MCwweDMzLDB4ZWMsMHg0NCwweGViLDB4MTAsMHgzZSwweGMwLDB4MGYsMHg5MCwweDAzLDB4ZTgsMHgwNCB9fSwKLSB7MTYsIDB4YWVlMCwgMCwgezB4ZGMsMHgwMCwweGIzLDB4NjEsMHgwYywweGIwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFlZjAsIDAsIHsweDQ4LDB4MTEsMHg4ZCwweDAwLDB4ODcsMHgyMCwweDJmLDB4MDEsMHgyOCwweDcwLDB4MDIsMHgwYywweDg0LDB4OGQsMHgwNCwweDMxIH19LAotIHsxNiwgMHhhZjAwLCAwLCB7MHhjYywweGM5LDB4NzIsMHgwMiwweGRkLDB4MDAsMHgzNywweDMzLDB4MjEsMHhkOCwweDA4LDB4NDAsMHgwMiwweGRjLDB4MDAsMHhiNyB9fSwKLSB7MTYsIDB4YWYxMCwgMCwgezB4MjAsMHgzZCwweGMwLDB4MDksMHg1MCwweDIyLDB4ZjAsMHgwMCwweDk3LDB4MDAsMHgyMSwweDgwLDB4MGEsMHhmYywweDAyLDB4OTIgfX0sCi0gezE2LCAweGFmMjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MWUsMHg4MiwweDg3LDB4YjAsMHgyZCwweDIwIH19LAotIHsxNiwgMHhhZjMwLCAwLCB7MHgwOCwweDM5LDB4MDIsMHgxZSwweDQxLDB4YTcsMHg4MCwweDI0LDB4ZTAsMHgwOSwweDdhLDB4MzIsMHg4ZSwweDgyLDB4MDcsMHhhMCB9fSwKLSB7MTYsIDB4YWY0MCwgMCwgezB4MjUsMHhlMCwweDhiLDB4NDgsMHgwMiwweDFlLDB4MDAsMHhhNywweGUxLDB4MmQsMHhlMCwweDRiLDB4NTgsMHgwMCwweGRhLDB4MDAgfX0sCi0gezE2LCAweGFmNTAsIDAsIHsweGEwLDB4ODAsMHgyNCwweDYwLDB4MDgsMHg3YSwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZjYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyYywweDAwLDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweDkzLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4YWY3MCwgMCwgezB4YzEsMHgwOSwweDMwLDB4NDIsMHhjYywweDAwLDB4ODMsMHgwMCwweDYwLDB4YzAsMHgwOCwweDFhLDB4MDIsMHhjZSwweDA0LDB4YjMgfX0sCi0gezE2LCAweGFmODAsIDAsIHsweGUwLDB4MjgsMHhhMCwweDA5LDB4MWMsMHg4MiwweDRiLDB4MDgsMHhhMywweDgwLDB4MjQsMHhhMCwweDJhLDB4MzAsMHgwMiwweDlhIH19LAotIHsxNiwgMHhhZjkwLCAwLCB7MHgwNCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhjYSwweDAwLDB4MmYsMHg4OCB9fSwKLSB7MTYsIDB4YWZhMCwgMCwgezB4MGMsMHhhMCwweDEzLDB4MjgsMHgwMCwweGVlLDB4MDAsMHgyZSwweDgwLDB4MmQsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGRhLDB4MDAgfX0sCi0gezE2LCAweGFmYjAsIDAsIHsweDc2LDB4ODAsMHgwZSwweGU4LDB4MDMsMHhiYiwweDgwLDB4ZWUsMHg0MCwweDJmLDB4YTIsMHg4ZiwweGU2LDB4MDMsMHhlYiwweDg2IH19LAotIHsxNiwgMHhhZmMwLCAwLCB7MHhmYSwweDgwLDB4MzcsMHg4MiwweDBjLDB4MjAsMHgwNywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWZkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDQwLDB4MWUsMHgwMCwweDBmLDB4ODAsMHgwYiwweDYxLDB4MDAsMHhlOCwweGMwLDB4M2EgfX0sCi0gezE2LCAweGFmZTAsIDAsIHsweDAwLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwMSwweGY4LDB4MDAsMHg3ZSwweDEwLDB4MWUsMHg4MSwweDAzLDB4ZTAsMHgwOCwweGY4IH19LAotIHsxNiwgMHhhZmYwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHhjMCwweDI4LDB4ZGMsMHg1MCwweDNiLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4YjAwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDIgfX0sCi0gezE2LCAweGIwMTAsIDAsIHsweDBmLDB4MTAsMHgwMywweGE2LDB4MDAsMHhjOSwweDAxLDB4M2EsMHg0MCwweDBlLDB4OTQsMHgwMSwweGU0LDB4MTAsMHhmMSwweDA0IH19LAotIHsxNiwgMHhiMDIwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHg5YSwweDIzLDB4MjAsMHg2MCwweGY4LDB4MDQsMHgwYSwweDQyLDB4MGUsMHg5MCwweDEzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YjAzMCwgMCwgezB4YzEsMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIwNDAsIDAsIHsweDgwLDB4MDQsMHg2NywweDA4LDB4YTksMHgwMCwweDZlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNywweDgyLDB4ODksMHgwMCwweDI2IH19LAotIHsxNiwgMHhiMDUwLCAwLCB7MHg0MCwweDA4LDB4OWMsMHgwMywweGE0LDB4MTAsMHhiOSwweDAwLDB4MzYsMHg0MCwweDliLDB4MWMsMHgxYSwweDIzLDB4MDQsMHhiOCB9fSwKLSB7MTYsIDB4YjA2MCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MGUsMHgxMCwweDAyLDB4MjQsMHgwMiwweGM5LDB4YTAsMHhhMiwweDQwLDB4MGIsMHg5MCwweDBhLDB4MjAgfX0sCi0gezE2LCAweGIwNzAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjUsMHg4MCwweDg5LDB4MDQsMHgyYywweDQwIH19LAotIHsxNiwgMHhiMDgwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHg4NCwweDgxLDB4OTksMHg0MCwweDJlLDB4NDAsMHgxYSwweDkwLDB4MDYsMHhlNCwweDAxLDB4YjksMHgwMCB9fSwKLSB7MTYsIDB4YjA5MCwgMCwgezB4YTYsMHg0MSwweDFiLDB4OTAsMHg4MiwweDIxLDB4MDAsMHhiOCwweDEwLDB4MmUsMHg0MCwweDBhLDB4OTIsMHgwYSwweGE0LDB4MDEgfX0sCi0gezE2LCAweGIwYTAsIDAsIHsweDhmLDB4MjIsMHgyMywweDQwLDB4MGIsMHg5MCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMGIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGEzLDB4MjAsMHgyYywweDQxLDB4MDksMHgxMiwweDAyLDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyNCB9fSwKLSB7MTYsIDB4YjBjMCwgMCwgezB4NDgsMHgwYSwweDM2LDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMCwweDA0LDB4YzgsMHg0YiwweDE0LDB4MDIsMHgwNSwweDAwLDB4YjEgfX0sCi0gezE2LCAweGIwZDAsIDAsIHsweDA1LDB4MjgsMHg1MCwweDBhLDB4OTAsMHgwMiwweDA1LDB4MDIsMHg4NSwweDAwLDB4MjEsMHg0MCwweDBiLDB4MTIsMHgwMiwweDAyIH19LAotIHsxNiwgMHhiMGUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjOCwweDAwLDB4NmUsMHgxNCB9fSwKLSB7MTYsIDB4YjBmMCwgMCwgezB4MmMsMHg4NSwweDAyLDB4YTEsMHg0MCwweGM4LDB4NTAsMHgzYSwweDE0LDB4MGUsMHg4MCwweDAyLDB4ZTEsMHg0MCwweGIwLDB4NTAgfX0sCi0gezE2LCAweGIxMDAsIDAsIHsweDMyLDB4MDAsMHgwYiwweDgwLDB4MDMsMHgyMCwweDAwLDB4ZmEsMHgwMCwweDNlLDB4MDAsMHgwZSwweDgwLDB4MDMsMHhhMCwweDAyIH19LAotIHsxNiwgMHhiMTEwLCAwLCB7MHhjOCwweDAwLDB4MTMsMHgwMCwweDBmLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjEyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDgsMHhmOSwweDE0LDB4M2YsMHg0MCwweDBjLDB4OTEsMHgwMywweGU0LDB4NDIsMHhmZCwweDEwLDB4MzYgfX0sCi0gezE2LCAweGIxMzAsIDAsIHsweDQ0LDB4MGQsMHg5MSwweDIzLDB4YTQsMHg0OCwweGY5LDB4MTEsMHgzOCwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTUsMHgxNCwweDM5IH19LAotIHsxNiwgMHhiMTQwLCAwLCB7MHg0MiwweDdiLDB4NDAsMHg4ZSwweGQwLDB4MDEsMHhmNSwweDAwLDB4YTksMHg0MCwweDNlLDB4NTAsMHgwNywweDk2LDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4YjE1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmNiwweDgwLDB4ZGQsMHhhZSwweDNhLDB4NTAgfX0sCi0gezE2LCAweGIxNjAsIDAsIHsweDBkLDB4OWEsMHgwYiwweDc2LDB4ODAsMHhjZiwweDg4LDB4MzIsMHg3MCwweDJkLDB4ZGEsMHgwMywweGE3LDB4MDEsMHhlOSwweDkyIH19LAotIHsxNiwgMHhiMTcwLCAwLCB7MHgzNywweDY4LDB4MGQsMHg5NCwweDAzLDB4ZTcsMHgwMCwweGVkLDB4YTAsMHgzYSwweDUwLDB4MGYsMHhkMCwweDAzLDB4ZTcsMHgwMiB9fSwKLSB7MTYsIDB4YjE4MCwgMCwgezB4Y2QsMHg4MCwweDMzLDB4NjgsMHgwYywweGQ4LDB4ODMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIxOTAsIDAsIHsweDM4LDB4MTAsMHhlMSwweDAwLDB4ODgsMHg0MCwweDIwLDB4MjAsMHgwYywweDhjLDB4MDIsMHgyMywweDAwLDB4ODgsMHhlMCwweDIyIH19LAotIHsxNiwgMHhiMWEwLCAwLCB7MHgzMCwweDA4LDB4ODQsMHgwMiwweGUzLDB4MDAsMHhiOCwweGUwLDB4MjIsMHgxNCwweDhkLDB4ODgsMHgwMiwweGUzLDB4MDAsMHhiOCB9fSwKLSB7MTYsIDB4YjFiMCwgMCwgezB4NTAsMHgyZSwweGE4LDB4OGIsMHg4MCwweDIyLDB4ZTMsMHg0OCwweDg4LDB4NTAsMHgyMiwweDAwLDB4MDgsMHg4YywweDAyLDB4MGUgfX0sCi0gezE2LCAweGIxYzAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHg0MCwweDkxLDB4MDAsMHgyYSwweDQ4IH19LAotIHsxNiwgMHhiMWQwLCAwLCB7MHgwOSwweDE0LDB4ODIsMHgwNSwweDIwLDB4ODEsMHgwOCwweDIwLDB4NTgsMHgwOSwweDExLDB4MDIsMHg4NSwweDg4LDB4YjEsMHg0MCB9fSwKLSB7MTYsIDB4YjFlMCwgMCwgezB4YTAsMHg0MCwweDA4LDB4MTIsMHgwMiwweGM1LDB4ODAsMHhhMSwweDAwLDB4MjgsMHg0MCwweDBiLDB4MTgsMHgwMiwweGM0LDB4ODQgfX0sCi0gezE2LCAweGIxZjAsIDAsIHsweGExLDB4MDAsMHgyNCwweDUwLDB4MDgsMHgxMCwweDkyLDB4MDMsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMjAwLCAwLCB7MHgxOCwweDE1LDB4YWMsMHgxMCwweDliLDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDQsMHgwNiwweDg5LDB4MDQsMHgyMCB9fSwKLSB7MTYsIDB4YjIxMCwgMCwgezB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDAxLDB4YjksMHgwMiwweDIyLDB4NDEsMHg4OSwweGEwLDB4ODIsMHhlMCwweGEwLDB4YjkgfX0sCi0gezE2LCAweGIyMjAsIDAsIHsweDI4LDB4MmUsMHg0NCwweDBiLDB4YjAsMHgwMiwweGU0LDB4MDIsMHhiOSwweDAwLDB4MjYsMHg0MCwweDI4LDB4MTAsMHgwMiwweDA2IH19LAotIHsxNiwgMHhiMjMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhkOSwweDAwLDB4MzgsMHg0MCB9fSwKLSB7MTYsIDB4YjI0MCwgMCwgezB4MGQsMHg5MCwweDAzLDB4MjQsMHgwMCwweGM5LDB4YTAsMHhhMiwweDQwLDB4OGQsMHg5MCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAgfX0sCi0gezE2LCAweGIyNTAsIDAsIHsweDM2LDB4NDAsMHgwYywweDg0LDB4MTMsMHhlMiwweDAwLDB4ZTksMHgwMCwweDNhLDB4NTAsMHgwZiwweDljLDB4MDIsMHhlNiwweDg0IH19LAotIHsxNiwgMHhiMjYwLCAwLCB7MHhlOSwweDAwLDB4YjYsMHg0MCwweDBjLDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjI3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhlMSwweDAwLDB4M2UsMHg2OCwweDBlLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmMSwweDI4LDB4M2EgfX0sCi0gezE2LCAweGIyODAsIDAsIHsweDQwLDB4MGUsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQyLDB4MGYsMHg4MCwweDIzLDB4ZTIsMHgwMCwweGY5IH19LAotIHsxNiwgMHhiMjkwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwZiwweDkxLDB4MjMsMHhlNCwweDQwLDB4YzEsMHgwMCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MGIsMHhjYSB9fSwKLSB7MTYsIDB4YjJhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHg4MCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGIyYjAsIDAsIHsweDBjLDB4ODAsMHgwMywweGEwLDB4MjAsMHhjOCwweDQwLDB4M2UsMHgwMCwweDBlLDB4ODEsMHg2MywweDYwLDB4MDAsMHhmMCwweDA0IH19LAotIHsxNiwgMHhiMmMwLCAwLCB7MHgzYywweDAxLDB4MGMsMHg4NCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4YzEsMHgwMCB9fSwKLSB7MTYsIDB4YjJkMCwgMCwgezB4ZDgsMHgxMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MjMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIyZTAsIDAsIHsweDI4LDB4MDUsMHgzOCwweDYwLDB4OGUsMHgwMCwweDIyLDB4ODAsMHgwYSwweGEwLDB4MDIsMHgzOCwweDgwLDB4YmUsMHgwMCwweDNhIH19LAotIHsxNiwgMHhiMmYwLCAwLCB7MHg4MCwweDA4LDB4ZTAsMHgwMiwweDI4LDB4MDAsMHhiYSwweDAwLDB4MjMsMHg5OCwweDE4LDB4ZWMsMHgwMiwweGY4LDB4MjAsMHhhZSB9fSwKLSB7MTYsIDB4YjMwMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MGIsMHhlNCwweDgyLDB4ZTgsMHgwMiwweGNlLDB4NDQsMHgyOCwweDgwLDB4MGQsMHhhMCwweDBhLDB4MGEgfX0sCi0gezE2LCAweGIzMTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NDAsMHgwMCwweDgyLDB4MDQsMHhhMCwweGMwIH19LAotIHsxNiwgMHhiMzIwLCAwLCB7MHgwOSwweDMwLDB4MDIsMHg4ZSwweDA0LDB4ODMsMHg1MCwweDZjLDB4YzAsMHgwYSwweDMwLDB4ODYsMHgwYywweDAwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4YjMzMCwgMCwgezB4MjgsMHgzMCwweDBhLDB4MzYsMHgxMiwweGNjLDB4ODAsMHg4MSwweDAwLDB4MjQsMHhjMCwweDBiLDB4MzIsMHgwNiwweGNjLDB4MDAgfX0sCi0gezE2LCAweGIzNDAsIDAsIHsweDgwLDB4ODgsMHg2NCwweDYwLDB4MjgsMHgxMCwweDAyLDB4MDIsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMzUwLCAwLCB7MHhhMCwweDAxLDB4MTAsMHgxMiwweDg0LDB4NDAsMHgyMSwweGM4LDB4MGEsMHg3MiwweDAyLDB4MTAsMHgwMCwweGI3LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4YjM2MCwgMCwgezB4Y2MsMHgwOCwweDM4LDB4MTIsMHgxYywweDAwLDB4YjMsMHgzMCwweDIwLDB4MDAsMHgwOCwweDcxLDB4ODIsMHhmZSwweDAwLDB4YTQgfX0sCi0gezE2LCAweGIzNzAsIDAsIHsweDgwLDB4MjEsMHhjOCwweDBiLDB4NzAsMHgwMiwweGRjLDB4MDEsMHg4NywweDAwLDB4MmMsMHg0MiwweDA5LDB4NTEsMHgwMiwweDIwIH19LAotIHsxNiwgMHhiMzgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDEyLDB4MDAsMHhjMiwweDgwLDB4MzEsMHhmOCB9fSwKLSB7MTYsIDB4YjM5MCwgMCwgezB4NGMsMHhmYywweDEzLDB4OTIsMHgwOSwweGM3LDB4ODAsMHgzYywweGVkLDB4MWUsMHg3OCwweDI3LDB4MWUsMHgwMCwweGY3LDB4OGMgfX0sCi0gezE2LCAweGIzYTAsIDAsIHsweDc5LDB4MjAsMHgwOCwweDdhLDB4MDMsMHhkZSwweDgxLDB4ODQsMHg4MCwweDNkLDB4ZTAsMHgwZSwweDc4LDB4MDMsMHhmZSwweDIwIH19LAotIHsxNiwgMHhiM2IwLCAwLCB7MHhjNSwweDgxLDB4MzUsMHg2MCwweDJjLDB4NTgsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjNjMCwgMCwgezB4MDgsMHgxZCwweDgwLDB4MDAsMHhmOCwweDA0LDB4M2UsMHhkMCwweDBmLDB4YjAsMHgxMywweGUwLDB4MDAsMHhmYiwweDAyLDB4M2EgfX0sCi0gezE2LCAweGIzZDAsIDAsIHsweGQwLDB4MGYsMHhhMCwweDBiLDB4YWMsMHg0MCwweGZiLDB4MDAsMHgzYSwweDAwLDB4MmYsMHhiMCwweDAzLDB4Y2MsMHgwMCwweGYwIH19LAotIHsxNiwgMHhiM2UwLCAwLCB7MHgwMCwweDNhLDB4YzQsMHgwZiwweGIwLDB4MDMsMHhmYywweDQxLDB4ZjMsMHgwMCwweDNhLDB4NDAsMHgwZiwweDUwLDB4OTMsMHhjMiB9fSwKLSB7MTYsIDB4YjNmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4Y2MsMHg4MSwweDNmLDB4ZmMgfX0sCi0gezE2LCAweGI0MDAsIDAsIHsweDFjLDB4ZjgsMHgwMywweDc2LDB4NDAsMHhlZiwweDkyLDB4M2YsMHhlNCwweDhjLDB4ZjgsMHgwMywweGJmLDB4MTAsMHhmZiwweDgwIH19LAotIHsxNiwgMHhiNDEwLCAwLCB7MHhiMywweDIwLDB4MGUsMHhmOSwweDEzLDB4ZmUsMHgyNCwweGZkLDB4OTQsMHgzNywweGUwLDB4MWMsMHhmOSwweDAzLDB4ZWUsMHgwMCB9fSwKLSB7MTYsIDB4YjQyMCwgMCwgezB4Y2QsMHg4MCwweGIzLDB4ZTAsMHgwYywweDU4LDB4MDIsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI0MzAsIDAsIHsweGE4LDB4MTEsMHg5NCwweDQwLDB4ODAsMHgwMCwweDJmLDB4YzQsMHgwOCwweDcyLDB4MDIsMHhkZCwweDA4LDB4ZDcsMHgwMCwweDJkIH19LAotIHsxNiwgMHhiNDQwLCAwLCB7MHhjYywweDA4LDB4ZGUsMHgwMywweDVjLDB4MDAsMHhiNywweDA0LDB4MjEsMHg4MCwweGM4LDB4NzAsMHg4MywweGRjLDB4MDAsMHhiNCB9fSwKLSB7MTYsIDB4YjQ1MCwgMCwgezB4YTAsMHgyZiwweGMwLDB4MGMsMHg3MCwweDAyLDB4ZGUsMHg4MCwweDg3LDB4MDAsMHgyMSwweGMyLDB4MGEsMHg1MSwweDQyLDB4MmEgfX0sCi0gezE2LCAweGI0NjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgwMCwweDg0LDB4MDAsMHgyZCwweGM4IH19LAotIHsxNiwgMHhiNDcwLCAwLCB7MHg0OCwweDcwLDB4MDIsMHg1NCwweDBjLDB4YTcsMHgwMCwweDJjLDB4YzAsMHg4OSwweDcyLDB4MDIsMHg1YywweDAwLDB4YjMsMHgxMCB9fSwKLSB7MTYsIDB4YjQ4MCwgMCwgezB4MjAsMHgwMCwweDBhLDB4NzAsMHgwNiwweGRjLDB4MDAsMHhiNCwweDIwLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4ODAgfX0sCi0gezE2LCAweGI0OTAsIDAsIHsweDkzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHg1MCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNGEwLCAwLCB7MHgyMCwweDE0LDB4YzAsMHgwMCwweDgwLDB4MDAsMHgyZSwweGMwLDB4MDgsMHgzMCwweDAyLDB4YzQsMHgwOCwweGEyLDB4NDIsMHgyYyB9fSwKLSB7MTYsIDB4YjRiMCwgMCwgezB4YzEsMHgwOSwweDIwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4ODAsMHgwOCwweDNjLDB4MjIsMHg4YywweDIwLDB4YjAgfX0sCi0gezE2LCAweGI0YzAsIDAsIHsweDA4LDB4MmUsMHhlMCwweDA4LDB4MzgsMHgxMCwweGNmLDB4MGEsMHg5MywweDQwLDB4YTAsMHhmMCwweDBhLDB4MTAsMHgwMiwweDA4IH19LAotIHsxNiwgMHhiNGQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGE4LDB4MDAsMHhjMSwweDAwLDB4M2YsMHhjMCB9fSwKLSB7MTYsIDB4YjRlMCwgMCwgezB4MmMsMHhmMCwweDAzLDB4NjgsMHgwMCwweGFhLDB4MDAsMHgzZiwweGMwLDB4MmQsMHg4MCwweDAzLDB4N2MsMHgwMCwweGZmLDB4MDAgfX0sCi0gezE2LCAweGI0ZjAsIDAsIHsweDMyLDB4MDAsMHgwZSwweGIwLDB4MTIsMHhlZCwweDI0LDB4ZmEsMHgwOCwweDI3LDB4YzgsMHgxMCwweGI4LDB4YTIsMHhmZiwweDYwIH19LAotIHsxNiwgMHhiNTAwLCAwLCB7MHg5OCwweGEwLDB4YTIsMHhlMCwweDBjLDB4NTAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjUxMCwgMCwgezB4ODAsMHgwMCwweGM5LDB4MDYsMHhmOCwweDQxLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGU5LDB4MTAsMHg1YSwweDIwLDB4M2UgfX0sCi0gezE2LCAweGI1MjAsIDAsIHsweGMwLDB4MGUsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGYzLDB4MDAsMHg3ZSwweDAxLDB4MGYsMHhiMCwweDkzLDB4ZWQsMHgwMCwweGY4IH19LAotIHsxNiwgMHhiNTMwLCAwLCB7MHg0MCwweDNlLDB4YzAsMHgwZSwweGIwLDB4MDMsMHhmYywweDAwLDB4ZTMsMHgwOCwweDNjLDB4YzIsMHgwZiwweGQwLDB4MTMsMHhlMCB9fSwKLSB7MTYsIDB4YjU0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMywweDAyLDB4Y2MsMHgwMCwweDNiLDB4YzIgfX0sCi0gezE2LCAweGI1NTAsIDAsIHsweDBjLDB4ZjAsMHgyMywweGFlLDB4NDAsMHhkZiwweDgxLDB4MzksMHhjMCwweDA2LDB4ZDAsMHgwMywweGZjLDB4MDAsMHhmZiwweDA0IH19LAotIHsxNiwgMHhiNTYwLCAwLCB7MHgzMSwweDQxLDB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGNjLDB4YTAsMHgzNywweGMyLDB4MGMsMHhmMCwweDAzLDB4N2MsMHgwNCB9fSwKLSB7MTYsIDB4YjU3MCwgMCwgezB4Y2QsMHgwMCwweDMzLDB4ZjAsMHgwYywweGQwLDB4MDMsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI1ODAsIDAsIHsweDgxLDB4MDQsMHg2MCwweDAwLDB4ODgsMHg4MCwweDIyLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhlOSwweDAwLDB4YWIsMHg0NCwweDJlIH19LAotIHsxNiwgMHhiNTkwLCAwLCB7MHhjMCwweDA4LDB4ODgsMHgwMiwweGVjLDB4MDAsMHhiYiwweDAwLDB4YTIsMHg3MCwweDBhLDB4YjQsMHgwMiwweGNjLDB4MDAsMHhhMCB9fSwKLSB7MTYsIDB4YjVhMCwgMCwgezB4MjAsMHgyMiwweGMwLDB4MGYsMHhiYywweDAyLDB4Y2MsMHgwYSwweDhiLDB4ODAsMHhhMiwweGMwLDB4MGQsMHg5MCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGI1YjAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjAsMHgwMCwweDg5LDB4ODAsMHgyYSwweGMwIH19LAotIHsxNiwgMHhiNWMwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHhjYywweDA2LDB4ODgsMHg2MCwweDJlLDB4YzAsMHgwYSwweDk4LDB4MDYsMHhlYywweDAxLDB4YmIsMHgwMCB9fSwKLSB7MTYsIDB4YjVkMCwgMCwgezB4MjIsMHgzMSwweDAyLDB4YjIsMHgwMiwweGVjLDB4YTAsMHg4YSwweDAwLDB4MjYsMHhjMCwweDQ4LDB4YTgsMHgwMiwweGVjLDB4MDQgfX0sCi0gezE2LCAweGI1ZTAsIDAsIHsweGE5LDB4ODAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNWYwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweGMwLDB4MGEsMHgzMCwweDQyLDB4Y2MsMHgwMCwweDgwLDB4MDEsMHgyYyB9fSwKLSB7MTYsIDB4YjYwMCwgMCwgezB4YzAsMHgxYSwweDEyLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDIwLDB4MDAsMHg0YSwweDMwLDB4MDIsMHhjYywweDAwLDB4YTAgfX0sCi0gezE2LCAweGI2MTAsIDAsIHsweDAwLDB4MDgsMHhjMCwweDBiLDB4MjAsMHgwNiwweGVjLDB4YTAsMHhhMywweDAwLDB4YTAsMHg0MCwweDI5LDB4MTAsMHgwMCwweDAyIH19LAotIHsxNiwgMHhiNjIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhjOCwweDUwLDB4M2IsMHhjMCB9fSwKLSB7MTYsIDB4YjYzMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4YWMsMHgwMCwweGM5LDB4MDAsMHgzYiwweGMwLDB4MGUsMHg5MiwweDgzLDB4ZmMsMHgwMCwweGJmLDB4MDAgfX0sCi0gezE2LCAweGI2NDAsIDAsIHsweDEyLDB4MDAsMHgwYywweGIwLDB4MDMsMHhlYywweDAwLDB4ODgsMHgyNiwweDE2LDB4YzAsMHgwYywweDgwLDB4MTcsMHg1YywweDgwIH19LAotIHsxNiwgMHhiNjUwLCAwLCB7MHhlOSwweDAxLDB4MzIsMHg0MCwweDJjLDB4ZDAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjY2MCwgMCwgezB4YTAsMHgxZCwweGQwLDB4MDAsMHhmYywweDIwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmYywweDAwLDB4M2YgfX0sCi0gezE2LCAweGI2NzAsIDAsIHsweGMwLDB4MGQsMHg4MCwweDAzLDB4ZmMsMHgwOCwweGZmLDB4MDAsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgxMCwweGY4IH19LAotIHsxNiwgMHhiNjgwLCAwLCB7MHg0MCwweDM3LDB4YzAsMHgwZSwweGUwLDB4MjEsMHhmYywweDA4LDB4ZGYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4YjY5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweGMwLDB4ZmYsMHgyMSwweDcxLDB4MjQgfX0sCi0gezE2LCAweGI2YTAsIDAsIHsweDBmLDB4ZjEsMHg4MywweGYyLDB4NDAsMHhmZiwweDAwLDB4MzcsMHhjNCwweDlmLDB4ZjIsMHg0NywweDNkLDB4MDQsMHhjNywweDIwIH19LAotIHsxNiwgMHhiNmIwLCAwLCB7MHgzMywweGMwLDB4MGMsMHg3OCwweDIzLDB4ZmUsMHg0MCwweGU4LDB4MTAsMHgyNywweGM0LDB4MGYsMHhmMiwweDEzLDB4M2MsMHg4NCB9fSwKLSB7MTYsIDB4YjZjMCwgMCwgezB4YzQsMHg4MSwweDMzLDB4MjAsMHg0YywweGYwLDB4MjMsMHg3MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI2ZDAsIDAsIHsweDgwLDB4MTAsMHhlZCwweDQwLDB4YmYsMHg1NCwweDYyLDB4YzgsMHgwYiwweGY2LDB4MDIsMHhlMCwweDAwLDB4YmIsMHhkMCwweDIyIH19LAotIHsxNiwgMHhiNmUwLCAwLCB7MHhmMCwweDFmLDB4ZjksMHgxMiwweDNkLDB4ODAsMHg5ZiwweDgxLDB4MmIsMHhlMCwweDBhLDB4YjgsMHgxMiwweGU4LDB4MDAsMHg4ZiB9fSwKLSB7MTYsIDB4YjZmMCwgMCwgezB4MDQsMHgyMiwweGQwLDB4MDgsMHhiMywweDhhLDB4YmYsMHg0MiwweDhiLDB4ODIsMHgyMiwweGUwLDB4MjgsMHg4YywweDAyLDB4MjAgfX0sCi0gezE2LCAweGI3MDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMCwweGIzLDB4MjgsMHgyOCwweDA4IH19LAotIHsxNiwgMHhiNzEwLCAwLCB7MHgwYiwweDMwLDB4MDYsMHg4MCwweDgwLDB4YjMsMHgwMiwweDI0LDB4ZDEsMHgwYiwweDMwLDB4MDIsMHg4ZCwweDgwLDB4OTMsMHgxMCB9fSwKLSB7MTYsIDB4YjcyMCwgMCwgezB4MjAsMHhjZSwweDhiLDB4MzAsMHgwMiwweGNjLDB4ODQsMHhhMSwweDIxLDB4MmMsMHhjYywweDBhLDB4MzAsMHgwYSwweDRjLDB4MDAgfX0sCi0gezE2LCAweGI3MzAsIDAsIHsweDkzLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzYywweDAyLDB4MjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNzQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgxMCwweGJiLDB4MDIsMHg2YSwweGUwLDB4MGIsMHhiMCwweDAyLDB4ZTEsMHgwOCwweGJiLDB4MDQsMHgyYSB9fSwKLSB7MTYsIDB4Yjc1MCwgMCwgezB4YzAsMHgwYSwweGIwLDB4MTIsMHg4YywweDAwLDB4OWIsMHgwMCwweDJhLDB4YzAsMHgwYiwweGIxLDB4MDYsMHhjOCwweDgwLDB4OGIgfX0sCi0gezE2LCAweGI3NjAsIDAsIHsweDgyLDB4NmEsMHhjMSwweDBhLDB4MzAsMHgwMiwweGFjLDB4MTgsMHg4OCwweDEwLDB4MmEsMHg0OCwweDA4LDB4ODAsMHgwMiwweDMwIH19LAotIHsxNiwgMHhiNzcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhmYiwweDAwLDB4YWEsMHgzMCB9fSwKLSB7MTYsIDB4Yjc4MCwgMCwgezB4MGYsMHhiMCwweDAzLDB4YTgsMHgwMCwweGYzLDB4MDEsMHhiNiwweGMxLDB4MGIsMHhiMCwweDAyLDB4YWMsMHgwOCwweDRiLDB4MDAgfX0sCi0gezE2LCAweGI3OTAsIDAsIHsweGIyLDB4YzAsMHgwZiwweGI4LDB4MDIsMHhlYywweDEwLDB4YTksMHg4MSwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgwYywweDAwIH19LAotIHsxNiwgMHhiN2EwLCAwLCB7MHhjYiwweGEwLDB4MTgsMHhkMCwweDBjLDB4YjAsMHgwMywweDEwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjdiMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDgsMHhmNywweDAwLDB4MzcsMHgwMCwweDBmLDB4ZjAsMHgwMywweGZkLDB4MDAsMHhmZiwweDAwLDB4MzcgfX0sCi0gezE2LCAweGI3YzAsIDAsIHsweGMwLDB4MGYsMHhiMCwweDA3LDB4N2MsMHgwMCwweGU3LDB4MDAsMHgzZSwweGMwLDB4MGEsMHhmMCwweDAzLDB4ZmUsMHgwMCwweGY3IH19LAotIHsxNiwgMHhiN2QwLCAwLCB7MHgwMCwweDM2LDB4YzAsMHgwYywweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHg4MCwweDM3LDB4ZTAsMHgwZiwweGEwLDB4MDMsMHhiOCB9fSwKLSB7MTYsIDB4YjdlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZGIsMHgwMCwweDM2LDB4MDAgfX0sCi0gezE2LCAweGI3ZjAsIDAsIHsweDBlLDB4YjAsMHgwMywweDY5LDB4MDAsMHhkYiwweDA5LDB4M2EsMHhjMCwweDFmLDB4MzAsMHgyMywweGVjLDB4MDgsMHhjYiwweDIwIH19LAotIHsxNiwgMHhiODAwLCAwLCB7MHgzNCwweGMwLDB4MmYsMHhiMCwweDAzLDB4ZWMsMHg0MCwweGViLDB4NDgsMHgzZSwweGM0LDB4NGQsMHhiMCwweDhiLDB4NmMsMHgwMCB9fSwKLSB7MTYsIDB4YjgxMCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4OTAsMHgwZiwweDMwLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI4MjAsIDAsIHsweGM4LDB4MDUsMHgzYywweDAwLDB4OGYsMHgwMCwweDIyLDB4MDAsMHg0OCwweGYwLDB4MjIsMHgyYywweDAwLDB4OGYsMHgwMCwweDIzIH19LAotIHsxNiwgMHhiODMwLCAwLCB7MHhlMCwweDhiLDB4ZjUsMHgxMCwweDNjLDB4MDAsMHg4ZiwweDgwLDB4MjMsMHhmMCwweDgwLDB4OTgsMHgwMywweDJkLDB4NDQsMHhkYiB9fSwKLSB7MTYsIDB4Yjg0MCwgMCwgezB4MDAsMHgyMywweGQ0LDB4MDgsMHhmOCwweDAyLDB4M2MsMHgwMCwweDgzLDB4MDAsMHgyMiwweGMwLDB4MGIsMHhhNCwweDgyLDB4MzIgfX0sCi0gezE2LCAweGI4NTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweDkzLDB4MDAsMHgyNCwweDAwIH19LAotIHsxNiwgMHhiODYwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHg4NCwweDAwLDB4YjMsMHgwMSwweDI4LDB4ZjYsMHgwOSwweDM0LDB4MzIsMHg4YywweDAxLDB4YjMsMHhkMCB9fSwKLSB7MTYsIDB4Yjg3MCwgMCwgezB4MjQsMHhlOCwweDBhLDB4MzEsMHgwYSwweDg2LDB4MDAsMHg4MywweDAwLDB4MmEsMHhlMCwweDAwLDB4MzAsMHgwMiwweDhjLDB4MDAgfX0sCi0gezE2LCAweGI4ODAsIDAsIHsweDgzLDB4MDAsMHgyOCwweGMwLDB4ODksMHgzOCwweGEyLDB4NzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiODkwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweDk3LDB4OTQsMHgyMywweGUwLDB4MDksMHgzOCwweDAyLDB4MzIsMHgwMCwweDk3LDB4YTEsMHgyMSB9fSwKLSB7MTYsIDB4YjhhMCwgMCwgezB4ZTQsMHgwYiwweDc4LDB4MDIsMHgxZSwweDQwLDB4YjcsMHhhMCwweDI1LDB4ZWMsMHgwOCwweGZjLDB4MDIsMHgzYSwweDAwLDB4OTMgfX0sCi0gezE2LCAweGI4YjAsIDAsIHsweGI4LDB4MjEsMHhlMCwweDA4LDB4NzgsMHg4MiwweDllLDB4NDAsMHg4NywweGMwLDB4MjksMHhhMCwweDBiLDB4NTgsMHgwMiwweDQ4IH19LAotIHsxNiwgMHhiOGMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDJjLDB4MDAsMHhkYiwweDAwLDB4MzQsMHgyMCB9fSwKLSB7MTYsIDB4YjhkMCwgMCwgezB4MGYsMHgzYSwweDAzLDB4OGUsMHgwMCwweGYzLDB4YjAsMHgyOCwweGM0LDB4MGIsMHgzYSwweDAzLDB4YWUsMHg0MCwweGYzLDB4YTAgfX0sCi0gezE2LCAweGI4ZTAsIDAsIHsweDM0LDB4ZWUsMHgwZiwweDMwLDB4MjMsMHg4NCwweDAwLDB4ZTMsMHhmMCwweDM4LDB4YzAsMHgwYywweGIwLDB4MGIsMHg4ZSwweDQyIH19LAotIHsxNiwgMHhiOGYwLCAwLCB7MHhjMywweDAwLDB4MzgsMHhjMCwweDBmLDB4MzAsMHg2MywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjkwMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhlYiwweDQyLDB4M2EsMHhjNCwweDFlLDB4YjEsMHgwNywweDg4LDB4ZDEsMHhlMywweDAwLDB4M2YgfX0sCi0gezE2LCAweGI5MTAsIDAsIHsweGM1LDB4OGYsMHhmMSwweDYzLDB4YWMsMHgxMCwweGNiLDB4NTAsMHgzYiwweGMzLDB4MGYsMHhkMSwweDAzLDB4YzgsMHgwMCwweGJiIH19LAotIHsxNiwgMHhiOTIwLCAwLCB7MHgyMCwweDNiLDB4YzAsMHgyZSwweGYxLDB4MDMsMHgxYywweDAwLDB4ZmYsMHgwMCwweDM3LDB4YzAsMHg0ZiwweGQxLDB4MDMsMHg5MCB9fSwKLSB7MTYsIDB4YjkzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDQwLDB4ZmIsMHg0NCwweGIyLDB4YzAgfX0sCi0gezE2LCAweGI5NDAsIDAsIHsweDRmLDB4YjMsMHg0MywweDI0LDB4MDAsMHhkYiwweDEwLDB4MzYsMHhjMCwweDRjLDB4YmUsMHgyMiwweDZkLDB4MjAsMHhjYiwweDUwIH19LAotIHsxNiwgMHhiOTUwLCAwLCB7MHgzZSwweGM5LDB4NGMsMHhiMCwweDEzLDB4MjQsMHgwMCwweGNmLDB4MjAsMHgzMywweGMwLDB4M2QsMHhmMCwweDIzLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4Yjk2MCwgMCwgezB4ZDgsMHgwMCwweDNlLDB4NDAsMHg4ZiwweDMwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI5NzAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDA0LDB4YjcsMHg2MCwweDIxLDB4YzEsMHg4YiwweGYwLDB4YTIsMHgxNCwweDEwLDB4ODcsMHgwMCwweDBmIH19LAotIHsxNiwgMHhiOTgwLCAwLCB7MHhjOCwweDBkLDB4NzEsMHgwYSwweDFkLDB4MDAsMHg4NywweDAwLDB4MmMsMHhjYywweDQ4LDB4NzAsMHgyYSwweDljLDB4MDAsMHg4NyB9fSwKLSB7MTYsIDB4Yjk5MCwgMCwgezB4MGMsMHgyMSwweGMwLDB4MGMsMHg3MiwweDAyLDB4MGMsMHhhMiwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4MTIgfX0sCi0gezE2LCAweGI5YTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweGIzLDB4ODAsMHgyMSwweGUwIH19LAotIHsxNiwgMHhiOWIwLCAwLCB7MHgwYiwweDdhLDB4MDIsMHhkZSwweDAwLDB4YjcsMHg4MSwweDA1LDB4ZTQsMHgwOCwweDc5LDB4MDIsMHg1YywweDgwLDB4ODcsMHhhMCB9fSwKLSB7MTYsIDB4YjljMCwgMCwgezB4MmQsMHhlMCwweDA4LDB4ZjgsMHgwNiwweGI2LDB4MDAsMHg4NywweDgwLDB4MjAsMHhlNCwweDBhLDB4N2IsMHgxMiwweDFlLDB4OTAgfX0sCi0gezE2LCAweGI5ZDAsIDAsIHsweDk3LDB4ODgsMHgyZCwweGUwLDB4MGIsMHg3OCwweDBlLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOWUwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyMCwweGQwLDB4MGIsMHhiMCwweDAyLDB4NmUsMHgzNCwweGEzLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4YjlmMCwgMCwgezB4YzEsMHgwOSwweDMwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4YzAsMHg0OCwweDEwLDB4MDIsMHg4ZCwweDgwLDB4ODMgfX0sCi0gezE2LCAweGJhMDAsIDAsIHsweGMwLDB4MDAsMHhjMCwweDhhLDB4MzAsMHgxMiwweDBjLDB4MDAsMHg4MCwweDAwLDB4MmMsMHgxNiwweDBiLDB4MzgsMHgwMiwweDEyIH19LAotIHsxNiwgMHhiYTEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmYSwweDAwLDB4MzMsMHg4OCB9fSwKLSB7MTYsIDB4YmEyMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4NzksMHg5MCwweGZhLDB4MDEsMHgzNiwweDgwLDB4MWMsMHhhMCwweDAzLDB4NjgsMHgwMCwweGNhLDB4MDAgfX0sCi0gezE2LCAweGJhMzAsIDAsIHsweDNlLDB4ODEsMHgyYywweGEwLDB4MGIsMHhiOSwweDBjLDB4Y2UsMHhlMiwweGIyLDB4ODAsMHg4ZSwweGEwLDB4MGIsMHgyOCwweDAwIH19LAotIHsxNiwgMHhiYTQwLCAwLCB7MHhkYSwweDgwLDB4M2MsMHhiMCwweDBmLDB4ZTAsMHg4MywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmE1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGEwLDB4MDAsMHhjOCwweDAwLDB4MmUgfX0sCi0gezE2LCAweGJhNjAsIDAsIHsweDAwLDB4MGYsMHg4NCwweDIzLDB4YTAsMHgwMCwweGYwLDB4NDAsMHgzZSwweDEwLDB4MGYsMHg4NCwweDAzLDB4ZTEsMHgwMiwweGY4IH19LAotIHsxNiwgMHhiYTcwLCAwLCB7MHg0OCwweDNlLDB4MTAsMHgwYywweDgwLDB4MDMsMHhjMCwweDEwLDB4ZjgsMHg4MCwweDNlLDB4MDAsMHgwZiwweDAwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4YmE4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMCwweDM2LDB4NDIgfX0sCi0gezE2LCAweGJhOTAsIDAsIHsweDBmLDB4OTAsMHgwMywweDI0LDB4MTgsMHhmOSwweDEwLDB4M2MsMHg0OCwweDY4LDB4OTIsMHgxMywweGU0LDB4MDAsMHhhOSwweDExIH19LAotIHsxNiwgMHhiYWEwLCAwLCB7MHhiMiwweDYwLDB4MGUsMHg5MSwweDAzLDB4MjYsMHgwMCwweGM5LDB4MDAsMHgzMiwweDYwLDB4MGMsMHgxMCwweDAzLDB4MjQsMHgwOCB9fSwKLSB7MTYsIDB4YmFiMCwgMCwgezB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MjMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJhYzAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhhNCwweDA4LDB4ODksMHgwMCwweDJlIH19LAotIHsxNiwgMHhiYWQwLCAwLCB7MHg0MiwweDQ4LDB4OTQsMHgwMiwweGU0LDB4MDAsMHg4OSwweDgwLDB4MjIsMHg3MCwweDA4LDB4MTQsMHgyMiwweGE0LDB4MDIsMHg4OSB9fSwKLSB7MTYsIDB4YmFlMCwgMCwgezB4NDIsMHgyYSwweDcwLDB4MjgsMHg5MCwweDBhLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgyZSwweDQwLDB4MjgsMHg5MCwweDAyLDB4YTAgfX0sCi0gezE2LCAweGJhZjAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MDQsMHgwMCwweDk5LDB4MDAsMHgyNiwweGMwIH19LAotIHsxNiwgMHhiYjAwLCAwLCB7MHgwMywweDkwLDB4MDIsMHgyNCwweDAxLDB4YTksMHgwMCwweDBlLDB4NDAsMHgwYSwweDkwLDB4NDYsMHhjNCwweDBhLDB4ODksMHgwMCB9fSwKLSB7MTYsIDB4YmIxMCwgMCwgezB4MjAsMHg0OCwweDBhLDB4OTAsMHgwMiwweDA1LDB4ODAsMHg4MSwweDQxLDB4YTAsMHg1OCwweDg4LDB4OTAsMHgwMiwweDI0LDB4MDggfX0sCi0gezE2LCAweGJiMjAsIDAsIHsweDhkLDB4ODAsMHgyZiwweGMwLDB4MDgsMHg5OCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYjMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyMCwweDQwLDB4MGIsMHgxMiwweDAyLDB4ODQsMHgwMCwweDgxLDB4MjQsMHgyYyB9fSwKLSB7MTYsIDB4YmI0MCwgMCwgezB4NTgsMHgwYSwweDMyLDB4MjIsMHhjNSwweDg0LDB4YTEsMHgwMCwweDIwLDB4NTAsMHgwOCwweGIwLDB4MDIsMHg4NSwweDA4LDB4ODEgfX0sCi0gezE2LCAweGJiNTAsIDAsIHsweDQwLDB4MjAsMHg1YSwweDA4LDB4MTYsMHg4MiwweDA0LDB4MDAsMHhhNSwweDAwLDB4MmQsMHg0MCwweDA4LDB4MTIsMHg4MiwweDgyIH19LAotIHsxNiwgMHhiYjYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUwLDB4MzYsMHgxNCB9fSwKLSB7MTYsIDB4YmI3MCwgMCwgezB4MGYsMHg4NSwweDIzLDB4MDEsMHg0MCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDQzLDB4YzAsMHgwOCwweGNhLDB4MDAgfX0sCi0gezE2LCAweGJiODAsIDAsIHsweDMyLDB4ODAsMHgwZSwweDgwLDB4MDMsMHgyMCwweDAwLDB4YzAsMHgwMCwweDMyLDB4MDgsMHgyYywweDAyLDB4MDMsMHgyMCwweDA4IH19LAotIHsxNiwgMHhiYjkwLCAwLCB7MHhjOCwweDAwLDB4M2YsMHgwMCwweDBjLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmJhMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4OTEsMHg0MywweGY0LDB4MDQsMHhmOSwweDEwLDB4M2UgfX0sCi0gezE2LCAweGJiYjAsIDAsIHsweDQ0LDB4MGQsMHgxMSwweDAzLDB4ZTQsMHg0NCwweDU5LDB4NDAsMHgzZSwweDUwLDB4NGYsMHg1MCwweDQzLDB4ZDQsMHgwMiwweGZkIH19LAotIHsxNiwgMHhiYmMwLCAwLCB7MHg0MCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MGIsMHhlNSwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHg0ZiwweGQwLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4YmJkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHg2NiwweDYwLDB4YzksMHhlMCwweDMyLDB4NDQgfX0sCi0gezE2LCAweGJiZTAsIDAsIHsweDBmLDB4OWMsMHgwMywweGU0LDB4MDAsMHhkZCwweDg0LDB4M2YsMHg2OCwweDhmLDB4ZDgsMHg0MiwweGU2LDB4YTAsMHhkZCwweGE0IH19LAotIHsxNiwgMHhiYmYwLCAwLCB7MHgzMywweDY4LDB4MGQsMHg3MCwweDAzLDB4MjUsMHgwMCwweGM5LDB4ZTAsMHhiMiwweDY4LDB4MGMsMHg5YSwweGMzLDB4MjYsMHgwMCB9fSwKLSB7MTYsIDB4YmMwMCwgMCwgezB4OTksMHgwMCwweDNlLDB4NDAsMHgwZiwweDlhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJjMTAsIDAsIHsweDM4LDB4MTAsMHhlMywweDAwLDB4ODgsMHg4MCwweGFhLDB4MjAsMHg4YiwweDg4LDB4MDIsMHhlMiwweDg4LDB4YjgsMHgwMSwweDJlIH19LAotIHsxNiwgMHhiYzIwLCAwLCB7MHgwMCwweDBiLDB4ODQsMHgwMiwweGUyLDB4YjAsMHg4OCwweDUwLDB4MjIsMHgxNCwweDA4LDB4ODAsMHgwMiwweDgyLDB4ODAsMHg4OCB9fSwKLSB7MTYsIDB4YmMzMCwgMCwgezB4ZTAsMHhiNiwweDNhLDB4MDgsMHhjZSwweGEyLDB4MjEsMHgwOCwweDg4LDB4MDAsMHgyZSwweDAwLDB4MGIsMHhjNCwweDAyLDB4MGUgfX0sCi0gezE2LCAweGJjNDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHg4MCwweDgxLDB4NjAsMHg2OCwweDQ4IH19LAotIHsxNiwgMHhiYzUwLCAwLCB7MHg1YiwweDE2LDB4MDIsMHhjNCwweDIwLDB4YTEsMHg0MCwweDZjLDB4NTAsMHgwYiwweDE0LDB4MDIsMHhjNCwweDAwLDB4YTEsMHgwMCB9fSwKLSB7MTYsIDB4YmM2MCwgMCwgezB4MjQsMHg0MCwweDBiLDB4OTAsMHgyMiwweDE0LDB4OTAsMHg4NSwweDQyLDB4MjEsMHg1MCwweDViLDB4NTAsMHgxYSwweDE1LDB4MDAgfX0sCi0gezE2LCAweGJjNzAsIDAsIHsweDk1LDB4MDAsMHgyZCwweDQwLDB4MGIsMHg1MSwweDBhLDB4ODIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYzgwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMSwweDg5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDQ2LDB4ZTQsMHgwMCwweGI5LDB4MDEsMHgyZSB9fSwKLSB7MTYsIDB4YmM5MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MjAsMHhlNCwweDAwLDB4YjksMHgwMCwweDI2LDB4NDAsMHgxOCwweGI4LDB4MDIsMHhhNCwweDAyLDB4OGQgfX0sCi0gezE2LCAweGJjYTAsIDAsIHsweDA4LDB4MmYsMHg0MCwweDhiLDB4ZDAsMHgwMiwweDI0LDB4MDAsMHg4ZCwweDIwLDB4MmYsMHg0OCwweDBiLDB4ZDAsMHgwMiwweDg2IH19LAotIHsxNiwgMHhiY2IwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHg0MCB9fSwKLSB7MTYsIDB4YmNjMCwgMCwgezB4MGYsMHg5MCwweDAyLDB4ZTQsMHgxMCwweDQ5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGU5LDB4MDEgfX0sCi0gezE2LCAweGJjZDAsIDAsIHsweDM2LDB4NDAsMHgwZiwweDE4LDB4MTMsMHgyNCwweDEwLDB4YzksMHg4MiwweDMyLDB4NDAsMHg3ZiwweDkwLDB4MjMsMHgyNCwweDAwIH19LAotIHsxNiwgMHhiY2UwLCAwLCB7MHhkOSwweDIwLDB4M2UsMHg3MiwweDBmLDB4OTAsMHgwMywweGE4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmNmMCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MDIsMHhmMSwweDAxLDB4MTYsMHg0MCwweDRmLDB4OTAsMHgwMywweGU1LDB4MTAsMHhmOSwweDA4LDB4MmUgfX0sCi0gezE2LCAweGJkMDAsIDAsIHsweDQwLDB4MGYsMHg5MCwweDEzLDB4ZTQsMHgwMCwweGM5LDB4MDEsMHgzYSwweDQwLDB4MWYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhiZDEwLCAwLCB7MHgyMCwweDM0LDB4NDAsMHg4YywweDkwLDB4MDMsMHhjNCwweDA4LDB4ZjksMHgwMCwweDNlLDB4NjAsMHgwZiwweDEwLDB4MDMsMHg0YSB9fSwKLSB7MTYsIDB4YmQyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDA4LDB4ZjgsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGJkMzAsIDAsIHsweDBjLDB4ODAsMHgwMywweDYwLDB4MDAsMHhlOCwweDAwLDB4M2UsMHgwMiwweDRmLDB4ODAsMHgxMywweGUwLDB4MDAsMHhkMCwweDAwIH19LAotIHsxNiwgMHhiZDQwLCAwLCB7MHgzZSwweDAwLDB4MGUsMHg4MSwweDAzLDB4MzAsMHgwMCwweGNjLDB4NDAsMHgzMywweDAwLDB4MGMsMHhjMCwweDBiLDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4YmQ1MCwgMCwgezB4ZTgsMHgwMCwweDNlLDB4MTAsMHgwZiwweGMwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJkNjAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDA0LDB4YmEsMHgwMCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4YmUsMHhjOCwweDZmIH19LAotIHsxNiwgMHhiZDcwLCAwLCB7MHg4MCwweDBiLDB4ZTEsMHgyMiwweGE4LDB4MDAsMHg4ZSwweDIwLDB4MmYsMHg4MCwweDBiLDB4ZTAsMHgyMywweDY4LDB4MDAsMHg4YSB9fSwKLSB7MTYsIDB4YmQ4MCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MDgsMHhlMCwweDAyLDB4MjksMHgwMCwweDhhLDB4MDAsMHgyZSwweGE4LDB4MGIsMHhhMCwweDAwLDB4Y2EgfX0sCi0gezE2LCAweGJkOTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweGMwIH19LAotIHsxNiwgMHhiZGEwLCAwLCB7MHgwOSwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHhjMSwweDJjLDB4ZTAsMHgwYiwweDM4LDB4NTYsMHgyYywweDEwLDB4MTMsMHgwMCB9fSwKLSB7MTYsIDB4YmRiMCwgMCwgezB4MmUsMHhjMCwweDBhLDB4MzgsMHg2YSwweDIwLDB4MDAsMHg4OCwweDAwLDB4MjAsMHgwMCwweDA5LDB4ODAsMHgyMiwweDRjLDB4NDIgfX0sCi0gezE2LCAweGJkYzAsIDAsIHsweGEzLDB4MDAsMHgyYywweGUwLDB4MGIsMHgyNCwweDgwLDB4Y2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZGQwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHgwOCwweGI3LDB4MjQsMHgyZiwweGUwLDB4MDksMHgzOSwweDAyLDB4MWMsMHgwMSwweGI2LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4YmRlMCwgMCwgezB4OTAsMHgwYiwweDYwLDB4OTIsMHg4ZSwweDAwLDB4ODYsMHg4MiwweDJkLDB4YzIsMHgwYiwweGYwLDB4MDIsMHg1YywweDA2LDB4ODcgfX0sCi0gezE2LCAweGJkZjAsIDAsIHsweDAwLDB4NjAsMHhjMCwweDI5LDB4NzAsMHgwMiwweDVjLDB4MDAsMHg4NiwweDAwLDB4MmQsMHhjMCwweDBiLDB4NjAsMHgwMiwweGU4IH19LAotIHsxNiwgMHhiZTAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFmLDB4NDAsMHhmMywweGU0LDB4M2QsMHhlOCB9fSwKLSB7MTYsIDB4YmUxMCwgMCwgezB4MGQsMHg3OSwweDBiLDB4MWUsMHhjMCwweDY3LDB4ODAsMHgyZCwweGUwLDB4MGYsMHg3MCwweDQzLDB4MWQsMHg4MCwweGQ1LDB4MDAgfX0sCi0gezE2LCAweGJlMjAsIDAsIHsweDNkLDB4NjAsMHgwZSwweDc4LDB4MDMsMHgxZSwweDAwLDB4Y2QsMHg4MCwweDMxLDB4ZTAsMHgwZCwweGM4LDB4MDMsMHg0ZSwweDAwIH19LAotIHsxNiwgMHhiZTMwLCAwLCB7MHhlNSwweDgwLDB4M2QsMHhlMCwweDBmLDB4NDgsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmU0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4ODAsMHhmYiwweDAwLDB4NzAsMHhjMCwweDZlLDB4YjYsMHgxMywweGFkLDB4NDAsMHhmYSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGJlNTAsIDAsIHsweGMwLDB4MGYsMHgyMCwweDQzLDB4MmQsMHgxOCwweDU5LDB4MDAsMHgzZSwweDAwLDB4MDMsMHhiMCwweDBiLDB4ZTAsMHgwMCwweGZhIH19LAotIHsxNiwgMHhiZTYwLCAwLCB7MHgwMCwweGJlLDB4MDAsMHgwZSwweGIwLDB4MTMsMHhhYywweDAwLDB4ZjgsMHgwMCwweDNlLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4YmU3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDQwLDB4ZmYsMHg4MCwweDNmLDB4ZTYgfX0sCi0gezE2LCAweGJlODAsIDAsIHsweDBmLDB4ZjgsMHgyMywweDJlLDB4MDQsMHhmZiwweDkwLDB4M2YsMHhlNCwweDBkLDB4YmEsMHgwMywweGZmLDB4NDAsMHhjZiwweDgwIH19LAotIHsxNiwgMHhiZTkwLCAwLCB7MHgyMiwweGUxLDB4MGMsMHgzOSwweDQzLDB4MzIsMHgxMCwweGVjLDB4OTAsMHgzMywweDIwLDB4OGUsMHhjOCwweDAzLDB4ZjIsMHgwMCB9fSwKLSB7MTYsIDB4YmVhMCwgMCwgezB4ZGYsMHg4MCwweDNmLDB4NjAsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJlYjAsIDAsIHsweGE4LDB4MTEsMHg5YywweDQwLDB4YjcsMHg5MCwweDNjLDB4ZTAsMHgwYiwweDNhLDB4MDMsMHg0ZSwweDgwLDB4ZjMsMHhiMSwweDJkIH19LAotIHsxNiwgMHhiZWMwLCAwLCB7MHgwNCwweDRjLDB4MzgsMHgyMywweGFlLDB4MDAsMHg4MCwweDgwLDB4MzQsMHhlOCwweDRkLDB4NzgsMHgwMiwweDNlLDB4ODAsMHg4NyB9fSwKLSB7MTYsIDB4YmVkMCwgMCwgezB4YTAsMHgyOSwweGMwLDB4MDgsMHg3MCwweDAyLDB4YzAsMHg4MCwweDg2LDB4MDIsMHgyZCwweDQxLDB4MGIsMHg3MCwweDAyLDB4ZWEgfX0sCi0gezE2LCAweGJlZTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHg0OCwweDM3LDB4MDEsMHgyZCwweGM5IH19LAotIHsxNiwgMHhiZWYwLCAwLCB7MHgwYiwweDcyLDB4MjIsMHgxYywweDg0LDB4YjUsMHgxNiwweDBkLDB4YzQsMHgxOSwweDQwLDB4NDIsMHhkYywweDgwLDB4ODcsMHgwMCB9fSwKLSB7MTYsIDB4YmYwMCwgMCwgezB4MjAsMHhjOCwweDg4LDB4NzMsMHgwYSwweDljLDB4ODAsMHhiNSwweDAwLDB4MjksMHhjMCwweDBhLDB4NDgsMHgwMiwweGMwLDB4MDIgfX0sCi0gezE2LCAweGJmMTAsIDAsIHsweDk1LDB4MDAsMHgyZCwweDQyLDB4MGIsMHg1OCwweDAyLDB4YzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZjIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYSwweGUwLDB4MGIsMHgzMCwweDAyLDB4NGMsMHgyMCwweGExLDB4MDEsMHgyNCB9fSwKLSB7MTYsIDB4YmYzMCwgMCwgezB4YzEsMHgwOCwweDAwLDB4MDIsMHg4YywweDAwLDB4ODEsMHgwMCwweDI0LDB4ODAsMHgwOSwweDM4LDB4MGEsMHg2MCwweDgwLDB4OTIgfX0sCi0gezE2LCAweGJmNDAsIDAsIHsweDQwLDB4MmEsMHgwMCwweDBhLDB4MzAsMHgwMiwweGMwLDB4MDAsMHg4MCwweGM4LDB4MmMsMHg3MiwweDBiLDB4MTQsMHgwMiwweGM4IH19LAotIHsxNiwgMHhiZjUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhmZiwweDAwLDB4MmYsMHhmNCB9fSwKLSB7MTYsIDB4YmY2MCwgMCwgezB4OGYsMHhmMCwweDAzLDB4M2MsMHgwMCwweGI5LDB4MDAsMHgzZSwweDQwLDB4MDksMHg5MCwweDAzLDB4ZmMsMHgwMiwweGMzLDB4MDEgfX0sCi0gezE2LCAweGJmNzAsIDAsIHsweDMyLDB4YzAsMHg0OCwweGI4LDB4MTMsMHhhMSwweDAwLDB4YmEsMHgwMCwweDJhLDB4MDAsMHgwYSwweGEwLDB4MDcsMHhlYywweDAwIH19LAotIHsxNiwgMHhiZjgwLCAwLCB7MHhkYiwweGM4LDB4M2UsMHg5MCwweDBmLDB4YTIsMHgwMiwweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmY5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2UsMHhjNCwweDBmLDB4YjAsMHg2MywweGVjLDB4MDEsMHhmOCwweDQwLDB4M2UgfX0sCi0gezE2LCAweGJmYTAsIDAsIHsweDQwLDB4MGIsMHg4MCwweDAzLDB4Y2MsMHgwMCwweGZhLDB4NDIsMHgzZSwweGMwLDB4MGYsMHhiNSwweDAwLDB4YWMsMHg1OCwweGU5IH19LAotIHsxNiwgMHhiZmIwLCAwLCB7MHg4MiwweDNlLDB4YzAsMHgxZCwweDkwLDB4MDMsMHhlYywweDA0LDB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4YmZjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDBjLDB4ZGYsMHgwMCwweDdmLDB4YzAgfX0sCi0gezE2LCAweGJmZDAsIDAsIHsweDJjLDB4ZjAsMHgwMywweDdjLDB4MDEsMHhjNywweDAwLDB4MzMsMHg0MCwweDhmLDB4ZDAsMHgwMywweGZjLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHhiZmUwLCAwLCB7MHgxNSwweDQ0LDB4MGMsMHhlMCwweDFiLDB4M2MsMHgwMCwweGNiLDB4MGUsMHgzMywweGMwLDB4NWMsMHg2MiwweDAyLDB4MWMsMHgwMiB9fSwKLSB7MTYsIDB4YmZmMCwgMCwgezB4YzUsMHgwMCwweDJiLDB4ODAsMHgwZiwweGMwLDB4ODcsMHg4MCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMwMDAsIDAsIHsweDgxLDB4NDQsMHg2YywweDEwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwOCwweGIwLDB4NTIsMHgwYywweDAxLDB4ZmEsMHhjNCwweDIyIH19LAotIHsxNiwgMHhjMDEwLCAwLCB7MHg2MSwweDBiLDB4ODgsMHgwMywweDZjLDB4MDAsMHg4OCwweDQ3LDB4MmEsMHgwMCwweDBlLDB4MWMsMHgwMiwweDIwLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4YzAyMCwgMCwgezB4MDAsMHhhYSwweDAwLDB4MjgsMHg5MCwweDBhLDB4MmMsMHgwNCwweGE4LDB4MDAsMHgyMiwweDkwLDB4MGIsMHg4MCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGMwMzAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAxLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMxIH19LAotIHsxNiwgMHhjMDQwLCAwLCB7MHgwOCwweDMwLDB4MTIsMHg2YywweDAwLDB4ODgsMHg4OCwweDJhLDB4MzAsMHgwYiwweGI4LDB4MDIsMHhlYywweDAwLDB4OWIsMHgwOCB9fSwKLSB7MTYsIDB4YzA1MCwgMCwgezB4MmEsMHg0MCwweDA4LDB4YjgsMHgwMiwweDIwLDB4MDAsMHg4MiwweDEwLDB4MjIsMHgwMCwweDA4LDB4YTAsMHgyMiwweGEwLDB4MDAgfX0sCi0gezE2LCAweGMwNjAsIDAsIHsweDhiLDB4MDAsMHgyYSwweDAyLDB4MGIsMHhiMCwweDAyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMDcwLCAwLCB7MHgwOCwweDAwLDB4MGMsMHgwMCwweGIzLDB4MjAsMHgyYywweGMyLDB4MDgsMHgzNiwweDAyLDB4MmMsMHhjMCwweGEwLDB4MDgsMHgyMCB9fSwKLSB7MTYsIDB4YzA4MCwgMCwgezB4MDAsMHgwYiwweDMzLDB4NDYsMHhjZCwweDI4LDB4ODAsMHgyMCwweDI4LDB4YzAsMHgwYiwweDMyLDB4MDIsMHgwYywweDIwLDB4ODEgfX0sCi0gezE2LCAweGMwOTAsIDAsIHsweDMwLDB4MjgsMHhjMCwweDA4LDB4MTAsMHgwMiwweDgxLDB4MDAsMHhhYSwweDAwLDB4MjgsMHgwMCwweDAzLDB4MzAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhjMGEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDdjLDB4MDAsMHhmYiwweDI4LDB4MmUsMHhjYyB9fSwKLSB7MTYsIDB4YzBiMCwgMCwgezB4MGMsMHg3MCwweDUzLDB4N2QsMHgwOSwweDg4LDB4MDAsMHhiYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZmQsMHg4MCwweGRhLDB4NjAgfX0sCi0gezE2LCAweGMwYzAsIDAsIHsweDNhLDB4NTAsMHg4YywweGEyLDB4ODMsMHgyYywweDgwLDB4NGIsMHgyMCwweDMwLDB4YzAsMHgyOCwweGEwLDB4MDMsMHhhMSwweDAwIH19LAotIHsxNiwgMHhjMGQwLCAwLCB7MHhjOSwweDAwLDB4M2EsMHgwMCwweDBmLDB4OTAsMHgwMywweGMwLDB4MDMsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzBlMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDQsMHhmYiwweDAwLDB4N2UsMHhjOSwweDBiLDB4YjYsMHgwMywweGZjLDB4YzAsMHhmOCwweDBjLDB4M2YgfX0sCi0gezE2LCAweGMwZjAsIDAsIHsweDAwLDB4NGYsMHhjMywweDQzLDB4MmMsMHgwMCwweGI4LDB4MzgsMHgzZiwweDhlLDB4NWUsMHhmMCwweDQzLDB4ZTAsMHgxMCwweGY4IH19LAotIHsxNiwgMHhjMTAwLCAwLCB7MHgzMCwweDNmLDB4MDEsMHgwZiwweGQwLDB4MDMsMHg3MCwweDAwLDB4ZmMsMHgwMCwweDM3LDB4MDAsMHgwZCwweGQwLDB4MDcsMHhlOSB9fSwKLSB7MTYsIDB4YzExMCwgMCwgezB4MDMsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweGUwLDB4Y2MsMHg4MCwweDMzLDB4YzAgfX0sCi0gezE2LCAweGMxMjAsIDAsIHsweDBkLDB4ZjAsMHg4MywweGZjLDB4ODAsMHhkYywweDk0LDB4MzMsMHhjMCwweDFjLDB4ZjEsMHgwMywweDdkLDB4OGMsMHhmZiwweDMwIH19LAotIHsxNiwgMHhjMTMwLCAwLCB7MHgzZiwweDMwLDB4OGYsMHhjOCwweDAzLDB4N2UsMHgxMCwweGNmLDB4OTAsMHgzOSwweGEwLDB4OGQsMHhmOCwweDAzLDB4YWUsMHgwMCB9fSwKLSB7MTYsIDB4YzE0MCwgMCwgezB4ZDUsMHg4MCwweDEzLDB4ZTAsMHgwYywweDU4LDB4MDMsMHhmMCwweDAxLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMxNTAsIDAsIHsweDgwLDB4MTAsMHhkZCwweDA4LDB4ODgsMHgwMCwweDIzLDB4YzQsMHgwOCwweGZjLDB4MDIsMHhlYywweGE4LDB4Y2IsMHgyMCwweDIxIH19LAotIHsxNiwgMHhjMTYwLCAwLCB7MHhjMiwweDBkLDB4ZjcsMHgxMiwweDFjLDB4NDAsMHhkZiwweDMwLDB4MjIsMHhhMCwweDBiLDB4ODgsMHgwMiwweDJlLDB4MDQsMHhkYiB9fSwKLSB7MTYsIDB4YzE3MCwgMCwgezB4MjEsMHgyMiwweGMwLDB4MDgsMHhiOCwweDIyLDB4MmUsMHgwMCwweGI5LDB4ODAsMHgyYSwweDYwLDB4MGEsMHg4OCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGMxODAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDQ1LDB4Y2MsMHgxMCwweDgwLDB4MmMsMHgyOCwweGNhIH19LAotIHsxNiwgMHhjMTkwLCAwLCB7MHg2OCwweDMwLDB4MDIsMHg4ZCwweDAwLDB4OWIsMHgyMCwweDI4LDB4YzQsMHgwOCwweDMyLDB4MDIsMHhjYywweDEwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4YzFhMCwgMCwgezB4MjQsMHgwOCwweDBiLDB4ODAsMHg0MiwweDZjLDB4MDAsMHg4MywweDAwLDB4MmEsMHhjYSwweDNhLDB4YjAsMHgwMiwweDhjLDB4MDQgfX0sCi0gezE2LCAweGMxYjAsIDAsIHsweGIwLDB4MDQsMHgyOCwweGMwLDB4MDgsMHgxMCwweDAyLDB4ZTMsMHgwMSwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMWMwLCAwLCB7MHhjMCwweDE1LDB4OGMsMHgwMiwweDgwLDB4NDAsMHhhYSwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZWMsMHgwMCwweDliLDB4MjAsMHgyYSB9fSwKLSB7MTYsIDB4YzFkMCwgMCwgezB4YzAsMHg4OCwweGIwLDB4MDIsMHhhYywweDAwLDB4OWIsMHgwMCwweDI2LDB4ZTAsMHgwMywweDgwLDB4ODIsMHgyYywweDI4LDB4OWIgfX0sCi0gezE2LCAweGMxZTAsIDAsIHsweDIwLDB4MjIsMHhlMSwweDBiLDB4YjIsMHgwMiwweGFjLDB4ODAsMHhiOCwweDgwLDB4MmEsMHhjMSwweDBhLDB4OTgsMHgwMiwweGYwIH19LAotIHsxNiwgMHhjMWYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhjOCwweDUwLDB4M2EsMHhjMCB9fSwKLSB7MTYsIDB4YzIwMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGRiLDB4ODgsMHhiYSwweGMwLDB4MDgsMHhiMCwweDAzLDB4NmMsMHgwOCwweGZiLDB4MDAgfX0sCi0gezE2LCAweGMyMTAsIDAsIHsweDM2LDB4NjAsMHgwZiwweDhjLDB4NjMsMHg2YywweDAwLDB4Y2IsMHhjMCwweDNhLDB4ODAsMHgwZSwweGJlLDB4MDMsMHhhZiwweDg0IH19LAotIHsxNiwgMHhjMjIwLCAwLCB7MHg3OSwweDgwLDB4M2EsMHg4OCwweDA0LDB4OTgsMHgwMSwweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzIzMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYywweDgwLDB4MzUsMHhjMCwweDRmLDB4ZjAsMHgwMywweGRjLDB4MDAsMHhlZiwweDAwLDB4MzcgfX0sCi0gezE2LCAweGMyNDAsIDAsIHsweGMwLDB4YWYsMHhmMCwweDAzLDB4MWMsMHgwMSwweDZmLDB4MDAsMHgxMywweDAwLDB4MGYsMHhjMSwweDIzLDB4ZmMsMHhiOCwweGZmIH19LAotIHsxNiwgMHhjMjUwLCAwLCB7MHgwNCwweDM3LDB4YzAsMHgwYywweGY4LDB4NDMsMHg3ZSwweDA0LDB4ZmQsMHgwMCwweDNmLDB4MDQsMHgwZiwweGQwLDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4YzI2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4YzgsMHg0MCwweDNhLDB4YzAgfX0sCi0gezE2LCAweGMyNzAsIDAsIHsweDBjLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDQwLDB4MzgsMHhjMSwweDBlLDB4YjAsMHg0MywweDJjLDB4MDgsMHhjMywweDAwIH19LAotIHsxNiwgMHhjMjgwLCAwLCB7MHgzZSwweDQwLDB4MGUsMHg4MiwweDAzLDB4NmQsMHgwMCwweGRiLDB4NDAsMHgzMiwweGMxLDB4NWYsMHhiNCwweGEzLDB4ZWQsMHgyMCB9fSwKLSB7MTYsIDB4YzI5MCwgMCwgezB4YzksMHg0MCwweDMyLDB4ZTAsMHg4ZiwweDk4LDB4NDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMyYTAsIDAsIHsweGM4LDB4MDUsMHgzYywweDAwLDB4ODgsMHgwMCwweDIzLDB4YzAsMHgyOCwweGY1LDB4YzIsMHhmYywweDAwLDB4YjMsMHgwNCwweDIzIH19LAotIHsxNiwgMHhjMmIwLCAwLCB7MHhjMSwweDQ4LDB4ZjAsMHgyMiwweGJjLDB4MDYsMHhhZiwweDAwLDB4MGUsMHg0MCwweDA4LDB4MDAsMHgwMiwweGNkLDB4MDAsMHhiYiB9fSwKLSB7MTYsIDB4YzJjMCwgMCwgezB4MDEsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZWUsMHgwMCwweDgxLDB4ZTAsMHgzNCwweGEwLDB4MGIsMHg5MCwweDAyLDB4MzIgfX0sCi0gezE2LCAweGMyZDAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMiwweDgwLDB4MDAsMHgyOCwweGMwIH19LAotIHsxNiwgMHhjMmUwLCAwLCB7MHgwOSwweDNjLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgwYSwweGIwLDB4MDIsMHgwYywweDAwLDB4ODMsMHgwMSB9fSwKLSB7MTYsIDB4YzJmMCwgMCwgezB4MmMsMHgwMCwweDBhLDB4MDUsMHgwMiwweGNkLDB4NTgsMHhiYiwweDAwLDB4MjAsMHgwMCwweDBhLDB4M2QsMHgwMiwweGNmLDB4NDAgfX0sCi0gezE2LCAweGMzMDAsIDAsIHsweDIxLDB4MjAsMHg2MCwweGMwLDB4MDksMHgxMCwweDAyLDB4ZjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMzEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweDg0LDB4ODAsMHgyOCwweGU0LDB4ODgsMHg3OCwweDQyLDB4ZGUsMHgwMCwweGI3LDB4OTAsMHg2NSB9fSwKLSB7MTYsIDB4YzMyMCwgMCwgezB4ZTQsMHg4OCwweDdhLDB4NDIsMHg5ZSwweDQwLDB4YTcsMHg5MCwweDJkLDB4YTAsMHgwYSwweDQ4LDB4MjIsMHhkZSwweDA0LDB4YjcgfX0sCi0gezE2LCAweGMzMzAsIDAsIHsweDgwLDB4MjMsMHg2MCwweDQ4LDB4NzgsMHg0MiwweGZlLDB4ODAsMHhhZiwweDkwLDB4NjUsMHhlMCwweDBiLDB4ZTgsMHgwMiwweGM4IH19LAotIHsxNiwgMHhjMzQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhjOCwweDAwLDB4MzgsMHhjMCB9fSwKLSB7MTYsIDB4YzM1MCwgMCwgezB4MGMsMHgzMCwweDAzLDB4Y2MsMHgwMCwweGZiLDB4MDAsMHgzYywweGMwLDB4MGUsMHhiYSwweDAzLDB4MGMsMHgwMCwweGMzLDB4MDAgfX0sCi0gezE2LCAweGMzNjAsIDAsIHsweDNlLDB4MDAsMHg0ZSwweDIyLDB4MDIsMHhjYywweGMwLDB4ZmIsMHg0MCwweDMwLDB4YzAsMHgwYSwweDMwLDB4MDMsMHhjZSwweDgwIH19LAotIHsxNiwgMHhjMzcwLCAwLCB7MHhlMSwweDQxLDB4MzAsMHhjOSwweDBmLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzM4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MjAsMHhmYywweDAwLDB4MzcsMHhjMiwweDBlLDB4ZjEsMHgyMywweGVjLDB4NDAsMHhmZiwweDA0LDB4M2EgfX0sCi0gezE2LCAweGMzOTAsIDAsIHsweGMwLDB4MGYsMHhiMCwweDIzLDB4ZmMsMHgwMCwweGZmLDB4MDQsMHgzZSwweGMwLDB4MGQsMHhhMCwweDAzLDB4ZmMsMHg1OCwweGZmIH19LAotIHsxNiwgMHhjM2EwLCAwLCB7MHgwMCwweGJmLDB4YzAsMHgwNiwweGYwLDB4ODMsMHhkYywweDYyLDB4ZGYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgxMCB9fSwKLSB7MTYsIDB4YzNiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZCwweDgwLDB4YzksMHgwMSwweDNlLDB4YzAgfX0sCi0gezE2LCAweGMzYzAsIDAsIHsweDhjLDB4YjIsMHgwNywweGFlLDB4MDQsMHhjYiwweDgwLDB4M2EsMHhjOCwweDRjLDB4YjIsMHgwMywweDJjLDB4ODQsMHhjYiwweDMwIH19LAotIHsxNiwgMHhjM2QwLCAwLCB7MHhiMCwweGUwLDB4MGQsMHg4OCwweDBiLDB4MmMsMHgwMCwweGViLDB4MDAsMHgzMCwweDAwLDB4MGMsMHhiYywweDgzLDB4MmQsMHg4MCB9fSwKLSB7MTYsIDB4YzNlMCwgMCwgezB4ZmIsMHgwMCwweDMyLDB4YzAsMHgwYywweDkwLDB4MDMsMHhlYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMzZjAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDQwLDB4ODcsMHgwMCwweDJjLDB4Y2MsMHgwOCwweDc2LDB4ODIsMHgzYywweDgyLDB4ODcsMHgwMCwweDIxIH19LAotIHsxNiwgMHhjNDAwLCAwLCB7MHhjMiwweDhkLDB4MzIsMHg4MiwweDBkLDB4NGMsMHhhNywweDI4LDB4MjEsMHg4MCwweDA4LDB4NDAsMHgwMiwweDFkLDB4ODAsMHhiZiB9fSwKLSB7MTYsIDB4YzQxMCwgMCwgezB4MjAsMHgzNSwweDQwLDB4MDksMHg3MiwweDQzLDB4NWMsMHhhMCwweGI3LDB4MDAsMHgyOSwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZDIgfX0sCi0gezE2LCAweGM0MjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OGUsMHgwMCwweDg0LDB4ODAsMHgyZCwweGUwIH19LAotIHsxNiwgMHhjNDMwLCAwLCB7MHgwOCwweDc4LDB4MDIsMHhkZSwweGMwLDB4OGYsMHg4MCwweDI4LDB4ZWMsMHgyOCwweDdiLDB4MGEsMHg5ZSwweDk0LDB4ODMsMHg4NCB9fSwKLSB7MTYsIDB4YzQ0MCwgMCwgezB4MjMsMHhlMCwweDA5LDB4NTgsMHg1MCwweDllLDB4MTAsMHhhNywweGIwLDB4MjMsMHhlMCwweDBiLDB4NzgsMHgwMiwweDFlLDB4MjAgfX0sCi0gezE2LCAweGM0NTAsIDAsIHsweGI3LDB4ODAsMHgyMSwweGUwLDB4MDksMHg3OCwweDAyLDB4ZjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNDYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMiwweDgyLDB4MWMsMHgyYywweGMwLDB4MjgsMHgzMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4YzAsMHgyMCB9fSwKLSB7MTYsIDB4YzQ3MCwgMCwgezB4YzAsMHgwOCwweDMwLDB4MDIsMHgwYywweDAwLDB4YTMsMHgwMCwweDYwLDB4ZDIsMHgwOCwweDFkLDB4MDIsMHgwZiwweDIwLDB4YmIgfX0sCi0gezE2LCAweGM0ODAsIDAsIHsweDI0LDB4MjQsMHhjMCwweDBiLDB4M2MsMHgwMiwweDRmLDB4MDAsMHhiMywweDgwLDB4MjgsMHhkOCwweDA5LDB4MzIsMHgwMiwweGQyIH19LAotIHsxNiwgMHhjNDkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxMSwweGE4LDB4MDAsMHhjZSwweDg0LDB4M2UsMHg4MCB9fSwKLSB7MTYsIDB4YzRhMCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGNlLDB4YzAsMHgzYSwweDgwLDB4MDgsMHhhMCwweDAzLDB4YTgsMHgwMCwweGNhLDB4MDAgfX0sCi0gezE2LCAweGM0YjAsIDAsIHsweDMzLDB4ODAsMHgwZCwweGVjLDB4MDMsMHgzYiwweDgwLDB4ZWUsMHg4MiwweDMzLDB4ODAsMHgwYSwweGMwLDB4ODcsMHgxMCwweDQwIH19LAotIHsxNiwgMHhjNGMwLCAwLCB7MHhmNiwweGMwLDB4MzMsMHg5MCwweGFkLDB4NjQsMHgwMywweGZhLDB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzRkMCwgMCwgezB4NDgsMHgwMCwweGMwLDB4MDIsMHhmOCwweDAwLDB4M2MsMHgwMCwweDFmLDB4MDQsMHgwMywweGEwLDB4MDQsMHhmOCwweDMwLDB4M2UgfX0sCi0gezE2LCAweGM0ZTAsIDAsIHsweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDA0LDB4MGYsMHg4MCwweDkzLDB4ZTAsMHgwMCwweGY4IH19LAotIHsxNiwgMHhjNGYwLCAwLCB7MHgxMCwweDNlLDB4MDAsMHgyYywweDg0LDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgxOCwweDNlLDB4MTAsMHgwZSwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4YzUwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGM1MTAsIDAsIHsweDBlLDB4OTAsMHgwMywweGE0LDB4MTAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDA0LDB4OTAsMHgwMywweDI0LDB4MDAsMHg0MSwweDAwIH19LAotIHsxNiwgMHhjNTIwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg5MSwweDEzLDB4ZTEsMHgwOCwweGY4LDB4MDAsMHgzMiwweDQwLDB4MDgsMHg4OSwweDgzLDB4YTIsMHgwMCB9fSwKLSB7MTYsIDB4YzUzMCwgMCwgezB4YzksMHg4MCwweDMyLDB4NDAsMHgwYywweDkwLDB4MGIsMHgwMiwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM1NDAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAyLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwZCwweDkwLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlIH19LAotIHsxNiwgMHhjNTUwLCAwLCB7MHg0MCwweDQ4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDhiLDB4OTQsMHg0MiwweGUyLDB4MjAsMHhiOCB9fSwKLSB7MTYsIDB4YzU2MCwgMCwgezB4MDAsMHhhMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4ZTUsMHgwNCwweGE5LDB4OTAsMHgzNCwweDYwLDB4MDgsMHg5MCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGM1NzAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgxMCwweDk5LDB4MDAsMHgyZSwweDQwIH19LAotIHsxNiwgMHhjNTgwLCAwLCB7MHgwYSwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCwweDI0LDB4NDAsMHgwYSwweDEwLDB4MDIsMHgwNCwweDAwLDB4YTksMHgwMCB9fSwKLSB7MTYsIDB4YzU5MCwgMCwgezB4MmEsMHg0MCwweDBiLDB4OTAsMHg4MiwweGUwLDB4MDEsMHhiOCwweDAwLDB4MjAsMHg0MCwweDNhLDB4OTAsMHgwMiwweGE0LDB4NDQgfX0sCi0gezE2LCAweGM1YTAsIDAsIHsweDg5LDB4MDQsMHgyMiwweDYyLDB4MDgsMHg5OCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNWIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4YSwweDgxLDB4MDAsMHgyYywweDQ4LDB4MDksMHgzMiwweDA2LDB4NDQsMHg4MCwweGIxLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4YzVjMCwgMCwgezB4NDgsMHgwYSwweDEyLDB4MDIsMHg4NCwweDgwLDB4YTEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4MDIsMHhjNSwweDAwLDB4YjEgfX0sCi0gezE2LCAweGM1ZDAsIDAsIHsweDQwLDB4MjAsMHg1MCwweDBhLDB4MjQsMHgwMiwweGM5LDB4MDAsMHhhMywweDAwLDB4MjQsMHg0MCwweDA4LDB4MTEsMHgwMiwweDAyIH19LAotIHsxNiwgMHhjNWUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUwLDB4M2UsMHgxNCB9fSwKLSB7MTYsIDB4YzVmMCwgMCwgezB4MGUsMHg4MCwweDAzLDB4ZTEsMHg0MCwweGY4LDB4NTEsMHgzNiwweDE0LDB4MmUsMHg4NSwweDQzLDB4MjEsMHg0MiwweGU4LDB4NTAgfX0sCi0gezE2LCAweGM2MDAsIDAsIHsweDNhLDB4MDAsMHgwZiwweDgwLDB4MTIsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MDAsMHgxZSwweDgwLDB4NDMsMHhhMCwweDAwIH19LAotIHsxNiwgMHhjNjEwLCAwLCB7MHhjOCwweDAxLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzYyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmZCwweDAwLDB4M2UsMHg0NCwweDRlLDB4MTEsMHgwMywweGE0LDB4NDAsMHhiNSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGM2MzAsIDAsIHsweDQ0LDB4MGQsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGQ5LDB4MTAsMHgzZiwweDQwLDB4MGYsMHg1MCwweDAzLDB4ZTUsMHgwMCwweGY5IH19LAotIHsxNiwgMHhjNjQwLCAwLCB7MHg0MCwweDNmLDB4NDAsMHgwZCwweDQ0LDB4MDMsMHhmMSwweDAwLDB4ZjUsMHgwMiwweDNkLDB4YzAsMHgyZiwweGQyLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4YzY1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNywweDAwLDB4ZTksMHgwMCwweDM2LDB4NjAgfX0sCi0gezE2LCAweGM2NjAsIDAsIHsweDBkLDB4ZGEsMHgwMywweGU2LDB4NDAsMHhmOSwweDQwLDB4M2UsMHg2OCwweDBjLDB4OWEsMHgwMywweDY2LDB4MjAsMHg4OSwweGEwIH19LAotIHsxNiwgMHhjNjcwLCAwLCB7MHgzMywweDQwLDB4MGUsMHg5MCwweDA3LDB4YTYsMHgwMCwweGY5LDB4ODAsMHgzZSwweDUwLDB4MGMsMHhjYSwweDAzLDB4ZjMsMHg4MCB9fSwKLSB7MTYsIDB4YzY4MCwgMCwgezB4YzUsMHgwMiwweDMzLDB4NDAsMHgwYywweGMwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM2OTAsIDAsIHsweDM4LDB4MTAsMHhlMywweDA0LDB4ODgsMHhhMiwweDIwLDB4MzgsMHgwOCwweDgwLDB4MDIsMHhlMywweDQwLDB4YjAsMHg4MCwweDJlIH19LAotIHsxNiwgMHhjNmEwLCAwLCB7MHgyOCwweDA4LDB4OGEsMHg4MiwweDIzLDB4ODAsMHg4OCwweDgwLDB4MjIsMHgwMCwweGRiLDB4ODgsMHgwMiwweDYyLDB4MDQsMHhiOCB9fSwKLSB7MTYsIDB4YzZiMCwgMCwgezB4YjAsMHgyZSwweGE4LDB4ODgsMHg4ZSwweGEyLDB4ZWEsMHg4MCwweDg4LDB4MDAsMHgyYSwweDAwLDB4MjgsMHg4OCwweDAzLDB4OGUgfX0sCi0gezE2LCAweGM2YzAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHg4MiwweGE5LDB4MDgsMHgyYywweDUyIH19LAotIHsxNiwgMHhjNmQwLCAwLCB7MHgwYiwweDE0LDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMSwweDBjLDB4NTIsMHg4OCwweDE0LDB4MDIsMHg0NCwweDIwLDB4OTEsMHg2OSB9fSwKLSB7MTYsIDB4YzZlMCwgMCwgezB4MjAsMHg0MCwweDBhLDB4MTAsMHg4MiwweGM2LDB4ZTAsMHhiMSwweDBjLDB4MmMsMHg0OCwweDA4LDB4MDEsMHgwMiwweGUxLDB4OTMgfX0sCi0gezE2LCAweGM2ZjAsIDAsIHsweGExLDB4MDEsMHgyNCwweDQxLDB4MGEsMHgxMCwweDAyLDB4YzIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNzAwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDg5LDB4MDQsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAwLDB4ZTQsMHgwMCwweDM5LDB4MDIsMHgwZSB9fSwKLSB7MTYsIDB4YzcxMCwgMCwgezB4NDAsMHgwOCwweDEwLDB4NjIsMHgyNCwweDAwLDB4OTEsMHgwMCwweDYyLDB4NDAsMHg4YiwweDgwLDB4MDIsMHhlMCwweDU0LDB4YjkgfX0sCi0gezE2LCAweGM3MjAsIDAsIHsweDBjLDB4MmUsMHg0MCwweDA5LDB4YjYsMHg1MiwweGVjLDB4MDAsMHhhOSwweDAwLDB4MmEsMHg0MCwweDBhLDB4OTIsMHg4MCwweDg2IH19LAotIHsxNiwgMHhjNzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGU0LDB4MDAsMHhlMSwweDYwLDB4MzYsMHg0MCB9fSwKLSB7MTYsIDB4Yzc0MCwgMCwgezB4MGQsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MzAsMHgzZSwweDQwLDB4MmMsMHg5MCwweDQzLDB4NjQsMHgwNiwweGM5LDB4MDAgfX0sCi0gezE2LCAweGM3NTAsIDAsIHsweDMyLDB4NDksMHgwZSwweDhkLDB4OTMsMHhlMCwweDAwLDB4ZjksMHgwMCwweDJlLDB4NDAsMHgyYywweDk0LDB4MDMsMHhjNywweDQwIH19LAotIHsxNiwgMHhjNzYwLCAwLCB7MHhlOSwweDIwLDB4MzAsMHg1NSwweDBlLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yzc3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4MWUsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDgwLDB4M2MgfX0sCi0gezE2LCAweGM3ODAsIDAsIHsweDQwLDB4NGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDQsMHhiZSwweDQwLDB4MGYsMHg4OCwweDMzLDB4NjIsMHgwMCwweGY5IH19LAotIHsxNiwgMHhjNzkwLCAwLCB7MHhjMiwweDNlLDB4NDgsMHgyZSwweDg4LDB4MzMsMHhlMiwweDAwLDB4ZDksMHgwMCwweDNlLDB4NjAsMHgwZCwweDgwLDB4MDMsMHhjYSB9fSwKLSB7MTYsIDB4YzdhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGM3YjAsIDAsIHsweDBkLDB4ODAsMHgwMywweGEwLDB4MDQsMHhlOCwweDQwLDB4YmEsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDQsMHhjOCwweDAwIH19LAotIHsxNiwgMHhjN2MwLCAwLCB7MHgzYSwweDAwLDB4MGUsMHg4YywweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDIsMHgzMiwweDAwLDB4MGUsMHg4MCwweDAzLDB4NjEsMHgyMCB9fSwKLSB7MTYsIDB4YzdkMCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MTYsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM3ZTAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4OGEsMHgwMCwweDJlLDB4ODAsMHgwOCwweGUyLDB4MDMsMHgyOCwweDAwLDB4OGEsMHgwMCwweDIyIH19LAotIHsxNiwgMHhjN2YwLCAwLCB7MHg4MCwweDA4LDB4YTAsMHgwMiwweGU4LDB4MDQsMHg4YSwweDAwLDB4MmUsMHhhMiwweDA5LDB4ZTgsMHgwMiwweGZhLDB4MDQsMHhiZSB9fSwKLSB7MTYsIDB4YzgwMCwgMCwgezB4MDAsMHhhMiwweDgwLDB4MDgsMHhjZCwweDgyLDB4MzMsMHgyMCwweGI2LDB4YzAsMHgzNywweGEwLDB4NGIsMHhjOCwweDgyLDB4Y2EgfX0sCi0gezE2LCAweGM4MTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NmMsMHgwMCwweDgzLDB4MDAsMHgyNiwweGMwIH19LAotIHsxNiwgMHhjODIwLCAwLCB7MHgwOSwweDM4LDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhlYywweDAwLDB4ODMsMHgwMCB9fSwKLSB7MTYsIDB4YzgzMCwgMCwgezB4MjgsMHhlMCwweDBiLDB4MzAsMHgwMiwweGNlLDB4ODEsMHhiMywweDAwLDB4NjIsMHhjMCwweDA4LDB4M2MsMHgwMiwweDRmLDB4MDAgfX0sCi0gezE2LCAweGM4NDAsIDAsIHsweGIzLDB4YTAsMHgyMCwweGIwLDB4MDMsMHgzMCwweDAyLDB4Y2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjODUwLCAwLCB7MHhhMCwweDAxLDB4MGMsMHg0MSwweDg3LDB4MzQsMHgyZCwweGMwLDB4MDgsMHg2MCwweDAyLDB4OWUsMHg0MCwweGI3LDB4YTAsMHgyZCB9fSwKLSB7MTYsIDB4Yzg2MCwgMCwgezB4YzAsMHgwOCwweDczLDB4MDIsMHhkYywweDAwLDB4ODcsMHgyMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4ODIsMHhkZCwweDg1LDB4YmYgfX0sCi0gezE2LCAweGM4NzAsIDAsIHsweDgxLDB4NjMsMHhjOCwweDg4LDB4N2IsMHgwMiwweDFjLDB4MDAsMHhiNywweDQwLDB4NjUsMHgwMCwweDFiLDB4NzIsMHgwMiwweGU4IH19LAotIHsxNiwgMHhjODgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhjNywweDgxLDB4M2QsMHhlMCB9fSwKLSB7MTYsIDB4Yzg5MCwgMCwgezB4ZGQsMHg3MCwweDAzLDB4ZmUsMHg4MCwweGY3LDB4OTAsMHgzZiwweGUwLDB4MmMsMHg3OSwweDAzLDB4ZmUsMHg4MCwweGM3LDB4YTAgfX0sCi0gezE2LCAweGM4YTAsIDAsIHsweDM5LDB4ZTAsMHgwZiwweDdhLDB4MDIsMHhkZSwweDg0LDB4ZjcsMHhjMiwweDMxLDB4ZjIsMHgwYywweDc5LDB4MDMsMHg1ZSwweDA0IH19LAotIHsxNiwgMHhjOGIwLCAwLCB7MHhmNywweDg0LDB4MzEsMHg2MCwweDBmLDB4N2UsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzhjMCwgMCwgezB4MDgsMHgxZCwweGFkLDB4MGEsMHhmYiwweDYwLDB4N2UsMHhkNCwweDBmLDB4MzAsMHgwMywweDZjLDB4MDAsMHhjYiwweDAwLDB4MzIgfX0sCi0gezE2LCAweGM4ZDAsIDAsIHsweGRlLDB4MmYsMHhiMiwweDAzLDB4ZWQsMHg0MiwweDFiLDB4NjAsMHgzZSwweGMxLDB4MGQsMHhiMSwweDAzLDB4ZWMsMHg1MCwweGY3IH19LAotIHsxNiwgMHhjOGUwLCAwLCB7MHg4MCwweDNkLDB4ZDgsMHgyZSwweDMyLDB4MDMsMHhlYywweDMwLDB4ZmIsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4YzhmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDAwLDB4Y2IsMHhkMCwweDNmLDB4ZjAgfX0sCi0gezE2LCAweGM5MDAsIDAsIHsweDRjLDB4ZjgsMHgxMywweGZlLDB4MDAsMHhjZiwweDg4LDB4M2YsMHhlMCwweDBjLDB4ZjgsMHg0MywweDNmLDB4MDAsMHhjZiwweGM4IH19LAotIHsxNiwgMHhjOTEwLCAwLCB7MHgzMywweGUwLDB4MGMsMHhmOCwweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODAsMHgzZiwweGUwLDB4MmMsMHhmOCwweDAzLDB4YmUsMHgyMCB9fSwKLSB7MTYsIDB4YzkyMCwgMCwgezB4YzcsMHg4MCwweDMzLDB4ZTAsMHgwYywweGY4LDB4MDEsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM5MzAsIDAsIHsweGE4LDB4MDEsMHhiYywweDQwLDB4ODcsMHg5MCwweDNkLDB4YzAsMHgwOCwweDQwLDB4MDIsMHhkYywweDgwLDB4ZDcsMHgwMCwweDJkIH19LAotIHsxNiwgMHhjOTQwLCAwLCB7MHhjMCwweDBjLDB4MzAsMHgwMywweDdjLDB4MDAsMHg4NywweDEwLDB4MjEsMHhjNCwweDFlLDB4NzAsMHgyMCwweGRjLDB4NDQsMHhiNyB9fSwKLSB7MTYsIDB4Yzk1MCwgMCwgezB4MDAsMHgzOSwweGMwLDB4MGMsMHg3MSwweDAyLDB4MWMsMHg0MCwweGQ3LDB4MDIsMHgyOSwweDQwLDB4MDgsMHg3MCwweDAyLDB4MmEgfX0sCi0gezE2LCAweGM5NjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweDg3LDB4MzIsMHgyZCwweGMwIH19LAotIHsxNiwgMHhjOTcwLCAwLCB7MHgwOCwweDcwLDB4MDIsMHhkYywweDAxLDB4ODcsMHgwMCwweDJjLDB4YzAsMHgyYiwweDcwLDB4MGEsMHg1YywweDAwLDB4ODMsMHgwMCB9fSwKLSB7MTYsIDB4Yzk4MCwgMCwgezB4MjMsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRkLDB4MDAsMHhiNywweDAwLDB4MmQsMHhjNCwweDBiLDB4ZjAsMHgwMiwweDljLDB4MjAgfX0sCi0gezE2LCAweGM5OTAsIDAsIHsweDg3LDB4MTgsMHgyOSwweDQwLDB4MDgsMHg3MCwweDgyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjOWEwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MDIsMHgyOCwweGMwLDB4MDgsMHgxMCwweDAyLDB4Y2MsMHgwOCwweDgzLDB4NDAsMHgyZSB9fSwKLSB7MTYsIDB4YzliMCwgMCwgezB4YzAsMHgyYSwweDMwLDB4MDIsMHgwYywweDAwLDB4OGIsMHgwMCwweDIwLDB4ZjIsMHgwYSwweDMwLDB4MDIsMHhjZSwweDAwLDB4YjMgfX0sCi0gezE2LCAweGM5YzAsIDAsIHsweDg4LDB4MmEsMHhkMCwweDBhLDB4MzAsMHgwNiwweDBjLDB4MDAsMHg5MiwweDAwLDB4MjgsMHg3OCwweDA4LDB4M2MsMHg0MiwweDA4IH19LAotIHsxNiwgMHhjOWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDIsMHhjNywweDAwLDB4MmYsMHhjMCB9fSwKLSB7MTYsIDB4YzllMCwgMCwgezB4MmMsMHg5MCwweDAyLDB4ZmMsMHgwMiwweDhmLDB4ZDgsMHgzZiwweGMwLDB4NGIsMHhmMCwweDAyLDB4N2MsMHgwMiwweGNmLDB4MDAgfX0sCi0gezE2LCAweGM5ZjAsIDAsIHsweDIwLDB4ZjIsMHgwOCwweGIwLDB4MTMsMHhlZSwweDgwLDB4ZmYsMHgwMCwweDNmLDB4ZDQsMHgyZSwweGJkLDB4ODMsMHhhYywweDAwIH19LAotIHsxNiwgMHhjYTAwLCAwLCB7MHhjYiwweDgwLDB4M2EsMHhhMCwweGFjLDB4YjgsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2ExMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDEwLDB4M2UsMHhjMCwweDBmLDB4ODQsMHgwMywweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UgfX0sCi0gezE2LCAweGNhMjAsIDAsIHsweGMwLDB4MDEsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHhiZSwweGMwLDB4MGUsMHhiMCwweDIzLDB4ZWMsMHgwOCwweGZiIH19LAotIHsxNiwgMHhjYTMwLCAwLCB7MHgxMCwweDNmLDB4YzAsMHgwZCwweGI0LDB4MDMsMHhlZCwweDA0LDB4ZjksMHgwMCwweDFlLDB4MTQsMHhjZiwweGIwLDB4ODMsMHhlMCB9fSwKLSB7MTYsIDB4Y2E0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4Y2YsMHgwMCwweDMwLDB4YzAgfX0sCi0gezE2LCAweGNhNTAsIDAsIHsweDBjLDB4NDAsMHgwMywweGFjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDJjLDB4YjAsMHgwMywweGJjLDB4MDAsMHhmZiwweDAwIH19LAotIHsxNiwgMHhjYTYwLCAwLCB7MHhiMywweGUwLDB4MGQsMHhmYSwweDAzLDB4N2UsMHg4MCwweGNmLDB4MDAsMHgzMywweGMwLDB4MGMsMHhmYywweDQzLDB4ZmYsMHgyMCB9fSwKLSB7MTYsIDB4Y2E3MCwgMCwgezB4ZmYsMHgwMCwweDNmLDB4NDAsMHgwOCwweGY4LDB4MDMsMHhjMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNhODAsIDAsIHsweDgxLDB4MDQsMHg2YywweDEwLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwYSwweDhlLDB4NDIsMHgyYywweDA0LDB4YmIsMHgwMCwweDJlIH19LAotIHsxNiwgMHhjYTkwLCAwLCB7MHhjMCwweDA4LDB4YjAsMHgwMiwweDZjLDB4MDAsMHhiYiwweDAwLDB4M2EsMHhjMCwweDBlLDB4MzAsMHgwMiwweDBkLDB4MDgsMHg4MyB9fSwKLSB7MTYsIDB4Y2FhMCwgMCwgezB4MDIsMHgyMiwweGMwLDB4MGEsMHhiYywweDAyLDB4ZWYsMHgwMCwweGJiLDB4YzAsMHgyYywweDY4LDB4MGEsMHhiOSwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGNhYjAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MGMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGMwIH19LAotIHsxNiwgMHhjYWMwLCAwLCB7MHgwOCwweGI4LDB4MDIsMHhhYywweDAwLDB4YmIsMHgwMiwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlYywweDAwLDB4YmIsMHgwMCB9fSwKLSB7MTYsIDB4Y2FkMCwgMCwgezB4MjYsMHg0OCwweDE5LDB4YjAsMHgwMiwweDZkLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCwweDBhLDB4YjAsMHgwMiwweGVjLDB4MDQgfX0sCi0gezE2LCAweGNhZTAsIDAsIHsweGJiLDB4MWMsMHgyZSwweDIwLDB4MGEsMHhiMCwweDAyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYWYwLCAwLCB7MHgwOCwweDE0LDB4MGMsMHgwMCwweGFiLDB4MjAsMHgyOCwweGMwLDB4MGEsMHgwMCwweDAyLDB4MGMsMHgwMCwweDkzLDB4MDQsMHgyYyB9fSwKLSB7MTYsIDB4Y2IwMCwgMCwgezB4YzEsMHgwOCwweDMwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDI0LDB4NDEsMHgwOSwweGI4LDB4MDIsMHgwYywweDAyLDB4ODMgfX0sCi0gezE2LCAweGNiMTAsIDAsIHsweDAxLDB4YTAsMHhjMCwweDBhLDB4MzAsMHgwMiwweGNjLDB4MTAsMHg5MywweDAwLDB4MmMsMHgwMCwweDBhLDB4MzAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhjYjIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDdjLDB4MDAsMHhjZiwweDI4LDB4MzMsMHhjMCB9fSwKLSB7MTYsIDB4Y2IzMCwgMCwgezB4MGMsMHhhMCwweDQ2LDB4YWMsMHgxMSwweGJmLDB4MDAsMHgzZiwweGMwLDB4NWMsMHhmMCwweDQzLDB4ZmMsMHgwMCwweGZmLDB4MDQgfX0sCi0gezE2LCAweGNiNDAsIDAsIHsweDMyLDB4NDAsMHgwZCwweGIwLDB4MDMsMHg2YywweDA4LDB4Y2IsMHgwNCwweDMxLDB4YzAsMHgwYywweGIwLDB4MzMsMHhlZCwweDQwIH19LAotIHsxNiwgMHhjYjUwLCAwLCB7MHhmYiwweDA0LDB4M2UsMHg0MCwweDBlLDB4YjAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2I2MCwgMCwgezB4YTAsMHgxNSwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgyMywweGZjLDB4MDEsMHhmZiwweDAwLDB4M2YgfX0sCi0gezE2LCAweGNiNzAsIDAsIHsweGMwLDB4NGYsMHhmMCwweDg3LDB4N2MsMHgwMCwweGZmLDB4MDAsMHgzOSwweDQwLDB4MGUsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmIH19LAotIHsxNiwgMHhjYjgwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweDcwLDB4MDMsMHhkYywweDgwLDB4ZmYsMHgwMCwweDNkLDB4NDAsMHgwZiwweDcwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4Y2I5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDQwLDB4ZWIsMHg0OCwweDNlLDB4YzIgfX0sCi0gezE2LCAweGNiYTAsIDAsIHsweDBlLDB4MDksMHgwMywweGJjLDB4NjAsMHhjMCwweDIwLDB4MzUsMHgyNCwweDBlLDB4ZDIsMHgxMywweDJjLDB4NjAsMHhmYiwweDZhIH19LAotIHsxNiwgMHhjYmIwLCAwLCB7MHgzMywweGMwLDB4MGYsMHhjYSwweDAzLDB4MjIsMHgyMCwweGMwLDB4ODAsMHgzNywweGMwLDB4MGQsMHhmMCwweDAzLDB4N2MsMHgwMCB9fSwKLSB7MTYsIDB4Y2JjMCwgMCwgezB4ZWYsMHgwMCwweDMzLDB4MjQsMHgwZiwweGM4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNiZDAsIDAsIHsweDgwLDB4MTAsMHhkZCwweDAwLDB4OGYsMHg2MCwweDJmLDB4ZDgsMHgwOCwweGEyLDB4MDIsMHhmZCwweDgwLDB4YzgsMHg3MCwweDIyIH19LAotIHsxNiwgMHhjYmUwLCAwLCB7MHgwMCwweDJjLDB4ZmQsMHgwNywweGRjLDB4ODQsMHhiZiwweDYwLDB4MjMsMHhkMiwweDBiLDB4YmQsMHgwMiwweDIzLDB4MDAsMHg4OCB9fSwKLSB7MTYsIDB4Y2JmMCwgMCwgezB4ODAsMHhhMiwweDIwLDB4ODgsMHhiMCwweDIyLDB4MzQsMHgwMCwweGJiLDB4NTAsMHgyMiwweGM4LDB4MGIsMHhiMCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGNjMDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHg0MCwweGEzLDB4MDMsMHgyYywweGMyIH19LAotIHsxNiwgMHhjYzEwLCAwLCB7MHgwYSwweDAwLDB4NDIsMHg4YywweDgyLDB4YTMsMHgwYSwweDI0LDB4ODAsMHgwYiwweDMwLDB4MDIsMHhjYywweDkwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4Y2MyMCwgMCwgezB4MjgsMHhkOCwweDBiLDB4MTAsMHgwMiwweDhjLDB4MDIsMHg5MCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MTAsMHg0MiwweDRjLDB4MDAgfX0sCi0gezE2LCAweGNjMzAsIDAsIHsweGIzLDB4MDQsMHgyNCwweGMwLDB4MGIsMHgzMCwweDBlLDB4YTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYzQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgxMCwweDliLDB4MDQsMHgyYywweGMwLDB4ZjgsMHg5OCwweDA2LDB4ZWMsMHgwMCwweGFiLDB4ODAsMHgyNiB9fSwKLSB7MTYsIDB4Y2M1MCwgMCwgezB4MjAsMHgwOCwweDkwLDB4MmEsMHhhYywweDEwLDB4YmIsMHgwMCwweDBhLDB4YzAsMHgxYiwweGIwLDB4MjIsMHhhZCwweDAwLDB4OTggfX0sCi0gezE2LCAweGNjNjAsIDAsIHsweDQwLDB4MmEsMHg3MCwweDRiLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiMywweDAwLDB4YTYsMHg4NiwweDFiLDB4YjAsMHg4MiwweGIwIH19LAotIHsxNiwgMHhjYzcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjMCB9fSwKLSB7MTYsIDB4Y2M4MCwgMCwgezB4OGUsMHg5OCwweDAzLDB4YWMsMHgwOCwweGU4LDB4YzAsMHgzNiwweDMwLDB4NGYsMHhiMCwweDQyLDB4ZWMsMHgwMCwweGY5LDB4ODAgfX0sCi0gezE2LCAweGNjOTAsIDAsIHsweDNhLDB4YzAsMHg4ZiwweDg4LDB4NDIsMHgyMCwweDEwLDB4YzgsMHgxMCwweDMwLDB4ZjAsMHgwZiwweDMwLDB4MTMsMHg2YywweDEwIH19LAotIHsxNiwgMHhjY2EwLCAwLCB7MHhlYiwweDAwLDB4MzYsMHhmMCwweDBmLDB4YmQsMHgwMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2NiMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhlZiwweDA0LDB4N2YsMHhjMCwweDBmLDB4ZjAsMHg0MywweGRjLDB4MDAsMHhjNCwweDAwLDB4M2IgfX0sCi0gezE2LCAweGNjYzAsIDAsIHsweDQwLDB4OGIsMHhkYywweDAzLDB4N2MsMHgxMCwweGY5LDB4OTAsMHgzNiwweGMyLDB4NGYsMHhmOSwweDIzLDB4NjIsMHg0MSwweGFjIH19LAotIHsxNiwgMHhjY2QwLCAwLCB7MHgwMSwweDEzLDB4NDAsMHgwNCwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZmYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGMwLDB4MDMsMHg3OCB9fSwKLSB7MTYsIDB4Y2NlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4YywweDEyLDB4Y2IsMHgwMCwweGYyLDB4YzAgfX0sCi0gezE2LCAweGNjZjAsIDAsIHsweDBmLDB4ODAsMHgwMywweGFjLDB4MDgsMHhkOSwweDAwLDB4M2EsMHg4MCwweDBmLDB4MTIsMHgwMywweGFjLDB4MDAsMHhlMSwweDAwIH19LAotIHsxNiwgMHhjZDAwLCAwLCB7MHgzMiwweGMwLDB4MGMsMHg5MCwweDAzLDB4ZWQsMHgwMiwweGM4LDB4NDAsMHgzZSwweGQwLDB4MGYsMHg5MCwweDEzLDB4MmMsMHgwMiB9fSwKLSB7MTYsIDB4Y2QxMCwgMCwgezB4ZGIsMHgwMCwweDNlLDB4NTAsMHgwYywweGI0LDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNkMjAsIDAsIHsweGM4LDB4MDUsMHgzYywweDAwLDB4OGYsMHgwMCwweDE3LDB4YzAsMHgwOCwweDkwLDB4MDIsMHgzYywweDA4LDB4OGQsMHgwMCwweDIyIH19LAotIHsxNiwgMHhjZDMwLCAwLCB7MHg1NCwweDA4LDB4YjQsMHgwMywweDNjLDB4MDAsMHg4OSwweDAwLDB4MjMsMHhjMCwweDQwLDB4MzUsMHgwMiwweGNjLDB4MjQsMHg4MCB9fSwKLSB7MTYsIDB4Y2Q0MCwgMCwgezB4MDAsMHgyMiwweDc0LDB4NGMsMHhiMCwweDAyLDB4MmMsMHgwMCwweDhmLDB4MDAsMHgyZSwweGQ0LDB4MGEsMHhiMCwweDBhLDB4MzIgfX0sCi0gezE2LCAweGNkNTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4NGMsMHgwMiwweDgzLDB4MDAsMHgyNCwweGMwIH19LAotIHsxNiwgMHhjZDYwLCAwLCB7MHgwOSwweDAwLDB4MDIsMHg4YywweDAxLDB4OTAsMHgwMCwweDZhLDB4NDEsMHgwYSwweDMwLDB4MjAsMHg0ZSwweDEwLDB4MzEsMHgwMiB9fSwKLSB7MTYsIDB4Y2Q3MCwgMCwgezB4MmMsMHhjMCwweDA5LDB4MjAsMHgwNiwweGNlLDB4MDAsMHg4MCwweDAwLDB4NjAsMHhlMCwweDBhLDB4MzAsMHg4MiwweDBjLDB4MDggfX0sCi0gezE2LCAweGNkODAsIDAsIHsweDgzLDB4MDgsMHgyYywweGQwLDB4MDksMHhiMCwweDAyLDB4NzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZDkwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwNCwweDg3LDB4YjAsMHgyMCwweGVjLDB4MDksMHhlOSwweDAyLDB4OGUsMHg1OCwweDlkLDB4YjAsMHgyYiB9fSwKLSB7MTYsIDB4Y2RhMCwgMCwgezB4YTUsMHg0MCwweDViLDB4MDYsMHhkZSwweDQwLDB4OTUsMHg5NCwweDJkLDB4ZTQsMHgxOSwweDdiLDB4MDYsMHhkZSwweDAwLDB4ODQgfX0sCi0gezE2LCAweGNkYjAsIDAsIHsweDgwLDB4NjAsMHhlMCwweDBhLDB4NzgsMHgwYSwweDE2LDB4MTAsMHg4NywweDgwLDB4MmQsMHg2OCwweDBiLDB4NzksMHgwMiwweDQ4IH19LAotIHsxNiwgMHhjZGMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhjYiwweGEwLDB4MjQsMHhlMCB9fSwKLSB7MTYsIDB4Y2RkMCwgMCwgezB4MGYsMHgyYSwweDAzLDB4OGUsMHgwMCwweGQyLDB4ZDAsMHgzOCwweGZhLDB4MGYsMHgxOCwweGMzLDB4Y2UsMHgyNCwweDMxLDB4YjAgfX0sCi0gezE2LCAweGNkZTAsIDAsIHsweDNjLDB4ZTUsMHgwYywweDNiLDB4MTcsMHhjZSwweDA0LDB4YzAsMHg4MiwweDM4LDB4YzIsMHg5ZSwweDEwLDB4MDMsMHgwYywweDAwIH19LAotIHsxNiwgMHhjZGYwLCAwLCB7MHhjMywweDAxLDB4M2UsMHhjMCwweDBkLDB4ODEsMHgwMywweDUyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2UwMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhlZiwweDEwLDB4M2UsMHhjMiwweDBlLDB4YjEsMHgyMywweDJjLDB4YzEsMHhhYiwweDAxLDB4MzYgfX0sCi0gezE2LCAweGNlMTAsIDAsIHsweDgwLDB4MGYsMHhiMCwweDIzLDB4MmQsMHg5MCwweGU5LDB4ODQsMHg3MiwweGM4LDB4NjIsMHhmMSwweDE3LDB4ZmMsMHgwMCwweGZjIH19LAotIHsxNiwgMHhjZTIwLCAwLCB7MHgwMCwweDNiLDB4YzQsMHgxZCwweGYwLDB4MDMsMHhlYywweDAwLDB4ZWYsMHgwOCwweDNmLDB4YzgsMHgwZSwweGYxLDB4MDMsMHg5MCB9fSwKLSB7MTYsIDB4Y2UzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDgwLDB4ZmIsMHhhNCwweDNhLDB4YzggfX0sCi0gezE2LCAweGNlNDAsIDAsIHsweDBlLDB4OTAsMHgwMywweDJjLDB4MDQsMHhjYSwweDAwLDB4MzAsMHg2MCwweDJkLDB4MWEsMHgyNywweDZjLDB4ODQsMHhjYiwweDYwIH19LAotIHsxNiwgMHhjZTUwLCAwLCB7MHgzMiwweGQyLDB4MGMsMHhhMCwweDEzLDB4MmQsMHg4NCwweGNiLDB4MDIsMHgzZSwweGMwLDB4MGQsMHhiOCwweDAzLDB4YWMsMHg4MCB9fSwKLSB7MTYsIDB4Y2U2MCwgMCwgezB4Y2IsMHg4MSwweDMyLDB4ODAsMHgwYywweGIwLDB4MDMsMHhhYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNlNzAsIDAsIHsweDQ4LDB4MTEsMHg5YywweGE0LDB4YjcsMHgyOCwweDczLDB4YzIsMHgwOCwweGYwLDB4MDIsMHgzYywweGMwLDB4OGYsMHgwMCwweDMxIH19LAotIHsxNiwgMHhjZTgwLCAwLCB7MHhjMCwweDA5LDB4NzAsMHg4MiwweDljLDB4ODAsMHg4NywweDBjLDB4MjAsMHhkOCwweDA5LDB4NzAsMHgyMiwweDFjLDB4MzAsMHg4NCB9fSwKLSB7MTYsIDB4Y2U5MCwgMCwgezB4MDAsMHgzZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MTQsMHgyNCwweDg3LDB4YTAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDEyLDB4MTIgfX0sCi0gezE2LCAweGNlYTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHg0MCwweGIzLDB4OTUsMHgyOSwweGU5IH19LAotIHsxNiwgMHhjZWIwLCAwLCB7MHgwYSwweDY4LDB4MDIsMHg5ZSwweGQwLDB4ODYsMHhmMCwweGEzLDB4ZTAsMHgwOCwweDc4LDB4MTIsMHg5ZSwweDQ0LDB4YTMsMHg4MiB9fSwKLSB7MTYsIDB4Y2VjMCwgMCwgezB4MjEsMHhlOCwweDBiLDB4MzgsMHgwMiwweDBlLDB4MTAsMHg4NywweDgwLDB4MmYsMHhlMCwweDBiLDB4MTgsMHgwMiwweDhlLDB4MDIgfX0sCi0gezE2LCAweGNlZDAsIDAsIHsweDg3LDB4MDAsMHgyMSwweGUwLDB4MDgsMHg3OCwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZWUwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyNCwweGMwLDB4NDgsMHgzMCwweDAyLDB4MGMsMHgwNCwweDgzLDB4ODAsMHgyMCB9fSwKLSB7MTYsIDB4Y2VmMCwgMCwgezB4ZDAsMHgwOSwweDEwLDB4MDIsMHg4YywweDA2LDB4YTMsMHg4MCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDAyLDB4ODAgfX0sCi0gezE2LCAweGNmMDAsIDAsIHsweDQwLDB4MjgsMHhkMiwweDBhLDB4MzAsMHgwMiwweDBjLDB4MDEsMHg4MywweDAwLDB4MjIsMHgzYywweDA4LDB4ODcsMHgwMiwweDEyIH19LAotIHsxNiwgMHhjZjEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MTgsMHhmYSwweDAwLDB4M2EsMHg4MCB9fSwKLSB7MTYsIDB4Y2YyMCwgMCwgezB4OGUsMHhlNCwweDQyLDB4MjgsMHgwMiwweGNlLDB4ODAsMHgzMywweDgwLDB4NGQsMHhhMCwweDgzLDB4ZTgsMHgwMCwweGVhLDB4YTAgfX0sCi0gezE2LCAweGNmMzAsIDAsIHsweGIyLDB4ODAsMHgwYSwweGEwLDB4MGEsMHgyOCwweDAwLDB4Y2UsMHgxOCwweDJmLDB4ODAsMHgwZiwweGEwLDB4MTMsMHhhOCwweDAwIH19LAotIHsxNiwgMHhjZjQwLCAwLCB7MHhjYSwweDAwLDB4MzIsMHg5MCwweDJjLDB4YWMsMHgwYiwweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2Y1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDA0LDB4M2EsMHgwMCwweDBmLDB4ODAsMHg4MywweGMwLDB4MDgsMHhlOCwweDAzLDB4M2EgfX0sCi0gezE2LCAweGNmNjAsIDAsIHsweDAwLDB4MGUsMHg4MCwweDIyLDB4YzAsMHgwMCwweGQwLDB4MDAsMHg3ZSwweDEwLDB4YTQsMHg4MCwweDAzLDB4YzAsMHgwMCwweGY4IH19LAotIHsxNiwgMHhjZjcwLCAwLCB7MHgwMCwweDNlLDB4MTAsMHgwZCwweDg0LDB4MDMsMHhjMCwweDAwLDB4ZjgsMHgwMCwweGJlLDB4MDAsMHgwZiwweDgwLDB4MDEsMHg1MiB9fSwKLSB7MTYsIDB4Y2Y4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAyLDB4YzksMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGNmOTAsIDAsIHsweDBjLDB4OTAsMHgwMywweDY0LDB4MDIsMHg4OSwweDA0LDB4MzIsMHg0MiwweDBkLDB4OTIsMHgwMywweGU2LDB4NDIsMHhjOSwweDAwIH19LAotIHsxNiwgMHhjZmEwLCAwLCB7MHgzMiwweDcwLDB4MGUsMHgxMiwweDBiLDB4MjQsMHgwOCwweGM5LDB4MDAsMHgzZSwweDQ1LDB4MGUsMHg5OSwweDAzLDB4ZTQsMHgwMiB9fSwKLSB7MTYsIDB4Y2ZiMCwgMCwgezB4YzEsMHgwMCwweDMyLDB4NTAsMHgwNCwweDk0LDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNmYzAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHgwMCwweDZlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgwMCwweDIyIH19LAotIHsxNiwgMHhjZmQwLCAwLCB7MHg1NCwweDBiLDB4OTAsMHgwMywweGU2LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwYSwweDI0LDB4MDAsMHg4OSB9fSwKLSB7MTYsIDB4Y2ZlMCwgMCwgezB4MDAsMHgzOCwweDQ4LDB4MDgsMHg5MCwweDgyLDB4ZTQsMHgwNCwweGQ5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGNmZjAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweDg5LDB4MDEsMHgyYywweDQwIH19LAotIHsxNiwgMHhkMDAwLCAwLCB7MHgyOCwweDEwLDB4NDIsMHg2NCwweDAwLDB4YTEsMHgwNCwweDIyLDB4NTAsMHgwMSwweDkwLDB4NDIsMHhlNCwweDAwLDB4ODksMHgwNCB9fSwKLSB7MTYsIDB4ZDAxMCwgMCwgezB4MjAsMHg0MiwweDBhLDB4OTAsMHg0MiwweDM0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg0MCwweDBhLDB4OTAsMHgwMCwweGU0LDB4MDAgfX0sCi0gezE2LCAweGQwMjAsIDAsIHsweDg5LDB4MDAsMHgyMywweDQwLDB4MGEsMHhkMCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMDMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjQsMHgyYywweDQ4LDB4MDgsMHgxMCwweDAyLDB4MDQsMHg4MCwweGExLDB4MjAsMHgyOCB9fSwKLSB7MTYsIDB4ZDA0MCwgMCwgezB4NDAsMHgwYiwweDEwLDB4MDIsMHg4NSwweDgwLDB4ODEsMHgyMCwweDIwLDB4NDgsMHgwOCwweDUwLDB4NjIsMHgxNCwweDAyLDB4ODEgfX0sCi0gezE2LCAweGQwNTAsIDAsIHsweDAzLDB4MmUsMHg0MCwweDg4LDB4MTYsMHg4MiwweGM0LDB4YTAsMHg5MSwweDI4LDB4MjEsMHg0MCwweDJhLDB4NTAsMHgwMiwweDAyIH19LAotIHsxNiwgMHhkMDYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhjOCwweDUwLDB4MmUsMHgxNCB9fSwKLSB7MTYsIDB4ZDA3MCwgMCwgezB4MGMsMHg4NSwweDAzLDB4NjEsMHg0MCwweGU4LDB4NTAsMHhiMiwweDE1LDB4NGQsMHg4MCwweDAyLDB4YzAsMHgwMCwweDQ4LDB4NTAgfX0sCi0gezE2LCAweGQwODAsIDAsIHsweGIyLDB4MTUsMHgxYSwweDgwLDB4MTMsMHgzMCwweDA4LDB4YzgsMHgwMCwweDNlLDB4MDAsMHgwZSwweDgyLDB4MDMsMHhlMCwweDgwIH19LAotIHsxNiwgMHhkMDkwLCAwLCB7MHhjMCwweDIwLDB4MzAsMHgwMCwweDBlLDB4NDAsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDBhMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDgsMHhkZCwweDEwLDB4MzcgfX0sCi0gezE2LCAweGQwYjAsIDAsIHsweDQwLDB4MGYsMHhkNCwweDA3LDB4ZTQsMHg0MCwweGZkLDB4MTAsMHgzZSwweDQ1LDB4MGYsMHg5NCwweDAzLDB4ZTUsMHgwOCwweGZkIH19LAotIHsxNiwgMHhkMGMwLCAwLCB7MHgwMiwweDM5LDB4ZDAsMHgwZiwweGQwLDB4NDMsMHhmNCwweGEwLDB4ZjksMHgyOCwweDNlLDB4NGIsMHgwZCwweDkyLDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4ZDBkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDgwLDB4YzksMHhhNiwweDMyLDB4NjggfX0sCi0gezE2LCAweGQwZTAsIDAsIHsweDBjLDB4OTAsMHgwMywweGE2LDB4ODEsMHhlOSwweGU5LDB4M2IsMHg0MCwweDBlLDB4NTgsMHgwMywweDM2LDB4MjAsMHhjOSwweGEwIH19LAotIHsxNiwgMHhkMGYwLCAwLCB7MHgzNywweDc4LDB4MGQsMHhkYSwweDAzLDB4MzYsMHgyNiwweGM1LDB4MDAsMHgzNywweDY5LDB4MGUsMHhkZSwweDAzLDB4YTYsMHg4MiB9fSwKLSB7MTYsIDB4ZDEwMCwgMCwgezB4Y2QsMHhjMCwweDMzLDB4NTAsMHgwZiwweGQwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQxMTAsIDAsIHsweDM4LDB4MTAsMHhlMywweGE0LDB4ODgsMHhhOSwweDIyLDB4M2EsMHgwOCwweDA4LDB4MDAsMHgyMiwweGEwLDB4YjgsMHhlNSwweDMwIH19LAotIHsxNiwgMHhkMTIwLCAwLCB7MHgyMCwweDI4LDB4ODAsMHgyMiwweDQzLDB4YTAsMHgwOCwweGU4LDB4MmEsMHgzZCwweDA4LDB4YTQsMHg2MiwweDIwLDB4MDAsMHg4OCB9fSwKLSB7MTYsIDB4ZDEzMCwgMCwgezB4MDAsMHgyZSwweDEwLDB4MDgsMHg4ZSwweDAzLDB4MjMsMHhhMCwweDg4LDB4YTAsMHgyMCwweDI4LDB4MGIsMHg4YSwweDgyLDB4MGUgfX0sCi0gezE2LCAweGQxNDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHg0MCwweDkxLDB4NDAsMHgyMCwweDQ0IH19LAotIHsxNiwgMHhkMTUwLCAwLCB7MHgwOCwweDkwLDB4YTIsMHg4NSwweDEwLDB4YTEsMHgyMCwweDJjLDB4NDIsMHgwYiwweDE0LDB4MTIsMHg4YywweDAxLDB4OTEsMHgxMCB9fSwKLSB7MTYsIDB4ZDE2MCwgMCwgezB4MmMsMHg0OCwweDA5LDB4MTEsMHgwYSwweGM0LDB4MDAsMHg4MSwweDAwLDB4MmMsMHg1MCwweDBiLDB4MTEsMHgxMiwweGM1LDB4MDEgfX0sCi0gezE2LCAweGQxNzAsIDAsIHsweGIxLDB4NDAsMHgyNCwweDQ4LDB4MGIsMHgxOCwweDBlLDB4MDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMTgwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDkxLDB4MDAsMHgyMiwweDQxLDB4MDgsMHg5NCwweDQyLDB4MjQsMHgwMCwweGIxLDB4NDAsMHgyMCB9fSwKLSB7MTYsIDB4ZDE5MCwgMCwgezB4NDAsMHg0OSwweGIyLDB4NjIsMHgyNCwweDAwLDB4OTksMHgwMCwweDBhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNSwweDgwLDB4ODkgfX0sCi0gezE2LCAweGQxYTAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDA5LDB4YjAsMHgwMiwweDI0LDB4ODAsMHhiOSwweDAwLDB4MjYsMHg1MCwweDRiLDB4OTAsMHgwMiwweDA2IH19LAotIHsxNiwgMHhkMWIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDIsMHhkOSwweDAwLDB4YjIsMHg0MCB9fSwKLSB7MTYsIDB4ZDFjMCwgMCwgezB4MmMsMHg5NSwweDEzLDB4YTQsMHgxMCwweGU5LDB4MDAsMHhiZSwweDYwLDB4OGYsMHg5MCwweDBiLDB4YTQsMHgxMCwweDU5LDB4MDAgfX0sCi0gezE2LCAweGQxZDAsIDAsIHsweDFlLDB4NDAsMHg5ZCwweDk0LDB4MjMsMHhlNCwweDAyLDB4ODksMHgwMCwweDM0LDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDA4IH19LAotIHsxNiwgMHhkMWUwLCAwLCB7MHg3OSwweDAwLDB4YjYsMHg0MCwweDA3LDB4OTgsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDFmMCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MDAsMHhlOSwweDAyLDB4M2MsMHg0MCwweDJmLDB4OTgsMHgwMiwweGU0LDB4MDAsMHhmOSwweDQyLDB4M2EgfX0sCi0gezE2LCAweGQyMDAsIDAsIHsweDY4LDB4MGEsMHgxMCwweDAzLDB4ZTQsMHgxMCwweGU5LDB4MDAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDBmLDB4MjYsMHgwMCwweGY5IH19LAotIHsxNiwgMHhkMjEwLCAwLCB7MHgwNCwweDNlLDB4NDAsMHgwZSwweDFjLDB4MDMsMHhlNiwweDAwLDB4YzEsMHgwMCwweDNhLDB4NTAsMHgwZiwweDk5LDB4ODMsMHhjYSB9fSwKLSB7MTYsIDB4ZDIyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZTgsMHgwMCwweDNhLDB4MDAgfX0sCi0gezE2LCAweGQyMzAsIDAsIHsweDBjLDB4ODQsMHgwMywweDIwLDB4MDAsMHhkOCwweDQyLDB4MzIsMHgwNCwweDBjLDB4ODgsMHgxMywweGUwLDB4MDAsMHhjOCwweDAwIH19LAotIHsxNiwgMHhkMjQwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwNCwweDBiLDB4MDAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MGUsMHg4MCwweDIzLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDI1MCwgMCwgezB4YzgsMHg4MCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDEsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQyNjAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDEwLDB4OGEsMHgwMCwweDJlLDB4ODAsMHgyOCwweDIwLDB4MjIsMHgyOCwweDAwLDB4OGEsMHgwMCwweDIzIH19LAotIHsxNiwgMHhkMjcwLCAwLCB7MHhiMCwweDg4LDB4ZTAsMHgwMiwweDI4LDB4MTAsMHhkYSwweDAwLDB4YTMsMHhiNCwweDA4LDB4ZTgsMHgxMCwweDI4LDB4MDAsMHg4ZSB9fSwKLSB7MTYsIDB4ZDI4MCwgMCwgezB4MjAsMHgyMywweGEwLDB4NDgsMHhlZCwweDFhLDB4MjgsMHgwMCwweGRlLDB4MDAsMHgyMywweDkwLDB4MGEsMHhlMCwweDAyLDB4MGEgfX0sCi0gezE2LCAweGQyOTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGEzLDB4MDAsMHgyOCwweGMwIH19LAotIHsxNiwgMHhkMmEwLCAwLCB7MHgwOCwweDMwLDB4MGEsMHgwYywweDAwLDB4OTMsMHgwMCwweDIwLDB4YzIsMHgyYSwweDMwLDB4MjIsMHhhNCwweDAwLDB4YmIsMHgwMCB9fSwKLSB7MTYsIDB4ZDJiMCwgMCwgezB4MDgsMHhlMCwweDE4LDB4MDksMHgwYSwweDRjLDB4MDAsMHg5MywweDAyLDB4MjQsMHhlOCwweDAyLDB4MDgsMHgwNiwweDRjLDB4MDAgfX0sCi0gezE2LCAweGQyYzAsIDAsIHsweDkzLDB4MDAsMHgyMCwweGQ4LDB4MGEsMHg5MCwweDAyLDB4NGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMmQwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHg4MCwweDg3LDB4MDQsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MGUsMHgwMCwweDg3LDB4MTAsMHgyNSB9fSwKLSB7MTYsIDB4ZDJlMCwgMCwgezB4MDAsMHgwYSwweDYwLDB4MDIsMHg1ZSwweDAwLDB4OTcsMHgwMCwweDI5LDB4ODIsMHgwOCwweDUwLDB4MTIsMHg1NCwweDAwLDB4OGYgfX0sCi0gezE2LCAweGQyZjAsIDAsIHsweDgwLDB4NjEsMHhkMCwweDA4LDB4MDQsMHgwMiwweDVjLDB4MDEsMHhiNywweDA4LDB4YTksMHhhMCwweDBhLDB4NTAsMHg4MiwweDY4IH19LAotIHsxNiwgMHhkMzAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNlLDB4ODAsMHhlNywweDgwLDB4MzgsMHhlNCB9fSwKLSB7MTYsIDB4ZDMxMCwgMCwgezB4MDgsMHg3ZSwweDAzLDB4MWYsMHgwMCwweGRmLDB4ODAsMHhiMSwweDIxLDB4MWUsMHg3OCwweDAzLDB4ZGMsMHgwNCwweGYzLDB4ODAgfX0sCi0gezE2LCAweGQzMjAsIDAsIHsweDViLDB4ZTEsMHgwOCwweDI4LDB4MDMsMHg1ZSwweDAwLDB4ZDcsMHg4MCwweDM1LDB4NjAsMHgwZSwweDY4LDB4MDMsMHg0ZSwweDAwIH19LAotIHsxNiwgMHhkMzMwLCAwLCB7MHhkZiwweDgwLDB4MzEsMHhlMCwweDBlLDB4ZjgsMHgwYiwweDZhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDM0MCwgMCwgezB4MDgsMHgxZCwweGFkLDB4MDIsMHhmYiwweDc0LDB4M2UsMHhkMCwweDRmLDB4YjIsMHg4MywweGVkLDB4MDAsMHg3YiwweDY4LDB4M2EgfX0sCi0gezE2LCAweGQzNTAsIDAsIHsweDAwLDB4OGQsMHg4MCwweDAzLDB4YTQsMHgyMCwweGRiLDB4MDEsMHgzNiwweDgwLDB4NmYsMHhiMCwweDQxLDB4ODQsMHgwMCwweGViIH19LAotIHsxNiwgMHhkMzYwLCAwLCB7MHgwMCwweDNjLDB4YzAsMHgwZiwweGU2LDB4ODMsMHhiYywweDQwLDB4ZGIsMHgwMCwweGI2LDB4ODAsMHgwZiwweGIwLDB4MDMsMHg4MiB9fSwKLSB7MTYsIDB4ZDM3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDIwLDB4ZGYsMHhjMCwweDNiLDB4ZTYgfX0sCi0gezE2LCAweGQzODAsIDAsIHsweDBlLDB4ZjgsMHgxMywweGZmLDB4NDQsMHhjNywweDgyLDB4M2IsMHhlMCwweDBmLDB4ZjksMHgwMywweGJlLDB4MTAsMHhjZiwweGM4IH19LAotIHsxNiwgMHhkMzkwLCAwLCB7MHgzMywweDYwLDB4OGQsMHhlYiwweDAzLDB4M2UsMHgwMCwweGRiLDB4ODIsMHgzZiwweGUwLDB4MGMsMHhkOCwweDAzLDB4M2UsMHg0MCB9fSwKLSB7MTYsIDB4ZDNhMCwgMCwgezB4Y2UsMHg4MCwweDMzLDB4ZTQsMHgwZiwweGY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQzYjAsIDAsIHsweGE4LDB4MTEsMHhiYywweDQwLDB4ODcsMHgwMCwweDIxLDB4ZTQsMHgwYiwweDc4LDB4YTIsMHhjZSwweDkwLDB4YzcsMHhiMCwweDIwIH19LAotIHsxNiwgMHhkM2MwLCAwLCB7MHhlOCwweDBiLDB4MjgsMHg5MiwweGI2LDB4ODgsMHg4NywweGEwLDB4MjAsMHg2NCwweDBiLDB4MzUsMHgwMywweDE0LDB4MDAsMHg4NyB9fSwKLSB7MTYsIDB4ZDNkMCwgMCwgezB4YjIsMHgzOSwweGMwLDB4MmMsMHhjMCwweDAzLDB4NWUsMHgwMiwweGNmLDB4MDAsMHgzMSwweGNlLDB4MGIsMHg3NiwweDEyLDB4MmEgfX0sCi0gezE2LCAweGQzZTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGEzLDB4MTAsMHgyOSwweGM4IH19LAotIHsxNiwgMHhkM2YwLCAwLCB7MHgwYiwweDc0LDB4MDIsMHhkYywweDgwLDB4OGYsMHgwMCwweDI5LDB4Y2MsMHgwYSwweDMwLDB4MDYsMHgxNCwweDgwLDB4ODcsMHgxMCB9fSwKLSB7MTYsIDB4ZDQwMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4NjYsMHgwMiwweDVjLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NTEsMHgwMiwweDFjLDB4ODAgfX0sCi0gezE2LCAweGQ0MTAsIDAsIHsweDk2LDB4MDAsMHgyMSwweGMwLDB4NWIsMHg3NCwweDgyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNDIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwOCwweGEzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHhiOCwweDAyLDB4Y2MsMHgwMCwweDhiLDB4NDAsMHhhOCB9fSwKLSB7MTYsIDB4ZDQzMCwgMCwgezB4YzAsMHg4YiwweDA4LDB4MjIsMHg4YywweDAyLDB4ODMsMHgwMCwweDYwLDB4YzAsMHgwYiwweDMwLDB4NDIsMHgwNCwweDAwLDB4ODMgfX0sCi0gezE2LCAweGQ0NDAsIDAsIHsweDQwLDB4MjgsMHhmYywweDhhLDB4MDAsMHgwMiwweDZlLDB4MDAsMHg4MywweDAwLDB4YTAsMHhkMCwweDhiLDB4MzgsMHgwMiwweDA4IH19LAotIHsxNiwgMHhkNDUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGJjLDB4MDIsMHhlZiwweDAwLDB4M2IsMHhjMCB9fSwKLSB7MTYsIDB4ZDQ2MCwgMCwgezB4NGYsMHhmOCwweDAyLDB4ZmMsMHgwMiwweGNmLDB4MDAsMHgzOCwweDEyLDB4MGUsMHg5OCwweDAyLDB4MmMsMHgwMCwweGNmLDB4MDAgfX0sCi0gezE2LCAweGQ0NzAsIDAsIHsweDMyLDB4YzAsMHgwOSwweDkwLDB4MDMsMHg2NCwweDAyLDB4ODEsMHhjMCwweDNlLDB4ZDAsMHgwZiwweDkwLDB4MDcsMHgzYywweDAzIH19LAotIHsxNiwgMHhkNDgwLCAwLCB7MHhkOSwweDAwLDB4MzIsMHg2MCwweDBmLDB4ODgsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDQ5MCwgMCwgezB4ODAsMHgwMCwweGNjLDB4MDAsMHhkYiwweDAwLDB4M2UsMHhjMCwweDhmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAyLDB4MzYgfX0sCi0gezE2LCAweGQ0YTAsIDAsIHsweGMwLDB4NGYsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGZiLDB4MDAsMHhiZSwweDkwLDB4MGYsMHg5YywweDEzLDB4ZWMsMHgwMCwweGU5IH19LAotIHsxNiwgMHhkNGIwLCAwLCB7MHgxOCwweDNhLDB4ZDAsMHgwNCwweGQ1LDB4MDMsMHhlYywweDQwLDB4ZTksMHgwMCwweDNhLDB4MDAsMHg4ZiwweDgwLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4ZDRjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4Y2YsMHgwMCwweDNkLDB4YzEgfX0sCi0gezE2LCAweGQ0ZDAsIDAsIHsweDhjLDB4ZjAsMHgwMywweDJjLDB4MDAsMHhlZiwweDBhLDB4YjMsMHgxMiwweDJjLDB4NzAsMHgyMywweDE0LDB4MGEsMHg0ZiwweDAwIH19LAotIHsxNiwgMHhkNGUwLCAwLCB7MHgzNSwweDYwLDB4MGQsMHhiMCwweDAzLDB4MDQsMHgwMCwweGNkLDB4ODAsMHgwNywweGU4LDB4MGMsMHhjNCwweDAzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4ZDRmMCwgMCwgezB4Y2QsMHgwMCwweDMxLDB4ZTIsMHgyYywweGUwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ1MDAsIDAsIHsweDgxLDB4MDQsMHg2YywweDAyLDB4YWIsMHgwMiwweDJlLDB4YzAsMHgwZSwweGIwLDB4MDIsMHgyYywweDAwLDB4OGIsMHgwMCwweDMyIH19LAotIHsxNiwgMHhkNTEwLCAwLCB7MHgzMCwweDAwLDB4OWMsMHgwMywweDZjLDB4MDAsMHg4YiwweDA0LDB4MjIsMHgzNiwweDA4LDB4MzQsMHg0YSwweDJjLDB4MDgsMHg4OSB9fSwKLSB7MTYsIDB4ZDUyMCwgMCwgezB4OTAsMHgyMCwweGI4LDB4MGYsMHg4NCwweDAwLDB4YWMsMHgwMiwweDg5LDB4MDAsMHgzNiwweGEwLDB4MDgsMHhhNCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGQ1MzAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyZSwweGMwIH19LAotIHsxNiwgMHhkNTQwLCAwLCB7MHgwOCwweGIwLDB4MDIsMHgwYywweDAwLDB4OGIsMHgwMCwweDIyLDB4ZDEsMHgwOCwweDg4LDB4MTIsMHgyNiwweDAwLDB4YTMsMHgwMCB9fSwKLSB7MTYsIDB4ZDU1MCwgMCwgezB4MjYsMHg0MCwweDBiLDB4YjAsMHgwMiwweDI2LDB4MDAsMHg4YiwweDAwLDB4MjYsMHhjMCwweDU4LDB4MTAsMHgxMiwweDJjLDB4MDQgfX0sCi0gezE2LCAweGQ1NjAsIDAsIHsweDgyLDB4ODAsMHgyYSwweDQ5LDB4MDgsMHgzMCwweDAyLDB4MjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNTcwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGEzLDB4MTQsMHgyYywweGM4LDB4MWEsMHgzNCwweDhhLDB4MGMsMHg4NCwweDgzLDB4NDAsMHgyMiB9fSwKLSB7MTYsIDB4ZDU4MCwgMCwgezB4YzgsMHgwOCwweDAzLDB4NjIsMHg0YywweGMwLDB4YTMsMHg2MCwweDIwLDB4NDAsMHgwYSwweDMwLDB4MDIsMHgwYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGQ1OTAsIDAsIHsweDQ1LDB4MDgsMHhjMCwweDBiLDB4MTAsMHgwMiwweDhjLDB4YTAsMHg4MywweDAwLDB4MjYsMHg0MCwweDA4LDB4MzAsMHgwYSwweDAyIH19LAotIHsxNiwgMHhkNWEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDAsMHhjZiwweDQwLDB4MmYsMHhkMiB9fSwKLSB7MTYsIDB4ZDViMCwgMCwgezB4OGMsMHhmNiwweDAzLDB4M2MsMHgyMiwweGNmLDB4NDAsMHgzMiwweGQ2LDB4NGMsMHhhNiwweGMxLDB4M2QsMHhhMCwweDg3LDB4NDggfX0sCi0gezE2LCAweGQ1YzAsIDAsIHsweDM2LDB4MGQsMHgwZiwweGIxLDB4MDIsMHgyNCwweDQyLDB4Y2IsMHg2MCwweDE2LDB4YzAsMHgwYywweGQwLDB4MDMsMHgyYywweDgwIH19LAotIHsxNiwgMHhkNWQwLCAwLCB7MHhjYSwweDAwLDB4MzIsMHhjMCwweDBjLDB4MzAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDVlMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZiwweDIwLDB4M2UsMHhjYSwweDBlLDB4YjAsMHgwMywweGVjLDB4MjAsMHhkYiwweDM0LDB4M2EgfX0sCi0gezE2LCAweGQ1ZjAsIDAsIHsweGM4LDB4MGYsMHg4MCwweDAzLDB4ZTQsMHgxMCwweGRiLDB4MjEsMHgzZSwweDE4LDB4MGQsMHhmMiwweDAzLDB4ZmMsMHg4MCwweGZmIH19LAotIHsxNiwgMHhkNjAwLCAwLCB7MHgzMCwweDM1LDB4YzAsMHgwZiwweGMwLDB4MTMsMHhlYywweDAwLDB4ZmYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4ZDYxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTEsMHhmYywweDAwLDB4ZmIsMHgwYiwweDJmLDB4Y2EgfX0sCi0gezE2LCAweGQ2MjAsIDAsIHsweDhkLDB4ZjIsMHgwMywweGZhLDB4MDAsMHg5NiwweDgwLDB4M2IsMHhjNCwweDBkLDB4ZjEsMHgwMywweDdjLDB4ODAsMHhlYywweDgwIH19LAotIHsxNiwgMHhkNjMwLCAwLCB7MHgzYiwweDA4LDB4MGMsMHhjMiwweDAzLDB4NzQsMHgwMiwweGNjLDB4ODAsMHgzZiwweDQ4LDB4MGUsMHhmMCwweDAzLDB4MzAsMHhhMCB9fSwKLSB7MTYsIDB4ZDY0MCwgMCwgezB4ZDUsMHg4MCwweDNmLDB4NDAsMHgwYywweGY4LDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ2NTAsIDAsIHsweDgwLDB4MDgsMHhlZSwweDQwLDB4YmYsMHg4MCwweDJmLDB4ZjAsMHgwYiwweGY3LDB4MjIsMHhlZSwweDIwLDB4OGEsMHg4MCwweDIzIH19LAotIHsxNiwgMHhkNjYwLCAwLCB7MHhmYywweDg4LDB4NzUsMHgxMiwweDNkLDB4MDAsMHg4OCwweDAwLDB4MjIsMHgwMCwweDI4LDB4ODAsMHgwMiwweDI0LDB4MDgsMHg4OCB9fSwKLSB7MTYsIDB4ZDY3MCwgMCwgezB4MDAsMHg2ZiwweDUwLDB4MDAsMHhmNSwweDAyLDB4MjksMHgwMCwweDg5LDB4MDAsMHgyZSwweDU0LDB4MGQsMHg5MCwweDExLDB4YTAgfX0sCi0gezE2LCAweGQ2ODAsIDAsIHsweDA0LDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYywweGMxIH19LAotIHsxNiwgMHhkNjkwLCAwLCB7MHgwOSwweDMwLDB4ODIsMHhjYywweDgyLDB4YmIsMHgwMCwweDI4LDB4YzAsMHg0OSwweDMyLDB4MDIsMHhjZCwweDAwLDB4YjgsMHgwMCB9fSwKLSB7MTYsIDB4ZDZhMCwgMCwgezB4MmMsMHg1MCwweDA5LDB4MDEsMHgwMiwweDBjLDB4NDAsMHg4MCwweDAwLDB4NmMsMHg0NCwweDA5LDB4MzAsMHgwMiwweDIwLDB4MDAgfX0sCi0gezE2LCAweGQ2YjAsIDAsIHsweGIwLDB4MDAsMHgyYywweDQwLDB4MTgsMHgzMCwweDA2LDB4ZTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNmMwLCAwLCB7MHhjMCwweDAxLDB4YWMsMHgwMCwweGJiLDB4MDEsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZWUsMHgwMCwweGFhLDB4MDAsMHg0YSB9fSwKLSB7MTYsIDB4ZDZkMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4NTIsMHhlYywweDAwLDB4OTgsMHgwMiwweDI2LDB4NDAsMHgwOSwweDgwLDB4MDIsMHg2YywweDAxLDB4YWEgfX0sCi0gezE2LCAweGQ2ZTAsIDAsIHsweDA0LDB4MmUsMHg0MCwweDA5LDB4YjAsMHgwMiwweDIyLDB4MDAsMHhhOSwweDgwLDB4MmUsMHg0MSwweDA5LDB4OTAsMHgwMiwweGYwIH19LAotIHsxNiwgMHhkNmYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCB9fSwKLSB7MTYsIDB4ZDcwMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4Y2UsMHg4NCwweGZhLDB4MDAsMHgxYSwweGMwLDB4OGQsMHhiMCwweDQzLDB4ZWMsMHgwMCwweGYwLDB4MDIgfX0sCi0gezE2LCAweGQ3MTAsIDAsIHsweDNmLDB4MDAsMHgwZCwweGQxLDB4MDMsMHgzNSwweDAwLDB4Y2IsMHg0OCwweDJlLDB4NDAsMHgyZiwweGIwLDB4MDksMHgyMiwweDgwIH19LAotIHsxNiwgMHhkNzIwLCAwLCB7MHhmOSwweGM4LDB4MWUsMHhlMCwweDA4LDB4YjEsMHhlMiwweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDczMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHg3YiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgyMywweGZjLDB4MDAsMHhkZSwweDAwLDB4MjQgfX0sCi0gezE2LCAweGQ3NDAsIDAsIHsweGMwLDB4NGYsMHhmMCwweDAzLDB4MmMsMHgwMCwweGVjLDB4MjAsMHgzYiwweDAwLDB4MGUsMHg5OCwweDAzLDB4OTQsMHgwMiwweGRkIH19LAotIHsxNiwgMHhkNzUwLCAwLCB7MHgwMCwweDNmLDB4NDAsMHg0ZSwweGYwLDB4MDEsMHhmOCwweDAwLDB4ZGQsMHgwMCwweDNjLDB4ZTQsMHgwZiwweGQ4LDB4MDMsMHhiOCB9fSwKLSB7MTYsIDB4ZDc2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHhhYywweGMwLDB4ZmIsMHgyMCwweDMyLDB4YzggfX0sCi0gezE2LCAweGQ3NzAsIDAsIHsweDhkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmOSwweDAwLDB4M2EsMHhjMiwweDJjLDB4MzAsMHgwMywweDZjLDB4MDQsMHhkOCwweDAyIH19LAotIHsxNiwgMHhkNzgwLCAwLCB7MHgzYywweDQ0LDB4OGQsMHgxMCwweDAzLDB4YWQsMHgwMywweGVhLDB4MDAsMHgzYywweDQwLDB4MGMsMHg3MCwweDIzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4ZDc5MCwgMCwgezB4YzgsMHg0MCwweDNhLDB4YzAsMHgwZCwweGJjLDB4MDMsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3YTAsIDAsIHsweGM4LDB4MDEsMHgzZCwweDAwLDB4YmYsMHg0MiwweDIzLDB4ZjAsMHgwZCwweGYwLDB4MDIsMHhlNSwweDAwLDB4ZTIsMHgwMSwweDM3IH19LAotIHsxNiwgMHhkN2IwLCAwLCB7MHhmMSwweDA4LDB4ZjAsMHgwZSwweDNkLDB4YzAsMHhhOCwweDAwLDB4MmUsMHg1NCwweDI4LDB4OTAsMHgwMiwweDJjLDB4MDAsMHg4YSB9fSwKLSB7MTYsIDB4ZDdjMCwgMCwgezB4MDUsMHgzYiwweDQxLDB4NDgsMHhmNSwweDAzLDB4OGMsMHgwMCwweDg5LDB4MDAsMHgyMiwweGQ0LDB4MGUsMHg5NSwweDAyLDB4ZjIgfX0sCi0gezE2LCAweGQ3ZDAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGIzLDB4MDQsMHgyMCwweGMwIH19LAotIHsxNiwgMHhkN2UwLCAwLCB7MHg4OSwweDMwLDB4MDIsMHhjYywweDQwLDB4YjIsMHgwMCwweDJjLDB4YzQsMHg0OCwweDMwLDB4MDIsMHgyYywweDAyLDB4YTIsMHgwMCB9fSwKLSB7MTYsIDB4ZDdmMCwgMCwgezB4MmMsMHgyMCwweDE5LDB4MjAsMHgxYSwweDgwLDB4MDgsMHhiMCwweDAwLDB4NmMsMHg0MCwweDA4LDB4MzAsMHgwMiwweGM0LDB4MDAgfX0sCi0gezE2LCAweGQ4MDAsIDAsIHsweDgxLDB4MDAsMHgyYywweDQwLDB4MDgsMHgzMCwweDAyLDB4ZjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkODEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweGI3LDB4YTAsMHhlMSwweGUwLDB4MDksMHg3OCwweDAyLDB4ZGYsMHgwNCwweGFlLDB4ODAsMHgyZCB9fSwKLSB7MTYsIDB4ZDgyMCwgMCwgezB4ZTAsMHgwOCwweDc5LDB4MDIsMHgxZSwweDEwLDB4ODcsMHg5MCwweDJjLDB4MjgsMHgyOSwweDY4LDB4MDIsMHg4MiwweDgxLDB4YjQgfX0sCi0gezE2LCAweGQ4MzAsIDAsIHsweDgwLDB4MmQsMHg2MCwweDA4LDB4NzgsMHgxMCwweGJjLDB4MDAsMHg4ZiwweDgwLDB4MmQsMHg2MCwweDBiLDB4NjgsMHgwMiwweGM4IH19LAotIHsxNiwgMHhkODQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDBjLDB4MDUsMHhmMywweDkyLDB4MzAsMHhjYSB9fSwKLSB7MTYsIDB4ZDg1MCwgMCwgezB4MGQsMHgzMCwweDAzLDB4Y2MsMHgwMCwweGYzLDB4MDAsMHgzYywweGMwLDB4MGMsMHgzMCwweDAyLDB4MGMsMHg4MCwweDcwLDB4MDAgfX0sCi0gezE2LCAweGQ4NjAsIDAsIHsweDJjLDB4NDAsMHgwZCwweDIwLDB4MDMsMHg4OSwweDAwLDB4YjEsMHgwMCwweDNlLDB4NDAsMHgyYywweDMwLDB4MDMsMHhlYywweDUwIH19LAotIHsxNiwgMHhkODcwLCAwLCB7MHhjMywweDIwLDB4M2MsMHg0MCwweDBjLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDg4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2MsMHhjMCwweDBlLDB4YjAsMHg4MywweGVjLDB4NDAsMHhlYSwweDAwLDB4MzYgfX0sCi0gezE2LCAweGQ4OTAsIDAsIHsweGMyLDB4MGYsMHhiMCwweDgzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzZSwweDQ4LDB4MGUsMHhlMCwweDBiLDB4N2EsMHg4MCwweGNmIH19LAotIHsxNiwgMHhkOGEwLCAwLCB7MHgwMCwweDNiLDB4NDQsMHgwZiwweGYwLDB4MDMsMHhlYywweGMwLDB4ZmYsMHgwMCwweDAzLDB4NDQsMHgwZSwweGUwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4ZDhiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZmIsMHgyMywweDNlLDB4YzggfX0sCi0gezE2LCAweGQ4YzAsIDAsIHsweDFkLDB4YjAsMHgwMywweGVlLDB4MDAsMHhjYSwweDAwLDB4M2UsMHhjOCwweDBjLDB4YjIsMHgwMywweDJkLDB4OTAsMHhjOCwweDg0IH19LAotIHsxNiwgMHhkOGQwLCAwLCB7MHgzNiwweDAwLDB4MmQsMHhiMCwweDAzLDB4NjAsMHgxOCwweDliLDB4ODAsMHgzMywweDUwLDB4MGMsMHhmMiwweDAzLDB4ZTIsMHgwMCB9fSwKLSB7MTYsIDB4ZDhlMCwgMCwgezB4YzksMHg4MCwweDMyLDB4NDAsMHgwYywweGI4LDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ4ZjAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDAwLDB4YjcsMHgyOCwweDBjLDB4ZDIsMHgyOCwweDczLDB4MDIsMHhmYywweDAwLDB4ODYsMHgwNCwweDJjIH19LAotIHsxNiwgMHhkOTAwLCAwLCB7MHhjYywweDI4LDB4NzAsMHg4MywweDBjLDB4MjAsMHg5NSwweDAxLDB4MjAsMHgwMCwweDA5LDB4MzAsMHgxMiwweDEwLDB4MDQsMHg4NSB9fSwKLSB7MTYsIDB4ZDkxMCwgMCwgezB4MDAsMHgyMSwweDUyLDB4MDgsMHg3NSwweDAyLDB4ZDgsMHgwMCwweDg3LDB4MDAsMHgyMSwweDQwLDB4MDgsMHg2MCwweDAyLDB4MTIgfX0sCi0gezE2LCAweGQ5MjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHhkNCwweGI3LDB4YjEsMHgwOSwweGUxIH19LAotIHsxNiwgMHhkOTMwLCAwLCB7MHgwOCwweDc4LDB4MjIsMHhkZSwweDAwLDB4OTUsMHg4MCwweDJkLDB4ZTAsMHgwOCwweDc4LDB4MGEsMHg1ZSwweDQyLDB4OTQsMHhjMCB9fSwKLSB7MTYsIDB4ZDk0MCwgMCwgezB4MjEsMHg2MCwweDA4LDB4NzgsMHgwMiwweDVhLDB4MDAsMHg4NywweDgwLDB4MmQsMHg2OCwweDA4LDB4N2EsMHgwMiwweGQ3LDB4MDAgfX0sCi0gezE2LCAweGQ5NTAsIDAsIHsweDk3LDB4ODAsMHgyMCwweDYwLDB4MDksMHg3OCwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOTYwLCAwLCB7MHg0OCwweDEwLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MDgsMHhiMCwweDAyLDB4Y2QsMHg4MCwweDkyLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4ZDk3MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHhjYywweDAwLDB4OTAsMHg4MCwweGEwLDB4NDAsMHgwOSwweDM2LDB4MDIsMHg0OCwweDAyLDB4ODMgfX0sCi0gezE2LCAweGQ5ODAsIDAsIHsweGEwLDB4YWMsMHg0MCwweDJhLDB4MzAsMHgwNiwweGNlLDB4MDIsMHg5MywweDA0LDB4YTAsMHg0MCwweDA5LDB4MjAsMHgwYSwweDEyIH19LAotIHsxNiwgMHhkOTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmYSwweDAwLDB4M2EsMHg4MCB9fSwKLSB7MTYsIDB4ZDlhMCwgMCwgezB4MGQsMHhhMCwweDAzLDB4ZmIsMHgwMiwweGRlLDB4ODAsMHgzZSwweDgwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgwMCwweGNlLDB4ODAgfX0sCi0gezE2LCAweGQ5YjAsIDAsIHsweDMyLDB4ODAsMHgwYywweGE0LDB4MDMsMHg3OCwweDAwLDB4Y2UsMHhhNCwweDNmLDB4ODAsMHgwYywweGEwLDB4MDcsMHhmOSwweDAwIH19LAotIHsxNiwgMHhkOWMwLCAwLCB7MHhkZSwweDAwLDB4MzIsMHg4MCwweDJkLDB4ZTAsMHgwMiwweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDlkMCwgMCwgezB4NDgsMHgwMCwweGUxLDB4MDAsMHhmOCwweDAwLDB4N2MsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4NDAsMHhlOCwweDEwLDB4M2MgfX0sCi0gezE2LCAweGQ5ZTAsIDAsIHsweDAxLDB4Y2YsMHg4MCwweDBmLDB4MjAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHgwNCwweDAzLDB4OTAsMHgwMCwweGU4IH19LAotIHsxNiwgMHhkOWYwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwZCwweDgwLDB4MDcsMHhlMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDQsMHgwZSwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4ZGEwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgxMCwweDdlLDB4NDEgfX0sCi0gezE2LCAweGRhMTAsIDAsIHsweDBlLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg2OCwweDBlLDB4OTAsMHgwZiwweGE0LDB4MDgsMHhjOSwweDAwIH19LAotIHsxNiwgMHhkYTIwLCAwLCB7MHgzYSwweDQwLDB4MGMsMHg5MCwweDBiLDB4MjQsMHgxMiwweGU5LDB4MDAsMHgzZSwweDQ0LDB4MmMsMHg5MCwweDAzLDB4NjQsMHgyNCB9fSwKLSB7MTYsIDB4ZGEzMCwgMCwgezB4ZjksMHgwMiwweDJlLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRhNDAsIDAsIHsweDgwLDB4MDQsMHg2NSwweDEwLDB4YjksMHg4MCwweDNlLDB4NDAsMHgwOCwweDkwLDB4MGEsMHgyNiwweDAwLDB4YjEsMHgxMCwweDJhIH19LAotIHsxNiwgMHhkYTUwLCAwLCB7MHg3MiwweDA4LDB4OTAsMHgwNywweDY0LDB4MDIsMHg4OSwweDQwLDB4MmUsMHg0MCwweDI4LDB4OTAsMHgxMiwweDI1LDB4MDAsMHg4OSB9fSwKLSB7MTYsIDB4ZGE2MCwgMCwgezB4NDUsMHgzZSwweDUwLDB4MGQsMHg5MCwweDBhLDB4MjUsMHgwMCwweGI5LDB4NDAsMHgyZSwweDQwLDB4MjgsMHg5NCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGRhNzAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwIH19LAotIHsxNiwgMHhkYTgwLCAwLCB7MHg0OCwweDkwLDB4NDIsMHgyNiwweDAxLDB4YjksMHg0MCwweDI2LDB4NDAsMHgwYSwweDkwLDB4NDIsMHg4NCwweDAxLDB4OGIsMHgwOCB9fSwKLSB7MTYsIDB4ZGE5MCwgMCwgezB4MmMsMHg0MCwweDA5LDB4ZDAsMHg4MiwweDM0LDB4MzIsMHhhOSwweDA4LDB4NmUsMHg0MiwweDA4LDB4MTAsMHgwMiwweDI0LDB4MjAgfX0sCi0gezE2LCAweGRhYTAsIDAsIHsweGI5LDB4MDgsMHgyYywweDQwLDB4MTgsMHg5MCwweDgyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYWIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGIzLDB4MjAsMHgyOCwweDQ4LDB4MDgsMHgxMiwweDAyLDB4MDQsMHgwMSwweGIxLDB4MDAsMHgyOCB9fSwKLSB7MTYsIDB4ZGFjMCwgMCwgezB4NTgsMHgwOCwweDEyLDB4MDIsMHgwNSwweDg5LDB4ODEsMHg0MCwweDJjLDB4NTgsMHgwOCwweDU2LDB4MDYsMHgxNSwweDgwLDB4ODEgfX0sCi0gezE2LCAweGRhZDAsIDAsIHsweDQwLDB4MjgsMHg1MCwweDA5LDB4MTQsMHgwMiwweDA1LDB4ODAsMHhiMSwweDQwLDB4MmMsMHg1YSwweDA4LDB4MTQsMHgwMiwweGMyIH19LAotIHsxNiwgMHhkYWUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDY4LDB4MDAsMHhmOCwweDAwLDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4ZGFmMCwgMCwgezB4MmUsMHg4NSwweDAzLDB4MjEsMHg0OCwweGY4LDB4MDAsMHgzNiwweDAwLDB4OGUsMHgwNSwweDAyLDB4YTAsMHgwOCwweDgwLDB4MDAgfX0sCi0gezE2LCAweGRiMDAsIDAsIHsweDNlLDB4MDAsMHgwZCwweDgwLDB4MGIsMHgxMCwweDA0LDB4ZTAsMHgwMCwweDJjLDB4MDAsMHg0YywweDgwLDB4MDMsMHg0MCwweDAwIH19LAotIHsxNiwgMHhkYjEwLCAwLCB7MHhmMCwweDAwLDB4M2UsMHgwOCwweDBjLDB4MDAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGIyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGY0LDB4MDAsMHhmZCwweDAwLDB4M2UgfX0sCi0gezE2LCAweGRiMzAsIDAsIHsweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGZkLDB4MDMsMHgzZiwweDQ0LDB4MWYsMHg5MSwweDFiLDB4ZTQsMHg0MCwweGZkIH19LAotIHsxNiwgMHhkYjQwLCAwLCB7MHgwMSwweDNmLDB4NTAsMHgwZSwweDk0LDB4MDMsMHhmNCwweDQwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhhNiB9fSwKLSB7MTYsIDB4ZGI1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhmNCwweDAwLDB4Y2QsMHhhMCwweDcxLDB4NjggfX0sCi0gezE2LCAweGRiNjAsIDAsIHsweDhkLDB4OTgsMHgwMywweGQ0LDB4MDAsMHhjZCwweDAwLDB4MzMsMHg2MCwweDBjLDB4OTgsMHg4ZiwweDI3LDB4MjAsMHhjOSwweDQwIH19LAotIHsxNiwgMHhkYjcwLCAwLCB7MHgzZSwweDc4LDB4MGMsMHg5ZSwweDhiLDB4MjcsMHgyMCwweGQxLDB4MTEsMHgzMCwweDYwLDB4OGMsMHg5YywweDAzLDB4MjUsMHgwMCB9fSwKLSB7MTYsIDB4ZGI4MCwgMCwgezB4ZjksMHg0MCwweDNlLDB4NzgsMHgwZiwweDkwLDB4MDMsMHg0NiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRiOTAsIDAsIHsweDM4LDB4MTAsMHhlMCwweDEwLDB4ODgsMHgwMSwweDIyLDB4MDEsMHgwOCwweDhjLDB4MjIsMHhlOCwweDAwLDB4ODgsMHgwMiwweDJhIH19LAotIHsxNiwgMHhkYmEwLCAwLCB7MHgxNCwweDA4LDB4OGMsMHgwYiwweDIzLDB4OTAsMHg4OCwweGEwLDB4MmUsMHhiMCwweDA4LDB4OGMsMHg0MiwweDIzLDB4MDAsMHg4OCB9fSwKLSB7MTYsIDB4ZGJiMCwgMCwgezB4YTAsMHgzNiwweDJhLDB4MTgsMHg4YSwweDAyLDB4MjIsMHgwMCwweGI4LDB4YTAsMHgyZSwweDM0LDB4MGIsMHhjYSwweDgyLDB4MGUgfX0sCi0gezE2LCAweGRiYzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweDgxLDB4NDAsMHgyNCwweDUwIH19LAotIHsxNiwgMHhkYmQwLCAwLCB7MHgwOSwweDE2LDB4ODIsMHhjNCwweDAwLDB4YTksMHgwMCwweDIwLDB4NDAsMHgwOCwweDEyLDB4OTIsMHg1NCwweDA4LDB4ODUsMHgwMCB9fSwKLSB7MTYsIDB4ZGJlMCwgMCwgezB4MmYsMHg0YywweDA5LDB4NTIsMHgxMiwweDE0LDB4ODAsMHg5ZCwweDAwLDB4MjEsMHg1MCwweDA4LDB4NTQsMHgyMiwweDE0LDB4ODAgfX0sCi0gezE2LCAweGRiZjAsIDAsIHsweGI1LDB4MDAsMHgyZCwweDQ4LDB4MGIsMHhkMCwweDAyLDB4NDIsMHgwNSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYzAwLCAwLCB7MHgxOCwweDA1LDB4YTQsMHgwMiwweDg5LDB4MDEsMHhhMiwweDQwLDB4NDgsMHg5MCwweDAyLDB4ZTQsMHgwMiwweGE5LDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ZGMxMCwgMCwgezB4NDAsMHg2OCwweDkwLDB4MDIsMHg2NCwweDEwLDB4YWQsMHgwMCwweDJmLDB4NDEsMHgyOCwweDUwLDB4MDIsMHgzNCwweDAwLDB4OGQgfX0sCi0gezE2LCAweGRjMjAsIDAsIHsweDQ0LDB4MjcsMHg0MCwweDM5LDB4ZDAsMHgwMiwweDM1LDB4MDAsMHhiZCwweDE0LDB4MmYsMHg0MCwweDBiLDB4ZDAsMHgwMiwweDQ2IH19LAotIHsxNiwgMHhkYzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGM0LDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MCB9fSwKLSB7MTYsIDB4ZGM0MCwgMCwgezB4MmQsMHg5MCwweDAzLDB4ZTcsMHgwMCwweGUxLDB4ZTAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDBiLDB4NjQsMHgwMiwweGM5LDB4MDggfX0sCi0gezE2LCAweGRjNTAsIDAsIHsweDNjLDB4NTAsMHgwYywweDkwLDB4MDIsMHgyNiwweDAyLDB4ZDksMHhjMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MTMsMHgyNywweDAwIH19LAotIHsxNiwgMHhkYzYwLCAwLCB7MHhmOSwweDIwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGM3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDIsMHhmOSwweDAwLDB4MzgsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4ODAsMHhkOSwweGEwLDB4M2MgfX0sCi0gezE2LCAweGRjODAsIDAsIHsweDQwLDB4MGYsMHgxMCwweDAzLDB4YTQsMHgwMCwweGQ5LDB4MTAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzQsMHg5MiwweGY5IH19LAotIHsxNiwgMHhkYzkwLCAwLCB7MHgyMSwweDNjLDB4NDAsMHgyZSwweDkwLDB4MGYsMHhlNiwweDgwLDB4ZjksMHg4MCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg4YSB9fSwKLSB7MTYsIDB4ZGNhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDQwLDB4ZTgsMHgxMCwweDNlLDB4MDQgfX0sCi0gezE2LCAweGRjYjAsIDAsIHsweDRlLDB4ODAsMHgwMywweDIwLDB4ODAsMHhkOCwweDYwLDB4M2EsMHgwMiwweDBjLDB4ODAsMHgxMywweDIwLDB4MDAsMHhmOCwweDQwIH19LAotIHsxNiwgMHhkY2MwLCAwLCB7MHgzNiwweDEwLDB4MmQsMHg4MCwweDAzLDB4YTAsMHgwOCwweGU4LDB4NDAsMHgzMiwweDAwLDB4MGQsMHgwMCwweDAzLDB4MjEsMHgwMiB9fSwKLSB7MTYsIDB4ZGNkMCwgMCwgezB4YzgsMHg0MCwweGIyLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRjZTAsIDAsIHsweDI4LDB4MTEsMHgzYiwweDEwLDB4ODYsMHgwMSwweDJmLDB4YTAsMHgwZCwweGEwLDB4MDIsMHgzOCwweDAwLDB4OGUsMHhlMCwweDIzIH19LAotIHsxNiwgMHhkY2YwLCAwLCB7MHhhMiwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHhiYSwweDgwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHg4MiB9fSwKLSB7MTYsIDB4ZGQwMCwgMCwgezB4MDAsMHgyYSwweDgwLDB4MjgsMHhhMCwweDAyLDB4MmEsMHgwNCwweDhhLDB4ODAsMHgyMiwweGEwLDB4MGIsMHg2MCwweDAyLDB4Y2EgfX0sCi0gezE2LCAweGRkMTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NDMsMHg4MCwweGEyLDB4MDAsMHgyYywweGEwIH19LAotIHsxNiwgMHhkZDIwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHgyZSwweDAwLDB4OTIsMHgwMCwweDI4LDB4YzAsMHgyOCwweDMwLDB4MDIsMHgyYywweDAwLDB4YjMsMHg4MCB9fSwKLSB7MTYsIDB4ZGQzMCwgMCwgezB4MjQsMHhjMCwweDA5LDB4MzAsMHgwYSwweDhjLDB4MDAsMHhhMywweDAwLDB4NjAsMHhjMCwweDA4LDB4MzAsMHgwYSwweDRjLDB4MDAgfX0sCi0gezE2LCAweGRkNDAsIDAsIHsweDgzLDB4MDAsMHgyMCwweGUwLDB4MGIsMHgyMCwweDAyLDB4Y2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZDUwLCAwLCB7MHhhMCwweDAxLDB4MTAsMHgwMCwweDg2LDB4MDAsMHgyZCwweGMwLDB4MDksMHgzYSwweDAyLDB4MzUsMHgwMCwweDg2LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4ZGQ2MCwgMCwgezB4YzAsMHgwOCwweDczLDB4MDIsMHgxMCwweDAwLDB4YmYsMHg4OCwweDIxLDB4MDAsMHgwOCwweDcwLDB4MDIsMHgxYywweDA4LDB4OGYgfX0sCi0gezE2LCAweGRkNzAsIDAsIHsweDAwLDB4MmIsMHhjMCwweDA4LDB4MjAsMHgxMiwweDVlLDB4MjAsMHg4NywweDg4LDB4MjEsMHg4MywweDBiLDB4NjAsMHgwMiwweGU4IH19LAotIHsxNiwgMHhkZDgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDEyLDB4MDAsMHhlNSwweDgxLDB4M2QsMHhhMCB9fSwKLSB7MTYsIDB4ZGQ5MCwgMCwgezB4MmMsMHg3YSwweDBiLDB4MWUsMHgwMCwweGQ0LDB4ODAsMHgzOCwweGUwLDB4MGMsMHhmYSwweDBiLDB4MWUsMHgwMCwweGY2LDB4ODAgfX0sCi0gezE2LCAweGRkYTAsIDAsIHsweDM0LDB4ZTAsMHgwZCwweDI4LDB4MDMsMHg4YSwweDAwLDB4ZTYsMHg4MCwweDMxLDB4MjAsMHgwYywweDc4LDB4MDMsMHg3YSwweDA0IH19LAotIHsxNiwgMHhkZGIwLCAwLCB7MHhjZSwweDg0LDB4MzEsMHhlMCwweDRmLDB4NzgsMHg0MywweGVhLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGRjMCwgMCwgezB4MDgsMHgwZCwweDgwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjUsMHgyMywweGU0LDB4MDAsMHhmMCwweDA0LDB4MzYgfX0sCi0gezE2LCAweGRkZDAsIDAsIHsweDQwLDB4MGYsMHhiNiwweDg3LDB4ZTAsMHgwMCwweGYyLDB4MDAsMHgzZSwweDAwLDB4MWYsMHhhMCwweDBiLDB4ZTgsMHgwMCwweGZhIH19LAotIHsxNiwgMHhkZGUwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZSwweGEwLDB4MDMsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ZGRmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4Y2MsMHg4MCwweDMzLDB4YTAgfX0sCi0gezE2LCAweGRlMDAsIDAsIHsweDBjLDB4ZmMsMHgwMywweDNlLDB4MDAsMHhmYywweDgwLDB4MzcsMHhlMCwweDBmLDB4YjksMHgyMSwweDNlLDB4MDAsMHhmZCwweDgyIH19LAotIHsxNiwgMHhkZTEwLCAwLCB7MHgzMywweGUwLDB4MmMsMHhmOCwweDAzLDB4N2UsMHgxMCwweGRmLDB4ODQsMHgzZCwweGUwLDB4MGMsMHhmOCwweDAzLDB4ZjYsMHgwMCB9fSwKLSB7MTYsIDB4ZGUyMCwgMCwgezB4ZmQsMHg4MCwweDNmLDB4NjAsMHgwYywweGU4LDB4MjMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRlMzAsIDAsIHsweGE4LDB4MTEsMHg5OCwweDQwLDB4ODQsMHgxMCwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgxMCwweDgwLDB4YjQsMHgwMCwweDIxIH19LAotIHsxNiwgMHhkZTQwLCAwLCB7MHhjOCwweDBiLDB4N2EsMHgwMiwweDEwLDB4MDAsMHhmZCwweDAwLDB4MjEsMHgwNCwweDA4LDB4NzAsMHgwMiwweDFjLDB4NDIsMHg4NyB9fSwKLSB7MTYsIDB4ZGU1MCwgMCwgezB4MDAsMHgyZCwweGM0LDB4NDgsMHg2MSwweDAyLDB4ZDYsMHg4MCwweGI1LDB4MDAsMHgyZiwweDA0LDB4MDgsMHg2MSwweDgyLDB4MmEgfX0sCi0gezE2LCAweGRlNjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgwMCwweDgxLDB4MDAsMHgyMSwweDgwIH19LAotIHsxNiwgMHhkZTcwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHgxYywweDEwLDB4YmMsMHgwOCwweDI1LDB4ODAsMHg0YiwweDMwLDB4MGUsMHgxYywweDAwLDB4YjQsMHgwMCB9fSwKLSB7MTYsIDB4ZGU4MCwgMCwgezB4MjAsMHhjMCwweDA4LDB4MjAsMHgwMiwweDU4LDB4MDAsMHg5NiwweDAwLDB4MmYsMHgwMCwweDBhLDB4NzAsMHgwMiwweGQwLDB4ODAgfX0sCi0gezE2LCAweGRlOTAsIDAsIHsweGI0LDB4MTgsMHgyZCwweDQwLDB4MDksMHhmOCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZWEwLCAwLCB7MHgyMCwweDE0LDB4YzgsMHgwMiwweDgwLDB4MDAsMHhhMCwweGMwLDB4MDgsMHgzMCwweDIyLDB4MGIsMHhjMCwweGIwLDB4YzAsMHgyMiB9fSwKLSB7MTYsIDB4ZGViMCwgMCwgezB4ODAsMHgwYiwweDMwLDB4MDIsMHgwMCwweDAwLDB4YTAsMHgwNCwweDIyLDB4MDAsMHgyOCwweGEwLDB4MDIsMHgyYiwweDAwLDB4OGEgfX0sCi0gezE2LCAweGRlYzAsIDAsIHsweDAwLDB4MmMsMHgwMCwweDA4LDB4YTAsMHgwNiwweGMwLDB4MDAsMHhiMCwweGMyLDB4MmMsMHgwMCwweDA5LDB4YmMsMHgxYSwweDA4IH19LAotIHsxNiwgMHhkZWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGEwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHhjMCB9fSwKLSB7MTYsIDB4ZGVlMCwgMCwgezB4MGMsMHhmMCwweDBiLDB4MjYsMHgwMCwweGY5LDB4YzAsMHgzNiwweDAwLDB4MGYsMHhmMCwweDEzLDB4MmMsMHgxMCwweGJiLDB4NDAgfX0sCi0gezE2LCAweGRlZjAsIDAsIHsweGYyLDB4YzAsMHgwOCwweDkwLDB4MDMsMHg2NywweDAwLDB4ZDksMHg4MCwweDNlLDB4YzAsMHgwOCwweDkwLDB4MDIsMHhlYywweDAwIH19LAotIHsxNiwgMHhkZjAwLCAwLCB7MHhmYiwweGQwLDB4M2UsMHhjMCwweDI5LDB4OGMsMHgwMCwweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGYxMCwgMCwgezB4ODAsMHgwMCwweGUwLDB4MDAsMHhmOCwweDQ0LDB4M2MsMHhkMCwweDJmLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmOSwweDIwLDB4M2UgfX0sCi0gezE2LCAweGRmMjAsIDAsIHsweDQwLDB4MGYsMHgzMCwweDAzLDB4ZTAsMHgwMCwweGZiLDB4MDgsMHgzZSwweDAwLDB4MGYsMHg5MCwweDEzLDB4ZTQsMHg0MiwweGY5IH19LAotIHsxNiwgMHhkZjMwLCAwLCB7MHgxMCwweDNlLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAwLDB4ZmIsMHgwMCwweDNlLDB4ODAsMHgwZSwweDgyLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4ZGY0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlMCwweDA4LDB4ZmMsMHg4MCwweDMyLDB4ZTQgfX0sCi0gezE2LCAweGRmNTAsIDAsIHsweDBlLDB4ZjAsMHgwMywweDc0LDB4MDAsMHhmYywweDAwLDB4M2YsMHg0MCwweDBjLDB4ZjAsMHgwYiwweDNjLDB4MDAsMHhmZSwweDAwIH19LAotIHsxNiwgMHhkZjYwLCAwLCB7MHgzZiwweGMwLDB4MGQsMHhjMSwweDAzLDB4MjAsMHgyMCwweGNjLDB4MTAsMHgzMywweDAwLDB4MGMsMHhkMSwweDAzLDB4NTgsMHgwMCB9fSwKLSB7MTYsIDB4ZGY3MCwgMCwgezB4Y2UsMHgwMCwweDJmLDB4YzAsMHgwZiwweGQxLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRmODAsIDAsIHsweDgxLDB4NDQsMHg2MiwweDAwLDB4YjAsMHg0MCwweDJhLDB4ZjEsMHgwOCwweGIwLDB4MTIsMHgyNiwweDA4LDB4YjgsMHhjOCwweDJlIH19LAotIHsxNiwgMHhkZjkwLCAwLCB7MHg3MCwweDBhLDB4YjAsMHgwMiwweDIwLDB4MDAsMHhiYSwweDAwLDB4MmUsMHgwMCwweDI4LDB4ODAsMHgwMywweDIyLDB4NDAsMHg4OCB9fSwKLSB7MTYsIDB4ZGZhMCwgMCwgezB4MDEsMHgyMCwweDAwLDB4MGEsMHg4MCwweDAyLDB4MjgsMHgwMCwweDhhLDB4MDEsMHgyZSwweDgwLDB4OGIsMHg5MCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGRmYjAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjYsMHgwMCwweGI4LDB4MjgsMHgyMiwweDQyIH19LAotIHsxNiwgMHhkZmMwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHg2NiwweDAwLDB4YjgsMHg4MCwweDJlLDB4MzAsMHg4OCwweGIwLDB4MDIsMHgyYywweDAwLDB4YjksMHgwMSB9fSwKLSB7MTYsIDB4ZGZkMCwgMCwgezB4MmUsMHhjMCwweDg4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MGMgfX0sCi0gezE2LCAweGRmZTAsIDAsIHsweDg5LDB4MDEsMHgyZSwweDQwLDB4MWIsMHg4MCwweDAyLDB4NjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZmYwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweGIwLDB4MDAsMHgyOCwweGMwLDB4MjgsMHgzMCwweDAyLDB4MDAsMHgwMCwweGIwLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4ZTAwMCwgMCwgezB4NDAsMHgwYSwweDMwLDB4MDIsMHgwMCwweDAwLDB4YjEsMHgwMCwweDJjLDB4MDAsMHgwOCwweDEwLDB4MGEsMHgwNCwweDAwLDB4ODEgfX0sCi0gezE2LCAweGUwMTAsIDAsIHsweDAxLDB4YTIsMHhjMCwweDA4LDB4MDAsMHgwYSwweDA0LDB4ODAsMHg4MSwweDAwLDB4MmMsMHgwMCwweDFiLDB4MDAsMHgwYSwweDAyIH19LAotIHsxNiwgMHhlMDIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhmOCwweDAwLDB4MzIsMHg0MCB9fSwKLSB7MTYsIDB4ZTAzMCwgMCwgezB4MGUsMHhmMCwweDIzLDB4NjQsMHgwOCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGMsMHhmMCwweDAzLDB4MmMsMHgwMCwweGY4LDB4MDAgfX0sCi0gezE2LCAweGUwNDAsIDAsIHsweDNlLDB4YzAsMHgwYywweDgwLDB4MDMsMHgyMCwweDAyLDB4YzgsMHgwNCwweDMyLDB4MDAsMHgxYywweDkwLDB4MDMsMHgyMCwweDAwIH19LAotIHsxNiwgMHhlMDUwLCAwLCB7MHhjOCwweDAxLDB4M2UsMHg0MSwweDlmLDB4OTAsMHg0MywweDQwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTA2MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDAsMHhmYywweDBjLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4MTAsMHhmNCwweDAwLDB4M2YgfX0sCi0gezE2LCAweGUwNzAsIDAsIHsweDAwLDB4MGYsMHhmNCwweDIzLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgzZiwweDAwLDB4MGUsMHhjMCwweDAzLDB4YjAsMHgwMCwweGZjIH19LAotIHsxNiwgMHhlMDgwLCAwLCB7MHgwMCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhlMSwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDEsMHgxZiwweDUwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4ZTA5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MGQsMHhmMCwweGQwLDB4ZmYsMHgyMCwweDNlLDB4ZDAgfX0sCi0gezE2LCAweGUwYTAsIDAsIHsweDhlLDB4YjAsMHgwMywweGVjLDB4YTAsMHhkYiwweDI4LDB4M2UsMHhjYywweDBjLDB4YjMsMHgwMywweGFkLDB4MDgsMHhmOCwweDNjIH19LAotIHsxNiwgMHhlMGIwLCAwLCB7MHgzMiwweDIzLDB4MGUsMHg0OCwweDIzLDB4N2EsMHgwMCwweGZkLDB4OTQsMHgzZiwweGUwLDB4MGYsMHg3OCwweDMzLDB4ZWUsMHgwOCB9fSwKLSB7MTYsIDB4ZTBjMCwgMCwgezB4YmYsMHg4MCwweDNmLDB4ZTQsMHgwZiwweGY5LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwZDAsIDAsIHsweGEwLDB4MDAsMHhlYywweGM4LDB4YmYsMHhkMSwweDBmLDB4YzgsMHgwYywweDI2LDB4ODIsMHhmZCwweDI0LDB4OGYsMHgwMCwweDJlIH19LAotIHsxNiwgMHhlMGUwLCAwLCB7MHg5OSwweDBhLDB4ZjIsMHg2MiwweDFkLDB4ZDAsMHg5OSwweDYxLDB4MjIsMHg3MSwweDg4LDB4ODgsMHgwMiwweGFjLDB4MDAsMHhiOCB9fSwKLSB7MTYsIDB4ZTBmMCwgMCwgezB4MjIsMHgyZSwweDIwLDB4NGIsMHg4OCwweDAzLDB4YTAsMHgwMCwweDgwLDB4MDAsMHgyZSwweDA4LDB4MGIsMHg4MCwweDIzLDB4NjAgfX0sCi0gezE2LCAweGUxMDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwNCwweGIzLDB4MDMsMHgwYywweGNjIH19LAotIHsxNiwgMHhlMTEwLCAwLCB7MHgwYSwweDEzLDB4MTIsMHhjYywweDE0LDB4YTMsMHgwZSwweDBjLDB4NTgsMHgwYSwweDMzLDB4MDIsMHg4YywweDEwLDB4YTMsMHgyMCB9fSwKLSB7MTYsIDB4ZTEyMCwgMCwgezB4YTAsMHgwYSwweDE4LDB4OTAsMHgwMiwweDQ4LDB4YTAsMHhiMCwweDIwLDB4MjQsMHg4MCwweDBhLDB4MjAsMHgwMiwweGNjLDB4MDkgfX0sCi0gezE2LCAweGUxMzAsIDAsIHsweGExLDB4MDAsMHgyYywweDgwLDB4MGIsMHgzMiwweDQyLDB4YTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTQwLCAwLCB7MHhlMCwweDExLDB4YWMsMHgyMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4NGIsMHg4MCwweGEyLDB4ZWMsMHgwMCwweGFiLDB4MDAsMHg0ZSB9fSwKLSB7MTYsIDB4ZTE1MCwgMCwgezB4NDYsMHgyYSwweGIwLDB4MDIsMHgyYywweDA0LDB4OWIsMHg4MCwweDJhLDB4NjAsMHg4YSwweDljLDB4MDIsMHhhYywweDAwLDB4YjkgfX0sCi0gezE2LCAweGUxNjAsIDAsIHsweDgxLDB4MmUsMHg0MCwweDBiLDB4OTgsMHgwMiwweGEzLDB4MDAsMHg4YSwweDAwLDB4MmUsMHg0MCwweDBiLDB4ODAsMHgwNCwweGYwIH19LAotIHsxNiwgMHhlMTcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGUxLDB4MDAsMHhmYiwweDA0LDB4M2UsMHhjMCB9fSwKLSB7MTYsIDB4ZTE4MCwgMCwgezB4MGUsMHhiNCwweDAzLDB4ZWMsMHgwYSwweGRiLDB4MDIsMHgyZSwweGQxLDB4MGUsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4ODIgfX0sCi0gezE2LCAweGUxOTAsIDAsIHsweDMyLDB4MjgsMHgxZSwweDBjLDB4MDMsMHg2OCwweDAwLDB4YjksMHgwMCwweDNlLDB4NDAsMHg0ZiwweGIwLDB4NDMsMHhlZCwweDAwIH19LAotIHsxNiwgMHhlMWEwLCAwLCB7MHhlYSwweDAwLDB4M2UsMHg0MCwweDBmLDB4ODAsMHgwMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTFiMCwgMCwgezB4YzAsMHgwMSwweGI4LDB4MTgsMHhmZiwweDAyLDB4MWYsMHhjMCwweDBjLDB4ZTIsMHgwMywweGZjLDB4MDAsMHhkZiwweDAzLDB4MmYgfX0sCi0gezE2LCAweGUxYzAsIDAsIHsweGExLDB4MGYsMHg3MCwweDAzLDB4ZmMsMHgwNCwweGFiLDB4MDQsMHgzNywweDQyLDB4MmQsMHhkMCwweDAyLDB4N2MsMHgwMCwweGZjIH19LAotIHsxNiwgMHhlMWQwLCAwLCB7MHgwMCwweDNmLDB4ODAsMHgwZiwweGMwLDB4MDMsMHhiMCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4ODAsMHgwZiwweGYwLDB4MDMsMHg3OCB9fSwKLSB7MTYsIDB4ZTFlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhOSwweDAwLDB4ZGIsMHgwMCwweDNjLDB4YzAgfX0sCi0gezE2LCAweGUxZjAsIDAsIHsweDJlLDB4OTQsMHgwMSwweDZjLDB4MTEsMHhjYiwweDAwLDB4YjgsMHhjMCwweDBjLDB4YjAsMHgwMywweDZjLDB4MDAsMHhlYiwweDAxIH19LAotIHsxNiwgMHhlMjAwLCAwLCB7MHgzMiwweDEwLDB4MDcsMHg5MiwweDAzLDB4YTgsMHgwMCwweGY4LDB4MDAsMHgzZSwweDBjLDB4MDcsMHhhMiwweDAzLDB4YWQsMHgwMCB9fSwKLSB7MTYsIDB4ZTIxMCwgMCwgezB4ZDgsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyMjAsIDAsIHsweGM4LDB4MDUsMHgyOCwweDA4LDB4YmYsMHgwMCwweDJmLDB4YzAsMHg4OCwweDgwLDB4MDIsMHgzYywweDA4LDB4ZWYsMHgwMywweDIyIH19LAotIHsxNiwgMHhlMjMwLCAwLCB7MHgwMCwweDBkLDB4ZjUsMHgwMCwweDNjLDB4MDAsMHg4YiwweDgyLDB4MjIsMHg2MCwweDAzLDB4OWMsMHgwMiwweDJjLDB4MTAsMHhiOSB9fSwKLSB7MTYsIDB4ZTI0MCwgMCwgezB4YjAsMHgyMiwweGYwLDB4MGIsMHg5MCwweDAyLDB4MjAsMHgwMCwweGJiLDB4MDAsMHgyMiwweGUyLDB4MGQsMHhiMCwweDAyLDB4ZjIgfX0sCi0gezE2LCAweGUyNTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDAsMHgwMCwweGIzLDB4MDIsMHgyYywweGMwIH19LAotIHsxNiwgMHhlMjYwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHg2YywweDAwLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwOSwweDM0LDB4MDQsMHhlYywweDAwLDB4YTgsMHgwMCB9fSwKLSB7MTYsIDB4ZTI3MCwgMCwgezB4MjIsMHhmMCwweDBiLDB4MDAsMHgwMiwweDg4LDB4MDAsMHhiMywweDAwLDB4MjgsMHhlMCwweDBiLDB4MTQsMHgwMiwweGEwLDB4MDAgfX0sCi0gezE2LCAweGUyODAsIDAsIHsweDkzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjkwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwNCwweGI3LDB4ODAsMHgyZCwweGU4LDB4MDgsMHg3OCwweDAyLDB4MGUsMHhjOCwweGE3LDB4OTAsMHgyMSB9fSwKLSB7MTYsIDB4ZTJhMCwgMCwgezB4YTgsMHgxOSwweDM4LDB4NTIsMHg5ZSwweGMxLDB4ODcsMHg4MCwweDIxLDB4ZTIsMHgwYiwweGQ5LDB4ODIsMHg5ZSwweDAwLDB4YjYgfX0sCi0gezE2LCAweGUyYjAsIDAsIHsweGEwLDB4MmQsMHgyMCwweDBiLDB4NjgsMHgwMiwweDFlLDB4MDAsMHhiNCwweGMxLDB4MjEsMHgyMCwweDA5LDB4NDgsMHgwMiwweGM4IH19LAotIHsxNiwgMHhlMmMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDBjLDB4ODAsMHhiMywweDEwLDB4M2UsMHhlMCB9fSwKLSB7MTYsIDB4ZTJkMCwgMCwgezB4MGUsMHgzYSwweDA3LDB4NGUsMHgwMCwweGNiLDB4OTAsMHgzYSwweDYxLDB4MGQsMHgzOCwweDAzLDB4Y2UsMHhkMSwweGUxLDB4OTggfX0sCi0gezE2LCAweGUyZTAsIDAsIHsweDMwLDB4YTQsMHg4ZiwweDEwLDB4MDMsMHg4OCwweDAwLDB4YmEsMHhhMSwweDNjLDB4ODQsMHgwNywweDAwLDB4MDMsMHg4MiwweGQ0IH19LAotIHsxNiwgMHhlMmYwLCAwLCB7MHhkMSwweDAwLDB4NzIsMHg4MCwweDBjLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTMwMCwgMCwgezB4NDAsMHgxNSwweGJjLDB4MDQsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzIsMHgyMywweGVjLDB4YjAsMHhmZiwweDAwLDB4MzIgfX0sCi0gezE2LCAweGUzMTAsIDAsIHsweDA0LDB4MDYsMHhiNCwweDIzLDB4N2MsMHgxMCwweGJmLDB4MDAsMHgzZSwweDg0LDB4MGYsMHhiMCwweDAzLDB4N2MsMHg0MCwweGZmIH19LAotIHsxNiwgMHhlMzIwLCAwLCB7MHgwMCwweDMzLDB4NDAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmUsMHgwMCwweGJmLDB4NDAsMHgwZiwweGM4LDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4ZTMzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlNCwweDAwLDB4Y2IsMHgzMywweDNlLDB4YzggfX0sCi0gezE2LCAweGUzNDAsIDAsIHsweDRjLDB4YjAsMHgwMywweGFjLDB4OTAsMHhkYiwweGEwLDB4MzYsMHhjMCwweDBlLDB4YmEsMHg0MywweDZjLDB4MDAsMHhjOSwweDAwIH19LAotIHsxNiwgMHhlMzUwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHgwMCwweDBmLDB4MjgsMHgwMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHgxOCwweDQzLDB4NjAsMHgwMCB9fSwKLSB7MTYsIDB4ZTM2MCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4NDAsMHg0ZiwweDA4LDB4MGIsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzNzAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDEwLDB4MDcsMHgwOCwweDJjLDB4Y2EsMHgwOCwweDIwLDB4MDIsMHgxYywweDIwLDB4ODcsMHgyOCwweDNmIH19LAotIHsxNiwgMHhlMzgwLCAwLCB7MHg4MCwweDhhLDB4ZjAsMHgwMiwweDFkLDB4NDAsMHg4NywweDA0LDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweDFjLDB4MDAsMHhiNiB9fSwKLSB7MTYsIDB4ZTM5MCwgMCwgezB4MDAsMHgyZCwweDgwLDB4MGIsMHg2MCwweDAzLDB4MWMsMHgwMCwweGI1LDB4MDAsMHgyZCwweDgwLDB4MGIsMHg3MCwweDAyLDB4MTIgfX0sCi0gezE2LCAweGUzYTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OGUsMHgwMCwweDg3LDB4YTAsMHgyZCwweGU0IH19LAotIHsxNiwgMHhlM2IwLCAwLCB7MHgwYSwweDU4LDB4MDIsMHgxZSwweDAxLDB4ODMsMHg5MCwweDIxLDB4NzAsMHgwYiwweDc5LDB4MDIsMHg5ZSwweDAxLDB4ODUsMHhjMCB9fSwKLSB7MTYsIDB4ZTNjMCwgMCwgezB4MmQsMHhlMCwweDRiLDB4NTgsMHgxMiwweDFhLDB4MDAsMHhiNiwweDgwLDB4MmQsMHgyMCwweDBiLDB4NDgsMHgwMiwweDUyLDB4MDAgfX0sCi0gezE2LCAweGUzZDAsIDAsIHsweGI0LDB4ODAsMHgyZCwweDIwLDB4MGIsMHg0OCwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlM2UwLCAwLCB7MHg0OCwweDE0LDB4ZWMsMHgwMCwweDgzLDB4MDAsMHgyYywweGMwLDB4ODgsMHgzNiwweDAyLDB4MGMsMHgwMiwweDgzLDB4MDAsMHg2YyB9fSwKLSB7MTYsIDB4ZTNmMCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MGEsMHhhYywweDAwLDB4OWIsMHhlMCwweDZjLDB4YzgsMHgwYiwweDMyLDB4MDIsMHgwYywweDAxLDB4YjMgfX0sCi0gezE2LCAweGU0MDAsIDAsIHsweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBjLDB4MTAsMHhiMywweDQwLDB4MmMsMHhjMCwweDBiLDB4M2MsMHg4MiwweDEyIH19LAotIHsxNiwgMHhlNDEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4MDIsMHhjYSwweDAwLDB4M2UsMHg4MCB9fSwKLSB7MTYsIDB4ZTQyMCwgMCwgezB4MGUsMHhlNCwweDhiLDB4MjgsMHgwMCwweGNhLDB4MDAsMHgzMywweDk1LDB4MGYsMHhhMCwweDA3LDB4YTgsMHgwMiwweGNlLDB4NDAgfX0sCi0gezE2LCAweGU0MzAsIDAsIHsweDNmLDB4YjAsMHgwZiwweGU0LDB4ODIsMHgyOCwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwZiwweGEwLDB4MjMsMHg2OCwweDAwIH19LAotIHsxNiwgMHhlNDQwLCAwLCB7MHhmYSwweDQwLDB4M2UsMHg4MSwweDRmLDB4YTQsMHhlMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4ODAsMHhmMCwweDAwLDB4M2MsMHgwMCwweDJmLDB4MDAsMHgwMiwweDYwLDB4MDAsMHhlOCwweDAwLDB4M2MgfX0sCi0gezE2LCAweGU0NjAsIDAsIHsweDAwLDB4MGUsMHg4MCwweDAxLDB4MjAsMHgwMCwweGU4LDB4MDQsMHg1ZSwweDA0LDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGZjIH19LAotIHsxNiwgMHhlNDcwLCAwLCB7MHgwMSwweDNmLDB4MTAsMHgwZiwweGM0LDB4MDMsMHhiMCwweDAwLDB4ZmMsMHgwOSwweDNmLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4ZTQ4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YTksMHgyMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGU0OTAsIDAsIHsweDBlLDB4OTAsMHgwMywweDQ0LDB4MDQsMHhkOSwweDAwLDB4M2UsMHg0MCwweDBkLDB4OTAsMHgwMywweGU0LDB4MDQsMHhjOSwweDAwIH19LAotIHsxNiwgMHhlNGEwLCAwLCB7MHgzMiwweDQwLDB4OGYsMHg5MCwweDBiLDB4ZTQsMHgwOCwweGY5LDB4MDAsMHgzZSwweDQ0LDB4MGUsMHg5OCwweDAzLDB4ZTYsMHgwMCB9fSwKLSB7MTYsIDB4ZTRiMCwgMCwgezB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0YzAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgxOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgwMCwweDJlIH19LAotIHsxNiwgMHhlNGQwLCAwLCB7MHg0MCwweDA4LDB4OTQsMHgwMiwweGU0LDB4MDAsMHhkOSwweDA0LDB4MjIsMHg0MCwweDBiLDB4MWMsMHgwYiwweDY0LDB4MDAsMHhiOSB9fSwKLSB7MTYsIDB4ZTRlMCwgMCwgezB4OTQsMHgyYywweDUwLDB4MDgsMHg5YywweDAyLDB4ZTQsMHgxNCwweGI5LDB4OTAsMHgwZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGU0ZjAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMiwweDg5LDB4MDAsMHgyNiwweDQwIH19LAotIHsxNiwgMHhlNTAwLCAwLCB7MHg0YSwweDkwLDB4MDIsMHg2NCwweDAwLDB4OTksMHgwNCwweDJlLDB4NDAsMHgwOCwweDk4LDB4ODIsMHhlNCwweDAwLDB4ODksMHgwMCB9fSwKLSB7MTYsIDB4ZTUxMCwgMCwgezB4NmEsMHg0MCwweDBhLDB4OTIsMHg4MiwweGU0LDB4MDAsMHhiZCwweDAxLDB4MmYsMHg1MCwweDEyLDB4ZDYsMHgwMiwweGY0LDB4NDAgfX0sCi0gezE2LCAweGU1MjAsIDAsIHsweGJkLDB4MDAsMHgwZiwweDQwLDB4MGIsMHhkMCwweDAyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyMCwweDQ4LDB4MDgsMHgxMiwweDAyLDB4MDQsMHg4MCwweDgxLDB4MjIsMHgyYyB9fSwKLSB7MTYsIDB4ZTU0MCwgMCwgezB4NDgsMHhhOCwweDEyLDB4MDYsMHhjNCwweDkwLDB4OTEsMHgyMCwweDI4LDB4NTAsMHgwYiwweDkwLDB4MDIsMHg0NSwweDAwLDB4YjUgfX0sCi0gezE2LCAweGU1NTAsIDAsIHsweDQwLDB4NmQsMHg0MCwweDA4LDB4NTAsMHgxMiwweGQ0LDB4MDQsMHhiNSwweDAyLDB4MmQsMHg0MCwweDBiLDB4NTAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhlNTYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhjOCwweDAwLDB4MzYsMHgxNCB9fSwKLSB7MTYsIDB4ZTU3MCwgMCwgezB4MGEsMHg4NSwweDAzLDB4NDEsMHg0MCwweGQ4LDB4NTAsMHgyZSwweDE0LDB4MGMsMHg4NSwweDAzLDB4YzEsMHg0MCwweGM4LDB4NTAgfX0sCi0gezE2LCAweGU1ODAsIDAsIHsweGJhLDB4MDAsMHgwZSwweDgwLDB4MjMsMHhlMCwweDAwLDB4NzgsMHgwMCwweDNlLDB4MDAsMHgwZSwweDgwLDB4MDMsMHhlMCwweDA0IH19LAotIHsxNiwgMHhlNTkwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4YzAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTVhMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4NDAsMHhkOSwweDEwLDB4M2UsMHg0NCwweDA3LDB4ZjEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwLDB4M2YgfX0sCi0gezE2LCAweGU1YjAsIDAsIHsweDQ0LDB4YWYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGZkLDB4MTAsMHgzNywweDUwLDB4MGYsMHhkMCwweDAzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhlNWMwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweGEwLDB4ZjksMHgyOCwweDNlLDB4NGEsMHgwZiwweDkyLDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4ZTVkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweGQ0LDB4ZmQsMHhhMiwweDNhLDB4NzAgfX0sCi0gezE2LCAweGU1ZTAsIDAsIHsweDhjLDB4OWUsMHgwMywweDI2LDB4ODAsMHhjOSwweGEwLDB4MzIsMHg2OCwweDBjLDB4ZGIsMHg0MywweDI3LDB4ODAsMHg5ZCwweGEyIH19LAotIHsxNiwgMHhlNWYwLCAwLCB7MHhiNywweDQwLDB4MGYsMHg1MCwweDAzLDB4NjUsMHgwMCwweGZkLDB4MDAsMHgzZiwweGMxLDB4MDcsMHhkMCwweDAzLDB4ZjUsMHgwNCB9fSwKLSB7MTYsIDB4ZTYwMCwgMCwgezB4ZmQsMHg0MCwweDJmLDB4YzAsMHgwYywweGQwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2MTAsIDAsIHsweDM4LDB4MTAsMHhlMywweDg4LDB4YjgsMHg1MCwweDIyLDB4MzgsMHgwOCwweDhlLDB4MDAsMHhhMiwweGEwLDB4ODgsMHhlOCwweDIyIH19LAotIHsxNiwgMHhlNjIwLCAwLCB7MHgzOCwweDQ4LDB4ODgsMHgwMywweDYyLDB4MTAsMHhhOCwweGU4LDB4M2MsMHgwMCwweDBiLDB4ODAsMHgwMywweDYyLDB4ODAsMHhiOCB9fSwKLSB7MTYsIDB4ZTYzMCwgMCwgezB4MDEsMHgyZSwweDgwLDB4MGIsMHg4MCwweDIxLDB4YTIsMHgwMCwweGIwLDB4ODQsMHgyZSwweDJhLDB4MjgsMHg4YSwweDgyLDB4Y2UgfX0sCi0gezE2LCAweGU2NDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHg0MCwweGIxLDB4MDAsMHgyOCwweDU4IH19LAotIHsxNiwgMHhlNjUwLCAwLCB7MHg4MCwweDEzLDB4NDAsMHgwNSwweDAwLDB4ODEsMHg0MCwweDIwLDB4NTIsMHgyOCwweDE2LDB4MDIsMHg4NSwweDgwLDB4OWIsMHhjMiB9fSwKLSB7MTYsIDB4ZTY2MCwgMCwgezB4NjQsMHg0MSwweDhiLDB4OTgsMHgwMiwweDA0LDB4MDAsMHhiMSwweDA5LDB4MmMsMHg0MCwweDFiLDB4MTAsMHgyMCwweGM0LDB4MDAgfX0sCi0gezE2LCAweGU2NzAsIDAsIHsweGIxLDB4MDAsMHgyYywweDQwLDB4NDgsMHgxMCwweDAyLDB4YzIsMHgwNSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjgwLCAwLCB7MHgxOCwweDE1LDB4YTUsMHg4NCwweGI5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDAxLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4ZTY5MCwgMCwgezB4NTAsMHgwOCwweDkwLDB4NDIsMHg2NCwweDAwLDB4YTksMHgxMCwweGFlLDB4NTgsMHgwMywweDk4LDB4MDIsMHg2NCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGU2YTAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHg0NiwweGE0LDB4MTAsMHhiOSwweDAwLDB4MmUsMHg0MSwweDA4LDB4OTAsMHgwMiwweGM2IH19LAotIHsxNiwgMHhlNmIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGU3LDB4MDAsMHhmOSwweDAwLDB4MmEsMHg0MCB9fSwKLSB7MTYsIDB4ZTZjMCwgMCwgezB4MmMsMHg5NCwweDBiLDB4MjQsMHgwMiwweGM5LDB4MDAsMHhiMiwweDQ0LDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwNCwweGQ5LDB4ODAgfX0sCi0gezE2LCAweGU2ZDAsIDAsIHsweGI2LDB4NDEsMHg4ZiwweDE4LDB4MDMsMHgyNCwweDAwLDB4ZjksMHg2MCwweDNlLDB4NDAsMHgwZiwweDk2LDB4MDMsMHhlNCwweDAwIH19LAotIHsxNiwgMHhlNmUwLCAwLCB7MHhmOSwweDgwLDB4M2UsMHg0MiwweDhjLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTZmMCwgMCwgezB4MjgsMHgwMSwweGE2LDB4MDAsMHhmMSwweDAwLDB4M2UsMHg0MCwweDBmLDB4MWMsMHgwMywweGM0LDB4MDAsMHhmOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGU3MDAsIDAsIHsweDQwLDB4OGYsMHg5MCwweDIzLDB4YzQsMHgxMCwweGY5LDB4MDAsMHhiZSwweDQwLDB4MGYsMHg5MCwweDBiLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhlNzEwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwNywweDkwLDB4MjMsMHhlNCwweDAwLDB4ZjksMHgyMCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhjYSB9fSwKLSB7MTYsIDB4ZTcyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4ZjgsMHgwMCwweGJlLDB4MDAgfX0sCi0gezE2LCAweGU3MzAsIDAsIHsweDBlLDB4ODQsMHgwMywweDIwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDBjLDB4MDAsMHg4MywweDIwLDB4MDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHhlNzQwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzNiwweDEwLDB4MGYsMHg4MCwweDQzLDB4ZTAsMHgwOCB9fSwKLSB7MTYsIDB4ZTc1MCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3NjAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4YmEsMHgwMCwweDIyLDB4ODAsMHg0OCwweGEwLDB4MDMsMHg2OCwweDAwLDB4YWEsMHgwMCwweDJhIH19LAotIHsxNiwgMHhlNzcwLCAwLCB7MHg4MCwweDA4LDB4ZTAsMHgwMywweDY4LDB4MDAsMHg4MiwweDAwLDB4MmYsMHg4MCwweDA4LDB4ZTYsMHgwMiwweDI4LDB4MDQsMHhiZSB9fSwKLSB7MTYsIDB4ZTc4MCwgMCwgezB4NDAsMHgyMywweDgwLDB4MGIsMHhlOCwweDAyLDB4ZWEsMHgwMCwweGJlLDB4MDEsMHgyMiwweDgwLDB4MGIsMHhlMCwweDAyLDB4Y2EgfX0sCi0gezE2LCAweGU3OTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMSwweDkzLDB4MDEsMHgyMCwweGMxIH19LAotIHsxNiwgMHhlN2EwLCAwLCB7MHgwYSwweDMwLDB4MDIsMHgwYywweDAwLDB4YTMsMHgwMCwweDIwLDB4YzAsMHg4OCwweDM4LDB4NDIsMHgwYywweDAwLDB4YTMsMHgwMCB9fSwKLSB7MTYsIDB4ZTdiMCwgMCwgezB4MjQsMHhjMCwweDBhLDB4M2UsMHg0MiwweDhjLDB4MDAsMHhiMiwweDRjLDB4MjQsMHhlMCwweDRiLDB4MzgsMHgwMiwweGM0LDB4NDEgfX0sCi0gezE2LCAweGU3YzAsIDAsIHsweGIzLDB4MDAsMHgyMiwweGMwLDB4MGIsMHgxMCwweDAyLDB4Y2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlN2QwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHgwMCwweGI3LDB4MDAsMHgyMCwweGM5LDB4NDgsMHg3MCwweDAyLDB4ZGMsMHg0MCwweGE3LDB4MTQsMHgyYyB9fSwKLSB7MTYsIDB4ZTdlMCwgMCwgezB4YzgsMHgyOCwweDMwLDB4ODIsMHg1YywweGMxLDB4ODUsMHgwMCwweDJkLDB4ZTAsMHgyYSwweGYwLDB4MTIsMHgxYywweDgwLDB4YjcgfX0sCi0gezE2LCAweGU3ZjAsIDAsIHsweGEwLDB4MjEsMHg4MiwweDBiLDB4NzAsMHg4MiwweGQ0LDB4MTEsMHhiNiwweDgwLDB4MjEsMHg0MCwweDRiLDB4NTAsMHgwMiwweGU4IH19LAotIHsxNiwgMHhlODAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4ODAsMHhkNSwweDgwLDB4MjksMHhlYSB9fSwKLSB7MTYsIDB4ZTgxMCwgMCwgezB4NGUsMHgzYSwweDA3LDB4MGUsMHg4MCwweGUzLDB4YjAsMHgzMSwweGZjLDB4MGMsMHg0OCwweDAzLDB4MGUsMHg0MSwweGU3LDB4ODAgfX0sCi0gezE2LCAweGU4MjAsIDAsIHsweDNkLDB4ZTAsMHgwZSwweDc4LDB4MDMsMHg5ZSwweDgwLDB4ZjQsMHhjNCwweDM1LDB4ZTAsMHgwZiwweDc4LDB4MjcsMHhkZSwweDAwIH19LAotIHsxNiwgMHhlODMwLCAwLCB7MHhmNSwweDgwLDB4YjEsMHhlMCwweDBmLDB4NTgsMHgwMywweGVhLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTg0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHgzMSwweDA0LDB4M2EsMHhjNCwweDBmLDB4YjUsMHg5MywweDZkLDB4MDgsMHhmYiwweDQwLDB4M2EgfX0sCi0gezE2LCAweGU4NTAsIDAsIHsweGM4LDB4NjMsMHg4MCwweDIzLDB4ZWMsMHg5OCwweGU5LDB4MDAsMHgzZSwweGMwLDB4MGQsMHhiMCwweDQzLDB4ZWMsMHgwMCwweGYzIH19LAotIHsxNiwgMHhlODYwLCAwLCB7MHg4MCwweDNlLDB4NDAsMHg0ZiwweGEwLDB4MDMsMHhlYywweDAwLDB4ZjgsMHg2OCwweDNlLDB4NDAsMHg4ZiwweDk4LDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ZTg3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDYwLDB4ZWIsMHg5MCwweDNlLDB4ZTQgfX0sCi0gezE2LCAweGU4ODAsIDAsIHsweDBmLDB4YjgsMHgwMCwweDNmLDB4NDAsMHhjYiwweDgwLDB4N2YsMHhlMCwweDBlLDB4ZmIsMHgwMywweDJlLDB4NDAsMHhjYiwweDgwIH19LAotIHsxNiwgMHhlODkwLCAwLCB7MHgzZiwweGUwLDB4MGYsMHg3OSwweDQzLDB4MmUsMHg2MCwweGNhLDB4ODEsMHgzMywweDY0LDB4OGYsMHhkOSwweDAzLDB4ZmUsMHgwMCB9fSwKLSB7MTYsIDB4ZThhMCwgMCwgezB4ZmYsMHg4MSwweDMzLDB4ZTAsMHgwZiwweGQ5LDB4OGIsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4YjAsIDAsIHsweGE4LDB4MDEsMHg5YywweDAwLDB4ODcsMHg4MSwweDE5LDB4ZTQsMHgwYiwweGZhLDB4MTMsMHg1ZSwweDgwLDB4ODcsMHhiMiwweDJkIH19LAotIHsxNiwgMHhlOGMwLCAwLCB7MHhlYywweDBkLDB4NzksMHgwMSwweDllLDB4MDAsMHhkNSwweDkwLDB4MmQsMHhmOCwweDBiLDB4NzgsMHgwMywweDdlLDB4MDgsMHhhYiB9fSwKLSB7MTYsIDB4ZThkMCwgMCwgezB4OTEsMHgyOSwweDg1LDB4MGIsMHg1MSwweDAyLDB4ZGMsMHg0OCwweGI2LDB4NDAsMHgyMSwweDQwLDB4MGIsMHg1MCwweDAyLDB4MmEgfX0sCi0gezE2LCAweGU4ZTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OGMsMHgxNCwweGI1LDB4MjAsMHg2ZCwweGM4IH19LAotIHsxNiwgMHhlOGYwLCAwLCB7MHgwYiwweDcyLDB4MDIsMHg1YywweDgwLDB4ODcsMHgyMCwweDY5LDB4YzAsMHg4OCwweDUzLDB4MDIsMHhjYywweDgxLDB4OTcsMHg1MCB9fSwKLSB7MTYsIDB4ZTkwMCwgMCwgezB4MmQsMHhjOCwweDBiLDB4ZjcsMHgwYSwweGRjLDB4YzAsMHg4NCwweDAxLDB4MjEsMHg0NCwweDFiLDB4NzAsMHgyMiwweGRjLDB4MDAgfX0sCi0gezE2LCAweGU5MTAsIDAsIHsweGI1LDB4MDAsMHgyMSwweGM0LDB4MGIsMHg1MCwweDg2LDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTIwLCAwLCB7MHgyMCwweDE0LDB4Y2YsMHgzMCwweDkxLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzNCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4ZTkzMCwgMCwgezB4ZjIsMHgwYiwweDEwLDB4MjIsMHgwYywweDAwLDB4OTEsMHgwMCwweDJjLDB4YzgsMHgwYiwweDE4LDB4MGEsMHhjZCwweDAxLDB4YTMgfX0sCi0gezE2LCAweGU5NDAsIDAsIHsweDAwLDB4MjgsMHg2MCwweDBiLDB4MjEsMHgwMiwweGNlLDB4MjAsMHhiOCwweDQwLDB4YTAsMHg1NCwweDBiLDB4MTgsMHgwMiwweDA4IH19LAotIHsxNiwgMHhlOTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxMSwweGJkLDB4MDAsMHhmOSwweDAwLDB4MmYsMHhjMCB9fSwKLSB7MTYsIDB4ZTk2MCwgMCwgezB4MGYsMHhmNCwweDAyLDB4N2MsMHgxMiwweGNmLDB4MDMsMHgzZiwweGMyLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwNCwweDliLDB4MDIgfX0sCi0gezE2LCAweGU5NzAsIDAsIHsweDJlLDB4ZjIsMHgwZiwweGE0LDB4MGIsMHhkYywweDAwLDB4Y2UsMHgwMCwweGIwLDB4YzgsMHg4ZiwweGE0LDB4MDMsMHhlZiwweDAwIH19LAotIHsxNiwgMHhlOTgwLCAwLCB7MHhmOCwweDgwLDB4MzIsMHhmNSwweDFmLDB4ZGQsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTk5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4NDAsMHhlOSwweDAwLDB4M2EsMHhjMCwweDBmLDB4YjEsMHgwMywweGNjLDB4MDAsMHhmMywweDAwLDB4M2UgfX0sCi0gezE2LCAweGU5YTAsIDAsIHsweGMwLDB4MGQsMHhiNCwweDA5LDB4ZWMsMHgxOCwweGY5LDB4MTAsMHgzZSwweDEwLDB4NGYsMHhiMSwweDBhLDB4NmMsMHg4MCwweGY5IH19LAotIHsxNiwgMHhlOWIwLCAwLCB7MHg4OSwweDM2LDB4ODIsMHgwYiwweGE2LDB4MDMsMHhlYywweDUwLDB4ZjksMHg1MCwweDNlLDB4YzAsMHgxZiwweDkwLDB4MDMsMHg2MCB9fSwKLSB7MTYsIDB4ZTljMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmQsMHhhMCwweDNkLDB4YzAgfX0sCi0gezE2LCAweGU5ZDAsIDAsIHsweDBjLDB4NzAsMHg4MywweDJjLDB4MDAsMHhlZiwweDAyLDB4MzUsMHhjMCwweDBkLDB4ZTIsMHgwMywweGZjLDB4MDQsMHhmZiwweDAyIH19LAotIHsxNiwgMHhlOWUwLCAwLCB7MHgyZCwweGUwLDB4OGUsMHhmMCwweDAzLDB4M2MsMHgxMCwweGRjLDB4MDAsMHgzZiwweDgwLDB4MGMsMHhkOCwweDAzLDB4ZmMsMHgwMCB9fSwKLSB7MTYsIDB4ZTlmMCwgMCwgezB4ZGUsMHgxOCwweDMzLDB4ZjAsMHg0ZiwweGQwLDB4MDMsMHhjMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhMDAsIDAsIHsweDgxLDB4MDAsMHg2YywweDAwLDB4YjksMHgwMCwweDJlLDB4YzAsMHg0YywweGIwLDB4MDMsMHg2YywweDAwLDB4OGIsMHgwMiwweDM2IH19LAotIHsxNiwgMHhlYTEwLCAwLCB7MHhjMCwweDBkLDB4YWMsMHgxMiwweGVjLDB4MDAsMHg3OSwweDAwLDB4MmUsMHgzMCwweDBkLDB4M2QsMHg0MiwweGFjLDB4MDAsMHg4OSB9fSwKLSB7MTYsIDB4ZWEyMCwgMCwgezB4ODgsMHgxYSwweDEwLDB4MGQsMHg4NiwweDAyLDB4ZWUsMHgwNCwweGJiLDB4NDAsMHgyMiwweGUwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGVhMzAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMSwweGI5LDB4MDAsMHgyZSwweGMwIH19LAotIHsxNiwgMHhlYTQwLCAwLCB7MHgwOCwweGIwLDB4NDIsMHhhYywweDAwLDB4MGIsMHgwNSwweDI2LDB4YzAsMHgwOSwweDk0LDB4MjAsMHhlYywweDAwLDB4YjksMHg4MCB9fSwKLSB7MTYsIDB4ZWE1MCwgMCwgezB4NmUsMHhjNCwweDg4LDB4YjAsMHg4MiwweDJjLDB4MDAsMHg5YiwweDgyLDB4MmUsMHg0MiwweDA4LDB4ODEsMHgwMiwweGU0LDB4ODAgfX0sCi0gezE2LCAweGVhNjAsIDAsIHsweGI4LDB4MDAsMHgyMiwweGMxLDB4MGIsMHg5MCwweDAyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTcwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgxMCwweGIxLDB4MjUsMHgyYywweGNhLDB4MDgsMHgzNCwweDQ2LDB4Y2MsMHgwOCwweDgzLDB4MDAsMHgyNCB9fSwKLSB7MTYsIDB4ZWE4MCwgMCwgezB4YzIsMHgwYiwweDAyLDB4NTIsMHhjYywweDgxLDB4ODMsMHgwMCwweDJjLDB4MDAsMHgxOSwweGIyLDB4NDIsMHhhYywweDgwLDB4ODEgfX0sCi0gezE2LCAweGVhOTAsIDAsIHsweDA4LDB4MjgsMHg4MCwweDA5LDB4MDAsMHgwMiwweGM0LDB4NDAsMHhiMSwweDAwLDB4MjAsMHhjMCwweDBiLDB4MTAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhlYWEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDZjLDB4MDAsMHhiOSwweDAwLDB4M2YsMHhkMCB9fSwKLSB7MTYsIDB4ZWFiMCwgMCwgezB4MDgsMHhmNiwweDA3LDB4YmMsMHhjMiwweGFmLDB4MzAsMHg3NSwweGRjLDB4MGQsMHgxNiwweDAyLDB4ZmMsMHhlMCwweGI5LDB4NTAgfX0sCi0gezE2LCAweGVhYzAsIDAsIHsweDNlLDB4Y2MsMHgwYywweGIwLDB4MjMsMHgyYywweDEwLDB4ZDksMHgwMCwweDNlLDB4MDAsMHgwYywweDkwLDB4MDMsMHhlYywweDAwIH19LAotIHsxNiwgMHhlYWQwLCAwLCB7MHhkZSwweDAxLDB4MzIsMHhjMCwweDBmLDB4OTAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWFlMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZCwweDEwLDB4M2YsMHhjYSwweDJlLDB4ZjYsMHgwMywweDZkLDB4OTQsMHg5ZiwweDMwLDB4M2EgfX0sCi0gezE2LCAweGVhZjAsIDAsIHsweGM5LDB4MGMsMHg4MywweDkzLDB4ZmMsMHg4MCwweGZmLDB4MTEsMHg3ZSwweDE5LDB4MGIsMHhiMSwweDAzLDB4ZmMsMHg0MCwweGZkIH19LAotIHsxNiwgMHhlYjAwLCAwLCB7MHgwOCwweDNiLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhmYywweDgwLDB4NzcsMHgwMCwweGJmLDB4YzAsMHgwZiwweDUwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4ZWIxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDAwLDB4ZjQsMHg5NCwweDM3LDB4YzggfX0sCi0gezE2LCAweGViMjAsIDAsIHsweDBkLDB4NjksMHg2MywweDdjLDB4MTAsMHhmZiwweDYyLDB4MzcsMHhjMCwweDBkLDB4YjQsMHgwMywweDdjLDB4NjAsMHhkNCwweDgwIH19LAotIHsxNiwgMHhlYjMwLCAwLCB7MHgzZiwweDQwLDB4MGYsMHg0OCwweDIzLDB4MzIsMHgwMCwweGNlLDB4MDAsMHhiZiwweDQwLDB4OGYsMHhkMSwweDAzLDB4MzAsMHhlMCB9fSwKLSB7MTYsIDB4ZWI0MCwgMCwgezB4ZmYsMHgzMCwweDNiLDB4NjAsMHgwZiwweGQ4LDB4MDMsMHhiMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViNTAsIDAsIHsweDgwLDB4MTAsMHhlZCwweDIwLDB4YjgsMHgyNCwweDIzLDB4ZjQsMHg0OSwweGEyLDB4MDIsMHgzZiwweDQwLDB4OGYsMHg1MSwweDIzIH19LAotIHsxNiwgMHhlYjYwLCAwLCB7MHhkYSwweDA4LDB4ZjYsMHgxMiwweDNkLDB4ODAsMHg5YiwweDgwLDB4MmUsMHg0OSwweDRiLDB4ODAsMHgwMywweDQwLDB4MDAsMHhkOSB9fSwKLSB7MTYsIDB4ZWI3MCwgMCwgezB4MDEsMHgyMiwweDc0LDB4MGIsMHhkNSwweDAyLDB4MjEsMHgwMCwweGJmLDB4NDIsMHgyZSwweDQ5LDB4MGIsMHg5YywweDAyLDB4ZTAgfX0sCi0gezE2LCAweGViODAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2QsMHg4MCwweGI4LDB4MjAsMHgyOCwweGMxIH19LAotIHsxNiwgMHhlYjkwLCAwLCB7MHgxYiwweGEwLDB4MDIsMHg0YywweDAwLDB4OTMsMHgyMCwweDJjLDB4ZDgsMHgwYiwweDM0LDB4MDIsMHhjYywweDAwLDB4OTAsMHgwMSB9fSwKLSB7MTYsIDB4ZWJhMCwgMCwgezB4MmMsMHhjNiwweDFhLDB4YTAsMHgwMiwweDY4LDB4MDgsMHg4MywweDAwLDB4YTQsMHg0MCwweDBiLDB4MTAsMHgwMiwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViYjAsIDAsIHsweGIzLDB4MTAsMHgyOCwweDQyLDB4MGIsMHgxNCwweDAyLDB4YTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYmMwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwMCwweGI4LDB4NjAsMHgyYSwweGMwLDB4MWIsMHhhMCwweDhlLDB4YWMsMHgwMSwweDliLDB4MDUsMHgyNiB9fSwKLSB7MTYsIDB4ZWJkMCwgMCwgezB4YzAsMHgwMywweGIwLDB4NDIsMHg2YywweDAwLDB4OWIsMHg4MCwweDJlLDB4YzAsMHgwMywweGEwLDB4MDYsMHg2OSwweDAwLDB4OTkgfX0sCi0gezE2LCAweGViZTAsIDAsIHsweDgwLDB4YWEsMHhjMCwweDBiLDB4OTAsMHgwMiwweDYzLDB4MDAsMHgzYiwweDAwLDB4MmUsMHg1OCwweDRiLDB4OTAsMHgwMiwweGYwIH19LAotIHsxNiwgMHhlYmYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMSwweGVjLDB4MDQsMHhmOCwweDgwLDB4YmEsMHhjMCB9fSwKLSB7MTYsIDB4ZWMwMCwgMCwgezB4MGYsMHgzMCwweDAzLDB4NmMsMHgxMCwweGRiLDB4MDMsMHgzNiwweGMwLDB4OGYsMHhiMCwweDAzLDB4ZWMsMHgwOCwweGQ4LDB4ODAgfX0sCi0gezE2LCAweGVjMTAsIDAsIHsweDdlLDB4ZTAsMHgwNiwweDg4LDB4MDMsMHg0MSwweDA4LDB4Y2IsMHhhMCwweDNlLDB4NjQsMHgwZiwweDkwLDB4MGIsMHgyYSwweDAwIH19LAotIHsxNiwgMHhlYzIwLCAwLCB7MHg3YiwweDAwLDB4M2EsMHgwMSwweDBmLDB4OTAsMHgwMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWMzMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYywweDg0LDB4MzIsMHhjMCwweDBjLDB4ZjksMHgwMywweDVjLDB4MTAsMHhlZiwweDAwLDB4M2IgfX0sCi0gezE2LCAweGVjNDAsIDAsIHsweGMwLDB4MGMsMHg3MCwweDAzLDB4OWMsMHgwMCwweGVjLDB4MDEsMHgzZiwweGU0LDB4NGYsMHhkMSwweDAzLDB4ZjEsMHgwMCwweGYzIH19LAotIHsxNiwgMHhlYzUwLCAwLCB7MHgwNSwweDMzLDB4NjAsMHgwZiwweGQwLDB4MDMsMHhiYywweDA0LDB4ZmYsMHgwMCwweDNmLDB4MjEsMHgwZiwweGQwLDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4ZWM2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4YzgsMHg0MCwweDNhLDB4YzYgfX0sCi0gezE2LCAweGVjNzAsIDAsIHsweDBkLDB4YjQsMHgwMywweDZjLDB4MDAsMHhmMywweDAwLDB4MzQsMHhjMCwweDBlLDB4YjAsMHgwMywweDZjLDB4MDAsMHhlOSwweDEwIH19LAotIHsxNiwgMHhlYzgwLCAwLCB7MHgzYSwweGMwLDB4MGYsMHg4NCwweDAzLDB4MmMsMHg2MCwweGNiLDB4MDAsMHgzMiwweDYwLDB4MGMsMHg1MCwweDAzLDB4NjEsMHgwMCB9fSwKLSB7MTYsIDB4ZWM5MCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4OTAsMHgwZSwweDkwLDB4YTMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjYTAsIDAsIHsweGM4LDB4MDUsMHgzYywweDAyLDB4ODgsMHgwMSwweDAxLDB4ZjAsMHgyMCwweGIwLDB4MDEsMHgzZSwweDAwLDB4M2YsMHgwMCwweDMzIH19LAotIHsxNiwgMHhlY2IwLCAwLCB7MHhjMCwweDBiLDB4ZjAsMHgzMiwweDNjLDB4MDgsMHg4OSwweDgwLDB4MjIsMHhjMCwweDAxLDB4MTUsMHgxMiwweGFjLDB4MDAsMHg4YiB9fSwKLSB7MTYsIDB4ZWNjMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4NDgsMHhkYiwweDAyLDB4MmYsMHg0MCwweDhmLDB4MDAsMHgyZSwweDAxLDB4MDgsMHhkNCwweDgwLDB4MzIgfX0sCi0gezE2LCAweGVjZDAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweDA4LDB4MDAsMHgwOCwweGYwIH19LAotIHsxNiwgMHhlY2UwLCAwLCB7MHgwOCwweDAwLDB4MTIsMHg0YywweDAwLDB4MzMsMHgwMSwweDI0LDB4YzAsMHg0YSwweDMwLDB4MDIsMHg0YywweDAwLDB4YTAsMHgyMCB9fSwKLSB7MTYsIDB4ZWNmMCwgMCwgezB4MjgsMHhjMCwweDBiLDB4MTAsMHgwMiwweDQ2LDB4MDQsMHg4MywweDA0LDB4MjAsMHhjMCwweDI5LDB4MTgsMHgwMiwweDA0LDB4NDAgfX0sCi0gezE2LCAweGVkMDAsIDAsIHsweGIzLDB4MDAsMHgyYywweDQwLDB4MGEsMHgxYywweDQyLDB4YjEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMSwweDhkLDB4ODAsMHgyMSwweGUwLDB4MTgsMHhjOCwweDAyLDB4MWUsMHgwMCwweGIzLDB4YTAsMHgyMSB9fSwKLSB7MTYsIDB4ZWQyMCwgMCwgezB4ZTAsMHgxYiwweDM4LDB4MDIsMHgwZSwweDAxLDB4YTcsMHg4MCwweDIxLDB4ZTAsMHgwOSwweGQ4LDB4NDAsMHhkNiwweDQwLDB4ODcgfX0sCi0gezE2LCAweGVkMzAsIDAsIHsweDgwLDB4MDEsMHhlMCwweDA5LDB4NTksMHgwMiwweDE2LDB4MDAsMHg5NywweDg0LDB4MmQsMHg2MCwweDA4LDB4NTgsMHg0MCwweDAwIH19LAotIHsxNiwgMHhlZDQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDJjLDB4NDAsMHhjMCwweDAwLDB4MzgsMHhjNCB9fSwKLSB7MTYsIDB4ZWQ1MCwgMCwgezB4MGMsMHgzMCwweDI3LDB4NGMsMHgyMCwweGYzLDB4MDEsMHgzNCwweGMxLDB4MGUsMHgzYSwweDAzLDB4NGMsMHhjNCwweGUwLDB4MDAgfX0sCi0gezE2LCAweGVkNjAsIDAsIHsweDE4LDB4YzgsMHgwZiwweDM0LDB4MDMsMHg0NCwweDQwLDB4YzMsMHgwMCwweDMwLDB4YzAsMHgwZCwweDkwLDB4MDMsMHgyZSwweDAwIH19LAotIHsxNiwgMHhlZDcwLCAwLCB7MHhmMywweDAwLDB4M2UsMHg0MCwweDBlLDB4MTAsMHgwMSwweDlhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmOSwweDAwLDB4MGUsMHhkNCwweDBlLDB4YjAsMHgwMywweGVjLDB4MjAsMHhmYiwweDIwLDB4M2YgfX0sCi0gezE2LCAweGVkOTAsIDAsIHsweGM0LDB4MGYsMHhmMSwweDAzLDB4ZWMsMHg2MCwweGRiLDB4MTAsMHgzZiwweGMwLDB4NGYsMHhmMCwweDAzLDB4YTQsMHg0NiwweGZiIH19LAotIHsxNiwgMHhlZGEwLCAwLCB7MHgwMCwweGJkLDB4YzAsMHgwZSwweGQwLDB4MGIsMHhiNCwweDAwLDB4ZWYsMHg0OCwweDNmLDB4NDAsMHgwZiwweDUwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4ZWRiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZjgsMHgwMCwweDMyLDB4ZDQgfX0sCi0gezE2LCAweGVkYzAsIDAsIHsweDBmLDB4ODAsMHgwMywweGFkLDB4MDAsMHhlYiwweDA4LDB4MjIsMHhkMiwweDBjLDB4YjYsMHgwMywweDZjLDB4MDAsMHhmMiwweDgwIH19LAotIHsxNiwgMHhlZGQwLCAwLCB7MHgzNiwweGMwLDB4MGUsMHhhMCwweDAzLDB4MjgsMHgxMCwweGNiLDB4MDAsMHhiMiwweGMwLDB4MGYsMHhkNiwweDAzLDB4MjgsMHgxMCB9fSwKLSB7MTYsIDB4ZWRlMCwgMCwgezB4ZmIsMHgyMCwweDNlLDB4NDAsMHg0ZiwweDk5LDB4MTMsMHgyYiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkZjAsIDAsIHsweDQ4LDB4MTEsMHg5ZCwweDEwLDB4YjQsMHgwMSwweDIxLDB4YzEsMHg4YiwweGMwLDB4MDIsMHgxYywweGEwLDB4YmYsMHgwNCwweDI3IH19LAotIHsxNiwgMHhlZTAwLCAwLCB7MHhjOCwweDA4LDB4NzUsMHgwMiwweDFjLDB4YzAsMHhiNiwweDAwLDB4MjEsMHhjMCwweDA4LDB4ZjAsMHg0MiwweDE4LDB4MTAsMHg4ZiB9fSwKLSB7MTYsIDB4ZWUxMCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MGIsMHg1NCwweGEyLDB4MWMsMHgwMCwweGI3LDB4MDQsMHgyZCwweDQxLDB4MGIsMHg1MiwweDAyLDB4MTIgfX0sCi0gezE2LCAweGVlMjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHg4MCwweGI2LDB4ODgsMHhhNSwweGUwIH19LAotIHsxNiwgMHhlZTMwLCAwLCB7MHgwYiwweDc4LDB4MTIsMHg5ZSwweDgxLDB4YTcsMHg5MCwweDI1LDB4ZTQsMHg4OCwweDc4LDB4MDIsMHgxZSwweDgwLDB4YmYsMHg4MCB9fSwKLSB7MTYsIDB4ZWU0MCwgMCwgezB4MjQsMHg2MCwweDBiLDB4NjgsMHgwMiwweDFlLDB4MDAsMHg4NywweDg0LDB4NjEsMHhlMCwweDBhLDB4MWEsMHgwYSwweDFhLDB4MDAgfX0sCi0gezE2LCAweGVlNTAsIDAsIHsweGI3LDB4YTAsMHgyZCwweGUwLDB4MGIsMHhkYSwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweGJhLDB4YzAsMHhhNCwweGMwLDB4MGIsMHgzNCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyNCB9fSwKLSB7MTYsIDB4ZWU3MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MGUsMHgyYywweDAwLDB4YjMsMHg5OCwweDIwLDB4NjAsMHgwOSwweDMzLDB4MDIsMHgyYywweDAwLDB4YTMgfX0sCi0gezE2LCAweGVlODAsIDAsIHsweGM4LDB4MjAsMHhjMCwweDBiLDB4MTAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhmMCwweDBiLDB4MTAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhlZTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmZSwweDgwLDB4MzYsMHg4MSB9fSwKLSB7MTYsIDB4ZWVhMCwgMCwgezB4MGIsMHhlMCwweDAzLDB4YTgsMHgwMCwweGVhLDB4MDAsMHhiMiwweDgwLDB4MDgsMHhhMCwweDAzLDB4NjgsMHgwMCwweGZlLDB4MDAgfX0sCi0gezE2LCAweGVlYjAsIDAsIHsweDM2LDB4YTAsMHgxZiwweGU4LDB4MTMsMHgzYiwweDgyLDB4Y2UsMHhlMCwweDIyLDB4ODAsMHg4ZSwweGEwLDB4MDMsMHgzOCwweDAwIH19LAotIHsxNiwgMHhlZWMwLCAwLCB7MHhiYSwweDAwLDB4M2YsMHhhMiwweDBmLDB4YTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWVkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDIwLDB4M2EsMHgxMCwweDA3LDB4ODAsMHgwMywweGMxLDB4MDAsMHhmOCwweDAwLDB4MzggfX0sCi0gezE2LCAweGVlZTAsIDAsIHsweDAwLDB4MmYsMHg4MCwweDAzLDB4YTAsMHgwMSwweGY4LDB4NDIsMHgzZSwweDA1LDB4MGUsMHg4MCwweDBiLDB4ZTAsMHg4MCwweGQ4IH19LAotIHsxNiwgMHhlZWYwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MDMsMHhlMSwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MGIsMHhkMiB9fSwKLSB7MTYsIDB4ZWYwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YzksMHgwMCwweDNhLDB4NTAgfX0sCi0gezE2LCAweGVmMTAsIDAsIHsweDhmLDB4OTAsMHg4MywweGE0LDB4MDIsMHhkMSwweDAwLDB4YjIsMHg0MCwweDRjLDB4OTAsMHgyMywweDI0LDB4MDgsMHhjOSwweDAxIH19LAotIHsxNiwgMHhlZjIwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGMxLDB4MDAsMHgzMiwweDQwLDB4MGYsMHgxNCwweDBhLDB4MjUsMHgyMCB9fSwKLSB7MTYsIDB4ZWYzMCwgMCwgezB4ZTksMHgwMCwweDNlLDB4NDIsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmNDAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDBhLDB4ODksMHgwMCwweDIyLDB4NzAsMHgwYiwweDkwLDB4MTIsMHgyNSwweDgwLDB4YzksMHgwMCwweDIyIH19LAotIHsxNiwgMHhlZjUwLCAwLCB7MHg0MCwweDBhLDB4OTAsMHgwMywweDY0LDB4MDAsMHg4OSwweDIwLDB4MmMsMHg0MCwweDBhLDB4OTAsMHgwYSwweDI0LDB4MDAsMHg4OSB9fSwKLSB7MTYsIDB4ZWY2MCwgMCwgezB4YzEsMHgzMiwweDQwLDB4MGIsMHg5OCwweDAyLDB4MDYsMHgwMCwweDg5LDB4OTAsMHgyZSwweDQwLDB4MGIsMHg5NCwweDEyLDB4ZTAgfX0sCi0gezE2LCAweGVmNzAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4MDQsMHgwMCwweDg5LDB4MDAsMHg2YSwweDQyIH19LAotIHsxNiwgMHhlZjgwLCAwLCB7MHgwYSwweDEwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweGEyLDB4NDAsMHgwYSwweDkwLDB4MDIsMHgyNCwweDAwLDB4MDksMHgwMCB9fSwKLSB7MTYsIDB4ZWY5MCwgMCwgezB4MmUsMHg0MCwweDU4LDB4MTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDgwLDB4YWEsMHg2MCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDQgfX0sCi0gezE2LCAweGVmYTAsIDAsIHsweGE5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5NCwweDAyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZmIwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MDAsMHg2MCwweDQ4LDB4MGIsMHgxMCwweDAyLDB4MDQsMHg4MSwweDgxLDB4MjAsMHg2MCB9fSwKLSB7MTYsIDB4ZWZjMCwgMCwgezB4NDgsMHgwYSwweDEyLDB4MDIsMHg0NCwweDg4LDB4ODEsMHgwMCwweDBlLDB4NTksMHgwYSwweDE0LDB4MDIsMHgwNSwweDAwLDB4ODEgfX0sCi0gezE2LCAweGVmZDAsIDAsIHsweGMwLDB4MjgsMHg1MCwweDQ5LDB4MzAsMHgwMiwweDhjLDB4ODQsMHgwMSwweDYwLDB4MmMsMHg1MCwweDBiLDB4MTAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhlZmUwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhjMCwweDU0LDB4MmEsMHgwMCB9fSwKLSB7MTYsIDB4ZWZmMCwgMCwgezB4MGUsMHg4NSwweDAzLDB4YTAsMHgwMCwweGM4LDB4NTAsMHgzMiwweDE1LDB4MWUsMHgwNSwweDIyLDB4MjEsMHg0MiwweGM4LDB4MDAgfX0sCi0gezE2LCAweGYwMDAsIDAsIHsweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHgwMCwweDA0LDB4YzgsMHgwMCwweDNhLDB4MDAsMHg0ZiwweDg1LDB4MDMsMHhhMSwweDQwIH19LAotIHsxNiwgMHhmMDEwLCAwLCB7MHg2OCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjAyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmZCwweDAzLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDgsMHhlOSwweDEwLDB4M2UgfX0sCi0gezE2LCAweGYwMzAsIDAsIHsweDQ1LDB4MGYsMHg5MSwweDEzLDB4ZTQsMHg0MCwweGZkLDB4MDAsMHgzZiwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZjQsMHgwMiwweGZkIH19LAotIHsxNiwgMHhmMDQwLCAwLCB7MHg0MCwweDMzLDB4NTAsMHgwZiwweGQ0LDB4MjMsMHg3NCwweDQwLDB4ZjksMHgxMCwweDNmLDB4NDAsMHgwZiwweDU0LDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4ZjA1MCwgMCwgezB4MDIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNCwweDAwLDB4ZjksMHgwMSwweDMzLDB4NmEgfX0sCi0gezE2LCAweGYwNjAsIDAsIHsweDA5LDB4OTAsMHgwMywweGI2LDB4MzQsMHhmOSwweGM4LDB4MzIsMHg2NCwweDBjLDB4OWEsMHgwMywweGU2LDB4YTAsMHhkZCwweDAwIH19LAotIHsxNiwgMHhmMDcwLCAwLCB7MHgzYywweDcwLDB4MGYsMHg5MCwweDAzLDB4YTUsMHgwMCwweDg5LDB4ODAsMHgzMywweDMyLDB4MGYsMHhkOCwweDEzLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4ZjA4MCwgMCwgezB4ZmQsMHgwMCwweDcwLDB4NTAsMHgwZiwweGQwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwOTAsIDAsIHsweDM4LDB4MTAsMHhlMiwweDgwLDB4YjgsMHhhOCwweDIyLDB4MTAsMHgwOCwweDg4LDB4MDIsMHgyMSwweDAwLDB4YjgsMHhjMCwweDIwIH19LAotIHsxNiwgMHhmMGEwLCAwLCB7MHgzMCwweDBkLDB4OGUsMHg4NywweDgzLDB4ODgsMHg4OCwweDAwLDB4MmUsMHgzNCwweDBiLDB4OGEsMHg4MiwweDIyLDB4ODAsMHhkYyB9fSwKLSB7MTYsIDB4ZjBiMCwgMCwgezB4ZTAsMHgyMiwweDM4LDB4MGIsMHg4MCwweDAyLDB4MjAsMHgwMCwweGY4LDB4YTgsMHgyYSwweDI4LDB4MGIsMHg4MCwweDAyLDB4MGUgfX0sCi0gezE2LCAweGYwYzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgyMCwweGIxLDB4MDAsMHgyMCwweDQwIH19LAotIHsxNiwgMHhmMGQwLCAwLCB7MHgwYSwweDkyLDB4OTIsMHg4NCwweDExLDB4YjEsMHgyNCwweDY4LDB4NTgsMHgwOSwweDExLDB4MDIsMHhjNCwweDIwLDB4OTEsMHgwMSB9fSwKLSB7MTYsIDB4ZjBlMCwgMCwgezB4MmMsMHg0OCwweDFiLDB4NTAsMHgwMiwweDc0LDB4ODQsMHg5NSwweDQ4LDB4YWMsMHg0OCwweDBiLDB4OTQsMHgwMiwweDA0LDB4MDQgfX0sCi0gezE2LCAweGYwZjAsIDAsIHsweGIxLDB4MDIsMHgyNCwweDQ4LDB4MGIsMHgxMCwweDAyLDB4MDIsMHgwNSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTAwLCAwLCB7MHgxOCwweDExLDB4YTQsMHgwMCwweGIxLDB4MjAsMHgyMiwweDQwLDB4MGEsMHg5MCwweDA2LDB4MmMsMHgwMSwweGI5LDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ZjExMCwgMCwgezB4NDAsMHgwOSwweDkwLDB4MDIsMHhhNCwweDAwLDB4OWIsMHgwOCwweDJlLDB4NDgsMHgwYiwweDEyLDB4MWEsMHg3NCwweDAwLDB4OTUgfX0sCi0gezE2LCAweGYxMjAsIDAsIHsweDQ1LDB4MmUsMHg2MCwweDAzLDB4OTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2IH19LAotIHsxNiwgMHhmMTMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhmOSwweDgwLDB4MzAsMHg0MCB9fSwKLSB7MTYsIDB4ZjE0MCwgMCwgezB4MGUsMHgxNiwweDAzLDB4YTQsMHgwMCwweGI5LDB4MDQsMHgzMiwweDQwLDB4MGQsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGQ5LDB4NDAgfX0sCi0gezE2LCAweGYxNTAsIDAsIHsweDJlLDB4NDAsMHgxZiwweDk4LDB4MDMsMHhlNSwweDgwLDB4ZDksMHgwMCwweGFlLDB4NjAsMHgwNywweDEwLDB4MGIsMHgyNiwweDAxIH19LAotIHsxNiwgMHhmMTYwLCAwLCB7MHhiOSwweDAwLDB4YTYsMHg0MCwweDBmLDB4OTAsMHgwYiwweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjE3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4YmUsMHg0MCwweGFjLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4YjQgfX0sCi0gezE2LCAweGYxODAsIDAsIHsweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDAsMHgzZSwweDYwLDB4MGYsMHg5MCwweDAzLDB4YTQsMHg4MCwweGY5IH19LAotIHsxNiwgMHhmMTkwLCAwLCB7MHgwMCwweDMyLDB4MDAsMHgwZiwweDkwLDB4ODMsMHhlNiwweDg1LDB4ZTEsMHgwMCwweDMyLDB4NDQsMHgwZiwweDEwLDB4MDMsMHhjYSB9fSwKLSB7MTYsIDB4ZjFhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGYxYjAsIDAsIHsweDBmLDB4ODAsMHgxMywweGUwLDB4OTQsMHhlMCwweDAwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDYwLDB4MDAsMHhjOCwweDAwIH19LAotIHsxNiwgMHhmMWMwLCAwLCB7MHgzZSwweDAwLDB4MGQsMHg4MCwweDQzLDB4MjAsMHgwOCwweGY4LDB4MDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHg0MCB9fSwKLSB7MTYsIDB4ZjFkMCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MDAsMHg0YywweDgwLDB4MjMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxZTAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4YmEsMHgwMCwweDIzLDB4ODAsMHgwYiwweGEwLDB4MDIsMHhmYiwweDA0LDB4NmEsMHgwMCwweDIyIH19LAotIHsxNiwgMHhmMWYwLCAwLCB7MHg4MCwweDBhLDB4YTAsMHgwMywweDY4LDB4MGEsMHg4ZSwweDg4LDB4M2EsMHg4MCwweDA4LDB4YTAsMHgwMiwweDA4LDB4MDAsMHhiYSB9fSwKLSB7MTYsIDB4ZjIwMCwgMCwgezB4MDAsMHhiNywweDIyLDB4MDMsMHhlNCwweDAyLDB4ZmEsMHgwMCwweDhhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhlOCwweDAyLDB4Y2EgfX0sCi0gezE2LCAweGYyMTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGIzLDB4MDAsMHg2MCwweDQxIH19LAotIHsxNiwgMHhmMjIwLCAwLCB7MHgwMywweDMwLDB4MDIsMHhjYywweDQxLDB4YTMsMHgwMCwweDA0LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgyYywweDAwLDB4YTMsMHg4MCB9fSwKLSB7MTYsIDB4ZjIzMCwgMCwgezB4MmMsMHhjMCwweDA5LDB4MzgsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4YTAsMHhjMCwweDBiLDB4MzQsMHgwMiwweGNjLDB4ODAgfX0sCi0gezE2LCAweGYyNDAsIDAsIHsweGExLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzOCwweDAyLDB4Y2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjUwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHg0MCwweGI3LDB4MDAsMHg2MSwweDAwLDB4MGIsMHg3MSwweDAyLDB4ZGMsMHgwMCwweGEzLDB4MDAsMHgyNSB9fSwKLSB7MTYsIDB4ZjI2MCwgMCwgezB4YzgsMHgxOSwweDM4LDB4MDIsMHg1YywweDgwLDB4YTcsMHgwMCwweDBmLDB4ZTgsMHgwOSwweDY0LDB4MjIsMHgxMCwweDAwLDB4YjMgfX0sCi0gezE2LCAweGYyNzAsIDAsIHsweDAwLDB4MjUsMHhjOCwweDBiLDB4NjAsMHgwMiwweGYyLDB4MDAsMHg4NSwweDAxLDB4MjMsMHhlOCwweDA4LDB4NzAsMHg4MiwweGU4IH19LAotIHsxNiwgMHhmMjgwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MjAsMHhmZiwweDgwLDB4YTEsMHhhMCB9fSwKLSB7MTYsIDB4ZjI5MCwgMCwgezB4MGYsMHg3YSwweDQyLDB4ZGEsMHgwMCwweGU3LDB4ZTgsMHgzNSwweGYwLDB4MmYsMHg3YiwweDYyLDB4MWUsMHg4MiwweGU2LDB4ODAgfX0sCi0gezE2LCAweGYyYTAsIDAsIHsweDFkLDB4ZTAsMHgwZCwweGY4LDB4MGIsMHgxZSwweDAwLDB4ZjcsMHg4MCwweDMxLDB4ZjAsMHgwZiwweDc4LDB4MDMsMHhkZSwweDBjIH19LAotIHsxNiwgMHhmMmIwLCAwLCB7MHhlZiwweDgwLDB4MzEsMHhmOCwweDJjLDB4NzgsMHgwMywweGVhLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjJjMCwgMCwgezB4MDgsMHgxZCwweGFkLDB4ODQsMHhmYiwweDY4LDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGU4LDB4MDAsMHhmYiwweDAwLDB4ZmEgfX0sCi0gezE2LCAweGYyZDAsIDAsIHsweGQ4LDB4MGUsMHhiNSwweDAzLDB4ZWQsMHgwMCwweGRiLDB4MDAsMHgzYSwweGMwLDB4OGUsMHhhMCwweDAzLDB4ZTAsMHgwMCwweGZiIH19LAotIHsxNiwgMHhmMmUwLCAwLCB7MHg0MCwweDNlLDB4YzAsMHgwYiwweGIwLDB4NDMsMHhjNCwweDA0LDB4ZWYsMHgwMiwweGJmLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ZjJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDQyLDB4YzcsMHgzOCwweDMzLDB4NjQgfX0sCi0gezE2LCAweGYzMDAsIDAsIHsweDBlLDB4N2MsMHgwMywweDVlLDB4MDAsMHhkZiwweGEwLDB4MzcsMHhmMCwweDBkLDB4ZjgsMHgwMywweGZmLDB4MjAsMHhjZiwweDgxIH19LAotIHsxNiwgMHhmMzEwLCAwLCB7MHgzMywweGUyLDB4MGMsMHhkOCwweDAzLDB4YmUsMHgwMCwweDdmLDB4YzAsMHgzMywweGUwLDB4MGMsMHhmOSwweDAzLDB4N2UsMHgwMCB9fSwKLSB7MTYsIDB4ZjMyMCwgMCwgezB4ZmQsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzMzAsIDAsIHsweGE4LDB4MTEsMHg5YywweDAwLDB4ODcsMHhhMCwweDIxLDB4MTQsMHgwOCwweDcxLDB4MDIsMHgxNCwweDEwLDB4ZDcsMHgyMCwweDM1IH19LAotIHsxNiwgMHhmMzQwLCAwLCB7MHhjMCwweDBjLDB4NzAsMHgwMywweGJjLDB4MDAsMHg4NSwweDA4LDB4MmIsMHhjMCwweDRkLDB4NDYsMHgwMiwweGQxLDB4MDAsMHhiNyB9fSwKLSB7MTYsIDB4ZjM1MCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAyLDB4MDgsMHg4MCwweGY1LDB4MjAsMHgzZCwweGNhLDB4MGYsMHg1NCwweDAzLDB4ZWEgfX0sCi0gezE2LCAweGYzNjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgxMSwweDhmLDB4MDEsMHgyMCwweDg0IH19LAotIHsxNiwgMHhmMzcwLCAwLCB7MHgxYSwweGYwLDB4MDIsMHgxOCwweDAwLDB4YTcsMHgzNCwweDY1LDB4YzAsMHgwOSwweDcxLDB4MDIsMHhkYywweDAwLDB4OGUsMHgwMCB9fSwKLSB7MTYsIDB4ZjM4MCwgMCwgezB4MjksMHhjMCwweDA4LDB4NTAsMHgwNiwweDljLDB4MDAsMHhiZiwweDg4LDB4MmQsMHhjNCwweDBhLDB4NjAsMHgyNiwweDU4LDB4MjQgfX0sCi0gezE2LCAweGYzOTAsIDAsIHsweDk3LDB4MDAsMHg2ZCwweGMwLDB4OWIsMHg3MCwweDAyLDB4YzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmM2EwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweDhiLDB4NDAsMHgyMCwweDAwLDB4MTgsMHgzMCwweDAyLDB4MDAsMHgwMCwweGJiLDB4MDIsMHgyNCB9fSwKLSB7MTYsIDB4ZjNiMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4MjAsMHhjYywweDAwLDB4ODEsMHhjMCwweDI4LDB4YzAsMHgwYiwweDA0LDB4ODIsMHhlMCwweDEwLDB4YmIgfX0sCi0gezE2LCAweGYzYzAsIDAsIHsweGEwLDB4MmMsMHhlMCwweDBhLDB4MjAsMHgwNiwweDAwLDB4MDAsMHhiMywweDAwLDB4MjgsMHhjMCwweDBhLDB4MTAsMHgwMiwweDg4IH19LAotIHsxNiwgMHhmM2QwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhjZiwweDEwLDB4MzIsMHgwMCB9fSwKLSB7MTYsIDB4ZjNlMCwgMCwgezB4MGUsMHhmMCwweDBiLDB4MjQsMHgwMCwweGVmLDB4MDAsMHgzNywweGMwLDB4MGQsMHhmMCwweDAzLDB4ZmMsMHgwNiwweGMxLDB4NTAgfX0sCi0gezE2LCAweGYzZjAsIDAsIHsweDNiLDB4YzAsMHgwYywweGI0LDB4MDMsMHhhYywweDAwLDB4ZjgsMHhjMCwweGJlLDB4YzgsMHgyZSwweGIwLDB4MDMsMHg2ZSwweDAxIH19LAotIHsxNiwgMHhmNDAwLCAwLCB7MHhmYiwweDAwLDB4MmQsMHhjMCwweDRiLDB4OTAsMHgwMiwweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQxMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDQsMHhmYiwweDAwLDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGFkLDB4MDAsMHg5YiwweDAwLDB4M2UgfX0sCi0gezE2LCAweGY0MjAsIDAsIHsweGMwLDB4MGYsMHgzMCwweDAzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgyZSwweGMwLDB4MDUsMHhiNCwweDAzLDB4ZWQsMHgwMCwweGY4IH19LAotIHsxNiwgMHhmNDMwLCAwLCB7MHg0MCwweDMyLDB4YzAsMHgwOSwweDAwLDB4MDMsMHhlMCwweDkxLDB4ZTMsMHgwMCwweDNlLDB4YzAsMHgwZiwweDkwLDB4MTEsMHhlMCB9fSwKLSB7MTYsIDB4ZjQ0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlYywweDAwLDB4ZWYsMHgwMCwweDMzLDB4MjAgfX0sCi0gezE2LCAweGY0NTAsIDAsIHsweDRmLDB4ZjAsMHgwMywweGI0LDB4MDAsMHhlZiwweDAzLDB4M2EsMHhjMCwweDBmLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhkYywweDAwIH19LAotIHsxNiwgMHhmNDYwLCAwLCB7MHgzMSwweGMwLDB4OGQsMHhmOCwweDAzLDB4ZmUsMHgwNCwweGNmLDB4MDAsMHgzMiwweGM4LDB4MGMsMHhmMCwweDBiLDB4MWMsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ3MCwgMCwgezB4Y2YsMHg5MywweDMzLDB4YzAsMHg4YywweDQwLDB4MDIsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0ODAsIDAsIHsweDgxLDB4MDQsMHg2YywweDAwLDB4YmIsMHgwMCwweGEyLDB4MDQsMHgwYiwweDMwLDB4MDIsMHgwZSwweDAwLDB4YWIsMHgwMCwweDJhIH19LAotIHsxNiwgMHhmNDkwLCAwLCB7MHhjMCwweDA5LDB4YjAsMHgwMywweDZjLDB4MDgsMHhhOCwweGMwLDB4MzYsMHhjMCwweDA4LDB4YmMsMHgwMiwweGVmLDB4MDIsMHhhYiB9fSwKLSB7MTYsIDB4ZjRhMCwgMCwgezB4ZDAsMHgyMCwweGUwLDB4MDgsMHhiOCwweDIyLDB4MjYsMHgxMCwweDhiLDB4MDAsMHgyMiwweGMwLDB4MjAsMHg5YywweDAyLDB4MjAgfX0sCi0gezE2LCAweGY0YjAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyNiwweDAwIH19LAotIHsxNiwgMHhmNGMwLCAwLCB7MHgwYSwweGIwLDB4MDIsMHhhMiwweDA4LDB4YWIsMHgwMCwweDZhLDB4YzAsMHgwYiwweGIwLDB4MGEsMHgwYywweDAwLDB4OGIsMHg4MCB9fSwKLSB7MTYsIDB4ZjRkMCwgMCwgezB4MjIsMHhjMCwweDA5LDB4YjEsMHgwMiwweGVjLDB4NDAsMHg4OCwweDA4LDB4MjIsMHhjMCwweDA4LDB4YjgsMHgwMiwweDI2LDB4MDAgfX0sCi0gezE2LCAweGY0ZTAsIDAsIHsweDhiLDB4MDAsMHgyMiwweGMwLDB4MDgsMHg5OCwweDAyLDB4YTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNGYwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweDAwLDB4MGIsMHhiMCwweDAyLDB4MDAsMHgwMSwweDgzLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4ZjUwMCwgMCwgezB4YzAsMHgwOSwweDMwLDB4MDIsMHg0YywweDAwLDB4MDAsMHgwNCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDYsMHg0YywweDAwLDB4ODAgfX0sCi0gezE2LCAweGY1MTAsIDAsIHsweDAwLDB4MmMsMHhjMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4NDEsMHg4MywweDAwLDB4YTIsMHhjMCwweDA4LDB4MTAsMHgwYSwweDgyIH19LAotIHsxNiwgMHhmNTIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDAsMHhlZiwweDA4LDB4MjYsMHgwMCB9fSwKLSB7MTYsIDB4ZjUzMCwgMCwgezB4MGUsMHhmMCwweDAyLDB4YTAsMHgwMCwweGU3LDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmNSwweDQzLDB4M2MsMHgwMiwweGRhLDB4MDAgfX0sCi0gezE2LCAweGY1NDAsIDAsIHsweDMyLDB4YzAsMHgwZCwweGIwLDB4MDMsMHhlYywweDAwLDB4Y2IsMHgwMCwweGIyLDB4YzAsMHgwYywweGEwLDB4MDMsMHgyOCwweDEwIH19LAotIHsxNiwgMHhmNTUwLCAwLCB7MHhjYiwweDAwLDB4MzIsMHhjMCwweDBjLDB4ODAsMHgwMywweDgwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjU2MCwgMCwgezB4YTAsMHgwZCwweGZjLDB4MDAsMHhmYiwweDAwLDB4M2IsMHgwMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmZiwweDAyLDB4M2YgfX0sCi0gezE2LCAweGY1NzAsIDAsIHsweGMwLDB4MGQsMHhmMiwweDAzLDB4YmMsMHgwMCwweGY0LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGY3IH19LAotIHsxNiwgMHhmNTgwLCAwLCB7MHgwMCwweDMzLDB4YzAsMHgwZiwweDYwLDB4MDMsMHhmMCwweDg4LDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg0ZiwweGQwLDB4MDMsMHg2OCB9fSwKLSB7MTYsIDB4ZjU5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDQwLDB4ZmMsMHgzMSwweDNiLDB4MDggfX0sCi0gezE2LCAweGY1YTAsIDAsIHsweDRmLDB4ZjksMHg0MywweGVmLDB4MDAsMHhkZiwweDMwLDB4MzIsMHgyMSwweDBmLDB4OTQsMHgwNywweDdkLDB4ODAsMHhlZiwweDM4IH19LAotIHsxNiwgMHhmNWIwLCAwLCB7MHgzMiwweDA5LDB4MWMsMHgzOCwweDAzLDB4ZjIsMHgyMSwweGZkLDB4MDAsMHgzMywweGM0LDB4MGMsMHhmMCwweDAyLDB4ZmMsMHgwMCB9fSwKLSB7MTYsIDB4ZjVjMCwgMCwgezB4ZGYsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1ZDAsIDAsIHsweDgwLDB4MTAsMHhlYywweDg4LDB4OGIsMHg2MCwweDIyLDB4ZTUsMHgwZSwweGIyLDB4MjIsMHhlYywweDgwLDB4YWYsMHgxMSwweDJhIH19LAotIHsxNiwgMHhmNWUwLCAwLCB7MHgyMCwweDBiLDB4YjEsMHgxMywweGFjLDB4NDgsMHg4YiwweDQ1LDB4MzQsMHhjYywweDQ4LDB4YjAsMHgwMiwweDZiLDB4MDAsMHhiYSB9fSwKLSB7MTYsIDB4ZjVmMCwgMCwgezB4ODIsMHgzNiwweDAwLDB4MDgsMHg4OCwweDIyLDB4YzAsMHgwNCwweDg4LDB4MDAsMHhhMiwweDA4LDB4OGIsMHg4OCwweDYyLDB4MjAgfX0sCi0gezE2LCAweGY2MDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMCwweGExLDB4MzAsMHgyOCwweDAwIH19LAotIHsxNiwgMHhmNjEwLCAwLCB7MHgwYiwweDMyLDB4MDIsMHhjYywweDAwLDB4YTMsMHgyMiwweDJjLDB4MDAsMHg4YiwweDEyLDB4MDYsMHhjOCwweDgwLDB4YTMsMHgwMCB9fSwKLSB7MTYsIDB4ZjYyMCwgMCwgezB4MjAsMHgwMiwweGNhLDB4MzAsMHgwNiwweGM0LDB4MDEsMHhiMSwweDAwLDB4NjgsMHg4MCwweDA5LDB4MjAsMHgwMiwweDg4LDB4MDAgfX0sCi0gezE2LCAweGY2MzAsIDAsIHsweDgzLDB4MDAsMHgyMCwweGMyLDB4MGIsMHgwMCwweDBhLDB4YTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwMCwweDhiLDB4NjEsMHg2MiwweGMwLDB4MGIsMHhiMiwweDAyLDB4ZTgsMHgwMCwweGFiLDB4MDIsMHgyYSB9fSwKLSB7MTYsIDB4ZjY1MCwgMCwgezB4NjEsMHgxYiwweDkwLDB4MDIsMHhhOCwweDAwLDB4YWIsMHgwMCwweDIwLDB4YzAsMHgwYSwweGIwLDB4MDIsMHg2YywweDA0LDB4YmEgfX0sCi0gezE2LCAweGY2NjAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDg5LDB4OTAsMHgwMiwweGU2LDB4MDgsMHg5OCwweDAwLDB4MjIsMHgwMCwweDBiLDB4YjAsMHgwMiwweGIwIH19LAotIHsxNiwgMHhmNjcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVlLDB4MDAsMHhmOCwweDAxLDB4M2EsMHgwNCB9fSwKLSB7MTYsIDB4ZjY4MCwgMCwgezB4MGYsMHhhYywweDAzLDB4ZWMsMHg5MCwweGZiLDB4MDIsMHgzZSwweGUwLDB4MGIsMHg5MCwweDQyLDB4NjcsMHg4MCwweGE4LDB4YzQgfX0sCi0gezE2LCAweGY2OTAsIDAsIHsweDIyLDB4NDgsMHgyMiwweDg2LDB4MDMsMHhlMSwweDQwLDB4YjgsMHgwMiwweDJhLDB4NDAsMHgyOSwweDkwLDB4MDMsMHhlYywweDAyIH19LAotIHsxNiwgMHhmNmEwLCAwLCB7MHhjOSwweDQ4LDB4MzIsMHg0MCwweDBmLDB4YjAsMHgxMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjZiMCwgMCwgezB4ZTAsMHgwMSwweGFjLDB4NDAsMHhmYiwweDAwLDB4MWYsMHhhMiwweDBlLDB4ZjgsMHg4MiwweGZjLDB4MDgsMHhmZiwweDAwLDB4M2YgfX0sCi0gezE2LCAweGY2YzAsIDAsIHsweGMwLDB4MGYsMHhmYSwweDQzLDB4OTYsMHg0NCwweGQ0LDB4OTEsMHgzZiwweDQwLDB4MGQsMHhjMCwweDAzLDB4ZmEsMHgwMCwweGZmIH19LAotIHsxNiwgMHhmNmQwLCAwLCB7MHgwOCwweDI1LDB4ODAsMHgwZSwweGUwLDB4MDMsMHhkMCwweDAwLDB4ZWEsMHgwMCwweDNmLDB4ODAsMHgwZiwweGMwLDB4MDMsMHg3OCB9fSwKLSB7MTYsIDB4ZjZlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZTEsMHgyMCwweDNhLDB4NTAgfX0sCi0gezE2LCAweGY2ZjAsIDAsIHsweDBmLDB4OTAsMHgwMywweDJjLDB4MDAsMHhlYiwweDA4LDB4NzYsMHgwNSwweDBlLDB4YjAsMHgyNywweGUwLDB4MTAsMHhlYSwweDQwIH19LAotIHsxNiwgMHhmNzAwLCAwLCB7MHhiMiwweGMwLDB4MGMsMHhhNCwweDQzLDB4MjUsMHgwMCwweGY4LDB4MDAsMHgzMiwweDA4LDB4MGYsMHg4MCwweDQzLDB4ZTgsMHgwMCB9fSwKLSB7MTYsIDB4ZjcxMCwgMCwgezB4ZDEsMHgwOCwweGVlLDB4NDAsMHgwZiwweDAwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3MjAsIDAsIHsweGM4LDB4MDUsMHgyYywweDAwLDB4OGIsMHgwMCwweDIyLDB4ZDAsMHgwYiwweDkwLDB4ODIsMHgyYywweDAwLDB4ODcsMHg0MCwweDIyIH19LAotIHsxNiwgMHhmNzMwLCAwLCB7MHg2MCwweDhiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHhkOCwweDUwLDB4MjIsMHhkMCwweDBjLDB4YTAsMHgwMywweDZjLDB4MDAsMHhiMyB9fSwKLSB7MTYsIDB4Zjc0MCwgMCwgezB4YzgsMHgzZSwweGQwLDB4MGIsMHhiOCwweDAyLDB4MjUsMHgwOCwweDhhLDB4MjAsMHgyYSwweDgwLDB4OGIsMHhiOCwweDgyLDB4ZjIgfX0sCi0gezE2LCAweGY3NTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NjQsMHgwMCwweGEwLDB4YzAsMHgyNCwweGMwIH19LAotIHsxNiwgMHhmNzYwLCAwLCB7MHgwOSwweDM4LDB4MDIsMHgyYywweDAwLDB4ODMsMHgwMywweDIwLDB4MDAsMHgxMCwweDMwLDB4MjIsMHhjYywweDAwLDB4ODMsMHgwMCB9fSwKLSB7MTYsIDB4Zjc3MCwgMCwgezB4NjAsMHgwOCwweDBhLDB4MzAsMHg4MiwweDRjLDB4MDAsMHhiMSwweGMwLDB4MDAsMHhkMSwweDBiLDB4MzgsMHgwMiwweDg0LDB4ODAgfX0sCi0gezE2LCAweGY3ODAsIDAsIHsweDgyLDB4MDEsMHgyMCwweDgwLDB4MDMsMHgzOCwweDAyLDB4ZjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzkwLCAwLCB7MHgyMCwweDAxLDB4MTYsMHg0MCwweDg0LDB4OTgsMHgyNSwweGUwLDB4MGIsMHg3YSwweDAyLDB4ZmEsMHg0OCwweGEzLDB4MjAsMHg2MSB9fSwKLSB7MTYsIDB4ZjdhMCwgMCwgezB4MjQsMHgwYiwweDc5LDB4MDAsMHhjZSwweGMwLDB4OTMsMHhhNCwweDIxLDB4YTYsMHgwYiwweDc4LDB4MTIsMHhkZSwweDgwLDB4YjYgfX0sCi0gezE2LCAweGY3YjAsIDAsIHsweDgwLDB4MmQsMHgyNCwweDBiLDB4NGIsMHgwMiwweDFhLDB4NDAsMHg4NSwweDgxLDB4MjEsMHg2MCwweDBiLDB4NDgsMHgwMiwweGM4IH19LAotIHsxNiwgMHhmN2MwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhlMiwweGEwLDB4YjQsMHhmZSB9fSwKLSB7MTYsIDB4ZjdkMCwgMCwgezB4NGIsMHhiOCwweDBiLDB4MGUsMHgwMCwweGEzLDB4YjAsMHgyNCwweGE4LDB4MGUsMHgxYiwweDAyLDB4Y2UsMHhjMSwweGMzLDB4YzAgfX0sCi0gezE2LCAweGY3ZTAsIDAsIHsweDMwLDB4NjgsMHgyZSwweDNhLDB4NDcsMHg0ZSwweDgwLDB4ZjEsMHg4MCwweDMwLDB4ODAsMHgwZiwweDIyLDB4ODMsMHg4MCwweDAwIH19LAotIHsxNiwgMHhmN2YwLCAwLCB7MHhjMiwweDEwLDB4MzgsMHg4MCwweDRmLDB4MDAsMHgwNywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjgwMCwgMCwgezB4NDAsMHgwZCwweGJjLDB4MTAsMHhmZSwweDA0LDB4M2IsMHhjMSwweDA3LDB4ZjAsMHgwMywweDFjLDB4YzgsMHhkZiwweDJhLDB4MGIgfX0sCi0gezE2LCAweGY4MTAsIDAsIHsweGM0LDB4OGYsMHhkMSwweDQzLDB4ZjgsMHgwMiwweDdmLDB4MDAsMHgzZiwweGMwLDB4MGMsMHhmMSwweDBmLDB4M2MsMHgwMCwweGYyIH19LAotIHsxNiwgMHhmODIwLCAwLCB7MHgxMSwweDNmLDB4NDEsMHgxZiwweDUyLDB4MDMsMHhiYywweDBlLDB4ZWQsMHgxNCwweDNmLDB4NDAsMHgwZiwweGY4LDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4ZjgzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAwLDB4ZTksMHgwMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweGY4NDAsIDAsIHsweDBlLDB4YmUsMHg0YiwweDZmLDB4MDAsMHhjYiwweDgyLDB4N2EsMHhjMCwweDJjLDB4YjAsMHgwMywweDJjLDB4MDAsMHhjOSwweDAwIH19LAotIHsxNiwgMHhmODUwLCAwLCB7MHgzMiwweDAwLDB4MmMsMHgxMCwweDAzLDB4MmMsMHgwOCwweGMwLDB4MDAsMHgyNiwweDQwLDB4NmMsMHg5MCwweDEzLDB4MjQsMHgxMiB9fSwKLSB7MTYsIDB4Zjg2MCwgMCwgezB4YzgsMHgwMSwweDNlLDB4MDAsMHgwZiwweGI4LDB4MGIsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4NzAsIDAsIHsweDQ4LDB4MTEsMHg5NCwweDAwLDB4OGQsMHgwMCwweDIxLDB4ODAsMHgwYiwweDcwLDB4ODIsMHgzYywweDIwLDB4ODMsMHgzMiwweDI5IH19LAotIHsxNiwgMHhmODgwLCAwLCB7MHhjMCwweDA4LDB4ZjAsMHgyMCwweDE0LDB4MDAsMHg4MCwweDAwLDB4MjMsMHgwMCwweDA4LDB4NTAsMHgwNiwweDljLDB4MDQsMHhkNyB9fSwKLSB7MTYsIDB4Zjg5MCwgMCwgezB4MDIsMHgyOCwweDgwLDB4MDgsMHg2MCwweDAyLDB4MDgsMHgxMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg0MCwweDAyLDB4MTIgfX0sCi0gezE2LCAweGY4YTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweGE3LDB4ODAsMHgyMSwweGUwIH19LAotIHsxNiwgMHhmOGIwLCAwLCB7MHgwYiwweDVjLDB4MTIsMHgxZSwweDA0LDB4ODcsMHg4MiwweDBkLDB4YTAsMHgwOSwweDc4LDB4MTYsMHgwMiwweDAwLDB4YjQsMHg4MCB9fSwKLSB7MTYsIDB4ZjhjMCwgMCwgezB4MjUsMHhlMCwweDBiLDB4NzgsMHgwMiwweDllLDB4MDAsMHg4NCwweDgwLDB4MjEsMHgyMiwweDA4LDB4MDgsMHgwMiwweDEyLDB4MDEgfX0sCi0gezE2LCAweGY4ZDAsIDAsIHsweDg0LDB4YzAsMHgyZCwweDIwLDB4MGIsMHgwOCwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOGUwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4NDIsMHhhMCwweGQ4LDB4MGIsMHgzNCwweDgyLDB4MGMsMHgwMCwweGEzLDB4MDIsMHgyMCB9fSwKLSB7MTYsIDB4ZjhmMCwgMCwgezB4ZTAsMHgwOCwweGIwLDB4MDIsMHgwYywweDg4LDB4YjMsMHgyMSwweDI0LDB4ZDgsMHgwYiwweDNlLDB4MDIsMHg4YywweDAwLDB4OTMgfX0sCi0gezE2LCAweGY5MDAsIDAsIHsweDA4LDB4MjgsMHhjMCwweDA4LDB4MzgsMHgwMiwweDJjLDB4MDUsMHg4YiwweDAxLDB4MmMsMHhlMCwweDBiLDB4MzAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhmOTEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhlZSwweDAwLDB4MzMsMHg5MCB9fSwKLSB7MTYsIDB4ZjkyMCwgMCwgezB4MGYsMHhhMCwweDBiLDB4NjgsMHgwMCwweGNhLDB4MDEsMHg3ZiwweGE4LDB4MGMsMHhhYSwweDAzLDB4M2EsMHgxMiwweGZlLDB4ZTIgfX0sCi0gezE2LCAweGY5MzAsIDAsIHsweDM3LDB4YjAsMHgwZiwweGVlLDB4MDIsMHgxOCwweDAwLDB4Y2EsMHg0MCwweDM2LDB4YTAsMHgwOCwweGEwLDB4OGIsMHgyOCwweDAwIH19LAotIHsxNiwgMHhmOTQwLCAwLCB7MHhjYSwweDgxLDB4MmUsMHhhMCwweDBmLDB4ZTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjk1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDA4LDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGEyLDB4MDIsMHhkOCwweDQwLDB4M2UgfX0sCi0gezE2LCAweGY5NjAsIDAsIHsweDA4LDB4MGYsMHg4MCwweDEzLDB4ZTAsMHg0MCwweDQ4LDB4NDAsMHhiOCwweDA0LDB4MDgsMHg4NCwweDAzLDB4NjEsMHgwMCwweGZjIH19LAotIHsxNiwgMHhmOTcwLCAwLCB7MHgwMCwweDNmLDB4MDAsMHg0ZiwweGMwLDB4MDMsMHhmMSwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDQsMHgwZiwweGMwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4Zjk4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAwLDB4ZjksMHgwMCwweDMwLDB4NTAgfX0sCi0gezE2LCAweGY5OTAsIDAsIHsweDRjLDB4YjksMHgwMywweDZjLDB4MTgsMHhmOSwweDAwLDB4MzYsMHg0MCwweDBlLDB4OWMsMHgyMywweGE0LDB4MDIsMHg0MSwweDAwIH19LAotIHsxNiwgMHhmOWEwLCAwLCB7MHhiMiwweDQ0LDB4MGUsMHg5YSwweDAzLDB4YTYsMHg4MCwweGM5LDB4MDAsMHgzYSwweDYwLDB4MGEsMHg5MCwweDAzLDB4YTQsMHg4MCB9fSwKLSB7MTYsIDB4ZjliMCwgMCwgezB4YzksMHgwMCwweDM0LDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5YzAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHg0MCwweDIyLDB4NzgsMHgwOCwweDk0LDB4MDIsMHhlNCwweDEwLDB4YjksMHgwMCwweDNjIH19LAotIHsxNiwgMHhmOWQwLCAwLCB7MHg2MiwweDE4LDB4OTQsMHg4MiwweGE0LDB4MDAsMHg4OSwweGM4LDB4MjIsMHg3MCwweDQ4LDB4MWUsMHgwMSwweDY3LDB4ODAsMHhkMSB9fSwKLSB7MTYsIDB4ZjllMCwgMCwgezB4MDAsMHhiYywweDQyLDB4MDgsMHgxMCwweDAyLDB4MjUsMHgyMCwweDg5LDB4MDIsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGY5ZjAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGIxLDB4MjgsMHgyMiwweDQwIH19LAotIHsxNiwgMHhmYTAwLCAwLCB7MHgwOCwweGIwLDB4ODIsMHg2NCwweDA0LDB4MzksMHg0MSwweDJlLDB4NDgsMHgwYSwweDkwLDB4MDIsMHgwNCwweDE4LDB4YTksMHgyMCB9fSwKLSB7MTYsIDB4ZmExMCwgMCwgezB4MjIsMHg0MiwweDRhLDB4OTAsMHgwMiwweDJjLDB4MDQsMHg4OSwweDA0LDB4MmIsMHg0OCwweDAyLDB4ZDAsMHgwMiwweGI0LDB4MGEgfX0sCi0gezE2LCAweGZhMjAsIDAsIHsweDhkLDB4ODAsMHgyMywweGMwLDB4NDgsMHhkMCwweDAyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjAsMHhhMCwweDQ4LDB4MjgsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MjQsMHgyYSB9fSwKLSB7MTYsIDB4ZmE0MCwgMCwgezB4NDAsMHgwOCwweDEyLDB4NDIsMHg4NSwweDgwLDB4YTEsMHgyMCwweGEwLDB4NDgsMHgwOCwweDkwLDB4MDIsMHg0NCwweDAwLDB4OTUgfX0sCi0gezE2LCAweGZhNTAsIDAsIHsweDJjLDB4MmQsMHg1YSwweDBhLDB4NzIsMHg4MiwweDE0LDB4YTAsMHg4NSwweGE4LDB4MjEsMHg0YSwweDA4LDB4NTIsMHg4MiwweGMyIH19LAotIHsxNiwgMHhmYTYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDQxLDB4NDAsMHhmOCwweDUwLDB4MzIsMHgwMCB9fSwKLSB7MTYsIDB4ZmE3MCwgMCwgezB4OGMsMHgwNSwweDAzLDB4NjEsMHg0MCwweGY4LDB4NTEsMHgyZSwweDAwLDB4MGEsMHg4NSwweDAyLDB4MjAsMHgwMCwweGU4LDB4NTAgfX0sCi0gezE2LCAweGZhODAsIDAsIHsweDMyLDB4MTQsMHgwNiwweDg1LDB4MTcsMHhhMCwweDAwLDB4YzgsMHgyMCwweDNhLDB4MDgsMHgwZSwweDgyLDB4MDMsMHhhMCwweDgwIH19LAotIHsxNiwgMHhmYTkwLCAwLCB7MHhjOCwweDIwLDB4MzIsMHgwOCwweDJjLDB4YzIsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmFhMCwgMCwgezB4OTgsMHgxOSwweGY0LDB4NDAsMHhmZiwweDEwLDB4M2YsMHg0NCwweDBiLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmOSwweDEwLDB4M2QgfX0sCi0gezE2LCAweGZhYjAsIDAsIHsweDQwLDB4MGYsMHhkMSwweDAzLDB4ZjQsMHg1OCwweDlkLDB4MTAsMHgzZiwweDQ0LDB4NGYsMHhkMCwweDAzLDB4ZDUsMHgwMCwweGY5IH19LAotIHsxNiwgMHhmYWMwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHg4ZCwweDkwLDB4MDMsMHhlNCwweGI4LDB4ZjksMHgyOCwweGJhLDB4NmEsMHgwZiwweDkwLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4ZmFkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhlNywweDAwLDB4ZmQsMHg4OCwweDNlLDB4NjAgfX0sCi0gezE2LCAweGZhZTAsIDAsIHsweDhmLDB4ZDAsMHgwMywweDI0LDB4MDEsMHhkZCwweDgwLDB4NzMsMHg0MCwweDBmLDB4ZDgsMHgwMywweGE2LDB4MDQsMHhjZCwweGEyIH19LAotIHsxNiwgMHhmYWYwLCAwLCB7MHgzMywweDc4LDB4MWMsMHhkMCwweDAzLDB4MzQsMHgwMSwweGY1LDB4ODgsMHgzYiwweDY4LDB4MGMsMHhkYSwweDQ3LDB4MzcsMHg4MCB9fSwKLSB7MTYsIDB4ZmIwMCwgMCwgezB4Y2QsMHg4OCwweDMyLDB4NjIsMHgwYywweGRhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiMTAsIDAsIHsweDM4LDB4MTAsMHhlMywweDgwLDB4YjgsMHg4MCwweDJlLDB4MTQsMHgwYiwweDBhLDB4ODIsMHgyMiwweDgwLDB4YjgsMHhmOCwweGEyIH19LAotIHsxNiwgMHhmYjIwLCAwLCB7MHgwMCwweDBiLDB4OGYsMHhhMywweDgzLDB4ZTAsMHg4OCwweGViLDB4MjIsMHhhOSwweDA4LDB4ODgsMHgxMiwweGEwLDB4MDUsMHhiOCB9fSwKLSB7MTYsIDB4ZmIzMCwgMCwgezB4MDAsMHgyYSwweGFhLDB4ODgsMHg4MCwweDEzLDB4NjIsMHg4MiwweDg4LDB4ODAsMHgyMiwweDI4LDB4ODgsMHhhNCwweDAyLDB4MGUgfX0sCi0gezE2LCAweGZiNDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHgwMCwweGIxLDB4MGEsMHgyYywweDQxIH19LAotIHsxNiwgMHhmYjUwLCAwLCB7MHgwYiwweDEwLDB4MDYsMHgwNCwweDIwLDB4YTEsMHgwMCwweDAwLDB4NDAsMHg4YiwweDEwLDB4NDYsMHhjNCwweDAxLDB4OTEsMHgxMSB9fSwKLSB7MTYsIDB4ZmI2MCwgMCwgezB4MjQsMHg1OCwweDY4LDB4OTAsMHhjMiwweDA0LDB4MDAsMHhiMSwweDAwLDB4YTgsMHg1MCwweDA5LDB4MTQsMHgwYSwweDA1LDB4OTUgfX0sCi0gezE2LCAweGZiNzAsIDAsIHsweGExLDB4MDgsMHhhMCwweDQyLDB4MjgsMHgxMSwweDBhLDB4MDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjgwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgxOCwweGI5LDB4MjAsMHgyZSwweDUwLDB4MGIsMHg5MCwweDA2LDB4MjQsMHgwOSwweGI5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZmI5MCwgMCwgezB4NDAsMHg4YiwweDkxLDB4MDIsMHg4NCwweDAwLDB4OTksMHg2NCwweDI0LDB4NDAsMHg1OCwweDkwLDB4MDIsMHhhNCwweDIwLDB4YmIgfX0sCi0gezE2LCAweGZiYTAsIDAsIHsweDAwLDB4MmEsMHg0MCwweDA5LDB4YjAsMHgwMiwweDA1LDB4MDEsMHhhOSwweDAwLDB4MjIsMHg0MCwweDg4LDB4OTIsMHgwMiwweDA2IH19LAotIHsxNiwgMHhmYmIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU2LDB4MDAsMHhmOSwweDQwLDB4M2UsMHg0MCB9fSwKLSB7MTYsIDB4ZmJjMCwgMCwgezB4NGYsMHg5OCwweDBiLDB4MjQsMHg4MCwweGQ5LDB4MDAsMHgyMiwweDcyLDB4MGIsMHg5OCwweDAzLDB4ZTQsMHg4NCwweGQ5LDB4MDAgfX0sCi0gezE2LCAweGZiZDAsIDAsIHsweGI2LDB4NzAsMHgwOCwweDk5LDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDJhLDB4NDAsMHgwZCwweDk0LDB4YzIsMHgyNSwweDAwIH19LAotIHsxNiwgMHhmYmUwLCAwLCB7MHhhOSwweDAwLDB4MjIsMHg0MCwweDBjLDB4OTQsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmJmMCwgMCwgezB4MjgsMHgwMSwweGE2LDB4ODAsMHhmOSwweDA4LDB4M2UsMHhjMCwweDBmLDB4OTEsMHg0MywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGZjMDAsIDAsIHsweDUwLDB4MGYsMHg5OCwweDAzLDB4YTUsMHgwMCwweGU5LDB4MDAsMHgzYSwweDY0LDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhmYzEwLCAwLCB7MHgwMCwweDNjLDB4NDAsMHg2ZSwweDkwLDB4MDMsMHhlNCwweDIwLDB4ZDksMHgwMCwweDNjLDB4NDAsMHgwZiwweDkwLDB4ODIsMHhjYSB9fSwKLSB7MTYsIDB4ZmMyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGZjMzAsIDAsIHsweDRmLDB4ODQsMHgwYiwweDIwLDB4MDAsMHhmOCwweDAwLDB4MzYsMHgwMSwweDBlLDB4ODAsMHgwMywweGUwLDB4MDAsMHhjOCwweDQwIH19LAotIHsxNiwgMHhmYzQwLCAwLCB7MHgzMiwweDEwLDB4MmQsMHg4MCwweDAzLDB4ZTAsMHg1NCwweGM4LDB4MDAsMHgzNiwweDEwLDB4MGYsMHgwNCwweDgzLDB4ZTAsMHg1MCB9fSwKLSB7MTYsIDB4ZmM1MCwgMCwgezB4ZDgsMHgwNCwweDEyLDB4MDAsMHgwYywweDAwLDB4MGIsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjNjAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4OGUsMHg0MiwweDJlLDB4YTIsMHg4YiwweGVhLDB4MDIsMHgyOCwweDA4LDB4YmUsMHg4OSwweDM3IH19LAotIHsxNiwgMHhmYzcwLCAwLCB7MHg4NCwweDQ4LDB4ZTAsMHgxMiwweDI4LDB4MDIsMHg4ZSwweGMwLDB4MjMsMHhiMCwweDRkLDB4NjAsMHg2MiwweGY4LDB4MDAsMHg4NiB9fSwKLSB7MTYsIDB4ZmM4MCwgMCwgezB4MDAsMHgyMywweDgwLDB4MGIsMHhlMCwweDAyLDB4ZjgsMHgwMCwweDBlLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhlNCwweDAyLDB4MGEgfX0sCi0gezE2LCAweGZjOTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGEzLDB4MDAsMHgyYywweDgwIH19LAotIHsxNiwgMHhmY2EwLCAwLCB7MHgxYiwweGIwLDB4OWEsMHg0YywweDEwLDB4OWIsMHg4MCwweDI0LDB4YzAsMHgwYSwweDMwLDB4MDAsMHgwYywweDA0LDB4OWIsMHgyMCB9fSwKLSB7MTYsIDB4ZmNiMCwgMCwgezB4MjAsMHhkNiwweDA4LDB4MzAsMHgwMiwweDhlLDB4MDgsMHhhMywweDA0LDB4MjQsMHhjMCwweDE5LDB4MzQsMHgwMiwweGM3LDB4MDcgfX0sCi0gezE2LCAweGZjYzAsIDAsIHsweGFhLDB4YTQsMHhhMCwweGMwLDB4NDgsMHgzNCwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmY2QwLCAwLCB7MHhhMCwweDAxLDB4MGUsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg0MCwweDAyLDB4NWMsMHg0MCwweGIzLDB4MTQsMHgyNSB9fSwKLSB7MTYsIDB4ZmNlMCwgMCwgezB4ZTAsMHgwOCwweDdhLDB4MDIsMHg5ZSwweGMwLDB4OTIsMHg0MCwweGEwLDB4MDAsMHg0OSwweDYwLDB4MDIsMHhjZSwweDAyLDB4OGUgfX0sCi0gezE2LCAweGZjZjAsIDAsIHsweDAxLDB4MjEsMHhjMCwweDhiLDB4NTQsMHgwMiwweGM0LDB4MDgsMHg4NiwweDQwLDB4MjEsMHhjOCwweDg4LDB4MTAsMHgwMiwweDI4IH19LAotIHsxNiwgMHhmZDAwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4YzAsMHhlNCwweDgwLDB4M2QsMHhlMiB9fSwKLSB7MTYsIDB4ZmQxMCwgMCwgezB4MGYsMHg1OCwweDAzLDB4NWUsMHg5MCwweGI2LDB4YTIsMHgzNSwweGUwLDB4MGUsMHg3YywweDIzLDB4MWMsMHgwMCwweGQ2LDB4ODAgfX0sCi0gezE2LCAweGZkMjAsIDAsIHsweDMxLDB4ZTAsMHg4NCwweDc4LDB4MDMsMHhkZSwweDAwLDB4YzcsMHg4MCwweDM1LDB4ZTAsMHgwZiwweDY4LDB4MDMsMHhkZSwweDAwIH19LAotIHsxNiwgMHhmZDMwLCAwLCB7MHhlMywweDgwLDB4MzMsMHhlOCwweDJjLDB4NzgsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmQ0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4OTAsMHhmYSwweDAwLDB4N2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGFjLDB4MDEsMHhmYiwweDAwLDB4M2MgfX0sCi0gezE2LCAweGZkNTAsIDAsIHsweDQxLDB4MGYsMHgzMCwweDBiLDB4MmQsMHgwNCwweGViLDB4MDEsMHgzZSwweGMwLDB4MGUsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZhIH19LAotIHsxNiwgMHhmZDYwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhlYywweDAwLDB4ZTksMHg2MCwweDNlLDB4ZTQsMHgwZiwweDkwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ZmQ3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDIwLDB4ZmYsMHg5MCwweDNlLDB4MjAgfX0sCi0gezE2LCAweGZkODAsIDAsIHsweDBjLDB4YTksMHgwNywweDJlLDB4NDQsMHhjOSwweDkxLDB4MzAsMHhhMCwweDBjLDB4YjgsMHg2MywweDJmLDB4NDQsMHhjYiwweGExIH19LAotIHsxNiwgMHhmZDkwLCAwLCB7MHgzNiwweDIwLDB4OGMsMHhmOCwweDAzLDB4MzYsMHgwMCwweGNmLDB4ODIsMHgzMywweGUwLDB4MGMsMHhmOCwweDIzLDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4ZmRhMCwgMCwgezB4Y2UsMHhjMCwweDNiLDB4ZTAsMHgwYywweDY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkYjAsIDAsIHsweGE4LDB4MTEsMHg5YywweDg0LDB4YjMsMHg1NCwweDJjLDB4ZjQsMHgyOCwweGJhLDB4OGEsMHgzZSwweDQwLDB4ODEsMHhhMCwweDI5IH19LAotIHsxNiwgMHhmZGMwLCAwLCB7MHhiMCwweDBmLDB4NzgsMHg0MiwweGFlLDB4MDAsMHg4MywweDkwLDB4MzMsMHhlOCwweDBkLDB4ZTEsMHgwMCwweDg1LDB4NDAsMHg4MiB9fSwKLSB7MTYsIDB4ZmRkMCwgMCwgezB4MjQsMHgyMywweGM2LDB4MGQsMHg3MSwweDAzLDB4NWUsMHhlMCwweDg3LDB4MDAsMHgyYiwweGMxLDB4MGQsMHg0NCwweDAyLDB4MmEgfX0sCi0gezE2LCAweGZkZTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwOCwweDM1LDB4MTQsMHg2ZCwweGMwIH19LAotIHsxNiwgMHhmZGYwLCAwLCB7MHg4OCwweDcyLDB4MzIsMHg1YywweDgwLDB4ODQsMHgzMCwweDJiLDB4ODgsMHgwYSwweDcwLDB4NDIsMHg1YywweGE4LDB4OTEsMHgwOCB9fSwKLSB7MTYsIDB4ZmUwMCwgMCwgezB4MjUsMHhjOCwweDA5LDB4NzAsMHgwMiwweDRjLDB4MjIsMHg4MywweDBhLDB4NjEsMHhjMCwweDA5LDB4MjAsMHgwMiwweDA0LDB4MDAgfX0sCi0gezE2LCAweGZlMTAsIDAsIHsweDg3LDB4MDAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZTIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgxMCwweGIzLDB4ODUsMHg2YywweGRjLDB4MDgsMHgzNCwweDAyLDB4NGQsMHgyMSwweDgxLDB4MDAsMHgyOCB9fSwKLSB7MTYsIDB4ZmUzMCwgMCwgezB4MDIsMHg0YSwweDMxLDB4MTIsMHhlZiwweDBjLDB4OTEsMHhjMiwweDIwLDB4ZjAsMHgwOCwweDMwLDB4NDIsMHg4ZSwweDAwLDB4ODIgfX0sCi0gezE2LCAweGZlNDAsIDAsIHsweDQwLDB4MjAsMHhjOCwweDE5LDB4MjgsMHgwMiwweDIyLDB4ODEsMHg4MywweGMwLDB4MjgsMHhkNCwweDA5LDB4MDAsMHgwYSwweDA4IH19LAotIHsxNiwgMHhmZTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhmYiwweGEwLDB4M2UsMHhjMCB9fSwKLSB7MTYsIDB4ZmU2MCwgMCwgezB4OGMsMHgwNCwweDEyLDB4N2QsMHgxMCwweGNmLDB4MDIsMHgzYSwweDUwLDB4MDgsMHhjMCwweDQyLDB4N2QsMHg1MiwweDU4LDB4MDEgfX0sCi0gezE2LCAweGZlNzAsIDAsIHsweDM2LDB4MjIsMHg2OSwweGQwLDB4MTMsMHgyYSwweDAwLDB4ODgsMHg4MiwweDMyLDB4ZjAsMHgwOSwweGI4LDB4ODIsMHgyZiwweDAwIH19LAotIHsxNiwgMHhmZTgwLCAwLCB7MHhjOSwweGM4LDB4MjMsMHhjMCwweDBjLDB4OGEsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmU5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhiOSwweDQwLDB4M2MsMHg1MCwweDRmLDB4ODAsMHgyMywweGFjLDB4MTIsMHhmYiwweDAwLDB4MmEgfX0sCi0gezE2LCAweGZlYTAsIDAsIHsweGMwLDB4NmQsMHg4MCwweDEzLDB4YWMsMHgwMCwweGU4LDB4MDQsMHhiYSwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZTgsMHgwMCwweGYzIH19LAotIHsxNiwgMHhmZWIwLCAwLCB7MHgwOCwweDNjLDB4ODAsMHgwZiwweDkwLDB4ODMsMHhlYywweDA0LDB4ZjksMHg2MCwweDJjLDB4YzIsMHgwZiwweDgwLDB4ODMsMHhlMCB9fSwKLSB7MTYsIDB4ZmVjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4ZWMsMHgyYywweDNmLDB4ZjAgfX0sCi0gezE2LCAweGZlZDAsIDAsIHsweDhjLDB4ZmEsMHg4YiwweGJjLDB4MDAsMHhmZSwweDAwLDB4M2YsMHgwMCwweDBmLDB4NzksMHgwMywweDNjLDB4MDAsMHhjZSwweDA4IH19LAotIHsxNiwgMHhmZWUwLCAwLCB7MHgwYiwweGMyLDB4MGMsMHhmMCwweDAzLDB4YmMsMHgwMCwweGZjLDB4MDAsMHgzMywweDQwLDB4OGMsMHg3YSwweDAzLDB4M2EsMHgwMCB9fSwKLSB7MTYsIDB4ZmVmMCwgMCwgezB4YzUsMHgwMCwweDMzLDB4YzAsMHg0YywweGM4LDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZmMDAsIDAsIHsweDgxLDB4MDQsMHg2YywweDAwLDB4ODgsMHhjMCwweDJlLDB4ZTAsMHgwOCwweDk0LDB4MDIsMHgyYywweDAwLDB4YmIsMHg4MCwweDY2IH19LAotIHsxNiwgMHhmZjEwLCAwLCB7MHgzMCwweDE2LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhkYSwweDRjLDB4MjIsMHhmMCwweDA4LDB4ZjAsMHgwMywweGVjLDB4MDAsMHhlYiB9fSwKLSB7MTYsIDB4ZmYyMCwgMCwgezB4YzAsMHgyMiwweDY4LDB4MDAsMHg5NCwweDAyLDB4MmMsMHgwMiwweGE5LDB4ODAsMHgyMiwweGMwLDB4MDgsMHgwYywweDAyLDB4YTAgfX0sCi0gezE2LCAweGZmMzAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweGFiLDB4MDQsMHgyZSwweGMwIH19LAotIHsxNiwgMHhmZjQwLCAwLCB7MHgwOCwweGE0LDB4MDYsMHgyYywweDA0LDB4YWIsMHgxMCwweDJlLDB4NjAsMHg0MywweDgwLDB4ODIsMHg2YywweDAxLDB4ODEsMHg4MCB9fSwKLSB7MTYsIDB4ZmY1MCwgMCwgezB4MjgsMHgwYSwweDA4LDB4OTEsMHgwMCwweGUwLDB4MDAsMHhiOCwweDgwLDB4MDIsMHhlMCwweDA4LDB4ODAsMHgwMiwweDJkLDB4ODAgfX0sCi0gezE2LCAweGZmNjAsIDAsIHsweDg4LDB4YzAsMHgyMiwweGMwLDB4MDgsMHg4MiwweDAyLDB4MjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZjcwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweDgwLDB4NDQsMHgyYywweGM4LDB4MjgsMHhhMCwweDIyLDB4MGMsMHgwNCwweGIzLDB4MjYsMHgyYyB9fSwKLSB7MTYsIDB4ZmY4MCwgMCwgezB4YzgsMHg4OCwweDAxLDB4MDYsMHgwYywweGUwLDB4OTEsMHgyMCwweDIwLDB4MGMsMHgzOCwweDA0LDB4MjIsMHhjMCwweDQ4LDB4YTMgfX0sCi0gezE2LCAweGZmOTAsIDAsIHsweDQyLDB4YTAsMHg4MSwweDA4LDB4MDAsMHgwMiwweDBjLDB4ODAsMHg4MSwweDAwLDB4MjAsMHhjMCwweDI4LDB4MDAsMHgwMiwweDgyIH19LAotIHsxNiwgMHhmZmEwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDAsMHhhOSwweDQwLDB4M2UsMHg0NCB9fSwKLSB7MTYsIDB4ZmZiMCwgMCwgezB4MDgsMHhiMSwweDAzLDB4MmMsMHg0MCwweGVhLDB4NDksMHgyZSwweDBkLDB4MGIsMHhiNiwweDEzLDB4N2QsMHg4MCwweGM5LDB4NDAgfX0sCi0gezE2LCAweGZmYzAsIDAsIHsweGJhLDB4ZDAsMHgwYywweGI0LDB4MDMsMHhhYywweDAwLDB4ZjgsMHgwMCwweDMyLDB4NDAsMHgwYywweDgwLDB4MGIsMHgyMCwweDAwIH19LAotIHsxNiwgMHhmZmQwLCAwLCB7MHhjNSwweDAwLDB4YjIsMHhjMCwweDBjLDB4ODAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmZlMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDQsMHhmYywweDAwLDB4M2QsMHhjNSwweDBiLDB4ZjEsMHgwMCwweGZjLDB4ZDAsMHg3NywweDI5LDB4MzcgfX0sCi0gezE2LCAweGZmZjAsIDAsIHsweDBjLDB4OGUsMHg3NCwweDAzLDB4ZmMsMHgwOCwweGZkLDB4NjksMHgzZiwweGQ4LDB4MGYsMHhmMCwweDAzLDB4YmMsMHgwMCwweGVmIH19LAotIHsxNiwgMHg4MDEwLCAwLCB7MHgwMCwweDNmLDB4NDAsMHgwNywweGMwLDB4MDMsMHhmMCwweDQwLDB4ZmQsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4ODAyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MGQsMHhmYywweGMwLDB4ZGMsMHg4MCwweDNmLDB4YzggfX0sCi0gezE2LCAweDgwMzAsIDAsIHsweDBmLDB4NDgsMHgwMywweDdjLDB4MjAsMHhmZiwweDY4LDB4MzcsMHhlMCwweDBlLDB4ZjEsMHgwMywweDljLDB4MDAsMHhiZiwweDIwIH19LAotIHsxNiwgMHg4MDQwLCAwLCB7MHgzNywweGUwLDB4MGMsMHhjOCwweDEzLDB4M2MsMHg0MCwweGVkLDB4NjAsMHhiYiwweGU0LDB4MmMsMHg0MywweDRiLDB4NzAsMHhhMCB9fSwKLSB7MTYsIDB4ODA1MCwgMCwgezB4Y2MsMHgyYywweDNmLDB4MDksMHgwZiwweGQ4LDB4NDMsMHg3MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwNjAsIDAsIHsweDgwLDB4MDAsMHhlZCwweGMwLDB4YjgsMHg4MCwweDJmLDB4ZjQsMHgwZiwweDk4LDB4MDIsMHgzZiwweDAwLDB4YmYsMHg0MiwweDIyIH19LAotIHsxNiwgMHg4MDcwLCAwLCB7MHhjYSwweDA4LDB4ZjQsMHgwMiwweDNlLDB4MDAsMHhiZiwweGQwLDB4MjIsMHg2MCwweDI4LDB4ODgsMHgwYSwweDNkLDB4ODAsMHg4ZCB9fSwKLSB7MTYsIDB4ODA4MCwgMCwgezB4NDAsMHgyMiwweGM4LDB4MDgsMHg4MSwweDAyLDB4MjEsMHg4MCwweGRiLDB4YzAsMHgyZSwweGE1LDB4MGIsMHg5OCwweDQyLDB4MjAgfX0sCi0gezE2LCAweDgwOTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgxMCwweGIwLDB4MDAsMHgyYywweGMwIH19LAotIHsxNiwgMHg4MGEwLCAwLCB7MHgwYiwweDIwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgyMCwweDI2LDB4YzAsMHg4YSwweDM2LDB4MTIsMHg4YywweDQxLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4ODBiMCwgMCwgezB4MmUsMHg0MCwweDA4LDB4MDAsMHgwMiwweDBkLDB4ODEsMHhhMSwweDMwLDB4MjIsMHhjOCwweDg5LDB4YTIsMHg0MiwweDA4LDB4MjAgfX0sCi0gezE2LCAweDgwYzAsIDAsIHsweGIwLDB4MDAsMHgyYywweDQwLDB4MGIsMHg5MCwweDI2LDB4NjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MGQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwMCwweGI4LDB4NTAsMHgyZSwweGMwLDB4MGEsMHg5MCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ODBlMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4NjIsMHgyYywweDEwLDB4YmIsMHgwNCwweDJhLDB4ZjAsMHg0YSwweDg4LDB4MDIsMHgwYywweDAwLDB4ODEgfX0sCi0gezE2LCAweDgwZjAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDA5LDB4YjgsMHg4MCwweDI2LDB4MDAsMHhiOCwweDgwLDB4MmUsMHgyMSwweDBiLDB4OTAsMHgwMiwweDMwIH19LAotIHsxNiwgMHg4MTAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxNSwweGVjLDB4MDAsMHhkOCwweGMwLDB4M2UsMHhjMCB9fSwKLSB7MTYsIDB4ODExMCwgMCwgezB4MGIsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzNiwweDgwLDB4MGUsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAgfX0sCi0gezE2LCAweDgxMjAsIDAsIHsweDNjLDB4ZTAsMHgwYywweDBjLDB4MDMsMHgyYywweDAwLDB4ZTksMHgwMCwweDEwLDB4YzAsMHgwYywweDhjLDB4MDMsMHgwNiwweDAwIH19LAotIHsxNiwgMHg4MTMwLCAwLCB7MHhmOCwweGNkLDB4M2UsMHgyMiwweDBmLDB4MTgsMHgwMywweDQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODE0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHhjMCwweDBmLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhmNywweDAyLDB4M2YgfX0sCi0gezE2LCAweDgxNTAsIDAsIHsweGU0LDB4MGYsMHg3MCwweDAzLDB4N2MsMHgwNCwweGI3LDB4MDAsMHgzNywweDQwLDB4MGQsMHhjMCwweDAzLDB4ZmMsMHgwMCwweGZkIH19LAotIHsxNiwgMHg4MTYwLCAwLCB7MHgwMCwweDM3LDB4ZDAsMHgwZSwweGMwLDB4NDMsMHhmNCwweDAwLDB4ZGYsMHgwMCwweDNmLDB4ODAsMHg4ZiwweGRhLDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4ODE3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZjgsMHgxMCwweDNhLDB4YzAgfX0sCi0gezE2LCAweDgxODAsIDAsIHsweDZkLDB4YTYsMHgxMywweGVjLDB4MDAsMHhjYiwweDAwLDB4M2EsMHhkMCwweDBmLDB4YjAsMHgwMywweDJjLDB4MTAsMHhkYiwweDEwIH19LAotIHsxNiwgMHg4MTkwLCAwLCB7MHgzNiwweGQ4LDB4MGQsMHg4NCwweDAzLDB4ZWMsMHgwNiwweGM5LDB4MDgsMHgzYSwweGMwLDB4MGUsMHg4NiwweDAzLDB4YTgsMHg2MCB9fSwKLSB7MTYsIDB4ODFhMCwgMCwgezB4ZjgsMHgyMCwweDNhLDB4NDAsMHgwYywweDkwLDB4MDMsMHg1NCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxYjAsIDAsIHsweDk4LDB4MDUsMHgzYywweDAwLDB4YmIsMHg0MCwweDIzLDB4ZDAsMHgwOCwweDMwLDB4MDIsMHgzZSwweDEwLDB4YWYsMHgwMCwweDIwIH19LAotIHsxNiwgMHg4MWMwLCAwLCB7MHhjMCwweDBiLDB4ZjAsMHgwMiwweDNjLDB4MDAsMHg4ZiwweDUwLDB4MmUsMHhjOCwweDA2LDB4OGEsMHgwMiwweGZjLDB4MDAsMHg4ZCB9fSwKLSB7MTYsIDB4ODFkMCwgMCwgezB4MjQsMHg4MiwweGQ2LDB4MDgsMHgzMiwweDAyLDB4MmQsMHgwOCwweDNhLDB4NDAsMHgyMiwweDgwLDB4MGQsMHg5MCwweDAzLDB4NjIgfX0sCi0gezE2LCAweDgxZTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlOCwweDA1LDB4NGMsMHgwMCwweGIwLDB4MjAsMHgyOCwweGMyIH19LAotIHsxNiwgMHg4MWYwLCAwLCB7MHgwOCwweDA0LDB4MDIsMHg4YywweDAwLDB4MTMsMHgwMiwweDI4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDMwLDB4OTMsMHg4MCB9fSwKLSB7MTYsIDB4ODIwMCwgMCwgezB4MjQsMHhkMCwweDA5LDB4MjAsMHgwMiwweGNjLDB4MDAsMHg5MSwweDQwLDB4MDgsMHhjMCwweDJhLDB4MTQsMHgwMiwweDgxLDB4MDAgfX0sCi0gezE2LCAweDgyMTAsIDAsIHsweDkwLDB4MDAsMHg2OCwweDAwLDB4MDgsMHgxOCwweDAyLDB4M2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MjIwLCAwLCB7MHg3MCwweDAxLDB4MWUsMHgwMCwweGI0LDB4YTAsMHgyMSwweGUwLDB4MDgsMHhjOCwweDEyLDB4OWUsMHgwMCwweGIzLDB4ODIsMHgyMSB9fSwKLSB7MTYsIDB4ODIzMCwgMCwgezB4ZTAsMHgwYiwweDdhLDB4MGEsMHgxZSwweDAwLDB4OTcsMHg4MCwweDJkLDB4ZTEsMHgwYSwweDQ4LDB4MDIsMHhjZSwweDQwLDB4OTUgfX0sCi0gezE2LCAweDgyNDAsIDAsIHsweDkwLDB4MjksMHhlNCwweDA4LDB4NTgsMHgwMiwweDlhLDB4MDAsMHhiNywweDg4LDB4MjEsMHhlMCwweDA5LDB4NTgsMHgwMiwweDVjIH19LAotIHsxNiwgMHg4MjUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NGEsMHgwMCwweDBjLDB4MDAsMHhmMCwweDgwLDB4MzgsMHhjNCB9fSwKLSB7MTYsIDB4ODI2MCwgMCwgezB4MGMsMHgyNSwweDAzLDB4OGMsMHgyMCwweDkzLDB4MDAsMHgzOCwweGM0LDB4MGYsMHhiMCwweDAzLDB4MGMsMHg4MCwweGQzLDB4MDAgfX0sCi0gezE2LCAweDgyNzAsIDAsIHsweDM0LDB4YzAsMHgwZCwweDA0LDB4MTMsMHhjYywweDA4LDB4OTksMHgwMCwweDJhLDB4YzAsMHgwZSwweDIxLDB4MDMsMHg4OCwweDA0IH19LAotIHsxNiwgMHg4MjgwLCAwLCB7MHhmMywweDAwLDB4MzgsMHhjMCwweDBjLDB4MTEsMHg4MywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODI5MCwgMCwgezB4NDIsMHgxNSwweGJjLDB4MDAsMHhmNCwweDAwLDB4M2YsMHhjMywweDBlLDB4YzAsMHgwMywweDFjLDB4MDAsMHhhZiwweDRhLDB4N2YgfX0sCi0gezE2LCAweDgyYTAsIDAsIHsweGM0LDB4MGYsMHhiMiwweDAzLDB4ZmQsMHgwMSwweGVmLDB4MTAsMHgzZiwweDg0LDB4MGYsMHhjMCwweDAzLDB4ZmMsMHgwMCwweGU5IH19LAotIHsxNiwgMHg4MmIwLCAwLCB7MHgwMCwweDM3LDB4YzIsMHgwZSwweGYxLDB4NDcsMHg3YywweDAwLDB4ZjcsMHgwMCwweDNkLDB4YzAsMHgwZiwweDUwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4ODJjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGFhLDB4MTUsMHhlYywweDA4LDB4ZjgsMHgwMCwweDNlLDB4Y2EgfX0sCi0gezE2LCAweDgyZDAsIDAsIHsweDBmLDB4OTAsMHgwMywweGVmLDB4MjEsMHhmYiwweDgwLDB4N2EsMHg0MCwweDhmLDB4YjIsMHhhMSwweDJmLDB4MDAsMHhjYiwweDYwIH19LAotIHsxNiwgMHg4MmUwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZWQsMHhhMCwweGU5LDB4MzAsMHgzMiwweGMwLDB4MmQsMHhiMCwweDAzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4ODJmMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgzMDAsIDAsIHsweGM4LDB4OTEsMHg5ZCwweDAwLDB4YjQsMHgwMSwweDJkLDB4YzgsMHgwYiwweDcwLDB4MDIsMHhjYywweDgwLDB4OGYsMHgyMCwweDIxIH19LAotIHsxNiwgMHg4MzEwLCAwLCB7MHhjMCwweDhiLDB4NzYsMHgwMywweDVkLDB4MDAsMHg4NywweDBhLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgyMiwweGZkLDB4MDAsMHg4ZCB9fSwKLSB7MTYsIDB4ODMyMCwgMCwgezB4MTAsMHgyMywweGM4LDB4MDgsMHg1MCwweDEyLDB4ZDQsMHgwMCwweGI3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZjIgfX0sCi0gezE2LCAweDgzMzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDAwLDB4OWUsMHgwMCwweGI0LDB4ODAsMHgyZCwweGUwIH19LAotIHsxNiwgMHg4MzQwLCAwLCB7MHgwYiwweDdjLDB4MDIsMHhkZSwweDQwLDB4YTcsMHg4MiwweDJkLDB4ZTAsMHgwYiwweDNhLDB4MDIsMHg4ZSwweDAwLDB4ODcsMHg5MCB9fSwKLSB7MTYsIDB4ODM1MCwgMCwgezB4MmQsMHhlMCwweDBiLDB4NTgsMHgwMiwweDVlLDB4MDAsMHhhNSwweGEyLDB4NjUsMHhlMCwweDA4LDB4NjgsMHg4MiwweGRhLDB4MDAgfX0sCi0gezE2LCAweDgzNjAsIDAsIHsweDk1LDB4ODAsMHgyZCwweDYwLDB4MGIsMHg3OCwweDAyLDB4ZTAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MzcwLCAwLCB7MHgwOCwweDg0LDB4Y2MsMHgwMCwweGIwLDB4MDksMHgyYywweGMwLDB4MGIsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ODM4MCwgMCwgezB4YzAsMHgwYiwweDMwLDB4NDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4YTAsMHgwYiwweDA0LDB4MDIsMHhjYywweDAwLDB4ODEgfX0sCi0gezE2LCAweDgzOTAsIDAsIHsweDAwLDB4YTAsMHhjMCwweDA4LDB4YjAsMHgwNiwweGNmLDB4ODAsMHhiMywweDEwLDB4MmMsMHhjNCwweDBiLDB4MzEsMHgwMiwweGMzIH19LAotIHsxNiwgMHg4M2EwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweGE4LDB4MDAsMHhmZSwweDgwLDB4M2UsMHg4MCB9fSwKLSB7MTYsIDB4ODNiMCwgMCwgezB4MGYsMHhlOCwweDEzLDB4ZTgsMHgwMCwweGVhLDB4MDAsMHgzZiwweGIwLDB4MGYsMHhhMCwweDAzLDB4YTgsMHgwMiwweGMyLDB4MDAgfX0sCi0gezE2LCAweDgzYzAsIDAsIHsweDJmLDB4ODgsMHgwZiwweGUwLDB4MDMsMHhlOCwweDAwLDB4ZWEsMHgwMCwweDM2LDB4MDAsMHgwYywweGUwLDB4MDMsMHhmOSwweDIwIH19LAotIHsxNiwgMHg4M2QwLCAwLCB7MHhkZSwweDgwLDB4M2YsMHhhMCwweDRmLDB4YTgsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODNlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDEwLDB4M2MsMHgxMCwweDBmLDB4ODAsMHg4MywweGUxLDB4MDAsMHhlOCwweDAwLDB4MjIgfX0sCi0gezE2LCAweDgzZjAsIDAsIHsweDA2LDB4MGYsMHgwMCwweDEzLDB4ZTAsMHgwMSwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDgzLDB4ZTAsMHgwMCwweGY4IH19LAotIHsxNiwgMHg4NDAwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MjMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4ODQxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNCwweDAwLDB4ZjksMHgxMCwweDNlLDB4NDQgfX0sCi0gezE2LCAweDg0MjAsIDAsIHsweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgxMiwweDI0LDB4MDAsMHhmOSwweDEwIH19LAotIHsxNiwgMHg4NDMwLCAwLCB7MHgzMiwweDQwLDB4OGYsMHg5MCwweDAzLDB4YzQsMHgwMCwweGM5LDB4MDAsMHgzMiwweDEwLDB4MGMsMHg5YywweDAxLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4ODQ0MCwgMCwgezB4ZjksMHgxMCwweDNlLDB4NzAsMHgwZiwweDkwLDB4MDIsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg0NTAsIDAsIHsweDgwLDB4MTQsMHg2NCwweDAwLDB4YjksMHhjMCwweDJlLDB4NDgsMHgwOCwweDkxLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCwweDJlIH19LAotIHsxNiwgMHg4NDYwLCAwLCB7MHg0MCwweDBkLDB4OTAsMHgwMywweDY3LDB4MDAsMHhiOSwweDgwLDB4MmEsMHg2MCwweDBiLDB4OTksMHgwMiwweGU0LDB4MDAsMHg4MSB9fSwKLSB7MTYsIDB4ODQ3MCwgMCwgezB4MDAsMHgyMiwweDQwLDB4MmMsMHg5MCwweDEyLDB4MjUsMHgyMCwweGI5LDB4NDgsMHgyZSwweDUyLDB4MGIsMHg5NCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweDg0ODAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwIH19LAotIHsxNiwgMHg4NDkwLCAwLCB7MHg2OCwweDkwLDB4NDYsMHhlNCwweDAwLDB4YjksMHgwMCwweDJlLDB4YzAsMHgwOCwweDkwLDB4MDIsMHhhNCwweDYwLDB4YjksMHgwMCB9fSwKLSB7MTYsIDB4ODRhMCwgMCwgezB4MjIsMHg0OCwweDBiLDB4OTAsMHgwNiwweGU0LDB4MDIsMHg4OSwweDAwLDB4YTAsMHg0MCwweDA4LDB4OTAsMHgwMiwweGE2LDB4MTAgfX0sCi0gezE2LCAweDg0YjAsIDAsIHsweGI5LDB4MDAsMHgwZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NGMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweGIxLDB4MDAsMHgyYywweDQ4LDB4MDgsMHgxMCwweDAyLDB4YzQsMHg4NCwweGIxLDB4MjAsMHgyYyB9fSwKLSB7MTYsIDB4ODRkMCwgMCwgezB4NDAsMHgwOSwweDEyLDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMCwweDI4LDB4NDAsMHgwYiwweDEwLDB4MDIsMHhjNCwweDgwLDB4ODkgfX0sCi0gezE2LCAweDg0ZTAsIDAsIHsweDIwLDB4MjAsMHg0MCwweDRiLDB4MTIsMHgwYSwweDg0LDB4ODQsMHhiMSwweDIwLDB4MmMsMHg0OCwweDhiLDB4MTAsMHgwMiwweGMyIH19LAotIHsxNiwgMHg4NGYwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhiYSwweDAwLDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4ODUwMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4ZTgsMHgwOCwweGY4LDB4NTAsMHgzZSwweDE0LDB4MGMsMHg4NSwweDAzLDB4MjAsMHgwMCwweGI4LDB4MDAgfX0sCi0gezE2LCAweDg1MTAsIDAsIHsweDMyLDB4MDAsMHgwZiwweGEwLDB4MDMsMHhlMSwweDQwLDB4YzgsMHg1MCwweDMyLDB4MTQsMHgwYywweGE1LDB4MDMsMHhhMSwweDQwIH19LAotIHsxNiwgMHg4NTIwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4YTAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODUzMCwgMCwgezB4ODgsMHgwZCwweGU0LDB4NDAsMHhmZCwweDAwLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhiOSwweDExLDB4M2YgfX0sCi0gezE2LCAweDg1NDAsIDAsIHsweDQwLDB4MGYsMHg5MSwweDAzLDB4NjQsMHg0NCwweGY5LDB4MTAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTQsMHg0MCwweGZkIH19LAotIHsxNiwgMHg4NTUwLCAwLCB7MHgxMCwweDNmLDB4MTAsMHg4YywweGQxLDB4MDMsMHg3NCwweDQwLDB4ZmYsMHgxMCwweDNmLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4ODU2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHg2NiwweDIwLDB4ZWQsMHgwMCwweDMzLDB4NjkgfX0sCi0gezE2LCAweDg1NzAsIDAsIHsweDRkLDB4NTAsMHg0MywweDU2LDB4MDAsMHhmOSwweGEwLDB4MzQsMHg0MCwweDBmLDB4OWEsMHgwYiwweDM0LDB4MDAsMHhkZCwweDgwIH19LAotIHsxNiwgMHg4NTgwLCAwLCB7MHgzYiwweDQwLDB4MGIsMHg1MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweGUwLDB4MGUsMHhkMCwweDAzLDB4ZjQsMHgwMCB9fSwKLSB7MTYsIDB4ODU5MCwgMCwgezB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwYywweGQwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg1YTAsIDAsIHsweDc4LDB4MTAsMHhlMiwweDgwLDB4ODgsMHgwNCwweDIyLDB4MTAsMHgwYiwweDgwLDB4MDIsMHgyMCwweDA5LDB4YjgsMHhmMCwweDIyIH19LAotIHsxNiwgMHg4NWIwLCAwLCB7MHgwMCwweDBiLDB4OGUsMHgxMiwweGEwLDB4MDAsMHhiOCwweDUyLDB4MmUsMHgwMCwweDBiLDB4ODAsMHgwMiwweGUwLDB4MDUsMHhiOCB9fSwKLSB7MTYsIDB4ODVjMCwgMCwgezB4YWEsMHgyMywweDNlLDB4MGQsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgzYSwweDAwLDB4MDgsMHg4MCwweDAyLDB4Y2UgfX0sCi0gezE2LCAweDg1ZDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA1LDB4YzQsMHgyMCwweGE5LDB4MDAsMHhhNCwweDQ0IH19LAotIHsxNiwgMHg4NWUwLCAwLCB7MHgwOSwweDkwLDB4MDIsMHhjNSwweDAwLDB4YTEsMHgwOCwweDJjLDB4NDAsMHgwYiwweDExLDB4ODIsMHgwNCwweDAwLDB4YjEsMHgwMCB9fSwKLSB7MTYsIDB4ODVmMCwgMCwgezB4MjgsMHg0MCwweDBhLDB4MTAsMHg0MiwweGM0LDB4MDAsMHhiNSwweDAwLDB4YTEsMHg0MCwweDA4LDB4MTAsMHgwMiwweGM0LDB4MDAgfX0sCi0gezE2LCAweDg2MDAsIDAsIHsweGIxLDB4MDEsMHgyYywweDQwLDB4MDgsMHgxMCwweDIwLDB4ZDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NjEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDg5LDB4MDQsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAwLDB4YWMsMHgwMCwweDM5LDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ODYyMCwgMCwgezB4NDAsMHgwYiwweDEwLDB4MDIsMHhhNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDgsMHgwYiwweDkwLDB4MTIsMHhlNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweDg2MzAsIDAsIHsweDAwLDB4MjEsMHg2MCwweDA5LDB4OTIsMHgyMiwweGU0LDB4MjgsMHhiOSwweDAwLDB4MGEsMHg1MCwweDA4LDB4OTAsMHgwNiwweGM2IH19LAotIHsxNiwgMHg4NjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhlOSwweDAwLDB4MzYsMHg0MCB9fSwKLSB7MTYsIDB4ODY1MCwgMCwgezB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQ4LDB4MGYsMHg5MCwweDAzLDB4MjQsMHgwMCwweGQ5LDB4MDAgfX0sCi0gezE2LCAweDg2NjAsIDAsIHsweDNhLDB4NzgsMHgwZSwweDk4LDB4MDMsMHhlNCwweDAwLDB4YjksMHgwMCwweGIyLDB4NDAsMHgwZSwweDkyLDB4MjMsMHhlNiwweDAwIH19LAotIHsxNiwgMHg4NjcwLCAwLCB7MHhiOSwweDUwLDB4M2UsMHg3MCwweDJjLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODY4MCwgMCwgezB4NjgsMHgwMSwweDg0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDRmLDB4OWMsMHgyMywweDY0LDB4MDAsMHhmOSwweDA0LDB4MzYgfX0sCi0gezE2LCAweDg2OTAsIDAsIHsweDQ4LDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDYwLDB4MGYsMHg5MiwweDAzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHg4NmEwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4ODMsMHhlNCwweDQ0LDB4ZjksMHgwMCwweDc4LDB4NjQsMHgwZiwweDkwLDB4MDMsMHhkYSB9fSwKLSB7MTYsIDB4ODZiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweDg2YzAsIDAsIHsweDBmLDB4ODIsMHgwMywweGEwLDB4NDAsMHhlOCwweDAwLDB4M2UsMHgwMCwweDBkLDB4ODAsMHgwMywweDIwLDB4YzAsMHhjOCwweDgwIH19LAotIHsxNiwgMHg4NmQwLCAwLCB7MHgzZSwweDEyLDB4MGYsMHg4MCwweDAzLDB4NjAsMHgwMCwweDdjLDB4MDAsMHgzMywweDAwLDB4MGQsMHg4MCwweDEzLDB4ZTAsMHgxMCB9fSwKLSB7MTYsIDB4ODZlMCwgMCwgezB4YzgsMHg2NCwweDNlLDB4MDgsMHgwYywweDgyLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg2ZjAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4YjYsMHhlMCwweDBmLDB4YTAsMHgwYiwweDYwLDB4ODIsMHgzOCwweDAwLDB4YWEsMHgwMCwweDJlIH19LAotIHsxNiwgMHg4NzAwLCAwLCB7MHg4MCwweDA4LDB4YTAsMHg0MiwweGJhLDB4MDAsMHhhZSwweDIwLDB4MmYsMHg4OCwweDBiLDB4ZTUsMHgwMiwweDI4LDB4MDAsMHhiYSB9fSwKLSB7MTYsIDB4ODcxMCwgMCwgezB4ZDgsMHgzNywweDgwLDB4MDgsMHhlYywweDAyLDB4ZjgsMHgwNCwweDhlLDB4MDAsMHgyZiwweDkwLDB4MGQsMHhlMCwweDAyLDB4Y2EgfX0sCi0gezE2LCAweDg3MjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGIwLDB4MjQsMHgyYywweDYwIH19LAotIHsxNiwgMHg4NzMwLCAwLCB7MHgwYiwweDM4LDB4MDIsMHg4ZSwweDgwLDB4YWIsMHgwMCwweDJjLDB4YzAsMHgwOSwweDMwLDB4MDIsMHgwZCwweDA4LDB4MDAsMHg4MCB9fSwKLSB7MTYsIDB4ODc0MCwgMCwgezB4NmMsMHhkMCwweDBiLDB4MzQsMHgwMiwweGNjLDB4MDAsMHhiOCwweGMwLDB4MjAsMHgwMCwweDQ4LDB4MzQsMHgxMiwweGNjLDB4NDAgfX0sCi0gezE2LCAweDg3NTAsIDAsIHsweDgzLDB4MDAsMHgyYywweGUwLDB4MGEsMHgzNSwweDAyLDB4Y2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NzYwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHg0MCwweGI3LDB4MDAsMHgyZCwweDAyLDB4OGIsMHg2MCwweDAyLDB4OWUsMHgwMCwweDg3LDB4MjAsMHgyZiB9fSwKLSB7MTYsIDB4ODc3MCwgMCwgezB4ZTAsMHgwOCwweDcyLDB4MDIsMHg5ZSwweDAwLDB4YTQsMHgwMCwweDJkLDB4YzAsMHgwYiwweGY4LDB4MDIsMHg5YywweGMwLDB4YjMgfX0sCi0gezE2LCAweDg3ODAsIDAsIHsweDAyLDB4YTUsMHhjMCwweDA4LDB4NTAsMHg4NiwweGZlLDB4MDAsMHg4NywweDAwLDB4MmYsMHhkMCwweDA5LDB4NzAsMHgwMiwweGU4IH19LAotIHsxNiwgMHg4NzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhmNCwweDgwLDB4M2QsMHgyMCB9fSwKLSB7MTYsIDB4ODdhMCwgMCwgezB4MGYsMHg1OCwweDAzLDB4OWUsMHgwMCwweDY3LDB4ODAsMHgzZCwweGY4LDB4MGQsMHgzOCwweDAyLDB4MWEsMHgxMCwweDQ0LDB4ODAgfX0sCi0gezE2LCAweDg3YjAsIDAsIHsweDNkLDB4ZTAsMHgwZiwweDU4LDB4MDMsMHhkZSwweDIwLDB4YjQsMHg4MCwweDMzLDB4YTAsMHgyYywweDY4LDB4MDMsMHhkNiwweDAwIH19LAotIHsxNiwgMHg4N2MwLCAwLCB7MHhjNywweDgxLDB4M2QsMHhlMCwweDBjLDB4NzgsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODdkMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDgsMHhmOCwweDAwLDB4M2UsMHgwMCwweDhmLDB4ODAsMHgwMywweDZjLDB4MDAsMHgzYiwweDEyLDB4M2UgfX0sCi0gezE2LCAweDg3ZTAsIDAsIHsweGNhLDB4MGYsMHhiNSwweDAzLDB4YzgsMHgwMCwweGY4LDB4MDQsMHg3ZSwweGMwLDB4MGYsMHg5MCwweDAzLDB4NmMsMHg4MCwweGZiIH19LAotIHsxNiwgMHg4N2YwLCAwLCB7MHgwNCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MjMsMHhjOCwweDAwLDB4ZjksMHgwMSwweDNjLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ODgwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4YWMsMHg5MCwweDMxLDB4NDggfX0sCi0gezE2LCAweDg4MTAsIDAsIHsweDA4LDB4ZjgsMHgwMywweGZhLDB4MDAsMHhjZiwweDgwLDB4M2YsMHhlMCwweDBjLDB4ZmMsMHgxMywweDNlLDB4MDQsMHhmYywweDgwIH19LAotIHsxNiwgMHg4ODIwLCAwLCB7MHgzNSwweGEwLDB4MGMsMHg3OCwweDAzLDB4YmUsMHgwMCwweGRmLDB4ODAsMHgzYiwweDIwLDB4MjQsMHhmOCwweDAzLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ODgzMCwgMCwgezB4Y2YsMHg4MCwweDMzLDB4ZTAsMHgwMywweGY5LDB4MDMsMHhkMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg4NDAsIDAsIHsweGE4LDB4MTEsMHhiYywweDAwLDB4ODAsMHgwMCwweDAxLDB4MDAsMHgwOCwweDcyLDB4MDIsMHhkMCwweDAwLDB4ODcsMHgwMCwweDJkIH19LAotIHsxNiwgMHg4ODUwLCAwLCB7MHhjOCwweDBhLDB4ZjAsMHgwMiwweDk4LDB4NDAsMHhmNSwweDAwLDB4NjEsMHg0MSwweDAwLDB4NzQsMHgwMiwweDFjLDB4MDAsMHhiNCB9fSwKLSB7MTYsIDB4ODg2MCwgMCwgezB4MDAsMHgyMSwweGM4LDB4MDgsMHg2MCwweDAyLDB4M2UsMHgyMCwweDg2LDB4MDgsMHgyMSwweGQ4LDB4MGYsMHg1MCwweDAyLDB4ZWEgfX0sCi0gezE2LCAweDg4NzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAwLDB4OWMsMHgwMCwweGE0LDB4MDAsMHgyMSwweDAwIH19LAotIHsxNiwgMHg4ODgwLCAwLCB7MHgwOCwweDUwLDB4MDIsMHhkOCwweDAwLDB4OTcsMHgwMCwweDJkLDB4YzAsMHg4OCwweDcxLDB4MDIsMHgxNCwweDAwLDB4YjAsMHgwMCB9fSwKLSB7MTYsIDB4ODg5MCwgMCwgezB4MjUsMHg5MCwweDA4LDB4YzAsMHg4MiwweDljLDB4NDAsMHg5MywweDAwLDB4MjksMHhhMSwweDg4LDB4NjAsMHgwMiwweDE0LDB4MTIgfX0sCi0gezE2LCAweDg4YTAsIDAsIHsweDg3LDB4NDAsMHgyOSwweDQwLDB4MGIsMHg2MCwweDAyLDB4YzQsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4OGIwLCAwLCB7MHg2MCwweDE0LDB4Y2MsMHgwMCwweDgwLDB4ZDAsMHhhMCwweDAwLDB4MDgsMHgxYywweDAyLDB4YzAsMHgwMCwweDkzLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4ODhjMCwgMCwgezB4ZDAsMHgwYSwweGIwLDB4MjYsMHg4MCwweDAwLDB4YjMsMHgwMCwweDI0LDB4ZTQsMHgwOCwweDA4LDB4MDIsMHg4YywweDAwLDB4YjAgfX0sCi0gezE2LCAweDg4ZDAsIDAsIHsweDAyLDB4MDIsMHg0MSwweDA4LDB4MDgsMHgwMiwweDAzLDB4MDEsMHg4MSwweDAwLDB4MjgsMHg0MiwweDFhLDB4MDAsMHg0MiwweGQ4IH19LAotIHsxNiwgMHg4OGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZjgsMHgxNSwweGJjLDB4MDAsMHhlOCwweGMwLDB4MzIsMHg4MCB9fSwKLSB7MTYsIDB4ODhmMCwgMCwgezB4MGMsMHhiNSwweDAzLDB4ZTQsMHgwMCwweDlmLDB4MDAsMHgzZCwweGUwLDB4MGMsMHhmMCwweDBiLDB4MjQsMHgwMCwweGY4LDB4MDAgfX0sCi0gezE2LCAweDg5MDAsIDAsIHsweDM2LDB4ZTAsMHgwYywweDI1LDB4MDMsMHhiYywweDA1LDB4ZDgsMHgwMiwweDJhLDB4MDAsMHgwOCwweGJhLDB4MDIsMHgyYSwweDAwIH19LAotIHsxNiwgMHg4OTEwLCAwLCB7MHhjMSwweDAyLDB4M2EsMHg1MCwweDhiLDB4OTAsMHgwMywweGVlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODkyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA4LDB4M2UsMHg4MCwweDBmLDB4YTEsMHgwMywweGVjLDB4MDQsMHhlYiwweDAyLDB4MmUgfX0sCi0gezE2LCAweDg5MzAsIDAsIHsweGM2LDB4MGYsMHhiMCwweDE3LDB4NDQsMHgwMCwweGU4LDB4MDAsMHgzYSwweDQwLDB4MGYsMHg4MCwweDAyLDB4NmMsMHgwMCwweGZiIH19LAotIHsxNiwgMHg4OTQwLCAwLCB7MHgwMCwweDNlLDB4ZTAsMHgwZiwweDkwLDB4OTMsMHhlMSwweDAwLDB4ZDksMHgwMCwweDI2LDB4NzAsMHg4ZiwweDkwLDB4MDEsMHhlMSB9fSwKLSB7MTYsIDB4ODk1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhmYywweDAwLDB4ZmMsMHgwMywweDM3LDB4MjQgfX0sCi0gezE2LCAweDg5NjAsIDAsIHsweDBkLDB4ZjgsMHgwMywweGUwLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMSwweDhkLDB4ZjAsMHgwYiwweDM4LDB4MDAsMHhjYywweDAwIH19LAotIHsxNiwgMHg4OTcwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhmYSwweDAzLDB4M2MsMHgwYywweGZjLDB4MDQsMHgzYiwweDgwLDB4MGMsMHhhMCwweDAzLDB4OTQsMHgyMCB9fSwKLSB7MTYsIDB4ODk4MCwgMCwgezB4ODksMHgwNSwweDNiLDB4MDAsMHg0ZiwweGQwLDB4MjMsMHhjMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg5OTAsIDAsIHsweDgwLDB4MDQsMHg2YywweDAwLDB4YjAsMHgwNiwweDIwLDB4MTMsMHg4OCwweGE4LDB4MDIsMHhlYiwweDAwLDB4YmIsMHgwMCwweDJlIH19LAotIHsxNiwgMHg4OWEwLCAwLCB7MHhjMCwweDA4LDB4YjAsMHgwMiwweDJhLDB4MDAsMHhhOCwweDgwLDB4MmUsMHhlMCwweDBiLDB4OTQsMHgxYSwweDJjLDB4MDAsMHhiYiB9fSwKLSB7MTYsIDB4ODliMCwgMCwgezB4MDAsMHhhMiwweDQwLDB4MjksMHg5OCwweDAyLDB4ZTIsMHgwMCwweGE5LDB4ODQsMHgyMiwweDIwLDB4MGIsMHg5OCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweDg5YzAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweGI4LDB4MDAsMHgyMiwweDAwIH19LAotIHsxNiwgMHg4OWQwLCAwLCB7MHgwOSwweDgyLDB4MDIsMHhlNiwweDAwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHgyNiwweDAwLDB4ODgsMHg4MCB9fSwKLSB7MTYsIDB4ODllMCwgMCwgezB4MmUsMHhhMCwweDBiLDB4YTAsMHgwMiwweDJjLDB4MDAsMHhiMywweDAwLDB4MmEsMHgwMCwweDA5LDB4OTgsMHgwMiwweGVhLDB4MjAgfX0sCi0gezE2LCAweDg5ZjAsIDAsIHsweGE5LDB4ODAsMHgyYSwweDYwLDB4OWIsMHg5OCwweDgyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YTAwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGI4LDB4MDAsMHgyMCwweDAwLDB4MDksMHgwOCwweDAyLDB4YzQsMHgwMCwweGIzLDB4MDAsMHgyNiB9fSwKLSB7MTYsIDB4OGExMCwgMCwgezB4YzAsMHgwMCwweDMwLDB4MDIsMHgwMCwweDAwLDB4ODEsMHgwMCwweDJjLDB4NDEsMHgwYiwweDAwLDB4MDIsMHgwYywweDAwLDB4YjAgfX0sCi0gezE2LCAweDhhMjAsIDAsIHsweDAwLDB4MjAsMHhjMCwweDBiLDB4MDAsMHgwMiwweGM4LDB4ODAsMHhhOCwweDAwLDB4MjAsMHg0MSwweDBiLDB4MTAsMHgwMiwweGMyIH19LAotIHsxNiwgMHg4YTMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MTAsMHhmOCwweDUwLDB4YjIsMHgwMCB9fSwKLSB7MTYsIDB4OGE0MCwgMCwgezB4MGQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGZiLDB4MDAsMHgzZCwweGMwLDB4MGQsMHhmMCwweDEzLDB4MjQsMHgwMiwweGM4LDB4MDYgfX0sCi0gezE2LCAweDhhNTAsIDAsIHsweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHgzYywweDA0LDB4ZmIsMHgwMCwweDc4LDB4ODAsMHgwYywweGEwLDB4MDMsMHhlNCwweDAwIH19LAotIHsxNiwgMHg4YTYwLCAwLCB7MHhlOSwweDAwLDB4MWEsMHg0MCwweDBmLDB4OTAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGE3MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmNCwweDIwLDB4M2YsMHgwMCwweDBlLDB4YzAsMHgwMiwweGYwLDB4MDEsMHhmZiwweDAwLDB4M2YgfX0sCi0gezE2LCAweDhhODAsIDAsIHsweGMwLDB4MGYsMHhmMCwweDIzLDB4ZjAsMHgwMCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZmMsMHgwMCwweGZjIH19LAotIHsxNiwgMHg4YTkwLCAwLCB7MHgwMCwweDNmLDB4NDAsMHg5YywweGMwLDB4MDMsMHhmMCwweDQwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4NDMsMHhlOCB9fSwKLSB7MTYsIDB4OGFhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMCwweDAwLDB4ZWQsMHgyMywweGI3LDB4NDggfX0sCi0gezE2LCAweDhhYjAsIDAsIHsweDBjLDB4ZTEsMHhjMywweDdjLDB4YzAsMHhkZCwweDgwLDB4MzcsMHhlMCwweDBmLDB4Y2IsMHgwMywweGZlLDB4MDgsMHhmYywweDI4IH19LAotIHsxNiwgMHg4YWMwLCAwLCB7MHgzZiwweGYwLDB4MWMsMHhmYiwweDIzLDB4N2MsMHgwMSwweGZmLDB4MTQsMHg3NywweGUyLDB4NGYsMHhlOCwweDIzLDB4N2MsMHgwMCB9fSwKLSB7MTYsIDB4OGFkMCwgMCwgezB4YzQsMHg4MCwweDMzLDB4NDgsMHgyYywweGY4LDB4MjIsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhhZTAsIDAsIHsweDgwLDB4MTAsMHhlMCwweGUwLDB4YzksMHhjMCwweDIyLDB4NWIsMHg4OCwweDk2LDB4MjIsMHgyZCwweDAwLDB4ODksMHgyMiwweDIyIH19LAotIHsxNiwgMHg4YWYwLCAwLCB7MHhjYSwweDBiLDB4OWUsMHgyMiwweGUyLDB4YTAsMHhiOSwweDYxLDB4MmMsMHhlMCwweDg4LDB4OWYsMHgwMiwweDNkLDB4ODUsMHhiZiB9fSwKLSB7MTYsIDB4OGIwMCwgMCwgezB4NjAsMHgyNiwweDUwLDB4NDgsMHhhMCwweDAyLDB4M2MsMHgwMCwweDg4LDB4MDAsMHgyMiwweDUwLDB4MDgsMHhiMCwweDAyLDB4MjAgfX0sCi0gezE2LCAweDhiMTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzAsMHg4MCwweGIxLDB4MTAsMHgyMCwweDQ0IH19LAotIHsxNiwgMHg4YjIwLCAwLCB7MHgwYiwweGIyLDB4MDIsMHhjZSwweGQwLDB4ODEsMHgwOCwweDJjLDB4YzAsMHgwYiwweDAxLDB4MDIsMHg4YywweDA4LDB4YjMsMHgwOCB9fSwKLSB7MTYsIDB4OGIzMCwgMCwgezB4MmMsMHhjOSwweDA4LDB4MTAsMHg2MiwweDhjLDB4NjAsMHhiMywweDMyLDB4MjQsMHg4MCwweDBhLDB4YTAsMHgwMiwweDZjLDB4MDMgfX0sCi0gezE2LCAweDhiNDAsIDAsIHsweDlhLDB4MDEsMHgyNiwweDQ0LDB4NDgsMHhiMCwweDQyLDB4NjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YjUwLCAwLCB7MHhjMCwweDE1LDB4YTQsMHhhMCwweDhiLDB4MDIsMHgyMiwweGUwLDB4MGIsMHhiMCwweDYyLDB4YWMsMHg5OCwweDk5LDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4OGI2MCwgMCwgezB4YzIsMHgwYiwweDk4LDB4MDYsMHhlNCwweDAwLDB4YmIsMHgwMiwweDJlLDB4YzAsMHgwOCwweDkxLDB4NDIsMHgyYywweDEwLDB4YmIgfX0sCi0gezE2LCAweDhiNzAsIDAsIHsweDAwLDB4NmUsMHg4MCwweDBhLDB4ODAsMHgwMiwweDZjLDB4MDAsMHgxYiwweDAwLDB4MDYsMHg0MCwweDQ4LDB4YjgsMHgwYSwweDcwIH19LAotIHsxNiwgMHg4YjgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweGU3LDB4MDAsMHhhMSwweDAwLDB4NzYsMHg3OCB9fSwKLSB7MTYsIDB4OGI5MCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZTgsMHgxMCwweGQ5LDB4MDAsMHgzZSwweGQwLDB4NGIsMHg5ZSwweDEzLDB4YWMsMHgwOCwweGI4LDB4YTAgfX0sCi0gezE2LCAweDhiYTAsIDAsIHsweDdlLDB4YzYsMHgwOCwweGE4LDB4MDIsMHgyYywweDAxLDB4YmIsMHgwMCwweDI2LDB4MzAsMHg0ZSwweDIwLDB4MDMsMHg0YywweDE4IH19LAotIHsxNiwgMHg4YmIwLCAwLCB7MHg5OSwweDgwLDB4YjQsMHg0MCwweDRjLDB4M2EsMHgwMywweDQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGJjMCwgMCwgezB4ZTAsMHgwMSwweGIyLDB4MDAsMHhmZCwweGM1LDB4M2IsMHhjMCwweDRjLDB4ZDAsMHgwMywweDZhLDB4MDIsMHhlZCwweDA2LDB4MzMgfX0sCi0gezE2LCAweDhiZDAsIDAsIHsweGM0LDB4MGYsMHhkMCwweDUzLDB4ZjgsMHgwMCwweGZjLDB4OTAsMHg3ZiwweGMxLDB4MGYsMHg3OCwweDAzLDB4YmMsMHgwNCwweGZmIH19LAotIHsxNiwgMHg4YmUwLCAwLCB7MHgwMCwweDM3LDB4NjQsMHgwYywweGYxLDB4MDMsMHhhNCwweDAwLDB4ZWQsMHhhMSwweDNiLDB4NDAsMHgwYiwweGYwLDB4ODMsMHhiOCB9fSwKLSB7MTYsIDB4OGJmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4YywweDAwLDB4Y2IsMHgyMCwweDNlLDB4NzEgfX0sCi0gezE2LCAweDhjMDAsIDAsIHsweDBmLDB4YjMsMHgwMywweDk4LDB4MDIsMHhmYiwweDAyLDB4MzYsMHg0OCwweDBmLDB4OTAsMHgwMywweGVjLDB4MjAsMHhmOCwweDAwIH19LAotIHsxNiwgMHg4YzEwLCAwLCB7MHgzZSwweGNjLDB4MDQsMHg4NCwweDAzLDB4MmMsMHgwMCwweGRiLDB4MDQsMHgzYywweDEwLDB4MGYsMHhhMCwweDAzLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4OGMyMCwgMCwgezB4OWIsMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhjMzAsIDAsIHsweDg4LDB4MDUsMHgyYywweDAyLDB4OGIsMHg0OCwweDJlLDB4ZTAsMHgwYiwweDM0LDB4MDMsMHg2YiwweDAwLDB4OGIsMHhmNSwweDIyIH19LAotIHsxNiwgMHg4YzQwLCAwLCB7MHhmMiwweDBiLDB4OWMsMHgwMywweGFmLDB4MDAsMHhiOCwweDUwLDB4MmUsMHhjMCwweDA4LDB4YjAsMHgwMiwweDdjLDB4MDAsMHg4ZiB9fSwKLSB7MTYsIDB4OGM1MCwgMCwgezB4MDAsMHgwZSwweDVkLDB4MGIsMHg4MCwweDAyLDB4ZjUsMHg0MCwweDgzLDB4NTAsMHgyMywweDU0LDB4MDgsMHg5YywweDAyLDB4ZTYgfX0sCi0gezE2LCAweDhjNjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA0LDB4NGMsMHgwMCwweDgxLDB4ODEsMHgyZSwweDQwIH19LAotIHsxNiwgMHg4YzcwLCAwLCB7MHgwMywweDJjLDB4MDIsMHgwNCwweDMzLDB4OTksMHgwMCwweDIwLDB4ZjAsMHg0YSwweDI4LDB4ODAsMHhjYywweDQwLDB4YjAsMHgwMCB9fSwKLSB7MTYsIDB4OGM4MCwgMCwgezB4MjYsMHgxMCwweDA4LDB4MjAsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCwweDA5LDB4MjAsMHgwMiwweGNjLDB4MDAgfX0sCi0gezE2LCAweDhjOTAsIDAsIHsweGEwLDB4MDIsMHgyOCwweDQwLDB4MDgsMHgwOCwweDAyLDB4N2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4Y2EwLCAwLCB7MHgyMCwweDAxLDB4MGEsMHgwMCwweDg1LDB4ODAsMHgyZCwweGY4LDB4MGIsMHhkYSwweDAyLDB4ZDYsMHg0MCwweDg1LDB4YTAsMHgyMSB9fSwKLSB7MTYsIDB4OGNiMCwgMCwgezB4ZTAsMHgwYiwweDQ4LDB4MDYsMHg5MiwweDA0LDB4YjUsMHg4MCwweDJkLDB4MjEsMHgwOCwweDAwLDB4MDIsMHg0ZSwweDAwLDB4ODcgfX0sCi0gezE2LCAweDhjYzAsIDAsIHsweGE0LDB4MmQsMHg2MCwweDBiLDB4NjgsMHgwMiwweGRlLDB4YzIsMHhhZCwweDkwLDB4MmIsMHg2MCwweDI4LDB4NTgsMHg4MiwweGRjIH19LAotIHsxNiwgMHg4Y2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDRjLDB4NDAsMHhjMywweDEwLDB4MmMsMHg2YyB9fSwKLSB7MTYsIDB4OGNlMCwgMCwgezB4MGYsMHgzMCwweDAzLDB4ODYsMHhhMiwweGY5LDB4YjAsMHhiMCwweGUwLDB4MGYsMHgyOSwweDgzLDB4Y2UsMHg0NCwweGYzLDB4ODAgfX0sCi0gezE2LCAweDhjZjAsIDAsIHsweDNjLDB4YWMsMHgwYywweDMwLDB4MDMsMHgwYywweDAwLDB4YzMsMHgwMCwweDNjLDB4ZDUsMHgwZiwweDIwLDB4MDMsMHhjZSwweGMxIH19LAotIHsxNiwgMHg4ZDAwLCAwLCB7MHhlMCwweDEwLDB4YjgsMHg0MCwweDBjLDB4MDAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGQxMCwgMCwgezB4YzAsMHgxZCwweGJjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjYywweDBmLDB4MzIsMHgwMywweDY0LDB4MDgsMHhmOSwweDAwLDB4M2IgfX0sCi0gezE2LCAweDhkMjAsIDAsIHsweDkwLDB4MGYsMHhmMCwweDQzLDB4ZTQsMHg0MCwweGZiLDB4MzQsMHgzZiwweDgxLDB4MDcsMHhkMSwweDAzLDB4YWQsMHgyMCwweGViIH19LAotIHsxNiwgMHg4ZDMwLCAwLCB7MHgyMCwweDdmLDB4YzQsMHgwZiwweGUxLDB4MDMsMHhmYywweDUwLDB4Y2QsMHgxMCwweDM1LDB4NDAsMHgwZiwweGQwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4OGQ0MCwgMCwgezB4MDIsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDA0LDB4ZmQsMHgwNCwweDNkLDB4NDAgfX0sCi0gezE2LCAweDhkNTAsIDAsIHsweDJkLDB4MzAsMHgwMiwweDNjLDB4MDAsMHhjOSwweDAxLDB4M2UsMHhjMCwweDRmLDB4YjgsMHg0MywweGVjLDB4MTAsMHhmYiwweDAwIH19LAotIHsxNiwgMHg4ZDYwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHhhMCwweDIzLDB4ZWMsMHg4MCwweGNiLDB4MzYsMHgzMiwweDgwLDB4NGQsMHhhOCwweDAzLDB4MmMsMHgxMCB9fSwKLSB7MTYsIDB4OGQ3MCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHg2YSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhkODAsIDAsIHsweGM4LDB4MTEsMHg5MCwweDA4LDB4YjUsMHgwMCwweDJkLDB4YzAsMHgwOCwweDUwLDB4MDIsMHhiYywweDAyLDB4ODUsMHgwNCwweDJkIH19LAotIHsxNiwgMHg4ZDkwLCAwLCB7MHhjMCwweDhlLDB4NjAsMHgwNiwweGQ4LDB4MDQsMHhiNywweDA0LDB4MjEsMHg0MCwweDBiLDB4NzAsMHgwMiwweGZjLDB4ODAsMHhhZiB9fSwKLSB7MTYsIDB4OGRhMCwgMCwgezB4MjgsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4MDYsMHg0MCwweDg3LDB4MDAsMHgyMSwweDUwLDB4MDgsMHg1MCwweDAyLDB4MzIgfX0sCi0gezE2LCAweDhkYjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4OWUsMHgyMCwweGI3LDB4ODAsMHgyYiwweDcwIH19LAotIHsxNiwgMHg4ZGMwLCAwLCB7MHgwOCwweGY4LDB4MDYsMHgxZSwweDAwLDB4ODcsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDcwLDB4MzIsMHhkZSwweDA0LDB4MzcsMHg4NCB9fSwKLSB7MTYsIDB4OGRkMCwgMCwgezB4MjUsMHhlMCwweDBiLDB4NjgsMHgwNiwweGRlLDB4ODAsMHg4NywweDgwLDB4MjEsMHhhMSwweDFiLDB4NjgsMHgwMiwweDFlLDB4NDAgfX0sCi0gezE2LCAweDhkZTAsIDAsIHsweDlmLDB4ODAsMHgyMCwweDYwLDB4MDgsMHg1OCwweDAyLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZGYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgyMCwweGIzLDB4MDAsMHgyYywweDgwLDB4ODgsMHhiNCwweDIyLDB4OGQsMHgwMCwweDgzLDB4OTAsMHgyYyB9fSwKLSB7MTYsIDB4OGUwMCwgMCwgezB4YzAsMHgwYSwweDM4LDB4MDIsMHhjZSwweDA4LDB4YmIsMHgyMCwweDI0LDB4ZDAsMHgwYiwweGIzLDB4MDIsMHhjYywweDAwLDB4YTMgfX0sCi0gezE2LCAweDhlMTAsIDAsIHsweDAwLDB4NjAsMHhkMiwweDBiLDB4MjAsMHgyYSwweDA0LDB4MDgsMHg5MywweDUwLDB4MjAsMHg0MCwweDA4LDB4MTcsMHgwYSwweDAyIH19LAotIHsxNiwgMHg4ZTIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGJhLDB4MDAsMHhiYSwweGEwLDB4M2YsMHg4NCB9fSwKLSB7MTYsIDB4OGUzMCwgMCwgezB4MWMsMHhlMCwweDBiLDB4MzgsMHg0MCwweDhlLDB4MDYsMHgyZSwweDgwLDB4MGIsMHhlMywweDAzLDB4ZjgsMHg4MCwweGZlLDB4ZTQgfX0sCi0gezE2LCAweDhlNDAsIDAsIHsweGI3LDB4OTAsMHgwZiwweGVjLDB4MDIsMHhlOCwweDAwLDB4OGEsMHgwMCwweGEzLDB4YTAsMHgwOSwweGU0LDB4MDMsMHgyYSwweDAyIH19LAotIHsxNiwgMHg4ZTUwLCAwLCB7MHhkZSwweGMwLDB4ZjMsMHg4MCwweDBjLDB4NmMsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGU2MCwgMCwgezB4NDgsMHgwMSwweGUwLDB4MDAsMHhmOCwweDQwLDB4M2UsMHgwMCwweDBmLDB4ODQsMHgxMywweGUwLDB4MDAsMHhmOCwweDAwLDB4MmUgfX0sCi0gezE2LCAweDhlNzAsIDAsIHsweDMwLDB4MGEsMHg4NCwweDAzLDB4ZTAsMHgwNCwweGY4LDB4MDAsMHgzYSwweDAyLDB4MGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4IH19LAotIHsxNiwgMHg4ZTgwLCAwLCB7MHgwMCwweDNlLDB4MDQsMHgwZCwweDgwLDB4ODMsMHhlMCwweDQwLDB4ZTgsMHgyMCwweDNlLDB4MDAsMHgyZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4OGU5MCwgMCwgezB4MTAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NjQgfX0sCi0gezE2LCAweDhlYTAsIDAsIHsweDRlLDB4OTAsMHg4MywweDI0LDB4ODAsMHhjOSwweDAwLDB4MzIsMHhlMCwweDBmLDB4MTAsMHgwMywweDI1LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHg4ZWIwLCAwLCB7MHgzMiwweDQ0LDB4MGYsMHg5MiwweDIzLDB4NjQsMHgwMCwweGMxLDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDEzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4OGVjMCwgMCwgezB4YzksMHgwMCwweDIyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhlZDAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHgyMCwweDJlLDB4NDAsMHg0OCwweDk2LDB4MjIsMHgyNSwweDAwLDB4ZDksMHhjMCwweGEyIH19LAotIHsxNiwgMHg4ZWUwLCAwLCB7MHg3MCwweDBiLDB4OTgsMHgwMiwweDI0LDB4MDAsMHhiOSwweDQwLDB4YTIsMHg3MCwweDRiLDB4OTAsMHgwMiwweDI0LDB4MDAsMHhkOSB9fSwKLSB7MTYsIDB4OGVmMCwgMCwgezB4MDAsMHhhMiwweDQwLDB4MmMsMHg5NCwweDIyLDB4ZTQsMHgwMiwweDg5LDB4MDAsMHhhMiwweDQwLDB4MjgsMHg5NCwweDEzLDB4MjAgfX0sCi0gezE2LCAweDhmMDAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwIH19LAotIHsxNiwgMHg4ZjEwLCAwLCB7MHgwYSwweDkwLDB4MDIsMHgwNCwweDAwLDB4ODEsMHg4MCwweGEyLDB4NDQsMHgwYiwweDkxLDB4MDIsMHgyNSwweDAwLDB4MTksMHg0MCB9fSwKLSB7MTYsIDB4OGYyMCwgMCwgezB4NjIsMHg0MCwweDBiLDB4YjQsMHgwMiwweDQ0LDB4MDAsMHg4OSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTAsMHg4MiwweGM0LDB4MDEgfX0sCi0gezE2LCAweDhmMzAsIDAsIHsweDgzLDB4MDIsMHgyOCwweDQwLDB4NDgsMHg5MCwweDgyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZjQwLCAwLCB7MHgwMCwweDA0LDB4MDUsMHg4MCwweGIxLDB4MDAsMHg2YywweDUxLDB4MDgsMHgxNCwweDFhLDB4MDUsMHgwMCwweDkzLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4OGY1MCwgMCwgezB4NDAsMHg4YiwweDE0LDB4MDIsMHgwNSwweDAwLDB4YjEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4MDYsMHgwNCwweDgwLDB4OTEgfX0sCi0gezE2LCAweDhmNjAsIDAsIHsweDIwLDB4MjAsMHg0MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4YTgsMHg4MSwweDAwLDB4MjgsMHg0YSwweDA4LDB4OTAsMHg0YSwweDQyIH19LAotIHsxNiwgMHg4ZjcwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCB9fSwKLSB7MTYsIDB4OGY4MCwgMCwgezB4MGUsMHg4MCwweDAzLDB4MjgsMHgwMSwweGM4LDB4NTAsMHgzMiwweDk0LDB4OGIsMHhhMCwweDAzLDB4MjAsMHgwMCwweGIwLDB4NTAgfX0sCi0gezE2LCAweDhmOTAsIDAsIHsweDMyLDB4ODAsMHgwZiwweDgwLDB4MDcsMHg2MSwweDUxLDB4YzgsMHg1MCwweDIyLDB4MDAsMHgwYywweDAwLDB4MDMsMHhlMCwweDg0IH19LAotIHsxNiwgMHg4ZmEwLCAwLCB7MHhjOCwweDA0LDB4M2EsMHgwOCwweDBjLDB4MDAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGZiMCwgMCwgezB4OTgsMHg5ZCwweGY0LDB4NDAsMHhiZCwweDQxLDB4M2YsMHg1MCwweDBmLDB4ZjQsMHgwMywweGY1LDB4MTAsMHhmZCwweDAwLDB4M2UgfX0sCi0gezE2LCAweDhmYzAsIDAsIHsweDQwLDB4MGYsMHhkNCwweDAzLDB4ZjQsMHgwMCwweGZmLDB4MTAsMHgyZiwweDQwLDB4NGYsMHhkNCwweDQwLDB4YTQsMHg0OCwweGY5IH19LAotIHsxNiwgMHg4ZmQwLCAwLCB7MHgxMiwweDNmLDB4NWEsMHg4ZSwweGQyLDB4ODMsMHhmNCwweGE4LDB4ZjUsMHgyYywweDM3LDB4NGEsMHgwZiwweGQyLDB4ODMsMHhhNiB9fSwKLSB7MTYsIDB4OGZlMCwgMCwgezB4MTIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDgwLDB4ZmQsMHgyOCwweDNmLDB4NGMgfX0sCi0gezE2LCAweDhmZjAsIDAsIHsweDBmLDB4NTAsMHgwMywweDNjLDB4NDQsMHhjZCwweDQwLDB4M2YsMHhkMCwweDBkLDB4ZDAsMHgwMiwweDE0LDB4MDEsMHhmZCwweGEwIH19LAotIHsxNiwgMHg5MDAwLCAwLCB7MHgzMSwweDQwLDB4MDMsMHhkMCwweDAzLDB4ZTcsMHg4OSwweGY5LDB4OTAsMHg3ZSwweDUwLDB4MGMsMHg5NCwweDAzLDB4ZTYsMHhjMCB9fSwKLSB7MTYsIDB4OTAxMCwgMCwgezB4YzksMHgxMCwweDMyLDB4NmQsMHgwZiwweDkxLDB4MDIsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkwMjAsIDAsIHsweDM4LDB4MTAsMHhlMCwweDgwLDB4YjgsMHgwMSwweDJlLDB4MGMsMHg4YiwweDg0LDB4ODIsMHgyMCwweDQyLDB4ODgsMHhhMCwweDZlIH19LAotIHsxNiwgMHg5MDMwLCAwLCB7MHgyMCwweDA4LDB4ODAsMHgwMywweDYwLDB4MDAsMHg5OCwweGU4LDB4MjIsMHgwMCwweDA5LDB4ODAsMHgwMiwweGUzLDB4YzAsMHhlOCB9fSwKLSB7MTYsIDB4OTA0MCwgMCwgezB4ZDAsMHgyZSwweDI4LDB4MDgsMHg4YSwweDIzLDB4ZTIsMHg4NCwweGQ4LDB4YTAsMHgyMiwweDNkLDB4MGIsMHhjOCwweDAyLDB4Y2UgfX0sCi0gezE2LCAweDkwNTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA1LDB4YzUsMHhiMCwweGIxLDB4MDAsMHgyYywweDQ4IH19LAotIHsxNiwgMHg5MDYwLCAwLCB7MHgwYiwweDEzLDB4MDIsMHgwNCwweDAyLDB4YjEsMHgyMCwweDJlLDB4NDAsMHg4OCwweDEwLDB4MjIsMHhjNCwweDAwLDB4YjEsMHgxNCB9fSwKLSB7MTYsIDB4OTA3MCwgMCwgezB4MjQsMHg0MCwweDBiLDB4MTAsMHg1MiwweGM0LDB4MDAsMHhiMSwweDIxLDB4MmQsMHg0OCwweDBhLDB4NTIsMHgwMiwweGQ1LDB4MDAgfX0sCi0gezE2LCAweDkwODAsIDAsIHsweGJkLDB4MDAsMHhhZCwweDQwLDB4MGIsMHg1MiwweDAyLDB4ZDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MDkwLCAwLCB7MHgxOCwweDU1LDB4YTUsMHgwMCwweGI5LDB4ODIsMHgyZSwweDQ5LDB4OGIsMHhiMCwweDEyLDB4MjQsMHgxMCwweDk5LDB4MDIsMHgyZSB9fSwKLSB7MTYsIDB4OTBhMCwgMCwgezB4NDAsMHgwOCwweGIyLDB4MDAsMHg2NSwweDAwLDB4OTksMHg4MCwweDI2LDB4NDQsMHgwOSwweDkxLDB4MDIsMHhlNCwweDA5LDB4YTkgfX0sCi0gezE2LCAweDkwYjAsIDAsIHsweDA0LDB4MmUsMHg0NiwweDBhLDB4ZDQsMHgwMiwweGI0LDB4MDAsMHhiZCwweDQwLDB4MmYsMHg0MCwweDBiLDB4ZDAsMHgwMiwweGM2IH19LAotIHsxNiwgMHg5MGMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU3LDB4NDAsMHhmOSwweDgwLDB4MmUsMHg2MiB9fSwKLSB7MTYsIDB4OTBkMCwgMCwgezB4MGYsMHg5YywweDQyLDB4MjQsMHgwMCwweDk5LDB4MDEsMHgyZSwweDY4LDB4MmMsMHg5MiwweDAyLDB4NjQsMHgwMCwweGI5LDB4NDAgfX0sCi0gezE2LCAweDkwZTAsIDAsIHsweGI2LDB4NjAsMHgwZiwweDlhLDB4MDMsMHhlNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NzAsMHgzZSwweDk5LDB4MDYsMHhlNCwweDAyIH19LAotIHsxNiwgMHg5MGYwLCAwLCB7MHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTgsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTEwMCwgMCwgezB4NjgsMHgwMSwweGE2LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDFmLDB4MTIsMHhhYiwweGU0LDB4MDAsMHhlOSwweDkwLDB4M2UgfX0sCi0gezE2LCAweDkxMTAsIDAsIHsweDQ5LDB4MGUsMHg5OCwweDAzLDB4ZTQsMHgwMCwweGYxLDB4MDAsMHgzYSwweDQwLDB4MGQsMHg5OCwweDAzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHg5MTIwLCAwLCB7MHgwMSwweDNlLDB4NjAsMHgwNSwweDkwLDB4MTMsMHhlNCwweDAwLDB4NTksMHgyMCwweDMyLDB4NDAsMHg4ZiwweDkxLDB4MDMsMHhkYSB9fSwKLSB7MTYsIDB4OTEzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwOCwweDNlLDB4MDEgfX0sCi0gezE2LCAweDkxNDAsIDAsIHsweDBmLDB4ODQsMHg2MywweDAwLDB4MjIsMHhlOCwweDIwLDB4M2UsMHgxMywweDBmLDB4ODQsMHgwMywweGUxLDB4YzAsMHhkOCwweDRjIH19LAotIHsxNiwgMHg5MTUwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4NCwweDQzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyMiwweDEwLDB4MGYsMHg4NCwweDAzLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTE2MCwgMCwgezB4YzgsMHgwMCwweGIyLDB4MDAsMHgwYywweGMwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkxNzAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4OGUsMHgwMCwweDJmLDB4ODYsMHg0YiwweGUwLDB4MDIsMHgzOSwweDA4LDB4OGUsMHgyMCwweDJkIH19LAotIHsxNiwgMHg5MTgwLCAwLCB7MHg5MCwweDBiLDB4ZWQsMHg5MiwweGY4LDB4MDIsMHg4ZSwweGUwLDB4YTMsMHg5OCwweDA4LDB4ZTAsMHgwMiwweGU4LDB4MDgsMHhiYSB9fSwKLSB7MTYsIDB4OTE5MCwgMCwgezB4MDAsMHg2MiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweDAyLDB4ODAsMHgwMiwweDgwLDB4NDgsMHhlMCwweDAzLDB4NGEgfX0sCi0gezE2LCAweDkxYTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDA1LDB4NGMsMHgwMCwweDgzLDB4MTAsMHgyYywweGYwIH19LAotIHsxNiwgMHg5MWIwLCAwLCB7MHgwYSwweDE0LDB4MmEsMHgwZCwweDFhLDB4YjMsMHgwMSwweDI0LDB4ZDAsMHgwYiwweGJjLDB4MzIsMHhjYywweDA4LDB4MDMsMHgwMCB9fSwKLSB7MTYsIDB4OTFjMCwgMCwgezB4MjAsMHhjOCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAyLDB4MjIsMHhjMCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MTEgfX0sCi0gezE2LCAweDkxZDAsIDAsIHsweDgzLDB4MDAsMHgyMCwweGMwLDB4MjgsMHgyMCwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MWUwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMSwweDg1LDB4MDAsMHgyZCwweDAwLDB4MGIsMHg3MCwweDAyLDB4MTgsMHgzMiwweDg2LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4OTFmMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MTYsMHhmZSwweDA0LDB4ODYsMHgwMCwweDI3LDB4YTAsMHg4YiwweDcwLDB4NDIsMHhkYywweDgwLDB4YjcgfX0sCi0gezE2LCAweDkyMDAsIDAsIHsweDgwLDB4MjEsMHgwMSwweDA4LDB4ZjgsMHgwYSwweDE4LDB4MDAsMHg4NiwweDA4LDB4MjAsMHhhMCwweDA4LDB4ZTgsMHgwYSwweDY4IH19LAotIHsxNiwgMHg5MjEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwOCwweDNlLDB4MDIsMHhjNiwweDgwLDB4M2QsMHhlMCB9fSwKLSB7MTYsIDB4OTIyMCwgMCwgezB4MGYsMHg0OCwweDAzLDB4MDYsMHgwNCwweGY1LDB4ODIsMHgzNSwweGUwLDB4MGYsMHg3OCwweDAzLDB4ZGEsMHgwMCwweGQzLDB4ODAgfX0sCi0gezE2LCAweDkyMzAsIDAsIHsweDMxLDB4NjAsMHgwNywweDc4LDB4MDMsMHhkZSwweDIwLDB4ZjMsMHhiMCwweDgxLDB4ZTAsMHg0ZiwweDY4LDB4MDcsMHgwZSwweDAyIH19LAotIHsxNiwgMHg5MjQwLCAwLCB7MHhjZiwweDgwLDB4MzEsMHhlMCwweDBjLDB4NzgsMHgxMywweDJhLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTI1MCwgMCwgezB4MDgsMHgxZCwweGFkLDB4YTAsMHhmOSwweDAwLDB4M2YsMHgwMCwweDBmLDB4YjAsMHg1MywweGY4LDB4MTAsMHhhOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweDkyNjAsIDAsIHsweDAwLDB4MGYsMHg4MCwweDAxLDB4ZWMsMHgwMCwweGZiLDB4MDIsMHgzYSwweGMwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiIH19LAotIHsxNiwgMHg5MjcwLCAwLCB7MHg3NCwweDNjLDB4MDAsMHgwZiwweDIwLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwZiwweDMwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4OTI4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAyLDB4OGYsMHg4MCwweDM1LDB4ZTAgfX0sCi0gezE2LCAweDkyOTAsIDAsIHsweDhkLDB4ZDksMHgwMywweDJlLDB4YzQsMHhmNiwweDgwLDB4MzIsMHhhNCwweDBjLDB4YjgsMHgwMywweGRlLDB4MDAsMHhjZiwweDkwIH19LAotIHsxNiwgMHg5MmEwLCAwLCB7MHgzYywweGU0LDB4MGMsMHhiOCwweDAzLDB4ZmUsMHg2NSwweGZmLDB4ODAsMHgwZiwweGVjLDB4OGYsMHhmOCwweDAzLDB4ZmUsMHgwMCB9fSwKLSB7MTYsIDB4OTJiMCwgMCwgezB4YzUsMHg4MCwweDMzLDB4ZTAsMHgwZiwweDY4LDB4MDMsMHgxMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkyYzAsIDAsIHsweGFhLDB4MTEsMHg5YywweDgwLDB4ODQsMHhiMCwweDIwLDB4MjAsMHgyOSwweDczLDB4MGEsMHgwZSwweDgyLDB4YTIsMHhhMCwweGEyIH19LAotIHsxNiwgMHg5MmQwLCAwLCB7MHhhMCwweDRmLDB4M2IsMHgwMywweDg3LDB4ODQsMHhiMiwweDgwLDB4MmMsMHhhMCwweDBhLDB4N2QsMHgwMiwweGRlLDB4ODAsMHhmNyB9fSwKLSB7MTYsIDB4OTJlMCwgMCwgezB4MjAsMHgyNSwweDA2LDB4MDgsMHg3MCwweDAyLDB4YzgsMHg0MCwweDg0LDB4MDAsMHgzNSwweDgwLDB4MGIsMHg2MCwweDAzLDB4NmEgfX0sCi0gezE2LCAweDkyZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgxMCwweDg2LDB4MzgsMHgyNywweGMwIH19LAotIHsxNiwgMHg5MzAwLCAwLCB7MHg0OSwweDU0LDB4MDYsMHg1NCwweDQwLDB4MWQsMHgyMCwweDIxLDB4Y2EsMHgwOSwweDYxLDB4NDAsMHhmOCwweDgwLDB4YjcsMHgyMCB9fSwKLSB7MTYsIDB4OTMxMCwgMCwgezB4MmYsMHgwMCwweDg5LDB4NzAsMHgxMiwweGRjLDB4ODEsMHhiNywweDA0LDB4MmQsMHhjOSwweDBhLDB4NjAsMHgwMiwweGNjLDB4MDAgfX0sCi0gezE2LCAweDkzMjAsIDAsIHsweDhkLDB4MDAsMHgyZCwweGMwLDB4MGIsMHhmOCwweDAyLDB4MDQsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MzMwLCAwLCB7MHg2MCwweDE0LDB4Y2QsMHgyOCwweDgwLDB4MDAsMHgyNCwweDAwLDB4MDksMHhiMCwweDIyLDB4NGMsMHgwMiwweGExLDB4MDEsMHgyMCB9fSwKLSB7MTYsIDB4OTM0MCwgMCwgezB4MzAsMHgxYiwweDIzLDB4MDIsMHhhZiwweDIwLDB4YjMsMHgwOCwweDJjLDB4ODAsMHgxYiwweDMwLDB4MDAsMHhjYywweDA0LDB4YTMgfX0sCi0gezE2LCAweDkzNTAsIDAsIHsweDAxLDB4MjYsMHgzMCwweDA4LDB4YWMsMHgyMiwweGU4LDB4MDIsMHg4MCwweDA4LDB4MmUsMHg4MCwweDRiLDB4YjQsMHgwMiwweDU4IH19LAotIHsxNiwgMHg5MzYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MTAsMHg4YiwweDgwLDB4MzYsMHhmMCB9fSwKLSB7MTYsIDB4OTM3MCwgMCwgezB4MmQsMHhiYywweDBiLDB4NmMsMHgwMSwweGRhLDB4MDQsMHgyMiwweDQwLDB4N2QsMHg5NCwweDIyLDB4ZTQsMHgwMCwweGFiLDB4NDQgfX0sCi0gezE2LCAweDkzODAsIDAsIHsweDJlLDB4YzAsMHgwOSwweGI4LDB4MDIsMHhmYywweDAwLDB4YmYsMHgwMCwweDNlLDB4ZjAsMHhjYSwweDkyLDB4MDIsMHhlNCwweDAyIH19LAotIHsxNiwgMHg5MzkwLCAwLCB7MHhjYiwweDAwLDB4NmUsMHg0MCwweDBmLDB4ODQsMHgwMSwweDJlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTNhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2EsMHhlMCwweDJlLDB4YmMsMHgwMywweDk4LDB4MDgsMHhlYSwweDQwLDB4MzYgfX0sCi0gezE2LCAweDkzYjAsIDAsIHsweDQzLDB4OGMsMHg5MCwweDAzLDB4YTQsMHg0NCwweDJhLDB4NDAsMHgzZSwweDEwLDB4MGUsMHhiNSwweDgzLDB4ZWMsMHgxNCwweGZiIH19LAotIHsxNiwgMHg5M2MwLCAwLCB7MHgwMCwweDI2LDB4MDAsMHgwZSwweDkyLDB4MDMsMHhlMCwweDQwLDB4ZmEsMHgwMCwweDE2LDB4MDAsMHgwZiwweDgwLDB4MTMsMHhlMCB9fSwKLSB7MTYsIDB4OTNkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlYywweDAyLDB4ZmEsMHg4MCwweDNmLDB4ZTIgfX0sCi0gezE2LCAweDkzZTAsIDAsIHsweDBmLDB4YjAsMHgwYiwweDI0LDB4MDAsMHhlZiwweDkyLDB4YmIsMHhlMCwweDFjLDB4ZDAsMHgwMywweDc0LDB4MDAsMHhjZiwweDA1IH19LAotIHsxNiwgMHg5M2YwLCAwLCB7MHgzYiwweDQwLDB4MGYsMHhjOCwweDAzLDB4NWMsMHgwMCwweGNmLDB4MDAsMHgzMiwweGMyLDB4NGQsMHhjMSwweDIzLDB4MzQsMHg0MCB9fSwKLSB7MTYsIDB4OTQwMCwgMCwgezB4Y2YsMHgwMCwweDE3LDB4NDQsMHgwYywweGQxLDB4ODMsMHgwMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk0MTAsIDAsIHsweDgxLDB4MDQsMHg2YywweDAwLDB4OGIsMHg4NCwweDJlLDB4NTQsMHgwYiwweGJjLDB4MGEsMHgyOSwweDgwLDB4OGIsMHg4MCwweDMyIH19LAotIHsxNiwgMHg5NDIwLCAwLCB7MHgwMCwweDA4LDB4OWMsMHgwMywweGE3LDB4MDAsMHhhYiwweDg0LDB4MmUsMHg3YywweDBiLDB4ODAsMHgwMiwweDJjLDB4MTAsMHhkYiB9fSwKLSB7MTYsIDB4OTQzMCwgMCwgezB4MDEsMHgzNiwweDAwLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgwMCwweDgyLDB4MDAsMHgyMiwweDAwLDB4MDgsMHg5MCwweDAyLDB4MjQgfX0sCi0gezE2LCAweDk0NDAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MGMsMHgwMCwweDg5LDB4MTAsMHg2NiwweDkwIH19LAotIHsxNiwgMHg5NDUwLCAwLCB7MHgwYiwweGI4LDB4MDIsMHg2ZSwweDEyLDB4YTMsMHg0MSwweDIwLDB4MDQsMHgwYSwweDk4LDB4MjIsMHhlMiwweDAwLDB4ODksMHgxOSB9fSwKLSB7MTYsIDB4OTQ2MCwgMCwgezB4MmUsMHhjMCwweDRiLDB4MzEsMHgyMiwweDZjLDB4MDgsMHg4MywweDAwLDB4MjIsMHhjMCwweDA5LDB4OTAsMHgwMiwweDI0LDB4MDAgfX0sCi0gezE2LCAweDk0NzAsIDAsIHsweDg5LDB4MDAsMHgyYSwweDQwLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NDgwLCAwLCB7MHgwOCwweDEwLDB4MGMsMHgwMCwweDgwLDB4MjAsMHgyYywweDBlLDB4MWIsMHgzMCwweDAyLDB4MDQsMHg0MSwweDgwLDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4OTQ5MCwgMCwgezB4MTIsMHgxOCwweDE2LDB4NDIsMHgwMCwweDUwLDB4YTAsMHg0MCwweDJjLDB4ODgsMHgxYiwweDMwLDB4MDIsMHgwYywweDgxLDB4OTMgfX0sCi0gezE2LCAweDk0YTAsIDAsIHsweDAwLDB4MjQsMHgwMCwweDA4LDB4MTAsMHgyYSwweDAwLDB4MGEsMHg4OCwweDAwLDB4MjgsMHgwMCwweDI4LDB4MDAsMHgwYSwweDAyIH19LAotIHsxNiwgMHg5NGIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDdjLDB4MTEsMHhlOCwweDAwLDB4MjYsMHg5OCB9fSwKLSB7MTYsIDB4OTRjMCwgMCwgezB4MGYsMHhiMCwweDEzLDB4MjEsMHgwYywweGViLDB4NjAsMHgzYSwweGQ4LDB4MjgsMHg4NCwweGEyLDB4ZTEsMHg4MCwweGM4LDB4MjAgfX0sCi0gezE2LCAweDk0ZDAsIDAsIHsweDNlLDB4NWUsMHgxZiwweDgyLDB4MDMsMHg3YywweDAwLDB4Y2YsMHgwMCwweDMyLDB4YzAsMHg0ZCwweDgwLDB4MDcsMHgyNSwweDAwIH19LAotIHsxNiwgMHg5NGUwLCAwLCB7MHhjOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweDAwLDB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTRmMCwgMCwgezB4YTEsMHgxMSwweGZjLDB4MDAsMHhmOCwweDEzLDB4MWUsMHgwMCwweDBiLDB4ZjAsMHgwMSwweGYwLDB4ZDAsMHhmOSwweDE5LDB4MWYgfX0sCi0gezE2LCAweDk1MDAsIDAsIHsweDA4LDB4NGYsMHhjMCwweDEzLDB4YTEsMHgwMCwweGY4LDB4NjIsMHgzZiwweGMwLDB4MGIsMHhjNCwweDA3LDB4ZWQsMHgwMCwweGZmIH19LAotIHsxNiwgMHg5NTEwLCAwLCB7MHgwMCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MjMsMHhmMCwweGEwLDB4ZmMsMHgwMCwweDMzLDB4MDAsMHgwZiwweGQwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4OTUyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4ZmYsMHgwYywweDNmLDB4MjAgfX0sCi0gezE2LCAweDk1MzAsIDAsIHsweDBjLDB4YzksMHgwMywweDMyLDB4MDAsMHhjZiwweDM4LDB4M2YsMHhkMCwweDBmLDB4NDgsMHgwMywweGZjLDB4YTAsMHhjZSwweDIyIH19LAotIHsxNiwgMHg5NTQwLCAwLCB7MHgzMywweDAwLDB4MGYsMHhjMSwweDAzLDB4M2MsMHgwMCwweGZmLDB4MDAsMHgzZCwweGM0LDB4NGMsMHhjMCwweDIzLDB4OGMsMHhlNCB9fSwKLSB7MTYsIDB4OTU1MCwgMCwgezB4ZmYsMHgxMCwweDM3LDB4MjAsMHgwOCwweGYxLDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk1NjAsIDAsIHsweDgwLDB4MTAsMHhmZSwweDAwLDB4YmYsMHg4MCwweDJlLDB4NzQsMHgwNSwweDIyLDB4MDIsMHhhMiwweDEwLDB4ZGYsMHg2MSwweDJmIH19LAotIHsxNiwgMHg5NTcwLCAwLCB7MHhkMCwweDhiLDB4OTAsMHgwMiwweDNkLDB4YTQsMHhhYSwweDkwLDB4MjIsMHhmNCwweDBiLDB4MDcsMHgxMiwweDFkLDB4MjAsMHhiYiB9fSwKLSB7MTYsIDB4OTU4MCwgMCwgezB4YzAsMHgyZiwweGQ4LDB4ODgsMHg5NywweDgyLDB4ZmQsMHg4MCwweGVmLDB4NzIsMHgyMiwweDA4LDB4MjgsMHhmNiwweDIzLDB4ZTAgfX0sCi0gezE2LCAweDk1OTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHg0MCwweGIzLDB4MDAsMHgyYywweDAwIH19LAotIHsxNiwgMHg5NWEwLCAwLCB7MHgwOCwweDgyLDB4MDIsMHgyMiwweDAwLDB4ODMsMHgwMSwweDA4LDB4Y2MsMHg4YiwweDIwLDB4ODIsMHhjYywweDAwLDB4OTAsMHgwMCB9fSwKLSB7MTYsIDB4OTViMCwgMCwgezB4MjAsMHgwMCwweDRiLDB4MTIsMHgwMiwweDBkLDB4ODAsMHhiMywweDQwLDB4MmMsMHhkOCwweDA4LDB4MjAsMHg0MiwweDhjLDB4ODAgfX0sCi0gezE2LCAweDk1YzAsIDAsIHsweGIzLDB4MjAsMHgyNiwweDAyLDB4MTgsMHgzMywweDI2LDB4ZTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NWQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwOSwweGJiLDB4MDAsMHgyZSwweDYwLDB4MDgsMHg4MCwweDAyLDB4YTIsMHgwMCwweDliLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4OTVlMCwgMCwgezB4YzAsMHgwYiwweGFjLDB4MDIsMHgyYywweDAwLDB4YmEsMHgwNiwweDIyLDB4YzIsMHgwYiwweDk0LDB4MDIsMHhhYywweDEwLDB4YmIgfX0sCi0gezE2LCAweDk1ZjAsIDAsIHsweDAwLDB4MmUsMHhjMSwweDA4LDB4YTgsMHgwMiwweGVjLDB4MDAsMHhhYiwweDAwLDB4MjIsMHgwMCwweDA4LDB4YjAsMHgwNiwweGYwIH19LAotIHsxNiwgMHg5NjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgxNSwweGVjLDB4MDAsMHhmYiwweDA0LDB4M2UsMHg2MCB9fSwKLSB7MTYsIDB4OTYxMCwgMCwgezB4MjgsMHg4MiwweDEzLDB4MGUsMHgwOCwweGNiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHg4YywweDAzLDB4ZWMsMHgxMSwweGRiLDB4MjAgfX0sCi0gezE2LCAweDk2MjAsIDAsIHsweGIyLDB4OTAsMHg0YiwweGE4LDB4MGIsMHgyYywweDAwLDB4YmIsMHgwMCwweDJjLDB4YzAsMHgwYywweDg4LDB4MTMsMHhhYywweDAwIH19LAotIHsxNiwgMHg5NjMwLCAwLCB7MHhmMywweDAwLDB4MzYsMHgwNiwweDQ4LDB4YjAsMHgxMiwweGM0LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTY0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYiwweDA4LDB4M2QsMHg0MCwweDhmLDB4ZWEsMHgwMSwweGY0LDB4MDAsMHhmZiwweDAxLDB4MmYgfX0sCi0gezE2LCAweDk2NTAsIDAsIHsweGMwLDB4MGYsMHhkMCwweDIyLDB4ZmMsMHgwNCwweGFmLDB4MDAsMHgzZiwweGMwLDB4OGYsMHhlOSwweDAzLDB4N2MsMHgwMCwweGZmIH19LAotIHsxNiwgMHg5NjYwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweDkwLDB4NDMsMHhmYywweDIwLDB4ZWYsMHgwMiwweDNmLDB4MDAsMHg4ZiwweGYwLDB4MDMsMHhiOCB9fSwKLSB7MTYsIDB4OTY3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MTAsMHhhYywweDA4LDB4ZWIsMHgwMCwweDEyLDB4NDAgfX0sCi0gezE2LCAweDk2ODAsIDAsIHsweDBmLDB4OTAsMHgwMywweDI4LDB4MjAsMHhhYiwweDAwLDB4M2EsMHhjMCwweDhmLDB4ODUsMHg4MywweGFjLDB4MTAsMHhmMywweDUwIH19LAotIHsxNiwgMHg5NjkwLCAwLCB7MHgzMiwweDkwLDB4NGMsMHgzNCwweDEzLDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGMsMHg5OCwweDAzLDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4OTZhMCwgMCwgezB4ZWIsMHg4MCwweDMyLDB4MTIsMHgwZCwweGIwLDB4MGIsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk2YjAsIDAsIHsweDg4LDB4MDEsMHgzYywweDEwLDB4MGYsMHgwNSwweGEyLDB4NTAsMHgwYywweDEwLDB4MDIsMHgyMiwweDEwLDB4OGYsMHgwMCwweDIzIH19LAotIHsxNiwgMHg5NmMwLCAwLCB7MHhjMCwweDBiLDB4ODgsMHgxMiwweDNjLDB4MDAsMHg5YiwweDgyLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDNjLDB4MDAsMHg4ZiB9fSwKLSB7MTYsIDB4OTZkMCwgMCwgezB4YTAsMHgyZiwweGMwLDB4MDgsMHhiMCwweDAyLDB4M2MsMHgwOCwweDhmLDB4MDIsMHgyMCwweDAwLDB4MDgsMHhmMCwweDAzLDB4MjYgfX0sCi0gezE2LCAweDk2ZTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGQsMHgyMCwweDkzLDB4MDAsMHgyMCwweGIyIH19LAotIHsxNiwgMHg5NmYwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHgwMSwweDAwLDB4YTMsMHgwMCwweDY4LDB4YzAsMHgwYiwweDg0LDB4MDIsMHhhYywweDAwLDB4YjMsMHg4MCB9fSwKLSB7MTYsIDB4OTcwMCwgMCwgezB4MjAsMHg0MCwweDBhLDB4MzAsMHgwMiwweDRjLDB4MDAsMHhhMywweDA0LDB4MmMsMHhjMCwweDA4LDB4MDAsMHgwMiwweDBkLDB4MDAgfX0sCi0gezE2LCAweDk3MTAsIDAsIHsweGEzLDB4MDAsMHgyMCwweDI0LDB4MDgsMHgzMCwweDAyLDB4MzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NzIwLCAwLCB7MHg3MCwweDAxLDB4MWMsMHgyMCwweDk3LDB4ODAsMHgyMywweDYwLDB4MDgsMHg3OCwweDEyLDB4M2EsMHgwMCwweDgzLDB4OTEsMHgyOSB9fSwKLSB7MTYsIDB4OTczMCwgMCwgezB4ZTQsMHgwYiwweDU5LDB4MDIsMHgxZSwweDAwLDB4OTcsMHg5MCwweDIwLDB4ZmMsMHgwYSwweDc4LDB4MDIsMHgxZSwweDAwLDB4ODcgfX0sCi0gezE2LCAweDk3NDAsIDAsIHsweDkwLDB4MmQsMHhlMCwweDE5LDB4NTksMHgwMiwweDFlLDB4ODAsMHg4MywweDgwLDB4NjEsMHhhMCwweDA4LDB4NzgsMHgwMiwweDE4IH19LAotIHsxNiwgMHg5NzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4NDAsMHhkMywweDMyLDB4MzAsMHgwNiB9fSwKLSB7MTYsIDB4OTc2MCwgMCwgezB4MGYsMHgzMCwweDAzLDB4MDQsMHg2NCwweGUzLDB4MDEsMHgzOCwweGM0LDB4MWYsMHgzMCwweDA3LDB4OGMsMHgxOCwweGYxLDB4MDAgfX0sCi0gezE2LCAweDk3NzAsIDAsIHsweDMwLDB4NGMsMHgwZSwweDMwLDB4MDMsMHg0YywweDAwLDB4ZTMsMHgwMCwweDJjLDB4YzAsMHgwYywweDIwLDB4MDMsMHgwZSwweDAwIH19LAotIHsxNiwgMHg5NzgwLCAwLCB7MHhlMywweDAwLDB4MzIsMHgwOCwweDBjLDB4YjEsMHgwMywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTc5MCwgMCwgezB4NDAsMHgxZCwweDljLDB4ODAsMHhlZiwweDEwLDB4M2QsMHg0NCwweDRmLDB4ZjEsMHgwNywweGNjLDB4MDAsMHhmZiwweDA4LDB4MzYgfX0sCi0gezE2LCAweDk3YTAsIDAsIHsweGM2LDB4Y2YsMHhiMCwweDAzLDB4ZmMsMHgwMCwweDk3LDB4MDAsMHhiZSwweGNjLDB4MGQsMHhiMSwweDAzLDB4ZmQsMHgwNCwweGZmIH19LAotIHsxNiwgMHg5N2IwLCAwLCB7MHgwYywweDNmLDB4ZDIsMHg5ZSwweGUwLDB4NGIsMHhmZCwweDIwLDB4ZmYsMHgwMiwweDNmLDB4ODAsMHgwZSwweGYwLDB4MTMsMHhkMCB9fSwKLSB7MTYsIDB4OTdjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhlYywweGMwLDB4Y2IsMHgyOCwweDNlLDB4YzAgfX0sCi0gezE2LCAweDk3ZDAsIDAsIHsweDBmLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAxLDB4MzIsMHhlOSwweDBjLDB4MjgsMHgwMywweDJjLDB4MDAsMHhmYiwweDAwIH19LAotIHsxNiwgMHg5N2UwLCAwLCB7MHgzMiwweGMwLDB4MGMsMHhiNCwweDgzLDB4MmMsMHgwMSwweGVmLDB4MDAsMHhiMiwweGM4LDB4MGMsMHgyMCwweDAzLDB4NmQsMHgwMCB9fSwKLSB7MTYsIDB4OTdmMCwgMCwgezB4Y2IsMHgxMCwweDNlLDB4MDAsMHgwZiwweGIyLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk4MDAsIDAsIHsweGM4LDB4OTEsMHg5YywweGM0LDB4ODcsMHg2MCwweDJkLDB4YzAsMHgwYiwweDYwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgxMiwweDIwIH19LAotIHsxNiwgMHg5ODEwLCAwLCB7MHhjYywweDBhLDB4NzAsMHgwMiwweDFjLDB4YzAsMHhiMywweDAwLDB4YTAsMHhjMCwweGM4LDB4NzAsMHgyMiwweDFjLDB4ODAsMHhiNyB9fSwKLSB7MTYsIDB4OTgyMCwgMCwgezB4MjQsMHgyMSwweGM4LDB4NDgsMHg1MCwweDAyLDB4MGMsMHg4MCwweDg3LDB4MTAsMHgyZCwweDQwLDB4MGIsMHg3MiwweDgyLDB4ZjIgfX0sCi0gezE2LCAweDk4MzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MSwweDAwLDB4OGUsMHgwMiwweDg3LDB4ODAsMHgyZCwweGUwIH19LAotIHsxNiwgMHg5ODQwLCAwLCB7MHgwYiwweDc4LDB4MTIsMHhkZSwweDAwLDB4YjcsMHhhMCwweDIxLDB4ZTAsMHgwOCwweGY4LDB4OGUsMHgxZSwweDQwLDB4YjcsMHg4OCB9fSwKLSB7MTYsIDB4OTg1MCwgMCwgezB4MjEsMHhlMCwweDA4LDB4MzgsMHgwMiwweDFlLDB4NDAsMHhiMywweGExLDB4MjAsMHhlOCwweDQ4LDB4ZjgsMHg4MiwweDVlLDB4MDIgfX0sCi0gezE2LCAweDk4NjAsIDAsIHsweDg3LDB4ODAsMHgyZCwweDIyLDB4MGIsMHg3OSwweDAyLDB4ZTAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ODcwLCAwLCB7MHgwOCwweDA0LDB4Y2MsMHgwNCwweDgzLDB4MDIsMHgyYywweGQ0LDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHhhMCB9fSwKLSB7MTYsIDB4OTg4MCwgMCwgezB4YzAsMHg4YSwweDM4LDB4MDYsMHgwYywweDAwLDB4YjMsMHg4MCwweDIwLDB4ZTEsMHg0OCwweDM5LDB4MTIsMHgyYywweDAwLDB4YjMgfX0sCi0gezE2LCAweDk4OTAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHg4MiwweDZjLDB4MDAsMHg4MywweDAwLDB4MmMsMHg0OCwweDBiLDB4MzAsMHgwMiwweGMyIH19LAotIHsxNiwgMHg5OGEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweGE4LDB4MDAsMHhjYSwweDAwLDB4M2YsMHhhMCB9fSwKLSB7MTYsIDB4OThiMCwgMCwgezB4MGYsMHhlNCwweDAzLDB4ZDgsMHgwMCwweGZhLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhlOCwweDAzLDB4MjgsMHgwMCwweGZhLDB4NDAgfX0sCi0gezE2LCAweDk4YzAsIDAsIHsweDMyLDB4YTgsMHgyYywweGEwLDB4MDksMHgyOCwweDA4LDB4ZjIsMHgwMCwweDMyLDB4ODAsMHgwYywweGU0LDB4MDMsMHg2OCwweDAwIH19LAotIHsxNiwgMHg5OGQwLCAwLCB7MHhjYSwweDAwLDB4M2YsMHg4MCwweDBmLDB4YTAsMHgwMywweGZiLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OThlMCwgMCwgezB4NDgsMHgwMCwweGMwLDB4MDAsMHhmOCwweDAxLDB4M2UsMHgxMiwweDBiLDB4ODAsMHgwMywweGUwLDB4NDAsMHhmOCwweDAwLDB4M2UgfX0sCi0gezE2LCAweDk4ZjAsIDAsIHsweDAwLDB4NGYsMHg4NCwweDAzLDB4ZTAsMHgwNCwweGYwLDB4MDgsMHgzZSwweDAwLDB4NGYsMHgwMCwweDAzLDB4ZTAsMHgwMCwweGY4IH19LAotIHsxNiwgMHg5OTAwLCAwLCB7MHg0MSwweDNlLDB4MDAsMHgyZiwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4OTkxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNiwweDAwLDB4YzksMHgxMiwweDNlLDB4NTAgfX0sCi0gezE2LCAweDk5MjAsIDAsIHsweDhmLDB4OTAsMHg4MywweGU0LDB4MjAsMHhjMSwweDAwLDB4M2EsMHg0MSwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHg5OTMwLCAwLCB7MHgzMCwweDY4LDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGQ5LDB4MDAsMHgzYSwweDQwLDB4MGUsMHg5OCwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4OTk0MCwgMCwgezB4YzksMHg5MCwweDNlLDB4NjksMHgwYywweDEwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk5NTAsIDAsIHsweDgwLDB4MDQsMHg2NywweDRhLDB4ODksMHg4MCwweDJlLDB4NTAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDgwLDB4YTksMHgwMCwweDIyIH19LAotIHsxNiwgMHg5OTYwLCAwLCB7MHg0MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAxLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MTAsMHg4OSB9fSwKLSB7MTYsIDB4OTk3MCwgMCwgezB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MywweDAyLDB4MjQsMHgyMiwweDg5LDB4NDIsMHgyYywweDYwLDB4NDgsMHg5MCwweDAyLDB4MjAgfX0sCi0gezE2LCAweDk5ODAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4MjQsMHgwMCwweDk5LDB4MDAsMHgyZSwweDQwIH19LAotIHsxNiwgMHg5OTkwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCB9fSwKLSB7MTYsIDB4OTlhMCwgMCwgezB4MjMsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDI0LDB4MDAsMHg5OSwweDAwLDB4MmEsMHg0MCwweDBhLDB4OTAsMHgwNiwweDI0LDB4NDAgfX0sCi0gezE2LCAweDk5YjAsIDAsIHsweDg5LDB4NDEsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OWMwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHg4MCwweDkxLDB4MjAsMHgyYywweDQ4LDB4MGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweGExLDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4OTlkMCwgMCwgezB4NDgsMHgwYiwweDEwLDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMCwweGExLDB4NDksMHgwOCwweDUyLDB4NGEsMHgwNCwweDgwLDB4ODEgfX0sCi0gezE2LCAweDk5ZTAsIDAsIHsweDAwLDB4MjAsMHg0OCwweDQ4LDB4MTIsMHgwYSwweDA0LDB4ODAsMHg4MSwweDIwLDB4MmMsMHg0MCwweDI4LDB4MTIsMHgwMiwweDAyIH19LAotIHsxNiwgMHg5OWYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDgsMHhkOCwweDA0LDB4M2UsMHg4MCB9fSwKLSB7MTYsIDB4OWEwMCwgMCwgezB4MGYsMHg4NSwweDAzLDB4ZTAsMHgwMCwweGMwLDB4NTAsMHgzYSwweDE0LDB4MGYsMHhhNSwweDAzLDB4ZTEsMHg0MCwweGY4LDB4MDIgfX0sCi0gezE2LCAweDlhMTAsIDAsIHsweDMyLDB4ODAsMHgyYywweGM1LDB4MDMsMHgyMSwweDQwLDB4ZGEsMHgwMCwweDNhLDB4MTQsMHgwZSwweDg1LDB4NDMsMHgyMSwweDQwIH19LAotIHsxNiwgMHg5YTIwLCAwLCB7MHhjOCwweDUyLDB4M2UsMHgxNCwweDBjLDB4ODUsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWEzMCwgMCwgezB4ODgsMHgxZCwweGU0LDB4NDQsMHhlOSwweDEwLDB4M2YsMHg0NCwweDRmLDB4ZDAsMHgwMiwweGZjLDB4MDAsMHhmOSwweDEyLDB4M2UgfX0sCi0gezE2LCAweDlhNDAsIDAsIHsweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTQsMHg0MCwweGZkLDB4MTAsMHgzZSwweDQ0LDB4NGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGU5IH19LAotIHsxNiwgMHg5YTUwLCAwLCB7MHg0MCwweDNlLDB4NDQsMHgwZiwweGQxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMiwweDNmLDB4NDAsMHgwZiwweDkxLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4OWE2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhmNiwweGEwLDB4ZmQsMHg4MCwweGIzLDB4NDAgfX0sCi0gezE2LCAweDlhNzAsIDAsIHsweDBjLDB4MTAsMHgwMywweDE0LDB4MDAsMHhmZCwweGEwLDB4MzIsMHg0MCwweDBmLDB4ZDEsMHgwMywweGU0LDB4MDAsMHhmNSwweDg2IH19LAotIHsxNiwgMHg5YTgwLCAwLCB7MHgzMywweDYwLDB4MmMsMHg5YSwweDgzLDB4MjQsMHgwNCwweGZkLDB4YTgsMHgyMiwweDQwLDB4MGQsMHg1MCwweDQzLDB4ZjQsMHgwMCB9fSwKLSB7MTYsIDB4OWE5MCwgMCwgezB4ZmQsMHgwMCwweDMzLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlhYTAsIDAsIHsweDc4LDB4MTAsMHhlMSwweDAwLDB4YjgsMHgwMCwweDIyLDB4MDAsMHgyOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4YjgsMHgwMCwweGEyIH19LAotIHsxNiwgMHg5YWIwLCAwLCB7MHgwMCwweDBiLDB4OGEsMHgxMiwweGUwLDB4MDAsMHhiOCwweDA0LDB4MjIsMHgxNCwweDA4LDB4ODQsMHgwMiwweDIwLDB4MDAsMHhiOCB9fSwKLSB7MTYsIDB4OWFjMCwgMCwgezB4NDAsMHgyMCwweDAwLDB4ODgsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHhhMiwweDAwLDB4MGIsMHg4MCwweDAyLDB4MGUgfX0sCi0gezE2LCAweDlhZDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA1LDB4YzQsMHgwMCwweGIxLDB4NDIsMHgyMCwweDQwIH19LAotIHsxNiwgMHg5YWUwLCAwLCB7MHgwOCwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjEsMHg0MCwweDIwLDB4NDAsMHgwYiwweDEwLDB4MDYsMHhjNCwweDAwLDB4YjEsMHg0MCB9fSwKLSB7MTYsIDB4OWFmMCwgMCwgezB4MjQsMHg0MCwweDA4LDB4MTAsMHgwMiwweDQ0LDB4MDQsMHhiMSwweDAwLDB4NjAsMHg0MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4MDAgfX0sCi0gezE2LCAweDliMDAsIDAsIHsweGIxLDB4MDAsMHgyMCwweDQwLDB4MGIsMHgxMCwweDAyLDB4MTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YjEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGI5LDB4MDIsMHgyMiwweDYwLDB4MDgsMHg5NCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDEsMHgyMiB9fSwKLSB7MTYsIDB4OWIyMCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDYsMHhlNCwweDAwLDB4YjksMHgyMCwweDI2LDB4NDAsMHgwOCwweDk0LDB4MDIsMHg2NCwweDA4LDB4YjkgfX0sCi0gezE2LCAweDliMzAsIDAsIHsweDAwLDB4MjIsMHg0MCwweDA4LDB4OTIsMHgwMiwweGVjLDB4MDgsMHhiOSwweDA0LDB4MjIsMHg0MSwweDBiLDB4MTAsMHgwMiwweDA2IH19LAotIHsxNiwgMHg5YjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MTAsMHhmMSwweDAwLDB4MzIsMHg2MCB9fSwKLSB7MTYsIDB4OWI1MCwgMCwgezB4MGMsMHg5NCwweDBiLDB4MjUsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4OGYsMHg5NCwweGQzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfX0sCi0gezE2LCAweDliNjAsIDAsIHsweDM2LDB4NDAsMHg0YywweDkwLDB4MGIsMHg2NCwweDAwLDB4ZjEsMHgwMCwweDMyLDB4NDAsMHgwZCwweDkyLDB4MTIsMHhlNCwweDAwIH19LAotIHsxNiwgMHg5YjcwLCAwLCB7MHhmOSwweDAwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHgwYiwweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWI4MCwgMCwgezB4NjgsMHg0MSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDhmLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweDliOTAsIDAsIHsweDQwLDB4MGYsMHg5YywweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHhiYSwweDQwLDB4MmYsMHg5MCwweDIzLDB4YTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHg5YmEwLCAwLCB7MHgwOCwweGJlLDB4NDAsMHhjZiwweDkwLDB4MDMsMHhlNCwweDEwLDB4ZjEsMHgwMSwweDNlLDB4NDEsMHgwZiwweDkwLDB4MDMsMHhkYSB9fSwKLSB7MTYsIDB4OWJiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweGM4LDB4ZjgsMHgwMCwweDNlLDB4MDMgfX0sCi0gezE2LCAweDliYzAsIDAsIHsweDBjLDB4ODQsMHgwMywweGExLDB4MTAsMHhlOCwweDAwLDB4MzIsMHgwMCwweDhjLDB4ODUsMHg4MywweGUwLDB4MDAsMHhjMCwweDAwIH19LAotIHsxNiwgMHg5YmQwLCAwLCB7MHgzOCwweDBjLDB4MmMsMHgwMCwweDAzLDB4NjAsMHgwMCwweGM4LDB4MDAsMHgzYywweDAwLDB4MGQsMHg4MCwweDAyLDB4MjAsMHgxMCB9fSwKLSB7MTYsIDB4OWJlMCwgMCwgezB4YzgsMHgyMCwweGIyLDB4MDIsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDliZjAsIDAsIHsweDI4LDB4MDUsMHgzOSwweDEwLDB4YmUsMHgwNCwweDZmLDB4YTAsMHgwOCwweGEwLDB4MDIsMHgzYSwweDAwLDB4ODIsMHgwMCwweGEyIH19LAotIHsxNiwgMHg5YzAwLCAwLCB7MHg4MCwweDhkLDB4ZWMsMHgwMywweGE4LDB4MDAsMHg4YSwweDAwLDB4MjMsMHg4MCwweDA4LDB4YTAsMHgyMiwweDI4LDB4MDAsMHg4ZSB9fSwKLSB7MTYsIDB4OWMxMCwgMCwgezB4Y2MsMHgyZiwweDgwLDB4MDgsMHhlOCwweGMyLDB4YjgsMHgwMCwweDhlLDB4NjAsMHgyMywweDkwLDB4MGIsMHhhMCwweDAyLDB4Y2EgfX0sCi0gezE2LCAweDljMjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGUsMHgwOCwweGIwLDB4NzIsMHgyYywweGQwIH19LAotIHsxNiwgMHg5YzMwLCAwLCB7MHgyOCwweGIwLDB4MDYsMHg4YywweDAxLDB4YTEsMHgwMiwweDIwLDB4YzAsMHgwOCwweDM4LDB4MDIsMHhjYywweDAwLDB4ODMsMHgwMCB9fSwKLSB7MTYsIDB4OWM0MCwgMCwgezB4MjAsMHhjMCwweDI5LDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MSwweDAwLDB4MmMsMHhjMCwweDA4LDB4MzIsMHgwMiwweDBjLDB4NDAgfX0sCi0gezE2LCAweDljNTAsIDAsIHsweDgzLDB4MDAsMHgyMCwweGY0LDB4MGIsMHgzMCwweDAyLDB4Y2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YzYwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHgwMCwweGI0LDB4MDAsMHgyZCwweGQwLDB4NDgsMHhmMiwweDAyLDB4MWUsMHgyMSwweDg1LDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4OWM3MCwgMCwgezB4ZTgsMHgwOSwweDcyLDB4MDIsMHg4ZSwweDgwLDB4OGYsMHgwMSwweDIwLDB4YzAsMHgwOSwweDcyLDB4MDIsMHgwZSwweDgwLDB4ODcgfX0sCi0gezE2LCAweDljODAsIDAsIHsweDAwLDB4MmQsMHhjYywweDE4LDB4NTgsMHgwMiwweDhlLDB4MDAsMHg4NSwweDAwLDB4MjEsMHhjMCwweDBiLDB4NzIsMHgwMiwweGU4IH19LAotIHsxNiwgMHg5YzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhiNCwweDgwLDB4MmQsMHhlMCB9fSwKLSB7MTYsIDB4OWNhMCwgMCwgezB4MGMsMHg3OCwweDgzLDB4OWEsMHgwMCwweGVkLDB4ZDAsMHgzMSwweGY0LDB4MGMsMHg2YSwweDAzLDB4ZGUsMHg4MiwweGM3LDB4ODAgfX0sCi0gezE2LCAweDljYjAsIDAsIHsweDM5LDB4ZTAsMHgwZCwweGY4LDB4ODMsMHg1ZSwweGMyLDB4YzUsMHg4MCwweDNkLDB4ZTgsMHgwYywweDY4LDB4MDMsMHgxMiwweDAwIH19LAotIHsxNiwgMHg5Y2MwLCAwLCB7MHhjZiwweDgwLDB4MzEsMHhlMCwweDBmLDB4N2UsMHg4MywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWNkMCwgMCwgezB4MDgsMHgwZCwweGFjLDB4MDgsMHhmOCwweDAwLDB4M2MsMHhjMCwweDBmLDB4YjMsMHgwMywweGVjLDB4MDAsMHhmOSwweDAyLDB4M2UgfX0sCi0gezE2LCAweDljZTAsIDAsIHsweGM4LDB4MGYsMHhiMCwweDAzLDB4ZWQsMHg0MCwweGZiLDB4MDAsMHhiZSwweDgwLDB4MGUsMHhiMywweDAzLDB4ZWQsMHhjMCwweGZiIH19LAotIHsxNiwgMHg5Y2YwLCAwLCB7MHgwMCwweDNlLDB4ZDIsMHgyZSwweDgwLDB4MDMsMHhlYywweDAyLDB4ZjksMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4OWQwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4ZjAsMHg5MSwweDMzLDB4ZTAgfX0sCi0gezE2LCAweDlkMTAsIDAsIHsweDhmLDB4ZjgsMHgwMywweGZlLDB4MDAsMHhmZCwweDgwLDB4M2YsMHhlMCwweDBjLDB4NzgsMHg4MywweDNmLDB4MDAsMHhjZiwweDgwIH19LAotIHsxNiwgMHg5ZDIwLCAwLCB7MHgzZiwweGEwLDB4MGMsMHhmOCwweDAzLDB4M2UsMHgwMCwweGNkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhmOCwweDEzLDB4ZmUsMHgxMCB9fSwKLSB7MTYsIDB4OWQzMCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4MjAsMHgwZiwweGY5LDB4NDMsMHhkMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlkNDAsIDAsIHsweGE4LDB4MTEsMHg5YywweDAwLDB4YjQsMHhjMSwweDMxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhkNCwweDEwLDB4ZTUsMHgyMCwweDJmIH19LAotIHsxNiwgMHg5ZDUwLCAwLCB7MHhjOCwweDBmLDB4NDAsMHgwMywweDVjLDB4MDAsMHg4NywweDAwLDB4MmQsMHg4MCwweDA4LDB4NzAsMHgwMiwweDFjLDB4NDAsMHg4NyB9fSwKLSB7MTYsIDB4OWQ2MCwgMCwgezB4MTAsMHgyZCwweGMwLDB4MGIsMHg3NiwweDAyLDB4ZGMsMHg4MCwweGI3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZWEgfX0sCi0gezE2LCAweDlkNzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4OWMsMHgwMCwweGI2LDB4MjIsMHgyMSwweGQwIH19LAotIHsxNiwgMHg5ZDgwLCAwLCB7MHgwYiwweDcwLDB4ODIsMHhkOCwweDQwLDB4YjUsMHgwMiwweDJkLDB4YzAsMHg4OCwweDY1LDB4MDIsMHgwYywweDAwLDB4ODcsMHgxOCB9fSwKLSB7MTYsIDB4OWQ5MCwgMCwgezB4MmMsMHgwNCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDIsMHg4NSwweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHg0NiwweDkwLDB4MTAgfX0sCi0gezE2LCAweDlkYTAsIDAsIHsweGI2LDB4MDAsMHgyZCwweDAwLDB4MGIsMHg3MCwweDIyLDB4YzQsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZGIwLCAwLCB7MHg2MCwweDE0LDB4Y2MsMHgwOCwweGIyLDB4MDAsMHhhNCwweGMwLDB4MGIsMHgzMCwweDQyLDB4YzYsMHgxMCwweGExLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4OWRjMCwgMCwgezB4YzAsMHgwYSwweDAwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4MDgsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMgfX0sCi0gezE2LCAweDlkZDAsIDAsIHsweDAwLDB4MmMsMHhjMCwweDBiLDB4MTgsMHg4MiwweGM0LDB4MDAsMHhiMCwweDAwLDB4MmMsMHg0MCwweDBiLDB4MzAsMHgxMiwweGQ4IH19LAotIHsxNiwgMHg5ZGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZjgsMHgxNSwweGFjLDB4MDAsMHgzOCwweDAwLDB4MzIsMHg1MCB9fSwKLSB7MTYsIDB4OWRmMCwgMCwgezB4MGYsMHhmMCwweDAzLDB4ZTYsMHgyMCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MDgsMHhkMCwweDAyLDB4M2MsMHgwMiwweGNiLDB4ODAgfX0sCi0gezE2LCAweDllMDAsIDAsIHsweDNjLDB4NTAsMHgyYywweGYwLDB4MGEsMHhiYywweDAwLDB4YzksMHgwMCwweDNmLDB4YzAsMHgwZiwweGJlLDB4MDMsMHhhYywweDAwIH19LAotIHsxNiwgMHg5ZTEwLCAwLCB7MHhmYSwweDAyLDB4MmUsMHhmNywweDRmLDB4ZjAsMHgwMywweGVlLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWUyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmMSwweDAwLDB4M2EsMHhmMCwweDBmLDB4YjAsMHgwMywweGU5LDB4MDAsMHhmOSwweDAxLDB4M2UgfX0sCi0gezE2LCAweDllMzAsIDAsIHsweGMwLDB4MGYsMHg5MCwweDEzLDB4ZWMsMHgwMCwweGY5LDB4MDAsMHgzZSwweDU1LDB4MGYsMHhiMCwweDAxLDB4NmMsMHgwMCwweGZiIH19LAotIHsxNiwgMHg5ZTQwLCAwLCB7MHgwMiwweDNlLDB4YzAsMHgwZiwweDkwLDB4NzMsMHhlMCwweDAwLDB4ZjgsMHg0MSwweDNlLDB4MDAsMHgwZiwweDMwLDB4MDEsMHhlMCB9fSwKLSB7MTYsIDB4OWU1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhmYywweDAwLDB4ZmMsMHgwMCwweDMzLDB4YzAgfX0sCi0gezE2LCAweDllNjAsIDAsIHsweDFmLDB4ZjAsMHgxMywweGYwLDB4MDgsMHhmZCwweDAyLDB4M2YsMHhjMCwweDhkLDB4YzAsMHgwMywweDNjLDB4MDAsMHhjZiwweGEwIH19LAotIHsxNiwgMHg5ZTcwLCAwLCB7MHgzZiwweDgwLDB4MGMsMHg3MCwweDAzLDB4M2MsMHgxMCwweGZjLDB4MDAsMHgzNywweGMwLDB4MGYsMHhlMCwweDAzLDB4YjAsMHgwMCB9fSwKLSB7MTYsIDB4OWU4MCwgMCwgezB4ZmUsMHgwMCwweDNmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwNCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDllOTAsIDAsIHsweDg0LDB4MDQsMHg2ZSwweDAwLDB4YjksMHhjMiwweGEyLDB4ZjAsMHgwYiwweGIwLDB4NDIsMHhlYiwweDAwLDB4YjksMHgwMCwweDJlIH19LAotIHsxNiwgMHg5ZWEwLCAwLCB7MHhjMCwweDBmLDB4MTgsMHgwMywweDZjLDB4MDAsMHhkOSwweDgxLDB4MmUsMHhiMCwweDBhLDB4YjAsMHg0MiwweDJjLDB4MDAsMHhiYSB9fSwKLSB7MTYsIDB4OWViMCwgMCwgezB4YzYsMHgyZSwweGMwLDB4MGIsMHg4YywweDAyLDB4ZTMsMHgwMCwweGI4LDB4YzAsMHgzYywweGEwLDB4MGQsMHhiMCwweDAyLDB4MjAgfX0sCi0gezE2LCAweDllYzAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmYsMHgwMCwweGI4LDB4ODAsMHgyMiwweGUyIH19LAotIHsxNiwgMHg5ZWQwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHhlNiwweDIwLDB4YjksMHgwMCwweDJjLDB4YzAsMHgwOCwweGI4LDB4MDIsMHgwYywweDAwLDB4OGIsMHgwMCB9fSwKLSB7MTYsIDB4OWVlMCwgMCwgezB4MmUsMHgzMCwweDQ4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiOSwweGMwLDB4MmUsMHhjMSwweDBiLDB4ODgsMHgwMiwweGVlLDB4MTAgfX0sCi0gezE2LCAweDllZjAsIDAsIHsweGI5LDB4YzAsMHgyZSwweDIwLDB4MTksMHhiMCwweDAyLDB4MjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZjAwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIwLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDA2LDB4YzAsMHgwMCwweDkxLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4OWYxMCwgMCwgezB4YzAsMHg0OSwweDgwLDB4MDIsMHg0YywweDA0LDB4OTEsMHgwMCwweDJjLDB4MDAsMHg4YSwweDMwLDB4MGEsMHgwYywweDA0LDB4YjEgfX0sCi0gezE2LCAweDlmMjAsIDAsIHsweDAwLDB4MmMsMHhjMCwweDFiLDB4MDAsMHgxMiwweDQ5LDB4MTAsMHhiMSwweDAwLDB4MmUsMHgyMCwweDA5LDB4MzAsMHgwMiwweDAyIH19LAotIHsxNiwgMHg5ZjMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhiOCwweDIwLDB4MjIsMHhjMCB9fSwKLSB7MTYsIDB4OWY0MCwgMCwgezB4OGIsMHhmMCwweDAzLDB4ZTAsMHgwOCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MGMsMHhhMCwweDAzLDB4M2MsMHgwMCwweGNiLDB4MDAgfX0sCi0gezE2LCAweDlmNTAsIDAsIHsweDNlLDB4MDAsMHg0YywweGYwLDB4MGEsMHgzYywweDAwLDB4YjksMHgwMCwweDM3LDB4YzEsMHgwZiwweGEwLDB4MDMsMHhlMCwweDAwIH19LAotIHsxNiwgMHg5ZjYwLCAwLCB7MHhmYSwweDAwLDB4M2UsMHgwMCwweDBkLDB4ZjAsMHgwYiwweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWY3MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDEsMHhmYywweDQwLDB4M2YsMHg4MCwweDRmLDB4ZjAsMHgwMiwweGYwLDB4MDAsMHhmZCwweDAwLDB4M2YgfX0sCi0gezE2LCAweDlmODAsIDAsIHsweGMxLDB4MGYsMHhjMCwweDAzLDB4ZmMsMHgwMCwweGZkLDB4MDAsMHgzZiwweDAwLDB4NGYsMHhmMCwweDYzLDB4ZmMsMHgwMCwweGZkIH19LAotIHsxNiwgMHg5ZjkwLCAwLCB7MHgwNCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDgwLDB4ZmMsMHgwMCwweDdiLDB4MDAsMHgwZiwweGYwLDB4NDMsMHhlOCB9fSwKLSB7MTYsIDB4OWZhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmOCwweDAwLDB4YzgsMHgxMCwweDMzLDB4MDQgfX0sCi0gezE2LCAweDlmYjAsIDAsIHsweDBjLDB4NDAsMHgwMiwweDM0LDB4MDAsMHhjOCwweDg1LDB4MWYsMHhjMCwweDJkLDB4ZDksMHgwMywweGZjLDB4YzAsMHhkYiwweDI4IH19LAotIHsxNiwgMHg5ZmMwLCAwLCB7MHgzNywweDY0LDB4MGYsMHhkYiwweDAzLDB4M2UsMHgwMCwweGZmLDB4MjUsMHgzZiwweGM4LDB4MGUsMHhmMiwweDAzLDB4ZmUsMHgyMCB9fSwKLSB7MTYsIDB4OWZkMCwgMCwgezB4ZmYsMHhhNCwweDM3LDB4YzQsMHgwYywweGM4LDB4MDMsMHgzMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlmZTAsIDAsIHsweDgwLDB4MTAsMHhlOCwweDAwLDB4ODgsMHgyMCwweDIyLDB4MDAsMHgwOCwweDg4LDB4MTIsMHgyNiwweDA0LDB4ODksMHg4MiwweDJlIH19LAotIHsxNiwgMHg5ZmYwLCAwLCB7MHhmNCwweDQ4LDB4YjgsMHgwMiwweGZjLDB4YzQsMHg5OCwweGMyLDB4MjIsMHg3YywweDRiLDB4OWQsMHg0MiwweDI2LDB4MDgsMHhiZiB9fSwKLSB7MTYsIDB4YTAwMCwgMCwgezB4MTgsMHg3NywweGU0LDB4MDgsMHhmMSwweDgyLDB4ZWYsMHgwMCwweGJiLDB4ZDAsMHgyMiwweGQ4LDB4MDgsMHg5MCwweDgzLDB4NjAgfX0sCi0gezE2LCAweGEwMTAsIDAsIHsweDAyLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDQ1LDB4YzgsMHgwNCwweGEwLDB4MDAsMHgyNCwweDAwIH19LAotIHsxNiwgMHhhMDIwLCAwLCB7MHgwYSwweDAwLDB4MDIsMHgwYywweDAwLDB4ODIsMHgwNCwweDJjLDB4ZTAsMHgwOCwweDEwLDB4MDIsMHhjYywweDgwLDB4ODMsMHgwMCB9fSwKLSB7MTYsIDB4YTAzMCwgMCwgezB4MjQsMHgwMCwweDBiLDB4MTAsMHgwNiwweGM4LDB4MDEsMHhiMywweDIwLDB4MmMsMHhjMCwweDI5LDB4MzIsMHgwMiwweGM4LDB4MDggfX0sCi0gezE2LCAweGEwNDAsIDAsIHsweGIxLDB4MDAsMHgyNCwweGQwLDB4MDgsMHg4MiwweDAyLDB4NjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMDUwLCAwLCB7MHhjMCwweDE1LDB4YTgsMHgwMCwweGE4LDB4MGMsMHgyNiwweDAwLDB4MGEsMHg4MCwweDAyLDB4MmMsMHgxNCwweDhhLDB4MDIsMHg2ZSB9fSwKLSB7MTYsIDB4YTA2MCwgMCwgezB4ZTAsMHgwOCwweGIwLDB4MDIsMHg0YywweDA4LDB4YTgsMHgwMCwweDI2LDB4MjAsMHgwYiwweDljLDB4MDIsMHhlNCwweDAwLDB4YmIgfX0sCi0gezE2LCAweGEwNzAsIDAsIHsweDA0LDB4MjIsMHhjMCwweDE5LDB4YjAsMHgwMiwweGU4LDB4MDEsMHhiYiwweDExLDB4MDIsMHhjMCwweDg4LDB4OTAsMHgwMiwweGYwIH19LAotIHsxNiwgMHhhMDgwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNSwweGVjLDB4MDIsMHhlYSwweDQwLDB4YjYsMHg2MCB9fSwKLSB7MTYsIDB4YTA5MCwgMCwgezB4MmUsMHg5OCwweDBiLDB4MjAsMHgwMiwweGM4LDB4MDIsMHgzZSwweGMwLDB4MGQsMHg5OCwweDAzLDB4ZWMsMHgwMiwweGRiLDB4ODggfX0sCi0gezE2LCAweGEwYTAsIDAsIHsweGI2LDB4MjEsMHgwZiwweDg4LDB4MDMsMHhhYywweDA4LDB4ZmIsMHgwMCwweDJjLDB4YzAsMHgwZSwweGIwLDB4NDMsMHhlNSwweDgwIH19LAotIHsxNiwgMHhhMGIwLCAwLCB7MHhmMCwweDYwLDB4MzYsMHhjMCwweDBjLDB4MDEsMHg0MywweDQ4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTBjMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhkNiwweDAxLDB4M2IsMHg2NCwweDg1LDB4ZDksMHgwMywweGYwLDB4MGMsMHhmZiwweDAwLDB4M2UgfX0sCi0gezE2LCAweGEwZDAsIDAsIHsweGMxLDB4MGYsMHhmYywweDIxLDB4ZWMsMHgwMCwweGQ3LDB4OTAsMHgzYiwweDQwLDB4MGYsMHg1MCwweDAzLDB4M2MsMHgwMCwweGZmIH19LAotIHsxNiwgMHhhMGUwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHg4ZSwweGYwLDB4MDMsMHhmNCwweDQwLDB4ZmQsMHg4OCwweDNmLDB4YzAsMHgyZiwweGQwLDB4MDIsMHg3OCB9fSwKLSB7MTYsIDB4YTBmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4YywweDAwLDB4ZGEsMHg0MCwweDNjLDB4NDAgfX0sCi0gezE2LCAweGExMDAsIDAsIHsweDBmLDB4MTAsMHgwMywweDQ4LDB4MDAsMHhmOSwweDIyLDB4M2MsMHhjMiwweDBlLDB4OTAsMHg4MywweGVjLDB4MDIsMHhkYiwweDA0IH19LAotIHsxNiwgMHhhMTEwLCAwLCB7MHgzYSwweDA4LDB4MGYsMHg4NCwweDg3LDB4ZTgsMHgwMCwweGNiLDB4MDAsMHgzZSwweGM0LDB4MGUsMHhiMCwweDAzLDB4ZWQsMHgwMCB9fSwKLSB7MTYsIDB4YTEyMCwgMCwgezB4ZTgsMHg0MiwweDNhLDB4YzAsMHgwZiwweDgwLDB4MGIsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGExMzAsIDAsIHsweDg4LDB4MDUsMHgyYywweDA4LDB4OGEsMHgwMCwweDJlLDB4NDIsMHg4YiwweDkwLDB4MDIsMHgyOCwweDE4LDB4YmIsMHg0OSwweDIyIH19LAotIHsxNiwgMHhhMTQwLCAwLCB7MHhkMCwweDM4LDB4YmMsMHg4MiwweGZjLDB4MDAsMHhlOCwweDAyLDB4MjIsMHg2MiwweGNiLDB4OWMsMHgwMCwweGVmLDB4NjAsMHhkZiB9fSwKLSB7MTYsIDB4YTE1MCwgMCwgezB4MDAsMHgyZiwweGMwLDB4MGIsMHhmMCwweDAyLDB4ZWMsMHgwMCwweDA5LDB4NDAsMHgzNywweGMwLDB4MGIsMHg5MCwweDAyLDB4MzIgfX0sCi0gezE2LCAweGExNjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDgsMHgxMCwweDExLDB4MDAsMHgyYywweGEwIH19LAotIHsxNiwgMHhhMTcwLCAwLCB7MHgwYiwweDIwLDB4MDIsMHg0NCwweDAwLDB4OTAsMHhjMCwweDY0LDB4MzQsMHgyOCwweDM0LDB4MDIsMHhjYywweDAwLDB4OTMsMHg4NCB9fSwKLSB7MTYsIDB4YTE4MCwgMCwgezB4MjgsMHg0MCwweDBiLDB4MDgsMHgwMCwweGNlLDB4MDAsMHg5MywweDAwLDB4MmMsMHhjMiwweDBhLDB4MzAsMHgwMiwweGMwLDB4MDAgfX0sCi0gezE2LCAweGExOTAsIDAsIHsweGIyLDB4NDAsMHgyMiwweGMwLDB4MGIsMHgyMCwweDAyLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMWEwLCAwLCB7MHg3MCwweDAxLDB4MWEsMHg0MCwweDg1LDB4ODAsMHgyZCwweGEwLDB4MGIsMHg2OCwweDA2LDB4MTYsMHg4MCwweGJkLDB4OTAsMHgyNSB9fSwKLSB7MTYsIDB4YTFiMCwgMCwgezB4MjQsMHgxOCwweDdiLDB4NDIsMHhkZSwweDQwLDB4YTAsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDY4LDB4MDIsMHhkNiwweDAwLDB4OTcgfX0sCi0gezE2LCAweGExYzAsIDAsIHsweDkwLDB4MmQsMHhlMCwweDBiLDB4NzgsMHgwMiwweGNlLDB4NDAsMHg5MiwweDgwLDB4NmQsMHhlNCwweDBiLDB4NzgsMHgwMiwweDA4IH19LAotIHsxNiwgMHhhMWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDI4LDB4MDAsMHhkMSwweDgwLDB4M2MsMHg4OCB9fSwKLSB7MTYsIDB4YTFlMCwgMCwgezB4MGIsMHgyMiwweDAzLDB4NGUsMHg4MCwweGYyLDB4YTEsMHgzYywweDI0LDB4MmEsMHgzOSwweDAzLDB4Y2MsMHg0MCwweGQzLDB4YWMgfX0sCi0gezE2LCAweGExZjAsIDAsIHsweDM4LDB4YzUsMHgwZiwweDMwLDB4ODIsMHhjOCwweDAwLDB4ZDMsMHgwMCwweDNjLDB4YzAsMHgwZSwweDMwLDB4MTMsMHhjMCwweDAwIH19LAotIHsxNiwgMHhhMjAwLCAwLCB7MHhmMSwweDAwLDB4MzgsMHhjMCwweDBmLDB4YTAsMHgwMywweDFhLDB4MDYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTIxMCwgMCwgezB4NDAsMHgxZCwweGI4LDB4MTAsMHhmZCwweDM0LDB4M2UsMHg4MCwweDBmLDB4ZTAsMHgwMywweGVlLDB4MDAsMHg3MiwweDAwLDB4M2EgfX0sCi0gezE2LCAweGEyMjAsIDAsIHsweDAwLDB4MGYsMHhiMCwweDYzLDB4ZWMsMHg0MCwweGY4LDB4MjIsMHgzZSwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDQsMHg0MCwweGZmIH19LAotIHsxNiwgMHhhMjMwLCAwLCB7MHgwMCwweDNmLDB4ZDIsMHgwZiwweGYwLDB4MDMsMHhlYywweDAwLDB4Y2YsMHgwMCwweDM3LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4YTI0MCwgMCwgezB4MDYsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZSwweDAwLDB4ZWIsMHgwMCwweDM2LDB4ZTAgfX0sCi0gezE2LCAweGEyNTAsIDAsIHsweDBkLDB4YjAsMHgwMywweDIwLDB4MDAsMHhmMCwweDgwLDB4MzMsMHhjMCwweDA4LDB4YjgsMHgwMywweDJjLDB4ODAsMHhjYiwweDAwIH19LAotIHsxNiwgMHhhMjYwLCAwLCB7MHgzMiwweDgwLDB4MGYsMHhhMCwweDEzLDB4NmUsMHgwOCwweGNiLDB4MjgsMHgzMiwweGUwLDB4MGQsMHhiNCwweDgzLDB4ZTIsMHgwMCB9fSwKLSB7MTYsIDB4YTI3MCwgMCwgezB4Y2EsMHgwMCwweDNlLDB4ZTAsMHgwYywweGE4LDB4MDMsMHgwMiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEyODAsIDAsIHsweGM4LDB4MTEsMHg4YywweDA0LDB4ODMsMHgwMCwweDIxLDB4YzAsMHg0OCwweDcwLDB4MDIsMHgxMCwweDAwLDB4YjcsMHgwMiwweDIxIH19LAotIHsxNiwgMHhhMjkwLCAwLCB7MHhjMCwweDRhLDB4NzAsMHgwMiwweDBkLDB4NDgsMHhkNCwweDAwLDB4MzUsMHhjMCwweDBlLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhhNyB9fSwKLSB7MTYsIDB4YTJhMCwgMCwgezB4NDAsMHgyOSwweGMwLDB4MDksMHg3MiwweDAyLDB4ZDQsMHgxMCwweGE2LDB4MDIsMHgyZiwweGM4LDB4MDgsMHg3MCwweDAyLDB4MTIgfX0sCi0gezE2LCAweGEyYjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4OWUsMHgwMCwweGE3LDB4ODAsMHgyMCwweGUwIH19LAotIHsxNiwgMHhhMmMwLCAwLCB7MHgwYSwweDM4LDB4MDIsMHgxYSwweDAwLDB4YjUsMHg4MCwweDIxLDB4ZTAsMHgwOCwweGY4LDB4MjIsMHg1YywweDgxLDB4ODMsMHg4MCB9fSwKLSB7MTYsIDB4YTJkMCwgMCwgezB4MjEsMHhhMSwweDBiLDB4NzgsMHg4MiwweDVhLDB4MTAsMHg4MywweGEwLDB4MjAsMHhlOCwweDBhLDB4N2IsMHgwMiwweGRhLDB4MDAgfX0sCi0gezE2LCAweGEyZTAsIDAsIHsweDk3LDB4YzAsMHgyZCwweGU0LDB4MDgsMHhlOCwweDAyLDB4MDgsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMmYwLCAwLCB7MHgwOCwweDE0LDB4Y2MsMHgwMCwweDgzLDB4MTAsMHgyMCwweGMwLDB4MGEsMHgzMCwweDAyLDB4MDgsMHgwOCwweGIzLDB4NzAsMHgyMCB9fSwKLSB7MTYsIDB4YTMwMCwgMCwgezB4ZjgsMHgwYSwweDMwLDB4NDIsMHg0YywweDA0LDB4OTMsMHgxNCwweDI2LDB4YzQsMHgwYSwweDM4LDB4MDIsMHhjYywweDAwLDB4YTMgfX0sCi0gezE2LCAweGEzMTAsIDAsIHsweDAwLDB4MjgsMHhjMCwweGFhLDB4MzAsMHgwMiwweGNlLDB4NDAsMHhiMywweDg4LDB4MmMsMHhjMCwweDI4LDB4MzAsMHgwYSwweDEyIH19LAotIHsxNiwgMHhhMzIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE5LDB4MDAsMHhlYSwweDgwLDB4YjYsMHg5MCB9fSwKLSB7MTYsIDB4YTMzMCwgMCwgezB4MmYsMHgyNCwweDBiLDB4MzksMHgwNCwweGJlLDB4YzAsMHgzMywweDkyLDB4MGMsMHhhMCwweDBiLDB4NjgsMHgxOCwweGNlLDB4YzAgfX0sCi0gezE2LCAweGEzNDAsIDAsIHsweDMzLDB4ODAsMHgwZiwweGU5LDB4NDMsMHg3OCwweDAwLDB4Y2EsMHgwMCwweDMyLDB4ODAsMHgwZiwweGEwLDB4MTMsMHhmOCwweDQ4IH19LAotIHsxNiwgMHhhMzUwLCAwLCB7MHhkZSwweDAwLDB4M2UsMHg4MCwweDBjLDB4ZTAsMHgwMiwweDNhLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTM2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MjQsMHhmOCwweDAwLDB4M2UsMHgxMiwweDBkLDB4ODAsMHg5MywweGIwLDB4MjgsMHhmOCwweDAwLDB4YmMgfX0sCi0gezE2LCAweGEzNzAsIDAsIHsweDAwLDB4MGYsMHg4NCwweDAzLDB4YTAsMHgwMCwweGYwLDB4MDAsMHgzZSwweDAyLDB4MGUsMHg4MCwweDAwLDB4ZTAsMHgwMCwweGY4IH19LAotIHsxNiwgMHhhMzgwLCAwLCB7MHgwMSwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4YTM5MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMCwweGIyLDB4NzAgfX0sCi0gezE2LCAweGEzYTAsIDAsIHsweDBmLDB4OTAsMHgwMSwweDA0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTgsMHgwMywweGU0LDB4MDQsMHhlOSwweDA4IH19LAotIHsxNiwgMHhhM2IwLCAwLCB7MHgzYSwweDQ4LDB4MGMsMHg5YSwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDQwLDB4MGIsMHgxMCwweDBiLDB4MjYsMHg4MCB9fSwKLSB7MTYsIDB4YTNjMCwgMCwgezB4ZjEsMHg4MCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEzZDAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHgwMCwweDIyLDB4NjEsMHgwYiwweDkwLDB4MDIsMHgyNCwweDA4LDB4ODksMHgwMCwweDJlIH19LAotIHsxNiwgMHhhM2UwLCAwLCB7MHg0MCwweDBkLDB4OWEsMHgwMiwweGU0LDB4MDgsMHhhOSwweDAwLDB4MjIsMHg3OCwweDBkLDB4OTQsMHgwNiwweGU0LDB4MTAsMHhiOSB9fSwKLSB7MTYsIDB4YTNmMCwgMCwgezB4MDAsMHgyMiwweDUwLDB4MGIsMHg5MCwweDAyLDB4MjUsMHg4MCwweGI5LDB4ODAsMHgzNiwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGE0MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI1LDB4MDAsMHgyMywweDQyIH19LAotIHsxNiwgMHhhNDEwLCAwLCB7MHgwYiwweGQwLDB4MGUsMHhiNCwweDAwLDB4ODksMHgwNCwweDJlLDB4NjAsMHgwOCwweDkxLDB4MDIsMHhjNCwweDA0LDB4YjksMHgwNCB9fSwKLSB7MTYsIDB4YTQyMCwgMCwgezB4MmEsMHhjMCwweDA4LDB4OTQsMHgwMiwweGU0LDB4MTAsMHhiMSwweDAwLDB4MjYsMHg0MiwweDBhLDB4OTAsMHgwMiwweDI0LDB4MDAgfX0sCi0gezE2LCAweGE0MzAsIDAsIHsweGI5LDB4MjEsMHg2MiwweDQwLDB4MGIsMHg5MCwweDAyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNDQwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHgwMCwweGI1LDB4NDAsMHgyMSwweDUwLDB4NGIsMHg1MCwweDA2LDB4OTQsMHgwMiwweDgxLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4YTQ1MCwgMCwgezB4NjAsMHgyOSwweDE0LDB4MDYsMHhjNSwweDAwLDB4YTEsMHgyMiwweDIwLDB4NTEsMHg4OSwweDE0LDB4MDIsMHhjNCwweDAwLDB4YjEgfX0sCi0gezE2LCAweGE0NjAsIDAsIHsweDIwLDB4MjAsMHg0OCwweDBiLDB4MTQsMHgwMiwweDA0LDB4MDEsMHhiMSwweDAwLDB4MDQsMHg1MCwweDBiLDB4MTAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhhNDcwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDgsMHhiOCwweDAwLDB4MzIsMHgwMCB9fSwKLSB7MTYsIDB4YTQ4MCwgMCwgezB4OGYsMHg4MCwweDAzLDB4YjAsMHgwMCwweDg4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGU4LDB4MDQgfX0sCi0gezE2LCAweGE0OTAsIDAsIHsweDNhLDB4MDAsMHgwYywweDgwLDB4MDIsMHhlMCwweDAwLDB4ZjgsMHg1MCwweDM2LDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyMCwweDA0IH19LAotIHsxNiwgMHhhNGEwLCAwLCB7MHhmOCwweDAxLDB4MTIsMHgwMCwweDRmLDB4ODAsMHgwNywweGVlLDB4MDcsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTRiMCwgMCwgezB4OTgsMHgxZCwweGU1LDB4MTAsMHhmOSwweDQwLDB4M2UsMHg1MCwweDBmLDB4OTQsMHgwMiwweDY1LDB4MDEsMHhmZCwweDAxLDB4M2QgfX0sCi0gezE2LCAweGE0YzAsIDAsIHsweDUwLDB4NGYsMHg1MCwweDEzLDB4ZTUsMHgwMCwweGZkLDB4MTAsMHgxZiwweDUwLDB4MDcsMHhkNCwweDQzLDB4ZDQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhhNGQwLCAwLCB7MHgxMCwweDFlLDB4NDQsMHgwZiwweDk0LDB4MDMsMHhkNSwweDAwLDB4ZmQsMHg0MCwweDNlLDB4NTAsMHgwZiwweDUyLDB4ODMsMHhlZSB9fSwKLSB7MTYsIDB4YTRlMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhlNCwweDQwLDB4ZjksMHg2MCwweDNmLDB4NDQgfX0sCi0gezE2LCAweGE0ZjAsIDAsIHsweDBmLDB4ZDAsMHhjMywweGU0LDB4MzAsMHhmOSwweDAxLDB4M2UsMHg0MiwweDBjLDB4ZDAsMHgwMywweGU3LDB4ODAsMHhkZCwweGEwIH19LAotIHsxNiwgMHhhNTAwLCAwLCB7MHgzMywweDQwLDB4MGMsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGM5LDB4OTAsMHgzZiwweDY4LDB4MWUsMHg5MSwweDAzLDB4MzQsMHgwMCB9fSwKLSB7MTYsIDB4YTUxMCwgMCwgezB4ZmQsMHgwMCwweDNlLDB4NjgsMHgwYywweDk0LDB4MDMsMHgwZSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE1MjAsIDAsIHsweDM5LDB4MTAsMHhlMCwweDAwLDB4YjgsMHg0MiwweDJlLDB4MDksMHgwYiwweDg0LDB4MDIsMHhlMSwweDA0LDB4YmUsMHgwMCwweDJlIH19LAotIHsxNiwgMHhhNTMwLCAwLCB7MHgxMCwweDA4LDB4ODAsMHgyMiwweGMyLDB4ODAsMHg4OCwweDQwLDB4MjIsMHgwMCwweDBhLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhhOCB9fSwKLSB7MTYsIDB4YTU0MCwgMCwgezB4ZDAsMHgyZSwweDEwLDB4NGIsMHg4YSwweDAzLDB4NjAsMHgwMCwweGJhLDB4MDAsMHgyZSwweDMwLDB4MDgsMHg4YSwweDAyLDB4ODYgfX0sCi0gezE2LCAweGE1NTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4YzUsMHg4MCwweGIxLDB4NjAsMHg2YywweGQwIH19LAotIHsxNiwgMHhhNTYwLCAwLCB7MHgwYiwweDEwLDB4MDAsMHhkYywweDBjLDB4YjUsMHgwMCwweDJjLDB4NDEsMHgwOCwweDEwLDB4MDIsMHhjNSwweDgwLDB4OTEsMHgxMCB9fSwKLSB7MTYsIDB4YTU3MCwgMCwgezB4NjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweGU0LDB4MGMsMHg4MSwweDIyLDB4MmMsMHg1MCwweDA4LDB4MTAsMHg0MiwweDA0LDB4MDAgfX0sCi0gezE2LCAweGE1ODAsIDAsIHsweGExLDB4MDAsMHgyYywweDVhLDB4MjgsMHg5MCwweDAyLDB4NTIsMHgxMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNTkwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQxLDB4MGIsMHg5MCwweDEyLDB4ZjQsMHg4MCwweGJmLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YTVhMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4YTksMHg2MCwweDYwLDB4NDIsMHgwYSwweDk0LDB4MTIsMHhlNSwweDAwLDB4YTkgfX0sCi0gezE2LCAweGE1YjAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDY0LDB4MjAsMHhiOSwweDAwLDB4MGUsMHg0MCwweDA5LDB4OTAsMHgwMiwweGM2IH19LAotIHsxNiwgMHhhNWMwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MSB9fSwKLSB7MTYsIDB4YTVkMCwgMCwgezB4MGYsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwNCwweGQxLDB4YzAgfX0sCi0gezE2LCAweGE1ZTAsIDAsIHsweGJhLDB4NzAsMHgwYywweDk4LDB4MDMsMHhjNCwweDAwLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwZSwweDkwLDB4MDMsMHgyNSwweDQwIH19LAotIHsxNiwgMHhhNWYwLCAwLCB7MHhlOSwweDQwLDB4M2UsMHg0MCwweDBjLDB4MTAsMHgwMywweDY4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTYwMCwgMCwgezB4NjgsMHgwMSwweGE0LDB4MTQsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgyMywweGU0LDB4MDgsMHhmOSwweGEwLDB4M2MgfX0sCi0gezE2LCAweGE2MTAsIDAsIHsweGMyLDB4MmYsMHg5MCwweDAzLDB4YzQsMHgwMCwweGQ5LDB4ODAsMHgzZSwweDcwLDB4MGYsMHg5MSwweDQzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhhNjIwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgxZiwweDkwLDB4MTMsMHhlNiwweDIwLDB4ZjksMHhhMCwweDNjLDB4NDAsMHg0ZSwweDkwLDB4MDMsMHg5YSB9fSwKLSB7MTYsIDB4YTYzMCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDIgfX0sCi0gezE2LCAweGE2NDAsIDAsIHsweDBmLDB4ODAsMHgxMywweDIwLDB4MGMsMHhmYywweDAxLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDAsMHhjOCwweDUwIH19LAotIHsxNiwgMHhhNjUwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHg4MCwweDBiLDB4MjAsMHgwOCwweGY4LDB4MDAsMHgzMiwweDAwLDB4MmMsMHg4MCwweDQzLDB4ZTAsMHg0MCB9fSwKLSB7MTYsIDB4YTY2MCwgMCwgezB4ZjgsMHgwMiwweDNhLDB4MDAsMHg4ZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE2NzAsIDAsIHsweGE4LDB4ODUsMHgyOCwweDA4LDB4M2EsMHgwMCwweDBmLDB4ODAsMHg0YiwweGExLDB4MDIsMHgyOCwweDAwLDB4YmEsMHg4MiwweDJlIH19LAotIHsxNiwgMHhhNjgwLCAwLCB7MHg4OCwweDQ4LDB4ZTQsMHgwMiwweGU4LDB4MDAsMHhhZSwweDkwLDB4YTMsMHg5MCwweDBiLDB4ZTAsMHgwMCwweDM4LDB4MDAsMHhiYSB9fSwKLSB7MTYsIDB4YTY5MCwgMCwgezB4MDAsMHgzNywweGEwLDB4MDgsMHhhMCwweDAyLDB4ZjgsMHgwMCwweDllLDB4ZTAsMHgyMiwweDgwLDB4MGIsMHhhMCwweDIzLDB4NDIgfX0sCi0gezE2LCAweGE2YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgxMCwweDMzLDB4MDAsMHgyYywweGQwIH19LAotIHsxNiwgMHhhNmIwLCAwLCB7MHgwYiwweDE0LDB4MDIsMHgwYywweDAwLDB4YjIsMHg5MSwweDJjLDB4ZDAsMHgwOCwweDNlLDB4MDIsMHg0YywweDAwLDB4ODMsMHg0MCB9fSwKLSB7MTYsIDB4YTZjMCwgMCwgezB4MjQsMHhjMiwweDBiLDB4MzYsMHgwMCwweDhjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDA5LDB4YjAsMHgwMiwweGNlLDB4MDAgfX0sCi0gezE2LCAweGE2ZDAsIDAsIHsweGIzLDB4Y2MsMHg2OCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MDIsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNmUwLCAwLCB7MHhlMCwweDAxLDB4MWMsMHg4OCwweGI3LDB4MjUsMHgyZCwweGMwLDB4OGIsMHg1OCwweDFhLDB4MWMsMHgwOCwweGI2LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4YTZmMCwgMCwgezB4YzAsMHgwOCwweDc0LDB4MDIsMHhkYywweDQwLDB4YTUsMHgwMCwweDI1LDB4YzAsMHgxYiwweDc4LDB4MDIsMHg5NCwweDA4LDB4YjcgfX0sCi0gezE2LCAweGE3MDAsIDAsIHsweDgwLDB4MjUsMHhlMywweDBhLDB4NzEsMHgwMiwweGRjLDB4MDAsMHg5NywweDgzLDB4MjEsMHhjOCwweDhiLDB4ZjEsMHgwMiwweDQ4IH19LAotIHsxNiwgMHhhNzEwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFmLDB4MDAsMHhmNywweGUyLDB4N2QsMHhlMCB9fSwKLSB7MTYsIDB4YTcyMCwgMCwgezB4MGYsMHg1OCwweDQzLDB4MWUsMHgxOCwweGY2LDB4ODAsMHg3YywweGUwLDB4MmMsMHg2OCwweDAyLDB4NWUsMHg5MCwweGMzLDB4ODAgfX0sCi0gezE2LCAweGE3MzAsIDAsIHsweDM1LDB4ZTAsMHgwZiwweGY4LDB4MDMsMHg5ZSwweDA0LDB4ZmYsMHhhMSwweDIwLDB4YTEsMHgwZCwweDc4LDB4MDMsMHhkNiwweDAwIH19LAotIHsxNiwgMHhhNzQwLCAwLCB7MHhmNywweDgwLDB4MzksMHhmOCwweDBmLDB4NzgsMHgwMywweDBhLDB4MDYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTc1MCwgMCwgezB4NDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDQwLDB4N2YsMHg0MSwweDBmLDB4MTAsMHgwMywweGVjLDB4MDQsMHhmYSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGE3NjAsIDAsIHsweGQwLDB4MGYsMHhhMCwweDAzLDB4ZWQsMHgwMCwweGU5LDB4MDAsMHgyYSwweDAwLDB4MGYsMHhiMCwweDAzLDB4NjQsMHgwMCwweGZiIH19LAotIHsxNiwgMHhhNzcwLCAwLCB7MHg0MCwweDNlLDB4YzAsMHgwZCwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZDMsMHgwMCwweDM2LDB4YzAsMHgwZiwweDM4LDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4YTc4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDQ4LDB4Y2YsMHhjMCwweDMzLDB4NjAgfX0sCi0gezE2LCAweGE3OTAsIDAsIHsweDhjLDB4YzgsMHg0MywweGQ2LDB4MDAsMHhjYywweDk0LDB4M2YsMHhiMCwweDBkLDB4ZjgsMHgwMywweDdmLDB4MDAsMHhkZiwweDgwIH19LAotIHsxNiwgMHhhN2EwLCAwLCB7MHgzZiwweDYwLDB4MGYsMHhkOCwweDAzLDB4ZGUsMHgwMCwweGNmLDB4Y2EsMHgzZCwweDYwLDB4MGMsMHhmOCwweDEzLDB4M2EsMHg0NCB9fSwKLSB7MTYsIDB4YTdiMCwgMCwgezB4ZGQsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4NDMsMHgxOCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE3YzAsIDAsIHsweGE4LDB4MTEsMHg5YywweDAwLDB4OGYsMHgxMSwweDMzLDB4YzAsMHg0OCwweDQxLDB4MTIsMHhjNCwweDQ4LDB4ODQsMHgxMSwweDJjIH19LAotIHsxNiwgMHhhN2QwLCAwLCB7MHhlYywweDJhLDB4YmEsMHgwMywweDNjLDB4NDAsMHhkNywweDQ4LDB4MmQsMHg0MSwweDBiLDB4NjAsMHgwMiwweGQ0LDB4MDAsMHhkNyB9fSwKLSB7MTYsIDB4YTdlMCwgMCwgezB4MDEsMHgzZCwweGMwLDB4MGQsMHhmMCwweDAzLDB4NWEsMHgwMCwweDg0LDB4MTgsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAzLDB4NmEgfX0sCi0gezE2LCAweGE3ZjAsIDAsIHsweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4OGMsMHgwOCwweDg3LDB4MDAsMHgyMSwweDQwIH19LAotIHsxNiwgMHhhODAwLCAwLCB7MHgwOSwweDQwLDB4MDIsMHhkNCwweDAwLDB4YTQsMHg5MiwweDJkLDB4YzgsMHgwOSwweDYyLDB4ODIsMHg1YywweDAwLDB4ODcsMHgwMCB9fSwKLSB7MTYsIDB4YTgxMCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NTAsMHgwMiwweGZjLDB4MDAsMHg4NywweDAwLDB4MmQsMHgwNCwweDA4LDB4NzAsMHgwMiwweDFjLDB4ODAgfX0sCi0gezE2LCAweGE4MjAsIDAsIHsweGI1LDB4MDAsMHgyZCwweGMwLDB4MGIsMHhmMCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhODMwLCAwLCB7MHg2MCwweDEwLDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyMCwweDQwLDB4MDksMHgwMCwweDIyLDB4YzcsMHgwMCwweGEwLDB4NDEsMHgyYyB9fSwKLSB7MTYsIDB4YTg0MCwgMCwgezB4YzEsMHg0YiwweDA4LDB4MDIsMHgyYywweDAwLDB4OTMsMHg0MCwweDJjLDB4N2MsMHgwYiwweDM4LDB4MDIsMHhjNywweDIwLDB4OTMgfX0sCi0gezE2LCAweGE4NTAsIDAsIHsweDAwLDB4MmMsMHhjMCwweDA5LDB4MzAsMHgwMiwweDRmLDB4ODQsMHhiMCwweDgwLDB4MmMsMHhjMCwweDBiLDB4MzIsMHgxMCwweDUwIH19LAotIHsxNiwgMHhhODYwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YWEsMHgxNSwweGJjLDB4MDIsMHhjZiwweDAwLDB4YjIsMHg0MCB9fSwKLSB7MTYsIDB4YTg3MCwgMCwgezB4MGQsMHgxMCwweDAzLDB4ZTgsMHgyNCwweGViLDB4YzEsMHgzZSwweGMwLDB4MmQsMHg5OCwweDEzLDB4N2MsMHgwYSwweGMyLDB4NDMgfX0sCi0gezE2LCAweGE4ODAsIDAsIHsweDNlLDB4YjAsMHgwZiwweGE5LDB4MDMsMHhlOSwweDIwLDB4Y2YsMHgwMCwweDNlLDB4YzAsMHg4YywweGYwLDB4MDMsMHgwZCwweDIwIH19LAotIHsxNiwgMHhhODkwLCAwLCB7MHhmYSwweGMwLDB4M2YsMHhjMCwweDBmLDB4NzQsMHgwMSwweDJhLDB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YThhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2EsMHg0MCwweDhlLDB4OTAsMHgwMywweGU4LDB4MTQsMHg1YiwweDUwLDB4M2MgfX0sCi0gezE2LCAweGE4YjAsIDAsIHsweDUwLDB4NGUsMHg4NCwweDAzLDB4ZWMsMHgwMCwweGY4LDB4NDAsMHgzZSwweDgwLDB4MDcsMHg4MSwweDAzLDB4ZWMsMHgwOCwweGYzIH19LAotIHsxNiwgMHhhOGMwLCAwLCB7MHgwMCwweDNhLDB4YzAsMHg5ZiwweDMwLDB4MDMsMHhlYywweDAwLDB4Y2IsMHgyMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MjMsMHhlOCB9fSwKLSB7MTYsIDB4YThkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4OTAsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4NDAgfX0sCi0gezE2LCAweGE4ZTAsIDAsIHsweDBmLDB4ZDAsMHgwMywweDM4LDB4MjAsMHhjZiwweDA4LDB4MzIsMHhjMSwweDBlLDB4ZDAsMHgwMywweGZjLDB4MDAsMHhmZSwweDA4IH19LAotIHsxNiwgMHhhOGYwLCAwLCB7MHgzMSwweGU1LDB4MGUsMHhlNCwweDAzLDB4M2EsMHgwMCwweGZmLDB4MDAsMHgzMywweDgwLDB4MGYsMHhmMCwweDJiLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YTkwMCwgMCwgezB4Y2MsMHhhMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE5MTAsIDAsIHsweDgwLDB4MDQsMHg2YywweDAwLDB4YmIsMHgwMCwweDNhLDB4NjksMHgwYiwweDkwLDB4NmUsMHgwOCwweDAwLDB4ODMsMHg0MSwweDM2IH19LAotIHsxNiwgMHhhOTIwLCAwLCB7MHg0MCwweGM4LDB4ODgsMHhjNiwweGVjLDB4MDAsMHg4OCwweDQwLDB4MzYsMHg4MCwweDBkLDB4YTgsMHgwMywweDZlLDB4NTAsMHhiYiB9fSwKLSB7MTYsIDB4YTkzMCwgMCwgezB4MDAsMHgzNiwweGMwLDB4MGIsMHhiMCwweDAyLDB4MjQsMHgwMCwweGQ5LDB4MDgsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGE5NDAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweDYwIH19LAotIHsxNiwgMHhhOTUwLCAwLCB7MHgwMywweDgwLDB4MDIsMHgyMCwweDAwLDB4ODksMHgwMSwweDIyLDB4NTgsMHgwOCwweDk4LDB4MjIsMHhlYywweDAxLDB4YWIsMHgwMCB9fSwKLSB7MTYsIDB4YTk2MCwgMCwgezB4MjIsMHgwMCwweDBhLDB4MTAsMHgwMiwweDI4LDB4MDAsMHhiYiwweDAwLDB4MjIsMHg0MCwweDBiLDB4YjAsMHgwMiwweDI4LDB4MDAgfX0sCi0gezE2LCAweGE5NzAsIDAsIHsweDhhLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDQyLDB4MjAsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhOTgwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyOCwweDQwLDB4OGIsMHgwMCwweDAyLDB4MDIsMHg0MCwweDg5LDB4MDEsMHgyNCB9fSwKLSB7MTYsIDB4YTk5MCwgMCwgezB4ZDIsMHgyOCwweDEwLDB4MDIsMHhjYywweDAwLDB4ODMsMHgxMCwweDI0LDB4MjAsMHgwOCwweDA4LDB4MDIsMHg0ZSwweDAwLDB4YjMgfX0sCi0gezE2LCAweGE5YTAsIDAsIHsweDA0LDB4YTAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDA4LDB4ODgsMHg5MiwweDAwLDB4MmMsMHhjMCwweDBiLDB4YjAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhhOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHgwMCB9fSwKLSB7MTYsIDB4YTljMCwgMCwgezB4MGYsMHg4MCwweDAyLDB4MjAsMHgxMCwweDg5LDB4NTAsMHgyMiwweGQ4LDB4MmUsMHg5NiwweDIyLDB4ZmMsMHgwMCwweGViLDB4NDAgfX0sCi0gezE2LCAweGE5ZDAsIDAsIHsweDMyLDB4YzAsMHgwYSwweDkwLDB4MDMsMHgyOCwweDAwLDB4ZmYsMHgwMCwweDIyLDB4MDAsMHgwZiwweGIwLDB4MDMsMHgyYywweGEwIH19LAotIHsxNiwgMHhhOWUwLCAwLCB7MHhjOCwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDAwLDB4MDYsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTlmMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZiwweDBjLDB4M2IsMHgwMCwweDBmLDB4YzAsMHgwMiwweDcwLDB4OTAsMHhmZCwweDAwLDB4M2UgfX0sCi0gezE2LCAweGFhMDAsIDAsIHsweGM5LDB4MGYsMHg5NiwweGMzLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwNCwweGZmIH19LAotIHsxNiwgMHhhYTEwLCAwLCB7MHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlYywweDAwLDB4ZmMsMHgwMCwweDNmLDB4YzAsMHgwZiwweDcwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4YWEyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkYywweDgwLDB4ZmIsMHgyOCwweDNmLDB4MDAgfX0sCi0gezE2LCAweGFhMzAsIDAsIHsweDBjLDB4YzEsMHgwYiwweGYxLDB4MDIsMHhlZCwweDAwLDB4MzcsMHgzMCwweDJjLDB4ZjEsMHgwMywweGIyLDB4NDAsMHhmZiwweDAwIH19LAotIHsxNiwgMHhhYTQwLCAwLCB7MHhiYiwweGMwLDB4MGYsMHg0OCwweDA2LDB4YjIsMHgwMCwweGZjLDB4ODAsMHgzYiwweGNjLDB4MGMsMHhmMCwweDAzLDB4NzAsMHg4MCB9fSwKLSB7MTYsIDB4YWE1MCwgMCwgezB4ZGYsMHgyOCwweDMzLDB4MDQsMHgwZiwweGY0LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFhNjAsIDAsIHsweDgwLDB4MTAsMHhmZiwweDQwLDB4YmYsMHg2MCwweDJlLDB4MjEsMHgwOCwweDgyLDB4MDIsMHgyMCwweDAwLDB4YTksMHgyOCwweDJhIH19LAotIHsxNiwgMHhhYTcwLCAwLCB7MHgwMCwweDA5LDB4ZmEsMHgwMiwweDIwLDB4MDAsMHhiZiwweDUxLDB4MjMsMHhkOCwweDA5LDB4OTgsMHgwMiwweGU0LDB4MzAsMHhiMCB9fSwKLSB7MTYsIDB4YWE4MCwgMCwgezB4MDAsMHgyMywweGQwLDB4MDgsMHhmNSwweGEyLDB4MjUsMHhhNCwweDhmLDB4NDIsMHgzYywweDEwLDB4MGIsMHhiMCwweDBhLDB4MjAgfX0sCi0gezE2LCAweGFhOTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMCwweGIzLDB4MDgsMHgyYywweDAwIH19LAotIHsxNiwgMHhhYWEwLCAwLCB7MHgyOCwweDAwLDB4MWEsMHhjMCwweDg0LDB4MjAsMHgwMCwweDI0LDB4YzgsMHg0YiwweDMxLDB4NDIsMHhjMCwweDAwLDB4OTMsMHgwMiB9fSwKLSB7MTYsIDB4YWFiMCwgMCwgezB4MjAsMHhjNiwweDA4LDB4MDAsMHgwNiwweGMwLDB4ODEsMHhiMywweDAwLDB4MmMsMHhkOCwweDA5LDB4MzIsMHgwMiwweGEwLDB4NDAgfX0sCi0gezE2LCAweGFhYzAsIDAsIHsweDkzLDB4MDEsMHgyNCwweDRjLDB4MGIsMHgzMiwweDAyLDB4MjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYWQwLCAwLCB7MHhjMCwweDExLDB4YWMsMHgwMCwweGJiLDB4MDIsMHgyZSwweDBhLDB4MDgsMHg4MCwweDgyLDB4NjAsMHgwMCwweGE4LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YWFlMCwgMCwgezB4ZTAsMHgxYiwweGIwLDB4MDIsMHg2MiwweDAxLDB4M2IsMHgwMCwweDIyLDB4YzEsMHgwOSwweDkwLDB4MDIsMHhlMiwweDAwLDB4YmIgfX0sCi0gezE2LCAweGFhZjAsIDAsIHsweDYwLDB4MjYsMHhjMSwweDA4LDB4YjAsMHgyYSwweDI2LDB4MDAsMHg5YiwweDA0LDB4MmUsMHgyMSwweDBiLDB4YjAsMHgwMiwweDMwIH19LAotIHsxNiwgMHhhYjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMSwweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UsMHgxMCB9fSwKLSB7MTYsIDB4YWIxMCwgMCwgezB4MDgsMHg4NCwweDEzLDB4ZWMsMHgwMiwweGE5LDB4MDQsMHgzNiwweDIwLDB4MGYsMHhiMCwweDAzLDB4ZWUsMHg4MCwweGZiLDB4MDAgfX0sCi0gezE2LCAweGFiMjAsIDAsIHsweDNhLDB4YzAsMHgwYywweGEwLDB4MDMsMHhhMiwweDgwLDB4NzksMHg0MCwweDFlLDB4YzAsMHg4YywweGIwLDB4NjMsMHg2YSwweDEwIH19LAotIHsxNiwgMHhhYjMwLCAwLCB7MHhkMywweDAwLDB4MzYsMHhhMiwweDA3LDB4YjAsMHgwMywweDAwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWI0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHgyMCwweDRkLDB4NDEsMHgwMywweDljLDB4MDAsMHhmZCwweDIwLDB4YWIgfX0sCi0gezE2LCAweGFiNTAsIDAsIHsweDAwLDB4MGMsMHhmMCwweDAzLDB4YjgsMHgwMCwweGY3LDB4MDAsMHgzZiwweGMwLDB4NGQsMHhjOSwweDAzLDB4ZjQsMHgwMCwweGZmIH19LAotIHsxNiwgMHhhYjYwLCAwLCB7MHgwMCwweDNiLDB4YzAsMHgyZSwweGYwLDB4MDAsMHhmMCwweDAwLDB4ZWYsMHgwMCwweDNmLDB4MDAsMHg0YiwweDcwLDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4YWI3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDgwLDB4ZWIsMHgwMCwweDdlLDB4MTAgfX0sCi0gezE2LCAweGFiODAsIDAsIHsweDJlLDB4ODQsMHgwMywweGVjLDB4MDAsMHhlMCwweDAwLDB4MzIsMHg1MCwweDBmLDB4YjAsMHg4NiwweDI1LDB4MDAsMHhkYiwweDIwIH19LAotIHsxNiwgMHhhYjkwLCAwLCB7MHgzYSwweGMwLDB4MGQsMHhiMCwweDYzLDB4ZTEsMHgxMCwweGZiLDB4NDgsMHgzOCwweGMxLDB4MGYsMHgzMCwweDAzLDB4MmMsMHgwNCB9fSwKLSB7MTYsIDB4YWJhMCwgMCwgezB4ZmIsMHgwOCwweDMyLDB4YzAsMHgwYywweGIwLDB4MGIsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFiYjAsIDAsIHsweGM4LDB4MDUsMHgzYywweDAwLDB4OGYsMHgwMCwweDY0LDB4MjksMHgyOCwweDgwLDB4MDMsMHhlYywweDAyLDB4ZTgsMHgwNCwweGE4IH19LAotIHsxNiwgMHhhYmMwLCAwLCB7MHg1NiwweDA4LDB4ZmMsMHgwNywweGUwLDB4MDAsMHgwZiwweGEwLDB4YmYsMHhjMCwweDBiLDB4OTUsMHgwMiwweGEwLDB4MDAsMHhiYiB9fSwKLSB7MTYsIDB4YWJkMCwgMCwgezB4MDUsMHgzNywweGMwLDB4ODksMHhmMCwweDBhLDB4MGQsMHhjOCwweGJmLDB4MDgsMHgyYSwweDgwLDB4MDgsMHhmMCwweDAyLDB4MzIgfX0sCi0gezE2LCAweGFiZTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMSwweGIzLDB4MDIsMHgyNCwweGUwIH19LAotIHsxNiwgMHhhYmYwLCAwLCB7MHgwYSwweDMwLDB4MTIsMHg4MCwweDAzLDB4YTMsMHgwMCwweGE4LDB4MDAsMHgwMiwweGI4LDB4MjIsMHhjMCwweDAwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4YWMwMCwgMCwgezB4MjgsMHhjMSwweDBiLDB4MDQsMHgwMiwweDA4LDB4MDAsMHhiOSwweDQwLDB4MjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweDAzLDB4MDQgfX0sCi0gezE2LCAweGFjMTAsIDAsIHsweGIzLDB4NDQsMHgyMCwweDAwLDB4NGEsMHgzMCwweDAyLDB4MzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYzIwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgyMCwweDE3LDB4YTAsMHg2NSwweGVjLDB4MDgsMHgzOCwweDAyLDB4YzIsMHg0MSwweGIzLDB4OTIsMHgyYiB9fSwKLSB7MTYsIDB4YWMzMCwgMCwgezB4NjQsMHgwYSwweDM4LDB4MDIsMHgzNiwweDAxLDB4YjcsMHg5MCwweDJkLDB4ZTAsMHgwMywweGY4LDB4MDAsMHg5YSwweDAwLDB4YjUgfX0sCi0gezE2LCAweGFjNDAsIDAsIHsweDgwLDB4MmQsMHhlMCwweDg5LDB4NzgsMHgxMiwweDFlLDB4MDAsMHhiNywweDgwLDB4MjksMHhlMCwweDBhLDB4NzgsMHgwMiwweDA4IH19LAotIHsxNiwgMHhhYzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg3MywweGIwLDB4MjQsMHhjOCB9fSwKLSB7MTYsIDB4YWM2MCwgMCwgezB4NGUsMHgzMCwweDBhLDB4ODAsMHgwMiwweGUyLDB4MDAsMHgzOCwweDk0LDB4MGUsMHgzMSwweGEyLDB4YzgsMHgwMCwweDczLDB4MDAgfX0sCi0gezE2LCAweGFjNzAsIDAsIHsweDE4LDB4YzQsMHgwNSwweDAwLDB4MDMsMHgwMCwweDAwLDB4ZjMsMHgwMCwweDM4LDB4YzAsMHgwNywweGIxLDB4MDMsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYzgwLCAwLCB7MHhmMywweDAxLDB4MzAsMHg0MSwweDBlLDB4YjAsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWM5MCwgMCwgezB4NDAsMHgxZCwweGJkLDB4MDAsMHhlZiwweDEwLDB4MjYsMHhjOCwweDAzLDB4YjEsMHgwMywweGUwLDB4MDAsMHhlYSwweDgxLDB4NzggfX0sCi0gezE2LCAweGFjYTAsIDAsIHsweGM1LDB4MGMsMHhiNSwweGUzLDB4ZGMsMHgwMCwweGMzLDB4MDAsMHgzZSwweGMxLDB4MGYsMHhmMCwweDgzLDB4YjAsMHgwMCwweGZmIH19LAotIHsxNiwgMHhhY2IwLCAwLCB7MHgwMCwweDM3LDB4YzAsMHgwZCwweGY0LDB4MDMsMHhlNCwweDAwLDB4ZjcsMHgwMCwweDNmLDB4NDAsMHgwZCwweGYwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4YWNjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZCwweDEwLDB4Y2IsMHgyOCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGFjZDAsIDAsIHsweDBkLDB4YjAsMHgxMywweGFjLDB4MTAsMHhmYiwweDAwLDB4M2EsMHg4MCwweDA0LDB4YjQsMHgwMywweGFjLDB4MDAsMHhmYiwweDA0IH19LAotIHsxNiwgMHhhY2UwLCAwLCB7MHgzZSwweGMwLDB4MGYsMHhhNCwweGIzLDB4ZTAsMHgwMCwweGZiLDB4ODAsMHgzMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTgsMHgwMCB9fSwKLSB7MTYsIDB4YWNmMCwgMCwgezB4ZmIsMHg0OCwweGIyLDB4ODAsMHgwZiwweGIwLDB4NDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFkMDAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDAyLDB4ODcsMHg0NCwweDM4LDB4YzAsMHg4ZCwweDMwLDB4MDIsMHg0YywweDAwLDB4ZmYsMHgwMCwweDIxIH19LAotIHsxNiwgMHhhZDEwLCAwLCB7MHhjMCwweDA4LDB4NzAsMHgwMywweDljLDB4MDAsMHhiMywweDUwLDB4MjEsMHhkNCwweDRlLDB4NjIsMHgwMiwweGQwLDB4MDAsMHhiZiB9fSwKLSB7MTYsIDB4YWQyMCwgMCwgezB4MDAsMHgzNSwweGQ0LDB4MDksMHg3MCwweDIyLDB4ZDgsMHgwMCwweGJmLDB4MjIsMHgyMSwweGMwLDB4MGIsMHg3MiwweDAyLDB4ZDIgfX0sCi0gezE2LCAweGFkMzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHg0MCwweDg3LDB4ODAsMHgyZCwweGUwIH19LAotIHsxNiwgMHhhZDQwLCAwLCB7MHgwOSwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjYsMHg4MCwweDI5LDB4YTEsMHgyOCwweDdhLDB4MzIsMHhkZSwweDAwLDB4MzcsMHhhMCB9fSwKLSB7MTYsIDB4YWQ1MCwgMCwgezB4MjUsMHhlMCwweDA5LDB4NzgsMHgwNiwweGQyLDB4MDAsMHhiNywweDgwLDB4MjEsMHhlOCwweDBiLDB4NzksMHgwMiwweGRlLDB4MDAgfX0sCi0gezE2LCAweGFkNjAsIDAsIHsweGI3LDB4OTAsMHgyMSwweGUwLDB4MGIsMHg3OSwweDAyLDB4ZjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZDcwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwNCwweDgzLDB4MDEsMHgyOCwweGMwLDB4ODksMHhiMCwweDBhLDB4NGYsMHgwMCwweGIyLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YWQ4MCwgMCwgezB4YzQsMHg4OCwweDMwLDB4MTYsMHhjZiwweDAwLDB4YmIsMHgwNCwweDIwLDB4YzEsMHgwYSwweDMyLDB4MDYsMHhjMiwweDAwLDB4YjMgfX0sCi0gezE2LCAweGFkOTAsIDAsIHsweDAwLDB4MjQsMHhjMCwweDA5LDB4MzAsMHg0MiwweGVmLDB4MTAsMHhiMywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHhhZGEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHg0YSwweDAwLDB4M2UsMHg4MCB9fSwKLSB7MTYsIDB4YWRiMCwgMCwgezB4MmQsMHhhMCwweDBiLDB4YWEsMHg4MCwweGZlLDB4MDAsMHgyYiwweDgwLDB4MGMsMHhhMCwweDQzLDB4ZmIsMHgzMCwweGZhLDB4MDAgfX0sCi0gezE2LCAweGFkYzAsIDAsIHsweDNlLDB4ODAsMHgwZiwweGEwLDB4ODMsMHhmYSwweDA0LDB4ZmUsMHgxOCwweDIyLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDg0IH19LAotIHsxNiwgMHhhZGQwLCAwLCB7MHhmMiwweDAwLDB4MzMsMHhhMiwweDBmLDB4YTAsMHgwMywweGYyLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWRlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDJmLDB4ODAsMHgwMywweGEwLDB4MjAsMHhmYywweDAyLDB4M2UgfX0sCi0gezE2LCAweGFkZjAsIDAsIHsweDAwLDB4MWYsMHg4NCwweDAzLDB4YTAsMHgwMCwweGY4LDB4NDAsMHgzZSwweDAwLDB4NGYsMHg4MCwweDAxLDB4ZTAsMHg0MCwweGY4IH19LAotIHsxNiwgMHhhZTAwLCAwLCB7MHg0MCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4YWUxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNiwweDAwLDB4ZDksMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGFlMjAsIDAsIHsweDBmLDB4OTAsMHgwYiwweDA0LDB4MDAsMHhjOSwweDAwLDB4MzYsMHg2OCwweDZjLDB4OTQsMHgwMywweGU0LDB4MjAsMHhiOSwweDkwIH19LAotIHsxNiwgMHhhZTMwLCAwLCB7MHgzNiwweDQwLDB4MGMsMHg5NCwweDAzLDB4ZTQsMHgwMCwweDI5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4MjQsMHgyMCB9fSwKLSB7MTYsIDB4YWU0MCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFlNTAsIDAsIHsweDgwLDB4MDQsMHg2NiwweDUwLDB4ODksMHgwMCwweDIwLDB4NTAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDA5LDB4ZDksMHgwMCwweDIwIH19LAotIHsxNiwgMHhhZTYwLCAwLCB7MHg0OCwweDQ4LDB4OTAsMHgwNiwweGU0LDB4MDQsMHg5OSwweGEwLDB4MjIsMHg0MCwweDBkLDB4YjgsMHgyMiwweDY0LDB4MDAsMHgwOSB9fSwKLSB7MTYsIDB4YWU3MCwgMCwgezB4NTAsMHgzMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4MjcsMHg5MCwweDg5LDB4NDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGFlODAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4MjQsMHgwMCwweDk5LDB4MDAsMHg2NiwweDQyIH19LAotIHsxNiwgMHhhZTkwLCAwLCB7MHgwYSwweGQwLDB4MTIsMHgzNCwweDAwLDB4ODUsMHgwMCwweDI2LDB4NDAsMHg0YSwweDkwLDB4MDIsMHhlNCwweDAxLDB4YjksMHgwMSB9fSwKLSB7MTYsIDB4YWVhMCwgMCwgezB4MjQsMHg0MCwweDU4LDB4OTAsMHgxMiwweGM0LDB4MDAsMHgyOSwweDQwLDB4MmUsMHg0MCwweDBiLDB4MTAsMHgwYSwweDI0LDB4ODAgfX0sCi0gezE2LCAweGFlYjAsIDAsIHsweDg5LDB4MDUsMHgyNiwweDQxLDB4MGIsMHg5MCwweDAyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZWMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHg4MCwweDgxLDB4MjAsMHg2MSwweDQ4LDB4MDgsMHg1MiwweDAyLDB4MTQsMHg4MSwweDk1LDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4YWVkMCwgMCwgezB4NDAsMHgwYSwweDM2LDB4MDIsMHhjNCwweDAwLDB4YjEsMHgyMCwweDAwLDB4NDgsMHg0MSwweDEwLDB4NDIsMHg0NCwweDAxLDB4YTEgfX0sCi0gezE2LCAweGFlZTAsIDAsIHsweDAwLDB4MjQsMHg0OCwweDBiLDB4MTIsMHgxMiwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjgsMHg0OCwweDBiLDB4MTIsMHgwMiwweGNhIH19LAotIHsxNiwgMHhhZWYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhkOCwweDUwLDB4MzYsMHgwMCB9fSwKLSB7MTYsIDB4YWYwMCwgMCwgezB4MGUsMHg4NSwweDIzLDB4MjEsMHg0MiwweDhjLDB4NTQsMHgzNCwweDE0LDB4MGUsMHg4MCwweDAyLDB4ZTEsMHg0MCwweGY4LDB4NTAgfX0sCi0gezE2LCAweGFmMTAsIDAsIHsweDM2LDB4MTQsMHgwNCwweDgwLDB4MDMsMHhlMSwweDQ0LDB4ZTgsMHg1MCwweDdlLDB4MTUsMHgwZiwweDg1LDB4MDMsMHgyMSwweDQyIH19LAotIHsxNiwgMHhhZjIwLCAwLCB7MHg0YSwweDAwLDB4MzYsMHgxNCwweDBmLDB4ODAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWYzMCwgMCwgezB4OTgsMHgxZCwweGM0LDB4NDAsMHhmOSwweDEwLDB4MWUsMHg0NCwweDRlLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwLDB4M2YgfX0sCi0gezE2LCAweGFmNDAsIDAsIHsweGMwLDB4MGQsMHg5MSwweDAzLDB4ZjQsMHgwMCwweGQ5LDB4MTQsMHgzZSwweDQ0LDB4MGYsMHg5MCwweDAzLDB4NzQsMHgwMCwweGRkIH19LAotIHsxNiwgMHhhZjUwLCAwLCB7MHgwMCwweDdhLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhmNCwweDQwLDB4ZjksMHgzOCwweDNmLDB4NDQsMHgwZiwweDkzLDB4ODMsMHhlNyB9fSwKLSB7MTYsIDB4YWY2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmNiwweDgwLDB4ZjksMHhhNCwweDNmLDB4NjggfX0sCi0gezE2LCAweGFmNzAsIDAsIHsweDBlLDB4OWUsMHg0MywweDY3LDB4ODAsMHhkOSwweGU0LDB4M2YsMHg0MSwweDBmLDB4ZDgsMHg0MywweDA0LDB4MDAsMHhlZCwweGMwIH19LAotIHsxNiwgMHhhZjgwLCAwLCB7MHgzNiwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGQ1LDB4NDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZjQsMHgwMCB9fSwKLSB7MTYsIDB4YWY5MCwgMCwgezB4ZGQsMHgwMCwweDMyLDB4NDAsMHgyYywweDlhLDB4MDMsMHhjNiwweDAxLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFmYTAsIDAsIHsweDM4LDB4MTAsMHhlMCwweDAwLDB4ZTgsMHhjMCwweDJlLDB4MTQsMHg0ZCwweDhmLDB4MjIsMHgyMywweGMwLDB4ZjgsMHhmMCwweGFhIH19LAotIHsxNiwgMHhhZmIwLCAwLCB7MHgwMCwweDBjLDB4ODAsMHgwMywweGEyLDB4YTAsMHhkOCwweDgyLDB4MjIsMHgwMCwweDA4LDB4ODAsMHgwMiwweGU4LDB4MDAsMHhkOCB9fSwKLSB7MTYsIDB4YWZjMCwgMCwgezB4ODAsMHgyYSwweDAwLDB4MDgsMHg4MCwweDAyLDB4ZTgsMHgwOCwweDg4LDB4YTgsMHgzNiwweDAwLDB4NDgsMHg4YSwweDgyLDB4Y2UgfX0sCi0gezE2LCAweGFmZDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHgwMCwweGIxLDB4NDgsMHgyZSwweDQwIH19LAotIHsxNiwgMHhhZmUwLCAwLCB7MHgwYSwweDEyLDB4MjIsMHg0NCwweDAwLDB4OTEsMHgwNCwweGE0LDB4NDEsMHgwYSwweDk0LDB4MDYsMHgyNCwweDAwLDB4OTEsMHg0MiB9fSwKLSB7MTYsIDB4YWZmMCwgMCwgezB4MjQsMHg0MSwweDA5LDB4MTAsMHgwMiwweGU0LDB4MDEsMHg5MSwweDIwLDB4MjQsMHg0MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4MDEgfX0sCi0gezE2LCAweGIwMDAsIDAsIHsweDkxLDB4MDAsMHgyYywweDQwLDB4MDksMHgxNCwweDAyLDB4YzIsMHgwMSwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMDEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGE5LDB4MDAsMHgyZSwweDQwLDB4NDgsMHgxMCwweDAyLDB4MjQsMHgwMCwweGI5LDB4NDAsMHhhYSB9fSwKLSB7MTYsIDB4YjAyMCwgMCwgezB4NDAsMHgxOCwweGIwLDB4MDIsMHhlNCwweDA4LDB4OTksMHgwMCwweDIyLDB4NDAsMHgxOSwweDkwLDB4NDYsMHhlNCwweDgwLDB4OTkgfX0sCi0gezE2LCAweGIwMzAsIDAsIHsweDA0LDB4MmUsMHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MDEsMHg5OSwweDA0LDB4MjYsMHg1MCwweDA5LDB4OTAsMHgwMiwweGM2IH19LAotIHsxNiwgMHhiMDQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGU0LDB4MDAsMHhmOSwweDA2LDB4M2MsMHg0MCB9fSwKLSB7MTYsIDB4YjA1MCwgMCwgezB4MGEsMHg5MCwweDAzLDB4NjQsMHgwMiwweGQ5LDB4MDAsMHhiNiwweDUwLDB4MGUsMHg5MCwweDIzLDB4MjYsMHgwMSwweGY5LDB4MDAgfX0sCi0gezE2LCAweGIwNjAsIDAsIHsweDM2LDB4NDAsMHgyOSwweDk0LDB4ODMsMHhlNCwweDAwLDB4ZDksMHg0OCwweDM2LDB4NDAsMHgwZCwweDkwLDB4MDMsMHhjNywweDAwIH19LAotIHsxNiwgMHhiMDcwLCAwLCB7MHhkMSwweDA3LDB4M2EsMHg1MCwweGNkLDB4OTAsMHgwMywweGU4LDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjA4MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDgsMHhlOSwweDAwLDB4M2UsMHg0MCwweDhmLDB4OTAsMHgwMywweGM0LDB4MDgsMHhmMSwweDAwLDB4M2EgfX0sCi0gezE2LCAweGIwOTAsIDAsIHsweDY4LDB4OGYsMHg5MCwweDAzLDB4YTQsMHg0MSwweGY5LDB4MDAsMHhiZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhiMGEwLCAwLCB7MHhjMCwweDM4LDB4NDAsMHgyZSwweDkwLDB4MDMsMHhlNiwweDQwLDB4ZTksMHgwMCwweDNlLDB4NjgsMHgwNiwweDkwLDB4MDMsMHhjYSB9fSwKLSB7MTYsIDB4YjBiMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZDgsMHgwNSwweDNlLDB4MDAgfX0sCi0gezE2LCAweGIwYzAsIDAsIHsweDA3LDB4ODAsMHgwYiwweDIwLDB4MDAsMHhlOCwweDQwLDB4M2UsMHgxMCwweDBkLDB4ODIsMHgwMywweDYwLDB4MDAsMHhjOCwweDAwIH19LAotIHsxNiwgMHhiMGQwLCAwLCB7MHhiMiwweDAwLDB4OGQsMHg4MywweDAzLDB4ZTAsMHgwMCwweGQ4LDB4NTAsMHgzYSwweDAwLDB4MWUsMHg4MCwweDAzLDB4ZTEsMHgyNCB9fSwKLSB7MTYsIDB4YjBlMCwgMCwgezB4ZjgsMHgwMCwweGIyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIwZjAsIDAsIHsweDI4LDB4MDUsMHgzOCwweDAwLDB4OGEsMHgwNCwweDJmLDB4ODQsMHg2YSwweGEwLDB4MGIsMHhlOCwweDA4LDB4OGUsMHgwMCwweDNkIH19LAotIHsxNiwgMHhiMTAwLCAwLCB7MHg4MCwweDg4LDB4ZWMsMHgwMywweDY4LDB4MTAsMHhhNiwweDAxLDB4MzYsMHg4MCwweDA4LDB4YTgsMHgwMCwweGM4LDB4MTAsMHg4ZSB9fSwKLSB7MTYsIDB4YjExMCwgMCwgezB4MTAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4ZmIsMHgyMCwweGJlLDB4NTEsMHgyYSwweDgwLDB4MGIsMHhhMCwweDAyLDB4ODIgfX0sCi0gezE2LCAweGIxMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NDEsMHgyMSwweDkzLDB4MDAsMHgyYywweGYwIH19LAotIHsxNiwgMHhiMTMwLCAwLCB7MHgzOSwweDMwLDB4MDYsMHgwYywweDAwLDB4YTMsMHgwMCwweDI4LDB4MDgsMHgyOCwweGJjLDB4MDIsMHgyYywweDAwLDB4ODMsMHg4MCB9fSwKLSB7MTYsIDB4YjE0MCwgMCwgezB4MmEsMHhjMCwweDA4LDB4MzAsMHgwMCwweGNjLDB4MDAsMHg5YSwweDgwLDB4MjgsMHhjMCwweDBhLDB4MzAsMHgwMiwweGNkLDB4MDAgfX0sCi0gezE2LCAweGIxNTAsIDAsIHsweGIzLDB4MDQsMHg2MiwweGMxLDB4MGIsMHgzMCwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMTYwLCAwLCB7MHhhMCwweDAxLDB4MWUsMHgwNCwweDA3LDB4MTEsMHgyYywweGQwLDB4MGEsMHgzMiwweDIyLDB4ZGMsMHhjMSwweDg3LDB4MDAsMHg2ZCB9fSwKLSB7MTYsIDB4YjE3MCwgMCwgezB4ZDAsMHgwOCwweDM0LDB4MDIsMHg3YywweDAwLDB4YTcsMHgwOCwweDI0LDB4YzgsMHgwOCwweDcwLDB4MDIsMHhkYywweDgwLDB4MGYgfX0sCi0gezE2LCAweGIxODAsIDAsIHsweDAwLDB4MjEsMHhjNCwweDA4LDB4NzMsMHgwNiwweGRjLDB4MDAsMHhiMiwweDAwLDB4NjEsMHhjOCwweDBiLDB4M2EsMHgwMiwweDg4IH19LAotIHsxNiwgMHhiMTkwLCAwLCB7MHgwNCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDBhLDB4MDAsMHg1NywweDgxLDB4MmQsMHhhMCB9fSwKLSB7MTYsIDB4YjFhMCwgMCwgezB4MmQsMHg3YywweDAyLDB4M2UsMHg4MiwweGUzLDB4ZTAsMHgzYiwweGUwLDB4MGMsMHg3OCwweDAzLDB4MWUsMHgyMCwweGM3LDB4ODAgfX0sCi0gezE2LCAweGIxYjAsIDAsIHsweGI5LDB4ZTgsMHgyYywweDc4LDB4MDMsMHhmZiwweDgwLDB4ZDYsMHg4MCwweDNiLDB4ZWMsMHgwMiwweDdhLDB4MDMsMHhkZSwweDAwIH19LAotIHsxNiwgMHhiMWMwLCAwLCB7MHhmNywweDgxLDB4MzEsMHhlYywweDhmLDB4N2MsMHgwMywweDBhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjFkMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDAwLDB4MWUsMHg4MCwweDIzLDB4YjYsMHg4MywweGVkLDB4YTAsMHhkYiwweDY0LDB4M2UgfX0sCi0gezE2LCAweGIxZTAsIDAsIHsweGMwLDB4MGUsMHhiMCwweDAzLDB4ZWQsMHhjMCwweGYyLDB4MDAsMHgzZSwweGQ0LDB4MGEsMHhiMCwweDAzLDB4ZWMsMHgzMCwweGVlIH19LAotIHsxNiwgMHhiMWYwLCAwLCB7MHg2NCwweDNlLDB4YzAsMHgwNywweGIwLDB4YzMsMHhlOCwweDAwLDB4ZmIsMHgwMSwweDNlLDB4YzgsMHgwZiwweGI4LDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4YjIwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4ZWYsMHg4MCwweDNiLDB4ZTAgfX0sCi0gezE2LCAweGIyMTAsIDAsIHsweDBmLDB4ZjgsMHg2MywweDdlLDB4MDQsMHhjZiwweGMwLDB4YjcsMHgyMCwweDBlLDB4ZjgsMHgwMywweGZjLDB4MDAsMHhjNywweDgwIH19LAotIHsxNiwgMHhiMjIwLCAwLCB7MHgzMywweGYwLDB4MGMsMHhjYywweDAzLDB4ZmUsMHgwOCwweGY3LDB4YzEsMHgzMywweGUwLDB4NGYsMHhmOCwweDAzLDB4YjIsMHg0MCB9fSwKLSB7MTYsIDB4YjIzMCwgMCwgezB4ZmYsMHhhMCwweDMxLDB4ZTYsMHgwYywweGY4LDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIyNDAsIDAsIHsweGE4LDB4MTEsMHg5YywweDAwLDB4ZWYsMHgwMiwweDIxLDB4NDAsMHgyZCwweDcwLDB4MDIsMHgxYywweDAwLDB4ZjcsMHgxMCwweDI5IH19LAotIHsxNiwgMHhiMjUwLCAwLCB7MHg0MCwweDA4LDB4NzAsMHgyMiwweGZjLDB4YzAsMHhhNywweDAwLDB4M2QsMHhjMCwweDA4LDB4NDAsMHgwMiwweGRjLDB4MDAsMHhiNyB9fSwKLSB7MTYsIDB4YjI2MCwgMCwgezB4NDAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZGEsMHg4MCwweGI3LDB4MjQsMHgyOSwweGM2LDB4NDgsMHhmMCwweDAyLDB4MmEgfX0sCi0gezE2LCAweGIyNzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGE3LDB4MDAsMHgyOCwweDg0IH19LAotIHsxNiwgMHhiMjgwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHgwYywweDAwLDB4OTMsMHgwMCwweDI1LDB4ODAsMHgwYSwweDYxLDB4MDIsMHhkYywweDAxLDB4YTcsMHgxMCB9fSwKLSB7MTYsIDB4YjI5MCwgMCwgezB4MjQsMHhjMCwweDA4LDB4NDAsMHg4MiwweGRjLDB4MDAsMHg5ZiwweDAwLDB4MjUsMHhjNCwweDBiLDB4NzAsMHgwMiwweDk0LDB4MjUgfX0sCi0gezE2LCAweGIyYTAsIDAsIHsweGI3LDB4MzIsMHgyMywweGM0LDB4MWIsMHg3MCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMmIwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwYywweGEzLDB4MDAsMHgyMCwweDAwLDB4MjksMHgzMCwweDBhLDB4MGMsMHgwMCwweGEzLDB4MDAsMHg2YyB9fSwKLSB7MTYsIDB4YjJjMCwgMCwgezB4MDAsMHgwOCwweDEwLDB4NDIsMHhjZCwweDEwLDB4YWEsMHgwMCwweGFjLDB4YzAsMHgwMCwweDA0LDB4MDIsMHhjZCwweDAwLDB4YmIgfX0sCi0gezE2LCAweGIyZDAsIDAsIHsweDEwLDB4MjQsMHhjMCwweDAzLDB4MzAsMHg0MiwweGMzLDB4MDksMHhiMywweDAwLDB4MmMsMHhkMCwweDBhLDB4MzAsMHgwMiwweDE4IH19LAotIHsxNiwgMHhiMmUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweDgwLDB4MDAsMHhlZiwweDAwLDB4M2EsMHg0MCB9fSwKLSB7MTYsIDB4YjJmMCwgMCwgezB4MDcsMHhmMCwweDQzLDB4M2MsMHgwMCwweDlmLDB4YzAsMHhiNiwweDE0LDB4MGUsMHg4MCwweDA2LDB4ZmMsMHgwMSwweGNiLDB4MDEgfX0sCi0gezE2LCAweGIzMDAsIDAsIHsweDM3LDB4YzAsMHhhYywweGI0LDB4MDIsMHhmYywweDAwLDB4ZDksMHgwMSwweDM3LDB4YzAsMHg0YiwweGYwLDB4MTMsMHhhZSwweDA4IH19LAotIHsxNiwgMHhiMzEwLCAwLCB7MHhmYiwweDAwLDB4MzMsMHhkMCwweDJlLDB4ZjAsMHgwYiwweDJhLDB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjMyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA1LDB4M2UsMHg0MCwweDBmLDB4MzAsMHgwMywweGFjLDB4MTQsMHhmYiwweGEwLDB4M2EgfX0sCi0gezE2LCAweGIzMzAsIDAsIHsweGMwLDB4MGYsMHg4NCwweDQzLDB4ZWMsMHgwMSwweGY5LDB4NDAsMHgzZSwweGMwLDB4MGYsMHhhMiwweDAzLDB4ZWMsMHgyMSwweGY5IH19LAotIHsxNiwgMHhiMzQwLCAwLCB7MHgwMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlNCwweDIwLDB4ZjAsMHgwMCwweGJhLDB4YzAsMHgwZCwweGIwLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4YjM1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmOCwweDAwLDB4ZDcsMHgwMSwweDM1LDB4NjggfX0sCi0gezE2LCAweGIzNjAsIDAsIHsweDZkLDB4ZjAsMHgwMywweDNjLDB4MDEsMHhlNywweDAwLDB4MzMsMHhjMCwweDBkLDB4YzAsMHgwMywweGZjLDB4MjQsMHhjZiwweDAyIH19LAotIHsxNiwgMHhiMzcwLCAwLCB7MHgzNywweGMwLDB4MGQsMHhkMiwweDAyLDB4ZmMsMHgwMCwweGRmLDB4MDEsMHgzMywweGMwLDB4NWUsMHg3MCwweDMzLDB4MWMsMHgxOCB9fSwKLSB7MTYsIDB4YjM4MCwgMCwgezB4Y2YsMHg0MSwweDMxLDB4YzIsMHgwYywweGYwLDB4MDMsMHg0MCwweDQwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIzOTAsIDAsIHsweDgxLDB4MDAsMHg2YywweDAwLDB4OGIsMHgwMCwweDIyLDB4NTIsMHgyYSwweGIwLDB4MDMsMHg2YywweDAwLDB4YWIsMHgwMCwweDI4IH19LAotIHsxNiwgMHhiM2EwLCAwLCB7MHhjMCwweDBhLDB4OGMsMHgwMiwweGVjLDB4MTAsMHg4YiwweGUwLDB4MjIsMHhjMCwweDBmLDB4ODAsMHgwMiwweGNjLDB4MDAsMHg4YiB9fSwKLSB7MTYsIDB4YjNiMCwgMCwgezB4ODAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4MmEsMHgxMCwweGQ5LDB4ODAsMHgyMiwweGMwLDB4YzgsMHhiMCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGIzYzAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjQsMHgwMSwweDliLDB4MDAsMHgyNiwweDgwIH19LAotIHsxNiwgMHhiM2QwLCAwLCB7MHgyOSwweGIwLDB4NjIsMHgwYywweDAwLDB4YWIsMHgwMSwweDZhLDB4MDAsMHgwOCwweDk4LDB4MDIsMHhjYywweDAwLDB4OWIsMHg4MyB9fSwKLSB7MTYsIDB4YjNlMCwgMCwgezB4MmUsMHhjMCwweGNiLDB4YjQsMHgxMiwweGVjLDB4MDMsMHg4YiwweDgwLDB4MjgsMHhjMCwweDBhLDB4YjAsMHgwNiwweGEyLDB4MDAgfX0sCi0gezE2LCAweGIzZjAsIDAsIHsweDhiLDB4MDIsMHg2MiwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZTAsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNDAwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMSwweDgzLDB4MTQsMHgyMCwweDAwLDB4MGEsMHgzMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4YjQxMCwgMCwgezB4NDAsMHgwYSwweDEwLDB4MDAsMHhjYywweDAyLDB4OTMsMHgwMCwweDI4LDB4YzAsMHgwYSwweDIwLDB4MDIsMHhlYywweDAwLDB4MDMgfX0sCi0gezE2LCAweGI0MjAsIDAsIHsweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgxNiwweDAwLDB4ODAsMHg5MSwweDAwLDB4NjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhiNDMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhkYiwweDAwLDB4MzYsMHg4MCB9fSwKLSB7MTYsIDB4YjQ0MCwgMCwgezB4MmQsMHhmMCwweDAzLDB4M2MsMHgwMCwweGFmLDB4MDAsMHgzYSwweDgwLDB4MGQsMHg4MCwweDAzLDB4ZmMsMHgwMCwweDViLDB4MDAgfX0sCi0gezE2LCAweGI0NTAsIDAsIHsweDM3LDB4YzAsMHgwOSwweDkwLDB4MDMsMHhmYywweDAwLDB4ZGYsMHgwMCwweDMzLDB4YzAsMHgwYSwweGYwLDB4MDMsMHhhNCwweDIwIH19LAotIHsxNiwgMHhiNDYwLCAwLCB7MHhjYiwweDAwLDB4YjMsMHhjMCwweDhjLDB4YjAsMHgwMywweDQwLDB4MDIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjQ3MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDQsMHhmZiwweDIwLDB4MGYsMHgwMCwweDI3LDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwLDB4MmQgfX0sCi0gezE2LCAweGI0ODAsIDAsIHsweDAwLDB4MGIsMHhkMCwweDI3LDB4ZmMsMHgwMCwweGVmLDB4MDAsMHgzNywweGMwLDB4MGYsMHhjMCwweDQzLDB4ZmMsMHgwMCwweGZmIH19LAotIHsxNiwgMHhiNDkwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZCwweGYwLDB4MGIsMHhlMCwweDAwLDB4ZjUsMHgwMCwweDNmLDB4YzAsMHgxZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4YjRhMCwgMCwgezB4MDcsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmNCwweGMwLDB4ZmMsMHgyMiwweDdmLDB4YzAgfX0sCi0gezE2LCAweGI0YjAsIDAsIHsweDBjLDB4ZDAsMHg0MywweDM2LDB4MDAsMHhjNCwweDgxLDB4MzQsMHhjMCwweDFjLDB4ODksMHgwNywweGYyLDB4ODAsMHhjZiwweDgwIH19LAotIHsxNiwgMHhiNGMwLCAwLCB7MHgzMywweDYwLDB4MGYsMHg3OSwweDAzLDB4M2MsMHhlMCwweGNmLDB4MDgsMHgzMywweDQ4LDB4MGQsMHhjNCwweDAzLDB4ZjAsMHg1MCB9fSwKLSB7MTYsIDB4YjRkMCwgMCwgezB4ZGMsMHg5MCwweDM3LDB4Y2MsMHgwZiwweGY4LDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI0ZTAsIDAsIHsweDgwLDB4MTAsMHhlOSwweDkwLDB4YjgsMHg4MCwweDdlLDB4ZTQsMHg4OCwweDk5LDB4MGEsMHgyNiwweDA4LDB4YTksMHg4MCwweDIyIH19LAotIHsxNiwgMHhiNGYwLCAwLCB7MHhmNCwweDJjLDB4OTksMHgwMywweGE3LDB4MDIsMHg4OSwweDgwLDB4MjIsMHgzNCwweDBiLDB4OWEsMHgwMywweDdkLDB4MDAsMHhkZiB9fSwKLSB7MTYsIDB4YjUwMCwgMCwgezB4NDgsMHgyYiwweDYwLDB4MDgsMHgwNSwweDAyLDB4ZTUsMHgwMCwweDgyLDB4MjAsMHgyMiwweGM0LDB4OGIsMHhiMCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGI1MTAsIDAsIHsweDA2LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzUsMHgwMCwweGIwLDB4MTAsMHgyYywweGMwIH19LAotIHsxNiwgMHhiNTIwLCAwLCB7MHgyYSwweDAwLDB4MDIsMHhhNCwweDA4LDB4YTgsMHgwNCwweGUwLDB4ODAsMHgwYiwweDAwLDB4MDIsMHhjNCwweDQxLDB4YjIsMHgwNCB9fSwKLSB7MTYsIDB4YjUzMCwgMCwgezB4YTQsMHgwYSwweDBiLDB4YjAsMHgwMiwweDhjLDB4ODEsMHg4MywweDIwLDB4NjAsMHg1MCwweDk4LDB4MTIsMHgxMiwweDhiLDB4ODAgfX0sCi0gezE2LCAweGI1NDAsIDAsIHsweDg5LDB4MDAsMHgyYywweGM4LDB4MGIsMHgzMCwweDAyLDB4ZTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNTUwLCAwLCB7MHhjMCwweDExLDB4YWMsMHgyMCwweGJiLDB4MDIsMHgyYSwweGMwLDB4MGEsMHg4OCwweDAyLDB4YTQsMHgwOCwweGE5LDB4ODAsMHhhMiB9fSwKLSB7MTYsIDB4YjU2MCwgMCwgezB4ZTEsMHgxYiwweDljLDB4MjIsMHhlNiwweDAwLDB4YjgsMHg0MCwweDI2LDB4MzAsMHgwYiwweDkwLDB4MDIsMHhjYywweDAxLDB4OTMgfX0sCi0gezE2LCAweGI1NzAsIDAsIHsweDA0LDB4MmEsMHg0MCwweDM5LDB4OTgsMHg4MiwweGVjLDB4MTQsMHg4YiwweDY1LDB4MmEsMHhjMCwweDBiLDB4YjIsMHgwMiwweGY4IH19LAotIHsxNiwgMHhiNTgwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGU3LDB4MDAsMHhiOCwweDQ4LDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4YjU5MCwgMCwgezB4MGUsMHg4OCwweDQzLDB4ODQsMHgwMCwweGUzLDB4YzEsMHgzNiwweGU4LDB4MGYsMHg5YywweDEyLDB4ZTIsMHg4MCwweGYzLDB4YzAgfX0sCi0gezE2LCAweGI1YTAsIDAsIHsweDM2LDB4NzAsMHg1ZiwweGE4LDB4MjMsMHhhYywweDAxLDB4Y2IsMHgwNCwweDIyLDB4NDAsMHg0ZCwweDg0LDB4MDMsMHhlMiwweDAwIH19LAotIHsxNiwgMHhiNWIwLCAwLCB7MHhkOCwweDAwLDB4M2UsMHhjMCwweDBmLDB4OTAsMHgwMywweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjVjMCwgMCwgezB4ZTAsMHgwMSwweGIzLDB4MDksMHhmZSwweDEwLDB4M2UsMHg4MSwweDBkLDB4YzAsMHgwMywweDc0LDB4MGMsMHhmZiwweDAwLDB4M2QgfX0sCi0gezE2LCAweGI1ZDAsIDAsIHsweGMxLDB4OGMsMHhkMCwweDgzLDB4MTQsMHgwMCwweGNkLDB4MjAsMHgzYSwweDQwLDB4MGQsMHhjYSwweDAxLDB4N2MsMHgwMCwweGZmIH19LAotIHsxNiwgMHhiNWUwLCAwLCB7MHgwMCwweDFmLDB4NDAsMHgwZSwweGMwLDB4MjMsMHhmMiwweDQ2LDB4ZmUsMHg4NCwweDM3LDB4YzAsMHgwZiwweGQ4LDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4YjVmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZGQsMHgwMiwweDNkLDB4NDAgfX0sCi0gezE2LCAweGI2MDAsIDAsIHsweDBlLDB4OTAsMHgwMywweGFjLDB4MDAsMHhlYiwweDQ4LDB4M2UsMHhkMCwweDBjLDB4ODAsMHg2MywweGEyLDB4MDgsMHhjYSwweDAwIH19LAotIHsxNiwgMHhiNjEwLCAwLCB7MHgzMiwweDA4LDB4MGMsMHhiMCwweDAzLDB4YWMsMHgwOCwweGViLDB4MDAsMHgzZSwweDQwLDB4MGMsMHhkNCwweDgzLDB4NTgsMHgyMCB9fSwKLSB7MTYsIDB4YjYyMCwgMCwgezB4ZjksMHg0MiwweDMyLDB4YzAsMHgwYywweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI2MzAsIDAsIHsweGM4LDB4MDUsMHgyOCwweDAyLDB4ZGIsMHgwMCwweDJlLDB4ZTAsMHgyOCwweDNhLDB4MDIsMHgyZSwweDAwLDB4ZGIsMHg2MCwweDc2IH19LAotIHsxNiwgMHhiNjQwLCAwLCB7MHhlMCwweDBkLDB4OGMsMHgwMiwweGUwLDB4MDAsMHg4OCwweDAyLDB4MzYsMHg1OCwweDY4LDB4MTUsMHg4MywweDdjLDB4MDgsMHhiZiB9fSwKLSB7MTYsIDB4YjY1MCwgMCwgezB4MDAsMHgyZCwweDYwLDB4MDgsMHg5MCwweDAyLDB4YTksMHgwMCwweGIzLDB4MDUsMHgyMywweGMwLDB4MDgsMHhiMCwweDAyLDB4ZjIgfX0sCi0gezE2LCAweGI2NjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgxMCwweDgwLDB4MDAsMHgwYywweGMxIH19LAotIHsxNiwgMHhiNjcwLCAwLCB7MHgwOCwweDFjLDB4ODIsMHgwNiwweDAwLDB4OTMsMHhjMCwweDIwLDB4ZjYsMHgwYSwweDIwLDB4MDIsMHgwOCwweDAwLDB4OTMsMHgwMCB9fSwKLSB7MTYsIDB4YjY4MCwgMCwgezB4MjQsMHg2MCwweDA5LDB4M2MsMHgwMiwweDBjLDB4MDAsMHg4MywweDAwLDB4MmMsMHg2MCwweDA5LDB4MDEsMHgxMiwweDAwLDB4NDAgfX0sCi0gezE2LCAweGI2OTAsIDAsIHsweGIwLDB4MDAsMHhlMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NzAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNmEwLCAwLCB7MHgyMCwweDQxLDB4MGEsMHg0MCwweDg2LDB4ODEsMHgyZCwweGUwLDB4NTgsMHgxOCwweDBhLDB4MTYsMHhhMCwweDk3LDB4ODAsMHgyNSB9fSwKLSB7MTYsIDB4YjZiMCwgMCwgezB4ZTksMHgxOSwweDc4LDB4ODIsMHhkNiwweDAwLDB4OTcsMHg4MCwweDI1LDB4YTAsMHgxOSwweGY4LDB4MDIsMHg1ZSwweDAwLDB4YjcgfX0sCi0gezE2LCAweGI2YzAsIDAsIHsweDgwLDB4MmQsMHg2MCwweDI4LDB4NDgsMHgxMiwweDk2LDB4MDAsMHhiNCwweDgwLDB4MjEsMHhlMCwweDI4LDB4NzgsMHgwMiwweGM4IH19LAotIHsxNiwgMHhiNmQwLCAwLCB7MHgwNCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg4MSwweDMwLDB4M2MsMHhjMiB9fSwKLSB7MTYsIDB4YjZlMCwgMCwgezB4MGUsMHgwMCwweDAyLDB4ODQsMHgwMCwweGUzLDB4NDAsMHgyOCwweGU4LDB4NGMsMHgyOSwweDAzLDB4MGMsMHgwMCwweGQzLDB4MDAgfX0sCi0gezE2LCAweGI2ZjAsIDAsIHsweDM0LDB4YzQsMHgwZCwweDMxLDB4MDMsMHg4YywweDA4LDB4ZTMsMHgwMCwweDNjLDB4NDYsMHgwYywweDIwLDB4MDMsMHgwMCwweDgwIH19LAotIHsxNiwgMHhiNzAwLCAwLCB7MHhmMiwweDAwLDB4MzIsMHhjMCwweDBjLDB4MzAsMHgwMywweGQyLDB4MDIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjcxMCwgMCwgezB4NDAsMHgxOSwweGI4LDB4MDAsMHhmZiwweDEwLDB4MmYsMHhjMCwweDBmLDB4YzAsMHgyMywweGM0LDB4ODAsMHg3ZiwweDEwLDB4M2UgfX0sCi0gezE2LCAweGI3MjAsIDAsIHsweGMwLDB4MGYsMHhiMSwweDAzLDB4ZGMsMHgwMCwweGU3LDB4MDAsMHgzZiwweDgwLDB4MDYsMHhmMSwweDQzLDB4ZmMsMHgwMCwweGZmIH19LAotIHsxNiwgMHhiNzMwLCAwLCB7MHgwOCwweDdkLDB4NTAsMHgwZSwweGUxLDB4MjMsMHhiNCwweDA4LDB4ZmUsMHgxMCwweDNmLDB4YzQsMHgwZiwweGYwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4Yjc0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAyLDB4Y2MsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGI3NTAsIDAsIHsweDJjLDB4YzAsMHgwMywweDA0LDB4MDEsMHhjYiwweDAwLDB4MzMsMHg2MCwweDJjLDB4OTAsMHgxMywweGU4LDB4MDAsMHg3MywweDAwIH19LAotIHsxNiwgMHhiNzYwLCAwLCB7MHhiMiwweGMxLDB4MGYsMHhhMCwweDAzLDB4ZWMsMHg4MCwweGZiLDB4MjgsMHgzZSwweDU0LDB4MWYsMHhkMCwweDAzLDB4ZmUsMHgwMiB9fSwKLSB7MTYsIDB4Yjc3MCwgMCwgezB4YzksMHg4MCwweDMyLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI3ODAsIDAsIHsweDQ4LDB4MTEsMHg4MCwweDAwLDB4ODYsMHgwMCwweDJkLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgxNCwweDA4LDB4ODcsMHgwMCwweDI5IH19LAotIHsxNiwgMHhiNzkwLCAwLCB7MHg0MCwweDA4LDB4NzAsMHgwMiwweGRjLDB4MDAsMHhiNywweDAwLDB4MjEsMHhjMCwweDBiLDB4NjAsMHgwMiwweDVjLDB4YTAsMHg5NyB9fSwKLSB7MTYsIDB4YjdhMCwgMCwgezB4MjAsMHgyZCwweDQ4LDB4MGIsMHg1MCwweDAyLDB4ZGMsMHgxMCwweDhkLDB4MDAsMHgyMSwweGM4LDB4MGIsMHg3MCwweDAyLDB4ZDIgfX0sCi0gezE2LCAweGI3YjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWYsMHgwMCwweDg1LDB4ODEsMHgyYywweDYwIH19LAotIHsxNiwgMHhiN2MwLCAwLCB7MHgxOCwweDU4LDB4MDIsMHhkZSwweDIwLDB4YjcsMHg4MiwweDI4LDB4NjAsMHg1YSwweDc4LDB4NTIsMHhkZSwweDEwLDB4YmYsMHg4MCB9fSwKLSB7MTYsIDB4YjdkMCwgMCwgezB4MjEsMHhlMCwweDRiLDB4NzgsMHgwNiwweGRlLDB4NDAsMHhiNywweGEwLDB4MmQsMHg2OSwweDliLDB4NzgsMHgxMiwweGNlLDB4MDAgfX0sCi0gezE2LCAweGI3ZTAsIDAsIHsweDg3LDB4ODAsMHhlMSwweGU0LDB4MGIsMHg3OCwweDAyLDB4YzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiN2YwLCAwLCB7MHg0OCwweDE0LDB4ZWUsMHgwMCwweDgzLDB4MDAsMHgyYywweGMyLDB4MDgsMHgzNiwweDAyLDB4OGMsMHgwOCwweDgzLDB4ZjAsMHg2OCB9fSwKLSB7MTYsIDB4YjgwMCwgMCwgezB4NDAsMHgwYSwweDNlLDB4MDIsMHhjZCwweDQwLDB4YjMsMHgwMCwweDIwLDB4ZTAsMHgwYiwweDMyLDB4MDYsMHg0YywweDAwLDB4OWIgfX0sCi0gezE2LCAweGI4MTAsIDAsIHsweDAwLDB4MGMsMHg0MCwweDBiLDB4MzAsMHgwMiwweGNkLDB4ODAsMHg4MywweDA4LDB4MjAsMHhjMCwweDBiLDB4YjEsMHgwMiwweGRhIH19LAotIHsxNiwgMHhiODIwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4MDAsMHhjZSwweDA4LDB4M2YsMHhiMCB9fSwKLSB7MTYsIDB4YjgzMCwgMCwgezB4MGMsMHhlNCwweDIzLDB4ZGEsMHgwMiwweGRlLDB4NDAsMHhiYiwweGIyLDB4MGUsMHhlMiwweDQzLDB4ZmEsMHgwMCwweGZlLDB4MDAgfX0sCi0gezE2LCAweGI4NDAsIDAsIHsweDMzLDB4OTAsMHgwYiwweGUwLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODEsMHgwYiwweGUwLDB4MTMsMHhmOSwweDA4IH19LAotIHsxNiwgMHhiODUwLCAwLCB7MHhjZSwweDQwLDB4MzIsMHg4MCwweDBmLDB4YTgsMHgwMywweGZhLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yjg2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MjQsMHg5OCwweDA4LDB4M2MsMHgwNCwweDBmLDB4MDAsMHgwYiwweDYwLDB4MDAsMHhmOCwweDQwLDB4MmUgfX0sCi0gezE2LCAweGI4NzAsIDAsIHsweDAzLDB4MGQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDA2LDB4MGIsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGQ4IH19LAotIHsxNiwgMHhiODgwLCAwLCB7MHgwMCwweDNjLDB4MDAsMHgwMywweDhjLDB4MjMsMHhlMSwweDAwLDB4ZjgsMHgwMCwweDdlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4Yjg5MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGI4YTAsIDAsIHsweDhjLDB4OTAsMHgwMywweDI1LDB4MDAsMHhlOSwweDgwLDB4MzIsMHg0NCwweDBmLDB4OTQsMHgwMiwweGU0LDB4MjAsMHhmOSwweDAwIH19LAotIHsxNiwgMHhiOGIwLCAwLCB7MHgzMiwweDcwLDB4MGYsMHg5YSwweDQzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHgxMCwweDMzLDB4MjQsMHgxMCB9fSwKLSB7MTYsIDB4YjhjMCwgMCwgezB4ZjksMHgwMSwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI4ZDAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHg4MiwweDJlLDB4NDAsMHgyOCwweDkwLDB4MDIsMHgyNCwweDgyLDB4ODEsMHhjMCwweGEyIH19LAotIHsxNiwgMHhiOGUwLCAwLCB7MHg3MCwweDBiLDB4OWMsMHgwMiwweGU0LDB4MDAsMHgzMSwweDQyLDB4YTIsMHg2MCwweDBiLDB4OTQsMHg4MiwweGU0LDB4MDAsMHhiOSB9fSwKLSB7MTYsIDB4YjhmMCwgMCwgezB4MDAsMHgyYSwweDQwLDB4MDgsMHg5NCwweGEyLDB4MjUsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDBhLDB4MjAgfX0sCi0gezE2LCAweGI5MDAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweDg5LDB4NjQsMHgyZSwweDQwIH19LAotIHsxNiwgMHhiOTEwLCAwLCB7MHgwOCwweDkwLDB4NDIsMHhhNCwweDAwLDB4ODksMHg2MCwweDIyLDB4NDIsMHgwYiwweDkwLDB4MDIsMHhlNiwweDAwLDB4YjksMHg4MCB9fSwKLSB7MTYsIDB4YjkyMCwgMCwgezB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDQsMHhiOSwweDAwLDB4MjIsMHg0MCwweDI4LDB4OTAsMHgwMiwweDI0LDB4MDQgfX0sCi0gezE2LCAweGI5MzAsIDAsIHsweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MGUsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOTQwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHg4MCwweDgxLDB4MDAsMHgyYywweGMxLDB4NDgsMHgxMCwweDAyLDB4YTQsMHgwMiwweDgxLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4Yjk1MCwgMCwgezB4NDAsMHg4MywweDM0LDB4MDIsMHhjNCwweDAwLDB4YmIsMHgwMCwweDIwLDB4ZDAsMHgwYiwweDE0LDB4MDIsMHhjNCwweDgwLDB4YjEgfX0sCi0gezE2LCAweGI5NjAsIDAsIHsweDIwLDB4YTAsMHg2OCwweDE4LDB4MTQsMHgxYSwweDBkLDB4MDAsMHhiMSwweDQwLDB4MmMsMHg1MCwweDBiLDB4MTAsMHgwMiwweDBhIH19LAotIHsxNiwgMHhiOTcwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgwMCB9fSwKLSB7MTYsIDB4Yjk4MCwgMCwgezB4OGMsMHg4MCwweDBiLDB4YTAsMHgwNCwweGU4LDB4MDAsMHgzMiwweDAwLDB4MDcsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAgfX0sCi0gezE2LCAweGI5OTAsIDAsIHsweDMyLDB4MDAsMHgxZiwweDgwLDB4MDMsMHhhMSwweDQwLDB4ZjgsMHg1MCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyMCwweDAwIH19LAotIHsxNiwgMHhiOWEwLCAwLCB7MHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjliMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4NDYsMHhmZCwweDQwLDB4M2YsMHg1MCwweDIzLDB4ZDQsMHgxMywweDc0LDB4MDQsMHhmNSwweDAyLDB4M2YgfX0sCi0gezE2LCAweGI5YzAsIDAsIHsweDUwLDB4MGYsMHhkNCwweDAzLDB4ZmQsMHgwMCwweGJkLDB4MDAsMHgyZiwweDUwLDB4MGYsMHhkMCwweDAzLDB4ZTQsMHg0MCwweGY5IH19LAotIHsxNiwgMHhiOWQwLCAwLCB7MHgxMCwweDNmLDB4NDQsMHgwZiwweGQ0LDB4MDMsMHhmNSwweDA4LDB4ZmQsMHgwNiwweDNlLDB4NTAsMHgwZiwweGQyLDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4YjllMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDQwLDB4ZWQsMHgwNCwweDNlLDB4NDggfX0sCi0gezE2LCAweGI5ZjAsIDAsIHsweDBjLDB4YjIsMHg4MywweGY0LDB4MDAsMHhjMSwweDAwLDB4MzIsMHg0MCwweDhjLDB4ZDAsMHgwMywweDM0LDB4MDAsMHhmZCwweDAwIH19LAotIHsxNiwgMHhiYTAwLCAwLCB7MHgzNywweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTYsMHgyMCwweGY5LDB4ODgsMHgzZCwweDYyLDB4MGMsMHhkOCwweDAzLDB4ZmUsMHgyNCB9fSwKLSB7MTYsIDB4YmExMCwgMCwgezB4YzEsMHgwMCwweDNlLDB4NzgsMHgwZiwweGQwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJhMjAsIDAsIHsweDM4LDB4MTAsMHhlMSwweDAwLDB4ODgsMHg0MCwweDJlLDB4MTAsMHgwOCwweGM0LDB4MjMsMHhhMCwweDA4LDB4ODgsMHgwNiwweDJhIH19LAotIHsxNiwgMHhiYTMwLCAwLCB7MHgxNCwweDA4LDB4ODAsMHgwMywweDYwLDB4MDQsMHhiOCwweDAwLDB4MjIsMHgwMCwweDBiLDB4ODAsMHgwMiwweGUyLDB4MDAsMHhiOCB9fSwKLSB7MTYsIDB4YmE0MCwgMCwgezB4ODAsMHgyZSwweDAwLDB4MDgsMHg4YywweDAyLDB4ZTMsMHg4MCwweDg4LDB4MDIsMHgyZSwweDM4LDB4MGIsMHg4OCwweDAyLDB4MGUgfX0sCi0gezE2LCAweGJhNTAsIDAsIHsweDA2LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHg4MCwweGExLDB4YzAsMHgyZCwweDcwIH19LAotIHsxNiwgMHhiYTYwLCAwLCB7MHgwOCwweDUwLDB4NDIsMHhjNCwweDAwLDB4YTksMHgwMCwweDIwLDB4ZTAsMHgyYSwweDEwLDB4MGEsMHgwNCwweDEwLDB4YjEsMHgwMCB9fSwKLSB7MTYsIDB4YmE3MCwgMCwgezB4MjQsMHg0MCwweDRiLDB4MTAsMHgwNiwweGM0LDB4MjAsMHhiMSwweDA4LDB4NmUsMHg0MCwweDBiLDB4MTYsMHg4MiwweGM0LDB4MjAgfX0sCi0gezE2LCAweGJhODAsIDAsIHsweDgxLDB4MDAsMHgyYywweDUwLDB4MGIsMHg5MiwweDgyLDB4NTIsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYTkwLCAwLCB7MHgxOCwweDExLDB4YTQsMHgwMCwweGE5LDB4MDEsMHgyZSwweDQwLDB4MjgsMHhkMCwweDIwLDB4YTQsMHgwNCwweGE5LDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4YmFhMCwgMCwgezB4NDAsMHgxYSwweGIwLDB4MTIsMHgyNCwweDAwLDB4YjksMHgwYywweDIyLDB4NDIsMHgwYiwweDk0LDB4MDIsMHhlNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGJhYjAsIDAsIHsweDAwLDB4NmUsMHg0MCwweDBiLDB4OTYsMHgwMiwweGU0LDB4MTEsMHg4OSwweDIwLDB4NmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDQ2IH19LAotIHsxNiwgMHhiYWMwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4YzAsMHhhOSwweGMwLDB4M2UsMHg1MCB9fSwKLSB7MTYsIDB4YmFkMCwgMCwgezB4MDgsMHg5YywweDgzLDB4ZTQsMHgwMiwweGU5LDB4MDAsMHhiMiwweDQwLDB4MmEsMHg5MiwweDEyLDB4MjYsMHg0MCwweGY5LDB4NDAgfX0sCi0gezE2LCAweGJhZTAsIDAsIHsweDM2LDB4NzAsMHgwZiwweDk0LDB4MDMsMHhlNCwweDA0LDB4ZjksMHgwMSwweDNjLDB4NDAsMHgwZiwweDk4LDB4MDMsMHhlNiwweDAyIH19LAotIHsxNiwgMHhiYWYwLCAwLCB7MHhjOSwweDIyLDB4M2UsMHg0MCwweDBmLDB4MTAsMHgwMiwweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmIwMCwgMCwgezB4MjgsMHgwMSwweDg2LDB4MDQsMHhkOSwweDQwLDB4MWMsMHg0MCwweDBmLDB4OTIsMHgyMywweGE0LDB4YjAsMHhkYiwweDA0LDB4M2MgfX0sCi0gezE2LCAweGJiMTAsIDAsIHsweGMwLDB4MGQsMHg5YSwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQ0LDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhiYjIwLCAwLCB7MHgwMCwweDNlLDB4NDIsMHgyYywweDkwLDB4MjMsMHhlNCwweDgwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHg4ZiwweDkyLDB4MDMsMHg5MiB9fSwKLSB7MTYsIDB4YmIzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4YzgsMHgyMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGJiNDAsIDAsIHsweDRjLDB4YzAsMHg4YiwweDIwLDB4MDIsMHhjOCwweDMxLDB4MzIsMHgyMCwweDJkLDB4ODQsMHgwMywweGUxLDB4MDQsMHhmOCwweDQ4IH19LAotIHsxNiwgMHhiYjUwLCAwLCB7MHhiYSwweDAwLDB4MGYsMHg4OSwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4MGQsMHg4MSwweDEzLDB4MjAsMHgxMCB9fSwKLSB7MTYsIDB4YmI2MCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgwZiwweDgxLDB4MjMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJiNzAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4MGUsMHg0MCwweDIyLDB4ODAsMHgyOCwweGE0LDB4MDIsMHgxOSwweDAwLDB4NTIsMHg4MCwweGEyIH19LAotIHsxNiwgMHhiYjgwLCAwLCB7MHg4MCwweDRkLDB4ZWQsMHg4MiwweGU4LDB4MDAsMHhiNiwweDQyLDB4MjMsMHhiZCwweDBiLDB4ZTgsMHgwMiwweGU4LDB4MDQsMHhkYSB9fSwKLSB7MTYsIDB4YmI5MCwgMCwgezB4MDAsMHgzNywweDgwLDB4MDgsMHhlMCwweDAyLDB4M2EsMHgyMCwweGJhLDB4MDAsMHgyMiwweDgwLDB4MGIsMHhhOCwweDBhLDB4MGEgfX0sCi0gezE2LCAweGJiYTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDgzLDB4ODAsMHg2MCwweGMwIH19LAotIHsxNiwgMHhiYmIwLCAwLCB7MHgwOCwweDI5LDB4MDIsMHgwZCwweDAwLDB4OTIsMHg0MCwweDI0LDB4YzAsMHgwOCwweGI0LDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4YmJjMCwgMCwgezB4NjgsMHhlMCwweDFiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHg5MywweDAxLDB4MjQsMHhjMCwweDY5LDB4MzgsMHgwMiwweDZjLDB4MDAgfX0sCi0gezE2LCAweGJiZDAsIDAsIHsweGIzLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYmUwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHg0MCwweDgzLDB4YzAsMHgyMCwweDQwLDB4MDgsMHgyOCwweDA2LDB4OWMsMHgxOCwweDljLDB4MDIsMHgyNCB9fSwKLSB7MTYsIDB4YmJmMCwgMCwgezB4YzAsMHgwOSwweDcwLDB4MDIsMHhkNCwweDAwLDB4YjcsMHgwMCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhjZSwweDQwLDB4OTcgfX0sCi0gezE2LCAweGJjMDAsIDAsIHsweGIwLDB4MjUsMHg0MCwweDA4LDB4NzgsMHgxYSwweDU4LDB4MDAsMHhiZiwweGEyLDB4NjUsMHhjOCwweDBiLDB4NzgsMHgwMiwweDIwIH19LAotIHsxNiwgMHhiYzEwLCAwLCB7MHgwNCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDBlLDB4MDIsMHg4NywweDgwLDB4YjEsMHhhMCB9fSwKLSB7MTYsIDB4YmMyMCwgMCwgezB4MGMsMHg2OCwweDAzLDB4MWEsMHgwOCwweGQ2LDB4OTIsMHgzNSwweGU0LDB4MjgsMHg3OCwweDQyLDB4ZDYsMHgxMCwweGY1LDB4ODAgfX0sCi0gezE2LCAweGJjMzAsIDAsIHsweDM5LDB4YTAsMHgwZiwweDc4LDB4MjMsMHhkZSwweDMwLDB4ZDMsMHhhMiwweDM1LDB4YTAsMHg0ZCwweGU4LDB4MDMsMHg1ZSwweDAwIH19LAotIHsxNiwgMHhiYzQwLCAwLCB7MHhmNywweGQwLDB4M2QsMHhmOCwweDBmLDB4ZjAsMHgwMywweDIyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmM1MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDA0LDB4M2UsMHgwMCwweDBiLDB4YTAsMHgwMywweDQ4LDB4MDQsMHhmYSwweDQxLDB4M2EgfX0sCi0gezE2LCAweGJjNjAsIDAsIHsweDUwLDB4MGYsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGYxLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZWQsMHg4OCwweGZiIH19LAotIHsxNiwgMHhiYzcwLCAwLCB7MHg0ZCwweDNlLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhiYywweDA4LDB4ZmIsMHgyMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4YmM4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZGMsMHg4MCwweGIzLDB4ZTAgfX0sCi0gezE2LCAweGJjOTAsIDAsIHsweDBjLDB4ZDgsMHgwMywweGNlLDB4MDAsMHhjOCwweGEwLDB4MzEsMHhhMCwweDhkLDB4ZTksMHgwMywweGJlLDB4MDAsMHhiMiwweDgwIH19LAotIHsxNiwgMHhiY2EwLCAwLCB7MHgzMywweGUwLDB4MGMsMHhlOCwweDQzLDB4N2UsMHgwNCwweDBmLDB4ODEsMHgzMSwweGU0LDB4MGMsMHhkOCwweDAzLDB4ZjYsMHgwMCB9fSwKLSB7MTYsIDB4YmNiMCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHgwMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJjYzAsIDAsIHsweGE4LDB4MTEsMHg5YywweDAwLDB4YjQsMHg0MCwweDM1LDB4NDAsMHgwOCwweDUwLDB4ODIsMHhkZSwweDgwLDB4ZDQsMHg5MCwweDIxIH19LAotIHsxNiwgMHhiY2QwLCAwLCB7MHhlMCwweDBkLDB4NTEsMHgwMiwweGQ0LDB4NDAsMHhiNiwweGIwLDB4MmIsMHg5MCwweDBlLDB4ZTUsMHgwMiwweDljLDB4NDAsMHhkNyB9fSwKLSB7MTYsIDB4YmNlMCwgMCwgezB4MjIsMHgxOSwweDVjLDB4MGQsMHg3MCwweDAyLDB4ZDgsMHgwMCwweGI3LDB4MjAsMHgyZCwweGMwLDB4MGIsMHhmMCwweDAzLDB4NmEgfX0sCi0gezE2LCAweGJjZjAsIDAsIHsweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweDkzLDB4MTAsMHgyMSwweDgwIH19LAotIHsxNiwgMHhiZDAwLCAwLCB7MHgwOCwweDU4LDB4MDIsMHhkYywweGMwLDB4OTQsMHgwMCwweDIzLDB4ZDAsMHgwOCwweDcwLDB4YTAsMHhkNCwweDIwLDB4YjUsMHgwMiB9fSwKLSB7MTYsIDB4YmQxMCwgMCwgezB4MjksMHg4MCwweDA5LDB4NjAsMHg4MiwweDBjLDB4MDAsMHg4NywweDAyLDB4MjUsMHhjMCwweDE5LDB4NDAsMHgwMiwweGQ0LDB4MDAgfX0sCi0gezE2LCAweGJkMjAsIDAsIHsweGI3LDB4MDAsMHg2ZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZDMwLCAwLCB7MHgyMCwweDE0LDB4ZWMsMHgwMCwweGIzLDB4YzAsMHgyMCwweDAxLDB4NDgsMHgxOCwweDAyLDB4Y2MsMHgwMiwweDgxLDB4NDQsMHhhMCB9fSwKLSB7MTYsIDB4YmQ0MCwgMCwgezB4YzAsMHg4OSwweDM4LDB4MDIsMHhjNywweDgwLDB4YjEsMHgwMCwweDJjLDB4MDksMHg0YSwweDAwLDB4NjIsMHhhYywweDA5LDB4OTMgfX0sCi0gezE2LCAweGJkNTAsIDAsIHsweDAxLDB4MjgsMHg0MCwweDE5LDB4MzAsMHgwMiwweGNkLDB4MTAsMHhiMywweDkwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGM4IH19LAotIHsxNiwgMHhiZDYwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MjAsMHhkYiwweDYyLDB4MjIsMHhlMCB9fSwKLSB7MTYsIDB4YmQ3MCwgMCwgezB4NmMsMHhhMCwweDAzLDB4ZTQsMHgwMCwweDk4LDB4MDAsMHgzMiwweGMwLDB4ZWMsMHg5OCwweDIzLDB4YWUsMHgwOCwweGZiLDB4MDggfX0sCi0gezE2LCAweGJkODAsIDAsIHsweDNhLDB4NzgsMHgwOSwweDkwLDB4MDMsMHg3YywweDEwLDB4Y2YsMHgwMCwweDI2LDB4NDAsMHgwYywweGIwLDB4MDMsMHhlYywweDAwIH19LAotIHsxNiwgMHhiZDkwLCAwLCB7MHhmZiwweDgwLDB4M2YsMHhjMCwweDBmLDB4OTAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmRhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MjAsMHhmYiwweDQ4LDB4M2MsMHg2MSwweDBmLDB4YTAsMHg0MywweGVkLDB4MDAsMHhmOCwweDI0LDB4M2UgfX0sCi0gezE2LCAweGJkYjAsIDAsIHsweDUwLDB4MGYsMHg5MCwweDgzLDB4ZTQsMHgwMCwweGZiLDB4MDAsMHgzYSwweDUwLDB4MGYsMHg4MCwweDQzLDB4ZWMsMHgwOCwweGZiIH19LAotIHsxNiwgMHhiZGMwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwZiwweDQwLDB4MDMsMHhmMCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzEsMHgwZiwweDkwLDB4MDMsMHg2MCB9fSwKLSB7MTYsIDB4YmRkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZGQsMHhhMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweGJkZTAsIDAsIHsweDBjLDB4ZTAsMHgwMSwweGZjLDB4MDAsMHhkYywweDkxLDB4MzksMHhjMCwweDNjLDB4NDAsMHgwMywweDM0LDB4MDAsMHhmZiwweDgwIH19LAotIHsxNiwgMHhiZGYwLCAwLCB7MHgzZiwweDAwLDB4MGYsMHhkMCwweDA3LDB4ZmMsMHgwMCwweGNiLDB4MDAsMHgzZCwweDQwLDB4MGMsMHhlMCwweDAzLDB4MzgsMHgyMCB9fSwKLSB7MTYsIDB4YmUwMCwgMCwgezB4Y2YsMHgwMiwweDNkLDB4YzAsMHgwYywweGQwLDB4MDMsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJlMTAsIDAsIHsweDgxLDB4MDQsMHg2YywweDAwLDB4MDEsMHg0MCwweDIyLDB4MDAsMHgyOCwweGEwLDB4MDIsMHhjZSwweDg2LDB4ODMsMHg2NCwweDIyIH19LAotIHsxNiwgMHhiZTIwLCAwLCB7MHhmNCwweDA4LDB4OGMsMHgwZiwweDY0LDB4MDAsMHhiYiwweDEwLDB4MmUsMHg2MCwweDBiLDB4OWMsMHgwMywweGFjLDB4MDEsMHhkYiB9fSwKLSB7MTYsIDB4YmUzMCwgMCwgezB4MDAsMHgzZSwweDYwLDB4MDgsMHg4ZiwweDAyLDB4MjMsMHg0MCwweDhiLDB4MDAsMHgzYSwweGMwLDB4MGQsMHgxMCwweDQzLDB4NjggfX0sCi0gezE2LCAweGJlNDAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDk5LDB4MDAsMHhhMiwweGMwIH19LAotIHsxNiwgMHhiZTUwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHhhNiwweDA3LDB4OTgsMHgwMCwweDAyLDB4YzIsMHg0OCwweDg4LDB4MDIsMHgyYywweDAwLDB4YmEsMHgwMiB9fSwKLSB7MTYsIDB4YmU2MCwgMCwgezB4NmUsMHg2MCwweDBhLDB4OTgsMHgwMiwweGVjLDB4MDAsMHg4YiwweDAxLDB4MmUsMHg2MCwweDA4LDB4OTAsMHgwMiwweDA1LDB4MDAgfX0sCi0gezE2LCAweGJlNzAsIDAsIHsweDhiLDB4MDAsMHgyZSwweGMwLDB4MDgsMHhiMSwweDAyLDB4MjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZTgwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgxMCwweDgxLDB4MDAsMHgyMCwweDQwLDB4MjgsMHgxMCwweDI2LDB4Y2MsMHg4MCwweDgwLDB4MjAsMHhhMCB9fSwKLSB7MTYsIDB4YmU5MCwgMCwgezB4Y2MsMHgxOCwweDE0LDB4NDIsMHgwNCwweDAwLDB4YjIsMHgyMCwweDZjLDB4NDAsMHgwYiwweDAwLDB4MDIsMHg4YywweDAwLDB4ODMgfX0sCi0gezE2LCAweGJlYTAsIDAsIHsweDAwLDB4MjgsMHg0MCwweDI4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MywweDAwLDB4MjgsMHhjMCwweDA5LDB4YjAsMHgwMiwweDQyIH19LAotIHsxNiwgMHhiZWIwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhkOSwweDAwLDB4MjIsMHg4MCB9fSwKLSB7MTYsIDB4YmVjMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4YWMsMHg4MCwweGRhLDB4MjksMHgyYSwweGQyLDB4MjgsMHg4MCwweDAyLDB4MjQsMHgwMCwweGZiLDB4MjAgfX0sCi0gezE2LCAweGJlZDAsIDAsIHsweDNlLDB4MDAsMHgwZiwweDkwLDB4MDIsMHhmYywweDAwLDB4OGYsMHgwMCwweDJlLDB4NDAsMHgwYywweDgwLDB4MGIsMHgyMCwweDAyIH19LAotIHsxNiwgMHhiZWUwLCAwLCB7MHhjZiwweDAwLDB4M2UsMHhjMCwweDBjLDB4YjAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmVmMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHgwMCwweDBmLDB4ZDAsMHg2MywweGZjLDB4NDksMHhmNSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGJmMDAsIDAsIHsweGMwLDB4MGIsMHhjMCwweDAxLDB4ZjQsMHgwMCwweDdmLDB4NDAsMHgzZiwweDQwLDB4MWYsMHhkMCwweDAzLDB4YmMsMHgwMCwweGZmIH19LAotIHsxNiwgMHhiZjEwLCAwLCB7MHgwMCwweDNmLDB4NDAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDAwLDB4ZmYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4YmYyMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmMiwweDQwLDB4ZWMsMHhhMCwweDNmLDB4ZTAgfX0sCi0gezE2LCAweGJmMzAsIDAsIHsweDBkLDB4NDgsMHgwMywweDdkLDB4ODAsMHhmNCwweDgwLDB4MzMsMHg2YywweDBlLDB4YzgsMHgwMywweDMyLDB4MDAsMHhkZCwweDkwIH19LAotIHsxNiwgMHhiZjQwLCAwLCB7MHgzYiwweGEwLDB4MmQsMHhmMCwweDAzLDB4ZmMsMHhjMCwweGZmLDB4MDAsMHgzYiwweGUwLDB4OGUsMHhmMCwweDAzLDB4M2MsMHgwNCB9fSwKLSB7MTYsIDB4YmY1MCwgMCwgezB4ZWMsMHg2MCwweDMxLDB4MDAsMHgwYywweGYwLDB4MDMsMHhiMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJmNjAsIDAsIHsweDgwLDB4MTAsMHhlYywweDAwLDB4ZDksMHhjMSwweDJlLDB4ZTEsMHgwZCwweDg4LDB4MDIsMHgzYywweDgwLDB4ZjgsMHg4MCwweDM2IH19LAotIHsxNiwgMHhiZjcwLCAwLCB7MHg3ZCwweDE4LDB4YTAsMHgwMiwweDI4LDB4YjAsMHhlYSwweDIwLDB4MjIsMHgyMCwweDA4LDB4NzcsMHgwMiwweGZkLDB4NTAsMHhiYiB9fSwKLSB7MTYsIDB4YmY4MCwgMCwgezB4ODAsMHgyMiwweDQwLDB4MGIsMHhmNCwweDQyLDB4M2QsMHg4MCwweDg4LDB4MzEsMHgyMiwweDEyLDB4MDgsMHhmNiwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGJmOTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMCwweDgwLDB4MTEsMHgyZSwweGMxIH19LAotIHsxNiwgMHhiZmEwLCAwLCB7MHgwOCwweDAwLDB4MDIsMHg0ZCwweDgwLDB4YjgsMHgwMCwweDIwLDB4MDAsMHgwYSwweDAyLDB4ODIsMHgwMCwweDAwLDB4OTksMHgyMCB9fSwKLSB7MTYsIDB4YmZiMCwgMCwgezB4MjIsMHhjMCwweDA5LDB4MzAsMHg4MiwweGNjLDB4MDAsMHhiMywweDAwLDB4MjgsMHhjYSwweDBiLDB4MzQsMHg4MiwweDBkLDB4MjAgfX0sCi0gezE2LCAweGJmYzAsIDAsIHsweDgwLDB4MDAsMHhhMCwweDhjLDB4MDgsMHgzNCwweDgyLDB4YTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZmQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHg0MCwweDk5LDB4ODAsMHgyZSwweGMyLDB4MDksMHg5NCwweDAyLDB4MmMsMHgwMCwweGE5LDB4ODAsMHgyNiB9fSwKLSB7MTYsIDB4YmZlMCwgMCwgezB4NjAsMHgwOCwweDM4LDB4NDIsMHgyMiwweDIwLDB4YmEsMHg0MSwweDYyLDB4NDYsMHgzYiwweGIwLDB4MDIsMHhlYywweDAxLDB4YmIgfX0sCi0gezE2LCAweGJmZjAsIDAsIHsweDgwLDB4MjIsMHg0MCwweDBiLDB4YjAsMHg0NiwweDBjLDB4MTgsMHg4OCwweGMwLDB4MjIsMHgyMiwweDA4LDB4YjAsMHgwNiwweGYwIH19LAotIHsxNiwgMHhjMDAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGNjLDB4MDAsMHhjOSwweDgxLDB4M2MsMHhjMSB9fSwKLSB7MTYsIDB4YzAxMCwgMCwgezB4MGMsMHhhOSwweDIzLDB4NmMsMHgwMCwweGIyLDB4ODAsMHgzMiwweDc4LDB4MGEsMHg4YSwweDBiLDB4MjYsMHgwMCwweDk5LDB4MDEgfX0sCi0gezE2LCAweGMwMjAsIDAsIHsweDMwLDB4ZTAsMHgwZCwweGIwLDB4MDMsMHhlYywweDAwLDB4YjksMHgwMCwweDNhLDB4YzAsMHgxZSwweGIwLDB4MDMsMHgyYywweDAwIH19LAotIHsxNiwgMHhjMDMwLCAwLCB7MHhjYiwweDgwLDB4MzIsMHg2MSwweDBjLDB4YjAsMHgxMywweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzA0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MTAsMHhkZCwweDAwLDB4M2YsMHhjMiwweDBmLDB4ZTgsMHgwMywweGFjLDB4MDAsMHhmZSwweDAwLDB4M2QgfX0sCi0gezE2LCAweGMwNTAsIDAsIHsweDQwLDB4MGYsMHhjMCwweDQzLDB4ZjgsMHgxMCwweGVmLDB4MTQsMHhiNywweGUwLDB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGY1IH19LAotIHsxNiwgMHhjMDYwLCAwLCB7MHgwMiwweDNmLDB4NDQsMHg0ZiwweGIwLDB4NGIsMHhmYywweDAyLDB4ZDQsMHgwNCwweDNkLDB4NDAsMHgyZiwweGYwLDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4YzA3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZjksMHgwOCwweDNlLDB4NjAgfX0sCi0gezE2LCAweGMwODAsIDAsIHsweDBkLDB4YTAsMHgwMywweGFjLDB4MDAsMHhlOCwweDUwLDB4MzIsMHgwMCwweDBjLDB4ODQsMHgwMywweGE1LDB4MDAsMHhlOSwweDAwIH19LAotIHsxNiwgMHhjMDkwLCAwLCB7MHgzYSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4MmMsMHgwMCwweGY5LDB4MDAsMHgzYSwweGMwLDB4MGYsMHgzMCwweDAzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4YzBhMCwgMCwgezB4Y2IsMHg0NCwweDNlLDB4ZDQsMHgwZSwweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMwYjAsIDAsIHsweGM4LDB4MDUsMHgyYywweDA4LDB4YjksMHg4MCwweDJlLDB4YzAsMHgwYSwweDMwLDB4NDIsMHgzYywweDAwLDB4ODksMHgwNCwweDc2IH19LAotIHsxNiwgMHhjMGMwLCAwLCB7MHg2MCwweDA4LDB4OTAsMHg2MiwweDIwLDB4MDAsMHg4MiwweDA0LDB4MjIsMHhkMCwweDA4LDB4ZjAsMHg0MywweDdjLDB4MDAsMHhiYiB9fSwKLSB7MTYsIDB4YzBkMCwgMCwgezB4ODIsMHgyMiwweDQwLDB4MGIsMHhmMCwweDQyLDB4M2MsMHgwMCwweDhhLDB4YzAsMHgyZSwweGMxLDB4MDgsMHhmMCwweDAyLDB4ZjIgfX0sCi0gezE2LCAweGMwZTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgxMCwweGIyLDB4ZDAsMHgyYywweGMwIH19LAotIHsxNiwgMHhjMGYwLCAwLCB7MHgyOSwweDE4LDB4MDIsMHg4YywweDA0LDB4YTEsMHgwMCwweDI0LDB4OWMsMHgwOCwweDEwLDB4MDIsMHg4MCwweDAwLDB4YTEsMHgwMSB9fSwKLSB7MTYsIDB4YzEwMCwgMCwgezB4MGMsMHhjMSwweDJiLDB4MzAsMHg1MiwweDhjLDB4MDQsMHhiMywweDAxLDB4MjgsMHg0MCwweDRiLDB4MzAsMHgwMiwweDRjLDB4MDAgfX0sCi0gezE2LCAweGMxMTAsIDAsIHsweDkwLDB4MjAsMHgyYywweDIwLDB4MGEsMHgzMCwweDAyLDB4ZjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMTIwLCAwLCB7MHgyMCwweDQxLDB4MWUsMHgwMCwweGI3LDB4YTIsMHgyNSwweGU4LDB4OGEsMHg2OCwweDAyLDB4MWUsMHgwMCwweDg1LDB4ODAsMHgyNSB9fSwKLSB7MTYsIDB4YzEzMCwgMCwgezB4ODAsMHg4OCwweGU4LDB4MDIsMHgzZSwweDAwLDB4ODUsMHg4MCwweDJmLDB4ZTQsMHgyOCwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjcgfX0sCi0gezE2LCAweGMxNDAsIDAsIHsweDgwLDB4NjEsMHhlMCwweDAzLDB4NzgsMHgwMiwweDVlLDB4ODIsMHhiNywweDgyLDB4MmQsMHhlMCwweDA4LDB4NzgsMHgwMiwweGM4IH19LAotIHsxNiwgMHhjMTUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBkLDB4MDAsMHhmMCwweDEwLDB4M2MsMHg4MCB9fSwKLSB7MTYsIDB4YzE2MCwgMCwgezB4MGQsMHgxMCwweDgzLDB4OGMsMHgwMCwweGUyLDB4NTAsMHgyNiwweDA0LDB4MGMsMHgxMSwweDAzLDB4ODgsMHg0MCwweGViLDB4MDAgfX0sCi0gezE2LCAweGMxNzAsIDAsIHsweDNjLDB4YzQsMHgwZiwweDMwLDB4MDMsMHg4YywweDAwLDB4ZjMsMHgwOCwweDM4LDB4NDAsMHgwNywweDMwLDB4MDMsMHg2ZSwweDQwIH19LAotIHsxNiwgMHhjMTgwLCAwLCB7MHhkMCwweDA4LDB4M2MsMHg4OCwweDBlLDB4MzAsMHg0MywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzE5MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmYiwweDM0LDB4M2MsMHhjOSwweDRlLDB4YjAsMHgyMywweGVkLDB4MjAsMHhmYiwweDA0LDB4M2YgfX0sCi0gezE2LCAweGMxYTAsIDAsIHsweGM4LDB4OGYsMHg3MCwweDUzLDB4NGMsMHgwMCwweGViLDB4MTAsMHgzMSwweGM1LDB4MGUsMHhmNCwweDAzLDB4NmQsMHgwMCwweGYzIH19LAotIHsxNiwgMHhjMWIwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweGY0LDB4MGIsMHhiYywweDAwLDB4Y2QsMHgwMCwweDNmLDB4YzAsMHgwZiwweGY0LDB4ODMsMHhkMCB9fSwKLSB7MTYsIDB4YzFjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhjZSwweDA0LDB4YzksMHgwNCwweGIwLDB4YzEgfX0sCi0gezE2LCAweGMxZDAsIDAsIHsweDBmLDB4OTgsMHgxMywweDZjLDB4OTAsMHhjYiwweDAyLDB4M2UsMHhjMCwweDRmLDB4YjAsMHg2MywweGU0LDB4MDAsMHhmMSwweDgwIH19LAotIHsxNiwgMHhjMWUwLCAwLCB7MHgxMiwweGMwLDB4MGMsMHhiNSwweDAzLDB4ZWMsMHhjMCwweGNmLDB4ODMsMHgzMiwweDQwLDB4MGYsMHhiMywweDIzLDB4MmQsMHhhNCB9fSwKLSB7MTYsIDB4YzFmMCwgMCwgezB4ZmIsMHgwMCwweDNlLDB4MDAsMHgwZiwweGI0LDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMyMDAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzAsMHgyZCwweDYwLDB4MDIsMHgxYywweDAwLDB4ZDcsMHgwMCwweDM5IH19LAotIHsxNiwgMHhjMjEwLCAwLCB7MHhjMCwweDBiLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhiNSwweDAwLDB4MjEsMHhjMCwweDJhLDB4NzAsMHgxMiwweGNjLDB4ODAsMHg4NyB9fSwKLSB7MTYsIDB4YzIyMCwgMCwgezB4MDAsMHgzNSwweGMwLDB4MGIsMHg3MiwweDUyLDB4MWMsMHgwMCwweGI3LDB4MDAsMHgyZCwweDQxLDB4MGIsMHgzMiwweDAyLDB4MTIgfX0sCi0gezE2LCAweGMyMzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4YmUsMHgwMCwweDgxLDB4YzAsMHgyMywweDIwIH19LAotIHsxNiwgMHhjMjQwLCAwLCB7MHgwYiwweGQ4LDB4MDIsMHg1ZSwweDAwLDB4MDYsMHhjMCwweDJkLDB4YTAsMHgwYiwweDdjLDB4MTIsMHhkZSwweDA4LDB4YmYsMHg4MCB9fSwKLSB7MTYsIDB4YzI1MCwgMCwgezB4YTEsMHhlMiwweDJhLDB4N2EsMHgwMiwweGRlLDB4MDAsMHg5MywweDgwLDB4MjUsMHg2MCwweDBiLDB4NzgsMHgxZSwweDVlLDB4NTAgfX0sCi0gezE2LCAweGMyNjAsIDAsIHsweGI3LDB4ODAsMHgyZCwweGEwLDB4MGIsMHg3OCwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMjcwLCAwLCB7MHg0OCwweDE0LDB4Y2UsMHgwMCwweDgzLDB4NjAsMHgyMCwweGMwLDB4MDksMHgzMSwweDAyLDB4MmMsMHgwMCwweDkzLDB4MDAsMHgyOCB9fSwKLSB7MTYsIDB4YzI4MCwgMCwgezB4YzAsMHgxYiwweGIwLDB4MDYsMHhjYywweDgwLDB4YjMsMHg0OCwweDIwLDB4ZjAsMHgwYSwweDMwLDB4MDIsMHhlYywweDAwLDB4OTMgfX0sCi0gezE2LCAweGMyOTAsIDAsIHsweDgwLDB4MjQsMHhjMCwweDBiLDB4YjAsMHgwMiwweDRjLDB4MTAsMHhiMywweGM4LDB4MmMsMHhkMiwweDhiLDB4MzAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhjMmEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGJiLDB4MDAsMHhjNiwweGM0LDB4MzEsMHg4MSB9fSwKLSB7MTYsIDB4YzJiMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4NjgsMHgwMCwweGNlLDB4ODAsMHgzZiwweGEyLDB4MGIsMHhlOCwweDAzLDB4ZjksMHgwMCwweGZlLDB4NDAgfX0sCi0gezE2LCAweGMyYzAsIDAsIHsweDMxLDB4ODAsMHg2ZSwweGEwLDB4MDcsMHhlOCwweDAwLDB4ZGEsMHgwMCwweDI2LDB4ODEsMHgwZiwweGEwLDB4MDIsMHg2OCwweDAxIH19LAotIHsxNiwgMHhjMmQwLCAwLCB7MHhmNiwweGUwLDB4M2QsMHg5MiwweDBmLDB4YTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzJlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4YzIsMHhmOCwweDA0LDB4M2UsMHgxNCwweDBmLDB4ODAsMHgxMywweGUwLDB4MTAsMHhmOCwweDAxLDB4M2UgfX0sCi0gezE2LCAweGMyZjAsIDAsIHsweDEwLDB4MGYsMHg4MCwweDQzLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgzZSwweDAwLDB4NDcsMHg4MCwweDAzLDB4ZTAsMHgwMiwweGU4IH19LAotIHsxNiwgMHhjMzAwLCAwLCB7MHgxMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDcsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAsMHgwZiwweDgwLDB4MGIsMHhkMiB9fSwKLSB7MTYsIDB4YzMxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMSwweDMyLDB4NDAgfX0sCi0gezE2LCAweGMzMjAsIDAsIHsweDhjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MiwweDBmLDB4OTAsMHgwMywweGE0LDB4MDAsMHhjOSwweDAwIH19LAotIHsxNiwgMHhjMzMwLCAwLCB7MHgzZSwweDQyLDB4MGQsMHg5MCwweDAzLDB4NjQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDBiLDB4NjQsMHgwMCB9fSwKLSB7MTYsIDB4YzM0MCwgMCwgezB4ZjksMHg5MCwweDMyLDB4NDEsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMzNTAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHhjOCwweGEyLDB4NjAsMHgwYSwweDkyLDB4MDIsMHhlNCwweDAwLDB4ODksMHg0MCwweDJlIH19LAotIHsxNiwgMHhjMzYwLCAwLCB7MHg1OCwweDBiLDB4OTAsMHgwMiwweDA0LDB4MDAsMHhkOSwweDAwLDB4MmUsMHg0MiwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDQsMHg4OSB9fSwKLSB7MTYsIDB4YzM3MCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDA2LDB4MjQsMHgwNCwweGI5LDB4MDgsMHgyYSwweDQwLDB4NDgsMHg5MCwweDEyLDB4MjAgfX0sCi0gezE2LCAweGMzODAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI5LDB4MTAsMHgyMiwweDQ0IH19LAotIHsxNiwgMHhjMzkwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDUsMHg4YiwweDkwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCB9fSwKLSB7MTYsIDB4YzNhMCwgMCwgezB4MmEsMHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MDAsMHg5OSwweDgwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgyNiwweDI0LDB4MDAgfX0sCi0gezE2LCAweGMzYjAsIDAsIHsweGI5LDB4MDEsMHgyMiwweDcwLDB4MDksMHgxMCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjM2MwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHgwOCwweGIxLDB4MjAsMHgyMCwweDQwLDB4MGEsMHgxMCwweDAyLDB4YzQsMHg4MCwweDgzLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4YzNkMCwgMCwgezB4NTAsMHg0YiwweDEwLDB4MDIsMHgyNCwweDAwLDB4OTEsMHgwMCwweDJlLDB4NDAsMHgwOCwweDEyLDB4MDIsMHhjNCwweDgxLDB4ODEgfX0sCi0gezE2LCAweGMzZTAsIDAsIHsweGEyLDB4NmMsMHg0MCwweDBiLDB4MTIsMHgwMiwweDA0LDB4ODAsMHhiOSwweDIwLDB4MmEsMHg0OCwweDI5LDB4MTIsMHgwMiwweDAyIH19LAotIHsxNiwgMHhjM2YwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYxLDB4NDAsMHhmOCwweDAwLDB4MzIsMHg4MCB9fSwKLSB7MTYsIDB4YzQwMCwgMCwgezB4MDgsMHg4MCwweDAzLDB4ZTEsMHg0MiwweGM4LDB4MDAsMHgzMiwweDAwLDB4MWYsMHg4NSwweDAzLDB4YTEsMHg0MCwweGM4LDB4NTAgfX0sCi0gezE2LCAweGM0MTAsIDAsIHsweDNhLDB4MDAsMHg4ZCwweDg1LDB4MDMsMHg2MSwweDQwLDB4ZDgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDA1LDB4MDMsMHgyMSwweDQwIH19LAotIHsxNiwgMHhjNDIwLCAwLCB7MHhmOCwweDUwLDB4MzIsMHgxNCwweDBkLDB4ODUsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzQzMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4MDQsMHhmZCwweDEwLDB4M2YsMHg0MCwweDBmLDB4NTAsMHgwMywweGM0LDB4NDAsMHhmZCwweDAwLDB4M2YgfX0sCi0gezE2LCAweGM0NDAsIDAsIHsweDUxLDB4MGYsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGZmLDB4MDEsMHgzZCwweDQwLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGZkIH19LAotIHsxNiwgMHhjNDUwLCAwLCB7MHgxMCwweDNmLDB4NGEsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZmQsMHgxMCwweDNmLDB4NDQsMHgwZSwweDkxLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4YzQ2MCwgMCwgezB4MDIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhjNSwweDAwLDB4Y2QsMHgwMCwweDMxLDB4NDAgfX0sCi0gezE2LCAweGM0NzAsIDAsIHsweDBkLDB4ZDAsMHg0MywweGU0LDB4MDAsMHhjZCwweDAwLDB4MzMsMHg0MCwweDRmLDB4MTEsMHgwMiwweGU0LDB4MDQsMHhjMSwweDAwIH19LAotIHsxNiwgMHhjNDgwLCAwLCB7MHgzZCwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGVkLDB4YTQsMHgzMiwweDUwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4YzQ5MCwgMCwgezB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM0YTAsIDAsIHsweDM4LDB4MTAsMHhlMiwweDA4LDB4ZDgsMHgwMCwweDMyLDB4MDEsMHgwMCwweDgwLDB4MTIsMHhjMCwweDAwLDB4NDgsMHgwMCwweDM2IH19LAotIHsxNiwgMHhjNGIwLCAwLCB7MHg4MCwweDBiLDB4OGEsMHgwMiwweGUwLDB4MDAsMHhhOCwweDAwLDB4MmUsMHgwMCwweDBmLDB4ODAsMHgwMiwweGUwLDB4MDAsMHg4OCB9fSwKLSB7MTYsIDB4YzRjMCwgMCwgezB4NTAsMHgzNCwweDI4LDB4MGIsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDAwLDB4MGIsMHg4MCwweDAyLDB4Y2UgfX0sCi0gezE2LCAweGM0ZDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHg4MCwweDgxLDB4MDAsMHgyNiwweDQwIH19LAotIHsxNiwgMHhjNGUwLCAwLCB7MHgwOSwweDE4LDB4MDIsMHhjNCwweDA4LDB4MjEsMHgwMCwweDI4LDB4NDAsMHg4YiwweDEwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHgwMSB9fSwKLSB7MTYsIDB4YzRmMCwgMCwgezB4MmUsMHg0MCwweDE4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHhhMSwweDAxLDB4MjAsMHg0OCwweDFiLDB4MTAsMHgwMiwweGM0LDB4MDAgfX0sCi0gezE2LCAweGM1MDAsIDAsIHsweGIxLDB4MDAsMHg2YywweDQwLDB4MGIsMHgxMCwweDEyLDB4YzIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNTEwLCAwLCB7MHgxOCwweDExLDB4YTQsMHgwMCwweDk5LDB4ODAsMHhhMiwweDQyLDB4NDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGE5LDB4MmEsMHgyNiB9fSwKLSB7MTYsIDB4YzUyMCwgMCwgezB4NDQsMHgwYiwweDkwLDB4ODIsMHhjNCwweDgxLDB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4NDIsMHhjNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGM1MzAsIDAsIHsweDAwLDB4MjYsMHg0MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAxLDB4MmUsMHg0MSwweDBiLDB4OTAsMHgwMiwweGM2IH19LAotIHsxNiwgMHhjNTQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGM1LDB4MjAsMHhjOSwweDg0LDB4MzAsMHg3MCB9fSwKLSB7MTYsIDB4YzU1MCwgMCwgezB4MGQsMHg5MCwweDEzLDB4ZTQsMHgwMiwweGU5LDB4MDAsMHgzMiwweDcwLDB4MGYsMHg5NCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4NDAgfX0sCi0gezE2LCAweGM1NjAsIDAsIHsweDNjLDB4NDgsMHgwYywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTEsMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MDEsMHhlNCwweDAwIH19LAotIHsxNiwgMHhjNTcwLCAwLCB7MHhmOSwweDkwLDB4M2UsMHg2MCwweDBmLDB4OTAsMHgyNiwweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzU4MCwgMCwgezB4MjgsMHgwMSwweGE1LDB4MDAsMHhmMSwweDA0LDB4M2EsMHg0NCwweDhmLDB4OTAsMHgwMywweGU0LDB4MTAsMHhjOSwweDA0LDB4M2UgfX0sCi0gezE2LCAweGM1OTAsIDAsIHsweDYwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4MjAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgxMCwweGY5IH19LAotIHsxNiwgMHhjNWEwLCAwLCB7MHg5MCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHg4MCwweDNlLDB4NjQsMHgwZiwweDkwLDB4MDcsMHhjYSB9fSwKLSB7MTYsIDB4YzViMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4YzgsMHgwNCwweDNhLDB4MDAgfX0sCi0gezE2LCAweGM1YzAsIDAsIHsweDFlLDB4ODAsMHgwMywweDgwLDB4MDMsMHhjOCwweDQwLDB4MmEsMHgwNCwweDFmLDB4ODAsMHgwMywweDIwLDB4MDAsMHg4OCwweDAwIH19LAotIHsxNiwgMHhjNWQwLCAwLCB7MHgzMiwweDMwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwMCB9fSwKLSB7MTYsIDB4YzVlMCwgMCwgezB4YzgsMHg4MCwweDNlLDB4MjAsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM1ZjAsIDAsIHsweDI4LDB4MDUsMHgzOCwweDAwLDB4YWUsMHhkMCwweDM3LDB4ODAsMHgwOCwweGVjLDB4NDYsMHgzOCwweDAwLDB4ZDYsMHgwNCwweDIzIH19LAotIHsxNiwgMHhjNjAwLCAwLCB7MHhhMCwweDBiLDB4YTAsMHg0MSwweDc4LDB4MDQsMHhmYSwweDAwLDB4MzcsMHg4MCwweDBkLDB4YTAsMHgwMiwweGE4LDB4MTAsMHhlZSB9fSwKLSB7MTYsIDB4YzYxMCwgMCwgezB4MjEsMHgyZSwweDgwLDB4MDgsMHhhMCwweDAyLDB4ZTgsMHgwOCwweDhlLDB4ODAsMHgyZiwweGEwLDB4OGIsMHhhMCwweDAyLDB4Y2EgfX0sCi0gezE2LCAweGM2MjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAxLDB4NGMsMHgwMiwweDgzLDB4YzAsMHhhOCwweGU4IH19LAotIHsxNiwgMHhjNjMwLCAwLCB7MHg0YSwweDM2LDB4MDIsMHg4YywweDAwLDB4MTMsMHhhMCwweDI4LDB4YzIsMHgwYiwweDMwLDB4MDYsMHgwYywweDAwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4YzY0MCwgMCwgezB4MjQsMHg4NCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MDAsMHhiMywweDIwLDB4MjgsMHhjMCwweDA5LDB4MzAsMHgwMiwweGNjLDB4MDAgfX0sCi0gezE2LCAweGM2NTAsIDAsIHsweDgzLDB4ODAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2EsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNjYwLCAwLCB7MHhhMCwweDAxLDB4M2MsMHg0NCwweGFmLDB4NDAsMHgyNSwweGMyLDB4NDgsMHhmOCwweDgyLDB4MWMsMHhjOCwweDlmLDB4MDgsMHgyMSB9fSwKLSB7MTYsIDB4YzY3MCwgMCwgezB4YzAsMHg4YiwweGY4LDB4MDIsMHg1YywweDAwLDB4YmYsMHhiMCwweDI3LDB4ODAsMHgwOSwweDNhLDB4MDIsMHg5YywweDAwLDB4YTUgfX0sCi0gezE2LCAweGM2ODAsIDAsIHsweDAyLDB4MmQsMHhlOCwweDA5LDB4NzAsMHgwMiwweGNlLDB4ODAsMHg4NSwweDA4LDB4MmQsMHhjMiwweDBiLDB4NzMsMHgwMiwweGU4IH19LAotIHsxNiwgMHhjNjkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhjNywweDgyLDB4YTksMHhlMCB9fSwKLSB7MTYsIDB4YzZhMCwgMCwgezB4MGEsMHg3OCwweDAyLDB4OWUsMHg0MCwweDk3LDB4ODQsMHgzOSwweGEwLDB4MGIsMHg3YSwweDgzLDB4M2YsMHg4MCwweGQ3LDB4OTEgfX0sCi0gezE2LCAweGM2YjAsIDAsIHsweDM1LDB4YTAsMHgwZCwweDdhLDB4MDksMHgxZSwweDQ0LDB4ZjcsMHg4MCwweDNkLDB4ZTgsMHgyZCwweDdhLDB4MDMsMHhkZSwweDgyIH19LAotIHsxNiwgMHhjNmMwLCAwLCB7MHhjNiwweDgwLDB4M2QsMHgyMCwweDRiLDB4N2IsMHgyMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzZkMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhkMywweDAwLDB4M2UsMHhjMSwweDBmLDB4MzAsMHgwMywweGVkLDB4ODAsMHhlMywweDAwLDB4M2UgfX0sCi0gezE2LCAweGM2ZTAsIDAsIHsweDgwLDB4MGYsMHhiNiwweDIxLDB4ZWMsMHgwOCwweGRiLDB4MjEsMHgzZSwweDgwLDB4MGYsMHhiNSwweDAzLDB4NmMsMHg0MCwweGY5IH19LAotIHsxNiwgMHhjNmYwLCAwLCB7MHgwMCwweDNlLDB4ZGMsMHgwZSwweGIyLDB4MDMsMHhlZCwweDQwLDB4ZjksMHgwMiwweDNlLDB4ODAsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4YzcwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4Y2YsMHg4MCwweDNkLDB4ZTAgfX0sCi0gezE2LCAweGM3MTAsIDAsIHsweDBmLDB4YzgsMHg0MywweGZlLDB4MDAsMHhmZSwweDg0LDB4M2YsMHhlMCwweDBkLDB4ZjgsMHhjMywweGZmLDB4MTAsMHhhZiwweDkwIH19LAotIHsxNiwgMHhjNzIwLCAwLCB7MHgzNSwweGEwLDB4MGMsMHhmYywweDAzLDB4M2UsMHgxNCwweGVjLDB4ODQsMHgzZiwweGYwLDB4MGUsMHhmYywweGMzLDB4ZmYsMHgwOCB9fSwKLSB7MTYsIDB4YzczMCwgMCwgezB4NGYsMHg4MCwweDMzLDB4ZTQsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM3NDAsIDAsIHsweGE4LDB4MTEsMHg5YywweDAwLDB4ZDcsMHhhMiwweDJkLDB4YzQsMHgwYywweDQxLDB4YzIsMHhkYywweDAwLDB4NzQsMHgwMCwweDI1IH19LAotIHsxNiwgMHhjNzUwLCAwLCB7MHg4MCwweDBmLDB4NzIsMHg0MiwweGRjLDB4OTAsMHhkNywweDM4LDB4MmQsMHg5OCwweDBhLDB4NzAsMHgwMiwweDFjLDB4MDQsMHg4NiB9fSwKLSB7MTYsIDB4Yzc2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHg3MCwweDAyLDB4Y2MsMHgwMCwweDg2LDB4MDgsMHgzNywweGM2LDB4MjgsMHg3MCwweDAyLDB4MmEgfX0sCi0gezE2LCAweGM3NzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweDg3LDB4NjAsMHgyZCwweGMyIH19LAotIHsxNiwgMHhjNzgwLCAwLCB7MHgwYSwweDUwLDB4MDIsMHhkYywweDAwLDB4YjYsMHgxMCwweDI1LDB4YzIsMHgwOSwweDcwLDB4ODYsMHhkYywweDMwLDB4OTcsMHgwMCB9fSwKLSB7MTYsIDB4Yzc5MCwgMCwgezB4MjUsMHg4MCwweDA4LDB4MzAsMHgwMiwweDVjLDB4MDAsMHg4NywweDA4LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweGNjLDB4NDAgfX0sCi0gezE2LCAweGM3YTAsIDAsIHsweDg2LDB4MDAsMHgyMSwweDAwLDB4MDksMHg3MCwweDBhLDB4MDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjN2IwLCAwLCB7MHgyMCwweDE0LDB4ZWQsMHg4MCwweDkzLDB4MDAsMHgwYywweGUxLDB4MjgsMHgxOCwweDAyLDB4Y2MsMHgwOCwweGEwLDB4MDAsMHgyNCB9fSwKLSB7MTYsIDB4YzdjMCwgMCwgezB4MTIsMHgxYSwweDM0LDB4MDIsMHhjZiwweDA0LDB4OTMsMHg0MCwweDJjLDB4ODAsMHgwYSwweGIwLDB4MjIsMHg0YywweDAyLDB4ODEgfX0sCi0gezE2LCAweGM3ZDAsIDAsIHsweDgwLDB4MjgsMHhlMCwweDI4LDB4MzAsMHgwMiwweGNjLDB4MDAsMHg4OCwweDgyLDB4MjQsMHgyMCwweDA4LDB4YjAsMHgwMiwweDA4IH19LAotIHsxNiwgMHhjN2UwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJmLDB4MjAsMHhjOSwweGUwLDB4MmMsMHhmMSB9fSwKLSB7MTYsIDB4YzdmMCwgMCwgezB4MGUsMHhiZCwweDAzLDB4ZmMsMHgwMCwweGI5LDB4NDAsMHgzNiwweDQwLDB4MDksMHhmNSwweDAyLDB4ZmQsMHg0MCwweGZmLDB4ODAgfX0sCi0gezE2LCAweGM4MDAsIDAsIHsweDM2LDB4YTIsMHgwOCwweGYwLDB4MGIsMHg3YywweDAwLDB4ZWIsMHg4MCwweDJmLDB4ZTAsMHgwYSwweGYwLDB4NDMsMHhmYywweDAyIH19LAotIHsxNiwgMHhjODEwLCAwLCB7MHg4YiwweGQwLDB4MzIsMHhmMCwweDBkLDB4ZjAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzgyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UsMHhjOCwweDBmLDB4OTQsMHgxMywweGVjLDB4MDAsMHhmOSwweDQwLDB4MzYgfX0sCi0gezE2LCAweGM4MzAsIDAsIHsweDQwLDB4MWYsMHhiMCwweDAzLDB4ZWMsMHgxMCwweGZiLDB4MDEsMHgzZSwweGQwLDB4MGYsMHhiMCwweDAzLDB4YWMsMHgwMCwweGY5IH19LAotIHsxNiwgMHhjODQwLCAwLCB7MHgwMCwweDNlLDB4YzQsMHgwZiwweGIwLDB4MDEsMHhlYywweDAwLDB4ZjksMHgwNCwweDNlLDB4NDgsMHgwZiwweGIwLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4Yzg1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZGYsMHgwMCwweDNmLDB4YzAgfX0sCi0gezE2LCAweGM4NjAsIDAsIHsweDBjLDB4ZTAsMHgwNywweGZjLDB4MDAsMHhmYywweDBhLDB4MjcsMHgwMCwweDRmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDA4IH19LAotIHsxNiwgMHhjODcwLCAwLCB7MHgzMywweDgwLDB4MGMsMHhmMCwweDAwLDB4MmMsMHgwMCwweDVmLDB4MDAsMHgzMywweGMwLDB4MGMsMHhmMCwweDAxLDB4ZmMsMHgwMCB9fSwKLSB7MTYsIDB4Yzg4MCwgMCwgezB4ZmUsMHgwMCwweDIzLDB4NDAsMHgwZiwweGIwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4OTAsIDAsIHsweDgxLDB4MDQsMHg2YywweDAwLDB4OGIsMHg4NiwweDJlLDB4ZTAsMHg0OCwweDhmLDB4MDIsMHhlYywweDA4LDB4YjgsMHhhMCwweDM2IH19LAotIHsxNiwgMHhjOGEwLCAwLCB7MHgzMCwweDRiLDB4YjAsMHgwMywweGFjLDB4MGMsMHg5YiwweDAyLDB4M2MsMHhhMCwweDBjLDB4YjAsMHg0MywweDZjLDB4MDAsMHhiMSB9fSwKLSB7MTYsIDB4YzhiMCwgMCwgezB4MDAsMHgyOCwweGMwLDB4MGQsMHhiMCwweDEyLDB4ZWMsMHgxMCwweGI5LDB4ODAsMHhhMiwweDYxLDB4MGIsMHhiMCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGM4YzAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDliLDB4ODgsMHgyZSwweGUwIH19LAotIHsxNiwgMHhjOGQwLCAwLCB7MHgwOCwweGEwLDB4MDIsMHhlYywweDAxLDB4YmIsMHg4MCwweDI2LDB4NjIsMHgwYiwweGIwLDB4MDIsMHhlYywweDAwLDB4YjMsMHgwMSB9fSwKLSB7MTYsIDB4YzhlMCwgMCwgezB4MmEsMHgyMSwweDA4LDB4YjAsMHgxMiwweDJjLDB4MDAsMHhiOCwweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgxMiwweGVjLDB4MTQgfX0sCi0gezE2LCAweGM4ZjAsIDAsIHsweGI5LDB4ODQsMHgyMiwweGEyLDB4MGIsMHhiMCwweDAyLDB4YTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjOTAwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwNCwweDkzLDB4MDAsMHgyYywweGUwLDB4MDgsMHgwMCwweDAyLDB4Y2MsMHgwOSwweDkxLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YzkxMCwgMCwgezB4NDAsMHgwYiwweDMwLDB4MDYsMHg0YywweDA0LDB4MTMsMHgwMCwweDI2LDB4MDAsMHgwOCwweDMwLDB4MDIsMHhjYywweDA0LDB4YjIgfX0sCi0gezE2LCAweGM5MjAsIDAsIHsweDAwLDB4MmEsMHhjMCwweDAxLDB4MzAsMHgwMCwweGNkLDB4MDAsMHhiMCwweDAwLDB4MjAsMHg4MCwweDBiLDB4MzAsMHgwYSwweDAyIH19LAotIHsxNiwgMHhjOTMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhkYiwweDI0LDB4NmUsMHhjMCB9fSwKLSB7MTYsIDB4Yzk0MCwgMCwgezB4MmMsMHhhMCwweDAyLDB4ZmMsMHgwMCwweGJhLDB4MDQsMHgyNiwweDQwLDB4NGYsMHhmMCwweDU3LDB4ZmMsMHgwMCwweDNmLDB4MDEgfX0sCi0gezE2LCAweGM5NTAsIDAsIHsweDNhLDB4MDAsMHgyYywweGYwLDB4MDEsMHgzYywweDAwLDB4ZGIsMHgwMCwweDMzLDB4YzAsMHg4NCwweGYwLDB4MDMsMHhmZCwweDA4IH19LAotIHsxNiwgMHhjOTYwLCAwLCB7MHhmYSwweDAwLDB4MzIsMHgwMCwweDBmLDB4ZjAsMHgwMywweDAwLDB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yzk3MCwgMCwgezB4YTAsMHgxOSwweGRjLDB4MDAsMHhlYSwweDQwLDB4M2YsMHgwMCwweDA3LDB4YzAsMHgwMywweGZjLDB4MDQsMHhmYywweDAwLDB4M2YgfX0sCi0gezE2LCAweGM5ODAsIDAsIHsweDQwLDB4MGYsMHhmMCwweDAzLDB4OWMsMHgwMCwweGZmLDB4MDAsMHgzZiwweDAwLDB4MGUsMHhmMCwweDAzLDB4N2MsMHgwMCwweGZkIH19LAotIHsxNiwgMHhjOTkwLCAwLCB7MHgwMCwweDNmLDB4YzEsMHgwZiwweGYwLDB4MDMsMHhmYywweDg0LDB4ZjQsMHgwMCwweDNmLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4YzlhMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmMCwweDgwLDB4ZmYsMHgwMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGM5YjAsIDAsIHsweDBmLDB4YzIsMHgwMywweDNlLDB4MDAsMHhkZiwweGMwLDB4M2UsMHhjMCwweDRkLDB4ZGIsMHgwMiwweGIwLDB4YzAsMHhkYywweDMwIH19LAotIHsxNiwgMHhjOWMwLCAwLCB7MHgzZiwweGUwLDB4MGYsMHhkYiwweDIzLDB4ZjYsMHgyMCwweGZmLDB4MjYsMHgzMywweGUwLDB4MGYsMHg1MiwweDAzLDB4NWUsMHgwMCB9fSwKLSB7MTYsIDB4YzlkMCwgMCwgezB4ZmYsMHg4MCwweDMzLDB4YzAsMHg0YywweDQ5LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM5ZTAsIDAsIHsweDgwLDB4MTAsMHhlMSwweGUwLDB4YjcsMHgwOCwweDIzLDB4ZjAsMHgwYiwweGFkLDB4MGEsMHgyZSwweDAwLDB4OWEsMHgwNCwweDJlIH19LAotIHsxNiwgMHhjOWYwLCAwLCB7MHhiMCwweDA5LDB4OGYsMHgwMywweGEwLDB4NDAsMHhiOSwweDMwLDB4MmUsMHhhMCwweDBiLDB4OWYsMHgwMywweGE3LDB4MDAsMHhiYiB9fSwKLSB7MTYsIDB4Y2EwMCwgMCwgezB4ODAsMHgyNiwweGUwLDB4MGIsMHhkZCwweDAyLDB4MmUsMHgwMCwweGJiLDB4ODAsMHgyMiwweGY0LDB4MGEsMHg5MiwweDAyLDB4YTAgfX0sCi0gezE2LCAweGNhMTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzgsMHg4MCwweGIzLDB4MTAsMHgyNCwweGMwIH19LAotIHsxNiwgMHhjYTIwLCAwLCB7MHgwYiwweDgwLDB4MDIsMHhhYywweDAwLDB4YTMsMHgyNCwweDJjLDB4ZDAsMHgwOCwweDEwLDB4MDYsMHhjMCwweDgwLDB4YjIsMHgwMSB9fSwKLSB7MTYsIDB4Y2EzMCwgMCwgezB4MmMsMHhlYSwweDRiLDB4MDAsMHgxMiwweGMyLDB4MDQsMHhiMywweDEwLDB4MDgsMHhjMCwweDBhLDB4OTAsMHgwMiwweDBjLDB4MDAgfX0sCi0gezE2LCAweGNhNDAsIDAsIHsweDkzLDB4MDQsMHgyNCwweGMwLDB4MDksMHg4MiwweDAyLDB4YTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYTUwLCAwLCB7MHhjMCwweDE1LDB4YTUsMHgwMCwweGJiLDB4MDAsMHgyMiwweGMwLDB4MGIsMHg4MCwweDAyLDB4YWMsMHgwOCwweGJiLDB4MTgsMHgyZSB9fSwKLSB7MTYsIDB4Y2E2MCwgMCwgezB4ZTAsMHgxOCwweDg4LDB4MDIsMHhlYywweDAxLDB4YmEsMHgwMCwweDJlLDB4ODAsMHgwYiwweDk4LDB4ODYsMHhlMiwweDAwLDB4YmIgfX0sCi0gezE2LCAweGNhNzAsIDAsIHsweDAwLDB4MjIsMHhjNCwweDBiLDB4OTAsMHgwMiwweDZjLDB4MDAsMHhiYiwweDAwLDB4YTYsMHhjMCwweDBiLDB4OTAsMHgwMCwweGIwIH19LAotIHsxNiwgMHhjYTgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMSwweGU3LDB4MDAsMHhmYiwweDAwLDB4YjIsMHhjMCB9fSwKLSB7MTYsIDB4Y2E5MCwgMCwgezB4MGYsMHhhOCwweDAzLDB4YWMsMHgwMiwweGViLDB4MDAsMHgzZSwweDYwLDB4MGQsMHg5ZSwweDAzLDB4ZWMsMHgwMCwweGQ4LDB4NDAgfX0sCi0gezE2LCAweGNhYTAsIDAsIHsweDNlLDB4NDAsMHgwZiwweDg4LDB4NDMsMHhlMiwweDAwLDB4ZmIsMHgyMCwweDMyLDB4YzAsMHgwZiwweDEwLDB4MGIsMHg2ZiwweDkwIH19LAotIHsxNiwgMHhjYWIwLCAwLCB7MHg1YiwweDgyLDB4MzYsMHhjMCwweDJkLDB4MDgsMHgwMSwweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2FjMCwgMCwgezB4ZTAsMHgwMSwweGI3LDB4MDgsMHhmNywweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjksMHgwMywweDdjLDB4MDgsMHhjZiwweDgyLDB4M2MgfX0sCi0gezE2LCAweGNhZDAsIDAsIHsweDAwLDB4YWYsMHhkMCwweDIxLDB4YmMsMHgwOCwweGZkLDB4MTAsMHgzZiwweDgwLDB4OGYsMHhjMCwweDAzLDB4YTQsMHgwMCwweGY3IH19LAotIHsxNiwgMHhjYWUwLCAwLCB7MHgwMSwweGJmLDB4YzAsMHgwNywweGQwLDB4MDMsMHhiZCwweDMwLDB4ZmYsMHhhNCwweDM4LDB4YzAsMHgwZSwweGRhLDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4Y2FmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhOCwweDAwLDB4ZmIsMHgwMCwweGIyLDB4YzEgfX0sCi0gezE2LCAweGNiMDAsIDAsIHsweDBlLDB4ODEsMHgwMywweGVjLDB4NDAsMHhmYiwweDQ0LDB4M2EsMHhjMSwweDBlLDB4OTUsMHgwMywweGUwLDB4MDAsMHhjYiwweDQxIH19LAotIHsxNiwgMHhjYjEwLCAwLCB7MHgzMiwweDRkLDB4MGYsMHg4MSwweDAzLDB4ZTAsMHgyMCwweGM5LDB4MDAsMHg3MiwweGU4LDB4NDQsMHg5MSwweDAzLDB4NmQsMHgwMCB9fSwKLSB7MTYsIDB4Y2IyMCwgMCwgezB4Y2IsMHgwMiwweDNlLDB4YzAsMHgwYywweDgwLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNiMzAsIDAsIHsweGM4LDB4MDUsMHgyNCwweDAwLDB4YmYsMHgwMCwweDMzLDB4YzQsMHgwOCwweDFkLDB4MDMsMHg4YywweDAwLDB4YmIsMHg5OCwweDM2IH19LAotIHsxNiwgMHhjYjQwLCAwLCB7MHg0OCwweDRkLDB4OTgsMHgyMiwweGVkLDB4NDAsMHhkYiwweDAwLDB4MzYsMHhiMCwweDBiLDB4OTgsMHgwMiwweGUzLDB4MDAsMHhkYiB9fSwKLSB7MTYsIDB4Y2I1MCwgMCwgezB4MDAsMHgzMiwweGUwLDB4ODgsMHhkOCwweDAyLDB4MmMsMHgwMiwweGMzLDB4ODAsMHgyZiwweGMwLDB4MDgsMHg5MCwweDAzLDB4NzIgfX0sCi0gezE2LCAweGNiNjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDAxLDB4NDQsMHgwMCwweGIzLDB4MDAsMHgyMCwweGYwIH19LAotIHsxNiwgMHhjYjcwLCAwLCB7MHgxOCwweDA4LDB4MDIsMHg0ZiwweDg0LDB4YjEsMHhjMCwweDI0LDB4YzAsMHg4OSwweDA2LDB4MDIsMHhjNCwweDAwLDB4OTEsMHgwMCB9fSwKLSB7MTYsIDB4Y2I4MCwgMCwgezB4MjAsMHhmMCwweDFiLDB4MTgsMHg4MiwweGM2LDB4MDAsMHg5MywweDAwLDB4MmMsMHhkMSwweDA4LDB4MWUsMHgwMiwweDBlLDB4NDQgfX0sCi0gezE2LCAweGNiOTAsIDAsIHsweDkzLDB4OTQsMHgyYywweGMwLDB4MDgsMHgyMCwweDAyLDB4YjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYmEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwNCwweGI3LDB4ODAsMHgyMCwweGUyLDB4MDgsMHg2OCwweDA2LDB4OWUsMHg4MCwweGJmLDB4ODQsMHgyNSB9fSwKLSB7MTYsIDB4Y2JiMCwgMCwgezB4YTgsMHgwOSwweDY4LDB4MDIsMHhjNiwweDAwLDB4OTMsMHhhMCwweDY1LDB4ZTQsMHgwYiwweDc4LDB4MTIsMHhkZSwweDAwLDB4OTMgfX0sCi0gezE2LCAweGNiYzAsIDAsIHsweDAwLDB4YTEsMHhlMCwweDA4LDB4ZDgsMHgwMiwweDFlLDB4ZDAsMHhhNywweDgwLDB4MmQsMHhlMCwweDA4LDB4ZjgsMHgwMiwweDQ4IH19LAotIHsxNiwgMHhjYmQwLCAwLCB7MHgxMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDA4LDB4MDAsMHhiMywweDIwLDB4MzAsMHhjMCB9fSwKLSB7MTYsIDB4Y2JlMCwgMCwgezB4MGEsMHgyMiwweDAyLDB4Y2UsMHg0MCwweGYzLDB4YTAsMHgzYywweGU4LDB4MGIsMHgzMCwweDAyLDB4YzEsMHgwMCwweGQwLDB4YzEgfX0sCi0gezE2LCAweGNiZjAsIDAsIHsweDMwLDB4YzAsMHgwYiwweDIxLDB4MTMsMHhjYywweDIxLDB4ZDMsMHgwMCwweDJjLDB4YzAsMHgyYywweDEwLDB4MGIsMHgwYywweDgwIH19LAotIHsxNiwgMHhjYzAwLCAwLCB7MHhkMywweDYxLDB4M2MsMHhjOCwweDJjLDB4MjAsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2MxMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDQwLDB4M2IsMHhjMCwweDBmLDB4ZTAsMHgwMywweGZjLDB4MDAsMHhmNywweDUwLDB4N2YgfX0sCi0gezE2LCAweGNjMjAsIDAsIHsweGM0LDB4MmUsMHhmMCwweDAzLDB4ZmMsMHg0MCwweGZlLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDQ3LDB4ZmMsMHgwMCwweGZmIH19LAotIHsxNiwgMHhjYzMwLCAwLCB7MHgwMCwweDdkLDB4YzIsMHgwZiwweGQwLDB4MDEsMHhiYywweDgwLDB4NWYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4Y2M0MCwgMCwgezB4MDIsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAwLDB4ZmIsMHhjMCwweDMyLDB4YzggfX0sCi0gezE2LCAweGNjNTAsIDAsIHsweDBlLDB4ZTAsMHgwMywweGFjLDB4YTAsMHhlYiwweDIwLDB4MzIsMHg0MCwweDhjLDB4YTAsMHgxMywweDJjLDB4MDAsMHhkOSwweDAwIH19LAotIHsxNiwgMHhjYzYwLCAwLCB7MHgzZSwweDYwLDB4MGMsMHhiMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4ODAsMHgzMCwweGMwLDB4M2MsMHg5MiwweDAzLDB4ZWYsMHg2MCB9fSwKLSB7MTYsIDB4Y2M3MCwgMCwgezB4YzMsMHgyMCwweDMxLDB4YzQsMHgwYywweGEwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNjODAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDAwLDB4MzMsMHgyMCwweDIxLDB4ZGEsMHgwYiwweDcwLDB4NDMsMHg5YywweDAxLDB4YjUsMHgwMCwweDIxIH19LAotIHsxNiwgMHhjYzkwLCAwLCB7MHgwMCwweDBhLDB4ZTAsMHgwMiwweDFjLDB4MDAsMHhiNywweDAwLDB4MmYsMHhjMCwweDBkLDB4NzAsMHgwMywweDljLDB4MDAsMHhiNiB9fSwKLSB7MTYsIDB4Y2NhMCwgMCwgezB4MDAsMHgzMSwweGM4LDB4MDgsMHg1NywweDAyLDB4ZGMsMHgwMCwweDg3LDB4NTAsMHgyMSwweGMwLDB4MGEsMHg3MCwweDQyLDB4OTIgfX0sCi0gezE2LCAweGNjYjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWEsMHgxMSwweGI3LDB4OTAsMHgyMSwweGUwIH19LAotIHsxNiwgMHhjY2MwLCAwLCB7MHgwYiwweDY4LDB4ODIsMHhkZSwweDA4LDB4YTcsMHg4MCwweDI0LDB4NjAsMHgwOCwweDcwLDB4MTIsMHgxMiwweDA4LDB4OTUsMHg4MCB9fSwKLSB7MTYsIDB4Y2NkMCwgMCwgezB4MmQsMHg2MCwweDA5LDB4NmMsMHgwMiwweGRlLDB4MDAsMHhiMSwweDgwLDB4MjMsMHhlMCwweDBhLDB4NTgsMHg2MiwweGZlLDB4MDAgfX0sCi0gezE2LCAweGNjZTAsIDAsIHsweDk3LDB4YTAsMHgyMSwweGU4LDB4MDksMHhlOCwweDAyLDB4MzAsMHgxMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjY2YwLCAwLCB7MHg0OCwweDE0LDB4Y2QsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwLDB4OGIsMHgzYywweDAyLDB4OGMsMHgwMCwweGJiLDB4MDAsMHgyNCB9fSwKLSB7MTYsIDB4Y2QwMCwgMCwgezB4YzQsMHgxYSwweDNkLDB4MDIsMHgyZiwweDg4LDB4YjMsMHg0OCwweDJjLDB4ZTAsMHg4OSwweDNlLDB4MDIsMHg4ZCwweDgwLDB4OTMgfX0sCi0gezE2LCAweGNkMTAsIDAsIHsweGQ5LDB4YTQsMHg0MCwweDg4LDB4MTAsMHgwMiwweGNjLDB4MDQsMHg5MywweGM4LDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDkyIH19LAotIHsxNiwgMHhjZDIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI5LDB4NDAsMHhmYSwweDAwLDB4YjIsMHg4MCB9fSwKLSB7MTYsIDB4Y2QzMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGVhLDB4ODAsMHgzNywweGEwLDB4MGMsMHhlOCwweDEzLDB4M2IsMHgwOCwweGRlLDB4MDEgfX0sCi0gezE2LCAweGNkNDAsIDAsIHsweDNmLDB4ODIsMHgwYywweGUwLDB4NDMsMHhmYSwweDgwLDB4ZmUsMHg4MCwweDMxLDB4MjgsMHgwYywweGEwLDB4MDMsMHhmMCwweDAyIH19LAotIHsxNiwgMHhjZDUwLCAwLCB7MHhjNCwweGMwLDB4YjIsMHg4MCwweDBkLDB4ZTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2Q2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgxMCwweDBiLDB4ODAsMHg4MywweGUwLDB4MDAsMHhmOCwweDMwLDB4M2EgfX0sCi0gezE2LCAweGNkNzAsIDAsIHsweDAwLDB4NmQsMHg4MCwweDgzLDB4ZTEsMHg0NCwweGI4LDB4MDQsMHgzZSwweDEwLDB4MGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4IH19LAotIHsxNiwgMHhjZDgwLCAwLCB7MHgwMCwweDNhLDB4MTAsMHg0ZiwweDA0LDB4MDMsMHhlMywweDAwLDB4ZTgsMHgxMCwweDNlLDB4MDAsMHgwZSwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4Y2Q5MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YzksMHgwMCwweDM4LDB4NDAgfX0sCi0gezE2LCAweGNkYTAsIDAsIHsweDBmLDB4MWEsMHgwMywweDJlLDB4MDAsMHhmYiwweGEwLDB4MzYsMHg2MCwweDBjLDB4OTgsMHgwMywweGU2LDB4MDQsMHhkMSwweDAwIH19LAotIHsxNiwgMHhjZGIwLCAwLCB7MHgzNiwweDQ4LDB4MGUsMHg5MSwweDAyLDB4ZTYsMHgwMCwweGY5LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg5OSwweDAzLDB4NjIsMHg0MCB9fSwKLSB7MTYsIDB4Y2RjMCwgMCwgezB4ZjgsMHgwMCwweGEwLDB4NjgsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNkZDAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAyLDB4ODksMHgwNCwweDJlLDB4NjQsMHg4OCwweDk0LDB4MDIsMHhhNSwweDAwLDB4YjksMHg4MCwweDIwIH19LAotIHsxNiwgMHhjZGUwLCAwLCB7MHg2NCwweDBkLDB4OWMsMHgwMiwweGU2LDB4NDIsMHg4OSwweDAwLDB4MjIsMHg2MCwweDBiLDB4OWMsMHgwMiwweGU0LDB4MTAsMHhiOSB9fSwKLSB7MTYsIDB4Y2RmMCwgMCwgezB4NDAsMHgzYSwweDUwLDB4MDgsMHg5YywweDAyLDB4MjcsMHgyMCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHgxMCwweDAzLDB4NjAgfX0sCi0gezE2LCAweGNlMDAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MDQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwIH19LAotIHsxNiwgMHhjZTEwLCAwLCB7MHgwYSwweDkwLDB4ODIsMHgyNSwweDRjLDB4YjksMHgwMCwweDAyLDB4NDAsMHgwOCwweDk2LDB4MDIsMHhlNCwweDEwLDB4ODksMHgwMCB9fSwKLSB7MTYsIDB4Y2UyMCwgMCwgezB4MjYsMHg1MCwweDEzLDB4OTQsMHgwMiwweGU0LDB4NDAsMHhiOSwweDA4LDB4MmUsMHg0MCwweDA4LDB4OTAsMHg4YSwweDI0LDB4MDAgfX0sCi0gezE2LCAweGNlMzAsIDAsIHsweGI5LDB4MDEsMHgyYSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZTQwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHg4MCwweDgxLDB4NDAsMHgyYywweGM4LDB4MDgsMHgxMCwweDA2LDB4ODQsMHgwMCwweGIxLDB4MDQsMHgyMCB9fSwKLSB7MTYsIDB4Y2U1MCwgMCwgezB4NDksMHgwOSwweDE0LDB4NDIsMHhjYywweDg5LDB4ODEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4NDYsMHhjNCwweDAwLDB4YjEgfX0sCi0gezE2LCAweGNlNjAsIDAsIHsweDAwLDB4MmEsMHhjMCwweDI4LDB4MTQsMHgwMiwweDAxLDB4MDEsMHhiMCwweDA0LDB4MjgsMHg0MCwweDM4LDB4OTQsMHgwMiwweDQyIH19LAotIHsxNiwgMHhjZTcwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHg4OCwweDAwLDB4M2EsMHgwMCB9fSwKLSB7MTYsIDB4Y2U4MCwgMCwgezB4MGUsMHg4MCwweDIzLDB4MjAsMHgwMCwweGY4LDB4NTAsMHhiMiwweDAwLDB4MGMsMHg4MCwweDEyLDB4ZTEsMHg0MCwweGQ4LDB4NTAgfX0sCi0gezE2LCAweGNlOTAsIDAsIHsweDM2LDB4MDAsMHgwZSwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAsMHgwYywweDgwLDB4NTMsMHg2MCwweDA0IH19LAotIHsxNiwgMHhjZWEwLCAwLCB7MHhmOCwweDAwLDB4M2EsMHgwMCwweDBjLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2ViMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4NDAsMHhmOSwweDQ0LDB4M2UsMHg0NCwweDBmLDB4ZDQsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2YgfX0sCi0gezE2LCAweGNlYzAsIDAsIHsweDQ0LDB4MGYsMHhkNCwweDUzLDB4ZjQsMHg0NCwweGZkLDB4MTAsMHgyZiwweDQwLDB4MGYsMHhmNCwweDAzLDB4ZmQsMHgwMCwweGZkIH19LAotIHsxNiwgMHhjZWQwLCAwLCB7MHg0MCwweDNiLDB4MTAsMHgwZiwweGQ0LDB4MjMsMHhkMSwweDA0LDB4N2MsMHg0MywweDM2LDB4NTAsMHgwZiwweDUwLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4Y2VlMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhhNiwweDAwLDB4ZjksMHgxMCwweDJlLDB4NjIgfX0sCi0gezE2LCAweGNlZjAsIDAsIHsweDBmLDB4ZDIsMHg4MywweGU0LDB4MDAsMHhiZCwweDQyLDB4M2UsMHg2MSwweDBmLDB4ZDAsMHgwMywweGY2LDB4YzAsMHhjOSwweGEyIH19LAotIHsxNiwgMHhjZjAwLCAwLCB7MHgyYiwweDQwLDB4MGMsMHhkMCwweDAzLDB4MzQsMHgwMCwweGY5LDB4ODEsMHgzZSwweDY4LDB4MDgsMHhjMSwweDQzLDB4ZmEsMHgwMCB9fSwKLSB7MTYsIDB4Y2YxMCwgMCwgezB4ZjUsMHg4MCwweDNmLDB4NjIsMHgwYywweDE0LDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNmMjAsIDAsIHsweDM4LDB4MTAsMHhlMSwweDIwLDB4ODgsMHgxMSwweDJlLDB4MTAsMHgwYiwweDgwLDB4MDIsMHhlMCwweDAwLDB4YjgsMHg4MiwweDJlIH19LAotIHsxNiwgMHhjZjMwLCAwLCB7MHgxMCwweDBiLDB4ODAsMHgwMCwweGUzLDB4YzQsMHg4OCwweGYwLDB4MjIsMHgwMCwweDBiLDB4ODAsMHgwYSwweDIwLDB4MDAsMHhlOCB9fSwKLSB7MTYsIDB4Y2Y0MCwgMCwgezB4NDAsMHgyZiwweDE0LDB4MDgsMHg4OCwweDAyLDB4ZTIsMHgwMCwweGI4LDB4MDAsMHgyZSwweDAwLDB4MDgsMHg4OCwweDAyLDB4OGUgfX0sCi0gezE2LCAweGNmNTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4YzUsMHgwMCwweGExLDB4MDAsMHgyYywweDQwIH19LAotIHsxNiwgMHhjZjYwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHhjNCwweDE4LDB4YjEsMHgyMiwweDZjLDB4ZDEsMHgwYiwweDEwLDB4MjYsMHhjNCwweDAwLDB4ODEsMHgwOCB9fSwKLSB7MTYsIDB4Y2Y3MCwgMCwgezB4MmEsMHg0MCwweDg4LDB4MTAsMHgwMiwweDA0LDB4MDQsMHhiNSwweGMwLDB4MGYsMHg0MCwweDBiLDB4MDIsMHgwMiwweDQxLDB4YTAgfX0sCi0gezE2LCAweGNmODAsIDAsIHsweGIxLDB4NDAsMHgyYywweDQwLDB4MDgsMHgxMiwweDAyLDB4MDIsMHgxMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZjkwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDg5LDB4MDYsMHgyZSwweDQwLDB4MGIsMHg5MCwweDEyLDB4ZTQsMHgwMCwweGI5LDB4NDAsMHgyZSB9fSwKLSB7MTYsIDB4Y2ZhMCwgMCwgezB4NDAsMHgwYiwweGIwLDB4ODIsMHhjNCwweDAyLDB4ODksMHg0NCwweDIyLDB4NDAsMHgwYSwweDkwLDB4MDIsMHgyNCwweDAwLDB4YTkgfX0sCi0gezE2LCAweGNmYjAsIDAsIHsweDAwLDB4MjcsMHg0OCwweDA5LDB4YjAsMHgxMiwweGVjLDB4MTgsMHhiOSwweDAxLDB4MmUsMHg0MCwweDQwLDB4OTAsMHgwMiwweDg2IH19LAotIHsxNiwgMHhjZmMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU3LDB4ODQsMHhlOSwweDAxLDB4M2UsMHg0MCB9fSwKLSB7MTYsIDB4Y2ZkMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDcyLDB4MGYsMHg5MCwweDAzLDB4ZTcsMHg2MCwweDg5LDB4MTAgfX0sCi0gezE2LCAweGNmZTAsIDAsIHsweDNhLDB4NDAsMHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHg0NCwweDNjLDB4NDAsMHgyZCwweDkwLDB4MDMsMHhlNywweDYwIH19LAotIHsxNiwgMHhjZmYwLCAwLCB7MHhmOSwweDcxLDB4M2UsMHg0MCwweDI4LDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDAwMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4NDgsMHhhOSwweDAwLDB4M2UsMHhjMCwweDBmLDB4OWEsMHg0MywweGVjLDB4MDAsMHhmOSwweDIwLDB4N2UgfX0sCi0gezE2LCAweGQwMTAsIDAsIHsweGM4LDB4MGYsMHg5YSwweDA3LDB4NjYsMHgwMCwweDc5LDB4ODAsMHg3ZSwweDQwLDB4MGYsMHgxYywweDAzLDB4ZTcsMHgwMCwweGU5IH19LAotIHsxNiwgMHhkMDIwLCAwLCB7MHhhMCwweDNlLDB4NDAsMHg0NiwweDgwLDB4MDMsMHhlMCwweDIwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSB9fSwKLSB7MTYsIDB4ZDAzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHg4MCwweDAwLDB4ZjgsMHgwMCwweDNhLDB4MDAgfX0sCi0gezE2LCAweGQwNDAsIDAsIHsweDBmLDB4ODAsMHgwMywweGEwLDB4MDgsMHhlOCwweDQwLDB4M2EsMHgxMCwweDBjLDB4ODMsMHgwMywweGExLDB4YzAsMHhmMCwweDQwIH19LAotIHsxNiwgMHhkMDUwLCAwLCB7MHgzZSwweDA2LDB4MGYsMHg4NCwweDAzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHgzYiwweDAwLDB4MGYsMHg4MSwweDAzLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ZDA2MCwgMCwgezB4ZjgsMHgxMCwweGIyLDB4MDAsMHg0YywweDgwLDB4MGIsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQwNzAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4YmEsMHgwMCwweDJlLDB4YjAsMHgwYiwweGU4LDB4MDIsMHhlOSwweDAwLDB4M2UsMHg5MCwweDAyIH19LAotIHsxNiwgMHhkMDgwLCAwLCB7MHg4MSwweDA4LDB4ZTQsMHgxMiwweDc4LDB4MDAsMHhiYSwweDAwLDB4MmQsMHhiMCwweDg5LDB4ZTgsMHgyMiwweGY4LDB4MGMsMHhiYSB9fSwKLSB7MTYsIDB4ZDA5MCwgMCwgezB4MDAsMHg2ZSwweDgwLDB4MDMsMHhjNSwweDAzLDB4MzAsMHgwMCwweGJhLDB4MDAsMHgyMiwweGE4LDB4MDgsMHhhMCwweDIyLDB4OGEgfX0sCi0gezE2LCAweGQwYTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyOCwweGU4IH19LAotIHsxNiwgMHhkMGIwLCAwLCB7MHgxYiwweDMxLDB4MTIsMHg4YywweGM0LDB4YTMsMHg5MiwweDJjLDB4NDAsMHg4OCwweDM0LDB4MDYsMHg4ZSwweDAwLDB4OTMsMHgwMCB9fSwKLSB7MTYsIDB4ZDBjMCwgMCwgezB4MmMsMHhmMCwweDE5LDB4MzEsMHhhMiwweGNjLDB4MDQsMHhiMywweDAwLDB4MjgsMHg4MCwweDAxLDB4MzgsMHgwMiwweDRjLDB4MDAgfX0sCi0gezE2LCAweGQwZDAsIDAsIHsweGIzLDB4ODAsMHgyMCwweGUwLDB4MGEsMHhiMCwweDEyLDB4MDIsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMGUwLCAwLCB7MHhhMCwweDAxLDB4MWMsMHgwMCwweGI3LDB4MTQsMHgyZCwweDQyLDB4MGIsMHg2MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4ODEsMHgyNyB9fSwKLSB7MTYsIDB4ZDBmMCwgMCwgezB4ZTAsMHgxOCwweDYwLDB4MDIsMHg1OCwweDE4LDB4YjcsMHgyMiwweDJkLDB4ODAsMHgwOSwweDcwLDB4MjIsMHhkYywweDAwLDB4YjcgfX0sCi0gezE2LCAweGQxMDAsIDAsIHsweDAwLDB4MmQsMHg4MCwweDBiLDB4M2IsMHgwMiwweDFkLDB4ZDAsMHhiZiwweDgwLDB4MjgsMHhjMCwweDhhLDB4ZjIsMHgwMiwweGEwIH19LAotIHsxNiwgMHhkMTEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFmLDB4ODAsMHhmNywweGEwLDB4MzksMHhlMiB9fSwKLSB7MTYsIDB4ZDEyMCwgMCwgezB4MGYsMHg2OCwweDAzLDB4OWUsMHgwMCwweGVkLDB4ODQsMHgzZCwweGUyLDB4NDQsMHg3OCwweDAzLDB4OWUsMHgwMCwweGY3LDB4YjQgfX0sCi0gezE2LCAweGQxMzAsIDAsIHsweDJkLDB4ZTAsMHgwZCwweDY4LDB4MDMsMHhkNiwweDAwLDB4ZjYsMHg4MCwweDM5LDB4ZTAsMHgwZiwweDc5LDB4MDMsMHg1ZSwweDkwIH19LAotIHsxNiwgMHhkMTQwLCAwLCB7MHhmNywweDgxLDB4MzEsMHg2MCwweDJlLDB4N2MsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDE1MCwgMCwgezB4MDgsMHgxZCwweGFkLDB4MDAsMHhmYiwweDQyLDB4M2UsMHhjOCwweDBmLDB4YTAsMHgwMywweGVkLDB4YTAsMHhiYiwweDAwLDB4MzggfX0sCi0gezE2LCAweGQxNjAsIDAsIHsweGM4LDB4MGYsMHhiMCwweDAzLDB4NjgsMHgwMCwweGZiLDB4MTEsMHgzZSwweDQwLDB4MDksMHhiMCwweDQxLDB4ZWMsMHgwMCwweGZhIH19LAotIHsxNiwgMHhkMTcwLCAwLCB7MHgwMiwweDNlLDB4YzAsMHgwZiwweGIyLDB4MGIsMHhlZCwweDgwLDB4M2IsMHgwMCwweDM2LDB4NDAsMHgwZCwweGIwLDB4MjMsMHg0MiB9fSwKLSB7MTYsIDB4ZDE4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDAwLDB4Y2YsMHhkMCwweDMzLDB4ZTQgfX0sCi0gezE2LCAweGQxOTAsIDAsIHsweDRmLDB4ZjksMHgwMywweGRlLDB4NDAsMHhkYywweDgwLDB4MzYsMHhlNCwweDBjLDB4YjksMHgxMywweGZlLDB4MDAsMHhjZiwweDkwIH19LAotIHsxNiwgMHhkMWEwLCAwLCB7MHgzNywweGU1LDB4MGYsMHhmOCwweDQzLDB4ZmUsMHgwMCwweGNmLDB4OTIsMHgzZiwweGE0LDB4MGYsMHg3OCwweDAzLDB4MWYsMHgwMCB9fSwKLSB7MTYsIDB4ZDFiMCwgMCwgezB4YzUsMHg4MCwweDMzLDB4NjAsMHgwYywweGY4LDB4MjAsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQxYzAsIDAsIHsweGE4LDB4MTEsMHhiYywweDAwLDB4MGYsMHgxMCwweDIxLDB4ODEsMHgwYiwweDYwLDB4MDMsMHg4NCwweDAwLDB4OGIsMHgwOCwweDIxIH19LAotIHsxNiwgMHhkMWQwLCAwLCB7MHg2MCwweDBhLDB4N2IsMHgwMywweDk4LDB4MDAsMHg4YiwweDEwLDB4MjksMHg4NCwweDBlLDB4NjQsMHgyMiwweGRjLDB4NDAsMHhkNyB9fSwKLSB7MTYsIDB4ZDFlMCwgMCwgezB4MDIsMHgyZCwweDg0LDB4MGIsMHg3MCwweDAyLDB4MWMsMHgwMCwweDg1LDB4MTgsMHgyMSwweDQwLDB4MGEsMHhmMCwweDIyLDB4YWEgfX0sCi0gezE2LCAweGQxZjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHgwMCwweGE3LDB4MTQsMHg2OSwweGMwIH19LAotIHsxNiwgMHhkMjAwLCAwLCB7MHgxYSwweDYwLDB4MTIsMHhmYywweDAxLDB4YTQsMHgxMCwweDJkLDB4YzAsMHgwYSwweDUyLDB4MDIsMHg0NSwweDQwLDB4ODcsMHgwYyB9fSwKLSB7MTYsIDB4ZDIxMCwgMCwgezB4MjEsMHg4MCwweDFiLDB4NjAsMHg4MiwweGQ0LDB4MDAsMHg4NiwweDAzLDB4MjUsMHhlMCwweDFiLDB4NzAsMHgwMiwweDVjLDB4NDAgfX0sCi0gezE2LCAweGQyMjAsIDAsIHsweDlkLDB4MDAsMHgyOSwweDQwLDB4MDgsMHg3MCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMjMwLCAwLCB7MHgyMCwweDE0LDB4Y2QsMHgwMCwweGEzLDB4MDAsMHgyOCwweGMwLDB4MWIsMHgyMCwweDIyLDB4OGMsMHgxMSwweGEzLDB4MDAsMHg2OCB9fSwKLSB7MTYsIDB4ZDI0MCwgMCwgezB4ZjYsMHgwYSwweDNjLDB4MDYsMHg4MiwweDAwLDB4ODMsMHg4MCwweDI4LDB4ODQsMHgwYSwweDhjLDB4ODIsMHhjYywweDQ0LDB4OTIgfX0sCi0gezE2LCAweGQyNTAsIDAsIHsweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDRlLDB4MDAsMHg5MSwweDAwLDB4MjgsMHg0MCwweDBhLDB4MzAsMHgwMiwweDg4IH19LAotIHsxNiwgMHhkMjYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJlLDB4MjIsMHhlZiwweDA0LDB4YmEsMHhjMCB9fSwKLSB7MTYsIDB4ZDI3MCwgMCwgezB4MGYsMHgxNCwweDkzLDB4ZWMsMHgwMiwweGYxLDB4YzMsMHgzZSwweGYwLDB4MGUsMHg5MCwweDgzLDB4NjYsMHgwMCwweGNmLDB4ZDIgfX0sCi0gezE2LCAweGQyODAsIDAsIHsweDMyLDB4NTAsMHgwZiwweDljLDB4MDMsMHhjYiwweDAwLDB4YzksMHg4MCwweDNlLDB4MjgsMHgwZiwweGIwLDB4MDMsMHg0ZiwweDAwIH19LAotIHsxNiwgMHhkMjkwLCAwLCB7MHhkMSwweGMwLDB4YWEsMHhjMCwweDBjLDB4NzEsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDJhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MjAsMHhkYiwweDAwLDB4MjYsMHg4MCwweDBmLDB4YTAsMHgwMywweGVjLDB4MDgsMHgxYiwweDAwLDB4MzYgfX0sCi0gezE2LCAweGQyYjAsIDAsIHsweGMwLDB4MGYsMHg4NiwweDAxLDB4ZTUsMHg0MCwweGZiLDB4MDIsMHgzYSwweDQ4LDB4MGUsMHg5NCwweDAzLDB4ZWMsMHg4MCwweGYxIH19LAotIHsxNiwgMHhkMmMwLCAwLCB7MHg4NCwweDNlLDB4MDAsMHg0ZiwweGIwLDB4MDMsMHhhZCwweGMwLDB4ZWIsMHgyMCwweDM2LDB4YzAsMHgwZiwweGIwLDB4MjMsMHhlMCB9fSwKLSB7MTYsIDB4ZDJkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4Y2YsMHgwMCwweDNmLDB4NjAgfX0sCi0gezE2LCAweGQyZTAsIDAsIHsweDBjLDB4ZTAsMHg4MywweDNlLDB4ODAsMHhlZCwweDA4LDB4MzMsMHhkMCwweDhmLDB4NTAsMHgwMywweDllLDB4MDAsMHhkZiwweDAwIH19LAotIHsxNiwgMHhkMmYwLCAwLCB7MHgzMywweDQwLDB4MGMsMHhjMCwweDAzLDB4MzAsMHgwMCwweGNjLDB4MTAsMHgzMywweDY4LDB4MGMsMHhmMCwweDAzLDB4M2MsMHg4NCB9fSwKLSB7MTYsIDB4ZDMwMCwgMCwgezB4OGQsMHg5MCwweDMwLDB4NDAsMHgwYywweGYwLDB4MDMsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQzMTAsIDAsIHsweDgxLDB4MDQsMHg2YywweDAwLDB4OGIsMHgwMiwweDJjLDB4ZjQsMHgwOCwweGE4LDB4NjIsMHgwYywweDgwLDB4OGIsMHg4MCwweDJhIH19LAotIHsxNiwgMHhkMzIwLCAwLCB7MHg2MCwweDBmLDB4OWMsMHgwMiwweDJlLDB4MDAsMHg4YiwweDAwLDB4MjAsMHg2MCwweDBkLDB4OTgsMHgwMiwweDJjLDB4ODAsMHhkOCB9fSwKLSB7MTYsIDB4ZDMzMCwgMCwgezB4MDAsMHgxNCwweDQwLDB4MDgsMHgzNCwweDEyLDB4MmUsMHgwMCwweDhiLDB4ODIsMHgzMiwweDQwLDB4MGQsMHhiMCwweDAzLDB4NjAgfX0sCi0gezE2LCAweGQzNDAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyZSwweGQwIH19LAotIHsxNiwgMHhkMzUwLCAwLCB7MHgwOCwweGI4LDB4MDIsMHgyYywweDAwLDB4OGEsMHg4NCwweDIyLDB4YzAsMHgwYiwweDg4LDB4MDIsMHhlNCwweGEwLDB4ODMsMHgwMCB9fSwKLSB7MTYsIDB4ZDM2MCwgMCwgezB4MjIsMHg2MiwweDBhLDB4OTgsMHgwMiwweDI4LDB4MDAsMHg4OSwweDAwLDB4MjIsMHgwMCwweDBhLDB4YjEsMHgwNiwweDJjLDB4MDAgfX0sCi0gezE2LCAweGQzNzAsIDAsIHsweGFiLDB4MDAsMHgyMiwweDQwLDB4MDgsMHhiMCwweDAyLDB4NjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMzgwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMiwweGEzLDB4MDAsMHgyYywweGMxLDB4MDgsMHgyMCwweDAyLDB4MGMsMHgwMiwweDhiLDB4MDAsMHgyOCB9fSwKLSB7MTYsIDB4ZDM5MCwgMCwgezB4YzIsMHgwYSwweDAwLDB4MDIsMHg0NCwweDEwLDB4ODMsMHgxMCwweDIyLDB4NDAsMHgwYiwweDEwLDB4MDYsMHgwYywweDAwLDB4OTEgfX0sCi0gezE2LCAweGQzYTAsIDAsIHsweDA0LDB4YWEsMHgwMCwweDI4LDB4MzAsMHgwMiwweDJjLDB4MDAsMHhhMSwweDAxLDB4MjAsMHg0MCwweDA5LDB4YjAsMHgwMiwweDQyIH19LAotIHsxNiwgMHhkM2IwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDdjLDB4MDAsMHg4ZiwweDAwLDB4M2UsMHhjMCB9fSwKLSB7MTYsIDB4ZDNjMCwgMCwgezB4MmMsMHhhMCwweDAzLDB4MjksMHg0MCwweGE4LDB4NDAsMHgzMiwweGNjLDB4OGIsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGNmLDB4NDAgfX0sCi0gezE2LCAweGQzZDAsIDAsIHsweDMyLDB4MDAsMHgwZSwweDgwLDB4MGEsMHgyMCwweDAwLDB4ODgsMHgwMCwweDIyLDB4NDAsMHgwYywweGIwLDB4MDMsMHgyYywweDA0IH19LAotIHsxNiwgMHhkM2UwLCAwLCB7MHhlYiwweDAwLDB4YjIsMHg0MCwweDhjLDB4YjAsMHgwMywweDQwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDNmMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhkZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZTAsMHgwMywweGZjLDB4ODAsMHhmZiwweDI4LDB4M2QgfX0sCi0gezE2LCAweGQ0MDAsIDAsIHsweGMwLDB4MGIsMHhjMSwweDAzLDB4YjAsMHgxNCwweGZmLDB4MDAsMHgzZiwweDAwLDB4MGQsMHhkMCwweDAzLDB4ZGMsMHgwMCwweGZjIH19LAotIHsxNiwgMHhkNDEwLCAwLCB7MHgwMCwweDM3LDB4NDAsMHgwZiwweGYwLDB4MjEsMHhmYywweDAwLDB4MWQsMHgwMCwweDdiLDB4NDAsMHg4ZiwweGYwLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4ZDQyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkMiwweDAwLDB4ZGYsMHgwMCwweDMxLDB4YTAgfX0sCi0gezE2LCAweGQ0MzAsIDAsIHsweDRkLDB4ZjAsMHg0MywweDMyLDB4MDAsMHhjZSwweDE0LDB4MWIsMHg2OCwweDBlLDB4ZGEsMHgyMywweGIyLDB4YzAsMHgyZiwweDAwIH19LAotIHsxNiwgMHhkNDQwLCAwLCB7MHgzZiwweGMyLDB4MmMsMHhlOCwweDAzLDB4M2MsMHg0MCwweGZkLDB4MDgsMHgzYiwweGM4LDB4NGMsMHhmMCwweDgzLDB4M2MsMHhhMCB9fSwKLSB7MTYsIDB4ZDQ1MCwgMCwgezB4Y2YsMHgwMCwweDMzLDB4YzQsMHgwYywweGYzLDB4MDcsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ0NjAsIDAsIHsweDgwLDB4MTAsMHhlMiwweDAwLDB4OGYsMHhjMCwweDIyLDB4YTAsMHgwOCwweGZkLDB4NDIsMHgyZiwweDAwLDB4OGIsMHg3MCwweDIyIH19LAotIHsxNiwgMHhkNDcwLCAwLCB7MHgxZSwweDQ4LDB4ODksMHgwMiwweDI3LDB4YzAsMHg4ZiwweDVhLDB4MmUsMHg1MCwweDQ4LDB4MzAsMHgwMiwweGJkLDB4YzAsMHhiZCB9fSwKLSB7MTYsIDB4ZDQ4MCwgMCwgezB4NDAsMHgyMywweGM1LDB4NDgsMHhmNCwweDgyLDB4M2QsMHgyYywweDg3LDB4NzAsMHgyMiwweGMwLDB4MDgsMHhmMSwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGQ0OTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZTAsMHgwMCwweDkzLDB4MTAsMHgyNiwweDgxIH19LAotIHsxNiwgMHhkNGEwLCAwLCB7MHg0OSwweDMwLDB4MDIsMHg4MCwweDQwLDB4ODMsMHgyMCwweDI4LDB4NDAsMHgwYSwweDEwLDB4MDIsMHg4MCwweDAwLDB4YTMsMHgyNCB9fSwKLSB7MTYsIDB4ZDRiMCwgMCwgezB4MmMsMHhjYSwweDA4LDB4MzIsMHg4MiwweDBjLDB4MDAsMHg5MSwweDI4LDB4MjAsMHhjYSwweDFiLDB4MzIsMHgwMiwweDBjLDB4ODggfX0sCi0gezE2LCAweGQ0YzAsIDAsIHsweDgzLDB4MDksMHgyMCwweGM4LDB4MDksMHgzMiwweDAyLDB4ZTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNGQwLCAwLCB7MHhjMCwweDE1LDB4YTMsMHgxNCwweDhiLDB4MDQsMHgyNiwweDg5LDB4MDgsMHhiMCwweDAyLDB4YWMsMHgyMiwweDhiLDB4ODgsMHgyYSB9fSwKLSB7MTYsIDB4ZDRlMCwgMCwgezB4MjAsMHgwOCwweDk4LDB4ODIsMHhhNiwweDEwLDB4YWIsMHgwMCwweDJlLDB4Y2EsMHgwOCwweGIwLDB4ODIsMHhhYywweDAwLDB4YjkgfX0sCi0gezE2LCAweGQ0ZjAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDI5LDB4YjAsMHgwYSwweDJjLDB4MDEsMHg4YiwweDAwLDB4MjIsMHhjMCwweDA5LDB4YjAsMHgyMiwweGYwIH19LAotIHsxNiwgMHhkNTAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGUzLDB4MDAsMHhkYiwweDAwLDB4MzQsMHhlMiB9fSwKLSB7MTYsIDB4ZDUxMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4YTMsMHgwMCwweGNhLDB4ODAsMHhiYSwweDcwLDB4MGUsMHg4OCwweDAzLDB4YTYsMHgwMCwweGViLDB4MDAgfX0sCi0gezE2LCAweGQ1MjAsIDAsIHsweDNlLDB4OTAsMHgwYywweGI1LDB4MDMsMHgyYywweDAwLDB4ZmIsMHgxMCwweGJhLDB4YzAsMHgwZSwweGIwLDB4MDMsMHgyYywweDAyIH19LAotIHsxNiwgMHhkNTMwLCAwLCB7MHhjYiwweDAyLDB4MzIsMHhjMCwweDA5LDB4YjAsMHgwMiwweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDU0MCwgMCwgezB4ZTAsMHgwMSwweGIwLDB4MDgsMHhmZiwweDAwLDB4YmIsMHhlMCwweDBmLDB4NzAsMHgwMywweDY1LDB4MDAsMHhmNCwweDAwLDB4MzUgfX0sCi0gezE2LCAweGQ1NTAsIDAsIHsweDQwLDB4MGYsMHg0MCwweDAzLDB4NTQsMHgwMCwweGRmLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhmOCwweDAzLDB4ZWMsMHgwMCwweGY3IH19LAotIHsxNiwgMHhkNTYwLCAwLCB7MHgwMSwweDNkLDB4YzEsMHgwZSwweDMwLDB4MDMsMHhlYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg4ZSwweGYwLDB4MDMsMHhiOCB9fSwKLSB7MTYsIDB4ZDU3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMCwweDQwLDB4ZWIsMHgwOCwweDNlLDB4ODAgfX0sCi0gezE2LCAweGQ1ODAsIDAsIHsweDBkLDB4YjAsMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4M2EsMHg1MSwweDBmLDB4ODIsMHgwMywweDY0LDB4MjAsMHhkYiwweDAwIH19LAotIHsxNiwgMHhkNTkwLCAwLCB7MHgzZCwweDgyLDB4MGMsMHhiYywweDAzLDB4MmMsMHgxMCwweGRiLDB4MDAsMHg3MiwweGMwLDB4MGQsMHhiMSwweDAzLDB4MGMsMHgyMCB9fSwKLSB7MTYsIDB4ZDVhMCwgMCwgezB4ZDMsMHgwMCwweDMyLDB4YzAsMHgwZiwweGIwLDB4MGIsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ1YjAsIDAsIHsweGM4LDB4MDUsMHgwMSwweDAwLDB4ODcsMHhjMCwweDJlLDB4YTgsMHgwOCwweGYxLDB4MTIsMHhjNSwweDQwLDB4ODgsMHgwMCwweDIyIH19LAotIHsxNiwgMHhkNWMwLCAwLCB7MHg0MCwweDBiLDB4ODQsMHgwMiwweDI3LDB4MDAsMHhhZiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YmMsMHgxMiwweDNjLDB4MDAsMHg4YiB9fSwKLSB7MTYsIDB4ZDVkMCwgMCwgezB4MDEsMHgyMywweGMwLDB4MjgsMHhmNSwweDRhLDB4M2QsMHgyOCwweGRmLDB4MDAsMHgzMywweGMwLDB4NGIsMHhmMCwweDAzLDB4MzIgfX0sCi0gezE2LCAweGQ1ZTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDgsMHg4MCwweGEzLDB4OTAsMHgyYywweDAwIH19LAotIHsxNiwgMHhkNWYwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHhjMSwweDAwLDB4OTIsMHgwNCwweDI4LDB4MDAsMHgwYiwweDE0LDB4MTIsMHg0MywweDAwLDB4YjMsMHgwNCB9fSwKLSB7MTYsIDB4ZDYwMCwgMCwgezB4MmMsMHgzMCwweDBhLDB4YjAsMHgwYSwweDhjLDB4MDAsMHg5MywweDAwLDB4NjAsMHhjMCwweDA4LDB4M2MsMHgwNiwweDBlLDB4MDEgfX0sCi0gezE2LCAweGQ2MTAsIDAsIHsweGIzLDB4MDAsMHgyZSwweGMwLDB4OGIsMHgzMCwweDA2LDB4MzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNjIwLCAwLCB7MHgyMCwweDAxLDB4MTIsMHgwMCwweDg3LDB4ODAsMHgyZCwweDI0LDB4MDgsMHg3OCwweDAyLDB4ZDIsMHgwMCwweDk1LDB4ODAsMHgyMSB9fSwKLSB7MTYsIDB4ZDYzMCwgMCwgezB4YTAsMHgwYiwweDY4LDB4MDIsMHg1YSwweDIwLDB4ODcsMHg4MCwweDJkLDB4NjYsMHgxYSwweDdjLDB4MDIsMHg5ZSwweDAwLDB4ODcgfX0sCi0gezE2LCAweGQ2NDAsIDAsIHsweDgwLDB4MjEsMHhlMSwweDE4LDB4NzksMHgwMiwweDllLDB4NDAsMHhiNywweDgwLDB4YTEsMHhlMCwweDBiLDB4NzgsMHgwMiwweDQ4IH19LAotIHsxNiwgMHhkNjUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDAwLDB4MDAsMHhlMywweGEwLDB4M2MsMHg0MCB9fSwKLSB7MTYsIDB4ZDY2MCwgMCwgezB4MGMsMHgzMCwweDAzLDB4YzQsMHgyMiwweGQ5LDB4MDAsMHgzOCwweGQ0LDB4MGYsMHgzMCwweDgzLDB4NjgsMHg0MCwweGYzLDB4MDAgfX0sCi0gezE2LCAweGQ2NzAsIDAsIHsweDNjLDB4ODAsMHgwYSwweDMyLDB4MDIsMHg4YywweDAwLDB4ZGIsMHgwMCwweGEyLDB4YzQsMHgwYywweDMwLDB4MDMsMHgwYywweDAwIH19LAotIHsxNiwgMHhkNjgwLCAwLCB7MHhmMywweDAwLDB4M2MsMHhjMCwweDBmLDB4YjEsMHgwMywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDY5MCwgMCwgezB4NDAsMHgwZCwweGIwLDB4MDAsMHhmZiwweDEwLDB4M2YsMHg0MCwweDBlLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhlZCwweDAwLDB4M2YgfX0sCi0gezE2LCAweGQ2YTAsIDAsIHsweGMwLDB4MGYsMHgzMCwweDEzLDB4YmMsMHg0MCwweDdmLDB4MTAsMHgzZiwweGMxLDB4MmQsMHhmMCwweDAzLDB4N2MsMHgwMCwweGZiIH19LAotIHsxNiwgMHhkNmIwLCAwLCB7MHg0MCwweDNmLDB4YzIsMHgwZSwweGY0LDB4ODMsMHg3YywweDAwLDB4ZGYsMHgwMCwweDNmLDB4YzIsMHgwZiwweGYwLDB4MDMsMHg5MCB9fSwKLSB7MTYsIDB4ZDZjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZGIsMHhhMCwweDMyLDB4YzAgfX0sCi0gezE2LCAweGQ2ZDAsIDAsIHsweDBkLDB4YjcsMHgwMywweGUwLDB4MDAsMHhjYSwweDA0LDB4M2UsMHg4MCwweDBmLDB4YjgsMHgwMywweDJjLDB4MTAsMHhmYiwweDAwIH19LAotIHsxNiwgMHhkNmUwLCAwLCB7MHgzMywweDAwLDB4OGQsMHhiMCwweDAzLDB4MmMsMHg4MCwweGU5LDB4NDAsMHgzZSwweGQyLDB4MGYsMHhiNCwweDAzLDB4MmQsMHg4MCB9fSwKLSB7MTYsIDB4ZDZmMCwgMCwgezB4ZWIsMHgyMCwweGIyLDB4YzAsMHgwZiwweGIyLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3MDAsIDAsIHsweDQ4LDB4MTEsMHg5MCwweDAwLDB4YjcsMHgxMCwweDExLDB4YzAsMHgwOCwweDcwLDB4ODIsMHhkOCwweDBhLDB4ODcsMHgwMSwweDJkIH19LAotIHsxNiwgMHhkNzEwLCAwLCB7MHg4MCwweDg5LDB4NzAsMHgwMywweGQ4LDB4MDgsMHhiNywweDBhLDB4MjEsMHg0MCwweDJjLDB4NzAsMHgwMiwweDBkLDB4YzAsMHg4NSB9fSwKLSB7MTYsIDB4ZDcyMCwgMCwgezB4MDEsMHg3OSwweGM4LDB4MGIsMHgzMiwweDAyLDB4MGQsMHgyMCwweDhmLDB4MjgsMHgyMSwweGMwLDB4MGIsMHg3MiwweDgyLDB4ZDIgfX0sCi0gezE2LCAweGQ3MzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDQwLDB4OTYsMHgxMCwweDk3LDB4OTAsMHgyMywweGUwIH19LAotIHsxNiwgMHhkNzQwLCAwLCB7MHgwOSwweDdhLDB4MDIsMHhkNiwweDAwLDB4OTcsMHg4MCwweDJkLDB4ZjAsMHgwYiwweDc4LDB4ODIsMHgxZSwweDAwLDB4YjMsMHhiMCB9fSwKLSB7MTYsIDB4ZDc1MCwgMCwgezB4MjEsMHhhMCwweDA4LDB4NzgsMHgwMiwweDFlLDB4MDAsMHhhNSwweDgwLDB4MmQsMHhlMCwweDBiLDB4N2EsMHgwMiwweDFlLDB4ODAgfX0sCi0gezE2LCAweGQ3NjAsIDAsIHsweGE3LDB4YjAsMHgyMSwweGU4LDB4MGIsMHg3OSwweDAyLDB4ZjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNzcwLCAwLCB7MHg0OCwweDE0LDB4YzAsMHgwMCwweGIzLDB4MDAsMHgyMCwweGUyLDB4MDgsMHgzMCwweDAyLDB4YzYsMHg0MCwweDkzLDB4NzAsMHgyYyB9fSwKLSB7MTYsIDB4ZDc4MCwgMCwgezB4YzAsMHgwOSwweDNjLDB4MDIsMHg4ZSwweDAwLDB4YjMsMHgwMCwweDIwLDB4ZDgsMHgwOCwweDE4LDB4MDIsMHgwYywweDAwLDB4ODEgfX0sCi0gezE2LCAweGQ3OTAsIDAsIHsweDkwLDB4MmUsMHhjMCwweDBiLDB4MzAsMHgyYSwweDJjLDB4MTAsMHg4MywweDAwLDB4YTAsMHhjMCwweDBiLDB4MzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHhkN2EwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxMSwweGI5LDB4MDAsMHhkYSwweDAyLDB4MzMsMHhiOCB9fSwKLSB7MTYsIDB4ZDdiMCwgMCwgezB4MGQsMHhhMCwweDAzLDB4ZjgsMHgwMCwweGRlLDB4YzAsMHgzZiwweGIwLDB4NGYsMHhlYywweDA2LDB4MzgsMHg0MCwweGZhLDB4MDAgfX0sCi0gezE2LCAweGQ3YzAsIDAsIHsweGIzLDB4OTAsMHgwYywweDZjLDB4MGIsMHgyOCwweDA4LDB4ZWEsMHgwMSwweDdlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHgyOCwweDAwIH19LAotIHsxNiwgMHhkN2QwLCAwLCB7MHhlYSwweDAwLDB4MzIsMHg4MCwweDBmLDB4YTAsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDdlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDQwLDB4M2EsMHgwMCwweDBmLDB4ODQsMHgwMywweGUxLDB4MDAsMHhlOCwweDAyLDB4M2UgfX0sCi0gezE2LCAweGQ3ZjAsIDAsIHsweDAwLDB4MGYsMHg4NCwweDAzLDB4ZTEsMHg0MCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MSwweDAzLDB4ZTAsMHgwMCwweGY4IH19LAotIHsxNiwgMHhkODAwLCAwLCB7MHgwMCwweDNhLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4ZDgxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDIwLDB4ZjksMHhjMCwweDNlLDB4NzAgfX0sCi0gezE2LCAweGQ4MjAsIDAsIHsweDBlLDB4OTAsMHgwMiwweGU0LDB4ODAsMHhjOSwweDAwLDB4MzIsMHg0MiwweDBjLDB4OTgsMHg4MywweGE0LDB4ODQsMHhmOSwweDAwIH19LAotIHsxNiwgMHhkODMwLCAwLCB7MHhiMiwweDYwLDB4MGMsMHg5MCwweDgzLDB4MjQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHgxYSwweDAyLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4ZDg0MCwgMCwgezB4YzEsMHgwMCwweGIyLDB4NDAsMHgwZiwweDkwLDB4MDEsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ4NTAsIDAsIHsweDgwLDB4MDQsMHg2NSwweDAwLDB4YjksMHg4MSwweDJjLDB4NjAsMHgwZCwweDk0LDB4YzIsMHhjNywweDA4LDB4ODksMHgwMCwweDIyIH19LAotIHsxNiwgMHhkODYwLCAwLCB7MHg0MCwweDA4LDB4OTUsMHhjNywweGE0LDB4MDAsMHhiOSwweDAwLDB4MjgsMHg3MCwweGE4LDB4OTQsMHgwYSwweDI0LDB4MDAsMHg4OSB9fSwKLSB7MTYsIDB4ZDg3MCwgMCwgezB4MDQsMHgyZSwweDQwLDB4MjgsMHg5MCwweDJhLDB4MjYsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGQ4ODAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGI5LDB4NDAsMHgyZSwweDQwIH19LAotIHsxNiwgMHhkODkwLCAwLCB7MHgwYSwweDkwLDB4MDIsMHhlNSwweDAwLDB4ODEsMHgwMCwweGEwLDB4NDAsMHgwOSwweDkwLDB4NDIsMHhlYywweDAwLDB4YjEsMHgwMCB9fSwKLSB7MTYsIDB4ZDhhMCwgMCwgezB4MjIsMHg1OCwweDA4LDB4OTAsMHhhMiwweDA0LDB4MDIsMHg4OSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGE0LDB4YTAgfX0sCi0gezE2LCAweGQ4YjAsIDAsIHsweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOGMwLCAwLCB7MHgwOCwweDA0LDB4MDQsMHgwMCwweGIxLDB4MjAsMHgyZSwweGMwLDB4ODksMHgxMiwweDAyLDB4YzQsMHg4MCwweDgxLDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4ZDhkMCwgMCwgezB4NDAsMHg2MSwweDEwLDB4NDIsMHhjNSwweDAwLDB4YjEsMHgyMCwweDI4LDB4NDgsMHgxOCwweDkwLDB4NDIsMHgwNCwweDgwLDB4ODEgfX0sCi0gezE2LCAweGQ4ZTAsIDAsIHsweDI4LDB4MmMsMHg0OCwweDA4LDB4MTIsMHg4MiwweDg0LDB4YTAsMHg4MSwweDIwLDB4MjAsMHg0OCwweDBiLDB4MTIsMHg4MiwweGMyIH19LAotIHsxNiwgMHhkOGYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDY4LDB4MDAsMHhmOCwweDAwLDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4ZDkwMCwgMCwgezB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwOCwweGM4LDB4NTAsMHgzMiwweDE0LDB4MGQsMHg4MCwweDE3LDB4ZTgsMHgwNCwweGY4LDB4NTAgfX0sCi0gezE2LCAweGQ5MTAsIDAsIHsweDMyLDB4MTQsMHg0YywweDA1LDB4MGIsMHgyMSwweDQwLDB4YzgsMHgyMCwweDNlLDB4MDAsMHgwYywweDg3LDB4MDMsMHhhMSwweGMyIH19LAotIHsxNiwgMHhkOTIwLCAwLCB7MHhjOCwweDAwLDB4MzIsMHgxNCwweDhmLDB4ODIsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDkzMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4MDAsMHhmMSwweDEwLDB4M2QsMHg0MCwweDBmLDB4OTEsMHgwMiwweGQ0LDB4NDIsMHhmZCwweDEwLDB4M2YgfX0sCi0gezE2LCAweGQ5NDAsIDAsIHsweDUxLDB4MGUsMHg1NCwweDEzLDB4YjUsMHgwMCwweGY5LDB4MTAsMHgzNSwweDQ0LDB4MmYsMHhkMCwweDAzLDB4ZTQsMHg1MCwweGZkIH19LAotIHsxNiwgMHhkOTUwLCAwLCB7MHgyOCwweDNlLDB4NGUsMHgwZiwweDkwLDB4MDMsMHg2NCwweDAwLDB4ZjksMHgzOCwweDNlLDB4NDQsMHgwZiwweDkyLDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4ZDk2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhmNCwweDAwLDB4ZmQsMHgwMCwweDNkLDB4NDAgfX0sCi0gezE2LCAweGQ5NzAsIDAsIHsweDJjLDB4ZDAsMHgwMywweGI2LDB4MDAsMHhmOSwweDgyLDB4M2UsMHg0MCwweDBjLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmOSwweDgwIH19LAotIHsxNiwgMHhkOTgwLCAwLCB7MHgzMywweDcwLDB4MGMsMHg1MCwweDAzLDB4MzQsMHgwMCwweGM5LDB4YzAsMHgzZSwweDQwLDB4MGMsMHhkYSwweDAzLDB4MTYsMHg4MCB9fSwKLSB7MTYsIDB4ZDk5MCwgMCwgezB4YzksMHg0MCwweDNlLDB4NjIsMHgyYywweDk4LDB4ODMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5YTAsIDAsIHsweDM4LDB4MTAsMHhlMCwweDAwLDB4YjgsMHgwMCwweDJlLDB4MDAsMHgwOCwweDgwLDB4MDIsMHgyOCwweDAwLDB4YjgsMHg1MCwweDI2IH19LAotIHsxNiwgMHhkOWIwLCAwLCB7MHgwMCwweDA4LDB4YTAsMHgwMiwweGU4LDB4MDAsMHhiOCwweDAwLDB4MmEsMHgzNCwweDJhLDB4YWEsMHgwYSwweDIwLDB4MDAsMHg4OCB9fSwKLSB7MTYsIDB4ZDljMCwgMCwgezB4YzAsMHgyZSwweDJhLDB4MDgsMHg4MCwweDIyLDB4MjEsMHgwMCwweGE4LDB4ODAsMHgyZSwweDAwLDB4MDgsMHg4MCwweDAyLDB4MGUgfX0sCi0gezE2LCAweGQ5ZDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMCwweGIxLDB4MDAsMHgyZSwweDQwIH19LAotIHsxNiwgMHhkOWUwLCAwLCB7MHg0OCwweDEwLDB4MDYsMHg4ZCwweDAwLDB4YjEsMHgwMCwweDJjLDB4NDAsMHgyOCwweDEwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHg0MCB9fSwKLSB7MTYsIDB4ZDlmMCwgMCwgezB4MmMsMHg0OCwweDA4LDB4MTAsMHg4MiwweDQ0LDB4MDAsMHg4MSwweDYwLDB4MmMsMHg0MCwweDI4LDB4MTQsMHgwYSwweDA0LDB4NDAgfX0sCi0gezE2LCAweGRhMDAsIDAsIHsweDgxLDB4MjAsMHgyYywweDQwLDB4MDgsMHgxMCwweDAyLDB4MDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYTEwLCAwLCB7MHgxOCwweDA1LDB4YTQsMHg0MCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHhiMCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MjgsMHgyZSB9fSwKLSB7MTYsIDB4ZGEyMCwgMCwgezB4NTAsMHgwOCwweDkwLDB4MjIsMHhlNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NjAsMHgwYiwweDEyLDB4NDIsMHg2NCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGRhMzAsIDAsIHsweDAwLDB4MmMsMHg0MCwweDA5LDB4OTAsMHgwMiwweDI0LDB4MDAsMHhhOSwweDAwLDB4MmMsMHg0MCwweDA4LDB4MTAsMHgwMiwweDQ2IH19LAotIHsxNiwgMHhkYTQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgwNSwweGU2LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MiB9fSwKLSB7MTYsIDB4ZGE1MCwgMCwgezB4MGMsMHg5MCwweDAzLDB4YTcsMHg0MCwweGY5LDB4NDAsMHgzZSwweDcwLDB4MGMsMHg5OCwweDAyLDB4ZTUsMHg0MCwweGY5LDB4MDAgfX0sCi0gezE2LCAweGRhNjAsIDAsIHsweDNlLDB4NDAsMHgwYywweDk4LDB4MDMsMHg2NCwweDA2LDB4YzksMHgwMSwweDJlLDB4NDAsMHgwYywweDkwLDB4MDMsMHgyNCwweDA0IH19LAotIHsxNiwgMHhkYTcwLCAwLCB7MHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwYiwweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGE4MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHg4MywweGU2LDB4MTAsMHhmOSwweDAwLDB4MzYgfX0sCi0gezE2LCAweGRhOTAsIDAsIHsweDY4LDB4MGYsMHg5YywweDAzLDB4ZTYsMHgwMCwweGY5LDB4MDAsMHgzYSwweDQwLDB4MGUsMHg5OCwweDkzLDB4YTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhkYWEwLCAwLCB7MHgwMCwweDNlLDB4NDAsMHgwZSwweDkwLDB4ODMsMHhjNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg4YSB9fSwKLSB7MTYsIDB4ZGFiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDQgfX0sCi0gezE2LCAweGRhYzAsIDAsIHsweDBjLDB4ODAsMHgwMywweDIxLDB4MDIsMHhjOCwweDQwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGUxLDB4MDAsMHhmMCwweDAwIH19LAotIHsxNiwgMHhkYWQwLCAwLCB7MHgzZSwweDAyLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHgwMCwweDAzLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ZGFlMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRhZjAsIDAsIHsweDI4LDB4MTUsMHgzYSwweDAwLDB4YmUsMHgwMiwweDJmLDB4YjAsMHgwOCwweDY4LDB4MTIsMHgzOCwweDAwLDB4OGEsMHgwNCwweDJhIH19LAotIHsxNiwgMHhkYjAwLCAwLCB7MHg4MCwweDBiLDB4ZTAsMHg0MiwweGZiLDB4MjAsMHhiYSwweDAwLDB4MmYsMHg5MSwweDA4LDB4ZTAsMHgwMiwweDI4LDB4MDAsMHhiYSB9fSwKLSB7MTYsIDB4ZGIxMCwgMCwgezB4MDAsMHgyNiwweDgwLDB4MDgsMHhlZSwweDBhLDB4MzgsMHgwMCwweDhhLDB4MDAsMHgyMiwweDgwLDB4MGIsMHhhMCwweDAyLDB4OGEgfX0sCi0gezE2LCAweGRiMjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NDIsMHgwMCwweGIzLDB4MDAsMHgyYywweGMyIH19LAotIHsxNiwgMHhkYjMwLCAwLCB7MHgyOCwweDM4LDB4MGEsMHg0OCwweDAwLDB4ODMsMHgwNCwweDIyLDB4YzAsMHgwYiwweDEwLDB4MDIsMHhjZCwweDgwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4ZGI0MCwgMCwgezB4MmUsMHhjMCwweDA4LDB4MWMsMHgwMiwweDI0LDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDA4LDB4MzQsMHgxMiwweDBlLDB4NDAgfX0sCi0gezE2LCAweGRiNTAsIDAsIHsweDgzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDEyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYjYwLCAwLCB7MHhhMCwweDAxLDB4MTEsMHgwMCwweGI3LDB4MDAsMHgyZiwweGMwLDB4MDgsMHg3MCwweGEyLDB4NGUsMHgwMCwweDhmLDB4YjAsMHgyMSB9fSwKLSB7MTYsIDB4ZGI3MCwgMCwgezB4Y2MsMHgwYiwweDYwLDB4MTIsMHhkYywweDEwLDB4YjcsMHgzMCwweDJkLDB4YzAsMHgwOCwweGQwLDB4ODIsMHgxNCwweDgwLDB4YjcgfX0sCi0gezE2LCAweGRiODAsIDAsIHsweDEyLDB4MjUsMHhjOCwweDI4LDB4NjAsMHgwMiwweDE0LDB4MDAsMHg4NywweGIyLDB4MjEsMHhjYywweDBiLDB4MzEsMHgwMiwweGE4IH19LAotIHsxNiwgMHhkYjkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDEyLDB4MDAsMHhmNywweDgwLDB4M2QsMHhlMCB9fSwKLSB7MTYsIDB4ZGJhMCwgMCwgezB4MGMsMHgzOCwweDAzLDB4NTYsMHgwMCwweGM3LDB4OTAsMHhiMSwweGU0LDB4MGYsMHg3OCwweDAzLDB4ZGUsMHgwMCwweGY3LDB4OTAgfX0sCi0gezE2LCAweGRiYjAsIDAsIHsweDFmLDB4NjAsMHgyYywweDQ4LDB4MGIsMHgxNiwweGEwLDB4ZjcsMHg4MCwweDNjLDB4ZjQsMHgwYywweDM4LDB4MDMsMHgxZSwweDAwIH19LAotIHsxNiwgMHhkYmMwLCAwLCB7MHhjZiwweGEwLDB4YjEsMHhlOCwweDBmLDB4N2IsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGJkMCwgMCwgezB4MDgsMHgwZCwweGEwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHhjMCwweDBiLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmMywweDIxLDB4M2UgfX0sCi0gezE2LCAweGRiZTAsIDAsIHsweGM4LDB4MDcsMHhiMCwweDAyLDB4ZTQsMHgwMCwweGZiLDB4MjAsMHgzZiwweDQwLDB4MGYsMHg4MCwweDAzLDB4ZTQsMHg4MCwweGZiIH19LAotIHsxNiwgMHhkYmYwLCAwLCB7MHgwMCwweDM2LDB4ZDAsMHgwZiwweGEwLDB4MDMsMHhlMCwweDA4LDB4ZmIsMHg0MiwweDNlLDB4ZDgsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ZGMwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmMCwweDgwLDB4Y2YsMHg4MCwweDMxLDB4ZTEgfX0sCi0gezE2LCAweGRjMTAsIDAsIHsweDBjLDB4ZjgsMHgwMywweGRhLDB4MTAsMHhlZiwweDgwLDB4M2YsMHhlNCwweDBmLDB4ZDgsMHgwMywweGZlLDB4MTAsMHhmZiwweDgyIH19LAotIHsxNiwgMHhkYzIwLCAwLCB7MHgzZiwweGUwLDB4NGMsMHhkOCwweDFiLDB4MTYsMHgyMCwweGNmLDB4ODAsMHgzZiwweGUwLDB4NGMsMHhkOCwweDMwLDB4ZWUsMHg0MCB9fSwKLSB7MTYsIDB4ZGMzMCwgMCwgezB4ZmYsMHhjMCwweGIzLDB4ZjQsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRjNDAsIDAsIHsweGE4LDB4MDEsMHg5OCwweDIwLDB4ODMsMHg0MCwweDIxLDB4YzAsMHgwOCwweDcxLDB4MDIsMHhkYywweDg0LDB4ODcsMHgyMCwweDJkIH19LAotIHsxNiwgMHhkYzUwLCAwLCB7MHhjMCwweDBiLDB4NjAsMHgwMiwweGQ5LDB4NjAsMHhmNywweDAwLDB4MmQsMHhjMCwweDA4LDB4ZjAsMHg4MiwweDE0LDB4MDQsMHg4NyB9fSwKLSB7MTYsIDB4ZGM2MCwgMCwgezB4MDAsMHgyZCwweGMwLDB4MDgsMHhmMCwweDAzLDB4MWUsMHgwMCwweGI3LDB4MjAsMHgyMSwweGMwLDB4OGIsMHg3MCwweDAyLDB4ZWEgfX0sCi0gezE2LCAweGRjNzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjAsMHgwMCwweDg3LDB4MDAsMHgyMSwweDgwIH19LAotIHsxNiwgMHhkYzgwLCAwLCB7MHgwOCwweDcwLDB4MDIsMHhmNSwweDA0LDB4MjcsMHgwMCwweDJkLDB4YzAsMHg4YiwweDcwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgwMCB9fSwKLSB7MTYsIDB4ZGM5MCwgMCwgezB4MmMsMHg1MCwweDA4LDB4NDAsMHgwMiwweDE0LDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDA4LDB4NTAsMHgwMiwweDVjLDB4MDQgfX0sCi0gezE2LCAweGRjYTAsIDAsIHsweGI3LDB4MDAsMHhhMSwweGMwLDB4OGIsMHg3MCwweDAyLDB4YzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkY2IwLCAwLCB7MHgyMCwweDE0LDB4YzgsMHgwMCwweDgwLDB4MDAsMHgwMCwweDgwLDB4MDgsMHgzMCwweDAyLDB4Y2UsMHgwMCwweDgzLDB4YzAsMHgyYyB9fSwKLSB7MTYsIDB4ZGNjMCwgMCwgezB4ZDAsMHg0YiwweDMwLDB4MDIsMHhjZSwweDAwLDB4YWIsMHgwMiwweDJjLDB4NDAsMHg0OCwweGJjLDB4MDIsMHgwNCwweDAwLDB4ODMgfX0sCi0gezE2LCAweGRjZDAsIDAsIHsweDAwLDB4MmMsMHhjMCwweDA4LDB4MTAsMHgwMiwweDAwLDB4MDgsMHhiMywweDAwLDB4MjAsMHhjMCwweDA5LDB4MzAsMHgwMiwweGM4IH19LAotIHsxNiwgMHhkY2UwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweDgzLDB4NDAsMHhjOCwweDAwLDB4MzAsMHhjMCB9fSwKLSB7MTYsIDB4ZGNmMCwgMCwgezB4MmMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGVmLDB4ODgsMHgzZiwweGU2LDB4MDcsMHhiMSwweDgzLDB4ZTEsMHgwMCwweGJmLDB4MDAgfX0sCi0gezE2LCAweGRkMDAsIDAsIHsweDNlLDB4ZTAsMHgwYywweGI4LDB4MDMsMHgzNCwweDAwLDB4Y2YsMHgwMCwweDNmLDB4YzAsMHgyYywweGIwLDB4MDMsMHg2OCwweDEwIH19LAotIHsxNiwgMHhkZDEwLCAwLCB7MHhmZiwweDAwLDB4MzMsMHhjMCwweDBmLDB4ZjAsMHgwMywweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGQyMCwgMCwgezB4ODAsMHgwMCwweGU0LDB4MDAsMHhmMSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YjQsMHgwMywweGVkLDB4NDAsMHhmYiwweDA4LDB4M2UgfX0sCi0gezE2LCAweGRkMzAsIDAsIHsweGMwLDB4MGYsMHhhMCwweDAzLDB4ZTUsMHgyMCwweGZiLDB4MDAsMHgzZSwweGUwLDB4MGQsMHhiMCwweDgzLDB4ZTQsMHgwMCwweGYzIH19LAotIHsxNiwgMHhkZDQwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhjNCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweDMwLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4ZGQ1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4Y2EsMHgwMCwweDMzLDB4ZTAgfX0sCi0gezE2LCAweGRkNjAsIDAsIHsweDRlLDB4ZjAsMHgwMywweDM0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4ZTgsMHgwMywweGYwLDB4MDAsMHhmZiwweDAwIH19LAotIHsxNiwgMHhkZDcwLCAwLCB7MHhiMSwweDQwLDB4MGMsMHhlMCwweDAzLDB4MzQsMHgwMCwweGVmLDB4MDAsMHhiMywweGMwLDB4MGMsMHhmMCwweDAzLDB4MzgsMHgwMCB9fSwKLSB7MTYsIDB4ZGQ4MCwgMCwgezB4Y2YsMHgwMCwweDNkLDB4YzAsMHgwYSwweGYwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRkOTAsIDAsIHsweDgxLDB4MDQsMHg2MiwweDIyLDB4ODgsMHg5MCwweDIyLDB4ZTAsMHgwOCwweDNjLDB4MDIsMHgyZSwweDA4LDB4YmIsMHgwMSwweDJlIH19LAotIHsxNiwgMHhkZGEwLCAwLCB7MHhjMCwweDBiLDB4YTAsMHgwMiwweDY2LDB4MDAsMHhiYiwweDAwLDB4MjIsMHhhMCwweDA4LDB4YTksMHgwMiwweDI0LDB4MDAsMHhiYiB9fSwKLSB7MTYsIDB4ZGRiMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MjgsMHgyYywweDAyLDB4YTIsMHgwMCwweGRiLDB4MDAsMHgyZSwweGMwLDB4MGEsMHhiMCwweDAyLDB4YTAgfX0sCi0gezE2LCAweGRkYzAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjIsMHgwMCwweDk4LDB4MDAsMHgyMiwweGM4IH19LAotIHsxNiwgMHhkZGQwLCAwLCB7MHgwYSwweDk4LDB4MDIsMHgyNywweDA0LDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIxLDB4MDIsMHhlMiwweDAwLDB4YmIsMHgwMCB9fSwKLSB7MTYsIDB4ZGRlMCwgMCwgezB4MjIsMHhlMiwweDA4LDB4YjAsMHgwMiwweGE0LDB4MDAsMHhhYiwweDAwLDB4MjAsMHhjMCwweDBhLDB4ODgsMHg4MiwweDIzLDB4MDAgfX0sCi0gezE2LCAweGRkZjAsIDAsIHsweDhiLDB4MDAsMHgyZSwweGMwLDB4MDgsMHhiMCwweDAyLDB4YTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZTAwLCAwLCB7MHgwOCwweDE0LDB4MDQsMHgwMCwweDkxLDB4NDAsMHgyMiwweGMwLDB4MDgsMHgxMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4ZGUxMCwgMCwgezB4YzAsMHg0YiwweDI4LDB4MjIsMHg0MCwweDA0LDB4YjMsMHgwMCwweDIwLDB4YzAsMHgyOCwweDMwLDB4MGEsMHgwNCwweDA0LDB4YjMgfX0sCi0gezE2LCAweGRlMjAsIDAsIHsweDAwLDB4NjAsMHhjMCwweDA4LDB4MDAsMHgwMiwweDg0LDB4MjAsMHg5MywweDAwLDB4MmMsMHhjMCwweDBhLDB4MzAsMHgwMiwweDgyIH19LAotIHsxNiwgMHhkZTMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDYwLDB4MDAsMHhkYSwweDQwLDB4YjIsMHg4MCB9fSwKLSB7MTYsIDB4ZGU0MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGYsMHhhMCwweDAzLDB4ZTAsMHgwOSwweGZmLDB4MDAgfX0sCi0gezE2LCAweGRlNTAsIDAsIHsweDMyLDB4NDAsMHgwOCwweGEwLDB4MGIsMHgzNCwweDAwLDB4ZWIsMHgwMCwweDMxLDB4YzAsMHgwYywweDgwLDB4MDMsMHgyOCwweDgwIH19LAotIHsxNiwgMHhkZTYwLCAwLCB7MHhjNywweDAwLDB4M2YsMHhjMCwweDBjLDB4ZjAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGU3MCwgMCwgezB4YTAsMHgxNSwweGQwLDB4MDAsMHhlYywweDIwLDB4M2YsMHgwMCwweDBmLDB4YzAsMHgwYiwweGZjLDB4MTAsMHhmZiwweDAxLDB4M2YgfX0sCi0gezE2LCAweGRlODAsIDAsIHsweGMwLDB4MGYsMHhlMCwweDAzLDB4ZjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjQsMHgwMCwweGZmIH19LAotIHsxNiwgMHhkZTkwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHg0ZiwweGMwLDB4MDEsMHhmMCwweDA4LDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4ZGVhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4Y2MsMHg5MCwweDM3LDB4MjAgfX0sCi0gezE2LCAweGRlYjAsIDAsIHsweDBlLDB4ZjAsMHgxMywweGJkLDB4MDQsMHhkNCwweGMxLDB4MzMsMHgyYywweDRjLDB4ZDksMHgyMywweDMyLDB4NjAsMHhmZiwweDIwIH19LAotIHsxNiwgMHhkZWMwLCAwLCB7MHgzZCwweGUwLDB4NGYsMHhjMSwweDAzLDB4YjYsMHg0MCwweGNkLDB4MDAsMHgzNywweGUwLDB4MGMsMHhlMiwweDhiLDB4MTAsMHhjMCB9fSwKLSB7MTYsIDB4ZGVkMCwgMCwgezB4Y2QsMHgwMCwweDMzLDB4YzYsMHgwZiwweGQ4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRlZTAsIDAsIHsweDgwLDB4MTAsMHhlZSwweDA4LDB4OGEsMHgyMCwweDIyLDB4MDAsMHgwOCwweGI3LDB4MDIsMHgyZCwweDAwLDB4OGEsMHgwMCwweGI2IH19LAotIHsxNiwgMHhkZWYwLCAwLCB7MHgzYywweDA4LDB4OTksMHgwMiwweDI3LDB4ODQsMHhiZiwweDY4LDB4MmUsMHg4MiwweDBiLDB4MDEsMHgwMiwweDI0LDB4NDAsMHhkOSB9fSwKLSB7MTYsIDB4ZGYwMCwgMCwgezB4NDIsMHgyMCwweGMwLDB4OGEsMHhhYywweDAyLDB4MmQsMHhjMiwweDgyLDB4NDgsMHhhMiwweGQwLDB4MGIsMHg4MiwweDAyLDB4MjAgfX0sCi0gezE2LCAweGRmMTAsIDAsIHsweDA2LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMCwweDg4LDB4MDQsMHgyNiwweDgwIH19LAotIHsxNiwgMHhkZjIwLCAwLCB7MHgyYSwweDMwLDB4YzIsMHhhNSwweDgwLDB4YTksMHgyMSwweDI4LDB4MDAsMHg4YSwweDAwLDB4MDIsMHgwMCwweDAwLDB4YTMsMHgxMCB9fSwKLSB7MTYsIDB4ZGYzMCwgMCwgezB4MmMsMHhjOCwweDBiLDB4MDAsMHgwMiwweGM0LDB4OTAsMHg4MywweDQyLDB4MjQsMHhjMSwweDA4LDB4MDAsMHgwMiwweDQwLDB4ODggfX0sCi0gezE2LCAweGRmNDAsIDAsIHsweGEzLDB4NjAsMHhhOCwweGMwLDB4MGIsMHgwMCwweGMyLDB4MjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZjUwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgwNiwweDhhLDB4MDAsMHgyMiwweGUwLDB4NDgsMHhiMCwweDAyLDB4MmUsMHgwMiwweGFiLDB4ODAsMHgyZSB9fSwKLSB7MTYsIDB4ZGY2MCwgMCwgezB4MjAsMHg0YSwweDhjLDB4MDIsMHgyNiwweDIwLDB4YmIsMHgwMCwweDZlLDB4ODAsMHgwYiwweDMwLDB4YzIsMHg0NiwweDA0LDB4OWIgfX0sCi0gezE2LCAweGRmNzAsIDAsIHsweDBhLDB4YTIsMHhjMCwweDBhLDB4ODAsMHgxMiwweDZjLDB4NDAsMHhhOCwweDAwLDB4MmEsMHhjMCwweDBiLDB4OGMsMHgwMiwweDMwIH19LAotIHsxNiwgMHhkZjgwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhjMSwweDA5LDB4MzYsMHg2MSB9fSwKLSB7MTYsIDB4ZGY5MCwgMCwgezB4MGUsMHgzMiwweDAzLDB4YWIsMHgyMCwweGY4LDB4ODQsMHgzYSwweDc4LDB4MmUsMHg5OCwweDAzLDB4MjYsMHgwMCwweGViLDB4MDAgfX0sCi0gezE2LCAweGRmYTAsIDAsIHsweDNlLDB4NDAsMHg0ZiwweDkwLDB4MDMsMHhlMiwweDAwLDB4YzksMHg0MCwweDM2LDB4ZTAsMHgwYywweGI0LDB4MDMsMHg2ZSwweDAwIH19LAotIHsxNiwgMHhkZmIwLCAwLCB7MHhlYiwweDAwLDB4M2EsMHhjMCwweDBmLDB4ODgsMHgwMywweDEwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGZjMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZmEsMHgxMywweGY4LDB4MTAsMHhkYywweDA0LDB4MjcgfX0sCi0gezE2LCAweGRmZDAsIDAsIHsweDQwLDB4MGQsMHg1MCwweDQzLDB4ZjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkOSwweDAzLDB4YjAsMHgwMCwweGY5IH19LAotIHsxNiwgMHhkZmUwLCAwLCB7MHgwMSwweDNmLDB4ZjAsMHgwZiwweGYwLDB4MjMsMHhiMiwweDAwLDB4ZDQsMHhhMCwweDM3LDB4YzAsMHgwZiwweGMwLDB4MGIsMHhmOCB9fSwKLSB7MTYsIDB4ZGZmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDIwLDB4ZWIsMHgxMCwweGYyLDB4MDAgfX0sCi0gezE2LCAweGUwMDAsIDAsIHsweDBlLDB4YjQsMHgwMywweDIxLDB4ODAsMHhjOSwweDQwLDB4M2EsMHg0OCwweDBmLDB4OTAsMHgxMywweGUxLDB4MjAsMHhmYiwweDAwIH19LAotIHsxNiwgMHhlMDEwLCAwLCB7MHgzZSwweGMwLDB4MGMsMHg4NCwweDAzLDB4MjQsMHgwMCwweGZiLDB4MDEsMHgzNiwweGUwLDB4MGMsMHg3NCwweDBiLDB4OWMsMHgwMCB9fSwKLSB7MTYsIDB4ZTAyMCwgMCwgezB4Y2YsMHgwMCwweDMyLDB4ZTAsMHgwZiwweDg0LDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwMzAsIDAsIHsweGM4LDB4MDUsMHgxZSwweDAwLDB4OGIsMHg4MCwweDIwLDB4NDAsMHgwOCwweGI4LDB4MDIsMHg4MywweDgwLDB4ODEsMHhhMCwweDIyIH19LAotIHsxNiwgMHhlMDQwLCAwLCB7MHg3OCwweDBiLDB4OTEsMHg4MywweGUzLDB4MDAsMHhiZiwweDAwLDB4MGUsMHhjMSwweDBhLDB4YjQsMHgwMywweDY0LDB4MDQsMHhiOSB9fSwKLSB7MTYsIDB4ZTA1MCwgMCwgezB4NTAsMHgzMiwweGMwLDB4MGEsMHhiMiwweDAyLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyMywweGQ0LDB4MGIsMHg4OCwweDAyLDB4ZjIgfX0sCi0gezE2LCAweGUwNjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHg0MiwweGEwLDB4ODAsMHgyMCwweDAwIH19LAotIHsxNiwgMHhlMDcwLCAwLCB7MHg0OCwweDAwLDB4MDIsMHgwZCwweDA2LDB4ODAsMHg4MCwweDJhLDB4ZDAsMHgwMywweDAwLDB4MDIsMHhjOCwweDAwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4ZTA4MCwgMCwgezB4MmMsMHhjMCwweDA4LDB4MzYsMHgwMiwweDQwLDB4MDAsMHhiOSwweDAyLDB4MjIsMHhjMiwweDhiLDB4MjYsMHgwMiwweDBjLDB4MTAgfX0sCi0gezE2LCAweGUwOTAsIDAsIHsweDAxLDB4MDIsMHgyNCwweGMwLDB4NGIsMHhhMSwweDAyLDB4ZjgsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMGEwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwOCwweDhlLDB4ODAsMHgyMSwweDIxLDB4MDgsMHgyOCwweGMyLDB4OWUsMHgwMCwweDhlLDB4ODAsMHgyMSB9fSwKLSB7MTYsIDB4ZTBiMCwgMCwgezB4NjAsMHgwYiwweDc4LDB4MDIsMHg5ZSwweDIwLDB4YjcsMHg4MiwweDJmLDB4YTEsMHgwYSwweDc4LDB4MDIsMHg1ZSwweDAwLDB4YjUgfX0sCi0gezE2LCAweGUwYzAsIDAsIHsweDkxLDB4YTEsMHhlMCwweDBiLDB4MjksMHgwMiwweDMyLDB4NDQsMHg4NiwweDgwLDB4YTUsMHhlMCwweDBiLDB4NGMsMHgwMiwweGM4IH19LAotIHsxNiwgMHhlMGQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhlMSwweDAwLDB4MjIsMHg4MCB9fSwKLSB7MTYsIDB4ZTBlMCwgMCwgezB4MGUsMHgwMCwweDBiLDB4MjQsMHgwMCwweGMwLDB4NDQsMHgyOCwweGFkLDB4MGYsMHgyMCwweDAyLDB4YzgsMHgwMCwweGYzLDB4MDAgfX0sCi0gezE2LCAweGUwZjAsIDAsIHsweDFjLDB4YzAsMHgwYywweDAxLDB4MDMsMHg0OCwweDRjLDB4ZjIsMHgwNCwweDMwLDB4YzAsMHgwZiwweDE1LDB4MDMsMHg4MCwweDQwIH19LAotIHsxNiwgMHhlMTAwLCAwLCB7MHhjMSwweDAwLDB4MTQsMHhjOCwweDBmLDB4MDAsMHgwMywweGRhLDB4MDIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTExMCwgMCwgezB4NDAsMHgxZCwweDljLDB4NDAsMHhmNywweDAwLDB4M2YsMHhjMCwweDhmLDB4YzAsMHgwMywweGU0LDB4MDAsMHhmYSwweDAxLDB4M2YgfX0sCi0gezE2LCAweGUxMjAsIDAsIHsweGMwLDB4MGYsMHhmMCwweDIzLDB4ZmMsMHgwOCwweGZiLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAxLDB4ZmMsMHgxMCwweGZmIH19LAotIHsxNiwgMHhlMTMwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZSwweGQxLDB4MDMsMHhmYywweDQyLDB4ZmUsMHg4MCwweDNiLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4ZTE0MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDQwLDB4YzgsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGUxNTAsIDAsIHsweDBmLDB4OTAsMHgwMywweGVlLDB4MDgsMHhjYiwweDAwLDB4MzIsMHhjMCwweDBmLDB4YTAsMHgyMywweGU2LDB4MDMsMHhjYiwweDRjIH19LAotIHsxNiwgMHhlMTYwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHhiMCwweDA3LDB4ZTgsMHgwMCwweGY5LDB4MDAsMHgxNiwweDQwLDB4MGMsMHhhMCwweDBiLDB4NmMsMHgwMCB9fSwKLSB7MTYsIDB4ZTE3MCwgMCwgezB4Y2YsMHgwMiwweDMyLDB4YzUsMHgwYywweDgwLDB4MDMsMHgwMiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxODAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDgwLDB4ODQsMHgwNCwweDJkLDB4YzEsMHgwYiwweDQwLDB4NDAsMHhkYywweDAwLDB4ODcsMHgwNCwweDIxIH19LAotIHsxNiwgMHhlMTkwLCAwLCB7MHhjMCwweDRiLDB4NzAsMHgxMiwweGZjLDB4MDEsMHg4ZiwweDYwLDB4MjksMHg0MCwweDBiLDB4NzAsMHgxMywweDljLDB4MDAsMHhiNSB9fSwKLSB7MTYsIDB4ZTFhMCwgMCwgezB4MDAsMHhhMywweDQwLDB4MGEsMHg2MCwweDAyLDB4MDAsMHgwMCwweDg0LDB4MDAsMHgyMSwweGMwLDB4MDgsMHg0MCwweDAyLDB4MTIgfX0sCi0gezE2LCAweGUxYjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OGUsMHgwMCwweDg3LDB4ODAsMHgyZCwweGEyIH19LAotIHsxNiwgMHhlMWMwLCAwLCB7MHgwYiwweDRjLDB4MTYsMHhkNiwweDA4LDB4OTcsMHg4OCwweDIxLDB4YTAsMHg0YiwweDY4LDB4MDIsMHhkZSwweDA0LDB4YTcsMHg4MCB9fSwKLSB7MTYsIDB4ZTFkMCwgMCwgezB4MjEsMHhlMCwweDBiLDB4NDgsMHgwMiwweGRhLDB4MDQsMHhiNiwweDgyLDB4MjUsMHg2MCwweDBhLDB4ZTgsMHg2MiwweDFlLDB4MDAgfX0sCi0gezE2LCAweGUxZTAsIDAsIHsweDg3LDB4ODAsMHgyMCwweGU4LDB4MDgsMHg0OCwweDAyLDB4MDgsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMWYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweDhiLDB4ODAsMHg2YywweGYwLDB4MGIsMHgzYywweDAyLDB4Y2UsMHg0NiwweDliLDB4YzAsMHgyMCB9fSwKLSB7MTYsIDB4ZTIwMCwgMCwgezB4ZTQsMHgwYiwweDNjLDB4MDIsMHhjYywweDIwLDB4YTMsMHgwMCwweDI4LDB4ZTAsMHgwYiwweDMwLDB4MDIsMHg4ZCwweDgwLDB4YjEgfX0sCi0gezE2LCAweGUyMTAsIDAsIHsweDgwLDB4MjIsMHg0NCwweDBhLDB4MjEsMHgwYSwweDAzLDB4ODIsMHg4MCwweDgwLDB4YTAsMHhjMCwweDA4LDB4MDYsMHgwYSwweDEyIH19LAotIHsxNiwgMHhlMjIwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDIsMHhjZSwweDgwLDB4M2YsMHhhMCB9fSwKLSB7MTYsIDB4ZTIzMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4ZmEsMHg0MCwweGRlLDB4YzAsMHhiMywweDkwLDB4MGYsMHhlYSwweDEzLDB4ZjksMHgwOCwweGVhLDB4MDQgfX0sCi0gezE2LCAweGUyNDAsIDAsIHsweDMzLDB4ODIsMHg4ZiwweGU0LDB4MDMsMHhmYiwweDA4LDB4ZmUsMHhhMCwweDM2LDB4YTAsMHgwYywweGFjLDB4MGIsMHg2YiwweDgyIH19LAotIHsxNiwgMHhlMjUwLCAwLCB7MHhjNiwweGEwLDB4MzIsMHg4MCwweDJjLDB4ZTQsMHgwMywweDNhLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTI2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDkwLDB4M2UsMHgwMiwweDBmLDB4ODAsMHg4MywweGUxLDB4MDAsMHhlOCwweDIwLDB4M2UgfX0sCi0gezE2LCAweGUyNzAsIDAsIHsweDAzLDB4MGYsMHg4MiwweDAzLDB4ZTEsMHg0MCwweGQ4LDB4MDAsMHgzZSwweDIwLDB4MGYsMHgwMCwweDkzLDB4YTAsMHg0MCwweGY4IH19LAotIHsxNiwgMHhlMjgwLCAwLCB7MHgwMCwweDNlLDB4MTAsMHg4ZiwweDA4LDB4MGIsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4ZTI5MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZTksMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGUyYTAsIDAsIHsweDBmLDB4OTQsMHgwNywweGU2LDB4MDAsMHhmOSwweDgwLDB4YjAsMHg0MCwweDBjLDB4OTQsMHgwMywweGU0LDB4NDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHhlMmIwLCAwLCB7MHgzMiwweDQwLDB4MGYsMHg5NCwweDBiLDB4YTQsMHgwMCwweDcxLDB4YzAsMHgzMiwweDQwLDB4MmMsMHg5NCwweDIzLDB4MjQsMHgwMiB9fSwKLSB7MTYsIDB4ZTJjMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyZDAsIDAsIHsweDgwLDB4MDQsMHg0NCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwYiwweDk4LDB4MDIsMHhlNiwweDYwLDB4YjksMHgwMCwweDIyIH19LAotIHsxNiwgMHhlMmUwLCAwLCB7MHg2MCwweDBhLDB4OWMsMHgwMiwweGU2LDB4MjQsMHhiOSwweDA0LDB4MzYsMHg0MCwweDBiLDB4OTgsMHgwMCwweDI0LDB4MDAsMHhiOSB9fSwKLSB7MTYsIDB4ZTJmMCwgMCwgezB4ODAsMHhhMiwweDUyLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4NDAsMHgyMiwweDQwLDB4NjgsMHg5NCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGUzMDAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMCwweGE5LDB4MDAsMHgyNiwweDQwIH19LAotIHsxNiwgMHhlMzEwLCAwLCB7MHgwMywweDk0LDB4MDIsMHhlNCwweDAxLDB4YjksMHgxMCwweDIyLDB4NTUsMHgwOCwweDkwLDB4MjIsMHhlNCwweDAwLDB4YjEsMHgwMCB9fSwKLSB7MTYsIDB4ZTMyMCwgMCwgezB4MjYsMHg0MCwweDBiLDB4OTAsMHgwMCwweDJjLDB4MDksMHhiOSwweDAwLDB4MjIsMHg2MCwweDA4LDB4OTAsMHgwYSwweDFjLDB4MDQgfX0sCi0gezE2LCAweGUzMzAsIDAsIHsweDhkLDB4MDgsMHhhMCwweDQwLDB4MDgsMHgxMCwweDgyLDB4MGUsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzQwLCAwLCB7MHgwOCwweDA0LDB4MDYsMHgwMCwweDgxLDB4MDAsMHgyMCwweDUwLDB4MGIsMHgxMiwweDQyLDB4YzQsMHg4MCwweGIxLDB4MDQsMHgyMCB9fSwKLSB7MTYsIDB4ZTM1MCwgMCwgezB4NTAsMHgwYSwweDE0LDB4MDIsMHhjNSwweDAwLDB4YjEsMHgyMiwweDI0LDB4NDAsMHgwYiwweDEyLDB4MjIsMHgwNCwweDAxLDB4YjEgfX0sCi0gezE2LCAweGUzNjAsIDAsIHsweDQwLDB4MjAsMHg1MCwweDA4LDB4MTAsMHgwYSwweDE1LDB4MDAsMHg4NSwweDQwLDB4MjgsMHg1MCwweDA4LDB4MTQsMHgwYSwweDBhIH19LAotIHsxNiwgMHhlMzcwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhlOCwweDUwLDB4MzYsMHgwMCB9fSwKLSB7MTYsIDB4ZTM4MCwgMCwgezB4MGYsMHg4NSwweDAyLDB4ZTEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDAwLDB4MGMsMHhhMCwweDIzLDB4ZTAsMHgxMCwweGY4LDB4NTAgfX0sCi0gezE2LCAweGUzOTAsIDAsIHsweGIyLDB4MTQsMHgwZiwweGE1LDB4MDMsMHhhMSwweDQ4LDB4ZmEsMHgwMCwweGIyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyMCwweDA0IH19LAotIHsxNiwgMHhlM2EwLCAwLCB7MHhjNCwweDAyLDB4MzIsMHgwMCwweDBjLDB4MDAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTNiMCwgMCwgezB4OTgsMHgxZCwweGU1LDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZDEsMHgwMywweGQ0LDB4NDQsMHhmNSwweDAwLDB4M2YgfX0sCi0gezE2LCAweGUzYzAsIDAsIHsweDUxLDB4MGYsMHhkNCwweDAzLDB4ZjUsMHgwMCwweGY5LDB4MTAsMHgzYiwweDQwLDB4MGYsMHhkMSwweDAwLDB4ZjUsMHgxMCwweGY1IH19LAotIHsxNiwgMHhlM2QwLCAwLCB7MHg0MCwweDdmLDB4NDAsMHgwZiwweDU0LDB4MmIsMHhlNSwweDAwLDB4ZjksMHg0MCwweDM2LDB4NTAsMHgwZiwweGQwLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4ZTNlMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDEwLDB4YmQsMHg0MCwweDMzLDB4NDAgfX0sCi0gezE2LCAweGUzZjAsIDAsIHsweDBmLDB4ZGEsMHgwMywweDM3LDB4ODAsMHhjZCwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhlOSwweGEwIH19LAotIHsxNiwgMHhlNDAwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHhkZSwweDE3LDB4YTQsMHgwOCwweGZkLDB4YzAsMHgzMywweDQxLDB4OGQsMHhkYSwweDEzLDB4MjYsMHhhMCB9fSwKLSB7MTYsIDB4ZTQxMCwgMCwgezB4ZjksMHhhOCwweDMyLDB4NzgsMHgwYywweGI0LDB4MGIsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0MjAsIDAsIHsweDM4LDB4MTAsMHhlMSwweDAwLDB4YjgsMHhhMCwweDM2LDB4MjAsMHgwYiwweDhhLDB4ODIsMHhhMiwweDgwLDB4MmEsMHhhOCwweDJlIH19LAotIHsxNiwgMHhlNDMwLCAwLCB7MHgwMCwweDBiLDB4ODAsMHgxMiwweGUwLDB4MDQsMHhiOCwweGExLDB4MmUsMHgyOCwweDRhLDB4OGUsMHgwMiwweDJhLDB4YTAsMHhiYSB9fSwKLSB7MTYsIDB4ZTQ0MCwgMCwgezB4YzAsMHgyMiwweDI4LDB4MDgsMHg4NSwweDAyLDB4MjEsMHgwOCwweGI4LDB4ZTgsMHhhMiwweDNjLDB4MDgsMHhjOCwweDAyLDB4MGUgfX0sCi0gezE2LCAweGU0NTAsIDAsIHsweDA2LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzUsMHgwMCwweGI5LDB4MDAsMHgyMCwweDRhIH19LAotIHsxNiwgMHhlNDYwLCAwLCB7MHgwYiwweDE0LDB4MDIsMHgwNSwweDgwLDB4MDEsMHgwMCwweDJjLDB4NDEsMHgwYiwweDEwLDB4MDIsMHhjNCwweDA0LDB4YTEsMHg0YSB9fSwKLSB7MTYsIDB4ZTQ3MCwgMCwgezB4MmUsMHg0MiwweDA4LDB4MTQsMHgwMiwweDg0LDB4MTAsMHhiMSwweDYwLDB4YTAsMHg0YSwweDA5LDB4MTAsMHgwMiwweDQ0LDB4MDAgfX0sCi0gezE2LCAweGU0ODAsIDAsIHsweGI1LDB4MDEsMHgyOSwweDQwLDB4MTgsMHhkMiwweDAyLDB4MTIsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDkwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGI5LDB4MjEsMHgyNiwweDQwLDB4MGIsMHg5NiwweDAyLDB4YTQsMHgxMCwweGE5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ZTRhMCwgMCwgezB4NDAsMHgwYiwweDk2LDB4MTIsMHhlNCwweDIwLDB4YjksMHgwMCwweDJlLDB4NDEsMHgwYSwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGU0YjAsIDAsIHsweDAwLDB4MjIsMHg0MSwweDA4LDB4OTgsMHgyMiwweDY0LDB4MDAsMHhiOSwweDIwLDB4MmIsMHg0MSwweDI4LDB4ZDQsMHgwMiwweDA2IH19LAotIHsxNiwgMHhlNGMwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxMSwweGU0LDB4MDAsMHhmOSwweGUwLDB4MzIsMHg1OCB9fSwKLSB7MTYsIDB4ZTRkMCwgMCwgezB4MGYsMHg5OCwweDAzLDB4MjYsMHg0MCwweGM5LDB4NDAsMHgzZSwweDU4LDB4MGYsMHg5YywweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDAgfX0sCi0gezE2LCAweGU0ZTAsIDAsIHsweDZlLDB4NDAsMHgwYywweDlhLDB4MDIsMHhhNiwweDAwLDB4ZjksMHg0NCwweDMyLDB4NDAsMHgwZCwweDlhLDB4MGIsMHg2NCwweDg0IH19LAotIHsxNiwgMHhlNGYwLCAwLCB7MHhmOSwweDAwLDB4YmEsMHg0MCwweDBjLDB4MTgsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTUwMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg1MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDAsMHhmOSwweDA0LDB4M2UgfX0sCi0gezE2LCAweGU1MTAsIDAsIHsweDQ4LDB4MGYsMHg5MCwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MDAsMHgzZSwweDY1LDB4MGYsMHg5OSwweDgxLDB4ZTQsMHg1MCwweGY5IH19LAotIHsxNiwgMHhlNTIwLCAwLCB7MHgyMCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhhNCwweDgwLDB4ZjksMHgwMCwweDM0LDB4NDAsMHgwZiwweDkyLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4ZTUzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHg0MCwweDNlLDB4MTAgfX0sCi0gezE2LCAweGU1NDAsIDAsIHsweDBlLDB4ODQsMHgwMywweDYwLDB4MDgsMHhjOCwweDAwLDB4M2UsMHgwOCwweDBmLDB4ODAsMHg4MywweGUwLDB4MjgsMHhlOCwweDA0IH19LAotIHsxNiwgMHhlNTUwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4NCwweDAzLDB4MjEsMHgxYywweGYwLDB4NDgsMHgzMiwweDAwLDB4MGIsMHgwMCwweDAzLDB4ZTAsMHgwMiB9fSwKLSB7MTYsIDB4ZTU2MCwgMCwgezB4YzAsMHgwMCwweDMyLDB4MDAsMHgwYywweGMwLDB4MGIsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1NzAsIDAsIHsweDI4LDB4MDUsMHgzOCwweDAwLDB4YjIsMHg4OCwweDJlLDB4ODAsMHgwOCwweGUwLDB4MDMsMHg3YSwweDgwLDB4OGUsMHgwMCwweDJmIH19LAotIHsxNiwgMHhlNTgwLCAwLCB7MHhhMCwweDBiLDB4ZTgsMHgwMiwweGY5LDB4MTAsMHhiYSwweDAwLDB4MmMsMHg4MCwweDI4LDB4ZTQsMHgwMiwweDI4LDB4MDAsMHhiZSB9fSwKLSB7MTYsIDB4ZTU5MCwgMCwgezB4NDAsMHgyMywweGI4LDB4MDgsMHhlOCwweDAyLDB4ZTgsMHgwNCwweGNhLDB4MjAsMHhhMiwweDgwLDB4MDgsMHhlOCwweDAyLDB4MGEgfX0sCi0gezE2LCAweGU1YTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMSwweGIzLDB4MDAsMHgyYywweDQwIH19LAotIHsxNiwgMHhlNWIwLCAwLCB7MHgwOCwweGI4LDB4NDIsMHg2YywweDAyLDB4ODMsMHgwMCwweDJjLDB4ZTAsMHgwYiwweDM4LDB4MDAsMHhjZiwweDQwLDB4YjMsMHgwMCB9fSwKLSB7MTYsIDB4ZTVjMCwgMCwgezB4MmMsMHhjMCwweDA4LDB4YjQsMHgwYSwweDBjLDB4MDAsMHhiMywweDQwLDB4YTIsMHg4MiwweDBhLDB4MzksMHgwMiwweGNjLDB4MDAgfX0sCi0gezE2LCAweGU1ZDAsIDAsIHsweDkzLDB4ODAsMHhhMCwweGMwLDB4MjksMHgyMCwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNWUwLCAwLCB7MHhhMCwweDAxLDB4MWQsMHgwMCwweGI3LDB4MDAsMHgyZCwweDY0LDB4MjgsMHg3NCwweDAyLDB4NDAsMHgwMCwweDg3LDB4MDUsMHgyZCB9fSwKLSB7MTYsIDB4ZTVmMCwgMCwgezB4OTAsMHgwYiwweDc0LDB4MDIsMHhkYywweDEwLDB4YjcsMHgzMCwweDJkLDB4YzgsMHgwOCwweDM0LDB4MDYsMHgxYywweDgwLDB4YjcgfX0sCi0gezE2LCAweGU2MDAsIDAsIHsweDAwLDB4YTEsMHhjMCwweDBhLDB4NzAsMHgwMiwweGRlLDB4ODAsMHg4MywweDAwLDB4MDEsMHgwMCwweDA5LDB4NjAsMHg4MiwweDIwIH19LAotIHsxNiwgMHhlNjEwLCAwLCB7MHgwNCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFhLDB4MDAsMHhmNywweDgwLDB4M2QsMHg2MCB9fSwKLSB7MTYsIDB4ZTYyMCwgMCwgezB4MGUsMHhkOCwweDBiLDB4NWUsMHgwMCwweGM3LDB4ODAsMHgzZCwweGUwLDB4MGYsMHg2OCwweDAzLDB4ZGUsMHgxMCwweGY3LDB4YTkgfX0sCi0gezE2LCAweGU2MzAsIDAsIHsweDdmLDB4ZTgsMHg0OCwweDc4LDB4MDMsMHgxZiwweDMwLDB4ZmYsMHg5NCwweDMzLDB4YTAsMHgwZSwweDc4LDB4MDMsMHhjZiwweDI0IH19LAotIHsxNiwgMHhlNjQwLCAwLCB7MHhkNiwweDgwLDB4YjEsMHhlMCwweDBkLDB4ZjgsMHg0MywweDIyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTY1MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhiYiwweDAwLDB4MGMsMHg0MCwweDBmLDB4YjAsMHgwMywweGVjLDB4MDgsMHhmOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGU2NjAsIDAsIHsweDAwLDB4MGYsMHg5MCwweDQxLDB4ZWMsMHgwMCwweGZiLDB4NjEsMHg3ZSwweGQwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHg4MCwweGZiIH19LAotIHsxNiwgMHhlNjcwLCAwLCB7MHg0MCwweDNmLDB4OWIsMHgwYywweGIwLDB4MDMsMHhlZCwweDkwLDB4ZmEsMHgwMCwweDNjLDB4MDAsMHgwZSwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ZTY4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhkZSwweDAwLDB4ZWYsMHg4MCwweDMzLDB4NjAgfX0sCi0gezE2LCAweGU2OTAsIDAsIHsweDBkLDB4ZDgsMHgwMywweDM2LDB4NDAsMHhlZiwweDkwLDB4M2UsMHhlMCwweDBmLDB4ZjksMHgwMywweGZlLDB4MDAsMHhmZiwweDgwIH19LAotIHsxNiwgMHhlNmEwLCAwLCB7MHgzMywweGZlLDB4MGMsMHhmYSwweDAzLDB4ZmUsMHgwMCwweGNmLDB4ODAsMHhiMywweGUwLDB4MGYsMHhmOCwweDAzLDB4ZmUsMHgwMCB9fSwKLSB7MTYsIDB4ZTZiMCwgMCwgezB4Y2QsMHg4MCwweDMzLDB4ZTAsMHgwZiwweGM4LDB4NDMsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2YzAsIDAsIHsweGE4LDB4MTEsMHg5YywweDAwLDB4ODUsMHgwOCwweDM1LDB4NDAsMHgwOCwweDcwLDB4MDMsMHg1MiwweDIwLDB4ODcsMHgxMSwweDJjIH19LAotIHsxNiwgMHhlNmQwLCAwLCB7MHhlYywweDBiLDB4NzEsMHgwMiwweGQwLDB4MDAsMHhlNywweDAwLDB4MzUsMHhjNCwweDA4LDB4NzQsMHgwMiwweGRjLDB4NDAsMHg4NyB9fSwKLSB7MTYsIDB4ZTZlMCwgMCwgezB4MTAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZmMsMHg4MCwweDg1LDB4MDgsMHgyMSwweDAwLDB4MGIsMHg0MSwweDgyLDB4ZWEgfX0sCi0gezE2LCAweGU2ZjAsIDAsIHsweDA2LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTgsMHgwMCwweGFmLDB4MDAsMHgyMywweDUwIH19LAotIHsxNiwgMHhlNzAwLCAwLCB7MHgwOSwweDUwLDB4MDIsMHgxYywweDgwLDB4YTcsMHgwMSwweDI5LDB4YzAsMHgxYiwweDYwLDB4MDYsMHhkYywweDQwLDB4YjcsMHgxMCB9fSwKLSB7MTYsIDB4ZTcxMCwgMCwgezB4MjEsMHhjOCwweDRhLDB4NTIsMHgwMiwweGRjLDB4MDAsMHg4MywweDAwLDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGRjLDB4MTMgfX0sCi0gezE2LCAweGU3MjAsIDAsIHsweDg0LDB4MDAsMHgyNSwweGMwLDB4MGIsMHg1OCwweDAyLDB4YzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzMwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwMCwweDgxLDB4ODAsMHgyNCwweDQwLDB4MDgsMHgzZSwweDAyLDB4NmUsMHgwMCwweDg5LDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4ZTc0MCwgMCwgezB4YzAsMHgwYiwweGI0LDB4MDIsMHhjYSwweDgwLDB4YTMsMHgwMCwweDI0LDB4YzAsMHgwYSwweDA0LDB4MDIsMHhlYywweDQwLDB4ODIgfX0sCi0gezE2LCAweGU3NTAsIDAsIHsweDBhLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNkLDB4MTAsMHg4MCwweGMwLDB4YTQsMHgwMCwweDBiLDB4MWMsMHgwMiwweGM4IH19LAotIHsxNiwgMHhlNzYwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweDg0LDB4MDAsMHhlYiwweDgwLDB4MzMsMHg0MCB9fSwKLSB7MTYsIDB4ZTc3MCwgMCwgezB4MGQsMHg4YywweDgzLDB4MjYsMHgwMCwweGU5LDB4YTAsMHgzZSwweDc4LDB4OGYsMHg5MCwweDgzLDB4ZTEsMHgwMCwweGZmLDB4MDAgfX0sCi0gezE2LCAweGU3ODAsIDAsIHsweDMxLDB4ZDEsMHgwZSwweDg0LDB4MjMsMHhmYywweDAwLDB4Y2IsMHg4MiwweDMyLDB4YzAsMHg4ZiwweGIwLDB4MDIsMHhmZCwweDQwIH19LAotIHsxNiwgMHhlNzkwLCAwLCB7MHhjYiwweDgwLDB4YjYsMHhjMCwweDBmLDB4YTQsMHgwMywweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTdhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4YTAsMHgwMywweGUwLDB4MDAsMHhmOSwweDAxLDB4M2UgfX0sCi0gezE2LCAweGU3YjAsIDAsIHsweDQyLDB4MGYsMHg5MCwweDAzLDB4ZTUsMHg1NCwweGUzLDB4MDAsMHgzZSwweGM4LDB4MDUsMHg5MywweDAzLDB4ZWMsMHg4MCwweGZiIH19LAotIHsxNiwgMHhlN2MwLCAwLCB7MHhjMSwweDNlLDB4YzAsMHgwZiwweDIwLDB4MDMsMHhjYywweDQ4LDB4ZjMsMHgwOCwweDNhLDB4MDAsMHgwZiwweGEwLDB4NDMsMHhlMCB9fSwKLSB7MTYsIDB4ZTdkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4Y2YsMHgwMCwweDNmLDB4NDAgfX0sCi0gezE2LCAweGU3ZTAsIDAsIHsweDBmLDB4MzAsMHgwMSwweDJjLDB4MGEsMHhjZCwweDEwLDB4MzMsMHgwMCwweDBmLDB4ZDAsMHg4MywweDE0LDB4MDAsMHhjYiwweDAyIH19LAotIHsxNiwgMHhlN2YwLCAwLCB7MHgzMywweGMwLDB4MGMsMHhlMSwweDAzLDB4ZWMsMHgxMCwweGNkLDB4MDAsMHgzMywweGMwLDB4MGMsMHhmMCwweDMzLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4ZTgwMCwgMCwgezB4ZWEsMHgwMCwweDMzLDB4YzAsMHgwYywweGYwLDB4ODMsMHhjOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4MTAsIDAsIHsweDgxLDB4MDQsMHg2ZSwweDAwLDB4OGIsMHgwMCwweDJlLDB4NDAsMHgwYiwweGJjLDB4MDIsMHgyZSwweDAwLDB4MGIsMHgwMCwweDIyIH19LAotIHsxNiwgMHhlODIwLCAwLCB7MHgzMCwweDBiLDB4OWMsMHgwMiwweDI3LDB4ODAsMHhhYiwweDAwLDB4MmEsMHhjMCwweDA4LDB4YjgsMHgwMiwweGVjLDB4MDAsMHg4OSB9fSwKLSB7MTYsIDB4ZTgzMCwgMCwgezB4YzAsMHgyMCwweGUwLDB4MDgsMHhhZSwweDAyLDB4MmMsMHgwOCwweDhhLDB4MDAsMHgyMiwweDAwLDB4MDgsMHhiMCwweDQyLDB4ZTggfX0sCi0gezE2LCAweGU4NDAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmUsMHgwMCwweDhiLDB4MDQsMHgyZSwweDQwIH19LAotIHsxNiwgMHhlODUwLCAwLCB7MHg4YiwweDhjLDB4MDIsMHhhZSwweDEwLDB4ODksMHgwMCwweDIyLDB4NzAsMHgwYiwweDhjLDB4MDIsMHhhMiwweDAwLDB4OGIsMHgwMSB9fSwKLSB7MTYsIDB4ZTg2MCwgMCwgezB4MjIsMHhjMCwweDA4LDB4ODAsMHgwMiwweGVjLDB4MTAsMHg4MiwweDg4LDB4YTIsMHg3MCwweDA5LDB4YjgsMHgwMiwweDJjLDB4MDggfX0sCi0gezE2LCAweGU4NzAsIDAsIHsweDg5LDB4MDAsMHgyMCwweGMwLDB4MjgsMHg4MCwweDIyLDB4ZTAsMHgxMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODgwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwNCwweDgxLDB4MDAsMHgyYywweDQwLDB4MGIsMHgyMCwweDAyLDB4ODAsMHgwMCwweDgxLDB4MDQsMHhhMCB9fSwKLSB7MTYsIDB4ZTg5MCwgMCwgezB4NTAsMHg0YiwweDAwLDB4MGEsMHg4MCwweDAwLDB4YTMsMHgwMSwweDJhLDB4YzEsMHgyMCwweDEwLDB4MDIsMHhjYywweDE0LDB4ODMgfX0sCi0gezE2LCAweGU4YTAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDA4LDB4MjAsMHgwMiwweDBjLDB4MDAsMHg4MSwweDAwLDB4ZTAsMHgwMCwweDA4LDB4MDAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhlOGIwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY4LDB4MDAsMHhjYiwweDAwLDB4M2UsMHg0MCB9fSwKLSB7MTYsIDB4ZThjMCwgMCwgezB4MGYsMHg5MCwweDBiLDB4YWMsMHg4MCwweGM5LDB4MDAsMHgzMiwweDEwLDB4MGYsMHg4MCwweDAzLDB4YTQsMHgwMCwweGNmLDB4MDIgfX0sCi0gezE2LCAweGU4ZDAsIDAsIHsweDMxLDB4YzAsMHgwYywweDgwLDB4MTMsMHhmYywweDAyLDB4Y2QsMHgwMCwweDMzLDB4YzAsMHgyYywweDkwLDB4MDMsMHgzYywweDAyIH19LAotIHsxNiwgMHhlOGUwLCAwLCB7MHhlOCwweDAwLDB4YjIsMHhjMCwweDBjLDB4OTAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZThmMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDIsMHhmNSwweDAwLDB4M2QsMHg0MCwweDhmLDB4ZjAsMHgyMywweDZkLDB4MDAsMHhmZiwweDAwLDB4M2YgfX0sCi0gezE2LCAweGU5MDAsIDAsIHsweDA0LDB4MGYsMHhjMCwweDAzLDB4NzAsMHgxYywweGZmLDB4MDEsMHgzZiwweGMwLDB4NGYsMHhjMCwweDAzLDB4ZmMsMHgwMCwweGZkIH19LAotIHsxNiwgMHhlOTEwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweGUwLDB4MGYsMHhmYywweDE4LDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgwZiwweGQwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4ZTkyMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4ZDcsMHgwMiwweDBmLDB4MzAgfX0sCi0gezE2LCAweGU5MzAsIDAsIHsweDBjLDB4ZjIsMHgwMSwweDdlLDB4MDYsMHg0NCwweDMwLDB4M2YsMHgyMCwweDBlLDB4ZjAsMHgwMiwweDdjLDB4ODQsMHhmZCwweDIwIH19LAotIHsxNiwgMHhlOTQwLCAwLCB7MHgyNywweDA4LDB4MGMsMHhkMCwweDAxLDB4MzYsMHgwMCwweGZmLDB4NjAsMHgzMywweGNjLDB4MGIsMHhmMSwweDEzLDB4MmMsMHhjNCB9fSwKLSB7MTYsIDB4ZTk1MCwgMCwgezB4ZmYsMHgzMCwweDBmLDB4Y2QsMHgwYywweGY0LDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5NjAsIDAsIHsweDgwLDB4MTAsMHhlZSwweDAwLDB4OGYsMHhjMCwweDJlLDB4MDAsMHgwOCwweGZjLDB4MDIsMHgyZSwweDAwLDB4OGEsMHgzMCwweDI4IH19LAotIHsxNiwgMHhlOTcwLCAwLCB7MHg1MiwweDA4LDB4ZjYsMHg4MiwweDNjLDB4NjgsMHhiZCwweDkwLDB4MzIsMHgzNCwweDQ4LDB4OWMsMHgxMiwweDI2LDB4MDAsMHhjZiB9fSwKLSB7MTYsIDB4ZTk4MCwgMCwgezB4NDAsMHgyMywweGNjLDB4MGIsMHhmNiwweDAyLDB4M2QsMHgwMCwweGJmLDB4MTAsMHgyZiwweGNjLDB4ODgsMHhmNiwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGU5OTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwMCwweDkzLDB4MTAsMHgyYywweDA4IH19LAotIHsxNiwgMHhlOWEwLCAwLCB7MHgwOSwweDMxLDB4MDIsMHg0YywweDAwLDB4OWIsMHgyMCwweDY0LDB4NTgsMHgwMywweDMxLDB4NjIsMHg0YywweDgxLDB4YTEsMHgwMCB9fSwKLSB7MTYsIDB4ZTliMCwgMCwgezB4MjAsMHgwMCwweDQ4LDB4MTQsMHgwMiwweDQ0LDB4MDAsMHg5MywweDMwLDB4MjQsMHhjMCwweDBiLDB4MzMsMHgwMiwweDhkLDB4ODQgfX0sCi0gezE2LCAweGU5YzAsIDAsIHsweGIzLDB4MjAsMHg2YywweGMwLDB4MmEsMHgzNiwweDAyLDB4ZTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOWQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHgxMCwweDliLDB4MDIsMHgyZSwweDQxLDB4MGIsMHhiMCwweDAyLDB4YTQsMHgwMCwweDlhLDB4MDAsMHg0YSB9fSwKLSB7MTYsIDB4ZTllMCwgMCwgezB4NjAsMHg4OCwweGIwLDB4NTIsMHg2YywweDAxLDB4YjksMHgwMCwweDI2LDB4MDAsMHgwOCwweDkxLDB4MjIsMHhlYywweDA4LDB4YmIgfX0sCi0gezE2LCAweGU5ZjAsIDAsIHsweDAwLDB4MjYsMHhjMCwweDBiLDB4YjAsMHgwMiwweGFjLDB4MDAsMHhiYiwweDA1LDB4NmUsMHhjMSwweDBhLDB4YjAsMHgwMiwweGYwIH19LAotIHsxNiwgMHhlYTAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhkYiwweDAxLDB4M2UsMHgzMCB9fSwKLSB7MTYsIDB4ZWExMCwgMCwgezB4MmQsMHgzMCwweDAzLDB4NDcsMHg2MCwweGQ4LDB4YTAsMHgxNiwweDM4LDB4OGYsMHhiMCwweDAzLDB4NmMsMHgwMCwweDc5LDB4MDIgfX0sCi0gezE2LCAweGVhMjAsIDAsIHsweDMxLDB4NjAsMHgwYywweGM4LDB4MGEsMHg2NiwweDAwLDB4YmIsMHgwMCwweGI2LDB4YzAsMHgwZiwweGIwLDB4MGIsMHhhYywweDAwIH19LAotIHsxNiwgMHhlYTMwLCAwLCB7MHhmYiwweDAxLDB4M2UsMHhjMSwweDBlLDB4YjAsMHgwMywweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWE0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MTAsMHhlZiwweDA4LDB4M2YsMHgyNCwweDBjLDB4ZjAsMHgwMywweDc2LDB4MjAsMHhlZSwweDkwLDB4MzUgfX0sCi0gezE2LCAweGVhNTAsIDAsIHsweDQwLDB4MGUsMHg3MCwweDAzLDB4YWMsMHgwMCwweGZkLDB4MDAsMHhiYiwweDY0LDB4MGYsMHg4OCwweDEzLDB4MzQsMHg4MCwweGNiIH19LAotIHsxNiwgMHhlYTYwLCAwLCB7MHgwMCwweDNiLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg2YywweDA4LDB4ZmYsMHgwMCwweDNlLDB4YzAsMHgwZCwweGYwLDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4ZWE3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAxLDB4ZmIsMHg4MCwweDMyLDB4MTAgfX0sCi0gezE2LCAweGVhODAsIDAsIHsweDBlLDB4YjAsMHgwMywweGVkLDB4MDAsMHhjYiwweDUwLDB4M2UsMHg0MCwweDhjLDB4YjAsMHg0MywweDJjLDB4MTAsMHhmOSwweDAwIH19LAotIHsxNiwgMHhlYTkwLCAwLCB7MHgzMiwweDYwLDB4MGMsMHg0MCwweDBiLDB4MjYsMHgwMCwweGMzLDB4MDQsMHgzNiwweGMwLDB4MGMsMHgzMCwweDAzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4ZWFhMCwgMCwgezB4OWIsMHgwMCwweGIwLDB4YzAsMHgwYywweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhYjAsIDAsIHsweGM4LDB4MDUsMHgwZSwweDgwLDB4YmYsMHgwNCwweDJhLDB4NDAsMHgwMCwweGY1LDB4MDAsMHhlNiwweDAwLDB4ODIsMHhkMiwweDIyIH19LAotIHsxNiwgMHhlYWMwLCAwLCB7MHg0MCwweDBkLDB4ZjAsMHgyMiwweDNjLDB4MDAsMHg5NSwweDAyLDB4MzYsMHg0MCwweDBhLDB4ODAsMHgwMiwweDJlLDB4MDAsMHg4ZiB9fSwKLSB7MTYsIDB4ZWFkMCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGEsMHhmMCwweDQyLDB4M2MsMHgwMCwweDhmLDB4MDAsMHgyMywweGMwLDB4MjgsMHhmMCwweDAyLDB4ZjIgfX0sCi0gezE2LCAweGVhZTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGUsMHgwMCwweGIzLDB4MDAsMHgyMiwweDIwIH19LAotIHsxNiwgMHhlYWYwLCAwLCB7MHg0YSwweDMwLDB4MDAsMHhjYywweDAwLDB4ODEsMHhjMCwweDI4LDB4MDAsMHgwOCwweDMwLDB4MDIsMHgwYywweDEwLDB4YTEsMHgwMCB9fSwKLSB7MTYsIDB4ZWIwMCwgMCwgezB4MjgsMHg4MCwweDE4LDB4MzAsMHgyMiwweDA0LDB4MDQsMHg4MywweDAwLDB4MjQsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNjLDB4MDggfX0sCi0gezE2LCAweGViMTAsIDAsIHsweDkzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDA2LDB4ZjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjIwLCAwLCB7MHgyMCwweDAxLDB4MWUsMHgwMCwweGI3LDB4ODAsMHgyOSwweGEwLDB4MDgsMHg3OCwweDAyLDB4ZmUsMHgyMCwweDhkLDB4ODAsMHgyOSB9fSwKLSB7MTYsIDB4ZWIzMCwgMCwgezB4ZTUsMHg1YiwweDM4LDB4NDIsMHgxZSwweDQwLDB4YTEsMHg4MSwweDI1LDB4YTgsMHgwOCwweDc5LDB4MDIsMHgzNywweDAwLDB4ODcgfX0sCi0gezE2LCAweGViNDAsIDAsIHsweDgwLDB4MjUsMHhlMCwweDBhLDB4NzgsMHgwYSwweGRlLDB4ODEsMHg4NywweDgwLDB4MjUsMHhlNSwweDQ4LDB4NzgsMHgwMiwweGM4IH19LAotIHsxNiwgMHhlYjUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHhiMywweDEwLDB4MzAsMHgxMiB9fSwKLSB7MTYsIDB4ZWI2MCwgMCwgezB4MGUsMHgzMCwweDEyLDB4Y2MsMHhjMCwweGMzLDB4MDAsMHgzOCwweDgwLDB4MGMsMHgzMSwweDA2LDB4MGMsMHg0MCwweGYxLDB4MDAgfX0sCi0gezE2LCAweGViNzAsIDAsIHsweDM4LDB4ODAsMHgwYywweDMwLDB4NDMsMHgwNCwweDQyLDB4YzMsMHgwMCwweDM2LDB4YzAsMHgwYywweDMyLDB4MDMsMHhjZSwweGMwIH19LAotIHsxNiwgMHhlYjgwLCAwLCB7MHhkYiwweDAwLDB4MzAsMHhjMCwweDBjLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWI5MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDEwLDB4M2QsMHg4NCwweDRmLDB4ZjEsMHgwMywweGQwLDB4NDAsMHhmYywweDEwLDB4MzMgfX0sCi0gezE2LCAweGViYTAsIDAsIHsweDgwLDB4NWQsMHhiMSwweDgzLDB4ZmMsMHg1MCwweGRkLDB4MGEsMHgyNSwweDg5LDB4MGYsMHhiOCwweDAzLDB4ZDQsMHgwMCwweGZmIH19LAotIHsxNiwgMHhlYmIwLCAwLCB7MHgxMCwweDNmLDB4YzAsMHgwZiwweGY0LDB4MDMsMHgzYywweDQwLDB4ZmYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4ZWJjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZmIsMHgyMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGViZDAsIDAsIHsweDBmLDB4YjUsMHgwMywweDI5LDB4MjAsMHhmOSwweDAwLDB4MzIsMHhhMCwweDBjLDB4YjAsMHg4MywweGVjLDB4MDAsMHg0OSwweGM4IH19LAotIHsxNiwgMHhlYmUwLCAwLCB7MHhiMiwweGMwLDB4OGMsMHhhMCwweDAzLDB4NjQsMHgwMCwweGZiLDB4MDgsMHgxMiwweGVhLDB4MGMsMHhiMCwweDBiLDB4MmMsMHg4MCB9fSwKLSB7MTYsIDB4ZWJmMCwgMCwgezB4ZmIsMHgyMCwweDJlLDB4ZDIsMHg2YywweGI2LDB4NDMsMHhlYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjMDAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDAwLDB4YjcsMHg0OSwweDJkLDB4MDAsMHgwYiwweDMwLDB4ODIsMHgxMCwweDAxLDB4YjUsMHgwMiwweDgzIH19LAotIHsxNiwgMHhlYzEwLCAwLCB7MHhjMCwweDFhLDB4NzIsMHgyMiwweGRkLDB4NDEsMHg4NSwweDAwLDB4NjEsMHhjMCwweDE4LDB4MjAsMHgyMCwweDE0LDB4MDAsMHhiZiB9fSwKLSB7MTYsIDB4ZWMyMCwgMCwgezB4NDAsMHgzNSwweGQwLDB4MGQsMHgzNCwweDAyLDB4MWQsMHgyMCwweGI3LDB4MjgsMHgyNSwweGMxLDB4MDgsMHg3NCwweDgyLDB4ZDIgfX0sCi0gezE2LCAweGVjMzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwNCwweDM3LDB4YTAsMHgyZCwweDIwIH19LAotIHsxNiwgMHhlYzQwLCAwLCB7MHgwYiwweDdhLDB4MTIsMHgxNiwweDAxLDB4YjMsMHg4MCwweDIxLDB4ZTIsMHgwOCwweDc4LDB4NDIsMHg5ZSwweDAwLDB4ODUsMHg4MCB9fSwKLSB7MTYsIDB4ZWM1MCwgMCwgezB4MjAsMHhlMSwweDE4LDB4NjgsMHgwMiwweDU2LDB4MDAsMHhiNywweGEwLDB4MjUsMHhlMCwweDA4LDB4N2EsMHgwMiwweDFlLDB4MDAgfX0sCi0gezE2LCAweGVjNjAsIDAsIHsweGI3LDB4OTAsMHgyYywweGU1LDB4ODgsMHg3YSwweDAyLDB4ZjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzcwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweGIzLDB4MDAsMHg2YywweDI0LDB4MWIsMHgzMCwweDAyLDB4MDAsMHgwMCwweGIwLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4ZWM4MCwgMCwgezB4ZjgsMHgwYSwweDMwLDB4MDIsMHhjYywweDAwLDB4ODEsMHgwMCwweDIwLDB4ZDgsMHgxOCwweDIwLDB4MDIsMHgwNCwweDAwLDB4YjMgfX0sCi0gezE2LCAweGVjOTAsIDAsIHsweDAwLDB4MjQsMHhjMCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MjYsMHhjMCwweDA4LDB4MzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHhlY2EwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDAsMHhmYSwweDAwLDB4M2QsMHg4MCB9fSwKLSB7MTYsIDB4ZWNiMCwgMCwgezB4MGYsMHgyMCwweDBiLDB4MjgsMHg4MCwweGZlLDB4MDAsMHgzMywweGEwLDB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMiwweGNhLDB4MDIgfX0sCi0gezE2LCAweGVjYzAsIDAsIHsweDMyLDB4OTAsMHgyYywweGU0LDB4MDMsMHg3OCwweDAwLDB4ZmEsMHgwMCwweDMyLDB4ODAsMHgwYywweGEwLDB4MDMsMHgyOCwweDAwIH19LAotIHsxNiwgMHhlY2QwLCAwLCB7MHhmYSwweDAwLDB4M2UsMHg4MCwweDBjLDB4YTAsMHgwMywweGZhLDB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWNlMCwgMCwgezB4NDgsMHgwMCwweGUxLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDRmLDB4ODAsMHgwMywweGUwLDB4ODAsMHhmOCwweDAwLDB4M2UgfX0sCi0gezE2LCAweGVjZjAsIDAsIHsweDAwLDB4MGYsMHg4MCwweDIzLDB4YzAsMHgwMCwweGY4LDB4MDIsMHgzYywweDAwLDB4MGYsMHhjMCwweDgzLDB4NjAsMHgwMCwweGI4IH19LAotIHsxNiwgMHhlZDAwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MjMsMHhlMCwweDE4LDB4ZjgsMHgwMSwweDM2LDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4ZWQxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNiwweDAwLDB4ZjksMHgyMSwweDMyLDB4NjAgfX0sCi0gezE2LCAweGVkMjAsIDAsIHsweDBjLDB4OTAsMHgwMywweDJjLDB4NDQsMHhmOSwweDAwLDB4YjIsMHg0MCwweDBmLDB4OTAsMHgxYiwweDI0LDB4MDAsMHhlOSwweDAwIH19LAotIHsxNiwgMHhlZDMwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHgxMCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MGYsMHgxMCwweDMzLDB4MjQsMHgxMCB9fSwKLSB7MTYsIDB4ZWQ0MCwgMCwgezB4ZjEsMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkNTAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHg0MCwweGEyLDB4NDEsMHgwOCwweDkwLDB4MDIsMHgyNCwweDgwLDB4ZTksMHgwMCwweDIyIH19LAotIHsxNiwgMHhlZDYwLCAwLCB7MHg0MCwweDBiLDB4OTAsMHgxMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg0MSwweDE4LDB4OTAsMHg0MiwweDI0LDB4MDAsMHhiOSB9fSwKLSB7MTYsIDB4ZWQ3MCwgMCwgezB4MDQsMHgyYSwweDQxLDB4MGIsMHg5MCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MDAsMHgyYSwweDQwLDB4MGEsMHg5MCwweDBhLDB4MjAgfX0sCi0gezE2LCAweGVkODAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4MjQsMHg4MCwweGI5LDB4NDIsMHg2MiwweDQ4IH19LAotIHsxNiwgMHhlZDkwLCAwLCB7MHgyOCwweDkwLDB4MGEsMHgyNCwweDAwLDB4YjEsMHgwMCwweDIyLDB4NDAsMHgwYiwweDEwLDB4MDIsMHgyNCwweDEwLDB4YjksMHgwMiB9fSwKLSB7MTYsIDB4ZWRhMCwgMCwgezB4MmUsMHg0MCwweDA4LDB4ZDAsMHgwMiwweGE0LDB4MDAsMHhiMSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweDI0LDB4MDQgfX0sCi0gezE2LCAweGVkYjAsIDAsIHsweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHgxMCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZGMwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMCwweGIxLDB4MjAsMHg2MCwweDQwLDB4MDgsMHgxMiwweDAyLDB4MDQsMHgwMCwweGExLDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4ZWRkMCwgMCwgezB4NDAsMHgwYiwweDEyLDB4MDIsMHgwNCwweDgwLDB4OTEsMHgyMCwweDJkLDB4NjgsMHgwOCwweDUyLDB4MTIsMHgwNCwweDAwLDB4YjEgfX0sCi0gezE2LCAweGVkZTAsIDAsIHsweDI4LDB4MjgsMHg0YSwweDA5LDB4MTIsMHg4MiwweDQ0LDB4YTAsMHhiMSwweDJjLDB4MjgsMHg0YSwweDBhLDB4MTIsMHg4MiwweDAyIH19LAotIHsxNiwgMHhlZGYwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhmOCwweDAwLDB4MzIsMHgxNCB9fSwKLSB7MTYsIDB4ZWUwMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGY4LDB4NTAsMHgzMiwweDE0LDB4MGYsMHg4NSwweDAzLDB4MDEsMHg0MCwweGY4LDB4MDAgfX0sCi0gezE2LCAweGVlMTAsIDAsIHsweDJlLDB4MDAsMHgyOCwweGMwLDB4MDMsMHhhMCwweDAwLDB4ZjgsMHgyNCwweDMwLDB4MDgsMHgwZiwweDgyLDB4MjMsMHgyMCwweDgwIH19LAotIHsxNiwgMHhlZTIwLCAwLCB7MHhmOCwweDIwLDB4MzIsMHgwOCwweDBjLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWUzMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4MDgsMHhmOSwweDEwLDB4M2YsMHg0MCwweDhmLDB4OTEsMHgxMywweGU0LDB4MDAsMHhlZCwweDEwLDB4M2YgfX0sCi0gezE2LCAweGVlNDAsIDAsIHsweDUwLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGE1LDB4MTAsMHgzZSwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZjQsMHgwNCwweGY5IH19LAotIHsxNiwgMHhlZTUwLCAwLCB7MHgyOCwweDNlLDB4NGIsMHgwYiwweDkyLDB4YTMsMHhlNCwweGEwLDB4ZTksMHgyOCwweDNlLDB4NGEsMHgwZiwweDkyLDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4ZWU2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNCwweDAwLDB4Y2QsMHgwMCwweDMzLDB4NDAgfX0sCi0gezE2LCAweGVlNzAsIDAsIHsweDgwLDB4ZDAsMHgwMSwweGY0LDB4MDAsMHhhNSwweDAwLDB4MjYsMHg0MCwweDBmLDB4OTAsMHgwMywweDI2LDB4MDAsMHhmMSwweDg4IH19LAotIHsxNiwgMHhlZTgwLCAwLCB7MHgzZSwweDY4LDB4MGQsMHg5OCwweDgzLDB4NDQsMHgwMCwweGM5LDB4YzAsMHgzYSwweDQwLDB4MGMsMHg5OCwweDAzLDB4MjQsMHgwOCB9fSwKLSB7MTYsIDB4ZWU5MCwgMCwgezB4ZjksMHhhMCwweDMyLDB4NzgsMHgwZiwweDlhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlYTAsIDAsIHsweDM4LDB4MTAsMHhlMCwweDAyLDB4ODgsMHgwMCwweGEyLDB4MDAsMHgwOCwweDgwLDB4MDIsMHhlMCwweDAwLDB4MGEsMHgwMCwweDIyIH19LAotIHsxNiwgMHhlZWIwLCAwLCB7MHgwMCwweDBiLDB4ODAsMHgwMiwweDIwLDB4MDAsMHhiOCwweDQwLDB4MmUsMHgxNCwweDA4LDB4ODAsMHg0MywweDMwLDB4MDAsMHg4OCB9fSwKLSB7MTYsIDB4ZWVjMCwgMCwgezB4YTAsMHgyMiwweDJhLDB4MGEsMHg4YSwweDQyLDB4YTAsMHgwNSwweGI4LDB4NDIsMHgzMiwweDM4LDB4MGIsMHg4MCwweDAyLDB4MGUgfX0sCi0gezE2LCAweGVlZDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHgwMywweDkxLDB4MDAsMHgyNCwweDQwIH19LAotIHsxNiwgMHhlZWUwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHhjNCwweDExLDB4YjEsMHgwNCwweDIwLDB4NDEsMHgxYiwweDEwLDB4MjIsMHg0NSwweDAwLDB4YjUsMHgwMCB9fSwKLSB7MTYsIDB4ZWVmMCwgMCwgezB4MjUsMHg0MCwweDA5LDB4NTAsMHgwMiwweDU0LDB4MDEsMHg4MSwweDQwLDB4MmMsMHg0MCwweDA5LDB4MTQsMHg5MiwweDQ0LDB4MDAgfX0sCi0gezE2LCAweGVmMDAsIDAsIHsweGIxLDB4NDAsMHgyNCwweDRjLDB4MGIsMHgxNCwweDBhLDB4NDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweDk5LDB4MDAsMHgyNCwweDQyLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMSwweDk5LDB4MjAsMHgyNiB9fSwKLSB7MTYsIDB4ZWYyMCwgMCwgezB4NDAsMHhjYiwweDkwLDB4MDIsMHg2NCwweDAwLDB4YmIsMHgwMCwweDJmLDB4NDEsMHgwYSwweGQwLDB4MDIsMHgzNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGVmMzAsIDAsIHsweDAwLDB4MjYsMHg0MCwweDBiLDB4MTAsMHgwMiwweGU0LDB4MDAsMHgzMSwweDAwLDB4NjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweDQ2IH19LAotIHsxNiwgMHhlZjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGM0LDB4MDAsMHhkOSwweDAxLDB4MzYsMHg1MCB9fSwKLSB7MTYsIDB4ZWY1MCwgMCwgezB4MmYsMHg5MCwweDAzLDB4ZTYsMHg2MCwweGY5LDB4ODAsMHgzNiwweDUyLDB4MGIsMHg5MCwweDBhLDB4NjQsMHgwMCwweGY5LDB4MDAgfX0sCi0gezE2LCAweGVmNjAsIDAsIHsweDM2LDB4NDAsMHgwZCwweDkwLDB4MDMsMHg2NCwweDAyLDB4MDksMHgwMCwweDNlLDB4NDAsMHgwZCwweDkwLDB4MDMsMHg2NCwweDAwIH19LAotIHsxNiwgMHhlZjcwLCAwLCB7MHhiOSwweDAwLDB4YjYsMHg0MCwweDBmLDB4OTAsMHgwMywweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWY4MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhlMSwweDAwLDB4M2EsMHg0MSwweDBjLDB4OTAsMHgyMywweGU2LDB4MjAsMHhlOSwweDAwLDB4YmEgfX0sCi0gezE2LCAweGVmOTAsIDAsIHsweDcwLDB4MGYsMHg5MCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGQsMHgxMCwweDEzLDB4YTcsMHgwMCwweGY5IH19LAotIHsxNiwgMHhlZmEwLCAwLCB7MHgwMCwweDNhLDB4NDAsMHgwZSwweDkwLDB4NDMsMHhhNCwweDA4LDB4ZjksMHgwMCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg4YSB9fSwKLSB7MTYsIDB4ZWZiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDIwLDB4ZjgsMHgwMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGVmYzAsIDAsIHsweDBmLDB4ODAsMHg4MywweDIxLDB4MDAsMHhmMCwweDAwLDB4M2EsMHgxMSwweDA5LDB4ODAsMHgwMywweGUwLDB4MDAsMHhjOCwweDAxIH19LAotIHsxNiwgMHhlZmQwLCAwLCB7MHgzMCwweDAxLDB4MGMsMHg4MCwweDAzLDB4YjAsMHgwMCwweGQwLDB4MDAsMHgzNCwweDAwLDB4MGQsMHg4MCwweDAzLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ZWZlMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmZjAsIDAsIHsweDI4LDB4MDUsMHgzOCwweDAwLDB4YmUsMHgwMCwweDIyLDB4ODAsMHgwMywweGU4LDB4MDIsMHgxYSwweDA4LDB4YmUsMHg0OCwweDIyIH19LAotIHsxNiwgMHhmMDAwLCAwLCB7MHg4MCwweDBhLDB4YTAsMHgwMywweGI4LDB4MDAsMHhjYSwweDA4LDB4MjIsMHg4MCwweDBmLDB4YTQsMHgwMiwweDA4LDB4MDAsMHg4YSB9fSwKLSB7MTYsIDB4ZjAxMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4OGQsMHhhMCwweDAyLDB4MjgsMHgwMCwweGRhLDB4MDAsMHgyYSwweDgxLDB4MDgsMHhhMCwweDAyLDB4OGEgfX0sCi0gezE2LCAweGYwMjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NDQsMHgwMCwweGIzLDB4MDAsMHgyMCwweDQwIH19LAotIHsxNiwgMHhmMDMwLCAwLCB7MHgwYiwweDMwLDB4MDIsMHgwOCwweDAwLDB4YjAsMHg2NCwweDY4LDB4YzEsMHgwOCwweGIwLDB4MjIsMHhjYywweDBjLDB4OTMsMHg4MCB9fSwKLSB7MTYsIDB4ZjA0MCwgMCwgezB4MDAsMHhjMCwweDQ4LDB4MzYsMHgwMiwweDg4LDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCwweDA4LDB4MzAsMHgwNiwweDBjLDB4MDEgfX0sCi0gezE2LCAweGYwNTAsIDAsIHsweGEzLDB4MDIsMHgyYywweGMwLDB4MDgsMHhiMCwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDYwLCAwLCB7MHhhMCwweDAxLDB4MTQsMHgwOCwweGI1LDB4MDAsMHgyMSwweDQwLDB4MGIsMHgzOCwweDgyLDB4MWMsMHgyMSwweGI3LDB4MDAsMHgyMyB9fSwKLSB7MTYsIDB4ZjA3MCwgMCwgezB4ZTgsMHg0YSwweDcyLDB4MjYsMHg5ZSwweDQwLDB4OGYsMHg4MSwweGFiLDB4NDAsMHg0MiwweDcwLDB4NTIsMHgzOCwweDAwLDB4YTMgfX0sCi0gezE2LCAweGYwODAsIDAsIHsweDIyLDB4MjAsMHhjNCwweDQ5LDB4MzEsMHgwMiwweDFlLDB4MGEsMHhiNywweDIyLDB4MmQsMHhlOCwweDA4LDB4NzIsMHgwMiwweGE4IH19LAotIHsxNiwgMHhmMDkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDEyLDB4MDAsMHhmNiwweDgwLDB4MjEsMHhlMCB9fSwKLSB7MTYsIDB4ZjBhMCwgMCwgezB4MGIsMHg3OCwweDBiLDB4MWUsMHgwMCwweGI0LDB4ODIsMHgzYiwweGU4LDB4NGMsMHg3YywweDEzLDB4ZmUsMHgwMiwweDk3LDB4ODAgfX0sCi0gezE2LCAweGYwYjAsIDAsIHsweDMzLDB4YTAsMHgwOCwweDM4LDB4MDMsMHg5YSwweDAwLDB4ZjcsMHg4OCwweDM1LDB4ZTIsMHgwYywweDc4LDB4ZTMsMHgwZSwweDAwIH19LAotIHsxNiwgMHhmMGMwLCAwLCB7MHhlMywweGU4LDB4MzQsMHhmOCwweDBjLDB4M2MsMHgyMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjBkMCwgMCwgezB4MDgsMHgxZCwweGE4LDB4MDQsMHhmMSwweDAwLDB4M2UsMHg0MiwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHhmYiwweDAwLDB4YmUgfX0sCi0gezE2LCAweGYwZTAsIDAsIHsweGNjLDB4MWUsMHhiNiwweDA3LDB4ZWQsMHg4MCwweGZiLDB4MDAsMHgzNiwweDAwLDB4MGYsMHhiMCwweDQzLDB4NjgsMHgwMCwweGNiIH19LAotIHsxNiwgMHhmMGYwLCAwLCB7MHgzMCwweDNlLDB4ZDgsMHgwZiwweGI2LDB4MGIsMHhlZCwweDQwLDB4Y2IsMHgwMCwweDNhLDB4YzAsMHgyZiwweGI2LDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ZjEwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmMiwweDQwLDB4ZmIsMHg5MSwweDNkLDB4NGMgfX0sCi0gezE2LCAweGYxMTAsIDAsIHsweDgwLDB4ZjgsMHgwMywweGRlLDB4NDAsMHhjNiwweDgwLDB4MWIsMHhmMCwweDRmLDB4ZmQsMHgwNywweGZmLDB4MDAsMHhjZCwweDgwIH19LAotIHsxNiwgMHhmMTIwLCAwLCB7MHgzMywweGUwLDB4MGMsMHg2OCwweDAzLDB4YmEsMHgwMCwweGZmLDB4ODAsMHgzMywweGUwLDB4MDcsMHhmOCwweDAzLDB4M2YsMHgxMCB9fSwKLSB7MTYsIDB4ZjEzMCwgMCwgezB4Y2YsMHg4MCwweDNmLDB4ZTAsMHgwYywweGZjLDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxNDAsIDAsIHsweGE4LDB4MTEsMHg5MCwweDAwLDB4YjUsMHhjMCwweDJkLDB4NDAsMHgwOCwweDYyLDB4MDIsMHhkYywweDIwLDB4ZDYsMHgwMiwweDIxIH19LAotIHsxNiwgMHhmMTUwLCAwLCB7MHhjOCwweDhmLDB4NzAsMHgwMiwweGRjLDB4ODEsMHhiNSwweDAwLDB4ODEsMHg0NCwweDBkLDB4NjEsMHgyMiwweDE4LDB4MDQsMHhiNyB9fSwKLSB7MTYsIDB4ZjE2MCwgMCwgezB4MDAsMHgzNSwweGMwLDB4MGIsMHg3MCwweDAyLDB4YmMsMHgwMCwweGE3LDB4MDEsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAzLDB4ZWEgfX0sCi0gezE2LCAweGYxNzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTAsMHgwMSwweGI2LDB4MDEsMHgyZiwweGMwIH19LAotIHsxNiwgMHhmMTgwLCAwLCB7MHgxOCwweDcwLDB4MDIsMHhkYywweDBhLDB4OTYsMHgxMCwweDI5LDB4YzEsMHg0YiwweDcwLDB4MDYsMHhkYywweDEwLDB4ODUsMHgwMCB9fSwKLSB7MTYsIDB4ZjE5MCwgMCwgezB4MjUsMHg4MCwweDA4LDB4NjAsMHg4MiwweDFhLDB4MjAsMHhhMywweDAwLDB4MjUsMHhjMCwweDBiLDB4MzEsMHgwMiwweDVjLDB4NDAgfX0sCi0gezE2LCAweGYxYTAsIDAsIHsweDg3LDB4MDAsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMWIwLCAwLCB7MHgyMCwweDE0LDB4YzgsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4ODgsMHgyMCwweDAyLDB4ZWQsMHgwMCwweDhhLDB4NjAsMHgyMCB9fSwKLSB7MTYsIDB4ZjFjMCwgMCwgezB4YzAsMHgwYSwweDMwLDB4MDIsMHhjYywweDA0LDB4YjEsMHgwMCwweDI0LDB4MDAsMHgyOCwweDI0LDB4MDIsMHgwYSwweDAwLDB4MzMgfX0sCi0gezE2LCAweGYxZDAsIDAsIHsweDAwLDB4MjQsMHhjMCwweDBiLDB4YjAsMHgwMiwweGNjLDB4MDAsMHhhMywweDAwLDB4MmMsMHhjMCwweDg4LDB4MzAsMHgwMiwweDg4IH19LAotIHsxNiwgMHhmMWUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGEwLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjNiB9fSwKLSB7MTYsIDB4ZjFmMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4ZTUsMHgwMCwweDA5LDB4YzgsMHhhYiwweGUyLDB4MGIsMHhmMCwweDAyLDB4ZmMsMHgwMCwweDRhLDB4MDAgfX0sCi0gezE2LCAweGYyMDAsIDAsIHsweDM2LDB4YzAsMHgwOCwweDkwLDB4MDMsMHhhNiwweDAwLDB4ZmYsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHg3YywweDAwIH19LAotIHsxNiwgMHhmMjEwLCAwLCB7MHg4ZiwweDAwLDB4MmYsMHhjMCwweDI4LDB4ZjAsMHgwMiwweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjIyMCwgMCwgezB4ODAsMHgwMCwweGUxLDB4MDAsMHhmYSwweDAxLDB4M2UsMHhjMCwweDBmLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmOSwweDQwLDB4M2UgfX0sCi0gezE2LCAweGYyMzAsIDAsIHsweGMwLDB4MDcsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZhLDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDIzLDB4ZTUsMHgwMCwweGZiIH19LAotIHsxNiwgMHhmMjQwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZmIsMHgwMCwweDNjLDB4YzAsMHgwZiwweGIwLDB4MjMsMHhlMCB9fSwKLSB7MTYsIDB4ZjI1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4ZmMsMHgyMCwweDNmLDB4YzAgfX0sCi0gezE2LCAweGYyNjAsIDAsIHsweDBjLDB4YzgsMHgwMywweGZjLDB4MjAsMHhjZCwweDgxLDB4YjMsMHhjMiwweDRmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhjYSwweDAwIH19LAotIHsxNiwgMHhmMjcwLCAwLCB7MHgzYywweDgwLDB4MGMsMHhkMCwweDgyLDB4MzYsMHgwMSwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4M2MsMHgwOCB9fSwKLSB7MTYsIDB4ZjI4MCwgMCwgezB4Y2YsMHgwNCwweDNhLDB4YzAsMHg1YywweGIwLDB4MDMsMHhjMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyOTAsIDAsIHsweDgxLDB4MDQsMHg2MiwweDA0LDB4YjgsMHg0MCwweDJjLDB4NjAsMHgwOCwweDg5LDB4MDIsMHhlZSwweDgwLDB4YTksMHg2MCwweDJhIH19LAotIHsxNiwgMHhmMmEwLCAwLCB7MHhjMCwweDBiLDB4YjAsMHgwMywweDhjLDB4MDAsMHhhYSwweDQwLDB4MmUsMHgwMCwweDA4LDB4MTAsMHgwMiwweDI2LDB4ODEsMHhlYiB9fSwKLSB7MTYsIDB4ZjJiMCwgMCwgezB4MDAsMHgyNiwweGMwLDB4OGIsMHhiMCwweDEzLDB4NmMsMHgwMCwweGRiLDB4MDAsMHgyZSwweGMwLDB4M2QsMHhiMCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweGYyYzAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MjMsMHgwMCwweGJiLDB4MDMsMHgyZSwweGM4IH19LAotIHsxNiwgMHhmMmQwLCAwLCB7MHgwOSwweGIwLDB4MDIsMHhlZSwweDAwLDB4OGIsMHgxMCwweDI2LDB4YzAsMHgwYiwweGIwLDB4MDIsMHhlYywweDAwLDB4YTgsMHgwMCB9fSwKLSB7MTYsIDB4ZjJlMCwgMCwgezB4MmUsMHhjMCwweDA4LDB4ODgsMHgyMiwweGE0LDB4ODAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDRiLDB4YjAsMHgyMiwweDBjLDB4MDAgfX0sCi0gezE2LCAweGYyZjAsIDAsIHsweDhiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzAwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweGIyLDB4MDAsMHgyZSwweGMwLDB4MjksMHgyOCwweDAyLDB4ZWMsMHgwMSwweGEwLDB4MDIsMHgyMCB9fSwKLSB7MTYsIDB4ZjMxMCwgMCwgezB4YzAsMHgwOSwweDMwLDB4MDIsMHhjYywweDAwLDB4YTAsMHgwMCwweDJjLDB4NDAsMHgwOCwweDAwLDB4NDIsMHg4NCwweDAwLDB4OTMgfX0sCi0gezE2LCAweGYzMjAsIDAsIHsweDAwLDB4NmMsMHhjMCwweDBiLDB4MzAsMHgwNiwweDRkLDB4MDAsMHg5MywweDAwLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhmMzMwLCAwLCB7MHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhmOCwweDIwLDB4MmYsMHhjMCB9fSwKLSB7MTYsIDB4ZjM0MCwgMCwgezB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MDAsMHgzMywweGMwLDB4MGIsMHhmMCwweDAzLDB4ZmMsMHgxOCwweGU4LDB4MDAgfX0sCi0gezE2LCAweGYzNTAsIDAsIHsweDJlLDB4ODAsMHgwOCwweDgwLDB4MDMsMHhhNCwweDAwLDB4YmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4NDMsMHgzZCwweDExIH19LAotIHsxNiwgMHhmMzYwLCAwLCB7MHhjZiwweDAzLDB4M2UsMHhjMSwweDVkLDB4ZjAsMHgyMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjM3MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDAsMHhmYywweDEwLDB4M2YsMHg0MCwweDBlLDB4ZTAsMHgwMywweGZjLDB4MDAsMHhmYywweDAwLDB4M2YgfX0sCi0gezE2LCAweGYzODAsIDAsIHsweGMwLDB4MGYsMHhmMCwweDAzLDB4YmMsMHgwMCwweGZjLDB4MDAsMHgzZiwweDAwLDB4MmYsMHhjMCwweDAzLDB4NzQsMHgwMCwweGVmIH19LAotIHsxNiwgMHhmMzkwLCAwLCB7MHgwMCwweDI3LDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDE4LDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4ZjNhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhmYywweDg4LDB4OWMsMHgyOSwweDNmLDB4MDggfX0sCi0gezE2LCAweGYzYjAsIDAsIHsweDBmLDB4ZDIsMHg4MywweGVjLDB4MDAsMHhmZiwweDA4LDB4M2YsMHgyOCwweDBmLDB4Y2EsMHgwMywweDNjLDB4NDEsMHhjZiwweDIwIH19LAotIHsxNiwgMHhmM2MwLCAwLCB7MHg3MywweDJjLDB4MGMsMHhjMCwweDAzLDB4MzAsMHgyMCwweGNmLDB4NjAsMHgzMywweGQ4LDB4MGYsMHg3OCwweDAzLDB4M2YsMHg4MCB9fSwKLSB7MTYsIDB4ZjNkMCwgMCwgezB4ZGQsMHg5MiwweDMzLDB4YzgsMHgwZiwweDUwLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzZTAsIDAsIHsweDgwLDB4MTAsMHhlNSwweDQwLDB4ODgsMHg0MCwweDJlLDB4MDQsMHg4YiwweDk0LDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMCwweDBlIH19LAotIHsxNiwgMHhmM2YwLCAwLCB7MHg3ZiwweDhmLDB4OWUsMHg4MywweDY1LDB4ODIsMHhjZiwweDY4LDB4M2UsMHg1MCwweDhkLDB4MDQsMHg5MiwweDJmLDB4MDQsMHhkMyB9fSwKLSB7MTYsIDB4ZjQwMCwgMCwgezB4NDAsMHg3NCwweGRjLDB4MGQsMHhhMiwweDAyLDB4MjAsMHg0MCwweDg5LDB4MDAsMHgyMiwweGYwLDB4MGIsMHg5OCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGY0MTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzgsMHgwOSwweGEwLDB4ODUsMHgyYywweDAxIH19LAotIHsxNiwgMHhmNDIwLCAwLCB7MHgwYiwweDAwLDB4MTAsMHhjYywweDQwLDB4YTIsMHgwOCwweDJjLDB4MDAsMHhkYiwweDExLDB4MDIsMHg4OSwweDAwLDB4OTMsMHgzMCB9fSwKLSB7MTYsIDB4ZjQzMCwgMCwgezB4MjAsMHgwNSwweDA4LDB4MTMsMHgwMiwweDgwLDB4MDgsMHhhMywweDYwLDB4NjAsMHhjMCwweDBhLDB4YjAsMHg4MiwweDA4LDB4ODQgfX0sCi0gezE2LCAweGY0NDAsIDAsIHsweDgxLDB4MjAsMHgyMCwweGQwLDB4MGIsMHgxMCwweDAyLDB4YTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDUwLCAwLCB7MHhjMCwweDE1LDB4YTQsMHgxMiwweDg4LDB4ODAsMHg2ZSwweDIwLDB4MGIsMHg4OCwweDgyLDB4ZWUsMHgwMCwweGJhLDB4ODEsMHgyZSB9fSwKLSB7MTYsIDB4ZjQ2MCwgMCwgezB4NjAsMHg1YSwweDk4LDB4MDIsMHhhMiwweDAwLDB4OGIsMHgwMCwweDJhLDB4NjAsMHgwOCwweDExLDB4MWEsMHgyYywweDAwLDB4YmIgfX0sCi0gezE2LCAweGY0NzAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDA4LDB4YjgsMHgwYSwweDI4LDB4MDAsMHg4MSwweDIwLDB4MDIsMHhjMCwweDBiLDB4OTAsMHgwMiwweGIwIH19LAotIHsxNiwgMHhmNDgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGVkLDB4MDAsMHhkOSwweDgwLDB4M2UsMHgyMCB9fSwKLSB7MTYsIDB4ZjQ5MCwgMCwgezB4NGYsMHg5OCwweDAwLDB4ZWIsMHgyMCwweGZiLDB4ZTAsMHgyZSwweDYwLDB4MGIsMHg4YywweDYyLDB4YWUsMHgyMCwweDhiLDB4MDAgfX0sCi0gezE2LCAweGY0YTAsIDAsIHsweDIyLDB4NjAsMHgwOCwweGJjLDB4MDMsMHhhMCwweDIwLDB4ZWIsMHgwMCwweDIyLDB4YzEsMHgwYSwweDE4LDB4MGIsMHgyNSwweDAwIH19LAotIHsxNiwgMHhmNGIwLCAwLCB7MHhkOSwweDAwLDB4YjIsMHhjMCwweDBmLDB4OTAsMHgwYiwweDkwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjRjMCwgMCwgezB4ZTAsMHgwMSwweDk0LDB4ODgsMHhmZiwweDAwLDB4M2YsMHgwMSwweDBmLDB4ZDAsMHgwMSwweGYwLDB4MDgsMHhkZCwweDAxLDB4M2YgfX0sCi0gezE2LCAweGY0ZDAsIDAsIHsweDQyLDB4MDcsMHg0MCwweDAzLDB4NWMsMHgwMCwweGFmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhmOCwweDAwLDB4ZjAsMHgwMCwweGRmIH19LAotIHsxNiwgMHhmNGUwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MjMsMHhmNCwweDUwLDB4ZmQsMHg4MCwweDNmLDB4YzAsMHgwZiwweGQwLDB4MDMsMHg3OCB9fSwKLSB7MTYsIDB4ZjRmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHhhYywweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGY1MDAsIDAsIHsweDBmLDB4OTQsMHgwMywweGE4LDB4MjAsMHhjYSwweDQwLDB4M2EsMHg0MCwweDBmLDB4OTQsMHgwMywweGVhLDB4MDgsMHhmYiwweDAwIH19LAotIHsxNiwgMHhmNTEwLCAwLCB7MHgzYSwweDAwLDB4NGMsMHhmNiwweDIzLDB4MmMsMHgzMCwweGNiLDB4MDAsMHgzNiwweGMwLDB4MGQsMHg5MCwweDAzLDB4YTEsMHgwMiB9fSwKLSB7MTYsIDB4ZjUyMCwgMCwgezB4ZDksMHgwMCwweGJhLDB4YzAsMHgwZiwweDk4LDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1MzAsIDAsIHsweGM4LDB4MDUsMHgyNCwweDAwLDB4OGEsMHgwMCwweDJlLDB4NDAsMHgwYiwweDk1LDB4MDIsMHhlMCwweDA4LDB4ODgsMHg4MCwweDIyIH19LAotIHsxNiwgMHhmNTQwLCAwLCB7MHg3MCwweDhmLDB4OGMsMHgwMiwweGUwLDB4MDAsMHhiZiwweDAyLDB4MjAsMHgwMCwweDA4LDB4YjgsMHgwMiwweDBlLDB4MDAsMHhkZiB9fSwKLSB7MTYsIDB4ZjU1MCwgMCwgezB4MDAsMHgyMywweGRkLDB4MDgsMHg5OCwweDgyLDB4MmEsMHgwMCwweDg5LDB4ODAsMHgyMywweGMwLDB4MGIsMHg1MCwweDFhLDB4MzIgfX0sCi0gezE2LCAweGY1NjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDQsMHgwMCwweDgzLDB4MDUsMHgyNCwweDQxIH19LAotIHsxNiwgMHhmNTcwLCAwLCB7MHgwOSwweDEwLDB4MDIsMHhjZSwweDAwLDB4ODMsMHg5MCwweDJjLDB4ODAsMHgxYiwweDI0LDB4ODIsMHhjYywweDAwLDB4YmIsMHgwMCB9fSwKLSB7MTYsIDB4ZjU4MCwgMCwgezB4MmMsMHg4MCwweDA4LDB4MDQsMHgwOCwweDA0LDB4MDEsMHg4YiwweDAwLDB4MjIsMHhjMCwweDI4LDB4MTIsMHgwMiwweDZjLDB4ODAgfX0sCi0gezE2LCAweGY1OTAsIDAsIHsweDgxLDB4NDgsMHgyNCwweGM0LDB4MGIsMHgxMCwweDAyLDB4MzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNWEwLCAwLCB7MHgyMCwweDAxLDB4M2UsMHg0MiwweDg2LDB4ODAsMHgyZCwweDYwLDB4MGIsMHg2OCwweDAyLDB4ZjYsMHg5MCwweDhkLDB4ODAsMHgyMSB9fSwKLSB7MTYsIDB4ZjViMCwgMCwgezB4MjIsMHgwYiwweDU4LDB4MDIsMHhkNywweDQwLDB4YjcsMHg5MCwweDIxLDB4ZTAsMHgwOCwweDQ5LDB4OTIsMHgxZSwweDUzLDB4OTcgfX0sCi0gezE2LCAweGY1YzAsIDAsIHsweDgxLDB4MjEsMHhlMCwweDQ4LDB4YzgsMHgwYSwweDUyLDB4MjIsMHg4NSwweDg4LDB4MjUsMHhlMCwweDBiLDB4NTgsMHgwMiwweDA4IH19LAotIHsxNiwgMHhmNWQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg4MywweDAwLDB4MzQsMHhjMCB9fSwKLSB7MTYsIDB4ZjVlMCwgMCwgezB4MGYsMHgwMCwweDAzLDB4Y2UsMHgyMCwweGMzLDB4MzAsMHg3YywweDk0LDB4MGIsMHgzNCwweDgzLDB4Y2MsMHgxNCwweGYzLDB4MDIgfX0sCi0gezE2LCAweGY1ZjAsIDAsIHsweDNjLDB4ODAsMHgwYywweDA0LDB4MDMsMHgwNCwweDYwLDB4YzMsMHgwMCwweGIwLDB4YzAsMHgwYywweDEwLDB4MDMsMHhlYywweDAwIH19LAotIHsxNiwgMHhmNjAwLCAwLCB7MHhjOSwweDAwLDB4M2MsMHhjNCwweDBmLDB4MTEsMHgwMywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjYxMCwgMCwgezB4NDAsMHgxZCwweDljLDB4MDAsMHhlZSwweDAxLDB4M2YsMHhjMCwweDRmLDB4ZTEsMHgwMywweGQ0LDB4NDAsMHhmNSwweDE2LDB4N2EgfX0sCi0gezE2LCAweGY2MjAsIDAsIHsweGMwLDB4NGUsMHhmMCwweDAzLDB4ZjQsMHgxMCwweDM3LDB4MDUsMHgzZCwweGMwLDB4MGYsMHhjMCwweDBiLDB4ZGMsMHg0MCwweGZmIH19LAotIHsxNiwgMHhmNjMwLCAwLCB7MHgwMCwweDNiLDB4YzIsMHgwZSwweGQwLDB4MDcsMHhiYywweDAyLDB4ZWYsMHgwMCwweDNiLDB4YzYsMHgwZiwweGQwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4ZjY0MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhmNCwweDAwLDB4ZGQsMHg4NCwweDMzLDB4ODAgfX0sCi0gezE2LCAweGY2NTAsIDAsIHsweDA0LDB4ZjAsMHgwMywweDZjLDB4MDIsMHhjYiwweDAyLDB4N2UsMHhjMCwweDFmLDB4YTAsMHg1MywweGVjLDB4MDAsMHhjYiwweDIwIH19LAotIHsxNiwgMHhmNjYwLCAwLCB7MHgzNCwweDQwLDB4MGMsMHhkMCwweDBiLDB4MjAsMHgxMCwweGViLDB4MDAsMHgxZSwweGUwLDB4MGYsMHgzMCwweDBiLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4ZjY3MCwgMCwgezB4YzEsMHgwMCwweDMyLDB4YzAsMHgwZiwweDkxLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2ODAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDAwLDB4ODcsMHgwMCwweDIxLDB4ODAsMHgwOCwweDYwLDB4MDAsMHgxNCwweDAwLDB4ODUsMHgwMCwweDJkIH19LAotIHsxNiwgMHhmNjkwLCAwLCB7MHg4MCwweDBiLDB4NzAsMHg1MiwweGQ0LDB4MDQsMHg4MywweDI4LDB4MjksMHhjMCwweDI4LDB4NTAsMHgwMywweDUwLDB4MDAsMHg4NyB9fSwKLSB7MTYsIDB4ZjZhMCwgMCwgezB4NDAsMHgyNSwweGM4LDB4MGYsMHg2MCwweDAyLDB4MDQsMHgwMCwweGE3LDB4MDAsMHgzZCwweGM4LDB4MGIsMHg1MiwweDAyLDB4ZDIgfX0sCi0gezE2LCAweGY2YjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OGUsMHgwMCwweDk1LDB4ODAsMHgyMSwweGUwIH19LAotIHsxNiwgMHhmNmMwLCAwLCB7MHgwOSwweDM4LDB4MDIsMHgxZSwweDExLDB4YTcsMHg4MCwweDJkLDB4ZjAsMHgwYiwweDc4LDB4NTIsMHhjZSwweDBhLDB4OTcsMHg5NSB9fSwKLSB7MTYsIDB4ZjZkMCwgMCwgezB4MjEsMHhlMCwweDE5LDB4NWMsMHgwMiwweDBlLDB4MDAsMHhhNywweDgwLDB4MjksMHhjOCwweDBiLDB4ZjgsMHgwMiwweDFlLDB4MjAgfX0sCi0gezE2LCAweGY2ZTAsIDAsIHsweDhkLDB4ODAsMHgyMSwweGUwLDB4MGIsMHg1OCwweDAyLDB4ZjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNmYwLCAwLCB7MHg0OCwweDE0LDB4Y2MsMHgwMCwweDgyLDB4ZTAsMHhhMCwweGU4LDB4MjksMHgzMCwweDA2LDB4MGUsMHg1MCwweGFiLDB4ODAsMHgyYyB9fSwKLSB7MTYsIDB4ZjcwMCwgMCwgezB4ZjAsMHgwYiwweDMxLDB4NDIsMHhjYywweDAwLDB4OTMsMHgwMCwweDI4LDB4YzQsMHgwOSwweDk4LDB4MDIsMHg0YywweDI4LDB4ODMgfX0sCi0gezE2LCAweGY3MTAsIDAsIHsweDAwLDB4MjQsMHhjMCwweDBhLDB4YjAsMHgwMiwweDBkLDB4MDAsMHhhMiwweDU4LDB4MjgsMHhjMCwweDBiLDB4MTAsMHgwMiwweGQyIH19LAotIHsxNiwgMHhmNzIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI5LDB4MDAsMHhkZSwweDgwLDB4MzEsMHhhMCB9fSwKLSB7MTYsIDB4ZjczMCwgMCwgezB4MDksMHhlMiwweDBiLDB4NzgsMHgwNCwweGVlLDB4YTQsMHgyZiwweGE0LDB4OGIsMHhlYywweDAyLDB4ZDgsMHgwMCwweGRhLDB4MDAgfX0sCi0gezE2LCAweGY3NDAsIDAsIHsweDI3LDB4ODEsMHgwZCwweGVjLDB4MDYsMHgxYiwweDAwLDB4ZWEsMHgwNCwweDNlLDB4ODAsMHgwYiwweGUwLDB4MDMsMHgzYiwweDAwIH19LAotIHsxNiwgMHhmNzUwLCAwLCB7MHhjZSwweGMwLDB4MjIsMHg4MCwweDBmLDB4YTAsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjc2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4ODAsMHhmOCwweDEwLDB4M2UsMHgwNSwweDBlLDB4ODgsMHgwMywweGUwLDB4MDgsMHg5OCwweDQwLDB4M2UgfX0sCi0gezE2LCAweGY3NzAsIDAsIHsweDAwLDB4MGYsMHg4NCwweDgzLDB4ZTEsMHg0MCwweGU4LDB4MDAsMHgzYSwweDAyLDB4MGUsMHg4MCwweDQzLDB4ZTEsMHg0MCwweGY4IH19LAotIHsxNiwgMHhmNzgwLCAwLCB7MHgwMCwweDM2LDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDIwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4Zjc5MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAwLDB4ZTksMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGY3YTAsIDAsIHsweDBjLDB4OTAsMHgwMywweDA0LDB4MjAsMHhlOSwweDkwLDB4MzIsMHg2OCwweDBlLDB4OTgsMHgwMywweGE0LDB4MDAsMHhjMSwweDAwIH19LAotIHsxNiwgMHhmN2IwLCAwLCB7MHgzMCwweDQwLDB4MGMsMHg5NCwweDgzLDB4MjQsMHgwOCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4YTQsMHgwMCB9fSwKLSB7MTYsIDB4ZjdjMCwgMCwgezB4YzksMHgwMCwweDMwLDB4NTAsMHgwYywweDFhLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3ZDAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHg0MCwweDJlLDB4NTAsMHgyOCwweDkwLDB4MGEsMHgyNCwweDA4LDB4ODksMHgwNiwweDE2IH19LAotIHsxNiwgMHhmN2UwLCAwLCB7MHg2MSwweDBiLDB4OWMsMHgwMiwweGU0LDB4MjAsMHhhOSwweDAwLDB4MzYsMHg0MCwweDBkLDB4OTAsMHgwMiwweDI3LDB4NjAsMHhhOSB9fSwKLSB7MTYsIDB4ZjdmMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MjgsMHg5MCwweDFhLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgzNiwweDQwLDB4MjgsMHg5OCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGY4MDAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MmMsMHgwMCwweGE5LDB4MDgsMHgyZSwweGMyIH19LAotIHsxNiwgMHhmODEwLCAwLCB7MHgwOSwweDEwLDB4MDAsMHgyNCwweDAwLDB4YTksMHgwMCwweDA2LDB4NDAsMHg4OSwweDk2LDB4MDYsMHhlNiwweDAwLDB4ODksMHgwMCB9fSwKLSB7MTYsIDB4ZjgyMCwgMCwgezB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDIsMHg4OSwweDAwLDB4MjQsMHg0MCwweDA4LDB4OTAsMHgwMiwweDBjLDB4MDYgfX0sCi0gezE2LCAweGY4MzAsIDAsIHsweDgzLDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODQwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHgwMCwweDgxLDB4NDQsMHgyYywweDUwLDB4MDgsMHgxNCwweDAyLDB4MDUsMHg4MCwweDgxLDB4MjAsMHg2NCB9fSwKLSB7MTYsIDB4Zjg1MCwgMCwgezB4NzAsMHgxYiwweDE0LDB4MDIsMHhlNCwweDgwLDB4YTEsMHgyMCwweDY0LDB4NDAsMHgxOSwweDEyLDB4MGEsMHgwNCwweDgwLDB4YTEgfX0sCi0gezE2LCAweGY4NjAsIDAsIHsweDAwLDB4MmMsMHg1MCwweDE4LDB4MTQsMHgwMiwweDg1LDB4MDAsMHg4MSwweDQwLDB4MjQsMHg0MCwweDQwLDB4MTAsMHgwMiwweDAyIH19LAotIHsxNiwgMHhmODcwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhlMCwweDAwLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4Zjg4MCwgMCwgezB4MGQsMHg4MCwweDAyLDB4MDAsMHgwMCwweGFhLDB4NTAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTEsMHg0MCwweGM4LDB4NTIgfX0sCi0gezE2LCAweGY4OTAsIDAsIHsweDcyLDB4MTQsMHgwYywweDA1LDB4MTYsMHgyMCwweDA4LDB4YzgsMHg1MCwweDNlLDB4MDEsMHgwYywweDgwLDB4MDMsMHhhMCwweDA0IH19LAotIHsxNiwgMHhmOGEwLCAwLCB7MHhjOCwweDAwLDB4YjIsMHgwMCwweDBjLDB4ODAsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjhiMCwgMCwgezB4OTgsMHgxOSwweGY1LDB4MDIsMHhmZCwweDQwLDB4M2YsMHhkMCwweDBmLDB4ZDQsMHgyMywweGY0LDB4NDQsMHhmZCwweDE0LDB4N2YgfX0sCi0gezE2LCAweGY4YzAsIDAsIHsweDUwLDB4MGYsMHhkNCwweDA3LDB4ZjQsMHg0MCwweGY5LDB4MTAsMHgzZiwweDUwLDB4MDcsMHhkMSwweDIzLDB4ZjQsMHg0MCwweGY5IH19LAotIHsxNiwgMHhmOGQwLCAwLCB7MHg0MCwweDFlLDB4NTAsMHgwNywweGQwLDB4MGIsMHg3NSwweDAwLDB4ZmQsMHgwMiwweDNlLDB4NTAsMHgwZiwweGQ0LDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4ZjhlMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDAwLDB4YzksMHhhOCwweDNlLDB4NzIgfX0sCi0gezE2LCAweGY4ZjAsIDAsIHsweDBmLDB4OTgsMHgwMywweGU2LDB4YzAsMHhmZCwweGEwLDB4YjMsMHg0MCwweDBmLDB4ZDAsMHgwMywweDc3LDB4ODAsMHhjZCwweDkwIH19LAotIHsxNiwgMHhmOTAwLCAwLCB7MHg3ZiwweDQwLDB4MGYsMHhkYSwweGEzLDB4MTYsMHg5MCwweGE5LDB4YzAsMHgzMiwweDYwLDB4NGMsMHhiMSwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4ZjkxMCwgMCwgezB4YzEsMHgwMCwweDMzLDB4NmEsMHgwYiwweGRhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5MjAsIDAsIHsweDM4LDB4MTAsMHhlMywweDQwLDB4ODgsMHhlMCwweDJlLDB4MzAsMHgwYiwweDhkLDB4MDIsMHhmMywweDQwLDB4YjgsMHhlOCwweDc2IH19LAotIHsxNiwgMHhmOTMwLCAwLCB7MHgwMCwweDRmLDB4ODAsMHgwYSwweDIyLDB4ODAsMHg4OCwweDkwLDB4NmUsMHgyOCwweDhmLDB4OGEsMHgwMywweDYxLDB4NDQsMHhmOCB9fSwKLSB7MTYsIDB4Zjk0MCwgMCwgezB4ZTEsMHgzZSwweDJhLDB4MDgsMHg4OCwweDAzLDB4NDIsMHhhMCwweGRjLDB4YTAsMHgzZSwweDEwLDB4MGIsMHg4NSwweDBhLDB4MGUgfX0sCi0gezE2LCAweGY5NTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHhhMCwweDg1LDB4MDgsMHgyZCwweDQ4IH19LAotIHsxNiwgMHhmOTYwLCAwLCB7MHgxYiwweDUyLDB4ODIsMHhkNCwweDgwLDB4YjEsMHgxNCwweDIwLDB4NDAsMHgwYiwweDE4LDB4MDIsMHgwNSwweDgyLDB4ODEsMHgwMCB9fSwKLSB7MTYsIDB4Zjk3MCwgMCwgezB4NmMsMHg0MiwweDBiLDB4MTIsMHg4MiwweDA0LDB4MDAsMHhhMSwweDYwLDB4MjEsMHg1MCwweDBiLDB4NTAsMHgwMiwweDE0LDB4OTAgfX0sCi0gezE2LCAweGY5ODAsIDAsIHsweDk1LDB4MmMsMHgyOCwweDQwLDB4MGIsMHgxMCwweDAyLDB4MDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTkwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMSwweDhkLDB4NDQsMHgyZiwweDQwLDB4MGIsMHhkNCwweDAyLDB4ZjQsMHgwNCwweGI5LDB4MDgsMHgyMiB9fSwKLSB7MTYsIDB4ZjlhMCwgMCwgezB4NDAsMHgwYSwweDkyLDB4MDIsMHgyYywweDg0LDB4ODksMHgwMCwweDJlLDB4NDAsMHgwYSwweDE0LDB4MDIsMHg2YywweDgwLDB4YTkgfX0sCi0gezE2LCAweGY5YjAsIDAsIHsweDAxLDB4MmEsMHg0MCwweDA5LDB4NTAsMHgwYSwweDVjLDB4MDIsMHg4ZCwweDYwLDB4MmEsMHg0MCwweDBiLDB4OTAsMHg0MiwweDA2IH19LAotIHsxNiwgMHhmOWMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU2LDB4NjIsMHhjOSwweDAyLDB4M2UsMHg1NCB9fSwKLSB7MTYsIDB4ZjlkMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4NDAsMHgyMiwweDQ2LDB4MGIsMHg5OCwweDAzLDB4NjcsMHgyMCwweGM5LDB4MDEgfX0sCi0gezE2LCAweGY5ZTAsIDAsIHsweDJlLDB4NjksMHgwYiwweDk0LDB4MGIsMHgyNSwweDIwLDB4YTksMHgwMCwweDIyLDB4NDAsMHgyZCwweDkyLDB4MGEsMHgyNiwweDIyIH19LAotIHsxNiwgMHhmOWYwLCAwLCB7MHg5OSwweDAwLDB4MmEsMHg0MCwweDhmLDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmEwMCwgMCwgezB4MjgsMHgwMSwweDg2LDB4MDIsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4ODAsMHhmMSwweGEwLDB4M2UgfX0sCi0gezE2LCAweGZhMTAsIDAsIHsweDYyLDB4MGYsMHg5OCwweDgzLDB4YzYsMHgyMCwweGY5LDB4MDAsMHgzZSwweDQ5LDB4MGYsMHg5MCwweDgzLDB4ZTQsMHgwMCwweDcxIH19LAotIHsxNiwgMHhmYTIwLCAwLCB7MHgwMiwweDNlLDB4NDAsMHgwZSwweDkwLDB4MGIsMHhlNiwweDgwLDB4ZjksMHg4MCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSB9fSwKLSB7MTYsIDB4ZmEzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDEwLDB4YzgsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGZhNDAsIDAsIHsweDRmLDB4ODAsMHg0MywweGIwLDB4MDAsMHhjOCwweDQxLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDIxLDB4MDIsMHhjOCwweDAyIH19LAotIHsxNiwgMHhmYTUwLCAwLCB7MHgzZSwweDEwLDB4NGMsMHg4MCwweDAzLDB4MDEsMHgyMCwweGM4LDB4MDAsMHgzYiwweDAwLDB4MGMsMHhjMCwweDAzLDB4YjAsMHgwMCB9fSwKLSB7MTYsIDB4ZmE2MCwgMCwgezB4Y2MsMHgwNCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhNzAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDAwLDB4OGEsMHg4MCwweDJlLDB4ODAsMHgwYiwweGEwLDB4MDIsMHhmOCwweDA0LDB4OGUsMHgwMCwweDIzIH19LAotIHsxNiwgMHhmYTgwLCAwLCB7MHhiMiwweDBlLDB4ZTAsMHg4MiwweGY5LDB4MDQsMHg4YSwweDAwLDB4MmUsMHg4MSwweDBjLDB4ZTAsMHgwYSwweDNhLDB4ODAsMHhkYSB9fSwKLSB7MTYsIDB4ZmE5MCwgMCwgezB4MDAsMHgyMiwweGI2LDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweDhlLDB4MDAsMHgyYSwweDgwLDB4MGIsMHg2MCwweDBiLDB4MGEgfX0sCi0gezE2LCAweGZhYTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NDQsMHgwMiwweDkzLDB4ODEsMHgyYywweGMwIH19LAotIHsxNiwgMHhmYWIwLCAwLCB7MHg0YiwweDMwLDB4MDIsMHhjOCwweDAwLDB4ODMsMHhjYSwweDIwLDB4ZTAsMHgxOSwweGIwLDB4MDYsMHg4YywweDAwLDB4ODEsMHgwNCB9fSwKLSB7MTYsIDB4ZmFjMCwgMCwgezB4NDQsMHg0MCwweDA4LDB4MzQsMHgwMiwweDBkLDB4MDAsMHg4MywweDAwLDB4MmEsMHgwMCwweDA4LDB4MDAsMHgwYSwweDgwLDB4NDAgfX0sCi0gezE2LCAweGZhZDAsIDAsIHsweDg4LDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4NGIsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYWUwLCAwLCB7MHhhMCwweDAxLDB4MDQsMHgwMiwweDk3LDB4MDgsMHgyZCwweGMwLDB4MGIsMHg2MCwweDA2LDB4Y2EsMHgwMCwweDgzLDB4MDksMHgyMSB9fSwKLSB7MTYsIDB4ZmFmMCwgMCwgezB4YzAsMHgwYSwweDcwLDB4MDIsMHhkYywweDAwLDB4ODUsMHgzMSwweDJkLDB4NjgsMHgwOSwweDMwLDB4MDIsMHgxYywweDE0LDB4OTMgfX0sCi0gezE2LCAweGZiMDAsIDAsIHsweDIwLDB4MjAsMHhjMCwweDA4LDB4ZjAsMHg0MiwweDljLDB4MDIsMHg4ZiwweDAwLDB4MjksMHg0MCwweDAzLDB4NzAsMHgxMiwweDI4IH19LAotIHsxNiwgMHhmYjEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDE2LDB4MDAsMHg5NiwweDg0LDB4M2QsMHhhMCB9fSwKLSB7MTYsIDB4ZmIyMCwgMCwgezB4MGYsMHg3OCwweDAzLDB4OWEsMHgwMiwweDg3LDB4ODAsMHhiMSwweGUwLDB4MGIsMHg3OCwweDAzLDB4YjYsMHgwMCwweGM1LDB4YTAgfX0sCi0gezE2LCAweGZiMzAsIDAsIHsweDM1LDB4NjEsMHgwYywweDc4LDB4MTMsMHgxZSwweDAyLDB4YzcsMHg4MCwweDI5LDB4MDAsMHgwYywweDQ4LDB4MDMsMHg5MCwweDAwIH19LAotIHsxNiwgMHhmYjQwLCAwLCB7MHhjNCwweDgwLDB4MzEsMHg2MCwweDBmLDB4NTgsMHgwMywweDZhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI1MCwgMCwgezB4MDgsMHgxZCwweGE0LDB4MDAsMHhlYSwweDAwLDB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweGU4LDB4MDgsMHhmYiwweDAwLDB4M2UgfX0sCi0gezE2LCAweGZiNjAsIDAsIHsweDgwLDB4MGYsMHg5MCwweDEzLDB4ZTQsMHgwOCwweGY5LDB4MDAsMHgzYywweDUwLDB4MmUsMHhmMCwweDAzLDB4ZTgsMHgwOCwweGZiIH19LAotIHsxNiwgMHhmYjcwLCAwLCB7MHg0MCwweDNlLDB4YzAsMHgwYiwweDMwLDB4MTMsMHg2YywweDAwLDB4ZmIsMHgwMCwweDNlLDB4NDAsMHgwZiwweDMwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ZmI4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhkNiwweDAwLDB4Y2QsMHg4MCwweDMzLDB4ZTAgfX0sCi0gezE2LCAweGZiOTAsIDAsIHsweDBjLDB4ZjgsMHgwMywweGZhLDB4MDAsMHhmZCwweDgwLDB4M2YsMHhhMCwweDBkLDB4ZjgsMHgwMywweGZhLDB4NDAsMHhjZCwweGQwIH19LAotIHsxNiwgMHhmYmEwLCAwLCB7MHg3NywweDdlLDB4MGMsMHhlOCwweDQzLDB4MWUsMHgwMCwweGNmLDB4ZDgsMHgzZiwweGUwLDB4MGMsMHhjOCwweDAzLDB4M2EsMHhjNCB9fSwKLSB7MTYsIDB4ZmJiMCwgMCwgezB4Y2MsMHg4MCwweDMzLDB4ZTAsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiYzAsIDAsIHsweGE4LDB4MTEsMHg5NCwweDAyLDB4OGQsMHgwMCwweDIxLDB4YzAsMHgwOCwweDYwLDB4MDMsMHhkOCwweDEwLDB4MzUsMHgyMCwweDhiIH19LAotIHsxNiwgMHhmYmQwLCAwLCB7MHhkNCwweDBkLDB4NjQsMHgwMywweGQ4LDB4YzAsMHg4NSwweDAwLDB4MmYsMHg0ZSwweDA3LDB4NjQsMHgwMiwweDljLDB4MDIsMHhkNyB9fSwKLSB7MTYsIDB4ZmJlMCwgMCwgezB4MzAsMHgyZiwweDA0LDB4MGQsMHhmMSwweDBiLDB4NTQsMHg0MCwweGFmLDB4MDAsMHgzNSwweDQwLDB4MDgsMHg3MCwweDAyLDB4MmEgfX0sCi0gezE2LCAweGZiZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTQsMHg0MCwweDg0LDB4MTgsMHgyMSwweDgwIH19LAotIHsxNiwgMHhmYzAwLCAwLCB7MHgwOCwweDcwLDB4MDIsMHhkYSwweDIwLDB4YjUsMHgwMCwweDA5LDB4MDAsMHgwOCwweDcwLDB4MDIsMHhkNCwweDA0LDB4ODUsMHgwMCB9fSwKLSB7MTYsIDB4ZmMxMCwgMCwgezB4NmQsMHg0YywweDg5LDB4NjAsMHgwMiwweDVjLDB4NDAsMHg5NywweDAwLDB4NmQsMHhjMCwweDA5LDB4NDAsMHgwMiwweDU4LDB4ODAgfX0sCi0gezE2LCAweGZjMjAsIDAsIHsweDg0LDB4ODgsMHgyNSwweDQwLDB4MDgsMHhkMCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzMwLCAwLCB7MHgyMCwweDE0LDB4YzYsMHg0OCwweDgwLDB4MDAsMHgyMCwweDgwLDB4MDgsMHhhYywweDAyLDB4YTgsMHgwMCwweGIxLDB4MDAsMHhhOCB9fSwKLSB7MTYsIDB4ZmM0MCwgMCwgezB4ODgsMHgwOSwweDIyLDB4MDIsMHg4NiwweDQyLDB4ODEsMHgwMCwweDZjLDB4NTIsMHgwYiwweDIwLDB4MDIsMHhjNywweDUyLDB4ODMgfX0sCi0gezE2LCAweGZjNTAsIDAsIHsweDAwLDB4MmMsMHgwMCwweDA4LDB4MzQsMHg4MiwweDY3LDB4MDAsMHhhMywweDgwLDB4MjAsMHg0MCwweDA4LDB4MzAsMHgwMiwweDA4IH19LAotIHsxNiwgMHhmYzYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGEzLDB4MDAsMHhjYiwweGMwLDB4YjIsMHg0MCB9fSwKLSB7MTYsIDB4ZmM3MCwgMCwgezB4MmMsMHg5MCwweDgyLDB4ZTYsMHgwMCwweGJiLDB4ODAsMHhiZSwweDc4LDB4MDgsMHg4ZSwweDAyLDB4ZWUsMHgwMCwweDhkLDB4MDAgfX0sCi0gezE2LCAweGZjODAsIDAsIHsweDI3LDB4NjAsMHgwZCwweDkwLDB4MGEsMHg2ZiwweDAwLDB4OWYsMHgwMiwweDJlLDB4MDAsMHgwOSwweGI0LDB4MDMsMHg2NywweDgwIH19LAotIHsxNiwgMHhmYzkwLCAwLCB7MHhjYSwweDQwLDB4ZTQsMHhjMCwweDBjLDB4MzAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmNhMCwgMCwgezB4ODAsMHgwMCwweGUwLDB4ODAsMHhmYiwweDIyLDB4M2UsMHg0MCwweDBmLDB4ODAsMHgxMywweGU0LDB4MDAsMHhmYiwweDgwLDB4M2UgfX0sCi0gezE2LCAweGZjYjAsIDAsIHsweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTUsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGUsMHg3MCwweDIzLDB4YWMsMHgyMCwweGZiIH19LAotIHsxNiwgMHhmY2MwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHg4ZiwweDgwLDB4MDMsMHhlOSwweDIwLDB4ZjksMHgwOCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MTMsMHhlMCB9fSwKLSB7MTYsIDB4ZmNkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4YzYsMHgwMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGZjZTAsIDAsIHsweDBmLDB4ZDEsMHg4MywweDM0LDB4NDAsMHhjZiwweDAwLDB4M2QsMHg0MCwweDBjLDB4ZDAsMHgwMywweGRlLDB4NTAsMHgwZCwweDAwIH19LAotIHsxNiwgMHhmY2YwLCAwLCB7MHg3MywweDQwLDB4MGMsMHhkMSwweDAzLDB4N2MsMHg0MCwweDg3LDB4MDIsMHhiMywweDAwLDB4MGQsMHhmNCwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4ZmQwMCwgMCwgezB4Y2UsMHgyMCwweDMyLDB4NDAsMHgwYywweGQwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkMTAsIDAsIHsweDgxLDB4MDQsMHg2MSwweDIyLDB4OGEsMHgwMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4NDAsMHgyNSwweDAwLDB4ODksMHhjMywweDJlIH19LAotIHsxNiwgMHhmZDIwLCAwLCB7MHgyMCwweDBhLDB4OTgsMHgwMywweGExLDB4MDAsMHg4OSwweDAwLDB4MzYsMHg0MCwweDg4LDB4OTQsMHgwMiwweDBmLDB4MDEsMHhhYiB9fSwKLSB7MTYsIDB4ZmQzMCwgMCwgezB4MDAsMHgzMiwweGMwLDB4MDgsMHgwNCwweDBhLDB4MjksMHgwMCwweGE5LDB4MDIsMHhhMiwweDQwLDB4MGQsMHhiMCwweDBhLDB4MjAgfX0sCi0gezE2LCAweGZkNDAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MDAsMHgwMCwweDg5LDB4MDAsMHgyMiwweDYxIH19LAotIHsxNiwgMHhmZDUwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHgyNSwweDAxLDB4OWIsMHg4OCwweDJlLDB4NjAsMHgwOCwweDg4LDB4MDIsMHhlOCwweDAwLDB4YjEsMHgwMiB9fSwKLSB7MTYsIDB4ZmQ2MCwgMCwgezB4MjQsMHg0MCwweDE4LDB4OTAsMHgwMiwweDJjLDB4MDAsMHhhYiwweDAxLDB4MjAsMHhjMSwweDA4LDB4YjQsMHg0MiwweDJjLDB4MDAgfX0sCi0gezE2LCAweGZkNzAsIDAsIHsweDgyLDB4MDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4MjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDgwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweDAxLDB4MDAsMHgyMCwweDQwLDB4MGIsMHgwMCwweDBhLDB4MDQsMHg0NiwweDgzLDB4MDEsMHgyYyB9fSwKLSB7MTYsIDB4ZmQ5MCwgMCwgezB4NDAsMHgxYSwweDAwLDB4MDYsMHg4MCwweDAwLDB4ODEsMHgwMCwweDI0LDB4NDAsMHgwOCwweDIwLDB4MGEsMHgwYywweDAxLDB4YTMgfX0sCi0gezE2LCAweGZkYTAsIDAsIHsweDAwLDB4MjQsMHgwMCwweDA4LDB4ODAsMHgwMiwweDAwLDB4MDAsMHhhMSwweDAwLDB4MjAsMHg0MCwweDA5LDB4MzAsMHgwMiwweDAyIH19LAotIHsxNiwgMHhmZGIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDIsMHhjOCwweDAwLDB4MjIsMHgwMCB9fSwKLSB7MTYsIDB4ZmRjMCwgMCwgezB4MGYsMHg5MCwweDAyLDB4MjUsMHgwMCwweGRhLDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAyLDB4Y2MsMHgwMCwweGZkLDB4MDAgfX0sCi0gezE2LCAweGZkZDAsIDAsIHsweDM3LDB4NDAsMHgwYywweDEwLDB4MTMsMHgyYywweDAyLDB4YWYsMHgwMCwweDMyLDB4YzAsMHgwZCwweGIwLDB4MDMsMHgyYywweDAwIH19LAotIHsxNiwgMHhmZGUwLCAwLCB7MHhjYSwweDAwLDB4MzIsMHg0MCwweDRjLDB4OTAsMHgwYiwweDAwLDB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmRmMCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDA3LDB4YzAsMHgwMywweGY0LDB4MWMsMHhmNCwweDAwLDB4M2YgfX0sCi0gezE2LCAweGZlMDAsIDAsIHsweDAwLDB4MWYsMHhjMCwweDIzLDB4YjAsMHgwMiwweDlkLDB4MDEsMHgzZiwweDQwLDB4OGYsMHhjMCwweDA3LDB4ZmMsMHgwMiwweGZmIH19LAotIHsxNiwgMHhmZTEwLCAwLCB7MHgwMCwweDdiLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweDcwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4ZmUyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYSwweDAwLDB4Y2IsMHg4MCwweDNmLDB4MjQgfX0sCi0gezE2LCAweGZlMzAsIDAsIHsweDBhLDB4YzEsMHgwMywweGZjLDB4MjQsMHhjZCwweDIwLDB4MzcsMHgwYSwweDBjLDB4YzIsMHg4MywweDMwLDB4ODAsMHhkYywweDAyIH19LAotIHsxNiwgMHhmZTQwLCAwLCB7MHgzZiwweGNjLDB4MGQsMHhkOSwweDAzLDB4M2MsMHg1OCwweGRmLDB4MzAsMHgzMywweGM4LDB4MGQsMHhmNCwweDIzLDB4M2MsMHg0MCB9fSwKLSB7MTYsIDB4ZmU1MCwgMCwgezB4ZmYsMHgwMCwweDNmLDB4YzUsMHg0ZiwweGYwLDB4MjMsMHhiMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZlNjAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAyLDB4MGIsMHg4MiwweDJlLDB4MDgsMHgwZCwweGI3LDB4MDIsMHhmZCwweDAwLDB4ODMsMHgxOCwweDBhIH19LAotIHsxNiwgMHhmZTcwLCAwLCB7MHg1OCwweDBhLDB4ODQsMHhhMiwweGE1LDB4YTAsMHg4OSwweDMwLDB4MjIsMHg1NSwweDA4LDB4MTIsMHg2MiwweGJkLDB4OTAsMHg4ZiB9fSwKLSB7MTYsIDB4ZmU4MCwgMCwgezB4NjIsMHgyMSwweGQ2LDB4NDgsMHhmMywweDAyLDB4M2MsMHhjNSwweGJmLDB4NDgsMHgyZiwweGQ4LDB4NGIsMHhiNywweDAyLDB4ZTAgfX0sCi0gezE2LCAweGZlOTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZWMsMHgwMCwweDgzLDB4MDAsMHgyZSwweDg5IH19LAotIHsxNiwgMHhmZWEwLCAwLCB7MHgyOCwweDAwLDB4MDIsMHhlYywweGEwLDB4ODksMHgyMiwweDI4LDB4ODIsMHgwOCwweDEyLDB4MDIsMHgyOCwweDQwLDB4OWEsMHgwOCB9fSwKLSB7MTYsIDB4ZmViMCwgMCwgezB4MjgsMHhjOCwweDg4LDB4YjIsMHgwYSwweDBkLDB4MTAsMHg5MywweDEwLDB4YTAsMHhjOCwweDI4LDB4MzAsMHgwMiwweDRjLDB4MDAgfX0sCi0gezE2LCAweGZlYzAsIDAsIHsweGIzLDB4NjAsMHgyYywweGM0LDB4MGIsMHgzMCwweGMyLDB4ZTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZWQwLCAwLCB7MHhjMCwweDE1LDB4YWMsMHg0MCwweDhiLDB4MDAsMHgyZSwweDgwLDB4MDgsMHhiMSwweDAyLDB4ZWMsMHgwMiwweDhiLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4ZmVlMCwgMCwgezB4ZDAsMHgwYSwweDkwLDB4MDIsMHhhYywweDAwLDB4MGIsMHgwMSwweDI2LDB4NDAsMHgwOCwweDk0LDB4MDIsMHg4YywweDAwLDB4OGIgfX0sCi0gezE2LCAweGZlZjAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJjLDB4MTAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGYwIH19LAotIHsxNiwgMHhmZjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxNCwweDhjLDB4MjAsMHhjYiwweDAyLDB4M2UsMHgyZCB9fSwKLSB7MTYsIDB4ZmYxMCwgMCwgezB4MDgsMHg4MCwweDAzLDB4ZWMsMHgwOCwweGM5LDB4ODAsMHgxZSwweDA0LDB4MGMsMHhiMCwweDAzLDB4MDEsMHgwOCwweDUwLDB4MTggfX0sCi0gezE2LCAweGZmMjAsIDAsIHsweDNlLDB4NDAsMHgwYywweDA0LDB4MDMsMHgyYywweDAwLDB4ZGIsMHgwMSwweDMyLDB4YzAsMHgwYywweGIwLDB4MGIsMHgyYywweDA4IH19LAotIHsxNiwgMHhmZjMwLCAwLCB7MHhiYiwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDgwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmY0MCwgMCwgezB4ZTEsMHgwMCwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHg2MCwweDBmLDB4YzAsMHgyMywweGVjLDB4MDAsMHhmZiwweGMwLDB4YmUgfX0sCi0gezE2LCAweGZmNTAsIDAsIHsweDYwLDB4OGYsMHhjOSwweDIzLDB4ZjYsMHg1MCwweGVkLDB4ODAsMHhiOCwweDUwLDB4YWYsMHhjMCwweDAzLDB4ZmMsMHgwMCwweGZmIH19LAotIHsxNiwgMHhmZjYwLCAwLCB7MHgwMCwweDNmLDB4YzEsMHgwZSwweGIwLDB4MDMsMHhmYywweDA0LDB4ZmYsMHgwMiwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4ZmY3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZWIsMHgwMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweGZmODAsIDAsIHsweDBkLDB4OTAsMHgwMywweDJjLDB4MDAsMHg4OSwweDAwLDB4M2UsMHg5OCwweDhjLDB4MzAsMHgwMywweDYxLDB4ODAsMHhmYSwweDQwIH19LAotIHsxNiwgMHhmZjkwLCAwLCB7MHgzZSwweDQwLDB4MmMsMHhhNSwweDAzLDB4MmMsMHgwMCwweGZiLDB4MDEsMHgzYywweGMwLDB4MmMsMHgzMCwweDAzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4ZmZhMCwgMCwgezB4ZGIsMHgwMiwweDMyLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZmYjAsIDAsIHsweGNhLDB4MDAsMHgyZSwweDgwLDB4OGIsMHg4MiwweGEwLDB4YzAsMHg4YywweDkwLDB4MDIsMHgzYywweDAwLDB4OGIsMHhmMCwweDIyIH19LAotIHsxNiwgMHhmZmMwLCAwLCB7MHhjMiwweDBkLDB4ODAsMHgwMiwweDI3LDB4MDAsMHg4YiwweDEwLDB4MjIsMHg0MCwweDA4LDB4ODAsMHgyMiwweDNjLDB4MDAsMHhiZiB9fSwKLSB7MTYsIDB4ZmZkMCwgMCwgezB4MDAsMHgyZiwweGMwLDB4MDgsMHhmMCwweDAyLDB4M2MsMHgwMCwweGJmLDB4MDEsMHhhMywweGMwLDB4MGIsMHhmMCwweDEyLDB4ZjIgfX0sCi0gezE2LCAweGZmZTAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGMsMHgwMCwweGIzLDB4MWMsMHgyMCwweDQwIH19LAotIHsxNiwgMHhmZmYwLCAwLCB7MHgwOCwweDAwLDB4MDYsMHgyYywweDAwLDB4OWIsMHgwMCwweDIwLDB4ZDAsMHgwOCwweDIwLDB4MDIsMHg0YywweDAwLDB4YTMsMHgwMCB9fSwKLSB7MTYsIDB4ODAxMCwgMCwgezB4MmMsMHhjMCwweDA4LDB4MTAsMHgwYSwweDBjLDB4MDAsMHhiYiwweDAwLDB4MjgsMHhjMCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MDAgfX0sCi0gezE2LCAweDgwMjAsIDAsIHsweGIzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4ZjgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MDMwLCAwLCB7MHgyMiwweDExLDB4MWUsMHgwMCwweDk3LDB4YTAsMHgyMSwweGEwLDB4MDgsMHg3OSwweDAyLDB4MWUsMHgwMCwweDk3LDB4OTAsMHgyMSB9fSwKLSB7MTYsIDB4ODA0MCwgMCwgezB4NjAsMHgwOSwweGU4LDB4MjIsMHgzZSwweDAwLDB4YWYsMHg4NCwweDIxLDB4ZTQsMHg0OCwweDVjLDB4MDIsMHgxZSwweDAwLDB4YjcgfX0sCi0gezE2LCAweDgwNTAsIDAsIHsweDkwLDB4MmQsMHhlMCwweDA5LDB4NzgsMHgwMCwweDFlLDB4MDksMHhiMywweDkwLDB4MjEsMHhlNCwweDBiLDB4NzgsMHgwMiwweGQ4IH19LAotIHsxNiwgMHg4MDYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgxOCwweDJjLDB4NDAsMHhiMywweGIwLDB4MzIsMHg0MCB9fSwKLSB7MTYsIDB4ODA3MCwgMCwgezB4MmMsMHg4MSwweDEzLDB4MGMsMHg0MiwweGQxLDB4MDAsMHhiMCwweGMwLDB4OGMsMHgzMCwweDAzLDB4NDgsMHgyMCwweGUzLDB4MDEgfX0sCi0gezE2LCAweDgwODAsIDAsIHsweDNjLDB4YzAsMHgwYywweDMwLDB4MDMsMHgwYywweDAwLDB4ZjMsMHgxMCwweDNjLDB4YzAsMHhjZCwweDMyLDB4MGIsMHgwYywweDQwIH19LAotIHsxNiwgMHg4MDkwLCAwLCB7MHhkMywweDAwLDB4MzAsMHhjMCwweDBmLDB4MzAsMHgwMywweGQyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODBhMCwgMCwgezB4NDAsMHgxNSwweGJjLDB4MDAsMHhlNywweDAwLDB4M2YsMHg4MCwweDBiLDB4ZjEsMHgwMywweGZkLDB4MDAsMHg2ZCwweDAwLDB4MzIgfX0sCi0gezE2LCAweDgwYjAsIDAsIHsweDQwLDB4MWYsMHg3MCwweDA3LDB4ZDgsMHg0MSwweGMzLDB4MTAsMHgzYiwweGMwLDB4MGYsMHhkMSwweDAzLDB4ZmQsMHgwMCwweGZmIH19LAotIHsxNiwgMHg4MGMwLCAwLCB7MHgxMCwweDNmLDB4YzAsMHgwZSwweGYwLDB4MDMsMHhlYywweDEwLDB4ZmYsMHgwOCwweDNmLDB4YzMsMHgwZiwweGYwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4ODBkMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhlYywweDA0LDB4ZmIsMHgwMiwweDNlLDB4NDAgfX0sCi0gezE2LCAweDgwZTAsIDAsIHsweDBiLDB4YTAsMHgwMywweGFjLDB4MDAsMHhkYiwweDAwLDB4MzYsMHg4MCwweDBkLDB4YjAsMHgwMywweGFjLDB4MDAsMHhlOCwweDAwIH19LAotIHsxNiwgMHg4MGYwLCAwLCB7MHgzNiwweGMxLDB4MmUsMHg5MCwweDAzLDB4MmMsMHgwMCwweGNiLDB4YTAsMHgzNiwweGRjLDB4MGYsMHhiMCwweDAzLDB4MmQsMHg2OCB9fSwKLSB7MTYsIDB4ODEwMCwgMCwgezB4ZmIsMHhhMCwweDkyLDB4YzIsMHgwYywweGIxLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxMTAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDA4LDB4MzcsMHgwMCwweDJkLDB4YzAsMHgwYiwweGUwLDB4MDIsMHgxZCwweDgwLDB4YjcsMHgwNCwweDIzIH19LAotIHsxNiwgMHg4MTIwLCAwLCB7MHgwMCwweDBhLDB4NDAsMHgwMiwweDFjLDB4MTgsMHg4NCwweDAwLDB4MjUsMHhjMCwweDE4LDB4NTAsMHgzMiwweDBkLDB4ODAsMHhhMyB9fSwKLSB7MTYsIDB4ODEzMCwgMCwgezB4MzAsMHgyMSwweGNjLDB4MGIsMHgzNCwweDgyLDB4MWMsMHgxMCwweGI3LDB4MzAsMHgyMSwweGM4LDB4MDgsMHg3MCwweDAyLDB4ZDIgfX0sCi0gezE2LCAweDgxNDAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgyMCwweGI3LDB4ODAsMHgyZCwweDYwIH19LAotIHsxNiwgMHg4MTUwLCAwLCB7MHgwYiwweGZjLDB4MjIsMHg5ZSwweDAwLDB4OGQsMHg4MCwweDI1LDB4YTAsMHgwOCwweGY4LDB4MjIsMHg5MiwweDAwLDB4YjQsMHg4MCB9fSwKLSB7MTYsIDB4ODE2MCwgMCwgezB4MjUsMHhlMCwweDA4LDB4ZjgsMHgwMiwweDFlLDB4MDAsMHg4NywweGIwLDB4MjEsMHhlMCwweDA5LDB4N2EsMHgwMiwweDFlLDB4MTggfX0sCi0gezE2LCAweDgxNzAsIDAsIHsweGIzLDB4ODAsMHgyMSwweGUwLDB4MDgsMHg3OCwweDAyLDB4ZjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTgwLCAwLCB7MHg0OCwweDA0LDB4YzUsMHgyMCwweGIzLDB4MDEsMHgyYywweGQ4LDB4MGIsMHgzYywweDAyLDB4MmMsMHgwOCwweGI5LDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4ODE5MCwgMCwgezB4MDMsMHgwYSwweDAwLDB4ODIsMHgyMiwweDA4LDB4OTAsMHgwZCwweDI2LDB4ZTQsMHgwOCwweDEwLDB4MDIsMHgwYywweDAwLDB4YTMgfX0sCi0gezE2LCAweDgxYTAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDBiLDB4MzAsMHgwMiwweDZjLDB4MDAsMHhiMywweDAwLDB4MjIsMHhjMCwweDI4LDB4MzAsMHgwMiwweGMyIH19LAotIHsxNiwgMHg4MWIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweDk5LDB4MDAsMHhmYSwweDAyLDB4M2YsMHg5MCB9fSwKLSB7MTYsIDB4ODFjMCwgMCwgezB4MGYsMHhlYywweDIzLDB4YTgsMHgwMCwweGRhLDB4MDAsMHgzNSwweDgwLDB4MGQsMHhlMCwweDAyLDB4YmEsMHgwMiwweGZlLDB4YzIgfX0sCi0gezE2LCAweDgxZDAsIDAsIHsweGI2LDB4YTAsMHgwZSwweGU0LDB4MGIsMHgyOCwweDAwLDB4Y2EsMHgwMCwweGIyLDB4ODAsMHgwZiwweGEwLDB4MGIsMHgyOCwweDAwIH19LAotIHsxNiwgMHg4MWUwLCAwLCB7MHhmYSwweDAwLDB4MzIsMHg4MCwweDBjLDB4YTAsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODFmMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODIsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UgfX0sCi0gezE2LCAweDgyMDAsIDAsIHsweDAwLDB4MGYsMHg4MSwweDAzLDB4ZTAsMHg0MCwweGU4LDB4MTAsMHgzYSwweDAwLDB4NGYsMHg4NCwweDgzLDB4ZTAsMHgwMCwweGY4IH19LAotIHsxNiwgMHg4MjEwLCAwLCB7MHgwMCwweDNhLDB4MDAsMHgwZiwweDAwLDB4MDMsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4ODIyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNSwweDAwLDB4YzksMHgwMiwweDNlLDB4NDAgfX0sCi0gezE2LCAweDgyMzAsIDAsIHsweDBmLDB4OTAsMHgyMywweDI0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHg2OCwweDJmLDB4MTAsMHgwMywweDI0LDB4MDAsMHhlOSwweDE0IH19LAotIHsxNiwgMHg4MjQwLCAwLCB7MHgzMiwweDQwLDB4MGQsMHg5MCwweDBiLDB4MDQsMHgwMCwweGQ5LDB4MDAsMHgxZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4ODI1MCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgyNjAsIDAsIHsweDgwLDB4MTQsMHg2NCwweDAwLDB4ODksMHgwMSwweDJlLDB4NDAsMHg0YiwweDkwLDB4MTIsMHgyNCwweDAwLDB4ODksMHhjMiwweGEyIH19LAotIHsxNiwgMHg4MjcwLCAwLCB7MHg2MCwweDg4LDB4OTAsMHgwMywweDY0LDB4MDAsMHg4OSwweGMxLDB4YTIsMHg0MCwweDQ4LDB4MTYsMHgwMywweDY0LDB4MDIsMHg4OSB9fSwKLSB7MTYsIDB4ODI4MCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDIyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgzZSwweDQwLDB4MjgsMHg5MCwweDBhLDB4MjAgfX0sCi0gezE2LCAweDgyOTAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA0LDB4MjQsMHgwMCwweDg5LDB4MDIsMHgyZSwweDQwIH19LAotIHsxNiwgMHg4MmEwLCAwLCB7MHgwYiwweDEwLDB4MDIsMHgyNCwweDAwLDB4ODksMHgxMCwweDIyLDB4NDAsMHg4OSwweDkwLDB4MDIsMHhhYywweDAwLDB4YTEsMHgwOCB9fSwKLSB7MTYsIDB4ODJiMCwgMCwgezB4MjIsMHg0MCwweDA5LDB4OTgsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MmEsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAgfX0sCi0gezE2LCAweDgyYzAsIDAsIHsweDg5LDB4MDAsMHgyNiwweDQwLDB4MDgsMHgxMCwweDAyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MmQwLCAwLCB7MHgwOCwweDAwLDB4MjQsMHgwMCwweDgxLDB4MDAsMHgyYywweDQxLDB4MGIsMHgxMiwweDAyLDB4MDQsMHg4MSwweDgxLDB4MjAsMHgyMiB9fSwKLSB7MTYsIDB4ODJlMCwgMCwgezB4NDgsMHgwOCwweDEyLDB4MDIsMHhjNCwweDgxLDB4ODEsMHgyNCwweDAyLDB4NDgsMHgwYSwweDkwLDB4MDIsMHg4NCwweGEwLDB4ODEgfX0sCi0gezE2LCAweDgyZjAsIDAsIHsweDI4LDB4NmMsMHg0YSwweDA4LDB4MTIsMHhkMiwweDA0LDB4YTEsMHg4MSwweDI4LDB4MmMsMHg0YSwweDA4LDB4MTIsMHg4MiwweDAyIH19LAotIHsxNiwgMHg4MzAwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwOCwweDYxLDB4NDAsMHhjOCwweDAwLDB4MmUsMHgxNCB9fSwKLSB7MTYsIDB4ODMxMCwgMCwgezB4MGYsMHg4NSwweDBiLDB4MjEsMHg0MiwweGNhLDB4NTAsMHgyMiwweDE0LDB4MGQsMHg4NSwweDQzLDB4YTEsMHg0MCwweGU4LDB4NTAgfX0sCi0gezE2LCAweDgzMjAsIDAsIHsweDMwLDB4MDAsMHgwZCwweDg1LDB4MDIsMHhhMSwweGMwLDB4ZDgsMHgyMCwweDNhLDB4MDgsMHgyYywweDgyLDB4MGIsMHgyMCwweDgyIH19LAotIHsxNiwgMHg4MzMwLCAwLCB7MHhjOCwweDIwLDB4MzQsMHgwOSwweDhjLDB4ODIsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODM0MCwgMCwgezB4OTgsMHgwZCwweGZjLDB4MDIsMHhmOSwweDAwLDB4M2YsMHg0MCwweDRmLDB4ZDEsMHgwMywweGU0LDB4NDAsMHhmNSwweDE0LDB4YmYgfX0sCi0gezE2LCAweDgzNTAsIDAsIHsweDQ0LDB4MGQsMHg1MSwweDIzLDB4NWMsMHg0MCwweGY1LDB4MTAsMHgxZiwweDRlLDB4NGQsMHg1MCwweDAzLDB4NjQsMHgwOCwweGY5IH19LAotIHsxNiwgMHg4MzYwLCAwLCB7MHgyOCwweDNlLDB4NGEsMHg4ZiwweDkyLDB4ODMsMHhlNCwweGEwLDB4ZjksMHgyOCwweDNhLDB4NGIsMHgwZiwweDkyLDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4ODM3MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhmNCwweDQwLDB4ZmQsMHgwMCwweDMwLDB4NDAgfX0sCi0gezE2LCAweDgzODAsIDAsIHsweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhkZCwweDAwLDB4M2IsMHg0MCwweDBlLDB4OTAsMHgwMywweDc0LDB4MDAsMHg1ZCwweDAwIH19LAotIHsxNiwgMHg4MzkwLCAwLCB7MHgzNiwweDY0LDB4MGQsMHhkMCwweDAwLDB4YTYsMHgwMCwweGY5LDB4NDAsMHgzMiwweDc4LDB4MGMsMHg5OSwweDAzLDB4MjQsMHg0MCB9fSwKLSB7MTYsIDB4ODNhMCwgMCwgezB4YzksMHg5MCwweDMyLDB4NTAsMHgwZiwweDliLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgzYjAsIDAsIHsweDM4LDB4MTAsMHhlMiwweDgwLDB4YjgsMHgwMCwweDIyLDB4MDEsMHgwOCwweDgwLDB4MGEsMHgyMCwweDAwLDB4ODgsMHgwMCwweDJhIH19LAotIHsxNiwgMHg4M2MwLCAwLCB7MHgwMCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHg4OCwweDAwLDB4MjIsMHgyMCwweDA4LDB4OGEsMHg4YiwweGUxLDB4MDAsMHhiOCB9fSwKLSB7MTYsIDB4ODNkMCwgMCwgezB4ODAsMHgyMiwweDMwLDB4MjgsMHgwZCwweDAyLDB4MjIsMHgwMCwweGQ4LDB4ZTQsMHgyMiwweDI4LDB4MGIsMHg4ZiwweDBhLDB4MGUgfX0sCi0gezE2LCAweDgzZTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHg4MCwweGIxLDB4MDAsMHhhMCwweDQwIH19LAotIHsxNiwgMHg4M2YwLCAwLCB7MHgwOCwweDEwLDB4MDIsMHgwNCwweDAwLDB4ODksMHgwMCwweDA4LDB4NDAsMHgwYSwweDkwLDB4NDIsMHg0NCwweDAwLDB4OTEsMHgwMCB9fSwKLSB7MTYsIDB4ODQwMCwgMCwgezB4MjAsMHg1OCwweDI4LDB4OTAsMHgwMiwweDg1LDB4MDAsMHg4MSwweDIwLDB4YTAsMHg0YywweDA5LDB4MTIsMHgwYSwweDA0LDB4ODAgfX0sCi0gezE2LCAweDg0MTAsIDAsIHsweDkxLDB4NDAsMHhhMCwweDQwLDB4MGIsMHgxMCwweDAyLDB4MDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NDIwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMCwweGI5LDB4MDIsMHgyMCwweDQwLDB4MDgsMHg5MCwweDAyLDB4MDQsMHgwMCwweDg5LDB4MDEsMHgyMiB9fSwKLSB7MTYsIDB4ODQzMCwgMCwgezB4NDAsMHgyOCwweDkwLDB4MjIsMHgwNCwweDAwLDB4ODksMHgxMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjEgfX0sCi0gezE2LCAweDg0NDAsIDAsIHsweDAwLDB4MjIsMHg0MCwweDgxLDB4OTAsMHgwMiwweDA0LDB4MDAsMHg5MSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2IH19LAotIHsxNiwgMHg4NDUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU1LDB4MDAsMHhmMSwweDAwLDB4MzIsMHg2MCB9fSwKLSB7MTYsIDB4ODQ2MCwgMCwgezB4MmMsMHg5MiwweDEzLDB4MjQsMHgwMiwweGQxLDB4MTAsMHgzYSwweDQwLDB4MGUsMHgxMiwweDAzLDB4NjYsMHgwNCwweGQ5LDB4MDAgfX0sCi0gezE2LCAweDg0NzAsIDAsIHsweGI2LDB4NDAsMHgwZCwweDE5LDB4MDMsMHhhNCwweDAwLDB4ZjksMHgwMCwweDMyLDB4NDAsMHgwOSwweDkwLDB4MDEsMHgyNCwweDAwIH19LAotIHsxNiwgMHg4NDgwLCAwLCB7MHhkOSwweDAyLDB4MjIsMHg0MCwweDBmLDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODQ5MCwgMCwgezB4MmEsMHgwMSwweGE1LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2NCwweDBmLDB4MTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDgxLDB4M2UgfX0sCi0gezE2LCAweDg0YTAsIDAsIHsweDY2LDB4OGYsMHg5MCwweDIzLDB4ZTQsMHg4MCwweGY5LDB4MDQsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4ZTQsMHgwNCwweGY5IH19LAotIHsxNiwgMHg4NGIwLCAwLCB7MHgwMCwweDNjLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDEwLDB4MDMsMHhjYSB9fSwKLSB7MTYsIDB4ODRjMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJhLDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgyNCwweDNlLDB4MDAgfX0sCi0gezE2LCAweDg0ZDAsIDAsIHsweDJjLDB4ODQsMHgwMywweDIwLDB4MDAsMHhiOCwweDIwLDB4M2UsMHgwMCwweDhjLDB4ODAsMHgwMywweGEwLDB4MDAsMHg3MCwweDgyIH19LAotIHsxNiwgMHg4NGUwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjAsMHgwOCwweGY4LDB4MDAsMHgzMiwweDAwLDB4MmMsMHg4MCwweDBiLDB4MjAsMHgwOCB9fSwKLSB7MTYsIDB4ODRmMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg1MDAsIDAsIHsweDI4LDB4MDUsMHgyOCwweDA0LDB4YmUsMHg4MCwweDNhLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDA0LDB4OGUsMHgwMCwweDZkIH19LAotIHsxNiwgMHg4NTEwLCAwLCB7MHg5MCwweDBkLDB4YTAsMHgwMiwweDNhLDB4MDAsMHg4ZSwweDgwLDB4YTIsMHg4MCwweDBlLDB4ZTAsMHgwYiwweDY4LDB4MDAsMHhiYSB9fSwKLSB7MTYsIDB4ODUyMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweGRhLDB4MDAsMHgyZSwweDgwLDB4MDgsMHhhMCwweDAyLDB4Y2EgfX0sCi0gezE2LCAweDg1MzAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDgxLDB4NGMsMHgwMCwweGIxLDB4MDAsMHgyYywweGMwIH19LAotIHsxNiwgMHg4NTQwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHgwYywweDE4LDB4YTMsMHgwMiwweDJjLDB4MTAsMHg4OCwweDMwLDB4MDYsMHg4MiwweDgxLDB4YTAsMHgwMCB9fSwKLSB7MTYsIDB4ODU1MCwgMCwgezB4MmEsMHhjMCwweDBiLDB4MzAsMHgwYSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDFhLDB4YjAsMHgwMiwweDhjLDB4MDEgfX0sCi0gezE2LCAweDg1NjAsIDAsIHsweDgzLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NTcwLCAwLCB7MHgyMCwweDAxLDB4MWMsMHgxMCwweGI0LDB4MGEsMHgyYiwweGM4LDB4MDgsMHgzMSwweDI2LDB4MWMsMHgwMCwweDg2LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4ODU4MCwgMCwgezB4YzAsMHgwOSwweDcyLDB4MDIsMHgxZCwweDAwLDB4YTUsMHg0MCwweDI5LDB4YzAsMHgwYSwweDYwLDB4MDIsMHg1YywweDg4LDB4YjMgfX0sCi0gezE2LCAweDg1OTAsIDAsIHsweDIwLDB4MjUsMHhjOCwweDBhLDB4NzIsMHgwMiwweDljLDB4ODAsMHg5NywweDIwLDB4MmMsMHhlOCwweDgwLDB4NzIsMHgwMiwweGU4IH19LAotIHsxNiwgMHg4NWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwOCwweDE2LDB4MDAsMHhiNSwweDgwLDB4M2QsMHhlMiB9fSwKLSB7MTYsIDB4ODViMCwgMCwgezB4MGMsMHg3YSwweDhiLDB4MGUsMHhjMCwweGE3LDB4ODEsMHgyYywweDIwLDB4MGMsMHhmYywweDAzLDB4OTIsMHgwMiwweGVmLDB4ODAgfX0sCi0gezE2LCAweDg1YzAsIDAsIHsweDM5LDB4ZTQsMHgwYiwweGQ4LDB4MDEsMHgxZiwweDAwLDB4ZjcsMHg4MCwweGIzLDB4ZjQsMHg4ZSwweDc5LDB4MDMsMHg4ZSwweDAwIH19LAotIHsxNiwgMHg4NWQwLCAwLCB7MHhjNywweGM0LDB4M2QsMHhlOCwweDJjLDB4N2IsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODVlMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhmOCwweDAwLDB4M2UsMHhkZCwweDg3LDB4YjYsMHgwMywweGVkLDB4Y2MsMHhlOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweDg1ZjAsIDAsIHsweDQwLDB4MGYsMHhiMCwweDA3LDB4Y2MsMHgxMCwweDBiLDB4MDAsMHgzNiwweGQ4LDB4MGYsMHg4MCwweDQzLDB4YWQsMHg4MCwweGZiIH19LAotIHsxNiwgMHg4NjAwLCAwLCB7MHgyOCwweDNhLDB4YzAsMHgwZCwweGI0LDB4MDMsMHg2YywweGUyLDB4ZWIsMHg2MCwweDNlLDB4ZDQsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4ODYxMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4ZmUsMHg5MCwweDNmLDB4ZTUgfX0sCi0gezE2LCAweDg2MjAsIDAsIHsweDBlLDB4ZjgsMHgwMywweDNlLDB4MTAsMHhmZiwweDkwLDB4MTcsMHg2MCwweDBmLDB4ZmMsMHgwMywweDdhLDB4MDAsMHhlZSwweDgwIH19LAotIHsxNiwgMHg4NjMwLCAwLCB7MHgzNywweGUyLDB4MGUsMHg3OCwweDBmLDB4ZmYsMHg0MCwweGVmLDB4ODgsMHgxZiwweGUwLDB4MGMsMHhmOCwweDgzLDB4ZmUsMHg4MCB9fSwKLSB7MTYsIDB4ODY0MCwgMCwgezB4Y2YsMHhkMCwweGIzLDB4ZjAsMHgwYywweGY4LDB4YzMsMHgxMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg2NTAsIDAsIHsweGE4LDB4MTEsMHg5YywweDQwLDB4YjQsMHgxMCwweDBmLDB4Y2MsMHgwMCwweDcyLDB4MDIsMHgxYywweDAwLDB4YjYsMHgwMiwweDA5IH19LAotIHsxNiwgMHg4NjYwLCAwLCB7MHhjMCwweDI4LDB4ZjAsMHgwMiwweDk4LDB4MDAsMHhhNiwweDAwLDB4MjEsMHhjMCwweDBiLDB4NjAsMHgwMywweGZjLDB4MDIsMHg4NyB9fSwKLSB7MTYsIDB4ODY3MCwgMCwgezB4MDAsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZGUsMHgwMCwweDhmLDB4MTAsMHgyMSwweGMwLDB4MDgsMHhmMCwweDAzLDB4NmEgfX0sCi0gezE2LCAweDg2ODAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4OTQsMHgwMCwweGI2LDB4MDIsMHgyZiwweGMyIH19LAotIHsxNiwgMHg4NjkwLCAwLCB7MHgxYSwweDMwLDB4ODAsMHgxYywweDAwLDB4YjYsMHgwOCwweDAxLDB4NDAsMHgwYSwweGYwLDB4MDIsMHgxOCwweDAwLDB4ODcsMHgwMCB9fSwKLSB7MTYsIDB4ODZhMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4ZDAsMHgwMiwweDljLDB4MTAsMHg4NywweDAwLDB4MjksMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4NDQgfX0sCi0gezE2LCAweDg2YjAsIDAsIHsweDg3LDB4MTAsMHg2NCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MDYsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NmMwLCAwLCB7MHg2MCwweDE0LDB4Y2UsMHg2MCwweGIwLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzNCwweDBhLDB4MGMsMHgwOCwweGIwLDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4ODZkMCwgMCwgezB4NDAsMHgwOCwweDMwLDB4YTIsMHg4OSwweDgwLDB4YTIsMHg2MiwweDIwLDB4ZTAsMHgwYiwweDAwLDB4MGEsMHhjYywweDA4LDB4ODMgfX0sCi0gezE2LCAweDg2ZTAsIDAsIHsweDAwLDB4NmMsMHhjMCwweDA4LDB4MzAsMHg1MiwweGNjLDB4MDAsMHg4MywweDAwLDB4MjQsMHhjMCwweDA4LDB4MzAsMHgwMiwweDU4IH19LAotIHsxNiwgMHg4NmYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFlLDB4MDAsMHhmOCwweDAwLDB4M2YsMHhkMCB9fSwKLSB7MTYsIDB4ODcwMCwgMCwgezB4MGUsMHhmYywweDAzLDB4M2MsMHgwMCwweGY5LDB4MDAsMHg5MiwweDg0LDB4MGYsMHhmYywweDAzLDB4NjQsMHgwMCwweDgwLDB4MDAgfX0sCi0gezE2LCAweDg3MTAsIDAsIHsweGI3LDB4YzMsMHgwZiwweGI4LDB4ODMsMHhiYywweDA0LDB4ZWYsMHgwMCwweDNmLDB4YzAsMHgzYywweGYwLDB4MDMsMHhmYywweDAyIH19LAotIHsxNiwgMHg4NzIwLCAwLCB7MHhjZiwweDAwLDB4MzcsMHhjMCwweDI4LDB4ZjAsMHgxMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODczMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmOCwweDQxLDB4M2UsMHhjOCwweDBmLDB4MzIsMHgwMywweGVjLDB4MDAsMHhmOCwweDAwLDB4M2EgfX0sCi0gezE2LCAweDg3NDAsIDAsIHsweGM0LDB4MGYsMHhiMSwweDAzLDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzNiwweGMwLDB4MGYsMHhlNCwweDBiLDB4ZWMsMHgwNCwweGZiIH19LAotIHsxNiwgMHg4NzUwLCAwLCB7MHgwMCwweDNlLDB4YzEsMHgwZiwweGIwLDB4NDMsMHhlYywweDA0LDB4ZmIsMHgwMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlNCB9fSwKLSB7MTYsIDB4ODc2MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmNCwweDAwLDB4ZmMsMHg4MCwweDNmLDB4YzAgfX0sCi0gezE2LCAweDg3NzAsIDAsIHsweDFmLDB4ZjAsMHgwMywweDNjLDB4MDgsMHhmYiwweDAwLDB4MzMsMHg4MCwweDJlLDB4ZjAsMHgxMywweGE0LDB4MDQsMHhjYiwweDAwIH19LAotIHsxNiwgMHg4NzgwLCAwLCB7MHhiOSwweGMwLDB4MmMsMHhkOCwweDBiLDB4M2MsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MDksMHg3MCwweDAwLDB4MmMsMHgwNCB9fSwKLSB7MTYsIDB4ODc5MCwgMCwgezB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg3YTAsIDAsIHsweGMxLDB4MDAsMHg2YywweDAwLDB4YjgsMHg4MCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDMsMHg2YywweDAwLDB4YjksMHgxNiwweDI4IH19LAotIHsxNiwgMHg4N2IwLCAwLCB7MHg3MiwweDA4LDB4YjAsMHgyMiwweDI3LDB4NDAsMHhkYiwweDAwLDB4MjIsMHhjMCwweDA4LDB4YmQsMHg4MiwweDJjLDB4MDgsMHhiYiB9fSwKLSB7MTYsIDB4ODdjMCwgMCwgezB4MDAsMHgyZSwweGMwLDB4NDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMxLDB4MGIsMHhiMCwweDAyLDB4ZTAgfX0sCi0gezE2LCAweDg3ZDAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweGI4LDB4NjAsMHgyZSwweGMwIH19LAotIHsxNiwgMHg4N2UwLCAwLCB7MHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4YjEsMHgwMCwweDJhLDB4ODQsMHg0YSwweDMwLDB4MjIsMHhhYywweDIwLDB4OTgsMHg4MCB9fSwKLSB7MTYsIDB4ODdmMCwgMCwgezB4MmEsMHhjMCwweDA4LDB4MzAsMHgwMiwweGFjLDB4MDAsMHgzYiwweDAwLDB4MmMsMHhjMCwweDBhLDB4YjAsMHgwMiwweGFjLDB4MDggfX0sCi0gezE2LCAweDg4MDAsIDAsIHsweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDQyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ODEwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwMSwweGIwLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4NGMsMHgwNCwweGIwLDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ODgyMCwgMCwgezB4ODAsMHgwOCwweDMwLDB4MDIsMHgwMCwweDAwLDB4MTAsMHgwNCwweDI4LDB4YzAsMHgwOCwweDIwLDB4NDIsMHg4YywweDAwLDB4YjMgfX0sCi0gezE2LCAweDg4MzAsIDAsIHsweDAwLDB4MmMsMHhjMCwweDQyLDB4MzAsMHgwYSwweDhjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDhiLDB4MzAsMHgwMiwweGMyIH19LAotIHsxNiwgMHg4ODQwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY0LDB4MDAsMHhmOCwweDUwLDB4M2YsMHhjMCB9fSwKLSB7MTYsIDB4ODg1MCwgMCwgezB4MGIsMHhmMCwweDAzLDB4M2MsMHgwMCwweGZhLDB4MDQsMHgzMiwweDgwLDB4MGUsMHhmMCwweDIzLDB4YWMsMHgwMCwweGQ5LDB4MDAgfX0sCi0gezE2LCAweDg4NjAsIDAsIHsweDNiLDB4YzAsMHgwYywweDkwLDB4MDMsMHhiYywweDA0LDB4ZmYsMHgwMCwweDNkLDB4YzAsMHgyZSwweGYwLDB4MGIsMHgzYywweDAwIH19LAotIHsxNiwgMHg4ODcwLCAwLCB7MHhmZiwweDA0LDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODg4MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmYywweDAwLDB4M2YsMHhjMCwweDA3LDB4ZjAsMHgwMywweGZjLDB4MDQsMHg3YywweDAyLDB4YjUgfX0sCi0gezE2LCAweDg4OTAsIDAsIHsweDAwLDB4MGYsMHhmMCwweDAzLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgzNywweGMwLDB4MGYsMHhmMCwweDEzLDB4N2MsMHgwMCwweGZmIH19LAotIHsxNiwgMHg4OGEwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHgwZCwweGYwLDB4MDMsMHg2ZCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgxZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4ODhiMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkMiwweDAwLDB4ZDUsMHg4MCwweDMzLDB4MGEgfX0sCi0gezE2LCAweDg4YzAsIDAsIHsweDRjLDB4ZjgsMHgwMywweGYyLDB4MDAsMHhmYywweDAwLDB4MzcsMHgyNiwweDFmLDB4Y2EsMHgwMywweGJjLDB4YzQsMHhjZiwweDIwIH19LAotIHsxNiwgMHg4OGQwLCAwLCB7MHgzMywweGU0LDB4MGYsMHg3OCwweDAzLDB4M2UsMHg0NCwweGNmLDB4MDAsMHgzYiwweGNlLDB4OWYsMHg2OCwweDEzLDB4ZDAsMHgwMCB9fSwKLSB7MTYsIDB4ODhlMCwgMCwgezB4Y2QsMHg4MCwweGIzLDB4NjAsMHgwZiwweGZhLDB4ODMsMHhmMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg4ZjAsIDAsIHsweDgwLDB4MTAsMHhlMCwweDgwLDB4YzksMHgyOCwweDIyLDB4MzAsMHgwOCwweGIyLDB4MjIsMHhlYSwweDAxLDB4YjgsMHg4MiwweDIwIH19LAotIHsxNiwgMHg4OTAwLCAwLCB7MHg1MCwweDRmLDB4OWMsMHgwMCwweGE4LDB4ZDEsMHhkYiwweDEwLDB4YTYsMHhlMCwweDE3LDB4YjgsMHgwMywweGVjLDB4ODAsMHhkYiB9fSwKLSB7MTYsIDB4ODkxMCwgMCwgezB4MDgsMHgxZiwweGQwLDB4MGIsMHhiOCwweDAyLDB4ZjYsMHgwMCwweGZiLDB4ODAsMHgyMiwweDQwLDB4MGIsMHhiMCwweDAyLDB4NjAgfX0sCi0gezE2LCAweDg5MjAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzQsMHgyMCwweDgxLDB4ODAsMHgyMCwweDAwIH19LAotIHsxNiwgMHg4OTMwLCAwLCB7MHg4YiwweDMwLDB4ODIsMHhjMCwweDAwLDB4YjAsMHgxMCwweDI4LDB4MDgsMHg4YiwweDExLDB4MzAsMHhjNCwweDg0LDB4OTAsMHgyOCB9fSwKLSB7MTYsIDB4ODk0MCwgMCwgezB4MjQsMHhjOCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweDEwLDB4MDQsMHhjOCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAgfX0sCi0gezE2LCAweDg5NTAsIDAsIHsweGIzLDB4MDAsMHgyNCwweDQwLDB4MGIsMHgzMCwweDAyLDB4ZTIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4OTYwLCAwLCB7MHhjMCwweDE1LDB4YTYsMHgwMCwweDgxLDB4MDAsMHgyMiwweDEwLDB4MGIsMHhiMCwweDEyLDB4ZWEsMHgyMCwweGJiLDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ODk3MCwgMCwgezB4NzAsMHgwYSwweDljLDB4MDIsMHg2MiwweDAwLDB4OTgsMHg4OCwweDI2LDB4YzgsMHgwMiwweGIyLDB4MDIsMHg4ZSwweDA4LDB4OGIgfX0sCi0gezE2LCAweDg5ODAsIDAsIHsweDE4LDB4MjIsMHhjMCwweDBiLDB4YTAsMHgwMiwweGVlLDB4MjAsMHgzYiwweDAwLDB4MjYsMHg0MCwweDBiLDB4YjAsMHgwMiwweDcwIH19LAotIHsxNiwgMHg4OTkwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGUwLDB4MDAsMHhjYiwweDAwLDB4MzIsMHg4MCB9fSwKLSB7MTYsIDB4ODlhMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZTcsMHgwMCwweGI4LDB4NTIsMHgzZSwweDIwLDB4NGIsMHgwYywweDQzLDB4ZWYsMHg4MiwweDliLDB4YzAgfX0sCi0gezE2LCAweDg5YjAsIDAsIHsweDMyLDB4YzAsMHgwYiwweGIwLDB4MDIsMHg2YywweDAxLDB4OGIsMHg4MCwweDJlLDB4YzAsMHgwYiwweGEwLDB4ODMsMHhlNiwweDAwIH19LAotIHsxNiwgMHg4OWMwLCAwLCB7MHhmYiwweDAwLDB4MzYsMHg0MCwweDBmLDB4ZjAsMHgwMywweGQwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODlkMCwgMCwgezB4ZTAsMHgwMSwweGIwLDB4MDIsMHhmZiwweDA0LDB4M2YsMHg5MCwweDBjLDB4ZjEsMHgwMSwweGY0LDB4MDgsMHg3ZCwweDgwLDB4MzcgfX0sCi0gezE2LCAweDg5ZTAsIDAsIHsweDAwLDB4MGYsMHhjMCwweDIzLDB4OTgsMHgwMCwweGY3LDB4MDAsMHgyYiwweGUwLDB4MGYsMHhmOCwweDIzLDB4ZmMsMHgwNiwweGZiIH19LAotIHsxNiwgMHg4OWYwLCAwLCB7MHg4MywweGJmLDB4YzAsMHg4NywweGQwLDB4MDMsMHhkYywweDAwLDB4ZWYsMHgwMCwweDNiLDB4YzAsMHgwZiwweGIwLDB4MDEsMHhmOCB9fSwKLSB7MTYsIDB4OGEwMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhNiwweDAwLDB4Y2IsMHgwMCwweDMzLDB4ODAgfX0sCi0gezE2LCAweDhhMTAsIDAsIHsweDBmLDB4YjAsMHgwMywweGUxLDB4MTAsMHhmMiwweDQwLDB4YjIsMHgwMCwweDNkLDB4OTQsMHgxNywweDJkLDB4NDQsMHhmYSwweDQxIH19LAotIHsxNiwgMHg4YTIwLCAwLCB7MHgzMiwweGMwLDB4OWYsMHhiMCwweDIzLDB4MmMsMHgwMiwweGNiLDB4NDAsMHgzMiwweGMwLDB4NGYsMHg5MCwweDAzLDB4M2QsMHgwMCB9fSwKLSB7MTYsIDB4OGEzMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhhNDAsIDAsIHsweDg4LDB4MDUsMHgyNiwweDAwLDB4OGIsMHg3MSwweDIwLDB4ZDUsMHgwMywweDk5LDB4MDIsMHhlMCwweDAwLDB4YmIsMHg4MCwweDIyIH19LAotIHsxNiwgMHg4YTUwLCAwLCB7MHg2MCwweDFjLDB4ODAsMHgwMywweDYwLDB4MDAsMHhiOCwweDAyLDB4MjIsMHhjMiwweDBiLDB4MzIsMHgwMiwweDJjLDB4MDEsMHg4ZiB9fSwKLSB7MTYsIDB4OGE2MCwgMCwgezB4MDIsMHhkNywweGMwLDB4MGIsMHhhMCwweDAzLDB4NmQsMHg0MCwweDUzLDB4ODAsMHgyZSwweGMwLDB4MGUsMHhmMCwweDQzLDB4NzIgfX0sCi0gezE2LCAweDhhNzAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NjgsMHgwMiwweDgwLDB4MDAsMHgyNCwweDAwIH19LAotIHsxNiwgMHg4YTgwLCAwLCB7MHgwYiwweDM1LDB4MjYsMHhjMiwweDAwLDB4YjAsMHg5MCwweDIwLDB4YzAsMHg4OCwweDAwLDB4MDIsMHg0ZiwweDIwLDB4YjMsMHgwMiB9fSwKLSB7MTYsIDB4OGE5MCwgMCwgezB4NjAsMHhlMiwweDFiLDB4MzgsMHgwMiwweDBjLDB4MDAsMHg4OCwweDAwLDB4NjAsMHhjMCwweDBiLDB4MzQsMHg4MiwweDRjLDB4MDIgfX0sCi0gezE2LCAweDhhYTAsIDAsIHsweGExLDB4OTAsMHgyYywweDQwLDB4MGIsMHgzMCwweDAyLDB4MzAsMHgwMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YWIwLCAwLCB7MHgyMCwweDAxLDB4M2EsMHgwOCwweDhjLDB4YTAsMHgyZCwweDIwLDB4NGIsMHg3OCwweDAyLDB4ZGEsMHgwMCwweGIyLDB4OTAsMHgyMSB9fSwKLSB7MTYsIDB4OGFjMCwgMCwgezB4NjYsMHg0OCwweDc5LDB4MDIsMHhkZSwweDQwLDB4YjcsMHg5MSwweGExLDB4ZTAsMHhkYiwweGY4LDB4MDIsMHgxZSwweDQwLDB4ODQgfX0sCi0gezE2LCAweDhhZDAsIDAsIHsweDkwLDB4MDEsMHhlMCwweDhiLDB4ZjksMHgwMiwweDVlLDB4MDEsMHg5NywweDgwLDB4MmQsMHg2MCwweDBhLDB4NzgsMHgwMCwweDQ4IH19LAotIHsxNiwgMHg4YWUwLCAwLCB7MHgwNCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg4MCwweDAwLDB4MjQsMHgwNCB9fSwKLSB7MTYsIDB4OGFmMCwgMCwgezB4MGYsMHgzMiwweDAzLDB4YzQsMHhhMCwweGYxLDB4NDIsMHgzMCwweGM0LDB4MmMsMHgzMSwweDAyLDB4NDQsMHgwMCwweGYxLDB4MTEgfX0sCi0gezE2LCAweDhiMDAsIDAsIHsweGEwLDB4YzAsMHgwYiwweDMwLDB4MGIsMHgwYywweDQyLDB4ODMsMHgwMCwweDAwLDB4YzAsMHgwZiwweDMwLDB4MDMsMHg0YywweDAyIH19LAotIHsxNiwgMHg4YjEwLCAwLCB7MHhlMywweDAwLDB4M2MsMHg0MCwweDBiLDB4MzAsMHgwMSwweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGIyMCwgMCwgezB4YzAsMHgxZCwweGJjLDB4MDAsMHhmYywweGE1LDB4MzMsMHhjMCwweDBmLDB4ZDAsMHgwMywweGZjLDB4MDEsMHhiZiwweDAwLDB4M2YgfX0sCi0gezE2LCAweDhiMzAsIDAsIHsweGM0LDB4MGUsMHg3MSwweDAzLDB4NzQsMHgwMCwweDc1LDB4MTAsMHgzZiwweGMwLDB4MDUsMHhmMCwweDAzLDB4ZGMsMHg0MCwweGZmIH19LAotIHsxNiwgMHg4YjQwLCAwLCB7MHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4NDMsMHhmYywweDAwLDB4N2YsMHgwMCwweDNmLDB4NDAsMHgwZSwweGYwLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4OGI1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDQsMHhlOCwweDAwLDB4ZjIsMHgwNCwweGIzLDB4ODAgfX0sCi0gezE2LCAweDhiNjAsIDAsIHsweDBmLDB4YjgsMHgwYiwweDJjLDB4MDAsMHhlYiwweDgwLDB4MzIsMHhjMCwweDBjLDB4MjAsMHgxMywweDJlLDB4MDgsMHhjYiwweDAxIH19LAotIHsxNiwgMHg4YjcwLCAwLCB7MHgzMiwweGM1LDB4MGYsMHhiMSwweDAzLDB4ZWMsMHg0OCwweGM4LDB4MTAsMHgzMiwweGZhLDB4OGMsMHgzOCwweDAzLDB4M2MsMHg5MCB9fSwKLSB7MTYsIDB4OGI4MCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MTMsMHhjMiwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhiOTAsIDAsIHsweGM4LDB4MTAsMHg5OCwweDAwLDB4ZjYsMHgwMCwweDYxLDB4ODEsMHgwYiwweGYwLDB4MDIsMHgxYywweDAwLDB4ZDcsMHgwMCwweGI3IH19LAotIHsxNiwgMHg4YmEwLCAwLCB7MHg4MCwweDBjLDB4NzAsMHgwMiwweGJjLDB4MTAsMHg4ZiwweDAwLDB4MjEsMHhjOCwweDhiLDB4NzIsMHg0MywweGZjLDB4ODgsMHhkYyB9fSwKLSB7MTYsIDB4OGJiMCwgMCwgezB4MDAsMHgzNywweGM4LDB4MGQsMHg1MCwweDAyLDB4MWMsMHgyMiwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZDMgfX0sCi0gezE2LCAweDhiYzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4OWUsMHgwMCwweGI2LDB4ODAsMHhhOSwweGEwIH19LAotIHsxNiwgMHg4YmQwLCAwLCB7MHg0YiwweDdjLDB4MDIsMHg1ZSwweDMwLDB4YTMsMHg4OCwweDIxLDB4ZjAsMHgwOCwweDc4LDB4MDIsMHgxNiwweDAwLDB4ODUsMHg4MCB9fSwKLSB7MTYsIDB4OGJlMCwgMCwgezB4MjEsMHhlMCwweDBiLDB4NzgsMHgwMiwweGRlLDB4MDAsMHg4NywweDgwLDB4YTEsMHhlNCwweDA4LDB4ZDgsMHgwMiwweDRlLDB4MDAgfX0sCi0gezE2LCAweDhiZjAsIDAsIHsweDk3LDB4ODAsMHgyZCwweDcwLDB4MGIsMHg3OCwweDAyLDB4YzgsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YzAwLCAwLCB7MHg0OCwweDE0LDB4ZWMsMHgwMCwweGIyLDB4MDAsMHgyOCwweGMwLDB4MGIsMHgxMCwweDAyLDB4NGUsMHg5MCwweDkzLDB4MDIsMHgyMiB9fSwKLSB7MTYsIDB4OGMxMCwgMCwgezB4ZjAsMHgwOCwweDM4LDB4NDIsMHg4YywweDQyLDB4ODMsMHgwNCwweDIyLDB4ZTQsMHg0YiwweDM4LDB4MDIsMHg4ZSwweDQwLDB4ODMgfX0sCi0gezE2LCAweDhjMjAsIDAsIHsweDAwLDB4MjAsMHhjMCwweDA5LDB4MzgsMHgyMiwweDRlLDB4MjEsMHg5MywweDAwLDB4MmUsMHhlMCwweDBiLDB4MzAsMHgwMiwweGRiIH19LAotIHsxNiwgMHg4YzMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGE4LDB4MDEsMHhmYSwweDAwLDB4M2IsMHg4OSB9fSwKLSB7MTYsIDB4OGM0MCwgMCwgezB4MGYsMHhhMCwweDAyLDB4NzgsMHgwOCwweGFlLDB4NDAsMHgyMywweDgwLDB4MmMsMHg2YywweDBiLDB4M2EsMHgwMCwweDhlLDB4OGMgfX0sCi0gezE2LCAweDhjNTAsIDAsIHsweGIyLDB4MDAsMHgwYiwweDgwLDB4ODIsMHhlMCwweDAyLDB4OGUsMHgwMCwweDIyLDB4ODAsMHgwYywweGU4LDB4MDIsMHg3YiwweDgwIH19LAotIHsxNiwgMHg4YzYwLCAwLCB7MHg5YSwweDgwLDB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweGZhLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGM3MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDksMHhlYywweDAwLDB4MzYsMHgyMSwweDBiLDB4ODAsMHgxMywweGExLDB4MDAsMHhmOCwweDYwLDB4M2UgfX0sCi0gezE2LCAweDhjODAsIDAsIHsweDAwLDB4MGYsMHg4MSwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDQzLDB4ZTAsMHgxMCwweGY4IH19LAotIHsxNiwgMHg4YzkwLCAwLCB7MHgwMCwweGJlLDB4MDAsMHgwZiwweDg1LDB4MGIsMHg4MCwweDAwLDB4ZTgsMHgxMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4OGNhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMiwweDMwLDB4NDggfX0sCi0gezE2LCAweDhjYjAsIDAsIHsweDBjLDB4OTksMHgxMywweGE0LDB4MDIsMHhjOSwweDAwLDB4M2UsMHg0MiwweDBjLDB4OTAsMHg4ZiwweDI0LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHg4Y2MwLCAwLCB7MHgzMiwweDI4LDB4MGMsMHg4OCwweDAzLDB4ZTAsMHgwMCwweGM5LDB4MDAsMHhiMiwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTcsMHgwMCB9fSwKLSB7MTYsIDB4OGNkMCwgMCwgezB4YzksMHgxMCwweDNlLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhjZTAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAxLDB4ODksMHg4MCwweGEyLDB4NDgsMHgyOCwweDkyLDB4NDIsMHhjNSwweDAwLDB4ODksMHg0MCwweDJlIH19LAotIHsxNiwgMHg4Y2YwLCAwLCB7MHg0MCwweDJjLDB4OTAsMHgwNiwweDI1LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg1MCwweDA4LDB4OTgsMHgwMiwweGM0LDB4MDAsMHg4OSB9fSwKLSB7MTYsIDB4OGQwMCwgMCwgezB4MDEsMHg3NiwweDQwLDB4NGIsMHg5MiwweDAyLDB4ZTUsMHgwMiwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjAgfX0sCi0gezE2LCAweDhkMTAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwYywweDg1LDB4MjAsMHhhMiwweDQwIH19LAotIHsxNiwgMHg4ZDIwLCAwLCB7MHgwOCwweDkwLDB4MDYsMHhlNSwweDAwLDB4ODksMHg0MCwweDJlLDB4NDAsMHgwOSwweDkwLDB4NDIsMHhhNCwweGEwLDB4MzEsMHgwMCB9fSwKLSB7MTYsIDB4OGQzMCwgMCwgezB4MjIsMHg1MCwweDE4LDB4OTEsMHgwMiwweGU0LDB4MDAsMHg4MSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwNiwweGU0LDB4MDAgfX0sCi0gezE2LCAweDhkNDAsIDAsIHsweDg5LDB4MDAsMHgyZSwweDQwLDB4MDksMHg5MCwweDAyLDB4MGUsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZDUwLCAwLCB7MHgwMCwweDA0LDB4MTUsMHgwMCwweDg1LDB4NDAsMHgyMCwweDQwLDB4MDgsMHgxNCwweDI2LDB4ZTQsMHgwMCwweDgxLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4OGQ2MCwgMCwgezB4NDAsMHgxOCwweDEwLDB4MDIsMHg4NCwweDgwLDB4YjEsMHgyMCwweGEwLDB4NTAsMHgwOCwweDE0LDB4MDIsMHhlNSwweDAyLDB4ODEgfX0sCi0gezE2LCAweDhkNzAsIDAsIHsweDQwLDB4MjAsMHg0OCwweDBiLDB4MTAsMHgwNiwweGNjLDB4MDAsMHg4MSwweDAxLDB4MmMsMHg1MCwweDA5LDB4MTQsMHgwMiwweDRhIH19LAotIHsxNiwgMHg4ZDgwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHg4YywweDAwLDB4MzIsMHgwMCB9fSwKLSB7MTYsIDB4OGQ5MCwgMCwgezB4MGMsMHg4MCwweDIzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDE0LDB4MGQsMHg4MCwweDEyLDB4YTEsMHg0NCwweGY4LDB4NTEgfX0sCi0gezE2LCAweDhkYTAsIDAsIHsweDMyLDB4MDAsMHgyYywweDgwLDB4MDMsMHhlMCwweDAwLDB4ODgsMHgwNCwweDIyLDB4MTQsMHgwZiwweDgwLDB4MDcsMHhlMCwweDAwIH19LAotIHsxNiwgMHg4ZGIwLCAwLCB7MHhjOCwweDAwLDB4M2UsMHgwMCwweDBkLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGRjMCwgMCwgezB4OTgsMHg5ZCwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2YsMHg1MCwweDBmLDB4ZDAsMHgwMywweGRjLDB4MDEsMHhiZCwweDQyLDB4M2YgfX0sCi0gezE2LCAweDhkZDAsIDAsIHsweDUwLDB4NGYsMHhkNCwweDQzLDB4NzQsMHg0MSwweGZkLDB4MTAsMHgzZiwweDEwLDB4MWYsMHhjNCwweDEzLDB4ZjEsMHgwMCwweGZkIH19LAotIHsxNiwgMHg4ZGUwLCAwLCB7MHg0MCwweDdlLDB4NDQsMHgwZiwweGQwLDB4NDMsMHhmNSwweDAxLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4OGRmMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNCwweDAwLDB4ZGYsMHgwNSwweDMzLDB4NjEgfX0sCi0gezE2LCAweDhlMDAsIDAsIHsweDBmLDB4NTAsMHg1MywweDM0LDB4MTAsMHhmZCwweDA0LDB4MzMsMHg0NCwweDRmLDB4NTAsMHgwMywweDc2LDB4YzEsMHhjZCwweGUwIH19LAotIHsxNiwgMHg4ZTEwLCAwLCB7MHgzMywweDYwLDB4MGMsMHhjZSwweDAzLDB4ZjYsMHhjMCwweGUxLDB4YzAsMHhiNiwweDY0LDB4OGYsMHg1MCwweDBiLDB4MzYsMHg4MiB9fSwKLSB7MTYsIDB4OGUyMCwgMCwgezB4Y2QsMHgwMCwweDNlLDB4NDQsMHg0YywweDllLDB4YzMsMHhjNiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhlMzAsIDAsIHsweDM4LDB4MTAsMHhlYSwweDI4LDB4ODAsMHhhMCwweGIyLDB4MDQsMHgwYiwweDhhLDB4ODMsMHg2MCwweDAwLDB4ZmEsMHgwMCwweDM2IH19LAotIHsxNiwgMHg4ZTQwLCAwLCB7MHgyOCwweDhiLDB4ODAsMHgwMywweGUzLDB4YzgsMHhjOCwweDg0LDB4MjIsMHgxNCwweDA4LDB4OGEsMHgwMiwweGUyLDB4ODAsMHhkOCB9fSwKLSB7MTYsIDB4OGU1MCwgMCwgezB4ODIsMHgzNCwweDM0LDB4MWIsMHg4MCwweDAzLDB4NjAsMHgwNCwweDg4LDB4MDAsMHgyZSwweDIwLDB4MGEsMHg4ZSwweDQyLDB4Y2UgfX0sCi0gezE2LCAweDhlNjAsIDAsIHsweDA2LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDA1LDB4YzQsMHg4MCwweDgxLDB4MDgsMHgwNCwweDQxIH19LAotIHsxNiwgMHg4ZTcwLCAwLCB7MHgwYiwweDkyLDB4MDIsMHgwNCwweDAwLDB4YjEsMHgwMCwweDJjLDB4NDAsMHgwYiwweDE4LDB4MDIsMHgyNCwweDAwLDB4YjEsMHg2MCB9fSwKLSB7MTYsIDB4OGU4MCwgMCwgezB4MjYsMHg0MCwweDBhLDB4MTYsMHgwMiwweGM1LDB4MDAsMHhhMSwweGMwLDB4MjAsMHg0OCwweDBiLDB4OTAsMHgwMiwweDQ3LDB4MDAgfX0sCi0gezE2LCAweDhlOTAsIDAsIHsweDkxLDB4MDEsMHgyYywweDQ4LDB4MTgsMHgxMiwweDAyLDB4ZDIsMHgwMSwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZWEwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwYywweDhiLDB4MDQsMHhhMiwweDUwLDB4MGIsMHg5MSwweDAyLDB4MjQsMHgwNCwweGE5LDB4MDEsMHgyZSB9fSwKLSB7MTYsIDB4OGViMCwgMCwgezB4NDIsMHgwYiwweDkwLDB4MDIsMHhhNCwweDAwLDB4YTksMHgwMCwweDI2LDB4NjAsMHgwYSwweDkwLDB4MDIsMHhlNiwweDAwLDB4ODEgfX0sCi0gezE2LCAweDhlYzAsIDAsIHsweDAwLDB4MjIsMHg0MCwweDhiLDB4YjAsMHgwMiwweDI0LDB4MDgsMHg5OSwweDEwLDB4MmUsMHg0MCwweDFhLDB4OTAsMHgwMiwweGM2IH19LAotIHsxNiwgMHg4ZWQwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU1LDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MCB9fSwKLSB7MTYsIDB4OGVlMCwgMCwgezB4MGYsMHgxMCwweDAyLDB4MjUsMHgwMCwweGIxLDB4MDAsMHgyZSwweDYwLDB4MGYsMHgxMCwweDEyLDB4MjQsMHgwMiwweGI5LDB4YTAgfX0sCi0gezE2LCAweDhlZjAsIDAsIHsweGE0LDB4NDAsMHgyZSwweDkxLDB4MDMsMHhlNiwweDAwLDB4YTksMHgwMCwweDIyLDB4NDAsMHgwYiwweDE5LDB4ODAsMHg2NCwweDA0IH19LAotIHsxNiwgMHg4ZjAwLCAwLCB7MHhkOSwweDgxLDB4MmUsMHg0MCwweDRjLDB4OTAsMHgwMywweGU4LDB4MTQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGYxMCwgMCwgezB4NjgsMHgwMSwweGE0LDB4MGEsMHhlOSwweDAwLDB4YmUsMHg0OCwweDBmLDB4OTgsMHgwYiwweGU0LDB4MDAsMHhmOSwweGM0LDB4MzYgfX0sCi0gezE2LCAweDhmMjAsIDAsIHsweDcwLDB4MWYsMHg5MiwweDAzLDB4ZTYsMHg5MCwweGMxLDB4OTAsMHgzYSwweDQwLDB4OGQsMHg4OCwweDAzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHg4ZjMwLCAwLCB7MHg5MCwweDNlLDB4NDAsMHgwYiwweDk4LDB4MDMsMHhlNiwweDQwLDB4ZTksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4OGY0MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MTAsMHhhMSwweDAyLDB4ZDgsMHgyMCwweGIyLDB4MTAgfX0sCi0gezE2LCAweDhmNTAsIDAsIHsweDBjLDB4ODAsMHg4MywweDIxLDB4NDAsMHhjOCwweDU4LDB4YjIsMHgxMCwweDRjLDB4ODAsMHgwYiwweDIwLDB4MDAsMHhmOCwweDQyIH19LAotIHsxNiwgMHg4ZjYwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMiwweGQ4LDB4MDAsMHg3MiwweDAwLDB4MWMsMHg4MCwweDAwLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4OGY3MCwgMCwgezB4ZjgsMHgwNCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhmODAsIDAsIHsweDI4LDB4MDUsMHgzOCwweDA0LDB4Y2UsMHg0MSwweDIzLDB4ODAsMHgwOCwweGUwLDB4MDIsMHgzOSwweDEwLDB4YWUsMHg0MCwweDIyIH19LAotIHsxNiwgMHg4ZjkwLCAwLCB7MHg4MCwweDA4LDB4ZTAsMHgwMiwweDFhLDB4MDAsMHhiYSwweDAwLDB4MmIsMHhhZCwweDAzLDB4ODAsMHgwMiwweGU4LDB4MDAsMHhjYSB9fSwKLSB7MTYsIDB4OGZhMCwgMCwgezB4MDAsMHgyYSwweDgwLDB4MGEsMHhlMCwweDAyLDB4MTgsMHgwMCwweGJhLDB4MDAsMHgxYSwweDgwLDB4MGIsMHhhMCwweDAzLDB4NGEgfX0sCi0gezE2LCAweDhmYjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDA1LDB4NmMsMHgxMiwweDg5LDB4MDAsMHhhMCwweGUwIH19LAotIHsxNiwgMHg4ZmMwLCAwLCB7MHgwOCwweDM4LDB4MDIsMHgwZCwweDg4LDB4ODMsMHgwMCwweDA0LDB4ZTAsMHgwOCwweDM4LDB4MzIsMHgwZSwweDI1LDB4MzEsMHgwMSB9fSwKLSB7MTYsIDB4OGZkMCwgMCwgezB4MjQsMHhlMCwweDhiLDB4MzgsMHgwMiwweGU0LDB4MDEsMHg4MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAgfX0sCi0gezE2LCAweDhmZTAsIDAsIHsweGIzLDB4MDAsMHgyZSwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZmYwLCAwLCB7MHhhMCwweDAxLDB4MTQsMHgyMCwweDg2LDB4MjAsMHgyOSwweGIwLDB4MDgsMHhmMCwweDgyLDB4M2UsMHgwNCwweGE3LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4OTAwMCwgMCwgezB4NzAsMHg4OCwweDcwLDB4OTIsMHgxYywweDIwLDB4YmQsMHgwMCwweDY5LDB4YzAsMHgwYiwweDc2LDB4MDIsMHhkNCwweDgwLDB4OGYgfX0sCi0gezE2LCAweDkwMTAsIDAsIHsweDIxLDB4MjksMHhlMCwweDBhLDB4NjAsMHg4NiwweDk4LDB4MDEsMHhiNywweDAwLDB4MmQsMHhjOCwweDBiLDB4M2IsMHgwMiwweDYwIH19LAotIHsxNiwgMHg5MDIwLCAwLCB7MHgwNCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNlLDB4MDAsMHhjNywweGEwLDB4YjAsMHhlMCB9fSwKLSB7MTYsIDB4OTAzMCwgMCwgezB4MmMsMHg3OCwweDBiLDB4MWEsMHgwMCwweGMzLDB4ODAsMHgzNywweGUwLDB4MjgsMHg3OCwweDAzLDB4MWEsMHgwOCwweGY1LDB4OTAgfX0sCi0gezE2LCAweDkwNDAsIDAsIHsweDM1LDB4ZTAsMHgwZiwweDdjLDB4MTIsMHhkNiwweDgyLDB4YzcsMHg5MCwweDIxLDB4ZTQsMHgwOCwweDc4LDB4MDMsMHg5ZSwweDAwIH19LAotIHsxNiwgMHg5MDUwLCAwLCB7MHhmNSwweDgwLDB4M2QsMHhmMSwweDBmLDB4NzgsMHgwMywweDIyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTA2MCwgMCwgezB4MDgsMHgxOSwweGE0LDB4MDAsMHhlZSwweDgwLDB4MzYsMHhjMSwweDRmLDB4ZDAsMHgwMywweGM4LDB4MDAsMHhmYiwweDAwLDB4M2UgfX0sCi0gezE2LCAweDkwNzAsIDAsIHsweDUxLDB4MGYsMHhiMCwweDAzLDB4ZTQsMHgwOCwweGYxLDB4NjAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzUsMHgwMCwweGViIH19LAotIHsxNiwgMHg5MDgwLCAwLCB7MHgxMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDksMHg2YywweDAwLDB4ZmIsMHgwMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4OTA5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHhmZSwweDAwLDB4ZmQsMHg4OCwweDMzLDB4NjAgfX0sCi0gezE2LCAweDkwYTAsIDAsIHsweDBmLDB4ZjksMHgwMywweGNlLDB4NDAsMHhkNywweDg0LDB4MzcsMHg3MCwweDBjLDB4ZDgsMHgyMywweDM2LDB4MDAsMHhjNSwweDg4IH19LAotIHsxNiwgMHg5MGIwLCAwLCB7MHgzMywweGUwLDB4NGYsMHhmOCwweDEzLDB4ZjcsMHgyOCwweGRmLDB4ODAsMHgzNywweGUyLDB4MGMsMHg1OCwweDAzLDB4M2UsMHgwMCB9fSwKLSB7MTYsIDB4OTBjMCwgMCwgezB4ZmYsMHg5MCwweDNmLDB4ZTAsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkwZDAsIDAsIHsweGE5LDB4MTEsMHg5YywweDA4LDB4ZjYsMHgwMCwweGExLDB4MDAsMHgwYiwweDYzLDB4MDIsMHhkNiwweDMwLDB4ODUsMHg0MSwweDMxIH19LAotIHsxNiwgMHg5MGUwLCAwLCB7MHhjOCwweDA4LDB4NTAsMHgyMywweDFjLDB4MDAsMHhkNSwweDIwLDB4YjEsMHg4MCwweDBmLDB4NzAsMHgwMywweGI0LDB4MDAsMHhjNyB9fSwKLSB7MTYsIDB4OTBmMCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MGYsMHg0MCwweGEzLDB4NTgsMHg0MCwweGI3LDB4MDAsMHgzZiwweGM0LDB4MGEsMHhmMCwweDAyLDB4MmEgfX0sCi0gezE2LCAweDkxMDAsIDAsIHsweDA2LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWMsMHg0MCwweGI3LDB4MTAsMHgyMSwweGQyIH19LAotIHsxNiwgMHg5MTEwLCAwLCB7MHgwYiwweDcwLDB4MDIsMHhkYywweDQyLDB4ODYsMHgwMCwweDI1LDB4NjEsMHgwOCwweDUxLDB4MDIsMHg1MCwweDAwLDB4OTUsMHgwMCB9fSwKLSB7MTYsIDB4OTEyMCwgMCwgezB4MjUsMHhjMCwweDA5LDB4NzAsMHg4MiwweGQ0LDB4MDAsMHg4NywweDAwLDB4MjQsMHhjMCwweDA4LDB4NTAsMHgwMiwweDVjLDB4MDAgfX0sCi0gezE2LCAweDkxMzAsIDAsIHsweDk1LDB4MDQsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MTQwLCAwLCB7MHgyMCwweDE0LDB4Y2MsMHgwOCwweGIyLDB4ZDAsMHgyMCwweGUwLDB4NGIsMHgwOCwweDAyLDB4YzQsMHgwMCwweDgwLDB4ODAsMHgyMCB9fSwKLSB7MTYsIDB4OTE1MCwgMCwgezB4ZjAsMHgwOCwweDFhLDB4MDIsMHg4NSwweDQ4LDB4ODEsMHgxMCwweDIwLDB4NDAsMHgwYSwweDMwLDB4MDIsMHhjNiwweDEwLDB4OTMgfX0sCi0gezE2LCAweDkxNjAsIDAsIHsweDAwLDB4MjAsMHhjMCwweDBhLDB4MWMsMHgwMiwweDBkLDB4NDAsMHhiMywweDAwLDB4NjgsMHhjNCwweDBhLDB4YjAsMHgwMiwweDA5IH19LAotIHsxNiwgMHg5MTcwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDEsMHhmZSwweDAwLDB4MzIsMHhmMCB9fSwKLSB7MTYsIDB4OTE4MCwgMCwgezB4MGYsMHg4OCwweDAzLDB4ZTYsMHgwMCwweGM4LDB4YzgsMHgzNiwweGY2LDB4MjgsMHhhNiwweDBhLDB4NmQsMHgwMCwweDlkLDB4MDAgfX0sCi0gezE2LCAweDkxOTAsIDAsIHsweDMyLDB4MDAsMHgwYiwweGIwLDB4MDMsMHhmNiwweDAzLDB4YzcsMHgwMCwweDM3LDB4YzAsMHgwOCwweDljLDB4MGEsMHg2ZSwweDAwIH19LAotIHsxNiwgMHg5MWEwLCAwLCB7MHhiYiwweDAwLDB4MmYsMHhjMCwweDBjLDB4ZjAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTFiMCwgMCwgezB4ODAsMHgwMCwweGU0LDB4MDEsMHhlYiwweDQwLDB4M2UsMHg4MCwweDRmLDB4YzEsMHgwMywweGU0LDB4MDAsMHhiOCwweDA4LDB4M2EgfX0sCi0gezE2LCAweDkxYzAsIDAsIHsweDQwLDB4OGYsMHhhNCwweDEzLDB4NmMsMHgyMCwweGY5LDB4MDAsMHgzZSwweDcwLDB4MGYsMHhiMCwweDAzLDB4YTQsMHg0MCwweGViIH19LAotIHsxNiwgMHg5MWQwLCAwLCB7MHgwMCwweDNlLDB4YzAsMHgwZiwweDkyLDB4MjMsMHhlOCwweDAwLDB4ZjksMHg4MCwweDNlLDB4YzAsMHgwZiwweGIwLDB4NjMsMHhlMCB9fSwKLSB7MTYsIDB4OTFlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDA4LDB4Y2UsMHgwOCwweDMzLDB4YzAgfX0sCi0gezE2LCAweDkxZjAsIDAsIHsweDBmLDB4ZGEsMHgwMywweDMwLDB4MDAsMHhlNCwweDA0LDB4MzUsMHhjMCwweDBkLDB4YTAsMHgwMywweDI4LDB4MDAsMHhjNSwweDAwIH19LAotIHsxNiwgMHg5MjAwLCAwLCB7MHgzMywweDAwLDB4MGIsMHhmYSwweDAzLDB4ZjQsMHgwMywweGNiLDB4MDAsMHgzMSwweGMwLDB4MGMsMHhkNCwweDAzLDB4MTQsMHgyMCB9fSwKLSB7MTYsIDB4OTIxMCwgMCwgezB4Y2QsMHg4MCwweDIzLDB4YzEsMHgwYywweGYwLDB4MDIsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkyMjAsIDAsIHsweDgxLDB4MDQsMHg0NCwweDEwLDB4Y2IsMHhkMCwweDIyLDB4YzAsMHgwYiwweDk0LDB4MDIsMHgyMiwweDg0LDB4YjgsMHhjNiwweDAyIH19LAotIHsxNiwgMHg5MjMwLCAwLCB7MHg0MCwweDA4LDB4MjgsMHgwMiwweGE1LDB4ODAsMHg4OSwweDAwLDB4MjIsMHg2MCwweDBiLDB4YjgsMHgwMiwweDY0LDB4MDAsMHg4YiB9fSwKLSB7MTYsIDB4OTI0MCwgMCwgezB4MDAsMHgyYSwweGMwLDB4YzgsMHgwMCwweDAzLDB4NjYsMHgwMCwweDgxLDB4MDAsMHgwMCwweGMwLDB4MGQsMHhiMCwweDBhLDB4YTggfX0sCi0gezE2LCAweDkyNTAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmMsMHgwMCwweDEzLDB4MDAsMHgyMiwweDQwIH19LAotIHsxNiwgMHg5MjYwLCAwLCB7MHg4YiwweDI0LDB4MDIsMHgyYSwweDAwLDB4YmIsMHg4MiwweDIyLDB4NDAsMHgwMCwweGFjLDB4MDIsMHg4NCwweDAwLDB4ODksMHgwMCB9fSwKLSB7MTYsIDB4OTI3MCwgMCwgezB4MjIsMHgyMiwweDBiLDB4YjAsMHgwMiwweGM0LDB4MDAsMHg5YiwweDAwLDB4MmEsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJlLDB4MDAgfX0sCi0gezE2LCAweDkyODAsIDAsIHsweDhiLDB4MTAsMHgyYSwweGMwLDB4MDgsMHhiMCwweDAyLDB4YTAsMHgxMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MjkwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgxMCwweDgzLDB4MDAsMHgyMCwweDAxLDB4MGIsMHgyMCwweDAyLDB4MDAsMHg4MCwweGIxLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4OTJhMCwgMCwgezB4YzEsMHgwOCwweDIwLDB4MDIsMHg4OCwweDAxLDB4ODEsMHgwMCwweGEwLDB4MDAsMHgwYiwweDMwLDB4MDIsMHg0NCwweDAxLDB4OWIgfX0sCi0gezE2LCAweDkyYjAsIDAsIHsweDAwLDB4MjgsMHhjMCwweDA4LDB4YjAsMHgwMiwweDQ4LDB4MDYsMHg4OSwweDAwLDB4MmEsMHhjMCwweDA5LDB4MzAsMHgwMiwweDgyIH19LAotIHsxNiwgMHg5MmMwLCAwLCB7MHgwNSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4ZCwweDZjLDB4MDAsMHhjMywweDAwLDB4YjIsMHhjMCB9fSwKLSB7MTYsIDB4OTJkMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4MjgsMHgyMCwweGZhLDB4MDAsMHhiMSwweDQwLDB4MGQsMHhhMCwweDA3LDB4YTAsMHgwMCwweGNkLDB4MDAgfX0sCi0gezE2LCAweDkyZTAsIDAsIHsweDIyLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhmNCwweDAwLDB4OWYsMHgwMCwweDNiLDB4YzAsMHgyYywweGIwLDB4MGIsMHgyNCwweDAwIH19LAotIHsxNiwgMHg5MmYwLCAwLCB7MHhjOSwweDAwLDB4YmEsMHhjMCwweDBjLDB4YjAsMHgwMywweDgwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTMwMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDYsMHhmZiwweDAyLDB4YWYsMHhjMCwweDBmLDB4YzAsMHgwMywweGYwLDB4MTAsMHhmYywweDAwLDB4M2YgfX0sCi0gezE2LCAweDkzMTAsIDAsIHsweGMwLDB4OWYsMHhlMCwweDEzLDB4ZjAsMHgwMCwweGZkLDB4MDQsMHgzZiwweDQwLDB4NGYsMHhmMCwweDAzLDB4NzQsMHgwMCwweGVmIH19LAotIHsxNiwgMHg5MzIwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHg4ZiwweGUwLDB4MDIsMHhiNCwweDAxLDB4ZmQsMHgwNCwweDM3LDB4YzAsMHgwZiwweGYwLDB4NDMsMHg2OCB9fSwKLSB7MTYsIDB4OTMzMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4YzcsMHgyMCwweGIzLDB4YzggfX0sCi0gezE2LCAweDkzNDAsIDAsIHsweDFjLDB4ZjEsMHgwMywweDdjLDB4MjAsMHhjZiwweDBhLDB4M2YsMHhkMCwweDBkLDB4ZjAsMHgwMywweDdjLDB4ODAsMHg4ZiwweDMyIH19LAotIHsxNiwgMHg5MzUwLCAwLCB7MHgzMywweGM0LDB4MGYsMHhmMSwweDgzLDB4M2MsMHhlMCwweGNmLDB4MTAsMHgzMywweGM0LDB4MGQsMHhmMiwweDgzLDB4M2MsMHhlMiB9fSwKLSB7MTYsIDB4OTM2MCwgMCwgezB4YzcsMHg4MCwweDE3LDB4Y2MsMHg0YywweGYzLDB4ODMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkzNzAsIDAsIHsweDgwLDB4MTAsMHhlMywweDQwLDB4ODgsMHg2OCwweDIyLDB4MzAsMHgwOCwweDA2LDB4MDIsMHgwMSwweGExLDB4ODgsMHhjNCwweDBlIH19LAotIHsxNiwgMHg5MzgwLCAwLCB7MHgxNCwweDA4LDB4ODcsMHg4MCwweDAxLDB4YzAsMHgyOCwweDUwLDB4MDIsMHgwNCwweDhiLDB4ODYsMHgwMiwweGExLDB4OTgsMHg4OCB9fSwKLSB7MTYsIDB4OTM5MCwgMCwgezB4NDEsMHgyYSwweDA0LDB4MGEsMHg4NCwweDgyLDB4YmQsMHg4MCwweDhiLDB4MDgsMHgyYiwweGM0LDB4ODgsMHhmNCwweDAzLDB4NjAgfX0sCi0gezE2LCAweDkzYTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2MsMHgwOCwweDgyLDB4NDAsMHgyMCwweDEwIH19LAotIHsxNiwgMHg5M2IwLCAwLCB7MHgwOCwweDIxLDB4MTIsMHg0NCwweDA0LDB4ODIsMHgwNCwweDJjLDB4MDgsMHg4OSwweDkwLDB4MDIsMHg0NCwweDIxLDB4OGIsMHgwMCB9fSwKLSB7MTYsIDB4OTNjMCwgMCwgezB4MjQsMHg4OCwweDhiLDB4YTAsMHgwMCwweDQwLDB4ODQsMHg4OSwweDMwLDB4MjIsMHg0OCwweDg4LDB4YjAsMHgwMiwweGNjLDB4MDggfX0sCi0gezE2LCAweDkzZDAsIDAsIHsweDg4LDB4MjAsMHhhNCwweGM4LDB4MDAsMHgzMiwweDBhLDB4MjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5M2UwLCAwLCB7MHhjMCwweDE1LDB4YTAsMHgwMCwweDg5LDB4MDAsMHgyMiwweGMxLDB4ODgsMHg5MCwweDYyLDB4MjgsMHgwOCwweDg5LDB4MDgsMHgyZSB9fSwKLSB7MTYsIDB4OTNmMCwgMCwgezB4YzAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDA4LDB4YTgsMHgwMCwweDI2LDB4NDIsMHgwYiwweDkwLDB4MDIsMHhjYywweDUwLDB4OGEgfX0sCi0gezE2LCAweDk0MDAsIDAsIHsweDIyLDB4MmEsMHg4NiwweDBhLDB4ODAsMHgwMiwweGVjLDB4MDAsMHg4OCwweDg0LDB4MmEsMHhjMSwweDA4LDB4YjAsMHgyNiwweDMwIH19LAotIHsxNiwgMHg5NDEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGYwLDB4MDIsMHhjZiwweDAwLDB4MzMsMHhjMCB9fSwKLSB7MTYsIDB4OTQyMCwgMCwgezB4NDgsMHhmOCwweDQzLDB4NzksMHgwMCwweDhkLDB4YzAsMHgzZiwweDMwLDB4OGQsMHg2MCwweDgzLDB4NzgsMHg2MCwweGM0LDB4NTggfX0sCi0gezE2LCAweDk0MzAsIDAsIHsweDM3LDB4MjAsMHgwZiwweDU4LDB4MTMsMHg3YiwweDAyLDB4Y2MsMHhjNCwweDMxLDB4MjAsMHgwYywweDQ0LDB4MDMsMHhlYywweDAyIH19LAotIHsxNiwgMHg5NDQwLCAwLCB7MHg4YiwweDgwLDB4MzYsMHhjMCwweDI0LDB4YjAsMHgxMiwweDEwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTQ1MCwgMCwgezB4ZTAsMHgwMSwweDljLDB4MDAsMHhmNCwweDEwLDB4M2QsMHgwMCwweDZmLDB4YzksMHgxMywweGQ0LDB4MTIsMHhmZSwweDkwLDB4M2YgfX0sCi0gezE2LCAweDk0NjAsIDAsIHsweGYwLDB4MGYsMHhkYSwweDIzLDB4ZjQsMHgxNCwweGZmLDB4MDIsMHgzYiwweGYwLDB4MGYsMHhlYSwweDIzLDB4YjYsMHgwMCwweGZmIH19LAotIHsxNiwgMHg5NDcwLCAwLCB7MHg4MiwweDNmLDB4ZTEsMHg4ZiwweGY0LDB4MDMsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHhhZiwweDcwLDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4OTQ4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMCwweDAwLDB4Y2EsMHgwMCwweDMyLDB4MDggfX0sCi0gezE2LCAweDk0OTAsIDAsIHsweDFjLDB4YTAsMHgwMywweGE1LDB4MjAsMHhjYiwweDQwLDB4YmEsMHgxMCwweDFmLDB4YjAsMHgwMywweGFjLDB4MDAsMHhlYiwweDAwIH19LAotIHsxNiwgMHg5NGEwLCAwLCB7MHg3MiwweDkwLDB4MGMsMHhiNCwweDAzLDB4MjksMHgwNCwweGM5LDB4NTIsMHgzMiwweDUwLDB4MGMsMHhiNCwweDAzLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4OTRiMCwgMCwgezB4ZjgsMHg0MCwweDMyLDB4YzEsMHgwZSwweGIwLDB4MGIsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk0YzAsIDAsIHsweGM4LDB4MDUsMHgyZCwweDgwLDB4ODksMHg4MCwweDIyLDB4ZDksMHgwOCwweDkwLDB4MjIsMHgyYSwweDAwLDB4ODgsMHg1NCwweDIyIH19LAotIHsxNiwgMHg5NGQwLCAwLCB7MHhjMCwweDhiLDB4ODAsMHgyMiwweDIwLDB4MTksMHhjOCwweDAwLDB4MjIsMHg0MCwweDhkLDB4ODAsMHgxYSwweDI0LDB4MTAsMHhkMiB9fSwKLSB7MTYsIDB4OTRlMCwgMCwgezB4NDQsMHgyMiwweDgxLDB4MGQsMHg4MCwweDAzLDB4N2MsMHgwMCwweGIwLDB4MDAsMHgzNywweGMwLDB4ODgsMHhmMCwweDAyLDB4MzIgfX0sCi0gezE2LCAweDk0ZjAsIDAsIHsweDEwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NGUsMHgwMCwweDgxLDB4MDAsMHhhMCwweGYwIH19LAotIHsxNiwgMHg5NTAwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHg4OSwweDAyLDB4ODAsMHgwMCwweDIyLDB4YzAsMHgwYiwweDAwLDB4MjIsMHhhMCwweDAwLDB4YjAsMHgwMCB9fSwKLSB7MTYsIDB4OTUxMCwgMCwgezB4MjAsMHg0MCwweDA4LDB4MDAsMHgwMiwweDA0LDB4MDAsMHg4MiwweDYwLDB4MjAsMHg4MCwweDA4LDB4MDAsMHgwMiwweDBjLDB4MDggfX0sCi0gezE2LCAweDk1MjAsIDAsIHsweGIyLDB4MDAsMHgyMiwweGMwLDB4MDgsMHgzMCwweDAyLDB4MzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NTMwLCAwLCB7MHgyMCwweDAxLDB4MDMsMHgxMCwweDhlLDB4OTAsMHgyMywweDI0LDB4MDgsMHg2YiwweDAyLDB4MTYsMHg2MCwweDhmLDB4ODAsMHgyMSB9fSwKLSB7MTYsIDB4OTU0MCwgMCwgezB4MjgsMHgwYiwweGY5LDB4MDYsMHgxZSwweDQwLDB4OGYsMHg4MCwweDIzLDB4YTQsMHg0OSwweDc5LDB4MDIsMHgzYSwweDQwLDB4OWQgfX0sCi0gezE2LCAweDk1NTAsIDAsIHsweDkwLDB4MjMsMHg2NCwweDA5LDB4ZjgsMHgwMiwweDVlLDB4NDAsMHhiZSwweDkwLDB4MjQsMHhlNCwweDI4LDB4NzksMHgwMiwweDA4IH19LAotIHsxNiwgMHg5NTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4NDIsMHhjMCwweDA5LDB4MzAsMHgwMCB9fSwKLSB7MTYsIDB4OTU3MCwgMCwgezB4MjgsMHgwMiwweDAzLDB4ODQsMHgwMCwweDhhLDB4MjAsMHgzMCwweGM0LDB4OGIsMHgxMSwweDAzLDB4ODQsMHg1MCwweGIzLDB4MDAgfX0sCi0gezE2LCAweDk1ODAsIDAsIHsweDIwLDB4YzAsMHgwYywweGE0LDB4MjIsMHgwNCwweDAwLDB4Y2IsMHg0MCwweDMwLDB4YzUsMHgwYywweDMwLDB4MDMsMHgwZSwweDQwIH19LAotIHsxNiwgMHg5NTkwLCAwLCB7MHhmMywweDEwLDB4MzAsMHhjNCwweDBjLDB4YjAsMHgwMywweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTVhMCwgMCwgezB4NDAsMHgxZCwweGIwLDB4MDQsMHhmYiwweDA0LDB4M2QsMHhjMCwweDBmLDB4ZjIsMHg0MywweGY4LDB4MDQsMHhmZCwweDAxLDB4M2YgfX0sCi0gezE2LCAweDk1YjAsIDAsIHsweDBjLDB4MGYsMHg2MSwweDAzLDB4ZjgsMHg0OCwweGY0LDB4MDAsMHgzZCwweDAxLDB4MGYsMHhkMCwweDAzLDB4YzgsMHgwMCwweGZjIH19LAotIHsxNiwgMHg5NWMwLCAwLCB7MHgwNCwweGJkLDB4MDQsMHgwYiwweDQ4LDB4MDMsMHhmYywweDE4LDB4ZmYsMHgxNCwweDNmLDB4ZDUsMHgwZCwweGYwLDB4MDMsMHg5MCB9fSwKLSB7MTYsIDB4OTVkMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlMCwweDAwLDB4ZjksMHgwMSwweDMyLDB4YzAgfX0sCi0gezE2LCAweDk1ZTAsIDAsIHsweDhlLDB4OTAsMHgwMywweDI4LDB4MDIsMHhkMSwweDAwLDB4MzIsMHhjMCwweDBkLDB4YTgsMHgwYiwweDA4LDB4MDAsMHhlOCwweDAwIH19LAotIHsxNiwgMHg5NWYwLCAwLCB7MHgyZSwweDQwLDB4MGMsMHg5OCwweDBiLDB4MmUsMHgwMiwweGNhLDB4MDAsMHhiMiwweGEwLDB4NmMsMHg4MCwweDIzLDB4MmQsMHg4MCB9fSwKLSB7MTYsIDB4OTYwMCwgMCwgezB4Y2EsMHg4MCwweDMyLDB4ZDAsMHgwYywweGJhLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk2MTAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDAwLDB4YjYsMHgwMCwweGEzLDB4MDAsMHgwOCwweDYwLDB4MDIsMHgwNCwweDAwLDB4ODYsMHgwNCwweDI5IH19LAotIHsxNiwgMHg5NjIwLCAwLCB7MHgwMCwweDA4LDB4NTAsMHg0MiwweDE0LDB4MDQsMHhhNywweDAwLDB4MGQsMHg4MCwweDRhLDB4NjAsMHgwMiwweDAwLDB4MDAsMHg4MSB9fSwKLSB7MTYsIDB4OTYzMCwgMCwgezB4MDAsMHgyMSwweDQwLDB4MDgsMHg3MCwweDAyLDB4OWQsMHg0MiwweDg2LDB4MDEsMHgyMCwweGMwLDB4MDgsMHgzMiwweDgyLDB4MTIgfX0sCi0gezE2LCAweDk2NDAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OTIsMHgwMCwweGJjLDB4ODAsMHg2MywweDIwIH19LAotIHsxNiwgMHg5NjUwLCAwLCB7MHg4MiwweDA4LDB4MDIsMHg1MiwweDAwLDB4ODQsMHhjMiwweDIzLDB4MjAsMHg4OCwweDBjLDB4MDIsMHgzMywweDAwLDB4ODQsMHg4MCB9fSwKLSB7MTYsIDB4OTY2MCwgMCwgezB4MmYsMHgyMSwweDg5LDB4NGMsMHgwMiwweDEyLDB4MTQsMHg5NCwweGM1LDB4NjQsMHgyMSwweDA4LDB4NGMsMHgwMiwweDBlLDB4ODAgfX0sCi0gezE2LCAweDk2NzAsIDAsIHsweDk3LDB4ODIsMHhhMSwweGVjLDB4MDgsMHg3OSwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NjgwLCAwLCB7MHg0OCwweDE0LDB4Y2QsMHg0NCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NGQsMHg4MCwweDAzLDB4ODgsMHgyOCB9fSwKLSB7MTYsIDB4OTY5MCwgMCwgezB4YzAsMHgwOCwweDNjLDB4MDYsMHgwZiwweDAwLDB4YTMsMHg0MywweDJjLDB4YzIsMHgxYiwweDM4LDB4MDIsMHgwZiwweDAwLDB4OWIgfX0sCi0gezE2LCAweDk2YTAsIDAsIHsweDg4LDB4NjQsMHhkMCwweDA4LDB4YjgsMHgwMiwweDhjLDB4MTAsMHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwYSwweDEyIH19LAotIHsxNiwgMHg5NmIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGFhLDB4MDAsMHhmYSwweDA1LDB4MzIsMHg4MCB9fSwKLSB7MTYsIDB4OTZjMCwgMCwgezB4OGUsMHhhMCwweDBiLDB4NjksMHgwMCwweGNhLDB4NDAsMHgzMiwweGEwLDB4M2MsMHhhOCwweDAzLDB4MmEsMHgwMCwweGVhLDB4MjYgfX0sCi0gezE2LCAweDk2ZDAsIDAsIHsweDNlLDB4YjAsMHgwZCwweGExLDB4NjMsMHgyOCwweDIwLDB4Y2EsMHg0MCwweDM2LDB4YTAsMHgwYywweGUwLDB4MTMsMHgyOCwweDA5IH19LAotIHsxNiwgMHg5NmUwLCAwLCB7MHhkZSwweDAwLDB4MzIsMHg4MCwweDJjLDB4YTAsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTZmMCwgMCwgezB4NDgsMHgwMCwweGYwLDB4MjAsMHhmNCwweDAwLDB4M2YsMHgwMCwweDBmLDB4NDAsMHgyMywweGIwLDB4MDAsMHhlYywweDAwLDB4M2YgfX0sCi0gezE2LCAweDk3MDAsIDAsIHsweDA2LDB4MWUsMHhjMiwweDEzLDB4ZjAsMHg4OCwweGZjLDB4MjAsMHgzZiwweDA0LDB4OGUsMHhjMCwweDAzLDB4ZjAsMHg4MCwweGVjIH19LAotIHsxNiwgMHg5NzEwLCAwLCB7MHg0MCwweDNiLDB4MGMsMHgwZiwweGMwLDB4YTMsMHhlMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHg0ZiwweDgwLDB4MDMsMHhkMiB9fSwKLSB7MTYsIDB4OTcyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMCwweDMyLDB4NDAgfX0sCi0gezE2LCAweDk3MzAsIDAsIHsweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjOSwweDgwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHg1MywweGU0LDB4MTAsMHhjOSwweDAwIH19LAotIHsxNiwgMHg5NzQwLCAwLCB7MHgzMiwweDQwLDB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDQwLDB4OGYsMHg5MCwweDAzLDB4MjQsMHgxMCB9fSwKLSB7MTYsIDB4OTc1MCwgMCwgezB4YzksMHgwMSwweDNjLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk3NjAsIDAsIHsweDgwLDB4MDQsMHg0NywweDQ0LDB4ODksMHgwMCwweDIwLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNSwweDBhLDB4ODEsMHgxMCwweDIyIH19LAotIHsxNiwgMHg5NzcwLCAwLCB7MHg0MCwweDQ4LDB4OTAsMHgwMywweGM0LDB4MDAsMHg4OSwweDAwLDB4NzYsMHg0MCwweDI4LDB4OTAsMHgwMiwweGU0LDB4MTAsMHhiOSB9fSwKLSB7MTYsIDB4OTc4MCwgMCwgezB4NDAsMHhiMiwweDQwLDB4MGIsMHg5MCwweDAzLDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQxLDB4MDgsMHg5MCwweDQyLDB4ZTAgfX0sCi0gezE2LCAweDk3OTAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjQsMHgwMiwweGJkLDB4MDAsMHgyMywweDQ4IH19LAotIHsxNiwgMHg5N2EwLCAwLCB7MHgwOCwweGQwLDB4MDYsMHgxZCwweDA0LDB4OGQsMHgwMCwweDI5LDB4YzAsMHg0YSwweGQwLDB4MjIsMHhmNCwweDAwLDB4ODUsMHgwMCB9fSwKLSB7MTYsIDB4OTdiMCwgMCwgezB4NjEsMHg0MCwweDE4LDB4ZDAsMHgxMiwweGZjLDB4MDAsMHhiZCwweDQwLDB4YTMsMHg0MCwweDRiLDB4ZjAsMHgwMiwweDA0LDB4MDEgfX0sCi0gezE2LCAweDk3YzAsIDAsIHsweDhiLDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5N2QwLCAwLCB7MHgwOCwweDA0LDB4MzYsMHg4MCwweDg1LDB4MjAsMHhhMywweDQ4LDB4MDgsMHg1MiwweDBhLDB4MTQsMHg4MSwweDg1LDB4MjAsMHgyOSB9fSwKLSB7MTYsIDB4OTdlMCwgMCwgezB4NDgsMHgwOCwweDUyLDB4MDIsMHhiNCwweDgwLDB4ODUsMHgyMCwweDI1LDB4NDgsMHg4OCwweDUyLDB4MDIsMHhkNCwweDgwLDB4YjUgfX0sCi0gezE2LCAweDk3ZjAsIDAsIHsweDIwLDB4MjEsMHg0OCwweDBiLDB4NTIsMHgwMiwweDQ0LDB4YTIsMHg4MSwweDAwLDB4MmMsMHg0YSwweDA4LDB4MTIsMHg4MiwweGMyIH19LAotIHsxNiwgMHg5ODAwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhmOCwweDUxLDB4MjIsMHgwMCB9fSwKLSB7MTYsIDB4OTgxMCwgMCwgezB4MmMsMHg4NSwweDAyLDB4MjEsMHg0OCwweGM4LDB4MDAsMHhiYSwweDE0LDB4MGYsMHg4NSwweDEyLDB4ZTEsMHg0MiwweGM4LDB4NTAgfX0sCi0gezE2LCAweDk4MjAsIDAsIHsweDIyLDB4MDAsMHgwYywweDAwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHg1MCwweDMyLDB4MDAsMHgwNywweDQ1LDB4MDMsMHgyMCwweDgwIH19LAotIHsxNiwgMHg5ODMwLCAwLCB7MHhjMCwweDAxLDB4M2UsMHgwOCwweDJjLDB4ODIsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTg0MCwgMCwgezB4OTgsMHgwZCwweGU0LDB4NDAsMHhmMSwweDEwLDB4M2UsMHg0NCwweDA3LDB4OTEsMHg0MywweGU0LDB4NTgsMHhmOSwweDExLDB4MzQgfX0sCi0gezE2LCAweDk4NTAsIDAsIHsweDQ0LDB4NGYsMHg5MSwweDAyLDB4ZTQsMHg1MCwweGY5LDB4MTAsMHgzYywweDRmLDB4MGYsMHg5MywweDgzLDB4ZTQsMHhmMCwweGY5IH19LAotIHsxNiwgMHg5ODYwLCAwLCB7MHgxMSwweDNhLDB4NGYsMHgwZiwweDkxLDB4MDMsMHhlNCwweGEwLDB4ZmQsMHgyOCwweDNlLDB4NGEsMHgwZiwweDkyLDB4ODMsMHhlNiB9fSwKLSB7MTYsIDB4OTg3MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweGEwLDB4Y2QsMHhhMCwweGIzLDB4NjggfX0sCi0gezE2LCAweDk4ODAsIDAsIHsweDhjLDB4OWEsMHgwMywweDM2LDB4ODAsMHhjNSwweGEwLDB4MjIsMHg2MCwweDBjLDB4OWEsMHgyMywweDI2LDB4MDQsMHhmOSwweGEwIH19LAotIHsxNiwgMHg5ODkwLCAwLCB7MHgzMiwweDY2LDB4MGMsMHg5YSwweDgzLDB4MDYsMHgyMCwweGM1LDB4YTAsMHgyMiwweDYwLDB4MGMsMHg5YiwweDAzLDB4MjYsMHg0OCB9fSwKLSB7MTYsIDB4OThhMCwgMCwgezB4YzksMHgwMCwweDNlLDB4NzgsMHgwYywweDlhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk4YjAsIDAsIHsweDM4LDB4MDAsMHhlMSwweDAwLDB4ODgsMHg0NCwweDIyLDB4OTUsMHgwOCwweDg1LDB4MTIsMHhhMSwweDQyLDB4ODgsMHg0MCwweDAyIH19LAotIHsxNiwgMHg5OGMwLCAwLCB7MHg5MCwweDA4LDB4ODQsMHgwMiwweDIzLDB4YTAsMHhiYSwweDQwLDB4MjIsMHhhMCwweDA4LDB4OGUsMHg5MiwweGEzLDB4YTAsMHhhOCB9fSwKLSB7MTYsIDB4OThkMCwgMCwgezB4NDAsMHgyYSwweDEwLDB4MDgsMHhhZSwweDAyLDB4MjMsMHg0MCwweDg4LDB4MDAsMHgyZSwweDM4LDB4MDgsMHg4NCwweDEyLDB4MGUgfX0sCi0gezE2LCAweDk4ZTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDE1LDB4YzQsMHgwMCwweDhiLDB4MTIsMHgyMiwweDQwIH19LAotIHsxNiwgMHg5OGYwLCAwLCB7MHgwOCwweDkwLDB4MDIsMHg0NCwweDAwLDB4ODEsMHg0MCwweGEwLDB4NTAsMHgwOCwweDExLDB4MGEsMHgwNSwweDAwLDB4YjEsMHgxMCB9fSwKLSB7MTYsIDB4OTkwMCwgMCwgezB4YTAsMHg0OCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDAsMHg4MSwweDQwLDB4MjAsMHg1MCwweDI4LDB4MTEsMHgwMiwweDQ0LDB4ODIgfX0sCi0gezE2LCAweDk5MTAsIDAsIHsweDgxLDB4MDAsMHgyYywweDUwLDB4MDgsMHgxMSwweDAyLDB4MDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OTIwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgwMiwweDg5LDB4NDAsMHgyMiwweDQwLDB4MDgsMHg5NCwweDEyLDB4YTUsMHgwMCwweDg5LDB4MjgsMHgyMiB9fSwKLSB7MTYsIDB4OTkzMCwgMCwgezB4NDksMHgwOCwweDk0LDB4MDIsMHgyNCwweDQ4LDB4YjksMHgxNCwweDIyLDB4NDAsMHgwOCwweDk0LDB4MDIsMHhhNCwweDQwLDB4YTEgfX0sCi0gezE2LCAweDk5NDAsIDAsIHsweDUwLDB4MmEsMHg1MCwweDA4LDB4OTEsMHg0MiwweDY0LDB4MDAsMHg4OSwweDQwLDB4MmUsMHg0MCwweDA4LDB4MTAsMHgwMiwweDA2IH19LAotIHsxNiwgMHg5OTUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MDAsMHhjOSwweDAwLDB4MzAsMHg3MCB9fSwKLSB7MTYsIDB4OTk2MCwgMCwgezB4MmMsMHgxMCwweDBiLDB4NjYsMHgwMCwweGM5LDB4NDAsMHgzMiwweDUwLDB4MGMsMHg5MCwweDAzLDB4MjYsMHgyMCwweGY5LDB4YzAgfX0sCi0gezE2LCAweDk5NzAsIDAsIHsweDMyLDB4NzAsMHgwYywweDkwLDB4MDMsMHgyNiwweDIwLDB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDljLDB4MDMsMHg2NCwweDAwIH19LAotIHsxNiwgMHg5OTgwLCAwLCB7MHhjOSwweDQxLDB4M2UsMHg0MCwweDJjLDB4OTAsMHgwYiwweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTk5MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDA0LDB4M2UsMHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4ODgsMHhmOSwweDAwLDB4MzQgfX0sCi0gezE2LCAweDk5YTAsIDAsIHsweDQxLDB4MmYsMHg5YywweDAzLDB4ZTQsMHgxMCwweGY5LDB4MDAsMHgzZSwweDQ0LDB4MmYsMHg5OSwweDAzLDB4ZTQsMHgxMCwweGY5IH19LAotIHsxNiwgMHg5OWIwLCAwLCB7MHgwMCwweDNlLDB4NTAsMHgwZiwweDEwLDB4NGIsMHhhNCwweDEwLDB4ZjksMHgyMCwweDNjLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg0YSB9fSwKLSB7MTYsIDB4OTljMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MTAgfX0sCi0gezE2LCAweDk5ZDAsIDAsIHsweDJjLDB4ODAsMHgwMywweDIwLDB4MDIsMHhjMCwweDQwLDB4MzIsMHgwMCwweDFjLDB4MDQsMHgwZiwweDIxLDB4MDAsMHhjMCwweDA0IH19LAotIHsxNiwgMHg5OWUwLCAwLCB7MHgzOCwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjEsMHgwOCwweGM4LDB4NjAsMHgzMCwweDEwLDB4MGYsMHg4MCwweDAyLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4OTlmMCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlhMDAsIDAsIHsweDI4LDB4MDUsMHgxYSwweDIwLDB4ODIsMHgwNCwweDJmLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgzOCwweDAwLDB4OGUsMHg4MCwweDIyIH19LAotIHsxNiwgMHg5YTEwLCAwLCB7MHg4MCwweDA4LDB4ZTAsMHgwMiwweDI4LDB4MDAsMHg4YSwweDAwLDB4MjIsMHg4MSwweDBiLDB4MjAsMHgwMiwweDI4LDB4MDAsMHhkZSB9fSwKLSB7MTYsIDB4OWEyMCwgMCwgezB4ZTQsMHgzNiwweDgwLDB4MGIsMHhhMCwweDQyLDB4MjgsMHgwMCwweGJhLDB4MDQsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4Y2EgfX0sCi0gezE2LCAweDlhMzAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDgzLDB4MDEsMHgyYywweDgwIH19LAotIHsxNiwgMHg5YTQwLCAwLCB7MHgwOCwweDMwLDB4MDIsMHgyZSwweDYwLDB4ODIsMHg5MCwweGEwLDB4YzAsMHg0OCwweDMwLDB4MDIsMHgwYywweDAyLDB4ODMsMHgwMCB9fSwKLSB7MTYsIDB4OWE1MCwgMCwgezB4MjgsMHhjMCwweDBiLDB4MzAsMHgwYSwweDJjLDB4MDAsMHg4MywweGMyLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgyYSwweDJjLDB4MDAgfX0sCi0gezE2LCAweDlhNjAsIDAsIHsweGIzLDB4MDAsMHhhMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2EsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YTcwLCAwLCB7MHhhMCwweDAxLDB4M2MsMHgwMCwweDg3LDB4MDEsMHgyZCwweGMyLDB4MDgsMHhmMywweDEyLDB4M2MsMHgwMCwweDhmLDB4MDEsMHgyMSB9fSwKLSB7MTYsIDB4OWE4MCwgMCwgezB4YzgsMHg2OCwweDcyLDB4MjIsMHgxZSwweDA0LDB4ODcsMHgyMCwweDIxLDB4YzQsMHgwYiwweDcwLDB4MDIsMHgzYywweDg0LDB4OWYgfX0sCi0gezE2LCAweDlhOTAsIDAsIHsweDAwLDB4MjUsMHhjNCwweDRiLDB4NzAsMHgwMiwweDFjLDB4MDQsMHhiNywweDgxLDB4MjEsMHhjOCwweDA4LDB4NzIsMHgwMiwweGU4IH19LAotIHsxNiwgMHg5YWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwMCwweDFlLDB4MDAsMHhjNywweDgxLDB4M2MsMHhhMCB9fSwKLSB7MTYsIDB4OWFiMCwgMCwgezB4NGMsMHg3YSwweDBiLDB4MWEsMHgwMCwweGM2LDB4ODAsMHgzMCwweGUwLDB4MDgsMHhmOCwweDgyLDB4MGUsMHg0MCwweGNmLDB4ZjAgfX0sCi0gezE2LCAweDlhYzAsIDAsIHsweDM5LDB4ZTgsMHgwZiwweDNhLDB4MDMsMHgxZSwweDIwLDB4YzcsMHg4MCwweDMxLDB4ZTMsMHgwZiwweDM4LDB4MjMsMHgxZiwweDA4IH19LAotIHsxNiwgMHg5YWQwLCAwLCB7MHhmZiwweGMwLDB4MzMsMHhmMiwweDBjLDB4N2UsMHgwMywweGVhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWFlMCwgMCwgezB4MDgsMHgxNSwweDg4LDB4MGEsMHg3YiwweDAwLDB4M2UsMHhjMSwweDBiLDB4MzQsMHgyMywweGM4LDB4MTAsMHhmYiwweDAyLDB4M2UgfX0sCi0gezE2LCAweDlhZjAsIDAsIHsweGNhLDB4MGYsMHhiNywweDQzLDB4ZWMsMHg4MCwweGZiLDB4MDAsMHgyZSwweGMyLDB4MGIsMHhiNCwweDgzLDB4ZWQsMHhkMCwweGZhIH19LAotIHsxNiwgMHg5YjAwLCAwLCB7MHgwMCwweDNlLDB4ZDksMHgwZiwweGIzLDB4ODMsMHhlYywweDgwLDB4YmIsMHgyMCwweDNlLDB4ZDgsMHgyZiwweGI0LDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4OWIxMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZjUsMHg5MSwweDMxLDB4YTAgfX0sCi0gezE2LCAweDliMjAsIDAsIHsweDBjLDB4ZmMsMHgwMywweGZlLDB4MDAsMHhjNCwweDgxLDB4MzEsMHhlZSwweDhkLDB4ZjgsMHgwYSwweDNlLDB4MzAsMHhjZiwweDg0IH19LAotIHsxNiwgMHg5YjMwLCAwLCB7MHgzMywweGUwLDB4MmMsMHhmOCwweDgzLDB4ZmUsMHgxMCwweGZlLDB4ODAsMHgzMywweGUwLDB4MGMsMHhmOSwweDE5LDB4M2YsMHg0OCB9fSwKLSB7MTYsIDB4OWI0MCwgMCwgezB4Y2YsMHhjMCwweDMzLDB4ZTAsMHgwNCwweGZjLDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDliNTAsIDAsIHsweGE4LDB4MTEsMHg5YywweDA4LDB4YjcsMHhhMSwweDIxLDB4YzgsMHgwOCwweDcxLDB4MDIsMHhmMCwweGEwLDB4ODUsMHgyMCwweDIxIH19LAotIHsxNiwgMHg5YjYwLCAwLCB7MHhjZSwweDA4LDB4NzAsMHgwMiwweDNjLDB4ODAsMHg4ZiwweDAwLDB4MmIsMHhjNSwweDA4LDB4NzEsMHgwMiwweGRjLDB4MTAsMHhiNCB9fSwKLSB7MTYsIDB4OWI3MCwgMCwgezB4MDAsMHgyMSwweGMxLDB4MGEsMHhmMywweDgyLDB4MGMsMHgwMCwweDg3LDB4MDEsMHgyOSwweGMwLDB4MDgsMHg3MSwweDAyLDB4NmEgfX0sCi0gezE2LCAweDliODAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OWQsMHgwMCwweGJkLDB4MjEsMHgyNywweDgyIH19LAotIHsxNiwgMHg5YjkwLCAwLCB7MHgwMCwweDcwLDB4MDIsMHhmYywweDA0LDB4OGMsMHgwMCwweGE3LDB4Y2MsMHhhOCwweDcwLDB4MDIsMHgzYywweDA4LDB4YWYsMHgwMCB9fSwKLSB7MTYsIDB4OWJhMCwgMCwgezB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4MDAsMHhiNywweDAwLDB4MjEsMHhjNCwweDA4LDB4NzAsMHgxNiwweDFjLDB4MGEgfX0sCi0gezE2LCAweDliYjAsIDAsIHsweDhmLDB4MDAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4YzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YmMwLCAwLCB7MHgyMCwweDEwLDB4YzgsMHgwMCwweGJiLDB4NDQsMHgyNCwweGUyLDB4MDgsMHhiMSwweDAyLDB4YzIsMHg4MCwweDAxLDB4ODAsMHgyNCB9fSwKLSB7MTYsIDB4OWJkMCwgMCwgezB4ZDAsMHg4OCwweDMwLDB4MDIsMHgwZiwweDUyLDB4ODMsMHg5MSwweDI4LDB4ZTQsMHg4OCwweDNkLDB4MDIsMHhjZSwweGQwLDB4YjAgfX0sCi0gezE2LCAweDliZTAsIDAsIHsweGIyLDB4YTIsMHhjMCwweDBhLDB4MzQsMHgxMiwweDBjLDB4MDIsMHg4MywweDAwLDB4MjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweDQ4IH19LAotIHsxNiwgMHg5YmYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFjLDB4MDAsMHhmYiwweDAxLDB4ZTQsMHg0MCB9fSwKLSB7MTYsIDB4OWMwMCwgMCwgezB4MmMsMHhmMCwweDQzLDB4ZTUsMHgwMCwweDhhLDB4ODgsMHgzNywweGUwLDB4MDAsMHhmYSwweDAyLDB4M2QsMHgwMCwweGVmLDB4MDAgfX0sCi0gezE2LCAweDljMTAsIDAsIHsweDMzLDB4ZDEsMHgwYywweGY0LDB4MDMsMHhmZCwweDAwLDB4ZjksMHg0MCwweDMzLDB4ZTgsMHgwYywweGZjLDB4MDEsMHgzYywweDA0IH19LAotIHsxNiwgMHg5YzIwLCAwLCB7MHhjZiwweDAyLDB4MzMsMHhjMCwweDJjLDB4ZjAsMHgwMywweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWMzMCwgMCwgezB4ODAsMHgwMCwweGVlLDB4MDgsMHhmOSwweDEwLDB4M2EsMHhkMCwweDBmLDB4YjAsMHg5MywweGVjLDB4MDAsMHhmYiwweDBiLDB4M2EgfX0sCi0gezE2LCAweDljNDAsIDAsIHsweGMwLDB4OGUsMHhiMCwweDgzLDB4ZWMsMHg4MCwweGZiLDB4MDksMHg3ZSwweGM4LDB4MGYsMHhiMiwweDEzLDB4ZWMsMHgwMCwweGY5IH19LAotIHsxNiwgMHg5YzUwLCAwLCB7MHgwMCwweDNlLDB4YzIsMHg4ZiwweGIyLDB4NGIsMHhjYywweDA0LDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg2MCB9fSwKLSB7MTYsIDB4OWM2MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmYsMHgwOCwweDMzLDB4YzAgfX0sCi0gezE2LCAweDljNzAsIDAsIHsweDFjLDB4ZjAsMHgwMywweDcwLDB4NDAsMHhjNCwweGMwLDB4MzMsMHhjMiwweDBmLDB4ZjAsMHgwMywweDFjLDB4MTAsMHhjNywweDAwIH19LAotIHsxNiwgMHg5YzgwLCAwLCB7MHgzMSwweGMwLDB4MGMsMHg3MCwweDAzLDB4MWMsMHgwMCwweGM1LDB4NDEsMHgzMywweGMwLDB4MGMsMHhmMCwweDIzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4OWM5MCwgMCwgezB4Y2YsMHgwMCwweGIzLDB4YzAsMHg2YywweGYwLDB4MDMsMHg4MCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDljYTAsIDAsIHsweDgxLDB4MDQsMHg2YSwweDAwLDB4YjksMHg5MCwweDMyLDB4ZjEsMHgwOCwweGIwLDB4MDIsMHgwYSwweDEwLDB4ZDksMHgwMCwweDIyIH19LAotIHsxNiwgMHg5Y2IwLCAwLCB7MHhjMSwweDBiLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhjYiwweDA2LDB4MjIsMHhjMCwweDg4LDB4YjAsMHgxMiwweDJjLDB4MDAsMHg4OCB9fSwKLSB7MTYsIDB4OWNjMCwgMCwgezB4ODAsMHgyMiwweGMxLDB4MGQsMHhiMCwweDAyLDB4MmMsMHgwMCwweDgzLDB4MDAsMHgyMiwweGMxLDB4MDgsMHhiMCwweDQ2LDB4ZTAgfX0sCi0gezE2LCAweDljZDAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAxLDB4MmUsMHgwMCwweGI5LDB4MDAsMHgyMiwweGYwIH19LAotIHsxNiwgMHg5Y2UwLCAwLCB7MHgwOCwweGIwLDB4MTIsMHg2NCwweDAwLDB4OGEsMHgwMCwweDIyLDB4YzAsMHgwYiwweDMwLDB4NDIsMHgyYywweDAwLDB4OGIsMHgwMCB9fSwKLSB7MTYsIDB4OWNmMCwgMCwgezB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4YSwweDAwLDB4MjIsMHhjMCwweDg4LDB4MzAsMHgwYSwweDJjLDB4MDAgfX0sCi0gezE2LCAweDlkMDAsIDAsIHsweDhiLDB4MDAsMHgyMCwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZDEwLCAwLCB7MHgwOCwweDA0LDB4MGMsMHgwNCwweGIxLDB4MDIsMHhlNCwweGMxLDB4MDgsMHhiMCwweDIyLDB4MjAsMHgwMiwweDkzLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4OWQyMCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MTIsMHgwYywweDAyLDB4ODMsMHgwMiwweGEwLDB4YzAsMHgyOCwweDMwLDB4MGUsMHgwYywweDAyLDB4ODAgfX0sCi0gezE2LCAweDlkMzAsIDAsIHsweDAwLDB4YTAsMHhjMCwweDQ5LDB4MzAsMHgwYSwweDBjLDB4MDIsMHg4YiwweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGMyIH19LAotIHsxNiwgMHg5ZDQwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhmOSwweDI0LDB4MzIsMHhjMCB9fSwKLSB7MTYsIDB4OWQ1MCwgMCwgezB4MDgsMHhmMCwweDAzLDB4NjQsMHgwMCwweGM4LDB4MDAsMHhiMywweGMwLDB4MWYsMHhmMCwweDBiLDB4M2MsMHgwMCwweDhmLDB4MDAgfX0sCi0gezE2LCAweDlkNjAsIDAsIHsweDMzLDB4YzAsMHg0YywweGYwLDB4NDMsMHgzYywweDA4LDB4YzMsMHgwMCwweDMxLDB4YzAsMHgwYywweGYwLDB4MDMsMHgzZCwweDQ4IH19LAotIHsxNiwgMHg5ZDcwLCAwLCB7MHhjZiwweDAwLDB4MzEsMHhjMCwweDBjLDB4ZjAsMHgwMywweDgwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWQ4MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDQsMHhmOSwweDQxLDB4M2IsMHhjMCwweDRmLDB4ZjAsMHgwMywweGYwLDB4MTEsMHhmZCwweDAwLDB4M2YgfX0sCi0gezE2LCAweDlkOTAsIDAsIHsweGMwLDB4ODcsMHg3MCwweDI3LDB4ZmMsMHgwMCwweGVmLDB4MDYsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAyLDB4ZmMsMHgwOCwweGZjIH19LAotIHsxNiwgMHg5ZGEwLCAwLCB7MHgwMCwweDNmLDB4YzAsMHg0NywweGYwLDB4NDMsMHhmYywweDAwLDB4NzcsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4OWRiMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkMiwweDAwLDB4YzcsMHgwMSwweDM3LDB4MGMgfX0sCi0gezE2LCAweDlkYzAsIDAsIHsweDBmLDB4ZTgsMHgyMywweDEwLDB4NGEsMHhjNCwweGMwLDB4MzEsMHgzMCwweDBjLDB4YzksMHgwMywweDM0LDB4NDYsMHhjZiwweDEwIH19LAotIHsxNiwgMHg5ZGQwLCAwLCB7MHgzMywweGQwLDB4MGMsMHhmNCwweDAzLDB4M2MsMHg1OCwweGNmLDB4MDAsMHgzMywweGMwLDB4MmQsMHhmMSwweDAzLDB4M2UsMHgwMiB9fSwKLSB7MTYsIDB4OWRlMCwgMCwgezB4Y2YsMHgyMSwweDNmLDB4ZTQsMHgwZiwweGYyLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlkZjAsIDAsIHsweDgwLDB4MTAsMHhlNCwweDg0LDB4MGIsMHg0MCwweDIyLDB4NGMsMHgwYiwweGE4LDB4MDIsMHgyYywweGMwLDB4OGIsMHgyMCwweDIyIH19LAotIHsxNiwgMHg5ZTAwLCAwLCB7MHhjOCwweDRhLDB4MzIsMHgwMiwweDI0LDB4ODAsMHg4MywweDIwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDIwLDB4MDAsMHg4YiB9fSwKLSB7MTYsIDB4OWUxMCwgMCwgezB4MjEsMHgzMiwweGNhLDB4NDgsMHgzMiwweDAyLDB4MmMsMHgzMCwweDhmLDB4OTAsMHgyZSwweDg4LDB4MGIsMHhiZCwweDEyLDB4MjAgfX0sCi0gezE2LCAweDllMjAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2UsMHgyMCwweGEzLDB4NDAsMHhlMCwweDQ4IH19LAotIHsxNiwgMHg5ZTMwLCAwLCB7MHg0YiwweDIwLDB4MjIsMHgwYywweDAyLDB4ODIsMHgwMCwweDJhLDB4MDAsMHgwOCwweDIwLDB4MDIsMHgwNCwweDgwLDB4ODAsMHgyMCB9fSwKLSB7MTYsIDB4OWU0MCwgMCwgezB4MjAsMHhjOCwweDA4LDB4MDIsMHgwMiwweDBjLDB4MDAsMHg4MCwweDBjLDB4NjAsMHgwMCwweDA4LDB4MjAsMHgxMiwweDJjLDB4ODggfX0sCi0gezE2LCAweDllNTAsIDAsIHsweDgzLDB4MDAsMHgyYywweGU4LDB4MGIsMHgzMCwweDAyLDB4NjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZTYwLCAwLCB7MHhjMCwweDE1LDB4YWUsMHgwMCwweGFiLDB4MDEsMHhhMiwweDYwLDB4MGIsMHhhMCwweDAyLDB4MjAsMHgwMSwweDgxLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4OWU3MCwgMCwgezB4YzAsMHgwYSwweDkwLDB4MTIsMHgwNCwweDIwLDB4OGEsMHgwOCwweDIyLDB4YzEsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ODggfX0sCi0gezE2LCAweDllODAsIDAsIHsweDAwLDB4MjQsMHg0NCwweDA4LDB4YTIsMHgwMiwweGFjLDB4MDAsMHg4YiwweDA0LDB4MmUsMHg4OCwweDAzLDB4YjAsMHgwMiwweDcwIH19LAotIHsxNiwgMHg5ZTkwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxNSwweGVjLDB4MDAsMHhlYSwweDkwLDB4MzIsMHgyOCB9fSwKLSB7MTYsIDB4OWVhMCwgMCwgezB4MGYsMHhiNiwweDAzLDB4MjAsMHgwOCwweGM5LDB4MDQsMHgzYSwweGMwLDB4NGMsMHg5MCwweDIyLDB4MjQsMHgwMCwweGNiLDB4NDAgfX0sCi0gezE2LCAweDllYjAsIDAsIHsweDMyLDB4YTgsMHgwYywweGIyLDB4MDMsMHgyYywweDAwLDB4Y2IsMHg4MCwweGIyLDB4ZTAsMHgwYywweGIwLDB4MGIsMHgwNCwweDAwIH19LAotIHsxNiwgMHg5ZWMwLCAwLCB7MHhjYiwweDAwLDB4M2UsMHhjMCwweDRmLDB4YjAsMHgwYiwweDUwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWVkMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhkZiwweDgwLDB4M2IsMHg4MSwweDBmLDB4ZjAsMHhjMywweGZjLDB4MDAsMHhiZSwweDAxLDB4MWYgfX0sCi0gezE2LCAweDllZTAsIDAsIHsweDAwLDB4MGYsMHhlMCwweDIzLDB4ZjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGIwLDB4NGYsMHhmMCwweDQzLDB4ZDQsMHgwMiwweGZmIH19LAotIHsxNiwgMHg5ZWYwLCAwLCB7MHg5MSwweDNhLDB4ZTAsMHg0ZSwweGYwLDB4MDMsMHg3YywweDBjLDB4ZmYsMHgwMCwweDJmLDB4ODAsMHgwZiwweDMwLDB4MDMsMHhiOCB9fSwKLSB7MTYsIDB4OWYwMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAxLDB4Y2EsMHgwMCwweDcyLDB4NTAgfX0sCi0gezE2LCAweDlmMTAsIDAsIHsweDA0LDB4YjQsMHgwMywweDJjLDB4ODIsMHhjYiwweDAwLDB4MzIsMHhlMCwweDBjLDB4YjgsMHgwMywweDI3LDB4MDQsMHhjOCwweGM4IH19LAotIHsxNiwgMHg5ZjIwLCAwLCB7MHhiMiwweGEyLDB4MGMsMHg4OCwweDAzLDB4MmMsMHgwMCwweGMxLDB4MDAsMHgzZSwweDAwLDB4MmMsMHgzMCwweDFiLDB4MmMsMHgwNCB9fSwKLSB7MTYsIDB4OWYzMCwgMCwgezB4ZmIsMHgxMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlmNDAsIDAsIHsweGM4LDB4MDUsMHgyYywweDA0LDB4MDMsMHg1MCwweGEyLDB4ZTAsMHgwOCwweDM0LDB4NDIsMHgzMywweDAwLDB4ODgsMHgwMCwweDIwIH19LAotIHsxNiwgMHg5ZjUwLCAwLCB7MHgxMCwweDBkLDB4ODQsMHgwMywweDI1LDB4MDAsMHg4YSwweDQwLDB4MjIsMHg5MCwweDA4LDB4YTUsMHgwMiwweDJjLDB4MDAsMHg4OSB9fSwKLSB7MTYsIDB4OWY2MCwgMCwgezB4YTQsMHgzYSwweDQwLDB4MDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGJmLDB4ODQsMHgyZSwweDgwLDB4MGIsMHhmMCwweDUyLDB4MzIgfX0sCi0gezE2LCAweDlmNzAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NmMsMHg4MCwweDgxLDB4ODAsMHgyNCwweDg4IH19LAotIHsxNiwgMHg5ZjgwLCAwLCB7MHg4OSwweDNjLDB4MjYsMHgyMSwweDAwLDB4OTAsMHgwMCwweDIwLDB4MDIsMHgwOCwweDgwLDB4ODIsMHgwMCwweDIwLDB4OWIsMHgwMCB9fSwKLSB7MTYsIDB4OWY5MCwgMCwgezB4MjIsMHg0MCwweDg4LDB4YjAsMHgxMiwweDBjLDB4MDgsMHg4MywweDgwLDB4MmMsMHhjMCwweDA4LDB4MTAsMHgwMiwweDBjLDB4MDAgfX0sCi0gezE2LCAweDlmYTAsIDAsIHsweGIzLDB4ODAsMHgyYywweDQwLDB4MGIsMHgzMCwweDAyLDB4MzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZmIwLCAwLCB7MHgyMCwweDAxLDB4M2UsMHgwYSwweDg1LDB4YTAsMHhhNSwweDYwLDB4MDgsMHhmYiwweDgyLDB4M2UsMHg4NCwweDlmLDB4ODEsMHg2MyB9fSwKLSB7MTYsIDB4OWZjMCwgMCwgezB4ZTAsMHg4OSwweDc5LDB4MTIsMHg1MiwweDgwLDB4OTcsMHg4MiwweDIxLDB4NmMsMHgxOCwweDc4LDB4MDIsMHgxMiwweDAwLDB4ODcgfX0sCi0gezE2LCAweDlmZDAsIDAsIHsweGExLDB4MjksMHhlMCwweDA4LDB4NWIsMHgwMiwweDFlLDB4MDAsMHhiNywweGMwLDB4MmQsMHg2MCwweDBiLDB4NzgsMHgwMiwweDA4IH19LAotIHsxNiwgMHg5ZmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDBjLDB4MDAsMHg4MSwweDA4LDB4MjYsMHhjMiB9fSwKLSB7MTYsIDB4OWZmMCwgMCwgezB4MmMsMHgzMiwweDEzLDB4MGUsMHhhNCwweGQyLDB4MDAsMHhiMCwweDAwLDB4MWMsMHgyMSwweDEyLDB4MjQsMHgwMiwweGQxLDB4MjAgfX0sCi0gezE2LCAweGEwMDAsIDAsIHsweDMwLDB4YzgsMHgwYywweDEwLDB4MDMsMHgwYywweDAwLDB4YzIsMHgxMCwweDNjLDB4ODAsMHgwYywweDIzLDB4MDMsMHgwYywweDQwIH19LAotIHsxNiwgMHhhMDEwLCAwLCB7MHhmMywweDAwLDB4M2MsMHg0OCwweDBmLDB4MzAsMHgwYiwweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTAyMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZCwweDIwLDB4YmIsMHg0MCwweDA3LDB4NzIsMHgwMiwweGYwLDB4MTAsMHhlZCwweDEwLDB4M2YgfX0sCi0gezE2LCAweGEwMzAsIDAsIHsweGM0LDB4MGYsMHhkMSwweDYzLDB4YjQsMHg4MCwweGVmLDB4MDAsMHgzZiwweGM4LDB4MGYsMHhmMCwweDAzLDB4ZDgsMHgwMCwweGZlIH19LAotIHsxNiwgMHhhMDQwLCAwLCB7MHgzNCwweDNmLDB4YzQsMHgwZiwweGViLDB4NDMsMHhmYywweDAwLDB4ZmYsMHgwOCwweDdmLDB4NDAsMHgwZiwweGYxLDB4ODMsMHhkMCB9fSwKLSB7MTYsIDB4YTA1MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4YzgsMHgwMCwweDMzLDB4ODAgfX0sCi0gezE2LCAweGEwNjAsIDAsIHsweDhmLDB4MjgsMHgwMywweDIwLDB4MDAsMHg0OSwweDAyLDB4MzIsMHhjMCwweDBmLDB4OTAsMHgwMywweDIwLDB4MDAsMHhjYiwweDAwIH19LAotIHsxNiwgMHhhMDcwLCAwLCB7MHgzMiwweDQwLDB4NGMsMHhiMCwweDBiLDB4MmMsMHgwMCwweGNiLDB4ODAsMHgzMiwweGMwLDB4MGUsMHg5ZSwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YTA4MCwgMCwgezB4ZmIsMHgyMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEwOTAsIDAsIHsweDQ4LDB4MTEsMHg5YywweDAwLDB4OGQsMHgwMSwweDIxLDB4YzAsMHgwYiwweDYwLDB4MDIsMHgxZCwweDAwLDB4ZDYsMHgwMCwweDIxIH19LAotIHsxNiwgMHhhMGEwLCAwLCB7MHgwMCwweDBiLDB4ZTAsMHgwMiwweDAwLDB4MDAsMHg4MywweDA0LDB4MjAsMHg0MCwweDA4LDB4NzAsMHg0MiwweDM0LDB4MDIsMHg4NyB9fSwKLSB7MTYsIDB4YTBiMCwgMCwgezB4MDEsMHgyMywweGMwLDB4MjgsMHg1MSwweDBhLDB4MWMsMHgwNCwweGI3LDB4MzAsMHgyZCwweGMwLDB4MGIsMHg3MiwweDAzLDB4OTIgfX0sCi0gezE2LCAweGEwYzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OWUsMHgwMCwweGE2LDB4NDAsMHgyMSwweGEwIH19LAotIHsxNiwgMHhhMGQwLCAwLCB7MHgwYiwweDY4LDB4MDIsMHgwZSwweDAwLDB4OGYsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHgxNiwweDEwLDB4YTUsMHg4MCB9fSwKLSB7MTYsIDB4YTBlMCwgMCwgezB4MjEsMHhlMCwweDA4LDB4MTgsMHgwMiwweDFlLDB4MDAsMHg4MywweDgwLDB4MjEsMHhhMCwweDA4LDB4NzgsMHgwMiwweDFmLDB4MDAgfX0sCi0gezE2LCAweGEwZjAsIDAsIHsweGI3LDB4ODAsMHgyZCwweGUwLDB4MGIsMHgzOCwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMTAwLCAwLCB7MHg0OCwweDE0LDB4ZWMsMHgxMiwweGExLDB4NjQsMHgyMCwweGU2LDB4MGIsMHgyMCwweDAyLDB4MDAsMHgxMCwweDkwLDB4NGEsMHgyMCB9fSwKLSB7MTYsIDB4YTExMCwgMCwgezB4MjAsMHg0YiwweDAwLDB4NDIsMHgwNCwweDAwLDB4ODMsMHgwMCwweDIwLDB4YzIsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMgfX0sCi0gezE2LCAweGExMjAsIDAsIHsweDA0LDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDBlLDB4MDAsMHhiMywweDAwLDB4MmMsMHhlMCwweDRiLDB4MzAsMHgwMiwweDkyIH19LAotIHsxNiwgMHhhMTMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI4LDB4MDAsMHhlZSwweGMwLDB4MzMsMHg5MCB9fSwKLSB7MTYsIDB4YTE0MCwgMCwgezB4MGYsMHhhMCwweDFiLDB4MDgsMHgwMCwweGNhLDB4NDAsMHhiMiwweDgyLDB4MGYsMHhhMCwweDBiLDB4MjgsMHgwMiwweGNhLDB4MDAgfX0sCi0gezE2LCAweGExNTAsIDAsIHsweGIyLDB4OTAsMHhhYywweGEwLDB4MDMsMHgyOSwweDAwLDB4Y2EsMHg0MCwweGIyLDB4ODAsMHg4ZSwweGE0LDB4MDMsMHgyYSwweDAwIH19LAotIHsxNiwgMHhhMTYwLCAwLCB7MHhmYSwweDAwLDB4M2YsMHhhOCwweDBmLDB4YTAsMHgwYiwweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTE3MCwgMCwgezB4NDgsMHgwMCwweGUyLDB4MDIsMHg5MCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODgsMHgwMywweGYxLDB4MDAsMHhmYywweDAyLDB4M2YgfX0sCi0gezE2LCAweGExODAsIDAsIHsweDIwLDB4MGYsMHhjOCwweDAzLDB4YzEsMHgwMCwweGYwLDB4MDAsMHgzZSwweDAwLDB4OGYsMHgwMCwweDAxLDB4NjAsMHgwMiwweGY4IH19LAotIHsxNiwgMHhhMTkwLCAwLCB7MHgwOCwweDNlLDB4MDAsMHgwZiwweDgwLDB4ODMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAsMHg4ZiwweDgwLDB4MTMsMHg5MiB9fSwKLSB7MTYsIDB4YTFhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMCwweGIyLDB4NjQgfX0sCi0gezE2LCAweGExYjAsIDAsIHsweDBmLDB4OTEsMHgwMywweGU0LDB4MDQsMHhjOSwweDAwLDB4MzIsMHg0MCwweDZjLDB4OTAsMHgwMywweDI1LDB4MDIsMHhjOSwweDkwIH19LAotIHsxNiwgMHhhMWMwLCAwLCB7MHhiMCwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgyMCwweGM5LDB4YTAsMHgzZSwweDQwLDB4NGMsMHg5MCwweDIzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4YTFkMCwgMCwgezB4ZjEsMHgwMCwweDkyLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGExZTAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHg4MCwweGEyLDB4NDAsMHgwYiwweDk2LDB4NDIsMHhlNSwweDA0LDB4ODksMHgwMCwweDIyIH19LAotIHsxNiwgMHhhMWYwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDgsMHgwOSwweDQxLDB4MjIsMHg0MCwweDQ4LDB4OTAsMHg0MiwweDI0LDB4MDQsMHg4OSB9fSwKLSB7MTYsIDB4YTIwMCwgMCwgezB4ODAsMHgyNiwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGEyMTAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MjUsMHgwMCwweDg5LDB4MjAsMHgyMiwweDQwIH19LAotIHsxNiwgMHhhMjIwLCAwLCB7MHgwYiwweDkwLDB4MDIsMHhmNCwweDg0LDB4ODUsMHgwMCwweDIxLDB4NDAsMHg0OCwweDUwLDB4MDIsMHgyNCwweDIwLDB4OGQsMHgwOCB9fSwKLSB7MTYsIDB4YTIzMCwgMCwgezB4MjMsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDk0LDB4MDAsMHg4ZCwweDAwLDB4MjksMHg0MCwweDBhLDB4ZDAsMHgwMiwweGE0LDB4MDggfX0sCi0gezE2LCAweGEyNDAsIDAsIHsweGI5LDB4MDAsMHgyOCwweDQwLDB4MTgsMHg5MCwweGMyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMjUwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHgwMCwweDgxLDB4MDAsMHgyMCwweDUxLDB4MGIsMHgxMCwweDAyLDB4ZjUsMHg4MCwweDg1LDB4YzEsMHhhMSB9fSwKLSB7MTYsIDB4YTI2MCwgMCwgezB4NTAsMHgwOCwweDU0LDB4MGEsMHgwNSwweDA2LDB4ODUsMHg0MCwweDIxLDB4NTAsMHg4OCwweDU0LDB4MDIsMHg5NSwweDAwLDB4ODUgfX0sCi0gezE2LCAweGEyNzAsIDAsIHsweDQ0LDB4MmQsMHg1MCwweDJhLDB4NTQsMHgxMiwweGM1LDB4MDEsMHhiMSwweDAwLDB4MDgsMHg1MCwweDA4LDB4MTAsMHgwMiwweDAyIH19LAotIHsxNiwgMHhhMjgwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjYSwweDUwLDB4MzIsMHg4MCB9fSwKLSB7MTYsIDB4YTI5MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZTgsMHgwMiwweGM4LDB4MDEsMHgzMiwweDAwLDB4MmMsMHhjMCwweDAzLDB4MjAsMHgwMCwweGM4LDB4MDIgfX0sCi0gezE2LCAweGEyYTAsIDAsIHsweDMyLDB4MDAsMHgyYywweDgwLDB4MGIsMHhhMCwweDAwLDB4YzgsMHgwMCwweDNhLDB4MDAsMHg0ZSwweDQwLDB4MjMsMHhhMCwweDA4IH19LAotIHsxNiwgMHhhMmIwLCAwLCB7MHhmOCwweDAwLDB4M2EsMHgwMCwweDJjLDB4ODAsMHgwYiwweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTJjMCwgMCwgezB4OTgsMHgxZCwweGRjLDB4MDQsMHhmZCwweDQwLDB4M2YsMHg1MCwweDRmLDB4OTAsMHg2MywweGU0LDB4NDAsMHhmMSwweDAyLDB4M2UgfX0sCi0gezE2LCAweGEyZDAsIDAsIHsweDQxLDB4MGYsMHg5MCwweDEzLDB4ZjUsMHgwNCwweGY5LDB4NDEsMHgzZSwweDUwLDB4MGYsMHg5NCwweDQzLDB4NjUsMHgwMiwweGY5IH19LAotIHsxNiwgMHhhMmUwLCAwLCB7MHg0MSwweDM2LDB4NTAsMHg0ZCwweDk0LDB4MDMsMHhmNCwweDAwLDB4ZjksMHg0MSwweDM3LDB4NDAsMHg0ZiwweDk0LDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4YTJmMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmYywweDAwLDB4Y2QsMHhhOCwweDMzLDB4NzAgfX0sCi0gezE2LCAweGEzMDAsIDAsIHsweDBmLDB4ZDAsMHgxMywweGY2LDB4ODgsMHhjZCwweDAwLDB4MzIsMHg1MCwweDRmLDB4MTQsMHgyMywweDA3LDB4YTAsMHhjOSwweGMwIH19LAotIHsxNiwgMHhhMzEwLCAwLCB7MHgzMiwweDc4LDB4MGMsMHg5ZSwweDAzLDB4MzcsMHgwMiwweGNkLDB4YzAsMHgzMiwweDY0LDB4MGYsMHg5OCwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YTMyMCwgMCwgezB4Y2QsMHgwMCwweDMyLDB4NDAsMHgyYywweGRhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEzMzAsIDAsIHsweDM4LDB4MTAsMHhlMiwweDA4LDB4ODgsMHhlYiwweDIyLDB4MzAsMHgwYiwweDgwLDB4MTIsMHhlOCwweDA0LDB4YTAsMHhhMCwweDJhIH19LAotIHsxNiwgMHhhMzQwLCAwLCB7MHgyMCwweDBiLDB4OGEsMHgwYSwweDIzLDB4MDAsMHg4OCwweDgwLDB4MjIsMHgyOCwweDAwLDB4YzgsMHg0MiwweDIzLDB4ODAsMHg4MCB9fSwKLSB7MTYsIDB4YTM1MCwgMCwgezB4ZDQsMHgyMCwweDI4LDB4MDksMHg4MCwweDAyLDB4MjIsMHg5NCwweGE4LDB4MDAsMHgyYSwweDAwLDB4ODgsMHg4NSwweDAyLDB4MGUgfX0sCi0gezE2LCAweGEzNjAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4YzQsMHhhMCwweDgzLDB4MDAsMHgyNCwweGQ4IH19LAotIHsxNiwgMHhhMzcwLCAwLCB7MHg4YiwweDEwLDB4MDIsMHhlNSwweDE0LDB4ODksMHgwYSwweDIxLDB4NDgsMHgwYiwweDUyLDB4MDIsMHg1NCwweDgwLDB4ODUsMHg0MCB9fSwKLSB7MTYsIDB4YTM4MCwgMCwgezB4MjUsMHg1OCwweDA5LDB4NTYsMHgwMiwweDQ1LDB4MDIsMHg4MSwweDIwLDB4MjAsMHg1MCwweDBiLDB4MTQsMHgwMiwweDA0LDB4MzAgfX0sCi0gezE2LCAweGEzOTAsIDAsIHsweDgxLDB4MDAsMHgyMCwweDQwLDB4MDgsMHgxMCwweDAyLDB4NDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhM2EwLCAwLCB7MHgxOCwweDE1LDB4YTQsMHgxMiwweDg5LDB4MDAsMHhhNiwweDQwLDB4MGIsMHg5MCwweDQyLDB4ZTQsMHg5OCwweGE5LDB4ODAsMHgyYiB9fSwKLSB7MTYsIDB4YTNiMCwgMCwgezB4NDAsMHgwYiwweDUxLDB4MDIsMHg1NSwweDAwLDB4OWQsMHgwOCwweDI3LDB4NDgsMHgwOSwweGY2LDB4MDIsMHg0NCwweDAwLDB4ODEgfX0sCi0gezE2LCAweGEzYzAsIDAsIHsweDA0LDB4MjIsMHg0MCwweDE5LDB4OTEsMHg4YSwweDI0LDB4ODAsMHhhOSwweDAwLDB4MmEsMHg0MCwweDA4LDB4OTAsMHgwMiwweDQ2IH19LAotIHsxNiwgMHhhM2QwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU3LDB4MDIsMHhjOSwweDA0LDB4MzYsMHg1OCB9fSwKLSB7MTYsIDB4YTNlMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4YzUsMHgwMCwweGM5LDB4MDAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDEzLDB4NjQsMHgwMiwweGM5LDB4MDAgfX0sCi0gezE2LCAweGEzZjAsIDAsIHsweDM2LDB4NDAsMHgyZCwweDkwLDB4MGIsMHg2NiwweDA0LDB4YzksMHhlMCwweGIyLDB4NDgsMHg4ZiwweDk4LDB4NDcsMHgyNCwweDAwIH19LAotIHsxNiwgMHhhNDAwLCAwLCB7MHhjOSwweDAwLDB4NzIsMHg0MCwweDBjLDB4MTAsMHgwMywweDY4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTQxMCwgMCwgezB4MjgsMHgwMSwweGE1LDB4MDgsMHhmOSwweDIxLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDQsMHhmOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGE0MjAsIDAsIHsweDQwLDB4NGYsMHg5OCwweDgzLDB4YTQsMHgwMCwweGU5LDB4NDAsMHhiYSwweDYwLDB4MGUsMHg5MCwweDAzLDB4YTQsMHg4MCwweGY5IH19LAotIHsxNiwgMHhhNDMwLCAwLCB7MHhhMywweDNlLDB4NDgsMHgwZiwweDk4LDB4MGIsMHhlNCwweDAwLDB4ZjksMHgwMCwweDFlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg4YSB9fSwKLSB7MTYsIDB4YTQ0MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMiwweDQ4LDB4YzgsMHgyMCwweDMyLDB4MDggfX0sCi0gezE2LCAweGE0NTAsIDAsIHsweDFmLDB4ODAsMHg4MywweGUxLDB4MjIsMHhjOCwweDAxLDB4MzMsMHgwMCwweDJjLDB4YzAsMHgwMywweDMwLDB4MDQsMHhjYywweDQwIH19LAotIHsxNiwgMHhhNDYwLCAwLCB7MHhiMSwweDAwLDB4MGMsMHg0NCwweDAzLDB4MjAsMHgxMiwweGM4LDB4NDEsMHgzMiwweDAwLDB4MmQsMHg4NCwweDBiLDB4NjAsMHgwMCB9fSwKLSB7MTYsIDB4YTQ3MCwgMCwgezB4ZjgsMHgwMCwweGIyLDB4MDAsMHg0YywweDgwLDB4MGIsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE0ODAsIDAsIHsweDI4LDB4MDUsMHgzYSwweDAwLDB4YTYsMHgwMCwweDIzLDB4OTAsMHgwMywweGU0LDB4OTIsMHhmOCwweDAwLDB4ODIsMHgwMCwweDM2IH19LAotIHsxNiwgMHhhNDkwLCAwLCB7MHg4MCwweDA4LDB4YTAsMHgwMywweDY4LDB4MDAsMHhjYSwweDAwLDB4MjIsMHg4MywweDA4LDB4YTAsMHgwMiwweDI4LDB4MDMsMHg4YSB9fSwKLSB7MTYsIDB4YTRhMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweGI2LDB4ODAsMHgyMiwweDgwLDB4MGQsMHhlOCwweDAyLDB4MGEgfX0sCi0gezE2LCAweGE0YjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NmUsMHgwMCwweDgyLDB4NDIsMHgyMCwweGMwIH19LAotIHsxNiwgMHhhNGMwLCAwLCB7MHgwYiwweDM0LDB4MDIsMHhjZCwweDA5LDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAyLDB4OTgsMHgwMCB9fSwKLSB7MTYsIDB4YTRkMCwgMCwgezB4MjAsMHgyMCwweDI4LDB4MDAsMHgwYSwweDA0LDB4MTAsMHg4MSwweDgwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJjLDB4MDAgfX0sCi0gezE2LCAweGE0ZTAsIDAsIHsweGIzLDB4MDAsMHgyMiwweGMwLDB4MTgsMHgzMSwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNGYwLCAwLCB7MHhhMCwweDAxLDB4MzgsMHgwMiwweGEzLDB4MDAsMHgyMSwweDQwLDB4MWIsMHg3MCwweDAyLDB4ZGMsMHgyMCwweDg0LDB4MDUsMHg2NSB9fSwKLSB7MTYsIDB4YTUwMCwgMCwgezB4ZTAsMHgwOCwweGYwLDB4MDIsMHg3YywweDEwLDB4OTcsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg1NCwweDg4LDB4ODcgfX0sCi0gezE2LCAweGE1MTAsIDAsIHsweDA5LDB4MjEsMHhlOCwweDA5LDB4MzMsMHgwMiwweDFjLDB4ODAsMHhiNiwweDA4LDB4NjMsMHhjOCwweDA5LDB4MzgsMHgxMiwweDI4IH19LAotIHsxNiwgMHhhNTIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDFlLDB4MDAsMHhjNywweGEwLDB4YTEsMHhlMCB9fSwKLSB7MTYsIDB4YTUzMCwgMCwgezB4MGIsMHg3OCwweDAzLDB4ZmUsMHgwMCwweGM1LDB4ODIsMHgzMywweDIwLDB4MGMsMHg0OCwweDAzLDB4MWUsMHgwMSwweGRmLDB4ODAgfX0sCi0gezE2LCAweGE1NDAsIDAsIHsweDMxLDB4MjAsMHgwYywweDQ4LDB4MDMsMHgwNiwweDQwLDB4ODcsMHg4MiwweDMxLDB4ZjgsMHgwZCwweDdiLDB4MDMsMHg1ZiwweDAwIH19LAotIHsxNiwgMHhhNTUwLCAwLCB7MHhmMywweDgwLDB4MzEsMHhmMiwweDBjLDB4NjAsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTU2MCwgMCwgezB4MDgsMHgxZCwweDljLDB4MDAsMHhmYiwweDAxLDB4MmYsMHg0MCwweDA3LDB4YjAsMHgwMywweGU4LDB4MDQsMHhmOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGE1NzAsIDAsIHsweGMxLDB4MGYsMHhiMCwweDAzLDB4ZTAsMHgwNiwweGU4LDB4MDIsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAxLDB4YTQsMHgxMCwweGY5IH19LAotIHsxNiwgMHhhNTgwLCAwLCB7MHg0MCwweGJlLDB4ZDAsMHgwNiwweGIwLDB4MDMsMHhlZSwweDAwLDB4ZmEsMHgwMCwweDNjLDB4ZDgsMHgwZiwweGEwLDB4MDMsMHhjMiB9fSwKLSB7MTYsIDB4YTU5MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4Y2YsMHg4OCwweDMzLDB4NjQgfX0sCi0gezE2LCAweGE1YTAsIDAsIHsweDJjLDB4ZjgsMHgwMywweGZlLDB4MDIsMHhjNCwweGIwLDB4MzMsMHgyMCwweDhjLDB4ZDgsMHgwMywweDMyLDB4MDAsMHhjYywweGI0IH19LAotIHsxNiwgMHhhNWIwLCAwLCB7MHgzMywweGEwLDB4MGMsMHhjOCwweDAzLDB4MTYsMHgyMCwweGNmLDB4YzAsMHgzMywweGYwLDB4MGMsMHhmOCwweDAzLDB4ZmUsMHgwMCB9fSwKLSB7MTYsIDB4YTVjMCwgMCwgezB4Y2QsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGQ4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE1ZDAsIDAsIHsweGE4LDB4MTEsMHhiNSwweDA0LDB4ODcsMHgxMiwweGExLDB4NTAsMHgwYSwweDc0LDB4MTIsMHhjNCwweDQwLDB4ODQsMHgxMSwweDIzIH19LAotIHsxNiwgMHhhNWUwLCAwLCB7MHhjMCwweDI4LDB4ZTAsMHgwMiwweDFjLDB4MDIsMHhhNywweDExLDB4MjEsMHg1OCwweDQ4LDB4NzAsMHgwYSwweDE0LDB4MDAsMHg4ZCB9fSwKLSB7MTYsIDB4YTVmMCwgMCwgezB4MDAsMHgyMywweGMwLDB4MGIsMHg3MCwweDAyLDB4ZmMsMHg0MCwweDg2LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg1MCwweDAyLDB4MmEgfX0sCi0gezE2LCAweGE2MDAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OTUsMHgwMCwweDg3LDB4NDAsMHgyMSwweDAwIH19LAotIHsxNiwgMHhhNjEwLCAwLCB7MHgxOCwweDcxLDB4MDIsMHhkYywweDAwLDB4OTUsMHgyOCwweGUxLDB4MDIsMHgwOCwweDUwLDB4MDIsMHgzYywweDQyLDB4YTcsMHgyMiB9fSwKLSB7MTYsIDB4YTYyMCwgMCwgezB4MjEsMHg4MCwweDg4LDB4NDEsMHgwMiwweDE0LDB4MDAsMHg4NSwweDAwLDB4YTEsMHhjMCwweDA5LDB4NzEsMHgwMiwweGRjLDB4MDAgfX0sCi0gezE2LCAweGE2MzAsIDAsIHsweGI1LDB4MTAsMHgyZCwweGMwLDB4MGIsMHg0MCwweDAyLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNjQwLCAwLCB7MHgyMCwweDE0LDB4YzQsMHgxMCwweDgzLDB4ODQsMHgyMCwweDExLDB4MDgsMHgzMCwweDAyLDB4YzMsMHgxMCwweDkxLDB4MjAsMHgyMCB9fSwKLSB7MTYsIDB4YTY1MCwgMCwgezB4YzAsMHgwOCwweDI4LDB4MTIsMHgwMCwweDAwLDB4YTAsMHg4NCwweDIwLDB4NDAsMHgwOCwweDMwLDB4MDIsMHgwNCwweDI2LDB4ODMgfX0sCi0gezE2LCAweGE2NjAsIDAsIHsweDAwLDB4MjAsMHhkMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMiwweDAwLDB4MmMsMHhjMCwweDBiLDB4MDAsMHgwMiwweDA4IH19LAotIHsxNiwgMHhhNjcwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGFkLDB4MDAsMHhjZiwweDg4LDB4YjIsMHhlOCB9fSwKLSB7MTYsIDB4YTY4MCwgMCwgezB4MGMsMHgzMCwweDEzLDB4Y2UsMHhjMiwweGQwLDB4ODIsMHgzMiwweDAwLDB4MGMsMHgwZSwweDBiLDB4MjAsMHgwMCwweGM4LDB4ODggfX0sCi0gezE2LCAweGE2OTAsIDAsIHsweGIyLDB4NDAsMHgyYywweGJhLDB4NDMsMHgzNywweDAyLDB4Y2IsMHgwMCwweGIzLDB4YzAsMHgyYywweGYwLDB4MDMsMHhmYywweDEyIH19LAotIHsxNiwgMHhhNmEwLCAwLCB7MHhmYiwweDAwLDB4N2YsMHhkMSwweDBmLDB4MzAsMHgwYiwweDJiLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTZiMCwgMCwgezB4ODAsMHgwMCwweGVkLDB4MDIsMHhmMSwweDQwLDB4M2UsMHg0MSwweDBmLDB4YjAsMHgyMywweGVkLDB4MDAsMHhlOCwweDAxLDB4M2UgfX0sCi0gezE2LCAweGE2YzAsIDAsIHsweGM4LDB4MGYsMHhiMCwweDEzLDB4ZWMsMHgwNCwweGRiLDB4MDAsMHgzYywweDgwLDB4MGYsMHgwNCwweDAzLDB4ZTQsMHg0MCwweGY5IH19LAotIHsxNiwgMHhhNmQwLCAwLCB7MHgwMCwweDNjLDB4YzIsMHgwZSwweGIwLDB4MDMsMHhlZSwweDAwLDB4NGIsMHg0MSwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4YTZlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4NGIsMHgwMCwweDMyLDB4NDIgfX0sCi0gezE2LCAweGE2ZjAsIDAsIHsweDBjLDB4ZjAsMHgwMywweDM2LDB4ODAsMHhjZCwweDAwLDB4MzMsMHgwMCwweDRjLDB4YzAsMHg4MywweDNjLDB4MDQsMHhmNywweDAwIH19LAotIHsxNiwgMHhhNzAwLCAwLCB7MHgzMiwweDQwLDB4MGMsMHhiMSwweDQzLDB4MTQsMHgwMCwweGNkLDB4ODAsMHgzMywweGMwLDB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCB9fSwKLSB7MTYsIDB4YTcxMCwgMCwgezB4ZmYsMHgwMCwweGIzLDB4YzIsMHgwYywweGEwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE3MjAsIDAsIHsweDgxLDB4MDQsMHg0ZiwweDAyLDB4OGIsMHg4MCwweDIwLDB4MzAsMHgwOCwweGJjLDB4MDIsMHgyMCwweDEwLDB4ODksMHgwMCwweDIyIH19LAotIHsxNiwgMHhhNzMwLCAwLCB7MHhjMCwweDAwLDB4YjAsMHgwMywweDYwLDB4MDQsMHhiOCwweDAwLDB4YTIsMHg5MCwweDI4LDB4OGMsMHgxYSwweDI0LDB4MDIsMHg4YiB9fSwKLSB7MTYsIDB4YTc0MCwgMCwgezB4ODMsMHgyMiwweGMxLDB4MDgsMHhiMCwweDAyLDB4ZmMsMHgwMCwweGIzLDB4NjAsMHgyMCwweGMwLDB4MGQsMHhhMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGE3NTAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MmUsMHgwMCwweGFiLDB4YzAsMHgyMiwweDYwIH19LAotIHsxNiwgMHhhNzYwLCAwLCB7MHgwOCwweGI4LDB4MDIsMHgyOSwweDAwLDB4ODgsMHgwMSwweDIwLDB4MDAsMHgwOCwweDkwLDB4MDIsMHgyMCwweDAwLDB4YjgsMHgwMCB9fSwKLSB7MTYsIDB4YTc3MCwgMCwgezB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGU0LDB4MDAsMHg4MSwweDI0LDB4YTIsMHhjMCwweDA5LDB4YjAsMHg0NiwweGVjLDB4MDAgfX0sCi0gezE2LCAweGE3ODAsIDAsIHsweGI5LDB4MDAsMHgyMiwweGMwLDB4MDgsMHg5MCwweDAyLDB4MjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNzkwLCAwLCB7MHgwOCwweDA0LDB4MmMsMHgwMCwweGExLDB4MDAsMHhhMCwweDQxLDB4MDgsMHhiMCwweDBhLDB4MjAsMHg1MywweDg4LDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YTdhMCwgMCwgezB4YzAsMHgyOCwweGEwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4MDAsMHg4OCwweDAwLDB4MDIsMHg4NCwweDAwLDB4ODMgfX0sCi0gezE2LCAweGE3YjAsIDAsIHsweDA0LDB4MjAsMHhjMCwweDI4LDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAyLDB4NjIsMHhjMCwweDA5LDB4MTAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhhN2MwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDZjLDB4MDAsMHhlOSwweDAwLDB4MjIsMHgwMCB9fSwKLSB7MTYsIDB4YTdkMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4MDAsMHgwNCwweGM5LDB4MDAsMHhiMiwweDAwLDB4MGMsMHg5MCwweDAzLDB4MmMsMHgwMCwweGYzLDB4MDAgfX0sCi0gezE2LCAweGE3ZTAsIDAsIHsweGIyLDB4YzAsMHg4YywweGIwLDB4MDMsMHhiNCwweDAyLDB4OGYsMHgwMCwweDIzLDB4YzAsMHgwNCwweGYwLDB4MDMsMHhlYywweDA4IH19LAotIHsxNiwgMHhhN2YwLCAwLCB7MHhmOSwweDAwLDB4MzMsMHhjMCwweDBjLDB4ODAsMHgwMywweDAwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTgwMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MTAsMHhkZCwweDA0LDB4M2YsMHgwMCwweDBmLDB4YzAsMHgyMywweGYwLDB4OTAsMHhmZCwweDAwLDB4MmYgfX0sCi0gezE2LCAweGE4MTAsIDAsIHsweGMwLDB4MGYsMHhlMCwweDQzLDB4ZDAsMHgwMCwweGZjLDB4MDAsMHgzZiwweDAwLDB4OGYsMHhjMCwweDIyLDB4NzQsMHgwMCwweGZkIH19LAotIHsxNiwgMHhhODIwLCAwLCB7MHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwNiwweDNmLDB4YzAsMHgwZiwweGMwLDB4NDMsMHhlOCB9fSwKLSB7MTYsIDB4YTgzMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDgwLDB4ZWYsMHgyMCwweDExLDB4YzAgfX0sCi0gezE2LCAweGE4NDAsIDAsIHsweDBlLDB4NzIsMHgwMywweGJkLDB4YjAsMHhjZiwweDMxLDB4YmYsMHhjYywweDAyLDB4ZjAsMHgwMywweGZjLDB4YzYsMHhjZiwweDAxIH19LAotIHsxNiwgMHhhODUwLCAwLCB7MHgwYiwweGM1LDB4MGYsMHhmMSwweDAzLDB4M2MsMHgwNCwweGVmLDB4NjEsMHgzMywweGQ4LDB4MDcsMHhmMCwweDAzLDB4MzQsMHg4MCB9fSwKLSB7MTYsIDB4YTg2MCwgMCwgezB4Y2QsMHgzMCwweDczLDB4Y2MsMHgwZiwweGU4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE4NzAsIDAsIHsweDgwLDB4MTgsMHhlOSwweDAwLDB4ODgsMHg2OSwweDIyLDB4MTAsMHgwOCwweDhjLDB4MDAsMHgyMSwweDg0LDB4ODgsMHg0MSwweDIyIH19LAotIHsxNiwgMHhhODgwLCAwLCB7MHgxMCwweDg4LDB4ODYsMHg5MiwweDAxLDB4MDAsMHg4OCwweDYyLDB4MjIsMHgxMCwweDRiLDB4ODcsMHgwMiwweDIxLDB4YTAsMHg4OCB9fSwKLSB7MTYsIDB4YTg5MCwgMCwgezB4NjAsMHgyMCwweDEwLDB4MGIsMHg4NiwweGEyLDB4MzUsMHhhMCwweGFiLDB4NjAsMHhhMSwweGM0LDB4MGIsMHhiOCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGE4YTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4Y2QsMHhhOCwweDMzLDB4NDEsMHgyMCwweGM2IH19LAotIHsxNiwgMHhhOGIwLCAwLCB7MHg0YSwweDMxLDB4MDAsMHg4YywweDEwLDB4OTMsMHgzMywweDI4LDB4Y2MsMHgyOSwweDM0LDB4MTIsMHg4YywweDUwLDB4OTMsMHgxYyB9fSwKLSB7MTYsIDB4YThjMCwgMCwgezB4MjgsMHg4NCwweDAxLDB4MjAsMHg0YSwweDRjLDB4NDEsMHg4MywweDEwLDB4MjQsMHhjYywweDRiLDB4MzEsMHg0MiwweDRjLDB4NDAgfX0sCi0gezE2LCAweGE4ZDAsIDAsIHsweDkxLDB4MTAsMHgyNCwweGMwLDB4MGIsMHg4MCwweDAyLDB4MjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhOGUwLCAwLCB7MHhjMCwweDA1LDB4YTgsMHgyMCwweDkwLDB4MDIsMHgyMiwweDAwLDB4MDgsMHg4MCwweDAwLDB4MjAsMHgzMCwweGI4LDB4MDgsMHgyNiB9fSwKLSB7MTYsIDB4YThmMCwgMCwgezB4MDAsMHgwMSwweDgwLDB4ODIsMHgyMCwweDIwLDB4MTgsMHgwOCwweDQyLDB4NDAsMHgwMywweDkxLDB4MDIsMHg2MCwweDAwLDB4MDggfX0sCi0gezE2LCAweGE5MDAsIDAsIHsweDAxLDB4YTYsMHgwMCwweDBiLDB4ODAsMHgwMCwweDZjLDB4MTAsMHhiYiwweDAxLDB4MjYsMHhjMCwweDRiLDB4OTAsMHgwYSwweDMwIH19LAotIHsxNiwgMHhhOTEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweGZkLDB4MDAsMHhmZCwweDQxLDB4MzMsMHhhMSB9fSwKLSB7MTYsIDB4YTkyMCwgMCwgezB4MGUsMHhkMiwweDAzLDB4YjUsMHgwMiwweGRmLDB4NDIsMHgzYiwweDAxLDB4MGYsMHhkNCwweDQzLDB4YjUsMHgwMCwweGNkLDB4NDAgfX0sCi0gezE2LCAweGE5MzAsIDAsIHsweDFiLDB4YzQsMHgwZCwweDc4LDB4MDMsMHg3MCwweDAyLDB4ZWMsMHgwMCwweDE3LDB4YTEsMHgwZiwweGU4LDB4MGIsMHgyYywweDAyIH19LAotIHsxNiwgMHhhOTQwLCAwLCB7MHhkOSwweDkwLDB4MjYsMHhjMCwweDBmLDB4YWMsMHgwMywweDAwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTk1MCwgMCwgezB4ZTAsMHgwMSwweGI4LDB4MDAsMHhlZSwweDAwLDB4MWYsMHg2NCwweDRmLDB4ZTAsMHgwMywweGQ4LDB4MTAsMHhjNCwweDE4LDB4MzMgfX0sCi0gezE2LCAweGE5NjAsIDAsIHsweGMwLDB4MGMsMHhhMCwweGExLDB4YjgsMHgwOSwweGU2LDB4MDksMHgzNiwweDIyLDB4MGYsMHg4OCwweDIzLDB4YmMsMHgwMCwweGZiIH19LAotIHsxNiwgMHhhOTcwLCAwLCB7MHgwMCwweDNiLDB4NjQsMHgwZiwweGQ5LDB4MDMsMHg5YywweDAwLDB4ZTMsMHgwNCwweDNiLDB4YzAsMHgwZiwweGY0LDB4MDMsMHhmOCB9fSwKLSB7MTYsIDB4YTk4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4ZCwweDAwLDB4YzksMHg0MCwweGI2LDB4ODAgfX0sCi0gezE2LCAweGE5OTAsIDAsIHsweDBmLDB4MTAsMHgwMywweGE3LDB4MjAsMHhmYiwweDUwLDB4YjYsMHgwOCwweDRjLDB4MTQsMHgwMywweDY1LDB4MjIsMHhkOSwweDQwIH19LAotIHsxNiwgMHhhOWEwLCAwLCB7MHhiNiwweDgwLDB4MGUsMHhhMCwweDBiLDB4MDAsMHgwMCwweGQ4LDB4MDAsMHg3NiwweDgyLDB4MjgsMHhhMCwweDIzLDB4NjQsMHgwMCB9fSwKLSB7MTYsIDB4YTliMCwgMCwgezB4YzksMHgwNCwweDEyLDB4YzAsMHg4ZSwweDgwLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE5YzAsIDAsIHsweGM4LDB4MDUsMHgyYiwweDYwLDB4OGEsMHgwOSwweDIwLDB4NTAsMHgwOCwweGEwLDB4MjMsMHhlOSwweDAwLDB4YjgsMHhjMCwweDIyIH19LAotIHsxNiwgMHhhOWQwLCAwLCB7MHhmMCwweDA4LDB4YWMsMHgwMiwweDI4LDB4MDQsMHg4YSwweGMyLDB4MjIsMHg1MCwweDA4LDB4OTAsMHgwNiwweDJjLDB4MDAsMHg4YiB9fSwKLSB7MTYsIDB4YTllMCwgMCwgezB4MDQsMHgyMiwweDUxLDB4MDgsMHg5NCwweDAyLDB4ZTQsMHgwNCwweDhiLDB4MDQsMHgzNywweGMwLDB4MDgsMHgxOCwweDQyLDB4MjYgfX0sCi0gezE2LCAweGE5ZjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA0LDB4NGIsMHgwMCwweDgyLDB4YzgsMHgyNCwweDQzIH19LAotIHsxNiwgMHhhYTAwLCAwLCB7MHgwYiwweDI2LDB4MGEsMHg4OCwweDAwLDB4YjAsMHg4MCwweDIyLDB4ZTQsMHgwYiwweDIwLDB4NDIsMHg2OSwweDAwLDB4YTIsMHg5MCB9fSwKLSB7MTYsIDB4YWExMCwgMCwgezB4MjgsMHg0MCwweGU4LDB4MTAsMHgwMiwweDBjLDB4MDAsMHhiYiwweDAwLDB4MjgsMHg1MCwweDg4LDB4OTAsMHg4MiwweGM0LDB4MDEgfX0sCi0gezE2LCAweGFhMjAsIDAsIHsweDgzLDB4MDAsMHgyMCwweGMwLDB4MGEsMHgxMCwweDAyLDB4YmEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYTMwLCAwLCB7MHgyMCwweDEwLDB4NGUsMHg4MCwweDgxLDB4MDAsMHgyMSwweGE4LDB4MDgsMHg1OCwweDAyLDB4ZDYsMHgwMSwweGI3LDB4OTAsMHg2OCB9fSwKLSB7MTYsIDB4YWE0MCwgMCwgezB4MjAsMHgwMywweDU5LDB4ODIsMHg1NiwweDAwLDB4YTUsMHg4NCwweDJkLDB4YTIsMHgxOCwweDY5LDB4MjIsMHgwMiwweDAwLDB4MzQgfX0sCi0gezE2LCAweGFhNTAsIDAsIHsweDgwLDB4MjksMHhhOCwweDA4LDB4NjgsMHgwNiwweGM2LDB4MTQsMHg4NSwweDgyLDB4MjUsMHhlMCwweDA4LDB4NTgsMHg4MiwweDFjIH19LAotIHsxNiwgMHhhYTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDQ4LDB4MDAsMHhjMiwweGYwLDB4MzQsMHg0MCB9fSwKLSB7MTYsIDB4YWE3MCwgMCwgezB4MGYsMHgyMCwweDAzLDB4ODgsMHg4MCwweGY4LDB4MTAsMHgzMCwweGMwLDB4MjcsMHgyMSwweDBiLDB4NDgsMHg4MCwweGVhLDB4MjAgfX0sCi0gezE2LCAweGFhODAsIDAsIHsweDM4LDB4MDAsMHgwYywweDAwLDB4MTIsMHgwYywweDA4LDB4NzMsMHgwMCwweGI4LDB4NDAsMHgwYywweDEyLDB4MjMsMHg0YywweDAyIH19LAotIHsxNiwgMHhhYTkwLCAwLCB7MHg0MywweDM0LDB4MzAsMHhjMCwweDBlLDB4MTEsMHgwMywweDkyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWFhMCwgMCwgezB4NDAsMHgxNSwweGFjLDB4OTAsMHhmOSwweDAxLDB4MmUsMHg4OCwweDRiLDB4OTAsMHgxMSwweDY0LDB4MDAsMHhmYiwweDEwLDB4MzIgfX0sCi0gezE2LCAweGFhYjAsIDAsIHsweDAwLDB4MDAsMHg5MSwweDAzLDB4YTQsMHgwMCwweGM5LDB4MDAsMHgzMiwweGM0LDB4NGQsMHhiMCwweDQzLDB4ZTAsMHgwNCwweGM4IH19LAotIHsxNiwgMHhhYWMwLCAwLCB7MHgwMCwweDM2LDB4ODksMHgwZiwweGE4LDB4MDMsMHhlZCwweDAwLDB4ZjksMHgxNCwweDNlLDB4YzAsMHgwZiwweDEwLDB4NDMsMHhkMCB9fSwKLSB7MTYsIDB4YWFkMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhlOCwweDAwLDB4YzgsMHgwMCwweDNhLDB4MDAgfX0sCi0gezE2LCAweGFhZTAsIDAsIHsweDBjLDB4MDAsMHg1MywweGEwLDB4MDAsMHhlOCwweDAxLDB4MzIsMHgwMSwweDBlLDB4ODAsMHg1MywweDIwLDB4MTAsMHhjOCwweDAwIH19LAotIHsxNiwgMHhhYWYwLCAwLCB7MHgzYSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjAsMHgxMCwweGU4LDB4MDQsMHhiNiwweDAwLDB4ODQsMHg4MCwweDAzLDB4MmQsMHgxMiB9fSwKLSB7MTYsIDB4YWIwMCwgMCwgezB4Y2IsMHgwMCwweDJlLDB4Y2EsMHgwNCwweDkwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFiMTAsIDAsIHsweDRjLDB4MTksMHg4YywweDAwLDB4ODcsMHgwMiwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwYywweDAwLDB4ODMsMHgwMCwweDIxIH19LAotIHsxNiwgMHhhYjIwLCAwLCB7MHhjMCwweDA4LDB4MzAsMHg2MiwweDRjLDB4MDQsMHg4MywweDAwLDB4MjEsMHg4MCwweDQ4LDB4ZTAsMHgxMiwweDNjLDB4MDAsMHg4NyB9fSwKLSB7MTYsIDB4YWIzMCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MWMsMHgwMCwweDg1LDB4MDEsMHgyNCwweGQwLDB4MGEsMHg1MCwweDAyLDB4ZjIgfX0sCi0gezE2LCAweGFiNDAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4OWEsMHgwMCwweDgwLDB4ODAsMHgyOCwweDIwIH19LAotIHsxNiwgMHhhYjUwLCAwLCB7MHgwOCwweDRjLDB4MjIsMHhkMiwweDAwLDB4YTQsMHg4MCwweDI0LDB4MzAsMHgwYiwweDQ4LDB4MDIsMHg1MiwweDAwLDB4ODQsMHhjMCB9fSwKLSB7MTYsIDB4YWI2MCwgMCwgezB4MjEsMHgyMCwweDA5LDB4NDgsMHg2OCwweDEzLDB4MDAsMHhhNCwweDgwLDB4NjAsMHgyMCwweDA5LDB4MDgsMHgwMiwweDU2LDB4MDAgfX0sCi0gezE2LCAweGFiNzAsIDAsIHsweDk3LDB4ODAsMHgyZCwweGUwLDB4ODgsMHg1OCwweDAyLDB4ZTAsMHgxMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYjgwLCAwLCB7MHg2YywweDA0LDB4Y2MsMHgwMCwweDgzLDB4ODAsMHgyMCwweGQ4LDB4MDgsMHgzMCwweDAyLDB4NGMsMHg0MCwweDgzLDB4MDAsMHgyNCB9fSwKLSB7MTYsIDB4YWI5MCwgMCwgezB4ZDEsMHgwOSwweGI5LDB4NDIsMHg0ZSwweDAwLDB4ODMsMHgwMCwweDIwLDB4YzEsMHg4OSwweDMwLDB4NDIsMHgwYywweDAwLDB4ODMgfX0sCi0gezE2LCAweGFiYTAsIDAsIHsweGYwLDB4YTAsMHhkOSwweDE5LDB4MzYsMHgyMiwweDY2LDB4MDYsMHg5MSwweDAwLDB4MGMsMHhjMSwweDBhLDB4MTAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhhYmIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGU4LDB4MDIsMHhjYSwweGE1LDB4MmEsMHg5MSB9fSwKLSB7MTYsIDB4YWJjMCwgMCwgezB4MjgsMHhhOCwweDAzLDB4ZWEsMHgwMiwweGFhLDB4MDAsMHhiNiwweGEwLDB4MGYsMHhhMCwweDBhLDB4MmEsMHg5MiwweGNhLDB4ODMgfX0sCi0gezE2LCAweGFiZDAsIDAsIHsweGJhLDB4ODAsMHgyOSwweGEwLDB4MDMsMHgyYiwweDAwLDB4ZWEsMHg0MCwweDY2LDB4OTAsMHgyZCwweGU0LDB4MGIsMHg2YSwweDgwIH19LAotIHsxNiwgMHhhYmUwLCAwLCB7MHhkYSwweDAwLDB4M2UsMHg4MCwweDBjLDB4ZTAsMHgwMywweGZhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWJmMCwgMCwgezB4NDgsMHgwMSwweDgwLDB4MDAsMHhmYywweDAwLDB4M2QsMHgwMCwweDBmLDB4YzAsMHgwMywweGIwLDB4MTQsMHhmYywweDAwLDB4M2IgfX0sCi0gezE2LCAweGFjMDAsIDAsIHsweDEyLDB4MGUsMHhjMCwweDQzLDB4YjEsMHgxNCwweGZjLDB4MDAsMHgzZCwweDAwLDB4MGUsMHhjMCwweDAzLDB4ZjAsMHgyMCwweGY0IH19LAotIHsxNiwgMHhhYzEwLCAwLCB7MHgwMCwweDMxLDB4MDAsMHgwZSwweDQ0LDB4MTMsMHhhMCwweDAwLDB4ZTgsMHgwNiwweDM2LDB4MDAsMHg0ZiwweDgwLDB4MTMsMHhkMiB9fSwKLSB7MTYsIDB4YWMyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhNCwweDAwLDB4ZDEsMHgwMCwweDM2LDB4NjAgfX0sCi0gezE2LCAweGFjMzAsIDAsIHsweDFjLDB4MTgsMHgwYiwweDQ2LDB4MDAsMHhkOSwweDgwLDB4MzAsMHg0MCwweDJjLDB4OTgsMHgwNSwweDg2LDB4MDAsMHhjMSwweDgwIH19LAotIHsxNiwgMHhhYzQwLCAwLCB7MHg5MiwweDQwLDB4MGQsMHgxMCwweDAzLDB4NDQsMHgwMiwweDg5LDB4MDAsMHgzMiwweDcwLDB4MGMsMHg5OCwweDAxLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YWM1MCwgMCwgezB4YzksMHgwNCwweDMwLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFjNjAsIDAsIHsweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwOCwweDk0LDB4MDIsMHgyNCwweDgwLDB4ODksMHgwMSwweDIyIH19LAotIHsxNiwgMHhhYzcwLCAwLCB7MHg0MCwweDQ4LDB4OTEsMHgwMiwweDI0LDB4MDAsMHhkOSwweDkwLDB4MjIsMHg0MSwweDA4LDB4OTAsMHgxMiwweDI0LDB4MTAsMHg4OSB9fSwKLSB7MTYsIDB4YWM4MCwgMCwgezB4MDAsMHgzMiwweDQwLDB4MDgsMHg5NSwweDEyLDB4MjQsMHgwMiwweDgxLDB4MDAsMHhhMiwweDQxLDB4MGQsMHg5MCwweDQyLDB4ZTAgfX0sCi0gezE2LCAweGFjOTAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzOCwweDA1LDB4MjQsMHgwMiwweDlkLDB4MDAsMHgyMywweDQ0IH19LAotIHsxNiwgMHhhY2EwLCAwLCB7MHgwOCwweGQyLDB4MDYsMHg3NCwweDgwLDB4YjUsMHgyMCwweDIzLDB4NDAsMHgxYSwweGQwLDB4MDYsMHgzNSwweDkwLDB4OGQsMHgwMiB9fSwKLSB7MTYsIDB4YWNiMCwgMCwgezB4MmYsMHg0NCwweDE5LDB4ZDAsMHgwMiwweDc0LDB4MDAsMHg4ZCwweDAwLDB4NjMsMHg0MCwweDE4LDB4ZDQsMHgwMiwweGE0LDB4MTEgfX0sCi0gezE2LCAweGFjYzAsIDAsIHsweDg5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHhiMCwweDAyLDB4YzYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhY2QwLCAwLCB7MHgyOCwweDE0LDB4MDQsMHg4MCwweDg1LDB4MjAsMHgyMSwweDY4LDB4MDgsMHg1MiwweDAyLDB4MTQsMHg4MCwweGE1LDB4MjAsMHhhMSB9fSwKLSB7MTYsIDB4YWNlMCwgMCwgezB4NDgsMHgwYSwweDcyLDB4MzgsMHgxNCwweDgwLDB4OTUsMHgyNCwweDJkLDB4NDgsMHgyOCwweDUyLDB4MDIsMHgxNCwweDgwLDB4ODUgfX0sCi0gezE2LCAweGFjZjAsIDAsIHsweDIwLDB4MjEsMHg0OCwweDA4LDB4NTIsMHgwNiwweDg0LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0YSwweDA5LDB4MTAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhhZDAwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgwZCwweDYxLDB4NDAsMHhkOCwweDUwLDB4YjIsMHgxNCB9fSwKLSB7MTYsIDB4YWQxMCwgMCwgezB4MjgsMHhhMCwweDAzLDB4NjEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDk0LDB4NGUsMHg4NSwweDA0LDB4MjEsMHg0MiwweGM4LDB4NTAgfX0sCi0gezE2LCAweGFkMjAsIDAsIHsweDNjLDB4MTQsMHgwZCwweDgwLDB4MDMsMHg2MSwweDQwLDB4ODgsMHg1MCwweGIyLDB4MTQsMHgyYywweGM1LDB4MDksMHhhMSwweDQwIH19LAotIHsxNiwgMHhhZDMwLCAwLCB7MHhjOCwweDUwLDB4MzIsMHgxYywweDBjLDB4ODAsMHgwMywweGVlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWQ0MCwgMCwgezB4OTgsMHgxNSwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2EsMHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhkOSwweDE0LDB4M2UgfX0sCi0gezE2LCAweGFkNTAsIDAsIHsweDQ0LDB4MGQsMHg5MSwweDQzLDB4NjQsMHg0MCwweGU5LDB4MTAsMHgzMiwweDQ0LDB4MDcsMHg5MywweGMzLDB4ZTQsMHg1MCwweGQxIH19LAotIHsxNiwgMHhhZDYwLCAwLCB7MHgxMCwweDdlLDB4NDQsMHgwMywweDkxLDB4MDEsMHg1NCwweDQ0LDB4ZmQsMHgxNCwweDNlLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4YWQ3MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDgwLDB4ZGQsMHhhMCwweDMzLDB4NjggfX0sCi0gezE2LCAweGFkODAsIDAsIHsweDFlLDB4ZGEsMHgwMywweDM2LDB4OTAsMHhjZCwweGEwLDB4M2IsMHg2OCwweDBhLDB4ZDgsMHgyMywweDc2LDB4MGMsMHhlZCwweDgwIH19LAotIHsxNiwgMHhhZDkwLCAwLCB7MHgyYiwweDYyLDB4MGIsMHg5OSwweDAyLDB4YTcsMHg4MCwweGY5LDB4ZTEsMHgzNywweDY4LDB4MGMsMHhkYSwweDAzLDB4MjcsMHg4MCB9fSwKLSB7MTYsIDB4YWRhMCwgMCwgezB4YzksMHhhMiwweDIyLDB4NjgsMHg0YywweDUwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFkYjAsIDAsIHsweDM4LDB4MTgsMHhlMSwweDQwLDB4ODgsMHg1MCwweDIyLDB4MTQsMHgwOCwweDgwLDB4MjIsMHg2MCwweDAwLDB4ODgsMHgwNCwweDIyIH19LAotIHsxNiwgMHhhZGMwLCAwLCB7MHgwMCwweDA4LDB4MDQsMHgyNiwweDAxLDB4MDAsMHg4OCwweDUwLDB4MjIsMHgxMCwweDA4LDB4YWYsMHgwMiwweDIzLDB4MDAsMHg4OCB9fSwKLSB7MTYsIDB4YWRkMCwgMCwgezB4YzAsMHhhMCwweDEwLDB4ODgsMHg4NCwweDAyLDB4MjMsMHg4MCwweGEwLDB4NDAsMHgyYSwweDEwLDB4MDgsMHg4MCwweDEyLDB4NGUgfX0sCi0gezE2LCAweGFkZTAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4ODQsMHgwMCwweDgxLDB4MDEsMHgyMCwweDQwIH19LAotIHsxNiwgMHhhZGYwLCAwLCB7MHgwYSwweDE0LDB4MDIsMHg0NSwweDAwLDB4ODEsMHg0MSwweDJjLDB4NTAsMHgwYiwweDE0LDB4MDIsMHgwNSwweDA0LDB4YTEsMHgwMCB9fSwKLSB7MTYsIDB4YWUwMCwgMCwgezB4MjgsMHg0MCwweDgyLDB4MTAsMHgwMiwweDg0LDB4NDAsMHhhMSwweDMyLDB4ODAsMHg1MCwweDA5LDB4MTQsMHgwMiwweDA0LDB4YzQgfX0sCi0gezE2LCAweGFlMTAsIDAsIHsweDkxLDB4MTAsMHg2NCwweDQ0LDB4MjgsMHgxMCwweDAyLDB4ZDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZTIwLCAwLCB7MHgxOCwweDA0LDB4YWMsMHgwMiwweDgxLDB4MDAsMHgyMiwweGMxLDB4MDgsMHg5MCwweDAyLDB4NDQsMHgwMiwweDg5LDB4MDIsMHgyNiB9fSwKLSB7MTYsIDB4YWUzMCwgMCwgezB4NDEsMHgwOSwweDkwLDB4MGEsMHgyNCwweDBjLDB4ODksMHgwNCwweDIyLDB4NTAsMHgwOCwweDkwLDB4MjYsMHgyNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGFlNDAsIDAsIHsweDAwLDB4MjIsMHg0MSwweDA5LDB4MTAsMHgyMiwweDI0LDB4NDAsMHhiOSwweDAxLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDQ2IH19LAotIHsxNiwgMHhhZTUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTAsMHgxNSwweGU0LDB4MTAsMHg4OSwweDAwLDB4MzIsMHg0MCB9fSwKLSB7MTYsIDB4YWU2MCwgMCwgezB4MGEsMHg5MCwweDBiLDB4MjQsMHgxMCwweDg5LDB4MDAsMHgxZSwweDQwLDB4OWIsMHg5MCwweDAyLDB4MjQsMHgxMCwweDI5LDB4MDAgfX0sCi0gezE2LCAweGFlNzAsIDAsIHsweDFhLDB4NDAsMHgwZSwweDk0LDB4NDEsMHhhNCwweDAwLDB4MjksMHgwMCwweDEyLDB4NDAsMHgwNSwweDkwLDB4NDEsMHgyNiwweDAwIH19LAotIHsxNiwgMHhhZTgwLCAwLCB7MHhkOSwweDAwLDB4MjQsMHg0MCwweDBjLDB4OTAsMHgwMywweGU4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWU5MCwgMCwgezB4NDgsMHgwMSwweGE0LDB4MDIsMHhhOSwweDAwLDB4YmMsMHg0MCwweDBmLDB4OTAsMHgwMywweGE0LDB4MDQsMHhmOSwweDAwLDB4M2EgfX0sCi0gezE2LCAweGFlYTAsIDAsIHsweDQxLDB4MGUsMHg5MCwweDgzLDB4ODQsMHgwMCwweGY5LDB4MDAsMHgzYywweDQwLDB4MGUsMHg5MCwweDAyLDB4YzQsMHgwOCwweGU5IH19LAotIHsxNiwgMHhhZWIwLCAwLCB7MHgwMCwweDNhLDB4NDAsMHgyZSwweDkwLDB4MGIsMHhlNiwweDAwLDB4ZTEsMHgwNCwweDNhLDB4NDAsMHgwZiwweDkyLDB4MDMsMHg1YSB9fSwKLSB7MTYsIDB4YWVjMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhMCwweDIwLDB4ZDgsMHgwMCwweDM2LDB4MDIgfX0sCi0gezE2LCAweGFlZDAsIDAsIHsweDBlLDB4MDAsMHhhMywweGUwLDB4MTgsMHhjMCwweDAwLDB4MzAsMHgwMywweDBmLDB4ODAsMHgzMywweDIwLDB4MDAsMHg0MCwweDAwIH19LAotIHsxNiwgMHhhZWUwLCAwLCB7MHgzMiwweDBkLDB4MGYsMHgwNCwweDBiLDB4YTAsMHgwMiwweGM4LDB4MDIsMHgzMiwweDAyLDB4OGMsMHg4MiwweDAzLDB4MjAsMHgwMiB9fSwKLSB7MTYsIDB4YWVmMCwgMCwgezB4YzgsMHgwNCwweDE2LDB4MDAsMHg0ZSwweDgwLDB4MDEsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFmMDAsIDAsIHsweDI4LDB4MDUsMHgzYiwweDAwLDB4OGUsMHhkOCwweDIzLDB4ODAsMHgwOCwweGUwLDB4MDIsMHhmOCwweDgwLDB4OGUsMHgxMCwweDIzIH19LAotIHsxNiwgMHhhZjEwLCAwLCB7MHhhMiwweDBiLDB4ZTAsMHg4MiwweDdhLDB4MjAsMHg4ZSwweDMwLDB4MjMsMHhhMSwweDBiLDB4ZTAsMHgwMiwweDI4LDB4MDAsMHg4ZSB9fSwKLSB7MTYsIDB4YWYyMCwgMCwgezB4MDAsMHgyYiwweDg4LDB4MDgsMHhlNCwweDQyLDB4MzgsMHgwMCwweDhlLDB4MDQsMHgyMywweDgwLDB4MDgsMHhhMCwweDAyLDB4MGEgfX0sCi0gezE2LCAweGFmMzAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NmYsMHg0MCwweDkzLDB4YzYsMHgyNCwweDQwIH19LAotIHsxNiwgMHhhZjQwLCAwLCB7MHgwYSwweDM4LDB4MDIsMHhjYywweDAwLDB4ODMsMHgwMSwweGFjLDB4ZjAsMHgwYiwweGI0LDB4MDIsMHg0YywweDA0LDB4YTMsMHg4MCB9fSwKLSB7MTYsIDB4YWY1MCwgMCwgezB4MjgsMHhkMCwweDRiLDB4MzAsMHgwMiwweDRjLDB4MDAsMHhhYiwweDA0LDB4MmEsMHhjMCwweDJhLDB4MzAsMHgwYSwweGFjLDB4MTAgfX0sCi0gezE2LCAweGFmNjAsIDAsIHsweDkzLDB4MDAsMHgyMCwweGMxLDB4MGEsMHgzMSwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZjcwLCAwLCB7MHg4MCwweDExLDB4MWMsMHgwMCwweDgyLDB4MDAsMHgyMSwweDQyLDB4ODgsMHg3NCwweDA2LDB4ZGMsMHgwYiwweDg2LDB4MDIsMHgyZCB9fSwKLSB7MTYsIDB4YWY4MCwgMCwgezB4ODAsMHgwYiwweDcwLDB4MmEsMHg1OCwweDAwLDB4YTYsMHgwMCwweGE5LDB4YzAsMHgwYiwweDcwLDB4MDIsMHg1YywweDg4LDB4YTcgfX0sCi0gezE2LCAweGFmOTAsIDAsIHsweDIwLDB4MjksMHhjMCwweDBhLDB4NzAsMHgwMiwweDljLDB4MTAsMHg5NywweDIwLDB4YTEsMHhjOCwweDA4LDB4ZDgsMHgwMiwweDI4IH19LAotIHsxNiwgMHhhZmEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwOCwweDBlLDB4MDAsMHhkNywweDgwLDB4MzcsMHg2MCB9fSwKLSB7MTYsIDB4YWZiMCwgMCwgezB4MGUsMHg2OCwweDEzLDB4ZmUsMHgwMCwweGNmLDB4ODAsMHgzZCwweGUwLDB4MGYsMHg3OCwweDIzLDB4MWUsMHgwMCwweGVmLDB4ODIgfX0sCi0gezE2LCAweGFmYzAsIDAsIHsweDMxLDB4ZTAsMHgwZiwweDNjLDB4YzMsMHg3ZSwweDA0LDB4ZWYsMHg4MCwweGIxLDB4ZTAsMHgwZSwweGU4LDB4MDMsMHhiZSwweDgwIH19LAotIHsxNiwgMHhhZmQwLCAwLCB7MHhkNywweGUwLDB4MzMsMHhlYSwweDBlLDB4NzgsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWZlMCwgMCwgezB4MDgsMHgxNSwweGFjLDB4MDAsMHhmYSwweDAxLDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGUwLDB4MDQsMHhmOCwweDAwLDB4MzIgfX0sCi0gezE2LCAweGFmZjAsIDAsIHsweDgwLDB4MGYsMHg4MCwweDQzLDB4YWMsMHgwYSwweGQ4LDB4MDAsMHgzNiwweDQwLDB4MGYsMHhiMCwweDAzLDB4MmMsMHgwYywweGRiIH19LAotIHsxNiwgMHhiMDAwLCAwLCB7MHgwMCwweDI2LDB4YzEsMHgwOSwweGEwLDB4MTMsMHg2YywweDQwLDB4ZWIsMHg0MCwweDNhLDB4ZGMsMHgwZiwweDkwLDB4MGIsMHhjMiB9fSwKLSB7MTYsIDB4YjAxMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDQsMHhiZSwweDAwLDB4Y2YsMHg4MSwweDMzLDB4ZTkgfX0sCi0gezE2LCAweGIwMjAsIDAsIHsweDFmLDB4ZjksMHgxMywweGI2LDB4NTAsMHhlZiwweDgwLDB4MWYsMHhlNCwweDA0LDB4YzgsMHgwMywweDdlLDB4MDAsMHg2ZCwweDgxIH19LAotIHsxNiwgMHhiMDMwLCAwLCB7MHgzMywweDY0LDB4MGMsMHhmOCwweDFiLDB4M2UsMHgyMCwweDJmLDB4ODgsMHg5MywweGU4LDB4MGYsMHhmYiwweDAzLDB4MmUsMHg4MCB9fSwKLSB7MTYsIDB4YjA0MCwgMCwgezB4Y2YsMHhjMCwweDczLDB4ZTAsMHgyYywweGQ5LDB4MDMsMHhkMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIwNTAsIDAsIHsweGE4LDB4MTgsMHg5MCwweDQyLDB4ODksMHgxOCwweDIxLDB4YzAsMHgxZiwweDcxLDB4MDIsMHgxNCwweGMwLDB4ZjcsMHgyMCwweDI3IH19LAotIHsxNiwgMHhiMDYwLCAwLCB7MHg0MCwweDQwLDB4NzEsMHgxMiwweDE4LDB4MDAsMHg4NywweDIwLDB4MjEsMHg4MCwweDQ4LDB4NzEsMHgwMiwweDNjLDB4MDgsMHg4NyB9fSwKLSB7MTYsIDB4YjA3MCwgMCwgezB4MjAsMHgyMSwweDgyLDB4MGIsMHg2MSwweGEyLDB4MWUsMHg0NCwweGRmLDB4MDEsMHgzMSwweGM4LDB4MDgsMHg3MywweDAyLDB4ZWEgfX0sCi0gezE2LCAweGIwODAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4OGMsMHgwMCwweDg3LDB4MDAsMHgyMSwweGM4IH19LAotIHsxNiwgMHhiMDkwLCAwLCB7MHgwYiwweDcwLDB4MDIsMHg5YywweDA5LDB4ODcsMHgwMiwweDJkLDB4ODIsMHg5OSwweDQwLDB4MDIsMHgwNCwweDAwLDB4YTUsMHgwOSB9fSwKLSB7MTYsIDB4YjBhMCwgMCwgezB4MjEsMHg0MCwweDE5LDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NywweDA1LDB4MjUsMHg0OCwweDRiLDB4NzIsMHgwMiwweDBjLDB4NDAgfX0sCi0gezE2LCAweGIwYjAsIDAsIHsweDg3LDB4MDAsMHhhMSwweGMwLDB4NDgsMHg1MCwweDAyLDB4YzQsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMGMwLCAwLCB7MHg2OCwweDA0LDB4YzEsMHgyMCwweDg5LDB4NGMsMHhhMCwweGI0LDB4MGEsMHgzOCwweDAyLDB4MjIsMHgwMCwweGExLDB4ZDAsMHgyNCB9fSwKLSB7MTYsIDB4YjBkMCwgMCwgezB4MzAsMHgwOSwweDgwLDB4MDIsMHgyNywweDQ0LDB4ODEsMHhjNiwweDIyLDB4MTQsMHgwOSwweDNkLDB4MmEsMHgwZiwweDAyLDB4OGIgfX0sCi0gezE2LCAweGIwZTAsIDAsIHsweGMwLDB4YTYsMHgyMCwweDBiLDB4MjQsMHgwMCwweDBjLDB4MTAsMHg5MywweDgxLDB4MjAsMHhjMCwweDQ4LDB4MzAsMHgwNiwweGQ4IH19LAotIHsxNiwgMHhiMGYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgxNSwweGExLDB4MDAsMHg4OSwweGMxLDB4MzIsMHhkMSB9fSwKLSB7MTYsIDB4YjEwMCwgMCwgezB4MDMsMHhiYywweDAzLDB4YTksMHgyMCwweDg5LDB4NDEsMHgzZSwweDYwLDB4ODUsMHhiYywweDhiLDB4MjUsMHg0MCwweGViLDB4NDEgfX0sCi0gezE2LCAweGIxMTAsIDAsIHsweGEyLDB4YTAsMHgwZCwweGYwLDB4MTMsMHgzZSwweDIwLDB4Y2YsMHg5MCwweDM2LDB4MzAsMHg0ZiwweGJjLDB4MGIsMHgzYywweDAwIH19LAotIHsxNiwgMHhiMTIwLCAwLCB7MHhjZiwweDgwLDB4MzMsMHhjMSwweDBjLDB4YjEsMHgwMywweGVhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjEzMCwgMCwgezB4ODAsMHgwMCwweGVkLDB4MDAsMHhmOCwweDAxLDB4M2MsMHhkMCwweDBmLDB4YjMsMHgwMywweGU4LDB4ODIsMHhkOCwweDIwLDB4MzYgfX0sCi0gezE2LCAweGIxNDAsIDAsIHsweDgwLDB4MmUsMHhiMiwweDEzLDB4ZTEsMHgwMCwweGZhLDB4MDAsMHg3ZSwweGM4LDB4MmUsMHhiMCwweDAzLDB4ZWMsMHg4MCwweGRiIH19LAotIHsxNiwgMHhiMTUwLCAwLCB7MHgxMCwweDNhLDB4MDgsMHg0ZiwweGIyLDB4MjMsMHhjYywweDAyLDB4ZmIsMHgxMCwweDNhLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhlNCB9fSwKLSB7MTYsIDB4YjE2MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTAsMHhmMCwweDAwLDB4Y2QsMHgxMCwweDMzLDB4NDIgfX0sCi0gezE2LCAweGIxNzAsIDAsIHsweDBjLDB4Y2EsMHgyMywweDdjLDB4MDAsMHhjZiwweDAwLDB4MzMsMHg2MiwweDA2LDB4ZjAsMHgwMSwweDNhLDB4MDAsMHhjZiwweDA4IH19LAotIHsxNiwgMHhiMTgwLCAwLCB7MHgzMywweDgwLDB4MWMsMHhmMCwweDgxLDB4M2MsMHgwMCwweGZmLDB4MDAsMHgzMywweGEwLDB4MGMsMHhjYSwweDAxLDB4ZmMsMHgwNCB9fSwKLSB7MTYsIDB4YjE5MCwgMCwgezB4Y2YsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIxYTAsIDAsIHsweGExLDB4MDQsMHg2ZCwweDQwLDB4ODgsMHg0OCwweGEyLDB4MzEsMHgwOCwweDEwLDB4MDIsMHgyMCwweDEwLDB4ODgsMHhiNCwweDIyIH19LAotIHsxNiwgMHhiMWIwLCAwLCB7MHhhMCwweDA4LDB4ODAsMHgwMCwweDZhLDB4ODQsMHg4OCwweDIwLDB4MjIsMHg1MiwweDA4LDB4YjAsMHgwYSwweDJjLDB4MTAsMHhiYiB9fSwKLSB7MTYsIDB4YjFjMCwgMCwgezB4MDAsMHgzMiwweGIzLDB4ODgsMHg4MCwweDAyLDB4ZWMsMHgwMCwweGRiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHg5MCwweDEyLDB4ZTEgfX0sCi0gezE2LCAweGIxZDAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4MDAsMHgxMCwweDhhLDB4MDEsMHgyMiwweGEwIH19LAotIHsxNiwgMHhiMWUwLCAwLCB7MHgwOCwweGIwLDB4NDIsMHg2MCwweDIwLDB4ODAsMHgwMCwweDIwLDB4NDQsMHgxYSwweDgwLDB4MWEsMHhlNCwweDQyLDB4YTAsMHgwNiB9fSwKLSB7MTYsIDB4YjFmMCwgMCwgezB4MjIsMHgwMCwweDc4LDB4MzAsMHgwMiwweGFjLDB4MDAsMHhiYiwweDAwLDB4YTIsMHg0NCwweDA4LDB4YjAsMHgxMiwweGVjLDB4MDAgfX0sCi0gezE2LCAweGIyMDAsIDAsIHsweDhiLDB4MDAsMHgwZSwweGMwLDB4MGIsMHg5MCwweDAyLDB4ZTAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMjEwLCAwLCB7MHgwOCwweDE0LDB4MDAsMHgwOCwweDgwLDB4MDAsMHgyMCwweDgxLDB4MDgsMHgzMCwweDAyLDB4NDAsMHgxMiwweDgwLDB4MDAsMHhhMCB9fSwKLSB7MTYsIDB4YjIyMCwgMCwgezB4NDAsMHgwOCwweGIwLDB4MDIsMHhjMCwweDAwLDB4ODIsMHgwMCwweDAwLDB4ODAsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4YmIgfX0sCi0gezE2LCAweGIyMzAsIDAsIHsweDAwLDB4MjAsMHgwMCwweDA4LDB4MjAsMHgwMiwweGNjLDB4ODAsMHg5MywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGMyIH19LAotIHsxNiwgMHhiMjQwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDYwLDB4MDAsMHhjYSwweDE0LDB4MzIsMHgwMCB9fSwKLSB7MTYsIDB4YjI1MCwgMCwgezB4MGMsMHhiMCwweDAzLDB4NGMsMHgwMCwweGNhLDB4MDAsMHgzMiwweDAwLDB4MGUsMHgwMCwweDEyLDB4YTAsMHgwMCwweGMwLDB4MDAgfX0sCi0gezE2LCAweGIyNjAsIDAsIHsweDcwLDB4MDAsMHgyOCwweGYwLDB4MTMsMHhhYywweDAwLDB4ZmIsMHgwMCwweDMyLDB4NDAsMHgyYywweDEwLDB4NDMsMHhlYywweDAwIH19LAotIHsxNiwgMHhiMjcwLCAwLCB7MHhjZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4OTAsMHgwMywweGMwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjI4MCwgMCwgezB4MjAsMHgxNSwweGYwLDB4MDIsMHhmYywweDAwLDB4MWYsMHgwMCwweDY3LDB4NzAsMHgwMywweGIwLDB4MDAsMHhmYywweDAwLDB4M2YgfX0sCi0gezE2LCAweGIyOTAsIDAsIHsweDAwLDB4MmQsMHhjMCwweDAzLDB4MzAsMHgxMCwweGZjLDB4MDEsMHhiZiwweDAwLDB4MGYsMHg3MCwweDAzLDB4N2MsMHgwMCwweGY3IH19LAotIHsxNiwgMHhiMmEwLCAwLCB7MHgwNCwweDNiLDB4MDAsMHgwZiwweGMwLDB4MTMsMHhmZCwweDEwLDB4ZmYsMHgwMCwweDNkLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlOCB9fSwKLSB7MTYsIDB4YjJiMCwgMCwgezB4MTIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmNCwweGMwLDB4Y2YsMHg4MCwweDMzLDB4NjAgfX0sCi0gezE2LCAweGIyYzAsIDAsIHsweDBlLDB4YzksMHgxMywweDM2LDB4NTAsMHhjZSwweDg2LDB4M2YsMHgwOCwweDBjLDB4YzAsMHgwMywweDNlLDB4MDIsMHhkNywweDgwIH19LAotIHsxNiwgMHhiMmQwLCAwLCB7MHgzOSwweGUwLDB4MGYsMHhmOCwweDEzLDB4M2UsMHg0MCwweGM3LDB4MzAsMHgzYiwweGNlLDB4MGQsMHhmNiwweDAzLDB4M2QsMHg4OCB9fSwKLSB7MTYsIDB4YjJlMCwgMCwgezB4Y2YsMHgzMSwweDMzLDB4ZTQsMHgwZiwweDc4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIyZjAsIDAsIHsweDgwLDB4MTAsMHhlNSwweGQwLDB4ZGIsMHg4MCwweDcyLDB4NjAsMHg4OCwweDkyLDB4MDIsMHhlNCwweDEwLDB4OGEsMHg4MCwweDJlIH19LAotIHsxNiwgMHhiMzAwLCAwLCB7MHgzNCwweDRhLDB4OGMsMHgwMywweDJlLDB4MDAsMHhhYiwweDgwLDB4MDIsMHhlMCwweDBiLDB4YjgsMHgwMiwweDJjLDB4ODAsMHg4ZiB9fSwKLSB7MTYsIDB4YjMxMCwgMCwgezB4NjAsMHgxMywweGQ4LDB4NGEsMHg3NiwweDAyLDB4OWQsMHg4NCwweGFmLDB4MzAsMHgyMiwweDQ4LDB4MGIsMHg4OCwweDEyLDB4YTAgfX0sCi0gezE2LCAweGIzMjAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4YzQsMHgwMCwweDhiLDB4MDAsMHgyNCwweDAwIH19LAotIHsxNiwgMHhiMzMwLCAwLCB7MHg0YSwweDAwLDB4MDIsMHhhYywweDgwLDB4ODMsMHgwMCwweDJjLDB4MDEsMHgyOCwweDA0LDB4MDIsMHhhYywweDAwLDB4OGIsMHgwMSB9fSwKLSB7MTYsIDB4YjM0MCwgMCwgezB4MjAsMHhjMCwweDAzLDB4YjAsMHgwMiwweDBjLDB4ODAsMHg4MywweDQwLDB4MjAsMHhjMSwweGE4LDB4MzQsMHgyMiwweDhkLDB4MTMgfX0sCi0gezE2LCAweGIzNTAsIDAsIHsweDgzLDB4MjAsMHhhYywweGM4LDB4MGIsMHhiMCwweDAyLDB4NjIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMzYwLCAwLCB7MHhjMCwweDE1LDB4ODYsMHgwMCwweDliLDB4MDQsMHhhZSwweDAwLDB4MGEsMHg5MCwweDAyLDB4ZWMsMHgwMCwweDBiLDB4MTQsMHgyZSB9fSwKLSB7MTYsIDB4YjM3MCwgMCwgezB4YzYsMHgwMiwweGIxLDB4MTIsMHg2YywweDAwLDB4YWIsMHgyMCwweDJhLDB4YzEsMHgwYiwweGIwLDB4NDIsMHgyYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGIzODAsIDAsIHsweDAyLDB4MjYsMHhjMSwweDBhLDB4YjAsMHgwMiwweGFjLDB4MDAsMHhhYiwweDA0LDB4MmEsMHg0MCwweDBiLDB4OTAsMHgwMiwweGYwIH19LAotIHsxNiwgMHhiMzkwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMSwweGU3LDB4MDAsMHhjMywweDAxLDB4MzYsMHg0MCB9fSwKLSB7MTYsIDB4YjNhMCwgMCwgezB4MGUsMHg4OCwweDEzLDB4MjQsMHgwMiwweGNhLDB4MDAsMHgxZSwweDIwLDB4MmMsMHg4ZSwweDBiLDB4MmMsMHgwMCwweGNiLDB4MDAgfX0sCi0gezE2LCAweGIzYjAsIDAsIHsweDJhLDB4YzAsMHgwZiwweGI4LDB4MDMsMHgyZSwweDA2LDB4Y2IsMHgwMCwweDNhLDB4YzAsMHg0YywweGIwLDB4MTMsMHhhYywweDBjIH19LAotIHsxNiwgMHhiM2MwLCAwLCB7MHhjYiwweDAwLDB4M2UsMHhjOCwweDBmLDB4YjAsMHg0MywweDUwLDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjNkMCwgMCwgezB4ZTAsMHgwMSwweGI0LDB4MDgsMHhmZiwweDkxLDB4MzMsMHg0MCwweDA5LDB4ZGMsMHgwMSwweGY0LDB4MjAsMHg3ZSwweDAyLDB4MmUgfX0sCi0gezE2LCAweGIzZTAsIDAsIHsweDQwLDB4MGQsMHg5OCwweDAxLDB4YmMsMHg4MCwweGVmLDB4ODAsMHhiNywweGU0LDB4OGYsMHhmNCwweDBiLDB4ZmUsMHg0MCwweDdmIH19LAotIHsxNiwgMHhiM2YwLCAwLCB7MHgwMCwweGI5LDB4YzAsMHg0ZSwweGYwLDB4MDMsMHhmYywweDA4LDB4ZjcsMHgwMCwweDM3LDB4YzAsMHgwZiwweGUwLDB4MDIsMHhiOCB9fSwKLSB7MTYsIDB4YjQwMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMSwweDQ0LDB4Y2IsMHgwMiwweDMyLDB4MDAgfX0sCi0gezE2LCAweGI0MTAsIDAsIHsweDBkLDB4ODAsMHgwYSwweDZkLDB4MDAsMHhlYiwweDA0LDB4MTAsMHg5MCwweDI4LDB4MjIsMHgwYiwweDJjLDB4YzIsMHhjYiwweDIwIH19LAotIHsxNiwgMHhiNDIwLCAwLCB7MHg3NiwweGMwLDB4MGUsMHhiMSwweDAzLDB4ZWMsMHgwMSwweGNiLDB4MDYsMHgzMiwweGMxLDB4MGMsMHgzMCwweDAzLDB4MmMsMHgwMiB9fSwKLSB7MTYsIDB4YjQzMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4ZDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI0NDAsIDAsIHsweGM4LDB4MDUsMHgyMSwweDQ4LDB4YWIsMHgwMCwweDIwLDB4MDAsMHgwMCwweDk1LDB4MjMsMHg0YywweDA4LDB4YmIsMHgwMSwweDIyIH19LAotIHsxNiwgMHhiNDUwLCAwLCB7MHhjMCwweDA4LDB4YjIsMHgwMiwweDBjLDB4MDgsMHg4MywweDg4LDB4OTIsMHhkNSwweDI4LDB4MzQsMHgwMiwweGVjLDB4MDIsMHg4ZiB9fSwKLSB7MTYsIDB4YjQ2MCwgMCwgezB4MjAsMHgyMywweGMwLDB4NGQsMHhmMCwweDAxLDB4N2MsMHgwMCwweGRmLDB4MDAsMHgyZSwweGMwLDB4MGQsMHgzMCwweDAzLDB4NzIgfX0sCi0gezE2LCAweGI0NzAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhlMCwweDA1LDB4NDQsMHgwMCwweDgzLDB4MTAsMHgyMCwweDYwIH19LAotIHsxNiwgMHhiNDgwLCAwLCB7MHgwOSwweDI1LDB4MDIsMHgwMCwweDA4LDB4YTAsMHgwMCwweDRjLDB4MDAsMHgwYiwweDBjLDB4MjIsMHg0ZiwweDEyLDB4OTMsMHg0MCB9fSwKLSB7MTYsIDB4YjQ5MCwgMCwgezB4MDAsMHhjMCwweDA5LDB4M2UsMHgwMiwweGVjLDB4MDAsMHhhYiwweDgwLDB4YTQsMHhjMCwweDA5LDB4MzAsMHgyMiwweDJjLDB4MDggfX0sCi0gezE2LCAweGI0YTAsIDAsIHsweGIzLDB4MDEsMHgwYywweDgxLDB4MDgsMHgzMCwweDAyLDB4MzgsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNGIwLCAwLCB7MHg2MCwweDAxLDB4MTYsMHgwOSwweGI3LDB4ODAsMHgyMSwweDY0LDB4MDgsMHg3OCwweDA2LDB4MTIsMHgwMCwweGI0LDB4ODIsMHgyZCB9fSwKLSB7MTYsIDB4YjRjMCwgMCwgezB4YTQsMHgxYiwweDY5LDB4MDYsMHg3ZSwweDA0LDB4MTcsMHg5MiwweDI1LDB4ZTYsMHgwOSwweDc4LDB4MDYsMHhkZSwweDgwLDB4YTcgfX0sCi0gezE2LCAweGI0ZDAsIDAsIHsweDkwLDB4MjUsMHhlMCwweDA5LDB4NzksMHg1MCwweDVlLDB4MDQsMHhiNywweDkyLDB4MmYsMHg2MSwweDA5LDB4YzgsMHgwMiwweDQ4IH19LAotIHsxNiwgMHhiNGUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwOCwweDI1LDB4MDAsMHhjMywweDAwLDB4YjAsMHgwMyB9fSwKLSB7MTYsIDB4YjRmMCwgMCwgezB4MGQsMHhhMywweDQyLDB4MDksMHg0MCwweGUxLDB4MDAsMHhiYywweDQwLDB4MGYsMHgxMSwweDAzLDB4NGMsMHgwMCwweDEzLDB4MDAgfX0sCi0gezE2LCAweGI1MDAsIDAsIHsweDIwLDB4YzAsMHgwOSwweDMyLDB4MDMsMHhjYywweDEwLDB4YTMsMHgwMCwweDI2LDB4YzQsMHg4ZCwweDMwLDB4MmIsMHgwYywweDgwIH19LAotIHsxNiwgMHhiNTEwLCAwLCB7MHhmMywweDAwLDB4N2MsMHg4MCwweDBjLDB4MzAsMHgwMSwweDEyLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjUyMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhlNywweDEwLDB4M2QsMHgwMSwweDJmLDB4ZjEsMHg0MiwweGU4LDB4MDAsMHhmNSwweDkwLDB4MDMgfX0sCi0gezE2LCAweGI1MzAsIDAsIHsweGMxLDB4MGMsMHhmMSwweDQzLDB4OWMsMHgwNCwweGVmLDB4MDgsMHgzYiwweGMyLDB4MGMsMHhmMCwweDgxLDB4ZGMsMHhhMCwweGRmIH19LAotIHsxNiwgMHhiNTQwLCAwLCB7MHgwMCwweDNiLDB4YzMsMHgzZiwweGYwLDB4ODMsMHhmYywweDA1LDB4ZGYsMHgwYywweDNkLDB4NDAsMHgwZiwweGQxLDB4MDMsMHhkMCB9fSwKLSB7MTYsIDB4YjU1MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhmNCwweDAwLDB4Y2IsMHg4MCwweDMwLDB4NDAgfX0sCi0gezE2LCAweGI1NjAsIDAsIHsweDJjLDB4YTAsMHgwMywweGUwLDB4MDAsMHhmOCwweDgwLDB4MzIsMHhjMCwweDJlLDB4YjgsMHgwYiwweDJjLDB4NDYsMHhkMywweDAwIH19LAotIHsxNiwgMHhiNTcwLCAwLCB7MHgzMCwweGMwLDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCwweGRiLDB4NDgsMHgzMiwweGMwLDB4MWYsMHhiNCwweDAzLDB4MmMsMHg4OCB9fSwKLSB7MTYsIDB4YjU4MCwgMCwgezB4Y2IsMHg0OCwweDMyLDB4ODAsMHgwYywweDMwLDB4MTMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI1OTAsIDAsIHsweDQ4LDB4MTEsMHhiNCwweDAwLDB4ODcsMHgwMSwweDIxLDB4NDAsMHgwOCwweDcwLDB4NDIsMHhkMCwweDA4LDB4YjQsMHgwMCwweDI5IH19LAotIHsxNiwgMHhiNWEwLCAwLCB7MHhjMCwweDA4LDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjOCwweDBjLDB4NzIsMHgwYSwweDFjLDB4ODQsMHg4ZiB9fSwKLSB7MTYsIDB4YjViMCwgMCwgezB4NDAsMHgwOSwweGM0LDB4OGYsMHg3MywweDEyLDB4OWMsMHg0MCwweDgzLDB4MjAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAyLDB4OTIgfX0sCi0gezE2LCAweGI1YzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4OTYsMHgwMSwweGFmLDB4ODAsMHgyMSwweDIwIH19LAotIHsxNiwgMHhiNWQwLCAwLCB7MHgwOCwweDY4LDB4MDIsMHhkYSwweDAwLDB4YmQsMHg4MCwweDIxLDB4ZTAsMHgwOSwweDc4LDB4MDIsMHgxZSwweDAwLDB4OGYsMHg4OCB9fSwKLSB7MTYsIDB4YjVlMCwgMCwgezB4ODMsMHhlMiwweDI5LDB4ZjgsMHg4MiwweDVmLDB4ODAsMHg4NywweGEwLDB4MjUsMHhlMCwweDBiLDB4M2EsMHgxMiwweDBlLDB4NTAgfX0sCi0gezE2LCAweGI1ZjAsIDAsIHsweDk3LDB4YTQsMHgyMSwweGEwLDB4MjksMHg3OCwweDAyLDB4MzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNjAwLCAwLCB7MHgwOCwweDE0LDB4Y2MsMHgwMiwweGExLDB4ODEsMHgwMCwweDAwLDB4NDgsMHg3MCwweDAyLDB4YzgsMHgwMCwweGIxLDB4MDAsMHgyYyB9fSwKLSB7MTYsIDB4YjYxMCwgMCwgezB4ZjgsMHgwOSwweDMxLDB4NDIsMHgwYywweDEwLDB4ODMsMHgwMCwweDIwLDB4ZTAsMHgwOCwweDM4LDB4MTIsMHg0ZSwweDAwLDB4ODMgfX0sCi0gezE2LCAweGI2MjAsIDAsIHsweDAwLDB4NmEsMHhjMCwweDBiLDB4MzAsMHgwMiwweDhjLDB4MDQsMHg5MywweDAwLDB4MjAsMHhlMCwweDA5LDB4MzgsMHgwMiwweDkyIH19LAotIHsxNiwgMHhiNjMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgxNSwweGI5LDB4NDAsMHhlZSwweDIwLDB4MzAsMHg4MCB9fSwKLSB7MTYsIDB4YjY0MCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzMywweGIwLDB4MGQsMHhlNCwweDAzLDB4MzIsMHg4OCwweGNjLDB4ODAgfX0sCi0gezE2LCAweGI2NTAsIDAsIHsweDIzLDB4MDAsMHgwZCwweGMwLDB4MDMsMHg2MiwweDAyLDB4Y2EsMHgwMCwweDM2LDB4ODAsMHgwZiwweGEwLDB4NDMsMHgyOCwweDA2IH19LAotIHsxNiwgMHhiNjYwLCAwLCB7MHhkYSwweDAwLDB4MzMsMHhhMCwweDBkLDB4NmEsMHgwMywweDNhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjY3MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHg5OCwweDAxLDB4YmUsMHgwMCwweDBmLDB4ODAsMHgwMywweGYwLDB4MDAsMHhiYywweDAwLDB4MzggfX0sCi0gezE2LCAweGI2ODAsIDAsIHsweDA0LDB4MDgsMHg4MCwweGEzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDEzLDB4YTAsMHgwMCwweGUwIH19LAotIHsxNiwgMHhiNjkwLCAwLCB7MHgwMCwweDNlLDB4MDAsMHgwZSwweDAwLDB4MDMsMHhjMCwweDAwLDB4ZTgsMHgwMCwweGJlLDB4MDQsMHg0ZSwweDgwLDB4MDcsMHhkMiB9fSwKLSB7MTYsIDB4YjZhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDgwLDB4YzksMHgwMCwweDNlLDB4NjggfX0sCi0gezE2LCAweGI2YjAsIDAsIHsweDBjLDB4OTAsMHgwMywweDY0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHg0MywweGUwLDB4MDAsMHhjOCwweDAwIH19LAotIHsxNiwgMHhiNmMwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4MCwweDEzLDB4MjAsMHgwMCwweGM5LDB4MDAsMHgzNiwweDQwLDB4MGMsMHg5MCwweDAzLDB4NjQsMHgwMCB9fSwKLSB7MTYsIDB4YjZkMCwgMCwgezB4ODEsMHgwMCwweDMyLDB4NDAsMHgwNCwweDkwLDB4MTMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI2ZTAsIDAsIHsweDgwLDB4MDQsMHg2NSwweDA2LDB4ODksMHg0MCwweDJlLDB4NjAsMHgxYSwweDE0LDB4MmEsMHgwNSwweDIwLDB4ODksMHgwMCwweDJlIH19LAotIHsxNiwgMHhiNmYwLCAwLCB7MHg0MCwweDA4LDB4OTAsMHgwMiwweGM0LDB4MDgsMHhjMSwweDAyLDB4MjAsMHg0MCwweDA4LDB4MTAsMHgxYSwweDI0LDB4MDAsMHg4OSB9fSwKLSB7MTYsIDB4YjcwMCwgMCwgezB4MTAsMHgzMiwweDQxLDB4MDgsMHg5MCwweDEyLDB4MjQsMHgwMCwweDg5LDB4MDQsMHgzNiwweDQwLDB4ODgsMHg5NCwweDBhLDB4MjAgfX0sCi0gezE2LCAweGI3MTAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4MDQsMHgyMCwweDg5LDB4NTUsMHgyZSwweDQwIH19LAotIHsxNiwgMHhiNzIwLCAwLCB7MHgwOCwweGQ1LDB4MDIsMHgzNCwweDAwLDB4OGQsMHgwMCwweDJlLDB4NDAsMHgxOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4OTksMHgwMCB9fSwKLSB7MTYsIDB4YjczMCwgMCwgezB4MjYsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MGEsMHg4OSwweDAwLDB4MjYsMHg0MCwweDM4LDB4OTAsMHgwYSwweDI0LDB4MDAgfX0sCi0gezE2LCAweGI3NDAsIDAsIHsweGE5LDB4MDAsMHgyMCwweDQwLDB4MGEsMHg5MCwweDgyLDB4MDYsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNzUwLCAwLCB7MHgwOCwweDA0LDB4MDUsMHgwMCwweDgxLDB4MDAsMHgyZiwweDQwLDB4MGEsMHhkNCwweDAyLDB4MzQsMHgwMCwweDg1LDB4MDEsMHgyYyB9fSwKLSB7MTYsIDB4Yjc2MCwgMCwgezB4NDAsMHgwOCwweDEwLDB4NDIsMHhlNCwweDA2LDB4OTksMHgwMCwweDIyLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNSwweDAwLDB4ODEgfX0sCi0gezE2LCAweGI3NzAsIDAsIHsweDQwLDB4MjgsMHg1MCwweDA4LDB4MTQsMHgxMiwweDA1LDB4MDAsMHhhMSwweDQwLDB4MjQsMHg1MCwweDVhLDB4MTAsMHgwMiwweDAyIH19LAotIHsxNiwgMHhiNzgwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YjgsMHgwZCwweDYwLDB4MDAsMHhjOCwweDA0LDB4M2UsMHgwMCB9fSwKLSB7MTYsIDB4Yjc5MCwgMCwgezB4MDgsMHg4MCwweDAzLDB4MjEsMHg0MiwweGNjLDB4MDAsMHgzZSwweDAwLDB4MmMsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGQ4LDB4MDAgfX0sCi0gezE2LCAweGI3YTAsIDAsIHsweGI2LDB4MDAsMHgyYywweDgwLDB4MDIsMHgyMCwweDAyLDB4YzgsMHgwMCwweDM2LDB4MDAsMHgwYywweDgwLDB4MDMsMHg2MCwweDAyIH19LAotIHsxNiwgMHhiN2IwLCAwLCB7MHhlOCwweDAwLDB4MzIsMHgwMCwweDhlLDB4ODAsMHgwMywweDJlLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjdjMCwgMCwgezB4OTgsMHgxZCwweGY1LDB4MDAsMHhmNSwweDAwLDB4M2UsMHg0MCwweDg3LDB4OTAsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2QgfX0sCi0gezE2LCAweGI3ZDAsIDAsIHsweDUwLDB4MGYsMHg1NCwweDAzLDB4ZDEsMHgwMCwweGVjLDB4NDAsMHgzZiwweDEwLDB4MGIsMHhjNCwweDQzLDB4ZjEsMHgwMCwweGY5IH19LAotIHsxNiwgMHhiN2UwLCAwLCB7MHg0MCwweDM2LDB4NTAsMHgwZiwweDk0LDB4MTMsMHhlNSwweDEwLDB4ZDksMHg0NCwweDNkLDB4NDAsMHgyZCwweGQwLDB4MDMsMHhlNiB9fSwKLSB7MTYsIDB4YjdmMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDYwLDB4Y2QsMHgwMiwweDNiLDB4NDAgfX0sCi0gezE2LCAweGI4MDAsIDAsIHsweDBjLDB4ZDAsMHgwMywweGI0LDB4NDAsMHhmZCwweDA2LDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweDY2LDB4MDQsMHhjOSwweDgyIH19LAotIHsxNiwgMHhiODEwLCAwLCB7MHhiNiwweDYyLDB4MGYsMHgxOCwweDBiLDB4MzYsMHgwMCwweGNkLDB4NDAsMHgzMiwweDYxLDB4MGMsMHg5MCwweDIzLDB4MjQsMHgwYSB9fSwKLSB7MTYsIDB4YjgyMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHg0YywweGQwLDB4NDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI4MzAsIDAsIHsweDM5LDB4MTAsMHhlMywweDgwLDB4ZDgsMHgwMCwweDIyLDB4MDAsMHgwZCwweDgwLDB4MDIsMHgyMiwweDk0LDB4YjgsMHgwMCwweDJlIH19LAotIHsxNiwgMHhiODQwLCAwLCB7MHgwMCwweDBkLDB4ODAsMHgwMywweDIxLDB4MDAsMHg4OCwweDQwLDB4MjIsMHgwMCwweDBiLDB4YzQsMHgyMiwweDIxLDB4NTAsMHg4OCB9fSwKLSB7MTYsIDB4Yjg1MCwgMCwgezB4ODAsMHgyMiwweDIyLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgxMCwweDgwLDB4MDEsMHgyYSwweDAwLDB4MGEsMHg4MCwweDAzLDB4NGUgfX0sCi0gezE2LCAweGI4NjAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4YzYsMHgwMCwweDg5LDB4MDAsMHgyYSwweDQwIH19LAotIHsxNiwgMHhiODcwLCAwLCB7MHg4OCwweDEwLDB4MGEsMHg4NCwweDA4LDB4YjEsMHgwMCwweDI5LDB4NDAsMHgwYSwweDcwLDB4MGEsMHhiNSwweDAwLDB4OGYsMHg0MCB9fSwKLSB7MTYsIDB4Yjg4MCwgMCwgezB4MjksMHhjMCwweDBiLDB4ZjQsMHgwMiwweDI0LDB4MDAsMHg4MSwweDIwLDB4MjgsMHg0NCwweDg5LDB4MTAsMHgwMiwweDA0LDB4MDQgfX0sCi0gezE2LCAweGI4OTAsIDAsIHsweDgxLDB4MDIsMHgyYSwweDQwLDB4MDgsMHgxMCwweDAyLDB4MDIsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOGEwLCAwLCB7MHgxOCwweDE1LDB4YTYsMHgwMCwweDk5LDB4MjAsMHgyMiwweDQwLDB4MDksMHg5MCwweDEyLDB4MjQsMHg4MCwweGI5LDB4MDAsMHgyZiB9fSwKLSB7MTYsIDB4YjhiMCwgMCwgezB4NDQsMHgwMywweGQwLDB4MDIsMHhmNCwweDAwLDB4OGQsMHgwMCwweDJiLDB4NDEsMHgwYiwweGQwLDB4MDIsMHgyNiwweDEwLDB4ODkgfX0sCi0gezE2LCAweGI4YzAsIDAsIHsweDA0LDB4MmEsMHg0MCwweDA5LDB4OTAsMHg2ZSwweDI0LDB4MDAsMHg4OSwweDAwLDB4MmEsMHg0MCwweDBhLDB4OTQsMHgwMiwweDQ2IH19LAotIHsxNiwgMHhiOGQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTIsMHgxNSwweGU2LDB4MDAsMHhjOSwweDAwLDB4MzgsMHg0MiB9fSwKLSB7MTYsIDB4YjhlMCwgMCwgezB4MGMsMHgxMCwweDEzLDB4YTYsMHgwNCwweDc5LDB4MDgsMHgzYSwweDc4LDB4MDYsMHg5MiwweDAzLDB4YTQsMHgwOCwweGM5LDB4MDAgfX0sCi0gezE2LCAweGI4ZjAsIDAsIHsweDNhLDB4NjAsMHg4ZiwweDk4LDB4MjMsMHgwNiwweDAyLDB4YzksMHgwMiwweDNhLDB4NDAsMHgwZCwweDkwLDB4MDMsMHgwNCwweDAwIH19LAotIHsxNiwgMHhiOTAwLCAwLCB7MHhjOSwweDAwLDB4MzgsMHg0MCwweDBjLDB4OTAsMHgwMywweDI4LDB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjkxMCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MTAsMHhmOSwweDgwLDB4YmUsMHg0MCwweDRmLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2MgfX0sCi0gezE2LCAweGI5MjAsIDAsIHsweDYwLDB4OGQsMHg5MiwweDAzLDB4MjQsMHg0MiwweGU5LDB4MTAsMHgzMiwweDUwLDB4MGYsMHg5NCwweDAzLDB4ZTQsMHgwMCwweGY5IH19LAotIHsxNiwgMHhiOTMwLCAwLCB7MHgwMCwweGI2LDB4NDEsMHgyZSwweDEwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDJlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjYSB9fSwKLSB7MTYsIDB4Yjk0MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDA4LDB4YzgsMHgwMCwweDNlLDB4MTAgfX0sCi0gezE2LCAweGI5NTAsIDAsIHsweDBmLDB4ODgsMHgwMywweDIwLDB4MDgsMHhmOCwweGMwLDB4MWUsMHgxMCwweDJjLDB4NDAsMHgwMywweGYyLDB4MDAsMHhjYywweDAwIH19LAotIHsxNiwgMHhiOTYwLCAwLCB7MHgzZiwweDAwLDB4MGMsMHhjMCwweDEzLDB4MjAsMHgwMiwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHg4MCwweDJiLDB4MjAsMHgxMCB9fSwKLSB7MTYsIDB4Yjk3MCwgMCwgezB4YzAsMHgwNCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI5ODAsIDAsIHsweGE4LDB4MDUsMHgzYSwweDgwLDB4ODYsMHhlMCwweDJmLDB4YTAsMHgxYiwweGUwLDB4MDIsMHgzYSwweDgwLDB4YmEsMHgwNCwweDJlIH19LAotIHsxNiwgMHhiOTkwLCAwLCB7MHg4MCwweDA4LDB4YTAsMHgwMywweDg4LDB4MDgsMHhjMiwweDAwLDB4MmUsMHg4MSwweDA4LDB4NjAsMHgwMiwweDI4LDB4MTAsMHg4ZSB9fSwKLSB7MTYsIDB4YjlhMCwgMCwgezB4ODEsMHgwMywweDgwLDB4MDgsMHhlMCwweDAxLDB4NzgsMHgwMCwweDhlLDB4MDQsMHgwMywweDgwLDB4MDksMHg2OCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGI5YjAsIDAsIHsweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDA1LDB4NGMsMHgwMCwweDgzLDB4NjAsMHgyYywweDQ0IH19LAotIHsxNiwgMHhiOWMwLCAwLCB7MHgwYiwweDM4LDB4MDIsMHgwZiwweDgwLDB4YjEsMHgwMCwweDJjLDB4ZTUsMHgwMywweDMwLDB4MTAsMHhjYywweDEwLDB4ODMsMHgwMCB9fSwKLSB7MTYsIDB4YjlkMCwgMCwgezB4MGMsMHhjMCwweDI5LDB4MzAsMHgyMiwweDA0LDB4MDksMHg5MSwweDEwLDB4MjQsMHhjMCwweGM4LDB4MzAsMHgwMCwweDRjLDB4MDQgfX0sCi0gezE2LCAweGI5ZTAsIDAsIHsweDkzLDB4MDIsMHgyNCwweGMwLDB4MGIsMHgzMSwweDAyLDB4MGEsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOWYwLCAwLCB7MHhlMCwweDAxLDB4MTgsMHg4MCwweDg3LDB4MDAsMHgyZCwweDQwLDB4MGIsMHg3NCwweDQyLDB4MWMsMHgwMSwweGI1LDB4MDEsMHgyYyB9fSwKLSB7MTYsIDB4YmEwMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhiMCwweDAwLDB4OTQsMHgwNCwweDJmLDB4MjAsMHgwOSwweGMwLDB4MDIsMHgxNCwweDkwLDB4OTcgfX0sCi0gezE2LCAweGJhMTAsIDAsIHsweDAwLDB4MjUsMHhjOCwweDA4LDB4NzAsMHgwMiwweDRjLDB4ODAsMHg5NywweDIwLDB4MjUsMHhjMCwweDA5LDB4NzAsMHgwMiwweGU4IH19LAotIHsxNiwgMHhiYTIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgwOCwweDNhLDB4ODIsMHhjNiwweDgwLDB4MmQsMHg2MCB9fSwKLSB7MTYsIDB4YmEzMCwgMCwgezB4MGIsMHhmOCwweDBiLDB4MWEsMHgwMCwweGY1LDB4ODAsMHgzZCwweGUwLDB4OGYsMHg3OCwweDAzLDB4ZGUsMHgwMiwweGM3LDB4ODAgfX0sCi0gezE2LCAweGJhNDAsIDAsIHsweDJkLDB4ZTAsMHgwZCwweDc4LDB4MGIsMHgxNywweDAyLDB4ZGYsMHg4MCwweDI0LDB4ZjgsMHgyYywweGZkLDB4MDMsMHg1ZSwweDBjIH19LAotIHsxNiwgMHhiYTUwLCAwLCB7MHhkNywweGUwLDB4MzUsMHhlMCwweDBmLDB4NjgsMHgwMywweDJhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmE2MCwgMCwgezB4NDgsMHgxZCwweGFlLDB4NDAsMHhmYSwweDA0LDB4M2UsMHg0MCwweDBmLDB4ODAsMHgxMywweGVjLDB4MDQsMHhmOSwweDAwLDB4M2UgfX0sCi0gezE2LCAweGJhNzAsIDAsIHsweGMxLDB4MGMsMHhhMCwweDEzLDB4YzAsMHgxMCwweGU4LDB4MDAsMHgzYywweDAwLDB4NGUsMHg4MCwweDQzLDB4YzQsMHgyMCwweDg5IH19LAotIHsxNiwgMHhiYTgwLCAwLCB7MHgwMCwweGJhLDB4YzAsMHgwNywweGI2LDB4MjEsMHhlZCwweDA2LDB4ZWIsMHg2OCwweGJhLDB4Y2MsMHgwZiwweDIwLDB4MTMsMHhjMiB9fSwKLSB7MTYsIDB4YmE5MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhiZSwweDAwLDB4YzYsMHg4MCwweDMxLDB4NjAgfX0sCi0gezE2LCAweGJhYTAsIDAsIHsweDJkLDB4NzgsMHgwYiwweDNlLDB4NDgsMHhlYywweDkyLDB4M2QsMHg2MCwweDBjLDB4NTgsMHgwMywweDVhLDB4NDAsMHhkNSwweDgwIH19LAotIHsxNiwgMHhiYWIwLCAwLCB7MHgzMSwweDYxLDB4MGMsMHg1OCwweDIzLDB4MzYsMHgwMCwweGNmLDB4ODIsMHgzZiwweGUwLDB4MGMsMHhmOCwweDAzLDB4ZmYsMHg2MCB9fSwKLSB7MTYsIDB4YmFjMCwgMCwgezB4Y2YsMHg5MCwweDMzLDB4ZjAsMHgwYywweDUyLDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJhZDAsIDAsIHsweGE4LDB4MTEsMHhiOCwweDg0LDB4ODYsMHgxNCwweGI1LDB4YzAsMHgwOCwweDcwLDB4MDIsMHgxZSwweGMwLDB4YzQsMHgwMCwweDJkIH19LAotIHsxNiwgMHhiYWUwLCAwLCB7MHg0MCwweDA4LDB4NDAsMHgwMiwweDE0LDB4ZDAsMHg4NiwweDEwLDB4MjEsMHg4MCwweDRjLDB4NjIsMHg0MiwweDM0LDB4NDAsMHhhNSB9fSwKLSB7MTYsIDB4YmFmMCwgMCwgezB4MDAsMHgzNSwweGMwLDB4MjgsMHg3MCwweDQyLDB4ZGMsMHhjMiwweDhmLDB4MzAsMHgyMywweGMwLDB4MDgsMHg1MCwweDAyLDB4MmEgfX0sCi0gezE2LCAweGJiMDAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4OTgsMHgyOCwweDhlLDB4MDAsMHhhNSwweDQwIH19LAotIHsxNiwgMHhiYjEwLCAwLCB7MHgwOCwweGYxLDB4MDIsMHgxOCwweDY0LDB4YjQsMHgwMCwweDZkLDB4NDIsMHgwOCwweDUwLDB4MDIsMHgxOCwweDAxLDB4ODUsMHgwOCB9fSwKLSB7MTYsIDB4YmIyMCwgMCwgezB4MjEsMHg0MCwweDA5LDB4NTgsMHgyMiwweDU0LDB4MDAsMHg4NSwweDEwLDB4MmQsMHhjNCwweDA5LDB4NzAsMHgwMiwweGRjLDB4MDQgfX0sCi0gezE2LCAweGJiMzAsIDAsIHsweDk3LDB4MDAsMHgyNSwweGMwLDB4MDgsMHg0NCwweDAyLDB4MDAsMHgxMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYjQwLCAwLCB7MHg2MCwweDE0LDB4OGMsMHgwMCwweDgyLDB4ODAsMHgyNCwweGMwLDB4MDgsMHg4MCwweDAyLDB4MmQsMHgwMCwweDgwLDB4NGEsMHgyYyB9fSwKLSB7MTYsIDB4YmI1MCwgMCwgezB4NDIsMHgwOCwweDBhLDB4NDIsMHgwNiwweDAwLDB4OTIsMHg4NCwweDIwLDB4YTAsMHg4OCwweDI4LDB4NDIsMHg0NCwweDAwLDB4YTMgfX0sCi0gezE2LCAweGJiNjAsIDAsIHsweDA2LDB4MjQsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MTAsMHg5MywweDA0LDB4MjQsMHhjMSwweDA5LDB4MDAsMHgwMiwweDA4IH19LAotIHsxNiwgMHhiYjcwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YTgsMHgxNSwweGJjLDB4MDAsMHhjYiwweDAwLDB4MzYsMHg0MCB9fSwKLSB7MTYsIDB4YmI4MCwgMCwgezB4MGMsMHhiNCwweDEzLDB4MmMsMHgwMCwweGY5LDB4MDAsMHgzZSwweGEwLDB4MGMsMHhhMiwweDAzLDB4MDQsMHgwOCwweGMyLDB4ODAgfX0sCi0gezE2LCAweGJiOTAsIDAsIHsweDMwLDB4YTgsMHgwZCwweDJhLDB4MDMsMHg1NCwweDAwLDB4Y2IsMHgwMCwweDNmLDB4YzAsMHgwZCwweGYwLDB4MDMsMHhmYywweDA4IH19LAotIHsxNiwgMHhiYmEwLCAwLCB7MHhkZiwweDAwLDB4MzcsMHhkMCwweDBjLDB4YjAsMHgwMywweDJhLDB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmJiMCwgMCwgezB4ODAsMHgwMCwweGUwLDB4MDAsMHhmYiwweDEwLDB4M2EsMHg0MCwweDBlLDB4YjAsMHgwMywweGVkLDB4OTAsMHhmOSwweDExLDB4N2UgfX0sCi0gezE2LCAweGJiYzAsIDAsIHsweDgwLDB4NGYsMHhiMCwweDUzLDB4ZTgsMHg0MCwweGU5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YTYsMHgwOCwweGY5IH19LAotIHsxNiwgMHhiYmQwLCAwLCB7MHgwMSwweDNhLDB4YzAsMHgwYywweGIwLDB4MTMsMHhjYywweDAwLDB4ZWIsMHgwMiwweDNhLDB4YzYsMHg4ZSwweGI4LDB4MDMsMHhlMCB9fSwKLSB7MTYsIDB4YmJlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDBjLDB4Y2UsMHgwMCwweDNmLDB4ZTAgfX0sCi0gezE2LCAweGJiZjAsIDAsIHsweDJjLDB4ZjAsMHg4MywweDNhLDB4NDgsMHhjZCwweDAxLDB4MzUsMHg4MCwweDBjLDB4NjAsMHgxMiwweDM0LDB4MGEsMHhjZSwweDAwIH19LAotIHsxNiwgMHhiYzAwLCAwLCB7MHhiMywweDgwLDB4MmMsMHhlMCwweDBiLDB4NzQsMHgwMCwweGM5LDB4MTAsMHhiMywweGMxLDB4MGYsMHhmMCwweDFiLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4YmMxMCwgMCwgezB4Y2YsMHgwMCwweGI3LDB4YzAsMHgyYywweGUwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJjMjAsIDAsIHsweDgxLDB4MDQsMHg2ZSwweDEwLDB4ODgsMHg4MCwweDJjLDB4YzAsMHgxOCwweDk4LDB4MDIsMHgyZCwweDgwLDB4ODEsMHgwMCwweDM2IH19LAotIHsxNiwgMHhiYzMwLCAwLCB7MHg5MSwweDA4LDB4YjAsMHgwMywweDY4LDB4MDAsMHhjOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4MyB9fSwKLSB7MTYsIDB4YmM0MCwgMCwgezB4ODAsMHgzNiwweGMwLDB4MGIsMHgzMCwweDAyLDB4MmMsMHgwMiwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgyMCwweDAzLDB4NjAgfX0sCi0gezE2LCAweGJjNTAsIDAsIHsweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA1LDB4MDYsMHgwMCwweDhhLDB4ODAsMHgyZSwweDQ1IH19LAotIHsxNiwgMHhiYzYwLCAwLCB7MHgyOCwweDg4LDB4MDIsMHgyNCwweDAyLDB4ODgsMHgwMiwweDAyLDB4MDIsMHgwOCwweDgwLDB4MDIsMHhhMiwweDAwLDB4OTgsMHgwMCB9fSwKLSB7MTYsIDB4YmM3MCwgMCwgezB4MjIsMHgwMCwweDA4LDB4ODAsMHgxMiwweDI0LDB4MDAsMHg4OSwweDAxLDB4MjIsMHhjMSwweDBhLDB4YjAsMHgwMiwweDZjLDB4MDAgfX0sCi0gezE2LCAweGJjODAsIDAsIHsweGFiLDB4MDAsMHgyMiwweGMxLDB4MDgsMHg5MCwweDEyLDB4NjAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYzkwLCAwLCB7MHgwOCwweDA0LDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyYywweGMwLDB4NDgsMHgwOCwweDEyLDB4MDAsMHg4MCwweDgwLDB4MDIsMHgyNCB9fSwKLSB7MTYsIDB4YmNhMCwgMCwgezB4MDAsMHgwOCwweDE4LDB4NDIsMHhhYywweDAyLDB4OGIsMHg4MCwweDIyLDB4ZTAsMHgwOCwweGI4LDB4MTIsMHgwNCwweDAyLDB4ODMgfX0sCi0gezE2LCAweGJjYjAsIDAsIHsweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHg0MiwweDBjLDB4MDAsMHhhMywweDAxLDB4NjAsMHhjMCwweDQ4LDB4MTAsMHgwMiwweDQyIH19LAotIHsxNiwgMHhiY2MwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDY4LDB4MDgsMHhjYSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YmNkMCwgMCwgezB4MDgsMHg4MCwweDAzLDB4MDAsMHgwMCwweGM4LDB4MDYsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAyLDB4YTAsMHgwMCwweGQ4LDB4MDAgfX0sCi0gezE2LCAweGJjZTAsIDAsIHsweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHg3NCwweDAwLDB4Y2IsMHgwMCwweDIyLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgzYywweDAwIH19LAotIHsxNiwgMHhiY2YwLCAwLCB7MHhlZiwweDAwLDB4MzcsMHhjMCwweDBjLDB4ODAsMHgwMSwweDQwLDB4MDMsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmQwMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmYywweDA0LDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGUxLDB4MDAsMHhmYywweDAwLDB4M2IgfX0sCi0gezE2LCAweGJkMTAsIDAsIHsweDAwLDB4MGYsMHhkMCwweDAzLDB4N2MsMHgwMCwweGVmLDB4MDAsMHgyZiwweGMwLDB4MGYsMHhmMCwweDExLDB4ZjQsMHgxMCwweGZkIH19LAotIHsxNiwgMHhiZDIwLCAwLCB7MHgwMiwweDNkLDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhkYywweDAwLDB4ZGYsMHgwNCwweDNmLDB4YzAsMHgwZiwweGMwLDB4NDMsMHhlOSB9fSwKLSB7MTYsIDB4YmQzMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MSwweDAyLDB4NzAsMHgyMCwweGRjLDB4MTAgfX0sCi0gezE2LCAweGJkNDAsIDAsIHsweDY3LDB4MDQsMHgwZCwweGMxLDB4MDIsMHg3MCwweDIwLDB4OWMsMHgxMCwweDM3LDB4MDQsMHgwZCwweGMxLDB4MDYsMHg3MCwweDQwIH19LAotIHsxNiwgMHhiZDUwLCAwLCB7MHg0YywweDEwLDB4MzcsMHgxNCwweDE1LDB4YzEsMHgwMywweDcwLDB4NDAsMHhkYywweDEwLDB4MTMsMHgwNCwweDBkLDB4YzEsMHgwNyB9fSwKLSB7MTYsIDB4YmQ2MCwgMCwgezB4NzAsMHg0MCwweGRjLDB4MTAsMHgzNywweDA0LDB4MGQsMHhjMCwweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJkNzAsIDAsIHsweDAwLDB4YzUsMHg0NCwweDA1LDB4NzEsMHgyMSwweDVjLDB4NDAsMHg1NywweDEwLDB4MTUsMHhjNCwweDA1LDB4NzEsMHgwNSwweDVjIH19LAotIHsxNiwgMHhiZDgwLCAwLCB7MHg0MCwweDU3LDB4MTAsMHgxNSwweGM0LDB4MDYsMHg3MSwweDAxLDB4NGMsMHg0MCwweDU3LDB4MTAsMHgwZCwweGM0LDB4MDUsMHg3MSB9fSwKLSB7MTYsIDB4YmQ5MCwgMCwgezB4MDUsMHg1YywweDQwLDB4NTMsMHgxMCwweDE1LDB4YzQsMHgwNywweDcxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzAgfX0sCi0gezE2LCAweGJkYTAsIDAsIHsweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwIH19LAotIHsxNiwgMHhiZGIwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4YmRjMCwgMCwgezB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEgfX0sCi0gezE2LCAweGJkZDAsIDAsIHsweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZGUwLCAwLCB7MHgwMCwweDg0LDB4MDAsMHgwMSwweDYwLDB4MDAsMHg1OCwweDAwLDB4NTYsMHgwMCwweDA1LDB4ODAsMHgwMSwweDYwLDB4MDQsMHg1OCB9fSwKLSB7MTYsIDB4YmRmMCwgMCwgezB4MDAsMHgxNiwweDAwLDB4MDUsMHg4MCwweDAxLDB4MjAsMHgwMSwweDU4LDB4MDAsMHgxNiwweDAwLDB4MDUsMHg4MCwweDAxLDB4NjAgfX0sCi0gezE2LCAweGJlMDAsIDAsIHsweDAwLDB4NTgsMHgwMCwweDU2LDB4MDAsMHgwNSwweDgwLDB4MDEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDE2LDB4MDAsMHgwMSwweDgwIH19LAotIHsxNiwgMHhiZTEwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ4LDB4MDUsMHg3MiwweDExLDB4NWMsMHg4MCB9fSwKLSB7MTYsIDB4YmUyMCwgMCwgezB4MTcsMHgyMCwweDE1LDB4ZDgsMHgwNSwweDMyLDB4MTEsMHgxYywweDgwLDB4NDcsMHgyMCwweDE0LDB4ODgsMHgwMCwweDcyLDB4MDEgfX0sCi0gezE2LCAweGJlMzAsIDAsIHsweDFjLDB4ODAsMHg1NywweDIwLDB4MDUsMHhjOCwweDA0LDB4NzIsMHgwMSwweDVjLDB4ODAsMHg1NywweDIwLDB4MTUsMHhjOCwweDAxIH19LAotIHsxNiwgMHhiZTQwLCAwLCB7MHg3MiwweDAxLDB4NWMsMHg4MCwweDU3LDB4MjQsMHgxNSwweGMwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmU1MCwgMCwgezB4MDAsMHhjMSwweDQwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4NDAsMHgyMCwweDAwLDB4MTggfX0sCi0gezE2LCAweGJlNjAsIDAsIHsweDAwLDB4MDYsMHgwMCwweDAxLDB4OTAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgwMCwweDYwIH19LAotIHsxNiwgMHhiZTcwLCAwLCB7MHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MTAsMHgwNiwweDAwLDB4MDEsMHg4MCB9fSwKLSB7MTYsIDB4YmU4MCwgMCwgezB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0OCwweDA0LDB4MjIsMHgwMSwweDA4LDB4ODAgfX0sCi0gezE2LCAweGJlOTAsIDAsIHsweDAyLDB4MjAsMHgxMCwweDg4LDB4MDQsMHg2MiwweDAxLDB4MDgsMHg4MCwweDQyLDB4MjAsMHgxMCwweDg4LDB4MDAsMHgyMCwweDAxIH19LAotIHsxNiwgMHhiZWEwLCAwLCB7MHgwOCwweDgwLDB4NDIsMHgyMCwweDAwLDB4ODgsMHgwNCwweDIyLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgyMCwweDEwLDB4ODgsMHgwMCB9fSwKLSB7MTYsIDB4YmViMCwgMCwgezB4MjIsMHgwMSwweDA4LDB4ODAsMHg0MiwweDMwLDB4MTAsMHg4MCwweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJlYzAsIDAsIHsweDAwLDB4YzUsMHg0YSwweDA1LDB4NDIsMHg4MSwweDUwLDB4YTAsMHgwNCwweDI4LDB4MTUsMHgwYSwweDA1LDB4NTIsMHg4MSwweDEwIH19LAotIHsxNiwgMHhiZWQwLCAwLCB7MHhhMCwweDQ0LDB4MjgsMHgxMSwweDFhLDB4MDAsMHg0MCwweDgwLDB4MTAsMHhhMCwweDU0LDB4MjgsMHgwNSwweDBhLDB4MDUsMHg0MiB9fSwKLSB7MTYsIDB4YmVlMCwgMCwgezB4ODEsMHg1MSwweDIwLDB4MTQsMHgyOCwweDE1LDB4MGEsMHgwMSwweDQyLDB4ODEsMHg1MCwweGEwLDB4NTQsMHgyOCwweDE1LDB4MDAgfX0sCi0gezE2LCAweGJlZjAsIDAsIHsweDMxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MGMsMHgwMSwweDUzLDB4NDAsMHg1NCwweGMwIH19LAotIHsxNiwgMHhiZjAwLCAwLCB7MHgxNSwweDMwLDB4MDUsMHg1YywweDAxLDB4NTcsMHg0MCwweDU0LDB4YzAsMHgxNSwweDMwLDB4MDUsMHg1YywweDAxLDB4NTMsMHgwMCB9fSwKLSB7MTYsIDB4YmYxMCwgMCwgezB4NTUsMHhjMCwweDE1LDB4NzQsMHgwNSwweDRjLDB4MDEsMHg1MywweDAwLDB4NTUsMHhjMCwweDE1LDB4NzQsMHgwNSwweDRjLDB4MDEgfX0sCi0gezE2LCAweGJmMjAsIDAsIHsweDUzLDB4MDAsMHg1NCwweGMwLDB4MTEsMHgzMCwweDAxLDB4NDAsMHgyMSwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZjMwLCAwLCB7MHgwMCwweDgwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgxMCB9fSwKLSB7MTYsIDB4YmY0MCwgMCwgezB4MDAsMHgwNCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NDIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MTEsMHgwMCwweDAwLDB4NDAgfX0sCi0gezE2LCAweGJmNTAsIDAsIHsweDAwLDB4MTAsMHhjMSwweDA0LDB4MDAsMHgwMSwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDAxLDB4MTAsMHgwMSwweDAxIH19LAotIHsxNiwgMHhiZjYwLCAwLCB7MHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDYwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCB9fSwKLSB7MTYsIDB4YmY3MCwgMCwgezB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAgfX0sCi0gezE2LCAweGJmODAsIDAsIHsweDgyLDB4MDAsMHgyMCwweDg0LDB4MDAsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDg0LDB4MDgsMHgyMCwweDAyIH19LAotIHsxNiwgMHhiZjkwLCAwLCB7MHgwOCwweDAwLDB4ODIsMHgwMCwweDIxLDB4ODAsMHgwOCwweDAxLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmZhMCwgMCwgezB4MDAsMHhjNSwweDQwLDB4MDUsMHg2MCwweDAxLDB4NTgsMHgwMCwweDk2LDB4MDAsMHgxNSwweDkwLDB4MDUsMHg2NCwweDAyLDB4NTggfX0sCi0gezE2LCAweGJmYjAsIDAsIHsweDAwLDB4NTYsMHgwMCwweDU1LDB4OTAsMHgwNSwweDYwLDB4MDEsMHhkOSwweDAwLDB4MTYsMHg0MCwweDE1LDB4ODAsMHgwNSwweDYwIH19LAotIHsxNiwgMHhiZmMwLCAwLCB7MHgwMSwweDU5LDB4MDAsMHg3NiwweDQwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCB9fSwKLSB7MTYsIDB4YmZkMCwgMCwgezB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzQsMHg0MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAgfX0sCi0gezE2LCAweGJmZTAsIDAsIHsweDM2LDB4MDAsMHg0ZCwweDgwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDcsMHg2MiwweDAwIH19LAotIHsxNiwgMHhiZmYwLCAwLCB7MHg1OCwweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwNywweDYwLDB4MDAsMHhkOCwweDgwLDB4MTYsMHgwMCwweDBkLDB4ODAsMHgwMyB9fSwKLSB7MTYsIDB4YzAwMCwgMCwgezB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MWQsMHg4MCwweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMwMTAsIDAsIHsweDAwLDB4YzUsMHg0MiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjIH19LAotIHsxNiwgMHhjMDIwLCAwLCB7MHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweGMxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDYsMHgzMCB9fSwKLSB7MTYsIDB4YzAzMCwgMCwgezB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDE4LDB4YzAgfX0sCi0gezE2LCAweGMwNDAsIDAsIHsweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwIH19LAotIHsxNiwgMHhjMDUwLCAwLCB7MHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDQwLDB4MzAsMHgwMCB9fSwKLSB7MTYsIDB4YzA2MCwgMCwgezB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAgfX0sCi0gezE2LCAweGMwNzAsIDAsIHsweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMDgwLCAwLCB7MHgwMCwweDgwLDB4MDIsMHgwMSwweDMwLDB4ODAsMHg0YywweDIwLDB4MTMsMHgwOCwweDA0LDB4YzIsMHgwMSwweDMwLDB4ODAsMHg0YyB9fSwKLSB7MTYsIDB4YzA5MCwgMCwgezB4MjAsMHgxMywweDA4LDB4MDQsMHhjMiwweDI1LDB4MzAsMHg4MSwweDRjLDB4MjAsMHgxMywweDA4LDB4MDQsMHhjMiwweDAxLDB4MzAgfX0sCi0gezE2LCAweGMwYTAsIDAsIHsweDgwLDB4NGMsMHgzMiwweDUzLDB4MDgsMHgwNCwweGMyLDB4MDEsMHgzMCwweDgwLDB4NGMsMHgyMCwweDEzLDB4MDgsMHgwNCwweGMwIH19LAotIHsxNiwgMHhjMGIwLCAwLCB7MHgyMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQyLDB4MDUsMHg2MiwweDgxLDB4NTgsMHgyMCB9fSwKLSB7MTYsIDB4YzBjMCwgMCwgezB4NTYsMHgwOCwweDE1LDB4ODIsMHgwNCwweDYwLDB4ODEsMHg1OCwweDIwLDB4NDYsMHgwOCwweDE1LDB4ODIsMHgwMSwweDYwLDB4YzEgfX0sCi0gezE2LCAweGMwZDAsIDAsIHsweDU4LDB4MjAsMHg0NiwweDA4LDB4MTUsMHg4MiwweDAxLDB4NjAsMHg4MSwweDU4LDB4MzAsMHg1NiwweDA4LDB4MTUsMHg4MiwweDA1IH19LAotIHsxNiwgMHhjMGUwLCAwLCB7MHg2MCwweDgxLDB4NTgsMHgyMCwweDU2LDB4MDgsMHgwNSwweDgwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzBmMCwgMCwgezB4MDAsMHhjNSwweDQyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDggfX0sCi0gezE2LCAweGMxMDAsIDAsIHsweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwYywweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwIH19LAotIHsxNiwgMHhjMTEwLCAwLCB7MHg4MCwweDA4LDB4MjAsMHgwMywweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MCB9fSwKLSB7MTYsIDB4YzEyMCwgMCwgezB4MjEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA0LDB4NjYsMHg4MSwweDE4LDB4MjAgfX0sCi0gezE2LCAweGMxMzAsIDAsIHsweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2NCwweDgxLDB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDAsMHg2MCwweDgxIH19LAotIHsxNiwgMHhjMTQwLCAwLCB7MHgwYywweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwMCwweDYwLDB4ODEsMHgxOSwweDIwLDB4NDMsMHgwOCwweDExLDB4ODIsMHgwNCB9fSwKLSB7MTYsIDB4YzE1MCwgMCwgezB4NjAsMHg4MSwweDE5LDB4MjAsMHg0NiwweDQ4LDB4MDEsMHg4MCwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMxNjAsIDAsIHsweDAwLDB4YzUsMHg2MCwweDA1LDB4NTgsMHgwMSwweDU2LDB4MDAsMHg1NSwweDgwLDB4MTUsMHg2MCwweDA0LDB4NTgsMHgwMSwweDU2IH19LAotIHsxNiwgMHhjMTcwLCAwLCB7MHgwMCwweDQ1LDB4ODAsMHgxMSwweDYwLDB4MDAsMHg1OCwweDAwLDB4MDYsMHgwMCwweDQ1LDB4ODAsMHgxNSwweDYwLDB4MDEsMHg1OCB9fSwKLSB7MTYsIDB4YzE4MCwgMCwgezB4MDEsMHgxNiwweDAwLDB4MDEsMHg4MCwweDE1LDB4NjAsMHgwNSwweDU4LDB4MDEsMHg1NiwweDAwLDB4NTUsMHg4MCwweDA1LDB4NDAgfX0sCi0gezE2LCAweGMxOTAsIDAsIHsweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDYsMHgwMSwweDQ5LDB4ODAsMHgxMCwweDYwIH19LAotIHsxNiwgMHhjMWEwLCAwLCB7MHgxNCwweDE4LDB4MDUsMHgwNiwweDAxLDB4NzksMHg4MCwweDUwLDB4NjAsMHgxNCwweDE4LDB4MDEsMHgwNiwweDAxLDB4NDEsMHg4MCB9fSwKLSB7MTYsIDB4YzFiMCwgMCwgezB4NTAsMHg2MCwweDA0LDB4MTgsMHgwNSwweDA2LDB4MDEsMHg0MSwweDgwLDB4MTAsMHg2MCwweDE0LDB4MTgsMHgwNSwweDA2LDB4MDEgfX0sCi0gezE2LCAweGMxYzAsIDAsIHsweDQxLDB4ODAsMHg1MCwweDYwLDB4MTQsMHgxOCwweDA1LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMWQwLCAwLCB7MHgwMCwweDgwLDB4MDIsMHgwMSwweDA0LDB4ODAsMHg0MCwweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMCwweDA0LDB4MDQsMHg0MCB9fSwKLSB7MTYsIDB4YzFlMCwgMCwgezB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAsMHg4NCwweDQwLDB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAgfX0sCi0gezE2LCAweGMxZjAsIDAsIHsweDgwLDB4NDEsMHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MTEsMHgwMCwweDgwLDB4NDEsMHgyMCwweDEwLDB4NDgsMHgwNCwweDAwIH19LAotIHsxNiwgMHhjMjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjNSwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCB9fSwKLSB7MTYsIDB4YzIxMCwgMCwgezB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMiwweDExLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDExLDB4ODAgfX0sCi0gezE2LCAweGMyMjAsIDAsIHsweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0NiwweDAzIH19LAotIHsxNiwgMHhjMjMwLCAwLCB7MHg1MSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQwLDB4MzEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzI0MCwgMCwgezB4MDAsMHhjNSwweDQ2LDB4MDUsMHg3MCwweDgxLDB4NWMsMHg2MCwweDA3LDB4MTgsMHgxNSwweGM2LDB4MDQsMHg3MSwweDgxLDB4MWMgfX0sCi0gezE2LCAweGMyNTAsIDAsIHsweDYwLDB4MTcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDMxLDB4ODEsMHhkYywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxIH19LAotIHsxNiwgMHhjMjYwLCAwLCB7MHg4MCwweDFjLDB4NjAsMHg3NywweDE4LDB4MTUsMHhjZSwweDA1LDB4NzEsMHg4MSwweDVjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjMCB9fSwKLSB7MTYsIDB4YzI3MCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg0NiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjEgfX0sCi0gezE2LCAweGMyODAsIDAsIHsweDc3LDB4MTgsMHgwZCwweGM2LDB4MDIsMHg3MSwweDgwLDB4OWMsMHg2MCwweDM3LDB4MTgsMHgwZCwweGMyLDB4MDMsMHgzMSwweDgwIH19LAotIHsxNiwgMHhjMjkwLCAwLCB7MHg1YywweDYwLDB4MjcsMHgxOCwweDBkLDB4YzYsMHgwMywweDcxLDB4ODAsMHg5YywweDYwLDB4MTcsMHgxOCwweDBkLDB4Y2UsMHgwMyB9fSwKLSB7MTYsIDB4YzJhMCwgMCwgezB4NzEsMHg4MCwweGRjLDB4NjAsMHgzNywweDE4LDB4MGQsMHhjMCwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMyYjAsIDAsIHsweDAwLDB4NDUsMHg0NiwweDA1LDB4NzUsMHg4MSwweDVjLDB4NjAsMHg3NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzUsMHg4MSwweDVjIH19LAotIHsxNiwgMHhjMmMwLCAwLCB7MHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHgzMSwweDgxLDB4MGMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSB9fSwKLSB7MTYsIDB4YzJkMCwgMCwgezB4ODEsMHg1YywweDYwLDB4NDMsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzAgfX0sCi0gezE2LCAweGMyZTAsIDAsIHsweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwIH19LAotIHsxNiwgMHhjMmYwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4YzMwMCwgMCwgezB4NWMsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgwMCwweDE3LDB4MDgsMHgwNCwweDgyLDB4MDEgfX0sCi0gezE2LCAweGMzMTAsIDAsIHsweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMzIwLCAwLCB7MHgwMCwweDAwLDB4MDYsMHgwMSwweDYzLDB4ODAsMHg1OCwweDYwLDB4MTYsMHgxOCwweDA1LDB4ODYsMHgwMSwweDYxLDB4ODAsMHg1OCB9fSwKLSB7MTYsIDB4YzMzMCwgMCwgezB4NjAsMHgxNiwweDE4LDB4MDUsMHg4NiwweDAxLDB4NjEsMHg4MSwweDU4LDB4NjAsMHgxNiwweDE4LDB4MDUsMHg4NiwweDAxLDB4NjEgfX0sCi0gezE2LCAweGMzNDAsIDAsIHsweDgwLDB4NTgsMHg2MCwweDU2LDB4MTgsMHgwNSwweDg2LDB4MDEsMHg2MSwweDgwLDB4NTgsMHg2MCwweDE2LDB4MTgsMHgwNSwweDgwIH19LAotIHsxNiwgMHhjMzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQwLDB4MDUsMHg3MCwweDAxLDB4NWMsMHgwMCB9fSwKLSB7MTYsIDB4YzM2MCwgMCwgezB4MTcsMHgwMCwweDE1LDB4YzAsMHg4NSwweDc0LDB4MDEsMHgxYywweDAwLDB4NDcsMHgwMCwweDExLDB4YzAsMHgwNSwweDcwLDB4MDEgfX0sCi0gezE2LCAweGMzNzAsIDAsIHsweDVjLDB4MDAsMHg1MywweDAwLDB4MTAsMHhjMCwweDA1LDB4NzAsMHgwMSwweDVjLDB4MDAsMHg1NywweDAwLDB4MTQsMHhjOSwweDA0IH19LAotIHsxNiwgMHhjMzgwLCAwLCB7MHg3MCwweDAxLDB4MWMsMHgwMCwweDU3LDB4MDAsMHgxNSwweGMwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzM5MCwgMCwgezB4MDAsMHg0NSwweDQyLDB4MDAsMHg2MCwweGMwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCwweDgwLDB4MTggfX0sCi0gezE2LCAweGMzYTAsIDAsIHsweDIwLDB4MDYsMHgwOCwweDAxLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgxOCwweDMwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgxMCwweDYwIH19LAotIHsxNiwgMHhjM2IwLCAwLCB7MHg4MCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDAsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MCB9fSwKLSB7MTYsIDB4YzNjMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDQsMHg0MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAgfX0sCi0gezE2LCAweGMzZDAsIDAsIHsweDAyLDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxIH19LAotIHsxNiwgMHhjM2UwLCAwLCB7MHgwOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDExLDB4ODIsMHgwNCB9fSwKLSB7MTYsIDB4YzNmMCwgMCwgezB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MCwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM0MDAsIDAsIHsweDAwLDB4NDUsMHg0MiwweDA1LDB4NDAsMHhjNSwweDUwLDB4MjAsMHgxNCwweDA4LDB4MTUsMHgwMCwweDA0LDB4NDAsMHg4MSwweDUwIH19LAotIHsxNiwgMHhjNDEwLCAwLCB7MHgyMCwweDU0LDB4MDgsMHgxMSwweDAyLDB4MDUsMHgwMCwweDgwLDB4MTAsMHgyMCwweDQ1LDB4MGMsMHgxMSwweDQyLDB4MDQsMHg0MCB9fSwKLSB7MTYsIDB4YzQyMCwgMCwgezB4ODEsMHg1MCwweDIwLDB4MTQsMHgwYywweDE1LDB4NDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4NTQsMHgwOCwweDE1LDB4MDAgfX0sCi0gezE2LCAweGM0MzAsIDAsIHsweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDMsMHgwMSwweDUwLDB4YzAsMHg0NCwweDMwIH19LAotIHsxNiwgMHhjNDQwLCAwLCB7MHgxNSwweDBjLDB4MDUsMHg0MywweDAxLDB4NTAsMHhjMCwweDRjLDB4MzAsMHgxNSwweDBjLDB4MDUsMHg0MywweDIxLDB4NTAsMHhjMCB9fSwKLSB7MTYsIDB4YzQ1MCwgMCwgezB4NTQsMHgzMCwweDE1LDB4MGMsMHgwNSwweDQzLDB4MDEsMHg1MCwweGMwLDB4NTQsMHgzMCwweDE1LDB4MGMsMHgwNSwweDQzLDB4MDEgfX0sCi0gezE2LCAweGM0NjAsIDAsIHsweDUwLDB4YzAsMHg1NCwweDIwLDB4MTUsMHgwYywweDA1LDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNDcwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgwNCwweDgwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgwNCB9fSwKLSB7MTYsIDB4YzQ4MCwgMCwgezB4ODAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4MDIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MDEsMHgwOCwweDAwLDB4NDIgfX0sCi0gezE2LCAweGM0OTAsIDAsIHsweDAwLDB4MTAsMHg4MCwweDA0LDB4MDAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAwLDB4MTAsMHg4MCwweDA0LDB4MjAsMHgwMSwweDAwIH19LAotIHsxNiwgMHhjNGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDQyLDB4MDIsMHgwMCwweDgwLDB4ODQsMHgyMCB9fSwKLSB7MTYsIDB4YzRiMCwgMCwgezB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4NCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAgfX0sCi0gezE2LCAweGM0YzAsIDAsIHsweDgwLDB4YTAsMHgyMCwweDI4LDB4MDgsMHgwMiwweDAyLDB4MDAsMHg4MCwweDgwLDB4MjAsMHgyMCwweDI4LDB4MDgsMHgwMiwweDAyIH19LAotIHsxNiwgMHhjNGQwLCAwLCB7MHgwMCwweDgwLDB4ODAsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzRlMCwgMCwgezB4MDAsMHg0NSwweDQwLDB4MDUsMHg2MCwweDQxLDB4NTgsMHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHg2MCwweDAxLDB4NTggfX0sCi0gezE2LCAweGM0ZjAsIDAsIHsweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAsMHgwNSwweDIwLDB4MDEsMHhkOCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAsMHgwNSwweDYwIH19LAotIHsxNiwgMHhjNTAwLCAwLCB7MHgwMSwweDU4LDB4MDAsMHg3NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCB9fSwKLSB7MTYsIDB4YzUxMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAgfX0sCi0gezE2LCAweGM1MjAsIDAsIHsweDI2LDB4MDAsMHgwZCwweDgwLDB4MDIsMHg2MCwweDAwLDB4ZDgsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDcsMHg2MCwweDAxIH19LAotIHsxNiwgMHhjNTMwLCAwLCB7MHg1YywweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwLDB4NTcsMHgwMCwweDBkLDB4ODAsMHgwMiB9fSwKLSB7MTYsIDB4YzU0MCwgMCwgezB4NjAsMHgwMCwweDk4LDB4MDAsMHgzNiwweDAwLDB4MGQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM1NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDA0LDB4MzAsMHgyMSwweDBjLDB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAsMHgwMSwweDBjIH19LAotIHsxNiwgMHhjNTYwLCAwLCB7MHgwMCwweDQzLDB4MDAsMHgxMCwweGMwLDB4MDQsMHgzMCwweDAxLDB4MTgsMHgwMCwweDQzLDB4MDAsMHgxMCwweGMwLDB4MDQsMHgzMCB9fSwKLSB7MTYsIDB4YzU3MCwgMCwgezB4MDEsMHgwYywweDAwLDB4NDYsMHgwMCwweDEwLDB4YzAsMHgwNCwweDMwLDB4MDEsMHgwYywweDAwLDB4NDMsMHgwMCwweDEwLDB4YzAgfX0sCi0gezE2LCAweGM1ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwIH19LAotIHsxNiwgMHhjNTkwLCAwLCB7MHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzUsMHgwOCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjNiwweDAwLDB4MTQsMHgwMCB9fSwKLSB7MTYsIDB4YzVhMCwgMCwgezB4MDgsMHgwMCwweDAzLDB4NDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGQsMHg0MCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAgfX0sCi0gezE2LCAweGM1YjAsIDAsIHsweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNWMwLCAwLCB7MHgwMCwweDAwLDB4MDUsMHgwMSwweDMxLDB4NDAsMHg0YywweDUwLDB4MTMsMHgxNCwweDA0LDB4YzUsMHgwMSwweDMxLDB4YzAsMHg0YyB9fSwKLSB7MTYsIDB4YzVkMCwgMCwgezB4NTAsMHgxMywweDE0LDB4MDQsMHhjNSwweDA1LDB4MzEsMHg0MSwweDRjLDB4NTAsMHgxMywweDE0LDB4MDQsMHhjNSwweDAxLDB4MzEgfX0sCi0gezE2LCAweGM1ZTAsIDAsIHsweDQwLDB4NGMsMHg3MCwweDUzLDB4MTQsMHgwNCwweGM1LDB4MDEsMHgzMSwweDQwLDB4NGMsMHg0MCwweDEzLDB4MTQsMHgwNCwweGMwIH19LAotIHsxNiwgMHhjNWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIzLDB4MDUsMHg2OCwweGMxLDB4NWEsMHgzMCB9fSwKLSB7MTYsIDB4YzYwMCwgMCwgezB4NTYsMHg4YywweDE1LDB4YTMsMHgwNSwweDY5LDB4YzEsMHg1YSwweDMwLDB4NDYsMHg4YywweDExLDB4YTcsMHgwMSwweDY4LDB4YzAgfX0sCi0gezE2LCAweGM2MTAsIDAsIHsweDFhLDB4MzAsMHg1NiwweDhjLDB4MTEsMHhhMywweDA0LDB4NjgsMHhjMSwweDFhLDB4MzAsMHgxNiwweDhjLDB4MTUsMHhhMywweDA0IH19LAotIHsxNiwgMHhjNjIwLCAwLCB7MHg2OCwweGMxLDB4NWEsMHgzMCwweDU2LDB4OGMsMHgxMSwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyNCwweDAwLDB4MDggfX0sCi0gezE2LCAweGM2NDAsIDAsIHsweDAxLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDI0LDB4MDAsMHgwOCwweDgwLDB4MDIsMHg2MCwweDAwLDB4ODAsMHgwMCwweDIwIH19LAotIHsxNiwgMHhjNjUwLCAwLCB7MHgwMCwweDA5LDB4NDAsMHgwMiwweDIwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCB9fSwKLSB7MTYsIDB4YzY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDQ0LDB4NjIsMHgxMSwweDE4LDB4ODQgfX0sCi0gezE2LCAweGM2NzAsIDAsIHsweDQ2LDB4MjEsMHgxMSwweDg4LDB4NDQsMHg2MiwweDA5LDB4MTgsMHg4NCwweDQ2LDB4MjEsMHgxMSwweDg4LDB4NjAsMHg2MiwweDEwIH19LAotIHsxNiwgMHhjNjgwLCAwLCB7MHgxOCwweDA0LDB4NDYsMHgwMSwweDExLDB4ODgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDgwLDB4MDYsMHgwMSwweDExLDB4ODgsMHg0NCB9fSwKLSB7MTYsIDB4YzY5MCwgMCwgezB4NjIsMHgxMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM2YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDQ1LDB4NTAsMHgxMSwweDU0LDB4MDQsMHg1NSwweDAxLDB4MTUsMHg0MCwweDQ0LDB4NTAsMHgxMSwweDU0IH19LAotIHsxNiwgMHhjNmIwLCAwLCB7MHgwNCwweDQ1LDB4MDEsMHgxMSwweDQwLDB4NDAsMHg1MCwweDEwLDB4NTQsMHgwNCwweDQ1LDB4MDEsMHgxNSwweDQwLDB4NDQsMHg1MCB9fSwKLSB7MTYsIDB4YzZjMCwgMCwgezB4MTEsMHgxNCwweDAwLDB4MTUsMHgwMSwweDE1LDB4NDAsMHg0NCwweDUwLDB4MTEsMHg1NCwweDA0LDB4NTUsMHgwMCwweDExLDB4NDAgfX0sCi0gezE2LCAweGM2ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgyMSwweDQyLDB4MDgsMHg1MCwweDgyIH19LAotIHsxNiwgMHhjNmUwLCAwLCB7MHgxNCwweDIwLDB4ODUsMHgwOCwweDIxLDB4NDIsMHgwMCwweDUwLDB4ODIsMHgxNCwweDIwLDB4ODUsMHgwOCwweDIwLDB4NDIsMHgwOCB9fSwKLSB7MTYsIDB4YzZmMCwgMCwgezB4NTAsMHg4MiwweDE1LDB4MjAsMHgwNSwweDQ4LDB4MjEsMHg0MiwweDA4LDB4NTAsMHg4MiwweDE0LDB4MjAsMHg4MSwweDQwLDB4MjEgfX0sCi0gezE2LCAweGM3MDAsIDAsIHsweDQyLDB4MDgsMHg1MCwweDgyLDB4MTQsMHgyMCwweDg1LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNzEwLCAwLCB7MHgwMCwweDAwLDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MTAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODQsMHg0MCB9fSwKLSB7MTYsIDB4YzcyMCwgMCwgezB4YTEsMHgxMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgwMCwweDI4LDB4MDAsMHgwYSwweDAxLDB4MDIgfX0sCi0gezE2LCAweGM3MzAsIDAsIHsweDgwLDB4NDAsMHhiMCwweDEwLDB4MjgsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDAwIH19LAotIHsxNiwgMHhjNzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBjLDB4MDMsMHg1MywweDAwLDB4ZDQsMHhjMCB9fSwKLSB7MTYsIDB4Yzc1MCwgMCwgezB4MzUsMHgzMCwweDBkLDB4NGMsMHgwMywweDUzLDB4MDAsMHhkNCwweGMwLDB4MzUsMHgzMCwweDBkLDB4NGMsMHgwMywweDUzLDB4MDAgfX0sCi0gezE2LCAweGM3NjAsIDAsIHsweGQ0LDB4YzAsMHgyMSwweDMwLDB4MDgsMHg0YywweDAzLDB4NTMsMHgwMCwweGQ0LDB4YzAsMHgzNSwweDMwLDB4MDgsMHg0YywweDAzIH19LAotIHsxNiwgMHhjNzcwLCAwLCB7MHg1MywweDAwLDB4ZDQsMHhjMCwweDM1LDB4MzAsMHgwZCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yzc4MCwgMCwgezB4MDAsMHgwMCwweDA4LDB4MDQsMHg3MCwweDAxLDB4NWMsMHg4MCwweDA3LDB4MjAsMHgyNSwweGM5LDB4MDQsMHg3MiwweDAxLDB4NWMgfX0sCi0gezE2LCAweGM3OTAsIDAsIHsweDgwLDB4NDcsMHgyMCwweDE1LDB4YzgsMHgwMCwweDcyLDB4MDUsMHhkYywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzgsMHgwNSwweDcyIH19LAotIHsxNiwgMHhjN2EwLCAwLCB7MHgwMSwweDFjLDB4OTAsMHg2NywweDIwLDB4MTUsMHhjOCwweDA1LDB4NzIsMHgwMSwweDFjLDB4ODAsMHg1NywweDIwLDB4MTUsMHhjMCB9fSwKLSB7MTYsIDB4YzdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDE4LDB4NDgsMHhjMiwweDEyLDB4MzEgfX0sCi0gezE2LCAweGM3YzAsIDAsIHsweDg0LDB4OGMsMHg2MSwweDAzLDB4MTgsMHg0MCwweGM4LDB4MTIsMHgzMSwweDg0LDB4OGMsMHg2MSwweDAzLDB4MTgsMHg0OCwweGM0IH19LAotIHsxNiwgMHhjN2QwLCAwLCB7MHgxMCwweDMxLDB4ODQsMHgwYywweDQxLDB4MjMsMHgxOCwweDQ4LDB4YzYsMHgxMCwweDMwLDB4MDQsMHgwYywweDYxLDB4MjMsMHgxOCB9fSwKLSB7MTYsIDB4YzdlMCwgMCwgezB4NDgsMHhjNiwweDEyLDB4MzAsMHg4NCwweDhjLDB4MjEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM3ZjAsIDAsIHsweDAwLDB4MDAsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzIH19LAotIHsxNiwgMHhjODAwLCAwLCB7MHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiB9fSwKLSB7MTYsIDB4YzgxMCwgMCwgezB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGJkLDB4MDAgfX0sCi0gezE2LCAweGM4MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjODMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yzg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjODYwLCAwLCB7MHgwMCwweDAwLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDA5LDB4MzYsMHhjMiB9fSwKLSB7MTYsIDB4Yzg3MCwgMCwgezB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIgfX0sCi0gezE2LCAweGM4ODAsIDAsIHsweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHgyYywweDAwIH19LAotIHsxNiwgMHhjODkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMzLDB4M2MsMHg0YywweGNmLDB4MTMsMHgzMyB9fSwKLSB7MTYsIDB4YzhhMCwgMCwgezB4YzQsMHhjYywweGYxLDB4MzMsMHgzYywweDRkLDB4NGUsMHg5MywweDMzLDB4YzQsMHhjYywweGYxLDB4MmIsMHgzYywweDRjLDB4Y2YgfX0sCi0gezE2LCAweGM4YjAsIDAsIHsweDEzLDB4MzMsMHhjNCwweGNjLDB4ZTksMHgzMywweDNjLDB4NGMsMHhjZiwweDEyLDB4YjUsMHhjNCwweGNjLDB4ZjEsMHgzMywweDNjIH19LAotIHsxNiwgMHhjOGMwLCAwLCB7MHg0YywweGNmLDB4MTMsMHgzMywweGM0LDB4Y2QsMHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzhkMCwgMCwgezB4MDAsMHgwMCwweDNiLDB4N2UsMHg0ZSwweGM3LDB4OTMsMHhiNywweGU0LDB4ZWQsMHhmOSwweDIzLDB4N2UsMHg0ZSwweDQ3LDB4OTMgfX0sCi0gezE2LCAweGM4ZTAsIDAsIHsweGI3LDB4ZTQsMHhlZCwweGY5LDB4M2YsMHg3ZSwweDRlLDB4ZGUsMHgxMiwweDM3LDB4ZTQsMHg4ZCwweGY5LDB4M2IsMHg3ZSwweDRlIH19LAotIHsxNiwgMHhjOGYwLCAwLCB7MHhkZiwweDkzLDB4ZjcsMHg4NCwweDhkLDB4ZjksMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzLDB4YjEsMHhlNCwweGVkLDB4YjksMHgwMCB9fSwKLSB7MTYsIDB4YzkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAyLDB4NzAsMHg0MCwweDljLDB4MTEgfX0sCi0gezE2LCAweGM5MTAsIDAsIHsweDY3LDB4MDQsMHgxOSwweGMzLDB4MDIsMHg3MCwweDQwLDB4OWMsMHgxMCwweDI3LDB4MDQsMHgwOSwweGMxLDB4MDIsMHg3MCwweDQwIH19LAotIHsxNiwgMHhjOTIwLCAwLCB7MHgxYywweDEwLDB4MjcsMHgxNCwweDAxLDB4YzEsMHgwMiwweDcwLDB4NDAsMHg5YywweDUwLDB4MDcsMHgwNCwweDA5LDB4YzEsMHgwMiB9fSwKLSB7MTYsIDB4YzkzMCwgMCwgezB4NzAsMHg0MCwweDljLDB4MTAsMHg2NywweDE0LDB4MTEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM5NDAsIDAsIHsweDAwLDB4MDAsMHgwNCwweDA1LDB4NzEsMHgwMSwweDVjLDB4NDAsMHg1NywweDEwLDB4MTUsMHhjNCwweDA1LDB4NzEsMHgwMSwweDVjIH19LAotIHsxNiwgMHhjOTUwLCAwLCB7MHg0MCwweDU3LDB4MTAsMHgxNSwweGM2LDB4MDUsMHg3MSwweDAxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxMCwweGM0LDB4MDUsMHg3MSB9fSwKLSB7MTYsIDB4Yzk2MCwgMCwgezB4MDEsMHg1YywweDY0LDB4MDMsMHgxMCwweDU1LDB4YzQsMHgwNSwweDcxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzAgfX0sCi0gezE2LCAweGM5NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwIH19LAotIHsxNiwgMHhjOTgwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjEsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDAxLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4Yzk5MCwgMCwgezB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNSwweGMyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyNCwweDE3LDB4MDgsMHgwNCwweDgyLDB4MDEgfX0sCi0gezE2LCAweGM5YTAsIDAsIHsweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODQsMHgwMCwweDYwLDB4MDAsMHgxOCB9fSwKLSB7MTYsIDB4YzljMCwgMCwgezB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMSwweDE4LDB4MDAsMHgwNiwweDEwLDB4OTEsMHg4MCwweDAwLDB4NjAgfX0sCi0gezE2LCAweGM5ZDAsIDAsIHsweDAwLDB4MTgsMHg0NiwweDQ2LDB4MTgsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MTAsMHgwMSwweDgwIH19LAotIHsxNiwgMHhjOWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHg3MywweDAxLDB4MWMsMHg4MCB9fSwKLSB7MTYsIDB4YzlmMCwgMCwgezB4MDcsMHgyMCwweDAxLDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4NDcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEgfX0sCi0gezE2LCAweGNhMDAsIDAsIHsweDFjLDB4ODAsMHg0NywweDIyLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMSwweDFjLDB4ODAsMHgwNywweDIwLDB4MTEsMHhjOCwweDA0IH19LAotIHsxNiwgMHhjYTEwLCAwLCB7MHg3MiwweDAxLDB4MWMsMHg4MCwweDA3LDB4MjgsMHgxMSwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2EyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTggfX0sCi0gezE2LCAweGNhMzAsIDAsIHsweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwIH19LAotIHsxNiwgMHhjYTQwLCAwLCB7MHgwMCwweDE4LDB4MDAsMHg0NiwweDA0LDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCB9fSwKLSB7MTYsIDB4Y2E1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDA0LDB4MjIsMHgwMSwweDA4LDB4ODAgfX0sCi0gezE2LCAweGNhNjAsIDAsIHsweDAyLDB4MjAsMHgwMCwweDkwLDB4MDQsMHgyNywweDgxLDB4MDgsMHg4MCwweDQyLDB4MjAsMHgxMCwweDk4LDB4MDQsMHgyNCwweDAxIH19LAotIHsxNiwgMHhjYTcwLCAwLCB7MHgwOCwweDgwLDB4NDIsMHg0OCwweDEwLDB4ODgsMHgwNCwweDIyLDB4MDEsMHgwOSwweDQwLDB4NDIsMHg2MCwweDEwLDB4ODgsMHgwNCB9fSwKLSB7MTYsIDB4Y2E4MCwgMCwgezB4MjIsMHgwMSwweDA4LDB4YzAsMHgwMiwweDQwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNhOTAsIDAsIHsweDAwLDB4MDAsMHgyYSwweDA0LDB4NGIsMHg4MSwweDEyLDB4YTAsMHgwNCwweGE4LDB4MDEsMHgyYSwweDA0LDB4NGEsMHg4MSwweDEyIH19LAotIHsxNiwgMHhjYWEwLCAwLCB7MHhhMCwweDQ0LDB4YTgsMHgxMSwweDJhLDB4MDQsMHg0OCwweDgwLDB4MTIsMHhhMCwweDQ0LDB4ODgsMHgwMSwweDJhLDB4MDQsMHg0YSB9fSwKLSB7MTYsIDB4Y2FiMCwgMCwgezB4ODEsMHgxMiwweDIwLDB4MDQsMHhhYywweDExLDB4MmEsMHgwNCwweDRhLDB4ODEsMHgxMiwweGIwLDB4NDQsMHg5YywweDExLDB4MDAgfX0sCi0gezE2LCAweGNhYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGMwLDB4MGMsMHgwMCwweDUzLDB4MDAsMHgxNCwweGMwIH19LAotIHsxNiwgMHhjYWQwLCAwLCB7MHgwNSwweDMwLDB4MDEsMHg0NCwweDAwLDB4NTMsMHgwMCwweDE0LDB4YzAsMHgwNSwweDMwLDB4MDQsMHgwYywweDAwLDB4NTMsMHgwMCB9fSwKLSB7MTYsIDB4Y2FlMCwgMCwgezB4MTQsMHhjMCwweDA1LDB4YjAsMHgwMSwweDRjLDB4MDAsMHg1MywweDAwLDB4MTYsMHhjMCwweDAxLDB4MzAsMHgwMSwweDRjLDB4MDAgfX0sCi0gezE2LCAweGNhZjAsIDAsIHsweDUzLDB4MDAsMHgxNCwweGMwLDB4MDEsMHgzOCwweDAwLDB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYjAwLCAwLCB7MHgwOCwweGMwLDB4MDAsMHgxMCwweDQwLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MTAsMHgwMCwweDQ0LDB4ODAsMHgxMCB9fSwKLSB7MTYsIDB4Y2IxMCwgMCwgezB4MDAsMHgwNCwweDAwLDB4MDEsMHgxMCwweDAwLDB4NDYsMHgwMCwweDAwLDB4MDAsMHgwNCwweDYwLDB4MDEsMHgwMCwweDAwLDB4NDAgfX0sCi0gezE2LCAweGNiMjAsIDAsIHsweDAwLDB4MTEsMHg2MCwweDAyLDB4NDAsMHgwMSwweDAwLDB4MTAsMHg0MCwweDAwLDB4MTAsMHg2MCwweDAxLDB4NTAsMHgxMCwweDQwIH19LAotIHsxNiwgMHhjYjMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMCwweDQwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCB9fSwKLSB7MTYsIDB4Y2I0MCwgMCwgezB4MjAsMHgwMCwweDA4LDB4MDgsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNiNTAsIDAsIHsweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAyIH19LAotIHsxNiwgMHhjYjYwLCAwLCB7MHgwMCwweDAwLDB4ODAsMHgwMCwweDIxLDB4MDAsMHgwOCwweDQwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2I3MCwgMCwgezB4MDgsMHhjMCwweDQwLDB4MDQsMHg2MCwweDAxLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAxLDB4MTggfX0sCi0gezE2LCAweGNiODAsIDAsIHsweDAwLDB4NDYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHhjOCwweDAwLDB4NDYsMHgwMCwweDE5LDB4ODAsMHgwMCwweDYwIH19LAotIHsxNiwgMHhjYjkwLCAwLCB7MHgwMCwweDE4LDB4MDAsMHg2NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSwweDE4LDB4MDAsMHgwNiwweDAwLDB4MTEsMHg4MCB9fSwKLSB7MTYsIDB4Y2JhMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDEsMHgwMCwweDAyLDB4NjAsMHgwMCwweDk4LDB4MDAgfX0sCi0gezE2LCAweGNiYjAsIDAsIHsweDI2LDB4MDAsMHgwOSwweDgxLDB4MDIsMHg2MCwweDAxLDB4OTgsMHgwMCwweDI2LDB4MDAsMHgwOSwweDgwLDB4MDYsMHg2MiwweDAwIH19LAotIHsxNiwgMHhjYmMwLCAwLCB7MHg0OCwweDAwLDB4MjYsMHgyMCwweDAxLDB4YzAsMHgwMiwweDYwLDB4MDEsMHg5OCwweDAwLDB4MDcsMHgwMCwweDA5LDB4ODAsMHgwMiB9fSwKLSB7MTYsIDB4Y2JkMCwgMCwgezB4NjAsMHgwMCwweDk4LDB4MDAsMHgyNiwweDAwLDB4MTEsMHg4MiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNiZTAsIDAsIHsweDQwLDB4NDUsMHg0MiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4NSwweDhjIH19LAotIHsxNiwgMHhjYmYwLCAwLCB7MHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4NDgsMHgxMSwweDgyLDB4MDQsMHgzMCB9fSwKLSB7MTYsIDB4Y2MwMCwgMCwgezB4ODEsMHg4ZCwweDIwLDB4NDYsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwYywweDEwLDB4YzAgfX0sCi0gezE2LCAweGNjMTAsIDAsIHsweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA0LDB4MDAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwIH19LAotIHsxNiwgMHhjYzIwLCAwLCB7MHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MTAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCB9fSwKLSB7MTYsIDB4Y2MzMCwgMCwgezB4MDgsMHgwMCwweDAzLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHg4MCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAgfX0sCi0gezE2LCAweGNjNDAsIDAsIHsweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgyMCwweDAwLDB4YzAsMHgxMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYzUwLCAwLCB7MHg0MCwweDAwLDB4MDIsMHgwMCwweDMwLDB4ODAsMHgwYywweDIxLDB4MDMsMHgwOCwweDAwLDB4YzIsMHgwMCwweDMwLDB4ODAsMHgwYyB9fSwKLSB7MTYsIDB4Y2M2MCwgMCwgezB4MjAsMHgwMywweDA4LDB4MDAsMHhjMiwweDA0LDB4MzAsMHhjMSwweDBjLDB4MjAsMHgwMywweDBjLDB4MTAsMHhjMiwweDAwLDB4MzAgfX0sCi0gezE2LCAweGNjNzAsIDAsIHsweDgwLDB4MGMsMHhiMCwweDQzLDB4MDgsMHgwMCwweGMyLDB4MDAsMHgzMCwweDgwLDB4MGMsMHgyMCwweDAzLDB4MjgsMHgxMCwweGMwIH19LAotIHsxNiwgMHhjYzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgyMCB9fSwKLSB7MTYsIDB4Y2M5MCwgMCwgezB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwMCwweDYwLDB4ODEgfX0sCi0gezE2LCAweGNjYTAsIDAsIHsweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MTEsMHg4MiwweDA0IH19LAotIHsxNiwgMHhjY2IwLCAwLCB7MHg2MCwweDgxLDB4MTgsMHgyMCwweDQ2LDB4MGMsMHgxMSwweGMwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2NjMCwgMCwgezB4NDAsMHgwMSwweDQyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDggfX0sCi0gezE2LCAweGNjZDAsIDAsIHsweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwYywweDIwLDB4MDIsMHgwOCwweDAwLDB4YzIsMHgwMCwweDIwIH19LAotIHsxNiwgMHhjY2UwLCAwLCB7MHg4MCwweDA4LDB4MjAsMHg0MiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDEsMHg4MCB9fSwKLSB7MTYsIDB4Y2NmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MDEsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfX0sCi0gezE2LCAweGNkMDAsIDAsIHsweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDAsMHg2MCwweGMxIH19LAotIHsxNiwgMHhjZDEwLCAwLCB7MHgwYywweDIwLDB4NDYsMHgwYywweDEwLDB4YzIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDMwLDB4NDIsMHgwOCwweDExLDB4ODIsMHgwNCB9fSwKLSB7MTYsIDB4Y2QyMCwgMCwgezB4NjAsMHg4MSwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTAsMHg4MCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNkMzAsIDAsIHsweDQwLDB4NDUsMHg0MCwweDA0LDB4NTAsMHgwMSwweDE0LDB4MDAsMHg0NSwweDAwLDB4MTEsMHg0MCwweDA0LDB4NTAsMHgwMCwweDE0IH19LAotIHsxNiwgMHhjZDQwLCAwLCB7MHgwMCwweDQ1LDB4MDAsMHgxMSwweDQwLDB4MDAsMHg1MCwweDAwLDB4MDQsMHgwMCwweDQ1LDB4MDAsMHgwMCwweDQwLDB4MDQsMHg1MCB9fSwKLSB7MTYsIDB4Y2Q1MCwgMCwgezB4MDAsMHgxNCwweDAwLDB4MDEsMHgwMCwweDExLDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDAwLDB4NDUsMHgwMCwweDAwLDB4NDIgfX0sCi0gezE2LCAweGNkNjAsIDAsIHsweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0OCwweDAwLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgxMCwweDYwIH19LAotIHsxNiwgMHhjZDcwLCAwLCB7MHgwNCwweDE4LDB4MDEsMHgwNiwweDAwLDB4NDEsMHg4MCwweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwNiwweDAwLDB4NDEsMHg4MCB9fSwKLSB7MTYsIDB4Y2Q4MCwgMCwgezB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDA2LDB4MDAsMHg0MSwweDgwLDB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDA2LDB4MDAgfX0sCi0gezE2LCAweGNkOTAsIDAsIHsweDQxLDB4ODAsMHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZGEwLCAwLCB7MHg0OCwweDAwLDB4MDIsMHgwMSwweDAwLDB4ODAsMHg0MCwweDIxLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwLDB4ODAsMHg0MCB9fSwKLSB7MTYsIDB4Y2RiMCwgMCwgezB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAsMHg4MCwweDQwLDB4MjEsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAgfX0sCi0gezE2LCAweGNkYzAsIDAsIHsweDgwLDB4NDAsMHgzMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MTEsMHgwMCwweDg0LDB4NDAsMHgyMCwweDEwLDB4MDgsMHgxNCwweDAwIH19LAotIHsxNiwgMHhjZGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCB9fSwKLSB7MTYsIDB4Y2RlMCwgMCwgezB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAgfX0sCi0gezE2LCAweGNkZjAsIDAsIHsweGQ0LDB4NjAsMHgzNSwweDEwLDB4MGQsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NDAsMHgzNSwweDE4LDB4MGQsMHg0NiwweDAzIH19LAotIHsxNiwgMHhjZTAwLCAwLCB7MHg1MSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2UxMCwgMCwgezB4MDAsMHgwMSwweDQ2LDB4MDQsMHg3MSwweDgxLDB4MWMsMHg2MCwweDA3LDB4MTgsMHgxMSwweGNlLDB4MDQsMHg3MSwweDgxLDB4MWMgfX0sCi0gezE2LCAweGNlMjAsIDAsIHsweDYwLDB4NDcsMHgxOCwweDAxLDB4YzYsMHgwNCwweDcxLDB4ODEsMHg5YywweDYwLDB4NDcsMHgxOCwweDE5LDB4YzYsMHgwNCwweDcxIH19LAotIHsxNiwgMHhjZTMwLCAwLCB7MHg4MCwweDFjLDB4NjAsMHg2NywweDE4LDB4MTEsMHhjNiwweDA0LDB4NzEsMHg4MSwweDFjLDB4NjAsMHg0NywweDE4LDB4MTEsMHhjMCB9fSwKLSB7MTYsIDB4Y2U0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHg0NiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjAgfX0sCi0gezE2LCAweGNlNTAsIDAsIHsweDI3LDB4MTgsMHgwOSwweGM2LDB4MDYsMHg3MSwweDgwLDB4MWMsMHg2MCwweDI3LDB4MTgsMHgwOSwweGM2LDB4MDEsMHgzMSwweDgwIH19LAotIHsxNiwgMHhjZTYwLCAwLCB7MHgxYywweDYwLDB4MDcsMHgxOCwweDA5LDB4YzYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYwLDB4MDcsMHgxOCwweDA5LDB4YzYsMHgxMiB9fSwKLSB7MTYsIDB4Y2U3MCwgMCwgezB4NzEsMHg4MCwweDljLDB4NjAsMHgzMywweDE4LDB4MDEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNlODAsIDAsIHsweDUwLDB4NDUsMHg0NiwweDA1LDB4NzEsMHg4MSwweDVjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEsMHg4MCwweDVjIH19LAotIHsxNiwgMHhjZTkwLCAwLCB7MHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDEsMHgzMSwweDgxLDB4MGMsMHg2MCwweDE3LDB4MTgsMHgxMCwweGM2LDB4MDUsMHg3MSB9fSwKLSB7MTYsIDB4Y2VhMCwgMCwgezB4ODEsMHg1YywweDYwLDB4MDMsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTMsMHgxOCwweDE4LDB4ODIgfX0sCi0gezE2LCAweGNlYjAsIDAsIHsweDEwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQwLDB4MTIsMHgwMSwweDI0LDB4ODAsMHg0OCwweDIwIH19LAotIHsxNiwgMHhjZWMwLCAwLCB7MHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjQsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4Y2VkMCwgMCwgezB4NTgsMHgyMCwweDUyLDB4MGMsMHgwNSwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDksMHgyMCwweDAyLDB4MDgsMHgwNCwweDgyLDB4MDEgfX0sCi0gezE2LCAweGNlZTAsIDAsIHsweDIwLDB4ODAsMHg0OSwweDIwLDB4MTIsMHg0OCwweDA0LDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZWYwLCAwLCB7MHg0MCwweDA0LDB4MDYsMHgwMCwweDYxLDB4ODAsMHgxOCwweDYwLDB4MDYsMHgxOCwweDAxLDB4ODYsMHgwNCwweDYxLDB4ODAsMHgxOCB9fSwKLSB7MTYsIDB4Y2YwMCwgMCwgezB4NjAsMHgwNiwweDE4LDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MSwweDQ4LDB4NjAsMHgwNiwweDE4LDB4MTQsMHg4NiwweDAwLDB4NjEgfX0sCi0gezE2LCAweGNmMTAsIDAsIHsweDgwLDB4MTgsMHg2MCwweDQyLDB4MTgsMHgwMSwweDg2LDB4MDAsMHg2MSwweDgwLDB4MTgsMHg2MCwweDA2LDB4MTgsMHgwMCwweDgwIH19LAotIHsxNiwgMHhjZjIwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0NSwweDYwLDB4MDQsMHg3OCwweDAxLDB4MWUsMHgwMCB9fSwKLSB7MTYsIDB4Y2YzMCwgMCwgezB4NDcsMHg4MCwweDExLDB4ZTgsMHgwMCwweDc4LDB4MDEsMHgxZSwweDAwLDB4NDcsMHg4MCwweDExLDB4ZTAsMHgwNCwweDc4LDB4MDEgfX0sCi0gezE2LCAweGNmNDAsIDAsIHsweDFlLDB4MDAsMHg0MywweDgwLDB4MTEsMHhlMCwweDA0LDB4NzgsMHgwMSwweDFlLDB4MDAsMHgwMywweDgwLDB4MTUsMHhlMCwweDA0IH19LAotIHsxNiwgMHhjZjUwLCAwLCB7MHg3OCwweDAxLDB4MWUsMHgwMCwweDQ3LDB4ODAsMHgxMSwweGMwLDB4MTAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2Y2MCwgMCwgezB4NDAsMHgwMSwweDEyLDB4MDAsMHg2NCwweDgwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2NCwweDgwLDB4MTggfX0sCi0gezE2LCAweGNmNzAsIDAsIHsweDIwLDB4MDYsMHgwOCwweDAxLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOCwweDMwLDB4MDIsMHgwOCwweDAxLDB4ODIsMHgwMCwweDYwIH19LAotIHsxNiwgMHhjZjgwLCAwLCB7MHg4MCwweDE5LDB4MzAsMHg0MiwweDA4LDB4MDAsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE5LDB4MjAsMHgwNiwweDQ4LDB4MDEsMHg4MCB9fSwKLSB7MTYsIDB4Y2Y5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAgfX0sCi0gezE2LCAweGNmYTAsIDAsIHsweDQyLDB4MDgsMHgxMCwweDgyLDB4MDAsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxIH19LAotIHsxNiwgMHhjZmIwLCAwLCB7MHgwOCwweDIwLDB4NDYsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDExLDB4ODIsMHgwNCB9fSwKLSB7MTYsIDB4Y2ZjMCwgMCwgezB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNmZDAsIDAsIHsweDQwLDB4NDUsMHg0MiwweDA0LDB4NDAsMHg4MSwweDEwLDB4MjAsMHg0NCwweDA4LDB4MTEsMHgwMiwweDAwLDB4NDAsMHg4MSwweDEwIH19LAotIHsxNiwgMHhjZmUwLCAwLCB7MHgyMCwweDQ0LDB4MDgsMHgxMSwweDAyLDB4MDQsMHg0MCwweDgwLDB4MTAsMHgyMCwweDQ1LDB4MDgsMHgwMSwweDAyLDB4MDQsMHg0MCB9fSwKLSB7MTYsIDB4Y2ZmMCwgMCwgezB4ODEsMHgxMCwweDIxLDB4MDAsMHgwYywweDExLDB4MDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4NDQsMHgwOCwweDAxLDB4MDAgfX0sCi0gezE2LCAweGQwMDAsIDAsIHsweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MDMsMHgwMCwweDUwLDB4YzAsMHgxNCwweDMwIH19LAotIHsxNiwgMHhkMDEwLCAwLCB7MHgwNSwweDBjLDB4MDEsMHg0MywweDAwLDB4NTAsMHhjMCwweDE0LDB4MzAsMHgwNSwweDBjLDB4MDEsMHg0MywweDAwLDB4NTAsMHhjMCB9fSwKLSB7MTYsIDB4ZDAyMCwgMCwgezB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQzLDB4MDAsMHg1MCwweGMwLDB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQzLDB4MDAgfX0sCi0gezE2LCAweGQwMzAsIDAsIHsweDUwLDB4YzAsMHgxNCwweDMwLDB4MDUsMHgwYywweDAxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMDQwLCAwLCB7MHg0MCwweDAwLDB4MDgsMHgwMCwweDQyLDB4MDQsMHgxMCwweDgwLDB4MDQsMHgyMCwweDAxLDB4MDksMHgwMCwweDQyLDB4MDEsMHgxMCB9fSwKLSB7MTYsIDB4ZDA1MCwgMCwgezB4ODAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4NDIgfX0sCi0gezE2LCAweGQwNjAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAwLDB4MTAsMHg4MCwweDA0LDB4MjAsMHgxMSwweDAwIH19LAotIHsxNiwgMHhkMDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQyLDB4MDIsMHgwMCwweDgwLDB4ODAsMHgyMCB9fSwKLSB7MTYsIDB4ZDA4MCwgMCwgezB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHgwMCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMCwweDAwLDB4ODAgfX0sCi0gezE2LCAweGQwOTAsIDAsIHsweDgwLDB4YTAsMHgwMCwweDBhLDB4MDgsMHgwMiwweDAyLDB4MDAsMHg4MCwweDgwLDB4MzQsMHg2MiwweDI4LDB4MDgsMHgwMiwweDAyIH19LAotIHsxNiwgMHhkMGEwLCAwLCB7MHgwMCwweDgwLDB4ODAsMHgzMCwweDIwLDB4MGMsMHgwOCwweDAwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDBiMCwgMCwgezB4NDAsMHgwMSwweDQwLDB4MDQsMHg2MCwweDAxLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAzLDB4MTggfX0sCi0gezE2LCAweGQwYzAsIDAsIHsweDAwLDB4NDYsMHgwMCwweDExLDB4ODAsMHgwNiwweDYwLDB4MDEsMHg5OCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwIH19LAotIHsxNiwgMHhkMGQwLCAwLCB7MHgwMSwweDE4LDB4MDAsMHg2NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSwweDE4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCB9fSwKLSB7MTYsIDB4ZDBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHgwMCwweDAyLDB4NjAsMHgwMCwweDk4LDB4MDAgfX0sCi0gezE2LCAweGQwZjAsIDAsIHsweDI2LDB4MDAsMHgwOSwweDgwLDB4MDIsMHg2NCwweDAwLDB4OTgsMHgwMCwweDI2LDB4MDAsMHgxOSwweDkwLDB4MDIsMHg2MCwweDAwIH19LAotIHsxNiwgMHhkMTAwLCAwLCB7MHgxZCwweDAwLDB4MjYsMHgwMCwweDAxLDB4YzAsMHgwMiwweDYwLDB4MDAsMHg5OSwweDAwLDB4MDYsMHg0MCwweDE5LDB4ODAsMHgwMiB9fSwKLSB7MTYsIDB4ZDExMCwgMCwgezB4NjAsMHgwMCwweDk4LDB4MDAsMHg2NiwweDAwLDB4MDEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQxMjAsIDAsIHsweDQwLDB4NDUsMHg2MCwweDA0LDB4MzgsMHgwMSwweDBlLDB4MDAsMHg0MywweDgwLDB4MTAsMHhlMCwweDA0LDB4MzgsMHgwMSwweDBlIH19LAotIHsxNiwgMHhkMTMwLCAwLCB7MHgwMCwweDQzLDB4ODAsMHgxMCwweGUwLDB4MDQsMHgzOCwweDAxLDB4MWEsMHgwMCwweDQzLDB4ODAsMHgxMSwweGEwLDB4MDQsMHgzOCB9fSwKLSB7MTYsIDB4ZDE0MCwgMCwgezB4MDEsMHgwZSwweDAwLDB4MDIsMHg4MCwweDQwLDB4ZTAsMHgwNCwweDM4LDB4MDEsMHgwZSwweDAwLDB4NDMsMHg4MCwweDE4LDB4ODAgfX0sCi0gezE2LCAweGQxNTAsIDAsIHsweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDA0LDB4MDEsMHgwMCwweDMwLDB4NDAsMHgwYywweDEwIH19LAotIHsxNiwgMHhkMTYwLCAwLCB7MHgwMywweDA0LDB4MDAsMHhjOSwweDAwLDB4MzAsMHg0MCwweDBjLDB4MTAsMHgwMywweDA0LDB4MDAsMHhjMSwweDAwLDB4MzAsMHg0MCB9fSwKLSB7MTYsIDB4ZDE3MCwgMCwgezB4MDgsMHgxMCwweDAzLDB4MDQsMHgwMCwweDgxLDB4MDAsMHgzMCwweDQwLDB4MGMsMHg3OCwweDAyLDB4MTQsMHgwMCwweGMxLDB4MDAgfX0sCi0gezE2LCAweGQxODAsIDAsIHsweDMwLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwNCwweDAwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMTkwLCAwLCB7MHg0MCwweDAwLDB4MDUsMHgwMCwweDMxLDB4NDAsMHgwYywweDUwLDB4MDMsMHgxNCwweDAwLDB4YzUsMHgwMCwweDM1LDB4NDAsMHgwYyB9fSwKLSB7MTYsIDB4ZDFhMCwgMCwgezB4NTAsMHgwMywweDE0LDB4MTAsMHhkNSwweDAwLDB4MzEsMHg0MSwweDBkLDB4NTAsMHgwMywweDE0LDB4MTAsMHhjNSwweDAwLDB4MzEgfX0sCi0gezE2LCAweGQxYjAsIDAsIHsweDQwLDB4MGQsMHg0OCwweDQzLDB4NTQsMHgxMCwweGM1LDB4MDAsMHgzMSwweDQwLDB4MGMsMHg0MCwweDQzLDB4MTAsMHgwMCwweGMyIH19LAotIHsxNiwgMHhkMWMwLCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDQzLDB4MDQsMHg2MCwweGMxLDB4MTgsMHgzMCB9fSwKLSB7MTYsIDB4ZDFkMCwgMCwgezB4NDYsMHgwYywweDExLDB4ODMsMHgwNCwweDYxLDB4YzEsMHgxOCwweDMwLDB4NDYsMHgwYywweDAxLDB4ODcsMHgwNCwweDYwLDB4YzEgfX0sCi0gezE2LCAweGQxZTAsIDAsIHsweDE4LDB4MzAsMHg0NiwweDA4LDB4MTEsMHg4MywweDA0LDB4NjAsMHhjMSwweDE4LDB4MjAsMHgwNiwweDBjLDB4MDEsMHg4MywweDA0IH19LAotIHsxNiwgMHhkMWYwLCAwLCB7MHg2MCwweGMxLDB4MTgsMHgzMCwweDQ2LDB4MGMsMHgxMSwweDgwLDB4MTAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDIwMCwgMCwgezB4NDAsMHgwMSwweDQwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDggfX0sCi0gezE2LCAweGQyMTAsIDAsIHsweDAwLDB4MDIsMHgwMCwweDAwLDB4ODEsMHgwMCwweDIwLDB4MDAsMHgwOCwweDgwLDB4MDIsMHgwMCwweDAwLDB4YzAsMHgwMCwweDIwIH19LAotIHsxNiwgMHhkMjIwLCAwLCB7MHgwMCwweDA4LDB4NDAsMHg0MywweDMwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCB9fSwKLSB7MTYsIDB4ZDIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0OCwweDQ0LDB4NjIsMHgxMSwweDE4LDB4ODQgfX0sCi0gezE2LCAweGQyNDAsIDAsIHsweDQ2LDB4MjEsMHgxMSwweDg4LDB4NDQsMHg2MywweDAxLDB4MTgsMHg4NCwweDQ2LDB4MjEsMHgwMSwweDg4LDB4MDQsMHg2MiwweDExIH19LAotIHsxNiwgMHhkMjUwLCAwLCB7MHgxOCwweDA0LDB4NDYsMHgyMSwweDEwLDB4YzgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDA1LDB4NDMsMHgwMSwweDgxLDB4ODgsMHg0NCB9fSwKLSB7MTYsIDB4ZDI2MCwgMCwgezB4NjIsMHgxMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQyNzAsIDAsIHsweDQwLDB4NDUsMHg0MCwweDA0LDB4NTAsMHgwMSwweDE0LDB4MDQsMHg0NSwweDAxLDB4MTEsMHg0MCwweDQ0LDB4NTAsMHgwMSwweDE0IH19LAotIHsxNiwgMHhkMjgwLCAwLCB7MHgwNCwweDQ1LDB4MDEsMHgwMSwweDQwLDB4NDUsMHgwMCwweDEwLDB4MTQsMHgwNCwweDQ1LDB4MDMsMHgwMCwweDQwLDB4NDQsMHg1MCB9fSwKLSB7MTYsIDB4ZDI5MCwgMCwgezB4MTEsMHgxNCwweDA0LDB4MDEsMHgwNSwweDQxLDB4NDAsMHg0NCwweDUwLDB4MTEsMHgxNCwweDA0LDB4MDUsMHgwMSwweDAxLDB4NDAgfX0sCi0gezE2LCAweGQyYTAsIDAsIHsweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDgyIH19LAotIHsxNiwgMHhkMmIwLCAwLCB7MHgwNCwweDIwLDB4ODEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDAwLDB4NDIsMHgwOCB9fSwKLSB7MTYsIDB4ZDJjMCwgMCwgezB4MTAsMHg4MiwweDA1LDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4YSwweDA1LDB4MjAsMHgwNSwweDA4LDB4MjAgfX0sCi0gezE2LCAweGQyZDAsIDAsIHsweDQyLDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMiwweDgxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMmUwLCAwLCB7MHgwMCwweDAwLDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MTAsMHgyOCwweDA0LDB4MDIsMHgwMSwweDAyLDB4ODAsMHg0MCB9fSwKLSB7MTYsIDB4ZDJmMCwgMCwgezB4YTAsMHgxMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgwMCwweDI5LDB4MDQsMHgwYSwweDAxLDB4MDIgfX0sCi0gezE2LCAweGQzMDAsIDAsIHsweDgwLDB4NDAsMHhhNCwweDAwLDB4MjgsMHgwNCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhOCwweDEwLDB4MmIsMHgxNCwweDAwIH19LAotIHsxNiwgMHhkMzEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0NSwweDRkLDB4MDMsMHg1MywweDQwLDB4ZDQsMHhkMCB9fSwKLSB7MTYsIDB4ZDMyMCwgMCwgezB4MzUsMHgzNCwweDBkLDB4NGQsMHgwMywweDUzLDB4NDAsMHhkNCwweGQwLDB4MzUsMHgzNCwweDBkLDB4NGQsMHgwMywweDUzLDB4NDAgfX0sCi0gezE2LCAweGQzMzAsIDAsIHsweGQ0LDB4ZDAsMHgyMSwweDM0LDB4NGQsMHg0ZCwweDAzLDB4NTMsMHg0MCwweGQ0LDB4ZDksMHg2MSwweDM0LDB4MDQsMHgwZCwweDAzIH19LAotIHsxNiwgMHhkMzQwLCAwLCB7MHg1MywweDQwLDB4YzAsMHhkOCwweDM1LDB4MzcsMHgwZCwweDQwLDB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDM1MCwgMCwgezB4NDAsMHgwMSwweDQ4LDB4MDQsMHg3MiwweDAwLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMgfX0sCi0gezE2LCAweGQzNjAsIDAsIHsweDgwLDB4NDcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDAsMHg5YywweDgwLDB4NDcsMHgyMCwweDE5LDB4YzgsMHgwMCwweDcyIH19LAotIHsxNiwgMHhkMzcwLCAwLCB7MHgwMSwweDFjLDB4ODgsMHg2NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMSwweDVjLDB4ODIsMHg0NywweDIyLDB4MTEsMHhjMCB9fSwKLSB7MTYsIDB4ZDM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDA4LDB4NDgsMHhjMiwweDEyLDB4MzEgfX0sCi0gezE2LCAweGQzOTAsIDAsIHsweDg0LDB4OGMsMHg2MSwweDIzLDB4MTAsMHg0MCwweGMwLDB4MTIsMHgzMSwweDg0LDB4OGMsMHg2MSwweDAzLDB4MTAsMHg0OCwweGM0IH19LAotIHsxNiwgMHhkM2EwLCAwLCB7MHgxMCwweDMxLDB4ODQsMHg4YywweDQxLDB4MjMsMHgxOCwweDQ4LDB4YzYsMHgxMCwweDMwLDB4MDQsMHgwYywweDQxLDB4MjMsMHgxOCB9fSwKLSB7MTYsIDB4ZDNiMCwgMCwgezB4NDgsMHhjNiwweDEyLDB4MzAsMHg4NCwweDhjLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQzYzAsIDAsIHsweDAwLDB4MDAsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzIH19LAotIHsxNiwgMHhkM2QwLCAwLCB7MHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiB9fSwKLSB7MTYsIDB4ZDNlMCwgMCwgezB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGRkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4MDAgfX0sCi0gezE2LCAweGQzZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ0MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNDMwLCAwLCB7MHgwMCwweDAwLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiB9fSwKLSB7MTYsIDB4ZDQ0MCwgMCwgezB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIgfX0sCi0gezE2LCAweGQ0NTAsIDAsIHsweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg0YywweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDAwIH19LAotIHsxNiwgMHhkNDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMzLDB4NWMsMHg0YywweGQ3LDB4MTMsMHgzMyB9fSwKLSB7MTYsIDB4ZDQ3MCwgMCwgezB4YzQsMHhjYywweGYxLDB4MzMsMHgzYSwweDRhLDB4ZDYsMHg5MywweDMzLDB4YzQsMHhjYywweGYxLDB4MmIsMHgzYSwweDRjLDB4Y2YgfX0sCi0gezE2LCAweGQ0ODAsIDAsIHsweDEzLDB4MzMsMHhjNCwweGNjLDB4ZTksMHgzMywweDNjLDB4NGMsMHhjZiwweDEyLDB4YjUsMHhhNCwweGFjLDB4YzksMHgzMywweDNjIH19LAotIHsxNiwgMHhkNDkwLCAwLCB7MHg0YywweGNmLDB4MTMsMHgzNSwweGM0LDB4Y2QsMHg2OSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDRhMCwgMCwgezB4MDAsMHgwMCwweDNiLDB4N2UsMHg0ZSwweGRmLDB4OTMsMHhiNywweGU0LDB4ZWQsMHhmOSwweDNiLDB4N2UsMHg0ZSwweGRmLDB4OTMgfX0sCi0gezE2LCAweGQ0YjAsIDAsIHsweGI3LDB4ZTQsMHhlZCwweGY5LDB4M2IsMHg3ZSwweDRlLDB4ZGUsMHgxMiwweDM3LDB4ZTQsMHhlZCwweGUxLDB4M2IsMHg3ZSwweDRlIH19LAotIHsxNiwgMHhkNGMwLCAwLCB7MHhkZiwweDkyLDB4MzEsMHg4NCwweDhkLDB4ZDksMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzLDB4YjEsMHhlNCwweGVjLDB4NjEsMHgwMCB9fSwKLSB7MTYsIDB4ZDRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg0LDB4MDQsMHhhMSwweDgzLDB4MmMgfX0sCi0gezE2LCAweGQ0ZTAsIDAsIHsweDAzLDB4MGEsMHgxMCwweDgyLDB4YzEsMHgzNCwweDEwLDB4OGYsMHgwMCwweDQwLDB4MDksMHgxNCwweDAyLDB4MDMsMHgxNCwweDkxIH19LAotIHsxNiwgMHhkNGYwLCAwLCB7MHgwMCwweDA4LDB4NDIsMHgwYiwweDE4LDB4ODIsMHhjNCwweDAwLDB4MzEsMHhjYSwweDBjLDB4NTIsMHgwMiwweDEwLDB4ODAsMHg4NSB9fSwKLSB7MTYsIDB4ZDUwMCwgMCwgezB4MDAsMHgyMSwweDgyLDB4MjgsMHg0MCwweDBhLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ1MTAsIDAsIHsweDAwLDB4MDAsMHgwYSwweDA0LDB4MDIsMHgwMSwweDQwLDB4ODAsMHg3MywweDI4LDB4MTAsMHg0OCwweDA3LDB4MDYsMHgwMSwweDA0IH19LAotIHsxNiwgMHhkNTIwLCAwLCB7MHhhNCwweDQxLDB4MjEsMHgxNCwweDA4LDB4NDQsMHgwNiwweDExLDB4NDAsMHg4MCwweDcwLDB4MjAsMHgxNCwweDBhLDB4MDQsMHgwMiB9fSwKLSB7MTYsIDB4ZDUzMCwgMCwgezB4MDAsMHhjOCwweDg0LDB4NDEsMHgyMSwweDFjLDB4MDgsMHgwNiwweDEyLDB4MDEsMHhjMCwweDgwLDB4NjAsMHgyMCwweDE0LDB4MDAgfX0sCi0gezE2LCAweGQ1NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHg4NCwweDA0LDB4MjEsMHg4MiwweDA4IH19LAotIHsxNiwgMHhkNTUwLCAwLCB7MHg1MywweDAyLDB4MTAsMHg4MCwweGM1LDB4MDAsMHg4MSwweDRhLDB4MDQsMHg0MiwweDAyLDB4MTQsMHgwMCwweDA0LDB4MjAsMHgyMSB9fSwKLSB7MTYsIDB4ZDU2MCwgMCwgezB4ODAsMHhhOCwweDcyLDB4MjIsMHgxYywweDg4LDB4YzQsMHgwNiwweGExLDB4NDIsMHg4YywweDUyLDB4MjIsMHgxYywweDg4LDB4ODUgfX0sCi0gezE2LCAweGQ1NzAsIDAsIHsweDI2LDB4MjEsMHhjMCwweDg4LDB4NTAsMHgyMiwweDE4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNTgwLCAwLCB7MHgwMCwweDAwLDB4MDIsMHg0NCwweDAwLDB4MDEsMHgwMSwweDAwLDB4NjIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MDEsMHgwMSB9fSwKLSB7MTYsIDB4ZDU5MCwgMCwgezB4MjAsMHg0MCwweDAwLDB4MWMsMHgwMCwweDQ0LDB4MDQsMHgwMSwweDAyLDB4MjAsMHg2MiwweDAwLDB4MWMsMHg4MCwweDA0LDB4MDQgfX0sCi0gezE2LCAweGQ1YTAsIDAsIHsweDgwLDB4ODksMHgyMCwweDUwLDB4MDgsMHgxNCwweDgwLDB4MDQsMHgyNCwweDAxLDB4YzEsMHgwMCwweDUwLDB4MDAsMHgxOCwweDAwIH19LAotIHsxNiwgMHhkNWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4ODAsMHgzOCwweDIwLDB4MDQsMHgwYyB9fSwKLSB7MTYsIDB4ZDVjMCwgMCwgezB4MzEsMHgwYSwweDAwLDB4MDAsMHgwMiwweDE4LDB4MjAsMHg4YywweGE4LDB4MTAsMHgyOCwweDA4LDB4ODgsMHhjMSwweDE0LDB4MTAgfX0sCi0gezE2LCAweGQ1ZDAsIDAsIHsweGM2LDB4MDAsMHgyMiwweDAzLDB4MDgsMHgwMiwweDAxLDB4MDgsMHhiMCwweDAwLDB4MGMsMHgyMSwweDAyLDB4MDAsMHg4MiwweDgwIH19LAotIHsxNiwgMHhkNWUwLCAwLCB7MHgwOCwweDAwLDB4NDksMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDgwLDB4MDgsMHgyMCwweDAzLDB4MDAsMHgwNCwweDAyLDB4NDMsMHgyMCwweDAwLDB4NDAgfX0sCi0gezE2LCAweGQ2MDAsIDAsIHsweDAwLDB4MjAsMHgwMCwweDA0LDB4NDIsMHgwMSwweDEwLDB4ODAsMHg4NCwweDIwLDB4MTEsMHgwOCwweDA0LDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNjEwLCAwLCB7MHgwMCwweDQ0LDB4MjQsMHgyMCwweDA5LDB4MDgsMHg0MCwweDAzLDB4MDAsMHg5MCwweGM0LDB4MjAsMHgyMCwweDA4LDB4MGMsMHgwMiB9fSwKLSB7MTYsIDB4ZDYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDgxLDB4MDgsMHgyMCwweDA0LDB4ODggfX0sCi0gezE2LCAweGQ2MzAsIDAsIHsweDAyLDB4MjIsMHgwOCwweDA4LDB4YzMsMHgyYSwweDkwLDB4NDAsMHg4NCwweDEwLDB4MjAsMHgwNCwweDgwLDB4YzIsMHgyNiwweDIwIH19LAotIHsxNiwgMHhkNjQwLCAwLCB7MHg0OSwweDg4LDB4MjIsMHgyMiwweDBjLDB4MDgsMHhjMSwweDI2LDB4YTAsMHhjOSwweDhjLDB4MTIsMHgyYSwweDA0LDB4ODgsMHg0MyB9fSwKLSB7MTYsIDB4ZDY1MCwgMCwgezB4MGUsMHhhMCwweGNiLDB4ODgsMHgxMCwweDIyLDB4MGMsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ2NjAsIDAsIHsweDA4LDB4MDAsMHgwYSwweDQwLDB4MzIsMHgwMCwweDAxLDB4ODAsMHgzMSwweDI4LDB4MDAsMHgwMCwweDAxLDB4MTIsMHg4MCwweDhkIH19LAotIHsxNiwgMHhkNjcwLCAwLCB7MHg4NCwweDAwLDB4MjgsMHgwYywweDA4LDB4MDEsMHgzMiwweDAwLDB4OGMsMHg4MCwweDAyLDB4MjAsMHgwYywweDA4LDB4MDEsMHgyZSB9fSwKLSB7MTYsIDB4ZDY4MCwgMCwgezB4MDAsMHhjMywweDgwLDB4MDIsMHgyMCwweDA0LDB4MDgsMHg0MywweDAyLDB4MDAsMHg0MCwweDgwLDB4MTAsMHgyMCwweDA0LDB4MDIgfX0sCi0gezE2LCAweGQ2OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHg4NywweDBhLDB4MjEsMHgwNCwweDg4IH19LAotIHsxNiwgMHhkNmEwLCAwLCB7MHgxMSwweDJhLDB4MWMsMHgwYSwweDA2LDB4MjIsMHgyMSwweDQwLDB4YTAsMHg0MiwweDJhLDB4MTAsMHg4OCwweDg1LDB4MGEsMHhhMSB9fSwKLSB7MTYsIDB4ZDZiMCwgMCwgezB4MDYsMHhhNCwweDYyLDB4MjIsMHgxYywweDBhLDB4YzQsMHgwMiwweDIxLDB4ODAsMHg4YywweDUyLDB4MjIsMHgxNCwweDQ4LDB4ODYgfX0sCi0gezE2LCAweGQ2YzAsIDAsIHsweDIyLDB4MjAsMHgwOCwweGE4LDB4NjAsMHgyYSwweDE0LDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNmQwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHg0NSwweDA2LDB4MDEsMHg4OSwweDgwLDB4NjMsMHgyMCwweDFjLDB4ODgsMHg0MCwweDM0LDB4MTEsMHgwMSB9fSwKLSB7MTYsIDB4ZDZlMCwgMCwgezB4YTQsMHg1MCwweDI4LDB4MTgsMHg0OCwweDA0LDB4MGUsMHgwMSwweDRiLDB4ODAsMHg3MywweDI4LDB4MWMsMHg4YSwweDA0LDB4MDYgfX0sCi0gezE2LCAweGQ2ZjAsIDAsIHsweDkxLDB4NDksMHgwNCwweDYzLDB4MjAsMHgxYywweDhhLDB4MDYsMHgyNiwweDAxLDB4ODUsMHg4MCwweDcwLDB4MjAsMHgxOCwweDAyIH19LAotIHsxNiwgMHhkNzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAwLDB4ODUsMHgwMCwweGIxLDB4NDUsMHgyYyB9fSwKLSB7MTYsIDB4ZDcxMCwgMCwgezB4NzAsMHgwMiwweDE0LDB4YzAsMHgwNywweDA4LDB4MjEsMHg0OSwweDAwLDB4NDIsMHgwMSwweDE0LDB4ODIsMHgwNSwweDAwLDB4MTEgfX0sCi0gezE2LCAweGQ3MjAsIDAsIHsweDg0LDB4MDAsMHg1MiwweDAyLDB4MWMsMHgwMCwweGM0LDB4MDAsMHgyMSwweGM0LDB4MmMsMHg1MywweDAyLDB4MWMsMHgwMiwweDgxIH19LAotIHsxNiwgMHhkNzMwLCAwLCB7MHgwNCwweGExLDB4Y2QsMHgwOCwweDUwLDB4MDIsMHgxNCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDc0MCwgMCwgezB4MDgsMHgxMCwweDEyLDB4MDQsMHgzNCwweDAxLDB4Y2MsMHgwMCwweDczLDB4NDAsMHgxYywweDkwLDB4NDUsMHgwNCwweDAxLDB4NDggfX0sCi0gezE2LCAweGQ3NTAsIDAsIHsweDA0LDB4NjAsMHg0MSwweDE4LDB4YzAsMHg0NCwweDA0LDB4MDEsMHgwNSwweDA0LDB4NzMsMHg0OCwweDE0LDB4NTAsMHg0NywweDM0IH19LAotIHsxNiwgMHhkNzYwLCAwLCB7MHgwMSwweDQ1LDB4MjAsMHg2MiwweDA4LDB4MWMsMHhjMiwweDA0LDB4MGMsMHg4MSwweGM3LDB4MDAsMHg3MywweDgwLDB4MTgsMHhjMiB9fSwKLSB7MTYsIDB4ZDc3MCwgMCwgezB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgxMCwweDg0LDB4MTAsMHgyMSwweGNjLDB4MjggfX0sCi0gezE2LCAweGQ3ODAsIDAsIHsweDQyLDB4MDIsMHgxNCwweDEyLDB4YzUsMHgxMCwweDIxLDB4ODQsMHgwNCwweDQwLDB4MDAsMHgxYywweDgwLDB4ODQsMHgwMCwweDkxIH19LAotIHsxNiwgMHhkNzkwLCAwLCB7MHgwMCwweDA4LDB4NzMsMHg4MiwweDFjLDB4OTAsMHgwNSwweDBjLDB4MDEsMHhjZiwweDBjLDB4NDAsMHgwMiwweDE0LDB4MzAsMHg0NSB9fSwKLSB7MTYsIDB4ZDdhMCwgMCwgezB4MjAsMHhhMSwweGMwLDB4MDgsMHg1MCwweDAyLDB4MTAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDQ1LDB4MGMsMHg4MSwweDAwLDB4MDAsMHgwMSwweDA4LDB4MDgsMHgwMCwweDA1LDB4MTgsMHg5MSwweDA1IH19LAotIHsxNiwgMHhkN2MwLCAwLCB7MHgwNCwweDAwLDB4MDEsMHgwNCwweDQwLDB4MDYsMHgxOCwweDAwLDB4MDIsMHgyNCwweDcwLDB4NDAsMHgwNCwweDAwLDB4NDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDdkMCwgMCwgezB4MDEsMHhjNCwweDI0LDB4MDAsMHg4OCwweDA0LDB4MDAsMHg0MywweDEwLDB4MDAsMHg0MCwweDIwLDB4MDAsMHg4OCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHg4NSwweDI0LDB4MzEsMHgwMiwweDBjIH19LAotIHsxNiwgMHhkN2YwLCAwLCB7MHgwMiwweGMyLDB4MDQsMHgxMCwweGM0LDB4MjgsMHgyMSwweDQ5LDB4MGMsMHgwMiwweGMwLDB4MDQsMHhiMiwweDA2LDB4MWMsMHgyMCB9fSwKLSB7MTYsIDB4ZDgwMCwgMCwgezB4MDMsMHgwOCwweDUwLDB4NDIsMHgwYywweDgwLDB4MDEsMHgwNCwweGExLDB4NDksMHgwYywweDAwLDB4YzIsMHgwYywweDEwLDB4NDMgfX0sCi0gezE2LCAweGQ4MTAsIDAsIHsweDI0LDB4YTAsMHhjMSwweDA4LDB4MTAsMHg0MiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkODIwLCAwLCB7MHgwMCwweDEwLDB4YTIsMHgwMCwweDIwLDB4MDAsMHhjZCwweDAwLDB4MDAsMHg0MCwweDA0LDB4MjAsMHgwMSwweDEwLDB4MDAsMHgwOSB9fSwKLSB7MTYsIDB4ZDgzMCwgMCwgezB4MDQsMHgwMiwweDQ5LDB4MGMsMHg5MiwweDA3LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgzMywweDA4LDB4MGMsMHg5MiwweDQxLDB4MDAgfX0sCi0gezE2LCAweGQ4NDAsIDAsIHsweDgwLDB4Y2MsMHgwMCwweDAwLDB4MDAsMHgwYywweDAwLDB4NDMsMHgyOCwweDgwLDB4YzIsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkODUwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MTAsMHg1MCwweDgwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDg2MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4ZjAsMHgwMCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZDAsMHg4MCwweDgwLDB4MDAgfX0sCi0gezE2LCAweGQ4NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHg5MCwweDgwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHg5MCwweDgwIH19LAotIHsxNiwgMHhkODgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDg5MCwgMCwgezB4M2MsMHgzYywweDEwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4YTAsMHg4MCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ4YTAsIDAsIHsweDAwLDB4MDAsMHg0MCwweDEwLDB4OTAsMHg4MCwweGEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDEwLDB4OTAsMHg4MCwweGEwIH19LAotIHsxNiwgMHhkOGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgyMCwweDgwLDB4MTAsMHg5MCwweGEwLDB4YTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHg4ZiB9fSwKLSB7MTYsIDB4ZDhjMCwgMCwgezB4MGYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyYywweGMyLDB4ZTQsMHg4MSwweDgwLDB4M2YgfX0sCi0gezE2LCAweGQ4ZDAsIDAsIHsweGQ5LDB4YmYsMHhkOSwweDk4LDB4NzEsMHg5ZCwweDQyLDB4ODAsMHgwMCwweDI2LDB4N2YsMHhlNiwweDcyLDB4YWIsMHg3YywweDNhIH19LAotIHsxNiwgMHhkOGUwLCAwLCB7MHg0MCwweDAwLDB4MTksMHg4MCwweDI2LDB4NDgsMHhkZCwweDNjLDB4OTEsMHhjMCwweDI2LDB4NDAsMHgyNiwweDQwLDB4MzgsMHgzMSB9fSwKLSB7MTYsIDB4ZDhmMCwgMCwgezB4ZGIsMHg2MSwweGMwLDB4MTksMHg5OSwweGJmLDB4YzksMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5MDAsIDAsIHsweDAwLDB4MDAsMHgxMCwweDgwLDB4MTAsMHgxNCwweDgwLDB4MDYsMHg4NCwweDk3LDB4OTYsMHg4NiwweDk2LDB4MDYsMHg5MCwweDAwIH19LAotIHsxNiwgMHhkOTEwLCAwLCB7MHgzZiwweGExLDB4MjgsMHgwMSwweDAyLDB4OTAsMHgxMiwweDAwLDB4ODAsMHgxNywweDg4LDB4MTYsMHg5ZSwweDkwLDB4OTAsMHgwNCB9fSwKLSB7MTYsIDB4ZDkyMCwgMCwgezB4MTAsMHgwMCwweDM2LDB4YmUsMHhiZSwweDllLDB4ODYsMHgxNiwweDEyLDB4ODQsMHg4MCwweDEzLDB4YmUsMHg5NywweGFlLDB4ODAgfX0sCi0gezE2LCAweGQ5MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDgyIH19LAotIHsxNiwgMHhkOTQwLCAwLCB7MHg4MSwweDg0LDB4MjEsMHg0MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YTEsMHgzOCwweDAxLDB4NzgsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDk1MCwgMCwgezB4MDgsMHhiOCwweDIxLDB4NzIsMHg2OCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg5OCwweDQ0LDB4ODgsMHg2OCwweDgwLDB4MDAgfX0sCi0gezE2LCAweGQ5NjAsIDAsIHsweDAwLDB4MDAsMHgwOCwweGI4LDB4MDEsMHg3OCwweDAxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOTcwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmNywweGFmLDB4ZmYsMHhjMCB9fSwKLSB7MTYsIDB4ZDk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYgfX0sCi0gezE2LCAweGQ5OTAsIDAsIHsweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhiZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4ZDliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYgfX0sCi0gezE2LCAweGQ5YzAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmIH19LAotIHsxNiwgMHhkOWQwLCAwLCB7MHgyZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDllMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweDdmLDB4YzAgfX0sCi0gezE2LCAweGQ5ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmIH19LAotIHsxNiwgMHhkYTAwLCAwLCB7MHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHg3ZiwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfX0sCi0gezE2LCAweGRhMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhiZiwweGJmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZGYsMHhiZiwweGRmIH19LAotIHsxNiwgMHhkYTMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhlZiwweGZmLDB4ZmYsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhkZiB9fSwKLSB7MTYsIDB4ZGE0MCwgMCwgezB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRhNTAsIDAsIHsweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweDNlLDB4YWYsMHhmZiwweGMwIH19LAotIHsxNiwgMHhkYTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDFmLDB4ZmYsMHhkZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZTcsMHhmZSB9fSwKLSB7MTYsIDB4ZGE3MCwgMCwgezB4ZWYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZGYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRhODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH19LAotIHsxNiwgMHhkYTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGY3LDB4ZmYsMHhmZiB9fSwKLSB7MTYsIDB4ZGFhMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJmLDB4ZmYsMHhmZiwweGRmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZjcgfX0sCi0gezE2LCAweGRhYjAsIDAsIHsweGRmLDB4ZjcsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYWMwLCAwLCB7MHgwMCwweDAwLDB4MDIsMHhjNCwweDAwLDB4YjEsMHhjMywweDJjLDB4NTAsMHgwOSwweDE0LDB4ODIsMHhjNCwweDMwLDB4OTEsMHhjNyB9fSwKLSB7MTYsIDB4ZGFkMCwgMCwgezB4MjQsMHg2MCwweDA4LDB4MWMsMHg4MiwweDA3LDB4MzQsMHg5MSwweDRjLDB4MDQsMHg0MywweDBhLDB4MTAsMHhjMiwweDg0LDB4MDQgfX0sCi0gezE2LCAweGRhZTAsIDAsIHsweDkxLDB4ODQsMHgyNCwweDUyLDB4MGIsMHgxOCwweDAyLDB4YzQsMHgyNCwweGIxLDB4YzMsMHgyYywweDQwLDB4MGEsMHgxMCwweDgwIH19LAotIHsxNiwgMHhkYWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHgwMiwweDAxLDB4YzQsMHg4MCB9fSwKLSB7MTYsIDB4ZGIwMCwgMCwgezB4NjAsMHgyMCwweDFjLDB4MDgsMHg0NCwweDIyLDB4MDEsMHhjMCwweDg0LDB4NTAsMHgwMSwweDljLDB4MDgsMHgwNywweDBhLDB4MDEgfX0sCi0gezE2LCAweGRiMTAsIDAsIHsweGMwLDB4ODQsMHg3MiwweDIwLDB4MWMsMHhjOCwweDA0LDB4MTIsMHgxMSwweDQ0LDB4ODAsMHg0MSwweDAxLDB4MWMsMHg4MCwweDA3IH19LAotIHsxNiwgMHhkYjIwLCAwLCB7MHgwOCwweDExLDB4YzQsMHgwMCwweDcwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4ODYsMHgyYywweDIxLDB4NGEsMHgwYywweDUyLDB4MDIsMHgxYywweDgwLDB4MDQsMHgyMCwweDIxLDB4Y2EgfX0sCi0gezE2LCAweGRiNDAsIDAsIHsweDEwLDB4NjIsMHgwMiwweDFjLDB4ODEsMHg0NywweDA0LDB4MjEsMHhjMywweDIwLDB4NTEsMHgwMSwweDFjLDB4ODAsMHgwNCwweDJjIH19LAotIHsxNiwgMHhkYjUwLCAwLCB7MHgwMSwweGNiLDB4MDQsMHg1MiwweDAzLDB4MTQsMHg0MCwweGM3LDB4MjAsMHgzMSwweGM4LDB4MGMsMHg1MCwweDIyLDB4MTAsMHg4MCB9fSwKLSB7MTYsIDB4ZGI2MCwgMCwgezB4MDEsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA2LDB4MjAsMHgwMSwweDg5LDB4MDAgfX0sCi0gezE2LCAweGRiNzAsIDAsIHsweDUyLDB4MDAsMHgxNCwweDgwLDB4MDQsMHgyOCwweDAxLDB4NDUsMHgwNCwweDYyLDB4MDAsMHgxMCwweDgwLDB4NDYsMHgzMCwweDExIH19LAotIHsxNiwgMHhkYjgwLCAwLCB7MHgwZCwweDAwLDB4NDIsMHgwMSwweDE0LDB4YzAsMHg0NCwweDAwLDB4MTEsMHgwNSwweDAwLDB4NTAsMHgwMCwweDFjLDB4MDAsMHg0NCB9fSwKLSB7MTYsIDB4ZGI5MCwgMCwgezB4MjgsMHgwMSwweDQ5LDB4MDAsMHg3MCwweDAwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRiYTAsIDAsIHsweDAwLDB4MDAsMHgwOCwweGMwLDB4MDIsMHgzMCwweDBjLDB4OGMsMHgzMCwweDIyLDB4MDgsMHg4OCwweGMyLDB4MjYsMHgwMCwweDA4IH19LAotIHsxNiwgMHhkYmIwLCAwLCB7MHg4MCwweDIwLDB4MjIsMHgwYywweDg4LDB4ODEsMHgwMiwweDEwLDB4YzQsMHg4MCwweDEwLDB4MjIsMHgwYywweDA4LDB4NDAsMHgwMiB9fSwKLSB7MTYsIDB4ZGJjMCwgMCwgezB4MTAsMHg0OCwweDg4LDB4MDEsMHgyMywweDA0LDB4YzgsMHg0MiwweDAyLDB4MTAsMHg0NiwweDhjLDB4MTIsMHgyMiwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRiZDAsIDAsIHsweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHhjOCwweDIwIH19LAotIHsxNiwgMHhkYmUwLCAwLCB7MHgxMSwweDA5LDB4MDAsMHg4MCwweDQxLDB4MTAsMHg5MCwweDA4LDB4MjQsMHgzMCwweDA4LDB4MDQsMHg0MiwweDQxLDB4MDAsMHg5MCB9fSwKLSB7MTYsIDB4ZGJmMCwgMCwgezB4YzQsMHgyMCwweDAwLDB4MDgsMHgwNCwweDQyLDB4MDAsMHgxMCwweDgwLDB4NGMsMHgyMCwweDIzLDB4MDksMHgwNCwweGMyLDB4NDMgfX0sCi0gezE2LCAweGRjMDAsIDAsIHsweDMwLDB4ODAsMHg0MCwweDIwLDB4MTEsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYzEwLCAwLCB7MHgwOCwweDAwLDB4MDgsMHg4MSwweDAyLDB4MjAsMHhjOSwweDhjLDB4MTIsMHgyMCwweDA0LDB4NDgsMHg0MSwweDIyLDB4MDAsMHgwOSB9fSwKLSB7MTYsIDB4ZGMyMCwgMCwgezB4ODgsMHgzMCwweDIwLDB4MGMsMHg4OCwweDAzLDB4MGUsMHgwMCwweDQ5LDB4OGMsMHgxMCwweDIyLDB4MGMsMHg4OCwweDQwLDB4MmUgfX0sCi0gezE2LCAweGRjMzAsIDAsIHsweDAwLDB4YzksMHg4NCwweDEzLDB4MjEsMHgwNCwweGM4LDB4YzMsMHgyMiwweDAwLDB4Y2IsMHg4YywweDMyLDB4MjIsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYzQwLCAwLCB7MHgwNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4MDEsMHgwMiwweDAwLDB4NGIsMHg4MCB9fSwKLSB7MTYsIDB4ZGM1MCwgMCwgezB4MzIsMHgyMSwweDA4LDB4ODgsMHg0MSwweDAyLDB4MTAsMHgwZiwweDgwLDB4MTAsMHgyMSwweDhjLDB4MDgsMHg0MSwweDAyLDB4MDAgfX0sCi0gezE2LCAweGRjNjAsIDAsIHsweDg3LDB4ODQsMHgxMCwweDIwLDB4MDQsMHg4OCwweDAwLDB4MDIsMHgwMCwweDQ3LDB4ODAsMHgxMCwweDIxLDB4MGMsMHg4OCwweDQxIH19LAotIHsxNiwgMHhkYzcwLCAwLCB7MHgxNiwweDEwLDB4NDYsMHg4MCwweDMwLDB4MjAsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGM4MCwgMCwgezB4MDAsMHgwMCwweDBhLDB4YzQsMHgyMiwweGExLDB4MDgsMHhhNCwweDcyLDB4MmEsMHgxNCwweDBhLDB4ODUsMHgwMiwweDgxLDB4ODQgfX0sCi0gezE2LCAweGRjOTAsIDAsIHsweGEwLDB4NDIsMHgyOCwweDFjLDB4MGEsMHhjNSwweDAyLDB4OTEsMHg0MCwweGI4LDB4NzMsMHgyOSwweDEwLDB4Y2EsMHhjNCwweDAyIH19LAotIHsxNiwgMHhkY2EwLCAwLCB7MHhhMSwweDgwLDB4YTQsMHg0MiwweDJhLDB4MTQsMHhjYSwweDg1LDB4MjIsMHg5MSwweDgwLDB4YTgsMHg3MCwweDJhLDB4MTgsMHgwMiB9fSwKLSB7MTYsIDB4ZGNiMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDA0LDB4MWUsMHgwMSwweGM4LDB4ODAgfX0sCi0gezE2LCAweGRjYzAsIDAsIHsweDQzLDB4MjAsMHgxOCwweDA4LDB4NDUsMHgzZSwweDAxLDB4MGMsMHg4MCwweDYxLDB4MjAsMHg5YywweDQ4LDB4MDYsMHgxMiwweDgxIH19LAotIHsxNiwgMHhkY2QwLCAwLCB7MHhjMCwweDgwLDB4NzMsMHgwMCwweDEwLDB4ODgsMHgwNiwweDAyLDB4MDEsMHhjOCwweDAwLDB4NDIsMHgyMCwweDEwLDB4YzgsMHgwNyB9fSwKLSB7MTYsIDB4ZGNlMCwgMCwgezB4MDIsMHgxMSwweGNkLDB4ODAsMHg1MSwweDIwLDB4MTQsMHg4MiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRjZjAsIDAsIHsweDA4LDB4MDAsMHgwMCwweGM0LDB4MjQsMHgyMSwweGM4LDB4MGMsMHg0MiwweDAxLDB4MTQsMHgwMCwweDAwLDB4MjgsMHgxMCwweDRjIH19LAotIHsxNiwgMHhkZDAwLCAwLCB7MHgwOCwweDUyLDB4MDIsMHgxNCwweDgwLDB4NDUsMHgyNCwweDI5LDB4NDAsMHgwNCwweDcyLDB4MDAsMHgxMCwweGMwLDB4MDUsMHgyNCB9fSwKLSB7MTYsIDB4ZGQxMCwgMCwgezB4MTEsMHg0NCwweDA4LDB4NDMsMHgwMSwweDE0LDB4YzAsMHg0NywweDI0LDB4MjAsMHg0OCwweDA4LDB4NzIsMHgwMiwweDEwLDB4MDAgfX0sCi0gezE2LCAweGRkMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4MDAsMHgwNywweDEwLDB4MTEsMHgwNiwweDAwIH19LAotIHsxNiwgMHhkZDMwLCAwLCB7MHg3MiwweDAwLDB4MTgsMHhkMCwweDQ2LDB4MjAsMHgwMSwweDRkLDB4MDAsMHg3MSwweDQwLDB4MTAsMHg1MCwweDA3LDB4MzAsMHgxMSB9fSwKLSB7MTYsIDB4ZGQ0MCwgMCwgezB4YzMsMHgwMCwweDcxLDB4NDEsMHgxMCwweGIwLDB4MDUsMHgyYywweDAxLDB4NDksMHgwMCwweDQzLDB4MDAsMHgxYywweDUwLDB4NDUgfX0sCi0gezE2LCAweGRkNTAsIDAsIHsweDMwLDB4MDEsMHg4YywweDAwLDB4NjEsMHg0MCwweDE4LDB4NDIsMHgwNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZDYwLCAwLCB7MHgwMCwweDAwLDB4MzAsMHhjNSwweDAwLDB4MjEsMHhjMCwweDBjLDB4NDAsMHgwMSwweDE0LDB4MTIsMHg0NCwweDA0LDB4MzEsMHg4NCB9fSwKLSB7MTYsIDB4ZGQ3MCwgMCwgezB4MjQsMHg0MCwweDgwLDB4MTQsMHhhMSwweGM3LDB4MDAsMHgwMSwweDQwLDB4MDgsMHg0MCwweDAxLDB4MTQsMHgyMCwweDA1LDB4MjAgfX0sCi0gezE2LCAweGRkODAsIDAsIHsweDExLDB4YzAsMHgwMiwweDYwLDB4ODIsMHgxOCwweDAwLDB4ODcsMHgyNCwweDExLDB4NDAsMHgwOCwweDQwLDB4NDIsMHgxMCwweDAyIH19LAotIHsxNiwgMHhkZDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwYywweDgwLDB4YzQsMHgyNCB9fSwKLSB7MTYsIDB4ZGRhMCwgMCwgezB4MzEsMHg0OCwweDBjLDB4MDAsMHgwMSwweDA4LDB4YzEsMHg0MSwweDAwLDB4MDAsMHg0OSwweDAwLDB4NDIsMHgwMywweDA4LDB4MTAgfX0sCi0gezE2LCAweGRkYjAsIDAsIHsweDgwLDB4MjAsMHgyMSwweDA5LDB4MGMsMHgwMiwweDAyLDB4MTgsMHg4MCwweGMxLDB4MjQsMHgzMCwweDA4LDB4MGMsMHg0MiwweDAxIH19LAotIHsxNiwgMHhkZGMwLCAwLCB7MHgxMCwweDgwLDB4ODMsMHgyMCwweDExLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGRkMCwgMCwgezB4MDAsMHgwMCwweDEwLDB4YzEsMHgwNCwweDIwLDB4NDgsMHgwYywweDEyLDB4NDIsMHgwNCwweDAwLDB4ODMsMHgwMCwweDMxLDB4NDggfX0sCi0gezE2LCAweGRkZTAsIDAsIHsweDAwLDB4MDIsMHg0MSwweDA0LDB4YTAsMHgwNywweDBjLDB4MjAsMHg0MCwweDAwLDB4MTIsMHhjMiwweDBjLDB4ODAsMHhjMSwweDIwIH19LAotIHsxNiwgMHhkZGYwLCAwLCB7MHgyMCwweGM4LDB4MDAsMHgxMiwweGMxLDB4MGMsMHhiMCwweDQxLDB4MjAsMHgwMCwweDQ5LDB4MDgsMHgwMiwweDQyLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg4MCwweDAxLDB4MDAsMHgxMCwweDgxLDB4MDAgfX0sCi0gezE2LCAweGRlMTAsIDAsIHsweDMwLDB4NDAsMHgwOCwweDIwLDB4MDMsMHgwMCwweDEwLDB4YzEsMHgyMCwweDAyLDB4MDAsMHgwNCwweDgwLDB4NDAsMHgzMCwweDkwIH19LAotIHsxNiwgMHhkZTIwLCAwLCB7MHgwMSwweDE0LDB4MDIsMHg0MCwweDA0LDB4ODAsMHg0MCwweDIwLDB4MDAsMHgwOSwweDA0LDB4MzIsMHgwMSwweDA4LDB4YTAsMHgwMyB9fSwKLSB7MTYsIDB4ZGUzMCwgMCwgezB4MDQsMHgxMCwweDA4LDB4MDAsMHgyMiwweDQwLDB4MDAsMHgwMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRlNDAsIDAsIHsweDAwLDB4MDAsMHgzMCwweDAwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHhmMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZTUwLCAwLCB7MHgwMCwweDEwLDB4ODAsMHgwMCwweGYwLDB4MDAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweGYwLDB4MTAsMHhhMCB9fSwKLSB7MTYsIDB4ZGU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4ZjAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHg4MCwweDAwLDB4Y2MgfX0sCi0gezE2LCAweGRlNzAsIDAsIHsweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzYywweDNjLDB4MTAsMHhhMCwweDgwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZTgwLCAwLCB7MHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4YzAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4ODAsMHgwMCB9fSwKLSB7MTYsIDB4ZGU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAgfX0sCi0gezE2LCAweGRlYTAsIDAsIHsweGUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OGMsMHgwOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZWIwLCAwLCB7MHgwMCwweDAwLDB4MDksMHg0ZCwweGIxLDB4ZTksMHgwMCwweDI2LDB4NDAsMHgyYSwweDdmLDB4ZTMsMHhmMiwweDU0LDB4OTgsMHhjMCB9fSwKLSB7MTYsIDB4ZGVjMCwgMCwgezB4M2YsMHhlNiwweDQwLDB4MDAsMHgwMSwweDQyLDB4OTEsMHhkMCwweGMwLDB4MTMsMHhlNSwweDg3LDB4NjMsMHg4MywweGI4LDB4Y2QgfX0sCi0gezE2LCAweGRlZDAsIDAsIHsweGY5LDB4MDAsMHgyNiwweDdmLDB4MDAsMHgwMCwweDM1LDB4MmUsMHhkNSwweDAzLDB4NDAsMHgzZiwweGQ5LDB4YmYsMHhiMSwweDgwIH19LAotIHsxNiwgMHhkZWUwLCAwLCB7MHgwMSwweGYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4MDIsMHgxNiwweDE0LDB4MDAsMHgxYyB9fSwKLSB7MTYsIDB4ZGVmMCwgMCwgezB4YTgsMHgzZiwweDg4LDB4MTYsMHgwMCwweDgwLDB4ODQsMHg4MCwweDM3LDB4OWUsMHhiYSwweGEwLDB4NTAsMHgxMCwweDAyLDB4MTIgfX0sCi0gezE2LCAweGRmMDAsIDAsIHsweDAwLDB4MTcsMHg5NiwweDk3LDB4MjYsMHg1MCwweDEwLDB4MTAsMHg4MiwweDgwLDB4MWUsMHg4MCwweGRlLDB4YmUsMHg5NCwweDE0IH19LAotIHsxNiwgMHhkZjEwLCAwLCB7MHgwMiwweDEwLDB4ODAsMHgxNywweGJlLDB4ODEsMHg5NCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhhOCwweDQ0LDB4OTQsMHgyOCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDggfX0sCi0gezE2LCAweGRmMzAsIDAsIHsweDk0LDB4MjEsMHg0NCwweDUxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDg0LDB4NDIsMHg0MSwweDAxLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZjQwLCAwLCB7MHgwMCwweDA4LDB4YTEsMHg3MiwweDIzLDB4NDEsMHg0MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YjgsMHgwMSwweDc4LDB4MzIsMHg0MCB9fSwKLSB7MTYsIDB4ZGY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfX0sCi0gezE2LCAweGRmNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4ZjcsMHhmZSwweGQ3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhkNywweGRmIH19LAotIHsxNiwgMHhkZjcwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweDdmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzcsMHg3ZiB9fSwKLSB7MTYsIDB4ZGY4MCwgMCwgezB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRmOTAsIDAsIHsweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZSwweGZmLDB4ZGUsMHg3NywweGMwIH19LAotIHsxNiwgMHhkZmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDFmLDB4ZWYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiB9fSwKLSB7MTYsIDB4ZGZiMCwgMCwgezB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRmYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH19LAotIHsxNiwgMHhkZmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgxZiwweGNmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhiZiB9fSwKLSB7MTYsIDB4ZGZlMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGJmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYgfX0sCi0gezE2LCAweGRmZjAsIDAsIHsweGZmLDB4YmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMDAwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCB9fSwKLSB7MTYsIDB4ZTAxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGZmLDB4MWYgfX0sCi0gezE2LCAweGUwMjAsIDAsIHsweDdmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJmLDB4ZGYsMHhmZiwweGNmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4ZTA0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhiZiwweGFmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYgfX0sCi0gezE2LCAweGUwNTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZSwweGRlLDB4N2YsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmIH19LAotIHsxNiwgMHhlMDYwLCAwLCB7MHhmZiwweGY3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTA3MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4N2YsMHhmZiwweGZmLDB4YzAgfX0sCi0gezE2LCAweGUwODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZSwweGJlIH19LAotIHsxNiwgMHhlMDkwLCAwLCB7MHg3ZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZSwweGZmLDB4ZDcsMHg3ZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwZTAsIDAsIHsweDMwLDB4MDAsMHgyMCwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4NDMsMHg4ZSwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlM2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlM2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTczMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTc2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTc5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlN2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTdjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlN2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTg1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZThiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZThlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTkxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTk0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTlkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlY2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlY2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDIwLDB4MDEsMHgwMiwweDAyLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg0MywweDgwIH19LAotIHsxNiwgMHhlZjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjAwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjA5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmM2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmM2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjcyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjc1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmN2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmN2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjgxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjhhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjhkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjk5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjljMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmY2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmY2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkMzAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwMCwweDVmLDB4YTcsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAzIH19LAotIHsxNiwgMHhmZDQwLCAwLCB7MHgzMCwweDAwLDB4NDAsMHgwZSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4ODAsMHgwMSB9fSwKLSB7MTYsIDB4ZmQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDUsMHgzMCwweDAwLDB4YTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDEgfX0sCi0gezE2LCAweGZkOTAsIDAsIHsweDAwLDB4MDAsMHg2YiwweDk3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHs0LCAweGZkYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHswICwgMHgwMDAwLCAxLCB7MH19Ci19OwotLy8gVkVSU0lPTj0gMS4wLjAuMTkxCi0vLyBEQVRFPSAyMDAyb2N0MjgKLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGdfSGV4U3BkaWZGdzYyW10gPSB7Ci0gIHszLDB4MDAwMCwwLHsweDAyLDB4NDUsMHhmOX19LAotIHsgMywweDAwMDMsMCx7MHgwMiwweDBmLDB4ZmR9fSwKLSB7IDMsMHgwMDBiLDAsezB4MDIsMHg0ZCwweDlifX0sCi0geyAzLDB4MDAxMywwLHsweDAyLDB4MTcsMHhmZH19LAotIHsgMywweDAwMWIsMCx7MHgwMiwweDRkLDB4OWV9fSwKLSB7IDMsMHgwMDIzLDAsezB4MDIsMHg0ZCwweDc1fX0sCi0geyAzLDB4MDAyYiwwLHsweDAyLDB4NDYsMHhmN319LAotIHsgMywweDAwMzMsMCx7MHgwMiwweDRkLDB4NmN9fSwKLSB7IDMsMHgwMDNiLDAsezB4MDIsMHg0ZCwweDdjfX0sCi0geyAzLDB4MDA0MywwLHsweDAyLDB4NDksMHgwMH19LAotIHsgMywweDAwNGIsMCx7MHgwMiwweDRkLDB4OGZ9fSwKLSB7IDMsMHgwMDUzLDAsezB4MDIsMHg0ZCwweDgzfX0sCi0geyAzLDB4MDA1YiwwLHsweDAyLDB4NGQsMHg4OX19LAotIHsgMywweDAwNjMsMCx7MHgwMiwweDRkLDB4OTN9fSwKLSB7MTYsMHgwNTAwLDAsezB4MTIsMHgwMSwweDEwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHg0MCwweDZhLDB4MDgsMHgxMSwweDAxLDB4MDAsMHgwMSwweDAxLDB4MDJ9fSwKLSB7MTYsMHgwNTEwLDAsezB4MDAsMHgwMSwweDA5LDB4MDIsMHhhYywweDAxLDB4MDMsMHgwMSwweDAwLDB4ODAsMHgzMiwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwNTIwLDAsezB4MDEsMHgwMSwweDAwLDB4MDAsMHgwYSwweDI0LDB4MDEsMHgwMCwweDAxLDB4NTYsMHgwMCwweDAyLDB4MDEsMHgwMiwweDBjLDB4MjR9fSwKLSB7MTYsMHgwNTMwLDAsezB4MDIsMHgwMSwweDAxLDB4MDEsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDI0LDB4MDYsMHgwNSwweDAxLDB4MDJ9fSwKLSB7MTYsMHgwNTQwLDAsezB4MDMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOSwweDI0LDB4MDMsMHgwMiwweDA0LDB4MDMsMHgwMCwweDA1LDB4MDB9fSwKLSB7MTYsMHgwNTUwLDAsezB4MGMsMHgyNCwweDAyLDB4MDMsMHgwNSwweDAyLDB4MDAsMHgwNiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHgyNCwweDA2LDB4MDZ9fSwKLSB7MTYsMHgwNTYwLDAsezB4MDMsMHgwMiwweDAwLDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMCwweDAzLDB4MDB9fSwKLSB7MTYsMHgwNTcwLDAsezB4MDAsMHgwOSwweDI0LDB4MDMsMHgwNCwweDAxLDB4MDEsMHgwMCwweDA2LDB4MDAsMHgwOSwweDA0LDB4MDEsMHgwMCwweDAwLDB4MDF9fSwKLSB7MTYsMHgwNTgwLDAsezB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAxLDB4MDEsMHgwMiwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDF9fSwKLSB7MTYsMHgwNTkwLDAsezB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyLDB4MDEsMHgwMiwweDAyLDB4MTAsMHgwMywweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmJ9fSwKLSB7MTYsMHgwNWEwLDAsezB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1LDB4MGEsMHgwNSwweDg0LDB4MDEsMHgwMSwweDAwLDB4OGYsMHgwNywweDI1LDB4MDF9fSwKLSB7MTYsMHgwNWIwLDAsezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSwweDA1LDB4OGYsMHgwMSwweDAzLDB4MDAsMHgwMSwweDA1LDB4MDAsMHgwOSwweDA0LDB4MDF9fSwKLSB7MTYsMHgwNWMwLDAsezB4MDIsMHgwMiwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDEsMHgwMCwweDAxLDB4MDAsMHgxMSwweDI0LDB4MDJ9fSwKLSB7MTYsMHgwNWQwLDAsezB4MDEsMHgwMiwweDAzLDB4MTgsMHgwMywweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDV9fSwKLSB7MTYsMHgwNWUwLDAsezB4MGEsMHgwNSwweDQ2LDB4MDIsMHgwMSwweDAwLDB4OGYsMHgwNywweDI1LDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA5LDB4MDV9fSwKLSB7MTYsMHgwNWYwLDAsezB4OGYsMHgwMSwweDAzLDB4MDAsMHgwMSwweDA1LDB4MDAsMHgwOSwweDA0LDB4MDIsMHgwMCwweDAwLDB4MDEsMHgwMiwweDAwLDB4MDB9fSwKLSB7MTYsMHgwNjAwLDAsezB4MDksMHgwNCwweDAyLDB4MDEsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDB9fSwKLSB7MTYsMHgwNjEwLDAsezB4MGUsMHgyNCwweDAyLDB4MDEsMHgwNiwweDAyLDB4MTAsMHgwMiwweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDA5LDB4MDV9fSwKLSB7MTYsMHgwNjIwLDAsezB4OGMsMHgwNSwweDRjLDB4MDIsMHgwMSwweDAwLDB4MDAsMHgwNywweDI1LDB4MDEsMHgwMCwweDAyLDB4MDAsMHgwMCwweDA5LDB4MDR9fSwKLSB7MTYsMHgwNjMwLDAsezB4MDIsMHgwMiwweDAxLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDBlLDB4MjR9fSwKLSB7MTYsMHgwNjQwLDAsezB4MDIsMHgwMSwweDA2LDB4MDMsMHgxOCwweDAyLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDksMHgwNSwweDhjLDB4MDV9fSwKLSB7MTYsMHgwNjUwLDAsezB4NzIsMHgwMywweDAxLDB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAyLDB4MDN9fSwKLSB7MTYsMHgwNjYwLDAsezB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyLDB4MDF9fSwKLSB7MTYsMHgwNjcwLDAsezB4MDIsMHgwMiwweDEwLDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1LDB4OGN9fSwKLSB7MTYsMHgwNjgwLDAsezB4MDUsMHg4NCwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0LDB4MDJ9fSwKLSB7MTYsMHgwNjkwLDAsezB4MDQsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgxMSwweDI0LDB4MDJ9fSwKLSB7MTYsMHgwNmEwLDAsezB4MDEsMHgwMiwweDAzLDB4MTgsMHgwMywweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDV9fSwKLSB7MTYsMHgwNmIwLDAsezB4OGMsMHgwNSwweDQ2LDB4MDIsMHgwMSwweDAwLDB4MDAsMHgwNywweDI1LDB4MDEsMHgwMCwweDAyLDB4MDAsMHgwMCwweDA0LDB4MDN9fSwKLSB7MTYsMHgwNmMwLDAsezB4MDksMHgwNCwweDE4LDB4MDMsMHg0NSwweDAwLDB4NmQsMHgwMCwweDYxLDB4MDAsMHg2NywweDAwLDB4NjksMHgwMCwweDYzLDB4MDB9fSwKLSB7MTYsMHgwNmQwLDAsezB4MjAsMHgwMCwweDQ3LDB4MDAsMHg2ZCwweDAwLDB4NjIsMHgwMCwweDQ4LDB4MDAsMHgyMiwweDAzLDB4NDUsMHgwMCwweDZkLDB4MDB9fSwKLSB7MTYsMHgwNmUwLDAsezB4NjEsMHgwMCwweDY3LDB4MDAsMHg2OSwweDAwLDB4NjMsMHgwMCwweDIwLDB4MDAsMHg0NSwweDAwLDB4NGQsMHgwMCwweDQ5LDB4MDB9fSwKLSB7MTYsMHgwNmYwLDAsezB4MjAsMHgwMCwweDM2LDB4MDAsMHg3YywweDAwLDB4MzIsMHgwMCwweDIwLDB4MDAsMHg2ZCwweDAwLDB4MmEsMHgwMywweDQzLDB4MDB9fSwKLSB7MTYsMHgwNzAwLDAsezB4NmYsMHgwMCwweDZlLDB4MDAsMHg2NiwweDAwLDB4NjksMHgwMCwweDY3LDB4MDAsMHg3NSwweDAwLDB4NzIsMHgwMCwweDYxLDB4MDB9fSwKLSB7MTYsMHgwNzEwLDAsezB4NzQsMHgwMCwweDY5LDB4MDAsMHg2ZiwweDAwLDB4NmUsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDB9fSwKLSB7MTYsMHgwNzIwLDAsezB4NjksMHgwMCwweDZlLDB4MDAsMHg2NywweDAwLDB4MjIsMHgwMywweDQ5LDB4MDAsMHg2ZSwweDAwLDB4NzQsMHgwMCwweDY1LDB4MDB9fSwKLSB7MTYsMHgwNzMwLDAsezB4NzIsMHgwMCwweDY2LDB4MDAsMHg2MSwweDAwLDB4NjMsMHgwMCwweDY1LDB4MDAsMHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDB9fSwKLSB7MTAsMHgwNzQwLDAsezB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwNzRhLDAsezB4OTAsMHg3NiwweDlhLDB4NzQsMHgwMiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4OTEsMHhmMCwweGEzLDB4ZjAsMHg5MCwweDc2LDB4OTB9fSwKLSB7MTYsMHgwNzVhLDAsezB4ZjAsMHg5MCwweDc2LDB4OTMsMHhmMCwweDkwLDB4NzYsMHg5NiwweDc0LDB4MDMsMHhmMCwweDkwLDB4ODAsMHgwMywweGYwLDB4ZTR9fSwKLSB7MTYsMHgwNzZhLDAsezB4OTAsMHg3NiwweDk3LDB4ZjAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDkwLDB4NzYsMHg5NCwweDA0LDB4ZjAsMHg5MCwweDgwLDB4MDB9fSwKLSB7MTYsMHgwNzdhLDAsezB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4ZSwweGYwLDB4OTAsMHg3NiwweDFhLDB4ZjAsMHg5MCwweDc2LDB4OTUsMHgwNCwweGYwLDB4YzJ9fSwKLSB7MTYsMHgwNzhhLDAsezB4MmUsMHg5MCwweDdmLDB4OWIsMHhlMCwweGZmLDB4NTQsMHgxMCwweGZmLDB4NzAsMHgwMiwweGMyLDB4M2YsMHg5MCwweDdmLDB4OWJ9fSwKLSB7MTYsMHgwNzlhLDAsezB4ZTAsMHhmZiwweDU0LDB4MTAsMHhmZSwweGZmLDB4YmUsMHgxMCwweDAyLDB4ZDIsMHgzZiwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZmZ9fSwKLSB7MTYsMHgwN2FhLDAsezB4NTQsMHgyMCwweGZmLDB4NzAsMHgwMiwweGMyLDB4M2UsMHg5MCwweDdmLDB4OWIsMHhlMCwweGZmLDB4NTQsMHgyMCwweGZlLDB4ZmZ9fSwKLSB7MTYsMHgwN2JhLDAsezB4YmUsMHgyMCwweDAyLDB4ZDIsMHgzZSwweDMwLDB4M2YsMHgwOSwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZSwweGYwLDB4ODB9fSwKLSB7MTYsMHgwN2NhLDAsezB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjB9fSwKLSB7MTYsMHgwN2RhLDAsezB4MzAsMHgzZSwweDA5LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk1LDB4ZTB9fSwKLSB7MTYsMHgwN2VhLDAsezB4NTQsMHhmYiwweGYwLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweGEyLDB4M2UsMHg5MiwweDQwLDB4YTJ9fSwKLSB7IDMsMHgwN2ZhLDAsezB4M2YsMHg5MiwweDQxfX0sCi0geyAxLDB4MDdmZCwwLHsweDIyfX0sCi0geyAyLDB4MDdmZSwwLHsweGQzLDB4MjJ9fSwKLSB7MTYsMHgwODAwLDAsezB4ZTQsMHg5MCwweDc2LDB4MzEsMHhmMCwweDkwLDB4NzYsMHgzMSwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGZ9fSwKLSB7MTYsMHgwODEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHhmZCwweGVlLDB4NmR9fSwKLSB7MTYsMHgwODIwLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDBiLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgzMSwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9fSwKLSB7MTYsMHgwODMwLDAsezB4ZWYsMHhiNCwweDBiLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MDN9fSwKLSB7MTYsMHgwODQwLDAsezB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4NzYsMHgzMywweGYwLDB4MjR9fSwKLSB7MTYsMHgwODUwLDAsezB4ZjAsMHg2MCwweDBhLDB4MjQsMHgwZSwweDYwLDB4MDIsMHg4MSwweDg3LDB4MTIsMHg0YiwweDNlLDB4MjIsMHg5MCwweDdmLDB4ZWR9fSwKLSB7MTYsMHgwODYwLDAsezB4ZTAsMHg2NCwweDA1LDB4NzAsMHg1MSwweDkwLDB4NzYsMHgxOCwweDc0LDB4MDUsMHhmMCwweDkwLDB4NzYsMHgzNywweDc0LDB4MDF9fSwKLSB7MTYsMHgwODcwLDAsezB4ZjAsMHg5MCwweDc2LDB4MzksMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjEsMHhmMCwweGU0LDB4OTAsMHg3NiwweDIwLDB4ZjB9fSwKLSB7MTYsMHgwODgwLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwLDB4MmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9fSwKLSB7MTYsMHgwODkwLDAsezB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmR9fSwKLSB7MTYsMHgwOGEwLDAsezB4ZWUsMHg2ZCwweDYwLDB4MTIsMHg5MCwweDc2LDB4MjEsMHhlMCwweGZlLDB4ZWYsMHhjMywweDllLDB4NTAsMHgwOCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgwOGIwLDAsezB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHg2NCwweDA2LDB4NzAsMHg1MiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgwOGMwLDAsezB4MTgsMHg3NCwweDA2LDB4ZjAsMHg5MCwweDc2LDB4MzcsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4MzksMHg3NCwweDBhLDB4ZjB9fSwKLSB7MTYsMHgwOGQwLDAsezB4OTAsMHg3NiwweDIxLDB4ZjAsMHg5MCwweDc2LDB4MjAsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NjB9fSwKLSB7MTYsMHgwOGUwLDAsezB4MmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgwOGYwLDAsezB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmQsMHhlZSwweDZkLDB4NjAsMHgxMiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgwOTAwLDAsezB4MjEsMHhlMCwweGZlLDB4ZWYsMHhjMywweDllLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDF9fSwKLSB7MTYsMHgwOTEwLDAsezB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9fSwKLSB7MTYsMHgwOTIwLDAsezB4ZjUsMHg4MywweGUwLDB4OTAsMHg3MiwweDI5LDB4ZjAsMHhlNCwweDkwLDB4NzYsMHgzYiwweGYwLDB4OTAsMHg3NiwweDIxLDB4ZTB9fSwKLSB7MTYsMHgwOTMwLDAsezB4ZmUsMHhlZiwweDZlLDB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWJ9fSwKLSB7MTYsMHgwOTQwLDAsezB4ZTAsMHgxNCwweDYwLDB4MTMsMHgxNCwweDcwLDB4MDIsMHgyMSwweGUyLDB4MjQsMHgwMiwweDYwLDB4MDIsMHg4MSwweDdmLDB4OTB9fSwKLSB7MTYsMHgwOTUwLDAsezB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDE0LDB4NzAsMHg3YywweDkwLDB4N2Z9fSwKLSB7MTYsMHgwOTYwLDAsezB4ZWEsMHhlMCwweGY0LDB4NzAsMHg0OCwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2LDB4Mzl9fSwKLSB7MTYsMHgwOTcwLDAsezB4ZTAsMHhmZSwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmQsMHhjMywweDllLDB4NTAsMHgyYiwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmV9fSwKLSB7MTYsMHgwOTgwLDAsezB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZSwweGVkLDB4NzV9fSwKLSB7MTYsMHgwOTkwLDAsezB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWUsMHhmMCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgwOWEwLDAsezB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGM3LDB4OTAsMHg3NiwweDNmLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdlLDB4YzB9fSwKLSB7MTYsMHgwOWIwLDAsezB4ZTAsMHhmZSwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9fSwKLSB7MTYsMHgwOWMwLDAsezB4ZWUsMHhmMCwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTAsMHg3NiwweDNlLDB4NzQsMHgwMSwweGYwLDB4ODAsMHgwNSwweGU0LDB4OTB9fSwKLSB7MTYsMHgwOWQwLDAsezB4NzYsMHgzZSwweGYwLDB4OTAsMHg3NiwweDNmLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9fSwKLSB7MTYsMHgwOWUwLDAsezB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZSwweDcwLDB4MDIsMHg0MSwweGEzLDB4MTQsMHg3MCwweDAyLDB4NjF9fSwKLSB7MTYsMHgwOWYwLDAsezB4M2YsMHgxNCwweDcwLDB4MDIsMHg2MSwweGRiLDB4MjQsMHgwMywweDYwLDB4MDIsMHg4MSwweDc3LDB4OTAsMHg3ZiwweGVhLDB4ZTB9fSwKLSB7MTYsMHgwYTAwLDAsezB4ZjQsMHg3MCwweDZiLDB4OTAsMHg3NiwweDM3LDB4ZTAsMHg5MCwweDc2LDB4MjAsMHhmMCwweDkwLDB4NzYsMHgzOSwweGUwLDB4ZmZ9fSwKLSB7MTYsMHgwYTEwLDAsezB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg1MCwweDRlLDB4OTAsMHg3NiwweDNiLDB4ZTAsMHhmZiwweDA0LDB4ZjB9fSwKLSB7MTYsMHgwYTIwLDAsezB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGF9fSwKLSB7MTYsMHgwYTMwLDAsezB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDNiLDB4ZTB9fSwKLSB7MTYsMHgwYTQwLDAsezB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWV9fSwKLSB7MTYsMHgwYTUwLDAsezB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTB9fSwKLSB7MTYsMHgwYTYwLDAsezB4NzYsMHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4NDAsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2V9fSwKLSB7MTYsMHgwYTcwLDAsezB4YzAsMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODJ9fSwKLSB7MTYsMHgwYTgwLDAsezB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGF9fSwKLSB7MTYsMHgwYTkwLDAsezB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDQxLDB4NzR9fSwKLSB7MTYsMHgwYWEwLDAsezB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDcwLDB4NjYsMHg5MCwweDc2LDB4MzcsMHhlMCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgwYWIwLDAsezB4MjAsMHhmMCwweDkwLDB4NzYsMHgzOSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4YzMsMHg5ZiwweDQwLDB4MDJ9fSwKLSB7MTYsMHgwYWMwLDAsezB4ODEsMHg4ZSwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgwYWQwLDAsezB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgwYWUwLDAsezB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjV9fSwKLSB7MTYsMHgwYWYwLDAsezB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFmLDB4ZjV9fSwKLSB7MTYsMHgwYjAwLDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTJ9fSwKLSB7MTYsMHgwYjEwLDAsezB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWV9fSwKLSB7MTYsMHgwYjIwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzV9fSwKLSB7MTYsMHgwYjMwLDAsezB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDIyLDB4OTB9fSwKLSB7MTYsMHgwYjQwLDAsezB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDY2LDB4OTAsMHg3NiwweDM3LDB4ZTAsMHg5MCwweDc2LDB4MjAsMHhmMCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgwYjUwLDAsezB4MzksMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyLDB4ODEsMHg4ZSwweDkwLDB4NzZ9fSwKLSB7MTYsMHgwYjYwLDAsezB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTB9fSwKLSB7MTYsMHgwYjcwLDAsezB4ZmYsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWZ9fSwKLSB7MTYsMHgwYjgwLDAsezB4ZjAsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2V9fSwKLSB7MTYsMHgwYjkwLDAsezB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9fSwKLSB7MTYsMHgwYmEwLDAsezB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGEyLDB4OTAsMHg3ZSwweGMwLDB4ZTB9fSwKLSB7MTYsMHgwYmIwLDAsezB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgwYmMwLDAsezB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4N2UsMHhjMSwweGUwLDB4ZmYsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjR9fSwKLSB7MTYsMHgwYmQwLDAsezB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjR9fSwKLSB7MTYsMHgwYmUwLDAsezB4NzAsMHg2NiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2LDB4MzksMHhlMCwweGZmLDB4OTB9fSwKLSB7MTYsMHgwYmYwLDAsezB4NzYsMHgyMCwweGUwLDB4ZmUsMHhjMywweDlmLDB4NDAsMHgwMiwweDgxLDB4OGUsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDR9fSwKLSB7MTYsMHgwYzAwLDAsezB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZSwweDc1LDB4ZjB9fSwKLSB7MTYsMHgwYzEwLDAsezB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4M2J9fSwKLSB7MTYsMHgwYzIwLDAsezB4ZTAsMHhmZiwweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmZ9fSwKLSB7MTYsMHgwYzMwLDAsezB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjB9fSwKLSB7MTYsMHgwYzQwLDAsezB4OTAsMHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhMiwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjB9fSwKLSB7MTYsMHgwYzUwLDAsezB4ZTAsMHhmZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWZ9fSwKLSB7MTYsMHgwYzYwLDAsezB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHgwYzcwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTB9fSwKLSB7MTUsMHgwYzgwLDAsezB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyfX0sCi0gezE2LDB4MGM4ZiwwLHsweDQxLDB4NzYsMHg2OCwweDAxLDB4NDEsMHg3NiwweDZhLDB4MDIsMHg0MSwweDc2LDB4NmIsMHgwYSwweGMxLDB4MjAsMHhjMSwweDIxfX0sCi0geyAyLDB4MGM5ZiwwLHsweGMxLDB4MmZ9fSwKLSB7IDQsMHgwY2ExLDAsezB4NDEsMHg3NiwweDIzLDB4MDB9fSwKLSB7MTYsMHgwY2E1LDAsezB4NDEsMHg3MiwweDAxLDB4MDEsMHg0NSwweDcyLDB4MDUsMHgwMCwweDAyLDB4YzksMHgwMCwweDAwLDB4NDUsMHg3MiwweDBhLDB4MDB9fSwKLSB7MTYsMHgwY2I1LDAsezB4MDEsMHgwMiwweDAzLDB4MDQsMHg0ZCwweDcyLDB4MGYsMHhkMSwweDAwLDB4ZDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwY2M1LDAsezB4MjgsMHgyOCwweDA5LDB4MDAsMHg0ZCwweDcyLDB4MWMsMHgwMSwweDAwLDB4MDEsMHgwMiwweDAzLDB4MDQsMHgwNSwweDA2LDB4MDd9fSwKLSB7MTYsMHgwY2Q1LDAsezB4MDgsMHgwOSwweDBhLDB4MGIsMHg0MSwweDcyLDB4MmUsMHgyMiwweDQxLDB4NzIsMHgyZiwweDIzLDB4NDEsMHg3MiwweDMwLDB4MjB9fSwKLSB7MTYsMHgwY2U1LDAsezB4NDEsMHg3MiwweDMxLDB4MjEsMHg2MiwweGQyLDB4NzIsMHgzYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwY2Y1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwZDA1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwZDE1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwZDI1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwZDM1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwZDQ1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwZDU1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwZDY1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgwZDc1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDF9fSwKLSB7MTYsMHgwZDg1LDAsezB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDF9fSwKLSB7MTYsMHgwZDk1LDAsezB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDF9fSwKLSB7MTYsMHgwZGE1LDAsezB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDF9fSwKLSB7MTYsMHgwZGI1LDAsezB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDJ9fSwKLSB7MTYsMHgwZGM1LDAsezB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDJ9fSwKLSB7MTYsMHgwZGQ1LDAsezB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDJ9fSwKLSB7MTYsMHgwZGU1LDAsezB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDJ9fSwKLSB7MTYsMHgwZGY1LDAsezB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDN9fSwKLSB7MTYsMHgwZTA1LDAsezB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDN9fSwKLSB7MTYsMHgwZTE1LDAsezB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDN9fSwKLSB7MTYsMHgwZTI1LDAsezB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDN9fSwKLSB7MTYsMHgwZTM1LDAsezB4MDMsMHgwMywweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDR9fSwKLSB7MTYsMHgwZTQ1LDAsezB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDR9fSwKLSB7MTYsMHgwZTU1LDAsezB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDR9fSwKLSB7MTYsMHgwZTY1LDAsezB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDR9fSwKLSB7MTYsMHgwZTc1LDAsezB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDV9fSwKLSB7MTYsMHgwZTg1LDAsezB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDV9fSwKLSB7MTYsMHgwZTk1LDAsezB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDV9fSwKLSB7MTYsMHgwZWE1LDAsezB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA2LDB4MDZ9fSwKLSB7MTYsMHgwZWI1LDAsezB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDZ9fSwKLSB7MTYsMHgwZWM1LDAsezB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDZ9fSwKLSB7MTYsMHgwZWQ1LDAsezB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDZ9fSwKLSB7MTYsMHgwZWU1LDAsezB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA3LDB4MDcsMHgwNywweDA4LDB4MDh9fSwKLSB7MTYsMHgwZWY1LDAsezB4MDgsMHgwOSwweDA5LDB4MDksMHgwYSwweDBhLDB4MGEsMHgwYiwweDBiLDB4MGIsMHgwYywweDBjLDB4MGMsMHgwZCwweDBkLDB4MGR9fSwKLSB7MTYsMHgwZjA1LDAsezB4MGUsMHgwZSwweDBlLDB4MGYsMHgwZiwweDBmLDB4MTAsMHgxMCwweDEwLDB4MTEsMHgxMSwweDExLDB4MTIsMHgxMiwweDEyLDB4MTN9fSwKLSB7MTYsMHgwZjE1LDAsezB4MTMsMHgxMywweDE0LDB4MTQsMHgxNCwweDE1LDB4MTUsMHgxNSwweDE2LDB4MTYsMHgxNiwweDE3LDB4MTcsMHgxNywweDE4LDB4MTh9fSwKLSB7MTYsMHgwZjI1LDAsezB4MTgsMHgxOSwweDE5LDB4MTksMHgxOSwweDFhLDB4MWEsMHgxYSwweDFhLDB4MWIsMHgxYiwweDFiLDB4MWIsMHgxYywweDFjLDB4MWN9fSwKLSB7MTYsMHgwZjM1LDAsezB4MWMsMHgxZCwweDFkLDB4MWQsMHgxZCwweDFlLDB4MWUsMHgxZSwweDFlLDB4MWYsMHgxZiwweDFmLDB4MWYsMHgyMCwweDIwLDB4MjB9fSwKLSB7MTYsMHgwZjQ1LDAsezB4MjEsMHgyMSwweDIxLDB4MjIsMHgyMiwweDIyLDB4MjMsMHgyMywweDI0LDB4MjQsMHgyNSwweDI1LDB4MjYsMHgyNiwweDI3LDB4Mjd9fSwKLSB7MTYsMHgwZjU1LDAsezB4MjgsMHgyOCwweDI5LDB4MjksMHgyYSwweDJhLDB4MmIsMHgyYiwweDJjLDB4MmMsMHgyZCwweDJkLDB4MmUsMHgyZSwweDJmLDB4MmZ9fSwKLSB7MTYsMHgwZjY1LDAsezB4MzAsMHgzMCwweDMxLDB4MzEsMHgzMiwweDMyLDB4MzMsMHgzMywweDM0LDB4MzQsMHgzNSwweDM1LDB4MzYsMHgzNiwweDM3LDB4Mzd9fSwKLSB7MTYsMHgwZjc1LDAsezB4MzgsMHgzOCwweDM5LDB4MzksMHgzYSwweDNhLDB4M2IsMHgzYywweDNkLDB4M2UsMHgzZiwweDQwLDB4NDEsMHg0MiwweDQzLDB4NDR9fSwKLSB7MTYsMHgwZjg1LDAsezB4NDUsMHg0NiwweDQ3LDB4NDgsMHg0OSwweDQ5LDB4NGEsMHg0YiwweDRiLDB4NGMsMHg0ZCwweDRlLDB4NGYsMHg1MCwweDUxLDB4NTJ9fSwKLSB7MTYsMHgwZjk1LDAsezB4NTMsMHg1NCwweDU1LDB4NTUsMHg1NiwweDU2LDB4NTcsMHg1NywweDU4LDB4NWEsMHg1YiwweDVkLDB4NWUsMHg1ZiwweDYxLDB4NjJ9fSwKLSB7MTYsMHgwZmE1LDAsezB4NjMsMHg2NCwweDY1LDB4NjYsMHg2NywweDY4LDB4NjksMHg2YSwweDZiLDB4NmMsMHg2ZCwweDZmLDB4NzEsMHg3MiwweDczLDB4NzR9fSwKLSB7MTYsMHgwZmI1LDAsezB4NzUsMHg3NiwweDc3LDB4NzgsMHg3OSwweDdhLDB4N2IsMHg3YywweDdlLDB4ODAsMHgwMSwweDM3LDB4MDEsMHgwMSwweDM4LDB4MDB9fSwKLSB7IDEsMHgwZmM1LDAsezB4MDB9fSwKLSB7MTYsMHgwZmM2LDAsezB4ZTQsMHhmZiwweDc0LDB4NDYsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4MjB9fSwKLSB7MTYsMHgwZmQ2LDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDRlLDB4MmYsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHgwZmU2LDAsezB4MzQsMHg3NiwweGY1LDB4ODMsMHhlMCwweGZlLDB4NzQsMHgzMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODN9fSwKLSB7IDYsMHgwZmY2LDAsezB4ZWUsMHhmMCwweDBmLDB4YmYsMHgwOCwweGNjfX0sCi0geyAxLDB4MGZmYywwLHsweDIyfX0sCi0geyAzLDB4MGZmZCwwLHsweGMyLDB4ODksMHgzMn19LAotIHsxNiwweDEwMDAsMCx7MHhlNCwweDkwLDB4NzYsMHgyYywweGYwLDB4OTAsMHg3NiwweDJjLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZn19LAotIHsxNiwweDEwMTAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWQsMHhlMCwweGZkLDB4ZWUsMHg2ZH19LAotIHsxNiwweDEwMjAsMCx7MHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MGIsMHg1MCwweDA4LDB4OTAsMHg3NiwweDJjLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkNX19LAotIHsxNiwweDEwMzAsMCx7MHhlZiwweGI0LDB4MGIsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwM319LAotIHsxNiwweDEwNDAsMCx7MHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3NiwweDJlLDB4ZjAsMHgyNH19LAotIHsxNiwweDEwNTAsMCx7MHhmMCwweDYwLDB4MGEsMHgyNCwweDBmLDB4NjAsMHgwMiwweDgxLDB4N2QsMHgxMiwweDRiLDB4MWIsMHgyMiwweDkwLDB4N2YsMHhlZH19LAotIHsxNiwweDEwNjAsMCx7MHhlMCwweDY0LDB4MDUsMHg3MCwweDUxLDB4OTAsMHg3NiwweDE4LDB4NzQsMHgwNSwweGYwLDB4OTAsMHg3NiwweDM4LDB4NzQsMHgwMX19LAotIHsxNiwweDEwNzAsMCx7MHhmMCwweDkwLDB4NzYsMHgzYSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgxYywweGYwLDB4ZTQsMHg5MCwweDc2LDB4MWIsMHhmMH19LAotIHsxNiwweDEwODAsMCx7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NjAsMHgyZiwweDkwLDB4NzYsMHgxYiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNH19LAotIHsxNiwweDEwOTAsMCx7MHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZH19LAotIHsxNiwweDEwYTAsMCx7MHhlZSwweDZkLDB4NjAsMHgxMiwweDkwLDB4NzYsMHgxYywweGUwLDB4ZmUsMHhlZiwweGMzLDB4OWUsMHg1MCwweDA4LDB4OTAsMHg3Nn19LAotIHsxNiwweDEwYjAsMCx7MHgxYiwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDEsMHg5MCwweDdmLDB4ZWQsMHhlMCwweDY0LDB4MDYsMHg3MCwweDUyLDB4OTAsMHg3Nn19LAotIHsxNiwweDEwYzAsMCx7MHgxOCwweDc0LDB4MDYsMHhmMCwweDkwLDB4NzYsMHgzOCwweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHgzYSwweDc0LDB4MGEsMHhmMH19LAotIHsxNiwweDEwZDAsMCx7MHg5MCwweDc2LDB4MWMsMHhmMCwweDkwLDB4NzYsMHgxYiwweDc0LDB4MDMsMHhmMCwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg2MH19LAotIHsxNiwweDEwZTAsMCx7MHgyZiwweDkwLDB4NzYsMHgxYiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNH19LAotIHsxNiwweDEwZjAsMCx7MHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZCwweGVlLDB4NmQsMHg2MCwweDEyLDB4OTAsMHg3Nn19LAotIHsxNiwweDExMDAsMCx7MHgxYywweGUwLDB4ZmUsMHhlZiwweGMzLDB4OWUsMHg1MCwweDA4LDB4OTAsMHg3NiwweDFiLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkMX19LAotIHsxNiwweDExMTAsMCx7MHhlNCwweDkwLDB4NzYsMHgxZSwweGYwLDB4OTAsMHg3NiwweDFjLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxYiwweGUwLDB4ZmUsMHg2Zn19LAotIHsxNiwweDExMjAsMCx7MHg3MCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYiwweGUwLDB4MTQsMHg2MH19LAotIHsxNiwweDExMzAsMCx7MHgxMywweDE0LDB4NzAsMHgwMiwweDIxLDB4YmYsMHgyNCwweDAyLDB4NjAsMHgwMiwweDgxLDB4NzUsMHg5MCwweDdmLDB4YjQsMHhlMH19LAotIHsxNiwweDExNDAsMCx7MHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZiwweDcwLDB4NmIsMHg5MCwweDdmLDB4ZWEsMHhlMH19LAotIHsxNiwweDExNTAsMCx7MHhmNCwweDcwLDB4NGEsMHg5MCwweDc2LDB4MzgsMHhlMCwweDkwLDB4NzYsMHgxYiwweGYwLDB4OTAsMHg3NiwweDNhLDB4ZTAsMHhmZn19LAotIHsxNiwweDExNjAsMCx7MHg5MCwweDc2LDB4MWIsMHhlMCwweGZkLDB4YzMsMHg5ZiwweDUwLDB4MmIsMHhlZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYn19LAotIHsxNiwweDExNzAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZkLDB4MDQsMHhmMH19LAotIHsxNiwweDExODAsMCx7MHg3NCwweDAwLDB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4MWIsMHhlMH19LAotIHsxNiwweDExOTAsMCx7MHgwNCwweGYwLDB4ODAsMHhjNywweDkwLDB4NzYsMHgxZSwweGUwLDB4OTAsMHg3ZiwweGI1LDB4ZjAsMHgyMiwweGVlLDB4NzUsMHhmMH19LAotIHsxNiwweDExYTAsMCx7MHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMH19LAotIHsxNiwweDExYjAsMCx7MHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MH19LAotIHsxNiwweDExYzAsMCx7MHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdlLDB4NzAsMHgwMiwweDQxLDB4N2UsMHgxNCwweDcwLDB4MDIsMHg2MSwweDIzLDB4MTQsMHg3MH19LAotIHsxNiwweDExZDAsMCx7MHgwMiwweDYxLDB4YzgsMHgyNCwweDAzLDB4NjAsMHgwMiwweDgxLDB4NmQsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2ZH19LAotIHsxNiwweDExZTAsMCx7MHg5MCwweDc2LDB4MzgsMHhlMCwweDkwLDB4NzYsMHgxYiwweGYwLDB4OTAsMHg3NiwweDNhLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxYn19LAotIHsxNiwweDExZjAsMCx7MHhlMCwweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDEyMDAsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZkLDB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZH19LAotIHsxNiwweDEyMTAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZH19LAotIHsxNiwweDEyMjAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMH19LAotIHsxNiwweDEyMzAsMCx7MHg3NCwweDAwLDB4MmUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4MWIsMHhlMH19LAotIHsxNiwweDEyNDAsMCx7MHgwNCwweGYwLDB4ODAsMHhhNCwweDkwLDB4NzYsMHgxZSwweGUwLDB4OTAsMHg3ZiwweGI1LDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxYn19LAotIHsxNiwweDEyNTAsMCx7MHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMH19LAotIHsxNiwweDEyNjAsMCx7MHg5MCwweDdmLDB4MDAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDEyNzAsMCx7MHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDIyLDB4OTAsMHg3Zn19LAotIHsxNiwweDEyODAsMCx7MHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkLDB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYX19LAotIHsxNiwweDEyOTAsMCx7MHhlMCwweGZmLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHhjMywweDlmLDB4NTAsMHg0ZiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNH19LAotIHsxNiwweDEyYTAsMCx7MHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZH19LAotIHsxNiwweDEyYjAsMCx7MHgwNCwweGYwLDB4NzQsMHgwMCwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NX19LAotIHsxNiwweDEyYzAsMCx7MHhmMCwweDBhLDB4YTQsMHgyNCwweGFmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZmLDB4OTAsMHg3Nn19LAotIHsxNiwweDEyZDAsMCx7MHgxZSwweGUwLDB4ZmUsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZn19LAotIHsxNiwweDEyZTAsMCx7MHhmMCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNX19LAotIHsxNiwweDEyZjAsMCx7MHhmMCwweDIyLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDEzMDAsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZn19LAotIHsxNiwweDEzMTAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NH19LAotIHsxNiwweDEzMjAsMCx7MHgwMiwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2ZCwweDkwLDB4NzYsMHgzOCwweGUwLDB4OTAsMHg3Nn19LAotIHsxNiwweDEzMzAsMCx7MHgxYiwweGYwLDB4OTAsMHg3NiwweDNhLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxYiwweGUwLDB4YzMsMHg5ZiwweDUwLDB4NGYsMHhlMH19LAotIHsxNiwweDEzNDAsMCx7MHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZX19LAotIHsxNiwweDEzNTAsMCx7MHg5MCwweDc2LDB4MWUsMHhlMCwweGZkLDB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNX19LAotIHsxNiwweDEzNjAsMCx7MHg4MywweGVlLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDEzNzAsMCx7MHg4MywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDEzODAsMCx7MHgzNCwweDdmLDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4MWIsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGE0LDB4OTAsMHg3Nn19LAotIHsxNiwweDEzOTAsMCx7MHgxZSwweGUwLDB4OTAsMHg3ZiwweGI1LDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxYiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNH19LAotIHsxNiwweDEzYTAsMCx7MHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NX19LAotIHsxNiwweDEzYjAsMCx7MHhmMCwweDBhLDB4YTQsMHgyNCwweGIxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMX19LAotIHsxNiwweDEzYzAsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDcwLDB4NmQsMHg5MH19LAotIHsxNiwweDEzZDAsMCx7MHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMH19LAotIHsxNiwweDEzZTAsMCx7MHhjMywweDlmLDB4NTAsMHg0ZiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNH19LAotIHsxNiwweDEzZjAsMCx7MHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmQsMHhmNX19LAotIHsxNiwweDE0MDAsMCx7MHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNX19LAotIHsxNiwweDE0MTAsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZSwweDA0LDB4ZjAsMHg3NH19LAotIHsxNiwweDE0MjAsMCx7MHgwMCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHgwNH19LAotIHsxNiwweDE0MzAsMCx7MHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWIsMHhlMH19LAotIHsxNiwweDE0NDAsMCx7MHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MH19LAotIHsxNiwweDE0NTAsMCx7MHg3ZiwweDAwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDE0NjAsMCx7MHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNH19LAotIHsxNiwweDE0NzAsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNH19LAotIHsgNSwweDE0ODAsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyfX0sCi0gezE2LDB4MTQ4NSwwLHsweDc0LDB4MDAsMHhmNSwweDg2LDB4OTAsMHhmZCwweGE1LDB4N2MsMHgwNSwweGEzLDB4ZTUsMHg4MiwweDQ1LDB4ODMsMHg3MCwweGY5fX0sCi0geyAxLDB4MTQ5NSwwLHsweDIyfX0sCi0gezE2LDB4MTQ5NiwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4NDQsMHg4MCwweGYwLDB4NDMsMHg4NywweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIyfX0sCi0gezE2LDB4MTRhNiwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4OGYsMHhlMCwweGMwLDB4ZTAsMHg4ZSwweGUwLDB4YzAsMHhlMCwweDhkLDB4ZTAsMHhjMCwweGUwfX0sCi0gezE2LDB4MTRiNiwwLHsweDhjLDB4ZTAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHgwNSwweDg2LDB4YzAsMHg4NCwweGMwLDB4ODUsMHg3ZCwweDAwfX0sCi0gezE2LDB4MTRjNiwwLHsweDkwLDB4N2YsMHhlMywweDc0LDB4N2IsMHhmMCwweGEzLDB4NzQsMHg4MCwweGYwLDB4N2MsMHgxMSwweDkwLDB4N2YsMHg5OSwweGUwfX0sCi0gezE2LDB4MTRkNiwwLHsweDU0LDB4NDAsMHhkYywweDAzLDB4MDIsMHgxNCwweGYzLDB4YjQsMHgwMCwweDEzLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg0MCwweGYwfX0sCi0gezE2LDB4MTRlNiwwLHsweDkwLDB4N2YsMHhlNSwweGYwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4MDIsMHgxNCwweGQyLDB4OTAsMHg3NiwweDkwfX0sCi0gezE2LDB4MTRmNiwwLHsweGUwLDB4YjQsMHgwMSwweDEyLDB4OTAsMHg3NiwweDhmLDB4ZTAsMHgyZCwweGZkLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwfX0sCi0gezE2LDB4MTUwNiwwLHsweDkwLDB4N2YsMHg2YywweDAyLDB4MTUsMHg1NywweGI0LDB4MDIsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwfX0sCi0gezE2LDB4MTUxNiwwLHsweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4NmMsMHgwMiwweDE1LDB4OTYsMHhiNCwweDAzLDB4MTIsMHg5MCwweDc2fX0sCi0gezE2LDB4MTUyNiwwLHsweDhmLDB4ZTAsMHgyZCwweGZkLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgxNSwweGUxfX0sCi0gezE2LDB4MTUzNiwwLHsweGI0LDB4MDQsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwfX0sCi0gezE2LDB4MTU0NiwwLHsweDdmLDB4NmMsMHgwMiwweDE2LDB4MTAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4NmMsMHgwMiwweDE2fX0sCi0gezE2LDB4MTU1NiwwLHsweDQwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhmMiwweDdkfX0sCi0gezE2LDB4MTU2NiwwLHsweDAyLDB4MDUsMHg4NiwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4NTQsMHgwNCwweGI0fX0sCi0gezE2LDB4MTU3NiwwLHsweDAwLDB4MDUsMHgwNSwweDg2LDB4MDIsMHgxNiwweDQwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4MDUsMHg4NiwweGYwfX0sCi0gezE2LDB4MTU4NiwwLHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhkZCwweGQ0LDB4MDIsMHgxNiwweDQwfX0sCi0gezE2LDB4MTU5NiwwLHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfX0sCi0gezE2LDB4MTVhNiwwLHsweGYwLDB4ZjAsMHhkZCwweGVjLDB4N2QsMHgwMiwweDA1LDB4ODYsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmfX0sCi0gezE2LDB4MTViNiwwLHsweDliLDB4ZTAsMHg1NCwweDA0LDB4YjQsMHgwMCwweDA1LDB4MDUsMHg4NiwweDAyLDB4MTYsMHg0MCwweDkwLDB4N2YsMHhlMiwweDc0fX0sCi0gezE2LDB4MTVjNiwwLHsweDgwLDB4ZjAsMHgwNSwweDg2LDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfX0sCi0geyA2LDB4MTVkNiwwLHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMH19LAotIHsxNiwweDE1ZGMsMCx7MHhkZCwweGNlLDB4MDIsMHgxNiwweDQwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhkZCwweGZhLDB4N2QsMHgwMiwweDA1LDB4ODYsMHg5MH19LAotIHsxNiwweDE1ZWMsMCx7MHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHg1NCwweDA0LDB4YjQsMHgwMCwweDA1LDB4MDUsMHg4Nn19LAotIHsxNiwweDE1ZmMsMCx7MHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHgwNSwweDg2LDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhkZH19LAotIHsxNiwweDE2MGMsMCx7MHhkYywweDAyLDB4MTYsMHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGRkLDB4ZjgsMHg3ZCwweDAyLDB4MDUsMHg4Nn19LAotIHsxNiwweDE2MWMsMCx7MHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweDU0LDB4MDQsMHhiNCwweDAwLDB4MDUsMHgwNX19LAotIHsxNiwweDE2MmMsMCx7MHg4NiwweDAyLDB4MTYsMHg0MCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDA1LDB4ODYsMHhmMCwweGYwLDB4ZjAsMHhmMH19LAotIHsxNiwweDE2M2MsMCx7MHhmMCwweGYwLDB4ZGQsMHhkYSwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweGQwLDB4ODUsMHhkMCwweDg0LDB4MDUsMHg4Nn19LAotIHsxNiwweDE2NGMsMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmZCwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZn19LAotIHsgNSwweDE2NWMsMCx7MHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfX0sCi0gezE2LDB4MTY2MSwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHg5MCwweDc2LDB4N2MsMHhlMCwweDkwLDB4N2YsMHg2ZiwweGYwfX0sCi0gezE2LDB4MTY3MSwwLHsweDkwLDB4NzYsMHg3ZCwweGUwLDB4OTAsMHg3ZiwweDZmLDB4ZjAsMHg5MCwweDc2LDB4N2UsMHhlMCwweDkwLDB4N2YsMHg2ZiwweGYwfX0sCi0geyA5LDB4MTY4MSwwLHsweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn19LAotIHsxNiwweDE2OGEsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweDhmLDB4ZTAsMHhjMCwweGUwLDB4OGUsMHhlMCwweGMwLDB4ZTAsMHhjMCwweDgyLDB4YzAsMHg4M319LAotIHsxNiwweDE2OWEsMCx7MHgwNSwweDg2LDB4YzAsMHg4NCwweGMwLDB4ODUsMHg5MCwweDc2LDB4ODcsMHhlMCwweGZmLDB4YmYsMHgwMCwweDAzLDB4MDIsMHgxN319LAotIHsxNiwweDE2YWEsMCx7MHgwMSwweDkwLDB4N2YsMHg5NiwweGUwLDB4NDQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3Zn19LAotIHsxNiwweDE2YmEsMCx7MHg2MiwweGUwLDB4MDUsMHg4NiwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5NiwweGUwLDB4NTQsMHg3Zn19LAotIHsxNiwweDE2Y2EsMCx7MHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4NzYsMHg4ZSwweGUwLDB4YjQsMHgwMSwweDA1LDB4MDUsMHg4Nn19LAotIHsxNiwweDE2ZGEsMCx7MHgwMiwweDE2LDB4ZjYsMHhiNCwweDAyLDB4MDUsMHgwNSwweDg2LDB4MDIsMHgxNiwweGViLDB4MDUsMHg4NiwweDAyLDB4MTYsMHhmYn19LAotIHsxNiwweDE2ZWEsMCx7MHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhkZiwweGY4LDB4MDIsMHgxNiwweGZiLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhkZn19LAotIHsxNiwweDE2ZmEsMCx7MHhmYSwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweGQwLDB4ODUsMHhkMCwweDg0LDB4MDUsMHg4NiwweGQwLDB4ODMsMHhkMH19LAotIHsxMiwweDE3MGEsMCx7MHg4MiwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9fSwKLSB7MTYsMHgxNzE2LDAsezB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGUwLDB4ZTgsMHhjMCwweGUwLDB4NzgsMHhkMSwweGU4LDB4MTQsMHhmOCwweDcwLDB4ZmJ9fSwKLSB7MTAsMHgxNzI2LDAsezB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhlMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MjJ9fSwKLSB7MTYsMHgxNzMwLDAsezB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGUwLDB4ZTgsMHhjMCwweGUwLDB4NzgsMHg3OCwweGU4LDB4MTQsMHhmOCwweDcwLDB4ZmJ9fSwKLSB7MTAsMHgxNzQwLDAsezB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhlMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MjJ9fSwKLSB7IDcsMHgxNzRhLDAsezB4OTAsMHg3ZiwweGM1LDB4NzQsMHgwMiwweGYwLDB4MjJ9fSwKLSB7MTYsMHgxNzUxLDAsezB4OTAsMHg3ZSwweGMwLDB4ZTAsMHg5MCwweDc2LDB4NDUsMHhmMCwweDkwLDB4N2UsMHhjMSwweGUwLDB4OTAsMHg3NiwweDQ0LDB4ZjB9fSwKLSB7MTYsMHgxNzYxLDAsezB4OTAsMHg3ZSwweGMyLDB4ZTAsMHg5MCwweDc2LDB4NDMsMHhmMCwweGI0LDB4MDAsMHgwMywweDAyLDB4MTcsMHg3OCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxNzcxLDAsezB4MTksMHg3NCwweDAzLDB4ZjAsMHgwMiwweDE3LDB4OGUsMHg5MCwweDc2LDB4NDQsMHhlMCwweGI0LDB4YmIsMHgwOSwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxNzgxLDAsezB4MTksMHg3NCwweDAyLDB4ZjAsMHgwMiwweDE3LDB4OGUsMHg5MCwweDc2LDB4MTksMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4NDJ9fSwKLSB7IDMsMHgxNzkxLDAsezB4ZTQsMHhmMCwweDIyfX0sCi0geyA0LDB4MTc5NCwwLHsweDhkLDB4MjksMHg4YiwweDJhfX0sCi0gezE2LDB4MTc5OCwwLHsweDEyLDB4NDksMHhmZiwweGVhLDB4NDksMHg2MCwweDU3LDB4MTIsMHgzNiwweDkyLDB4N2UsMHgwMCwweDI5LDB4ZmYsMHhlZSwweDNhfX0sCi0gezE2LDB4MTdhOCwwLHsweGM5LDB4ZWYsMHhjOSwweDc1LDB4MmIsMHhmZiwweGY1LDB4MmMsMHg4OSwweDJkLDB4YWIsMHgyYiwweGFhLDB4MmMsMHhhOSwweDJkfX0sCi0gezE2LDB4MTdiOCwwLHsweDkwLDB4MDAsMHgwMSwweDEyLDB4MzYsMHhhYiwweGZmLDB4NjQsMHgwNCwweDYwLDB4MDUsMHhlZiwweDY0LDB4MDUsMHg3MCwweDJlfX0sCi0gezE2LDB4MTdjOCwwLHsweGVmLDB4YjQsMHgwNCwweDE1LDB4OTAsMHgwMCwweDAyLDB4MTIsMHgzNiwweGFiLDB4NjUsMHgyOSwweDcwLDB4MGIsMHg5MCwweDAwfX0sCi0gezE2LDB4MTdkOCwwLHsweDAzLDB4MTIsMHgzNiwweGFiLDB4NjUsMHgyYSwweDcwLDB4MDEsMHgyMiwweDEyLDB4MzYsMHg5MiwweDdlLDB4MDAsMHgyOSwweGZmfX0sCi0gezE2LDB4MTdlOCwwLHsweGVlLDB4M2EsMHhjOSwweGVmLDB4YzksMHg3NSwweDJiLDB4ZmYsMHhmNSwweDJjLDB4ODksMHgyZCwweDgwLDB4YmMsMHg3YiwweDAwfX0sCi0geyA0LDB4MTdmOCwwLHsweDdhLDB4MDAsMHg3OSwweDAwfX0sCi0geyAxLDB4MTdmYywwLHsweDIyfX0sCi0geyAzLDB4MTdmZCwwLHsweGMyLDB4OGIsMHgzMn19LAotIHsxNiwweDE4MDAsMCx7MHg5MCwweDc2LDB4OTAsMHhlMCwweDE0LDB4NjAsMHgzNywweDE0LDB4NzAsMHgwMiwweDAxLDB4ZDgsMHgxNCwweDcwLDB4MDIsMHgyMX19LAotIHsxNiwweDE4MTAsMCx7MHg3MiwweDE0LDB4NzAsMHgwMiwweDQxLDB4M2IsMHgyNCwweDA0LDB4NjAsMHgwMiwweDYxLDB4MDMsMHg5MCwweDdmLDB4ZmMsMHg3NH19LAotIHsxNiwweDE4MjAsMCx7MHhjYywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg1NH19LAotIHsxNiwweDE4MzAsMCx7MHgwNSwweGYwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHgxYSwweGYwLDB4YzIsMHgyZSwweDIyLDB4OTAsMHg3Nn19LAotIHsxNiwweDE4NDAsMCx7MHg5NSwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4MzAsMHgzZSwweDA2LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MH19LAotIHsxNiwweDE4NTAsMCx7MHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3NiwweDFhLDB4ZTAsMHhiNCwweDAxLDB4MDgsMHg5MH19LAotIHsxNiwweDE4NjAsMCx7MHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MjIsMHg5MH19LAotIHsxNiwweDE4NzAsMCx7MHg3ZiwweGZjLDB4NzQsMHg3NCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyYn19LAotIHsxNiwweDE4ODAsMCx7MHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MH19LAotIHsxNiwweDE4OTAsMCx7MHhmMCwweGVmLDB4YjQsMHgwMiwweDIyLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHg2OCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmY319LAotIHsxNiwweDE4YTAsMCx7MHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmYsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMiwweGYwLDB4ZTQsMHg5MH19LAotIHsxNiwweDE4YjAsMCx7MHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweDMwLDB4M2YsMHgwOSwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZX19LAotIHsxNiwweDE4YzAsMCx7MHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmYn19LAotIHsxNiwweDE4ZDAsMCx7MHhmMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4ZDIsMHgyZSwweDIyLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg0NH19LAotIHsxNiwweDE4ZTAsMCx7MHgwMiwweGYwLDB4MzAsMHgzZSwweDA2LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NH19LAotIHsxNiwweDE4ZjAsMCx7MHhmYiwweGYwLDB4OTAsMHg3NiwweDFhLDB4ZTAsMHhiNCwweDAxLDB4MDgsMHg5MCwweDc2LDB4OTUsMHhlMCwweDkwLDB4ODAsMHgwMX19LAotIHsxNiwweDE5MDAsMCx7MHhmMCwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MjIsMHg5MCwweDdmLDB4ZmMsMHg3NCwweDMwLDB4ZjAsMHg5MH19LAotIHsxNiwweDE5MTAsMCx7MHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyYiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NH19LAotIHsxNiwweDE5MjAsMCx7MHhmZCwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MjIsMHg5MH19LAotIHsxNiwweDE5MzAsMCx7MHg3ZiwweGZjLDB4NzQsMHgxYywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyZn19LAotIHsxNiwweDE5NDAsMCx7MHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MH19LAotIHsxNiwweDE5NTAsMCx7MHhmMCwweDMwLDB4M2YsMHgwOSwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5N319LAotIHsxNiwweDE5NjAsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHhkMn19LAotIHsxNiwweDE5NzAsMCx7MHgyZSwweDIyLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg0NCwweDA4LDB4ZjAsMHgzMH19LAotIHsxNiwweDE5ODAsMCx7MHgzZSwweDA2LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg5MH19LAotIHsxNiwweDE5OTAsMCx7MHg3NiwweDFhLDB4ZTAsMHhiNCwweDAxLDB4MDgsMHg5MCwweDc2LDB4OTUsMHhlMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4OTAsMHg3Nn19LAotIHsxNiwweDE5YTAsMCx7MHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MjUsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGNjLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NH19LAotIHsxNiwweDE5YjAsMCx7MHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyYiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NH19LAotIHsxNiwweDE5YzAsMCx7MHhmYiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MjUsMHg5MH19LAotIHsxNiwweDE5ZDAsMCx7MHg3ZiwweGZjLDB4NzQsMHhjOCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyZn19LAotIHsxNiwweDE5ZTAsMCx7MHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMiwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMH19LAotIHsxNiwweDE5ZjAsMCx7MHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMywweDI1LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHg5OCwweGYwLDB4OTAsMHg3Zn19LAotIHsxNiwweDFhMDAsMCx7MHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4NWYsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZH19LAotIHsxNiwweDFhMTAsMCx7MHhmMCwweDQ0LDB4MDQsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweDMwLDB4M2YsMHgwOX19LAotIHsxNiwweDFhMjAsMCx7MHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMH19LAotIHsxNiwweDFhMzAsMCx7MHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4ZDIsMHgyZSwweDIyLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NH19LAotIHsxNiwweDFhNDAsMCx7MHhmZSwweGYwLDB4NDQsMHgwMiwweGYwLDB4NDQsMHgwOCwweGYwLDB4MzAsMHgzZSwweDA2LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MH19LAotIHsxNiwweDFhNTAsMCx7MHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3NiwweDFhLDB4ZTAsMHhiNCwweDAxLDB4MDgsMHg5MH19LAotIHsxNiwweDFhNjAsMCx7MHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MjUsMHg5MH19LAotIHsxNiwweDFhNzAsMCx7MHg3ZiwweGZjLDB4NzQsMHhiNCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyYn19LAotIHsxNiwweDFhODAsMCx7MHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMH19LAotIHsxNiwweDFhOTAsMCx7MHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDI1LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhiMCwweGYwLDB4OTAsMHg3Zn19LAotIHsxNiwweDFhYTAsMCx7MHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmYsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMn19LAotIHsxNiwweDFhYjAsMCx7MHhmMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwM319LAotIHsxNiwweDFhYzAsMCx7MHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4NjgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4Zn19LAotIHsxNiwweDFhZDAsMCx7MHg3NCwweDVmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDQ0LDB4MDQsMHhmMCwweGU0LDB4OTAsMHg3Nn19LAotIHsxNiwweDFhZTAsMCx7MHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMH19LAotIHsxNiwweDFhZjAsMCx7MHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMn19LAotIHsgNCwweDFiMDAsMCx7MHhmMCwweGQyLDB4MmUsMHgyMn19LAotIHsxNiwweDFiMDQsMCx7MHgzMCwweDJjLDB4MzgsMHhjMiwweDJjLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgwZSwweDkwLDB4NzYsMHg3Y319LAotIHsxNiwweDFiMTQsMCx7MHg3NCwweGMwLDB4ZjAsMHhhMywweDc0LDB4MTQsMHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGQsMHhlNH19LAotIHsxNiwweDFiMjQsMCx7MHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4NzQsMHgxMCwweGYwLDB4YTMsMHg3NCwweDBjLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgwYn19LAotIHsxMiwweDFiMzQsMCx7MHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHg3NCwweDE4LDB4ZjAsMHhhMywweGYwLDB4MjJ9fSwKLSB7MTYsMHgxYjQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYjUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYjYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYjcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYjgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYjkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYmEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYmIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYmMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYmQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYmUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYmYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxYzkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxY2EwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxY2IwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxY2MwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxY2QwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxY2UwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxY2YwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZDkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZGEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZGIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZGMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZGQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZGUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZGYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZTkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTQsMHgxZWIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFlYmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFlY2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFlZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFlZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFlZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmMGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmMWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmMmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsgMiwweDFmM2UsMCx7MHgwMCwweDAwfX0sCi0gezE2LDB4MWY0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWY1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWY2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWY3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWY4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWY5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWZhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWZiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWZjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWZkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWZlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWZmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjAwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjAxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjAyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjAzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjA0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjA1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjA2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjA3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjA4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjA5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjBhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjBiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjBjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjBkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjBlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjBmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjEwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjExMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjEyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjEzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjE0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjE1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjE2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjE3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjE4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjE5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjFhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjFiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjFjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjFkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjFlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjFmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjIwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjIxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjIyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjIzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjI0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjI1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjI2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjI3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjI4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjI5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjJhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjJiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjJjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjJkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjJlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjJmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjMwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjMxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjMyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjMzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjM0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjM1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjM2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE0LDB4MjM3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyMzdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyMzhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyMzllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyM2FlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyM2JlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyM2NlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyM2RlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyM2VlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyM2ZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNDllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNGFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNGJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNGNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNGRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNGVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNGZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNTBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNTFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNTJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNTNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNTRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNTVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNTZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNTdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNThlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNTllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNWFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNWJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNWNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNWRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNWVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNWZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNjllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNmFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNmJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNmNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNmRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTQsMHgyNmVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI2ZmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3MGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3MWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3MmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3M2MsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3NGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3NWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3NmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3N2MsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3OGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3OWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3YWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3YmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3Y2MsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3ZGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDI3ZWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsgNSwweDI3ZmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDIyfX0sCi0gezE2LDB4MjgwMSwwLHsweGMyLDB4MjAsMHhjMiwweDIxLDB4YzIsMHgyYSwweDkwLDB4N2YsMHhlOCwweGUwLDB4MTIsMHgzNywweGY5LDB4MjgsMHgzMCwweDAwfX0sCi0gezE2LDB4MjgxMSwwLHsweDI4LDB4OGMsMHgwMSwweDI4LDB4YTIsMHgwMiwweDJhLDB4MWYsMHgyMSwweDJhLDB4NmEsMHgyMiwweDI5LDB4M2QsMHg4MCwweDI5fX0sCi0gezE2LDB4MjgyMSwwLHsweDdkLDB4ODEsMHgyOSwweGQxLDB4ODIsMHgyYSwweDg0LDB4YTEsMHgyYSwweGJhLDB4YTIsMHgwMCwweDAwLDB4MmEsMHhiZiwweDkwfX0sCi0gezE2LDB4MjgzMSwwLHsweDdmLDB4ZTksMHhlMCwweDE0LDB4NjAsMHgxMSwweDI0LDB4ZmUsMHg2MCwweDI4LDB4MjQsMHhmZSwweDYwLDB4M2IsMHgyNCwweGZjfX0sCi0gezE2LDB4Mjg0MSwwLHsweDcwLDB4NDAsMHgxMiwweDRiLDB4YTAsMHg0MSwweGNiLDB4MTIsMHg0ZCwweGE3LDB4NDAsMHgwMiwweDQxLDB4Y2IsMHg5MCwweDdmfX0sCi0gezE2LDB4Mjg1MSwwLHsweGVhLDB4ZTAsMHhiNCwweDAxLDB4MDQsMHhjMiwweDIyLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfX0sCi0gezE2LDB4Mjg2MSwwLHsweDQxLDB4Y2IsMHgxMiwweDRkLDB4YTksMHg5MCwweDdmLDB4ZWEsMHhlMCwweGI0LDB4MDEsMHgwNCwweGQyLDB4MjIsMHg0MSwweGNifX0sCi0gezE2LDB4Mjg3MSwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfX0sCi0gezE2LDB4Mjg4MSwwLHsweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0fX0sCi0gezE2LDB4Mjg5MSwwLHsweGY1LDB4NzAsMHgwNSwweDEyLDB4NDgsMHgwMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxfX0sCi0gezE2LDB4MjhhMSwwLHsweGNiLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGZkLDB4NjAsMHg1NCwweDI0LDB4MDIsMHg2MCwweDAyLDB4MjEsMHgzNCwweDEyfX0sCi0gezE2LDB4MjhiMSwwLHsweDRkLDB4YTcsMHg0MCwweDAyLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhlYSwweGUwLDB4NzAsMHgzOCwweDkwLDB4N2YsMHhlYywweGUwfX0sCi0gezE2LDB4MjhjMSwwLHsweGY0LDB4NTQsMHg4MCwweGZmLDB4YzQsMHg1NCwweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1LDB4ZTAsMHgyNCwweGI0fX0sCi0gezE2LDB4MjhkMSwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhlYywweGUwLDB4NTQsMHg4MCwweGZmfX0sCi0gezE2LDB4MjhlMSwwLHsweDEzLDB4MTMsMHgxMywweDU0LDB4MWYsMHhmZiwweGUwLDB4NTQsMHgwNywweDJmLDB4OTAsMHg3ZiwweGQ3LDB4ZjAsMHhlMCwweDQ0fX0sCi0gezE2LDB4MjhmMSwwLHsweDIwLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4MTIsMHg0ZCwweGE5fX0sCi0gezE2LDB4MjkwMSwwLHsweDQwLDB4MDIsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg3MCwweDIwLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0fX0sCi0gezE2LDB4MjkxMSwwLHsweDgwLDB4ZmYsMHhjNCwweDU0LDB4MGYsMHhmZiwweGUwLDB4NTQsMHgwNywweDJmLDB4MjUsMHhlMCwweDI0LDB4YjQsMHhmNSwweDgyfX0sCi0gezE2LDB4MjkyMSwwLHsweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfX0sCi0gezE2LDB4MjkzMSwwLHsweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhlOSwweGUwfX0sCi0gezE2LDB4Mjk0MSwwLHsweDYwLDB4MTIsMHgyNCwweGY4LDB4NjAsMHgwOSwweDI0LDB4MDIsMHg3MCwweDI5LDB4MTIsMHg0MywweGRiLDB4NDEsMHhjYiwweDEyfX0sCi0gezE2LDB4Mjk1MSwwLHsweDRkLDB4NWMsMHg0MSwweGNiLDB4MTIsMHg0ZCwweGE1LDB4YTIsMHgyMiwweGU0LDB4MzMsMHhmZiwweDI1LDB4ZTAsMHhmZiwweGEyfX0sCi0gezE2LDB4Mjk2MSwwLHsweDIzLDB4ZTQsMHgzMywweDRmLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyfX0sCi0gezE2LDB4Mjk3MSwwLHsweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhlOSwweGUwfX0sCi0gezE2LDB4Mjk4MSwwLHsweDYwLDB4MzMsMHgyNCwweGY2LDB4NjAsMHgyYSwweDI0LDB4MDQsMHg3MCwweDNkLDB4OTAsMHg3ZiwweGViLDB4ZTAsMHgyNCwweGRlfX0sCi0gezE2LDB4Mjk5MSwwLHsweDYwLDB4MGMsMHgwNCwweDcwLDB4MTIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmfX0sCi0gezE2LDB4MjlhMSwwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNifX0sCi0gezE2LDB4MjliMSwwLHsweDEyLDB4NDYsMHg4NSwweDQxLDB4Y2IsMHgxMiwweDRkLDB4YTUsMHhlNCwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHhmMCwweDkwfX0sCi0gezE2LDB4MjljMSwwLHsweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNifX0sCi0gezE2LDB4MjlkMSwwLHsweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmNCwweDYwLDB4MzQsMHgyNCwweDBjLDB4NzAsMHgzOSwweDEyLDB4NGQsMHhhNSwweDkwfX0sCi0gezE2LDB4MjllMSwwLHsweDdmLDB4ZWMsMHhlMCwweGY0LDB4NTQsMHg4MCwweGZmLDB4YzQsMHg1NCwweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1fX0sCi0gezE2LDB4MjlmMSwwLHsweGUwLDB4MjQsMHhiNCwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGZkLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4MmEwMSwwLHsweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwfX0sCi0gezE2LDB4MmExMSwwLHsweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmfX0sCi0gezE2LDB4MmEyMSwwLHsweGU5LDB4ZTAsMHgyNCwweGY2LDB4NjAsMHgxMiwweDE0LDB4NjAsMHgxYSwweDI0LDB4MDIsMHg3MCwweDFkLDB4ZDIsMHgyMCwweDkwfX0sCi0gezE2LDB4MmEzMSwwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MTIsMHhkMiwweDIwLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfX0sCi0gezE2LDB4MmE0MSwwLHsweGYwLDB4ODAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjAsMHgyMCwweDE4LDB4OTAsMHg3ZiwweGVlfX0sCi0gezE2LDB4MmE1MSwwLHsweGUwLDB4NzAsMHgwNCwweGEzLDB4ZTAsMHg2MCwweDBiLDB4ZDIsMHgyOSwweGQyLDB4MjcsMHgxMiwweDE3LDB4NGEsMHhkMiwweDJhfX0sCi0gezE2LDB4MmE2MSwwLHsweDgwLDB4MDMsMHgxMiwweDA4LDB4MDAsMHhjMiwweDIwLDB4ODAsMHg2MSwweDkwLDB4N2YsMHhlZSwweGUwLDB4NzAsMHgwNCwweGEzfX0sCi0gezE2LDB4MmE3MSwwLHsweGUwLDB4NjAsMHgwYiwweGQyLDB4MjksMHhkMiwweDI4LDB4MTIsMHgxNywweDRhLDB4ZDIsMHgyYSwweDgwLDB4NGMsMHgxMiwweDM4fX0sCi0gezE2LDB4MmE4MSwwLHsweDc0LDB4ODAsMHg0NywweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZSwweDYwLDB4MTIsMHgxNCwweDYwLDB4MWEsMHgyNCwweDAyfX0sCi0gezE2LDB4MmE5MSwwLHsweDcwLDB4MWQsMHhkMiwweDIxLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDEyLDB4ZDIsMHgyMSwweDkwfX0sCi0gezE2LDB4MmFhMSwwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwfX0sCi0gezE2LDB4MmFiMSwwLHsweDIxLDB4MDMsMHgxMiwweDEwLDB4MDAsMHhjMiwweDIxLDB4ODAsMHgxMSwweDEyLDB4MmEsMHhkNiwweDgwLDB4MGMsMHgxMiwweDRkfX0sCi0gezE2LDB4MmFjMSwwLHsweGFiLDB4NTAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjAsMHgyYSwweDA3LDB4OTAsMHg3ZiwweGI0fX0sCi0geyA1LDB4MmFkMSwwLHsweGUwLDB4NDQsMHgwMiwweGYwLDB4MjJ9fSwKLSB7MTYsMHgyYWQ2LDAsezB4ZTQsMHg5MCwweDc2LDB4MjcsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDJ9fSwKLSB7MTYsMHgyYWU2LDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmZCwweGVlLDB4NmR9fSwKLSB7MTYsMHgyYWY2LDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA2LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyNywweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9fSwKLSB7MTYsMHgyYjA2LDAsezB4ZWYsMHhiNCwweDA2LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MGZ9fSwKLSB7MTYsMHgyYjE2LDAsezB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4NzYsMHgyOCwweGYwLDB4MjR9fSwKLSB7MTYsMHgyYjI2LDAsezB4OWYsMHg3MCwweDAyLDB4YTEsMHg3NCwweDI0LDB4MjEsMHg2MCwweDAyLDB4YTEsMHhhMSwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjR9fSwKLSB7MTYsMHgyYjM2LDAsezB4N2UsMHg3MCwweDAyLDB4NjEsMHhmYywweDE0LDB4NzAsMHgwMiwweDgxLDB4YjUsMHgyNCwweDAyLDB4NjAsMHgwMiwweGExLDB4NmN9fSwKLSB7MTYsMHgyYjQ2LDAsezB4ZWYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmN9fSwKLSB7MTYsMHgyYjU2LDAsezB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHg0NCwweDdhLDB4YWMsMHg3OSwweDAwLDB4Nzh9fSwKLSB7MTYsMHgyYjY2LDAsezB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDAsMHg3NCwweDQ0LDB4ZjAsMHhhMywweDc0LDB4YWN9fSwKLSB7MTYsMHgyYjc2LDAsezB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjB9fSwKLSB7MTYsMHgyYjg2LDAsezB4MGYsMHhhNCwweDI0LDB4NDMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmR9fSwKLSB7MTYsMHgyYjk2LDAsezB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHg4MCwweDdhLDB4YmIsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTJ9fSwKLSB7MTYsMHgyYmE2LDAsezB4MzcsMHhhYiwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDAsMHg3NCwweDgwLDB4ZjAsMHhhMywweDc0LDB4YmIsMHhmMCwweGU0LDB4YTN9fSwKLSB7MTYsMHgyYmI2LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjR9fSwKLSB7MTYsMHgyYmM2LDAsezB4NDMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmV9fSwKLSB7MTYsMHgyYmQ2LDAsezB4YTMsMHhlMCwweGZmLDB4N2IsMHgwMCwweDdhLDB4NzcsMHg3OSwweDAxLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgzNywweGFiLDB4NjB9fSwKLSB7MTYsMHgyYmU2LDAsezB4MDIsMHhhMSwweGE4LDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhhMywweDc0LDB4NzcsMHhmMCwweGEzLDB4NzQsMHgwMSwweGYwLDB4OTB9fSwKLSB7MTYsMHgyYmY2LDAsezB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDIyLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDd9fSwKLSB7MTYsMHgyYzA2LDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTN9fSwKLSB7MTYsMHgyYzE2LDAsezB4ZTAsMHhmZiwweDdiLDB4NDQsMHg3YSwweGFjLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDcwLDB4MTN9fSwKLSB7MTYsMHgyYzI2LDAsezB4OTAsMHg3ZiwweDAwLDB4NzQsMHg0NCwweGYwLDB4YTMsMHg3NCwweGFjLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjV9fSwKLSB7MTYsMHgyYzM2LDAsezB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHgyYzQ2LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2J9fSwKLSB7MTYsMHgyYzU2LDAsezB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDB9fSwKLSB7MTYsMHgyYzY2LDAsezB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjB9fSwKLSB7MTYsMHgyYzc2LDAsezB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9fSwKLSB7MTYsMHgyYzg2LDAsezB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHgwMCwweDdhLDB4Nzd9fSwKLSB7MTYsMHgyYzk2LDAsezB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDYwLDB4MDIsMHhhMSwweGE4LDB4OTAsMHg3ZiwweDAwLDB4ZjB9fSwKLSB7MTYsMHgyY2E2LDAsezB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDIyLDB4OTB9fSwKLSB7MTYsMHgyY2I2LDAsezB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9fSwKLSB7MTYsMHgyY2M2LDAsezB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4NDQsMHg3YSwweGFjLDB4Nzl9fSwKLSB7MTYsMHgyY2Q2LDAsezB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg0NCwweGYwLDB4YTN9fSwKLSB7MTYsMHgyY2U2LDAsezB4NzQsMHhhYywweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTB9fSwKLSB7MTYsMHgyY2Y2LDAsezB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTN9fSwKLSB7MTYsMHgyZDA2LDAsezB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDB9fSwKLSB7MTYsMHgyZDE2LDAsezB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjB9fSwKLSB7MTYsMHgyZDI2LDAsezB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGZ9fSwKLSB7MTYsMHgyZDM2LDAsezB4YTQsMHgyNCwweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTN9fSwKLSB7MTYsMHgyZDQ2LDAsezB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4Mzd9fSwKLSB7MTYsMHgyZDU2LDAsezB4YWIsMHg3MCwweDRmLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhhMywweDc0LDB4NzcsMHhmMCwweGEzLDB4NzQsMHgwMSwweGYwLDB4OTB9fSwKLSB7MTYsMHgyZDY2LDAsezB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2Z9fSwKLSB7MTYsMHgyZDc2LDAsezB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDFlLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGZ9fSwKLSB7MTYsMHgyZDg2LDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzR9fSwKLSB7MTYsMHgyZDk2LDAsezB4MDEsMHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9fSwKLSB7IDMsMHgyZGE2LDAsezB4MDEsMHhmMCwweDIyfX0sCi0gezE2LDB4MmRhOSwwLHsweGU0LDB4OTAsMHg3NiwweDM2LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4MmRiOSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyfX0sCi0gezE2LDB4MmRjOSwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1fX0sCi0gezE2LDB4MmRkOSwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmfX0sCi0gezE2LDB4MmRlOSwwLHsweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgxMCwweGYwfX0sCi0gezE2LDB4MmRmOSwwLHsweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA1fX0sCi0gezE2LDB4MmUwOSwwLHsweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0fX0sCi0gezE2LDB4MmUxOSwwLHsweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1fX0sCi0gezE2LDB4MmUyOSwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmfX0sCi0gezE2LDB4MmUzOSwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0fX0sCi0gezE2LDB4MmU0OSwwLHsweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwfX0sCi0gezE2LDB4MmU1OSwwLHsweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0fX0sCi0gezE2LDB4MmU2OSwwLHsweDAxLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MmU3OSwwLHsweDc0LDB4MDMsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4MmU4OSwwLHsweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0fX0sCi0gezE2LDB4MmU5OSwwLHsweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDEwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0fX0sCi0gezE2LDB4MmVhOSwwLHsweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDYsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzfX0sCi0gezE2LDB4MmViOSwwLHsweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwfX0sCi0gezE2LDB4MmVjOSwwLHsweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4MmVkOSwwLHsweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4MmVlOSwwLHsweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4MmVmOSwwLHsweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzfX0sCi0gezE2LDB4MmYwOSwwLHsweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwfX0sCi0gezE2LDB4MmYxOSwwLHsweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA4LDB4ZjAsMHhlZiwweDc1fX0sCi0gezE2LDB4MmYyOSwwLHsweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDQsMHhmMCwweDkwfX0sCi0gezE2LDB4MmYzOSwwLHsweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4MmY0OSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyfX0sCi0gezE2LDB4MmY1OSwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDBhLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1fX0sCi0gezE2LDB4MmY2OSwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwfX0sCi0gezE2LDB4MmY3OSwwLHsweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyfX0sCi0gezE2LDB4MmY4OSwwLHsweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0fX0sCi0gezE2LDB4MmY5OSwwLHsweDA5LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MmZhOSwwLHsweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0fX0sCi0gezE2LDB4MmZiOSwwLHsweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0fX0sCi0gezE2LDB4MmZjOSwwLHsweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDcsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzfX0sCi0gezE0LDB4MmZkOSwwLHsweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwNCwweGYwLDB4MjJ9fSwKLSB7MTYsMHgyZmU3LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4ZDIsMHgyNiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDF9fSwKLSB7IDgsMHgyZmY3LDAsezB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsgMSwweDJmZmYsMCx7MHgzMn19LAotIHsxNiwweDMwMDAsMCx7MHg5MCwweDdmLDB4YjYsMHhlMCwweDIwLDB4ZTEsMHgwMiwweGMyLDB4M2QsMHhkMiwweDM2LDB4MjAsMHgzNiwweDAyLDB4NDEsMHg2ZX19LAotIHsxNiwweDMwMTAsMCx7MHgzMCwweDNkLDB4MDIsMHg0MSwweDZlLDB4OTAsMHg4MCwweDA3LDB4ZTAsMHg2MCwweDA0LDB4ZDIsMHgzNiwweDgwLDB4MDIsMHhjMn19LAotIHsxNiwweDMwMjAsMCx7MHgzNiwweDIwLDB4MzYsMHgwMiwweDQxLDB4MmUsMHhkMiwweDM1LDB4ZTQsMHhmNSwweDFhLDB4OTAsMHg4MCwweDA0LDB4ZTAsMHhmNX19LAotIHsxNiwweDMwMzAsMCx7MHgxOSwweDc0LDB4MDgsMHgyNSwweDBlLDB4ZjgsMHhhNiwweDE5LDB4ODUsMHgxOSwweDE4LDB4ZTUsMHgxOCwweDIwLDB4ZTcsMHgwNH19LAotIHsxNiwweDMwNDAsMCx7MHhkMiwweDM4LDB4ODAsMHgwMiwweGMyLDB4MzgsMHgzMCwweDM4LDB4MDIsMHgyMSwweGQ0LDB4ZTQsMHhmNSwweDE2LDB4ZTUsMHgxOX19LAotIHsxNiwweDMwNTAsMCx7MHhiNCwweGYwLDB4MGMsMHhkMiwweDM5LDB4NzUsMHgwOCwweDA0LDB4NzUsMHgwOSwweGYwLDB4MDUsMHgwZSwweDgwLDB4MDIsMHgwNX19LAotIHsxNiwweDMwNjAsMCx7MHgxNiwweGU1LDB4MTksMHg2NCwweGY3LDB4NzAsMHgzZCwweGMyLDB4MzksMHhlNSwweDBlLDB4MjQsMHhmZSwweDYwLDB4MTcsMHgxNH19LAotIHsxNiwweDMwNzAsMCx7MHg2MCwweDIyLDB4MjQsMHgwMywweDcwLDB4MjksMHg3NSwweDA4LDB4MDUsMHg3NSwweDA5LDB4ZjcsMHhlNCwweGY1LDB4MGEsMHhmNX19LAotIHsxNiwweDMwODAsMCx7MHgwYiwweDc1LDB4MGUsMHgwNCwweDgwLDB4MjAsMHg3NSwweDA4LDB4MDYsMHg3NSwweDBhLDB4ZjcsMHhlNCwweGY1LDB4MGIsMHg3NX19LAotIHsxNiwweDMwOTAsMCx7MHgwZSwweDA0LDB4ODAsMHgxMiwweDc1LDB4MDgsMHgwNywweDc1LDB4MGIsMHhmNywweDc1LDB4MGUsMHgwNCwweDgwLDB4MDcsMHgxMn19LAotIHsxNiwweDMwYTAsMCx7MHg0OCwweGYzLDB4ODAsMHgwMiwweDA1LDB4MTYsMHhlNSwweDE5LDB4NTQsMHhmOCwweDY0LDB4ZjgsMHg3MCwweDNiLDB4YzIsMHgzNX19LAotIHsxNiwweDMwYjAsMCx7MHhlNSwweDE5LDB4MjQsMHgwNywweDYwLDB4MGMsMHgyNCwweGZjLDB4NjAsMHgwOCwweDI0LDB4MDUsMHgyNCwweGY4LDB4NTAsMHgwNn19LAotIHsxNiwweDMwYzAsMCx7MHg4MCwweDA4LDB4ZDIsMHgzYSwweDgwLDB4MDYsMHhjMiwweDNhLDB4ODAsMHgwMiwweGQyLDB4M2EsMHg3NSwweDFhLDB4MDEsMHgyMH19LAotIHsxNiwweDMwZDAsMCx7MHgzYSwweDE5LDB4OTAsMHg3ZSwweDgwLDB4NzQsMHgwZiwweGYwLDB4YTMsMHhlNSwweDE5LDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhM319LAotIHsxNiwweDMwZTAsMCx7MHhmMCwweDkwLDB4N2YsMHhiNywweDc0LDB4MDQsMHhmMCwweDgwLDB4MDIsMHgwNSwweDE2LDB4MjAsMHgzOSwweDZkLDB4ZTUsMHgxOX19LAotIHsxNiwweDMwZjAsMCx7MHg2NCwweGY3LDB4NjAsMHg2NywweGU1LDB4MWEsMHg3MCwweDYzLDB4ZTUsMHgxOCwweDU0LDB4ZjAsMHg2NCwweGYwLDB4NzAsMHg1OX19LAotIHsxNiwweDMxMDAsMCx7MHg4NSwweDE4LDB4MTksMHhmNSwweDBlLDB4ZTUsMHgxOSwweDI0LDB4MGYsMHg2MCwweDFiLDB4MjQsMHhmZSwweDYwLDB4MTcsMHgyNH19LAotIHsxNiwweDMxMTAsMCx7MHhmZCwweDYwLDB4MjIsMHgxNCwweDYwLDB4MWYsMHgyNCwweDA1LDB4NzAsMHgyZiwweDc1LDB4MDgsMHgwMywweDA1LDB4MGUsMHg4NX19LAotIHsxNiwweDMxMjAsMCx7MHgxOCwweDA5LDB4ZDIsMHgzNywweDgwLDB4MjgsMHg3NSwweDA4LDB4MDIsMHgwNSwweDBlLDB4ODUsMHgxOCwweDA5LDB4NzUsMHgxNH19LAotIHsxNiwweDMxMzAsMCx7MHgwMSwweGQyLDB4MzcsMHg4MCwweDE5LDB4NzUsMHgwOCwweDA1LDB4MDUsMHgwZSwweDg1LDB4MTgsMHgwOSwweGU0LDB4ZjUsMHgwYX19LAotIHsxNiwweDMxNDAsMCx7MHhmNSwweDBiLDB4NzUsMHgwZSwweDAzLDB4ZDIsMHgzNywweDgwLDB4MDUsMHgxMiwweDQ4LDB4ZjMsMHhjMiwweDM1LDB4MzAsMHgzNX19LAotIHsxNiwweDMxNTAsMCx7MHgwYSwweDg1LDB4MDgsMHgxMywweDg1LDB4MTgsMHgxMiwweDgwLDB4MDIsMHgwNSwweDE2LDB4ODUsMHgxOCwweDE5LDB4ZTUsMHgxNn19LAotIHsxNiwweDMxNjAsMCx7MHg2NCwweDA0LDB4NzAsMHg2MiwweGY1LDB4MGUsMHhlNSwweDE5LDB4NTQsMHhmMCwweGY1LDB4MTksMHhmNSwweDE1LDB4ODUsMHgxOH19LAotIHsxNiwweDMxNzAsMCx7MHgxOSwweGU1LDB4MTUsMHgyNCwweDcwLDB4NjAsMHgxOCwweDI0LDB4ZjAsMHg2MCwweDE0LDB4MjQsMHhmMCwweDYwLDB4MTAsMHgyNH19LAotIHsxNiwweDMxODAsMCx7MHhmMCwweDYwLDB4MWUsMHgyNCwweGYwLDB4NjAsMHgxYSwweDI0LDB4ZjAsMHg2MCwweDA0LDB4MjQsMHg2MCwweDcwLDB4MjcsMHhlNX19LAotIHsxNiwweDMxOTAsMCx7MHgxNSwweGM0LDB4NTQsMHgwZiwweGY1LDB4MTksMHhmNSwweDA4LDB4MDUsMHgwZSwweDg1LDB4MTgsMHgwOSwweGQyLDB4MzcsMHg4MH19LAotIHsxNiwweDMxYTAsMCx7MHgxYSwweGU1LDB4MTUsMHhjNCwweDU0LDB4MGYsMHhmNSwweDE5LDB4ZjUsMHgwOCwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHg3NX19LAotIHsxNiwweDMxYjAsMCx7MHgxNCwweDAxLDB4ZDIsMHgzNywweDgwLDB4MDUsMHgxMiwweDQ4LDB4ZjMsMHhjMiwweDM1LDB4MzAsMHgzNSwweDBhLDB4ODUsMHgxOX19LAotIHsxNiwweDMxYzAsMCx7MHgxMywweDg1LDB4MTgsMHgxMiwweDgwLDB4MDIsMHgwNSwweDE2LDB4ZTUsMHgxNiwweGQzLDB4OTQsMHgwNSwweDQwLDB4NTcsMHgxMn19LAotIHsxNiwweDMxZDAsMCx7MHg0OCwweGYzLDB4ODAsMHg1MiwweDMwLDB4MzksMHgxNywweGU1LDB4MGUsMHg3MCwweDBhLDB4ODUsMHgwOCwweDA5LDB4NzUsMHgwOH19LAotIHsxNiwweDMxZTAsMCx7MHgwNCwweDA1LDB4MGUsMHg4MCwweDQxLDB4NzQsMHgwOCwweDI1LDB4MGUsMHhmOCwweGE2LDB4MTksMHg4MCwweDM4LDB4MjAsMHgzN319LAotIHsxNiwweDMxZjAsMCx7MHgyYSwweGU1LDB4MGUsMHhiNCwweDAxLDB4MGYsMHg4NSwweDA4LDB4MGEsMHg4NSwweDA5LDB4MGIsMHg4NSwweDEzLDB4MDgsMHg4NX19LAotIHsxNiwweDMyMDAsMCx7MHgxMiwweDA5LDB4NzUsMHgwZSwweDA0LDB4ZTUsMHgxNCwweGI0LDB4MDEsMHgxYywweDg1LDB4MDgsMHgwYSwweGU0LDB4ZjUsMHgwYn19LAotIHsxNiwweDMyMTAsMCx7MHg4NSwweDEzLDB4MDgsMHg4NSwweDEyLDB4MDksMHg3NSwweDBlLDB4MDQsMHg4MCwweDBiLDB4ZTUsMHgxNCwweGI0LDB4MDEsMHgwNn19LAotIHsxNiwweDMyMjAsMCx7MHhlNCwweGY1LDB4MGIsMHg3NSwweDBlLDB4MDQsMHhlNCwweGY1LDB4MWEsMHgzMCwweDM1LDB4MDIsMHgwNSwweDBlLDB4ZTUsMHgwZX19LAotIHsxNiwweDMyMzAsMCx7MHhkMywweDk0LDB4MDMsMHg1MCwweDAyLDB4MDEsMHgwYiwweGMyLDB4MzcsMHhlNCwweGY1LDB4MGUsMHhmNSwweDEwLDB4YzIsMHgzNn19LAotIHsxNiwweDMyNDAsMCx7MHhkMiwweDNkLDB4ZjUsMHgxNCwweDc0LDB4MDgsMHgyNSwweDEwLDB4ZjgsMHhlNiwweGZmLDB4NzQsMHg4MCwweDI1LDB4MTAsMHhmNX19LAotIHsxNiwweDMyNTAsMCx7MHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlZiwweGYwLDB4NzQsMHgwOCwweDI1LDB4MTAsMHhmOCwweGU0LDB4ZjYsMHgwNX19LAotIHsxNSwweDMyNjAsMCx7MHgxMCwweGU1LDB4MTAsMHhiNCwweDA0LDB4ZGUsMHg5MCwweDdmLDB4YjcsMHg3NCwweDA0LDB4ZjAsMHgwMSwweDBiLDB4MjJ9fSwKLSB7MTYsMHgzMjZmLDAsezB4OTAsMHg3NiwweDE4LDB4ZTAsMHhmZiwweDY0LDB4MDUsMHg3MCwweDQyLDB4OTAsMHg3NSwweGFiLDB4ZTAsMHhiNCwweDAxLDB4MTl9fSwKLSB7MTYsMHgzMjdmLDAsezB4OTAsMHg3MiwweDM3LDB4NzQsMHgwMSwweGYwLDB4ZTQsMHg5MCwweDgwLDB4MjAsMHhmMCwweDkwLDB4ODAsMHgzMSwweGYwLDB4OTB9fSwKLSB7MTYsMHgzMjhmLDAsezB4ODAsMHgyOCwweGYwLDB4OTAsMHg4MCwweDM5LDB4ZjAsMHg4MCwweDIyLDB4ZTQsMHg5MCwweDcyLDB4MzcsMHhmMCwweDkwLDB4NzV9fSwKLSB7MTYsMHgzMjlmLDAsezB4YWQsMHhlMCwweDkwLDB4NzIsMHgyYiwweGYwLDB4ZTAsMHgyNCwweDgwLDB4ZjAsMHhlMCwweDkwLDB4ODAsMHgyMCwweGYwLDB4OTB9fSwKLSB7MTYsMHgzMmFmLDAsezB4ODAsMHgzMSwweGYwLDB4OTAsMHg4MCwweDI4LDB4ZjAsMHg5MCwweDgwLDB4MzksMHhmMCwweGVmLDB4NjQsMHgwNiwweDYwLDB4MDJ9fSwKLSB7MTYsMHgzMmJmLDAsezB4ODEsMHg5OSwweDkwLDB4NzIsMHgzOSwweDc0LDB4MDQsMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4ZmYsMHgyNCwweGZlLDB4OTB9fSwKLSB7MTYsMHgzMmNmLDAsezB4NzIsMHgwNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9fSwKLSB7MTYsMHgzMmRmLDAsezB4ODMsMHhlMCwweDY0LDB4MDEsMHg3MCwweDU0LDB4OTAsMHg3MiwweDM2LDB4MDQsMHhmMCwweDkwLDB4NzIsMHgwNCwweGUwLDB4ZmZ9fSwKLSB7MTYsMHgzMmVmLDAsezB4MjQsMHhmZCwweDYwLDB4MjgsMHgyNCwweGZlLDB4NjAsMHgyNCwweDI0LDB4MDMsMHgyNCwweGZiLDB4NTAsMHgwNCwweDYwLDB4MWN9fSwKLSB7MTYsMHgzMmZmLDAsezB4ODEsMHg4YywweDc0LDB4MjAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc0LDB4Mjh9fSwKLSB7MTYsMHgzMzBmLDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg4MSwweDhjLDB4OTAsMHg3MiwweDA0LDB4ZTB9fSwKLSB7MTYsMHgzMzFmLDAsezB4ZmYsMHgyNCwweDMwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzQsMHgzOCwweDJmLDB4ZjV9fSwKLSB7MTYsMHgzMzJmLDAsezB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDgxLDB4OGMsMHhlNCwweDkwLDB4NzIsMHgzNiwweGYwLDB4OTB9fSwKLSB7MTYsMHgzMzNmLDAsezB4NzIsMHgzOSwweGUwLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9fSwKLSB7MTYsMHgzMzRmLDAsezB4ZTAsMHhmZiwweDdlLDB4MDAsMHg5MCwweDc1LDB4MGMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4NzAsMHgwNiwweDkwLDB4NzJ9fSwKLSB7MTYsMHgzMzVmLDAsezB4MDIsMHg3NCwweDNiLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4NjQsMHg4MCwweDRlLDB4NzB9fSwKLSB7MTYsMHgzMzZmLDAsezB4MDQsMHg5MCwweDcyLDB4MDIsMHhmMCwweGVmLDB4NGUsMHg3MCwweDAyLDB4ODEsMHgzNSwweGVmLDB4NjQsMHg4MCwweDRlLDB4NzB9fSwKLSB7MTYsMHgzMzdmLDAsezB4MDIsMHg4MSwweDM1LDB4ZWYsMHhmOCwweGU0LDB4OTAsMHg3NSwweDBkLDB4ZjAsMHhlOCwweDkwLDB4NzUsMHgwYywweGYwLDB4OTB9fSwKLSB7MTYsMHgzMzhmLDAsezB4NzIsMHgzNCwweGUwLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9fSwKLSB7MTYsMHgzMzlmLDAsezB4ZTAsMHhmZiwweDkwLDB4NzIsMHgwMiwweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTAsMHgyZiwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTB9fSwKLSB7MTYsMHgzM2FmLDAsezB4MzQsMHgwMCwweGYwLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweDdiLDB4ZDYsMHg3YSwweGE1LDB4Zjl9fSwKLSB7MTYsMHgzM2JmLDAsezB4ZjgsMHhkMywweDEyLDB4MzcsMHg5NSwweDQwLDB4MGEsMHg5MCwweDc1LDB4MGMsMHg3NCwweGE1LDB4ZjAsMHhhMywweDc0LDB4ZDZ9fSwKLSB7MTYsMHgzM2NmLDAsezB4ZjAsMHg5MCwweDc1LDB4MGQsMHhlMCwweDI0LDB4MmEsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4MzQsMHg1YSwweGYwLDB4ZTB9fSwKLSB7MTYsMHgzM2RmLDAsezB4ZmUsMHhhMywweGUwLDB4NzgsMHgwNSwweGNlLDB4YTIsMHhlNywweDEzLDB4Y2UsMHgxMywweGQ4LDB4ZjgsMHhmZiwweDkwLDB4NzV9fSwKLSB7MTYsMHgzM2VmLDAsezB4MGMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4OTAsMHg3MiwweDJjLDB4ZWUsMHhmMCwweGEzLDB4ZWYsMHhmMCwweGQzLDB4OTR9fSwKLSB7MTYsMHgzM2ZmLDAsezB4ZDIsMHhlZSwweDY0LDB4ODAsMHg5NCwweDgyLDB4NDAsMHgwYSwweDkwLDB4NzIsMHgyYywweDc0LDB4MDIsMHhmMCwweGEzLDB4NzR9fSwKLSB7MTYsMHgzNDBmLDAsezB4ZDIsMHhmMCwweGMzLDB4OTAsMHg3MiwweDJjLDB4ZTAsMHg2NCwweDgwLDB4OTQsMHg4MCwweDUwLDB4MDQsMHhlNCwweGYwLDB4YTN9fSwKLSB7MTYsMHgzNDFmLDAsezB4ZjAsMHg5MCwweDcyLDB4MmMsMHhlMCwweGZlLDB4YTMsMHhlMCwweDI0LDB4M2EsMHhmNSwweDgyLDB4ZWUsMHgzNCwweDcyLDB4ZjV9fSwKLSB7MTYsMHgzNDJmLDAsezB4ODMsMHhlMCwweDkwLDB4NzIsMHgwMiwweGYwLDB4OTAsMHg3MiwweDA0LDB4ZTAsMHhmZiwweDI0LDB4ZmQsMHg2MCwweDJkLDB4MjR9fSwKLSB7MTYsMHgzNDNmLDAsezB4ZmUsMHg2MCwweDI5LDB4MjQsMHgwMywweDI0LDB4ZmIsMHg1MCwweDA0LDB4NjAsMHgyMSwweDgwLDB4NDAsMHg5MCwweDcyLDB4MDJ9fSwKLSB7MTYsMHgzNDRmLDAsezB4ZTAsMHhmZSwweDc0LDB4MjAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWUsMHhmMCwweDc0LDB4Mjh9fSwKLSB7MTYsMHgzNDVmLDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg4MCwweDIxLDB4OTAsMHg3MiwweDAyLDB4ZTB9fSwKLSB7MTYsMHgzNDZmLDAsezB4ZmYsMHg5MCwweDcyLDB4MDQsMHhlMCwweGZlLDB4MjQsMHgzMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWZ9fSwKLSB7MTYsMHgzNDdmLDAsezB4ZjAsMHg3NCwweDM4LDB4MmUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDcyLDB4Mzl9fSwKLSB7MTEsMHgzNDhmLDAsezB4ZTAsMHgwNCwweGYwLDB4ZTAsMHg2NCwweDBhLDB4NjAsMHgwMiwweDQxLDB4YzcsMHgyMn19LAotIHsxNiwweDM0OWEsMCx7MHg5MCwweDc2LDB4MTgsMHhlMCwweGZmLDB4YjQsMHgwNSwweDIzLDB4OTAsMHg3MiwweDM3LDB4ZTAsMHg3MCwweDFkLDB4OTAsMHg3NX19LAotIHsxNiwweDM0YWEsMCx7MHhhZCwweGUwLDB4OTAsMHg3MiwweDJiLDB4ZjAsMHhlMCwweDI0LDB4ODAsMHhmMCwweGUwLDB4OTAsMHg4MCwweDIwLDB4ZjAsMHg5MH19LAotIHsxNiwweDM0YmEsMCx7MHg4MCwweDMxLDB4ZjAsMHg5MCwweDgwLDB4MjgsMHhmMCwweDkwLDB4ODAsMHgzOSwweGYwLDB4ZWYsMHg2NCwweDA2LDB4NjAsMHgwMn19LAotIHsxNiwweDM0Y2EsMCx7MHhjMSwweDkxLDB4OTAsMHg3MiwweDM2LDB4ZTAsMHg2MCwweDAyLDB4YzEsMHg5MSwweDkwLDB4NzYsMHg0MCwweGUwLDB4NzAsMHgzMX19LAotIHsxNiwweDM0ZGEsMCx7MHg5MCwweDcyLDB4MDMsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDcyLDB4MDMsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNH19LAotIHsxNiwweDM0ZWEsMCx7MHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzIsMHgyOSwweGUwLDB4ZmQsMHhlZX19LAotIHsxNiwweDM0ZmEsMCx7MHg2ZCwweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwYSwweDUwLDB4MDgsMHg5MCwweDcyLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHg4MH19LAotIHsxNiwweDM1MGEsMCx7MHhkNSwweDkwLDB4NzIsMHgzOSwweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHg0MCwweGUwLDB4NzAsMHgwOCwweDkwLDB4NzIsMHgwM319LAotIHsxNiwweDM1MWEsMCx7MHhlMCwweDkwLDB4NzIsMHgzOSwweGYwLDB4OTAsMHg3MiwweDM5LDB4ZTAsMHhmZCwweDI0LDB4ZmUsMHg5MCwweDcyLDB4MmEsMHhmMH19LAotIHsxNiwweDM1MmEsMCx7MHhlZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZn19LAotIHsxNiwweDM1M2EsMCx7MHg3ZSwweDAwLDB4OTAsMHg3NSwweDBjLDB4ZWUsMHhmMCwweGEzLDB4ZWYsMHhmMCwweDcwLDB4MDYsMHg5MCwweDcyLDB4MDIsMHg3NH19LAotIHsxNiwweDM1NGEsMCx7MHg4MCwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDY0LDB4ODAsMHg0ZSwweDcwLDB4MDQsMHg5MH19LAotIHsxNiwweDM1NWEsMCx7MHg3MiwweDAyLDB4ZjAsMHhlZiwweDRlLDB4NzAsMHgwMiwweGMxLDB4MWIsMHhlZiwweDY0LDB4ODAsMHg0ZSwweDcwLDB4MDIsMHhjMX19LAotIHsxNiwweDM1NmEsMCx7MHgxYiwweGVmLDB4ZjgsMHhlNCwweDkwLDB4NzUsMHgwZCwweGYwLDB4ZTgsMHg5MCwweDc1LDB4MGMsMHhmMCwweGVkLDB4NzUsMHhmMH19LAotIHsxNiwweDM1N2EsMCx7MHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzIsMHgwMn19LAotIHsxNiwweDM1OGEsMCx7MHhmMCwweDkwLDB4NzUsMHgwZCwweGUwLDB4MmYsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4MzQsMHgwMCwweGYwLDB4ZTAsMHhmZX19LAotIHsxNiwweDM1OWEsMCx7MHhhMywweGUwLDB4ZmYsMHhlNCwweGZjLDB4ZmQsMHg3YiwweGQ2LDB4N2EsMHhhNSwweGY5LDB4ZjgsMHhkMywweDEyLDB4MzcsMHg5NX19LAotIHsxNiwweDM1YWEsMCx7MHg0MCwweDBhLDB4OTAsMHg3NSwweDBjLDB4NzQsMHhhNSwweGYwLDB4YTMsMHg3NCwweGQ2LDB4ZjAsMHg5MCwweDc1LDB4MGQsMHhlMH19LAotIHsxNiwweDM1YmEsMCx7MHgyNCwweDJhLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweDM0LDB4NWEsMHhmMCwweGUwLDB4ZmUsMHhhMywweGUwLDB4NzgsMHgwNX19LAotIHsxNiwweDM1Y2EsMCx7MHhjZSwweGEyLDB4ZTcsMHgxMywweGNlLDB4MTMsMHhkOCwweGY4LDB4ZmYsMHg5MCwweDc1LDB4MGMsMHhlZSwweGYwLDB4YTMsMHhlZn19LAotIHsxNiwweDM1ZGEsMCx7MHhmMCwweDkwLDB4NzIsMHgyYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHhkMywweDk0LDB4ZDIsMHhlZSwweDY0LDB4ODAsMHg5NH19LAotIHsxNiwweDM1ZWEsMCx7MHg4MiwweDQwLDB4MGEsMHg5MCwweDcyLDB4MmMsMHg3NCwweDAyLDB4ZjAsMHhhMywweDc0LDB4ZDIsMHhmMCwweGMzLDB4OTAsMHg3Mn19LAotIHsxNiwweDM1ZmEsMCx7MHgyYywweGUwLDB4NjQsMHg4MCwweDk0LDB4ODAsMHg1MCwweDA0LDB4ZTQsMHhmMCwweGEzLDB4ZjAsMHg5MCwweDcyLDB4MmMsMHhlMH19LAotIHsxNiwweDM2MGEsMCx7MHhmZSwweGEzLDB4ZTAsMHgyNCwweDNhLDB4ZjUsMHg4MiwweGVlLDB4MzQsMHg3MiwweGY1LDB4ODMsMHhlMCwweDkwLDB4NzIsMHgwMn19LAotIHsxNiwweDM2MWEsMCx7MHhmMCwweDkwLDB4NzIsMHgyYSwweGUwLDB4ZmYsMHgyNCwweGZkLDB4NjAsMHgyZCwweDI0LDB4ZmUsMHg2MCwweDI5LDB4MjQsMHgwM319LAotIHsxNiwweDM2MmEsMCx7MHgyNCwweGZiLDB4NTAsMHgwNCwweDYwLDB4MjEsMHg4MCwweDQwLDB4OTAsMHg3MiwweDAyLDB4ZTAsMHhmZSwweDc0LDB4MjAsMHgyZn19LAotIHsxNiwweDM2M2EsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDI4LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNH19LAotIHsxNiwweDM2NGEsMCx7MHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4ODAsMHgyMSwweDkwLDB4NzIsMHgwMiwweGUwLDB4ZmYsMHg5MCwweDcyLDB4MmEsMHhlMH19LAotIHsxNiwweDM2NWEsMCx7MHhmZSwweDI0LDB4MzAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg3NCwweDM4LDB4MmUsMHhmNX19LAotIHsxNiwweDM2NmEsMCx7MHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDQwLDB4ZTAsMHg3MCwweDA2LDB4OTAsMHg3Mn19LAotIHsxNiwweDM2N2EsMCx7MHgzOSwweDc0LDB4MGEsMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4MDQsMHhmMCwweGUwLDB4YzMsMHg5NCwweDBhLDB4NTAsMHgwMn19LAotIHsgOCwweDM2OGEsMCx7MHhhMSwweDExLDB4ZTQsMHg5MCwweDc2LDB4NDAsMHhmMCwweDIyfX0sCi0gezE2LDB4MzY5MiwwLHsweGJiLDB4MDEsMHgwNiwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZTAsMHgyMiwweDUwLDB4MDIsMHhlNywweDIyLDB4YmIsMHhmZSwweDAyfX0sCi0geyA5LDB4MzZhMiwwLHsweGUzLDB4MjIsMHg4OSwweDgyLDB4OGEsMHg4MywweGU0LDB4OTMsMHgyMn19LAotIHsxNiwweDM2YWIsMCx7MHhiYiwweDAxLDB4MGMsMHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweGUwLDB4MjIsMHg1MH19LAotIHsxNiwweDM2YmIsMCx7MHgwNiwweGU5LDB4MjUsMHg4MiwweGY4LDB4ZTYsMHgyMiwweGJiLDB4ZmUsMHgwNiwweGU5LDB4MjUsMHg4MiwweGY4LDB4ZTIsMHgyMn19LAotIHsxMywweDM2Y2IsMCx7MHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweGU0LDB4OTMsMHgyMn19LAotIHsxNiwweDM2ZDgsMCx7MHhjMiwweGQ1LDB4ZWMsMHgzMCwweGU3LDB4MDksMHhiMiwweGQ1LDB4ZTQsMHhjMywweDlkLDB4ZmQsMHhlNCwweDljLDB4ZmMsMHhlZX19LAotIHsxNiwweDM2ZTgsMCx7MHgzMCwweGU3LDB4MTUsMHhiMiwweGQ1LDB4ZTQsMHhjMywweDlmLDB4ZmYsMHhlNCwweDllLDB4ZmUsMHgxMiwweDM4LDB4MWYsMHhjM319LAotIHsxNiwweDM2ZjgsMCx7MHhlNCwweDlkLDB4ZmQsMHhlNCwweDljLDB4ZmMsMHg4MCwweDAzLDB4MTIsMHgzOCwweDFmLDB4MzAsMHhkNSwweDA3LDB4YzMsMHhlNH19LAotIHsgNiwweDM3MDgsMCx7MHg5ZiwweGZmLDB4ZTQsMHg5ZSwweGZlLDB4MjJ9fSwKLSB7MTYsMHgzNzBlLDAsezB4YmIsMHgwMSwweDEwLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlMCwweGY1LDB4ZjB9fSwKLSB7MTYsMHgzNzFlLDAsezB4YTMsMHhlMCwweDIyLDB4NTAsMHgwOSwweGU5LDB4MjUsMHg4MiwweGY4LDB4ODYsMHhmMCwweDA4LDB4ZTYsMHgyMiwweGJiLDB4ZmV9fSwKLSB7MTYsMHgzNzJlLDAsezB4MGEsMHhlOSwweDI1LDB4ODIsMHhmOCwweGUyLDB4ZjUsMHhmMCwweDA4LDB4ZTIsMHgyMiwweGU1LDB4ODMsMHgyYSwweGY1LDB4ODN9fSwKLSB7IDgsMHgzNzNlLDAsezB4ZTksMHg5MywweGY1LDB4ZjAsMHhhMywweGU5LDB4OTMsMHgyMn19LAotIHsxNiwweDM3NDYsMCx7MHhlOCwweDhmLDB4ZjAsMHhhNCwweGNjLDB4OGIsMHhmMCwweGE0LDB4MmMsMHhmYywweGU5LDB4OGUsMHhmMCwweGE0LDB4MmMsMHhmY319LAotIHsxNiwweDM3NTYsMCx7MHg4YSwweGYwLDB4ZWQsMHhhNCwweDJjLDB4ZmMsMHhlYSwweDhlLDB4ZjAsMHhhNCwweGNkLDB4YTgsMHhmMCwweDhiLDB4ZjAsMHhhNH19LAotIHsxNiwweDM3NjYsMCx7MHgyZCwweGNjLDB4MzgsMHgyNSwweGYwLDB4ZmQsMHhlOSwweDhmLDB4ZjAsMHhhNCwweDJjLDB4Y2QsMHgzNSwweGYwLDB4ZmMsMHhlYn19LAotIHsxNiwweDM3NzYsMCx7MHg4ZSwweGYwLDB4YTQsMHhmZSwweGE5LDB4ZjAsMHhlYiwweDhmLDB4ZjAsMHhhNCwweGNmLDB4YzUsMHhmMCwweDJlLDB4Y2QsMHgzOX19LAotIHsxNSwweDM3ODYsMCx7MHhmZSwweGU0LDB4M2MsMHhmYywweGVhLDB4YTQsMHgyZCwweGNlLDB4MzUsMHhmMCwweGZkLDB4ZTQsMHgzYywweGZjLDB4MjJ9fSwKLSB7MTYsMHgzNzk1LDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZWMsMHg2NCwweDgwLDB4Yzh9fSwKLSB7IDYsMHgzN2E1LDAsezB4NjQsMHg4MCwweDk4LDB4NDUsMHhmMCwweDIyfX0sCi0gezE2LDB4MzdhYiwwLHsweGViLDB4OWYsMHhmNSwweGYwLDB4ZWEsMHg5ZSwweDQyLDB4ZjAsMHhlOSwweDlkLDB4NDIsMHhmMCwweGU4LDB4OWMsMHg0NSwweGYwfX0sCi0geyAxLDB4MzdiYiwwLHsweDIyfX0sCi0gezEyLDB4MzdiYywwLHsweGVjLDB4ZjAsMHhhMywweGVkLDB4ZjAsMHhhMywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHgyMn19LAotIHsxNiwweDM3YzgsMCx7MHhhOCwweDgyLDB4ODUsMHg4MywweGYwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHgxMiwweDM3LDB4ZGYsMHgxMiwweDM3LDB4ZGYsMHgxMn19LAotIHsxNiwweDM3ZDgsMCx7MHgzNywweGRmLDB4MTIsMHgzNywweGRmLDB4ZTQsMHg3MywweGU0LDB4OTMsMHhhMywweGM1LDB4ODMsMHhjNSwweGYwLDB4YzUsMHg4M319LAotIHsxNiwweDM3ZTgsMCx7MHhjOCwweGM1LDB4ODIsMHhjOCwweGYwLDB4YTMsMHhjNSwweDgzLDB4YzUsMHhmMCwweGM1LDB4ODMsMHhjOCwweGM1LDB4ODIsMHhjOH19LAotIHsgMSwweDM3ZjgsMCx7MHgyMn19LAotIHsxNiwweDM3ZjksMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGY4LDB4ZTQsMHg5MywweDcwLDB4MTIsMHg3NCwweDAxLDB4OTMsMHg3MCwweDBkLDB4YTMsMHhhM319LAotIHsxNiwweDM4MDksMCx7MHg5MywweGY4LDB4NzQsMHgwMSwweDkzLDB4ZjUsMHg4MiwweDg4LDB4ODMsMHhlNCwweDczLDB4NzQsMHgwMiwweDkzLDB4NjgsMHg2MH19LAotIHsgNiwweDM4MTksMCx7MHhlZiwweGEzLDB4YTMsMHhhMywweDgwLDB4ZGZ9fSwKLSB7MTYsMHgzODFmLDAsezB4YmMsMHgwMCwweDBiLDB4YmUsMHgwMCwweDI5LDB4ZWYsMHg4ZCwweGYwLDB4ODQsMHhmZiwweGFkLDB4ZjAsMHgyMiwweGU0LDB4Y2N9fSwKLSB7MTYsMHgzODJmLDAsezB4ZjgsMHg3NSwweGYwLDB4MDgsMHhlZiwweDJmLDB4ZmYsMHhlZSwweDMzLDB4ZmUsMHhlYywweDMzLDB4ZmMsMHhlZSwweDlkLDB4ZWN9fSwKLSB7MTYsMHgzODNmLDAsezB4OTgsMHg0MCwweDA1LDB4ZmMsMHhlZSwweDlkLDB4ZmUsMHgwZiwweGQ1LDB4ZjAsMHhlOSwweGU0LDB4Y2UsMHhmZCwweDIyLDB4ZWR9fSwKLSB7MTYsMHgzODRmLDAsezB4ZjgsMHhmNSwweGYwLDB4ZWUsMHg4NCwweDIwLDB4ZDIsMHgxYywweGZlLDB4YWQsMHhmMCwweDc1LDB4ZjAsMHgwOCwweGVmLDB4MmZ9fSwKLSB7MTYsMHgzODVmLDAsezB4ZmYsMHhlZCwweDMzLDB4ZmQsMHg0MCwweDA3LDB4OTgsMHg1MCwweDA2LDB4ZDUsMHhmMCwweGYyLDB4MjIsMHhjMywweDk4LDB4ZmR9fSwKLSB7IDUsMHgzODZmLDAsezB4MGYsMHhkNSwweGYwLDB4ZWEsMHgyMn19LAotIHsxNiwweDM4NzQsMCx7MHhlNCwweDkwLDB4NzYsMHgyOSwweGYwLDB4OTAsMHg3NiwweDI5LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0Mn19LAotIHsxNiwweDM4ODQsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGZkLDB4ZWUsMHg2ZH19LAotIHsxNiwweDM4OTQsMCx7MHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MDYsMHg1MCwweDA4LDB4OTAsMHg3NiwweDI5LDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkNX19LAotIHsxNiwweDM4YTQsMCx7MHhlZiwweGI0LDB4MDYsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwZn19LAotIHsxNiwweDM4YjQsMCx7MHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3NiwweDJhLDB4ZjAsMHgyNH19LAotIHsxNiwweDM4YzQsMCx7MHhiZiwweDcwLDB4MDIsMHg0MSwweDQxLDB4MjQsMHhlMCwweDcwLDB4MDIsMHg0MSwweDEyLDB4MjQsMHgyMSwweDYwLDB4MDIsMHg0MX19LAotIHsxNiwweDM4ZDQsMCx7MHgzYSwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZSwweDYwLDB4N2QsMHgxNCwweDcwLDB4MDIsMHgyMSwweGIyLDB4MjQsMHgwMn19LAotIHsxNiwweDM4ZTQsMCx7MHg2MCwweDAyLDB4NDEsMHgwYSwweDEyLDB4MTcsMHg1MSwweDkwLDB4NzYsMHg0MiwweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhM319LAotIHsxNiwweDM4ZjQsMCx7MHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDI5LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDMsMHhmNX19LAotIHsxNiwweDM5MDQsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YmMsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMX19LAotIHsxNiwweDM5MTQsMCx7MHgxMiwweDkwLDB4NzYsMHg3YywweDc0LDB4NjcsMHhmMCwweDkwLDB4NzYsMHg3ZCwweDc0LDB4MDYsMHhmMCwweDkwLDB4NzYsMHg3ZX19LAotIHsxNiwweDM5MjQsMCx7MHg3NCwweDBiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgwZiwweGU0LDB4OTAsMHg3NiwweDdjLDB4ZjAsMHg5MCwweDc2LDB4N2QsMHhmMH19LAotIHsxNiwweDM5MzQsMCx7MHg5MCwweDc2LDB4N2UsMHg3NCwweDBjLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgwZiwweGU0LDB4OTAsMHg3NiwweDdjLDB4ZjAsMHg5MH19LAotIHsxNiwweDM5NDQsMCx7MHg3NiwweDdkLDB4ZjAsMHg5MCwweDc2LDB4N2UsMHg3NCwweDE4LDB4ZjAsMHg5MCwweDc2LDB4MWEsMHg3NCwweDAxLDB4ZjAsMHgxMn19LAotIHsxNiwweDM5NTQsMCx7MHgzZSwweDhmLDB4MTIsMHgxOCwweDAwLDB4MjIsMHg5MCwweDdlLDB4YzIsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4ZmUsMHhmYn19LAotIHsxNiwweDM5NjQsMCx7MHhmYSwweDc5LDB4MDEsMHhmOCwweDEyLDB4MzcsMHg0NiwweGM4LDB4ZWMsMHhjOCwweGM5LDB4ZWQsMHhjOSwweGNhLDB4ZWUsMHhjYX19LAotIHsxNiwweDM5NzQsMCx7MHhjYiwweGVmLDB4Y2IsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZlLDB4ZTQsMHhmYywweGZkLDB4MmIsMHhmYiwweGVhLDB4M2UsMHhmYX19LAotIHsxNiwweDM5ODQsMCx7MHhlZCwweDM5LDB4ZjksMHhlYywweDM4LDB4ZjgsMHg5MCwweDdlLDB4YzAsMHhlMCwweGZmLDB4ZTQsMHhmZSwweGViLDB4MmYsMHhmZn19LAotIHsxNiwweDM5OTQsMCx7MHhlZSwweDNhLDB4ZmUsMHhlZCwweDM5LDB4ZmQsMHhlYywweDM4LDB4ZmMsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjAsMHgwZn19LAotIHsxNiwweDM5YTQsMCx7MHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhiYywweDIyLDB4OTAsMHg3ZX19LAotIHsxNiwweDM5YjQsMCx7MHhjMiwweGUwLDB4ZmYsMHhlNCwweGZjLDB4ZmQsMHhmZSwweGZiLDB4ZmEsMHg3OSwweDAxLDB4ZjgsMHgxMiwweDM3LDB4NDYsMHhjOH19LAotIHsxNiwweDM5YzQsMCx7MHhlYywweGM4LDB4YzksMHhlZCwweGM5LDB4Y2EsMHhlZSwweGNhLDB4Y2IsMHhlZiwweGNiLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZX19LAotIHsxNiwweDM5ZDQsMCx7MHhlNCwweGZjLDB4ZmQsMHgyYiwweGZiLDB4ZWEsMHgzZSwweGZhLDB4ZWQsMHgzOSwweGY5LDB4ZWMsMHgzOCwweGY4LDB4OTAsMHg3ZX19LAotIHsxNiwweDM5ZTQsMCx7MHhjMCwweGUwLDB4ZmYsMHhlNCwweGZlLDB4ZWIsMHgyZiwweGZmLDB4ZWUsMHgzYSwweGZlLDB4ZWQsMHgzOSwweGZkLDB4ZWMsMHgzOH19LAotIHsxNiwweDM5ZjQsMCx7MHhmYywweDkwLDB4NzYsMHgyOSwweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNhMDQsMCx7MHhmNSwweDgzLDB4MTIsMHgzNywweGJjLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3Zn19LAotIHsxNiwweDNhMTQsMCx7MHhlOSwweGUwLDB4MTQsMHg3MCwweDE5LDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyOSwweGUwLDB4NzUsMHhmMH19LAotIHsxNiwweDNhMjQsMCx7MHgwZiwweGE0LDB4MjQsMHg0ZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDIyLDB4OTAsMHg3Zn19LAotIHsxNCwweDNhMzQsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyfX0sCi0gezE2LDB4M2E0MiwwLHsweGU0LDB4OTAsMHg3NiwweDM1LDB4ZjAsMHg5MCwweDc2LDB4MzUsMHhlMCwweGZmLDB4YzMsMHg5NCwweDAzLDB4NDAsMHgwMiwweDQxfX0sCi0gezE2LDB4M2E1MiwwLHsweGZmLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmfX0sCi0gezE2LDB4M2E2MiwwLHsweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0fX0sCi0gezE2LDB4M2E3MiwwLHsweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0fX0sCi0gezE2LDB4M2E4MiwwLHsweGYwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4M2E5MiwwLHsweDc0LDB4ZmYsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4M2FhMiwwLHsweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4M2FiMiwwLHsweDgzLDB4NzQsMHg4MCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4M2FjMiwwLHsweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4M2FkMiwwLHsweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4M2FlMiwwLHsweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4M2FmMiwwLHsweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MzUsMHhlMCwweDA0LDB4ZjAsMHg0MSwweDQ3LDB4OTAsMHg3NiwweDNjfX0sCi0gezE2LDB4M2IwMiwwLHsweDc0LDB4MGEsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4NzYsMHgzNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgzYywweGUwfX0sCi0gezE2LDB4M2IxMiwwLHsweGZmLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyLDB4NjEsMHhkMiwweDkwLDB4NzYsMHgzZCwweGUwfX0sCi0gezE2LDB4M2IyMiwwLHsweGZmLDB4MDQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4M2IzMiwwLHsweDgzLDB4ZWYsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4M2I0MiwwLHsweDgzLDB4ZTQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4M2I1MiwwLHsweDgzLDB4NzQsMHg1ZSwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4M2I2MiwwLHsweGY1LDB4ODMsMHg3NCwweGJhLDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4M2I3MiwwLHsweDc1LDB4ZjUsMHg4MywweDc0LDB4MDUsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFmLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4M2I4MiwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyfX0sCi0gezE2LDB4M2I5MiwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyfX0sCi0gezE2LDB4M2JhMiwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyfX0sCi0gezE2LDB4M2JiMiwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDE1LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMywweGY1fX0sCi0gezE2LDB4M2JjMiwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg5MCwweDc2LDB4MzUsMHhlMCwweDA0LDB4ZjAsMHg2MSwweDBlfX0sCi0geyAxLDB4M2JkMiwwLHsweDIyfX0sCi0gezE2LDB4M2JkMywwLHsweGU0LDB4OTAsMHg3NiwweDM2LDB4ZjAsMHhlMCwweGZiLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4M2JlMywwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg0MCwweGYwLDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyfX0sCi0gezE2LDB4M2JmMywwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDBhLDB4ZjAsMHhlYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MywweGY1fX0sCi0gezE2LDB4M2MwMywwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhjOCwweDAwLDB4MDAsMHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwfX0sCi0gezE2LDB4M2MxMywwLHsweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAwfX0sCi0gezE2LDB4M2MyMywwLHsweGFjLDB4NDQsMHhlYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4M2MzMywwLHsweDEyLDB4MzcsMHhjOCwweDAwLDB4MDEsMHg3NywweDAwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmYiwweDc1fX0sCi0gezE2LDB4M2M0MywwLHsweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDAsMHhmMCwweGVifX0sCi0gezE2LDB4M2M1MywwLHsweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4YywweGYwfX0sCi0gezE2LDB4M2M2MywwLHsweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3fX0sCi0gezE2LDB4M2M3MywwLHsweGM4LDB4MDAsMHgwMCwweGFjLDB4NDQsMHhlYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0NywweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4M2M4MywwLHsweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhjOCwweDAwLDB4MDAsMHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0fX0sCi0gezE2LDB4M2M5MywwLHsweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAxLDB4NzcsMHgwMCwweDkwfX0sCi0gezE2LDB4M2NhMywwLHsweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4M2NiMywwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg0MCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyfX0sCi0gezE2LDB4M2NjMywwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDhmLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmfX0sCi0gezE2LDB4M2NkMywwLHsweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg0MSwweGYwfX0sCi0gezE2LDB4M2NlMywwLHsweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDg0fX0sCi0gezE2LDB4M2NmMywwLHsweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1fX0sCi0gezE2LDB4M2QwMywwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NjEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyfX0sCi0gezE2LDB4M2QxMywwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4MSwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwfX0sCi0gezE2LDB4M2QyMywwLHsweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0fX0sCi0gezE2LDB4M2QzMywwLHsweDYxLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0geyA0LDB4M2Q0MywwLHsweDc0LDB4MDEsMHhmMCwweDIyfX0sCi0gezE2LDB4M2Q0NywwLHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksMHhjMCwweGUwfX0sCi0gezE2LDB4M2Q1NywwLHsweGVhLDB4YzAsMHhlMCwweGViLDB4YzAsMHhlMCwweGVjLDB4YzAsMHhlMCwweGVkLDB4YzAsMHhlMCwweGVlLDB4YzAsMHhlMCwweGVmfX0sCi0gezE2LDB4M2Q2NywwLHsweGMwLDB4ZTAsMHg5MCwweDdmLDB4YTIsMHhlMCwweDkwLDB4NzYsMHg3ZiwweGYwLDB4OTAsMHg3ZiwweDc0LDB4ZTAsMHg5MCwweDc2fX0sCi0gezE2LDB4M2Q3NywwLHsweDg3LDB4ZjAsMHg5MCwweDdmLDB4NzUsMHhlMCwweDkwLDB4NzYsMHg4OCwweGYwLDB4OTAsMHg3ZiwweDk4LDB4ZTAsMHg0NCwweDAyfX0sCi0gezE2LDB4M2Q4NywwLHsweGYwLDB4OTAsMHg3NiwweDk2LDB4ZTAsMHhmZiwweDIwLDB4ZTEsMHgwYywweDQ0LDB4MDIsMHhmMCwweDkwLDB4ODAsMHgwMywweGYwfX0sCi0gezE2LDB4M2Q5NywwLHsweGQyLDB4MzIsMHgxMiwweDRhLDB4YzQsMHg5MCwweDc2LDB4N2YsMHhlMCwweDIwLDB4ZTIsMHg1MCwweDkwLDB4NzYsMHg4NywweGUwfX0sCi0gezE2LDB4M2RhNywwLHsweGZlLDB4YTMsMHhlMCwweDdjLDB4MDAsMHgyNCwweDAwLDB4ZjUsMHgzNCwweGVjLDB4M2UsMHhmNSwweDMzLDB4OTAsMHg3NiwweDk4fX0sCi0gezE2LDB4M2RiNywwLHsweGUwLDB4ZmQsMHhhZSwweDMzLDB4YWYsMHgzNCwweDEyLDB4MzYsMHhkOCwweDkwLDB4NzYsMHg4NywweGVmLDB4ZjAsMHhkMiwweDJmfX0sCi0gezE2LDB4M2RjNywwLHsweDMwLDB4MzEsMHgyOSwweDIwLDB4M2YsMHgyNiwweGMyLDB4MzEsMHg5MCwweDdmLDB4OTQsMHhlMCwweDU0LDB4Y2YsMHhmMCwweDkwfX0sCi0gezE2LDB4M2RkNywwLHsweDdmLDB4OWEsMHhlMCwweDMwLDB4ZTQsMHgwNCwweGQyLDB4MmQsMHhjMiwweDJjLDB4OTAsMHg3ZiwweDlhLDB4ZTAsMHgyMCwweGU1fX0sCi0gezE2LDB4M2RlNywwLHsweDA0LDB4YzIsMHgyZCwweGQyLDB4MmMsMHg5MCwweDdmLDB4OTQsMHhlMCwweDQ0LDB4MzAsMHhmMCwweDEyLDB4NGEsMHg1MCwweDEyfX0sCi0gezE2LDB4M2RmNywwLHsweDFiLDB4MDQsMHgzMCwweDJmLDB4MTIsMHgxMiwweDQyLDB4MTYsMHhjMiwweDJmLDB4NzUsMHhlOCwweDAxLDB4MTIsMHgxNiwweDhhfX0sCi0gezE2LDB4M2UwNywwLHsweDc1LDB4ZTgsMHgwZCwweGQyLDB4MmIsMHg4MCwweDA1LDB4NzUsMHhlOCwweDAxLDB4YzIsMHgyYiwweDIwLDB4MmIsMHgzNCwweDkwfX0sCi0gezE2LDB4M2UxNywwLHsweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDBlLDB4OTAsMHg3NiwweDdjLDB4NzQsMHg2NywweGYwLDB4YTMsMHg3NCwweDA2fX0sCi0gezE2LDB4M2UyNywwLHsweGYwLDB4YTMsMHg3NCwweDBiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgwYiwweDkwLDB4NzYsMHg3YywweGU0LDB4ZjAsMHhhMywweGYwfX0sCi0gezE2LDB4M2UzNywwLHsweGEzLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGIsMHg5MCwweDc2LDB4N2MsMHhlNCwweGYwLDB4YTMsMHhmMCwweGEzfX0sCi0gezE2LDB4M2U0NywwLHsweDc0LDB4MTgsMHhmMCwweDc1LDB4Y2EsMHhkMywweDc1LDB4Y2IsMHhmZSwweGQyLDB4Y2EsMHgzMCwweDM0LDB4MDQsMHhjMiwweDM0fX0sCi0gezE2LDB4M2U1NywwLHsweDgwLDB4MDIsMHhkMiwweDM0LDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMiwweGYwLDB4ZjAsMHg5MCwweDdmfX0sCi0gezE2LDB4M2U2NywwLHsweDk4LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmQsMHhkMCwweGUwfX0sCi0gezE2LDB4M2U3NywwLHsweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDAsMHhlMCwweGZhLDB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhkMCwweGQwfX0sCi0geyA4LDB4M2U4NywwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHgzZThmLDAsezB4OTAsMHg3NiwweDkyLDB4ZTAsMHgxNCwweDYwLDB4MWQsMHgxNCwweDcwLDB4MDIsMHhlMSwweDQ0LDB4MjQsMHgwMiwweDYwLDB4MDJ9fSwKLSB7MTYsMHgzZTlmLDAsezB4ZTEsMHhkNCwweDkwLDB4NzYsMHg5NCwweDc0LDB4MDEsMHhmMCwweDkwLDB4ODAsMHgwMCwweGYwLDB4ZTQsMHg5MCwweDc2LDB4OGV9fSwKLSB7MTYsMHgzZWFmLDAsezB4ZjAsMHhkMiwweDMxLDB4MjIsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDFiLDB4ZTQsMHg5MCwweDdmLDB4ZjJ9fSwKLSB7MTYsMHgzZWJmLDAsezB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTd9fSwKLSB7MTYsMHgzZWNmLDAsezB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgxYiwweGU0LDB4OTAsMHg3ZiwweGYyLDB4ZjB9fSwKLSB7MTYsMHgzZWRmLDAsezB4OTAsMHg3ZiwweGYzLDB4NzQsMHgzNCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTB9fSwKLSB7MTYsMHgzZWVmLDAsezB4NDQsMHgwMiwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZWYsMHhiNCwweDAzLDB4MTgsMHhlNCwweDkwLDB4N2YsMHhmMiwweGYwLDB4OTB9fSwKLSB7MTYsMHgzZWZmLDAsezB4N2YsMHhmMywweDc0LDB4NjQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NDR9fSwKLSB7MTYsMHgzZjBmLDAsezB4MDQsMHhmMCwweDkwLDB4NzYsMHg5NCwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg4MCwweDAwLDB4ZjAsMHgzMCwweDNmLDB4MDl9fSwKLSB7MTYsMHgzZjFmLDAsezB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjB9fSwKLSB7MTYsMHgzZjJmLDAsezB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDkwLDB4NzYsMHg5OCwweDc0LDB4MDQsMHhmMCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgzZjNmLDAsezB4OGUsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MWIsMHhlNCwweDkwLDB4N2Z9fSwKLSB7MTYsMHgzZjRmLDAsezB4ZjIsMHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4NDQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgzZjVmLDAsezB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGVmLDB4YjQsMHgwMiwweDFiLDB4ZTQsMHg5MCwweDdmLDB4ZjJ9fSwKLSB7MTYsMHgzZjZmLDAsezB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDRjLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTd9fSwKLSB7MTYsMHgzZjdmLDAsezB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgxOCwweGU0LDB4OTAsMHg3ZiwweGYyLDB4ZjB9fSwKLSB7MTYsMHgzZjhmLDAsezB4OTAsMHg3ZiwweGYzLDB4NzQsMHg5NCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTB9fSwKLSB7MTYsMHgzZjlmLDAsezB4NDQsMHgwNCwweGYwLDB4OTAsMHg3NiwweDk0LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg5MCwweDgwLDB4MDAsMHhmMCwweDMwLDB4M2Z9fSwKLSB7MTYsMHgzZmFmLDAsezB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDF9fSwKLSB7MTYsMHgzZmJmLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4OTAsMHg3NiwweDk4LDB4NzQsMHgwNiwweGYwLDB4OTB9fSwKLSB7IDYsMHgzZmNmLDAsezB4NzYsMHg4ZSwweDc0LDB4MDIsMHhmMCwweDIyfX0sCi0gezE2LDB4M2ZkNSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwMiwweGYwfX0sCi0gezE2LDB4M2ZlNSwwLHsweDkwLDB4N2YsMHhjNywweGUwLDB4ZjUsMHgxMSwweDc1LDB4MGYsMHgwMCwweDc1LDB4MGQsMHgwMCwweGQyLDB4MzMsMHhkMCwweDgyfX0sCi0geyA1LDB4M2ZmNSwwLHsweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7IDYsMHgzZmZhLDAsezB4MTIsMHg0YSwweGM0LDB4YzIsMHgzMSwweDIyfX0sCi0gezE2LDB4NDAwMCwwLHsweGU1LDB4MTEsMHhkMywweDk0LDB4MDAsMHg1MCwweDAyLDB4MjEsMHgwNiwweDkwLDB4NzYsMHg4OSwweGUwLDB4YzMsMHg5NCwweDA4fX0sCi0gezE2LDB4NDAxMCwwLHsweDQwLDB4MDIsMHgyMSwweDA2LDB4NzQsMHg0MCwweDI1LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwfX0sCi0gezE2LDB4NDAyMCwwLHsweGY1LDB4MTcsMHhlNSwweDBkLDB4NjAsMHgwZSwweDkwLDB4ODAsMHgwNSwweGU1LDB4MTcsMHhmMCwweDkwLDB4NzYsMHg4OSwweGUwfX0sCi0gezE2LDB4NDAzMCwwLHsweDA0LDB4ZjAsMHgwMSwweGRhLDB4ZTUsMHgxNywweDEyLDB4MzcsMHhmOSwweDQwLDB4YzEsMHgwMiwweDQwLDB4NjcsMHgwNSwweDQwfX0sCi0gezE2LDB4NDA0MCwwLHsweDdhLDB4MDYsMHg0MCwweDk4LDB4MDcsMHg0MCwweGMxLDB4MGMsMHg0MCwweGMxLDB4MGQsMHg0MCwweGM3LDB4MGYsMHg0MCwweGNifX0sCi0gezE2LDB4NDA1MCwwLHsweGY2LDB4NDAsMHhjYiwweGY4LDB4NDAsMHhjYiwweGZhLDB4NDAsMHhjYiwweGZiLDB4NDAsMHhjYiwweGZjLDB4NDAsMHhjYiwweGZlfX0sCi0gezE2LDB4NDA2MCwwLHsweDQwLDB4Y2IsMHhmZiwweDAwLDB4MDAsMHg0MCwweGRhLDB4OTAsMHg3ZSwweDQxLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMCwweDkwfX0sCi0gezE2LDB4NDA3MCwwLHsweDc2LDB4ODksMHhlMCwweDA0LDB4ZjAsMHg3NSwweDExLDB4MDEsMHg4MCwweDYwLDB4OTAsMHg3ZSwweDQxLDB4ZTAsMHg5MCwweDgwfX0sCi0gezE2LDB4NDA4MCwwLHsweDA1LDB4ZjAsMHg5MCwweDdlLDB4NDIsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTAsMHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwfX0sCi0gezE2LDB4NDA5MCwwLHsweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMSwweDgwLDB4NDIsMHg5MCwweDdlLDB4NDEsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwfX0sCi0gezE2LDB4NDBhMCwwLHsweDkwLDB4N2UsMHg0MiwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MCwweDdlLDB4NDMsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwfX0sCi0gezE2LDB4NDBiMCwwLHsweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweGUwLDB4MDQsMHhmMCwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMSwweDgwfX0sCi0gezE2LDB4NDBjMCwwLHsweDE5LDB4ZDIsMHgzYiwweGQyLDB4M2MsMHg4MCwweDEzLDB4ZDIsMHgzYiwweDgwLDB4MGYsMHg5MCwweDgwLDB4MDUsMHhlNSwweDE3fX0sCi0gezE2LDB4NDBkMCwwLHsweGYwLDB4OTAsMHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxLDB4MjAsMHgzYiwweDA0LDB4MDUsMHgwZCwweDgwfX0sCi0gezE2LDB4NDBlMCwwLHsweDFmLDB4MzAsMHgzYywweDFjLDB4OTAsMHg3ZSwweDQxLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMCwweDkwLDB4N2UsMHg0MiwweGUwfX0sCi0gezE2LDB4NDBmMCwwLHsweDkwLDB4ODAsMHgwNSwweGYwLDB4OTAsMHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxfX0sCi0gezE2LDB4NDEwMCwwLHsweDA1LDB4MGYsMHgxNSwweDExLDB4MDEsMHgwMCwweGU1LDB4MTEsMHg3MCwweDEwLDB4YzIsMHgzMywweGY1LDB4MGQsMHhmNSwweDBmfX0sCi0gezExLDB4NDExMCwwLHsweDkwLDB4N2YsMHhjNywweDc0LDB4MDQsMHhmMCwweGMyLDB4M2IsMHhjMiwweDNjLDB4MjJ9fSwKLSB7MTYsMHg0MTFiLDAsezB4OTAsMHg3NiwweDhkLDB4ZTAsMHg2NCwweDAxLDB4NzAsMHgyNywweDMwLDB4MjcsMHgwOCwweGMyLDB4MjcsMHgxMiwweDA4LDB4MDB9fSwKLSB7MTYsMHg0MTJiLDAsezB4MTIsMHgxNywweDRhLDB4MzAsMHgyOCwweDA4LDB4YzIsMHgyOCwweDEyLDB4MzgsMHg3NCwweDEyLDB4MTcsMHg0YSwweDMwLDB4MmF9fSwKLSB7MTYsMHg0MTNiLDAsezB4MGUsMHhlNCwweDkwLDB4NzYsMHg4ZCwweGYwLDB4YzIsMHgyYSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMiwweGYwLDB4OTB9fSwKLSB7MTYsMHg0MTRiLDAsezB4NzYsMHgzZiwweGUwLDB4YjQsMHgwMSwweDA1LDB4ZTQsMHhmMCwweDEyLDB4MzIsMHg2ZiwweDkwLDB4NzYsMHg0MSwweGUwLDB4YjR9fSwKLSB7MTYsMHg0MTViLDAsezB4MDEsMHgwNSwweGU0LDB4ZjAsMHgxMiwweDM0LDB4OWEsMHg5MCwweDc2LDB4NDAsMHhlMCwweGI0LDB4MDEsMHgwMywweDEyLDB4MzR9fSwKLSB7MTYsMHg0MTZiLDAsezB4OWEsMHg5MCwweDdmLDB4OWIsMHhlMCwweDIwLDB4ZTQsMHgwMiwweGMyLDB4M2YsMHg5MCwweDdmLDB4OWIsMHhlMCwweDMwLDB4ZTR9fSwKLSB7MTYsMHg0MTdiLDAsezB4MDIsMHhkMiwweDNmLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHgyMCwweGU1LDB4MDIsMHhjMiwweDNlLDB4OTAsMHg3ZiwweDliLDB4ZTB9fSwKLSB7MTYsMHg0MThiLDAsezB4MzAsMHhlNSwweDAyLDB4ZDIsMHgzZSwweGEyLDB4NDEsMHgzMCwweDNmLDB4MDEsMHhiMywweDUwLDB4MWYsMHhhMiwweDNmLDB4OTJ9fSwKLSB7MTYsMHg0MTliLDAsezB4NDEsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTd9fSwKLSB7MTYsMHg0MWFiLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4MzAsMHgzZiwweDM0LDB4OTB9fSwKLSB7MTYsMHg0MWJiLDAsezB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGUsMHg5MCwweDc2LDB4N2MsMHg3NCwweDY3LDB4ZjAsMHhhMywweDc0LDB4MDZ9fSwKLSB7MTYsMHg0MWNiLDAsezB4ZjAsMHhhMywweDc0LDB4MGIsMHhmMCwweGVmLDB4YjQsMHgwMiwweDBiLDB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4ZjB9fSwKLSB7MTYsMHg0MWRiLDAsezB4YTMsMHg3NCwweDBjLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgwYiwweGU0LDB4OTAsMHg3NiwweDdjLDB4ZjAsMHhhMywweGYwLDB4YTN9fSwKLSB7MTYsMHg0MWViLDAsezB4NzQsMHgxOCwweGYwLDB4YTIsMHg0MCwweDMwLDB4M2UsMHgwMSwweGIzLDB4NTAsMHgxZiwweGEyLDB4M2UsMHg5MiwweDQwLDB4MzB9fSwKLSB7MTYsMHg0MWZiLDAsezB4M2UsMHgwOSwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTR9fSwKLSB7MTEsMHg0MjBiLDAsezB4ZmIsMHhmMCwweDkwLDB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDQyMTYsMCx7MHg5MCwweDc2LDB4MTksMHhlMCwweDY0LDB4MDEsMHg3MCwweDM1LDB4OTAsMHg3NiwweDg3LDB4ZTAsMHhmZiwweGQzLDB4OTQsMHgyZH19LAotIHsxNiwweDQyMjYsMCx7MHg0MCwweDJiLDB4OTAsMHg3NiwweDg2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDg1LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkM319LAotIHsxNiwweDQyMzYsMCx7MHg5NCwweDBmLDB4NDAsMHgxOSwweGU0LDB4ZjAsMHhlZiwweGQzLDB4OTQsMHgzMSwweDQwLDB4MDgsMHg5MCwweDc2LDB4MTksMHg3NH19LAotIHsxNiwweDQyNDYsMCx7MHgwMywweGYwLDB4ODAsMHgwNiwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDIsMHhmMCwweDEyLDB4M2UsMHg4ZiwweDkwLDB4NzYsMHgxOX19LAotIHsxNiwweDQyNTYsMCx7MHhlMCwweGI0LDB4MDIsMHgyYywweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhjMywweDk0LDB4MmYsMHg1MCwweDIyLDB4ZWYsMHhkM319LAotIHsxNiwweDQyNjYsMCx7MHg5NCwweDJhLDB4NDAsMHgxYywweDkwLDB4NzYsMHg4NiwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg4NSwweGUwLDB4MDQsMHhmMH19LAotIHsxNiwweDQyNzYsMCx7MHhlMCwweGQzLDB4OTQsMHgwZiwweDQwLDB4MGEsMHhlNCwweGYwLDB4OTAsMHg3NiwweDE5LDB4MDQsMHhmMCwweDEyLDB4M2UsMHg4Zn19LAotIHsxNiwweDQyODYsMCx7MHg5MCwweDc2LDB4MTksMHhlMCwweGI0LDB4MDIsMHgyNiwweDkwLDB4NzYsMHg4NywweGUwLDB4ZDMsMHg5NCwweDMxLDB4NDAsMHgxZH19LAotIHsxNiwweDQyOTYsMCx7MHg5MCwweDc2LDB4ODYsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4ODUsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGQzLDB4OTQsMHgwZn19LAotIHsxNiwweDQyYTYsMCx7MHg0MCwweDBiLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDMsMHhmMCwweDEyLDB4M2UsMHg4ZiwweDkwLDB4NzYsMHgxOX19LAotIHsxNiwweDQyYjYsMCx7MHhlMCwweDY0LDB4MDMsMHg3MCwweDNmLDB4OTAsMHg3NiwweDg3LDB4ZTAsMHhmZiwweGMzLDB4OTQsMHg1ZiwweDUwLDB4MzUsMHg5MH19LAotIHsxNiwweDQyYzYsMCx7MHg3NiwweDg2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDg1LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkMywweDk0LDB4MGYsMHg0MH19LAotIHsxNiwweDQyZDYsMCx7MHgyMywweGU0LDB4ZjAsMHhlZiwweGMzLDB4OTQsMHgyZiwweDUwLDB4MGMsMHhlZiwweGQzLDB4OTQsMHgyYSwweDQwLDB4MDYsMHg5MH19LAotIHsxNiwweDQyZTYsMCx7MHg3NiwweDE5LDB4NzQsMHgwMSwweGYwLDB4ZWYsMHhkMywweDk0LDB4MmYsMHg0MCwweDA2LDB4OTAsMHg3NiwweDE5LDB4NzQsMHgwMn19LAotIHsxNiwweDQyZjYsMCx7MHhmMCwweDEyLDB4M2UsMHg4ZiwweDkwLDB4NzYsMHg4NiwweGUwLDB4NzAsMHgwNSwweDkwLDB4NzYsMHg4NSwweGYwLDB4MjIsMHhlNH19LAotIHsgNSwweDQzMDYsMCx7MHg5MCwweDc2LDB4ODYsMHhmMCwweDIyfX0sCi0gezE2LDB4NDMwYiwwLHsweGU0LDB4OTAsMHg3NiwweDk2LDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMCwweDkwLDB4N2YsMHhlMCwweDc0LDB4OTAsMHhmMCwweDkwfX0sCi0gezE2LDB4NDMxYiwwLHsweDdmLDB4ZTEsMHg3NCwweDA0LDB4ZjAsMHhlNCwweDkwLDB4N2YsMHhkZCwweGYwLDB4OTAsMHg3ZiwweGExLDB4ZjAsMHg1MywweDhlfX0sCi0gezE2LDB4NDMyYiwwLHsweGY4LDB4NzUsMHg4OCwweDA1LDB4NzUsMHhiOCwweDIwLDB4NzUsMHhmOCwweDAxLDB4NDMsMHg4ZSwweDMwLDB4ZjUsMHhjOCwweDc1fX0sCi0gezE2LDB4NDMzYiwwLHsweGNhLDB4N2YsMHg3NSwweGNiLDB4ZjgsMHg0MywweGE4LDB4MjAsMHgxMiwweDA3LDB4NGEsMHhjMiwweDJjLDB4YzIsMHgyZCwweGMyfX0sCi0gezE2LDB4NDM0YiwwLHsweDJiLDB4YzIsMHgyZiwweDkwLDB4N2YsMHhmYywweDc0LDB4ZGQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmYsMHhmMCwweDkwfX0sCi0gezE2LDB4NDM1YiwwLHsweDdmLDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDEsMHhmMCwweGU0LDB4OTAsMHg3NiwweDg1fX0sCi0gezE2LDB4NDM2YiwwLHsweGYwLDB4YTMsMHhmMCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgxMiwweDQ5LDB4NTgsMHgxMiwweDBmfX0sCi0gezE2LDB4NDM3YiwwLHsweGM2LDB4MTIsMHg0YSwweDhkLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHhlMCwweDU0LDB4YjksMHhmMCwweGQyfX0sCi0gezE2LDB4NDM4YiwwLHsweDMwLDB4MjAsMHgzMCwweDE4LDB4MTIsMHg0NywweGI0LDB4MTIsMHgzMCwweDAwLDB4MTIsMHg0MCwweDAwLDB4MTIsMHg0MiwweDE2fX0sCi0gezE2LDB4NDM5YiwwLHsweDEyLDB4NGEsMHg1MCwweDEyLDB4MWIsMHgwNCwweDEyLDB4MTYsMHg2MSwweDEyLDB4NDIsMHgxNiwweGMyLDB4MmYsMHhjMiwweDMxfX0sCi0gezE2LDB4NDNhYiwwLHsweGMyLDB4MzIsMHhjMiwweDM0LDB4YzIsMHgzMywweGMyLDB4MjksMHhjMiwweDI3LDB4YzIsMHgyOCwweGU0LDB4ZjUsMHgxMSwweDkwfX0sCi0gezE2LDB4NDNiYiwwLHsweDc2LDB4ODksMHhmMCwweDkwLDB4NzYsMHgzZiwweGYwLDB4OTAsMHg3NiwweDQxLDB4ZjAsMHg5MCwweDc2LDB4NDAsMHhmMCwweDkwfX0sCi0gezE2LDB4NDNjYiwwLHsweDc2LDB4OGEsMHhmMCwweGEzLDB4ZjAsMHhhMywweDA0LDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDc2LDB4OTksMHhmMCwweDIyfX0sCi0gezE2LDB4NDNkYiwwLHsweDEyLDB4NGQsMHhhMywweDQwLDB4MDIsMHg4MSwweGEwLDB4OTAsMHg3ZiwweGViLDB4ZTAsMHgyNCwweGZlLDB4NjAsMHgxZSwweDE0fX0sCi0gezE2LDB4NDNlYiwwLHsweDYwLDB4NDYsMHgxNCwweDYwLDB4NmUsMHgxNCwweDcwLDB4MDIsMHg4MSwweDkxLDB4MjQsMHgwNCwweDYwLDB4MDIsMHg4MSwweDk5fX0sCi0gezE2LDB4NDNmYiwwLHsweDc0LDB4MDUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweDc0LDB4MDAsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhfX0sCi0gezE2LDB4NDQwYiwwLHsweGUwLDB4ZmYsMHgxMiwweDQ5LDB4ZmYsMHg4YiwweDIwLDB4OGEsMHgyMSwweDg5LDB4MjIsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlfX0sCi0gezE2LDB4NDQxYiwwLHsweGVhLDB4Y2UsMHhlZSwweDkwLDB4N2YsMHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyfX0sCi0gezE2LDB4NDQyYiwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZmLDB4MTIsMHg0OCwweGIwfX0sCi0gezE2LDB4NDQzYiwwLHsweDhiLDB4MjAsMHg4YSwweDIxLDB4ODksMHgyMiwweGVhLDB4NDksMHg2MCwweDExLDB4Y2UsMHhlYSwweGNlLDB4ZWUsMHg5MCwweDdmfX0sCi0gezE2LDB4NDQ0YiwwLHsweGQ0LDB4ZjAsMHhjZiwweGU5LDB4Y2YsMHhlZiwweDkwLDB4N2YsMHhkNSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fX0sCi0gezE2LDB4NDQ1YiwwLHsweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmYsMHg5MCwweDdlLDB4YzAsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZifX0sCi0gezE2LDB4NDQ2YiwwLHsweDEyLDB4MTcsMHg5NCwweDhiLDB4MjAsMHg4YSwweDIxLDB4ODksMHgyMiwweGVhLDB4NDksMHg2MCwweDExLDB4Y2UsMHhlYSwweGNlfX0sCi0gezE2LDB4NDQ3YiwwLHsweGVlLDB4OTAsMHg3ZiwweGQ0LDB4ZjAsMHhjZiwweGU5LDB4Y2YsMHhlZiwweDkwLDB4N2YsMHhkNSwweGYwLDB4MjIsMHg5MCwweDdmfX0sCi0gezE2LDB4NDQ4YiwwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfX0sCi0geyA1LDB4NDQ5YiwwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9fSwKLSB7IDEsMHg0NGEwLDAsezB4MjJ9fSwKLSB7MTYsMHg0NGExLDAsezB4YzIsMHhhZiwweGQyLDB4MjQsMHg5MCwweDdmLDB4OTMsMHg3NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4OWMsMHg3NCwweGJiLDB4ZjB9fSwKLSB7MTYsMHg0NGIxLDAsezB4OTAsMHg3ZiwweDk2LDB4ZTAsMHg0NCwweDMwLDB4ZjAsMHhlMCwweDU0LDB4MzAsMHhmMCwweDkwLDB4N2YsMHg5NCwweDc0LDB4MzB9fSwKLSB7MTYsMHg0NGMxLDAsezB4ZjAsMHg5MCwweDdmLDB4OWQsMHg3NCwweGNmLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHg3NCwweGEwLDB4ZjAsMHg5MCwweDdmLDB4OTV9fSwKLSB7MTYsMHg0NGQxLDAsezB4NzQsMHhjMCwweGYwLDB4OTAsMHg3ZiwweDllLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3ZiwweDk5LDB4ZTAsMHgzMCwweGUyLDB4MDl9fSwKLSB7MTYsMHg0NGUxLDAsezB4OTAsMHgwNSwweDE5LDB4NzQsMHhhMCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YzIsMHgyNSwweGMyLDB4MjIsMHhjMiwweDIzLDB4YzJ9fSwKLSB7MTYsMHg0NGYxLDAsezB4MjYsMHgxMiwweDRhLDB4YzQsMHgxMiwweDJkLDB4YTksMHgxMiwweDNiLDB4ZDMsMHgxMiwweDQ1LDB4NTksMHgxMiwweDNhLDB4NDJ9fSwKLSB7MTYsMHg0NTAxLDAsezB4OTAsMHg3NiwweDY4LDB4NzQsMHgwMSwweGYwLDB4NzAsMHgwZiwweDEyLDB4NGIsMHhiYiwweDEyLDB4MDcsMHhmZSwweDEyLDB4NGR9fSwKLSB7MTYsMHg0NTExLDAsezB4YTEsMHgxMiwweDFiLDB4NDAsMHgxMiwweDE0LDB4OTYsMHgxMiwweDQzLDB4MGIsMHg5MCwweDdmLDB4YWYsMHhlMCwweDQ0LDB4MDF9fSwKLSB7MTYsMHg0NTIxLDAsezB4ZjAsMHg5MCwweDdmLDB4YWUsMHhlMCwweDQ0LDB4MWYsMHhmMCwweDkwLDB4N2YsMHhhYywweDc0LDB4ZmYsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHg0NTMxLDAsezB4YWQsMHhmMCwweDkwLDB4N2YsMHhkZSwweGYwLDB4OTAsMHg3ZiwweGRmLDB4ZjAsMHg5MCwweDdmLDB4YWIsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHg0NTQxLDAsezB4YTksMHhmMCwweDkwLDB4N2YsMHhhYSwweGYwLDB4NTMsMHg5MSwweGVmLDB4NDMsMHhkOCwweDIwLDB4ZDIsMHhlOCwweDQzLDB4ZDh9fSwKLSB7IDgsMHg0NTUxLDAsezB4MjAsMHg1MywweGE4LDB4YTAsMHg0MywweGE4LDB4ODAsMHgyMn19LAotIHsxNiwweDQ1NTksMCx7MHhlNCwweDkwLDB4NzYsMHgzNiwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDQ1NjksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMywweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDQ1NzksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NX19LAotIHsxNiwweDQ1ODksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NX19LAotIHsxNiwweDQ1OTksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDMzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyLDB4ZjAsMHg5MH19LAotIHsxNiwweDQ1YTksMCx7MHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDQ1YjksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMywweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDQ1YzksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NX19LAotIHsxNiwweDQ1ZDksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NX19LAotIHsxNiwweDQ1ZTksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDMzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHgyMn19LAotIHsxMiwweDQ1ZjksMCx7MHg3OCwweDdmLDB4ZTQsMHhmNiwweGQ4LDB4ZmQsMHg3NSwweDgxLDB4MzgsMHgwMiwweDQ2LDB4NDB9fSwKLSB7MTYsMHg0NjA1LDAsezB4MDIsMHg0NywweDVhLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHg0MCwweDAzLDB4ZjYsMHg4MCwweDAxLDB4ZjJ9fSwKLSB7MTYsMHg0NjE1LDAsezB4MDgsMHhkZiwweGY0LDB4ODAsMHgyOSwweGU0LDB4OTMsMHhhMywweGY4LDB4NTQsMHgwNywweDI0LDB4MGMsMHhjOCwweGMzLDB4MzN9fSwKLSB7MTYsMHg0NjI1LDAsezB4YzQsMHg1NCwweDBmLDB4NDQsMHgyMCwweGM4LDB4ODMsMHg0MCwweDA0LDB4ZjQsMHg1NiwweDgwLDB4MDEsMHg0NiwweGY2LDB4ZGZ9fSwKLSB7MTYsMHg0NjM1LDAsezB4ZTQsMHg4MCwweDBiLDB4MDEsMHgwMiwweDA0LDB4MDgsMHgxMCwweDIwLDB4NDAsMHg4MCwweDkwLDB4MGMsMHg4ZiwweGU0LDB4N2V9fSwKLSB7MTYsMHg0NjQ1LDAsezB4MDEsMHg5MywweDYwLDB4YmMsMHhhMywweGZmLDB4NTQsMHgzZiwweDMwLDB4ZTUsMHgwOSwweDU0LDB4MWYsMHhmZSwweGU0LDB4OTN9fSwKLSB7MTYsMHg0NjU1LDAsezB4YTMsMHg2MCwweDAxLDB4MGUsMHhjZiwweDU0LDB4YzAsMHgyNSwweGUwLDB4NjAsMHhhOCwweDQwLDB4YjgsMHhlNCwweDkzLDB4YTN9fSwKLSB7MTYsMHg0NjY1LDAsezB4ZmEsMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2F9fSwKLSB7MTYsMHg0Njc1LDAsezB4ZjAsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhkZiwweGU5LDB4ZGUsMHhlNywweDgwLDB4YmV9fSwKLSB7MTYsMHg0Njg1LDAsezB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg5MCwweDc2LDB4ODMsMHhmMCwweGUwLDB4MTQsMHg2MCwweDFkLDB4MTQsMHg2MCwweDJhLDB4MTR9fSwKLSB7MTYsMHg0Njk1LDAsezB4NjAsMHgzNywweDE0LDB4NjAsMHg0NCwweDI0LDB4MDQsMHg3MCwweDUwLDB4OTAsMHg3NiwweDkxLDB4ZTAsMHg5MCwweDdmLDB4MDB9fSwKLSB7MTYsMHg0NmE1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDQ3LDB4OTAsMHg3NiwweDkyLDB4ZTAsMHg5MCwweDdmLDB4MDB9fSwKLSB7MTYsMHg0NmI1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDM3LDB4OTAsMHg3NiwweDkwLDB4ZTAsMHg5MCwweDdmLDB4MDB9fSwKLSB7MTYsMHg0NmM1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDI3LDB4OTAsMHg3NiwweDg0LDB4ZTAsMHg5MCwweDdmLDB4MDB9fSwKLSB7MTYsMHg0NmQ1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDE3LDB4OTAsMHg3NiwweDkzLDB4ZTAsMHg5MCwweDdmLDB4MDB9fSwKLSB7MTYsMHg0NmU1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9fSwKLSB7IDIsMHg0NmY1LDAsezB4ZDMsMHgyMn19LAotIHsxNiwweDQ2ZjcsMCx7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4YzAsMHhkMCwweGU4LDB4YzAsMHhlMCwweGU5LDB4YzAsMHhlMH19LAotIHsxNiwweDQ3MDcsMCx7MHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLDB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLDB4ZTAsMHhlZn19LAotIHsxNiwweDQ3MTcsMCx7MHhjMCwweGUwLDB4YzIsMHhjYSwweGMyLDB4Y2YsMHg5MCwweDdmLDB4OTgsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDMwLDB4MmUsMHgwM319LAotIHsxNiwweDQ3MjcsMCx7MHgxMiwweDE0LDB4YTYsMHg5MCwweDdmLDB4OTgsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDUzLDB4YTgsMHhmYSwweDEyLDB4MTYsMHg2MX19LAotIHsxNiwweDQ3MzcsMCx7MHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmQsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmIsMHhkMH19LAotIHsxNiwweDQ3NDcsMCx7MHhlMCwweGZhLDB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhkMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhmMH19LAotIHsgMywweDQ3NTcsMCx7MHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHg0NzVhLDAsezB4ZTQsMHg5MCwweDc2LDB4NjYsMHhmMCwweDEyLDB4NDQsMHhhMSwweDIwLDB4MjYsMHgxMywweDkwLDB4NzYsMHg2NiwweGUwLDB4YzN9fSwKLSB7MTYsMHg0NzZhLDAsezB4OTQsMHgwMiwweDUwLDB4MGEsMHhlMCwweDA0LDB4ZjAsMHhkMiwweDQyLDB4MTIsMHg0YSwweGY2LDB4ODAsMHhlYSwweDMwLDB4MjZ9fSwKLSB7MTYsMHg0NzdhLDAsezB4MDUsMHgxMiwweDI4LDB4MDEsMHhjMiwweDI2LDB4MzAsMHgyNSwweDJiLDB4OTAsMHg3NiwweDk2LDB4ZTAsMHg1NCwweGZjLDB4ZjB9fSwKLSB7MTYsMHg0NzhhLDAsezB4OTAsMHg4MCwweDAzLDB4ZjAsMHgxMiwweDE0LDB4OTYsMHg5MCwweDc2LDB4OTYsMHhlMCwweDQ0LDB4MDMsMHhmMCwweDkwLDB4ODB9fSwKLSB7MTYsMHg0NzlhLDAsezB4MDMsMHhmMCwweGU0LDB4OTAsMHg3NiwweDY3LDB4ZjAsMHg5MCwweDc2LDB4NjcsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGI0LDB4NGJ9fSwKLSB7MTAsMHg0N2FhLDAsezB4ZjYsMHgxMiwweDNmLDB4ZmEsMHgxMiwweDQxLDB4MWIsMHg4MCwweGM1LDB4MjJ9fSwKLSB7MTYsMHg0N2I0LDAsezB4ZTQsMHg5MCwweDc2LDB4OWIsMHhmMCwweDkwLDB4NzYsMHg5YiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4ZWYsMHg2MCwweDA4LDB4ZTB9fSwKLSB7MTYsMHg0N2M0LDAsezB4MjQsMHgwOCwweGY4LDB4ZTQsMHhmNiwweDgwLDB4ZWUsMHg5MCwweDc2LDB4OTYsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDU0LDB4Zjd9fSwKLSB7MTYsMHg0N2Q0LDAsezB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMCwweGU0LDB4ZjUsMHgxOCwweGQyLDB4MzUsMHhmNSwweDBlLDB4ZjUsMHgxMCwweGQyLDB4MzZ9fSwKLSB7MTYsMHg0N2U0LDAsezB4NzUsMHgxMiwweDExLDB4NzUsMHgxMywweDIyLDB4YzIsMHgzNywweGMyLDB4MzksMHhjMiwweDM4LDB4ZjUsMHgxNiwweGY1LDB4MTR9fSwKLSB7MTEsMHg0N2Y0LDAsezB4ZjUsMHgxYSwweGY1LDB4MGQsMHhjMiwweDNiLDB4YzIsMHgzYywweGMyLDB4M2QsMHgyMn19LAotIHsxNiwweDQ4MDAsMCx7MHg5MCwweDdmLDB4ZWMsMHhlMCwweDkwLDB4NzYsMHg4MywweGYwLDB4ZTAsMHgxNCwweDYwLDB4MTcsMHgxNCwweDYwLDB4MjEsMHgxNH19LAotIHsxNiwweDQ4MTAsMCx7MHg2MCwweDJiLDB4MTQsMHg2MCwweDMyLDB4MjQsMHgwNCwweDcwLDB4MzgsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MX19LAotIHsxNiwweDQ4MjAsMCx7MHhmMCwweDgwLDB4MzUsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MiwweGYwLDB4MTIsMHgzZSwweDhmLDB4ODAsMHgyOH19LAotIHsxNiwweDQ4MzAsMCx7MHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MCwweGYwLDB4MTIsMHgxOCwweDAwLDB4ODAsMHgxYiwweDkwLDB4N2YsMHhlYX19LAotIHsxNiwweDQ4NDAsMCx7MHhlMCwweDkwLDB4NzYsMHg4NCwweGYwLDB4ODAsMHgxMSwweDkwLDB4N2YsMHhlYSwweGUwLDB4OTAsMHg3NiwweDkzLDB4ZjAsMHg4MH19LAotIHsxMCwweDQ4NTAsMCx7MHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZDMsMHgyMn19LAotIHsxNiwweDQ4NWEsMCx7MHhlNCwweDkwLDB4NzYsMHgyNiwweGYwLDB4OTAsMHg3NiwweDI2LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzNH19LAotIHsxNiwweDQ4NmEsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGZkLDB4ZWUsMHg2ZH19LAotIHsxNiwweDQ4N2EsMCx7MHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MDQsMHg1MCwweDA4LDB4OTAsMHg3NiwweDI2LDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkNX19LAotIHsxNiwweDQ4OGEsMCx7MHhlZiwweGI0LDB4MDQsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwM319LAotIHsxNiwweDQ4OWEsMCx7MHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MH19LAotIHsgNiwweDQ4YWEsMCx7MHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4MjJ9fSwKLSB7IDIsMHg0OGIwLDAsezB4OGYsMHgyZX19LAotIHsxNiwweDQ4YjIsMCx7MHhlNCwweGY1LDB4MmYsMHg3NSwweDMwLDB4ZmYsMHg3NSwweDMxLDB4MDYsMHg3NSwweDMyLDB4YmUsMHhhYiwweDMwLDB4YWEsMHgzMX19LAotIHsxNiwweDQ4YzIsMCx7MHhhOSwweDMyLDB4OTAsMHgwMCwweDAxLDB4MTIsMHgzNiwweGFiLDB4YjQsMHgwMywweDFmLDB4YWYsMHgyZiwweDA1LDB4MmYsMHhlZn19LAotIHsxNiwweDQ4ZDIsMCx7MHg2NSwweDJlLDB4NzAsMHgwMSwweDIyLDB4MTIsMHgzNiwweDkyLDB4N2UsMHgwMCwweDI5LDB4ZmYsMHhlZSwweDNhLDB4YzksMHhlZn19LAotIHsxNiwweDQ4ZTIsMCx7MHhjOSwweDc1LDB4MzAsMHhmZiwweGY1LDB4MzEsMHg4OSwweDMyLDB4ODAsMHhkMiwweDdiLDB4MDAsMHg3YSwweDAwLDB4NzksMHgwMH19LAotIHsgMSwweDQ4ZjIsMCx7MHgyMn19LAotIHsxMiwweDQ4ZjMsMCx7MHhjMiwweDM3LDB4ZTQsMHhmNSwweDBlLDB4ZjUsMHgxMCwweGMyLDB4MzYsMHhmNSwweDE0LDB4MjJ9fSwKLSB7MTYsMHg0OTAwLDAsezB4MDIsMHgyZiwweGU3LDB4MDAsMHgwMiwweDNkLDB4NDcsMHgwMCwweDAyLDB4NGQsMHg0NiwweDAwLDB4MDIsMHg0YiwweGQ1LDB4MDB9fSwKLSB7MTYsMHg0OTEwLDAsezB4MDIsMHg0YiwweDYwLDB4MDAsMHgwMiwweDJmLDB4ZmYsMHgwMCwweDAyLDB4NGIsMHhlZCwweDAwLDB4MDIsMHg0YiwweDgxLDB4MDB9fSwKLSB7MTYsMHg0OTIwLDAsezB4MDIsMHg0YywweDA0LDB4MDAsMHgwMiwweDNmLDB4ZDUsMHgwMCwweDAyLDB4NGMsMHgxYiwweDAwLDB4MDIsMHg0YywweDMyLDB4MDB9fSwKLSB7MTYsMHg0OTMwLDAsezB4MDIsMHg0YywweDQ5LDB4MDAsMHgwMiwweDRjLDB4NjAsMHgwMCwweDAyLDB4NGMsMHg3NywweDAwLDB4MDIsMHg0YywweDhlLDB4MDB9fSwKLSB7MTYsMHg0OTQwLDAsezB4MDIsMHg0YywweGE1LDB4MDAsMHgwMiwweDRjLDB4YmMsMHgwMCwweDAyLDB4NGMsMHhkMywweDAwLDB4MDIsMHg0YywweGVhLDB4MDB9fSwKLSB7IDgsMHg0OTUwLDAsezB4MDIsMHg0ZCwweDAxLDB4MDAsMHgwMiwweDRkLDB4MTgsMHgwMH19LAotIHsxNiwweDQ5NTgsMCx7MHg5MCwweDc2LDB4NDYsMHg3NCwweDgwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhM319LAotIHsxNiwweDQ5NjgsMCx7MHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMH19LAotIHsxNiwweDQ5NzgsMCx7MHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHg3NCwweDQwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhM319LAotIHsxNiwweDQ5ODgsMCx7MHg3NCwweDQwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMH19LAotIHsxNiwweDQ5OTgsMCx7MHhhMywweDc0LDB4NDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGEzLDB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMH19LAotIHsgNSwweDQ5YTgsMCx7MHhhMywweGYwLDB4YTMsMHhmMCwweDIyfX0sCi0gezE2LDB4NDlhZCwwLHsweGU0LDB4OTAsMHg3NiwweDI1LDB4ZjAsMHg5MCwweDc2LDB4MjUsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDM0fX0sCi0gezE2LDB4NDliZCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmQsMHhlZSwweDZkfX0sCi0gezE2LDB4NDljZCwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwNCwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjUsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fX0sCi0gezE2LDB4NDlkZCwwLHsweGVmLDB4YjQsMHgwNCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2UsMHhjMCwweGUwfX0sCi0gezE2LDB4NDllZCwwLHsweGZlLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVlfX0sCi0geyAyLDB4NDlmZCwwLHsweGYwLDB4MjJ9fSwKLSB7MTYsMHg0OWZmLDAsezB4ZTQsMHhmZSwweDc1LDB4MWQsMHhmZiwweDc1LDB4MWUsMHgwNSwweDc1LDB4MWYsMHgxMiwweGFiLDB4MWQsMHhhYSwweDFlLDB4YTl9fSwKLSB7MTYsMHg0YTBmLDAsezB4MWYsMHg5MCwweDAwLDB4MDEsMHgxMiwweDM2LDB4YWIsMHg2NCwweDAyLDB4NzAsMHgyZiwweGNkLDB4ZWUsMHhjZCwweDBlLDB4ZWR9fSwKLSB7MTYsMHg0YTFmLDAsezB4NmYsMHg3MCwweDAxLDB4MjIsMHg5MCwweDAwLDB4MDIsMHgxMiwweDM3LDB4MGUsMHg4NSwweGYwLDB4MWIsMHhmNSwweDFjLDB4NjJ9fSwKLSB7MTYsMHg0YTJmLDAsezB4MWIsMHhlNSwweDFiLDB4NjIsMHgxYywweGU1LDB4MWMsMHg2MiwweDFiLDB4MjksMHhmZCwweGU1LDB4MWIsMHgzYSwweGM5LDB4ZWR9fSwKLSB7MTYsMHg0YTNmLDAsezB4YzksMHg3NSwweDFkLDB4ZmYsMHhmNSwweDFlLDB4ODksMHgxZiwweDgwLDB4YzEsMHg3YiwweDAwLDB4N2EsMHgwMCwweDc5LDB4MDB9fSwKLSB7IDEsMHg0YTRmLDAsezB4MjJ9fSwKLSB7MTYsMHg0YTUwLDAsezB4MzAsMHgyZCwweDM5LDB4YzIsMHgyZCwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGQsMHhlNCwweDkwLDB4NzZ9fSwKLSB7MTYsMHg0YTYwLDAsezB4N2MsMHhmMCwweGEzLDB4NzQsMHhmOCwweGYwLDB4YTMsMHg3NCwweDBhLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgwZCwweGU0LDB4OTB9fSwKLSB7MTYsMHg0YTcwLDAsezB4NzYsMHg3YywweGYwLDB4YTMsMHg3NCwweGYwLDB4ZjAsMHhhMywweDc0LDB4MGIsMHhmMCwweGVmLDB4YjQsMHgwMywweDBkLDB4ZTR9fSwKLSB7MTMsMHg0YTgwLDAsezB4OTAsMHg3NiwweDdjLDB4ZjAsMHhhMywweDc0LDB4ZjgsMHhmMCwweGEzLDB4NzQsMHgxNywweGYwLDB4MjJ9fSwKLSB7MTYsMHg0YThkLDAsezB4ZTQsMHhmZiwweDc0LDB4NTYsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4Mjh9fSwKLSB7MTYsMHg0YTlkLDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDVlLDB4MmYsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHg0YWFkLDAsezB4MzQsMHg3NiwweGY1LDB4ODMsMHhlMCwweGZlLDB4NzQsMHgzOCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODN9fSwKLSB7IDYsMHg0YWJkLDAsezB4ZWUsMHhmMCwweDBmLDB4YmYsMHgwOCwweGNjfX0sCi0geyAxLDB4NGFjMywwLHsweDIyfX0sCi0gezE2LDB4NGFjNCwwLHsweGU0LDB4OTAsMHg3MiwweDM2LDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHhlNCwweDkwfX0sCi0gezE2LDB4NGFkNCwwLHsweDcyLDB4MzMsMHhmMCwweDkwLDB4NzIsMHgzMiwweGYwLDB4OTAsMHg3MiwweDAxLDB4MDQsMHhmMCwweGU0LDB4OTAsMHg3MiwweDMzfX0sCi0gezE2LDB4NGFlNCwwLHsweGYwLDB4OTAsMHg3MiwweDMyLDB4ZjAsMHg5MCwweDcyLDB4MDEsMHgwNCwweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg0NCwweDA0fX0sCi0geyAyLDB4NGFmNCwwLHsweGYwLDB4MjJ9fSwKLSB7MTYsMHg0YWY2LDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDMwLDB4NDIsMHgwNCwweGUwLDB4NDR9fSwKLSB7MTYsMHg0YjA2LDAsezB4MDIsMHhmMCwweDdmLDB4ZGMsMHg3ZSwweDA1LDB4MTIsMHg0ZCwweDJmLDB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGY3LDB4ZjB9fSwKLSB7IDUsMHg0YjE2LDAsezB4ZTAsMHg0NCwweDA0LDB4ZjAsMHgyMn19LAotIHsxNiwweDRiMWIsMCx7MHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NzAsMHgxNCwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZiwweDcwLDB4MDQsMHgxMn19LAotIHsxNiwweDRiMmIsMCx7MHg0OCwweDVhLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH19LAotIHsgMywweDRiM2IsMCx7MHgwMSwweGYwLDB4MjJ9fSwKLSB7MTYsMHg0YjNlLDAsezB4OTAsMHg3ZiwweGViLDB4ZTAsMHgxNCwweDcwLDB4MTMsMHg5MCwweDdmLDB4ZTksMHhlMCwweDE0LDB4NzAsMHgwNCwweDEyLDB4NDl9fSwKLSB7MTYsMHg0YjRlLDAsezB4YWQsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9fSwKLSB7IDIsMHg0YjVlLDAsezB4ZjAsMHgyMn19LAotIHsxNiwweDRiNjAsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDEwLDB4ZjAsMHg5MH19LAotIHsxNiwweDRiNzAsMCx7MHg3NiwweDk2LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMH19LAotIHsgMSwweDRiODAsMCx7MHgzMn19LAotIHsxNiwweDRiODEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDEsMHhmMH19LAotIHsxNSwweDRiOTEsMCx7MHhjMiwweDI5LDB4OTAsMHg3NiwweDhkLDB4NzQsMHgwMSwweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHg0YmEwLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4ODIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDkxLDB4ZjAsMHg5MCwweDc2LDB4OTJ9fSwKLSB7MTEsMHg0YmIwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTAsMHhmMCwweDkwLDB4NzYsMHg5MywweGYwLDB4ZDMsMHgyMn19LAotIHsxNiwweDRiYmIsMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweDMwLDB4ZTcsMHgxMiwweGUwLDB4NDQsMHgwMSwweGYwLDB4N2YsMHgxNCwweDdlLDB4MDAsMHgxMn19LAotIHsxMCwweDRiY2IsMCx7MHg0ZCwweDJmLDB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHgyMn19LAotIHsxNiwweDRiZDUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDI1LDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwOH19LAotIHsgOCwweDRiZTUsMCx7MHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGJlZCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwMSwweGYwfX0sCi0geyA3LDB4NGJmZCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGMwNCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwMiwweGYwfX0sCi0geyA3LDB4NGMxNCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGMxYiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwNCwweGYwfX0sCi0geyA3LDB4NGMyYiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGMzMiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwNCwweGYwfX0sCi0geyA3LDB4NGM0MiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGM0OSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwOCwweGYwfX0sCi0geyA3LDB4NGM1OSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGM2MCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwOCwweGYwfX0sCi0geyA3LDB4NGM3MCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGM3NywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgxMCwweGYwfX0sCi0geyA3LDB4NGM4NywwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGM4ZSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgxMCwweGYwfX0sCi0geyA3LDB4NGM5ZSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGNhNSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgyMCwweGYwfX0sCi0geyA3LDB4NGNiNSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGNiYywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgyMCwweGYwfX0sCi0geyA3LDB4NGNjYywwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGNkMywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHg0MCwweGYwfX0sCi0geyA3LDB4NGNlMywwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGNlYSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHg0MCwweGYwfX0sCi0geyA3LDB4NGNmYSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGQwMSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHg4MCwweGYwfX0sCi0geyA3LDB4NGQxMSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGQxOCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHg4MCwweGYwfX0sCi0geyA3LDB4NGQyOCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGQyZiwwLHsweDhlLDB4MzUsMHg4ZiwweDM2LDB4ZTUsMHgzNiwweDE1LDB4MzYsMHhhZSwweDM1LDB4NzAsMHgwMiwweDE1LDB4MzUsMHg0ZSwweDYwfX0sCi0geyA3LDB4NGQzZiwwLHsweDA1LDB4MTIsMHgxNCwweDg1LDB4ODAsMHhlZSwweDIyfX0sCi0gezE2LDB4NGQ0NiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDQsMHhmMCwweGQwfX0sCi0geyA2LDB4NGQ1NiwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRkNWMsMCx7MHg5MCwweDc2LDB4ODIsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ZDMsMHgyMn19LAotIHsgOSwweDRkNmMsMCx7MHhjMiwweDI1LDB4NTMsMHhkOCwweGVmLDB4NDMsMHhkOCwweDIwLDB4MzJ9fSwKLSB7IDcsMHg0ZDc1LDAsezB4NTMsMHg5OCwweGZlLDB4NTMsMHg5OCwweGZkLDB4MzJ9fSwKLSB7IDcsMHg0ZDdjLDAsezB4NTMsMHhjMCwweGZlLDB4NTMsMHhjMCwweGZkLDB4MzJ9fSwKLSB7IDYsMHg0ZDgzLDAsezB4NTMsMHg5MSwweGJmLDB4ZDIsMHgyZCwweDMyfX0sCi0geyA2LDB4NGQ4OSwwLHsweDUzLDB4OTEsMHg3ZiwweGQyLDB4MmMsMHgzMn19LAotIHsgNCwweDRkOGYsMCx7MHg1MywweDkxLDB4ZGYsMHgzMn19LAotIHsgNCwweDRkOTMsMCx7MHg1MywweGQ4LDB4ZjcsMHgzMn19LAotIHsgNCwweDRkOTcsMCx7MHgxMiwweDE3LDB4MzAsMHgyMn19LAotIHsgMywweDRkOWIsMCx7MHhjMiwweDhkLDB4MzJ9fSwKLSB7IDMsMHg0ZDllLDAsezB4YzIsMHg4ZiwweDMyfX0sCi0geyAyLDB4NGRhMSwwLHsweGQzLDB4MjJ9fSwKLSB7IDIsMHg0ZGEzLDAsezB4ZDMsMHgyMn19LAotIHsgMiwweDRkYTUsMCx7MHhkMywweDIyfX0sCi0geyAyLDB4NGRhNywwLHsweGQzLDB4MjJ9fSwKLSB7IDIsMHg0ZGE5LDAsezB4ZDMsMHgyMn19LAotIHsgMiwweDRkYWIsMCx7MHhjMywweDIyfX0sCi0geyAwLDB4MDAwMCwxLHswfX0KLX07Ci0vKiBTb3VyY2U6IEVNSTYyU0ZXLkhFWCAKLToxMDBDOEYwMDQxNzY2ODAxNDE3NjZBMDI0MTc2NkIwQUMxMjBDMTIxMjMKLToxMDQ0QTEwMEMyQUZEMjI0OTA3RjkzNzQzMEYwOTA3RjlDNzRCQkYwQTQKLToxMDQ0QjEwMDkwN0Y5NkUwNDQzMEYwRTA1NDMwRjA5MDdGOTQ3NDMwNzcKLToxMDQ0QzEwMEYwOTA3RjlENzRDRkYwOTA3Rjk3NzRBMEYwOTA3Rjk1Q0UKLToxMDQ0RDEwMDc0QzBGMDkwN0Y5RTc0MDNGMDkwN0Y5OUUwMzBFMjA5MDAKLToxMDQ0RTEwMDkwMDUxOTc0QTBGMEU0QTNGMEMyMjVDMjIyQzIyM0MyMzAKLToxMDQ0RjEwMDI2MTI0QUM0MTIyREE5MTIzQkQzMTI0NTU5MTIzQTQyMkYKLToxMDQ1MDEwMDkwNzY2ODc0MDFGMDcwMEYxMjRCQkIxMjA3RkUxMjREQ0EKLToxMDQ1MTEwMEExMTIxQjQwMTIxNDk2MTI0MzBCOTA3RkFGRTA0NDAxOEQKLToxMDQ1MjEwMEYwOTA3RkFFRTA0NDFGRjA5MDdGQUM3NEZGRjA5MDdGN0QKLToxMDQ1MzEwMEFERjA5MDdGREVGMDkwN0ZERkYwOTA3RkFCRjA5MDdGNjkKLToxMDQ1NDEwMEE5RjA5MDdGQUFGMDUzOTFFRjQzRDgyMEQyRTg0M0Q4NDUKLTowODQ1NTEwMDIwNTNBOEEwNDNBODgwMjIxQQotOjEwNDc1QTAwRTQ5MDc2NjZGMDEyNDRBMTIwMjYxMzkwNzY2NkUwQzNCMAotOjEwNDc2QTAwOTQwMjUwMEFFMDA0RjBEMjQyMTI0QUY2ODBFQTMwMjY1NQotOjEwNDc3QTAwMDUxMjI4MDFDMjI2MzAyNTJCOTA3Njk2RTA1NEZDRjBDQgotOjEwNDc4QTAwOTA4MDAzRjAxMjE0OTY5MDc2OTZFMDQ0MDNGMDkwODA5RAotOjEwNDc5QTAwMDNGMEU0OTA3NjY3RjA5MDc2NjdFMDA0RjBFMEI0NEJCQgotOjBBNDdBQTAwRjYxMjNGRkExMjQxMUI4MEM1MjJFRgotOjEwMjgwMTAwQzIyMEMyMjFDMjJBOTA3RkU4RTAxMjM3RjkyODMwMDBBNQotOjEwMjgxMTAwMjg4QzAxMjhBMjAyMkExRjIxMkE2QTIyMjkzRDgwMjkwNwotOjEwMjgyMTAwN0Q4MTI5RDE4MjJBODRBMTJBQkFBMjAwMDAyQUJGOTBERgotOjEwMjgzMTAwN0ZFOUUwMTQ2MDExMjRGRTYwMjgyNEZFNjAzQjI0RkM0MwotOjEwMjg0MTAwNzA0MDEyNEJBMDQxQ0IxMjREQTc0MDAyNDFDQjkwN0Y2QgotOjEwMjg1MTAwRUFFMEI0MDEwNEMyMjI0MUNCOTA3RkI0RTA0NDAxRjAyQwotOjEwMjg2MTAwNDFDQjEyNERBOTkwN0ZFQUUwQjQwMTA0RDIyMjQxQ0JDMQotOjEwMjg3MTAwOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA5QgotOjEwMjg4MTAwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwMjQ1QgotOjEwMjg5MTAwRjU3MDA1MTI0ODAwNDFDQjkwN0ZCNEUwNDQwMUYwNDE0RQotOjEwMjhBMTAwQ0I5MDdGRTlFMDI0RkQ2MDU0MjQwMjYwMDIyMTM0MTJDMAotOjEwMjhCMTAwNERBNzQwMDI0MUNCOTA3RkVBRTA3MDM4OTA3RkVDRTA3OQotOjEwMjhDMTAwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjREMwotOjEwMjhEMTAwRjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkZFRgotOjEwMjhFMTAwMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDREOAotOjEwMjhGMTAwMjBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0IxMjREQTlDRgotOjEwMjkwMTAwNDAwMjQxQ0I5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTRFQwotOjEwMjkxMTAwODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODI1MwotOjEwMjkyMTAwRTQzNDdGRjU4Mzc0MDFGMDQxQ0I5MDdGQjRFMDQ0MDEzRQotOjEwMjkzMTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTBERQotOjEwMjk0MTAwNjAxMjI0Rjg2MDA5MjQwMjcwMjkxMjQzREI0MUNCMTI4MgotOjEwMjk1MTAwNEQ1QzQxQ0IxMjREQTVBMjIyRTQzM0ZGMjVFMEZGQTIzRAotOjEwMjk2MTAwMjNFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDIyRAotOjEwMjk3MTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTA5RQotOjEwMjk4MTAwNjAzMzI0RjY2MDJBMjQwNDcwM0Q5MDdGRUJFMDI0REU1RQotOjEwMjk5MTAwNjAwQzA0NzAxMjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y1MQotOjEwMjlBMTAwQjRFMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I2RAotOjEwMjlCMTAwMTI0Njg1NDFDQjEyNERBNUU0OTA3RjAwRjBBM0YwOTAyMwotOjEwMjlDMTAwN0ZCNTc0MDJGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I3QwotOjEwMjlEMTAwOTA3RkU5RTAyNEY0NjAzNDI0MEM3MDM5MTI0REE1OTAwNQotOjEwMjlFMTAwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjUxRgotOjEwMjlGMTAwRTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDA1OAotOjEwMkEwMTAwRjBFNEEzRjA5MDdGQjU3NDAyRjA0MUNCOTA3RkI0RTA4NQotOjEwMkExMTAwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y4MQotOjEwMkEyMTAwRTlFMDI0RjY2MDEyMTQ2MDFBMjQwMjcwMUREMjIwOTA4RAotOjEwMkEzMTAwN0ZCNEUwNDQwMUYwODAxMkQyMjA5MDdGQjRFMDQ0MDFFMQotOjEwMkE0MTAwRjA4MDA3OTA3RkI0RTA0NDAxRjAyMDIwMTg5MDdGRUVFMQotOjEwMkE1MTAwRTA3MDA0QTNFMDYwMEJEMjI5RDIyNzEyMTc0QUQyMkFEMAotOjEwMkE2MTAwODAwMzEyMDgwMEMyMjA4MDYxOTA3RkVFRTA3MDA0QTMxMQotOjEwMkE3MTAwRTA2MDBCRDIyOUQyMjgxMjE3NEFEMjJBODA0QzEyMzg5MAotOjEwMkE4MTAwNzQ4MDQ3OTA3RkU5RTAyNEZFNjAxMjE0NjAxQTI0MDJFQQotOjEwMkE5MTAwNzAxREQyMjE5MDdGQjRFMDQ0MDFGMDgwMTJEMjIxOTBDOAotOjEwMkFBMTAwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwMjA1RQotOjEwMkFCMTAwMjEwMzEyMTAwMEMyMjE4MDExMTIyQUQ2ODAwQzEyNEQ1RQotOjEwMkFDMTAwQUI1MDA3OTA3RkI0RTA0NDAxRjAyMDJBMDc5MDdGQjQxNwotOjA1MkFEMTAwRTA0NDAyRjAyMkM4Ci06MTA0M0RCMDAxMjREQTM0MDAyODFBMDkwN0ZFQkUwMjRGRTYwMUUxNERGCi06MTA0M0VCMDA2MDQ2MTQ2MDZFMTQ3MDAyODE5MTI0MDQ2MDAyODE5OUZFCi06MTA0M0ZCMDA3NDA1OTA3RkQ0RjA3NDAwOTA3RkQ1RjAyMjkwN0ZFQTAzCi06MTA0NDBCMDBFMEZGMTI0OUZGOEIyMDhBMjE4OTIyRUE0OTYwMTFDRUY1Ci06MTA0NDFCMDBFQUNFRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMkFDCi06MTA0NDJCMDA5MDdGQjRFMDQ0MDFGMDIyOTA3RkVBRTBGRjEyNDhCMEE1Ci06MTA0NDNCMDA4QjIwOEEyMTg5MjJFQTQ5NjAxMUNFRUFDRUVFOTA3RjQ5Ci06MTA0NDRCMDBENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyOTA3RkI0RTA0NDRBCi06MTA0NDVCMDAwMUYwMjI5MDdGRUFFMEZGOTA3RUMwRTBGREEzRTBGQjNECi06MTA0NDZCMDAxMjE3OTQ4QjIwOEEyMTg5MjJFQTQ5NjAxMUNFRUFDRTU5Ci06MTA0NDdCMDBFRTkwN0ZENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyOTA3RkY1Ci06MTA0NDhCMDBCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RjJECi06MDU0NDlCMDBCNEUwNDQwMUYwNTMKLTowMTQ0QTAwMDIyRjkKLTowMzAwMzMwMDAyNEQ2QzBGCi06MDk0RDZDMDBDMjI1NTNEOEVGNDNEODIwMzJEMAotOjAyMEM5RjAwQzEyRjYzCi06MDYzRkZBMDAxMjRBQzRDMjMxMjI4QwotOjEwNDMwQjAwRTQ5MDc2OTZGMDkwODAwM0YwOTA3RkUwNzQ5MEYwOTBCQwotOjEwNDMxQjAwN0ZFMTc0MDRGMEU0OTA3RkRERjA5MDdGQTFGMDUzOEU4OQotOjEwNDMyQjAwRjg3NTg4MDU3NUI4MjA3NUY4MDE0MzhFMzBGNUM4NzU5QQotOjEwNDMzQjAwQ0E3Rjc1Q0JGODQzQTgyMDEyMDc0QUMyMkNDMjJEQzJFNAotOjEwNDM0QjAwMkJDMjJGOTA3RkZDNzREREYwOTA3RkZGNzRGRkYwOTBGOQotOjEwNDM1QjAwN0Y5N0UwNDQwMUYwOTA3NjE5NzQwMUYwRTQ5MDc2ODUzNAotOjEwNDM2QjAwRjBBM0YwOTA3NjgxRjA5MDc2ODBGMDEyNDk1ODEyMEZGRQotOjEwNDM3QjAwQzYxMjRBOEQ5MDdGOTdFMDQ0MDhGMEUwNTRCOUYwRDIxMgotOjEwNDM4QjAwMzAyMDMwMTgxMjQ3QjQxMjMwMDAxMjQwMDAxMjQyMTY3RgotOjEwNDM5QjAwMTI0QTUwMTIxQjA0MTIxNjYxMTI0MjE2QzIyRkMyMzE1RQotOjEwNDNBQjAwQzIzMkMyMzRDMjMzQzIyOUMyMjdDMjI4RTRGNTExOTBFQgotOjEwNDNCQjAwNzY4OUYwOTA3NjNGRjA5MDc2NDFGMDkwNzY0MEYwOTBEMQotOjEwNDNDQjAwNzY4QUYwQTNGMEEzMDRGMEU0QTNGMDkwNzY5OUYwMjJBMAotOjEwNEE1MDAwMzAyRDM5QzIyRDkwNzYxOUUwRkZCNDAxMERFNDkwNzYyNwotOjEwNEE2MDAwN0NGMEEzNzRGOEYwQTM3NDBBRjBFRkI0MDIwREU0OTBBNAotOjEwNEE3MDAwNzY3Q0YwQTM3NEYwRjBBMzc0MEJGMEVGQjQwMzBERTRCNAotOjBENEE4MDAwOTA3NjdDRjBBMzc0RjhGMEEzNzQxN0YwMjI3OAotOjEwMUIwNDAwMzAyQzM4QzIyQzkwNzYxOUUwRkZCNDAxMEU5MDc2N0MwQwotOjEwMUIxNDAwNzRDMEYwQTM3NDE0RjBBMzc0MEJGMEVGQjQwMjBERTREQQotOjEwMUIyNDAwOTA3NjdDRjBBMzc0MTBGMEEzNzQwQ0YwRUZCNDAzMEI2NAotOjBDMUIzNDAwRTQ5MDc2N0NGMEEzNzQxOEYwQTNGMDIyN0IKLToxMDQxMUIwMDkwNzY4REUwNjQwMTcwMjczMDI3MDhDMjI3MTIwODAwQzMKLToxMDQxMkIwMDEyMTc0QTMwMjgwOEMyMjgxMjM4NzQxMjE3NEEzMDJBM0MKLToxMDQxM0IwMDBFRTQ5MDc2OERGMEMyMkE5MDdGQjRFMDQ0MDJGMDkwQUEKLToxMDQxNEIwMDc2M0ZFMEI0MDEwNUU0RjAxMjMyNkY5MDc2NDFFMEI0QjMKLToxMDQxNUIwMDAxMDVFNEYwMTIzNDlBOTA3NjQwRTBCNDAxMDMxMjM0NzYKLToxMDQxNkIwMDlBOTA3RjlCRTAyMEU0MDJDMjNGOTA3RjlCRTAzMEU0N0IKLToxMDQxN0IwMDAyRDIzRjkwN0Y5QkUwMjBFNTAyQzIzRTkwN0Y5QkUwMDYKLToxMDQxOEIwMDMwRTUwMkQyM0VBMjQxMzAzRjAxQjM1MDFGQTIzRjkyMTUKLToxMDQxOUIwMDQxMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3NzgKLToxMDQxQUIwMEUwNDQwMUYwOTA3Njk3RTA5MDgwMDJGMDMwM0YzNDkwM0QKLToxMDQxQkIwMDc2MTlFMEZGQjQwMTBFOTA3NjdDNzQ2N0YwQTM3NDA2NTkKLToxMDQxQ0IwMEYwQTM3NDBCRjBFRkI0MDIwQkU0OTA3NjdDRjBBM0YwNDkKLToxMDQxREIwMEEzNzQwQ0YwRUZCNDAzMEJFNDkwNzY3Q0YwQTNGMEEzODQKLToxMDQxRUIwMDc0MThGMEEyNDAzMDNFMDFCMzUwMUZBMjNFOTI0MDMwRjMKLToxMDQxRkIwMDNFMDk5MDc2OTVFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0NjQKLTowQjQyMEIwMEZCRjA5MDc2OTVFMDkwODAwMUYwMjIxRgotOjAyMDdGRTAwRDMyMjA0Ci06MDI0REExMDBEMzIyMUIKLTowMjREQTMwMEQzMjIxOQotOjEwNEJBMDAwOTA3RkVBRTA5MDc2ODJGMEU0OTA3NjkxRjA5MDc2OTJCMQotOjBCNEJCMDAwRjA5MDc2OTBGMDkwNzY5M0YwRDMyMjA2Ci06MTA0RDVDMDA5MDc2ODJFMDkwN0YwMEYwOTA3RkI1NzQwMUYwRDMyMkMyCi06MTA0ODAwMDA5MDdGRUNFMDkwNzY4M0YwRTAxNDYwMTcxNDYwMjExNDQwCi06MTA0ODEwMDA2MDJCMTQ2MDMyMjQwNDcwMzg5MDdGRUFFMDkwNzY5MTI3Ci06MTA0ODIwMDBGMDgwMzU5MDdGRUFFMDkwNzY5MkYwMTIzRThGODAyOEZCCi06MTA0ODMwMDA5MDdGRUFFMDkwNzY5MEYwMTIxODAwODAxQjkwN0ZFQTVCCi06MTA0ODQwMDBFMDkwNzY4NEYwODAxMTkwN0ZFQUUwOTA3NjkzRjA4MDlCCi06MEE0ODUwMDAwNzkwN0ZCNEUwNDQwMUYwRDMyMjhBCi06MTA0Njg1MDA5MDdGRUNFMDkwNzY4M0YwRTAxNDYwMUQxNDYwMkExNEFFCi06MTA0Njk1MDA2MDM3MTQ2MDQ0MjQwNDcwNTA5MDc2OTFFMDkwN0YwMDU4Ci06MTA0NkE1MDBGMDkwN0ZCNTc0MDFGMDgwNDc5MDc2OTJFMDkwN0YwMDlFCi06MTA0NkI1MDBGMDkwN0ZCNTc0MDFGMDgwMzc5MDc2OTBFMDkwN0YwMEEwCi06MTA0NkM1MDBGMDkwN0ZCNTc0MDFGMDgwMjc5MDc2ODRFMDkwN0YwMEFDCi06MTA0NkQ1MDBGMDkwN0ZCNTc0MDFGMDgwMTc5MDc2OTNFMDkwN0YwMDlECi06MTA0NkU1MDBGMDkwN0ZCNTc0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDRECi06MDI0NkY1MDBEMzIyQ0UKLTowMjREQTUwMEQzMjIxNwotOjAyNERBNzAwRDMyMjE1Ci06MDI0REE5MDBEMzIyMTMKLTowMjREQUIwMEMzMjIyMQotOjEwMkZFNzAwQzBFMEMwODNDMDgyRDIyNjUzOTFFRjkwN0ZBQjc0MDFCQgotOjA4MkZGNzAwRjBEMDgyRDA4M0QwRTAzMjVCCi06MTA0RDQ2MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDA0RjBEMDczCi06MDY0RDU2MDA4MkQwODNEMEUwMzJBMAotOjEwM0Q0NzAwQzBFMEMwRjBDMDgzQzA4MkMwRDBFOEMwRTBFOUMwRTBGNgotOjEwM0Q1NzAwRUFDMEUwRUJDMEUwRUNDMEUwRURDMEUwRUVDMEUwRUZCMQotOjEwM0Q2NzAwQzBFMDkwN0ZBMkUwOTA3NjdGRjA5MDdGNzRFMDkwNzYzRAotOjEwM0Q3NzAwODdGMDkwN0Y3NUUwOTA3Njg4RjA5MDdGOThFMDQ0MDIxNgotOjEwM0Q4NzAwRjA5MDc2OTZFMEZGMjBFMTBDNDQwMkYwOTA4MDAzRjA3QgotOjEwM0Q5NzAwRDIzMjEyNEFDNDkwNzY3RkUwMjBFMjUwOTA3Njg3RTBENAotOjEwM0RBNzAwRkVBM0UwN0MwMDI0MDBGNTM0RUMzRUY1MzM5MDc2OThEMgotOjEwM0RCNzAwRTBGREFFMzNBRjM0MTIzNkQ4OTA3Njg3RUZGMEQyMkZDRQotOjEwM0RDNzAwMzAzMTI5MjAzRjI2QzIzMTkwN0Y5NEUwNTRDRkYwOTBDNAotOjEwM0RENzAwN0Y5QUUwMzBFNDA0RDIyREMyMkM5MDdGOUFFMDIwRTU1MAotOjEwM0RFNzAwMDRDMjJERDIyQzkwN0Y5NEUwNDQzMEYwMTI0QTUwMTIzNgotOjEwM0RGNzAwMUIwNDMwMkYxMjEyNDIxNkMyMkY3NUU4MDExMjE2OEFDMQotOjEwM0UwNzAwNzVFODBERDIyQjgwMDU3NUU4MDFDMjJCMjAyQjM0OTA2NQotOjEwM0UxNzAwNzYxOUUwRkZCNDAxMEU5MDc2N0M3NDY3RjBBMzc0MDYwMAotOjEwM0UyNzAwRjBBMzc0MEJGMEVGQjQwMjBCOTA3NjdDRTRGMEEzRjBGMAotOjEwM0UzNzAwQTM3NDBDRjBFRkI0MDMwQjkwNzY3Q0U0RjBBM0YwQTMyQgotOjEwM0U0NzAwNzQxOEYwNzVDQUQzNzVDQkZFRDJDQTMwMzQwNEMyMzRBNQotOjEwM0U1NzAwODAwMkQyMzQ1MzkxRUY5MDdGQUI3NDAyRjBGMDkwN0ZFMQotOjEwM0U2NzAwOThFMDU0RkRGMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBEOAotOjEwM0U3NzAwRkNEMEUwRkJEMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDAyOQotOjA4M0U4NzAwODJEMDgzRDBGMEQwRTAzMkJDCi06MTA0QjYwMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDEwRjA5MDhGCi06MTA0QjcwMDA3Njk2RTA1NEZERjA5MDgwMDNGMEQwODJEMDgzRDBFMEIwCi06MDE0QjgwMDAzMjAyCi06MDEyRkZGMDAzMjlGCi06MTA0QkQ1MDBDMEUwQzA4M0MwODJEMjI1NTM5MUVGOTA3RkFCNzQwOEFCCi06MDg0QkU1MDBGMEQwODJEMDgzRDBFMDMyNTEKLToxMDRCRUQwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwMUYwRjMKLTowNzRCRkQwMEQwODJEMDgzRDBFMDMyMkEKLToxMDRCODEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwMUYwNUUKLTowRjRCOTEwMEMyMjk5MDc2OEQ3NDAxRjBEMDgyRDA4M0QwRTAzMkFCCi06MTA0QzA0MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDJGMERBCi06MDc0QzE0MDBEMDgyRDA4M0QwRTAzMjEyCi06MTAzRkQ1MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDJGMDE1Ci06MTAzRkU1MDA5MDdGQzdFMEY1MTE3NTBGMDA3NTBEMDBEMjMzRDA4MkIzCi06MDUzRkY1MDBEMDgzRDBFMDMyOTIKLToxMDRDMUIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwNEYwQzEKLTowNzRDMkIwMEQwODJEMDgzRDBFMDMyRkIKLToxMDRDMzIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwNEYwQTkKLTowNzRDNDIwMEQwODJEMDgzRDBFMDMyRTQKLToxMDRDNDkwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwOEYwOEYKLTowNzRDNTkwMEQwODJEMDgzRDBFMDMyQ0QKLToxMDRDNjAwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwOEYwNzcKLTowNzRDNzAwMEQwODJEMDgzRDBFMDMyQjYKLToxMDRDNzcwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQxMEYwNTkKLTowNzRDODcwMEQwODJEMDgzRDBFMDMyOUYKLToxMDRDOEUwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQxMEYwNDEKLTowNzRDOUUwMEQwODJEMDgzRDBFMDMyODgKLToxMDRDQTUwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQyMEYwMUIKLTowNzRDQjUwMEQwODJEMDgzRDBFMDMyNzEKLToxMDRDQkMwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQyMEYwMDMKLTowNzRDQ0MwMEQwODJEMDgzRDBFMDMyNUEKLToxMDRDRDMwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQ0MEYwQ0QKLTowNzRDRTMwMEQwODJEMDgzRDBFMDMyNDMKLToxMDRDRUEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQ0MEYwQjUKLTowNzRDRkEwMEQwODJEMDgzRDBFMDMyMkMKLToxMDREMDEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQ4MEYwNUUKLTowNzREMTEwMEQwODJEMDgzRDBFMDMyMTQKLToxMDREMTgwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQ4MEYwNDYKLTowNzREMjgwMEQwODJEMDgzRDBFMDMyRkQKLToxMDQyMTYwMDkwNzYxOUUwNjQwMTcwMzU5MDc2ODdFMEZGRDM5NDJEOEYKLToxMDQyMjYwMDQwMkI5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzMUEKLToxMDQyMzYwMDk0MEY0MDE5RTRGMEVGRDM5NDMxNDAwODkwNzYxOTc0NDYKLToxMDQyNDYwMDAzRjA4MDA2OTA3NjE5NzQwMkYwMTIzRThGOTA3NjE5NkMKLToxMDQyNTYwMEUwQjQwMjJDOTA3Njg3RTBGRkMzOTQyRjUwMjJFRkQzNzAKLToxMDQyNjYwMDk0MkE0MDFDOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwREUKLToxMDQyNzYwMEUwRDM5NDBGNDAwQUU0RjA5MDc2MTkwNEYwMTIzRThGRDIKLToxMDQyODYwMDkwNzYxOUUwQjQwMjI2OTA3Njg3RTBEMzk0MzE0MDFERUIKLToxMDQyOTYwMDkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDM5NDBGNzIKLToxMDQyQTYwMDQwMEJFNEYwOTA3NjE5NzQwM0YwMTIzRThGOTA3NjE5NjUKLToxMDQyQjYwMEUwNjQwMzcwM0Y5MDc2ODdFMEZGQzM5NDVGNTAzNTkwQ0IKLToxMDQyQzYwMDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzOTQwRjQwOTIKLToxMDQyRDYwMDIzRTRGMEVGQzM5NDJGNTAwQ0VGRDM5NDJBNDAwNjkwQkEKLToxMDQyRTYwMDc2MTk3NDAxRjBFRkQzOTQyRjQwMDY5MDc2MTk3NDAyNzQKLToxMDQyRjYwMEYwMTIzRThGOTA3Njg2RTA3MDA1OTA3Njg1RjAyMkU0ODcKLTowNTQzMDYwMDkwNzY4NkYwMjIxNAotOjEwMDc0QTAwOTA3NjlBNzQwMkYwRTQ5MDc2OTFGMEEzRjA5MDc2OTAwNQotOjEwMDc1QTAwRjA5MDc2OTNGMDkwNzY5Njc0MDNGMDkwODAwM0YwRTQyQwotOjEwMDc2QTAwOTA3Njk3RjA5MDgwMDJGMDkwNzY5NDA0RjA5MDgwMDA1MgotOjEwMDc3QTAwRjBFNDkwNzY4RUYwOTA3NjFBRjA5MDc2OTUwNEYwQzJCNgotOjEwMDc4QTAwMkU5MDdGOUJFMEZGNTQxMEZGNzAwMkMyM0Y5MDdGOUIyOAotOjEwMDc5QTAwRTBGRjU0MTBGRUZGQkUxMDAyRDIzRjkwN0Y5QkUwRkZBNQotOjEwMDdBQTAwNTQyMEZGNzAwMkMyM0U5MDdGOUJFMEZGNTQyMEZFRkY2MAotOjEwMDdCQTAwQkUyMDAyRDIzRTMwM0YwOTkwNzY5N0UwNTRGRUYwODA4OAotOjEwMDdDQTAwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyRjBFNwotOjEwMDdEQTAwMzAzRTA5OTA3Njk1RTA0NDA0RjA4MDA3OTA3Njk1RTBFMwotOjEwMDdFQTAwNTRGQkYwOTA3Njk1RTA5MDgwMDFGMEEyM0U5MjQwQTJGMAotOjAzMDdGQTAwM0Y5MjQxRUEKLTowMTA3RkQwMDIyRDkKLToxMDNFOEYwMDkwNzY5MkUwMTQ2MDFEMTQ3MDAyRTE0NDI0MDI2MDAyRTcKLToxMDNFOUYwMEUxRDQ5MDc2OTQ3NDAxRjA5MDgwMDBGMEU0OTA3NjhFRTcKLToxMDNFQUYwMEYwRDIzMTIyOTA3NjE5RTBGRkI0MDExQkU0OTA3RkYyM0IKLToxMDNFQkYwMEYwOTA3RkYzNzQzMEYwOTA3RkZGNzRGQ0YwOTA3Njk3NjIKLToxMDNFQ0YwMEUwNTRGREYwNTRGQkYwRUZCNDAyMUJFNDkwN0ZGMkYwRUUKLToxMDNFREYwMDkwN0ZGMzc0MzRGMDkwN0ZGRjc0RkNGMDkwNzY5N0UwNEUKLToxMDNFRUYwMDQ0MDJGMDU0RkJGMEVGQjQwMzE4RTQ5MDdGRjJGMDkwMkIKLToxMDNFRkYwMDdGRjM3NDY0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDQ0NEEKLToxMDNGMEYwMDA0RjA5MDc2OTRFMDQ0MDFGMDkwODAwMEYwMzAzRjA5ODcKLToxMDNGMUYwMDkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwOUEKLToxMDNGMkYwMDkwNzY5N0UwOTA4MDAyRjA5MDc2OTg3NDA0RjA5MDc2RjcKLToxMDNGM0YwMDhFNzQwMUYwMjI5MDc2MTlFMEZGQjQwMTFCRTQ5MDdGOUMKLToxMDNGNEYwMEYyRjA5MDdGRjM3NDQ0RjA5MDdGRkY3NEZDRjA5MDc2NjIKLToxMDNGNUYwMDk3RTA1NEZERjA1NEZCRjBFRkI0MDIxQkU0OTA3RkYyQjYKLToxMDNGNkYwMEYwOTA3RkYzNzQ0Q0YwOTA3RkZGNzRGQ0YwOTA3Njk3OTUKLToxMDNGN0YwMEUwNDQwMkYwNTRGQkYwRUZCNDAzMThFNDkwN0ZGMkYwNEEKLToxMDNGOEYwMDkwN0ZGMzc0OTRGMDkwN0ZGRjc0RkNGMDkwNzY5N0UwM0QKLToxMDNGOUYwMDQ0MDRGMDkwNzY5NEUwNTRGRUYwOTA4MDAwRjAzMDNGQUYKLToxMDNGQUYwMDA5OTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjEKLToxMDNGQkYwMEYwOTA3Njk3RTA5MDgwMDJGMDkwNzY5ODc0MDZGMDkwRUIKLTowNjNGQ0YwMDc2OEU3NDAyRjAyMjYwCi06MTAxODAwMDA5MDc2OTBFMDE0NjAzNzE0NzAwMjAxRDgxNDcwMDIyMUIxCi06MTAxODEwMDA3MjE0NzAwMjQxM0IyNDA0NjAwMjYxMDM5MDdGRkM3NEU3Ci06MTAxODIwMDBDQ0YwOTA3RkZGNzRGQ0YwOTA3Njk1RTA0NDAxRjA1NDhBCi06MTAxODMwMDAwNUYwOTA4MDAxRjBFNDkwNzYxQUYwQzIyRTIyOTA3NkE2Ci06MTAxODQwMDA5NUUwNDQwMUYwNDQwMkYwMzAzRTA2RTA0NDA0RjA4MEFDCi06MTAxODUwMDAwNzkwNzY5NUUwNTRGQkYwOTA3NjFBRTBCNDAxMDg5MDdBCi06MTAxODYwMDA3Njk1RTA5MDgwMDFGMDkwNzYxOUUwRkZCNDAxMjI5MDI3Ci06MTAxODcwMDA3RkZDNzQ3NEYwOTA3RkZGNzRGQ0YwOTA3NjhGNzQyQjczCi06MTAxODgwMDBGMDkwNzY5N0UwNTRGREYwRTQ5MDc2ODFGMDkwNzY4MEM5Ci06MTAxODkwMDBGMEVGQjQwMjIyOTA3RkZDNzQ2OEYwOTA3RkZGNzRGQzNDCi06MTAxOEEwMDBGMDkwNzY4Rjc0MkZGMDkwNzY5N0UwNDQwMkYwRTQ5MEY5Ci06MTAxOEIwMDA3NjgxRjA5MDc2ODBGMDMwM0YwOTkwNzY5N0UwNTRGRTg0Ci06MTAxOEMwMDBGMDgwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5N0UwNTRGQjIzCi06MTAxOEQwMDBGMDkwODAwMkYwRDIyRTIyOTA3Njk1RTA1NEZFRjA0NEYzCi06MTAxOEUwMDAwMkYwMzAzRTA2RTA0NDA0RjA4MDA3OTA3Njk1RTA1NDI0Ci06MTAxOEYwMDBGQkYwOTA3NjFBRTBCNDAxMDg5MDc2OTVFMDkwODAwMUI0Ci06MTAxOTAwMDBGMDkwNzYxOUUwRkZCNDAxMjI5MDdGRkM3NDMwRjA5MEUzCi06MTAxOTEwMDA3RkZGNzRGQ0YwOTA3NjhGNzQyQkYwOTA3Njk3RTA1NEY0Ci06MTAxOTIwMDBGREYwRTQ5MDc2ODFGMDkwNzY4MEYwRUZCNDAyMjI5MEEyCi06MTAxOTMwMDA3RkZDNzQxQ0YwOTA3RkZGNzRGQ0YwOTA3NjhGNzQyRjA2Ci06MTAxOTQwMDBGMDkwNzY5N0UwNDQwMkYwRTQ5MDc2ODFGMDkwNzY4MDEzCi06MTAxOTUwMDBGMDMwM0YwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5NzNDCi06MTAxOTYwMDBFMDQ0MDFGMDkwNzY5N0UwNTRGQkYwOTA4MDAyRjBEMkQyCi06MTAxOTcwMDAyRTIyOTA3Njk1RTA0NDAxRjA0NDAyRjA0NDA4RjAzMEM1Ci06MTAxOTgwMDAzRTA2RTA0NDA0RjA4MDA3OTA3Njk1RTA1NEZCRjA5MDJBCi06MTAxOTkwMDA3NjFBRTBCNDAxMDg5MDc2OTVFMDkwODAwMUYwOTA3Njk4Ci06MTAxOUEwMDAxOUUwRkZCNDAxMjU5MDdGRkM3NENDRjA5MDdGRkY3NEE4Ci06MTAxOUIwMDBGQ0YwOTA3NjhGNzQyQkYwOTA3Njk3RTA1NEZERjA1NDA1Ci06MTAxOUMwMDBGQkYwRTQ5MDc2ODFGMDkwNzY4MEYwRUZCNDAyMjU5MDAxCi06MTAxOUQwMDA3RkZDNzRDOEYwOTA3RkZGNzRGQ0YwOTA3NjhGNzQyRkJBCi06MTAxOUUwMDBGMDkwNzY5N0UwNDQwMkYwNTRGQkYwRTQ5MDc2ODFGMEJBCi06MTAxOUYwMDA5MDc2ODBGMEVGQjQwMzI1OTA3RkZDNzQ5OEYwOTA3RjkwCi06MTAxQTAwMDBGRjc0RkNGMDkwNzY4Rjc0NUZGMDkwNzY5N0UwNTRGRDUxCi06MTAxQTEwMDBGMDQ0MDRGMEU0OTA3NjgxRjA5MDc2ODBGMDMwM0YwOTU1Ci06MTAxQTIwMDA5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMEJFCi06MTAxQTMwMDA5MDc2OTdFMDkwODAwMkYwRDIyRTIyOTA3Njk1RTA1NDM2Ci06MTAxQTQwMDBGRUYwNDQwMkYwNDQwOEYwMzAzRTA2RTA0NDA0RjA4MDJBCi06MTAxQTUwMDAwNzkwNzY5NUUwNTRGQkYwOTA3NjFBRTBCNDAxMDg5MDc4Ci06MTAxQTYwMDA3Njk1RTA5MDgwMDFGMDkwNzYxOUUwRkZCNDAxMjU5MDIyCi06MTAxQTcwMDA3RkZDNzRCNEYwOTA3RkZGNzRGQ0YwOTA3NjhGNzQyQjMxCi06MTAxQTgwMDBGMDkwNzY5N0UwNTRGREYwNTRGQkYwRTQ5MDc2ODFGMDBFCi06MTAxQTkwMDA5MDc2ODBGMEVGQjQwMjI1OTA3RkZDNzRCMEYwOTA3RkQ4Ci06MTAxQUEwMDBGRjc0RkNGMDkwNzY4Rjc0MkZGMDkwNzY5N0UwNDQwMkVDCi06MTAxQUIwMDBGMDU0RkJGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMzgwCi06MTAxQUMwMDAyNTkwN0ZGQzc0NjhGMDkwN0ZGRjc0RkNGMDkwNzY4RjE3Ci06MTAxQUQwMDA3NDVGRjA5MDc2OTdFMDU0RkRGMDQ0MDRGMEU0OTA3NjYzCi06MTAxQUUwMDA4MUYwOTA3NjgwRjAzMDNGMDk5MDc2OTdFMDU0RkVGMEQ4Ci06MTAxQUYwMDA4MDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDkwODAwMjFFCi06MDQxQjAwMDBGMEQyMkUyMkNGCi06MDQwQ0ExMDA0MTc2MjMwMDc1Ci06MTAyREE5MDBFNDkwNzYzNkYwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDkyCi06MTAyREI5MDAzNDc1RjU4Mzc0MDFGMEVGNzVGMDAzQTQyNDBGRjU4MkRGCi06MTAyREM5MDBFNDM0NzVGNTgzNzQwMUYwRUY3NUYwMDNBNDI0MTBGNTZDCi06MTAyREQ5MDA4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTAwNEYwRTBGRkEwCi06MTAyREU5MDA3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MTBGMEFDCi06MTAyREY5MDBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQwNUE3Ci06MTAyRTA5MDBGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODNFNDNBCi06MTAyRTE5MDBGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTk3Ci06MTAyRTI5MDA4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQwRjdFCi06MTAyRTM5MDBGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQyNDg4Ci06MTAyRTQ5MDAxMEY1ODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwMDRGMDA5Ci06MTAyRTU5MDBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDVDCi06MTAyRTY5MDAwMUYwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4M0JFCi06MTAyRTc5MDA3NDAzRjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNUJBCi06MTAyRTg5MDA4M0U0RjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNEMzCi06MTAyRTk5MDAwRUY1ODJFNDM0NzVGNTgzNzQxMEYwRUY3NUYwMDNBNDMwCi06MTAyRUE5MDAyNDBGRjU4MkU0MzQ3NUY1ODM3NDA2RjBFRjc1RjAwM0E5Ci06MTAyRUI5MDBBNDI0MTBGNTgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMEM1Ci06MTAyRUM5MDAwNEYwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNUVGCi06MTAyRUQ5MDA4Mzc0MDJGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUNFCi06MTAyRUU5MDBGNTgzNzQwNEYwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDNCCi06MTAyRUY5MDA3NUY1ODNFNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0IxCi06MTAyRjA5MDBBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMEFDCi06MTAyRjE5MDAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQwOEYwRUY3NTgyCi06MTAyRjI5MDBGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODM3NDA0RjA5MDU5Ci06MTAyRjM5MDA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDkwCi06MTAyRjQ5MDAzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQyNDBGRjU4MjRDCi06MTAyRjU5MDBFNDM0NzVGNTgzNzQwQUYwRUY3NUYwMDNBNDI0MTBGNUQxCi06MTAyRjY5MDA4MkU0MzQ3NUY1ODM3NDA0RjA5MDc2MzZFMDA0RjBFMDc5Ci06MTAyRjc5MDBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQwMjE5Ci06MTAyRjg5MDBGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODM3NDJBCi06MTAyRjk5MDAwOUYwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjU4Mzg0Ci06MTAyRkE5MDA3NDA0RjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDkxCi06MTAyRkI5MDAwRUY1ODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDFECi06MTAyRkM5MDAyNDBGRjU4MkU0MzQ3NUY1ODM3NDA3RjBFRjc1RjAwMzg3Ci06MEUyRkQ5MDBBNDI0MTBGNTgyRTQzNDc1RjU4Mzc0MDRGMDIyMEMKLToxMDNCRDMwMEU0OTA3NjM2RjBFMEZCNzVGMDBGQTQyNDQxRjU4MkU0MUYKLToxMDNCRTMwMDM0NzVGNTgzNzQ0MEYwRUI3NUYwMEZBNDI0NDJGNTgyMkQKLToxMDNCRjMwMEU0MzQ3NUY1ODM3NDBBRjBFQjc1RjAwRkE0MjQ0M0Y1RjAKLToxMDNDMDMwMDgyRTQzNDc1RjU4MzEyMzdDODAwMDBBQzQ0RUI3NUYwRDkKLToxMDNDMTMwMDBGQTQyNDQ3RjU4MkU0MzQ3NUY1ODMxMjM3QzgwMDAwRjYKLToxMDNDMjMwMEFDNDRFQjc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzQjMKLToxMDNDMzMwMDEyMzdDODAwMDE3NzAwOTA3NjM2RTAwNEYwRTBGQjc1OTgKLToxMDNDNDMwMEYwMEZBNDI0NDFGNTgyRTQzNDc1RjU4Mzc0NDBGMEVCNUUKLToxMDNDNTMwMDc1RjAwRkE0MjQ0MkY1ODJFNDM0NzVGNTgzNzQ4Q0YwNzcKLToxMDNDNjMwMEVCNzVGMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODMxMjM3MjIKLToxMDNDNzMwMEM4MDAwMEFDNDRFQjc1RjAwRkE0MjQ0N0Y1ODJFNDM0OEMKLToxMDNDODMwMDc1RjU4MzEyMzdDODAwMDBBQzQ0RUI3NUYwMEZBNDI0MUMKLToxMDNDOTMwMDRCRjU4MkU0MzQ3NUY1ODMxMjM3QzgwMDAxNzcwMDkwNDEKLToxMDNDQTMwMDc2MzZFMDA0RjBFMEZGNzVGMDBGQTQyNDQxRjU4MkU0REEKLToxMDNDQjMwMDM0NzVGNTgzNzQ0MEYwRUY3NUYwMEZBNDI0NDJGNTgyNTgKLToxMDNDQzMwMEU0MzQ3NUY1ODM3NDhGRjA5MDc2MzZFMDA0RjBFMEZGMEEKLToxMDNDRDMwMDc1RjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0MUYwNDMKLToxMDNDRTMwMEVGNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM3NDg0RjAKLToxMDNDRjMwMEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwRkE0MjQ0MUY1NzAKLToxMDNEMDMwMDgyRTQzNDc1RjU4Mzc0NjFGMEVGNzVGMDBGQTQyNDQyRjcKLToxMDNEMTMwMEY1ODJFNDM0NzVGNTgzNzQ4MUYwOTA3NjM2RTAwNEYwMkYKLToxMDNEMjMwMEUwRkY3NUYwMEZBNDI0NDFGNTgyRTQzNDc1RjU4Mzc0NDQKLToxMDNEMzMwMDYxRjBFRjc1RjAwRkE0MjQ0MkY1ODJFNDM0NzVGNTgzNDYKLTowNDNENDMwMDc0MDFGMDIyRjUKLToxMDQ1NTkwMEU0OTA3NjM2RjBFMEZGNzVGMDAzQTQyNDMyRjU4MkU0QTYKLToxMDQ1NjkwMDM0NzVGNTgzRTRGMEVGNzVGMDAzQTQyNDMzRjU4MkU0QTAKLToxMDQ1NzkwMDM0NzVGNTgzNzQwMUYwOTA3NjM2RTAwNEYwRTBGRjc1NDgKLToxMDQ1ODkwMEYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0U0RjBFRjc1ODEKLToxMDQ1OTkwMEYwMDNBNDI0MzNGNTgyRTQzNDc1RjU4Mzc0MDJGMDkwQjIKLToxMDQ1QTkwMDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDMyRjU4MkU0RTYKLToxMDQ1QjkwMDM0NzVGNTgzRTRGMEVGNzVGMDAzQTQyNDMzRjU4MkU0NTAKLToxMDQ1QzkwMDM0NzVGNTgzNzQwM0YwOTA3NjM2RTAwNEYwRTBGRjc1RjYKLToxMDQ1RDkwMEYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0U0RjBFRjc1MzEKLToxMDQ1RTkwMEYwMDNBNDI0MzNGNTgyRTQzNDc1RjU4Mzc0MDRGMDIyQ0UKLToxMDNBNDIwMEU0OTA3NjM1RjA5MDc2MzVFMEZGQzM5NDAzNDAwMjQxNkUKLToxMDNBNTIwMEZGRUY3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RjU4M0VGMkEKLToxMDNBNjIwMEYwRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0U0MzMKLToxMDNBNzIwMEYwRUY3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4Mzc0OTIKLToxMDNBODIwMEYwRjBFRjc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzMDUKLToxMDNBOTIwMDc0RkZGMEVGNzVGMDBBQTQyNEFFRjU4MkU0MzQ3NUY1RjQKLToxMDNBQTIwMDgzRTRGMEVGNzVGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1RUYKLToxMDNBQjIwMDgzNzQ4MEYwRUY3NUYwMEFBNDI0QjBGNTgyRTQzNDc1QzMKLToxMDNBQzIwMEY1ODNFNEYwRUY3NUYwMEFBNDI0QjFGNTgyRTQzNDc1Q0QKLToxMDNBRDIwMEY1ODNFNEYwRUY3NUYwMEFBNDI0QjJGNTgyRTQzNDc1QkMKLToxMDNBRTIwMEY1ODNFNEYwRUY3NUYwMEFBNDI0QjNGNTgyRTQzNDc1QUIKLToxMDNBRjIwMEY1ODM3NDAxRjA5MDc2MzVFMDA0RjA0MTQ3OTA3NjNDMEUKLToxMDNCMDIwMDc0MEFGMEU0QTNGMDkwNzYzNTc0MDNGMDkwNzYzQ0UwMEEKLToxMDNCMTIwMEZGOTA3NjM1RTBGRUMzOUY0MDAyNjFEMjkwNzYzREUwOTEKLToxMDNCMjIwMEZGMDRGMEVFNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUY1RDgKLToxMDNCMzIwMDgzRUZGMEVFNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1NTgKLToxMDNCNDIwMDgzRTRGMEVFNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1NTIKLToxMDNCNTIwMDgzNzQ1RUYwRUU3NUYwMEFBNDI0QURGNTgyRTQzNDc1NDgKLToxMDNCNjIwMEY1ODM3NEJBRjBFRTc1RjAwQUE0MjRBRUY1ODJFNDM0NUIKLToxMDNCNzIwMDc1RjU4Mzc0MDVGMEVFNzVGMDBBQTQyNEFGRjU4MkU0QkUKLToxMDNCODIwMDM0NzVGNTgzNzQ4MEYwRUU3NUYwMEFBNDI0QjBGNTgyRTIKLToxMDNCOTIwMEU0MzQ3NUY1ODNFNEYwRUU3NUYwMEFBNDI0QjFGNTgyRkQKLToxMDNCQTIwMEU0MzQ3NUY1ODNFNEYwRUU3NUYwMEFBNDI0QjJGNTgyRUMKLToxMDNCQjIwMEU0MzQ3NUY1ODM3NDE1RjBFRTc1RjAwQUE0MjRCM0Y1QjgKLToxMDNCQzIwMDgyRTQzNDc1RjU4M0U0RjA5MDc2MzVFMDA0RjA2MTBFMUEKLTowMTNCRDIwMDIyRDAKLToxMDA4MDAwMEU0OTA3NjMxRjA5MDc2MzFFMEZGNzVGMDAzQTQyNDBGODgKLToxMDA4MTAwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFREUwRkRFRTZENEEKLToxMDA4MjAwMDYwMEVFRkMzOTQwQjUwMDg5MDc2MzFFMDA0RjA4MEQ1NTEKLToxMDA4MzAwMEVGQjQwQjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzQjEKLToxMDA4NDAwMEE0MjQwRUY1ODJFNDM0NzVGNTgzRTA5MDc2MzNGMDI0MjkKLToxMDA4NTAwMEYwNjAwQTI0MEU2MDAyODE4NzEyNEIzRTIyOTA3RkVERTkKLToxMDA4NjAwMEUwNjQwNTcwNTE5MDc2MTg3NDA1RjA5MDc2Mzc3NDAxNDUKLToxMDA4NzAwMEYwOTA3NjM5NzQwM0YwOTA3NjIxRjBFNDkwNzYyMEYwRDEKLToxMDA4ODAwMDkwN0ZFQUUwRjQ2MDJGOTA3NjIwRTBGRjc1RjAwQUE0RjQKLToxMDA4OTAwMDI0QUFGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUFFMEZENUEKLToxMDA4QTAwMEVFNkQ2MDEyOTA3NjIxRTBGRUVGQzM5RTUwMDg5MDc2QzgKLToxMDA4QjAwMDIwRTAwNEYwODBEMTkwN0ZFREUwNjQwNjcwNTI5MDc2RTUKLToxMDA4QzAwMDE4NzQwNkYwOTA3NjM3NzQwNEYwOTA3NjM5NzQwQUYwNTQKLToxMDA4RDAwMDkwNzYyMUYwOTA3NjIwNzQwM0YwOTA3RkVBRTBGNDYwNDcKLToxMDA4RTAwMDJGOTA3NjIwRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NjQKLToxMDA4RjAwMDc1RjU4M0UwRkU5MDdGRUFFMEZERUU2RDYwMTI5MDc2ODQKLToxMDA5MDAwMDIxRTBGRUVGQzM5RTUwMDg5MDc2MjBFMDA0RjA4MEQxRjUKLToxMDA5MTAwMDkwNzYyMEUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RUQKLToxMDA5MjAwMEY1ODNFMDkwNzIyOUYwRTQ5MDc2M0JGMDkwNzYyMUUwMzgKLToxMDA5MzAwMEZFRUY2RTcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3RkVCRjAKLToxMDA5NDAwMEUwMTQ2MDEzMTQ3MDAyMjFFMjI0MDI2MDAyODE3RjkwOUYKLToxMDA5NTAwMDdGQjRFMDQ0MDFGMDIyOTA3RkU5RTAxNDcwN0M5MDdGNDYKLToxMDA5NjAwMEVBRTBGNDcwNDg5MDc2MzdFMDkwNzYyMEYwOTA3NjM5OUYKLToxMDA5NzAwMEUwRkU5MDc2MjBFMEZEQzM5RTUwMkI5MDc2M0JFMEZFOUIKLToxMDA5ODAwMDA0RjA3NEMwMkVGNTgyRTQzNDdFRjU4M0UwRkVFRDc1NEMKLToxMDA5OTAwMEYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0VFRjA5MDc2OEEKLToxMDA5QTAwMDIwRTAwNEYwODBDNzkwNzYzRjc0MDFGMDIyOTA3RUMwNzIKLToxMDA5QjAwMEUwRkVFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzMEMKLToxMDA5QzAwMEVFRjBFMEI0MDEwODkwNzYzRTc0MDFGMDgwMDVFNDkwMEEKLToxMDA5RDAwMDc2M0VGMDkwNzYzRjc0MDFGMDIyOTA3RkI0RTA0NDAxQkYKLToxMDA5RTAwMEYwMjI5MDdGRTlFMDI0RkU3MDAyNDFBMzE0NzAwMjYxQkUKLToxMDA5RjAwMDNGMTQ3MDAyNjFEQjI0MDM2MDAyODE3NzkwN0ZFQUUwOUMKLToxMDBBMDAwMEY0NzA2QjkwNzYzN0UwOTA3NjIwRjA5MDc2MzlFMEZGQzYKLToxMDBBMTAwMDkwNzYyMEUwRkVDMzlGNTA0RTkwNzYzQkUwRkYwNEYwQkUKLToxMDBBMjAwMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFNzVGMDBBQTIKLToxMDBBMzAwMEE0MjRBQ0Y1ODJFNDM0NzVGNTgzRUZGMDkwNzYzQkUwQzYKLToxMDBBNDAwMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFRkUKLToxMDBBNTAwMDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzRUZGMDkwQzcKLToxMDBBNjAwMDc2MjBFMDA0RjA4MEE0OTA3NjQwNzQwMUYwMjI5MDdFMUQKLToxMDBBNzAwMEMwRTBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QUNGNTgyNzkKLToxMDBBODAwMEU0MzQ3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzVGMDBBNzcKLToxMDBBOTAwMEE0MjRBREY1ODJFNDM0NzVGNTgzRUZGMDkwNzY0MTc0Q0IKLToxMDBBQTAwMDAxRjAyMjkwN0ZFQUUwRjQ3MDY2OTA3NjM3RTA5MDc2NkQKLToxMDBBQjAwMDIwRjA5MDc2MzlFMEZGOTA3NjIwRTBGRUMzOUY0MDAyNjAKLToxMDBBQzAwMDgxOEU5MDc2M0JFMEZGMDRGMDc0QzAyRkY1ODJFNDM0MTEKLToxMDBBRDAwMDdFRjU4M0UwRkZFRTc1RjAwQUE0MjRBRUY1ODJFNDM0REYKLToxMDBBRTAwMDc1RjU4M0VGRjA5MDc2M0JFMEZGMDRGMDc0QzAyRkY1Q0UKLToxMDBBRjAwMDgyRTQzNDdFRjU4M0UwRkZFRTc1RjAwQUE0MjRBRkY1QkUKLToxMDBCMDAwMDgyRTQzNDc1RjU4M0VGRjA5MDc2MjBFMDA0RjA4MEEyNjMKLToxMDBCMTAwMDkwN0VDMEUwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEFFM0YKLToxMDBCMjAwMEY1ODJFNDM0NzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1NTkKLToxMDBCMzAwMEYwMEFBNDI0QUZGNTgyRTQzNDc1RjU4M0VGRjAyMjkwMzcKLToxMDBCNDAwMDdGRUFFMEY0NzA2NjkwNzYzN0UwOTA3NjIwRjA5MDc2NTkKLToxMDBCNTAwMDM5RTBGRjkwNzYyMEUwRkVDMzlGNDAwMjgxOEU5MDc2QzAKLToxMDBCNjAwMDNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwQUYKLToxMDBCNzAwMEZGRUU3NUYwMEFBNDI0QjBGNTgyRTQzNDc1RjU4M0VGMzYKLToxMDBCODAwMEYwOTA3NjNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjEKLToxMDBCOTAwMEY1ODNFMEZGRUU3NUYwMEFBNDI0QjFGNTgyRTQzNDc1MjQKLToxMDBCQTAwMEY1ODNFRkYwOTA3NjIwRTAwNEYwODBBMjkwN0VDMEUwMjQKLToxMDBCQjAwMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRCMEY1ODJFNDM0QkMKLToxMDBCQzAwMDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NUYwMEFBNDI0ODYKLToxMDBCRDAwMEIxRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDdGRUFFMEY0MUEKLToxMDBCRTAwMDcwNjY5MDc2MzdFMDkwNzYyMEYwOTA3NjM5RTBGRjkwNEUKLToxMDBCRjAwMDc2MjBFMEZFQzM5RjQwMDI4MThFOTA3NjNCRTBGRjA0QUEKLToxMDBDMDAwMEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwREEKLToxMDBDMTAwMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFRkYwOTA3NjNCQjQKLToxMDBDMjAwMEUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGMkEKLToxMDBDMzAwMEVFNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUY1ODNFRkYwODEKLToxMDBDNDAwMDkwNzYyMEUwMDRGMDgwQTI5MDdFQzBFMEZGOTA3NjIwQjUKLToxMDBDNTAwMEUwRkU3NUYwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0VGNjIKLToxMDBDNjAwMEYwOTA3RUMxRTBGRkVFNzVGMDBBQTQyNEIzRjU4MkU0QjMKLToxMDBDNzAwMDM0NzVGNTgzRUZGMDIyOTA3RkI0RTA0NDAxRjAyMjkwQzgKLTowRjBDODAwMDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjAxCi06MTAxMDAwMDBFNDkwNzYyQ0YwOTA3NjJDRTBGRjc1RjAwM0E0MjQwRjhBCi06MTAxMDEwMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRURFMEZERUU2RDQyCi06MTAxMDIwMDA2MDBFRUZDMzk0MEI1MDA4OTA3NjJDRTAwNEYwODBENTRFCi06MTAxMDMwMDBFRkI0MEIwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwM0E5Ci06MTAxMDQwMDBBNDI0MEVGNTgyRTQzNDc1RjU4M0UwOTA3NjJFRjAyNDI2Ci06MTAxMDUwMDBGMDYwMEEyNDBGNjAwMjgxN0QxMjRCMUIyMjkwN0ZFRDBECi06MTAxMDYwMDBFMDY0MDU3MDUxOTA3NjE4NzQwNUYwOTA3NjM4NzQwMTNDCi06MTAxMDcwMDBGMDkwNzYzQTc0MDNGMDkwNzYxQ0YwRTQ5MDc2MUJGMEQyCi06MTAxMDgwMDA5MDdGRUFFMEY0NjAyRjkwNzYxQkUwRkY3NUYwMEFBNEYxCi06MTAxMDkwMDAyNEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVBRTBGRDUyCi06MTAxMEEwMDBFRTZENjAxMjkwNzYxQ0UwRkVFRkMzOUU1MDA4OTA3NkM1Ci06MTAxMEIwMDAxQkUwMDRGMDgwRDE5MDdGRURFMDY0MDY3MDUyOTA3NkUyCi06MTAxMEMwMDAxODc0MDZGMDkwNzYzODc0MDRGMDkwNzYzQTc0MEFGMDRBCi06MTAxMEQwMDA5MDc2MUNGMDkwNzYxQjc0MDNGMDkwN0ZFQUUwRjQ2MDQ5Ci06MTAxMEUwMDAyRjkwNzYxQkUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDYxCi06MTAxMEYwMDA3NUY1ODNFMEZFOTA3RkVBRTBGREVFNkQ2MDEyOTA3NjdDCi06MTAxMTAwMDAxQ0UwRkVFRkMzOUU1MDA4OTA3NjFCRTAwNEYwODBEMUY3Ci06MTAxMTEwMDBFNDkwNzYxRUYwOTA3NjFDRTBGRjkwNzYxQkUwRkU2RjY4Ci06MTAxMTIwMDA3MDA4OTA3RkI0RTA0NDAxRjAyMjkwN0ZFQkUwMTQ2MEZGCi06MTAxMTMwMDAxMzE0NzAwMjIxQkYyNDAyNjAwMjgxNzU5MDdGQjRFMDE1Ci06MTAxMTQwMDA0NDAxRjAyMjkwN0ZFOUUwMjQ3RjcwNkI5MDdGRUFFMDE5Ci06MTAxMTUwMDBGNDcwNEE5MDc2MzhFMDkwNzYxQkYwOTA3NjNBRTBGRjkzCi06MTAxMTYwMDA5MDc2MUJFMEZEQzM5RjUwMkJFRDc1RjAwQUE0MjRBQkQ1Ci06MTAxMTcwMDBGNTgyRTQzNDc1RjU4M0UwRkY5MDc2MUVFMEZEMDRGMDFGCi06MTAxMTgwMDA3NDAwMkRGNTgyRTQzNDdGRjU4M0VGRjA5MDc2MUJFMDU4Ci06MTAxMTkwMDAwNEYwODBDNzkwNzYxRUUwOTA3RkI1RjAyMkVFNzVGMEU3Ci06MTAxMUEwMDAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDY3Ci06MTAxMUIwMDA5MDdGQjU3NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDVBCi06MTAxMUMwMDA3RkU5RTAyNDdFNzAwMjQxN0UxNDcwMDI2MTIzMTQ3MDc2Ci06MTAxMUQwMDAwMjYxQzgyNDAzNjAwMjgxNkQ5MDdGRUFFMEY0NzA2REMzCi06MTAxMUUwMDA5MDc2MzhFMDkwNzYxQkYwOTA3NjNBRTBGRjkwNzYxQjkwCi06MTAxMUYwMDBFMEMzOUY1MDRGRTBGRjc1RjAwQUE0MjRBQ0Y1ODJFNEYxCi06MTAxMjAwMDAzNDc1RjU4M0UwRkU5MDc2MUVFMEZEMDRGMDc0MDAyRDQ5Ci06MTAxMjEwMDBGNTgyRTQzNDdGRjU4M0VFRjBFRjc1RjAwQUE0MjRBRDk3Ci06MTAxMjIwMDBGNTgyRTQzNDc1RjU4M0UwRkY5MDc2MUVFMEZFMDRGMDZECi06MTAxMjMwMDA3NDAwMkVGNTgyRTQzNDdGRjU4M0VGRjA5MDc2MUJFMEE2Ci06MTAxMjQwMDAwNEYwODBBNDkwNzYxRUUwOTA3RkI1RjAyMjkwNzYxQjhCCi06MTAxMjUwMDBFMEZGNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODNFMDcwCi06MTAxMjYwMDA5MDdGMDBGMEVGNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUE4Ci06MTAxMjcwMDBGNTgzRTA5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyOTA3RkJCCi06MTAxMjgwMDBFQUUwRjQ3MDZEOTA3NjM4RTA5MDc2MUJGMDkwNzYzQTU0Ci06MTAxMjkwMDBFMEZGOTA3NjFCRTBDMzlGNTA0RkUwRkY3NUYwMEFBNDdCCi06MTAxMkEwMDAyNEFFRjU4MkU0MzQ3NUY1ODNFMEZFOTA3NjFFRTBGRDExCi06MTAxMkIwMDAwNEYwNzQwMDJERjU4MkU0MzQ3RkY1ODNFRUYwRUY3NUQxCi06MTAxMkMwMDBGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjRDCi06MTAxMkQwMDAxRUUwRkUwNEYwNzQwMDJFRjU4MkU0MzQ3RkY1ODNFRjA3Ci06MTAxMkUwMDBGMDkwNzYxQkUwMDRGMDgwQTQ5MDc2MUVFMDkwN0ZCNTJECi06MTAxMkYwMDBGMDIyOTA3NjFCRTBGRjc1RjAwQUE0MjRBRUY1ODJFNDlDCi06MTAxMzAwMDAzNDc1RjU4M0UwOTA3RjAwRjBFRjc1RjAwQUE0MjRBRjA4Ci06MTAxMzEwMDBGNTgyRTQzNDc1RjU4M0UwOTA3RjAxRjA5MDdGQjU3NDM5Ci06MTAxMzIwMDAwMkYwMjI5MDdGRUFFMEY0NzA2RDkwNzYzOEUwOTA3NkRCCi06MTAxMzMwMDAxQkYwOTA3NjNBRTBGRjkwNzYxQkUwQzM5RjUwNEZFMEExCi06MTAxMzQwMDBGRjc1RjAwQUE0MjRCMEY1ODJFNDM0NzVGNTgzRTBGRTVECi06MTAxMzUwMDA5MDc2MUVFMEZEMDRGMDc0MDAyREY1ODJFNDM0N0ZGNUY0Ci06MTAxMzYwMDA4M0VFRjBFRjc1RjAwQUE0MjRCMUY1ODJFNDM0NzVGNTRDCi06MTAxMzcwMDA4M0UwRkY5MDc2MUVFMEZFMDRGMDc0MDAyRUY1ODJFNDE4Ci06MTAxMzgwMDAzNDdGRjU4M0VGRjA5MDc2MUJFMDA0RjA4MEE0OTA3NjM0Ci06MTAxMzkwMDAxRUUwOTA3RkI1RjAyMjkwNzYxQkUwRkY3NUYwMEFBNDY2Ci06MTAxM0EwMDAyNEIwRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwRUY3NUFBCi06MTAxM0IwMDBGMDBBQTQyNEIxRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMTRFCi06MTAxM0MwMDBGMDkwN0ZCNTc0MDJGMDIyOTA3RkVBRTBGNDcwNkQ5MEE3Ci06MTAxM0QwMDA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MDc2MUJFMDRFCi06MTAxM0UwMDBDMzlGNTA0RkUwRkY3NUYwMEFBNDI0QjJGNTgyRTQzNEE1Ci06MTAxM0YwMDA3NUY1ODNFMEZFOTA3NjFFRTBGRDA0RjA3NDAwMkRGNTk3Ci06MTAxNDAwMDA4MkU0MzQ3RkY1ODNFRUYwRUY3NUYwMEFBNDI0QjNGNTlGCi06MTAxNDEwMDA4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRTA0RjA3NEZDCi06MTAxNDIwMDAwMDJFRjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTAwNDI0Ci06MTAxNDMwMDBGMDgwQTQ5MDc2MUVFMDkwN0ZCNUYwMjI5MDc2MUJFMEJECi06MTAxNDQwMDBGRjc1RjAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRTA5MEM4Ci06MTAxNDUwMDA3RjAwRjBFRjc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVGNTRCCi06MTAxNDYwMDA4M0UwOTA3RjAxRjA5MDdGQjU3NDAyRjAyMjkwN0ZCNDBBCi06MTAxNDcwMDBFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNDc4Ci06MDUxNDgwMDBFMDQ0MDFGMDIyMzAKLToxMDM4NzQwMEU0OTA3NjI5RjA5MDc2MjlFMEZGNzVGMDBGQTQyNDQyQjUKLToxMDM4ODQwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEQTcKLToxMDM4OTQwMDYwMEVFRkMzOTQwNjUwMDg5MDc2MjlFMDA0RjA4MEQ1QkEKLToxMDM4QTQwMEVGQjQwNjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDBGMDYKLToxMDM4QjQwMEE0MjQ0MUY1ODJFNDM0NzVGNTgzRTA5MDc2MkFGMDI0NUIKLToxMDM4QzQwMEJGNzAwMjQxNDEyNEUwNzAwMjQxMTIyNDIxNjAwMjQxOTAKLToxMDM4RDQwMDNBOTA3RkU5RTAyNEZFNjA3RDE0NzAwMjIxQjIyNDAyNTQKLToxMDM4RTQwMDYwMDI0MTBBMTIxNzUxOTA3NjQyRTBGQ0EzRTBGREEzNjYKLToxMDM4RjQwMEUwRkVBM0UwRkY5MDc2MjlFMDc1RjAwRkE0MjQ0M0Y1RTEKLToxMDM5MDQwMDgyRTQzNDc1RjU4MzEyMzdCQzkwNzYxOUUwRkZCNDAxNzQKLToxMDM5MTQwMDEyOTA3NjdDNzQ2N0YwOTA3NjdENzQwNkYwOTA3NjdFRDMKLToxMDM5MjQwMDc0MEJGMEVGQjQwMjBGRTQ5MDc2N0NGMDkwNzY3REYwQTcKLToxMDM5MzQwMDkwNzY3RTc0MENGMEVGQjQwMzBGRTQ5MDc2N0NGMDkwRjQKLToxMDM5NDQwMDc2N0RGMDkwNzY3RTc0MThGMDkwNzYxQTc0MDFGMDEyRjkKLToxMDM5NTQwMDNFOEYxMjE4MDAyMjkwN0VDMkUwRkZFNEZDRkRGRUZCQzUKLToxMDM5NjQwMEZBNzkwMUY4MTIzNzQ2QzhFQ0M4QzlFREM5Q0FFRUNBREIKLToxMDM5NzQwMENCRUZDQjkwN0VDMUUwRkVFNEZDRkQyQkZCRUEzRUZBRUMKLToxMDM5ODQwMEVEMzlGOUVDMzhGODkwN0VDMEUwRkZFNEZFRUIyRkZGNTAKLToxMDM5OTQwMEVFM0FGRUVEMzlGREVDMzhGQzkwNzYyOUUwNzVGMDBGMzcKLToxMDM5QTQwMEE0MjQ0N0Y1ODJFNDM0NzVGNTgzMTIzN0JDMjI5MDdFNTMKLToxMDM5QjQwMEMyRTBGRkU0RkNGREZFRkJGQTc5MDFGODEyMzc0NkM4QzkKLToxMDM5QzQwMEVDQzhDOUVEQzlDQUVFQ0FDQkVGQ0I5MDdFQzFFMEZFMEMKLToxMDM5RDQwMEU0RkNGRDJCRkJFQTNFRkFFRDM5RjlFQzM4Rjg5MDdFNzUKLToxMDM5RTQwMEMwRTBGRkU0RkVFQjJGRkZFRTNBRkVFRDM5RkRFQzM4Q0MKLToxMDM5RjQwMEZDOTA3NjI5RTA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1MkQKLToxMDNBMDQwMEY1ODMxMjM3QkMyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGMEEKLToxMDNBMTQwMEU5RTAxNDcwMTk5MDdFQzBFMEZGOTA3NjI5RTA3NUYwMUIKLToxMDNBMjQwMDBGQTQyNDRGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDdGRTAKLTowRTNBMzQwMEI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5RgotOjEwMkFENjAwRTQ5MDc2MjdGMDkwNzYyN0UwRkY3NUYwMEZBNDI0NDI2NQotOjEwMkFFNjAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkQ1MwotOjEwMkFGNjAwNjAwRUVGQzM5NDA2NTAwODkwNzYyN0UwMDRGMDgwRDU2OAotOjEwMkIwNjAwRUZCNDA2MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMEZCMQotOjEwMkIxNjAwQTQyNDQxRjU4MkU0MzQ3NUY1ODNFMDkwNzYyOEYwMjQwOAotOjEwMkIyNjAwOUY3MDAyQTE3NDI0MjE2MDAyQTFBMTkwN0ZFOUUwMjQ5NAotOjEwMkIzNjAwN0U3MDAyNjFGQzE0NzAwMjgxQjUyNDAyNjAwMkExNkNGMQotOjEwMkI0NjAwRUY3NUYwMEZBNDI0NDNGNTgyRTQzNDc1RjU4M0UwRkNCOQotOjEwMkI1NjAwQTNFMEZEQTNFMEZFQTNFMEZGN0I0NDdBQUM3OTAwNzgxNgotOjEwMkI2NjAwMDBDMzEyMzdBQjcwMTM5MDdGMDA3NDQ0RjBBMzc0QUNBQgotOjEwMkI3NjAwRjBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDc1RjA0QgotOjEwMkI4NjAwMEZBNDI0NDNGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkQ0RAotOjEwMkI5NjAwQTNFMEZFQTNFMEZGN0I4MDdBQkI3OTAwNzgwMEMzMTIzNgotOjEwMkJBNjAwMzdBQjcwMTM5MDdGMDA3NDgwRjBBMzc0QkJGMEU0QTM3RQotOjEwMkJCNjAwRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDc1RjAwRkE0MjRBQgotOjEwMkJDNjAwNDNGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkU2MwotOjEwMkJENjAwQTNFMEZGN0IwMDdBNzc3OTAxNzgwMEMzMTIzN0FCNjBGOAotOjEwMkJFNjAwMDJBMUE4OTA3RjAwRjBBMzc0NzdGMEEzNzQwMUYwOTA3RgotOjEwMkJGNjAwN0ZCNTc0MDNGMDIyOTA3NjI3RTA3NUYwMEZBNDI0NDc4MgotOjEwMkMwNjAwRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZEQTNFMEZFQTNDMgotOjEwMkMxNjAwRTBGRjdCNDQ3QUFDNzkwMDc4MDBDMzEyMzdBQjcwMTNCRgotOjEwMkMyNjAwOTA3RjAwNzQ0NEYwQTM3NEFDRjBFNEEzRjA5MDdGQjVGOQotOjEwMkMzNjAwNzQwM0YwOTA3NjI3RTA3NUYwMEZBNDI0NDdGNTgyRTQzQwotOjEwMkM0NjAwMzQ3NUY1ODNFMEZDQTNFMEZEQTNFMEZFQTNFMEZGN0I4MwotOjEwMkM1NjAwODA3QUJCNzkwMDc4MDBDMzEyMzdBQjcwMTM5MDdGMDA3RgotOjEwMkM2NjAwNzQ4MEYwQTM3NEJCRjBFNEEzRjA5MDdGQjU3NDAzRjAxNgotOjEwMkM3NjAwOTA3NjI3RTA3NUYwMEZBNDI0NDdGNTgyRTQzNDc1RjVDNQotOjEwMkM4NjAwODNFMEZDQTNFMEZEQTNFMEZFQTNFMEZGN0IwMDdBNzdGMAotOjEwMkM5NjAwNzkwMTc4MDBDMzEyMzdBQjYwMDJBMUE4OTA3RjAwRjBEQgotOjEwMkNBNjAwQTM3NDc3RjBBMzc0MDFGMDkwN0ZCNTc0MDNGMDIyOTBCQgotOjEwMkNCNjAwNzYyN0UwNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NUY1ODM4RQotOjEwMkNDNjAwRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCNDQ3QUFDNzk0MQotOjEwMkNENjAwMDA3ODAwQzMxMjM3QUI3MDEzOTA3RjAwNzQ0NEYwQTNFMgotOjEwMkNFNjAwNzRBQ0YwRTRBM0YwOTA3RkI1NzQwM0YwOTA3NjI3RTAxRgotOjEwMkNGNjAwNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NUY1ODNFMEZDQTM0QwotOjEwMkQwNjAwRTBGREEzRTBGRUEzRTBGRjdCODA3QUJCNzkwMDc4MDBCQwotOjEwMkQxNjAwQzMxMjM3QUI3MDEzOTA3RjAwNzQ4MEYwQTM3NEJCRjBCRQotOjEwMkQyNjAwRTRBM0YwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwMEY3QQotOjEwMkQzNjAwQTQyNDRCRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZEQTNGRgotOjEwMkQ0NjAwRTBGRUEzRTBGRjdCMDA3QTc3NzkwMTc4MDBDMzEyMzdCMwotOjEwMkQ1NjAwQUI3MDRGOTA3RjAwRjBBMzc0NzdGMEEzNzQwMUYwOTBFRQotOjEwMkQ2NjAwN0ZCNTc0MDNGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0Y5NwotOjEwMkQ3NjAwRTlFMDI0N0Y3MDFFOTA3NjI3RTA3NUYwMEZBNDI0NEZCQgotOjEwMkQ4NjAwRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwOTA3RkI1NzRBQQotOjEwMkQ5NjAwMDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDRGNgotOjAzMkRBNjAwMDFGMDIyMTcKLToxMDRCMUIwMDkwN0ZFQkUwMTQ3MDE0OTA3RkU5RTAyNDdGNzAwNDEyMTcKLToxMDRCMkIwMDQ4NUEyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0RDUKLTowMzRCM0IwMDAxRjAyMjY0Ci06MTA0QjNFMDA5MDdGRUJFMDE0NzAxMzkwN0ZFOUUwMTQ3MDA0MTI0OTNCCi06MTA0QjRFMDBBRDIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUE2Ci06MDI0QjVFMDBGMDIyNDMKLToxMDQ4NUEwMEU0OTA3NjI2RjA5MDc2MjZFMEZGNzVGMDAzQTQyNDM0REYKLToxMDQ4NkEwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEQjEKLToxMDQ4N0EwMDYwMEVFRkMzOTQwNDUwMDg5MDc2MjZFMDA0RjA4MEQ1QzkKLToxMDQ4OEEwMEVGQjQwNDA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzMUUKLToxMDQ4OUEwMEE0MjQzMkY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDkwMjkKLTowNjQ4QUEwMDdGQjU3NDAxRjAyMjRECi06MTA0OUFEMDBFNDkwNzYyNUYwOTA3NjI1RTBGRjc1RjAwM0E0MjQzNDhECi06MTA0OUJEMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2RDVECi06MTA0OUNEMDA2MDBFRUZDMzk0MDQ1MDA4OTA3NjI1RTAwNEYwODBENTc2Ci06MTA0OUREMDBFRkI0MDQwODkwN0ZCNEUwNDQwMUYwMjI5MDdFQzBFMDczCi06MTA0OUVEMDBGRUVGNzVGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFRTAxCi06MDI0OUZEMDBGMDIyQTYKLTowMzAwMDMwMDAyMEZGREVDCi06MDMwRkZEMDBDMjg5MzI3NAotOjAzMDAxMzAwMDIxN0ZERDQKLTowMzE3RkQwMEMyOEIzMjZBCi06MDMwMDRCMDAwMjREOEZENAotOjA0NEQ4RjAwNTM5MURGMzIyQgotOjAzMDA1MzAwMDI0RDgzRDgKLTowNjREODMwMDUzOTFCRkQyMkQzMjU2Ci06MDMwMDVCMDAwMjREODlDQQotOjA2NEQ4OTAwNTM5MTdGRDIyQzMyOTEKLTowMzAwNjMwMDAyNEQ5M0I4Ci06MDQ0RDkzMDA1M0Q4RjczMkM4Ci06MDMwMDBCMDAwMjREOUIwOAotOjAzNEQ5QjAwQzI4RDMyOTQKLTowMzAwMUIwMDAyNEQ5RUY1Ci06MDM0RDlFMDBDMjhGMzI4RgotOjAzMDAyMzAwMDI0RDc1MTYKLTowNzRENzUwMDUzOThGRTUzOThGRDMyMzQKLTowMzAwM0IwMDAyNEQ3Q0Y3Ci06MDc0RDdDMDA1M0MwRkU1M0MwRkQzMkRECi06MDMwMDJCMDAwMjQ2Rjc5MwotOjEwNDZGNzAwQzBFMEMwRjBDMDgzQzA4MkMwRDBFOEMwRTBFOUMwRTAzRAotOjEwNDcwNzAwRUFDMEUwRUJDMEUwRUNDMEUwRURDMEUwRUVDMEUwRUZGNwotOjEwNDcxNzAwQzBFMEMyQ0FDMkNGOTA3Rjk4RTA0NDAxRjAzMDJFMDNCOAotOjEwNDcyNzAwMTIxNEE2OTA3Rjk4RTA1NEZFRjA1M0E4RkExMjE2NjE2RgotOjEwNDczNzAwRDBFMEZGRDBFMEZFRDBFMEZERDBFMEZDRDBFMEZCRDA0MQotOjEwNDc0NzAwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMDgyRDA4M0QwRjAzMgotOjAzNDc1NzAwRDBFMDMyN0QKLToxMDQ3QjQwMEU0OTA3NjlCRjA5MDc2OUJFMEZGMDRGMEVGNjAwOEUwRDUKLToxMDQ3QzQwMDI0MDhGOEU0RjY4MEVFOTA3Njk2RTA1NEZCRjA1NEY3NzMKLToxMDQ3RDQwMEYwOTA4MDAzRjBFNEY1MThEMjM1RjUwRUY1MTBEMjM2REEKLToxMDQ3RTQwMDc1MTIxMTc1MTMyMkMyMzdDMjM5QzIzOEY1MTZGNTE0ODEKLTowQjQ3RjQwMEY1MUFGNTBEQzIzQkMyM0NDMjNEMjI4RAotOjEwMzAwMDAwOTA3RkI2RTAyMEUxMDJDMjNERDIzNjIwMzYwMjQxNkUwQQotOjEwMzAxMDAwMzAzRDAyNDE2RTkwODAwN0UwNjAwNEQyMzY4MDAyQzJFQgotOjEwMzAyMDAwMzYyMDM2MDI0MTJFRDIzNUU0RjUxQTkwODAwNEUwRjVDMAotOjEwMzAzMDAwMTk3NDA4MjUwRUY4QTYxOTg1MTkxOEU1MTgyMEU3MDQ1MwotOjEwMzA0MDAwRDIzODgwMDJDMjM4MzAzODAyMjFENEU0RjUxNkU1MTlBRQotOjEwMzA1MDAwQjRGMDBDRDIzOTc1MDgwNDc1MDlGMDA1MEU4MDAyMDUyQwotOjEwMzA2MDAwMTZFNTE5NjRGNzcwM0RDMjM5RTUwRTI0RkU2MDE3MTRBOQotOjEwMzA3MDAwNjAyMjI0MDM3MDI5NzUwODA1NzUwOUY3RTRGNTBBRjUzRgotOjEwMzA4MDAwMEI3NTBFMDQ4MDIwNzUwODA2NzUwQUY3RTRGNTBCNzVCQwotOjEwMzA5MDAwMEUwNDgwMTI3NTA4MDc3NTBCRjc3NTBFMDQ4MDA3MTI3MQotOjEwMzBBMDAwNDhGMzgwMDIwNTE2RTUxOTU0Rjg2NEY4NzAzQkMyMzUwMAotOjEwMzBCMDAwRTUxOTI0MDc2MDBDMjRGQzYwMDgyNDA1MjRGODUwMDY1OAotOjEwMzBDMDAwODAwOEQyM0E4MDA2QzIzQTgwMDJEMjNBNzUxQTAxMjBBQwotOjEwMzBEMDAwM0ExOTkwN0U4MDc0MEZGMEEzRTUxOUYwRTRBM0YwQTNGMQotOjEwMzBFMDAwRjA5MDdGQjc3NDA0RjA4MDAyMDUxNjIwMzk2REU1MTk2MQotOjEwMzBGMDAwNjRGNzYwNjdFNTFBNzA2M0U1MTg1NEYwNjRGMDcwNTk3RQotOjEwMzEwMDAwODUxODE5RjUwRUU1MTkyNDBGNjAxQjI0RkU2MDE3MjQ5RAotOjEwMzExMDAwRkQ2MDIyMTQ2MDFGMjQwNTcwMkY3NTA4MDMwNTBFODVCRAotOjEwMzEyMDAwMTgwOUQyMzc4MDI4NzUwODAyMDUwRTg1MTgwOTc1MTQwQwotOjEwMzEzMDAwMDFEMjM3ODAxOTc1MDgwNTA1MEU4NTE4MDlFNEY1MEFDRQotOjEwMzE0MDAwRjUwQjc1MEUwM0QyMzc4MDA1MTI0OEYzQzIzNTMwMzVDMgotOjEwMzE1MDAwMEE4NTA4MTM4NTE4MTI4MDAyMDUxNjg1MTgxOUU1MTZDOAotOjEwMzE2MDAwNjQwNDcwNjJGNTBFRTUxOTU0RjBGNTE5RjUxNTg1MTgyQgotOjEwMzE3MDAwMTlFNTE1MjQ3MDYwMTgyNEYwNjAxNDI0RjA2MDEwMjQwMAotOjEwMzE4MDAwRjA2MDFFMjRGMDYwMUEyNEYwNjAwNDI0NjA3MDI3RTVDQgotOjEwMzE5MDAwMTVDNDU0MEZGNTE5RjUwODA1MEU4NTE4MDlEMjM3ODBBNgotOjEwMzFBMDAwMUFFNTE1QzQ1NDBGRjUxOUY1MDgwNTBFODUxODA5NzVBQgotOjEwMzFCMDAwMTQwMUQyMzc4MDA1MTI0OEYzQzIzNTMwMzUwQTg1MTkxQgotOjEwMzFDMDAwMTM4NTE4MTI4MDAyMDUxNkU1MTZEMzk0MDU0MDU3MTI5MAotOjEwMzFEMDAwNDhGMzgwNTIzMDM5MTdFNTBFNzAwQTg1MDgwOTc1MDhFMgotOjEwMzFFMDAwMDQwNTBFODA0MTc0MDgyNTBFRjhBNjE5ODAzODIwMzc5MgotOjEwMzFGMDAwMkFFNTBFQjQwMTBGODUwODBBODUwOTBCODUxMzA4ODU5OQotOjEwMzIwMDAwMTIwOTc1MEUwNEU1MTRCNDAxMUM4NTA4MEFFNEY1MEJENwotOjEwMzIxMDAwODUxMzA4ODUxMjA5NzUwRTA0ODAwQkU1MTRCNDAxMDZBOAotOjEwMzIyMDAwRTRGNTBCNzUwRTA0RTRGNTFBMzAzNTAyMDUwRUU1MEVEMwotOjEwMzIzMDAwRDM5NDAzNTAwMjAxMEJDMjM3RTRGNTBFRjUxMEMyMzZFOQotOjEwMzI0MDAwRDIzREY1MTQ3NDA4MjUxMEY4RTZGRjc0ODAyNTEwRjVCQQotOjEwMzI1MDAwODJFNDM0N0VGNTgzRUZGMDc0MDgyNTEwRjhFNEY2MDU3NwotOjBGMzI2MDAwMTBFNTEwQjQwNERFOTA3RkI3NzQwNEYwMDEwQjIyNjgKLTowQzQ4RjMwMEMyMzdFNEY1MEVGNTEwQzIzNkY1MTQyMkIxCi06MTA0MDAwMDBFNTExRDM5NDAwNTAwMjIxMDY5MDc2ODlFMEMzOTQwODBDCi06MTA0MDEwMDA0MDAyMjEwNjc0NDAyNTBGRjU4MkU0MzQ3RUY1ODNFMEVBCi06MTA0MDIwMDBGNTE3RTUwRDYwMEU5MDgwMDVFNTE3RjA5MDc2ODlFMEI0Ci06MTA0MDMwMDAwNEYwMDFEQUU1MTcxMjM3Rjk0MEMxMDI0MDY3MDU0MDg0Ci06MTA0MDQwMDA3QTA2NDA5ODA3NDBDMTBDNDBDMTBENDBDNzBGNDBDQkQ1Ci06MTA0MDUwMDBGNjQwQ0JGODQwQ0JGQTQwQ0JGQjQwQ0JGQzQwQ0JGRTRDCi06MTA0MDYwMDA0MENCRkYwMDAwNDBEQTkwN0U0MUUwOTA4MDA1RjA5MDY4Ci06MTA0MDcwMDA3Njg5RTAwNEYwNzUxMTAxODA2MDkwN0U0MUUwOTA4MEM3Ci06MTA0MDgwMDAwNUYwOTA3RTQyRTA5MDgwMDVGMDkwNzY4OUUwMDRGMEEzCi06MTA0MDkwMDBFMDA0RjA3NTExMDE4MDQyOTA3RTQxRTA5MDgwMDVGMENGCi06MTA0MEEwMDA5MDdFNDJFMDkwODAwNUYwOTA3RTQzRTA5MDgwMDVGMEE1Ci06MTA0MEIwMDA5MDc2ODlFMDA0RjBFMDA0RjBFMDA0RjA3NTExMDE4MEVFCi06MTA0MEMwMDAxOUQyM0JEMjNDODAxM0QyM0I4MDBGOTA4MDA1RTUxNzdDCi06MTA0MEQwMDBGMDkwNzY4OUUwMDRGMDc1MTEwMTIwM0IwNDA1MEQ4MDE1Ci06MTA0MEUwMDAxRjMwM0MxQzkwN0U0MUUwOTA4MDA1RjA5MDdFNDJFMEM1Ci06MTA0MEYwMDA5MDgwMDVGMDkwNzY4OUUwMDRGMEUwMDRGMDc1MTEwMUZECi06MTA0MTAwMDAwNTBGMTUxMTAxMDBFNTExNzAxMEMyMzNGNTBERjUwRjAzCi06MEI0MTEwMDA5MDdGQzc3NDA0RjBDMjNCQzIzQzIyNDkKLToxMDRCQkIwMDkwN0ZENkUwMzBFNzEyRTA0NDAxRjA3RjE0N0UwMDEyQzQKLTowQTRCQ0IwMDREMkY5MDdGRDZFMDU0RkVGMDIyM0IKLToxMDRBRjYwMDkwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDQyMDRFMDQ0RjYKLToxMDRCMDYwMDAyRjA3RkRDN0UwNTEyNEQyRjkwN0ZENkUwNTRGN0YwNDEKLTowNTRCMTYwMEUwNDQwNEYwMjI2MAotOjEwNEQyRjAwOEUzNThGMzZFNTM2MTUzNkFFMzU3MDAyMTUzNTRFNjAzOQotOjA3NEQzRjAwMDUxMjE0ODU4MEVFMjIyRAotOjEwNDlGRjAwRTRGRTc1MURGRjc1MUUwNTc1MUYxMkFCMURBQTFFQTlCRQotOjEwNEEwRjAwMUY5MDAwMDExMjM2QUI2NDAyNzAyRkNERUVDRDBFRUQ2QwotOjEwNEExRjAwNkY3MDAxMjI5MDAwMDIxMjM3MEU4NUYwMUJGNTFDNjI5OQotOjEwNEEyRjAwMUJFNTFCNjIxQ0U1MUM2MjFCMjlGREU1MUIzQUM5RUQ0QQotOjEwNEEzRjAwQzk3NTFERkZGNTFFODkxRjgwQzE3QjAwN0EwMDc5MDBBMwotOjAxNEE0RjAwMjI0NAotOjA0MTc5NDAwOEQyOThCMkFFNgotOjEwMTc5ODAwMTI0OUZGRUE0OTYwNTcxMjM2OTI3RTAwMjlGRkVFM0E1NQotOjEwMTdBODAwQzlFRkM5NzUyQkZGRjUyQzg5MkRBQjJCQUEyQ0E5MkRCOAotOjEwMTdCODAwOTAwMDAxMTIzNkFCRkY2NDA0NjAwNUVGNjQwNTcwMkVEQgotOjEwMTdDODAwRUZCNDA0MTU5MDAwMDIxMjM2QUI2NTI5NzAwQjkwMDAzNwotOjEwMTdEODAwMDMxMjM2QUI2NTJBNzAwMTIyMTIzNjkyN0UwMDI5RkY2OQotOjEwMTdFODAwRUUzQUM5RUZDOTc1MkJGRkY1MkM4OTJEODBCQzdCMDAxQgotOjA0MTdGODAwN0EwMDc5MDBGQQotOjAxMTdGQzAwMjJDQQotOjAyNDhCMDAwOEYyRTQ5Ci06MTA0OEIyMDBFNEY1MkY3NTMwRkY3NTMxMDY3NTMyQkVBQjMwQUEzMTgzCi06MTA0OEMyMDBBOTMyOTAwMDAxMTIzNkFCQjQwMzFGQUYyRjA1MkZFRkIwCi06MTA0OEQyMDA2NTJFNzAwMTIyMTIzNjkyN0UwMDI5RkZFRTNBQzlFRjUwCi06MTA0OEUyMDBDOTc1MzBGRkY1MzE4OTMyODBEMjdCMDA3QTAwNzkwMEI4Ci06MDE0OEYyMDAyMkEzCi06MTAwNTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODExMDEwMDAxMDEwMkZGCi06MTAwNTEwMDAwMDAxMDkwMkFDMDEwMzAxMDA4MDMyMDkwNDAwMDAwMDVGCi06MTAwNTIwMDAwMTAxMDAwMDBBMjQwMTAwMDE1NjAwMDIwMTAyMEMyNDBFCi06MTAwNTMwMDAwMjAxMDEwMTAwMDIwMDAwMDAwMDBEMjQwNjA1MDEwMjc1Ci06MTAwNTQwMDAwMzAwMDAwMDAwMDAwMDA5MjQwMzAyMDQwMzAwMDUwMDZBCi06MTAwNTUwMDAwQzI0MDIwMzA1MDIwMDA2MDAwMDAwMDAxNTI0MDYwNjE0Ci06MTAwNTYwMDAwMzAyMDAwMDAzMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDc0Ci06MTAwNTcwMDAwMDA5MjQwMzA0MDEwMTAwMDYwMDA5MDQwMTAwMDAwMTMwCi06MTAwNTgwMDAwMjAwMDAwOTA0MDEwMTAyMDEwMjAwMDAwNzI0MDEwMTI4Ci06MTAwNTkwMDAwMDAxMDAxMTI0MDIwMTAyMDIxMDAzNDRBQzAwODBCQkUwCi06MTAwNUEwMDAwMDAwNzcwMTA5MDUwQTA1ODQwMTAxMDA4RjA3MjUwMTc0Ci06MTAwNUIwMDAwMTAwMDAwMDA5MDU4RjAxMDMwMDAxMDUwMDA5MDQwMTg1Ci06MTAwNUMwMDAwMjAyMDEwMjAwMDAwNzI0MDEwMTAwMDEwMDExMjQwMkJGCi06MTAwNUQwMDAwMTAyMDMxODAzNDRBQzAwODBCQjAwMDA3NzAxMDkwNTQ5Ci06MTAwNUUwMDAwQTA1NDYwMjAxMDA4RjA3MjUwMTAxMDAwMDAwMDkwNUU4Ci06MTAwNUYwMDA4RjAxMDMwMDAxMDUwMDA5MDQwMjAwMDAwMTAyMDAwMDUwCi06MTAwNjAwMDAwOTA0MDIwMTAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMEE1Ci06MTAwNjEwMDAwRTI0MDIwMTA2MDIxMDAyNDRBQzAwODBCQjAwMDkwNTUyCi06MTAwNjIwMDA4QzA1NEMwMjAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNEFFCi06MTAwNjMwMDAwMjAyMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMEUyNDRGCi06MTAwNjQwMDAwMjAxMDYwMzE4MDI0NEFDMDA4MEJCMDAwOTA1OEMwNUJBCi06MTAwNjUwMDA3MjAzMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MDIwM0UzCi06MTAwNjYwMDAwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDIwMTFECi06MTAwNjcwMDAwMjAyMTAwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU4QzI2Ci06MTAwNjgwMDAwNTg0MDEwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDQwMkExCi06MTAwNjkwMDAwNDAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDExMjQwMkVBCi06MTAwNkEwMDAwMTAyMDMxODAzNDRBQzAwODBCQjAwMDA3NzAxMDkwNTc4Ci06MTAwNkIwMDA4QzA1NDYwMjAxMDAwMDA3MjUwMTAwMDIwMDAwMDQwMzJBCi06MTAwNkMwMDAwOTA0MTgwMzQ1MDA2RDAwNjEwMDY3MDA2OTAwNjMwMEJDCi06MTAwNkQwMDAyMDAwNDcwMDZEMDA2MjAwNDgwMDIyMDM0NTAwNkQwMEM1Ci06MTAwNkUwMDA2MTAwNjcwMDY5MDA2MzAwMjAwMDQ1MDA0RDAwNDkwMDdCCi06MTAwNkYwMDAyMDAwMzYwMDdDMDAzMjAwMjAwMDZEMDAyQTAzNDMwMEY5Ci06MTAwNzAwMDA2RjAwNkUwMDY2MDA2OTAwNjcwMDc1MDA3MjAwNjEwMDhFCi06MTAwNzEwMDA3NDAwNjkwMDZGMDA2RTAwMjAwMDUzMDA3NDAwNzIwMEM2Ci06MTAwNzIwMDA2OTAwNkUwMDY3MDAyMjAzNDkwMDZFMDA3NDAwNjUwMEQ2Ci06MTAwNzMwMDA3MjAwNjYwMDYxMDA2MzAwNjUwMDIwMDA1MzAwNzQwMEQxCi06MEEwNzQwMDA3MjAwNjkwMDZFMDA2NzAwMDAwMEZGCi06MTAxNDg1MDA3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTdBCi06MDExNDk1MDAyMjM0Ci06MTAxNDk2MDA5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkUwCi06MTAxNEE2MDBDMEQwQzBFMDhGRTBDMEUwOEVFMEMwRTA4REUwQzBFMERDCi06MTAxNEI2MDA4Q0UwQzBFMEMwODJDMDgzMDU4NkMwODRDMDg1N0QwMDA0Ci06MTAxNEM2MDA5MDdGRTM3NDdCRjBBMzc0ODBGMDdDMTE5MDdGOTlFMEE5Ci06MTAxNEQ2MDA1NDQwREMwMzAyMTRGM0I0MDAxMzkwN0ZFMjc0NDBGMDJFCi06MTAxNEU2MDA5MDdGRTVGMDkwN0ZFMjc0MDBGMDAyMTREMjkwNzY5MDNGCi06MTAxNEY2MDBFMEI0MDExMjkwNzY4RkUwMkRGRDkwN0ZFMjc0ODBGMENCCi06MTAxNTA2MDA5MDdGNkMwMjE1NTdCNDAyMTI5MDc2OEZFMDJERkQ5MEY1Ci06MTAxNTE2MDA3RkUyNzQ4MEYwOTA3RjZDMDIxNTk2QjQwMzEyOTA3Njg5Ci06MTAxNTI2MDA4RkUwMkRGRDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTVFMUQ0Ci06MTAxNTM2MDBCNDA0MTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjA5MEQ3Ci06MTAxNTQ2MDA3RjZDMDIxNjEwOTA3RkUyNzQ4MEYwOTA3RjZDMDIxNjFBCi06MTAxNTU2MDA0MEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERjI3REI5Ci06MTAxNTY2MDAwMjA1ODY5MDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNEZECi06MTAxNTc2MDAwMDA1MDU4NjAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMDJECi06MTAxNTg2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRERENDAyMTY0MEZDCi06MTAxNTk2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMDQ1Ci06MTAxNUE2MDBGMEYwRERFQzdEMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjFFCi06MTAxNUI2MDA5QkUwNTQwNEI0MDAwNTA1ODYwMjE2NDA5MDdGRTI3NDUxCi06MTAxNUM2MDA4MEYwMDU4NkYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERBCi06MDYxNUQ2MDBGMEYwRjBGMEYwRjA2RgotOjEwMTVEQzAwRERDRTAyMTY0MEYwRjBGMEYwRERGQTdEMDIwNTg2OTBDQgotOjEwMTVFQzAwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1ODYwNAotOjEwMTVGQzAwMDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwREQ4QQotOjEwMTYwQzAwREMwMjE2NDBGMEYwRjBGMEYwRjBEREY4N0QwMjA1ODYxQgotOjEwMTYxQzAwOTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjQwMDA1MDVDOQotOjEwMTYyQzAwODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjBGMEYwRjBCMAotOjEwMTYzQzAwRjBGMEREREE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODY3RQotOjEwMTY0QzAwRDA4M0QwODJEMEUwRkNEMEUwRkREMEUwRkVEMEUwRkYzMwotOjA1MTY1QzAwRDBFMEQwRDAyMjE3Ci06MTAxNjYxMDBDMEQwQzBFMEMwODJDMDgzOTA3NjdDRTA5MDdGNkZGMEY0Ci06MTAxNjcxMDA5MDc2N0RFMDkwN0Y2RkYwOTA3NjdFRTA5MDdGNkZGMEM2Ci06MDkxNjgxMDBEMDgzRDA4MkQwRTBEMEQwMjI0OQotOjEwMTY4QTAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwQzA4MkMwODM3RQotOjEwMTY5QTAwMDU4NkMwODRDMDg1OTA3Njg3RTBGRkJGMDAwMzAyMTdFNQotOjEwMTZBQTAwMDE5MDdGOTZFMDQ0ODBGMDkwN0ZFMjc0ODBGMDkwN0YxMgotOjEwMTZCQTAwNjJFMDA1ODY5MDdGRTI3NDAwRjA5MDdGOTZFMDU0N0ZBNgotOjEwMTZDQTAwRjA5MDdGRTI3NDgwRjA5MDc2OEVFMEI0MDEwNTA1ODY5MgotOjEwMTZEQTAwMDIxNkY2QjQwMjA1MDU4NjAyMTZFQjA1ODYwMjE2RkIwQgotOjEwMTZFQTAwRTBFMEUwRTBFMEUwREZGODAyMTZGQkUwRTBFMEUwREY2NwotOjEwMTZGQTAwRkE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODZEMDgzRDAzQQotOjBDMTcwQTAwODJEMEUwRkVEMEUwRkZEMEUwRDBEMDIyODIKLToxMDE3MTYwMEMwODJDMDgzQzBFMEU4QzBFMDc4RDFFODE0Rjg3MEZCNkUKLTowQTE3MjYwMEQwRTBGOEQwRTBEMDgzRDA4MjIyOUEKLToxMDBDQTUwMDQxNzIwMTAxNDU3MjA1MDAwMkM5MDAwMDQ1NzIwQTAwNDIKLToxMDBDQjUwMDAxMDIwMzA0NEQ3MjBGRDEwMEQxMDAwMDAwMDAwMDAwQjUKLToxMDBDQzUwMDI4MjgwOTAwNEQ3MjFDMDEwMDAxMDIwMzA0MDUwNjA3Q0UKLToxMDBDRDUwMDA4MDkwQTBCNDE3MjJFMjI0MTcyMkYyMzQxNzIzMDIwREUKLToxMDBDRTUwMDQxNzIzMTIxNjJEMjcyM0EwMDAwMDAwMDAwMDAwMDAwMUEKLToxMDBDRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKLToxMDBEMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKLToxMDBEMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKLToxMDBEMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKLToxMDBEMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKLToxMDBENDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKLToxMDBENTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKLToxMDBENjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKLToxMDBENzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMTAxMDEwMTAxNjgKLToxMDBEODUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNEUKLToxMDBEOTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxM0UKLToxMDBEQTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMkUKLToxMDBEQjUwMDAxMDEwMTAxMDEwMTAxMDEwMjAyMDIwMjAyMDIwMjAyMTYKLToxMDBEQzUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRkUKLToxMDBERDUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRUUKLToxMDBERTUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyREUKLToxMDBERjUwMDAyMDIwMjAyMDIwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQzMKLToxMDBFMDUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQUQKLToxMDBFMTUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOUQKLToxMDBFMjUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOEQKLToxMDBFMzUwMDAzMDMwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NkYKLToxMDBFNDUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NUQKLToxMDBFNTUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NEQKLToxMDBFNjUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0M0QKLToxMDBFNzUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MUQKLToxMDBFODUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MEQKLToxMDBFOTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1RkQKLToxMDBFQTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNjA2RUIKLToxMDBFQjUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2Q0QKLToxMDBFQzUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QkQKLToxMDBFRDUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QUQKLToxMDBFRTUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNzA3MDcwODA4OTYKLToxMDBFRjUwMDA4MDkwOTA5MEEwQTBBMEIwQjBCMEMwQzBDMEQwRDBENDAKLToxMDBGMDUwMDBFMEUwRTBGMEYwRjEwMTAxMDExMTExMTEyMTIxMjEzRDkKLToxMDBGMTUwMDEzMTMxNDE0MTQxNTE1MTUxNjE2MTYxNzE3MTcxODE4NzQKLToxMDBGMjUwMDE4MTkxOTE5MTkxQTFBMUExQTFCMUIxQjFCMUMxQzFDMTgKLToxMDBGMzUwMDFDMUQxRDFEMUQxRTFFMUUxRTFGMUYxRjFGMjAyMDIwQzgKLToxMDBGNDUwMDIxMjEyMTIyMjIyMjIzMjMyNDI0MjUyNTI2MjYyNzI3NjEKLToxMDBGNTUwMDI4MjgyOTI5MkEyQTJCMkIyQzJDMkQyRDJFMkUyRjJGRDQKLToxMDBGNjUwMDMwMzAzMTMxMzIzMjMzMzMzNDM0MzUzNTM2MzYzNzM3NDQKLToxMDBGNzUwMDM4MzgzOTM5M0EzQTNCM0MzRDNFM0Y0MDQxNDI0MzQ0OUIKLToxMDBGODUwMDQ1NDY0NzQ4NDk0OTRBNEI0QjRDNEQ0RTRGNTA1MTUyQTcKLToxMDBGOTUwMDUzNTQ1NTU1NTY1NjU3NTc1ODVBNUI1RDVFNUY2MTYyQjcKLToxMDBGQTUwMDYzNjQ2NTY2Njc2ODY5NkE2QjZDNkQ2RjcxNzI3Mzc0OEIKLToxMDBGQjUwMDc1NzY3Nzc4Nzk3QTdCN0M3RTgwMDEzNzAxMDEzODAwRjgKLToxMDRBQzQwMEU0OTA3MjM2RjBBM0YwOTA3Rjk3RTA1NEZCRjBFNDkwMEEKLToxMDRBRDQwMDcyMzNGMDkwNzIzMkYwOTA3MjAxMDRGMEU0OTA3MjMzMDkKLToxMDRBRTQwMEYwOTA3MjMyRjA5MDcyMDEwNEYwOTA3Rjk3RTA0NDA0RTkKLTowMjRBRjQwMEYwMjJBRQotOjEwMzI2RjAwOTA3NjE4RTBGRjY0MDU3MDQyOTA3NUFCRTBCNDAxMTlEOQotOjEwMzI3RjAwOTA3MjM3NzQwMUYwRTQ5MDgwMjBGMDkwODAzMUYwOTBEQwotOjEwMzI4RjAwODAyOEYwOTA4MDM5RjA4MDIyRTQ5MDcyMzdGMDkwNzVBQQotOjEwMzI5RjAwQURFMDkwNzIyQkYwRTAyNDgwRjBFMDkwODAyMEYwOTA3MQotOjEwMzJBRjAwODAzMUYwOTA4MDI4RjA5MDgwMzlGMEVGNjQwNjYwMDI1MgotOjEwMzJCRjAwODE5OTkwNzIzOTc0MDRGMDkwNzIzOUUwRkYyNEZFOTA3NgotOjEwMzJDRjAwNzIwNEYwRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjVCRgotOjEwMzJERjAwODNFMDY0MDE3MDU0OTA3MjM2MDRGMDkwNzIwNEUwRkY0MgotOjEwMzJFRjAwMjRGRDYwMjgyNEZFNjAyNDI0MDMyNEZCNTAwNDYwMUM2QQotOjEwMzJGRjAwODE4Qzc0MjAyRkY1ODJFNDM0ODBGNTgzRTRGMDc0MjhGOAotOjEwMzMwRjAwMkZGNTgyRTQzNDgwRjU4M0U0RjA4MThDOTA3MjA0RTAzMQotOjEwMzMxRjAwRkYyNDMwRjU4MkU0MzQ4MEY1ODNFNEYwNzQzODJGRjUyMAotOjEwMzMyRjAwODJFNDM0ODBGNTgzRTRGMDgxOENFNDkwNzIzNkYwOTA3RgotOjEwMzMzRjAwNzIzOUUwNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODM5MwotOjEwMzM0RjAwRTBGRjdFMDA5MDc1MENFRUYwQTNFRkYwNzAwNjkwNzIyOAotOjEwMzM1RjAwMDI3NDNCRjA5MDc1MENFMEZFQTNFMEZGNjQ4MDRFNzBBQQotOjEwMzM2RjAwMDQ5MDcyMDJGMEVGNEU3MDAyODEzNUVGNjQ4MDRFNzA2MAotOjEwMzM3RjAwMDI4MTM1RUZGOEU0OTA3NTBERjBFODkwNzUwQ0YwOTA0MAotOjEwMzM4RjAwNzIzNEUwNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODM0OQotOjEwMzM5RjAwRTBGRjkwNzIwMkYwOTA3NTBERTAyRkYwOTA3NTBDRTA0OQotOjEwMzNBRjAwMzQwMEYwRTBGRUEzRTBGRkU0RkNGRDdCRDY3QUE1Rjk0NAotOjEwMzNCRjAwRjhEMzEyMzc5NTQwMEE5MDc1MEM3NEE1RjBBMzc0RDYwNAotOjEwMzNDRjAwRjA5MDc1MERFMDI0MkFGMDkwNzUwQ0UwMzQ1QUYwRTA3RgotOjEwMzNERjAwRkVBM0UwNzgwNUNFQTJFNzEzQ0UxM0Q4RjhGRjkwNzVDMQotOjEwMzNFRjAwMENFRUYwQTNFRkYwOTA3MjJDRUVGMEEzRUZGMEQzOTQ2RAotOjEwMzNGRjAwRDJFRTY0ODA5NDgyNDAwQTkwNzIyQzc0MDJGMEEzNzQwRgotOjEwMzQwRjAwRDJGMEMzOTA3MjJDRTA2NDgwOTQ4MDUwMDRFNEYwQTM1NwotOjEwMzQxRjAwRjA5MDcyMkNFMEZFQTNFMDI0M0FGNTgyRUUzNDcyRjVDMAotOjEwMzQyRjAwODNFMDkwNzIwMkYwOTA3MjA0RTBGRjI0RkQ2MDJEMjQ3RgotOjEwMzQzRjAwRkU2MDI5MjQwMzI0RkI1MDA0NjAyMTgwNDA5MDcyMDIxNwotOjEwMzQ0RjAwRTBGRTc0MjAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0MjhDQgotOjEwMzQ1RjAwMkZGNTgyRTQzNDgwRjU4M0VFRjA4MDIxOTA3MjAyRTA0NAotOjEwMzQ2RjAwRkY5MDcyMDRFMEZFMjQzMEY1ODJFNDM0ODBGNTgzRUZBMAotOjEwMzQ3RjAwRjA3NDM4MkVGNTgyRTQzNDgwRjU4M0VGRjA5MDcyMzlEMgotOjBCMzQ4RjAwRTAwNEYwRTA2NDBBNjAwMjQxQzcyMjg0Ci06MTAzNDlBMDA5MDc2MThFMEZGQjQwNTIzOTA3MjM3RTA3MDFEOTA3NTlFCi06MTAzNEFBMDBBREUwOTA3MjJCRjBFMDI0ODBGMEUwOTA4MDIwRjA5MDY0Ci06MTAzNEJBMDA4MDMxRjA5MDgwMjhGMDkwODAzOUYwRUY2NDA2NjAwMjQ1Ci06MTAzNENBMDBDMTkxOTA3MjM2RTA2MDAyQzE5MTkwNzY0MEUwNzAzMTBECi06MTAzNERBMDA5MDcyMDM3NDAzRjA5MDcyMDNFMEZGNzVGMDBBQTQyNDVCCi06MTAzNEVBMDBBQUY1ODJFNDM0NzVGNTgzRTBGRTkwNzIyOUUwRkRFRUQ4Ci06MTAzNEZBMDA2RDYwMEVFRkMzOTQwQTUwMDg5MDcyMDNFMDA0RjA4MEU2Ci06MTAzNTBBMDBENTkwNzIzOTc0MDRGMDkwNzY0MEUwNzAwODkwNzIwMzk2Ci06MTAzNTFBMDBFMDkwNzIzOUYwOTA3MjM5RTBGRDI0RkU5MDcyMkFGMDQwCi06MTAzNTJBMDBFRDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzRTBGRjY1Ci06MTAzNTNBMDA3RTAwOTA3NTBDRUVGMEEzRUZGMDcwMDY5MDcyMDI3NEE0Ci06MTAzNTRBMDA4MEYwOTA3NTBDRTBGRUEzRTBGRjY0ODA0RTcwMDQ5MDVBCi06MTAzNTVBMDA3MjAyRjBFRjRFNzAwMkMxMUJFRjY0ODA0RTcwMDJDMTFFCi06MTAzNTZBMDAxQkVGRjhFNDkwNzUwREYwRTg5MDc1MENGMEVENzVGMDJFCi06MTAzNTdBMDAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzRTBGRjkwNzIwMjY0Ci06MTAzNThBMDBGMDkwNzUwREUwMkZGMDkwNzUwQ0UwMzQwMEYwRTBGRTNECi06MTAzNTlBMDBBM0UwRkZFNEZDRkQ3QkQ2N0FBNUY5RjhEMzEyMzc5NUIwCi06MTAzNUFBMDA0MDBBOTA3NTBDNzRBNUYwQTM3NEQ2RjA5MDc1MERFMERFCi06MTAzNUJBMDAyNDJBRjA5MDc1MENFMDM0NUFGMEUwRkVBM0UwNzgwNTc2Ci06MTAzNUNBMDBDRUEyRTcxM0NFMTNEOEY4RkY5MDc1MENFRUYwQTNFRjU2Ci06MTAzNURBMDBGMDkwNzIyQ0VFRjBBM0VGRjBEMzk0RDJFRTY0ODA5NEM0Ci06MTAzNUVBMDA4MjQwMEE5MDcyMkM3NDAyRjBBMzc0RDJGMEMzOTA3MkQzCi06MTAzNUZBMDAyQ0UwNjQ4MDk0ODA1MDA0RTRGMEEzRjA5MDcyMkNFMEY0Ci06MTAzNjBBMDBGRUEzRTAyNDNBRjU4MkVFMzQ3MkY1ODNFMDkwNzIwMjZBCi06MTAzNjFBMDBGMDkwNzIyQUUwRkYyNEZENjAyRDI0RkU2MDI5MjQwMzI1Ci06MTAzNjJBMDAyNEZCNTAwNDYwMjE4MDQwOTA3MjAyRTBGRTc0MjAyRjM3Ci06MTAzNjNBMDBGNTgyRTQzNDgwRjU4M0VFRjA3NDI4MkZGNTgyRTQzNEMxCi06MTAzNjRBMDA4MEY1ODNFRUYwODAyMTkwNzIwMkUwRkY5MDcyMkFFMDBBCi06MTAzNjVBMDBGRTI0MzBGNTgyRTQzNDgwRjU4M0VGRjA3NDM4MkVGNUQ5Ci06MTAzNjZBMDA4MkU0MzQ4MEY1ODNFRkYwOTA3NjQwRTA3MDA2OTA3MjQxCi06MTAzNjdBMDAzOTc0MEFGMDkwNzIzOUUwMDRGMEUwQzM5NDBBNTAwMkY3Ci06MDgzNjhBMDBBMTExRTQ5MDc2NDBGMDIyNEEKLTowNDREOTcwMDEyMTczMDIyOUQKLToxMDQ5NTgwMDkwNzY0Njc0ODBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzNEMKLToxMDQ5NjgwMEYwQTNGMEEzRjBBM0YwQTM3NDgwRjBFNEEzRjBBM0YwMDUKLToxMDQ5NzgwMEEzRjBBM0YwQTNGMEEzRjBBMzc0NDBGMEU0QTNGMEEzODIKLToxMDQ5ODgwMDc0NDBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjBBM0YwMjUKLToxMDQ5OTgwMEEzNzQ0MEYwRTRBM0YwQTM3NDQwRjBFNEEzRjBBM0YwMDAKLTowNTQ5QTgwMEEzRjBBM0YwMjJDMgotOjEwMEZDNjAwRTRGRjc0NDYyRkY1ODJFNDM0NzZGNTgzRTBGRTc0MjA2MAotOjEwMEZENjAwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDRFMkZGNTgyRTQyQgotOjEwMEZFNjAwMzQ3NkY1ODNFMEZFNzQzMDJGRjU4MkU0MzQ4MEY1ODNBMQotOjA2MEZGNjAwRUVGMDBGQkYwOENDNzUKLTowMTBGRkMwMDIyRDIKLToxMDRBOEQwMEU0RkY3NDU2MkZGNTgyRTQzNDc2RjU4M0UwRkU3NDI4NDYKLToxMDRBOUQwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQ1RTJGRjU4MkU0MTkKLToxMDRBQUQwMDM0NzZGNTgzRTBGRTc0MzgyRkY1ODJFNDM0ODBGNTgzOTcKLTowNjRBQkQwMEVFRjAwRkJGMDhDQzczCi06MDE0QUMzMDAyMkQwCi06MTAxNzMwMDBDMDgyQzA4M0MwRTBFOEMwRTA3ODc4RTgxNEY4NzBGQkFECi06MEExNzQwMDBEMEUwRjhEMEUwRDA4M0QwODIyMjgwCi06MDMwMDQzMDAwMjQ5MDA2RgotOjEwNDkwMDAwMDIyRkU3MDAwMjNENDcwMDAyNEQ0NjAwMDI0QkQ1MDA1MgotOjEwNDkxMDAwMDI0QjYwMDAwMjJGRkYwMDAyNEJFRDAwMDI0QjgxMDBCMgotOjEwNDkyMDAwMDI0QzA0MDAwMjNGRDUwMDAyNEMxQjAwMDI0QzMyMDAzNgotOjEwNDkzMDAwMDI0QzQ5MDAwMjRDNjAwMDAyNEM3NzAwMDI0QzhFMDA5MQotOjEwNDk0MDAwMDI0Q0E1MDAwMjRDQkMwMDAyNENEMzAwMDI0Q0VBMDAxMQotOjA4NDk1MDAwMDI0RDAxMDAwMjREMTgwMEE4Ci06MTAxQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Ci06MTAxQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Ci06MTAxQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Ci06MTAxQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Ci06MTAxQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Ci06MTAxQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Ci06MTAxQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Ci06MTAxQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Ci06MTAxQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Ci06MTAxQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Ci06MTAxQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Ci06MTAxQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Ci06MTAxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Ci06MTAxQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Ci06MTAxQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Ci06MTAxQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Ci06MTAxQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Ci06MTAxQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Ci06MTAxQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Ci06MTAxQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Ci06MTAxQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Ci06MTAxQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Ci06MTAxQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Ci06MTAxQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Ci06MTAxQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Ci06MTAxQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Ci06MTAxQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Ci06MTAxQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Ci06MTAxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCi06MTAxRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCi06MTAxRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCi06MTAxRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCi06MTAxRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCi06MTAxRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCi06MTAxRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCi06MTAxRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCi06MTAxRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCi06MTAxRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCi06MTAxREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCi06MTAxREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCi06MTAxREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCi06MTAxREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCi06MTAxREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCi06MTAxREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCi06MTAxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCi06MTAxRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCi06MTAxRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCi06MTAxRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCi06MTAxRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCi06MTAxRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCi06MTAxRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCi06MTAxRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCi06MTAxRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCi06MTAxRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCi06MTAxRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCi06MEUxRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKLToxMDFFQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKLToxMDFFQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKLToxMDFFREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKLToxMDFFRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKLToxMDFFRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKLToxMDFGMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKLToxMDFGMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKLToxMDFGMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKLTowMjFGM0UwMDAwMDBBMQotOjEwMUY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQotOjEwMUY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQotOjEwMUY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQotOjEwMUY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQotOjEwMUY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQotOjEwMUY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQotOjEwMUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQotOjEwMUZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQotOjEwMUZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQotOjEwMUZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQotOjEwMUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQotOjEwMUZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQotOjEwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAotOjEwMjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAotOjEwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAotOjEwMjAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAotOjEwMjA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MAotOjEwMjA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAotOjEwMjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAotOjEwMjA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAotOjEwMjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAotOjEwMjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAotOjEwMjBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAotOjEwMjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAotOjEwMjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAotOjEwMjBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotOjEwMjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAotOjEwMjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAotOjEwMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgotOjEwMjExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgotOjEwMjEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgotOjEwMjEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgotOjEwMjE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgotOjEwMjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgotOjEwMjE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgotOjEwMjE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgotOjEwMjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgotOjEwMjE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgotOjEwMjFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgotOjEwMjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgotOjEwMjFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgotOjEwMjFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgotOjEwMjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgotOjEwMjFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgotOjEwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQotOjEwMjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQotOjEwMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQotOjEwMjIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQotOjEwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQotOjEwMjI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQotOjEwMjI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQotOjEwMjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQotOjEwMjI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQotOjEwMjI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQotOjEwMjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQotOjEwMjJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQotOjEwMjJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQotOjEwMjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQotOjEwMjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQotOjEwMjJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQotOjEwMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAotOjEwMjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAotOjEwMjMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAotOjEwMjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAotOjEwMjM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAotOjEwMjM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAotOjEwMjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAotOjBFMjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCi06MTAyMzdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCi06MTAyMzhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCi06MTAyMzlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCi06MTAyM0FFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCi06MTAyM0JFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCi06MTAyM0NFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCi06MTAyM0RFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCi06MTAyM0VFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCi06MTAyM0ZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCi06MTAyNDBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCi06MTAyNDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCi06MTAyNDJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCi06MTAyNDNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCi06MTAyNDRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCi06MTAyNDVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCi06MTAyNDZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCi06MTAyNDdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCi06MTAyNDhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCi06MTAyNDlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCi06MTAyNEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCi06MTAyNEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCi06MTAyNENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCi06MTAyNERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCi06MTAyNEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCi06MTAyNEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCi06MTAyNTBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECi06MTAyNTFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECi06MTAyNTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECi06MTAyNTNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECi06MTAyNTRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECi06MTAyNTVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECi06MTAyNTZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECi06MTAyNTdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECi06MTAyNThFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECi06MTAyNTlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECi06MTAyNUFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECi06MTAyNUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECi06MTAyNUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECi06MTAyNURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECi06MTAyNUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECi06MTAyNUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECi06MTAyNjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCi06MTAyNjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFDCi06MTAyNjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCi06MTAyNjNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCi06MTAyNjRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCi06MTAyNjVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCi06MTAyNjZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCi06MTAyNjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCi06MTAyNjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCi06MTAyNjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDCi06MTAyNkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCi06MTAyNkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCi06MTAyNkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCi06MTAyNkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCi06MEUyNkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKLToxMDI2RkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKLToxMDI3MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKLToxMDI3MUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKLToxMDI3MkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKLToxMDI3M0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKLToxMDI3NEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKLToxMDI3NUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKLToxMDI3NkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKLToxMDI3N0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKLToxMDI3OEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKLToxMDI3OUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKLToxMDI3QUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKLToxMDI3QkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKLToxMDI3Q0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKLToxMDI3REMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKLToxMDI3RUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKLTowNTI3RkMwMDAwMDAwMDAwMjJCNgotOjA3MTc0QTAwOTA3RkM1NzQwMkYwMjIzQwotOjEwMTc1MTAwOTA3RUMwRTA5MDc2NDVGMDkwN0VDMUUwOTA3NjQ0RjBCNgotOjEwMTc2MTAwOTA3RUMyRTA5MDc2NDNGMEI0MDAwMzAyMTc3ODkwNzY0MQotOjEwMTc3MTAwMTk3NDAzRjAwMjE3OEU5MDc2NDRFMEI0QkIwOTkwNzY5OQotOjEwMTc4MTAwMTk3NDAyRjAwMjE3OEU5MDc2MTk3NDAxRjA5MDc2NDI2NgotOjAzMTc5MTAwRTRGMDIyNUYKLTowMzAwMDAwMDAyNDVGOUJECi06MEM0NUY5MDA3ODdGRTRGNkQ4RkQ3NTgxMzgwMjQ2NDA1QQotOjEwMzY5MjAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDIzNgotOjA5MzZBMjAwRTMyMjg5ODI4QTgzRTQ5MzIyNjkKLToxMDM2QUIwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwRDQKLToxMDM2QkIwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyMUUKLTowRDM2Q0IwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyMzgKLToxMDM2RDgwMEMyRDVFQzMwRTcwOUIyRDVFNEMzOURGREU0OUNGQ0VFMEQKLToxMDM2RTgwMDMwRTcxNUIyRDVFNEMzOUZGRkU0OUVGRTEyMzgxRkMzMkUKLToxMDM2RjgwMEU0OURGREU0OUNGQzgwMDMxMjM4MUYzMEQ1MDdDM0U0MjkKLTowNjM3MDgwMDlGRkZFNDlFRkUyMjdCCi06MTAzNzBFMDBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMEY5Ci06MTAzNzFFMDBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRUQ2Ci06MTAzNzJFMDAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyRTU4MzJBRjU4MzFDCi06MDgzNzNFMDBFOTkzRjVGMEEzRTk5MzIyRTEKLToxMDM3NDYwMEU4OEZGMEE0Q0M4QkYwQTQyQ0ZDRTk4RUYwQTQyQ0ZDMjIKLToxMDM3NTYwMDhBRjBFREE0MkNGQ0VBOEVGMEE0Q0RBOEYwOEJGMEE0QTAKLToxMDM3NjYwMDJEQ0MzODI1RjBGREU5OEZGMEE0MkNDRDM1RjBGQ0VCRkYKLToxMDM3NzYwMDhFRjBBNEZFQTlGMEVCOEZGMEE0Q0ZDNUYwMkVDRDM5QzQKLTowRjM3ODYwMEZFRTQzQ0ZDRUFBNDJEQ0UzNUYwRkRFNDNDRkMyMjMxCi06MTAzNzk1MDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFQzY0ODBDOEFCCi06MDYzN0E1MDA2NDgwOTg0NUYwMjI0QgotOjEwMzdBQjAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjA3NAotOjAxMzdCQjAwMjJFQgotOjBDMzdCQzAwRUNGMEEzRURGMEEzRUVGMEEzRUZGMDIyODAKLToxMDM3QzgwMEE4ODI4NTgzRjBEMDgzRDA4MjEyMzdERjEyMzdERjEyQzgKLToxMDM3RDgwMDM3REYxMjM3REZFNDczRTQ5M0EzQzU4M0M1RjBDNTgzRUQKLToxMDM3RTgwMEM4QzU4MkM4RjBBM0M1ODNDNUYwQzU4M0M4QzU4MkM4NEIKLTowMTM3RjgwMDIyQUUKLToxMDM3RjkwMEQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzNUYKLToxMDM4MDkwMDkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwNzIKLTowNjM4MTkwMEVGQTNBM0EzODBERjcyCi06MTA0NjA1MDAwMjQ3NUFFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjJBCi06MTA0NjE1MDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0I2Ci06MTA0NjI1MDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjg1Ci06MTA0NjM1MDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwQzhGRTQ3RTdBCi06MTA0NjQ1MDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzdBCi06MTA0NjU1MDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBMzQxCi06MTA0NjY1MDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTZDCi06MTA0Njc1MDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTI0Ci06MDEwRkM1MDAwMDJCCi06MTAzODFGMDBCQzAwMEJCRTAwMjlFRjhERjA4NEZGQURGMDIyRTRDQzhECi06MTAzODJGMDBGODc1RjAwOEVGMkZGRkVFMzNGRUVDMzNGQ0VFOURFQzU2Ci06MTAzODNGMDA5ODQwMDVGQ0VFOURGRTBGRDVGMEU5RTRDRUZEMjJFRDlDCi06MTAzODRGMDBGOEY1RjBFRTg0MjBEMjFDRkVBREYwNzVGMDA4RUYyRkU2Ci06MTAzODVGMDBGRkVEMzNGRDQwMDc5ODUwMDZENUYwRjIyMkMzOThGREQ3Ci06MDUzODZGMDAwRkQ1RjBFQTIyNzQKLTowMDAwMDAwMUZGCi0qLwotLyoKLVZFUlNJT049MS4wNC4wNjIKLURBVEU9MTYuMTAuMjAwMiAgCi0qLwotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZ19lbWk2Ml9sb2FkZXJbXSA9IHsKLSB7IDMsMHgwMDAwLDAsezB4MDIsMHgwMiwweDg3fX0sCi0geyAzLDB4MDA0MywwLHsweDAyLDB4MDQsMHgwMH19LAotIHsxNiwweDAxMDAsMCx7MHhlNCwweGZmLDB4ZmUsMHhjMiwweDIwLDB4ZDIsMHhlOCwweDQzLDB4ZDgsMHgyMCwweDkwLDB4N2YsMHhhYiwweDc0LDB4ZmYsMHhmMH19LAotIHsxNiwweDAxMTAsMCx7MHg5MCwweDdmLDB4YTksMHhmMCwweDkwLDB4N2YsMHhhYSwweGYwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweDk1LDB4NzQsMHhjMH19LAotIHsxNiwweDAxMjAsMCx7MHhmMCwweDkwLDB4N2YsMHg5ZSwweGYwLDB4OTAsMHg3ZiwweDk4LDB4ZjAsMHhlNCwweDkwLDB4N2YsMHg5NCwweGYwLDB4OTAsMHg3Zn19LAotIHsxNiwweDAxMzAsMCx7MHg5ZCwweDc0LDB4ZmYsMHhmMCwweDkwLDB4N2YsMHg5NywweDc0LDB4YTAsMHhmMCwweDkwLDB4N2YsMHg5MywweGUwLDB4NTQsMHhmY319LAotIHsxNiwweDAxNDAsMCx7MHhmMCwweDkwLDB4N2YsMHg5YywweDc0LDB4MDMsMHhmMCwweGU0LDB4OTAsMHg3ZiwweDk2LDB4ZjAsMHg5MCwweDdmLDB4YWYsMHhlMH19LAotIHsxNiwweDAxNTAsMCx7MHg0NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YWUsMHhlMCwweDQ0LDB4MGQsMHhmMCwweGQyLDB4YWYsMHgwZiwweGJmLDB4MDAsMHgwMX19LAotIHsxNiwweDAxNjAsMCx7MHgwZSwweGJlLDB4MDcsMHhmOCwweGJmLDB4MDgsMHhmNSwweDIwLDB4MjAsMHg0MiwweDc1LDB4MTQsMHgwMCwweDc1LDB4MTMsMHgwMH19LAotIHsxNiwweDAxNzAsMCx7MHg3NSwweDEyLDB4MDAsMHg3NSwweDExLDB4MDAsMHg3ZiwweDQ4LDB4N2UsMHg5MiwweDdkLDB4MDAsMHg3YywweDAwLDB4YWIsMHgxNH19LAotIHsxNiwweDAxODAsMCx7MHhhYSwweDEzLDB4YTksMHgxMiwweGE4LDB4MTEsMHhjMywweDEyLDB4MDMsMHhlZCwweDUwLDB4ZGIsMHgyMCwweDIwLDB4ZDgsMHg3YX19LAotIHsxNiwweDAxOTAsMCx7MHgwMCwweDc5LDB4MDAsMHg3OCwweDAwLDB4ZTUsMHgxNCwweDI0LDB4MDEsMHhmNSwweDE0LDB4ZWEsMHgzNSwweDEzLDB4ZjUsMHgxM319LAotIHsxNiwweDAxYTAsMCx7MHhlOSwweDM1LDB4MTIsMHhmNSwweDEyLDB4ZTgsMHgzNSwweDExLDB4ZjUsMHgxMSwweDgwLDB4Y2EsMHgzMCwweDIwLDB4ZmQsMHgxMn19LAotIHsxNiwweDAxYjAsMCx7MHgwMSwweGM3LDB4NTAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH19LAotIHsgNiwweDAxYzAsMCx7MHgwMiwweGYwLDB4YzIsMHgyMCwweDgwLDB4ZTZ9fSwKLSB7IDEsMHgwMWM2LDAsezB4MjJ9fSwKLSB7MTYsMHgwMWM3LDAsezB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDViLDB4NjAsMHg2MCwweDI0LDB4MDIsMHg2MCwweDAzLDB4MDIsMHgwMiwweDg1LDB4OTB9fSwKLSB7MTYsMHgwMWQ3LDAsezB4N2YsMHhlYSwweGUwLDB4NzUsMHgwYSwweDAwLDB4ZjUsMHgwYiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDBhLDB4OTB9fSwKLSB7MTYsMHgwMWU3LDAsezB4N2YsMHhlZSwweGUwLDB4NzUsMHgxNSwweDAwLDB4ZjUsMHgxNiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDE1LDB4ZTV9fSwKLSB7MTYsMHgwMWY3LDAsezB4MTYsMHg0NSwweDE1LDB4NzAsMHgwMywweDAyLDB4MDIsMHg4NSwweGU0LDB4OTAsMHg3ZiwweGM1LDB4ZjAsMHg5MCwweDdmLDB4YjR9fSwKLSB7MTYsMHgwMjA3LDAsezB4ZTAsMHgyMCwweGUzLDB4ZjksMHg5MCwweDdmLDB4YzUsMHhlMCwweGY1LDB4MGMsMHgxMiwweDAzLDB4MTMsMHhhZiwweDBjLDB4N2V9fSwKLSB7MTYsMHgwMjE3LDAsezB4MDAsMHhlZiwweDI1LDB4MGIsMHhmNSwweDBiLDB4ZWUsMHgzNSwweDBhLDB4ZjUsMHgwYSwweGMzLDB4ZTUsMHgxNiwweDlmLDB4ZjV9fSwKLSB7MTYsMHgwMjI3LDAsezB4MTYsMHhlNSwweDE1LDB4OWUsMHhmNSwweDE1LDB4ODAsMHhjNywweDkwLDB4N2YsMHhlYSwweGUwLDB4NzUsMHgwYSwweDAwLDB4ZjV9fSwKLSB7MTYsMHgwMjM3LDAsezB4MGIsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgwYSwweDkwLDB4N2YsMHhlZSwweGUwLDB4NzUsMHgxNSwweDAwLDB4ZjV9fSwKLSB7MTYsMHgwMjQ3LDAsezB4MTYsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgxNSwweGU1LDB4MTYsMHg0NSwweDE1LDB4NjAsMHgzMCwweGU0LDB4OTB9fSwKLSB7MTYsMHgwMjU3LDAsezB4N2YsMHhjNSwweGYwLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHgyMCwweGUzLDB4ZjksMHg5MCwweDdmLDB4YzUsMHhlMCwweGY1LDB4MGN9fSwKLSB7MTYsMHgwMjY3LDAsezB4MTIsMHgwMywweDJiLDB4YWYsMHgwYywweDdlLDB4MDAsMHhlZiwweDI1LDB4MGIsMHhmNSwweDBiLDB4ZWUsMHgzNSwweDBhLDB4ZjV9fSwKLSB7MTUsMHgwMjc3LDAsezB4MGEsMHhjMywweGU1LDB4MTYsMHg5ZiwweGY1LDB4MTYsMHhlNSwweDE1LDB4OWUsMHhmNSwweDE1LDB4ODAsMHhjYSwweGMzfX0sCi0geyAxLDB4MDI4NiwwLHsweDIyfX0sCi0gezEyLDB4MDI4NywwLHsweDc4LDB4N2YsMHhlNCwweGY2LDB4ZDgsMHhmZCwweDc1LDB4ODEsMHgyOSwweDAyLDB4MDIsMHhjZX19LAotIHsxNiwweDAyOTMsMCx7MHgwMiwweDAxLDB4MDAsMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweDQwLDB4MDMsMHhmNiwweDgwLDB4MDEsMHhmMn19LAotIHsxNiwweDAyYTMsMCx7MHgwOCwweGRmLDB4ZjQsMHg4MCwweDI5LDB4ZTQsMHg5MywweGEzLDB4ZjgsMHg1NCwweDA3LDB4MjQsMHgwYywweGM4LDB4YzMsMHgzM319LAotIHsxNiwweDAyYjMsMCx7MHhjNCwweDU0LDB4MGYsMHg0NCwweDIwLDB4YzgsMHg4MywweDQwLDB4MDQsMHhmNCwweDU2LDB4ODAsMHgwMSwweDQ2LDB4ZjYsMHhkZn19LAotIHsxNiwweDAyYzMsMCx7MHhlNCwweDgwLDB4MGIsMHgwMSwweDAyLDB4MDQsMHgwOCwweDEwLDB4MjAsMHg0MCwweDgwLDB4OTAsMHgwNCwweDZlLDB4ZTQsMHg3ZX19LAotIHsxNiwweDAyZDMsMCx7MHgwMSwweDkzLDB4NjAsMHhiYywweGEzLDB4ZmYsMHg1NCwweDNmLDB4MzAsMHhlNSwweDA5LDB4NTQsMHgxZiwweGZlLDB4ZTQsMHg5M319LAotIHsxNiwweDAyZTMsMCx7MHhhMywweDYwLDB4MDEsMHgwZSwweGNmLDB4NTQsMHhjMCwweDI1LDB4ZTAsMHg2MCwweGE4LDB4NDAsMHhiOCwweGU0LDB4OTMsMHhhM319LAotIHsxNiwweDAyZjMsMCx7MHhmYSwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4YzgsMHhjNSwweDgyLDB4YzgsMHhjYSwweGM1LDB4ODMsMHhjYX19LAotIHsxNiwweDAzMDMsMCx7MHhmMCwweGEzLDB4YzgsMHhjNSwweDgyLDB4YzgsMHhjYSwweGM1LDB4ODMsMHhjYSwweGRmLDB4ZTksMHhkZSwweGU3LDB4ODAsMHhiZX19LAotIHsxNiwweDAzMTMsMCx7MHhlNSwweDBjLDB4ZmYsMHhlNSwweDBiLDB4ZjUsMHg4MiwweGU1LDB4MGEsMHhmNSwweDgzLDB4NzUsMHg5MiwweDdlLDB4NzQsMHhjMH19LAotIHsgOCwweDAzMjMsMCx7MHhmOCwweGUyLDB4MDgsMHhmMCwweGEzLDB4ZGYsMHhmYSwweDIyfX0sCi0gezE2LDB4MDMyYiwwLHsweDkwLDB4N2YsMHg5NiwweDg1LDB4ODMsMHg5MiwweGE4LDB4ODIsMHg3OSwweDAyLDB4OTAsMHgwMCwweDAwLDB4ZTAsMHhiNCwweDAwfX0sCi0gezE2LDB4MDMzYiwwLHsweDBkLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg0NCwweDgwLDB4ZjAsMHhlNSwweDBjfX0sCi0gezE2LDB4MDM0YiwwLHsweGZmLDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmNSwweDI4LDB4ZTQsMHhhMiwweDQ3LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyfX0sCi0gezE2LDB4MDM1YiwwLHsweDQ2LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDUsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0NCwweDMzfX0sCi0gezE2LDB4MDM2YiwwLHsweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0MywweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQyLDB4MzMsMHhmMiwweDY5fX0sCi0gezE2LDB4MDM3YiwwLHsweGYyLDB4ZTQsMHhhMiwweDQxLDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDAsMHgzMywweGYyLDB4NjksMHhmMiwweGEzfX0sCi0geyAzLDB4MDM4YiwwLHsweGRmLDB4YzIsMHgyMn19LAotIHsxNiwweDAzOGUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg5MCwweDdmLDB4YzQsMHhlNCwweGYwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3Zn19LAotIHsxMSwweDAzOWUsMCx7MHhhYiwweDc0LDB4MDQsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4MDNhOSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGQyLDB4MjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAxfX0sCi0geyA4LDB4MDNiOSwwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHgwM2MxLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMiwweGYwLDB4ZDB9fSwKLSB7IDYsMHgwM2QxLDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4MDNkNywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MTAsMHhmMCwweGQwfX0sCi0geyA2LDB4MDNlNywwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDAzZWQsMCx7MHhlYiwweDlmLDB4ZjUsMHhmMCwweGVhLDB4OWUsMHg0MiwweGYwLDB4ZTksMHg5ZCwweDQyLDB4ZjAsMHhlOCwweDljLDB4NDUsMHhmMH19LAotIHsgMSwweDAzZmQsMCx7MHgyMn19LAotIHsgMSwweDAzZmUsMCx7MHgzMn19LAotIHsgMSwweDAzZmYsMCx7MHgzMn19LAotIHsxNiwweDA0MDAsMCx7MHgwMiwweDAzLDB4YTksMHgwMCwweDAyLDB4MDMsMHhjMSwweDAwLDB4MDIsMHgwMywweDhlLDB4MDAsMHgwMiwweDA0LDB4NTgsMHgwMH19LAotIHsxNiwweDA0MTAsMCx7MHgwMiwweDAzLDB4ZDcsMHgwMCwweDAyLDB4MDMsMHhmZSwweDAwLDB4MDIsMHgwMywweGZmLDB4MDAsMHgwMiwweDA0LDB4ODQsMHgwMH19LAotIHsxNiwweDA0MjAsMCx7MHgwMiwweDA0LDB4ODUsMHgwMCwweDAyLDB4MDQsMHg4NiwweDAwLDB4MDIsMHgwNCwweDg3LDB4MDAsMHgwMiwweDA0LDB4ODgsMHgwMH19LAotIHsxNiwweDA0MzAsMCx7MHgwMiwweDA0LDB4ODksMHgwMCwweDAyLDB4MDQsMHg4YSwweDAwLDB4MDIsMHgwNCwweDhiLDB4MDAsMHgwMiwweDA0LDB4OGMsMHgwMH19LAotIHsxNiwweDA0NDAsMCx7MHgwMiwweDA0LDB4OGQsMHgwMCwweDAyLDB4MDQsMHg4ZSwweDAwLDB4MDIsMHgwNCwweDhmLDB4MDAsMHgwMiwweDA0LDB4OTAsMHgwMH19LAotIHsgOCwweDA0NTAsMCx7MHgwMiwweDA0LDB4OTEsMHgwMCwweDAyLDB4MDQsMHg5MiwweDAwfX0sCi0gezE2LDB4MDQ1OCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDgsMHhmMCwweGQwfX0sCi0geyA2LDB4MDQ2OCwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDA0NmUsMCx7MHgwMiwweDBhLDB4MDAsMHgwZiwweDAxLDB4MGMsMHgxMSwweDA0LDB4MGQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQxLDB4MDAsMHgwMH19LAotIHsgMSwweDA0N2UsMCx7MHgwMH19LAotIHsgNCwweDA0N2YsMCx7MHgwMiwweDE3LDB4MDAsMHgwMH19LAotIHsgMSwweDA0ODMsMCx7MHgwMH19LAotIHsgMSwweDA0ODQsMCx7MHgzMn19LAotIHsgMSwweDA0ODUsMCx7MHgzMn19LAotIHsgMSwweDA0ODYsMCx7MHgzMn19LAotIHsgMSwweDA0ODcsMCx7MHgzMn19LAotIHsgMSwweDA0ODgsMCx7MHgzMn19LAotIHsgMSwweDA0ODksMCx7MHgzMn19LAotIHsgMSwweDA0OGEsMCx7MHgzMn19LAotIHsgMSwweDA0OGIsMCx7MHgzMn19LAotIHsgMSwweDA0OGMsMCx7MHgzMn19LAotIHsgMSwweDA0OGQsMCx7MHgzMn19LAotIHsgMSwweDA0OGUsMCx7MHgzMn19LAotIHsgMSwweDA0OGYsMCx7MHgzMn19LAotIHsgMSwweDA0OTAsMCx7MHgzMn19LAotIHsgMSwweDA0OTEsMCx7MHgzMn19LAotIHsgMSwweDA0OTIsMCx7MHgzMn19LAotIHsxNiwweDExMDAsMCx7MHgxMiwweDAxLDB4MTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDQwLDB4NmEsMHgwOCwweDAxLDB4MDEsMHgwMCwweDAxLDB4MDEsMHgwMn19LAotIHsxNiwweDExMTAsMCx7MHgwMCwweDAxLDB4MDksMHgwMiwweDIwLDB4MDAsMHgwMSwweDAxLDB4MDMsMHhhMCwweDAwLDB4MDksMHgwNCwweDAwLDB4MDAsMHgwMn19LAotIHsxNiwweDExMjAsMCx7MHhmZiwweDAwLDB4MDAsMHgwNCwweDA3LDB4MDUsMHg4MiwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDAyLDB4MDIsMHg0MH19LAotIHsxNiwweDExMzAsMCx7MHgwMCwweDAwLDB4MDQsMHgwMywweDA5LDB4MDQsMHgyNiwweDAzLDB4NDEsMHgwMCwweDZlLDB4MDAsMHg2MywweDAwLDB4NjgsMHgwMH19LAotIHsxNiwweDExNDAsMCx7MHg2ZiwweDAwLDB4NzIsMHgwMCwweDIwLDB4MDAsMHg0MywweDAwLDB4NjgsMHgwMCwweDY5LDB4MDAsMHg3MCwweDAwLDB4NzMsMHgwMH19LAotIHsxNiwweDExNTAsMCx7MHgyYywweDAwLDB4MjAsMHgwMCwweDQ5LDB4MDAsMHg2ZSwweDAwLDB4NjMsMHgwMCwweDJlLDB4MDAsMHgyOCwweDAzLDB4NDYsMHgwMH19LAotIHsxNiwweDExNjAsMCx7MHg2OSwweDAwLDB4NzIsMHgwMCwweDZkLDB4MDAsMHg3NywweDAwLDB4NjEsMHgwMCwweDcyLDB4MDAsMHg2NSwweDAwLDB4MjAsMHgwMH19LAotIHsxNiwweDExNzAsMCx7MHg0NiwweDAwLDB4NzIsMHgwMCwweDYxLDB4MDAsMHg2ZCwweDAwLDB4NjUsMHgwMCwweDU3LDB4MDAsMHg2ZiwweDAwLDB4NzIsMHgwMH19LAotIHsxNiwweDExODAsMCx7MHg2YiwweDAwLDB4NzMsMHgwMCwweDJhLDB4MDMsMHg0MywweDAwLDB4NmYsMHgwMCwweDZlLDB4MDAsMHg2NiwweDAwLDB4NjksMHgwMH19LAotIHsxNiwweDExOTAsMCx7MHg2NywweDAwLDB4NzUsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NzQsMHgwMCwweDY5LDB4MDAsMHg2ZiwweDAwLDB4NmUsMHgwMH19LAotIHsxNiwweDExYTAsMCx7MHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwLDB4NjksMHgwMCwweDZlLDB4MDAsMHg2NywweDAwLDB4MjIsMHgwM319LAotIHsxNiwweDExYjAsMCx7MHg0OSwweDAwLDB4NmUsMHgwMCwweDc0LDB4MDAsMHg2NSwweDAwLDB4NzIsMHgwMCwweDY2LDB4MDAsMHg2MSwweDAwLDB4NjMsMHgwMH19LAotIHsxNiwweDExYzAsMCx7MHg2NSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMH19LAotIHsgMiwweDExZDAsMCx7MHgwMCwweDAwfX0sCi0geyAwLDB4MDAwMCwxLHswfX0KLX07Ci0vKiBTb3VyY2U6IEVNSUxPQUQuSEVYIAotOjEwMDQ2RTAwMDIwQTAwMEYwMTBDMTEwNDBEMDAwMDAwMDA0MTAwMDBGMwotOjAxMDQ3RTAwMDA3RAotOjEwMDFDNzAwOTA3RkU5RTAyNDVCNjA2MDI0MDI2MDAzMDIwMjg1OTA2RgotOjEwMDFENzAwN0ZFQUUwNzUwQTAwRjUwQkEzRTBGRUU0RUU0MjBBOTAyMQotOjEwMDFFNzAwN0ZFRUUwNzUxNTAwRjUxNkEzRTBGRUU0RUU0MjE1RTU5NwotOjEwMDFGNzAwMTY0NTE1NzAwMzAyMDI4NUU0OTA3RkM1RjA5MDdGQjQyMQotOjEwMDIwNzAwRTAyMEUzRjk5MDdGQzVFMEY1MEMxMjAzMTNBRjBDN0VGNQotOjEwMDIxNzAwMDBFRjI1MEJGNTBCRUUzNTBBRjUwQUMzRTUxNjlGRjUzQQotOjEwMDIyNzAwMTZFNTE1OUVGNTE1ODBDNzkwN0ZFQUUwNzUwQTAwRjU3QgotOjEwMDIzNzAwMEJBM0UwRkVFNEVFNDIwQTkwN0ZFRUUwNzUxNTAwRjVCMQotOjEwMDI0NzAwMTZBM0UwRkVFNEVFNDIxNUU1MTY0NTE1NjAzMEU0OTA4RQotOjEwMDI1NzAwN0ZDNUYwOTA3RkI0RTAyMEUzRjk5MDdGQzVFMEY1MEMwRgotOjEwMDI2NzAwMTIwMzJCQUYwQzdFMDBFRjI1MEJGNTBCRUUzNTBBRjVDRAotOjBGMDI3NzAwMEFDM0U1MTY5RkY1MTZFNTE1OUVGNTE1ODBDQUMzNTcKLTowMTAyODYwMDIyNTUKLToxMDAzQTkwMEMwRTBDMDgzQzA4MkQyMjA1MzkxRUY5MDdGQUI3NDAxMkIKLTowODAzQjkwMEYwRDA4MkQwODNEMEUwMzJDNQotOjEwMDM4RTAwQzBFMEMwODNDMDgyOTA3RkM0RTRGMDUzOTFFRjkwN0ZCMQotOjBCMDM5RTAwQUI3NDA0RjBEMDgyRDA4M0QwRTAzMkJBCi06MTAwM0MxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDAyRjBEMDQ0Ci06MDYwM0QxMDA4MkQwODNEMEUwMzI2RgotOjEwMDNENzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwRDAyMAotOjA2MDNFNzAwODJEMDgzRDBFMDMyNTkKLTowMTAzRkUwMDMyQ0MKLToxMDA0NTgwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDhGMEQwQTYKLTowNjA0NjgwMDgyRDA4M0QwRTAzMkQ3Ci06MDEwM0ZGMDAzMkNCCi06MDEwNDg0MDAzMjQ1Ci06MDEwNDg1MDAzMjQ0Ci06MDEwNDg2MDAzMjQzCi06MDEwNDg3MDAzMjQyCi06MDEwNDg4MDAzMjQxCi06MDEwNDg5MDAzMjQwCi06MDEwNDhBMDAzMjNGCi06MDEwNDhCMDAzMjNFCi06MDEwNDhDMDAzMjNECi06MDEwNDhEMDAzMjNDCi06MDEwNDhFMDAzMjNCCi06MDEwNDhGMDAzMjNBCi06MDEwNDkwMDAzMjM5Ci06MDEwNDkxMDAzMjM4Ci06MDEwNDkyMDAzMjM3Ci06MDQwNDdGMDAwMjE3MDAwMDYwCi06MTAwMTAwMDBFNEZGRkVDMjIwRDJFODQzRDgyMDkwN0ZBQjc0RkZGMDFBCi06MTAwMTEwMDA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3Rjk1NzRDMEUzCi06MTAwMTIwMDBGMDkwN0Y5RUYwOTA3Rjk4RjBFNDkwN0Y5NEYwOTA3RjI1Ci06MTAwMTMwMDA5RDc0RkZGMDkwN0Y5Nzc0QTBGMDkwN0Y5M0UwNTRGQzQzCi06MTAwMTQwMDBGMDkwN0Y5Qzc0MDNGMEU0OTA3Rjk2RjA5MDdGQUZFMDk2Ci06MTAwMTUwMDA0NDAxRjA5MDdGQUVFMDQ0MERGMEQyQUYwRkJGMDAwMTNDCi06MTAwMTYwMDAwRUJFMDdGOEJGMDhGNTIwMjA0Mjc1MTQwMDc1MTMwMDc1Ci06MTAwMTcwMDA3NTEyMDA3NTExMDA3RjQ4N0U5MjdEMDA3QzAwQUIxNEUzCi06MTAwMTgwMDBBQTEzQTkxMkE4MTFDMzEyMDNFRDUwREIyMDIwRDg3QUJDCi06MTAwMTkwMDAwMDc5MDA3ODAwRTUxNDI0MDFGNTE0RUEzNTEzRjUxMzBECi06MTAwMUEwMDBFOTM1MTJGNTEyRTgzNTExRjUxMTgwQ0EzMDIwRkQxMjNCCi06MTAwMUIwMDAwMUM3NTAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDYxCi06MDYwMUMwMDAwMkYwQzIyMDgwRTZGRgotOjAxMDFDNjAwMjIxNgotOjEwMTEwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgwMTAxMDAwMTAxMDIwMwotOjEwMTExMDAwMDAwMTA5MDIyMDAwMDEwMTAzQTAwMDA5MDQwMDAwMDJFRgotOjEwMTEyMDAwRkYwMDAwMDQwNzA1ODIwMjQwMDAwMDA3MDUwMjAyNDA5QwotOjEwMTEzMDAwMDAwMDA0MDMwOTA0MjYwMzQxMDA2RTAwNjMwMDY4MDBGOAotOjEwMTE0MDAwNkYwMDcyMDAyMDAwNDMwMDY4MDA2OTAwNzAwMDczMDBBNwotOjEwMTE1MDAwMkMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMjgwMzQ2MDA4QQotOjEwMTE2MDAwNjkwMDcyMDA2RDAwNzcwMDYxMDA3MjAwNjUwMDIwMDA2OAotOjEwMTE3MDAwNDYwMDcyMDA2MTAwNkQwMDY1MDA1NzAwNkYwMDcyMDA0QwotOjEwMTE4MDAwNkIwMDczMDAyQTAzNDMwMDZGMDA2RTAwNjYwMDY5MDA2NQotOjEwMTE5MDAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwNkYwMDZFMDBFNgotOjEwMTFBMDAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIyMDM4MwotOjEwMTFCMDAwNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNjEwMDYzMDAwMwotOjEwMTFDMDAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMwotOjAyMTFEMDAwMDAwMDFECi06MTAwMzEzMDBFNTBDRkZFNTBCRjU4MkU1MEFGNTgzNzU5MjdFNzRDMDYzCi06MDgwMzIzMDBGOEUyMDhGMEEzREZGQTIyNjIKLToxMDAzMkIwMDkwN0Y5Njg1ODM5MkE4ODI3OTAyOTAwMDAwRTBCNDAwQkEKLToxMDAzM0IwMDBENzQwMUYwOTA3Rjk3RTA1NDdGRjA0NDgwRjBFNTBDNTIKLToxMDAzNEIwMEZGOTA3RUMwRTBGNTI4RTRBMjQ3MzNGMjY5RjJFNEEyMDUKLToxMDAzNUIwMDQ2MzNGMjY5RjJFNEEyNDUzM0YyNjlGMkU0QTI0NDMzODQKLToxMDAzNkIwMEYyNjlGMkU0QTI0MzMzRjI2OUYyRTRBMjQyMzNGMjY5OTYKLToxMDAzN0IwMEYyRTRBMjQxMzNGMjY5RjJFNEEyNDAzM0YyNjlGMkEzNTAKLTowMzAzOEIwMERGQzIyMkFDCi06MDMwMDQzMDAwMjA0MDBCNAotOjEwMDQwMDAwMDIwM0E5MDAwMjAzQzEwMDAyMDM4RTAwMDIwNDU4MDA4NwotOjEwMDQxMDAwMDIwM0Q3MDAwMjAzRkUwMDAyMDNGRjAwMDIwNDg0MDA2RgotOjEwMDQyMDAwMDIwNDg1MDAwMjA0ODYwMDAyMDQ4NzAwMDIwNDg4MDA5QQotOjEwMDQzMDAwMDIwNDg5MDAwMjA0OEEwMDAyMDQ4QjAwMDIwNDhDMDA3QQotOjEwMDQ0MDAwMDIwNDhEMDAwMjA0OEUwMDAyMDQ4RjAwMDIwNDkwMDA1QQotOjA4MDQ1MDAwMDIwNDkxMDAwMjA0OTIwMDc1Ci06MDMwMDAwMDAwMjAyODc3MgotOjBDMDI4NzAwNzg3RkU0RjZEOEZENzU4MTI5MDIwMkNFRDQKLToxMDAzRUQwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwNjYKLTowMTAzRkQwMDIyREQKLToxMDAyOTMwMDAyMDEwMEU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyODAKLToxMDAyQTMwMDA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzNkMKLToxMDAyQjMwMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGM0IKLToxMDAyQzMwMEU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDA0NkVFNDdFNTkKLToxMDAyRDMwMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzMzAKLToxMDAyRTMwMEEzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRjcKLToxMDAyRjMwMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBMjIKLToxMDAzMDMwMEYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFRDkKLTowMTA0ODMwMDAwNzgKLTowMDAwMDAwMUZGCi0qLwotLyoKLVZFUlNJT049MS4wLjIuMDAyCi1EQVRFPTEwLjAxLjIwMDIKLUVNSTI2XzYyCi0qLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9pc2lnaHRfZmlybXdhcmUuYyBiL2RyaXZlcnMvdXNiL21pc2MvaXNpZ2h0X2Zpcm13YXJlLmMKaW5kZXggOWYzMGFhMS4uZDk0YWE3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9pc2lnaHRfZmlybXdhcmUuYworKysgYi9kcml2ZXJzL3VzYi9taXNjL2lzaWdodF9maXJtd2FyZS5jCkBAIC00MSw3ICs0MSw3IEBACiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmaXJtd2FyZTsKIAl1bnNpZ25lZCBjaGFyICpidWYgPSBrbWFsbG9jKDUwLCBHRlBfS0VSTkVMKTsKIAl1bnNpZ25lZCBjaGFyIGRhdGFbNF07Ci0JdTggKnB0cjsKKwljb25zdCB1OCAqcHRyOwogCiAJaWYgKCFidWYpCiAJCXJldHVybiAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9zaXN1c2J2Z2Evc2lzdXNiLmMgYi9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYwppbmRleCBjYjdmYTBlLi4zMzE4MmY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYworKysgYi9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYwpAQCAtMzI2NCw4ICszMjY0LDYgQEAKIAogCS8qIGRlY3JlbWVudCBvdXIgdXNhZ2UgY291bnQgKi8KIAlrcmVmX3B1dCgmc2lzdXNiLT5rcmVmLCBzaXN1c2JfZGVsZXRlKTsKLQotCWRldl9pbmZvKCZzaXN1c2ItPnNpc3VzYl9kZXYtPmRldiwgIkRpc2Nvbm5lY3RlZFxuIik7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBzaXN1c2JfdGFibGUgW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tb24vbW9uX2Jpbi5jIGIvZHJpdmVycy91c2IvbW9uL21vbl9iaW4uYwppbmRleCA0OTE0NTUzLi4yOTNhNDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9tb24vbW9uX2Jpbi5jCisrKyBiL2RyaXZlcnMvdXNiL21vbi9tb25fYmluLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIApAQCAtNTI3LDE0ICs1MjgsMTcgQEAKIAlzaXplX3Qgc2l6ZTsKIAlpbnQgcmM7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJm1vbl9sb2NrKTsKIAlpZiAoKG1idXMgPSBtb25fYnVzX2xvb2t1cChpbWlub3IoaW5vZGUpKSkgPT0gTlVMTCkgewogCQltdXRleF91bmxvY2soJm1vbl9sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAJaWYgKG1idXMgIT0gJm1vbl9idXMwICYmIG1idXMtPnVfYnVzID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSIFRBRyAiOiBjb25zaXN0ZW5jeSBlcnJvciBvbiBvcGVuXG4iKTsKIAkJbXV0ZXhfdW5sb2NrKCZtb25fbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCkBAIC01NjgsNiArNTcyLDcgQEAKIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHJwOwogCW11dGV4X3VubG9jaygmbW9uX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogZXJyX2FsbG9jYnVmZjoKQEAgLTU3Niw2ICs1ODEsNyBAQAogCWtmcmVlKHJwKTsKIGVycl9hbGxvYzoKIAltdXRleF91bmxvY2soJm1vbl9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJjOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCmluZGV4IDliYTY0Y2MuLjlhNzY4MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCkBAIC0zMDQsMTkgKzMwNCwxOSBAQAogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX01QUgogCWJvb2wgIlVTQiBLZXlzcGFuIE1QUiBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIEtleXNwYW4gTVBSIGNvbnZlcnRlci4KIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOAogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0yOCBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOCBjb252ZXJ0ZXIuCiAKIGNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTI4WCBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOFggY29udmVydGVyLgogCSAgQmUgc3VyZSB5b3UgaGF2ZSBhIFVTQS0yOFgsIHRoZXJlIGFyZSBhbHNvIDI4WEEgYW5kIDI4WEIKQEAgLTMyNCw3ICszMjQsNyBAQAogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WEEKIAlib29sICJVU0IgS2V5c3BhbiBVU0EtMjhYQSBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOFhBIGNvbnZlcnRlci4KIAkgIEJlIHN1cmUgeW91IGhhdmUgYSBVU0EtMjhYQSwgdGhlcmUgYXJlIGFsc28gMjhYIGFuZCAyOFhCCkBAIC0zMzIsNyArMzMyLDcgQEAKIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFhCCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTI4WEIgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMjhYQiBjb252ZXJ0ZXIuCiAJICBCZSBzdXJlIHlvdSBoYXZlIGEgVVNBLTI4WEIsIHRoZXJlIGFyZSBhbHNvIDI4WCBhbmQgMjhYQQpAQCAtMzQwLDQzICszNDAsNDMgQEAKIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOQogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOSBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0xOSBjb252ZXJ0ZXIuCiAKIGNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMThYCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTE4WCBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0xOFggY29udmVydGVyLgogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5VwogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOVcgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMTlXIGNvbnZlcnRlci4KIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVFXCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTE5UVcgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMTlRVyBjb252ZXJ0ZXIuCiAKIGNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRSQogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOVFJIEZpcm13YXJlIgotCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4gJiYgRklSTVdBUkVfSU5fS0VSTkVMCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIGZpcm13YXJlIGZvciB0aGUgVVNBLTE5UUkgY29udmVydGVyLgogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTQ5VwogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS00OVcgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtNDlXIGNvbnZlcnRlci4KIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0E0OVdMQwogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS00OVdMQyBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS00OVdMQyBjb252ZXJ0ZXIuCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKaW5kZXggNTIzNGU3YS4uMGZmNGEzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKQEAgLTYzNyw2ICs2MzcsNyBAQAogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9PT0NETElOS19QSUQpLAogCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJmZ0ZGlfanRhZ19xdWlyayB9LAogCXsgVVNCX0RFVklDRShSQVRPQ19WRU5ET1JfSUQsIFJBVE9DX1BST0RVQ1RfSURfVVNCNjBGKSB9LAorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9SRVVfVElOWV9QSUQpIH0sCiAJeyB9LAkJCQkJLyogT3B0aW9uYWwgcGFyYW1ldGVyIGVudHJ5ICovCiAJeyB9CQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmgKaW5kZXggMDZlMGVjYS4uODMwMmVjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmgKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmgKQEAgLTgyOCw2ICs4MjgsOSBAQAogLyogUHJvcG94IGRldmljZXMgKi8KICNkZWZpbmUgRlRESV9QUk9QT1hfSlRBR0NBQkxFSUlfUElECTB4RDczOAogCisvKiBSaWcgRXhwZXJ0IFVrcmFpbmUgZGV2aWNlcyAqLworI2RlZmluZSBGVERJX1JFVV9USU5ZX1BJRAkJMHhFRDIyCS8qIFJpZ0V4cGVydCBUaW55ICovCisKIC8qIENvbW1hbmRzICovCiAjZGVmaW5lIEZURElfU0lPX1JFU0VUIAkJMCAvKiBSZXNldCB0aGUgcG9ydCAqLwogI2RlZmluZSBGVERJX1NJT19NT0RFTV9DVFJMIAkxIC8qIFNldCB0aGUgbW9kZW0gY29udHJvbCByZWdpc3RlciAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2VkZ2Vwb3J0LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYwppbmRleCAwNmI1MmY0Li4yZmQ0NDliIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYwpAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaWhleC5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL3NlcmlhbC5oPgpAQCAtNTYsMjYgKzU4LDYgQEAKICNkZWZpbmUgRFJJVkVSX0FVVEhPUiAiR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4gYW5kIERhdmlkIElhY292ZWxsaSIKICNkZWZpbmUgRFJJVkVSX0RFU0MgIkVkZ2Vwb3J0IFVTQiBTZXJpYWwgRHJpdmVyIgogCi0vKiBGaXJzdCwgdGhlIGxhdGVzdCBib290IGNvZGUgLSBmb3IgZmlyc3QgZ2VuZXJhdGlvbiBlZGdlcG9ydHMgKi8KLSNkZWZpbmUgSU1BR0VfQVJSQVlfTkFNRQlCb290Q29kZUltYWdlX0dFTjEKLSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCUJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjEKLSNpbmNsdWRlICJpb19md19ib290LmgiCQkvKiB0aGUgYm9vdGxvYWRlciBmaXJtd2FyZSB0byBkb3dubG9hZCB0byBhIGRldmljZSwgaWYgaXQgbmVlZHMgaXQgKi8KLQotLyogZm9yIHNlY29uZCBnZW5lcmF0aW9uIGVkZ2Vwb3J0cyAqLwotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCUJvb3RDb2RlSW1hZ2VfR0VOMgotI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJQm9vdENvZGVJbWFnZVZlcnNpb25fR0VOMgotI2luY2x1ZGUgImlvX2Z3X2Jvb3QyLmgiCS8qIHRoZSBib290bG9hZGVyIGZpcm13YXJlIHRvIGRvd25sb2FkIHRvIGEgZGV2aWNlLCBpZiBpdCBuZWVkcyBpdCAqLwotCi0vKiBUaGVuIGZpbmFsbHkgdGhlIG1haW4gcnVuLXRpbWUgb3BlcmF0aW9uYWwgY29kZSAtIGZvciBmaXJzdCBnZW5lcmF0aW9uIGVkZ2Vwb3J0cyAqLwotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCU9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjEKLSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4xCi0jaW5jbHVkZSAiaW9fZndfZG93bi5oIgkJLyogRGVmaW5lIGFycmF5IE9wZXJhdGlvbmFsQ29kZUltYWdlW10gKi8KLQotLyogZm9yIHNlY29uZCBnZW5lcmF0aW9uIGVkZ2Vwb3J0cyAqLwotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCU9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjIKLSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yCi0jaW5jbHVkZSAiaW9fZndfZG93bjIuaCIJLyogRGVmaW5lIGFycmF5IE9wZXJhdGlvbmFsQ29kZUltYWdlW10gKi8KLQogI2RlZmluZSBNQVhfTkFNRV9MRU4JCTY0CiAKICNkZWZpbmUgQ0hBU0VfVElNRU9VVAkJKDUqSFopCQkvKiA1IHNlY29uZHMgKi8KQEAgLTI1Niw5ICsyMzgsOSBAQAogc3RhdGljIGludCAgd3JpdGVfY21kX3VzYgkJKHN0cnVjdCBlZGdlcG9ydF9wb3J0ICplZGdlX3BvcnQsIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IHdyaXRlTGVuZ3RoKTsKIHN0YXRpYyB2b2lkIHNlbmRfbW9yZV9wb3J0X2RhdGEJCShzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCwgc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCk7CiAKLXN0YXRpYyBpbnQgIHNyYW1fd3JpdGUJCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBfX3U4ICpkYXRhKTsKK3N0YXRpYyBpbnQgIHNyYW1fd3JpdGUJCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBjb25zdCBfX3U4ICpkYXRhKTsKIHN0YXRpYyBpbnQgIHJvbV9yZWFkCQkJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgX191OCAqZGF0YSk7Ci1zdGF0aWMgaW50ICByb21fd3JpdGUJCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBfX3U4ICpkYXRhKTsKK3N0YXRpYyBpbnQgIHJvbV93cml0ZQkJCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBfX3UxNiBleHRBZGRyLCBfX3UxNiBhZGRyLCBfX3UxNiBsZW5ndGgsIGNvbnN0IF9fdTggKmRhdGEpOwogc3RhdGljIHZvaWQgZ2V0X21hbnVmYWN0dXJpbmdfZGVzYwkoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwpOwogc3RhdGljIHZvaWQgZ2V0X2Jvb3RfZGVzYwkJKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsKTsKIHN0YXRpYyB2b2lkIGxvYWRfYXBwbGljYXRpb25fZmlybXdhcmUJKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsKTsKQEAgLTI4MywzNyArMjY1LDQxIEBACiB7CiAJX191MzIgQm9vdEN1clZlcjsKIAlfX3UzMiBCb290TmV3VmVyOwotCV9fdTggQm9vdE1ham9yVmVyc2lvbjsgICAgICAgICAgICAgICAgICAKLQlfX3U4IEJvb3RNaW5vclZlcnNpb247ICAgICAgICAgICAgICAgICAgCi0JX19sZTE2IEJvb3RCdWlsZE51bWJlcjsKLQlfX3U4ICpCb290SW1hZ2U7ICAgICAgCi0JX191MzIgQm9vdFNpemU7Ci0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkICpyZWNvcmQ7Ci0JdW5zaWduZWQgY2hhciAqZmlybXdhcmU7CisJX191OCBCb290TWFqb3JWZXJzaW9uOworCV9fdTggQm9vdE1pbm9yVmVyc2lvbjsKKwlfX3UxNiBCb290QnVpbGROdW1iZXI7CisJX191MzIgQm9vdGFkZHI7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwljb25zdCBjaGFyICpmd19uYW1lOwogCWludCByZXNwb25zZTsKIAotCiAJc3dpdGNoIChlZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLmlEb3dubG9hZEZpbGUpIHsKIAkJY2FzZSBFREdFX0RPV05MT0FEX0ZJTEVfSTkzMDoKLQkJCUJvb3RNYWpvclZlcnNpb24JPSBCb290Q29kZUltYWdlVmVyc2lvbl9HRU4xLk1ham9yVmVyc2lvbjsKLQkJCUJvb3RNaW5vclZlcnNpb24JPSBCb290Q29kZUltYWdlVmVyc2lvbl9HRU4xLk1pbm9yVmVyc2lvbjsKLQkJCUJvb3RCdWlsZE51bWJlcgkJPSBjcHVfdG9fbGUxNihCb290Q29kZUltYWdlVmVyc2lvbl9HRU4xLkJ1aWxkTnVtYmVyKTsKLQkJCUJvb3RJbWFnZQkJPSAmQm9vdENvZGVJbWFnZV9HRU4xWzBdOwotCQkJQm9vdFNpemUJCT0gc2l6ZW9mKCBCb290Q29kZUltYWdlX0dFTjEgKTsKKwkJCWZ3X25hbWUJPSAiZWRnZXBvcnQvYm9vdC5mdyI7CiAJCQlicmVhazsKIAogCQljYXNlIEVER0VfRE9XTkxPQURfRklMRV84MDI1MToKLQkJCUJvb3RNYWpvclZlcnNpb24JPSBCb290Q29kZUltYWdlVmVyc2lvbl9HRU4yLk1ham9yVmVyc2lvbjsKLQkJCUJvb3RNaW5vclZlcnNpb24JPSBCb290Q29kZUltYWdlVmVyc2lvbl9HRU4yLk1pbm9yVmVyc2lvbjsKLQkJCUJvb3RCdWlsZE51bWJlcgkJPSBjcHVfdG9fbGUxNihCb290Q29kZUltYWdlVmVyc2lvbl9HRU4yLkJ1aWxkTnVtYmVyKTsKLQkJCUJvb3RJbWFnZQkJPSAmQm9vdENvZGVJbWFnZV9HRU4yWzBdOwotCQkJQm9vdFNpemUJCT0gc2l6ZW9mKCBCb290Q29kZUltYWdlX0dFTjIgKTsKKwkJCWZ3X25hbWUJPSAiZWRnZXBvcnQvYm9vdDIuZnciOwogCQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoKIAkJCXJldHVybjsKIAl9CiAKKwlyZXNwb25zZSA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsIGZ3X25hbWUsCisJCQkJCSAmZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYpOworCWlmIChyZXNwb25zZSkgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBsb2FkIGltYWdlIFwiJXNcIiBlcnIgJWRcbiIsCisJCSAgICAgICBmd19uYW1lLCByZXNwb25zZSk7CisJCXJldHVybjsKKwl9CisKKwlyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZnctPmRhdGE7CisJQm9vdE1ham9yVmVyc2lvbiA9IHJlYy0+ZGF0YVswXTsKKwlCb290TWlub3JWZXJzaW9uID0gcmVjLT5kYXRhWzFdOworCUJvb3RCdWlsZE51bWJlciA9IChyZWMtPmRhdGFbMl0gPDwgOCkgfCByZWMtPmRhdGFbM107CisKIAkvLyBDaGVjayBCb290IEltYWdlIFZlcnNpb24KIAlCb290Q3VyVmVyID0gKGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuTWFqb3JWZXJzaW9uIDw8IDI0KSArCiAJCSAgICAgKGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuTWlub3JWZXJzaW9uIDw8IDE2KSArCkBAIC0zMjEsNyArMzA3LDcgQEAKIAogCUJvb3ROZXdWZXIgPSAoQm9vdE1ham9yVmVyc2lvbiA8PCAyNCkgKwogCQkgICAgIChCb290TWlub3JWZXJzaW9uIDw8IDE2KSArCi0JCSAgICAgIGxlMTZfdG9fY3B1KEJvb3RCdWlsZE51bWJlcik7CisJCSAgICAgIEJvb3RCdWlsZE51bWJlcjsKIAogCWRiZygiQ3VycmVudCBCb290IEltYWdlIHZlcnNpb24gJWQuJWQuJWQiLAogCSAgICBlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLk1ham9yVmVyc2lvbiwKQEAgLTMzNCwzMCArMzIwLDMwIEBACiAJCSAgICBlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLk1ham9yVmVyc2lvbiwKIAkJICAgIGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuTWlub3JWZXJzaW9uLAogCQkgICAgbGUxNl90b19jcHUoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5CdWlsZE51bWJlciksCi0JCSAgICBCb290TWFqb3JWZXJzaW9uLAotCQkgICAgQm9vdE1pbm9yVmVyc2lvbiwKLQkJICAgIGxlMTZfdG9fY3B1KEJvb3RCdWlsZE51bWJlcikpOwotCisJCSAgICBCb290TWFqb3JWZXJzaW9uLCBCb290TWlub3JWZXJzaW9uLCBCb290QnVpbGROdW1iZXIpOwogCiAJCWRiZygiRG93bmxvYWRpbmcgbmV3IEJvb3QgSW1hZ2UiKTsKIAotCQlmaXJtd2FyZSA9IEJvb3RJbWFnZTsKLQotCQlmb3IgKDs7KSB7Ci0JCQlyZWNvcmQgPSAoc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkICopZmlybXdhcmU7Ci0JCQlyZXNwb25zZSA9IHJvbV93cml0ZSAoZWRnZV9zZXJpYWwtPnNlcmlhbCwgbGUxNl90b19jcHUocmVjb3JkLT5FeHRBZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5BZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5MZW4pLCAmcmVjb3JkLT5EYXRhWzBdKTsKKwkJZm9yIChyZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYyk7IHJlYzsKKwkJICAgICByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJCUJvb3RhZGRyID0gYmUzMl90b19jcHUocmVjLT5hZGRyKTsKKwkJCXJlc3BvbnNlID0gcm9tX3dyaXRlKGVkZ2Vfc2VyaWFsLT5zZXJpYWwsCisJCQkJCSAgICAgQm9vdGFkZHIgPj4gMTYsCisJCQkJCSAgICAgQm9vdGFkZHIgJiAweEZGRkYsCisJCQkJCSAgICAgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCQkgICAgICZyZWMtPmRhdGFbMF0pOwogCQkJaWYgKHJlc3BvbnNlIDwgMCkgewotCQkJCWRldl9lcnIoJmVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGV2LCAicm9tX3dyaXRlIGZhaWxlZCAoJXgsICV4LCAlZClcbiIsIGxlMTZfdG9fY3B1KHJlY29yZC0+RXh0QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+TGVuKSk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQlmaXJtd2FyZSArPSBzaXplb2YgKHN0cnVjdCBlZGdlX2Zpcm13YXJlX2ltYWdlX3JlY29yZCkgKyBsZTE2X3RvX2NwdShyZWNvcmQtPkxlbik7Ci0JCQlpZiAoZmlybXdhcmUgPj0gJkJvb3RJbWFnZVtCb290U2l6ZV0pIHsKKwkJCQlkZXZfZXJyKCZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwKKwkJCQkJInJvbV93cml0ZSBmYWlsZWQgKCV4LCAleCwgJWQpXG4iLAorCQkJCQlCb290YWRkciA+PiAxNiwgQm9vdGFkZHIgJiAweEZGRkYsCisJCQkJCWJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0KIAl9IGVsc2UgewogCQlkYmcoIkJvb3QgSW1hZ2UgLS0gYWxyZWFkeSB1cCB0byBkYXRlIik7CiAJfQorCXJlbGVhc2VfZmlybXdhcmUoZncpOwogfQogCiAKQEAgLTQ0Nyw5ICs0MzMsNiBAQAogCWRiZygiICBCb290TWFqb3JWZXJzaW9uICAgICAgJWQuJWQuJWQiLCBwcm9kdWN0X2luZm8tPkJvb3RNYWpvclZlcnNpb24sCiAJICAgIHByb2R1Y3RfaW5mby0+Qm9vdE1pbm9yVmVyc2lvbiwKIAkgICAgbGUxNl90b19jcHUocHJvZHVjdF9pbmZvLT5Cb290QnVpbGROdW1iZXIpKTsKLQlkYmcoIiAgRmlybXdhcmVNYWpvclZlcnNpb24gICVkLiVkLiVkIiwgcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1ham9yVmVyc2lvbiwKLQkgICAgcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1pbm9yVmVyc2lvbiwKLQkgICAgbGUxNl90b19jcHUocHJvZHVjdF9pbmZvLT5GaXJtd2FyZUJ1aWxkTnVtYmVyKSk7CiAJZGJnKCIgIE1hbnVmYWN0dXJlRGVzY0RhdGUgICAlZC8lZC8lZCIsIHByb2R1Y3RfaW5mby0+TWFudWZhY3R1cmVEZXNjRGF0ZVswXSwKIAkgICAgcHJvZHVjdF9pbmZvLT5NYW51ZmFjdHVyZURlc2NEYXRlWzFdLAogCSAgICBwcm9kdWN0X2luZm8tPk1hbnVmYWN0dXJlRGVzY0RhdGVbMl0rMTkwMCk7CkBAIC00ODAsMTQgKzQ2Myw4IEBACiAKIAkvLyBjaGVjayBpZiB0aGlzIGlzIDJuZCBnZW5lcmF0aW9uIGhhcmR3YXJlCiAJaWYgKGxlMTZfdG9fY3B1KGVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpICYgSU9OX0RFVklDRV9JRF84MDI1MV9ORVRDSElQKSB7Ci0JCXByb2R1Y3RfaW5mby0+RmlybXdhcmVNYWpvclZlcnNpb24JPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMi5NYWpvclZlcnNpb247Ci0JCXByb2R1Y3RfaW5mby0+RmlybXdhcmVNaW5vclZlcnNpb24JPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMi5NaW5vclZlcnNpb247Ci0JCXByb2R1Y3RfaW5mby0+RmlybXdhcmVCdWlsZE51bWJlcgk9IGNwdV90b19sZTE2KE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yLkJ1aWxkTnVtYmVyKTsKIAkJcHJvZHVjdF9pbmZvLT5pRG93bmxvYWRGaWxlCQk9IEVER0VfRE9XTkxPQURfRklMRV84MDI1MTsKIAl9IGVsc2UgewotCQlwcm9kdWN0X2luZm8tPkZpcm13YXJlTWFqb3JWZXJzaW9uCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWFqb3JWZXJzaW9uOwotCQlwcm9kdWN0X2luZm8tPkZpcm13YXJlTWlub3JWZXJzaW9uCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWlub3JWZXJzaW9uOwotCQlwcm9kdWN0X2luZm8tPkZpcm13YXJlQnVpbGROdW1iZXIJPSBjcHVfdG9fbGUxNihPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMS5CdWlsZE51bWJlcik7CiAJCXByb2R1Y3RfaW5mby0+aURvd25sb2FkRmlsZQkJPSBFREdFX0RPV05MT0FEX0ZJTEVfSTkzMDsKIAl9CiAKQEAgLTIxMzAsNyArMjEwNyw3IEBACiAgKglJZiBzdWNjZXNzZnVsIHJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuLCBvdGhlcndpc2UgaXQgcmV0dXJucwogICoJYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIgb2YgdGhlIHByb2JsZW0uCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBpbnQgc3JhbV93cml0ZSAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBfX3U4ICpkYXRhKQorc3RhdGljIGludCBzcmFtX3dyaXRlKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgY29uc3QgX191OCAqZGF0YSkKIHsKIAlpbnQgcmVzdWx0OwogCV9fdTE2IGN1cnJlbnRfbGVuZ3RoOwpAQCAtMjE3NSw3ICsyMTUyLDcgQEAKICAqCUlmIHN1Y2Nlc3NmdWwgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIG90aGVyd2lzZSBpdCByZXR1cm5zCiAgKglhIG5lZ2F0aXZlIGVycm9yIG51bWJlciBvZiB0aGUgcHJvYmxlbS4KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCByb21fd3JpdGUgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgX191OCAqZGF0YSkKK3N0YXRpYyBpbnQgcm9tX3dyaXRlKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgY29uc3QgX191OCAqZGF0YSkKIHsKIAlpbnQgcmVzdWx0OwogCV9fdTE2IGN1cnJlbnRfbGVuZ3RoOwpAQCAtMjc2MSwzMiArMjczOCwyMyBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgdm9pZCBsb2FkX2FwcGxpY2F0aW9uX2Zpcm13YXJlIChzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCkKIHsKLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgKnJlY29yZDsKLQl1bnNpZ25lZCBjaGFyICpmaXJtd2FyZTsKLQl1bnNpZ25lZCBjaGFyICpGaXJtd2FyZUltYWdlOwotCWludCBJbWFnZVNpemU7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwljb25zdCBjaGFyICpmd19uYW1lOworCWNvbnN0IGNoYXIgKmZ3X2luZm87CiAJaW50IHJlc3BvbnNlOwotCisJX191MzIgT3BlcmFkZHI7CisJX191MTYgYnVpbGQ7CiAKIAlzd2l0Y2ggKGVkZ2Vfc2VyaWFsLT5wcm9kdWN0X2luZm8uaURvd25sb2FkRmlsZSkgewogCQljYXNlIEVER0VfRE9XTkxPQURfRklMRV9JOTMwOgotCQkJZGJnKCJkb3dubG9hZGluZyBmaXJtd2FyZSB2ZXJzaW9uICg5MzApICVkLiVkLiVkIiwgCi0JCQkgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWFqb3JWZXJzaW9uLCAKLQkJCSAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMS5NaW5vclZlcnNpb24sIAotCQkJICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4xLkJ1aWxkTnVtYmVyKTsKLQkJCWZpcm13YXJlID0gJk9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjFbMF07Ci0JCQlGaXJtd2FyZUltYWdlID0gJk9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjFbMF07Ci0JCQlJbWFnZVNpemUgPSBzaXplb2YoT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMSk7CisJCQlmd19pbmZvID0gImRvd25sb2FkaW5nIGZpcm13YXJlIHZlcnNpb24gKDkzMCkiOworCQkJZndfbmFtZQk9ICJlZGdlcG9ydC9kb3duLmZ3IjsKIAkJCWJyZWFrOwogCiAJCWNhc2UgRURHRV9ET1dOTE9BRF9GSUxFXzgwMjUxOgotCQkJZGJnKCJkb3dubG9hZGluZyBmaXJtd2FyZSB2ZXJzaW9uICg4MDI1MSkgJWQuJWQuJWQiLCAKLQkJCSAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMi5NYWpvclZlcnNpb24sIAotCQkJICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yLk1pbm9yVmVyc2lvbiwgCi0JCQkgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuQnVpbGROdW1iZXIpOwotCQkJZmlybXdhcmUgPSAmT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMlswXTsKLQkJCUZpcm13YXJlSW1hZ2UgPSAmT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMlswXTsKLQkJCUltYWdlU2l6ZSA9IHNpemVvZihPcGVyYXRpb25hbENvZGVJbWFnZV9HRU4yKTsKKwkJCWZ3X2luZm8gPSAiZG93bmxvYWRpbmcgZmlybXdhcmUgdmVyc2lvbiAoODAyNTEpIjsKKwkJCWZ3X25hbWUJPSAiZWRnZXBvcnQvZG93bjIuZnciOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBFREdFX0RPV05MT0FEX0ZJTEVfTk9ORToKQEAgLTI3OTcsMTYgKzI3NjUsMzYgQEAKIAkJCXJldHVybjsKIAl9CiAKKwlyZXNwb25zZSA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsIGZ3X25hbWUsCisJCQkJICAgICZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldik7CisJaWYgKHJlc3BvbnNlKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGxvYWQgaW1hZ2UgXCIlc1wiIGVyciAlZFxuIiwKKwkJICAgICAgIGZ3X25hbWUsIHJlc3BvbnNlKTsKKwkJcmV0dXJuOworCX0KIAotCWZvciAoOzspIHsKLQkJcmVjb3JkID0gKHN0cnVjdCBlZGdlX2Zpcm13YXJlX2ltYWdlX3JlY29yZCAqKWZpcm13YXJlOwotCQlyZXNwb25zZSA9IHNyYW1fd3JpdGUgKGVkZ2Vfc2VyaWFsLT5zZXJpYWwsIGxlMTZfdG9fY3B1KHJlY29yZC0+RXh0QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+TGVuKSwgJnJlY29yZC0+RGF0YVswXSk7CisJcmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZ3LT5kYXRhOworCWJ1aWxkID0gKHJlYy0+ZGF0YVsyXSA8PCA4KSB8IHJlYy0+ZGF0YVszXTsKKworCWRiZygiJXMgJWQuJWQuJWQiLCBmd19pbmZvLCByZWMtPmRhdGFbMF0sIHJlYy0+ZGF0YVsxXSwgYnVpbGQpOworCisJZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5GaXJtd2FyZU1ham9yVmVyc2lvbiA9IGZ3LT5kYXRhWzBdOworCWVkZ2Vfc2VyaWFsLT5wcm9kdWN0X2luZm8uRmlybXdhcmVNaW5vclZlcnNpb24gPSBmdy0+ZGF0YVsxXTsKKwllZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLkZpcm13YXJlQnVpbGROdW1iZXIgPSBjcHVfdG9fbGUxNihidWlsZCk7CisKKwlmb3IgKHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKTsgcmVjOworCSAgICAgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCU9wZXJhZGRyID0gYmUzMl90b19jcHUocmVjLT5hZGRyKTsKKwkJcmVzcG9uc2UgPSBzcmFtX3dyaXRlKGVkZ2Vfc2VyaWFsLT5zZXJpYWwsCisJCQkJICAgICBPcGVyYWRkciA+PiAxNiwKKwkJCQkgICAgIE9wZXJhZGRyICYgMHhGRkZGLAorCQkJCSAgICAgYmUxNl90b19jcHUocmVjLT5sZW4pLAorCQkJCSAgICAgJnJlYy0+ZGF0YVswXSk7CiAJCWlmIChyZXNwb25zZSA8IDApIHsKLQkJCWRldl9lcnIoJmVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGV2LCAic3JhbV93cml0ZSBmYWlsZWQgKCV4LCAleCwgJWQpXG4iLCBsZTE2X3RvX2NwdShyZWNvcmQtPkV4dEFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkxlbikpOwotCQkJYnJlYWs7Ci0JCX0KLQkJZmlybXdhcmUgKz0gc2l6ZW9mIChzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQpICsgbGUxNl90b19jcHUocmVjb3JkLT5MZW4pOwotCQlpZiAoZmlybXdhcmUgPj0gJkZpcm13YXJlSW1hZ2VbSW1hZ2VTaXplXSkgeworCQkJZGV2X2VycigmZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYsCisJCQkJInNyYW1fd3JpdGUgZmFpbGVkICgleCwgJXgsICVkKVxuIiwKKwkJCQlPcGVyYWRkciA+PiAxNiwgT3BlcmFkZHIgJiAweEZGRkYsCisJCQkJYmUxNl90b19jcHUocmVjLT5sZW4pKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtMjgxNyw2ICsyODA1LDcgQEAKIAkJCQkgICAgVVNCX1JFUVVFU1RfSU9OX0VYRUNfRExfQ09ERSwgCiAJCQkJICAgIDB4NDAsIDB4NDAwMCwgMHgwMDAxLCBOVUxMLCAwLCAzMDAwKTsKIAorCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCXJldHVybjsKIH0KIApAQCAtMjkwMyw2ICsyODkyLDEwIEBACiAvLwkJZGJnKCJzZXRfY29uZmlndXJhdGlvbiAxIik7CiAvLwkJdXNiX3NldF9jb25maWd1cmF0aW9uIChkZXYsIDEpOwogCX0KKwlkYmcoIiAgRmlybXdhcmVNYWpvclZlcnNpb24gICVkLiVkLiVkIiwKKwkgICAgZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5GaXJtd2FyZU1ham9yVmVyc2lvbiwKKwkgICAgZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5GaXJtd2FyZU1pbm9yVmVyc2lvbiwKKwkgICAgbGUxNl90b19jcHUoZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5GaXJtd2FyZUJ1aWxkTnVtYmVyKSk7CiAKIAkvKiB3ZSBzZXQgdXAgdGhlIHBvaW50ZXJzIHRvIHRoZSBlbmRwb2ludHMgaW4gdGhlIGVkZ2Vfb3BlbiBmdW5jdGlvbiwgCiAJICogYXMgdGhlIHN0cnVjdHVyZXMgYXJlbid0IGNyZWF0ZWQgeWV0LiAqLwpAQCAtMzExNSw2ICszMTA4LDEwIEBACiBNT0RVTEVfQVVUSE9SKCBEUklWRVJfQVVUSE9SICk7CiBNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfRklSTVdBUkUoImVkZ2Vwb3J0L2Jvb3QuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgiZWRnZXBvcnQvYm9vdDIuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgiZWRnZXBvcnQvZG93bi5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJlZGdlcG9ydC9kb3duMi5mdyIpOwogCiBtb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKIE1PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Jvb3QuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19ib290LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5OWZhZmEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Jvb3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1NiArMCwwIEBACi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0vLyogRWRnZXBvcnQvNCBCaW5hcnkgSW1hZ2UKLS8vKiBHZW5lcmF0ZWQgYnkgSEVYMkMgdjEuMDYKLS8vKiBDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotLy8qCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0vLyoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLS8vKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotCi0KLS8vSW1hZ2Ugc3RydWN0dXJlIGRlZmluaXRpb24KLSNpZiAhZGVmaW5lZChERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JEKQotI2RlZmluZSBERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JECi0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkIHsKLQkJX19sZTE2IEV4dEFkZHI7Ci0JCV9fbGUxNiBBZGRyOwotCQlfX2xlMTYgTGVuOwotCQl1bnNpZ25lZCBjaGFyICBEYXRhWzBdOwotCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotCi0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIHsKLQkJdW5zaWduZWQgY2hhcgkgTWFqb3JWZXJzaW9uOwotCQl1bnNpZ25lZCBjaGFyICBNaW5vclZlcnNpb247Ci0JCXVuc2lnbmVkIHNob3J0IEJ1aWxkTnVtYmVyOwotCX07Ci0KLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoSU1BR0VfQVJSQVlfTkFNRSkKLSNkZWZpbmUgSU1BR0VfQVJSQVlfTkFNRQkJRmlybXdhcmVJbWFnZQotI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJRmlybXdhcmVJbWFnZVZlcnNpb24KLSNlbmRpZgotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBJTUFHRV9BUlJBWV9OQU1FW10gPSB7Ci0KLS8vIFNlZ21lbnQgIzEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMDAsIExlbmd0aCA2Ci0weGZmLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDgwLCAweDAyLCAweDAwLCAweDAzLCAKLQotLy8gU2VnbWVudCAjMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDBiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MGIsIAotCi0vLyBTZWdtZW50ICMzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDEzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMSwgMHhiOCwgCi0KLS8vIFNlZ21lbnQgIzQsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMWIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgxYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDFiLCAKLQotLy8gU2VnbWVudCAjNSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDIzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MjMsIAotCi0vLyBTZWdtZW50ICM2LCBTdGFydCBBZGRyZXNzIDAwZmYwMDJiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MmIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgyYiwgCi0KLS8vIFNlZ21lbnQgIzcsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMzMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgzMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDMzLCAKLQotLy8gU2VnbWVudCAjOCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAzYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDNiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4M2IsIAotCi0vLyBTZWdtZW50ICM5LCBTdGFydCBBZGRyZXNzIDAwZmYwMDQzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NDMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMSwgMHhiZCwgCi0KLS8vIFNlZ21lbnQgIzEwLCBTdGFydCBBZGRyZXNzIDAwZmYwMDRiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NGIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMSwgMHhkMCwgCi0KLS8vIFNlZ21lbnQgIzExLCBTdGFydCBBZGRyZXNzIDAwZmYwMDUzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMSwgMHgyMSwgCi0KLS8vIFNlZ21lbnQgIzEyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDdiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4N2IsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg3YiwgCi0KLS8vIFNlZ21lbnQgIzEzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDgwLCBMZW5ndGggMzU4Ci0weGZmLDB4MDAsMHg4MCwweDAwLDB4NjYsMHgwMSwKLSAgICAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDdlLCAweGY4LCAweDAwLCAweDIzLCAweDdlLCAweDAwLCAweDAxLCAweDdlLCAweDEwLCAKLSAgICAweDAwLCAweDEyLCAweDA3LCAweDVmLCAweDY5LCAweDIwLCAweDAwLCAweDBhLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDA1LCAweDc1LCAweDkwLCAKLSAgICAweDBkLCAweDgwLCAweDAzLCAweDc1LCAweDkwLCAweDFkLCAweGQyLCAweGI1LCAweDdlLCAweDAwLCAweDAwLCAweGE1LCAweGQ4LCAweGZkLCAweDc1LCAweGE4LCAKLSAgICAweDAwLCAweDc1LCAweGIxLCAweDAwLCAweGE5LCAweGQ1LCAweDg3LCAweGNhLCAweDI5LCAweDEyLCAweDA5LCAweGNjLCAweDEyLCAweDA5LCAweGEwLCAweGY1LCAKLSAgICAweDA5LCAweDdhLCAweGExLCAweDIwLCAweDEyLCAweDAxLCAweGU2LCAweGRhLCAweDI5LCAweGE5LCAweGQwLCAweGM3LCAweDdlLCAweDAwLCAweDA1LCAweDdhLCAKLSAgICAweDAxLCAweGYxLCAweDc1LCAweGUxLCAweDEwLCAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweGQ3LCAweGU0LCAweGE1LCAweGQ4LCAweGYxLCAweDc1LCAweGYxLCAKLSAgICAweDAwLCAweDc1LCAweGUxLCAweDNmLCAweDc1LCAweGEyLCAweDAzLCAweDc1LCAweGEzLCAweDAwLCAweDc1LCAweGMwLCAweDAwLCAweDc1LCAweGMxLCAweDAwLCAKLSAgICAweGE5LCAweGQxLCAweGIxLCAweGE5LCAweGQwLCAweGIxLCAweGE5LCAweGQ1LCAweGQzLCAweGQyLCAweGFmLCAweGU0LCAweDdlLCAweDA0LCAweDI4LCAweDAwLCAKLSAgICAweDhkLCAweGVmLCAweDFiLCAweDA0LCAweDc4LCAweGZhLCAweDA0LCAweGE5LCAweDM0LCAweGQzLCAweDAzLCAweDMwLCAweGUwLCAweGVlLCAweGJlLCAweDI0LCAKLSAgICAweDAwLCAweDAwLCAweDc4LCAweDA1LCAweDYzLCAweDkwLCAweDMwLCAweDgwLCAweGUzLCAweGIyLCAweDk1LCAweDgwLCAweGRmLCAweGJlLCAweGIwLCAweDAyLCAKLSAgICAweDIyLCAweGMwLCAweGQwLCAweGE5LCAweDIwLCAweGRmLCAweDBmLCAweGE5LCAweDMxLCAweGRmLCAweDAzLCAweDAyLCAweDAxLCAweGI1LCAweDc1LCAweDA4LCAKLSAgICAweDAxLCAweDEyLCAweDA4LCAweDMzLCAweDgwLCAweGZlLCAweDc1LCAweDA4LCAweGZlLCAweDEyLCAweDA4LCAweDMzLCAweDc1LCAweGE4LCAweDAwLCAweDdlLCAKLSAgICAweGIzLCAweDNmLCAweGYyLCAweDMwLCAweGUwLCAweDRiLCAweDMwLCAweDAxLCAweDQ2LCAweGMyLCAweDkyLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAKLSAgICAweDExLCAweDA5LCAweDc0LCAweDA4LCAweDE5LCAweGIyLCAweDAwLCAweDEwLCAweDc0LCAweDBlLCAweDE5LCAweGIyLCAweDAwLCAweDA0LCAweDJlLCAweDI0LCAKLSAgICAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGVkLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDA5LCAweGU0LCAweGQ1LCAweGUwLCAweGZkLCAKLSAgICAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDBhLCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDgwLCAKLSAgICAweGViLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGU0LCAweDQzLCAweDkwLCAweDMwLCAweGQyLCAweGFhLCAweDgwLCAweDA1LCAweGQyLCAKLSAgICAweGFhLCAweDQzLCAweDkwLCAweDM0LCAweGQyLCAweGFmLCAweGE5LCAweGQxLCAweDg3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweGE5LCAweDExLCAKLSAgICAweGRmLCAweDAzLCAweGE5LCAweGQyLCAweGRmLCAweDc1LCAweDA4LCAweGZmLCAweDEyLCAweDA4LCAweDMzLCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAKLSAgICAweGNhLCAweDA2LCAweDgzLCAweDAwLCAweDMyLCAweGQwLCAweGQwLCAweDMyLCAweGMyLCAweDhiLCAweGMyLCAweGFhLCAweDMyLCAweDc1LCAweDA4LCAweDA4LCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweGE5LCAweGMwLCAweGIxLCAweGE5LCAweGM1LCAweGQzLCAweGE5LCAweGM2LCAweGQzLCAweGE5LCAweGQyLCAweGIxLCAweDMyLCAKLSAgICAweGNhLCAweGI4LCAweDc1LCAweDA4LCAweDAyLCAweDEyLCAweDA4LCAweDMzLCAweGU1LCAweGMwLCAweDU0LCAweDAzLCAweDY4LCAweDA1LCAweDEyLCAweDAxLCAKLSAgICAweGVlLCAweDgwLCAweGY1LCAweGRhLCAweGI4LCAweDMyLCAKLQotLy8gU2VnbWVudCAjMTQsIFN0YXJ0IEFkZHJlc3MgMDBmZjFiY2EsIExlbmd0aCAxCi0weGZmLDB4MDAsMHhjYSwweDFiLDB4MDEsMHgwMCwKLSAgICAweDAwLCAKLQotLy8gU2VnbWVudCAjMTUsIFN0YXJ0IEFkZHJlc3MgMDBmZjAxZTYsIExlbmd0aCAxNjEzCi0weGZmLDB4MDAsMHhlNiwweDAxLDB4NGQsMHgwNiwKLSAgICAweGU0LCAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDAyLCAweDAyLCAweDYzLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweGNhLCAweDNiLCAKLSAgICAweGNhLCAweDRiLCAweGNhLCAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweGMwLCAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDJiLCAKLSAgICAweGI0LCAweDAwLCAweDAyLCAweDgwLCAweDE5LCAweGI0LCAweDAxLCAweDE2LCAweDMwLCAweGMwLCAweDA4LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDAyLCAKLSAgICAweDRkLCAweDgwLCAweDFmLCAweDMwLCAweGMxLCAweDFjLCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDAyLCAweGRlLCAweDgwLCAweDE0LCAweDMwLCAweGMxLCAKLSAgICAweDA4LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAweDAyLCAweGRlLCAweDgwLCAweDA5LCAweDMwLCAweGMwLCAweDA2LCAweDc1LCAweGYxLCAweDAwLCAweDEyLCAKLSAgICAweDAyLCAweDRkLCAweGQwLCAweGYxLCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAweDViLCAweGRhLCAweDRiLCAweGRhLCAweDNiLCAKLSAgICAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweGMyLCAweGMwLCAweDdlLCAweGIzLCAweDAxLCAweDJiLCAweGI0LCAweDAyLCAweDA3LCAKLSAgICAweDEyLCAweDAyLCAweDZmLCAweDAyLCAweDAyLCAweDYzLCAweDIyLCAweGI0LCAweDAxLCAweGZjLCAweDAyLCAweDAyLCAweGE5LCAweDdlLCAweDAwLCAweDAwLCAKLSAgICAweDdhLCAweDAzLCAweDAxLCAweDJiLCAweDdhLCAweDAzLCAweDAxLCAweDJjLCAweDIyLCAweDdlLCAweGIzLCAweDAxLCAweDIzLCAweDU0LCAweDYwLCAweDYwLCAKLSAgICAweDA1LCAweGI0LCAweDQwLCAweDE1LCAweDgwLCAweDEzLCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA1LCAweDBjLCAweDc1LCAweDA4LCAweDcxLCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGY1LCAweDhmLCAweDIyLCAweDc1LCAweGY2LCAweDAwLCAweDIyLCAweGJlLCAweDU3LCAKLSAgICAweDAxLCAweDI5LCAweDI4LCAweDA0LCAweDdlLCAweDU3LCAweDAxLCAweDI5LCAweDdhLCAweDBmLCAweDAxLCAweDJlLCAweDdhLCAweDU3LCAweDAxLCAweDMyLCAKLSAgICAweDAyLCAweDAyLCAweGE5LCAweDdlLCAweGVmLCAweDAxLCAweDJlLCAweDdlLCAweGY3LCAweDAxLCAweDMyLCAweDdlLCAweDA3LCAweDAxLCAweDMyLCAweDRkLCAKLSAgICAweDAwLCAweDY4LCAweDIxLCAweDdlLCAweDAwLCAweDAwLCAweDdlLCAweGViLCAweGIwLCAweGY1LCAweGYzLCAweGEzLCAweGE1LCAweDA4LCAweDFiLCAweGY0LCAKLSAgICAweDY4LCAweDA0LCAweGE1LCAweGI4LCAweDA4LCAweGYwLCAweDdhLCAweGVmLCAweDAxLCAweDJlLCAweDdhLCAweGY3LCAweDAxLCAweDMyLCAweDc1LCAweDA4LCAKLSAgICAweDA2LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweGY2LCAweDIyLCAweGMyLCAweGMxLCAweDc1LCAweDA4LCAweDAzLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweGE5LCAweDM2LCAweGUyLCAweDE2LCAweGU1LCAweGY1LCAweDU0LCAweGMwLCAweDY4LCAweDA3LCAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweDI3LCAweGY0LCAKLSAgICAweGZjLCAweDUzLCAweGUxLCAweDNmLCAweDQzLCAweGYyLCAweDg4LCAweDAyLCAweDAzLCAweDU1LCAweDdlLCAweGIzLCAweDAxLCAweDJjLCAweGI0LCAweDAyLCAKLSAgICAweDBmLCAweGE5LCAweGQ0LCAweGU0LCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDAxLCAweDJjLCAweDdhLCAweGIzLCAweDAxLCAweDJiLCAweDIyLCAKLSAgICAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweDIxLCAweGU2LCAweDdjLCAweDMyLCAweDdlLCAweDEzLCAweDAxLCAweDJkLCAweDJjLCAweDIxLCAweDdhLCAweDIzLCAKLSAgICAweDAxLCAweDJkLCAweDdlLCAweDAwLCAweDAwLCAweDJlLCAweDA0LCAweDAxLCAweDM0LCAweGU1LCAweGUzLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAKLSAgICAweGE1LCAweGRiLCAweGY2LCAweGE5LCAweGQ0LCAweGU0LCAweDc1LCAweDA4LCAweDcwLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDJkLCAKLSAgICAweDdlLCAweGEzLCAweDAxLCAweDJhLCAweGJjLCAweGFiLCAweDc4LCAweDAzLCAweDEyLCAweDAzLCAweGVjLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAweGU1LCAKLSAgICAweGU2LCAweGI0LCAweDA4LCAweDY1LCAweGE5LCAweGM0LCAweGUyLCAweDdlLCAweDAxLCAweGUzLCAweDdlLCAweDExLCAweGUzLCAweDdlLCAweDMxLCAweGUzLCAKLSAgICAweDdlLCAweDIxLCAweGUzLCAweDdlLCAweDUxLCAweGUzLCAweDdlLCAweDQxLCAweGUzLCAweDdlLCAweDcxLCAweGUzLCAweDdlLCAweDYxLCAweGUzLCAweDdhLCAKLSAgICAweDBmLCAweDAxLCAweDIzLCAweDdhLCAweDFmLCAweDAxLCAweDI3LCAweDc1LCAweDA4LCAweDA0LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweDA4LCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDExLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDIxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAKLSAgICAweDMxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDQxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDUxLCAweDA4LCAweDEyLCAweDA4LCAKLSAgICAweDMzLCAweDdhLCAweDYxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDcxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweGE5LCAweGQ0LCAweGU0LCAKLSAgICAweGE5LCAweGQ3LCAweGY0LCAweGE5LCAweGM2LCAweGUyLCAweDEyLCAweDAzLCAweGMwLCAweDIyLCAweDZkLCAweDAwLCAweDdlLCAweDE0LCAweDAxLCAweDAyLCAKLSAgICAweDdhLCAweDA3LCAweDAxLCAweDMyLCAweDdhLCAweDAzLCAweDAxLCAweDJkLCAweDdlLCAweGIzLCAweDAxLCAweDIzLCAweDIwLCAweGU3LCAweDBmLCAweDdhLCAKLSAgICAweDIzLCAweDAxLCAweDJjLCAweDdhLCAweDMzLCAweDAxLCAweDJiLCAweGJlLCAweDA3LCAweDAxLCAweDI5LCAweDY4LCAweDA5LCAweDIyLCAweDdhLCAweDMzLCAKLSAgICAweDAxLCAweDJjLCAweDdhLCAweDIzLCAweDAxLCAweDJiLCAweDdlLCAweGIzLCAweDAxLCAweDIzLCAweDU0LCAweGUzLCAweDIzLCAweDIzLCAweDMwLCAweGUwLCAKLSAgICAweDAyLCAweGQyLCAweGU1LCAweDMwLCAweGU3LCAweDAyLCAweGQyLCAweGU0LCAweDMwLCAweGU1LCAweDA2LCAweDMwLCAweGU0LCAweDAzLCAweDAyLCAweDA3LCAKLSAgICAweDU1LCAweDU0LCAweDNlLCAweGY1LCAweGYwLCAweDAzLCAweDU0LCAweDFmLCAweGMzLCAweDI1LCAweGYwLCAweDkwLCAweDA0LCAweDE4LCAweDc1LCAweDg0LCAKLSAgICAweGZmLCAweDczLCAweDAyLCAweDA1LCAweDZjLCAweDAyLCAweDA0LCAweDYwLCAweDAyLCAweDA2LCAweDA5LCAweDAyLCAweDA2LCAweDI0LCAweDAyLCAweDA1LCAKLSAgICAweDA1LCAweDAyLCAweDA0LCAweGM2LCAweDAyLCAweDA2LCAweDNkLCAweDAyLCAweDA2LCAweDNkLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAKLSAgICAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQwLCAweDAyLCAKLSAgICAweDA2LCAweDQwLCAweDAyLCAweDA2LCAweDQ2LCAweDAyLCAweDA2LCAweGZhLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAKLSAgICAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDAyLCAweDA2LCAweDQzLCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA2LCAKLSAgICAweDJhLCAweDdlLCAweGIzLCAweDAxLCAweDI1LCAweDYwLCAweDU2LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDAxLCAweDI2LCAweDdlLCAweDE3LCAweDAxLCAKLSAgICAweDI3LCAweDc1LCAweDA4LCAweDcyLCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDExLCAweDA4LCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDEyLCAweDA3LCAweDVmLCAweDQwLCAweDM1LCAweDAyLCAweDAyLCAweDk0LCAweGI0LCAweDA4LCAweDEwLCAweDc1LCAweDA4LCAKLSAgICAweDc0LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweGY1LCAweGYzLCAweDc1LCAweGY2LCAweDAxLCAweDIyLCAweGI0LCAweDAwLCAKLSAgICAweDFjLCAweDc1LCAweDA4LCAweDc1LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDMwLCAweGUwLCAweDA1LCAweDc1LCAweGYzLCAKLSAgICAweDAyLCAweDgwLCAweDAzLCAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGY2LCAweDAyLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDAwLCAweDM1LCAweDc1LCAweDA4LCAweDc2LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAKLSAgICAweDI4LCAweDU0LCAweDBmLCAweGY1LCAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDIwLCAweGU3LCAweDA5LCAweGU1LCAweGUxLCAweDMwLCAweGU3LCAKLSAgICAweDBkLCAweDc0LCAweDAxLCAweDgwLCAweDBiLCAweGU1LCAweGUxLCAweDMwLCAweGU2LCAweDA0LCAweDc0LCAweDAxLCAweDgwLCAweDAyLCAweDc0LCAweDAwLCAKLSAgICAweDUzLCAweGYxLCAweDgwLCAweGY1LCAweGYzLCAweDc1LCAweGYzLCAweDAwLCAweDc1LCAweGY2LCAweDAyLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAweGMwLCAKLSAgICAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDU0LCAweDBmLCAweDQyLCAweGYxLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGI0LCAweDAwLCAweDQ1LCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDAxLCAweDI0LCAweDc1LCAweDA4LCAweDc3LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAKLSAgICAweDI4LCAweDU0LCAweDBmLCAweDc4LCAweDA1LCAweDUzLCAweGUxLCAweDNmLCAweDgwLCAweDM3LCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDIwLCAweGU3LCAKLSAgICAweDA1LCAweDUzLCAweGUxLCAweDdmLCAweDgwLCAweDJiLCAweDUzLCAweGUxLCAweGJmLCAweDgwLCAweDI2LCAweGI0LCAweDAzLCAweDE3LCAweDc1LCAweDA4LCAKLSAgICAweDc4LCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI4LCAweDIwLCAweGU3LCAweDA1LCAweDQzLCAweGUxLCAweDgwLCAweDgwLCAweDExLCAKLSAgICAweDQzLCAweGUxLCAweDQwLCAweDgwLCAweDBjLCAweDQzLCAweGUxLCAweGMwLCAweGQwLCAweGYxLCAweDc1LCAweDA4LCAweDA3LCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweDIyLCAweGQwLCAweGYxLCAweDAyLCAweDAyLCAweDkwLCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA5LCAweDIzLCAweDc1LCAweDA4LCAweDc5LCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGJlLCAweGIzLCAweDNmLCAweGYxLCAweDY4LCAweDExLCAweGNhLCAweGI4LCAweGMwLCAKLSAgICAweGYxLCAweDEyLCAweDAxLCAweDFkLCAweGQwLCAweGYxLCAweGRhLCAweGI4LCAweDUwLCAweDc2LCAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDgwLCAweDZkLCAKLSAgICAweGI0LCAweDA1LCAweDA4LCAweDc1LCAweDA4LCAweDdhLCAweDEyLCAweDA4LCAweDMzLCAweDgwLCAweDYyLCAweGI0LCAweDAzLCAweDE5LCAweDc1LCAweDA4LCAKLSAgICAweDdiLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGI0LCAweDAxLCAweDU1LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDQ0LCAKLSAgICAweDAxLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDQ2LCAweGI0LCAweDAxLCAweDE5LCAweDc1LCAweDA4LCAweDdjLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDU0LCAweGZlLCAweDdhLCAweGIzLCAweDNmLCAKLSAgICAweGYyLCAweDgwLCAweDJhLCAweGI0LCAweDA3LCAweDJhLCAweDdlLCAweGIzLCAweDAxLCAweDI1LCAweDYwLCAweDI0LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAKLSAgICAweDAxLCAweDI2LCAweDdlLCAweDE3LCAweDAxLCAweDI3LCAweDc1LCAweDA4LCAweDczLCAweDEyLCAweDA4LCAweDMzLCAweDdhLCAweDAxLCAweDA4LCAweDEyLCAKLSAgICAweDA4LCAweDMzLCAweDdhLCAweDExLCAweDA4LCAweDEyLCAweDA4LCAweDMzLCAweDEyLCAweDA3LCAweDhiLCAweDQwLCAweDAzLCAweDAyLCAweDAyLCAweDkwLCAKLSAgICAweDAyLCAweDA3LCAweDU1LCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDBiLCAweGY2LCAweDc1LCAweDA4LCAweDdkLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweDdlLCAweGEzLCAweDAxLCAweDI4LCAweDRjLCAweGFiLCAweDc4LCAweGU0LCAweDgwLCAweGRmLCAweDdlLCAweGIzLCAKLSAgICAweDAxLCAweDI0LCAweGI0LCAweDBhLCAweGRiLCAweDc1LCAweDA4LCAweDdlLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweGIzLCAweDAxLCAweDI2LCAweDcwLCAKLSAgICAweGNmLCAweGY1LCAweGYzLCAweDc1LCAweGY2LCAweDAxLCAweDIyLCAweDAyLCAweDA3LCAweDU1LCAweDAyLCAweDA3LCAweDU1LCAweDAyLCAweDA3LCAweDU1LCAKLSAgICAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDA0LCAweDIwLCAweDc1LCAweDA4LCAweGMzLCAweDEyLCAweDA4LCAweDMzLCAweDdlLCAweDA0LCAweDAwLCAKLSAgICAweDAxLCAweDdlLCAweDE3LCAweDAxLCAweDI1LCAweDdlLCAweDE4LCAweDAxLCAweDM0LCAweDdhLCAweDFjLCAweDAwLCAweDAwLCAweDdlLCAweDQ3LCAweDAxLCAKLSAgICAweDI5LCAweDEyLCAweDA4LCAweDNmLCAweDAyLCAweDA2LCAweGY0LCAweGI0LCAweDA2LCAweDNhLCAweDc1LCAweDA4LCAweGMxLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdkLCAweGNhLCAweDdlLCAweGQ3LCAweDAxLCAweDI1LCAweDdlLCAweDc4LCAKLSAgICAweDAxLCAweDM0LCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDAxLCAweDI5LCAweDc1LCAweDA4LCAweGMxLCAweDEyLCAweDA4LCAweDMzLCAKLSAgICAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDA4LCAweGQ2LCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAKLSAgICAweDQwLCAweDRmLCAweDgwLCAweDRhLCAweGI0LCAweDAwLCAweDFjLCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDAyLCAweDkwLCAweGU0LCAKLSAgICAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweGQ1LCAweGUwLCAweGY3LCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAweGNhLCAweDA2LCAKLSAgICAweDAwLCAweDAwLCAweDMyLCAweGI0LCAweDA5LCAweDEyLCAweDdlLCAweDU3LCAweDAxLCAweDI1LCAweDRkLCAweDU1LCAweDY4LCAweDA1LCAweGE5LCAweGQyLCAKLSAgICAweGIxLCAweDgwLCAweDAzLCAweGE5LCAweGMyLCAweGIxLCAweDgwLCAweDE2LCAweGI0LCAweDA3LCAweDE2LCAweGMyLCAweGFmLCAweDdlLCAweDA3LCAweDAxLCAKLSAgICAweDI3LCAweDdlLCAweDE3LCAweDAxLCAweDI1LCAweGMwLCAweGQxLCAweGNhLCAweDE4LCAweGNhLCAweDM4LCAweGNhLCAweDI4LCAweDMyLCAweDAyLCAweDAyLCAKLSAgICAweDkwLCAweDAyLCAweDA3LCAweDU1LCAweDdlLCAweGIzLCAweDAxLCAweDI0LCAweGI0LCAweDAzLCAweDE1LCAweDc1LCAweDA4LCAweGMyLCAweDEyLCAweDA4LCAKLSAgICAweDMzLCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE3LCAweDAxLCAweDI1LCAweDdlLCAweDU3LCAweDAxLCAweDI5LCAweDAyLCAweDAyLCAweDk0LCAKLSAgICAweGI0LCAweDA1LCAweDM5LCAweDc1LCAweDA4LCAweGMwLCAweDEyLCAweDA4LCAweDMzLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAKLSAgICAweGQ1LCAweDg3LCAweDdlLCAweDA4LCAweDAxLCAweDM0LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweDI1LCAweDdlLCAweDQ3LCAweDAxLCAweDI5LCAweDEyLCAweDA4LCAweDNmLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweDdlLCAweDA4LCAweDAxLCAKLSAgICAweDM0LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDU3LCAweDAxLCAweDI5LCAweDAyLCAweDAyLCAweDk0LCAweDAyLCAweDA3LCAweDU1LCAweDc1LCAKLSAgICAweDA4LCAweDA3LCAweDEyLCAweDA4LCAweDMzLCAweDQzLCAweGUxLCAweGMwLCAweDIyLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAKLSAgICAweGQ1LCAweDg3LCAweDEyLCAweDA3LCAweGNhLCAweDQwLCAweDE5LCAweDdlLCAweDA4LCAweDAxLCAweDM0LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAKLSAgICAweDBiLCAweGNhLCAweDQ5LCAweDEyLCAweDA4LCAweDNmLCAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAKLSAgICAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweDIyLCAweGMwLCAweGE4LCAweGMwLCAweDg3LCAweGMyLCAweGFmLCAweGE5LCAweGQ1LCAweDg3LCAweDEyLCAweDA3LCAKLSAgICAweGNhLCAweDQwLCAweDJiLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdmLCAweDYxLCAweDdlLCAweDc4LCAweDAxLCAKLSAgICAweDM0LCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDAxLCAweDI5LCAweGJkLCAweDc0LCAweDc4LCAweDExLCAweDc1LCAweDA4LCAweGMxLCAKLSAgICAweDEyLCAweDA4LCAweDMzLCAweDEyLCAweDA4LCAweGQ2LCAweDQwLCAweDA2LCAweGQwLCAweDg3LCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAweGQwLCAweDg3LCAKLSAgICAweGQwLCAweGE4LCAweGQzLCAweDIyLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM0LCAweDdmLCAweGNhLCAweDBiLCAweDFhLCAweDUwLCAweGM1LCAKLSAgICAweGYwLCAweDdkLCAweDYyLCAweDdkLCAweDc1LCAweDdkLCAweDg3LCAweDdlLCAweDM0LCAweDdmLCAweDAzLCAweDdlLCAweDFiLCAweGIwLCAweGJjLCAweDBiLCAKLSAgICAweDUwLCAweDQ5LCAweDNlLCAweDAwLCAweDNlLCAweDAwLCAweDBhLCAweDUwLCAweDJkLCAweDc1LCAweDBiLCAweDNhLCAweDMwLCAweDY5LCAweDUzLCAweDAwLCAKLSAgICAweDAyLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJjLCAweDFiLCAweDUwLCAweDMwLCAweDNlLCAweDEwLCAweDNlLCAweDEwLCAweDBhLCAKLSAgICAweDUxLCAweDJkLCAweDM1LCAweDY5LCAweDQxLCAweDAwLCAweDAyLCAweDBiLCAweDFhLCAweDMwLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAKLSAgICAweGJlLCAweDQ0LCAweGZmLCAweGZmLCAweDc4LCAweDA1LCAweDdlLCAweDFiLCAweDkwLCAweDBhLCAweDQ5LCAweDRkLCAweDQ0LCAweDY4LCAweDBjLCAweGJlLCAKLSAgICAweDQ0LCAweDAwLCAweGZmLCAweDI4LCAweDA0LCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAKLQotLy8gU2VnbWVudCAjMTYsIEVYQ0xVREVEIFN0YXJ0IEFkZHJlc3MgMDBmZjdjMDAsIExlbmd0aCAxOTkKLQotCi0vLyBTZWdtZW50ICMxNywgRVhDTFVERUQgU3RhcnQgQWRkcmVzcyAwMGZmN2YwMCwgTGVuZ3RoIDE5MgotCi0KLS8vIFNlZ21lbnQgIzE3LCBTdGFydCBBZGRyZXNzIDAwZmY3ZmMwLCBMZW5ndGggNjQKLTB4ZmYsMHgwMCwweGMwLDB4N2YsMHg0MCwweDAwLAotICAgIDB4NDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4Y2EsIDB4MWIsIDB4MDEsIDB4MGMsIDB4MDIsIDB4MDAsIDB4MDAsIDB4N2MsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZjEsIDB4N2YsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAotCi0vLyBTZWdtZW50ICMxOCwgU3RhcnQgQWRkcmVzcyAwMGZmMDgzMywgTGVuZ3RoIDUwMTUKLTB4ZmYsMHgwMCwweDMzLDB4MDgsMHg5NywweDEzLAotICAgIDB4Y2EsIDB4MDgsIDB4N2UsIDB4MDEsIDB4MDgsIDB4N2EsIDB4MDMsIDB4M2YsIDB4ZjAsIDB4ZGEsIDB4MDgsIDB4MjIsIDB4ODAsIDB4NTAsIDB4MGIsIDB4MWEsIAotICAgIDB4NjAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NzAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4ODAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4OTAsIAotICAgIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4YTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4YjAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MWEsIDB4YzAsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MWEsIDB4ZDAsIDB4MGIsIDB4MzUsIDB4MWIsIDB4MGEsIDB4NjAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4NzAsIDB4MGIsIDB4MTUsIAotICAgIDB4MWIsIDB4MGEsIDB4ODAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4OTAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4YTAsIDB4MGIsIDB4MTUsIDB4MWIsIAotICAgIDB4MGEsIDB4YjAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4YzAsIDB4MGIsIDB4MTUsIDB4MWIsIDB4MGEsIDB4ZDAsIDB4MGIsIDB4MTUsIDB4OWUsIDB4NDQsIAotICAgIDB4MDAsIDB4MTAsIDB4NTAsIDB4YWEsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MGUsIDB4N2UsIDB4MWIsIDB4YzAsIDB4N2EsIDB4MGIsIDB4YzAsIAotICAgIDB4MGIsIDB4MTQsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZjIsIDB4MjIsIDB4N2YsIDB4NmYsIDB4N2YsIDB4ZjAsIDB4MWIsIDB4ZmMsIDB4N2MsIAotICAgIDB4NTQsIDB4N2QsIDB4MzIsIDB4ODAsIDB4MDgsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4OWUsIDB4NDQsIDB4MDAsIAotICAgIDB4MTAsIDB4NTAsIDB4ZjIsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MDYsIDB4Y2EsIDB4NDgsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZmEsIDB4N2YsIAotICAgIDB4ZjYsIDB4ODksIDB4ZTQsIDB4Y2EsIDB4NmIsIDB4NWUsIDB4ZDQsIDB4MDAsIDB4M2YsIDB4NjgsIDB4MjAsIDB4N2UsIDB4ODQsIDB4MDAsIDB4NDAsIDB4OWQsIAotICAgIDB4OGQsIDB4ZGEsIDB4NmIsIDB4YmQsIDB4ODcsIDB4MzgsIDB4MTYsIDB4Y2EsIDB4NzksIDB4N2QsIDB4NzgsIDB4MTIsIDB4MDksIDB4MDAsIDB4ZGEsIDB4NzksIAotICAgIDB4NDAsIDB4MDgsIDB4OWQsIDB4NzgsIDB4NjgsIDB4MDIsIDB4ODAsIDB4MDUsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZGEsIDB4NmIsIDB4NDMsIDB4OTAsIDB4MzAsIAotICAgIDB4NzQsIDB4YWEsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4NzQsIDB4NTUsIDB4MzksIDB4YjUsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIDB4MzksIDB4YjUsIAotICAgIDB4NTUsIDB4NTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4NDAsIDB4OWQsIDB4NzAsIDB4NTAsIDB4MDYsIDB4MmQsIDB4NzAsIDB4N2QsIDB4MDcsIDB4NmQsIDB4NzcsIAotICAgIDB4N2MsIDB4MzEsIDB4N2UsIDB4N2IsIDB4MDAsIDB4N2EsIDB4NmIsIDB4MDAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIDB4YTUsIDB4ZDksIDB4ZjMsIDB4N2YsIAotICAgIDB4MTYsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MTAsIDB4NjgsIDB4MDYsIDB4MWIsIDB4NTQsIAotICAgIDB4NzgsIDB4ZjUsIDB4ODAsIDB4MmMsIDB4NmQsIDB4MDAsIDB4N2MsIDB4MjAsIDB4N2YsIDB4MTYsIDB4OWYsIDB4MTAsIDB4N2YsIDB4MjcsIDB4OWYsIDB4MjAsIAotICAgIDB4N2UsIDB4MmIsIDB4MDAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MDEsIDB4NzgsIDB4MTYsIDB4MGIsIDB4MmMsIDB4MGIsIDB4MWMsIDB4YTUsIDB4ZGIsIAotICAgIDB4ZWYsIDB4N2MsIDB4YjYsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4NjMsIDB4OTAsIDB4MzAsIDB4NGQsIDB4NzcsIDB4NzgsIDB4OTMsIDB4YzIsIDB4ZDcsIDB4MjIsIAotICAgIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MDQsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDIsIDB4MDEsIAotICAgIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIAotICAgIDB4MDQsIDB4MDAsIDB4MDgsIDB4MTAsIDB4MDIsIDB4MTAsIDB4MDQsIDB4MDIsIDB4MDgsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDgsIDB4N2UsIDB4MTgsIDB4N2YsIAotICAgIDB4YmQsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MGIsIDB4MWEsIDB4MDAsIDB4YmUsIDB4MTAsIDB4MTQsIDB4MzgsIDB4MWEsIDB4MGEsIDB4NTEsIDB4MjMsIAotICAgIDB4N2UsIDB4MTgsIDB4MDksIDB4NzYsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MmQsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NTAsIDB4NjAsIDB4MDgsIDB4YTUsIAotICAgIDB4YjgsIDB4MDIsIDB4MDMsIDB4NGUsIDB4YTAsIDB4MDgsIDB4MjIsIDB4ODAsIDB4ZmUsIDB4N2UsIDB4ZTgsIDB4N2YsIDB4YmYsIDB4N2EsIDB4ZWMsIDB4MDAsIAotICAgIDB4ZmYsIDB4ZTAsIDB4ZjUsIDB4MjIsIDB4NTQsIDB4YzAsIDB4NjgsIDB4MTYsIDB4N2UsIDB4ZTgsIDB4N2YsIDB4YmUsIDB4N2EsIDB4ZWMsIDB4MDAsIDB4ZmYsIAotICAgIDB4ZTAsIDB4NjAsIDB4MGMsIDB4MTIsIDB4MDksIDB4YTAsIDB4ZjUsIDB4MDksIDB4N2EsIDB4YTEsIDB4MjAsIDB4MDIsIDB4MGYsIDB4MGEsIDB4MjIsIDB4YzIsIAotICAgIDB4OTUsIDB4ZDIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NTMsIDB4OTAsIDB4Y2YsIDB4MTIsIDB4MTksIDB4ZmIsIDB4ODAsIDB4ZjEsIDB4MGQsIDB4MGEsIAotICAgIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGQsIAotICAgIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIDB4MGEsIAotICAgIDB4NDUsIDB4NjQsIDB4NjcsIDB4NjUsIDB4NzAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MmYsIDB4MzQsIDB4MjAsIDB4MmQsIDB4MjAsIDB4NDgsIDB4NjEsIDB4NzIsIAotICAgIDB4NjQsIDB4NzcsIDB4NjEsIDB4NzIsIDB4NjUsIDB4MjAsIDB4NDQsIDB4NjksIDB4NjEsIDB4NjcsIDB4NmUsIDB4NmYsIDB4NzMsIDB4NzQsIDB4NjksIDB4NjMsIAotICAgIDB4NzMsIDB4MmMsIDB4MjAsIDB4NTIsIDB4NjUsIDB4NzYsIDB4MjAsIDB4MzEsIDB4MmUsIDB4MzAsIDB4MzAsIDB4M2IsIDB4MjAsIDB4NDMsIDB4NmYsIDB4NzAsIAotICAgIDB4NzksIDB4NzIsIDB4NjksIDB4NjcsIDB4NjgsIDB4NzQsIDB4MjAsIDB4MzEsIDB4MzksIDB4MzksIDB4MzgsIDB4MjAsIDB4NDksIDB4NmUsIDB4NzMsIDB4NjksIAotICAgIDB4NjQsIDB4NjUsIDB4MjAsIDB4NGYsIDB4NzUsIDB4NzQsIDB4MjAsIDB4NGUsIDB4NjUsIDB4NzQsIDB4NzcsIDB4NmYsIDB4NzIsIDB4NmIsIDB4NzMsIDB4MGQsIAotICAgIDB4MGEsIDB4MDAsIDB4NTAsIDB4NjEsIDB4NzMsIDB4NzMsIDB4MDAsIDB4NDYsIDB4NDEsIDB4NDksIDB4NGMsIDB4MjAsIDB4MjEsIDB4MjEsIDB4MDAsIDB4NTAsIAotICAgIDB4NjEsIDB4NzMsIDB4NzMsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4NDYsIDB4NDEsIDB4NDksIDB4NGMsIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjAsIAotICAgIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NjUsIDB4NzQsIDB4NjUsIDB4NjMsIDB4NzQsIDB4MjAsIDB4NTIsIDB4NjEsIDB4NmQsIDB4M2EsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NjEsIDB4NmQsIDB4MjAsIDB4NTQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDEsIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4NzMsIDB4MjAsIDB4NjIsIAotICAgIDB4NjksIDB4NzQsIDB4MjAsIDB4MzAsIDB4MmQsIDB4MzEsIDB4MzQsIDB4MjAsIDB4NzQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTcsIDB4NzIsIDB4NmYsIDB4NzQsIDB4NjUsIDB4MjAsIDB4NDEsIAotICAgIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4NzMsIDB4M2EsIDB4MjAsIDB4MzAsIDB4MzAsIDB4M2EsIDB4MDAsIDB4MjAsIDB4MjAsIDB4NzcsIDB4NjksIAotICAgIDB4NzQsIDB4NjgsIDB4MjAsIDB4NjQsIDB4NjEsIDB4NzQsIDB4NjEsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MmMsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIAotICAgIDB4NzIsIDB4NjUsIDB4NjEsIDB4NjQsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NGYsIDB4NmUsIDB4NjUsIDB4MjAsIDB4NmYsIDB4NzIsIDB4MjAsIAotICAgIDB4NjIsIDB4NmYsIDB4NzQsIDB4NjgsIDB4MjAsIDB4NmYsIDB4NjYsIDB4MjAsIDB4NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NjYsIDB4NmYsIDB4NmMsIDB4NmMsIAotICAgIDB4NmYsIDB4NzcsIDB4NjksIDB4NmUsIDB4NjcsIDB4MjAsIDB4NDEsIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4NzMsIDB4MjAsIDB4NjIsIDB4NjksIAotICAgIDB4NzQsIDB4NzMsIDB4MjAsIDB4NmMsIDB4NjksIDB4NzMsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NjEsIDB4NzIsIDB4NjUsIDB4MjAsIDB4NzMsIDB4NjgsIAotICAgIDB4NmYsIDB4NzIsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MGQsIDB4MGEsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NzMsIDB4NmYsIDB4NmQsIDB4NjUsIDB4NzQsIDB4NjgsIAotICAgIDB4NjksIDB4NmUsIDB4NjcsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NjUsIAotICAgIDB4NzQsIDB4NjUsIDB4NjMsIDB4NzQsIDB4MjAsIDB4NTUsIDB4NjEsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAotICAgIDB4NTMsIDB4NjMsIDB4NzIsIDB4NjEsIDB4NzQsIDB4NjMsIDB4NjgsIDB4MjAsIDB4NTAsIDB4NjEsIDB4NjQsIDB4MmMsIDB4NDYsIDB4NjksIDB4NDYsIDB4NmYsIAotICAgIDB4MjAsIDB4NDUsIDB4NmUsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4MjYsIDB4MjAsIDB4NTIsIDB4NTMsIDB4NTQsIDB4M2EsIDB4MjAsIDB4MDAsIAotICAgIDB4MGQsIDB4MGEsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTUsIDB4NjEsIDB4NzIsIDB4NzQsIDB4MjAsIDB4NTQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4NzMsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MzEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIAotICAgIDB4MzIsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MzMsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIAotICAgIDB4MzQsIDB4MGQsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIAotICAgIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIDB4MmQsIAotICAgIDB4MmQsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4MjAsIDB4NDQsIDB4NjUsIDB4NjMsIDB4NmYsIDB4NjQsIDB4NjUsIDB4NzIsIAotICAgIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NjksIDB4NjcsIDB4NjksIDB4NzQsIDB4NjEsIDB4NmMsIDB4MjAsIAotICAgIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDEsIDB4NmUsIDB4NjEsIDB4NmMsIAotICAgIDB4NmYsIDB4NjcsIDB4MjAsIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAotICAgIDB4NTIsIDB4NTgsIDB4NDQsIDB4MmMsIDB4NTQsIDB4NTgsIDB4NDQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NTIsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIAotICAgIDB4NTQsIDB4NTMsIDB4MmMsIDB4NTIsIDB4NDksIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTgsIDB4NDQsIDB4MmMsIDB4NTQsIDB4NTgsIDB4NDQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIAotICAgIDB4NTQsIDB4NTIsIDB4MmMsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIDB4NDQsIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4NWIsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIAotICAgIDB4NTIsIDB4NDksIDB4NWQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIDB4NTQsIDB4NTIsIDB4MmMsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIAotICAgIDB4NDQsIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4NWIsIAotICAgIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIDB4NDQsIDB4NWQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NTIsIAotICAgIDB4NDksIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAotICAgIDB4NDQsIDB4NTQsIDB4NTIsIDB4NWIsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIDB4NDQsIDB4NWQsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NTIsIAotICAgIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NTIsIDB4NDksIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIAotICAgIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NDQsIDB4NTQsIDB4NTIsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIAotICAgIDB4NDQsIDB4MjAsIDB4NTMsIDB4NjgsIDB4NmYsIDB4NzIsIDB4NzQsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDMsIAotICAgIDB4NTQsIDB4NTMsIDB4MmMsIDB4NTIsIDB4NDksIDB4MjAsIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIAotICAgIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4NTIsIDB4NTQsIDB4NTMsIDB4MjAsIAotICAgIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDMsIDB4NTQsIDB4NTMsIDB4MmMsIDB4NDMsIDB4NDQsIDB4MjAsIDB4NGMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIAotICAgIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIAotICAgIDB4NDQsIDB4NTQsIDB4NTIsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NDQsIDB4NTMsIDB4NTIsIDB4MmMsIDB4NDMsIDB4NDQsIDB4MjAsIDB4NGMsIDB4NmYsIAotICAgIDB4NmYsIDB4NzAsIDB4NjIsIDB4NjEsIDB4NjMsIDB4NmIsIDB4M2EsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAotICAgIDB4MjAsIDB4MDAsIDB4MGQsIDB4MGEsIDB4MGEsIDB4MjAsIDB4MjAsIDB4MjAsIDB4NDUsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NGYsIDB4MjAsIAotICAgIDB4NTIsIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjEsIDB4MmMsIDB4MjAsIDB4NDUsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NGYsIDB4MjAsIDB4NTIsIAotICAgIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjEsIDB4MjAsIDB4MmMsIDB4MjAsIDB4NDUsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NTIsIDB4MjAsIDB4NGYsIDB4MjAsIDB4NTIsIAotICAgIDB4MjAsIDB4MjEsIDB4MjEsIDB4MjEsIDB4MGQsIDB4MGEsIDB4MGEsIDB4NDQsIDB4NjksIDB4NjEsIDB4NjcsIDB4NmUsIDB4NmYsIDB4NzMsIDB4NzQsIDB4NjksIAotICAgIDB4NjMsIDB4NzMsIDB4MjAsIDB4NmUsIDB4NmYsIDB4NzcsIDB4MjAsIDB4NzcsIDB4NjksIDB4NmMsIDB4NmMsIDB4MjAsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjUsIAotICAgIDB4NzIsIDB4MjAsIDB4NjEsIDB4MjAsIDB4NjQsIDB4NjUsIDB4NjIsIDB4NzUsIDB4NjcsIDB4MjAsIDB4NmMsIDB4NmYsIDB4NmYsIDB4NzAsIDB4MjAsIDB4NmYsIAotICAgIDB4NjYsIDB4MjAsIDB4NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NjYsIDB4NjksIDB4NzIsIDB4NzMsIDB4NzQsIDB4MjAsIDB4NjQsIDB4NjUsIDB4NzQsIDB4NjUsIAotICAgIDB4NjMsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NjUsIDB4NzIsIDB4NzIsIDB4NmYsIDB4NzIsIDB4MmUsIDB4MDAsIDB4MGQsIDB4MGEsIDB4MGEsIDB4NGUsIAotICAgIDB4NmYsIDB4MjAsIDB4NDgsIDB4NjEsIDB4NzIsIDB4NjQsIDB4NzcsIDB4NjEsIDB4NzIsIDB4NjUsIDB4MjAsIDB4NjUsIDB4NzIsIDB4NzIsIDB4NmYsIDB4NzIsIAotICAgIDB4NzMsIDB4MjAsIDB4NjQsIDB4NjUsIDB4NzQsIDB4NjUsIDB4NjMsIDB4NzQsIDB4NjUsIDB4NjQsIDB4MmUsIDB4MGQsIDB4MGEsIDB4MDAsIDB4NDMsIDB4NmYsIAotICAgIDB4NzAsIDB4NzksIDB4NjksIDB4NmUsIDB4NjcsIDB4MjAsIDB4NjMsIDB4NmYsIDB4NjQsIDB4NjUsIDB4MjAsIDB4NjYsIDB4NzIsIDB4NmYsIDB4NmQsIDB4MjAsIAotICAgIDB4NGQsIDB4NjEsIDB4NzMsIDB4NzQsIDB4NjUsIDB4NzIsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NTMsIDB4NmMsIDB4NjEsIDB4NzYsIDB4NjUsIDB4MjcsIAotICAgIDB4NzMsIDB4MjAsIDB4NDUsIDB4NDUsIDB4NzAsIDB4NzIsIDB4NmYsIDB4NmQsIDB4MjAsIDB4MmUsIDB4MmUsIDB4MmUsIDB4MDAsIDB4NDQsIDB4NmYsIDB4NmUsIAotICAgIDB4NjUsIDB4MGQsIDB4MGEsIDB4MGEsIDB4MmQsIDB4M2UsIDB4MjAsIDB4NTQsIDB4NzUsIDB4NzIsIDB4NmUsIDB4MjAsIDB4NzUsIDB4NmUsIDB4NjksIDB4NzQsIAotICAgIDB4MjAsIDB4NmYsIDB4NjYsIDB4NjYsIDB4MmMsIDB4MjAsIDB4NjQsIDB4NjksIDB4NzMsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NmUsIDB4NjUsIDB4NjMsIDB4NzQsIAotICAgIDB4MjAsIDB4NjMsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIDB4NzIsIDB4NzUsIDB4NmUsIDB4MjAsIDB4NzMsIAotICAgIDB4NzQsIDB4NjEsIDB4NmUsIDB4NjQsIDB4NjEsIDB4NmMsIDB4NmYsIDB4NmUsIDB4NjUsIDB4MjAsIDB4NjQsIDB4NjksIDB4NjEsIDB4NjcsIDB4NmUsIDB4NmYsIAotICAgIDB4NzMsIDB4NzQsIDB4NjksIDB4NjMsIDB4NzMsIDB4MmUsIDB4MDAsIDB4YzIsIDB4YWYsIDB4YzIsIDB4MDksIDB4YzIsIDB4MGEsIDB4NzUsIDB4OTAsIDB4MGQsIAotICAgIDB4MjAsIDB4MTcsIDB4MDIsIDB4ZDIsIDB4YjUsIDB4NDMsIDB4OTAsIDB4MzAsIDB4NmMsIDB4MDAsIDB4N2UsIDB4MTAsIDB4MDMsIDB4MTIsIDB4MGYsIDB4MzgsIAotICAgIDB4N2UsIDB4NjgsIDB4MGEsIDB4MDEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIDB4MzAsIDB4YjQsIDB4MDIsIAotICAgIDB4ODAsIDB4MjQsIDB4MDIsIDB4MWIsIDB4M2MsIDB4MjAsIDB4MDksIDB4MWQsIDB4YzIsIDB4OTQsIDB4ZDIsIDB4OTUsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NTMsIAotICAgIDB4OTAsIDB4Y2YsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YzIsIDB4OTUsIDB4ZDIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YTUsIDB4ZDksIDB4ZTYsIDB4NDMsIAotICAgIDB4OTAsIDB4MzAsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MjIsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OTQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4N2UsIDB4ZTQsIDB4MTAsIDB4MDAsIDB4N2UsIDB4NDAsIDB4NTUsIDB4N2EsIDB4ZTksIDB4NDAsIDB4MGIsIDB4ZTQsIDB4N2UsIDB4NTAsIDB4YWEsIAotICAgIDB4N2EsIDB4ZTksIDB4NTAsIDB4MWIsIDB4ZTQsIDB4YmUsIDB4ZTksIDB4NDAsIDB4NjgsIDB4MTksIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIAotICAgIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MTMsIDB4N2EsIDB4ZTksIDB4NDAsIDB4N2UsIDB4ZTksIAotICAgIDB4MTAsIDB4ODAsIDB4ZjgsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIAotICAgIDB4N2UsIDB4NjgsIDB4MGEsIDB4ZDgsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2UsIAotICAgIDB4NzAsIDB4MGUsIDB4N2UsIDB4YTQsIDB4ZmYsIDB4ZmYsIDB4N2UsIDB4YjQsIDB4YmYsIDB4ZmYsIDB4N2QsIDB4Y2IsIDB4MGUsIDB4YzQsIDB4N2QsIDB4ZGMsIAotICAgIDB4NWQsIDB4ZGIsIDB4NmMsIDB4YmIsIDB4N2QsIDB4ZmEsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4MGIsIDB4YjAsIDB4N2QsIAotICAgIDB4ZmIsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmMsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIAotICAgIDB4N2EsIDB4N2IsIDB4YjAsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmQsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4NmMsIDB4YmIsIAotICAgIDB4N2QsIDB4ZmEsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4YmUsIDB4N2IsIDB4YjAsIDB4NzgsIDB4NDEsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmIsIDB4NWUsIAotICAgIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4YmUsIDB4N2IsIDB4YjAsIDB4NzgsIDB4MzQsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmMsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIAotICAgIDB4YmUsIDB4N2IsIDB4YjAsIDB4NzgsIDB4MjcsIDB4MGIsIDB4YjAsIDB4N2QsIDB4ZmQsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4YmUsIDB4N2IsIDB4YjAsIAotICAgIDB4NzgsIDB4MWEsIDB4MGIsIDB4YjAsIDB4YmUsIDB4YzQsIDB4ZmYsIDB4ZmUsIDB4NzgsIDB4OTIsIDB4MGUsIDB4YjQsIDB4YTUsIDB4ZGYsIDB4OGIsIDB4N2UsIAotICAgIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4NzcsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIAotICAgIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGIsIDB4MmEsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGEsIDB4NDcsIDB4MTIsIDB4MWEsIDB4YzksIDB4N2UsIDB4NjgsIDB4MGIsIDB4NzksIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4NmMsIDB4NzcsIDB4ZGEsIDB4NmIsIDB4Y2EsIDB4NmIsIDB4MGIsIDB4NzAsIDB4MGUsIDB4YzQsIAotICAgIDB4YmUsIDB4YzQsIDB4ZmYsIDB4ZmYsIDB4NzgsIDB4ZjYsIDB4MWIsIDB4NzAsIDB4MGEsIDB4NDcsIDB4MTIsIDB4MWEsIDB4YzksIDB4MTIsIDB4MWEsIDB4MDgsIAotICAgIDB4MzAsIDB4MDksIDB4MzAsIDB4ZGEsIDB4NmIsIDB4ZGEsIDB4NWIsIDB4NmMsIDB4YmIsIDB4N2UsIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2QsIDB4ZmEsIDB4NWUsIAotICAgIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4N2QsIDB4ZmIsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4N2QsIAotICAgIDB4ZmMsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIDB4YjAsIDB4N2QsIDB4ZmQsIDB4NWUsIDB4ZjQsIDB4N2YsIDB4ZmYsIDB4N2EsIDB4N2IsIAotICAgIDB4YjAsIDB4ODAsIDB4ZDQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4YjYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MzAsIDB4MTcsIAotICAgIDB4MGUsIDB4N2UsIDB4NzgsIDB4MDQsIDB4MjAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NDQsIDB4N2IsIDB4ZTAsIDB4ODAsIDB4MGMsIDB4N2UsIAotICAgIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDEsIDB4N2UsIDB4NDQsIDB4ODAsIDB4MDAsIDB4MGIsIDB4MDAsIDB4N2UsIDB4NDAsIDB4M2EsIAotICAgIDB4N2MsIDB4NTQsIDB4N2YsIDB4NTcsIDB4N2QsIDB4ODQsIDB4NmMsIDB4NjYsIDB4N2EsIDB4NWIsIDB4NTAsIDB4MGIsIDB4NWMsIDB4MGIsIDB4NTAsIDB4YTUsIAotICAgIDB4ZGUsIDB4MDIsIDB4MGIsIDB4NTAsIDB4MWIsIDB4ODQsIDB4NzgsIDB4ZjAsIDB4N2MsIDB4NTQsIDB4N2YsIDB4NTcsIDB4N2QsIDB4ODQsIDB4NmMsIDB4NjYsIAotICAgIDB4YmUsIDB4NWIsIDB4NTAsIDB4NzgsIDB4MWEsIDB4MGIsIDB4NWMsIDB4MGIsIDB4NTAsIDB4YTUsIDB4ZGUsIDB4MDIsIDB4MGIsIDB4NTAsIDB4MWIsIDB4ODQsIAotICAgIDB4NzgsIDB4ZWUsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4NGIsIDB4N2YsIAotICAgIDB4NDUsIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ZmEsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2QsIDB4NGIsIDB4MTIsIDB4MWEsIDB4YzksIDB4N2UsIDB4NjgsIDB4MGIsIDB4MGYsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4NmMsIDB4ODgsIDB4N2MsIDB4OTUsIDB4MTIsIDB4MWEsIDB4YzksIDB4N2UsIDB4NjgsIAotICAgIDB4MGIsIDB4MWQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NGIsIDB4OTAsIDB4MTIsIDB4MWEsIDB4YzksIDB4MTIsIAotICAgIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MDUsIDB4N2UsIDB4NGIsIDB4OTAsIDB4ODAsIDB4ZmIsIDB4N2UsIDB4NjgsIDB4MGIsIDB4N2YsIDB4N2EsIDB4NmMsIAotICAgIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIDB4ZDIsIDB4OTIsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MDgsIDB4YmUsIDB4YjAsIDB4MDEsIDB4NzgsIDB4MGIsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4YmUsIDB4YjAsIDB4NjAsIDB4NzgsIDB4MDIsIDB4ODAsIAotICAgIDB4MTcsIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIAotICAgIDB4MDksIDB4MTEsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDgsIDB4ODAsIDB4ZmEsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGIsIDB4YTEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MGIsIDB4MDAsIAotICAgIDB4YzIsIDB4OTIsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4NTUsIDB4MTksIDB4YTIsIDB4MDAsIDB4MWMsIAotICAgIDB4N2UsIDB4YjAsIDB4MDEsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MDksIDB4YjIsIDB4MDAsIDB4MWMsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MzcsIDB4MDksIAotICAgIDB4YjIsIDB4MDAsIDB4MDgsIDB4NWUsIDB4YjAsIDB4YzAsIDB4YmUsIDB4YjAsIDB4YzAsIDB4NzgsIDB4MmIsIDB4N2UsIDB4YTAsIDB4YWEsIDB4MTksIDB4YTIsIAotICAgIDB4MDAsIDB4MWMsIDB4NmMsIDB4YmIsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MDksIDB4YjIsIDB4MDAsIDB4MWMsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MTYsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MDgsIDB4NWUsIDB4YjAsIDB4YzAsIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4NzUsIDB4N2EsIDB4NmMsIDB4MDAsIAotICAgIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MWIsIDB4N2UsIDB4NjgsIDB4MGEsIDB4N2EsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MWMsIDB4MDksIDB4YjIsIDB4MDAsIDB4MWMsIDB4ODAsIAotICAgIDB4ZjYsIDB4N2UsIDB4NjgsIDB4MGIsIDB4YzMsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGMsIDB4NDUsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4N2UsIDB4YjAsIAotICAgIDB4MDEsIDB4MTksIDB4YjIsIDB4MDAsIDB4MWMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4MGIsIDB4YjAsIDB4YTUsIDB4ZDksIDB4ZjMsIDB4N2UsIDB4MjQsIAotICAgIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4N2UsIDB4YjAsIDB4MDEsIDB4MGIsIDB4MDAsIDB4MDksIDB4YTIsIDB4MDAsIDB4MWMsIDB4YmMsIDB4YWIsIAotICAgIDB4NzgsIDB4MTYsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIAotICAgIDB4MDAsIDB4MGIsIDB4YjAsIDB4YTUsIDB4ZDksIDB4ZTIsIDB4ODAsIDB4MjUsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTQsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIAotICAgIDB4MDksIDB4YTIsIDB4MDAsIDB4MWMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZjUsIDB4ODAsIDB4ZWMsIDB4N2UsIDB4NjgsIDB4MGMsIAotICAgIDB4NjksIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MTMsIDB4OGEsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIAotICAgIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4NzQsIDB4MTAsIDB4MTksIDB4YjIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTMsIDB4MDMsIDB4MmUsIDB4MjQsIDB4MDEsIAotICAgIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWUsIDB4N2UsIDB4NjgsIDB4MGMsIDB4OGQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIAotICAgIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4ZTQsIDB4MTksIDB4YjIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTMsIDB4MDMsIAotICAgIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWYsIDB4MzAsIDB4MDAsIDB4MDMsIDB4MDIsIDB4MTgsIDB4YjcsIDB4MDIsIDB4MTMsIDB4YmIsIAotICAgIDB4NzQsIDB4MDcsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTQsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTQsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4YzIsIDB4MGIsIDB4N2UsIDB4YjAsIDB4NTUsIDB4MTIsIDB4MTMsIAotICAgIDB4NjQsIDB4N2UsIDB4YjAsIDB4YWEsIDB4MTIsIDB4MTMsIDB4NjQsIDB4N2UsIDB4YjAsIDB4MDAsIDB4MTIsIDB4MTMsIDB4NjQsIDB4N2UsIDB4YjAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MTMsIDB4NjQsIDB4MzAsIDB4MGIsIDB4MGYsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MjIsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIAotICAgIDB4MjIsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YTIsIDB4MDAsIDB4MDAsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MDEsIAotICAgIDB4MjIsIDB4MjAsIDB4MDksIDB4MDMsIDB4ZDIsIDB4MGIsIDB4MjIsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIAotICAgIDB4ZWUsIDB4MDksIDB4YTIsIDB4MDAsIDB4MDAsIDB4ODAsIDB4ZjMsIDB4ZDIsIDB4OTIsIDB4MTIsIDB4MTksIDB4ZWUsIDB4YzIsIDB4OTIsIDB4MTIsIDB4MTksIAotICAgIDB4ZWUsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4NzQsIDB4ODAsIDB4MTksIDB4YjIsIDB4MDAsIDB4MGMsIDB4N2UsIDB4NTQsIAotICAgIDB4MDAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4MTksIDB4YjIsIDB4MDAsIDB4MGMsIAotICAgIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZTEsIDB4MjIsIDB4N2UsIDB4NjgsIDB4MGMsIDB4YjEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIAotICAgIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4NTUsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDUsIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIAotICAgIDB4MDgsIDB4MzAsIDB4MDksIDB4MDksIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4ODAsIDB4ZjcsIDB4MmUsIDB4MjQsIDB4MDEsIAotICAgIDB4MDAsIDB4YTUsIDB4ZDksIDB4YjYsIDB4N2UsIDB4NjgsIDB4MGMsIDB4ZDUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIAotICAgIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIAotICAgIDB4YTAsIDB4NTUsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MGEsIAotICAgIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MWEsIDB4N2UsIAotICAgIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MDksIAotICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4ODAsIDB4ZjcsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4YjYsIAotICAgIDB4MzAsIDB4MDQsIDB4MDMsIDB4MDIsIDB4MTYsIDB4OGMsIDB4N2UsIDB4NjgsIDB4MGMsIDB4ZjksIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIAotICAgIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIAotICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MGEsIDB4NzgsIDB4M2MsIAotICAgIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIAotICAgIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIAotICAgIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MGEsIDB4NzgsIDB4MTQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIAotICAgIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTYsIDB4N2UsIDB4YTAsIDB4MDIsIAotICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4N2UsIDB4NjgsIDB4MGQsIDB4NDEsIAotICAgIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIAotICAgIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDEsIAotICAgIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDUsIDB4NzgsIDB4M2MsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIAotICAgIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDUsIDB4NzgsIDB4MTQsIDB4N2UsIDB4NjgsIAotICAgIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIAotICAgIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIAotICAgIDB4MzAsIDB4MDksIDB4ZTYsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4ODAsIDB4ZjEsIDB4N2UsIDB4NjgsIDB4MGQsIDB4ODksIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIAotICAgIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4NTAsIDB4YmUsIDB4YjAsIDB4NTAsIDB4NzgsIDB4MWYsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIAotICAgIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4NTAsIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIAotICAgIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGYsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIAotICAgIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIAotICAgIDB4ZDksIDB4YTIsIDB4N2UsIDB4NjgsIDB4MGQsIDB4ZDEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIAotICAgIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIAotICAgIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4YTAsIDB4YmUsIDB4YjAsIDB4YTAsIDB4NzgsIDB4MWYsIAotICAgIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4YTAsIAotICAgIDB4NzgsIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MjAsIDB4N2UsIAotICAgIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGYsIAotICAgIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4MmUsIAotICAgIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIDB4MDIsIDB4MTgsIDB4MmIsIDB4N2UsIDB4NjgsIDB4MGQsIDB4MWQsIDB4N2EsIDB4NmMsIDB4MDAsIAotICAgIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4NmMsIDB4YWEsIDB4MTksIAotICAgIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIAotICAgIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIAotICAgIDB4MDYsIDB4NzgsIDB4M2MsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIAotICAgIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIAotICAgIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDYsIDB4NzgsIDB4MTQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4OWUsIDB4ODAsIDB4MjAsIDB4N2UsIAotICAgIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTYsIAotICAgIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4N2UsIAotICAgIDB4NjgsIDB4MGQsIDB4NjUsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIAotICAgIDB4MDksIDB4MGIsIDB4MDAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIAotICAgIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDksIDB4NzgsIDB4M2MsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4MDMsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4N2UsIDB4YTAsIAotICAgIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4MDksIDB4NzgsIAotICAgIDB4MTQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIAotICAgIDB4YTUsIDB4ZDksIDB4OWUsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIAotICAgIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4ZTYsIDB4N2UsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIAotICAgIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4N2UsIDB4NjgsIDB4MGQsIDB4YWQsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIAotICAgIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4OTAsIDB4YmUsIDB4YjAsIDB4OTAsIDB4NzgsIDB4MWYsIDB4NmMsIAotICAgIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4NWUsIDB4YjAsIDB4OTAsIDB4NzgsIAotICAgIDB4MGQsIDB4N2UsIDB4NjgsIDB4MGEsIDB4ODIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ODAsIDB4MjAsIDB4N2UsIDB4NjgsIAotICAgIDB4MGEsIDB4OGIsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MGYsIDB4N2UsIAotICAgIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4ODAsIDB4ZjEsIDB4MmUsIDB4MjQsIAotICAgIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4YTIsIDB4MDIsIDB4MTgsIDB4YjcsIDB4MzAsIDB4MTcsIDB4MDMsIDB4MDIsIDB4MTksIDB4M2IsIDB4YzIsIDB4OGEsIAotICAgIDB4MTIsIDB4MTksIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4NmMsIDB4YWEsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4MGIsIDB4MDAsIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MjAsIAotICAgIDB4OGIsIDB4M2UsIDB4MjAsIDB4ODksIDB4M2IsIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MDksIDB4YTIsIDB4MDAsIDB4MTAsIAotICAgIDB4NGUsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MzAsIDB4OGIsIDB4MjMsIDB4MzAsIDB4ODksIDB4MjAsIAotICAgIDB4MDksIDB4YTIsIDB4MDAsIDB4MTAsIDB4NWUsIDB4YTAsIDB4ZmQsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4YTAsIAotICAgIDB4MDAsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MjAsIDB4OGIsIDB4MDUsIDB4MjAsIDB4ODksIDB4MDIsIDB4ODAsIDB4MWEsIAotICAgIDB4MTIsIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MTQsIDB4N2UsIDB4YTAsIDB4MDIsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MDAsIDB4MDAsIDB4NWUsIAotICAgIDB4YTAsIDB4ZmQsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4ZWMsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIAotICAgIDB4ODksIDB4MDIsIDB4MTksIDB4M2IsIDB4MjAsIDB4MTcsIDB4ZmEsIDB4MTIsIDB4MTMsIDB4OGEsIDB4MTIsIDB4MTksIDB4MjIsIDB4N2UsIDB4MjQsIDB4ODAsIAotICAgIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4MGIsIDB4MDAsIDB4MjAsIDB4ODksIDB4MjYsIDB4N2UsIDB4YTAsIDB4ZmYsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4YjAsIDB4NTUsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MzAsIDB4ODksIDB4MGYsIAotICAgIDB4N2UsIDB4YTAsIDB4MDAsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MjAsIDB4ODksIDB4MDIsIDB4ODAsIDB4MjYsIDB4MTIsIAotICAgIDB4MWEsIDB4MDgsIDB4MzAsIDB4MDksIDB4MjAsIDB4N2UsIDB4YTAsIDB4ZmYsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIAotICAgIDB4YjAsIDB4NTUsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MTksIDB4ZWUsIDB4N2UsIDB4YTAsIDB4MDAsIDB4MTksIDB4YTIsIDB4MDAsIDB4MDQsIAotICAgIDB4MTIsIDB4MTksIDB4ZWUsIDB4ODAsIDB4ZTAsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4YTgsIDB4MDIsIDB4MTksIDB4M2IsIDB4N2UsIAotICAgIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIDB4MTAsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWYsIDB4MjIsIDB4MzAsIDB4MGEsIDB4MTksIDB4N2UsIDB4NjgsIDB4MGQsIDB4ZjUsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4ZDIsIDB4MDksIDB4MTIsIDB4MTksIDB4ZWUsIDB4MTIsIDB4MTksIDB4ZWUsIDB4MTIsIDB4MTksIAotICAgIDB4ZWUsIDB4MDIsIDB4MGYsIDB4MTAsIDB4MzAsIDB4MTcsIDB4MWMsIDB4N2UsIDB4NjgsIDB4MGUsIDB4NmYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIAotICAgIDB4MWEsIDB4OTMsIDB4N2UsIDB4NjgsIDB4MGUsIDB4OTEsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MTIsIDB4MWIsIDB4M2MsIAotICAgIDB4MDIsIDB4MTksIDB4ZTYsIDB4MGIsIDB4MDAsIDB4N2UsIDB4NzgsIDB4MTksIDB4YTAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4ZmYsIDB4N2YsIDB4NjcsIDB4N2EsIAotICAgIDB4NmMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzAsIDB4M2UsIDB4N2UsIDB4N2IsIDB4YjAsIDB4N2EsIDB4NmIsIDB4YjAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIAotICAgIDB4YTUsIDB4ZGYsIDB4ZjMsIDB4N2UsIDB4NzgsIDB4MTksIDB4YTAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4ODksIDB4NzgsIDB4N2UsIDB4NzgsIDB4MDAsIAotICAgIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4NjgsIDB4N2YsIDB4YmYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4ZmUsIDB4NzQsIDB4YWEsIDB4MzksIAotICAgIDB4YjcsIDB4NTUsIDB4NTUsIDB4NzQsIDB4NTUsIDB4MzksIDB4YjcsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIDB4MzksIDB4YjcsIDB4NTUsIDB4NTUsIDB4NmMsIAotICAgIDB4OTksIDB4N2EsIDB4NmIsIDB4OTAsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIDB4N2UsIDB4NmIsIDB4ODAsIDB4YmMsIDB4ODksIDB4NjgsIDB4MDgsIDB4MWIsIAotICAgIDB4NTQsIDB4NzgsIDB4ZjUsIDB4OGEsIDB4ZmYsIDB4MTksIDB4ZGUsIDB4OGEsIDB4ZmYsIDB4MTksIDB4ZTYsIDB4MTIsIDB4MWEsIDB4MDgsIDB4N2UsIDB4NmIsIAotICAgIDB4ODAsIDB4ODAsIDB4ZmIsIDB4N2UsIDB4MTAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4ODUsIDB4ODAsIDB4ZjgsIDB4Y2EsIDB4ZjksIDB4N2UsIDB4ZjQsIDB4MDAsIAotICAgIDB4ZmYsIDB4MWIsIDB4ZjQsIDB4NzgsIDB4ZmMsIDB4ZGEsIDB4ZjksIDB4MjIsIDB4Y2EsIDB4ZjksIDB4N2UsIDB4ZjQsIDB4MDAsIDB4MDAsIDB4MWIsIDB4ZjQsIAotICAgIDB4NzgsIDB4ZmMsIDB4ZGEsIDB4ZjksIDB4MjIsIDB4MjAsIDB4MDksIDB4MTksIDB4ZDIsIDB4MGEsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YzIsIDB4OTUsIDB4ZDIsIAotICAgIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NDMsIDB4OTAsIDB4MzAsIAotICAgIDB4MjIsIDB4Y2EsIDB4MGIsIDB4N2UsIDB4MTAsIDB4MDMsIDB4N2MsIDB4MzAsIDB4NmMsIDB4MjIsIDB4MGIsIDB4MjAsIDB4OWUsIDB4MzAsIDB4MGEsIDB4NTAsIAotICAgIDB4ZjksIDB4MmUsIDB4MzAsIDB4MGIsIDB4MWIsIDB4MjAsIDB4NjgsIDB4MTgsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NTMsIDB4OTAsIAotICAgIDB4Y2YsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NDMsIDB4OTAsIDB4MzAsIDB4YTUsIDB4ZGEsIDB4ZTgsIAotICAgIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MWIsIDB4MzAsIDB4NjgsIDB4MTksIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIAotICAgIDB4YzIsIDB4OTUsIDB4ZDIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4MTIsIDB4MTksIDB4ZmIsIDB4NDMsIDB4OTAsIDB4MzAsIAotICAgIDB4YTUsIDB4ZGIsIDB4ZTcsIDB4N2UsIDB4MjAsIDB4MGEsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YTUsIDB4ZGEsIDB4ZmEsIDB4YTUsIDB4ZDksIDB4YTcsIDB4ZGEsIAotICAgIDB4MGIsIDB4MjIsIDB4MjAsIDB4MDksIDB4MGEsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YjIsIDB4OTQsIDB4MTIsIDB4MTksIDB4ZmIsIDB4YjIsIDB4OTQsIDB4MjIsIAotICAgIDB4MzAsIDB4MTcsIDB4MzIsIDB4MjAsIDB4MDksIDB4MmYsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4N2IsIDB4N2UsIDB4NzgsIDB4ODAsIDB4MDAsIDB4N2EsIDB4N2MsIAotICAgIDB4MDAsIDB4ZmUsIDB4MTIsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NmIsIDB4YTAsIDB4NWMsIDB4YWEsIDB4NjgsIDB4MTAsIDB4MjksIDB4YjcsIDB4MDAsIDB4MTQsIAotICAgIDB4NTQsIDB4NjAsIDB4NjgsIDB4ZjgsIDB4MzksIDB4YTcsIDB4MDAsIDB4MDAsIDB4MGIsIDB4NmMsIDB4ODAsIDB4ZTksIDB4MTIsIDB4MTksIDB4ZWUsIDB4ZDIsIAotICAgIDB4YjUsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4MmIsIDB4MjIsIDB4MTIsIDB4MWEsIDB4ZDQsIDB4N2UsIDB4NjgsIDB4MDAsIDB4MGIsIDB4MTIsIDB4MWEsIDB4OTMsIAotICAgIDB4MjIsIDB4Y2EsIDB4NTksIDB4Y2EsIDB4NWIsIDB4N2UsIDB4YjQsIDB4MDAsIDB4MGIsIDB4N2MsIDB4YjgsIDB4YzQsIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2MsIAotICAgIDB4YjgsIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2MsIDB4YjksIDB4YzQsIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2MsIDB4YjksIDB4MTIsIDB4MWIsIDB4MDQsIDB4N2UsIAotICAgIDB4YjAsIDB4NjgsIDB4N2EsIDB4YjksIDB4YjAsIDB4MGIsIDB4YjQsIDB4NmMsIDB4YmIsIDB4N2EsIDB4YjksIDB4YjAsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4NWIsIAotICAgIDB4MjIsIDB4NWUsIDB4YjAsIDB4MGYsIDB4N2MsIDB4YWIsIDB4OWUsIDB4YTAsIDB4MGEsIDB4NDAsIDB4MDUsIDB4MmUsIDB4YjAsIDB4MzcsIDB4ODAsIDB4MDMsIAotICAgIDB4MmUsIDB4YjAsIDB4MzAsIDB4N2EsIDB4YjksIDB4YjAsIDB4MGIsIDB4YjQsIDB4MjIsIDB4YzIsIDB4YjUsIDB4YzIsIDB4OTIsIDB4MTIsIDB4MTksIDB4ZWUsIAotICAgIDB4NzQsIDB4ODAsIDB4MzksIDB4YjcsIDB4MDAsIDB4MGMsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDYsIDB4MzksIDB4YTcsIDB4MDAsIDB4MDQsIDB4MzksIDB4YjcsIAotICAgIDB4MDAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4MzksIDB4YjcsIDB4MDAsIDB4MGMsIDB4MjIsIDB4N2UsIDB4NzgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIAotICAgIDB4ZmYsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4MDEsIDB4N2YsIDB4NjUsIDB4N2UsIDB4NzQsIDB4MjAsIDB4MDAsIDB4MTIsIAotICAgIDB4MDgsIDB4ZDYsIDB4NDAsIDB4NTQsIDB4N2UsIDB4NzgsIDB4N2MsIDB4MDAsIDB4N2EsIDB4N2MsIDB4MDAsIDB4ZmYsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIAotICAgIDB4N2EsIDB4NWMsIDB4MDAsIDB4MDEsIDB4N2UsIDB4NjgsIDB4N2MsIDB4MDAsIDB4N2EsIDB4NmMsIDB4MDAsIDB4MDEsIDB4N2UsIDB4NzQsIDB4MDQsIDB4MDAsIAotICAgIDB4MTIsIDB4MDgsIDB4ZDYsIDB4NDAsIDB4MzMsIDB4NzQsIDB4ODAsIDB4MTIsIDB4MWIsIDB4YjEsIDB4NDAsIDB4MmMsIDB4NTMsIDB4OTAsIDB4Y2YsIDB4ZDIsIAotICAgIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDgsIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4ODQsIDB4YTUsIDB4ZGIsIDB4ZmMsIDB4YTUsIDB4ZGEsIDB4ZjksIAotICAgIDB4YTUsIDB4ZDksIDB4ZjYsIDB4NzQsIDB4NDAsIDB4MTIsIDB4MWIsIDB4YjEsIDB4NDAsIDB4MGUsIDB4N2UsIDB4NjgsIDB4MGUsIDB4YzAsIDB4N2EsIDB4NmMsIAotICAgIDB4MDAsIDB4ZmYsIDB4MTIsIDB4MWEsIDB4OTMsIDB4MDIsIDB4MTksIDB4ZTYsIDB4YzIsIDB4OTUsIDB4ZDIsIDB4OTQsIDB4ODAsIDB4ZmUsIDB4ZjUsIDB4MGEsIAotICAgIDB4N2UsIDB4NzgsIDB4MDAsIDB4MGEsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NjgsIDB4N2YsIDB4YmYsIDB4N2EsIDB4NmMsIDB4MDAsIDB4MDEsIAotICAgIDB4N2UsIDB4NzQsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDgsIDB4ZDYsIAotfTsKLQotc3RhdGljIHN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyBJTUFHRV9WRVJTSU9OX05BTUUgPSB7Ci0JMSwgMTIsIDIgfTsJCS8vIE1ham9yLCBNaW5vciwgQnVpbGQKLQotI3VuZGVmIElNQUdFX1ZFUlNJT05fTkFNRQotCi0jdW5kZWYgSU1BR0VfQVJSQVlfTkFNRQotCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfYm9vdDIuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19ib290Mi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzQ2M2RlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19ib290Mi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTQ2ICswLDAgQEAKLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLS8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQotLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgotLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0vLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLS8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLQotLy9JbWFnZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbgotI2lmICFkZWZpbmVkKERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQpCi0jZGVmaW5lIERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQKLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgewotCQlfX2xlMTYgRXh0QWRkcjsKLQkJX19sZTE2IEFkZHI7Ci0JCV9fbGUxNiBMZW47Ci0JCXVuc2lnbmVkIGNoYXIgIERhdGFbMF07Ci0JfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7Ci0KLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV92ZXJzaW9uX2luZm8gewotCQl1bnNpZ25lZCBjaGFyCSBNYWpvclZlcnNpb247Ci0JCXVuc2lnbmVkIGNoYXIgIE1pbm9yVmVyc2lvbjsKLQkJdW5zaWduZWQgc2hvcnQgQnVpbGROdW1iZXI7Ci0JfTsKLQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChJTUFHRV9BUlJBWV9OQU1FKQotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCQlGaXJtd2FyZUltYWdlCi0jZGVmaW5lIElNQUdFX1ZFUlNJT05fTkFNRQlGaXJtd2FyZUltYWdlVmVyc2lvbgotI2VuZGlmCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIElNQUdFX0FSUkFZX05BTUVbXSA9IHsKLQotLy8gU2VnbWVudCAjMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwMCwgTGVuZ3RoIDYKLTB4ZmYsMHgwMCwweDAwLDB4MDAsMHgwNiwweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4ODAsIDB4MDIsIDB4MDAsIDB4MDMsIAotCi0vLyBTZWdtZW50ICMyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDBiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MGIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgwYiwgCi0KLS8vIFNlZ21lbnQgIzMsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMTMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgxMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAyLCAweDU2LCAKLQotLy8gU2VnbWVudCAjNCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAxYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDFiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MWIsIAotCi0vLyBTZWdtZW50ICM1LCBTdGFydCBBZGRyZXNzIDAwZmYwMDIzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MjMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgyMywgCi0KLS8vIFNlZ21lbnQgIzYsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMmIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgyYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDJiLCAKLQotLy8gU2VnbWVudCAjNywgU3RhcnQgQWRkcmVzcyAwMGZmMDAzMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDMzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MzMsIAotCi0vLyBTZWdtZW50ICM4LCBTdGFydCBBZGRyZXNzIDAwZmYwMDNiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4M2IsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgzYiwgCi0KLS8vIFNlZ21lbnQgIzksIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNDMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg0MywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDQzLCAKLQotLy8gU2VnbWVudCAjMTAsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNGIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg0YiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDRiLCAKLQotLy8gU2VnbWVudCAjMTEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNTMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg1MywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAxLCAweGY1LCAKLQotLy8gU2VnbWVudCAjMTIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwN2IsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg3YiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDdiLCAKLQotLy8gU2VnbWVudCAjMTMsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwODAsIExlbmd0aCA1MzQKLTB4ZmYsMHgwMCwweDgwLDB4MDAsMHgxNiwweDAyLAotICAgIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDEsIDB4MjAsIDB4ZTMsIDB4MGMsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NTQsIDB4ZmUsIDB4N2EsIDB4YjMsIDB4M2YsIAotICAgIDB4ZjIsIDB4ODAsIDB4MGEsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NDQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NzQsIDB4MDAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4N2UsIDB4ZjgsIDB4MDAsIDB4MjQsIDB4N2UsIDB4MDAsIDB4MDEsIAotICAgIDB4N2UsIDB4MTAsIDB4MDAsIDB4MTIsIDB4MDksIDB4ZDAsIDB4NjksIDB4MjAsIDB4MDAsIDB4MGEsIDB4NWUsIDB4NDAsIDB4MWYsIDB4YmUsIDB4MjQsIDB4MDAsIAotICAgIDB4MDAsIDB4NzgsIDB4MDksIDB4N2UsIDB4MDAsIDB4MDMsIDB4N2EsIDB4MDMsIDB4OTAsIDB4MDAsIDB4ODAsIDB4MDcsIDB4N2UsIDB4MDAsIDB4MDIsIDB4N2EsIAotICAgIDB4MDMsIDB4OTAsIDB4MDAsIDB4NzUsIDB4YjAsIDB4ZGYsIDB4N2UsIDB4MDAsIDB4MDEsIDB4N2EsIDB4MDMsIDB4OTQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIAotICAgIDB4MjQsIDB4N2UsIDB4MDAsIDB4MDEsIDB4N2EsIDB4MDMsIDB4OTMsIDB4MDAsIDB4N2UsIDB4MDAsIDB4MDAsIDB4YTUsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4YTgsIAotICAgIDB4MDAsIDB4NzUsIDB4YjEsIDB4MDAsIDB4Y2EsIDB4MjksIDB4MTIsIDB4MGMsIDB4NjYsIDB4MTIsIDB4MGMsIDB4MzcsIDB4ZjUsIDB4MjEsIDB4N2EsIDB4YTEsIAotICAgIDB4MjAsIDB4MjAsIDB4MDksIDB4MDgsIDB4MjAsIDB4MGEsIDB4MGEsIDB4N2UsIDB4YjAsIDB4MGMsIDB4ODAsIDB4MDgsIDB4N2UsIDB4YjAsIDB4MDAsIDB4ODAsIAotICAgIDB4MDMsIDB4N2UsIDB4YjAsIDB4MDgsIDB4N2EsIDB4YjMsIDB4OTIsIDB4MDAsIDB4MTIsIDB4MDIsIDB4OTYsIDB4ZGEsIDB4MjksIDB4NzQsIDB4MTAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDEsIDB4N2UsIDB4MjAsIDB4MDQsIDB4N2MsIDB4YjIsIDB4YzIsIDB4ZDcsIDB4MTMsIDB4MTMsIDB4MTMsIDB4MTMsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MDAsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4NzQsIDB4MDIsIAotICAgIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4YTUsIDB4ZGEsIDB4ZGYsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MWMsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIAotICAgIDB4MzQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTMsIDB4NzQsIDB4M2YsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MDYsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4NDQsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIDB4ZWYsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4NzQsIDB4MDcsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIAotICAgIDB4YjMsIDB4OTEsIDB4MDcsIDB4N2EsIDB4YjEsIDB4MGEsIDB4NzUsIDB4MDksIDB4MDEsIDB4ZDIsIDB4YWEsIDB4ZDIsIDB4YWYsIDB4ZTQsIDB4N2UsIDB4NjAsIAotICAgIDB4MDIsIDB4NGQsIDB4MjIsIDB4NzgsIDB4MDMsIDB4N2UsIDB4NjAsIDB4MDMsIDB4N2MsIDB4NzYsIDB4N2UsIDB4MDQsIDB4MjgsIDB4MDAsIDB4OGQsIDB4ZWYsIAotICAgIDB4MWIsIDB4MDQsIDB4NzgsIDB4ZmEsIDB4MDQsIDB4N2UsIDB4MjAsIDB4MDcsIDB4N2EsIDB4MjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4MjMsIDB4OTEsIDB4MDcsIAotICAgIDB4N2UsIDB4MzEsIDB4MGEsIDB4YmMsIDB4MzIsIDB4NjgsIDB4MjIsIDB4N2EsIDB4MjEsIDB4MGEsIDB4N2UsIDB4MjEsIDB4MDksIDB4NjgsIDB4MTcsIDB4Y2EsIAotICAgIDB4YjgsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NDQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MDcsIDB4ZGEsIDB4YjgsIDB4NzUsIDB4MDksIDB4MDAsIDB4MzAsIDB4ZTAsIDB4YzEsIDB4NmMsIDB4NjcsIDB4N2EsIDB4NjMsIDB4OTAsIDB4MDAsIDB4ODAsIAotICAgIDB4YjksIDB4YmUsIDB4YjAsIDB4MDIsIDB4MjIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4MDgsIDB4ZmUsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDIsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIAotICAgIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4MzAsIAotICAgIDB4ZTAsIDB4MDgsIDB4NzQsIDB4MTgsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDEsIDB4ODAsIDB4MDYsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDEsIAotICAgIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MzYsIDB4NzUsIDB4MDgsIDB4ZmYsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIAotICAgIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NTQsIAotICAgIDB4ZmMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4MzIsIDB4Y2EsIDB4YjgsIDB4NzUsIDB4MDgsIDB4MDIsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIAotICAgIDB4OTEsIDB4MDMsIDB4MjAsIDB4ZTUsIDB4MDgsIDB4MzAsIDB4ZTAsIDB4MmIsIDB4MTIsIDB4MDIsIDB4OWUsIDB4ODAsIDB4ZjEsIDB4N2UsIDB4YjMsIDB4OTEsIAotICAgIDB4MDQsIDB4MzAsIDB4ZTAsIDB4MDUsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4MDIsIDB4MzksIDB4MzAsIDB4ZTEsIDB4MDUsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4MDEsIAotICAgIDB4ZjUsIDB4MzAsIDB4ZTYsIDB4MDUsIDB4MTIsIDB4MDQsIDB4MDMsIDB4ODAsIDB4ZDUsIDB4MzAsIDB4ZTIsIDB4MDUsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4MDAsIAotICAgIDB4ODAsIDB4ODAsIDB4Y2IsIDB4ZGEsIDB4YjgsIDB4MzIsIAotCi0vLyBTZWdtZW50ICMxNCwgRVhDTFVERUQgU3RhcnQgQWRkcmVzcyAwMGZmMzFkNywgTGVuZ3RoIDEKLQotCi0vLyBTZWdtZW50ICMxNSwgU3RhcnQgQWRkcmVzcyAwMGZmMDI5NiwgTGVuZ3RoIDIwOTAKLTB4ZmYsMHgwMCwweDk2LDB4MDIsMHgyYSwweDA4LAotICAgIDB4ZTQsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4MDIsIDB4MDMsIDB4NDEsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4M2IsIAotICAgIDB4Y2EsIDB4NGIsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIDB4Y2EsIDB4N2IsIDB4Y2EsIDB4ZWIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmUsIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MWMsIDB4YjQsIDB4MDEsIDB4MTksIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIAotICAgIDB4NTQsIDB4MTQsIDB4NjgsIDB4MDUsIDB4MTIsIDB4MDMsIDB4MDUsIDB4ODAsIDB4MjMsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MzAsIDB4ZTUsIDB4MWMsIAotICAgIDB4MTIsIDB4MDQsIDB4NDMsIDB4ODAsIDB4MTcsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MzAsIDB4ZTUsIDB4MDUsIDB4MTIsIDB4MDQsIDB4NDMsIDB4ODAsIAotICAgIDB4MGIsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NTQsIDB4MTQsIDB4NjgsIDB4MDMsIDB4MTIsIDB4MDMsIDB4MDUsIDB4ZGEsIDB4ZWIsIDB4ZGEsIDB4N2IsIAotICAgIDB4ZGEsIDB4NmIsIDB4ZGEsIDB4NWIsIDB4ZGEsIDB4NGIsIDB4ZGEsIDB4M2IsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4MjAsIAotICAgIDB4ZTQsIDB4MTksIDB4NzUsIDB4MDgsIDB4MGEsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmQsIDB4NzAsIDB4MGEsIDB4N2UsIDB4YjMsIAotICAgIDB4MDEsIDB4MmUsIDB4YjQsIDB4MDEsIDB4MWYsIDB4MDIsIDB4MDMsIDB4OWQsIDB4MDIsIDB4MDksIDB4OGIsIDB4NzUsIDB4MDgsIDB4MGIsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4NzQsIDB4MTQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmUsIDB4YjQsIDB4MDIsIDB4MGMsIDB4MTIsIDB4MDMsIAotICAgIDB4NGQsIDB4MDIsIDB4MDMsIDB4NDEsIDB4NzQsIDB4MDQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjIsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDMsIAotICAgIDB4MDEsIDB4MmUsIDB4N2EsIDB4MDMsIDB4MDEsIDB4MmYsIDB4MjIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjUsIDB4NTQsIDB4NjAsIDB4NjAsIDB4MDUsIDB4YjQsIAotICAgIDB4NDAsIDB4MWUsIDB4ODAsIDB4MWMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDUsIDB4MTUsIDB4NzUsIDB4MDgsIDB4NzEsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4N2UsIDB4YTAsIDB4MDEsIDB4N2EsIDB4YTMsIDB4OTEsIDB4MDYsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIAotICAgIDB4MjIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4MjIsIDB4YmUsIDB4NTcsIAotICAgIDB4MDEsIDB4MmIsIDB4MjgsIDB4MDQsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MmIsIDB4N2EsIDB4MGYsIDB4MDEsIDB4MzEsIDB4N2EsIDB4NTcsIDB4MDEsIDB4MzUsIAotICAgIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4MjIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIAotICAgIDB4MWEsIDB4NzAsIDB4NTMsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjAsIDB4ZTQsIDB4NGMsIDB4N2UsIDB4ZWYsIDB4MDEsIDB4MzEsIDB4N2UsIDB4ZjcsIAotICAgIDB4MDEsIDB4MzUsIDB4N2UsIDB4MDcsIDB4MDEsIDB4MzUsIDB4NGQsIDB4MDAsIDB4NjgsIDB4MjEsIDB4N2UsIDB4MDAsIDB4MDAsIDB4ZTAsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MTcsIDB4YTMsIDB4YTUsIDB4MDgsIDB4MWIsIDB4ZjQsIDB4NjgsIDB4MDYsIDB4YTUsIDB4YjgsIDB4MTAsIDB4ZjAsIDB4ODAsIDB4MTksIDB4N2UsIAotICAgIDB4YjAsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmUsIDB4YmUsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MGQsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2EsIDB4YjMsIAotICAgIDB4MDEsIDB4MmUsIDB4NzQsIDB4ODAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWUsIDB4N2EsIDB4ZWYsIDB4MDEsIDB4MzEsIDB4N2EsIDB4ZjcsIDB4MDEsIDB4MzUsIAotICAgIDB4NzUsIDB4MDgsIDB4MDYsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjIsIDB4Y2EsIDB4MGIsIDB4Y2EsIAotICAgIDB4MWIsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4M2IsIDB4Y2EsIDB4NGIsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIDB4Y2EsIDB4N2IsIDB4Y2EsIDB4ZWIsIDB4NzUsIAotICAgIDB4MDgsIDB4MDMsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmQsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MDAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4MTIsIDB4MDQsIDB4YjIsIDB4ZGEsIDB4ZWIsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4NmIsIAotICAgIDB4ZGEsIDB4NWIsIDB4ZGEsIDB4NGIsIDB4ZGEsIDB4M2IsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4NzUsIDB4MDgsIDB4MDMsIAotICAgIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmYsIDB4YjQsIDB4MDIsIDB4MTEsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmYsIAotICAgIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmUsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjIsIDB4YjQsIDB4MDEsIDB4NDYsIDB4N2UsIDB4YjMsIAotICAgIDB4OTEsIDB4MDQsIDB4MjAsIDB4ZTYsIDB4NDIsIDB4N2UsIDB4MjMsIDB4OTEsIDB4MWEsIDB4N2MsIDB4MzIsIDB4N2UsIDB4MTMsIDB4MDEsIDB4MzAsIDB4MmMsIAotICAgIDB4MjEsIDB4N2EsIDB4MjMsIDB4MDEsIDB4MzAsIDB4N2UsIDB4MDAsIDB4MDAsIDB4MmUsIDB4MDQsIDB4MDEsIDB4MzcsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTYsIAotICAgIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4YTUsIDB4ZGIsIDB4ZjQsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzUsIDB4MDgsIAotICAgIDB4NzAsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MzAsIDB4N2UsIDB4YTMsIDB4MDEsIDB4MmMsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MDMsIAotICAgIDB4MTIsIDB4MDUsIDB4NTIsIDB4MjIsIDB4MDIsIDB4MDksIDB4OGIsIDB4ZGEsIDB4NTksIDB4MDIsIDB4MDQsIDB4MTUsIDB4NzQsIDB4ZTAsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MDAsIDB4N2UsIDB4MDMsIDB4OTEsIDB4MTAsIDB4N2UsIDB4MTMsIDB4OTEsIDB4MTEsIDB4N2UsIDB4MzMsIDB4OTEsIDB4MTIsIDB4N2UsIDB4MjMsIAotICAgIDB4OTEsIDB4MTMsIDB4N2UsIDB4NTMsIDB4OTEsIDB4MTQsIDB4N2UsIDB4NDMsIDB4OTEsIDB4MTUsIDB4N2UsIDB4NzMsIDB4OTEsIDB4MTYsIDB4N2UsIDB4NjMsIAotICAgIDB4OTEsIDB4MTcsIDB4N2EsIDB4MGYsIDB4MDEsIDB4MjUsIDB4N2EsIDB4MWYsIDB4MDEsIDB4MjksIDB4NzUsIDB4MDgsIDB4MDQsIDB4MTIsIDB4MGEsIDB4YzAsIAotICAgIDB4N2EsIDB4MDEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MTEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MjEsIDB4MDgsIDB4MTIsIAotICAgIDB4MGEsIDB4YzAsIDB4N2EsIDB4MzEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4NDEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4NTEsIAotICAgIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4NjEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4NzEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIAotICAgIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4MTIsIDB4MDUsIDB4MjYsIDB4MjIsIAotICAgIDB4NmQsIDB4MDAsIDB4N2UsIDB4MTQsIDB4MDEsIDB4MDIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4MzUsIDB4N2EsIDB4MDMsIDB4MDEsIDB4MzAsIDB4N2UsIDB4YjMsIAotICAgIDB4MDEsIDB4MjUsIDB4MjAsIDB4ZTcsIDB4MGYsIDB4N2EsIDB4MjMsIDB4MDEsIDB4MmYsIDB4N2EsIDB4MzMsIDB4MDEsIDB4MmUsIDB4YmUsIDB4MDcsIDB4MDEsIAotICAgIDB4MmIsIDB4NjgsIDB4MDksIDB4MjIsIDB4N2EsIDB4MzMsIDB4MDEsIDB4MmYsIDB4N2EsIDB4MjMsIDB4MDEsIDB4MmUsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjUsIAotICAgIDB4NTQsIDB4ZTMsIDB4MjMsIDB4MjMsIDB4MzAsIDB4ZTAsIDB4MDIsIDB4ZDIsIDB4ZTUsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4ZDIsIDB4ZTQsIDB4MzAsIDB4ZTUsIAotICAgIDB4MDYsIDB4MzAsIDB4ZTQsIDB4MDMsIDB4MDIsIDB4MDksIDB4OGIsIDB4NTQsIDB4M2UsIDB4ZjUsIDB4ZjAsIDB4MDMsIDB4NTQsIDB4MWYsIDB4YzMsIDB4MjUsIAotICAgIDB4ZjAsIDB4OTAsIDB4MDUsIDB4N2UsIDB4NzUsIDB4ODQsIDB4ZmYsIDB4NzMsIDB4MDIsIDB4MDcsIDB4MzksIDB4MDIsIDB4MDUsIDB4YzYsIDB4MDIsIDB4MDcsIAotICAgIDB4ZDIsIDB4MDIsIDB4MDcsIDB4ZWQsIDB4MDIsIDB4MDYsIDB4ZDAsIDB4MDIsIDB4MDYsIDB4NWIsIDB4MDIsIDB4MDgsIDB4MWUsIDB4MDIsIDB4MDgsIDB4MWUsIAotICAgIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIAotICAgIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjEsIDB4MDIsIDB4MDgsIDB4MjcsIDB4MDIsIDB4MDgsIDB4ZjksIDB4MDIsIDB4MDgsIAotICAgIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIDB4MDIsIDB4MDgsIDB4MjQsIAotICAgIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIAotICAgIDB4YjQsIDB4MDYsIDB4MmEsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjcsIDB4NjAsIDB4NzksIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MDEsIDB4MjgsIDB4N2UsIAotICAgIDB4MTcsIDB4MDEsIDB4MjksIDB4NzUsIDB4MDgsIDB4NzIsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MDEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIAotICAgIDB4MTEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4MTIsIDB4MDksIDB4ZDAsIDB4NDAsIDB4NTgsIDB4MDIsIDB4MDMsIDB4ODQsIDB4YjQsIDB4MDgsIDB4MWMsIAotICAgIDB4NzUsIDB4MDgsIDB4NzQsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIAotICAgIDB4MDAsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4ODQsIDB4YjQsIDB4MDAsIDB4MzMsIDB4NzUsIAotICAgIDB4MDgsIDB4NzUsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4N2UsIAotICAgIDB4YjMsIDB4M2YsIDB4ZjIsIDB4MzAsIDB4ZTAsIDB4MDcsIDB4NzQsIDB4MDIsIDB4N2EsIDB4MGIsIDB4YjAsIDB4ODAsIDB4MDUsIDB4NzQsIDB4MDAsIDB4N2EsIAotICAgIDB4MGIsIDB4YjAsIDB4MGIsIDB4MTQsIDB4NzQsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDIsIDB4ZGEsIDB4MGIsIDB4MDIsIAotICAgIDB4MDMsIDB4ODQsIDB4MDIsIDB4MDksIDB4OGIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MWMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDAsIDB4NWYsIDB4NzUsIDB4MDgsIDB4NzYsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIAotICAgIDB4MDEsIDB4MmEsIDB4NTQsIDB4MGYsIDB4YjQsIDB4MDIsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NjAsIDB4ODAsIDB4MTcsIDB4YjQsIDB4MDAsIDB4MDUsIDB4N2UsIAotICAgIDB4YjAsIDB4MDAsIDB4ODAsIDB4MGYsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmEsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NDAsIDB4ODAsIDB4MDMsIAotICAgIDB4N2UsIDB4YjAsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTEsIDB4MzAsIDB4ZTAsIDB4MDQsIDB4NzQsIDB4MDEsIAotICAgIDB4ODAsIDB4MDIsIDB4NzQsIDB4MDAsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4N2EsIDB4MGIsIAotICAgIDB4YjAsIDB4MGIsIDB4MTQsIDB4NzQsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4NTQsIAotICAgIDB4MDAsIDB4MDIsIDB4ZGEsIDB4MGIsIDB4MDIsIDB4MDMsIDB4ODQsIDB4MDIsIDB4MDksIDB4OGIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmEsIDB4NTQsIDB4MGYsIAotICAgIDB4YjQsIDB4MDIsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NjAsIDB4ODAsIDB4MTcsIDB4YjQsIDB4MDAsIDB4MDUsIDB4N2UsIDB4YjAsIDB4MDAsIDB4ODAsIDB4MGYsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmEsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NDAsIDB4ODAsIDB4MDMsIDB4N2UsIDB4YjAsIDB4MjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4YjQsIDB4MDAsIDB4MjYsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDEsIAotICAgIDB4MGUsIDB4NzUsIDB4MDgsIDB4NzcsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4ODAsIDB4MWIsIDB4YjQsIAotICAgIDB4MDMsIDB4MGUsIDB4NzUsIDB4MDgsIDB4NzgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTEsIDB4ODAsIDB4MGEsIAotICAgIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4MTIsIDB4MDksIDB4OGIsIDB4MjIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIAotICAgIDB4MDIsIDB4MDMsIDB4NzcsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDksIDB4MWYsIDB4NzUsIDB4MDgsIDB4NzksIDB4MTIsIDB4MGEsIDB4YzAsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4YmUsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4NjgsIDB4MGQsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MDEsIDB4ZjEsIDB4ZGEsIAotICAgIDB4YjgsIDB4NTAsIDB4NzYsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4ODAsIDB4NmQsIDB4YjQsIDB4MDUsIDB4MDgsIDB4NzUsIDB4MDgsIDB4N2EsIDB4MTIsIAotICAgIDB4MGEsIDB4YzAsIDB4ODAsIDB4NjIsIDB4YjQsIDB4MDMsIDB4MTksIDB4NzUsIDB4MDgsIDB4N2IsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIAotICAgIDB4MjgsIDB4YjQsIDB4MDEsIDB4NTUsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NDQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIDB4NDYsIAotICAgIDB4YjQsIDB4MDEsIDB4MTksIDB4NzUsIDB4MDgsIDB4N2MsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4YjQsIDB4MDEsIDB4MzksIAotICAgIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NTQsIDB4ZmUsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIDB4MmEsIDB4YjQsIDB4MDcsIDB4MmEsIDB4N2UsIAotICAgIDB4YjMsIDB4MDEsIDB4MjcsIDB4NjAsIDB4MjQsIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MDEsIDB4MjgsIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjksIDB4NzUsIAotICAgIDB4MDgsIDB4NzMsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MDEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MTEsIDB4MDgsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4MTIsIDB4MGEsIDB4MGEsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NzcsIDB4MDIsIDB4MDksIDB4OGIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIAotICAgIDB4YjQsIDB4MGIsIDB4ZjYsIDB4NzUsIDB4MDgsIDB4N2QsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4N2UsIDB4YTMsIDB4MDEsIAotICAgIDB4MmEsIDB4NGMsIDB4YWIsIDB4NzgsIDB4ZTQsIDB4ODAsIDB4ZGYsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MWMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MGEsIDB4Y2YsIDB4NzUsIDB4MDgsIDB4N2UsIDB4MTIsIDB4MGEsIDB4YzAsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4NzAsIDB4YzMsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MGIsIAotICAgIDB4YjAsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4ODQsIDB4MDIsIDB4MDksIDB4OGIsIDB4MDIsIDB4MDksIDB4OGIsIDB4MDIsIDB4MDksIAotICAgIDB4OGIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDQsIDB4MjAsIDB4NzUsIDB4MDgsIDB4YzMsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjcsIDB4N2UsIDB4MTgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NDcsIAotICAgIDB4MDEsIDB4MmIsIDB4MTIsIDB4MGEsIDB4Y2MsIDB4MDIsIDB4MDgsIDB4ZjMsIDB4YjQsIDB4MDYsIDB4NDIsIDB4NzUsIDB4MDgsIDB4YzEsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2QsIDB4Y2EsIDB4N2UsIDB4ZDcsIDB4MDEsIDB4MjcsIDB4N2UsIAotICAgIDB4NzgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzcsIDB4MDEsIDB4MmIsIDB4NzUsIDB4MDgsIDB4YzEsIDB4MTIsIDB4MGEsIAotICAgIDB4YzAsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4MTIsIDB4MGIsIDB4NjMsIDB4N2UsIAotICAgIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4NDAsIDB4NjUsIDB4ODAsIDB4NjAsIDB4YjQsIDB4MDAsIDB4MjQsIAotICAgIDB4YzIsIDB4YWYsIDB4N2UsIDB4YjAsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MjQsIDB4MTIsIDB4MDMsIDB4NzcsIAotICAgIDB4ZTQsIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIDB4ZDUsIDB4ZTAsIDB4ZjcsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MDIsIDB4ZmYsIDB4Y2EsIAotICAgIDB4MDYsIDB4MDAsIDB4MDAsIDB4MzIsIDB4YjQsIDB4MDksIDB4MjAsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4MjMsIDB4OTEsIAotICAgIDB4MDcsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MjcsIDB4NGQsIDB4NTUsIDB4NjgsIDB4MDUsIDB4NGUsIDB4MjAsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NWUsIDB4MjAsIAotICAgIDB4ZmQsIDB4N2EsIDB4MjMsIDB4OTEsIDB4MDcsIDB4ODAsIDB4MTYsIDB4YjQsIDB4MDcsIDB4MTYsIDB4YzIsIDB4YWYsIDB4N2UsIDB4MDcsIDB4MDEsIDB4MjksIAotICAgIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjcsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MTgsIDB4Y2EsIDB4MzgsIDB4Y2EsIDB4MjgsIDB4MzIsIDB4MDIsIDB4MDMsIDB4NzcsIAotICAgIDB4MDIsIDB4MDksIDB4OGIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4N2UsIAotICAgIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDMsIDB4MTUsIDB4NzUsIDB4MDgsIDB4YzIsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIAotICAgIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjcsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MmIsIDB4MDIsIDB4MDMsIDB4ODQsIDB4YjQsIDB4MDUsIDB4NDEsIDB4NzUsIDB4MDgsIAotICAgIDB4YzAsIDB4MTIsIDB4MGEsIDB4YzAsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4N2UsIAotICAgIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4MjcsIDB4N2UsIAotICAgIDB4NDcsIDB4MDEsIDB4MmIsIDB4MTIsIDB4MGEsIDB4Y2MsIDB4N2UsIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIAotICAgIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MmIsIDB4MDIsIDB4MDMsIDB4ODQsIDB4YjQsIAotICAgIDB4MDEsIDB4MjAsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2UsIDB4MTAsIDB4MDEsIDB4NzUsIDB4MDgsIDB4NzIsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MDEsIAotICAgIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2EsIDB4MTEsIDB4MDgsIDB4MTIsIDB4MGEsIDB4YzAsIDB4MTIsIDB4MDksIDB4ZDAsIDB4NDAsIDB4MDMsIDB4MDIsIAotICAgIDB4MDMsIDB4ODQsIDB4MDIsIDB4MDksIDB4OGIsIDB4NzUsIDB4MDgsIDB4MDcsIDB4MTIsIDB4MGEsIDB4YzAsIDB4N2UsIDB4YjAsIDB4MDIsIDB4N2EsIDB4YjMsIAotICAgIDB4OTAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTUsIDB4NzQsIDB4MDEsIAotICAgIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTEsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTUsIDB4NTQsIDB4NjAsIDB4YmUsIDB4YjAsIDB4NDAsIDB4NjgsIDB4MDgsIDB4NzQsIAotICAgIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTUsIDB4ODAsIDB4ZWQsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4NzQsIDB4MDQsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzQsIDB4ZmYsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmQsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIAotICAgIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4MTIsIDB4MGEsIDB4NTcsIDB4NDAsIDB4MWYsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzcsIDB4N2EsIDB4MGMsIAotICAgIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4NDksIDB4MTIsIDB4MGEsIDB4Y2MsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MGIsIDB4N2UsIDB4NDMsIDB4MDEsIAotICAgIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4N2UsIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIAotICAgIDB4MDAsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4MTIsIAotICAgIDB4MGEsIDB4NTcsIDB4NDAsIDB4MzEsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2YsIDB4NjEsIDB4N2UsIDB4NzgsIAotICAgIDB4MDEsIDB4MzcsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzcsIDB4MDEsIDB4MmIsIDB4YmQsIDB4NzQsIDB4NzgsIDB4MTcsIDB4NzUsIDB4MDgsIAotICAgIDB4YzEsIDB4MTIsIDB4MGEsIDB4YzAsIDB4MTIsIDB4MGIsIDB4NjMsIDB4NDAsIDB4MGMsIDB4N2UsIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIAotICAgIDB4MDAsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4N2UsIDB4NDMsIDB4MDEsIDB4MjQsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4ZDMsIAotICAgIDB4MjIsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzQsIDB4N2YsIDB4Y2EsIDB4MGIsIDB4MWEsIDB4NTAsIDB4YzUsIDB4ZjAsIDB4N2QsIDB4NjIsIAotICAgIDB4N2QsIDB4NzUsIDB4N2QsIDB4ODcsIDB4N2UsIDB4MzQsIDB4N2YsIDB4MDMsIDB4N2UsIDB4MWIsIDB4YjAsIDB4YmMsIDB4MGIsIDB4NTAsIDB4NDksIDB4M2UsIAotICAgIDB4MDAsIDB4M2UsIDB4MDAsIDB4MGEsIDB4NTAsIDB4MmQsIDB4NzUsIDB4MGIsIDB4M2EsIDB4MzAsIDB4NjksIDB4NTMsIDB4MDAsIDB4MDIsIDB4YmQsIDB4MzgsIAotICAgIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmMsIDB4MWIsIDB4NTAsIDB4MzAsIDB4M2UsIDB4MTAsIDB4M2UsIDB4MTAsIDB4MGEsIDB4NTEsIDB4MmQsIDB4MzUsIAotICAgIDB4NjksIDB4NDEsIDB4MDAsIDB4MDIsIDB4MGIsIDB4MWEsIDB4MzAsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmUsIDB4NDQsIDB4ZmYsIAotICAgIDB4ZmYsIDB4NzgsIDB4MDUsIDB4N2UsIDB4MWIsIDB4OTAsIDB4MGEsIDB4NDksIDB4NGQsIDB4NDQsIDB4NjgsIDB4MGMsIDB4YmUsIDB4NDQsIDB4MDAsIDB4ZmYsIAotICAgIDB4MjgsIDB4MDQsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4YzMsIDB4MjIsIDB4ZDMsIDB4MjIsIAotCi0vLyBTZWdtZW50ICMxNiwgRVhDTFVERUQgU3RhcnQgQWRkcmVzcyAwMGZmN2MwMCwgTGVuZ3RoIDIyNwotCi0KLS8vIFNlZ21lbnQgIzE3LCBFWENMVURFRCBTdGFydCBBZGRyZXNzIDAwZmY3ZjAwLCBMZW5ndGggMTkyCi0KLQotLy8gU2VnbWVudCAjMTcsIFN0YXJ0IEFkZHJlc3MgMDBmZjdmYzAsIExlbmd0aCA2NAotMHhmZiwweDAwLDB4YzAsMHg3ZiwweDQwLDB4MDAsCi0gICAgMHg0MCwgMHgwMSwgMHgwMiwgMHgwMCwgMHhkNywgMHgzMSwgMHgwMiwgMHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHg3YywgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhmMSwgMHg3ZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCi0KLS8vIFNlZ21lbnQgIzE4LCBTdGFydCBBZGRyZXNzIDAwZmYwYWMwLCBMZW5ndGggNDE2MwotMHhmZiwweDAwLDB4YzAsMHgwYSwweDQzLDB4MTAsCi0gICAgMHhjYSwgMHgwOCwgMHg3ZSwgMHgwMSwgMHgwOCwgMHg3YSwgMHgwMywgMHgzZiwgMHhmMCwgMHhkYSwgMHgwOCwgMHgyMiwgMHg4MCwgMHg1MCwgMHgwYiwgMHgxYSwgCi0gICAgMHg2MCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHg3MCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHg4MCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHg5MCwgCi0gICAgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHhhMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHhiMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHhjMCwgMHgwYiwgCi0gICAgMHgzNSwgMHgwYiwgMHgxYSwgMHhkMCwgMHgwYiwgMHgzNSwgMHgxYiwgMHgwYSwgMHg2MCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHg3MCwgMHgwYiwgMHgxNSwgCi0gICAgMHgxYiwgMHgwYSwgMHg4MCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHg5MCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHhhMCwgMHgwYiwgMHgxNSwgMHgxYiwgCi0gICAgMHgwYSwgMHhiMCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHhjMCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHhkMCwgMHgwYiwgMHgxNSwgMHg5ZSwgMHg0NCwgCi0gICAgMHgwMCwgMHgxMCwgMHg1MCwgMHhhYSwgMHgyZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwZSwgMHg3ZSwgMHgxYiwgMHhjMCwgMHg3YSwgMHgwYiwgMHhjMCwgCi0gICAgMHgwYiwgMHgxNCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg3OCwgMHhmMiwgMHgyMiwgMHg3ZiwgMHg2ZiwgMHg3ZiwgMHhmMCwgMHgxYiwgMHhmYywgMHg3YywgCi0gICAgMHg1NCwgMHg3ZCwgMHgzMiwgMHg4MCwgMHgwOCwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHg5ZSwgMHg0NCwgMHgwMCwgCi0gICAgMHgxMCwgMHg1MCwgMHhmMiwgMHgyZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwNiwgMHhjYSwgMHg0OCwgMHgxYiwgMHg0NCwgMHg3OCwgMHhmYSwgMHg3ZiwgCi0gICAgMHhmNiwgMHg4OSwgMHhlNCwgMHhjYSwgMHg2YiwgMHg1ZSwgMHhkNCwgMHgwMCwgMHgzZiwgMHg2OCwgMHgyMCwgMHg3ZSwgMHg4NCwgMHgwMCwgMHg0MCwgMHg5ZCwgCi0gICAgMHg4ZCwgMHhkYSwgMHg2YiwgMHhiZCwgMHg4NywgMHgzOCwgMHgxNiwgMHhjYSwgMHg3OSwgMHg3ZCwgMHg3OCwgMHgxMiwgMHgwYiwgMHg4ZCwgMHhkYSwgMHg3OSwgCi0gICAgMHg0MCwgMHgwOCwgMHg5ZCwgMHg3OCwgMHg2OCwgMHgwMiwgMHg4MCwgMHgwNSwgMHhjMiwgMHhkNywgMHgyMiwgMHhkYSwgMHg2YiwgMHg3ZSwgMHhjMCwgMHgwMywgCi0gICAgMHg3ZSwgMHhkMCwgMHgwMCwgMHg3YSwgMHhkMywgMHg5MCwgMHgwMCwgMHg3NCwgMHhhYSwgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3NCwgMHg1NSwgMHgzOSwgCi0gICAgMHhiNSwgMHgyYSwgMHhhYSwgMHg3NCwgMHhhMCwgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHg0MCwgMHg5ZCwgMHg3MCwgMHg1MCwgCi0gICAgMHgwNiwgMHgyZCwgMHg3MCwgMHg3ZCwgMHgwNywgMHg2ZCwgMHg3NywgMHg3YywgMHgzMSwgMHg3ZSwgMHg3YiwgMHgwMCwgMHg3YSwgMHg2YiwgMHgwMCwgMHgwYiwgCi0gICAgMHg3YywgMHgwYiwgMHg2YywgMHhhNSwgMHhkOSwgMHhmMywgMHg3ZiwgMHgxNiwgMHgxYiwgMHgxYywgMHg3ZSwgMHg1NCwgMHgyNywgMHgxMCwgMHg3ZSwgMHgxYiwgCi0gICAgMHgxMCwgMHhiYywgMHgxMCwgMHg2OCwgMHgwNiwgMHgxYiwgMHg1NCwgMHg3OCwgMHhmNSwgMHg4MCwgMHgyZiwgMHg2ZCwgMHgwMCwgMHg3YywgMHgyMCwgMHg3ZiwgCi0gICAgMHgxNiwgMHg5ZiwgMHgxMCwgMHg3ZiwgMHgyNywgMHg5ZiwgMHgyMCwgMHg3ZSwgMHgyYiwgMHgwMCwgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgMHgwMSwgMHg3OCwgCi0gICAgMHgxOSwgMHgwYiwgMHgyYywgMHgwYiwgMHgxYywgMHhhNSwgMHhkYiwgMHhlZiwgMHg3YywgMHhiNiwgMHgyMCwgMHhlMCwgMHgwNiwgMHg2YywgMHhkYywgMHg3YSwgCi0gICAgMHhkMywgMHg5MCwgMHgwMCwgMHg0ZCwgMHg3NywgMHg3OCwgMHg5MCwgMHhjMiwgMHhkNywgMHgyMiwgMHhkMiwgMHhkNywgMHgyMiwgMHgwMCwgMHgwNCwgMHgwMCwgCi0gICAgMHgwNCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgwNCwgMHgwMiwgMHgwNCwgMHgwMCwgMHgwMiwgMHgwMSwgMHgwNCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwNCwgMHgwMCwgMHgwOCwgMHgxMCwgMHgwMiwgMHgxMCwgCi0gICAgMHgwNCwgMHgwMiwgMHgwOCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwOCwgMHg3ZSwgMHgxOCwgMHg3ZiwgMHhiZCwgMHg3YSwgMHgxYywgMHgwMCwgMHhmZiwgMHgwYiwgCi0gICAgMHgxYSwgMHgwMCwgMHg1ZSwgMHgxMCwgMHgxZiwgMHhiZSwgMHgxMCwgMHgxNCwgMHgzOCwgMHgxYSwgMHgwYSwgMHg1MSwgMHgyMywgMHg3ZSwgMHgxOCwgMHgwYywgCi0gICAgMHgwZCwgMHg3YSwgMHgxYywgMHgwMCwgMHhmZiwgMHgyZCwgMHgzNSwgMHgwYiwgMHgxYSwgMHg1MCwgMHg2MCwgMHgwOCwgMHhhNSwgMHhiOCwgMHgwMiwgMHgwMywgCi0gICAgMHg0ZSwgMHhhMCwgMHgwOCwgMHgyMiwgMHg4MCwgMHhmZSwgMHg3ZSwgMHhlOCwgMHg3ZiwgMHhiZiwgMHg3YSwgMHhlYywgMHgwMCwgMHhmZiwgMHhlMCwgMHhmNSwgCi0gICAgMHgyMywgMHg1NCwgMHhjMCwgMHg2OCwgMHgzOCwgMHg3ZSwgMHhlOCwgMHg3ZiwgMHhiZSwgMHg3YSwgMHhlYywgMHgwMCwgMHhmZiwgMHhlMCwgMHg2MCwgMHgyZSwgCi0gICAgMHgxMiwgMHgwYywgMHgzNywgMHhmNSwgMHgyMSwgMHg3YSwgMHhhMSwgMHgyMCwgMHgyMCwgMHgwOSwgMHgwYywgMHgyMCwgMHgwYSwgMHgxMiwgMHg3ZSwgMHhiMCwgCi0gICAgMHgwZSwgMHg3YSwgMHhiMywgMHg5MiwgMHgwMCwgMHg4MCwgMHgxMCwgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MiwgMHgwMCwgMHg4MCwgMHgwNywgCi0gICAgMHg3ZSwgMHhiMCwgMHgwYSwgMHg3YSwgMHhiMywgMHg5MiwgMHgwMCwgMHg3YSwgMHhiMSwgMHgwZCwgMHgwMiwgMHgwYywgMHhjNCwgMHgyMiwgMHg3ZSwgMHhiMCwgCi0gICAgMHgwMiwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgCi0gICAgMHgxOSwgMHgwYywgMHg4MCwgMHhlYSwgMHhjMiwgMHhhZiwgMHhjMiwgMHgxMSwgMHhjMiwgMHgxMiwgMHg3NSwgMHhiMCwgMHhkZiwgMHg3ZSwgMHgwMCwgMHgwMSwgCi0gICAgMHg3YSwgMHgwMywgMHg5MywgMHgwMCwgMHg3ZSwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwMywgMHg5MCwgMHgwMCwgMHg2YywgMHgwMCwgMHg3ZSwgMHgxMCwgMHgwMywgCi0gICAgMHgxMiwgMHgwYywgMHhmNSwgMHg3ZSwgMHg2OCwgMHgyYywgMHg2NiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgCi0gICAgMHg4MCwgMHgzMiwgMHgwMiwgMHgxYSwgMHg2ZSwgMHgyMCwgMHgxMSwgMHgyYiwgMHg3ZSwgMHhiMCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgCi0gICAgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgCi0gICAgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHhhNSwgMHhkOSwgMHhkYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHgyMiwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmOSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgCi0gICAgMHhlNCwgMHgxMCwgMHgwMCwgMHg3ZSwgMHg0MCwgMHg1NSwgMHg3YSwgMHhlOSwgMHg0MCwgMHgwYiwgMHhlNCwgMHg3ZSwgMHg1MCwgMHhhYSwgMHg3YSwgMHhlOSwgCi0gICAgMHg1MCwgMHgxYiwgMHhlNCwgMHhiZSwgMHhlOSwgMHg0MCwgMHg2OCwgMHgxOSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgxMywgMHg3YSwgMHhlOSwgMHg0MCwgMHg3ZSwgMHhlOSwgMHgxMCwgMHg4MCwgCi0gICAgMHhmOCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyZCwgMHgzZCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwMCwgMHg3ZSwgMHg3MCwgMHgwZSwgCi0gICAgMHg3ZSwgMHhhNCwgMHhmZiwgMHhmZiwgMHg3ZSwgMHhiNCwgMHhiZiwgMHhmZiwgMHg3ZCwgMHhjYiwgMHgwZSwgMHhjNCwgMHg3ZCwgMHhkYywgMHg1ZCwgMHhkYiwgCi0gICAgMHg2YywgMHhiYiwgMHg3ZCwgMHhmYSwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYiwgMHg1ZSwgCi0gICAgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYywgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgCi0gICAgMHhiMCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmZCwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg2YywgMHhiYiwgMHg3ZCwgMHhmYSwgCi0gICAgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHhiZSwgMHg3YiwgMHhiMCwgMHg3OCwgMHg0MSwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYiwgMHg1ZSwgMHhmNCwgMHg3ZiwgCi0gICAgMHhmZiwgMHhiZSwgMHg3YiwgMHhiMCwgMHg3OCwgMHgzNCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYywgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHhiZSwgMHg3YiwgCi0gICAgMHhiMCwgMHg3OCwgMHgyNywgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmZCwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHhiZSwgMHg3YiwgMHhiMCwgMHg3OCwgMHgxYSwgCi0gICAgMHgwYiwgMHhiMCwgMHhiZSwgMHhjNCwgMHhmZiwgMHhmZSwgMHg3OCwgMHg5MiwgMHgwZSwgMHhiNCwgMHhhNSwgMHhkZiwgMHg4YiwgMHg3ZSwgMHg2OCwgMHgyYywgCi0gICAgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHg3NywgMHhjYSwgMHg1YiwgMHhjYSwgMHg2YiwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgyZCwgMHg4ZiwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYSwgMHg0NywgMHgxMiwgMHgxOSwgMHhmYSwgMHg3ZSwgMHg2OCwgMHgyZCwgMHhkZSwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg2YywgMHg3NywgMHhkYSwgMHg2YiwgMHhjYSwgMHg2YiwgMHgwYiwgMHg3MCwgMHgwZSwgMHhjNCwgMHhiZSwgMHhjNCwgCi0gICAgMHhmZiwgMHhmZiwgMHg3OCwgMHhmNiwgMHgxYiwgMHg3MCwgMHgwYSwgMHg0NywgMHgxMiwgMHgxOSwgMHhmYSwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgCi0gICAgMHgzMCwgMHhkYSwgMHg2YiwgMHhkYSwgMHg1YiwgMHg2YywgMHhiYiwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwMCwgMHg3ZCwgMHhmYSwgMHg1ZSwgMHhmNCwgMHg3ZiwgCi0gICAgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg3ZCwgMHhmYiwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg3ZCwgMHhmYywgMHg1ZSwgCi0gICAgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg3ZCwgMHhmZCwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg4MCwgCi0gICAgMHhkNCwgMHg3ZSwgMHg2OCwgMHgyZCwgMHgxYiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgzMCwgMHgxZiwgMHgwZSwgMHg3ZSwgCi0gICAgMHg3OCwgMHgwNCwgMHgyMCwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg0NCwgMHg3YiwgMHhlMCwgMHg4MCwgMHgwYywgMHg3ZSwgMHg3OCwgMHgwMCwgCi0gICAgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMSwgMHg3ZSwgMHg0NCwgMHg4MCwgMHgwMCwgMHgwYiwgMHgwMCwgMHg3ZSwgMHg0MCwgMHgzYSwgMHg3YywgMHg1NCwgCi0gICAgMHg3ZiwgMHg1NywgMHg3ZCwgMHg4NCwgMHg2YywgMHg2NiwgMHg3YSwgMHg1YiwgMHg1MCwgMHgwYiwgMHg1YywgMHgwYiwgMHg1MCwgMHhhNSwgMHhkZSwgMHgwMiwgCi0gICAgMHgwYiwgMHg1MCwgMHgxYiwgMHg4NCwgMHg3OCwgMHhmMCwgMHg3YywgMHg1NCwgMHg3ZiwgMHg1NywgMHg3ZCwgMHg4NCwgMHg2YywgMHg2NiwgMHhiZSwgMHg1YiwgCi0gICAgMHg1MCwgMHg3OCwgMHgxYSwgMHgwYiwgMHg1YywgMHgwYiwgMHg1MCwgMHhhNSwgMHhkZSwgMHgwMiwgMHgwYiwgMHg1MCwgMHgxYiwgMHg4NCwgMHg3OCwgMHhlZSwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHg0YiwgMHg3ZiwgMHg0NSwgMHg3ZSwgCi0gICAgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgyZCwgMHg1ZiwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZCwgMHg0YiwgMHgxMiwgMHgxOSwgMHhmYSwgMHg3ZSwgMHg2OCwgMHgyZCwgMHg3NCwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg2YywgMHg4OCwgMHg3YywgMHg5NSwgMHgxMiwgMHgxOSwgMHhmYSwgMHg3ZSwgMHg2OCwgMHgyZCwgMHg4MiwgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg0YiwgMHg5MCwgMHgxMiwgMHgxOSwgMHhmYSwgMHgxMiwgMHgxOSwgMHgxOSwgCi0gICAgMHgzMCwgMHgxMSwgMHgwNSwgMHg3ZSwgMHg0YiwgMHg5MCwgMHg4MCwgMHhmYiwgMHg3ZSwgMHg2OCwgMHgyZSwgMHgyOCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgMHg3ZSwgMHhiMCwgMHg4MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHg3YSwgCi0gICAgMHhhMywgMHg5MSwgMHgxMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgwNywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxMCwgMHhiYywgMHhhYiwgMHg3OCwgMHgyMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhhYSwgMHg3YSwgMHhhMywgMHg5MSwgMHgxMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgwNywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxMCwgMHhiYywgMHhhYiwgCi0gICAgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgxYiwgMHg3ZSwgCi0gICAgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwYSwgCi0gICAgMHg3YSwgMHhhMywgMHg5MSwgMHgxMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxMCwgMHg4MCwgMHhmNiwgMHg3ZSwgMHg2OCwgMHgyZSwgMHg0YSwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxMiwgMHgzMSwgMHgwYiwgMHgwMCwgMHg3ZSwgMHhlNCwgMHgxMCwgMHgwMCwgMHg3ZSwgMHhhMCwgCi0gICAgMHhhNSwgMHhjYSwgMHhhOCwgMHg3YSwgMHhlOSwgMHhhMCwgMHg3ZSwgMHhiMCwgMHgzMCwgMHg3YSwgMHhiMywgMHg5NSwgMHgwMCwgMHg3ZSwgMHhlOSwgMHhhMCwgCi0gICAgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5NSwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgwYiwgMHhlNSwgMHg3ZSwgMHhiMCwgMHgyMCwgMHg3YSwgCi0gICAgMHhiMywgMHg5NSwgMHgwMCwgMHg3ZSwgMHhlOSwgMHhiMCwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5NSwgMHgwMCwgMHg3ZSwgMHhlOSwgMHhiMCwgCi0gICAgMHhkYSwgMHhhOCwgMHhiYywgMHhhYiwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgCi0gICAgMHhjNCwgMHg4MCwgMHgxZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgCi0gICAgMHgxOSwgMHgzMCwgMHgxMSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgzOCwgMHg3YSwgMHhiMywgMHg5NSwgMHgwMCwgMHg3ZSwgMHhlOSwgMHhiMCwgMHg4MCwgMHhmYiwgCi0gICAgMHg4MCwgMHgwMCwgMHg3ZSwgMHg2OCwgMHgyZCwgMHhlNCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgMHg3NSwgCi0gICAgMHhiMCwgMHhkZiwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHhiZSwgMHhiMCwgMHgwMSwgMHg3OCwgMHgwYiwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxNCwgMHhiZSwgMHhiMCwgMHg2MCwgMHg3OCwgMHgwMiwgMHg4MCwgMHgxNywgMHg3ZSwgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgxMSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHg4MCwgCi0gICAgMHhmYSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgyZSwgMHgwNiwgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwYiwgMHgwMCwgMHg3NSwgMHhiMCwgMHhlZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxYywgMHg3ZSwgMHhiMCwgMHgwMSwgMHgxOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgwOCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxYywgMHhiYywgMHhhYiwgMHg3OCwgMHgzNywgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHg1ZSwgMHhiMCwgMHhjMCwgCi0gICAgMHhiZSwgMHhiMCwgMHhjMCwgMHg3OCwgMHgyYiwgMHg3ZSwgMHhhMCwgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxYywgMHg2YywgMHhiYiwgMHgxOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgwOCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxYywgMHhiYywgMHhhYiwgMHg3OCwgMHgxNiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHg1ZSwgMHhiMCwgCi0gICAgMHhjMCwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhkYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgxYiwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhkZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgCi0gICAgMHgwYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxYywgMHgwOSwgMHhiMiwgMHgwMCwgMHgxYywgMHg4MCwgMHhmNiwgMHg3ZSwgMHg2OCwgMHgyZSwgMHg2YywgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgyZSwgMHhlZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgCi0gICAgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHg3ZSwgMHhiMCwgMHgwMSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgxYywgMHgyZSwgCi0gICAgMHgyNCwgMHgwMSwgMHgwMCwgMHgwYiwgMHhiMCwgMHhhNSwgMHhkOSwgMHhmMywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHg3ZSwgCi0gICAgMHhiMCwgMHgwMSwgMHgwYiwgMHgwMCwgMHgwOSwgMHhhMiwgMHgwMCwgMHgxYywgMHhiYywgMHhhYiwgMHg3OCwgMHgxNiwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHgwYiwgMHhiMCwgMHhhNSwgMHhkOSwgMHhlMiwgCi0gICAgMHg4MCwgMHgyNSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgCi0gICAgMHgzMCwgMHgxMSwgMHhlNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwOSwgMHhhMiwgMHgwMCwgMHgxYywgMHgyZSwgMHgyNCwgCi0gICAgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhmNSwgMHg4MCwgMHhlYywgMHg3ZSwgMHg2OCwgMHgyZiwgMHgxMiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgCi0gICAgMHgxOSwgMHhjNCwgMHgxMiwgMHgxMiwgMHgzMSwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg3NCwgMHgxMCwgCi0gICAgMHgxOSwgMHhiMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxMSwgMHhhYSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhlZSwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyZiwgMHgzNiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgCi0gICAgMHgwYiwgMHgwMCwgMHhlNCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxMSwgMHhhYSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgCi0gICAgMHhlZiwgMHgzMCwgMHgwMCwgMHgwMywgMHgwMiwgMHgxNywgMHgzYiwgMHgwMiwgMHgxMiwgMHg2YSwgMHg3NCwgMHgwNywgMHgxOSwgMHhiMiwgMHgwMCwgMHgwOCwgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxNCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxNCwgMHhjMiwgMHgxMywgMHg3ZSwgMHhiMCwgMHg1NSwgMHgxMiwgMHgxMiwgMHgwYiwgMHg3ZSwgMHhiMCwgMHhhYSwgMHgxMiwgMHgxMiwgCi0gICAgMHgwYiwgMHg3ZSwgMHhiMCwgMHgwMCwgMHgxMiwgMHgxMiwgMHgwYiwgMHg3ZSwgMHhiMCwgMHhmZiwgMHgxMiwgMHgxMiwgMHgwYiwgMHgzMCwgMHgxMywgMHgwZiwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgyMiwgMHg3ZSwgCi0gICAgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyMiwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgwOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHhiYywgMHhhYiwgMHg3OCwgMHgwMSwgMHgyMiwgMHgyMCwgMHgxMSwgMHgwMywgMHhkMiwgMHgxMywgCi0gICAgMHgyMiwgMHgxMiwgMHgxOSwgMHgxOSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHg4MCwgCi0gICAgMHhmMywgMHg3NSwgMHhiMCwgMHhkZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3NSwgMHhiMCwgMHhlZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3ZSwgMHgyNCwgMHg4MCwgCi0gICAgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHg3NCwgMHg4MCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwYywgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwMiwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgwNCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHg3NCwgMHgwMywgMHgxOSwgMHhiMiwgMHgwMCwgMHgwYywgMHg3NCwgMHgwNiwgMHgxOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgwOCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhkYiwgMHgyMiwgMHg3ZSwgMHg2OCwgMHgyZiwgMHg1YSwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgxMiwgMHgxOCwgCi0gICAgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNSwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgxYSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgCi0gICAgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwOSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg4MCwgMHhmNywgMHgyZSwgCi0gICAgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhiNiwgMHg3ZSwgMHg2OCwgMHgyZiwgMHg3ZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgCi0gICAgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgxOCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgCi0gICAgMHhiMCwgMHgwYSwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgCi0gICAgMHgxYSwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgCi0gICAgMHgxMSwgMHgwOSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg4MCwgMHhmNywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgCi0gICAgMHhkOSwgMHhiNiwgMHgzMCwgMHgwNCwgMHgwMywgMHgwMiwgMHgxNSwgMHg5ZiwgMHg3ZSwgMHg2OCwgMHgyZiwgMHhhMiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgCi0gICAgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwYSwgCi0gICAgMHg3OCwgMHgzYywgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgCi0gICAgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwYSwgMHg3OCwgMHgxNCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhlNiwgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgCi0gICAgMHgyZiwgMHhlYSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgCi0gICAgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNSwgMHg3OCwgMHgzYywgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgMHgwMiwgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNSwgMHg3OCwgMHgxNCwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgCi0gICAgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgCi0gICAgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhlNiwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgMHgzMCwgMHgzMiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg1MCwgMHhiZSwgMHhiMCwgMHg1MCwgMHg3OCwgMHgxZiwgMHg2YywgMHhhYSwgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg1MCwgMHg3OCwgMHgwZCwgCi0gICAgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgCi0gICAgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwZiwgMHg3ZSwgMHhhMCwgCi0gICAgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHgyZSwgMHgyNCwgMHgwMSwgCi0gICAgMHgwMCwgMHhhNSwgMHhkOSwgMHhhMiwgMHg3ZSwgMHg2OCwgMHgzMCwgMHg3YSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHhhMCwgMHhiZSwgMHhiMCwgMHhhMCwgCi0gICAgMHg3OCwgMHgxZiwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgCi0gICAgMHhiMCwgMHhhMCwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgCi0gICAgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgCi0gICAgMHgxMSwgMHgwZiwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgCi0gICAgMHhmMSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgMHg3ZSwgMHg2OCwgMHgzMCwgMHg5ZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgyMCwgMHhiMSwgMHgyNiwgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgzMCwgMHhiMSwgMHgxOSwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgyMCwgMHhiMSwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxOSwgMHhjNCwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgCi0gICAgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwZiwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhhZSwgMHgwMiwgMHgxNywgMHgzYiwgMHg3ZSwgCi0gICAgMHg2OCwgMHgyZiwgMHhjNiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgCi0gICAgMHgyMSwgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgCi0gICAgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNiwgMHg3OCwgMHgzYywgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgCi0gICAgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgCi0gICAgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNiwgMHg3OCwgCi0gICAgMHgxNCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgCi0gICAgMHhhNSwgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgCi0gICAgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhlNiwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgMHgzMCwgMHgwZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgCi0gICAgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwOSwgMHg3OCwgMHgzYywgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMywgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwOSwgMHg3OCwgMHgxNCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgCi0gICAgMHgxOSwgMHhjNCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhlNiwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgMHgzMCwgMHg1NiwgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg5MCwgCi0gICAgMHhiZSwgMHhiMCwgMHg5MCwgMHg3OCwgMHgxZiwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg5MCwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhlNywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgCi0gICAgMHgxOSwgMHhjNCwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgyYywgMHhmMCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgxMiwgCi0gICAgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgwZiwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhhMiwgMHgyMCwgMHgxZiwgMHg2OCwgMHgxMiwgMHgxMiwgCi0gICAgMHgzMSwgMHgxMiwgMHgxNywgMHhhOSwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgMHgwYiwgMHgwMCwgMHgyMCwgMHg4OSwgMHgyNiwgCi0gICAgMHg3ZSwgMHhhMCwgMHhmZiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3ZSwgMHhiMCwgMHg1NSwgMHgxOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgzMCwgMHg4OSwgMHgwZiwgMHg3ZSwgMHhhMCwgMHgwMCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOCwgCi0gICAgMHhmZiwgMHgyMCwgMHg4OSwgMHgwMiwgMHg4MCwgMHgyNiwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHgyMCwgMHg3ZSwgMHhhMCwgMHhmZiwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3ZSwgMHhiMCwgMHg1NSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOCwgMHhmZiwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOCwgMHhmZiwgMHg4MCwgMHhlMCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgCi0gICAgMHhhNSwgMHhkOSwgMHhhOCwgMHgwMiwgMHgxNywgMHhjMiwgMHgwMiwgMHgxOCwgMHg0YywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyMSwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwOCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOCwgMHhmZiwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgCi0gICAgMHhlZiwgMHgyMiwgMHgzMCwgMHgxZiwgMHgwMywgMHgwMiwgMHgxOCwgMHg0YywgMHhjMiwgMHg4YSwgMHgxMiwgMHgxNywgMHhhOSwgMHgwYiwgMHgwMCwgMHgxMiwgCi0gICAgMHgxOCwgMHgxNiwgMHgyMCwgMHg4YiwgMHgyNCwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgCi0gICAgMHgwNywgMHg3NCwgMHgwYywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHgxMiwgMHgxOSwgMHgwYywgCi0gICAgMHgzMCwgMHg4YiwgMHgwNiwgMHgxMiwgMHgxOCwgMHgxNiwgMHgzMCwgMHg4YiwgMHhhZCwgMHgxMiwgMHgxOSwgMHgxOSwgMHgzMCwgMHgxMSwgMHhhNywgMHgxMiwgCi0gICAgMHgxOCwgMHgxNiwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHgxMiwgMHgxOSwgCi0gICAgMHgwYywgMHgxMiwgMHgxOCwgMHgxNiwgMHg4MCwgMHhlOSwgMHg3ZSwgMHhhMCwgMHgwMCwgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3YSwgCi0gICAgMHhhMywgMHg5MSwgMHgwNywgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3YSwgMHhhMywgMHg5MSwgMHgwNywgMHgxMiwgMHgxOCwgMHhmZiwgCi0gICAgMHg3NCwgMHhlZiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHg3NCwgMHg4MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMywgMHg3NCwgMHgwYywgMHg3YSwgMHhiMywgCi0gICAgMHg5MSwgMHgwNiwgMHg3NCwgMHgwOCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHgxMiwgMHgxOSwgMHgwYywgMHgyMiwgMHgzMCwgMHgxMiwgMHgxOSwgMHg3ZSwgCi0gICAgMHg2OCwgMHgzMCwgMHhjMiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHhkMiwgMHgxMSwgMHgxMiwgMHgxOCwgMHhmZiwgMHgxMiwgCi0gICAgMHgxOCwgMHhmZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHgwMiwgMHgwYywgMHhjYSwgMHgzMCwgMHgxZiwgMHgxYywgMHg3ZSwgMHg2OCwgMHgzMSwgMHgzYywgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHg3ZSwgMHg2OCwgMHgzMSwgMHg1ZSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgCi0gICAgMHhjNCwgMHgxMiwgMHgxYSwgMHg2ZSwgMHgwMiwgMHgxOCwgMHhmNywgMHgwYiwgMHgwMCwgMHg3ZSwgMHg3OCwgMHgxOCwgMHhiMSwgMHg3YSwgMHg3YywgMHgwMCwgCi0gICAgMHhmZiwgMHg3ZiwgMHg2NywgMHg3YSwgMHg2YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg3MCwgMHgzZSwgMHg3ZSwgMHg3YiwgMHhiMCwgMHg3YSwgMHg2YiwgMHhiMCwgCi0gICAgMHgwYiwgMHg3YywgMHgwYiwgMHg2YywgMHhhNSwgMHhkZiwgMHhmMywgMHg3ZSwgMHg3OCwgMHgxOCwgMHhiMSwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg4OSwgCi0gICAgMHg3OCwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHhmZSwgMHg3ZSwgMHg2OCwgMHg3ZiwgMHhiZiwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHhmZSwgMHg3NCwgMHhhYSwgMHgzOSwgMHhiNywgMHg1NSwgMHg1NSwgMHg3NCwgMHg1NSwgMHgzOSwgMHhiNywgMHgyYSwgMHhhYSwgMHg3NCwgMHhhMCwgMHgzOSwgCi0gICAgMHhiNywgMHg1NSwgMHg1NSwgMHg2YywgMHg5OSwgMHg3YSwgMHg2YiwgMHg5MCwgMHg3ZSwgMHg1NCwgMHgyNywgMHgxMCwgMHg3ZSwgMHg2YiwgMHg4MCwgMHhiYywgCi0gICAgMHg4OSwgMHg2OCwgMHgwOCwgMHgxYiwgMHg1NCwgMHg3OCwgMHhmNSwgMHg4YSwgMHhmZiwgMHgxOCwgMHhlZiwgMHg4YSwgMHhmZiwgMHgxOCwgMHhmNywgMHgxMiwgCi0gICAgMHgxOSwgMHgxOSwgMHg3ZSwgMHg2YiwgMHg4MCwgMHg4MCwgMHhmYiwgMHg3ZSwgMHgxMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhhYywgMHg4MCwgMHhmOCwgMHhjYSwgCi0gICAgMHhmOSwgMHg3ZSwgMHhmNCwgMHgwMCwgMHhmZiwgMHgxYiwgMHhmNCwgMHg3OCwgMHhmYywgMHhkYSwgMHhmOSwgMHgyMiwgMHhjYSwgMHhmOSwgMHg3ZSwgMHhmNCwgCi0gICAgMHgwMCwgMHgwMCwgMHgxYiwgMHhmNCwgMHg3OCwgMHhmYywgMHhkYSwgMHhmOSwgMHgyMiwgMHgyMCwgMHgxMSwgMHgyMCwgMHhkMiwgMHgxMiwgMHgxMiwgMHgxOSwgCi0gICAgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgCi0gICAgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgyMiwgMHhjYSwgMHgwYiwgMHg3ZSwgMHgxMCwgCi0gICAgMHgwMywgMHg3YywgMHgzMCwgMHg2YywgMHgyMiwgMHgwYiwgMHgyMCwgMHg5ZSwgMHgzMCwgMHgwYSwgMHg1MCwgMHhmOSwgMHgyZSwgMHgzMCwgMHgwYiwgMHgxYiwgCi0gICAgMHgyMCwgMHg2OCwgMHgyMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgCi0gICAgMHhhNSwgMHhkYSwgMHhlMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgMHgxYiwgMHgzMCwgMHg2OCwgMHgyMCwgMHgxMiwgMHgxOSwgMHgwYywgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHgxMiwgMHgxOSwgMHgwYywgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHhhNSwgMHhkYiwgMHhlMCwgMHg3ZSwgMHgyMCwgMHgwYSwgCi0gICAgMHgxMiwgMHgxOSwgMHgwYywgMHhhNSwgMHhkYSwgMHhmYSwgMHhhNSwgMHhkOSwgMHg5OCwgMHhkYSwgMHgwYiwgMHgyMiwgMHgyMCwgMHgxMSwgMHgxNCwgMHgxMiwgCi0gICAgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHgxMiwgMHgxOSwgMHgwYywgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MCwgMHgwMCwgMHgyMiwgMHgzMCwgMHgxZiwgMHgzMiwgMHgyMCwgMHgxMSwgMHgyZiwgMHhjYSwgMHgyYiwgMHhjYSwgMHg3YiwgMHg3ZSwgMHg3OCwgCi0gICAgMHg4MCwgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHhmZSwgMHgxMiwgMHgxYSwgMHg0ZCwgMHg3ZSwgMHg2YiwgMHhhMCwgMHg1YywgMHhhYSwgMHg2OCwgMHgxMCwgCi0gICAgMHgyOSwgMHhiNywgMHgwMCwgMHgxNCwgMHg1NCwgMHg2MCwgMHg2OCwgMHhmOCwgMHgzOSwgMHhhNywgMHgwMCwgMHgwMCwgMHgwYiwgMHg2YywgMHg4MCwgMHhlOSwgCi0gICAgMHgxMiwgMHgxOCwgMHhmZiwgMHhkMiwgMHhiNSwgMHhkYSwgMHg3YiwgMHhkYSwgMHgyYiwgMHgyMiwgMHgxMiwgMHgxYSwgMHgwNSwgMHg3ZSwgMHg2OCwgMHgwMCwgCi0gICAgMHgwYywgMHgxMiwgMHgxOSwgMHhjNCwgMHgyMiwgMHhjYSwgMHg1OSwgMHhjYSwgMHg1YiwgMHg3ZSwgMHhiNCwgMHgwMCwgMHgwYywgMHg3YywgMHhiOCwgMHhjNCwgCi0gICAgMHgxMiwgMHgxYSwgMHgzNSwgMHg3YywgMHhiOCwgMHgxMiwgMHgxYSwgMHgzNSwgMHg3YywgMHhiOSwgMHhjNCwgMHgxMiwgMHgxYSwgMHgzNSwgMHg3YywgMHhiOSwgCi0gICAgMHgxMiwgMHgxYSwgMHgzNSwgMHg3ZSwgMHhiMCwgMHg2OCwgMHg3YSwgMHhiOSwgMHhiMCwgMHgwYiwgMHhiNCwgMHg2YywgMHhiYiwgMHg3YSwgMHhiOSwgMHhiMCwgCi0gICAgMHhkYSwgMHg1OSwgMHhkYSwgMHg1YiwgMHgyMiwgMHg1ZSwgMHhiMCwgMHgwZiwgMHg3YywgMHhhYiwgMHg5ZSwgMHhhMCwgMHgwYSwgMHg0MCwgMHgwNSwgMHgyZSwgCi0gICAgMHhiMCwgMHgzNywgMHg4MCwgMHgwMywgMHgyZSwgMHhiMCwgMHgzMCwgMHg3YSwgMHhiOSwgMHhiMCwgMHgwYiwgMHhiNCwgMHgyMiwgMHhjMiwgMHhiNSwgMHg3NSwgCi0gICAgMHhiMCwgMHhlZiwgMHgxMiwgMHgxOCwgMHhmZiwgMHg3NCwgMHg4MCwgMHgzOSwgMHhiNywgMHgwMCwgMHgwYywgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwNiwgMHgzOSwgCi0gICAgMHhhNywgMHgwMCwgMHgwNCwgMHgzOSwgMHhiNywgMHgwMCwgMHgwMCwgMHg3NCwgMHgwMywgMHgzOSwgMHhiNywgMHgwMCwgMHgwYywgMHgyMiwgMHg3ZSwgMHg3OCwgCi0gICAgMHgwMCwgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHhmZiwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHgwMSwgMHg3ZiwgMHg2NSwgCi0gICAgMHg3ZSwgMHg3NCwgMHgyMCwgMHgwMCwgMHgxMiwgMHgwYiwgMHg2MywgMHg0MCwgMHg1OCwgMHg3ZSwgMHg3OCwgMHg3YywgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgCi0gICAgMHhmZiwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHgwMSwgMHg3ZSwgMHg2OCwgMHg3YywgMHgwMCwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHgwMSwgMHg3ZSwgMHg3NCwgMHgwNCwgMHgwMCwgMHgxMiwgMHgwYiwgMHg2MywgMHg0MCwgMHgzNywgMHg3NCwgMHg4MCwgMHgxMiwgMHgxYSwgMHhlYSwgMHg0MCwgCi0gICAgMHgzMCwgMHg3ZSwgMHgwMCwgMHgwMywgMHg3YSwgMHgwMywgMHg5MCwgMHgwMCwgMHhkMiwgMHgxMCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwOCwgMHg3ZSwgMHgxNCwgCi0gICAgMHgwMCwgMHgwMCwgMHg4NCwgMHhhNSwgMHhkYiwgMHhmYywgMHhhNSwgMHhkYSwgMHhmOSwgMHhhNSwgMHhkOSwgMHhmNiwgMHg3NCwgMHg0MCwgMHgxMiwgMHgxYSwgCi0gICAgMHhlYSwgMHg0MCwgMHgwZSwgMHg3ZSwgMHg2OCwgMHgzMSwgMHg4ZCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxOSwgMHhjNCwgMHgwMiwgMHgxOCwgCi0gICAgMHhmNywgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MCwgMHgwMCwgMHg4MCwgMHhmZSwgMHhmNSwgMHgwYiwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwYiwgCi0gICAgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg2OCwgMHg3ZiwgMHhiZiwgMHg3YSwgMHg2YywgMHgwMCwgMHgwMSwgMHg3ZSwgMHg3NCwgMHgwMCwgMHgwMSwgCi0gICAgMHgwMiwgMHgwYiwgMHg2MywgCi0KLS8vIFNlZ21lbnQgIzE5LCBFWENMVURFRCBTdGFydCBBZGRyZXNzIDAwZmYyYzY2LCBMZW5ndGggMTM5MwotCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIElNQUdFX1ZFUlNJT05fTkFNRSA9IHsKLQkyLCAwLCAzIH07CQkvLyBNYWpvciwgTWlub3IsIEJ1aWxkCi0KLSN1bmRlZiBJTUFHRV9WRVJTSU9OX05BTUUKLQotI3VuZGVmIElNQUdFX0FSUkFZX05BTUUKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24uaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19kb3duLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNjFkODAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24uaAorKysgL2Rldi9udWxsCkBAIC0xLDEyMjkgKzAsMCBAQAotLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCi0vLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2Ci0vLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLS8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0vLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLQotCi0vL0ltYWdlIHN0cnVjdHVyZSBkZWZpbml0aW9uCi0jaWYgIWRlZmluZWQoREVGSU5FRF9FREdFX0ZJUk1XQVJFX0lNQUdFX1JFQ09SRCkKLQkjZGVmaW5lIERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQKLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgewotCQlfX2xlMTYgRXh0QWRkcjsKLQkJX19sZTE2IEFkZHI7Ci0JCV9fbGUxNiBMZW47Ci0JCXVuc2lnbmVkIGNoYXIJRGF0YVswXTsKLQl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKLQotCXN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyB7Ci0JCXVuc2lnbmVkIGNoYXIJTWFqb3JWZXJzaW9uOwotCQl1bnNpZ25lZCBjaGFyCU1pbm9yVmVyc2lvbjsKLQkJdW5zaWduZWQgc2hvcnQJQnVpbGROdW1iZXI7Ci0JfTsKLQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChJTUFHRV9BUlJBWV9OQU1FKQotCSNkZWZpbmUgSU1BR0VfQVJSQVlfTkFNRQlGaXJtd2FyZUltYWdlCi0JI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJRmlybXdhcmVJbWFnZVZlcnNpb24KLSNlbmRpZgotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBJTUFHRV9BUlJBWV9OQU1FW10gPSB7Ci0KLS8vIFNlZ21lbnQgIzEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMDAsIExlbmd0aCA2Ci0weGZmLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDgwLCAweDAyLCAweDQ0LCAweGIwLCAKLQotLy8gU2VnbWVudCAjMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDBiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4NDQsIDB4NzIsIAotCi0vLyBTZWdtZW50ICMzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDEzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgxMywgCi0KLS8vIFNlZ21lbnQgIzQsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMWIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgxYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDFiLCAKLQotLy8gU2VnbWVudCAjNSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDIzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MjMsIAotCi0vLyBTZWdtZW50ICM2LCBTdGFydCBBZGRyZXNzIDAwZmYwMDJiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MmIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgyYiwgCi0KLS8vIFNlZ21lbnQgIzcsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMzMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgzMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDMzLCAKLQotLy8gU2VnbWVudCAjOCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAzYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDNiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4M2IsIAotCi0vLyBTZWdtZW50ICM5LCBTdGFydCBBZGRyZXNzIDAwZmYwMDQzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NDMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg0MywgCi0KLS8vIFNlZ21lbnQgIzEwLCBTdGFydCBBZGRyZXNzIDAwZmYwMDRiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NGIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHg2ZSwgMHhjNCwgCi0KLS8vIFNlZ21lbnQgIzExLCBTdGFydCBBZGRyZXNzIDAwZmYwMDUzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHg3NSwgMHg4ZCwgCi0KLS8vIFNlZ21lbnQgIzEyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDdiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4N2IsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg3YiwgCi0KLS8vIFNlZ21lbnQgIzEzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDgwLCBMZW5ndGggNwotMHhmZiwweDAwLDB4ODAsMHgwMCwweDA3LDB4MDAsCi0gICAgMHg3ZSwgMHgxNCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg0MCwgMHg1MSwgCi0KLS8vIFNlZ21lbnQgIzE0LCBTdGFydCBBZGRyZXNzIDAwZmYzMDAwLCBMZW5ndGggMjE3OAotMHhmZiwweDAwLDB4MDAsMHgzMCwweDgyLDB4MDgsCi0gICAgMHgxMiwgMHgzNywgMHgyOCwgMHgxMiwgMHgzMCwgMHgzZSwgMHgxMiwgMHgzMCwgMHg1NCwgMHgxMiwgMHgzMCwgMHhlNSwgMHgxMiwgMHgzMSwgMHg2OCwgMHgxMiwgCi0gICAgMHgzNSwgMHgyMCwgMHgxMiwgMHgzOCwgMHg1OCwgMHgxMiwgMHgzMSwgMHgxNSwgMHgxMiwgMHgzMSwgMHg0MCwgMHgxMiwgMHgzMCwgMHhhMCwgMHg4MCwgMHhlMCwgCi0gICAgMHhlNSwgMHgyMywgMHg2MCwgMHgxOSwgMHg3ZSwgMHgxNCwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMSwgMHgwMSwgMHhjZiwgMHhiNCwgMHgwMCwgMHgwMiwgMHg4MCwgCi0gICAgMHgwNSwgMHgxNCwgMHgxOSwgMHhiMSwgMHgwMSwgMHhjZiwgMHhhNSwgMHgwYiwgMHhiZSwgMHgzMSwgMHgyZiwgMHg3OCwgMHhlYiwgMHgyMiwgMHhjMiwgMHhhZiwgCi0gICAgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMSwgMHhiNCwgMHgwMSwgMHgwYSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMiwgMHgxMiwgMHg3MCwgMHhlZiwgMHhkMCwgCi0gICAgMHhmMSwgMHhkMiwgMHhhZiwgMHgyMiwgMHhjMiwgMHhhZiwgMHhlNSwgMHgyMiwgMHg2MCwgMHg0MywgMHg3ZSwgMHgwNywgMHgwMSwgMHhlMSwgMHhiZSwgMHgwNCwgCi0gICAgMHgwMywgMHg4MCwgMHgzOCwgMHgzOSwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgMHgyMSwgMHgwOSwgMHhhMCwgCi0gICAgMHgwMCwgMHgwNCwgMHg0ZSwgMHhhMCwgMHgwNSwgMHgxOSwgMHhhMCwgMHgwMCwgMHgwNCwgMHgwYSwgMHgzMiwgMHgwOSwgMHg1MywgMHg2NywgMHg4ZSwgMHg1ZSwgCi0gICAgMHg1MSwgMHgyNywgMHg2OCwgMHgwYiwgMHgwOSwgMHhhMCwgMHgwMCwgMHgxMCwgMHg0ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMCwgMHgwMCwgMHgxMCwgMHgyZSwgCi0gICAgMHgwNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhkMSwgMHg3NSwgMHgyMiwgMHgwMCwgMHhkMiwgMHhhZiwgMHgyMiwgCi0gICAgMHhjMiwgMHhhZiwgMHg3ZSwgMHgyMCwgMHgwMCwgMHg3ZSwgMHgzMCwgMHgwMSwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgyYiwgMHg0OSwgMHgzMiwgMHgwMSwgCi0gICAgMHg4ZiwgMHhiZSwgMHgzNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhiMSwgMHgyMSwgMHhhNSwgMHg0YiwgMHg3YSwgMHhiMSwgMHgyMSwgMHhjYSwgCi0gICAgMHgxOSwgMHg0OSwgMHgyMiwgMHgzMCwgMHhkNSwgMHg5OSwgMHgyNCwgMHhkYSwgMHgxOSwgMHgzZSwgMHgzMCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgCi0gICAgMHg3OCwgMHhkNiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg0NiwgMHgwZiwgMHg0OSwgMHg2NywgMHg0YywgMHhiZiwgMHg1MCwgMHgxNywgMHg1MywgMHg2ZiwgMHg1NiwgCi0gICAgMHhjNywgMHg1YSwgMHgxZiwgMHg1ZCwgMHg3NywgMHhjMiwgMHhhZiwgMHhlNSwgMHgzMiwgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgCi0gICAgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgMHgwMiwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhlZiwgMHhkMiwgCi0gICAgMHhhZiwgMHgyMiwgMHhjYSwgMHgyOCwgMHgxMiwgMHg2NywgMHhhYiwgMHhkYSwgMHgyOCwgMHg0MCwgMHgwOSwgMHgwYSwgMHgyMiwgMHgwOSwgMHhiMiwgMHg2NywgCi0gICAgMHg4ZSwgMHhmNCwgMHg1MiwgMHgzMiwgMHgyMiwgMHhjMiwgMHhhZiwgMHhlNSwgMHgzNCwgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgCi0gICAgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgMHgzMiwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhlZiwgMHhkMiwgCi0gICAgMHhhZiwgMHgyMiwgMHhjYSwgMHgyOCwgMHgwYSwgMHgyMiwgMHgwOSwgMHg0MiwgMHgwMCwgMHgzZSwgMHgxMiwgMHg2OSwgMHhjMiwgMHhkYSwgMHgyOCwgMHgyMiwgCi0gICAgMHhjMiwgMHhhZiwgMHhlNSwgMHgzNSwgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgCi0gICAgMHg1ZCwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHhjYSwgMHgyOCwgMHg3ZSwgCi0gICAgMHg0MCwgMHgwMCwgMHgxMiwgMHg2YywgMHg1YiwgMHhkYSwgMHgyOCwgMHgyMiwgMHhjMiwgMHhhZiwgMHhlNSwgMHgyMywgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgCi0gICAgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgMHg4NSwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgCi0gICAgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgyYiwgMHg0OSwgMHgyMiwgMHgzMSwgMHg5MCwgMHg4OSwgMHgyNCwgCi0gICAgMHgzMSwgMHhhMCwgMHgzMiwgMHgxMCwgMHgzMiwgMHg4MCwgMHgzMiwgMHhmMCwgMHgzMywgMHg2MCwgMHgzMywgMHhkMCwgMHgzNCwgMHg0MCwgMHgzNCwgMHhiMCwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg4ZiwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg0OSwgMHgzMCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHg5ZiwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg5ZiwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhjZiwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhjZiwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxOCwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhjZiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5MSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MSwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg0YywgMHg4OCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhMSwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhMSwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkMCwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkMCwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxOSwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMCwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5MywgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MiwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg0ZiwgMHhlMCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhMywgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhMywgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkMSwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkMSwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxYSwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5NSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MywgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1MywgMHgzOCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhNSwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhNSwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkMiwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkMiwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxYiwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5NywgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NCwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1NiwgMHg5MCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhNywgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhNywgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkMywgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkMywgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxYywgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMywgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5OSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NSwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1OSwgMHhlOCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhOSwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhOSwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkNCwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkNCwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxZCwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkNCwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5YiwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NiwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1ZCwgMHg0MCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhYiwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhYiwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkNSwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkNSwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxZSwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkNSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg5ZCwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NywgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg2MCwgMHg5OCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHhhZCwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHhhZCwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhkNiwgMHg4MCwgCi0gICAgMHgyZSwgMHg3ZSwgMHg2MywgMHgwMSwgMHhkNiwgMHhhNSwgMHhiZSwgMHgwMCwgMHgyNiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxOCwgMHg3NSwgMHgzMSwgMHhiMywgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgxZiwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkNiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHhjMiwgMHhhZiwgMHhlNSwgMHgyNCwgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzNSwgCi0gICAgMHgzZCwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgCi0gICAgMHgwYSwgMHgyYiwgMHg0OSwgMHgyMiwgMHgzNSwgMHg0OCwgMHg4OSwgMHgyNCwgMHgzNSwgMHg1OCwgMHgzNSwgMHg5MiwgMHgzNSwgMHhjYywgMHgzNiwgMHgwNiwgCi0gICAgMHgzNiwgMHg0MCwgMHgzNiwgMHg3YSwgMHgzNiwgMHhiNCwgMHgzNiwgMHhlZSwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgCi0gICAgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0OSwgMHgzMCwgCi0gICAgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgCi0gICAgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyMCwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgCi0gICAgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MSwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgCi0gICAgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0YywgMHg4OCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgCi0gICAgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgCi0gICAgMHgyMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MiwgMHgwMCwgCi0gICAgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgCi0gICAgMHgxMiwgMHgxMiwgMHg0ZiwgMHhlMCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgCi0gICAgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyMiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgCi0gICAgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MywgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgCi0gICAgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1MywgMHgzOCwgMHg3ZCwgMHgyMSwgCi0gICAgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyMywgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNCwgMHg4NCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgCi0gICAgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1NiwgMHg5MCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgCi0gICAgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyNCwgMHhjMCwgCi0gICAgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NSwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg1OSwgMHhlOCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgCi0gICAgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyNSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgCi0gICAgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NiwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgCi0gICAgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1ZCwgMHg0MCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgCi0gICAgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHhjMiwgMHgyNiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgCi0gICAgMHg4NywgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgCi0gICAgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg2MCwgMHg5OCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHg1ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgMHg5MCwgCi0gICAgMHgxMiwgMHg2MiwgMHg5MywgMHg0MCwgMHgxMiwgMHg3NSwgMHgzMSwgMHhiOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMiwgMHgyNywgMHhjMCwgMHhmMSwgMHg3NSwgCi0gICAgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHhjMiwgMHhhZiwgMHhlNSwgMHgzMywgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgCi0gICAgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzNywgMHg0NSwgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZiwgCi0gICAgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgyYiwgMHg0OSwgMHgyMiwgMHgzNywgMHg1MCwgMHg4OSwgMHgyNCwgCi0gICAgMHgzNywgMHg2MCwgMHgzNywgMHg3ZiwgMHgzNywgMHg5ZSwgMHgzNywgMHhiZCwgMHgzNywgMHhkYywgMHgzNywgMHhmYiwgMHgzOCwgMHgxYSwgMHgzOCwgMHgzOSwgCi0gICAgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0OCwgMHgxYiwgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgCi0gICAgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MSwgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0YiwgMHg3MywgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgCi0gICAgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgCi0gICAgMHg4MiwgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0ZSwgMHhjYiwgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgCi0gICAgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MywgCi0gICAgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1MiwgMHgyMywgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgCi0gICAgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NCwgMHgwMCwgCi0gICAgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1NSwgMHg3YiwgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgCi0gICAgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NSwgMHgwMCwgMHhjYSwgCi0gICAgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1OCwgMHhkMywgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgCi0gICAgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NiwgMHgwMCwgMHhjYSwgMHgxOSwgCi0gICAgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1YywgMHgyYiwgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgCi0gICAgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4NywgMHgwMCwgMHhjYSwgMHgxOSwgMHg3ZCwgCi0gICAgMHgxMiwgMHgxMiwgMHg1ZiwgMHg4MywgMHhkYSwgMHgxOSwgMHgxMCwgMHgwNCwgMHgwMiwgMHg4MCwgMHgwYywgMHhkMiwgMHgwMSwgMHhjMCwgMHhmMSwgMHg3NSwgCi0gICAgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHhjMiwgMHhhZiwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHhhOSwgCi0gICAgMHgzMiwgMHhmMiwgMHgxYSwgMHg3ZSwgMHgwNywgMHgwMSwgMHhlMSwgMHhiZSwgMHgwNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgxMCwgMHhlNSwgMHhmNSwgMHgzMywgCi0gICAgMHg4MiwgMHhlNywgMHg0MCwgMHgwOSwgMHg4NSwgMHgzMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHhmNiwgMHgwMCwgMHhkMCwgMHhmMSwgMHhkMiwgCi0gICAgMHhhZiwgMHgyMiwgCi0KLS8vIFNlZ21lbnQgIzE1LCBTdGFydCBBZGRyZXNzIDAwZmY0MDAwLCBMZW5ndGggMTUzODEKLTB4ZmYsMHgwMCwweDAwLDB4NDAsMHgxNSwweDNjLAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTQsIDB4N2YsIDB4ZjgsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2QsIDB4MzEsIDB4MGIsIDB4MWEsIAotICAgIDB4NTAsIDB4MWIsIDB4MGEsIDB4NTAsIDB4N2UsIDB4MTQsIDB4NDAsIDB4MWIsIDB4MDIsIDB4NDAsIDB4NmEsIDB4N2UsIDB4ZjgsIDB4MDAsIDB4NmYsIDB4ZDIsIAotICAgIDB4MDQsIDB4YzIsIDB4OTQsIDB4ZDIsIDB4OTUsIDB4N2UsIDB4ZjQsIDB4NDAsIDB4MmMsIDB4MDIsIDB4NDAsIDB4N2MsIDB4MTIsIDB4N2QsIDB4MzAsIDB4ZjUsIAotICAgIDB4MmYsIDB4N2EsIDB4YTEsIDB4MzAsIDB4N2EsIDB4MTEsIDB4NmUsIDB4MTIsIDB4NzUsIDB4Y2EsIDB4MTIsIDB4NDAsIDB4ZGMsIDB4N2UsIDB4YjMsIDB4M2YsIAotICAgIDB4ZjEsIDB4NjAsIDB4MDMsIDB4MTIsIDB4NDMsIDB4ZDQsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIDB4NmYsIDB4ZDIsIDB4YWYsIDB4MDIsIDB4MzAsIAotICAgIDB4MDAsIDB4N2UsIDB4MDQsIDB4MDAsIDB4ZmYsIDB4N2UsIDB4MTgsIDB4NDAsIDB4NWYsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDEsIDB4ODksIDB4MTgsIDB4YTksIAotICAgIDB4MjUsIDB4ODcsIDB4MDMsIDB4YTksIDB4ZDUsIDB4ODcsIDB4ZDIsIDB4OTMsIDB4ODksIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDAsIDB4ZmYsIDB4N2UsIDB4MTgsIAotICAgIDB4NDAsIDB4NzgsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDEsIDB4ODksIDB4MTgsIDB4YzIsIDB4OTMsIDB4ODksIDB4MDgsIDB4N2UsIDB4MDgsIDB4MDAsIDB4MjAsIAotICAgIDB4N2UsIDB4NDQsIDB4MDQsIDB4MDAsIDB4N2UsIDB4NDAsIDB4MDAsIDB4N2UsIDB4ZTQsIDB4NDAsIDB4OGUsIDB4MDIsIDB4N2MsIDB4MzAsIDB4N2UsIDB4MDgsIAotICAgIDB4MDEsIDB4NmYsIDB4N2UsIDB4NDQsIDB4MjgsIDB4N2MsIDB4N2UsIDB4NDAsIDB4MDAsIDB4N2UsIDB4ZTQsIDB4NDAsIDB4YTAsIDB4MDIsIDB4N2MsIDB4MzAsIAotICAgIDB4N2UsIDB4MDgsIDB4MDAsIDB4NmYsIDB4N2UsIDB4NDQsIDB4MDEsIDB4MDAsIDB4N2UsIDB4NDAsIDB4NTMsIDB4N2UsIDB4ZTQsIDB4NDAsIDB4YjIsIDB4MDIsIAotICAgIDB4N2MsIDB4MzAsIDB4NzUsIDB4NmQsIDB4MjAsIDB4NzUsIDB4NmMsIDB4MzAsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDgsIDB4NzUsIDB4NmEsIDB4NTgsIDB4NzUsIAotICAgIDB4NmIsIDB4MDgsIDB4NzUsIDB4NjcsIDB4MDgsIDB4NzUsIDB4NjksIDB4MDEsIDB4NzUsIDB4ODksIDB4MDEsIDB4NzUsIDB4OGEsIDB4MDEsIDB4NzUsIDB4OGMsIAotICAgIDB4MDAsIDB4ZDIsIDB4OGMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDIsIDB4N2EsIDB4MDUsIDB4NTgsIDB4ODksIDB4ZjQsIDB4NzUsIDB4YjcsIDB4N2YsIDB4NzUsIAotICAgIDB4YjgsIDB4N2YsIDB4NzUsIDB4YjMsIDB4MDcsIDB4NzUsIDB4YjIsIDB4MDcsIDB4ZDIsIDB4YTksIDB4MjIsIDB4ZDIsIDB4OTIsIDB4ZTQsIDB4ZDUsIDB4ZTAsIAotICAgIDB4ZmQsIDB4YzIsIDB4OTIsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MmYsIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIDB4MDAsIAotICAgIDB4MTAsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZjIsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTIsIDB4NDEsIDB4N2UsIDB4MGIsIDB4MjAsIAotICAgIDB4YmUsIDB4MjEsIDB4MmYsIDB4NzgsIDB4ZjYsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIAotICAgIDB4MDAsIDB4MGMsIDB4NzQsIDB4MTAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4NzQsIDB4ODAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4N2UsIDB4NTQsIAotICAgIDB4MDAsIDB4MDIsIDB4MTksIDB4YTAsIDB4MDAsIDB4MDQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIAotICAgIDB4NzQsIDB4MDcsIDB4YTksIDB4MjAsIDB4MzAsIDB4MGIsIDB4YTksIDB4MzUsIDB4MzAsIDB4MDUsIDB4YmUsIDB4MjAsIDB4MDEsIDB4MjgsIDB4MDIsIDB4NzQsIAotICAgIDB4MGYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4YTksIDB4MzMsIDB4MzAsIDB4MTgsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4NzQsIAotICAgIDB4MjgsIDB4YTksIDB4MjAsIDB4MzAsIDB4MDIsIDB4NzQsIDB4MjAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NzQsIDB4MDMsIDB4MTksIDB4YjAsIDB4MDAsIAotICAgIDB4MGMsIDB4NzQsIDB4YTcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4NzQsIDB4MGMsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4MjIsIDB4N2UsIDB4MDQsIAotICAgIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4ZTQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MDksIDB4YjAsIDB4MDAsIDB4MTAsIDB4NTQsIDB4MDgsIDB4MTksIAotICAgIDB4YjAsIDB4MDAsIDB4MTAsIDB4NzQsIDB4YTcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIAotICAgIDB4MjIsIDB4NDEsIDB4YTUsIDB4ODksIDB4MjQsIDB4NDEsIDB4YjUsIDB4NDEsIDB4ZDQsIDB4NDEsIDB4ZjMsIDB4NDIsIDB4MTIsIDB4NDIsIDB4MzEsIDB4NDIsIAotICAgIDB4NTAsIDB4NDIsIDB4NmYsIDB4NDIsIDB4OGUsIDB4YzIsIDB4MTAsIDB4YzIsIDB4MTgsIDB4YzIsIDB4MjAsIDB4YzIsIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDksIAotICAgIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NmYsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2YsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OGYsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4OWYsIDB4MjIsIDB4YzIsIDB4MTEsIDB4YzIsIDB4MTksIDB4YzIsIDB4MjEsIDB4YzIsIDB4MDksIDB4N2UsIDB4MDQsIDB4MGQsIDB4ZTMsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzEsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODEsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTEsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4YTEsIDB4MjIsIDB4YzIsIDB4MTIsIDB4YzIsIDB4MWEsIDB4YzIsIDB4MjIsIDB4YzIsIDB4MGEsIDB4N2UsIDB4MDQsIDB4MTEsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NzMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODMsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTMsIDB4N2EsIDB4MDcsIDB4MDEsIAotICAgIDB4YTMsIDB4MjIsIDB4YzIsIDB4MTMsIDB4YzIsIDB4MWIsIDB4YzIsIDB4MjMsIDB4YzIsIDB4MGIsIDB4N2UsIDB4MDQsIDB4MTUsIDB4ZTMsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4NzUsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODUsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTUsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTUsIAotICAgIDB4MjIsIDB4YzIsIDB4MTQsIDB4YzIsIDB4MWMsIDB4YzIsIDB4MjQsIDB4YzIsIDB4MGMsIDB4N2UsIDB4MDQsIDB4MTksIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIAotICAgIDB4NzcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODcsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTcsIDB4MjIsIAotICAgIDB4YzIsIDB4MTUsIDB4YzIsIDB4MWQsIDB4YzIsIDB4MjUsIDB4YzIsIDB4MGQsIDB4N2UsIDB4MDQsIDB4MWQsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzksIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODksIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTksIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTksIDB4MjIsIDB4YzIsIAotICAgIDB4MTYsIDB4YzIsIDB4MWUsIDB4YzIsIDB4MjYsIDB4YzIsIDB4MGUsIDB4N2UsIDB4MDQsIDB4MjEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2IsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4OGIsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWIsIDB4MjIsIDB4YzIsIDB4MTcsIAotICAgIDB4YzIsIDB4MWYsIDB4YzIsIDB4MjcsIDB4YzIsIDB4MGYsIDB4N2UsIDB4MDQsIDB4MjUsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2QsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4OGQsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWQsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIAotICAgIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4NDIsIDB4YjgsIDB4ODksIDB4MjQsIDB4NDIsIDB4YzgsIDB4NDIsIDB4ZTksIDB4NDMsIDB4MGEsIDB4NDMsIDB4MmIsIAotICAgIDB4NDMsIDB4NGMsIDB4NDMsIDB4NmQsIDB4NDMsIDB4OGUsIDB4NDMsIDB4YWYsIDB4MzAsIDB4NTAsIDB4MDcsIDB4MjAsIDB4NjgsIDB4MDQsIDB4YzIsIDB4MjgsIAotICAgIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDAsIDB4MDcsIDB4MjAsIDB4NjAsIDB4MDQsIDB4YzIsIDB4MjgsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NDgsIDB4MDcsIDB4MjAsIAotICAgIDB4NTgsIDB4MDQsIDB4YzIsIDB4MjgsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MjgsIDB4MjIsIDB4MzAsIDB4NTEsIDB4MDcsIDB4MjAsIDB4NjksIDB4MDQsIDB4YzIsIAotICAgIDB4MjksIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDEsIDB4MDcsIDB4MjAsIDB4NjEsIDB4MDQsIDB4YzIsIDB4MjksIDB4ODAsIDB4MGMsIDB4MzAsIDB4NDksIDB4MDcsIAotICAgIDB4MjAsIDB4NTksIDB4MDQsIDB4YzIsIDB4MjksIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MjksIDB4MjIsIDB4MzAsIDB4NTIsIDB4MDcsIDB4MjAsIDB4NmEsIDB4MDQsIAotICAgIDB4YzIsIDB4MmEsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDIsIDB4MDcsIDB4MjAsIDB4NjIsIDB4MDQsIDB4YzIsIDB4MmEsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGEsIAotICAgIDB4MDcsIDB4MjAsIDB4NWEsIDB4MDQsIDB4YzIsIDB4MmEsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmEsIDB4MjIsIDB4MzAsIDB4NTMsIDB4MDcsIDB4MjAsIDB4NmIsIAotICAgIDB4MDQsIDB4YzIsIDB4MmIsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDMsIDB4MDcsIDB4MjAsIDB4NjMsIDB4MDQsIDB4YzIsIDB4MmIsIDB4ODAsIDB4MGMsIDB4MzAsIAotICAgIDB4NGIsIDB4MDcsIDB4MjAsIDB4NWIsIDB4MDQsIDB4YzIsIDB4MmIsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmIsIDB4MjIsIDB4MzAsIDB4NTQsIDB4MDcsIDB4MjAsIAotICAgIDB4NmMsIDB4MDQsIDB4YzIsIDB4MmMsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDQsIDB4MDcsIDB4MjAsIDB4NjQsIDB4MDQsIDB4YzIsIDB4MmMsIDB4ODAsIDB4MGMsIAotICAgIDB4MzAsIDB4NGMsIDB4MDcsIDB4MjAsIDB4NWMsIDB4MDQsIDB4YzIsIDB4MmMsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmMsIDB4MjIsIDB4MzAsIDB4NTUsIDB4MDcsIAotICAgIDB4MjAsIDB4NmQsIDB4MDQsIDB4YzIsIDB4MmQsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDUsIDB4MDcsIDB4MjAsIDB4NjUsIDB4MDQsIDB4YzIsIDB4MmQsIDB4ODAsIAotICAgIDB4MGMsIDB4MzAsIDB4NGQsIDB4MDcsIDB4MjAsIDB4NWQsIDB4MDQsIDB4YzIsIDB4MmQsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmQsIDB4MjIsIDB4MzAsIDB4NTYsIAotICAgIDB4MDcsIDB4MjAsIDB4NmUsIDB4MDQsIDB4YzIsIDB4MmUsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDYsIDB4MDcsIDB4MjAsIDB4NjYsIDB4MDQsIDB4YzIsIDB4MmUsIAotICAgIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGUsIDB4MDcsIDB4MjAsIDB4NWUsIDB4MDQsIDB4YzIsIDB4MmUsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmUsIDB4MjIsIDB4MzAsIAotICAgIDB4NTcsIDB4MDcsIDB4MjAsIDB4NmYsIDB4MDQsIDB4YzIsIDB4MmYsIDB4ODAsIDB4MTYsIDB4MzAsIDB4NDcsIDB4MDcsIDB4MjAsIDB4NjcsIDB4MDQsIDB4YzIsIAotICAgIDB4MmYsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGYsIDB4MDcsIDB4MjAsIDB4NWYsIDB4MDQsIDB4YzIsIDB4MmYsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmYsIDB4MjIsIAotICAgIDB4NDQsIDB4MzgsIDB4NDMsIDB4ZTUsIDB4YmUsIDB4YjAsIDB4MDIsIDB4NDAsIDB4MDEsIDB4MjIsIDB4MjMsIDB4MGEsIDB4NWIsIDB4NDksIDB4NTUsIDB4NDMsIAotICAgIDB4ZDAsIDB4OTksIDB4NTQsIDB4ZDMsIDB4MjIsIDB4YTksIDB4YzUsIDB4ODcsIDB4MTIsIDB4NDQsIDB4NDMsIDB4N2UsIDB4MDQsIDB4MDUsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4ZDcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZDksIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGQsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MDQsIDB4NzQsIDB4YWQsIDB4N2EsIDB4MDUsIDB4NjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4NzUsIDB4ZTEsIDB4MWYsIAotICAgIDB4NzUsIDB4ZTQsIDB4MDQsIDB4NzUsIDB4ZjQsIDB4MDQsIDB4NzUsIDB4ZjEsIDB4MDIsIDB4NzUsIDB4ZTEsIDB4MDMsIDB4NzUsIDB4ZTQsIDB4MDQsIDB4NzUsIAotICAgIDB4ZjQsIDB4MDQsIDB4NDMsIDB4YTIsIDB4MWMsIDB4MTIsIDB4NDAsIDB4ZWIsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTIsIDB4NDEsIDB4OWEsIDB4MGIsIDB4MjAsIAotICAgIDB4YmUsIDB4MjEsIDB4MmYsIDB4NzgsIDB4ZjYsIDB4ZDIsIDB4YTgsIDB4MjIsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4NDQsIDB4NDMsIDB4ZDIsIDB4OTIsIAotICAgIDB4YzIsIDB4YTgsIDB4MjIsIDB4NzUsIDB4YTMsIDB4MDAsIDB4NTMsIDB4YTIsIDB4MDMsIDB4NzUsIDB4YzEsIDB4MDAsIDB4NTMsIDB4YzAsIDB4MDMsIDB4N2UsIAotICAgIDB4MDAsIDB4MDUsIDB4N2EsIDB4MDEsIDB4ZjEsIDB4NDMsIDB4ZjQsIDB4ODAsIDB4NDMsIDB4ZTQsIDB4ODAsIDB4ZTUsIDB4ZjIsIDB4NTQsIDB4N2YsIDB4NDQsIAotICAgIDB4MDgsIDB4ZjUsIDB4ZjIsIDB4ZTUsIDB4ZTIsIDB4NTQsIDB4N2YsIDB4NDQsIDB4MDgsIDB4ZjUsIDB4ZTIsIDB4NzUsIDB4ZTEsIDB4MTAsIDB4YTUsIDB4ZDgsIAotICAgIDB4ZTEsIDB4MjIsIDB4Y2EsIDB4MDksIDB4MTIsIDB4MzAsIDB4MjAsIDB4MTAsIDB4MDEsIDB4MTIsIDB4ZDUsIDB4NjcsIDB4MWUsIDB4NjMsIDB4NjksIDB4MDEsIAotICAgIDB4N2UsIDB4MDAsIDB4NmEsIDB4MmUsIDB4MDEsIDB4NjksIDB4YTUsIDB4ZTYsIDB4ZjUsIDB4NjcsIDB4ODAsIDB4MTIsIDB4MjAsIDB4MDIsIDB4MWUsIDB4NzUsIAotICAgIDB4NjksIDB4MDAsIDB4ODUsIDB4NmEsIDB4NjcsIDB4ZDIsIDB4MDIsIDB4NzQsIDB4MDAsIDB4ODAsIDB4MGQsIDB4MzAsIDB4MDIsIDB4MGYsIDB4YzIsIDB4MDIsIAotICAgIDB4N2UsIDB4MDAsIDB4NmMsIDB4MmUsIDB4MDEsIDB4NjksIDB4YTUsIDB4ZTYsIDB4NTMsIDB4OTAsIDB4Y2YsIDB4NDIsIDB4OTAsIDB4ZGEsIDB4MDksIDB4MzIsIAotICAgIDB4YzAsIDB4ZDAsIDB4YzAsIDB4ZDEsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ZjAsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIDB4ZDIsIDB4MDEsIAotICAgIDB4NzUsIDB4MzEsIDB4ODksIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIAotICAgIDB4MDMsIDB4MDIsIDB4NDUsIDB4NGYsIDB4MjAsIDB4NzgsIDB4NWEsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIAotICAgIDB4MDIsIDB4NDUsIDB4NjcsIDB4MjAsIDB4NzksIDB4NGIsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIAotICAgIDB4NDUsIDB4N2YsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIDB4OTcsIDB4MjAsIDB4N2EsIAotICAgIDB4MzAsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIDB4YWYsIDB4YTUsIDB4MGEsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIDB4YzcsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIAotICAgIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIDB4ZGYsIDB4YTUsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4NDUsIAotICAgIDB4ZjcsIDB4MzAsIDB4MDQsIDB4MGMsIDB4YzIsIDB4MDQsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIAotICAgIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ZDEsIDB4ZDAsIDB4ZDAsIDB4MzIsIDB4NzUsIAotICAgIDB4MzEsIDB4ODAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIAotICAgIDB4MmIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIDB4MzEsIDB4ODEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIAotICAgIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIDB4NmIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIAotICAgIDB4MzEsIDB4ODIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIAotICAgIDB4YWIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIDB4MzEsIDB4ODMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIAotICAgIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIDB4ZWIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIAotICAgIDB4MzEsIDB4ODQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjQsIAotICAgIDB4MmIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIDB4MzEsIDB4ODUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIAotICAgIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjQsIDB4NmIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIAotICAgIDB4MzEsIDB4ODYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjQsIAotICAgIDB4YWIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4NzUsIDB4MzEsIDB4ODcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTQsIDB4M2UsIDB4MGEsIAotICAgIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjQsIDB4ZWIsIDB4Y2EsIDB4MDYsIDB4YzYsIDB4NDQsIDB4ODksIDB4NTQsIDB4MTAsIAotICAgIDB4MDgsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MjgsIDB4MDMsIDB4ZDIsIDB4MDgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIAotICAgIDB4MTQsIDB4ODAsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MjgsIDB4MDMsIDB4ZDIsIDB4MDgsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NDksIDB4MzAsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MDgsIAotICAgIDB4MjIsIDB4MzAsIDB4MzAsIDB4NDksIDB4ZDIsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OGYsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YWYsIDB4OWQsIDB4MzIsIAotICAgIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDgsIDB4N2EsIDB4MDUsIDB4NDgsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OGYsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4NmYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MGQsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NmYsIAotICAgIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIAotICAgIDB4NzAsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzAsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OGYsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YWYsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4YWYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OGYsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDgsIDB4N2EsIDB4MDUsIDB4NDgsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4OGYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NmYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MGQsIDB4ZTIsIDB4MzgsIAotICAgIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NmYsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MGQsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIDB4MmIsIDB4N2UsIDB4MzQsIDB4MDksIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NmYsIDB4MTIsIDB4NjUsIDB4MmIsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NDYsIDB4N2YsIAotICAgIDB4MjIsIDB4ZDIsIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDksIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NmYsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2YsIDB4NzUsIAotICAgIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YmYsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIAotICAgIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDAsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YmYsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIAotICAgIDB4MzAsIDB4MzgsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTAsIDB4MjIsIAotICAgIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIAotICAgIDB4MDAsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YmYsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIAotICAgIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIAotICAgIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDAsIDB4N2EsIDB4NjksIAotICAgIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIAotICAgIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIAotICAgIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIAotICAgIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIAotICAgIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIAotICAgIDB4MDIsIDB4NDcsIDB4ZTMsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzgsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4ZDIsIDB4MTAsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NDcsIAotICAgIDB4ZTMsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NDksIDB4MzAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIAotICAgIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NjgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjAsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NjAsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTgsIDB4MTIsIAotICAgIDB4NDIsIDB4YzgsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIAotICAgIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIAotICAgIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NDgsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIDB4MDksIDB4MDEsIDB4MjIsIDB4MjAsIDB4MjksIDB4MDMsIDB4ZDIsIDB4MDksIAotICAgIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODEsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MjksIDB4MDMsIAotICAgIDB4ZDIsIDB4MDksIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIAotICAgIDB4MTIsIDB4NGMsIDB4ODgsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MDksIDB4MjIsIDB4MzAsIDB4MzEsIDB4NDksIDB4ZDIsIDB4NzEsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4OTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjEsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGEsIDB4N2EsIAotICAgIDB4MDUsIDB4NGEsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzEsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIAotICAgIDB4MTEsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzEsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIDB4NzEsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzEsIDB4MmQsIDB4MjMsIDB4NjgsIAotICAgIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTEsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIAotICAgIDB4MjcsIDB4MDEsIDB4YjEsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTEsIDB4OWQsIDB4MzIsIDB4N2QsIAotICAgIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGEsIDB4N2EsIDB4MDUsIDB4NGEsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzEsIDB4N2QsIAotICAgIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTEsIDB4ZTIsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzEsIDB4NzUsIDB4MzEsIDB4OTQsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MTEsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIAotICAgIDB4MmIsIDB4N2UsIDB4MzQsIDB4MGQsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzEsIDB4MTIsIDB4NjUsIDB4MmIsIAotICAgIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NDksIDB4ZDcsIDB4MjIsIDB4ZDIsIDB4MDksIDB4N2UsIDB4MDQsIDB4MGQsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NzEsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODEsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzEsIAotICAgIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIAotICAgIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDEsIDB4MDAsIDB4MmUsIDB4MjcsIAotICAgIDB4MDEsIDB4YzEsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIAotICAgIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzksIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTEsIDB4MjIsIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDEsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzEsIDB4OWUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIAotICAgIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIAotICAgIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDEsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIAotICAgIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIAotICAgIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIAotICAgIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIAotICAgIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NGIsIDB4M2IsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzksIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTEsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIAotICAgIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NGIsIDB4M2IsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NGMsIDB4ODgsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIAotICAgIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjksIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjksIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NTksIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTksIDB4MTIsIDB4NDIsIDB4ZTksIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIAotICAgIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIAotICAgIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIAotICAgIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NGIsIAotICAgIDB4OGQsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIAotICAgIDB4MGEsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmEsIDB4MDMsIDB4ZDIsIDB4MGEsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIAotICAgIDB4MTQsIDB4ODIsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmEsIDB4MDMsIDB4ZDIsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NGYsIDB4ZTAsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGEsIAotICAgIDB4MjIsIDB4MzAsIDB4MzIsIDB4NDksIDB4ZDIsIDB4NzIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTMsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjMsIDB4OWQsIDB4MzIsIAotICAgIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGMsIDB4N2EsIDB4MDUsIDB4NGMsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTMsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4NzMsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTUsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzMsIAotICAgIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIAotICAgIDB4NzIsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzIsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OTMsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YjMsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4YjMsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTMsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGMsIDB4N2EsIDB4MDUsIDB4NGMsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4OTMsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzMsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTUsIDB4ZTIsIDB4MzgsIAotICAgIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzMsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MTUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIDB4MmIsIDB4N2UsIDB4MzQsIDB4MTEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzMsIDB4MTIsIDB4NjUsIDB4MmIsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NGQsIDB4MmYsIAotICAgIDB4MjIsIDB4ZDIsIDB4MGEsIDB4N2UsIDB4MDQsIDB4MTEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODMsIDB4NzUsIAotICAgIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzMsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIAotICAgIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDIsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YzMsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIAotICAgIDB4MzAsIDB4M2EsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTIsIDB4MjIsIAotICAgIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIAotICAgIDB4MDIsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzMsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIAotICAgIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIAotICAgIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDIsIDB4N2EsIDB4NjksIAotICAgIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIAotICAgIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIAotICAgIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIAotICAgIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIAotICAgIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIAotICAgIDB4MDIsIDB4NGUsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2EsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4ZDIsIDB4MTIsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NGUsIAotICAgIDB4OTMsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NGYsIDB4ZTAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIAotICAgIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NmEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjIsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NjIsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWEsIDB4MTIsIAotICAgIDB4NDMsIDB4MGEsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIAotICAgIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIAotICAgIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NGUsIDB4ZTUsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIDB4MGIsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmIsIDB4MDMsIDB4ZDIsIDB4MGIsIAotICAgIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODMsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmIsIDB4MDMsIAotICAgIDB4ZDIsIDB4MGIsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIAotICAgIDB4MTIsIDB4NTMsIDB4MzgsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGIsIDB4MjIsIDB4MzAsIDB4MzMsIDB4NDksIDB4ZDIsIDB4NzMsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4OTUsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjUsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGUsIDB4N2EsIAotICAgIDB4MDUsIDB4NGUsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzUsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIAotICAgIDB4MTksIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzUsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIDB4NzMsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzMsIDB4MmQsIDB4MjMsIDB4NjgsIAotICAgIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTUsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIAotICAgIDB4MjcsIDB4MDEsIDB4YjUsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTUsIDB4OWQsIDB4MzIsIDB4N2QsIAotICAgIDB4MDIsIDB4MmUsIDB4MDUsIDB4NGUsIDB4N2EsIDB4MDUsIDB4NGUsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzUsIDB4N2QsIAotICAgIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTksIDB4ZTIsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzUsIDB4NzUsIDB4MzEsIDB4OTQsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MTksIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIAotICAgIDB4MmIsIDB4N2UsIDB4MzQsIDB4MTUsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzUsIDB4MTIsIDB4NjUsIDB4MmIsIAotICAgIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NTAsIDB4ODcsIDB4MjIsIDB4ZDIsIDB4MGIsIDB4N2UsIDB4MDQsIDB4MTUsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NzUsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODUsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzUsIAotICAgIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIAotICAgIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDMsIDB4MDAsIDB4MmUsIDB4MjcsIAotICAgIDB4MDEsIDB4YzUsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIAotICAgIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2IsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTMsIDB4MjIsIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDMsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzUsIDB4OWUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIAotICAgIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIAotICAgIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDMsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIAotICAgIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIAotICAgIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIAotICAgIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIAotICAgIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NTEsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2IsIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTMsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIAotICAgIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NTEsIDB4ZWIsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NTMsIDB4MzgsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIAotICAgIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmIsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjMsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NWIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWIsIDB4MTIsIDB4NDMsIDB4MmIsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIAotICAgIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIAotICAgIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIAotICAgIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NTIsIAotICAgIDB4M2QsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIAotICAgIDB4MGMsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmMsIDB4MDMsIDB4ZDIsIDB4MGMsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIAotICAgIDB4MTQsIDB4ODQsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmMsIDB4MDMsIDB4ZDIsIDB4MGMsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NTYsIDB4OTAsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGMsIAotICAgIDB4MjIsIDB4MzAsIDB4MzQsIDB4NDksIDB4ZDIsIDB4NzQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTcsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjcsIDB4OWQsIDB4MzIsIAotICAgIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTAsIDB4N2EsIDB4MDUsIDB4NTAsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTcsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4NzcsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MWQsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzcsIAotICAgIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIAotICAgIDB4NzQsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzQsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OTcsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YjcsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4YjcsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTcsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTAsIDB4N2EsIDB4MDUsIDB4NTAsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4OTcsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzcsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MWQsIDB4ZTIsIDB4MzgsIAotICAgIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzcsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MWQsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIDB4MmIsIDB4N2UsIDB4MzQsIDB4MTksIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzcsIDB4MTIsIDB4NjUsIDB4MmIsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NTMsIDB4ZGYsIAotICAgIDB4MjIsIDB4ZDIsIDB4MGMsIDB4N2UsIDB4MDQsIDB4MTksIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODcsIDB4NzUsIAotICAgIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzcsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIAotICAgIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDQsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YzcsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIAotICAgIDB4MzAsIDB4M2MsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTQsIDB4MjIsIAotICAgIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIAotICAgIDB4MDQsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzcsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIAotICAgIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIAotICAgIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDQsIDB4N2EsIDB4NjksIAotICAgIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIAotICAgIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIAotICAgIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIAotICAgIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIAotICAgIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIAotICAgIDB4MDIsIDB4NTUsIDB4NDMsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2MsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4ZDIsIDB4MTQsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NTUsIAotICAgIDB4NDMsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NTYsIDB4OTAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIAotICAgIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NmMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmMsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjQsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NjQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWMsIDB4MTIsIAotICAgIDB4NDMsIDB4NGMsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIAotICAgIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIAotICAgIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NTUsIDB4OTUsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIDB4MGQsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmQsIDB4MDMsIDB4ZDIsIDB4MGQsIAotICAgIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODUsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmQsIDB4MDMsIAotICAgIDB4ZDIsIDB4MGQsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIAotICAgIDB4MTIsIDB4NTksIDB4ZTgsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGQsIDB4MjIsIDB4MzAsIDB4MzUsIDB4NDksIDB4ZDIsIDB4NzUsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4OTksIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjksIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTIsIDB4N2EsIAotICAgIDB4MDUsIDB4NTIsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTksIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIAotICAgIDB4MjEsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzksIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIDB4NzUsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzUsIDB4MmQsIDB4MjMsIDB4NjgsIAotICAgIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTksIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIAotICAgIDB4MjcsIDB4MDEsIDB4YjksIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjksIDB4N2UsIDB4MzcsIDB4MDEsIDB4OTksIDB4OWQsIDB4MzIsIDB4N2QsIAotICAgIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTIsIDB4N2EsIDB4MDUsIDB4NTIsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OTksIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzksIDB4N2QsIAotICAgIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjEsIDB4ZTIsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzksIDB4NzUsIDB4MzEsIDB4OTQsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MjEsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIAotICAgIDB4MmIsIDB4N2UsIDB4MzQsIDB4MWQsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NzksIDB4MTIsIDB4NjUsIDB4MmIsIAotICAgIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NTcsIDB4MzcsIDB4MjIsIDB4ZDIsIDB4MGQsIDB4N2UsIDB4MDQsIDB4MWQsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NzksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODksIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YzksIAotICAgIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIAotICAgIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDUsIDB4MDAsIDB4MmUsIDB4MjcsIAotICAgIDB4MDEsIDB4YzksIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIAotICAgIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2QsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTUsIDB4MjIsIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDUsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YzksIDB4OWUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIAotICAgIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIAotICAgIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDUsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIAotICAgIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIAotICAgIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIAotICAgIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIAotICAgIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NTgsIDB4OWIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2QsIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTUsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIAotICAgIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NTgsIDB4OWIsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NTksIDB4ZTgsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIAotICAgIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmQsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NWQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWQsIDB4MTIsIDB4NDMsIDB4NmQsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIAotICAgIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIAotICAgIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIAotICAgIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NTgsIAotICAgIDB4ZWQsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIAotICAgIDB4MGUsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmUsIDB4MDMsIDB4ZDIsIDB4MGUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIAotICAgIDB4MTQsIDB4ODYsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmUsIDB4MDMsIDB4ZDIsIDB4MGUsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NWQsIDB4NDAsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGUsIAotICAgIDB4MjIsIDB4MzAsIDB4MzYsIDB4NDksIDB4ZDIsIDB4NzYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OWIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YmIsIDB4OWQsIDB4MzIsIAotICAgIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTQsIDB4N2EsIDB4MDUsIDB4NTQsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OWIsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4N2IsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjUsIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2IsIAotICAgIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIAotICAgIDB4NzYsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzYsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OWIsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YmIsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4YmIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OWIsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTQsIDB4N2EsIDB4MDUsIDB4NTQsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4OWIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2IsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjUsIDB4ZTIsIDB4MzgsIAotICAgIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2IsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MjUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIDB4MmIsIDB4N2UsIDB4MzQsIDB4MjEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2IsIDB4MTIsIDB4NjUsIDB4MmIsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NWEsIDB4OGYsIAotICAgIDB4MjIsIDB4ZDIsIDB4MGUsIDB4N2UsIDB4MDQsIDB4MjEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2IsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OGIsIDB4NzUsIAotICAgIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4Y2IsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIAotICAgIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDYsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4Y2IsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIAotICAgIDB4MzAsIDB4M2UsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTYsIDB4MjIsIAotICAgIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIAotICAgIDB4MDYsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4Y2IsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIAotICAgIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIAotICAgIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDYsIDB4N2EsIDB4NjksIAotICAgIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIAotICAgIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIAotICAgIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIAotICAgIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIAotICAgIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIAotICAgIDB4MDIsIDB4NWIsIDB4ZjMsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2UsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4ZDIsIDB4MTYsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NWIsIAotICAgIDB4ZjMsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NWQsIDB4NDAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIAotICAgIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NmUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjYsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NjYsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWUsIDB4MTIsIAotICAgIDB4NDMsIDB4OGUsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIAotICAgIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIAotICAgIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NWMsIDB4NDUsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIAotICAgIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4MTAsIDB4MGYsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmYsIDB4MDMsIDB4ZDIsIDB4MGYsIAotICAgIDB4MjIsIDB4NzUsIDB4MzEsIDB4YTcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTQsIDB4ODcsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmYsIDB4MDMsIAotICAgIDB4ZDIsIDB4MGYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIAotICAgIDB4MTIsIDB4NjAsIDB4OTgsIDB4MjAsIDB4ZTYsIDB4MDMsIDB4ZDIsIDB4MGYsIDB4MjIsIDB4MzAsIDB4MzcsIDB4NDksIDB4ZDIsIDB4NzcsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4OWQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YmQsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTYsIDB4N2EsIAotICAgIDB4MDUsIDB4NTYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OWQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2QsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIAotICAgIDB4MjksIDB4ZTIsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2QsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NjUsIDB4MmIsIDB4MTAsIDB4NzcsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NzcsIDB4MmQsIDB4MjMsIDB4NjgsIAotICAgIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWQsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIAotICAgIDB4MjcsIDB4MDEsIDB4YmQsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YmQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4OWQsIDB4OWQsIDB4MzIsIDB4N2QsIAotICAgIDB4MDIsIDB4MmUsIDB4MDUsIDB4NTYsIDB4N2EsIDB4MDUsIDB4NTYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4OWQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2QsIDB4N2QsIAotICAgIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjksIDB4ZTIsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2QsIDB4NzUsIDB4MzEsIDB4OTQsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDIsIDB4NjUsIDB4MmIsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MjksIDB4ZTMsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjUsIAotICAgIDB4MmIsIDB4N2UsIDB4MzQsIDB4MjUsIDB4ZTMsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4N2QsIDB4MTIsIDB4NjUsIDB4MmIsIAotICAgIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NWQsIDB4ZTcsIDB4MjIsIDB4ZDIsIDB4MGYsIDB4N2UsIDB4MDQsIDB4MjUsIDB4ZTMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4N2QsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OGQsIDB4NzUsIDB4MzEsIDB4OTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NzAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4Y2QsIAotICAgIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4M2MsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDUsIDB4NDYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIAotICAgIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NDQsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4N2UsIDB4MjQsIDB4MDcsIDB4MDAsIDB4MmUsIDB4MjcsIAotICAgIDB4MDEsIDB4Y2QsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmUsIDB4NTAsIDB4MzgsIAotICAgIDB4NzgsIDB4MDMsIDB4MDIsIDB4NjYsIDB4MTYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2YsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTcsIDB4MjIsIDB4ODAsIDB4N2QsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDcsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4Y2QsIDB4OWUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NjUsIDB4ZmIsIDB4N2UsIDB4MzQsIDB4MDEsIDB4ZTMsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGYsIDB4MDIsIDB4NjUsIDB4ZmIsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIAotICAgIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIAotICAgIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDcsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MzEsIAotICAgIDB4OTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MjksIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4ZGYsIDB4N2UsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZTEsIDB4MmUsIDB4MzUsIDB4NDYsIDB4N2EsIAotICAgIDB4MzUsIDB4NDYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIAotICAgIDB4MmEsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4MmMsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDEsIDB4ZDIsIDB4MDQsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2UsIAotICAgIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4Y2UsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NWYsIDB4NGIsIDB4NzUsIDB4MzEsIDB4OTksIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2YsIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTcsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIAotICAgIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NWYsIDB4NGIsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NjAsIDB4OTgsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4YTUsIDB4ZmMsIDB4NWUsIDB4YjAsIDB4ZjAsIDB4YTUsIDB4ZmQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4NGMsIDB4NGIsIDB4NWUsIDB4YjAsIDB4ZjAsIAotICAgIDB4YmMsIDB4YjUsIDB4NzgsIDB4ZjEsIDB4NWUsIDB4NDAsIDB4MGYsIDB4NGMsIDB4NTQsIDB4N2MsIDB4YjUsIDB4NWUsIDB4NTAsIDB4MGIsIDB4NjgsIDB4MmEsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmYsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmYsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjcsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjcsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NWYsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWYsIDB4MTIsIDB4NDMsIDB4YWYsIDB4MDIsIDB4NjIsIDB4OTMsIDB4NzUsIDB4MzEsIDB4OTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4ZTAsIDB4MDgsIAotICAgIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjIsIDB4OTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIAotICAgIDB4MTIsIDB4NjIsIDB4OTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIAotICAgIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjIsIDB4YjYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NWYsIAotICAgIDB4OWQsIDB4NzUsIDB4MzEsIDB4OTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4N2MsIAotICAgIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIAotICAgIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NjAsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjAsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTgsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NTgsIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIAotICAgIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjksIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjksIDB4YTUsIDB4ZmQsIAotICAgIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIAotICAgIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTksIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTksIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIAotICAgIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmEsIAotICAgIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjIsIDB4ODAsIDB4MDIsIDB4YzIsIAotICAgIDB4NjIsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWEsIDB4MDIsIDB4NjIsIAotICAgIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmIsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NjMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjMsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWIsIAotICAgIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWIsIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmMsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjQsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWMsIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIAotICAgIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIAotICAgIDB4ZDIsIDB4NmQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjUsIDB4ODAsIAotICAgIDB4MDIsIDB4YzIsIDB4NjUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWQsIAotICAgIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIAotICAgIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NmUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIAotICAgIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjYsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjYsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIAotICAgIDB4ZDIsIDB4NWUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWUsIDB4MDIsIDB4NjIsIDB4N2YsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIAotICAgIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MTAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NmYsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NmYsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NjcsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NjcsIDB4YTUsIAotICAgIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWYsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWYsIDB4MDIsIDB4NjIsIDB4N2YsIDB4NTQsIAotICAgIDB4ZjAsIDB4YzQsIDB4YTUsIDB4ZmYsIDB4YzQsIDB4YTUsIDB4NGYsIDB4NzUsIDB4MzEsIDB4OTAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZjUsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4MjIsIDB4Y2EsIDB4MTksIDB4NWUsIDB4MjAsIDB4MDcsIDB4NGMsIDB4YTIsIDB4N2UsIDB4NzQsIDB4MjksIDB4ZTMsIDB4Y2EsIDB4NzksIAotICAgIDB4N2EsIDB4NzksIDB4YTAsIDB4MGIsIDB4NzQsIDB4N2EsIDB4NzksIDB4YjAsIDB4MGIsIDB4NzQsIDB4ZGEsIDB4NzksIDB4N2UsIDB4MzAsIDB4MDIsIDB4N2UsIAotICAgIDB4NjQsIDB4MDAsIDB4MDIsIDB4MDIsIDB4NjIsIDB4ZGUsIDB4Y2EsIDB4MTksIDB4NWUsIDB4MjAsIDB4MDcsIDB4NGMsIDB4YTIsIDB4N2UsIDB4NzQsIDB4MjksIAotICAgIDB4ZTMsIDB4Y2EsIDB4NzksIDB4N2EsIDB4NzksIDB4YTAsIDB4MGIsIDB4NzQsIDB4N2EsIDB4NzksIDB4YjAsIDB4MGIsIDB4NzQsIDB4N2EsIDB4NzksIDB4NjAsIAotICAgIDB4MGIsIDB4NzQsIDB4ZGEsIDB4NzksIDB4N2UsIDB4MzAsIDB4MDMsIDB4N2UsIDB4NjQsIDB4MDAsIDB4MDMsIDB4MDIsIDB4NjIsIDB4ZGUsIDB4ZDIsIDB4MDQsIAotICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4ZTEsIDB4MmQsIDB4MjYsIDB4YmUsIDB4MjQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4MmUsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZGYsIAotICAgIDB4N2UsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4N2UsIDB4NzksIDB4YTAsIDB4N2EsIDB4MDksIDB4YTAsIDB4MGIsIDB4MDQsIDB4MGIsIDB4NzQsIDB4YmQsIDB4MDQsIAotICAgIDB4NjgsIDB4MjMsIDB4YTUsIDB4ZGIsIDB4ZWYsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MjUsIDB4NDYsIDB4MmQsIDB4MjYsIDB4N2EsIDB4MjUsIAotICAgIDB4NDYsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4ZGEsIDB4MTksIDB4YzIsIDB4ZDcsIDB4MjIsIDB4NzUsIDB4MzEsIDB4OWEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4ZGEsIDB4MTksIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4ODAsIDB4ZDcsIDB4NDgsIDB4YjYsIDB4NDYsIDB4MjUsIDB4NDcsIAotICAgIDB4MWMsIDB4NDksIDB4MTUsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDgsIDB4MWIsIDB4NDQsIDB4YzYsIDB4NDksIDB4NTksIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDksIDB4NjAsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGMsIDB4MGUsIDB4NDksIDB4N2QsIDB4NGEsIAotICAgIDB4NzQsIDB4NGMsIDB4NmQsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGIsIDB4NzMsIDB4NDQsIDB4YzYsIDB4NGMsIDB4YjEsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGMsIDB4YjgsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGYsIDB4NjYsIDB4NGMsIDB4ZDUsIDB4NGQsIAotICAgIDB4Y2MsIDB4NGYsIDB4YzUsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NGUsIDB4Y2IsIDB4NDQsIDB4YzYsIDB4NTAsIDB4MDksIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTAsIDB4MTAsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTIsIDB4YmUsIDB4NTAsIDB4MmQsIDB4NTEsIAotICAgIDB4MjQsIDB4NTMsIDB4MWQsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTIsIDB4MjMsIDB4NDQsIDB4YzYsIDB4NTMsIDB4NjEsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTMsIDB4NjgsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTYsIDB4MTYsIDB4NTMsIDB4ODUsIDB4NTQsIAotICAgIDB4N2MsIDB4NTYsIDB4NzUsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTUsIDB4N2IsIDB4NDQsIDB4YzYsIDB4NTYsIDB4YjksIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTYsIDB4YzAsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTksIDB4NmUsIDB4NTYsIDB4ZGQsIDB4NTcsIAotICAgIDB4ZDQsIDB4NTksIDB4Y2QsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NTgsIDB4ZDMsIDB4NDQsIDB4YzYsIDB4NWEsIDB4MTEsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWEsIDB4MTgsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWMsIDB4YzYsIDB4NWEsIDB4MzUsIDB4NWIsIAotICAgIDB4MmMsIDB4NWQsIDB4MjUsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWMsIDB4MmIsIDB4NDQsIDB4YzYsIDB4NWQsIDB4NjksIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWQsIDB4NzAsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NjAsIDB4MWUsIDB4NWQsIDB4OGQsIDB4NWUsIAotICAgIDB4ODQsIDB4NjAsIDB4N2QsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NWYsIDB4ODMsIDB4NDQsIDB4YzYsIDB4NjAsIDB4YzEsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NjAsIDB4YzgsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIAotICAgIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4NDQsIDB4YzYsIDB4Y2EsIDB4MjksIDB4MWUsIDB4NTAsIDB4NDAsIAotICAgIDB4MGQsIDB4N2UsIDB4NTQsIDB4MGIsIDB4MTAsIDB4OWMsIDB4YjUsIDB4YTQsIDB4MmUsIDB4NTQsIDB4NjUsIDB4NDgsIDB4ODksIDB4NTQsIDB4N2UsIDB4MzksIAotICAgIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4MGIsIDB4MzQsIDB4ODAsIDB4ZTksIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIAotICAgIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIAotICAgIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIAotICAgIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIAotICAgIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIAotICAgIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIAotICAgIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIAotICAgIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIAotICAgIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4MDAsIAotICAgIDB4N2EsIDB4MTksIDB4MDAsIDB4N2EsIDB4MTksIDB4MTAsIDB4MGIsIDB4MzUsIDB4ZGEsIDB4MjksIDB4MjIsIDB4MWUsIDB4NTAsIDB4NDAsIDB4MGQsIDB4N2UsIAotICAgIDB4NTQsIDB4MGIsIDB4MWMsIDB4OWMsIDB4YjUsIDB4YTQsIDB4MmUsIDB4NTQsIDB4NjYsIDB4MTYsIDB4ODksIDB4NTQsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2EsIAotICAgIDB4MzksIDB4MDAsIDB4MGIsIDB4MzQsIDB4ODAsIDB4ZTksIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIAotICAgIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIAotICAgIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIAotICAgIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIAotICAgIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIAotICAgIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIAotICAgIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIAotICAgIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIAotICAgIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIAotICAgIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIAotICAgIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIAotICAgIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIAotICAgIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIAotICAgIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIAotICAgIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIAotICAgIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4MTksIDB4MDAsIDB4N2UsIDB4MTksIDB4MTAsIDB4MWIsIDB4MzgsIDB4MDAsIDB4MGIsIDB4MzUsIDB4MjIsIDB4NjcsIDB4OTYsIDB4NjksIDB4NjMsIDB4NjksIAotICAgIDB4N2IsIDB4NmEsIDB4NDksIDB4NmEsIDB4ZTQsIDB4NmIsIDB4OGUsIDB4NmIsIDB4YTksIDB4NmMsIDB4M2IsIDB4NmIsIDB4YzQsIDB4NmMsIDB4MDUsIDB4NjksIAotICAgIDB4OTYsIDB4NjksIDB4YWEsIDB4N2MsIDB4YjMsIDB4YmUsIDB4YjAsIDB4MGIsIDB4MjgsIDB4MTQsIDB4NzUsIDB4MzEsIDB4MDksIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4NzUsIDB4NmQsIDB4MTAsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4NDMsIDB4ZTEsIDB4YzAsIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4YzAsIDB4YTgsIAotICAgIDB4YzIsIDB4YWYsIDB4MjMsIDB4NmMsIDB4YWEsIDB4MmUsIDB4NTQsIDB4NjcsIDB4NGIsIDB4MGIsIDB4NTgsIDB4NTAsIDB4ODksIDB4NTQsIDB4MDEsIDB4MDIsIAotICAgIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4NzUsIDB4MzEsIDB4YjAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGEsIDB4MzIsIDB4MDksIDB4YjMsIAotICAgIDB4NjcsIDB4OGUsIDB4NDIsIDB4MzIsIDB4MTksIDB4NDMsIDB4MDAsIDB4MzYsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4M2IsIAotICAgIDB4NDksIDB4MzMsIDB4NjcsIDB4Y2IsIDB4MGEsIDB4MjIsIDB4MDksIDB4MzIsIDB4MDAsIDB4MzYsIDB4MDksIDB4YjIsIDB4NjcsIDB4OGUsIDB4YTUsIDB4YmIsIAotICAgIDB4MDAsIDB4MDUsIDB4ZjQsIDB4NTIsIDB4MzMsIDB4ODAsIDB4MDIsIDB4NDIsIDB4MzMsIDB4ODksIDB4MzQsIDB4NjcsIDB4ZGIsIDB4NjgsIDB4MDksIDB4NjgsIAotICAgIDB4MzcsIDB4NjgsIDB4NjUsIDB4NjgsIDB4OTMsIDB4NjgsIDB4YzEsIDB4NjgsIDB4ZWYsIDB4NjksIDB4MWQsIDB4MTIsIDB4NDEsIDB4YjUsIDB4ZDIsIDB4MjgsIAotICAgIDB4ZDIsIDB4MDgsIDB4YzIsIDB4NDAsIDB4YzIsIDB4NDgsIDB4YzIsIDB4MzgsIDB4YzIsIDB4MzAsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4Y2YsIAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWYsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YmYsIAotICAgIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjAsIDB4Y2YsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDEsIDB4ZDQsIDB4ZDIsIDB4MjksIDB4ZDIsIDB4MDksIAotICAgIDB4YzIsIDB4NDEsIDB4YzIsIDB4NDksIDB4YzIsIDB4MzksIDB4YzIsIDB4MzEsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDAsIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzEsIDB4MTIsIDB4NDEsIAotICAgIDB4MTYsIDB4MTIsIDB4NjEsIDB4MDUsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDEsIDB4ZjMsIDB4ZDIsIDB4MmEsIDB4ZDIsIDB4MGEsIDB4YzIsIDB4NDIsIAotICAgIDB4YzIsIDB4NGEsIDB4YzIsIDB4M2EsIDB4YzIsIDB4MzIsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzMsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIAotICAgIDB4NjEsIDB4M2IsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDIsIDB4MTIsIDB4ZDIsIDB4MmIsIDB4ZDIsIDB4MGIsIDB4YzIsIDB4NDMsIDB4YzIsIDB4NGIsIAotICAgIDB4YzIsIDB4M2IsIDB4YzIsIDB4MzMsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4YjUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzUsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjEsIDB4NzEsIAotICAgIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDIsIDB4MzEsIDB4ZDIsIDB4MmMsIDB4ZDIsIDB4MGMsIDB4YzIsIDB4NDQsIDB4YzIsIDB4NGMsIDB4YzIsIDB4M2MsIAotICAgIDB4YzIsIDB4MzQsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjcsIAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzcsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjEsIDB4YTcsIDB4MDIsIDB4NjksIAotICAgIDB4NGIsIDB4MTIsIDB4NDIsIDB4NTAsIDB4ZDIsIDB4MmQsIDB4ZDIsIDB4MGQsIDB4YzIsIDB4NDUsIDB4YzIsIDB4NGQsIDB4YzIsIDB4M2QsIDB4YzIsIDB4MzUsIAotICAgIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDQsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjksIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjEsIDB4ZGQsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIAotICAgIDB4NDIsIDB4NmYsIDB4ZDIsIDB4MmUsIDB4ZDIsIDB4MGUsIDB4YzIsIDB4NDYsIDB4YzIsIDB4NGUsIDB4YzIsIDB4M2UsIDB4YzIsIDB4MzYsIDB4NmQsIDB4MDAsIAotICAgIDB4N2EsIDB4MDMsIDB4MDEsIDB4ZDUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YmIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjIsIDB4MTMsIDB4MDIsIDB4NjksIDB4NGIsIDB4MTIsIDB4NDIsIDB4OGUsIAotICAgIDB4ZDIsIDB4MmYsIDB4ZDIsIDB4MGYsIDB4YzIsIDB4NDcsIDB4YzIsIDB4NGYsIDB4YzIsIDB4M2YsIDB4YzIsIDB4MzcsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIAotICAgIDB4MDEsIDB4ZDYsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YmQsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4Y2QsIDB4MTIsIDB4NDEsIDB4MTYsIDB4MTIsIDB4NjIsIDB4NDksIDB4MDIsIDB4NjksIDB4NGIsIDB4N2UsIDB4YTAsIDB4ZDAsIDB4N2UsIDB4NjAsIAotICAgIDB4MGYsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MGMsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIAotICAgIDB4YzIsIDB4ZDcsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGEsIDB4NTIsIDB4MjMsIDB4NmQsIDB4MDAsIDB4NTksIDB4MDUsIAotICAgIDB4MDAsIDB4NDgsIDB4MTIsIDB4NDEsIDB4N2UsIDB4MTIsIDB4NDEsIDB4OWEsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjIsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4NjcsIDB4OGUsIDB4NDIsIDB4MjMsIDB4N2UsIDB4YjAsIDB4OWMsIDB4MTksIDB4YjIsIDB4MDEsIDB4Y2YsIAotICAgIDB4MTIsIDB4MzEsIDB4ODUsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIAotICAgIDB4NjcsIDB4OGUsIDB4NDIsIDB4MjQsIDB4MTIsIDB4MzUsIDB4M2QsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjksIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4MGEsIDB4MzIsIDB4MDksIDB4YjMsIDB4NjcsIDB4OGUsIDB4NDIsIDB4MzQsIDB4MTksIDB4NDMsIDB4MDAsIDB4M2UsIDB4MTIsIDB4NjksIDB4YzIsIDB4ZDAsIAotICAgIDB4YTgsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MGIsIDB4N2MsIDB4YjQsIDB4MjAsIDB4ZTAsIDB4MDQsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MDQsIAotICAgIDB4NDksIDB4MzAsIDB4MDEsIDB4OGYsIDB4N2UsIDB4YTAsIDB4ZDgsIDB4YTUsIDB4ZWYsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MjksIDB4MTIsIDB4NjIsIDB4YjYsIAotICAgIDB4ZGEsIDB4MjksIDB4ZGEsIDB4MGIsIDB4NDAsIDB4NjIsIDB4NzUsIDB4MzEsIDB4YmEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2MsIDB4YjQsIDB4MzAsIDB4ZTAsIAotICAgIDB4MWUsIDB4NmQsIDB4MzMsIDB4NTksIDB4MzAsIDB4MDEsIDB4OGYsIDB4N2UsIDB4MzQsIDB4MDksIDB4ZTMsIDB4MGEsIDB4ODIsIDB4N2UsIDB4OTQsIDB4MDQsIAotICAgIDB4MDAsIDB4YWQsIDB4ODksIDB4MmQsIDB4MzksIDB4NTksIDB4MzAsIDB4MDEsIDB4NmYsIDB4NTksIDB4MzAsIDB4MDEsIDB4N2YsIDB4N2MsIDB4YjQsIDB4MzAsIAotICAgIDB4ZTEsIDB4MTAsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4NDQsIDB4MDQsIDB4MTksIDB4YjAsIAotICAgIDB4MDAsIDB4MDgsIDB4MGEsIDB4MDIsIDB4MDksIDB4YjAsIDB4NjcsIDB4OGUsIDB4NDIsIDB4MjEsIDB4ZjQsIDB4NTIsIDB4MzQsIDB4N2MsIDB4YjIsIDB4MjMsIAotICAgIDB4MGEsIDB4MGIsIDB4Y2EsIDB4MTksIDB4NDksIDB4MDAsIDB4MzAsIDB4ZDUsIDB4OTksIDB4MDQsIDB4ZGEsIDB4MTksIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIAotICAgIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIAotICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIAotICAgIDB4MGMsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDEsIDB4NjgsIDB4MTIsIDB4NDQsIDB4NDAsIDB4Y2EsIDB4YjgsIDB4MDksIDB4YjAsIDB4MDAsIDB4MTAsIAotICAgIDB4NDQsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4YmYsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIAotICAgIDB4MDgsIDB4NjgsIDB4MDQsIDB4NDQsIDB4MDgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4ZjcsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4Y2EsIDB4YjgsIDB4NzQsIAotICAgIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZGEsIDB4YjgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MGEsIAotICAgIDB4NjIsIDB4MDksIDB4YjYsIDB4NjcsIDB4OGUsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NjgsIDB4MjAsIAotICAgIDB4NDIsIDB4MjcsIDB4Y2EsIDB4YjgsIDB4NzQsIDB4NjEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NTksIDB4NDYsIAotICAgIDB4MDEsIDB4YmYsIDB4MDksIDB4YjAsIDB4MDAsIDB4MTAsIDB4NDQsIDB4MDEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIDB4ODAsIDB4MTEsIAotICAgIDB4ZjQsIDB4NTIsIDB4MjcsIDB4NzQsIDB4YTEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MzgsIDB4NTksIDB4NDYsIDB4MDEsIAotICAgIDB4YmYsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4NzQsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MGEsIDB4NjIsIDB4MDksIDB4YjYsIAotICAgIDB4NjcsIDB4OGUsIDB4YTUsIDB4ZmQsIDB4ZjQsIDB4YTUsIDB4ZmUsIDB4Y2EsIDB4MjgsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4YTUsIDB4ZWUsIDB4NTIsIAotICAgIDB4MjYsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MjAsIDB4NTksIDB4NDYsIDB4MDEsIDB4YWYsIDB4ZGEsIDB4MjgsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIAotICAgIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDEsIDB4NjgsIDB4MGMsIAotICAgIDB4NDQsIDB4ODAsIDB4Y2EsIDB4YjgsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MmEsIDB4ZGEsIDB4YjgsIDB4ODAsIDB4MGEsIDB4NTQsIDB4N2YsIDB4Y2EsIDB4YjgsIAotICAgIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MmEsIDB4ZGEsIDB4YjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDgsIDB4NjgsIDB4MDQsIDB4NDQsIDB4MDIsIDB4ODAsIAotICAgIDB4MDIsIDB4NTQsIDB4ZmQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIAotICAgIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MjgsIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIDB4YWYsIAotICAgIDB4ODAsIDB4MDQsIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDQsIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIAotICAgIDB4MjksIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIDB4YWYsIDB4ODAsIDB4MGIsIDB4YTUsIDB4ZWUsIDB4NTIsIAotICAgIDB4MjksIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NzgsIDB4MDAsIDB4MTIsIDB4NDIsIDB4YWQsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIAotICAgIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIAotICAgIDB4MDAsIDB4MTAsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIAotICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIDB4MDAsIDB4MTgsIDB4MTksIDB4MzAsIDB4MDAsIAotICAgIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIAotICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MGMsIDB4NDQsIDB4NDAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZTUsIDB4NmUsIDB4YjQsIDB4MDcsIDB4MjMsIDB4MDksIAotICAgIDB4YjAsIDB4MDAsIDB4MTAsIDB4NGUsIDB4YjAsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIAotICAgIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZjcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIAotICAgIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIAotICAgIDB4MDIsIDB4ZTUsIDB4NmUsIDB4YjQsIDB4MDcsIDB4MTgsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIAotICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NDQsIDB4MDgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIAotICAgIDB4MDAsIDB4MGMsIDB4NTQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MzEsIDB4YjQsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4MjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGEsIDB4MzIsIDB4MDksIAotICAgIDB4YjMsIDB4NjcsIDB4OGUsIDB4NDIsIDB4MzUsIDB4MTIsIDB4NmMsIDB4NWIsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4YjAsIDB4MDEsIDB4N2UsIDB4YTAsIAotICAgIDB4YzgsIDB4N2MsIDB4NjQsIDB4MTIsIDB4NjIsIDB4YjYsIDB4NDAsIDB4MTMsIDB4MGEsIDB4MzIsIDB4MDksIDB4YjMsIDB4NjcsIDB4OGUsIDB4ZjQsIDB4NTIsIAotICAgIDB4MzUsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmYsIDB4ZDksIDB4ZDAsIDB4ZjEsIDB4MjIsIDB4NmMsIDB4OGMsIDB4NmMsIDB4ZDMsIAotICAgIDB4NmQsIDB4MWEsIDB4NmQsIDB4NjEsIDB4NmQsIDB4YTgsIDB4NmQsIDB4ZWYsIDB4NmUsIDB4MzYsIDB4NmUsIDB4N2QsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIAotICAgIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4N2YsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OGYsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIAotICAgIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MGQsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIAotICAgIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4N2YsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OGYsIDB4MDIsIDB4NDYsIDB4MGYsIDB4N2UsIDB4MTQsIDB4MDksIAotICAgIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIAotICAgIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODEsIDB4N2UsIAotICAgIDB4MjcsIDB4MDEsIDB4OTEsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIAotICAgIDB4MTQsIDB4MTEsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4ODEsIDB4N2EsIDB4MjcsIDB4MDEsIAotICAgIDB4OTEsIDB4MDIsIDB4NDksIDB4NjcsIDB4N2UsIDB4MTQsIDB4MGQsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4NzUsIDB4MzEsIDB4MDIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODMsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTMsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIAotICAgIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTUsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIAotICAgIDB4N2EsIDB4MTcsIDB4MDEsIDB4ODMsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTMsIDB4MDIsIDB4NGMsIDB4YmYsIDB4N2UsIDB4MTQsIDB4MTEsIDB4ZTMsIDB4ODAsIAotICAgIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODUsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OTUsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTksIAotICAgIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4ODUsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTUsIDB4MDIsIAotICAgIDB4NTAsIDB4MTcsIDB4N2UsIDB4MTQsIDB4MTUsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIAotICAgIDB4MDQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIAotICAgIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODcsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTcsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIAotICAgIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MWQsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIAotICAgIDB4MDEsIDB4ODcsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTcsIDB4MDIsIDB4NTMsIDB4NmYsIDB4N2UsIDB4MTQsIDB4MTksIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIAotICAgIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4ODksIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTksIDB4MmQsIAotICAgIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjEsIDB4ZTIsIDB4MzgsIAotICAgIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4ODksIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTksIDB4MDIsIDB4NTYsIDB4YzcsIAotICAgIDB4N2UsIDB4MTQsIDB4MWQsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDYsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIAotICAgIDB4MDEsIDB4OGIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWIsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIAotICAgIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjUsIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4OGIsIAotICAgIDB4N2EsIDB4MjcsIDB4MDEsIDB4OWIsIDB4MDIsIDB4NWEsIDB4MWYsIDB4N2UsIDB4MTQsIDB4MjEsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MzEsIDB4NTUsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4MzEsIDB4MDcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIAotICAgIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4OGQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWQsIDB4MmQsIDB4MjMsIDB4N2UsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjksIDB4ZTIsIDB4MzgsIDB4MGYsIDB4MWIsIAotICAgIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4OGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OWQsIDB4MDIsIDB4NWQsIDB4NzcsIDB4N2UsIDB4MTQsIAotICAgIDB4MjUsIDB4ZTMsIDB4ODAsIDB4ZWIsIDB4Y2EsIDB4YjgsIDB4YzAsIDB4ZjEsIDB4NzUsIDB4MzEsIDB4MDIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ZTUsIDB4YzAsIAotICAgIDB4NTQsIDB4MDMsIDB4NjgsIDB4MDUsIDB4MTIsIDB4NzUsIDB4Y2QsIDB4ODAsIDB4ZjUsIDB4MzAsIDB4YzIsIDB4MDgsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIAotICAgIDB4NmYsIDB4ZDksIDB4ODAsIDB4MTQsIDB4MzAsIDB4YzMsIDB4MDgsIDB4NzUsIDB4ZjEsIDB4MDEsIDB4MTIsIDB4NmUsIDB4ZmQsIDB4ODAsIDB4MDksIDB4MzAsIAotICAgIDB4YzQsIDB4MDYsIDB4NzUsIDB4ZjEsIDB4MDIsIDB4MTIsIDB4NzAsIDB4ZTksIDB4ZDAsIDB4ZjEsIDB4ZGEsIDB4YjgsIDB4MzIsIDB4NzUsIDB4MzEsIDB4MTAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MzksIDB4Y2EsIDB4NTksIDB4YzIsIDB4YzMsIDB4YTksIDB4MjEsIDB4ZTIsIDB4NWMsIDB4ZTUsIAotICAgIDB4ZTUsIDB4NTQsIDB4YzAsIDB4NjgsIDB4NGYsIDB4ZTUsIDB4ZTYsIDB4NmMsIDB4YWEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGIsIDB4MmQsIDB4MzUsIDB4YmUsIAotICAgIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4NGEsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZGIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZDksIDB4N2QsIDB4NDMsIDB4MmQsIAotICAgIDB4NDUsIDB4YmUsIDB4NDQsIDB4MDksIDB4ZTIsIDB4MzgsIDB4NDAsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZDksIDB4NzUsIDB4MzEsIDB4MTEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4YjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4NzEsIDB4YjgsIDB4YTksIDB4MjEsIDB4ZTUsIDB4MWYsIDB4YTksIDB4ZDQsIAotICAgIDB4ZTQsIDB4YTksIDB4MjQsIDB4ZTQsIDB4ZmMsIDB4YzIsIDB4YzMsIDB4YTksIDB4MjEsIDB4ZTIsIDB4M2IsIDB4ZTUsIDB4ZTUsIDB4NTQsIDB4YzAsIDB4NzgsIAotICAgIDB4YjQsIDB4MTIsIDB4NzQsIDB4NWEsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MzksIDB4ZGEsIDB4MGIsIDB4MjIsIDB4ODAsIDB4MjksIDB4ODAsIDB4NTgsIDB4NzUsIAotICAgIDB4MzEsIDB4MTYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4ODAsIDB4ZWQsIDB4NzUsIDB4MzEsIDB4MTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4YjEsIDB4MzEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4OWUsIDB4NDQsIDB4MDksIDB4ZTMsIDB4OWQsIDB4NTQsIDB4MTIsIDB4NzEsIDB4YjgsIDB4N2UsIDB4MzQsIDB4MDUsIDB4ZTMsIAotICAgIDB4N2QsIDB4NTQsIDB4MmQsIDB4NDMsIDB4ODAsIDB4YTEsIDB4ZTUsIDB4ZTUsIDB4NTQsIDB4MDMsIDB4NzgsIDB4MTIsIDB4NzUsIDB4MzEsIDB4MTMsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4N2UsIDB4MGYsIDB4MjksIDB4ZmYsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MjksIDB4ZmYsIDB4ODAsIDB4YTcsIDB4NzUsIDB4MzEsIAotICAgIDB4MTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MGYsIDB4MmEsIDB4MDMsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MmEsIDB4MDMsIDB4YTksIDB4ZDcsIAotICAgIDB4ZTQsIDB4YTksIDB4MjcsIDB4ZTQsIDB4ZmMsIDB4ODAsIDB4OWQsIDB4NzUsIDB4MzEsIDB4MTUsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MGYsIDB4MmEsIAotICAgIDB4MDcsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MmEsIDB4MDcsIDB4ODAsIDB4ZTUsIDB4NzUsIDB4MzEsIDB4MTgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4Y2EsIAotICAgIDB4MDksIDB4Y2EsIDB4MzksIDB4Y2EsIDB4MmIsIDB4YzIsIDB4YzIsIDB4YTksIDB4MjEsIDB4ZjIsIDB4NTIsIDB4ZTUsIDB4ZjUsIDB4MzMsIDB4ODIsIDB4ZTcsIAotICAgIDB4NDAsIDB4NDQsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZTEsIDB4N2UsIDB4NTQsIDB4MDAsIDB4NDAsIDB4OWQsIDB4MzUsIDB4NDAsIDB4NDMsIDB4N2EsIDB4MzcsIAotICAgIDB4MDEsIDB4ZTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGQsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDUsIDB4YmUsIDB4NDQsIDB4MDUsIDB4ZTIsIDB4MzgsIDB4NTIsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGQsIDB4N2QsIDB4NDUsIDB4MTIsIDB4NzMsIDB4MTYsIDB4YTksIDB4MjAsIDB4ZjUsIDB4MjIsIDB4NzUsIDB4MzEsIDB4MTksIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4OTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4ODEsIDB4ZjcsIDB4N2EsIDB4OTEsIDB4ZjYsIDB4ZTUsIAotICAgIDB4ZjUsIDB4MzMsIDB4ODIsIDB4ZTcsIDB4NTAsIDB4YmMsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MzksIDB4ZGEsIDB4MDksIDB4MjIsIDB4ODAsIDB4NDEsIDB4ODAsIAotICAgIDB4NjQsIDB4MmQsIDB4NTMsIDB4NmQsIDB4MzMsIDB4NzAsIDB4YjcsIDB4N2UsIDB4MDQsIDB4MDEsIDB4ZTMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGYsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4ZGQsIDB4YTksIDB4MzIsIDB4ZjIsIDB4ZGYsIDB4ODUsIDB4MzAsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4ZjYsIDB4MDAsIAotICAgIDB4ODAsIDB4ZDQsIDB4Y2EsIDB4NTksIDB4OWUsIDB4NDQsIDB4MDUsIDB4ZTMsIDB4OWQsIDB4NTQsIDB4MTIsIDB4NzMsIDB4MTYsIDB4N2UsIDB4MzQsIDB4MDEsIAotICAgIDB4ZTMsIDB4N2QsIDB4NTQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4ZGQsIDB4MTIsIDB4NzMsIDB4MTYsIDB4ZGEsIDB4NDksIDB4ODAsIDB4OTksIAotICAgIDB4ZTUsIDB4ZjUsIDB4NTQsIDB4MDMsIDB4NzgsIDB4MWYsIDB4N2UsIDB4MGYsIDB4MjksIDB4ZWYsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MjksIDB4ZWYsIAotICAgIDB4ODAsIDB4OWQsIDB4N2UsIDB4MGYsIDB4MjksIDB4ZjcsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MjksIDB4ZjcsIDB4YTksIDB4ZDcsIDB4ZjQsIDB4YTksIAotICAgIDB4MjcsIDB4ZjQsIDB4ZmMsIDB4ODAsIDB4OGEsIDB4N2UsIDB4MGYsIDB4MjksIDB4ZjMsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MjksIDB4ZjMsIDB4ODAsIAotICAgIDB4ZWIsIDB4ZTUsIDB4ZjUsIDB4NTQsIDB4MDMsIDB4NzgsIDB4MWYsIDB4N2UsIDB4MmYsIDB4MmEsIDB4MGYsIDB4MGIsIDB4MmMsIDB4N2EsIDB4MmYsIDB4MmEsIAotICAgIDB4MGYsIDB4ODAsIDB4MzQsIDB4N2UsIDB4MmYsIDB4MmEsIDB4MTcsIDB4MGIsIDB4MmMsIDB4N2EsIDB4MmYsIDB4MmEsIDB4MTcsIDB4YTksIDB4ZDcsIDB4ZjQsIAotICAgIDB4YTksIDB4MjcsIDB4ZjQsIDB4ZmMsIDB4ODAsIDB4MjEsIDB4N2UsIDB4MmYsIDB4MmEsIDB4MTMsIDB4MGIsIDB4MmMsIDB4N2EsIDB4MmYsIDB4MmEsIDB4MTMsIAotICAgIDB4ODAsIDB4ZWIsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4NzUsIDB4MzEsIDB4MjgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4Y2EsIAotICAgIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIDB4YzIsIDB4YzQsIDB4YTksIDB4MjEsIDB4ZjIsIDB4YjYsIDB4ZTUsIDB4ZjUsIDB4MzMsIDB4NzIsIDB4ZTcsIAotICAgIDB4NDAsIDB4ZTAsIDB4N2UsIDB4MGQsIDB4NDYsIDB4N2UsIDB4MWQsIDB4NGEsIDB4N2UsIDB4MmQsIDB4NGUsIDB4N2UsIDB4M2QsIDB4NTIsIDB4N2UsIDB4ODUsIAotICAgIDB4NTYsIDB4N2QsIDB4OTAsIDB4NGQsIDB4OTEsIDB4NGQsIDB4OTIsIDB4NGQsIDB4OTMsIDB4NGQsIDB4OTQsIDB4NGQsIDB4OTUsIDB4NGQsIDB4OTYsIDB4NGQsIAotICAgIDB4OTcsIDB4NGQsIDB4OTgsIDB4NjgsIDB4NzIsIDB4N2EsIDB4MTEsIDB4ZjMsIDB4N2EsIDB4MDEsIDB4ZjMsIDB4N2EsIDB4MzEsIDB4ZjMsIDB4N2EsIDB4MjEsIAotICAgIDB4ZjMsIDB4N2EsIDB4NTEsIDB4ZjMsIDB4N2EsIDB4NDEsIDB4ZjMsIDB4N2EsIDB4NzEsIDB4ZjMsIDB4N2EsIDB4NjEsIDB4ZjMsIDB4N2EsIDB4OTEsIDB4ZjMsIAotICAgIDB4N2EsIDB4ODEsIDB4ZjMsIDB4MzAsIDB4N2IsIDB4MWEsIDB4N2EsIDB4YjEsIDB4ZjMsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4N2EsIDB4ZDEsIDB4ZjMsIDB4N2EsIAotICAgIDB4YzEsIDB4ZjMsIDB4N2EsIDB4ZjEsIDB4ZjMsIDB4N2EsIDB4ZTEsIDB4ZjMsIDB4N2QsIDB4NzgsIDB4N2EsIDB4ZjEsIDB4ZjMsIDB4N2EsIDB4ZTEsIDB4ZjMsIAotICAgIDB4YTksIDB4MzAsIDB4ZjUsIDB4MDMsIDB4MDIsIDB4NzAsIDB4ZDYsIDB4NzUsIDB4MzEsIDB4MjksIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjAsIDB4N2IsIDB4MGIsIAotICAgIDB4NzUsIDB4MzEsIDB4MGEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NzUsIDB4ZjYsIDB4MGEsIDB4ODAsIDB4MDksIDB4NzUsIDB4MzEsIDB4MTIsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4NzUsIDB4ZjYsIDB4MTIsIDB4NmQsIDB4MDAsIDB4N2QsIDB4MTAsIDB4N2EsIDB4MGQsIDB4NDYsIDB4N2EsIDB4MGQsIDB4NGEsIDB4N2EsIDB4MGQsIAotICAgIDB4NGUsIDB4N2EsIDB4MGQsIDB4NTIsIDB4N2EsIDB4MDUsIDB4NTYsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4MWUsIDB4YjAsIAotICAgIDB4NDAsIDB4MGMsIDB4N2UsIDB4YTAsIDB4MGEsIDB4YTQsIDB4N2UsIDB4MDQsIDB4NzIsIDB4ZmIsIDB4OWQsIDB4MDUsIDB4ODksIDB4MDQsIDB4N2UsIDB4YTEsIAotICAgIDB4ZTMsIDB4N2EsIDB4MzksIDB4YTAsIDB4MGIsIDB4MzQsIDB4ODAsIDB4ZWEsIDB4YjQsIDB4NDAsIDB4ZTMsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIAotICAgIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIAotICAgIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIAotICAgIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIAotICAgIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIAotICAgIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIAotICAgIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIAotICAgIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIAotICAgIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIAotICAgIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIAotICAgIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIAotICAgIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIAotICAgIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIAotICAgIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIAotICAgIDB4MzUsIDB4N2UsIDB4YTEsIDB4ZTMsIDB4ZTUsIDB4ZTMsIDB4MWIsIDB4MzgsIDB4NTAsIDB4MGIsIDB4MzUsIDB4MjIsIDB4MWUsIDB4YjAsIDB4NDAsIDB4MGMsIAotICAgIDB4N2UsIDB4YTAsIDB4MGEsIDB4YTQsIDB4N2UsIDB4MDQsIDB4NzQsIDB4NTksIDB4OWQsIDB4MDUsIDB4ODksIDB4MDQsIDB4N2UsIDB4MzksIDB4YTAsIDB4N2EsIAotICAgIDB4YTEsIDB4ZjMsIDB4MGIsIDB4MzQsIDB4ODAsIDB4ZWEsIDB4YjQsIDB4NDAsIDB4ZTMsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIAotICAgIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIAotICAgIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIAotICAgIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIAotICAgIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIAotICAgIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIAotICAgIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIAotICAgIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIAotICAgIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIAotICAgIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIAotICAgIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIAotICAgIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIAotICAgIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIAotICAgIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MGIsIAotICAgIDB4MzgsIDB4NTAsIDB4N2EsIDB4YTEsIDB4ZjMsIDB4ZjUsIDB4ZjMsIDB4MGIsIDB4MzUsIDB4MjIsIDB4YzIsIDB4YWYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ZGIsIAotICAgIDB4NGQsIDB4MzMsIDB4NjgsIDB4M2IsIDB4N2UsIDB4MDcsIDB4MDEsIDB4ZDcsIDB4N2UsIDB4NTQsIDB4MDksIDB4ZTMsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MzUsIAotICAgIDB4NDAsIDB4MDIsIDB4N2QsIDB4MzUsIDB4Y2EsIDB4MzksIDB4N2UsIDB4NjUsIDB4NjEsIDB4OTksIDB4NjQsIDB4ZGEsIDB4MzksIDB4N2UsIDB4MDcsIDB4MDEsIAotICAgIDB4ZGIsIDB4OWQsIDB4MDMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ZGIsIDB4MmUsIDB4MzcsIDB4MDEsIDB4ZDcsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZDcsIDB4YmUsIAotICAgIDB4MzQsIDB4MDksIDB4ZTIsIDB4MjgsIDB4YzcsIDB4N2UsIDB4MzQsIDB4MDUsIDB4ZTMsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ZDcsIDB4ODAsIDB4YmQsIDB4ZDIsIAotICAgIDB4YWYsIDB4MjIsIDB4NzUsIDB4MzEsIDB4NTMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTUsIDB4NjMsIDB4ODAsIDB4MTEsIDB4NzUsIDB4MzEsIDB4NTEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4MGIsIDB4MDgsIDB4MTAsIDB4MGIsIDB4MDUsIDB4OWUsIDB4MzQsIDB4MDAsIDB4MDIsIDB4MjgsIDB4NGQsIDB4N2MsIDB4YjIsIAotICAgIDB4MjAsIDB4ZTcsIDB4MjcsIDB4NTQsIDB4MDcsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4NmMsIDB4N2MsIDB4N2MsIDB4YjIsIDB4NTQsIDB4NzgsIAotICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4N2MsIDB4MmIsIDB4OWQsIDB4MTMsIDB4NDAsIDB4MWEsIDB4NjgsIDB4MTIsIDB4N2EsIDB4MTUsIDB4NjMsIDB4N2EsIDB4MjUsIAotICAgIDB4NjUsIDB4N2UsIDB4NjQsIDB4NzUsIDB4MzcsIDB4N2EsIDB4NjUsIDB4NjEsIDB4ODksIDB4MjQsIDB4MDIsIDB4NzUsIDB4NDUsIDB4N2UsIDB4NjQsIDB4NzQsIAotICAgIDB4YWQsIDB4ODAsIDB4ZjIsIDB4MmQsIDB4MTMsIDB4OWQsIDB4MzEsIDB4Y2EsIDB4MzksIDB4N2QsIDB4MzEsIDB4MmQsIDB4MTAsIDB4Y2EsIDB4MTksIDB4Y2EsIAotICAgIDB4MjksIDB4OTksIDB4MjQsIDB4ZGEsIDB4MjksIDB4ZGEsIDB4MDksIDB4ZGEsIDB4MzksIDB4ODAsIDB4YTIsIDB4N2EsIDB4MTUsIDB4NjMsIDB4N2UsIDB4NjQsIAotICAgIDB4NzUsIDB4MjMsIDB4NGQsIDB4MzMsIDB4NzgsIDB4MDksIDB4N2MsIDB4YjIsIDB4MjAsIDB4ZTcsIDB4MmEsIDB4N2UsIDB4NjQsIDB4NzQsIDB4YTIsIDB4N2EsIAotICAgIDB4NjUsIDB4NjEsIDB4MjIsIDB4NzUsIDB4MzEsIDB4NTIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MjEsIDB4NjMsIDB4N2UsIDB4MDksIDB4MzAsIDB4MGIsIAotICAgIDB4MDQsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ODksIDB4ODAsIDB4ZDQsIDB4NzUsIDB4MzEsIDB4NTQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MTUsIDB4NjMsIAotICAgIDB4N2UsIDB4MjUsIDB4NjUsIDB4ODAsIDB4OTAsIDB4NWUsIDB4MjAsIDB4MDcsIDB4NTQsIDB4NzgsIDB4N2UsIDB4NDQsIDB4NzUsIDB4YzEsIDB4MzAsIDB4ZTYsIAotICAgIDB4MTYsIDB4NGQsIDB4MzMsIDB4NjgsIDB4MjYsIDB4MWIsIDB4MzQsIDB4N2UsIDB4MDksIDB4NDAsIDB4MGIsIDB4MDQsIDB4N2UsIDB4NDQsIDB4NjcsIDB4NjMsIAotICAgIDB4MjAsIDB4ZTMsIDB4MDQsIDB4N2UsIDB4NDQsIDB4NzUsIDB4YzksIDB4Y2EsIDB4MDksIDB4Y2EsIDB4MzksIDB4OTksIDB4NDQsIDB4ZGEsIDB4MzksIDB4ZGEsIAotICAgIDB4MDksIDB4N2UsIDB4NjQsIDB4NzQsIDB4YWQsIDB4NGQsIDB4MzMsIDB4NjgsIDB4YTYsIDB4ODksIDB4NjQsIDB4N2EsIDB4MTUsIDB4NjMsIDB4ZjUsIDB4NjUsIAotICAgIDB4N2UsIDB4NjQsIDB4NzUsIDB4ODYsIDB4ODAsIDB4OTksIDB4N2UsIDB4MTUsIDB4NjMsIDB4ZTUsIDB4NjUsIDB4ODAsIDB4YzQsIDB4YzAsIDB4ZDAsIDB4YzAsIAotICAgIDB4ZDEsIDB4YzAsIDB4ZTAsIDB4Y2EsIDB4MTksIDB4YTksIDB4MjAsIDB4ZGYsIDB4MTIsIDB4YTksIDB4MjEsIDB4ZGYsIDB4MWIsIDB4NzUsIDB4MzEsIDB4MDEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4NTMsIDB4ZGYsIDB4ZjcsIDB4MTIsIDB4NDAsIDB4ZGMsIDB4ODAsIDB4MGQsIDB4NzUsIDB4MzEsIDB4ZmUsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2UsIDB4MTQsIDB4MDAsIDB4NTMsIDB4MDIsIDB4NDAsIDB4NTEsIDB4ZGEsIDB4MTksIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ZDEsIDB4ZDAsIDB4ZDAsIAotICAgIDB4MzIsIDB4MDMsIDB4YTUsIDB4Y2IsIDB4MTksIDB4YjEsIDB4ODAsIDB4MDAsIDB4MjIsIDB4MjIsIDB4MDIsIDB4NzYsIDB4NDIsIDB4Y2EsIDB4MGIsIDB4Y2EsIAotICAgIDB4MWIsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4M2IsIDB4Y2EsIDB4NGIsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIDB4Y2EsIDB4N2IsIDB4Y2EsIDB4ZWIsIDB4YzAsIAotICAgIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzMsIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MTksIDB4YjQsIDB4MDEsIDB4MTYsIDB4MzAsIDB4YzAsIDB4MDgsIAotICAgIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIDB4MmMsIDB4ODAsIDB4MWYsIDB4MzAsIDB4YzEsIDB4MWMsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIAotICAgIDB4YmQsIDB4ODAsIDB4MTQsIDB4MzAsIDB4YzEsIDB4MDgsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIDB4YmQsIDB4ODAsIDB4MDksIDB4MzAsIDB4YzAsIAotICAgIDB4MDYsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4NzYsIDB4MmMsIDB4ZDAsIDB4ZjEsIDB4ZGEsIDB4ZWIsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4NmIsIDB4ZGEsIAotICAgIDB4NWIsIDB4ZGEsIDB4NGIsIDB4ZGEsIDB4M2IsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4YzIsIDB4YzAsIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MzMsIDB4YjQsIDB4MDIsIDB4MDcsIDB4MTIsIDB4NzYsIDB4NGUsIDB4MDIsIDB4NzYsIDB4NDIsIDB4MjIsIDB4YjQsIDB4MDEsIDB4ZmMsIDB4MDIsIAotICAgIDB4NzYsIDB4ODgsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MmEsIDB4MzMsIDB4N2EsIDB4MDMsIDB4MmEsIDB4MzQsIDB4MjIsIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MmIsIDB4NTQsIDB4NjAsIDB4NjAsIDB4MDUsIDB4YjQsIDB4NDAsIDB4MTUsIDB4ODAsIDB4MTMsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIAotICAgIDB4MDUsIDB4MGMsIDB4NzUsIDB4MzEsIDB4NzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4ZjUsIDB4OGYsIDB4MjIsIDB4NzUsIAotICAgIDB4ZjYsIDB4MDAsIDB4MjIsIDB4YmUsIDB4NTcsIDB4MmEsIDB4MzEsIDB4MjgsIDB4MDQsIDB4N2UsIDB4NTcsIDB4MmEsIDB4MzEsIDB4N2EsIDB4MGYsIDB4MmEsIAotICAgIDB4MzYsIDB4N2EsIDB4NTcsIDB4MmEsIDB4M2EsIDB4MDIsIDB4NzYsIDB4ODgsIDB4N2UsIDB4ZWYsIDB4MmEsIDB4MzYsIDB4N2UsIDB4ZjcsIDB4MmEsIDB4M2EsIAotICAgIDB4N2UsIDB4MDcsIDB4MmEsIDB4M2EsIDB4NGQsIDB4MDAsIDB4NjgsIDB4MjEsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2UsIDB4ZWIsIDB4YjAsIDB4ZjUsIDB4ZjMsIAotICAgIDB4YTMsIDB4YTUsIDB4MDgsIDB4MWIsIDB4ZjQsIDB4NjgsIDB4MDQsIDB4YTUsIDB4YjgsIDB4MDgsIDB4ZjAsIDB4N2EsIDB4ZWYsIDB4MmEsIDB4MzYsIDB4N2EsIAotICAgIDB4ZjcsIDB4MmEsIDB4M2EsIDB4NzUsIDB4MzEsIDB4MDYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MDEsIDB4ZjYsIDB4MjIsIDB4YzIsIDB4YzEsIDB4NzUsIAotICAgIDB4MzEsIDB4MDMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTksIDB4MzYsIDB4ZTIsIDB4MTYsIDB4ZTUsIDB4ZjUsIDB4NTQsIDB4YzAsIDB4NjgsIDB4MDcsIDB4YTksIAotICAgIDB4ZDcsIDB4ZjQsIDB4YTksIDB4MjcsIDB4ZjQsIDB4ZmMsIDB4NTMsIDB4ZTEsIDB4M2YsIDB4NDMsIDB4ZjIsIDB4ODgsIDB4MDIsIDB4NzcsIDB4MjksIDB4N2UsIAotICAgIDB4YjMsIDB4MmEsIDB4MzQsIDB4YjQsIDB4MDIsIDB4MDQsIDB4YTksIDB4ZDQsIDB4ZTQsIDB4MjIsIDB4YjQsIDB4MDEsIDB4MzksIDB4N2UsIDB4MjEsIDB4ZTYsIAotICAgIDB4N2MsIDB4MzIsIDB4N2UsIDB4MTMsIDB4MmEsIDB4MzUsIDB4MmMsIDB4MjEsIDB4N2EsIDB4MjMsIDB4MmEsIDB4MzUsIDB4N2UsIDB4MDAsIDB4MDAsIDB4MmUsIAotICAgIDB4MDQsIDB4MmEsIDB4M2MsIDB4ZTUsIDB4ZTMsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4YTUsIDB4ZGIsIDB4ZjYsIDB4YTksIDB4ZDQsIDB4ZTQsIAotICAgIDB4NzUsIDB4MzEsIDB4NzAsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzUsIDB4N2UsIDB4YTMsIDB4MmEsIDB4MzIsIDB4YmMsIDB4YWIsIAotICAgIDB4NzgsIDB4MDMsIDB4MTIsIDB4NzcsIDB4YzAsIDB4MjIsIDB4MDIsIDB4N2IsIDB4MjksIDB4ZTUsIDB4ZTYsIDB4YjQsIDB4MDgsIDB4NjUsIDB4YTksIDB4YzQsIAotICAgIDB4ZTIsIDB4N2UsIDB4MDEsIDB4ZTMsIDB4N2UsIDB4MTEsIDB4ZTMsIDB4N2UsIDB4MzEsIDB4ZTMsIDB4N2UsIDB4MjEsIDB4ZTMsIDB4N2UsIDB4NTEsIDB4ZTMsIAotICAgIDB4N2UsIDB4NDEsIDB4ZTMsIDB4N2UsIDB4NzEsIDB4ZTMsIDB4N2UsIDB4NjEsIDB4ZTMsIDB4N2EsIDB4MGYsIDB4MmEsIDB4MmIsIDB4N2EsIDB4MWYsIDB4MmEsIAotICAgIDB4MmYsIDB4NzUsIDB4MzEsIDB4MDQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MTEsIDB4MzEsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MjEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIAotICAgIDB4NDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4NjEsIDB4MzEsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4NzEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YTksIDB4ZDQsIDB4ZTQsIDB4YTksIDB4ZDcsIDB4ZjQsIDB4YTksIDB4YzYsIDB4ZTIsIAotICAgIDB4MTIsIDB4NzcsIDB4OTQsIDB4MjIsIDB4NmQsIDB4MDAsIDB4N2UsIDB4MTQsIDB4MDEsIDB4MDIsIDB4N2EsIDB4MDcsIDB4MmEsIDB4M2EsIDB4N2EsIDB4MDMsIAotICAgIDB4MmEsIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmIsIDB4MjAsIDB4ZTcsIDB4MGYsIDB4N2EsIDB4MjMsIDB4MmEsIDB4MzQsIDB4N2EsIDB4MzMsIDB4MmEsIAotICAgIDB4MzMsIDB4YmUsIDB4MDcsIDB4MmEsIDB4MzEsIDB4NjgsIDB4MDksIDB4MjIsIDB4N2EsIDB4MzMsIDB4MmEsIDB4MzQsIDB4N2EsIDB4MjMsIDB4MmEsIDB4MzMsIAotICAgIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmIsIDB4NTQsIDB4ZTMsIDB4MjMsIDB4MjMsIDB4MzAsIDB4ZTAsIDB4MDIsIDB4ZDIsIDB4ZTUsIDB4MzAsIDB4ZTcsIDB4MDIsIAotICAgIDB4ZDIsIDB4ZTQsIDB4MzAsIDB4ZTUsIDB4MDYsIDB4MzAsIDB4ZTQsIDB4MDMsIDB4MDIsIDB4N2IsIDB4MjksIDB4NTQsIDB4M2UsIDB4ZjUsIDB4ZjAsIDB4MDMsIAotICAgIDB4NTQsIDB4MWYsIDB4YzMsIDB4MjUsIDB4ZjAsIDB4OTAsIDB4NzcsIDB4ZWMsIDB4NzUsIDB4ODQsIDB4ZmYsIDB4NzMsIDB4MDIsIDB4NzksIDB4NDAsIDB4MDIsIAotICAgIDB4NzgsIDB4MzQsIDB4MDIsIDB4NzksIDB4ZGQsIDB4MDIsIDB4NzksIDB4ZjgsIDB4MDIsIDB4NzgsIDB4ZDksIDB4MDIsIDB4NzgsIDB4OWEsIDB4MDIsIDB4N2EsIAotICAgIDB4MTEsIDB4MDIsIDB4N2EsIDB4MTEsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIAotICAgIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MTQsIDB4MDIsIDB4N2EsIDB4MWEsIDB4MDIsIAotICAgIDB4N2EsIDB4Y2UsIDB4MDIsIDB4N2EsIDB4MTcsIDB4MDIsIDB4N2EsIDB4MTcsIDB4MDIsIDB4N2EsIDB4MTcsIDB4MDIsIDB4N2EsIDB4MTcsIDB4MDIsIDB4N2EsIAotICAgIDB4MTcsIDB4MDIsIDB4N2EsIDB4MTcsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDYsIDB4MmEsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmQsIDB4NjAsIAotICAgIDB4NTYsIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MmEsIDB4MmUsIDB4N2UsIDB4MTcsIDB4MmEsIDB4MmYsIDB4NzUsIDB4MzEsIDB4NzIsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2EsIDB4MDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MTEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4N2IsIDB4MzMsIAotICAgIDB4NDAsIDB4MzUsIDB4MDIsIDB4NzYsIDB4NzMsIDB4YjQsIDB4MDgsIDB4MTAsIDB4NzUsIDB4MzEsIDB4NzQsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIAotICAgIDB4M2YsIDB4ZjEsIDB4ZjUsIDB4ZjMsIDB4NzUsIDB4ZjYsIDB4MDEsIDB4MjIsIDB4YjQsIDB4MDAsIDB4MWMsIDB4NzUsIDB4MzEsIDB4NzUsIDB4MTIsIDB4N2MsIAotICAgIDB4MTUsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4MzAsIDB4ZTAsIDB4MDUsIDB4NzUsIDB4ZjMsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NzUsIDB4ZjMsIDB4MDAsIAotICAgIDB4NzUsIDB4ZjMsIDB4MDAsIDB4NzUsIDB4ZjYsIDB4MDIsIDB4MjIsIDB4MDIsIDB4N2IsIDB4MjksIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDAsIAotICAgIDB4MzUsIDB4NzUsIDB4MzEsIDB4NzYsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzAsIDB4NTQsIDB4MGYsIDB4ZjUsIDB4ZjEsIDB4N2UsIAotICAgIDB4YjMsIDB4MmEsIDB4MzAsIDB4MjAsIDB4ZTcsIDB4MDksIDB4ZTUsIDB4ZTEsIDB4MzAsIDB4ZTcsIDB4MGQsIDB4NzQsIDB4MDEsIDB4ODAsIDB4MGIsIDB4ZTUsIAotICAgIDB4ZTEsIDB4MzAsIDB4ZTYsIDB4MDQsIDB4NzQsIDB4MDEsIDB4ODAsIDB4MDIsIDB4NzQsIDB4MDAsIDB4NTMsIDB4ZjEsIDB4ODAsIDB4ZjUsIDB4ZjMsIDB4NzUsIAotICAgIDB4ZjMsIDB4MDAsIDB4NzUsIDB4ZjYsIDB4MDIsIDB4MjIsIDB4MDIsIDB4N2IsIDB4MjksIDB4YzAsIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzAsIDB4NTQsIAotICAgIDB4MGYsIDB4NDIsIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4YjQsIDB4MDAsIDB4NDUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDEsIAotICAgIDB4MjQsIDB4NzUsIDB4MzEsIDB4NzcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzAsIDB4NTQsIDB4MGYsIDB4NzgsIDB4MDUsIDB4NTMsIAotICAgIDB4ZTEsIDB4M2YsIDB4ODAsIDB4MzcsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MzAsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4NTMsIDB4ZTEsIDB4N2YsIDB4ODAsIDB4MmIsIAotICAgIDB4NTMsIDB4ZTEsIDB4YmYsIDB4ODAsIDB4MjYsIDB4YjQsIDB4MDMsIDB4MTcsIDB4NzUsIDB4MzEsIDB4NzgsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MzAsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4NDMsIDB4ZTEsIDB4ODAsIDB4ODAsIDB4MTEsIDB4NDMsIDB4ZTEsIDB4NDAsIDB4ODAsIDB4MGMsIDB4NDMsIAotICAgIDB4ZTEsIDB4YzAsIDB4ZDAsIDB4ZjEsIDB4NzUsIDB4MzEsIDB4MDcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MjIsIDB4ZDAsIDB4ZjEsIDB4MDIsIDB4NzYsIDB4NmYsIAotICAgIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDksIDB4MjMsIDB4NzUsIDB4MzEsIDB4NzksIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIAotICAgIDB4MmUsIDB4YmUsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4NjgsIDB4MTEsIDB4Y2EsIDB4YjgsIDB4YzAsIDB4ZjEsIDB4MTIsIDB4NDMsIDB4ZDQsIDB4ZDAsIDB4ZjEsIAotICAgIDB4ZGEsIDB4YjgsIDB4NTAsIDB4NzYsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4ODAsIDB4NmQsIDB4YjQsIDB4MDUsIDB4MDgsIDB4NzUsIDB4MzEsIDB4N2EsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4ODAsIDB4NjIsIDB4YjQsIDB4MDMsIDB4MTksIDB4NzUsIDB4MzEsIDB4N2IsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MmUsIDB4YjQsIDB4MDEsIDB4NTUsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NDQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIAotICAgIDB4NDYsIDB4YjQsIDB4MDEsIDB4MTksIDB4NzUsIDB4MzEsIDB4N2MsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4YjQsIDB4MDEsIAotICAgIDB4MzksIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NTQsIDB4ZmUsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIDB4MmEsIDB4YjQsIDB4MDcsIDB4MmEsIAotICAgIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmQsIDB4NjAsIDB4MjQsIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MmEsIDB4MmUsIDB4N2UsIDB4MTcsIDB4MmEsIDB4MmYsIAotICAgIDB4NzUsIDB4MzEsIDB4NzMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MDEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2EsIDB4MTEsIDB4MzEsIDB4MTIsIAotICAgIDB4N2MsIDB4MTUsIDB4MTIsIDB4N2IsIDB4NWYsIDB4NDAsIDB4MDMsIDB4MDIsIDB4NzYsIDB4NmYsIDB4MDIsIDB4N2IsIDB4MjksIDB4N2UsIDB4YjMsIDB4MmEsIAotICAgIDB4MmMsIDB4YjQsIDB4MGIsIDB4ZjYsIDB4NzUsIDB4MzEsIDB4N2QsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4N2UsIDB4YTMsIAotICAgIDB4MmEsIDB4MzAsIDB4NGMsIDB4YWIsIDB4NzgsIDB4ZTQsIDB4ODAsIDB4ZGYsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MGEsIDB4ZGIsIDB4NzUsIAotICAgIDB4MzEsIDB4N2UsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmUsIDB4NzAsIDB4Y2YsIDB4ZjUsIDB4ZjMsIDB4NzUsIDB4ZjYsIDB4MDEsIAotICAgIDB4MjIsIDB4MDIsIDB4N2IsIDB4MjksIDB4MDIsIDB4N2IsIDB4MjksIDB4MDIsIDB4N2IsIDB4MjksIDB4N2UsIDB4YjMsIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDQsIAotICAgIDB4MjAsIDB4NzUsIDB4MzEsIDB4YzMsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTcsIDB4MmEsIDB4MmQsIDB4N2UsIAotICAgIDB4MTgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NDcsIDB4MmEsIDB4MzEsIDB4MTIsIDB4N2MsIDB4MjEsIDB4MDIsIDB4N2EsIAotICAgIDB4YzgsIDB4YjQsIDB4MDYsIDB4M2EsIDB4NzUsIDB4MzEsIDB4YzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIAotICAgIDB4MDAsIDB4ZmUsIDB4N2QsIDB4Y2EsIDB4N2UsIDB4ZDcsIDB4MmEsIDB4MmQsIDB4N2UsIDB4NzgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIAotICAgIDB4N2UsIDB4NzcsIDB4MmEsIDB4MzEsIDB4NzUsIDB4MzEsIDB4YzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIAotICAgIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4N2MsIDB4NWEsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4NDAsIDB4NGYsIDB4ODAsIDB4NGEsIDB4YjQsIDB4MDAsIAotICAgIDB4MWMsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4NzYsIDB4NmYsIDB4ZTQsIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIAotICAgIDB4ZDUsIDB4ZTAsIDB4ZjcsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MDIsIDB4ZmYsIDB4Y2EsIDB4MDYsIDB4MDAsIDB4MDAsIDB4MzIsIDB4YjQsIDB4MDksIDB4MTIsIAotICAgIDB4N2UsIDB4NTcsIDB4MmEsIDB4MmQsIDB4NGQsIDB4NTUsIDB4NjgsIDB4MDUsIDB4YTksIDB4ZDIsIDB4YjEsIDB4ODAsIDB4MDMsIDB4YTksIDB4YzIsIDB4YjEsIAotICAgIDB4ODAsIDB4MTYsIDB4YjQsIDB4MDcsIDB4MTYsIDB4YzIsIDB4YWYsIDB4N2UsIDB4MDcsIDB4MmEsIDB4MmYsIDB4N2UsIDB4MTcsIDB4MmEsIDB4MmQsIDB4YzAsIAotICAgIDB4ZDEsIDB4Y2EsIDB4MTgsIDB4Y2EsIDB4MzgsIDB4Y2EsIDB4MjgsIDB4MzIsIDB4MDIsIDB4NzYsIDB4NmYsIDB4MDIsIDB4N2IsIDB4MjksIDB4N2UsIDB4YjMsIAotICAgIDB4MmEsIDB4MmMsIDB4YjQsIDB4MDMsIDB4MTUsIDB4NzUsIDB4MzEsIDB4YzIsIDB4MTIsIDB4N2MsIDB4MTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIAotICAgIDB4MTcsIDB4MmEsIDB4MmQsIDB4N2UsIDB4NTcsIDB4MmEsIDB4MzEsIDB4MDIsIDB4NzYsIDB4NzMsIDB4YjQsIDB4MDUsIDB4MzksIDB4NzUsIDB4MzEsIDB4YzAsIAotICAgIDB4MTIsIDB4N2MsIDB4MTUsIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4N2UsIDB4MDgsIDB4MmEsIDB4M2MsIAotICAgIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzcsIDB4MmEsIDB4MmQsIDB4N2UsIDB4NDcsIDB4MmEsIDB4MzEsIAotICAgIDB4MTIsIDB4N2MsIDB4MjEsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4N2UsIDB4MDgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIAotICAgIDB4NTcsIDB4MmEsIDB4MzEsIDB4MDIsIDB4NzYsIDB4NzMsIDB4MDIsIDB4N2IsIDB4MjksIDB4NzUsIDB4MzEsIDB4MDcsIDB4MTIsIDB4N2MsIDB4MTUsIDB4NDMsIAotICAgIDB4ZTEsIDB4YzAsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4N2IsIDB4OWUsIDB4NDAsIAotICAgIDB4MTksIDB4N2UsIDB4MDgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4NDksIDB4MTIsIDB4N2MsIDB4MjEsIAotICAgIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MGIsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4YzAsIAotICAgIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4N2IsIDB4OWUsIDB4NDAsIDB4MmIsIDB4N2UsIDB4NTgsIDB4MDAsIAotICAgIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2YsIDB4NjEsIDB4N2UsIDB4NzgsIDB4MmEsIDB4M2MsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIAotICAgIDB4NzcsIDB4MmEsIDB4MzEsIDB4YmQsIDB4NzQsIDB4NzgsIDB4MTEsIDB4NzUsIDB4MzEsIDB4YzEsIDB4MTIsIDB4N2MsIDB4MTUsIDB4MTIsIDB4N2MsIDB4NWEsIAotICAgIDB4NDAsIDB4MDYsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4ZDMsIDB4MjIsIDB4N2UsIDB4MjQsIAotICAgIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzQsIDB4N2YsIDB4Y2EsIDB4MGIsIDB4MWEsIDB4NTAsIDB4YzUsIDB4ZjAsIDB4N2QsIDB4NjIsIDB4N2QsIDB4NzUsIDB4N2QsIAotICAgIDB4ODcsIDB4N2UsIDB4MzQsIDB4N2YsIDB4YzIsIDB4N2UsIDB4MWIsIDB4YjAsIDB4N2UsIDB4MzQsIDB4N2YsIDB4MDMsIDB4YjQsIDB4MDEsIDB4MDQsIDB4N2UsIAotICAgIDB4MzQsIDB4N2YsIDB4Y2MsIDB4N2UsIDB4MWIsIDB4YjAsIDB4YmMsIDB4MGIsIDB4NTAsIDB4NDksIDB4M2UsIDB4MDAsIDB4M2UsIDB4MDAsIDB4MGEsIDB4NTAsIAotICAgIDB4MmQsIDB4NzUsIDB4MGIsIDB4M2EsIDB4MzAsIDB4NjksIDB4NTMsIDB4MDAsIDB4MDIsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmMsIAotICAgIDB4MWIsIDB4NTAsIDB4MzAsIDB4M2UsIDB4MTAsIDB4M2UsIDB4MTAsIDB4MGEsIDB4NTEsIDB4MmQsIDB4MzUsIDB4NjksIDB4NDEsIDB4MDAsIDB4MDIsIDB4MGIsIAotICAgIDB4MWEsIDB4MzAsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmUsIDB4NDQsIDB4ZmYsIDB4ZmYsIDB4NzgsIDB4MDUsIDB4N2UsIDB4MWIsIAotICAgIDB4OTAsIDB4MGEsIDB4NDksIDB4NGQsIDB4NDQsIDB4NjgsIDB4MGMsIDB4YmUsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4MjgsIDB4MDQsIDB4N2UsIDB4NDQsIDB4MDAsIAotICAgIDB4ZmYsIDB4YzMsIDB4MjIsIDB4ZDMsIDB4MjIsIAotCi0vLyBTZWdtZW50ICMxNiwgU3RhcnQgQWRkcmVzcyAwMGZmN2ZjNiwgTGVuZ3RoIDQKLTB4ZmYsMHgwMCwweGM2LDB4N2YsMHgwNCwweDAwLAotICAgIDB4MDEsIDB4MTAsIDB4MDQsIDB4MDAsIAotCi0vLyBTZWdtZW50ICMxNywgU3RhcnQgQWRkcmVzcyAwMGZmN2MxNSwgTGVuZ3RoIDMzMAotMHhmZiwweDAwLDB4MTUsMHg3YywweDRhLDB4MDEsCi0gICAgMHhjYSwgMHgwOCwgMHg3ZSwgMHgwMSwgMHgzMSwgMHg3YSwgMHgwMywgMHgzZiwgMHhmMCwgMHhkYSwgMHgwOCwgMHgyMiwgMHg3ZSwgMHgxYiwgMHhjMCwgMHg3YSwgCi0gICAgMHgwYiwgMHhjMCwgMHgwYiwgMHgxNCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg3OCwgMHhmMiwgMHgyMiwgMHg3ZiwgMHg2ZiwgMHg3ZiwgMHhmMCwgMHgxYiwgCi0gICAgMHhmYywgMHg3YywgMHg1NCwgMHg3ZCwgMHgzMiwgMHg4MCwgMHgwOCwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHg5ZSwgCi0gICAgMHg0NCwgMHgwMCwgMHgxMCwgMHg1MCwgMHhmMiwgMHgyZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwNiwgMHhjYSwgMHg0OCwgMHgxYiwgMHg0NCwgMHg3OCwgCi0gICAgMHhmYSwgMHg3ZiwgMHhmNiwgMHg4OSwgMHhlNCwgMHhjYSwgMHg2YiwgMHg1ZSwgMHhkNCwgMHgwMCwgMHgzZiwgMHg2OCwgMHgyMCwgMHg3ZSwgMHg4NCwgMHgwMCwgCi0gICAgMHg0MCwgMHg5ZCwgMHg4ZCwgMHhkYSwgMHg2YiwgMHhiZCwgMHg4NywgMHgzOCwgMHgxNiwgMHhjYSwgMHg3OSwgMHg3ZCwgMHg3OCwgMHgxMiwgMHg3YywgMHg4NCwgCi0gICAgMHhkYSwgMHg3OSwgMHg0MCwgMHgwOCwgMHg5ZCwgMHg3OCwgMHg2OCwgMHgwMiwgMHg4MCwgMHgwNSwgMHhjMiwgMHhkNywgMHgyMiwgMHhkYSwgMHg2YiwgMHg0MywgCi0gICAgMHg5MCwgMHgzMCwgMHg3NCwgMHhhYSwgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3NCwgMHg1NSwgMHgzOSwgMHhiNSwgMHgyYSwgMHhhYSwgMHg3NCwgMHhhMCwgCi0gICAgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHg0MCwgMHg5ZCwgMHg3MCwgMHg1MCwgMHgwNiwgMHgyZCwgMHg3MCwgMHg3ZCwgMHgwNywgCi0gICAgMHg2ZCwgMHg3NywgMHg3YywgMHgzMSwgMHg3ZSwgMHg3YiwgMHgwMCwgMHg3YSwgMHg2YiwgMHgwMCwgMHgwYiwgMHg3YywgMHgwYiwgMHg2YywgMHhhNSwgMHhkOSwgCi0gICAgMHhmMywgMHg3ZiwgMHgxNiwgMHgxYiwgMHgxYywgMHg3ZSwgMHg1NCwgMHgyNywgMHgxMCwgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgMHgxMCwgMHg2OCwgMHgwNiwgCi0gICAgMHgxYiwgMHg1NCwgMHg3OCwgMHhmNSwgMHg4MCwgMHgyYywgMHg2ZCwgMHgwMCwgMHg3YywgMHgyMCwgMHg3ZiwgMHgxNiwgMHg5ZiwgMHgxMCwgMHg3ZiwgMHgyNywgCi0gICAgMHg5ZiwgMHgyMCwgMHg3ZSwgMHgyYiwgMHgwMCwgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgMHgwMSwgMHg3OCwgMHgxNiwgMHgwYiwgMHgyYywgMHgwYiwgMHgxYywgCi0gICAgMHhhNSwgMHhkYiwgMHhlZiwgMHg3YywgMHhiNiwgMHgyMCwgMHhlMCwgMHgwMywgMHg2MywgMHg5MCwgMHgzMCwgMHg0ZCwgMHg3NywgMHg3OCwgMHg5MywgMHhjMiwgCi0gICAgMHhkNywgMHgyMiwgMHhkMiwgMHhkNywgMHgyMiwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwNCwgMHg0MiwgMHgwOCwgMHgwNiwgMHgwNCwgMHgwMiwgMHgwNCwgMHgwMCwgCi0gICAgMHgwMiwgMHgwMSwgMHgwNCwgMHgwMSwgMHgwMiwgMHg4MiwgMHgwOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMiwgMHgwMiwgCi0gICAgMHgwMiwgMHgwMiwgMHgwNCwgMHgwMiwgMHgwOCwgMHgxMCwgMHgwMiwgMHgxMCwgMHgwNCwgMHgwMiwgMHgwOCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwOCwgMHgwMCwgCi0gICAgMHgwMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyMCwgMHgwNCwgMHg3ZSwgMHgxOCwgMHg3ZiwgMHhiZCwgMHg3YSwgCi0gICAgMHgxYywgMHgwMCwgMHhmZSwgMHgwYiwgMHgxYSwgMHgwMCwgMHg1ZSwgMHgxMCwgMHgxZiwgMHhiZSwgMHgxMCwgMHgxYSwgMHgzOCwgMHgxYSwgMHgwYSwgMHg1MSwgCi0gICAgMHgyMywgMHg3ZSwgMHgxOCwgMHg3YywgMHhmYSwgMHg3YSwgMHgxYywgMHgwMCwgMHhmZiwgMHgyZCwgMHgzNSwgMHgwYiwgMHgxYSwgMHg1MCwgMHg2MCwgMHgwOCwgCi0gICAgMHhhNSwgMHhiOCwgMHgwMiwgMHgwMywgMHg0ZSwgMHhhMCwgMHgwOCwgMHgyMiwgMHg4MCwgMHhmZSwgCi19OwotCi1zdGF0aWMgc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIElNQUdFX1ZFUlNJT05fTkFNRSA9IHsKLQkxLCAxNiwgNCB9OwkJLy8gTWFqb3IsIE1pbm9yLCBCdWlsZAotCi0jdW5kZWYgSU1BR0VfVkVSU0lPTl9OQU1FCi0KLSN1bmRlZiBJTUFHRV9BUlJBWV9OQU1FCi0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19kb3duMi5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2NzI3N2UuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMzICswLDAgQEAKLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLS8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQotLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgotLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0vLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLS8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLQotLy9JbWFnZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbgotI2lmICFkZWZpbmVkKERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQpCi0JI2RlZmluZSBERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JECi0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkIHsKLQkJX19sZTE2IEV4dEFkZHI7Ci0JCV9fbGUxNiBBZGRyOwotCQlfX2xlMTYgTGVuOwotCQl1bnNpZ25lZCBjaGFyICBEYXRhWzBdOwotCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotCi0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIHsKLQkJdW5zaWduZWQgY2hhciAgTWFqb3JWZXJzaW9uOwotCQl1bnNpZ25lZCBjaGFyICBNaW5vclZlcnNpb247Ci0JCXVuc2lnbmVkIHNob3J0IEJ1aWxkTnVtYmVyOwotCX07Ci0KLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoSU1BR0VfQVJSQVlfTkFNRSkKLQkjZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJRmlybXdhcmVJbWFnZQotCSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCUZpcm13YXJlSW1hZ2VWZXJzaW9uCi0jZW5kaWYKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgSU1BR0VfQVJSQVlfTkFNRVtdID0gewotCi0vLyBTZWdtZW50ICMxLCBTdGFydCBBZGRyZXNzIDAwZmYwMDAwLCBMZW5ndGggNgotMHhmZiwweDAwLDB4MDAsMHgwMCwweDA2LDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg4MCwgMHgwMiwgMHg0NSwgMHgxNCwgCi0KLS8vIFNlZ21lbnQgIzIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMGIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgwYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDQ0LCAweGE1LCAKLQotLy8gU2VnbWVudCAjMywgU3RhcnQgQWRkcmVzcyAwMGZmMDAxMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDEzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4NjMsIDB4YWIsIAotCi0vLyBTZWdtZW50ICM0LCBTdGFydCBBZGRyZXNzIDAwZmYwMDFiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MWIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgxYiwgCi0KLS8vIFNlZ21lbnQgIzUsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMjMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgyMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDIzLCAKLQotLy8gU2VnbWVudCAjNiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDJiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MmIsIAotCi0vLyBTZWdtZW50ICM3LCBTdGFydCBBZGRyZXNzIDAwZmYwMDMzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MzMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgzMywgCi0KLS8vIFNlZ21lbnQgIzgsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwM2IsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgzYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDNiLCAKLQotLy8gU2VnbWVudCAjOSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0MywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDQzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4NDMsIAotCi0vLyBTZWdtZW50ICMxMCwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0YiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDRiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4NGIsIAotCi0vLyBTZWdtZW50ICMxMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA1MywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDUzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4NjcsIDB4NWYsIAotCi0vLyBTZWdtZW50ICMxMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDA3YiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDdiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4N2IsIAotCi0vLyBTZWdtZW50ICMxMywgU3RhcnQgQWRkcmVzcyAwMGZmMDA4MCwgTGVuZ3RoIDcKLTB4ZmYsMHgwMCwweDgwLDB4MDAsMHgwNywweDAwLAotICAgIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4MDIsIDB4NDAsIDB4NTIsIAotCi0vLyBTZWdtZW50ICMxNCwgU3RhcnQgQWRkcmVzcyAwMGZmMzAwMCwgTGVuZ3RoIDI5MTgKLTB4ZmYsMHgwMCwweDAwLDB4MzAsMHg2NiwweDBiLAotICAgIDB4MTIsIDB4MzAsIDB4NjQsIDB4MTIsIDB4MzAsIDB4ZmYsIDB4MTIsIDB4MzEsIDB4MmYsIDB4MTIsIDB4MzAsIDB4YjAsIDB4ODAsIDB4ZjIsIDB4ZTUsIDB4MjMsIAotICAgIDB4NjAsIDB4MTksIDB4N2UsIDB4MTQsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjEsIDB4MDEsIDB4YjksIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MDUsIDB4MTQsIAotICAgIDB4MTksIDB4YjEsIDB4MDEsIDB4YjksIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZWIsIDB4MjIsIDB4YzIsIDB4YWYsIDB4N2UsIDB4YjMsIAotICAgIDB4M2YsIDB4ZjEsIDB4YjQsIDB4MDEsIDB4MDMsIDB4MTIsIDB4NjUsIDB4NjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4YzIsIDB4YWYsIDB4N2UsIDB4YjMsIDB4M2YsIAotICAgIDB4ZjEsIDB4YjQsIDB4MDEsIDB4MWQsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MWEsIDB4NmMsIDB4YWEsIAotICAgIDB4NjAsIDB4MGYsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MzksIDB4Y2EsIDB4NTksIDB4MTIsIDB4NjQsIDB4MjQsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MzksIDB4ZGEsIAotICAgIDB4MGIsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MjIsIDB4NjAsIDB4NDMsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4YmUsIDB4MDQsIAotICAgIDB4MDMsIDB4ODAsIDB4MzgsIDB4MzksIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MjEsIDB4MDksIDB4YTAsIAotICAgIDB4MDAsIDB4MDQsIDB4NGUsIDB4YTAsIDB4MDUsIDB4MTksIDB4YTAsIDB4MDAsIDB4MDQsIDB4MGEsIDB4MzIsIDB4MDksIDB4NTMsIDB4MzUsIDB4MzMsIDB4NWUsIAotICAgIDB4NTEsIDB4MjcsIDB4NjgsIDB4MGIsIDB4MDksIDB4YTAsIDB4MDAsIDB4MTAsIDB4NGUsIDB4YTAsIDB4MDEsIDB4MTksIDB4YTAsIDB4MDAsIDB4MTAsIDB4MmUsIAotICAgIDB4MDQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZDEsIDB4NzUsIDB4MjIsIDB4MDAsIDB4ZDIsIDB4YWYsIDB4MjIsIAotICAgIDB4YzIsIDB4YWYsIDB4ZTUsIDB4MjYsIDB4NjAsIDB4MzYsIDB4N2UsIDB4MjAsIDB4MDAsIDB4N2UsIDB4MzAsIDB4MDEsIDB4ZTUsIDB4MjYsIDB4YTUsIDB4NWIsIAotICAgIDB4NjgsIDB4MjEsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MzIsIDB4MDEsIDB4NzksIDB4YmUsIDB4MzQsIDB4MDAsIDB4MDAsIDB4NjgsIAotICAgIDB4MTIsIDB4N2UsIDB4YjEsIDB4MjEsIDB4YTUsIDB4NGIsIDB4N2EsIDB4YjEsIDB4MjEsIDB4Y2EsIDB4MTksIDB4NDksIDB4MjIsIDB4MzAsIDB4ZWYsIDB4OTksIAotICAgIDB4MjQsIDB4ZGEsIDB4MTksIDB4M2UsIDB4MzAsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZDAsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4NDYsIAotICAgIDB4NGYsIDB4NDksIDB4N2MsIDB4NGMsIDB4YTksIDB4NGYsIDB4ZDYsIDB4NTMsIDB4MDMsIDB4NTYsIDB4MzAsIDB4NTksIDB4NWQsIDB4NWMsIDB4OGEsIDB4YzIsIAotICAgIDB4YWYsIDB4ZTUsIDB4MjQsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4Y2EsIDB4MjgsIDB4MTIsIDB4MzUsIAotICAgIDB4NGMsIDB4ZGEsIDB4MjgsIDB4NDAsIDB4MDksIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4MzUsIDB4MzMsIDB4ZjQsIDB4NTIsIDB4MjQsIDB4MjIsIDB4YzIsIAotICAgIDB4YWYsIDB4ZTUsIDB4MjMsIDB4NjAsIDB4MTQsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4MzEsIDB4NGMsIAotICAgIDB4ZGEsIDB4YjgsIDB4YTUsIDB4MGEsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZWYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIAotICAgIDB4MmIsIDB4NDksIDB4MjIsIDB4MzEsIDB4NTcsIDB4ODksIDB4MjQsIDB4MzEsIDB4NjcsIDB4MzEsIDB4ZDAsIDB4MzIsIDB4MzksIDB4MzIsIDB4YTIsIDB4MzMsIAotICAgIDB4MGIsIDB4MzMsIDB4NzQsIDB4MzMsIDB4ZGQsIDB4MzQsIDB4NDYsIDB4N2UsIDB4MjcsIDB4MDEsIDB4NzksIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIAotICAgIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIAotICAgIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NDksIDB4NDUsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIAotICAgIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4ODksIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODksIDB4N2UsIAotICAgIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YjksIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YjksIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIAotICAgIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIAotICAgIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MTgsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YjksIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIAotICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2IsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODEsIDB4MDAsIDB4MDksIDB4YjIsIAotICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIAotICAgIDB4NGMsIDB4NzIsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIAotICAgIDB4MDEsIDB4OGIsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OGIsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmEsIDB4ODAsIAotICAgIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmEsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIAotICAgIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MTksIDB4NmMsIAotICAgIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmEsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2QsIDB4YmUsIDB4MjQsIDB4MDAsIAotICAgIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODIsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NGYsIDB4OWYsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIAotICAgIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OGQsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIAotICAgIDB4OGQsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmIsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmIsIDB4YTUsIDB4YmUsIAotICAgIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIAotICAgIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWEsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmIsIDB4MTIsIDB4NjQsIAotICAgIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2YsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODMsIDB4MDAsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIAotICAgIDB4MTIsIDB4MTIsIDB4NTIsIDB4Y2MsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIAotICAgIDB4YmUsIDB4MjcsIDB4MDEsIDB4OGYsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OGYsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIAotICAgIDB4YmMsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmMsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIAotICAgIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIAotICAgIDB4MWIsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmMsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODEsIDB4YmUsIAotICAgIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODQsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIAotICAgIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTUsIDB4ZjksIDB4N2QsIDB4MjEsIDB4ZGEsIAotICAgIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTEsIDB4NjgsIDB4MGQsIDB4N2EsIAotICAgIDB4MjcsIDB4MDEsIDB4OTEsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmQsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmQsIAotICAgIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIAotICAgIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWMsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmQsIAotICAgIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODMsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIAotICAgIDB4ODUsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIAotICAgIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NTksIDB4MjYsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIAotICAgIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTMsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTMsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIAotICAgIDB4NjMsIDB4MDEsIDB4YmUsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YmUsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIAotICAgIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4YzIsIDB4MWQsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmUsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4ODUsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIDB4N2UsIDB4MjQsIDB4ODYsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NWMsIDB4NTMsIDB4N2QsIAotICAgIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTUsIDB4NjgsIAotICAgIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTUsIDB4N2UsIDB4NjAsIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YmYsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIAotICAgIDB4MDEsIDB4YmYsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIAotICAgIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWUsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIAotICAgIDB4MDEsIDB4YmYsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODcsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjQsIAotICAgIDB4N2UsIDB4MjQsIDB4ODcsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIAotICAgIDB4MGIsIDB4Y2EsIDB4MTksIDB4N2QsIDB4MTIsIDB4MTIsIDB4NWYsIDB4ODAsIDB4N2QsIDB4MjEsIDB4ZGEsIDB4MTksIDB4MzAsIDB4ZTYsIDB4MTgsIDB4N2UsIAotICAgIDB4NjAsIDB4MDAsIDB4ODAsIDB4MWUsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTcsIDB4NjgsIDB4MGQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4OTcsIDB4N2UsIDB4NjAsIAotICAgIDB4OWMsIDB4N2EsIDB4NjMsIDB4MDEsIDB4YzAsIDB4ODAsIDB4MjcsIDB4N2UsIDB4NjMsIDB4MDEsIDB4YzAsIDB4YTUsIDB4YmUsIDB4MDAsIDB4MWYsIDB4N2UsIAotICAgIDB4NjAsIDB4MDEsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2UsIDB4YTAsIDB4YzgsIDB4MTIsIDB4NjEsIDB4MzYsIDB4NDAsIDB4MTEsIDB4NzUsIDB4MmYsIDB4YjMsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzIsIDB4MWYsIDB4NmMsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YzAsIDB4MTIsIDB4NjQsIDB4ODYsIDB4MjIsIDB4YzIsIAotICAgIDB4YWYsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4YmUsIDB4MDQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MjgsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTUsIDB4MzAsIDB4ZTUsIDB4MWIsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MWEsIDB4YmUsIDB4YjAsIDB4M2YsIDB4MzgsIAotICAgIDB4MGMsIDB4ODUsIDB4MzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzQsIDB4ODAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWUsIDB4NzQsIDB4MjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MTUsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4MzUsIDB4M2IsIDB4MzYsIDB4ZTgsIDB4MzcsIDB4MDAsIDB4MzcsIDB4MWIsIDB4MzcsIDB4YjYsIAotICAgIDB4MzgsIDB4NGUsIDB4MzgsIDB4NjksIDB4MzgsIDB4ZmIsIDB4MzgsIDB4ODQsIDB4MzgsIDB4YzUsIDB4N2MsIDB4YjMsIDB4YmUsIDB4YjAsIDB4MDksIDB4MjgsIAotICAgIDB4MjIsIDB4NzUsIDB4MmYsIDB4MDksIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4NTcsIDB4MDIsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIAotICAgIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTEsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MTEsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4MjMsIDB4NmMsIDB4YWEsIDB4MmUsIDB4NTQsIDB4MzQsIDB4ZTYsIDB4MGIsIDB4NTgsIAotICAgIDB4NTAsIDB4ODksIDB4NTQsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4NzUsIDB4MmYsIDB4YjAsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4MzUsIDB4MzMsIDB4NDIsIDB4MjQsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIAotICAgIDB4M2IsIDB4NDksIDB4MzMsIDB4MzUsIDB4NTcsIDB4ODksIDB4MzQsIDB4MzUsIDB4NjcsIDB4MzUsIDB4OTUsIDB4MzUsIDB4YzMsIDB4MzUsIDB4ZjEsIDB4MzYsIAotICAgIDB4MWYsIDB4MzYsIDB4NGQsIDB4MzYsIDB4N2IsIDB4MzYsIDB4YTksIDB4MTIsIDB4NDEsIDB4YmEsIDB4ZDIsIDB4MjgsIDB4ZDIsIDB4MDgsIDB4YzIsIDB4NDAsIAotICAgIDB4YzIsIDB4NDgsIDB4YzIsIDB4MzgsIDB4YzIsIDB4MzAsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YjksIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTksIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTksIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIAotICAgIDB4NWYsIDB4YjcsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDEsIDB4ZDcsIDB4ZDIsIDB4MjksIDB4ZDIsIDB4MDksIDB4YzIsIDB4NDEsIDB4YzIsIDB4NDksIAotICAgIDB4YzIsIDB4MzksIDB4YzIsIDB4MzEsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4OWIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWIsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NWYsIDB4ZTAsIAotICAgIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDEsIDB4ZjQsIDB4ZDIsIDB4MmEsIDB4ZDIsIDB4MGEsIDB4YzIsIDB4NDIsIDB4YzIsIDB4NGEsIDB4YzIsIDB4M2EsIAotICAgIDB4YzIsIDB4MzIsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmIsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWQsIAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWQsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4MDksIDB4MDIsIDB4MzYsIAotICAgIDB4ZDcsIDB4MTIsIDB4NDIsIDB4MTEsIDB4ZDIsIDB4MmIsIDB4ZDIsIDB4MGIsIDB4YzIsIDB4NDMsIDB4YzIsIDB4NGIsIDB4YzIsIDB4M2IsIDB4YzIsIDB4MzMsIAotICAgIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OWYsIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YWYsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4MzIsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIAotICAgIDB4NDIsIDB4MmUsIDB4ZDIsIDB4MmMsIDB4ZDIsIDB4MGMsIDB4YzIsIDB4NDQsIDB4YzIsIDB4NGMsIDB4YzIsIDB4M2MsIDB4YzIsIDB4MzQsIDB4NmQsIDB4MDAsIAotICAgIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmQsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTEsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjEsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4NWIsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDIsIDB4NGIsIAotICAgIDB4ZDIsIDB4MmQsIDB4ZDIsIDB4MGQsIDB4YzIsIDB4NDUsIDB4YzIsIDB4NGQsIDB4YzIsIDB4M2QsIDB4YzIsIDB4MzUsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIAotICAgIDB4MDEsIDB4YmUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4YjMsIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4ODQsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDIsIDB4NjgsIDB4ZDIsIDB4MmUsIAotICAgIDB4ZDIsIDB4MGUsIDB4YzIsIDB4NDYsIDB4YzIsIDB4NGUsIDB4YzIsIDB4M2UsIDB4YzIsIDB4MzYsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YmYsIAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjUsIAotICAgIDB4MTIsIDB4NDEsIDB4MjcsIDB4MTIsIDB4NjAsIDB4YWQsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4MTIsIDB4NDIsIDB4ODUsIDB4ZDIsIDB4MmYsIDB4ZDIsIDB4MGYsIAotICAgIDB4YzIsIDB4NDcsIDB4YzIsIDB4NGYsIDB4YzIsIDB4M2YsIDB4YzIsIDB4MzcsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MDEsIDB4YzAsIDB4N2UsIDB4MDQsIAotICAgIDB4MDAsIDB4MjAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YTcsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YjcsIDB4MTIsIDB4NDEsIAotICAgIDB4MjcsIDB4MTIsIDB4NjAsIDB4ZDYsIDB4MDIsIDB4MzYsIDB4ZDcsIDB4N2UsIDB4YTAsIDB4ZDAsIDB4N2UsIDB4NjAsIDB4MGYsIDB4MTIsIDB4NjEsIDB4MzYsIAotICAgIDB4NDAsIDB4MDUsIDB4MTIsIDB4NjQsIDB4ODYsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MGEsIDB4NTIsIAotICAgIDB4MjMsIDB4NmQsIDB4MDAsIDB4NTksIDB4MDUsIDB4MDAsIDB4MzIsIDB4MTIsIDB4NDEsIDB4ODMsIDB4MTIsIDB4NDEsIDB4OWYsIDB4ZDAsIDB4YTgsIDB4MjIsIAotICAgIDB4NzUsIDB4MmYsIDB4YjIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjIsIDB4MzUsIDB4MzMsIDB4NDIsIDB4MjMsIDB4N2UsIDB4YjAsIAotICAgIDB4OWMsIDB4MTksIDB4YjIsIDB4MDEsIDB4YjksIDB4MTIsIDB4MzEsIDB4NGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIAotICAgIDB4MDIsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIAotICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDEsIDB4NjgsIDB4MTIsIDB4NDQsIDB4NDAsIDB4Y2EsIDB4YjgsIDB4MDksIDB4YjAsIAotICAgIDB4MDAsIDB4MTAsIDB4NDQsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4YmYsIDB4N2MsIDB4NzQsIAotICAgIDB4NWUsIDB4NzAsIDB4MDgsIDB4NjgsIDB4MDQsIDB4NDQsIDB4MDgsIDB4ODAsIDB4MDIsIDB4NTQsIDB4ZjcsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4Y2EsIAotICAgIDB4YjgsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZGEsIDB4YjgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIAotICAgIDB4MGMsIDB4MGEsIDB4NjIsIDB4MDksIDB4YjYsIDB4MzUsIDB4MzMsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIAotICAgIDB4NjgsIDB4MjAsIDB4NDIsIDB4MjcsIDB4Y2EsIDB4YjgsIDB4NzQsIDB4NjEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MTAsIAotICAgIDB4NTksIDB4NDYsIDB4MDEsIDB4YTksIDB4MDksIDB4YjAsIDB4MDAsIDB4MTAsIDB4NDQsIDB4MDEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4ZGEsIDB4YjgsIAotICAgIDB4ODAsIDB4MTEsIDB4ZjQsIDB4NTIsIDB4MjcsIDB4NzQsIDB4YTEsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MzgsIDB4NTksIAotICAgIDB4NDYsIDB4MDEsIDB4YTksIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2MsIDB4NzQsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4MzAsIAotICAgIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIAotICAgIDB4MDEsIDB4NjgsIDB4MDQsIDB4NDQsIDB4ODAsIDB4ODAsIDB4MDIsIDB4NTQsIDB4N2YsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDgsIDB4NjgsIDB4MDQsIAotICAgIDB4NDQsIDB4MDIsIDB4ODAsIDB4MDIsIDB4NTQsIDB4ZmQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MGEsIDB4NjIsIAotICAgIDB4MDksIDB4YjYsIDB4MzUsIDB4MzMsIDB4YTUsIDB4ZmQsIDB4ZjQsIDB4YTUsIDB4ZmUsIDB4Y2EsIDB4MjgsIDB4M2UsIDB4MjAsIDB4MGEsIDB4NjIsIDB4ZGEsIAotICAgIDB4MjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MjgsIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIAotICAgIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIDB4OTksIDB4ODAsIDB4MDQsIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MjgsIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIAotICAgIDB4MDQsIDB4NjgsIDB4MTAsIDB4YTUsIDB4ZWQsIDB4NDIsIDB4MjksIDB4NDIsIDB4MjYsIDB4N2UsIDB4NDQsIDB4MDAsIDB4MDgsIDB4NTksIDB4NDYsIDB4MDEsIAotICAgIDB4OTksIDB4ODAsIDB4MTUsIDB4YTUsIDB4ZWUsIDB4NTIsIDB4MjksIDB4N2MsIDB4NzQsIDB4NWUsIDB4NzAsIDB4MDIsIDB4NzgsIDB4MGEsIDB4NTIsIDB4MjYsIAotICAgIDB4N2UsIDB4NDQsIDB4MDAsIDB4MjAsIDB4NTksIDB4NDYsIDB4MDEsIDB4OTksIDB4MTIsIDB4NDIsIDB4YTIsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIAotICAgIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIAotICAgIDB4MDAsIDB4MTAsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4MDksIAotICAgIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MTksIDB4NDAsIDB4MDAsIDB4MTgsIDB4MTksIDB4MzAsIDB4MDAsIAotICAgIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIAotICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MGMsIDB4NDQsIDB4NDAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZTUsIDB4NTgsIDB4YjQsIDB4MDcsIDB4MjMsIDB4MDksIAotICAgIDB4YjAsIDB4MDAsIDB4MTAsIDB4NGUsIDB4YjAsIDB4MDIsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIAotICAgIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZjcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIAotICAgIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIAotICAgIDB4MDIsIDB4ZTUsIDB4NTgsIDB4YjQsIDB4MDcsIDB4MTgsIDB4MDksIDB4MzAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIAotICAgIDB4MDksIDB4YjAsIDB4MDAsIDB4MDQsIDB4NDQsIDB4MDgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MzAsIDB4MDAsIDB4MGMsIDB4MDksIDB4YjAsIAotICAgIDB4MDAsIDB4MGMsIDB4NTQsIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YjQsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4MjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NDEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjAsIDB4MDEsIAotICAgIDB4N2UsIDB4YTAsIDB4YzgsIDB4N2MsIDB4NjQsIDB4MTIsIDB4NjEsIDB4MzYsIDB4MTIsIDB4NjQsIDB4ODYsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4MzksIDB4MmUsIAotICAgIDB4MzksIDB4NzUsIDB4MzksIDB4YmMsIDB4M2EsIDB4MDMsIDB4M2EsIDB4NGEsIDB4M2EsIDB4OTEsIDB4M2EsIDB4ZDgsIDB4M2IsIDB4MWYsIDB4NzUsIDB4MmYsIAotICAgIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NjksIDB4N2UsIDB4MjcsIDB4MDEsIDB4NzksIDB4MmQsIDB4MjMsIAotICAgIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MDgsIDB4MmMsIDB4MzgsIDB4MGYsIAotICAgIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NjksIDB4N2EsIDB4MjcsIDB4MDEsIDB4NzksIDB4MDIsIDB4NDYsIDB4NGYsIDB4N2UsIAotICAgIDB4MTQsIDB4MDQsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDEsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIAotICAgIDB4NmIsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2IsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIAotICAgIDB4MTQsIDB4YmUsIDB4MTQsIDB4MGMsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NmIsIDB4N2EsIAotICAgIDB4MjcsIDB4MDEsIDB4N2IsIDB4MDIsIDB4NDksIDB4N2MsIDB4N2UsIDB4MTQsIDB4MDgsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIAotICAgIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NmQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2QsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIAotICAgIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTAsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIAotICAgIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NmQsIDB4N2EsIDB4MjcsIDB4MDEsIDB4N2QsIDB4MDIsIDB4NGMsIDB4YTksIDB4N2UsIDB4MTQsIDB4MGMsIAotICAgIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIAotICAgIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NmYsIDB4N2UsIAotICAgIDB4MjcsIDB4MDEsIDB4N2YsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIAotICAgIDB4MTQsIDB4MTQsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NmYsIDB4N2EsIDB4MjcsIDB4MDEsIAotICAgIDB4N2YsIDB4MDIsIDB4NGYsIDB4ZDYsIDB4N2UsIDB4MTQsIDB4MTAsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4NzUsIDB4MmYsIDB4MDQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODEsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIAotICAgIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MTgsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIAotICAgIDB4N2EsIDB4MTcsIDB4MDEsIDB4NzEsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODEsIDB4MDIsIDB4NTMsIDB4MDMsIDB4N2UsIDB4MTQsIDB4MTQsIDB4MmQsIDB4ODAsIAotICAgIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzMsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4ODMsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MWMsIAotICAgIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NzMsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODMsIDB4MDIsIAotICAgIDB4NTYsIDB4MzAsIDB4N2UsIDB4MTQsIDB4MTgsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIAotICAgIDB4MDYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzUsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODUsIDB4MmQsIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIAotICAgIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjAsIDB4MmMsIDB4MzgsIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIAotICAgIDB4MDEsIDB4NzUsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODUsIDB4MDIsIDB4NTksIDB4NWQsIDB4N2UsIDB4MTQsIDB4MWMsIDB4MmQsIDB4ODAsIDB4ZWIsIDB4NzUsIAotICAgIDB4MmYsIDB4NTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDcsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTcsIDB4MDEsIDB4NzcsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODcsIDB4MmQsIAotICAgIDB4MjMsIDB4N2UsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4N2EsIDB4MTksIDB4YjAsIDB4MGIsIDB4MTQsIDB4YmUsIDB4MTQsIDB4MjQsIDB4MmMsIDB4MzgsIAotICAgIDB4MGYsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ZWMsIDB4N2EsIDB4MTcsIDB4MDEsIDB4NzcsIDB4N2EsIDB4MjcsIDB4MDEsIDB4ODcsIDB4MDIsIDB4NWMsIDB4OGEsIAotICAgIDB4N2UsIDB4MTQsIDB4MjAsIDB4MmQsIDB4ODAsIDB4ZWIsIAotCi0vLyBTZWdtZW50ICMxNSwgU3RhcnQgQWRkcmVzcyAwMGZmNDAwMCwgTGVuZ3RoIDEzMTA5Ci0weGZmLDB4MDAsMHgwMCwweDQwLDB4MzUsMHgzMywKLSAgICAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE0LCAweDdmLCAweGY4LCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdkLCAweDMxLCAweDBiLCAweDFhLCAKLSAgICAweDUwLCAweDFiLCAweDBhLCAweDUwLCAweDdlLCAweDE0LCAweDQwLCAweDFiLCAweDAyLCAweDQwLCAweDc0LCAweDdlLCAweGY4LCAweDAwLCAweDU5LCAweDc1LCAKLSAgICAweGIwLCAweGRmLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDdlLCAweGY0LCAweDQwLCAweDMwLCAweDAyLCAweDQwLCAweDhiLCAKLSAgICAweDEyLCAweDc0LCAweDRlLCAweGY1LCAweDJlLCAweDdhLCAweGExLCAweDJkLCAweDdhLCAweDExLCAweDU4LCAweDEyLCAweDZiLCAweDAyLCAweDEyLCAweDQwLCAKLSAgICAweGViLCAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweDYwLCAweDAzLCAweDEyLCAweDQzLCAweDc5LCAweDEyLCAweDZiLCAweGRlLCAweGQyLCAweGFmLCAweDAyLCAKLSAgICAweDMwLCAweDAwLCAweDdlLCAweDA0LCAweDAwLCAweGZmLCAweDdlLCAweDE4LCAweDQwLCAweDYwLCAweDdhLCAweDFjLCAweDAwLCAweDAxLCAweDg5LCAweDE4LCAKLSAgICAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDk0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDM1LCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAKLSAgICAweDkzLCAweDAwLCAweDg5LCAweDA4LCAweDdlLCAweDA0LCAweDAwLCAweGZmLCAweDdlLCAweDE4LCAweDQwLCAweDgyLCAweDdhLCAweDFjLCAweDAwLCAweDAxLCAKLSAgICAweDg5LCAweDE4LCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkzLCAweDAwLCAweDg5LCAweDA4LCAweDdlLCAweDA4LCAweDAwLCAweDIwLCAweDdlLCAKLSAgICAweDQ0LCAweDA0LCAweDAwLCAweDdlLCAweDQwLCAweDAwLCAweDdlLCAweGU0LCAweDQwLCAweDlkLCAweDAyLCAweDczLCAweDUwLCAweDdlLCAweDA4LCAweDAxLCAKLSAgICAweDU5LCAweDdlLCAweDQ0LCAweDJhLCAweGRkLCAweDdlLCAweDQwLCAweDAwLCAweDdlLCAweGU0LCAweDQwLCAweGFmLCAweDAyLCAweDczLCAweDUwLCAweDdlLCAKLSAgICAweDA4LCAweDAwLCAweDU5LCAweDdlLCAweDQ0LCAweDAxLCAweDAwLCAweDdlLCAweDQwLCAweDUzLCAweDdlLCAweGU0LCAweDQwLCAweGMxLCAweDAyLCAweDczLCAKLSAgICAweDUwLCAweDc1LCAweDU3LCAweDAxLCAweDc1LCAweDU2LCAweDAwLCAweDdlLCAweDA0LCAweDAwLCAweDA4LCAweDc1LCAweDU0LCAweDU4LCAweDc1LCAweDU1LCAKLSAgICAweDA4LCAweDc1LCAweDUxLCAweDA4LCAweDc1LCAweDUzLCAweDAxLCAweDc1LCAweDg5LCAweDAxLCAweDc1LCAweDhhLCAweDAxLCAweDc1LCAweDhjLCAweDAwLCAKLSAgICAweGQyLCAweDhjLCAweDdlLCAweDA0LCAweDAwLCAweDAyLCAweDdhLCAweDA1LCAweDQyLCAweDg5LCAweGY0LCAweDc1LCAweGI3LCAweDdmLCAweDc1LCAweGI4LCAKLSAgICAweDdmLCAweDc1LCAweGIzLCAweDAxLCAweDc1LCAweGIyLCAweDAxLCAweGQyLCAweGE5LCAweDIyLCAweDc1LCAweGIwLCAweGRmLCAweGU0LCAweGQ1LCAweGUwLCAKLSAgICAweGZkLCAweDc1LCAweGIwLCAweGVmLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDJlLCAweDdlLCAweGEwLCAweDA4LCAweDE5LCAweGEyLCAKLSAgICAweDAwLCAweDEwLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGYyLCAweDdlLCAweDIwLCAweDAwLCAweDEyLCAweDQxLCAweDgzLCAweDBiLCAKLSAgICAweDIwLCAweGJlLCAweDIxLCAweDJlLCAweDc4LCAweGY2LCAweDIyLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweDc0LCAweGJmLCAweDE5LCAKLSAgICAweGIwLCAweDAwLCAweDBjLCAweDc0LCAweDEwLCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDc0LCAweDgwLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDdlLCAKLSAgICAweDU0LCAweDAwLCAweDAyLCAweDE5LCAweGEwLCAweDAwLCAweDA0LCAweDE5LCAweGIwLCAweDAwLCAweDAwLCAweDc0LCAweDAzLCAweDE5LCAweGIwLCAweDAwLCAKLSAgICAweDBjLCAweDc0LCAweDA3LCAweDIwLCAweDY4LCAweDAyLCAweDc0LCAweDBmLCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDMwLCAweDZiLCAweDE3LCAweDc0LCAKLSAgICAweGJmLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDc0LCAweDI4LCAweDIwLCAweDY4LCAweDAyLCAweDc0LCAweDIwLCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAKLSAgICAweDc0LCAweDAzLCAweDE5LCAweGIwLCAweDAwLCAweDBjLCAweDc0LCAweGE3LCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDc0LCAweDBjLCAweDE5LCAweGIwLCAKLSAgICAweDAwLCAweDEwLCAweDIyLCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDRjLCAweDAyLCAweGU0LCAweDE5LCAweGIwLCAweDAwLCAweDA0LCAweDA5LCAweGIwLCAKLSAgICAweDAwLCAweDEwLCAweDU0LCAweDA4LCAweDE5LCAweGIwLCAweDAwLCAweDEwLCAweDc0LCAweGE3LCAweDE5LCAweGIwLCAweDAwLCAweDA4LCAweDIyLCAweDdjLCAKLSAgICAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQxLCAweGFhLCAweDg5LCAweDI0LCAweDQxLCAweGJhLCAweDQxLCAweGQ3LCAweDQxLCAweGY0LCAKLSAgICAweDQyLCAweDExLCAweDQyLCAweDJlLCAweDQyLCAweDRiLCAweDQyLCAweDY4LCAweDQyLCAweDg1LCAweGMyLCAweDEwLCAweGMyLCAweDE4LCAweGMyLCAweDA4LCAKLSAgICAweDdlLCAweDA0LCAweDA0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDU5LCAweDdhLCAweDA3LCAweDAxLCAweDY5LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweDc5LCAweDdhLCAweDA3LCAweDAxLCAweDg5LCAweDIyLCAweGMyLCAweDExLCAweGMyLCAweDE5LCAweGMyLCAweDA5LCAweDdlLCAweDA0LCAweDA4LCAKLSAgICAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDViLCAweDdhLCAweDA3LCAweDAxLCAweDZiLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDdiLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDhiLCAweDIyLCAweGMyLCAweDEyLCAweGMyLCAweDFhLCAweGMyLCAweDBhLCAweDdlLCAweDA0LCAweDBjLCAweDJkLCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweDVkLCAweDdhLCAweDA3LCAweDAxLCAweDZkLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDdkLCAweDdhLCAweDA3LCAweDAxLCAweDhkLCAKLSAgICAweDIyLCAweGMyLCAweDEzLCAweGMyLCAweDFiLCAweGMyLCAweDBiLCAweDdlLCAweDA0LCAweDEwLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDVmLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDZmLCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDdmLCAweDdhLCAweDA3LCAweDAxLCAweDhmLCAweDIyLCAweGMyLCAweDE0LCAKLSAgICAweGMyLCAweDFjLCAweGMyLCAweDBjLCAweDdlLCAweDA0LCAweDE0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDYxLCAweDdhLCAweDA3LCAweDAxLCAweDcxLCAKLSAgICAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDgxLCAweDdhLCAweDA3LCAweDAxLCAweDkxLCAweDIyLCAweGMyLCAweDE1LCAweGMyLCAweDFkLCAweGMyLCAKLSAgICAweDBkLCAweDdlLCAweDA0LCAweDE4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDYzLCAweDdhLCAweDA3LCAweDAxLCAweDczLCAweDZkLCAweDAwLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDgzLCAweDdhLCAweDA3LCAweDAxLCAweDkzLCAweDIyLCAweGMyLCAweDE2LCAweGMyLCAweDFlLCAweGMyLCAweDBlLCAweDdlLCAweDA0LCAKLSAgICAweDFjLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDY1LCAweDdhLCAweDA3LCAweDAxLCAweDc1LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDg1LCAKLSAgICAweDdhLCAweDA3LCAweDAxLCAweDk1LCAweDIyLCAweGMyLCAweDE3LCAweGMyLCAweDFmLCAweGMyLCAweDBmLCAweDdlLCAweDA0LCAweDIwLCAweDJkLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDY3LCAweDdhLCAweDA3LCAweDAxLCAweDc3LCAweDZkLCAweDAwLCAweDdhLCAweDA3LCAweDAxLCAweDg3LCAweDdhLCAweDA3LCAweDAxLCAKLSAgICAweDk3LCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQyLCAweGFkLCAweDg5LCAweDI0LCAweDQyLCAweGJkLCAweDQyLCAKLSAgICAweGQ0LCAweDQyLCAweGViLCAweDQzLCAweDAyLCAweDQzLCAweDE5LCAweDQzLCAweDMwLCAweDQzLCAweDQ3LCAweDQzLCAweDVlLCAweDMwLCAweDQwLCAweDA3LCAKLSAgICAweDIwLCAweDU4LCAweDA0LCAweGMyLCAweDI4LCAweDgwLCAweDBjLCAweDMwLCAweDQ4LCAweDA3LCAweDIwLCAweDUwLCAweDA0LCAweGMyLCAweDI4LCAweDgwLCAKLSAgICAweDAyLCAweGQyLCAweDI4LCAweDIyLCAweDMwLCAweDQxLCAweDA3LCAweDIwLCAweDU5LCAweDA0LCAweGMyLCAweDI5LCAweDgwLCAweDBjLCAweDMwLCAweDQ5LCAKLSAgICAweDA3LCAweDIwLCAweDUxLCAweDA0LCAweGMyLCAweDI5LCAweDgwLCAweDAyLCAweGQyLCAweDI5LCAweDIyLCAweDMwLCAweDQyLCAweDA3LCAweDIwLCAweDVhLCAKLSAgICAweDA0LCAweGMyLCAweDJhLCAweDgwLCAweDBjLCAweDMwLCAweDRhLCAweDA3LCAweDIwLCAweDUyLCAweDA0LCAweGMyLCAweDJhLCAweDgwLCAweDAyLCAweGQyLCAKLSAgICAweDJhLCAweDIyLCAweDMwLCAweDQzLCAweDA3LCAweDIwLCAweDViLCAweDA0LCAweGMyLCAweDJiLCAweDgwLCAweDBjLCAweDMwLCAweDRiLCAweDA3LCAweDIwLCAKLSAgICAweDUzLCAweDA0LCAweGMyLCAweDJiLCAweDgwLCAweDAyLCAweGQyLCAweDJiLCAweDIyLCAweDMwLCAweDQ0LCAweDA3LCAweDIwLCAweDVjLCAweDA0LCAweGMyLCAKLSAgICAweDJjLCAweDgwLCAweDBjLCAweDMwLCAweDRjLCAweDA3LCAweDIwLCAweDU0LCAweDA0LCAweGMyLCAweDJjLCAweDgwLCAweDAyLCAweGQyLCAweDJjLCAweDIyLCAKLSAgICAweDMwLCAweDQ1LCAweDA3LCAweDIwLCAweDVkLCAweDA0LCAweGMyLCAweDJkLCAweDgwLCAweDBjLCAweDMwLCAweDRkLCAweDA3LCAweDIwLCAweDU1LCAweDA0LCAKLSAgICAweGMyLCAweDJkLCAweDgwLCAweDAyLCAweGQyLCAweDJkLCAweDIyLCAweDMwLCAweDQ2LCAweDA3LCAweDIwLCAweDVlLCAweDA0LCAweGMyLCAweDJlLCAweDgwLCAKLSAgICAweDBjLCAweDMwLCAweDRlLCAweDA3LCAweDIwLCAweDU2LCAweDA0LCAweGMyLCAweDJlLCAweDgwLCAweDAyLCAweGQyLCAweDJlLCAweDIyLCAweDMwLCAweDQ3LCAKLSAgICAweDA3LCAweDIwLCAweDVmLCAweDA0LCAweGMyLCAweDJmLCAweDgwLCAweDBjLCAweDMwLCAweDRmLCAweDA3LCAweDIwLCAweDU3LCAweDA0LCAweGMyLCAweDJmLCAKLSAgICAweDgwLCAweDAyLCAweGQyLCAweDJmLCAweDIyLCAweDQ0LCAweDY2LCAweDQzLCAweDhhLCAweGJlLCAweGIwLCAweDAyLCAweDQwLCAweDAxLCAweDIyLCAweDIzLCAKLSAgICAweDBhLCAweDViLCAweDQ5LCAweDU1LCAweDQzLCAweDc1LCAweDk5LCAweDU0LCAweGQzLCAweDIyLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDk0LCAKLSAgICAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDM1LCAweDEyLCAweDQ0LCAweDdhLCAweDdlLCAweDA0LCAweDI4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweGMxLCAKLSAgICAweDdhLCAweDA3LCAweDAxLCAweGMzLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweGM3LCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDA0LCAweDY2LCAweDdmLCAweDdhLCAweDA1LCAweDRiLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDEyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDc0LCAKLSAgICAweDFlLCAweDdhLCAweGIzLCAweDkxLCAweDEwLCAweDc0LCAweDQ4LCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDEzLCAweDc0LCAweDNmLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDE0LCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDc0LCAKLSAgICAweDE2LCAweDdhLCAweGIzLCAweDkxLCAweDEwLCAweDc0LCAweDA4LCAweDdhLCAweGIzLCAweDkxLCAweDExLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDEzLCAweDc0LCAweDNmLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDE2LCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDc0LCAKLSAgICAweDJmLCAweDdhLCAweGIzLCAweDkxLCAweDEwLCAweDc0LCAweDQ4LCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDEzLCAweDc0LCAweDNmLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDBmLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDA3LCAweDEyLCAweDQwLCAweGZhLCAweDdlLCAweDIwLCAweDAwLCAweDEyLCAweDQxLCAweDlmLCAweDBiLCAweDIwLCAweGJlLCAweDIxLCAKLSAgICAweDJlLCAweDc4LCAweGY2LCAweGQyLCAweGE4LCAweDIyLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDk0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAKLSAgICAweDM1LCAweDEyLCAweDQ0LCAweDdhLCAweDc1LCAweGIwLCAweGRmLCAweGMyLCAweGE4LCAweDIyLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAKLSAgICAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweDIwLCAweDA0LCAweDdjLCAweGIyLCAweGMyLCAweGQ3LCAweDEzLCAweDEzLCAweDEzLCAKLSAgICAweDEzLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDEyLCAweGE1LCAweGRhLCAweGU1LCAweDIyLCAweGNhLCAweDA5LCAweDEyLCAweDMwLCAweDBlLCAweDEwLCAweDAxLCAweDM0LCAweGQ1LCAweDUxLCAweDQwLCAKLSAgICAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAKLSAgICAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDdlLCAweGIzLCAKLSAgICAweDkxLCAweDA0LCAweDYzLCAweDUzLCAweDAxLCAweDdlLCAweDAwLCAweDU0LCAweDJlLCAweDAxLCAweDUzLCAweGE1LCAweGU2LCAweGY1LCAweDUxLCAweDgwLCAKLSAgICAweDEyLCAweDIwLCAweDAyLCAweDFkLCAweDc1LCAweDUzLCAweDAwLCAweDg1LCAweDU0LCAweDUxLCAweGQyLCAweDAyLCAweDc0LCAweDAzLCAweDgwLCAweDBkLCAKLSAgICAweDMwLCAweDAyLCAweDBlLCAweGMyLCAweDAyLCAweDdlLCAweDAwLCAweDU2LCAweDJlLCAweDAxLCAweDUzLCAweGE1LCAweGU2LCAweDdhLCAweGIzLCAweDkwLCAKLSAgICAweDAwLCAweGRhLCAweDA5LCAweDMyLCAweDQ1LCAweDZmLCAweDQ1LCAweDhiLCAweDQ1LCAweGE3LCAweDQ1LCAweGMzLCAweDQ1LCAweGRmLCAweDQ1LCAweGZiLCAKLSAgICAweDQ2LCAweDE3LCAweDQ2LCAweDMzLCAweGMwLCAweGQwLCAweGMwLCAweGQxLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAKLSAgICAweGNhLCAweDJiLCAweGQyLCAweDAxLCAweDc1LCAweDJmLCAweDg5LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDkwLCAweDAwLCAweDYwLCAweDI4LCAKLSAgICAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDdlLCAweDAwLCAweDAwLCAweDEzLCAweDUwLCAweDEzLCAweGNhLCAweDBiLCAweGNhLCAweDU5LCAweDdjLCAweGIwLCAKLSAgICAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDQ1LCAweDA0LCAweDk5LCAweDI0LCAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweGE1LCAweDBhLCAweGE1LCAKLSAgICAweDA4LCAweGJlLCAweDAxLCAweDJlLCAweDc4LCAweGUxLCAweDgwLCAweGQyLCAweDMwLCAweDA0LCAweDA1LCAweGMyLCAweDA0LCAweDEyLCAweDY0LCAweDg2LCAKLSAgICAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweGQwLCAweGYwLCAweGQwLCAweGUwLCAweGQwLCAweGQxLCAweGQwLCAweGQwLCAweDMyLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDgwLCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAKLSAgICAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYxLCAweGFiLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAKLSAgICAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDgxLCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAKLSAgICAweDY5LCAweDUyLCAweDYxLCAweGViLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAKLSAgICAweDgyLCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYyLCAweDJiLCAKLSAgICAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDgzLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYyLCAweDZiLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDg0LCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAKLSAgICAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYyLCAweGFiLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAKLSAgICAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDg1LCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAKLSAgICAweDY5LCAweDUyLCAweDYyLCAweGViLCAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAKLSAgICAweDg2LCAweDEyLCAweDczLCAweDM1LCAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAweDJiLCAKLSAgICAweDg5LCAweDU0LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDA4LCAweDIwLCAweGUwLCAweDE0LCAweDc1LCAweDJmLCAweDg3LCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDU0LCAweDNlLCAweDBhLCAweDViLCAweDdlLCAweDQ0LCAweDAwLCAweGZmLCAweDY5LCAweDUyLCAweDYzLCAweDZiLCAweDg5LCAweDU0LCAweDIyLCAweDEwLCAKLSAgICAweDA4LCAweDAxLCAweDIyLCAweDIwLCAweDI4LCAweDAzLCAweGQyLCAweDA4LCAweDIyLCAweDc1LCAweDJmLCAweGEwLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAKLSAgICAweDE0LCAweDgwLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDI4LCAweDAzLCAweGQyLCAweDA4LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKLSAgICAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDQ5LCAweDQ1LCAweDMwLCAweDMwLCAweDA2LCAweDIwLCAweGU2LCAKLSAgICAweDRmLCAweGQyLCAweDA4LCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDYwLCAweDdlLCAweDM3LCAweDAxLCAweDc5LCAweDdlLCAweDI3LCAweDAxLCAKLSAgICAweDk5LCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMyLCAweDdhLCAweDA1LCAweDMyLCAweDdhLCAweDM3LCAweDAxLCAKLSAgICAweDc5LCAweDdlLCAweDM3LCAweDAxLCAweDU5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDA4LCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweDU5LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAKLSAgICAweDY5LCAweGYwLCAweDEwLCAweDYwLCAweGM0LCAweDIyLCAweGMyLCAweDYwLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDc5LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDk5LCAweDI4LCAweDA0LCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDk5LCAweDdlLCAweDM3LCAweDAxLCAweDc5LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMyLCAweDdhLCAKLSAgICAweDA1LCAweDMyLCAweDdhLCAweDM3LCAweDAxLCAweDc5LCAweDdlLCAweDM3LCAweDAxLCAweDU5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAKLSAgICAweDA4LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDU5LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDA4LCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDA0LCAweDJkLCAKLSAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDU5LCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAKLSAgICAweDAyLCAweDQ2LCAweGMyLCAweDIyLCAweGQyLCAweDA4LCAweDdlLCAweDA0LCAweDA0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDU5LCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweDY5LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAKLSAgICAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAKLSAgICAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGE5LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAKLSAgICAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAKLSAgICAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAKLSAgICAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGE5LCAweDFiLCAweDM4LCAweDIwLCAKLSAgICAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM4LCAweDBhLCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEwLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAwLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAKLSAgICAweGE5LCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAKLSAgICAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAKLSAgICAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAKLSAgICAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAwLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAKLSAgICAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAKLSAgICAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAKLSAgICAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAKLSAgICAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAKLSAgICAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAKLSAgICAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAKLSAgICAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAKLSAgICAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAKLSAgICAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDQ4LCAweDFlLCAweDc1LCAweDJmLCAKLSAgICAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM4LCAKLSAgICAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEwLCAweDIyLCAweGRhLCAweGI4LCAKLSAgICAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDQ4LCAweDFlLCAweGRhLCAweGI4LCAweDAyLCAweDQ5LCAKLSAgICAweDQ1LCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAKLSAgICAweDA0LCAweGQyLCAweDU4LCAweDgwLCAweDAyLCAweGMyLCAweDU4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUwLCAKLSAgICAweDgwLCAweDAyLCAweGMyLCAweDUwLCAweDEyLCAweDQyLCAweGJkLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAKLSAgICAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAKLSAgICAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAKLSAgICAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDQ4LCAweDcyLCAweDc1LCAweDJmLCAKLSAgICAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDA5LCAweDAxLCAweDIyLCAKLSAgICAweDIwLCAweDI5LCAweDAzLCAweGQyLCAweDA5LCAweDIyLCAweDc1LCAweDJmLCAweGExLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDgxLCAweDAwLCAKLSAgICAweDgwLCAweDA2LCAweDIwLCAweDI5LCAweDAzLCAweGQyLCAweDA5LCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAKLSAgICAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDRjLCAweDcyLCAweDMwLCAweDMxLCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDA5LCAKLSAgICAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDYxLCAweDdlLCAweDM3LCAweDAxLCAweDdiLCAweDdlLCAweDI3LCAweDAxLCAweDliLCAweDlkLCAweDMyLCAKLSAgICAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM0LCAweDdhLCAweDA1LCAweDM0LCAweDdhLCAweDM3LCAweDAxLCAweDdiLCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweDViLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDBjLCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDViLCAKLSAgICAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAKLSAgICAweDYxLCAweGM0LCAweDIyLCAweGMyLCAweDYxLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAKLSAgICAweDdiLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDliLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAKLSAgICAweDliLCAweDdlLCAweDM3LCAweDAxLCAweDdiLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM0LCAweDdhLCAweDA1LCAweDM0LCAweDdhLCAKLSAgICAweDM3LCAweDAxLCAweDdiLCAweDdlLCAweDM3LCAweDAxLCAweDViLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDBjLCAweDJjLCAweDM4LCAKLSAgICAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDViLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDllLCAweDQ0LCAweDBjLCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDA4LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAKLSAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDViLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDQ5LCAweGVmLCAKLSAgICAweDIyLCAweGQyLCAweDA5LCAweDdlLCAweDA0LCAweDA4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDViLCAweDdhLCAweDA3LCAweDAxLCAweDZiLCAweDc1LCAKLSAgICAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGFiLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAKLSAgICAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAKLSAgICAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDAxLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGFiLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAKLSAgICAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM5LCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKLSAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDExLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAxLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGFiLCAweDllLCAweDI0LCAKLSAgICAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAKLSAgICAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAKLSAgICAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAKLSAgICAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAxLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAKLSAgICAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAKLSAgICAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAKLSAgICAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAKLSAgICAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAKLSAgICAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAKLSAgICAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAKLSAgICAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDRiLCAweDRiLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDM5LCAweDBhLCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDExLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAKLSAgICAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDRiLCAweDRiLCAweGRhLCAweGI4LCAweDAyLCAweDRjLCAweDcyLCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDU5LCAKLSAgICAweDgwLCAweDAyLCAweGMyLCAweDU5LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUxLCAweDgwLCAweDAyLCAweGMyLCAKLSAgICAweDUxLCAweDEyLCAweDQyLCAweGQ0LCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAKLSAgICAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAKLSAgICAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAKLSAgICAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAKLSAgICAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDRiLCAweDlmLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBhLCAweDAxLCAweDIyLCAweDIwLCAweDJhLCAweDAzLCAKLSAgICAweGQyLCAweDBhLCAweDIyLCAweDc1LCAweDJmLCAweGEyLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDgyLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAKLSAgICAweDJhLCAweDAzLCAweGQyLCAweDBhLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAKLSAgICAweDY4LCAweDAzLCAweDEyLCAweDRmLCAweDlmLCAweDMwLCAweDMyLCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBhLCAweDIyLCAweDMwLCAweGU2LCAKLSAgICAweDAyLCAweGQyLCAweDYyLCAweDdlLCAweDM3LCAweDAxLCAweDdkLCAweDdlLCAweDI3LCAweDAxLCAweDlkLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAKLSAgICAweDAyLCAweDJlLCAweDA1LCAweDM2LCAweDdhLCAweDA1LCAweDM2LCAweDdhLCAweDM3LCAweDAxLCAweDdkLCAweDdlLCAweDM3LCAweDAxLCAweDVkLCAweDdkLCAKLSAgICAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDEwLCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDVkLCAweDc1LCAweDJmLCAweDk0LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDYyLCAweGM0LCAweDIyLCAKLSAgICAweGMyLCAweDYyLCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDdkLCAweGJlLCAweDI0LCAKLSAgICAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDlkLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweDlkLCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweDdkLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM2LCAweDdhLCAweDA1LCAweDM2LCAweDdhLCAweDM3LCAweDAxLCAweDdkLCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweDVkLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDEwLCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAKLSAgICAweDAxLCAweDVkLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAKLSAgICAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDEwLCAKLSAgICAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDBjLCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAKLSAgICAweDAxLCAweDVkLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDRkLCAweDFjLCAweDIyLCAweGQyLCAweDBhLCAKLSAgICAweDdlLCAweDA0LCAweDBjLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDVkLCAweDdhLCAweDA3LCAweDAxLCAweDZkLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAKLSAgICAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAKLSAgICAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGFkLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAKLSAgICAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAKLSAgICAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAKLSAgICAweDI0LCAweDAyLCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGFkLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAKLSAgICAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNhLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAKLSAgICAweDAwLCAweDEwLCAweGQyLCAweDEyLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAKLSAgICAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDAyLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGFkLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAKLSAgICAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAKLSAgICAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAKLSAgICAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAKLSAgICAweDIzLCAweDQ0LCAweDAyLCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAKLSAgICAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAKLSAgICAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAKLSAgICAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAKLSAgICAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAKLSAgICAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAKLSAgICAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKLSAgICAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAKLSAgICAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDRlLCAweDc4LCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNhLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAKLSAgICAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDEyLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAKLSAgICAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDRlLCAweDc4LCAweGRhLCAweGI4LCAweDAyLCAweDRmLCAweDlmLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAKLSAgICAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAKLSAgICAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVhLCAweDgwLCAweDAyLCAweGMyLCAKLSAgICAweDVhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUyLCAweDgwLCAweDAyLCAweGMyLCAweDUyLCAweDEyLCAweDQyLCAKLSAgICAweGViLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAKLSAgICAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAKLSAgICAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAKLSAgICAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDRlLCAweGNjLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAKLSAgICAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBiLCAweDAxLCAweDIyLCAweDIwLCAweDJiLCAweDAzLCAweGQyLCAweDBiLCAweDIyLCAKLSAgICAweDc1LCAweDJmLCAweGEzLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDgzLCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJiLCAweDAzLCAweGQyLCAKLSAgICAweDBiLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAKLSAgICAweDUyLCAweGNjLCAweDMwLCAweDMzLCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBiLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDYzLCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweDdmLCAweDdlLCAweDI3LCAweDAxLCAweDlmLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAKLSAgICAweDM4LCAweDdhLCAweDA1LCAweDM4LCAweDdhLCAweDM3LCAweDAxLCAweDdmLCAweDdlLCAweDM3LCAweDAxLCAweDVmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAKLSAgICAweGJlLCAweDQ0LCAweDE0LCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDVmLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDYzLCAweGM0LCAweDIyLCAweGMyLCAweDYzLCAweDJkLCAKLSAgICAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDdmLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAKLSAgICAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweDlmLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweDlmLCAweDdlLCAweDM3LCAweDAxLCAweDdmLCAweDlkLCAKLSAgICAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDM4LCAweDdhLCAweDA1LCAweDM4LCAweDdhLCAweDM3LCAweDAxLCAweDdmLCAweDdlLCAweDM3LCAweDAxLCAKLSAgICAweDVmLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE0LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDVmLCAweDc1LCAKLSAgICAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAKLSAgICAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDE0LCAweDJkLCAweDlkLCAweDI0LCAKLSAgICAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDEwLCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDVmLCAweDEyLCAKLSAgICAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDUwLCAweDQ5LCAweDIyLCAweGQyLCAweDBiLCAweDdlLCAweDA0LCAweDEwLCAKLSAgICAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDVmLCAweDdhLCAweDA3LCAweDAxLCAweDZmLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAKLSAgICAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAKLSAgICAweDAxLCAweGFmLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAKLSAgICAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAKLSAgICAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDAzLCAweDAwLCAKLSAgICAweDJlLCAweDI3LCAweDAxLCAweGFmLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAKLSAgICAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAKLSAgICAweDAwLCAweDA0LCAweDMwLCAweDNiLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAKLSAgICAweDEzLCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAKLSAgICAweDdlLCAweDY0LCAweDAzLCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGFmLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAKLSAgICAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAKLSAgICAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAKLSAgICAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDAzLCAKLSAgICAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAKLSAgICAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAKLSAgICAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAKLSAgICAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAKLSAgICAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAKLSAgICAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAKLSAgICAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAKLSAgICAweDc4LCAweGU3LCAweDAyLCAweDUxLCAweGE1LCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAKLSAgICAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNiLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAKLSAgICAweDAwLCAweDEwLCAweGQyLCAweDEzLCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAKLSAgICAweDEyLCAweDUxLCAweGE1LCAweGRhLCAweGI4LCAweDAyLCAweDUyLCAweGNjLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAKLSAgICAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAKLSAgICAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDViLCAweDgwLCAweDAyLCAweGMyLCAweDViLCAweGE1LCAweGZkLCAKLSAgICAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUzLCAweDgwLCAweDAyLCAweGMyLCAweDUzLCAweDEyLCAweDQzLCAweDAyLCAweDAyLCAweDYxLCAKLSAgICAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAKLSAgICAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAKLSAgICAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAKLSAgICAweGRiLCAweDIyLCAweDAyLCAweDUxLCAweGY5LCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBjLCAweDAxLCAweDIyLCAweDIwLCAweDJjLCAweDAzLCAweGQyLCAweDBjLCAweDIyLCAweDc1LCAweDJmLCAweGE0LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDg0LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJjLCAweDAzLCAweGQyLCAweDBjLCAweDIyLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDU1LCAweGY5LCAweDMwLCAKLSAgICAweDM0LCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBjLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDY0LCAweDdlLCAweDM3LCAweDAxLCAKLSAgICAweDgxLCAweDdlLCAweDI3LCAweDAxLCAweGExLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNhLCAweDdhLCAweDA1LCAKLSAgICAweDNhLCAweDdhLCAweDM3LCAweDAxLCAweDgxLCAweDdlLCAweDM3LCAweDAxLCAweDYxLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE4LCAKLSAgICAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDYxLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDY0LCAweGM0LCAweDIyLCAweGMyLCAweDY0LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAKLSAgICAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDgxLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweGExLCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGExLCAweDdlLCAweDM3LCAweDAxLCAweDgxLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAKLSAgICAweDJlLCAweDA1LCAweDNhLCAweDdhLCAweDA1LCAweDNhLCAweDdhLCAweDM3LCAweDAxLCAweDgxLCAweDdlLCAweDM3LCAweDAxLCAweDYxLCAweDdkLCAweDQzLCAKLSAgICAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDE4LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDYxLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDE4LCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAKLSAgICAweDdlLCAweDM0LCAweDE0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDYxLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAKLSAgICAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDUzLCAweDc2LCAweDIyLCAweGQyLCAweDBjLCAweDdlLCAweDA0LCAweDE0LCAweDJkLCAweDdhLCAweDA3LCAKLSAgICAweDAxLCAweDYxLCAweDdhLCAweDA3LCAweDAxLCAweDcxLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAKLSAgICAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGIxLCAweDJlLCAKLSAgICAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAKLSAgICAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAKLSAgICAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDA0LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAKLSAgICAweGIxLCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAKLSAgICAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAKLSAgICAweDNjLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE0LCAweDIyLCAweDgwLCAKLSAgICAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA0LCAKLSAgICAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGIxLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAKLSAgICAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAKLSAgICAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAKLSAgICAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA0LCAweDdhLCAweDY5LCAweGIwLCAKLSAgICAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKLSAgICAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAKLSAgICAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAKLSAgICAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAKLSAgICAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAKLSAgICAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAKLSAgICAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAKLSAgICAweDU0LCAweGQyLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAKLSAgICAweDAwLCAweDA0LCAweDMwLCAweDNjLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAKLSAgICAweDE0LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDU0LCAweGQyLCAKLSAgICAweGRhLCAweGI4LCAweDAyLCAweDU1LCAweGY5LCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAKLSAgICAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVjLCAweDgwLCAweDAyLCAweGMyLCAweDVjLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAKLSAgICAweDY4LCAweDA0LCAweGQyLCAweDU0LCAweDgwLCAweDAyLCAweGMyLCAweDU0LCAweDEyLCAweDQzLCAweDE5LCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAKLSAgICAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAKLSAgICAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAKLSAgICAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAKLSAgICAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAKLSAgICAweDU1LCAweDI2LCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAKLSAgICAweDEwLCAweDBkLCAweDAxLCAweDIyLCAweDIwLCAweDJkLCAweDAzLCAweGQyLCAweDBkLCAweDIyLCAweDc1LCAweDJmLCAweGE1LCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDdlLCAweDE0LCAweDg1LCAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJkLCAweDAzLCAweGQyLCAweDBkLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAKLSAgICAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDU5LCAweDI2LCAweDMwLCAweDM1LCAweDA2LCAweDIwLCAKLSAgICAweGU2LCAweDRmLCAweGQyLCAweDBkLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDY1LCAweDdlLCAweDM3LCAweDAxLCAweDgzLCAweDdlLCAweDI3LCAKLSAgICAweDAxLCAweGEzLCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNjLCAweDdhLCAweDA1LCAweDNjLCAweDdhLCAweDM3LCAKLSAgICAweDAxLCAweDgzLCAweDdlLCAweDM3LCAweDAxLCAweDYzLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDFjLCAweDJjLCAweDM4LCAweDY4LCAKLSAgICAweDdhLCAweDQ3LCAweDAxLCAweDYzLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDY1LCAweGM0LCAweDIyLCAweGMyLCAweDY1LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAKLSAgICAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDgzLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGEzLCAweDI4LCAKLSAgICAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGEzLCAweDdlLCAweDM3LCAweDAxLCAweDgzLCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNjLCAKLSAgICAweDdhLCAweDA1LCAweDNjLCAweDdhLCAweDM3LCAweDAxLCAweDgzLCAweDdlLCAweDM3LCAweDAxLCAweDYzLCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAKLSAgICAweDQ0LCAweDFjLCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDYzLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAKLSAgICAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDFjLCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDE4LCAKLSAgICAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDYzLCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAKLSAgICAweDAzLCAweDAyLCAweDU2LCAweGEzLCAweDIyLCAweGQyLCAweDBkLCAweDdlLCAweDA0LCAweDE4LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDYzLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweDczLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAKLSAgICAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAKLSAgICAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGIzLCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAKLSAgICAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAKLSAgICAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAKLSAgICAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDA1LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGIzLCAweDFiLCAweDM4LCAKLSAgICAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNkLCAweDBhLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE1LCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA1LCAweDAwLCAweDJlLCAweDY3LCAKLSAgICAweDAxLCAweGIzLCAweDllLCAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAKLSAgICAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAKLSAgICAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAKLSAgICAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA1LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAKLSAgICAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAKLSAgICAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAKLSAgICAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAKLSAgICAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAKLSAgICAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAKLSAgICAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAKLSAgICAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAKLSAgICAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAKLSAgICAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDU3LCAweGZmLCAweDc1LCAKLSAgICAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAKLSAgICAweDNkLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE1LCAweDIyLCAweGRhLCAKLSAgICAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDU3LCAweGZmLCAweGRhLCAweGI4LCAweDAyLCAKLSAgICAweDU5LCAweDI2LCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAKLSAgICAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAKLSAgICAweDY4LCAweDA0LCAweGQyLCAweDVkLCAweDgwLCAweDAyLCAweGMyLCAweDVkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAKLSAgICAweDU1LCAweDgwLCAweDAyLCAweGMyLCAweDU1LCAweDEyLCAweDQzLCAweDMwLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAKLSAgICAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAKLSAgICAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAKLSAgICAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDU4LCAweDUzLCAweDc1LCAKLSAgICAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBlLCAweDAxLCAKLSAgICAweDIyLCAweDIwLCAweDJlLCAweDAzLCAweGQyLCAweDBlLCAweDIyLCAweDc1LCAweDJmLCAweGE2LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDg2LCAKLSAgICAweDAwLCAweDgwLCAweDA2LCAweDIwLCAweDJlLCAweDAzLCAweGQyLCAweDBlLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAKLSAgICAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDVjLCAweDUzLCAweDMwLCAweDM2LCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAKLSAgICAweDBlLCAweDIyLCAweDMwLCAweGU2LCAweDAyLCAweGQyLCAweDY2LCAweDdlLCAweDM3LCAweDAxLCAweDg1LCAweDdlLCAweDI3LCAweDAxLCAweGE1LCAweDlkLCAKLSAgICAweDMyLCAweDQwLCAweDMxLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNlLCAweDdhLCAweDA1LCAweDNlLCAweDdhLCAweDM3LCAweDAxLCAweDg1LCAweDdlLCAKLSAgICAweDM3LCAweDAxLCAweDY1LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDIwLCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAKLSAgICAweDY1LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAKLSAgICAweDEwLCAweDY2LCAweGM0LCAweDIyLCAweGMyLCAweDY2LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAKLSAgICAweDAxLCAweDg1LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGE1LCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAKLSAgICAweDAxLCAweGE1LCAweDdlLCAweDM3LCAweDAxLCAweDg1LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDNlLCAweDdhLCAweDA1LCAweDNlLCAKLSAgICAweDdhLCAweDM3LCAweDAxLCAweDg1LCAweDdlLCAweDM3LCAweDAxLCAweDY1LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDIwLCAweDJjLCAKLSAgICAweDM4LCAweDEzLCAweDdhLCAweDQ3LCAweDAxLCAweDY1LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDAyLCAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDllLCAweDQ0LCAweDIwLCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDFjLCAweDJkLCAweDdkLCAweDI0LCAKLSAgICAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweDY1LCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDU5LCAKLSAgICAweGQwLCAweDIyLCAweGQyLCAweDBlLCAweDdlLCAweDA0LCAweDFjLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDY1LCAweDdhLCAweDA3LCAweDAxLCAweDc1LCAKLSAgICAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAKLSAgICAweDY4LCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGI1LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAKLSAgICAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAKLSAgICAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweGM5LCAweDdlLCAweDI0LCAweDA2LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGI1LCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAKLSAgICAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNlLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAKLSAgICAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE2LCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA2LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGI1LCAweDllLCAKLSAgICAweDI0LCAweDAwLCAweDAyLCAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAKLSAgICAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAKLSAgICAweDM0LCAweDI0LCAweDJkLCAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAKLSAgICAweDU0LCAweDBmLCAweDIzLCAweDIzLCAweDIzLCAweDQ0LCAweDA2LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAKLSAgICAweDJmLCAweDkzLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAKLSAgICAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAKLSAgICAweDdhLCAweDM1LCAweDMwLCAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAKLSAgICAweDI0LCAweDJkLCAweDgwLCAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAKLSAgICAweDdlLCAweDA3LCAweDAxLCAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAKLSAgICAweGJkLCAweDA0LCAweDY4LCAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAKLSAgICAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAKLSAgICAweDdhLCAweDA5LCAweGIwLCAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDViLCAweDJjLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNlLCAweDBhLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE2LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAKLSAgICAweGQ4LCAweGJkLCAweDMyLCAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDViLCAweDJjLCAweGRhLCAweGI4LCAweDAyLCAweDVjLCAweDUzLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAKLSAgICAweDVlLCAweDgwLCAweDAyLCAweGMyLCAweDVlLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU2LCAweDgwLCAweDAyLCAKLSAgICAweGMyLCAweDU2LCAweDEyLCAweDQzLCAweDQ3LCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE0LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAKLSAgICAweDAyLCAweDYxLCAweDEzLCAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAKLSAgICAweDVlLCAweGIwLCAweDFjLCAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAKLSAgICAweDM2LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDViLCAweDgwLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDEwLCAweDBmLCAweDAxLCAweDIyLCAweDIwLCAweDJmLCAKLSAgICAweDAzLCAweGQyLCAweDBmLCAweDIyLCAweDc1LCAweDJmLCAweGE3LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDg3LCAweDAwLCAweDgwLCAweDA2LCAKLSAgICAweDIwLCAweDJmLCAweDAzLCAweGQyLCAweDBmLCAweDIyLCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAKLSAgICAweGI4LCAweDY4LCAweDAzLCAweDEyLCAweDVmLCAweDgwLCAweDMwLCAweDM3LCAweDA2LCAweDIwLCAweGU2LCAweDRmLCAweGQyLCAweDBmLCAweDIyLCAweDMwLCAKLSAgICAweGU2LCAweDAyLCAweGQyLCAweDY3LCAweDdlLCAweDM3LCAweDAxLCAweDg3LCAweDdlLCAweDI3LCAweDAxLCAweGE3LCAweDlkLCAweDMyLCAweDQwLCAweDMxLCAKLSAgICAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQwLCAweDdhLCAweDA1LCAweDQwLCAweDdhLCAweDM3LCAweDAxLCAweDg3LCAweDdlLCAweDM3LCAweDAxLCAweDY3LCAKLSAgICAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI0LCAweDJjLCAweDM4LCAweDY4LCAweDdhLCAweDQ3LCAweDAxLCAweDY3LCAweDc1LCAweDJmLCAKLSAgICAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDY5LCAweGYwLCAweDEwLCAweDY3LCAweGM0LCAKLSAgICAweDIyLCAweGMyLCAweDY3LCAweDJkLCAweDIzLCAweDY4LCAweDc4LCAweDZkLCAweDMzLCAweDgwLCAweDFhLCAweDdlLCAweDI3LCAweDAxLCAweDg3LCAweGJlLCAKLSAgICAweDI0LCAweDAwLCAweDAwLCAweDY4LCAweDZhLCAweGJlLCAweDI3LCAweDAxLCAweGE3LCAweDI4LCAweDA0LCAweDdlLCAweDI3LCAweDAxLCAweGE3LCAweDdlLCAKLSAgICAweDM3LCAweDAxLCAweDg3LCAweDlkLCAweDMyLCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDQwLCAweDdhLCAweDA1LCAweDQwLCAweDdhLCAweDM3LCAweDAxLCAKLSAgICAweDg3LCAweDdlLCAweDM3LCAweDAxLCAweDY3LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI0LCAweDJjLCAweDM4LCAweDEzLCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweDY3LCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDAyLCAKLSAgICAweDY5LCAweGYwLCAweDc1LCAweDJmLCAweDk0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAKLSAgICAweDI0LCAweDJkLCAweDlkLCAweDI0LCAweDEyLCAweDY5LCAweGYwLCAweDdlLCAweDM0LCAweDIwLCAweDJkLCAweDdkLCAweDI0LCAweDJkLCAweDQzLCAweDdhLCAKLSAgICAweDQ3LCAweDAxLCAweDY3LCAweDEyLCAweDY5LCAweGYwLCAweGJlLCAweDI1LCAweDIwLCAweDc4LCAweDAzLCAweDAyLCAweDVjLCAweGZkLCAweDIyLCAweGQyLCAKLSAgICAweDBmLCAweDdlLCAweDA0LCAweDIwLCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweDY3LCAweDdhLCAweDA3LCAweDAxLCAweDc3LCAweDc1LCAweDJmLCAweDk0LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDc1LCAweDJmLCAweDAwLCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDc1LCAweDJmLCAweDkyLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDgyLCAweGRhLCAweGI4LCAweDc4LCAweDY4LCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweGNiLCAweDdlLCAweDI3LCAweDAxLCAweGI3LCAweDJlLCAweDI0LCAweDAwLCAweDAyLCAweDJkLCAweDMyLCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAKLSAgICAweDM4LCAweDM0LCAweDdkLCAweDAyLCAweDJlLCAweDA1LCAweDMwLCAweDdhLCAweDA1LCAweDMwLCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAKLSAgICAweDAxLCAweGM5LCAweDdkLCAweDQzLCAweDJkLCAweDQyLCAweGJlLCAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNjLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDI0LCAweDA3LCAweDAwLCAweDJlLCAweDI3LCAweDAxLCAweGI3LCAweDFiLCAweDM4LCAweDIwLCAweDBiLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDAyLCAweDZhLCAweDYzLCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDA0LCAKLSAgICAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNmLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAweDU0LCAweGZlLCAweDE5LCAKLSAgICAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE3LCAweDIyLCAweDgwLCAweDdmLCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAKLSAgICAweDI4LCAweDJkLCAweDlkLCAweDI0LCAweDdlLCAweDY0LCAweDA3LCAweDAwLCAweDJlLCAweDY3LCAweDAxLCAweGI3LCAweDllLCAweDI0LCAweDAwLCAweDAyLCAKLSAgICAweDQwLCAweDE3LCAweDFiLCAweDM4LCAweDYwLCAweDBiLCAweDM1LCAweDEyLCAweDZhLCAweDYzLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAweDI0LCAKLSAgICAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM5LCAweDAyLCAweDZhLCAweDYzLCAweDdhLCAweDM5LCAweGMwLCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAKLSAgICAweDdhLCAweDM5LCAweGQwLCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDgwLCAweGU1LCAweDlkLCAweDMyLCAweDdjLCAweGI2LCAweDU0LCAweDBmLCAweDIzLCAKLSAgICAweDIzLCAweDIzLCAweDQ0LCAweDA3LCAweDdhLCAweDY5LCAweGIwLCAweDdhLCAweDc5LCAweDcwLCAweDBiLCAweDM1LCAweDc1LCAweDJmLCAweDkzLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGJkLCAweDA0LCAweDY4LCAweDJiLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDQ3LCAweDAxLCAweGNiLCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGNiLCAweDJlLCAweDM1LCAweDMwLCAweDdhLCAweDM1LCAweDMwLCAKLSAgICAweDIyLCAweGQyLCAweDA0LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweDEzLCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAKLSAgICAweDI4LCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweDJhLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGNmLCAweDdlLCAweDA3LCAweDAxLCAKLSAgICAweGNiLCAweDdlLCAweDI0LCAweDAzLCAweGZlLCAweDlkLCAweDIwLCAweDI4LCAweDQwLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAweDdlLCAweDQ0LCAweDI4LCAKLSAgICAweDJkLCAweDdkLCAweDYwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAweGQyLCAweDdkLCAweDcwLCAweDBiLCAweDA0LCAweGJkLCAweDA0LCAweDY4LCAKLSAgICAweGQwLCAweDdkLCAweDU0LCAweDlkLCAweDUwLCAweGJkLCAweDI1LCAweDQwLCAweDAyLCAweDdkLCAweDI1LCAweDdkLCAweDMyLCAweDA5LCAweGIxLCAweDAwLCAKLSAgICAweDE0LCAweGNhLCAweGI4LCAweDU0LCAweDFmLCAweGI0LCAweDAxLCAweDMxLCAweGRhLCAweGI4LCAweDdlLCAweDE5LCAweGIwLCAweDdhLCAweDA5LCAweGIwLCAKLSAgICAweDBiLCAweDA0LCAweDFiLCAweDI0LCAweDc4LCAweGU3LCAweDAyLCAweDVlLCAweDU5LCAweDc1LCAweDJmLCAweDk5LCAweDEyLCAweDczLCAweDM1LCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDA0LCAweDU0LCAweGZhLCAweDE5LCAweGIxLCAweDAwLCAweDA0LCAweDMwLCAweDNmLCAweDBhLCAweDA5LCAweGIxLCAweDAwLCAweDEwLCAKLSAgICAweDU0LCAweGZlLCAweDE5LCAweGIxLCAweDAwLCAweDEwLCAweGQyLCAweDE3LCAweDIyLCAweGRhLCAweGI4LCAweDMwLCAweGUwLCAweGQ4LCAweGJkLCAweDMyLCAKLSAgICAweDY4LCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDVlLCAweDU5LCAweGRhLCAweGI4LCAweDAyLCAweDVmLCAweDgwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAKLSAgICAweDdlLCAweGEwLCAweDg4LCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweGE1LCAweGZkLCAKLSAgICAweDVlLCAweDUwLCAweDBhLCAweDY4LCAweDFkLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVmLCAweDgwLCAweDAyLCAKLSAgICAweGMyLCAweDVmLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU3LCAweDgwLCAweDAyLCAweGMyLCAweDU3LCAweDEyLCAKLSAgICAweDQzLCAweDVlLCAweDAyLCAweDYxLCAweDEzLCAweDc1LCAweDJmLCAweDkxLCAweDEyLCAweDczLCAweDM1LCAweDA5LCAweGIxLCAweDAwLCAweDE0LCAweDdhLCAKLSAgICAweGIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDIwLCAweGUwLCAweDA4LCAweGQyLCAweDA0LCAweDdlLCAweGEwLCAweDgwLCAweDAyLCAweDYxLCAweDEzLCAKLSAgICAweGQyLCAweDA0LCAweDMwLCAweGUxLCAweDA2LCAweDdlLCAweGEwLCAweDgwLCAweDEyLCAweDYxLCAweDEzLCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFjLCAKLSAgICAweGRhLCAweGI4LCAweDY4LCAweDEyLCAweDdlLCAweGEwLCAweGMwLCAweDA5LCAweDYxLCAweDAwLCAweDAwLCAweDEyLCAweDYxLCAweDM2LCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE0LCAweDIwLCAweGUwLCAweGRiLCAweDIyLCAweDAyLCAweDVlLCAweGFkLCAweDc1LCAweDJmLCAweDk1LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAKLSAgICAweDc1LCAweDJmLCAweDk2LCAweDEyLCAweDczLCAweDM1LCAweDIyLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAKLSAgICAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDU4LCAweDgwLCAweDAyLCAweGMyLCAweDU4LCAKLSAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUwLCAweDgwLCAweDAyLCAweGMyLCAweDUwLCAweDAyLCAweDYwLCAweGZmLCAKLSAgICAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAKLSAgICAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDU5LCAweDgwLCAweDAyLCAweGMyLCAweDU5LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAKLSAgICAweGQyLCAweDUxLCAweDgwLCAweDAyLCAweGMyLCAweDUxLCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAKLSAgICAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVhLCAweDgwLCAweDAyLCAKLSAgICAweGMyLCAweDVhLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDUyLCAweDgwLCAweDAyLCAweGMyLCAweDUyLCAweDAyLCAKLSAgICAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAKLSAgICAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDViLCAweDgwLCAweDAyLCAweGMyLCAweDViLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAKLSAgICAweDY4LCAweDA0LCAweGQyLCAweDUzLCAweDgwLCAweDAyLCAweGMyLCAweDUzLCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAKLSAgICAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVjLCAKLSAgICAweDgwLCAweDAyLCAweGMyLCAweDVjLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU0LCAweDgwLCAweDAyLCAweGMyLCAKLSAgICAweDU0LCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAKLSAgICAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVkLCAweDgwLCAweDAyLCAweGMyLCAweDVkLCAweGE1LCAweGZkLCAweDVlLCAKLSAgICAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU1LCAweDgwLCAweDAyLCAweGMyLCAweDU1LCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAKLSAgICAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAKLSAgICAweGQyLCAweDVlLCAweDgwLCAweDAyLCAweGMyLCAweDVlLCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU2LCAweDgwLCAKLSAgICAweDAyLCAweGMyLCAweDU2LCAweDAyLCAweDYwLCAweGZmLCAweDdjLCAweDAyLCAweDdlLCAweDE0LCAweDgwLCAweDAwLCAweDRjLCAweDIwLCAweDA5LCAweGIxLCAKLSAgICAweDAwLCAweDE4LCAweGE1LCAweGZkLCAweDVlLCAweDUwLCAweDIwLCAweDY4LCAweDA0LCAweGQyLCAweDVmLCAweDgwLCAweDAyLCAweGMyLCAweDVmLCAweGE1LCAKLSAgICAweGZkLCAweDVlLCAweDUwLCAweDgwLCAweDY4LCAweDA0LCAweGQyLCAweDU3LCAweDgwLCAweDAyLCAweGMyLCAweDU3LCAweDAyLCAweDYwLCAweGZmLCAweDU0LCAKLSAgICAweGYwLCAweGM0LCAweGE1LCAweGZmLCAweGM0LCAweGE1LCAweDRmLCAweDc1LCAweDJmLCAweDkwLCAweDEyLCAweDczLCAweDM1LCAweGY1LCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDIyLCAweGNhLCAweDE5LCAweDVlLCAweDIwLCAweDA3LCAweDRjLCAweGEyLCAweDdlLCAweDc0LCAweDJjLCAweDJkLCAweGNhLCAweDc5LCAKLSAgICAweDdhLCAweDc5LCAweGEwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweGIwLCAweDBiLCAweDc0LCAweGRhLCAweDc5LCAweDdlLCAweDMwLCAweDAyLCAweDdlLCAKLSAgICAweDY0LCAweDAwLCAweDAyLCAweDAyLCAweDYxLCAweDVlLCAweGNhLCAweDE5LCAweDVlLCAweDIwLCAweDA3LCAweDRjLCAweGEyLCAweDdlLCAweDc0LCAweDJjLCAKLSAgICAweDJkLCAweGNhLCAweDc5LCAweDdhLCAweDc5LCAweGEwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweGIwLCAweDBiLCAweDc0LCAweDdhLCAweDc5LCAweDYwLCAKLSAgICAweDBiLCAweDc0LCAweGRhLCAweDc5LCAweDdlLCAweDMwLCAweDAzLCAweDdlLCAweDY0LCAweDAwLCAweDAzLCAweDAyLCAweDYxLCAweDVlLCAweGQyLCAweDA0LCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweGNiLCAweDJkLCAweDI2LCAweGJlLCAweDI0LCAweDA0LCAweDAwLCAweDM4LCAweDJlLCAweDdlLCAweDA3LCAweDAxLCAweGM5LCAKLSAgICAweDdlLCAweDQ0LCAweDI4LCAweDJkLCAweDdlLCAweDc5LCAweGEwLCAweDdhLCAweDA5LCAweGEwLCAweDBiLCAweDA0LCAweDBiLCAweDc0LCAweGJkLCAweDA0LCAKLSAgICAweDY4LCAweDIzLCAweGE1LCAweGRiLCAweGVmLCAweDdhLCAweDI3LCAweDAxLCAweGNiLCAweDdlLCAweDI1LCAweDMwLCAweDJkLCAweDI2LCAweDdhLCAweDI1LCAKLSAgICAweDMwLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweGRhLCAweDE5LCAweGMyLCAweGQ3LCAweDIyLCAweDc1LCAweDJmLCAweDlhLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweGRhLCAweDE5LCAweGQyLCAweGQ3LCAweDIyLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDgwLCAweGQ3LCAweDQ4LCAweGYxLCAweDQ2LCAweDY1LCAweDQ3LCAKLSAgICAweDVmLCAweDQ5LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ4LCAweDU2LCAweDQ1LCAweDJhLCAweDQ5LCAweDZlLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ5LCAweDc1LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRjLCAweDFlLCAweDQ5LCAweDkyLCAweDRhLCAKLSAgICAweDhjLCAweDRjLCAweDU3LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRiLCAweDgzLCAweDQ1LCAweDJhLCAweDRjLCAweDliLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRjLCAweGEyLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRmLCAweDRiLCAweDRjLCAweGJmLCAweDRkLCAKLSAgICAweGI5LCAweDRmLCAweDg0LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRlLCAweGIwLCAweDQ1LCAweDJhLCAweDRmLCAweGM4LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDRmLCAweGNmLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDUyLCAweDc4LCAweDRmLCAweGVjLCAweDUwLCAKLSAgICAweGU2LCAweDUyLCAweGIxLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDUxLCAweGRkLCAweDQ1LCAweDJhLCAweDUyLCAweGY1LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDUyLCAweGZjLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU1LCAweGE1LCAweDUzLCAweDE5LCAweDU0LCAKLSAgICAweDEzLCAweDU1LCAweGRlLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU1LCAweDBhLCAweDQ1LCAweDJhLCAweDU2LCAweDIyLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU2LCAweDI5LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU4LCAweGQyLCAweDU2LCAweDQ2LCAweDU3LCAKLSAgICAweDQwLCAweDU5LCAweDBiLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU4LCAweDM3LCAweDQ1LCAweDJhLCAweDU5LCAweDRmLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDU5LCAweDU2LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDViLCAweGZmLCAweDU5LCAweDczLCAweDVhLCAKLSAgICAweDZkLCAweDVjLCAweDM4LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDViLCAweDY0LCAweDQ1LCAweDJhLCAweDVjLCAweDdjLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVjLCAweDgzLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVmLCAweDJjLCAweDVjLCAweGEwLCAweDVkLCAKLSAgICAweDlhLCAweDVmLCAweDY1LCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVlLCAweDkxLCAweDQ1LCAweDJhLCAweDVmLCAweGE5LCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDVmLCAweGIwLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAKLSAgICAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweDQ1LCAweDJhLCAweGNhLCAweGI4LCAweDc1LCAweDJmLCAweDAyLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDkxLCAweDAzLCAweDIwLCAweGU1LCAweDIwLCAweDMwLCAweGUwLCAweDA1LCAweDEyLCAweDZiLCAweDA1LCAKLSAgICAweDgwLCAweDMwLCAweDMwLCAweGUxLCAweDA1LCAweDEyLCAweDY0LCAweDg2LCAweDgwLCAweDI4LCAweDMwLCAweGUyLCAweDA1LCAweDEyLCAweDYzLCAweGY1LCAKLSAgICAweDgwLCAweDIwLCAweDMwLCAweGUzLCAweDFkLCAweDEyLCAweDY1LCAweDYxLCAweDgwLCAweDE4LCAweDdlLCAweGIzLCAweDkxLCAweDA0LCAweDMwLCAweGUxLCAKLSAgICAweDAzLCAweDAyLCAweDY3LCAweDVmLCAweDMwLCAweGU2LCAweDA1LCAweDEyLCAweDZjLCAweDZhLCAweDgwLCAweDA2LCAweDIwLCAweGUyLCAweDAzLCAweDAyLCAKLSAgICAweDAwLCAweDgwLCAweGRhLCAweGI4LCAweDMyLCAweDc1LCAweDJmLCAweDEwLCAweDEyLCAweDczLCAweDM1LCAweGNhLCAweDBiLCAweGNhLCAweDM5LCAweGNhLCAKLSAgICAweDU5LCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDkxLCAweDFhLCAweDZjLCAweGFhLCAweGJlLCAweGIwLCAweDQwLCAKLSAgICAweDI4LCAweDBhLCAweDEyLCAweDY0LCAweDI0LCAweGRhLCAweDU5LCAweGRhLCAweDM5LCAweGRhLCAweDBiLCAweDIyLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAKLSAgICAweDkxLCAweDE0LCAweDgwLCAweGYxLCAweDdlLCAweDM3LCAweDAxLCAweGM1LCAweDJkLCAweDM1LCAweGJlLCAweDM0LCAweDA0LCAweDAwLCAweDM4LCAweDJmLCAKLSAgICAweDdhLCAweDM3LCAweDAxLCAweGM1LCAweDdlLCAweDM3LCAweDAxLCAweGMzLCAweDdkLCAweDQzLCAweDJkLCAweDQ1LCAweGJlLCAweDQ0LCAweDJjLCAweDJjLCAKLSAgICAweDM4LCAweDI1LCAweDdhLCAweDQ3LCAweDAxLCAweGMzLCAweDc1LCAweDJmLCAweDExLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweGIxLCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDEyLCAweDY3LCAweDlmLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDEyLCAweDY2LCAweDMwLCAweDIyLCAweDc1LCAKLSAgICAweDJmLCAweDE2LCAweDEyLCAweDczLCAweDM1LCAweDgwLCAweGY0LCAweDc1LCAweDJmLCAweDEyLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweGIxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDllLCAweDQ0LCAweDJjLCAweDJkLCAweDlkLCAweDU0LCAweDEyLCAweDY3LCAweDlmLCAweDdlLCAweDM0LCAweDI4LCAweDJkLCAKLSAgICAweDdkLCAweDU0LCAweDJkLCAweDQzLCAweDgwLCAweGJjLCAweDc1LCAweDJmLCAweDE4LCAweDEyLCAweDczLCAweDM1LCAweGNhLCAweDA5LCAweGNhLCAweDM5LCAKLSAgICAweGNhLCAweDJiLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweDYzLCAweDkxLCAweDFhLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAKLSAgICAweDkxLCAweDE0LCAweDdlLCAweGIwLCAweDgwLCAweDljLCAweGI2LCAweDYwLCAweDM4LCAweDZjLCAweGFhLCAweDdlLCAweDM3LCAweDAxLCAweGNiLCAweDlkLCAKLSAgICAweDM1LCAweDQwLCAweDM3LCAweDdhLCAweDM3LCAweDAxLCAweGNiLCAweDdlLCAweDM3LCAweDAxLCAweGM3LCAweDdkLCAweDQzLCAweDJkLCAweDQ1LCAweGJlLCAKLSAgICAweDQ0LCAweDI4LCAweDJjLCAweDM4LCAweDNiLCAweDdhLCAweDQ3LCAweDAxLCAweGM3LCAweDdkLCAweDQ1LCAweDEyLCAweDY4LCAweGQ0LCAweDdlLCAweGIzLCAKLSAgICAweDkxLCAweDFlLCAweDIwLCAweGU1LCAweDEzLCAweDc1LCAweDJmLCAweDE5LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDkxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweGRhLCAweDJiLCAweGRhLCAweDM5LCAweGRhLCAweDA5LCAweDIyLCAweDgwLCAweDM0LCAweDJkLCAweDUzLCAweDZkLCAweDMzLCAweDYwLCAweDAyLCAKLSAgICAweDgwLCAweGMxLCAweDdlLCAweDA0LCAweDI0LCAweDJkLCAweDdhLCAweDA3LCAweDAxLCAweGM5LCAweDdhLCAweDA3LCAweDAxLCAweGM3LCAweDgwLCAweGUxLCAKLSAgICAweGNhLCAweDU5LCAweDllLCAweDQ0LCAweDI4LCAweDJkLCAweDlkLCAweDU0LCAweDEyLCAweDY4LCAweGQ0LCAweDdlLCAweDM0LCAweDI0LCAweDJkLCAweDdkLCAKLSAgICAweDU0LCAweDJkLCAweDQzLCAweDdhLCAweDQ3LCAweDAxLCAweGM3LCAweDEyLCAweDY4LCAweGQ0LCAweGRhLCAweDQ5LCAweDgwLCAweGIwLCAweDdlLCAweDBmLCAKLSAgICAweDJjLCAweDNlLCAweDBiLCAweDBjLCAweDdhLCAweDBmLCAweDJjLCAweDNlLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDc0LCAweDYwLCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDgwLCAweGE1LCAweDdlLCAweDJmLCAweDJjLCAweDVlLCAKLSAgICAweDBiLCAweDJjLCAweDdhLCAweDJmLCAweDJjLCAweDVlLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAKLSAgICAweDkxLCAweDFjLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDgwLCAweDFmLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAKLSAgICAweDIyLCAweDc1LCAweDJmLCAweDI4LCAweDEyLCAweDczLCAweDM1LCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweDc0LCAweDYwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDdlLCAweGIzLCAweDkxLCAweDFhLCAweDcwLCAweGRiLCAweDdlLCAKLSAgICAweDBkLCAweDMwLCAweDdlLCAweDFkLCAweDM0LCAweDdlLCAweDJkLCAweDM4LCAweDdlLCAweDNkLCAweDNjLCAweDdlLCAweDg1LCAweDQwLCAweDdkLCAweDkwLCAKLSAgICAweDRkLCAweDkxLCAweDRkLCAweDkyLCAweDRkLCAweDkzLCAweDRkLCAweDk0LCAweDRkLCAweDk1LCAweDRkLCAweDk2LCAweDRkLCAweDk3LCAweDRkLCAweDk4LCAKLSAgICAweDY4LCAweGI4LCAweDdhLCAweDEzLCAweDkxLCAweDE3LCAweDdhLCAweDAzLCAweDkxLCAweDE3LCAweDdhLCAweDMzLCAweDkxLCAweDE3LCAweDdhLCAweDIzLCAKLSAgICAweDkxLCAweDE3LCAweDdhLCAweDUzLCAweDkxLCAweDE3LCAweDdhLCAweDQzLCAweDkxLCAweDE3LCAweDdhLCAweDczLCAweDkxLCAweDE3LCAweDdhLCAweDYzLCAKLSAgICAweDkxLCAweDE3LCAweDdhLCAweDkzLCAweDkxLCAweDE3LCAweDdhLCAweDgzLCAweDkxLCAweDE3LCAweDMwLCAweDczLCAweDIyLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDE3LCAweDdhLCAweGEzLCAweDkxLCAweDE3LCAweDdhLCAweGQzLCAweDkxLCAweDE3LCAweDdhLCAweGMzLCAweDkxLCAweDE3LCAweDdhLCAweGYzLCAweDkxLCAKLSAgICAweDE3LCAweDdhLCAweGUzLCAweDkxLCAweDE3LCAweDdkLCAweDc4LCAweDdhLCAweGYzLCAweDkxLCAweDE3LCAweDdhLCAweGUzLCAweDkxLCAweDE3LCAweDdlLCAKLSAgICAweGIzLCAweDkxLCAweDFlLCAweDMwLCAweGU1LCAweDAzLCAweDAyLCAweDY1LCAweDNjLCAweDc1LCAweDJmLCAweDI5LCAweDEyLCAweDczLCAweDM1LCAweDIwLCAKLSAgICAweDczLCAweDA4LCAweDc1LCAweDJmLCAweDBhLCAweDEyLCAweDczLCAweDM1LCAweDgwLCAweDA2LCAweDc1LCAweDJmLCAweDEyLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDc0LCAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDZkLCAweDAwLCAweDdkLCAweDEwLCAweDdhLCAweDBkLCAweDMwLCAweDdhLCAweDBkLCAweDM0LCAKLSAgICAweDdhLCAweDBkLCAweDM4LCAweDdhLCAweDBkLCAweDNjLCAweDdhLCAweDA1LCAweDQwLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAKLSAgICAweDdlLCAweDM3LCAweDAxLCAweGM1LCAweDRkLCAweDMzLCAweDY4LCAweDNiLCAweDdlLCAweDA3LCAweDAxLCAweGMxLCAweDdlLCAweDU0LCAweDJjLCAweDJkLCAKLSAgICAweDlkLCAweDUwLCAweGJkLCAweDM1LCAweDQwLCAweDAyLCAweDdkLCAweDM1LCAweGNhLCAweDM5LCAweDdlLCAweDY1LCAweDRiLCAweDk5LCAweDY0LCAweGRhLCAKLSAgICAweDM5LCAweDdlLCAweDA3LCAweDAxLCAweGM1LCAweDlkLCAweDAzLCAweDdhLCAweDA3LCAweDAxLCAweGM1LCAweDJlLCAweDM3LCAweDAxLCAweGMxLCAweDdhLCAKLSAgICAweDM3LCAweDAxLCAweGMxLCAweGJlLCAweDM0LCAweDJjLCAweDJjLCAweDI4LCAweGM3LCAweDdlLCAweDM0LCAweDI4LCAweDJkLCAweDdhLCAweDM3LCAweDAxLCAKLSAgICAweGMxLCAweDgwLCAweGJkLCAweDIyLCAweDc1LCAweDJmLCAweDUzLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE1LCAweDRkLCAweDgwLCAweDExLCAweDc1LCAKLSAgICAweDJmLCAweDUxLCAweDEyLCAweDczLCAweDM1LCAweDBiLCAweDA4LCAweDEwLCAweDBiLCAweDA1LCAweDllLCAweDM0LCAweDAwLCAweDAyLCAweDI4LCAweDRkLCAKLSAgICAweDdjLCAweGIyLCAweDIwLCAweGU3LCAweDI3LCAweDU0LCAweDA3LCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDM5LCAweDFlLCAweDdjLCAweGIyLCAKLSAgICAweDU0LCAweDc4LCAweDAzLCAweDAzLCAweDAzLCAweDdjLCAweDJiLCAweDlkLCAweDEzLCAweDQwLCAweDFhLCAweDY4LCAweDEyLCAweDdhLCAweDE1LCAweDRkLCAKLSAgICAweDdhLCAweDI1LCAweDRmLCAweDdlLCAweDY0LCAweDY3LCAweDA5LCAweDdhLCAweDY1LCAweDRiLCAweDg5LCAweDI0LCAweDAyLCAweDY3LCAweDE3LCAweDdlLCAKLSAgICAweDY0LCAweDY2LCAweDdmLCAweDgwLCAweGYyLCAweDJkLCAweDEzLCAweDlkLCAweDMxLCAweGNhLCAweDM5LCAweDdkLCAweDMxLCAweDJkLCAweDEwLCAweGNhLCAKLSAgICAweDE5LCAweGNhLCAweDI5LCAweDk5LCAweDI0LCAweGRhLCAweDI5LCAweGRhLCAweDA5LCAweGRhLCAweDM5LCAweDgwLCAweGEyLCAweDdhLCAweDE1LCAweDRkLCAKLSAgICAweDdlLCAweDY0LCAweDY2LCAweGY1LCAweDRkLCAweDMzLCAweDc4LCAweDA5LCAweDdjLCAweGIyLCAweDIwLCAweGU3LCAweDJhLCAweDdlLCAweDY0LCAweDY2LCAKLSAgICAweDc0LCAweDdhLCAweDY1LCAweDRiLCAweDIyLCAweDc1LCAweDJmLCAweDUyLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDIxLCAweDRkLCAweDdlLCAweDA5LCAKLSAgICAweDMwLCAweDBiLCAweDA0LCAweDFiLCAweDM0LCAweDc4LCAweDg5LCAweDgwLCAweGQ0LCAweDc1LCAweDJmLCAweDU0LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAKLSAgICAweDE1LCAweDRkLCAweDdlLCAweDI1LCAweDRmLCAweDgwLCAweDkwLCAweDVlLCAweDIwLCAweDA3LCAweDU0LCAweDc4LCAweDdlLCAweDQ0LCAweDY3LCAweDdkLCAKLSAgICAweDMwLCAweGU2LCAweDE2LCAweDRkLCAweDMzLCAweDY4LCAweDI2LCAweDFiLCAweDM0LCAweDdlLCAweDA5LCAweDQwLCAweDBiLCAweDA0LCAweDdlLCAweDQ0LCAKLSAgICAweDM0LCAweGZhLCAweDIwLCAweGUzLCAweDA0LCAweDdlLCAweDQ0LCAweDY3LCAweDg1LCAweGNhLCAweDA5LCAweGNhLCAweDM5LCAweDk5LCAweDQ0LCAweGRhLCAKLSAgICAweDM5LCAweGRhLCAweDA5LCAweDdlLCAweDY0LCAweDY2LCAweDdmLCAweDRkLCAweDMzLCAweDY4LCAweGE2LCAweDg5LCAweDY0LCAweDdhLCAweDE1LCAweDRkLCAKLSAgICAweGY1LCAweDRmLCAweDdlLCAweDY0LCAweDY3LCAweDU4LCAweDgwLCAweDk5LCAweDdlLCAweDE1LCAweDRkLCAweGU1LCAweDRmLCAweDgwLCAweGM0LCAweGMwLCAKLSAgICAweGQwLCAweGMwLCAweGQxLCAweGMwLCAweGUwLCAweGNhLCAweDE5LCAweDc1LCAweDJmLCAweGZlLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDE0LCAweDAwLCAKLSAgICAweDUzLCAweDAyLCAweDQwLCAweDUyLCAweGRhLCAweDE5LCAweGQwLCAweGUwLCAweGQwLCAweGQxLCAweGQwLCAweGQwLCAweDMyLCAweDAzLCAweGE1LCAweGNiLCAKLSAgICAweDE5LCAweGIxLCAweDgwLCAweDAwLCAweDIyLCAweDIyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweDdlLCAweGEwLCAweDAyLCAweGE0LCAKLSAgICAweDdlLCAweDA0LCAweDY4LCAweGIxLCAweDlkLCAweDA1LCAweDdlLCAweGIwLCAweDI4LCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDg5LCAweDA0LCAweGNhLCAKLSAgICAweDI5LCAweGI0LCAweDgwLCAweGUyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweDdlLCAweDAwLCAweDI4LCAweDdhLCAweDAzLCAweDk1LCAKLSAgICAweDAwLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAweDI5LCAweDIyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAKLSAgICAweGUxLCAweDdlLCAweGEwLCAweDAyLCAweGE0LCAweDdlLCAweDA0LCAweDY5LCAweGU2LCAweDlkLCAweDA1LCAweDdlLCAweGIwLCAweDM4LCAweDdhLCAweGIzLCAKLSAgICAweDk1LCAweDAwLCAweDg5LCAweDA0LCAweGNhLCAweDI5LCAweGI0LCAweDgwLCAweGUyLCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweDdlLCAKLSAgICAweDAwLCAweDM4LCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAweDI5LCAweDIyLCAKLSAgICAweGNhLCAweDI5LCAweGNhLCAweDE5LCAweGNhLCAweDU4LCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweGRhLCAweDU4LCAweDdlLCAweDU0LCAKLSAgICAweDAyLCAweDIwLCAweDljLCAweGI1LCAweGE0LCAweDdlLCAweDUwLCAweDMwLCAweDVlLCAweDIwLCAweDA3LCAweDJjLCAweDUyLCAweDdhLCAweDUzLCAweDk1LCAKLSAgICAweDAwLCAweDJlLCAweDU0LCAweDZhLCAweDE3LCAweDg5LCAweDU0LCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAKLSAgICAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAweDE5LCAKLSAgICAweGRhLCAweDI5LCAweDIyLCAweGNhLCAweDE5LCAweGNhLCAweDU4LCAweDdlLCAweDI0LCAweDAwLCAweDAwLCAweDdmLCAweGUxLCAweGRhLCAweDU4LCAweDdlLCAKLSAgICAweDU0LCAweDAyLCAweDM4LCAweDljLCAweGI1LCAweGE0LCAweDdlLCAweDUwLCAweDIwLCAweDVlLCAweDIwLCAweDA3LCAweDJjLCAweDUyLCAweDdhLCAweDUzLCAKLSAgICAweDk1LCAweDAwLCAweDJlLCAweDU0LCAweDZhLCAweDg4LCAweDg5LCAweDU0LCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAKLSAgICAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweGEzLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDk1LCAweDAwLCAweGRhLCAKLSAgICAweDE5LCAweDIyLCAweDAyLCAweDZiLCAweGE4LCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAweGNhLCAweDNiLCAweGNhLCAweDRiLCAweGNhLCAKLSAgICAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDJjLCAKLSAgICAweDdmLCAweGI0LCAweDAwLCAweDAyLCAweDgwLCAweDFjLCAweGI0LCAweDAxLCAweDE5LCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDU0LCAweDE0LCAweDY4LCAKLSAgICAweDA1LCAweDEyLCAweDZiLCAweDZjLCAweDgwLCAweDIzLCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDMwLCAweGU1LCAweDFjLCAweDEyLCAweDZjLCAweGFhLCAKLSAgICAweDgwLCAweDE3LCAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDMwLCAweGU1LCAweDA1LCAweDEyLCAweDZjLCAweGFhLCAweDgwLCAweDBiLCAweDdlLCAweGIzLCAKLSAgICAweDkxLCAweDE0LCAweDU0LCAweDE0LCAweDY4LCAweDAzLCAweDEyLCAweDZiLCAweDZjLCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAKLSAgICAweDViLCAweGRhLCAweDRiLCAweGRhLCAweDNiLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweDIwLCAweGU0LCAweDE5LCAweDc1LCAKLSAgICAweDJmLCAweDBhLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDdlLCAweDcwLCAweDBhLCAweDdlLCAweGIzLCAweDJjLCAweDdmLCAweGI0LCAKLSAgICAweDAxLCAweDFmLCAweDAyLCAweDZjLCAweDA0LCAweDAyLCAweDcxLCAweGYyLCAweDc1LCAweDJmLCAweDBiLCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDE0LCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDdlLCAweGIzLCAweDJjLCAweDdmLCAweGI0LCAweDAyLCAweDBjLCAweDEyLCAweDZiLCAweGI0LCAweDAyLCAweDZiLCAKLSAgICAweGE4LCAweDc0LCAweDA0LCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDIyLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDJjLCAweDdmLCAweDdhLCAKLSAgICAweDAzLCAweDJjLCAweDgwLCAweDIyLCAweDdlLCAweGIzLCAweDJjLCAweDc2LCAweDU0LCAweDYwLCAweDYwLCAweDA1LCAweGI0LCAweDQwLCAweDFlLCAweDgwLCAKLSAgICAweDFjLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDA1LCAweDE1LCAweDc1LCAweDJmLCAweDcxLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAKLSAgICAweDJjLCAweDc5LCAweDdlLCAweGEwLCAweDAxLCAweDdhLCAweGEzLCAweDkxLCAweDA2LCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDIyLCAweDc0LCAweDAwLCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDEwLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDIyLCAweGJlLCAweDU3LCAweDJjLCAweDdjLCAweDI4LCAKLSAgICAweDA0LCAweDdlLCAweDU3LCAweDJjLCAweDdjLCAweDdhLCAweDBmLCAweDJjLCAweDgyLCAweDdhLCAweDU3LCAweDJjLCAweDg2LCAweDc0LCAweDEwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDEyLCAweDIyLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDkxLCAweDFhLCAweDcwLCAweDUzLCAKLSAgICAweDdlLCAweGIzLCAweDkxLCAweDE0LCAweDIwLCAweGU0LCAweDRjLCAweDdlLCAweGVmLCAweDJjLCAweDgyLCAweDdlLCAweGY3LCAweDJjLCAweDg2LCAweDdlLCAKLSAgICAweDA3LCAweDJjLCAweDg2LCAweDRkLCAweDAwLCAweDY4LCAweDIxLCAweDdlLCAweDAwLCAweDAwLCAweGUwLCAweDdhLCAweGIzLCAweDkxLCAweDE3LCAweGEzLCAKLSAgICAweGE1LCAweDA4LCAweDFiLCAweGY0LCAweDY4LCAweDA2LCAweGE1LCAweGI4LCAweDEwLCAweGYwLCAweDgwLCAweDE5LCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAKLSAgICAweGIzLCAweDJjLCAweDdmLCAweGJlLCAweDAwLCAweDEwLCAweDY4LCAweDBkLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDdmLCAweDc0LCAKLSAgICAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDFlLCAweDdhLCAweGVmLCAweDJjLCAweDgyLCAweDdhLCAweGY3LCAweDJjLCAweDg2LCAweDc1LCAweDJmLCAweDA2LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDA0LCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDIyLCAweGNhLCAweDBiLCAweGNhLCAweDFiLCAweGNhLCAweDJiLCAKLSAgICAweGNhLCAweDNiLCAweGNhLCAweDRiLCAweGNhLCAweDViLCAweGNhLCAweDZiLCAweGNhLCAweDdiLCAweGNhLCAweGViLCAweDc1LCAweDJmLCAweDAzLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDdlLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDAxLCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDEyLCAweDZkLCAweDE5LCAweGRhLCAweGViLCAweGRhLCAweDdiLCAweGRhLCAweDZiLCAweGRhLCAweDViLCAweGRhLCAKLSAgICAweDRiLCAweGRhLCAweDNiLCAweGRhLCAweDJiLCAweGRhLCAweDFiLCAweGRhLCAweDBiLCAweDIyLCAweDc1LCAweDJmLCAweDAzLCAweDEyLCAweDczLCAweDM1LCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDgwLCAweGI0LCAweDAyLCAweDExLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDgwLCAweDdhLCAweGIzLCAweDJjLCAKLSAgICAweDdmLCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDIyLCAweGI0LCAweDAxLCAweDQ2LCAweDdlLCAweGIzLCAweDkxLCAweDA0LCAweDIwLCAKLSAgICAweGU2LCAweDQyLCAweDdlLCAweDIzLCAweDkxLCAweDFhLCAweDdjLCAweDMyLCAweDdlLCAweDEzLCAweDJjLCAweDgxLCAweDJjLCAweDIxLCAweDdhLCAweDIzLCAKLSAgICAweDJjLCAweDgxLCAweDdlLCAweDAwLCAweDAwLCAweDJlLCAweDA0LCAweDJjLCAweDg4LCAweDdlLCAweGIzLCAweDkxLCAweDE2LCAweDdhLCAweDA5LCAweGIwLCAKLSAgICAweDBiLCAweDA0LCAweGE1LCAweGRiLCAweGY0LCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAweDc1LCAweDJmLCAweDcwLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDgxLCAweDdlLCAweGEzLCAweDJjLCAweDdkLCAweGJjLCAweGFiLCAweDc4LCAweDAzLCAweDEyLCAweDZkLCAweGI5LCAKLSAgICAweDIyLCAweDAyLCAweDcxLCAweGYyLCAweGRhLCAweDU5LCAweDAyLCAweDZjLCAweDdjLCAweDc0LCAweGUwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAKLSAgICAweDAzLCAweDkxLCAweDEwLCAweDdlLCAweDEzLCAweDkxLCAweDExLCAweDdlLCAweDMzLCAweDkxLCAweDEyLCAweDdlLCAweDIzLCAweDkxLCAweDEzLCAweDdlLCAKLSAgICAweDUzLCAweDkxLCAweDE0LCAweDdlLCAweDQzLCAweDkxLCAweDE1LCAweDdlLCAweDczLCAweDkxLCAweDE2LCAweDdlLCAweDYzLCAweDkxLCAweDE3LCAweDdhLCAKLSAgICAweDBmLCAweDJjLCAweDc2LCAweDdhLCAweDFmLCAweDJjLCAweDdhLCAweDc1LCAweDJmLCAweDA0LCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDIxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAKLSAgICAweDMxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDQxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDUxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdhLCAweDYxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDcxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDAwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDA0LCAweDEyLCAweDZkLCAweDhkLCAweDIyLCAweDZkLCAweDAwLCAweDdlLCAKLSAgICAweDE0LCAweDAxLCAweDAyLCAweDdhLCAweDA3LCAweDJjLCAweDg2LCAweDdhLCAweDAzLCAweDJjLCAweDgxLCAweDdlLCAweGIzLCAweDJjLCAweDc2LCAweDIwLCAKLSAgICAweGU3LCAweDBmLCAweDdhLCAweDIzLCAweDJjLCAweDgwLCAweDdhLCAweDMzLCAweDJjLCAweDdmLCAweGJlLCAweDA3LCAweDJjLCAweDdjLCAweDY4LCAweDA5LCAKLSAgICAweDIyLCAweDdhLCAweDMzLCAweDJjLCAweDgwLCAweDdhLCAweDIzLCAweDJjLCAweDdmLCAweDdlLCAweGIzLCAweDJjLCAweDc2LCAweDU0LCAweGUzLCAweDIzLCAKLSAgICAweDIzLCAweDMwLCAweGUwLCAweDAyLCAweGQyLCAweGU1LCAweDMwLCAweGU3LCAweDAyLCAweGQyLCAweGU0LCAweDMwLCAweGU1LCAweDA2LCAweDMwLCAweGU0LCAKLSAgICAweDAzLCAweDAyLCAweDcxLCAweGYyLCAweDU0LCAweDNlLCAweGY1LCAweGYwLCAweDAzLCAweDU0LCAweDFmLCAweGMzLCAweDI1LCAweGYwLCAweDkwLCAweDZkLCAKLSAgICAweGU1LCAweDc1LCAweDg0LCAweGZmLCAweDczLCAweDAyLCAweDZmLCAweGEwLCAweDAyLCAweDZlLCAweDJkLCAweDAyLCAweDcwLCAweDM5LCAweDAyLCAweDcwLCAKLSAgICAweDU0LCAweDAyLCAweDZmLCAweDM3LCAweDAyLCAweDZlLCAweGMyLCAweDAyLCAweDcwLCAweDg1LCAweDAyLCAweDcwLCAweDg1LCAweDAyLCAweDcwLCAweDg4LCAKLSAgICAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAKLSAgICAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDg4LCAweDAyLCAweDcwLCAweDhlLCAweDAyLCAweDcxLCAweDYwLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAKLSAgICAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDAyLCAweDcwLCAweDhiLCAweDc0LCAweDAwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDA2LCAweDJhLCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDc4LCAweDYwLCAweDc5LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDJjLCAweDc5LCAweDdlLCAweDE3LCAweDJjLCAweDdhLCAKLSAgICAweDc1LCAweDJmLCAweDcyLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDEyLCAweDcyLCAweDM3LCAweDQwLCAweDU4LCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDA4LCAweDFjLCAweDc1LCAweDJmLCAweDc0LCAKLSAgICAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdhLCAKLSAgICAweDBiLCAweGIwLCAweDdlLCAweDU0LCAweDAwLCAweDAxLCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDAwLCAweDMzLCAweDc1LCAweDJmLCAweDc1LCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAweDBiLCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAKLSAgICAweDMwLCAweGUwLCAweDA3LCAweDc0LCAweDAyLCAweDdhLCAweDBiLCAweGIwLCAweDgwLCAweDA1LCAweDc0LCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDBiLCAKLSAgICAweDE0LCAweDc0LCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDdlLCAweDU0LCAweDAwLCAweDAyLCAweGRhLCAweDBiLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAKLSAgICAweDcxLCAweGYyLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDdlLCAweGIzLCAKLSAgICAweDJjLCAweDc3LCAweGI0LCAweDAwLCAweDVmLCAweDc1LCAweDJmLCAweDc2LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDdiLCAweDU0LCAKLSAgICAweDBmLCAweGI0LCAweDAyLCAweDA1LCAweDdlLCAweGIwLCAweDYwLCAweDgwLCAweDE3LCAweGI0LCAweDAwLCAweDA1LCAweDdlLCAweGIwLCAweDAwLCAweDgwLCAKLSAgICAweDBmLCAweDdlLCAweGIzLCAweDJjLCAweDdiLCAweDIwLCAweGU3LCAweDA1LCAweDdlLCAweGIwLCAweDQwLCAweDgwLCAweDAzLCAweDdlLCAweGIwLCAweDIwLCAKLSAgICAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGIzLCAweDkxLCAweDExLCAweDMwLCAweGUwLCAweDA0LCAweDc0LCAweDAxLCAweDgwLCAweDAyLCAweDc0LCAKLSAgICAweDAwLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAweDBiLCAweDdhLCAweDBiLCAweGIwLCAweDBiLCAweDE0LCAKLSAgICAweDc0LCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweDU0LCAweDAwLCAweDAyLCAweGRhLCAKLSAgICAweDBiLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAweDcxLCAweGYyLCAweDdlLCAweGIzLCAweDJjLCAweDdiLCAweDU0LCAweDBmLCAweGI0LCAweDAyLCAweDA1LCAKLSAgICAweDdlLCAweGIwLCAweDYwLCAweDgwLCAweDE3LCAweGI0LCAweDAwLCAweDA1LCAweDdlLCAweGIwLCAweDAwLCAweDgwLCAweDBmLCAweDdlLCAweGIzLCAweDJjLCAKLSAgICAweDdiLCAweDIwLCAweGU3LCAweDA1LCAweDdlLCAweGIwLCAweDQwLCAweDgwLCAweDAzLCAweDdlLCAweGIwLCAweDIwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweGI0LCAweDAwLCAweDI2LCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDAxLCAweDBlLCAweDc1LCAweDJmLCAKLSAgICAweDc3LCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDgwLCAweDFiLCAweGI0LCAweDAzLCAweDBlLCAweDc1LCAKLSAgICAweDJmLCAweDc4LCAweDEyLCAweDczLCAweDM1LCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDExLCAweDgwLCAweDBhLCAweDc0LCAweDAwLCAweDdhLCAKLSAgICAweGIzLCAweDkxLCAweDAwLCAweDEyLCAweDcxLCAweGYyLCAweDIyLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDAyLCAweDZiLCAweGRlLCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDA5LCAweDFmLCAweDc1LCAweDJmLCAweDc5LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAKLSAgICAweDc5LCAweGJlLCAweGIzLCAweDNmLCAweGYxLCAweDY4LCAweDBkLCAweGNhLCAweGI4LCAweDEyLCAweDQzLCAweDc5LCAweGRhLCAweGI4LCAweDUwLCAweDc2LCAKLSAgICAweDdhLCAweGIzLCAweDNmLCAweGYxLCAweDgwLCAweDZkLCAweGI0LCAweDA1LCAweDA4LCAweDc1LCAweDJmLCAweDdhLCAweDEyLCAweDczLCAweDM1LCAweDgwLCAKLSAgICAweDYyLCAweGI0LCAweDAzLCAweDE5LCAweDc1LCAweDJmLCAweDdiLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweGI0LCAweDAxLCAKLSAgICAweDU1LCAweDdlLCAweGIzLCAweDNmLCAweGYyLCAweDQ0LCAweDAxLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDQ2LCAweGI0LCAweDAxLCAweDE5LCAKLSAgICAweDc1LCAweDJmLCAweDdjLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweGI0LCAweDAxLCAweDM5LCAweDdlLCAweGIzLCAweDNmLCAKLSAgICAweGYyLCAweDU0LCAweGZlLCAweDdhLCAweGIzLCAweDNmLCAweGYyLCAweDgwLCAweDJhLCAweGI0LCAweDA3LCAweDJhLCAweDdlLCAweGIzLCAweDJjLCAweDc4LCAKLSAgICAweDYwLCAweDI0LCAweDdjLCAweDBiLCAweDdlLCAweDEzLCAweDJjLCAweDc5LCAweDdlLCAweDE3LCAweDJjLCAweDdhLCAweDc1LCAweDJmLCAweDczLCAweDEyLCAKLSAgICAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDcyLCAKLSAgICAweDcxLCAweDQwLCAweDAzLCAweDAyLCAweDZiLCAweGRlLCAweDAyLCAweDcxLCAweGYyLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDBiLCAweGY2LCAKLSAgICAweDc1LCAweDJmLCAweDdkLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAweDc5LCAweDdlLCAweGEzLCAweDJjLCAweDdiLCAweDRjLCAweGFiLCAKLSAgICAweDc4LCAweGU0LCAweDgwLCAweGRmLCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAKLSAgICAweDdlLCAweGIzLCAweDJjLCAweDc3LCAweGI0LCAweDBhLCAweGNmLCAweDc1LCAweDJmLCAweDdlLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIzLCAweDJjLCAKLSAgICAweDc5LCAweDcwLCAweGMzLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdhLCAweDBiLCAweGIwLCAweDdlLCAweDU0LCAKLSAgICAweDAwLCAweDAxLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAweDcxLCAweGYyLCAweDAyLCAweDcxLCAweGYyLCAweDAyLCAweDcxLCAweGYyLCAweDdlLCAweGIzLCAKLSAgICAweDJjLCAweDc3LCAweGI0LCAweDA0LCAweDIwLCAweDc1LCAweDJmLCAweGMzLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAKLSAgICAweDE3LCAweDJjLCAweDc4LCAweDdlLCAweDE4LCAweDJjLCAweDg4LCAweDdhLCAweDFjLCAweDAwLCAweDAwLCAweDdlLCAweDQ3LCAweDJjLCAweDdjLCAweDEyLCAKLSAgICAweDczLCAweDQxLCAweDAyLCAweDcxLCAweDVhLCAweGI0LCAweDA2LCAweDQyLCAweDc1LCAweDJmLCAweGMxLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDU4LCAKLSAgICAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdkLCAweGNhLCAweDdlLCAweGQ3LCAweDJjLCAweDc4LCAweDdlLCAweDc4LCAweDJjLCAweDg4LCAKLSAgICAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDJjLCAweDdjLCAweDc1LCAweDJmLCAweGMxLCAweDEyLCAweDczLCAweDM1LCAweGMwLCAweGE4LCAKLSAgICAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweDEyLCAweDczLCAweDdhLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAKLSAgICAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweDQwLCAweDY1LCAweDgwLCAweDYwLCAweGI0LCAweDAwLCAweDI0LCAweGMyLCAweGFmLCAweDdlLCAKLSAgICAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDk0LCAweDAwLCAweDdhLCAweGIzLCAweDJjLCAweDM1LCAweDEyLCAweDZiLCAweGRlLCAweGU0LCAweDhkLCAweGVmLCAKLSAgICAweDhkLCAweGVmLCAweDhkLCAweGVmLCAweGQ1LCAweGUwLCAweGY3LCAweGMwLCAweGQxLCAweGNhLCAweDAyLCAweGZmLCAweGNhLCAweDA2LCAweDAwLCAweDAwLCAKLSAgICAweDMyLCAweGI0LCAweDA5LCAweDIwLCAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdlLCAweDIzLCAweDkxLCAweDA3LCAweDdlLCAweDU3LCAKLSAgICAweDJjLCAweDc4LCAweDRkLCAweDU1LCAweDY4LCAweDA1LCAweDRlLCAweDIwLCAweDAyLCAweDgwLCAweDAzLCAweDVlLCAweDIwLCAweGZkLCAweDdhLCAweDIzLCAKLSAgICAweDkxLCAweDA3LCAweDgwLCAweDE2LCAweGI0LCAweDA3LCAweDE2LCAweGMyLCAweGFmLCAweDdlLCAweDA3LCAweDJjLCAweDdhLCAweDdlLCAweDE3LCAweDJjLCAKLSAgICAweDc4LCAweGMwLCAweGQxLCAweGNhLCAweDE4LCAweGNhLCAweDM4LCAweGNhLCAweDI4LCAweDMyLCAweDAyLCAweDZiLCAweGRlLCAweDAyLCAweDcxLCAweGYyLCAKLSAgICAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDYwLCAweDdhLCAweGIzLCAweDkxLCAweDFjLCAweDdlLCAweGIzLCAweDJjLCAweDc3LCAKLSAgICAweGI0LCAweDAzLCAweDE1LCAweDc1LCAweDJmLCAweGMyLCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweDA0LCAweDAwLCAweDAxLCAweDdlLCAweDE3LCAweDJjLCAKLSAgICAweDc4LCAweDdlLCAweDU3LCAweDJjLCAweDdjLCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDA1LCAweDQxLCAweDc1LCAweDJmLCAweGMwLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAKLSAgICAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDI0LCAweDAwLCAweGZlLCAweDdlLCAweDM3LCAweDJjLCAweDc4LCAweDdlLCAweDQ3LCAweDJjLCAweDdjLCAKLSAgICAweDEyLCAweDczLCAweDQxLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweDdlLCAweDA4LCAweDJjLCAKLSAgICAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweDdlLCAweDU3LCAweDJjLCAweDdjLCAweDAyLCAweDZiLCAweGViLCAweGI0LCAweDAxLCAweDIwLCAweDdlLCAKLSAgICAweDAwLCAweDAwLCAweDdlLCAweDEwLCAweDAxLCAweDc1LCAweDJmLCAweDcyLCAweDEyLCAweDczLCAweDM1LCAweDdhLCAweDAxLCAweDJmLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDdhLCAweDExLCAweDJmLCAweDEyLCAweDczLCAweDM1LCAweDEyLCAweDcyLCAweDM3LCAweDQwLCAweDAzLCAweDAyLCAweDZiLCAweGViLCAweDAyLCAKLSAgICAweDcxLCAweGYyLCAweDc1LCAweDJmLCAweDA3LCAweDEyLCAweDczLCAweDM1LCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDc0LCAKLSAgICAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDc0LCAweDQwLCAweDdhLCAweGIzLCAweDkxLCAweDE1LCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDExLCAweDdlLCAweGIzLCAweDkxLCAweDE1LCAweDU0LCAweDYwLCAweGJlLCAweGIwLCAweDQwLCAweDY4LCAweDA4LCAweDc0LCAweDIwLCAweDdhLCAweGIzLCAKLSAgICAweDkxLCAweDE1LCAweDgwLCAweGVkLCAweDc0LCAweDAxLCAweDdhLCAweGIzLCAweDkxLCAweDEyLCAweDc0LCAweDA0LCAweDdhLCAweGIzLCAweDkxLCAweDE0LCAKLSAgICAweDc0LCAweGZmLCAweDdhLCAweGIzLCAweDJjLCAweDdlLCAweDIyLCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAKLSAgICAweDk0LCAweDAwLCAweDEyLCAweDcyLCAweGJlLCAweDQwLCAweDFmLCAweDdlLCAweDA4LCAweDJjLCAweDg4LCAweDdhLCAweDBjLCAweDAwLCAweDAwLCAweGNhLCAKLSAgICAweDBiLCAweGNhLCAweDQ5LCAweDEyLCAweDczLCAweDQxLCAweGRhLCAweDU5LCAweGRhLCAweDBiLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAKLSAgICAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweGMzLCAweDIyLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAKLSAgICAweDIyLCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweDdlLCAweDQwLCAweDAxLCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweDEyLCAweDcyLCAweGJlLCAweDQwLCAKLSAgICAweDMxLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweGZlLCAweDdmLCAweDYxLCAweDdlLCAweDc4LCAweDJjLCAweDg4LCAweDdhLCAKLSAgICAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDc3LCAweDJjLCAweDdjLCAweGJkLCAweDc0LCAweDc4LCAweDE3LCAweDc1LCAweDJmLCAweGMxLCAweDEyLCAweDczLCAKLSAgICAweDM1LCAweDEyLCAweDczLCAweDdhLCAweDQwLCAweDBjLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAKLSAgICAweGMzLCAweDIyLCAweDdlLCAweDQzLCAweDJjLCAweDM1LCAweDdhLCAweDQzLCAweDk0LCAweDAwLCAweGQwLCAweGE4LCAweGQzLCAweDIyLCAweDdlLCAweDI0LCAKLSAgICAweDAwLCAweGZlLCAweDdlLCAweDM0LCAweDdmLCAweGNhLCAweDBiLCAweDFhLCAweDUwLCAweGM1LCAweGYwLCAweDdkLCAweDYyLCAweDdkLCAweDc1LCAweDdkLCAKLSAgICAweDg3LCAweDdlLCAweDM0LCAweDdmLCAweGMyLCAweDdlLCAweDFiLCAweGIwLCAweDdlLCAweDM0LCAweDdmLCAweDAzLCAweGI0LCAweDAxLCAweDA0LCAweDdlLCAKLSAgICAweDM0LCAweDdmLCAweGNjLCAweDdlLCAweDFiLCAweGIwLCAweGJjLCAweDBiLCAweDUwLCAweDQ5LCAweDNlLCAweDAwLCAweDNlLCAweDAwLCAweDBhLCAweDUwLCAKLSAgICAweDJkLCAweDc1LCAweDBiLCAweDNhLCAweDMwLCAweDY5LCAweDUzLCAweDAwLCAweDAyLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJjLCAKLSAgICAweDFiLCAweDUwLCAweDMwLCAweDNlLCAweDEwLCAweDNlLCAweDEwLCAweDBhLCAweDUxLCAweDJkLCAweDM1LCAweDY5LCAweDQxLCAweDAwLCAweDAyLCAweDBiLCAKLSAgICAweDFhLCAweDMwLCAweGJkLCAweDM4LCAweDUwLCAweDAyLCAweDJkLCAweDM4LCAweGJlLCAweDQ0LCAweGZmLCAweGZmLCAweDc4LCAweDA1LCAweDdlLCAweDFiLCAKLSAgICAweDkwLCAweDBhLCAweDQ5LCAweDRkLCAweDQ0LCAweDY4LCAweDBjLCAweGJlLCAweDQ0LCAweDAwLCAweGZmLCAweDI4LCAweDA0LCAweDdlLCAweDQ0LCAweDAwLCAKLSAgICAweGZmLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAKLQotLy8gU2VnbWVudCAjMTYsIFN0YXJ0IEFkZHJlc3MgMDBmZjdmYzYsIExlbmd0aCA0Ci0weGZmLDB4MDAsMHhjNiwweDdmLDB4MDQsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDAzLCAweDAwLCAKLQotLy8gU2VnbWVudCAjMTcsIFN0YXJ0IEFkZHJlc3MgMDBmZjczMzUsIExlbmd0aCAzMjgKLTB4ZmYsMHgwMCwweDM1LDB4NzMsMHg0OCwweDAxLAotICAgIDB4Y2EsIDB4MDgsIDB4N2UsIDB4MDEsIDB4MmYsIDB4N2EsIDB4MDMsIDB4M2YsIDB4ZjAsIDB4ZGEsIDB4MDgsIDB4MjIsIDB4N2UsIDB4MWIsIDB4YzAsIDB4N2EsIAotICAgIDB4MGIsIDB4YzAsIDB4MGIsIDB4MTQsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4NzgsIDB4ZjIsIDB4MjIsIDB4N2YsIDB4NmYsIDB4N2YsIDB4ZjAsIDB4MWIsIAotICAgIDB4ZmMsIDB4N2MsIDB4NTQsIDB4N2QsIDB4MzIsIDB4ODAsIDB4MDgsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MWIsIDB4OWUsIAotICAgIDB4NDQsIDB4MDAsIDB4MTAsIDB4NTAsIDB4ZjIsIDB4MmUsIDB4NDQsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MDYsIDB4Y2EsIDB4NDgsIDB4MWIsIDB4NDQsIDB4NzgsIAotICAgIDB4ZmEsIDB4N2YsIDB4ZjYsIDB4ODksIDB4ZTQsIDB4Y2EsIDB4NmIsIDB4NWUsIDB4ZDQsIDB4MDAsIDB4M2YsIDB4NjgsIDB4MjAsIDB4N2UsIDB4ODQsIDB4MDAsIAotICAgIDB4NDAsIDB4OWQsIDB4OGQsIDB4ZGEsIDB4NmIsIDB4YmQsIDB4ODcsIDB4MzgsIDB4MTYsIDB4Y2EsIDB4NzksIDB4N2QsIDB4NzgsIDB4MTIsIDB4NzMsIDB4YTQsIAotICAgIDB4ZGEsIDB4NzksIDB4NDAsIDB4MDgsIDB4OWQsIDB4NzgsIDB4NjgsIDB4MDIsIDB4ODAsIDB4MDUsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZGEsIDB4NmIsIDB4N2UsIAotICAgIDB4YzAsIDB4MDMsIDB4N2UsIDB4ZDAsIDB4MDAsIDB4N2EsIDB4ZDMsIDB4OTAsIDB4MDAsIDB4NzQsIDB4YWEsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4NzQsIAotICAgIDB4NTUsIDB4MzksIDB4YjUsIDB4MmEsIDB4YWEsIDB4NzQsIDB4YTAsIDB4MzksIDB4YjUsIDB4NTUsIDB4NTUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4NDAsIDB4OWQsIAotICAgIDB4NzAsIDB4NTAsIDB4MDYsIDB4MmQsIDB4NzAsIDB4N2QsIDB4MDcsIDB4NmQsIDB4NzcsIDB4N2MsIDB4MzEsIDB4N2UsIDB4N2IsIDB4MDAsIDB4N2EsIDB4NmIsIAotICAgIDB4MDAsIDB4MGIsIDB4N2MsIDB4MGIsIDB4NmMsIDB4YTUsIDB4ZDksIDB4ZjMsIDB4N2YsIDB4MTYsIDB4MWIsIDB4MWMsIDB4N2UsIDB4NTQsIDB4MjcsIDB4MTAsIAotICAgIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIDB4MTAsIDB4NjgsIDB4MDYsIDB4MWIsIDB4NTQsIDB4NzgsIDB4ZjUsIDB4ODAsIDB4MmYsIDB4NmQsIDB4MDAsIDB4N2MsIAotICAgIDB4MjAsIDB4N2YsIDB4MTYsIDB4OWYsIDB4MTAsIDB4N2YsIDB4MjcsIDB4OWYsIDB4MjAsIDB4N2UsIDB4MmIsIDB4MDAsIDB4N2UsIDB4MWIsIDB4MTAsIDB4YmMsIAotICAgIDB4MDEsIDB4NzgsIDB4MTksIDB4MGIsIDB4MmMsIDB4MGIsIDB4MWMsIDB4YTUsIDB4ZGIsIDB4ZWYsIDB4N2MsIDB4YjYsIDB4MjAsIDB4ZTAsIDB4MDYsIDB4NmMsIAotICAgIDB4ZGMsIDB4N2EsIDB4ZDMsIDB4OTAsIDB4MDAsIDB4NGQsIDB4NzcsIDB4NzgsIDB4OTAsIDB4YzIsIDB4ZDcsIDB4MjIsIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4MDAsIAotICAgIDB4MDQsIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MDQsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDIsIDB4MDEsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDAsIAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MDAsIDB4MDgsIDB4MTAsIAotICAgIDB4MDIsIDB4MTAsIDB4MDQsIDB4MDIsIDB4MDgsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDgsIDB4N2UsIDB4MTgsIDB4N2YsIDB4YmQsIDB4N2EsIDB4MWMsIDB4MDAsIAotICAgIDB4ZmUsIDB4MGIsIDB4MWEsIDB4MDAsIDB4NWUsIDB4MTAsIDB4MWYsIDB4YmUsIDB4MTAsIDB4MTQsIDB4MzgsIDB4MWEsIDB4MGEsIDB4NTEsIDB4MjMsIDB4N2UsIAotICAgIDB4MTgsIDB4NzQsIDB4MjQsIDB4N2EsIDB4MWMsIDB4MDAsIDB4ZmYsIDB4MmQsIDB4MzUsIDB4MGIsIDB4MWEsIDB4NTAsIDB4NjAsIDB4MDgsIDB4YTUsIDB4YjgsIAotICAgIDB4MDIsIDB4MDMsIDB4NGUsIDB4YTAsIDB4MDgsIDB4MjIsIDB4ODAsIDB4ZmUsIAotfTsKLQotc3RhdGljIHN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyBJTUFHRV9WRVJTSU9OX05BTUUgPSB7Ci0JMiwgMCwgMyB9OwkJLy8gTWFqb3IsIE1pbm9yLCBCdWlsZAotCi0jdW5kZWYgSU1BR0VfVkVSU0lPTl9OQU1FCi0KLSN1bmRlZiBJTUFHRV9BUlJBWV9OQU1FCi0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19kb3duMy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0OTZiMDYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24zLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NDcgKzAsMCBAQAotLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotLy8qIEVkZ2Vwb3J0IEJpbmFyeSBJbWFnZSAoZm9yIFRJIGJhc2VkIHByb2R1Y3RzKQotLy8qIEdlbmVyYXRlZCBieSBUSUJpbjJDIHYyLjAwICh3YXRjaHBvcnQpCi0vLyogQ29weXJpZ2h0IChDKSAyMDAxIEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLQotc3RhdGljIGludCBJTUFHRV9TSVpFID0gMTI5Mzg7Ci0KLXN0cnVjdCBFREdFX0ZJUk1XQVJFX1ZFUlNJT05fSU5GTwotewotCXVuc2lnbmVkIGNoYXIgICBNYWpvclZlcnNpb247Ci0JdW5zaWduZWQgY2hhciAgIE1pbm9yVmVyc2lvbjsKLQl1bnNpZ25lZCBzaG9ydCAgQnVpbGROdW1iZXI7Ci19OwotCi1zdGF0aWMgc3RydWN0IEVER0VfRklSTVdBUkVfVkVSU0lPTl9JTkZPIElNQUdFX1ZFUlNJT05fTkFNRSA9Ci17Ci0JNCwgODAsIDAJCS8vIE1ham9yLCBNaW5vciwgQnVpbGQKLQotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgSU1BR0VfQVJSQVlfTkFNRVtdID0gCi17Ci0vLyAgc3RydWN0IEltYWdlSGRyCi0vLyAgewotLy8gICAgICBXT1JEICAgIExlbmd0aDsKLS8vICAgICAgQllURSAgICBDaGVja1N1bTsKLS8vICB9OwotMHg4NywgMHgzMiwKLTB4OWEsCi0KLTB4MDIsIDB4MjcsIDB4YmYsIDB4MDIsIDB4MjEsIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MWUsIDB4MDAsIDB4MDAsCi0weDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAxLCAweDFhLCAweDg1LCAweDNmLCAKLTB4OGMsIDB4ODUsIDB4NDAsIDB4OGEsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ZDAsIDB4YzAsIDB4ZjAsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4MDAsIAotMHhjMCwgMHgwMSwgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMywgMHhjMCwgMHgwNCwgMHhjMCwgMHgwNSwgMHhjMCwgMHgwNiwgMHhjMCwgMHgwNywgMHhlNSwgMHgzZSwgCi0weDI0LCAweDA4LCAweGY4LCAweGU2LCAweDYwLCAweDJiLCAweGU1LCAweDNlLCAweDI0LCAweDEwLCAweGY4LCAweGE2LCAweDgxLCAweGU1LCAweDNlLCAweDc1LCAKLTB4ZjAsIDB4MjEsIDB4YTQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZjgsIDB4ZjUsIDB4ODMsIDB4NzgsIDB4OGMsIDB4ZTUsIDB4ODEsIAotMHgwNCwgMHhjMywgMHg5OCwgMHhmOSwgMHg5NCwgMHgyMiwgMHg0MCwgMHgwMywgMHgwMiwgMHgxMSwgMHhkYywgMHhlNiwgMHhmMCwgMHgwOCwgMHhhMywgMHhkOSwKLTB4ZmEsIDB4NzQsIDB4MDgsIDB4MjUsIDB4M2UsIDB4ZjgsIDB4MDUsIDB4M2UsIDB4MDgsIDB4ZTYsIDB4NTQsIDB4ODAsIDB4NzAsIDB4MGMsIDB4ZTUsIDB4M2UsIAotMHhiNCwgMHgwNywgMHhmMywgMHg3OCwgMHgwOCwgMHg3NSwgMHgzZSwgMHgwMCwgMHg4MCwgMHhlZiwgMHhlNSwgMHgzZSwgMHgyNCwgMHgxMCwgMHhmOCwgMHg4NiwgCi0weDgxLCAweGU1LCAweDNlLCAweDc1LCAweGYwLCAweDIxLCAweGE0LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY4LCAweGY1LCAweDgzLCAKLTB4NzgsIDB4OGMsIDB4ZTUsIDB4ODEsIDB4MDQsIDB4YzMsIDB4OTgsIDB4ZjksIDB4ZTAsIDB4ZjYsIDB4MDgsIDB4YTMsIDB4ZDksIDB4ZmEsIDB4ZDAsIDB4MDcsIAotMHhkMCwgMHgwNiwgMHhkMCwgMHgwNSwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwMywgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHg4MywgCi0weGQwLCAweDgyLCAweGQwLCAweGYwLCAweGQwLCAweGQwLCAweGQwLCAweGUwLCAweDMyLCAweDMwLCAweDAxLCAweDRkLCAweDMwLCAweGI0LCAweDQ4LCAweDEwLCAKLTB4MDAsIDB4NDUsIDB4OTAsIDB4ZmYsIDB4MDgsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4ZjgsIDB4OTAsIDB4ZmYsIDB4NDgsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4ZjksIAotMHg5MCwgMHhmZiwgMHgxMCwgMHhlMCwgMHg1NCwgMHgyMCwgMHhmYSwgMHg5MCwgMHhmZiwgMHg1MCwgMHhlMCwgMHg1NCwgMHgyMCwgMHhmYiwgMHg3NCwgMHgwMCwgCi0weGY1LCAweDgyLCAweDc0LCAweGY4LCAweGY1LCAweDgzLCAweGUwLCAweGM4LCAweGYwLCAweDY4LCAweDYwLCAweDAyLCAweDdlLCAweDA0LCAweGEzLCAweGUwLCAKLTB4YzksIDB4ZjAsIDB4NjksIDB4NjAsIDB4MDIsIDB4N2UsIDB4MDQsIDB4YTMsIDB4ZTAsIDB4Y2EsIDB4ZjAsIDB4NmEsIDB4NjAsIDB4MDIsIDB4N2UsIDB4MDQsIAotMHhhMywgMHhlMCwgMHhjYiwgMHhmMCwgMHg2YiwgMHg2MCwgMHgwMiwgMHg3ZSwgMHgwNCwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHhkMCwgMHhjMCwgMHhmMCwgCi0weGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLCAweDAyLCAweGMwLCAweDAzLCAweGMwLCAweDA0LCAweGMwLCAweDA1LCAKLTB4YzAsIDB4MDYsIDB4YzAsIDB4MDcsIDB4NzQsIDB4MTUsIDB4ZjUsIDB4ODIsIDB4NzQsIDB4ZjksIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjMsIDB4NzQsCi0weDY2LCAweGY1LCAweDgyLCAweDc0LCAweGY5LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweGYwLCAweDcwLCAweDE2LCAweDc0LCAweGZmLCAweGYwLCAweDc0LAotMHgxYywgMHhmNSwgMHg4MiwgMHg3NCwgMHhmOSwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwNCwgMHgxNCwgMHhmMCwgMHg3MCwgMHgwNCwgMHhjMiwgMHg5MCwKLTB4ODAsIDB4ZmMsIDB4OTAsIDB4ZmYsIDB4OTMsIDB4NzQsIDB4ODEsIDB4ZjAsIDB4ZTUsIDB4ODEsIDB4OTQsIDB4ZmQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MTEsCi0weGRjLCAweDg1LCAweDQxLCAweDhkLCAweDg1LCAweDQyLCAweDhiLCAweDc0LCAweGIyLCAweGY1LCAweDgyLCAweDc0LCAweGZhLCAweGY1LCAweDgzLCAweGUwLAotMHhiNCwgMHgwMSwgMHgxYiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHg5MCwgMHhmZiwgMHg0YSwgMHhlMCwgMHgzMCwgMHhlNywgMHgyYywgMHg5MCwgMHhmZiwKLTB4NGUsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MjUsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MjAsIDB4YjQsIDB4MDIsCi0weDFkLCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweDkwLCAweGZmLCAweDdhLCAweGUwLCAweDMwLCAweGU3LCAweDA1LCAweDEyLCAweDI4LCAweDRlLCAweDgwLAotMHgwOSwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHg3NCwgMHgwMywgMHhmMCwgMHg4MCwgMHgwNCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhhMywgMHhlMCwKLTB4YjQsIDB4MDEsIDB4MWIsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4OTAsIDB4ZmYsIDB4NTIsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MmMsIDB4OTAsIDB4ZmYsCi0weDU2LCAweGUwLCAweDMwLCAweGU3LCAweDI1LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweDc0LCAweDAyLCAweGYwLCAweDgwLCAweDI1LCAweGI0LCAweDAyLAotMHgyMiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHg5MCwgMHhmZiwgMHg3YSwgMHhlMCwgMHgzMCwgMHhlNywgMHgwNSwgMHgxMiwgMHgyOCwgMHg0ZSwgMHg4MCwKLTB4MDksIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ODAsIDB4MDksIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ODAsIDB4MDMsCi0weDAyLCAweDAyLCAweDkwLCAweDc0LCAweDE2LCAweGY1LCAweDgyLCAweDc0LCAweGY5LCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweDA0LCAweGYxLCAweDIwLAotMHgwMiwgMHgwMywgMHgzMCwgMHgwMSwgMHhlYiwgMHg3NCwgMHgxOSwgMHhmNSwgMHg4MiwgMHg3NCwgMHhmOSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmYywKLTB4ZjAsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4NjQsIDB4MDQsIDB4NzAsIDB4MGYsIDB4ZWMsIDB4NzAsIDB4NjIsIDB4N2UsIDB4MDEsCi0weDEyLCAweDAwLCAweGM5LCAweDdjLCAweDBhLCAweDdkLCAweGZhLCAweDAyLCAweDAyLCAweDYxLCAweDEyLCAweDAwLCAweGM5LCAweGVlLCAweDY0LCAweDA0LAotMHg2MCwgMHgxZCwgMHhlYywgMHg3MCwgMHg0YiwgMHg3YywgMHgwYSwgMHhlZCwgMHgxNCwgMHhmZCwgMHg3MCwgMHgxNSwgMHhlZSwgMHg2NCwgMHgwMiwgMHg2MCwKLTB4MDcsIDB4N2UsIDB4MDIsIDB4N2QsIDB4MzIsIDB4MDIsIDB4MDIsIDB4NjEsIDB4N2UsIDB4MDEsIDB4N2QsIDB4ZmEsIDB4MDIsIDB4MDIsIDB4NjEsIDB4N2MsCi0weDBhLCAweDc0LCAweDE5LCAweGY1LCAweDgyLCAweDc0LCAweGY5LCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweGEzLCAweGVkLCAweGYwLCAweGEzLCAweGVlLAotMHhmMCwgMHgxNCwgMHg2MCwgMHgxOCwgMHgyMCwgMHhlMSwgMHgwZiwgMHgyMCwgMHgwMSwgMHgwNiwgMHhkMiwgMHhiMSwgMHhjMiwgMHhiMCwgMHg4MCwgMHgxMCwKLTB4YzIsIDB4YjEsIDB4ZDIsIDB4YjAsIDB4ODAsIDB4MGEsIDB4YzIsIDB4YjEsIDB4YzIsIDB4YjAsIDB4ODAsIDB4MDQsIDB4ZDIsIDB4YjAsIDB4ZDIsIDB4YjEsCi0weDc4LCAweDE5LCAweDc5LCAweDA5LCAweDdhLCAweDA3LCAweGU3LCAweDcwLCAweDA0LCAweGE2LCAweDAwLCAweDgwLCAweDBiLCAweGU2LCAweDYwLCAweDA4LAotMHgxNiwgMHhlNiwgMHg3MCwgMHgwNCwgMHhlNywgMHg0NCwgMHg4MCwgMHhmNywgMHgwOCwgMHgwOSwgMHhkYSwgMHhlYSwgMHhlNSwgMHgzZCwgMHg2MCwgMHgxMywKLTB4MTQsIDB4ZjUsIDB4M2QsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4M2UsIDB4MjQsIDB4MDgsIDB4ZjgsIDB4NzYsIDB4MDAsIDB4MTIsIDB4MTEsIDB4NTcsIDB4ZDIsCi0weDhjLCAweGQyLCAweDhkLCAweGQwLCAweDA3LCAweGQwLCAweDA2LCAweGQwLCAweDA1LCAweGQwLCAweDA0LCAweGQwLCAweDAzLCAweGQwLCAweDAyLCAweGQwLAotMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHhmMCwgMHhkMCwgMHhkMCwgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHhmZiwKLTB4MDQsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MDYsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4ZWMsIDB4ZmYsCi0weGVhLCAweGZlLCAweGVmLCAweGMzLCAweDk0LCAweDA4LCAweGVlLCAweDk0LCAweDAxLCAweDUwLCAweDAyLCAweDgwLCAweDA0LCAweDdlLCAweDAxLCAweDdmLAotMHgwOCwgMHg4ZSwgMHgzYiwgMHg4ZiwgMHgzYywgMHg5MCwgMHhmZiwgMHgwMiwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmYSwgMHhlYywgMHhmZiwgMHhlYSwKLTB4OTAsIDB4ZmEsIDB4YmQsIDB4ZjAsIDB4ZWYsIDB4YTMsIDB4ZjAsIDB4MTIsIDB4MWMsIDB4ZTAsIDB4ZTQsIDB4ZjUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YzMsCi0weDk0LCAweDAyLCAweDUwLCAweDBmLCAweDEyLCAweDFjLCAweGMxLCAweGU0LCAweDEyLCAweDFhLCAweGU4LCAweDA1LCAweDRkLCAweDA0LCAweDEyLCAweDFjLAotMHhiMiwgMHg4MCwgMHhlYSwgMHgxMiwgMHgxYywgMHhlMCwgMHg5MCwgMHhmZiwgMHgwMCwgMHhlMCwgMHhmZiwgMHg1NCwgMHg2MCwgMHgyNCwgMHhjMCwgMHg3MCwKLTB4MDMsIDB4MDIsIDB4MDgsIDB4ZjMsIDB4MjQsIDB4NDAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4ZmUsCi0weDU0LCAweDBmLCAweGY1LCAweDRkLCAweGVlLCAweDMwLCAweGU3LCAweDAzLCAweGQzLCAweDgwLCAweDAxLCAweGMzLCAweDkyLCAweDBhLCAweDkwLCAweGZmLAotMHgwMSwgMHhlMCwgMHgxMiwgMHgxYiwgMHhmYywgMHgwMywgMHg4NCwgMHgwMCwgMHgwNCwgMHg1NywgMHgwMSwgMHgwNSwgMHg2YSwgMHgwMywgMHgwNiwgMHgzMSwKLTB4MDUsIDB4MDYsIDB4NzMsIDB4MDYsIDB4MDcsIDB4ZDUsIDB4MDgsIDB4MDgsIDB4MWQsIDB4MDksIDB4MDgsIDB4NzksIDB4MGEsIDB4MDgsIDB4YjksIDB4MGIsCi0weDAwLCAweDAwLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJkLCAweGUwLAotMHg3MCwgMHgwMiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzYywgMHg2NCwgMHgwMiwgMHg0NSwgMHgzYiwgMHg2MCwKLTB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZWYsIDB4NTQsIDB4MWYsIDB4MTQsIDB4NjAsIDB4MmIsIDB4MTQsIDB4NjAsIDB4NDcsIDB4MjQsIDB4MDIsIDB4NjAsCi0weDAzLCAweDAyLCAweDBmLCAweDZlLCAweGVlLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDFjLCAweGMxLCAweDc0LCAweDAxLCAweDEyLAotMHgxYSwgMHhlOCwgMHg3OCwgMHg2NywgMHhlNiwgMHgzMCwgMHhlMCwgMHgwOCwgMHgxMiwgMHgxYywgMHhjMSwgMHg3NCwgMHgwMiwgMHgxMiwgMHgxYSwgMHhlOCwKLTB4N2YsIDB4MDIsIDB4MDIsIDB4MzIsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDksIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4NjAsIDB4MDMsCi0weDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGQzLCAweDk0LCAweDAxLCAweDQwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDdmLAotMHgwMiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwgMHgwZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhmZiwgMHg2MCwgMHgwNywKLTB4NjQsIDB4ODAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MGYsIDB4ZmEsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsCi0weDRkLCAweDcwLCAweDE5LCAweDMwLCAweDBhLCAweDBiLCAweDkwLCAweGZmLCAweDgwLCAweDEyLCAweDFjLCAweGJlLCAweDEyLCAweDFhLCAweGU4LCAweDgwLAotMHgyNCwgMHg5MCwgMHhmZiwgMHg4MiwgMHgxMiwgMHgxYywgMHhiZSwgMHgxMiwgMHgxYSwgMHhlOCwgMHg4MCwgMHgxOSwgMHgxNSwgMHg0ZCwgMHgzMCwgMHgwYSwKLTB4MGIsIDB4MTIsIDB4MWQsIDB4NTUsIDB4MTIsIDB4MWMsIDB4YmMsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4ODAsIDB4MDksIDB4MTIsIDB4MWQsIDB4NjMsIDB4MTIsCi0weDFjLCAweGJjLCAweDEyLCAweDFhLCAweGU4LCAweDEyLCAweDFjLCAweGMxLCAweDEyLCAweDFhLCAweGEyLCAweDYwLCAweDA1LCAweDc0LCAweDAxLCAweDEyLAotMHgxYSwgMHhlOCwgMHg3ZiwgMHgwMiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwKLTB4M2MsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWQsIDB4NzksIDB4MTQsIDB4NjAsIDB4MmQsIDB4MTQsIDB4NjAsCi0weDU5LCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJkLCAweGUwLCAweDcwLCAweDA0LCAweGEzLCAweGUwLAotMHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwKLTB4NzgsIDB4NjcsIDB4ZTYsIDB4NTQsIDB4ZmUsIDB4ZjYsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzIsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDYsCi0weDIwLCAweGUwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGUwLCAweDA5LCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDYwLAotMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlMSwgMHgwYywgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhkMywgMHg5NCwgMHgwMSwKLTB4NDAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzIsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4NzAsIDB4MDIsCi0weGEzLCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDBmLCAweGZhLCAweDQwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LAotMHgzNSwgMHgyMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlMCwgMHgwNywgMHhlNSwKLTB4NGQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4NGQsIDB4NzAsIDB4MGYsIDB4OTAsIDB4ZmYsIDB4ODIsIDB4ZTAsIDB4NTQsIDB4ZjcsCi0weGYwLCAweDkwLCAweGZmLCAweDgwLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweDIyLCAweGU1LCAweDRkLCAweDI0LCAweGZlLCAweDYwLCAweDIwLCAweDI0LAotMHhmYiwgMHg2MCwgMHgzNCwgMHgyNCwgMHgwNiwgMHg3MCwgMHgzNSwgMHgzMCwgMHgwYSwgMHgwYywgMHhhMiwgMHgwYSwgMHhlNCwgMHgzMywgMHhmZCwgMHg3ZiwKLTB4MDMsIDB4MTIsIDB4MmUsIDB4NzksIDB4ODAsIDB4MjYsIDB4ZTQsIDB4ZmQsIDB4N2YsIDB4MDMsIDB4MTIsIDB4MmUsIDB4NzksIDB4ODAsIDB4MWQsIDB4MzAsCi0weDBhLCAweDBjLCAweGEyLCAweDBhLCAweGU0LCAweDMzLCAweGZkLCAweDdmLCAweDA0LCAweDEyLCAweDJlLCAweDc5LCAweDgwLCAweDBlLCAweGU0LCAweGZkLAotMHg3ZiwgMHgwNCwgMHgxMiwgMHgyZSwgMHg3OSwgMHg4MCwgMHgwNSwgMHg3ZiwgMHg4NywgMHgxMiwgMHgzMSwgMHhlZiwgMHgxNSwgMHg0ZCwgMHgzMCwgMHgwYSwKLTB4MGIsIDB4MTIsIDB4MWQsIDB4NTUsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ODAsIDB4MDksIDB4MTIsIDB4MWQsIDB4NjMsIDB4ZjUsCi0weDgzLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMyLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLAotMHgwZiwgMHg2ZSwgMHhlNSwgMHgzYywgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHgxNCwgMHg2MCwKLTB4MmQsIDB4MTQsIDB4NjAsIDB4NTUsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4NzAsCi0weDA0LCAweGEzLCAweGUwLCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDYwLCAweDAzLAotMHgwMiwgMHgwZiwgMHg2ZSwgMHg3OCwgMHg2NywgMHhlNiwgMHg0NCwgMHgwMSwgMHhmNiwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwKLTB4MjAsIDB4ZTEsIDB4MDYsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTAsIDB4MDcsIDB4ZTUsIDB4NGQsCi0weDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGUxLCAweDBhLCAweGU1LCAweDRkLCAweGQzLCAweDk0LCAweDAxLCAweDQwLAotMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiZCwgMHhlMCwgMHg3MCwgMHgwMiwgMHhhMywKLTB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MzIsIDB4M2YsIDB4NDAsIDB4MDMsCi0weDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGUxLCAweDA2LCAweDIwLCAweGUwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDRkLAotMHg3MCwgMHgwOSwgMHgzMCwgMHgwYSwgMHgwMywgMHgwMiwgMHgxZSwgMHgxNCwgMHgwMiwgMHgxZCwgMHhkZiwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwgMHgwMywKLTB4MDIsIDB4MGYsIDB4NmUsIDB4MTUsIDB4NGQsIDB4MzAsIDB4MGEsIDB4MGIsIDB4MTIsIDB4MWQsIDB4NTUsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDgsCi0weGYwLCAweDgwLCAweDA5LCAweDEyLCAweDFkLCAweDYzLCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMyLAotMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzYywgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwKLTB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWQsIDB4NzksIDB4NjAsIDB4MDMsCi0weDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJlLCAweGUwLCAweDkwLAotMHhmZiwgMHhmZiwgMHhmMCwgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgzNSwgMHgwMSwgMHg4MCwgMHgwMywgMHg1MywgMHgzNSwgMHhmZSwgMHhlNCwgMHhmZiwKLTB4MDIsIDB4MzIsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4M2MsIDB4NDUsIDB4M2IsIDB4NzAsCi0weDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDFkLCAweDc5LCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJkLCAweGUwLAotMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhlYywgMHgyNCwgMHhmZSwgMHg2MCwgMHgzYSwgMHgxNCwgMHg2MCwgMHg3NSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywKLTB4MDIsIDB4MGYsIDB4NmUsIDB4ZWQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWMsIDB4ZTAsIDB4MTIsIDB4MWUsIDB4MGQsIDB4N2QsCi0weDAzLCAweDEyLCAweDBmLCAweGI1LCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDBmLCAweDcyLCAweDkwLCAweGZhLCAweGI2LCAweGUwLAotMHhmZCwgMHhhMywgMHgxMiwgMHgxZCwgMHgyYiwgMHgxMiwgMHgwZiwgMHhkMSwgMHg1MCwgMHgwMiwgMHg4MCwgMHgwNCwgMHhhZSwgMHgzYiwgMHhhZiwgMHgzYywKLTB4MDIsIDB4MTAsIDB4MDIsIDB4MTIsIDB4MWMsIDB4ZTAsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4MzAsIDB4ZTQsIDB4MGQsIDB4MTIsIDB4MWUsIDB4MGQsCi0weDdkLCAweDE0LCAweDEyLCAweDBmLCAweGI1LCAweDYwLCAweDEwLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDFlLCAweDBkLCAweDdkLCAweDA0LCAweDEyLAotMHgxMCwgMHgwOSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgwZiwgMHg3MiwgMHg5MCwgMHhmYSwgMHhiNiwgMHhlMCwgMHhmZCwgMHhhMywKLTB4MTIsIDB4MWQsIDB4MmIsIDB4MTIsIDB4MGYsIDB4ZDEsIDB4NTAsIDB4MDIsIDB4ODAsIDB4MDQsIDB4YWUsIDB4M2IsIDB4YWYsIDB4M2MsIDB4MDIsIDB4MTAsCi0weDAyLCAweDEyLCAweDFlLCAweDBkLCAweDdkLCAweDA1LCAweDEyLCAweDEwLCAweDA5LCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDdiLCAweDAxLAotMHg3YSwgMHhmYSwgMHg3OSwgMHhiNiwgMHgxMiwgMHgxZCwgMHgyOCwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHg5MCwgMHhmYSwgMHhiNywgMHhlNCwKLTB4NzUsIDB4ZjAsIDB4MDMsIDB4MTIsIDB4MWIsIDB4MWMsIDB4OTAsIDB4ZmEsIDB4YmUsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjUsIDB4ZjAsIDB4ZTQsIDB4ZjUsCi0weDRjLCAweDkwLCAweGZhLCAweGI1LCAweGUwLCAweGZmLCAweGU1LCAweDRjLCAweGMzLCAweDlmLCAweDUwLCAweDI0LCAweDEyLCAweDFkLCAweDIyLCAweDEyLAotMHgxMCwgMHgxNCwgMHhmZiwgMHhmZCwgMHg5MCwgMHhmYSwgMHhiNywgMHhlNCwgMHg4ZCwgMHhmMCwgMHgxMiwgMHgxYiwgMHgxYywgMHg5MCwgMHhmYSwgMHhiNiwKLTB4ZTAsIDB4YzMsIDB4OWYsIDB4ZjAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MDUsIDB4NGMsIDB4ODAsIDB4ZDEsCi0weDEyLCAweDFkLCAweDIyLCAweDEyLCAweDEwLCAweDE0LCAweDI0LCAweGZlLCAweGZmLCAweDkwLCAweGZhLCAweGI2LCAweGYwLCAweGZkLCAweGEzLCAweGU0LAotMHg3NSwgMHhmMCwgMHgwMiwgMHgxMiwgMHgxYiwgMHgxYywgMHg3YSwgMHhmOSwgMHg3OSwgMHg3MiwgMHg3YiwgMHgwMSwgMHg4YiwgMHgzNiwgMHg4YSwgMHgzNywKLTB4ODksIDB4MzgsIDB4ZTksIDB4MjQsIDB4MDIsIDB4ZjksIDB4ZTQsIDB4M2EsIDB4ZmEsIDB4MTIsIDB4MWQsIDB4MjgsIDB4MTIsIDB4MjYsIDB4OTgsIDB4OGYsCi0weDRjLCAweDA1LCAweDRjLCAweDA1LCAweDRjLCAweDEyLCAweDFjLCAweGMxLCAweGU1LCAweDRjLCAweDEyLCAweDFhLCAweGU4LCAweDEyLCAweDFjLCAweGMxLAotMHg5MCwgMHgwMCwgMHgwMSwgMHg3NCwgMHgwMywgMHgxMiwgMHgxYSwgMHhmYSwgMHhhZiwgMHg0YywgMHg3ZSwgMHgwMCwgMHhjMywgMHhlZiwgMHg5NSwgMHgzYywKLTB4ZWUsIDB4OTUsIDB4M2IsIDB4NTAsIDB4MDIsIDB4ODAsIDB4MDQsIDB4YWUsIDB4M2IsIDB4YWYsIDB4M2MsIDB4OGUsIDB4MzksIDB4OGYsIDB4M2EsIDB4MDIsCi0weDJjLCAweGQ4LCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDNjLCAweDY0LAotMHgwMSwgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwKLTB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWQsCi0weDc5LCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGUwLCAweDA2LCAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDBmLAotMHg2ZSwgMHg3NSwgMHgzNiwgMHgwMCwgMHg3NSwgMHgzNywgMHgwMCwgMHg3NSwgMHgzOCwgMHgzMiwgMHgwMiwgMHgwZiwgMHhmMSwgMHhlNSwgMHgzNSwgMHgzMCwKLTB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4M2MsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsCi0weGI5LCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGQzLCAweDkwLCAweGZhLCAweGJlLCAweGUwLCAweDk0LCAweDAxLCAweDkwLCAweGZhLAotMHhiZCwgMHhlMCwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwKLTB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDYsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmUsIDB4ZTAsCi0weGY1LCAweDMyLCAweGU1LCAweDMyLCAweDcwLCAweDA4LCAweDQzLCAweDM1LCAweDAxLCAweDUzLCAweDM1LCAweGZkLCAweDgwLCAweDA2LCAweDUzLCAweDM1LAotMHhmZSwgMHg0MywgMHgzNSwgMHgwMiwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwKLTB4NmUsIDB4ZTUsIDB4M2MsIDB4NjQsIDB4MDEsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsCi0weDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGJkLCAweGUwLCAweDcwLCAweDAyLCAweGEzLCAweGUwLCAweDYwLCAweDAzLCAweDAyLAotMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwKLTB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4N2YsIDB4MDEsIDB4MDIsIDB4MzIsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsCi0weDZlLCAweGU1LCAweDNjLCAweDQ1LCAweDNiLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGQzLCAweDkwLCAweGZhLCAweGJlLCAweGUwLCAweDk0LAotMHgwMCwgMHg5MCwgMHhmYSwgMHhiZCwgMHhlMCwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHg2NCwKLTB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTQsIDB4ZmYsCi0weDAyLCAweDMyLCAweDZlLCAweDkwLCAweGZmLCAweDAxLCAweDEyLCAweDFlLCAweDI0LCAweGVmLCAweDEyLCAweDFhLCAweGU4LCAweDkwLCAweGZhLCAweGI5LAotMHgxMiwgMHgxZSwgMHgyNCwgMHg5MCwgMHgwMCwgMHgwMSwgMHhlZiwgMHgxMiwgMHgxYSwgMHhmYSwgMHg5MCwgMHgwMCwgMHgwMiwgMHhlNCwgMHgxMiwgMHgxYSwKLTB4ZmEsIDB4NzQsIDB4MDMsIDB4MTIsIDB4MWMsIDB4YjIsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4ZmYsIDB4YTMsIDB4ZTAsIDB4ODUsIDB4MzgsIDB4ODIsCi0weDg1LCAweDM3LCAweDgzLCAweGNmLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDkwLCAweGZmLCAweDAxLCAweGUwLCAweDEyLCAweDFiLCAweGZjLCAweDA5LAotMHg3YiwgMHgwMiwgMHgwOSwgMHg5ZCwgMHgwNCwgMHgwOSwgMHhiZiwgMHgwNSwgMHgwOSwgMHhlYiwgMHgwNiwgMHgwYSwgMHgwOSwgMHgwNywgMHgwYSwgMHgyNywKLTB4MDgsIDB4MGEsIDB4NDUsIDB4MDksIDB4MGEsIDB4NjMsIDB4MGIsIDB4MGIsIDB4MTgsIDB4ODAsIDB4MGQsIDB4YjcsIDB4ODEsIDB4MGQsIDB4ZTgsIDB4ODIsCi0weDBiLCAweDVmLCAweDgzLCAweDBiLCAweGE4LCAweDg0LCAweDBiLCAweGM3LCAweDg1LCAweDBjLCAweDBjLCAweDg2LCAweDBjLCAweDU3LCAweDg3LCAweDBjLAotMHhlOCwgMHg4OCwgMHgwZCwgMHg3MywgMHg4OSwgMHgwYSwgMHg4MSwgMHg5MiwgMHgwYSwgMHg4MSwgMHg5MywgMHgwZCwgMHhhMCwgMHhiMCwgMHgwZSwgMHg5YiwKLTB4YzAsIDB4MGUsIDB4YzcsIDB4YzEsIDB4MGUsIDB4ZDgsIDB4YzIsIDB4MDAsIDB4MDAsIDB4MGYsIDB4NWQsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTcsIDB4MDUsCi0weDdmLCAweDA1LCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweDcxLCAweDYwLCAweDAzLCAweDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLAotMHgwMCwgMHg3ZiwgMHgwNywgMHgwMiwgMHgxMSwgMHg1ZSwgMHhlNCwgMHhmZCwgMHg3ZiwgMHgwNywgMHgwMiwgMHgyZiwgMHhiNCwgMHhlNSwgMHgzNSwgMHgyMCwKLTB4ZTcsIDB4MDUsIDB4N2YsIDB4MDUsIDB4MDIsIDB4MzEsIDB4YTksIDB4MTIsIDB4MWQsIDB4NzEsIDB4NjAsIDB4MDMsIDB4MDQsIDB4NzAsIDB4MDksIDB4ZWYsCi0weGZkLCAweDdjLCAweDAwLCAweDdmLCAweDBjLCAweDAyLCAweDExLCAweDVlLCAweGU0LCAweGZkLCAweDdmLCAweDA3LCAweDAyLCAweDJmLCAweGI0LCAweGU1LAotMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg3MSwgMHgxMiwgMHgxZSwgMHg0MiwgMHg1MCwgMHgwNiwgMHhlNSwgMHgzYywgMHg0NSwgMHgzYiwKLTB4NzAsIDB4MDUsIDB4N2YsIDB4MDIsIDB4MDIsIDB4MzEsIDB4YTksIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4MjQsIDB4ZmQsIDB4NTAsCi0weDAyLCAweDgwLCAweDAzLCAweDAyLCAweDMyLCAweDJjLCAweDdmLCAweDA3LCAweDAyLCAweDMxLCAweGE5LCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLAotMHgwMiwgMHgwZiwgMHg3MSwgMHgxMiwgMHgxZCwgMHg3MSwgMHg2MCwgMHgwMywgMHgwNCwgMHg3MCwgMHgwOSwgMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgMHg3ZiwKLTB4MDgsIDB4MDIsIDB4MTEsIDB4NWUsIDB4N2YsIDB4MDcsIDB4MDIsIDB4MzEsIDB4YTksIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsCi0weDcxLCAweDEyLCAweDFkLCAweDcxLCAweDYwLCAweDAzLCAweDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDA5LCAweDAyLAotMHgxMSwgMHg1ZSwgMHg3ZiwgMHgwNywgMHgwMiwgMHgzMSwgMHhhOSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg3MSwgMHgxMiwKLTB4MWQsIDB4NzEsIDB4NjAsIDB4MDMsIDB4MDQsIDB4NzAsIDB4MDksIDB4ZWYsIDB4ZmQsIDB4N2MsIDB4MDAsIDB4N2YsIDB4MGEsIDB4MDIsIDB4MTEsIDB4NWUsCi0weDdmLCAweDA3LCAweDAyLCAweDMxLCAweGE5LCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDcxLCAweDEyLCAweDFkLCAweDcxLAotMHg2MCwgMHgwMywgMHgwNCwgMHg3MCwgMHgwOSwgMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgMHg3ZiwgMHgwYiwgMHgwMiwgMHgxMSwgMHg1ZSwgMHg3ZiwgMHgwNywKLTB4MDIsIDB4MzEsIDB4YTksIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NzEsIDB4MTIsIDB4MWQsIDB4NzEsIDB4NjAsIDB4MDMsCi0weDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDBlLCAweDAyLCAweDExLCAweDVlLCAweDdmLCAweDA3LCAweDAyLCAweDMxLAotMHhhOSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHg1NiwgMHgxMiwgMHgxZCwgMHg3OSwgMHg3MCwgMHg0YSwgMHg5MCwgMHhmZiwgMHgwMiwgMHhlMCwgMHhmNSwKLTB4NGMsIDB4ZTUsIDB4NGMsIDB4YjQsIDB4ODIsIDB4MDUsIDB4NzUsIDB4NGMsIDB4NjEsIDB4ODAsIDB4MTIsIDB4ZTUsIDB4NGMsIDB4YjQsIDB4ODMsIDB4MDUsCi0weDc1LCAweDRjLCAweDYyLCAweDgwLCAweDA4LCAweGU1LCAweDRjLCAweGM0LCAweDU0LCAweGYwLCAweDA0LCAweGY1LCAweDRjLCAweDEyLCAweDFjLCAweDIyLAotMHgxMiwgMHgxZSwgMHgzYiwgMHgxMiwgMHgyNSwgMHhmYSwgMHgxMiwgMHgxZCwgMHg4OSwgMHgxMiwgMHgxYSwgMHhiYiwgMHg2MCwgMHgwNSwgMHgxMiwgMHgzMiwKLTB4N2EsIDB4ODAsIDB4MDYsIDB4ODUsIDB4MzMsIDB4MzksIDB4ODUsIDB4MzQsIDB4M2EsIDB4NzUsIDB4MzYsIDB4MDEsIDB4NzUsIDB4MzcsIDB4ZjksIDB4NzUsCi0weDM4LCAweDc1LCAweDAyLCAweDJjLCAweGQ4LCAweGU0LCAweGZkLCAweDdmLCAweDA1LCAweDAyLCAweDJmLCAweGI0LCAweDEyLCAweDFkLCAweDc5LCAweDYwLAotMHgwNSwgMHg3ZiwgMHgwNSwgMHgwMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgxZSwgMHg0MiwgMHg0MCwgMHgwNSwgMHg3ZiwgMHgwMywgMHgwMiwgMHgzMSwgMHhhOSwKLTB4OTAsIDB4ZmYsIDB4MDIsIDB4ZTAsIDB4ZjUsIDB4NGMsIDB4ZTUsIDB4NGMsIDB4YjQsIDB4ODIsIDB4MDUsIDB4NzUsIDB4NGMsIDB4NjEsIDB4ODAsIDB4MTIsCi0weGU1LCAweDRjLCAweGI0LCAweDgzLCAweDA1LCAweDc1LCAweDRjLCAweDYyLCAweDgwLCAweDA4LCAweGU1LCAweDRjLCAweGM0LCAweDU0LCAweGYwLCAweDA0LAotMHhmNSwgMHg0YywgMHgxMiwgMHgxYywgMHgyMiwgMHgwMiwgMHgzMiwgMHgyYywgMHgxMiwgMHgxZSwgMHg0YywgMHgxMiwgMHgyYSwgMHhjNywgMHgxMiwgMHgxZCwKLTB4MzMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZjAsIDB4NzgsIDB4NjgsIDB4MTIsCi0weDFiLCAweGQ4LCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweDFhLCAweGJiLCAweDMwLCAweGU3LCAweGYyLCAweDkwLCAweDAwLCAweDAyLCAweGU0LCAweDEyLAotMHgxYSwgMHhmYSwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmZiwgMHhmMCwgMHg3OCwgMHg3YywgMHhlNiwgMHhmYywgMHgwOCwgMHhlNiwKLTB4OGMsIDB4ODMsIDB4MTIsIDB4MWQsIDB4M2IsIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MzIsIDB4ODQsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzEsIDB4YTksIDB4OTAsCi0weGZhLCAweGI5LCAweGUwLCAweDY0LCAweDAxLCAweDcwLCAweDFmLCAweDkwLCAweGZhLCAweGJkLCAweGUwLCAweGZmLCAweDdlLCAweDAwLCAweDcwLCAweDA2LAotMHhhMywgMHhlMCwgMHhmNSwgMHg5MCwgMHg4MCwgMHgyZCwgMHhjMiwgMHhhZiwgMHhlZiwgMHhmNCwgMHg1MiwgMHg5MCwgMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwKLTB4NDIsIDB4OTAsIDB4ZDIsIDB4YWYsIDB4ODAsIDB4MWQsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4ZmYsIDB4N2UsIDB4MDAsIDB4NzAsIDB4MDYsIDB4YTMsCi0weGUwLCAweGY1LCAweGIwLCAweDgwLCAweDBlLCAweGMyLCAweGFmLCAweGVmLCAweGY0LCAweDUyLCAweGIwLCAweDkwLCAweGZhLCAweGJlLCAweGUwLCAweDQyLAotMHhiMCwgMHhkMiwgMHhhZiwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgxYywgMHhlMCwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhiNCwKLTB4MDEsIDB4MGEsIDB4MTIsIDB4MWMsIDB4YzEsIDB4ZTUsIDB4OTAsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4ODAsIDB4MDgsIDB4MTIsIDB4MWMsIDB4YzEsIDB4ZTUsCi0weGIwLCAweDEyLCAweDFhLCAweGU4LCAweDAyLCAweDBmLCAweGYxLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGZmLCAweDI0LCAweDEzLCAweDEyLCAweDFjLAotMHhmMSwgMHgyMCwgMHhlMSwgMHgzMywgMHgxMiwgMHgxZCwgMHg4MCwgMHhlZiwgMHgyNCwgMHhmYywgMHg2MCwgMHgxOCwgMHgwNCwgMHg3MCwgMHgyOCwgMHg5MCwKLTB4ZmEsIDB4YmEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ODAsIDB4MTksIDB4MTIsIDB4MWUsCi0weDU2LCAweGYwLCAweDgwLCAweDEzLCAweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweGZmLCAweGI0LCAweGUwLCAweDQ0LCAweDEwLAotMHhmMCwgMHg4MCwgMHgwNCwgMHgxMiwgMHgxZSwgMHg1ZCwgMHhmMCwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhhOSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwKLTB4ZmYsIDB4MjQsIDB4MTMsIDB4MTIsIDB4MWMsIDB4ZjEsIDB4MjAsIDB4ZTEsIDB4MzksIDB4MTIsIDB4MWQsIDB4ODAsIDB4ZWYsIDB4MjQsIDB4ZmMsIDB4NjAsCi0weDFiLCAweDA0LCAweDcwLCAweDJlLCAweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDQ0LCAweDIwLAotMHhmMCwgMHg4MCwgMHgxZiwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHg4MCwgMHgxNiwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwKLTB4NjAsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NTQsCi0weGRmLCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweDgwLCAweDEyLCAweDFkLCAweDcxLCAweDYwLCAweDRkLCAweDA0LAotMHg2MCwgMHgwMywgMHgwMiwgMHgwYywgMHhlMywgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg2MCwgMHgwZiwgMHg5MCwgMHhmZiwgMHhhNCwgMHgxMiwgMHgxYywKLTB4ZWEsIDB4MzAsIDB4ZTEsIDB4NmYsIDB4MTIsIDB4MWUsIDB4MmMsIDB4MDIsIDB4MGMsIDB4ZTMsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NTQsIDB4ZmIsCi0weDEyLCAweDFjLCAweGVkLCAweGZlLCAweDMwLCAweGUxLCAweDVjLCAweDMwLCAweGUyLCAweDExLCAweDMwLCAweGI0LCAweDA1LCAweDEyLCAweDFlLCAweDJjLAotMHg4MCwgMHg1MSwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg4MCwgMHg0OCwgMHgzMCwgMHg5NSwgMHgwNSwgMHgxMiwgMHgxZSwKLTB4MmMsIDB4ODAsIDB4NDAsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ODAsIDB4MzcsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsCi0weDYwLCAweDEyLCAweDkwLCAweGZmLCAweGI0LCAweDEyLCAweDFjLCAweGVhLCAweDMwLCAweGUxLCAweDI4LCAweDkwLCAweGZmLCAweGI0LCAweGUwLCAweDQ0LAotMHgwMiwgMHhmMCwgMHg4MCwgMHgxZiwgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg1NCwgMHhmYiwgMHgxMiwgMHgxYywgMHhlZCwgMHgzMCwgMHhlMSwgMHgxMywKLTB4MzAsIDB4OTMsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsCi0weDU0LCAweGZkLCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweDgwLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDI0LAotMHhmYywgMHg2MCwgMHg0MCwgMHgwNCwgMHg3MCwgMHg3OCwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg2MCwgMHgxZCwgMHg5MCwgMHhmZiwgMHhhMiwgMHhlMCwKLTB4NDQsIDB4NDAsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4NjUsIDB4ZDIsIDB4MDMsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsCi0weDkwLCAweGZmLCAweGEzLCAweGVmLCAweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDU1LCAweDMwLCAweDAzLCAweDBlLCAweDkwLCAweGZmLCAweGEzLCAweGUwLAotMHg0NCwgMHg4MCwgMHhmMCwgMHhjMiwgMHgwMywgMHhhMywgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhhMiwgMHhlMCwgMHg1NCwgMHhiZiwKLTB4ZjAsIDB4ODAsIDB4M2IsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4NjAsIDB4MWQsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsCi0weGEzLCAweGUwLCAweGZmLCAweDMwLCAweGU3LCAweDI4LCAweGQyLCAweDA0LCAweGEzLCAweGUwLCAweDU0LCAweGRmLCAweGYwLCAweDkwLCAweGZmLCAweGIzLAotMHhlZiwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg4MCwgMHgxOCwgMHgzMCwgMHgwNCwgMHgwZSwgMHg5MCwgMHhmZiwgMHhiMywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwKLTB4YzIsIDB4MDQsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4ZTQsIDB4ZmYsCi0weDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFjLCAweGUwLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDI0LCAweGZjLCAweDYwLCAweDBmLCAweDA0LCAweDcwLAotMHgxNiwgMHg5MCwgMHhmZiwgMHhhNiwgMHhlMCwgMHgxMiwgMHgxYywgMHhjMSwgMHgxMiwgMHgxYSwgMHhlOCwgMHg4MCwgMHgwYSwgMHg5MCwgMHhmZiwgMHhiNiwKLTB4ZTAsIDB4MTIsIDB4MWMsIDB4YzEsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4NzUsIDB4MzksIDB4MDAsIDB4NzUsIDB4M2EsIDB4MDEsIDB4MDIsIDB4MmMsIDB4ZDgsCi0weDkwLCAweGY5LCAweDE1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweGY5LCAweDFjLCAweDc0LCAweDE5LCAweGYwLCAweDkwLCAweGY5LCAweDY2LCAweDc0LAotMHhmZiwgMHhmMCwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhhOSwgMHhlNCwgMHhmZiwgMHgxMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgxZCwgMHhlNywgMHg3ZiwKLTB4MDMsIDB4MTIsIDB4MTIsIDB4NjEsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4MzAsIDB4ZTQsIDB4MDgsIDB4OTAsIDB4ZmYsIDB4OTMsIDB4NzQsIDB4ODAsCi0weGYwLCAweDgwLCAweDEwLCAweDkwLCAweGZmLCAweGZjLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDdmLCAweGZmLCAweDdlLCAweDAwLCAweDEyLCAweDMwLAotMHhkMywgMHhjMiwgMHg5MCwgMHhjMiwgMHhhZiwgMHgwMCwgMHg4MCwgMHhmZCwgMHhlNCwgMHhmNSwgMHg0ZSwgMHhmNSwgMHg0ZiwgMHg5MCwgMHhmYSwgMHhiZiwKLTB4NzQsIDB4M2UsIDB4ZjAsIDB4YTMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YjcsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4ZTAsIDB4NTQsCi0weDNmLCAweGZmLCAweGMzLCAweDc0LCAweDQwLCAweDlmLCAweDkwLCAweGZhLCAweGJjLCAweGYwLCAweGQzLCAweDk0LCAweDAwLCAweGU0LCAweDk0LCAweDNlLAotMHg0MCwgMHgwOCwgMHg5MCwgMHhmYSwgMHhjMCwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiYywgMHhmMCwgMHgxMiwgMHgwZiwgMHg5OCwgMHhlNSwgMHgzMSwgMHg0NSwKLTB4MzAsIDB4NzAsIDB4NzMsIDB4MTIsIDB4MWMsIDB4ZmEsIDB4OTAsIDB4ZmEsIDB4YmYsIDB4MTIsIDB4MWUsIDB4MDYsIDB4NjAsIDB4MjcsIDB4ZDMsIDB4ZWYsCi0weDk0LCAweDQwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA4LCAweDkwLCAweGZhLCAweGJjLCAweDc0LCAweDQwLCAweGYwLCAweDgwLCAweDA4LCAweDkwLAotMHhmYSwgMHhjMCwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiYywgMHhmMCwgMHgxMiwgMHgwZiwgMHg5OCwgMHhlNSwgMHgzMSwgMHg0NSwgMHgzMCwgMHg3MCwgMHg0NiwKLTB4MTIsIDB4MWMsIDB4ZmEsIDB4ODAsIDB4ZDEsIDB4NzUsIDB4NGMsIDB4MDIsIDB4OTAsIDB4ZmEsIDB4YmYsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4MDQsIDB4ZjAsCi0weDkwLCAweGZhLCAweGI3LCAweGU0LCAweGYwLCAweGEzLCAweDc0LCAweDBmLCAweGYwLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDRjLCAweDkwLAotMHhmYSwgMHhjMCwgMHhlMCwgMHhmNSwgMHg0YSwgMHg3ZCwgMHgwZiwgMHg3YywgMHgwMCwgMHgxMiwgMHgyOSwgMHg2MCwgMHg3NSwgMHgzMCwgMHgwMCwgMHg4ZiwKLTB4MzEsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4NGMsIDB4ZTQsIDB4ZjUsIDB4MmQsIDB4ZjUsIDB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjYsCi0weDk4LCAweGU0LCAweGY1LCAweDMwLCAweGY1LCAweDMxLCAweGFmLCAweDMxLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweDgwLCAweDMwLCAweGU3LAotMHgxMCwgMHhlMCwgMHg1NCwgMHgwZiwgMHg5MCwgMHhmOSwgMHg2NywgMHhmMCwgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgxNSwgMHhjMiwgMHg5NSwgMHg4MCwKLTB4MTEsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4OTAsIDB4ZjksIDB4NjUsIDB4ZjAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDIsCi0weGMyLCAweDk0LCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFlLCAweDRjLCAweGJmLCAweDAxLCAweDA0LCAweGQyLCAweDkzLCAweDgwLAotMHgwMiwgMHhjMiwgMHg5MywgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgxZCwgMHg4MCwgMHg1NCwgMHgwMywgMHgxNCwgMHg2MCwgMHgwYSwKLTB4MTQsIDB4NjAsIDB4MGYsIDB4MTQsIDB4NjAsIDB4MDgsIDB4MjQsIDB4MDMsIDB4NzAsIDB4MmIsIDB4ZDIsIDB4OTEsIDB4ODAsIDB4MjcsIDB4YzIsIDB4OTEsCi0weDgwLCAweDIzLCAweDEyLCAweDFlLCAweDU2LCAweDEyLCAweDBmLCAweGMwLCAweDYwLCAweDA0LCAweGQyLCAweDkxLCAweDgwLCAweDE3LCAweDkwLCAweGZmLAotMHhhNCwgMHhlMCwgMHg0NCwgMHgxMCwgMHgxMiwgMHgwZiwgMHhjMCwgMHhmZiwgMHhiZiwgMHhhMCwgMHgwNCwgMHhjMiwgMHg5MSwgMHg4MCwgMHgwMiwgMHhkMiwKLTB4OTEsIDB4MTIsIDB4MWUsIDB4NTYsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4NTQsIDB4MGMsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4NTQsIDB4M2YsCi0weDE0LCAweDYwLCAweDBhLCAweDE0LCAweDYwLCAweDBmLCAweDE0LCAweDYwLCAweDA4LCAweDI0LCAweDAzLCAweDcwLCAweDJiLCAweGQyLCAweDkyLCAweDgwLAotMHgyNywgMHhjMiwgMHg5MiwgMHg4MCwgMHgyMywgMHgxMiwgMHgxZSwgMHg1ZCwgMHgxMiwgMHgwZiwgMHhlMCwgMHg2MCwgMHgwNCwgMHhkMiwgMHg5MiwgMHg4MCwKLTB4MTcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4MTIsIDB4MGYsIDB4ZTAsIDB4ZmYsIDB4YmYsIDB4YTAsIDB4MDQsIDB4YzIsIDB4OTIsCi0weDgwLCAweDAyLCAweGQyLCAweDkyLCAweDEyLCAweDFlLCAweDVkLCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweGU1LCAweDM1LCAweDMwLAotMHhlNywgMHgwNywgMHhlNCwgMHhmZCwgMHg3ZiwgMHgwNSwgMHgwMiwgMHgyZiwgMHhiNCwgMHg3ZiwgMHgwNSwgMHgwMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgzMiwKLTB4N2EsIDB4MjIsIDB4N2IsIDB4MDEsIDB4N2EsIDB4ZmEsIDB4NzksIDB4YjYsIDB4OTAsIDB4ZmEsIDB4YjcsIDB4ZTAsIDB4ZjUsIDB4MmQsIDB4YTMsIDB4ZTAsCi0weGY1LCAweDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDkwLCAweGZhLCAweGI3LCAweGU0LCAweDc1LCAweGYwLCAweDAzLCAweDEyLCAweDFiLAotMHgxYywgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgyMiwgMHhhYSwgMHg0ZSwgMHhhOSwgMHg0ZiwgMHg3YiwgMHhmZiwgMHg5MCwgMHhmYSwKLTB4YjcsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4OTAsIDB4ZmEsIDB4YmMsIDB4ZTAsIDB4ZjUsIDB4NGEsIDB4MTIsIDB4MjksIDB4NjAsIDB4NzUsCi0weDMwLCAweDAwLCAweDhmLCAweDMxLCAweDIyLCAweDEyLCAweDIzLCAweDYxLCAweDdlLCAweDAwLCAweDhlLCAweDMwLCAweDhmLCAweDMxLCAweGVmLCAweDIyLAotMHhmMCwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg2MSwgMHg5MCwgMHhmZiwgMHhhNiwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiYiwgMHhmMCwgMHg1NCwgMHhhMCwKLTB4MjIsIDB4MTIsIDB4MjYsIDB4OTgsIDB4OGYsIDB4NGMsIDB4N2UsIDB4MDAsIDB4YzMsIDB4ZWYsIDB4OTUsIDB4M2MsIDB4ZWUsIDB4OTUsIDB4M2IsIDB4MjIsCi0weGYwLCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDYxLCAweDkwLCAweGZmLCAweGI2LCAweGUwLCAweDkwLCAweGZhLCAweGJiLCAweGYwLCAweDU0LCAweGEwLAotMHgyMiwgMHg3NSwgMHgzOSwgMHgwMCwgMHg3NSwgMHgzYSwgMHgwMSwgMHgwMiwgMHgyYywgMHhkOCwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhmZiwgMHgwMiwKLTB4MzIsIDB4M2YsIDB4OGUsIDB4MzksIDB4OGYsIDB4M2EsIDB4MDIsIDB4MmMsIDB4ZDgsIDB4MTIsIDB4MjMsIDB4NjEsIDB4N2UsIDB4MDAsIDB4OGUsIDB4MzAsCi0weDhmLCAweDMxLCAweGVmLCAweDIyLCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDkwLCAweGZhLCAweGI0LCAweGUwLCAweDIyLCAweGVmLCAweDkwLAotMHhmOCwgMHgwNCwgMHhmMCwgMHgyMiwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHhlZSwgMHg2MCwgMHgwYSwgMHhjMCwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHhkZCwKLTB4ZmUsIDB4ZGUsIDB4ZmEsIDB4ZDAsIDB4MDUsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4MTUsIDB4NTAsIDB4MDMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4MTMsIDB4NzAsCi0weDAzLCAweGQwLCAweGE4LCAweDIyLCAweGZmLCAweGQ1LCAweDA3LCAweGZkLCAweGQwLCAweGE4LCAweDIyLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLAotMHgwMiwgMHhjMCwgMHgwNCwgMHhjMCwgMHgwNSwgMHhlNSwgMHgzZSwgMHgyNCwgMHgwOCwgMHhmOCwgMHg4NiwgMHgwNSwgMHg1MywgMHgwNSwgMHg3ZiwgMHg3YywKLTB4ZmYsIDB4MTIsIDB4MTAsIDB4YzAsIDB4N2YsIDB4MDAsIDB4N2UsIDB4MDAsIDB4ZTUsIDB4NDMsIDB4NjAsIDB4NDYsIDB4ZmMsIDB4OTAsIDB4ZjksIDB4MWQsCi0weGUwLCAweDU0LCAweDdmLCAweDZkLCAweDcwLCAweDBmLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLAotMHhhMywgMHgxNSwgMHg0MywgMHg4MCwgMHgwNywgMHhhMywgMHhhMywgMHhhMywgMHhkYywgMHhlNiwgMHg4MCwgMHgyNiwgMHhkYywgMHgwNiwgMHhkMCwgMHg4MiwKLTB4ZDAsIDB4ODMsIDB4ODAsIDB4MWUsIDB4ZTAsIDB4ZjgsIDB4YTMsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsCi0weGU4LCAweGYwLCAweGEzLCAweGU5LCAweGYwLCAweGEzLCAweGVhLCAweGYwLCAweGEzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGEzLCAweGEzLCAweGEzLAotMHg4MCwgMHhkYSwgMHgxMiwgMHgxMSwgMHg1NywgMHhkMCwgMHgwNSwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHgyMiwKLTB4ODUsIDB4YTgsIDB4NDQsIDB4NzUsIDB4YTgsIDB4ODgsIDB4ZWMsIDB4NzAsIDB4MDIsIDB4N2MsIDB4M2YsIDB4OGMsIDB4M2QsIDB4MjIsIDB4ZTUsIDB4M2UsCi0weDI0LCAweDA4LCAweGY4LCAweDc2LCAweDAwLCAweDEyLCAweDExLCAweGFlLCAweDgwLCAweGZiLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLCAweDAyLAotMHhjMCwgMHgwNCwgMHhjMCwgMHgwNiwgMHg3YywgMHhmZiwgMHgxMiwgMHgxMCwgMHhjMCwgMHhlNSwgMHg0MywgMHg2MCwgMHg0MiwgMHhmZSwgMHg5MCwgMHhmOSwKLTB4MWQsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4NmYsIDB4NzAsIDB4MGIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4YTMsIDB4YTMsIDB4MTUsIDB4NDMsCi0weDgwLCAweDA3LCAweGEzLCAweGEzLCAweGEzLCAweGRlLCAweGVhLCAweDgwLCAweDI2LCAweGRlLCAweDA2LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweDgwLAotMHhkOCwgMHhlMCwgMHhmOCwgMHhhMywgMHhlMCwgMHhmOSwgMHhhMywgMHhlMCwgMHhmYSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhlOCwgMHhmMCwgMHhhMywKLTB4ZTksIDB4ZjAsIDB4YTMsIDB4ZWEsIDB4ZjAsIDB4YTMsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGEsIDB4NzgsCi0weDA4LCAweDA4LCAweDc5LCAweDE4LCAweDA5LCAweDdjLCAweDAxLCAweGU2LCAweDU0LCAweDdmLCAweDZmLCAweDcwLCAweDA2LCAweDc2LCAweDAwLCAweDc3LAotMHgwMCwgMHg4MCwgMHgwNiwgMHgwOCwgMHgwOSwgMHgwYywgMHhiYywgMHgwOCwgMHhlZSwgMHgxMiwgMHgxMSwgMHg1NywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwNCwKLTB4ZDAsIDB4MDIsIDB4ZDAsIDB4MDEsIDB4ZDAsIDB4MDAsIDB4MjIsIDB4NzUsIDB4M2QsIDB4MDAsIDB4ODUsIDB4NDQsIDB4YTgsIDB4MjIsIDB4YzAsIDB4ZjAsCi0weGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMzLCAweGU1LCAweDQzLCAweDI0LCAweGU4LCAweDUwLCAweDA1LCAweDEyLCAweDExLCAweGFlLCAweDgwLCAweGY0LAotMHhlZiwgMHg2MCwgMHgzMSwgMHg5MCwgMHgzMSwgMHgxMSwgMHhlNCwgMHg5MywgMHhjMywgMHg5ZiwgMHg0MCwgMHgyZiwgMHhjMCwgMHgwNCwgMHg3YywgMHhmZiwKLTB4MTIsIDB4MTAsIDB4YzAsIDB4ZDAsIDB4MDQsIDB4NDMsIDB4MDcsIDB4ODAsIDB4ZTUsIDB4NDMsIDB4NzUsIDB4ZjAsIDB4MDMsIDB4YTQsIDB4MjQsIDB4MWQsCi0weGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY5LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGVjLCAweGEzLCAweGYwLCAweGVkLCAweGEzLCAweGYwLCAweDA1LAotMHg0MywgMHgxMiwgMHgxMSwgMHg1NywgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHhmMCwgMHgyMiwgMHgwMiwgMHgxMSwgMHhkYywgMHhjMCwgMHgwNCwKLTB4N2MsIDB4MjAsIDB4ZDIsIDB4OGMsIDB4ZDIsIDB4OGQsIDB4ZDUsIDB4MDQsIDB4ZmQsIDB4ZDAsIDB4MDQsIDB4MjIsIDB4NzUsIDB4YTgsIDB4MDAsIDB4NzUsCi0weDg4LCAweDAwLCAweDc1LCAweGI4LCAweDAwLCAweDc1LCAweGYwLCAweDAwLCAweDc1LCAweGQwLCAweDAwLCAweGU0LCAweGY4LCAweDkwLCAweGY4LCAweDA0LAotMHhmMCwgMHg5MCwgMHgwMCwgMHgwMCwgMHhmNiwgMHgwOCwgMHhiOCwgMHgwMCwgMHhmYiwgMHgwMiwgMHgwMCwgMHgwMCwgMHhjMiwgMHhhZiwgMHhlNCwgMHg5MCwKLTB4ZmYsIDB4NDgsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4NTAsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MDgsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MTAsIDB4ZjAsIDB4OTAsCi0weGZmLCAweDgwLCAweGYwLCAweGEzLCAweGEzLCAweGYwLCAweGQyLCAweGIxLCAweGMyLCAweGIwLCAweDdlLCAweGZmLCAweDdmLCAweGZmLCAweDEyLCAweDEwLAotMHgyNCwgMHg3ZSwgMHhmZiwgMHg3ZiwgMHhmZiwgMHgxMiwgMHgxMCwgMHgyNCwgMHg3ZSwgMHhmZiwgMHg3ZiwgMHhmZiwgMHgxMiwgMHgxMCwgMHgyNCwgMHhkMiwKLTB4YjAsIDB4ZDIsIDB4YjEsIDB4N2UsIDB4ZmYsIDB4N2YsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4MjQsIDB4N2UsIDB4ZmYsIDB4N2YsIDB4ZmYsIDB4MTIsIDB4MTAsCi0weDI0LCAweDdlLCAweGZmLCAweDdmLCAweGZmLCAweDEyLCAweDEwLCAweDI0LCAweDgwLCAweGNjLCAweGMzLCAweGVlLCAweDk0LCAweDAyLCAweDUwLCAweDA0LAotMHg3ZSwgMHgwMywgMHg3ZiwgMHhlOCwgMHhlZiwgMHhmNCwgMHhmZiwgMHhlZSwgMHhmNCwgMHhmZSwgMHgwZiwgMHhiZiwgMHgwMCwgMHgwMSwgMHgwZSwgMHg4ZiwKLTB4NDIsIDB4OGUsIDB4NDEsIDB4MjIsIDB4YzMsIDB4ZWYsIDB4OTQsIDB4YmMsIDB4ZWUsIDB4OTQsIDB4MDIsIDB4NTAsIDB4MDQsIDB4N2UsIDB4MDcsIDB4N2YsCi0weGQwLCAweGVmLCAweGY0LCAweGZmLCAweGVlLCAweGY0LCAweGZlLCAweDBmLCAweGJmLCAweDAwLCAweDAxLCAweDBlLCAweDhmLCAweDQwLCAweDhlLCAweDNmLAotMHgyMiwgMHhlZiwgMHg3MCwgMHgwMSwgMHgyMiwgMHhjMCwgMHgwMCwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHhlNSwgMHgzZSwgMHgyNCwgMHgxOCwgMHhmOCwKLTB4YTYsIDB4MDcsIDB4ZTUsIDB4M2UsIDB4MjQsIDB4MDgsIDB4ZjgsIDB4YzYsIDB4NTQsIDB4N2YsIDB4ZjYsIDB4ZDAsIDB4YTgsIDB4ZTYsIDB4MzAsIDB4ZTcsCi0weDAzLCAweGQwLCAweDAwLCAweDIyLCAweDEyLCAweDExLCAweGFlLCAweDgwLCAweGY0LCAweGMwLCAweDAwLCAweDdmLCAweDAxLCAweGVmLCAweDI0LCAweDA4LAotMHhmOCwgMHhlNiwgMHg2MCwgMHgwOSwgMHgwZiwgMHhiZiwgMHgwOCwgMHhmNSwgMHgxMiwgMHgxMSwgMHhhZSwgMHg4MCwgMHhlZSwgMHhkMCwgMHgwMCwgMHgyMiwKLTB4YzAsIDB4ZjAsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDYsIDB4YzAsIDB4MDQsIDB4ZWQsIDB4MjQsIDB4MTAsIDB4ZjgsCi0weDc2LCAweDlhLCAweGVkLCAweDc1LCAweGYwLCAweDIxLCAweGE0LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY4LCAweGY1LCAweDgzLAotMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhhMywgMHhhMywgMHhlNCwgMHg3OCwgMHgwZCwgMHhmMCwgMHhhMywgMHhkOCwgMHhmYywgMHhlZiwgMHg1NCwgMHg3ZiwKLTB4NzUsIDB4ZjAsIDB4MDIsIDB4YTQsIDB4MjQsIDB4ZjMsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ZjAsIDB4MzQsIDB4MzAsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsCi0weGZlLCAweDc0LCAweDAxLCAweDkzLCAweGZjLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGVjLCAweGYwLCAweGEzLCAweGVlLCAweGYwLCAweGVkLCAweDI0LAotMHgwOCwgMHhmOCwgMHhlZiwgMHg0NCwgMHg4MCwgMHhmNiwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwNiwgMHhkMCwgMHgwMCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwKLTB4ZDAsIDB4ZjAsIDB4MjIsIDB4NzUsIDB4M2UsIDB4MDAsIDB4NzUsIDB4NDMsIDB4MDAsIDB4N2EsIDB4MDgsIDB4NzksIDB4MTgsIDB4NzgsIDB4MDgsIDB4NzYsCi0weDAwLCAweDc3LCAweDAwLCAweDA4LCAweDA5LCAweGRhLCAweGY4LCAweDkwLCAweGY4LCAweDA0LCAweGUwLCAweGZjLCAweDkwLCAweDMxLCAweDExLCAweGU0LAotMHg5MywgMHhjMywgMHg5YywgMHg1MCwgMHgwNSwgMHhlNCwgMHg5MCwgMHhmOCwgMHgwNCwgMHhmMCwgMHg3OCwgMHgwOCwgMHg3NCwgMHg4MCwgMHg0NCwgMHg3ZiwKLTB4ZjYsIDB4NzQsIDB4MDEsIDB4NDQsIDB4MTAsIDB4ZjUsIDB4ODksIDB4NzUsIDB4YjgsIDB4MDAsIDB4ZDIsIDB4YWIsIDB4ZDIsIDB4YTksIDB4MjIsIDB4NzUsCi0weDgxLCAweDhiLCAweGQyLCAweDhlLCAweGQyLCAweDhjLCAweGQyLCAweGFmLCAweGU1LCAweDQzLCAweDYwLCAweDM2LCAweGZmLCAweDkwLCAweGY5LCAweDFkLAotMHhlMCwgMHg1NCwgMHg4MCwgMHg2MCwgMHgyOCwgMHg3OCwgMHgwOCwgMHg3OSwgMHgwOCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmYSwgMHg3YiwgMHgwMCwgMHhlNiwKLTB4NTQsIDB4N2YsIDB4YjUsIDB4MDIsIDB4MDIsIDB4N2IsIDB4ZmYsIDB4MDgsIDB4ZDksIDB4ZjUsIDB4ZWIsIDB4NzAsIDB4MTAsIDB4ZWEsIDB4ZjAsIDB4YzAsCi0weDA3LCAweDEyLCAweDEyLCAweDg5LCAweGFkLCAweDA3LCAweGFmLCAweDAyLCAweDEyLCAweDEyLCAweGEwLCAweGQwLCAweDA3LCAweGEzLCAweGEzLCAweGEzLAotMHhkZiwgMHhjZSwgMHgxMiwgMHgxMSwgMHhhZSwgMHg4MCwgMHhjMSwgMHg4ZiwgMHgyNCwgMHgxMiwgMHgyYSwgMHhjNywgMHgxMiwgMHgyMiwgMHhiNSwgMHhhMywKLTB4YTMsIDB4ZTAsIDB4YTMsIDB4MzAsIDB4ZTcsIDB4MjgsIDB4NzgsIDB4N2UsIDB4MTIsIDB4MjIsIDB4OTksIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MTIsCi0weDIyLCAweGZhLCAweDEyLCAweDIyLCAweDlkLCAweGUwLCAweDIwLCAweGUwLCAweGY2LCAweDEyLCAweDIzLCAweDUwLCAweDc0LCAweDAyLCAweGYwLCAweDEyLAotMHgyMiwgMHhkYSwgMHhlMCwgMHhhMywgMHgzMCwgMHhlNSwgMHgwNywgMHgxMiwgMHgyMywgMHg1MCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3OCwgMHg4MCwKLTB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsIDB4ZmYsIDB4OGUsIDB4ODMsIDB4MjQsIDB4MDgsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MjMsCi0weDM5LCAweDhhLCAweDgzLCAweDI0LCAweDBhLCAweDEyLCAweDIyLCAweGExLCAweGVkLCAweGYwLCAweDEyLCAweDIzLCAweDA2LCAweDI0LCAweDA3LCAweDEyLAotMHgyMiwgMHhhMSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgyMywgMHg1YSwgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlZiwgMHhmMCwgMHg5MCwgMHhmOSwKLTB4MTYsIDB4ZTAsIDB4MzAsIDB4ZTQsIDB4MjAsIDB4MDgsIDB4MTIsIDB4MjIsIDB4YjcsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4ZTAsIDB4MjUsCi0weGUwLCAweGZmLCAweDA1LCAweDgyLCAweGQ1LCAweDgyLCAweDAyLCAweDE1LCAweDgzLCAweDE1LCAweDgyLCAweGUwLCAweDMzLCAweGQwLCAweDgyLCAweGQwLAotMHg4MywgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHgxMiwgMHgyMiwgMHhiNSwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhlYywgMHhmZiwgMHgxMiwKLTB4MjMsIDB4MzksIDB4OGEsIDB4ODMsIDB4MjQsIDB4MDgsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZWYsIDB4ZjAsIDB4ZWQsIDB4MTIsIDB4MjMsIDB4NWEsIDB4MjQsCi0weDA3LCAweDEyLCAweDIyLCAweGExLCAweGVkLCAweGYwLCAweDEyLCAweDIyLCAweGE5LCAweGUwLCAweDMwLCAweGU2LCAweDBhLCAweDEyLCAweDIzLCAweDQxLAotMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlNCwgMHhmMCwgMHgxMiwgMHgyMiwgMHhhOSwgMHhlMCwgMHhmZiwgMHgzMCwgMHhlNywgMHgxYiwgMHgxMiwKLTB4MjMsIDB4MWUsIDB4MjQsIDB4MDksIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4MTIsIDB4MjIsIDB4YTksIDB4ZWYsIDB4NDQsIDB4MDIsCi0weGYwLCAweDgwLCAweDA3LCAweDEyLCAweDIyLCAweGE5LCAweGVmLCAweDU0LCAweGZkLCAweGYwLCAweDc4LCAweDdlLCAweDEyLCAweDIyLCAweGI3LCAweGEzLAotMHhhMywgMHhlMCwgMHhmZiwgMHg1MywgMHgwNywgMHhjNywgMHgwOCwgMHhlNiwgMHhmYywgMHgwOCwgMHhlNiwgMHhmZCwgMHgxMiwgMHgyMiwgMHhlMCwgMHhhMywKLTB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTIsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDUsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsCi0weDkwLCAweDMyLCAweDUxLCAweDkzLCAweDQyLCAweDA3LCAweDUzLCAweDA3LCAweGZiLCAweDEyLCAweDIzLCAweDFlLCAweDI0LCAweDA2LCAweDEyLCAweDIyLAotMHhhMSwgMHhlMCwgMHg2MCwgMHgwMywgMHg0MywgMHgwNywgMHgwNCwgMHg1MywgMHgwNywgMHhmYywgMHg3OCwgMHg4MCwgMHgxMiwgMHgyMywgMHgyOSwgMHgyNCwKLTB4MDQsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4NDIsIDB4MDcsIDB4NDMsIDB4MDcsIDB4ODAsIDB4MTIsIDB4MjMsIDB4MzksIDB4ZjUsIDB4ODIsIDB4OGEsCi0weDgzLCAweGEzLCAweGEzLCAweGVmLCAweGYwLCAweDEyLCAweDIzLCAweDVhLCAweDI0LCAweDA0LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweGZmLCAweDhkLAotMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHgzMCwgMHhlMSwgMHgwNSwgMHg1MywgMHgwNywgMHhkZiwKLTB4ODAsIDB4MDMsIDB4NDMsIDB4MDcsIDB4MjAsIDB4ZWMsIDB4MzAsIDB4ZTQsIDB4MDUsIDB4NTMsIDB4MDcsIDB4ZWYsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MDcsCi0weDEwLCAweDEyLCAweDIyLCAweGE5LCAweGUwLCAweGZlLCAweDU0LCAweDAzLCAweDYwLCAweDczLCAweDUzLCAweDA3LCAweGRmLCAweGVlLCAweDMwLCAweGUxLAotMHg2OSwgMHgxMiwgMHgyMywgMHgxZSwgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHgxMiwgMHgxYiwgMHhmYywgMHgxNSwgMHgyYywgMHgwMCwKLTB4MTUsIDB4NjAsIDB4MDEsIDB4MTUsIDB4NjUsIDB4MDMsIDB4MTUsIDB4NjAsIDB4MDUsIDB4MTUsIDB4NjUsIDB4MDcsIDB4MTUsIDB4NjAsIDB4MDksIDB4MTUsCi0weDY1LCAweDBiLCAweDE1LCAweDYwLCAweDBkLCAweDE1LCAweDY1LCAweDBmLCAweDAwLCAweDAwLCAweDE1LCAweDZkLCAweGU1LCAweDI0LCAweDY0LCAweDAzLAotMHg3MCwgMHgyMSwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHgzMCwgMHhlMiwgMHgwZCwgMHgzMCwgMHhiNCwgMHgwNSwgMHg0MywgMHgwNywgMHgwMiwgMHg4MCwKLTB4MmMsIDB4NTMsIDB4MDcsIDB4ZmQsIDB4ODAsIDB4MjcsIDB4MzAsIDB4OTUsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MDIsIDB4ODAsIDB4MWYsIDB4NTMsIDB4MDcsCi0weGZkLCAweDgwLCAweDFhLCAweDMwLCAweDkzLCAweDA1LCAweDQzLCAweDA3LCAweDAyLCAweDgwLCAweDEyLCAweDUzLCAweDA3LCAweGZkLCAweDgwLCAweDBkLAotMHg0MywgMHgwNywgMHgwMiwgMHg4MCwgMHgwOCwgMHg1MywgMHgwNywgMHhmZCwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHhmZCwgMHgxMiwgMHgyMywgMHgyNywKLTB4MjQsIDB4MDQsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZWYsIDB4ZjAsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmYsCi0weDEyLCAweDIyLCAweGE5LCAweGUwLCAweGZlLCAweDU0LCAweDAzLCAweDcwLCAweDAzLCAweDAyLCAweDE2LCAweDYwLCAweGVlLCAweDIwLCAweGUxLCAweDAzLAotMHgwMiwgMHgxNiwgMHg1ZCwgMHgwOCwgMHgxMiwgMHgyMywgMHgyMCwgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHgxMiwgMHgxYiwgMHhmYywKLTB4MTUsIDB4YmYsIDB4MDAsIDB4MTUsIDB4ZjUsIDB4MDEsIDB4MTUsIDB4ZjUsIDB4MDMsIDB4MTYsIDB4MjksIDB4MDUsIDB4MTYsIDB4MjksIDB4MDcsIDB4MTYsCi0weDBmLCAweDA5LCAweDE2LCAweDBmLCAweDBiLCAweDE2LCAweDQzLCAweDBkLCAweDE2LCAweDQzLCAweDBmLCAweDAwLCAweDAwLCAweDE2LCAweDYwLCAweGU1LAotMHgyNCwgMHg2NCwgMHgwMywgMHg3MCwgMHgyMywgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHgzMCwgMHhlMiwgMHgwZiwgMHgzMCwgMHhiMSwgMHgwNiwgMHg1MywKLTB4MDcsIDB4N2YsIDB4MDIsIDB4MTYsIDB4NjAsIDB4NDMsIDB4MDcsIDB4ODAsIDB4MDIsIDB4MTYsIDB4NjAsIDB4MzAsIDB4OTQsIDB4MDUsIDB4NTMsIDB4MDcsCi0weDdmLCAweDgwLCAweDdkLCAweDQzLCAweDA3LCAweDgwLCAweDgwLCAweDc4LCAweDMwLCAweDkyLCAweDA1LCAweDUzLCAweDA3LCAweDdmLCAweDgwLCAweDcwLAotMHg0MywgMHgwNywgMHg4MCwgMHg4MCwgMHg2YiwgMHhlNSwgMHgyNCwgMHhiNCwgMHgwMywgMHgwOSwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhlZiwKLTB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4NTMsIDB4MDcsIDB4N2YsIDB4ODAsIDB4NTEsIDB4ZTUsCi0weDI0LCAweGI0LCAweDAzLCAweDA5LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweGZmLCAweDllLAotMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg1MywgMHgwNywgMHg3ZiwgMHg4MCwgMHgzNywgMHhlNSwgMHgyNCwgMHhiNCwgMHgwMywgMHgwOSwgMHg5MCwgMHhmZiwKLTB4OWUsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4NDMsIDB4MDcsCi0weDgwLCAweDgwLCAweDFkLCAweGU1LCAweDI0LCAweGI0LCAweDAzLCAweDA5LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDgwLAotMHgwNywgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg0MywgMHgwNywgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHg3ZiwKLTB4MTIsIDB4MjIsIDB4ZGEsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4MzAsIDB4ZTAsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MjAsIDB4ODAsIDB4MDMsCi0weDUzLCAweDA3LCAweGRmLCAweGVjLCAweDMwLCAweGUzLCAweDA1LCAweDQzLCAweDA3LCAweDQwLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweGJmLCAweGVjLAotMHgzMCwgMHhlMCwgMHgwNSwgMHg0MywgMHgwNywgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHhlZiwgMHhlZCwgMHgzMCwgMHhlNCwgMHgwNSwgMHg0MywKLTB4MDcsIDB4MDgsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MDcsIDB4ZjcsIDB4ZWQsIDB4MzAsIDB4ZTUsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MDQsIDB4ODAsIDB4MDMsCi0weDUzLCAweDA3LCAweGZiLCAweGVkLCAweDMwLCAweGU2LCAweDA1LCAweDQzLCAweDA3LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweGZlLCAweGVkLAotMHgzMCwgMHhlNywgMHgwNSwgMHg0MywgMHgwNywgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHhmZCwgMHg3OCwgMHg3ZSwgMHgxMiwgMHgyMiwgMHhkYywKLTB4YTMsIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MzIsIDB4ODQsIDB4N2YsIDB4MDAsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZmEsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YTMsCi0weDc0LCAweDE2LCAweGYwLCAweDkwLCAweGZmLCAweGY5LCAweDc0LCAweDAyLCAweGYwLCAweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGNmLCAweGU0LAotMHhmZCwgMHgxMiwgMHgyMywgMHg2MSwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMywgMHgxMiwgMHgxYiwgMHgxYywgMHgxMiwgMHgxOSwKLTB4OTIsIDB4ZTUsIDB4MjMsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4ZDIsIDB4MDIsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MjQsIDB4OTAsIDB4ZmEsCi0weGNmLCAweGUwLCAweGY1LCAweDJkLCAweGEzLCAweGUwLCAweGY1LCAweDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDkwLCAweGZhLCAweGNmLAotMHhlNCwgMHhmMCwgMHhhMywgMHg3NCwgMHgwYiwgMHhmMCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgyMywgMHg3NSwgMHgyZCwgMHgwMCwgMHhmNSwKLTB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjYsIDB4OTgsIDB4ZTUsIDB4MjMsIDB4MjQsIDB4ODAsIDB4OTAsIDB4ZmYsIDB4ZjgsIDB4ZjAsIDB4ZTUsIDB4MjMsCi0weDY0LCAweDA3LCAweDYwLCAweDFlLCAweGU1LCAweDIzLCAweDY0LCAweDA2LCAweDYwLCAweDE4LCAweGU1LCAweDIzLCAweDY0LCAweDE0LCAweDYwLCAweDEyLAotMHhlNSwgMHgyMywgMHg2NCwgMHg0MSwgMHg2MCwgMHgwYywgMHhlNSwgMHgyMywgMHg2NCwgMHgxYSwgMHg3MCwgMHg0NiwgMHhlNSwgMHgyNCwgMHg2NCwgMHgwMiwKLTB4NzAsIDB4NDAsIDB4ZTUsIDB4MjMsIDB4YjQsIDB4MDcsIDB4MTYsIDB4ZDIsIDB4OTQsIDB4ZDIsIDB4OTUsIDB4ZDIsIDB4OTIsIDB4ZDIsIDB4OTMsIDB4OTAsCi0weGY5LCAweDE2LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGEzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDgwLCAweDFlLCAweGU1LCAweDIzLCAweGI0LAotMHg0MSwgMHgxMiwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHg0NCwgMHgwNiwgMHhmMCwgMHhhMywgMHhlMCwgMHg0NCwgMHgwNiwgMHhmMCwgMHhkMiwgMHhiMSwKLTB4ZDIsIDB4YjQsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4ZjksIDB4MTcsIDB4ZTAsIDB4NDQsCi0weDAxLCAweGYwLCAweGU1LCAweDIzLCAweDY0LCAweDQyLCAweDYwLCAweDBjLCAweGU1LCAweDIzLCAweDY0LCAweDQzLCAweDYwLCAweDA2LCAweGU1LCAweDIzLAotMHg2NCwgMHg0NCwgMHg3MCwgMHgyZSwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHhmZiwgMHhlNSwgMHgyMywgMHhiNCwgMHg0NCwgMHgwNCwgMHg3ZSwgMHg0MCwKLTB4ODAsIDB4MDIsIDB4N2UsIDB4MDAsIDB4ZWUsIDB4MjQsIDB4ODAsIDB4NGYsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4ZTUsCi0weDIzLCAweGI0LCAweDQ0LCAweDA0LCAweDdlLCAweDQwLCAweDgwLCAweDAyLCAweDdlLCAweDAwLCAweGVlLCAweDI0LCAweDgwLCAweDRmLCAweDkwLCAweGY5LAotMHgxNywgMHhmMCwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHhmMCwgMHhhMywgMHg3NCwgMHgwZCwgMHhmMCwgMHgxMiwgMHgxOSwgMHg5MiwgMHg5MCwgMHhmZiwKLTB4ZjUsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzQsIDB4ZjUsIDB4MzIsIDB4MTIsIDB4MWUsIDB4MzQsCi0weDEyLCAweDFjLCAweGUwLCAweDEyLCAweDFlLCAweDNiLCAweDkwLCAweGY5LCAweDZhLCAweDEyLCAweDFiLCAweGYzLCAweDkwLCAweGY5LCAweDZmLCAweDEyLAotMHgxYiwgMHhmMywgMHg5MCwgMHhmZiwgMHhmZiwgMHhlNCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg4MywgMHhlMCwgMHhlNCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg4MSwKLTB4NzQsIDB4ODAsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ODQsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4ODAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MjMsIDB4ZTUsIDB4MjMsIAotMHgxMiwgMHgxZCwgMHg1NywgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgyMywgMHgxMiwgMHgxZCwgMHg2NSwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwKLTB4MDUsIDB4MjMsIDB4ZTUsIDB4MjMsIDB4YjQsIDB4MDcsIDB4ZTcsIDB4NzgsIDB4N2EsIDB4NzYsIDB4ZmUsIDB4MDgsIDB4NzYsIDB4ZjAsIDB4OTAsIDB4MzIsCi0weDBhLCAweGU0LCAweDkzLCAweGZmLCAweDc4LCAweDc4LCAweGY2LCAweGZkLCAweGFkLCAweDA3LCAweDkwLCAweDMyLCAweDE3LCAweGU0LCAweDkzLCAweGZmLAotMHgwOCwgMHhmNiwgMHhmZiwgMHhlZCwgMHg1NCwgMHgwZiwgMHhmZCwgMHgxMiwgMHgxZCwgMHg0NywgMHg3NCwgMHg4NCwgMHhmMCwgMHhlZCwgMHg3NSwgMHhmMCwKLTB4MDgsIDB4YTQsIDB4MjQsIDB4NDcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4YzMsIDB4NzQsIDB4ZjAsIAotMHg5ZiwgMHg3OCwgMHg3YiwgMHhmNiwgMHg3NCwgMHhmZSwgMHg5NCwgMHgwMCwgMHgxOCwgMHgxMiwgMHgxYywgMHhkOCwgMHhjZSwgMHhjMywgMHgxMywgMHhjZSwKLTB4MTMsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4ZWQsIDB4MTIsIDB4MWQsIDB4YTgsIDB4ZWYsIDB4ZjAsIDB4ZWQsIDB4MTIsIDB4MWQsIDB4Y2UsIDB4ZTQsIDB4ZjUsCi0weDIzLCAweGU1LCAweDIzLCAweDkwLCAweDMyLCAweDA0LCAweDkzLCAweGZmLCAweDc4LCAweDc4LCAweGY2LCAweGZkLCAweGU1LCAweDIzLCAweDI1LCAweGUwLAotMHgyNCwgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgzMiwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgwOCwgMHhmNiwgMHhlZCwgMHgzMCwgMHhlNywKLTB4NTMsIDB4MTgsIDB4ZTYsIDB4NTQsIDB4MGYsIDB4ZjksIDB4MTIsIDB4MWQsIDB4NDcsIDB4MTIsIDB4MWQsIDB4YjYsIDB4MjQsIDB4NDcsIDB4ZjUsIDB4ODIsCi0weGU0LCAweDM0LCAweGZmLCAweDEyLCAweDFjLCAweGM4LCAweGNlLCAweGMzLCAweDEzLCAweGNlLCAweDEzLCAweGQ4LCAweGY5LCAweGZmLCAweGU5LCAweDEyLAotMHgxZCwgMHhhOCwgMHhlZiwgMHhmMCwgMHgxMiwgMHgxYywgMHhjZiwgMHhjZSwgMHhjMywgMHgxMywgMHhjZSwgMHgxMywgMHhkOCwgMHhmOSwgMHgxMiwgMHgxZCwKLTB4YmIsIDB4MjQsIDB4NDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTksIDB4MTIsIDB4MWQsIDB4Y2UsCi0weGU5LCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDQ2LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweDc0LCAweDgwLCAKLTB4ZjAsIDB4MDIsIDB4MTksIDB4NjcsIDB4NzgsIDB4NzgsIDB4ZTYsIDB4NTQsIDB4MGYsIDB4ZjksIDB4MTIsIDB4MWQsIDB4OWEsIDB4MTIsIDB4MWQsIDB4YjYsCi0weDI0LCAweDA3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAweDEyLCAweDFjLCAweGM4LCAweGNlLCAweGMzLCAweDEzLCAweGNlLCAweDEzLCAweGQ4LAotMHhmOSwgMHgxMiwgMHgxZCwgMHhiYiwgMHgyNCwgMHgwMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgxMiwKLTB4MWMsIDB4Y2YsIDB4Y2UsIDB4YzMsIDB4MTMsIDB4Y2UsIDB4MTMsIDB4ZDgsIDB4ZjksIDB4MTIsIDB4MWQsIDB4YmIsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsCi0weGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU5LCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyLCAKLTB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTksIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIAotMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHgwNSwgMHgyMywgMHhlNSwgMHgyMywgMHg2NCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMiwgCi0weDE4LCAweDkxLCAweDkwLCAweDMyLCAweDA5LCAweGU0LCAweDkzLCAweGZmLCAweDc4LCAweDc4LCAweGY2LCAweDEyLCAweDFkLCAweDk4LCAweGU0LCAweGYwLAotMHg5MCwgMHgzMiwgMHgwOCwgMHg5MywgMHhmZiwgMHhmNiwgMHgxMiwgMHgxZCwgMHg0NSwgMHhlNCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhmZCwgMHg3NCwgMHgwNSwKLTB4ZjAsIDB4MjIsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MjMsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsCi0weDFiLCAweDMyLCAweDg1LCAweGYwLCAweDJlLCAweGY1LCAweDJkLCAweDdkLCAweDAxLCAweDAyLCAweDI2LCAweDk4LCAweGU3LCAweDA5LCAweGY2LCAweDA4LAotMHhkZiwgMHhmYSwgMHg4MCwgMHg0NiwgMHhlNywgMHgwOSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHgzZSwgMHg4OCwgMHg4MiwgMHg4YywgMHg4MywgCi0weGU3LCAweDA5LCAweGYwLCAweGEzLCAweGRmLCAweGZhLCAweDgwLCAweDMyLCAweGUzLCAweDA5LCAweGY2LCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDc4LCAKLTB4ZTMsIDB4MDksIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NzAsIDB4ODgsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTMsIDB4MDksIDB4ZjAsIDB4YTMsIAotMHhkZiwgMHhmYSwgMHg4MCwgMHg2NCwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHhhMywgMHhmNiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHg1OCwgCi0weDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweGEzLCAweGYyLCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDRjLCAweDgwLCAweGQyLCAweDgwLCAweGZhLCAKLTB4ODAsIDB4YzYsIDB4ODAsIDB4ZDQsIDB4ODAsIDB4NjksIDB4ODAsIDB4ZjIsIDB4ODAsIDB4MzMsIDB4ODAsIDB4MTAsIDB4ODAsIDB4YTYsIDB4ODAsIDB4ZWEsIAotMHg4MCwgMHg5YSwgMHg4MCwgMHhhOCwgMHg4MCwgMHhkYSwgMHg4MCwgMHhlMiwgMHg4MCwgMHhjYSwgMHg4MCwgMHgzMywgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgCi0weGVjLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGYwLCAweGEzLCAweGM4LCAKLTB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODMsIDB4Y2MsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4MGQsIDB4ODksIDB4ODIsIDB4OGEsIAotMHg4MywgMHhlNCwgMHg5MywgMHhhMywgMHhmNiwgMHgwOCwgMHhkZiwgMHhmOSwgMHhlYywgMHhmYSwgMHhhOSwgMHhmMCwgMHhlZCwgMHhmYiwgMHgyMiwgMHg4OSwgCi0weDgyLCAweDhhLCAweDgzLCAweGVjLCAweGZhLCAweGUwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGYwLCAKLTB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODMsIDB4Y2MsIDB4ZGYsIDB4ZWEsIDB4ZGUsIDB4ZTgsIDB4ODAsIDB4ZGIsIDB4ODksIAotMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHhhMywgMHhmMiwgMHgwOCwgMHhkZiwgMHhmOSwgMHg4MCwgMHhjYywgMHg4OCwgMHhmMCwgMHhlZiwgMHg2MCwgCi0weDAxLCAweDBlLCAweDRlLCAweDYwLCAweGMzLCAweDg4LCAweGYwLCAweGVkLCAweDI0LCAweDAyLCAweGI0LCAweDA0LCAweDAwLCAweDUwLCAweGI5LCAweGY1LCAKLTB4ODIsIDB4ZWIsIDB4MjQsIDB4MDIsIDB4YjQsIDB4MDQsIDB4MDAsIDB4NTAsIDB4YWYsIDB4MjMsIDB4MjMsIDB4NDUsIDB4ODIsIDB4MjMsIDB4OTAsIDB4MTksIAotMHhmYywgMHg3MywgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwKLTB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIAotMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgCi0weGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAKLTB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZjAsIAotMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhmOCwgMHhiYiwgMHgwMSwgMHgwZCwgMHhlNSwgMHg4MiwgCi0weDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU4LCAweGYwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAKLTB4YzgsIDB4ZjYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDUsIDB4ZTksIDB4MjUsIDB4ODIsIDB4YzgsIDB4ZjIsIDB4MjIsIDB4YzUsIDB4ZjAsIDB4ZjgsIDB4YTMsIAotMHhlMCwgMHgyOCwgMHhmMCwgMHhjNSwgMHhmMCwgMHhmOCwgMHhlNSwgMHg4MiwgMHgxNSwgMHg4MiwgMHg3MCwgMHgwMiwgMHgxNSwgMHg4MywgMHhlMCwgMHgzOCwgCi0weGYwLCAweDIyLCAweGEzLCAweGY4LCAweGUwLCAweGM1LCAweGYwLCAweDI1LCAweGYwLCAweGYwLCAweGU1LCAweDgyLCAweDE1LCAweDgyLCAweDcwLCAweDAyLCAKLTB4MTUsIDB4ODMsIDB4ZTAsIDB4YzgsIDB4MzgsIDB4ZjAsIDB4ZTgsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MTAsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIAotMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMCwgMHhhMywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwgCi0weGY4LCAweDg2LCAweGYwLCAweDA4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDBhLCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweGY1LCAweGYwLCAKLTB4MDgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODMsIDB4MmEsIDB4ZjUsIDB4ODMsIDB4ZTksIDB4OTMsIDB4ZjUsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4OTMsIDB4MjIsIAotMHhiYiwgMHgwMSwgMHgwYSwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHhlNSwgMHhmMCwgMHhhMywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhmNywgCi0weDA5LCAweGE3LCAweGYwLCAweDE5LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGYzLCAweGU1LCAweGYwLCAweDA5LCAweGYzLCAweDE5LCAweDIyLCAweGY4LCAKLTB4YmIsIDB4MDEsIDB4MTEsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTgsIDB4ZjAsIDB4ZTUsIAotMHhmMCwgMHhhMywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhjOCwgMHhmNiwgMHgwOCwgMHhhNiwgMHhmMCwgMHgyMiwgMHhiYiwgCi0weGZlLCAweDA5LCAweGU5LCAweDI1LCAweDgyLCAweGM4LCAweGYyLCAweGU1LCAweGYwLCAweDA4LCAweGYyLCAweDIyLCAweGE0LCAweDI1LCAweDgyLCAweGY1LCAKLTB4ODIsIDB4ZTUsIDB4ZjAsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4ZTYsIDB4ZmIsIDB4MDgsIDB4ZTYsIDB4ZmEsIDB4MDgsIDB4ZTYsIDB4ZjksIAotMHgyMiwgMHhlYiwgMHhmNiwgMHgwOCwgMHhlYSwgMHhmNiwgMHgwOCwgMHhlOSwgMHhmNiwgMHgyMiwgMHhlMCwgMHhmYiwgMHhhMywgMHhlMCwgMHhmYSwgMHhhMywgCi0weGUwLCAweGY5LCAweDIyLCAweGViLCAweGYwLCAweGEzLCAweGVhLCAweGYwLCAweGEzLCAweGU5LCAweGYwLCAweDIyLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAKLTB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIAotMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgCi0weDgwLCAweGRmLCAweGFiLCAweDM2LCAweGFhLCAweDM3LCAweGE5LCAweDM4LCAweGU1LCAweDRjLCAweDEyLCAweDFhLCAweGU4LCAweDc0LCAweDAxLCAweDI1LAotMHgzOCwgMHhmNSwgMHgzOCwgMHhlNCwgMHgzNSwgMHgzNywgMHhmNSwgMHgzNywgMHhhYiwgMHgzNiwgMHhmYSwgMHhhOSwgMHgzOCwgMHg3NCwgMHgxMSwgMHgxMiwgCi0weDFhLCAweGU4LCAweDc0LCAweDAxLCAweDI1LCAweDM4LCAweGY1LCAweDM4LCAweGU0LCAweDM1LCAweDM3LCAweGY1LCAweDM3LCAweDkwLCAweGZmLCAweDA2LAotMHhlMCwgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgxMiwgMHgxYSwgMHhlOCwgMHg3NCwgMHgwMSwgMHgyNSwgMHgzOCwgMHhmNSwgMHgzOCwKLTB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4YWIsIDB4MzYsIDB4ZmEsIDB4YTksIDB4MzgsIDB4ZTQsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4MDQsIDB4MjUsCi0weDM4LCAweGY1LCAweDM4LCAweGU0LCAweDM1LCAweDM3LCAweGY1LCAweDM3LCAweGFiLCAweDM2LCAweGZhLCAweGE5LCAweDM4LCAweGU0LCAweDEyLCAweDFhLCAKLTB4ZTgsIDB4MDQsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4MzgsIDB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4OTAsIDB4ZmYsIDB4MDQsIDB4ZTAsIDB4YWIsCi0weDM2LCAweGFhLCAweDM3LCAweGE5LCAweDM4LCAweDEyLCAweDFhLCAweGU4LCAweDc0LCAweDAxLCAweDI1LCAweDM4LCAweGY1LCAweDM4LCAweGU0LCAweDM1LAotMHgzNywgMHhmNSwgMHgzNywgMHg5MCwgMHhmZiwgMHgwNSwgMHhlMCwgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgxMiwgMHgxYSwgMHhlOCwKLTB4NzQsIDB4MDEsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4MzgsIDB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4MjIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIAotMHgwOCwgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNywgMHhhOSwgMHgzOCwgMHgyMiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhmZCwgMHg3YywgMHgwMCwgMHhjMywgCi0weDc4LCAweDdiLCAweGU2LCAweDlkLCAweGY2LCAweDE4LCAweGU2LCAweDljLCAweGY2LCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweDc4LCAweDAzLCAweDIyLCAKLTB4NzUsIDB4MzYsIDB4MDEsIDB4NzUsIDB4MzcsIDB4ZjksIDB4NzUsIDB4MzgsIDB4NzIsIDB4MjIsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4NzQsIDB4MTMsCi0weDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGY5LCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDkwLCAweGZhLCAweGJjLCAweGUwLCAweGZmLCAweDdlLAotMHgwMCwgMHhjMywgMHg5MCwgMHhmYSwgMHhjMCwgMHhlMCwgMHg5ZiwgMHhmMCwgMHg5MCwgMHhmYSwgMHhiZiwgMHhlMCwgMHg5ZSwgMHhmMCwgMHg5MCwgMHhmYSwKLTB4YjcsIDB4ZWUsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWIsIDB4MWMsIDB4ZWYsIDB4MjUsIDB4NGYsIDB4ZjUsIDB4NGYsIDB4ZWUsIDB4MzUsIDB4NGUsIDB4ZjUsCi0weDRlLCAweDIyLCAweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGI0LCAweDkwLCAweGZhLCAweGI3LCAweGUwLCAweGY1LCAweDJkLCAweGEzLCAweGUwLAotMHhmNSwgMHgyZSwgMHgyMiwgMHg3OCwgMHg3YywgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgCi0weDM1LCAweDgzLCAweGY1LCAweDgzLCAweDIyLCAweDU0LCAweDBmLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDQwLCAweGY1LCAweDgyLCAweGU0LCAKLTB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4ZTUsIDB4NGQsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4NDgsIDB4ZjUsIDB4ODIsIDB4ZTQsIAotMHgzNCwgMHhmZiwgMHgyMiwgMHhlNSwgMHg0ZCwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZiwgCi0weDIyLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGZmLCAweDI0LCAweGZjLCAweDIyLCAweDkwLCAweGZmLCAweDAwLCAweGUwLCAweDU0LCAweDFmLCAweDIyLAotMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiYSwgMHhmMCwgMHgyMiwgMHg3NSwgMHgzMywgMHgwMCwgMHg4ZiwgMHgzNCwgMHg5MCwgMHhmOSwKLTB4NmYsIDB4MTIsIDB4MWIsIDB4ZWEsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MjIsIDB4NTQsIDB4MGYsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsCi0weGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweDIyLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDQxLCAweGY1LCAweDgyLCAKLTB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4ZmYsIDB4ZTksIDB4NzUsIDB4ZjAsIDB4MDgsIAotMHhhNCwgMHgyMiwgMHg3NCwgMHhiMiwgMHgyNSwgMHgyMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmYSwgMHhmNSwgMHg4MywgMHgyMiwgMHg3NSwgMHhmMCwKLTB4MDgsIDB4YTQsIDB4MjQsIDB4NDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4MjIsIDB4OTAsIAotMHhmZiwgMHg4MiwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmZSwgMHhlMCwgMHg0NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhmZiwgCi0weGZjLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDIyLCAweDc4LCAweDY3LCAweGU2LCAweDU0LCAweGZkLCAweGY2LCAweDkwLCAweGZmLCAweGZkLCAweDc0LCAKLTB4NjUsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MWIsIDB4Y2MsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4NGUsIDB4MjIsIDB4N2IsIDB4MDEsIDB4N2EsCi0weGZhLCAweDc5LCAweGI3LCAweDIyLCAweDkwLCAweGZmLCAweDgwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDIyLCAweDkwLCAweGZmLCAweDgzLCAweGUwLAotMHg1NCwgMHg3ZiwgMHhmMCwgMHgyMiwgMHhlMCwgMHhmZiwgMHg5MCwgMHhmOSwgMHg2YSwgMHgwMiwgMHgxYiwgMHhlYSwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwKLTB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4NzUsIDB4MzksIDB4MDEsIDB4NzUsIDB4M2EsIDB4MDksIDB4MjIsIDB4N2IsIDB4MDEsIDB4N2EsIDB4ZjksIDB4NzksIAotMHg3MiwgMHgyMiwgMHhkMywgMHhlNSwgMHgzYywgMHg5NCwgMHgwOCwgMHhlNSwgMHgzYiwgMHg5NCwgMHgwMSwgMHgyMiwgMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwKLTB4ZmYsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4YjQsCi0weGUwLCAweDU0LCAweGVmLCAweDIyLCAweDEyLCAweDEwLCAweDRiLCAweDc4LCAweDg4LCAweGVmLCAweGY2LCAweDEyLCAweDJhLCAweGM3LCAweDEyLCAweDIyLAotMHhmYSwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgyMiwgMHhlOCwgMHg5MCwgMHgwMCwgMHgwYSwKLTB4MTIsIDB4MjMsIDB4MDIsIDB4MjQsIDB4MGEsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4OTAsIDB4MDAsIDB4MGIsIDB4MTIsIDB4MWEsIDB4ZmEsIDB4MTIsCi0weDIyLCAweGZhLCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweGY1LCAweDUzLCAweDEyLCAweDIzLCAweDA2LCAweDI0LAotMHgwNCwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHhmNSwgMHg1NCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmNSwgMHg1NSwKLTB4ZTUsIDB4NTMsIDB4YzQsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MDEsIDB4NzgsIDB4ODgsIDB4ZjYsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDYsIAotMHhlNSwgMHg1NCwgMHgzMCwgMHhlMSwgMHgwMSwgMHgwNiwgMHg3OCwgMHg4OCwgMHhlNiwgMHgxMiwgMHgyMiwgMHhlNywgMHg5MCwgMHgwMCwgMHgwYywgMHhlZiwKLTB4MTIsIDB4MWEsIDB4ZmEsIDB4MTIsIDB4MjIsIDB4YjUsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4NTMsIDB4MDcsIDB4MGMsCi0weDUzLCAweDA2LCAweGU2LCAweGU1LCAweDUzLCAweDMwLCAweGU1LCAweDAzLCAweDQzLCAweDA3LCAweDAxLCAweGU1LCAweDU0LCAweDIwLCAweGU1LCAweDBlLAotMHhlNSwgMHg1MywgMHg1NCwgMHg3ZiwgMHg3MCwgMHgwOCwgMHhlNSwgMHg1MywgMHgyMCwgMHhlNywgMHgwMywgMHg0MywgMHgwNywgMHgwMiwgMHhlNSwgMHg1MywKLTB4MzAsIDB4ZTMsIDB4MDMsIDB4NDMsIDB4MDcsIDB4MTAsIDB4ZTUsIDB4NTMsIDB4MzAsIDB4ZTIsIDB4MDMsIDB4NDMsIDB4MDcsIDB4MjAsIDB4ZTUsIDB4NTMsCi0weDU0LCAweDAzLCAweDYwLCAweDAzLCAweDQzLCAweDA3LCAweDQwLCAweGU1LCAweDUzLCAweDMwLCAweGUxLCAweDAzLCAweDQzLCAweDA3LCAweDgwLCAweGU1LAotMHg1MywgMHgzMCwgMHhlNCwgMHgwMywgMHg0MywgMHgwNiwgMHgwMSwgMHhlNSwgMHg1MywgMHgzMCwgMHhlNiwgMHgwMywgMHg0MywgMHgwNiwgMHgwOCwgMHhlNSwKLTB4NTQsIDB4MjAsIDB4ZTQsIDB4MGUsIDB4ZTUsIDB4NTMsIDB4NTQsIDB4N2YsIDB4NzAsIDB4MDgsIDB4ZTUsIDB4NTMsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4NDMsCi0weDA2LCAweDEwLCAweDUzLCAweDA3LCAweGZiLCAweDUzLCAweDA2LCAweDc5LCAweDkwLCAweDAwLCAweDA1LCAweGVlLCAweDhmLCAweGYwLCAweDEyLCAweDFiLAotMHg5ZiwgMHhlNSwgMHg1NSwgMHgzMCwgMHhlMywgMHgxMiwgMHg1NCwgMHgzMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHgxMiwgMHgyMiwgMHhlNywgMHg5MCwKLTB4MDAsIDB4MDgsIDB4ZWYsIDB4MTIsIDB4MWEsIDB4ZmEsIDB4ODAsIDB4MGEsIDB4MTIsIDB4MjIsIDB4ZTgsIDB4OTAsIDB4MDAsIDB4MDgsIDB4ZTQsIDB4MTIsCi0weDFhLCAweGZhLCAweGU1LCAweDU1LCAweDU0LCAweDAzLCAweDEyLCAweDIyLCAweGU3LCAweDkwLCAweDAwLCAweDA3LCAweGVmLCAweDEyLCAweDFhLCAweGZhLAotMHhlNSwgMHg1NSwgMHg1NCwgMHgwNCwgMHhmZiwgMHhjMywgMHgxMywgMHg5MCwgMHgwMCwgMHgwOSwgMHgxMiwgMHgxYSwgMHhmYSwgMHg5MCwgMHgwMCwgMHgwNywKLTB4MTIsIDB4MWEsIDB4YmIsIDB4NzAsIDB4MTMsIDB4MTIsIDB4MjIsIDB4ZTgsIDB4ZTksIDB4MjQsIDB4MDksIDB4ZjksIDB4ZTQsIDB4M2EsIDB4ZmEsIDB4MTIsCi0weDFhLCAweGEyLCAweGZmLCAweGMzLCAweDEzLCAweDEyLCAweDFhLCAweGU4LCAweDEyLCAweDIzLCAweDI3LCAweDI0LCAweDA4LCAweDEyLCAweDIyLCAweGExLAotMHhlMCwgMHhmZSwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNywgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHhmZCwgMHhlZSwKLTB4ZWQsIDB4MTIsIDB4MjIsIDB4ZTcsIDB4OTAsIDB4MDAsIDB4MDMsIDB4ZWUsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWIsIDB4OWYsIDB4MTIsIDB4MzIsIDB4ODQsCi0weDdkLCAweDBhLCAweGU0LCAweGZmLCAweDEyLCAweDJmLCAweGI0LCAweDAyLCAweDEwLCAweGNlLCAweDkwLCAweGZhLCAweGU2LCAweGUwLCAweGI0LCAweDAzLAotMHgwNiwgMHg3ZSwgMHgwMCwgMHg3ZiwgMHg0MCwgMHg4MCwgMHgwNCwgMHg3ZSwgMHgwMCwgMHg3ZiwgMHgwOCwgMHg5MCwgMHhmYSwgMHhkYSwgMHhlZSwgMHhmMCwKLTB4YTMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MDAsIDB4MDUsIDB4MTIsIDB4MWEsIDB4YmIsIDB4ZmYsIDB4N2UsIDB4MDAsIDB4OTAsIDB4ZmEsIDB4ZDYsIDB4ZWUsCi0weGYwLCAweGEzLCAweGVmLCAweGYwLCAweDcwLCAweDAzLCAweDdmLCAweDA4LCAweDIyLCAweDkwLCAweDAwLCAweDA4LCAweDEyLCAweDFiLCAweDQ4LCAweGZmLAotMHg5MCwgMHhmYSwgMHhkOCwgMHhlNSwgMHhmMCwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHhhZSwgMHgwMiwgMHhhZiwgMHgwMSwgMHg4ZSwgMHg1MCwgMHg4ZiwKLTB4NTEsIDB4NzQsIDB4MGEsIDB4MjUsIDB4NTEsIDB4ZjUsIDB4NTEsIDB4ZTQsIDB4MzUsIDB4NTAsIDB4ZjUsIDB4NTAsIDB4OTAsIDB4ZmEsIDB4ZGIsIDB4ZTAsCi0weGZmLCAweDE0LCAweGZlLCAweDkwLCAweGZhLCAweGQ5LCAweGUwLCAweDVlLCAweGZlLCAweGMzLCAweGVmLCAweDllLCAweGZmLCAweDkwLCAweGZhLCAweGRkLAotMHhmMCwgMHhjMywgMHg5MCwgMHhmYSwgMHhkNywgMHhlMCwgMHg5ZiwgMHg5MCwgMHhmYSwgMHhkNiwgMHhlMCwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwNiwgMHhhMywKLTB4ZTAsIDB4OTAsIDB4ZmEsIDB4ZGQsIDB4ZjAsIDB4MTIsIDB4MjAsIDB4YTksIDB4NjAsIDB4MDMsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MTIsIDB4MmUsIDB4MmIsCi0weDkwLCAweGZhLCAweGQ2LCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweDRlLCAweDYwLCAweDJiLCAweDkwLCAweGZhLCAweGRhLCAweGUwLCAweGZjLAotMHhhMywgMHhlMCwgMHhmZCwgMHhkMywgMHhlZiwgMHg5ZCwgMHhlZSwgMHg5YywgMHg0MCwgMHgwNywgMHhlMCwgMHg5MCwgMHhmYSwgMHhkZCwgMHhmMCwgMHg4MCwKLTB4MDgsIDB4OTAsIDB4ZmEsIDB4ZDcsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4ZGQsIDB4ZjAsIDB4MTIsIDB4MjAsIDB4YTksIDB4NjAsIDB4MDMsIDB4ZTAsIDB4ZmYsCi0weDIyLCAweDEyLCAweDJlLCAweDJiLCAweDgwLCAweGNhLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDUyLCAweGU0LCAweGY1LCAweDJkLCAweGY1LAotMHgyZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHg3ZiwgMHgwMCwgMHgyMiwgMHhhYSwgMHg1MCwgMHhhOSwgMHg1MSwgMHg3YiwgMHgwMSwgMHg5MCwKLTB4ZmEsIDB4ZDgsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4OTAsIDB4ZmEsIDB4ZGQsIDB4ZTAsIDB4ZjUsIDB4NGEsIDB4MTIsIDB4MjksIDB4NjAsCi0weDkwLCAweGZhLCAweGRjLCAweGVmLCAweGYwLCAweDIyLCAweGVmLCAweDI0LCAweGFlLCAweDYwLCAweDUyLCAweDI0LCAweGZlLCAweDYwLCAweDJlLCAweDI0LAotMHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgyMSwgMHg2OSwgMHgyNCwgMHgwNiwgMHg2MCwgMHgwMywgMHgwMiwgMHgyMSwgMHhiMSwgMHg3OCwgMHg3MSwgMHhlNiwKLTB4NTQsIDB4ZmIsIDB4ZjYsIDB4OTAsIDB4ZmYsIDB4YTUsIDB4ZTAsIDB4ZjUsIDB4MjIsIDB4NDQsIDB4MGYsIDB4ZjAsIDB4NzQsIDB4MzMsIDB4OTAsIDB4ZmEsCi0weDk0LCAweGYwLCAweGU1LCAweDIyLCAweGEzLCAweGYwLCAweDkwLCAweGZhLCAweGIyLCAweDc0LCAweDAxLCAweGYwLCAweDIyLCAweDc4LCAweDcyLCAweGU2LAotMHg1NCwgMHhmYiwgMHhmNiwgMHg5MCwgMHhmZiwgMHhiNSwgMHhlMCwgMHhmNSwgMHgyMiwgMHg0NCwgMHgwZiwgMHhmMCwgMHg3NCwgMHg0MywgMHg5MCwgMHhmYSwKLTB4OTYsIDB4ZjAsIDB4ZTUsIDB4MjIsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YjMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YTAsCi0weGUwLCAweGEzLCAweDIwLCAweGU1LCAweDAzLCAweDAyLCAweDIxLCAweGIxLCAweDkwLCAweGZmLCAweGE2LCAweGUwLCAweDkwLCAweGZhLCAweGNkLCAweGYwLAotMHhhMywgMHhmMCwgMHg5MCwgMHhmYSwgMHhjZCwgMHhlMCwgMHhmZiwgMHg1NCwgMHgwZiwgMHhmZSwgMHg2MCwgMHgxMCwgMHg5MCwgMHhmZiwgMHhhNiwgMHgxMiwKLTB4MjMsIDB4MGQsIDB4OTAsIDB4ZmYsIDB4YTYsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4Y2QsIDB4ZjAsIDB4ODAsIDB4ZTYsIDB4OTAsIDB4ZmEsIDB4Y2UsIDB4ZTAsCi0weGZmLCAweDc0LCAweDM0LCAweGZlLCAweDEyLCAweDJkLCAweDg1LCAweGVmLCAweDcwLCAweDU3LCAweDkwLCAweGZhLCAweGNlLCAweGUwLCAweGZmLCAweDc0LAotMHgzNCwgMHg5MCwgMHhmYSwgMHg5OCwgMHhmMCwgMHhlZiwgMHhhMywgMHhmMCwgMHgyMiwgMHg5MCwgMHhmYSwgMHhhYSwgMHhlMCwgMHhhMywgMHgzMCwgMHhlNSwKLTB4NDAsIDB4OTAsIDB4ZmYsIDB4YjYsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4Y2QsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4Y2QsIDB4ZTAsIDB4ZmYsCi0weDU0LCAweDBmLCAweGZlLCAweDYwLCAweDEwLCAweDkwLCAweGZmLCAweGI2LCAweDEyLCAweDIzLCAweDBkLCAweDkwLCAweGZmLCAweGI2LCAweGUwLCAweDkwLAotMHhmYSwgMHhjZCwgMHhmMCwgMHg4MCwgMHhlNiwgMHg5MCwgMHhmYSwgMHhjZSwgMHhlMCwgMHhmZiwgMHg3NCwgMHg0NCwgMHhmZSwgMHgxMiwgMHgyZCwgMHg4NSwKLTB4ZWYsIDB4NzAsIDB4MGUsIDB4OTAsIDB4ZmEsIDB4Y2UsIDB4ZTAsIDB4ZmYsIDB4NzQsIDB4NDQsIDB4OTAsIDB4ZmEsIDB4OWEsIDB4ZjAsIDB4ZWYsIDB4YTMsCi0weGYwLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweGYwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDAwLCAweGMwLAotMHgwMCwgMHhjMCwgMHgwMSwgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMywgMHhjMCwgMHgwNCwgMHhjMCwgMHgwNSwgMHhjMCwgMHgwNiwgMHhjMCwgMHgwNywgMHg5MCwKLTB4ZmYsIDB4OTIsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4ZmEsIDB4Y2MsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4OTIsIDB4ZTQsIDB4ZjAsIDB4ZWYsIDB4MTIsIDB4MWIsCi0weGZjLCAweDIyLCAweDY5LCAweDI2LCAweDIyLCAweDY5LCAweDJlLCAweDIyLCAweDBjLCAweDMwLCAweDIyLCAweDBjLCAweDMyLCAweDIyLCAweDFhLCAweDM4LAotMHgyMiwgMHgyYywgMHgzYSwgMHgyMiwgMHg1ZSwgMHgzZSwgMHgyMiwgMHg0OSwgMHg0NCwgMHgyMiwgMHgzZSwgMHg0NiwgMHgyMiwgMHg1NCwgMHg1MCwgMHgyMiwKLTB4NTQsIDB4NTIsIDB4MjIsIDB4NTQsIDB4NTQsIDB4MjIsIDB4NTQsIDB4NTYsIDB4MDAsIDB4MDAsIDB4MjIsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4Y2MsIDB4ZTAsCi0weGZkLCAweDdjLCAweDAwLCAweDdmLCAweDAxLCAweDEyLCAweDExLCAweDVlLCAweDgwLCAweDYyLCAweDdjLCAweDAwLCAweDdkLCAweDAxLCAweDdmLCAweDAzLAotMHgxMiwgMHgxMSwgMHg1ZSwgMHg5MCwgMHhmZiwgMHhmZSwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg1MCwgMHg3YywgMHgwMCwgMHg3ZCwgMHgwMSwKLTB4N2YsIDB4MDIsIDB4MTIsIDB4MTEsIDB4NWUsIDB4OTAsIDB4ZmYsIDB4ZmUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ODAsIDB4M2UsIDB4N2MsIDB4MDAsCi0weDdkLCAweDAxLCAweDdmLCAweDA1LCAweDEyLCAweDExLCAweDVlLCAweDgwLCAweDMzLCAweDdjLCAweDAwLCAweDdkLCAweDAxLCAweDdmLCAweDA2LCAweDEyLAotMHgxMSwgMHg1ZSwgMHg4MCwgMHgyOCwgMHg5MCwgMHhmYSwgMHhjYywgMHhlMCwgMHhmZiwgMHgxMiwgMHgyMCwgMHhjNiwgMHg4MCwgMHgxZSwgMHg3YywgMHgwMCwKLTB4N2QsIDB4MDEsIDB4N2YsIDB4MDQsIDB4MTIsIDB4MTEsIDB4NWUsIDB4ODAsIDB4MTMsIDB4MTIsIDB4MjgsIDB4NGUsIDB4ODAsIDB4MGUsIDB4OTAsIDB4ZmEsCi0weGNjLCAweGUwLCAweDI0LCAweDAwLCAweGZmLCAweGU0LCAweDM0LCAweGZmLCAweGZlLCAweDEyLCAweDJkLCAweDg1LCAweGQwLCAweDA3LCAweGQwLCAweDA2LAotMHhkMCwgMHgwNSwgMHhkMCwgMHgwNCwgMHhkMCwgMHgwMywgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwKLTB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4NzgsIDB4N2MsIDB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsIDB4MjQsIDB4MDQsIDB4OGUsCi0weDgzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweDIyLCAweDc0LCAweDEzLCAweDI1LCAweDI0LCAweGY1LCAweDgyLCAweGU0LAotMHgzNCwgMHhmOSwgMHhmNSwgMHg4MywgMHgyMiwgMHg3OCwgMHg4MCwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHgyMiwKLTB4NzgsIDB4ODAsIDB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsIDB4YWEsIDB4MDYsIDB4ZjgsIDB4YWMsIDB4MDIsIDB4N2QsIDB4MDEsIDB4N2IsIDB4ZmYsIDB4N2EsCi0weDMyLCAweDc5LCAweDU2LCAweDdlLCAweDAwLCAweDdmLCAweDBhLCAweDAyLCAweDFhLCAweDdjLCAweDc4LCAweDgwLCAweGU2LCAweGZjLCAweDA4LCAweGU2LAotMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhhMywgMHgyMiwgMHhmZiwgMHg5MCwgMHhmOSwgMHg2ZiwgMHgwMiwgMHgxYiwgMHhlYSwgMHg5MCwgMHhmOSwKLTB4NmEsIDB4MTIsIDB4MWIsIDB4ZWEsIDB4OTAsIDB4MDAsIDB4MDQsIDB4MDIsIDB4MWEsIDB4YmIsIDB4NzgsIDB4N2UsIDB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsCi0weGZmLCAweDIyLCAweGVkLCAweDEyLCAweDFhLCAweGZhLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDgyLCAweDIyLCAweGVmLCAweGYwLCAweDkwLAotMHhmYSwgMHhjZSwgMHhlMCwgMHg1NCwgMHgwZiwgMHg0ZSwgMHhmZSwgMHhmMCwgMHhlZiwgMHg1NCwgMHhmMCwgMHg0ZSwgMHhmMCwgMHgyMiwgMHg3OCwgMHg4MCwKLTB4ZTYsIDB4ZmMsIDB4MDgsIDB4ZTYsIDB4OGMsIDB4ODMsIDB4MjIsIDB4NzgsIDB4N2UsIDB4ZTYsIDB4ZmMsIDB4MDgsIDB4ZTYsIDB4ZmQsIDB4OGMsIDB4ODMsCi0weDIyLCAweGE2LCAweDA3LCAweGU2LCAweDI0LCAweDZlLCAweGY4LCAweGU2LCAweDIyLCAweDc4LCAweDdlLCAweGU2LCAweGZhLCAweDA4LCAweGU2LCAweGZiLAotMHgyMiwgMHgwOCwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHg4ZSwgMHg4MywgMHgyMiwgMHgyNiwgMHhmNiwgMHgxOCwgMHhlZSwgMHgzNiwgMHhmNiwgMHgyMiwKLTB4ZWYsIDB4MjQsIDB4MGIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTUsIDB4ODIsCi0weDIyLCAweDhiLCAweDI1LCAweDhhLCAweDI2LCAweDg5LCAweDI3LCAweDhkLCAweDI4LCAweDkwLCAweGZhLCAweGQyLCAweGU0LCAweGYwLCAweGEzLCAweDc0LAotMHgwMiwgMHhmMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHhmYSwgMHg3OSwgMHhkMSwgMHg5MCwgMHhmYSwgMHhkMiwgMHhlMCwgMHhmNSwgMHgyZCwgMHhhMywgMHhlMCwKLTB4ZjUsIDB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjYsIDB4OTgsIDB4OTAsIDB4ZmEsIDB4ZDEsIDB4ZTAsIDB4NjUsIDB4MjgsIDB4NjAsIDB4NDYsIDB4YTMsCi0weGUwLCAweGZmLCAweGEzLCAweGUwLCAweGEzLCAweGNmLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDEyLCAweDIzLCAweGYwLCAweDkwLCAweGZhLCAweGQxLAotMHhlMCwgMHhmZiwgMHg5MCwgMHhmYSwgMHhkNCwgMHhlNCwgMHg4ZiwgMHhmMCwgMHgxMiwgMHgxYiwgMHgxYywgMHgxMiwgMHgyMywgMHhmMCwgMHg5MCwgMHhmYSwKLTB4ZDQsIDB4ZTAsIDB4ZmYsIDB4YTMsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4ZDIsIDB4Y2YsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4ZDEsCi0weGUwLCAweGEzLCAweDc1LCAweGYwLCAweDAwLCAweDEyLCAweDFiLCAweDFjLCAweDkwLCAweGZhLCAweGQyLCAweGU0LCAweDc1LCAweGYwLCAweDA0LCAweDEyLAotMHgxYiwgMHgxYywgMHgwMiwgMHgyMywgMHg3MiwgMHg5MCwgMHhmYSwgMHhkMywgMHhlMCwgMHgyNCwgMHgwMSwgMHhmZiwgMHg5MCwgMHhmYSwgMHhkMiwgMHhlMCwKLTB4MzQsIDB4MDAsIDB4YWIsIDB4MjUsIDB4YWEsIDB4MjYsIDB4YTksIDB4MjcsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWIsIDB4ODAsIDB4N2YsIDB4MDAsIDB4MjIsCi0weDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGQxLCAweDkwLCAweGZhLCAweGQyLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweDFiLCAweDFjLAotMHg4NSwgMHhmMCwgMHgyZSwgMHhmNSwgMHgyZCwgMHg3ZCwgMHgwMSwgMHgwMiwgMHgyNiwgMHg5OCwgMHg4ZiwgMHg2MiwgMHgxMiwgMHgyYSwgMHhjNywgMHgxMiwKLTB4MjIsIDB4ZmEsIDB4OGUsIDB4ODMsIDB4MjQsIDB4MGIsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4NDQsIDB4MDIsIDB4ZjAsCi0weDA4LCAweDEyLCAweDIyLCAweGRjLCAweGUwLCAweGEzLCAweDMwLCAweGU1LCAweDBjLCAweDEyLCAweDIzLCAweDA2LCAweDI0LCAweDBiLCAweDEyLCAweDIyLAotMHhhMSwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3OCwgMHg3YywgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmZiwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywKLTB4ZTAsIDB4NTQsIDB4YjgsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4NjIsIDB4MjQsIDB4ZmUsIDB4NDQsIDB4MjAsIDB4ZmMsIDB4NGQsIDB4ZjAsIDB4ZTUsIDB4ODIsCi0weDI0LCAweDA0LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweDU0LCAweGI4LCAweGYwLCAweDRjLCAweGYwLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLAotMHg3NCwgMHgwMywgMHhmMCwgMHgxOCwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmZiwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwNSwgMHgxMiwgMHgyMiwgMHhhMSwKLTB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZTAsIDB4ZmQsIDB4NzQsIDB4OTksIDB4MjUsIDB4NjIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmEsIDB4ZjUsCi0weDgzLCAweGUwLCAweDU0LCAweGZjLCAweDQ0LCAweDAzLCAweGZjLCAweGVkLCAweDRjLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGYwLCAweDhmLCAweDgyLAotMHg4ZSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNCwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHg0NCwgMHg4MCwKLTB4ZjAsIDB4MTIsIDB4MzIsIDB4ODQsIDB4NzQsIDB4NmUsIDB4MjUsIDB4NjIsIDB4ZjgsIDB4NzQsIDB4MDQsIDB4NDYsIDB4ZjYsIDB4N2YsIDB4MDAsIDB4MjIsCi0weDEyLCAweDEwLCAweDRiLCAweDdmLCAweDAyLCAweDEyLCAweDEyLCAweDYxLCAweDc4LCAweDY3LCAweGU2LCAweDQ0LCAweDAyLCAweGY2LCAweGQyLCAweGIwLAotMHhkMiwgMHhiMSwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgwNywgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlNCwgMHhmMCwgMHg4MCwgMHgzNiwKLTB4ZDIsIDB4YjMsIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4N2UsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4OTAsIDB4ZmEsCi0weDdmLCAweGYwLCAweDkwLCAweGZmLCAweGEyLCAweGUwLCAweDkwLCAweGZhLCAweDdjLCAweGYwLCAweDkwLCAweGZmLCAweGIyLCAweGUwLCAweDkwLCAweGZhLAotMHg3ZCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhhNCwgMHg3NCwgMHgzMCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhiNCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhhMiwgMHg3NCwKLTB4NDAsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4ZTcsIDB4ZTUsIDB4YTgsIDB4ZjAsIDB4NzUsIDB4YTgsIDB4ODEsIDB4OTAsCi0weGZmLCAweDkyLCAweGUwLCAweDYwLCAweDA0LCAweGU0LCAweGYwLCAweDgwLCAweGY2LCAweDkwLCAweGZmLCAweGZkLCAweDc0LCAweDNhLCAweGYwLCAweDQzLAotMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHg5MCwgMHhmYSwgMHg3ZSwgMHhlMCwgMHg5MCwgMHhmZiwgMHhhNCwgMHhmMCwgMHg5MCwgMHhmYSwgMHg3ZiwKLTB4ZTAsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4N2MsIDB4ZTAsIDB4OTAsIDB4ZmYsIDB4YTIsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4N2QsCi0weGUwLCAweDkwLCAweGZmLCAweGIyLCAweGYwLCAweDkwLCAweGY5LCAweDE4LCAweGUwLCAweDYwLCAweDAyLCAweGMyLCAweGIzLCAweDkwLCAweGZhLCAweGU3LAotMHhlMCwgMHhmNSwgMHhhOCwgMHgwMiwgMHgxMCwgMHhjZSwgMHg4YiwgMHg1YywgMHg4YSwgMHg1ZCwgMHg4OSwgMHg1ZSwgMHgxMiwgMHgyZSwgMHgwZCwgMHg5MCwKLTB4ZmEsIDB4YzMsIDB4MTIsIDB4MWIsIDB4ZjMsIDB4YWEsIDB4NWQsIDB4YTksIDB4NWUsIDB4OTAsIDB4ZmEsIDB4YzYsIDB4MTIsIDB4MWIsIDB4ZjMsIDB4OTAsCi0weGZhLCAweGM3LCAweGU0LCAweDc1LCAweGYwLCAweDBhLCAweDEyLCAweDFiLCAweDFjLCAweDkwLCAweGZhLCAweGM2LCAweDEyLCAweDFiLCAweGVhLCAweGU5LAotMHgyNCwgMHgwMSwgMHhmOSwgMHhlNCwgMHgzYSwgMHhmYSwgMHg5MCwgMHhmYSwgMHhjOSwgMHgxMiwgMHgxYiwgMHhmMywgMHhhYiwgMHg1YywgMHhhYSwgMHg1ZCwKLTB4YTksIDB4NWUsIDB4MTIsIDB4MmUsIDB4MTksIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4MTMsIDB4ZjAsIDB4ZTQsIDB4NzgsIDB4ODIsIDB4ZjYsIDB4OTAsIDB4ZmEsCi0weGMxLCAweGUwLCAweGZmLCAweDc4LCAweDgyLCAweGU2LCAweGMzLCAweDlmLCAweDUwLCAweDRhLCAweDkwLCAweGZhLCAweGMzLCAweDEyLCAweDJkLCAweGVlLAotMHhmZiwgMHg3OCwgMHg4MywgMHhmNiwgMHg5MCwgMHhmYSwgMHhjNiwgMHgxMiwgMHgyZCwgMHhlZSwgMHhmZSwgMHhmNCwgMHg1ZiwgMHhmZiwgMHg3OCwgMHg4MywKLTB4ZjYsIDB4MTIsIDB4MmQsIDB4ZWIsIDB4NWUsIDB4NGYsIDB4ZmYsIDB4NzgsIDB4ODMsIDB4ZjYsIDB4MTIsIDB4MmQsIDB4ZjQsIDB4NzUsIDB4ZjAsIDB4MDIsCi0weDEyLCAweDFiLCAweDFjLCAweDkwLCAweGZhLCAweGM3LCAweGU0LCAweDc1LCAweGYwLCAweDAyLCAweDEyLCAweDFiLCAweDFjLCAweGFiLCAweDVjLCAweGFhLAotMHg1ZCwgMHhhOSwgMHg1ZSwgMHg5MCwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxYSwgMHhiYiwgMHgzMCwgMHhlNCwgMHgwMywgMHgxMiwgMHgyZSwgMHgwMywgMHg3OCwKLTB4ODIsIDB4MDYsIDB4ODAsIDB4YWEsIDB4ZTQsIDB4OTAsIDB4ZmEsIDB4YzIsIDB4ZjAsIDB4MjIsIDB4OGIsIDB4NTYsIDB4OGEsIDB4NTcsIDB4ODksIDB4NTgsCi0weDkwLCAweGZhLCAweGMyLCAweDc0LCAweDA2LCAweGYwLCAweGU0LCAweDkwLCAweGZhLCAweGMxLCAweGYwLCAweDEyLCAweDFhLCAweGEyLCAweDI0LCAweDZlLAotMHg2MCwgMHgyNiwgMHgxNCwgMHg3MCwgMHg3MCwgMHgxMiwgMHgyZCwgMHhkYSwgMHg2MCwgMHgwOSwgMHgyNCwgMHgzMCwgMHg3MCwgMHgxMiwgMHgxMiwgMHgyNSwKLTB4NTYsIDB4ODAsIDB4NjIsIDB4MTIsIDB4MmUsIDB4MjQsIDB4MTIsIDB4MWYsIDB4ZGEsIDB4OTAsIDB4ZmEsIDB4YzIsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4NTUsCi0weDkwLCAweGZhLCAweGMyLCAweDc0LCAweDgxLCAweGYwLCAweDgwLCAweDRkLCAweDEyLCAweDJkLCAweGRhLCAweDYwLCAweDA5LCAweDI0LCAweDMwLCAweDcwLAotMHgzZSwgMHgxMiwgMHgyZCwgMHgzMCwgMHg4MCwgMHgzZiwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwMywgMHhmOSwgMHhlNCwgMHgzNSwgMHg1NywgMHhmYSwgMHg3YiwKLTB4MDEsIDB4YzAsIDB4MDMsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDEsIDB4MTIsIDB4MmUsIDB4MjQsIDB4OTAsIDB4MDAsIDB4MDUsIDB4MTIsIDB4MWEsIDB4YmIsCi0weGZkLCAweDkwLCAweDAwLCAweDA4LCAweDEyLCAweDFiLCAweDQ4LCAweGY1LCAweDJlLCAweDg1LCAweGYwLCAweDJkLCAweGQwLCAweDAxLCAweGQwLCAweDAyLAotMHhkMCwgMHgwMywgMHgxMiwgMHgyNiwgMHg5OCwgMHg5MCwgMHhmYSwgMHhjMSwgMHhlZiwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg4MCwgMHgwNiwgMHg5MCwKLTB4ZmEsIDB4YzIsIDB4NzQsIDB4ODEsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YzIsIDB4ZTAsIDB4MTIsIDB4MmUsIDB4MjQsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsCi0weDFhLCAweGZhLCAweDkwLCAweGZhLCAweGMxLCAweGUwLCAweGZmLCAweDIyLCAweDhiLCAweDI5LCAweDhhLCAweDJhLCAweDg5LCAweDJiLCAweDhkLCAweDJjLAotMHhlNSwgMHgyYywgMHg3MCwgMHgwMywgMHhhZiwgMHgyYywgMHgyMiwgMHgxMiwgMHgyZSwgMHg1MywgMHg3MCwgMHgxNiwgMHgxMiwgMHgyZSwgMHg3MiwgMHhlNSwKLTB4MmQsIDB4OTAsIDB4ZmYsIDB4ZjEsIDB4ZjAsIDB4MTIsIDB4MzEsIDB4ZDgsIDB4NTAsIDB4ZjIsIDB4MTIsIDB4MjcsIDB4MjUsIDB4NDAsIDB4MGIsIDB4N2YsCi0weDAwLCAweDIyLCAweDEyLCAweDJlLCAweDcyLCAweDEyLCAweDI3LCAweDI1LCAweDUwLCAweGY4LCAweDkwLCAweGZmLCAweGYzLCAweDc0LCAweGExLCAweGYwLAotMHhlNSwgMHgyYywgMHhiNCwgMHgwMSwgMHgwNywgMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHhmZiwgMHhmMSwgMHhlNCwKLTB4ZjAsIDB4ZjUsIDB4MmYsIDB4ZTUsIDB4MmMsIDB4MTQsIDB4ZmYsIDB4ZTUsIDB4MmYsIDB4YzMsIDB4OWYsIDB4NTAsIDB4MmEsIDB4MTIsIDB4MzEsIDB4YzEsCi0weDQwLCAweDAzLCAweGFmLCAweDJmLCAweDIyLCAweGMzLCAweGU1LCAweDJjLCAweDk1LCAweDJmLCAweGZmLCAweGJmLCAweDAyLCAweDA3LCAweDkwLCAweGZmLAotMHhmMCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgxMiwgMHgyZSwgMHg2NSwgMHgwNSwgMHgyZiwgMHg3NCwgMHgwMSwgMHgyNSwgMHgyYiwgMHhmNSwgMHgyYiwKLTB4ZTQsIDB4MzUsIDB4MmEsIDB4ZjUsIDB4MmEsIDB4ODAsIDB4Y2MsIDB4MTIsIDB4MzEsIDB4YzEsIDB4NDAsIDB4MDMsIDB4N2YsIDB4MTgsIDB4MjIsIDB4MTIsCi0weDJlLCAweDY1LCAweGFmLCAweDJjLCAweDIyLCAweDkwLCAweGZmLCAweGYxLCAweGU1LCAweDJlLCAweGYwLCAweDAyLCAweDMxLCAweGQ4LCAweDEyLCAweDEwLAotMHg0YiwgMHg3OCwgMHg4NCwgMHgxMiwgMHgyMywgMHgzMSwgMHgzMCwgMHhlMSwgMHgwOCwgMHg3ZiwgMHgxMywgMHgxMiwgMHgzMSwgMHhhOSwgMHgwMiwgMHgyNywKLTB4YmMsIDB4NzgsIDB4ODQsIDB4ZTYsIDB4ZjksIDB4MjQsIDB4MTMsIDB4MTIsIDB4MjIsIDB4YWQsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4NDAsIDB4NTQsCi0weDAzLCAweDYwLCAweDFlLCAweGU5LCAweGI0LCAweDAzLCAweDBkLCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGUwLCAweDQ0LAotMHgwNCwgMHhmMCwgMHg4MCwgMHg0NiwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHg4MCwKLTB4MzksIDB4ZTksIDB4YjQsIDB4MDMsIDB4MGQsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCi0weDgwLCAweDI4LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDgwLCAweDFiLCAweGVmLAotMHg1NCwgMHgwMywgMHg2MCwgMHgxNCwgMHhlOSwgMHhiNCwgMHgwMywgMHgwOSwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHg4MCwKLTB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4YzIsIDB4YjMsIDB4OTAsIDB4ZjksIDB4MTgsIDB4ZTAsIDB4MDQsIDB4ZjAsCi0weGFmLCAweDAxLCAweDEyLCAweDIyLCAweGVlLCAweGZkLCAweDEyLCAweDJmLCAweGU1LCAweDEyLCAweDMxLCAweGE5LCAweDAyLCAweDEwLCAweGNlLCAweDc1LAotMHhhOCwgMHg0MCwgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHg4YiwgMHgwMiwgMHgyOCwgMHgwOSwgMHgwMiwgMHgzMSwKLTB4OGMsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsCi0weGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LAotMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwKLTB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MmIsIDB4YTksIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsCi0weDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLAotMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwKLTB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsCi0weGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGU0LCAweGY1LAotMHgyMiwgMHgxMiwgMHgxZCwgMHhjMiwgMHhlMCwgMHhiNCwgMHgwNCwgMHgwZCwgMHhlNSwgMHgyMiwgMHgyNCwgMHgwMywgMHhmZiwgMHgxMiwgMHgzMCwgMHgxMywKLTB4MTIsIDB4MWQsIDB4YzIsIDB4ZTQsIDB4ZjAsIDB4MDUsIDB4MjIsIDB4ZTUsIDB4MjIsIDB4YzMsIDB4OTQsIDB4MDIsIDB4NDAsIDB4ZTMsIDB4ZTQsIDB4ZjUsCi0weDIyLCAweDc1LCAweGYwLCAweDAyLCAweGU1LCAweDIyLCAweDkwLCAweGZhLCAweDk0LCAweDEyLCAweDFlLCAweDAzLCAweDYwLCAweDJjLCAweDEyLCAweDJkLAotMHg4NSwgMHhlZiwgMHg2MCwgMHg1MiwgMHg3NSwgMHhmMCwgMHgwMiwgMHhlNSwgMHgyMiwgMHg5MCwgMHhmYSwgMHg5NCwgMHgxMiwgMHgxYiwgMHhjYywgMHhlNCwKLTB4ZjAsIDB4YTMsIDB4ZjAsIDB4NzUsIDB4ZjAsIDB4MGEsIDB4ZTUsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YTAsIDB4MTIsIDB4MWIsIDB4Y2MsIDB4ZTAsIDB4YTMsCi0weDMwLCAweGU2LCAweDMzLCAweDEyLCAweDFkLCAweGMyLCAweDc0LCAweDA0LCAweGYwLCAweDIyLCAweDc1LCAweGYwLCAweDAyLCAweGU1LCAweDIyLCAweDkwLAotMHhmYSwgMHg5OCwgMHgxMiwgMHgxZSwgMHgwMywgMHg2MCwgMHgxNiwgMHgxMiwgMHgyZCwgMHg4NSwgMHhlZiwgMHg2MCwgMHgxOSwgMHg3NSwgMHhmMCwgMHgwMiwKLTB4ZTUsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4OTgsIDB4MTIsIDB4MWIsIDB4Y2MsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4MjIsIDB4MDUsIDB4MjIsIDB4ZTUsCi0weDIyLCAweGMzLCAweDk0LCAweDAyLCAweDQwLCAweDliLCAweDIyLCAweGU0LCAweGZmLCAweDkwLCAweGZmLCAweDgzLCAweGUwLCAweDU0LCAweDBmLCAweGZlLAotMHhlZiwgMHhjMywgMHg5ZSwgMHg1MCwgMHgxNywgMHg3NCwgMHhmMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZSwgMHhmNSwgMHg4MywgMHhlMCwKLTB4MTIsIDB4MWMsIDB4YzEsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4MGYsIDB4MTIsIDB4MWMsIDB4YjAsIDB4ODAsIDB4ZGQsIDB4ZWYsIDB4ZmQsIDB4YzMsIDB4ZTUsCi0weDNhLCAweDlkLCAweGY1LCAweDNhLCAweGU1LCAweDM5LCAweDk0LCAweDAwLCAweGY1LCAweDM5LCAweGQzLCAweGU1LCAweDNhLCAweDk0LCAweDAwLCAweGU1LAotMHgzOSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNiwgMHhlNCwgMHg5MCwgMHhmZiwgMHg4MywgMHhmMCwgMHgyMiwgMHgxMiwgMHgxZCwgMHhkZiwgMHgxMiwgMHgxZSwKLTB4MzQsIDB4MTIsIDB4MWUsIDB4MjYsIDB4MTIsIDB4MWEsIDB4YTIsIDB4MjQsIDB4NmUsIDB4NjAsIDB4MWUsIDB4MTQsIDB4NjAsIDB4MWIsIDB4MjQsIDB4OGUsCi0weDcwLCAweDJkLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDFhLCAweGJiLCAweGZmLCAweDI0LCAweGZjLCAweDYwLCAweDAzLCAweDA0LCAweDcwLCAweDFmLAotMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgMHg3ZiwgMHgwZCwgMHgwMiwgMHgxMSwgMHg1ZSwgMHgxMiwgMHgxZSwgMHgzYiwgMHgxMiwgMHgyNSwgMHhmYSwgMHgxMiwKLTB4MWQsIDB4ODksIDB4MTIsIDB4MWEsIDB4YmIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MzIsIDB4N2EsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MzIsIDB4NmUsIDB4MjIsCi0weDhiLCAweDQ1LCAweDhhLCAweDQ2LCAweDg5LCAweDQ3LCAweDhjLCAweDQ4LCAweDhkLCAweDQ5LCAweGQyLCAweDAwLCAweDEyLCAweDJlLCAweDUzLCAweDcwLAotMHgxNiwgMHgxMiwgMHgyZSwgMHg3MiwgMHhlNSwgMHg0OCwgMHg5MCwgMHhmZiwgMHhmMSwgMHhmMCwgMHgxMiwgMHgzMSwgMHhkOCwgMHg1MCwgMHhmMiwgMHgxMiwKLTB4MjksIDB4ZDUsIDB4NDAsIDB4MGIsIDB4N2YsIDB4MTgsIDB4MjIsIDB4MTIsIDB4MmUsIDB4NzIsIDB4MTIsIDB4MjksIDB4ZDUsIDB4NTAsIDB4ZjgsIDB4ZTQsCi0weGY1LCAweDRiLCAweGU1LCAweDRhLCAweDE0LCAweGZmLCAweGU1LCAweDRiLCAweGMzLCAweDlmLCAweDUwLCAweDE3LCAweDEyLCAweDI5LCAweGM1LCAweDQwLAotMHgwMywgMHg3ZiwgMHgxOCwgMHgyMiwgMHgwNSwgMHg0YiwgMHg3NCwgMHgwMSwgMHgyNSwgMHg0NywgMHhmNSwgMHg0NywgMHhlNCwgMHgzNSwgMHg0NiwgMHhmNSwKLTB4NDYsIDB4ODAsIDB4ZGYsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MTIsIDB4MjksIDB4YzUsIDB4NDAsIDB4MDMsIDB4N2YsCi0weDE4LCAweDIyLCAweDdmLCAweDAwLCAweDIyLCAweGFiLCAweDQ1LCAweGFhLCAweDQ2LCAweGE5LCAweDQ3LCAweDEyLCAweDFhLCAweGEyLCAweDkwLCAweGZmLAotMHhmMSwgMHhmMCwgMHgwMiwgMHgzMSwgMHhkOCwgMHg5MCwgMHhmZiwgMHhmMSwgMHhlNSwgMHg0OSwgMHhmMCwgMHgwMiwgMHgzMSwgMHhkOCwgMHg3YiwgMHgwMSwKLTB4N2EsIDB4ZmEsIDB4NzksIDB4Y2YsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MjMsIDB4NjEsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDksCi0weDEyLCAweDFiLCAweDFjLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDIzLCAweDkwLCAweGZhLCAweGNmLCAweGU0LCAweDc1LCAweGYwLCAweDAxLAotMHgxMiwgMHgxYiwgMHgzMiwgMHg4NSwgMHhmMCwgMHgyZSwgMHhmNSwgMHgyZCwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHg5MCwgMHhmZiwgMHhmNywKLTB4ZTUsIDB4MjMsIDB4MTIsIDB4MmEsIDB4MzksIDB4OTAsIDB4ZmYsIDB4ZjYsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTQsIDB4ZjAsCi0weGEzLCAweDc0LCAweDA2LCAweDEyLCAweDJhLCAweDM5LCAweGU1LCAweDIzLCAweDMwLCAweGUwLCAweDA3LCAweDkwLCAweGZmLCAweGZjLCAweDc0LCAweDk0LAotMHhmMCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmYywgMHg3NCwgMHg5MCwgMHhmMCwgMHgyMiwgMHhmMCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgyMywKLTB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4MWIsIDB4MzIsIDB4ODUsIDB4ZjAsIDB4MmUsIDB4ZjUsIDB4MmQsIDB4N2QsCi0weDAxLCAweDAyLCAweDI2LCAweDk4LCAweDkwLCAweGZmLCAweDkzLCAweDc0LCAweDgxLCAweGYwLCAweDkwLCAweGZmLCAweGZmLCAweGUwLCAweDYwLCAweDA2LAotMHg5MCwgMHhmZiwgMHhmYywgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg5MSwgMHhlMCwgMHg0NCwgMHg5MCwgMHhmMCwgMHhlNCwgMHg5MCwgMHhmOSwKLTB4MTYsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4MTIsIDB4MmIsIDB4MzksIDB4MTIsIDB4MTYsIDB4YzksIDB4MTIsIDB4MzAsIDB4NjksIDB4N2UsIDB4MDcsIDB4N2YsCi0weGQwLCAweDEyLCAweDEyLCAweDJhLCAweDdlLCAweDBmLCAweDdmLCAweGEwLCAweDEyLCAweDEyLCAweDQ0LCAweGU0LCAweDc4LCAweDc3LCAweGY2LCAweDc4LAotMHg3NywgMHhlNiwgMHhmZiwgMHhjMywgMHg5NCwgMHgwNiwgMHg1MCwgMHgwYiwgMHg3NCwgMHg2ZSwgMHgyZiwgMHhmOCwgMHhlNCwgMHhmNiwgMHg3OCwgMHg3NywKLTB4MDYsIDB4ODAsIDB4ZWMsIDB4N2YsIDB4MDMsIDB4MTIsIDB4MzAsIDB4YjIsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4MjAsIDB4ZTQsIDB4MDUsIDB4N2YsCi0weDA0LCAweDEyLCAweDMwLCAweGIyLCAweDkwLCAweGZmLCAweDliLCAweGU0LCAweGYwLCAweDkwLCAweGZmLCAweDlhLCAweGYwLCAweDkwLCAweGZmLCAweGU4LAotMHhlMCwgMHg1NCwgMHgxZiwgMHhmMCwgMHhkMiwgMHhhOCwgMHgyMiwgMHgxNSwgMHg2NSwgMHhhOCwgMHg2NSwgMHhhNiwgMHgwNywgMHgzMCwgMHgwOCwgMHgwNSwKLTB4MTIsIDB4MTEsIDB4YWUsIDB4ODAsIDB4ZjgsIDB4ZDIsIDB4MDgsIDB4YTgsIDB4NjUsIDB4ZTYsIDB4ZmYsIDB4YjQsIDB4MDMsIDB4MGYsIDB4NzgsIDB4N2MsCi0weDc2LCAweGZmLCAweDA4LCAweDc2LCAweGUwLCAweDA4LCAweDc2LCAweGZmLCAweDA4LCAweDc2LCAweGEwLCAweDgwLCAweDBkLCAweDc4LCAweDdjLCAweDc2LAotMHhmZiwgMHgwOCwgMHg3NiwgMHhlMiwgMHgwOCwgMHg3NiwgMHhmZiwgMHgwOCwgMHg3NiwgMHhiMCwgMHg3OCwgMHg4MCwgMHg3NiwgMHhmYSwgMHgwOCwgMHg3NiwKLTB4OWUsIDB4ZWYsIDB4MjQsIDB4ZmQsIDB4NzUsIDB4ZjAsIDB4MGEsIDB4YTQsIDB4YWUsIDB4ZjAsIDB4MTIsIDB4MjMsIDB4NDksIDB4N2IsIDB4MDEsIDB4N2EsCi0weGZmLCAweDc5LCAweDQ4LCAweDc4LCAweDY4LCAweDEyLCAweDFiLCAweGUxLCAweGE4LCAweDY1LCAweGU2LCAweDI0LCAweGZkLCAweDc1LCAweGYwLCAweDA4LAotMHhhNCwgMHhmZiwgMHhhZSwgMHhmMCwgMHg3OCwgMHg2YSwgMHgxMiwgMHgyMywgMHg0OSwgMHg3OSwgMHgwOCwgMHg3OCwgMHg2YiwgMHgxMiwgMHgxYiwgMHhlMSwKLTB4NzgsIDB4NmQsIDB4ZWYsIDB4MTIsIDB4MjMsIDB4NDksIDB4MDUsIDB4NjUsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4NTQsIDB4YWIsIDB4ZjAsCi0weGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDkwLCAweGZhLCAweGU2LCAweDc0LCAweDAyLCAweGYwLCAweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGNmLAotMHhlNCwgMHhmNSwgMHgyZCwgMHhmNSwgMHgyZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHg3ZSwgMHgwMCwgMHg5MCwgMHhmYSwgMHhlNCwgMHhlZSwKLTB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4NjQsIDB4MDEsIDB4NzAsIDB4MTAsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTAsIDB4YjQsIDB4NTIsIDB4MDksIDB4OTAsCi0weGY5LCAweDE2LCAweGUwLCAweDU0LCAweGVmLCAweGYwLCAweDgwLCAweDI5LCAweDkwLCAweGZhLCAweGU0LCAweGUwLCAweDcwLCAweDA0LCAweGEzLCAweGUwLAotMHg2NCwgMHgwMSwgMHg3MCwgMHgxMCwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlMCwgMHhiNCwgMHgxMCwgMHgwOSwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHg0NCwKLTB4MTAsIDB4ZjAsIDB4ODAsIDB4MGQsIDB4OTAsIDB4ZmEsIDB4ZTYsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4ZjksIDB4MTYsIDB4ZTAsIDB4NTQsIDB4ZWYsCi0weGYwLCAweDkwLCAweGZmLCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDIyLCAweDAzLCAweDY4LCAweDAxLCAweGZmLCAweDQ4LCAweDAzLCAweDZiLAotMHgwMSwgMHhmZiwgMHgwOCwgMHgwMiwgMHg2NiwgMHgwMCwgMHgwMCwgMHg0NCwgMHhmYSwgMHg5OCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0NCwgMHhmYSwKLTB4OTQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDIsIDB4ZmEsIDB4YjIsIDB4MDAsIDB4MDAsIDB4NDIsIDB4ZmEsIDB4N2UsIDB4MDAsIDB4MDAsIDB4NDIsCi0weGZhLCAweDdjLCAweDAwLCAweDAwLCAweDQyLCAweGY5LCAweDZkLCAweGZmLCAweGZmLCAweDQyLCAweGZhLCAweDdhLCAweDAwLCAweDAwLCAweDQxLCAweGY5LAotMHg2NiwgMHhmZiwgMHg0MSwgMHhmOSwgMHgxYywgMHgxOSwgMHg0MSwgMHhmOSwgMHgxNSwgMHgwMCwgMHg0MywgMHhmOSwgMHgxOSwgMHgwYSwgMHgzMiwgMHgwMiwKLTB4NDEsIDB4ZjksIDB4NjgsIDB4MjAsIDB4NDEsIDB4ZjksIDB4NjksIDB4MjAsIDB4NDEsIDB4ZjksIDB4NjUsIDB4MDAsIDB4NDEsIDB4ZjksIDB4NjcsIDB4MDAsCi0weDQ0LCAweGY4LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDQyLCAweGY5LCAweDE2LCAweDAwLCAweDAwLCAweDQxLCAweGY5LCAweDE4LCAweDAwLAotMHgwMSwgMHgyMCwgMHgwMCwgMHg0MSwgMHhmOCwgMHgwNCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxMCwgMHg0YiwgMHg3OCwgMHg4YSwgMHhlZiwgMHhmNiwgMHgxMiwKLTB4MmEsIDB4YzcsIDB4MTIsIDB4MjIsIDB4ZWUsIDB4MzAsIDB4ZTAsIDB4MjksIDB4NzgsIDB4N2MsIDB4MTIsIDB4MjIsIDB4YjcsIDB4ZTAsIDB4NTQsIDB4N2YsCi0weGYwLCAweDc4LCAweDZiLCAweDEyLCAweDFiLCAweGQ4LCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweDFhLCAweGJiLCAweDMwLCAweGU3LCAweDA5LCAweDkwLAotMHgwMCwgMHgwMiwgMHhlNCwgMHgxMiwgMHgxYSwgMHhmYSwgMHg4MCwgMHhlOSwgMHg3OCwgMHg3YywgMHgxMiwgMHgyMiwgMHhiNywgMHhlMCwgMHg0NCwgMHg4MCwKLTB4ZjAsIDB4MTIsIDB4MjIsIDB4ZWUsIDB4MzAsIDB4ZTEsIDB4MWUsIDB4MTIsIDB4MjIsIDB4OTcsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4MTIsIDB4MzIsCi0weDE5LCAweDc4LCAweDY4LCAweDEyLCAweDFiLCAweGQ4LCAweDkwLCAweDAwLCAweDAyLCAweDc0LCAweDgwLCAweDEyLCAweDFhLCAweGZhLCAweDEyLCAweDIyLAotMHg5NywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgzMSwgMHhhOSwgMHgwMiwgMHgxMCwgMHhjZSwKLTB4MTIsIDB4MTAsIDB4NGIsIDB4NzgsIDB4ODUsIDB4ZWYsIDB4ZjYsIDB4MTIsIDB4MzEsIDB4NTAsIDB4MTIsIDB4MzEsIDB4YTksIDB4NzgsIDB4ODUsIDB4ZTYsCi0weGZmLCAweDI0LCAweDEzLCAweDEyLCAweDIyLCAweGFkLCAweGUwLCAweGZlLCAweDMwLCAweGU3LCAweDE2LCAweGVmLCAweGI0LCAweDAzLCAweDA5LCAweDkwLAotMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmYSwgMHhmMCwgMHg4MCwgMHgyMiwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmNSwgMHhmMCwgMHg4MCwKLTB4MTksIDB4ZWUsIDB4NTQsIDB4MDMsIDB4NjAsIDB4MTQsIDB4ZWYsIDB4YjQsIDB4MDMsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NDQsIDB4MjAsCi0weGYwLCAweDgwLCAweDA3LCAweDkwLCAweGZmLCAweGI0LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDkwLCAweGY5LCAweDE4LCAweGUwLCAweDE0LCAweGYwLAotMHhlMCwgMHg3MCwgMHgwMiwgMHhkMiwgMHhiMywgMHgwMiwgMHgxMCwgMHhjZSwgMHgxMiwgMHgxZSwgMHgxYywgMHhlNSwgMHgzYSwgMHg2NCwgMHgwOSwgMHg3MCwKLTB4MDQsIDB4ZTUsIDB4MzksIDB4NjQsIDB4MDEsIDB4NjAsIDB4NDgsIDB4YzMsIDB4ZTUsIDB4M2EsIDB4OTQsIDB4MDgsIDB4ZTUsIDB4MzksIDB4OTQsIDB4MDAsCi0weDQwLCAweDExLCAweDdmLCAweDA4LCAweGVmLCAweGU1LCAweDNhLCAweDk0LCAweDA4LCAweGY1LCAweDNhLCAweGU1LCAweDM5LCAweDk0LCAweDAwLCAweGY1LAotMHgzOSwgMHg4MCwgMHgwNSwgMHhhZiwgMHgzYSwgMHgxMiwgMHgxZSwgMHgzNCwgMHhlNCwgMHhmZSwgMHhlZSwgMHhjMywgMHg5ZiwgMHg1MCwgMHgxOSwgMHgxMiwKLTB4MWMsIDB4YzEsIDB4MTIsIDB4MWEsIDB4YTIsIDB4ZmQsIDB4NzQsIDB4ZjgsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmUsIDB4ZjUsIDB4ODMsCi0weGVkLCAweGYwLCAweDBlLCAweDEyLCAweDFjLCAweGIwLCAweDgwLCAweGUyLCAweGVmLCAweDU0LCAweDdmLCAweDkwLCAweGZmLCAweDgxLCAweGYwLCAweDIyLAotMHg4YiwgMHg1OSwgMHg4YSwgMHg1YSwgMHg4OSwgMHg1YiwgMHgxMiwgMHgyZSwgMHgxOSwgMHg3MCwgMHgwNSwgMHhhMywgMHg3NCwgMHgwOCwgMHhmMCwgMHgyMiwKLTB4YWIsIDB4NTksIDB4YWEsIDB4NWEsIDB4YTksIDB4NWIsIDB4MTIsIDB4MmUsIDB4MGQsIDB4OTAsIDB4ZmEsIDB4YzksIDB4MTIsIDB4MWIsIDB4ZjMsIDB4ZTUsCi0weDViLCAweDI0LCAweDAzLCAweGY5LCAweGU0LCAweDM1LCAweDVhLCAweGZhLCAweDkwLCAweGZhLCAweGMzLCAweDEyLCAweDFiLCAweGYzLCAweGU0LCAweDkwLAotMHhmYSwgMHhjMiwgMHhmMCwgMHg3OCwgMHg4YiwgMHhmNiwgMHg5MCwgMHhmYSwgMHhjMSwgMHhlMCwgMHhmZiwgMHg3OCwgMHg4YiwgMHhlNiwgMHhjMywgMHg5ZiwKLTB4NTAsIDB4MTIsIDB4MTIsIDB4MmQsIDB4ZWIsIDB4ZmYsIDB4MTIsIDB4MmQsIDB4ZjQsIDB4MTIsIDB4MmUsIDB4MDcsIDB4NzgsIDB4OGIsIDB4MDYsIDB4MTIsCi0weDJlLCAweDAzLCAweDgwLCAweGUyLCAweDIyLCAweGFkLCAweDA3LCAweGFjLCAweDA2LCAweDkwLCAweDMyLCAweDBhLCAweGU0LCAweDkzLCAweGZmLCAweDc4LAotMHg3NCwgMHhmNiwgMHg1NCwgMHgwZiwgMHgxMiwgMHgxZCwgMHhhOCwgMHhlMCwgMHgwOCwgMHg3NiwgMHgwMCwgMHgwOCwgMHhmNiwgMHgxOCwgMHgxMiwgMHgxYywKLTB4ZDksIDB4YzMsIDB4MzMsIDB4Y2UsIDB4MzMsIDB4Y2UsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4NzgsIDB4NzUsIDB4ZWUsIDB4ZjYsIDB4MDgsIDB4ZWYsIDB4ZjYsCi0weGVlLCAweDQ0LCAweGY4LCAweDE4LCAweGY2LCAweGVmLCAweDA4LCAweGY2LCAweDkwLCAweGZmLCAweDdhLCAweGUwLCAweDIwLCAweGU3LCAweDAzLCAweDdmLAotMHgwMCwgMHgyMiwgMHg3OCwgMHg3NSwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlYywgMHhmMCwgMHhhMywgMHhlZCwKLTB4ZjAsIDB4OTAsIDB4ZmYsIDB4N2EsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4MjIsIDB4YWIsIDB4NTYsIDB4YWEsIDB4NTcsIDB4YTksIDB4NTgsCi0weDkwLCAweDAwLCAweDAzLCAweDEyLCAweDFhLCAweGJiLCAweDU0LCAweGYwLCAweDI0LCAweGEwLCAweDIyLCAweDkwLCAweGZhLCAweGM5LCAweDEyLCAweDFiLAotMHhlYSwgMHgwMiwgMHgxYSwgMHhhMiwgMHg5MCwgMHhmYSwgMHhjMywgMHgxMiwgMHgxYiwgMHhlYSwgMHhlZiwgMHgxMiwgMHgxYSwgMHhlOCwgMHg5MCwgMHhmYSwKLTB4Y2EsIDB4ZTQsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YzQsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MDIsIDB4MWIsIDB4MWMsIDB4OTAsIDB4MDAsIDB4MDgsCi0weDEyLCAweDFiLCAweDQ4LCAweGFhLCAweGYwLCAweGY5LCAweDdiLCAweDAxLCAweDIyLCAweDkwLCAweDAwLCAweDA1LCAweDEyLCAweDFhLCAweGJiLCAweDkwLAotMHhmYSwgMHhjMSwgMHhmMCwgMHgyMiwgMHhhYiwgMHg1NiwgMHhhYSwgMHg1NywgMHhhOSwgMHg1OCwgMHgyMiwgMHg5MCwgMHhmYSwgMHhkZCwgMHhlMCwgMHhmZiwKLTB4N2UsIDB4MDAsIDB4YzMsIDB4OTAsIDB4ZmEsIDB4ZDcsIDB4ZTAsIDB4OWYsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4ZDYsIDB4ZTAsIDB4OWUsIDB4ZjAsIDB4OTAsCi0weGZhLCAweGQ4LCAweGVlLCAweDhmLCAweGYwLCAweDEyLCAweDFiLCAweDFjLCAweGVmLCAweDI1LCAweDUxLCAweGY1LCAweDUxLCAweGVlLCAweDM1LCAweDUwLAotMHhmNSwgMHg1MCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHhmYSwKLTB4ZTYsIDB4ZTAsIDB4NjQsIDB4MDMsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjIsIDB4ZTAsIDB4YWIsIDB4MjksIDB4YWEsIDB4MmEsIDB4YTksIDB4MmIsIDB4MDIsCi0weDFhLCAweGU4LCAweDkwLCAweGZmLCAweGYzLCAweDc0LCAweGEwLCAweGYwLCAweDIyLCAweDhmLCAweDY0LCAweGVkLCAweDcwLCAweDBmLCAweGU1LCAweDY0LAotMHhiNCwgMHgwMywgMHgwNSwgMHg3ZiwgMHgwMSwgMHgwMiwgMHgzMSwgMHhlZiwgMHg3ZiwgMHgwMiwgMHgwMiwgMHgzMSwgMHhlZiwgMHhhZiwgMHg2NCwgMHgxMiwKLTB4MmEsIDB4YzcsIDB4NzQsIDB4NmUsIDB4MjUsIDB4NjQsIDB4ZjgsIDB4ZTYsIDB4MzAsIDB4ZTIsIDB4MGIsIDB4ZDIsIDB4MDksIDB4MTIsIDB4MWQsIDB4MzMsCi0weGUwLCAweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDAyLCAweGMyLCAweDA5LCAweGU1LCAweDY0LCAweGI0LCAweDAzLCAweDA3LCAweDdmLCAweDgxLCAweDEyLAotMHgzMSwgMHhlZiwgMHg4MCwgMHgwNSwgMHg3ZiwgMHg4MiwgMHgxMiwgMHgzMSwgMHhlZiwgMHgzMCwgMHgwOSwgMHgwNywgMHgxMiwgMHgxZCwgMHgzMywgMHhlMCwKLTB4NDQsIDB4ODAsIDB4ZjAsIDB4MTIsIDB4MzIsIDB4ODQsIDB4MjIsIDB4MTIsIDB4MTAsIDB4NGIsIDB4OTAsIDB4ZmYsIDB4ZmQsIDB4ZTAsIDB4NDQsIDB4NjAsCi0weGYwLCAweGQyLCAweDAxLCAweDkwLCAweGZmLCAweGZjLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweGZmLCAweDAwLCAweGUwLCAweDMwLCAweGU3LAotMHgxMywgMHg5MCwgMHhmZiwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHgzNSwgMHg4MCwgMHg5MCwgMHhmZiwgMHhmYywgMHhlMCwgMHg0NCwKLTB4MDEsIDB4ZjAsIDB4ODAsIDB4MGQsIDB4MTIsIDB4MWQsIDB4ZGYsIDB4NTMsIDB4MzUsIDB4N2YsIDB4OTAsIDB4ZmYsIDB4ZmMsIDB4ZTAsIDB4NTQsIDB4ZmUsCi0weGYwLCAweDkwLCAweGZmLCAweDgxLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDEyLCAweDAyLCAweGRlLCAweDEyLCAweDFkLCAweGU3LCAweDAyLCAweDEwLAotMHhjZSwgMHgxMiwgMHgxMCwgMHg0YiwgMHg3OCwgMHg4OSwgMHhlZiwgMHhmNiwgMHhkMiwgMHgwMCwgMHgxMiwgMHgyYSwgMHhjNywgMHg5MCwgMHhmOSwgMHg2YSwKLTB4MTIsIDB4MWIsIDB4ZWEsIDB4ZTksIDB4MjQsIDB4MDMsIDB4ZjksIDB4ZTQsIDB4M2EsIDB4ZmEsIDB4YzAsIDB4MDIsIDB4NzgsIDB4ODAsIDB4ZTYsIDB4ZmUsCi0weDA4LCAweGU2LCAweGFhLCAweDA2LCAweGY4LCAweGFjLCAweDAyLCAweDdkLCAweDAxLCAweGQwLCAweDAyLCAweDEyLCAweDIyLCAweGQzLCAweDEyLCAweDMyLAotMHg4NCwgMHg3OCwgMHg4OSwgMHhlNiwgMHhmZiwgMHgxMiwgMHgxMywgMHg4NywgMHgxMiwgMHgzMSwgMHhhOSwgMHgwMiwgMHgxMCwgMHhjZSwgMHg4ZiwgMHg2MywKLTB4MTIsIDB4MmEsIDB4YzcsIDB4NzgsIDB4N2MsIDB4MTIsIDB4MjIsIDB4YjcsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjAsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDQsCi0weDEyLCAweDIyLCAweGExLCAweGUwLCAweDU0LCAweDNmLCAweGYwLCAweDEyLCAweDIzLCAweDQxLCAweDI0LCAweDBiLCAweDEyLCAweDIyLCAweGExLCAweGUwLAotMHg1NCwgMHhmOCwgMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHg3NCwgMHg2ZSwgMHgyNSwgMHg2MywgMHhmOCwgMHg3NCwgMHhmYiwgMHg1NiwgMHhmNiwgMHg3ZiwKLTB4MDAsIDB4MjIsIDB4MTIsIDB4MTAsIDB4NGIsIDB4MTIsIDB4MmEsIDB4YzcsIDB4MTIsIDB4MjIsIDB4ZmEsIDB4MjQsIDB4MDYsIDB4MTIsIDB4MjIsIDB4OWYsCi0weGUwLCAweGZkLCAweDEyLCAweDIyLCAweGU4LCAweDkwLCAweDAwLCAweDAzLCAweDEyLCAweDIzLCAweDAyLCAweDI0LCAweDA1LCAweDEyLCAweDIyLCAweGExLAotMHhlMCwgMHg5MCwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxYSwgMHhmYSwgMHgxMiwgMHgzMiwgMHg4NCwgMHg3ZCwgMHgwMiwgMHhlNCwgMHhmZiwgMHgxMiwgMHgyZiwKLTB4YjQsIDB4MDIsIDB4MTAsIDB4Y2UsIDB4YWUsIDB4MDUsIDB4MTIsIDB4MWQsIDB4OGUsIDB4ZWYsIDB4MTIsIDB4MWEsIDB4ZmEsIDB4MGUsIDB4MGUsIDB4MGUsCi0weGVlLCAweGQzLCAweDk1LCAweDNjLCAweGU0LCAweDk1LCAweDNiLCAweDQwLCAweDAyLCAweGFlLCAweDNjLCAweGVlLCAweGQzLCAweDk0LCAweDA4LCAweDc0LAotMHg4MCwgMHg5NCwgMHg4MSwgMHg0MCwgMHgwYSwgMHg3ZSwgMHgwMywgMHg5MCwgMHgwMCwgMHgwMiwgMHg3NCwgMHgwMiwgMHgxMiwgMHgxYSwgMHhmYSwgMHhhZiwKLTB4MDYsIDB4MTIsIDB4MzIsIDB4NmUsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZWQsIDB4NTQsIDB4MDMsIDB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4N2YsIDB4MTAsCi0weDIyLCAweGVkLCAweDU0LCAweDdjLCAweGMzLCAweDk0LCAweDA0LCAweDUwLCAweDAzLCAweDdmLCAweDBiLCAweDIyLCAweDc0LCAweDZlLCAweDJlLCAweGY4LAotMHg3NCwgMHgwMiwgMHg0NiwgMHhmNiwgMHg3NCwgMHg5OSwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmYSwgMHhmNSwgMHg4MywgMHhlZCwgMHhmMCwKLTB4N2YsIDB4MDAsIDB4MjIsIDB4YmYsIDB4MDMsIDB4MDYsIDB4N2MsIDB4ZmYsIDB4N2QsIDB4ZTAsIDB4ODAsIDB4MDQsIDB4N2MsIDB4ZmYsIDB4N2QsIDB4ZTIsCi0weDhkLCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDgyLCAweDI0LCAweDA0LCAweDEyLCAweDIyLCAweGExLCAweGUwLAotMHg0NCwgMHg4MCwgMHhmMCwgMHg3NCwgMHg2ZSwgMHgyZiwgMHhmOCwgMHg3NCwgMHgwNCwgMHg0NiwgMHhmNiwgMHg3ZiwgMHgwMCwgMHgyMiwgMHgxMiwgMHgxMCwKLTB4NGIsIDB4ZTUsIDB4M2EsIDB4NjQsIDB4MDksIDB4NzAsIDB4MDQsIDB4ZTUsIDB4MzksIDB4NjQsIDB4MDEsIDB4NjAsIDB4MTYsIDB4OTAsIDB4ZmYsIDB4ODMsCi0weGUwLCAweDU0LCAweDBmLCAweGZmLCAweGMzLCAweGU1LCAweDNhLCAweDlmLCAweGU1LCAweDM5LCAweDk0LCAweDAwLCAweDQwLCAweDA1LCAweDEyLCAweDI4LAotMHhkNywgMHg4MCwgMHgwMywgMHgxMiwgMHgzMiwgMHg3YSwgMHgwMiwgMHgxMCwgMHhjZSwgMHg5MCwgMHhmZiwgMHhmYywgMHhlMCwgMHgyMCwgMHhlNywgMHgxZiwKLTB4YzIsIDB4YWYsIDB4N2QsIDB4ZmYsIDB4YWMsIDB4MDUsIDB4MWQsIDB4ZWMsIDB4NjAsIDB4MTUsIDB4N2UsIDB4MDQsIDB4N2YsIDB4MDAsIDB4ZWYsIDB4MWYsCi0weGFhLCAweDA2LCAweDcwLCAweDAxLCAweDFlLCAweDRhLCAweDYwLCAweGVjLCAweDkwLCAweGZmLCAweDkyLCAweGU0LCAweGYwLCAweDgwLCAweGVmLCAweDIyLAotMHgxMiwgMHgxMCwgMHg0YiwgMHg3OCwgMHg2NiwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmZiwgMHgzMCwgMHhlMCwgMHgxMiwgMHgzMCwgMHhlMSwgMHgwZiwKLTB4OTAsIDB4ZmYsIDB4ZmMsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4N2YsIDB4MDQsIDB4MTIsIDB4MTIsIDB4NjEsIDB4MTIsIDB4MWQsIDB4ZjYsIDB4MDIsCi0weDEwLCAweGNlLCAweDhmLCAweDIzLCAweGMyLCAweDA4LCAweDEyLCAweDJhLCAweGM3LCAweDEyLCAweDIyLCAweGMwLCAweDc4LCAweDdlLCAweDEyLCAweDIzLAotMHg0MiwgMHgyNCwgMHgwYiwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHg1NCwgMHhmOCwgMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHhhZiwgMHgyMywgMHgxMiwKLTB4MTMsIDB4ODcsIDB4MjIsIDB4OGUsIDB4NWYsIDB4OGYsIDB4NjAsIDB4ZTUsIDB4NjAsIDB4MTUsIDB4NjAsIDB4YWUsIDB4NWYsIDB4NzAsIDB4MDIsIDB4MTUsCi0weDVmLCAweGQzLCAweDk0LCAweDAwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA5LCAweDdlLCAweDA3LCAweDdmLCAweGQwLCAweDEyLCAweDEwLCAweDI0LAotMHg4MCwgMHhlNSwgMHgyMiwgMHgxMSwgMHhkYywgMHgyZSwgMHhjNywgMHgyNCwgMHhiMCwgMHgzMiwgMHg2MCwgMHgzMCwgMHg5MCwgMHgzMCwgMHgzZSwgMHgzMSwKLTB4NmYsIDB4MmYsIDB4ODIsIDB4MjcsIDB4MmUsIDB4MmMsIDB4ODAsIDB4MzEsIDB4MTIsIDB4MzEsIDB4MzEsIDB4MWUsIDB4NjQsIDB4MmYsIDB4MTEsIDB4MmMsCi0weDE4LCAweDBlLCAweDEyLCAweDEwLCAweDRiLCAweDc4LCAweDg2LCAweDEyLCAweDIzLCAweDMxLCAweDIwLCAweGUxLCAweDA3LCAweDdmLCAweDEyLCAweDEyLAotMHgzMSwgMHhhOSwgMHg4MCwgMHgwYSwgMHg3OCwgMHg4NiwgMHhlNiwgMHhmZiwgMHgxMiwgMHgyNCwgMHgwYSwgMHgxMiwgMHgzMSwgMHhhOSwgMHgwMiwgMHgxMCwKLTB4Y2UsIDB4MTIsIDB4MTAsIDB4NGIsIDB4NzgsIDB4ODcsIDB4MTIsIDB4MjMsIDB4MzEsIDB4MjAsIDB4ZTIsIDB4MDcsIDB4N2YsIDB4MTEsIDB4MTIsIDB4MzEsCi0weGE5LCAweDgwLCAweDBhLCAweDc4LCAweDg3LCAweGU2LCAweGZmLCAweDEyLCAweDJmLCAweDRlLCAweDEyLCAweDMxLCAweGE5LCAweDAyLCAweDEwLCAweGNlLAotMHg4ZiwgMHg2MSwgMHgxMiwgMHgyZiwgMHg0ZSwgMHhhZiwgMHg2MSwgMHgxMiwgMHgyYSwgMHhjNywgMHgxMiwgMHgyMiwgMHhjMCwgMHgxMiwgMHgzMiwgMHg4NCwKLTB4NzQsIDB4NmUsIDB4MjUsIDB4NjEsIDB4ZjgsIDB4NzQsIDB4ZmQsIDB4NTYsIDB4ZjYsIDB4YWYsIDB4NjEsIDB4MTIsIDB4MTMsIDB4ODcsIDB4MjIsIDB4MTIsCi0weDEwLCAweDRiLCAweGU1LCAweDNhLCAweDY0LCAweDA5LCAweDcwLCAweDA0LCAweGU1LCAweDM5LCAweDY0LCAweDAxLCAweDYwLCAweDA1LCAweDEyLCAweDJjLAotMHhkOCwgMHg4MCwgMHgwNiwgMHgxMiwgMHgxZSwgMHgxNCwgMHgxMiwgMHgxZSwgMHgxYywgMHgwMiwgMHgxMCwgMHhjZSwgMHgxMiwgMHgyYSwgMHg1NCwgMHgxMiwKLTB4MTMsIDB4MDMsIDB4OTAsIDB4ZjgsIDB4MDQsIDB4ZTAsIDB4ZmYsIDB4NjAsIDB4MDUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MTIsIDB4YTAsIDB4MTIsIDB4MjksCi0weGRlLCAweDEyLCAweDEzLCAweDNmLCAweDEyLCAweDExLCAweGJjLCAweDgwLCAweGUzLCAweDEyLCAweDFkLCAweDhlLCAweGVmLCAweDEyLCAweDFhLCAweGZhLAotMHhlNCwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNCwgMHhlZiwgMHg2MCwgMHgwMywgMHgwMiwgMHgzMiwgMHg3YSwgMHhlNCwgMHhmZiwgMHgxMiwgMHgzMiwgMHg2ZSwKLTB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4ZmYsIDB4NTQsIDB4YTAsIDB4NjAsIDB4ZjcsIDB4ZWYsIDB4MzAsIDB4ZTUsIDB4MDgsIDB4OTAsIDB4ZmYsCi0weGYwLCAweDQ0LCAweDIwLCAweGYwLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAweDkwLCAweGZmLCAweGYwLCAweGUwLCAweGZmLCAweDU0LCAweDI4LCAweDYwLAotMHhmNywgMHhlZiwgMHgzMCwgMHhlNSwgMHgwOCwgMHg5MCwgMHhmZiwgMHhmMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHhjMywgMHgyMiwgMHhkMywgMHgyMiwgMHhlZiwKLTB4MzAsIDB4ZTcsIDB4MDgsIDB4MTIsIDB4MWQsIDB4NDUsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4MjIsIDB4ZWYsIDB4MTIsIDB4MWQsIDB4OTgsIDB4ZTAsCi0weDU0LCAweGRmLCAweGYwLCAweDIyLCAweDgxLCAweDAxLCAweDgyLCAweDAyLCAweDgzLCAweDAzLCAweDg3LCAweDQwLCAweDAwLCAweDQwLCAweDAwLCAweDQwLAotMHgwMCwgMHg0MCwgMHgwMCwgMHg0MCwgMHgwMCwgMHg0MCwgMHgwMCwgMHgwOCwgMHgwMCwgMHg3OCwgMHg3ZSwgMHgxMiwgMHgyMiwgMHhiNywgMHhhMywgMHhhMywKLTB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4MDYsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4MjIsIDB4ODUsIDB4M2IsIDB4MzksIDB4ODUsCi0weDNjLCAweDNhLCAweDkwLCAweGZmLCAweDgyLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGEzLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDIyLCAweGU0LAotMHhmZSwgMHhlZSwgMHg5MCwgMHgzMiwgMHgwNCwgMHg5MywgMHhiNSwgMHgwNywgMHgwMiwgMHhkMywgMHgyMiwgMHgwZSwgMHhiZSwgMHgwNywgMHhmMiwgMHhjMywKLTB4MjIsIDB4MDAsIDB4MDgsIDB4MTgsIDB4MjgsIDB4MzgsIDB4MDEsIDB4ODEsIDB4OTAsIDB4MGEsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MTEsIDB4MTMsIDB4MDAsCi0weDEyLCAweDEwLCAweDRiLCAweDdmLCAweDAyLCAweDEyLCAweDEwLCAweGRhLCAweDEyLCAweDFkLCAweGY2LCAweDAyLCAweDEwLCAweGNlLCAweDc1LCAweDM5LAotMHgwMCwgMHg4ZiwgMHgzYSwgMHgxMiwgMHgxYywgMHhlMCwgMHgxMiwgMHgyYywgMHhkOCwgMHgyMiwgMHgxMiwgMHgxZSwgMHgxYywgMHgxMiwgMHgxZCwgMHhkZiwKLTB4MTIsIDB4MWUsIDB4MTQsIDB4MjIsIDB4YzIsIDB4MDgsIDB4MjIsCi19OwotCi0jdW5kZWYgSU1BR0VfVkVSU0lPTl9OQU1FCi0KLSN1bmRlZiBJTUFHRV9BUlJBWV9OQU1FCi0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb190aS5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMKaW5kZXggMDVlNGZhNy4uNjFkYWVhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9zZXJpYWwuaD4KQEAgLTUyLDEzICs1Myw2IEBACiAjZGVmaW5lIERSSVZFUl9BVVRIT1IgIkdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+IGFuZCBEYXZpZCBJYWNvdmVsbGkiCiAjZGVmaW5lIERSSVZFUl9ERVNDICJFZGdlcG9ydCBVU0IgU2VyaWFsIERyaXZlciIKIAotCi0vKiBmaXJtd2FyZSBpbWFnZSBjb2RlICovCi0jZGVmaW5lIElNQUdFX1ZFUlNJT05fTkFNRQlQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uCi0jZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlCi0jZGVmaW5lIElNQUdFX1NJWkUJCVBhZ2FibGVPcGVyYXRpb25hbENvZGVTaXplCi0jaW5jbHVkZSAiaW9fZndfZG93bjMuaCIJLyogRGVmaW5lIGFycmF5IE9wZXJhdGlvbmFsQ29kZUltYWdlW10gKi8KLQogI2RlZmluZSBFUFJPTV9QQUdFX1NJWkUJCTY0CiAKIApAQCAtMjMxLDcgKzIyNSw5IEBACiB9OwogCiAKLXN0YXRpYyBzdHJ1Y3QgRURHRV9GSVJNV0FSRV9WRVJTSU9OX0lORk8gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uOworc3RhdGljIHVuc2lnbmVkIGNoYXIgT3BlcmF0aW9uYWxNYWpvclZlcnNpb247CitzdGF0aWMgdW5zaWduZWQgY2hhciBPcGVyYXRpb25hbE1pbm9yVmVyc2lvbjsKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBPcGVyYXRpb25hbEJ1aWxkTnVtYmVyOwogCiBzdGF0aWMgaW50IGRlYnVnOwogCkBAIC04ODUsMTAgKzg4MSwxMyBAQAogCV9fdTggKmJ1ZmZlcjsKIAlpbnQgYnVmZmVyX3NpemU7CiAJaW50IGk7CisJaW50IGVycjsKIAlfX3U4IGNzID0gMDsKIAlzdHJ1Y3QgdGlfaTJjX2Rlc2MgKmkyY19oZWFkZXI7CiAJc3RydWN0IHRpX2kyY19pbWFnZV9oZWFkZXIgKmltZ19oZWFkZXI7CiAJc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMgKmZpcm13YXJlX3JlYzsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCWNvbnN0IGNoYXIgKmZ3X25hbWUgPSAiZWRnZXBvcnQvZG93bjMuYmluIjsKIAogCS8vIEluIG9yZGVyIHRvIHVwZGF0ZSB0aGUgSTJDIGZpcm13YXJlIHdlIG11c3QgY2hhbmdlIHRoZSB0eXBlIDIgcmVjb3JkIHRvIHR5cGUgMHhGMi4KIAkvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIFVNUCB0byBjb21lIHVwIGluIEJvb3QgTW9kZS4gIFRoZW4gd2hpbGUgaW4gYm9vdCBtb2RlLCB0aGUgZHJpdmVyIApAQCAtOTA5LDE5ICs5MDgsMzQgQEAKIAkvLyBTZXQgZW50aXJlIGltYWdlIG9mIDB4ZmZzCiAJbWVtc2V0IChidWZmZXIsIDB4ZmYsIGJ1ZmZlcl9zaXplKTsKIAorCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBmd19uYW1lLCBkZXYpOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gbG9hZCBpbWFnZSBcIiVzXCIgZXJyICVkXG4iLAorCQkgICAgICAgZndfbmFtZSwgZXJyKTsKKwkJa2ZyZWUoYnVmZmVyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwkvKiBTYXZlIERvd25sb2FkIFZlcnNpb24gTnVtYmVyICovCisJT3BlcmF0aW9uYWxNYWpvclZlcnNpb24gPSBmdy0+ZGF0YVswXTsKKwlPcGVyYXRpb25hbE1pbm9yVmVyc2lvbiA9IGZ3LT5kYXRhWzFdOworCU9wZXJhdGlvbmFsQnVpbGROdW1iZXIgPSBmdy0+ZGF0YVsyXSB8IChmdy0+ZGF0YVszXSA8PCA4KTsKKwogCS8vIENvcHkgdmVyc2lvbiBudW1iZXIgaW50byBmaXJtd2FyZSByZWNvcmQKIAlmaXJtd2FyZV9yZWMgPSAoc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMgKilidWZmZXI7CiAKLQlmaXJtd2FyZV9yZWMtPlZlcl9NYWpvcgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb247Ci0JZmlybXdhcmVfcmVjLT5WZXJfTWlub3IJPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uOworCWZpcm13YXJlX3JlYy0+VmVyX01ham9yCT0gT3BlcmF0aW9uYWxNYWpvclZlcnNpb247CisJZmlybXdhcmVfcmVjLT5WZXJfTWlub3IJPSBPcGVyYXRpb25hbE1pbm9yVmVyc2lvbjsKIAogCS8vIFBvaW50ZXIgdG8gZndfZG93biBtZW1vcnkgaW1hZ2UKLQlpbWdfaGVhZGVyID0gKHN0cnVjdCB0aV9pMmNfaW1hZ2VfaGVhZGVyICopJlBhZ2FibGVPcGVyYXRpb25hbENvZGVJbWFnZVswXTsKKwlpbWdfaGVhZGVyID0gKHN0cnVjdCB0aV9pMmNfaW1hZ2VfaGVhZGVyICopJmZ3LT5kYXRhWzRdOwogCiAJbWVtY3B5IChidWZmZXIgKyBzaXplb2Yoc3RydWN0IHRpX2kyY19maXJtd2FyZV9yZWMpLAotCQkmUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlW3NpemVvZihzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlcildLAorCQkmZnctPmRhdGFbNCArIHNpemVvZihzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlcildLAogCQlsZTE2X3RvX2NwdShpbWdfaGVhZGVyLT5MZW5ndGgpKTsKIAorCXJlbGVhc2VfZmlybXdhcmUoZncpOworCiAJZm9yIChpPTA7IGkgPCBidWZmZXJfc2l6ZTsgaSsrKSB7CiAJCWNzID0gKF9fdTgpKGNzICsgYnVmZmVyW2ldKTsKIAl9CkBAIC05MzUsOCArOTQ5LDggQEAKIAlpMmNfaGVhZGVyLT5UeXBlCT0gSTJDX0RFU0NfVFlQRV9GSVJNV0FSRV9CTEFOSzsKIAlpMmNfaGVhZGVyLT5TaXplCT0gKF9fdTE2KWJ1ZmZlcl9zaXplOwogCWkyY19oZWFkZXItPkNoZWNrU3VtCT0gY3M7Ci0JZmlybXdhcmVfcmVjLT5WZXJfTWFqb3IJPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWFqb3JWZXJzaW9uOwotCWZpcm13YXJlX3JlYy0+VmVyX01pbm9yCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbjsKKwlmaXJtd2FyZV9yZWMtPlZlcl9NYWpvcgk9IE9wZXJhdGlvbmFsTWFqb3JWZXJzaW9uOworCWZpcm13YXJlX3JlYy0+VmVyX01pbm9yCT0gT3BlcmF0aW9uYWxNaW5vclZlcnNpb247CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEwNzUsMTEgKzEwODksNiBAQAogCQkvLyBPdGhlcndpc2Ugd2Ugd2lsbCByZW1haW4gaW4gY29uZmlndXJpbmcgbW9kZQogCQlzZXJpYWwtPnByb2R1Y3RfaW5mby5UaU1vZGUgPSBUSV9NT0RFX0NPTkZJR1VSSU5HOwogCi0JLy8gU2F2ZSBEb3dubG9hZCBWZXJzaW9uIE51bWJlcgotCU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb24gPSBQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbjsKLQlPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uID0gUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NaW5vclZlcnNpb247Ci0JT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLkJ1aWxkTnVtYmVyCSA9IFBhZ2FibGVPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uQnVpbGROdW1iZXI7Ci0KIAkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAJLyogRG93bmxvYWQgTW9kZSAqLwogCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTExNTQsMTUgKzExNjMsMTUgQEAKIAkJCS8vIENoZWNrIHZlcnNpb24gbnVtYmVyIG9mIGRvd25sb2FkIHdpdGggY3VycmVudCB2ZXJzaW9uIGluIEkyYwogCQkJZG93bmxvYWRfY3VyX3ZlciA9IChmaXJtd2FyZV92ZXJzaW9uLT5WZXJfTWFqb3IgPDwgOCkgKyAKIAkJCQkJICAgKGZpcm13YXJlX3ZlcnNpb24tPlZlcl9NaW5vcik7Ci0JCQlkb3dubG9hZF9uZXdfdmVyID0gKE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb24gPDwgOCkgKwotCQkJCQkgICAoT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbik7CisJCQlkb3dubG9hZF9uZXdfdmVyID0gKE9wZXJhdGlvbmFsTWFqb3JWZXJzaW9uIDw8IDgpICsKKwkJCQkJICAgKE9wZXJhdGlvbmFsTWlub3JWZXJzaW9uKTsKIAogCQkJZGJnICgiJXMgLSA+Pj5GaXJtd2FyZSBWZXJzaW9ucyBEZXZpY2UgJWQuJWQgIERyaXZlciAlZC4lZCIsCiAJCQkgICAgIF9fZnVuY19fLAogCQkJICAgICBmaXJtd2FyZV92ZXJzaW9uLT5WZXJfTWFqb3IsCiAJCQkgICAgIGZpcm13YXJlX3ZlcnNpb24tPlZlcl9NaW5vciwKLQkJCSAgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbiwKLQkJCSAgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbik7CisJCQkgICAgIE9wZXJhdGlvbmFsTWFqb3JWZXJzaW9uLAorCQkJICAgICBPcGVyYXRpb25hbE1pbm9yVmVyc2lvbik7CiAKIAkJCS8vIENoZWNrIGlmIHdlIGhhdmUgYW4gb2xkIHZlcnNpb24gaW4gdGhlIEkyQyBhbmQgdXBkYXRlIGlmIG5lY2Vzc2FyeQogCQkJaWYgKGRvd25sb2FkX2N1cl92ZXIgIT0gZG93bmxvYWRfbmV3X3ZlcikgewpAQCAtMTE3MCw4ICsxMTc5LDggQEAKIAkJCQkgICAgIF9fZnVuY19fLAogCQkJCSAgICAgZmlybXdhcmVfdmVyc2lvbi0+VmVyX01ham9yLAogCQkJCSAgICAgZmlybXdhcmVfdmVyc2lvbi0+VmVyX01pbm9yLAotCQkJCSAgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbiwKLQkJCQkgICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NaW5vclZlcnNpb24pOworCQkJCSAgICAgT3BlcmF0aW9uYWxNYWpvclZlcnNpb24sCisJCQkJICAgICBPcGVyYXRpb25hbE1pbm9yVmVyc2lvbik7CiAKIAkJCQkvLyBJbiBvcmRlciB0byB1cGRhdGUgdGhlIEkyQyBmaXJtd2FyZSB3ZSBtdXN0IGNoYW5nZSB0aGUgdHlwZSAyIHJlY29yZCB0byB0eXBlIDB4RjIuCiAJCQkJLy8gVGhpcyB3aWxsIGZvcmNlIHRoZSBVTVAgdG8gY29tZSB1cCBpbiBCb290IE1vZGUuICBUaGVuIHdoaWxlIGluIGJvb3QgbW9kZSwgdGhlIGRyaXZlciAKQEAgLTEzNzcsNiArMTM4Niw5IEBACiAJCV9fdTggY3MgPSAwOwogCQlfX3U4ICpidWZmZXI7CiAJCWludCBidWZmZXJfc2l6ZTsKKwkJaW50IGVycjsKKwkJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwkJY29uc3QgY2hhciAqZndfbmFtZSA9ICJlZGdlcG9ydC9kb3duMy5iaW4iOwogCiAJCS8qIFZhbGlkYXRlIEhhcmR3YXJlIHZlcnNpb24gbnVtYmVyCiAJCSAqIFJlYWQgTWFudWZhY3R1cmluZyBEZXNjcmlwdG9yIGZyb20gVEkgQmFzZWQgRWRnZXBvcnQKQEAgLTE0MjUsNyArMTQzNywxNSBAQAogCQkvLyBJbml0aWFsaXplIHRoZSBidWZmZXIgdG8gMHhmZiAocGFkIHRoZSBidWZmZXIpCiAJCW1lbXNldCAoYnVmZmVyLCAweGZmLCBidWZmZXJfc2l6ZSk7CiAKLQkJbWVtY3B5IChidWZmZXIsICZQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2VbMF0sIFBhZ2FibGVPcGVyYXRpb25hbENvZGVTaXplKTsKKwkJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIGZ3X25hbWUsIGRldik7CisJCWlmIChlcnIpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGxvYWQgaW1hZ2UgXCIlc1wiIGVyciAlZFxuIiwKKwkJCSAgICAgICBmd19uYW1lLCBlcnIpOworCQkJa2ZyZWUoYnVmZmVyKTsKKwkJCXJldHVybiBlcnI7CisJCX0KKwkJbWVtY3B5KGJ1ZmZlciwgJmZ3LT5kYXRhWzRdLCBmdy0+c2l6ZSAtIDQpOworCQlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAogCQlmb3IoaSA9IHNpemVvZihzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlcik7IGkgPCBidWZmZXJfc2l6ZTsgaSsrKSB7CiAJCQljcyA9IChfX3U4KShjcyArIGJ1ZmZlcltpXSk7CkBAIC0zMTE5LDYgKzMxMzksNyBAQAogTU9EVUxFX0FVVEhPUihEUklWRVJfQVVUSE9SKTsKIE1PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfRklSTVdBUkUoImVkZ2Vwb3J0L2Rvd24zLmJpbiIpOwogCiBtb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKIE1PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lwYXEuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pcGFxLmMKaW5kZXggZWE5MjRkYy4uZDlmYjM3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lwYXEuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaXBhcS5jCkBAIC01NzAsNyArNTcwLDEyIEBACiAJLmRlc2NyaXB0aW9uID0JCSJQb2NrZXRQQyBQREEiLAogCS51c2JfZHJpdmVyID0gCQkmaXBhcV9kcml2ZXIsCiAJLmlkX3RhYmxlID0JCWlwYXFfaWRfdGFibGUsCi0JLm51bV9wb3J0cyA9CQkyLAorCS8qCisJICogc29tZSBkZXZpY2VzIGhhdmUgYW4gZXh0cmEgZW5kcG9pbnQsIHdoaWNoCisJICogbXVzdCBiZSBpZ25vcmVkIGFzIGl0IHdvdWxkIG1ha2UgdGhlIGNvcmUKKwkgKiBjcmVhdGUgYSBzZWNvbmQgcG9ydCB3aGljaCBvb3BzZXMgd2hlbiB1c2VkCisJICovCisJLm51bV9wb3J0cyA9CQkxLAogCS5vcGVuID0JCQlpcGFxX29wZW4sCiAJLmNsb3NlID0JCWlwYXFfY2xvc2UsCiAJLmF0dGFjaCA9CQlpcGFxX3N0YXJ0dXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uYwppbmRleCAzZGY4YTY2Li4xMWU0MzliIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuLmMKQEAgLTEwNSw2ICsxMDUsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9zZXJpYWwuaD4KQEAgLTEzMzksMTMgKzEzNDEsMTMgQEAKIAlwb3J0LT50dHkgPSBOVUxMOwogfQogCi0KIAkvKiBkb3dubG9hZCB0aGUgZmlybXdhcmUgdG8gYSBwcmUtcmVudW1lcmF0aW9uIGRldmljZSAqLwogc3RhdGljIGludCBrZXlzcGFuX2Zha2Vfc3RhcnR1cCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkKIHsKIAlpbnQgCQkJCXJlc3BvbnNlOwotCWNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIAkqcmVjb3JkOworCWNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAJKnJlY29yZDsKIAljaGFyCQkJCSpmd19uYW1lOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZQkJKmZ3OwogCiAJZGJnKCJLZXlzcGFuIHN0YXJ0dXAgdmVyc2lvbiAlMDR4IHByb2R1Y3QgJTA0eCIsCiAJICAgIGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmJjZERldmljZSksCkBAIC0xMzU5LDcyICsxMzYxLDYwIEBACiAJCS8qIFNlbGVjdCBmaXJtd2FyZSBpbWFnZSBvbiB0aGUgYmFzaXMgb2YgaWRQcm9kdWN0ICovCiAJc3dpdGNoIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpKSB7CiAJY2FzZSBrZXlzcGFuX3VzYTI4X3ByZV9wcm9kdWN0X2lkOgotCQlyZWNvcmQgPSAma2V5c3Bhbl91c2EyOF9maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0EyOCI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2EyOC5mdyI7CiAJCWJyZWFrOwogCiAJY2FzZSBrZXlzcGFuX3VzYTI4eF9wcmVfcHJvZHVjdF9pZDoKLQkJcmVjb3JkID0gJmtleXNwYW5fdXNhMjh4X2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTI4WCI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2EyOHguZnciOwogCQlicmVhazsKIAogCWNhc2Uga2V5c3Bhbl91c2EyOHhhX3ByZV9wcm9kdWN0X2lkOgotCQlyZWNvcmQgPSAma2V5c3Bhbl91c2EyOHhhX2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTI4WEEiOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhMjh4YS5mdyI7CiAJCWJyZWFrOwogCiAJY2FzZSBrZXlzcGFuX3VzYTI4eGJfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTI4eGJfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiVVNBMjhYQiI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2EyOHhiLmZ3IjsKIAkJYnJlYWs7CiAKIAljYXNlIGtleXNwYW5fdXNhMTlfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE5X2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTE5IjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL3VzYTE5LmZ3IjsKIAkJYnJlYWs7CiAJCQkgICAgIAogCWNhc2Uga2V5c3Bhbl91c2ExOXFpX3ByZV9wcm9kdWN0X2lkOgotCQlyZWNvcmQgPSAma2V5c3Bhbl91c2ExOXFpX2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTE5UUkiOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhMTlxaS5mdyI7CiAJCWJyZWFrOwogCQkJICAgICAKIAljYXNlIGtleXNwYW5fbXByX3ByZV9wcm9kdWN0X2lkOgotCQlyZWNvcmQgPSAma2V5c3Bhbl9tcHJfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiTVBSIjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL21wci5mdyI7CiAJCWJyZWFrOwogCiAJY2FzZSBrZXlzcGFuX3VzYTE5cXdfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE5cXdfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiVVNBMTlRSSI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2ExOXF3LmZ3IjsKIAkJYnJlYWs7CiAJCQkgICAgIAogCWNhc2Uga2V5c3Bhbl91c2ExOHhfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE4eF9maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0ExOFgiOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhMTh4LmZ3IjsKIAkJYnJlYWs7CiAJCQkgICAgIAogCWNhc2Uga2V5c3Bhbl91c2ExOXdfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE5d19maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0ExOVciOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhMTl3LmZ3IjsKIAkJYnJlYWs7CiAJCQogCWNhc2Uga2V5c3Bhbl91c2E0OXdfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTQ5d19maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0E0OVciOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhNDl3LmZ3IjsKIAkJYnJlYWs7CiAKIAljYXNlIGtleXNwYW5fdXNhNDl3bGNfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTQ5d2xjX2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTQ5V0xDIjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL3VzYTQ5d2xjLmZ3IjsKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgotCQlyZWNvcmQgPSBOVUxMOwotCQlmd19uYW1lID0gIlVua25vd24iOwotCQlicmVhazsKKwkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgIlVua25vd24gcHJvZHVjdCBJRCAoJTA0eClcbiIsCisJCQlsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpKTsKKwkJcmV0dXJuIDE7CiAJfQogCi0JaWYgKHJlY29yZCA9PSBOVUxMKSB7CisJaWYgKHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsIGZ3X25hbWUsICZzZXJpYWwtPmRldi0+ZGV2KSkgewogCQlkZXZfZXJyKCZzZXJpYWwtPmRldi0+ZGV2LCAiUmVxdWlyZWQga2V5c3BhbiBmaXJtd2FyZSBpbWFnZSAoJXMpIHVuYXZhaWxhYmxlLlxuIiwgZndfbmFtZSk7CiAJCXJldHVybigxKTsKIAl9CkBAIC0xNDM0LDE5ICsxNDI0LDIyIEBACiAJCS8qIGRvd25sb2FkIHRoZSBmaXJtd2FyZSBpbWFnZSAqLwogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0KHNlcmlhbCwgMSk7CiAKLQl3aGlsZShyZWNvcmQtPmFkZHJlc3MgIT0gMHhmZmZmKSB7Ci0JCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkoc2VyaWFsLCByZWNvcmQtPmFkZHJlc3MsCisJcmVjb3JkID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZ3LT5kYXRhOworCisJd2hpbGUgKHJlY29yZCkgeworCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5KHNlcmlhbCwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKIAkJCQkJICAgICAodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwKLQkJCQkJICAgICByZWNvcmQtPmRhdGFfc2l6ZSwgMHhhMCk7CisJCQkJCSAgICAgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pLCAweGEwKTsKIAkJaWYgKHJlc3BvbnNlIDwgMCkgewogCQkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgImV6dXNiX3dyaXRlbWVtb3J5IGZhaWxlZCBmb3IgS2V5c3BhbiIKIAkJCQkiZmlybXdhcmUgKCVkICUwNFggJXAgJWQpXG4iLAotCQkJCXJlc3BvbnNlLCAKLQkJCQlyZWNvcmQtPmFkZHJlc3MsIHJlY29yZC0+ZGF0YSwgcmVjb3JkLT5kYXRhX3NpemUpOworCQkJCXJlc3BvbnNlLCBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpLAorCQkJCXJlY29yZC0+ZGF0YSwgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pKTsKIAkJCWJyZWFrOwogCQl9Ci0JCXJlY29yZCsrOworCQlyZWNvcmQgPSBpaGV4X25leHRfYmlucmVjKHJlY29yZCk7CiAJfQorCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCQkvKiBicmluZyBkZXZpY2Ugb3V0IG9mIHJlc2V0LiBSZW51bWVyYXRpb24gd2lsbCBvY2N1ciBpbiBhCiAJCSAgIG1vbWVudCBhbmQgdGhlIG5ldyBkZXZpY2Ugd2lsbCBiaW5kIHRvIHRoZSByZWFsIGRyaXZlciAqLwogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0KHNlcmlhbCwgMCk7CkBAIC0yNzU2LDYgKzI3NDksMTkgQEAKIE1PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIAorTU9EVUxFX0ZJUk1XQVJFKCJrZXlzcGFuL3VzYTI4LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMjh4LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMjh4YS5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJrZXlzcGFuL3VzYTI4eGIuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2ExOS5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJrZXlzcGFuL3VzYTE5cWkuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi9tcHIuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2ExOXF3LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMTh4LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMTl3LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhNDl3LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhNDl3bGMuZnciKTsKKwogbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CiBNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuLmgKaW5kZXggOGQ2ZWQwMi4uYjUyZmI2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uaAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5oCkBAIC0xMDMsOTAgKzEwMyw2IEBACiAJCQkJCSBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LAogCQkJCQkgaW50IHJlc2V0X3BvcnQpOwogCi0vKiBTdHJ1Y3QgdXNlZCBmb3IgZmlybXdhcmUgLSBpbmNyZWFzZWQgc2l6ZSBvZiBkYXRhIHNlY3Rpb24KLSAgIHRvIGFsbG93IEtleXNwYW4ncyAnQycgZmlybXdhcmUgc3RydWN0IHRvIGJlIHVzZWQgdW5tb2RpZmllZCAqLwotc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgewotCV9fdTE2IGFkZHJlc3M7Ci0JX191OCBkYXRhX3NpemU7Ci0JX191OCBkYXRhWzY0XTsKLX07Ci0KLS8qIENvbmRpdGlvbmFsbHkgaW5jbHVkZSBmaXJtd2FyZSBpbWFnZXMsIGlmIHRoZXkgYXJlbid0Ci0gICBpbmNsdWRlZCBjcmVhdGUgYSBudWxsIHBvaW50ZXIgaW5zdGVhZC4gIEN1cnJlbnQgCi0gICBmaXJtd2FyZSBpbWFnZXMgYXJlbid0IG9wdGltaXNlZCB0byByZW1vdmUgZHVwbGljYXRlCi0gICBhZGRyZXNzZXMgaW4gdGhlIGltYWdlIGl0c2VsZi4gKi8KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4Ci0JI2luY2x1ZGUgImtleXNwYW5fdXNhMjhfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTI4X2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFgKLQkjaW5jbHVkZSAia2V5c3Bhbl91c2EyOHhfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTI4eF9maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYQQotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTI4eGFfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTI4eGFfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WEIKLQkjaW5jbHVkZSAia2V5c3Bhbl91c2EyOHhiX2Z3LmgiCi0jZWxzZQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2EyOHhiX2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOQotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE5X2Z3LmgiCi0jZWxzZQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2ExOV9maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRSQotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE5cWlfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTE5cWlfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX01QUgotICAgICAgICAjaW5jbHVkZSAia2V5c3Bhbl9tcHJfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX21wcl9maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRVwotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE5cXdfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTE5cXdfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE4WAotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE4eF9mdy5oIgotI2Vsc2UKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMTh4X2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVcKLQkjaW5jbHVkZSAia2V5c3Bhbl91c2ExOXdfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTE5d19maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXCi0JI2luY2x1ZGUgImtleXNwYW5fdXNhNDl3X2Z3LmgiCi0jZWxzZQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2E0OXdfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTQ5V0xDCi0gICAgICAgICNpbmNsdWRlICJrZXlzcGFuX3VzYTQ5d2xjX2Z3LmgiCi0jZWxzZQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2E0OXdsY19maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQogLyogVmFsdWVzIHVzZWQgZm9yIGJhdWQgcmF0ZSBjYWxjdWxhdGlvbiAtIGRldmljZSBzcGVjaWZpYyAqLwogI2RlZmluZQlLRVlTUEFOX0lOVkFMSURfQkFVRF9SQVRFCQkoLTEpCiAjZGVmaW5lCUtFWVNQQU5fQkFVRF9SQVRFX09LCQkJKDApCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9tcHJfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX21wcl9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzg4MDVlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX21wcl9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjg2ICswLDAgQEAKLS8qIGtleXNwYW5fbXByX2Z3LmgKLSAKLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX21wcl9mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLXN0YXRpYyBjaGFyIHRoZUZpcm13YXJlRGF0ZTUzW10gPQotCSIwNC8yNi8yMDAyICAwMjo0N3AgICAgICAgICAgICAgIDExLDU3MCBVU0E1MyI7Ci0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl9tcHJfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDFhfX0sCi0gezB4MDAxYSwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAotIHsweDAwMDMsIDE2LCB7IDB4OGUsIDB4NTYsIDB4OGYsIDB4NTcsIDB4ZTUsIDB4NTcsIDB4MTUsIDB4NTcsIDB4YWUsIDB4NTYsIDB4NzAsIDB4MDIsIDB4MTUsIDB4NTYsIDB4NGUsIDB4NjB9fSwKLSB7MHgwMDEzLCAgNywgeyAweDA1LCAweDEyLCAweDBmLCAweGEyLCAweDgwLCAweGVlLCAweDIyfX0sCi0gezB4MDAyMywgIDMsIHsgMHgwMiwgMHgwMCwgMHg0Nn19LAotIHsweDAwNDYsIDE2LCB7IDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MDh9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDMwLCAweDk5LCAweDBlLCAweDMwLCAweDBiLCAweDA3LCAweGEyLCAweDBlLCAweDkyLCAweDliLCAweDg1LCAweDM2LCAweDk5LCAweGMyLCAweDk5LCAweGQyfX0sCi0gezB4MDA2NiwgMTYsIHsgMHgxMiwgMHgyMCwgMHgxMiwgMHgwMywgMHgwMiwgMHgwMiwgMHhmOSwgMHhjMiwgMHgxMiwgMHgzMCwgMHgwMywgMHgxOSwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MH19LAotIHsweDAwNzYsIDE2LCB7IDB4NzUsIDB4MWEsIDB4N2UsIDB4NzUsIDB4MWIsIDB4NDAsIDB4NzUsIDB4MTcsIDB4MDAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTgsIDB4N2R9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDc1LCAweDE5LCAweGMwLCAweDgwLCAweDE3LCAweDdlLCAweDdkLCAweDdmLCAweGMwLCAweDc1LCAweDFhLCAweDdkLCAweDc1LCAweDFiLCAweGMwLCAweDc1fX0sCi0gezB4MDA5NiwgMTYsIHsgMHgxNywgMHgwMSwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxOCwgMHg3ZSwgMHg3NSwgMHgxOSwgMHg0MCwgMHgyMCwgMHgwYiwgMHgwMywgMHgwMn19LAotIHsweDAwYTYsIDE2LCB7IDB4MDEsIDB4ODQsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsIDB4M2MsIDB4MjAsIDB4MGMsIDB4MzQsIDB4MjAsIDB4MDksIDB4MzEsIDB4OTB9fSwKLSB7MHgwMGI2LCAxNiwgeyAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDI5LCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFifX0sCi0gezB4MDBjNiwgMTYsIHsgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYX19LAotIHsweDAwZDYsIDE2LCB7IDB4ZTUsIDB4MWIsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4MDIsIDB4MDIsIDB4Zjd9fSwKLSB7MHgwMGU2LCAxNiwgeyAweGMyLCAweDBiLCAweDAyLCAweDAyLCAweGY3LCAweDMwLCAweDAzLCAweDExLCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGEzLCAweGUwLCAweDU0fX0sCi0gezB4MDBmNiwgMTYsIHsgMHgwMiwgMHhmNSwgMHgxZCwgMHhhMywgMHhlMCwgMHhmNSwgMHgxYywgMHg4MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MGYsIDB4MDB9fSwKLSB7MHgwMDAwLCAgMywgeyAweDAyLCAweDAwLCAweDI2fX0sCi0gezB4MDAyNiwgMTIsIHsgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHg1YSwgMHgwMiwgMHgwYSwgMHgzM319LAotIHsweDAxMDYsIDY0LCB7IDB4YzYsIDB4ZTAsIDB4NTQsIDB4MDIsIDB4ZjUsIDB4MWQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MWMsIDB4ZTUsIDB4MTcsIDB4MjQsIDB4ZmYsIDB4OTIsIDB4MDMsIDB4MzAsCi0gIDB4MGQsIDB4MGQsIDB4YzIsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4ZTUsCi0gIDB4MWQsIDB4NjAsIDB4MDUsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4ODUsIDB4MWMsIDB4NTMsIDB4ODUsIDB4MTksIDB4ODIsIDB4ODUsIDB4MTgsCi0gIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4MTIsIDB4ZmYsIDB4MjAsIDB4MGMsIDB4M2EsIDB4MjAsIDB4MDksIDB4MzcsIDB4OTB9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDJmLCAweDMwLCAweDEwLCAweDFjLCAweDg1LCAweDE5LCAweDgyLCAweDg1LCAweDE4LCAweDgzLCAweGEzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweDg1LCAweDE5LCAweDgyLCAweDg1LCAweDE4LCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGY1LCAweDM2LCAweDc1LAotICAweDNhLCAweDAzLCAweDAyLCAweDAyLCAweGY3LCAweDc1LCAweDNhLCAweDAyLCAweDg1LCAweDE5LCAweDgyLCAweDg1LCAweDE4LCAweDgzLCAweGEzLCAweGUwLAotICAweGY1LCAweDM2LCAweDAyLCAweDAyLCAweGY3LCAweDc1LCAweDNhLCAweDAxLCAweGMyLCAweDBiLCAweDAyLCAweDAyLCAweGY3LCAweDMwLCAweDAzfX0sCi0gezB4MDE4NiwgNjQsIHsgMHgwZSwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHg1NCwgMHgwMiwgMHhmNSwgMHgxZCwgMHhhMywgMHhlMCwgMHhmNSwgMHgxYywgMHg4MCwgMHgwYywgMHg5MCwgMHg3ZiwKLSAgMHhjOCwgMHhlMCwgMHg1NCwgMHgwMiwgMHhmNSwgMHgxZCwgMHhhMywgMHhlMCwgMHhmNSwgMHgxYywgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwKLSAgMHgwMywgMHgwMiwgMHgwMiwgMHg2OCwgMHhlNSwgMHgxZCwgMHg2MCwgMHgwNywgMHhjMiwgMHgxNCwgMHhjMiwgMHgwNSwgMHgwMiwgMHgwMiwgMHhmNywgMHg4NSwKLSAgMHgxYywgMHg1MywgMHg4NSwgMHgxYiwgMHg4MiwgMHg4NSwgMHgxYSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgxMiwgMHhmZn19LAotIHsweDAxYzYsIDY0LCB7IDB4MzAsIDB4MGMsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjAsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjAsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsCi0gIDB4MzgsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjAsIDB4MzAsIDB4MTAsIDB4MWIsIDB4ODUsIDB4MWIsIDB4ODIsIDB4ODUsIDB4MWEsIDB4ODMsIDB4YTMsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4ODUsIDB4MWIsIDB4ODIsIDB4ODUsIDB4MWEsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsCi0gIDB4M2EsIDB4MDMsIDB4ODAsIDB4MGQsIDB4ODUsIDB4MWIsIDB4ODIsIDB4ODUsIDB4MWEsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzV9fSwKLSB7MHgwMjA2LCA2NCwgeyAweDNhLCAweDAyLCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDQwLCAweDI2LCAweDMwLCAweDAzLCAweDA3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLAotICAweDgwLCAweDA1LCAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwLCAweGU1LCAweDE3LCAweDI0LCAweGZmLCAweDkyLCAweDAzLCAweDIwLCAweDBkLCAweDAzLAotICAweDAyLCAweDAyLCAweGY3LCAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDAyLCAweGY3LCAweDMwLCAweDEwLAotICAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFiLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzfX0sCi0gezB4MDI0NiwgNjQsIHsgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHgxYiwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHhkMiwgMHgwYiwgMHgwMiwgMHgwMiwgMHhmNywgMHg3NSwgMHgzYSwgMHgwMSwgMHhjMiwgMHgxNCwgMHgwMiwgMHgwMiwKLSAgMHhmNywgMHgzMCwgMHgwYywgMHgwMywgMHgwMiwgMHgwMiwgMHhmNSwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwMiwgMHhmNSwgMHg5MCwgMHg3ZiwgMHg5YiwKLSAgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHg3OSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHgxYiwgMHgyZn19LAotIHsweDAyODYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4MWIsCi0gIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsCi0gIDB4NDAsIDB4MjIsIDB4MzAsIDB4MDMsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4ODAsIDB4MDUsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsCi0gIDB4ZjAsIDB4ZTUsIDB4MTcsIDB4MjQsIDB4ZmYsIDB4OTIsIDB4MDMsIDB4MzAsIDB4MGQsIDB4MzYsIDB4YzIsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YmJ9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDJjLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFiLCAweDJmLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFiLCAweDJmLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweGQyLCAweDBiLCAweDgwLCAweDAyLCAweGMyLCAweDE0LAotICAweGQyLCAweDAxLCAweDIwLCAweDk4LCAweDAzLCAweDAyLCAweDA0LCAweDM1LCAweGMyLCAweDk4LCAweDIwLCAweDAyLCAweDAzLCAweDAyLCAweDAzfX0sCi0gezB4MDMwNiwgNjQsIHsgMHhhMiwgMHgyMCwgMHgxNSwgMHgyNywgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwKLSAgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwgMHgxMCwgMHg0ZCwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHg4MCwgMHgzYSwgMHg4NSwgMHg5OSwgMHg1NSwgMHhlNSwgMHg1NSwgMHhiNSwKLSAgMHg0NywgMHgwNCwgMHhkMiwgMHgwOSwgMHg4MCwgMHgyZSwgMHhlNSwgMHg1NSwgMHhiNSwgMHg0NiwgMHgwNCwgMHhjMiwgMHgwOSwgMHg4MCwgMHgyNX19LAotIHsweDAzNDYsIDY0LCB7IDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4NTUsIDB4ZjAsCi0gIDB4MzAsIDB4MTAsIDB4MTEsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsCi0gIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ZDIsIDB4MGYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTUsIDB4NDMsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MzMsCi0gIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MDMsIDB4MDJ9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDA0LCAweDMzLCAweDE1LCAweDM5LCAweDE1LCAweDM5LCAweDA1LCAweDJiLCAweDQzLCAweDM0LCAweDAxLCAweDAyLCAweDA0LCAweDMzLCAweDkwLCAweDdmLCAweGI3LAotICAweGU1LCAweDM5LCAweGYwLCAweDc1LCAweDM5LCAweDAwLCAweGMyLCAweDAyLCAweDAyLCAweDA0LCAweDMzLCAweDIwLCAweDE1LCAweDI3LCAweGFmLCAweDM5LAotICAweDA1LCAweDM5LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLAotICAweDEwLCAweDRkLCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1fX0sCi0gezB4MDNjNiwgNjQsIHsgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHg4MCwgMHgzYSwgMHg4NSwgMHg5OSwgMHg1NSwgMHhlNSwgMHg1NSwgMHhiNSwgMHg0NywgMHgwNCwgMHhkMiwgMHgwOSwgMHg4MCwKLSAgMHgyZSwgMHhlNSwgMHg1NSwgMHhiNSwgMHg0NiwgMHgwNCwgMHhjMiwgMHgwOSwgMHg4MCwgMHgyNSwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwKLSAgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg1NSwgMHhmMCwgMHgzMCwgMHgxMCwgMHgxMSwgMHhhZiwgMHgzOSwKLSAgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMH19LAotIHsweDA0MDYsIDY0LCB7IDB4ZDIsIDB4MGYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTUsIDB4NDMsIDB4NDAsIDB4MjQsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTIsIDB4ZTUsCi0gIDB4MzksIDB4YzMsIDB4OTQsIDB4NDAsIDB4NDAsIDB4MTYsIDB4MTUsIDB4MzksIDB4MTUsIDB4MzksIDB4MDUsIDB4MmIsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ODAsCi0gIDB4MGIsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZTUsIDB4MzksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MDAsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MDEsIDB4MzAsIDB4MDEsCi0gIDB4MDUsIDB4YzIsIDB4MDEsIDB4MDIsIDB4MDAsIDB4NTYsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDB9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDU0LCAweGU1LCAweDM0LCAweDYwLCAweDUwLCAweGU1LCAweDMxLCAweDcwLCAweDRjLAotICAweGU1LCAweDM0LCAweDMwLCAweGUxLCAweDBiLCAweGU0LCAweGY1LCAweDJmLCAweDc1LCAweDM0LCAweDAxLCAweDc1LCAweDMxLCAweDAyLCAweDgwLCAweDBlLAotICAweGEyLCAweDA4LCAweGU0LCAweDMzLCAweGY1LCAweDJmLCAweGMyLCAweDA4LCAweGU0LCAweGY1LCAweDM0LCAweDc1LCAweDMxLCAweDEwLCAweGU0LCAweGY1LAotICAweDU2LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDI0LCAweDI1LCAweDU2LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyfX0sCi0gezB4MDQ4NiwgNjQsIHsgMHgwYywgMHg3OSwgMHhmZiwgMHg3NCwgMHgwMCwgMHgyNSwgMHg1NiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwKLSAgMHg1NiwgMHhlNSwgMHg1NiwgMHhiNCwgMHgwYywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwKLSAgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwNSwgMHhkMSwgMHhlNCwgMHhmNSwgMHg1NiwgMHg3NCwgMHg0MCwgMHgyNSwgMHg1NiwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHg1NiwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHgzYiwgMHhmOX19LAotIHsweDA0YzYsIDY0LCB7IDB4ZWMsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGMsIDB4OTIsIDB4MDUsIDB4NTYsIDB4ZTUsIDB4NTYsIDB4YjQsIDB4MTgsIDB4ZGIsIDB4ZTUsIDB4M2IsCi0gIDB4NjAsIDB4MTEsIDB4NzUsIDB4YzksIDB4MjAsIDB4NzUsIDB4YzgsIDB4MzYsIDB4ODUsIDB4M2MsIDB4Y2EsIDB4ODUsIDB4M2QsIDB4Y2IsIDB4ZTQsIDB4OTAsCi0gIDB4N2YsIDB4OWYsIDB4ZjAsIDB4ZTUsIDB4M2UsIDB4MTMsIDB4OTIsIDB4MTAsIDB4OTIsIDB4OWYsIDB4ODUsIDB4M2YsIDB4MzgsIDB4ZTUsIDB4NDAsIDB4MTMsCi0gIDB4OTIsIDB4MTUsIDB4ZTUsIDB4NDEsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ODAsIDB4MDd9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGU1LCAweDQyLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweDdmLAotICAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDQ4LCAweDYwLCAweDBiLCAweGMyLCAweDBjLAotICAweGMyLCAweDA5LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDQ5LCAweDYwLCAweDBjLCAweGQyLCAweDA5LCAweDQzLAotICAweDM0LCAweDAxLCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDRhLCAweDYwLCAweDBkLCAweGMyLCAweGFmfX0sCi0gezB4MDU0NiwgNjQsIHsgMHhjMiwgMHgwYiwgMHhkMiwgMHgwMCwgMHhlNCwgMHhmNSwgMHg1MywgMHhmNSwgMHgzYSwgMHhkMiwgMHhhZiwgMHhlNSwgMHg0YiwgMHg2MCwgMHgwNSwgMHgzMCwgMHgxNSwKLSAgMHgwMiwgMHhkMiwgMHgwOSwgMHhlNSwgMHg0YywgMHg2MCwgMHgxNSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5ZSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHg0ZCwgMHg2MCwgMHgwYSwKLSAgMHhkMiwgMHg5YywgMHhjMiwgMHg5OCwgMHg3NSwgMHgyYywgMHgwMSwgMHg3NSwgMHgzMSwgMHgxZSwgMHhlNSwgMHg0ZSwgMHg2MCwgMHgwNywgMHhjMn19LAotIHsweDA1ODYsIDY0LCB7IDB4OWMsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MmMsIDB4ZTUsIDB4NGYsIDB4NjAsIDB4MDMsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZTUsIDB4NTAsIDB4NjAsIDB4MDIsCi0gIDB4ZDIsIDB4MDcsIDB4ZTUsIDB4NTEsIDB4NjAsIDB4MGEsIDB4ZTUsIDB4NGQsIDB4NzAsIDB4MDIsIDB4ZjUsIDB4MzEsIDB4ZTUsIDB4NTEsIDB4NDIsIDB4MzQsCi0gIDB4ZTUsIDB4NTIsIDB4NjAsIDB4MWYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4ZjAsCi0gIDB4NzQsIDB4MzIsIDB4ZjAsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzQsIDB4MzQsIDB4ZjB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweGQyLCAweDAzLCAweGQyLCAweDAyLCAweGQyLCAweDA4LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweGEyLCAweDBjLCAweGU0LCAweDMzLCAweGZmLCAweDY1LAotICAweDI5LCAweDYwLCAweDA1LCAweDhmLCAweDI5LCAweDQzLCAweDM0LCAweDAxLCAweGEyLCAweDA5LCAweGU0LCAweDMzLCAweGZmLCAweDY1LCAweDJhLCAweDYwLAotICAweDA1LCAweDhmLCAweDJhLCAweDQzLCAweDM0LCAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweGZmLCAweDU0LCAweDA4LCAweDY0LCAweDA4LCAweGY1LAotICAweDU3LCAweDY1LCAweDI1LCAweDYwLCAweDA2LCAweDg1LCAweDU3LCAweDI1LCAweDQzLCAweDM0LCAweDAxLCAweGVmLCAweDU0LCAweDEwLCAweDY0fX0sCi0gezB4MDYwNiwgNjQsIHsgMHgxMCwgMHhmNSwgMHg1NywgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNiwgMHg4NSwgMHg1NywgMHgyNiwgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHg0MCwgMHg2NCwKLSAgMHg0MCwgMHhmNSwgMHg1NywgMHg2NSwgMHgyNywgMHg2MCwgMHgwNiwgMHg4NSwgMHg1NywgMHgyNywgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHgyMCwKLSAgMHg2NCwgMHgyMCwgMHhmNSwgMHg1NywgMHg2NSwgMHgyOCwgMHg2MCwgMHgwNiwgMHg4NSwgMHg1NywgMHgyOCwgMHg0MywgMHgzNCwgMHgwMSwgMHg5MCwgMHg3ZiwKLSAgMHg5YSwgMHhlMCwgMHg1NCwgMHg0MCwgMHg2NCwgMHg0MCwgMHhmNSwgMHg1NywgMHg2NSwgMHgyZSwgMHg2MCwgMHgwNiwgMHg4NSwgMHg1NywgMHgyZX19LAotIHsweDA2NDYsIDY0LCB7IDB4NDMsIDB4MzQsIDB4MDEsIDB4MzAsIDB4MDcsIDB4MzUsIDB4YzIsIDB4YWYsIDB4MzAsIDB4MDIsIDB4MTgsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsCi0gIDB4MjcsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4YzIsIDB4MDIsIDB4YzIsIDB4MDcsCi0gIDB4ODAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MGYsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjksCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZDIsIDB4MDIsIDB4YzIsIDB4MDcsIDB4ZDIsIDB4YWYsIDB4MjAsIDB4MDUsIDB4M2QsIDB4MzAsIDB4MDN9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDFlLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDMzLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDNhLAotICAweDAxLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDUzLCAweGQyLCAweDA1LCAweDc1LCAweDEyLCAweGZmLCAweDgwLCAweDFjLCAweDkwLCAweDdmLAotICAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDE1LCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDNhLCAweDAxLCAweDkwLAotICAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUzLCAweGQyLCAweDA1LCAweDc1LCAweDEyLCAweGZmLCAweDIwLCAweDE0LCAweDMzLCAweDIwLCAweDAwfX0sCi0gezB4MDZjNiwgNjQsIHsgMHgwNiwgMHhlNSwgMHgzYSwgMHg2NSwgMHg1MywgMHg3MCwgMHgyYSwgMHgzMCwgMHgwNSwgMHgxYSwgMHgzMCwgMHgwMywgMHgwOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywKLSAgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMywgMHhjMiwgMHgwNSwgMHhlNCwgMHhmNSwKLSAgMHg1MywgMHhmNSwgMHgzYSwgMHgzMCwgMHgwZCwgMHgwYSwgMHhjMiwgMHgwZCwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwKLSAgMHgzMCwgMHgxNCwgMHgwMywgMHgwMiwgMHgwNywgMHhiZiwgMHgyMCwgMHgwNSwgMHgwMywgMHgwMiwgMHgwNywgMHhiZiwgMHgzMCwgMHgwYywgMHgwM319LAotIHsweDA3MDYsIDY0LCB7IDB4MDIsIDB4MDcsIDB4YmYsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDcsIDB4YmYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NjAsIDB4MDMsCi0gIDB4MDIsIDB4MDcsIDB4YmYsIDB4MzAsIDB4MDMsIDB4MGMsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDAsIDB4NzUsIDB4NTgsIDB4N2UsIDB4NzUsIDB4NTksIDB4NDAsCi0gIDB4ODAsIDB4MGEsIDB4N2UsIDB4N2QsIDB4N2YsIDB4YzAsIDB4NzUsIDB4NTgsIDB4N2QsIDB4NzUsIDB4NTksIDB4YzAsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsCi0gIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4NTksIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTgsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTN9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweDkyLCAweDFhLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDU5LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLAotICAweGY1LCAweDU3LCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLCAweDJhLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLAotICAweGU1LCAweDU5LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLAotICAweDA1LCAweDNhLCAweGU1LCAweDU5LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2fX0sCi0gezB4MDc4NiwgNjQsIHsgMHhkMiwgMHgwYiwgMHg4MCwgMHgxNSwgMHhjMiwgMHgwYiwgMHgzMCwgMHgwMywgMHgwOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwKLSAgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMywgMHgzMCwgMHgxMCwgMHgwNCwgMHhhMiwgMHgxYSwgMHg5MiwgMHg5YiwgMHhkMiwKLSAgMHgxNCwgMHhjMiwgMHhhZiwgMHg4NSwgMHg1NywgMHg5OSwgMHgyMCwgMHgwYiwgMHgwZCwgMHgzMCwgMHgwZCwgMHgwYSwgMHhjMiwgMHgwZCwgMHhjMiwgMHgwMCwKLSAgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgwY319LAotIHsweDA3YzYsIDY0LCB7IDB4YTQsIDB4MDksIDB4MWMsIDB4MDAsIDB4MDksIDB4ODksIDB4MDEsIDB4MDksIDB4ZTYsIDB4MDMsIDB4MDcsIDB4ZTMsIDB4MDYsIDB4MDksIDB4MGQsIDB4MDgsIDB4MDksCi0gIDB4MDEsIDB4MDksIDB4MDgsIDB4ZTksIDB4MGEsIDB4MDgsIDB4ZjgsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MGEsIDB4MjQsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsCi0gIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWMsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDgsIDB4NzksIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGEsCi0gIDB4MjQsIDB4NzQsIDB4MGQsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4ODcsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGF9fSwKLSB7MHgwODA2LCA2NCwgeyAweDJiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweGQ4LAotICAweDc1LCAweDgzLCAweDBkLCAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweGQxLCAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDc1LCAweDgyLCAweGNhLCAweDc1LAotICAweDgzLCAweDBkLCAweGYwLCAweDc1LCAweDgyLCAweGMzLCAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDA0LCAweDc1LAotICAweDgyLCAweDllLCAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDkwLCAweDdmLCAweGVmLCAweGUwLCAweGZlLCAweDkwLCAweDdmLCAweGVlLCAweGUwfX0sCi0gezB4MDg0NiwgNjQsIHsgMHg3YywgMHgwMCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg1YSwgMHhlYywgMHgzZSwgMHhmNSwgMHg1OSwgMHg3NSwgMHgxNSwgMHgwZCwgMHg3NSwgMHgxNiwgMHg5OSwgMHg3NSwKLSAgMHg4MiwgMHg5YiwgMHg3NSwgMHg4MywgMHgwZCwgMHhlMCwgMHg3NSwgMHgxMywgMHgwMCwgMHhmNSwgMHgxNCwgMHhkMywgMHhlNSwgMHgxNCwgMHg5NSwgMHg1YSwKLSAgMHhlNSwgMHgxMywgMHg5NSwgMHg1OSwgMHg0MCwgMHgwNiwgMHg4NSwgMHg1OSwgMHgxMywgMHg4NSwgMHg1YSwgMHgxNCwgMHgxMiwgMHgwYiwgMHhiYSwgMHgwMiwKLSAgMHgwYSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwYiwgMHg3NSwgMHg1NiwgMHhmZiwgMHg3NSwgMHg1NywgMHgwZCwgMHg3NX19LAotIHsweDA4ODYsIDY0LCB7IDB4NTgsIDB4ZGMsIDB4ODAsIDB4MmQsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MGIsIDB4NzUsIDB4NTYsIDB4ZmYsIDB4NzUsIDB4NTcsIDB4MGQsCi0gIDB4NzUsIDB4NTgsIDB4ZTAsIDB4ODAsIDB4MWIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDIsIDB4MGIsIDB4NzUsIDB4NTYsIDB4ZmYsIDB4NzUsCi0gIDB4NTcsIDB4MGQsIDB4NzUsIDB4NTgsIDB4ZjAsIDB4ODAsIDB4MDksIDB4NzUsIDB4NTYsIDB4ZmYsIDB4NzUsIDB4NTcsIDB4MGUsIDB4NzUsIDB4NTgsIDB4MWUsCi0gIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTAsIDB4NzUsIDB4NTksIDB4MDAsIDB4ZjUsIDB4NWEsIDB4YWUsIDB4NTcsIDB4YWYsIDB4NTgsIDB4OGUsIDB4MTV9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDhmLCAweDE2LCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweDhlLCAweDEzLCAweGY1LCAweDE0LCAweGQzLCAweDk1LCAweDVhLAotICAweGU1LCAweDEzLCAweDk1LCAweDU5LCAweDQwLCAweDA2LCAweDg1LCAweDU5LCAweDEzLCAweDg1LCAweDVhLCAweDE0LCAweDEyLCAweDBiLCAweGJhLCAweDAyLAotICAweDBhLCAweDJiLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDExLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDBhLAotICAweDJiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDExLCAweDAyLCAweDBhLCAweDJiLCAweDEyLCAweDBjLCAweDI0LCAweDkwLCAweDdmfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhlYSwgMHhlMCwgMHhmNSwgMHgxMCwgMHgwMiwgMHgwYSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgxMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNywgMHgxNCwgMHg2MCwgMHgzNCwKLSAgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYSwgMHgyNCwgMHhhMiwgMHgxNiwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwKLSAgMHgxOCwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NH19LAotIHsweDA5NDYsIDY0LCB7IDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGEsIDB4MmIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsCi0gIDB4ZjAsIDB4MDIsIDB4MGEsIDB4MmIsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsCi0gIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjB9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDAyLCAweDBhLCAweDJiLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE3LCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBhLAotICAweDJiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBhLCAweDI0LCAweGMyLCAweDE2LCAweDAyLCAweDBhLAotICAweDJiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDc2LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LAotICAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0fX0sCi0gezB4MDljNiwgNjQsIHsgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwKLSAgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg0NSwgMHg5MCwKLSAgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxMCwgMHgyNCwgMHgwMiwgMHg3MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg2NCwKLSAgMHgwMSwgMHg3MCwgMHgyYSwgMHhkMiwgMHgxNiwgMHg4MCwgMHgyZCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3Zn19LAotIHsweDBhMDYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsCi0gIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsCi0gIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4YzIsIDB4MTAsIDB4ZTQsIDB4ZjUsCi0gIDB4MTAsIDB4ZjUsIDB4MzQsIDB4YzIsIDB4MDksIDB4YzIsIDB4MGMsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MTQsIDB4YzIsIDB4MGQsIDB4YzIsIDB4MTV9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGMyLCAweDExLCAweGMyLCAweDA3LCAweGMyLCAweDEyLCAweGMyLCAweDBmLCAweGMyLCAweDA4LCAweGY1LCAweDM1LCAweGY1LCAweDM5LCAweGY1LCAweDUzLCAweGY1LAotICAweDNhLCAweGY1LCAweDMzLCAweGY1LCAweDMwLCAweGY1LCAweDJmLCAweGY1LCAweDJlLCAweGY1LCAweDJkLCAweGY1LCAweDJjLCAweGY1LCAweDJiLCAweGY1LAotICAweDJhLCAweGY1LCAweDI5LCAweGY1LCAweDI4LCAweGY1LCAweDI3LCAweGY1LCAweDI2LCAweGY1LCAweDI1LCAweGY1LCAweDI0LCAweGMyLCAweDA1LCAweGMyLAotICAweDE3LCAweGMyLCAweDE5LCAweGMyLCAweDE2LCAweGMyLCAweDE4LCAweGMyLCAweDA0LCAweGQyLCAweDEzLCAweGMyLCAweDA2LCAweGMyLCAweDAxfX0sCi0gezB4MGE4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwKLSAgMHhlMCwgMHg0NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHg3NCwgMHgwZSwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHhiYywgMHhkMn19LAotIHsweDBhYzYsIDY0LCB7IDB4MWEsIDB4MTIsIDB4MGYsIDB4N2QsIDB4YzIsIDB4MTcsIDB4MzAsIDB4MDQsIDB4MDMsIDB4MTIsIDB4MDQsIDB4NDgsIDB4MzAsIDB4MDQsIDB4MmEsIDB4MzAsIDB4MDYsCi0gIDB4MjcsIDB4YzIsIDB4MDYsIDB4ZTUsIDB4MTIsIDB4NjAsIDB4MTYsIDB4MTUsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4MzAsIDB4ZTYsIDB4MDQsCi0gIDB4N2YsIDB4MDAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDYsIDB4OTAsIDB4N2YsIDB4OTYsCi0gIDB4NzQsIDB4MjAsIDB4ZjAsIDB4MTIsIDB4MGIsIDB4MTQsIDB4ODAsIDB4Y2QsIDB4MzAsIDB4MTcsIDB4MDcsIDB4YzIsIDB4MTcsIDB4MTIsIDB4MDd9fSwKLSB7MHgwYjA2LCA2NCwgeyAweGMwLCAweDgwLCAweGMzLCAweDMwLCAweDE5LCAweGMwLCAweGMyLCAweDE5LCAweDEyLCAweDBlLCAweGRjLCAweDgwLCAweGI5LCAweDIyLCAweGU1LCAweDMxLCAweDYwLAotICAweDAyLCAweDE1LCAweDMxLCAweGU1LCAweDM5LCAweDYwLCAweDU1LCAweDY1LCAweDM1LCAweDcwLCAweDRiLCAweGU1LCAweDMzLCAweGY0LCAweDYwLCAweDAyLAotICAweDA1LCAweDMzLCAweGU1LCAweDMzLCAweGMzLCAweDk1LCAweDQ0LCAweDQwLCAweDQzLCAweGMyLCAweGFmLCAweDMwLCAweDAyLCAweDFiLCAweDkwLCAweDdmLAotICAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDJkLCAweDkwLCAweDdmLCAweGI3LCAweGU1LCAweDM5LCAweGYwLCAweGMyLCAweDAyLCAweGU0LCAweGY1fX0sCi0gezB4MGI0NiwgNjQsIHsgMHgzOSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNSwgMHg3NSwgMHgxMiwgMHhmZiwgMHg4MCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxMiwKLSAgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzOSwgMHhmMCwgMHhkMiwgMHgwMiwgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNSwgMHg3NSwKLSAgMHgxMiwgMHhmZiwgMHhkMiwgMHhhZiwgMHg4MCwgMHgwNiwgMHg4NSwgMHgzOSwgMHgzNSwgMHhlNCwgMHhmNSwgMHgzMywgMHhlNSwgMHgyYywgMHg2MCwgMHgzMCwKLSAgMHgyMCwgMHgwZiwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMCwgMHgwZiwgMHhlNSwgMHgyZCwgMHg2MCwgMHgwNiwgMHhlNH19LAotIHsweDBiODYsIDY0LCB7IDB4ZjUsIDB4MmQsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzAsIDB4ODAsIDB4MTQsIDB4ZTUsIDB4MzAsIDB4ZDMsIDB4OTUsIDB4NDUsIDB4NTAsIDB4MGQsCi0gIDB4ZTUsIDB4MzAsIDB4YjUsIDB4NDUsIDB4MDYsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NDMsIDB4MzQsIDB4MDEsIDB4MDUsIDB4MzAsIDB4YzIsIDB4MGYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4ZDksIDB4ZTAsIDB4MzAsIDB4ZTIsIDB4MDQsIDB4N2YsIDB4MDAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OTYsCi0gIDB4ZWYsIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4MTQsIDB4NDUsIDB4MTMsIDB4NjAsIDB4NTcsIDB4YWUsIDB4MTMsIDB4YWYsIDB4MTQsIDB4ZDMsIDB4ZWZ9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDk0LCAweDQwLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDdlLCAweDAwLCAweDdmLCAweDQwLCAweGMzLCAweGU1LCAweDE0LCAweDlmLCAweGY1LCAweDE0LAotICAweGU1LCAweDEzLCAweDllLCAweGY1LCAweDEzLCAweGU0LCAweGZkLCAweGVkLCAweGMzLCAweDlmLCAweGU0LCAweDllLCAweDUwLCAweDFmLCAweDg1LCAweDE2LAotICAweDgyLCAweDg1LCAweDE1LCAweDgzLCAweGUwLCAweGZjLCAweDc0LCAweDAwLCAweDJkLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLAotICAweGVjLCAweGYwLCAweDBkLCAweDA1LCAweDE2LCAweGU1LCAweDE2LCAweDcwLCAweDAyLCAweDA1LCAweDE1LCAweDgwLCAweGRhLCAweDkwLCAweDdmfX0sCi0gezB4MGMwNiwgNjQsIHsgMHhhOSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhlZiwgMHhmMCwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5NCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHg3NCwgMHg4Nn19LAotIHsweDBjNDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ODQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsCi0gIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4NzUsIDB4OTgsIDB4NDAsCi0gIDB4NDMsIDB4YTgsIDB4MTAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4ZDIsCi0gIDB4MDQsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjJ9fSwKLSB7MHgwYzg2LCA2NCwgeyAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLAotICAweDhhLCAweDgzLCAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLAotICAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LAotICAweDAxLCAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzfX0sCi0gezB4MGNjNiwgNjQsIHsgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwgMHg0NCwgMHg0MiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5YywgMHg3NCwgMHgxMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhiZSwgMHhmMCwgMHgzMCwKLSAgMHgxNiwgMHgwNCwgMHg3ZiwgMHg4MCwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlZiwgMHhmMCwgMHhlNCwgMHg5MH19LAotIHsweDBkMDYsIDY0LCB7IDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ZjAsIDB4YzAsCi0gIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsCi0gIDB4MDgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MTIsIDB4MGIsIDB4YmEsIDB4ZDAsIDB4ZDAsIDB4ZDAsCi0gIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzB9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDkwLCAweDdmLCAweGM0LAotICAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLAotICAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHhmZiwgMHhmZiwgMHg0MCwgMHhjZCwgMHgwNiwgMHgxYywgMHgwMSwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMiwKLSAgMHgwMCwgMHgwMiwgMHgwOSwgMHgwMiwgMHg0MywgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwNywKLSAgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwKLSAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMH19LAotIHsweDBkYzYsIDY0LCB7IDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsCi0gIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4MTAsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksCi0gIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmUsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksCi0gIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTAsIDB4MDB9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDUzLCAweDAwLCAweDQ4LCAweDAwLCAweDMxLCAweDAwLCAweDMxLCAweDAwLCAweDMyLCAweDAwLCAweDJkLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLAotICAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLCAweDAwLCAweDIyLCAweDAzLCAweDU1LCAweDAwLCAweDUzLCAweDAwLCAweDQxLCAweDAwLCAweDJkLAotICAweDAwLCAweDM1LCAweDAwLCAweDMzLCAweDAwLCAweDIwLCAweDAwLCAweDMyLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMyLCAweDAwLCAweDYxLAotICAweDAwLCAweDcwLCAweDAwLCAweDcyLCAweDAwLCAweDMyLCAweDAwLCAweDM2LCAweDAwLCAweDAwLCAweDAwLCAweGMwLCAweGUwLCAweGMwLCAweDgzfX0sCi0gezB4MGU0NiwgNjQsIHsgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwKLSAgMHg3NCwgMHgwMiwgMHhmMCwgMHhkMiwgMHgwNiwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwKLSAgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwKLSAgMHgwMCwgMHhkMiwgMHgxNywgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMH19LAotIHsweDBlODYsIDY0LCB7IDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsCi0gIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTksIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCi0gIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDB9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDAyLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLAotICAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDEyLCAweDBjLCAweGNhLCAweDEyLCAweDBmLCAweGIzLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLAotICAweGU3LCAweDEyLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDBkLCAweDdlLCAweDAwLCAweDEyLCAweDAwLCAweDAzLCAweDkwLCAweDdmLCAweGQ2LAotICAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDEyLCAweDBjLCAweDI0LCAweDIyLCAweDAwLCAweDAyLCAweDBlLCAweDY5LCAweDAwLCAweDAyLCAweDBlfX0sCi0gezB4MGYwNiwgNjQsIHsgMHg0MiwgMHgwMCwgMHgwMiwgMHgwZCwgMHg0NSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg5MCwgMHgwMCwgMHgwMiwgMHgwZiwgMHgxMCwgMHgwMCwgMHgwMiwgMHgwZiwgMHgxNCwKLSAgMHgwMCwgMHgwMiwgMHgwZCwgMHgxMiwgMHgwMCwgMHgwMiwgMHgwZiwgMHgxYywgMHgwMCwgMHgwMiwgMHgwZSwgMHhiNywgMHgwMCwgMHgwMiwgMHgwZiwgMHgyNCwKLSAgMHgwMCwgMHgwMiwgMHgwZiwgMHgzMywgMHgwMCwgMHgwMiwgMHgwZiwgMHgyYywgMHgwMCwgMHgwMiwgMHgwZiwgMHg1OCwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywKLSAgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MH19LAotIHsweDBmNDYsIDY0LCB7IDB4N2YsIDB4YTksIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsCi0gIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsCi0gIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsCi0gIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDR9fSwKLSB7MHgwZjg2LCA2MSwgeyAweDA4LCAweGYwLCAweDMwLCAweDFhLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDAwLCAweDAzLCAweDkwLAotICAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLAotICAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLAotICAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyfX0sCi0gezB4ZmZmZiwJMCwJezB4MDB9fQotfTsKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYwppbmRleCBmZjU0MjAzLi42NDRhMWVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYwpAQCAtNzYsMTggKzc2LDE0IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9zZXJpYWwuaD4KIAogc3RhdGljIGludCBkZWJ1ZzsKIAotc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgewotCV9fdTE2IGFkZHJlc3M7Ci0JX191OCBkYXRhX3NpemU7Ci0JX191OCBkYXRhWzE2XTsKLX07Ci0KIC8qIG1ha2UgYSBzaW1wbGUgZGVmaW5lIHRvIGhhbmRsZSBpZiB3ZSBhcmUgY29tcGlsaW5nIGtleXNwYW5fcGRhIG9yIHhpcmNvbSBzdXBwb3J0ICovCiAjaWYgZGVmaW5lZChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQSkgfHwgZGVmaW5lZChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQV9NT0RVTEUpCiAJI2RlZmluZSBLRVlTUEFOCkBAIC0xMDAsMTQgKzk2LDYgQEAKIAkjdW5kZWYgWElSQ09NCiAjZW5kaWYKIAotI2lmZGVmIEtFWVNQQU4KLSNpbmNsdWRlICJrZXlzcGFuX3BkYV9mdy5oIgotI2VuZGlmCi0KLSNpZmRlZiBYSVJDT00KLSNpbmNsdWRlICJ4aXJjb21fcGdzX2Z3LmgiCi0jZW5kaWYKLQogLyoKICAqIFZlcnNpb24gSW5mb3JtYXRpb24KICAqLwpAQCAtNzIyLDM4ICs3MTAsNDcgQEAKIHN0YXRpYyBpbnQga2V5c3Bhbl9wZGFfZmFrZV9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQogewogCWludCByZXNwb25zZTsKLQljb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqcmVjb3JkID0gTlVMTDsKKwljb25zdCBjaGFyICpmd19uYW1lOworCWNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjb3JkOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CiAKIAkvKiBkb3dubG9hZCB0aGUgZmlybXdhcmUgaGVyZSAuLi4gKi8KIAlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldChzZXJpYWwsIDEpOwogCisJaWYgKDApIHsgOyB9CiAjaWZkZWYgS0VZU1BBTgotCWlmIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gS0VZU1BBTl9WRU5ET1JfSUQpCi0JCXJlY29yZCA9ICZrZXlzcGFuX3BkYV9maXJtd2FyZVswXTsKKwllbHNlIGlmIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gS0VZU1BBTl9WRU5ET1JfSUQpCisJCWZ3X25hbWUgPSAia2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuZnciOwogI2VuZGlmCiAjaWZkZWYgWElSQ09NCi0JaWYgKChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gWElSQ09NX1ZFTkRPUl9JRCkgfHwKLQkgICAgKGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSA9PSBFTlRSRUdSQV9WRU5ET1JfSUQpKQotCQlyZWNvcmQgPSAmeGlyY29tX3Bnc19maXJtd2FyZVswXTsKKwllbHNlIGlmICgobGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IFhJUkNPTV9WRU5ET1JfSUQpIHx8CisJCSAobGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IEVOVFJFR1JBX1ZFTkRPUl9JRCkpCisJCWZ3X25hbWUgPSAia2V5c3Bhbl9wZGEveGlyY29tX3Bncy5mdyI7CiAjZW5kaWYKLQlpZiAocmVjb3JkID09IE5VTEwpIHsKKwllbHNlIHsKIAkJZXJyKCIlczogdW5rbm93biB2ZW5kb3IsIGFib3J0aW5nLiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQorCWlmIChyZXF1ZXN0X2loZXhfZmlybXdhcmUoJmZ3LCBmd19uYW1lLCAmc2VyaWFsLT5kZXYtPmRldikpIHsKKwkJZXJyKCJmYWlsZWQgdG8gbG9hZCBmaXJtd2FyZSBcIiVzXCJcbiIsIGZ3X25hbWUpOworCQlyZXR1cm4gLUVOT0VOVDsKKwl9CisJcmVjb3JkID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZ3LT5kYXRhOwogCi0Jd2hpbGUocmVjb3JkLT5hZGRyZXNzICE9IDB4ZmZmZikgewotCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5KHNlcmlhbCwgcmVjb3JkLT5hZGRyZXNzLAorCXdoaWxlIChyZWNvcmQpIHsKKwkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeShzZXJpYWwsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCiAJCQkJCSAgICAgKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQtPmRhdGEsCi0JCQkJCSAgICAgcmVjb3JkLT5kYXRhX3NpemUsIDB4YTApOworCQkJCQkgICAgIGJlMTZfdG9fY3B1KHJlY29yZC0+bGVuKSwgMHhhMCk7CiAJCWlmIChyZXNwb25zZSA8IDApIHsKIAkJCWVycigiZXp1c2Jfd3JpdGVtZW1vcnkgZmFpbGVkIGZvciBLZXlzcGFuIFBEQSAiCiAJCQkgICAgImZpcm13YXJlICglZCAlMDRYICVwICVkKSIsCi0JCQkgICAgcmVzcG9uc2UsIAotCQkJICAgIHJlY29yZC0+YWRkcmVzcywgcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSk7CisJCQkgICAgcmVzcG9uc2UsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCisJCQkgICAgcmVjb3JkLT5kYXRhLCBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbikpOwogCQkJYnJlYWs7CiAJCX0KLQkJcmVjb3JkKys7CisJCXJlY29yZCA9IGloZXhfbmV4dF9iaW5yZWMocmVjb3JkKTsKIAl9CisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJLyogYnJpbmcgZGV2aWNlIG91dCBvZiByZXNldC4gUmVudW1lcmF0aW9uIHdpbGwgb2NjdXIgaW4gYSBtb21lbnQKIAkgICBhbmQgdGhlIG5ldyBkZXZpY2Ugd2lsbCBiaW5kIHRvIHRoZSByZWFsIGRyaXZlciAqLwogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0KHNlcmlhbCwgMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGFfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYV9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjUzYWNjLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYV9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotLyoKLSAqIFVTQiBLZXlzcGFuIFBEQSBGaXJtd2FyZQotICoKLSAqIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCBCcmlhbiBXYXJuZXIJPHdhcm5lckBsb3RoYXIuY29tPgotICoKLSAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogR2VuZXJhdGVkIGZyb20ga2V5c3Bhbl9wZGEucyBieSBlenVzYl9jb252ZXJ0LnBsCi0gKgotICovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3BkYV9maXJtd2FyZVtdID0gewoteyAweDAwMDAsCTMsCXsweDAyLCAweDAyLCAweDAwfSB9LAoteyAweDAwMjMsCTQsCXsweDAyLCAweDA1LCAweDVmLCAweDAwfSB9LAoteyAweDAwNDMsCTQsCXsweDAyLCAweDAxLCAweDAwLCAweDAwfSB9LAoteyAweDAwMzAsCTUsCXsweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfSB9LAoteyAweDAxMDAsCTE2LAl7MHgwMiwgMHgwMiwgMHg5NiwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMH0gfSwKLXsgMHgwMTEwLAkxNiwJezB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDB9IH0sCi17IDB4MDEyMCwJMTYsCXsweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDA0LCAweDYxLCAweDAwLCAweDAyLCAweDA0LCAweDg5LCAweDAwfSB9LAoteyAweDAyMDAsCTE2LAl7MHg3NSwgMHg4MSwgMHg1ZSwgMHhlNCwgMHhmNSwgMHgzMiwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMCwgMHhmNSwgMHgzMSwgMHhmNSwgMHgzNCwgMHhjMiwgMHgwMH0gfSwKLXsgMHgwMjEwLAkxNiwJezB4YzIsIDB4MDEsIDB4YTksIDB4MDAsIDB4NzQsIDB4ZmUsIDB4OTAsIDB4MTAsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZDksIDB4ZmMsIDB4NzQsIDB4ZmQsIDB4OTB9IH0sCi17IDB4MDIyMCwJMTYsCXsweDExLCAweDAwLCAweGYwLCAweGEzLCAweGQ5LCAweGZjLCAweDc0LCAweDAyLCAweDkwLCAweDdmLCAweDlkLCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmfSB9LAoteyAweDAyMzAsCTE2LAl7MHg5NywgMHhmMCwgMHg3NCwgMHg4NiwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwMjQwLAkxNiwJezB4YWYsIDB4ZTAsIDB4ZDIsIDB4ZTAsIDB4ZjAsIDB4NzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YWIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MDI1MCwJMTYsCXsweDdmLCAweGFjLCAweDc0LCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGFkLCAweDc0LCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDc0fSB9LAoteyAweDAyNjAsCTE2LAl7MHg4NCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHg3NCwgMHgwMCwgMHhmNSwgMHg5OCwgMHg3NSwgMHhjOCwgMHgzMCwgMHg3YiwgMHgwNSwgMHg5MSwgMHgyMH0gfSwKLXsgMHgwMjcwLAkxNiwJezB4ZDIsIDB4Y2EsIDB4NzUsIDB4OTgsIDB4NTAsIDB4ZDIsIDB4ZTgsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4YWMsIDB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTB9IH0sCi17IDB4MDI4MCwJMTYsCXsweDdmLCAweGQ2LCAweDc0LCAweDAyLCAweGYwLCAweDc5LCAweDJlLCAweDdhLCAweDAwLCAweDdiLCAweDAwLCAweGRiLCAweGZlLCAweGRhLCAweGZhLCAweGQ5fSB9LAoteyAweDAyOTAsCTE2LAl7MHhmNiwgMHg3NCwgMHgwNiwgMHhmMCwgMHg4MCwgMHhmZSwgMHhjMCwgMHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NX0gfSwKLXsgMHgwMmEwLAkxNiwJezB4YzAsIDB4ZTAsIDB4ZTUsIDB4OTEsIDB4YzIsIDB4ZTQsIDB4ZjUsIDB4OTEsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDJiMCwJMTYsCXsweGU4LCAweGUwLCAweGY5LCAweGEzLCAweGUwLCAweGZhLCAweGEzLCAweGUwLCAweGZiLCAweGEzLCAweGUwLCAweGZjLCAweGU5LCAweDU0LCAweDYwLCAweGI0fSB9LAoteyAweDAyYzAsCTE2LAl7MHgwMCwgMHgwMywgMHgwMiwgMHgwMywgMHgzOSwgMHhiNCwgMHg0MCwgMHg2ZSwgMHhiYSwgMHgwMCwgMHgwYiwgMHgxMiwgMHgwNCwgMHgyMCwgMHg0MCwgMHgwM30gfSwKLXsgMHgwMmQwLAkxNiwJezB4MDIsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDIsIDB4MDMsIDB4MDJ9IH0sCi17IDB4MDJlMCwJMTYsCXsweDA0LCAweDBhLCAweGJhLCAweDAzLCAweDAzLCAweDAyLCAweDA0LCAweDQ0LCAweGJhLCAweDA0LCAweDFlLCAweGJiLCAweDAwLCAweDBhLCAweDkwLCAweDdmfSB9LAoteyAweDAyZjAsCTE2LAl7MHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgwMzAwLAkxNiwJezB4N2YsIDB4OTUsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4YmEsIDB4MDUsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmF9IH0sCi17IDB4MDMxMCwJMTYsCXsweDA2LCAweDE5LCAweGJiLCAweDAwLCAweDA4LCAweGU1LCAweDMzLCAweGQzLCAweDk1LCAweDMyLCAweDAyLCAweDAzLCAweGRlLCAweGJiLCAweDAxLCAweDA4fSB9LAoteyAweDAzMjAsCTE2LAl7MHhlNSwgMHgzMiwgMHhjMywgMHg5NSwgMHgzMywgMHgwMiwgMHgwMywgMHhkZSwgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYSwgMHgwNywgMHgwNSwgMHg4YiwgMHgzNH0gfSwKLXsgMHgwMzMwLAkxNiwJezB4MDIsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MGEsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDAsIDB4MjAsIDB4YjksIDB4ODAsIDB4MTAsIDB4OTB9IH0sCi17IDB4MDM0MCwJMTYsCXsweDdmLCAweDAwLCAweGU0LCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweGI5fSB9LAoteyAweDAzNTAsCTE2LAl7MHg4MiwgMHgwMiwgMHg4MCwgMHhlYiwgMHhiOSwgMHg4MSwgMHgwMiwgMHg4MCwgMHhlNiwgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYSwgMHgwMSwgMHgwZiwgMHhiYn0gfSwKLXsgMHgwMzYwLAkxNiwJezB4MDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmIsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDN9IH0sCi17IDB4MDM3MCwJMTYsCXsweDBmLCAweGJiLCAweDAwLCAweDAzLCAweDAyLCAweDA0LCAweDBhLCAweGJiLCAweDAxLCAweDAzLCAweDAyLCAweDA0LCAweDAyLCAweDAyLCAweDA0LCAweDBhfSB9LAoteyAweDAzODAsCTE2LAl7MHhiYSwgMHgwNiwgMHg1NiwgMHhiYywgMHgwMSwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhkNCwgMHg3NCwgMHgwNiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHg3NH0gfSwKLXsgMHgwMzkwLAkxNiwJezB4MTIsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4YmMsIDB4MDIsIDB4MTIsIDB4YmIsIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4NzQsIDB4MDZ9IH0sCi17IDB4MDNhMCwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweGQ1LCAweDc0LCAweDI0LCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweGJjLCAweDAzLCAweDI5LCAweDc0LCAweDA0LCAweGMzfSB9LAoteyAweDAzYjAsCTE2LAl7MHg5YiwgMHg0MCwgMHg1NywgMHg2MCwgMHg1NSwgMHhlYiwgMHgyYiwgMHg5MCwgMHgwNiwgMHg0NCwgMHgyNSwgMHg4MiwgMHhmNSwgMHg4MiwgMHg3NCwgMHgwMH0gfSwKLXsgMHgwM2MwLAkxNiwJezB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZTksIDB4ZjAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDNkMCwJMTYsCXsweGQ1LCAweGVhLCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweDAyLCAweDA0LCAweDBhLCAweGJhLCAweDA4LCAweDBmLCAweDc0LCAweDAxLCAweDkwLCAweDdmfSB9LAoteyAweDAzZTAsCTE2LAl7MHgwMCwgMHhmMCwgMHg3NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHhiYSwgMHgwOSwgMHgwMywgMHgwMiwgMHgwNH0gfSwKLXsgMHgwM2YwLAkxNiwJezB4MDIsIDB4YmEsIDB4MGEsIDB4MDUsIDB4NzQsIDB4MDAsIDB4MDIsIDB4MDMsIDB4ZGUsIDB4YmEsIDB4MGIsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MDIsIDB4MDJ9IH0sCi17IDB4MDQwMCwJMTYsCXsweDA0LCAweDBhLCAweDkwLCAweDdmLCAweGI0LCAweDc0LCAweDAyLCAweGYwLCAweDgwLCAweDA5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxfSB9LAoteyAweDA0MTAsCTE2LAl7MHhmMCwgMHg4MCwgMHgwMCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4NiwgMHgzMn0gfSwKLXsgMHgwNDIwLAkxNiwJezB4ZWIsIDB4MjAsIDB4ZTcsIDB4MWUsIDB4YzMsIDB4OTQsIDB4MGEsIDB4NTAsIDB4MTksIDB4ZWIsIDB4MjMsIDB4MjQsIDB4ZmUsIDB4ZjUsIDB4ODIsIDB4NzR9IH0sCi17IDB4MDQzMCwJMTYsCXsweDA1LCAweDM0LCAweDAwLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGNiLCAweGY1LCAweGNkLCAweGEzLCAweGUwLCAweGY1LCAweGNhLCAweGY1LCAweGNjfSB9LAoteyAweDA0NDAsCTE2LAl7MHhjMywgMHgyMiwgMHhkMywgMHgyMiwgMHhiOSwgMHg0MSwgMHgxMSwgMHhlYiwgMHg2NCwgMHhmZiwgMHg1NCwgMHg4NCwgMHhmYiwgMHg5MCwgMHg3ZiwgMHg5OH0gfSwKLXsgMHgwNDUwLAkxNiwJezB4ZTAsIDB4NTQsIDB4N2IsIDB4NGIsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NjQsIDB4ZmYsIDB4MDIsIDB4MDN9IH0sCi17IDB4MDQ2MCwJMTYsCXsweGRlLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwLCAweDg0LCAweGMwLCAweDg1LCAweGMwLCAweGUwLCAweGU1LCAweDkxLCAweGMyfSB9LAoteyAweDA0NzAsCTE2LAl7MHhlNCwgMHhmNSwgMHg5MSwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwNCwgMHhmMCwgMHgxMiwgMHgwNSwgMHhhMCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NX0gfSwKLXsgMHgwNDgwLAkxNiwJezB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzB9IH0sCi17IDB4MDQ5MCwJMTYsCXsweDg0LCAweGMwLCAweDg1LCAweGMwLCAweGUwLCAweGU1LCAweDkxLCAweGMyLCAweGU0LCAweGY1LCAweDkxLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDA0fSB9LAoteyAweDA0YTAsCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmOSwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3ZCwgMHhjMCwgMHg3NSwgMHg4NSwgMHgxMCwgMHg4NX0gfSwKLXsgMHgwNGIwLAkxNiwJezB4MzIsIDB4ODQsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4MDUsIDB4ODQsIDB4ZjAsIDB4ZTUsIDB4ODQsIDB4YjUsIDB4MzMsIDB4MDIsIDB4ODAsIDB4MDksIDB4MDV9IH0sCi17IDB4MDRjMCwJMTYsCXsweDMyLCAweDA1LCAweDg2LCAweGEzLCAweGQ5LCAweGVjLCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGIxLCAweDMxLCAweGQwLCAweGUwfSB9LAoteyAweDA0ZDAsCTE2LAl7MHhkMCwgMHg4NSwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4NiwgMHgzMiwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNGUwLAkxNiwJezB4YmMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NGIsIDB4OTAsIDB4N2QsIDB4MDAsIDB4ZTUsIDB4MzIsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4MzMsIDB4ZjAsIDB4YTN9IH0sCi17IDB4MDRmMCwJMTYsCXsweGU1LCAweDMwLCAweGYwLCAweGEzLCAweGU1LCAweDMxLCAweGYwLCAweGEzLCAweGU0LCAweDMwLCAweDAwLCAweDAxLCAweDA0LCAweGYwLCAweGEzLCAweDA1fSB9LAoteyAweDA1MDAsCTE2LAl7MHg4NiwgMHg5MCwgMHgxMCwgMHgwMCwgMHg3OSwgMHgxMCwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkOSwgMHhmNn0gfSwKLXsgMHgwNTEwLAkxNiwJezB4MDUsIDB4ODYsIDB4NzQsIDB4ZmMsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MTEsIDB4MDAsIDB4NzksIDB4MTAsIDB4ZTAsIDB4YTMsIDB4MDV9IH0sCi17IDB4MDUyMCwJMTYsCXsweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGQ5LCAweGY2LCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdmLCAweGJkLCAweDc0LCAweDI2LCAweGYwfSB9LAoteyAweDA1MzAsCTE2LAl7MHgyMiwgMHgyMCwgMHgwMCwgMHgxMywgMHhlNSwgMHgzMiwgMHhiNSwgMHgzMywgMHgwMSwgMHgyMiwgMHgwNSwgMHgzMywgMHg3NSwgMHg4MywgMHgxMCwgMHg4NX0gfSwKLXsgMHgwNTQwLAkxNiwJezB4MzMsIDB4ODIsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4ZDIsIDB4MDAsIDB4NzQsIDB4MDAsIDB4YjUsIDB4MzQsIDB4MDEsIDB4MjIsIDB4ZTUsIDB4MzMsIDB4ZDN9IH0sCi17IDB4MDU1MCwJMTYsCXsweDk1LCAweDMyLCAweGMzLCAweDk1LCAweDM0LCAweDQwLCAweGY1LCAweDc1LCAweDM0LCAweDAwLCAweGQyLCAweDAxLCAweDAyLCAweDA1LCAweGEwLCAweGMwfSB9LAoteyAweDA1NjAsCTE2LAl7MHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NSwgMHhjMCwgMHhlMCwgMHgzMCwgMHg5OSwgMHgwNywgMHhjMiwgMHg5OX0gfSwKLXsgMHgwNTcwLAkxNiwJezB4YzIsIDB4MDAsIDB4MTIsIDB4MDUsIDB4MzQsIDB4MzAsIDB4OTgsIDB4MDUsIDB4MTIsIDB4MDUsIDB4OGEsIDB4YzIsIDB4OTgsIDB4ZDAsIDB4ZTAsIDB4ZDB9IH0sCi17IDB4MDU4MCwJMTYsCXsweDg1LCAweGQwLCAweDg0LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyLCAweDc1LCAweDgzLCAweDExLCAweDg1LCAweDMwLCAweDgyfSB9LAoteyAweDA1OTAsCTE2LAl7MHgwNSwgMHg4MiwgMHhlNSwgMHg5OSwgMHhmMCwgMHhlNSwgMHg4MiwgMHhiNSwgMHgzMSwgMHgwMSwgMHgyMiwgMHgwNSwgMHgzMCwgMHhiMSwgMHhhMCwgMHgyMn0gfSwKLXsgMHgwNWEwLAkxNiwJezB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzgsIDB4MjAsIDB4MDEsIDB4MzYsIDB4ZTUsIDB4MzAsIDB4YjUsIDB4MzEsIDB4MDEsIDB4MjJ9IH0sCi17IDB4MDViMCwJMTYsCXsweGU0LCAweGY1LCAweDg2LCAweDc1LCAweDgzLCAweDExLCAweDA1LCAweDg2LCAweDkwLCAweDdlLCAweDAwLCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweDc5fSB9LAoteyAweDA1YzAsCTE2LAl7MHgwMSwgMHhlNSwgMHgzMCwgMHhiNSwgMHgzMSwgMHgwMiwgMHg4MCwgMHgxMCwgMHgwNSwgMHgzMSwgMHg4NSwgMHgzMSwgMHg4MiwgMHhlMCwgMHgwNSwgMHg4Nn0gfSwKLXsgMHgwNWQwLAkxNiwJezB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4MDksIDB4YjksIDB4NDAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4YjksIDB4ZTksIDB4NjAsIDB4MDEsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4MDVlMCwJMTYsCXsweGMyLCAweDAxLCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdlLCAweDAwLCAweDc0LCAweDAxLCAweGYwLCAweGEzLCAweDc0LCAweDAyLCAweGYwLCAweDkwfSB9LAoteyAweDA1ZjAsCTE2LAl7MHg3ZiwgMHhiOSwgMHhmMCwgMHgyMiwgMHhjMiwgMHg5OSwgMHhmNSwgMHg5OSwgMHgzMCwgMHg5OSwgMHhmZCwgMHhjMiwgMHg5OSwgMHgyMiwgMHhlNSwgMHg1ZX0gfSwKLXsgMHgwNjAwLAkxNiwJezB4ZjYsIDB4M2MsIDB4ZmQsIDB4OGYsIDB4ZmUsIDB4YzgsIDB4ZmYsIDB4NjQsIDB4ZmYsIDB4YjIsIDB4ZmYsIDB4ZDksIDB4ZmYsIDB4ZWQsIDB4ZmYsIDB4ZjN9IH0sCi17IDB4MDYxMCwJMTYsCXsweGZmLCAweGZhLCAweDEyLCAweDAxLCAweDAwLCAweDAxLCAweGZmLCAweGZmLCAweGZmLCAweDQwLCAweGNkLCAweDA2LCAweDA0LCAweDAxLCAweDg5LCAweGFifSB9LAoteyAweDA2MjAsCTE2LAl7MHgwMSwgMHgwMiwgMHgwMywgMHgwMSwgMHgwOSwgMHgwMiwgMHgyMCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMH0gfSwKLXsgMHgwNjMwLAkxNiwJezB4MDAsIDB4MDIsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDMsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4MDJ9IH0sCi17IDB4MDY0MCwJMTYsCXsweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA2LCAweDRjLCAweDA2LCAweDUwLCAweDA2LCAweDcyLCAweDA2LCAweGEwLCAweDA0LCAweDAzLCAweDAwLCAweDAwfSB9LAoteyAweDA2NTAsCTE2LAl7MHgyMiwgMHgwMywgMHg0MSwgMHgwMCwgMHg0MywgMHgwMCwgMHg0ZCwgMHgwMCwgMHg0NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MywgMHgwMH0gfSwKLXsgMHgwNjYwLAkxNiwJezB4NjIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzcsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzQsIDB4MDB9IH0sCi17IDB4MDY3MCwJMTYsCXsweDczLCAweDAwLCAweDJlLCAweDAzLCAweDQxLCAweDAwLCAweDQzLCAweDAwLCAweDRkLCAweDAwLCAweDQ1LCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwfSB9LAoteyAweDA2ODAsCTE2LAl7MHg1MywgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMH0gfSwKLXsgMHgwNjkwLAkxNiwJezB4NmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzcsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzQsIDB4MDB9IH0sCi17IDB4MDZhMCwJNiwJezB4MDYsIDB4MDMsIDB4MzQsIDB4MDAsIDB4MzcsIDB4MDB9IH0sCi17IDB4ZmZmZiwJMCwJezB4MDB9IH0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOHhfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE4eF9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2IzYmMwLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE4eF9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQ3ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhMTh4X2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMTh4X2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTE4eF9maXJtd2FyZVtdID0gewotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MTIsIDB4Zjd9fSwKLSB7MHgwMDAzLCAxNiwgeyAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwfX0sCi0gezB4MDAxMywgMTYsIHsgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHg5MH19LAotIHsweDAwMjMsIDE1LCB7IDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweDMwLCAweDA5LCAweDE4LCAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk1LCAweDNjLCAweDQwLCAweDAzLCAweDAyLCAweDAwLCAweGQ4LCAweDkwfX0sCi0gezB4MDA1NiwgMTYsIHsgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwMCwgMHg4MCwgMHg3NywgMHgzMCwgMHgwMywgMHgzYiwgMHg5MCwgMHg3Zn19LAotIHsweDAwNjYsIDE2LCB7IDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4MWIsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4NjQsIDB4OTAsIDB4N2V9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDA5LCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwfX0sCi0gezB4MDA4NiwgMTYsIHsgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg0MSwgMHgxMiwgMHgwYywgMHhiYX19LAotIHsweDAwOTYsIDE2LCB7IDB4YzIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4ODAsIDB4MzksIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzJ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDA5fX0sCi0gezB4MDBiNiwgMTYsIHsgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZH19LAotIHsweDAwYzYsIDE2LCB7IDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGMsIDB4YmEsIDB4ZDIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweDYwLCAweDEyLCAweDExLCAweGQ2LCAweDhmfX0sCi0gezB4MDBlNiwgMTYsIHsgMHgxOSwgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgzNiwgMHhlNSwgMHgxOSwgMHhjMywgMHg5NSwgMHgzYSwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxMiwgMHhlYn19LAotIHsweDAwZjYsIDE2LCB7IDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzYsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGIsIDB4NWUsIDB4YzIsIDB4MGIsIDB4ZTUsIDB4MTl9fSwKLSB7MHgwMDM2LCAxMiwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxMywgMHgwMH19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MGUsIDB4MDB9fSwKLSB7MHgwMTA2LCA2NCwgeyAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM2LCAweDAyLCAweGU1LCAweDM2LCAweDMwLCAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LAotICAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdlLAotICAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM2LCAweDEyLCAweDBmLCAweDRiLCAweGU1LCAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGI3LCAweGYwLAotICAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4fX0sCi0gezB4MDE0NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg4MCwgMHhlNSwgMHgzNiwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwKLSAgMHgwYywgMHhkZiwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwKLSAgMHgyMCwgMHgwNSwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHhjMiwgMHgwNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxOCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YX19LAotIHsweDAxODYsIDY0LCB7IDB4N2UsIDB4NzksIDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsCi0gIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZTAsIDB4NjAsIDB4NjgsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MjQsCi0gIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NDMsIDB4NDYsCi0gIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4ZTQsIDB4OTB9fSwKLSB7MHgwMWM2LCA2NCwgeyAweDdlLCAweDEzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLCAweDEwLCAweDM1LCAweDkwLCAweDdlLCAweDAyLCAweGUwLAotICAweGZmLCAweDEyLCAweDEwLCAweDViLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDAzLAotICAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGIxLCAweDQzLCAweDQ2LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDA2LCAweDkwfX0sCi0gezB4MDIwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwgMHgxMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwKLSAgMHg3ZSwgMHgxMywgMHhmMCwgMHg3NSwgMHgyNSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgwNSwgMHhlMCwgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwKLSAgMHhmNSwgMHg0NCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgwNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MiwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0Mn19LAotIHsweDAyNDYsIDY0LCB7IDB4N2YsIDB4NTMsIDB4NDIsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MDksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDIsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTAsIDB4YTcsIDB4OTAsIDB4N2UsIDB4MGIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4Y2QsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsCi0gIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDIsIDB4N2YsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsIDB4N2UsIDB4MGMsCi0gIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmR9fSwKLSB7MHgwMjg2LCA2NCwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDBlLCAweGUwLCAweDYwLAotICAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGZlLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDEyLCAweGUwLCAweGY1LCAweDNhLCAweGEzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweGEzLCAweGUwLCAweGY1LCAweDNjLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDEwfX0sCi0gezB4MDJjNiwgNjQsIHsgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwKLSAgMHg5MCwgMHg3ZSwgMHgxNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NCwgMHhiZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwKLSAgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHgxMiwgMHgxMiwgMHhkZiwKLSAgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZSwgMHhmZCwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMn19LAotIHsweDAzMDYsIDY0LCB7IDB4MTEsIDB4YjEsIDB4ZTQsIDB4ZjUsIDB4MmEsIDB4ZjUsIDB4MjksIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsCi0gIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NzUsIDB4MjksIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTgsCi0gIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MTksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTh9fSwKLSB7MHgwMzQ2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFhLCAweGUwLCAweDYwLCAweDBmLAotICAweDUzLCAweDNlLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweDc1LCAweDJiLCAweDAxLCAweGQyLCAweDA3LCAweDkwLAotICAweDdlLCAweDFiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNlLCAweDAxLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweGU0LAotICAweGY1LCAweDJiLCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFjLCAweGUwLCAweDYwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyfX0sCi0gezB4MDM4NiwgNjQsIHsgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYiwKLSAgMHg5MCwgMHg3ZSwgMHgxZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgyYywgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOCwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwKLSAgMHgxZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwgMHgxNSwgMHhmMCwKLSAgMHg3NCwgMHgzNSwgMHhmMCwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZiwgMHhmMCwgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOH19LAotIHsweDAzYzYsIDY0LCB7IDB4NjAsIDB4MDIsIDB4MTUsIDB4MzgsIDB4MjAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsCi0gIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4ZDIsIDB4MTMsIDB4MTIsIDB4MTIsIDB4ZGYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsCi0gIDB4MTksIDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmEsIDB4ZDIsIDB4MDcsIDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4NTQsIDB4ODAsCi0gIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjYsIDB4ZDIsIDB4MDcsIDB4MzAsIDB4MGQsIDB4MTEsIDB4MTJ9fSwKLSB7MHgwNDA2LCA2NCwgeyAweDEzLCAweDMzLCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDI1LCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDI1LCAweGQyLCAweDA3LCAweDIwLAotICAweDFiLCAweDAzLCAweDAyLCAweDA3LCAweGVjLCAweDMwLCAweDBhLCAweDE4LCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzLCAweDk1LCAweDNkLCAweDQwLAotICAweDAzLCAweDAyLCAweDA0LCAweGFlLCAweDkwLCAweDdmLCAweGMxLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDAwLCAweDgwLCAweDc3LAotICAweDMwLCAweDA0LCAweDNiLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzfX0sCi0gezB4MDQ0NiwgNjQsIHsgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHgxNCwgMHhmNSwKLSAgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwKLSAgMHgwZCwgMHg0MSwgMHgxMiwgMHgwZCwgMHgwNCwgMHhjMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwKLSAgMHhjYywgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyOSwgMHg5MH19LAotIHsweDA0ODYsIDY0LCB7IDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjAsCi0gIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2MsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGQsIDB4MDQsCi0gIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDUsCi0gIDB4MzYsIDB4MTIsIDB4MTIsIDB4MjAsIDB4OGYsIDB4MTksIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MTksIDB4YzMsIDB4OTV9fSwKLSB7MHgwNGM2LCA2NCwgeyAweDNiLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDU3LCAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDM3LCAweDIwLCAweGU3LCAweDAzLCAweDMwLCAweDBjLAotICAweDVlLCAweGMyLCAweDBjLCAweGU1LCAweDE5LCAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM3LCAweDAyLCAweGU1LCAweDM3LCAweDMwLAotICAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLAotICAweDdkLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM3LCAweDEyLCAweDBmLCAweDg0LCAweGU1fX0sCi0gezB4MDUwNiwgNjQsIHsgMHgxOSwgMHgyNSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg4MCwgMHgyNywgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwKLSAgMHgxOSwgMHgzZiwgMHg4NSwgMHgxOSwgMHgwOCwgMHg5MCwgMHg3ZCwgMHg4MCwgMHhlNSwgMHgzNywgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg4MSwgMHg3NSwKLSAgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwgMHgwZCwgMHgyOSwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhkMCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHgwNiwgMHgwMywgMHgwMiwgMHgwNywgMHg5NywgMHhjMiwgMHgwNiwgMHhlNH19LAotIHsweDA1NDYsIDY0LCB7IDB4ZjUsIDB4MTgsIDB4NzQsIDB4YzAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsCi0gIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4N2UsIDB4NzksIDB4MjAsIDB4MjQsIDB4MjAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsCi0gIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MjAsIDB4ZTAsIDB4NjAsIDB4NjgsCi0gIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MjQsIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MDN9fSwKLSB7MHgwNTg2LCA2NCwgeyAweDdkLCAweGNkLCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweGU1LCAweDQ3LCAweGYwLCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDIxLCAweGUwLCAweGZmLCAweDEyLAotICAweDExLCAweDE5LCAweDkwLCAweDdlLCAweDIyLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDNmLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDMxLCAweGUwLAotICAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwfX0sCi0gezB4MDVjNiwgNjQsIHsgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwKLSAgMHhlNSwgMHg0MSwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwKLSAgMHgzMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgzMywgMHhmMCwgMHg3NSwgMHgyZSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgyNSwgMHhlMCwKLSAgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmNSwgMHg0NSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDA2MDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDUsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MjcsIDB4ZTAsIDB4NjAsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDMsCi0gIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDMsIDB4N2YsIDB4NTMsIDB4NDMsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDMsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NjUsIDB4OTAsIDB4N2UsIDB4MmIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4OGIsCi0gIDB4YWYsIDB4NDMsIDB4MTIsIDB4MTAsIDB4ZjMsIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDMsIDB4N2YsIDB4YWZ9fSwKLSB7MHgwNjQ2LCA2NCwgeyAweDQzLCAweDEyLCAweDEwLCAweGYzLCAweDkwLCAweDdlLCAweDJjLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAyLAotICAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGZkLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LAotICAweGYwLCAweDkwLCAweDdlLCAweDJlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAxLCAweDgwLCAweDAzLAotICAweDUzLCAweDQ3LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwfX0sCi0gezB4MDY4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHgzMiwgMHhlMCwgMHhmNSwgMHgzYiwgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzZCwgMHhhMywgMHhlMCwKLSAgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHg0NywgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZSwgMHgzNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NSwgMHhiZiwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDA2YzYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4MTIsIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4M2YsIDB4ZmQsCi0gIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsCi0gIDB4MzcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4NzUsIDB4MzIsCi0gIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4MzgsIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjB9fSwKLSB7MHgwNzA2LCA2NCwgeyAweGU1LCAweDQxLCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGQyLCAweDAwLCAweDkwLCAweDdlLCAweDM5LCAweGUwLCAweDYwLCAweDExLCAweDQzLAotICAweDQ1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAotICAweDkwLCAweDdlLCAweDNhLCAweGUwLCAweDYwLCAweDBmLCAweDUzLCAweDNmLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDExLCAweGZiLAotICAweDc1LCAweDM0LCAweDAxLCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNmLCAweDAxLCAweGU0fX0sCi0gezB4MDc0NiwgNjQsIHsgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmNSwgMHgzNCwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzYywgMHhlMCwgMHg2MCwgMHgwZSwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHhlNSwgMHg0MSwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgzZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYywgMHg5MCwgMHg3ZSwgMHgzZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgzNSwgMHgwMSwgMHhlNCwKLSAgMHhmNSwgMHgzOSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxM319LAotIHsweDA3ODYsIDY0LCB7IDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDEsIDB4ZjAsCi0gIDB4MzAsIDB4MWEsIDB4NTIsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDIsIDB4MTUsIDB4MzksIDB4MzAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsCi0gIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4YzIsIDB4MTMsIDB4MTIsCi0gIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MzMsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MzMsIDB4ZDJ9fSwKLSB7MHgwN2M2LCA2NCwgeyAweDA4LCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDgwLCAweGY1LCAweDE5LCAweDY1LCAweDJmLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDJmLCAweGQyLAotICAweDA4LCAweDMwLCAweDBlLCAweDExLCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDJlLCAweDYwLCAweDA1LAotICAweDg1LCAweDE5LCAweDJlLCAweGQyLCAweDA4LCAweDMwLCAweDFhLCAweDJhLCAweDkwLCAweDdmLCAweGQyLCAweGUwLCAweDIwLCAweGUxLCAweDIzLCAweDkwLAotICAweDdiLCAweDQwLCAweGUwLCAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDE1LCAweDkwLCAweDdiLCAweDQyLCAweGUwLCAweGY1LCAweDE2LCAweDkwfX0sCi0gezB4MDgwNiwgNjQsIHsgMHg3YiwgMHg0MSwgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHhkMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwOSwgMHgyMCwgMHhlNSwgMHgwYSwgMHg3MCwgMHg0MCwKLSAgMHgzMCwgMHgwNywgMHgzOSwgMHhlNSwgMHgzOCwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwNywgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKLSAgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAotIHsweDA4NDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsCi0gIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzgsIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MmMsIDB4NzUsIDB4MGEsIDB4MDEsIDB4MjIsCi0gIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDAsIDB4MzAsIDB4MDgsIDB4MzksIDB4ZTUsIDB4MzksIDB4NzAsIDB4MzUsIDB4YzIsIDB4MDgsIDB4ZjUsCi0gIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTJ9fSwKLSB7MHgwODg2LCA2NCwgeyAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LAotICAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLCAweDc1LCAweDM5LCAweDEwLCAweGU0LAotICAweGY1LCAweDM1LCAweDc1LCAweDBhLCAweDAyLCAweDIyLCAweGU1LCAweDBhLCAweDY0LCAweDAyLCAweDcwLCAweDM2LCAweDMwLCAweDE0LCAweDJmLCAweGMyLAotICAweDE0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDBlLCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwfX0sCi0gezB4MDhjNiwgNjQsIHsgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwKLSAgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwNSwgMHhmMCwgMHg3NSwgMHgwYSwKLSAgMHgwMywgMHgyMiwgMHhlNSwgMHgxNSwgMHg2MCwgMHgzMCwgMHgxNSwgMHgxNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKLSAgMHgxNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAotIHsweDA5MDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsCi0gIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGUsCi0gIDB4ZTQsIDB4MGEsIDB4MDgsIDB4MDAsIDB4MGEsIDB4N2MsIDB4MDEsIDB4MGEsIDB4ZTgsIDB4MDMsIDB4MDksIDB4NDQsIDB4MDYsIDB4MDksIDB4ZmIsIDB4MDgsCi0gIDB4MDksIDB4ZjUsIDB4MDksIDB4MDksIDB4ZGQsIDB4MGEsIDB4MDksIDB4ZWMsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MGIsIDB4MzcsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwOTQ2LCA2NCwgeyAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDE0LCAweDYwLCAweDYxLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA5LCAweGQzLCAweDc0LAotICAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweDcwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LAotICAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweDdiLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDc0LCAweDc1LCAweDgzLCAweDE5fX0sCi0gezB4MDk4NiwgNjQsIHsgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwKLSAgMHg3NCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwZiwKLSAgMHgwYSwgMHhlYSwgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMH19LAotIHsweDA5YzYsIDY0LCB7IDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsCi0gIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MDksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCi0gIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MDksIDB4MDIsIDB4MGIsIDB4M2UsIDB4MTIsIDB4MGIsCi0gIDB4NDYsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDJ9fSwKLSB7MHgwYTA2LCA2NCwgeyAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLAotICAweGEyLCAweDEwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDE2LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLAotICAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweGU0LCAweDkwLCAweDdmLAotICAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmfX0sCi0gezB4MGE0NiwgNjQsIHsgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwKLSAgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwKLSAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMn19LAotIHsweDBhODYsIDY0LCB7IDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MTAsIDB4MDIsIDB4MGIsIDB4M2UsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsCi0gIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsCi0gIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYWM2LCA2NCwgeyAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLAotICAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLAotICAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRhLCAweDkwLCAweDdmLCAweGVhLAotICAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLCAweDEwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwfX0sCi0gezB4MGIwNiwgNjQsIHsgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwKLSAgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwKLSAgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMn19LAotIHsweDBiNDYsIDY0LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTgsCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZTQsIDB4ZjUsCi0gIDB4MjQsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmF9fSwKLSB7MHgwYjg2LCA2NCwgeyAweGU0LCAweDEyLCAweDBlLCAweGQyLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGVhLCAweDc1LCAweDNhLCAweDAxLCAweGU0LCAweGY1LCAweDM4LAotICAweGY1LCAweDEzLCAweGY1LCAweDM2LCAweGMyLCAweDA3LCAweGMyLCAweDBiLCAweGMyLCAweDA1LCAweGMyLCAweDAwLCAweGMyLCAweDA5LCAweGMyLCAweDEzLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDc1LCAweDQ0LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLAotICAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDEwLCAweDhmLCAweDQyLCAweDEyLCAweDEwLCAweDgxLCAweDkwLCAweDdmfX0sCi0gezB4MGJjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHg4ZiwgMHg0MCwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NSwgMHg0NiwgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwKLSAgMHgxMiwgMHgxMSwgMHhiMSwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiMSwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxMX19LAotIHsweDBjMDYsIDY0LCB7IDB4YjEsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4NmEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YjEsIDB4MjAsIDB4MWIsIDB4MDMsIDB4MDIsCi0gIDB4MGMsIDB4YjcsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsCi0gIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2IsCi0gIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzcsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzJ9fSwKLSB7MHgwYzQ2LCA2NCwgeyAweDAwLCAweGMyLCAweDBhLCAweGMyLCAweDEzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDc1LCAweDQ1LCAweDAzLCAweDkwLCAweGMwLCAweDAwLAotICAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDEwLCAweDhmLCAweDQzLCAweDEyLCAweDEwLAotICAweGYzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQxLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0fX0sCi0gezB4MGM4NiwgNjQsIHsgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZiwgMHgxMiwKLSAgMHgxMSwgMHhmYiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwKLSAgMHg3ZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg4YiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhmYiwKLSAgMHhkMiwgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4Mn19LAotIHsweDBjYzYsIDY0LCB7IDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsCi0gIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MDgsCi0gIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsCi0gIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwZDA2LCA2NCwgeyAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LAotICAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLAotICAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLAotICAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1fX0sCi0gezB4MGQ0NiwgNjQsIHsgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwKLSAgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywKLSAgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHhkMiwgMHgxOSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMH19LAotIHsweDBkODYsIDY0LCB7IDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsCi0gIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsCi0gIDB4MWEsIDB4MTIsIDB4MTIsIDB4NDUsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTJ9fSwKLSB7MHgwZGM2LCA2NCwgeyAweDkwLCAweDdmLCAweGExLCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDE3LCAweDYwLCAweDEwLCAweDMwLCAweDEyLCAweDA1LCAweGQyLAotICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDE3LCAweDgwLCAweDA4LCAweDMwLCAweDEyLCAweDA1LCAweGMyLAotICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDMwLCAweDExLCAweDA3LCAweGMyLCAweDExLCAweDEyLCAweDA5LCAweDIxLCAweDgwLCAweGQ2LCAweDMwLCAweDE4LAotICAweGQzLCAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweDkzLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkfX0sCi0gezB4MGUwNiwgNjQsIHsgMHg3NSwgMHg4MSwgMHg0NywgMHgwMiwgMHgwZSwgMHg0NywgMHgwMiwgMHgwZCwgMHg2ZiwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwKLSAgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywKLSAgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwKLSAgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MH19LAotIHsweDBlNDYsIDY0LCB7IDB4ODAsIDB4OTAsIDB4MTIsIDB4YWMsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksCi0gIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsCi0gIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsCi0gIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9fSwKLSB7MHgwZTg2LCA2NCwgeyAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLAotICAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLAotICAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LAotICAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1fX0sCi0gezB4MGVjNiwgNjQsIHsgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwKLSAgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwKLSAgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwKLSAgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhM319LAotIHsweDBmMDYsIDY0LCB7IDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OGYsIDB4MTgsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4NzUsIDB4MWEsIDB4ZmYsIDB4NzUsIDB4MWIsIDB4MTksIDB4NzUsIDB4MWMsCi0gIDB4ODYsIDB4YWIsIDB4MWEsIDB4YWEsIDB4MWIsIDB4YTksIDB4MWMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MGUsIDB4YTUsIDB4YjQsIDB4MDMsIDB4MWQsCi0gIDB4YWYsIDB4MTksIDB4MDUsIDB4MTksIDB4ZWYsIDB4YjUsIDB4MTgsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MGUsIDB4OGMsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsCi0gIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDB9fSwKLSB7MHgwZjQ2LCA2NCwgeyAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLAotICAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLAotICAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LAotICAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDI3LCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLCAweDFhfX0sCi0gezB4MGY4NiwgNjQsIHsgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhZSwgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxYSwKLSAgMHhmMCwgMHgxMiwgMHgxMywgMHgzZiwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhYywgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwKLSAgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MCwgMHgwYSwgMHgxMiwgMHgxMywgMHg3YiwgMHg4ZiwgMHgxYSwKLSAgMHhlZiwgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMH19LAotIHsweDBmYzYsIDY0LCB7IDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCi0gIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsCi0gIDB4MTEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDB9fSwKLSB7MHgxMDA2LCA2NCwgeyAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLAotICAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LAotICAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwfX0sCi0gezB4MTA0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywKLSAgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxM319LAotIHsweDEwODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDR9fSwKLSB7MHgxMGM2LCA2NCwgeyAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LAotICAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwfX0sCi0gezB4MTEwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwKLSAgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDExNDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2Z9fSwKLSB7MHgxMTg2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBlLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLAotICAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAotICAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwfX0sCi0gezB4MTFjNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwKLSAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwKLSAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHg4MCwKLSAgMHhlOCwgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MH19LAotIHsweDEyMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4MTIsIDB4MTMsCi0gIDB4NjMsIDB4OGYsIDB4MWIsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsCi0gIDB4NjUsIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTB9fSwKLSB7MHgxMjQ2LCA2NCwgeyAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDFhLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLAotICAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDEyLCAweGM4LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LAotICAweDA0LCAweGYwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNlLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwfX0sCi0gezB4MTI4NiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZiwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZiwgMHg0NCwgMHg4MCwKLSAgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHgyMiwgMHgwNSwgMHgwZSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgxNCwgMHgwMywgMHgwMCwKLSAgMHgwMCwgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMX19LAotIHsweDEyYzYsIDY0LCB7IDB4MWIsIDB4MDAsIDB4OGUsIDB4MTgsIDB4OGYsIDB4MTksIDB4ZTUsIDB4MTksIDB4MTUsIDB4MTksIDB4YWUsIDB4MTgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTgsIDB4NGUsCi0gIDB4NjAsIDB4MDUsIDB4MTIsIDB4MGQsIDB4NGUsIDB4ODAsIDB4ZWUsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGYsIDB4ZTcsIDB4MDAsIDB4MDIsIDB4MTN9fSwKLSB7MHgxMzA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDBmLCAweGJkLCAweDAwLCAweDAyLCAweDEwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwfX0sCi0gezB4MTM0NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZn19LAotIHsweDEzODYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MTIsIDB4MDAsIDB4MDMsIDB4MTIsCi0gIDB4MGQsIDB4NWYsIDB4MTIsIDB4MGIsIDB4NDYsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxM2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTRjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTcwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTdjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTg4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4MDB9fSwKLSB7MHgxOTA2LCA2NCwgeyAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDEyLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAotICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAotICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKLSAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKLSAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKLSAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAotIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCi0gIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCi0gIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKLSB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDM2LCAweDAzLCAweDRiLCAweDAwLCAweDY1LAotICAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLAotICAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLAotICAweDAwLCAweDIwLCAweDAwLCAweDQxLCAweDAwLCAweDY0LCAweDAwLCAweDYxLCAweDAwLCAweDcwLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwfX0sCi0gezB4MWEwNiwgMjAsIHsgMHg3MiwgMHgwMCwgMHgxMCwgMHgwMywgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgzMCwKLSAgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweGZmZmYsCTAsCXsweDAwfSB9Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5X2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwMjNjNTIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDI4NSArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTE5X2Z3LmgKLSAKLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTE5X2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLSovCi0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMTlfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDI2LCAxMCwgeyAweDEyLCAweDBkLCAweGJmLCAweDEyLCAweDBmLCAweDQ3LCAweDEyLCAweDBkLCAweDZiLCAweDIyfX0sCi0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgwMCwgMHgxYX19LAotIHsweDAwMWEsICA0LCB7IDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9fSwKLSB7MHgwMDAzLCAxNiwgeyAweDhlLCAweDEzLCAweDhmLCAweDE0LCAweGU1LCAweDE0LCAweDE1LCAweDE0LCAweGFlLCAweDEzLCAweDcwLCAweDAyLCAweDE1LCAweDEzLCAweDRlLCAweDYwfX0sCi0gezB4MDAxMywgIDcsIHsgMHgwNSwgMHgxMiwgMHgwZiwgMHgzNiwgMHg4MCwgMHhlZSwgMHgyMn19LAotIHsweDAwMjMsICAzLCB7IDB4MDIsIDB4MDAsIDB4NDZ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDA4fX0sCi0gezB4MDA1NiwgMTYsIHsgMHgzMCwgMHg5OSwgMHgwZSwgMHgzMCwgMHgwOCwgMHgwNywgMHhhMiwgMHgwYiwgMHg5MiwgMHg5YiwgMHg4NSwgMHgzNSwgMHg5OSwgMHhjMiwgMHg5OSwgMHhkMn19LAotIHsweDAwNjYsIDE2LCB7IDB4MGYsIDB4MjAsIDB4MGYsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MzEsIDB4YzIsIDB4MGYsIDB4MjAsIDB4MDIsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NTYsIDB4MjB9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDA4LCAweDAzLCAweDAyLCAweDAxLCAweDI3LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDNlLCAweDIwLCAweDA5LCAweDM2LCAweDIwfX0sCi0gezB4MDA4NiwgMTYsIHsgMHgwNiwgMHgzMywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHgyOSwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZn19LAotIHsweDAwOTYsIDE2LCB7IDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTJ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDBiLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwfX0sCi0gezB4MDBiNiwgMTYsIHsgMHhmNSwgMHgzNSwgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMn19LAotIHsweDAwYzYsIDE2LCB7IDB4MDIsIDB4MzAsIDB4MGEsIDB4MGMsIDB4YzIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmZ9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDMwLCAweGUxLCAweDA1LCAweGMyLCAweDA4LCAweDAyLCAweDA0LCAweDJmLCAweDkwLCAweDdmLCAweGM5LCAweGUwfX0sCi0gezB4MDBlNiwgMTYsIHsgMHhmNSwgMHg1MCwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHgyMCwgMHgwOSwgMHgyZCwgMHgyMCwgMHgwNiwgMHgyYSwgMHg5MH19LAotIHsweDAwZjYsIDE2LCB7IDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4MjAsIDB4MzAsIDB4MGQsIDB4MTEsIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTB9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDBmLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwYywgMHg2MX19LAotIHsweDAxMDYsIDY0LCB7IDB4MTMsIDB4OTIsIDB4MGIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MzcsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDIsIDB4OTAsCi0gIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4MDIsIDB4MDQsIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDEsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsCi0gIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MzAsIDB4ZTEsCi0gIDB4MDcsIDB4YzIsIDB4MTAsIDB4YzIsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZjUsIDB4NTAsIDB4OTB9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDAxLCAweGM3LCAweDIwLCAweDA2LCAweDcyLCAweDIwLCAweDAwLAotICAweDZmLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDY1LCAweDMwLCAweDBkLCAweDEwLCAweDkwLCAweDdlLAotICAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGEzLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDM3LCAweDAzLCAweDgwLCAweDA5LCAweDkwLCAweDdlLAotICAweDQxLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDM3LCAweDAyLCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDQwLCAweDE3LCAweDkwfX0sCi0gezB4MDE4NiwgNjQsIHsgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMiwgMHgwMiwgMHgyMCwgMHgwYSwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhiYiwKLSAgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyZiwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwYiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwKLSAgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNSwgMHhkMiwgMHgwOCwgMHgwMiwgMHgwNH19LAotIHsweDAxYzYsIDY0LCB7IDB4MmYsIDB4NzUsIDB4MzcsIDB4MDEsIDB4YzIsIDB4MTAsIDB4MDIsIDB4MDQsIDB4MmYsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDIsIDB4NTEsIDB4MjAsIDB4MDYsCi0gIDB4NzksIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4NmYsIDB4MzAsIDB4MGQsIDB4MTIsIDB4YWYsIDB4MzcsCi0gIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsCi0gIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGY1LCAweDk5LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAyLCAweDIwLAotICAweDBhLCAweDAzLCAweDAyLCAweDA0LCAweDJmLCAweGMyLCAweDBhLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDJmLCAweDMwLAotICAweDBkLCAweDEyLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBiLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0fX0sCi0gezB4MDI0NiwgNjQsIHsgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNSwgMHhkMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgxMCwgMHgwMiwgMHgwNCwgMHgyZiwgMHgyMCwKLSAgMHgwOCwgMHgwMywgMHgwMiwgMHgwMywgMHgwOCwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg1MCwgMHgzZSwgMHgyMCwgMHgwOSwgMHgzNiwgMHgyMCwKLSAgMHgwNiwgMHgzMywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHgyOSwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwKLSAgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxM319LAotIHsweDAyODYsIDY0LCB7IDB4OTIsIDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4ZjUsIDB4MzUsIDB4MDIsIDB4MDQsIDB4MmYsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsCi0gIDB4MDIsIDB4MzAsIDB4MGEsIDB4MGMsIDB4YzIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsCi0gIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsIDB4OTAsIDB4N2YsIDB4Yzd9fSwKLSB7MHgwMmM2LCA2NCwgeyAweGUwLCAweGY1LCAweDUwLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDIwLCAweDA5LCAweDJkLCAweDIwLCAweDA2LCAweDJhLCAweDkwLAotICAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDIwLCAweDMwLCAweDBkLCAweDExLCAweDkwLCAweDdlLCAweDQxLCAweGUwLAotICAweDEzLCAweDkyLCAweDBiLCAweGEzLCAweGUwLCAweGY1LCAweDM1LCAweDc1LCAweDM3LCAweDAzLCAweDAyLCAweDA0LCAweDJmLCAweDc1LCAweDM3LCAweDAyLAotICAweDkwLCAweDdlLCAweDQxLCAweGUwLCAweGY1LCAweDM1LCAweDAyLCAweDA0LCAweDJmLCAweDc1LCAweDM3LCAweDAxLCAweGMyLCAweDA4LCAweDAyfX0sCi0gezB4MDMwNiwgNjQsIHsgMHgwNCwgMHgyZiwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwMywgMHhiMCwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgzMCwKLSAgMHhlMSwgMHgwNywgMHhjMiwgMHgxMCwgMHhjMiwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg1MCwgMHg5MCwKLSAgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwMywgMHhhOCwgMHgyMCwgMHgwNiwgMHg3MiwgMHgyMCwKLSAgMHgwMCwgMHg2ZiwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHg2NSwgMHgzMCwgMHgwZCwgMHgxMH19LAotIHsweDAzNDYsIDY0LCB7IDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4MzcsIDB4MDMsIDB4ODAsIDB4MDksIDB4OTAsCi0gIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4MzcsIDB4MDIsIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NDAsIDB4MTcsIDB4OTAsCi0gIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDIsIDB4MjAsIDB4MGEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4YzIsIDB4MGEsIDB4OTAsIDB4N2YsCi0gIDB4YmIsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MmYsIDB4MzAsIDB4MGQsIDB4MTIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzB9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBiLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LAotICAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM1LCAweGQyLCAweDA4LCAweDAyLCAweDA0LAotICAweDJmLCAweDc1LCAweDM3LCAweDAxLCAweGMyLCAweDEwLCAweDAyLCAweDA0LCAweDJmLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDA0LCAweDJkLCAweDIwLAotICAweDA2LCAweDc0LCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDZhLCAweDMwLCAweDBkLCAweDEyfX0sCi0gezB4MDNjNiwgNjQsIHsgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwKLSAgMHg5YiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHhmNSwgMHg5OSwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg0MCwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMiwKLSAgMHgzMCwgMHgwYSwgMHgzNSwgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHg4MCwgMHgyYywgMHgzMCwgMHgwZCwgMHgxMn19LAotIHsweDA0MDYsIDY0LCB7IDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsCi0gIDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4ZjUsIDB4MzUsIDB4ZDIsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4MTAsIDB4ZDIsIDB4MTIsIDB4MjAsIDB4OTgsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NmQsCi0gIDB4YzIsIDB4OTgsIDB4MjAsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4ZGEsIDB4MjAsIDB4MTEsIDB4MjcsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzZ9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLCAweDBkLCAweDRkLCAweGFmLAotICAweDM2LCAweDA1LCAweDM2LCAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLAotICAweDgwLCAweDNhLCAweDg1LCAweDk5LCAweDEwLCAweGU1LCAweDEwLCAweGI1LCAweDQ0LCAweDA0LCAweGQyLCAweDA2LCAweDgwLCAweDJlLCAweGU1LCAweDEwLAotICAweGI1LCAweDQzLCAweDA0LCAweGMyLCAweDA2LCAweDgwLCAweDI1LCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweDc0LCAweDgwLCAweDJmLCAweGY1fX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHgxMCwgMHhmMCwgMHgzMCwgMHgwZCwgMHgxMSwgMHhhZiwgMHgzNiwgMHgwNSwgMHgzNiwgMHg3NCwKLSAgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgwYywgMHhlNSwgMHgzNiwKLSAgMHhjMywgMHg5NSwgMHg0MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg2YiwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxNiwgMHhlNSwKLSAgMHgzNiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg2YiwgMHgxNSwgMHgzNiwgMHgxNSwgMHgzNiwgMHgwNSwgMHgyYn19LAotIHsweDA0YzYsIDY0LCB7IDB4NDMsIDB4MzMsIDB4MDEsIDB4MDIsIDB4MDUsIDB4NmIsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZTUsIDB4MzYsIDB4ZjAsIDB4NzUsIDB4MzYsIDB4MDAsIDB4YzIsIDB4MDEsCi0gIDB4MDIsIDB4MDUsIDB4NmIsIDB4MjAsIDB4MTEsIDB4MjcsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MGQsIDB4NGQsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4MDAsCi0gIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ODAsIDB4M2EsIDB4ODUsIDB4OTl9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDEwLCAweGU1LCAweDEwLCAweGI1LCAweDQ0LCAweDA0LCAweGQyLCAweDA2LCAweDgwLCAweDJlLCAweGU1LCAweDEwLCAweGI1LCAweDQzLCAweDA0LCAweGMyLCAweDA2LAotICAweDgwLCAweDI1LCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLAotICAweGU1LCAweDEwLCAweGYwLCAweDMwLCAweDBkLCAweDExLCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDBjLCAweGU1LCAweDM2LCAweGMzLCAweDk1LCAweDQwLCAweDQwfX0sCi0gezB4MDU0NiwgNjQsIHsgMHgyNCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMiwgMHhlNSwgMHgzNiwgMHhjMywgMHg5NCwgMHg0MCwgMHg0MCwgMHgxNiwgMHgxNSwgMHgzNiwKLSAgMHgxNSwgMHgzNiwgMHgwNSwgMHgyYiwgMHg0MywgMHgzMywgMHgwMSwgMHg4MCwgMHgwYiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzNiwgMHhmMCwgMHg3NSwKLSAgMHgzNiwgMHgwMCwgMHhkMiwgMHgwMSwgMHhkMiwgMHgxMiwgMHgzMCwgMHgxMiwgMHgwNSwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwMCwgMHg1NiwgMHhkMCwgMHhkMCwKLSAgMHhkMCwgMHg4NiwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHgzMCwgMHhlMX19LAotIHsweDA1ODYsIDY0LCB7IDB4MDMsIDB4MDIsIDB4MDYsIDB4YWIsIDB4ZTQsIDB4ZjUsIDB4MTMsIDB4NzQsIDB4NDAsIDB4MjUsIDB4MTMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTMsIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDAsIDB4MjQsIDB4MzgsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4MDAsIDB4ZmEsCi0gIDB4ZWYsIDB4MTIsIDB4MGQsIDB4MzMsIDB4MDUsIDB4MTMsIDB4ZTUsIDB4MTMsIDB4YjQsIDB4MTgsIDB4ZGIsIDB4ZTUsIDB4MzgsIDB4NjAsIDB4MGMsIDB4NzUsCi0gIDB4YzksIDB4MjAsIDB4NzUsIDB4YzgsIDB4MzQsIDB4ODUsIDB4MzksIDB4Y2EsIDB4ODUsIDB4M2EsIDB4Y2IsIDB4ZTUsIDB4M2IsIDB4MTMsIDB4OTJ9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDBkLCAweDkyLCAweDlmLCAweGU1LCAweDNjLCAweDEzLCAweDkyLCAweDBlLCAweGU1LCAweDNkLCAweDEzLCAweDkyLCAweDExLCAweGU1LCAweDNlLCAweDYwLCAweDA5LAotICAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDA0LCAweGYwLAotICAweGU1LCAweDNmLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweDk4LAotICAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDQ1LCAweDYwLCAweDBiLCAweGMyLCAweDA5LCAweGMyLCAweDA2LCAweDkwLCAweDdmLCAweDk1fX0sCi0gezB4MDYwNiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0NiwgMHg2MCwgMHgwYywgMHhkMiwgMHgwNiwgMHg0MywgMHgzMywgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwKLSAgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0NywgMHg2MCwgMHgwZCwgMHhjMiwgMHhhZiwgMHhjMiwgMHgwOCwgMHhkMiwgMHgwMCwgMHhlNCwgMHhmNSwgMHg1MCwKLSAgMHhmNSwgMHgzNywgMHhkMiwgMHhhZiwgMHhlNSwgMHg0OCwgMHg2MCwgMHgwNSwgMHgzMCwgMHgxMSwgMHgwMiwgMHhkMiwgMHgwNiwgMHhlNSwgMHg0OSwgMHg2MCwKLSAgMHgxNSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMH19LAotIHsweDA2NDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4NGEsIDB4NjAsIDB4MGEsIDB4ZDIsIDB4OWMsIDB4YzIsIDB4OTgsIDB4NzUsIDB4MmMsCi0gIDB4MDEsIDB4NzUsIDB4MzEsIDB4MWUsIDB4ZTUsIDB4NGIsIDB4NjAsIDB4MDcsIDB4YzIsIDB4OWMsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZjUsIDB4MmMsIDB4ZTUsCi0gIDB4NGMsIDB4NjAsIDB4MDMsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZTUsIDB4NGQsIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MDQsIDB4ZTUsIDB4NGUsIDB4NjAsIDB4MGEsCi0gIDB4ZTUsIDB4NGEsIDB4NzAsIDB4MDIsIDB4ZjUsIDB4MzEsIDB4ZTUsIDB4NGUsIDB4NDIsIDB4MzMsIDB4ZTUsIDB4NGYsIDB4NjAsIDB4MWYsIDB4OTB9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDEyLCAweGYwLCAweDc0LCAweDMyLCAweGYwLCAweDc0LCAweDEzLCAweGYwLAotICAweDc0LCAweDMzLCAweGYwLCAweDc0LCAweDE0LCAweGYwLCAweDc0LCAweDM0LCAweGYwLCAweGQyLCAweDAyLCAweGQyLCAweDAxLCAweGQyLCAweDA1LCAweGU0LAotICAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweGEyLCAweDA5LCAweGU0LCAweDMzLCAweGZmLCAweDY1LCAweDI5LCAweDYwLCAweDA1LCAweDhmLCAweDI5LCAweDQzLAotICAweDMzLCAweDAxLCAweGEyLCAweDA2LCAweGU0LCAweDMzLCAweGZmLCAweDY1LCAweDJhLCAweDYwLCAweDA1LCAweDhmLCAweDJhLCAweDQzLCAweDMzfX0sCi0gezB4MDZjNiwgNjQsIHsgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NCwgMHgwOCwgMHhiNSwgMHgyNSwgMHgwYSwgMHhlMCwgMHg1NCwgMHgwOCwgMHg2NCwgMHgwOCwgMHhmNSwgMHgyNSwKLSAgMHg0MywgMHgzMywgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NCwgMHgxMCwgMHhiNSwgMHgyNiwgMHgwYSwgMHhlMCwgMHg1NCwgMHgxMCwgMHg2NCwKLSAgMHgxMCwgMHhmNSwgMHgyNiwgMHg0MywgMHgzMywgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NCwgMHg0MCwgMHhiNSwgMHgyNywgMHgwYSwgMHhlMCwKLSAgMHg1NCwgMHg0MCwgMHg2NCwgMHg0MCwgMHhmNSwgMHgyNywgMHg0MywgMHgzMywgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NCwgMHgyMH19LAotIHsweDA3MDYsIDY0LCB7IDB4YjUsIDB4MjgsIDB4MGEsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4NjQsIDB4MjAsIDB4ZjUsIDB4MjgsIDB4NDMsIDB4MzMsIDB4MDEsIDB4MzAsIDB4MDQsIDB4MzUsIDB4YzIsCi0gIDB4YWYsIDB4MzAsIDB4MDEsIDB4MTgsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjcsIDB4ZTUsIDB4MzYsIDB4NjAsIDB4MDksIDB4OTAsCi0gIDB4N2YsIDB4YjcsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4YzIsIDB4MDEsIDB4YzIsIDB4MDQsIDB4ODAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsCi0gIDB4MjAsIDB4ZTEsIDB4MGYsIDB4ZTUsIDB4MzYsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjksIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZDJ9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweDAxLCAweGMyLCAweDA0LCAweGQyLCAweGFmLCAweDIwLCAweDAzLCAweDM3LCAweDMwLCAweDAyLCAweDFiLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDIwLCAweGUxLAotICAweDJkLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDc1LCAweDM3LCAweDAxLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LAotICAweDUwLCAweGQyLCAweDAzLCAweDgwLCAweDE5LCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDEyLCAweDkwLCAweDdkLCAweGMwLCAweGUwLAotICAweDEzLCAweDkyLCAweDBhLCAweDc1LCAweDM3LCAweDAxLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUwLCAweGQyLCAweDAzLCAweDIwfX0sCi0gezB4MDc4NiwgNjQsIHsgMHgxMCwgMHgzMywgMHgyMCwgMHgwMCwgMHgwNiwgMHhlNSwgMHgzNywgMHg2NSwgMHg1MCwgMHg3MCwgMHgyYSwgMHgzMCwgMHgwMywgMHgxYSwgMHgzMCwgMHgwMiwgMHgwOSwKLSAgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMiwgMHg4MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMiwKLSAgMHhjMiwgMHgwMywgMHhlNCwgMHhmNSwgMHg1MCwgMHhmNSwgMHgzNywgMHgzMCwgMHgwYSwgMHgwYSwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwKLSAgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHgzMCwgMHgxMCwgMHgwMywgMHgwMiwgMHgwOCwgMHhjNSwgMHgyMCwgMHgwMywgMHgwMywgMHgwMiwgMHgwOH19LAotIHsweDA3YzYsIDY0LCB7IDB4YzUsIDB4MzAsIDB4MGUsIDB4MGEsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MDIsIDB4MDgsIDB4YzUsIDB4MzAsIDB4MDYsIDB4MDMsCi0gIDB4MDIsIDB4MDgsIDB4YzUsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDgsIDB4YzUsIDB4MzAsIDB4MDIsIDB4NjIsIDB4MzAsIDB4MGQsIDB4MTIsIDB4YWYsCi0gIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsCi0gIDB4MTksIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwODA2LCA2NCwgeyAweGUwLCAweGY1LCAweDE0LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDJhLCAweDMwLCAweDBkLCAweDEyLCAweGFmLCAweDM3LCAweDA1LCAweDM3LAotICAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBiLCAweGFmLCAweDM3LAotICAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM1LCAweGQyLAotICAweDA4LCAweDgwLCAweDZiLCAweGMyLCAweDA4LCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweGMyLCAweDAyLCAweDgwLCAweDYwLCAweDMwfX0sCi0gezB4MDg0NiwgNjQsIHsgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHgxMywgMHg5MiwgMHgxOSwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHhmNSwgMHgxNCwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg1MCwgMHgyYSwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywKLSAgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5Mn19LAotIHsweDA4ODYsIDY0LCB7IDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsCi0gIDB4MzUsIDB4ZDIsIDB4MDgsIDB4ODAsIDB4MDksIDB4YzIsIDB4MDgsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDIsIDB4MzAsIDB4MGQsCi0gIDB4MDQsIDB4YTIsIDB4MTksIDB4OTIsIDB4OWIsIDB4ZDIsIDB4MTAsIDB4YzIsIDB4YWYsIDB4ODUsIDB4MTQsIDB4OTksIDB4MjAsIDB4MDgsIDB4MGQsIDB4MzAsCi0gIDB4MGEsIDB4MGEsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4OTB9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDUxLCAweGU1LCAweDMzLCAweDYwLCAweDRkLCAweGU1LCAweDMxLCAweDcwLCAweDQ5LCAweGU1LCAweDMzLCAweDMwLAotICAweGUxLCAweDA4LCAweGU0LCAweGY1LCAweDJmLCAweDc1LCAweDMzLCAweDAxLCAweDgwLCAweDBiLCAweGEyLCAweDA1LCAweGU0LCAweDMzLCAweGY1LCAweDJmLAotICAweGMyLCAweDA1LCAweGU0LCAweGY1LCAweDMzLCAweGU0LCAweGY1LCAweDEzLCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDI0LCAweDI1LCAweDEzLAotICAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBjLCAweGVkLCAweGZmLCAweDc0LCAweDAwLCAweDI1LCAweDEzLCAweGY1LCAweDgyfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxMywgMHhlNSwgMHgxMywgMHhiNCwgMHgwYywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhiZCwKLSAgMHg3NCwgMHgwYywgMHhmMCwgMHg3NSwgMHgzMSwgMHgxMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZCwgMHg0NSwgMHgwYSwgMHgwMywKLSAgMHgwMCwgMHgwYSwgMHg3NywgMHgwMSwgMHgwYSwgMHhlMywgMHgwMywgMHgwOSwgMHg0MSwgMHgwNiwgMHgwOSwgMHhmNCwgMHgwOCwgMHgwOSwgMHhlOCwgMHgwOSwKLSAgMHgwOSwgMHhkMCwgMHgwYSwgMHgwOSwgMHhkZiwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwYiwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNH19LAotIHsweDA5NDYsIDY0LCB7IDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsIDB4NjAsIDB4NTcsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NzYsIDB4NzQsIDB4MGYsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsCi0gIDB4NjQsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsCi0gIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsIDB4YjUsIDB4NzUsIDB4ODMsIDB4MGYsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4YWUsIDB4NzUsCi0gIDB4ODMsIDB4MGYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4YTcsIDB4NzUsIDB4ODMsIDB4MGYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4YTAsIDB4NzUsIDB4ODN9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDBmLCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDdiLCAweDc1LCAweDgzLCAweDBmLCAweGYwLCAweDc0LCAweDBmLCAweDkwLAotICAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDc2LCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLAotICAweGZmLCAweDEyLCAweDBlLCAweDQ4LCAweGVhLCAweDQ5LCAweDYwLCAweDBkLCAweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5LCAweDkwLCAweDdmLAotICAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5fX0sCi0gezB4MDljNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgxOSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgxOSwgMHgwMiwgMHgwYiwKLSAgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgxOCwgMHgxMiwgMHgwZCwgMHg2YiwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHgwMCwKLSAgMHhlNSwgMHgxOCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlOH19LAotIHsweDBhMDYsIDY0LCB7IDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTIsIDB4MTMsIDB4ZTQsIDB4MzMsIDB4ZmYsCi0gIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTcsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODB9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LAotICAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LAotICAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBiLCAweDM5fX0sCi0gezB4MGE4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgxMywgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwKLSAgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZn19LAotIHsweDBhYzYsIDY0LCB7IDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsCi0gIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsCi0gIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsCi0gIDB4MTMsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWF9fSwKLSB7MHgwYjA2LCA2NCwgeyAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LAotICAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLAotICAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyLCAweDIwLCAweDE1LCAweDAzLCAweDAyLCAweDBifX0sCi0gezB4MGI0NiwgNjQsIHsgMHhkMywgMHhlNSwgMHgzMSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzMSwgMHhlNSwgMHgzNiwgMHg2MCwgMHg0ZiwgMHg2NSwgMHgzNCwgMHg3MCwgMHg0NSwgMHhlNSwgMHgzMiwKLSAgMHhmNCwgMHg2MCwgMHgwMiwgMHgwNSwgMHgzMiwgMHhlNSwgMHgzMiwgMHhjMywgMHg5NSwgMHg0MSwgMHg0MCwgMHgzZCwgMHhjMiwgMHhhZiwgMHgzMCwgMHgwMSwKLSAgMHgxOCwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyNywgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHgzNiwgMHhmMCwgMHhjMiwgMHgwMSwKLSAgMHhlNCwgMHhmNSwgMHgzNiwgMHhmNSwgMHgzMiwgMHhmNSwgMHgzNCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMX19LAotIHsweDBiODYsIDY0LCB7IDB4MGYsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZTUsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZjUsIDB4MzIsIDB4ZjUsIDB4MzQsIDB4ZDIsCi0gIDB4YWYsIDB4ODAsIDB4MDYsIDB4ODUsIDB4MzYsIDB4MzQsIDB4ZTQsIDB4ZjUsIDB4MzIsIDB4ZTUsIDB4MmMsIDB4NjAsIDB4MmYsIDB4MjAsIDB4MGMsIDB4MDcsCi0gIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MGYsIDB4ZTUsIDB4MmQsIDB4NjAsIDB4MDYsIDB4ZTQsIDB4ZjUsIDB4MmQsIDB4NDMsIDB4MzMsCi0gIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzAsIDB4ODAsIDB4MTQsIDB4ZTUsIDB4MzAsIDB4ZDMsIDB4OTUsIDB4NDIsIDB4NTAsIDB4MGQsIDB4ZTUsIDB4MzB9fSwKLSB7MHgwYmM2LCA2NCwgeyAweGI1LCAweDQyLCAweDA2LCAweDc1LCAweDJkLCAweDAxLCAweDQzLCAweDMzLCAweDAxLCAweDA1LCAweDMwLCAweGMyLCAweDBjLCAweDIyLCAweDc1LCAweDEyLCAweDAxLAotICAweGMyLCAweDE0LCAweGMyLCAweDE4LCAweGMyLCAweDEzLCAweGMyLCAweDE3LCAweGMyLCAweDE1LCAweGMyLCAweDEyLCAweGQyLCAweDE2LCAweGU0LCAweGY1LAotICAweDE4LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweGZmLCAweGQzLCAweDkyLCAweDEzLAotICAweGU0LCAweDMzLCAweGZlLCAweGVmLCAweDRlLCAweGYwLCAweGQyLCAweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGRlLCAweDc0fX0sCi0gezB4MGMwNiwgNjQsIHsgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwKLSAgMHhlMCwgMHg0NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHhiYywgMHhkMiwgMHgxOSwgMHgxMiwgMHgwZSwgMHhkYSwgMHhjMiwgMHgxNCwgMHgzMCwKLSAgMHgxNSwgMHgwMywgMHgxMiwgMHgwNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHg2NSwgMHgxMSwgMHg2MCwgMHgwOCwgMHhlMCwgMHhmNX19LAotIHsweDBjNDYsIDY0LCB7IDB4MTEsIDB4MTIsIDB4MGIsIDB4NDEsIDB4ODAsIDB4ZWEsIDB4MzAsIDB4MTQsIDB4MDcsIDB4YzIsIDB4MTQsIDB4MTIsIDB4MDksIDB4MWUsIDB4ODAsIDB4ZTAsIDB4MzAsCi0gIDB4MTgsIDB4ZGQsIDB4YzIsIDB4MTgsIDB4MTIsIDB4MDAsIDB4MjYsIDB4ODAsIDB4ZDYsIDB4MjIsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsCi0gIDB4NzUsIDB4ODEsIDB4NTAsIDB4MDIsIDB4MGMsIDB4YTgsIDB4MDIsIDB4MGIsIDB4ZDQsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsCi0gIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4Zjh9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LAotICAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLAotICAweDgwLCAweDkwLCAweDBlLCAweDA0LCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LAotICAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwfX0sCi0gezB4MGNjNiwgNjQsIHsgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwKLSAgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwKLSAgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZSwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwKLSAgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn19LAotIHsweDBkMDYsIDY0LCB7IDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsCi0gIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTUsCi0gIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksCi0gIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDB9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDgzLCAweGQwLCAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LAotICAweDc0LCAweDAxLCAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzLAotICAweGEzLCAweGEzLCAweDgwLCAweGRmLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLAotICAweDdmLCAweDk2LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDA0fX0sCi0gezB4MGQ4NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHg3NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwKLSAgMHg4NCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhjYiwgMHhmMCwgMHg3NSwgMHg5OCwgMHg0MCwgMHg0MywgMHhhOCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgxZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhkZiwgMHg3NCwgMHgwZiwgMHhmMCwgMHhkMiwgMHgxNSwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDBkYzYsIDY0LCB7IDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsCi0gIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MjAsIDB4ZjAsCi0gIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZTAsIDB4NDQsIDB4ZmQsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjIsIDB4MGMsIDB4MjR9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDMwLCAweDAwLCAweDAxLCAweDMzLAotICAweDAxLCAweDAxLCAweDMyLCAweDAwLCAweDAxLCAweDM3LCAweDAwLCAweDAxLCAweDUwLCAweDAwLCAweDAxLCAweDM2LCAweDAwLCAweDAxLCAweDM0LCAweDAwLAotICAweGMxLCAweDA1LCAweGMxLCAweDBjLCAweGMxLCAweDAzLCAweGMxLCAweDBmLCAweGMxLCAweDA0LCAweGMxLCAweDBlLCAweGMxLCAweDExLCAweGMxLCAweDBhLAotICAweGMxLCAweDEwLCAweGMxLCAweDA4LCAweGMxLCAweDA5LCAweGMxLCAweDA2LCAweGMxLCAweDAwLCAweGMxLCAweDBkLCAweGMxLCAweDgxLCAweGMxfX0sCi0gezB4MGU0NiwgNjQsIHsgMHg4MiwgMHgwMCwgMHg4ZiwgMHgxMywgMHhlNCwgMHhmNSwgMHgxNCwgMHg3NSwgMHgxNSwgMHhmZiwgMHg3NSwgMHgxNiwgMHgwZiwgMHg3NSwgMHgxNywgMHhiOSwgMHhhYiwKLSAgMHgxNSwgMHhhYSwgMHgxNiwgMHhhOSwgMHgxNywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwZCwgMHgwNiwgMHhiNCwgMHgwMywgMHgxZCwgMHhhZiwgMHgxNCwKLSAgMHgwNSwgMHgxNCwgMHhlZiwgMHhiNSwgMHgxMywgMHgwMSwgMHgyMiwgMHgxMiwgMHgwYywgMHhlZCwgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwKLSAgMHhhOSwgMHgwNywgMHg3NSwgMHgxNSwgMHhmZiwgMHhmNSwgMHgxNiwgMHg4OSwgMHgxNywgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMH19LAotIHsweDBlODYsIDY0LCB7IDB4NzksIDB4MDAsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsCi0gIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsCi0gIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsCi0gIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTQsIDB4NTMsIDB4OTF9fSwKLSB7MHgwZWM2LCA2NCwgeyAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLAotICAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDE5LAotICAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDAwLCAweDAzLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLAotICAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDAwLCAweDAyLCAweDBlLCAweGIzLCAweDAwLCAweDAyLCAweDBmfX0sCi0gezB4MGYwNiwgNjQsIHsgMHgwNCwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4OSwgMHgwMCwgMHgwMiwgMHgwZiwgMHgwZiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwKLSAgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKLSAgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg3NCwKLSAgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOX19LAotIHsweDBmNDYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsCi0gIDB4MDEsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MDcsIDB4MDEsIDB4MDEsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksCi0gIDB4MDIsIDB4NDMsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDcsIDB4ZmYsIDB4MDB9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LAotICAweDA1LCAweDAzLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLAotICAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLAotICAweDAwLCAweDAxLCAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDEwLCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczfX0sCi0gezB4MGZjNiwgMjMsIHsgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgwZSwgMHgwMywgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwKLSAgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweGZmZmYsCTAsCXsweDAwfSB9Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlxaV9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlxaV9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTI2NDcyLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5cWlfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDI4NCArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTE5cWlfZncuaAotIAotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwbl91c2ExOXFpX2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLQotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMTlxaV9maXJtd2FyZVtdID0gewotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MDAsIDB4MWF9fSwKLSB7MHgwMDFhLCAgNCwgeyAweDUzLCAweGQ4LCAweGVmLCAweDMyfX0sCi0gezB4MDAwMywgMTYsIHsgMHg4ZSwgMHgxMSwgMHg4ZiwgMHgxMiwgMHhlNSwgMHgxMiwgMHgxNSwgMHgxMiwgMHhhZSwgMHgxMSwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxMSwgMHg0ZSwgMHg2MH19LAotIHsweDAwMTMsICA3LCB7IDB4MDUsIDB4MTIsIDB4MGYsIDB4ODQsIDB4ODAsIDB4ZWUsIDB4MjJ9fSwKLSB7MHgwMDIzLCAgMywgeyAweDAyLCAweDAwLCAweDQ2fX0sCi0gezB4MDA0NiwgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwOH19LAotIHsweDAwNTYsIDE2LCB7IDB4MzAsIDB4OTksIDB4MGUsIDB4MzAsIDB4MGIsIDB4MDcsIDB4YTIsIDB4MGUsIDB4OTIsIDB4OWIsIDB4ODUsIDB4MzYsIDB4OTksIDB4YzIsIDB4OTksIDB4ZDJ9fSwKLSB7MHgwMDY2LCAxNiwgeyAweDEyLCAweDIwLCAweDEyLCAweDAzLCAweDAyLCAweDA0LCAweDFlLCAweGMyLCAweDEyLCAweDIwLCAweDAzLCAweDAzLCAweDAyLCAweDAyLCAweDRlLCAweDIwfX0sCi0gezB4MDA3NiwgMTYsIHsgMHgwYiwgMHgwMywgMHgwMiwgMHgwMSwgMHgyNiwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgzYywgMHgyMCwgMHgwYywgMHgzNCwgMHgyMH19LAotIHsweDAwODYsIDE2LCB7IDB4MDksIDB4MzEsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4MjksIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDV9fSwKLSB7MHgwMDk2LCAxNiwgeyAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmfX0sCi0gezB4MDBhNiwgMTYsIHsgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNn19LAotIHsweDAwYjYsIDE2LCB7IDB4MDIsIDB4MDQsIDB4MWMsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4MzB9fSwKLSB7MHgwMGM2LCAxNiwgeyAweDBkLCAweDBjLCAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweGMyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLCAweDkwLCAweDdmfX0sCi0gezB4MDBkNiwgMTYsIHsgMHhjOCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNSwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg1M319LAotIHsweDAwZTYsIDE2LCB7IDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4MTYsIDB4ZmYsIDB4MjAsIDB4MGMsIDB4MmIsIDB4MjAsIDB4MDksIDB4Mjh9fSwKLSB7MHgwMGY2LCAxNiwgeyAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDIwLCAweDMwLCAweDEwLCAweDExLCAweDkwLCAweDdkLCAweGMxLCAweGUwLCAweDEzfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgwZSwgMHgwMH19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MDAsIDB4MjZ9fSwKLSB7MHgwMDI2LCAxMiwgeyAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDU0LCAweDAyLCAweDBiLCAweDI4fX0sCi0gezB4MDEwNiwgNjQsIHsgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzNiwgMHg3NSwgMHgzYSwgMHgwMywgMHgwMiwgMHgwNCwgMHgxYywgMHg3NSwgMHgzYSwgMHgwMiwgMHg5MCwgMHg3ZCwKLSAgMHhjMSwgMHhlMCwgMHhmNSwgMHgzNiwgMHgwMiwgMHgwNCwgMHgxYywgMHg3NSwgMHgzYSwgMHgwMSwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHhlNSwKLSAgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgwMywgMHgwMiwgMHgwMSwgMHhjOSwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNywKLSAgMHhjMiwgMHgxNCwgMHhjMiwgMHgwNSwgMHgwMiwgMHgwNCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg1MywgMHg5MCwgMHg3ZX19LAotIHsweDAxNDYsIDY0LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4MTYsIDB4ZmYsIDB4MjAsIDB4MGMsIDB4NzAsIDB4MjAsIDB4MDksIDB4NmQsIDB4OTAsIDB4N2YsIDB4OWIsCi0gIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4NjUsIDB4MzAsIDB4MTAsIDB4MTAsIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsCi0gIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4M2EsIDB4MDMsIDB4ODAsIDB4MDksIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4M2EsCi0gIDB4MDIsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NDAsIDB4MTcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDN9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDIwLCAweDBkLCAweDAzLCAweDAyLCAweDA0LCAweDFjLCAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDFjLCAweDMwLAotICAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLAotICAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweGQyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLCAweDc1LCAweDNhLCAweDAxLCAweGMyLCAweDE0fX0sCi0gezB4MDFjNiwgNjQsIHsgMHgwMiwgMHgwNCwgMHgxYywgMHgzMCwgMHgwYywgMHgwMywgMHgwMiwgMHgwMiwgMHg0OSwgMHgyMCwgMHgwOSwgMHg3NywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwKLSAgMHgzOCwgMHg3MCwgMHg2ZiwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg5OSwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg0MH19LAotIHsweDAyMDYsIDY0LCB7IDB4MTcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4MjAsIDB4MGQsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MWMsIDB4YzIsIDB4MGQsIDB4OTAsCi0gIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MWMsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsCi0gIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsCi0gIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4ZDIsIDB4MGJ9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweDAyLCAweDA0LCAweDFjLCAweGMyLCAweDE0LCAweDAyLCAweDA0LCAweDFjLCAweDIwLCAweDBiLCAweDAzLCAweDAyLCAweDAyLCAweGZmLCAweGU1LCAweDNhLCAweGMzLAotICAweDk1LCAweDUzLCAweDUwLCAweDNjLCAweDIwLCAweDBjLCAweDM0LCAweDIwLCAweDA5LCAweDMxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LAotICAweDcwLCAweDI5LCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1fX0sCi0gezB4MDI4NiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHgwMiwgMHgwNCwgMHgxYywgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywKLSAgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMywgMHgzMCwgMHgwZCwgMHgwYywgMHhjMiwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwKLSAgMHhmMCwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNSwgMHhjMiwgMHgwYiwgMHgwMiwKLSAgMHgwNCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg1MywgMHg5MCwgMHg3ZSwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZH19LAotIHsweDAyYzYsIDY0LCB7IDB4NzUsIDB4MTYsIDB4ZmYsIDB4MjAsIDB4MGMsIDB4MmIsIDB4MjAsIDB4MDksIDB4MjgsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4MjAsCi0gIDB4MzAsIDB4MTAsIDB4MTEsIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4NzUsIDB4M2EsCi0gIDB4MDMsIDB4MDIsIDB4MDQsIDB4MWMsIDB4NzUsIDB4M2EsIDB4MDIsIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4MDIsIDB4MDQsIDB4MWMsCi0gIDB4NzUsIDB4M2EsIDB4MDEsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsIDB4MDN9fSwKLSB7MHgwMzA2LCA2NCwgeyAweDAyLCAweDAzLCAweGEyLCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDE0LCAweGMyLCAweDA1LCAweDAyLCAweDA0LCAweDFjLAotICAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUzLCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDE2LCAweGZmLAotICAweDIwLCAweDBjLCAweDcwLCAweDIwLCAweDA5LCAweDZkLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDY1LCAweDMwLCAweDEwLAotICAweDEwLCAweDkwLCAweDdkLCAweGMxLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGEzLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDNhLCAweDAzfX0sCi0gezB4MDM0NiwgNjQsIHsgMHg4MCwgMHgwOSwgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHgzYSwgMHgwMiwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg0MCwKLSAgMHgxNywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMywgMHgyMCwgMHgwZCwgMHgwMywgMHgwMiwgMHgwNCwgMHgxYywgMHhjMiwgMHgwZCwKLSAgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgxYywgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwKLSAgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYX19LAotIHsweDAzODYsIDY0LCB7IDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4ZDIsIDB4MGIsCi0gIDB4MDIsIDB4MDQsIDB4MWMsIDB4NzUsIDB4M2EsIDB4MDEsIDB4YzIsIDB4MTQsIDB4MDIsIDB4MDQsIDB4MWMsIDB4MjAsIDB4MGMsIDB4NzUsIDB4MjAsIDB4MDksCi0gIDB4NzIsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4NmEsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsCi0gIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YWZ9fSwKLSB7MHgwM2M2LCA2NCwgeyAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDk5LCAweGU1LAotICAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDQwLCAweDEzLCAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwLCAweGQyLCAweDAzLCAweDMwLCAweDBkLCAweDM1LAotICAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDgwLCAweDJjLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLAotICAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmfX0sCi0gezB4MDQwNiwgNjQsIHsgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHhkMiwKLSAgMHgwYiwgMHg4MCwgMHgwMiwgMHhjMiwgMHgxNCwgMHhkMiwgMHgwMSwgMHgyMCwgMHg5OCwgMHgwMywgMHgwMiwgMHgwNSwgMHg1YSwgMHhjMiwgMHg5OCwgMHgyMCwKLSAgMHgwMiwgMHgwMywgMHgwMiwgMHgwNCwgMHhjNywgMHgyMCwgMHgxNiwgMHgyNywgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwgMHgxMCwgMHg0ZCwgMHhhZiwgMHgzOSwgMHgwNX19LAotIHsweDA0NDYsIDY0LCB7IDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ODAsIDB4M2EsIDB4ODUsCi0gIDB4OTksIDB4MTAsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDcsIDB4MDQsIDB4ZDIsIDB4MDksIDB4ODAsIDB4MmUsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDYsIDB4MDQsCi0gIDB4YzIsIDB4MDksIDB4ODAsIDB4MjUsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsCi0gIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4MTAsIDB4ZjAsIDB4MzAsIDB4MTAsIDB4MTEsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4ODAsIDB4MmZ9fSwKLSB7MHgwNDg2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDBmLCAweGU1LCAweDM5LCAweGMzLCAweDk1LCAweDQzLAotICAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweDU4LCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDMwLCAweGUxLCAweDE2LCAweGU1LCAweDM5LCAweGMzLCAweDk0LAotICAweDQwLCAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweDU4LCAweDE1LCAweDM5LCAweDE1LCAweDM5LCAweDA1LCAweDJiLCAweDQzLCAweDM0LCAweDAxLCAweDAyLAotICAweDA1LCAweDU4LCAweDkwLCAweDdmLCAweGI3LCAweGU1LCAweDM5LCAweGYwLCAweDc1LCAweDM5LCAweDAwLCAweGMyLCAweDAyLCAweDAyLCAweDA1fX0sCi0gezB4MDRjNiwgNjQsIHsgMHg1OCwgMHgyMCwgMHgxNiwgMHgyNywgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwKLSAgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwgMHgxMCwgMHg0ZCwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHg4MCwgMHgzYSwgMHg4NSwgMHg5OSwgMHgxMCwgMHhlNSwgMHgxMCwgMHhiNSwKLSAgMHg0NywgMHgwNCwgMHhkMiwgMHgwOSwgMHg4MCwgMHgyZSwgMHhlNSwgMHgxMCwgMHhiNSwgMHg0NiwgMHgwNCwgMHhjMiwgMHgwOSwgMHg4MCwgMHgyNX19LAotIHsweDA1MDYsIDY0LCB7IDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4MTAsIDB4ZjAsCi0gIDB4MzAsIDB4MTAsIDB4MTEsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsCi0gIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ZDIsIDB4MGYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTUsIDB4NDMsIDB4NDAsIDB4MjQsIDB4OTAsIDB4N2YsIDB4YjYsCi0gIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTIsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTQsIDB4NDAsIDB4NDAsIDB4MTYsIDB4MTUsIDB4MzksIDB4MTUsIDB4Mzl9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweDA1LCAweDJiLCAweDQzLCAweDM0LCAweDAxLCAweDgwLCAweDBiLCAweDkwLCAweDdmLCAweGI5LCAweGU1LCAweDM5LCAweGYwLCAweDc1LCAweDM5LCAweDAwLCAweGQyLAotICAweDAyLCAweGQyLCAweDAxLCAweDMwLCAweDAxLCAweDA1LCAweGMyLCAweDAxLCAweDAyLCAweDAwLCAweDU2LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLAotICAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDUxLCAweGU1LCAweDM0LCAweDYwLAotICAweDRkLCAweGU1LCAweDMxLCAweDcwLCAweDQ5LCAweGU1LCAweDM0LCAweDMwLCAweGUxLCAweDA4LCAweGU0LCAweGY1LCAweDJmLCAweDc1LCAweDM0fX0sCi0gezB4MDU4NiwgNjQsIHsgMHgwMSwgMHg4MCwgMHgwYiwgMHhhMiwgMHgwOCwgMHhlNCwgMHgzMywgMHhmNSwgMHgyZiwgMHhjMiwgMHgwOCwgMHhlNCwgMHhmNSwgMHgzNCwgMHhlNCwgMHhmNSwgMHgxMSwKLSAgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxMSwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZCwgMHgwNiwKLSAgMHhmZiwgMHg3NCwgMHgwMCwgMHgyNSwgMHgxMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxMSwKLSAgMHhlNSwgMHgxMSwgMHhiNCwgMHgwYywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHg3NCwgMHgwYywgMHhmMCwgMHg3NSwgMHgzMSwgMHgxMCwgMHg5MH19LAotIHsweDA1YzYsIDY0LCB7IDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDYsIDB4ZjMsIDB4ZTQsIDB4ZjUsIDB4MTEsIDB4NzQsIDB4NDAsIDB4MjUsIDB4MTEsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTEsIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDAsIDB4MjQsIDB4M2IsCi0gIDB4ZjksIDB4ZWMsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGQsIDB4MWYsIDB4MDUsIDB4MTEsIDB4ZTUsIDB4MTEsIDB4YjQsIDB4MTgsIDB4ZGIsCi0gIDB4ZTUsIDB4M2IsIDB4NjAsIDB4MTEsIDB4NzUsIDB4YzksIDB4MjAsIDB4NzUsIDB4YzgsIDB4MzYsIDB4ODUsIDB4M2MsIDB4Y2EsIDB4ODUsIDB4M2R9fSwKLSB7MHgwNjA2LCA2NCwgeyAweGNiLCAweGU0LCAweDkwLCAweDdmLCAweDlmLCAweGYwLCAweGU1LCAweDNlLCAweDEzLCAweDkyLCAweDEwLCAweDkyLCAweDlmLCAweDg1LCAweDNmLCAweDM4LCAweGU1LAotICAweDQwLCAweDEzLCAweDkyLCAweDE2LCAweGU1LCAweDQxLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDgwLAotICAweDA3LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGU1LCAweDQyLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweGUwLAotICAweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDQ4LCAweDYwfX0sCi0gezB4MDY0NiwgNjQsIHsgMHgwYiwgMHhjMiwgMHgwYywgMHhjMiwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0OSwgMHg2MCwgMHgwYywgMHhkMiwKLSAgMHgwOSwgMHg0MywgMHgzNCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHg0YSwgMHg2MCwgMHgwZCwgMHhjMiwKLSAgMHhhZiwgMHhjMiwgMHgwYiwgMHhkMiwgMHgwMCwgMHhlNCwgMHhmNSwgMHg1MywgMHhmNSwgMHgzYSwgMHhkMiwgMHhhZiwgMHhlNSwgMHg0YiwgMHg2MCwgMHgwNSwKLSAgMHgzMCwgMHgxNiwgMHgwMiwgMHhkMiwgMHgwOSwgMHhlNSwgMHg0YywgMHg2MCwgMHgxNSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg1NCwgMHhmZH19LAotIHsweDA2ODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4NGQsCi0gIDB4NjAsIDB4MGEsIDB4ZDIsIDB4OWMsIDB4YzIsIDB4OTgsIDB4NzUsIDB4MmMsIDB4MDEsIDB4NzUsIDB4MzEsIDB4MWUsIDB4ZTUsIDB4NGUsIDB4NjAsIDB4MDcsCi0gIDB4YzIsIDB4OWMsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MmMsIDB4ZTUsIDB4NGYsIDB4NjAsIDB4MDMsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZTUsIDB4NTAsCi0gIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MDcsIDB4ZTUsIDB4NTEsIDB4NjAsIDB4MGEsIDB4ZTUsIDB4NGQsIDB4NzAsIDB4MDIsIDB4ZjUsIDB4MzEsIDB4ZTV9fSwKLSB7MHgwNmM2LCA2NCwgeyAweDUxLCAweDQyLCAweDM0LCAweGU1LCAweDUyLCAweDYwLCAweDFmLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LAotICAweDEyLCAweGYwLCAweDc0LCAweDMyLCAweGYwLCAweDc0LCAweDEzLCAweGYwLCAweDc0LCAweDMzLCAweGYwLCAweDc0LCAweDE0LCAweGYwLCAweDc0LCAweDM0LAotICAweGYwLCAweGQyLCAweDAzLCAweGQyLCAweDAyLCAweGQyLCAweDA4LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweGEyLCAweDBjLCAweGU0LCAweDMzLAotICAweGZmLCAweDY1LCAweDI5LCAweDYwLCAweDA1LCAweDhmLCAweDI5LCAweDQzLCAweDM0LCAweDAxLCAweGEyLCAweDA5LCAweGU0LCAweDMzLCAweGZmfX0sCi0gezB4MDcwNiwgNjQsIHsgMHg2NSwgMHgyYSwgMHg2MCwgMHgwNSwgMHg4ZiwgMHgyYSwgMHg0MywgMHgzNCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHhmZiwgMHg1NCwgMHgwOCwgMHg2NCwKLSAgMHgwOCwgMHhmZSwgMHg2NSwgMHgyNSwgMHg2MCwgMHgwNSwgMHg4ZSwgMHgyNSwgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHgxMCwgMHg2NCwgMHgxMCwKLSAgMHhmZSwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNSwgMHg4ZSwgMHgyNiwgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHg0MCwgMHg2NCwgMHg0MCwgMHhmZSwKLSAgMHg2NSwgMHgyNywgMHg2MCwgMHgwNSwgMHg4ZSwgMHgyNywgMHg0MywgMHgzNCwgMHgwMSwgMHhlZiwgMHg1NCwgMHgyMCwgMHg2NCwgMHgyMCwgMHhmZX19LAotIHsweDA3NDYsIDY0LCB7IDB4NjUsIDB4MjgsIDB4NjAsIDB4MDUsIDB4OGUsIDB4MjgsIDB4NDMsIDB4MzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsIDB4NTQsIDB4NDAsIDB4NjQsIDB4NDAsCi0gIDB4ZmUsIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDUsIDB4OGUsIDB4MmUsIDB4NDMsIDB4MzQsIDB4MDEsIDB4MzAsIDB4MDcsIDB4MzUsIDB4YzIsIDB4YWYsIDB4MzAsCi0gIDB4MDIsIDB4MTgsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjcsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjcsCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4YzIsIDB4MDIsIDB4YzIsIDB4MDcsIDB4ODAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MjB9fSwKLSB7MHgwNzg2LCA2NCwgeyAweGUxLCAweDBmLCAweGU1LCAweDM5LCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGI5LCAweGYwLCAweGU0LCAweGY1LCAweDM5LCAweGQyLCAweDAyLCAweGMyLCAweDA3LAotICAweGQyLCAweGFmLCAweDIwLCAweDA1LCAweDNkLCAweDMwLCAweDAzLCAweDFlLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDMzLCAweDkwLAotICAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDNhLCAweDAxLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDUzLCAweGQyLAotICAweDA1LCAweDc1LCAweDE2LCAweGZmLCAweDgwLCAweDFjLCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDE1LCAweDkwLCAweDdkfX0sCi0gezB4MDdjNiwgNjQsIHsgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgzYSwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg1MywgMHhkMiwgMHgwNSwgMHg3NSwKLSAgMHgxNiwgMHhmZiwgMHgyMCwgMHgxNCwgMHgzMywgMHgyMCwgMHgwMCwgMHgwNiwgMHhlNSwgMHgzYSwgMHg2NSwgMHg1MywgMHg3MCwgMHgyYSwgMHgzMCwgMHgwNSwKLSAgMHgxYSwgMHgzMCwgMHgwMywgMHgwOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMywgMHhjMiwgMHgwNSwgMHhlNCwgMHhmNSwgMHg1MywgMHhmNSwgMHgzYSwgMHgzMCwgMHgwZCwgMHgwYSwgMHhjMn19LAotIHsweDA4MDYsIDY0LCB7IDB4MGQsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsIDB4MjAsIDB4MDUsCi0gIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsIDB4MzAsIDB4MGMsIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsCi0gIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDksIDB4MTQsIDB4MzAsIDB4MDMsIDB4NjEsIDB4MzAsIDB4MTAsCi0gIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwODQ2LCA2NCwgeyAweGUwLCAweDEzLCAweDkyLCAweDFiLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LAotICAweDgzLCAweGUwLCAweGZlLCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLCAweDJhLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LAotICAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLAotICAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1fX0sCi0gezB4MDg4NiwgNjQsIHsgMHgzNiwgMHhkMiwgMHgwYiwgMHg4MCwgMHg2YSwgMHhjMiwgMHgwYiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwgMHg1ZiwgMHgzMCwKLSAgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHgxMywgMHg5MiwgMHgxYiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHhmZSwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgyYSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZn19LAotIHsweDA4YzYsIDY0LCB7IDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsCi0gIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsCi0gIDB4MzYsIDB4ZDIsIDB4MGIsIDB4ODAsIDB4MDksIDB4YzIsIDB4MGIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MzAsIDB4MTAsCi0gIDB4MDQsIDB4YTIsIDB4MWIsIDB4OTIsIDB4OWIsIDB4ZDIsIDB4MTQsIDB4YzIsIDB4YWYsIDB4OGUsIDB4OTksIDB4MjAsIDB4MGIsIDB4MGQsIDB4MzB9fSwKLSB7MHgwOTA2LCA2NCwgeyAweDBkLCAweDBhLCAweGMyLCAweDBkLCAweGMyLCAweDAwLCAweDkwLCAweDdmLCAweGJiLCAweDc0LCAweDAxLCAweGYwLCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLAotICAweGU5LCAweGUwLCAweDEyLCAweDBkLCAweDMxLCAweDBhLCAweDExLCAweDAwLCAweDBhLCAweDdlLCAweDAxLCAweDBhLCAweGRiLCAweDAzLCAweDA5LCAweDM4LAotICAweDA2LCAweDBhLCAweDAyLCAweDA4LCAweDA5LCAweGY2LCAweDA5LCAweDA5LCAweGRlLCAweDBhLCAweDA5LCAweGVkLCAweDBiLCAweDAwLCAweDAwLCAweDBiLAotICAweDE5LCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDE0LCAweDYwLCAweDVhLCAweDI0LCAweDAyLCAweDYwfX0sCi0gezB4MDk0NiwgNjQsIHsgMHgwMywgMHgwMiwgMHgwYiwgMHgxOSwgMHg3NCwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHg4NywgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwKLSAgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwKLSAgMHhkOCwgMHg3NSwgMHg4MywgMHgwZCwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHhkMSwgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg3NSwgMHg4MiwgMHhjYSwKLSAgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg3NSwgMHg4MiwgMHhjMywgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMH19LAotIHsweDA5ODYsIDY0LCB7IDB4MDQsIDB4NzUsIDB4ODIsIDB4OWUsIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZjAsIDB4NzQsIDB4MGQsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4OTksIDB4OTAsCi0gIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MGIsIDB4NzUsIDB4MTEsIDB4ZmYsIDB4NzUsCi0gIDB4MTIsIDB4MGQsIDB4NzUsIDB4MTMsIDB4ZGMsIDB4ODAsIDB4MWIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MGIsIDB4NzUsIDB4MTEsCi0gIDB4ZmYsIDB4NzUsIDB4MTIsIDB4MGQsIDB4NzUsIDB4MTMsIDB4ZTAsIDB4ODAsIDB4MDksIDB4NzUsIDB4MTEsIDB4ZmYsIDB4NzUsIDB4MTIsIDB4MGR9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDc1LCAweDEzLCAweGYwLCAweGFhLCAweDEyLCAweGE5LCAweDEzLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLCAweGVmLAotICAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDE1LCAweGYwLCAweDkwLCAweDdmLCAweGI1LAotICAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDE1LCAweDAyLCAweDBiLCAweDIwLCAweDEyLAotICAweDBjLCAweGIxLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDE0LCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweDAwLCAweGU1fX0sCi0gezB4MGEwNiwgNjQsIHsgMHgxNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwKLSAgMHg2MCwgMHgyNywgMHgxNCwgMHg2MCwgMHgzNCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHgxOSwgMHhhMiwgMHgxNywgMHhlNCwgMHgzMywKLSAgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgxOSwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgyMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhhM319LAotIHsweDBhNDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsCi0gIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTd9fSwKLSB7MHgwYTg2LCA2NCwgeyAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBiLAotICAweDE5LCAweGMyLCAweDE3LCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDc2LCAweDkwLCAweDdmLCAweGVjLCAweGUwLAotICAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LAotICAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwfX0sCi0gezB4MGFjNiwgNjQsIHsgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwKLSAgMHgyMCwgMHhmMCwgMHg4MCwgMHg0NSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxMCwgMHgyNCwgMHgwMiwgMHg3MCwgMHgzOSwKLSAgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg2NCwgMHgwMSwgMHg3MCwgMHgyYSwgMHhkMiwgMHgxNywgMHg4MCwgMHgyZCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwKLSAgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMH19LAotIHsweDBiMDYsIDY0LCB7IDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsCi0gIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsCi0gIDB4MjIsIDB4YzIsIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MTQsIDB4ZjUsIDB4MzQsIDB4YzIsIDB4MDksIDB4YzIsIDB4MGMsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MTQsCi0gIDB4YzIsIDB4MGQsIDB4YzIsIDB4MTYsIDB4YzIsIDB4MTEsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MTIsIDB4YzIsIDB4MGYsIDB4YzIsIDB4MDgsIDB4ZjV9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweDM1LCAweGY1LCAweDM5LCAweGY1LCAweDUzLCAweGY1LCAweDNhLCAweGY1LCAweDMzLCAweGY1LCAweDMwLCAweGY1LCAweDJmLCAweGY1LCAweDJlLCAweGY1LCAweDJkLAotICAweGY1LCAweDJjLCAweGY1LCAweDJiLCAweGY1LCAweDJhLCAweGY1LCAweDI5LCAweGY1LCAweDI4LCAweGY1LCAweDI3LCAweGY1LCAweDI2LCAweGY1LCAweDI1LAotICAweGY1LCAweDI0LCAweGMyLCAweDA1LCAweGMyLCAweDE4LCAweGMyLCAweDFhLCAweGMyLCAweDE3LCAweGMyLCAweDE5LCAweGMyLCAweDE1LCAweGMyLCAweDA0LAotICAweGQyLCAweDEzLCAweGMyLCAweDA2LCAweGMyLCAweDAxLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGQyLCAweGU4fX0sCi0gezB4MGI4NiwgNjQsIHsgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKLSAgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwKLSAgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHg3NCwgMHgwZSwKLSAgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHhiYywgMHhkMiwgMHgxYiwgMHgxMiwgMHgwZiwgMHg1ZiwgMHhjMiwgMHgxOCwgMHgzMCwgMHgwNCwgMHgwM319LAotIHsweDBiYzYsIDY0LCB7IDB4MTIsIDB4MDUsIDB4NmQsIDB4MzAsIDB4MDQsIDB4MmEsIDB4MzAsIDB4MDYsIDB4MjcsIDB4YzIsIDB4MDYsIDB4ZTUsIDB4MTYsIDB4NjAsIDB4MTYsIDB4MTUsIDB4MTYsCi0gIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4MzAsIDB4ZTYsIDB4MDQsIDB4N2YsIDB4MDAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OTYsCi0gIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDYsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4MjAsIDB4ZjAsIDB4MTIsIDB4MGMsIDB4MGIsIDB4ODAsIDB4Y2QsIDB4MzAsCi0gIDB4MTgsIDB4MDcsIDB4YzIsIDB4MTgsIDB4MTIsIDB4MDksIDB4MTUsIDB4ODAsIDB4YzMsIDB4MzAsIDB4MWEsIDB4YzAsIDB4YzIsIDB4MWEsIDB4MTJ9fSwKLSB7MHgwYzA2LCA2NCwgeyAweDBmLCAweGJiLCAweDgwLCAweGI5LCAweDIyLCAweGU1LCAweDMxLCAweDYwLCAweDAyLCAweDE1LCAweDMxLCAweGU1LCAweDM5LCAweDYwLCAweDU1LCAweDY1LCAweDM1LAotICAweDcwLCAweDRiLCAweGU1LCAweDMzLCAweGY0LCAweDYwLCAweDAyLCAweDA1LCAweDMzLCAweGU1LCAweDMzLCAweGMzLCAweDk1LCAweDQ0LCAweDQwLCAweDQzLAotICAweGMyLCAweGFmLCAweDMwLCAweDAyLCAweDFiLCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDJkLCAweDkwLCAweDdmLCAweGI3LCAweGU1LAotICAweDM5LCAweGYwLCAweGMyLCAweDAyLCAweGU0LCAweGY1LCAweDM5LCAweGY1LCAweDMzLCAweGY1LCAweDM1LCAweDc1LCAweDE2LCAweGZmLCAweDgwfX0sCi0gezB4MGM0NiwgNjQsIHsgMHgxOSwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzOSwgMHhmMCwgMHhkMiwgMHgwMiwgMHhlNCwKLSAgMHhmNSwgMHgzOSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNSwgMHg3NSwgMHgxNiwgMHhmZiwgMHhkMiwgMHhhZiwgMHg4MCwgMHgwNiwgMHg4NSwgMHgzOSwgMHgzNSwKLSAgMHhlNCwgMHhmNSwgMHgzMywgMHhlNSwgMHgyYywgMHg2MCwgMHgzMCwgMHgyMCwgMHgwZiwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMCwKLSAgMHgwZiwgMHhlNSwgMHgyZCwgMHg2MCwgMHgwNiwgMHhlNCwgMHhmNSwgMHgyZCwgMHg0MywgMHgzNCwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzMCwgMHg4MH19LAotIHsweDBjODYsIDY0LCB7IDB4MTQsIDB4ZTUsIDB4MzAsIDB4ZDMsIDB4OTUsIDB4NDUsIDB4NTAsIDB4MGQsIDB4ZTUsIDB4MzAsIDB4YjUsIDB4NDUsIDB4MDYsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NDMsCi0gIDB4MzQsIDB4MDEsIDB4MDUsIDB4MzAsIDB4YzIsIDB4MGYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDksIDB4ZTAsIDB4MzAsIDB4ZTIsIDB4MDQsIDB4N2YsIDB4MDAsCi0gIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4NzR9fSwKLSB7MHgwY2M2LCA2NCwgeyAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweDc0LCAweDg2LCAweGYwLCAweDkwLCAweDdmLCAweDk1LAotICAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDg0LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweGM3LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDc1LCAweDk4LCAweDQwLCAweDQzLCAweGE4LCAweDEwLAotICAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDFmLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweDBmLCAweGYwLCAweGQyLCAweDA0LCAweDIyfX0sCi0gezB4MGQwNiwgNjQsIHsgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywKLSAgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwKLSAgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwKLSAgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5M319LAotIHsweDBkNDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsCi0gIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsCi0gIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZDg2LCA2NCwgeyAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwLCAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDBjLCAweDAxLCAweDAxLCAweDAwLCAweDAxLCAweDAyLAotICAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDQzLCAweDAwLCAweDAxLCAweDAxLCAweDAwLCAweDgwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDA3LAotICAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDgxLCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MGRjNiwgNjQsIHsgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwKLSAgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHgxMCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwKLSAgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgwZSwgMHgwMywgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwZSwgMHhhMiwgMHgwMCwgMHgwMiwgMHgwZX19LAotIHsweDBlMDYsIDY0LCB7IDB4N2IsIDB4MDAsIDB4MDIsIDB4MGQsIDB4NTcsIDB4MDAsIDB4MDIsIDB4MGUsIDB4YzksIDB4MDAsIDB4MDIsIDB4MGUsIDB4MTAsIDB4MDAsIDB4MDIsIDB4MGUsIDB4MTQsCi0gIDB4MDAsIDB4MDIsIDB4MGUsIDB4MTgsIDB4MDAsIDB4MDIsIDB4MGUsIDB4MWMsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ZjAsIDB4MDAsIDB4MDIsIDB4MGUsIDB4MjQsCi0gIDB4MDAsIDB4MDIsIDB4MGYsIDB4MTUsIDB4MDAsIDB4MDIsIDB4MGUsIDB4MmMsIDB4MDAsIDB4MDIsIDB4MGYsIDB4M2EsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTUsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZTAsIDB4NDQsIDB4MDJ9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDEwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweDk2LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZlLCAweGYwLCAweDMwLCAweDE3LCAweDA0LCAweDdmLCAweDgwLCAweDgwLCAweDAyLCAweDdmLAotICAweDAwLCAweDkwLCAweDdmLCAweDk3LCAweGVmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweGYwLCAweDkwLAotICAweDdmLCAweDk4LCAweGYwLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwfX0sCi0gezB4MGU4NiwgNjQsIHsgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMiwgMHhmMCwgMHhkMiwgMHgwNiwgMHhkMCwgMHg4NiwKLSAgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwKLSAgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwKLSAgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4M319LAotIHsweDBlYzYsIDY0LCB7IDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsCi0gIDB4MDAsIDB4ZDIsIDB4MWEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsCi0gIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsCi0gIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzR9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDAyLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLAotICAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDUzLCAweDkxLCAweGVmLAotICAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLAotICAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2fX0sCi0gezB4MGY0NiwgNjQsIHsgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwKLSAgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwKLSAgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgxYiwgMHgwNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgwMCwKLSAgMHgwMywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHgyMiwgMHg3NCwgMHgwMH19LAotIHsweDBmODYsIDY0LCB7IDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MGQsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDAsIDB4MDMsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsCi0gIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MGUsIDB4MzMsIDB4MTIsIDB4MGYsIDB4OTUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzB9fSwKLSB7MHgwZmM2LCAgOSwgeyAweGU3LCAweDAzLCAweDEyLCAweDBmLCAweGE1LCAweDEyLCAweDBjLCAweGIxLCAweDIyfX0sCi0gezB4ZmZmZiwJMCwJezB4MDB9fQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5cXdfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5cXdfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDgwM2Y4Yi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXF3X2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NDggKzAsMCBAQAotLyoga2V5c3Bhbl91c2ExOXF3X2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMTl3cV9mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTE5cXdfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDJkfX0sCi0gezB4MDAyZCwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAotIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MTAsIDB4MTksIDB4MTIsIDB4MGUsIDB4MGYsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4MTQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZGYsIDB4OTB9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDEwLCAweGMyLCAweDBiLCAweDAyLCAweDAwLCAweGRmLCAweDMwLCAweDBkLCAweDNlLCAweDkwfX0sCi0gezB4MDA2NiwgMTYsIHsgMHg3ZiwgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg3MywgMHgxMiwgMHgwZSwgMHgwZiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2YSwgMHg5MH19LAotIHsweDAwNzYsIDE2LCB7IDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MzYsIDB4MjAsIDB4MGIsIDB4MTF9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDYwLCAweDBmLCAweGY1LCAweDI0LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDI5LCAweDdlLCAweDc1LCAweDJhLCAweDQxLCAweDEyLCAweDA5fX0sCi0gezB4MDA5NiwgMTYsIHsgMHgxMCwgMHhjMiwgMHgwZCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg3NSwgMHgyNiwgMHhmZiwgMHg4MCwgMHgzYywgMHg5MCwgMHg3ZiwgMHhjOH19LAotIHsweDAwYTYsIDE2LCB7IDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzUsIDB4MTIsIDB4MGUsIDB4MGYsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MmMsIDB4OTAsIDB4N2QsIDB4YzB9fSwKLSB7MHgwMGI2LCAxNiwgeyAweGUwLCAweDEzLCAweDkyLCAweDEwLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDM2LCAweDIwLCAweDBiLCAweDExLCAweDYwLCAweDBmfX0sCi0gezB4MDBjNiwgMTYsIHsgMHhmNSwgMHgyNCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHhjMSwgMHg3NSwgMHgyOSwgMHg3ZCwgMHg3NSwgMHgyYSwgMHhjMSwgMHgxMiwgMHgwOSwgMHgxMCwgMHhkMn19LAotIHsweDAwZDYsIDE2LCB7IDB4MGQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4NzUsIDB4MjYsIDB4ZmYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDN9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDAyLCAweDAxLCAweDY4LCAweDEyLCAweDBjLCAweGZmLCAweDhmLCAweDM2LCAweDEyLCAweDBlLCAweDFiLCAweDhmLCAweDExLCAweGU1LCAweDM2LCAweGMzfX0sCi0gezB4MDBmNiwgMTYsIHsgMHg5NSwgMHgxMywgMHg1MCwgMHgwZiwgMHgxMiwgMHgwZCwgMHhkZSwgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgxMSwgMHgyMCwgMHhlNywgMHgwM319LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDBlLCAweDAwfX0sCi0gezB4MDAwMywgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MH19LAotIHsweDAwMTMsIDE2LCB7IDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDB9fSwKLSB7MHgwMDIzLCAxMCwgeyAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwOSwgMHhjNX19LAotIHsweDAxMDYsIDY0LCB7IDB4MzAsIDB4MTMsIDB4NWYsIDB4YzIsIDB4MTMsIDB4ZTUsIDB4MzYsIDB4NjAsIDB4NTksIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MTEsIDB4MDIsIDB4ZTUsIDB4MTEsCi0gIDB4MzAsIDB4ZTcsIDB4MjQsIDB4ZTUsIDB4MzYsIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MzYsIDB4MjAsIDB4ODUsIDB4MzYsIDB4MjQsCi0gIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MjksIDB4N2UsIDB4NzUsIDB4MmEsIDB4ODAsIDB4MTIsIDB4MGIsIDB4OWEsIDB4ZTUsIDB4MzYsIDB4MjUsCi0gIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4ODAsIDB4MmEsIDB4ZTUsIDB4MzYsIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzV9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDM2LCAweDNmLCAweDg1LCAweDM2LCAweDI0LCAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDExLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDI5LAotICAweDdlLCAweDc1LCAweDJhLCAweDgxLCAweDEyLCAweDA5LCAweDM1LCAweGU1LCAweDM2LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDc1LCAweDI2LAotICAweGZmLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDBlLCAweDAzLCAweDAyLCAweDAzLCAweGM0LCAweGU0LCAweGY1LAotICAweDM1LCAweDc0LCAweDQwLCAweDI1LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1fX0sCi0gezB4MDE4NiwgNjQsIHsgMHgzNSwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKLSAgMHgxMiwgMHgwYSwgMHg5NywgMHgwNSwgMHgzNSwgMHhlNSwgMHgzNSwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2ZSwKLSAgMHg3ZiwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgxMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgwYywgMHhkYSwgMHg5MCwgMHg3ZSwgMHgwMSwgMHhlMCwgMHhmZiwgMHgxMiwKLSAgMHgwYywgMHgxYywgMHg5MCwgMHg3ZSwgMHgwMiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYywgMHg0MiwgMHhkMiwgMHgxMSwgMHhkMiwgMHgxMiwgMHg3NX19LAotIHsweDAxYzYsIDY0LCB7IDB4MzYsIDB4MDQsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4YzIsIDB4MTIsIDB4NDMsIDB4MzYsIDB4YzAsIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsCi0gIDB4YjQsIDB4MDEsIDB4MDcsIDB4YzIsIDB4MTIsIDB4NDMsIDB4MzYsIDB4MGIsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsIDB4NjAsIDB4MDcsCi0gIDB4YzIsIDB4MTEsIDB4NDMsIDB4MzYsIDB4MDksIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4N2YsIDB4MDMsIDB4YWQsIDB4MzYsIDB4MTIsIDB4MGMsCi0gIDB4ZGEsIDB4NDMsIDB4MWEsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWF9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDE3LCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAotICAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDE5LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAotICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDE5LCAweGYwLCAweDkwLCAweDdlLCAweDA3LCAweGUwLCAweDYwLCAweDQyLCAweDkwLCAweDdlLCAweDEzLCAweGUwLAotICAweDYwLCAweDA1LCAweDQzLCAweDE2LCAweDA0LCAweDgwLCAweDAzLCAweDUzLCAweDE2LCAweGZiLCAweGU0LCAweGZmLCAweGFkLCAweDE2LCAweDEyfX0sCi0gezB4MDI0NiwgNjQsIHsgMHgwYywgMHhkYSwgMHg5MCwgMHg3ZSwgMHgwOCwgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxOCwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHgxOCwgMHg3ZiwgMHg1MywKLSAgMHgxOCwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHgxOCwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYywKLSAgMHg4ZSwgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYywgMHhiNCwgMHhhZiwgMHgxOCwgMHgxMiwgMHgwYywgMHg2OCwgMHg5MCwgMHg3ZSwKLSAgMHgwZSwgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxYSwgMHgwMSwgMHg4MCwgMHgwMywgMHg1MywgMHgxYX19LAotIHsweDAyODYsIDY0LCB7IDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGMsIDB4ZTAsCi0gIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MWEsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MWEsIDB4ZmQsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4MTMsCi0gIDB4YTMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MTQsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MWF9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDFhLCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDFhLAotICAweGYwLCAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDE5LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAotICAweGU1LCAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDBkLAotICAweGQyLCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDE2LCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDE2fX0sCi0gezB4MDMwNiwgNjQsIHsgMHgxMiwgMHgwYywgMHhkYSwgMHhlNCwgMHhmNSwgMHgwZSwgMHhmNSwgMHgwZCwgMHhkMiwgMHgwZiwgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywKLSAgMHgxNiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgxNiwgMHgxMiwgMHgwYywgMHhkYSwgMHg3NSwgMHgwZCwgMHgwMSwgMHhkMiwgMHgwZiwgMHg5MCwgMHg3ZSwKLSAgMHgxOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHgxNywgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHhkMiwgMHgwYiwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHgxOSwgMHg0MCwgMHg5MCwgMHg3Zn19LAotIHsweDAzNDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTksIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsCi0gIDB4MGYsIDB4NTMsIDB4MTYsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTYsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4NzUsIDB4MGYsIDB4MDEsIDB4ZDIsIDB4MGYsCi0gIDB4OTAsIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4MTYsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTYsIDB4MTIsIDB4MGMsIDB4ZGEsCi0gIDB4ZTQsIDB4ZjUsIDB4MGYsIDB4ZDIsIDB4MGYsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzR9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDEyLCAweGYwLCAweGU1LCAweDE3LCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLAotICAweDEzLCAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDEwLCAweDAxLCAweGU0LCAweGY1LCAweDEyLCAweGQyLCAweDBmLCAweDkwLAotICAweDdlLCAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LAotICAweGYwLCAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDBkLCAweGMyLCAweDBlLCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDE2fX0sCi0gezB4MDNjNiwgNjQsIHsgMHg3MSwgMHhlNSwgMHgxMiwgMHg2MCwgMHgwMiwgMHgxNSwgMHgxMiwgMHhlNSwgMHgzMCwgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgzMCwgMHg4MCwKLSAgMHg2MCwgMHg3NSwgMHgzMCwgMHgwYSwgMHgxMiwgMHgwZCwgMHhkMiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgzNiwgMHg2NSwgMHgwZSwgMHg2MCwgMHgwNywKLSAgMHg4NSwgMHgzNiwgMHgwZSwgMHhkMiwgMHgwZiwgMHg4MCwgMHgxMSwgMHgxMiwgMHgwZSwgMHgyNywgMHhlZiwgMHg1NCwgMHgxMCwgMHhmNSwgMHgzNiwgMHg2NSwKLSAgMHgwOSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgzNiwgMHgwOSwgMHhkMiwgMHgwZiwgMHgxMiwgMHgwZSwgMHgyNywgMHhlZiwgMHg1NCwgMHg4MCwgMHhmNX19LAotIHsweDA0MDYsIDY0LCB7IDB4MzYsIDB4NjUsIDB4MGEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MzYsIDB4MGEsIDB4ZDIsIDB4MGYsIDB4MTIsIDB4MGUsIDB4MjcsIDB4ZWYsIDB4NTQsIDB4MjAsIDB4ZjUsCi0gIDB4MzYsIDB4NjUsIDB4MGIsIDB4NjAsIDB4MDgsIDB4ODUsIDB4MzYsIDB4MGIsIDB4MzAsIDB4MTEsIDB4MDIsIDB4ZDIsIDB4MGYsIDB4MTIsIDB4MGUsIDB4MjcsCi0gIDB4ZWYsIDB4NTQsIDB4NDAsIDB4ZjUsIDB4MzYsIDB4NjUsIDB4MGMsIDB4NjAsIDB4MDgsIDB4ODUsIDB4MzYsIDB4MGMsIDB4MzAsIDB4MTIsIDB4MDIsIDB4ZDIsCi0gIDB4MGYsIDB4MzAsIDB4MTYsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTB9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDMyLCAweDkwLCAweDdiLCAweDQyLCAweGUwLCAweGY1LCAweDMzLCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LAotICAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDkwLCAweDdmLAotICAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA1LCAweDI5LCAweGU1LCAweDI3LCAweDcwLCAweDQwLCAweDMwLCAweDBmLCAweDM5LCAweGU1LAotICAweDEyLCAweDcwLCAweDM1LCAweGMyLCAweDBmLCAweGY1LCAweDM1LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDA4LCAweDI1LCAweDM1fX0sCi0gezB4MDQ4NiwgNjQsIHsgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwYSwgMHg1MSwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgzNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgzNSwgMHhlNSwgMHgzNSwgMHhiNCwgMHgwOSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwKLSAgMHgwOSwgMHhmMCwgMHg3NSwgMHgxMiwgMHgxMCwgMHhlNCwgMHhmNSwgMHgxMCwgMHg3NSwgMHgyNywgMHgwMiwgMHgyMiwgMHhlNSwgMHgyNywgMHg2NCwgMHgwMiwKLSAgMHg3MCwgMHgzNiwgMHgzMCwgMHgwNSwgMHgyZiwgMHhjMiwgMHgwNSwgMHhmNSwgMHgzNSwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyYn19LAotIHsweDA0YzYsIDY0LCB7IDB4MjUsIDB4MzUsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGEsIDB4NTEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MzUsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MzUsIDB4ZTUsIDB4MzUsIDB4YjQsIDB4MDUsIDB4ZGIsIDB4OTAsIDB4N2YsCi0gIDB4YzMsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4NzUsIDB4MjcsIDB4MDMsIDB4MjIsIDB4ZTUsIDB4MzIsIDB4NjAsIDB4MzMsIDB4NzUsIDB4MzEsIDB4MDMsIDB4MTUsCi0gIDB4MzIsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MzEsIDB4MjUsIDB4MzUsIDB4ZjksIDB4ZWUsIDB4MzR9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDAwLCAweGZhLCAweDEyLCAweDBhLCAweDUxLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLAotICAweGVmLCAweGYwLCAweDA1LCAweDM1LCAweGU1LCAweDM1LCAweGI0LCAweDAzLCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LAotICAweGY1LCAweDI3LCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBhLCAweGE5LCAweDA2LCAweDA4LCAweDAwLCAweDA2LCAweDdjLCAweDAxLAotICAweDA2LCAweGU5LCAweDAzLCAweDA1LCAweDRkLCAweDA2LCAweDA1LCAweGY5LCAweDA4LCAweDA1LCAweGVkLCAweDA5LCAweDA1LCAweGQ1LCAweDBhfX0sCi0gezB4MDU0NiwgNjQsIHsgMHgwNSwgMHhlNCwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwNywgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwKLSAgMHg1MCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg2ZiwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwKLSAgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywKLSAgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHg3NCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMH19LAotIHsweDA1ODYsIDY0LCB7IDB4NzUsIDB4ODIsIDB4NTgsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4MTcsIDB4NzUsIDB4ODMsCi0gIDB4MTksIDB4ZjAsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsCi0gIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGIsIDB4MWMsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MGQsIDB4ZWEsIDB4OTAsIDB4N2YsCi0gIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDR9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLAotICAweDAwLCAweGU1LCAweDI1LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLAotICAweGUwLCAweGY1LCAweDI1LCAweDAyLCAweDA3LCAweDQwLCAweDEyLCAweDA3LCAweDQ4LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDIzLCAweDAyLAotICAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDIzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyfX0sCi0gezB4MDYwNiwgNjQsIHsgMHgwNywgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwKLSAgMHhhMiwgMHgwMSwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwNywgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwKLSAgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHg5MCwgMHg3Zn19LAotIHsweDA2NDYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsCi0gIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsCi0gIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCi0gIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWUsIDB4MjQsIDB4MDJ9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDYwLCAweDAzLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA2LCAweDEyLCAweDBkLCAweGY5LCAweDAyLCAweDA3LAotICAweDQwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLAotICAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LAotICAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwfX0sCi0gezB4MDZjNiwgNjQsIHsgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwKLSAgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg2MCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwKLSAgMHg4MCwgMHg1NywgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YiwgMHg5MCwgMHg3ZiwKLSAgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwZCwgMHhmNiwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NH19LAotIHsweDA3MDYsIDY0LCB7IDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsCi0gIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCi0gIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDJ9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweGYwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LAotICAweDIwLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGU0LCAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLAotICAweGYwLCAweGU0LCAweGY1LCAweDA4LCAweDdmLCAweDAxLCAweDdiLCAweDAwLCAweDc0LCAweDA4LCAweDJmLCAweGY5LCAweGU0LCAweDM0LCAweDAwfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhmYSwgMHhlNCwgMHgxMiwgMHgwYSwgMHg5NywgMHgwZiwgMHhiZiwgMHgwOSwgMHhlZSwgMHg3NSwgMHgxMywgMHgwMSwgMHhlNCwgMHhmNSwgMHgxMiwgMHhmNSwgMHgzMCwKLSAgMHhmNSwgMHgxMSwgMHhjMiwgMHgwZiwgMHhjMiwgMHgxMywgMHhjMiwgMHgwZSwgMHhjMiwgMHgwYiwgMHhjMiwgMHgxMCwgMHhjMiwgMHgwNCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg3NSwgMHgxOSwgMHgwMywgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwKLSAgMHhmZCwgMHgxMiwgMHgwYywgMHhkYSwgMHg3ZiwgMHgxMCwgMHg4ZiwgMHgxOCwgMHgxMiwgMHgwYywgMHg2OCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NH19LAotIHsweDA3YzYsIDY0LCB7IDB4MTIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4OGYsIDB4MTcsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MGYsIDB4ZTQsIDB4ZmQsIDB4MTIsCi0gIDB4MGMsIDB4ZGEsIDB4ZTQsIDB4ZmYsIDB4N2UsIDB4YTMsIDB4YWQsIDB4MDYsIDB4OGQsIDB4MTYsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4N2YsCi0gIDB4MDEsIDB4MTIsIDB4MGQsIDB4NmEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTZ9fSwKLSB7MHgwODA2LCA2NCwgeyAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweDEyLCAweDBlLCAweDBmLCAweDhmLCAweDE1LCAweGU0LCAweGZmLCAweGU1LCAweDE2LCAweDQ0LCAweDgwLAotICAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweGU1LCAweDE1LCAweDMwLCAweGU3LCAweDA0LCAweGMyLCAweDA4LCAweDgwLCAweDAyLCAweGQyLCAweDA4LCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDFhLCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweGQyLCAweDAzLAotICAweDIyLCAweGQyLCAweDE1LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDEyLCAweDBkLCAweGY5LCAweGQyLCAweGU4fX0sCi0gezB4MDg0NiwgNjQsIHsgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKLSAgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwKLSAgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHg3NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgxNiwgMHgxMiwgMHgwZCwKLSAgMHgyNCwgMHhjMiwgMHgwMiwgMHhlNCwgMHhmNSwgMHgyOCwgMHhmNSwgMHgzMCwgMHhjMiwgMHgwOSwgMHhmNSwgMHgyMywgMHhjMiwgMHgwMywgMHg5MH19LAotIHsweDA4ODYsIDY0LCB7IDB4N2YsIDB4YTEsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MzQsIDB4NjAsIDB4NDgsIDB4MzAsIDB4MDMsIDB4MDUsIDB4ZDIsIDB4MTYsCi0gIDB4MTIsIDB4MDAsIDB4NDYsIDB4ZTUsIDB4MGYsIDB4NjAsIDB4MjIsIDB4ZTUsIDB4MjYsIDB4NjAsIDB4MTYsIDB4MTUsIDB4MjYsIDB4OTAsIDB4N2YsIDB4ZDgsCi0gIDB4ZTAsIDB4MzAsIDB4ZTYsIDB4MDQsIDB4N2YsIDB4MjAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4ODAsCi0gIDB4MWEsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ODAsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDksIDB4ZTAsIDB4MzAsIDB4ZTJ9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDA0LCAweDdmLCAweDMwLCAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLCAweDk2LCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LAotICAweDM0LCAweDgwLCAweDIwLCAweDMwLCAweDAzLCAweDA3LCAweGMyLCAweDE2LCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDE2LCAweGU1LCAweDBmLCAweDcwLAotICAweDEyLCAweDkwLCAweDdmLCAweGQ5LCAweGUwLCAweDMwLCAweGUyLCAweDA0LCAweDdmLCAweDMwLCAweDgwLCAweDAyLCAweDdmLCAweDIwLCAweDkwLCAweDdmLAotICAweDk2LCAweGVmLCAweGYwLCAweDMwLCAweDAyLCAweDA3LCAweGMyLCAweDAyLCAweDEyLCAweDA1LCAweDJhLCAweDgwLCAweDg2LCAweDMwLCAweDBhfX0sCi0gezB4MDkwNiwgNjQsIHsgMHg4MywgMHhjMiwgMHgwYSwgMHgxMiwgMHgwYiwgMHg1ZCwgMHgwMiwgMHgwOCwgMHg4YSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwKLSAgMHgyNCwgMHhlNSwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNSwgMHgyOSwgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgyNCwgMHhlNSwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNSwgMHgyOSwgMHhmNSwgMHg4MywgMHhjMn19LAotIHsweDA5NDYsIDY0LCB7IDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsCi0gIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MjQsIDB4ZTUsIDB4MmEsIDB4ZjUsIDB4ODIsIDB4ZTUsCi0gIDB4MjksIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsCi0gIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWZ9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDI0LCAweGU1LCAweDJhLCAweGY1LCAweDgyLCAweGU1LCAweDI5LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLAotICAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LAotICAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLAotICAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweDc4fX0sCi0gezB4MDljNiwgNjQsIHsgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzOSwgMHgwMiwgMHgwYSwgMHgwYywgMHgwMiwgMHgwOCwgMHgzOCwgMHhlNCwgMHg5MywgMHhhMywKLSAgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwKLSAgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwKLSAgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMn19LAotIHsweDBhMDYsIDY0LCB7IDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MGQsIDB4OGIsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsCi0gIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsCi0gIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsCi0gIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODJ9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLAotICAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLAotICAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLAotICAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1fX0sCi0gezB4MGE4NiwgNjQsIHsgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwKLSAgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwKLSAgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwKLSAgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMn19LAotIHsweDBhYzYsIDY0LCB7IDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsCi0gIDB4NzQsIDB4MjAsIDB4ZjAsIDB4MzAsIDB4MDEsIDB4MDMsIDB4ZmYsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsCi0gIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsCi0gIDB4MzAsIDB4MDgsIDB4MTEsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDk4LCAweDc0LCAweDIwLCAweGYwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweGRmLCAweGYwLCAweGU0LAotICAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDIyLCAweDhmLCAweDM1LCAweGU0LCAweGY1LCAweDM2LCAweDc1LCAweDM3LCAweGZmLCAweDc1LCAweDM4LCAweDE5LAotICAweDc1LCAweDM5LCAweDg2LCAweGFiLCAweDM3LCAweGFhLCAweDM4LCAweGE5LCAweDM5LCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDBhLCAweDZhLCAweGI0LAotICAweDAzLCAweDFkLCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweGVmLCAweGI1LCAweDM1LCAweDAxLCAweDIyLCAweDEyLCAweDBhLCAweDUxLCAweDdlfX0sCi0gezB4MGI0NiwgNjQsIHsgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NSwgMHgzNywgMHhmZiwgMHhmNSwgMHgzOCwgMHg4OSwgMHgzOSwgMHg4MCwgMHhkNCwgMHg3YiwKLSAgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHhmNSwgMHgzNSwgMHgxMiwgMHgwYSwgMHhjZiwgMHgyMCwKLSAgMHgwOCwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwKLSAgMHgxMiwgMHgwOSwgMHhiNSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgwZSwgMHgzMCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwZH19LAotIHsweDBiODYsIDY0LCB7IDB4YmMsIDB4ODAsIDB4MDYsIDB4MTIsIDB4MGQsIDB4NDksIDB4ZWYsIDB4NjAsIDB4ZTEsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MTIsCi0gIDB4MDcsIDB4NDgsIDB4MjIsIDB4MDUsIDB4MmEsIDB4ZTUsIDB4MmEsIDB4YWUsIDB4MjksIDB4NzAsIDB4MDIsIDB4MDUsIDB4MjksIDB4MTQsIDB4ZjUsIDB4ODIsCi0gIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MmEsIDB4ZTUsIDB4MmEsIDB4YWMsIDB4MjksIDB4NzAsIDB4MDIsCi0gIDB4MDUsIDB4MjksIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MjQsIDB4ZTUsIDB4MjQsIDB4NjAsIDB4MDd9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDEyLCAweDBlLCAweDFiLCAweDhmLCAweDExLCAweDgwLCAweGNkLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLAotICAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDAyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLAotICAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLAotICAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDBhfX0sCi0gezB4MGMwNiwgNjQsIHsgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwKLSAgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NH19LAotIHsweDBjNDYsIDY0LCB7IDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTksIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCi0gIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTV9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwfX0sCi0gezB4MGNjNiwgNjQsIHsgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgwZCwgMHhlYSwgMHg4ZiwgMHgzNywgMHgxMiwgMHgwZH19LAotIHsweDBkMDYsIDY0LCB7IDB4ZWEsIDB4OGYsIDB4MzgsIDB4ZTUsIDB4MzcsIDB4NjUsIDB4MzgsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MGQsIDB4ZWEsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MzcsIDB4NjUsCi0gIDB4MzgsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MGQsIDB4ZWEsIDB4OGYsIDB4MzgsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MzcsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsCi0gIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MTYsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsCi0gIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MGQsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDR9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDA0LCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDM2LCAweDEyLCAweDA3LCAweDQ4LCAweDEyLCAweDBlLCAweDI3LCAweGVmLCAweDMwLAotICAweGU2LCAweDBiLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDM2LCAweDYwLCAweGYxLCAweDdmLCAweDAxLCAweDIyLCAweDEyLCAweDBhLCAweGNmLAotICAweDdmLCAweDAwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDE2LCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDE2LCAweDQ0LCAweDgwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgwYywgMHhkYSwgMHgyMiwgMHgwNSwgMHgyYiwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgzMSwgMHgwMywgMHgwMCwgMHgwMCwKLSAgMHhjMSwgMHg4NiwgMHhjMSwgMHgwMiwgMHhjMSwgMHgwYSwgMHhjMSwgMHgwMSwgMHhjMSwgMHgwNywgMHgwMSwgMHgyNywgMHgwMCwgMHgwMCwgMHg4ZSwgMHgzNiwKLSAgMHg4ZiwgMHgzNywgMHhlNSwgMHgzNywgMHgxNSwgMHgzNywgMHhhZSwgMHgzNiwgMHg3MCwgMHgwMiwgMHgxNSwgMHgzNiwgMHg0ZSwgMHg2MCwgMHgwNSwgMHgxMiwKLSAgMHgwOSwgMHhhNCwgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgwZCwgMHg3ZX19LAotIHsweDBkYzYsIDY0LCB7IDB4MDAsIDB4MTIsIDB4MGQsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsCi0gIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZDIsCi0gIDB4MDEsIDB4MjIsIDB4YzIsIDB4MDEsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGIsIDB4Y2UsIDB4MDAsIDB4MDIsIDB4MGV9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDAwLCAweDAzLCAweDAwLCAweDAyLCAweDBiLCAweGY1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBlODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBmNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTA4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDExODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEyNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTJjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTM4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTksIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwgMCwJezB4MDB9fQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5d19mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTl3X2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1ZDYxOTEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTl3X2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NDYgKzAsMCBAQAotLyoga2V5c3Bhbl91c2ExOXdfZncuaAotCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2ExOXdfZncuaCBpcwotCi0JCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCi0JCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKLQkJCi0JYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCi0JcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCi0JZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCi0JcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKLQlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLQotCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLQlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0JaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0KLQlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCi0JS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKLQlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAotCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMTl3X2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgwZCwgMHg1Y319LAotIHsweDAwMDMsIDE2LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjB9fSwKLSB7MHgwMDEzLCAxNiwgeyAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDkwfX0sCi0gezB4MDAyMywgMTUsIHsgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgxNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMn19LAotIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MGYsIDB4MTgsIDB4MTIsIDB4MGQsIDB4MzgsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4MTQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZDgsIDB4OTB9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBmLCAweGMyLCAweDBhLCAweDgwLCAweDc3LCAweDMwLCAweDBjLCAweDNiLCAweDkwLCAweDdmfX0sCi0gezB4MDA2NiwgMTYsIHsgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgwZCwgMHgzOCwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZX19LAotIHsweDAwNzYsIDE2LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGYsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MWMsIDB4MjAsIDB4MGEsIDB4MTEsIDB4NjB9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDBmLCAweGY1LCAweDIzLCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDI3LCAweDdlLCAweDc1LCAweDI4LCAweDQxLCAweDEyLCAweDA4LCAweDAxfX0sCi0gezB4MDA5NiwgMTYsIHsgMHhjMiwgMHgwYywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMn19LAotIHsweDAwYTYsIDE2LCB7IDB4MTIsIDB4MGQsIDB4MzgsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGZ9fSwKLSB7MHgwMGI2LCAxNiwgeyAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDFjLCAweDIwLCAweDBhLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDIzLCAweDdlLCAweDdkfX0sCi0gezB4MDBjNiwgMTYsIHsgMHg3ZiwgMHhjMSwgMHg3NSwgMHgyNywgMHg3ZCwgMHg3NSwgMHgyOCwgMHhjMSwgMHgxMiwgMHgwOCwgMHgwMSwgMHhkMiwgMHgwYywgMHhlNCwgMHg5MCwgMHg3Zn19LAotIHsweDAwZDYsIDE2LCB7IDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4NWUsIDB4MTIsIDB4MGMsIDB4NDEsIDB4OGZ9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDFjLCAweDEyLCAweDBkLCAweDQ0LCAweDhmLCAweDExLCAweGU1LCAweDFjLCAweGMzLCAweDk1LCAweDEzLCAweDUwLCAweDBmLCAweDEyLCAweDBkLCAweDIwfX0sCi0gezB4MDBmNiwgMTYsIHsgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgxMSwgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgxMiwgMHg1YywgMHhjMiwgMHgxMiwgMHhlNSwgMHgxY319LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDBlLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwOCwgMHhiNn19LAotIHsweDAxMDYsIDY0LCB7IDB4NjAsIDB4NTYsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MTEsIDB4MDIsIDB4ZTUsIDB4MTEsIDB4MzAsIDB4ZTcsIDB4MjQsIDB4ZTUsIDB4MWMsIDB4ZDMsIDB4OTQsCi0gIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MWMsIDB4MjAsIDB4ODUsIDB4MWMsIDB4MjMsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MjcsIDB4N2UsCi0gIDB4NzUsIDB4MjgsIDB4ODAsIDB4MTIsIDB4MGEsIDB4ODYsIDB4ZTUsIDB4MWMsIDB4MjUsIDB4MWMsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4ODAsIDB4MjcsCi0gIDB4ZTUsIDB4MWMsIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MWMsIDB4M2YsIDB4ODUsIDB4MWMsIDB4MjMsIDB4OTAsIDB4N2V9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDgwLCAweGU1LCAweDExLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDI3LCAweDdlLCAweDc1LCAweDI4LCAweDgxLCAweDEyLCAweDA4LCAweDI2LAotICAweGU1LCAweDFjLCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDBkLAotICAweDAzLCAweDAyLCAweDAzLCAweGJhLCAweGU0LCAweGY1LCAweDFiLCAweDc0LCAweDQwLCAweDI1LCAweDFiLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLAotICAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDFiLCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhLCAweDdlLCAweDc5LCAweDAwLCAweDI0fX0sCi0gezB4MDE4NiwgNjQsIHsgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwYSwgMHgwZCwgMHgwNSwgMHgxYiwgMHhlNSwgMHgxYiwgMHhiNCwgMHgyMCwgMHhkNywKLSAgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2ZSwgMHg3ZiwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgxMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgwYywgMHgxYywKLSAgMHg5MCwgMHg3ZSwgMHgwMSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYiwgMHg1ZSwgMHg5MCwgMHg3ZSwgMHgwMiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYiwgMHg4NCwKLSAgMHhkMiwgMHgxMCwgMHhkMiwgMHgxMSwgMHg3NSwgMHgxYywgMHgwNCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgwNSwgMHhjMiwgMHgxMX19LAotIHsweDAxYzYsIDY0LCB7IDB4NDMsIDB4MWMsIDB4YzAsIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDcsIDB4YzIsIDB4MTEsIDB4NDMsIDB4MWMsIDB4MGIsIDB4ODAsIDB4MTAsCi0gIDB4OTAsIDB4N2UsIDB4MDQsIDB4ZTAsIDB4NjAsIDB4MDcsIDB4YzIsIDB4MTAsIDB4NDMsIDB4MWMsIDB4MDksIDB4ODAsIDB4MDMsIDB4NDMsIDB4MWMsIDB4MDIsCi0gIDB4N2YsIDB4MDMsIDB4YWQsIDB4MWMsIDB4MTIsIDB4MGMsIDB4MWMsIDB4NDMsIDB4MTksIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDR9fSwKLSB7MHgwMjA2LCA2NCwgeyAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDE4LAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDE4LCAweGYwLCAweDkwLCAweDdlLCAweDA3LCAweGUwLAotICAweDYwLCAweDQyLCAweDkwLCAweDdlLCAweDEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDE1LCAweDA0LCAweDgwLCAweDAzLCAweDUzLCAweDE1LCAweGZiLAotICAweGU0LCAweGZmLCAweGFkLCAweDE1LCAweDEyLCAweDBjLCAweDFjLCAweDkwLCAweDdlLCAweDA4LCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDE3fX0sCi0gezB4MDI0NiwgNjQsIHsgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHgxNywgMHg3ZiwgMHg1MywgMHgxNywgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHgxNywKLSAgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYiwgMHhkMCwgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYiwgMHhmNiwgMHhhZiwKLSAgMHgxNywgMHgxMiwgMHgwYiwgMHhhYSwgMHg5MCwgMHg3ZSwgMHgwZSwgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxOSwKLSAgMHgwMSwgMHg4MCwgMHgwMywgMHg1MywgMHgxOSwgMHhmZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMH19LAotIHsweDAyODYsIDY0LCB7IDB4ZTUsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MTksIDB4MDIsIDB4ODAsCi0gIDB4MDMsIDB4NTMsIDB4MTksIDB4ZmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MTksIDB4ZjAsCi0gIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4MTMsIDB4YTMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MTQsIDB4YTMsCi0gIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MTksIDB4MTAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MTksIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzR9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDE5LCAweGYwLCAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDE4LCAweGJmLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDBkLCAweDE0LCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDE1LAotICAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDE1LCAweDEyLCAweDBjLCAweDFjLCAweGU0LCAweGY1LCAweDBlLCAweGY1LCAweDBkLCAweGQyLCAweDBlfX0sCi0gezB4MDMwNiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgxNSwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgxNSwgMHgxMiwgMHgwYywgMHgxYywgMHg3NSwKLSAgMHgwZCwgMHgwMSwgMHhkMiwgMHgwZSwgMHg5MCwgMHg3ZSwgMHgxOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwKLSAgMHhlNSwgMHgxNiwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhkMiwgMHgwYSwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwKLSAgMHg0MywgMHgxOCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMH19LAotIHsweDAzNDYsIDY0LCB7IDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4MTUsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTUsIDB4MTIsIDB4MGMsCi0gIDB4MWMsIDB4NzUsIDB4MGYsIDB4MDEsIDB4ZDIsIDB4MGUsIDB4OTAsIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4MTUsIDB4MDEsIDB4ZTQsCi0gIDB4ZmYsIDB4YWQsIDB4MTUsIDB4MTIsIDB4MGMsIDB4MWMsIDB4ZTQsIDB4ZjUsIDB4MGYsIDB4ZDIsIDB4MGUsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsCi0gIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjB9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDEyLCAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDEwLCAweDAxLAotICAweGU0LCAweGY1LCAweDEyLCAweGQyLCAweDBlLCAweDkwLCAweDdlLCAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLAotICAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LCAweGYwLCAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDBjLCAweGMyLCAweDBkLCAweGU0LCAweDkwLAotICAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDE1LCAweDcxLCAweGU1LCAweDEyLCAweDYwLCAweDAyLCAweDE1LCAweDEyLCAweGU1LCAweDJlLCAweGQzfX0sCi0gezB4MDNjNiwgNjQsIHsgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgyZSwgMHg4MCwgMHg2MCwgMHg3NSwgMHgyZSwgMHgwYSwgMHgxMiwgMHgwZCwgMHgxNCwgMHhlZiwgMHg1NCwgMHgwMSwKLSAgMHhmNSwgMHgxYywgMHg2NSwgMHgwZSwgMHg2MCwgMHgwNywgMHg4NSwgMHgxYywgMHgwZSwgMHhkMiwgMHgwZSwgMHg4MCwgMHgxMSwgMHgxMiwgMHgwZCwgMHg1MCwKLSAgMHhlZiwgMHg1NCwgMHgxMCwgMHhmNSwgMHgxYywgMHg2NSwgMHgwOSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxYywgMHgwOSwgMHhkMiwgMHgwZSwgMHgxMiwgMHgwZCwKLSAgMHg1MCwgMHhlZiwgMHg1NCwgMHg4MCwgMHhmNSwgMHgxYywgMHg2NSwgMHgwYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxYywgMHgwYSwgMHhkMiwgMHgwZX19LAotIHsweDA0MDYsIDY0LCB7IDB4MTIsIDB4MGQsIDB4NTAsIDB4ZWYsIDB4NTQsIDB4MjAsIDB4ZjUsIDB4MWMsIDB4NjUsIDB4MGIsIDB4NjAsIDB4MDgsIDB4ODUsIDB4MWMsIDB4MGIsIDB4MzAsIDB4MTAsCi0gIDB4MDIsIDB4ZDIsIDB4MGUsIDB4MTIsIDB4MGQsIDB4NTAsIDB4ZWYsIDB4NTQsIDB4NDAsIDB4ZjUsIDB4MWMsIDB4NjUsIDB4MGMsIDB4NjAsIDB4MDgsIDB4ODUsCi0gIDB4MWMsIDB4MGMsIDB4MzAsIDB4MTEsIDB4MDIsIDB4ZDIsIDB4MGUsIDB4MzAsIDB4MTUsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsCi0gIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MzAsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjV9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDMxLCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LAotICAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA1LCAweDFmLCAweGU1LCAweDI1LAotICAweDcwLCAweDQwLCAweDMwLCAweDBlLCAweDM5LCAweGU1LCAweDEyLCAweDcwLCAweDM1LCAweGMyLCAweDBlLCAweGY1LCAweDFiLCAweDdlLCAweDAwLCAweDdiLAotICAweDAwLCAweDc0LCAweDA4LCAweDI1LCAweDFiLCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDA5LCAweGM3LCAweGZmLCAweDc0fX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg4MCwgMHgyNSwgMHgxYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxYiwgMHhlNSwgMHgxYiwgMHhiNCwKLSAgMHgwOSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgxMiwgMHgxMCwgMHhlNCwgMHhmNSwgMHgxMCwgMHg3NSwgMHgyNSwKLSAgMHgwMiwgMHgyMiwgMHhlNSwgMHgyNSwgMHg2NCwgMHgwMiwgMHg3MCwgMHgzNiwgMHgzMCwgMHgwNSwgMHgyZiwgMHhjMiwgMHgwNSwgMHhmNSwgMHgxYiwgMHg3ZSwKLSAgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyOSwgMHgyNSwgMHgxYiwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwOSwgMHhjN319LAotIHsweDA0YzYsIDY0LCB7IDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MWIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MWIsIDB4ZTUsCi0gIDB4MWIsIDB4YjQsIDB4MDUsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4NzUsIDB4MjUsIDB4MDMsIDB4MjIsIDB4ZTUsIDB4MzAsCi0gIDB4NjAsIDB4MzMsIDB4NzUsIDB4MmYsIDB4MDMsIDB4MTUsIDB4MzAsIDB4ZTQsIDB4ZjUsIDB4MWIsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmYsCi0gIDB4MjUsIDB4MWIsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MDksIDB4YzcsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MWJ9fSwKLSB7MHgwNTA2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDFiLCAweGU1LCAweDFiLCAweGI0LCAweDAzLCAweGRiLCAweDkwLAotICAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LCAweGY1LCAweDI1LCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBhLCAweDFmLAotICAweDA1LCAweGY2LCAweDAwLCAweDA2LCAweDZhLCAweDAxLCAweDA2LCAweGQ3LCAweDAzLCAweDA1LCAweDQzLCAweDA2LCAweDA1LCAweGU5LCAweDA4LCAweDA1LAotICAweGUzLCAweDA5LCAweDA1LCAweGNiLCAweDBhLCAweDA1LCAweGRhLCAweDBiLCAweDAwLCAweDAwLCAweDA3LCAweDI3LCAweDkwLCAweDdmLCAweGVifX0sCi0gezB4MDU0NiwgNjQsIHsgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwgMHg1MCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg2ZiwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwKLSAgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwKLSAgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwKLSAgMHg3NCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYX19LAotIHsweDA1ODYsIDY0LCB7IDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4MTcsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MTIsCi0gIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGEsIDB4NDUsIDB4ZWEsCi0gIDB4NDksIDB4NjAsIDB4MGQsIDB4ZWEsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDR9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDI0LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLAotICAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDI0LCAweDAyLCAweDA3LCAweDJlLCAweDEyLCAweDA3LCAweDM2LCAweDAyLAotICAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLAotICAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLCAweGEyfX0sCi0gezB4MDYwNiwgNjQsIHsgMHgwMSwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwNywgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwKLSAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwKLSAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwKLSAgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNH19LAotIHsweDA2NDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCi0gIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWUsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsCi0gIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDYsIDB4MTIsIDB4MGQsIDB4NjMsIDB4MDIsIDB4MDcsIDB4MmV9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LCAweDkwLAotICAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LAotICAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLAotICAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmfX0sCi0gezB4MDZjNiwgNjQsIHsgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg2MCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg1NywKLSAgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwKLSAgMHhiNCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwZCwgMHg2MCwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwKLSAgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZn19LAotIHsweDA3MDYsIDY0LCB7IDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsCi0gIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjB9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE4LAotICAweGYwLCAweGU0LCAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLCAweGYwLCAweGU0LCAweGY1LAotICAweDA4LCAweDdmLCAweDAxLCAweDdiLCAweDAwLCAweDc0LCAweDA4LCAweDJmLCAweGY5LCAweGU0LCAweDM0LCAweDAwLCAweGZhLCAweGU0LCAweDEyLCAweDBhLAotICAweDBkLCAweDBmLCAweGJmLCAweDA5LCAweGVlLCAweDc1LCAweDEzLCAweDAxLCAweGU0LCAweGY1LCAweDEyLCAweGY1LCAweDJlLCAweGY1LCAweDExfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhjMiwgMHgwZSwgMHhjMiwgMHgxMiwgMHhjMiwgMHgwZCwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwZiwgMHhjMiwgMHgwNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywKLSAgMHhmMCwgMHg3NSwgMHgxOCwgMHgwMywgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwgMHhmZCwgMHgxMiwgMHgwYywKLSAgMHgxYywgMHg3ZiwgMHgxMCwgMHg4ZiwgMHgxNywgMHgxMiwgMHgwYiwgMHhhYSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwKLSAgMHg4ZiwgMHgxNiwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgwYywgMHgxY319LAotIHsweDA3YzYsIDY0LCB7IDB4ZTQsIDB4ZmYsIDB4N2UsIDB4YTMsIDB4YWQsIDB4MDYsIDB4OGQsIDB4MTUsIDB4MTIsIDB4MGMsIDB4MWMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MGMsIDB4MWMsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MGMsCi0gIDB4YWMsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MGMsIDB4MWMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzUsIDB4MTksCi0gIDB4ODAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTB9fSwKLSB7MHgwODA2LCA2NCwgeyAweGYwLCAweGFmLCAweDIzLCAweGU1LCAweDI4LCAweGY1LCAweDgyLCAweGU1LCAweDI3LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLAotICAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLCAweGFmLCAweDIyLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGFmLCAweDIzLCAweGU1LCAweDI4LCAweGY1LCAweDgyLCAweGU1LCAweDI3LCAweGY1LCAweDgzLCAweGMyLAotICAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3fX0sCi0gezB4MDg0NiwgNjQsIHsgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhZiwgMHgyMywgMHhlNSwgMHgyOCwgMHhmNSwgMHg4MiwKLSAgMHhlNSwgMHgyNywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwKLSAgMHg4NiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhZiwKLSAgMHgyMywgMHhlNSwgMHgyOCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgyNywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMH19LAotIHsweDA4ODYsIDY0LCB7IDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4NzQsIDB4MDAsCi0gIDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsCi0gIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsIDB4NzgsCi0gIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4MzEsIDB4MDIsIDB4MDgsIDB4ZmQsIDB4MDIsIDB4MDksIDB4NDIsIDB4ZTR9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LAotICAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLAotICAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLAotICAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDBjLCAweGNkLCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwKLSAgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwKLSAgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwKLSAgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZSwgMHhkMiwgMHgxNCwgMHg5MCwgMHg3Zn19LAotIHsweDA5NDYsIDY0LCB7IDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MTIsIDB4MGQsIDB4NjMsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsCi0gIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4YWUsIDB4NzQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4MTUsIDB4MTIsIDB4MGMsIDB4NjYsIDB4YzIsIDB4MDIsIDB4ZTQsIDB4ZjV9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDI2LCAweGY1LCAweDJlLCAweGMyLCAweDA4LCAweGMyLCAweDAzLCAweDkwLCAweDdmLCAweGExLCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LAotICAweDFhLCAweDYwLCAweDEwLCAweDMwLCAweDAzLCAweDA1LCAweGQyLCAweDE1LCAweDEyLCAweDAwLCAweDQ2LCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LAotICAweDFhLCAweDgwLCAweDA4LCAweDMwLCAweDAzLCAweDA1LCAweGMyLCAweDE1LCAweDEyLCAweDAwLCAweDQ2LCAweDMwLCAweDAyLCAweDA3LCAweGMyLCAweDAyLAotICAweDEyLCAweDA1LCAweDIwLCAweDgwLCAweGQ2LCAweDMwLCAweDA5LCAweGQzLCAweGMyLCAweDA5LCAweDEyLCAweDBhLCAweGJhLCAweDgwLCAweGNjfX0sCi0gezB4MDljNiwgNjQsIHsgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwKLSAgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwKLSAgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwKLSAgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNX19LAotIHsweDBhMDYsIDY0LCB7IDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZjAsIDB4MjIsIDB4NTAsCi0gIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsCi0gIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsCi0gIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OGZ9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweDFiLCAweGU0LCAweGY1LCAweDFjLCAweDc1LCAweDFkLCAweGZmLCAweDc1LCAweDFlLCAweDE5LCAweDc1LCAweDFmLCAweDg2LCAweGFiLCAweDFkLCAweGFhLCAweDFlLAotICAweGE5LCAweDFmLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDA5LCAweGUwLCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDFjLCAweDA1LCAweDFjLCAweGVmLAotICAweGI1LCAweDFiLCAweDAxLCAweDIyLCAweDEyLCAweDA5LCAweGM3LCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LAotICAweDFkLCAweGZmLCAweGY1LCAweDFlLCAweDg5LCAweDFmLCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyfX0sCi0gezB4MGE4NiwgNjQsIHsgMHgwNSwgMHgyOCwgMHhlNSwgMHgyOCwgMHhhZSwgMHgyNywgMHg3MCwgMHgwMiwgMHgwNSwgMHgyNywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxMSwKLSAgMHhmMCwgMHgxMiwgMHgwMCwgMHgzNiwgMHgwNSwgMHgyOCwgMHhlNSwgMHgyOCwgMHhhYywgMHgyNywgMHg3MCwgMHgwMiwgMHgwNSwgMHgyNywgMHgxNCwgMHhmNSwKLSAgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgyMywgMHhlNSwgMHgyMywgMHg2MCwgMHgwNywgMHgxMiwgMHgwZCwgMHg0NCwgMHg4ZiwgMHgxMSwKLSAgMHg4MCwgMHhjZCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHhmNSwgMHgxYiwgMHgxMiwgMHgwMCwgMHgwMywgMHg5MCwgMHg3ZiwgMHhkNn19LAotIHsweDBhYzYsIDY0LCB7IDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4MTIsIDB4MDgsIDB4YTYsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MGUsIDB4MzAsIDB4MDEsIDB4MDUsCi0gIDB4MTIsIDB4MGMsIDB4ZmUsIDB4ODAsIDB4MDYsIDB4MTIsIDB4MGMsIDB4OGIsIDB4ZWYsIDB4NjAsIDB4ZTEsIDB4MTIsIDB4MDcsIDB4MzYsIDB4MjIsIDB4YzAsCi0gIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsCi0gIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDB9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLAotICAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDAyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLAotICAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLAotICAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwfX0sCi0gezB4MGI0NiwgNjQsIHsgMHhkMiwgMHgwOSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwKLSAgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3Zn19LAotIHsweDBiODYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTN9fSwKLSB7MHgwYmM2LCA2NCwgeyAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0fX0sCi0gezB4MGMwNiwgNjQsIHsgMHgxNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgwZCwgMHgyYywgMHg4ZiwgMHgxZH19LAotIHsweDBjNDYsIDY0LCB7IDB4MTIsIDB4MGQsIDB4MmMsIDB4OGYsIDB4MWUsIDB4ZTUsIDB4MWQsIDB4NjUsIDB4MWUsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MGQsIDB4MmMsIDB4OGYsIDB4MWQsIDB4ZTUsCi0gIDB4MWQsIDB4NjUsIDB4MWUsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MGQsIDB4MmMsIDB4OGYsIDB4MWUsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWQsIDB4MjIsIDB4OTAsCi0gIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MTUsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsCi0gIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MGMsIDB4ZTcsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjB9fSwKLSB7MHgwYzg2LCA2NCwgeyAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDFjLCAweDEyLCAweDA3LCAweDM2LCAweDEyLCAweDBkLCAweDUwLAotICAweGVmLCAweDMwLCAweGU2LCAweDBiLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDFjLCAweDYwLCAweGYxLCAweDdmLCAweDAxLCAweDIyLCAweDEyLAotICAweDAwLCAweDAzLCAweDdmLCAweDAwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDE1LCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDBjLAotICAweDFjLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDE1fX0sCi0gezB4MGNjNiwgNjQsIHsgMHg0NCwgMHg4MCwgMHhmZCwgMHgxMiwgMHgwYywgMHgxYywgMHgyMiwgMHgwNSwgMHgyOSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgyZiwgMHgwMywKLSAgMHgwMCwgMHgwMCwgMHhjMSwgMHg4NiwgMHhjMSwgMHgwMiwgMHhjMSwgMHgwOSwgMHhjMSwgMHgwMSwgMHhjMSwgMHgwNywgMHgwMSwgMHgyNSwgMHgwMCwgMHgwMCwKLSAgMHg4ZSwgMHgxYywgMHg4ZiwgMHgxZCwgMHhlNSwgMHgxZCwgMHgxNSwgMHgxZCwgMHhhZSwgMHgxYywgMHg3MCwgMHgwMiwgMHgxNSwgMHgxYywgMHg0ZSwgMHg2MCwKLSAgMHgwNSwgMHgxMiwgMHgwOCwgMHg5NSwgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3Zn19LAotIHsweDBkMDYsIDY0LCB7IDB4MGQsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGMsIDB4ZTcsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsCi0gIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDUzLCAweGQ4LCAweGVmLCAweDMyLCAweGQyLCAweDAxLCAweDIyLCAweGMyLCAweDAxLCAweDIyLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBkYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGIsIDB4MTAsIDB4MDAsIDB4MDIsIDB4MGV9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDBhLCAweGU2LCAweDAwLCAweDAyLCAweDBiLCAweDM3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBlODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBmNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTA4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDExODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEyNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTJjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTM4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MDgsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwJMCwJezB4MDB9IH0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOF9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjhfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQ4YjBhMi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOF9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDY2ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhMjhfZncuaAotCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2EyOF9mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTI4X2Zpcm13YXJlW10gPSB7Ci0gezB4MDAyNiwgMTAsIHsgMHgxMiwgMHgxNywgMHhkYiwgMHgxMiwgMHgxOCwgMHhiNSwgMHgxMiwgMHgxNCwgMHhjMywgMHgyMn19LAotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MDAsIDB4MWR9fSwKLSB7MHgwMDFkLCAgNCwgeyAweDUzLCAweGQ4LCAweGVmLCAweDMyfX0sCi0gezB4MDAwNiwgMTYsIHsgMHg4ZSwgMHgxMiwgMHg4ZiwgMHgxMywgMHhlNSwgMHgxMywgMHgxNSwgMHgxMywgMHhhZSwgMHgxMiwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxMiwgMHg0ZSwgMHg2MH19LAotIHsweDAwMTYsICA3LCB7IDB4MDUsIDB4MTIsIDB4MTgsIDB4YTQsIDB4ODAsIDB4ZWUsIDB4MjJ9fSwKLSB7MHgwMDAzLCAgMywgeyAweDAyLCAweDAwLCAweDQ2fX0sCi0gezB4MDA0NiwgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwOH19LAotIHsweDAwNTYsIDE2LCB7IDB4MzAsIDB4OTksIDB4MGUsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YTIsIDB4MTcsIDB4OTIsIDB4OWIsIDB4ODUsIDB4NDYsIDB4OTksIDB4YzIsIDB4OTksIDB4ZDJ9fSwKLSB7MHgwMDY2LCAxNiwgeyAweDFmLCAweDMwLCAweGMxLCAweDBlLCAweDMwLCAweDEyLCAweDA3LCAweGEyLCAweDE4LCAweDkyLCAweGMzLCAweDg1LCAweDQ3LCAweGMxLCAweGMyLCAweGMxfX0sCi0gezB4MDA3NiwgMTYsIHsgMHhkMiwgMHgyMCwgMHgyMCwgMHgxZiwgMHgwMywgMHgwMiwgMHgwNCwgMHg0MiwgMHhjMiwgMHgxZiwgMHgyMCwgMHgwMywgMHgwMywgMHgwMiwgMHgwMiwgMHg2N319LAotIHsweDAwODYsIDE2LCB7IDB4MjAsIDB4MTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MzgsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NTAsIDB4M2UsIDB4MjAsIDB4MTMsIDB4MzZ9fSwKLSB7MHgwMDk2LCAxNiwgeyAweDIwLCAweDBiLCAweDMzLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDI5LCAweDMwLCAweDFiLCAweDEyfX0sCi0gezB4MDBhNiwgMTYsIHsgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxM319LAotIHsweDAwYjYsIDE2LCB7IDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwMGM2LCAxNiwgeyAweGUwLCAweGY1LCAweDQ2LCAweDAyLCAweDA0LCAweDQwLCAweGMyLCAweDExLCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwfX0sCi0gezB4MDBkNiwgMTYsIHsgMHhjMiwgMHgwMywgMHgzMCwgMHgxNSwgMHgwYywgMHhjMiwgMHgxNSwgMHg5MCwgMHg3ZiwgMHhiZiwgMHgwNCwgMHhmMCwgMHhjMiwgMHgxMSwgMHgwMiwgMHgwNH19LAotIHsweDAwZTYsIDE2LCB7IDB4NDAsIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4Yzl9fSwKLSB7MHgwMGY2LCAxNiwgeyAweGUwLCAweGY1LCAweDdjLCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDIwLCAweDEzLCAweDJkLCAweDIwLCAweDBiLCAweDJhfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxYiwgMHgwMH19LAotIHsweDAwMjMsICAzLCB7IDB4MDIsIDB4MDAsIDB4NDZ9fSwKLSB7MHgwMDNiLCAgMywgeyAweDAyLCAweDAwLCAweDQ2fX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgxNiwgMHgzZH19LAotIHsweDAxMDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4MjAsIDB4MzAsIDB4MWIsIDB4MTEsIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsCi0gIDB4MTMsIDB4OTIsIDB4MTcsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4NzUsIDB4NGEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDIsCi0gIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4MDIsIDB4MDQsIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDEsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsCi0gIDB4NDAsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTB9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDIxLCAweGMyLCAweDA1LCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDdjLCAweDkwLAotICAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDAxLCAweGQ4LCAweDIwLCAweDBiLCAweDcyLCAweDIwLAotICAweDAwLCAweDZmLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDY1LCAweDMwLCAweDFiLCAweDEwLCAweDkwLAotICAweDdlLCAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGEzLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDRhLCAweDAzLCAweDgwLCAweDA5fX0sCi0gezB4MDE4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHg0YSwgMHgwMiwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg0MCwgMHgxNywgMHg5MCwKLSAgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMiwgMHgwMywgMHgyMCwgMHgxNSwgMHgwMywgMHgwMiwgMHgwNCwgMHg0MCwgMHhjMiwgMHgxNSwgMHg5MCwgMHg3ZiwKLSAgMHhiZiwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHg0MCwgMHgzMCwgMHgxYiwgMHgxMiwgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNywgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YX19LAotIHsweDAxYzYsIDY0LCB7IDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4ZDIsIDB4MTEsIDB4MDIsIDB4MDQsCi0gIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDEsIDB4YzIsIDB4MjEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4MzAsIDB4MTMsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NjIsIDB4MjAsCi0gIDB4MGIsIDB4NzksIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4NmYsIDB4MzAsIDB4MWIsIDB4MTIsIDB4YWUsCi0gIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTN9fSwKLSB7MHgwMjA2LCA2NCwgeyAweDkyLCAweDliLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLAotICAweGY1LCAweDk5LCAweGU1LCAweDRhLCAweGMzLCAweDk1LCAweDdjLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAzLAotICAweDIwLCAweDE1LCAweDAzLCAweDAyLCAweDA0LCAweDQwLCAweGMyLCAweDE1LCAweDkwLCAweDdmLCAweGJmLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDQwLAotICAweDMwLCAweDFiLCAweDEyLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlfX0sCi0gezB4MDI0NiwgNjQsIHsgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNywgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NiwgMHhkMiwgMHgxMSwgMHgwMiwgMHgwNCwgMHg0MCwgMHhjMiwgMHgyMSwgMHgwMiwgMHgwNCwgMHg0MCwKLSAgMHgyMCwgMHgxMSwgMHgwMywgMHgwMiwgMHgwMywgMHgxOSwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgzZSwgMHgyMCwgMHgxMywgMHgzNiwKLSAgMHgyMCwgMHgwYiwgMHgzMywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgyMCwgMHhlMywgMHgwMywgMHgyMCwgMHgxYywgMHgyOSwgMHgzMCwgMHgxYn19LAotIHsweDAyODYsIDY0LCB7IDB4MTIsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4MDIsIDB4MDQsIDB4NDAsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsCi0gIDB4ZDIsIDB4MDMsIDB4MzAsIDB4MTUsIDB4MGMsIDB4YzIsIDB4MTUsIDB4OTAsIDB4N2YsIDB4YmYsIDB4MDQsIDB4ZjAsIDB4YzIsIDB4MTEsIDB4MDJ9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDMwLCAweGUxLCAweDA1LCAweGMyLCAweDExLCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM3LAotICAweGUwLCAweGY1LCAweDdjLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDIwLCAweDEzLCAweDJkLCAweDIwLCAweDBiLCAweDJhLAotICAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDIwLCAweDMwLCAweDFiLCAweDExLCAweDkwLCAweDdlLCAweDQxLAotICAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGEzLCAweGUwLCAweGY1LCAweDQ2LCAweDc1LCAweDRhLCAweDAzLCAweDAyLCAweDA0LCAweDQwLCAweDc1fX0sCi0gezB4MDMwNiwgNjQsIHsgMHg0YSwgMHgwMiwgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHhmNSwgMHg0NiwgMHgwMiwgMHgwNCwgMHg0MCwgMHg3NSwgMHg0YSwgMHgwMSwgMHhjMiwgMHgxMSwgMHgwMiwKLSAgMHgwNCwgMHg0MCwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwKLSAgMHgzMCwgMHhlMSwgMHgwNywgMHhjMiwgMHgyMSwgMHhjMiwgMHgwNSwgMHgwMiwgMHgwNCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg3YywKLSAgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxNSwgMHgzMCwgMHgxMywgMHgwMywgMHgwMiwgMHgwMywgMHhiOSwgMHgyMCwgMHgwYn19LAotIHsweDAzNDYsIDY0LCB7IDB4NzIsIDB4MjAsIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4NjUsIDB4MzAsIDB4MWIsIDB4MTAsCi0gIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4NGEsIDB4MDMsIDB4ODAsIDB4MDksCi0gIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4NGEsIDB4MDIsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NDAsIDB4MTcsCi0gIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MjAsIDB4MTUsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4YzIsIDB4MTV9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDkwLCAweDdmLCAweGJmLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDQwLCAweDMwLCAweDFiLCAweDEyLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweGMwLAotICAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGFlLCAweDRhLCAweDA1LCAweDRhLAotICAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ2LCAweGQyLCAweDExLCAweDAyLAotICAweDA0LCAweDQwLCAweDc1LCAweDRhLCAweDAxLCAweGMyLCAweDIxLCAweDAyLCAweDA0LCAweDQwLCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDA0fX0sCi0gezB4MDNjNiwgNjQsIHsgMHgzZSwgMHgyMCwgMHgwYiwgMHg3NCwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgyMCwgMHhlMywgMHgwMywgMHgyMCwgMHgxYywgMHg2YSwgMHgzMCwgMHgxYiwgMHgxMiwKLSAgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywKLSAgMHg5MiwgMHg5YiwgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHhmNSwgMHg5OSwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg0MCwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMH19LAotIHsweDA0MDYsIDY0LCB7IDB4ZDIsIDB4MDMsIDB4MzAsIDB4MTUsIDB4MzUsIDB4YzIsIDB4MTUsIDB4OTAsIDB4N2YsIDB4YmYsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MmMsIDB4MzAsIDB4MWIsIDB4MTIsCi0gIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4ZDIsIDB4MTEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4MjEsIDB4ZDIsIDB4MjUsIDB4MjAsIDB4MjAsIDB4MDMsIDB4MDJ9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDA4LCAweDBjLCAweGMyLCAweDIwLCAweDIwLCAweDA0LCAweDAzLCAweDAyLCAweDA2LCAweDMxLCAweDIwLCAweDEyLCAweDAzLCAweDAyLCAweDA1LCAweDAyLCAweGU1LAotICAweDRiLCAweGMzLCAweDk1LCAweDdkLCAweDUwLCAweDNlLCAweDIwLCAweDE0LCAweDM2LCAweDIwLCAweDBkLCAweDMzLCAweDkwLCAweDdmLCAweDlhLCAweGUwLAotICAweDIwLCAweGU1LCAweDAzLCAweDIwLCAweDFlLCAweDI5LCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweDQwLCAweDJlLAotICAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFlLCAweDRiLCAweDA1LCAweDRifX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywgMHgwMiwgMHgwOCwgMHgwYSwgMHhjMiwKLSAgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlNCwgMHhmMCwgMHhjMiwgMHgwNCwgMHgzMCwgMHgxNiwgMHgwYywgMHhjMiwgMHgxNiwKLSAgMHg5MCwgMHg3ZiwgMHhjMSwgMHgwNCwgMHhmMCwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHgzMCwgMHhlMSwKLSAgMHgwNSwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmNSwgMHg3ZCwgMHg5MCwgMHg3YywgMHhjMH19LAotIHsweDA0YzYsIDY0LCB7IDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTYsIDB4MjAsIDB4MTQsIDB4MmQsIDB4MjAsIDB4MGQsIDB4MmEsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsCi0gIDB4MjAsIDB4MWUsIDB4MjAsIDB4MzAsIDB4MWQsIDB4MTEsIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4ZjUsCi0gIDB4NDcsIDB4NzUsIDB4NGIsIDB4MDMsIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDIsIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4NDcsCi0gIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDEsIDB4YzIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4ZTUsIDB4NGIsIDB4YzMsIDB4OTV9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDdkLCAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweGFhLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDIyLCAweGMyLCAweDA2LAotICAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweGY1LCAweDdkLCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE2LAotICAweDMwLCAweDE0LCAweDAzLCAweDAyLCAweDA1LCAweGEyLCAweDIwLCAweDBkLCAweDcyLCAweDIwLCAweDAwLCAweDZmLCAweDkwLCAweDdmLCAweDlhLCAweGUwLAotICAweDIwLCAweGU1LCAweDAzLCAweDIwLCAweDFlLCAweDY1LCAweDMwLCAweDFkLCAweDEwLCAweDkwLCAweDdkLCAweDQxLCAweGUwLCAweDEzLCAweDkyfX0sCi0gezB4MDU0NiwgNjQsIHsgMHhjMywgMHhhMywgMHhlMCwgMHhmNSwgMHhjMSwgMHg3NSwgMHg0YiwgMHgwMywgMHg4MCwgMHgwOSwgMHg5MCwgMHg3ZCwgMHg0MSwgMHhlMCwgMHhmNSwgMHhjMSwgMHg3NSwKLSAgMHg0YiwgMHgwMiwgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg0MCwgMHgxNywgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlNCwgMHhmMCwgMHhjMiwgMHgwNCwKLSAgMHgyMCwgMHgxNiwgMHgwMywgMHgwMiwgMHgwOCwgMHgwYSwgMHhjMiwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhjMSwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwOCwgMHgwYSwKLSAgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZH19LAotIHsweDA1ODYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsCi0gIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDEsIDB4YzIsIDB4MjIsCi0gIDB4MDIsIDB4MDgsIDB4MGEsIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDYsIDB4MmMsIDB4MjAsIDB4MGQsIDB4NzksIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsCi0gIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4NmYsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4NDB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweGMzLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LAotICAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGMxLCAweGU1LCAweDRiLCAweGMzLCAweDk1LAotICAweDdkLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGNiLCAweGU0LCAweGYwLCAweGMyLCAweDA0LCAweDIwLCAweDE2LCAweDAzLCAweDAyLCAweDA4LCAweDBhLAotICAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweDAyLCAweDA4LCAweDBhLCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRifX0sCi0gezB4MDYwNiwgNjQsIHsgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhZSwKLSAgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywKLSAgMHhkMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHhjMiwgMHgyMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHgyMCwgMHgxMiwgMHgwMywgMHgwMiwgMHgwNiwgMHhlMywKLSAgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg1MCwgMHgzZSwgMHgyMCwgMHgxNCwgMHgzNiwgMHgyMCwgMHgwZCwgMHgzMywgMHg5MCwgMHg3Zn19LAotIHsweDA2NDYsIDY0LCB7IDB4OWEsIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4MjksIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsCi0gIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsCi0gIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4MDIsIDB4MDgsIDB4MGEsCi0gIDB4YzIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4MTYsIDB4MGN9fSwKLSB7MHgwNjg2LCA2NCwgeyAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweGMyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDMwLAotICAweGUxLCAweDA1LCAweGMyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweGY1LCAweDdkLCAweDkwLCAweDdkLCAweDQwLAotICAweGUwLCAweDEzLCAweDkyLCAweDE2LCAweDIwLCAweDE0LCAweDJkLCAweDIwLCAweDBkLCAweDJhLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDIwLCAweGU1LAotICAweDAzLCAweDIwLCAweDFlLCAweDIwLCAweDMwLCAweDFkLCAweDExLCAweDkwLCAweDdkLCAweDQxLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGEzfX0sCi0gezB4MDZjNiwgNjQsIHsgMHhlMCwgMHhmNSwgMHg0NywgMHg3NSwgMHg0YiwgMHgwMywgMHgwMiwgMHgwOCwgMHgwYSwgMHg3NSwgMHg0YiwgMHgwMiwgMHg5MCwgMHg3ZCwgMHg0MSwgMHhlMCwgMHhmNSwKLSAgMHg0NywgMHgwMiwgMHgwOCwgMHgwYSwgMHg3NSwgMHg0YiwgMHgwMSwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwKLSAgMHg3ZCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwNywgMHg4YiwgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNywgMHhjMiwgMHgyMiwgMHhjMiwKLSAgMHgwNiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmNSwgMHg3ZCwgMHg5MCwgMHg3YywgMHhjMCwgMHhlMCwgMHgxM319LAotIHsweDA3MDYsIDY0LCB7IDB4OTIsIDB4MTYsIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ODMsIDB4MjAsIDB4MGQsIDB4NzIsIDB4MjAsIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWEsCi0gIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4NjUsIDB4MzAsIDB4MWQsIDB4MTAsIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsCi0gIDB4YzMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4YzEsIDB4NzUsIDB4NGIsIDB4MDMsIDB4ODAsIDB4MDksIDB4OTAsIDB4N2MsIDB4YzEsIDB4ZTAsIDB4ZjUsIDB4YzEsCi0gIDB4NzUsIDB4NGIsIDB4MDIsIDB4ZTUsIDB4NGIsIDB4YzMsIDB4OTUsIDB4N2QsIDB4NDAsIDB4MTcsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTQsIDB4ZjB9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweGQyLCAweDA0LCAweDIwLCAweDE2LCAweDAzLCAweDAyLCAweDA4LCAweDBhLCAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweDAyLCAweDA4LAotICAweDBhLCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLAotICAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ3LCAweGQyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDc1LCAweDRiLCAweDAxfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhjMiwgMHgyMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHgzMCwgMHgxNCwgMHgwMywgMHgwMiwgMHgwOCwgMHgwOCwgMHgyMCwgMHgwZCwgMHg3NCwgMHg5MCwgMHg3ZiwgMHg5YSwKLSAgMHhlMCwgMHgyMCwgMHhlNSwgMHgwMywgMHgyMCwgMHgxZSwgMHg2YSwgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHhjMCwKLSAgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHhjMywgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwKLSAgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhjMSwgMHhlNSwgMHg0Yn19LAotIHsweDA3YzYsIDY0LCB7IDB4YzMsIDB4OTUsIDB4N2QsIDB4NDAsIDB4MTMsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4MTYsIDB4MzUsIDB4YzIsIDB4MTYsCi0gIDB4OTAsIDB4N2YsIDB4YzEsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MmMsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsCi0gIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsCi0gIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTJ9fSwKLSB7MHgwODA2LCA2NCwgeyAweDgwLCAweDAyLCAweGMyLCAweDIyLCAweGQyLCAweDI1LCAweDIwLCAweDk4LCAweDAzLCAweDAyLCAweDA5LCAweDNlLCAweGMyLCAweDk4LCAweDIwLCAweDAxLCAweDAzLAotICAweDAyLCAweDA4LCAweGIwLCAweDIwLCAweDIzLCAweDI3LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLCAweDFiLCAweDQ5LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDgwLAotICAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweDgwLCAweDM2LCAweGFmLCAweDk5fX0sCi0gezB4MDg0NiwgNjQsIHsgMHhlZiwgMHhiNSwgMHg1OCwgMHgwNCwgMHhkMiwgMHgwYiwgMHg4MCwgMHgyYywgMHhlZiwgMHhiNSwgMHg1NywgMHgwNCwgMHhjMiwgMHgwYiwgMHg4MCwgMHgyNCwgMHhhZSwKLSAgMHg0OCwgMHgwNSwgMHg0OCwgMHg3NCwgMHg4MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgzMCwKLSAgMHgxYiwgMHgxMSwgMHhhZSwgMHg0OCwgMHgwNSwgMHg0OCwgMHg3NCwgMHg4MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywKLSAgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgxOSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NSwgMHg1NCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwOSwgMHgzY319LAotIHsweDA4ODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTUsIDB4ZTUsIDB4NDgsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDksIDB4M2MsCi0gIDB4MTUsIDB4NDgsIDB4MTUsIDB4NDgsIDB4MDUsIDB4MmQsIDB4ZDIsIDB4MGMsIDB4MDIsIDB4MDksIDB4M2MsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZTUsIDB4NDgsCi0gIDB4ZjAsIDB4NzUsIDB4NDgsIDB4MDAsIDB4YzIsIDB4MDEsIDB4MDIsIDB4MDksIDB4M2MsIDB4MjAsIDB4MjMsIDB4MjcsIDB4YWUsIDB4NDgsIDB4MDUsIDB4NDgsCi0gIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MWJ9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDQ5LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LAotICAweGYwLCAweDgwLCAweDM2LCAweGFmLCAweDk5LCAweGVmLCAweGI1LCAweDU4LCAweDA0LCAweGQyLCAweDBiLCAweDgwLCAweDJjLCAweGVmLCAweGI1LCAweDU3LAotICAweDA0LCAweGMyLCAweDBiLCAweDgwLCAweDI0LCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdlLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDMwLCAweDFiLCAweDExLCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDAwLCAweDJlfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgxOSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NSwgMHg1NCwKLSAgMHg0MCwgMHgyMywgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NCwgMHg0MCwgMHg0MCwgMHgxNSwKLSAgMHgxNSwgMHg0OCwgMHgxNSwgMHg0OCwgMHgwNSwgMHgyZCwgMHhkMiwgMHgwYywgMHg4MCwgMHgwYiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHg0OCwgMHhmMCwKLSAgMHg3NSwgMHg0OCwgMHgwMCwgMHhkMiwgMHgwMSwgMHhkMiwgMHgyNSwgMHgyMCwgMHhjMCwgMHgwMywgMHgwMiwgMHgwYSwgMHg3MCwgMHhjMiwgMHhjMH19LAotIHsweDA5NDYsIDY0LCB7IDB4MjAsIDB4MDIsIDB4MDMsIDB4MDIsIDB4MDksIDB4ZTIsIDB4MjAsIDB4MjQsIDB4MjcsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4ODAsIDB4MmUsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzEsIDB4ZjAsIDB4MzAsIDB4MWQsIDB4NDksIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksCi0gIDB4NzQsIDB4ODAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4YWYsCi0gIDB4YzEsIDB4ZWYsIDB4YjUsIDB4NzAsIDB4MDQsIDB4ZDIsIDB4MGQsIDB4ODAsIDB4MmMsIDB4ZWYsIDB4YjUsIDB4NmYsIDB4MDQsIDB4YzIsIDB4MGR9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDgwLCAweDI0LCAweGFlLCAweDQ5LCAweDA1LCAweDQ5LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGVmLAotICAweGYwLCAweDMwLCAweDFkLCAweDExLCAweGFlLCAweDQ5LCAweDA1LCAweDQ5LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLAotICAweGY1LCAweDgzLCAweGU1LCAweGMwLCAweGYwLCAweGQyLCAweDFhLCAweGU1LCAweDQ5LCAweGMzLCAweDk1LCAweDZjLCAweDUwLCAweDAzLCAweDAyLCAweDBhLAotICAweDZlLCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDMwLCAweGUxLCAweDE1LCAweGU1LCAweDQ5LCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDAzfX0sCi0gezB4MDljNiwgNjQsIHsgMHgwMiwgMHgwYSwgMHg2ZSwgMHgxNSwgMHg0OSwgMHgxNSwgMHg0OSwgMHgwNSwgMHgzOSwgMHhkMiwgMHgwZSwgMHgwMiwgMHgwYSwgMHg2ZSwgMHg5MCwgMHg3ZiwgMHhiYiwKLSAgMHhlNSwgMHg0OSwgMHhmMCwgMHg3NSwgMHg0OSwgMHgwMCwgMHhjMiwgMHgwMiwgMHgwMiwgMHgwYSwgMHg2ZSwgMHgyMCwgMHgyNCwgMHgyNywgMHhhZSwgMHg0OSwKLSAgMHgwNSwgMHg0OSwgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlNSwgMHhjMSwgMHhmMCwgMHgzMCwKLSAgMHgxZCwgMHg0OSwgMHhhZSwgMHg0OSwgMHgwNSwgMHg0OSwgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNX19LAotIHsweDBhMDYsIDY0LCB7IDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4YWYsIDB4YzEsIDB4ZWYsIDB4YjUsIDB4NzAsIDB4MDQsIDB4ZDIsIDB4MGQsIDB4ODAsIDB4MmMsIDB4ZWYsCi0gIDB4YjUsIDB4NmYsIDB4MDQsIDB4YzIsIDB4MGQsIDB4ODAsIDB4MjQsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MzAsIDB4MWQsIDB4MTEsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4MDAsCi0gIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ZDIsIDB4MWEsIDB4ZTUsIDB4NDl9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGMzLCAweDk1LCAweDZjLCAweDQwLCAweDIzLCAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweDMwLCAweGUxLCAweDExLCAweGU1LCAweDQ5LCAweGMzLCAweDk0LCAweDQwLAotICAweDQwLCAweDE1LCAweDE1LCAweDQ5LCAweDE1LCAweDQ5LCAweDA1LCAweDM5LCAweGQyLCAweDBlLCAweDgwLCAweDBiLCAweDkwLCAweDdmLCAweGJkLCAweGU1LAotICAweDQ5LCAweGYwLCAweDc1LCAweDQ5LCAweDAwLCAweGQyLCAweDAyLCAweGQyLCAweDI1LCAweDMwLCAweDI1LCAweDA1LCAweGMyLCAweDI1LCAweDAyLCAweDAwLAotICAweDU2LCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGNlfX0sCi0gezB4MGE4NiwgNjQsIHsgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwYiwgMHhhNSwgMHhlNCwgMHhmNSwgMHgxMiwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxMiwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHg0YywgMHhmOSwgMHhlYywKLSAgMHgzNCwgMHgwMCwgMHhmYSwgMHhlZiwgMHgxMiwgMHgxNSwgMHhjZCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwgMHhiNCwgMHgxOCwgMHhkYiwgMHhlNSwgMHg0YywKLSAgMHg2MCwgMHgwYywgMHg3NSwgMHhjOSwgMHgyMCwgMHg3NSwgMHhjOCwgMHgzNiwgMHg4NSwgMHg0ZCwgMHhjYSwgMHg4NSwgMHg0ZSwgMHhjYiwgMHhlNX19LAotIHsweDBhYzYsIDY0LCB7IDB4NGYsIDB4MTMsIDB4OTIsIDB4MWIsIDB4OTIsIDB4OWYsIDB4ZTUsIDB4NTAsIDB4MTMsIDB4OTIsIDB4MWMsIDB4ZTUsIDB4NTEsIDB4MTMsIDB4OTIsIDB4MjMsIDB4ZTUsCi0gIDB4NTIsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsCi0gIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4NTMsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODAsIDB4MDcsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4NTksIDB4NjAsIDB4MGIsIDB4YzIsIDB4MTMsIDB4YzIsIDB4MGJ9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDVhLCAweDYwLCAweDBiLCAweGQyLCAweDBiLCAweGQyLCAweDBjLCAweDkwLCAweDdmLAotICAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDViLCAweDYwLCAweDBkLCAweGMyLCAweGFmLCAweGMyLCAweDExLCAweGQyLCAweDAwLCAweGU0LAotICAweGY1LCAweDdjLCAweGY1LCAweDRhLCAweGQyLCAweGFmLCAweGU1LCAweDVjLCAweDYwLCAweDA1LCAweDMwLCAweDIzLCAweDAyLCAweGQyLCAweDBiLCAweGU1LAotICAweDVkLCAweDYwLCAweDE1LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweGUwLCAweDQ0fX0sCi0gezB4MGI0NiwgNjQsIHsgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHg1ZSwgMHg2MCwgMHgwYSwgMHhkMiwgMHg5YywgMHhjMiwgMHg5OCwKLSAgMHg3NSwgMHgyZSwgMHgwMSwgMHg3NSwgMHg0MCwgMHgyOCwgMHhlNSwgMHg1ZiwgMHg2MCwgMHgwNywgMHhjMiwgMHg5YywgMHhlNCwgMHhmNSwgMHg0OCwgMHhmNSwKLSAgMHgyZSwgMHhlNSwgMHg2MCwgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHg0OCwgMHhlNSwgMHg2MSwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwNywgMHhlNSwgMHg2MiwKLSAgMHg2MCwgMHgwOCwgMHhlNSwgMHg1ZSwgMHg3MCwgMHgwMiwgMHhmNSwgMHg0MCwgMHhkMiwgMHgwYywgMHhlNSwgMHg2MywgMHg2MCwgMHgxOSwgMHg5MH19LAotIHsweDBiODYsIDY0LCB7IDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4NzQsIDB4MzIsIDB4ZjAsIDB4NzQsIDB4MTUsIDB4ZjAsCi0gIDB4NzQsIDB4MzUsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4ZDIsIDB4MDEsIDB4ZDIsIDB4MDksIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2YsIDB4ZjAsIDB4YTIsIDB4MTMsCi0gIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MmIsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MmIsIDB4ZDIsIDB4MGMsIDB4YTIsIDB4MGIsIDB4ZTQsIDB4MzMsIDB4ZmYsCi0gIDB4NjUsIDB4MmMsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MmMsIDB4ZDIsIDB4MGMsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTQsIDB4MDgsIDB4NjV9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDI3LCAweDYwLCAweDA3LCAweGUwLCAweDU0LCAweDA4LCAweGY1LCAweDI3LCAweGQyLCAweDBjLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDQwLCAweGI1LAotICAweDI5LCAweDA5LCAweGUwLCAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGY1LCAweDI5LCAweGQyLCAweDBjLCAweDMwLCAweDA3LCAweDM1LCAweGMyLCAweGFmLAotICAweDMwLCAweDAxLCAweDE4LCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweGU1LCAweDQ4LCAweDYwLCAweDA5LCAweDkwLCAweDdmLAotICAweGI3LCAweGYwLCAweGU0LCAweGY1LCAweDQ4LCAweGMyLCAweDAxLCAweGMyLCAweDA3LCAweDgwLCAweDE2LCAweDkwLCAweDdmLCAweGI2LCAweGUwfX0sCi0gezB4MGMwNiwgNjQsIHsgMHgyMCwgMHhlMSwgMHgwZiwgMHhlNSwgMHg0OCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0OCwgMHhkMiwgMHgwMSwgMHhjMiwKLSAgMHgwNywgMHhkMiwgMHhhZiwgMHgyMCwgMHgwNSwgMHgzNywgMHgzMCwgMHgwMywgMHgxYiwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyZCwKLSAgMHg5MCwgMHg3ZSwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxNSwgMHg3NSwgMHg0YSwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg3YywKLSAgMHhkMiwgMHgwNSwgMHg4MCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgxMiwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMH19LAotIHsweDBjNDYsIDY0LCB7IDB4MTMsIDB4OTIsIDB4MTUsIDB4NzUsIDB4NGEsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjUsIDB4N2MsIDB4ZDIsIDB4MDUsIDB4MjAsIDB4MjEsIDB4MzMsCi0gIDB4MjAsIDB4MDAsIDB4MDYsIDB4ZTUsIDB4NGEsIDB4NjUsIDB4N2MsIDB4NzAsIDB4MmEsIDB4MzAsIDB4MDUsIDB4MWEsIDB4MzAsIDB4MDMsIDB4MDksIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4YzIsCi0gIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4N2MsIDB4ZjUsIDB4NGEsIDB4MzAsIDB4MTUsIDB4MGEsIDB4YzIsIDB4MTUsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYzg2LCA2NCwgeyAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweDMwLCAweDIxLCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDMwLAotICAweDFjLCAweDBhLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDMwLCAweDBiLCAweDAzLCAweDAyLAotICAweDBkLCAweDk0LCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDBkLCAweDk0LCAweDMwLCAweDAzLCAweDYyLCAweDMwLCAweDFiLCAweDEyLCAweGFmLCAweDRhLAotICAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyfX0sCi0gezB4MGNjNiwgNjQsIHsgMHgyZCwgMHhhZiwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwKLSAgMHgxMywgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgyYSwgMHgzMCwgMHgxYiwgMHgxMiwgMHhhZiwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwKLSAgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNywgMHhhZiwgMHg0YSwgMHgwNSwKLSAgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NiwgMHhkMn19LAotIHsweDBkMDYsIDY0LCB7IDB4MTEsIDB4ODAsIDB4NmIsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDMsIDB4ODAsIDB4NjAsIDB4MzAsIDB4MWIsIDB4MTIsCi0gIDB4YWYsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MmQsIDB4YWYsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4ZjUsIDB4MTMsIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NTAsIDB4MmEsIDB4MzAsIDB4MWIsIDB4MTIsIDB4YWYsIDB4NGF9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDA1LCAweDRhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGFmLAotICAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ2LAotICAweGQyLCAweDExLCAweDgwLCAweDA5LCAweGMyLCAweDExLCAweGU0LCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGQyLCAweDAzLCAweDMwLCAweDFiLCAweDA0LAotICAweGEyLCAweDJkLCAweDkyLCAweDliLCAweGQyLCAweDIxLCAweGMyLCAweGFmLCAweDg1LCAweDEzLCAweDk5LCAweDIwLCAweDExLCAweDBkLCAweDMwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHgxNSwgMHgwYSwgMHhjMiwgMHgxNSwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHg5MCwgMHg3ZiwgMHhkMCwKLSAgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwZSwgMHhiNSwgMHhlNCwgMHhmNSwgMHgxMiwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxMiwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHg2NCwgMHhmOSwKLSAgMHhlYywgMHgzNCwgMHgwMCwgMHhmYSwgMHhlZiwgMHgxMiwgMHgxNSwgMHhjZCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwgMHhiNCwgMHgxOCwgMHhkYn19LAotIHsweDBkYzYsIDY0LCB7IDB4ZTUsIDB4NjQsIDB4NjAsIDB4MGIsIDB4NzUsIDB4ODksIDB4NjAsIDB4NzUsIDB4ODgsIDB4NDAsIDB4ZDIsIDB4ZGYsIDB4ODUsIDB4NjUsIDB4OGQsIDB4ZTUsIDB4NjcsCi0gIDB4MTMsIDB4OTIsIDB4MWQsIDB4OTIsIDB4YzcsIDB4ZTUsIDB4NjgsIDB4MTMsIDB4OTIsIDB4MWUsIDB4ZTUsIDB4NjksIDB4MTMsIDB4OTIsIDB4MjQsIDB4ZTUsCi0gIDB4NmEsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsCi0gIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4NmIsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODB9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDA3LCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDcxLCAweDYwLCAweDBiLCAweGMyLCAweDE0LCAweGMyLCAweDBkLCAweDkwLAotICAweDdmLCAweDk0LCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweGU1LCAweDcyLCAweDYwLCAweDBiLCAweGQyLCAweDBkLCAweGQyLCAweDBlLCAweDkwLCAweDdmLAotICAweDk0LCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweGU1LCAweDczLCAweDYwLCAweDBkLCAweGMyLCAweGFmLCAweGMyLCAweDEyLCAweGQyLCAweDAwLCAweGU0LAotICAweGY1LCAweDdkLCAweGY1LCAweDRiLCAweGQyLCAweGFmLCAweGU1LCAweDc0LCAweDYwLCAweDA1LCAweDMwLCAweDI0LCAweDAyLCAweGQyLCAweDBkfX0sCi0gezB4MGU0NiwgNjQsIHsgMHhlNSwgMHg3NSwgMHg2MCwgMHgxNSwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHgwOCwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlNSwgMHg3NiwgMHg2MCwgMHgwYSwgMHhkMiwgMHhjNCwgMHhjMiwgMHhjMCwKLSAgMHg3NSwgMHgzYSwgMHgwMSwgMHg3NSwgMHg0MSwgMHgyOCwgMHhlNSwgMHg3NywgMHg2MCwgMHgwNywgMHhjMiwgMHhjNCwgMHhlNCwgMHhmNSwgMHg0OSwgMHhmNSwKLSAgMHgzYSwgMHhlNSwgMHg3OCwgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHg0OSwgMHhlNSwgMHg3OSwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwOCwgMHhlNX19LAotIHsweDBlODYsIDY0LCB7IDB4N2EsIDB4NjAsIDB4MDgsIDB4ZTUsIDB4NzYsIDB4NzAsIDB4MDIsIDB4ZjUsIDB4NDEsIDB4ZDIsIDB4MGUsIDB4ZTUsIDB4N2IsIDB4NjAsIDB4MTksIDB4OTAsIDB4N2YsCi0gIDB4ZDcsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzQsIDB4MzQsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsCi0gIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MGEsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDEsIDB4ZjAsIDB4YTIsIDB4MTQsCi0gIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MzcsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MzcsIDB4ZDIsIDB4MGUsIDB4YTIsIDB4MGQsIDB4ZTQsIDB4MzN9fSwKLSB7MHgwZWM2LCA2NCwgeyAweGZmLCAweDY1LCAweDM4LCAweDYwLCAweDA0LCAweDhmLCAweDM4LCAweGQyLCAweDBlLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDU0LCAweDIwLCAweDY1LCAweDMzLAotICAweDYwLCAweDA3LCAweGUwLCAweDU0LCAweDIwLCAweGY1LCAweDMzLCAweGQyLCAweDBlLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDU0LCAweDQwLCAweGI1LAotICAweDM1LCAweDA5LCAweGUwLCAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGY1LCAweDM1LCAweGQyLCAweDBlLCAweDMwLCAweDA4LCAweDM1LCAweGMyLCAweGFmLAotICAweDMwLCAweDAyLCAweDE4LCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweGU1LCAweDQ5LCAweDYwLCAweDA5LCAweDkwfX0sCi0gezB4MGYwNiwgNjQsIHsgMHg3ZiwgMHhiYiwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0OSwgMHhjMiwgMHgwMiwgMHhjMiwgMHgwOCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgyMCwKLSAgMHhlMSwgMHgwZiwgMHhlNSwgMHg0OSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiZCwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0OSwgMHhkMiwgMHgwMiwgMHhjMiwKLSAgMHgwOCwgMHhkMiwgMHhhZiwgMHgyMCwgMHgwNiwgMHgzNywgMHgzMCwgMHgwNCwgMHgxYiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyZCwKLSAgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxNiwgMHg3NSwgMHg0YiwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHhmNX19LAotIHsweDBmNDYsIDY0LCB7IDB4N2QsIDB4ZDIsIDB4MDYsIDB4ODAsIDB4MTksIDB4OTAsIDB4N2YsIDB4Y2MsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTIsIDB4OTAsIDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MTYsIDB4NzUsIDB4NGIsIDB4MDEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4ZjUsIDB4N2QsIDB4ZDIsIDB4MDYsIDB4MjAsIDB4MjIsIDB4MzMsCi0gIDB4MjAsIDB4MDAsIDB4MDYsIDB4ZTUsIDB4NGIsIDB4NjUsIDB4N2QsIDB4NzAsIDB4MmEsIDB4MzAsIDB4MDYsIDB4MWEsIDB4MzAsIDB4MDQsIDB4MDksIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YzIsIDB4MDQsIDB4ODAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4ZDIsIDB4MDR9fSwKLSB7MHgwZjg2LCA2NCwgeyAweGMyLCAweDA2LCAweGU0LCAweGY1LCAweDdkLCAweGY1LCAweDRiLCAweDMwLCAweDE2LCAweDBhLCAweGMyLCAweDE2LCAweGMyLCAweDAwLCAweDkwLCAweDdmLCAweGMxLAotICAweDc0LCAweDAxLCAweGYwLCAweDMwLCAweDIyLCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDMwLAotICAweDFlLCAweDBhLCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDIwLCAweGU1LCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDMwLCAweDBkLCAweDAzLCAweDAyLAotICAweDEwLCAweGE0LCAweDMwLCAweDE0LCAweDAzLCAweDAyLCAweDEwLCAweGE0LCAweDMwLCAweDA0LCAweDYyLCAweDMwLCAweDFkLCAweDEyLCAweGFmfX0sCi0gezB4MGZjNiwgNjQsIHsgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgyZCwKLSAgMHhhZiwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwKLSAgMHgxMywgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg1MCwgMHgyYSwgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZiwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwKLSAgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhZiwgMHg0Yn19LAotIHsweDEwMDYsIDY0LCB7IDB4MDUsIDB4NGIsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTIsCi0gIDB4ODAsIDB4NmIsIDB4YzIsIDB4MTIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YzIsIDB4MDQsIDB4ODAsIDB4NjAsIDB4MzAsIDB4MWQsIDB4MTIsCi0gIDB4YWYsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MmQsIDB4YWYsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjV9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDgzLCAweGUwLCAweGY1LCAweDEzLCAweGU1LCAweDRiLCAweGMzLCAweDk1LCAweDdkLCAweDUwLCAweDJhLCAweDMwLCAweDFkLCAweDEyLCAweGFmLCAweDRiLCAweDA1LAotICAweDRiLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFmLAotICAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ3LAotICAweGQyLCAweDEyLCAweDgwLCAweDA5LCAweGMyLCAweDEyLCAweGU0LCAweDkwLCAweDdmLCAweGNkLCAweGYwLCAweGQyLCAweDA0LCAweDMwLCAweDFkfX0sCi0gezB4MTA4NiwgNjQsIHsgMHgwNCwgMHhhMiwgMHgyZCwgMHg5MiwgMHhjMywgMHhkMiwgMHgyMiwgMHhjMiwgMHhhZiwgMHg4NSwgMHgxMywgMHhjMSwgMHgyMCwgMHgxMiwgMHgwZCwgMHgzMCwgMHgxNiwKLSAgMHgwYSwgMHhjMiwgMHgxNiwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjMSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHg5MCwgMHg3ZiwgMHhjMiwKLSAgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgxMSwgMHg3YSwgMHhlNSwgMHgxYSwgMHg3MCwgMHg0NiwgMHgzMCwgMHgwYywgMHgzZiwgMHhlNSwgMHg0MCwKLSAgMHg3MCwgMHgzYiwgMHhhMiwgMHgwOSwgMHgzMywgMHhmNSwgMHgzMSwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwYywgMHhlNCwgMHhmNSwgMHgxMiwgMHg3ZX19LAotIHsweDEwYzYsIDY0LCB7IDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjYsIDB4MjUsIDB4MTIsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MTUsIDB4ODcsIDB4ZmYsIDB4NzQsCi0gIDB4ODAsIDB4MjUsIDB4MTIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTIsIDB4ZTUsIDB4MTIsCi0gIDB4YjQsIDB4MGMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4NzUsIDB4NDAsIDB4MTAsIDB4MjIsIDB4NzUsIDB4MWEsIDB4MDEsCi0gIDB4MjIsIDB4ZTUsIDB4MWEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDUsIDB4MzAsIDB4MGUsIDB4M2UsIDB4ZTUsIDB4NDEsIDB4NzAsIDB4M2EsIDB4YTJ9fSwKLSB7MHgxMTA2LCA2NCwgeyAweDBhLCAweDMzLCAweGY1LCAweDNkLCAweGMyLCAweDBhLCAweGMyLCAweDBlLCAweGU0LCAweGY1LCAweDEyLCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDMyLAotICAweDI1LCAweDEyLCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDE1LCAweDg3LCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDEyLCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDEyLCAweGU1LCAweDEyLCAweGI0LCAweDBjLCAweGRiLCAweDkwLAotICAweDdmLCAweGMzLCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQxLCAweDEwLCAweDc1LCAweDFhLCAweDAyLCAweDIyLCAweGU1LCAweDFjLCAweDYwfX0sCi0gezB4MTE0NiwgNjQsIHsgMHgzMCwgMHgxNSwgMHgxYywgMHhlNCwgMHhmNSwgMHgxMiwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgxYiwgMHgyNSwgMHgxMiwgMHhmOSwgMHhlZSwgMHgzNCwKLSAgMHgwMCwgMHhmYSwgMHgxMiwgMHgxNSwgMHg4NywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwKLSAgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwKLSAgMHhlNCwgMHhmNSwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgxNiwgMHgxNywgMHgxMiwgMHg0MCwgMHgwMCwgMHgxMn19LAotIHsweDExODYsIDY0LCB7IDB4YjQsIDB4MDEsIDB4MTMsIDB4MjAsIDB4MDMsIDB4MTEsIDB4OWUsIDB4MDYsIDB4MTIsIDB4MzMsIDB4MDgsIDB4MTIsIDB4MmQsIDB4MDksIDB4MTIsIDB4MjAsIDB4MGEsCi0gIDB4MTMsIDB4NzYsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MTMsIDB4NmYsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsCi0gIDB4NjAsIDB4NDAsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NjksIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsCi0gIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTcsIDB4NGIsIDB4OGIsIDB4MTJ9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDhhLCAweDEzLCAweDg5LCAweDE0LCAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLAotICAweGVmLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLAotICAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDE3LCAweDlhLCAweDhiLCAweDEyLCAweDhhLCAweDEzLCAweDg5LCAweDE0LAotICAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLCAweGVmLCAweDkwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwKLSAgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHgxMiwgMHgxNCwgMHhjMywgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3Zn19LAotIHsweDEyNDYsIDY0LCB7IDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTIsIDB4MjYsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsCi0gIDB4YTIsIDB4MmIsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCi0gIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCi0gIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTR9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLAotICAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLAotICAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGU4LAotICAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGVhfX0sCi0gezB4MTJjNiwgNjQsIHsgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgyNiwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwKLSAgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwKLSAgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxM319LAotIHsweDEzMDYsIDY0LCB7IDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsCi0gIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MjYsIDB4ODAsIDB4M2YsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LAotICAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLAotICAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLAotICAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyLCAweDIwLCAweDI4LCAweDAzLCAweDAyLCAweDE0LCAweGMyLCAweGU1LCAweDQwfX0sCi0gezB4MTM4NiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHg0MCwgMHhlNSwgMHg0OCwgMHg2MCwgMHg0ZiwgMHg2NSwgMHg0NCwgMHg3MCwgMHg0NSwgMHhlNSwgMHg0MiwgMHhmNCwgMHg2MCwgMHgwMiwKLSAgMHgwNSwgMHg0MiwgMHhlNSwgMHg0MiwgMHhjMywgMHg5NSwgMHg1NSwgMHg0MCwgMHgzZCwgMHhjMiwgMHhhZiwgMHgzMCwgMHgwMSwgMHgxOCwgMHg5MCwgMHg3ZiwKLSAgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyNywgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHg0OCwgMHhmMCwgMHhjMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHg0OCwKLSAgMHhmNSwgMHg0MiwgMHhmNSwgMHg0NCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHg5MCwgMHg3Zn19LAotIHsweDEzYzYsIDY0LCB7IDB4YjksIDB4ZTUsIDB4NDgsIDB4ZjAsIDB4ZDIsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4NDgsIDB4ZjUsIDB4NDIsIDB4ZjUsIDB4NDQsIDB4ZDIsIDB4YWYsIDB4ODAsIDB4MDYsCi0gIDB4ODUsIDB4NDgsIDB4NDQsIDB4ZTQsIDB4ZjUsIDB4NDIsIDB4ZTUsIDB4MmUsIDB4NjAsIDB4MmQsIDB4MjAsIDB4MTksIDB4MDcsIDB4OTAsIDB4N2YsIDB4OWIsCi0gIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MGUsIDB4ZTUsIDB4MmYsIDB4NjAsIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4MmYsIDB4ZDIsIDB4MGMsIDB4ZTQsIDB4ZjUsIDB4M2UsCi0gIDB4ODAsIDB4MTMsIDB4ZTUsIDB4M2UsIDB4ZDMsIDB4OTUsIDB4NTYsIDB4NTAsIDB4MGMsIDB4ZTUsIDB4M2UsIDB4YjUsIDB4NTYsIDB4MDUsIDB4NzV9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDJmLCAweDAxLCAweGQyLCAweDBjLCAweDA1LCAweDNlLCAweGMyLCAweDE5LCAweGU1LCAweDQxLCAweDYwLCAweDAyLCAweDE1LCAweDQxLCAweGU1LCAweDQ5LCAweDYwLAotICAweDRmLCAweDY1LCAweDQ1LCAweDcwLCAweDQ1LCAweGU1LCAweDQzLCAweGY0LCAweDYwLCAweDAyLCAweDA1LCAweDQzLCAweGU1LCAweDQzLCAweGMzLCAweDk1LAotICAweDZkLCAweDQwLCAweDNkLCAweGMyLCAweGFmLCAweDMwLCAweDAyLCAweDE4LCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweDkwLAotICAweDdmLCAweGJiLCAweGU1LCAweDQ5LCAweGYwLCAweGMyLCAweDAyLCAweGU0LCAweGY1LCAweDQ5LCAweGY1LCAweDQzLCAweGY1LCAweDQ1LCAweDgwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHhlNSwgMHg0OSwgMHhmMCwgMHhkMiwgMHgwMiwgMHhlNCwKLSAgMHhmNSwgMHg0OSwgMHhmNSwgMHg0MywgMHhmNSwgMHg0NSwgMHhkMiwgMHhhZiwgMHg4MCwgMHgwNiwgMHg4NSwgMHg0OSwgMHg0NSwgMHhlNCwgMHhmNSwgMHg0MywKLSAgMHhlNSwgMHgzYSwgMHg2MCwgMHgyZCwgMHgyMCwgMHgxYSwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5YSwgMHhlMCwgMHgzMCwgMHhlMiwgMHgwZSwgMHhlNSwgMHgzYiwKLSAgMHg2MCwgMHgwNSwgMHhlNCwgMHhmNSwgMHgzYiwgMHhkMiwgMHgwZSwgMHhlNCwgMHhmNSwgMHgzZiwgMHg4MCwgMHgxMywgMHhlNSwgMHgzZiwgMHhkM319LAotIHsweDE0ODYsIDY0LCB7IDB4OTUsIDB4NmUsIDB4NTAsIDB4MGMsIDB4ZTUsIDB4M2YsIDB4YjUsIDB4NmUsIDB4MDUsIDB4NzUsIDB4M2IsIDB4MDEsIDB4ZDIsIDB4MGUsIDB4MDUsIDB4M2YsIDB4YzIsCi0gIDB4MWEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsCi0gIDB4MWMsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjUsIDB4MWQsIDB4OTAsIDB4N2IsIDB4NDEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsCi0gIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDkwLCAweDdmLAotICAweDk0LCAweDc0LCAweDBkLCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweDlhLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDU0LCAweGZkLAotICAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweDIzLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDg0LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweGM3LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDc1LCAweDk4LCAweDQwLCAweDQzLCAweGE4fX0sCi0gezB4MTUwNiwgNjQsIHsgMHgxMCwgMHhjMiwgMHgxYiwgMHhjMiwgMHgwNSwgMHhjMiwgMHgyMSwgMHhjMiwgMHgwYiwgMHhjMiwgMHgxMywgMHhmNSwgMHg3YywgMHhmNSwgMHg0YSwgMHhjMiwgMHgxMSwKLSAgMHhjMiwgMHgxNSwgMHhmNSwgMHg0MiwgMHhjMiwgMHgxOSwgMHhmNSwgMHg0NCwgMHhmNSwgMHg0OCwgMHhjMiwgMHgyMywgMHhjMiwgMHgxYywgMHhmNSwgMHgyZCwKLSAgMHhmNSwgMHgyZiwgMHhjMiwgMHgwNywgMHhjMiwgMHgwMCwgMHhjMiwgMHgxZiwgMHhmNSwgMHgzZSwgMHhjMiwgMHgwOSwgMHhkMiwgMHgwYywgMHhmNSwgMHgyNiwKLSAgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkMSwgMHhmMCwgMHg3NSwgMHhjMCwgMHg0MH19LAotIHsweDE1NDYsIDY0LCB7IDB4NDMsIDB4YTgsIDB4NDAsIDB4YzIsIDB4MWQsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MjIsIDB4YzIsIDB4MGQsIDB4YzIsIDB4MTQsIDB4ZjUsIDB4N2QsIDB4ZjUsIDB4NGIsCi0gIDB4YzIsIDB4MTIsIDB4YzIsIDB4MTYsIDB4ZjUsIDB4NDMsIDB4YzIsIDB4MWEsIDB4ZjUsIDB4NDUsIDB4ZjUsIDB4NDksIDB4YzIsIDB4MjQsIDB4YzIsIDB4MWUsCi0gIDB4ZjUsIDB4MzksIDB4ZjUsIDB4M2IsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MjAsIDB4ZjUsIDB4M2YsIDB4YzIsIDB4MGEsIDB4ZDIsIDB4MGUsCi0gIDB4NzUsIDB4MzIsIDB4MDEsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZDIsIDB4Mjh9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLAotICAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LAotICAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLAotICAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1fX0sCi0gezB4MTVjNiwgNjQsIHsgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwKLSAgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwKLSAgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMCwgMHhhMywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwOSwgMHhlOSwgMHgyNSwgMHg4MiwKLSAgMHhmOCwgMHg4NiwgMHhmMCwgMHgwOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwYSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHhmNX19LAotIHsweDE2MDYsIDY0LCB7IDB4ZjAsIDB4MDgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODMsIDB4MmEsIDB4ZjUsIDB4ODMsIDB4ZTksIDB4OTMsIDB4ZjUsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4OTMsIDB4MjIsCi0gIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsCi0gIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsCi0gIDB4ZWYsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4N2R9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAyLCAweDE2LCAweDg0LCAweDAyLCAweDE2LCAweGM5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLAotICAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LAotICAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LAotICAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDE4fX0sCi0gezB4MTY4NiwgNjQsIHsgMHhjNSwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwKLSAgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwKLSAgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwKLSAgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZX19LAotIHsweDE2YzYsIDY0LCB7IDB4ZTcsIDB4ODAsIDB4YmUsIDB4NzUsIDB4MTEsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsCi0gIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MjYsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsCi0gIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDR9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweGJjLCAweGQyLCAweGJlLCAweGQyLCAweDJkLAotICAweDEyLCAweDE4LCAweDdmLCAweGMyLCAweDI3LCAweGMyLCAweDI1LCAweGMyLCAweDI4LCAweDMwLCAweDI4LCAweDAzLCAweDEyLCAweDBhLCAweDgzLCAweDkwLAotICAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDEwLCAweDYwLCAweDA4LCAweGUwLCAweGY1LCAweDEwLCAweDEyLCAweDEzLCAweDdlLCAweDgwLCAweGVhLCAweDMwLAotICAweDI3LCAweDA3LCAweGMyLCAweDI3LCAweDEyLCAweDExLCAweDdiLCAweDgwLCAweGUwLCAweDMwLCAweDJjLCAweGRkLCAweGMyLCAweDJjLCAweDEyfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgyNiwgMHg4MCwgMHhkNiwgMHgyMiwgMHhlNCwgMHhmZSwgMHg3NSwgMHgxNywgMHhmZiwgMHg3NSwgMHgxOCwgMHgxOSwgMHg3NSwgMHgxOSwgMHgxMiwgMHhhYiwKLSAgMHgxNywgMHhhYSwgMHgxOCwgMHhhOSwgMHgxOSwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgxNSwgMHhhMCwgMHg2NCwgMHgwMiwgMHg3MCwgMHgyZCwgMHhhZCwKLSAgMHgwNiwgMHgwZSwgMHhlZCwgMHhiNSwgMHgwNywgMHgwMSwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHgxNSwgMHhkZiwgMHg4NSwgMHhmMCwgMHgxNSwKLSAgMHhmNSwgMHgxNiwgMHg2MiwgMHgxNSwgMHhlNSwgMHgxNSwgMHg2MiwgMHgxNiwgMHhlNSwgMHgxNiwgMHg2MiwgMHgxNSwgMHgyOSwgMHhmZCwgMHhlNX19LAotIHsweDE3ODYsIDY0LCB7IDB4MTUsIDB4M2EsIDB4YTksIDB4MDUsIDB4NzUsIDB4MTcsIDB4ZmYsIDB4ZjUsIDB4MTgsIDB4ODksIDB4MTksIDB4ODAsIDB4YzMsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsCi0gIDB4NzksIDB4MDAsIDB4MjIsIDB4OGYsIDB4MTUsIDB4ZTQsIDB4ZjUsIDB4MTYsIDB4NzUsIDB4MTcsIDB4ZmYsIDB4NzUsIDB4MTgsIDB4MTksIDB4NzUsIDB4MTksCi0gIDB4ODYsIDB4YWIsIDB4MTcsIDB4YWEsIDB4MTgsIDB4YTksIDB4MTksIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MTUsIDB4YTAsIDB4YjQsIDB4MDMsIDB4MWQsCi0gIDB4YWYsIDB4MTYsIDB4MDUsIDB4MTYsIDB4ZWYsIDB4YjUsIDB4MTUsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MTUsIDB4ODcsIDB4N2UsIDB4MDAsIDB4Mjl9fSwKLSB7MHgxN2M2LCA2NCwgeyAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDE3LCAweGZmLCAweGY1LCAweDE4LCAweDg5LCAweDE5LCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLAotICAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweGYwLCAweDkwLCAweDdmLCAweDk0LAotICAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLAotICAweDkwLCAweDdmLCAweDllLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweGYwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwKLSAgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwKLSAgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwKLSAgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgyNywgMHg1MywgMHg5MSwgMHhlZiwgMHg5MH19LAotIHsweDE4NDYsIDY0LCB7IDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsCi0gIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsCi0gIDB4ZDIsIDB4MmMsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsCi0gIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjB9fSwKLSB7MHgxODg2LCA2NCwgeyAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDJkLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDAwLAotICAweDA2LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDc0LCAweDAwLCAweGY1LAotICAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLAotICAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGMxfX0sCi0gezB4MThjNiwgNjQsIHsgMHhhYSwgMHgwMSwgMHgxYSwgMHgwMCwgMHgwMywgMHgxYiwgMHgwMywgMHgwMCwgMHgwMCwgMHhjMSwgMHgyNywgMHhjMSwgMHgyYywgMHhjMSwgMHgyNiwgMHhjMSwgMHgyYiwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MGYsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDEsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCA2NCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MWE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDFhODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxYWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDE4LCAweDMxLCAweDAwLCAweDAyLCAweDFifX0sCi0gezB4MWIwNiwgIDksIHsgMHgwNCwgMHgwMCwgMHgwMiwgMHgxOCwgMHgwNywgMHgwMCwgMHgwMiwgMHgxOCwgMHg1OH19LAotIHsweGZmZmYsICAwLCB7MHgwMH19Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjh4X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM4N2VkOS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0NyArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTI4eF9mdy5oCi0KLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTI4eF9mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTI4eF9maXJtd2FyZVtdID0gewotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MTIsIDB4Zjd9fSwKLSB7MHgwMDAzLCAxNiwgeyAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwfX0sCi0gezB4MDAxMywgMTYsIHsgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHg5MH19LAotIHsweDAwMjMsIDE1LCB7IDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweDMwLCAweDA5LCAweDE4LCAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk1LCAweDNjLCAweDQwLCAweDAzLCAweDAyLCAweDAwLCAweGQ4LCAweDkwfX0sCi0gezB4MDA1NiwgMTYsIHsgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwMCwgMHg4MCwgMHg3NywgMHgzMCwgMHgwMywgMHgzYiwgMHg5MCwgMHg3Zn19LAotIHsweDAwNjYsIDE2LCB7IDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4MWIsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4NjQsIDB4OTAsIDB4N2V9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDA5LCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwfX0sCi0gezB4MDA4NiwgMTYsIHsgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg0MSwgMHgxMiwgMHgwYywgMHhiYX19LAotIHsweDAwOTYsIDE2LCB7IDB4YzIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4ODAsIDB4MzksIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzJ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDEyLCAweDEzLCAweDFiLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDA5fX0sCi0gezB4MDBiNiwgMTYsIHsgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZH19LAotIHsweDAwYzYsIDE2LCB7IDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGMsIDB4YmEsIDB4ZDIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweDYwLCAweDEyLCAweDExLCAweGQ2LCAweDhmfX0sCi0gezB4MDBlNiwgMTYsIHsgMHgxOSwgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgzNiwgMHhlNSwgMHgxOSwgMHhjMywgMHg5NSwgMHgzYSwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxMiwgMHhlYn19LAotIHsweDAwZjYsIDE2LCB7IDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzYsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGIsIDB4NWUsIDB4YzIsIDB4MGIsIDB4ZTUsIDB4MTl9fSwKLSB7MHgwMDM2LCAxMiwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxMywgMHgwMH19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MGUsIDB4MDB9fSwKLSB7MHgwMTA2LCA2NCwgeyAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM2LCAweDAyLCAweGU1LCAweDM2LCAweDMwLCAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LAotICAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdlLAotICAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM2LCAweDEyLCAweDBmLCAweDRiLCAweGU1LCAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGI3LCAweGYwLAotICAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4fX0sCi0gezB4MDE0NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg4MCwgMHhlNSwgMHgzNiwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwKLSAgMHgwYywgMHhkZiwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwKLSAgMHgyMCwgMHgwNSwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHhjMiwgMHgwNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxOCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YX19LAotIHsweDAxODYsIDY0LCB7IDB4N2UsIDB4NzksIDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsCi0gIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZTAsIDB4NjAsIDB4NjgsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MjQsCi0gIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NDMsIDB4NDYsCi0gIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4ZTQsIDB4OTB9fSwKLSB7MHgwMWM2LCA2NCwgeyAweDdlLCAweDEzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLCAweDEwLCAweDM1LCAweDkwLCAweDdlLCAweDAyLCAweGUwLAotICAweGZmLCAweDEyLCAweDEwLCAweDViLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDAzLAotICAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGIxLCAweDQzLCAweDQ2LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDA2LCAweDkwfX0sCi0gezB4MDIwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwgMHgxMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwKLSAgMHg3ZSwgMHgxMywgMHhmMCwgMHg3NSwgMHgyNSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgwNSwgMHhlMCwgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwKLSAgMHhmNSwgMHg0NCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgwNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MiwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0Mn19LAotIHsweDAyNDYsIDY0LCB7IDB4N2YsIDB4NTMsIDB4NDIsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MDksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDIsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTAsIDB4YTcsIDB4OTAsIDB4N2UsIDB4MGIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4Y2QsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsCi0gIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDIsIDB4N2YsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsIDB4N2UsIDB4MGMsCi0gIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmR9fSwKLSB7MHgwMjg2LCA2NCwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDBlLCAweGUwLCAweDYwLAotICAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGZlLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDEyLCAweGUwLCAweGY1LCAweDNhLCAweGEzLAotICAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweGEzLCAweGUwLCAweGY1LCAweDNjLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDEwfX0sCi0gezB4MDJjNiwgNjQsIHsgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwKLSAgMHg5MCwgMHg3ZSwgMHgxNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NCwgMHhiZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwKLSAgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHgxMiwgMHgxMiwgMHhkZiwKLSAgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZSwgMHhmZCwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMn19LAotIHsweDAzMDYsIDY0LCB7IDB4MTEsIDB4YjEsIDB4ZTQsIDB4ZjUsIDB4MmEsIDB4ZjUsIDB4MjksIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsCi0gIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NzUsIDB4MjksIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTgsCi0gIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MTksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTh9fSwKLSB7MHgwMzQ2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFhLCAweGUwLCAweDYwLCAweDBmLAotICAweDUzLCAweDNlLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweDc1LCAweDJiLCAweDAxLCAweGQyLCAweDA3LCAweDkwLAotICAweDdlLCAweDFiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNlLCAweDAxLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweGU0LAotICAweGY1LCAweDJiLCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFjLCAweGUwLCAweDYwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyfX0sCi0gezB4MDM4NiwgNjQsIHsgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYiwKLSAgMHg5MCwgMHg3ZSwgMHgxZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgyYywgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOCwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwKLSAgMHgxZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwgMHgxNSwgMHhmMCwKLSAgMHg3NCwgMHgzNSwgMHhmMCwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZiwgMHhmMCwgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOH19LAotIHsweDAzYzYsIDY0LCB7IDB4NjAsIDB4MDIsIDB4MTUsIDB4MzgsIDB4MjAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsCi0gIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4ZDIsIDB4MTMsIDB4MTIsIDB4MTIsIDB4ZGYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsCi0gIDB4MTksIDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmEsIDB4ZDIsIDB4MDcsIDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4NTQsIDB4ODAsCi0gIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjYsIDB4ZDIsIDB4MDcsIDB4MzAsIDB4MGQsIDB4MTEsIDB4MTJ9fSwKLSB7MHgwNDA2LCA2NCwgeyAweDEzLCAweDMzLCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDI1LCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDI1LCAweGQyLCAweDA3LCAweDIwLAotICAweDFiLCAweDAzLCAweDAyLCAweDA3LCAweGVjLCAweDMwLCAweDBhLCAweDE4LCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzLCAweDk1LCAweDNkLCAweDQwLAotICAweDAzLCAweDAyLCAweDA0LCAweGFlLCAweDkwLCAweDdmLCAweGMxLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDAwLCAweDgwLCAweDc3LAotICAweDMwLCAweDA0LCAweDNiLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzfX0sCi0gezB4MDQ0NiwgNjQsIHsgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHgxNCwgMHhmNSwKLSAgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwKLSAgMHgwZCwgMHg0MSwgMHgxMiwgMHgwZCwgMHgwNCwgMHhjMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwKLSAgMHhjYywgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyOSwgMHg5MH19LAotIHsweDA0ODYsIDY0LCB7IDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjAsCi0gIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2MsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGQsIDB4MDQsCi0gIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDUsCi0gIDB4MzYsIDB4MTIsIDB4MTIsIDB4MjAsIDB4OGYsIDB4MTksIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MTksIDB4YzMsIDB4OTV9fSwKLSB7MHgwNGM2LCA2NCwgeyAweDNiLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDU3LCAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDM3LCAweDIwLCAweGU3LCAweDAzLCAweDMwLCAweDBjLAotICAweDVlLCAweGMyLCAweDBjLCAweGU1LCAweDE5LCAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM3LCAweDAyLCAweGU1LCAweDM3LCAweDMwLAotICAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLAotICAweDdkLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM3LCAweDEyLCAweDBmLCAweDg0LCAweGU1fX0sCi0gezB4MDUwNiwgNjQsIHsgMHgxOSwgMHgyNSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg4MCwgMHgyNywgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwKLSAgMHgxOSwgMHgzZiwgMHg4NSwgMHgxOSwgMHgwOCwgMHg5MCwgMHg3ZCwgMHg4MCwgMHhlNSwgMHgzNywgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg4MSwgMHg3NSwKLSAgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwgMHgwZCwgMHgyOSwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhkMCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHgwNiwgMHgwMywgMHgwMiwgMHgwNywgMHg5NywgMHhjMiwgMHgwNiwgMHhlNH19LAotIHsweDA1NDYsIDY0LCB7IDB4ZjUsIDB4MTgsIDB4NzQsIDB4YzAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsCi0gIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4N2UsIDB4NzksIDB4MjAsIDB4MjQsIDB4MjAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsCi0gIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MjAsIDB4ZTAsIDB4NjAsIDB4NjgsCi0gIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MjQsIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MDN9fSwKLSB7MHgwNTg2LCA2NCwgeyAweDdkLCAweGNkLCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweGU1LCAweDQ3LCAweGYwLCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDIxLCAweGUwLCAweGZmLCAweDEyLAotICAweDExLCAweDE5LCAweDkwLCAweDdlLCAweDIyLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDNmLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDMxLCAweGUwLAotICAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGZiLCAweDQzLCAweDQ3LCAweDgwLCAweDkwfX0sCi0gezB4MDVjNiwgNjQsIHsgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwKLSAgMHhlNSwgMHg0MSwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwKLSAgMHgzMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgzMywgMHhmMCwgMHg3NSwgMHgyZSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgyNSwgMHhlMCwKLSAgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmNSwgMHg0NSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDA2MDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDUsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MjcsIDB4ZTAsIDB4NjAsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDMsCi0gIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDMsIDB4N2YsIDB4NTMsIDB4NDMsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDMsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NjUsIDB4OTAsIDB4N2UsIDB4MmIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4OGIsCi0gIDB4YWYsIDB4NDMsIDB4MTIsIDB4MTAsIDB4ZjMsIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDMsIDB4N2YsIDB4YWZ9fSwKLSB7MHgwNjQ2LCA2NCwgeyAweDQzLCAweDEyLCAweDEwLCAweGYzLCAweDkwLCAweDdlLCAweDJjLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAyLAotICAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGZkLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LAotICAweGYwLCAweDkwLCAweDdlLCAweDJlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAxLCAweDgwLCAweDAzLAotICAweDUzLCAweDQ3LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwfX0sCi0gezB4MDY4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHgzMiwgMHhlMCwgMHhmNSwgMHgzYiwgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzZCwgMHhhMywgMHhlMCwKLSAgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHg0NywgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZSwgMHgzNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NSwgMHhiZiwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDA2YzYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4MTIsIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4M2YsIDB4ZmQsCi0gIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsCi0gIDB4MzcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4NzUsIDB4MzIsCi0gIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4MzgsIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjB9fSwKLSB7MHgwNzA2LCA2NCwgeyAweGU1LCAweDQxLCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGQyLCAweDAwLCAweDkwLCAweDdlLCAweDM5LCAweGUwLCAweDYwLCAweDExLCAweDQzLAotICAweDQ1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAotICAweDkwLCAweDdlLCAweDNhLCAweGUwLCAweDYwLCAweDBmLCAweDUzLCAweDNmLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDExLCAweGZiLAotICAweDc1LCAweDM0LCAweDAxLCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNmLCAweDAxLCAweGU0fX0sCi0gezB4MDc0NiwgNjQsIHsgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmNSwgMHgzNCwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzYywgMHhlMCwgMHg2MCwgMHgwZSwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHhlNSwgMHg0MSwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgzZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYywgMHg5MCwgMHg3ZSwgMHgzZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgzNSwgMHgwMSwgMHhlNCwKLSAgMHhmNSwgMHgzOSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxM319LAotIHsweDA3ODYsIDY0LCB7IDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDEsIDB4ZjAsCi0gIDB4MzAsIDB4MWEsIDB4NTIsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDIsIDB4MTUsIDB4MzksIDB4MzAsIDB4MTMsIDB4NDksIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsCi0gIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsIDB4M2UsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4YzIsIDB4MTMsIDB4MTIsCi0gIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MzMsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MzMsIDB4ZDJ9fSwKLSB7MHgwN2M2LCA2NCwgeyAweDA4LCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDgwLCAweGY1LCAweDE5LCAweDY1LCAweDJmLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDJmLCAweGQyLAotICAweDA4LCAweDMwLCAweDBlLCAweDExLCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDJlLCAweDYwLCAweDA1LAotICAweDg1LCAweDE5LCAweDJlLCAweGQyLCAweDA4LCAweDMwLCAweDFhLCAweDJhLCAweDkwLCAweDdmLCAweGQyLCAweGUwLCAweDIwLCAweGUxLCAweDIzLCAweDkwLAotICAweDdiLCAweDQwLCAweGUwLCAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDE1LCAweDkwLCAweDdiLCAweDQyLCAweGUwLCAweGY1LCAweDE2LCAweDkwfX0sCi0gezB4MDgwNiwgNjQsIHsgMHg3YiwgMHg0MSwgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHhkMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwOSwgMHgyMCwgMHhlNSwgMHgwYSwgMHg3MCwgMHg0MCwKLSAgMHgzMCwgMHgwNywgMHgzOSwgMHhlNSwgMHgzOCwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwNywgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKLSAgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAotIHsweDA4NDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsCi0gIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzgsIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MmMsIDB4NzUsIDB4MGEsIDB4MDEsIDB4MjIsCi0gIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDAsIDB4MzAsIDB4MDgsIDB4MzksIDB4ZTUsIDB4MzksIDB4NzAsIDB4MzUsIDB4YzIsIDB4MDgsIDB4ZjUsCi0gIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTJ9fSwKLSB7MHgwODg2LCA2NCwgeyAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LAotICAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLCAweDc1LCAweDM5LCAweDEwLCAweGU0LAotICAweGY1LCAweDM1LCAweDc1LCAweDBhLCAweDAyLCAweDIyLCAweGU1LCAweDBhLCAweDY0LCAweDAyLCAweDcwLCAweDM2LCAweDMwLCAweDE0LCAweDJmLCAweGMyLAotICAweDE0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDBlLCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwfX0sCi0gezB4MDhjNiwgNjQsIHsgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwKLSAgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwNSwgMHhmMCwgMHg3NSwgMHgwYSwKLSAgMHgwMywgMHgyMiwgMHhlNSwgMHgxNSwgMHg2MCwgMHgzMCwgMHgxNSwgMHgxNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwKLSAgMHgxNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg4YywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNX19LAotIHsweDA5MDYsIDY0LCB7IDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsCi0gIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGUsCi0gIDB4ZTQsIDB4MGEsIDB4MDgsIDB4MDAsIDB4MGEsIDB4N2MsIDB4MDEsIDB4MGEsIDB4ZTgsIDB4MDMsIDB4MDksIDB4NDQsIDB4MDYsIDB4MDksIDB4ZmIsIDB4MDgsCi0gIDB4MDksIDB4ZjUsIDB4MDksIDB4MDksIDB4ZGQsIDB4MGEsIDB4MDksIDB4ZWMsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MGIsIDB4MzcsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwOTQ2LCA2NCwgeyAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDE0LCAweDYwLCAweDYxLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA5LCAweGQzLCAweDc0LAotICAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweDcwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LAotICAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweDdiLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDc0LCAweDc1LCAweDgzLCAweDE5fX0sCi0gezB4MDk4NiwgNjQsIHsgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwKLSAgMHg3NCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwZiwKLSAgMHgwYSwgMHhlYSwgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMH19LAotIHsweDA5YzYsIDY0LCB7IDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsCi0gIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MDksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsCi0gIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MDksIDB4MDIsIDB4MGIsIDB4M2UsIDB4MTIsIDB4MGIsCi0gIDB4NDYsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDJ9fSwKLSB7MHgwYTA2LCA2NCwgeyAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLAotICAweGEyLCAweDEwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDE2LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLAotICAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweGU0LCAweDkwLCAweDdmLAotICAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmfX0sCi0gezB4MGE0NiwgNjQsIHsgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwKLSAgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwKLSAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMn19LAotIHsweDBhODYsIDY0LCB7IDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MTAsIDB4MDIsIDB4MGIsIDB4M2UsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsCi0gIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsCi0gIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYWM2LCA2NCwgeyAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLAotICAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLAotICAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRhLCAweDkwLCAweDdmLCAweGVhLAotICAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLCAweDEwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwfX0sCi0gezB4MGIwNiwgNjQsIHsgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwKLSAgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwKLSAgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMn19LAotIHsweDBiNDYsIDY0LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTgsCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZTQsIDB4ZjUsCi0gIDB4MjQsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmF9fSwKLSB7MHgwYjg2LCA2NCwgeyAweGU0LCAweDEyLCAweDBlLCAweGQyLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGVhLCAweDc1LCAweDNhLCAweDAxLCAweGU0LCAweGY1LCAweDM4LAotICAweGY1LCAweDEzLCAweGY1LCAweDM2LCAweGMyLCAweDA3LCAweGMyLCAweDBiLCAweGMyLCAweDA1LCAweGMyLCAweDAwLCAweGMyLCAweDA5LCAweGMyLCAweDEzLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDc1LCAweDQ0LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLAotICAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDdmLCAweDEwLCAweDhmLCAweDQyLCAweDEyLCAweDEwLCAweDgxLCAweDkwLCAweDdmfX0sCi0gezB4MGJjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHg4ZiwgMHg0MCwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NSwgMHg0NiwgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwKLSAgMHgxMiwgMHgxMSwgMHhiMSwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiMSwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxMX19LAotIHsweDBjMDYsIDY0LCB7IDB4YjEsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4NmEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YjEsIDB4MjAsIDB4MWIsIDB4MDMsIDB4MDIsCi0gIDB4MGMsIDB4YjcsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsCi0gIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2IsCi0gIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzcsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzJ9fSwKLSB7MHgwYzQ2LCA2NCwgeyAweDAwLCAweGMyLCAweDBhLCAweGMyLCAweDEzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDc1LCAweDQ1LCAweDAzLCAweDkwLCAweGMwLCAweDAwLAotICAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDEwLCAweDhmLCAweDQzLCAweDEyLCAweDEwLAotICAweGYzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQxLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0fX0sCi0gezB4MGM4NiwgNjQsIHsgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZiwgMHgxMiwKLSAgMHgxMSwgMHhmYiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwKLSAgMHg3ZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg4YiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhmYiwKLSAgMHhkMiwgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4Mn19LAotIHsweDBjYzYsIDY0LCB7IDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsCi0gIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MDgsCi0gIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsCi0gIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwZDA2LCA2NCwgeyAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LAotICAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLAotICAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLAotICAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1fX0sCi0gezB4MGQ0NiwgNjQsIHsgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwKLSAgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywKLSAgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHhkMiwgMHgxOSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMH19LAotIHsweDBkODYsIDY0LCB7IDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsCi0gIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsCi0gIDB4MWEsIDB4MTIsIDB4MTIsIDB4NDUsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTJ9fSwKLSB7MHgwZGM2LCA2NCwgeyAweDkwLCAweDdmLCAweGExLCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDE3LCAweDYwLCAweDEwLCAweDMwLCAweDEyLCAweDA1LCAweGQyLAotICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDE3LCAweDgwLCAweDA4LCAweDMwLCAweDEyLCAweDA1LCAweGMyLAotICAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDMwLCAweDExLCAweDA3LCAweGMyLCAweDExLCAweDEyLCAweDA5LCAweDIxLCAweDgwLCAweGQ2LCAweDMwLCAweDE4LAotICAweGQzLCAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweDkzLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkfX0sCi0gezB4MGUwNiwgNjQsIHsgMHg3NSwgMHg4MSwgMHg0NywgMHgwMiwgMHgwZSwgMHg0NywgMHgwMiwgMHgwZCwgMHg2ZiwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwKLSAgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywKLSAgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwKLSAgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MH19LAotIHsweDBlNDYsIDY0LCB7IDB4ODAsIDB4OTAsIDB4MTIsIDB4YWMsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksCi0gIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsCi0gIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsCi0gIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9fSwKLSB7MHgwZTg2LCA2NCwgeyAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLAotICAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLAotICAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LAotICAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1fX0sCi0gezB4MGVjNiwgNjQsIHsgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwKLSAgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwKLSAgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwKLSAgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhM319LAotIHsweDBmMDYsIDY0LCB7IDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OGYsIDB4MTgsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4NzUsIDB4MWEsIDB4ZmYsIDB4NzUsIDB4MWIsIDB4MTksIDB4NzUsIDB4MWMsCi0gIDB4ODYsIDB4YWIsIDB4MWEsIDB4YWEsIDB4MWIsIDB4YTksIDB4MWMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MGUsIDB4YTUsIDB4YjQsIDB4MDMsIDB4MWQsCi0gIDB4YWYsIDB4MTksIDB4MDUsIDB4MTksIDB4ZWYsIDB4YjUsIDB4MTgsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MGUsIDB4OGMsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsCi0gIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDB9fSwKLSB7MHgwZjQ2LCA2NCwgeyAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLAotICAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLAotICAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LAotICAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDI3LCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLCAweDFhfX0sCi0gezB4MGY4NiwgNjQsIHsgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhZSwgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxYSwKLSAgMHhmMCwgMHgxMiwgMHgxMywgMHgzZiwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhYywgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwKLSAgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MCwgMHgwYSwgMHgxMiwgMHgxMywgMHg3YiwgMHg4ZiwgMHgxYSwKLSAgMHhlZiwgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMH19LAotIHsweDBmYzYsIDY0LCB7IDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCi0gIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsCi0gIDB4MTEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDB9fSwKLSB7MHgxMDA2LCA2NCwgeyAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLAotICAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LAotICAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwfX0sCi0gezB4MTA0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywKLSAgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxM319LAotIHsweDEwODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDR9fSwKLSB7MHgxMGM2LCA2NCwgeyAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LAotICAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwfX0sCi0gezB4MTEwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwKLSAgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDExNDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2Z9fSwKLSB7MHgxMTg2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBlLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLAotICAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLAotICAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwfX0sCi0gezB4MTFjNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwKLSAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwKLSAgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHgwZiwgMHg4ZiwgMHgxYiwgMHg4MCwKLSAgMHhlOCwgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MH19LAotIHsweDEyMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4MTIsIDB4MTMsCi0gIDB4NjMsIDB4OGYsIDB4MWIsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsCi0gIDB4NjUsIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NjMsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTB9fSwKLSB7MHgxMjQ2LCA2NCwgeyAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDFhLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLAotICAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDEyLCAweGM4LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LAotICAweDA0LCAweGYwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNlLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwfX0sCi0gezB4MTI4NiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZiwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZiwgMHg0NCwgMHg4MCwKLSAgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHgyMiwgMHgwNSwgMHgwZSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgxNCwgMHgwMywgMHgwMCwKLSAgMHgwMCwgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMX19LAotIHsweDEyYzYsIDY0LCB7IDB4OWIsIDB4MDAsIDB4OGUsIDB4MTgsIDB4OGYsIDB4MTksIDB4ZTUsIDB4MTksIDB4MTUsIDB4MTksIDB4YWUsIDB4MTgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTgsIDB4NGUsCi0gIDB4NjAsIDB4MDUsIDB4MTIsIDB4MGQsIDB4NGUsIDB4ODAsIDB4ZWUsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGYsIDB4ZTcsIDB4MDAsIDB4MDIsIDB4MTN9fSwKLSB7MHgxMzA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDBmLCAweGJkLCAweDAwLCAweDAyLCAweDEwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwfX0sCi0gezB4MTM0NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZn19LAotIHsweDEzODYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MTIsIDB4MDAsIDB4MDMsIDB4MTIsCi0gIDB4MGQsIDB4NWYsIDB4MTIsIDB4MGIsIDB4NDYsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxM2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTRjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTcwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTdjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTg4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4MDB9fSwKLSB7MHgxOTA2LCA2NCwgeyAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDEwLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAotICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAotICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKLSAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKLSAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKLSAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAotIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCi0gIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCi0gIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKLSB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDM2LCAweDAzLCAweDRiLCAweDAwLCAweDY1LAotICAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLAotICAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLAotICAweDAwLCAweDIwLCAweDAwLCAweDQxLCAweDAwLCAweDY0LCAweDAwLCAweDYxLCAweDAwLCAweDcwLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwfX0sCi0gezB4MWEwNiwgIDQsIHsgMHg3MiwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweGZmZmYsICAwLCAgezB4MDB9fQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eGFfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eGFfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I1NjY3OC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhhX2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NDkgKzAsMCBAQAotLyoga2V5c3Bhbl91c2EyOHhhX2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMjh4YS5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLQotCi0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2EyOHhhX2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgxMiwgMHhmOX19LAotIHsweDAwMDMsIDE2LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjB9fSwKLSB7MHgwMDEzLCAxNiwgeyAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDkwfX0sCi0gezB4MDAyMywgMTUsIHsgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgwNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMn19LAotIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MDksIDB4MTgsIDB4MTIsIDB4MTMsIDB4MjcsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2MsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZDgsIDB4OTB9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDA5LCAweGMyLCAweDAwLCAweDgwLCAweDc3LCAweDMwLCAweDAzLCAweDNiLCAweDkwLCAweDdmfX0sCi0gezB4MDA2NiwgMTYsIHsgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgxMywgMHgyNywgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZX19LAotIHsweDAwNzYsIDE2LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDksIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjB9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDQxLCAweDEyLCAweDBjLCAweGM4fX0sCi0gezB4MDA5NiwgMTYsIHsgMHhjMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMn19LAotIHsweDAwYTYsIDE2LCB7IDB4MTIsIDB4MTMsIDB4MjcsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDl9fSwKLSB7MHgwMGI2LCAxNiwgeyAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkfX0sCi0gezB4MDBjNiwgMTYsIHsgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwYywgMHhjOCwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3Zn19LAotIHsweDAwZDYsIDE2LCB7IDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4NjAsIDB4MTIsIDB4MTEsIDB4ZTQsIDB4OGZ9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDE5LCAweDEyLCAweDEzLCAweDMzLCAweDhmLCAweDM2LCAweGU1LCAweDE5LCAweGMzLCAweDk1LCAweDNhLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDBmfX0sCi0gezB4MDBmNiwgMTYsIHsgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgzNiwgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgwYiwgMHg1ZSwgMHhjMiwgMHgwYiwgMHhlNSwgMHgxOX19LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDEzLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwZSwgMHgwZX19LAotIHsweDAxMDYsIDY0LCB7IDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4ZTUsIDB4MzYsIDB4MzAsIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsCi0gIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2UsCi0gIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzYsIDB4MTIsIDB4MGYsIDB4NTksIDB4ZTUsIDB4MTksIDB4MjUsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsCi0gIDB4ODAsIDB4MjcsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4M2YsIDB4ODUsIDB4MTksIDB4MDh9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDM2LCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDgxLCAweDEyLAotICAweDBjLCAweGVkLCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LAotICAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDAzLCAweGMxLCAweGMyLCAweDA1LCAweGU0LCAweGY1LCAweDE4LCAweDc0LCAweDQwLCAweDI1LCAweDE4LCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhfX0sCi0gezB4MDE4NiwgNjQsIHsgMHg3ZSwgMHg3OSwgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwgMHhlNSwKLSAgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2OCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgyNCwKLSAgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiZiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHhjZCwgMHgxMiwgMHgxMSwgMHhiZiwgMHg0MywgMHg0NiwKLSAgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHhlNCwgMHg5MH19LAotIHsweDAxYzYsIDY0LCB7IDB4N2UsIDB4MTMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MDEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NDMsIDB4OTAsIDB4N2UsIDB4MDIsIDB4ZTAsCi0gIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NjksIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MTEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YmYsIDB4N2YsIDB4MDMsCi0gIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YmYsIDB4NDMsIDB4NDYsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDYsIDB4OTB9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLCAweDEzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLAotICAweDdlLCAweDEzLCAweGYwLCAweDc1LCAweDI1LCAweGZmLCAweDkwLCAweDdlLCAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLAotICAweGY1LCAweDQ0LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ0LCAweGYwLCAweDkwLCAweDdlLAotICAweDA3LCAweGUwLCAweDYwLCAweDJiLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQyLCAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDQyfX0sCi0gezB4MDI0NiwgNjQsIHsgMHg3ZiwgMHg1MywgMHg0MiwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0MiwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwKLSAgMHgxMCwgMHhiNSwgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHhkYiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4ZiwgMHg5MCwKLSAgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MiwgMHg3ZiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4ZiwgMHg5MCwgMHg3ZSwgMHgwYywKLSAgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhmZH19LAotIHsweDAyODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGUsIDB4ZTAsIDB4NjAsCi0gIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDEsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4M2EsIDB4YTMsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4M2MsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MTB9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLAotICAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ0LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LAotICAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDEyLCAweGVkLAotICAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDNlLCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyfX0sCi0gezB4MDMwNiwgNjQsIHsgMHgxMSwgMHhiZiwgMHhlNCwgMHhmNSwgMHgyYSwgMHhmNSwgMHgyOSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZSwKLSAgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiZiwgMHg3NSwgMHgyOSwgMHgwMSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxOCwKLSAgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHhkMiwgMHgwMCwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0NCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OH19LAotIHsweDAzNDYsIDY0LCB7IDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsIDB4MGYsCi0gIDB4NTMsIDB4M2UsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YmYsIDB4NzUsIDB4MmIsIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsCi0gIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YmYsIDB4ZTQsCi0gIDB4ZjUsIDB4MmIsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTJ9fSwKLSB7MHgwMzg2LCA2NCwgeyAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBiLAotICAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDJjLCAweDAxLCAweGU0LCAweGY1LCAweDM4LCAweGQyLCAweDA3LCAweDkwLCAweDdlLAotICAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LCAweGYwLAotICAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDAzLCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDFhLCAweDUyLCAweGU1LCAweDM4fX0sCi0gezB4MDNjNiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOCwgMHgyMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwKLSAgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhkMiwgMHgxMywgMHgxMiwgMHgxMiwgMHhlZCwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwKLSAgMHgxOSwgMHg2NSwgMHgyYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyYSwgMHhkMiwgMHgwNywgMHgxMiwgMHgxMywgMHgzZiwgMHhlZiwgMHg1NCwgMHg4MCwKLSAgMHhmNSwgMHgxOSwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyNiwgMHhkMiwgMHgwNywgMHgzMCwgMHgwZCwgMHgxMSwgMHgxMn19LAotIHsweDA0MDYsIDY0LCB7IDB4MTMsIDB4M2YsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjUsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjUsIDB4ZDIsIDB4MDcsIDB4MjAsCi0gIDB4MWIsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ZWMsIDB4MzAsIDB4MGEsIDB4MTgsIDB4MTIsIDB4MTMsIDB4N2IsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2QsIDB4NDAsCi0gIDB4MDMsIDB4MDIsIDB4MDQsIDB4YWUsIDB4OTAsIDB4N2YsIDB4YzEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDAsIDB4ODAsIDB4NzcsCi0gIDB4MzAsIDB4MDQsIDB4M2IsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4N2IsIDB4ZWYsIDB4YzN9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweDE0LCAweGY1LAotICAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdkLCAweDc1LAotICAweDBkLCAweDQxLCAweDEyLCAweDBkLCAweDEyLCAweGMyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDgwLCAweDM5LCAweDkwLCAweDdmLAotICAweGNjLCAweGUwLCAweDIwLCAweGUxLCAweDMyLCAweDEyLCAweDEzLCAweDdiLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwfX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg3YywgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwKLSAgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3YywgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwZCwgMHgxMiwKLSAgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwNSwKLSAgMHgzNiwgMHgxMiwgMHgxMiwgMHgyZSwgMHg4ZiwgMHgxOSwgMHgxMiwgMHgxMywgMHg4NywgMHg4ZiwgMHgzNywgMHhlNSwgMHgxOSwgMHhjMywgMHg5NX19LAotIHsweDA0YzYsIDY0LCB7IDB4M2IsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MTMsIDB4NjMsIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzcsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGMsCi0gIDB4NWUsIDB4YzIsIDB4MGMsIDB4ZTUsIDB4MTksIDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzcsIDB4MDIsIDB4ZTUsIDB4MzcsIDB4MzAsCi0gIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsCi0gIDB4N2QsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzcsIDB4MTIsIDB4MGYsIDB4OTIsIDB4ZTV9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LAotICAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4LCAweDkwLCAweDdkLCAweDgwLCAweGU1LCAweDM3LCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDgxLCAweDc1LAotICAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgxLCAweDEyLCAweDBkLCAweDM3LCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDkwLAotICAweDdmLCAweGQwLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDA3LCAweDk3LCAweGMyLCAweDA2LCAweGU0fX0sCi0gezB4MDU0NiwgNjQsIHsgMHhmNSwgMHgxOCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwKLSAgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgyMCwgMHgyNCwgMHgyMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKLSAgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgyMCwgMHhlMCwgMHg2MCwgMHg2OCwKLSAgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgyNCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMiwgMHgwOSwgMHg3ZiwgMHgwM319LAotIHsweDA1ODYsIDY0LCB7IDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTIsIDB4MDksIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MzMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MjEsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTEsIDB4MjcsIDB4OTAsIDB4N2UsIDB4MjIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NGQsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MzEsIDB4ZTAsCi0gIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MDksIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTIsIDB4MDksIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLAotICAweGU1LCAweDQxLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLAotICAweDMzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDc1LCAweDJlLCAweGZmLCAweDkwLCAweDdlLCAweDI1LCAweGUwLAotICAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDQ1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwfX0sCi0gezB4MDYwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MywKLSAgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0MywgMHg3ZiwgMHg1MywgMHg0MywgMHhmYywgMHg5MCwgMHg3ZSwgMHgyOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywKLSAgMHg0MywgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg3MywgMHg5MCwgMHg3ZSwgMHgyYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg5OSwKLSAgMHhhZiwgMHg0MywgMHgxMiwgMHgxMSwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MywgMHg3ZiwgMHhhZn19LAotIHsweDA2NDYsIDY0LCB7IDB4NDMsIDB4MTIsIDB4MTEsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MmMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDIsCi0gIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDcsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsCi0gIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MmUsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDEsIDB4ODAsIDB4MDMsCi0gIDB4NTMsIDB4NDcsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjB9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdlLCAweDMyLCAweGUwLCAweGY1LCAweDNiLCAweGEzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGEzLCAweGUwLCAweGY1LCAweDNkLCAweGEzLCAweGUwLAotICAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLAotICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdlLCAweDM2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ1LCAweGJmLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MDZjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHgxMiwgMHgxMywgMHg1NywgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZiwgMHhmZCwKLSAgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgwOSwgMHhlNCwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMiwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwKLSAgMHgzNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgwOSwgMHg3NSwgMHgzMiwKLSAgMHgwMSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMH19LAotIHsweDA3MDYsIDY0LCB7IDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MzksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCi0gIDB4OTAsIDB4N2UsIDB4M2EsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4M2YsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MDksCi0gIDB4NzUsIDB4MzQsIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2IsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDEsIDB4ZTR9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDEyLCAweDA5LCAweGU0LCAweGY1LCAweDM0LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNjLCAweGUwLCAweDYwLCAweDBlLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweGU1LCAweDQxLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAotICAweDNkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBjLCAweDkwLCAweDdlLCAweDNlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDM1LCAweDAxLCAweGU0LAotICAweGY1LCAweDM5LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDEzfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg3NCwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMSwgMHhmMCwKLSAgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOSwgMHgzMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwKLSAgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhjMiwgMHgxMywgMHgxMiwKLSAgMHgxMywgMHg1NywgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgxOSwgMHg2NSwgMHgzMywgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgzMywgMHhkMn19LAotIHsweDA3YzYsIDY0LCB7IDB4MDgsIDB4MTIsIDB4MTMsIDB4OTMsIDB4ZWYsIDB4NTQsIDB4ODAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmYsIDB4ZDIsCi0gIDB4MDgsIDB4MzAsIDB4MGUsIDB4MTEsIDB4MTIsIDB4MTMsIDB4OTMsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDUsCi0gIDB4ODUsIDB4MTksIDB4MmUsIDB4ZDIsIDB4MDgsIDB4MzAsIDB4MWEsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsCi0gIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MTUsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjUsIDB4MTYsIDB4OTB9fSwKLSB7MHgwODA2LCA2NCwgeyAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweGQzLCAweGYwLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA5LCAweDIwLCAweGU1LCAweDBhLCAweDcwLCAweDQwLAotICAweDMwLCAweDA3LCAweDM5LCAweGU1LCAweDM4LCAweDcwLCAweDM1LCAweGMyLCAweDA3LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAotICAweDI0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDlhLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCi0gezB4MDg0NiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhkYiwKLSAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgzOCwgMHgxMCwgMHhlNCwgMHhmNSwgMHgyYywgMHg3NSwgMHgwYSwgMHgwMSwgMHgyMiwKLSAgMHhlNSwgMHgwYSwgMHg2NCwgMHgwMSwgMHg3MCwgMHg0MCwgMHgzMCwgMHgwOCwgMHgzOSwgMHhlNSwgMHgzOSwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwOCwgMHhmNSwKLSAgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMn19LAotIHsweDA4ODYsIDY0LCB7IDB4MGUsIDB4OWEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsCi0gIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MTAsIDB4ZTQsCi0gIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MGEsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MzYsIDB4MzAsIDB4MTQsIDB4MmYsIDB4YzIsCi0gIDB4MTQsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MGUsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDB9fSwKLSB7MHgwOGM2LCA2NCwgeyAweGZhLCAweDEyLCAweDBlLCAweDlhLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLAotICAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA1LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA1LCAweGYwLCAweDc1LCAweDBhLAotICAweDAzLCAweDIyLCAweGU1LCAweDE1LCAweDYwLCAweDMwLCAweDE1LCAweDE1LCAweGU0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAotICAweDE0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDlhLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCi0gezB4MDkwNiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwKLSAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgwYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZSwKLSAgMHhmMiwgMHgwYSwgMHgwOCwgMHgwMCwgMHgwYSwgMHg3YywgMHgwMSwgMHgwYSwgMHhlOCwgMHgwMywgMHgwOSwgMHg0NCwgMHgwNiwgMHgwOSwgMHhmYiwgMHgwOCwKLSAgMHgwOSwgMHhmNSwgMHgwOSwgMHgwOSwgMHhkZCwgMHgwYSwgMHgwOSwgMHhlYywgMHgwYiwgMHgwMCwgMHgwMCwgMHgwYiwgMHgzNywgMHg5MCwgMHg3Zn19LAotIHsweDA5NDYsIDY0LCB7IDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTksIDB4MTQsIDB4NjAsIDB4NjEsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDksIDB4ZDMsIDB4NzQsCi0gIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsCi0gIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksCi0gIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4N2IsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NzQsIDB4NzUsIDB4ODMsIDB4MTl9fSwKLSB7MHgwOTg2LCA2NCwgeyAweGYwLCAweDc1LCAweDgyLCAweDY2LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDE3LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLAotICAweDc0LCAweDEyLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBmLAotICAweDE4LCAweGVhLCAweDQ5LCAweDYwLCAweDBkLCAweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5LCAweDkwLCAweDdmLCAweGQ1LCAweGYwfX0sCi0gezB4MDljNiwgNjQsIHsgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwKLSAgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgwOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwOSwgMHgwMiwgMHgwYiwgMHgzZSwgMHgxMiwgMHgwYiwKLSAgMHg0NiwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMn19LAotIHsweDBhMDYsIDY0LCB7IDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsCi0gIDB4YTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTYsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsCi0gIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LAotICAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LAotICAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyfX0sCi0gezB4MGE4NiwgNjQsIHsgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgxMCwgMHgwMiwgMHgwYiwgMHgzZSwKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwKLSAgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwKLSAgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDBhYzYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsCi0gIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsCi0gIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsCi0gIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MTAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjB9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LAotICAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLAotICAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LAotICAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyfX0sCi0gezB4MGI0NiwgNjQsIHsgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5NSwgMHg3NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxOCwKLSAgMHhmMCwgMHhlNCwgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHhlNCwgMHhmNSwKLSAgMHgyNCwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYX19LAotIHsweDBiODYsIDY0LCB7IDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZTAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2EsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzgsCi0gIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzYsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDksIDB4YzIsIDB4MTMsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzUsIDB4NDQsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsCi0gIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YmYsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4OGYsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQwLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDQ2LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLAotICAweDEyLCAweDExLCAweGJmLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNlLCAweDEyLCAweDExLCAweGJmLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDExfX0sCi0gezB4MGMwNiwgNjQsIHsgMHhiZiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg3OCwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhiZiwgMHg3ZiwgMHgxMywgMHg3ZCwgMHgwMSwKLSAgMHgxMiwgMHgxMSwgMHhiZiwgMHgyMCwgMHgxYiwgMHgwMywgMHgwMiwgMHgwYywgMHhjNSwgMHg3NSwgMHgyZCwgMHgwMSwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwKLSAgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYSwgMHhlNCwgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwKLSAgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhlYSwgMHg3NSwgMHgzYiwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgxMywgMHhmNSwgMHgzN319LAotIHsweDBjNDYsIDY0LCB7IDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MTMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsCi0gIDB4ZjAsIDB4NzUsIDB4NDUsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTIsCi0gIDB4MDksIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDMsIDB4MTIsIDB4MTEsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4N2YsIDB4MDEsCi0gIDB4OGYsIDB4NDEsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjB9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDEyLCAweDA5LCAweGU0LCAweGZmLAotICAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNmLCAweDEyLCAweDEyLCAweDA5LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDEyLCAweDA5LCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDk5LAotICAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDEyLCAweDA5LCAweDdmLCAweDEzLCAweDdkLCAweDAxLCAweDEyLCAweDEyLCAweDA5LCAweGQyfX0sCi0gezB4MGNjNiwgNjQsIHsgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwKLSAgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwKLSAgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwKLSAgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHgwNX19LAotIHsweDBkMDYsIDY0LCB7IDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsCi0gIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjV9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3LAotICAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LAotICAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGQyLCAweDE5LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLCAweGYwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMCwgMHhkMiwgMHhlOCwgMHg0MywKLSAgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwKLSAgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwKLSAgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgxYX19LAotIHsweDBkYzYsIDY0LCB7IDB4MTIsIDB4MTIsIDB4NTMsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTIsIDB4OTAsIDB4N2YsIDB4YTEsCi0gIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MTcsIDB4NjAsIDB4MTAsIDB4MzAsIDB4MTIsIDB4MDUsIDB4ZDIsIDB4MWEsIDB4MTIsCi0gIDB4MDAsIDB4NDYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MTcsIDB4ODAsIDB4MDgsIDB4MzAsIDB4MTIsIDB4MDUsIDB4YzIsIDB4MWEsIDB4MTIsCi0gIDB4MDAsIDB4NDYsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YzIsIDB4MTEsIDB4MTIsIDB4MDksIDB4MjEsIDB4ODAsIDB4ZDYsIDB4MzAsIDB4MTgsIDB4ZDN9fSwKLSB7MHgwZTA2LCA2NCwgeyAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweDlmLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDQ3LAotICAweDAyLCAweDBlLCAweDU1LCAweDAyLCAweDBkLCAweDdkLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LAotICAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLAotICAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwfX0sCi0gezB4MGU0NiwgNjQsIHsgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHgxMiwKLSAgMHhiYSwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwKLSAgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwKLSAgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOH19LAotIHsweDBlODYsIDY0LCB7IDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsCi0gIDB4ZTcsIDB4ODAsIDB4YmUsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsCi0gIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsCi0gIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjV9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LAotICAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLAotICAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGY4LAotICAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LCAweDAxfX0sCi0gezB4MGYwNiwgNjQsIHsgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwKLSAgMHhkZiwgMHg4ZiwgMHgxOCwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3NSwgMHgxYSwgMHhmZiwgMHg3NSwgMHgxYiwgMHgxOSwgMHg3NSwgMHgxYywgMHg4NiwgMHhhYiwKLSAgMHgxYSwgMHhhYSwgMHgxYiwgMHhhOSwgMHgxYywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwZSwgMHhiMywgMHhiNCwgMHgwMywgMHgxZCwgMHhhZiwgMHgxOSwKLSAgMHgwNSwgMHgxOSwgMHhlZiwgMHhiNSwgMHgxOCwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwZSwgMHg5YSwgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZX19LAotIHsweDBmNDYsIDY0LCB7IDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksCi0gIDB4MDAsIDB4MjIsIDB4OGYsIDB4MWEsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWUsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsCi0gIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWMsIDB4MGMsIDB4NzAsCi0gIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MDgsIDB4ZTUsIDB4MDgsIDB4NjB9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDBhLCAweDEyLCAweDEzLCAweDMzLCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LAotICAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLAotICAweDEzLCAweDRiLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLAotICAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LCAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDg3LCAweDhmLCAweDFhLCAweGVmfX0sCi0gezB4MGZjNiwgNjQsIHsgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwKLSAgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwKLSAgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwKLSAgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxMX19LAotIHsweDEwMDYsIDY0LCB7IDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsCi0gIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsCi0gIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsCi0gIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4OTh9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLAotICAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwfX0sCi0gezB4MTA4NiwgNjQsIHsgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNH19LAotIHsweDEwYzYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsCi0gIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGJ9fSwKLSB7MHgxMTA2LCA2NCwgeyAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLAotICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1fX0sCi0gezB4MTE0NiwgNjQsIHsgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwKLSAgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MH19LAotIHsweDExODYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsCi0gIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTV9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLAotICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDEzLCAweDFiLAotICAweDhmLCAweDFhLCAweDEyLCAweDEzLCAweDFiLCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyLCAweDEzLCAweDFiLAotICAweDhmLCAweDFhLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDA3LCAweDEyLCAweDEzLCAweDFiLCAweDhmLCAweDFiLCAweDgwLCAweGU4fX0sCi0gezB4MTIwNiwgNjQsIHsgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwKLSAgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwKLSAgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NX19LAotIHsweDEyNDYsIDY0LCB7IDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NmYsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsCi0gIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsCi0gIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTIsIDB4ZDYsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsCi0gIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4M2UsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YmYsIDB4OTAsIDB4N2Z9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLCAweDExLAotICAweGJmLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNmLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDEyLCAweDA5LCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNmLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLAotICAweDEyLCAweDA5LCAweDIyLCAweDA1LCAweDBlLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDE0LCAweDAzLCAweDAwLCAweDAwfX0sCi0gezB4MTJjNiwgNjQsIHsgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMSwgMHg5YiwgMHgwMCwgMHg4ZSwKLSAgMHgxOCwgMHg4ZiwgMHgxOSwgMHhlNSwgMHgxOSwgMHgxNSwgMHgxOSwgMHhhZSwgMHgxOCwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxOCwgMHg0ZSwgMHg2MCwgMHgwNSwKLSAgMHgxMiwgMHgwZCwgMHg1YywgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwKLSAgMHhmZiwgMHgyMiwgMHg1MywgMHhkOCwgMHhlZiwgMHgzMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwZiwgMHhmNSwgMHgwMCwgMHgwMiwgMHgxM319LAotIHsweDEzMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MGYsIDB4Y2IsIDB4MDAsIDB4MDIsIDB4MTAsIDB4MWMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmfX0sCi0gezB4MTM4NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwZSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHgxMiwgMHgwMCwgMHgwMywgMHgxMiwgMHgwZCwgMHg2ZCwgMHgxMiwgMHgwYiwKLSAgMHg0NiwgMHgyMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTUsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwgIDAsIHsweDAwfX0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhiX2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhiX2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1ZmNhZDQuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjh4Yl9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQ4ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhMjh4Yl9mdy5oCi0KLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTI5eGJfZncuaCBpcwotCi0JCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCi0JCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKLQkJCi0JYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCi0JcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCi0JZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCi0JcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKLQlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLQotCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLQlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0JaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0KLQlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCi0JS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKLQlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAotCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgotCi0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2EyOHhiX2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgwMCwgMHgyZH19LAotIHsweDAwMmQsICA0LCB7IDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweDMwLCAweDA5LCAweDE4LCAweDEyLCAweDEzLCAweDMzLCAweGVmLCAweGMzLCAweDk1LCAweDNjLCAweDQwLCAweDAzLCAweDAyLCAweDAwLCAweGQ4LCAweDkwfX0sCi0gezB4MDA1NiwgMTYsIHsgMHg3ZiwgMHhiZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwMCwgMHg4MCwgMHg3NywgMHgzMCwgMHgwMywgMHgzYiwgMHg5MCwgMHg3Zn19LAotIHsweDAwNjYsIDE2LCB7IDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4NjQsIDB4OTAsIDB4N2V9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDA5LCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwfX0sCi0gezB4MDA4NiwgMTYsIHsgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg0MSwgMHgxMiwgMHgwYywgMHhjY319LAotIHsweDAwOTYsIDE2LCB7IDB4YzIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4ODAsIDB4MzksIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzJ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDEyLCAweDEzLCAweDMzLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDA5fX0sCi0gezB4MDBiNiwgMTYsIHsgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZH19LAotIHsweDAwYzYsIDE2LCB7IDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsIDB4MGMsIDB4Y2MsIDB4ZDIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweGM5LCAweGYwLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweDYwLCAweDEyLCAweDExLCAweGY1LCAweDhmfX0sCi0gezB4MDBlNiwgMTYsIHsgMHgxOSwgMHgxMiwgMHgxMywgMHgzZiwgMHg4ZiwgMHgzNiwgMHhlNSwgMHgxOSwgMHhjMywgMHg5NSwgMHgzYSwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxMywgMHgxYn19LAotIHsweDAwZjYsIDE2LCB7IDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzYsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGIsIDB4NWUsIDB4YzIsIDB4MGIsIDB4ZTUsIDB4MTl9fSwKLSB7MHgwMDM2LCAxMiwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgxMywgMHgwMH19LAotIHsweDAwMDMsIDE2LCB7IDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTB9fSwKLSB7MHgwMDEzLCAxNiwgeyAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwfX0sCi0gezB4MDAyMywgMTAsIHsgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MGUsIDB4MTJ9fSwKLSB7MHgwMTA2LCA2NCwgeyAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM2LCAweDAyLCAweGU1LCAweDM2LCAweDMwLCAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LAotICAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdlLAotICAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM2LCAweDEyLCAweDBmLCAweDVkLCAweGU1LCAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGI3LCAweGYwLAotICAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4fX0sCi0gezB4MDE0NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHg4MCwgMHhlNSwgMHgzNiwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MSwgMHg3NSwgMHgwYywgMHg3ZSwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwKLSAgMHgwYywgMHhmMSwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjZSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwKLSAgMHgyMCwgMHgwNSwgMHgwMywgMHgwMiwgMHgwMywgMHhjMSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OX19LAotIHsweDAxODYsIDY0LCB7IDB4MDAsIDB4MjQsIDB4MDAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsIDB4MTIsIDB4MGUsIDB4ZTQsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsCi0gIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZTAsIDB4NjAsIDB4NjgsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NjAsIDB4MjQsIDB4N2YsIDB4MDEsCi0gIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4N2YsIDB4MDMsIDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4NDMsIDB4NDYsIDB4ODAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MTN9fSwKLSB7MHgwMWM2LCA2NCwgeyAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLCAweDEwLCAweDU0LCAweDkwLCAweDdlLCAweDAyLCAweGUwLCAweGZmLCAweDEyLAotICAweDEwLCAweDdhLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDExLCAweGQwLCAweDdmLCAweDAzLCAweDdkLCAweDA3LAotICAweDEyLCAweDExLCAweGQwLCAweDQzLCAweDQ2LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LAotICAweDQ2LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwfX0sCi0gezB4MDIwNiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwgMHgxMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgxMywKLSAgMHhmMCwgMHg3NSwgMHgyNSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgwNSwgMHhlMCwgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmNSwgMHg0NCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwNywgMHhlMCwKLSAgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MiwgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0MiwgMHg3ZiwgMHg1M319LAotIHsweDAyNDYsIDY0LCB7IDB4NDIsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MDksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDIsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4YzYsCi0gIDB4OTAsIDB4N2UsIDB4MGIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4ZWMsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4YTAsIDB4OTAsIDB4N2UsIDB4MDMsCi0gIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDIsIDB4N2YsIDB4YWYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4YTAsIDB4OTAsIDB4N2UsIDB4MGMsIDB4ZTAsIDB4NjAsCi0gIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMjg2LCA2NCwgeyAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDBlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLAotICAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LAotICAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLCAweDEyLCAweGUwLCAweGY1LCAweDNhLCAweGEzLCAweGUwLCAweDEzLAotICAweDkyLCAweDBkLCAweGEzLCAweGUwLCAweGY1LCAweDNjLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDEwLCAweDgwLCAweDAzfX0sCi0gezB4MDJjNiwgNjQsIHsgMHg1MywgMHg0NiwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgxNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NCwgMHhiZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwKLSAgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHgxMiwgMHgxMywgMHgwZiwgMHhlZiwgMHg1NCwKLSAgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZSwgMHhmZCwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhkMH19LAotIHsweDAzMDYsIDY0LCB7IDB4ZTQsIDB4ZjUsIDB4MmEsIDB4ZjUsIDB4MjksIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsIDB4MDIsIDB4ZTQsCi0gIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4NzUsIDB4MjksIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MTgsIDB4ZTAsIDB4NjAsCi0gIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZDIsCi0gIDB4MDAsIDB4OTAsIDB4N2UsIDB4MTksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsIDB4NDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTN9fSwKLSB7MHgwMzQ2LCA2NCwgeyAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFhLCAweGUwLCAweDYwLCAweDBmLCAweDUzLCAweDNlLAotICAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGQwLCAweDc1LCAweDJiLCAweDAxLCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFiLAotICAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNlLCAweDAxLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGQwLCAweGU0LCAweGY1LCAweDJiLAotICAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFjLCAweGUwLCAweDYwLCAweDBlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1fX0sCi0gezB4MDM4NiwgNjQsIHsgMHg0MCwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYiwgMHg5MCwgMHg3ZSwKLSAgMHgxZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgyYywgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOCwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxZiwgMHhlMCwKLSAgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg3NCwgMHgzNSwKLSAgMHhmMCwgMHhkMiwgMHgwMywgMHhjMiwgMHgwNSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZiwgMHhmMCwgMHgzMCwgMHgxYSwgMHg1NCwgMHhlNSwgMHgzOH19LAotIHsweDAzYzYsIDY0LCB7IDB4NjAsIDB4MDIsIDB4MTUsIDB4MzgsIDB4MjAsIDB4MTMsIDB4NGIsIDB4ZTUsIDB4MTMsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsCi0gIDB4NDAsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4ZDIsIDB4MTMsIDB4MTIsIDB4MTMsIDB4MGYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsCi0gIDB4MTksIDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmEsIDB4ZDIsIDB4MDcsIDB4MTIsIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4ODAsCi0gIDB4NjQsIDB4ODAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjYsIDB4ZDIsIDB4MDcsIDB4MzAsIDB4MGR9fSwKLSB7MHgwNDA2LCA2NCwgeyAweDExLCAweDEyLCAweDEzLCAweDRiLCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LCAweDY1LCAweDI1LCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDI1LCAweGQyLAotICAweDA3LCAweDIwLCAweDFiLCAweDAzLCAweDAyLCAweDA3LCAweGYwLCAweDMwLCAweDBhLCAweDE4LCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweGMzLCAweDk1LAotICAweDNkLCAweDQwLCAweDAzLCAweDAyLCAweDA0LCAweGIwLCAweDkwLCAweDdmLCAweGMxLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDBhLCAweGMyLCAweDAwLAotICAweDgwLCAweDc3LCAweDMwLCAweDA0LCAweDNiLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDEzLCAweDg3fX0sCi0gezB4MDQ0NiwgNjQsIHsgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZCwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwKLSAgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHg0MSwgMHg3NSwgMHgwYywKLSAgMHg3ZCwgMHg3NSwgMHgwZCwgMHg0MSwgMHgxMiwgMHgwZCwgMHgxNiwgMHhjMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg4MCwgMHgzOSwKLSAgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMiwgMHgxMiwgMHgxMywgMHg4NywgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MH19LAotIHsweDA0ODYsIDY0LCB7IDB4MjksIDB4OTAsIDB4N2MsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsCi0gIDB4MTEsIDB4NjAsIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4YzEsIDB4NzUsIDB4MGMsIDB4N2MsIDB4NzUsIDB4MGQsIDB4YzEsIDB4MTIsCi0gIDB4MGQsIDB4MTYsIDB4ZDIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsCi0gIDB4MDIsIDB4MDUsIDB4MzgsIDB4MTIsIDB4MTIsIDB4M2YsIDB4OGYsIDB4MTksIDB4MTIsIDB4MTMsIDB4OTMsIDB4OGYsIDB4MzcsIDB4ZTUsIDB4MTl9fSwKLSB7MHgwNGM2LCA2NCwgeyAweGMzLCAweDk1LCAweDNiLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDM3LCAweDIwLCAweGU3LCAweDAzLAotICAweDMwLCAweDBjLCAweDVlLCAweGMyLCAweDBjLCAweGU1LCAweDE5LCAweDYwLCAweDU4LCAweGI0LCAweDgwLCAweDAzLCAweDQzLCAweDM3LCAweDAyLCAweGU1LAotICAweDM3LCAweDMwLCAweGU3LCAweDI2LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LAotICAweDA4LCAweDdlLCAweDdkLCAweDdmLCAweDgwLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgwLCAweGFmLCAweDM3LCAweDEyLCAweDBmfX0sCi0gezB4MDUwNiwgNjQsIHsgMHg5NiwgMHhlNSwgMHgxOSwgMHgyNSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHhmMCwgMHg4MCwgMHgyNywgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwKLSAgMHgwMywgMHg3NSwgMHgxOSwgMHgzZiwgMHg4NSwgMHgxOSwgMHgwOCwgMHg5MCwgMHg3ZCwgMHg4MCwgMHhlNSwgMHgzNywgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwKLSAgMHg4MSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHg4MSwgMHgxMiwgMHgwZCwgMHgzYiwgMHhlNSwgMHgxOSwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhiYiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkMCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHgwNiwgMHgwMywgMHgwMiwgMHgwNywgMHg5OSwgMHhlNH19LAotIHsweDA1NDYsIDY0LCB7IDB4ZjUsIDB4MTgsIDB4NzQsIDB4YzAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsCi0gIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4N2UsIDB4NzksIDB4MjAsIDB4MjQsIDB4MjAsIDB4ZjksIDB4ZWMsIDB4MzQsIDB4N2UsIDB4ZmEsIDB4ZWYsCi0gIDB4MTIsIDB4MGUsIDB4ZTQsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MjAsIDB4ZDcsIDB4OTAsIDB4N2UsIDB4MjAsIDB4ZTAsIDB4NjAsIDB4NjgsCi0gIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MjQsIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MWEsIDB4N2YsIDB4MDN9fSwKLSB7MHgwNTg2LCA2NCwgeyAweDdkLCAweGNkLCAweDEyLCAweDEyLCAweDFhLCAweDQzLCAweDQ3LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweGU1LCAweDQ3LCAweGYwLCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDgwLCAweDMwLCAweDkwLCAweDdlLCAweDIxLCAweGUwLCAweGZmLCAweDEyLAotICAweDExLCAweDM4LCAweDkwLCAweDdlLCAweDIyLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDVlLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDMxLCAweGUwLAotICAweGZkLCAweDEyLCAweDEyLCAweDFhLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDEyLCAweDFhLCAweDQzLCAweDQ3LCAweDgwLCAweDkwfX0sCi0gezB4MDVjNiwgNjQsIHsgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwKLSAgMHhlNSwgMHg0MSwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg3MCwgMHgwNiwgMHg5MCwgMHg3ZSwKLSAgMHgzMywgMHhlMCwgMHg3MCwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgzMywgMHhmMCwgMHg3NSwgMHgyZSwgMHhmZiwgMHg5MCwgMHg3ZSwgMHgyNSwgMHhlMCwKLSAgMHg2MCwgMHgxMiwgMHhhMywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmNSwgMHg0NSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MH19LAotIHsweDA2MDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDUsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MjcsIDB4ZTAsIDB4NjAsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDMsCi0gIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDMsIDB4N2YsIDB4NTMsIDB4NDMsIDB4ZmMsIDB4OTAsIDB4N2UsIDB4MjksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDMsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4ODQsIDB4OTAsIDB4N2UsIDB4MmIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4YWEsCi0gIDB4YWYsIDB4NDMsIDB4MTIsIDB4MTEsIDB4MTIsIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NTMsIDB4NDMsIDB4N2YsIDB4YWZ9fSwKLSB7MHgwNjQ2LCA2NCwgeyAweDQzLCAweDEyLCAweDExLCAweDEyLCAweDkwLCAweDdlLCAweDJjLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAyLAotICAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGZkLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LAotICAweGYwLCAweDkwLCAweDdlLCAweDJlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDAxLCAweDgwLCAweDAzLAotICAweDUzLCAweDQ3LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwfX0sCi0gezB4MDY4NiwgNjQsIHsgMHg5MCwgMHg3ZSwgMHgzMiwgMHhlMCwgMHhmNSwgMHgzYiwgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzZCwgMHhhMywgMHhlMCwKLSAgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHg0NywgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMCwgMHg5MCwgMHg3ZSwgMHgzNiwgMHhlMCwgMHg2MCwgMHgzMiwgMHg1MywgMHg0NSwgMHhiZiwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDA2YzYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4MTIsIDB4MTMsIDB4NjMsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4M2YsIDB4ZmQsCi0gIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MWEsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsCi0gIDB4MzcsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MWEsIDB4NzUsIDB4MzIsCi0gIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4MzgsIDB4ZTAsIDB4NjAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjB9fSwKLSB7MHgwNzA2LCA2NCwgeyAweGU1LCAweDQxLCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGQyLCAweDAwLCAweDkwLCAweDdlLCAweDM5LCAweGUwLCAweDYwLCAweDExLCAweDQzLAotICAweDQ1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAotICAweDkwLCAweDdlLCAweDNhLCAweGUwLCAweDYwLCAweDBmLCAweDUzLCAweDNmLCAweGZlLCAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDEyLCAweDFhLAotICAweDc1LCAweDM0LCAweDAxLCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNiLCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNmLCAweDAxLCAweGU0fX0sCi0gezB4MDc0NiwgNjQsIHsgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHhlNCwgMHhmNSwgMHgzNCwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzYywgMHhlMCwgMHg2MCwgMHgwZSwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHhlNSwgMHg0MSwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwKLSAgMHgzZCwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYywgMHg5MCwgMHg3ZSwgMHgzZSwgMHhlMCwgMHg2MCwgMHgwOCwgMHg3NSwgMHgzNSwgMHgwMSwgMHhlNCwKLSAgMHhmNSwgMHgzOSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzZiwgMHhlMCwgMHg2MCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxM319LAotIHsweDA3ODYsIDY0LCB7IDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4YzIsIDB4MDYsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4ZDEsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4NTQsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDIsIDB4MTUsIDB4MzksIDB4MzAsIDB4MTMsIDB4NGIsIDB4ZTUsIDB4MTMsCi0gIDB4ZDMsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4MTUsIDB4MTMsIDB4ODAsIDB4NDAsIDB4NzUsIDB4MTMsIDB4MGEsIDB4MzAsIDB4MWIsIDB4MDIsIDB4YzIsCi0gIDB4MTMsIDB4MTIsIDB4MTMsIDB4NjMsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MzMsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTl9fSwKLSB7MHgwN2M2LCA2NCwgeyAweDMzLCAweGQyLCAweDA4LCAweDEyLCAweDEzLCAweDlmLCAweGVmLCAweDU0LCAweDgwLCAweDY0LCAweDgwLCAweGY1LCAweDE5LCAweDY1LCAweDJmLCAweDYwLCAweDA1LAotICAweDg1LCAweDE5LCAweDJmLCAweGQyLCAweDA4LCAweDMwLCAweDBlLCAweDExLCAweDEyLCAweDEzLCAweDlmLCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDE5LAotICAweDY1LCAweDJlLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDJlLCAweGQyLCAweDA4LCAweDMwLCAweDFhLCAweDJhLCAweDkwLCAweDdmLCAweGQyLCAweGUwLAotICAweDIwLCAweGUxLCAweDIzLCAweDkwLCAweDdiLCAweDQwLCAweGUwLCAweDYwLCAweDA5LCAweGUwLCAweGY1LCAweDE1LCAweDkwLCAweDdiLCAweDQyfX0sCi0gezB4MDgwNiwgNjQsIHsgMHhlMCwgMHhmNSwgMHgxNiwgMHg5MCwgMHg3YiwgMHg0MSwgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywKLSAgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwOSwgMHgyNCwKLSAgMHhlNSwgMHgwYSwgMHg3MCwgMHg0MCwgMHgzMCwgMHgwNywgMHgzOSwgMHhlNSwgMHgzOCwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwNywgMHhmNSwgMHgxOCwgMHg3ZSwKLSAgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg5ZX19LAotIHsweDA4NDYsIDY0LCB7IDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsCi0gIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzgsIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MmMsCi0gIDB4NzUsIDB4MGEsIDB4MDEsIDB4MjIsIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDEsIDB4NzAsIDB4NDAsIDB4MzAsIDB4MDgsIDB4MzksIDB4ZTUsIDB4MzksIDB4NzAsCi0gIDB4MzUsIDB4YzIsIDB4MDgsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWV9fSwKLSB7MHgwODg2LCA2NCwgeyAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDllLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LAotICAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLAotICAweDc1LCAweDM5LCAweDEwLCAweGU0LCAweGY1LCAweDM1LCAweDc1LCAweDBhLCAweDAyLCAweDIyLCAweGU1LCAweDBhLCAweDY0LCAweDAyLCAweDcwLCAweDM2LAotICAweDMwLCAweDE0LCAweDJmLCAweGMyLCAweDE0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDBlLCAweDI1LCAweDE4fX0sCi0gezB4MDhjNiwgNjQsIHsgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg5ZSwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwKLSAgMHgwNSwgMHhmMCwgMHg3NSwgMHgwYSwgMHgwMywgMHgyMiwgMHhlNSwgMHgxNSwgMHg2MCwgMHgzMCwgMHgxNSwgMHgxNSwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3ZSwKLSAgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgxNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwZSwgMHg5ZX19LAotIHsweDA5MDYsIDY0LCB7IDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsCi0gIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGEsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGUsIDB4ZjYsIDB4MGEsIDB4MGMsIDB4MDAsIDB4MGEsIDB4ODAsIDB4MDEsIDB4MGEsIDB4ZWMsIDB4MDMsIDB4MDksIDB4NDgsCi0gIDB4MDYsIDB4MDksIDB4ZmYsIDB4MDgsIDB4MDksIDB4ZjksIDB4MDksIDB4MDksIDB4ZTEsIDB4MGEsIDB4MDksIDB4ZjAsIDB4MGIsIDB4MDAsIDB4MDB9fSwKLSB7MHgwOTQ2LCA2NCwgeyAweDBiLCAweDNiLCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDE0LCAweDYwLCAweDYxLCAweDI0LCAweDAyLCAweDYwLCAweDAzLAotICAweDAyLCAweDA5LCAweGQ3LCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLAotICAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLAotICAweDgyLCAweDc1LCAweDgzLCAweDE5LCAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweDdiLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyfX0sCi0gezB4MDk4NiwgNjQsIHsgMHg3NCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg2NiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywKLSAgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwKLSAgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlYSwKLSAgMHhlMCwgMHhmZiwgMHgxMiwgMHgwZiwgMHgxYywgMHhlYSwgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOX19LAotIHsweDA5YzYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MDksIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MDksIDB4MDIsCi0gIDB4MGIsIDB4NDIsIDB4MTIsIDB4MGIsIDB4NGEsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTB9fSwKLSB7MHgwYTA2LCA2NCwgeyAweDdmLCAweGI1LCAweGYwLCAweDAyLCAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLAotICAweDI0LCAweDAyLCAweDcwLCAweDViLCAweGEyLCAweDEwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDE2LCAweGU0LCAweDMzLAotICAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLAotICAweDQyLCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyfX0sCi0gezB4MGE0NiwgNjQsIHsgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywKLSAgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwKLSAgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwKLSAgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZX19LAotIHsweDBhODYsIDY0LCB7IDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsCi0gIDB4MTAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsCi0gIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsCi0gIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwYWM2LCA2NCwgeyAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LAotICAweDA3LCAweDJmLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLAotICAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLAotICAweDRhLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLCAweDEwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0fX0sCi0gezB4MGIwNiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwKLSAgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMH19LAotIHsweDBiNDYsIDY0LCB7IDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsCi0gIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTgsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4ZGUsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MjQsIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTgsIDB4Zjl9fSwKLSB7MHgwYjg2LCA2NCwgeyAweGU0LCAweDM0LCAweDAwLCAweGZhLCAweGU0LCAweDEyLCAweDBlLCAweGU0LCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGVhLCAweDc1LCAweDNhLAotICAweDAxLCAweGU0LCAweGY1LCAweDM4LCAweGY1LCAweDEzLCAweGY1LCAweDM2LCAweGMyLCAweDA3LCAweGMyLCAweDBiLCAweGMyLCAweDA1LCAweGMyLCAweDAwLAotICAweGMyLCAweDA5LCAweGMyLCAweDEzLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDc1LCAweDQ0LCAweDAzLCAweDkwLCAweGMwLCAweDAwLAotICAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGQwLCAweDdmLCAweDEwLCAweDhmLCAweDQyLCAweDEyfX0sCi0gezB4MGJjNiwgNjQsIHsgMHgxMCwgMHhhMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHg4ZiwgMHg0MCwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NSwgMHg0NiwgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwKLSAgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhkMCwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZSwgMHgxMiwKLSAgMHgxMSwgMHhkMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNX19LAotIHsweDBjMDYsIDY0LCB7IDB4N2QsIDB4N2YsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4ODksIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4ZDAsCi0gIDB4N2YsIDB4MTMsIDB4N2QsIDB4MDksIDB4MTIsIDB4MTEsIDB4ZDAsIDB4MjAsIDB4MWIsIDB4MDMsIDB4MDIsIDB4MGMsIDB4YzksIDB4NzUsIDB4MmQsIDB4MDEsCi0gIDB4NzUsIDB4MTgsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsCi0gIDB4MGUsIDB4ZTQsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2IsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4Mzl9fSwKLSB7MHgwYzQ2LCA2NCwgeyAweGY1LCAweDEzLCAweGY1LCAweDM3LCAweGMyLCAweDA4LCAweGMyLCAweDBjLCAweGMyLCAweDA2LCAweGMyLCAweDAwLCAweGMyLCAweDBhLCAweGMyLCAweDEzLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDc1LCAweDQ1LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLAotICAweGU0LCAweGZkLCAweDEyLCAweDEyLCAweDFhLCAweDdmLCAweDEwLCAweDhmLCAweDQzLCAweDEyLCAweDExLCAweDEyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBhLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQxLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MGM4NiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg3NSwgMHg0NywgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwKLSAgMHgxMiwgMHgxYSwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHg3ZiwKLSAgMHgwMSwgMHgxMiwgMHgxMiwgMHhhYSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMiwgMHgxYSwgMHg3ZiwgMHgxMywgMHg3ZCwgMHgwOX19LAotIHsweDBjYzYsIDY0LCB7IDB4MTIsIDB4MTIsIDB4MWEsIDB4ZDIsIDB4MTIsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsCi0gIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsCi0gIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsCi0gIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTB9fSwKLSB7MHgwZDA2LCA2NCwgeyAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLAotICAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLAotICAweGY3LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1fX0sCi0gezB4MGQ0NiwgNjQsIHsgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywKLSAgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwKLSAgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwKLSAgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHhkMiwgMHgxOSwgMHg5MCwgMHg3ZiwgMHg5Mn19LAotIHsweDBkODYsIDY0LCB7IDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsCi0gIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsCi0gIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MGQsIDB4ZjB9fSwKLSB7MHgwZGM2LCA2NCwgeyAweGQyLCAweGFmLCAweGQyLCAweDFhLCAweDEyLCAweDEyLCAweDY0LCAweGMyLCAweDExLCAweGU0LCAweGY1LCAweDBiLCAweGY1LCAweDEzLCAweGMyLCAweDE3LCAweGMyLAotICAweDEyLCAweDkwLCAweDdmLCAweGExLCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDE3LCAweDYwLCAweDEwLCAweDMwLCAweDEyLAotICAweDA1LCAweGQyLCAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDE3LCAweDgwLCAweDA4LCAweDMwLCAweDEyLAotICAweDA1LCAweGMyLCAweDFhLCAweDEyLCAweDAwLCAweDQ2LCAweDMwLCAweDExLCAweDA3LCAweGMyLCAweDExLCAweDEyLCAweDA5LCAweDI1LCAweDgwfX0sCi0gezB4MGUwNiwgNjQsIHsgMHhkNiwgMHgzMCwgMHgxOCwgMHhkMywgMHhjMiwgMHgxOCwgMHgxMiwgMHgxMywgMHhhYiwgMHg4MCwgMHhjYywgMHgyMiwgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwKLSAgMHhmZCwgMHg3NSwgMHg4MSwgMHg0NywgMHgwMiwgMHgwZSwgMHg1OSwgMHgwMiwgMHgwZCwgMHg4MSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywKLSAgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwKLSAgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MH19LAotIHsweDBlNDYsIDY0LCB7IDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsCi0gIDB4NDAsIDB4ODAsIDB4OTAsIDB4MTIsIDB4Y2IsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsCi0gIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsCi0gIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTN9fSwKLSB7MHgwZTg2LCA2NCwgeyAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLAotICAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLAotICAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLAotICAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyfX0sCi0gezB4MGVjNiwgNjQsIHsgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwKLSAgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwKLSAgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwKLSAgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhM319LAotIHsweDBmMDYsIDY0LCB7IDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsCi0gIDB4YTMsIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4OGYsIDB4MTgsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4NzUsIDB4MWEsIDB4ZmYsIDB4NzUsIDB4MWIsIDB4MTksCi0gIDB4NzUsIDB4MWMsIDB4ODYsIDB4YWIsIDB4MWEsIDB4YWEsIDB4MWIsIDB4YTksIDB4MWMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MGUsIDB4YjcsIDB4YjQsCi0gIDB4MDMsIDB4MWQsIDB4YWYsIDB4MTksIDB4MDUsIDB4MTksIDB4ZWYsIDB4YjUsIDB4MTgsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MGUsIDB4OWUsIDB4N2V9fSwKLSB7MHgwZjQ2LCA2NCwgeyAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDFhLCAweGZmLCAweGY1LCAweDFiLCAweDg5LCAweDFjLCAweDgwLCAweGQ0LCAweDdiLAotICAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDhmLCAweDFhLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLAotICAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweDA1LCAweDBkLCAweGU1LAotICAweDBkLCAweGFjLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1fX0sCi0gezB4MGY4NiwgNjQsIHsgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MCwgMHgwYSwgMHgxMiwgMHgxMywgMHgzZiwgMHg4ZiwgMHgxYSwgMHhlZiwgMHg0MiwgMHgzNiwgMHg4MCwgMHhjYSwgMHgyMiwgMHg4ZiwKLSAgMHgxYSwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhZSwgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywKLSAgMHhlNSwgMHgxYSwgMHhmMCwgMHgxMiwgMHgxMywgMHg1NywgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhYywgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywKLSAgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MCwgMHgwYSwgMHgxMiwgMHgxM319LAotIHsweDBmYzYsIDY0LCB7IDB4OTMsIDB4OGYsIDB4MWEsIDB4ZWYsIDB4NDIsIDB4MzcsIDB4ODAsIDB4Y2EsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsCi0gIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsCi0gIDB4MjcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4ZTQsIDB4OTAsCi0gIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgxMDA2LCA2NCwgeyAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDExLAotICAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLAotICAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LAotICAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4fX0sCi0gezB4MTA0NiwgNjQsIHsgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMH19LAotIHsweDEwODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsCi0gIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgxMGM2LCA2NCwgeyAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LAotICAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLAotICAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLAotICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4fX0sCi0gezB4MTEwNiwgNjQsIHsgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwKLSAgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwKLSAgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDExNDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsCi0gIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2Z9fSwKLSB7MHgxMTg2LCA2NCwgeyAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDBlLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBifX0sCi0gezB4MTFjNiwgNjQsIHsgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwKLSAgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywKLSAgMHgyNywgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMn19LAotIHsweDEyMDYsIDY0LCB7IDB4MTMsIDB4MjcsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4MjcsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsCi0gIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MWEsIDB4MTIsIDB4MTN9fSwKLSB7MHgxMjQ2LCA2NCwgeyAweDdiLCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyLCAweDEzLCAweDdiLCAweDhmLCAweDFhLCAweGU1LCAweDFhLCAweDY1LAotICAweDFiLCAweDYwLCAweDA3LCAweDEyLCAweDEzLCAweDdiLCAweDhmLCAweDFiLCAweDgwLCAweGU4LCAweGFmLCAweDFhLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LAotICAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDFhLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLAotICAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDEyLCAweGU3LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0fX0sCi0gezB4MTI4NiwgNjQsIHsgMHgwNCwgMHhmMCwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZSwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMSwgMHhkMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZSwgMHg0NCwgMHg4MCwgMHhmZCwgMHgxMiwKLSAgMHgxMSwgMHhkMCwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZiwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMiwgMHgxYSwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgzZiwgMHg0NCwgMHg4MH19LAotIHsweDEyYzYsIDY0LCB7IDB4ZmQsIDB4MTIsIDB4MTIsIDB4MWEsIDB4MjIsIDB4MDUsIDB4MGUsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MTQsIDB4MDMsIDB4MDAsIDB4MDAsCi0gIDB4YzEsIDB4MTEsIDB4YzEsIDB4MTgsIDB4YzEsIDB4OTUsIDB4YzEsIDB4MTAsIDB4YzEsIDB4MTYsIDB4MDEsIDB4MGEsIDB4MDAsIDB4YzEsIDB4OWIsIDB4MDAsCi0gIDB4OGUsIDB4MTgsIDB4OGYsIDB4MTksIDB4ZTUsIDB4MTksIDB4MTUsIDB4MTksIDB4YWUsIDB4MTgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTgsIDB4NGUsIDB4NjAsCi0gIDB4MDUsIDB4MTIsIDB4MGQsIDB4NjAsIDB4ODAsIDB4ZWUsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MTAsIDB4MDYsIDB4MDAsIDB4MDIsIDB4MTN9fSwKLSB7MHgxMzA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDAwLCAweDAzLCAweDAwLCAweDAyLCAweDEwLCAweDJkLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwfX0sCi0gezB4MTM0NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZn19LAotIHsweDEzODYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MGQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MTIsIDB4MGYsIDB4Y2YsIDB4MTIsIDB4MGQsIDB4NzEsIDB4MTIsIDB4MGIsIDB4NGEsIDB4MjIsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxM2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTRjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTcwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTdjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTg4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4MDB9fSwKLSB7MHgxOTA2LCA2NCwgeyAweDAwLCAweDQwLCAweGNkLCAweDA2LCAweDEwLCAweDAxLCAweDAwLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDc0LCAweDAwLCAweDAxLAotICAweDAxLCAweDAwLCAweGEwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBlLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLAotICAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA0LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA1LCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MTk0NiwgNjQsIHsgMHgwMCwgMHgwNywgMHgwNSwgMHgwNiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwKLSAgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwKLSAgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NSwgMHgwMiwgMHg0MCwgMHgwMCwKLSAgMHgwMSwgMHgwNywgMHgwNSwgMHg4NiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4NywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMX19LAotIHsweDE5ODYsIDY0LCB7IDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4NDgsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsCi0gIDB4MDAsIDB4NmUsIDB4MDAsIDB4MmMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzYsCi0gIDB4MDAsIDB4NjksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NjYsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzksIDB4MDB9fSwKLSB7MHgxOWM2LCA2NCwgeyAweDczLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDM2LCAweDAzLCAweDRiLCAweDAwLCAweDY1LAotICAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLAotICAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLAotICAweDAwLCAweDIwLCAweDAwLCAweDQxLCAweDAwLCAweDY0LCAweDAwLCAweDYxLCAweDAwLCAweDcwLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwfX0sCi0gezB4MWEwNiwgIDQsIHsgMHg3MiwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweGZmZmYsICAwLCB7MHgwMH19Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhNDl3X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMyNGRhY2UuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhNDl3X2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NjQgKzAsMCBAQAotLyoga2V5c3Bhbl91c2E0OXdfZncuaAotCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2E0OXdfZncuaCBpcwotCi0JCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCi0JCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKLQkJCi0JYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCi0JcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCi0JZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCi0JcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKLQlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLQotCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLQlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0JaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0KLQlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCi0JS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKLQlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAotCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgotCi0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2E0OXdfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDE4LCAweGZifX0sCi0gezB4MDAzNiwgMTIsIHsgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMn19LAotIHsweDAwNDYsIDE2LCB7IDB4ZTQsIDB4ZmYsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4ZTUsIDB4MTV9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDI0LCAweDA0LCAweGZkLCAweGU0LCAweDM1LCAweDE0LCAweGZhLCAweGE5LCAweDA1LCAweDdiLCAweDAxLCAweGVmLCAweDdjLCAweDAwLCAweDI5LCAweGY5fX0sCi0gezB4MDA2NiwgMTYsIHsgMHhlYywgMHgzYSwgMHhmYSwgMHhlZSwgMHgxMiwgMHgxMSwgMHhmMSwgMHgwZiwgMHhiZiwgMHgyMiwgMHhkNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNSwgMHhmNX19LAotIHsweDAwNzYsIDE2LCB7IDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MzQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDl9fSwKLSB7MHgwMDg2LCAxNiwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDBlLCAweGU1LCAweDE1LCAweDI0LCAweDBhLCAweGY1LCAweDgyfX0sCi0gezB4MDA5NiwgMTYsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxOCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg0NywgMHhlNX19LAotIHsweDAwYTYsIDE2LCB7IDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4Y2YsIDB4ZjAsIDB4ODAsIDB4NDF9fSwKLSB7MHgwMGI2LCAxNiwgeyAweGU1LCAweDE1LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE2LCAweDc2fX0sCi0gezB4MDBjNiwgMTYsIHsgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgwMCwgMHgwM319LAotIHsweDAwZDYsIDE2LCB7IDB4N2YsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MTJ9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDE2LCAweDQ3LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDMwfX0sCi0gezB4MDBmNiwgMTYsIHsgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMH19LAotIHsweDAwMDMsIDE2LCB7IDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzR9fSwKLSB7MHgwMDEzLCAxNiwgeyAweDAxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0fX0sCi0gezB4MDAyMywgMTYsIHsgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMn19LAotIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MWIsIDB4MDB9fSwKLSB7MHgwMDAwLCAgMywgeyAweDAyLCAweDEwLCAweDk1fX0sCi0gezB4MDEwNiwgNjQsIHsgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgzMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwY319LAotIHsweDAxNDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NGYsIDB4ZTV9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDE1LCAweDI0LCAweDE3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMyLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LAotICAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGU0LCAweGZmLCAweGU1LCAweDE1LAotICAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZkLCAweDEyLCAweDE2LCAweDQ3LCAweGU1fX0sCi0gezB4MDFjNiwgNjQsIHsgMHgxNSwgMHgyNCwgMHgwZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmYywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwZn19LAotIHsweDAyMDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4ZTcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4MTcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsIDB4ZjUsIDB4ODIsIDB4ZTR9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE1LCAweGI3LCAweGU1LCAweDE1LCAweDI0LCAweDE0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDQ0LCAweGU1LCAweDE1LCAweDI0LCAweDE1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLAotICAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1fX0sCi0gezB4MDI4NiwgNjQsIHsgMHg4MywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHg0NCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNH19LAotIHsweDAyYzYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTYsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzUsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwMzA2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDE3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDMwLCAweGUwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1fX0sCi0gezB4MDM0NiwgNjQsIHsgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwKLSAgMHgxNSwgMHgyNCwgMHgxOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgxMCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OH19LAotIHsweDAzODYsIDY0LCB7IDB4NDEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCi0gIDB4NmIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTR9fSwKLSB7MHgwM2M2LCA2NCwgeyAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAxLCAweGYwLCAweDEyLCAweDAwLAotICAweDM2LCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweGZmLCAweGYwLCAweGZkLCAweGU0LCAweGZmLCAweDEyLCAweDE2LCAweDQ3LCAweGU1LCAweDE1LAotICAweDI0LCAweDJjLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDJifX0sCi0gezB4MDQwNiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgxYiwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwZSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNiwgMHg0NywgMHhlNX19LAotIHsweDA0NDYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MmIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4NzAsIDB4MGUsIDB4ZTUsCi0gIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MmEsIDB4OTAsIDB4NzgsIDB4NDEsCi0gIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKLSB7MHgwNDg2LCA2NCwgeyAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGVmLCAweDYwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDFkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI3LCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1fX0sCi0gezB4MDRjNiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxZSwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNiwgMHg0NywKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHhlNX19LAotIHsweDA1MDYsIDY0LCB7IDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MGUsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjcsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsCi0gIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NDcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweGU0LCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDIwLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDcwLCAweDBlLCAweGU1LCAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLAotICAweDE4LCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDIxLCAweGY1LCAweDgyfX0sCi0gezB4MDU4NiwgNjQsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHg2MCwgMHgxZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMH19LAotIHsweDA1YzYsIDY0LCB7IDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCi0gIDB4MDMsIDB4MTIsIDB4MTgsIDB4ODUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4NjAsIDB4MWIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDgsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTYsIDB4ZjQsIDB4ZmUsIDB4ZWYsIDB4NWUsIDB4ZjAsIDB4ZTUsIDB4MTV9fSwKLSB7MHgwNjA2LCA2NCwgeyAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDE2LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LAotICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDQ1LCAweDE2LAotICAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDEyLCAweDAzLCAweDA3LCAweDgzLCAweDAwLCAweDA3LCAweGY3LCAweDAxLCAweDA4LAotICAweDYzLCAweDAzLCAweDA2LCAweDRjLCAweDA2LCAweDA3LCAweDc0LCAweDA4LCAweDA3LCAweDY4LCAweDA5LCAweDA3LCAweDUwLCAweDBhLCAweDA3fX0sCi0gezB4MDY0NiwgNjQsIHsgMHg1ZiwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwOCwgMHhiMiwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxYywgMHgxNCwgMHg3MCwgMHgwMywKLSAgMHgwMiwgMHgwNiwgMHhmZSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNywgMHg0NiwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwKLSAgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwKLSAgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgzMCwgMHhlMCwgMHgwNCwgMHg3ZiwgMHgwMywgMHg4MH19LAotIHsweDA2ODYsIDY0LCB7IDB4MDIsIDB4N2YsIDB4MDIsIDB4NzUsIDB4ODIsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NmQsIDB4NzUsIDB4ODMsIDB4MTksCi0gIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NjYsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NWYsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsCi0gIDB4ODIsIDB4NTgsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDQsIDB4N2YsIDB4NjQsIDB4ODAsCi0gIDB4MDIsIDB4N2YsIDB4MzIsIDB4NzUsIDB4ODIsIDB4MWEsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWYsIDB4ZTB9fSwKLSB7MHgwNmM2LCA2NCwgeyAweGZlLCAweDkwLCAweDdmLCAweGVlLCAweGUwLCAweDdjLCAweDAwLCAweDI0LCAweDAwLCAweGY1LCAweDE5LCAweGVjLCAweDNlLCAweGY1LCAweDE4LCAweDc1LCAweDMzLAotICAweDE5LCAweDc1LCAweDM0LCAweDEyLCAweDc1LCAweDgyLCAweDE0LCAweDc1LCAweDgzLCAweDE5LCAweGUwLCAweDc1LCAweDI3LCAweDAwLCAweGY1LCAweDI4LAotICAweGQzLCAweGU1LCAweDI4LCAweDk1LCAweDE5LCAweGU1LCAweDI3LCAweDk1LCAweDE4LCAweDQwLCAweDA2LCAweDg1LCAweDE4LCAweDI3LCAweDg1LCAweDE5LAotICAweDI4LCAweDEyLCAweDEzLCAweDEyLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDE0LCAweDJifX0sCi0gezB4MDcwNiwgNjQsIHsgMHhlYSwgMHg0OSwgMHg2MCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMCwgMHg3NSwgMHgxOCwgMHgwMCwgMHhmNSwgMHgxOSwgMHhhZSwgMHgwMiwgMHhhZiwgMHgwMSwKLSAgMHg4ZSwgMHgzMywgMHg4ZiwgMHgzNCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHg4ZSwgMHgyNywgMHhmNSwgMHgyOCwKLSAgMHhkMywgMHg5NSwgMHgxOSwgMHhlNSwgMHgyNywgMHg5NSwgMHgxOCwgMHg0MCwgMHgwNiwgMHg4NSwgMHgxOCwgMHgyNywgMHg4NSwgMHgxOSwgMHgyOCwgMHgxMiwKLSAgMHgxMywgMHgxMiwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOX19LAotIHsweDA3NDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MjUsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjUsIDB4MDIsIDB4MDgsCi0gIDB4YjksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjIsIDB4MTIsIDB4MGEsIDB4YjgsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4MDAsCi0gIDB4ZTUsIDB4MjIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4ZTh9fSwKLSB7MHgwNzg2LCA2NCwgeyAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLCAweGEyLCAweDAwLCAweGU0LCAweDMzLCAweGZmLAotICAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDA2LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLAotICAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLAotICAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwfX0sCi0gezB4MDdjNiwgNjQsIHsgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwKLSAgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwKLSAgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwOCwgMHhiOX19LAotIHsweDA4MDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MDAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCi0gIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsCi0gIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmZ9fSwKLSB7MHgwODQ2LCA2NCwgeyAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLAotICAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLAotICAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRhLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0LCAweGQyLAotICAweDAwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhfX0sCi0gezB4MDg4NiwgNjQsIHsgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwKLSAgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwKLSAgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwgMHhlNSwgMHgxMSwgMHg1NCwgMHgwZiwgMHg3MH19LAotIHsweDA4YzYsIDY0LCB7IDB4MDMsIDB4MDIsIDB4MDksIDB4YjIsIDB4MTIsIDB4MTYsIDB4YTUsIDB4ZWYsIDB4MjAsIDB4ZTEsIDB4NzUsIDB4MTIsIDB4MTcsIDB4MDMsIDB4ZWYsIDB4MTQsIDB4ZjUsCi0gIDB4MTksIDB4MTIsIDB4MTgsIDB4Y2MsIDB4ZWYsIDB4MjUsIDB4MTksIDB4ZmYsIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4YzMsIDB4ZWYsIDB4OTQsIDB4ODAsIDB4ZWUsCi0gIDB4NjQsIDB4ODAsIDB4OTQsIDB4ODAsIDB4NTAsIDB4NTksIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsCi0gIDB4ZmYsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwOTA2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LAotICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweGUyLCAweDEyLCAweGU1LCAweDE5LCAweDYwLCAweDBlLCAweGY1LCAweDIzLCAweGVmLCAweDI0LAotICAweDAxLCAweGY1LCAweDJkLCAweGU0LCAweDNlLCAweGY1LCAweDJjLCAweDEyLCAweDE0LCAweGFkLCAweGU0LCAweGZmLCAweDEyLCAweDE0LCAweGUzfX0sCi0gezB4MDk0NiwgNjQsIHsgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlNywgMHg1ZCwgMHgxMiwgMHgxOCwKLSAgMHhjYywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZSwgMHhlZiwgMHhjMywKLSAgMHg5ZSwgMHg1MCwgMHg0OCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwKLSAgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3Yn19LAotIHsweDA5ODYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsCi0gIDB4MTMsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MjQsIDB4ODAsIDB4MDMsIDB4MTIsIDB4MTIsIDB4YTEsIDB4MTIsIDB4MTYsIDB4ZDQsIDB4ZWYsIDB4MzAsCi0gIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGEsIDB4YjcsIDB4MTIsIDB4MTcsIDB4ZDIsIDB4OGYsIDB4MTksIDB4MTIsIDB4MTgsIDB4ZDgsIDB4ZTUsIDB4MTV9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM1LCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE5LCAweGMzLCAweDlmLCAweDUwLCAweDI4LCAweDEyLCAweDE4LCAweGI0LAotICAweGVmLCAweDMwLCAweGUwLCAweDIxLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLAotICAweDIwLCAweGU3LCAweDEyLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwfX0sCi0gezB4MGEwNiwgNjQsIHsgMHgyMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwYSwgMHhiNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHgxOSwgMHg3MCwgMHgwMywgMHgwMiwgMHgwYSwgMHhiNywgMHhiNCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgzMCwgMHhlNywgMHgyOSwgMHhlNSwgMHgxOX19LAotIHsweDBhNDYsIDY0LCB7IDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MjMsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsCi0gIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4OGMsIDB4MmMsIDB4ZjUsIDB4MmQsIDB4MTIsIDB4MTMsIDB4ZGQsIDB4ZTUsIDB4MTksIDB4MjUsCi0gIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4MTksIDB4MjIsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4M2YsCi0gIDB4ODUsIDB4MTksIDB4MjMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKLSB7MHgwYTg2LCA2NCwgeyAweGZmLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGY1LCAweDgyLCAweDhjLCAweDgzLAotICAweGVmLCAweGYwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweDI0LCAweDAxLAotICAweGY1LCAweDJkLCAweGU0LCAweDNlLCAweGY1LCAweDJjLCAweDEyLCAweDE0LCAweDZjLCAweGU1LCAweDE5LCAweDA0LCAweGZmLCAweDEyLCAweDE1LCAweDE5LAotICAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweGYwLCAweGYwLCAweDkwLCAweDdmLCAweDk2fX0sCi0gezB4MGFjNiwgNjQsIHsgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0YSwgMHgwNCwgMHhmMCwgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwKLSAgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxZiwgMHhmMCwgMHg5MCwgMHg3OCwKLSAgMHg0MywgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHg5ZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhkZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NX19LAotIHsweDBiMDYsIDY0LCB7IDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsIDB4MGYsIDB4MTIsCi0gIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsCi0gIDB4NzUsIDB4MTYsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsCi0gIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4NzQsIDB4N2UsIDB4ZjAsIDB4YTMsIDB4NzR9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweDQwLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdlLCAweGYwLAotICAweGEzLCAweDc0LCAweDgwLCAweGYwLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLAotICAweDk2LCAweDc0LCAweGRmLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweDEyLCAweDBmLCAweDEyLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LAotICAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGRmLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweGU1LCAweDE1fX0sCi0gezB4MGI4NiwgNjQsIHsgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHhjMCwgMHg4NSwKLSAgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHg3NCwgMHg3ZCwgMHhmMCwgMHhhMywgMHg3NCwgMHhjMCwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHgwMCwKLSAgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHg3NCwgMHg3ZSwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMCwgMHhmMCwgMHg3ZSwKLSAgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhiZiwgMHhmMH19LAotIHsweDBiYzYsIDY0LCB7IDB4NzUsIDB4MTYsIDB4MDQsIDB4MTIsIDB4MGYsIDB4MTIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsCi0gIDB4N2YsIDB4OTYsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4NDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsCi0gIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4ODAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODV9fSwKLSB7MHgwYzA2LCA2NCwgeyAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LCAweDgwLCAweGYwLCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LAotICAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDdmLCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweDEyLCAweDBmLCAweDEyLAotICAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDdmLCAweGYwLAotICAweDc1LCAweDE2LCAweDA4LCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0fX0sCi0gezB4MGM0NiwgNjQsIHsgMHgwMywgMHhmMCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHg3NCwgMHg3YywgMHhmMCwgMHhhMywgMHg3NCwKLSAgMHhjMCwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHgwMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHg3NCwgMHg3ZCwKLSAgMHhmMCwgMHhhMywgMHg3NCwgMHgwMCwgMHhmMCwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwOSwgMHhkMiwgMHgwMiwgMHgyMiwgMHhlNSwgMHgxMCwgMHgwNCwgMHg1NCwKLSAgMHgwMywgMHhmNSwgMHgxMCwgMHgxNCwgMHg2MCwgMHgxZiwgMHgxNCwgMHg2MCwgMHgzMSwgMHgxNCwgMHg2MCwgMHg0MywgMHgyNCwgMHgwMywgMHg3MH19LAotIHsweDBjODYsIDY0LCB7IDB4NTIsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsCi0gIDB4NzUsIDB4MTYsIDB4MDEsIDB4ODAsIDB4M2QsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsCi0gIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZGYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4ODAsIDB4MjgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsCi0gIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4ODAsIDB4MTN9fSwKLSB7MHgwY2M2LCA2NCwgeyAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDdmLCAweGYwLCAweDc1LAotICAweDE2LCAweDA4LCAweGU1LCAweDMyLCAweDU1LCAweDE2LCAweDcwLCAweDAzLCAweDAyLCAweDBlLCAweDExLCAweGU1LCAweDE2LCAweGY0LCAweGZmLCAweDUyLAotICAweDMyLCAweGU1LCAweDI2LCAweDU0LCAweDdmLCAweGZlLCAweDcwLCAweDBmLCAweGU1LCAweDJhLCAweDU1LCAweDE2LCAweDYwLCAweDI0LCAweDkwLCAweDdmLAotICAweDk4LCAweGUwLCAweDQ1LCAweDE2LCAweGYwLCAweDgwLCAweDFiLCAweGJlLCAweDIwLCAweDE4LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1fX0sCi0gezB4MGQwNiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMywgMHgwOSwgMHhlNCwgMHhmNSwgMHgyYSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwKLSAgMHg1ZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwMywKLSAgMHhlMCwgMHgxNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKLSAgMHgwMywgMHhlMCwgMHgxNCwgMHhmMCwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZSwgMHgxMSwgMHg3NCwgMHgwYSwgMHhmMCwgMHgxMiwgMHgwMH19LAotIHsweDBkNDYsIDY0LCB7IDB4MzYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZmYsIDB4ZjUsIDB4MTksIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4NmYsIDB4NjAsIDB4MDcsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4MTIsIDB4MTgsIDB4ZTQsIDB4OGYsCi0gIDB4MTksIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTksCi0gIDB4NTQsIDB4MTAsIDB4ZmUsIDB4NmYsIDB4NjAsIDB4MDYsIDB4ZWUsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjR9fSwKLSB7MHgwZDg2LCA2NCwgeyAweDI4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE5LCAweDU0LCAweDgwLCAweGZlLCAweDZmLCAweDYwLAotICAweDA2LCAweGVlLCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDI5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE5LCAweDU0LCAweDIwLCAweGZlLCAweDZmLCAweDYwLCAweDE1LCAweGVlLCAweGYwLCAweGU1LCAweDE1LAotICAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGU0LCAweDA0LCAweGU1LCAweDE2fX0sCi0gezB4MGRjNiwgNjQsIHsgMHg0MiwgMHgxMywgMHhlNSwgMHgxMiwgMHg1NSwgMHgxNiwgMHhmZiwgMHhmNSwgMHgxOSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2ZiwgMHg2MCwgMHgxNiwgMHhlNSwgMHgxOSwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlNSwgMHgwNCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNywgMHg1NSwKLSAgMHgxNiwgMHhmZiwgMHhmNSwgMHgxOSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4M319LAotIHsweDBlMDYsIDY0LCB7IDB4ZTAsIDB4NmYsIDB4NjAsIDB4MDcsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4MjIsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MGYsCi0gIDB4MTEsIDB4ZTUsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MmEsIDB4MTQsIDB4NjAsIDB4NDEsIDB4MTQsIDB4NjAsIDB4NTgsIDB4MTQsIDB4NjAsIDB4NmYsIDB4MjQsCi0gIDB4MDQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGUsIDB4Y2YsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsCi0gIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsIDB4MTIsIDB4YTEsIDB4NzUsIDB4MjQsIDB4MDF9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweDIyLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGRmLCAweGYwLAotICAweDc1LCAweDE2LCAweDAyLCAweDEyLCAweDEyLCAweGExLCAweDc1LCAweDI0LCAweDAyLCAweDIyLCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LAotICAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGJmLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDEyLCAweDEyLCAweGExLAotICAweDc1LCAweDI0LCAweDAzLCAweDIyLCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwfX0sCi0gezB4MGU4NiwgNjQsIHsgMHg3ZiwgMHg5NiwgMHg3NCwgMHg3ZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgxMiwgMHhhMSwgMHg3NSwgMHgyNCwgMHgwNCwgMHgyMiwgMHgzMCwgMHgwNCwKLSAgMHgzMywgMHhjMiwgMHgwNCwgMHg1MywgMHgxMywgMHhkZiwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZSwgMHgyNSwKLSAgMHgxOSwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgxMSwgMHhhYiwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOSwgMHhlNSwgMHgxOSwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MH19LAotIHsweDBlYzYsIDY0LCB7IDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4NzUsIDB4MjQsIDB4MDUsIDB4MjIsIDB4ZTUsIDB4MzYsIDB4NjAsIDB4M2IsIDB4ZDUsIDB4MzYsIDB4MGEsIDB4NTMsCi0gIDB4MTMsIDB4ZWYsIDB4MzAsIDB4MGEsIDB4MDQsIDB4ZDIsIDB4MDksIDB4YzIsIDB4MGEsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsCi0gIDB4NzQsIDB4MzUsIDB4MjUsIDB4MTksIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MTEsIDB4YWIsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsCi0gIDB4MTksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTksIDB4ZTUsIDB4MTksIDB4YjR9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDAzLCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LCAweGY1LCAweDI0LCAweDIyLCAweGU0LCAweGY1LCAweDFhLCAweDdlLCAweDAwLAotICAweDdiLCAweDAxLCAweGU1LCAweDE1LCAweDI1LCAweDFhLCAweGY5LCAweGVlLCAweDM1LCAweDE0LCAweGZhLCAweGU0LCAweDEyLCAweDExLCAweGYxLCAweDA1LAotICAweDFhLCAweGU1LCAweDFhLCAweGI0LCAweDNjLCAweGU4LCAweGU1LCAweDE1LCAweDI0LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1fX0sCi0gezB4MGY0NiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwgMHhmZCwKLSAgMHgxMiwgMHgxNiwgMHg0NywgMHg3ZiwgMHgxMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlZiwgMHhmMCwgMHgxMiwgMHgxNSwgMHhiNywgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMH19LAotIHsweDBmODYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MGYsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NDcsIDB4ZTQsIDB4ZmYsCi0gIDB4N2UsIDB4YTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWUsIDB4ZjAsIDB4ZmQsCi0gIDB4MTIsIDB4MTYsIDB4NDcsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2Z9fSwKLSB7MHgwZmM2LCA2NCwgeyAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDE2LCAweDQ3LCAweDdmLCAweDAxLCAweDEyLCAweDE1LCAweDRmLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDE2LAotICAweDQ3LCAweDIyLCAweDUzLCAweDEzLCAweDNmLCAweDkwLCAweDdiLCAweGYxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLCAweDdiLCAweDdmLCAweGMwLAotICAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGVmLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLAotICAweDA4LCAweGMxLCAweDkwLCAweDdjLCAweDMxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0fX0sCi0gezB4MTAwNiwgNjQsIHsgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhkZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMiwgMHgxMiwgMHgwOCwgMHhjMSwgMHg5MCwKLSAgMHg3YywgMHg3MSwgMHhlMCwgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwKLSAgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhiZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHgxMiwgMHgwOCwgMHhjMSwgMHg5MCwgMHg3YywgMHhiMSwgMHhlMCwKLSAgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3Zn19LAotIHsweDEwNDYsIDY0LCB7IDB4OTYsIDB4NzQsIDB4N2YsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4MTIsIDB4MDgsIDB4YzEsIDB4MDUsIDB4MTEsIDB4ZTUsIDB4MTEsIDB4NTQsIDB4MGYsIDB4ZjUsCi0gIDB4MTgsIDB4NzAsIDB4MWYsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTksIDB4ZTAsIDB4ZjUsIDB4MTcsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTksIDB4ZTAsIDB4ZjQsIDB4ZjUsIDB4MTIsIDB4MTIsIDB4MTEsCi0gIDB4MjEsIDB4MjIsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDEsIDB4MDQsIDB4MTIsIDB4MGMsIDB4NzMsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTB9fSwKLSB7MHgxMDg2LCA2NCwgeyAweDIwLCAweGUxLCAweDA4LCAweGU1LCAweDEzLCAweDYwLCAweDA0LCAweDEyLCAweDBlLCAweDEyLCAweDIyLCAweDEyLCAweDBjLCAweDczLCAweDIyLCAweDc4LCAweDdmLAotICAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDM3LCAweDAyLCAweDEwLCAweGRjLCAweDAyLCAweDEyLCAweDI5LCAweGU0LCAweDkzLCAweGEzLAotICAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LAotICAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwfX0sCi0gezB4MTBjNiwgNjQsIHsgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwKLSAgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHgxOCwgMHg1MCwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwKLSAgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwKLSAgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOH19LAotIHsweDExMDYsIDY0LCB7IDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsCi0gIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmUsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MzAsIDB4ZTEsCi0gIDB4MDMsIDB4MDIsIDB4MTEsIDB4YWEsIDB4YzIsIDB4MDksIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MjYsIDB4MTQsIDB4NjAsIDB4M2IsCi0gIDB4MTQsIDB4NjAsIDB4NTAsIDB4MjQsIDB4ODMsIDB4NjAsIDB4NjQsIDB4MjQsIDB4ODAsIDB4NzAsIDB4NjMsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzB9fSwKLSB7MHgxMTQ2LCA2NCwgeyAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGVmLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLCAweDAwLAotICAweDQ2LCAweDgwLCAweDRiLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk2LAotICAweDc0LCAweGRmLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDMzLCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LAotICAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGJmLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDEyfX0sCi0gezB4MTE4NiwgNjQsIHsgMHgwMCwgMHg0NiwgMHg4MCwgMHgxYiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5NiwKLSAgMHg3NCwgMHg3ZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgwMCwgMHg0NiwgMHg4MCwgMHgwMywgMHgxMiwgMHgxNywgMHg1YywgMHhlNCwgMHg5MCwKLSAgMHg3ZiwgMHhkMywgMHhmMCwgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywKLSAgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMX19LAotIHsweDExYzYsIDY0LCB7IDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjUsCi0gIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODIsIDB4MjksCi0gIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsCi0gIDB4ODMsIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDB9fSwKLSB7MHgxMjA2LCA2NCwgeyAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LCAweDAxLAotICAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzLCAweGEzLCAweGEzLAotICAweDgwLCAweGRmLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweGZmLCAweGQzLCAweDkyLCAweDAwLCAweGU0LCAweDMzLCAweGZlLCAweGVmLCAweDRlLCAweGYwLAotICAweGQyLCAweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwfX0sCi0gezB4MTI0NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwKLSAgMHg5MCwgMHg3ZiwgMHhhZiwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHg3NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgwYiwKLSAgMHgxMiwgMHgxOCwgMHgxNCwgMHhjMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHgyYiwgMHhmNSwgMHgzMSwgMHhjMiwgMHgwNywgMHhjMiwgMHgwMiwgMHg3NSwgMHgyOSwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNiwgMHg3NSwgMHgzMiwgMHgwZiwgMHhlMCwgMHhmNSwgMHgyNn19LAotIHsweDEyODYsIDY0LCB7IDB4MzAsIDB4MDIsIDB4MDMsIDB4MTIsIDB4MGYsIDB4ZDksIDB4MzAsIDB4MDEsIDB4MDcsIDB4YzIsIDB4MDEsIDB4MTIsIDB4MDYsIDB4MjksIDB4ODAsIDB4ZTIsIDB4MzAsCi0gIDB4MDgsIDB4ZGYsIDB4YzIsIDB4MDgsIDB4MTIsIDB4MTgsIDB4MzUsIDB4ODAsIDB4ZDgsIDB4MjIsIDB4ZTUsIDB4MTMsIDB4NTUsIDB4MTYsIDB4NjAsIDB4NmEsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4NWMsIDB4ZTUsIDB4MTYsCi0gIDB4ZjQsIDB4NTIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZmYsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZmUsIDB4ZTQsIDB4ZmQsIDB4MGZ9fSwKLSB7MHgxMmM2LCA2NCwgeyAweGVmLCAweGFhLCAweDA2LCAweDcwLCAweDAxLCAweDBlLCAweDE0LCAweGY1LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweGZjLCAweDc0LCAweDgwLCAweDJkLCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweDBkLCAweGJkLCAweDBiLCAweGUyLCAweDkwLCAweDdmLCAweGMzLCAweDc0LAotICAweDBiLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDEwLCAweGYwLAotICAweGU1LCAweDE1LCAweDI0LCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE1fX0sCi0gezB4MTMwNiwgNjQsIHsgMHgyNCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHgyMiwgMHhlNSwgMHgyOCwgMHg0NSwgMHgyNywgMHg2MCwKLSAgMHg1NywgMHhhZSwgMHgyNywgMHhhZiwgMHgyOCwgMHhkMywgMHhlZiwgMHg5NCwgMHg0MCwgMHhlZSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHg3ZSwgMHgwMCwKLSAgMHg3ZiwgMHg0MCwgMHhjMywgMHhlNSwgMHgyOCwgMHg5ZiwgMHhmNSwgMHgyOCwgMHhlNSwgMHgyNywgMHg5ZSwgMHhmNSwgMHgyNywgMHhlNCwgMHhmZCwgMHhlZCwKLSAgMHhjMywgMHg5ZiwgMHhlNCwgMHg5ZSwgMHg1MCwgMHgxZiwgMHg4NSwgMHgzNCwgMHg4MiwgMHg4NSwgMHgzMywgMHg4MywgMHhlMCwgMHhmYywgMHg3NH19LAotIHsweDEzNDYsIDY0LCB7IDB4MDAsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4MGQsIDB4MDUsIDB4MzQsIDB4ZTUsIDB4MzQsIDB4NzAsCi0gIDB4MDIsIDB4MDUsIDB4MzMsIDB4ODAsIDB4ZGEsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWMsIDB4ZTAsIDB4NDQsCi0gIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZWYsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YWMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4ZjB9fSwKLSB7MHgxMzg2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDRhLCAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDlkLAotICAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDMwLCAweDAwLCAweDA3LCAweGU1LCAweDI5LCAweDU0LCAweGYwLCAweGZmLAotICAweDgwLCAweDAyLCAweDdmLCAweDAwLCAweGVmLCAweDQ0LCAweDA4LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLAotICAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwfX0sCi0gezB4MTNjNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHhmMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHgyMiwgMHg4ZiwgMHgxYSwgMHgwNSwgMHgyZCwgMHhlNSwgMHgyZCwgMHhhZSwgMHgyYywgMHg3MCwgMHgwMiwKLSAgMHgwNSwgMHgyYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxYSwgMHhmMCwgMHgxMiwgMHgxOCwgMHhmMCwgMHgwNSwgMHgyZCwgMHhlNSwKLSAgMHgyZCwgMHhhYywgMHgyYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgyYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNX19LAotIHsweDE0MDYsIDY0LCB7IDB4MjMsIDB4ZTUsIDB4MjMsIDB4NjAsIDB4MWYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4YzAsCi0gIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZTAsIDB4ZmUsIDB4MTIsIDB4MTgsIDB4ZDgsIDB4OGYsIDB4MWEsIDB4ZWUsIDB4NGYsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsCi0gIDB4ZjAsIDB4ODAsIDB4YjUsIDB4MjIsIDB4OGYsIDB4MWEsIDB4ZTQsIDB4ZjUsIDB4MWIsIDB4NzUsIDB4MWMsIDB4ZmYsIDB4NzUsIDB4MWQsIDB4MTksIDB4NzUsCi0gIDB4MWUsIDB4ODYsIDB4YWIsIDB4MWMsIDB4YWEsIDB4MWQsIDB4YTksIDB4MWUsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MTEsIDB4YzQsIDB4YjR9fSwKLSB7MHgxNDQ2LCA2NCwgeyAweDAzLCAweDFkLCAweGFmLCAweDFiLCAweDA1LCAweDFiLCAweGVmLCAweGI1LCAweDFhLCAweDAxLCAweDIyLCAweDEyLCAweDExLCAweGFiLCAweDdlLCAweDAwLCAweDI5LAotICAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDFjLCAweGZmLCAweGY1LCAweDFkLCAweDg5LCAweDFlLCAweDgwLCAweGQ0LCAweDdiLCAweDAwLAotICAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweGU0LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweDc4LCAweDRmLCAweDc0LCAweGMwLCAweGYwLAotICAweGU0LCAweDkwLCAweDc4LCAweDUwLCAweGYwLCAweGU1LCAweDJjLCAweDkwLCAweDc4LCAweDUxLCAweGYwLCAweGFlLCAweDJjLCAweGU1LCAweDJkfX0sCi0gezB4MTQ4NiwgNjQsIHsgMHg5MCwgMHg3OCwgMHg1MiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NCwgMHhlNSwgMHgyMywgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NywgMHg3NCwgMHgwNCwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHgxMCwgMHhmMCwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg1NSwgMHhmMCwgMHg5MCwKLSAgMHg3OCwgMHg1NSwgMHhlMCwgMHg2MCwgMHhmYSwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHhlNSwgMHgyYywgMHg5MCwgMHg3OCwgMHg0ZiwKLSAgMHhmMCwgMHhhZSwgMHgyYywgMHhlNSwgMHgyZCwgMHg5MCwgMHg3OCwgMHg1MCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1MSwgMHg3NCwgMHhjMCwgMHhmMH19LAotIHsweDE0YzYsIDY0LCB7IDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTIsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTQsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTcsIDB4NzQsIDB4MDQsIDB4ZjAsCi0gIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTUsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTUsIDB4ZTAsIDB4NjAsIDB4ZmEsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MGYsIDB4MTQsIDB4NjAsIDB4MTMsIDB4MTQsIDB4NjAsCi0gIDB4MTcsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZWYsIDB4ZjB9fSwKLSB7MHgxNTA2LCA2NCwgeyAweDgwLCAweDBjLCAweDkwLCAweDdmLCAweGNiLCAweGVmLCAweGYwLCAweDgwLCAweDA1LCAweDkwLCAweDdmLCAweGNkLCAweGVmLCAweGYwLCAweGU1LCAweDE2LCAweDQyLAotICAweDJhLCAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLAotICAweDBmLCAweDE0LCAweDYwLCAweDEzLCAweDE0LCAweDYwLCAweDE3LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGI3LCAweGVmLCAweGYwLCAweDgwLCAweDEzLAotICAweDkwLCAweDdmLCAweGI5LCAweGVmLCAweGYwLCAweDgwLCAweDBjLCAweDkwLCAweDdmLCAweGJiLCAweGVmLCAweGYwLCAweDgwLCAweDA1LCAweDkwfX0sCi0gezB4MTU0NiwgNjQsIHsgMHg3ZiwgMHhiZCwgMHhlZiwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgyYSwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxNiwgMHg0NywgMHg5MCwgMHg3OCwKLSAgMHg0MSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg0NywgMHgyMiwgMHhjMCwgMHhlMH19LAotIHsweDE1ODYsIDY0LCB7IDB4YzAsIDB4ZjAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsCi0gIDB4NzUsIDB4ZDAsIDB4MDgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MTIsIDB4MTMsIDB4MTIsIDB4ZDAsCi0gIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4MzIsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDF9fSwKLSB7MHgxNWM2LCA2NCwgeyAweDc0LCAweDAyLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLAotICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LAotICAweDA0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1fX0sCi0gezB4MTYwNiwgNjQsIHsgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwKLSAgMHgwNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMH19LAotIHsweDE2NDYsIDY0LCB7IDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDcsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4OTAsCi0gIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NDF9fSwKLSB7MHgxNjg2LCA2NCwgeyAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LAotICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweGU1LCAweDE1LAotICAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLCAweDBlLCAweDE0LCAweDYwLCAweDExLAotICAweDE0LCAweDYwLCAweDE0LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGM4LCAweGUwfX0sCi0gezB4MTZjNiwgNjQsIHsgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwgMHgwZSwgMHgxNCwgMHg2MCwgMHgxMSwgMHgxNCwKLSAgMHg2MCwgMHgxNCwgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhiYywgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNH19LAotIHsweDE3MDYsIDY0LCB7IDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MGUsIDB4MTQsIDB4NjAsIDB4MTEsIDB4MTQsIDB4NjAsCi0gIDB4MTQsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsCi0gIDB4N2YsIDB4Y2IsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsCi0gIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjB9fSwKLSB7MHgxNzQ2LCA2NCwgeyAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLAotICAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweGY1LCAweDM2LCAweDQzLCAweDEzLCAweDEwLCAweGEzLCAweGUwLAotICAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweDkwLCAweDdiLCAweDQzLCAweGUwLCAweGY1LAotICAweDM3LCAweGEzLCAweGUwLCAweDU0LCAweGYwLCAweGY1LCAweDI5LCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBhLCAweDIyLCAweGMwLCAweGUwfX0sCi0gezB4MTc4NiwgNjQsIHsgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgwMSwgMHg1MywgMHg5MSwKLSAgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwKLSAgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwKLSAgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgwOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMH19LAotIHsweDE3YzYsIDY0LCB7IDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4MTIsIDB4MTgsIDB4YzAsIDB4YWUsIDB4MDcsCi0gIDB4MTIsIDB4MTgsIDB4YzAsIDB4YWQsIDB4MDcsIDB4ZWUsIDB4NmQsIDB4NjAsIDB4MTAsIDB4MTIsIDB4MTgsIDB4YzAsIDB4YWUsIDB4MDcsIDB4ZWUsIDB4NmQsCi0gIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTgsIDB4YzAsIDB4YWQsIDB4MDcsIDB4ODAsIDB4ZWMsIDB4YWYsIDB4MDYsIDB4MjIsIDB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsCi0gIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2Z9fSwKLSB7MHgxODA2LCA2NCwgeyAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LAotICAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDBiLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLAotICAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDE4LCAweDZiLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweDIyLCAweDEyLCAweDEzLAotICAweDdjLCAweDEyLCAweDE4LCAweDA0LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLCAweGU3LCAweDBhLCAweDdmLCAweDA1LCAweDdlLCAweDAwfX0sCi0gezB4MTg0NiwgNjQsIHsgMHgxMiwgMHgxOCwgMHg2YiwgMHgxMiwgMHgxOCwgMHg5ZSwgMHgxMiwgMHgwYSwgMHhiOCwgMHgyMiwgMHgwMywgMHgzNSwgMHg4MCwgMHgwMCwgMHgwMCwgMHgwMywgMHgyZSwKLSAgMHg4MSwgMHgwMCwgMHgwMCwgMHhjMSwgMHg4NSwgMHhjMSwgMHg4MSwgMHhjMSwgMHgwOCwgMHhjMSwgMHgwMCwgMHhjMSwgMHgwNiwgMHgwMSwgMHgyMiwgMHgwMCwKLSAgMHgwMSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg4ZSwgMHgxOCwgMHg4ZiwgMHgxOSwgMHhlNSwgMHgxOSwgMHgxNSwgMHgxOSwgMHhhZSwgMHgxOCwgMHg3MCwgMHgwMiwKLSAgMHgxNSwgMHgxOCwgMHg0ZSwgMHg2MCwgMHgwOCwgMHgxMiwgMHgxNywgMHhmMywgMHgxMiwgMHgxNywgMHhmMywgMHg4MCwgMHhlYiwgMHgyMiwgMHhlNX19LAotIHsweDE4ODYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MDQsIDB4ZmYsIDB4NDQsIDB4MTAsIDB4OTAsIDB4N2YsCi0gIDB4ZDcsIDB4ZjAsIDB4ZWYsIDB4NDQsIDB4MzAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MGQsCi0gIDB4N2UsIDB4MDAsIDB4MTIsIDB4MTgsIDB4NmIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsCi0gIDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjB9fSwKLSB7MHgxOGM2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLAotICAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDc4LCAweDQxLAotICAweDc0LCAweDA2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweGU0LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDUzLCAweGQ4LCAweGVmLCAweDMyLCAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwfX0sCi0gezB4MTkwNiwgNjQsIHsgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwYSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwNCwgMHgwOSwgMHgwMiwgMHg3NCwgMHgwMCwgMHgwMSwKLSAgMHgwMSwgMHgwMCwgMHhhMCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwZSwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwKLSAgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwKLSAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNSwgMHgwMiwgMHg0MCwgMHgwMH19LAotIHsweDE5NDYsIDY0LCB7IDB4MDAsIDB4MDcsIDB4MDUsIDB4MDYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsCi0gIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsCi0gIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODUsIDB4MDIsIDB4NDAsIDB4MDAsCi0gIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDF9fSwKLSB7MHgxOTg2LCA2NCwgeyAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDQ4LCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLAotICAweDAwLCAweDZlLCAweDAwLCAweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDYxLCAweDAwLCAweDIwLCAweDAwLCAweDY0LCAweDAwLCAweDY5LCAweDAwLCAweDc2LAotICAweDAwLCAweDY5LCAweDAwLCAweDczLCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDZmLCAweDAwLCAweDY2LAotICAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDZmLCAweDAwLCAweDUzLCAweDAwLCAweDc5LCAweDAwfX0sCi0gezB4MTljNiwgNjQsIHsgMHg3MywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgzNiwgMHgwMywgMHg1NSwgMHgwMCwgMHg1MywKLSAgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHgzNCwgMHgwMCwgMHgyZCwgMHgwMCwgMHg3MCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg3MiwgMHgwMCwgMHg3NCwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgyMCwKLSAgMHgwMCwgMHg0MSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMH19LAotIHsweDFhMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxYTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MWE4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDFhYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MTcsIDB4ODQsIDB4MDAsIDB4MDIsIDB4MWJ9fSwKLSB7MHgxYjA2LCAyMSwgeyAweDA0LCAweDAwLCAweDAyLCAweDE3LCAweDMyLCAweDAwLCAweDAyLCAweDE3LCAweGFiLCAweDAwLCAweDAyLCAweDFiLCAweDEwLCAweDAwLCAweDAyLCAweDFiLCAweDE0LAotICAweDAwLCAweDAyLCAweDE1LCAweDg0fX0sCi0gezB4ZmZmZiwgMCwgezB4MDB9fQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTQ5d2xjX2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdsY19mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZWYwNmEzLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTQ5d2xjX2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NzYgKzAsMCBAQAotLyoga2V5c3Bhbl91c2E0OXdfZncuaAotCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2E0OXdfZncuaCBpcwotCi0JCUNvcHlyaWdodCAoQykgMTk5OS0yMDAzCi0JCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKLQkJCi0JYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCi0JcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCi0JZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCi0JcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKLQlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLQotCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLQlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0JaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0KLQlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCi0JS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKLQlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAotCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgotCi1zdGF0aWMgY2hhciB0aGVGaXJtd2FyZURhdGU0OVtdID0KLQkiMDIvMTQvMjAwMiAgMDI6MzdwICAgICAgICAgICAgICAxOSwzNDcgVVNBNDkiOwotCi0KLQotc3RhdGljIGNoYXIgdGhlRmlybXdhcmVEYXRlNjVbXSA9Ci0JIjAxLzMxLzIwMDMgIDA5OjM0YSAgICAgICAgICAgICAgMTksMzMxIFVTQTY1IjsKLQotCi0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2E0OXdsY19maXJtd2FyZVtdID0gewotIHsweDdmOTIsICAxLCB7IDB4MDF9fSwKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDE4LCAweGZifX0sCi0gezB4MDAzNiwgMTMsIHsgMHhlNSwgMHgxMSwgMHgwNCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMn19LAotIHsweDAwNDYsIDE2LCB7IDB4ZTQsIDB4ZmYsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4ZTUsIDB4MTV9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDI0LCAweDA0LCAweGZkLCAweGU0LCAweDM1LCAweDE0LCAweGZhLCAweGE5LCAweDA1LCAweDdiLCAweDAxLCAweGVmLCAweDdjLCAweDAwLCAweDI5LCAweGY5fX0sCi0gezB4MDA2NiwgMTYsIHsgMHhlYywgMHgzYSwgMHhmYSwgMHhlZSwgMHgxMiwgMHgxMSwgMHhlYywgMHgwZiwgMHhiZiwgMHgyMiwgMHhkNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNSwgMHhmNX19LAotIHsweDAwNzYsIDE2LCB7IDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MzQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDl9fSwKLSB7MHgwMDg2LCAxNiwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDBlLCAweGU1LCAweDE1LCAweDI0LCAweDBhLCAweGY1LCAweDgyfX0sCi0gezB4MDA5NiwgMTYsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxOCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg2YiwgMHhlNX19LAotIHsweDAwYTYsIDE2LCB7IDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4Y2YsIDB4ZjAsIDB4ODAsIDB4NDF9fSwKLSB7MHgwMGI2LCAxNiwgeyAweGU1LCAweDE1LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDAwLCAweDAzfX0sCi0gezB4MDBjNiwgMTYsIHsgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNSwgMHhhYn19LAotIHsweDAwZDYsIDE2LCB7IDB4N2YsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MTJ9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDE2LCAweDZiLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDMwfX0sCi0gezB4MDBmNiwgMTYsIHsgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMH19LAotIHsweDAwMDMsIDE2LCB7IDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzR9fSwKLSB7MHgwMDEzLCAxNiwgeyAweGYwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweGU1LCAweDE1LCAweDI0fX0sCi0gezB4MDAyMywgMTYsIHsgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMn19LAotIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MWIsIDB4MDB9fSwKLSB7MHgwMDAwLCAgMywgeyAweDAyLCAweDEwLCAweDkwfX0sCi0gezB4MDEwNiwgNjQsIHsgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgzMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwY319LAotIHsweDAxNDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NGYsIDB4ZTV9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDE1LCAweDI0LCAweDE3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMyLAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LAotICAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGU0LCAweGZmLCAweGU1LCAweDE1LAotICAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZkLCAweDEyLCAweDE2LCAweDZiLCAweGU1fX0sCi0gezB4MDFjNiwgNjQsIHsgMHgxNSwgMHgyNCwgMHgwZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmYywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwZn19LAotIHsweDAyMDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4MGIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4M2IsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsIDB4ZjUsIDB4ODIsIDB4ZTR9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE1LCAweGRiLCAweGU1LCAweDE1LCAweDI0LCAweDE0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDQ0LCAweGU1LCAweDE1LCAweDI0LCAweDE1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDYwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLAotICAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1fX0sCi0gezB4MDI4NiwgNjQsIHsgMHg4MywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHg0NCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNH19LAotIHsweDAyYzYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTYsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzUsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwMzA2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDE3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDMwLCAweGUwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1fX0sCi0gezB4MDM0NiwgNjQsIHsgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwKLSAgMHgxNSwgMHgyNCwgMHgxOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgxMCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OH19LAotIHsweDAzODYsIDY0LCB7IDB4NDEsIDB4NzQsIDB4ZjQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCi0gIDB4NmIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTR9fSwKLSB7MHgwM2M2LCA2NCwgeyAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYxLCAweGYwLCAweDEyLCAweDAwLAotICAweDM2LCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweGZmLCAweGYwLCAweGZkLCAweGU0LCAweGZmLCAweDEyLCAweDE2LCAweDZiLCAweGU1LCAweDE1LAotICAweDI0LCAweDJjLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDJifX0sCi0gezB4MDQwNiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgxYiwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwZSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNiwgMHg2YiwgMHhlNX19LAotIHsweDA0NDYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MmIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4NzAsIDB4MGUsIDB4ZTUsCi0gIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MmEsIDB4OTAsIDB4NzgsIDB4NDEsCi0gIDB4NzQsIDB4ZjIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKLSB7MHgwNDg2LCA2NCwgeyAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGVmLCAweDYwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDFkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI3LCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1fX0sCi0gezB4MDRjNiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxZSwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNiwgMHg2YiwKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHhlNX19LAotIHsweDA1MDYsIDY0LCB7IDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MGUsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjcsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsCi0gIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NmIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweGU0LCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDIwLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDcwLCAweDBlLCAweGU1LCAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLAotICAweDE4LCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDIxLCAweGY1LCAweDgyfX0sCi0gezB4MDU4NiwgNjQsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHg2MCwgMHgxZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMH19LAotIHsweDA1YzYsIDY0LCB7IDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCi0gIDB4MDMsIDB4MTIsIDB4MTgsIDB4N2EsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4NjAsIDB4MjMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDgsCi0gIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4YzQsIDB4NTQsIDB4ZjAsIDB4ZmYsIDB4NDIsIDB4MTEsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NGYsIDB4ZjB9fSwKLSB7MHgwNjA2LCA2NCwgeyAweDkwLCAweDc4LCAweDQxLCAweGUwLCAweDRmLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLAotICAweGUwLCAweDYwLCAweDI0LCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LAotICAweGY3LCAweGYwLCAweGU1LCAweDE2LCAweGM0LCAweDU0LCAweGYwLCAweGY0LCAweGZmLCAweDUyLCAweDExLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDVmLAotICAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweGUwLCAweDVmLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDExLCAweGZlfX0sCi0gezB4MDY0NiwgNjQsIHsgMHgwNywgMHg5OSwgMHgwMCwgMHgwOCwgMHgwZCwgMHgwMSwgMHgwOCwgMHg3OSwgMHgwMywgMHgwNiwgMHg2MiwgMHgwNiwgMHgwNywgMHg4YSwgMHgwOCwgMHgwNywgMHg3ZSwKLSAgMHgwOSwgMHgwNywgMHg2NiwgMHgwYSwgMHgwNywgMHg3NSwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwOCwgMHhjOCwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwKLSAgMHhmZSwgMHg2MCwgMHgxYywgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNywgMHgxNCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNywgMHg1YywKLSAgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZn19LAotIHsweDA2ODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4MTcsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MzAsCi0gIDB4ZTAsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZWYsIDB4ZjAsCi0gIDB4NzUsIDB4ODIsIDB4NmQsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NjYsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsCi0gIDB4NWYsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NTgsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWF9fSwKLSB7MHgwNmM2LCA2NCwgeyAweGUwLCAweDMwLCAweGUxLCAweDA0LCAweDdmLCAweDY0LCAweDgwLCAweDAyLCAweDdmLCAweDMyLCAweDc1LCAweDgyLCAweDFhLCAweDc1LCAweDgzLCAweDE5LCAweGVmLAotICAweGYwLCAweDkwLCAweDdmLCAweGVmLCAweGUwLCAweGZlLCAweDkwLCAweDdmLCAweGVlLCAweGUwLCAweDdjLCAweDAwLCAweDI0LCAweDAwLCAweGY1LCAweDE4LAotICAweGVjLCAweDNlLCAweGY1LCAweDE3LCAweDc1LCAweDMzLCAweDE5LCAweDc1LCAweDM0LCAweDEyLCAweDc1LCAweDgyLCAweDE0LCAweDc1LCAweDgzLCAweDE5LAotICAweGUwLCAweDc1LCAweDI3LCAweDAwLCAweGY1LCAweDI4LCAweGQzLCAweGU1LCAweDI4LCAweDk1LCAweDE4LCAweGU1LCAweDI3LCAweDk1LCAweDE3fX0sCi0gezB4MDcwNiwgNjQsIHsgMHg0MCwgMHgwNiwgMHg4NSwgMHgxNywgMHgyNywgMHg4NSwgMHgxOCwgMHgyOCwgMHgxMiwgMHgxMywgMHgwZCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlYSwKLSAgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNCwgMHg1ZiwgMHhlYSwgMHg0OSwgMHg2MCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMCwgMHg3NSwgMHgxNywgMHgwMCwKLSAgMHhmNSwgMHgxOCwgMHhhZSwgMHgwMiwgMHhhZiwgMHgwMSwgMHg4ZSwgMHgzMywgMHg4ZiwgMHgzNCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHhmZSwKLSAgMHhhMywgMHhlMCwgMHg4ZSwgMHgyNywgMHhmNSwgMHgyOCwgMHhkMywgMHg5NSwgMHgxOCwgMHhlNSwgMHgyNywgMHg5NSwgMHgxNywgMHg0MCwgMHgwNn19LAotIHsweDA3NDYsIDY0LCB7IDB4ODUsIDB4MTcsIDB4MjcsIDB4ODUsIDB4MTgsIDB4MjgsIDB4MTIsIDB4MTMsIDB4MGQsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCi0gIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsCi0gIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MjUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsCi0gIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjUsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjIsIDB4MTIsIDB4MGF9fSwKLSB7MHgwNzg2LCA2NCwgeyAweGNlLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDIyLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLAotICAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLAotICAweDViLCAweGEyLCAweDAwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDA2LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLAotICAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweGU0fX0sCi0gezB4MDdjNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwKLSAgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwKLSAgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwKLSAgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhiNH19LAotIHsweDA4MDYsIDY0LCB7IDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsCi0gIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MDAsIDB4MDIsIDB4MDgsCi0gIDB4Y2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsCi0gIDB4MzgsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTR9fSwKLSB7MHgwODQ2LCA2NCwgeyAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLAotICAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLAotICAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLAotICAweDgwLCAweDU2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRhLCAweDkwfX0sCi0gezB4MDg4NiwgNjQsIHsgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNCwgMHhkMiwgMHgwMCwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwKLSAgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwKLSAgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMH19LAotIHsweDA4YzYsIDY0LCB7IDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsCi0gIDB4ZTUsIDB4MTIsIDB4NTQsIDB4MGYsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDksIDB4YzgsIDB4MTIsIDB4MTYsIDB4OWEsIDB4ZWYsIDB4MjAsIDB4ZTEsIDB4NzUsCi0gIDB4MTIsIDB4MTYsIDB4ZjgsIDB4ZWYsIDB4MTQsIDB4ZjUsIDB4MTgsIDB4MTIsIDB4MTgsIDB4YzUsIDB4ZWYsIDB4MjUsIDB4MTgsIDB4ZmYsIDB4ZTQsIDB4MzMsCi0gIDB4ZmUsIDB4YzMsIDB4ZWYsIDB4OTQsIDB4ODAsIDB4ZWUsIDB4NjQsIDB4ODAsIDB4OTQsIDB4ODAsIDB4NTAsIDB4NTksIDB4ODUsIDB4MTUsIDB4ODJ9fSwKLSB7MHgwOTA2LCA2NCwgeyAweDg1LCAweDE0LCAweDgzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDMwLCAweGUwLCAweDExLCAweGU1LAotICAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDBmLAotICAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweGU1LAotICAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDIwLCAweGUyLCAweDEyLCAweGU1fX0sCi0gezB4MDk0NiwgNjQsIHsgMHgxOCwgMHg2MCwgMHgwZSwgMHhmNSwgMHgyMywgMHhlZiwgMHgyNCwgMHgwMSwgMHhmNSwgMHgyZCwgMHhlNCwgMHgzZSwgMHhmNSwgMHgyYywgMHgxMiwgMHgxNCwgMHhhMCwKLSAgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNCwgMHhkNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHgzMCwgMHhlNywgMHg1ZCwgMHgxMiwgMHgxOCwgMHhjNSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHhmZSwgMHhlZiwgMHhjMywgMHg5ZSwgMHg1MCwgMHg0OCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZiwgMHhmNSwgMHg4Mn19LAotIHsweDA5ODYsIDY0LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2IsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTAsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MjQsIDB4ODAsIDB4MDMsIDB4MTJ9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDEyLCAweDljLCAweDEyLCAweDE2LCAweGM5LCAweGVmLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDBhLCAweGNkLCAweDEyLCAweDE3LCAweGM3LCAweDhmLCAweDE4LAotICAweDEyLCAweDE4LCAweGQzLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLAotICAweGU1LCAweDE1LCAweDI0LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweGMzLAotICAweDlmLCAweDUwLCAweDI4LCAweDEyLCAweDE4LCAweGE5LCAweGVmLCAweDMwLCAweGUwLCAweDIxLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1fX0sCi0gezB4MGEwNiwgNjQsIHsgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMCwgMHhlNywgMHgxMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwYSwgMHhjZCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHgxOCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwYSwKLSAgMHhjZCwgMHhiNCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4M319LAotIHsweDBhNDYsIDY0LCB7IDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsCi0gIDB4MzAsIDB4ZTcsIDB4MjksIDB4ZTUsIDB4MTgsIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTgsIDB4MjAsIDB4ODUsIDB4MTgsIDB4MjMsCi0gIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4OGMsIDB4MmMsIDB4ZjUsIDB4MmQsCi0gIDB4MTIsIDB4MTMsIDB4Y2YsIDB4ZTUsIDB4MTgsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4MGQsIDB4MjIsIDB4ZTUsIDB4MTgsIDB4ZDN9fSwKLSB7MHgwYTg2LCA2NCwgeyAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LCAweDE4LCAweDNmLCAweDg1LCAweDE4LCAweDIzLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LAotICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGZjLAotICAweGEzLCAweGUwLCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLAotICAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweDI0LCAweDAxLCAweGY1LCAweDJkLCAweGU0LCAweDNlLCAweGY1LCAweDJjLCAweDEyLCAweDE0LCAweDFkfX0sCi0gezB4MGFjNiwgNjQsIHsgMHhlNSwgMHgxOCwgMHgwNCwgMHhmZiwgMHgxMiwgMHgxNSwgMHgwZCwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwKLSAgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0YSwgMHgwNCwgMHhmMCwKLSAgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgyZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MywgMHg3NCwgMHhmNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMH19LAotIHsweDBiMDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4OWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsCi0gIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmUsIDB4ZjAsCi0gIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsIDB4MGYsIDB4MjgsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTUsIDB4YzAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmUsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDQwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLAotICAweDc0LCAweDdlLCAweGYwLCAweGEzLCAweDc0LCAweDQwLCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LAotICAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdlLCAweGYwLCAweGEzLCAweDc0LCAweDgwLCAweGYwLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LAotICAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJkLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweDEyLCAweDBmfX0sCi0gezB4MGI4NiwgNjQsIHsgMHgyOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZCwgMHhmMCwKLSAgMHg3NSwgMHgxNiwgMHgwMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwKLSAgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHhjMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHg3NCwgMHg3ZCwgMHhmMCwgMHhhMywgMHg3NCwKLSAgMHhjMCwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHgwMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHg3NH19LAotIHsweDBiYzYsIDY0LCB7IDB4N2UsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmIsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4MTIsIDB4MGYsIDB4MjgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsCi0gIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmIsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2Z9fSwKLSB7MHgwYzA2LCA2NCwgeyAweDQwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LCAweDQwLCAweGYwLCAweDdlLCAweDdkLCAweDdmLAotICAweDgwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LCAweDgwLCAweGYwLAotICAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDI3LCAweGYwLAotICAweDc1LCAweDE2LCAweDA4LCAweDEyLCAweDBmLCAweDI4LCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1fX0sCi0gezB4MGM0NiwgNjQsIHsgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyNywgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwKLSAgMHg4MywgMHg3NCwgMHg3YywgMHhmMCwgMHhhMywgMHg3NCwgMHhjMCwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHgwMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwKLSAgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHg3NCwgMHg3ZCwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMCwgMHhmMCwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwOX19LAotIHsweDBjODYsIDY0LCB7IDB4ZTQsIDB4ZjUsIDB4MTEsIDB4ZDIsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MTAsIDB4MDQsIDB4NTQsIDB4MDMsIDB4ZjUsIDB4MTAsIDB4MTQsIDB4NjAsIDB4MWYsIDB4MTQsCi0gIDB4NjAsIDB4MzEsIDB4MTQsIDB4NjAsIDB4NDMsIDB4MjQsIDB4MDMsIDB4NzAsIDB4NTIsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsCi0gIDB4NzUsIDB4MTUsIDB4YzAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmUsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4ODAsIDB4M2QsIDB4N2UsIDB4N2MsCi0gIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmQsIDB4ZjAsIDB4NzV9fSwKLSB7MHgwY2M2LCA2NCwgeyAweDE2LCAweDAyLCAweDgwLCAweDI4LCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDJiLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDgwLCAweDEzLCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LAotICAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDI3LCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweGU1LCAweDMyLCAweDU1LCAweDE2LCAweDcwLAotICAweDAzLCAweDAyLCAweDBlLCAweDI3LCAweGU1LCAweDE2LCAweGY0LCAweDUyLCAweDMyLCAweGU1LCAweDI2LCAweDU0LCAweDdmLCAweGZmLCAweDcwfX0sCi0gezB4MGQwNiwgNjQsIHsgMHgxNywgMHhlNSwgMHgyYSwgMHg1NSwgMHgxNiwgMHg2MCwgMHgzNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHhmZSwgMHhlNSwgMHgxNiwgMHhjNCwgMHg1NCwgMHhmMCwKLSAgMHhmNCwgMHhmZCwgMHhlZSwgMHg1ZCwgMHhmMCwgMHg4MCwgMHgyMywgMHhiZiwgMHgyMCwgMHgyMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMywgMHgxMSwgMHhlNCwgMHhmNSwgMHgyYSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwKLSAgMHhmZiwgMHhlNSwgMHgxNiwgMHhjNCwgMHg1NCwgMHhmMCwgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNX19LAotIHsweDBkNDYsIDY0LCB7IDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzQsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsCi0gIDB4MGUsIDB4MjcsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4ZWYsIDB4NTQsIDB4MDEsIDB4ZmYsIDB4ZjUsIDB4MTgsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MmMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NmYsIDB4NjAsIDB4MDcsIDB4ZTUsIDB4MTh9fSwKLSB7MHgwZDg2LCA2NCwgeyAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweDEyLCAweDE4LCAweGUxLCAweDhmLCAweDE4LCAweGU1LCAweDE1LCAweDI0LCAweDI3LCAweGY1LCAweDgyLCAweGU0LAotICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDU0LCAweDEwLCAweGZlLCAweDZmLCAweDYwLCAweDA2LCAweGVlLCAweGYwLAotICAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDI4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLAotICAweGZmLCAweGU1LCAweDE4LCAweDU0LCAweDgwLCAweGZlLCAweDZmLCAweDYwLCAweDA2LCAweGVlLCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzfX0sCi0gezB4MGRjNiwgNjQsIHsgMHhlNSwgMHgxNSwgMHgyNCwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg1NCwgMHgyMCwKLSAgMHhmZSwgMHg2ZiwgMHg2MCwgMHgxNSwgMHhlZSwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHgzMCwgMHhlNCwgMHgwNCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg1NCwgMHg0MCwgMHhmZSwgMHg2ZiwgMHg2MCwgMHgxNSwgMHhlZX19LAotIHsweDBlMDYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTUsIDB4MDQsIDB4ZTUsCi0gIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsCi0gIDB4MjIsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MGYsIDB4MjcsIDB4ZTUsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MmEsIDB4MTQsIDB4NjAsIDB4NDEsIDB4MTQsCi0gIDB4NjAsIDB4NTgsIDB4MTQsIDB4NjAsIDB4NmYsIDB4MjQsIDB4MDQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGUsIDB4ZTUsIDB4N2UsIDB4N2IsIDB4N2Z9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweGMwLCAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJlLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLAotICAweDEyLCAweDljLCAweDc1LCAweDI0LCAweDAxLCAweDIyLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJkLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweDEyLCAweDEyLCAweDljLCAweDc1LCAweDI0LCAweDAyLCAweDIyLAotICAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJifX0sCi0gezB4MGU4NiwgNjQsIHsgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHgxMiwgMHgxMiwgMHg5YywgMHg3NSwgMHgyNCwgMHgwMywgMHgyMiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwKLSAgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyNywgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgxMiwgMHg5YywKLSAgMHg3NSwgMHgyNCwgMHgwNCwgMHgyMiwgMHgzMCwgMHgwNCwgMHgzMywgMHhjMiwgMHgwNCwgMHg1MywgMHgxMywgMHhkZiwgMHhlNCwgMHhmNSwgMHgxOCwgMHg3ZSwKLSAgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZSwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgxMSwgMHhhNn19LAotIHsweDBlYzYsIDY0LCB7IDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsCi0gIDB4MTgsIDB4YjQsIDB4MDMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4NzUsIDB4MjQsIDB4MDUsIDB4MjIsIDB4ZTUsIDB4MzYsCi0gIDB4NjAsIDB4M2IsIDB4ZDUsIDB4MzYsIDB4MGEsIDB4NTMsIDB4MTMsIDB4ZWYsIDB4MzAsIDB4MGEsIDB4MDQsIDB4ZDIsIDB4MDksIDB4YzIsIDB4MGEsIDB4ZTQsCi0gIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MzUsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmF9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDEyLCAweDExLCAweGE2LCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLAotICAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDAzLCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LCAweGY1LCAweDI0LAotICAweDIyLCAweGU0LCAweGY1LCAweDE5LCAweDdlLCAweDAwLCAweDdiLCAweDAxLCAweGU1LCAweDE1LCAweDI1LCAweDE5LCAweGY5LCAweGVlLCAweDM1LCAweDE0LAotICAweGZhLCAweGU0LCAweDEyLCAweDExLCAweGVjLCAweDA1LCAweDE5LCAweGU1LCAweDE5LCAweGI0LCAweDNjLCAweGU4LCAweGU1LCAweDE1LCAweDI0fX0sCi0gezB4MGY0NiwgNjQsIHsgMHgzNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg2YiwgMHg3ZiwgMHgxMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMywgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgxMiwgMHgxNSwgMHhkYiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NH19LAotIHsweDBmODYsIDY0LCB7IDB4ZjIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsCi0gIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MGYsIDB4ZTQsCi0gIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NmIsIDB4ZTQsIDB4ZmYsIDB4N2UsIDB4YTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTR9fSwKLSB7MHgwZmM2LCA2NCwgeyAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVlLCAweGYwLCAweGZkLCAweDEyLCAweDE2LCAweDZiLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYxLCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDE2LCAweDZiLCAweDdmLCAweDAxLCAweDEyLCAweDE1LCAweDQzLAotICAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDE2LCAweDZiLCAweDIyLCAweDUzLCAweDEzLCAweDNmLCAweDkwLCAweDdiLCAweGYxLCAweGUwLCAweDMwLAotICAweGUzLCAweDE2LCAweDdlLCAweDdiLCAweDdmLCAweGMwLCAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk4fX0sCi0gezB4MTAwNiwgNjQsIHsgMHg3NCwgMHgyZSwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHgxMiwgMHgwOCwgMHhkNywgMHg5MCwgMHg3YywgMHgzMSwgMHhlMCwgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwKLSAgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZCwgMHhmMCwgMHg3NSwKLSAgMHgxNiwgMHgwMiwgMHgxMiwgMHgwOCwgMHhkNywgMHg5MCwgMHg3YywgMHg3MSwgMHhlMCwgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwKLSAgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyYiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNH19LAotIHsweDEwNDYsIDY0LCB7IDB4MTIsIDB4MDgsIDB4ZDcsIDB4OTAsIDB4N2MsIDB4YjEsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTYsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsCi0gIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjcsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4MTIsIDB4MDgsIDB4ZDcsIDB4MDUsCi0gIDB4MTIsIDB4ZTUsIDB4MTIsIDB4NTQsIDB4MGYsIDB4ZjUsIDB4MTcsIDB4NzAsIDB4MDQsIDB4MTIsIDB4MTEsIDB4MWMsIDB4MjIsIDB4ZTUsIDB4MTcsIDB4YjQsCi0gIDB4MDEsIDB4MDQsIDB4MTIsIDB4MGMsIDB4OGMsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MDgsIDB4ZTUsIDB4MTN9fSwKLSB7MHgxMDg2LCA2NCwgeyAweDYwLCAweDA0LCAweDEyLCAweDBlLCAweDI4LCAweDIyLCAweDEyLCAweDBjLCAweDhjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LAotICAweDgxLCAweDM3LCAweDAyLCAweDEwLCAweGQ3LCAweDAyLCAweDEyLCAweDI0LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLAotICAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LAotICAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0fX0sCi0gezB4MTBjNiwgNjQsIHsgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwKLSAgMHg5MCwgMHgxOCwgMHg0NSwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwKLSAgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwKLSAgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNX19LAotIHsweDExMDYsIDY0LCB7IDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsCi0gIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmUsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MTEsIDB4YTUsIDB4YzIsCi0gIDB4MDksIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MjYsIDB4MTQsIDB4NjAsIDB4M2IsIDB4MTQsIDB4NjAsIDB4NTAsIDB4MjQsIDB4ODMsCi0gIDB4NjAsIDB4NjQsIDB4MjQsIDB4ODAsIDB4NzAsIDB4NjMsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MTQsIDB4N2IsIDB4NzUsIDB4MTV9fSwKLSB7MHgxMTQ2LCA2NCwgeyAweGMwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJlLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDRiLCAweDdlLCAweDdjLAotICAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJkLCAweGYwLCAweDc1LCAweDE2LAotICAweDAyLCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDMzLCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJiLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDEyLCAweDAwLCAweDQ2LCAweDgwLCAweDFiLCAweDdlfX0sCi0gezB4MTE4NiwgNjQsIHsgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyNywgMHhmMCwgMHg3NSwgMHgxNiwKLSAgMHgwOCwgMHgxMiwgMHgwMCwgMHg0NiwgMHg4MCwgMHgwMywgMHgxMiwgMHgxNywgMHg1MSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMywgMHhmMCwgMHgyMiwgMHhiYiwKLSAgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywKLSAgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNX19LAotIHsweDExYzYsIDY0LCB7IDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsCi0gIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsCi0gIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDIsCi0gIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzB9fSwKLSB7MHgxMjA2LCA2NCwgeyAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LCAweDAxLCAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLAotICAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzLCAweGEzLCAweGEzLCAweDgwLCAweGRmLCAweDkwLCAweDdmLCAweGFlLAotICAweGUwLCAweGZmLCAweGQzLCAweDkyLCAweDAwLCAweGU0LCAweDMzLCAweGZlLCAweGVmLCAweDRlLCAweGYwLCAweGQyLCAweGU4LCAweDQzLCAweGQ4LCAweDIwLAotICAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweGZmfX0sCi0gezB4MTI0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHg3NCwgMHgwMSwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHg3NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgwYiwgMHgxMiwgMHgxOCwgMHgwOSwgMHhjMiwgMHgwMSwKLSAgMHhlNCwgMHhmNSwgMHgyYiwgMHhmNSwgMHgzMSwgMHhjMiwgMHgwNywgMHhjMiwgMHgwMiwgMHg3NSwgMHgyOSwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwKLSAgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNiwgMHg3NSwgMHgzMiwgMHgwZiwgMHhlMCwgMHhmNSwgMHgyNiwgMHgzMCwgMHgwMiwgMHgwMywgMHgxMiwgMHgwZn19LAotIHsweDEyODYsIDY0LCB7IDB4ZWYsIDB4MzAsIDB4MDEsIDB4MDcsIDB4YzIsIDB4MDEsIDB4MTIsIDB4MDYsIDB4M2YsIDB4ODAsIDB4ZTIsIDB4MzAsIDB4MDgsIDB4ZGYsIDB4YzIsIDB4MDgsIDB4MTIsCi0gIDB4MTgsIDB4MmEsIDB4ODAsIDB4ZDgsIDB4MjIsIDB4ZTUsIDB4MTMsIDB4NTUsIDB4MTYsIDB4NjAsIDB4NmEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4NWMsIDB4ZTUsIDB4MTYsIDB4ZjQsIDB4NTIsIDB4MTMsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MjYsIDB4ZmYsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZmUsIDB4ZTQsIDB4ZmQsIDB4MGYsIDB4ZWYsIDB4YWEsIDB4MDYsIDB4NzAsIDB4MDF9fSwKLSB7MHgxMmM2LCA2NCwgeyAweDBlLCAweDE0LCAweGY1LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweGZjLCAweDc0LCAweDgwLCAweDJkLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LAotICAweDgzLCAweGVjLCAweGYwLCAweDBkLCAweGJkLCAweDBiLCAweGUyLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDEwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDJlLCAweGY1LAotICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDJmLCAweGY1LCAweDgyLCAweGU0fX0sCi0gezB4MTMwNiwgNjQsIHsgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHgyMiwgMHhlNSwgMHgyOCwgMHg0NSwgMHgyNywgMHg2MCwgMHg1NywgMHhhZSwgMHgyNywgMHhhZiwgMHgyOCwKLSAgMHhkMywgMHhlZiwgMHg5NCwgMHg0MCwgMHhlZSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHg3ZSwgMHgwMCwgMHg3ZiwgMHg0MCwgMHhjMywgMHhlNSwgMHgyOCwKLSAgMHg5ZiwgMHhmNSwgMHgyOCwgMHhlNSwgMHgyNywgMHg5ZSwgMHhmNSwgMHgyNywgMHhlNCwgMHhmZCwgMHhlZCwgMHhjMywgMHg5ZiwgMHhlNCwgMHg5ZSwgMHg1MCwKLSAgMHgxZiwgMHg4NSwgMHgzNCwgMHg4MiwgMHg4NSwgMHgzMywgMHg4MywgMHhlMCwgMHhmYywgMHg3NCwgMHgwMCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNH19LAotIHsweDEzNDYsIDY0LCB7IDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4MGQsIDB4MDUsIDB4MzQsIDB4ZTUsIDB4MzQsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MzMsIDB4ODAsIDB4ZGEsCi0gIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWMsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsCi0gIDB4ZWYsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YWMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NGEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjB9fSwKLSB7MHgxMzg2LCA2NCwgeyAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweDdmLAotICAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweGZmLCAweGYwLCAweDMwLCAweDAwLCAweDA3LCAweGU1LCAweDI5LCAweDU0LCAweDBmLCAweGZmLAotICAweDgwLCAweDAyLCAweDdmLCAweDAwLCAweDkwLCAweDdmLCAweDk2LCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDFmLCAweGYwLCAweGU0LAotICAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweGRmfX0sCi0gezB4MTNjNiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHgyMiwgMHg4ZiwgMHgxOSwgMHgwNSwgMHgyZCwgMHhlNSwgMHgyZCwgMHhhZSwgMHgyYywKLSAgMHg3MCwgMHgwMiwgMHgwNSwgMHgyYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxOSwgMHhmMCwgMHgxMiwgMHgxOCwgMHhlZiwgMHgwNSwKLSAgMHgyZCwgMHhlNSwgMHgyZCwgMHhhYywgMHgyYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgyYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwKLSAgMHgxNSwgMHgyMywgMHhlNSwgMHgyMywgMHg2MCwgMHgxZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNH19LAotIHsweDE0MDYsIDY0LCB7IDB4ZjUsIDB4ODMsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZTAsIDB4ZmUsIDB4MTIsIDB4MTgsIDB4ZDMsIDB4OGYsIDB4MTksIDB4ZWUsIDB4NGYsIDB4ZDAsIDB4ODIsCi0gIDB4ZDAsIDB4ODMsIDB4ZjAsIDB4ODAsIDB4YjUsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NGYsIDB4NzQsCi0gIDB4YzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTAsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4OTAsIDB4NzgsIDB4NTEsIDB4ZjAsIDB4YWUsIDB4MmMsIDB4ZTUsCi0gIDB4MmQsIDB4OTAsIDB4NzgsIDB4NTIsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTQsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTcsIDB4NzR9fSwKLSB7MHgxNDQ2LCA2NCwgeyAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDU1LAotICAweGYwLCAweDkwLCAweDc4LCAweDU1LCAweGUwLCAweDYwLCAweGZhLCAweDIyLCAweDhmLCAweDE5LCAweGU0LCAweGY1LCAweDFhLCAweDc1LCAweDFiLCAweGZmLAotICAweDc1LCAweDFjLCAweDE5LCAweDc1LCAweDFkLCAweDg2LCAweGFiLCAweDFiLCAweGFhLCAweDFjLCAweGE5LCAweDFkLCAweDkwLCAweDAwLCAweDAxLCAweDEyLAotICAweDExLCAweGJmLCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDFhLCAweDA1LCAweDFhLCAweGVmLCAweGI1LCAweDE5LCAweDAxLCAweDIyLCAweDEyfX0sCi0gezB4MTQ4NiwgNjQsIHsgMHgxMSwgMHhhNiwgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NSwgMHgxYiwgMHhmZiwgMHhmNSwgMHgxYywgMHg4OSwgMHgxZCwKLSAgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHhlNSwgMHgxMSwgMHhmMCwgMHhlNSwKLSAgMHgyYywgMHg5MCwgMHg3OCwgMHg0ZiwgMHhmMCwgMHhhZSwgMHgyYywgMHhlNSwgMHgyZCwgMHg5MCwgMHg3OCwgMHg1MCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1MSwKLSAgMHg3NCwgMHhjMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg1MiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NCwgMHhlNSwgMHgyMywgMHhmMCwgMHg5MH19LAotIHsweDE0YzYsIDY0LCB7IDB4NzgsIDB4NTcsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTUsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTUsIDB4ZTAsIDB4NjAsIDB4ZmEsIDB4MjIsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MGYsIDB4MTQsCi0gIDB4NjAsIDB4MTMsIDB4MTQsIDB4NjAsIDB4MTcsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4OTAsIDB4N2YsCi0gIDB4YzksIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MGMsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MDUsIDB4OTAsIDB4N2YsIDB4Y2R9fSwKLSB7MHgxNTA2LCA2NCwgeyAweGVmLCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDJhLCAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDE0LCAweDYwLCAweDBmLCAweDE0LCAweDYwLCAweDEzLCAweDE0LCAweDYwLCAweDE3LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGI3LAotICAweGVmLCAweGYwLCAweDgwLCAweDEzLCAweDkwLCAweDdmLCAweGI5LCAweGVmLCAweGYwLCAweDgwLCAweDBjLCAweDkwLCAweDdmLCAweGJiLCAweGVmLCAweGYwLAotICAweDgwLCAweDA1LCAweDkwLCAweDdmLCAweGJkLCAweGVmLCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDJhLCAweDIyLCAweGFlLCAweDA3LCAweGU0fX0sCi0gezB4MTU0NiwgNjQsIHsgMHhmZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwKLSAgMHgxNiwgMHg2YiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZSwgMHhmMCwgMHhlNCwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg2YiwKLSAgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHhmMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4Nn19LAotIHsweDE1ODYsIDY0LCB7IDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MDgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDEsIDB4ZjAsCi0gIDB4MTIsIDB4MTMsIDB4MGQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsCi0gIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzR9fSwKLSB7MHgxNWM2LCA2NCwgeyAweGYzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLAotICAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAotICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYyLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLAotICAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmfX0sCi0gezB4MTYwNiwgNjQsIHsgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywKLSAgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZn19LAotIHsweDE2NDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsCi0gIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDF9fSwKLSB7MHgxNjg2LCA2NCwgeyAweDc0LCAweGY3LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweGVkLCAweGYwLCAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LAotICAweDYwLCAweDBlLCAweDE0LCAweDYwLCAweDExLCAweDE0LCAweDYwLCAweDE0LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGNjfX0sCi0gezB4MTZjNiwgNjQsIHsgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwKLSAgMHgwZSwgMHgxNCwgMHg2MCwgMHgxMSwgMHgxNCwgMHg2MCwgMHgxNCwgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwKLSAgMHg3ZiwgMHhiOCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhiYywgMHhlMCwgMHhmZiwKLSAgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MH19LAotIHsweDE3MDYsIDY0LCB7IDB4MGUsIDB4MTQsIDB4NjAsIDB4MTEsIDB4MTQsIDB4NjAsIDB4MTQsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4YzksIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsCi0gIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODZ9fSwKLSB7MHgxNzQ2LCA2NCwgeyAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweGY1LCAweDM2LAotICAweDQzLCAweDEzLCAweDEwLCAweGEzLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLAotICAweDkwLCAweDdiLCAweDQzLCAweGUwLCAweGY1LCAweDM3LCAweGEzLCAweGUwLCAweDU0LCAweGYwLCAweGY1LCAweDI5LCAweGUwLCAweDYwLCAweDAyLCAweGQyLAotICAweDBhLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1fX0sCi0gezB4MTc4NiwgNjQsIHsgMHg4NiwgMHgwMCwgMHhkMiwgMHgwMSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwKLSAgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwKLSAgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgwOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwKLSAgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMH19LAotIHsweDE3YzYsIDY0LCB7IDB4MzIsIDB4MTIsIDB4MTgsIDB4YjcsIDB4YWUsIDB4MDcsIDB4MTIsIDB4MTgsIDB4YjcsIDB4YWQsIDB4MDcsIDB4ZWUsIDB4NmQsIDB4NjAsIDB4MTAsIDB4MTIsIDB4MTgsCi0gIDB4YjcsIDB4YWUsIDB4MDcsIDB4ZWUsIDB4NmQsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTgsIDB4YjcsIDB4YWQsIDB4MDcsIDB4ODAsIDB4ZWMsIDB4YWYsIDB4MDYsCi0gIDB4MjIsIDB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsCi0gIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODA2LCA2NCwgeyAweDAwLCAweDAwLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDBiLCAweDA0LAotICAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDE4LCAweDYwLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LAotICAweGY3LCAweGYwLCAweDIyLCAweDEyLCAweDEzLCAweDc3LCAweDEyLCAweDE3LCAweGY5LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLCAweGU3LCAweDBhLAotICAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDE4LCAweDYwLCAweDEyLCAweDE4LCAweDkzLCAweDEyLCAweDBhLCAweGNlLCAweDIyLCAweDAzfX0sCi0gezB4MTg0NiwgNjQsIHsgMHgzNSwgMHg4MCwgMHgwMCwgMHgwMCwgMHgwMywgMHgyZSwgMHg4MSwgMHgwMCwgMHgwMCwgMHhjMSwgMHg4NSwgMHhjMSwgMHg4MSwgMHhjMSwgMHgwOCwgMHhjMSwgMHgwMCwKLSAgMHhjMSwgMHgwNiwgMHgwMSwgMHgyMiwgMHgwMCwgMHgwMSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg4ZSwgMHgxNywgMHg4ZiwgMHgxOCwgMHhlNSwgMHgxOCwgMHgxNSwKLSAgMHgxOCwgMHhhZSwgMHgxNywgMHg3MCwgMHgwMiwgMHgxNSwgMHgxNywgMHg0ZSwgMHg2MCwgMHgwOCwgMHgxMiwgMHgxNywgMHhlOCwgMHgxMiwgMHgxNywgMHhlOCwKLSAgMHg4MCwgMHhlYiwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMH19LAotIHsweDE4ODYsIDY0LCB7IDB4MDQsIDB4ZmYsIDB4NDQsIDB4MTAsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZWYsIDB4NDQsIDB4MzAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsCi0gIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MGQsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MTgsIDB4NjAsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsCi0gIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4MTEsIDB4MjQsIDB4MDIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4ZTUsIDB4MTEsIDB4MjQsIDB4MDMsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZTV9fSwKLSB7MHgxOGM2LCA2NCwgeyAweDExLCAweDI0LCAweDA0LCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweGU1LCAweDExLCAweDI0LCAweDA1LAotICAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweGU1LCAweDExLCAweDI0LCAweDA2LCAweDkwLCAweDc4LAotICAweDQxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweGU1LCAweDExLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDUzLCAweGQ4LCAweGVmLCAweDMyLCAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweGZmfX0sCi0gezB4MTkwNiwgNjQsIHsgMHhmZiwgMHg0MCwgMHhjZCwgMHgwNiwgMHgyYSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwNCwgMHgwOSwgMHgwMiwgMHg3NCwgMHgwMCwgMHgwMSwKLSAgMHgwMSwgMHgwMCwgMHhhMCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwZSwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwKLSAgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwKLSAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNSwgMHgwMiwgMHg0MCwgMHgwMH19LAotIHsweDE5NDYsIDY0LCB7IDB4MDAsIDB4MDcsIDB4MDUsIDB4MDYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsCi0gIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsCi0gIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODUsIDB4MDIsIDB4NDAsIDB4MDAsCi0gIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDF9fSwKLSB7MHgxOTg2LCA2NCwgeyAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDQ4LCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLAotICAweDAwLCAweDZlLCAweDAwLCAweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDYxLCAweDAwLCAweDIwLCAweDAwLCAweDY0LCAweDAwLCAweDY5LCAweDAwLCAweDc2LAotICAweDAwLCAweDY5LCAweDAwLCAweDczLCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDZmLCAweDAwLCAweDY2LAotICAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDZmLCAweDAwLCAweDUzLCAweDAwLCAweDc5LCAweDAwfX0sCi0gezB4MTljNiwgNjQsIHsgMHg3MywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgyNCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwKLSAgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MywKLSAgMHgwMCwgMHg0MSwgMHgwMCwgMHgyZCwgMHgwMCwgMHgzNCwgMHgwMCwgMHgzOSwgMHgwMCwgMHg1NywgMHgwMCwgMHg0YywgMHgwMCwgMHg0MywgMHgwMCwgMHgyMiwKLSAgMHgwMywgMHg1NSwgMHgwMCwgMHg1MywgMHgwMCwgMHg0MSwgMHgwMCwgMHgyZCwgMHgwMCwgMHgzNiwgMHgwMCwgMHgzNSwgMHgwMCwgMHgyMCwgMHgwMH19LAotIHsweDFhMDYsIDY0LCB7IDB4MzIsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MzMsIDB4MDAsIDB4NmEsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MzMsIDB4MDAsIDB4MzEsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxYTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MWE4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDFhYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MTcsIDB4NzksIDB4MDAsIDB4MDIsIDB4MWJ9fSwKLSB7MHgxYjA2LCAyMSwgeyAweDA0LCAweDAwLCAweDAyLCAweDE3LCAweDI3LCAweDAwLCAweDAyLCAweDE3LCAweGEwLCAweDAwLCAweDAyLCAweDFiLCAweDEwLCAweDAwLCAweDAyLCAweDFiLCAweDE0LAotICAweDAwLCAweDAyLCAweDE1LCAweDc4fX0sCi0gezB4ZmZmZiwgIDAsIHsgMHgwMH19LAotfTsKLQotCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMKaW5kZXggNDNjZmRlOC4uYTczNDIwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYwpAQCAtMzA2LDYgKzMwNiw3IEBACiAJeyBVU0JfREVWSUNFKEJBTkRSSUNIX1ZFTkRPUl9JRCwgQkFORFJJQ0hfUFJPRFVDVF9DMTAwXzEpIH0sCiAJeyBVU0JfREVWSUNFKEJBTkRSSUNIX1ZFTkRPUl9JRCwgQkFORFJJQ0hfUFJPRFVDVF9DMTAwXzIpIH0sCiAJeyBVU0JfREVWSUNFKEtZT0NFUkFfVkVORE9SX0lELCBLWU9DRVJBX1BST0RVQ1RfS1BDNjgwKSB9LAorCXsgVVNCX0RFVklDRShRVUFMQ09NTV9WRU5ET1JfSUQsIDB4NjAwMCl9LCAvKiBaVEUgQUM4NzAwICovCiAJeyBVU0JfREVWSUNFKFFVQUxDT01NX1ZFTkRPUl9JRCwgMHg2NjEzKX0sIC8qIE9uZGEgSDYwMC9aVEUgTUYzMzAgKi8KIAl7IFVTQl9ERVZJQ0UoTUFYT05fVkVORE9SX0lELCAweDYyODApIH0sIC8qIEJQMy1VU0IgJiBCUDMtRVhUIEhTRFBBICovCiAJeyBVU0JfREVWSUNFKFRFTElUX1ZFTkRPUl9JRCwgVEVMSVRfUFJPRFVDVF9VQzg2NEUpIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMKaW5kZXggMTAzMTk1YS4uMmEwZGQxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYwpAQCAtNTcsNiArNTcsNyBAQAogCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJPRFVDVF9JRF9QSEFST1MpIH0sCiAJeyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQsIFBMMjMwM19QUk9EVUNUX0lEX0FMRElHQSkgfSwKIAl7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzX1BST0RVQ1RfSURfTU1YKSB9LAorCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJPRFVDVF9JRF9HUFJTKSB9LAogCXsgVVNCX0RFVklDRShJT0RBVEFfVkVORE9SX0lELCBJT0RBVEFfUFJPRFVDVF9JRCkgfSwKIAl7IFVTQl9ERVZJQ0UoSU9EQVRBX1ZFTkRPUl9JRCwgSU9EQVRBX1BST0RVQ1RfSURfUlNBUTUpIH0sCiAJeyBVU0JfREVWSUNFKEFURU5fVkVORE9SX0lELCBBVEVOX1BST0RVQ1RfSUQpIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmgKaW5kZXggY2ZmMTYwYS4uNmFjM2JiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5oCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuaApAQCAtMTUsNiArMTUsNyBAQAogI2RlZmluZSBQTDIzMDNfUFJPRFVDVF9JRF9SU0FRMwkJMHhhYWEyCiAjZGVmaW5lIFBMMjMwM19QUk9EVUNUX0lEX0FMRElHQQkweDA2MTEKICNkZWZpbmUgUEwyMzAzX1BST0RVQ1RfSURfTU1YCQkweDA2MTIKKyNkZWZpbmUgUEwyMzAzX1BST0RVQ1RfSURfR1BSUwkJMHgwNjA5CiAKICNkZWZpbmUgQVRFTl9WRU5ET1JfSUQJCTB4MDU1NwogI2RlZmluZSBBVEVOX1ZFTkRPUl9JRDIJCTB4MDU0NwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX2Z3XzM0MTAuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC90aV9md18zNDEwLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxZTg4NTcuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX2Z3XzM0MTAuaAorKysgL2Rldi9udWxsCkBAIC0xLDg4NSArMCwwIEBACi0vKiB2aTogdHM9OCBzdz04Ci0gKgotICogVEkgMzQxMCBVU0IgU2VyaWFsIERyaXZlciBGaXJtd2FyZSBIZWFkZXIKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgVGV4YXMgSW5zdHJ1bWVudHMKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICovCi0KLSNpZm5kZWYgX1RJX0ZXXzM0MTBfSF8KLSNkZWZpbmUgX1RJX0ZXXzM0MTBfSF8KLQotLyogZmlybXdhcmUgOS8xMC8wNCBGVzM0MTBfU3BlY2lhbF9TdGFydFdkb2dPblN0YXJ0UG9ydCAqLwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciB0aV9md18zNDEwW10gPSB7Ci0weEMyLCAweDM1LAkvKiBmaXJtd2FyZSBpbWFnZSBsZW5ndGggZXhjbHVkaW5nIGhlYWRlciwgbGl0dGxlIGVuZGlhbiAqLwotMHgwMCwgCQkvKiBwbGFjZWhvbGRlciBmb3IgY2hlY2tzdW0gKi8KLQotMHgwMiwweDAwLDB4MWUsMHgwMiwweDFhLDB4ZGIsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHgzMiwweGNiLDB4ZmYsMHhmZiwKLTB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweDAyLDB4MzMsMHg3NiwweDc1LDB4ODEsCi0weGNlLDB4OTAsMHhmZCwweGU4LDB4ODUsMHg4MywweGEwLDB4MTIsMHgzNCwweGVhLDB4ZWMsMHg0ZCwweDYwLDB4NmEsMHg3OCwweGFiLAotMHg4MCwweDAzLDB4NzYsMHgwMCwweDE4LDB4YjgsMHg5YywweGZhLDB4NzgsMHg3ZiwweDgwLDB4MDMsMHg3NiwweDAwLDB4MTgsMHhiOCwKLTB4NjUsMHhmYSwweDc4LDB4MjAsMHg4MCwweDAzLDB4NzYsMHgwMCwweDE4LDB4YjgsMHgyMCwweGZhLDB4OTAsMHhmZCwweGRkLDB4YWUsCi0weDgzLDB4YWYsMHg4MiwweDkwLDB4ZmIsMHhmOCwweDEyLDB4MDAsMHhhMSwweDYwLDB4MDUsMHhlNCwweGYwLDB4YTMsMHg4MCwweGY2LAotMHg5MCwweGZkLDB4ZTgsMHhhOCwweDgyLDB4OTAsMHhmZCwweGU4LDB4YTksMHg4MiwweGU4LDB4YzMsMHg5OSwweDUwLDB4MDUsMHg3NiwKLTB4MDAsMHgwOCwweDgwLDB4ZjYsMHg5MCwweDAwLDB4ZmYsMHgxMiwweDAwLDB4YWEsMHg5MCwweDAxLDB4MDMsMHgxMiwweDAwLDB4YWEsCi0weDkwLDB4MDEsMHgwNywweDEyLDB4MDAsMHhhYSwweDkwLDB4MDEsMHgwYiwweDEyLDB4MDAsMHhjOCwweDkwLDB4MDEsMHgxMSwweDEyLAotMHgwMCwweGM4LDB4OTAsMHgwMSwweDE3LDB4MTIsMHgwMCwweGM4LDB4NzUsMHhkMCwweDAwLDB4MTIsMHgzMywweGM4LDB4MDIsMHgwMSwKLTB4MWQsMHhlZiwweDY1LDB4ODIsMHg3MCwweDAzLDB4ZWUsMHg2NSwweDgzLDB4MjIsMHhlNCwweDkzLDB4ZjgsMHg3NCwweDAxLDB4OTMsCi0weGY5LDB4NzQsMHgwMiwweDkzLDB4ZmUsMHg3NCwweDAzLDB4OTMsMHhmNSwweDgyLDB4OGUsMHg4MywweGU4LDB4NjksMHg3MCwweDAxLAotMHgyMiwweGU0LDB4OTMsMHhmNiwweGEzLDB4MDgsMHg4MCwweGY0LDB4ZTQsMHg5MywweGZjLDB4NzQsMHgwMSwweDkzLDB4ZmQsMHg3NCwKLTB4MDIsMHg5MywweGZlLDB4NzQsMHgwMywweDkzLDB4ZmYsMHg3NCwweDA0LDB4OTMsMHhmOCwweDc0LDB4MDUsMHg5MywweGY1LDB4ODIsCi0weDg4LDB4ODMsMHgxMiwweDAwLDB4YTEsMHg3MCwweDAxLDB4MjIsMHhlNCwweDkzLDB4YTMsMHhhOCwweDgzLDB4YTksMHg4MiwweDhjLAotMHg4MywweDhkLDB4ODIsMHhmMCwweGEzLDB4YWMsMHg4MywweGFkLDB4ODIsMHg4OCwweDgzLDB4ODksMHg4MiwweDgwLDB4ZTMsMHgyMSwKLTB4MjEsMHgwNCwweDkyLDB4ODAsMHg4MCwweDA0LDB4OTIsMHhhYywweGFlLDB4MDQsMHg5MiwweGZkLDB4ZTgsMHgwNCwweDk0LDB4MDQsCi0weDk0LDB4ZmIsMHhmMywweDA0LDB4OTksMHgwNCwweDk0LDB4ZmIsMHhmMywweDA0LDB4ZjksMHgwNCwweGY5LDB4ODAsMHhmZSwweGQwLAotMHhmMCwweDMwLDB4ZjAsMHgwOSwweDIwLDB4ZjMsMHgwMywweGY2LDB4ODAsMHgxMCwweGY3LDB4ODAsMHgwZCwweDMwLDB4ZjEsMHgwOSwKLTB4MjAsMHhmMywweDAzLDB4ZjIsMHg4MCwweDA0LDB4ZjMsMHg4MCwweDAxLDB4ZjAsMHgyMCwweGY0LDB4MDQsMHhmYywweGQwLDB4ZTAsCi0weGNjLDB4MjIsMHhjYywweGMwLDB4ZTAsMHgxMiwweDAxLDB4NWEsMHgwMiwweDAxLDB4NGIsMHhiYywweDAwLDB4MDUsMHhkMCwweGYwLAotMHhhYywweGYwLDB4MjIsMHhjMywweDEzLDB4ZGMsMHhmYywweDAyLDB4MDEsMHgyMSwweGJmLDB4MDAsMHgwOSwweGVkLDB4MjUsMHg4MiwKLTB4NzUsMHhmMCwweDAxLDB4ZjgsMHhlNiwweDIyLDB4YmYsMHgwMSwweDBmLDB4ZWQsMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVlLDB4MzUsCi0weDgzLDB4ZjUsMHg4MywweDc1LDB4ZjAsMHgwNCwweGUwLDB4MjIsMHhlZCwweDI1LDB4ODIsMHg3NSwweGYwLDB4MDIsMHhmOCwweGUyLAotMHgyMiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZjUsMHhmMCwweGMzLDB4ZTQsMHg5MywweGEzLDB4YzUsMHhmMCwweDk1LDB4ZjAsMHhjMCwKLTB4ZTAsMHhjMywweGQwLDB4ZjAsMHhlNCwweDkzLDB4YTMsMHg5NSwweGYwLDB4NDAsMHgxMiwweGEzLDB4YTMsMHhjMywweGU1LDB4ZjAsCi0weDMzLDB4NTAsMHgwMiwweDA1LDB4ODMsMHgyNSwweDgyLDB4ZjUsMHg4MiwweDUwLDB4MDIsMHgwNSwweDgzLDB4NzQsMHgwMSwweDkzLAotMHhjMCwweGUwLDB4ZTQsMHg5MywweGMwLDB4ZTAsMHgyMiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZjUsMHhmMCwweGU0LDB4OTMsMHg3MCwKLTB4MDksMHg3NCwweDAxLDB4OTMsMHg3MCwweDA0LDB4YTMsMHhhMywweDgwLDB4MGMsMHg3NCwweDAyLDB4OTMsMHg2NSwweGYwLDB4NjAsCi0weDA1LDB4YTMsMHhhMywweGEzLDB4ODAsMHhlNywweDc0LDB4MDEsMHg5MywweGMwLDB4ZTAsMHhlNCwweDkzLDB4YzAsMHhlMCwweDIyLAotMHgxMiwweDAyLDB4NWIsMHgwMiwweDAxLDB4ZjIsMHgxMiwweDAyLDB4YWYsMHgwMiwweDAxLDB4ZjIsMHgxMiwweDAyLDB4ZDMsMHgwMiwKLTB4MDEsMHhmMiwweDMwLDB4ZTAsMHgwNywweDIwLDB4ZTMsMHgwMiwweGU2LDB4MjIsMHhlNywweDIyLDB4MzAsMHhlMSwweDA3LDB4MjAsCi0weGUzLDB4MDIsMHhlMiwweDIyLDB4ZTMsMHgyMiwweDMwLDB4ZTIsMHgwMiwweGUwLDB4MjIsMHhlNCwweDkzLDB4MjIsMHgxMiwweDAyLAotMHhkMywweDAyLDB4MDIsMHgxYSwweDEyLDB4MDIsMHhhZiwweDAyLDB4MDIsMHgxYSwweGFiLDB4ZjAsMHgxMiwweDAyLDB4MjQsMHhjYiwKLTB4YzUsMHhmMCwweGNiLDB4MjIsMHgzMCwweGUwLDB4MTAsMHgyMCwweGUzLDB4MDYsMHhlNiwweGY1LDB4ZjAsMHgwOCwweGU2LDB4MjIsCi0weGU3LDB4ZjUsMHhmMCwweDA5LDB4ZTcsMHgxOSwweDIyLDB4MzAsMHhlMSwweDEwLDB4MjAsMHhlMywweDA2LDB4ZTIsMHhmNSwweGYwLAotMHgwOCwweGUyLDB4MjIsMHhlMywweGY1LDB4ZjAsMHgwOSwweGUzLDB4MTksMHgyMiwweDMwLDB4ZTIsMHgwNiwweGUwLDB4ZjUsMHhmMCwKLTB4YTMsMHhlMCwweDIyLDB4ZTQsMHg5MywweGY1LDB4ZjAsMHg3NCwweDAxLDB4OTMsMHgyMiwweGJiLDB4MDAsMHgwMywweDc0LDB4MDksCi0weDIyLDB4YmIsMHgwMSwweDA3LDB4ODksMHg4MiwweDhhLDB4ODMsMHg3NCwweDA0LDB4MjIsMHhiYiwweDAyLDB4MDcsMHg4OSwweDgyLAotMHg4YSwweDgzLDB4NzQsMHgxMCwweDIyLDB4NzQsMHgwYSwweDIyLDB4MDIsMHgwMiwweDdiLDB4YmIsMHgwMCwweDA3LDB4ZTksMHgyNSwKLTB4ODIsMHhmOCwweDc0LDB4MDEsMHgyMiwweGJiLDB4MDEsMHgwZCwweGU5LDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlYSwweDM1LDB4ODMsCi0weGY1LDB4ODMsMHg3NCwweDA0LDB4MjIsMHhiYiwweDAyLDB4MGQsMHhlOSwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWEsMHgzNSwweDgzLAotMHhmNSwweDgzLDB4NzQsMHgxMCwweDIyLDB4ZTksMHgyNSwweDgyLDB4ZjgsMHg3NCwweDAyLDB4MjIsMHgwMiwweDAyLDB4YWYsMHhiZiwKLTB4MDAsMHgwNSwweGVkLDB4ZjgsMHg3NCwweDAxLDB4MjIsMHhiZiwweDAxLDB4MDcsMHg4ZCwweDgyLDB4OGUsMHg4MywweDc0LDB4MDQsCi0weDIyLDB4YmYsMHgwMiwweDA3LDB4OGQsMHg4MiwweDhlLDB4ODMsMHg3NCwweDEwLDB4MjIsMHhlZCwweGY4LDB4NzQsMHgwMiwweDIyLAotMHgwMiwweDAyLDB4ZDMsMHhiZiwweDAwLDB4MDcsMHhlZCwweDI1LDB4ODIsMHhmOCwweDc0LDB4MDEsMHgyMiwweGJmLDB4MDEsMHgwZCwKLTB4ZWQsMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVlLDB4MzUsMHg4MywweGY1LDB4ODMsMHg3NCwweDA0LDB4MjIsMHhiZiwweDAyLDB4MGQsCi0weGVkLDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlZSwweDM1LDB4ODMsMHhmNSwweDgzLDB4NzQsMHgxMCwweDIyLDB4ZWQsMHgyNSwweDgyLAotMHhmOCwweDc0LDB4MDIsMHgyMiwweDAyLDB4MDMsMHgwNywweGMwLDB4ZTAsMHgxMiwweDAyLDB4NWIsMHgwMiwweDAzLDB4MWYsMHhjMCwKLTB4ZTAsMHgxMiwweDAyLDB4YWYsMHgwMiwweDAzLDB4MWYsMHhjMCwweGUwLDB4MTIsMHgwMiwweGQzLDB4MDIsMHgwMywweDFmLDB4MzAsCi0weGUwLDB4MGIsMHgyMCwweGUzLDB4MDQsMHhkMCwweGUwLDB4ZjYsMHgyMiwweGQwLDB4ZTAsMHhmNywweDIyLDB4MzAsMHhlMSwweDBiLAotMHgyMCwweGUzLDB4MDQsMHhkMCwweGUwLDB4ZjIsMHgyMiwweGQwLDB4ZTAsMHhmMywweDIyLDB4ZDAsMHhlMCwweGYwLDB4MjIsMHhjOSwKLTB4Y2QsMHhjOSwweGNhLDB4Y2UsMHhjYSwweGNiLDB4Y2YsMHhjYiwweDEyLDB4MDMsMHg1MiwweGVkLDB4ZjksMHhlZSwweGZhLDB4ZWYsCi0weGZiLDB4MjIsMHhiYiwweDAwLDB4MmYsMHhiZiwweDAwLDB4MGEsMHhmYSwweGVkLDB4ZjgsMHhlNywweGY2LDB4MDgsMHgwOSwweGRhLAotMHhmYSwweDIyLDB4YmYsMHgwMSwweDEyLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmOCwweDAyLDB4MDMsMHg2ZiwweDA5LDB4YTMsMHhlNywKLTB4ZjAsMHhkOCwweGZhLDB4MjIsMHgwMiwweDAzLDB4N2EsMHhmYSwweGVkLDB4ZjgsMHhlNywweGYyLDB4MDgsMHgwOSwweGRhLDB4ZmEsCi0weDIyLDB4MDIsMHgwMywweDg0LDB4YmIsMHgwMSwweDRkLDB4YmYsMHgwMCwweDE0LDB4ODksMHg4MiwweDhhLDB4ODMsMHhmOSwweGVkLAotMHhmOCwweDAyLDB4MDMsMHg5NiwweDA4LDB4YTMsMHhlMCwweGY2LDB4ZDksMHhmYSwweDIyLDB4MDIsMHgwMywweGE3LDB4YmYsMHgwMSwKLTB4MjIsMHg4ZCwweDgyLDB4OGUsMHg4MywweGZiLDB4MDgsMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZTAsCi0weGEzLDB4YzksMHhjNSwweDgyLDB4YzksMHhjYSwweGM1LDB4ODMsMHhjYSwweGYwLDB4YTMsMHhkYiwweGVhLDB4ZDgsMHhlOCwweDIyLAotMHgwMiwweDAzLDB4Y2EsMHg4ZCwweDgyLDB4OGUsMHg4MywweGY5LDB4ZWQsMHhmOCwweGUwLDB4ZjIsMHgwOCwweGEzLDB4ZDksMHhmYSwKLTB4MjIsMHgwMiwweDAzLDB4ZDQsMHhiYiwweDAyLDB4NGQsMHhiZiwweDAwLDB4MTIsMHg4OSwweDgyLDB4OGEsMHg4MywweGY5LDB4ZWQsCi0weGY4LDB4MDIsMHgwMywweGU2LDB4MDgsMHhhMywweGU0LDB4OTMsMHhmNiwweGQ5LDB4ZjksMHgyMiwweGJmLDB4MDEsMHgyMywweDhkLAotMHg4MiwweDhlLDB4ODMsMHhmYiwweDA4LDB4YzksMHhjNSwweDgyLDB4YzksMHhjYSwweGM1LDB4ODMsMHhjYSwweGU0LDB4OTMsMHhhMywKLTB4YzksMHhjNSwweDgyLDB4YzksMHhjYSwweGM1LDB4ODMsMHhjYSwweGYwLDB4YTMsMHhkYiwweGU5LDB4ZDgsMHhlNywweDIyLDB4MDIsCi0weDA0LDB4MTksMHg4OSwweDgyLDB4OGEsMHg4MywweGY5LDB4ZWQsMHhmOCwweGU0LDB4OTMsMHhmMiwweDA4LDB4YTMsMHhkOSwweGY5LAotMHgyMiwweDAyLDB4MDQsMHgyYSwweGJmLDB4MDAsMHgwZCwweGZhLDB4ZWQsMHhmOCwweGUzLDB4ZjYsMHgwOCwweDA5LDB4ZGEsMHhmYSwKLTB4MjIsMHgwMiwweDA0LDB4MzQsMHhiZiwweDAxLDB4MTIsMHg4ZCwweDgyLDB4OGUsMHg4MywweGY4LDB4MDIsMHgwNCwweDQxLDB4MDksCi0weGEzLDB4ZTMsMHhmMCwweGQ4LDB4ZmEsMHgyMiwweDAyLDB4MDQsMHg0YywweGZhLDB4ZWQsMHhmOCwweGUzLDB4ZjIsMHgwOCwweDA5LAotMHhkYSwweGZhLDB4MjIsMHgwMiwweDA0LDB4NTYsMHhlNiwweGZiLDB4MDgsMHhlNiwweGZhLDB4MDgsMHhlNiwweGY5LDB4MDQsMHhmNiwKLTB4MTgsMHg3MCwweDAxLDB4MDYsMHgyMiwweGU2LDB4ZmYsMHgwOCwweGU2LDB4ZmUsMHgwOCwweGU2LDB4ZmQsMHgyMiwweGVmLDB4ZjAsCi0weGEzLDB4ZWUsMHhmMCwweGEzLDB4ZWQsMHhmMCwweDIyLDB4ZWIsMHhmMCwweGEzLDB4ZWEsMHhmMCwweGEzLDB4ZTksMHhmMCwweDIyLAotMHhlMCwweGZmLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZkLDB4MjIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwKLTB4ZjksMHgyMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHhmOSwweDAwLDB4NjEsMHgwNSwweDY4LDB4MDAsCi0weDI2LDB4MDUsMHg4ZiwweDAwLDB4MzMsMHgwYSwweDAwLDB4MDAsMHg2MSwweDBhLDB4NmMsMHgwMCwweDY2LDB4MTUsMHgxZCwweDAwLAotMHg2MSwweDBjLDB4ZjAsMHgwMCwweDYxLDB4MDksMHhhMCwweDAwLDB4NjEsMHgwOSwweGQ3LDB4MDAsMHg2MSwweDBkLDB4YjcsMHgwMCwKLTB4NjEsMHgwYiwweGU4LDB4MDAsMHg2MSwweDBhLDB4MTMsMHgwMCwweDYxLDB4MGEsMHg0OCwweDAwLDB4NjEsMHgxNywweDE1LDB4MDAsCi0weDMzLDB4MTcsMHgyOCwweDAwLDB4MzQsMHgxZCwweGY2LDB4MDAsMHg0MywweDFlLDB4YTEsMHgwMCwweDQ0LDB4MjAsMHgwZSwweDAwLAotMHg0NCwweDFmLDB4ZmMsMHgwMCwweDQ3LDB4MWUsMHhjOCwweDAwLDB4NDcsMHgxZiwweDZkLDB4MDAsMHg0ZCwweDFmLDB4YmUsMHgwMCwKLTB4NGYsMHgxZSwweGVhLDB4MDAsMHg1OCwweDMyLDB4NTYsMHgwMCwweDYxLDB4N2MsMHhjYywweDdkLDB4ZmYsMHgxMiwweDFjLDB4YTcsCi0weDIyLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHgyMCwweGU3LDB4MmQsMHhjMiwweGFmLDB4YWUsMHg1OSwweGFmLDB4NTgsMHg3NSwweDVhLAotMHgyMCwweGU1LDB4NWEsMHgxNCwweGM1LDB4NWEsMHg2MCwweDE5LDB4ZTQsMHhmZSwweDdmLDB4MDUsMHhlZSwweDRmLDB4Y2UsMHgyNCwKLTB4ZmYsMHhjZSwweGNmLDB4MzQsMHhmZiwweGNmLDB4NjAsMHgwNywweGU0LDB4OTAsMHhmZiwweDkyLDB4ZjAsMHg4MCwweGVkLDB4ODAsCi0weGUwLDB4OGUsMHg1OSwweDhmLDB4NTgsMHgyMiwweDEyLDB4MDUsMHgwMSwweDdkLDB4MDcsMHg3YywweGI3LDB4MTIsMHgzMiwweDcyLAotMHg3ZCwweDBmLDB4N2MsMHg2ZSwweDEyLDB4MzIsMHg4YywweDc4LDB4OWQsMHg3YSwweDA2LDB4ZTQsMHhmNiwweDA4LDB4ZGEsMHhmYywKLTB4N2EsMHgwNiwweDEyLDB4MDUsMHhjNCwweDdjLDB4MDMsMHgxMiwweDBlLDB4NGMsMHgxMiwweDIxLDB4NGEsMHhlNCwweGZlLDB4ZmYsCi0weDdjLDB4MGYsMHgxMiwweDMxLDB4ZmIsMHhkMiwweGE4LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHhlNCwweDkwLDB4ZmMsMHgzOCwweGYwLAotMHg5MCwweGZmLDB4ZjAsMHhlMCwweDMwLDB4ZTQsMHgwOCwweDc0LDB4MDEsMHg5MCwweGZjLDB4MzksMHhmMCwweDgwLDB4MDUsMHhlNCwKLTB4OTAsMHhmYywweDM5LDB4ZjAsMHg3ZCwweDBhLDB4N2MsMHgwMCwweDEyLDB4MjUsMHgyNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsCi0weDMwLDB4ZTYsMHg5MCwweGZjLDB4MzksMHhlMCwweDE0LDB4NzAsMHgwZSwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgxMCwweGYwLAotMHg3YywweDAwLDB4MTIsMHgyNSwweGJmLDB4ODAsMHgxOSwweDkwLDB4ZmMsMHgzOSwweGUwLDB4NzAsMHgwZSwweDkwLDB4ZmYsMHhmMCwKLTB4ZTAsMHg1NCwweGVmLDB4ZjAsMHg3YywweDAwLDB4MTIsMHgyNSwweGJmLDB4ODAsMHgwNSwweDdjLDB4MTcsMHgxMiwweDI1LDB4YmYsCi0weDEyLDB4MzEsMHg2OSwweDIyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGFiLDB4ZjAsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LAotMHgyMCwweGYwLDB4MjIsMHg4YywweDM3LDB4OGQsMHgzNiwweDc4LDB4ODIsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4ZWQsMHhmZSwKLTB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHg3OCwweDgwLDB4ZjYsMHg3OCwweDgyLDB4ZTYsCi0weGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLAotMHg1NCwweDBmLDB4ZmMsMHg3ZCwweDgwLDB4MTIsMHgxNywweDQ2LDB4NzgsMHg4MCwweGU2LDB4NzAsMHgwZCwweGFkLDB4M2EsMHhhZSwKLTB4MzksMHhhZiwweDM4LDB4ZTQsMHgxMiwweDAzLDB4MGYsMHg3YywweDA4LDB4MjIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4ZmUsCi0weGYwLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg4MCwweDFlLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LAotMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweDI1LDB4ZTAsMHg0NCwKLTB4MDEsMHg5MCwweGZmLDB4ZjMsMHhmMCwweDAyLDB4MDYsMHhkMCwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsCi0weGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAyLDB4MGUsMHg1NCwweGZlLDB4OTAsMHhmZiwweGYzLAotMHhmMCwweDgwLDB4MmIsMHg3OCwweDgyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwKLTB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4ZmEsMHhlYiwweDkwLDB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGJmLDB4NDAsCi0weDBkLDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LDB4ZTQsMHgxMiwweDAzLDB4MGYsMHg3YywweDE4LDB4MjIsMHg3OCwweDgyLAotMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwKLTB4MGUsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhiZiwweDQwLDB4MGQsMHhhZCwweDNhLDB4YWUsMHgzOSwweGFmLDB4MzgsCi0weGU0LDB4MTIsMHgwMywweDBmLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLAotMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDIsMHgwZSwweDQ0LDB4MDEsMHg5MCwweGZmLDB4ZjMsMHhmMCwKLTB4NzgsMHg4MywweGU2LDB4MjQsMHgwMywweGY2LDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNiwweDc4LDB4ODAsMHhlNiwweDI0LDB4ZmUsCi0weDUwLDB4MDksMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDgwLDB4MDcsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LAotMHgwMiwweGYwLDB4ZTQsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDc4LDB4ODEsMHg3NiwweDAwLDB4NzgsMHg4MCwweGU2LDB4MjQsMHhmZiwKLTB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwweDc4LDB4ODEsMHhlNiwweDdmLDB4MDAsMHhmZSwweGVjLDB4ZDMsMHg5ZSwweGVmLDB4NjQsCi0weDgwLDB4Y2QsMHg2NCwweDgwLDB4OWQsMHg0MCwweDJmLDB4MTIsMHgwOCwweGE0LDB4NDAsMHgwZiwweDc4LDB4ODEsMHhlNiwweGFkLAotMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LDB4MTIsMHgwMywweDBmLDB4N2MsMHgxOCwweDIyLDB4OTAsMHhmZiwweGYyLDB4ZTAsMHhmYywKLTB4NzgsMHg4MiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlYywweGYwLDB4NzgsMHg4MSwweDA2LDB4YTMsMHg3OCwweDgyLDB4YTYsCi0weDgzLDB4MDgsMHhhNiwweDgyLDB4ODAsMHhiNSwweDEyLDB4MDgsMHhhNCwweDQwLDB4MGYsMHg3OCwweDgxLDB4ZTYsMHhhZCwweDNhLAotMHhhZSwweDM5LDB4YWYsMHgzOCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDkwLDB4ZmYsMHhmMiwweGUwLDB4ZmMsMHg3OCwKLTB4ODIsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsMHhmMCwweDc4LDB4ODAsMHhlNiwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsCi0weDM4LDB4MTIsMHgwMywweDBmLDB4N2MsMHgwMCwweDIyLDB4OGMsMHgzNywweDhkLDB4MzYsMHg3OCwweDgyLDB4ZWQsMHhmNiwweDA4LAotMHhlYywweGY2LDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4NzgsMHg4MSwKLTB4ZjYsMHg3OCwweDgyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsCi0weDA0LDB4MTIsMHgwMSwweGVjLDB4NTQsMHgwZiwweGZjLDB4N2QsMHg4MSwweDEyLDB4MTcsMHg0NiwweDc4LDB4ODEsMHhlNiwweDcwLAotMHgwMywweDdjLDB4MDgsMHgyMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhmZSwweGYwLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwKLTB4ZmQsMHhmMCwweDgwLDB4MWIsMHg3OCwweDgyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsCi0weDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4MjUsMHhlMCwweDkwLDB4ZmYsMHhmMywweGYwLDB4ODAsMHg1YiwweDc4LAotMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDYsMHgxMiwKLTB4MDIsMHgwZSwweDU0LDB4ZmUsMHg5MCwweGZmLDB4ZjMsMHhmMCwweDgwLDB4MjEsMHg3OCwweDgyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsCi0weGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4ZmEsMHhlYiwweDkwLAotMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4YmYsMHg0MCwweDAzLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwKLTB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweDkwLDB4ZmYsCi0weGYxLDB4ZjAsMHgxMiwweDA4LDB4YmYsMHg0MCwweDAzLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg4MywweGU2LDB4MjQsMHgwYSwweGY2LAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY2LDB4NzgsMHg4MCwweDc2LDB4MDAsMHg3OCwweDgxLDB4ZTYsMHgyNCwweGZmLDB4ZmMsMHhlNCwKLTB4MzQsMHhmZiwweGZkLDB4NzgsMHg4MCwweGU2LDB4N2YsMHgwMCwweGZlLDB4ZWMsMHhkMywweDllLDB4ZWYsMHg2NCwweDgwLDB4Y2QsCi0weDY0LDB4ODAsMHg5ZCwweDQwLDB4MjEsMHg3OCwweDgyLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4OTAsMHhmZiwweGYxLAotMHhmMCwweDEyLDB4MDgsMHhiZiwweDQwLDB4MDMsMHg3YywweDE4LDB4MjIsMHg3OCwweDgwLDB4MDYsMHg3OCwweDgzLDB4MDYsMHhlNiwKLTB4MTgsMHg3MCwweDAxLDB4MDYsMHg4MCwweGMzLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg3OCwweDgyLDB4ODYsCi0weDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhiZiwweDQwLDB4MDMsMHg3YywweDE4LAotMHgyMiwweDdjLDB4MDAsMHgyMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4MjAsMHhlNywweDEyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHgzMCwKLTB4ZTUsMHgwOSwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgyMCwweGYwLDB4YzMsMHgyMiwweDgwLDB4ZTcsMHhkMywweDIyLDB4OTAsCi0weGZmLDB4ZjAsMHhlMCwweDIwLDB4ZTMsMHgxMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4MzAsMHhlNSwweDA5LDB4OTAsMHhmZiwweGYwLAotMHhlMCwweDQ0LDB4MjAsMHhmMCwweGMzLDB4MjIsMHg4MCwweGU3LDB4ZDMsMHgyMiwweDhjLDB4NDIsMHg4ZCwweDQxLDB4N2MsMHgwMCwKLTB4ZWQsMHg1NCwweGYwLDB4ZmQsMHhlYywweDcwLDB4MDMsMHhlZCwweDY0LDB4MzAsMHg3MCwweDA1LDB4NzUsMHgzZSwweDAzLDB4ODAsCi0weDAzLDB4NzUsMHgzZSwweDA0LDB4YWMsMHgzZSwweDEyLDB4MGYsMHg2OSwweDc1LDB4ODMsMHgwMCwweDg1LDB4ODMsMHg0MCwweGU1LAotMHg0MSwweDU0LDB4MGYsMHhmNSwweDNmLDB4ZTUsMHg0MCwweDcwLDB4MDQsMHhlNSwweDNmLDB4NjQsMHgwMywweDcwLDB4MzUsMHhlNSwKLTB4M2UsMHgyNCwweGZkLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweDAyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsCi0weGUwLDB4MzAsMHhlNiwweDA1LDB4MTIsMHgxMCwweDRiLDB4ODAsMHgxOSwweGU1LDB4M2UsMHgyNCwweDlkLDB4ZjgsMHhjNiwweDU0LAotMHhmYiwweGY2LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHg3NCwKLTB4MGYsMHhmMCwweDgwLDB4NTksMHhlNSwweDQwLDB4NzAsMHgwNCwweGU1LDB4M2YsMHg2NCwweDA0LDB4NzAsMHg0OCwweGU1LDB4M2UsCi0weDI0LDB4ZmQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4MDIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLAotMHgzMCwweGU1LDB4MDcsMHhhYywweDQyLDB4YWQsMHg0MSwweDEyLDB4MWMsMHgzYywweGU1LDB4NDIsMHgzMCwweGUyLDB4MTUsMHg3OCwKLTB4YWQsMHhlNiwweDMwLDB4ZTAsMHgwZiwweDc4LDB4YWQsMHhlNiwweDMwLDB4ZTEsMHgwOSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsCi0weDA0LDB4MTIsMHgzMSwweGZiLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweDc0LDB4MGYsMHhmMCwweDgwLDB4MDcsMHhlNCwweGZjLDB4N2QsMHhlZSwweDEyLDB4MWMsMHgzYywweGMyLDB4MDMsMHgyMiwKLTB4MTIsMHgzMCwweGU2LDB4MTIsMHgwZiwweDY5LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsMHhmYywweDM4LDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LAotMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg5MCwweGZjLDB4MzksMHhmMCwweGMyLDB4MDMsMHg3ZCwweDAyLDB4N2MsMHgwMCwKLTB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweGVjLDB4MjQsCi0weDlkLDB4ZjgsMHhlNiwweDMwLDB4ZTEsMHgwNywweDdjLDB4MTMsMHgxMiwweDI1LDB4YmYsMHg4MCwweDBmLDB4OTAsMHhmYywweDM5LAotMHhlMCwweGZkLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDEzLDB4YzgsMHgxMiwweDI1LDB4YmYsMHgxMiwweDMxLDB4NjksMHgyMiwKLTB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHg3ZCwweDAwLDB4MTIsMHgwZiwweDA5LDB4MTIsMHgyNSwweGJmLDB4MTIsCi0weDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDc4LDB4OTUsMHhlYywweGY2LDB4ZWMsMHgyNCwweDlkLDB4ZjgsMHhlNiwweDMwLAotMHhlMiwweDA3LDB4N2MsMHgxMywweDEyLDB4MjUsMHhiZiwweDgwLDB4MWIsMHg3OCwweDk1LDB4ZTYsMHgyNCwweDlkLDB4ZjgsMHhlNiwKLTB4MjAsMHhlMSwweDA3LDB4N2MsMHgxMiwweDEyLDB4MjUsMHhiZiwweDgwLDB4MGEsMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLDB4MTMsCi0weGVjLDB4MTIsMHgyNSwweGJmLDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweGVjLAotMHgyNCwweDlkLDB4ZjgsMHhlNiwweDIwLDB4ZTIsMHgwNywweDdjLDB4MTEsMHgxMiwweDI1LDB4YmYsMHg4MCwweDBhLDB4NzgsMHg5NSwKLTB4ZTYsMHhmYywweDEyLDB4MTQsMHhlZCwweDEyLDB4MjUsMHhiZiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4NzgsCi0weDk1LDB4ZWMsMHhmNiwweDEyLDB4MGYsMHg2OSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDksMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLDB4ZmMsMHgzZiwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwYSwweGY1LDB4ODIsMHgxOCwKLTB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsMHhmYywweDQwLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAzLDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmYywweDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGY1LDB4NjIsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmNSwweDYzLDB4OGMsMHg2MSwweGU0LDB4ZWMsMHgzMywweDMzLDB4NTQsCi0weDAxLDB4NzgsMHg5NSwweGY2LDB4NjAsMHgwOCwweGU1LDB4NjIsMHgzMCwweGUxLDB4MDMsMHg3OCwweDk1LDB4MDYsMHg3OCwweDk1LAotMHhlNiwweDkwLDB4ZmMsMHg0MSwweGYwLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4ZmQsMHhhMywweGUwLDB4NTQsMHgwYywweGZjLDB4ZWQsMHg1NCwweGU2LDB4OGMsMHg2NSwweGY1LDB4NjQsCi0weGU1LDB4NjEsMHgzMCwweGU1LDB4MDMsMHg0MywweDY1LDB4MDEsMHhlNSwweDYyLDB4MjAsMHhlNSwweDBlLDB4ZTUsMHg2MSwweDU0LAotMHg3ZiwweDcwLDB4MDgsMHhlNSwweDYxLDB4MjAsMHhlNywweDAzLDB4NDMsMHg2NSwweDAyLDB4ZTUsMHg2MSwweDMwLDB4ZTMsMHgwMywKLTB4NDMsMHg2NSwweDEwLDB4ZTUsMHg2MSwweDMwLDB4ZTIsMHgwMywweDQzLDB4NjUsMHgyMCwweGU1LDB4NjEsMHg1NCwweDAzLDB4NjAsCi0weDAzLDB4NDMsMHg2NSwweDQwLDB4ZTUsMHg2MSwweDMwLDB4ZTEsMHgwMywweDQzLDB4NjUsMHg4MCwweGU1LDB4NjEsMHgzMCwweGU0LAotMHgwMywweDQzLDB4NjQsMHgwMSwweGU1LDB4NjEsMHgzMCwweGU2LDB4MDMsMHg0MywweDY0LDB4MDgsMHhlNSwweDYyLDB4MjAsMHhlNCwKLTB4MGUsMHhlNSwweDYxLDB4NTQsMHg3ZiwweDcwLDB4MDgsMHhlNSwweDYxLDB4MjAsMHhlNywweDAzLDB4NDMsMHg2NCwweDEwLDB4NTMsCi0weDY1LDB4ZmIsMHg1MywweDY0LDB4NzksMHhhZCwweDY0LDB4ZTUsMHg2NSwweDkwLDB4ZmMsMHgzYSwweGNkLDB4ZjAsMHhhMywweGNkLAotMHhmMCwweGU1LDB4NjMsMHgzMCwweGUzLDB4MGQsMHhlNSwweDYzLDB4NTQsMHgzMCwweGM0LDB4NTQsMHgwZiwweDkwLDB4ZmMsMHgzZCwKLTB4ZjAsMHg4MCwweDA1LDB4ZTQsMHg5MCwweGZjLDB4M2QsMHhmMCwweGU1LDB4NjMsMHg1NCwweDAzLDB4OTAsMHhmYywweDNjLDB4ZjAsCi0weGU1LDB4NjMsMHg1NCwweDA0LDB4YzMsMHgxMywweDkwLDB4ZmMsMHgzZSwweGYwLDB4OTAsMHhmYywweDNjLDB4ZTAsMHg3MCwweDBlLAotMHg3ZCwweDM1LDB4N2UsMHhmYywweDdmLDB4MDEsMHg3NCwweDAxLDB4OTAsMHgwMCwweDA5LDB4MTIsMHgwMSwweDQyLDB4NzgsMHhhOSwKLTB4ZTYsMHgyNCwweDA4LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4N2MsMHgwMCwweGZkLDB4NzgsCi0weGE5LDB4ZTYsMHgyNCwweDA3LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4N2YsMHgwMCwweDRjLAotMHhmZSwweGVmLDB4NGQsMHg5MCwweGZjLDB4MzgsMHhmMCwweGEzLDB4Y2UsMHhmMCwweGNlLDB4YzIsMHgwMywweDdkLDB4MGEsMHg3YywKLTB4MDAsMHgxMiwweDI1LDB4MjYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDc4LDB4OTUsMHhlYywweGY2LDB4NzgsCi0weDlhLDB4NzYsMHgwMSwweDA4LDB4NzYsMHhmYywweDA4LDB4NzYsMHgzOCwweDc4LDB4OTcsMHg3NiwweDBjLDB4NzgsMHg5YSwweDEyLAotMHgwNCwweDY1LDB4MTIsMHgwMiwweDE0LDB4NzgsMHg5OCwweGNiLDB4ZjYsMHhjYiwweDA4LDB4ZjYsMHg3ZiwweDAwLDB4ZWYsMHgyNCwKLTB4ZWEsMHg0MCwweDFmLDB4ZTQsMHhlZiwweDI1LDB4ZTAsMHg5MCwweDM1LDB4MmMsMHhmZCwweDkzLDB4Y2QsMHgwNCwweDkzLDB4NzgsCi0weDk5LDB4NjYsMHg3MCwweDAzLDB4ZWQsMHgxOCwweDY2LDB4NzAsMHgwNiwweDc4LDB4OTcsMHg3NiwweDAwLDB4ODAsMHgwMywweDBmLAotMHg4MCwweGRjLDB4NzgsMHg5NiwweGVmLDB4ZjYsMHg3OCwweDlhLDB4MTIsMHgwNCwweDY1LDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwMiwKLTB4MGUsMHg3OCwweDk4LDB4Y2IsMHhmNiwweGNiLDB4MDgsMHhmNiwweDU0LDB4MDQsMHhjYiwweDU0LDB4ODYsMHg0YiwweDYwLDB4MDQsCi0weDc4LDB4OTcsMHg3NiwweDBiLDB4NzgsMHg5OSwweGU2LDB4MzAsMHhlMywweDEzLDB4NzgsMHg5YSwweDEyLDB4MDQsMHg2NSwweDkwLAotMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4MjQsMHhmYiwweDUwLDB4MDQsMHg3OCwweDk3LDB4NzYsMHgwZCwweDc4LDB4OTksMHhlNiwKLTB4NTQsMHhjMCwweDdkLDB4MDAsMHg2NCwweGMwLDB4NGQsMHg3MCwweDA0LDB4NzgsMHg5NywweDc2LDB4MGIsMHg3OCwweDlhLDB4MTIsCi0weDA0LDB4NjUsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHgyNCwweGZjLDB4NTAsMHgwNCwweDc4LDB4OTcsMHg3NiwweDBmLAotMHg3OCwweDlhLDB4MTIsMHgwNCwweDY1LDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMSwweGVjLDB4MjQsMHhmZCwweDUwLDB4MDQsMHg3OCwKLTB4OTcsMHg3NiwweDBlLDB4NzgsMHg5YSwweDEyLDB4MDQsMHg2NSwweDkwLDB4MDAsMHgwOSwweDEyLDB4MDEsMHhlYywweDI0LDB4ZmQsCi0weDUwLDB4MDQsMHg3OCwweDk3LDB4NzYsMHgwYSwweDc4LDB4OTcsMHhlNiwweDcwLDB4MmEsMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLAotMHgwZiwweDY5LDB4NzgsMHg5YSwweDEyLDB4MDQsMHg2NSwweDc4LDB4YTcsMHhlNiwweGY5LDB4NzgsMHhhNiwweGU2LDB4ZmEsMHg3YiwKLTB4MDEsMHg3NCwweDBhLDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweGMyLDB4MDMsMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLDB4MTEsCi0weDA3LDB4NzgsMHg5NywweGVjLDB4ZjYsMHg3OCwweDk3LDB4ZTYsMHhmYywweDEyLDB4MjUsMHhiZiwweDEyLDB4MzEsMHg2OSwweDIyLAotMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweDEyLDB4MGYsMHg2OSwweDc4LDB4OTUsMHhlNiwweDI0LDB4ZmQsMHg3NSwKLTB4ZjAsMHgwYSwweGE0LDB4MjQsMHgxNCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4YWMsMHg4MiwweGFkLDB4ODMsCi0weDc4LDB4YTYsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsMHhmOSwweGVkLDB4ZmEsMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLAotMHgwMywweGE3LDB4YzIsMHgwMywweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsMHgxMSwweDA3LDB4MTIsMHgzMSwweDY5LDB4MjIsMHg4ZCwKLTB4MmIsMHg4YywweDJhLDB4ZWQsMHg2MCwweDQwLDB4NzUsMHgyNywweDAxLDB4NzUsMHgyOSwweDQ4LDB4NzUsMHgyOCwweGZmLDB4ZTUsCi0weDJhLDB4MjQsMHhmZCwweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsMHhlYywweDdjLDB4MDMsMHgyNSwweGUwLDB4Y2QsMHgzMywweGNkLAotMHhkYywweGY5LDB4ZmMsMHhlNSwweDI5LDB4MmMsMHhmNSwweDI5LDB4ZTUsMHgyOCwweDNkLDB4ZjUsMHgyOCwweGFkLDB4MjksMHhhZSwKLTB4MjgsMHhhZiwweDI3LDB4NzQsMHg4MCwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDMsMHgxNywweDc0LDB4ODAsMHg5MCwweDAwLDB4MDIsCi0weDEyLDB4MDMsMHgxNywweDEyLDB4MGYsMHhiNywweGU1LDB4MmIsMHgxNCwweDYwLDB4M2IsMHg3NSwweDI3LDB4MDEsMHg3NSwweDI5LAotMHgwOCwweDc1LDB4MjgsMHhmZiwweGU1LDB4MmEsMHgyNCwweGZkLDB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwweGVjLDB4N2MsMHgwMywKLTB4MjUsMHhlMCwweGNkLDB4MzMsMHhjZCwweGRjLDB4ZjksMHhmYywweGU1LDB4MjksMHgyYywweGY1LDB4MjksMHhlNSwweDI4LDB4M2QsCi0weGY1LDB4MjgsMHhhZCwweDI5LDB4YWUsMHgyOCwweGFmLDB4MjcsMHhlNCwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDMsMHgxNywweGU0LAotMHg5MCwweDAwLDB4MDIsMHgxMiwweDAzLDB4MTcsMHgyMiwweDEyLDB4MzAsMHhlNiwweDc4LDB4OTUsMHhlYywweGY2LDB4ZWMsMHgyNCwKLTB4OWQsMHhmOCwweGU2LDB4MzAsMHhlMiwweDA5LDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDE0LDB4ZWQsMHhkMiwweDAwLDB4NzgsCi0weDk1LDB4ZTYsMHhmYywweDEyLDB4MGYsMHg2OSwweDc4LDB4OTYsMHg3NiwweDAwLDB4OTAsMHhmYywweDM5LDB4ZTAsMHgzMCwweGU3LAotMHgwNCwweDc4LDB4OTYsMHg3NiwweDAxLDB4NzgsMHg5NiwweGU2LDB4ZmQsMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLDB4MGQsMHgyZiwKLTB4YzIsMHgwMywweDMwLDB4MDAsMHgwNywweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsMHgxMywweGVjLDB4N2MsMHgwMCwweDEyLDB4MjUsCi0weGJmLDB4MTIsMHgzMSwweDY5LDB4MjIsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGUwLDB4MDIsMHg4MCwweGVkLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhmOCwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMiwweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHg4MCwweGYwLDB4MjIsMHhjMiwweDAzLDB4OGMsMHg1OCwKLTB4MTIsMHgwZiwweDY5LDB4NzgsMHhhNiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHg3OSwweDVkLDB4N2EsMHgzNSwweDdiLDB4MGEsCi0weDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsMHgxMiwweDBlLDB4MDUsMHhhYywweDU4LDB4N2QsMHgwMiwweDEyLDB4MGQsMHgyZiwweGMyLAotMHgwMywweGFjLDB4NTgsMHgxMiwweDExLDB4MDcsMHgyMiwweDhkLDB4NTMsMHg4ZSwweDUyLDB4OGYsMHg1MSwweDhjLDB4NTAsMHgxMiwKLTB4MGYsMHg2OSwweDc1LDB4NGYsMHgwMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDIwLDB4ZTQsMHgxZiwweGU1LDB4NGYsMHgyNCwweGY2LDB4NDAsMHgxOSwweDA1LDB4NGYsMHhjMiwweDAzLAotMHg3YywweDE4LDB4MTIsMHgzMiwweGE5LDB4OTAsMHhmZiwweDkzLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhiMiwweGIzLDB4YWMsMHg1MCwKLTB4MTIsMHgwZiwweDY5LDB4ODAsMHhkMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDIwLDB4ZTQsMHgwNSwweGMyLDB4MDMsMHg3YywweDAyLDB4MjIsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LAotMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDBmLDB4NjAsMHgxNiwweDc4LDB4YTksMHhlNiwKLTB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4MGYsMHhmMCwweGMyLDB4MDMsCi0weDdjLDB4MDEsMHgyMiwweDc4LDB4YTgsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHhhZCwweDUzLDB4YWUsMHg1MiwweGFmLAotMHg1MSwweDEyLDB4MDMsMHgwZiwweGMyLDB4MDMsMHg3YywweDAwLDB4MjIsMHg4ZCwweDMxLDB4OGMsMHgzMCwweDEyLDB4MTQsMHhlZCwKLTB4ZTUsMHgzMSwweDYwLDB4MGYsMHhlNSwweDMwLDB4YjQsMHgwMywweDBhLDB4N2MsMHgwMSwweDEyLDB4MjQsMHhlZSwweDdjLDB4ODEsCi0weDEyLDB4MjQsMHhlZSwweGFjLDB4MzAsMHgxMiwweDBmLDB4NjksMHhlNSwweDMxLDB4NjAsMHgxYSwweDc4LDB4YWEsMHg4NiwweDgzLAotMHgwOCwweDg2LDB4ODIsMHhlMCwweDU0LDB4ZTcsMHhmMCwweGEzLDB4YTMsMHhhMywweGEzLDB4ZTAsMHg1NCwweGU3LDB4ZjAsMHhhYywKLTB4MzAsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDJmLDB4NzgsMHhhNiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHg3OSwweDY3LDB4N2EsCi0weDM1LDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsMHhjMiwweDAzLDB4ZTUsMHgzMCwweDI0LDB4OWQsMHhmOCwweGM2LAotMHg1NCwweGZkLDB4ZjYsMHhhYywweDMwLDB4MTIsMHgxMSwweDA3LDB4MjIsMHg4YywweDI2LDB4MzAsMHgwMywweDA1LDB4MTIsMHgzMiwKLTB4NDgsMHg4MCwweGY4LDB4N2MsMHgwYSwweDEyLDB4MzEsMHg1YiwweGQyLDB4MDMsMHhlNSwweDI2LDB4MjQsMHhmZCwweDc4LDB4YTMsCi0weGY2LDB4NzAsMHgwNywweDc4LDB4YWEsMHg3NiwweGZmLDB4MDgsMHg3NiwweGUwLDB4NzgsMHhhMywweGU2LDB4NzUsMHhmMCwweDEwLAotMHhhNCwweGFkLDB4ZjAsMHhmYywweDI0LDB4YTAsMHg3OCwweGE5LDB4ZjYsMHhlZCwweDM0LDB4ZmYsMHgxOCwweGY2LDB4NzgsMHhhMywKLTB4ZTYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4MDAsMHhmYywweGU0LDB4MzQsMHhmYywweGZkLDB4NzgsMHhhNiwweGVkLDB4ZjYsCi0weDA4LDB4ZWMsMHhmNiwweDEyLDB4MzEsMHhmNCwweDIyLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNywweDIyLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwKLTB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHg4MCwweGYwLDB4MjIsMHg3OCwweGFhLDB4ODYsMHg4MywweDA4LAotMHg4NiwweDgyLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHhhZCwweDgzLDB4ZTUsMHg4MiwweDI0LDB4MDQsMHhmYywweGU0LDB4M2QsMHg4YywKLTB4ODIsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGY4LDB4ZjAsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDAxLDB4ZjUsMHg4MiwweDE4LAotMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDAzLDB4ZjAsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDAzLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4NzQsMHgwZiwweGYwLDB4MjIsMHg3OCwweGFhLDB4ODYsMHg4MywweDA4LAotMHg4NiwweDgyLDB4ZTAsMHg1NCwweDNmLDB4ZjAsMHhhZCwweDgzLDB4ZTUsMHg4MiwweDI0LDB4MDQsMHhmYywweGU0LDB4M2QsMHg4YywKLTB4ODIsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDNmLDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweGE0LDB4ZjgsMHhlNiwweGZjLDB4NzgsCi0weGFiLDB4ZTYsMHgyNCwweDAxLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGEzLAotMHhlNiwweDI0LDB4YTQsMHhmOCwweGU2LDB4ZmMsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDU0LDB4ZmIsMHg0NCwweDAyLDB4ZjUsMHgyNiwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTUsMHgwMywweDQzLDB4MjYsMHgwMSwweDc4LDB4YTksMHhlNiwKLTB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTAsMHgwMywweDEyLDB4MGYsCi0weGI3LDB4ZTUsMHgyNiwweGZjLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGVjLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKLTB4NzQsMHgwZiwweGYwLDB4NzgsMHhhYSwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDQ0LDB4ODAsMHhmMCwweGEzLDB4YTMsCi0weGEzLDB4YTMsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDIyLDB4OGMsMHgyYSwweDEyLDB4MGYsMHg2OSwweDc4LDB4YTcsMHhlNiwweDI0LAotMHgwOCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGZjLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwYSwKLTB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDA3LDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmYywweDc4LDB4YTksMHhlNiwweDI0LDB4MDksMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhNiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwKLTB4ZmQsMHhhMywweGUwLDB4ZmMsMHhlZCwweGZlLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwOCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHhlYywweGZlLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNywweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg4YywweDI5LDB4OGQsMHgyOCwweGMzLDB4ZWMsMHg5NCwweDA1LDB4ZWQsMHg5NCwKLTB4MGMsMHg0MCwweDA1LDB4NzUsMHgyNywweDdjLDB4ODAsMHgzMywweGQzLDB4ZTUsMHgyOSwweDk0LDB4MDEsMHhlNSwweDI4LDB4OTQsCi0weDAzLDB4NDAsMHgwNSwweDc1LDB4MjcsMHgzYywweDgwLDB4MjMsMHhkMywweGU1LDB4MjksMHg5NCwweDgxLDB4ZTUsMHgyOCwweDk0LAotMHgwMSwweDQwLDB4MDUsMHg3NSwweDI3LDB4MTgsMHg4MCwweDEzLDB4ZDMsMHhlNSwweDI5LDB4OTQsMHg2MCwweGU1LDB4MjgsMHg5NCwKLTB4MDAsMHg0MCwweDA1LDB4NzUsMHgyNywweDBjLDB4ODAsMHgwMywweDc1LDB4MjcsMHgwOCwweGFmLDB4MjcsMHhlNCwweGVmLDB4NTQsCi0weDdjLDB4NDQsMHg4MywweGZmLDB4OGYsMHgyNywweGU1LDB4MjcsMHhmYywweDc4LDB4YWIsMHhlNiwweDI0LDB4MDEsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwNSwKLTB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGEzLDB4ZTYsCi0weDI0LDB4YTQsMHhmOCwweGVjLDB4ZjYsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHhmNSwweDI3LDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGUzLDB4MTcsMHg1MywweDI3LDB4YzcsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDA1LDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDM1LDB4NTgsMHg5MywweDQyLDB4MjcsMHg1MywweDI3LAotMHhmYiwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg2MCwKLTB4MDMsMHg0MywweDI3LDB4MDQsMHg1MywweDI3LDB4ZmMsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0MiwweDI3LDB4NDMsMHgyNywweDgwLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhOSwweGU2LAotMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwKLTB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmNSwweDI3LDB4NzgsMHhhNywweGU2LDB4MjQsCi0weDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGUxLDB4MDUsMHg1MywweDI3LAotMHhkZiwweDgwLDB4MDMsMHg0MywweDI3LDB4MjAsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU0LDB4MDUsMHg1MywweDI3LDB4ZWYsMHg4MCwweDAzLDB4NDMsMHgyNywweDEwLDB4NzgsCi0weGE3LDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4YjQsMHgwMiwweDAzLAotMHg0MywweDI3LDB4MDIsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDMsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweGY1LDB4MjcsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHg3MCwweDA1LDB4NTMsMHgyNywweDdmLDB4ODAsMHgwMywweDQzLDB4MjcsMHg4MCwweDc4LDB4YTcsMHhlNiwKLTB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlMCwweDA1LDB4NDMsCi0weDI3LDB4MjAsMHg4MCwweDAzLDB4NTMsMHgyNywweGRmLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMywweDA1LDB4NDMsMHgyNywweDQwLDB4ODAsMHgwMywweDUzLDB4MjcsMHhiZiwKLTB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTAsCi0weDA1LDB4NDMsMHgyNywweDEwLDB4ODAsMHgwMywweDUzLDB4MjcsMHhlZiwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlNCwweDA1LDB4NDMsMHgyNywweDA4LDB4ODAsMHgwMywKLTB4NTMsMHgyNywweGY3LDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCi0weGEzLDB4ZTAsMHgzMCwweGU1LDB4MDUsMHg0MywweDI3LDB4MDQsMHg4MCwweDAzLDB4NTMsMHgyNywweGZiLDB4NzgsMHhhNywweGU2LAotMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGU2LDB4MDUsMHg0MywKLTB4MjcsMHgwMSwweDgwLDB4MDMsMHg1MywweDI3LDB4ZmUsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTcsMHgwNSwweDQzLDB4MjcsMHgwMiwweDgwLDB4MDMsMHg1MywweDI3LAotMHhmZCwweGU1LDB4MjcsMHhmYywweDc4LDB4YTksMHhlNiwweDI0LDB4MDMsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlYywweGYwLDB4YzIsMHgwMywweDdjLDB4MDAsMHgyMiwweDhkLDB4MjcsMHg4YywweDI2LDB4ZWQsMHg1NCwweDAzLDB4MTQsCi0weDYwLDB4MDMsMHg3YywweDEwLDB4MjIsMHhlNSwweDI3LDB4NTQsMHg3YywweDI0LDB4ZmMsMHg0MCwweDAzLDB4N2MsMHgwYiwweDIyLAotMHhlNSwweDI2LDB4MjQsMHg5ZCwweGY4LDB4YzYsMHg0NCwweDAyLDB4ZjYsMHg3YywweDAwLDB4MjIsMHg4YywweDMwLDB4MTIsMHgwZiwKLTB4NjksMHhlNSwweDMwLDB4MjQsMHg5ZCwweGY4LDB4ZTYsMHgyMCwweGUyLDB4NGYsMHhhYywweDMwLDB4N2QsMHgwMiwweDEyLDB4MGQsCi0weDJmLDB4ZTUsMHgzMCwweDI0LDB4ZmUsMHg0NCwweDI4LDB4ZmMsMHg3OCwweGFhLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLAotMHhmMCwweGFmLDB4ODMsMHhlNSwweDgyLDB4MjQsMHgwNCwweGZlLDB4ZTQsMHgzZiwweGZmLDB4ZWMsMHg4ZSwweDgyLDB4OGYsMHg4MywKLTB4ZjAsMHg3YywweDAzLDB4OGMsMHgyYywweGU1LDB4MmMsMHhmYywweDc4LDB4YWIsMHhlNiwweDI0LDB4MDEsMHhmNSwweDgyLDB4MTgsCi0weGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4ZTUsMHgyYywweGZjLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwNSwweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3NSwweDJkLDB4MDEsMHg3NSwweDJmLDB4NDgsMHg3NSwKLTB4MmUsMHhmZiwweGU1LDB4MzAsMHgyNCwweGZkLDB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwweGVjLDB4N2MsMHgwMywweDI1LDB4ZTAsCi0weGNkLDB4MzMsMHhjZCwweGRjLDB4ZjksMHhmYywweGU1LDB4MmYsMHgyYywweGY1LDB4MmYsMHhlNSwweDJlLDB4M2QsMHhmNSwweDJlLAotMHg3OCwweGFiLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhlNywKLTB4ZjUsMHgyYywweGFkLDB4MmYsMHhhZSwweDJlLDB4YWYsMHgyZCwweGU0LDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwMywweDE3LDB4ZTQsCi0weDkwLDB4MDAsMHgwNiwweDEyLDB4MDMsMHgxNywweDEyLDB4MDEsMHhlNiwweDMwLDB4ZTUsMHgwMywweDQzLDB4MmMsMHgxMCwweGU1LAotMHgyYywweGZjLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywKLTB4ZjAsMHgxMiwweDEwLDB4NGIsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZTAsMHhjMiwweDAzLDB4ZmMsMHhlNSwweDMwLDB4MjQsMHg5ZCwweGY4LDB4YzYsMHg0NCwweDA0LDB4ZjYsMHg4YywweDJjLAotMHhlNSwweDMwLDB4NTQsMHgwZiwweGM0LDB4NTQsMHhmMCwweDdlLDB4MDAsMHhmZiwweGVlLDB4ZWYsMHg0NCwweDA0LDB4N2QsMHgwMCwKLTB4ZmYsMHhlYywweDRlLDB4ZmMsMHhlZCwweDRmLDB4ZmQsMHgxMiwweDFjLDB4YTcsMHg3YywweDAwLDB4MjIsMHg4YywweDJmLDB4MTIsCi0weDBmLDB4NjksMHgxMiwweDBmLDB4ZWIsMHg3OCwweGFhLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4NTQsMHgwOCwweGYwLAotMHhhMywweGEzLDB4YTMsMHhhMywweGUwLDB4NTQsMHgwOCwweGYwLDB4YWMsMHgyZiwweDdkLDB4MDIsMHgxMiwweDBkLDB4MmYsMHhjMiwKLTB4MDMsMHhlNSwweDJmLDB4MjQsMHg5ZCwweGY4LDB4YzYsMHg1NCwweGZiLDB4ZjYsMHg3YywweDAwLDB4MjIsMHgxMiwweDMwLDB4ZTYsCi0weDc4LDB4OTYsMHhlYywweGY2LDB4ZWMsMHgyNCwweDlkLDB4ZjgsMHhlNiwweDMwLDB4ZTEsMHgwYSwweDdkLDB4MDAsMHg3YywweDEzLAotMHgxMiwweDI1LDB4MjYsMHgxMiwweDMxLDB4NjksMHg3OCwweDk2LDB4ZTYsMHgyNCwweDlkLDB4ZjgsMHhjNiwweDQ0LDB4MDEsMHhmNiwKLTB4NzgsMHg5NiwweGU2LDB4ZmMsMHgxMiwweDBmLDB4NjksMHg3OCwweDk2LDB4ZTYsMHgyNCwweGZkLDB4NzUsMHhmMCwweDBhLDB4YTQsCi0weDI0LDB4MTQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweDc4LDB4YTYsMHhlNiwweGZhLDB4MDgsMHhlNiwweGY5LAotMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhhNywweDc4LDB4YTYsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4NzksMHg2NywKLTB4N2EsMHgzNSwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LDB4MTIsMHgwZiwweGI3LDB4YzIsMHgwMywweDc4LDB4OTYsCi0weGU2LDB4ZmMsMHgxMiwweDExLDB4MDcsMHg3OCwweDk1LDB4ZWMsMHhmNiwweGVjLDB4NjAsMHgwYSwweDdkLDB4MDAsMHg3YywweDA4LAotMHgxMiwweDI1LDB4MjYsMHgxMiwweDMxLDB4NjksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsMHg2OSwweDc4LDB4YTksMHhlNiwKLTB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MTAsMHg1NCwweGRmLDB4ZmMsCi0weDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LAotMHg5NSwweGVjLDB4ZjYsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHhhOSwweDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsMHgwZiwKLTB4NjksMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsCi0weGVmLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHhhOSwweDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsMHgwZiwweDY5LAotMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgxMCwKLTB4ZjAsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHhhOSwweDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsMHgwZiwweDY5LDB4NzgsCi0weGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgyMCwweGYwLAotMHhjMiwweDAzLDB4N2MsMHhmMCwweDEyLDB4MzIsMHhhOSwweDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsMHgwZiwweDY5LDB4NzgsMHhhOSwKLTB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNCwweDE1LDB4YzIsCi0weDAzLDB4NzgsMHg5NiwweGU2LDB4NDQsMHgxMCwweDdmLDB4MDAsMHhmZSwweDdjLDB4MDcsMHgxMiwweDMxLDB4ZmIsMHgxMiwweDMxLAotMHg2OSwweDAyLDB4MTcsMHgxNCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlMCwweDU0LDB4Y2YsMHhmMCwweGMyLDB4MDMsMHg3YywweGM4LDB4MTIsMHgzMiwweGE5LDB4NzgsMHg5NiwweGU2LDB4ZmMsCi0weDEyLDB4MGYsMHg2OSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAotMHhlMCwweDQ0LDB4MzAsMHhmMCwweGMyLDB4MDMsMHg3YywweGYwLDB4MTIsMHgzMiwweGE5LDB4NzgsMHg5NiwweGU2LDB4ZmMsMHgxMiwKLTB4MGYsMHg2OSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsCi0weDMwLDB4ZTQsMHgxNCwweGMyLDB4MDMsMHg3OCwweDk2LDB4ZTYsMHg0NCwweDEwLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgwNywweDEyLAotMHgzMSwweGZiLDB4MTIsMHgzMSwweDY5LDB4ODAsMHg1ZCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZWYsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsCi0weGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZGYsMHhmMCwweDc4LDB4OTYsMHhlNiwweDI0LDB4ZmQsMHg3NSwweGYwLAotMHgwYSwweGE0LDB4MjQsMHgxNCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4YWMsMHg4MiwweGFkLDB4ODMsMHg3OCwKLTB4YTYsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsMHhmOSwweGVkLDB4ZmEsMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsCi0weGE3LDB4YzIsMHgwMywweDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsMHgxMSwweDA3LDB4N2QsMHgwMCwweDdjLDB4MGIsMHgxMiwweDI1LAotMHgyNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4ZTQsMHg5MCwweGZjLDB4MzksMHhmMCwweDdkLDB4MDIsMHg3YywKLTB4MDAsMHgxMiwweDI1LDB4MjYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDdjLDB4MDAsMHgxMiwweDI1LDB4YmYsCi0weDEyLDB4MzEsMHg2OSwweDIyLDB4NzQsMHgzYywweDkwLDB4ZmIsMHhlMCwweGYwLDB4NzQsMHgzZSwweDkwLDB4ZmIsMHhlMCwweGYwLAotMHhlNCwweDkwLDB4ZmMsMHgyOCwweGYwLDB4MjIsMHg4ZCwweDM1LDB4OGMsMHgzNCwweGVjLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywKLTB4ZDMsMHg0MCwweDAyLDB4ODAsMHgyOCwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDgsMHhhOCwweDM1LDB4YzYsCi0weDI1LDB4ZTAsMHhmNiwweDgwLDB4MTgsMHhiNCwweDA0LDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBhLDB4YTgsMHgzNSwweGM2LAotMHgyNSwweGUwLDB4MjUsMHhlMCwweGY2LDB4ODAsMHgwNiwweGE4LDB4MzUsMHg3NiwweDAwLDB4ODAsMHgwMCwweDIyLDB4OGMsMHgzYywKLTB4OGQsMHgzYiwweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDc1LDB4NjYsMHgwNiwweDc1LDB4NjcsMHgwMCwweDkwLDB4ZmMsCi0weDI5LDB4MTIsMHgwNCwweDZlLDB4MTIsMHgwMSwweGU2LDB4YjQsMHg4MCwweDAyLDB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLAotMHgxOCwweDQ3LDB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDAzLDB4MTIsMHgwMSwweGVjLDB4NTQsMHhmMCwKLTB4YjQsMHgzMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg1ZiwweDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsCi0weDA4LDB4MTIsMHgwMiwweDBlLDB4ZmEsMHhmZCwweGViLDB4ZmUsMHg3ZiwweDAxLDB4OTAsMHhmYywweDJjLDB4MTIsMHgwNCwweDZlLAotMHhlZSwweGNkLDB4OTAsMHgzNSwweDcxLDB4ZmMsMHhlNCwweDkzLDB4ZmYsMHg3NCwweDAxLDB4OTMsMHhmZSwweGY5LDB4ZWYsMHhmYSwKLTB4N2IsMHgwMSwweGVhLDB4ZmYsMHhlOSwweGZlLDB4ZWMsMHhjMywweDllLDB4ZWQsMHg5ZiwweDQwLDB4MjUsMHg5MCwweDM1LDB4NzMsCi0weGU0LDB4OTMsMHhmZCwweDc0LDB4MDEsMHg5MywweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4ZWUsMHhjZCwweGZjLAotMHg5MCwweGZjLDB4MmUsMHhlMCwweGQzLDB4OWMsMHg5MCwweGZjLDB4MmQsMHhlMCwweDlkLDB4NTAsMHgwNSwweDc1LDB4NjYsMHg4MCwKLTB4ODAsMHgzMywweDEyLDB4MTksMHg2NSwweDgwLDB4MmUsMHhiNCwweDYwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBiLDB4YWMsCi0weDNjLDB4YWQsMHgzYiwweDEyLDB4MDcsMHg3NywweDhjLDB4NjYsMHg4MCwweDFiLDB4YjQsMHgxMCwweDAzLDB4YjMsMHg0MCwweDEwLAotMHhjMywweGI0LDB4MjAsMHgwMywweGIzLDB4NDAsMHgwOSwweGMzLDB4YjQsMHg0MCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMCwKLTB4NzUsMHg2NiwweDgxLDB4ODAsMHgwMCwweDgwLDB4NzUsMHhiNCwweDgxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDZiLDB4OTAsCi0weGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDMsMHgxMiwweDAxLDB4ZWMsMHg1NCwweGYwLDB4YjQsMHgzMCwweDAyLAotMHg4MCwweDAzLDB4ZDMsMHg0MCwweDFkLDB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwKLTB4MGUsMHhmYSwweGZkLDB4ZWIsMHhmZSwweDdmLDB4MDEsMHg5MCwweGZjLDB4MmYsMHgxMiwweDA0LDB4NmUsMHgxMiwweDE4LDB4Y2YsCi0weDgwLDB4MzYsMHhiNCwweDYwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDEzLDB4NzUsMHgzYSwweDY3LDB4ZTQsMHhmNSwweDM5LAotMHhmNSwweDM4LDB4YWMsMHgzYywweGFkLDB4M2IsMHgxMiwweDA1LDB4ZDMsMHg4YywweDY2LDB4ODAsMHgxYiwweGI0LDB4MTAsMHgwMywKLTB4YjMsMHg0MCwweDEwLDB4YzMsMHhiNCwweDIwLDB4MDMsMHhiMywweDQwLDB4MDksMHhjMywweGI0LDB4NDAsMHgwMiwweDgwLDB4MDMsCi0weGQzLDB4NDAsMHgwMCwweDc1LDB4NjYsMHg4MSwweDgwLDB4MDAsMHg4MCwweDAyLDB4ODAsMHgwMCwweGU1LDB4NjYsMHhmYywweDkwLAotMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4ZWMsMHg5MCwweDAwLDB4MDIsMHgxMiwweDAzLDB4MTcsMHhhYywweDY3LDB4MjIsMHg5MCwKLTB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywweDYwLDB4MDQsMHg3NCwweDAxLDB4ODAsCi0weDAxLDB4ZTQsMHhhMiwweGUwLDB4OTIsMHgwMSwweDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweGVkLDB4MjQsMHgwMywweGZkLAotMHg1MCwweDAxLDB4MGUsMHg5MCwweGZjLDB4MmMsMHgxMiwweDA0LDB4NmUsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwKLTB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweGY1LDB4NjcsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHg1NCwweDBmLDB4ZmMsCi0weDdkLDB4NjcsMHgxMiwweDE3LDB4NDYsMHhlNSwweDY3LDB4NzAsMHgwNCwweDc1LDB4NjYsMHgwOCwweDIyLDB4NzUsMHg2NiwweDAwLAotMHg3OCwweDg0LDB4NzYsMHgwMCwweDc4LDB4ODQsMHhlNiwweGMzLDB4OTUsMHg2NywweDUwLDB4MzgsMHg5MCwweGZjLDB4MmYsMHgxMiwKLTB4MDQsMHg4MCwweDEyLDB4MDEsMHhlNiwweGZjLDB4OTAsMHhmYywweDJjLDB4MTIsMHgwNCwweDgwLDB4ZWMsMHgxMiwweDAzLDB4MGYsCi0weDMwLDB4MDEsMHgwZSwweDkwLDB4ZmMsMHgzMSwweGUwLDB4MDQsMHhmMCwweDkwLDB4ZmMsMHgzMCwweDcwLDB4MDMsMHhlMCwweDA0LAotMHhmMCwweDc4LDB4ODQsMHgwNiwweDkwLDB4ZmMsMHgyZSwweGUwLDB4MDQsMHhmMCwweDkwLDB4ZmMsMHgyZCwweDcwLDB4MDMsMHhlMCwKLTB4MDQsMHhmMCwweDgwLDB4YzAsMHgyMiwweDkwLDB4ZmMsMHgyYSwweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmMsMHhlZCwweGZlLDB4ZWMsCi0weGZkLDB4N2YsMHgwMSwweGVkLDB4MjQsMHgwYSwweGZkLDB4NTAsMHgwMSwweDBlLDB4OTAsMHhmYywweDMyLDB4MTIsMHgwNCwweDZlLAotMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHg1NCwweDBmLDB4YjQsMHgwMSwKLTB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDE3LDB4OTAsMHhmYywweDMyLDB4MTIsMHgwNCwweDgwLDB4MGQsMHhlZCwweDcwLDB4MDEsCi0weDBlLDB4OTAsMHhmYywweDJmLDB4MTIsMHgwNCwweDZlLDB4NzgsMHg4OCwweDc2LDB4MDEsMHg4MCwweDRlLDB4YjQsMHgwMiwweDAyLAotMHg4MCwweDAzLDB4ZDMsMHg0MCwweDE5LDB4OTAsMHhmYywweDMyLDB4MTIsMHgwNCwweDgwLDB4ZWQsMHgyNCwweDAyLDB4ZmQsMHg1MCwKLTB4MDEsMHgwZSwweDkwLDB4ZmMsMHgyZiwweDEyLDB4MDQsMHg2ZSwweDc4LDB4ODgsMHg3NiwweDAyLDB4ODAsMHgyZCwweGI0LDB4MDQsCi0weDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxOSwweDkwLDB4ZmMsMHgzMiwweDEyLDB4MDQsMHg4MCwweGVkLDB4MjQsMHgwNCwweGZkLAotMHg1MCwweDAxLDB4MGUsMHg5MCwweGZjLDB4MmYsMHgxMiwweDA0LDB4NmUsMHg3OCwweDg4LDB4NzYsMHgwNCwweDgwLDB4MGMsMHhiNCwKLTB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDAsMHg3NSwweDY2LDB4MDgsMHgyMiwweDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsCi0weDgwLDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4ZjUsMHg2NywweDc4LDB4ODUsMHg3NiwweDAwLDB4NzgsMHg4NSwweGU2LAotMHhjMywweDk1LDB4NjcsMHg0MCwweDAzLDB4MDIsMHgxYSwweGNkLDB4NzgsMHg4NiwweDc2LDB4MDAsMHg3OCwweDg2LDB4ZTYsMHhjMywKLTB4NzgsMHg4OCwweDk2LDB4NTAsMHg3NiwweDkwLDB4ZmMsMHgyYywweDEyLDB4MDQsMHg4MCwweDEyLDB4MDEsMHhlNiwweGZjLDB4OTAsCi0weGZjLDB4MzIsMHgxMiwweDA0LDB4ODksMHgxMiwweDAxLDB4ZTAsMHhmNCwweDVjLDB4ZmMsMHgxMiwweDAxLDB4ZTAsMHhmOCwweDkwLAotMHhmYywweDJmLDB4MTIsMHgwNCwweDgwLDB4ZTgsMHhjMCwweGUwLDB4MTIsMHgwMSwweGU2LDB4YzgsMHhkMCwweGUwLDB4YzgsMHg1OCwKLTB4NGMsMHhmYywweDkwLDB4ZmMsMHgyYywweDEyLDB4MDQsMHg4MCwweGVjLDB4MTIsMHgwMywweDBmLDB4NzgsMHg4NywweGVjLDB4ZjYsCi0weDkwLDB4ZmMsMHgzMSwweGUwLDB4MDQsMHhmMCwweDkwLDB4ZmMsMHgzMCwweDcwLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHgwOSwweGU5LAotMHg3MCwweDAxLDB4MGEsMHg5MCwweGZjLDB4MzIsMHgxMiwweDA0LDB4NzcsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwKLTB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywweDMwLDB4ZTQsMHgwZSwweDkwLDB4ZmMsMHgyZSwweGUwLDB4MDQsMHhmMCwweDkwLDB4ZmMsCi0weDJkLDB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDc4LDB4ODYsMHgwNiwweDgwLDB4ODEsMHg3OCwweDg4LDB4ZTYsMHhmZCwweGU0LAotMHhmZSwweGZmLDB4ZWUsMHhjZCwweGZjLDB4OTAsMHhmYywweDMxLDB4ZTAsMHgyYywweGYwLDB4OTAsMHhmYywweDMwLDB4ZTAsMHgzZCwKLTB4ZjAsMHg3OCwweDg4LDB4ZTYsMHhmZCwweGU0LDB4ZmUsMHhmZiwweGVlLDB4Y2QsMHhmYywweDkwLDB4ZmMsMHgzNCwweGUwLDB4MmMsCi0weGYwLDB4OTAsMHhmYywweDMzLDB4ZTAsMHgzZCwweGYwLDB4NzgsMHg4NSwweDA2LDB4MDIsMHgxYSwweDBkLDB4NzUsMHg2NiwweDAwLAotMHgyMiwweGU1LDB4M2QsMHgwNSwweDNkLDB4MDQsMHg3MCwweDAyLDB4YjIsMHhiMCwweDIyLDB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwKLTB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweGU4LDB4YzAsMHhlMCwweGU5LDB4YzAsMHhlMCwweGVhLDB4YzAsMHhlMCwweGViLDB4YzAsCi0weGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWYsMHhjMCwweGUwLDB4OTAsMHhmZiwweDkyLAotMHhlMCwweDEyLDB4MDEsMHhiNywweDFiLDB4MjksMHgzMCwweDFiLDB4MjksMHgzMiwweDFiLDB4MzgsMHgzOCwweDFiLDB4NGEsMHgzYSwKLTB4MWIsMHg1YywweDNlLDB4MWIsMHg3NCwweDQ0LDB4MWIsMHg2OCwweDQ2LDB4MWIsMHg4MCwweDUwLDB4MWIsMHhjMiwweDUyLDB4MWIsCi0weGExLDB4NTQsMHgxYiwweGUzLDB4NTYsMHgwMCwweDAwLDB4MWMsMHgwNCwweDkwLDB4ZmYsMHg5MiwweGUwLDB4N2YsMHgwMCwweGZlLAotMHg3YywweDAxLDB4MTIsMHgzMSwweGZiLDB4MDIsMHgxYywweDE0LDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDAzLDB4MTIsMHgzMSwKLTB4ZmIsMHg3NCwweDIwLDB4OTAsMHhmZiwweGZlLDB4ZjAsMHgwMiwweDFjLDB4MTQsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDIsCi0weDEyLDB4MzEsMHhmYiwweDc0LDB4NDAsMHg5MCwweGZmLDB4ZmUsMHhmMCwweDAyLDB4MWMsMHgxNCwweGU0LDB4ZmYsMHgwNCwweGZlLAotMHg3YywweDA0LDB4MTIsMHgzMSwweGZiLDB4MDIsMHgxYywweDE0LDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA1LDB4MTIsMHgzMSwKLTB4ZmIsMHgwMiwweDFjLDB4MTQsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDYsMHgxMiwweDMxLDB4ZmIsMHgwMiwweDFjLDB4MTQsCi0weDkwLDB4ZmYsMHhhNSwweGUwLDB4N2QsMHgwMCwweDkwLDB4ZmIsMHhmOCwweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwweGZiLAotMHhmOSwweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsMHhmYiwweGY4LDB4ZTAsMHg0NCwweDMzLDB4ZmQsMHgxMiwweDFjLDB4YTcsMHg4MCwKLTB4NzMsMHg5MCwweGZmLDB4YjUsMHhlMCwweDdkLDB4MDAsMHg5MCwweGZiLDB4ZmEsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsCi0weGZiLDB4ZmIsMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmIsMHhmYSwweGUwLDB4NDQsMHg0MywweGZkLDB4MTIsMHgxYywweGE3LAotMHg4MCwweDUyLDB4OTAsMHhmZiwweGE2LDB4ZTAsMHg3ZCwweDAwLDB4OTAsMHhmYiwweGZjLDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwKLTB4OTAsMHhmYiwweGZkLDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwweGZiLDB4ZmMsMHhlMCwweDQ0LDB4MzQsMHhmZCwweDEyLDB4MWMsCi0weGE3LDB4ODAsMHgzMSwweDkwLDB4ZmYsMHhiNiwweGUwLDB4N2QsMHgwMCwweDkwLDB4ZmIsMHhmZSwweGNkLDB4ZjAsMHhhMywweGNkLAotMHhmMCwweDkwLDB4ZmIsMHhmZiwweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsMHhmYiwweGZlLDB4ZTAsMHg0NCwweDQ0LDB4ZmQsMHgxMiwKLTB4MWMsMHhhNywweDgwLDB4MTAsMHg5MCwweGZmLDB4OTIsMHhlMCwweDdkLDB4MDAsMHhmYywweGVkLDB4NDQsMHhhYSwweGZkLDB4MTIsCi0weDFjLDB4YTcsMHg4MCwweDAwLDB4ZTQsMHg5MCwweGZmLDB4OTIsMHhmMCwweGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhmZSwweGQwLAotMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDAsMHhlMCwweGZhLDB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwKLTB4ZjgsMHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyLDB4MDUsMHg4MSwweDA1LDB4ODEsCi0weDA1LDB4ODEsMHgwNSwweDgxLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHg5MCwweGZmLAotMHg1YSwweGUwLDB4MjAsMHhlNywweDAyLDB4ODAsMHhmNywweDkwLDB4ZmYsMHg1OSwweGUwLDB4N2QsMHgwMCwweGE4LDB4ODEsMHgxOCwKLTB4Y2QsMHhmNiwweGNkLDB4MDgsMHhmNiwweDdkLDB4MDMsMHhhOCwweDgxLDB4ZTYsMHgxOCwweGZjLDB4ZTYsMHhjYywweDI1LDB4ZTAsCi0weGNjLDB4MzMsMHhjYywweGRkLDB4ZjksMHhjYywweGY2LDB4Y2MsMHgwOCwweGY2LDB4YTgsMHg4MSwweDE4LDB4ZTYsMHg0NCwweGY4LAotMHhmNiwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4YTgsMHg4MSwweDE4LDB4ODYsMHg4MywKLTB4MDgsMHg4NiwweDgyLDB4ZWQsMHhmMCwweGEzLDB4ZWMsMHhmMCwweDc0LDB4MDIsMHg5MCwweGZmLDB4NWEsMHhmMCwweDE1LDB4ODEsCi0weDE1LDB4ODEsMHgxNSwweDgxLDB4MTUsMHg4MSwweDIyLDB4ZTUsMHg4MSwweDI0LDB4MDUsMHhmNSwweDgxLDB4ZTQsMHhhOCwweDgxLAotMHgxOCwweGY2LDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweDkwLDB4ZmIsMHhmNSwKLTB4ZTAsMHgyNCwweGY4LDB4NTAsMHgwMywweDAyLDB4MWQsMHhjOCwweGU0LDB4YTgsMHg4MSwweDE4LDB4MTgsMHhmNiwweGE4LDB4ODEsCi0weDE4LDB4ZTYsMHhmZSwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHg3ZiwweDAwLAotMHhlZiwweDI0LDB4ZjgsMHg0MCwweDRkLDB4ZTQsMHhlZiwweDI1LDB4ZTAsMHgyNCwweDdkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywKLTB4ZjUsMHg4MywweGUwLDB4ZmIsMHhhMywweGUwLDB4NmMsMHg3MCwweDAzLDB4ZmEsMHhlYiwweDZkLDB4NzAsMHgwOSwweDc0LDB4MDEsCi0weGE4LDB4ODEsMHgxOCwweDE4LDB4ZjYsMHg4MCwweDJiLDB4ZTQsMHhlZiwweDI1LDB4ZTAsMHgyNCwweDdkLDB4ZjUsMHg4MiwweGU0LAotMHgzNCwweGZjLDB4ZjUsMHg4MywweDdhLDB4MDAsMHhlMCwweDU0LDB4ZjAsMHhjYywweGY4LDB4Y2MsMHhjZCwweGY5LDB4Y2QsMHhmYiwKLTB4NzgsMHgwMCwweGU5LDB4NTQsMHhmMCwweGY5LDB4ZWEsMHg2OCwweDcwLDB4MDIsMHhlYiwweDY5LDB4NzAsMHgwMSwweDBlLDB4MGYsCi0weDgwLDB4YWUsMHhhOCwweDgxLDB4MTgsMHhlZSwweGY2LDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZWQsMHhmNiwweDA4LAotMHhlYywweGY2LDB4YTgsMHg4MSwweGVmLDB4ZjYsMHhhOCwweDgxLDB4MTgsMHgxOCwweGU2LDB4NzAsMHg3OSwweGE4LDB4ODEsMHgxOCwKLTB4ZTYsMHgyNCwweGY3LDB4NDAsMHg3MSwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGU2LDB4NTQsMHgwZiwweGE4LDB4ODEsCi0weGY2LDB4NjQsMHgwNCwweDYwLDB4MTcsMHhhOCwweDgxLDB4ZTYsMHg2NCwweDAzLDB4NjAsMHgxMCwweGE4LDB4ODEsMHgxOCwweDE4LAotMHgxOCwweDE4LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDEyLDB4MWMsMHgzYywweDgwLDB4NGEsMHg3YywweDBhLDB4MTIsMHgzMSwKLTB4NWIsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4OTAsMHhmYiwweGY0LDB4ZTAsCi0weDI1LDB4ZTAsMHgyNCwweDdkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlZCwweGYwLDB4YTMsMHhlYywweGYwLAotMHg5MCwweGZiLDB4ZjQsMHhlMCwweGZmLDB4ZTQsMHhlZiwweDA0LDB4NTQsMHgwNywweGZmLDB4OTAsMHhmYiwweGY0LDB4ZjAsMHg5MCwKLTB4ZmIsMHhmNSwweGUwLDB4MDQsMHhmMCwweDEyLDB4MzEsMHhmNCwweDkwLDB4ZmIsMHhmNiwweGUwLDB4NzAsMHgwOCwweGU0LDB4ZmUsCi0weGZmLDB4N2MsMHgwZiwweDEyLDB4MzEsMHhmYiwweDgwLDB4MjcsMHg5MCwweGZiLDB4ZjcsMHhlMCwweDA0LDB4ZjAsMHg1NCwweDNmLAotMHg3MCwweDFkLDB4OTAsMHhmYiwweGY3LDB4ZTAsMHg0NCwweGZlLDB4N2QsMHgwMCwweGZjLDB4OTAsMHhmYiwweGY0LDB4ZTAsMHgyNSwKLTB4ZTAsMHgyNCwweDdkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlZCwweGYwLDB4YTMsMHhlYywweGYwLDB4ZTUsCi0weDgxLDB4MjQsMHhmYiwweGY1LDB4ODEsMHgyMiwweDc4LDB4OGIsMHg3NiwweDAwLDB4NzgsMHg4YywweDc2LDB4MDAsMHg3NCwweDAxLAotMHg5MCwweGZiLDB4ZjYsMHhmMCwweDEyLDB4MzAsMHhlNiwweDkwLDB4ZmIsMHhmNSwweGUwLDB4NjAsMHg1NywweDdjLDB4MGEsMHgxMiwKLTB4MzEsMHg1YiwweDkwLDB4ZmIsMHhmMywweGUwLDB4MjUsMHhlMCwweDI0LDB4N2QsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsCi0weDgzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYywweDkwLDB4ZmIsMHhmMywweGUwLDB4MjUsMHhlMCwweDI0LDB4N2QsMHhmNSwweDgyLAotMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGEzLDB4ZjAsMHg5MCwweGZiLDB4ZjMsMHhlMCwweGZmLDB4ZTQsMHhlZiwKLTB4MDQsMHg1NCwweDA3LDB4ZmYsMHg5MCwweGZiLDB4ZjMsMHhmMCwweDkwLDB4ZmIsMHhmNSwweGUwLDB4MTQsMHhmMCwweDc4LDB4ODksCi0weGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHgxMiwweDMxLDB4ZjQsMHg3OCwweDg5LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDEyLAotMHgwOCwweGRhLDB4ODAsMHhhMywweDEyLDB4MzIsMHg0OCwweDkwLDB4ZmYsMHg5MywweGUwLDB4NDQsMHgwMSwweGYwLDB4YjIsMHhiMywKLTB4NzgsMHg4YiwweDA2LDB4YjYsMHgwMCwweDExLDB4NzgsMHg4YiwweDc2LDB4MDAsMHg3OCwweDhjLDB4ZTYsMHhmNCwweDA0LDB4MDQsCi0weGEyLDB4ZTAsMHg5MiwweGI0LDB4NzgsMHg4YywweGY2LDB4MDIsMHgxZSwweDA3LDB4ZTQsMHg5MCwweGZiLDB4ZjYsMHhmMCwweDkwLAotMHhmYiwweGY1LDB4ZTAsMHg3ZCwweDAwLDB4ZmMsMHhlZCwweDQ0LDB4Y2YsMHhmZCwweDEyLDB4MWMsMHgzYywweDEyLDB4MzEsMHg2OSwKLTB4MjIsMHgxMiwweDMwLDB4ZTYsMHhlNSwweDcwLDB4NjQsMHg0OSwweDQ1LDB4NmYsMHg2MCwweDE1LDB4OTAsMHhmZiwweDgzLDB4ZTAsCi0weDU0LDB4MGYsMHg3ZCwweDAwLDB4ZDMsMHg5NSwweDcwLDB4ZWQsMHg5NSwweDZmLDB4NTAsMHgwNSwweDEyLDB4MmYsMHgyZiwweDgwLAotMHgwMywweDEyLDB4MmYsMHhmZiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4ZTUsMHg3MCwweDY0LDB4NDksMHg0NSwKLTB4NmYsMHg2MCwweDA1LDB4MTIsMHgzMCwweDM5LDB4ODAsMHgwZSwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NDQsMHgwOCwweGYwLDB4OTAsCi0weGZmLDB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4OGMsMHg1NCwweGVjLAotMHg1NCwweGYwLDB4YjQsMHgxMCwweDE1LDB4NzUsMHg2YSwweDM1LDB4NzUsMHg2OSwweGZjLDB4NzUsMHg2OCwweDAxLDB4ZTUsMHg2YSwKLTB4MjQsMHgwMywweGY1LDB4NmEsMHhlNSwweDY5LDB4MzQsMHgwMCwweGY1LDB4NjksMHhlNCwweGY1LDB4NTcsMHhmNSwweDU2LDB4ZTUsCi0weDU2LDB4YzMsMHg5NCwweDAxLDB4NTAsMHgyNywweGU1LDB4NTQsMHg1NCwweDBmLDB4ZmMsMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLAotMHg2OCwweDEyLDB4MGUsMHg3NywweDhjLDB4NTUsMHhlYywweDYwLDB4MDIsMHg4MCwweDEyLDB4MDUsMHg2YSwweGU1LDB4NmEsMHg3MCwKLTB4MDIsMHgwNSwweDY5LDB4MDUsMHg1NywweGU1LDB4NTcsMHg3MCwweDAyLDB4MDUsMHg1NiwweDgwLDB4ZDIsMHhlNSwweDU0LDB4NTQsCi0weDBmLDB4MjQsMHg5ZCwweGY4LDB4YzYsMHg1NCwweGZlLDB4ZjYsMHhlNSwweDU0LDB4NTQsMHgwZiwweDdmLDB4MDAsMHhmZSwweDdjLAotMHgxMiwweDEyLDB4MzEsMHhmYiwweGU1LDB4NTUsMHgxNCwweDcwLDB4MDksMHg3ZCwweDAwLDB4N2MsMHgwOSwweDEyLDB4MjUsMHgyNiwKLTB4ODAsMHgwNywweGFkLDB4NTcsMHg3YywweDAwLDB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsCi0weDkwLDB4ZmYsMHhmYywweGUwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHgzMCwweGU3LDB4MTMsMHg5MCwweGZmLAotMHg4MywweGUwLDB4NDQsMHg4MCwweGYwLDB4NDMsMHg2ZCwweDgwLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwKLTB4MTEsMHg5MCwweGZmLDB4ODIsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDUzLDB4NmQsMHg3ZiwweDkwLDB4ZmYsMHhmYywweGUwLDB4NTQsCi0weGZlLDB4ZjAsMHg5MCwweGZmLDB4ODEsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDEyLDB4MjUsMHhkOSwweDkwLDB4ZmYsMHhmZSwweGUwLAotMHg0NCwweDA1LDB4ZjAsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwKLTB4ZTYsMHg3YywweDAxLDB4MTIsMHgzMiwweGE5LDB4NzgsMHhhZCwweGU2LDB4NDQsMHgwMiwweGY2LDB4NzQsMHhmZSwweGZjLDB4MDQsCi0weGZkLDB4MTIsMHgxYywweGE3LDB4OTAsMHhmZiwweDVhLDB4ZTAsMHgzMCwweGU3LDB4MDIsMHg4MCwweGY3LDB4ZTQsMHhmNSwweDRlLAotMHg3NSwweDRkLDB4MTAsMHhhYywweDRlLDB4YWQsMHg0ZCwweGU1LDB4NGUsMHgxNSwweDRlLDB4NzAsMHgwMiwweDE1LDB4NGQsMHhlYywKLTB4NGQsMHg2MCwweDAyLDB4ODAsMHhlZSwweDQzLDB4ODcsMHgwMSwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4N2MsCi0weDAyLDB4MTIsMHgzMSwweDc1LDB4NzgsMHhhZCwweGU2LDB4NTQsMHhmZCwweGY2LDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLAotMHhlNiwweDc4LDB4YWQsMHhlNiwweDMwLDB4ZTAsMHgyYywweDc4LDB4YWQsMHhlNiwweDMwLDB4ZTEsMHgyNiwweDc4LDB4YWQsMHhlNiwKLTB4ZmMsMHhmNSwweDgzLDB4MTgsMHhlNiwweDQ0LDB4ZjAsMHhmZCwweDEyLDB4MWMsMHgzYywweDkwLDB4ZmYsMHhmYywweGUwLDB4NDQsCi0weDIwLDB4ZjAsMHg3YywweDAyLDB4MTIsMHgzMiwweGE5LDB4NzgsMHhhZCwweGU2LDB4NTQsMHhmZCwweGY2LDB4NzQsMHgxYSwweDkwLAotMHhmZiwweGZlLDB4ZjAsMHg3OCwweGFkLDB4ZTYsMHhmYywweGY1LDB4ODMsMHgxOCwweGU2LDB4NDQsMHhmMSwweGZkLDB4MTIsMHgxYywKLTB4M2MsMHgxMiwweDMxLDB4NjksMHgyMiwweDc1LDB4NmQsMHgwMCwweDkwLDB4ZmYsMHhmZiwweGUwLDB4NjAsMHgwMywweDQzLDB4NmQsCi0weDAxLDB4NzUsMHg2ZSwweDAwLDB4ZTQsMHhmNSwweDZjLDB4ZjUsMHg2YiwweGU0LDB4ZjUsMHg2ZiwweDc1LDB4NzAsMHg0OSwweDc0LAotMHg4NCwweDkwLDB4ZmYsMHg4MiwweGYwLDB4NzQsMHg4NCwweDkwLDB4ZmYsMHg4MCwweGYwLDB4NzQsMHg4MCwweDkwLDB4ZmYsMHg1OCwKLTB4ZjAsMHg3NCwweDgwLDB4OTAsMHhmZiwweDVhLDB4ZjAsMHhhZCwweDQ2LDB4YWYsMHg0NSwweDdlLDB4MDAsMHhlZSwweDI0LDB4ZmUsCi0weDUwLDB4MDMsMHgwMiwweDIxLDB4MjQsMHhlNCwweGVlLDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDdmLDB4ZjUsMHg4MiwweGU0LAotMHgzNCwweGY4LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlNCwweGVmLDB4NTQsMHg4MCwweGZkLDB4ZTQsMHhlZiwweDU0LDB4MGYsMHgxNCwKLTB4ZmYsMHhlZCwweDYwLDB4MzgsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsCi0weGZmLDB4ZjUsMHg4MywweDc0LDB4OTAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGEsMHhmNSwweDgyLAotMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZSwKLTB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsMHg4MCwweDM0LDB4ZTQsMHhlZiwweDc1LDB4ZjAsCi0weDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHg3NCwweDkwLDB4ZjAsMHhlNCwweGVmLAotMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlNCwKLTB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsCi0weDBlLDB4MDIsMHgyMCwweDhkLDB4OGQsMHg0NiwweDhlLDB4NDQsMHg4ZiwweDQ1LDB4NzQsMHg3ZiwweDkwLDB4ZmYsMHhmZCwweGYwLAotMHg3NCwweDkwLDB4OTAsMHhmZiwweGZjLDB4ZjAsMHgyMiwweDhjLDB4NTgsMHhlYywweDI0LDB4ZjYsMHg1MCwweDA2LDB4ZTUsMHg1OCwKLTB4MjQsMHgzNywweGZjLDB4MjIsMHhlNSwweDU4LDB4MjQsMHgzMCwweGZjLDB4MjIsMHgxMiwweDI1LDB4MjMsMHhlYywweDcwLDB4MDMsCi0weDAyLDB4MjIsMHg1ZSwweDc1LDB4NWMsMHgwMywweGFlLDB4NWIsMHg3ZiwweDAwLDB4ZTUsMHg1YywweDE1LDB4NWMsMHg2NCwweDgwLAotMHgyNCwweDdmLDB4NTAsMHgzNSwweGVmLDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmIsMHhmNSwweDgzLDB4ZTAsMHhmZSwKLTB4MjQsMHhmZSwweDUwLDB4MWUsMHhlZiwweDdkLDB4MDAsMHhmYywweGU0LDB4ZmIsMHg3NCwweDc0LDB4YzMsMHg5YywweGZhLDB4ZWIsCi0weDlkLDB4ZmIsMHhlZSwweDdkLDB4MDAsMHhmYywweGVhLDB4YzMsMHg5YywweGVkLDB4NjQsMHg4MCwweGNiLDB4NjQsMHg4MCwweDliLAotMHg1MCwweDAyLDB4ODAsMHgwNSwweGVmLDB4MmUsMHhmZiwweDgwLDB4YzEsMHg4ZSwweDViLDB4OGYsMHg1YSwweGU1LDB4NWMsMHg2NCwKLTB4ODAsMHgyNCwweDdmLDB4NTAsMHgwMywweDAyLDB4MjIsMHg1ZSwweGU1LDB4NWEsMHgyNCwweDhlLDB4NTAsMHgwMywweDAyLDB4MjIsCi0weDVlLDB4ODUsMHg1YSwweDVkLDB4NzUsMHg1YiwweDAwLDB4YWUsMHg1YSwweGFmLDB4NWIsMHg5MCwweDM1LDB4OWMsMHhlNCwweDkzLAotMHhmNSwweDVjLDB4ZTUsMHg1YywweDE1LDB4NWMsMHg2NCwweDgwLDB4MjQsMHg3ZiwweDUwLDB4MTgsMHhlZSwweDI0LDB4MDAsMHhmNSwKLTB4ODIsMHhlNCwweDM0LDB4ZmIsMHhmNSwweDgzLDB4ZTAsMHhmYywweGVmLDB4OTAsMHgzNSwweDljLDB4OTMsMHg2YywweDcwLDB4MDQsCi0weDBlLDB4MGYsMHg4MCwweGRlLDB4OGUsMHg1YSwweDhmLDB4NWIsMHhlNSwweDVjLDB4NjQsMHg4MCwweDI0LDB4N2YsMHg0MCwweDZlLAotMHg3NSwweDVlLDB4MDEsMHg3NSwweDYwLDB4ZTgsMHg3NSwweDVmLDB4ZmYsMHhlNSwweDVkLDB4MjQsMHgwMiwweGY1LDB4NWEsMHg3NSwKLTB4NWMsMHgwNywweGU1LDB4NWMsMHgzMywweDQwLDB4NTcsMHhhZCwweDYwLDB4YWUsMHg1ZiwweGFmLDB4NWUsMHhlNSwweDVjLDB4ZjUsCi0weDgyLDB4MzMsMHg5NSwweGUwLDB4ZjUsMHg4MywweDEyLDB4MDEsMHhlYywweGM0LDB4NTQsMHgwZiwweGZjLDB4MTIsMHgyMSwweDM3LAotMHhlNSwweDVhLDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmIsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDA1LDB4NWEsMHgwNSwKLTB4NWEsMHhhZCwweDYwLDB4YWUsMHg1ZiwweGFmLDB4NWUsMHhlNSwweDVjLDB4ZjUsMHg4MiwweDMzLDB4OTUsMHhlMCwweGY1LDB4ODMsCi0weDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhmYywweDEyLDB4MjEsMHgzNywweGU1LDB4NWEsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0LAotMHgzNCwweGZiLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHgwNSwweDVhLDB4MDUsMHg1YSwweDE1LDB4NWMsMHg4MCwweGE0LDB4NzQsMHgwMiwKLTB4OTAsMHhmOCwweDUxLDB4ZjAsMHg5MCwweGY4LDB4NmIsMHg3OSwweDc1LDB4N2EsMHgzNSwweDdiLDB4MjcsMHg3OCwweDAxLDB4MTIsCi0weDAzLDB4ZjUsMHg3NSwweDZhLDB4MzUsMHg3NSwweDY5LDB4ZmMsMHg3NSwweDY4LDB4MDEsMHhlNCwweDkwLDB4ZmYsMHg4MywweGYwLAotMHg3NCwweDgwLDB4OTAsMHhmZiwweDgxLDB4ZjAsMHg3NSwweDU5LDB4MDIsMHhlNSwweDU5LDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwKLTB4N2YsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGY4LDB4ZjUsMHg4MywweGUwLDB4NzgsMHg4ZiwweGY2LDB4ZmMsMHg1NCwweDBmLDB4MTQsCi0weGZjLDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhlNSwweDU5LDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDgxLDB4ZjUsMHg4MiwweGU0LAotMHgzNCwweGY4LDB4ZjUsMHg4MywweGUwLDB4NzgsMHg5MiwweDc2LDB4ZmQsMHgwOCwweDc2LDB4ZTgsMHhmYywweDc4LDB4OGYsMHhlNiwKLTB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsCi0weDhmLDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVjLAotMHhmMCwweDc4LDB4OTIsMHhlNiwweGZmLDB4MDgsMHhlNiwweDdlLDB4MDMsMHhjZiwweGMzLDB4MTMsMHhjZiwweDEzLDB4ZGUsMHhmOSwKLTB4ZmUsMHg3OCwweDhmLDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDksMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsCi0weDgzLDB4ZWUsMHhmMCwweDc4LDB4OGYsMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0YSwweGY1LDB4ODIsMHhlNCwweDM0LAotMHhmZiwweGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsMHg3OCwweDkwLDB4ZWMsMHhmNiwweDdkLDB4MDAsMHg3OCwweDkzLDB4ZTYsMHgyYywKLTB4ZjYsMHgxOCwweGU2LDB4M2QsMHhmNiwweDc4LDB4OTIsMHhlNiwweGZkLDB4MDgsMHhlNiwweDdjLDB4MDMsMHhjZCwweGMzLDB4MTMsCi0weGNkLDB4MTMsMHhkYywweGY5LDB4ZmMsMHg3OCwweDhmLDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGQsMHhmNSwweDgyLAotMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4OGYsMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZSwKLTB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg5MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsCi0weDc4LDB4OGYsMHhlNiwweGZmLDB4N2UsMHgwMCwweGVlLDB4MjQsMHhmZSwweDUwLDB4MDMsMHgwMiwweDI0LDB4ZGQsMHhlNCwweGVlLAotMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LDB4N2YsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGY4LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlNCwKLTB4ZWYsMHg1NCwweDgwLDB4ZmEsMHhlNCwweGVmLDB4NTQsMHgwZiwweDE0LDB4ZmYsMHhlNCwweGVlLDB4NzUsMHhmMCwweDA3LDB4YTQsCi0weDI0LDB4ODEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGY4LDB4ZjUsMHg4MywweGUwLDB4NzgsMHg5MCwweGY2LDB4ZTQsMHhlZSwweDEzLAotMHgxMywweDU0LDB4ODAsMHgyNCwweGYwLDB4ZjgsMHhlNCwweDM0LDB4ZmQsMHhmOSwweGU4LDB4ZmMsMHhlOSwweGZkLDB4OGEsMHg1YSwKLTB4ZWEsMHg3MCwweDAzLDB4MDIsMHgyNCwweDRhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsCi0weGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg5MCwweGU2LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LAotMHhhNCwweDI0LDB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHhlZCwweGZiLDB4ZWMsMHg3YSwKLTB4MDMsMHhjYiwweGMzLDB4MTMsMHhjYiwweDEzLDB4ZGEsMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsCi0weDQ5LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4NzgsMHg5MCwweGU2LDB4N2IsMHgwMCwweGZhLAotMHhlYywweDJhLDB4ZmMsMHhlZCwweDNiLDB4ZmQsMHhmYiwweGVjLDB4N2EsMHgwMywweGNiLDB4YzMsMHgxMywweGNiLDB4MTMsMHhkYSwKLTB4ZjksMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsCi0weDgzLDB4ZWEsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLAotMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZSwweGY1LDB4ODIsMHhlNCwKLTB4MzQsMHhmZiwweGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsMHgwMiwweDI0LDB4ZDksMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsCi0weDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3OCwweDkwLDB4ZTYsMHhmYSwweGU0LAotMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwKLTB4ZWQsMHhmYiwweGVjLDB4N2EsMHgwMywweGNiLDB4YzMsMHgxMywweGNiLDB4MTMsMHhkYSwweGY5LDB4ZmEsMHhlNCwweGVmLDB4NzUsCi0weGYwLDB4MDgsMHhhNCwweDI0LDB4MDksMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHg3OCwweDkwLAotMHhlNiwweDdiLDB4MDAsMHhmYSwweGVjLDB4MmEsMHhmYywweGVkLDB4M2IsMHhmZCwweGZiLDB4ZWMsMHg3YSwweDAzLDB4Y2IsMHhjMywKLTB4MTMsMHhjYiwweDEzLDB4ZGEsMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZCwweGY1LDB4ODIsCi0weGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwYSwweGY1LAotMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZSwKLTB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4MGUsMHgwMiwweDIzLDB4NjYsMHg4ZSwweDU5LDB4NzgsCi0weDkyLDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweDc4LDB4OGYsMHhlZiwweGY2LDB4MTIsMHgyMCwweDU1LDB4MjIsMHg4YywweDI2LAotMHhlYywweDMwLDB4ZTcsMHgxOCwweGU1LDB4MjYsMHg1NCwweDBmLDB4MTQsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwKLTB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGRmLDB4ZjAsMHg4MCwweDE2LDB4ZTUsMHgyNiwweDU0LDB4MGYsCi0weDE0LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LAotMHhkZiwweGYwLDB4MjIsMHg3YywweDAwLDB4MjIsMHhlYywweDkwLDB4ZmMsMHgzNywweGYwLDB4OGMsMHgyNCwweGVkLDB4MjQsMHgwMywKLTB4ZjUsMHgyNSwweDdkLDB4MDAsMHhkMywweDk1LDB4NzIsMHhlZCwweDk1LDB4NzEsMHg0MCwweDAzLDB4ODUsMHg3MiwweDI1LDB4ZTUsCi0weDI1LDB4MjQsMHhiNywweDUwLDB4MDksMHg3NSwweDI1LDB4MDMsMHg3NCwweDAyLDB4OTAsMHhmYywweDM3LDB4ZjAsMHhhYywweDI1LAotMHgxMiwweDMwLDB4MjQsMHgyMiwweGU0LDB4ZjUsMHg2YywweGY1LDB4NmIsMHgxMiwweDI1LDB4NWQsMHgyMiwweDkwLDB4ZmMsMHgzNSwKLTB4ZTAsMHg2NSwweDczLDB4NjAsMHgwZSwweDc0LDB4MDQsMHg5MCwweGZjLDB4MzcsMHhmMCwweGU0LDB4ZjUsMHg2YiwweDc1LDB4NmMsCi0weDAzLDB4ODAsMHg0NiwweDdkLDB4NzMsMHhlNCwweGZlLDB4ZmYsMHg3OSwweDM1LDB4N2EsMHhmYywweDdiLDB4MDEsMHg3NCwweDA1LAotMHg3OCwweDAwLDB4MTIsMHgwMywweDNmLDB4ZTUsMHg2YywweDI0LDB4MDMsMHhmNSwweDZjLDB4ZTUsMHg2YiwweDM0LDB4MDAsMHhmNSwKLTB4NmIsMHhlNSwweDZjLDB4ZDMsMHg5NSwweDcyLDB4ZTUsMHg2YiwweDk1LDB4NzEsMHg0MCwweDA2LDB4ODUsMHg3MiwweDZjLDB4ODUsCi0weDcxLDB4NmIsMHhkMywweGU1LDB4NmMsMHg5NCwweDQ4LDB4ZTUsMHg2YiwweDk0LDB4MDAsMHg0MCwweDBjLDB4NzQsMHgwMiwweDkwLAotMHhmYywweDM3LDB4ZjAsMHhlNCwweGY1LDB4NmIsMHg3NSwweDZjLDB4MDMsMHhhYywweDZjLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhlYywKLTB4OTAsMHhmYywweDM3LDB4ZjAsMHhlNCwweGY1LDB4NmMsMHhmNSwweDZiLDB4OGMsMHgzMiwweGVjLDB4NjAsMHgwNSwweDEyLDB4MzAsCi0weDE1LDB4ODAsMHgwNSwweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweDkwLDB4ZmYsMHg5MywweGUwLDB4NDQsMHgwMSwweGYwLAotMHhiMiwweGIzLDB4OTAsMHhmZiwweDA0LDB4ZTAsMHhmNSwweDRhLDB4OTAsMHhmZiwweDA2LDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhlZCwKLTB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4OTAsMHhmZiwweDA2LDB4ZTAsMHhmZiwweGEzLDB4ZTAsMHg3ZSwweDAwLDB4ZmYsCi0weGU0LDB4ZmUsMHhlYywweDRlLDB4ZmMsMHhlZCwweDRmLDB4ZmQsMHhjMywweGVjLDB4OTQsMHg0OCwweGVkLDB4OTQsMHgwMCwweDUwLAotMHgyMiwweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmQsMHhhMywweGUwLDB4ZWQsMHg3ZCwweDAwLDB4ZmMsMHg3ZCwweDAwLDB4ZmMsMHg5MCwKLTB4ZmYsMHgwNiwweGUwLDB4ZmYsMHhhMywweGUwLDB4N2UsMHgwMCwweGZmLDB4ZTQsMHhmZSwweGVjLDB4NGUsMHhmYywweGVkLDB4NGYsCi0weGZkLDB4ODAsMHgwNCwweGU0LDB4ZmQsMHg3YywweDQ4LDB4OGMsMHg3MiwweDhkLDB4NzEsMHg5MCwweGZmLDB4MDIsMHhlMCwweGZkLAotMHhhMywweGUwLDB4ZWQsMHg3ZCwweDAwLDB4ZmMsMHg3ZCwweDAwLDB4ZmMsMHg5MCwweGZmLDB4MDIsMHhlMCwweGZmLDB4YTMsMHhlMCwKLTB4N2UsMHgwMCwweGZmLDB4ZTQsMHhmZSwweGVjLDB4NGUsMHhmNSwweDRjLDB4ZWQsMHg0ZiwweGY1LDB4NGIsMHg3NSwweDZhLDB4MzUsCi0weDc1LDB4NjksMHhmYywweDc1LDB4NjgsMHgwMSwweDdkLDB4MzUsMHg3ZSwweGZjLDB4N2YsMHgwMSwweDc5LDB4NzMsMHhlNCwweGZhLAotMHhmYiwweDc0LDB4MDUsMHg3OCwweDAwLDB4MTIsMHgwMywweDNmLDB4NzUsMHg0OSwweDAwLDB4ZTUsMHg0OSwweDI0LDB4ZmUsMHg0MCwKLTB4MTksMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsMHhlNCwweDEyLDB4MDMsMHgwZiwweDA1LDB4NDksMHgwZCwweGVkLDB4NzAsCi0weDAxLDB4MGUsMHg4ZCwweDZhLDB4OGUsMHg2OSwweDhmLDB4NjgsMHg4MCwweGUxLDB4NzUsMHg2YSwweDM1LDB4NzUsMHg2OSwweGZjLAotMHg3NSwweDY4LDB4MDEsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4NjAsMHhiNCwweDAwLDB4MDIsMHg4MCwweDA2LDB4ZDMsMHg1MCwKLTB4MDMsMHgwMiwweDJjLDB4NmQsMHhlNSwweDRhLDB4NTQsMHgwZiwweGY1LDB4NDksMHhlNSwweDRhLDB4NTQsMHg4MCwweGEyLDB4ZTAsCi0weDkyLDB4MDIsMHg5MCwweGZmLDB4MDEsMHhlMCwweDEyLDB4MDEsMHg4MSwweDAwLDB4MGIsMHgyYywweDY4LDB4MjYsMHhlNSwweDI4LAotMHgwMywweDJjLDB4NjgsMHgyOSwweDBmLDB4MmMsMHg2OCwweDI5LDB4ZjIsMHgyYSwweDI2LDB4MmIsMHg4ZCwweDJiLDB4OTAsMHgyYiwKLTB4ZDAsMHgyYywweDExLDB4MmMsMHgzZiwweGU1LDB4NmQsMHgzMCwweGU3LDB4MGUsMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDgsCi0weGU1LDB4NzIsMHg2NCwweDAyLDB4NDUsMHg3MSwweDYwLDB4MDMsMHgwMiwweDJjLDB4NmEsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LAotMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MjksMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MjgsMHgwMCwKLTB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4NzQsMHgwMSwweDEyLDB4MDMsMHgwZiwweDc4LDB4YWQsMHhlNiwweDMwLDB4ZTAsCi0weDBiLDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4NzQsMHgwMiwweDEyLDB4MDMsMHgwZiwweDdjLDB4MDIsMHgxMiwweDMwLAotMHgyNCwweDIyLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxYiwweGU1LDB4NmQsMHgyMCwweGUxLDB4MDcsMHhlNSwKLTB4NGEsMHg2MCwweDAzLDB4MDIsMHgyOCwweDAwLDB4ZTUsMHg0YSwweDI0LDB4ZmUsMHg1MCwweDAzLDB4MDIsMHgyOCwweDAwLDB4N2MsCi0weDAyLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsMHgyNywweGZlLAotMHhlNSwweDZkLDB4MjAsMHhlMSwweDBkLDB4ZTUsMHg0YSwweDYwLDB4MDksMHhlNSwweDRhLDB4NjQsMHg4MCwweDYwLDB4MDMsMHgwMiwKLTB4MjgsMHgwMCwweGFjLDB4NGEsMHgxMiwweDMwLDB4YWIsMHg0MCwweDAzLDB4MDIsMHgyOCwweDAwLDB4ZTUsMHg0OSwweDcwLDB4MjUsCi0weDMwLDB4MDIsMHgxMSwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NTQsMHgwOCwweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweDEyLAotMHgwMywweDBmLDB4ODAsMHgwZiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NTQsMHgwOCwweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwKLTB4MTIsMHgwMywweDBmLDB4ODAsMHgzZCwweDE1LDB4NDksMHgzMCwweDAyLDB4MWQsMHhlNSwweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsCi0weDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwOCwweGFkLDB4NmEsMHhhZSwweDY5LAotMHhhZiwweDY4LDB4MTIsMHgwMywweDBmLDB4ODAsMHgxYiwweGU1LDB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwKLTB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDA4LDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4MTIsCi0weDAzLDB4MGYsMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsMHgxMiwweDAxLDB4ZTYsMHg2MCwweDBiLDB4YWQsMHg2YSwweGFlLAotMHg2OSwweGFmLDB4NjgsMHg3NCwweDAxLDB4MTIsMHgwMywweDBmLDB4N2MsMHgwMiwweDEyLDB4MzAsMHgyNCwweDIyLDB4ODAsMHgwMCwKLTB4MDIsMHgyYywweDZhLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgwNiwweGU1LDB4NzIsMHg0NSwweDcxLDB4NjAsMHgwMywweDAyLDB4MmMsCi0weDZhLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxYSwweGU1LAotMHg0YywweDE0LDB4NDUsMHg0YiwweDcwLDB4MDQsMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MjksMHgwYywweDc4LDB4YWQsMHhlNiwKLTB4NTQsMHhmZSwweGY2LDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsCi0weDJhLDB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwOCwweGU1LDB4NmQsMHgyMCwweGUwLDB4MDMsMHgwMiwweDI5LDB4MGMsMHhlNSwweDZkLAotMHgzMCwweGUwLDB4MDQsMHhlNSwweDRhLDB4NzAsMHgwYiwweGU1LDB4NmQsMHgzMCwweGUxLDB4MDksMHhlNSwweDRhLDB4MjQsMHhmZSwKLTB4NTAsMHgwMywweDAyLDB4MjksMHgwYywweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDYsCi0weGQzLDB4NTAsMHgwMywweDAyLDB4MjksMHgwYSwweGU1LDB4NGMsMHg0NSwweDRiLDB4NjAsMHgwMywweDAyLDB4MjksMHgwYywweGFjLAotMHg0YSwweDEyLDB4MzAsMHhhYiwweDQwLDB4MDMsMHgwMiwweDI5LDB4MGMsMHhlNSwweDZkLDB4MjAsMHhlMSwweDA3LDB4ZTUsMHg2ZCwKLTB4MjAsMHhlMCwweDAyLDB4ODAsMHg3NywweGU1LDB4NmQsMHgzMCwweGUwLDB4MDYsMHhlNSwweDQ5LDB4NjAsMHgwMiwweDgwLDB4NmMsCi0weGU1LDB4NDksMHg3MCwweDBmLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg1NCwweGY3LDB4ZjAsMHg5MCwweGZmLDB4ODAsMHhlMCwweDU0LAotMHhmNywweGYwLDB4MjIsMHhlNSwweDQ5LDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwOSwweDdkLDB4MDEsMHg3YywKLTB4MDMsMHgxMiwweDBmLDB4MDksMHg4MCwweDExLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwOSwweDdkLDB4MDEsCi0weDdjLDB4MDQsMHgxMiwweDBmLDB4MDksMHg4MCwweDAwLDB4MTUsMHg0OSwweDMwLDB4MDIsMHgxNSwweGU1LDB4NDksMHg3NSwweGYwLAotMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGY3LDB4ZjAsMHg4MCwKLTB4MTMsMHhlNSwweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsCi0weGUwLDB4NTQsMHhmNywweGYwLDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4ODAsMHgwMCwweDAyLDB4MmMsMHg2YSwweGU1LAotMHg2ZCwweDIwLDB4ZTcsMHgwNiwweGU1LDB4NzIsMHg0NSwweDcxLDB4NjAsMHgwMywweDAyLDB4MmMsMHg2YSwweDkwLDB4ZmYsMHgwMCwKLTB4ZTAsMHg1NCwweDFmLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxYSwweGU1LDB4NGMsMHgxNCwweDQ1LDB4NGIsCi0weDcwLDB4MDQsMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MjksMHhlZiwweDc4LDB4YWQsMHhlNiwweDQ0LDB4MDEsMHhmNiwweDdjLAotMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgyOSwweGU1LDB4NmQsMHgyMCwKLTB4ZTEsMHgwOCwweGU1LDB4NmQsMHgyMCwweGUwLDB4MDMsMHgwMiwweDI5LDB4ZWYsMHhlNSwweDZkLDB4MzAsMHhlMCwweDA0LDB4ZTUsCi0weDQ5LDB4NzAsMHgwYiwweGU1LDB4NmQsMHgzMCwweGUxLDB4MDgsMHhlNSwweDQ5LDB4MjQsMHhmZSwweDUwLDB4MDIsMHg4MCwweDdmLAotMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDZmLDB4ZTUsMHg0YywKLTB4NDUsMHg0YiwweDYwLDB4MDIsMHg4MCwweDY5LDB4YWMsMHg0YSwweDEyLDB4MzAsMHhhYiwweDQwLDB4MDIsMHg4MCwweDYwLDB4ZTUsCi0weDZkLDB4MjAsMHhlMSwweDA3LDB4ZTUsMHg2ZCwweDIwLDB4ZTAsMHgwMiwweDgwLDB4NTQsMHhlNSwweDQ5LDB4NzAsMHgxNCwweDMwLAotMHgwMiwweDA5LDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg0NCwKLTB4MDgsMHhmMCwweDIyLDB4ZTUsMHg2ZCwweDMwLDB4ZTEsMHgzMywweDE1LDB4NDksMHgzMCwweDAyLDB4MTUsMHhlNSwweDQ5LDB4NzUsCi0weGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgwOCwweGYwLAotMHg4MCwweDEzLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwKLTB4ODMsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweDgwLDB4MDIsMHg4MCwweDAwLDB4MDIsCi0weDJjLDB4NmEsMHhlNSwweDZkLDB4MjAsMHhlNywweDEyLDB4ZTUsMHg3MiwweDQ1LDB4NzEsMHg3MCwweDBjLDB4ZTUsMHg0YSwweDcwLAotMHgwOCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDMsMHgwMiwweDJjLDB4NmEsMHhlNSwweDRjLDB4OTAsMHhmZiwKLTB4ZmYsMHhmMCwweDkwLDB4ZmYsMHhmZiwweGUwLDB4NjAsMHgwNSwweDQzLDB4NmQsMHgwMSwweDgwLDB4MDMsMHg1MywweDZkLDB4ZmUsCi0weDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweGU1LDB4NmQsMHgzMCwweGU3LDB4MGUsMHhlNSwweDcyLDB4NDUsMHg3MSwweDYwLAotMHgwOCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDMsMHgwMiwweDJjLDB4NmEsMHhhZCwweDRiLDB4ZTUsMHg0YywKLTB4ZWQsMHg3ZCwweDAwLDB4ZmMsMHg3ZCwweDAwLDB4ZmMsMHhiZCwweDAwLDB4MDIsMHg4MCwweDAzLDB4MDIsMHgyYiwweDg4LDB4YjQsCi0weDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDMyLDB4ZTUsMHg0YSwweDcwLDB4MDUsMHhlNSwweDRjLDB4ZmMsMHg2MCwweDAzLAotMHgwMiwweDJiLDB4OGEsMHg3NSwweDZhLDB4NDAsMHg3NSwweDY5LDB4ZjgsMHg3NSwweDY4LDB4MDEsMHhkMywweGU1LDB4NzIsMHg5NCwKLTB4MTIsMHhlNSwweDcxLDB4OTQsMHgwMCwweDQwLDB4MDYsMHhlNCwweGZkLDB4N2MsMHgxMiwweDgwLDB4MDQsMHhhYywweDcyLDB4YWQsCi0weDcxLDB4OGMsMHg3MCwweDhkLDB4NmYsMHgxMiwweDMwLDB4MzksMHgyMiwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLAotMHg1OSwweGU1LDB4NGEsMHg2MCwweDAzLDB4MDIsMHgyYiwweDhhLDB4ZTUsMHg0YywweGZjLDB4NzAsMHgyNywweDc1LDB4NmEsMHg1MiwKLTB4NzUsMHg2OSwweGY4LDB4NzUsMHg2OCwweDAxLDB4ZDMsMHhlNSwweDcyLDB4OTQsMHgxOSwweGU1LDB4NzEsMHg5NCwweDAwLDB4NDAsCi0weDA2LDB4ZTQsMHhmZCwweDdjLDB4MTksMHg4MCwweDA0LDB4YWMsMHg3MiwweGFkLDB4NzEsMHg4YywweDcwLDB4OGQsMHg2ZiwweDEyLAotMHgzMCwweDM5LDB4ODAsMHgyNSwweDc1LDB4NmEsMHg2YiwweDc1LDB4NjksMHhmOCwweDc1LDB4NjgsMHgwMSwweGQzLDB4ZTUsMHg3MiwKLTB4OTQsMHgyNywweGU1LDB4NzEsMHg5NCwweDAwLDB4NDAsMHgwNiwweGU0LDB4ZmQsMHg3YywweDI3LDB4ODAsMHgwNCwweGFjLDB4NzIsCi0weGFkLDB4NzEsMHg4YywweDcwLDB4OGQsMHg2ZiwweDEyLDB4MzAsMHgzOSwweDIyLDB4YjQsMHgwMywweDAyLDB4ODAsMHgwNiwweGQzLAotMHg1MCwweDAzLDB4MDIsMHgyYiwweDg4LDB4ZTUsMHg0YywweGY1LDB4NDksMHg3MCwweDBmLDB4OTAsMHhmZiwweDA0LDB4ZTAsMHhmZCwKLTB4YTMsMHhlMCwweDRkLDB4NjAsMHgwMywweDAyLDB4MmIsMHg4YSwweDgwLDB4MTgsMHg5MCwweGZiLDB4MDIsMHhlMCwweGZkLDB4YTMsCi0weGUwLDB4ZmMsMHg5MCwweGZmLDB4MDUsMHhlMCwweDZjLDB4NzAsMHgwNywweDkwLDB4ZmYsMHgwNCwweGUwLDB4NmQsMHg2MCwweDAyLAotMHg4MCwweDY4LDB4ZTQsMHhmNSwweDcwLDB4ZjUsMHg2ZiwweDdmLDB4MDAsMHhlNSwweDQ5LDB4MTQsMHhjNSwweDQ5LDB4NjAsMHgwZiwKLTB4ZWYsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYiwweGY1LDB4ODMsMHhlMCwweDJmLDB4ZmYsMHg4MCwweGVhLDB4OGYsCi0weDRhLDB4ZTUsMHg0YSwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZiLDB4ZjUsMHg4MywweGUwLDB4N2QsMHgwMCwweGQzLAotMHg5NSwweDcyLDB4ZWQsMHg5NSwweDcxLDB4NDAsMHgwNiwweGFjLDB4NzIsMHhhZCwweDcxLDB4ODAsMHgwZiwweGU1LDB4NGEsMHgyNCwKLTB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZiLDB4ZjUsMHg4MywweGUwLDB4N2QsMHgwMCwweGZjLDB4OGMsMHg3MCwweDhkLDB4NmYsCi0weGU1LDB4NGEsMHgyNCwweDAwLDB4ZmMsMHhlNCwweDM0LDB4ZmIsMHhmZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg4ZCwweDZhLAotMHg4ZSwweDY5LDB4OGYsMHg2OCwweDEyLDB4MzAsMHgzOSwweDIyLDB4ODAsMHgwMCwweDAyLDB4MmMsMHg2YSwweDAyLDB4MmMsMHg2YSwKLTB4ZTUsMHg2ZCwweDMwLDB4ZTcsMHgxOSwweGU1LDB4NzIsMHgxNCwweDQ1LDB4NzEsMHg3MCwweDEyLDB4ZTUsMHg0YSwweDcwLDB4MGUsCi0weGU1LDB4NGMsMHg0NSwweDRiLDB4NzAsMHgwOCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDMsMHgwMiwweDJjLAotMHg2YSwweGU1LDB4NmQsMHgyMCwweGUwLDB4MDgsMHhlNSwweDZkLDB4MjAsMHhlMSwweDAzLDB4MDIsMHgyYywweDZhLDB4NzUsMHg2YSwKLTB4NmUsMHhlNCwweGY1LDB4NjksMHhmNSwweDY4LDB4ZTQsMHhmNSwweDZmLDB4MDQsMHhmNSwweDcwLDB4MTIsMHgzMCwweDM5LDB4MjIsCi0weGU1LDB4NmQsMHgyMCwweGU3LDB4MTIsMHhlNSwweDcyLDB4NDUsMHg3MSwweDcwLDB4MGMsMHhlNSwweDRhLDB4NzAsMHgwOCwweDkwLAotMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwMywweDAyLDB4MmMsMHg2YSwweGU1LDB4NmQsMHgyMCwweGUwLDB4MDcsMHhlNSwKLTB4NmQsMHgyMCwweGUxLDB4MDIsMHg4MCwweDc0LDB4ODUsMHg0YywweDZlLDB4ZTUsMHg2ZSwweDcwLDB4MDgsMHg0MywweDZkLDB4MDEsCi0weDUzLDB4NmQsMHhmZCwweDgwLDB4MDYsMHg1MywweDZkLDB4ZmUsMHg0MywweDZkLDB4MDIsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LAotMHgyMiwweGU1LDB4NmQsMHgzMCwweGU3LDB4MWEsMHhlNSwweDcyLDB4MTQsMHg0NSwweDcxLDB4NzAsMHgxMywweGU1LDB4NGEsMHg3MCwKLTB4MGYsMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDksMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHgxNCwweDYwLDB4MDIsCi0weDgwLDB4MzgsMHhlNSwweDZkLDB4MjAsMHhlMSwweDAyLDB4ODAsMHgzMSwweDdjLDB4MDEsMHgxMiwweDMwLDB4MjQsMHgyMiwweGU1LAotMHg2ZCwweDIwLDB4ZTcsMHgxNSwweGU1LDB4NzIsMHg0NSwweDcxLDB4NzAsMHgwZiwweGU1LDB4NGMsMHg0NSwweDRiLDB4NzAsMHgwOSwKLTB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4MTQsMHg2MCwweDAyLDB4ODAsMHgwZiwweGU1LDB4NmQsMHgyMCwweGUxLDB4MDIsCi0weDgwLDB4MDgsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHg4MCwweDAwLDB4MDIsMHgyZiwweDJiLDB4YjQsMHg0MCwweDAyLAotMHg4MCwweDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsMHgyZiwweDIxLDB4OTAsMHhmZiwweDAxLDB4ZTAsMHg5MCwweGZjLDB4MzUsMHhmMCwKLTB4ZTUsMHg0YSwweDkwLDB4ZmMsMHgzNiwweGYwLDB4ZTQsMHg5MCwweGZjLDB4MzcsMHhmMCwweGU1LDB4NmEsMHgyNCwweDAzLDB4ZjUsCi0weDZhLDB4ZTUsMHg2OSwweDM0LDB4MDAsMHhmNSwweDY5LDB4YWQsMHg0YiwweGU1LDB4NGMsMHg4NSwweDZhLDB4ODIsMHg4NSwweDY5LAotMHg4MywweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwweGZmLDB4MDEsMHhlMCwweDEyLDB4MDEsMHhiNywweDJjLDB4ZDgsMHgwMSwKLTB4MmMsMHhmZSwweDAyLDB4MmQsMHgyOCwweDAzLDB4MmQsMHg1MiwweDA0LDB4MmQsMHhhMCwweDA1LDB4MmQsMHhkZCwweDA2LDB4MmUsCi0weDAzLDB4MDcsMHgyZSwweDI5LDB4MDgsMHgyZSwweDU1LDB4MDksMHgyZSwweDdiLDB4MGIsMHgyZSwweGExLDB4MGMsMHgyZSwweGIwLAotMHg4MCwweDJlLDB4YjAsMHg4MSwweDAwLDB4MDAsMHgyZiwweDBlLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwKLTB4MjUsMHhiZiwweDIyLDB4N2QsMHgyNCwweDdlLDB4MzUsMHg3ZiwweDAyLDB4NzksMHgzOCwweDdhLDB4ZmMsMHg3YiwweDAxLDB4NzQsCi0weDA4LDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweDdkLDB4MDgsMHg3YywweDAwLDB4MTIsMHgyNSwweDI2LDB4MjIsMHhlNSwweDZkLAotMHgyMCwweGU3LDB4MDYsMHg3YywweDA1LDB4MTIsMHgyNSwweGJmLDB4MjIsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwKLTB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDEwLDB4MTIsMHgzMSwweGZiLDB4MjIsCi0weDdkLDB4MDAsMHg3YywweDA3LDB4MTIsMHgyNSwweDI2LDB4MjIsMHhlNSwweDZkLDB4MjAsMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLAotMHgyNSwweGJmLDB4MjIsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwKLTB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDExLDB4MTIsMHgzMSwweGZiLDB4MjIsMHg3ZCwweDAwLDB4N2MsMHgwNywweDEyLDB4MjUsCi0weDI2LDB4MjIsMHhlNSwweDZkLDB4MjAsMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsMHhiZiwweDIyLDB4ZTUsMHg0YSwweGI0LAotMHgwNSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwYSwweDEyLDB4MzEsMHhmYiwKLTB4MjIsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA4LDB4MTIsCi0weDMxLDB4ZmIsMHgyMiwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLAotMHgwMCwweGZlLDB4N2MsMHgxMywweDEyLDB4MzEsMHhmYiwweDIyLDB4N2QsMHgwMCwweDdjLDB4MDcsMHgxMiwweDI1LDB4MjYsMHgyMiwKLTB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgzNCwweGQzLDB4ZTUsMHg3MiwweDk0LDB4NDgsMHhlNSwweDcxLDB4OTQsMHgwMCwweDUwLDB4MDYsCi0weGU1LDB4NzIsMHg0NSwweDcxLDB4NzAsMHgwNiwweDdjLDB4MDIsMHgxMiwweDI1LDB4YmYsMHgyMiwweGU1LDB4NGEsMHhiNCwweDAxLAotMHgwMywweGIzLDB4NDAsMHgwYiwweGMzLDB4YjQsMHgwMywweDAwLDB4NDAsMHgwOSwweGI0LDB4MDYsMHgwMCwweDUwLDB4MDQsMHgxMiwKLTB4MzAsMHhkMSwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4MTIsMHgyNSwweDVkLDB4MjIsMHhlNSwweDZkLDB4MjAsCi0weGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLAotMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE2LDB4MTIsMHgzMSwweGZiLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweGJmLDB4MjIsMHgxMiwKLTB4MjUsMHg1ZCwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgxZCwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsCi0weDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTksMHgxMiwweDMxLDB4ZmIsMHgyMiwweDdjLAotMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4MTIsMHgyNSwweDVkLDB4MjIsMHhlNSwweDZkLDB4MjAsMHhlNywweDIzLDB4NzQsMHg4MSwKLTB4OTAsMHhmZiwweDkzLDB4ZjAsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsCi0weGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE3LDB4MTIsMHgzMSwweGZiLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweGJmLAotMHgyMiwweDEyLDB4MjUsMHg1ZCwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgxZCwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwKLTB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTgsMHgxMiwweDMxLDB4ZmIsCi0weDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4MTIsMHgyNSwweDVkLDB4MjIsMHhlNSwweDZkLDB4MjAsMHhlNywweDFkLAotMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwKLTB4ZmUsMHg3YywweDE1LDB4MTIsMHgzMSwweGZiLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweGJmLDB4MjIsMHgxMiwweDI1LDB4NWQsCi0weDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweDEyLDB4MjUsMHg1ZCwweDIyLAotMHhlNSwweDZkLDB4MzAsMHhlNywweDIwLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NzAsMHgxMCwweDkwLDB4ZmYsMHgwMSwKLTB4ZTAsMHhiNCwweDgwLDB4MDUsMHgxMiwweDI1LDB4NTQsMHg4MCwweDAzLDB4MTIsMHgyNSwweDVkLDB4MjIsMHg3ZCwweDAwLDB4N2MsCi0weDA1LDB4MTIsMHgyNSwweDI2LDB4MjIsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDA2LDB4N2MsMHgwNSwweDEyLAotMHgyNSwweGJmLDB4MjIsMHhkMywweGU1LDB4NzIsMHg5NCwweDQ4LDB4ZTUsMHg3MSwweDk0LDB4MDAsMHg1MCwweDBiLDB4YzMsMHhlNSwKLTB4NzIsMHg5NCwweDA3LDB4ZTUsMHg3MSwweDk0LDB4MDAsMHg1MCwweDA2LDB4N2MsMHgwMywweDEyLDB4MjUsMHhiZiwweDIyLDB4ZTUsCi0weDRhLDB4YjQsMHgwNSwweDA0LDB4MTIsMHgzMCwweGQxLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweGJmLDB4MjIsMHhlNSwweDZkLAotMHgzMCwweGU3LDB4MDgsMHg3ZCwweDAwLDB4N2MsMHgwNSwweDEyLDB4MjUsMHgyNiwweDIyLDB4N2MsMHgwNSwweDEyLDB4MjUsMHhiZiwKLTB4MjIsMHhiNCwweDIwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLDB4ODAsMHgwMCwweDEyLDB4MmYsMHhmZiwweDIyLDB4NzUsCi0weDQzLDB4MDAsMHg5MCwweGZmLDB4ODMsMHhlMCwweDU0LDB4MGYsMHhkMywweDk1LDB4NDMsMHg0MCwweDI0LDB4ZTUsMHg0MywweDI0LAotMHhmMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmUsMHhmNSwweDgzLDB4ZTAsMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsMHgxMiwKLTB4MDMsMHgwZiwweDA1LDB4NDMsMHgwZCwweGVkLDB4NzAsMHgwMSwweDBlLDB4OGQsMHg2YSwweDhlLDB4NjksMHg4ZiwweDY4LDB4ODAsCi0weGQxLDB4ZTUsMHg0MywweDdkLDB4MDAsMHhmYywweGMzLDB4ZTUsMHg3MCwweDljLDB4ZjUsMHg3MCwweGU1LDB4NmYsMHg5ZCwweGY1LAotMHg2ZiwweGU1LDB4NzAsMHg0NSwweDZmLDB4NjAsMHgwNiwweGU0LDB4OTAsMHhmZiwweDgzLDB4ZjAsMHgyMiwweDkwLDB4ZmYsMHg4MiwKLTB4ZTAsMHg0NCwweDA4LDB4ZjAsMHhlNCwweGY1LDB4NmYsMHg3NSwweDcwLDB4NDksMHg5MCwweGZjLDB4MzUsMHhlMCwweGI0LDB4MDUsCi0weDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg0MCwweDkwLDB4ZmMsMHgzNiwweGUwLDB4ZjUsMHg0MywweGI0LDB4MDUsMHgwMiwweDgwLAotMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwYiwweDEyLDB4MzEsMHhmYiwweDIyLDB4YjQsMHgwMSwKLTB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA5LDB4MTIsMHgzMSwweGZiLDB4MjIsCi0weGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0MywweDdmLDB4MDAsMHhmZSwweDdjLAotMHgxNCwweDEyLDB4MzEsMHhmYiwweDIyLDB4MjIsMHhiNCwweDgwLDB4MDAsMHg0MCwweDIzLDB4YjQsMHg4MiwweDAwLDB4NTAsMHgxZSwKLTB4N2MsMHgzNSwweDdkLDB4ZmMsMHgxMiwweDE3LDB4N2UsMHg3ZCwweDAwLDB4OGMsMHg2YywweDhkLDB4NmIsMHg5MCwweGZjLDB4MzcsCi0weGUwLDB4NjAsMHgwNSwweDEyLDB4MmYsMHhmZiwweDgwLDB4MDUsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHgyMiwweDkwLAotMHhmZiwweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg5MCwweGZmLDB4ODIsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDkwLDB4ZmYsMHg4MCwKLTB4ZTAsMHg0NCwweDA4LDB4ZjAsMHgyMiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsMHgwOCwweGYwLDB4OTAsMHhmZiwweDgwLDB4ZTAsCi0weDQ0LDB4MDgsMHhmMCwweDIyLDB4OGMsMHgyMywweDdkLDB4MDAsMHg4YywweDcwLDB4OGQsMHg2ZiwweDc1LDB4NmEsMHgzNSwweDc1LAotMHg2OSwweGZjLDB4NzUsMHg2OCwweDAxLDB4MTIsMHgzMCwweDM5LDB4MjIsMHg5MCwweGZmLDB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwKLTB4ZTUsMHg3MCwweDY0LDB4NDksMHg0NSwweDZmLDB4NzAsMHgwMSwweDIyLDB4YzMsMHhlNSwweDcwLDB4OTQsMHgwOCwweGU1LDB4NmYsCi0weDk0LDB4MDAsMHg0MCwweDE1LDB4NzUsMHgyMSwweDA4LDB4ZTUsMHgyMSwweDdkLDB4MDAsMHhmYywweGMzLDB4ZTUsMHg3MCwweDljLAotMHhmNSwweDcwLDB4ZTUsMHg2ZiwweDlkLDB4ZjUsMHg2ZiwweDgwLDB4MDksMHg4NSwweDcwLDB4MjEsMHhlNCwweGY1LDB4NmYsMHg3NSwKLTB4NzAsMHg0OSwweDc1LDB4MjIsMHgwMCwweGU1LDB4MjIsMHhjMywweDk1LDB4MjEsMHg1MCwweDI2LDB4YWQsMHg2YSwweGFlLDB4NjksCi0weGFmLDB4NjgsMHgxMiwweDAxLDB4ZTYsMHhmYywweGU1LDB4MjIsMHgyNCwweGY4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZSwweGY1LAotMHg4MywweGVjLDB4ZjAsMHgwNSwweDIyLDB4MGQsMHhlZCwweDcwLDB4MDEsMHgwZSwweDhkLDB4NmEsMHg4ZSwweDY5LDB4OGYsMHg2OCwKLTB4ODAsMHhkMywweGU1LDB4MjEsMHg1NCwweDdmLDB4OTAsMHhmZiwweDgxLDB4ZjAsMHgyMiwweDhjLDB4NDgsMHg3ZiwweDAwLDB4ZWYsCi0weDI0LDB4ZmQsMHg0MCwweDE5LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHg3ZiwweGY1LDB4ODIsMHhlNCwweDM0LAotMHhmOCwweGY1LDB4ODMsMHhlMCwweDY1LDB4NDgsMHg3MCwweDAyLDB4ZDMsMHgyMiwweDBmLDB4ODAsMHhlMiwweDhmLDB4NDcsMHhjMywKLTB4MjIsMHg4NSwweDcyLDB4NzAsMHg4NSwweDcxLDB4NmYsMHg5MCwweGZmLDB4ODIsMHhlMCwweDU0LDB4ZjcsMHhmMCwweDkwLDB4ZmYsCi0weDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHgyMiwweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDYsMHhjMCwweDA3LAotMHhlNSwweDc4LDB4MjQsMHgwOCwweGY4LDB4ODYsMHgwNiwweDUzLDB4MDYsMHg3ZiwweDdjLDB4ZmYsMHgxMiwweDMxLDB4NWIsMHg3YywKLTB4MDAsMHg3ZCwweDAwLDB4ZTUsMHg3YiwweDYwLDB4NDYsMHhmZiwweDkwLDB4ZmQsMHg5NSwweGUwLDB4NTQsMHg3ZiwweDZlLDB4NzAsCi0weDBmLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmMsMHhhMywweDE1LDB4N2IsMHg4MCwweDA3LAotMHhhMywweGEzLDB4YTMsMHhkZiwweGU2LDB4ODAsMHgyNiwweGRmLDB4MDYsMHhkMCwweDgyLDB4ZDAsMHg4MywweDgwLDB4MWUsMHhlMCwKLTB4ZjgsMHhhMywweGUwLDB4ZjksMHhhMywweGUwLDB4ZmEsMHhkMCwweDgyLDB4ZDAsMHg4MywweGU4LDB4ZjAsMHhhMywweGU5LDB4ZjAsCi0weGEzLDB4ZWEsMHhmMCwweGEzLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGEzLDB4YTMsMHg4MCwweGRhLDB4MTIsMHgzMSwweGY0LAotMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDIsMHhkMCwweDAxLDB4ZDAsMHgwMCwweDIyLDB4ODUsMHhhOCwweDdhLDB4NzUsMHhhOCwKLTB4ODgsMHhlYywweDcwLDB4MDIsMHg3YywweDNmLDB4OGMsMHg3OSwweDIyLDB4ZTUsMHg3OCwweDI0LDB4MDgsMHhmOCwweDc2LDB4MDAsCi0weDEyLDB4MzIsMHg0OCwweDgwLDB4ZmIsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMCwweDA2LDB4YzAsMHgwNywweGFlLAotMHgwNCwweDdjLDB4ZmYsMHgxMiwweDMxLDB4NWIsMHhlNSwweDdiLDB4NjAsMHg0MiwweGZmLDB4OTAsMHhmZCwweDk1LDB4ZTAsMHg1NCwKLTB4N2YsMHg2ZSwweDcwLDB4MGIsMHhjMCwweDgzLDB4YzAsMHg4MiwweGEzLDB4YTMsMHhhMywweDE1LDB4N2IsMHg4MCwweDA3LDB4YTMsCi0weGEzLDB4YTMsMHhkZiwweGVhLDB4ODAsMHgyNiwweGRmLDB4MDYsMHhkMCwweDgyLDB4ZDAsMHg4MywweDgwLDB4ZDgsMHhlMCwweGY4LAotMHhhMywweGUwLDB4ZjksMHhhMywweGUwLDB4ZmEsMHhkMCwweDgyLDB4ZDAsMHg4MywweGU4LDB4ZjAsMHhhMywweGU5LDB4ZjAsMHhhMywKLTB4ZWEsMHhmMCwweGEzLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGEzLDB4YTMsMHg4MCwweGRhLDB4NzgsMHgwOCwweDA4LDB4NzksCi0weDE4LDB4MDksMHg3YywweDAxLDB4ZTYsMHg1NCwweDdmLDB4NmUsMHg3MCwweDA2LDB4NzYsMHgwMCwweDc3LDB4MDAsMHg4MCwweDA2LAotMHgwOCwweDA5LDB4MGMsMHhiYywweDA4LDB4ZWUsMHgxMiwweDMxLDB4ZjQsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDIsMHhkMCwKLTB4MDEsMHhkMCwweDAwLDB4MjIsMHg3NSwweDc5LDB4MDAsMHg4NSwweDdhLDB4YTgsMHgyMiwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsCi0weDgzLDB4YzMsMHhlNSwweDdiLDB4MjQsMHhlOCwweDUwLDB4MDUsMHgxMiwweDMyLDB4NDgsMHg4MCwweGY0LDB4ZWMsMHg2MCwweDMxLAotMHg5MCwweDM1LDB4MjMsMHhlNCwweDkzLDB4YzMsMHg5YywweDQwLDB4MjgsMHhjMCwweDA0LDB4N2MsMHhmZiwweDEyLDB4MzEsMHg1YiwKLTB4ZDAsMHgwNCwweDQzLDB4MDQsMHg4MCwweGU1LDB4N2IsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4OTUsMHhmNSwweDgyLDB4ZTQsCi0weDM0LDB4ZmQsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGVmLDB4YTMsMHhmMCwweGVlLDB4YTMsMHhmMCwweDA1LDB4N2IsMHgxMiwweDMxLAotMHhmNCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweDIyLDB4YzAsMHgwNCwweDdjLDB4MjAsMHhkMiwweDhjLDB4ZDIsMHg4ZCwKLTB4ZDUsMHgwNCwweGZkLDB4ZDAsMHgwNCwweDIyLDB4NzUsMHhhOCwweDAwLDB4NzUsMHg4OCwweDAwLDB4NzUsMHhiOCwweDAwLDB4NzUsCi0weGYwLDB4MDAsMHg3NSwweGQwLDB4MDAsMHhlNCwweGY4LDB4OTAsMHgwMCwweDAwLDB4ZjYsMHgwOCwweGI4LDB4MDAsMHhmYiwweDAyLAotMHgwMCwweDAwLDB4YzMsMHhlZCwweDk0LDB4MDIsMHg1MCwweDA0LDB4N2QsMHgwMywweDdjLDB4ZTgsMHhlYywweGY0LDB4ZmMsMHhlZCwKLTB4ZjQsMHhmZCwweDBjLDB4YmMsMHgwMCwweDAxLDB4MGQsMHg4YywweDdmLDB4OGQsMHg3ZSwweDIyLDB4YzMsMHhlYywweDk0LDB4YmMsCi0weGVkLDB4OTQsMHgwMiwweDUwLDB4MDQsMHg3ZCwweDA3LDB4N2MsMHhkMCwweGVjLDB4ZjQsMHhmYywweGVkLDB4ZjQsMHhmZCwweDBjLAotMHhiYywweDAwLDB4MDEsMHgwZCwweDhjLDB4N2QsMHg4ZCwweDdjLDB4MjIsMHhlYywweDcwLDB4MDEsMHgyMiwweGMwLDB4MDAsMHhlNSwKLTB4NzgsMHgyNCwweDE4LDB4ZjgsMHhhNiwweDA0LDB4ZTUsMHg3OCwweDI0LDB4MDgsMHhmOCwweGM2LDB4NTQsMHg3ZiwweGY2LDB4ZTYsCi0weDMwLDB4ZTcsMHgwMywweGQwLDB4MDAsMHgyMiwweDEyLDB4MzIsMHg0OCwweDgwLDB4ZjQsMHhjMiwweDhjLDB4ODUsMHg3YywweDhjLAotMHg4NSwweDdkLDB4OGEsMHhkMiwweDhjLDB4YzAsMHhlMCwweGMwLDB4ZDAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwKLTB4MDAsMHhjMCwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0LDB4YzAsMHgwNSwweGMwLDB4MDYsMHhjMCwweDA3LDB4MTIsCi0weDFhLDB4ZDEsMHhlNSwweDc4LDB4MjQsMHgwOCwweGY4LDB4ZTYsMHg2MCwweDI0LDB4ZTUsMHg3OCwweDI0LDB4MTAsMHhmOCwweGE2LAotMHg4MSwweGU1LDB4NzgsMHg3NSwweGYwLDB4MjEsMHhhNCwweDI0LDB4OGQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywKLTB4NzgsMHhhZSwweGU1LDB4ODEsMHgwNCwweGMzLDB4OTgsMHhmOSwweGU2LDB4ZjAsMHgwOCwweGEzLDB4ZDksMHhmYSwweDc0LDB4MDgsCi0weDI1LDB4NzgsMHhmOCwweDA1LDB4NzgsMHgwOCwweGU2LDB4NTQsMHg4MCwweDcwLDB4MGMsMHhlNSwweDc4LDB4YjQsMHgwNywweGYzLAotMHg3OCwweDA4LDB4NzUsMHg3OCwweDAwLDB4ODAsMHhlZiwweGU1LDB4NzgsMHgyNCwweDEwLDB4ZjgsMHg4NiwweDgxLDB4ZTUsMHg3OCwKLTB4NzUsMHhmMCwweDIxLDB4YTQsMHgyNCwweDhkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHg3OCwweGFlLDB4ZTUsCi0weDgxLDB4MDQsMHhjMywweDk4LDB4ZjksMHhlMCwweGY2LDB4MDgsMHhhMywweGQ5LDB4ZmEsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLAotMHgwNSwweGQwLDB4MDQsMHhkMCwweDAzLDB4ZDAsMHgwMiwweGQwLDB4MDEsMHhkMCwweDAwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwKLTB4ZjAsMHhkMCwweGQwLDB4ZDAsMHhlMCwweDMyLDB4YzAsMHhlMCwweGMwLDB4ZDAsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsCi0weGMyLDB4OGUsMHg4NSwweDdlLDB4OGQsMHg4NSwweDdmLDB4OGIsMHhkMiwweDhlLDB4NzgsMHgxOSwweDc5LDB4MDksMHg3YSwweDA3LAotMHhlNywweDcwLDB4MDQsMHhhNiwweDAwLDB4ODAsMHgwYiwweGU2LDB4NjAsMHgwOCwweDE2LDB4ZTYsMHg3MCwweDA0LDB4ZTcsMHg0NCwKLTB4ODAsMHhmNywweDA4LDB4MDksMHhkYSwweGVhLDB4ZTUsMHg3OSwweDYwLDB4MTMsMHgxNCwweGY1LDB4NzksMHg3MCwweDBlLDB4ZTUsCi0weDc4LDB4MjQsMHgwOCwweGY4LDB4NzYsMHgwMCwweDEyLDB4MzEsMHhmNCwweGQyLDB4OGMsMHhkMiwweDhkLDB4ZDAsMHgwMiwweGQwLAotMHgwMSwweGQwLDB4MDAsMHhkMCwweGQwLDB4ZDAsMHhlMCwweDMyLDB4NzUsMHg4MSwweGFkLDB4NzQsMHgyYSwweDkwLDB4ZmYsMHg5MywKLTB4ZjAsMHg3NSwweDdmLDB4MzAsMHg3NSwweDdlLDB4ZjgsMHg3NSwweDdkLDB4NjAsMHg3NSwweDdjLDB4ZjAsMHgxMiwweDA1LDB4MzYsCi0weDEyLDB4MzQsMHg3YywweDEyLDB4MTcsMHgzNCwweDkwLDB4ZmYsMHg5MywweGUwLDB4NDQsMHgwMSwweGYwLDB4YjIsMHhiMywweDEyLAotMHgzNCwweGE2LDB4MTIsMHgzMiwweDU2LDB4ODAsMHhkYSwweDIyLDB4YzAsMHgwMCwweDdjLDB4MDEsMHhlYywweDI0LDB4MDgsMHhmOCwKLTB4ZTYsMHg2MCwweDA5LDB4MGMsMHhiYywweDA4LDB4ZjUsMHgxMiwweDMyLDB4NDgsMHg4MCwweGVlLDB4ZDAsMHgwMCwweDIyLDB4YzAsCi0weGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweDAwLDB4YzAsMHgwNiwweGMwLDB4MDcsMHhlZCwweDI0LDB4MTAsMHhmOCwweDc2LAotMHhiYywweGVkLDB4NzUsMHhmMCwweDIxLDB4YTQsMHgyNCwweDhkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhjMCwKLTB4ODIsMHhjMCwweDgzLDB4YTMsMHhhMywweGU0LDB4NzgsMHgwZCwweGYwLDB4YTMsMHhkOCwweGZjLDB4ZWMsMHg1NCwweDdmLDB4NzUsCi0weGYwLDB4MDIsMHhhNCwweDI0LDB4ZWYsMHhmNSwweDgyLDB4ZTUsMHhmMCwweDM0LDB4MzQsMHhmNSwweDgzLDB4ZTQsMHg5MywweGZlLAotMHg3NCwweDAxLDB4OTMsMHhmNSwweDgyLDB4OGUsMHg4MywweGU0LDB4OTMsMHhmZSwweDc0LDB4MDEsMHg5MywweGZmLDB4ZDAsMHg4MywKLTB4ZDAsMHg4MiwweGVmLDB4ZjAsMHhhMywweGVlLDB4ZjAsMHhlZCwweDI0LDB4MDgsMHhmOCwweGVjLDB4NDQsMHg4MCwweGY2LDB4ZDAsCi0weDA3LDB4ZDAsMHgwNiwweGQwLDB4MDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHgyMiwweDc1LDB4NzgsMHgwMCwweDc1LAotMHg3YiwweDAwLDB4N2EsMHgwOCwweDc5LDB4MTgsMHg3OCwweDA4LDB4NzYsMHgwMCwweDc3LDB4MDAsMHgwOCwweDA5LDB4ZGEsMHhmOCwKLTB4ZTQsMHg3OCwweDA4LDB4NzQsMHg4MCwweDQ0LDB4N2YsMHhmNiwweDc0LDB4MDEsMHg0NCwweDEwLDB4ZjUsMHg4OSwweDc1LDB4YjgsCi0weDA4LDB4ZDIsMHhhYiwweGQyLDB4YTksMHgyMiwweDc1LDB4ODEsMHhhZCwweGQyLDB4OGUsMHhkMiwweDhjLDB4ZDIsMHhhZiwweGU1LAotMHg3YiwweDYwLDB4MzIsMHhmZiwweDkwLDB4ZmQsMHg5NSwweGUwLDB4NTQsMHg4MCwweDYwLDB4MjQsMHg3OCwweDA4LDB4NzksMHgwOCwKLTB4ZTAsMHg1NCwweDdmLDB4ZmEsMHg3YiwweDAwLDB4ZTYsMHg1NCwweDdmLDB4YjUsMHgwMiwweDAyLDB4N2IsMHhmZiwweDA4LDB4ZDksCi0weGY1LDB4ZWIsMHg3MCwweDBjLDB4ZWEsMHhmMCwweDEyLDB4MzMsMHhmOCwweGFkLDB4MDQsMHhhYywweDAyLDB4MTIsMHgzNCwweDBmLAotMHhhMywweGEzLDB4YTMsMHhkZiwweGQyLDB4MTIsMHgzMiwweDQ4LDB4ODAsMHhjNSwweDdjLDB4MDEsMHg3ZCwweDAwLDB4MjIsMHgwNCwKLTB4ZjUsMHgwNCwweGU5LDB4MDQsMHhlZCwweDA0LDB4ZTEsMHgwNCwweGRkLDB4MDQsMHhkOSwweDA0LDB4ZTUsMHgwNCwweGYxLDB4MDQsCi0weDlkLDB4MDQsMHhhMSwweDA0LDB4Y2QsMHgwNCwweGQxLDB4MDQsMHg5OSwweDA0LDB4OTksMHgwNCwweDk5LDB4MDQsMHhkNSwweDA0LAotMHhiNSwweDA0LDB4YWQsMHgwNCwweGIxLDB4MDQsMHhhOSwweDA0LDB4YzEsMHgwNCwweGJkLDB4MDQsMHhiOSwweDA0LDB4YzUsMHgwNCwKLTB4YzksMHgwNCwweGE1LDB4MTksMHgwMSwweDAzLDB4MDAsMHgyMiwweDAwLDB4NDgsMHgwMiwweDAwLDB4NDgsMHgwZSwweDMwLDB4MTQsCi0weDIwLDB4YzgsMHgxYSwweGQwLDB4MTgsMHgwYSwweDBjLDB4MDUsMHgwNiwweDAyLDB4MDMsMHgwMSwweDAyLDB4MDAsMHgwMSwweGNlLAotMHgwMSwweDgxLDB4MDEsMHgwMCwweDAwLDB4YzAsMHgwMCwweDgwLDB4MDAsMHg2MCwweDAwLDB4MzAsMHgwMCwweDE4LDB4MDAsMHgxMCwKLTB4MDAsMHgwOCwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwMSwweDAwLDB4MDgsMHgxOCwweDM4LDB4MjgsMHgwYywweDA1LDB4MTAsCi0weDBhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDMsMHgwMSwweDEwLDB4MGEsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweGZiLDB4ZTAsMHhmYiwweGYyLDB4MDksMHgwMiwweDI3LDB4MDAsMHgwMSwweDAyLDB4MDAsMHhhMCwweDMyLDB4MDksMHgwNCwKLTB4MDAsMHgwMCwweDAzLDB4ZmYsMHgwMCwweDAwLDB4MDAsMHgwNywweDA1LDB4ODEsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsCi0weDAxLDB4MDIsMHg0MCwweDAwLDB4MDAsMHgwNywweDA1LDB4ODMsMHgwMywweDAyLDB4MDAsMHgwMSwweDIyLDB4MDMsMHg1NCwweDAwLAotMHg1NSwweDAwLDB4NTMsMHgwMCwweDQyLDB4MDAsMHgzMywweDAwLDB4MzQsMHgwMCwweDMxLDB4MDAsMHgzMCwweDAwLDB4MjAsMHgwMCwKLTB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsCi19OwotCi0jZW5kaWYgLyogaWZuZGVmIF9USV9GV18zNDEwX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfZndfNTA1Mi5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL3RpX2Z3XzUwNTIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmNjZjQwYS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfZndfNTA1Mi5oCisrKyAvZGV2L251bGwKQEAgLTEsODg1ICswLDAgQEAKLS8qIHZpOiB0cz04IHN3PTgKLSAqCi0gKiBUSSA1MDUyIFVTQiBTZXJpYWwgRHJpdmVyIEZpcm13YXJlIEhlYWRlcgotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNCBUZXhhcyBJbnN0cnVtZW50cwotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKi8KLQotI2lmbmRlZiBfVElfRldfNTA1Ml9IXwotI2RlZmluZSBfVElfRldfNTA1Ml9IXwotCi0vKiBmaXJtd2FyZSA5LzE4LzA0ICovCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHRpX2Z3XzUwNTJbXSA9IHsKLTB4QzEsIDB4MzUsCS8qIGZpcm13YXJlIGltYWdlIGxlbmd0aCBleGNsdWRpbmcgaGVhZGVyLCBsaXR0bGUgZW5kaWFuICovCi0weDAwLCAJCS8qIHBsYWNlaG9sZGVyIGZvciBjaGVja3N1bSAqLwotCi0weDAyLDB4MDAsMHgxZSwweDAyLDB4MWIsMHgzMiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMiwweDMyLDB4NmEsMHhmZiwweGZmLAotMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHgzMywweDE1LDB4NzUsMHg4MSwKLTB4YzgsMHg5MCwweGZlLDB4ZjAsMHg4NSwweDgzLDB4YTAsMHgxMiwweDM0LDB4N2QsMHhlYywweDRkLDB4NjAsMHg2YSwweDc4LDB4YTUsCi0weDgwLDB4MDMsMHg3NiwweDAwLDB4MTgsMHhiOCwweDk2LDB4ZmEsMHg3OCwweDc5LDB4ODAsMHgwMywweDc2LDB4MDAsMHgxOCwweGI4LAotMHg1ZiwweGZhLDB4NzgsMHgyMCwweDgwLDB4MDMsMHg3NiwweDAwLDB4MTgsMHhiOCwweDIwLDB4ZmEsMHg5MCwweGZlLDB4ZTUsMHhhZSwKLTB4ODMsMHhhZiwweDgyLDB4OTAsMHhmZCwweDAwLDB4MTIsMHgwMCwweGExLDB4NjAsMHgwNSwweGU0LDB4ZjAsMHhhMywweDgwLDB4ZjYsCi0weDkwLDB4ZmUsMHhmMCwweGE4LDB4ODIsMHg5MCwweGZlLDB4ZjAsMHhhOSwweDgyLDB4ZTgsMHhjMywweDk5LDB4NTAsMHgwNSwweDc2LAotMHgwMCwweDA4LDB4ODAsMHhmNiwweDkwLDB4MDAsMHhmZiwweDEyLDB4MDAsMHhhYSwweDkwLDB4MDEsMHgwMywweDEyLDB4MDAsMHhhYSwKLTB4OTAsMHgwMSwweDA3LDB4MTIsMHgwMCwweGFhLDB4OTAsMHgwMSwweDBiLDB4MTIsMHgwMCwweGM4LDB4OTAsMHgwMSwweDExLDB4MTIsCi0weDAwLDB4YzgsMHg5MCwweDAxLDB4MTcsMHgxMiwweDAwLDB4YzgsMHg3NSwweGQwLDB4MDAsMHgxMiwweDMzLDB4NjcsMHgwMiwweDAxLAotMHgxZCwweGVmLDB4NjUsMHg4MiwweDcwLDB4MDMsMHhlZSwweDY1LDB4ODMsMHgyMiwweGU0LDB4OTMsMHhmOCwweDc0LDB4MDEsMHg5MywKLTB4ZjksMHg3NCwweDAyLDB4OTMsMHhmZSwweDc0LDB4MDMsMHg5MywweGY1LDB4ODIsMHg4ZSwweDgzLDB4ZTgsMHg2OSwweDcwLDB4MDEsCi0weDIyLDB4ZTQsMHg5MywweGY2LDB4YTMsMHgwOCwweDgwLDB4ZjQsMHhlNCwweDkzLDB4ZmMsMHg3NCwweDAxLDB4OTMsMHhmZCwweDc0LAotMHgwMiwweDkzLDB4ZmUsMHg3NCwweDAzLDB4OTMsMHhmZiwweDc0LDB4MDQsMHg5MywweGY4LDB4NzQsMHgwNSwweDkzLDB4ZjUsMHg4MiwKLTB4ODgsMHg4MywweDEyLDB4MDAsMHhhMSwweDcwLDB4MDEsMHgyMiwweGU0LDB4OTMsMHhhMywweGE4LDB4ODMsMHhhOSwweDgyLDB4OGMsCi0weDgzLDB4OGQsMHg4MiwweGYwLDB4YTMsMHhhYywweDgzLDB4YWQsMHg4MiwweDg4LDB4ODMsMHg4OSwweDgyLDB4ODAsMHhlMywweDIxLAotMHgyMSwweDA0LDB4OTIsMHg3YSwweDdhLDB4MDQsMHg5MiwweGE2LDB4YTgsMHgwNCwweDkyLDB4ZmUsMHhmMCwweDA0LDB4OTQsMHgwNCwKLTB4OTQsMHhmYiwweGZiLDB4MDQsMHg5OSwweDA0LDB4OTQsMHhmYiwweGZiLDB4MDQsMHhmOSwweDA0LDB4ZjksMHg4MCwweGZlLDB4ZDAsCi0weGYwLDB4MzAsMHhmMCwweDA5LDB4MjAsMHhmMywweDAzLDB4ZjYsMHg4MCwweDEwLDB4ZjcsMHg4MCwweDBkLDB4MzAsMHhmMSwweDA5LAotMHgyMCwweGYzLDB4MDMsMHhmMiwweDgwLDB4MDQsMHhmMywweDgwLDB4MDEsMHhmMCwweDIwLDB4ZjQsMHgwNCwweGZjLDB4ZDAsMHhlMCwKLTB4Y2MsMHgyMiwweGNjLDB4YzAsMHhlMCwweDEyLDB4MDEsMHg1YSwweDAyLDB4MDEsMHg0YiwweGJjLDB4MDAsMHgwNSwweGQwLDB4ZjAsCi0weGFjLDB4ZjAsMHgyMiwweGMzLDB4MTMsMHhkYywweGZjLDB4MDIsMHgwMSwweDIxLDB4YmYsMHgwMCwweDA5LDB4ZWQsMHgyNSwweDgyLAotMHg3NSwweGYwLDB4MDEsMHhmOCwweGU2LDB4MjIsMHhiZiwweDAxLDB4MGYsMHhlZCwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWUsMHgzNSwKLTB4ODMsMHhmNSwweDgzLDB4NzUsMHhmMCwweDA0LDB4ZTAsMHgyMiwweGVkLDB4MjUsMHg4MiwweDc1LDB4ZjAsMHgwMiwweGY4LDB4ZTIsCi0weDIyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhmNSwweGYwLDB4YzMsMHhlNCwweDkzLDB4YTMsMHhjNSwweGYwLDB4OTUsMHhmMCwweGMwLAotMHhlMCwweGMzLDB4ZDAsMHhmMCwweGU0LDB4OTMsMHhhMywweDk1LDB4ZjAsMHg0MCwweDEyLDB4YTMsMHhhMywweGMzLDB4ZTUsMHhmMCwKLTB4MzMsMHg1MCwweDAyLDB4MDUsMHg4MywweDI1LDB4ODIsMHhmNSwweDgyLDB4NTAsMHgwMiwweDA1LDB4ODMsMHg3NCwweDAxLDB4OTMsCi0weGMwLDB4ZTAsMHhlNCwweDkzLDB4YzAsMHhlMCwweDIyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhmNSwweGYwLDB4ZTQsMHg5MywweDcwLAotMHgwOSwweDc0LDB4MDEsMHg5MywweDcwLDB4MDQsMHhhMywweGEzLDB4ODAsMHgwYywweDc0LDB4MDIsMHg5MywweDY1LDB4ZjAsMHg2MCwKLTB4MDUsMHhhMywweGEzLDB4YTMsMHg4MCwweGU3LDB4NzQsMHgwMSwweDkzLDB4YzAsMHhlMCwweGU0LDB4OTMsMHhjMCwweGUwLDB4MjIsCi0weDEyLDB4MDIsMHg1YiwweDAyLDB4MDEsMHhmMiwweDEyLDB4MDIsMHhhZiwweDAyLDB4MDEsMHhmMiwweDEyLDB4MDIsMHhkMywweDAyLAotMHgwMSwweGYyLDB4MzAsMHhlMCwweDA3LDB4MjAsMHhlMywweDAyLDB4ZTYsMHgyMiwweGU3LDB4MjIsMHgzMCwweGUxLDB4MDcsMHgyMCwKLTB4ZTMsMHgwMiwweGUyLDB4MjIsMHhlMywweDIyLDB4MzAsMHhlMiwweDAyLDB4ZTAsMHgyMiwweGU0LDB4OTMsMHgyMiwweDEyLDB4MDIsCi0weGQzLDB4MDIsMHgwMiwweDFhLDB4MTIsMHgwMiwweGFmLDB4MDIsMHgwMiwweDFhLDB4YWIsMHhmMCwweDEyLDB4MDIsMHgyNCwweGNiLAotMHhjNSwweGYwLDB4Y2IsMHgyMiwweDMwLDB4ZTAsMHgxMCwweDIwLDB4ZTMsMHgwNiwweGU2LDB4ZjUsMHhmMCwweDA4LDB4ZTYsMHgyMiwKLTB4ZTcsMHhmNSwweGYwLDB4MDksMHhlNywweDE5LDB4MjIsMHgzMCwweGUxLDB4MTAsMHgyMCwweGUzLDB4MDYsMHhlMiwweGY1LDB4ZjAsCi0weDA4LDB4ZTIsMHgyMiwweGUzLDB4ZjUsMHhmMCwweDA5LDB4ZTMsMHgxOSwweDIyLDB4MzAsMHhlMiwweDA2LDB4ZTAsMHhmNSwweGYwLAotMHhhMywweGUwLDB4MjIsMHhlNCwweDkzLDB4ZjUsMHhmMCwweDc0LDB4MDEsMHg5MywweDIyLDB4YmIsMHgwMCwweDAzLDB4NzQsMHgwOSwKLTB4MjIsMHhiYiwweDAxLDB4MDcsMHg4OSwweDgyLDB4OGEsMHg4MywweDc0LDB4MDQsMHgyMiwweGJiLDB4MDIsMHgwNywweDg5LDB4ODIsCi0weDhhLDB4ODMsMHg3NCwweDEwLDB4MjIsMHg3NCwweDBhLDB4MjIsMHgwMiwweDAyLDB4N2IsMHhiYiwweDAwLDB4MDcsMHhlOSwweDI1LAotMHg4MiwweGY4LDB4NzQsMHgwMSwweDIyLDB4YmIsMHgwMSwweDBkLDB4ZTksMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVhLDB4MzUsMHg4MywKLTB4ZjUsMHg4MywweDc0LDB4MDQsMHgyMiwweGJiLDB4MDIsMHgwZCwweGU5LDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlYSwweDM1LDB4ODMsCi0weGY1LDB4ODMsMHg3NCwweDEwLDB4MjIsMHhlOSwweDI1LDB4ODIsMHhmOCwweDc0LDB4MDIsMHgyMiwweDAyLDB4MDIsMHhhZiwweGJmLAotMHgwMCwweDA1LDB4ZWQsMHhmOCwweDc0LDB4MDEsMHgyMiwweGJmLDB4MDEsMHgwNywweDhkLDB4ODIsMHg4ZSwweDgzLDB4NzQsMHgwNCwKLTB4MjIsMHhiZiwweDAyLDB4MDcsMHg4ZCwweDgyLDB4OGUsMHg4MywweDc0LDB4MTAsMHgyMiwweGVkLDB4ZjgsMHg3NCwweDAyLDB4MjIsCi0weDAyLDB4MDIsMHhkMywweGJmLDB4MDAsMHgwNywweGVkLDB4MjUsMHg4MiwweGY4LDB4NzQsMHgwMSwweDIyLDB4YmYsMHgwMSwweDBkLAotMHhlZCwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWUsMHgzNSwweDgzLDB4ZjUsMHg4MywweDc0LDB4MDQsMHgyMiwweGJmLDB4MDIsMHgwZCwKLTB4ZWQsMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVlLDB4MzUsMHg4MywweGY1LDB4ODMsMHg3NCwweDEwLDB4MjIsMHhlZCwweDI1LDB4ODIsCi0weGY4LDB4NzQsMHgwMiwweDIyLDB4MDIsMHgwMywweDA3LDB4YzAsMHhlMCwweDEyLDB4MDIsMHg1YiwweDAyLDB4MDMsMHgxZiwweGMwLAotMHhlMCwweDEyLDB4MDIsMHhhZiwweDAyLDB4MDMsMHgxZiwweGMwLDB4ZTAsMHgxMiwweDAyLDB4ZDMsMHgwMiwweDAzLDB4MWYsMHgzMCwKLTB4ZTAsMHgwYiwweDIwLDB4ZTMsMHgwNCwweGQwLDB4ZTAsMHhmNiwweDIyLDB4ZDAsMHhlMCwweGY3LDB4MjIsMHgzMCwweGUxLDB4MGIsCi0weDIwLDB4ZTMsMHgwNCwweGQwLDB4ZTAsMHhmMiwweDIyLDB4ZDAsMHhlMCwweGYzLDB4MjIsMHhkMCwweGUwLDB4ZjAsMHgyMiwweGM5LAotMHhjZCwweGM5LDB4Y2EsMHhjZSwweGNhLDB4Y2IsMHhjZiwweGNiLDB4MTIsMHgwMywweDUyLDB4ZWQsMHhmOSwweGVlLDB4ZmEsMHhlZiwKLTB4ZmIsMHgyMiwweGJiLDB4MDAsMHgyZiwweGJmLDB4MDAsMHgwYSwweGZhLDB4ZWQsMHhmOCwweGU3LDB4ZjYsMHgwOCwweDA5LDB4ZGEsCi0weGZhLDB4MjIsMHhiZiwweDAxLDB4MTIsMHg4ZCwweDgyLDB4OGUsMHg4MywweGY4LDB4MDIsMHgwMywweDZmLDB4MDksMHhhMywweGU3LAotMHhmMCwweGQ4LDB4ZmEsMHgyMiwweDAyLDB4MDMsMHg3YSwweGZhLDB4ZWQsMHhmOCwweGU3LDB4ZjIsMHgwOCwweDA5LDB4ZGEsMHhmYSwKLTB4MjIsMHgwMiwweDAzLDB4ODQsMHhiYiwweDAxLDB4NGQsMHhiZiwweDAwLDB4MTQsMHg4OSwweDgyLDB4OGEsMHg4MywweGY5LDB4ZWQsCi0weGY4LDB4MDIsMHgwMywweDk2LDB4MDgsMHhhMywweGUwLDB4ZjYsMHhkOSwweGZhLDB4MjIsMHgwMiwweDAzLDB4YTcsMHhiZiwweDAxLAotMHgyMiwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZmIsMHgwOCwweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhlMCwKLTB4YTMsMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZjAsMHhhMywweGRiLDB4ZWEsMHhkOCwweGU4LDB4MjIsCi0weDAyLDB4MDMsMHhjYSwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZjksMHhlZCwweGY4LDB4ZTAsMHhmMiwweDA4LDB4YTMsMHhkOSwweGZhLAotMHgyMiwweDAyLDB4MDMsMHhkNCwweGJiLDB4MDIsMHg0ZCwweGJmLDB4MDAsMHgxMiwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjksMHhlZCwKLTB4ZjgsMHgwMiwweDAzLDB4ZTYsMHgwOCwweGEzLDB4ZTQsMHg5MywweGY2LDB4ZDksMHhmOSwweDIyLDB4YmYsMHgwMSwweDIzLDB4OGQsCi0weDgyLDB4OGUsMHg4MywweGZiLDB4MDgsMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZTQsMHg5MywweGEzLAotMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZjAsMHhhMywweGRiLDB4ZTksMHhkOCwweGU3LDB4MjIsMHgwMiwKLTB4MDQsMHgxOSwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjksMHhlZCwweGY4LDB4ZTQsMHg5MywweGYyLDB4MDgsMHhhMywweGQ5LDB4ZjksCi0weDIyLDB4MDIsMHgwNCwweDJhLDB4YmYsMHgwMCwweDBkLDB4ZmEsMHhlZCwweGY4LDB4ZTMsMHhmNiwweDA4LDB4MDksMHhkYSwweGZhLAotMHgyMiwweDAyLDB4MDQsMHgzNCwweGJmLDB4MDEsMHgxMiwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZjgsMHgwMiwweDA0LDB4NDEsMHgwOSwKLTB4YTMsMHhlMywweGYwLDB4ZDgsMHhmYSwweDIyLDB4MDIsMHgwNCwweDRjLDB4ZmEsMHhlZCwweGY4LDB4ZTMsMHhmMiwweDA4LDB4MDksCi0weGRhLDB4ZmEsMHgyMiwweDAyLDB4MDQsMHg1NiwweGU2LDB4ZmIsMHgwOCwweGU2LDB4ZmEsMHgwOCwweGU2LDB4ZjksMHgwNCwweGY2LAotMHgxOCwweDcwLDB4MDEsMHgwNiwweDIyLDB4ZTYsMHhmZiwweDA4LDB4ZTYsMHhmZSwweDA4LDB4ZTYsMHhmZCwweDIyLDB4ZWYsMHhmMCwKLTB4YTMsMHhlZSwweGYwLDB4YTMsMHhlZCwweGYwLDB4MjIsMHhlYiwweGYwLDB4YTMsMHhlYSwweGYwLDB4YTMsMHhlOSwweGYwLDB4MjIsCi0weGUwLDB4ZmYsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmQsMHgyMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLAotMHhmOSwweDIyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweGY5LDB4MDAsMHg1YiwweDA1LDB4NzMsMHgwMCwKLTB4MjYsMHgwNSwweDlhLDB4MDAsMHgzMywweDBhLDB4MGIsMHgwMCwweDViLDB4MGEsMHg3NywweDAwLDB4NjAsMHgxNSwweDUyLDB4MDAsCi0weDViLDB4MGMsMHhmYiwweDAwLDB4NWIsMHgwOSwweGFiLDB4MDAsMHg1YiwweDA5LDB4ZTIsMHgwMCwweDViLDB4MGQsMHhjMiwweDAwLAotMHg1YiwweDBiLDB4ZjMsMHgwMCwweDViLDB4MGEsMHgxZSwweDAwLDB4NWIsMHgwYSwweDUzLDB4MDAsMHg1YiwweDE3LDB4NGEsMHgwMCwKLTB4MzMsMHgxNywweDYwLDB4MDAsMHgzNCwweDFlLDB4NGQsMHgwMCwweDQzLDB4MWUsMHhmMCwweDAwLDB4NDQsMHgyMCwweDVkLDB4MDAsCi0weDQ0LDB4MjAsMHg0YiwweDAwLDB4NDcsMHgxZiwweDE3LDB4MDAsMHg0NywweDFmLDB4YmMsMHgwMCwweDRkLDB4MjAsMHgwZCwweDAwLAotMHg0ZiwweDFmLDB4MzksMHgwMCwweDU4LDB4MzEsMHhmNSwweDAwLDB4NWIsMHg3YywweGNjLDB4N2QsMHhmZiwweDEyLDB4MWMsMHhmZSwKLTB4MjIsMHg3NCwweDkwLDB4OTAsMHhmZiwweDkxLDB4ZjAsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDIwLDB4ZTcsMHgyZCwweGMyLDB4YWYsCi0weGFlLDB4NTksMHhhZiwweDU4LDB4NzUsMHg1YSwweDIwLDB4ZTUsMHg1YSwweDE0LDB4YzUsMHg1YSwweDYwLDB4MTksMHhlNCwweGZlLAotMHg3ZiwweDA1LDB4ZWUsMHg0ZiwweGNlLDB4MjQsMHhmZiwweGNlLDB4Y2YsMHgzNCwweGZmLDB4Y2YsMHg2MCwweDA3LDB4ZTQsMHg5MCwKLTB4ZmYsMHg5MiwweGYwLDB4ODAsMHhlZCwweDgwLDB4ZTAsMHg4ZSwweDU5LDB4OGYsMHg1OCwweDIyLDB4MTIsMHgwNSwweDAxLDB4N2QsCi0weDA3LDB4N2MsMHhiNywweDEyLDB4MzIsMHgxMSwweDdkLDB4MGYsMHg3YywweDZlLDB4MTIsMHgzMiwweDJiLDB4NzgsMHg5NywweDdhLAotMHgwNiwweGU0LDB4ZjYsMHgwOCwweGRhLDB4ZmMsMHg3YSwweDA2LDB4MTIsMHgwNSwweGNmLDB4N2MsMHgwMywweDEyLDB4MGUsMHg1NywKLTB4N2MsMHgwNCwweDEyLDB4MGUsMHg1NywweDEyLDB4MjEsMHg4YiwweGU0LDB4ZmUsMHhmZiwweDdjLDB4MGYsMHgxMiwweDMxLDB4OWEsCi0weGQyLDB4YTgsMHgyMiwweDEyLDB4MzAsMHg4NSwweGU0LDB4OTAsMHhmZCwweDQwLDB4ZjAsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDMwLAotMHhlNCwweDA4LDB4NzQsMHgwMSwweDkwLDB4ZmQsMHg0MSwweGYwLDB4ODAsMHgwNSwweGU0LDB4OTAsMHhmZCwweDQxLDB4ZjAsMHg3ZCwKLTB4MGEsMHg3YywweDAwLDB4MTIsMHgyNCwweGIxLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg5MCwweGZkLDB4NDEsCi0weGUwLDB4MTQsMHg3MCwweDBlLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwweDEwLDB4ZjAsMHg3YywweDAwLDB4MTIsMHgyNSwweDRhLAotMHg4MCwweDE5LDB4OTAsMHhmZCwweDQxLDB4ZTAsMHg3MCwweDBlLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGVmLDB4ZjAsMHg3YywKLTB4MDAsMHgxMiwweDI1LDB4NGEsMHg4MCwweDA1LDB4N2MsMHgxNywweDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLDB4OTAsCi0weGZmLDB4ZjAsMHhlMCwweDU0LDB4YWIsMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgyMCwweGYwLDB4MjIsMHg4YywweDM3LAotMHg4ZCwweDM2LDB4NzgsMHg3YywweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwKLTB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweDc4LDB4N2EsMHhmNiwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsCi0weGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHg1NCwweDBmLDB4ZmMsMHg3ZCwweDdhLAotMHgxMiwweDE3LDB4OWQsMHg3OCwweDdhLDB4ZTYsMHg3MCwweDBkLDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LDB4ZTQsMHgxMiwKLTB4MDMsMHgwZiwweDdjLDB4MDgsMHgyMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhmZSwweGYwLDB4OTAsMHhmZiwweGYwLDB4ZTAsCi0weDU0LDB4ZmQsMHhmMCwweDgwLDB4MWUsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLAotMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4MjUsMHhlMCwweDQ0LDB4MDEsMHg5MCwweGZmLDB4ZjMsMHhmMCwKLTB4MDIsMHgwNiwweGRiLDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsCi0weDkwLDB4MDAsMHgwNiwweDEyLDB4MDIsMHgwZSwweDU0LDB4ZmUsMHg5MCwweGZmLDB4ZjMsMHhmMCwweDgwLDB4MmIsMHg3OCwweDdjLAotMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwKLTB4MGUsMHhmYSwweGViLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4Y2EsMHg0MCwweDBkLDB4YWQsMHgzYSwweGFlLDB4MzksCi0weGFmLDB4MzgsMHhlNCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLAotMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHg5MCwweGZmLDB4ZjEsMHhmMCwKLTB4MTIsMHgwOCwweGNhLDB4NDAsMHgwZCwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweGU0LDB4MTIsMHgwMywweDBmLDB4N2MsCi0weDE4LDB4MjIsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLAotMHgwMCwweDA2LDB4MTIsMHgwMiwweDBlLDB4NDQsMHgwMSwweDkwLDB4ZmYsMHhmMywweGYwLDB4NzgsMHg3ZCwweGU2LDB4MjQsMHgwMywKLTB4ZjYsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY2LDB4NzgsMHg3YSwweGU2LDB4MjQsMHhmZSwweDUwLDB4MDksMHg5MCwweGZmLDB4ZjAsCi0weGUwLDB4NTQsMHhmZCwweGYwLDB4ODAsMHgwNywweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgwMiwweGYwLDB4ZTQsMHg5MCwweGZmLAotMHhmMSwweGYwLDB4NzgsMHg3YiwweDc2LDB4MDAsMHg3OCwweDdhLDB4ZTYsMHgyNCwweGZmLDB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwKLTB4NzgsMHg3YiwweGU2LDB4N2YsMHgwMCwweGZlLDB4ZWMsMHhkMywweDllLDB4ZWYsMHg2NCwweDgwLDB4Y2QsMHg2NCwweDgwLDB4OWQsCi0weDQwLDB4MmYsMHgxMiwweDA4LDB4YWYsMHg0MCwweDBmLDB4NzgsMHg3YiwweGU2LDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LAotMHgxMiwweDAzLDB4MGYsMHg3YywweDE4LDB4MjIsMHg5MCwweGZmLDB4ZjIsMHhlMCwweGZjLDB4NzgsMHg3YywweDg2LDB4ODMsMHgwOCwKLTB4ODYsMHg4MiwweGVjLDB4ZjAsMHg3OCwweDdiLDB4MDYsMHhhMywweDc4LDB4N2MsMHhhNiwweDgzLDB4MDgsMHhhNiwweDgyLDB4ODAsCi0weGI1LDB4MTIsMHgwOCwweGFmLDB4NDAsMHgwZiwweDc4LDB4N2IsMHhlNiwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweDEyLAotMHgwMywweDBmLDB4N2MsMHgxOCwweDIyLDB4OTAsMHhmZiwweGYyLDB4ZTAsMHhmYywweDc4LDB4N2MsMHg4NiwweDgzLDB4MDgsMHg4NiwKLTB4ODIsMHhlYywweGYwLDB4NzgsMHg3YSwweGU2LDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LDB4MTIsMHgwMywweDBmLDB4N2MsCi0weDAwLDB4MjIsMHg4YywweDM3LDB4OGQsMHgzNiwweDc4LDB4N2MsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4ZWQsMHhmZSwweGVjLAotMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHg3OCwweDdiLDB4ZjYsMHg3OCwweDdjLDB4ZTYsMHhmZCwKLTB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4NTQsCi0weDBmLDB4ZmMsMHg3ZCwweDdiLDB4MTIsMHgxNywweDlkLDB4NzgsMHg3YiwweGU2LDB4NzAsMHgwMywweDdjLDB4MDgsMHgyMiwweDkwLAotMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDgwLDB4MWIsMHg3OCwKLTB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsCi0weDAyLDB4MGUsMHgyNSwweGUwLDB4OTAsMHhmZiwweGYzLDB4ZjAsMHg4MCwweDViLDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LAotMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDIsMHgwZSwweDU0LDB4ZmUsMHg5MCwKLTB4ZmYsMHhmMywweGYwLDB4ODAsMHgyMSwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsCi0weDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHhmYSwweGViLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LAotMHhjYSwweDQwLDB4MDMsMHg3YywweDE4LDB4MjIsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywKLTB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4Y2EsCi0weDQwLDB4MDMsMHg3YywweDE4LDB4MjIsMHg3OCwweDdkLDB4ZTYsMHgyNCwweDBhLDB4ZjYsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY2LAotMHg3OCwweDdhLDB4NzYsMHgwMCwweDc4LDB4N2IsMHhlNiwweDI0LDB4ZmYsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLDB4NzgsMHg3YSwKLTB4ZTYsMHg3ZiwweDAwLDB4ZmUsMHhlYywweGQzLDB4OWUsMHhlZiwweDY0LDB4ODAsMHhjZCwweDY0LDB4ODAsMHg5ZCwweDQwLDB4MjEsCi0weDc4LDB4N2MsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhjYSwweDQwLAotMHgwMywweDdjLDB4MTgsMHgyMiwweDc4LDB4N2EsMHgwNiwweDc4LDB4N2QsMHgwNiwweGU2LDB4MTgsMHg3MCwweDAxLDB4MDYsMHg4MCwKLTB4YzMsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDc4LDB4N2MsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsCi0weDkwLDB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGNhLDB4NDAsMHgwMywweDdjLDB4MTgsMHgyMiwweDdjLDB4MDAsMHgyMiwweDkwLAotMHhmZiwweGYwLDB4ZTAsMHgyMCwweGU3LDB4MTIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDMwLDB4ZTUsMHgwOSwweDkwLDB4ZmYsMHhmMCwKLTB4ZTAsMHg0NCwweDIwLDB4ZjAsMHhjMywweDIyLDB4ODAsMHhlNywweGQzLDB4MjIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDIwLDB4ZTMsCi0weDEyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHgzMCwweGU1LDB4MDksMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MjAsMHhmMCwweGMzLAotMHgyMiwweDgwLDB4ZTcsMHhkMywweDIyLDB4OGMsMHg0MiwweDhkLDB4NDEsMHg3YywweDAwLDB4ZWQsMHg1NCwweGYwLDB4ZmQsMHhlYywKLTB4NzAsMHgwMywweGVkLDB4NjQsMHgzMCwweDcwLDB4MDUsMHg3NSwweDNlLDB4MDMsMHg4MCwweDAzLDB4NzUsMHgzZSwweDA0LDB4YWMsCi0weDNlLDB4MTIsMHgwZiwweDdjLDB4NzUsMHg4MywweDAwLDB4ODUsMHg4MywweDQwLDB4ZTUsMHg0MSwweDU0LDB4MGYsMHhmNSwweDNmLAotMHhlNSwweDQwLDB4NzAsMHgwNCwweGU1LDB4M2YsMHg2NCwweDAzLDB4NzAsMHgzNSwweGU1LDB4M2UsMHgyNCwweGZkLDB4NzUsMHhmMCwKLTB4MGEsMHhhNCwweDI0LDB4MGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNiwweDA1LDB4MTIsCi0weDEwLDB4NjcsMHg4MCwweDE5LDB4ZTUsMHgzZSwweDI0LDB4OTcsMHhmOCwweGM2LDB4NTQsMHhmYiwweGY2LDB4NzgsMHhhMywweGU2LAotMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweDc0LDB4MGYsMHhmMCwweDgwLDB4NTksMHhlNSwKLTB4NDAsMHg3MCwweDA0LDB4ZTUsMHgzZiwweDY0LDB4MDQsMHg3MCwweDQ4LDB4ZTUsMHgzZSwweDI0LDB4ZmQsMHg3NSwweGYwLDB4MGEsCi0weGE0LDB4MjQsMHgwYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU1LDB4MDcsMHhhYywweDQyLAotMHhhZCwweDQxLDB4MTIsMHgxYywweDkzLDB4ZTUsMHg0MiwweDMwLDB4ZTIsMHgxNSwweDc4LDB4YTcsMHhlNiwweDMwLDB4ZTAsMHgwZiwKLTB4NzgsMHhhNywweGU2LDB4MzAsMHhlMSwweDA5LDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA0LDB4MTIsMHgzMSwweDlhLDB4NzgsCi0weGEzLDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweDc0LDB4MGYsMHhmMCwweDgwLAotMHgwNywweGU0LDB4ZmMsMHg3ZCwweGVlLDB4MTIsMHgxYywweDkzLDB4YzIsMHgwMywweDIyLDB4MTIsMHgzMCwweDg1LDB4MTIsMHgwZiwKLTB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsCi0weGZkLDB4NDAsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAotMHhlMCwweDkwLDB4ZmQsMHg0MSwweGYwLDB4YzIsMHgwMywweDdkLDB4MDIsMHg3YywweDAwLDB4MTIsMHgyNCwweGIxLDB4MTIsMHgzMSwKLTB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OGYsMHhlYywweGY2LDB4ZWMsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDMwLDB4ZTEsCi0weDA3LDB4N2MsMHgxMywweDEyLDB4MjUsMHg0YSwweDgwLDB4MGYsMHg5MCwweGZkLDB4NDEsMHhlMCwweGZkLDB4NzgsMHg4ZiwweGU2LAotMHhmYywweDEyLDB4MTMsMHhmZCwweDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwKLTB4ZWMsMHhmNiwweDdkLDB4MDAsMHgxMiwweDBmLDB4MGIsMHgxMiwweDI1LDB4NGEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsCi0weDg1LDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhlYywweDI0LDB4OTcsMHhmOCwweGU2LDB4MzAsMHhlMiwweDA3LDB4N2MsMHgxMywweDEyLAotMHgyNSwweDRhLDB4ODAsMHgxYiwweDc4LDB4OGYsMHhlNiwweDI0LDB4OTcsMHhmOCwweGU2LDB4MjAsMHhlMSwweDA3LDB4N2MsMHgxMiwKLTB4MTIsMHgyNSwweDRhLDB4ODAsMHgwYSwweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgxNCwweDIxLDB4MTIsMHgyNSwweDRhLDB4MTIsCi0weDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OGYsMHhlYywweGY2LDB4ZWMsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDIwLAotMHhlMiwweDA3LDB4N2MsMHgxMSwweDEyLDB4MjUsMHg0YSwweDgwLDB4MGEsMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MTUsMHgyMiwKLTB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDhmLDB4ZWMsMHhmNiwweDEyLDB4MGYsCi0weDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLAotMHhmZCwweDQ3LDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBhLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKLTB4ZTAsMHg5MCwweGZkLDB4NDgsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDMsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweGZjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGUwLDB4ZjUsMHg1YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlMCwweGY1LDB4NWQsMHg4YywweDViLDB4ZTQsMHhlYywweDMzLDB4MzMsMHg1NCwweDAxLDB4NzgsMHg4ZiwweGY2LDB4NjAsCi0weDA4LDB4ZTUsMHg1YywweDMwLDB4ZTEsMHgwMywweDc4LDB4OGYsMHgwNiwweDc4LDB4OGYsMHhlNiwweDkwLDB4ZmQsMHg0OSwweGYwLAotMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZmQsMHhhMywKLTB4ZTAsMHg1NCwweDBjLDB4ZmMsMHhlZCwweDU0LDB4ZTYsMHg4YywweDVmLDB4ZjUsMHg1ZSwweGU1LDB4NWIsMHgzMCwweGU1LDB4MDMsCi0weDQzLDB4NWYsMHgwMSwweGU1LDB4NWMsMHgyMCwweGU1LDB4MGUsMHhlNSwweDViLDB4NTQsMHg3ZiwweDcwLDB4MDgsMHhlNSwweDViLAotMHgyMCwweGU3LDB4MDMsMHg0MywweDVmLDB4MDIsMHhlNSwweDViLDB4MzAsMHhlMywweDAzLDB4NDMsMHg1ZiwweDEwLDB4ZTUsMHg1YiwKLTB4MzAsMHhlMiwweDAzLDB4NDMsMHg1ZiwweDIwLDB4ZTUsMHg1YiwweDU0LDB4MDMsMHg2MCwweDAzLDB4NDMsMHg1ZiwweDQwLDB4ZTUsCi0weDViLDB4MzAsMHhlMSwweDAzLDB4NDMsMHg1ZiwweDgwLDB4ZTUsMHg1YiwweDMwLDB4ZTQsMHgwMywweDQzLDB4NWUsMHgwMSwweGU1LAotMHg1YiwweDMwLDB4ZTYsMHgwMywweDQzLDB4NWUsMHgwOCwweGU1LDB4NWMsMHgyMCwweGU0LDB4MGUsMHhlNSwweDViLDB4NTQsMHg3ZiwKLTB4NzAsMHgwOCwweGU1LDB4NWIsMHgyMCwweGU3LDB4MDMsMHg0MywweDVlLDB4MTAsMHg1MywweDVmLDB4ZmIsMHg1MywweDVlLDB4ZjksCi0weGFkLDB4NWUsMHhlNSwweDVmLDB4OTAsMHhmZCwweDQyLDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweGU1LDB4NWQsMHgzMCwweGUzLAotMHgwZCwweGU1LDB4NWQsMHg1NCwweDMwLDB4YzQsMHg1NCwweDBmLDB4OTAsMHhmZCwweDQ1LDB4ZjAsMHg4MCwweDA1LDB4ZTQsMHg5MCwKLTB4ZmQsMHg0NSwweGYwLDB4ZTUsMHg1ZCwweDU0LDB4MDMsMHg5MCwweGZkLDB4NDQsMHhmMCwweGU1LDB4NWQsMHg1NCwweDA0LDB4YzMsCi0weDEzLDB4OTAsMHhmZCwweDQ2LDB4ZjAsMHg5MCwweGZkLDB4NDQsMHhlMCwweDcwLDB4MGUsMHg3ZCwweDNkLDB4N2UsMHhmZCwweDdmLAotMHgwMSwweDc0LDB4MDEsMHg5MCwweDAwLDB4MDksMHgxMiwweDAxLDB4NDIsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA4LDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg3YywweDAwLDB4ZmQsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA3LDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg3ZiwweDAwLDB4NGMsMHhmZSwweGVmLDB4NGQsMHg5MCwweGZkLAotMHg0MCwweGYwLDB4YTMsMHhjZSwweGYwLDB4Y2UsMHhjMiwweDAzLDB4N2QsMHgwYSwweDdjLDB4MDAsMHgxMiwweDI0LDB4YjEsMHgxMiwKLTB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHg3OCwweDk0LDB4NzYsMHgwMSwweDA4LDB4NzYsCi0weGZkLDB4MDgsMHg3NiwweDQwLDB4NzgsMHg5MSwweDc2LDB4MGMsMHg3OCwweDk0LDB4MTIsMHgwNCwweDY1LDB4MTIsMHgwMiwweDE0LAotMHg3OCwweDkyLDB4Y2IsMHhmNiwweGNiLDB4MDgsMHhmNiwweDdmLDB4MDAsMHhlZiwweDI0LDB4ZWIsMHg0MCwweDFmLDB4ZTQsMHhlZiwKLTB4MjUsMHhlMCwweDkwLDB4MzQsMHhiZiwweGZkLDB4OTMsMHhjZCwweDA0LDB4OTMsMHg3OCwweDkzLDB4NjYsMHg3MCwweDAzLDB4ZWQsCi0weDE4LDB4NjYsMHg3MCwweDA2LDB4NzgsMHg5MSwweDc2LDB4MDAsMHg4MCwweDAzLDB4MGYsMHg4MCwweGRjLDB4NzgsMHg5MCwweGVmLAotMHhmNiwweDc4LDB4OTQsMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDIsMHgxMiwweDAyLDB4MGUsMHg3OCwweDkyLDB4Y2IsMHhmNiwKLTB4Y2IsMHgwOCwweGY2LDB4NTQsMHgwNCwweGNiLDB4NTQsMHgwNiwweDRiLDB4NjAsMHgwNCwweDc4LDB4OTEsMHg3NiwweDBiLDB4NzgsCi0weDkzLDB4ZTYsMHgzMCwweGUzLDB4MTMsMHg3OCwweDk0LDB4MTIsMHgwNCwweDY1LDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLAotMHgyNCwweGZiLDB4NTAsMHgwNCwweDc4LDB4OTEsMHg3NiwweDBkLDB4NzgsMHg5MywweGU2LDB4NTQsMHhjMCwweDdkLDB4MDAsMHg2NCwKLTB4YzAsMHg0ZCwweDcwLDB4MDQsMHg3OCwweDkxLDB4NzYsMHgwYiwweDc4LDB4OTQsMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDQsCi0weDEyLDB4MDEsMHhlYywweDI0LDB4ZmMsMHg1MCwweDA0LDB4NzgsMHg5MSwweDc2LDB4MGYsMHg3OCwweDk0LDB4MTIsMHgwNCwweDY1LAotMHg5MCwweDAwLDB4MDYsMHgxMiwweDAxLDB4ZWMsMHgyNCwweGZkLDB4NTAsMHgwNCwweDc4LDB4OTEsMHg3NiwweDBlLDB4NzgsMHg5NCwKLTB4MTIsMHgwNCwweDY1LDB4OTAsMHgwMCwweDA5LDB4MTIsMHgwMSwweGVjLDB4MjQsMHhmZCwweDUwLDB4MDQsMHg3OCwweDkxLDB4NzYsCi0weDBhLDB4NzgsMHg5MSwweGU2LDB4NzAsMHgyYSwweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgwZiwweDdjLDB4NzgsMHg5NCwweDEyLAotMHgwNCwweDY1LDB4NzgsMHhhMSwweGU2LDB4ZjksMHg3OCwweGEwLDB4ZTYsMHhmYSwweDdiLDB4MDEsMHg3NCwweDBhLDB4NzgsMHgwMCwKLTB4MTIsMHgwMywweDNmLDB4YzIsMHgwMywweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgxMSwweDIzLDB4NzgsMHg5MSwweGVjLDB4ZjYsCi0weDc4LDB4OTEsMHhlNiwweGZjLDB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDhmLAotMHhlYywweGY2LDB4MTIsMHgwZiwweDdjLDB4NzgsMHg4ZiwweGU2LDB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHgxYywKLTB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHhhYywweDgyLDB4YWQsMHg4MywweDc4LDB4YTAsMHg4NiwweDgzLDB4MDgsCi0weDg2LDB4ODIsMHhlYywweGY5LDB4ZWQsMHhmYSwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGE3LDB4YzIsMHgwMywweDc4LAotMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDExLDB4MjMsMHgxMiwweDMxLDB4MDgsMHgyMiwweDhkLDB4MmIsMHg4YywweDJhLDB4ZWQsMHg2MCwKLTB4NDAsMHg3NSwweDI3LDB4MDEsMHg3NSwweDI5LDB4NDgsMHg3NSwweDI4LDB4ZmYsMHhlNSwweDJhLDB4MjQsMHhmZCwweGZjLDB4ZTQsCi0weDM0LDB4ZmYsMHhmZCwweGVjLDB4N2MsMHgwMywweDI1LDB4ZTAsMHhjZCwweDMzLDB4Y2QsMHhkYywweGY5LDB4ZmMsMHhlNSwweDI5LAotMHgyYywweGY1LDB4MjksMHhlNSwweDI4LDB4M2QsMHhmNSwweDI4LDB4YWQsMHgyOSwweGFlLDB4MjgsMHhhZiwweDI3LDB4NzQsMHg4MCwKLTB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMywweDE3LDB4NzQsMHg4MCwweDkwLDB4MDAsMHgwMiwweDEyLDB4MDMsMHgxNywweDEyLDB4MGYsCi0weGQzLDB4ZTUsMHgyYiwweDE0LDB4NjAsMHgzYiwweDc1LDB4MjcsMHgwMSwweDc1LDB4MjksMHgwOCwweDc1LDB4MjgsMHhmZiwweGU1LAotMHgyYSwweDI0LDB4ZmQsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLDB4ZWMsMHg3YywweDAzLDB4MjUsMHhlMCwweGNkLDB4MzMsMHhjZCwKLTB4ZGMsMHhmOSwweGZjLDB4ZTUsMHgyOSwweDJjLDB4ZjUsMHgyOSwweGU1LDB4MjgsMHgzZCwweGY1LDB4MjgsMHhhZCwweDI5LDB4YWUsCi0weDI4LDB4YWYsMHgyNywweGU0LDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMywweDE3LDB4ZTQsMHg5MCwweDAwLDB4MDIsMHgxMiwweDAzLAotMHgxNywweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhlYywweDI0LDB4OTcsMHhmOCwweGU2LDB4MzAsMHhlMiwKLTB4MDksMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MTUsMHgyMiwweGQyLDB4MDAsMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MGYsCi0weDdjLDB4NzgsMHg5MCwweDc2LDB4MDAsMHg5MCwweGZkLDB4NDEsMHhlMCwweDMwLDB4ZTcsMHgwNCwweDc4LDB4OTAsMHg3NiwweDAxLAotMHg3OCwweDkwLDB4ZTYsMHhmZCwweDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgwZCwweDNhLDB4YzIsMHgwMywweDMwLDB4MDAsMHgwNywKLTB4NzgsMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDE0LDB4MjEsMHg3YywweDAwLDB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsCi0weDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDAxLAotMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwKLTB4ZTAsMHgwMiwweDgwLDB4ZWQsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZTAsMHg1NCwweGY4LDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgyMiwweGMyLDB4MDMsMHg4YywweDU4LDB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMCwKLTB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweDc5LDB4ZWUsMHg3YSwweDM0LDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsCi0weDEyLDB4MGUsMHgxMCwweGFjLDB4NTgsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDNhLDB4YzIsMHgwMywweGFjLDB4NTgsMHgxMiwweDExLAotMHgyMywweDIyLDB4OGQsMHg1MywweDhlLDB4NTIsMHg4ZiwweDUxLDB4OGMsMHg1MCwweDEyLDB4MGYsMHg3YywweDc1LDB4NGYsMHgwMCwKLTB4NzgsMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDIwLDB4ZTQsCi0weDE2LDB4ZTUsMHg0ZiwweDI0LDB4ZjYsMHg0MCwweDEwLDB4MDUsMHg0ZiwweGMyLDB4MDMsMHg3YywweDE4LDB4MTIsMHgzMiwweDQ4LAotMHhhYywweDUwLDB4MTIsMHgwZiwweDdjLDB4ODAsMHhkOSwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDIwLDB4ZTQsMHgwNSwweGMyLDB4MDMsMHg3YywweDAyLDB4MjIsMHg3OCwweGEzLDB4ZTYsCi0weDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDBmLDB4NjAsMHgxNiwweDc4LAotMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4MGYsMHhmMCwKLTB4YzIsMHgwMywweDdjLDB4MDEsMHgyMiwweDc4LDB4YTIsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHhhZCwweDUzLDB4YWUsCi0weDUyLDB4YWYsMHg1MSwweDEyLDB4MDMsMHgwZiwweGMyLDB4MDMsMHg3YywweDAwLDB4MjIsMHg4ZCwweDMxLDB4OGMsMHgzMCwweDEyLAotMHgxNSwweDIyLDB4ZTUsMHgzMSwweDYwLDB4MjAsMHhlNSwweDMwLDB4YjQsMHgwMywweDBjLDB4N2MsMHgwMSwweDEyLDB4MjQsMHg3YywKLTB4N2MsMHg4MSwweDEyLDB4MjQsMHg3YywweDgwLDB4MGYsMHhlNSwweDMwLDB4YjQsMHgwNCwweDBhLDB4N2MsMHgwMiwweDEyLDB4MjQsCi0weDdjLDB4N2MsMHg4MiwweDEyLDB4MjQsMHg3YywweGFjLDB4MzAsMHgxMiwweDBmLDB4N2MsMHhlNSwweDMxLDB4NjAsMHgxYSwweDc4LAotMHhhNCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDU0LDB4ZTcsMHhmMCwweGEzLDB4YTMsMHhhMywweGEzLDB4ZTAsMHg1NCwKLTB4ZTcsMHhmMCwweGFjLDB4MzAsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDNhLDB4NzgsMHhhMCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsCi0weDc5LDB4ZjgsMHg3YSwweDM0LDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsMHhjMiwweDAzLDB4ZTUsMHgzMCwweDI0LAotMHg5NywweGY4LDB4YzYsMHg1NCwweGZkLDB4ZjYsMHhhYywweDMwLDB4MTIsMHgxMSwweDIzLDB4MjIsMHg4YywweDI2LDB4MzAsMHgwMywKLTB4MDUsMHgxMiwweDMxLDB4ZTcsMHg4MCwweGY4LDB4N2MsMHgwYSwweDEyLDB4MzAsMHhmYSwweGQyLDB4MDMsMHhlNSwweDI2LDB4MjQsCi0weGZkLDB4NzgsMHg5ZCwweGY2LDB4NzAsMHgwOSwweDc4LDB4YTQsMHg3NiwweGZmLDB4MDgsMHg3NiwweGUwLDB4ODAsMHgwNywweDc4LAotMHhhNCwweDc2LDB4ZmYsMHgwOCwweDc2LDB4ZTIsMHg3OCwweDlkLDB4ZTYsMHg3NSwweGYwLDB4MTAsMHhhNCwweGFkLDB4ZjAsMHhmYywKLTB4MjQsMHhhMCwweDc4LDB4YTMsMHhmNiwweGVkLDB4MzQsMHhmZiwweDE4LDB4ZjYsMHg3OCwweDlkLDB4ZTYsMHg3NSwweGYwLDB4MGEsCi0weGE0LDB4MjQsMHgwOCwweGZjLDB4ZTQsMHgzNCwweGZkLDB4ZmQsMHg3OCwweGEwLDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweDEyLAotMHgzMSwweDkzLDB4MjIsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKLTB4ZTAsMHgzMCwweGU3LDB4MjIsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgyMiwweDc4LDB4YTQsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg1NCwKLTB4N2YsMHhmMCwweGFkLDB4ODMsMHhlNSwweDgyLDB4MjQsMHgwNCwweGZjLDB4ZTQsMHgzZCwweDhjLDB4ODIsMHhmNSwweDgzLDB4ZTAsCi0weDU0LDB4N2YsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAotMHhlMCwweDU0LDB4ZjgsMHhmMCwweDc4LDB4YTUsMHhlNiwweDI0LDB4MDEsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlMCwweDQ0LDB4MDMsMHhmMCwweDc4LDB4YTUsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDQ0LDB4MDMsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHg3NCwweDBmLDB4ZjAsMHgyMiwweDc4LDB4YTQsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg1NCwKLTB4M2YsMHhmMCwweGFkLDB4ODMsMHhlNSwweDgyLDB4MjQsMHgwNCwweGZjLDB4ZTQsMHgzZCwweDhjLDB4ODIsMHhmNSwweDgzLDB4ZTAsCi0weDU0LDB4M2YsMHhmMCwweDc4LDB4OWQsMHhlNiwweDI0LDB4OWUsMHhmOCwweGU2LDB4ZmMsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDAxLAotMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4OWQsMHhlNiwweDI0LDB4OWUsMHhmOCwKLTB4ZTYsMHhmYywweDc4LDB4YTUsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsCi0weGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LAotMHhmYiwweDQ0LDB4MDIsMHhmNSwweDI2LDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNSwweDAzLDB4NDMsMHgyNiwweDAxLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMCwweDAzLDB4MTIsMHgwZiwweGQzLDB4ZTUsMHgyNiwweGZjLAotMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwKLTB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4NzQsMHgwZiwweGYwLDB4NzgsCi0weGE0LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4NDQsMHg4MCwweGYwLDB4YTMsMHhhMywweGEzLDB4YTMsMHhlMCwweDQ0LAotMHg4MCwweGYwLDB4MjIsMHg4YywweDJhLDB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwOCwweGY1LDB4ODIsMHgxOCwKLTB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBhLDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDcsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlMCwweGZjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGEwLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmMsCi0weGVkLDB4ZmUsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA4LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVlLAotMHhmMCwweGVjLDB4ZmUsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA3LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKLTB4ZWUsMHhmMCwweDhjLDB4MjksMHg4ZCwweDI4LDB4YzMsMHhlYywweDk0LDB4MDIsMHhlZCwweDk0LDB4MDYsMHg0MCwweDA1LDB4NzUsCi0weDI3LDB4N2MsMHg4MCwweDMzLDB4ZDMsMHhlNSwweDI5LDB4OTQsMHg4MSwweGU1LDB4MjgsMHg5NCwweDAxLDB4NDAsMHgwNSwweDc1LAotMHgyNywweDNjLDB4ODAsMHgyMywweGQzLDB4ZTUsMHgyOSwweDk0LDB4YzAsMHhlNSwweDI4LDB4OTQsMHgwMCwweDQwLDB4MDUsMHg3NSwKLTB4MjcsMHgxOCwweDgwLDB4MTMsMHhkMywweGU1LDB4MjksMHg5NCwweDMwLDB4ZTUsMHgyOCwweDk0LDB4MDAsMHg0MCwweDA1LDB4NzUsCi0weDI3LDB4MGMsMHg4MCwweDAzLDB4NzUsMHgyNywweDA4LDB4YWYsMHgyNywweGU0LDB4ZWYsMHg1NCwweDdjLDB4NDQsMHg4MywweGZmLAotMHg4ZiwweDI3LDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGU1LDB4MjcsMHhmYywweDc4LDB4OWQsMHhlNiwweDI0LDB4OWUsMHhmOCwweGVjLAotMHhmNiwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmNSwKLTB4MjcsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsCi0weDMwLDB4ZTMsMHgxNywweDUzLDB4MjcsMHhjNywweDc4LDB4YTEsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLDB4MzQsMHhlOSwweDkzLDB4NDIsMHgyNywweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTcsMHgwNSwweDQzLDB4MjcsMHg0MCwweDgwLDB4MDMsCi0weDUzLDB4MjcsMHhiZiwweDUzLDB4MjcsMHhmYiwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlMCwweDYwLDB4MDMsMHg0MywweDI3LDB4MDQsMHg1MywweDI3LDB4ZmMsMHg3OCwweGExLDB4ZTYsMHgyNCwKLTB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0MiwweDI3LDB4NDMsMHgyNywweDgwLDB4ZTUsCi0weDI3LDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLAotMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmNSwKLTB4MjcsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsCi0weDMwLDB4ZTEsMHgwNSwweDUzLDB4MjcsMHhkZiwweDgwLDB4MDMsMHg0MywweDI3LDB4MjAsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLAotMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU0LDB4MDUsMHg1MywweDI3LDB4ZWYsMHg4MCwKLTB4MDMsMHg0MywweDI3LDB4MTAsMHg3OCwweGExLDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZTAsMHhiNCwweDAyLDB4MDMsMHg0MywweDI3LDB4MDIsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LAotMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDMsMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGY1LDB4MjcsMHg3OCwweGExLDB4ZTYsMHgyNCwweDA5LDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg3MCwweDA1LDB4NTMsMHgyNywweDdmLDB4ODAsMHgwMywweDQzLAotMHgyNywweDgwLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywKLTB4ZTAsMHgzMCwweGUwLDB4MDUsMHg0MywweDI3LDB4MjAsMHg4MCwweDAzLDB4NTMsMHgyNywweGRmLDB4NzgsMHhhMSwweGU2LDB4MjQsCi0weDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMywweDA1LDB4NDMsMHgyNywweDQwLAotMHg4MCwweDAzLDB4NTMsMHgyNywweGJmLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMCwweDA1LDB4NDMsMHgyNywweDEwLDB4ODAsMHgwMywweDUzLDB4MjcsMHhlZiwweDc4LDB4YTEsCi0weGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlNCwweDA1LAotMHg0MywweDI3LDB4MDgsMHg4MCwweDAzLDB4NTMsMHgyNywweGY3LDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwKLTB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGU1LDB4MDUsMHg0MywweDI3LDB4MDQsMHg4MCwweDAzLDB4NTMsCi0weDI3LDB4ZmIsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLAotMHhlMCwweDMwLDB4ZTYsMHgwNSwweDQzLDB4MjcsMHgwMSwweDgwLDB4MDMsMHg1MywweDI3LDB4ZmUsMHg3OCwweGExLDB4ZTYsMHgyNCwKLTB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTcsMHgwNSwweDQzLDB4MjcsCi0weDAyLDB4ODAsMHgwMywweDUzLDB4MjcsMHhmZCwweGU1LDB4MjcsMHhmYywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDMsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4YzIsMHgwMywweDdjLDB4MDAsMHgyMiwweDhkLDB4MjcsMHg4YywKLTB4MjYsMHhlZCwweDU0LDB4MDMsMHgxNCwweDYwLDB4MDMsMHg3YywweDEwLDB4MjIsMHhlNSwweDI3LDB4NTQsMHg3YywweDI0LDB4ZmMsCi0weDQwLDB4MDMsMHg3YywweDBiLDB4MjIsMHhlNSwweDI2LDB4MjQsMHg5NywweGY4LDB4YzYsMHg0NCwweDAyLDB4ZjYsMHg3YywweDAwLAotMHgyMiwweDhjLDB4MzAsMHgxMiwweDBmLDB4N2MsMHhlNSwweDMwLDB4MjQsMHg5NywweGY4LDB4ZTYsMHgyMCwweGUyLDB4NGYsMHhhYywKLTB4MzAsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDNhLDB4ZTUsMHgzMCwweDI0LDB4ZmUsMHg0NCwweDI4LDB4ZmMsMHg3OCwweGE0LDB4ODYsCi0weDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsMHhmMCwweGFmLDB4ODMsMHhlNSwweDgyLDB4MjQsMHgwNCwweGZlLDB4ZTQsMHgzZiwweGZmLAotMHhlYywweDhlLDB4ODIsMHg4ZiwweDgzLDB4ZjAsMHg3YywweDAzLDB4OGMsMHgyYywweGU1LDB4MmMsMHhmYywweDc4LDB4YTUsMHhlNiwKLTB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4ZTUsMHgyYywweGZjLDB4NzgsCi0weGE1LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3NSwweDJkLAotMHgwMSwweDc1LDB4MmYsMHg0OCwweDc1LDB4MmUsMHhmZiwweGU1LDB4MzAsMHgyNCwweGZkLDB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwKLTB4ZWMsMHg3YywweDAzLDB4MjUsMHhlMCwweGNkLDB4MzMsMHhjZCwweGRjLDB4ZjksMHhmYywweGU1LDB4MmYsMHgyYywweGY1LDB4MmYsCi0weGU1LDB4MmUsMHgzZCwweGY1LDB4MmUsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHg1NCwweGU3LDB4ZjUsMHgyYywweGFkLDB4MmYsMHhhZSwweDJlLDB4YWYsMHgyZCwweGU0LDB4OTAsMHgwMCwKLTB4MDIsMHgxMiwweDAzLDB4MTcsMHhlNCwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDMsMHgxNywweDEyLDB4MDEsMHhlNiwweDMwLDB4ZTUsCi0weDAzLDB4NDMsMHgyYywweDEwLDB4ZTUsMHgyYywweGZjLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHgxMiwweDEwLDB4NjcsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhjMiwweDAzLDB4ZmMsMHhlNSwweDMwLDB4MjQsMHg5NywweGY4LDB4YzYsCi0weDQ0LDB4MDQsMHhmNiwweDhjLDB4MmMsMHhlNSwweDMwLDB4NTQsMHgwZiwweGM0LDB4NTQsMHhmMCwweDdlLDB4MDAsMHhmZiwweGVlLAotMHhlZiwweDQ0LDB4MDQsMHg3ZCwweDAwLDB4ZmYsMHhlYywweDRlLDB4ZmMsMHhlZCwweDRmLDB4ZmQsMHgxMiwweDFjLDB4ZmUsMHg3YywKLTB4MDAsMHgyMiwweDhjLDB4MmYsMHgxMiwweDBmLDB4N2MsMHgxMiwweDEwLDB4MDcsMHg3OCwweGE0LDB4ODYsMHg4MywweDA4LDB4ODYsCi0weDgyLDB4ZTAsMHg1NCwweDA4LDB4ZjAsMHhhMywweGEzLDB4YTMsMHhhMywweGUwLDB4NTQsMHgwOCwweGYwLDB4YWMsMHgyZiwweDdkLAotMHgwMiwweDEyLDB4MGQsMHgzYSwweGMyLDB4MDMsMHhlNSwweDJmLDB4MjQsMHg5NywweGY4LDB4YzYsMHg1NCwweGZiLDB4ZjYsMHg3YywKLTB4MDAsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OTAsMHhlYywweGY2LDB4ZWMsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDMwLDB4ZTEsCi0weDBhLDB4N2QsMHgwMCwweDdjLDB4MTMsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHg3OCwweDkwLDB4ZTYsMHgyNCwweDk3LAotMHhmOCwweGM2LDB4NDQsMHgwMSwweGY2LDB4NzgsMHg5MCwweGU2LDB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweDkwLDB4ZTYsMHgyNCwKLTB4ZmQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4MWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweDc4LDB4YTAsCi0weGU2LDB4ZmEsMHgwOCwweGU2LDB4ZjksMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhhNywweDc4LDB4YTAsMHg4NiwweDgzLAotMHgwOCwweDg2LDB4ODIsMHg3OSwweGY4LDB4N2EsMHgzNCwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LDB4MTIsMHgwZiwKLTB4ZDMsMHhjMiwweDAzLDB4NzgsMHg5MCwweGU2LDB4ZmMsMHgxMiwweDExLDB4MjMsMHg3OCwweDhmLDB4ZWMsMHhmNiwweGVjLDB4NjAsCi0weDBhLDB4N2QsMHgwMCwweDdjLDB4MDgsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHg3OCwweDkwLDB4ZTYsMHhmYywweDEyLAotMHgwZiwweDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwKLTB4NDQsMHgxMCwweDU0LDB4ZGYsMHhmYywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHg0OCwweDc4LAotMHg5MCwweGU2LDB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGVmLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHg0OCwweDc4LDB4OTAsCi0weGU2LDB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHg0NCwweDEwLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHg0OCwweDc4LDB4OTAsMHhlNiwKLTB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZTAsMHg0NCwweDIwLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhmMCwweDEyLDB4MzIsMHg0OCwweDc4LDB4OTAsMHhlNiwweGZjLAotMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKLTB4ZTAsMHgzMCwweGU0LDB4MTUsMHhjMiwweDAzLDB4NzgsMHg5MCwweGU2LDB4NDQsMHgxMCwweDdmLDB4MDAsMHhmZSwweDdjLDB4MDcsCi0weDEyLDB4MzEsMHg5YSwweDEyLDB4MzEsMHgwOCwweDAyLDB4MTcsMHg0OSwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4Y2YsMHhmMCwweGMyLDB4MDMsMHg3YywweGM4LDB4MTIsMHgzMiwKLTB4NDgsMHg3OCwweDkwLDB4ZTYsMHhmYywweDEyLDB4MGYsMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsCi0weGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MzAsMHhmMCwweGMyLDB4MDMsMHg3YywweGYwLDB4MTIsMHgzMiwweDQ4LAotMHg3OCwweDkwLDB4ZTYsMHhmYywweDEyLDB4MGYsMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTQsMHgxNCwweGMyLDB4MDMsMHg3OCwweDkwLDB4ZTYsMHg0NCwweDEwLDB4N2YsCi0weDAwLDB4ZmUsMHg3YywweDA3LDB4MTIsMHgzMSwweDlhLDB4MTIsMHgzMSwweDA4LDB4ODAsMHg1ZCwweDc4LDB4YTMsMHhlNiwweDI0LAotMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZWYsMHhmMCwweDc4LDB4YTMsMHhlNiwKLTB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZGYsMHhmMCwweDc4LDB4OTAsCi0weGU2LDB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHgxYywweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLAotMHhhYywweDgyLDB4YWQsMHg4MywweDc4LDB4YTAsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsMHhmOSwweGVkLDB4ZmEsMHg3YiwKLTB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGE3LDB4YzIsMHgwMywweDc4LDB4OTAsMHhlNiwweGZjLDB4MTIsMHgxMSwweDIzLDB4N2QsCi0weDAwLDB4N2MsMHgwYiwweDEyLDB4MjQsMHhiMSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4OTAsMHhmZiwweDkxLAotMHhlMCwweDkwLDB4ZmQsMHg0MSwweGYwLDB4N2QsMHgwMiwweDdjLDB4MDAsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHgyMiwKLTB4MTIsMHgzMCwweDg1LDB4OTAsMHhmZCwweDQwLDB4ZTAsMHhmNCwweGZjLDB4OTAsMHhmZiwweDkxLDB4ZTAsMHg1YywweGY1LDB4MzMsCi0weDkwLDB4ZmQsMHg0MSwweGUwLDB4ZmMsMHg5MCwweGZkLDB4NDAsMHhlMCwweDVjLDB4NDIsMHgzMywweGU1LDB4MzMsMHg5MCwweGZmLAotMHg5MSwweGYwLDB4N2MsMHgwMCwweDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLDB4NzQsMHgzYywweDkwLDB4ZmIsMHhlOCwKLTB4ZjAsMHg3NCwweDNlLDB4OTAsMHhmYiwweGU4LDB4ZjAsMHhlNCwweDkwLDB4ZmQsMHgzMCwweGYwLDB4MjIsMHg4ZCwweDM1LDB4OGMsCi0weDM0LDB4ZWMsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAyLDB4ODAsMHgyOCwweGI0LDB4MDIsMHgwMiwweDgwLAotMHgwMywweGQzLDB4NDAsMHgwOCwweGE4LDB4MzUsMHhjNiwweDI1LDB4ZTAsMHhmNiwweDgwLDB4MTgsMHhiNCwweDA0LDB4MDIsMHg4MCwKLTB4MDMsMHhkMywweDQwLDB4MGEsMHhhOCwweDM1LDB4YzYsMHgyNSwweGUwLDB4MjUsMHhlMCwweGY2LDB4ODAsMHgwNiwweGE4LDB4MzUsCi0weDc2LDB4MDAsMHg4MCwweDAwLDB4MjIsMHg4YywweDNjLDB4OGQsMHgzYiwweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDc1LAotMHg2MCwweDA2LDB4NzUsMHg2MSwweDAwLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDZlLDB4MTIsMHgwMSwweGU2LDB4YjQsMHg4MCwKLTB4MDIsMHg4MCwweDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsMHgxOCwweDllLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsCi0weDAwLDB4MDMsMHgxMiwweDAxLDB4ZWMsMHg1NCwweGYwLDB4YjQsMHgzMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg1ZiwweDkwLAotMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4ZmEsMHhmZCwweGViLDB4ZmUsMHg3ZiwKLTB4MDEsMHg5MCwweGZkLDB4MzQsMHgxMiwweDA0LDB4NmUsMHhlZSwweGNkLDB4OTAsMHgzNSwweDAyLDB4ZmMsMHhlNCwweDkzLDB4ZmYsCi0weDc0LDB4MDEsMHg5MywweGZlLDB4ZjksMHhlZiwweGZhLDB4N2IsMHgwMSwweGVhLDB4ZmYsMHhlOSwweGZlLDB4ZWMsMHhjMywweDllLAotMHhlZCwweDlmLDB4NDAsMHgyNSwweDkwLDB4MzUsMHgwNCwweGU0LDB4OTMsMHhmZCwweDc0LDB4MDEsMHg5MywweGZjLDB4ZWQsMHhmZSwKLTB4ZWMsMHhmZCwweDdmLDB4MDEsMHhlZSwweGNkLDB4ZmMsMHg5MCwweGZkLDB4MzYsMHhlMCwweGQzLDB4OWMsMHg5MCwweGZkLDB4MzUsCi0weGUwLDB4OWQsMHg1MCwweDA1LDB4NzUsMHg2MCwweDgwLDB4ODAsMHgzMywweDEyLDB4MTksMHhiYywweDgwLDB4MmUsMHhiNCwweDYwLAotMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGIsMHhhYywweDNjLDB4YWQsMHgzYiwweDEyLDB4MDcsMHg4MiwweDhjLDB4NjAsMHg4MCwKLTB4MWIsMHhiNCwweDEwLDB4MDMsMHhiMywweDQwLDB4MTAsMHhjMywweGI0LDB4MjAsMHgwMywweGIzLDB4NDAsMHgwOSwweGMzLDB4YjQsCi0weDQwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLDB4NzUsMHg2MCwweDgxLDB4ODAsMHgwMCwweDgwLDB4NzUsMHhiNCwweDgxLAotMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NmIsMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDMsMHgxMiwKLTB4MDEsMHhlYywweDU0LDB4ZjAsMHhiNCwweDMwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDFkLDB4OTAsMHhmZCwweDMxLDB4MTIsCi0weDA0LDB4ODAsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHhmYSwweGZkLDB4ZWIsMHhmZSwweDdmLDB4MDEsMHg5MCwweGZkLAotMHgzNywweDEyLDB4MDQsMHg2ZSwweDEyLDB4MTksMHgyNiwweDgwLDB4MzYsMHhiNCwweDYwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwKLTB4MTMsMHg3NSwweDNhLDB4NjEsMHhlNCwweGY1LDB4MzksMHhmNSwweDM4LDB4YWMsMHgzYywweGFkLDB4M2IsMHgxMiwweDA1LDB4ZGUsCi0weDhjLDB4NjAsMHg4MCwweDFiLDB4YjQsMHgxMCwweDAzLDB4YjMsMHg0MCwweDEwLDB4YzMsMHhiNCwweDIwLDB4MDMsMHhiMywweDQwLAotMHgwOSwweGMzLDB4YjQsMHg0MCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMCwweDc1LDB4NjAsMHg4MSwweDgwLDB4MDAsMHg4MCwKLTB4MDIsMHg4MCwweDAwLDB4ZTUsMHg2MCwweGZjLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4ZWMsMHg5MCwweDAwLDB4MDIsCi0weDEyLDB4MDMsMHgxNywweGFjLDB4NjEsMHgyMiwweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNCwweDEyLAotMHgwMSwweGVjLDB4NjAsMHgwNCwweDc0LDB4MDEsMHg4MCwweDAxLDB4ZTQsMHhhMiwweGUwLDB4OTIsMHgwMSwweDkwLDB4ZmQsMHgzMSwKLTB4MTIsMHgwNCwweDgwLDB4ZWQsMHgyNCwweDAzLDB4ZmQsMHg1MCwweDAxLDB4MGUsMHg5MCwweGZkLDB4MzQsMHgxMiwweDA0LDB4NmUsCi0weDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweGY1LDB4NjEsMHg5MCwweDAwLAotMHgwNCwweDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhmYywweDdkLDB4NjEsMHgxMiwweDE3LDB4OWQsMHhlNSwweDYxLDB4NzAsMHgwNCwKLTB4NzUsMHg2MCwweDA4LDB4MjIsMHg3NSwweDYwLDB4MDAsMHg3OCwweDdlLDB4NzYsMHgwMCwweDc4LDB4N2UsMHhlNiwweGMzLDB4OTUsCi0weDYxLDB4NTAsMHgzOCwweDkwLDB4ZmQsMHgzNywweDEyLDB4MDQsMHg4MCwweDEyLDB4MDEsMHhlNiwweGZjLDB4OTAsMHhmZCwweDM0LAotMHgxMiwweDA0LDB4ODAsMHhlYywweDEyLDB4MDMsMHgwZiwweDMwLDB4MDEsMHgwZSwweDkwLDB4ZmQsMHgzOSwweGUwLDB4MDQsMHhmMCwKLTB4OTAsMHhmZCwweDM4LDB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDc4LDB4N2UsMHgwNiwweDkwLDB4ZmQsMHgzNiwweGUwLDB4MDQsCi0weGYwLDB4OTAsMHhmZCwweDM1LDB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDgwLDB4YzAsMHgyMiwweDkwLDB4ZmQsMHgzMiwweGUwLAotMHhmZCwweGEzLDB4ZTAsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweGVkLDB4MjQsMHgwYSwweGZkLDB4NTAsMHgwMSwKLTB4MGUsMHg5MCwweGZkLDB4M2EsMHgxMiwweDA0LDB4NmUsMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDQsCi0weDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDE3LDB4OTAsMHhmZCwweDNhLAotMHgxMiwweDA0LDB4ODAsMHgwZCwweGVkLDB4NzAsMHgwMSwweDBlLDB4OTAsMHhmZCwweDM3LDB4MTIsMHgwNCwweDZlLDB4NzgsMHg4MiwKLTB4NzYsMHgwMSwweDgwLDB4NGUsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDE5LDB4OTAsMHhmZCwweDNhLDB4MTIsCi0weDA0LDB4ODAsMHhlZCwweDI0LDB4MDIsMHhmZCwweDUwLDB4MDEsMHgwZSwweDkwLDB4ZmQsMHgzNywweDEyLDB4MDQsMHg2ZSwweDc4LAotMHg4MiwweDc2LDB4MDIsMHg4MCwweDJkLDB4YjQsMHgwNCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxOSwweDkwLDB4ZmQsMHgzYSwKLTB4MTIsMHgwNCwweDgwLDB4ZWQsMHgyNCwweDA0LDB4ZmQsMHg1MCwweDAxLDB4MGUsMHg5MCwweGZkLDB4MzcsMHgxMiwweDA0LDB4NmUsCi0weDc4LDB4ODIsMHg3NiwweDA0LDB4ODAsMHgwYywweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDAsMHg3NSwweDYwLAotMHgwOCwweDIyLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4ZjUsMHg2MSwKLTB4NzgsMHg3ZiwweDc2LDB4MDAsMHg3OCwweDdmLDB4ZTYsMHhjMywweDk1LDB4NjEsMHg0MCwweDAzLDB4MDIsMHgxYiwweDI0LDB4NzgsCi0weDgwLDB4NzYsMHgwMCwweDc4LDB4ODAsMHhlNiwweGMzLDB4NzgsMHg4MiwweDk2LDB4NTAsMHg3NiwweDkwLDB4ZmQsMHgzNCwweDEyLAotMHgwNCwweDgwLDB4MTIsMHgwMSwweGU2LDB4ZmMsMHg5MCwweGZkLDB4M2EsMHgxMiwweDA0LDB4ODksMHgxMiwweDAxLDB4ZTAsMHhmNCwKLTB4NWMsMHhmYywweDEyLDB4MDEsMHhlMCwweGY4LDB4OTAsMHhmZCwweDM3LDB4MTIsMHgwNCwweDgwLDB4ZTgsMHhjMCwweGUwLDB4MTIsCi0weDAxLDB4ZTYsMHhjOCwweGQwLDB4ZTAsMHhjOCwweDU4LDB4NGMsMHhmYywweDkwLDB4ZmQsMHgzNCwweDEyLDB4MDQsMHg4MCwweGVjLAotMHgxMiwweDAzLDB4MGYsMHg3OCwweDgxLDB4ZWMsMHhmNiwweDkwLDB4ZmQsMHgzOSwweGUwLDB4MDQsMHhmMCwweDkwLDB4ZmQsMHgzOCwKLTB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDA5LDB4ZTksMHg3MCwweDAxLDB4MGEsMHg5MCwweGZkLDB4M2EsMHgxMiwweDA0LDB4NzcsCi0weDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywweDMwLDB4ZTQsMHgwZSwweDkwLAotMHhmZCwweDM2LDB4ZTAsMHgwNCwweGYwLDB4OTAsMHhmZCwweDM1LDB4NzAsMHgwMywweGUwLDB4MDQsMHhmMCwweDc4LDB4ODAsMHgwNiwKLTB4ODAsMHg4MSwweDc4LDB4ODIsMHhlNiwweGZkLDB4ZTQsMHhmZSwweGZmLDB4ZWUsMHhjZCwweGZjLDB4OTAsMHhmZCwweDM5LDB4ZTAsCi0weDJjLDB4ZjAsMHg5MCwweGZkLDB4MzgsMHhlMCwweDNkLDB4ZjAsMHg3OCwweDgyLDB4ZTYsMHhmZCwweGU0LDB4ZmUsMHhmZiwweGVlLAotMHhjZCwweGZjLDB4OTAsMHhmZCwweDNjLDB4ZTAsMHgyYywweGYwLDB4OTAsMHhmZCwweDNiLDB4ZTAsMHgzZCwweGYwLDB4NzgsMHg3ZiwKLTB4MDYsMHgwMiwweDFhLDB4NjQsMHg3NSwweDYwLDB4MDAsMHgyMiwweGU1LDB4M2QsMHgwNSwweDNkLDB4MDQsMHg3MCwweDAyLDB4YjIsCi0weGIwLDB4MjIsMHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweGU4LDB4YzAsMHhlMCwweGU5LAotMHhjMCwweGUwLDB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwKLTB4ZTAsMHhlZiwweGMwLDB4ZTAsMHg5MCwweGZmLDB4OTIsMHhlMCwweDEyLDB4MDEsMHhiNywweDFiLDB4ODAsMHgzMCwweDFiLDB4ODAsCi0weDMyLDB4MWIsMHg4ZiwweDM4LDB4MWIsMHhhMSwweDNhLDB4MWIsMHhiMywweDNlLDB4MWIsMHhjYiwweDQ0LDB4MWIsMHhiZiwweDQ2LAotMHgxYiwweGQ3LDB4NTAsMHgxYywweDE5LDB4NTIsMHgxYiwweGY4LDB4NTQsMHgxYywweDNhLDB4NTYsMHgwMCwweDAwLDB4MWMsMHg1YiwKLTB4OTAsMHhmZiwweDkyLDB4ZTAsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDAxLDB4MTIsMHgzMSwweDlhLDB4MDIsMHgxYywweDZiLDB4ZTQsCi0weGZmLDB4MDQsMHhmZSwweDdjLDB4MDMsMHgxMiwweDMxLDB4OWEsMHg3NCwweDIwLDB4OTAsMHhmZiwweGZlLDB4ZjAsMHgwMiwweDFjLAotMHg2YiwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwMiwweDEyLDB4MzEsMHg5YSwweDc0LDB4NDAsMHg5MCwweGZmLDB4ZmUsMHhmMCwKLTB4MDIsMHgxYywweDZiLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA0LDB4MTIsMHgzMSwweDlhLDB4MDIsMHgxYywweDZiLDB4ZTQsCi0weGZmLDB4MDQsMHhmZSwweDdjLDB4MDUsMHgxMiwweDMxLDB4OWEsMHgwMiwweDFjLDB4NmIsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLAotMHgwNiwweDEyLDB4MzEsMHg5YSwweDAyLDB4MWMsMHg2YiwweDkwLDB4ZmYsMHhhNSwweGUwLDB4N2QsMHgwMCwweDkwLDB4ZmQsMHgwMCwKLTB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLDB4ZmQsMHgwMSwweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsMHhmZCwweDAwLDB4ZTAsCi0weDQ0LDB4MzMsMHhmZCwweDEyLDB4MWMsMHhmZSwweDgwLDB4NzMsMHg5MCwweGZmLDB4YjUsMHhlMCwweDdkLDB4MDAsMHg5MCwweGZkLAotMHgwMiwweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwweGZkLDB4MDMsMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmQsMHgwMiwKLTB4ZTAsMHg0NCwweDQzLDB4ZmQsMHgxMiwweDFjLDB4ZmUsMHg4MCwweDUyLDB4OTAsMHhmZiwweGE2LDB4ZTAsMHg3ZCwweDAwLDB4OTAsCi0weGZkLDB4MDQsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmZCwweDA1LDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwweGZkLAotMHgwNCwweGUwLDB4NDQsMHgzNCwweGZkLDB4MTIsMHgxYywweGZlLDB4ODAsMHgzMSwweDkwLDB4ZmYsMHhiNiwweGUwLDB4N2QsMHgwMCwKLTB4OTAsMHhmZCwweDA2LDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLDB4ZmQsMHgwNywweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsCi0weGZkLDB4MDYsMHhlMCwweDQ0LDB4NDQsMHhmZCwweDEyLDB4MWMsMHhmZSwweDgwLDB4MTAsMHg5MCwweGZmLDB4OTIsMHhlMCwweDdkLAotMHgwMCwweGZjLDB4ZWQsMHg0NCwweGFhLDB4ZmQsMHgxMiwweDFjLDB4ZmUsMHg4MCwweDAwLDB4ZTQsMHg5MCwweGZmLDB4OTIsMHhmMCwKLTB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDAsCi0weGUwLDB4ZmEsMHhkMCwweGUwLDB4ZjksMHhkMCwweGUwLDB4ZjgsMHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLAotMHhkMCwweGUwLDB4MzIsMHgwNSwweDgxLDB4MDUsMHg4MSwweDA1LDB4ODEsMHgwNSwweDgxLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwKLTB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweDkwLDB4ZmYsMHg2YSwweGUwLDB4MjAsMHhlNywweDAyLDB4ODAsMHhmNywweDkwLDB4ZmYsCi0weDY5LDB4ZTAsMHg3ZCwweDAwLDB4YTgsMHg4MSwweDE4LDB4Y2QsMHhmNiwweGNkLDB4MDgsMHhmNiwweDdkLDB4MDMsMHhhOCwweDgxLAotMHhlNiwweDE4LDB4ZmMsMHhlNiwweGNjLDB4MjUsMHhlMCwweGNjLDB4MzMsMHhjYywweGRkLDB4ZjksMHhjYywweGY2LDB4Y2MsMHgwOCwKLTB4ZjYsMHhhOCwweDgxLDB4MTgsMHhlNiwweDQ0LDB4ZjgsMHhmNiwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHhlNiwweGZkLDB4MDgsCi0weGU2LDB4ZmMsMHhhOCwweDgxLDB4MTgsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWQsMHhmMCwweGEzLDB4ZWMsMHhmMCwweDc0LAotMHgwMiwweDkwLDB4ZmYsMHg2YSwweGYwLDB4MTUsMHg4MSwweDE1LDB4ODEsMHgxNSwweDgxLDB4MTUsMHg4MSwweDIyLDB4ZTUsMHg4MSwKLTB4MjQsMHgwNSwweGY1LDB4ODEsMHhlNCwweGE4LDB4ODEsMHgxOCwweGY2LDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZWQsCi0weGY2LDB4MDgsMHhlYywweGY2LDB4OTAsMHhmYiwweGZkLDB4ZTAsMHgyNCwweGY4LDB4NTAsMHgwMywweDAyLDB4MWUsMHgxZiwweGU0LAotMHhhOCwweDgxLDB4MTgsMHgxOCwweGY2LDB4YTgsMHg4MSwweDE4LDB4ZTYsMHhmZSwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwKLTB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDdmLDB4MDAsMHhlZiwweDI0LDB4ZjgsMHg0MCwweDRkLDB4ZTQsMHhlZiwweDI1LDB4ZTAsCi0weDI0LDB4ODUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweGUwLDB4ZmIsMHhhMywweGUwLDB4NmMsMHg3MCwweDAzLAotMHhmYSwweGViLDB4NmQsMHg3MCwweDA5LDB4NzQsMHgwMSwweGE4LDB4ODEsMHgxOCwweDE4LDB4ZjYsMHg4MCwweDJiLDB4ZTQsMHhlZiwKLTB4MjUsMHhlMCwweDI0LDB4ODUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweDdhLDB4MDAsMHhlMCwweDU0LDB4ZjAsCi0weGNjLDB4ZjgsMHhjYywweGNkLDB4ZjksMHhjZCwweGZiLDB4NzgsMHgwMCwweGU5LDB4NTQsMHhmMCwweGY5LDB4ZWEsMHg2OCwweDcwLAotMHgwMiwweGViLDB4NjksMHg3MCwweDAxLDB4MGUsMHgwZiwweDgwLDB4YWUsMHhhOCwweDgxLDB4MTgsMHhlZSwweGY2LDB4YTgsMHg4MSwKLTB4MTgsMHgxOCwweDE4LDB4MTgsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4YTgsMHg4MSwweGVmLDB4ZjYsMHhhOCwweDgxLDB4MTgsCi0weDE4LDB4ZTYsMHg3MCwweDc5LDB4YTgsMHg4MSwweDE4LDB4ZTYsMHgyNCwweGY3LDB4NDAsMHg3MSwweGE4LDB4ODEsMHgxOCwweDE4LAotMHgxOCwweDE4LDB4ZTYsMHg1NCwweDBmLDB4YTgsMHg4MSwweGY2LDB4NjQsMHgwNCwweDYwLDB4MTcsMHhhOCwweDgxLDB4ZTYsMHg2NCwKLTB4MDMsMHg2MCwweDEwLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDEyLDB4MWMsCi0weDkzLDB4ODAsMHg0YSwweDdjLDB4MGEsMHgxMiwweDMwLDB4ZmEsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlNiwweGZkLAotMHgwOCwweGU2LDB4ZmMsMHg5MCwweGZiLDB4ZmMsMHhlMCwweDI1LDB4ZTAsMHgyNCwweDg1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwKLTB4ZjUsMHg4MywweGVkLDB4ZjAsMHhhMywweGVjLDB4ZjAsMHg5MCwweGZiLDB4ZmMsMHhlMCwweGZmLDB4ZTQsMHhlZiwweDA0LDB4NTQsCi0weDA3LDB4ZmYsMHg5MCwweGZiLDB4ZmMsMHhmMCwweDkwLDB4ZmIsMHhmZCwweGUwLDB4MDQsMHhmMCwweDEyLDB4MzEsMHg5MywweDkwLAotMHhmYiwweGZlLDB4ZTAsMHg3MCwweDA4LDB4ZTQsMHhmZSwweGZmLDB4N2MsMHgwZiwweDEyLDB4MzEsMHg5YSwweDgwLDB4MjcsMHg5MCwKLTB4ZmIsMHhmZiwweGUwLDB4MDQsMHhmMCwweDU0LDB4M2YsMHg3MCwweDFkLDB4OTAsMHhmYiwweGZmLDB4ZTAsMHg0NCwweGZlLDB4N2QsCi0weDAwLDB4ZmMsMHg5MCwweGZiLDB4ZmMsMHhlMCwweDI1LDB4ZTAsMHgyNCwweDg1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LAotMHg4MywweGVkLDB4ZjAsMHhhMywweGVjLDB4ZjAsMHhlNSwweDgxLDB4MjQsMHhmYiwweGY1LDB4ODEsMHgyMiwweDc4LDB4ODUsMHg3NiwKLTB4MDAsMHg3OCwweDg2LDB4NzYsMHgwMCwweDc0LDB4MDEsMHg5MCwweGZiLDB4ZmUsMHhmMCwweDEyLDB4MzAsMHg4NSwweDkwLDB4ZmIsCi0weGZkLDB4ZTAsMHg2MCwweDU5LDB4N2MsMHgwYSwweDEyLDB4MzAsMHhmYSwweDkwLDB4ZmIsMHhmYiwweGUwLDB4MjUsMHhlMCwweDI0LAotMHg4NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYywweDkwLDB4ZmIsMHhmYiwKLTB4ZTAsMHgyNSwweGUwLDB4MjQsMHg4NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGEzLDB4ZjAsCi0weDkwLDB4ZmIsMHhmYiwweGUwLDB4ZmYsMHhlNCwweGVmLDB4MDQsMHg1NCwweDA3LDB4ZmYsMHg5MCwweGZiLDB4ZmIsMHhmMCwweDkwLAotMHhmYiwweGZkLDB4ZTAsMHgxNCwweGYwLDB4NzgsMHg4MywweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHgxMiwweDMxLDB4OTMsMHhiMiwKLTB4YjMsMHg3OCwweDgzLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDEyLDB4MDgsMHhlNSwweDgwLDB4YTEsMHgxMiwweDMxLDB4ZTcsCi0weDc4LDB4ODUsMHgwNiwweGI2LDB4MDAsMHgxMSwweDc4LDB4ODUsMHg3NiwweDAwLDB4NzgsMHg4NiwweGU2LDB4ZjQsMHgwNCwweDA0LAotMHhhMiwweGUwLDB4OTIsMHhiNCwweDc4LDB4ODYsMHhmNiwweDgwLDB4ODUsMHhlNCwweDkwLDB4ZmIsMHhmZSwweGYwLDB4OTAsMHhmYiwKLTB4ZmQsMHhlMCwweDdkLDB4MDAsMHhmYywweGVkLDB4NDQsMHhjZiwweGZkLDB4MTIsMHgxYywweDkzLDB4MTIsMHgzMSwweDA4LDB4MjIsCi0weDEyLDB4MzAsMHg4NSwweGU1LDB4NmEsMHg2NCwweDQ5LDB4NDUsMHg2OSwweDYwLDB4MTUsMHg5MCwweGZmLDB4ODMsMHhlMCwweDU0LAotMHgwZiwweDdkLDB4MDAsMHhkMywweDk1LDB4NmEsMHhlZCwweDk1LDB4NjksMHg1MCwweDA1LDB4MTIsMHgyZSwweGNlLDB4ODAsMHgwMywKLTB4MTIsMHgyZiwweDllLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHhlNSwweDZhLDB4NjQsMHg0OSwweDQ1LDB4NjksCi0weDYwLDB4MDUsMHgxMiwweDJmLDB4ZDgsMHg4MCwweDBlLDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg5MCwweGZmLAotMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg4YywweDU0LDB4ZWMsMHg1NCwKLTB4ZjAsMHhiNCwweDEwLDB4MTUsMHg3NSwweDY0LDB4M2QsMHg3NSwweDYzLDB4ZmQsMHg3NSwweDYyLDB4MDEsMHhlNSwweDY0LDB4MjQsCi0weDAzLDB4ZjUsMHg2NCwweGU1LDB4NjMsMHgzNCwweDAwLDB4ZjUsMHg2MywweGU0LDB4ZjUsMHg1NywweGY1LDB4NTYsMHhlNSwweDU2LAotMHhjMywweDk0LDB4MDEsMHg1MCwweDI3LDB4ZTUsMHg1NCwweDU0LDB4MGYsMHhmYywweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwKLTB4MTIsMHgwZSwweDgyLDB4OGMsMHg1NSwweGVjLDB4NjAsMHgwMiwweDgwLDB4MTIsMHgwNSwweDY0LDB4ZTUsMHg2NCwweDcwLDB4MDIsCi0weDA1LDB4NjMsMHgwNSwweDU3LDB4ZTUsMHg1NywweDcwLDB4MDIsMHgwNSwweDU2LDB4ODAsMHhkMiwweGU1LDB4NTQsMHg1NCwweDBmLAotMHgyNCwweDk3LDB4ZjgsMHhjNiwweDU0LDB4ZmUsMHhmNiwweGU1LDB4NTQsMHg1NCwweDBmLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxMiwKLTB4MTIsMHgzMSwweDlhLDB4ZTUsMHg1NSwweDE0LDB4NzAsMHgwOSwweDdkLDB4MDAsMHg3YywweDA5LDB4MTIsMHgyNCwweGIxLDB4ODAsCi0weDA3LDB4YWQsMHg1NywweDdjLDB4MDAsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDkwLAotMHhmZiwweGZjLDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweGZmLDB4MDAsMHhlMCwweDMwLDB4ZTcsMHgxMywweDkwLDB4ZmYsMHg4MywKLTB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg0MywweDY3LDB4ODAsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MTEsCi0weDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsMHgwOCwweGYwLDB4NTMsMHg2NywweDdmLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg1NCwweGZlLAotMHhmMCwweDkwLDB4ZmYsMHg4MSwweGUwLDB4NDQsMHg4MCwweGYwLDB4MTIsMHgyNSwweDY0LDB4OTAsMHhmZiwweGZlLDB4ZTAsMHg0NCwKLTB4MDUsMHhmMCwweDkwLDB4ZmYsMHhmYywweGUwLDB4NTQsMHhmZCwweGYwLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsCi0weDdjLDB4MDEsMHgxMiwweDMyLDB4NDgsMHg3OCwweGE3LDB4ZTYsMHg0NCwweDAyLDB4ZjYsMHg3NCwweGZlLDB4ZmMsMHgwNCwweGZkLAotMHgxMiwweDFjLDB4ZmUsMHg5MCwweGZmLDB4NmEsMHhlMCwweDMwLDB4ZTcsMHgwMiwweDgwLDB4ZjcsMHhlNCwweGY1LDB4NGUsMHg3NSwKLTB4NGQsMHgxMCwweGFjLDB4NGUsMHhhZCwweDRkLDB4ZTUsMHg0ZSwweDE1LDB4NGUsMHg3MCwweDAyLDB4MTUsMHg0ZCwweGVjLDB4NGQsCi0weDYwLDB4MDIsMHg4MCwweGVlLDB4NDMsMHg4NywweDAxLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3YywweDAyLAotMHgxMiwweDMxLDB4MTQsMHg3OCwweGE3LDB4ZTYsMHg1NCwweGZkLDB4ZjYsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwKLTB4NzgsMHhhNywweGU2LDB4MzAsMHhlMCwweDJjLDB4NzgsMHhhNywweGU2LDB4MzAsMHhlMSwweDI2LDB4NzgsMHhhNywweGU2LDB4ZmMsCi0weGY1LDB4ODMsMHgxOCwweGU2LDB4NDQsMHhmMCwweGZkLDB4MTIsMHgxYywweDkzLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg0NCwweDIwLAotMHhmMCwweDdjLDB4MDIsMHgxMiwweDMyLDB4NDgsMHg3OCwweGE3LDB4ZTYsMHg1NCwweGZkLDB4ZjYsMHg3NCwweDFhLDB4OTAsMHhmZiwKLTB4ZmUsMHhmMCwweDc4LDB4YTcsMHhlNiwweGZjLDB4ZjUsMHg4MywweDE4LDB4ZTYsMHg0NCwweGYxLDB4ZmQsMHgxMiwweDFjLDB4OTMsCi0weDEyLDB4MzEsMHgwOCwweDIyLDB4NzUsMHg2NywweDAwLDB4NzUsMHg2OCwweDAwLDB4ZTQsMHhmNSwweDY2LDB4ZjUsMHg2NSwweGU0LAotMHhmNSwweDY5LDB4NzUsMHg2YSwweDQ5LDB4NzQsMHg4NCwweDkwLDB4ZmYsMHg4MiwweGYwLDB4NzQsMHg4NCwweDkwLDB4ZmYsMHg4MCwKLTB4ZjAsMHg3NCwweDgwLDB4OTAsMHhmZiwweDY4LDB4ZjAsMHg3NCwweDgwLDB4OTAsMHhmZiwweDZhLDB4ZjAsMHhhZCwweDQ2LDB4YWYsCi0weDQ1LDB4N2UsMHgwMCwweGVlLDB4MjQsMHhmYywweDUwLDB4MDMsMHgwMiwweDIxLDB4NmEsMHhlNCwweGVlLDB4NzUsMHhmMCwweDA3LAotMHhhNCwweDI0LDB4M2YsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlNCwweGVmLDB4NTQsMHg4MCwKLTB4ZmQsMHhlNCwweGVmLDB4NTQsMHgwZiwweDE0LDB4ZmYsMHhlZCwweDYwLDB4MzgsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsCi0weDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweDc0LDB4OTAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLAotMHgwOCwweGE0LDB4MjQsMHg0YSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhlZiwKLTB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsCi0weDgwLDB4MzQsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LAotMHg4MywweDc0LDB4OTAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwKLTB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsCi0weDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDBlLDB4MDIsMHgyMCwweGQzLDB4OGQsMHg0NiwweDhlLDB4NDQsMHg4ZiwweDQ1LAotMHg3NCwweDdmLDB4OTAsMHhmZiwweGZkLDB4ZjAsMHg3NCwweDkwLDB4OTAsMHhmZiwweGZjLDB4ZjAsMHg5MCwweGZjLDB4MTksMHhlMCwKLTB4MzAsMHhlNiwweDA3LDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHgyMiwweDkwLDB4ZmMsMHgwZCwweGUwLDB4MTQsCi0weDcwLDB4MDQsMHg5MCwweGZjLDB4MGMsMHhlMCwweDcwLDB4MzksMHg5MCwweGZjLDB4MDAsMHg3OSwweDA2LDB4N2EsMHgzNSwweDdiLAotMHgxMiwweDc4LDB4MDEsMHgxMiwweDAzLDB4ZjUsMHg3ZiwweDAwLDB4ZWYsMHgzMywweDQwLDB4MTUsMHhlZiwweDkwLDB4MzUsMHg0ZCwKLTB4OTMsMHhmYywweGVmLDB4MjQsMHg4MCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDBmLDB4ODAsCi0weGU3LDB4OGYsMHg1OSwweDkwLDB4ZmMsMHgyYiwweDc5LDB4MTgsMHg3YSwweDM1LDB4N2IsMHgzNSwweDc4LDB4MDEsMHgxMiwweDAzLAotMHhmNSwweGU0LDB4OTAsMHhmZiwweGZmLDB4ZjAsMHg3NCwweDUxLDB4OTAsMHhmZiwweGZhLDB4ZjAsMHg3NCwweDA0LDB4OTAsMHhmZiwKLTB4ZmIsMHhmMCwweDc0LDB4NTMsMHg5MCwweGZmLDB4ZjgsMHhmMCwweDc0LDB4NTEsMHg5MCwweGZmLDB4ZjksMHhmMCwweDc0LDB4NTUsCi0weDkwLDB4ZmYsMHhmNywweGYwLDB4NzQsMHg5MywweDkwLDB4ZmYsMHhmNiwweGYwLDB4NzQsMHgzMiwweDkwLDB4ZmYsMHhmNSwweGYwLAotMHg3NSwweDY0LDB4M2QsMHg3NSwweDYzLDB4ZmQsMHg3NSwweDYyLDB4MDEsMHhlNCwweDkwLDB4ZmYsMHg4MywweGYwLDB4NzQsMHg4MCwKLTB4OTAsMHhmZiwweDgxLDB4ZjAsMHg3NSwweDU4LDB4MDQsMHhlNSwweDU4LDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDNmLDB4ZjUsCi0weDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4NzgsMHg4OSwweGY2LDB4ZmMsMHg1NCwweDBmLDB4MTQsMHhmYywweDc4LAotMHg4OSwweGVjLDB4ZjYsMHhlNSwweDU4LDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywKLTB4ZjUsMHg4MywweGUwLDB4NzgsMHg4YywweDc2LDB4ZjgsMHgwOCwweDc2LDB4MDAsMHhmYywweDc4LDB4ODksMHhlNiwweDc1LDB4ZjAsCi0weDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg4OSwweGU2LAotMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwKLTB4OGMsMHhlNiwweGZmLDB4MDgsMHhlNiwweDdlLDB4MDMsMHhjZiwweGMzLDB4MTMsMHhjZiwweDEzLDB4ZGUsMHhmOSwweGZlLDB4NzgsCi0weDg5LDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDksMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVlLAotMHhmMCwweDc4LDB4ODksMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0YSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwKLTB4ODMsMHg3NCwweDgwLDB4ZjAsMHg3OCwweDhhLDB4ZWMsMHhmNiwweDdkLDB4MDAsMHg3OCwweDhkLDB4ZTYsMHgyYywweGY2LDB4MTgsCi0weGU2LDB4M2QsMHhmNiwweDc4LDB4OGMsMHhlNiwweGZkLDB4MDgsMHhlNiwweDdjLDB4MDMsMHhjZCwweGMzLDB4MTMsMHhjZCwweDEzLAotMHhkYywweGY5LDB4ZmMsMHg3OCwweDg5LDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGQsMHhmNSwweDgyLDB4ZTQsMHgzNCwKLTB4ZmYsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4ODksMHhlNiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZSwweGY1LDB4ODIsCi0weGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg4YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHg3OCwweDg5LAotMHhlNiwweGZmLDB4N2UsMHgwMCwweGVlLDB4MjQsMHhmYywweDUwLDB4MDMsMHgwMiwweDI0LDB4NmIsMHhlNCwweGVlLDB4NzUsMHhmMCwKLTB4MDcsMHhhNCwweDI0LDB4M2YsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlNCwweGVmLDB4NTQsCi0weDgwLDB4ZmEsMHhlNCwweGVmLDB4NTQsMHgwZiwweDE0LDB4ZmYsMHhlNCwweGVlLDB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDQxLAotMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4NzgsMHg4YSwweGY2LDB4ZWUsMHg3NSwweGYwLDB4ODAsMHhhNCwKLTB4MjQsMHgwOCwweGY4LDB4ZTUsMHhmMCwweDM0LDB4ZjgsMHhmOSwweGU4LDB4ZmMsMHhlOSwweGZkLDB4OGEsMHg1OSwweGVhLDB4NzAsCi0weDAzLDB4MDIsMHgyMywweGQ4LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LAotMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg4YSwweGU2LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwKLTB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHhlZCwweGZiLDB4ZWMsMHg3YSwweDAzLDB4Y2IsCi0weGMzLDB4MTMsMHhjYiwweDEzLDB4ZGEsMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OSwweGY1LAotMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4NzgsMHg4YSwweGU2LDB4N2IsMHgwMCwweGZhLDB4ZWMsMHgyYSwKLTB4ZmMsMHhlZCwweDNiLDB4ZmQsMHhmYiwweGVjLDB4N2EsMHgwMywweGNiLDB4YzMsMHgxMywweGNiLDB4MTMsMHhkYSwweGY5LDB4ZmEsCi0weGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLAotMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywKLTB4NzQsMHg4MCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsCi0weGY1LDB4ODMsMHg3NCwweDgwLDB4ZjAsMHgwMiwweDI0LDB4NjcsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LAotMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3OCwweDhhLDB4ZTYsMHhmYSwweGU0LDB4ZWYsMHg3NSwKLTB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweGVkLDB4ZmIsCi0weGVjLDB4N2EsMHgwMywweGNiLDB4YzMsMHgxMywweGNiLDB4MTMsMHhkYSwweGY5LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LAotMHhhNCwweDI0LDB4MDksMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHg3OCwweDhhLDB4ZTYsMHg3YiwKLTB4MDAsMHhmYSwweGVjLDB4MmEsMHhmYywweGVkLDB4M2IsMHhmZCwweGZiLDB4ZWMsMHg3YSwweDAzLDB4Y2IsMHhjMywweDEzLDB4Y2IsCi0weDEzLDB4ZGEsMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZCwweGY1LDB4ODIsMHhlNCwweDM0LAotMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwYSwweGY1LDB4ODIsMHhlNCwKLTB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsCi0weGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4MGUsMHgwMiwweDIyLDB4ZjQsMHg4ZSwweDU4LDB4NzgsMHg4YywweGVkLAotMHhmNiwweDA4LDB4ZWMsMHhmNiwweDc4LDB4ODksMHhlZiwweGY2LDB4MTIsMHgyMCwweGE0LDB4MjIsMHg4YywweDI2LDB4ZWMsMHgzMCwKLTB4ZTcsMHgxOCwweGU1LDB4MjYsMHg1NCwweDBmLDB4MTQsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsCi0weDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGRmLDB4ZjAsMHg4MCwweDE2LDB4ZTUsMHgyNiwweDU0LDB4MGYsMHgxNCwweDc1LAotMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZGYsMHhmMCwKLTB4MjIsMHhlYywweDkwLDB4ZmQsMHgzZiwweGYwLDB4OGMsMHgyNCwweGVkLDB4MjQsMHgwMywweGY1LDB4MjUsMHg3ZCwweDAwLDB4ZDMsCi0weDk1LDB4NmMsMHhlZCwweDk1LDB4NmIsMHg0MCwweDAzLDB4ODUsMHg2YywweDI1LDB4ZTUsMHgyNSwweDI0LDB4YjcsMHg1MCwweDA5LAotMHg3NSwweDI1LDB4MDMsMHg3NCwweDAyLDB4OTAsMHhmZCwweDNmLDB4ZjAsMHhhYywweDI1LDB4MTIsMHgyZiwweGMzLDB4MjIsMHhlNCwKLTB4ZjUsMHg2NiwweGY1LDB4NjUsMHgxMiwweDI0LDB4ZTgsMHgyMiwweDkwLDB4ZmQsMHgzZCwweGUwLDB4NjUsMHg2ZCwweDYwLDB4MGUsCi0weDc0LDB4MDQsMHg5MCwweGZkLDB4M2YsMHhmMCwweGU0LDB4ZjUsMHg2NSwweDc1LDB4NjYsMHgwMywweDgwLDB4NDYsMHg3ZCwweDZkLAotMHhlNCwweGZlLDB4ZmYsMHg3OSwweDNkLDB4N2EsMHhmZCwweDdiLDB4MDEsMHg3NCwweDA1LDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwKLTB4ZTUsMHg2NiwweDI0LDB4MDMsMHhmNSwweDY2LDB4ZTUsMHg2NSwweDM0LDB4MDAsMHhmNSwweDY1LDB4ZTUsMHg2NiwweGQzLDB4OTUsCi0weDZjLDB4ZTUsMHg2NSwweDk1LDB4NmIsMHg0MCwweDA2LDB4ODUsMHg2YywweDY2LDB4ODUsMHg2YiwweDY1LDB4ZDMsMHhlNSwweDY2LAotMHg5NCwweDQ4LDB4ZTUsMHg2NSwweDk0LDB4MDAsMHg0MCwweDBjLDB4NzQsMHgwMiwweDkwLDB4ZmQsMHgzZiwweGYwLDB4ZTQsMHhmNSwKLTB4NjUsMHg3NSwweDY2LDB4MDMsMHhhYywweDY2LDB4MTIsMHgyZiwweGMzLDB4MjIsMHhlYywweDkwLDB4ZmQsMHgzZiwweGYwLDB4ZTQsCi0weGY1LDB4NjYsMHhmNSwweDY1LDB4OGMsMHgzMiwweGVjLDB4NjAsMHgwNSwweDEyLDB4MmYsMHhiNCwweDgwLDB4MDUsMHg3YywweDAwLAotMHgxMiwweDJmLDB4YzMsMHgyMiwweDkwLDB4ZmYsMHgwNCwweGUwLDB4ZjUsMHg0YSwweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmQsMHhhMywKLTB4ZTAsMHhlZCwweDdkLDB4MDAsMHhmYywweDdkLDB4MDAsMHhmYywweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmYsMHhhMywweGUwLDB4N2UsCi0weDAwLDB4ZmYsMHhlNCwweGZlLDB4ZWMsMHg0ZSwweGZjLDB4ZWQsMHg0ZiwweGZkLDB4YzMsMHhlYywweDk0LDB4NDgsMHhlZCwweDk0LAotMHgwMCwweDUwLDB4MjIsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZkLDB4YTMsMHhlMCwweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwKLTB4ZmMsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZmLDB4YTMsMHhlMCwweDdlLDB4MDAsMHhmZiwweGU0LDB4ZmUsMHhlYywweDRlLDB4ZmMsCi0weGVkLDB4NGYsMHhmZCwweDgwLDB4MDQsMHhlNCwweGZkLDB4N2MsMHg0OCwweDhjLDB4NmMsMHg4ZCwweDZiLDB4OTAsMHhmZiwweDAyLAotMHhlMCwweGZkLDB4YTMsMHhlMCwweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4OTAsMHhmZiwweDAyLDB4ZTAsMHhmZiwKLTB4YTMsMHhlMCwweDdlLDB4MDAsMHhmZiwweGU0LDB4ZmUsMHhlYywweDRlLDB4ZjUsMHg0YywweGVkLDB4NGYsMHhmNSwweDRiLDB4NzUsCi0weDY0LDB4M2QsMHg3NSwweDYzLDB4ZmQsMHg3NSwweDYyLDB4MDEsMHg3ZCwweDNkLDB4N2UsMHhmZCwweDdmLDB4MDEsMHg3OSwweDZkLAotMHhlNCwweGZhLDB4ZmIsMHg3NCwweDA1LDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweDc1LDB4NDksMHgwMCwweGU1LDB4NDksMHgyNCwKLTB4ZmUsMHg0MCwweDE5LDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLDB4ZTQsMHgxMiwweDAzLDB4MGYsMHgwNSwweDQ5LDB4MGQsCi0weGVkLDB4NzAsMHgwMSwweDBlLDB4OGQsMHg2NCwweDhlLDB4NjMsMHg4ZiwweDYyLDB4ODAsMHhlMSwweDc1LDB4NjQsMHgzZCwweDc1LAotMHg2MywweGZkLDB4NzUsMHg2MiwweDAxLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDYwLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwNiwKLTB4ZDMsMHg1MCwweDAzLDB4MDIsMHgyYywweDEyLDB4ZTUsMHg0YSwweDU0LDB4MGYsMHhmNSwweDQ5LDB4ZTUsMHg0YSwweDU0LDB4ODAsCi0weGEyLDB4ZTAsMHg5MiwweDAyLDB4OTAsMHhmZiwweDAxLDB4ZTAsMHgxMiwweDAxLDB4ODEsMHgwMCwweDBiLDB4MmMsMHgwZCwweDI2LAotMHg2NywweDI3LDB4ODUsMHgyYywweDBkLDB4MjgsMHg5MSwweDJjLDB4MGQsMHgyOSwweDc0LDB4MjksMHhhOCwweDJiLDB4MGYsMHgyYiwKLTB4MTIsMHgyYiwweDUyLDB4MmIsMHhiNiwweDJiLDB4ZTQsMHhlNSwweDY3LDB4MzAsMHhlNywweDBlLDB4ZTUsMHg0YywweDQ1LDB4NGIsCi0weDcwLDB4MDgsMHhlNSwweDZjLDB4NjQsMHgwMiwweDQ1LDB4NmIsMHg2MCwweDAzLDB4MDIsMHgyYywweDBmLDB4OTAsMHhmZiwweDAwLAotMHhlMCwweDU0LDB4MWYsMHhiNCwweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDI5LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwKLTB4MjcsMHg4MiwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwweDc0LDB4MDEsMHgxMiwweDAzLDB4MGYsMHg3OCwweGE3LDB4ZTYsCi0weDMwLDB4ZTAsMHgwYiwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwweDc0LDB4MDIsMHgxMiwweDAzLDB4MGYsMHg3YywweDAyLAotMHgxMiwweDJmLDB4YzMsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWIsMHhlNSwweDY3LDB4MjAsMHhlMSwKLTB4MDcsMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MjcsMHg4MiwweGU1LDB4NGEsMHgyNCwweGZlLDB4NTAsMHgwMywweDAyLDB4MjcsCi0weDgyLDB4N2MsMHgwMiwweDEyLDB4MmYsMHhjMywweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLAotMHgyNywweDgwLDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwZCwweGU1LDB4NGEsMHg2MCwweDA5LDB4ZTUsMHg0YSwweDY0LDB4ODAsMHg2MCwKLTB4MDMsMHgwMiwweDI3LDB4ODIsMHhhYywweDRhLDB4MTIsMHgzMCwweDRhLDB4NDAsMHgwMywweDAyLDB4MjcsMHg4MiwweGU1LDB4NDksCi0weDcwLDB4MjUsMHgzMCwweDAyLDB4MTEsMHg5MCwweGZmLDB4ODAsMHhlMCwweDU0LDB4MDgsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLAotMHg2MiwweDEyLDB4MDMsMHgwZiwweDgwLDB4MGYsMHg5MCwweGZmLDB4ODIsMHhlMCwweDU0LDB4MDgsMHhhZCwweDY0LDB4YWUsMHg2MywKLTB4YWYsMHg2MiwweDEyLDB4MDMsMHgwZiwweDgwLDB4M2QsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDFkLDB4ZTUsMHg0OSwweDc1LDB4ZjAsCi0weDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4MDgsMHhhZCwweDY0LAotMHhhZSwweDYzLDB4YWYsMHg2MiwweDEyLDB4MDMsMHgwZiwweDgwLDB4MWIsMHhlNSwweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwKLTB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwOCwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsCi0weDYyLDB4MTIsMHgwMywweDBmLDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLDB4MTIsMHgwMSwweGU2LDB4NjAsMHgwYiwweGFkLAotMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLDB4NzQsMHgwMSwweDEyLDB4MDMsMHgwZiwweDdjLDB4MDIsMHgxMiwweDJmLDB4YzMsMHgyMiwKLTB4ODAsMHgwMCwweDAyLDB4MmMsMHgwZiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MDYsMHhlNSwweDZjLDB4NDUsMHg2YiwweDYwLDB4MDMsCi0weDAyLDB4MmMsMHgwZiwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLAotMHgxYSwweGU1LDB4NGMsMHgxNCwweDQ1LDB4NGIsMHg3MCwweDA0LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI4LDB4OGUsMHg3OCwKLTB4YTcsMHhlNiwweDU0LDB4ZmUsMHhmNiwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsCi0weGQzLDB4NDAsMHgyYSwweGU1LDB4NjcsMHgyMCwweGUxLDB4MDgsMHhlNSwweDY3LDB4MjAsMHhlMCwweDAzLDB4MDIsMHgyOCwweDhlLAotMHhlNSwweDY3LDB4MzAsMHhlMCwweDA0LDB4ZTUsMHg0YSwweDcwLDB4MGIsMHhlNSwweDY3LDB4MzAsMHhlMSwweDA5LDB4ZTUsMHg0YSwKLTB4MjQsMHhmZSwweDUwLDB4MDMsMHgwMiwweDI4LDB4OGUsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHhiNCwweDAyLDB4MDIsCi0weDgwLDB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwweDI4LDB4OGMsMHhlNSwweDRjLDB4NDUsMHg0YiwweDYwLDB4MDMsMHgwMiwweDI4LAotMHg4ZSwweGFjLDB4NGEsMHgxMiwweDMwLDB4NGEsMHg0MCwweDAzLDB4MDIsMHgyOCwweDhlLDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwNywKLTB4ZTUsMHg2NywweDIwLDB4ZTAsMHgwMiwweDgwLDB4NzcsMHhlNSwweDY3LDB4MzAsMHhlMCwweDA2LDB4ZTUsMHg0OSwweDYwLDB4MDIsCi0weDgwLDB4NmMsMHhlNSwweDQ5LDB4NzAsMHgwZiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NTQsMHhmNywweGYwLDB4OTAsMHhmZiwweDgwLAotMHhlMCwweDU0LDB4ZjcsMHhmMCwweDIyLDB4ZTUsMHg0OSwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDksMHg3ZCwKLTB4MDEsMHg3YywweDAzLDB4MTIsMHgwZiwweDBiLDB4ODAsMHgxMSwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDksCi0weDdkLDB4MDEsMHg3YywweDA0LDB4MTIsMHgwZiwweDBiLDB4ODAsMHgwMCwweDE1LDB4NDksMHgzMCwweDAyLDB4MTUsMHhlNSwweDQ5LAotMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhmNywKLTB4ZjAsMHg4MCwweDEzLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsCi0weGY1LDB4ODMsMHhlMCwweDU0LDB4ZjcsMHhmMCwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweDgwLDB4MDAsMHgwMiwweDJjLAotMHgwZiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MDYsMHhlNSwweDZjLDB4NDUsMHg2YiwweDYwLDB4MDMsMHgwMiwweDJjLDB4MGYsMHg5MCwKLTB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWEsMHhlNSwweDRjLDB4MTQsCi0weDQ1LDB4NGIsMHg3MCwweDA0LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI5LDB4NzEsMHg3OCwweGE3LDB4ZTYsMHg0NCwweDAxLAotMHhmNiwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MjksMHhlNSwKLTB4NjcsMHgyMCwweGUxLDB4MDgsMHhlNSwweDY3LDB4MjAsMHhlMCwweDAzLDB4MDIsMHgyOSwweDcxLDB4ZTUsMHg2NywweDMwLDB4ZTAsCi0weDA0LDB4ZTUsMHg0OSwweDcwLDB4MGIsMHhlNSwweDY3LDB4MzAsMHhlMSwweDA4LDB4ZTUsMHg0OSwweDI0LDB4ZmUsMHg1MCwweDAyLAotMHg4MCwweDdmLDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg2ZiwKLTB4ZTUsMHg0YywweDQ1LDB4NGIsMHg2MCwweDAyLDB4ODAsMHg2OSwweGFjLDB4NGEsMHgxMiwweDMwLDB4NGEsMHg0MCwweDAyLDB4ODAsCi0weDYwLDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwNywweGU1LDB4NjcsMHgyMCwweGUwLDB4MDIsMHg4MCwweDU0LDB4ZTUsMHg0OSwweDcwLAotMHgxNCwweDMwLDB4MDIsMHgwOSwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NDQsMHgwOCwweGYwLDB4ODAsMHgwNywweDkwLDB4ZmYsMHg4MiwKLTB4ZTAsMHg0NCwweDA4LDB4ZjAsMHgyMiwweGU1LDB4NjcsMHgzMCwweGUxLDB4MzMsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDE1LDB4ZTUsCi0weDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDQ0LAotMHgwOCwweGYwLDB4ODAsMHgxMywweGU1LDB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwKLTB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHg4MCwweDAyLDB4ODAsCi0weDAwLDB4MDIsMHgyYywweDBmLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxMiwweGU1LDB4NmMsMHg0NSwweDZiLDB4NzAsMHgwYywweGU1LAotMHg0YSwweDcwLDB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywweDBmLDB4ZTUsMHg0YywKLTB4OTAsMHhmZiwweGZmLDB4ZjAsMHg5MCwweGZmLDB4ZmYsMHhlMCwweDYwLDB4MDUsMHg0MywweDY3LDB4MDEsMHg4MCwweDAzLDB4NTMsCi0weDY3LDB4ZmUsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHhlNSwweDY3LDB4MzAsMHhlNywweDBlLDB4ZTUsMHg2YywweDQ1LAotMHg2YiwweDYwLDB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywweDBmLDB4YWQsMHg0YiwKLTB4ZTUsMHg0YywweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4YmQsMHgwMCwweDAyLDB4ODAsMHgwMywweDAyLDB4MmIsCi0weDBhLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgzMiwweGU1LDB4NGEsMHg3MCwweDA1LDB4ZTUsMHg0YywweGZjLAotMHg2MCwweDAzLDB4MDIsMHgyYiwweDBjLDB4NzUsMHg2NCwweDAwLDB4NzUsMHg2MywweGZjLDB4NzUsMHg2MiwweDAxLDB4ZDMsMHhlNSwKLTB4NmMsMHg5NCwweDEyLDB4ZTUsMHg2YiwweDk0LDB4MDAsMHg0MCwweDA2LDB4ZTQsMHhmZCwweDdjLDB4MTIsMHg4MCwweDA0LDB4YWMsCi0weDZjLDB4YWQsMHg2YiwweDhjLDB4NmEsMHg4ZCwweDY5LDB4MTIsMHgyZiwweGQ4LDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLAotMHhkMywweDQwLDB4NTksMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MmIsMHgwYywweGU1LDB4NGMsMHhmYywweDcwLDB4MjcsMHg3NSwKLTB4NjQsMHgxMiwweDc1LDB4NjMsMHhmYywweDc1LDB4NjIsMHgwMSwweGQzLDB4ZTUsMHg2YywweDk0LDB4MTksMHhlNSwweDZiLDB4OTQsCi0weDAwLDB4NDAsMHgwNiwweGU0LDB4ZmQsMHg3YywweDE5LDB4ODAsMHgwNCwweGFjLDB4NmMsMHhhZCwweDZiLDB4OGMsMHg2YSwweDhkLAotMHg2OSwweDEyLDB4MmYsMHhkOCwweDgwLDB4MjUsMHg3NSwweDY0LDB4MmIsMHg3NSwweDYzLDB4ZmMsMHg3NSwweDYyLDB4MDEsMHhkMywKLTB4ZTUsMHg2YywweDk0LDB4MzUsMHhlNSwweDZiLDB4OTQsMHgwMCwweDQwLDB4MDYsMHhlNCwweGZkLDB4N2MsMHgzNSwweDgwLDB4MDQsCi0weGFjLDB4NmMsMHhhZCwweDZiLDB4OGMsMHg2YSwweDhkLDB4NjksMHgxMiwweDJmLDB4ZDgsMHgyMiwweGI0LDB4MDMsMHgwMiwweDgwLAotMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLDB4MmIsMHgwYSwweGU1LDB4NGMsMHhmNSwweDQ5LDB4NzAsMHgwZiwweDkwLDB4ZmYsMHgwNCwKLTB4ZTAsMHhmZCwweGEzLDB4ZTAsMHg0ZCwweDYwLDB4MDMsMHgwMiwweDJiLDB4MGMsMHg4MCwweDE4LDB4OTAsMHhmYywweDgyLDB4ZTAsCi0weGZkLDB4YTMsMHhlMCwweGZjLDB4OTAsMHhmZiwweDA1LDB4ZTAsMHg2YywweDcwLDB4MDcsMHg5MCwweGZmLDB4MDQsMHhlMCwweDZkLAotMHg2MCwweDAyLDB4ODAsMHg2OCwweGU0LDB4ZjUsMHg2YSwweGY1LDB4NjksMHg3ZiwweDAwLDB4ZTUsMHg0OSwweDE0LDB4YzUsMHg0OSwKLTB4NjAsMHgwZiwweGVmLDB4MjQsMHg4MCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTAsMHgyZiwweGZmLDB4ODAsCi0weGVhLDB4OGYsMHg0YSwweGU1LDB4NGEsMHgyNCwweDgwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwweDdkLAotMHgwMCwweGQzLDB4OTUsMHg2YywweGVkLDB4OTUsMHg2YiwweDQwLDB4MDYsMHhhYywweDZjLDB4YWQsMHg2YiwweDgwLDB4MGYsMHhlNSwKLTB4NGEsMHgyNCwweDgwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwweDdkLDB4MDAsMHhmYywweDhjLDB4NmEsCi0weDhkLDB4NjksMHhlNSwweDRhLDB4MjQsMHg4MCwweGZjLDB4ZTQsMHgzNCwweGZjLDB4ZmQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLAotMHg4ZCwweDY0LDB4OGUsMHg2MywweDhmLDB4NjIsMHgxMiwweDJmLDB4ZDgsMHgyMiwweDgwLDB4MDAsMHgwMiwweDJjLDB4MGYsMHgwMiwKLTB4MmMsMHgwZiwweGU1LDB4NjcsMHgzMCwweGU3LDB4MTksMHhlNSwweDZjLDB4MTQsMHg0NSwweDZiLDB4NzAsMHgxMiwweGU1LDB4NGEsCi0weDcwLDB4MGUsMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLAotMHgwMiwweDJjLDB4MGYsMHhlNSwweDY3LDB4MjAsMHhlMCwweDA4LDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwMywweDAyLDB4MmMsMHgwZiwKLTB4NzUsMHg2NCwweDY4LDB4ZTQsMHhmNSwweDYzLDB4ZjUsMHg2MiwweGU0LDB4ZjUsMHg2OSwweDA0LDB4ZjUsMHg2YSwweDEyLDB4MmYsCi0weGQ4LDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDI3LDB4ZTUsMHg2YywweDQ1LDB4NmIsMHg3MCwweDIxLDB4ZTUsMHg0YSwweDcwLAotMHgxZCwweGU1LDB4NGMsMHg2NCwweDAyLDB4NDUsMHg0YiwweDYwLDB4MGQsMHhlNSwweDRjLDB4MTQsMHg0NSwweDRiLDB4NjAsMHgwNiwKLTB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA4LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwMywweDAyLDB4MmMsCi0weDBmLDB4ZTUsMHg2NywweDIwLDB4ZTAsMHgwOCwweGU1LDB4NjcsMHgyMCwweGUxLDB4MDMsMHgwMiwweDJjLDB4MGYsMHg4NSwweDRjLAotMHg2OCwweGU1LDB4NjgsMHg3MCwweDA4LDB4NDMsMHg2NywweDAxLDB4NTMsMHg2NywweGZkLDB4ODAsMHgxMywweGU1LDB4NjgsMHg2NCwKLTB4MDIsMHg2MCwweDA3LDB4ZTUsMHg2OCwweDE0LDB4NjAsMHgwMiwweDgwLDB4NjUsMHg1MywweDY3LDB4ZmUsMHg0MywweDY3LDB4MDIsCi0weDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweGU1LDB4NjcsMHgzMCwweGU3LDB4MWEsMHhlNSwweDZjLDB4MTQsMHg0NSwweDZiLAotMHg3MCwweDEzLDB4ZTUsMHg0YSwweDcwLDB4MGYsMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDksMHg5MCwweGZmLDB4MDAsMHhlMCwKLTB4NTQsMHgxZiwweDE0LDB4NjAsMHgwMiwweDgwLDB4MzgsMHhlNSwweDY3LDB4MjAsMHhlMSwweDAyLDB4ODAsMHgzMSwweDdjLDB4MDEsCi0weDEyLDB4MmYsMHhjMywweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxNSwweGU1LDB4NmMsMHg0NSwweDZiLDB4NzAsMHgwZiwweGU1LAotMHg0YywweDQ1LDB4NGIsMHg3MCwweDA5LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4MTQsMHg2MCwweDAyLDB4ODAsMHgwZiwKLTB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwMiwweDgwLDB4MDgsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHg4MCwweDAwLDB4MDIsCi0weDJlLDB4Y2EsMHhiNCwweDQwLDB4MDIsMHg4MCwweDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsMHgyZSwweGMwLDB4OTAsMHhmZiwweDAxLAotMHhlMCwweDkwLDB4ZmQsMHgzZCwweGYwLDB4ZTUsMHg0YSwweDkwLDB4ZmQsMHgzZSwweGYwLDB4ZTQsMHg5MCwweGZkLDB4M2YsMHhmMCwKLTB4ZTUsMHg2NCwweDI0LDB4MDMsMHhmNSwweDY0LDB4ZTUsMHg2MywweDM0LDB4MDAsMHhmNSwweDYzLDB4YWQsMHg0YiwweGU1LDB4NGMsCi0weDg1LDB4NjQsMHg4MiwweDg1LDB4NjMsMHg4MywweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwweGZmLDB4MDEsMHhlMCwweDEyLAotMHgwMSwweGI3LDB4MmMsMHg3ZCwweDAxLDB4MmMsMHhhMywweDAyLDB4MmMsMHhjZCwweDAzLDB4MmMsMHhmNywweDA0LDB4MmQsMHg0NSwKLTB4MDUsMHgyZCwweDgyLDB4MDYsMHgyZCwweGE4LDB4MDcsMHgyZCwweGNlLDB4MDgsMHgyZCwweGY0LDB4MDksMHgyZSwweDFhLDB4MGIsCi0weDJlLDB4NDAsMHgwYywweDJlLDB4NGYsMHg4MCwweDJlLDB4NGYsMHg4MSwweDAwLDB4MDAsMHgyZSwweGFkLDB4ZTUsMHg2NywweDIwLAotMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsMHg0YSwweDIyLDB4N2QsMHhiNywweDdlLDB4MzQsMHg3ZiwweDAyLDB4NzksMHg0MCwKLTB4N2EsMHhmZCwweDdiLDB4MDEsMHg3NCwweDA4LDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweDdkLDB4MDgsMHg3YywweDAwLDB4MTIsCi0weDI0LDB4YjEsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MDYsMHg3YywweDA1LDB4MTIsMHgyNSwweDRhLDB4MjIsMHhlNSwweDRhLAotMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywKLTB4MTAsMHgxMiwweDMxLDB4OWEsMHgyMiwweDdkLDB4MDAsMHg3YywweDA3LDB4MTIsMHgyNCwweGIxLDB4MjIsMHhlNSwweDY3LDB4MjAsCi0weGU3LDB4MDYsMHg3YywweDA1LDB4MTIsMHgyNSwweDRhLDB4MjIsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LAotMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDExLDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3ZCwKLTB4MDAsMHg3YywweDA3LDB4MTIsMHgyNCwweGIxLDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsCi0weDRhLDB4MjIsMHhlNSwweDRhLDB4YjQsMHgwNSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLAotMHg3YywweDBhLDB4MTIsMHgzMSwweDlhLDB4MjIsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwKLTB4MDQsMHhmZSwweDdjLDB4MDgsMHgxMiwweDMxLDB4OWEsMHgyMiwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsCi0weDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxMywweDEyLDB4MzEsMHg5YSwweDIyLDB4N2QsMHgwMCwweDdjLAotMHgwNywweDEyLDB4MjQsMHhiMSwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgzNCwweGQzLDB4ZTUsMHg2YywweDk0LDB4NDgsMHhlNSwKLTB4NmIsMHg5NCwweDAwLDB4NTAsMHgwNiwweGU1LDB4NmMsMHg0NSwweDZiLDB4NzAsMHgwNiwweDdjLDB4MDIsMHgxMiwweDI1LDB4NGEsCi0weDIyLDB4ZTUsMHg0YSwweGI0LDB4MDEsMHgwMywweGIzLDB4NDAsMHgwYiwweGMzLDB4YjQsMHgwMywweDAwLDB4NDAsMHgwOSwweGI0LAotMHgwNiwweDAwLDB4NTAsMHgwNCwweDEyLDB4MzAsMHg3MCwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLDB4MTIsMHgyNCwKLTB4ZTgsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsCi0weDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE2LDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3YywweDA3LAotMHgxMiwweDI1LDB4NGEsMHgyMiwweDEyLDB4MjQsMHhlOCwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxZCwweGU1LDB4NGEsMHhiNCwKLTB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTksCi0weDEyLDB4MzEsMHg5YSwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLDB4MTIsMHgyNCwweGU4LDB4MjIsMHhlNSwweDY3LAotMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwKLTB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE3LDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsCi0weDEyLDB4MjQsMHhlOCwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxZCwweGU1LDB4NGEsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLAotMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTgsMHgxMiwweDMxLDB4OWEsMHgyMiwKLTB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLDB4MTIsMHgyNCwweGU4LDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDFkLDB4ZTUsCi0weDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLAotMHg3YywweDE1LDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsMHgxMiwweDI0LDB4ZTgsMHgyMiwKLTB4ZTUsMHg2NywweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDcsMHgxMiwweDI1LDB4NGEsMHgyMiwweDEyLDB4MjQsMHhlOCwweDIyLDB4ZTUsCi0weDY3LDB4MzAsMHhlNywweDIwLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NzAsMHgxMCwweDkwLDB4ZmYsMHgwMSwweGUwLAotMHhiNCwweDgwLDB4MDUsMHgxMiwweDI0LDB4ZGYsMHg4MCwweDAzLDB4MTIsMHgyNCwweGU4LDB4MjIsMHg3ZCwweDAwLDB4N2MsMHgwNSwKLTB4MTIsMHgyNCwweGIxLDB4MjIsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsCi0weDRhLDB4MjIsMHhkMywweGU1LDB4NmMsMHg5NCwweDQ4LDB4ZTUsMHg2YiwweDk0LDB4MDAsMHg1MCwweDBiLDB4YzMsMHhlNSwweDZjLAotMHg5NCwweDA3LDB4ZTUsMHg2YiwweDk0LDB4MDAsMHg1MCwweDA2LDB4N2MsMHgwMywweDEyLDB4MjUsMHg0YSwweDIyLDB4ZTUsMHg0YSwKLTB4YjQsMHgwNSwweDA0LDB4MTIsMHgzMCwweDcwLDB4MjIsMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsMHhlNSwweDY3LDB4MzAsCi0weGU3LDB4MDgsMHg3ZCwweDAwLDB4N2MsMHgwNSwweDEyLDB4MjQsMHhiMSwweDIyLDB4N2MsMHgwNSwweDEyLDB4MjUsMHg0YSwweDIyLAotMHhiNCwweDIwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLDB4ODAsMHgwMCwweDEyLDB4MmYsMHg5ZSwweDIyLDB4NzUsMHg0MywKLTB4MDAsMHg5MCwweGZmLDB4ODMsMHhlMCwweDU0LDB4MGYsMHhkMywweDk1LDB4NDMsMHg0MCwweDI0LDB4ZTUsMHg0MywweDI0LDB4ZjAsCi0weGY1LDB4ODIsMHhlNCwweDM0LDB4ZmUsMHhmNSwweDgzLDB4ZTAsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLDB4NjIsMHgxMiwweDAzLAotMHgwZiwweDA1LDB4NDMsMHgwZCwweGVkLDB4NzAsMHgwMSwweDBlLDB4OGQsMHg2NCwweDhlLDB4NjMsMHg4ZiwweDYyLDB4ODAsMHhkMSwKLTB4ZTUsMHg0MywweDdkLDB4MDAsMHhmYywweGMzLDB4ZTUsMHg2YSwweDljLDB4ZjUsMHg2YSwweGU1LDB4NjksMHg5ZCwweGY1LDB4NjksCi0weGU1LDB4NmEsMHg0NSwweDY5LDB4NjAsMHgwNiwweGU0LDB4OTAsMHhmZiwweDgzLDB4ZjAsMHgyMiwweDkwLDB4ZmYsMHg4MiwweGUwLAotMHg0NCwweDA4LDB4ZjAsMHhlNCwweGY1LDB4NjksMHg3NSwweDZhLDB4NDksMHg5MCwweGZkLDB4M2QsMHhlMCwweGI0LDB4MDUsMHgwMiwKLTB4ODAsMHgwMywweGQzLDB4NDAsMHg0MCwweDkwLDB4ZmQsMHgzZSwweGUwLDB4ZjUsMHg0MywweGI0LDB4MDUsMHgwMiwweDgwLDB4MDMsCi0weGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwYiwweDEyLDB4MzEsMHg5YSwweDIyLDB4YjQsMHgwMSwweDAyLAotMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBhLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA5LDB4MTIsMHgzMSwweDlhLDB4MjIsMHhiNCwKLTB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0MywweDdmLDB4MDAsMHhmZSwweDdjLDB4MTQsCi0weDEyLDB4MzEsMHg5YSwweDIyLDB4MjIsMHhiNCwweDgwLDB4MDAsMHg0MCwweDIzLDB4YjQsMHg4MiwweDAwLDB4NTAsMHgxZSwweDdjLAotMHgzZCwweDdkLDB4ZmQsMHgxMiwweDE3LDB4ZDUsMHg3ZCwweDAwLDB4OGMsMHg2NiwweDhkLDB4NjUsMHg5MCwweGZkLDB4M2YsMHhlMCwKLTB4NjAsMHgwNSwweDEyLDB4MmYsMHg5ZSwweDgwLDB4MDUsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHgyMiwweDkwLDB4ZmYsCi0weDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg5MCwweGZmLDB4ODIsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDkwLDB4ZmYsMHg4MCwweGUwLAotMHg0NCwweDA4LDB4ZjAsMHgyMiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsMHgwOCwweGYwLDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg0NCwKLTB4MDgsMHhmMCwweDIyLDB4OGMsMHgyMywweDdkLDB4MDAsMHg4YywweDZhLDB4OGQsMHg2OSwweDc1LDB4NjQsMHgzZCwweDc1LDB4NjMsCi0weGZkLDB4NzUsMHg2MiwweDAxLDB4MTIsMHgyZiwweGQ4LDB4MjIsMHg5MCwweGZmLDB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweGU1LAotMHg2YSwweDY0LDB4NDksMHg0NSwweDY5LDB4NzAsMHgwMSwweDIyLDB4YzMsMHhlNSwweDZhLDB4OTQsMHgwOCwweGU1LDB4NjksMHg5NCwKLTB4MDAsMHg0MCwweDE1LDB4NzUsMHgyMSwweDA4LDB4ZTUsMHgyMSwweDdkLDB4MDAsMHhmYywweGMzLDB4ZTUsMHg2YSwweDljLDB4ZjUsCi0weDZhLDB4ZTUsMHg2OSwweDlkLDB4ZjUsMHg2OSwweDgwLDB4MDksMHg4NSwweDZhLDB4MjEsMHhlNCwweGY1LDB4NjksMHg3NSwweDZhLAotMHg0OSwweDc1LDB4MjIsMHgwMCwweGU1LDB4MjIsMHhjMywweDk1LDB4MjEsMHg1MCwweDI2LDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwKLTB4NjIsMHgxMiwweDAxLDB4ZTYsMHhmYywweGU1LDB4MjIsMHgyNCwweGY4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZSwweGY1LDB4ODMsCi0weGVjLDB4ZjAsMHgwNSwweDIyLDB4MGQsMHhlZCwweDcwLDB4MDEsMHgwZSwweDhkLDB4NjQsMHg4ZSwweDYzLDB4OGYsMHg2MiwweDgwLAotMHhkMywweGU1LDB4MjEsMHg1NCwweDdmLDB4OTAsMHhmZiwweDgxLDB4ZjAsMHgyMiwweDhjLDB4NDgsMHg3ZiwweDAwLDB4ZWYsMHgyNCwKLTB4ZmIsMHg0MCwweDE5LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHgzZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsCi0weGY1LDB4ODMsMHhlMCwweDY1LDB4NDgsMHg3MCwweDAyLDB4ZDMsMHgyMiwweDBmLDB4ODAsMHhlMiwweDhmLDB4NDcsMHhjMywweDIyLAotMHg4NSwweDZjLDB4NmEsMHg4NSwweDZiLDB4NjksMHg5MCwweGZmLDB4ODIsMHhlMCwweDU0LDB4ZjcsMHhmMCwweDkwLDB4ZmYsMHg4MywKLTB4ZTAsMHg1NCwweDdmLDB4ZjAsMHgyMiwweGMwLDB4MDAsMHhjMCwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDYsMHhjMCwweDA3LDB4ZTUsCi0weDcyLDB4MjQsMHgwOCwweGY4LDB4ODYsMHgwNiwweDUzLDB4MDYsMHg3ZiwweDdjLDB4ZmYsMHgxMiwweDMwLDB4ZmEsMHg3YywweDAwLAotMHg3ZCwweDAwLDB4ZTUsMHg3NSwweDYwLDB4NDYsMHhmZiwweDkwLDB4ZmUsMHg5ZCwweGUwLDB4NTQsMHg3ZiwweDZlLDB4NzAsMHgwZiwKLTB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmMsMHhhMywweDE1LDB4NzUsMHg4MCwweDA3LDB4YTMsCi0weGEzLDB4YTMsMHhkZiwweGU2LDB4ODAsMHgyNiwweGRmLDB4MDYsMHhkMCwweDgyLDB4ZDAsMHg4MywweDgwLDB4MWUsMHhlMCwweGY4LAotMHhhMywweGUwLDB4ZjksMHhhMywweGUwLDB4ZmEsMHhkMCwweDgyLDB4ZDAsMHg4MywweGU4LDB4ZjAsMHhhMywweGU5LDB4ZjAsMHhhMywKLTB4ZWEsMHhmMCwweGEzLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGEzLDB4YTMsMHg4MCwweGRhLDB4MTIsMHgzMSwweDkzLDB4ZDAsCi0weDA3LDB4ZDAsMHgwNiwweGQwLDB4MDIsMHhkMCwweDAxLDB4ZDAsMHgwMCwweDIyLDB4ODUsMHhhOCwweDc0LDB4NzUsMHhhOCwweDg4LAotMHhlYywweDcwLDB4MDIsMHg3YywweDNmLDB4OGMsMHg3MywweDIyLDB4ZTUsMHg3MiwweDI0LDB4MDgsMHhmOCwweDc2LDB4MDAsMHgxMiwKLTB4MzEsMHhlNywweDgwLDB4ZmIsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMCwweDA2LDB4YzAsMHgwNywweGFlLDB4MDQsCi0weDdjLDB4ZmYsMHgxMiwweDMwLDB4ZmEsMHhlNSwweDc1LDB4NjAsMHg0MiwweGZmLDB4OTAsMHhmZSwweDlkLDB4ZTAsMHg1NCwweDdmLAotMHg2ZSwweDcwLDB4MGIsMHhjMCwweDgzLDB4YzAsMHg4MiwweGEzLDB4YTMsMHhhMywweDE1LDB4NzUsMHg4MCwweDA3LDB4YTMsMHhhMywKLTB4YTMsMHhkZiwweGVhLDB4ODAsMHgyNiwweGRmLDB4MDYsMHhkMCwweDgyLDB4ZDAsMHg4MywweDgwLDB4ZDgsMHhlMCwweGY4LDB4YTMsCi0weGUwLDB4ZjksMHhhMywweGUwLDB4ZmEsMHhkMCwweDgyLDB4ZDAsMHg4MywweGU4LDB4ZjAsMHhhMywweGU5LDB4ZjAsMHhhMywweGVhLAotMHhmMCwweGEzLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGEzLDB4YTMsMHg4MCwweGRhLDB4NzgsMHgwOCwweDA4LDB4NzksMHgxOCwKLTB4MDksMHg3YywweDAxLDB4ZTYsMHg1NCwweDdmLDB4NmUsMHg3MCwweDA2LDB4NzYsMHgwMCwweDc3LDB4MDAsMHg4MCwweDA2LDB4MDgsCi0weDA5LDB4MGMsMHhiYywweDA4LDB4ZWUsMHgxMiwweDMxLDB4OTMsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDIsMHhkMCwweDAxLAotMHhkMCwweDAwLDB4MjIsMHg3NSwweDczLDB4MDAsMHg4NSwweDc0LDB4YTgsMHgyMiwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywKLTB4YzMsMHhlNSwweDc1LDB4MjQsMHhlOCwweDUwLDB4MDUsMHgxMiwweDMxLDB4ZTcsMHg4MCwweGY0LDB4ZWMsMHg2MCwweDMxLDB4OTAsCi0weDM0LDB4YjYsMHhlNCwweDkzLDB4YzMsMHg5YywweDQwLDB4MjgsMHhjMCwweDA0LDB4N2MsMHhmZiwweDEyLDB4MzAsMHhmYSwweGQwLAotMHgwNCwweDQzLDB4MDQsMHg4MCwweGU1LDB4NzUsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4OWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwKLTB4ZmUsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGVmLDB4YTMsMHhmMCwweGVlLDB4YTMsMHhmMCwweDA1LDB4NzUsMHgxMiwweDMxLDB4OTMsCi0weGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweDIyLDB4YzAsMHgwNCwweDdjLDB4MjAsMHhkMiwweDhjLDB4ZDIsMHg4ZCwweGQ1LAotMHgwNCwweGZkLDB4ZDAsMHgwNCwweDIyLDB4NzUsMHhhOCwweDAwLDB4NzUsMHg4OCwweDAwLDB4NzUsMHhiOCwweDAwLDB4NzUsMHhmMCwKLTB4MDAsMHg3NSwweGQwLDB4MDAsMHhlNCwweGY4LDB4OTAsMHgwMCwweDAwLDB4ZjYsMHgwOCwweGI4LDB4MDAsMHhmYiwweDAyLDB4MDAsCi0weDAwLDB4YzMsMHhlZCwweDk0LDB4MDIsMHg1MCwweDA0LDB4N2QsMHgwMywweDdjLDB4ZTgsMHhlYywweGY0LDB4ZmMsMHhlZCwweGY0LAotMHhmZCwweDBjLDB4YmMsMHgwMCwweDAxLDB4MGQsMHg4YywweDc5LDB4OGQsMHg3OCwweDIyLDB4YzMsMHhlYywweDk0LDB4YmMsMHhlZCwKLTB4OTQsMHgwMiwweDUwLDB4MDQsMHg3ZCwweDA3LDB4N2MsMHhkMCwweGVjLDB4ZjQsMHhmYywweGVkLDB4ZjQsMHhmZCwweDBjLDB4YmMsCi0weDAwLDB4MDEsMHgwZCwweDhjLDB4NzcsMHg4ZCwweDc2LDB4MjIsMHhlYywweDcwLDB4MDEsMHgyMiwweGMwLDB4MDAsMHhlNSwweDcyLAotMHgyNCwweDE4LDB4ZjgsMHhhNiwweDA0LDB4ZTUsMHg3MiwweDI0LDB4MDgsMHhmOCwweGM2LDB4NTQsMHg3ZiwweGY2LDB4ZTYsMHgzMCwKLTB4ZTcsMHgwMywweGQwLDB4MDAsMHgyMiwweDEyLDB4MzEsMHhlNywweDgwLDB4ZjQsMHhjMiwweDhjLDB4ODUsMHg3NiwweDhjLDB4ODUsCi0weDc3LDB4OGEsMHhkMiwweDhjLDB4YzAsMHhlMCwweGMwLDB4ZDAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweDAwLAotMHhjMCwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0LDB4YzAsMHgwNSwweGMwLDB4MDYsMHhjMCwweDA3LDB4MTIsMHgxYiwKLTB4MjgsMHhlNSwweDcyLDB4MjQsMHgwOCwweGY4LDB4ZTYsMHg2MCwweDI0LDB4ZTUsMHg3MiwweDI0LDB4MTAsMHhmOCwweGE2LDB4ODEsCi0weGU1LDB4NzIsMHg3NSwweGYwLDB4MjEsMHhhNCwweDI0LDB4OTUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweDc4LAotMHhhOCwweGU1LDB4ODEsMHgwNCwweGMzLDB4OTgsMHhmOSwweGU2LDB4ZjAsMHgwOCwweGEzLDB4ZDksMHhmYSwweDc0LDB4MDgsMHgyNSwKLTB4NzIsMHhmOCwweDA1LDB4NzIsMHgwOCwweGU2LDB4NTQsMHg4MCwweDcwLDB4MGMsMHhlNSwweDcyLDB4YjQsMHgwNywweGYzLDB4NzgsCi0weDA4LDB4NzUsMHg3MiwweDAwLDB4ODAsMHhlZiwweGU1LDB4NzIsMHgyNCwweDEwLDB4ZjgsMHg4NiwweDgxLDB4ZTUsMHg3MiwweDc1LAotMHhmMCwweDIxLDB4YTQsMHgyNCwweDk1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHg3OCwweGE4LDB4ZTUsMHg4MSwKLTB4MDQsMHhjMywweDk4LDB4ZjksMHhlMCwweGY2LDB4MDgsMHhhMywweGQ5LDB4ZmEsMHhkMCwweDA3LDB4ZDAsMHgwNiwweGQwLDB4MDUsCi0weGQwLDB4MDQsMHhkMCwweDAzLDB4ZDAsMHgwMiwweGQwLDB4MDEsMHhkMCwweDAwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLAotMHhkMCwweGQwLDB4ZDAsMHhlMCwweDMyLDB4YzAsMHhlMCwweGMwLDB4ZDAsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMiwKLTB4OGUsMHg4NSwweDc4LDB4OGQsMHg4NSwweDc5LDB4OGIsMHhkMiwweDhlLDB4NzgsMHgxOSwweDc5LDB4MDksMHg3YSwweDA3LDB4ZTcsCi0weDcwLDB4MDQsMHhhNiwweDAwLDB4ODAsMHgwYiwweGU2LDB4NjAsMHgwOCwweDE2LDB4ZTYsMHg3MCwweDA0LDB4ZTcsMHg0NCwweDgwLAotMHhmNywweDA4LDB4MDksMHhkYSwweGVhLDB4ZTUsMHg3MywweDYwLDB4MTMsMHgxNCwweGY1LDB4NzMsMHg3MCwweDBlLDB4ZTUsMHg3MiwKLTB4MjQsMHgwOCwweGY4LDB4NzYsMHgwMCwweDEyLDB4MzEsMHg5MywweGQyLDB4OGMsMHhkMiwweDhkLDB4ZDAsMHgwMiwweGQwLDB4MDEsCi0weGQwLDB4MDAsMHhkMCwweGQwLDB4ZDAsMHhlMCwweDMyLDB4NzUsMHg4MSwweGE3LDB4NzUsMHg5MCwweDAwLDB4NzUsMHg3OSwweDMwLAotMHg3NSwweDc4LDB4ZjgsMHg3NSwweDc3LDB4NjAsMHg3NSwweDc2LDB4ZjAsMHgxMiwweDA1LDB4M2MsMHgxMiwweDM0LDB4MGYsMHgxMiwKLTB4MTcsMHg4YiwweDEyLDB4MzQsMHgzOSwweDEyLDB4MzEsMHhmNSwweDgwLDB4ZTMsMHgyMiwweGMwLDB4MDAsMHg3YywweDAxLDB4ZWMsCi0weDI0LDB4MDgsMHhmOCwweGU2LDB4NjAsMHgwOSwweDBjLDB4YmMsMHgwOCwweGY1LDB4MTIsMHgzMSwweGU3LDB4ODAsMHhlZSwweGQwLAotMHgwMCwweDIyLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMCwweGMwLDB4MDYsMHhjMCwweDA3LDB4ZWQsMHgyNCwKLTB4MTAsMHhmOCwweDc2LDB4YjYsMHhlZCwweDc1LDB4ZjAsMHgyMSwweGE0LDB4MjQsMHg5NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsCi0weGY1LDB4ODMsMHhjMCwweDgyLDB4YzAsMHg4MywweGEzLDB4YTMsMHhlNCwweDc4LDB4MGQsMHhmMCwweGEzLDB4ZDgsMHhmYywweGVjLAotMHg1NCwweDdmLDB4NzUsMHhmMCwweDAyLDB4YTQsMHgyNCwweDgyLDB4ZjUsMHg4MiwweGU1LDB4ZjAsMHgzNCwweDM0LDB4ZjUsMHg4MywKLTB4ZTQsMHg5MywweGZlLDB4NzQsMHgwMSwweDkzLDB4ZjUsMHg4MiwweDhlLDB4ODMsMHhlNCwweDkzLDB4ZmUsMHg3NCwweDAxLDB4OTMsCi0weGZmLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhlZiwweGYwLDB4YTMsMHhlZSwweGYwLDB4ZWQsMHgyNCwweDA4LDB4ZjgsMHhlYywweDQ0LAotMHg4MCwweGY2LDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDAwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4MjIsMHg3NSwKLTB4NzIsMHgwMCwweDc1LDB4NzUsMHgwMCwweDdhLDB4MDgsMHg3OSwweDE4LDB4NzgsMHgwOCwweDc2LDB4MDAsMHg3NywweDAwLDB4MDgsCi0weDA5LDB4ZGEsMHhmOCwweGU0LDB4NzgsMHgwOCwweDc0LDB4ODAsMHg0NCwweDdmLDB4ZjYsMHg3NCwweDAxLDB4NDQsMHgxMCwweGY1LAotMHg4OSwweDc1LDB4YjgsMHgwOCwweGQyLDB4YWIsMHhkMiwweGE5LDB4MjIsMHg3NSwweDgxLDB4YTcsMHhkMiwweDhlLDB4ZDIsMHg4YywKLTB4ZDIsMHhhZiwweGU1LDB4NzUsMHg2MCwweDMyLDB4ZmYsMHg5MCwweGZlLDB4OWQsMHhlMCwweDU0LDB4ODAsMHg2MCwweDI0LDB4NzgsCi0weDA4LDB4NzksMHgwOCwweGUwLDB4NTQsMHg3ZiwweGZhLDB4N2IsMHgwMCwweGU2LDB4NTQsMHg3ZiwweGI1LDB4MDIsMHgwMiwweDdiLAotMHhmZiwweDA4LDB4ZDksMHhmNSwweGViLDB4NzAsMHgwYywweGVhLDB4ZjAsMHgxMiwweDMzLDB4OGIsMHhhZCwweDA0LDB4YWMsMHgwMiwKLTB4MTIsMHgzMywweGEyLDB4YTMsMHhhMywweGEzLDB4ZGYsMHhkMiwweDEyLDB4MzEsMHhlNywweDgwLDB4YzUsMHg3YywweDAxLDB4N2QsCi0weDAwLDB4MjIsMHgwNCwweGY1LDB4MDQsMHhlOSwweDA0LDB4ZWQsMHgwNCwweGUxLDB4MDQsMHhkZCwweDA0LDB4ZDksMHgwNCwweGU1LAotMHgwNCwweGYxLDB4MDQsMHg5ZCwweDA0LDB4YTEsMHgwNCwweGNkLDB4MDQsMHhkMSwweDA0LDB4OTksMHgwNCwweDk5LDB4MDQsMHg5OSwKLTB4MDQsMHhkNSwweDA0LDB4YjUsMHgwNCwweGFkLDB4MDQsMHhiMSwweDA0LDB4YTksMHgwNCwweGMxLDB4MDQsMHhiZCwweDA0LDB4YjksCi0weDA0LDB4YzUsMHgwNCwweGM5LDB4MDQsMHhhNSwweDE5LDB4MDEsMHgwMywweDAwLDB4MjIsMHgwMCwweDQ4LDB4MDIsMHgwMCwweDI0LAotMHgwZiwweDE4LDB4MGEsMHgxMCwweDY0LDB4MGQsMHg2OCwweDBjLDB4MDUsMHgwNiwweDAyLDB4MDMsMHgwMSwweDAxLDB4ODEsMHgwMSwKLTB4MDAsMHgwMCwweGU3LDB4MDAsMHhjMCwweDAwLDB4ODAsMHgwMCwweDYwLDB4MDAsMHg0MCwweDAwLDB4MzAsMHgwMCwweDE4LDB4MDAsCi0weDBjLDB4MDAsMHgwOCwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwMSwweDAwLDB4MDgsMHgxOCwweDM4LDB4MjgsMHgwNiwweDAyLAotMHgxMCwweDBhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg4MSwweDEwLDB4MGEsMHgwMiwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweGZiLDB4ZTgsMHhmYiwweGZhLDB4MTIsMHgwMSwweDEwLDB4MDEsMHhmZiwweDAwLDB4MDAsMHgwOCwweDUxLDB4MDQsCi0weDVmLDB4NTAsMHgxNiwweDAxLDB4MDEsMHgwMiwweDAwLDB4MDIsMHgwOSwweDAyLDB4MzUsMHgwMCwweDAxLDB4MDIsMHgwMCwweGUwLAotMHgwMCwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDUsMHhmZiwweDAwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHg4MSwweDAyLDB4NDAsMHgwMCwKLTB4MDAsMHgwNywweDA1LDB4MDEsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHg4MiwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsCi0weDA1LDB4MDIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHg4NSwweDAzLDB4MDIsMHgwMCwweDAxLDB4MDQsMHgwMywweDA5LAotMHgwNCwweDI0LDB4MDMsMHg1NCwweDAwLDB4NjUsMHgwMCwweDc4LDB4MDAsMHg2MSwweDAwLDB4NzMsMHgwMCwweDIwLDB4MDAsMHg0OSwKLTB4MDAsMHg2ZSwweDAwLDB4NzMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwLDB4NzUsMHgwMCwweDZkLDB4MDAsMHg2NSwweDAwLDB4NmUsCi0weDAwLDB4NzQsMHgwMCwweDczLDB4MDAsMHgyYSwweDAzLDB4NTQsMHgwMCwweDU1LDB4MDAsMHg1MywweDAwLDB4NDIsMHgwMCwweDM1LAotMHgwMCwweDMwLDB4MDAsMHgzNSwweDAwLDB4MzIsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg2OSwKLTB4MDAsMHg2MSwweDAwLDB4NmMsMHgwMCwweDIwLDB4MDAsMHg1MCwweDAwLDB4NmYsMHgwMCwweDcyLDB4MDAsMHg3NCwweDAwLDB4MjIsCi0weDAzLDB4NTQsMHgwMCwweDU1LDB4MDAsMHg1MywweDAwLDB4NDIsMHgwMCwweDM1LDB4MDAsMHgzMCwweDAwLDB4MzUsMHgwMCwweDMyLAotMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwKLTB4MDAsCi19OwotCi0jZW5kaWYgLyogaWZuZGVmIF9USV9GV181MDUyX0hfICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuYwppbmRleCBhMWM4YWVmLi5hMjZhNjI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC90aV91c2JfMzQxMF81MDUyLmMKQEAgLTg0LDExICs4NCw5IEBACiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxsaW51eC91c2IuaD4KICNpbmNsdWRlIDxsaW51eC91c2Ivc2VyaWFsLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KIAogI2luY2x1ZGUgInRpX3VzYl8zNDEwXzUwNTIuaCIKLSNpbmNsdWRlICJ0aV9md18zNDEwLmgiCQkvKiBmaXJtd2FyZSBpbWFnZSBmb3IgMzQxMCAqLwotI2luY2x1ZGUgInRpX2Z3XzUwNTIuaCIJCS8qIGZpcm13YXJlIGltYWdlIGZvciA1MDUyICovCi0KIAogLyogRGVmaW5lcyAqLwogCkBAIC0xOTQsOCArMTkyLDggQEAKIHN0YXRpYyBpbnQgdGlfd3JpdGVfYnl0ZShzdHJ1Y3QgdGlfZGV2aWNlICp0ZGV2LCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJX191OCBtYXNrLCBfX3U4IGJ5dGUpOwogCi1zdGF0aWMgaW50IHRpX2Rvd25sb2FkX2Zpcm13YXJlKHN0cnVjdCB0aV9kZXZpY2UgKnRkZXYsCi0JdW5zaWduZWQgY2hhciAqZmlybXdhcmUsIHVuc2lnbmVkIGludCBmaXJtd2FyZV9zaXplKTsKK3N0YXRpYyBpbnQgdGlfZG93bmxvYWRfZmlybXdhcmUoc3RydWN0IHRpX2RldmljZSAqdGRldiwgY2hhciAqZndfbmFtZSk7CisKIAogLyogY2lyY3VsYXIgYnVmZmVyICovCiBzdGF0aWMgc3RydWN0IGNpcmNfYnVmICp0aV9idWZfYWxsb2Modm9pZCk7CkBAIC0zMjAsNiArMzE4LDkgQEAKIE1PRFVMRV9WRVJTSU9OKFRJX0RSSVZFUl9WRVJTSU9OKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIAorTU9EVUxFX0ZJUk1XQVJFKCJ0aV8zNDEwLmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoInRpXzUwNTIuZnciKTsKKwogbW9kdWxlX3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CiBNT0RVTEVfUEFSTV9ERVNDKGRlYnVnLCAiRW5hYmxlIGRlYnVnZ2luZywgMD1ubywgMT15ZXMiKTsKIApAQCAtNDMxLDExICs0MzIsOSBAQAogCWlmIChkZXYtPmRlc2NyaXB0b3IuYk51bUNvbmZpZ3VyYXRpb25zID09IDEpIHsKIAogCQlpZiAodGRldi0+dGRfaXNfMzQxMCkKLQkJCXN0YXR1cyA9IHRpX2Rvd25sb2FkX2Zpcm13YXJlKHRkZXYsIHRpX2Z3XzM0MTAsCi0JCQkJc2l6ZW9mKHRpX2Z3XzM0MTApKTsKKwkJCXN0YXR1cyA9IHRpX2Rvd25sb2FkX2Zpcm13YXJlKHRkZXYsICJ0aV8zNDEwLmZ3Iik7CiAJCWVsc2UKLQkJCXN0YXR1cyA9IHRpX2Rvd25sb2FkX2Zpcm13YXJlKHRkZXYsIHRpX2Z3XzUwNTIsCi0JCQkJc2l6ZW9mKHRpX2Z3XzUwNTIpKTsKKwkJCXN0YXR1cyA9IHRpX2Rvd25sb2FkX2Zpcm13YXJlKHRkZXYsICJ0aV81MDUyLmZ3Iik7CiAJCWlmIChzdGF0dXMpCiAJCQlnb3RvIGZyZWVfdGRldjsKIApAQCAtMTY1OCw4ICsxNjU3LDkgQEAKIAogCiBzdGF0aWMgaW50IHRpX2Rvd25sb2FkX2Zpcm13YXJlKHN0cnVjdCB0aV9kZXZpY2UgKnRkZXYsCi0JdW5zaWduZWQgY2hhciAqZmlybXdhcmUsIHVuc2lnbmVkIGludCBmaXJtd2FyZV9zaXplKQorCQkJCWNoYXIgKmZ3X25hbWUpCiB7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAlpbnQgc3RhdHVzID0gMDsKIAlpbnQgYnVmZmVyX3NpemU7CiAJaW50IHBvczsKQEAgLTE2NzIsMTYgKzE2NzIsMjkgQEAKIAl1bnNpZ25lZCBpbnQgcGlwZSA9IHVzYl9zbmRidWxrcGlwZShkZXYsCiAJCXRkZXYtPnRkX3NlcmlhbC0+cG9ydFswXS0+YnVsa19vdXRfZW5kcG9pbnRBZGRyZXNzKTsKIAotCiAJYnVmZmVyX3NpemUgPSBUSV9GSVJNV0FSRV9CVUZfU0laRSArIHNpemVvZihzdHJ1Y3QgdGlfZmlybXdhcmVfaGVhZGVyKTsKKworCWlmIChyZXF1ZXN0X2Zpcm13YXJlKCZmdywgZndfbmFtZSwgJmRldi0+ZGV2KSkgeworCQlkZXZfZXJyKCZkZXYtPmRldiwgIiVzIC0gZmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgXCIlc1wiXG4iLAorCQkJX19mdW5jX18sIGZ3X25hbWUpOworCQlyZXR1cm4gLUVOT0VOVDsKKwl9CisJaWYgKGZ3LT5zaXplID4gYnVmZmVyX3NpemUpIHsKKwkJZGV2X2VycigmZGV2LT5kZXYsICIlcyAtIGZpcm13YXJlIFwiJXNcIiBpcyB0b28gbGFyZ2VcbiIsCisJCQlfX2Z1bmNfXywgZndfbmFtZSk7CisJCXJlbGVhc2VfZmlybXdhcmUoZncpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlidWZmZXIgPSBrbWFsbG9jKGJ1ZmZlcl9zaXplLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWJ1ZmZlcikgewogCQlkZXZfZXJyKCZkZXYtPmRldiwgIiVzIC0gb3V0IG9mIG1lbW9yeVxuIiwgX19mdW5jX18pOworCQlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCi0JbWVtY3B5KGJ1ZmZlciwgZmlybXdhcmUsIGZpcm13YXJlX3NpemUpOwotCW1lbXNldChidWZmZXIrZmlybXdhcmVfc2l6ZSwgMHhmZiwgYnVmZmVyX3NpemUtZmlybXdhcmVfc2l6ZSk7CisJbWVtY3B5KGJ1ZmZlciwgZnctPmRhdGEsIGZ3LT5zaXplKTsKKwltZW1zZXQoYnVmZmVyK2Z3LT5zaXplLCAweGZmLCBidWZmZXJfc2l6ZS1mdy0+c2l6ZSk7CiAKIAlmb3IocG9zID0gc2l6ZW9mKHN0cnVjdCB0aV9maXJtd2FyZV9oZWFkZXIpOyBwb3MgPCBidWZmZXJfc2l6ZTsgcG9zKyspCiAJCWNzID0gKF9fdTgpKGNzICsgYnVmZmVyW3Bvc10pOwpAQCAtMTY5OSw2ICsxNzEyLDcgQEAKIAl9CiAKIAlrZnJlZShidWZmZXIpOworCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCiAJaWYgKHN0YXR1cykgewogCQlkZXZfZXJyKCZkZXYtPmRldiwgIiVzIC0gZXJyb3IgZG93bmxvYWRpbmcgZmlybXdhcmUsICVkXG4iLCBfX2Z1bmNfXywgc3RhdHVzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQuYwppbmRleCBmMDdlOGE0Li42NjVhYTc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0LmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3doaXRlaGVhdC5jCkBAIC04MSw3ICs4MSw4IEBACiAjaW5jbHVkZSA8bGludXgvc2VyaWFsX3JlZy5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi9zZXJpYWwuaD4KLSNpbmNsdWRlICJ3aGl0ZWhlYXRfZncuaCIJCS8qIGZpcm13YXJlIGZvciB0aGUgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIGRldmljZSAqLworI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaWhleC5oPgogI2luY2x1ZGUgIndoaXRlaGVhdC5oIgkJCS8qIFdoaXRlSEVBVCBzcGVjaWZpYyBjb21tYW5kcyAqLwogCiBzdGF0aWMgaW50IGRlYnVnOwpAQCAtMjc5LDM3ICsyODAsNTIgQEAKICovCiBzdGF0aWMgaW50IHdoaXRlaGVhdF9maXJtd2FyZV9kb3dubG9hZCAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQogewotCWludCByZXNwb25zZTsKLQljb25zdCBzdHJ1Y3Qgd2hpdGVoZWF0X2hleF9yZWNvcmQgKnJlY29yZDsKLQkKKwlpbnQgcmVzcG9uc2UsIHJldCA9IC1FTk9FTlQ7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpsb2FkZXJfZncgPSBOVUxMLCAqZmlybXdhcmVfZncgPSBOVUxMOworCWNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjb3JkOworCiAJZGJnKCIlcyIsIF9fZnVuY19fKTsKLQkKKworCWlmIChyZXF1ZXN0X2loZXhfZmlybXdhcmUoJmZpcm13YXJlX2Z3LCAid2hpdGVoZWF0LmZ3IiwKKwkJCQkgICZzZXJpYWwtPmRldi0+ZGV2KSkgeworCQllcnIoIiVzIC0gcmVxdWVzdCBcIndoaXRlaGVhdC5md1wiIGZhaWxlZCIsIF9fZnVuY19fKTsKKwkJZ290byBvdXQ7CisJfQorCWlmIChyZXF1ZXN0X2loZXhfZmlybXdhcmUoJmxvYWRlcl9mdywgIndoaXRlaGVhdF9sb2FkZXIuZnciLAorCQkJICAgICAmc2VyaWFsLT5kZXYtPmRldikpIHsKKwkJZXJyKCIlcyAtIHJlcXVlc3QgXCJ3aGl0ZWhlYXRfbG9hZGVyLmZ3XCIgZmFpbGVkIiwgX19mdW5jX18pOworCQlnb3RvIG91dDsKKwl9CisJcmV0ID0gMDsKIAlyZXNwb25zZSA9IGV6dXNiX3NldF9yZXNldCAoc2VyaWFsLCAxKTsKIAotCXJlY29yZCA9ICZ3aGl0ZWhlYXRfbG9hZGVyWzBdOwotCXdoaWxlIChyZWNvcmQtPmFkZHJlc3MgIT0gMHhmZmZmKSB7Ci0JCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkgKHNlcmlhbCwgcmVjb3JkLT5hZGRyZXNzLCAKLQkJCQkodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwgcmVjb3JkLT5kYXRhX3NpemUsIDB4YTApOworCXJlY29yZCA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilsb2FkZXJfZnctPmRhdGE7CisJd2hpbGUgKHJlY29yZCkgeworCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5IChzZXJpYWwsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCisJCQkJCSAgICAgICh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLAorCQkJCQkgICAgICBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbiksIDB4YTApOwogCQlpZiAocmVzcG9uc2UgPCAwKSB7CiAJCQllcnIoIiVzIC0gZXp1c2Jfd3JpdGVtZW1vcnkgZmFpbGVkIGZvciBsb2FkZXIgKCVkICUwNFggJXAgJWQpIiwKLQkJCQlfX2Z1bmNfXywgcmVzcG9uc2UsIHJlY29yZC0+YWRkcmVzcywgcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSk7CisJCQkgICAgX19mdW5jX18sIHJlc3BvbnNlLCBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpLAorCQkJICAgIHJlY29yZC0+ZGF0YSwgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pKTsKIAkJCWJyZWFrOwogCQl9Ci0JCSsrcmVjb3JkOworCQlyZWNvcmQgPSBpaGV4X25leHRfYmlucmVjKHJlY29yZCk7CiAJfQogCiAJcmVzcG9uc2UgPSBlenVzYl9zZXRfcmVzZXQgKHNlcmlhbCwgMCk7CiAKLQlyZWNvcmQgPSAmd2hpdGVoZWF0X2Zpcm13YXJlWzBdOwotCXdoaWxlIChyZWNvcmQtPmFkZHJlc3MgPCAweDFiNDApIHsKLQkJKytyZWNvcmQ7Ci0JfQotCXdoaWxlIChyZWNvcmQtPmFkZHJlc3MgIT0gMHhmZmZmKSB7Ci0JCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkgKHNlcmlhbCwgcmVjb3JkLT5hZGRyZXNzLCAKLQkJCQkodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwgcmVjb3JkLT5kYXRhX3NpemUsIDB4YTMpOworCXJlY29yZCA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilmaXJtd2FyZV9mdy0+ZGF0YTsKKwl3aGlsZSAocmVjb3JkICYmIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkcikgPCAweDFiNDApCisJCXJlY29yZCA9IGloZXhfbmV4dF9iaW5yZWMocmVjb3JkKTsKKwl3aGlsZSAocmVjb3JkKSB7CisJCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkgKHNlcmlhbCwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKKwkJCQkJICAgICAgKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQtPmRhdGEsCisJCQkJCSAgICAgIGJlMTZfdG9fY3B1KHJlY29yZC0+bGVuKSwgMHhhMyk7CiAJCWlmIChyZXNwb25zZSA8IDApIHsKIAkJCWVycigiJXMgLSBlenVzYl93cml0ZW1lbW9yeSBmYWlsZWQgZm9yIGZpcnN0IGZpcm13YXJlIHN0ZXAgKCVkICUwNFggJXAgJWQpIiwgCi0JCQkJX19mdW5jX18sIHJlc3BvbnNlLCByZWNvcmQtPmFkZHJlc3MsIHJlY29yZC0+ZGF0YSwgcmVjb3JkLT5kYXRhX3NpemUpOworCQkJICAgIF9fZnVuY19fLCByZXNwb25zZSwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKKwkJCSAgICByZWNvcmQtPmRhdGEsIGJlMTZfdG9fY3B1KHJlY29yZC0+bGVuKSk7CiAJCQlicmVhazsKIAkJfQogCQkrK3JlY29yZDsKQEAgLTMxNywyMSArMzMzLDI1IEBACiAJCiAJcmVzcG9uc2UgPSBlenVzYl9zZXRfcmVzZXQgKHNlcmlhbCwgMSk7CiAKLQlyZWNvcmQgPSAmd2hpdGVoZWF0X2Zpcm13YXJlWzBdOwotCXdoaWxlIChyZWNvcmQtPmFkZHJlc3MgPCAweDFiNDApIHsKLQkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeSAoc2VyaWFsLCByZWNvcmQtPmFkZHJlc3MsIAotCQkJCSh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSwgMHhhMCk7CisJcmVjb3JkID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZpcm13YXJlX2Z3LT5kYXRhOworCXdoaWxlIChyZWNvcmQgJiYgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSA8IDB4MWI0MCkgeworCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5IChzZXJpYWwsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCisJCQkJCSAgICAgICh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLAorCQkJCQkgICAgICBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbiksIDB4YTApOwogCQlpZiAocmVzcG9uc2UgPCAwKSB7CiAJCQllcnIoIiVzIC0gZXp1c2Jfd3JpdGVtZW1vcnkgZmFpbGVkIGZvciBzZWNvbmQgZmlybXdhcmUgc3RlcCAoJWQgJTA0WCAlcCAlZCkiLCAKLQkJCQlfX2Z1bmNfXywgcmVzcG9uc2UsIHJlY29yZC0+YWRkcmVzcywgcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSk7CisJCQkgICAgX19mdW5jX18sIHJlc3BvbnNlLCBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpLAorCQkJICAgIHJlY29yZC0+ZGF0YSwgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pKTsKIAkJCWJyZWFrOwogCQl9CiAJCSsrcmVjb3JkOwogCX0KLQorCXJldCA9IDA7CiAJcmVzcG9uc2UgPSBlenVzYl9zZXRfcmVzZXQgKHNlcmlhbCwgMCk7Ci0KLQlyZXR1cm4gMDsKKyBvdXQ6CisJcmVsZWFzZV9maXJtd2FyZShsb2FkZXJfZncpOworCXJlbGVhc2VfZmlybXdhcmUoZmlybXdhcmVfZncpOworCXJldHVybiByZXQ7CiB9CiAKIApAQCAtMTUwMyw2ICsxNTIzLDkgQEAKIE1PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIAorTU9EVUxFX0ZJUk1XQVJFKCJ3aGl0ZWhlYXQuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgid2hpdGVoZWF0X2xvYWRlci5mdyIpOworCiBtb2R1bGVfcGFyYW0odXJiX3Bvb2xfc2l6ZSwgaW50LCAwKTsKIE1PRFVMRV9QQVJNX0RFU0ModXJiX3Bvb2xfc2l6ZSwgIk51bWJlciBvZiB1cmJzIHRvIHVzZSBmb3IgYnVmZmVyaW5nIik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXRfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXRfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUwYmRjNy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0X2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjY5ICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoKLSAqICAgICAgd2hpdGVoZWF0LmggIC0tICBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgRmlybXdhcmUuCi0gKgotICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiAgQ29ubmVjdFRlY2ggSW5jIChodHRwOi8vd3d3LmNvbm5lY3R0ZWNoLmNvbS8pCi0gKgotICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqICAgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgICAgIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgotICoKLSAqICgxMC8wOS8yMDAyKSBTdHVhcnQgTWFjRG9uYWxkCi0gKglGaXJtd2FyZSA0LjA2Ci0gKgotICogKDA0LzA5LzIwMDApIGdraAotICoJVXBkYXRlZCB0aGUgZmlybXdhcmUgd2l0aCB0aGUgbGF0ZXN0IHByb3ZpZGVkIGJ5IENvbm5lY3RUZWNoLgotICoKLSAqICgwMS8xNi8yMDAwKSBna2gKLSAqCUZpeGVkIG15IGludGVsIGhleCBwcm9jZXNzaW5nIHRvb2wsIHNvIG5vdyB0aGUgZmlybXdhcmUgYWN0dWFsbHkKLSAqCW1hdGNoZXMgdGhlIG9yaWdpbmFsIGZpbGUgKHRoaXMgd2FzIGNhdXNpbmcgYSBmZXcgcHJvYmxlbXMuLi4pCi0gKgotICogKDAxLzE1LzIwMDApIGdraAotICoJQWRkZWQgZGVidWcgbG9hZGVyIGZpcm13YXJlIGlmIERFQlVHIGlzICNkZWZpbmVkOgotICoJCVBvcnQgMSBMRUQgZmxhc2hlcyB3aGVuIHRoZSB2ZW5kX2F4IHByb2dyYW0gaXMgcnVubmluZwotICoJCVBvcnQgMiBMRUQgZmxhc2hlcyB3aGVuIGFueSBTRVRVUCBjb21tYW5kIGFycml2ZXMKLSAqCQlQb3J0IDMgTEVEIGZsYXNoZXMgd2hlbiBhbnkgdmFsaWQgVkVORE9SIHJlcXVlc3Qgb2NjdXJzCi0gKgkJUG9ydCA0IExFRCBmbGFzaGVzIHdoZW4gdGhlIEVYVEVSTkFMIFJBTSBET1dOTE9BRCByZXF1ZXN0IG9jY3VycwotICoKLSAqIHZlcnNpb24gMS4wICgwMS8wOS8yMDAwKSBna2gKLSAqCU9yaWdpbmFsIGZpcm13YXJlIGZyb20gQ29ubmVjdFRlY2ggbWFzc2FnZWQgYSBsaXR0bGUgdG8gYmUgcHJvZ3JhbQotICoJcmVhZGFibGUuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0jZGVmaW5lIHdoaXRlaGVhdF9EQVRFICIyMDAwMDEwNiIKLQotc3RydWN0IHdoaXRlaGVhdF9oZXhfcmVjb3JkIHsKLQlfX3UxNglhZGRyZXNzOwotCV9fdTgJZGF0YV9zaXplOwotCV9fdTgJZGF0YVsxNl07Ci19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHdoaXRlaGVhdF9oZXhfcmVjb3JkIHdoaXRlaGVhdF9maXJtd2FyZVtdID0gewoteyAweDAwMDAsCTMsCXsweDAyLCAweDk3LCAweGUzfSB9LAoteyAweDAwMDMsCTMsCXsweDAyLCAweDEzLCAweDEyfSB9LAoteyAweDAwMGIsCTMsCXsweDAyLCAweDBiLCAweGI1fSB9LAoteyAweDAwMzMsCTMsCXsweDAyLCAweDA4LCAweDFjfSB9LAoteyAweDAwNDMsCTMsCXsweDAyLCAweDBhLCAweDAwfSB9LAoteyAweDAwNWIsCTMsCXsweDAyLCAweDgzLCAweDNifSB9LAoteyAweDAzNzAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg3MywgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHhlNywgMHgyNH0gfSwKLXsgMHgwMzgwLAkxNiwJezB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NGYsIDB4MjQsIDB4ZmIsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NjQsIDB4MTQsIDB4NzAsIDB4MDN9IH0sCi17IDB4MDM5MCwJMTYsCXsweDAyLCAweDA0LCAweDUyLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDNhLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDQ5LCAweDI0fSB9LAoteyAweDAzYTAsCTE2LAl7MHgwNSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg5ZSwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MH0gfSwKLXsgMHgwM2IwLAkxNiwJezB4MzYsIDB4MjQsIDB4MDIsIDB4NzAsIDB4N2IsIDB4NzQsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDV9IH0sCi17IDB4MDNjMCwJMTYsCXsweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBhLCAweDk5LCAweGVhLCAweDQ5LCAweDYwLCAweDBkfSB9LAoteyAweDAzZDAsCTE2LAl7MHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhiNH0gfSwKLXsgMHgwM2UwLAkxNiwJezB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGEsIDB4NTgsIDB4ZWF9IH0sCi17IDB4MDNmMCwJMTYsCXsweDQ5LCAweDYwLCAweDMzLCAweDEyLCAweGEyLCAweDNiLCAweGY1LCAweDRlLCAweDkwLCAweDdmLCAweGVlLCAweGUwLCAweGZmLCAweGU1LCAweDRlLCAweGQzfSB9LAoteyAweDA0MDAsCTE2LAl7MHg5ZiwgMHg0MCwgMHgwMywgMHhlMCwgMHhmNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhkMywgMHg5NCwgMHg0MCwgMHg0MCwgMHgwMywgMHg3NSwgMHg0ZSwgMHg0MH0gfSwKLXsgMHgwNDEwLAkxNiwJezB4YWUsIDB4MDIsIDB4YWYsIDB4MDEsIDB4N2MsIDB4N2YsIDB4N2QsIDB4MDAsIDB4YWIsIDB4NGUsIDB4MTIsIDB4OTEsIDB4MzcsIDB4OTAsIDB4N2YsIDB4YjV9IH0sCi17IDB4MDQyMCwJMTYsCXsweGU1LCAweDRlLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGE1fSB9LAoteyAweDA0MzAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgyMSwgMHhmMH0gfSwKLXsgMHgwNDQwLAkxNiwJezB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjEsIDB4MDJ9IH0sCi17IDB4MDQ1MCwJMTYsCXsweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDM1LCAweGQyLCAweDAyLCAweDQzLCAweDg4LCAweDEwLCAweGQyLCAweGViLCAweGQyfSB9LAoteyAweDA0NjAsCTE2LAl7MHhhOCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgzNSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMH0gfSwKLXsgMHgwNDcwLAkxNiwJezB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDJ9IH0sCi17IDB4MDQ4MCwJMTYsCXsweDcwLCAweDViLCAweGEyLCAweDAwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDA1LCAweGU0LCAweDMzLCAweDRmLCAweDkwfSB9LAoteyAweDA0OTAsCTE2LAl7MHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHhlNH0gfSwKLXsgMHgwNGEwLAkxNiwJezB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTB9IH0sCi17IDB4MDRiMCwJMTYsCXsweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1fSB9LAoteyAweDA0YzAsCTE2LAl7MHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHgwNGQwLAkxNiwJezB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4YjR9IH0sCi17IDB4MDRlMCwJMTYsCXsweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0fSB9LAoteyAweDA0ZjAsCTE2LAl7MHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgwMCwgMHgwMn0gfSwKLXsgMHgwNTAwLAkxNiwJezB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9IH0sCi17IDB4MDUxMCwJMTYsCXsweDcwLCAweDM0LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGZmLCAweDU0LCAweDA3LCAweGZlLCAweGY1LCAweDRlLCAweGVmLCAweDMwLCAweGU3LCAweDAzfSB9LAoteyAweDA1MjAsCTE2LAl7MHg0MywgMHg0ZSwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhkNywgMHhlNSwgMHg0ZSwgMHhmMCwgMHhlNSwgMHg0ZSwgMHg0NCwgMHgyMCwgMHhmMCwgMHhlZiwgMHhmNH0gfSwKLXsgMHgwNTMwLAkxNiwJezB4NTQsIDB4ODAsIDB4ZmQsIDB4YzQsIDB4NTQsIDB4MGYsIDB4MmUsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2Z9IH0sCi17IDB4MDU0MCwJMTYsCXsweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDgwLCAweDVmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDU2LCAweDkwfSB9LAoteyAweDA1NTAsCTE2LAl7MHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNH0gfSwKLXsgMHgwNTYwLAkxNiwJezB4MDEsIDB4MDQsIDB4ZDIsIDB4MDAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4OTB9IH0sCi17IDB4MDU3MCwJMTYsCXsweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmfSB9LAoteyAweDA1ODAsCTE2LAl7MHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4M30gfSwKLXsgMHgwNTkwLAkxNiwJezB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDVhMCwJMTIsCXsweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwfSB9LAoteyAweDA1YWMsCTEsCXsweDIyfSB9LAoteyAweDA1YWQsCTE2LAl7MHg3NSwgMHg0YSwgMHhmZiwgMHg3NSwgMHg0OSwgMHhmZiwgMHg3NSwgMHg0OCwgMHgwZiwgMHg3NSwgMHg0NywgMHgwMCwgMHhkMiwgMHgwMywgMHhjMiwgMHgwNn0gfSwKLXsgMHgwNWJkLAkxNiwJezB4YzIsIDB4MDIsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MDEsIDB4OTAsIDB4MDMsIDB4MDAsIDB4NzQsIDB4MTksIDB4ZjAsIDB4ZTQsIDB4OTB9IH0sCi17IDB4MDVjZCwJMTYsCXsweDAxLCAweGJjLCAweGYwLCAweGMyLCAweDA0LCAweDkwLCAweDAxLCAweGMwLCAweGYwLCAweGEzLCAweGYwLCAweGMyLCAweGFmLCAweGMyLCAweGE4LCAweDEyfSB9LAoteyAweDA1ZGQsCTE2LAl7MHgwYywgMHgyMiwgMHhlNCwgMHg5MCwgMHgwMiwgMHhhZiwgMHhmMCwgMHg5MCwgMHgwMSwgMHhiZCwgMHhmMCwgMHg5MCwgMHgwMSwgMHgwMCwgMHhmMCwgMHhhM30gfSwKLXsgMHgwNWVkLAkxNiwJezB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YTN9IH0sCi17IDB4MDVmZCwJMTYsCXsweDc0LCAweDA4LCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweDAwLCAweDEyLCAweDE5LCAweGMxLCAweDc1LCAweDRjLCAweDEyLCAweDc1LCAweDRkLCAweDBhfSB9LAoteyAweDA2MGQsCTE2LAl7MHg5MCwgMHgwMSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgwNSwgMHg0ZCwgMHhlNSwgMHg0ZCwgMHhhYywgMHg0YywgMHg3MCwgMHgwMiwgMHgwNSwgMHg0YywgMHgxNH0gfSwKLXsgMHgwNjFkLAkxNiwJezB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MGMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTV9IH0sCi17IDB4MDYyZCwJMTYsCXsweDRkLCAweGFjLCAweDRjLCAweDcwLCAweDAyLCAweDA1LCAweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDAxfSB9LAoteyAweDA2M2QsCTE2LAl7MHgwZCwgMHhlMCwgMHhmZiwgMHgwNSwgMHg0ZCwgMHhlNSwgMHg0ZCwgMHhhYywgMHg0YywgMHg3MCwgMHgwMiwgMHgwNSwgMHg0YywgMHgxNCwgMHhmNSwgMHg4Mn0gfSwKLXsgMHgwNjRkLAkxNiwJezB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MGUsIDB4ZTAsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YWMsIDB4NGMsIDB4NzB9IH0sCi17IDB4MDY1ZCwJMTYsCXsweDAyLCAweDA1LCAweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDEyLCAweDBhLCAweGU0LCAweDkzLCAweGZmfSB9LAoteyAweDA2NmQsCTE2LAl7MHg3NCwgMHgwMSwgMHg5MywgMHg5MCwgMHgwMSwgMHgxYywgMHhjZiwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxYywgMHhlMCwgMHhmZn0gfSwKLXsgMHgwNjdkLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZmUsIDB4ZWYsIDB4NmUsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4MWMsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4NmYsIDB4ZmYsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MDY4ZCwJMTYsCXsweDAxLCAweDFjLCAweGUwLCAweDZmLCAweGYwLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweGU0LCAweGZjLCAweGZkLCAweDc1LCAweDUyLCAweDEwfSB9LAoteyAweDA2OWQsCTE2LAl7MHg3NSwgMHg1MywgMHgwMiwgMHg3NSwgMHg1NCwgMHgxMiwgMHg3NSwgMHg1NSwgMHhhYywgMHgxMiwgMHg5NCwgMHgyNiwgMHg3NSwgMHg0YywgMHgxMiwgMHg3NX0gfSwKLXsgMHgwNmFkLAkxNiwJezB4NGQsIDB4YjIsIDB4OTAsIDB4MDEsIDB4MGQsIDB4ZTAsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YWMsIDB4NGMsIDB4NzAsIDB4MDIsIDB4MDV9IH0sCi17IDB4MDZiZCwJMTYsCXsweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDAxLCAweDBlLCAweGUwLCAweGZmLCAweDA1LCAweDRkLCAweGU1fSB9LAoteyAweDA2Y2QsCTE2LAl7MHg0ZCwgMHhhYywgMHg0YywgMHg3MCwgMHgwMiwgMHgwNSwgMHg0YywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNmRkLAkxNiwJezB4OTIsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4MjQsIDB4NDEsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YWMsIDB4NGMsIDB4NzB9IH0sCi17IDB4MDZlZCwJMTYsCXsweDAyLCAweDA1LCAweDRjLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDRkLCAweGU1LCAweDRkLCAweGFlLCAweDRjfSB9LAoteyAweDA2ZmQsCTE2LAl7MHg3MCwgMHgwMiwgMHgwNSwgMHg0YywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNCwgMHhmMCwgMHg3NSwgMHg4MiwgMHgxMCwgMHg3NSwgMHg4M30gfSwKLXsgMHgwNzBkLAkxNiwJezB4MDEsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4MTgsIDB4MTJ9IH0sCi17IDB4MDcxZCwJMTYsCXsweGEzLCAweGVlLCAweDdlLCAweDAxLCAweDdmLCAweDE4LCAweDEyLCAweDg2LCAweGJlLCAweDkwLCAweDAxLCAweDE4LCAweGUwLCAweGZjLCAweGEzLCAweGUwfSB9LAoteyAweDA3MmQsCTE2LAl7MHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHg3NSwgMHg1MiwgMHgwYSwgMHg3NSwgMHg1MywgMHgwNiwgMHg3NSwgMHg1NCwgMHgxMn0gfSwKLXsgMHgwNzNkLAkxNiwJezB4NzUsIDB4NTUsIDB4YjgsIDB4MTIsIDB4OTQsIDB4MjYsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmZ9IH0sCi17IDB4MDc0ZCwJMTYsCXsweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweDQ0fSB9LAoteyAweDA3NWQsCTE2LAl7MHgxZiwgMHhmMCwgMHhkMiwgMHhhZiwgMHgyMCwgMHgwMSwgMHgyZSwgMHgyMCwgMHgwMSwgMHgyYiwgMHhhMiwgMHgwMywgMHg5MiwgMHgwNywgMHgxMiwgMHgwOX0gfSwKLXsgMHgwNzZkLAkxNiwJezB4YzUsIDB4NzUsIDB4NDYsIDB4NTAsIDB4NzUsIDB4NDUsIDB4NmQsIDB4NzUsIDB4NDQsIDB4MzMsIDB4NzUsIDB4NDMsIDB4MDAsIDB4MjAsIDB4MDEsIDB4ZTR9IH0sCi17IDB4MDc3ZCwJMTYsCXsweDdmLCAweGZmLCAweDdlLCAweGZmLCAweDdkLCAweGZmLCAweDdjLCAweGZmLCAweDc4LCAweDQzLCAweDEyLCAweGEzLCAweGQ3LCAweGVjLCAweDRkLCAweDRlfSB9LAoteyAweDA3OGQsCTE2LAl7MHg0ZiwgMHg2MCwgMHhkMSwgMHg4MCwgMHhlOCwgMHgzMCwgMHgwMSwgMHgwNSwgMHgxMiwgMHgwMywgMHg3MCwgMHhjMiwgMHgwMSwgMHgzMCwgMHgwNiwgMHgwYX0gfSwKLXsgMHgwNzlkLAkxNiwJezB4MTIsIDB4MDksIDB4ZmIsIDB4NTAsIDB4MDMsIDB4MTIsIDB4MGEsIDB4ZTgsIDB4YzIsIDB4MDYsIDB4MTIsIDB4OTYsIDB4NWUsIDB4OTAsIDB4MDEsIDB4YmR9IH0sCi17IDB4MDdhZCwJMTYsCXsweGUwLCAweDYwLCAweDBjLCAweDEyLCAweDkyLCAweDAxLCAweGU0LCAweDkwLCAweDAxLCAweGJkLCAweGYwLCAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDkwfSB9LAoteyAweDA3YmQsCTE2LAl7MHgwMiwgMHhhZiwgMHhlMCwgMHhiNCwgMHgwZiwgMHgwMywgMHgxMiwgMHg5OSwgMHhiOSwgMHgxMiwgMHhhMCwgMHg5NSwgMHhlNCwgMHhmZiwgMHg3NCwgMHgwMX0gfSwKLXsgMHgwN2NkLAkxNiwJezB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZmUsIDB4OTAsIDB4MDEsIDB4YmMsIDB4ZTAsIDB4NWUsIDB4NjB9IH0sCi17IDB4MDdkZCwJMTYsCXsweDE0LCAweDc0LCAweDI4LCAweDJmLCAweGY4LCAweGU2LCAweGQzLCAweDk0LCAweDBhLCAweDQwLCAweDA0LCAweDdlLCAweDAxLCAweDgwLCAweDAyLCAweDdlfSB9LAoteyAweDA3ZWQsCTE2LAl7MHgwMCwgMHg4ZSwgMHg0YiwgMHg4MCwgMHgwMywgMHg3NSwgMHg0YiwgMHgwMSwgMHg3NCwgMHg2OCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMH0gfSwKLXsgMHgwN2ZkLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTUsIDB4NGIsIDB4ZjAsIDB4MGYsIDB4YmYsIDB4MDQsIDB4YzUsIDB4ZTUsIDB4MmMsIDB4ZDMsIDB4OTQsIDB4MGEsIDB4NDAsIDB4MDR9IH0sCi17IDB4MDgwZCwJMTQsCXsweDdmLCAweDAxLCAweDgwLCAweDAyLCAweDdmLCAweDAwLCAweDkwLCAweDIwLCAweDZjLCAweGVmLCAweGYwLCAweDAyLCAweDA3LCAweDkyfSB9LAoteyAweDA4MWIsCTEsCXsweDIyfSB9LAoteyAweDA4MWMsCTQsCXsweDUzLCAweGQ4LCAweGVmLCAweDMyfSB9LAoteyAweDA4MjAsCTE2LAl7MHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg0MCwgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5MywgMHhlMCwgMHg0NCwgMHgzMCwgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwODMwLAkxNiwJezB4OTUsIDB4ZTAsIDB4NDQsIDB4YzAsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTB9IH0sCi17IDB4MDg0MCwJMTYsCXsweDU0LCAweGZlLCAweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDA4fSB9LAoteyAweDA4NTAsCTE2LAl7MHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHg3Zn0gfSwKLXsgMHgwODYwLAkxNiwJezB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NTAsIDB4MGUsIDB4N2YsIDB4MDIsIDB4N2R9IH0sCi17IDB4MDg3MCwJMTYsCXsweGZmLCAweDEyLCAweDgyLCAweGVhLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0fSB9LAoteyAweDA4ODAsCTE2LAl7MHgwMiwgMHhmMCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5Nn0gfSwKLXsgMHgwODkwLAkxNiwJezB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NTR9IH0sCi17IDB4MDhhMCwJMTYsCXsweGJmLCAweGYwLCAweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDQwLCAweGYwfSB9LAoteyAweDA4YjAsCTgsCXsweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDIyfSB9LAoteyAweDA4YjgsCTE2LAl7MHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg3ZiwgMHgwYSwgMHg3ZSwgMHgwMCwgMHgxMn0gfSwKLXsgMHgwOGM4LAkxNiwJezB4MDksIDB4YWUsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NTAsIDB4MGUsIDB4N2YsIDB4MDIsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4ODIsIDB4ZWF9IH0sCi17IDB4MDhkOCwJMTYsCXsweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDdmLCAweDA1fSB9LAoteyAweDA4ZTgsCTE2LAl7MHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMH0gfSwKLXsgMHgwOGY4LAkxNiwJezB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDl9IH0sCi17IDB4MDkwOCwJMTYsCXsweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweGU1fSB9LAoteyAweDA5MTgsCTE2LAl7MHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg0MCwgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5MywgMHhlMCwgMHg1NCwgMHhjZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NX0gfSwKLXsgMHgwOTI4LAk4LAl7MHhlMCwgMHg1NCwgMHgzZiwgMHhmMCwgMHgxMiwgMHgwYiwgMHgwMCwgMHgyMn0gfSwKLXsgMHgwOTMwLAkxNiwJezB4OTAsIDB4MGEsIDB4ZjQsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4NzYsIDB4OTAsIDB4N2YsIDB4OTMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTR9IH0sCi17IDB4MDk0MCwJMTYsCXsweDc0LCAweDNjLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweGM2LCAweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlfSB9LAoteyAweDA5NTAsCTE2LAl7MHhlNCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHhjZn0gfSwKLXsgMHgwOTYwLAkxNiwJezB4ZjAsIDB4N2YsIDB4MGEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4MjAsIDB4NzAsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGZ9IH0sCi17IDB4MDk3MCwJMTYsCXsweGY1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDUwLCAweDA3LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU0LCAweDkwfSB9LAoteyAweDA5ODAsCTE2LAl7MHg3ZiwgMHg5NywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg0MCwgMHgwYn0gfSwKLXsgMHgwOTkwLAkxNiwJezB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4NzQsIDB4MTJ9IH0sCi17IDB4MDlhMCwJMTQsCXsweGYwLCAweDEyLCAweDA4LCAweDIwLCAweDc1LCAweDgyLCAweGY0LCAweDc1LCAweDgzLCAweDBhLCAweDc0LCAweGZmLCAweGYwLCAweDIyfSB9LAoteyAweDA5YWUsCTE2LAl7MHg4ZSwgMHg1ZCwgMHg4ZiwgMHg1ZSwgMHhlNSwgMHg1ZSwgMHgxNSwgMHg1ZSwgMHhhZSwgMHg1ZCwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1ZCwgMHg0ZSwgMHg2MH0gfSwKLXsgMHgwOWJlLAk3LAl7MHgwNSwgMHgxMiwgMHgwOSwgMHhlYSwgMHg4MCwgMHhlZSwgMHgyMn0gfSwKLXsgMHgwOWM1LAkxNiwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MDcsIDB4MDQsIDB4ZTAsIDB4NDR9IH0sCi17IDB4MDlkNSwJMTYsCXsweDAyLCAweGYwLCAweDdmLCAweGQwLCAweDdlLCAweDA3LCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwfSB9LAoteyAweDA5ZTUsCTUsCXsweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyfSB9LAoteyAweDA5ZWEsCTE2LAl7MHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOX0gfSwKLXsgMHgwOWZhLAkxLAl7MHgyMn0gfSwKLXsgMHgwOWZiLAk1LAl7MHgxMiwgMHgwOCwgMHhiOCwgMHhkMywgMHgyMn0gfSwKLXsgMHgwYTAwLAkxNiwJezB4MDIsIDB4MGMsIDB4NGUsIDB4MDAsIDB4MDIsIDB4MGMsIDB4ODEsIDB4MDAsIDB4MDIsIDB4MGMsIDB4NjYsIDB4MDAsIDB4MDIsIDB4MGMsIDB4YzAsIDB4MDB9IH0sCi17IDB4MGExMCwJMTYsCXsweDAyLCAweDBjLCAweGFhLCAweDAwLCAweDAyLCAweDBhLCAweGVkLCAweDAwLCAweDAyLCAweDBhLCAweGVlLCAweDAwLCAweDAyLCAweDBhLCAweGVmLCAweDAwfSB9LAoteyAweDBhMjAsCTE2LAl7MHgwMiwgMHgwYywgMHhkYiwgMHgwMCwgMHgwMiwgMHgwZCwgMHhjYiwgMHgwMCwgMHgwMiwgMHgwZCwgMHgxNywgMHgwMCwgMHgwMiwgMHgwZSwgMHgyYiwgMHgwMH0gfSwKLXsgMHgwYTMwLAkxNiwJezB4MDIsIDB4MGQsIDB4NTMsIDB4MDAsIDB4MDIsIDB4MGUsIDB4OGIsIDB4MDAsIDB4MDIsIDB4MGQsIDB4OGYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ZWIsIDB4MDB9IH0sCi17IDB4MGE0MCwJMTYsCXsweDAyLCAweDBhLCAweGYwLCAweDAwLCAweDAyLCAweDBhLCAweGYyLCAweDAwLCAweDAyLCAweDBhLCAweGYxLCAweDAwLCAweDAyLCAweDBhLCAweGYzLCAweDAwfSB9LAoteyAweDBhNTAsCTgsCXsweDAyLCAweDBmLCAweDRiLCAweDAwLCAweDAyLCAweDBmLCAweDYxLCAweDAwfSB9LAoteyAweDBhNTgsCTIsCXsweDhmLCAweDRmfSB9LAoteyAweDBhNWEsCTE2LAl7MHhlNCwgMHhmNSwgMHg1MCwgMHg3NSwgMHg1MSwgMHhmZiwgMHg3NSwgMHg1MiwgMHgxMiwgMHg3NSwgMHg1MywgMHg2YSwgMHhhYiwgMHg1MSwgMHhhYSwgMHg1Mn0gfSwKLXsgMHgwYTZhLAkxNiwJezB4YTksIDB4NTMsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4NTQsIDB4YjQsIDB4MDMsIDB4MWQsIDB4YWYsIDB4NTAsIDB4MDUsIDB4NTAsIDB4ZWZ9IH0sCi17IDB4MGE3YSwJMTYsCXsweGI1LCAweDRmLCAweDAxLCAweDIyLCAweDEyLCAweGEyLCAweDNiLCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1fSB9LAoteyAweDBhOGEsCTE0LAl7MHg1MSwgMHhmZiwgMHhmNSwgMHg1MiwgMHg4OSwgMHg1MywgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMH0gfSwKLXsgMHgwYTk4LAkxLAl7MHgyMn0gfSwKLXsgMHgwYTk5LAkxNiwJezB4ZTQsIDB4ZmUsIDB4NzUsIDB4NTEsIDB4ZmYsIDB4NzUsIDB4NTIsIDB4MTIsIDB4NzUsIDB4NTMsIDB4MTIsIDB4YWIsIDB4NTEsIDB4YWEsIDB4NTIsIDB4YTl9IH0sCi17IDB4MGFhOSwJMTYsCXsweDUzLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweGEyLCAweDU0LCAweDY0LCAweDAyLCAweDcwLCAweDJkLCAweGFkLCAweDA2LCAweDBlLCAweGVkLCAweGI1fSB9LAoteyAweDBhYjksCTE2LAl7MHgwNywgMHgwMSwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHhhMiwgMHhhZCwgMHg4NSwgMHhmMCwgMHg0ZiwgMHhmNSwgMHg1MCwgMHg2MiwgMHg0Zn0gfSwKLXsgMHgwYWM5LAkxNiwJezB4ZTUsIDB4NGYsIDB4NjIsIDB4NTAsIDB4ZTUsIDB4NTAsIDB4NjIsIDB4NGYsIDB4MjksIDB4ZmQsIDB4ZTUsIDB4NGYsIDB4M2EsIDB4YTksIDB4MDUsIDB4NzV9IH0sCi17IDB4MGFkOSwJMTQsCXsweDUxLCAweGZmLCAweGY1LCAweDUyLCAweDg5LCAweDUzLCAweDgwLCAweGMzLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwfSB9LAoteyAweDBhZTcsCTEsCXsweDIyfSB9LAoteyAweDBhZTgsCTUsCXsweDEyLCAweDA4LCAweDIwLCAweGQzLCAweDIyfSB9LAoteyAweDBhZWQsCTEsCXsweDMyfSB9LAoteyAweDBhZWUsCTEsCXsweDMyfSB9LAoteyAweDBhZWYsCTEsCXsweDMyfSB9LAoteyAweDBhZjAsCTEsCXsweDMyfSB9LAoteyAweDBhZjEsCTEsCXsweDMyfSB9LAoteyAweDBhZjIsCTEsCXsweDMyfSB9LAoteyAweDBhZjMsCTEsCXsweDMyfSB9LAoteyAweDBhZjQsCTMsCXsweDAwLCAweDA0LCAweDA3fSB9LAoteyAweDBiMDAsCTksCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDc0fSB9LAoteyAweDBiN2QsCTE2LAl7MHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMn0gfSwKLXsgMHgwYjhkLAkxNiwJezB4NTMsIDB4OGUsIDB4ZjcsIDB4ZTUsIDB4ODksIDB4NTQsIDB4ZjEsIDB4NDQsIDB4MDEsIDB4ZjUsIDB4ODksIDB4NzUsIDB4OGMsIDB4YjEsIDB4ZDIsIDB4YTl9IH0sCi17IDB4MGI5ZCwJMTYsCXsweDc1LCAweDk4LCAweDQwLCAweDc1LCAweGNiLCAweGZmLCAweDc1LCAweGNhLCAweGYzLCAweDc1LCAweGM4LCAweDM0LCAweGU0LCAweGZmLCAweDdmLCAweDA1fSB9LAoteyAweDBiYWQsCTcsCXsweDc4LCAweDI4LCAweGU0LCAweGY2LCAweDA4LCAweGRmLCAweGZjfSB9LAoteyAweDBiYjQsCTEsCXsweDIyfSB9LAoteyAweDBiYjUsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwMCwgMHhjMCwgMHgwMCwgMHhjMCwgMHgwNiwgMHhjMH0gfSwKLXsgMHgwYmM1LAkxLAl7MHgwN30gfSwKLXsgMHgwYmM2LAkxNiwJezB4MzAsIDB4MDQsIDB4MTYsIDB4NzUsIDB4OGMsIDB4ZjgsIDB4NzUsIDB4OGEsIDB4MzAsIDB4N2YsIDB4MmYsIDB4YWUsIDB4MDcsIDB4MWYsIDB4ZWUsIDB4NjB9IH0sCi17IDB4MGJkNiwJMTYsCXsweDNjLCAweDkwLCAweDIwLCAweDAwLCAweDc0LCAweDU1LCAweGYwLCAweDgwLCAweGYyLCAweDc1LCAweDhjLCAweGIxLCAweDdmLCAweDI4LCAweGVmLCAweGQzfSB9LAoteyAweDBiZTYsCTE2LAl7MHg5NCwgMHgyYywgMHg1MCwgMHgwOSwgMHhhOCwgMHgwNywgMHhlNiwgMHg2MCwgMHgwMSwgMHgxNiwgMHgwZiwgMHg4MCwgMHhmMSwgMHg5MCwgMHgwMywgMHgwMH0gfSwKLXsgMHgwYmY2LAkxNiwJezB4ZTAsIDB4NjAsIDB4MDIsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTB9IH0sCi17IDB4MGMwNiwJMTMsCXsweDAxLCAweGMxLCAweGUwLCAweDI0LCAweGZmLCAweGYwLCAweDkwLCAweDAxLCAweGMwLCAweGUwLCAweDM0LCAweGZmLCAweGYwfSB9LAoteyAweDBjMTMsCTE1LAl7MHhkMCwgMHgwNywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwMCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwYzIyLAkxNiwJezB4ZDIsIDB4MDAsIDB4NzUsIDB4OGUsIDB4MTAsIDB4MTIsIDB4MDksIDB4MzAsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NDAsIDB4MDgsIDB4OTB9IH0sCi17IDB4MGMzMiwJMTYsCXsweDdmLCAweDkyLCAweDc0LCAweDAyLCAweGYwLCAweDgwLCAweDA1LCAweGU0LCAweDkwLCAweDdmLCAweDkyLCAweGYwLCAweDEyLCAweDgwLCAweDAwLCAweDEyfSB9LAoteyAweDBjNDIsCTEyLAl7MHgwZiwgMHg3ZCwgMHgxMiwgMHg5NCwgMHhmNywgMHgxMiwgMHgxYiwgMHgwYywgMHgxMiwgMHgwYiwgMHg4ZCwgMHgyMn0gfSwKLXsgMHgwYzRlLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZDIsIDB4MDEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDF9IH0sCi17IDB4MGM1ZSwJOCwJezB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGM2NiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDkwLCAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoteyAweDBjNzYsCTExLAl7MHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwYzgxLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MGM5MSwJMTYsCXsweDdmLCAweGQ4LCAweGUwLCAweDcwLCAweDBkLCAweDkwLCAweDdmLCAweGQ5LCAweGUwLCAweDcwLCAweDA3LCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1fSB9LAoteyAweDBjYTEsCTksCXsweDJjLCAweDE0LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBjYWEsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgxMCwgMHhmMCwgMHhkMH0gfSwKLXsgMHgwY2JhLAk2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwY2MwLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4MzAsIDB4MDIsIDB4MDIsIDB4ZDIsIDB4MDYsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGNkMCwJMTEsCXsweGFiLCAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBjZGIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwY2ViLAkxNiwJezB4YTksIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MzAsIDB4ZTAsIDB4MTMsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTAsIDB4MDcsIDB4OTAsIDB4MjB9IH0sCi17IDB4MGNmYiwJMTYsCXsweDA0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDIwLCAweDAxLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzfSB9LAoteyAweDBkMGIsCTEyLAl7MHg3NSwgMHgyYywgMHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZDE3LAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGQyNywJMTYsCXsweGE5LCAweDc0LCAweDA0LCAweGYwLCAweGU1LCAweDM0LCAweDMwLCAweGUxLCAweDEzLCAweGU1LCAweDMyLCAweDMwLCAweGUxLCAweDA3LCAweDkwLCAweDIwfSB9LAoteyAweDBkMzcsCTE2LAl7MHgwYywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwOSwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgyYywgMHg3MCwgMHgwM30gfSwKLXsgMHgwZDQ3LAkxMiwJezB4NzUsIDB4MmMsIDB4MTQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGQ1MywJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoteyAweDBkNjMsCTE2LAl7MHhhOSwgMHg3NCwgMHgwOCwgMHhmMCwgMHhlNSwgMHgzNCwgMHgzMCwgMHhlMiwgMHgxMywgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMiwgMHgwNywgMHg5MCwgMHgyMH0gfSwKLXsgMHgwZDczLAkxNiwJezB4MTQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTEsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDN9IH0sCi17IDB4MGQ4MywJMTIsCXsweDc1LCAweDJjLCAweDE0LCAweGQwLCAweGQwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkOGYsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwZDlmLAkxNiwJezB4YTksIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MzAsIDB4ZTMsIDB4MTMsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTMsIDB4MDcsIDB4OTAsIDB4MjB9IH0sCi17IDB4MGRhZiwJMTYsCXsweDFjLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDIwLCAweDE5LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzfSB9LAoteyAweDBkYmYsCTEyLAl7MHg3NSwgMHgyYywgMHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZGNiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCi17IDB4MGRkYiwJMTYsCXsweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDAyLCAweGYwLCAweGU1LCAweDM0LCAweDIwfSB9LAoteyAweDBkZWIsCTE2LAl7MHhlMCwgMHgwNiwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgyMiwgMHhlNSwgMHgzMSwgMHgzMCwgMHhlMCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjN30gfSwKLXsgMHgwZGZiLAkxNiwJezB4ZTAsIDB4OTAsIDB4MDIsIDB4ZjgsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4ZTUsIDB4MjIsIDB4MzAsIDB4ZTAsIDB4MDcsIDB4OTAsIDB4MjAsIDB4MDQsIDB4ZTB9IH0sCi17IDB4MGUwYiwJMTYsCXsweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDAxLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1LCAweDJjfSB9LAoteyAweDBlMWIsCTE2LAl7MHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZTJiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCi17IDB4MGUzYiwJMTYsCXsweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDA0LCAweGYwLCAweGU1LCAweDM0LCAweDIwfSB9LAoteyAweDBlNGIsCTE2LAl7MHhlMSwgMHgwNiwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHg4MCwgMHgyMiwgMHhlNSwgMHgzMSwgMHgzMCwgMHhlMSwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjOX0gfSwKLXsgMHgwZTViLAkxNiwJezB4ZTAsIDB4OTAsIDB4MDIsIDB4ZjksIDB4ZjAsIDB4ODAsIDB4MTMsIDB4ZTUsIDB4MjIsIDB4MzAsIDB4ZTEsIDB4MDcsIDB4OTAsIDB4MjAsIDB4MGMsIDB4ZTB9IH0sCi17IDB4MGU2YiwJMTYsCXsweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDA5LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1LCAweDJjfSB9LAoteyAweDBlN2IsCTE2LAl7MHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZThiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCi17IDB4MGU5YiwJMTYsCXsweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDA4LCAweGYwLCAweGU1LCAweDM0LCAweDIwfSB9LAoteyAweDBlYWIsCTE2LAl7MHhlMiwgMHgwNiwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg4MCwgMHgyMiwgMHhlNSwgMHgzMSwgMHgzMCwgMHhlMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYn0gfSwKLXsgMHgwZWJiLAkxNiwJezB4ZTAsIDB4OTAsIDB4MDIsIDB4ZmEsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4ZTUsIDB4MjIsIDB4MzAsIDB4ZTIsIDB4MDcsIDB4OTAsIDB4MjAsIDB4MTQsIDB4ZTB9IH0sCi17IDB4MGVjYiwJMTYsCXsweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDExLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1LCAweDJjfSB9LAoteyAweDBlZGIsCTE2LAl7MHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZWViLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCi17IDB4MGVmYiwJMTYsCXsweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDEwLCAweGYwLCAweGU1LCAweDM0LCAweDIwfSB9LAoteyAweDBmMGIsCTE2LAl7MHhlMywgMHgwNiwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg4MCwgMHgyMiwgMHhlNSwgMHgzMSwgMHgzMCwgMHhlMywgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZH0gfSwKLXsgMHgwZjFiLAkxNiwJezB4ZTAsIDB4OTAsIDB4MDIsIDB4ZmIsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4ZTUsIDB4MjIsIDB4MzAsIDB4ZTMsIDB4MDcsIDB4OTAsIDB4MjAsIDB4MWMsIDB4ZTB9IH0sCi17IDB4MGYyYiwJMTYsCXsweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDE5LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzLCAweDc1LCAweDJjfSB9LAoteyAweDBmM2IsCTE2LAl7MHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZjRiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4ODAsIDB4ZjAsIDB4ZDB9IH0sCi17IDB4MGY1YiwJNiwJezB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGY2MSwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFhLCAweDc0LCAweDgwLCAweGYwLCAweDkwfSB9LAoteyAweDBmNzEsCTEyLAl7MHgwMSwgMHhiZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZjdkLAkxNiwJezB4OTAsIDB4MDEsIDB4MjAsIDB4MTIsIDB4YTMsIDB4ZmEsIDB4MDAsIDB4MDAsIDB4MjUsIDB4ODAsIDB4OTAsIDB4MDEsIDB4MjQsIDB4NzQsIDB4MDgsIDB4ZjB9IH0sCi17IDB4MGY4ZCwJMTYsCXsweGEzLCAweDc0LCAweDAxLCAweGYwLCAweGEzLCAweDc0LCAweDZlLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweDc0LCAweDEzLCAweGYwLCAweGEzLCAweDc0fSB9LAoteyAweDBmOWQsCTE2LAl7MHgxMSwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHhmZn0gfSwKLXsgMHgwZmFkLAkxNiwJezB4MDQsIDB4YTMsIDB4ZjAsIDB4ZWYsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MDEsIDB4ZjksIDB4NzQsIDB4MDMsIDB4MzUsIDB4ZjAsIDB4YTh9IH0sCi17IDB4MGZiZCwJMTYsCXsweDAxLCAweGZjLCAweDdkLCAweDAxLCAweDdiLCAweDAxLCAweDdhLCAweDAxLCAweDc5LCAweDFmLCAweDdlLCAweDAwLCAweDdmLCAweDBkLCAweDEyLCAweGEyfSB9LAoteyAweDBmY2QsCTE2LAl7MHgxMiwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgxZiwgMHgxMiwgMHg4NywgMHhhNiwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHgwNCwgMHhmMCwgMHhlMCwgMHhjM30gfSwKLXsgMHgwZmRkLAkxNiwJezB4OTQsIDB4MDQsIDB4NDAsIDB4YzcsIDB4ZTQsIDB4ZjUsIDB4MjcsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4ZmZ9IH0sCi17IDB4MGZlZCwJMTYsCXsweGMzLCAweDk0LCAweDA0LCAweDUwLCAweDFhLCAweDc0LCAweGY4LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGU0fSB9LAoteyAweDBmZmQsCTE2LAl7MHhmMCwgMHg3NCwgMHgyMywgMHgyZiwgMHhmOCwgMHhlNCwgMHhmNiwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHgwNCwgMHhmMCwgMHg4MCwgMHhkYywgMHhlNH0gfSwKLXsgMHgxMDBkLAkxNiwJezB4ZjUsIDB4MzQsIDB4ZTUsIDB4YzAsIDB4NjAsIDB4MmYsIDB4OTAsIDB4MDEsIDB4MWUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTB9IH0sCi17IDB4MTAxZCwJMTYsCXsweGZmLCAweGQzLCAweDk0LCAweDA0LCAweDUwLCAweDFmLCAweGVmLCAweDE0LCAweGZmLCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyfSB9LAoteyAweDEwMmQsCTE2LAl7MHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0MiwgMHgzNCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgxZSwgMHgxMiwgMHg4NCwgMHg0MSwgMHg5MCwgMHgwMSwgMHgxZX0gfSwKLXsgMHgxMDNkLAkxNiwJezB4ZTAsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4ZDcsIDB4ZTQsIDB4ZjUsIDB4M2UsIDB4ZjUsIDB4MjIsIDB4ZjUsIDB4MzEsIDB4ZjUsIDB4MzIsIDB4OTAsIDB4MDF9IH0sCi17IDB4MTA0ZCwJMTYsCXsweDFlLCAweGYwLCAweDkwLCAweDAxLCAweDFlLCAweGUwLCAweGZmLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0fSB9LAoteyAweDEwNWQsCTE2LAl7MHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmMCwgMHhmZSwgMHg3NCwgMHhjNSwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMX0gfSwKLXsgMHgxMDZkLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZWUsIDB4ZjAsIDB4NzQsIDB4M2EsIDB4MmYsIDB4ZjgsIDB4YTYsIDB4MDYsIDB4NzQsIDB4MzYsIDB4MmYsIDB4ZjgsIDB4ZTQsIDB4ZjZ9IH0sCi17IDB4MTA3ZCwJMTYsCXsweDc0LCAweDJkLCAweDJmLCAweGY4LCAweGU0LCAweGY2LCAweDc0LCAweGZjLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzfSB9LAoteyAweDEwOGQsCTE2LAl7MHhlNCwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHgwNCwgMHhmMCwgMHhlMCwgMHhiNCwgMHgwNCwgMHhiNiwgMHg5MCwgMHgyMCwgMHg2MCwgMHhlMH0gfSwKLXsgMHgxMDlkLAk0LAl7MHg1NCwgMHgwZiwgMHhmNSwgMHg0ZX0gfSwKLXsgMHgxMGExLAkxNiwJezB4NzAsIDB4MDMsIDB4MDIsIDB4MTEsIDB4MjYsIDB4ZTQsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4ZmYsIDB4YzN9IH0sCi17IDB4MTBiMSwJMTYsCXsweDk0LCAweDA0LCAweDUwLCAweGU0LCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDU1fSB9LAoteyAweDEwYzEsCTE2LAl7MHg0ZSwgMHg2MCwgMHg1YSwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHhmZSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNSwgMHg4Mn0gfSwKLXsgMHgxMGQxLAkxNiwJezB4ZTQsIDB4MzQsIDB4MjAsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZWUsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4MTBlMSwJMTYsCXsweGU0LCAweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGUwLCAweGVlLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0fSB9LAoteyAweDEwZjEsCTE2LAl7MHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhhZiwgMHgwNiwgMHhlZSwgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNX0gfSwKLXsgMHgxMTAxLAkxNiwJezB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTB9IH0sCi17IDB4MTExMSwJMTYsCXsweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzLCAweDdkLCAweDA2LCAweDEyLCAweDgzLCAweGRmLCAweDkwLCAweDAxLCAweDFlfSB9LAoteyAweDExMjEsCTYsCXsweGUwLCAweDA0LCAweGYwLCAweDgwLCAweDg1LCAweDIyfSB9LAoteyAweDExMjcsCTIsCXsweGFjLCAweDA3fSB9LAoteyAweDExMjksCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlYywgMHgyNSwgMHhlMCwgMHg0NCwgMHg0MSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMH0gfSwKLXsgMHgxMTM5LAkxNiwJezB4N2IsIDB4M2MsIDB4YWYsIDB4MDMsIDB4MWIsIDB4ZWYsIDB4NzAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MTE0OSwJMTYsCXsweDdmLCAweGE2LCAweGUwLCAweGZkLCAweDdkLCAweDMyLCAweGFmLCAweDA1LCAweDFkLCAweGVmLCAweDYwLCAweGQ0LCAweDgwLCAweGY4LCAweDkwLCAweDdmfSB9LAoteyAweDExNTksCTE2LAl7MHhhNSwgMHhlMCwgMHhmZCwgMHgzMCwgMHhlMCwgMHhkYywgMHgyMCwgMHhlMSwgMHgwOSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZSwgMHhmZiwgMHg3Zn0gfSwKLXsgMHgxMTY5LAkxNiwJezB4ZjksIDB4MjIsIDB4ZWQsIDB4MzAsIDB4ZTIsIDB4MGMsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4ZmYsIDB4N2Z9IH0sCi17IDB4MTE3OSwJMTYsCXsweGZhLCAweDIyLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGZkLCAweDdiLCAweDFlfSB9LAoteyAweDExODksCTE2LAl7MHhhZiwgMHgwMywgMHgxYiwgMHhlZiwgMHg3MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNn0gfSwKLXsgMHgxMTk5LAkxNiwJezB4ZTAsIDB4ZmQsIDB4N2QsIDB4MzIsIDB4YWYsIDB4MDUsIDB4MWQsIDB4ZWYsIDB4NjAsIDB4ODYsIDB4ODAsIDB4ZjgsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTB9IH0sCi17IDB4MTFhOSwJMTYsCXsweGZkLCAweDIwLCAweGUwLCAweGRjLCAweDdiLCAweDNjLCAweGFmLCAweDAzLCAweDFiLCAweGVmLCAweDcwLCAweDE5LCAweDkwLCAweDdmLCAweGE1LCAweGUwfSB9LAoteyAweDExYjksCTE2LAl7MHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhmZCwgMHg3ZCwgMHgzMiwgMHhhZiwgMHgwNSwgMHgxZCwgMHhlZiwgMHg3MCwgMHgwM30gfSwKLXsgMHgxMWM5LAkxNiwJezB4MDIsIDB4MTEsIDB4MjksIDB4ODAsIDB4ZjUsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4ZmQsIDB4MzAsIDB4ZTAsIDB4ZDksIDB4MzAsIDB4ZTIsIDB4MDl9IH0sCi17IDB4MTFkOSwJMTYsCXsweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdlLCAweGZmLCAweDdmLCAweGZhLCAweDIyLCAweGMyLCAweGFmLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0fSB9LAoteyAweDExZTksCTEyLAl7MHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhmZCwgMHhkMiwgMHhhZiwgMHhmZiwgMHg3ZSwgMHgwMH0gfSwKLXsgMHgxMWY1LAkxLAl7MHgyMn0gfSwKLXsgMHgxMjAwLAkxNiwJezB4MTIsIDB4MDEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4NDAsIDB4MTAsIDB4MDcsIDB4MDEsIDB4ODAsIDB4NDIsIDB4MDAsIDB4MDEsIDB4MDJ9IH0sCi17IDB4MTIxMCwJMTYsCXsweDAzLCAweDAxLCAweDA5LCAweDAyLCAweDU4LCAweDAwLCAweDAxLCAweDAxLCAweDA0LCAweDgwLCAweDNjLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDBhfSB9LAoteyAweDEyMjAsCTE2LAl7MHhmZiwgMHhmZiwgMHhmZiwgMHgwNSwgMHgwNywgMHgwNSwgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwgMHgwMiwgMHg0MH0gfSwKLXsgMHgxMjMwLAkxNiwJezB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDB9IH0sCi17IDB4MTI0MCwJMTYsCXsweDA3LCAweDA1LCAweDgzLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1fSB9LAoteyAweDEyNTAsCTE2LAl7MHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHg4NywgMHgwMn0gfSwKLXsgMHgxMjYwLAkxNiwJezB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4MjQsIDB4MDN9IH0sCi17IDB4MTI3MCwJMTYsCXsweDQzLCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDY1LCAweDAwLCAweDYzLCAweDAwLCAweDc0LCAweDAwLCAweDIwLCAweDAwfSB9LAoteyAweDEyODAsCTE2LAl7MHg1NCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg2MywgMHgwMCwgMHg2OCwgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMH0gfSwKLXsgMHgxMjkwLAkxNiwJezB4MmUsIDB4MDAsIDB4MTgsIDB4MDMsIDB4NTcsIDB4MDAsIDB4NjgsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NDgsIDB4MDB9IH0sCi17IDB4MTJhMCwJMTYsCXsweDQ1LCAweDAwLCAweDQxLCAweDAwLCAweDU0LCAweDAwLCAweDJkLCAweDAwLCAweDM0LCAweDAwLCAweDFhLCAweDAzLCAweDU4LCAweDAwLCAweDU4LCAweDAwfSB9LAoteyAweDEyYjAsCTE2LAl7MHgyZCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1OCwgMHgwMCwgMHgyZCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1OCwgMHgwMH0gfSwKLXsgMHgxMmMwLAkxNiwJezB4NTgsIDB4MDAsIDB4NTgsIDB4MDAsIDB4MmEsIDB4MDMsIDB4NDMsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjYsIDB4MDAsIDB4NjksIDB4MDB9IH0sCi17IDB4MTJkMCwJMTYsCXsweDY3LCAweDAwLCAweDc1LCAweDAwLCAweDcyLCAweDAwLCAweDYxLCAweDAwLCAweDc0LCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwfSB9LAoteyAweDEyZTAsCTE2LAl7MHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NywgMHgwMCwgMHgyMiwgMHgwM30gfSwKLXsgMHgxMmYwLAkxNiwJezB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjYsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NjMsIDB4MDB9IH0sCi17IDB4MTMwMCwJMTYsCXsweDY1LCAweDAwLCAweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDc0LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDZlLCAweDAwLCAweDY3LCAweDAwfSB9LAoteyAweDEzMTAsCTIsCXsweDAwLCAweDAwfSB9LAoteyAweDEzMTIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHhmMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHhjMCwgMHhkMH0gfSwKLXsgMHgxMzIyLAkxNiwJezB4NzUsIDB4ODYsIDB4MDAsIDB4NzUsIDB4ZDAsIDB4MTgsIDB4OTAsIDB4MjAsIDB4NjAsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4ZjUsIDB4ZjAsIDB4NzAsIDB4MTF9IH0sCi17IDB4MTMzMiwJMTYsCXsweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGYwLCAweGQwLCAweGUwfSB9LAoteyAweDEzNDIsCTE2LAl7MHgzMiwgMHg3NSwgMHg4NiwgMHgwMCwgMHgxMCwgMHhmMCwgMHgwYiwgMHgxMCwgMHhmMSwgMHgxMiwgMHgxMCwgMHhmMiwgMHgxOSwgMHgxMCwgMHhmMywgMHgyMH0gfSwKLXsgMHgxMzUyLAkxNiwJezB4ODAsIDB4ZDQsIDB4ZTUsIDB4MjgsIDB4NzAsIDB4MDMsIDB4NzUsIDB4MjgsIDB4MTQsIDB4MDIsIDB4MTMsIDB4N2MsIDB4ZTUsIDB4MjksIDB4NzAsIDB4MDN9IH0sCi17IDB4MTM2MiwJMTYsCXsweDc1LCAweDI5LCAweDE0LCAweDAyLCAweDE1LCAweDBkLCAweGU1LCAweDJhLCAweDcwLCAweDAzLCAweDc1LCAweDJhLCAweDE0LCAweDAyLCAweDE2LCAweDllfSB9LAoteyAweDEzNzIsCTE2LAl7MHhlNSwgMHgyYiwgMHg3MCwgMHgwMywgMHg3NSwgMHgyYiwgMHgxNCwgMHgwMiwgMHgxOCwgMHgyZiwgMHg5MCwgMHgyMCwgMHgwMiwgMHhlMCwgMHg1NCwgMHgzZn0gfSwKLXsgMHgxMzgyLAkxNiwJezB4MjAsIDB4ZTIsIDB4M2EsIDB4MjAsIDB4ZTEsIDB4MGIsIDB4MjAsIDB4ZTQsIDB4MGIsIDB4MjAsIDB4ZTUsIDB4MTQsIDB4NjAsIDB4MDksIDB4MDIsIDB4MTN9IH0sCi17IDB4MTM5MiwJMTYsCXsweDQzLCAweDAyLCAweDE0LCAweDY1LCAweDAyLCAweDEzLCAweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwLCAweGY1LCAweDNhLCAweDAyLCAweDEzLCAweDQzfSB9LAoteyAweDEzYTIsCTE2LAl7MHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHg0MywgMHgyZCwgMHgwMSwgMHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHg4MiwgMHhmOCwgMHg0MywgMHg4MiwgMHgwNX0gfSwKLXsgMHgxM2IyLAkxNiwJezB4ZTAsIDB4NDIsIDB4MzYsIDB4NTMsIDB4ODIsIDB4ZmIsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4MzAsIDB4ZTEsIDB4MDJ9IH0sCi17IDB4MTNjMiwJMTYsCXsweDgwLCAweGU4LCAweGY1LCAweDg1LCAweGU1LCAweDMyLCAweDMwLCAweGUwLCAweDBhLCAweDUzLCAweDgyLCAweGY4LCAweDQzLCAweDgyLCAweDA0LCAweGUwfSB9LAoteyAweDEzZDIsCTE2LAl7MHg1NCwgMHhmZSwgMHhmMCwgMHhlNSwgMHg4NSwgMHgyMCwgMHhlMywgMHg1NiwgMHg5MCwgMHgyMCwgMHg1MCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg5MCwgMHgyMH0gfSwKLXsgMHgxM2UyLAkxNiwJezB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTMsIDB4MDUsIDB4ODZ9IH0sCi17IDB4MTNmMiwJMTYsCXsweDkwLCAweDdlLCAweDgwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwLCAweGEzLCAweGU1LCAweDg0LCAweGYwLCAweDA1LCAweDg2LCAweDkwLCAweDdmfSB9LAoteyAweDE0MDIsCTE2LAl7MHhlNSwgMHhlNSwgMHgzZiwgMHhmZCwgMHgwMywgMHgwMywgMHgwMywgMHhmZSwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMH0gfSwKLXsgMHgxNDEyLAkxNiwJezB4ZGUsIDB4ZjYsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MTQyMiwJMTYsCXsweDdmLCAweGI3LCAweGVkLCAweGYwLCAweDkwLCAweDIwLCAweDAxLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDdmLCAweDQwfSB9LAoteyAweDE0MzIsCTE2LAl7MHg5MCwgMHg3ZSwgMHg4MCwgMHgwNSwgMHg4NiwgMHg5MCwgMHgyMCwgMHgwMCwgMHhlNSwgMHg4NCwgMHhmZSwgMHgyNCwgMHgwNSwgMHhmZCwgMHg4ZCwgMHg4NH0gfSwKLXsgMHgxNDQyLAkxNiwJezB4ZTAsIDB4OGUsIDB4ODQsIDB4MzAsIDB4ZTAsIDB4MDksIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZWYsIDB4MDV9IH0sCi17IDB4MTQ1MiwJMTYsCXsweDg2LCAweGMzLCAweDc0LCAweDQwLCAweDlmLCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDA1LCAweDg2LCAweGEzLCAweGUwLCAweDU0LCAweGZlLCAweGYwfSB9LAoteyAweDE0NjIsCTE2LAl7MHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHgyZCwgMHhmYSwgMHhlNSwgMHgyMywgMHg2MCwgMHgwOCwgMHg3NSwgMHgyMywgMHgwMCwgMHhkMiwgMHhlNywgMHhmZX0gfSwKLXsgMHgxNDcyLAkxNiwJezB4ODAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MTQsIDB4ZmYsIDB4OTAsIDB4MjAsIDB4NTAsIDB4NzR9IH0sCi17IDB4MTQ4MiwJMTYsCXsweDAwLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwfSB9LAoteyAweDE0OTIsCTE2LAl7MHg3ZiwgMHhlMywgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZSwgMHg0MCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NSwgMHhmMCwgMHhhMywgMHhlNSwgMHg4NCwgMHhmMH0gfSwKLXsgMHgxNGEyLAkxNiwJezB4MDUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4ZTUsIDB4ZWUsIDB4MzAsIDB4ZTcsIDB4MDgsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4MjQsIDB4MzgsIDB4ZjAsIDB4MDV9IH0sCi17IDB4MTRiMiwJMTYsCXsweDg2LCAweGVlLCAweDU0LCAweDdmLCAweGZlLCAweDU0LCAweDA3LCAweGZiLCAweGVlLCAweDU0LCAweDc4LCAweDYwLCAweDMwLCAweDAzLCAweDAzLCAweDAzfSB9LAoteyAweDE0YzIsCTE2LAl7MHgzMCwgMHhlMywgMHgwNCwgMHg3NCwgMHgwNywgMHg3YiwgMHgwOCwgMHhmZCwgMHhmYywgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMH0gfSwKLXsgMHgxNGQyLAkxNiwJezB4ZTAsIDB4ZGQsIDB4ZjYsIDB4ZWIsIDB4ZmUsIDB4NjAsIDB4MTksIDB4ZWMsIDB4NjQsIDB4MDcsIDB4NzAsIDB4MTEsIDB4OGIsIDB4MjMsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MTRlMiwJMTYsCXsweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwLCAweDgwLCAweDFiLCAweGUwLCAweGRlLCAweGZkfSB9LAoteyAweDE0ZjIsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwMX0gfSwKLXsgMHgxNTAyLAkxNiwJezB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4OTAsIDB4MjAsIDB4MGEsIDB4ZTAsIDB4NTR9IH0sCi17IDB4MTUxMiwJMTYsCXsweDNmLCAweDIwLCAweGUyLCAweDNhLCAweDIwLCAweGUxLCAweDBiLCAweDIwLCAweGU0LCAweDBiLCAweDIwLCAweGU1LCAweDE0LCAweDYwLCAweDA5LCAweDAyfSB9LAoteyAweDE1MjIsCTE2LAl7MHgxMywgMHg0MywgMHgwMiwgMHgxNSwgMHhmNiwgMHgwMiwgMHgxMywgMHg0MywgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHhmNSwgMHgzYiwgMHgwMiwgMHgxM30gfSwKLXsgMHgxNTMyLAkxNiwJezB4NDMsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4NDMsIDB4MmUsIDB4MDEsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NTMsIDB4ODIsIDB4ZjgsIDB4NDMsIDB4ODJ9IH0sCi17IDB4MTU0MiwJMTYsCXsweDA1LCAweGUwLCAweDQyLCAweDM3LCAweDUzLCAweDgyLCAweGZiLCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDMwLCAweGUxfSB9LAoteyAweDE1NTIsCTE2LAl7MHgwMiwgMHg4MCwgMHhlOCwgMHhmNSwgMHg4NSwgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMSwgMHgwYSwgMHg1MywgMHg4MiwgMHhmOCwgMHg0MywgMHg4MiwgMHgwNH0gfSwKLXsgMHgxNTYyLAkxNiwJezB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTUsIDB4ODUsIDB4MjAsIDB4ZTMsIDB4NTYsIDB4OTAsIDB4MjAsIDB4NTAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MTU3MiwJMTYsCXsweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGUzLCAweDA1fSB9LAoteyAweDE1ODIsCTE2LAl7MHg4NiwgMHg5MCwgMHg3ZSwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NSwgMHhmMCwgMHhhMywgMHhlNSwgMHg4NCwgMHhmMCwgMHgwNSwgMHg4NiwgMHg5MH0gfSwKLXsgMHgxNTkyLAkxNiwJezB4N2YsIDB4ZTUsIDB4ZTUsIDB4NDAsIDB4ZmQsIDB4MDMsIDB4MDMsIDB4MDMsIDB4ZmUsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjB9IH0sCi17IDB4MTVhMiwJMTYsCXsweGYwLCAweGRlLCAweGY2LCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwfSB9LAoteyAweDE1YjIsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiOSwgMHhlZCwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwOSwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg3Zn0gfSwKLXsgMHgxNWMyLAkxNiwJezB4NDAsIDB4OTAsIDB4N2UsIDB4MDAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MjAsIDB4MDgsIDB4ZTUsIDB4ODQsIDB4ZmUsIDB4MjQsIDB4MDUsIDB4ZmQsIDB4OGR9IH0sCi17IDB4MTVkMiwJMTYsCXsweDg0LCAweGUwLCAweDhlLCAweDg0LCAweDMwLCAweGUwLCAweDA5LCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGVmfSB9LAoteyAweDE1ZTIsCTE2LAl7MHgwNSwgMHg4NiwgMHhjMywgMHg3NCwgMHg0MCwgMHg5ZiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhmMCwgMHgwNSwgMHg4NiwgMHhhMywgMHhlMCwgMHg1NCwgMHhmZX0gfSwKLXsgMHgxNWYyLAkxNiwJezB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NTMsIDB4MmUsIDB4ZmEsIDB4ZTUsIDB4MjQsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MjQsIDB4MDAsIDB4ZDIsIDB4ZTd9IH0sCi17IDB4MTYwMiwJMTYsCXsweGZlLCAweDgwLCAweDBhLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGZlLCAweDcwLCAweDAzLCAweDAyLCAweDE2LCAweDkwLCAweDkwLCAweDIwLCAweDUwfSB9LAoteyAweDE2MTIsCTE2LAl7MHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMH0gfSwKLXsgMHgxNjIyLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2QsIDB4YzAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODUsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODR9IH0sCi17IDB4MTYzMiwJMTYsCXsweGYwLCAweDA1LCAweDg2LCAweDkwLCAweDdmLCAweGU1LCAweGVlLCAweDMwLCAweGU3LCAweDA4LCAweDA1LCAweDg2LCAweGUwLCAweDI0LCAweDM4LCAweGYwfSB9LAoteyAweDE2NDIsCTE2LAl7MHgwNSwgMHg4NiwgMHhlZSwgMHg1NCwgMHg3ZiwgMHhmZSwgMHg1NCwgMHgwNywgMHhmYiwgMHhlZSwgMHg1NCwgMHg3OCwgMHg2MCwgMHgzMCwgMHgwMywgMHgwM30gfSwKLXsgMHgxNjUyLAkxNiwJezB4MDMsIDB4MzAsIDB4ZTMsIDB4MDQsIDB4NzQsIDB4MDcsIDB4N2IsIDB4MDgsIDB4ZmQsIDB4ZmMsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTB9IH0sCi17IDB4MTY2MiwJMTYsCXsweGUwLCAweGUwLCAweGRkLCAweGY2LCAweGViLCAweGZlLCAweDYwLCAweDE5LCAweGVjLCAweDY0LCAweDA3LCAweDcwLCAweDExLCAweDhiLCAweDI0LCAweDkwfSB9LAoteyAweDE2NzIsCTE2LAl7MHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg4MCwgMHgxYiwgMHhlMCwgMHhkZX0gfSwKLXsgMHgxNjgyLAkxNCwJezB4ZmQsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjB9IH0sCi17IDB4MTY5MCwJMTYsCXsweDkwLCAweDIwLCAweDA5LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDkwLCAweDIwfSB9LAoteyAweDE2YTAsCTE2LAl7MHgxMiwgMHhlMCwgMHg1NCwgMHgzZiwgMHgyMCwgMHhlMiwgMHgzYSwgMHgyMCwgMHhlMSwgMHgwYiwgMHgyMCwgMHhlNCwgMHgwYiwgMHgyMCwgMHhlNSwgMHgxNH0gfSwKLXsgMHgxNmIwLAkxNiwJezB4NjAsIDB4MDksIDB4MDIsIDB4MTMsIDB4NDMsIDB4MDIsIDB4MTcsIDB4ODcsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4ZjV9IH0sCi17IDB4MTZjMCwJMTYsCXsweDNjLCAweDAyLCAweDEzLCAweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwLCAweDQzLCAweDJmLCAweDAxLCAweDAyLCAweDEzLCAweDQzLCAweDUzLCAweDgyfSB9LAoteyAweDE2ZDAsCTE2LAl7MHhmOCwgMHg0MywgMHg4MiwgMHgwNSwgMHhlMCwgMHg0MiwgMHgzOCwgMHg1MywgMHg4MiwgMHhmYiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHgwMiwgMHgxM30gfSwKLXsgMHgxNmUwLAkxNiwJezB4NDMsIDB4MzAsIDB4ZTEsIDB4MDIsIDB4ODAsIDB4ZTgsIDB4ZjUsIDB4ODUsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTIsIDB4MGEsIDB4NTMsIDB4ODIsIDB4Zjh9IH0sCi17IDB4MTZmMCwJMTYsCXsweDQzLCAweDgyLCAweDA0LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGU1LCAweDg1LCAweDIwLCAweGUzLCAweDU2LCAweDkwLCAweDIwLCAweDUwLCAweDc0fSB9LAoteyAweDE3MDAsCTE2LAl7MHgwMiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgxNzEwLAkxNiwJezB4N2YsIDB4ZTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2QsIDB4ODAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODUsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODQsIDB4ZjB9IH0sCi17IDB4MTcyMCwJMTYsCXsweDA1LCAweDg2LCAweDkwLCAweDdmLCAweGU1LCAweGU1LCAweDQxLCAweGZkLCAweDAzLCAweDAzLCAweDAzLCAweGZlLCAweGYwLCAweGYwLCAweGYwLCAweGYwfSB9LAoteyAweDE3MzAsCTE2LAl7MHhmMCwgMHhmMCwgMHhmMCwgMHhmMCwgMHhkZSwgMHhmNiwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OH0gfSwKLXsgMHgxNzQwLAkxNiwJezB4NzQsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZWQsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTEsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MDJ9IH0sCi17IDB4MTc1MCwJMTYsCXsweDEzLCAweDQzLCAweDdmLCAweDQwLCAweDkwLCAweDdkLCAweDgwLCAweDA1LCAweDg2LCAweDkwLCAweDIwLCAweDEwLCAweGU1LCAweDg0LCAweGZlLCAweDI0fSB9LAoteyAweDE3NjAsCTE2LAl7MHgwNSwgMHhmZCwgMHg4ZCwgMHg4NCwgMHhlMCwgMHg4ZSwgMHg4NCwgMHgzMCwgMHhlMCwgMHgwOSwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNX0gfSwKLXsgMHgxNzcwLAkxNiwJezB4ODYsIDB4ZGYsIDB4ZWYsIDB4MDUsIDB4ODYsIDB4YzMsIDB4NzQsIDB4NDAsIDB4OWYsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4YTN9IH0sCi17IDB4MTc4MCwJMTYsCXsweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDUzLCAweDJmLCAweGZhLCAweGU1LCAweDI1LCAweDYwLCAweDA4LCAweDc1LCAweDI1fSB9LAoteyAweDE3OTAsCTE2LAl7MHgwMCwgMHhkMiwgMHhlNywgMHhmZSwgMHg4MCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlMCwgMHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgxOCwgMHgyMX0gfSwKLXsgMHgxN2EwLAkxNiwJezB4OTAsIDB4MjAsIDB4NTAsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTB9IH0sCi17IDB4MTdiMCwJMTYsCXsweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGUzLCAweDA1LCAweDg2LCAweDkwLCAweDdkLCAweDQwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwfSB9LAoteyAweDE3YzAsCTE2LAl7MHhhMywgMHhlNSwgMHg4NCwgMHhmMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhlNSwgMHhlZSwgMHgzMCwgMHhlNywgMHgwOCwgMHgwNSwgMHg4NiwgMHhlMH0gfSwKLXsgMHgxN2QwLAkxNiwJezB4MjQsIDB4MzgsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZWUsIDB4NTQsIDB4N2YsIDB4ZmUsIDB4NTQsIDB4MDcsIDB4ZmIsIDB4ZWUsIDB4NTQsIDB4NzgsIDB4NjB9IH0sCi17IDB4MTdlMCwJMTYsCXsweDMwLCAweDAzLCAweDAzLCAweDAzLCAweDMwLCAweGUzLCAweDA0LCAweDc0LCAweDA3LCAweDdiLCAweDA4LCAweGZkLCAweGZjLCAweGUwLCAweGUwLCAweGUwfSB9LAoteyAweDE3ZjAsCTE2LAl7MHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhlMCwgMHhkZCwgMHhmNiwgMHhlYiwgMHhmZSwgMHg2MCwgMHgxOSwgMHhlYywgMHg2NCwgMHgwNywgMHg3MCwgMHgxMX0gfSwKLXsgMHgxODAwLAkxNiwJezB4OGIsIDB4MjUsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4ODB9IH0sCi17IDB4MTgxMCwJMTYsCXsweDFiLCAweGUwLCAweGRlLCAweGZkLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwfSB9LAoteyAweDE4MjAsCTE2LAl7MHhmMCwgMHg5MCwgMHgyMCwgMHgxMSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg5MH0gfSwKLXsgMHgxODMwLAkxNiwJezB4MjAsIDB4MWEsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4MjAsIDB4ZTIsIDB4M2EsIDB4MjAsIDB4ZTEsIDB4MGIsIDB4MjAsIDB4ZTQsIDB4MGIsIDB4MjAsIDB4ZTV9IH0sCi17IDB4MTg0MCwJMTYsCXsweDE0LCAweDYwLCAweDA5LCAweDAyLCAweDEzLCAweDQzLCAweDAyLCAweDE5LCAweDE4LCAweDAyLCAweDEzLCAweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwfSB9LAoteyAweDE4NTAsCTE2LAl7MHhmNSwgMHgzZCwgMHgwMiwgMHgxMywgMHg0MywgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHg0MywgMHgzMCwgMHgwMSwgMHgwMiwgMHgxMywgMHg0MywgMHg1M30gfSwKLXsgMHgxODYwLAkxNiwJezB4ODIsIDB4ZjgsIDB4NDMsIDB4ODIsIDB4MDUsIDB4ZTAsIDB4NDIsIDB4MzksIDB4NTMsIDB4ODIsIDB4ZmIsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4MDJ9IH0sCi17IDB4MTg3MCwJMTYsCXsweDEzLCAweDQzLCAweDMwLCAweGUxLCAweDAyLCAweDgwLCAweGU4LCAweGY1LCAweDg1LCAweGU1LCAweDMyLCAweDMwLCAweGUzLCAweDBhLCAweDUzLCAweDgyfSB9LAoteyAweDE4ODAsCTE2LAl7MHhmOCwgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlNSwgMHg4NSwgMHgyMCwgMHhlMywgMHg1NiwgMHg5MCwgMHgyMCwgMHg1MH0gfSwKLXsgMHgxODkwLAkxNiwJezB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjB9IH0sCi17IDB4MThhMCwJMTYsCXsweDkwLCAweDdmLCAweGUzLCAweDA1LCAweDg2LCAweDkwLCAweDdkLCAweDAwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwLCAweGEzLCAweGU1LCAweDg0fSB9LAoteyAweDE4YjAsCTE2LAl7MHhmMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhlNSwgMHhlNSwgMHg0MiwgMHhmZCwgMHgwMywgMHgwMywgMHgwMywgMHhmZSwgMHhmMCwgMHhmMCwgMHhmMH0gfSwKLXsgMHgxOGMwLAkxNiwJezB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZGUsIDB4ZjYsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjB9IH0sCi17IDB4MThkMCwJMTYsCXsweDU4LCAweDc0LCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweGJkLCAweGVkLCAweGYwLCAweDkwLCAweDIwLCAweDE5LCAweGUwLCAweDU0LCAweGZlLCAweGYwfSB9LAoteyAweDE4ZTAsCTE2LAl7MHgwMiwgMHgxMywgMHg0MywgMHg3ZiwgMHg0MCwgMHg5MCwgMHg3ZCwgMHgwMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHgyMCwgMHgxOCwgMHhlNSwgMHg4NCwgMHhmZX0gfSwKLXsgMHgxOGYwLAkxNiwJezB4MjQsIDB4MDUsIDB4ZmQsIDB4OGQsIDB4ODQsIDB4ZTAsIDB4OGUsIDB4ODQsIDB4MzAsIDB4ZTAsIDB4MDksIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTN9IH0sCi17IDB4MTkwMCwJMTYsCXsweDA1LCAweDg2LCAweGRmLCAweGVmLCAweDA1LCAweDg2LCAweGMzLCAweDc0LCAweDQwLCAweDlmLCAweDkwLCAweDdmLCAweGJkLCAweGYwLCAweDA1LCAweDg2fSB9LAoteyAweDE5MTAsCTE2LAl7MHhhMywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHgzMCwgMHhmYSwgMHhlNSwgMHgyNiwgMHg2MCwgMHgwOCwgMHg3NX0gfSwKLXsgMHgxOTIwLAkxNiwJezB4MjYsIDB4MDAsIDB4ZDIsIDB4ZTcsIDB4ZmUsIDB4ODAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZTAsIDB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MTl9IH0sCi17IDB4MTkzMCwJMTYsCXsweGIyLCAweDkwLCAweDIwLCAweDUwLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyfSB9LAoteyAweDE5NDAsCTE2LAl7MHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMywgMHgwNSwgMHg4NiwgMHg5MCwgMHg3YywgMHhjMCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NX0gfSwKLXsgMHgxOTUwLAkxNiwJezB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODQsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4ZTUsIDB4ZWUsIDB4MzAsIDB4ZTcsIDB4MDgsIDB4MDUsIDB4ODZ9IH0sCi17IDB4MTk2MCwJMTYsCXsweGUwLCAweDI0LCAweDM4LCAweGYwLCAweDA1LCAweDg2LCAweGVlLCAweDU0LCAweDdmLCAweGZlLCAweDU0LCAweDA3LCAweGZiLCAweGVlLCAweDU0LCAweDc4fSB9LAoteyAweDE5NzAsCTE2LAl7MHg2MCwgMHgzMCwgMHgwMywgMHgwMywgMHgwMywgMHgzMCwgMHhlMywgMHgwNCwgMHg3NCwgMHgwNywgMHg3YiwgMHgwOCwgMHhmZCwgMHhmYywgMHhlMCwgMHhlMH0gfSwKLXsgMHgxOTgwLAkxNiwJezB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZGQsIDB4ZjYsIDB4ZWIsIDB4ZmUsIDB4NjAsIDB4MTksIDB4ZWMsIDB4NjQsIDB4MDcsIDB4NzB9IH0sCi17IDB4MTk5MCwJMTYsCXsweDExLCAweDhiLCAweDI2LCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwfSB9LAoteyAweDE5YTAsCTE2LAl7MHg4MCwgMHgxYiwgMHhlMCwgMHhkZSwgMHhmZCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NH0gfSwKLXsgMHgxOWIwLAkxNiwJezB4MDAsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MTksIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDN9IH0sCi17IDB4MTljMCwJMSwJezB4MzJ9IH0sCi17IDB4MTljMSwJNCwJezB4YWQsIDB4MDcsIDB4YWMsIDB4MDZ9IH0sCi17IDB4MTljNSwJMTYsCXsweDc5LCAweDA2LCAweGVkLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDNjLCAweGY1LCAweDgzLCAweGUwLCAweGZhLCAweGEzLCAweGUwLCAweGZifSB9LAoteyAweDE5ZDUsCTE2LAl7MHg0YSwgMHg3MCwgMHgwMywgMHgwMiwgMHgxYiwgMHgwOSwgMHhlOSwgMHhiNCwgMHgwNywgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgxYSwgMHhkYiwgMHg5MH0gfSwKLXsgMHgxOWU1LAkxNiwJezB4MTksIDB4ZWIsIDB4ZjgsIDB4MjgsIDB4MjgsIDB4NzMsIDB4MDIsIDB4MWEsIDB4YjksIDB4MDIsIDB4MWEsIDB4NzEsIDB4MDIsIDB4MWEsIDB4NWEsIDB4MDJ9IH0sCi17IDB4MTlmNSwJMTYsCXsweDFhLCAweDQwLCAweDAyLCAweDFhLCAweDJmLCAweDAyLCAweDFhLCAweDFhLCAweDAyLCAweDFhLCAweDAwLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0fSB9LAoteyAweDFhMDUsCTE2LAl7MHg4MCwgMHhmMCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHgyNSwgMHhlMCwgMHg0NCwgMHhhMCwgMHg5MCwgMHg3ZiwgMHhhNn0gfSwKLXsgMHgxYTE1LAkxNiwJezB4ZjAsIDB4MTksIDB4MDIsIDB4MWEsIDB4ZGIsIDB4MTksIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4YzMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MGF9IH0sCi17IDB4MWEyNSwJMTYsCXsweGEzLCAweGEzLCAweGUwLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDAyLCAweDFhLCAweGRiLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGEzLCAweGEzfSB9LAoteyAweDFhMzUsCTE2LAl7MHhlMCwgMHhhMywgMHhlMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHgxOSwgMHgwMiwgMHgxYSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NH0gfSwKLXsgMHgxYTQ1LAkxNiwJezB4ODAsIDB4ZjAsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4NDQsIDB4YTEsIDB4OTAsIDB4N2YsIDB4YTZ9IH0sCi17IDB4MWE1NSwJMTYsCXsweGYwLCAweDE5LCAweDAyLCAweDFhLCAweGRiLCAweGViLCAweDY0LCAweDAxLCAweDRhLCAweDcwLCAweDA4LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0fSB9LAoteyAweDFhNjUsCTE2LAl7MHgyMCwgMHhmMCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhmNSwgMHg1OSwgMHgxOSwgMHg4MCwgMHg2YSwgMHhlZCwgMHgyNCwgMHgwNCwgMHhmNX0gfSwKLXsgMHgxYTc1LAkxNiwJezB4ODIsIDB4ZTQsIDB4M2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4NjQsIDB4MDIsIDB4NGUsIDB4NzAsIDB4MDgsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MWE4NSwJMTYsCXsweGE1LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDE5LCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGZmLCAweGVkLCAweDI0LCAweDA2LCAweGY1LCAweDgyfSB9LAoteyAweDFhOTUsCTE2LAl7MHhlNCwgMHgzYywgMHhmNSwgMHg4MywgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNSwgMHg4M30gfSwKLXsgMHgxYWE1LAkxNiwJezB4ZWYsIDB4ZjAsIDB4ZWQsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2MsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ZmYsIDB4ZjUsIDB4ZjAsIDB4MTJ9IH0sCi17IDB4MWFiNSwJMTYsCXsweGEyLCAweDgxLCAweDgwLCAweDIyLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGZmfSB9LAoteyAweDFhYzUsCTE2LAl7MHhlZCwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzYywgMHhmNSwgMHg4MywgMHhlMCwgMHhmYSwgMHhhMywgMHhlMCwgMHhmNSwgMHg4MiwgMHg4YX0gfSwKLXsgMHgxYWQ1LAkxNiwJezB4ODMsIDB4ZWYsIDB4ZjAsIDB4N2YsIDB4MDgsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4ZjUsIDB4NTksIDB4MzAsIDB4ZTAsIDB4ZjcsIDB4MzB9IH0sCi17IDB4MWFlNSwJMTYsCXsweGUyLCAweDA3LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA2LCAweDIyLCAweGU5LCAweGQzLCAweDk0LCAweDAyLCAweDUwLCAweDAzLCAweDAyfSB9LAoteyAweDFhZjUsCTE2LAl7MHgxOSwgMHhjNywgMHhlNSwgMHg1OSwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgxOSwgMHhjNywgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MH0gfSwKLXsgMHgxYjA1LAk2LAl7MHhmMCwgMHg3ZiwgMHgwNywgMHgyMiwgMHg3ZiwgMHgwOH0gfSwKLXsgMHgxYjBiLAkxLAl7MHgyMn0gfSwKLXsgMHgxYjBjLAkxNiwJezB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NTAsIDB4MWMsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4N2YsIDB4MDJ9IH0sCi17IDB4MWIxYywJMTYsCXsweDdkLCAweGZmLCAweDEyLCAweDgyLCAweGVhLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDdmLCAweDAzLCAweDdkLCAweGZmfSB9LAoteyAweDFiMmMsCTQsCXsweDEyLCAweDgyLCAweGVhLCAweDIyfSB9LAoteyAweDgwMDAsCTE2LAl7MHg3YiwgMHhmZiwgMHg3YSwgMHgxMiwgMHg3OSwgMHgxYiwgMHg5MCwgMHgwMCwgMHgwNCwgMHgxMiwgMHhhMiwgMHg1NCwgMHhmZCwgMHg4YiwgMHg1MCwgMHg3NX0gfSwKLXsgMHg4MDEwLAkxNiwJezB4NTEsIDB4MTIsIDB4NzUsIDB4NTIsIDB4MjQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZTEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTAsIDB4ZjAsIDB4ZjUsIDB4NGV9IH0sCi17IDB4ODAyMCwJMTYsCXsweGY1LCAweDRmLCAweDkwLCAweDAyLCAweGFlLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLCAweGYwLCAweDkwLCAweDdmfSB9LAoteyAweDgwMzAsCTE2LAl7MHhhOSwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHhlNCwgMHhmYywgMHhlYywgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNX0gfSwKLXsgMHg4MDQwLAkxNiwJezB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4MGMsIDB4YmMsIDB4MTAsIDB4ZWUsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZGR9IH0sCi17IDB4ODA1MCwJMTYsCXsweGYwLCAweGFmLCAweDA1LCAweDFkLCAweGVmLCAweDcwLCAweDAzLCAweDAyLCAweDgxLCAweGM2LCAweGFiLCAweDUwLCAweGFhLCAweDUxLCAweGE5LCAweDUyfSB9LAoteyAweDgwNjAsCTE2LAl7MHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg1NCwgMHg2NCwgMHgwNSwgMHg2MCwgMHgwMywgMHgwMiwgMHg4MSwgMHhiNSwgMHg5MCwgMHgwMCwgMHgwM30gfSwKLXsgMHg4MDcwLAkxNiwJezB4MTIsIDB4YTIsIDB4NTQsIDB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4ODEsIDB4M2MsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4YTIsIDB4NTR9IH0sCi17IDB4ODA4MCwJMTYsCXsweGZmLCAweDU0LCAweDdmLCAweGZjLCAweGQzLCAweDk0LCAweDA3LCAweDUwLCAweDAzLCAweDAyLCAweDgxLCAweDE2LCAweGVjLCAweGMzLCAweDk0LCAweDEwfSB9LAoteyAweDgwOTAsCTE2LAl7MHg0MCwgMHgwMywgMHgwMiwgMHg4MSwgMHgxNiwgMHhlZiwgMHgzMCwgMHhlNywgMHg0MiwgMHhlNSwgMHg0ZiwgMHhhZSwgMHg0ZSwgMHg3OCwgMHgwMiwgMHhjZX0gfSwKLXsgMHg4MGEwLAkxNiwJezB4YzMsIDB4MTMsIDB4Y2UsIDB4MTMsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4NzQsIDB4ZjAsIDB4MmMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjV9IH0sCi17IDB4ODBiMCwJMTYsCXsweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweGUwLCAweGUwLCAweGZmLCAweGVjLCAweDI0LCAweGY4LCAweGZlLCAweDc0LCAweDAxLCAweGE4LCAweDA2fSB9LAoteyAweDgwYzAsCTE2LAl7MHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHhlMCwgMHhmMCwgMHg5MCwgMHgwMiwgMHhhZSwgMHhlMH0gfSwKLXsgMHg4MGQwLAkxNiwJezB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGQsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4M2UsIDB4ZTUsIDB4NGYsIDB4YWUsIDB4NGUsIDB4Nzh9IH0sCi17IDB4ODBlMCwJMTYsCXsweDAyLCAweGNlLCAweGMzLCAweDEzLCAweGNlLCAweDEzLCAweGQ4LCAweGY5LCAweGZmLCAweDc0LCAweGU4LCAweDJjLCAweGY1LCAweDgyLCAweGU0LCAweDM0fSB9LAoteyAweDgwZjAsCTE2LAl7MHg3ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMSwgMHhlMCwgMHhmZiwgMHhlYywgMHgyNCwgMHhmOCwgMHhmZSwgMHg3NCwgMHgwMX0gfSwKLXsgMHg4MTAwLAkxNiwJezB4YTgsIDB4MDYsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4ZTEsIDB4ZjAsIDB4OTAsIDB4MDJ9IH0sCi17IDB4ODExMCwJMTYsCXsweGFlLCAweGUwLCAweDA0LCAweGYwLCAweDgwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweDkwLCAweDAwLCAweDA0LCAweDEyLCAweGEyLCAweDU0LCAweDI1fSB9LAoteyAweDgxMjAsCTE2LAl7MHg0ZiwgMHhmNSwgMHg0ZiwgMHhlNCwgMHgzNSwgMHg0ZSwgMHhmNSwgMHg0ZSwgMHg5MCwgMHgwMCwgMHgwNSwgMHgxMiwgMHhhMiwgMHg1NCwgMHhmZSwgMHhlNH0gfSwKLXsgMHg4MTMwLAkxNiwJezB4MjUsIDB4NGYsIDB4ZjUsIDB4NGYsIDB4ZWUsIDB4MzUsIDB4NGUsIDB4ZjUsIDB4NGUsIDB4MDIsIDB4ODEsIDB4YjgsIDB4YWIsIDB4NTAsIDB4YWEsIDB4NTF9IH0sCi17IDB4ODE0MCwJMTYsCXsweGE5LCAweDUyLCAweDkwLCAweDAwLCAweDAzLCAweDEyLCAweGEyLCAweDU0LCAweGZmLCAweDY0LCAweDAyLCAweDYwLCAweDA1LCAweGVmLCAweDY0LCAweDAzfSB9LAoteyAweDgxNTAsCTE2LAl7MHg3MCwgMHg2MCwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHhhMiwgMHg1NCwgMHhmZiwgMHg1NCwgMHg3ZiwgMHhmYywgMHhkMywgMHg5NCwgMHgwNywgMHg1MH0gfSwKLXsgMHg4MTYwLAkxNiwJezB4NGUsIDB4ZWYsIDB4MzAsIDB4ZTcsIDB4MWUsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZTAsIDB4ZmYsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDQsIDB4MDgsIDB4ODB9IH0sCi17IDB4ODE3MCwJMTYsCXsweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGZlLCAweDRmLCAweDkwLCAweDdmLCAweGRlLCAweGYwLCAweDkwLCAweDdmLCAweGFjLCAweGUwLCAweDRlfSB9LAoteyAweDgxODAsCTE2LAl7MHhmMCwgMHg4MCwgMHgzNSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhlMCwgMHhmZiwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNCwgMHgwOCwgMHg4MCwgMHgwMiwgMHhjM30gfSwKLXsgMHg4MTkwLAkxNiwJezB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZmUsIDB4NGYsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWQsIDB4ZTAsIDB4NGUsIDB4ZjAsIDB4ZWN9IH0sCi17IDB4ODFhMCwJMTYsCXsweDI1LCAweGUwLCAweDI0LCAweGM1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweDgwLCAweDA5LCAweDdmfSB9LAoteyAweDgxYjAsCTE2LAl7MHhmZiwgMHgyMiwgMHg3ZiwgMHhmZiwgMHgyMiwgMHg3ZiwgMHhmZiwgMHgyMiwgMHg3NCwgMHgwNywgMHgyNSwgMHg1MiwgMHhmNSwgMHg1MiwgMHhlNCwgMHgzNX0gfSwKLXsgMHg4MWMwLAkxNiwJezB4NTEsIDB4ZjUsIDB4NTEsIDB4MDIsIDB4ODAsIDB4NTEsIDB4MjAsIDB4MDMsIDB4MGQsIDB4OTAsIDB4MDIsIDB4YWUsIDB4ZTAsIDB4NjAsIDB4MDcsIDB4OTB9IH0sCi17IDB4ODFkMCwJOCwJezB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCi17IDB4ODFkOCwJMSwJezB4MjJ9IH0sCi17IDB4ODFkOSwJNCwJezB4OGUsIDB4NTksIDB4OGYsIDB4NWF9IH0sCi17IDB4ODFkZCwJMTYsCXsweDc1LCAweDViLCAweDAzLCAweGU1LCAweDVhLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU5LCAweGY1LCAweDgzLCAweGUwLCAweGZlfSB9LAoteyAweDgxZWQsCTE2LAl7MHhhMywgMHhlMCwgMHg0ZSwgMHg3MCwgMHgwMywgMHgwMiwgMHg4MiwgMHhlNywgMHhlNSwgMHg1YiwgMHg2MCwgMHg0ZSwgMHgxNCwgMHg2MCwgMHgzOCwgMHgxNH0gfSwKLXsgMHg4MWZkLAkxNiwJezB4NjAsIDB4MjAsIDB4MTQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4ODIsIDB4OGIsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODV9IH0sCi17IDB4ODIwZCwJMTYsCXsweDVhLCAweDgyLCAweDg1LCAweDU5LCAweDgzLCAweGEzLCAweGUwLCAweGZmLCAweDI1LCAweGUwLCAweDQ0LCAweGEwLCAweDkwLCAweDdmLCAweGE2LCAweGYwfSB9LAoteyAweDgyMWQsCTE2LAl7MHg4MCwgMHg2YywgMHg4NSwgMHg1YSwgMHg4MiwgMHg4NSwgMHg1OSwgMHg4MywgMHhlMCwgMHhjMywgMHg5NCwgMHgyMCwgMHg0MCwgMHgwOSwgMHhhMywgMHhhM30gfSwKLXsgMHg4MjJkLAkxNiwJezB4ZTAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4ODAsIDB4NTcsIDB4MTUsIDB4NWIsIDB4ODUsIDB4NWEsIDB4ODIsIDB4ODUsIDB4NTksIDB4ODMsIDB4YTN9IH0sCi17IDB4ODIzZCwJMTYsCXsweGEzLCAweGUwLCAweGEzLCAweGUwLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDgwLCAweDQ0LCAweGU1LCAweDVhLCAweDI0LCAweDA2LCAweGY1LCAweDgyfSB9LAoteyAweDgyNGQsCTE2LAl7MHhlNCwgMHgzNSwgMHg1OSwgMHhmNSwgMHg4MywgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNX0gfSwKLXsgMHg4MjVkLAkxNiwJezB4ODMsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ZTUsIDB4NWEsIDB4MjR9IH0sCi17IDB4ODI2ZCwJMTYsCXsweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU5LCAweGY1LCAweDgzLCAweDc0LCAweGZmLCAweGY1LCAweGYwLCAweDEyLCAweGEyLCAweDgxLCAweDg1fSB9LAoteyAweDgyN2QsCTE2LAl7MHg1YSwgMHg4MiwgMHg4NSwgMHg1OSwgMHg4MywgMHhhMywgMHhhMywgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg4MSwgMHg5MCwgMHg3Zn0gfSwKLXsgMHg4MjhkLAkxNiwJezB4YTUsIDB4ZTAsIDB4ZjUsIDB4NWMsIDB4MzAsIDB4ZTAsIDB4ZjcsIDB4MzAsIDB4ZTIsIDB4MDcsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDZ9IH0sCi17IDB4ODI5ZCwJMTYsCXsweDIyLCAweGU1LCAweDVjLCAweDIwLCAweGUxLCAweDBhLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA3LCAweDIyfSB9LAoteyAweDgyYWQsCTE2LAl7MHhlNSwgMHg1YiwgMHg3MCwgMHgzMSwgMHg3ZiwgMHgwMSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NH0gfSwKLXsgMHg4MmJkLAkxNiwJezB4ODAsIDB4ZjAsIDB4ODUsIDB4NWEsIDB4ODIsIDB4ODUsIDB4NTksIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4NDQsIDB4YTAsIDB4OTB9IH0sCi17IDB4ODJjZCwJMTYsCXsweDdmLCAweGE2LCAweGYwLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweGY1LCAweDVjLCAweDMwLCAweGUwLCAweGY3LCAweDMwLCAweGUxLCAweGQ1LCAweDc1fSB9LAoteyAweDgyZGQsCTEyLAl7MHg1YiwgMHgwMywgMHgwMiwgMHg4MSwgMHhlMCwgMHgxNSwgMHg1YiwgMHgwMiwgMHg4MSwgMHhlMCwgMHg3ZiwgMHgwOH0gfSwKLXsgMHg4MmU5LAkxLAl7MHgyMn0gfSwKLXsgMHg4MmVhLAkyLAl7MHhhZSwgMHgwN30gfSwKLXsgMHg4MmVjLAkxNiwJezB4N2MsIDB4MDIsIDB4ZWMsIDB4MTQsIDB4NjAsIDB4MTUsIDB4MTQsIDB4NzAsIDB4MWUsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjB9IH0sCi17IDB4ODJmYywJMTYsCXsweGVlLCAweDI1LCAweGUwLCAweDQ0LCAweDQwLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDgwLCAweDBjLCAweDkwLCAweDdmLCAweGE2LCAweGVkLCAweGYwfSB9LAoteyAweDgzMGMsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHhmYiwgMHgzMCwgMHhlMCwgMHhmOCwgMHhiY30gfSwKLXsgMHg4MzFjLAkxNiwJezB4MDIsIDB4MGEsIDB4MjAsIDB4ZTEsIDB4MDcsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDcsIDB4MjIsIDB4ZWIsIDB4MzAsIDB4ZTIsIDB4MGF9IH0sCi17IDB4ODMyYywJMTQsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA2LCAweDIyLCAweGRjLCAweGI2LCAweDdmLCAweDA4fSB9LAoteyAweDgzM2EsCTEsCXsweDIyfSB9LAoteyAweDgzM2IsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMiwgMHhhOSwgMHg5MCwgMHgwMywgMHgwMCwgMHg3NCwgMHgxOSwgMHhmMCwgMHhkMiwgMHhhOX0gfSwKLXsgMHg4MzRiLAkxNSwJezB4NTMsIDB4OTEsIDB4N2YsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4ODM1YSwJMTYsCXsweGVmLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFiLCAweDgyLCAweGZhLCAweGY1fSB9LAoteyAweDgzNmEsCTE2LAl7MHg4MywgMHhhMywgMHhlNCwgMHhmMCwgMHg4YiwgMHg4MiwgMHg4YSwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHhmNSwgMHg2MSwgMHg3NCwgMHhiZn0gfSwKLXsgMHg4MzdhLAkxNiwJezB4ZjAsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4YTN9IH0sCi17IDB4ODM4YSwJMTYsCXsweGEzLCAweGEzLCAweGU0LCAweGYwLCAweDhiLCAweDgyLCAweDhhLCAweDgzLCAweGEzLCAweGYwLCAweGY5LCAweGVkLCAweDYwLCAweDFkLCAweDc0LCAweDAxfSB9LAoteyAweDgzOWEsCTE2LAl7MHg3ZSwgMHgwMCwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwNSwgMHhjMywgMHgzMywgMHhjZSwgMHgzMywgMHhjZSwgMHhkOCwgMHhmOSwgMHhmZiwgMHhlNH0gfSwKLXsgMHg4M2FhLAkxNiwJezB4ZWYsIDB4NTUsIDB4MzEsIDB4NjAsIDB4MDQsIDB4NzksIDB4MDksIDB4ODAsIDB4MDIsIDB4NzksIDB4MGQsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4YTN9IH0sCi17IDB4ODNiYSwJMTYsCXsweGEzLCAweGEzLCAweDc0LCAweGJmLCAweGYwLCAweDhiLCAweDgyLCAweDhhLCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweDU0LCAweGVmLCAweGYwLCAweDhifSB9LAoteyAweDgzY2EsCTE2LAl7MHg4MiwgMHg4YSwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlNSwgMHg2MSwgMHhmMCwgMHhhZSwgMHgwMiwgMHhhZiwgMHgwMywgMHg4ZiwgMHg4MiwgMHg4ZX0gfSwKLXsgMHg4M2RhLAk0LAl7MHg4MywgMHhhMywgMHhlOSwgMHhmMH0gfSwKLXsgMHg4M2RlLAkxLAl7MHgyMn0gfSwKLXsgMHg4M2RmLAk0LAl7MHg4ZiwgMHg2MSwgMHg4ZCwgMHg2Mn0gfSwKLXsgMHg4M2UzLAkxNiwJezB4ZTQsIDB4ZjUsIDB4NjcsIDB4NzQsIDB4M2YsIDB4MmYsIDB4ZjgsIDB4NzYsIDB4MDgsIDB4N2YsIDB4ODAsIDB4N2UsIDB4MjUsIDB4N2QsIDB4MDAsIDB4N2N9IH0sCi17IDB4ODNmMywJMTYsCXsweDAwLCAweGFiLCAweDY2LCAweGFhLCAweDY1LCAweGE5LCAweDY0LCAweGE4LCAweDYzLCAweGQzLCAweDEyLCAweGEzLCAweGIzLCAweDQwLCAweDI2LCAweDdmfSB9LAoteyAweDg0MDMsCTE2LAl7MHgwMCwgMHg3ZSwgMHg5NiwgMHg3ZCwgMHgwMCwgMHg3YywgMHgwMCwgMHhhOCwgMHg2MywgMHhkMywgMHgxMiwgMHhhMywgMHhiMywgMHg1MCwgMHgwYywgMHg3NX0gfSwKLXsgMHg4NDEzLAkxNiwJezB4NjcsIDB4NDAsIDB4NzQsIDB4M2YsIDB4MjUsIDB4NjEsIDB4ZjgsIDB4NzYsIDB4MTAsIDB4ODAsIDB4MGEsIDB4NzUsIDB4NjcsIDB4ODAsIDB4NzQsIDB4M2Z9IH0sCi17IDB4ODQyMywJMTYsCXsweDI1LCAweDYxLCAweGY4LCAweDc2LCAweDM4LCAweGU1LCAweDY3LCAweDQ1LCAweDYyLCAweDQ0LCAweDAxLCAweGZmLCAweGU1LCAweDYxLCAweDc1LCAweGYwfSB9LAoteyAweDg0MzMsCTEzLAl7MHgwOCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMH0gfSwKLXsgMHg4NDQwLAkxLAl7MHgyMn0gfSwKLXsgMHg4NDQxLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4NTcsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjJ9IH0sCi17IDB4ODQ1MSwJMTYsCXsweGU1LCAweDU3LCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGY1fSB9LAoteyAweDg0NjEsCTE2LAl7MHg1OCwgMHg4ZiwgMHg1OSwgMHhlNSwgMHg1NywgMHgyNSwgMHhlMCwgMHgyNCwgMHhjNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4M30gfSwKLXsgMHg4NDcxLAkxNiwJezB4ZTAsIDB4MjAsIDB4ZTEsIDB4MGYsIDB4ZTUsIDB4NTcsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjV9IH0sCi17IDB4ODQ4MSwJMTYsCXsweDgzLCAweGU0LCAweGYwLCAweDc0LCAweDIzLCAweDI1LCAweDU3LCAweGY4LCAweGU0LCAweGY2LCAweGU1LCAweDU5LCAweDI0LCAweDA0LCAweGY1LCAweDgyfSB9LAoteyAweDg0OTEsCTE2LAl7MHhlNCwgMHgzNSwgMHg1OCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMywgMHhmMCwgMHhlNSwgMHg1NywgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNH0gfSwKLXsgMHg4NGExLAkxNiwJezB4MDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmV9IH0sCi17IDB4ODRiMSwJMTYsCXsweGEzLCAweGUwLCAweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzLCAweDdkLCAweDA2LCAweGFmLCAweDU3LCAweDEyLCAweDgzfSB9LAoteyAweDg0YzEsCTE2LAl7MHhkZiwgMHhhZiwgMHg1NywgMHg3ZCwgMHgwMSwgMHgxMiwgMHg4MywgMHg1YSwgMHg4NSwgMHg1OSwgMHg4MiwgMHg4NSwgMHg1OCwgMHg4MywgMHhhMywgMHhhM30gfSwKLXsgMHg4NGQxLAkxNiwJezB4ZTAsIDB4MjAsIDB4ZTAsIDB4NDMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NTksIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTgsIDB4ZjV9IH0sCi17IDB4ODRlMSwJMTYsCXsweDgzLCAweGUwLCAweGU1LCAweDU5LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1fSB9LAoteyAweDg0ZjEsCTE2LAl7MHg1NywgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlMCwgMHhmY30gfSwKLXsgMHg4NTAxLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NjYsIDB4OGUsIDB4NjUsIDB4OGQsIDB4NjQsIDB4OGMsIDB4NjN9IH0sCi17IDB4ODUxMSwJMTYsCXsweDdkLCAweDA2LCAweGFmLCAweDU3LCAweDEyLCAweDgzLCAweGRmLCAweDc0LCAweGY4LCAweDI1LCAweDU3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyfSB9LAoteyAweDg1MjEsCTE2LAl7MHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHg1NywgMHgyNSwgMHhlMCwgMHhmZiwgMHhjMywgMHg3NCwgMHgwYywgMHg5ZiwgMHg3NSwgMHhmMCwgMHg0MH0gfSwKLXsgMHg4NTMxLAkxNiwJezB4YTQsIDB4MjQsIDB4NDAsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ZjAsIDB4MzQsIDB4N2IsIDB4YWYsIDB4ODIsIDB4ZmUsIDB4ZTUsIDB4NTcsIDB4MjUsIDB4ZTB9IH0sCi17IDB4ODU0MSwJMTYsCXsweDI0LCAweGVmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGVlLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweGFmLCAweDU3fSB9LAoteyAweDg1NTEsCTE1LAl7MHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0MiwgMHgzNCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4NTYwLAkxLAl7MHgyMn0gfSwKLXsgMHg4NTYxLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4NTcsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjJ9IH0sCi17IDB4ODU3MSwJMTYsCXsweGFmLCAweDU3LCAweGU0LCAweGZkLCAweDEyLCAweDgzLCAweDVhLCAweDc0LCAweGY4LCAweDI1LCAweDU3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyfSB9LAoteyAweDg1ODEsCTE2LAl7MHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHg1NywgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNH0gfSwKLXsgMHg4NTkxLAkxNiwJezB4MjAsIDB4YWYsIDB4ODIsIDB4ZjUsIDB4NTksIDB4OGYsIDB4NWEsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTR9IH0sCi17IDB4ODVhMSwJMTYsCXsweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZjLCAweGYwLCAweGU1LCAweDU3LCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDBjfSB9LAoteyAweDg1YjEsCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHg1NywgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNH0gfSwKLXsgMHg4NWMxLAkxNiwJezB4MDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmV9IH0sCi17IDB4ODVkMSwJMTYsCXsweGEzLCAweGUwLCAweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzLCAweDdkLCAweDA2LCAweGFmLCAweDU3LCAweDEyLCAweDgzfSB9LAoteyAweDg1ZTEsCTE2LAl7MHhkZiwgMHhlNSwgMHg1YSwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OSwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMCwgMHgwOX0gfSwKLXsgMHg4NWYxLAkxNiwJezB4ODUsIDB4NWEsIDB4ODIsIDB4ODUsIDB4NTksIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NTgsIDB4YWYsIDB4NTcsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDh9IH0sCi17IDB4ODYwMSwJMTYsCXsweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY0LCAweDUyLCAweDM0LCAweGU1LCAweDU3LCAweDI1LCAweGUwLCAweDI0LCAweGM2LCAweGY1fSB9LAoteyAweDg2MTEsCTE2LAl7MHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHhlNSwgMHg1NywgMHgyNSwgMHhlMCwgMHgyNCwgMHhjN30gfSwKLXsgMHg4NjIxLAkxMSwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCi17IDB4ODYyYywJMSwJezB4MjJ9IH0sCi17IDB4ODYyZCwJNCwJezB4OGUsIDB4NTcsIDB4OGYsIDB4NTh9IH0sCi17IDB4ODYzMSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGY1LCAweDU5LCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyfSB9LAoteyAweDg2NDEsCTE2LAl7MHhlNSwgMHg1OSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMH0gfSwKLXsgMHg4NjUxLAkxNiwJezB4NTQsIDB4MDMsIDB4NzAsIDB4NjYsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MjgsIDB4ZTV9IH0sCi17IDB4ODY2MSwJMTYsCXsweDU5LCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAzLCAweGY1LCAweDgzLCAweGUwLCAweGZjfSB9LAoteyAweDg2NzEsCTE2LAl7MHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmNSwgMHg2NiwgMHg4ZSwgMHg2NSwgMHg4ZCwgMHg2NCwgMHg4YywgMHg2M30gfSwKLXsgMHg4NjgxLAkxNiwJezB4N2QsIDB4MDIsIDB4YWYsIDB4NTksIDB4MTIsIDB4ODMsIDB4ZGYsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4MzB9IH0sCi17IDB4ODY5MSwJMTYsCXsweGUxLCAweDI4LCAweGU1LCAweDU5LCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDAyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAzLCAweGY1fSB9LAoteyAweDg2YTEsCTE2LAl7MHg4MywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmNSwgMHg2NiwgMHg4ZSwgMHg2NSwgMHg4ZH0gfSwKLXsgMHg4NmIxLAkxMiwJezB4NjQsIDB4OGMsIDB4NjMsIDB4N2QsIDB4MDQsIDB4YWYsIDB4NTksIDB4MTIsIDB4ODMsIDB4ZGYsIDB4N2YsIDB4MDB9IH0sCi17IDB4ODZiZCwJMSwJezB4MjJ9IH0sCi17IDB4ODZiZSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGUwLCAweGZkLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweGZjLCAweGVkfSB9LAoteyAweDg2Y2UsCTE2LAl7MHg2YywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhjMCwgMHg4MywgMHhjMH0gfSwKLXsgMHg4NmRlLAkxNiwJezB4ODIsIDB4ZTAsIDB4ZmQsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4ZWQsIDB4NmMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZjB9IH0sCi17IDB4ODZlZSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweGZkLCAweGVjLCAweDZkLCAweGQwfSB9LAoteyAweDg2ZmUsCTE2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhlMCwgMHhmZCwgMHg4Zn0gfSwKLXsgMHg4NzBlLAkxNiwJezB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4ZWQsIDB4NmMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZjAsIDB4OGYsIDB4ODJ9IH0sCi17IDB4ODcxZSwJMTYsCXsweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGUwLCAweGZkLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGUwfSB9LAoteyAweDg3MmUsCTE2LAl7MHhmYywgMHhlZCwgMHg2YywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhjMCwgMHg4MywgMHhjMH0gfSwKLXsgMHg4NzNlLAkxNiwJezB4ODIsIDB4ZTAsIDB4ZmQsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4ZWQsIDB4NmYsIDB4ZDAsIDB4ODIsIDB4ZDB9IH0sCi17IDB4ODc0ZSwJMywJezB4ODMsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4ODc1MSwJNCwJezB4YWQsIDB4MDcsIDB4YWMsIDB4MDZ9IH0sCi17IDB4ODc1NSwJMTYsCXsweDc5LCAweDBkLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmfSB9LAoteyAweDg3NjUsCTE2LAl7MHgyMiwgMHg4YywgMHg1NywgMHg4ZCwgMHg1OCwgMHhlZSwgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNH0gfSwKLXsgMHg4Nzc1LAkxNiwJezB4MDMsIDB4YWYsIDB4ODIsIDB4ZmUsIDB4YWQsIDB4MDEsIDB4MTksIDB4ZWQsIDB4NjAsIDB4MjQsIDB4MGYsIDB4ZWYsIDB4YWMsIDB4MDYsIDB4NzAsIDB4MDF9IH0sCi17IDB4ODc4NSwJMTYsCXsweDBlLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweGZkLCAweDA1LCAweDU4LCAweGU1LCAweDU4LCAweGFhLCAweDU3LCAweDcwLCAweDAyfSB9LAoteyAweDg3OTUsCTE2LAl7MHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHg2ZCwgMHg2MCwgMHhkOSwgMHg3ZiwgMHgwMSwgMHgyMiwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4N2E1LAkxLAl7MHgyMn0gfSwKLXsgMHg4N2E2LAk0LAl7MHg4ZSwgMHg1NywgMHg4ZiwgMHg1OH0gfSwKLXsgMHg4N2FhLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4NWUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjJ9IH0sCi17IDB4ODdiYSwJMTYsCXsweGU1LCAweDVlLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGY1fSB9LAoteyAweDg3Y2EsCTE2LAl7MHg1ZiwgMHg4ZiwgMHg2MCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhM30gfSwKLXsgMHg4N2RhLAkxNiwJezB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4N2IsIDB4MDgsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzgsIDB4MDAsIDB4ZDMsIDB4MTIsIDB4YTN9IH0sCi17IDB4ODdlYSwJMTYsCXsweGIzLCAweDQwLCAweDEwLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweDEyLCAweGEzLCAweGZhLCAweDAwLCAweDAwLCAweDAwfSB9LAoteyAweDg3ZmEsCTE2LAl7MHgwOCwgMHg4MCwgMHgyZSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHhhM30gfSwKLXsgMHg4ODBhLAkxNiwJezB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDgsIDB4NzksIDB4MDcsIDB4NzgsIDB4MDAsIDB4YzMsIDB4MTIsIDB4YTN9IH0sCi17IDB4ODgxYSwJMTYsCXsweGIzLCAweDUwLCAweDBlLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweDEyLCAweGEzLCAweGZhLCAweDAwLCAweDA3LCAweDA4fSB9LAoteyAweDg4MmEsCTE2LAl7MHgwMCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmOCwgMHhhMywgMHhlMCwgMHhmOSwgMHhhMywgMHhlMCwgMHhmYX0gfSwKLXsgMHg4ODNhLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZmIsIDB4N2YsIDB4MDAsIDB4N2UsIDB4NTAsIDB4N2QsIDB4NDYsIDB4N2MsIDB4MDAsIDB4MTIsIDB4YTMsIDB4MjEsIDB4OGYsIDB4NWN9IH0sCi17IDB4ODg0YSwJMTYsCXsweDhlLCAweDViLCAweDhkLCAweDVhLCAweDhjLCAweDU5LCAweDdiLCAweDBhLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDc4LCAweDAwLCAweDEyLCAweGEzfSB9LAoteyAweDg4NWEsCTE2LAl7MHgyMSwgMHhhZiwgMHgwMywgMHg4ZiwgMHg1ZCwgMHhhZiwgMHg1YywgMHhhZSwgMHg1YiwgMHhhZCwgMHg1YSwgMHhhYywgMHg1OSwgMHg3YiwgMHgwYSwgMHg3YX0gfSwKLXsgMHg4ODZhLAkxNiwJezB4MDAsIDB4NzksIDB4MDAsIDB4NzgsIDB4MDAsIDB4MTIsIDB4YTMsIDB4MjEsIDB4OGYsIDB4NWMsIDB4OGUsIDB4NWIsIDB4OGQsIDB4NWEsIDB4OGMsIDB4NTl9IH0sCi17IDB4ODg3YSwJMTYsCXsweGU1LCAweDVkLCAweGMzLCAweDk0LCAweDA1LCAweDQwLCAweDE1LCAweGU1LCAweDVjLCAweDI0LCAweDAxLCAweGY1LCAweDVjLCAweGU0LCAweDM1LCAweDVifSB9LAoteyAweDg4OGEsCTE2LAl7MHhmNSwgMHg1YiwgMHhlNCwgMHgzNSwgMHg1YSwgMHhmNSwgMHg1YSwgMHhlNCwgMHgzNSwgMHg1OSwgMHhmNSwgMHg1OSwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NX0gfSwKLXsgMHg4ODlhLAkxNiwJezB4NWYsIDB4ODMsIDB4YTMsIDB4ZTQsIDB4ZjAsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NDR9IH0sCi17IDB4ODhhYSwJMTYsCXsweDgwLCAweGYwLCAweDg1LCAweDYwLCAweDgyLCAweDg1LCAweDVmLCAweDgzLCAweGU1LCAweDVjLCAweGYwLCAweGFmLCAweDVjLCAweGFlLCAweDViLCAweGFkfSB9LAoteyAweDg4YmEsCTE2LAl7MHg1YSwgMHhhYywgMHg1OSwgMHg3OCwgMHgwOCwgMHgxMiwgMHhhMywgMHhjNCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhlZn0gfSwKLXsgMHg4OGNhLAkxNiwJezB4ZjAsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ZTQsIDB4ZjV9IH0sCi17IDB4ODhkYSwJMTYsCXsweDVkLCAweGU1LCAweDU4LCAweDI0LCAweDBiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDMwLCAweGUwfSB9LAoteyAweDg4ZWEsCTE2LAl7MHgyMywgMHg1NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4MywgMHhlMH0gfSwKLXsgMHg4OGZhLAkxNiwJezB4NTQsIDB4ZmQsIDB4ZjAsIDB4YWYsIDB4NWUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmN9IH0sCi17IDB4ODkwYSwJMTYsCXsweDQyLCAweDIyLCAweDgwLCAweDM2LCAweDc0LCAweDAxLCAweDdlLCAweDAwLCAweGE4LCAweDVlLCAweDA4LCAweDgwLCAweDA1LCAweGMzLCAweDMzLCAweGNlfSB9LAoteyAweDg5MWEsCTE2LAl7MHgzMywgMHhjZSwgMHhkOCwgMHhmOSwgMHhmZiwgMHhlNCwgMHhlZiwgMHg1NSwgMHgyMiwgMHg2MCwgMHgxZiwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNCwgMHhmNX0gfSwKLXsgMHg4OTJhLAkxNiwJezB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4YWYsIDB4NWUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDd9IH0sCi17IDB4ODkzYSwJMTYsCXsweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY0LCAweDUyLCAweDIyLCAweGU1LCAweDU4LCAweDI0LCAweDA4LCAweGY1LCAweDgyfSB9LAoteyAweDg5NGEsCTE2LAl7MHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhiNCwgMHg2MiwgMHgwNSwgMHg0MywgMHg1ZCwgMHgwYSwgMHg4MCwgMHgxYSwgMHhlZn0gfSwKLXsgMHg4OTVhLAkxNiwJezB4YjQsIDB4NzIsIDB4MDUsIDB4NDMsIDB4NWQsIDB4MDgsIDB4ODAsIDB4MTEsIDB4ZWYsIDB4YjQsIDB4NzQsIDB4MDUsIDB4NDMsIDB4NWQsIDB4MDIsIDB4ODB9IH0sCi17IDB4ODk2YSwJMTYsCXsweDA4LCAweGVmLCAweDY0LCAweDZlLCAweDYwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGU1LCAweDU4LCAweDI0LCAweDBiLCAweGY1LCAweDgyLCAweGU0fSB9LAoteyAweDg5N2EsCTE2LAl7MHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgzMCwgMHhlMywgMHgwMywgMHg0MywgMHg1ZCwgMHg4MCwgMHhlZiwgMHgzMCwgMHhlNywgMHgxMn0gfSwKLXsgMHg4OThhLAkxNiwJezB4NDMsIDB4NWQsIDB4NDAsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDR9IH0sCi17IDB4ODk5YSwJMTYsCXsweDAyLCAweGYwLCAweGU1LCAweDU4LCAweDI0LCAweDBiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGUxfSB9LAoteyAweDg5YWEsCTE2LAl7MHgyMCwgMHhhZiwgMHg1ZSwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg0MiwgMHgzMn0gfSwKLXsgMHg4OWJhLAkxNiwJezB4ZTUsIDB4NjAsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODB9IH0sCi17IDB4ODljYSwJMTYsCXsweDEwLCAweGFmLCAweDVlLCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY0LCAweDUyfSB9LAoteyAweDg5ZGEsCTE2LAl7MHgzMiwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgzMCwgMHhlNH0gfSwKLXsgMHg4OWVhLAkxNiwJezB4MTEsIDB4YWUsIDB4NWUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDYsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NDIsIDB4MzF9IH0sCi17IDB4ODlmYSwJMTYsCXsweDgwLCAweDEwLCAweGFlLCAweDVlLCAweDc0LCAweDAxLCAweGE4LCAweDA2LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY0fSB9LAoteyAweDhhMGEsCTE2LAl7MHg1MiwgMHgzMSwgMHhlZiwgMHgyMCwgMHhlMSwgMHgwMywgMHgzMCwgMHhlNCwgMHgwMywgMHhlNCwgMHhmNSwgMHg1ZCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NX0gfSwKLXsgMHg4YTFhLAkxNiwJezB4NWYsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTN9IH0sCi17IDB4OGEyYSwJMTYsCXsweGU0LCAweGYwLCAweGU1LCAweDVkLCAweGYwLCAweGU1LCAweDU4LCAweDI0LCAweDBhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzfSB9LAoteyAweDhhM2EsCTE2LAl7MHhlMCwgMHhmZiwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNX0gfSwKLXsgMHg4YTRhLAkxNiwJezB4NTgsIDB4MjQsIDB4MGEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDV9IH0sCi17IDB4OGE1YSwJMTYsCXsweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDU4LCAweDI0LCAweDA5LCAweGY1LCAweDgyLCAweGU0fSB9LAoteyAweDhhNmEsCTE2LAl7MHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHg2MCwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNX0gfSwKLXsgMHg4YTdhLAkxNiwJezB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MDksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmZ9IH0sCi17IDB4OGE4YSwJMTYsCXsweGU1LCAweDYwLCAweDI0LCAweDA3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDg1LCAweDYwLCAweDgyfSB9LAoteyAweDhhOWEsCTE2LAl7MHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlNCwgMHhmMCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NSwgMHg1ZiwgMHg4MywgMHhhMywgMHhhM30gfSwKLXsgMHg4YWFhLAkxNiwJezB4ZjAsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmV9IH0sCi17IDB4OGFiYSwJMTYsCXsweGEzLCAweGUwLCAweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzLCAweDdkLCAweDA2LCAweGFmLCAweDVlLCAweDEyLCAweDgzfSB9LAoteyAweDhhY2EsCTE2LAl7MHhkZiwgMHg3NSwgMHg1ZCwgMHgwOCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMH0gfSwKLXsgMHg4YWRhLAkxNiwJezB4NjAsIDB4MDMsIDB4NDMsIDB4NWQsIDB4MTAsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODN9IH0sCi17IDB4OGFlYSwJMTYsCXsweGUwLCAweDU0LCAweDAzLCAweDQ1LCAweDVkLCAweGYwLCAweGU1LCAweDU4LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1fSB9LAoteyAweDhhZmEsCTE2LAl7MHg4MywgMHhlMCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNSwgMHg0MCwgMHgwNiwgMHhlZSwgMHhkMywgMHg5NCwgMHgwOCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZn0gfSwKLXsgMHg4YjBhLAkxNiwJezB4MjIsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4YzMsIDB4OTR9IH0sCi17IDB4OGIxYSwJMTYsCXsweDAxLCAweDQwLCAweDA2LCAweGVkLCAweGQzLCAweDk0LCAweDAyLCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGVkLCAweDE0LCAweGZmLCAweDI1fSB9LAoteyAweDhiMmEsCTE2LAl7MHhlMCwgMHgyNSwgMHhlMCwgMHhmZiwgMHhlZSwgMHgyNCwgMHhmYiwgMHg0ZiwgMHhmNSwgMHg1ZCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwNywgMHhmNSwgMHg4Mn0gfSwKLXsgMHg4YjNhLAkxNiwJezB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjQsIDB4ZDAsIDB4NjAsIDB4MTgsIDB4MTQsIDB4NjAsIDB4MWEsIDB4MjQsIDB4YzMsIDB4NjB9IH0sCi17IDB4OGI0YSwJMTYsCXsweDFlLCAweDE0LCAweDYwLCAweDA5LCAweDI0LCAweDBhLCAweDcwLCAweDE0LCAweDQzLCAweDVkLCAweDE4LCAweDgwLCAweDEyLCAweDQzLCAweDVkLCAweDA4fSB9LAoteyAweDhiNWEsCTE2LAl7MHg4MCwgMHgwZCwgMHg0MywgMHg1ZCwgMHgzOCwgMHg4MCwgMHgwOCwgMHg0MywgMHg1ZCwgMHgyOCwgMHg4MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHg4NX0gfSwKLXsgMHg4YjZhLAkxNiwJezB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTUsIDB4NWQsIDB4ZjAsIDB4NzQsIDB4MDEsIDB4N2UsIDB4MDAsIDB4YTh9IH0sCi17IDB4OGI3YSwJMTYsCXsweDVlLCAweDA4LCAweDgwLCAweDA1LCAweGMzLCAweDMzLCAweGNlLCAweDMzLCAweGNlLCAweGQ4LCAweGY5LCAweGZmLCAweGU0LCAweGVmLCAweDU1LCAweDM0fSB9LAoteyAweDhiOGEsCTE2LAl7MHg2MCwgMHgwNywgMHhhZiwgMHg1ZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHg4MywgMHg1YSwgMHhhYSwgMHg1NywgMHhhOSwgMHg1OCwgMHg3YiwgMHgwMSwgMHhjMH0gfSwKLXsgMHg4YjlhLAkxNiwJezB4MDMsIDB4YzAsIDB4MDEsIDB4ZTUsIDB4NWUsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MDEsIDB4ZjksIDB4NzQsIDB4MDMsIDB4MzUsIDB4ZjB9IH0sCi17IDB4OGJhYSwJMTYsCXsweGE4LCAweDAxLCAweGZjLCAweGFkLCAweDAzLCAweGQwLCAweDAxLCAweGQwLCAweDAzLCAweDdlLCAweDAwLCAweDdmLCAweDBkLCAweDEyLCAweGEyLCAweDEyfSB9LAoteyAweDhiYmEsCTIsCXsweDdmLCAweDAwfSB9LAoteyAweDhiYmMsCTEsCXsweDIyfSB9LAoteyAweDhiYmQsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlZX0gfSwKLXsgMHg4YmNkLAkxNiwJezB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWQsIDB4ODIsIDB4ZmMsIDB4OTAsIDB4MDF9IH0sCi17IDB4OGJkZCwJMTYsCXsweDJjLCAweDc0LCAweDA4LCAweGYwLCAweGVlLCAweDA0LCAweGEzLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGU1fSB9LAoteyAweDhiZWQsCTE2LAl7MHg4MiwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHg5MCwgMHgwMSwgMHgyZiwgMHhmMCwgMHg4ZH0gfSwKLXsgMHg4YmZkLAkxNiwJezB4ODIsIDB4OGMsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTR9IH0sCi17IDB4OGMwZCwJMTYsCXsweDFlLCAweDkwLCAweDAxLCAweDMwLCAweGYwLCAweDc0LCAweDJkLCAweDJlLCAweGY4LCAweGU2LCAweGEzLCAweGYwLCAweGFmLCAweDA2LCAweDc0LCAweDAxfSB9LAoteyAweDhjMWQsCTE2LAl7MHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNSwgMHg1NywgMHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMX0gfSwKLXsgMHg4YzJkLAkxNiwJezB4NDAsIDB4MGQsIDB4OTAsIDB4MjAsIDB4NzgsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4NzUsIDB4NTgsIDB4MDAsIDB4ZjUsIDB4NTksIDB4ODAsIDB4MDksIDB4N2Z9IH0sCi17IDB4OGMzZCwJMTYsCXsweDAyLCAweDEyLCAweDExLCAweDI3LCAweDhlLCAweDU4LCAweDhmLCAweDU5LCAweGMzLCAweGU1LCAweDU4LCAweDY0LCAweDgwLCAweDk0LCAweDgwLCAweDQwfSB9LAoteyAweDhjNGQsCTE2LAl7MHhkYSwgMHhlNSwgMHg1NywgMHg1NSwgMHg1OSwgMHg5MCwgMHgwMSwgMHgzMiwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgyYywgMHg3ZCwgMHgwNywgMHgxMn0gfSwKLXsgMHg4YzVkLAk0LAl7MHg5MSwgMHg2YSwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4YzYxLAkxLAl7MHgyMn0gfSwKLXsgMHg4YzYyLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZWV9IH0sCi17IDB4OGM3MiwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGZlLCAweDkwLCAweDAxfSB9LAoteyAweDhjODIsCTE2LAl7MHgzMywgMHg3NCwgMHgwYSwgMHhmMCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNX0gfSwKLXsgMHg4YzkyLAkxNiwJezB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4MDEsIDB4MzQsIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4MzMsIDB4N2QsIDB4MDIsIDB4MTIsIDB4OTF9IH0sCi17IDB4OGNhMiwJMywJezB4NmEsIDB4N2YsIDB4MDB9IH0sCi17IDB4OGNhNSwJMSwJezB4MjJ9IH0sCi17IDB4OGNhNiwJNCwJezB4OGUsIDB4NTcsIDB4OGYsIDB4NTh9IH0sCi17IDB4OGNhYSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGVlfSB9LAoteyAweDhjYmEsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZCwgMHg4MiwgMHhmYywgMHg4NSwgMHg1OH0gfSwKLXsgMHg4Y2NhLAkxNiwJezB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4ZWQsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2MsIDB4ZjV9IH0sCi17IDB4OGNkYSwJMTYsCXsweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDgwLCAweDQzLCAweGVlLCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDBjLCAweGY1LCAweDgyfSB9LAoteyAweDhjZWEsCTE2LAl7MHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMCwgMHgyMCwgMHhlZSwgMHgyNSwgMHhlMCwgMHgyNCwgMHhjNiwgMHhmNSwgMHg4Mn0gfSwKLXsgMHg4Y2ZhLAkxNiwJezB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4ZjAsIDB4N2YsIDB4NjAsIDB4ZWQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4OGQwYSwJMTYsCXsweGU0LCAweDNjLCAweGY1LCAweDgzLCAweGUwLCAweDVmLCAweGI1LCAweDA3LCAweGYyLCAweGFlLCAweDA0LCAweGFmLCAweDA1LCAweGVmLCAweDI0LCAweDA0fSB9LAoteyAweDhkMWEsCTEyLAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzZSwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4ZDI2LAkxLAl7MHgyMn0gfSwKLXsgMHg4ZDI3LAk0LAl7MHhhZCwgMHgwNywgMHhhYywgMHgwNn0gfSwKLXsgMHg4ZDJiLAkxNiwJezB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZWV9IH0sCi17IDB4OGQzYiwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGZlLCAweDhkLCAweDgyfSB9LAoteyAweDhkNGIsCTE2LAl7MHg4YywgMHg4MywgMHhhMywgMHhlMCwgMHg2MCwgMHgwZiwgMHhlZiwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzZSwgMHhmNSwgMHg4MywgMHhlMH0gfSwKLXsgMHg4ZDViLAkxNiwJezB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MGQsIDB4ZWYsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTR9IH0sCi17IDB4OGQ2YiwJNCwJezB4ZmUsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCi17IDB4OGQ2ZiwJMSwJezB4MjJ9IH0sCi17IDB4OGQ3MCwJNCwJezB4YWQsIDB4MDcsIDB4YWMsIDB4MDZ9IH0sCi17IDB4OGQ3NCwJMTYsCXsweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGVlfSB9LAoteyAweDhkODQsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZiwgMHg4MiwgMHhmZSwgMHg4ZCwgMHg4Mn0gfSwKLXsgMHg4ZDk0LAkxNiwJezB4OGMsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MGQsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4NDB9IH0sCi17IDB4OGRhNCwJMTYsCXsweGYwLCAweDgwLCAweDBiLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDdmLCAweDAwfSB9LAoteyAweDhkYjQsCTEsCXsweDIyfSB9LAoteyAweDhkYjUsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhhZn0gfSwKLXsgMHg4ZGM1LAkxNiwJezB4MDYsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NDIsIDB4M2UsIDB4N2YsIDB4MDB9IH0sCi17IDB4OGRkNSwJMSwJezB4MjJ9IH0sCi17IDB4OGRkNiwJNCwJezB4OGUsIDB4NTcsIDB4OGYsIDB4NTh9IH0sCi17IDB4OGRkYSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGUwLCAweGY1LCAweDVjLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGY1LCAweDU5LCAweGQzfSB9LAoteyAweDhkZWEsCTE2LAl7MHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlNSwgMHg1OSwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwgMHgxZn0gfSwKLXsgMHg4ZGZhLAkxNiwJezB4MTQsIDB4NjAsIDB4MjgsIDB4MjQsIDB4MDMsIDB4NzAsIDB4MmUsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4NWEsIDB4N2UsIDB4NzUsIDB4NWJ9IH0sCi17IDB4OGUwYSwJMTYsCXsweDgwLCAweDgwLCAweDIyLCAweDdlLCAweDdlLCAweDdmLCAweDAwLCAweDc1LCAweDVhLCAweDdlLCAweDc1LCAweDViLCAweDAwLCAweDgwLCAweDE2LCAweDdlfSB9LAoteyAweDhlMWEsCTE2LAl7MHg3ZCwgMHg3ZiwgMHg4MCwgMHg3NSwgMHg1YSwgMHg3ZCwgMHg3NSwgMHg1YiwgMHg4MCwgMHg4MCwgMHgwYSwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHgwMCwgMHg3NX0gfSwKLXsgMHg4ZTJhLAkxNiwJezB4NWEsIDB4N2QsIDB4NzUsIDB4NWIsIDB4MDAsIDB4ZTUsIDB4NWMsIDB4NzAsIDB4MWIsIDB4ODUsIDB4NWIsIDB4ODIsIDB4ODUsIDB4NWEsIDB4ODMsIDB4NzR9IH0sCi17IDB4OGUzYSwJMTYsCXsweGZmLCAweGYwLCAweGU1LCAweDU5LCAweDI1LCAweGUwLCAweDI0LCAweGI1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0fSB9LAoteyAweDhlNGEsCTE2LAl7MHgwMSwgMHhmMCwgMHg4MCwgMHg0OCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwMiwgMHhmZiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmZSwgMHhlNSwgMHg1YywgMHg2MH0gfSwKLXsgMHg4ZTVhLAkxNiwJezB4MjMsIDB4MGYsIDB4ZWYsIDB4YWMsIDB4MDYsIDB4NzAsIDB4MDEsIDB4MGUsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MDV9IH0sCi17IDB4OGU2YSwJMTYsCXsweDViLCAweGU1LCAweDViLCAweGFhLCAweDVhLCAweDcwLCAweDAyLCAweDA1LCAweDVhLCAweDE0LCAweGY1LCAweDgyLCAweDhhLCAweDgzLCAweGVkLCAweGYwfSB9LAoteyAweDhlN2EsCTE2LAl7MHgxNSwgMHg1YywgMHg4MCwgMHhkOSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHhlNSwgMHg1OSwgMHgyNX0gfSwKLXsgMHg4ZThhLAkxNCwJezB4ZTAsIDB4MjQsIDB4YjUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCi17IDB4OGU5OCwJMSwJezB4MjJ9IH0sCi17IDB4OGU5OSwJMTYsCXsweGVmLCAweDI0LCAweDA1LCAweGY1LCAweDU4LCAweGU0LCAweDNlLCAweGY1LCAweDU3LCAweDkwLCAweDAxLCAweDM1LCAweDc0LCAweDA3LCAweGYwLCAweDkwfSB9LAoteyAweDhlYTksCTE2LAl7MHgwMSwgMHg3YSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHg3NCwgMHgzNiwgMHhmMCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhM30gfSwKLXsgMHg4ZWI5LAkxNiwJezB4YTMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4OGUsIDB4NTksIDB4ZjUsIDB4NWEsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODN9IH0sCi17IDB4OGVjOSwJMTYsCXsweGUwLCAweDI0LCAweDllLCAweDYwLCAweDYxLCAweDI0LCAweGY5LCAweDYwLCAweDBlLCAweDI0LCAweGYxLCAweDcwLCAweDAzLCAweDAyLCAweDhmLCAweDdhfSB9LAoteyAweDhlZDksCTE2LAl7MHgyNCwgMHgxNCwgMHg2MCwgMHgwMywgMHgwMiwgMHg4ZiwgMHhjOCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZX0gfSwKLXsgMHg4ZWU5LAkxNiwJezB4YTMsIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4ZTQsIDB4OWYsIDB4ZjUsIDB4NWMsIDB4NzQsIDB4MDEsIDB4OWUsIDB4ZjUsIDB4NWIsIDB4ZDMsIDB4ZTUsIDB4NWN9IH0sCi17IDB4OGVmOSwJMTYsCXsweDk0LCAweDNmLCAweGU1LCAweDViLCAweDk0LCAweDAwLCAweDQwLCAweDA2LCAweDc1LCAweDViLCAweDAwLCAweDc1LCAweDVjLCAweDNmLCAweGQzLCAweGU1fSB9LAoteyAweDhmMDksCTE2LAl7MHg1YSwgMHg5NSwgMHg1YywgMHhlNSwgMHg1OSwgMHg5NSwgMHg1YiwgMHg1MCwgMHgwMywgMHgwMiwgMHg4ZiwgMHhjYiwgMHhhZSwgMHg1YiwgMHhhZiwgMHg1Y30gfSwKLXsgMHg4ZjE5LAkxNiwJezB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4ZmUsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4OGV9IH0sCi17IDB4OGYyOSwJMTYsCXsweDU5LCAweGY1LCAweDVhLCAweDAyLCAweDhmLCAweGNiLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZlLCAweGEzfSB9LAoteyAweDhmMzksCTE2LAl7MHhlMCwgMHhmZiwgMHhjMywgMHg3NCwgMHgzMCwgMHg5ZiwgMHhmNSwgMHg1YywgMHhlNCwgMHg5ZSwgMHhmNSwgMHg1YiwgMHhkMywgMHhlNSwgMHg1YywgMHg5NH0gfSwKLXsgMHg4ZjQ5LAkxNiwJezB4MTAsIDB4ZTUsIDB4NWIsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDYsIDB4NzUsIDB4NWIsIDB4MDAsIDB4NzUsIDB4NWMsIDB4MTAsIDB4ZDMsIDB4ZTUsIDB4NWF9IH0sCi17IDB4OGY1OSwJMTYsCXsweDk1LCAweDVjLCAweGU1LCAweDU5LCAweDk1LCAweDViLCAweDQwLCAweDZhLCAweGFlLCAweDViLCAweGFmLCAweDVjLCAweDg1LCAweDU4LCAweDgyLCAweDg1fSB9LAoteyAweDhmNjksCTE2LAl7MHg1NywgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlZSwgMHhmMCwgMHhmZSwgMHhhMywgMHhlZiwgMHhmMCwgMHg4ZSwgMHg1OSwgMHhmNSwgMHg1YSwgMHg4MH0gfSwKLXsgMHg4Zjc5LAkxNiwJezB4NTEsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4ZTQsIDB4OWZ9IH0sCi17IDB4OGY4OSwJMTYsCXsweGY1LCAweDVjLCAweGU0LCAweDllLCAweGY1LCAweDViLCAweDQ1LCAweDVjLCAweDYwLCAweDBiLCAweGQzLCAweGU1LCAweDVjLCAweDk0LCAweDNmLCAweGU1fSB9LAoteyAweDhmOTksCTE2LAl7MHg1YiwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNiwgMHg3NSwgMHg1YiwgMHgwMCwgMHg3NSwgMHg1YywgMHgzZiwgMHhkMywgMHhlNSwgMHg1YSwgMHg5NSwgMHg1Y30gfSwKLXsgMHg4ZmE5LAkxNiwJezB4ZTUsIDB4NTksIDB4OTUsIDB4NWIsIDB4NDAsIDB4MWMsIDB4YWUsIDB4NWIsIDB4YWYsIDB4NWMsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODN9IH0sCi17IDB4OGZiOSwJMTYsCXsweGEzLCAweGEzLCAweGEzLCAweGVlLCAweGYwLCAweGZlLCAweGEzLCAweGVmLCAweGYwLCAweDhlLCAweDU5LCAweGY1LCAweDVhLCAweDgwLCAweDAzLCAweDdmfSB9LAoteyAweDhmYzksCTE2LAl7MHgwMSwgMHgyMiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhlMCwgMHgyNCwgMHg5ZSwgMHg3MCwgMHgwMywgMHgwMiwgMHg5MCwgMHg4Yn0gfSwKLXsgMHg4ZmQ5LAkxNiwJezB4MjQsIDB4ZjksIDB4NjAsIDB4NTgsIDB4MjQsIDB4ZjEsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OTAsIDB4ZGIsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MDMsIDB4MDJ9IH0sCi17IDB4OGZlOSwJMTYsCXsweDkxLCAweDFmLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweGQzLCAweDk0fSB9LAoteyAweDhmZjksCTE2LAl7MHhmZiwgMHhlZSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHg5MSwgMHgxZiwgMHg5MCwgMHgwMSwgMHg3NSwgMHhlZiwgMHhmMCwgMHhlNSwgMHg1YX0gfSwKLXsgMHg5MDA5LAkxNiwJezB4MTUsIDB4NWEsIDB4YWUsIDB4NTksIDB4NzAsIDB4MDIsIDB4MTUsIDB4NTksIDB4NGUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OTEsIDB4MWYsIDB4OTAsIDB4MDF9IH0sCi17IDB4OTAxOSwJMTYsCXsweDc1LCAweGUwLCAweGZmLCAweDA0LCAweGYwLCAweGE4LCAweDA3LCAweGU2LCAweGZmLCAweDkwLCAweDAxLCAweDdhLCAweGU0LCAweDc1LCAweGYwLCAweDAxfSB9LAoteyAweDkwMjksCTE2LAl7MHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg4MCwgMHhkMiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NX0gfSwKLXsgMHg5MDM5LAkxNiwJezB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4OTQsIDB4ODAsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDN9IH0sCi17IDB4OTA0OSwJMTYsCXsweDAyLCAweDkxLCAweDFmLCAweGQzLCAweGVmLCAweDk0LCAweGZmLCAweGVlLCAweDk0LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDkxLCAweDFmLCAweDkwfSB9LAoteyAweDkwNTksCTE2LAl7MHgwMSwgMHg3NiwgMHhlZiwgMHhmMCwgMHhlNSwgMHg1YSwgMHgxNSwgMHg1YSwgMHhhZSwgMHg1OSwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1OSwgMHg0ZSwgMHg3MH0gfSwKLXsgMHg5MDY5LAkxNiwJezB4MDMsIDB4MDIsIDB4OTEsIDB4MWYsIDB4OTAsIDB4MDEsIDB4NzYsIDB4ZTAsIDB4ZmYsIDB4MDQsIDB4ZjAsIDB4YTgsIDB4MDcsIDB4ZTYsIDB4ZmYsIDB4OTB9IH0sCi17IDB4OTA3OSwJMTYsCXsweDAxLCAweDdhLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyLCAweGY1LCAweDgzLCAweGVmLCAweGYwfSB9LAoteyAweDkwODksCTE2LAl7MHg4MCwgMHhkMiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHhjMywgMHg5NH0gfSwKLXsgMHg5MDk5LAkxNiwJezB4MjAsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4OTEsIDB4MWYsIDB4ZDMsIDB4ZWYsIDB4OTQsIDB4MmYsIDB4ZWUsIDB4OTQsIDB4MDB9IH0sCi17IDB4OTBhOSwJMTYsCXsweDUwLCAweDc0LCAweDkwLCAweDAxLCAweDc3LCAweGVmLCAweGYwLCAweGU1LCAweDVhLCAweDE1LCAweDVhLCAweGFlLCAweDU5LCAweDcwLCAweDAyLCAweDE1fSB9LAoteyAweDkwYjksCTE2LAl7MHg1OSwgMHg0ZSwgMHg2MCwgMHg2MiwgMHg5MCwgMHgwMSwgMHg3NywgMHhlMCwgMHhmZiwgMHgwNCwgMHhmMCwgMHhhOCwgMHgwNywgMHhlNiwgMHhmZiwgMHg5MH0gfSwKLXsgMHg5MGM5LAkxNiwJezB4MDEsIDB4N2EsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODIsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjB9IH0sCi17IDB4OTBkOSwJMTYsCXsweDgwLCAweGQ1LCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZmLCAweGEzLCAweGUwLCAweDkwLCAweDAxLCAweDc4fSB9LAoteyAweDkwZTksCTE2LAl7MHhjZiwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHhlNSwgMHg1YSwgMHgxNSwgMHg1YSwgMHhhZSwgMHg1OSwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1OSwgMHg0ZX0gfSwKLXsgMHg5MGY5LAkxNiwJezB4NjAsIDB4MjQsIDB4OTAsIDB4MDEsIDB4NzgsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODIsIDB4ZjV9IH0sCi17IDB4OTEwOSwJMTYsCXsweDgzLCAweGUwLCAweGZmLCAweDkwLCAweDAxLCAweDdhLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyfSB9LAoteyAweDkxMTksCTE2LAl7MHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg4MCwgMHhjZiwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgzNSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4M30gfSwKLXsgMHg5MTI5LAkxMywJezB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4MDQsIDB4ZmQsIDB4MTIsIDB4OTEsIDB4NmEsIDB4N2YsIDB4MDB9IH0sCi17IDB4OTEzNiwJMSwJezB4MjJ9IH0sCi17IDB4OTEzNywJMTYsCXsweDhlLCAweDYyLCAweDhmLCAweDYzLCAweDhjLCAweDY0LCAweDhkLCAweDY1LCAweGFmLCAweDAzLCAweDFiLCAweGVmLCAweDYwLCAweDI0LCAweDA1LCAweDYzfSB9LAoteyAweDkxNDcsCTE2LAl7MHhlNSwgMHg2MywgMHhhZSwgMHg2MiwgMHg3MCwgMHgwMiwgMHgwNSwgMHg2MiwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHhmZiwgMHgwNX0gfSwKLXsgMHg5MTU3LAkxNiwJezB4NjUsIDB4ZTUsIDB4NjUsIDB4YWMsIDB4NjQsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NjQsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjB9IH0sCi17IDB4OTE2NywJMywJezB4ODAsIDB4ZDYsIDB4MjJ9IH0sCi17IDB4OTE2YSwJNiwJezB4OGQsIDB4NWQsIDB4YWIsIDB4MDcsIDB4YWEsIDB4MDZ9IH0sCi17IDB4OTE3MCwJMTYsCXsweDc1LCAweDYxLCAweDQwLCAweDc1LCAweDYwLCAweDBkLCAweDc1LCAweDVmLCAweDAzLCAweDc1LCAweDVlLCAweDAwLCAweDkwLCAweDdmLCAweGMyLCAweGUwfSB9LAoteyAweDkxODAsCTE2LAl7MHgyMCwgMHhlMSwgMHhmOSwgMHhhZiwgMHg2MSwgMHhhZSwgMHg2MCwgMHhhZCwgMHg1ZiwgMHhhYywgMHg1ZSwgMHhlYywgMHg0ZCwgMHg0ZSwgMHg0ZiwgMHg3MH0gfSwKLXsgMHg5MTkwLAkxNiwJezB4MDgsIDB4OTAsIDB4N2YsIDB4YzIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4ZDcsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTZ9IH0sCi17IDB4OTFhMCwJMTYsCXsweGFmLCAweDAzLCAweGFlLCAweDAyLCAweDdjLCAweDdiLCAweDdkLCAweDgwLCAweGFiLCAweDVkLCAweDEyLCAweDkxLCAweDM3LCAweDkwLCAweDdmLCAweGMzfSB9LAoteyAweDkxYjAsCTgsCXsweGU1LCAweDVkLCAweGYwLCAweDdmLCAweDAxLCAweDIyLCAweDdmLCAweDAwfSB9LAoteyAweDkxYjgsCTEsCXsweDIyfSB9LAoteyAweDkxYjksCTE2LAl7MHg5MCwgMHgwMSwgMHg4NCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhhMywgMHhlNSwgMHgzMywgMHhmMCwgMHg5MCwgMHgwYSwgMHhmNSwgMHhlNCwgMHg5MywgMHg5MH0gfSwKLXsgMHg5MWM5LAkxNiwJezB4MDEsIDB4ODYsIDB4ZjAsIDB4OTAsIDB4MGEsIDB4ZjYsIDB4ZTQsIDB4OTMsIDB4OTAsIDB4MDEsIDB4ODcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4MDEsIDB4N2N9IH0sCi17IDB4OTFkOSwJMTYsCXsweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweDc0LCAweDEwLCAweGYwLCAweGEzLCAweDc0LCAweDAxfSB9LAoteyAweDkxZTksCTE2LAl7MHhmMCwgMHhhMywgMHg3NCwgMHg4OCwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHg3YywgMHgxMiwgMHgxOSwgMHhjMSwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHg4NH0gfSwKLXsgMHg5MWY5LAk3LAl7MHg3ZCwgMHgxNCwgMHgxMiwgMHg5MSwgMHg2YSwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg5MjAwLAkxLAl7MHgyMn0gfSwKLXsgMHg5MjAxLAkxNiwJezB4N2UsIDB4N2IsIDB4N2YsIDB4NDAsIDB4NzUsIDB4NGUsIDB4N2IsIDB4NzUsIDB4NGYsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZTAsIDB4ZmYsIDB4ODV9IH0sCi17IDB4OTIxMSwJMTYsCXsweDRlLCAweDUxLCAweDg1LCAweDRmLCAweDUyLCAweGU1LCAweDUyLCAweDI0LCAweDAxLCAweGY1LCAweDU2LCAweGU0LCAweDM1LCAweDUxLCAweGY1LCAweDU1fSB9LAoteyAweDkyMjEsCTE2LAl7MHhlNCwgMHhmNSwgMHg1MCwgMHg4NSwgMHg1MiwgMHg4MiwgMHg4NSwgMHg1MSwgMHg4MywgMHhlMCwgMHhmZSwgMHgxNCwgMHhiNCwgMHgwYywgMHgwMCwgMHg1MH0gfSwKLXsgMHg5MjMxLAkxNiwJezB4NWIsIDB4OTAsIDB4OTIsIDB4MzksIDB4ZjgsIDB4MjgsIDB4MjgsIDB4NzMsIDB4MDIsIDB4OTIsIDB4NWQsIDB4MDIsIDB4OTIsIDB4NWQsIDB4MDIsIDB4OTJ9IH0sCi17IDB4OTI0MSwJMTYsCXsweDY3LCAweDAyLCAweDkyLCAweDcxLCAweDAyLCAweDkyLCAweDcxLCAweDAyLCAweDkyLCAweDcxLCAweDAyLCAweDkyLCAweDg1LCAweDAyLCAweDkyLCAweDVkfSB9LAoteyAweDkyNTEsCTE2LAl7MHgwMiwgMHg5MiwgMHg3YiwgMHgwMiwgMHg5MiwgMHg1ZCwgMHgwMiwgMHg5MiwgMHg4ZCwgMHgwMiwgMHg5MiwgMHg1ZCwgMHhlZiwgMHg2NCwgMHgwMiwgMHg2MH0gfSwKLXsgMHg5MjYxLAkxNiwJezB4MmIsIDB4NzUsIDB4NTAsIDB4ZmYsIDB4ODAsIDB4MjYsIDB4ZWYsIDB4NjQsIDB4MGUsIDB4NjAsIDB4MjEsIDB4NzUsIDB4NTAsIDB4ZmYsIDB4ODAsIDB4MWN9IH0sCi17IDB4OTI3MSwJMTYsCXsweGVmLCAweDY0LCAweDAzLCAweDYwLCAweDE3LCAweDc1LCAweDUwLCAweGZmLCAweDgwLCAweDEyLCAweGVmLCAweDY0LCAweDAzLCAweDYwLCAweDBkLCAweDc1fSB9LAoteyAweDkyODEsCTE2LAl7MHg1MCwgMHhmZiwgMHg4MCwgMHgwOCwgMHhlZiwgMHg2NCwgMHgwNiwgMHg2MCwgMHgwMywgMHg3NSwgMHg1MCwgMHhmZiwgMHhlNSwgMHg1MCwgMHg2MCwgMHgxNX0gfSwKLXsgMHg5MjkxLAkxNiwJezB4OTAsIDB4MDEsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4OTgsIDB4N2QsIDB4MDIsIDB4MTJ9IH0sCi17IDB4OTJhMSwJMTYsCXsweDkxLCAweDZhLCAweGFmLCAweDUwLCAweDIyLCAweGU0LCAweGY1LCAweDUwLCAweDg1LCAweDUyLCAweDgyLCAweDg1LCAweDUxLCAweDgzLCAweGUwLCAweDE0fSB9LAoteyAweDkyYjEsCTE2LAl7MHhiNCwgMHgwZiwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHg5MywgMHhjZiwgMHg5MCwgMHg5MiwgMHhjMCwgMHhmOCwgMHgyOCwgMHgyOCwgMHg3MywgMHgwMn0gfSwKLXsgMHg5MmMxLAkxNiwJezB4OTIsIDB4ZWQsIDB4MDIsIDB4OTIsIDB4ZjksIDB4MDIsIDB4OTMsIDB4MDUsIDB4MDIsIDB4OTMsIDB4NTMsIDB4MDIsIDB4OTMsIDB4NWUsIDB4MDIsIDB4OTN9IH0sCi17IDB4OTJkMSwJMTYsCXsweDY5LCAweDAyLCAweDkzLCAweDc0LCAweDAyLCAweDkzLCAweDdmLCAweDAyLCAweDkzLCAweDhhLCAweDAyLCAweDkzLCAweDk1LCAweDAyLCAweDkzLCAweGEwfSB9LAoteyAweDkyZTEsCTE2LAl7MHgwMiwgMHg5MywgMHhhNywgMHgwMiwgMHg5MywgMHhjZiwgMHgwMiwgMHg5MywgMHhiMiwgMHgwMiwgMHg5MywgMHhiZCwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NX0gfSwKLXsgMHg5MmYxLAkxNiwJezB4MTIsIDB4ODQsIDB4NDEsIDB4OGYsIDB4NTAsIDB4MDIsIDB4OTMsIDB4ZDIsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4ODUsIDB4NjEsIDB4OGZ9IH0sCi17IDB4OTMwMSwJMTYsCXsweDUwLCAweDAyLCAweDkzLCAweGQyLCAweDg1LCAweDU1LCAweDUzLCAweDg1LCAweDU2LCAweDU0LCAweGU1LCAweDU0LCAweDI0LCAweDAxLCAweGZmLCAweGU0fSB9LAoteyAweDkzMTEsCTE2LAl7MHgzNSwgMHg1MywgMHhmZSwgMHgxMiwgMHg4NiwgMHhiZSwgMHhhZiwgMHg1NCwgMHhhZSwgMHg1MywgMHgxMiwgMHg4NywgMHg1MSwgMHg4ZiwgMHg1MCwgMHhlZn0gfSwKLXsgMHg5MzIxLAkxNiwJezB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4OTMsIDB4ZDIsIDB4YWYsIDB4NTQsIDB4YWUsIDB4NTMsIDB4MTIsIDB4ODcsIDB4YTYsIDB4OGYsIDB4NTB9IH0sCi17IDB4OTMzMSwJMTYsCXsweGU1LCAweDUwLCAweDcwLCAweDAzLCAweDAyLCAweDkzLCAweGQyLCAweDg1LCAweDU0LCAweDgyLCAweDg1LCAweDUzLCAweDgzLCAweGUwLCAweDc1LCAweGYwfSB9LAoteyAweDkzNDEsCTE2LAl7MHgwZCwgMHhhNCwgMHgyNCwgMHhmNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhhZiwgMHg4MiwgMHhmZSwgMHgxMiwgMHg4NywgMHhhNiwgMHgwMn0gfSwKLXsgMHg5MzUxLAkxNiwJezB4OTMsIDB4ZDIsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4OGMsIDB4YTYsIDB4OGYsIDB4NTAsIDB4ODAsIDB4NzQsIDB4YWYsIDB4NTYsIDB4YWV9IH0sCi17IDB4OTM2MSwJMTYsCXsweDU1LCAweDEyLCAweDhkLCAweDI3LCAweDhmLCAweDUwLCAweDgwLCAweDY5LCAweGFmLCAweDU2LCAweGFlLCAweDU1LCAweDEyLCAweDhkLCAweDcwLCAweDhmfSB9LAoteyAweDkzNzEsCTE2LAl7MHg1MCwgMHg4MCwgMHg1ZSwgMHhhZiwgMHg0ZiwgMHhhZSwgMHg0ZSwgMHgxMiwgMHg4ZSwgMHg5OSwgMHg4ZiwgMHg1MCwgMHg4MCwgMHg1MywgMHhhZiwgMHg1Nn0gfSwKLXsgMHg5MzgxLAkxNiwJezB4YWUsIDB4NTUsIDB4MTIsIDB4OGIsIDB4YmQsIDB4OGYsIDB4NTAsIDB4ODAsIDB4NDgsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4ODYsIDB4MmR9IH0sCi17IDB4OTM5MSwJMTYsCXsweDhmLCAweDUwLCAweDgwLCAweDNkLCAweGFmLCAweDU2LCAweGFlLCAweDU1LCAweDEyLCAweDhjLCAweDYyLCAweDhmLCAweDUwLCAweDgwLCAweDMyLCAweDEyfSB9LAoteyAweDkzYTEsCTE2LAl7MHg5MSwgMHhiOSwgMHg4ZiwgMHg1MCwgMHg4MCwgMHgyYiwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NSwgMHgxMiwgMHg4ZCwgMHhiNSwgMHg4ZiwgMHg1MCwgMHg4MH0gfSwKLXsgMHg5M2IxLAkxNiwJezB4MjAsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4OGQsIDB4ZDYsIDB4OGYsIDB4NTAsIDB4ODAsIDB4MTUsIDB4YWYsIDB4NGYsIDB4YWUsIDB4NGV9IH0sCi17IDB4OTNjMSwJMTYsCXsweDdjLCAweDAyLCAweDdkLCAweGFmLCAweDdiLCAweDQwLCAweDEyLCAweDkxLCAweDM3LCAweGU0LCAweGY1LCAweDUwLCAweDgwLCAweDAzLCAweDc1LCAweDUwfSB9LAoteyAweDkzZDEsCTE2LAl7MHhmZiwgMHhlNSwgMHg1MCwgMHg2MCwgMHgxZCwgMHg5MCwgMHgwMSwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg4NSwgMHg1MiwgMHg4MiwgMHg4NSwgMHg1MX0gfSwKLXsgMHg5M2UxLAkxNiwJezB4ODMsIDB4ZTAsIDB4OTAsIDB4MDEsIDB4OTksIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4OTgsIDB4N2QsIDB4MDIsIDB4MTIsIDB4OTEsIDB4NmEsIDB4YWZ9IH0sCi17IDB4OTNmMSwJMTYsCXsweDUwLCAweDIyLCAweDg1LCAweDUyLCAweDgyLCAweDg1LCAweDUxLCAweDgzLCAweGUwLCAweGZmLCAweDE0LCAweDI0LCAweGZhLCAweDUwLCAweDA0LCAweDI0fSB9LAoteyAweDk0MDEsCTE2LAl7MHhmZSwgMHg3MCwgMHgxZiwgMHg5MCwgMHgwMSwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHg4NSwgMHg1NiwgMHg4MiwgMHg4NX0gfSwKLXsgMHg5NDExLAkxNiwJezB4NTUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4MDEsIDB4OWEsIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4OTgsIDB4N2QsIDB4MDMsIDB4MTIsIDB4OTEsIDB4NmF9IH0sCi17IDB4OTQyMSwJNCwJezB4OGYsIDB4NTAsIDB4YWYsIDB4NTB9IH0sCi17IDB4OTQyNSwJMSwJezB4MjJ9IH0sCi17IDB4OTQyNiwJOCwJezB4OGYsIDB4NTEsIDB4OGUsIDB4NTAsIDB4OGQsIDB4NGYsIDB4OGMsIDB4NGV9IH0sCi17IDB4OTQyZSwJMTYsCXsweDc1LCAweDU4LCAweDAxLCAweDc1LCAweDU5LCAweDljLCAweGU0LCAweGY1LCAweDU3LCAweGFmLCAweDUzLCAweDE1LCAweDUzLCAweGVmLCAweDcwLCAweDAzfSB9LAoteyAweDk0M2UsCTE2LAl7MHgwMiwgMHg5NCwgMHhjNCwgMHhhZiwgMHg1MiwgMHhlNCwgMHhmYywgMHhmZCwgMHhmZSwgMHhmOCwgMHhmOSwgMHhmYSwgMHhhYiwgMHgwNywgMHhhZiwgMHg1MX0gfSwKLXsgMHg5NDRlLAkxNiwJezB4YWUsIDB4NTAsIDB4YWQsIDB4NGYsIDB4YWMsIDB4NGUsIDB4MTIsIDB4YTMsIDB4MjEsIDB4YWYsIDB4MDMsIDB4OGYsIDB4NTYsIDB4YWYsIDB4NTEsIDB4YWV9IH0sCi17IDB4OTQ1ZSwJMTYsCXsweDUwLCAweGFkLCAweDRmLCAweGFjLCAweDRlLCAweGMwLCAweDA0LCAweGMwLCAweDA1LCAweGMwLCAweDA2LCAweGMwLCAweDA3LCAweGFmLCAweDUyLCAweGU0fSB9LAoteyAweDk0NmUsCTE2LAl7MHhmYywgMHhmZCwgMHhmZSwgMHhmOCwgMHhmOSwgMHhmYSwgMHhhYiwgMHgwNywgMHhkMCwgMHgwNywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwNSwgMHhkMCwgMHgwNH0gfSwKLXsgMHg5NDdlLAkxNiwJezB4MTIsIDB4YTMsIDB4MjEsIDB4OGYsIDB4NTEsIDB4OGUsIDB4NTAsIDB4OGQsIDB4NGYsIDB4OGMsIDB4NGUsIDB4ZTUsIDB4NTYsIDB4MjQsIDB4MzAsIDB4ZjV9IH0sCi17IDB4OTQ4ZSwJMTYsCXsweDU2LCAweGQzLCAweDk0LCAweDM5LCAweDQwLCAweDA2LCAweDc0LCAweDA3LCAweDI1LCAweDU2LCAweGY1LCAweDU2LCAweDA1LCAweDU5LCAweGU1LCAweDU5fSB9LAoteyAweDk0OWUsCTE2LAl7MHhhZSwgMHg1OCwgMHg3MCwgMHgwMiwgMHgwNSwgMHg1OCwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNCwgMHhmMCwgMHgwNSwgMHg1OSwgMHhlNX0gfSwKLXsgMHg5NGFlLAkxNiwJezB4NTksIDB4YWUsIDB4NTgsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTgsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4NTYsIDB4ZjAsIDB4MDV9IH0sCi17IDB4OTRiZSwJMTYsCXsweDU3LCAweDA1LCAweDU3LCAweDAyLCAweDk0LCAweDM3LCAweGU1LCAweDU5LCAweDE1LCAweDU5LCAweDcwLCAweDAyLCAweDE1LCAweDU4LCAweGFmLCAweDU3fSB9LAoteyAweDk0Y2UsCTE2LAl7MHgxNSwgMHg1NywgMHhlZiwgMHg2MCwgMHgyMywgMHhlNSwgMHg1OSwgMHgxNSwgMHg1OSwgMHhhZSwgMHg1OCwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1OCwgMHhmNX0gfSwKLXsgMHg5NGRlLAkxNiwJezB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MDUsIDB4NTUsIDB4ZTUsIDB4NTUsIDB4YWMsIDB4NTQsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTQsIDB4MTR9IH0sCi17IDB4OTRlZSwJOCwJezB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4ZDZ9IH0sCi17IDB4OTRmNiwJMSwJezB4MjJ9IH0sCi17IDB4OTRmNywJMTYsCXsweGU0LCAweDkwLCAweDAxLCAweGM5LCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweGNhLCAweDkwLCAweDAxLCAweGJlLCAweGVlLCAweGYwLCAweGEzLCAweGVmfSB9LAoteyAweDk1MDcsCTEwLAl7MHhmMCwgMHg5MCwgMHgwMSwgMHhjMiwgMHhlZSwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHgyMn0gfSwKLXsgMHg5NTExLAkxNiwJezB4YWEsIDB4MDcsIDB4YTksIDB4MDUsIDB4OTAsIDB4MDEsIDB4YzksIDB4ZTAsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4NjEsIDB4YWMsIDB4MDIsIDB4NzR9IH0sCi17IDB4OTUyMSwJMTYsCXsweDAxLCAweDdlLCAweDAwLCAweGE4LCAweDA0LCAweDA4LCAweDgwLCAweDA1LCAweGMzLCAweDMzLCAweGNlLCAweDMzLCAweGNlLCAweGQ4LCAweGY5LCAweGZmfSB9LAoteyAweDk1MzEsCTE2LAl7MHhlNCwgMHhlZiwgMHg1NSwgMHgzNCwgMHg2MCwgMHg0NSwgMHhlYSwgMHgwNCwgMHhmZiwgMHg5MCwgMHgwMSwgMHhjMiwgMHhlMCwgMHhmYywgMHhhMywgMHhlMH0gfSwKLXsgMHg5NTQxLAkxNiwJezB4ZmQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4ZjAsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4YTMsIDB4YTN9IH0sCi17IDB4OTU1MSwJMTYsCXsweGViLCAweGYwLCAweDkwLCAweDAxLCAweGMyLCAweGU0LCAweDc1LCAweGYwLCAweDAzLCAweDEyLCAweGEyLCAweDgxLCAweGZjLCAweGQzLCAweGU1LCAweGYwfSB9LAoteyAweDk1NjEsCTE2LAl7MHg5NCwgMHg4NywgMHhlYywgMHg5NCwgMHgwMiwgMHg0MCwgMHgwYSwgMHg5MCwgMHgwMSwgMHhjMiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHg3NCwgMHhjYX0gfSwKLXsgMHg5NTcxLAkxNiwJezB4ZjAsIDB4YzIsIDB4YWYsIDB4OTAsIDB4MDEsIDB4YzksIDB4ZTAsIDB4MDQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4N2YsIDB4MDEsIDB4MjIsIDB4N2YsIDB4MDB9IH0sCi17IDB4OTU4MSwJMSwJezB4MjJ9IH0sCi17IDB4OTU4MiwJMTYsCXsweDkwLCAweDAxLCAweGM5LCAweGUwLCAweGQzLCAweDk0LCAweDAwLCAweDQwLCAweDU1LCAweDkwLCAweDAxLCAweGJlLCAweGUwLCAweGZjLCAweGEzLCAweGUwfSB9LAoteyAweDk1OTIsCTE2LAl7MHhhYSwgMHgwNCwgMHhmOSwgMHg3YiwgMHgwMSwgMHhjMCwgMHgwMywgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMSwgMHhhYSwgMHgwNiwgMHhhOSwgMHgwNywgMHhhOH0gfSwKLXsgMHg5NWEyLAkxNiwJezB4MDEsIDB4YWMsIDB4MDIsIDB4YWQsIDB4MDMsIDB4ZDAsIDB4MDEsIDB4ZDAsIDB4MDIsIDB4ZDAsIDB4MDMsIDB4N2UsIDB4MDAsIDB4N2YsIDB4MDMsIDB4MTJ9IH0sCi17IDB4OTViMiwJMTYsCXsweGEyLCAweDEyLCAweDkwLCAweDAxLCAweGJlLCAweGU0LCAweDc1LCAweGYwLCAweDAzLCAweDEyLCAweGEyLCAweDgxLCAweGZjLCAweGQzLCAweGU1LCAweGYwfSB9LAoteyAweDk1YzIsCTE2LAl7MHg5NCwgMHg4NywgMHhlYywgMHg5NCwgMHgwMiwgMHg0MCwgMHgwYSwgMHg5MCwgMHgwMSwgMHhiZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHg3NCwgMHhjYX0gfSwKLXsgMHg5NWQyLAkxNiwJezB4ZjAsIDB4YzIsIDB4YWYsIDB4OTAsIDB4MDEsIDB4YzksIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4N2YsIDB4MDEsIDB4MjIsIDB4N2YsIDB4MDB9IH0sCi17IDB4OTVlMiwJMSwJezB4MjJ9IH0sCi17IDB4OTVlMywJMTYsCXsweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDIwLCAweGUxLCAweDczLCAweDdlLCAweDdiLCAweDdmLCAweDgwLCAweDc1LCAweDUzLCAweDdiLCAweDc1LCAweDU0fSB9LAoteyAweDk1ZjMsCTE2LAl7MHg4MCwgMHhlNSwgMHg1NCwgMHgyNCwgMHgwMSwgMHhmZiwgMHhlNCwgMHgzNSwgMHg1MywgMHhhOSwgMHgwNywgMHg3YiwgMHgwMSwgMHg4YiwgMHg1NSwgMHhmNX0gfSwKLXsgMHg5NjAzLAkxNiwJezB4NTYsIDB4ODksIDB4NTcsIDB4ZmUsIDB4MTIsIDB4OTUsIDB4ODIsIDB4ZWYsIDB4NjAsIDB4NTAsIDB4YWIsIDB4NTUsIDB4YWEsIDB4NTYsIDB4YTksIDB4NTd9IH0sCi17IDB4OTYxMywJMTYsCXsweDEyLCAweGEyLCAweDNiLCAweDE0LCAweGZmLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweGEyLCAweDU0LCAweGI0LCAweDAyLCAweDE2LCAweGMyLCAweGFmfSB9LAoteyAweDk2MjMsCTE2LAl7MHhlZiwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NH0gfSwKLXsgMHg5NjMzLAkxNiwJezB4MDQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4NzQsIDB4MDEsIDB4N2UsIDB4MDAsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDUsIDB4YzMsIDB4MzMsIDB4Y2V9IH0sCi17IDB4OTY0MywJMTYsCXsweDMzLCAweGNlLCAweGQ4LCAweGY5LCAweGZmLCAweGU0LCAweGVmLCAweDU1LCAweDM0LCAweDYwLCAweDBmLCAweDg1LCAweDU0LCAweDgyLCAweDg1LCAweDUzfSB9LAoteyAweDk2NTMsCTEwLAl7MHg4MywgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwNCwgMHhmMH0gfSwKLXsgMHg5NjVkLAkxLAl7MHgyMn0gfSwKLXsgMHg5NjVlLAkxNiwJezB4MTIsIDB4OTUsIDB4ZTMsIDB4ZTQsIDB4ZjUsIDB4NGUsIDB4NzQsIDB4M2EsIDB4MjUsIDB4NGUsIDB4ZjgsIDB4ZTYsIDB4NTQsIDB4ZjAsIDB4ZjUsIDB4NGZ9IH0sCi17IDB4OTY2ZSwJMTYsCXsweDc0LCAweGM1LCAweDI1LCAweDRlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAxLCAweGY1LCAweDgzLCAweGUwLCAweDY1LCAweDRmLCAweGZmLCAweGM0fSB9LAoteyAweDk2N2UsCTE2LAl7MHg1NCwgMHgwZiwgMHhmNSwgMHg1MCwgMHg2MCwgMHgyMiwgMHg3NCwgMHhjNSwgMHgyNSwgMHg0ZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMSwgMHhmNX0gfSwKLXsgMHg5NjhlLAkxNiwJezB4ODMsIDB4ZTUsIDB4NGYsIDB4ZjAsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDEsIDB4ZTUsIDB4NGYsIDB4NDUsIDB4NTAsIDB4ZmIsIDB4MTIsIDB4OTUsIDB4MTF9IH0sCi17IDB4OTY5ZSwJMTYsCXsweGVmLCAweDcwLCAweDA1LCAweDEyLCAweDk1LCAweGUzLCAweDgwLCAweGVjLCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweGMzLCAweDk0LCAweDA0LCAweDQwfSB9LAoteyAweDk2YWUsCTE2LAl7MHhiNSwgMHgxMiwgMHg5NSwgMHhlMywgMHhlNSwgMHgzZSwgMHg2MCwgMHg0OCwgMHhlNCwgMHhmNSwgMHg0ZSwgMHhhZiwgMHg0ZSwgMHg3NCwgMHgwMSwgMHhhOH0gfSwKLXsgMHg5NmJlLAkxNiwJezB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZjUsIDB4NGYsIDB4NTUsIDB4M2UsIDB4NjAsIDB4MjksIDB4ZTUsIDB4NGV9IH0sCi17IDB4OTZjZSwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGU2fSB9LAoteyAweDk2ZGUsCTE2LAl7MHgxNiwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwNCwgMHg3YiwgMHg4MCwgMHgxMiwgMHg5NSwgMHgxMSwgMHhlZiwgMHg3MCwgMHgwNSwgMHgxMiwgMHg5NSwgMHhlM30gfSwKLXsgMHg5NmVlLAkxNiwJezB4ODAsIDB4ZWYsIDB4ZTUsIDB4NGYsIDB4ZjQsIDB4NTIsIDB4M2UsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4YmJ9IH0sCi17IDB4OTZmZSwJMTYsCXsweDkwLCAweDAzLCAweDAwLCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDk3LCAweGRmLCAweDc0LCAweDE5LCAweGYwLCAweGU1LCAweDMzLCAweGMzLCAweDk0fSB9LAoteyAweDk3MGUsCTE2LAl7MHgwMSwgMHg0MCwgMHgwZCwgMHg5MCwgMHgyMCwgMHg3OCwgMHhlMCwgMHg1NCwgMHgwZiwgMHg3NSwgMHg1MSwgMHgwMCwgMHhmNSwgMHg1MiwgMHg4MCwgMHgwOX0gfSwKLXsgMHg5NzFlLAkxNiwJezB4N2YsIDB4MDIsIDB4MTIsIDB4MTEsIDB4MjcsIDB4OGUsIDB4NTEsIDB4OGYsIDB4NTIsIDB4YzMsIDB4ZTUsIDB4NTEsIDB4NjQsIDB4ODAsIDB4OTQsIDB4ODB9IH0sCi17IDB4OTcyZSwJMTYsCXsweDQwLCAweGRhLCAweDkwLCAweDAxLCAweGJjLCAweGUwLCAweDY1LCAweDUyLCAweGYwLCAweDYwLCAweDM3LCAweGU0LCAweGY1LCAweDRlLCAweGFmLCAweDRlfSB9LAoteyAweDk3M2UsCTE2LAl7MHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNSwgMHg0ZiwgMHg5MCwgMHgwMSwgMHhiY30gfSwKLXsgMHg5NzRlLAkxNiwJezB4ZTAsIDB4NTUsIDB4NGYsIDB4NjAsIDB4MTQsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDgsIDB4ZTUsIDB4NGYsIDB4NTUsIDB4NTIsIDB4ZmIsIDB4MTIsIDB4OTV9IH0sCi17IDB4OTc1ZSwJMTYsCXsweDExLCAweGVmLCAweDcwLCAweDA1LCAweDEyLCAweDk1LCAweGUzLCAweDgwLCAweGVjLCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweGMzLCAweDk0LCAweDA0fSB9LAoteyAweDk3NmUsCTE2LAl7MHg0MCwgMHhjYywgMHg5MCwgMHgwMSwgMHhiYywgMHhlNSwgMHg1MiwgMHhmMCwgMHhlNCwgMHhmNSwgMHg0ZSwgMHhjMiwgMHhhZiwgMHg3NCwgMHgzNiwgMHgyNX0gfSwKLXsgMHg5NzdlLAkxNiwJezB4NGUsIDB4ZjgsIDB4ZTYsIDB4ZjUsIDB4NGYsIDB4ZTQsIDB4ZjYsIDB4ZDIsIDB4YWYsIDB4NTMsIDB4NGYsIDB4MWUsIDB4ZTUsIDB4NGYsIDB4NjAsIDB4MTF9IH0sCi17IDB4OTc4ZSwJMTYsCXsweGFmLCAweDRlLCAweDdkLCAweDAyLCAweGFiLCAweDRmLCAweDEyLCAweDk1LCAweDExLCAweGVmLCAweDcwLCAweDA1LCAweDEyLCAweDk1LCAweGUzLCAweDgwfSB9LAoteyAweDk3OWUsCTE2LAl7MHhlZiwgMHg3NCwgMHgyZCwgMHgyNSwgMHg0ZSwgMHhmOCwgMHhlNiwgMHhmNSwgMHg0ZiwgMHg3NCwgMHhmYywgMHgyNSwgMHg0ZSwgMHhmNSwgMHg4MiwgMHhlNH0gfSwKLXsgMHg5N2FlLAkxNiwJezB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjUsIDB4NGYsIDB4NjAsIDB4MTEsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDQsIDB4YWIsIDB4NGYsIDB4MTJ9IH0sCi17IDB4OTdiZSwJMTYsCXsweDk1LCAweDExLCAweGVmLCAweDcwLCAweDA1LCAweDEyLCAweDk1LCAweGUzLCAweDgwLCAweGVmLCAweDc0LCAweGZjLCAweDI1LCAweDRlLCAweGY1LCAweDgyfSB9LAoteyAweDk3Y2UsCTE2LAl7MHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlNSwgMHg0ZiwgMHhmMCwgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MH0gfSwKLXsgMHg5N2RlLAk0LAl7MHg5YSwgMHgxMiwgMHg5NSwgMHhlM30gfSwKLXsgMHg5N2UyLAkxLAl7MHgyMn0gfSwKLXsgMHg5N2UzLAkxMiwJezB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4NjcsIDB4MDIsIDB4OTgsIDB4MmF9IH0sCi17IDB4OTdlZiwJMTYsCXsweDAyLCAweDA1LCAweGFkLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyfSB9LAoteyAweDk3ZmYsCTE2LAl7MHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzM30gfSwKLXsgMHg5ODBmLAkxNiwJezB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGZ9IH0sCi17IDB4OTgxZiwJMTYsCXsweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDk4LCAweDZmLCAweGU0LCAweDdlfSB9LAoteyAweDk4MmYsCTE2LAl7MHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5M30gfSwKLXsgMHg5ODNmLAkxNiwJezB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTN9IH0sCi17IDB4OTg0ZiwJMTYsCXsweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhfSB9LAoteyAweDk4NWYsCTE2LAl7MHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZX0gfSwKLXsgMHg5ODZmLAkxNiwJezB4NjAsIDB4MjQsIDB4MDIsIDB4OGEsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4ODEsIDB4ODIsIDB4ODQsIDB4ODh9IH0sCi17IDB4OTg3ZiwJMTYsCXsweDkwLCAweGEwLCAweGMwLCAweGMxLCAweGMyLCAweGM0LCAweGM4LCAweGQwLCAweGUwLCAweGUxLCAweGUyLCAweGU0LCAweGU4LCAweGYwLCAweGYxLCAweGYyfSB9LAoteyAweDk4OGYsCTgsCXsweGY0LCAweGY4LCAweGY5LCAweGZhLCAweGZjLCAweGZkLCAweGZlLCAweGZmfSB9LAoteyAweDk4OTcsCTEsCXsweDAwfSB9LAoteyAweDk4OTgsCTgsCXsweDhiLCAweDU5LCAweDhhLCAweDVhLCAweDg5LCAweDViLCAweDhkLCAweDVjfSB9LAoteyAweDk4YTAsCTE2LAl7MHhlNCwgMHhmNSwgMHg1ZCwgMHhmNSwgMHg1ZSwgMHhhZiwgMHg1YywgMHgxNSwgMHg1YywgMHhlZiwgMHg2MCwgMHgzNiwgMHhhYiwgMHg1OSwgMHgwNSwgMHg1Yn0gfSwKLXsgMHg5OGIwLAkxNiwJezB4ZTUsIDB4NWIsIDB4YWEsIDB4NWEsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NWEsIDB4MTQsIDB4ZjksIDB4MTIsIDB4YTIsIDB4M2IsIDB4ZmYsIDB4ZTUsIDB4NWR9IH0sCi17IDB4OThjMCwJMTYsCXsweGU1LCAweDVlLCAweDZmLCAweDI1LCAweGUwLCAweGZmLCAweGU0LCAweDMzLCAweGZlLCAweDc0LCAweDk1LCAweDJmLCAweGY1LCAweDgyLCAweGVlLCAweDM0fSB9LAoteyAweDk4ZDAsCTE2LAl7MHg5ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg1ZCwgMHhmZiwgMHhlNCwgMHg5MywgMHhmNSwgMHg1ZCwgMHg3NCwgMHgwMSwgMHg5MywgMHg2ZiwgMHhmNSwgMHg1ZX0gfSwKLXsgMHg5OGUwLAk2LAl7MHg4MCwgMHhjMywgMHhhZSwgMHg1ZCwgMHhhZiwgMHg1ZX0gfSwKLXsgMHg5OGU2LAkxLAl7MHgyMn0gfSwKLXsgMHg5OGU3LAkxMSwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTh9IH0sCi17IDB4OThmMiwJMTYsCXsweDkwLCAweDIwLCAweDYwLCAweGUwLCAweDU0LCAweDBmLCAweGZlLCAweDMwLCAweGUwLCAweDA1LCAweDkwLCAweDIwLCAweDAyLCAweGUwLCAweGZmLCAweGVlfSB9LAoteyAweDk5MDIsCTE2LAl7MHgzMCwgMHhlMSwgMHgwNSwgMHg5MCwgMHgyMCwgMHgwYSwgMHhlMCwgMHhmZiwgMHhlZSwgMHgzMCwgMHhlMiwgMHgwNSwgMHg5MCwgMHgyMCwgMHgxMiwgMHhlMH0gfSwKLXsgMHg5OTEyLAkxNiwJezB4ZmYsIDB4ZWUsIDB4MzAsIDB4ZTMsIDB4MDUsIDB4OTAsIDB4MjAsIDB4MWEsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZTAsIDB4YjUsIDB4MWV9IH0sCi17IDB4OTkyMiwJMTAsCXsweDA0LCAweGU0LCAweGYwLCAweDgwLCAweDA1LCAweDkwLCAweDAxLCAweGM0LCAweGVlLCAweGYwfSB9LAoteyAweDk5MmMsCTksCXsweGQwLCAweGQwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDk5MzUsCTIsCXsweGE5LCAweDAzfSB9LAoteyAweDk5MzcsCTE2LAl7MHhlZiwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhYiwgMHg4MiwgMHhmYSwgMHhlNX0gfSwKLXsgMHg5OTQ3LAkxNiwJezB4NWMsIDB4NDUsIDB4NWQsIDB4ZjUsIDB4NWUsIDB4ZTksIDB4NjAsIDB4MTQsIDB4OGEsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4OTk1NywJMTYsCXsweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDRkLCAweGYwLCAweGU0LCAweGZlLCAweDgwLCAweDEzLCAweGViLCAweDI0LCAweDA0LCAweGY1fSB9LAoteyAweDk5NjcsCTE2LAl7MHg4MiwgMHhlNCwgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlZCwgMHhmNCwgMHhmYywgMHhlZiwgMHg1YywgMHhmMCwgMHhhZSwgMHg1ZSwgMHhlYn0gfSwKLXsgMHg5OTc3LAkxNiwJezB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTUsIDB4NWUsIDB4ZmMsIDB4YjUsIDB4MDYsIDB4MDMsIDB4YWZ9IH0sCi17IDB4OTk4NywJMTYsCXsweDA1LCAweDIyLCAweGU1LCAweDVjLCAweDVjLCAweGZlLCAweGU1LCAweDVkLCAweDVjLCAweGZkLCAweGU5LCAweDYwLCAweDE2LCAweGVlLCAweDcwLCAweDA0fSB9LAoteyAweDk5OTcsCTE2LAl7MHg3ZiwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMCwgMHhhZSwgMHgwNywgMHhlZCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3Zn0gfSwKLXsgMHg5OWE3LAkxNiwJezB4MDAsIDB4YWQsIDB4MDcsIDB4ZWUsIDB4NjAsIDB4MDMsIDB4YWYsIDB4NWMsIDB4MjIsIDB4ZWQsIDB4NjAsIDB4MDMsIDB4YWYsIDB4NWQsIDB4MjIsIDB4N2Z9IH0sCi17IDB4OTliNywJMSwJezB4MDB9IH0sCi17IDB4OTliOCwJMSwJezB4MjJ9IH0sCi17IDB4OTliOSwJMTYsCXsweDc1LCAweDU1LCAweDAyLCAweDc1LCAweDU2LCAweGIwLCAweDkwLCAweDAzLCAweDM1LCAweDc0LCAweDBmLCAweGYwLCAweDg1LCAweDU2LCAweDgyLCAweDg1fSB9LAoteyAweDk5YzksCTE2LAl7MHg1NSwgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHg5MCwgMHgwMywgMHgzNywgMHhmMCwgMHg4NSwgMHg1NiwgMHg4MiwgMHg4NSwgMHg1NSwgMHg4MywgMHhlMH0gfSwKLXsgMHg5OWQ5LAkxNiwJezB4OTAsIDB4MDMsIDB4MzYsIDB4ZjAsIDB4OTAsIDB4MDMsIDB4MzgsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4NzUsIDB4NTcsIDB4MDMsIDB4NzUsIDB4NTgsIDB4Mzl9IH0sCi17IDB4OTllOSwJMTYsCXsweGVmLCAweDE0LCAweGI0LCAweDBiLCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDllLCAweDVkLCAweDkwLCAweDk5LCAweGZhLCAweGY4LCAweDI4LCAweDI4fSB9LAoteyAweDk5ZjksCTE2LAl7MHg3MywgMHgwMiwgMHg5YSwgMHgxYiwgMHgwMiwgMHg5YSwgMHhiYSwgMHgwMiwgMHg5YiwgMHhiZiwgMHgwMiwgMHg5YiwgMHhkZSwgMHgwMiwgMHg5YiwgMHhkZX0gfSwKLXsgMHg5YTA5LAkxNiwJezB4MDIsIDB4OWMsIDB4OTQsIDB4MDIsIDB4OWMsIDB4Y2YsIDB4MDIsIDB4OWMsIDB4ZjQsIDB4MDIsIDB4OWQsIDB4YjIsIDB4MDIsIDB4OWQsIDB4ZTIsIDB4MDJ9IH0sCi17IDB4OWExOSwJMTYsCXsweDllLCAweDBlLCAweGU0LCAweGY1LCAweDRlLCAweGU1LCAweDRlLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0fSB9LAoteyAweDlhMjksCTE2LAl7MHgzNCwgMHgyMCwgMHhhZiwgMHg4MiwgMHhmNSwgMHg1MywgMHg4ZiwgMHg1NCwgMHhlNCwgMHhmZiwgMHhlNCwgMHhmZSwgMHhlZiwgMHg2MCwgMHgxMCwgMHg3NH0gfSwKLXsgMHg5YTM5LAkxNiwJezB4OGEsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjQsIDB4ZjUsIDB4NGYsIDB4ODAsIDB4MGQsIDB4NzR9IH0sCi17IDB4OWE0OSwJMTYsCXsweDhhLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDRmLCAweGU1LCAweDU0LCAweDI0LCAweDA3fSB9LAoteyAweDlhNTksCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1MywgMHhmNSwgMHg4MywgMHhlNSwgMHg0ZiwgMHhmMCwgMHhlMCwgMHhmNSwgMHg1MCwgMHg2NSwgMHg0ZiwgMHg2MH0gfSwKLXsgMHg5YTY5LAkxNiwJezB4MzgsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4ZTUsIDB4NGUsIDB4MDQsIDB4ZmQsIDB4MDUsIDB4NTgsIDB4ZTUsIDB4NTgsIDB4YWEsIDB4NTd9IH0sCi17IDB4OWE3OSwJMTYsCXsweDcwLCAweDAyLCAweDA1LCAweDU3LCAweDE0LCAweGY1LCAweDgyLCAweDhhLCAweDgzLCAweGVkLCAweGYwLCAweDA1LCAweDU4LCAweGU1LCAweDU4LCAweGFjfSB9LAoteyAweDlhODksCTE2LAl7MHg1NywgMHg3MCwgMHgwMiwgMHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlNSwgMHg0ZiwgMHhmMCwgMHg4NSwgMHg1OCwgMHg4Mn0gfSwKLXsgMHg5YTk5LAkxNiwJezB4ODUsIDB4NTcsIDB4ODMsIDB4ZTUsIDB4NTAsIDB4ZjAsIDB4MDIsIDB4OWUsIDB4NjMsIDB4MGUsIDB4YmUsIDB4MjQsIDB4OGYsIDB4MGYsIDB4ZWYsIDB4NjR9IH0sCi17IDB4OWFhOSwJMTYsCXsweDAyLCAweDcwLCAweDg3LCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweDY0LCAweDA0LCAweDYwLCAweDAzLCAweDAyLCAweDlhLCAweDFlLCAweDAyLCAweDllfSB9LAoteyAweDlhYjksCTE2LAl7MHg2MywgMHhlNCwgMHhmNSwgMHg0ZSwgMHhhZiwgMHg0ZSwgMHhlNCwgMHhmZCwgMHgxMiwgMHg4MywgMHg1YSwgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhkM30gfSwKLXsgMHg5YWM5LAkxNiwJezB4OTQsIDB4MDMsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4MDAsIDB4MDQsIDB4NzQsIDB4OTgsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ZTcsIDB4ZjAsIDB4ZTQsIDB4ZjV9IH0sCi17IDB4OWFkOSwJMTYsCXsweDUwLCAweDdlLCAweDIwLCAweDdmLCAweDAwLCAweDc1LCAweDUzLCAweDIwLCAweDc1LCAweDU0LCAweDAwLCAweGY1LCAweDRlLCAweGFmLCAweDRlLCAweDc0fSB9LAoteyAweDlhZTksCTE2LAl7MHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNSwgMHg0ZiwgMHg5MCwgMHgwMSwgMHhjNCwgMHhmMH0gfSwKLXsgMHg5YWY5LAkxNiwJezB4OTAsIDB4MDEsIDB4YzAsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4ODUsIDB4NTQsIDB4ODIsIDB4ODUsIDB4NTMsIDB4ODMsIDB4YTN9IH0sCi17IDB4OWIwOSwJMTYsCXsweDc0LCAweDAyLCAweGYwLCAweDkwLCAweDAxLCAweGM0LCAweGUwLCAweGI1LCAweDRmLCAweDM0LCAweDkwLCAweDAxLCAweGMwLCAweGUwLCAweDcwLCAweDAyfSB9LAoteyAweDliMTksCTE2LAl7MHhhMywgMHhlMCwgMHg3MCwgMHhlZiwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHhlNSwgMHg0ZSwgMHgwNCwgMHhmZiwgMHgwNSwgMHg1OCwgMHhlNSwgMHg1OH0gfSwKLXsgMHg5YjI5LAkxNiwJezB4YWMsIDB4NTcsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTcsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODUsIDB4NTgsIDB4ODJ9IH0sCi17IDB4OWIzOSwJMTYsCXsweDg1LCAweDU3LCAweDgzLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDAxLCAweGM0LCAweGYwLCAweDc1LCAweDUwLCAweGZmLCAweDkwLCAweDAxfSB9LAoteyAweDliNDksCTE2LAl7MHhjNCwgMHhlMCwgMHhmZiwgMHg2MCwgMHgzNywgMHhlNCwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHhlNSwgMHg0ZSwgMHgwNCwgMHhmZSwgMHgwNSwgMHg1OH0gfSwKLXsgMHg5YjU5LAkxNiwJezB4ZTUsIDB4NTgsIDB4YWMsIDB4NTcsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTcsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWUsIDB4ZjAsIDB4MDV9IH0sCi17IDB4OWI2OSwJMTYsCXsweDU4LCAweGU1LCAweDU4LCAweGFjLCAweDU3LCAweDcwLCAweDAyLCAweDA1LCAweDU3LCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwfSB9LAoteyAweDliNzksCTE2LAl7MHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhlNSwgMHg0ZiwgMHhmMCwgMHg3NSwgMHg1MCwgMHhmZiwgMHhlNSwgMHg1MCwgMHg3MCwgMHgxNn0gfSwKLXsgMHg5Yjg5LAkxNiwJezB4NzQsIDB4MDgsIDB4MjUsIDB4NTQsIDB4ZjUsIDB4NTQsIDB4ZTQsIDB4MzUsIDB4NTMsIDB4ZjUsIDB4NTMsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4NjR9IH0sCi17IDB4OWI5OSwJMTYsCXsweDA0LCAweDYwLCAweDAzLCAweDAyLCAweDlhLCAweGU2LCAweGU0LCAweGY1LCAweDRlLCAweGFmLCAweDRlLCAweDdkLCAweDAxLCAweDEyLCAweDgzLCAweDVhfSB9LAoteyAweDliYTksCTE2LAl7MHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhkMywgMHg5NCwgMHgwMywgMHg0MCwgMHhmMCwgMHg5MCwgMHgwMCwgMHgwNCwgMHg3NCwgMHgxMywgMHhmMCwgMHhhM30gfSwKLXsgMHg5YmI5LAkxNiwJezB4NzQsIDB4MTIsIDB4ZjAsIDB4MDIsIDB4OWUsIDB4NjMsIDB4ODUsIDB4NTYsIDB4ODIsIDB4ODUsIDB4NTUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmYsIDB4NzR9IH0sCi17IDB4OWJjOSwJMTYsCXsweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDkwLCAweDAyLCAweGY3LCAweGYwLCAweDkwLCAweDAxfSB9LAoteyAweDliZDksCTE2LAl7MHhjNCwgMHhmMCwgMHgwMiwgMHg5ZSwgMHg2MywgMHg5MCwgMHgwMSwgMHhjMCwgMHg3NCwgMHgwMywgMHhmMCwgMHhhMywgMHg3NCwgMHhlOCwgMHhmMCwgMHhlNH0gfSwKLXsgMHg5YmU5LAkxNiwJezB4ZjUsIDB4NTAsIDB4OTAsIDB4MDIsIDB4ZjcsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZTAsIDB4YjUsIDB4MDcsIDB4MTksIDB4OTAsIDB4MDF9IH0sCi17IDB4OWJmOSwJMTYsCXsweGMwLCAweGUwLCAweDcwLCAweDAyLCAweGEzLCAweGUwLCAweDcwLCAweGVhLCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweDg1LCAweDU4LCAweDgyLCAweDg1fSB9LAoteyAweDljMDksCTE2LAl7MHg1NywgMHg4MywgMHg3NCwgMHhmZiwgMHhmMCwgMHhmNSwgMHg1MCwgMHhlNSwgMHg1MCwgMHg2MCwgMHgwMywgMHgwMiwgMHg5ZSwgMHg2MywgMHg5MCwgMHgwMX0gfSwKLXsgMHg5YzE5LAkxNiwJezB4YzAsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NzAsIDB4ZjZ9IH0sCi17IDB4OWMyOSwJMTYsCXsweGU1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDQwLCAweDBkLCAweDkwLCAweDIwLCAweDc4LCAweGUwLCAweDU0LCAweDBmLCAweDc1LCAweDUxLCAweDAwfSB9LAoteyAweDljMzksCTE2LAl7MHhmNSwgMHg1MiwgMHg4MCwgMHgwOSwgMHg3ZiwgMHgwMiwgMHgxMiwgMHgxMSwgMHgyNywgMHg4ZSwgMHg1MSwgMHg4ZiwgMHg1MiwgMHhjMywgMHhlNSwgMHg1MX0gfSwKLXsgMHg5YzQ5LAkxNiwJezB4NjQsIDB4ODAsIDB4OTQsIDB4ODAsIDB4NDAsIDB4ZGEsIDB4ZTUsIDB4NTIsIDB4NTQsIDB4MGYsIDB4ZjUsIDB4NTAsIDB4OTAsIDB4MDIsIDB4ZjcsIDB4ZTB9IH0sCi17IDB4OWM1OSwJMTYsCXsweDU1LCAweDUwLCAweDcwLCAweDA0LCAweDdmLCAweDAxLCAweDgwLCAweDAyLCAweDdmLCAweDAwLCAweDhmLCAweDRmLCAweDg1LCAweDU2LCAweDgyLCAweDg1fSB9LAoteyAweDljNjksCTE2LAl7MHg1NSwgMHg4MywgMHhhMywgMHhlMCwgMHhiNCwgMHgwNSwgMHgwYywgMHhlNSwgMHg0ZiwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3Zn0gfSwKLXsgMHg5Yzc5LAkxNiwJezB4MDAsIDB4OGYsIDB4NGYsIDB4ZTUsIDB4NGYsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OWUsIDB4NjMsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4ODV9IH0sCi17IDB4OWM4OSwJMTYsCXsweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGU1LCAweDUwLCAweGYwLCAweDAyLCAweDllLCAweDYzLCAweGU0LCAweGZmLCAweGZkLCAweDEyLCAweDgzfSB9LAoteyAweDljOTksCTE2LAl7MHg1YSwgMHg3ZSwgMHgyMCwgMHg3ZiwgMHgwMCwgMHg3NSwgMHg1MywgMHgyMCwgMHg3NSwgMHg1NCwgMHgwMCwgMHg4NSwgMHg1NCwgMHg4MiwgMHg4NSwgMHg1M30gfSwKLXsgMHg5Y2E5LAkxNiwJezB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODUsIDB4NTQsIDB4ODIsIDB4ODUsIDB4NTMsIDB4ODMsIDB4NzQsIDB4MDF9IH0sCi17IDB4OWNiOSwJMTYsCXsweGYwLCAweGEzLCAweGU0LCAweGYwLCAweDg1LCAweDU0LCAweDgyLCAweDg1LCAweDUzLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweDU0LCAweDdmfSB9LAoteyAweDljYzksCTE2LAl7MHhmMCwgMHhkMiwgMHgwNCwgMHgwMiwgMHg5ZSwgMHg2MywgMHhjMiwgMHgwNCwgMHg3ZSwgMHgyMCwgMHg3ZiwgMHgwMCwgMHg3NSwgMHg1MywgMHgyMCwgMHg3NX0gfSwKLXsgMHg5Y2Q5LAkxNiwJezB4NTQsIDB4MDAsIDB4ZTUsIDB4NTQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTZ9IH0sCi17IDB4OWNlOSwJMTYsCXsweGYxLCAweGU0LCAweGZmLCAweDdkLCAweDAxLCAweDEyLCAweDgzLCAweDVhLCAweDAyLCAweDllLCAweDYzLCAweGU0LCAweGY1LCAweDUwLCAweGY1LCAweDRlfSB9LAoteyAweDljZjksCTE2LAl7MHhhZiwgMHg0ZSwgMHhlNCwgMHhmZCwgMHgxMiwgMHg4MywgMHg1YSwgMHhlNSwgMHg0ZSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNX0gfSwKLXsgMHg5ZDA5LAkxNiwJezB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWYsIDB4ODIsIDB4ZjUsIDB4NTMsIDB4OGYsIDB4NTQsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDR9IH0sCi17IDB4OWQxOSwJMTYsCXsweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZjLCAweGYwLCAweGFmLCAweDRlLCAweDdkLCAweDAxLCAweDdifSB9LAoteyAweDlkMjksCTE2LAl7MHgwMSwgMHg3NSwgMHg1YywgMHg4MCwgMHg3NSwgMHg1ZCwgMHg0MCwgMHgxMiwgMHg5OSwgMHgzNSwgMHg4ZiwgMHg1MCwgMHhlNSwgMHg1MCwgMHg3MCwgMHgxMX0gfSwKLXsgMHg5ZDM5LAkxNiwJezB4YWYsIDB4NGUsIDB4N2QsIDB4MDIsIDB4N2IsIDB4MDEsIDB4NzUsIDB4NWMsIDB4MTAsIDB4NzUsIDB4NWQsIDB4MjAsIDB4MTIsIDB4OTksIDB4MzUsIDB4OGZ9IH0sCi17IDB4OWQ0OSwJMTYsCXsweDUwLCAweGU1LCAweDUwLCAweDcwLCAweDEwLCAweGFmLCAweDRlLCAweDdkLCAweDAxLCAweGZiLCAweDc1LCAweDVjLCAweDgwLCAweDc1LCAweDVkLCAweDQwfSB9LAoteyAweDlkNTksCTE2LAl7MHgxMiwgMHg5OSwgMHgzNSwgMHg4ZiwgMHg1MCwgMHhlNSwgMHg1MCwgMHg3MCwgMHgxMCwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwMiwgMHhmYiwgMHg3NSwgMHg1Y30gfSwKLXsgMHg5ZDY5LAkxNiwJezB4MTAsIDB4NzUsIDB4NWQsIDB4MjAsIDB4MTIsIDB4OTksIDB4MzUsIDB4OGYsIDB4NTAsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4ODMsIDB4NWF9IH0sCi17IDB4OWQ3OSwJMTYsCXsweGU1LCAweDUwLCAweDYwLCAweDI2LCAweGU0LCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweGU1LCAweDRlLCAweDA0LCAweGZmLCAweDA1LCAweDU4LCAweGU1fSB9LAoteyAweDlkODksCTE2LAl7MHg1OCwgMHhhYywgMHg1NywgMHg3MCwgMHgwMiwgMHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg4NSwgMHg1OH0gfSwKLXsgMHg5ZDk5LAkxNiwJezB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4ZTUsIDB4NTAsIDB4ZjAsIDB4MDIsIDB4OWUsIDB4NjMsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4ZDMsIDB4OTR9IH0sCi17IDB4OWRhOSwJMTYsCXsweDAzLCAweDUwLCAweDAzLCAweDAyLCAweDljLCAweGY5LCAweDAyLCAweDllLCAweDYzLCAweGU0LCAweDkwLCAweDAzLCAweDU5LCAweGYwLCAweGEzLCAweGYwfSB9LAoteyAweDlkYjksCTE2LAl7MHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHg3NCwgMHgxMCwgMHhmMCwgMHhhMywgMHg3NCwgMHg5ZSwgMHhmMCwgMHhhMywgMHg3NH0gfSwKLXsgMHg5ZGM5LAkxNiwJezB4ODUsIDB4ZjAsIDB4N2UsIDB4MDMsIDB4N2YsIDB4NTksIDB4MTIsIDB4ODEsIDB4ZDksIDB4ZWYsIDB4NjQsIDB4MDgsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OWV9IH0sCi17IDB4OWRkOSwJMTYsCXsweDYzLCAweGU0LCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweDAyLCAweDllLCAweDYzLCAweGU0LCAweDkwLCAweDAzLCAweDU5LCAweGYwLCAweGEzLCAweGYwfSB9LAoteyAweDlkZTksCTE2LAl7MHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHg3NCwgMHgxMCwgMHhmMCwgMHhhMywgMHhlNSwgMHg1NywgMHhmMCwgMHhhMywgMHhlNX0gfSwKLXsgMHg5ZGY5LAkxNiwJezB4NTgsIDB4ZjAsIDB4N2UsIDB4MDMsIDB4N2YsIDB4NTksIDB4MTIsIDB4MTksIDB4YzEsIDB4ZWYsIDB4NjQsIDB4MDgsIDB4NjAsIDB4NWMsIDB4ZTQsIDB4OTB9IH0sCi17IDB4OWUwOSwJMTYsCXsweDAzLCAweDM4LCAweGYwLCAweDgwLCAweDU1LCAweGU1LCAweDU2LCAweDI0LCAweDAyLCAweGZmLCAweGU0LCAweDM1LCAweDU1LCAweGZhLCAweGE5LCAweDA3fSB9LAoteyAweDllMTksCTE2LAl7MHg3YiwgMHgwMSwgMHg3ZCwgMHgxMCwgMHgxMiwgMHg5OCwgMHg5OCwgMHhlZiwgMHg0ZSwgMHg3MCwgMHgzMiwgMHg5MCwgMHgwMywgMHg1OSwgMHhmMCwgMHhhM30gfSwKLXsgMHg5ZTI5LAkxNiwJezB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTUsIDB4NTYsIDB4MjQsIDB4MDIsIDB4OTB9IH0sCi17IDB4OWUzOSwJMTYsCXsweDAzLCAweDYwLCAweGYwLCAweGU0LCAweDM1LCAweDU1LCAweDkwLCAweDAzLCAweDVmLCAweGYwLCAweDdlLCAweDAzLCAweDdmLCAweDU5LCAweDEyLCAweDgxfSB9LAoteyAweDllNDksCTE2LAl7MHhkOSwgMHhlZiwgMHg2NCwgMHgwOCwgMHg2MCwgMHgxNCwgMHhlNCwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHg4MCwgMHgwZCwgMHhlNCwgMHg5MCwgMHgwM30gfSwKLXsgMHg5ZTU5LAkxNiwJezB4MzgsIDB4ZjAsIDB4ODAsIDB4MDYsIDB4OTAsIDB4MDMsIDB4MzgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YzAsIDB4ZTQsIDB4ZjAsIDB4YTN9IH0sCi17IDB4OWU2OSwJMTYsCXsweDc0LCAweDBhLCAweGYwLCAweDkwLCAweDAxLCAweGMwLCAweGUwLCAweDcwLCAweDAyLCAweGEzLCAweGUwLCAweDcwLCAweGY2LCAweDdlLCAweDAzLCAweDdmfSB9LAoteyAweDllNzksCTExLAl7MHgzNSwgMHg3ZCwgMHgyNCwgMHgxMiwgMHg5MSwgMHg2YSwgMHhlNCwgMHg5MCwgMHgwMiwgMHhhZiwgMHhmMH0gfSwKLXsgMHg5ZTg0LAkxLAl7MHgyMn0gfSwKLXsgMHg5ZTg1LAkxNiwJezB4ZmYsIDB4ZmUsIDB4ZmMsIDB4ZjgsIDB4ZjAsIDB4ZTAsIDB4YzAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4MDMsIDB4MDcsIDB4MGYsIDB4MWYsIDB4M2YsIDB4N2Z9IH0sCi17IDB4OWU5NSwJMTYsCXsweDAwLCAweDAwLCAweGMwLCAweGMxLCAweGMxLCAweDgxLCAweDAxLCAweDQwLCAweGMzLCAweDAxLCAweDAzLCAweGMwLCAweDAyLCAweDgwLCAweGMyLCAweDQxfSB9LAoteyAweDllYTUsCTE2LAl7MHhjNiwgMHgwMSwgMHgwNiwgMHhjMCwgMHgwNywgMHg4MCwgMHhjNywgMHg0MSwgMHgwNSwgMHgwMCwgMHhjNSwgMHhjMSwgMHhjNCwgMHg4MSwgMHgwNCwgMHg0MH0gfSwKLXsgMHg5ZWI1LAkxNiwJezB4Y2MsIDB4MDEsIDB4MGMsIDB4YzAsIDB4MGQsIDB4ODAsIDB4Y2QsIDB4NDEsIDB4MGYsIDB4MDAsIDB4Y2YsIDB4YzEsIDB4Y2UsIDB4ODEsIDB4MGUsIDB4NDB9IH0sCi17IDB4OWVjNSwJMTYsCXsweDBhLCAweDAwLCAweGNhLCAweGMxLCAweGNiLCAweDgxLCAweDBiLCAweDQwLCAweGM5LCAweDAxLCAweDA5LCAweGMwLCAweDA4LCAweDgwLCAweGM4LCAweDQxfSB9LAoteyAweDllZDUsCTE2LAl7MHhkOCwgMHgwMSwgMHgxOCwgMHhjMCwgMHgxOSwgMHg4MCwgMHhkOSwgMHg0MSwgMHgxYiwgMHgwMCwgMHhkYiwgMHhjMSwgMHhkYSwgMHg4MSwgMHgxYSwgMHg0MH0gfSwKLXsgMHg5ZWU1LAkxNiwJezB4MWUsIDB4MDAsIDB4ZGUsIDB4YzEsIDB4ZGYsIDB4ODEsIDB4MWYsIDB4NDAsIDB4ZGQsIDB4MDEsIDB4MWQsIDB4YzAsIDB4MWMsIDB4ODAsIDB4ZGMsIDB4NDF9IH0sCi17IDB4OWVmNSwJMTYsCXsweDE0LCAweDAwLCAweGQ0LCAweGMxLCAweGQ1LCAweDgxLCAweDE1LCAweDQwLCAweGQ3LCAweDAxLCAweDE3LCAweGMwLCAweDE2LCAweDgwLCAweGQ2LCAweDQxfSB9LAoteyAweDlmMDUsCTE2LAl7MHhkMiwgMHgwMSwgMHgxMiwgMHhjMCwgMHgxMywgMHg4MCwgMHhkMywgMHg0MSwgMHgxMSwgMHgwMCwgMHhkMSwgMHhjMSwgMHhkMCwgMHg4MSwgMHgxMCwgMHg0MH0gfSwKLXsgMHg5ZjE1LAkxNiwJezB4ZjAsIDB4MDEsIDB4MzAsIDB4YzAsIDB4MzEsIDB4ODAsIDB4ZjEsIDB4NDEsIDB4MzMsIDB4MDAsIDB4ZjMsIDB4YzEsIDB4ZjIsIDB4ODEsIDB4MzIsIDB4NDB9IH0sCi17IDB4OWYyNSwJMTYsCXsweDM2LCAweDAwLCAweGY2LCAweGMxLCAweGY3LCAweDgxLCAweDM3LCAweDQwLCAweGY1LCAweDAxLCAweDM1LCAweGMwLCAweDM0LCAweDgwLCAweGY0LCAweDQxfSB9LAoteyAweDlmMzUsCTE2LAl7MHgzYywgMHgwMCwgMHhmYywgMHhjMSwgMHhmZCwgMHg4MSwgMHgzZCwgMHg0MCwgMHhmZiwgMHgwMSwgMHgzZiwgMHhjMCwgMHgzZSwgMHg4MCwgMHhmZSwgMHg0MX0gfSwKLXsgMHg5ZjQ1LAkxNiwJezB4ZmEsIDB4MDEsIDB4M2EsIDB4YzAsIDB4M2IsIDB4ODAsIDB4ZmIsIDB4NDEsIDB4MzksIDB4MDAsIDB4ZjksIDB4YzEsIDB4ZjgsIDB4ODEsIDB4MzgsIDB4NDB9IH0sCi17IDB4OWY1NSwJMTYsCXsweDI4LCAweDAwLCAweGU4LCAweGMxLCAweGU5LCAweDgxLCAweDI5LCAweDQwLCAweGViLCAweDAxLCAweDJiLCAweGMwLCAweDJhLCAweDgwLCAweGVhLCAweDQxfSB9LAoteyAweDlmNjUsCTE2LAl7MHhlZSwgMHgwMSwgMHgyZSwgMHhjMCwgMHgyZiwgMHg4MCwgMHhlZiwgMHg0MSwgMHgyZCwgMHgwMCwgMHhlZCwgMHhjMSwgMHhlYywgMHg4MSwgMHgyYywgMHg0MH0gfSwKLXsgMHg5Zjc1LAkxNiwJezB4ZTQsIDB4MDEsIDB4MjQsIDB4YzAsIDB4MjUsIDB4ODAsIDB4ZTUsIDB4NDEsIDB4MjcsIDB4MDAsIDB4ZTcsIDB4YzEsIDB4ZTYsIDB4ODEsIDB4MjYsIDB4NDB9IH0sCi17IDB4OWY4NSwJMTYsCXsweDIyLCAweDAwLCAweGUyLCAweGMxLCAweGUzLCAweDgxLCAweDIzLCAweDQwLCAweGUxLCAweDAxLCAweDIxLCAweGMwLCAweDIwLCAweDgwLCAweGUwLCAweDQxfSB9LAoteyAweDlmOTUsCTE2LAl7MHhhMCwgMHgwMSwgMHg2MCwgMHhjMCwgMHg2MSwgMHg4MCwgMHhhMSwgMHg0MSwgMHg2MywgMHgwMCwgMHhhMywgMHhjMSwgMHhhMiwgMHg4MSwgMHg2MiwgMHg0MH0gfSwKLXsgMHg5ZmE1LAkxNiwJezB4NjYsIDB4MDAsIDB4YTYsIDB4YzEsIDB4YTcsIDB4ODEsIDB4NjcsIDB4NDAsIDB4YTUsIDB4MDEsIDB4NjUsIDB4YzAsIDB4NjQsIDB4ODAsIDB4YTQsIDB4NDF9IH0sCi17IDB4OWZiNSwJMTYsCXsweDZjLCAweDAwLCAweGFjLCAweGMxLCAweGFkLCAweDgxLCAweDZkLCAweDQwLCAweGFmLCAweDAxLCAweDZmLCAweGMwLCAweDZlLCAweDgwLCAweGFlLCAweDQxfSB9LAoteyAweDlmYzUsCTE2LAl7MHhhYSwgMHgwMSwgMHg2YSwgMHhjMCwgMHg2YiwgMHg4MCwgMHhhYiwgMHg0MSwgMHg2OSwgMHgwMCwgMHhhOSwgMHhjMSwgMHhhOCwgMHg4MSwgMHg2OCwgMHg0MH0gfSwKLXsgMHg5ZmQ1LAkxNiwJezB4NzgsIDB4MDAsIDB4YjgsIDB4YzEsIDB4YjksIDB4ODEsIDB4NzksIDB4NDAsIDB4YmIsIDB4MDEsIDB4N2IsIDB4YzAsIDB4N2EsIDB4ODAsIDB4YmEsIDB4NDF9IH0sCi17IDB4OWZlNSwJMTYsCXsweGJlLCAweDAxLCAweDdlLCAweGMwLCAweDdmLCAweDgwLCAweGJmLCAweDQxLCAweDdkLCAweDAwLCAweGJkLCAweGMxLCAweGJjLCAweDgxLCAweDdjLCAweDQwfSB9LAoteyAweDlmZjUsCTE2LAl7MHhiNCwgMHgwMSwgMHg3NCwgMHhjMCwgMHg3NSwgMHg4MCwgMHhiNSwgMHg0MSwgMHg3NywgMHgwMCwgMHhiNywgMHhjMSwgMHhiNiwgMHg4MSwgMHg3NiwgMHg0MH0gfSwKLXsgMHhhMDA1LAkxNiwJezB4NzIsIDB4MDAsIDB4YjIsIDB4YzEsIDB4YjMsIDB4ODEsIDB4NzMsIDB4NDAsIDB4YjEsIDB4MDEsIDB4NzEsIDB4YzAsIDB4NzAsIDB4ODAsIDB4YjAsIDB4NDF9IH0sCi17IDB4YTAxNSwJMTYsCXsweDUwLCAweDAwLCAweDkwLCAweGMxLCAweDkxLCAweDgxLCAweDUxLCAweDQwLCAweDkzLCAweDAxLCAweDUzLCAweGMwLCAweDUyLCAweDgwLCAweDkyLCAweDQxfSB9LAoteyAweGEwMjUsCTE2LAl7MHg5NiwgMHgwMSwgMHg1NiwgMHhjMCwgMHg1NywgMHg4MCwgMHg5NywgMHg0MSwgMHg1NSwgMHgwMCwgMHg5NSwgMHhjMSwgMHg5NCwgMHg4MSwgMHg1NCwgMHg0MH0gfSwKLXsgMHhhMDM1LAkxNiwJezB4OWMsIDB4MDEsIDB4NWMsIDB4YzAsIDB4NWQsIDB4ODAsIDB4OWQsIDB4NDEsIDB4NWYsIDB4MDAsIDB4OWYsIDB4YzEsIDB4OWUsIDB4ODEsIDB4NWUsIDB4NDB9IH0sCi17IDB4YTA0NSwJMTYsCXsweDVhLCAweDAwLCAweDlhLCAweGMxLCAweDliLCAweDgxLCAweDViLCAweDQwLCAweDk5LCAweDAxLCAweDU5LCAweGMwLCAweDU4LCAweDgwLCAweDk4LCAweDQxfSB9LAoteyAweGEwNTUsCTE2LAl7MHg4OCwgMHgwMSwgMHg0OCwgMHhjMCwgMHg0OSwgMHg4MCwgMHg4OSwgMHg0MSwgMHg0YiwgMHgwMCwgMHg4YiwgMHhjMSwgMHg4YSwgMHg4MSwgMHg0YSwgMHg0MH0gfSwKLXsgMHhhMDY1LAkxNiwJezB4NGUsIDB4MDAsIDB4OGUsIDB4YzEsIDB4OGYsIDB4ODEsIDB4NGYsIDB4NDAsIDB4OGQsIDB4MDEsIDB4NGQsIDB4YzAsIDB4NGMsIDB4ODAsIDB4OGMsIDB4NDF9IH0sCi17IDB4YTA3NSwJMTYsCXsweDQ0LCAweDAwLCAweDg0LCAweGMxLCAweDg1LCAweDgxLCAweDQ1LCAweDQwLCAweDg3LCAweDAxLCAweDQ3LCAweGMwLCAweDQ2LCAweDgwLCAweDg2LCAweDQxfSB9LAoteyAweGEwODUsCTE2LAl7MHg4MiwgMHgwMSwgMHg0MiwgMHhjMCwgMHg0MywgMHg4MCwgMHg4MywgMHg0MSwgMHg0MSwgMHgwMCwgMHg4MSwgMHhjMSwgMHg4MCwgMHg4MSwgMHg0MCwgMHg0MH0gfSwKLXsgMHhhMDk1LAkxNiwJezB4ZTQsIDB4ZmYsIDB4NzQsIDB4ZjgsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDJ9IH0sCi17IDB4YTBhNSwJMTYsCXsweGExLCAweDM4LCAweDc0LCAweDNhLCAweDJmLCAweGY4LCAweGU2LCAweDIwLCAweGU1LCAweDAzLCAweDAyLCAweGExLCAweDM4LCAweGVmLCAweDc1LCAweGYwfSB9LAoteyAweGEwYjUsCTE2LAl7MHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZCwgMHg4MiwgMHhmYywgMHhmNSwgMHg4MywgMHhlNSwgMHg4Mn0gfSwKLXsgMHhhMGM1LAkxNiwJezB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4NjAsIDB4NjQsIDB4NjAsIDB4NzAsIDB4NjN9IH0sCi17IDB4YTBkNSwJMTYsCXsweGVmLCAweDI1LCAweGUwLCAweDI0LCAweGVmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGU0LCAweDc1LCAweGYwLCAweDAxfSB9LAoteyAweGEwZTUsCTE2LAl7MHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNSwgMHg4MywgMHhlMCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhmMCwgMHg3NCwgMHhmOH0gfSwKLXsgMHhhMGY1LAkxNiwJezB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4NzAsIDB4MzYsIDB4ZWYsIDB4MjUsIDB4ZTB9IH0sCi17IDB4YTEwNSwJMTYsCXsweDI0LCAweGM3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGVmLCAweDI1LCAweGUwLCAweGZlLCAweGMzfSB9LAoteyAweGExMTUsCTE2LAl7MHg3NCwgMHgwYywgMHg5ZSwgMHg3NSwgMHhmMCwgMHg0MCwgMHhhNCwgMHgyNCwgMHg0MCwgMHhmNSwgMHg4MiwgMHhlNSwgMHhmMCwgMHgzNCwgMHg3YiwgMHhhZH0gfSwKLXsgMHhhMTI1LAkxNiwJezB4ODIsIDB4ZmMsIDB4ZWYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4ZWYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjB9IH0sCi17IDB4YTEzNSwJMTIsCXsweGEzLCAweGVkLCAweGYwLCAweDBmLCAweGVmLCAweDY0LCAweDA0LCAweDYwLCAweDAzLCAweDAyLCAweGEwLCAweDk3fSB9LAoteyAweGExNDEsCTEsCXsweDIyfSB9LAoteyAweGExNDIsCTE2LAl7MHhlNywgMHgwOSwgMHhmNiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHg0NiwgMHhlNywgMHgwOSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHgzZX0gfSwKLXsgMHhhMTUyLAkxNiwJezB4ODgsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTcsIDB4MDksIDB4ZjAsIDB4YTMsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4MzIsIDB4ZTMsIDB4MDksIDB4ZjYsIDB4MDh9IH0sCi17IDB4YTE2MiwJMTYsCXsweGRmLCAweGZhLCAweDgwLCAweDc4LCAweGUzLCAweDA5LCAweGYyLCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDcwLCAweDg4LCAweDgyLCAweDhjLCAweDgzfSB9LAoteyAweGExNzIsCTE2LAl7MHhlMywgMHgwOSwgMHhmMCwgMHhhMywgMHhkZiwgMHhmYSwgMHg4MCwgMHg2NCwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHhhMywgMHhmNiwgMHgwOH0gfSwKLXsgMHhhMTgyLAkxNiwJezB4ZGYsIDB4ZmEsIDB4ODAsIDB4NTgsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4YTMsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NGN9IH0sCi17IDB4YTE5MiwJMTYsCXsweDgwLCAweGQyLCAweDgwLCAweGZhLCAweDgwLCAweGM2LCAweDgwLCAweGQ0LCAweDgwLCAweDY5LCAweDgwLCAweGYyLCAweDgwLCAweDMzLCAweDgwLCAweDEwfSB9LAoteyAweGExYTIsCTE2LAl7MHg4MCwgMHhhNiwgMHg4MCwgMHhlYSwgMHg4MCwgMHg5YSwgMHg4MCwgMHhhOCwgMHg4MCwgMHhkYSwgMHg4MCwgMHhlMiwgMHg4MCwgMHhjYSwgMHg4MCwgMHgzM30gfSwKLXsgMHhhMWIyLAkxNiwJezB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZWMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODN9IH0sCi17IDB4YTFjMiwJMTYsCXsweGNjLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwfSB9LAoteyAweGExZDIsCTE2LAl7MHgwZCwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHhhMywgMHhmNiwgMHgwOCwgMHhkZiwgMHhmOSwgMHhlYywgMHhmYSwgMHhhOSwgMHhmMH0gfSwKLXsgMHhhMWUyLAkxNiwJezB4ZWQsIDB4ZmIsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZWMsIDB4ZmEsIDB4ZTAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2N9IH0sCi17IDB4YTFmMiwJMTYsCXsweGM1LCAweDgzLCAweGNjLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzLCAweGNjLCAweGRmLCAweGVhLCAweGRlfSB9LAoteyAweGEyMDIsCTE2LAl7MHhlOCwgMHg4MCwgMHhkYiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHhhMywgMHhmMiwgMHgwOCwgMHhkZiwgMHhmOSwgMHg4MCwgMHhjY30gfSwKLXsgMHhhMjEyLAkxNiwJezB4ODgsIDB4ZjAsIDB4ZWQsIDB4MjQsIDB4MDIsIDB4YjQsIDB4MDQsIDB4MDAsIDB4NTAsIDB4YzIsIDB4ZjUsIDB4ODIsIDB4ZWIsIDB4MjQsIDB4MDIsIDB4YjR9IH0sCi17IDB4YTIyMiwJMTYsCXsweDA0LCAweDAwLCAweDUwLCAweGI4LCAweDIzLCAweDIzLCAweDQ1LCAweDgyLCAweGY1LCAweDgyLCAweGVmLCAweDRlLCAweDYwLCAweGFlLCAweGVmLCAweDYwfSB9LAoteyAweGEyMzIsCTksCXsweDAxLCAweDBlLCAweGU1LCAweDgyLCAweDIzLCAweDkwLCAweGExLCAweDkyLCAweDczfSB9LAoteyAweGEyM2IsCTE2LAl7MHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMn0gfSwKLXsgMHhhMjRiLAk5LAl7MHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKLXsgMHhhMjU0LAkxNiwJezB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTB9IH0sCi17IDB4YTI2NCwJMTYsCXsweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyfSB9LAoteyAweGEyNzQsCTEzLAl7MHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKLXsgMHhhMjgxLAkxNiwJezB4YzUsIDB4ZjAsIDB4ZjgsIDB4YTMsIDB4ZTAsIDB4MjgsIDB4ZjAsIDB4YzUsIDB4ZjAsIDB4ZjgsIDB4ZTUsIDB4ODIsIDB4MTUsIDB4ODIsIDB4NzAsIDB4MDJ9IH0sCi17IDB4YTI5MSwJNiwJezB4MTUsIDB4ODMsIDB4ZTAsIDB4MzgsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4YTI5NywJMTYsCXsweGEzLCAweGY4LCAweGUwLCAweGM1LCAweGYwLCAweDI1LCAweGYwLCAweGYwLCAweGU1LCAweDgyLCAweDE1LCAweDgyLCAweDcwLCAweDAyLCAweDE1LCAweDgzfSB9LAoteyAweGEyYTcsCTYsCXsweGUwLCAweGM4LCAweDM4LCAweGYwLCAweGU4LCAweDIyfSB9LAoteyAweGEyYWQsCTE2LAl7MHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMH0gfSwKLXsgMHhhMmJkLAkxNiwJezB4YTMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDksIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ODYsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmV9IH0sCi17IDB4YTJjZCwJMTYsCXsweDBhLCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweGY1LCAweGYwLCAweDA4LCAweGUyLCAweDIyLCAweGU1LCAweDgzLCAweDJhLCAweGY1LCAweDgzfSB9LAoteyAweGEyZGQsCTgsCXsweGU5LCAweDkzLCAweGY1LCAweGYwLCAweGEzLCAweGU5LCAweDkzLCAweDIyfSB9LAoteyAweGEyZTUsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHg3NSwgMHg4MiwgMHgwMCwgMHhlZiwgMHgyZiwgMHhmZiwgMHhlZSwgMHgzMywgMHhmZSwgMHhjZCwgMHgzMywgMHhjZCwgMHhjY30gfSwKLXsgMHhhMmY1LAkxNiwJezB4MzMsIDB4Y2MsIDB4YzUsIDB4ODIsIDB4MzMsIDB4YzUsIDB4ODIsIDB4OWIsIDB4ZWQsIDB4OWEsIDB4ZWMsIDB4OTksIDB4ZTUsIDB4ODIsIDB4OTgsIDB4NDB9IH0sCi17IDB4YTMwNSwJMTYsCXsweDBjLCAweGY1LCAweDgyLCAweGVlLCAweDliLCAweGZlLCAweGVkLCAweDlhLCAweGZkLCAweGVjLCAweDk5LCAweGZjLCAweDBmLCAweGQ1LCAweGYwLCAweGQ2fSB9LAoteyAweGEzMTUsCTE2LAl7MHhlNCwgMHhjZSwgMHhmYiwgMHhlNCwgMHhjZCwgMHhmYSwgMHhlNCwgMHhjYywgMHhmOSwgMHhhOCwgMHg4MiwgMHgyMiwgMHhiOCwgMHgwMCwgMHhjMSwgMHhiOX0gfSwKLXsgMHhhMzI1LAkxNiwJezB4MDAsIDB4NTksIDB4YmEsIDB4MDAsIDB4MmQsIDB4ZWMsIDB4OGIsIDB4ZjAsIDB4ODQsIDB4Y2YsIDB4Y2UsIDB4Y2QsIDB4ZmMsIDB4ZTUsIDB4ZjAsIDB4Y2J9IH0sCi17IDB4YTMzNSwJMTYsCXsweGY5LCAweDc4LCAweDE4LCAweGVmLCAweDJmLCAweGZmLCAweGVlLCAweDMzLCAweGZlLCAweGVkLCAweDMzLCAweGZkLCAweGVjLCAweDMzLCAweGZjLCAweGVifSB9LAoteyAweGEzNDUsCTE2LAl7MHgzMywgMHhmYiwgMHgxMCwgMHhkNywgMHgwMywgMHg5OSwgMHg0MCwgMHgwNCwgMHhlYiwgMHg5OSwgMHhmYiwgMHgwZiwgMHhkOCwgMHhlNSwgMHhlNCwgMHhmOX0gfSwKLXsgMHhhMzU1LAkxNiwJezB4ZmEsIDB4MjIsIDB4NzgsIDB4MTgsIDB4ZWYsIDB4MmYsIDB4ZmYsIDB4ZWUsIDB4MzMsIDB4ZmUsIDB4ZWQsIDB4MzMsIDB4ZmQsIDB4ZWMsIDB4MzMsIDB4ZmN9IH0sCi17IDB4YTM2NSwJMTYsCXsweGM5LCAweDMzLCAweGM5LCAweDEwLCAweGQ3LCAweDA1LCAweDliLCAweGU5LCAweDlhLCAweDQwLCAweDA3LCAweGVjLCAweDliLCAweGZjLCAweGU5LCAweDlhfSB9LAoteyAweGEzNzUsCTE2LAl7MHhmOSwgMHgwZiwgMHhkOCwgMHhlMCwgMHhlNCwgMHhjOSwgMHhmYSwgMHhlNCwgMHhjYywgMHhmYiwgMHgyMiwgMHg3NSwgMHhmMCwgMHgxMCwgMHhlZiwgMHgyZn0gfSwKLXsgMHhhMzg1LAkxNiwJezB4ZmYsIDB4ZWUsIDB4MzMsIDB4ZmUsIDB4ZWQsIDB4MzMsIDB4ZmQsIDB4Y2MsIDB4MzMsIDB4Y2MsIDB4YzgsIDB4MzMsIDB4YzgsIDB4MTAsIDB4ZDcsIDB4MDd9IH0sCi17IDB4YTM5NSwJMTYsCXsweDliLCAweGVjLCAweDlhLCAweGU4LCAweDk5LCAweDQwLCAweDBhLCAweGVkLCAweDliLCAweGZkLCAweGVjLCAweDlhLCAweGZjLCAweGU4LCAweDk5LCAweGY4fSB9LAoteyAweGEzYTUsCTE0LAl7MHgwZiwgMHhkNSwgMHhmMCwgMHhkYSwgMHhlNCwgMHhjZCwgMHhmYiwgMHhlNCwgMHhjYywgMHhmYSwgMHhlNCwgMHhjOCwgMHhmOSwgMHgyMn0gfSwKLXsgMHhhM2IzLAkxNiwJezB4ZWIsIDB4OWYsIDB4ZjUsIDB4ZjAsIDB4ZWEsIDB4OWUsIDB4NDIsIDB4ZjAsIDB4ZTksIDB4OWQsIDB4NDIsIDB4ZjAsIDB4ZTgsIDB4OWMsIDB4NDUsIDB4ZjB9IH0sCi17IDB4YTNjMywJMSwJezB4MjJ9IH0sCi17IDB4YTNjNCwJMTYsCXsweGU4LCAweDYwLCAweDBmLCAweGVjLCAweGMzLCAweDEzLCAweGZjLCAweGVkLCAweDEzLCAweGZkLCAweGVlLCAweDEzLCAweGZlLCAweGVmLCAweDEzLCAweGZmfSB9LAoteyAweGEzZDQsCTMsCXsweGQ4LCAweGYxLCAweDIyfSB9LAoteyAweGEzZDcsCTE2LAl7MHgwOCwgMHgwOCwgMHgwOCwgMHhlNiwgMHhjZiwgMHgyZiwgMHhmNiwgMHgxOCwgMHhlNiwgMHhjZSwgMHgzZSwgMHhmNiwgMHgxOCwgMHhlNiwgMHhjZCwgMHgzZH0gfSwKLXsgMHhhM2U3LAk3LAl7MHhmNiwgMHgxOCwgMHhlNiwgMHhjYywgMHgzYywgMHhmNiwgMHgyMn0gfSwKLXsgMHhhM2VlLAkxMiwJezB4ZWMsIDB4ZjAsIDB4YTMsIDB4ZWQsIDB4ZjAsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4YTNmYSwJMTYsCXsweGE4LCAweDgyLCAweDg1LCAweDgzLCAweGYwLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweDEyLCAweGE0LCAweDExLCAweDEyLCAweGE0LCAweDExLCAweDEyfSB9LAoteyAweGE0MGEsCTE2LAl7MHhhNCwgMHgxMSwgMHgxMiwgMHhhNCwgMHgxMSwgMHhlNCwgMHg3MywgMHhlNCwgMHg5MywgMHhhMywgMHhjNSwgMHg4MywgMHhjNSwgMHhmMCwgMHhjNSwgMHg4M30gfSwKLXsgMHhhNDFhLAkxNiwJezB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4ZjAsIDB4YTMsIDB4YzUsIDB4ODMsIDB4YzUsIDB4ZjAsIDB4YzUsIDB4ODMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4Yzh9IH0sCi17IDB4YTQyYSwJMSwJezB4MjJ9IH0sCi17IDB4ZmZmZiwJMCwJezB4MDB9IH0KLX07Ci0KLSNpZmRlZiBERUJVRwotc3RhdGljIGNvbnN0IHN0cnVjdCB3aGl0ZWhlYXRfaGV4X3JlY29yZCB3aGl0ZWhlYXRfbG9hZGVyW10gPSB7Ci17IDB4MDAwMCwJMywJezB4MDIsIDB4MDksIDB4OGR9IH0sCi17IDB4MDAzMywJMywJezB4MDIsIDB4MGUsIDB4NzB9IH0sCi17IDB4MDA0MywJMywJezB4MDIsIDB4MGIsIDB4MDB9IH0sCi17IDB4MDA0YiwJMywJezB4MDIsIDB4MDUsIDB4YjN9IH0sCi17IDB4MDEwMCwJMTYsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDU0LCAweDEwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDUwLCAweGY1LCAweDBmLCAweDEzLCAweGU0fSB9LAoteyAweDAxMTAsCTE2LAl7MHgzMywgMHhmNSwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgyNCwgMHg1ZSwgMHhiNCwgMHgwNywgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwM30gfSwKLXsgMHgwMTIwLAkxNiwJezB4N2MsIDB4OTAsIDB4MDEsIDB4MjgsIDB4ZjgsIDB4MjgsIDB4MjgsIDB4NzMsIDB4MDIsIDB4MDEsIDB4YmMsIDB4MDIsIDB4MDEsIDB4YmMsIDB4MDIsIDB4MDF9IH0sCi17IDB4MDEzMCwJMTYsCXsweDkxLCAweDAyLCAweDAxLCAweDNkLCAweDAyLCAweDAxLCAweDUzLCAweDAyLCAweDAxLCAweDZmLCAweDAyLCAweDAxLCAweDlhLCAweDkwLCAweDdmLCAweDAwfSB9LAoteyAweDAxNDAsCTE2LAl7MHhlNSwgMHgxMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMH0gfSwKLXsgMHgwMTUwLAkxNiwJezB4MDIsIDB4MDMsIDB4N2MsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MDE2MCwJMTYsCXsweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDAyLCAweDAzLCAweDdjLCAweDEyfSB9LAoteyAweDAxNzAsCTE2LAl7MHgwYSwgMHg4OSwgMHg1MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHg4MCwgMHgwNiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwZn0gfSwKLXsgMHgwMTgwLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDN9IH0sCi17IDB4MDE5MCwJMTYsCXsweDdjLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDBmLCAweDAyLCAweDAzLCAweDdjLCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDA3LCAweGYwfSB9LAoteyAweDAxYTAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHhlOCwgMHg3ZX0gfSwKLXsgMHgwMWIwLAkxNiwJezB4MDMsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4ZDIsIDB4MDYsIDB4MTIsIDB4MGQsIDB4MGQsIDB4MDIsIDB4MDMsIDB4N2MsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9IH0sCi17IDB4MDFjMCwJMTYsCXsweDc1LCAweDI5LCAweDAwLCAweGY1LCAweDJhLCAweGEzLCAweGUwLCAweGZlLCAweGU0LCAweGVlLCAweDQyLCAweDI5LCAweDkwLCAweDdmLCAweGVlLCAweGUwfSB9LAoteyAweDAxZDAsCTE2LAl7MHg3NSwgMHgyYiwgMHgwMCwgMHhmNSwgMHgyYywgMHhhMywgMHhlMCwgMHhmZSwgMHhlNCwgMHhlZSwgMHg0MiwgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMH0gfSwKLXsgMHgwMWUwLAkxNiwJezB4NjQsIDB4YzAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4YzksIDB4ZTUsIDB4MmMsIDB4NDUsIDB4MmIsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4N2N9IH0sCi17IDB4MDFmMCwJMTYsCXsweGMzLCAweGU1LCAweDJjLCAweDk0LCAweDQwLCAweGU1LCAweDJiLCAweDk0LCAweDAwLCAweDUwLCAweDA4LCAweDg1LCAweDJiLCAweDJkLCAweDg1LCAweDJjfSB9LAoteyAweDAyMDAsCTE2LAl7MHgyZSwgMHg4MCwgMHgwNiwgMHg3NSwgMHgyZCwgMHgwMCwgMHg3NSwgMHgyZSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg2NCwgMHhhMywgMHg3MH0gfSwKLXsgMHgwMjEwLAkxNiwJezB4MzQsIDB4ZjUsIDB4MzEsIDB4ZjUsIDB4MzIsIDB4YzMsIDB4ZTUsIDB4MzIsIDB4OTUsIDB4MmUsIDB4ZTUsIDB4MzEsIDB4OTUsIDB4MmQsIDB4NTAsIDB4NWN9IH0sCi17IDB4MDIyMCwJMTYsCXsweGU1LCAweDJhLCAweDI1LCAweDMyLCAweGY1LCAweDgyLCAweGU1LCAweDMxLCAweDM1LCAweDI5LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDc0LCAweDAwfSB9LAoteyAweDAyMzAsCTE2LAl7MHgyNSwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgzMiwgMHhlNSwgMHgzMiwgMHg3MH0gfSwKLXsgMHgwMjQwLAkxNiwJezB4MDIsIDB4MDUsIDB4MzEsIDB4ODAsIDB4ZDAsIDB4ZTQsIDB4ZjUsIDB4MzEsIDB4ZjUsIDB4MzIsIDB4YzMsIDB4ZTUsIDB4MzIsIDB4OTUsIDB4MmUsIDB4ZTV9IH0sCi17IDB4MDI1MCwJMTYsCXsweDMxLCAweDk1LCAweDJkLCAweDUwLCAweDE4LCAweDc0LCAweDAwLCAweDI1LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzfSB9LAoteyAweDAyNjAsCTE2LAl7MHg3NCwgMHhjZCwgMHhmMCwgMHgwNSwgMHgzMiwgMHhlNSwgMHgzMiwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzMSwgMHg4MCwgMHhkZCwgMHhhZiwgMHgyYSwgMHhhZX0gfSwKLXsgMHgwMjcwLAkxNiwJezB4MjksIDB4YWQsIDB4MmUsIDB4N2EsIDB4N2YsIDB4NzksIDB4MDAsIDB4N2IsIDB4MDAsIDB4MTIsIDB4MGIsIDB4ZjQsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZTV9IH0sCi17IDB4MDI4MCwJMTYsCXsweDJlLCAweGYwLCAweGU1LCAweDJlLCAweDI1LCAweDJhLCAweGY1LCAweDJhLCAweGU1LCAweDJkLCAweDM1LCAweDI5LCAweGY1LCAweDI5LCAweGMzLCAweGU1fSB9LAoteyAweDAyOTAsCTE2LAl7MHgyYywgMHg5NSwgMHgyZSwgMHhmNSwgMHgyYywgMHhlNSwgMHgyYiwgMHg5NSwgMHgyZCwgMHhmNSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHhmZn0gfSwKLXsgMHgwMmEwLAkxNiwJezB4YzQsIDB4NTQsIDB4MGYsIDB4NzUsIDB4MmYsIDB4MDAsIDB4ZjUsIDB4MzAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4ZTUsIDB4MmYsIDB4OTQsIDB4MDAsIDB4NTB9IH0sCi17IDB4MDJiMCwJMTYsCXsweDBjLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweGU3LCAweDgwLCAweGY0LCAweDkwLCAweDdmLCAweGI0fSB9LAoteyAweDAyYzAsCTE2LAl7MHhlMCwgMHgyMCwgMHhlMiwgMHgwMywgMHgwMiwgMHgwMSwgMHhlNywgMHg4MCwgMHhmNCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHg2NCwgMHg0MCwgMHg2MH0gfSwKLXsgMHgwMmQwLAkxNiwJezB4MDMsIDB4MDIsIDB4MDMsIDB4N2MsIDB4ZTUsIDB4MmMsIDB4NDUsIDB4MmIsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4N2MsIDB4ZTQsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDJlMCwJMTYsCXsweGM1LCAweGYwLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDc1LCAweDJmLCAweDAwLCAweGY1LCAweDMwLCAweGQzfSB9LAoteyAweDAyZjAsCTE2LAl7MHg5NCwgMHgwMCwgMHhlNSwgMHgyZiwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwOSwgMHg4MH0gfSwKLXsgMHgwMzAwLAkxNiwJezB4ZjcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4ZjksIDB4OTAsIDB4N2YsIDB4YzUsIDB4ZTAsIDB4NzUsIDB4MmQsIDB4MDAsIDB4ZjV9IH0sCi17IDB4MDMxMCwJMTYsCXsweDJlLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDY0LCAweGEzLCAweDcwLCAweDM4LCAweDkwLCAweDIwLCAweDZiLCAweGYwLCAweGY1LCAweDMxLCAweGY1fSB9LAoteyAweDAzMjAsCTE2LAl7MHgzMiwgMHhjMywgMHhlNSwgMHgzMiwgMHg5NSwgMHgyZSwgMHhlNSwgMHgzMSwgMHg5NSwgMHgyZCwgMHg1MCwgMHgzNCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgzMn0gfSwKLXsgMHgwMzMwLAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MmEsIDB4MjUsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTV9IH0sCi17IDB4MDM0MCwJMTYsCXsweDMxLCAweDM1LCAweDI5LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDMyLCAweGU1LCAweDMyLCAweDcwLCAweDAyLCAweDA1LCAweDMxLCAweDgwfSB9LAoteyAweDAzNTAsCTE2LAl7MHhkMCwgMHhhZiwgMHgyYSwgMHhhZSwgMHgyOSwgMHhhZCwgMHgyZSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHhjMCwgMHg3YiwgMHhjMCwgMHgxMiwgMHgwYywgMHg4MH0gfSwKLXsgMHgwMzYwLAkxNiwJezB4ZTUsIDB4MmUsIDB4MjUsIDB4MmEsIDB4ZjUsIDB4MmEsIDB4ZTUsIDB4MmQsIDB4MzUsIDB4MjksIDB4ZjUsIDB4MjksIDB4YzMsIDB4ZTUsIDB4MmMsIDB4OTV9IH0sCi17IDB4MDM3MCwJMTMsCXsweDJlLCAweGY1LCAweDJjLCAweGU1LCAweDJiLCAweDk1LCAweDJkLCAweGY1LCAweDJiLCAweDAyLCAweDAyLCAweGQ0LCAweGMzfSB9LAoteyAweDAzN2QsCTEsCXsweDIyfSB9LAoteyAweDAzN2UsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg1NiwgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHhkMiwgMHgyNH0gfSwKLXsgMHgwMzhlLAkxNiwJezB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NDYsIDB4MjQsIDB4ZmIsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NTAsIDB4MTQsIDB4NzAsIDB4MDN9IH0sCi17IDB4MDM5ZSwJMTYsCXsweDAyLCAweDA0LCAweDRhLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDNlLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDQ0LCAweDI0fSB9LAoteyAweDAzYWUsCTE2LAl7MHgwNSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg5YSwgMHgxMiwgMHgwZSwgMHg3YiwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwM2JlLAkxNiwJezB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsIDB4NjAsIDB4NDAsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NjksIDB4NzQsIDB4MTEsIDB4OTB9IH0sCi17IDB4MDNjZSwJMTYsCXsweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGVhLCAweGUwfSB9LAoteyAweDAzZGUsCTE2LAl7MHhmZiwgMHgxMiwgMHgwYiwgMHg1OCwgMHg4YiwgMHgyNiwgMHg4YSwgMHgyNywgMHg4OSwgMHgyOCwgMHhlYSwgMHg0OSwgMHg2MCwgMHgxMSwgMHhhZSwgMHgwMn0gfSwKLXsgMHgwM2VlLAkxNiwJezB4ZWUsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4YWYsIDB4MDEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTB9IH0sCi17IDB4MDNmZSwJMTYsCXsweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBjfSB9LAoteyAweDA0MGUsCTE2LAl7MHgzZiwgMHg4YiwgMHgyNiwgMHg4YSwgMHgyNywgMHg4OSwgMHgyOCwgMHhlYSwgMHg0OSwgMHg2MCwgMHgxMSwgMHhhZSwgMHgwMiwgMHhlZSwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNDFlLAkxNiwJezB4ZDQsIDB4ZjAsIDB4YWYsIDB4MDEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTB9IH0sCi17IDB4MDQyZSwJMTYsCXsweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGFifSB9LAoteyAweDA0M2UsCTE2LAl7MHgxMiwgMHgwZSwgMHg1MiwgMHgwMiwgMHgwNSwgMHhhYiwgMHgxMiwgMHgwZSwgMHg2MCwgMHgwMiwgMHgwNSwgMHhhYiwgMHgxMiwgMHgwYSwgMHhmNywgMHgwMn0gfSwKLXsgMHgwNDRlLAkxNiwJezB4MDUsIDB4YWIsIDB4MTIsIDB4MDgsIDB4ZjEsIDB4MDIsIDB4MDUsIDB4YWIsIDB4MTIsIDB4MGUsIDB4N2QsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YWJ9IH0sCi17IDB4MDQ1ZSwJMTYsCXsweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLCAweGEyfSB9LAoteyAweDA0NmUsCTE2LAl7MHgwMCwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwMiwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMH0gfSwKLXsgMHgwNDdlLAkxNiwJezB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDB9IH0sCi17IDB4MDQ4ZSwJMTYsCXsweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGVjLCAweGUwfSB9LAoteyAweDA0OWUsCTE2LAl7MHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNH0gfSwKLXsgMHgwNGFlLAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTN9IH0sCi17IDB4MDRiZSwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxfSB9LAoteyAweDA0Y2UsCTE2LAl7MHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHgxMiwgMHgwZSwgMHg3ZiwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMH0gfSwKLXsgMHgwNGRlLAkxNiwJezB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjR9IH0sCi17IDB4MDRlZSwJMTYsCXsweDAxLCAweDA1LCAweGMyLCAweDAwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1fSB9LAoteyAweDA0ZmUsCTE2LAl7MHhhYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNH0gfSwKLXsgMHgwNTBlLAkxNiwJezB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2Z9IH0sCi17IDB4MDUxZSwJMTYsCXsweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmfSB9LAoteyAweDA1MmUsCTE2LAl7MHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg2ZSwgMHg5MH0gfSwKLXsgMHgwNTNlLAkxNiwJezB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NjUsIDB4MTIsIDB4MGUsIDB4ODEsIDB4NTAsIDB4NjAsIDB4OTAsIDB4N2YsIDB4ZTh9IH0sCi17IDB4MDU0ZSwJMTYsCXsweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDU0LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0fSB9LAoteyAweDA1NWUsCTE2LAl7MHhkMiwgMHgwMCwgMHg4MCwgMHg0OSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlYX0gfSwKLXsgMHgwNTZlLAkxNiwJezB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTB9IH0sCi17IDB4MDU3ZSwJMTYsCXsweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxfSB9LAoteyAweDA1OGUsCTE2LAl7MHhmMCwgMHg4MCwgMHgxYSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMSwgMHhlNCwgMHg5MCwgMHgyMCwgMHg2YX0gfSwKLXsgMHgwNTllLAkxNiwJezB4ZjAsIDB4MTIsIDB4MDEsIDB4MDAsIDB4NTAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjR9IH0sCi17IDB4MDVhZSwJNCwJezB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjB9IH0sCi17IDB4MDViMiwJMSwJezB4MjJ9IH0sCi17IDB4MDViMywJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwfSB9LAoteyAweDA1YzMsCTE2LAl7MHhkMCwgMHhjMCwgMHgwMCwgMHhjMCwgMHgwMSwgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMywgMHhjMCwgMHgwNiwgMHhjMCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhhNX0gfSwKLXsgMHgwNWQzLAkxNiwJezB4ZTAsIDB4MzAsIDB4ZTIsIDB4MDYsIDB4NzUsIDB4MGQsIDB4MDYsIDB4MDIsIDB4MDYsIDB4N2YsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4MjAsIDB4ZTF9IH0sCi17IDB4MDVlMywJMTYsCXsweDBjLCAweGU1LCAweDBkLCAweDY0LCAweDAyLCAweDYwLCAweDA2LCAweDc1LCAweDBkLCAweDA3LCAweDAyLCAweDA2LCAweDdmLCAweGFmLCAweDBkLCAweGVmfSB9LAoteyAweDA1ZjMsCTE2LAl7MHgyNCwgMHhmZSwgMHg2MCwgMHg0OCwgMHgxNCwgMHg2MCwgMHgyYywgMHgyNCwgMHhmZSwgMHg2MCwgMHg3NywgMHgyNCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMn0gfSwKLXsgMHgwNjAzLAkxNiwJezB4MDYsIDB4N2YsIDB4YWIsIDB4MDksIDB4YWEsIDB4MGEsIDB4YTksIDB4MGIsIDB4YWYsIDB4MGMsIDB4MDUsIDB4MGMsIDB4OGYsIDB4ODIsIDB4NzUsIDB4ODN9IH0sCi17IDB4MDYxMywJMTYsCXsweDAwLCAweDEyLCAweDA3LCAweDg1LCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweGU1LCAweDBjLCAweDY1LCAweDA4LCAweDcwLCAweDVlLCAweDc1LCAweDBkfSB9LAoteyAweDA2MjMsCTE2LAl7MHgwNSwgMHg4MCwgMHg1OSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhhYiwgMHgwOSwgMHhhYSwgMHgwYSwgMHhhOSwgMHgwYiwgMHhhZSwgMHgwYywgMHg4ZX0gfSwKLXsgMHgwNjMzLAkxNiwJezB4ODIsIDB4NzUsIDB4ODMsIDB4MDAsIDB4MTIsIDB4MDcsIDB4YjIsIDB4NzUsIDB4MGQsIDB4MDIsIDB4ODAsIDB4NDAsIDB4ZTUsIDB4MDgsIDB4MjQsIDB4ZmV9IH0sCi17IDB4MDY0MywJMTYsCXsweGI1LCAweDBjLCAweDA3LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweGU1LCAweDA4LCAweDE0LCAweGI1LCAweDBjLCAweDBhfSB9LAoteyAweDA2NTMsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHhlNCwgMHhmNSwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhhYiwgMHgwOX0gfSwKLXsgMHgwNjYzLAkxNiwJezB4YWEsIDB4MGEsIDB4YTksIDB4MGIsIDB4YWUsIDB4MGMsIDB4OGUsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MDAsIDB4MTIsIDB4MDcsIDB4YjIsIDB4MDUsIDB4MGN9IH0sCi17IDB4MDY3MywJMTYsCXsweDgwLCAweDBhLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweGU0LCAweGY1LCAweDBkLCAweDUzLCAweDkxLCAweGRmLCAweGQwfSB9LAoteyAweDA2ODMsCTE2LAl7MHgwNywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwMywgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMH0gfSwKLXsgMHgwNjkzLAkxMCwJezB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MDY5ZCwJMTYsCXsweGMyLCAweDA0LCAweGQyLCAweDA1LCAweGU0LCAweGY1LCAweDI1LCAweGMyLCAweDAzLCAweGMyLCAweDAwLCAweGMyLCAweDAyLCAweGMyLCAweDAxLCAweDEyfSB9LAoteyAweDA2YWQsCTE2LAl7MHgwZSwgMHg3NCwgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOX0gfSwKLXsgMHgwNmJkLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4YzAsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MDZjZCwJMTYsCXsweDdmLCAweDkzLCAweDc0LCAweDMwLCAweGYwLCAweDEyLCAweDBhLCAweDE5LCAweDc1LCAweDI0LCAweDQ4LCAweDc1LCAweDIzLCAweDkyLCAweDc1LCAweDIyfSB9LAoteyAweDA2ZGQsCTE2LAl7MHgwMCwgMHg3NSwgMHgyMSwgMHgwMCwgMHhlNCwgMHhmZiwgMHhmZSwgMHg3ZSwgMHgwNSwgMHg5MCwgMHgyMCwgMHg2OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHhhM30gfSwKLXsgMHgwNmVkLAkxNiwJezB4ZGUsIDB4ZmMsIDB4N2UsIDB4MDAsIDB4N2YsIDB4MDUsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWV9IH0sCi17IDB4MDZmZCwJMTYsCXsweGUwLCAweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweDEyLCAweDBlLCAweDY4LCAweDMwLCAweDAxLCAweDBhLCAweGU0LCAweDkwLCAweDIwLCAweDY5fSB9LAoteyAweDA3MGQsCTE2LAl7MHhmMCwgMHgxMiwgMHgwMywgMHg3ZSwgMHhjMiwgMHgwMSwgMHgzMCwgMHgwNCwgMHgxYSwgMHgxMiwgMHgwZSwgMHg3NywgMHg1MCwgMHgxMywgMHgxMiwgMHgwOX0gfSwKLXsgMHgwNzFkLAkxNiwJezB4MDAsIDB4MzAsIDB4MDAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4ZjMsIDB4MTIsIDB4MGQsIDB4OGIsIDB4MTIsIDB4MGV9IH0sCi17IDB4MDcyZCwJMTYsCXsweDc5LCAweGMyLCAweDAzLCAweDdmLCAweGZmLCAweDdlLCAweGZmLCAweDdkLCAweGZmLCAweDdjLCAweGZmLCAweDc4LCAweDIxLCAweDEyLCAweDA4LCAweDFkfSB9LAoteyAweDA3M2QsCTE2LAl7MHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3OCwgMHgwMCwgMHhjMywgMHgxMiwgMHgwOCwgMHgwYywgMHg3MCwgMHgxYiwgMHg3NSwgMHgyNH0gfSwKLXsgMHgwNzRkLAkxNiwJezB4NDgsIDB4NzUsIDB4MjMsIDB4OTIsIDB4ZjUsIDB4MjIsIDB4ZjUsIDB4MjEsIDB4NjMsIDB4MjUsIDB4ZmYsIDB4OTAsIDB4MjAsIDB4NjgsIDB4ZTUsIDB4MjV9IH0sCi17IDB4MDc1ZCwJMTQsCXsweGYwLCAweGEzLCAweDc0LCAweDAxLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweDEyLCAweDA4LCAweGZmLCAweDgwLCAweDlifSB9LAoteyAweDA3NmIsCTEsCXsweDIyfSB9LAoteyAweDA3NmMsCTE2LAl7MHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMn0gfSwKLXsgMHgwNzdjLAk5LAl7MHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKLXsgMHgwNzg1LAkxNiwJezB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTB9IH0sCi17IDB4MDc5NSwJMTYsCXsweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyfSB9LAoteyAweDA3YTUsCTEzLAl7MHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKLXsgMHgwN2IyLAkxNiwJezB4ZjgsIDB4YmIsIDB4MDEsIDB4MGQsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTgsIDB4ZjB9IH0sCi17IDB4MDdjMiwJMTYsCXsweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGM4LCAweGY2LCAweDIyLCAweGJiLCAweGZlLCAweDA1LCAweGU5LCAweDI1LCAweDgyLCAweGM4fSB9LAoteyAweDA3ZDIsCTIsCXsweGYyLCAweDIyfSB9LAoteyAweDA3ZDQsCTE2LAl7MHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMH0gfSwKLXsgMHgwN2U0LAkxNiwJezB4YTMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDksIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ODYsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmV9IH0sCi17IDB4MDdmNCwJMTYsCXsweDBhLCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweGY1LCAweGYwLCAweDA4LCAweGUyLCAweDIyLCAweGU1LCAweDgzLCAweDJhLCAweGY1LCAweDgzfSB9LAoteyAweDA4MDQsCTgsCXsweGU5LCAweDkzLCAweGY1LCAweGYwLCAweGEzLCAweGU5LCAweDkzLCAweDIyfSB9LAoteyAweDA4MGMsCTE2LAl7MHhlYiwgMHg5ZiwgMHhmNSwgMHhmMCwgMHhlYSwgMHg5ZSwgMHg0MiwgMHhmMCwgMHhlOSwgMHg5ZCwgMHg0MiwgMHhmMCwgMHhlOCwgMHg5YywgMHg0NSwgMHhmMH0gfSwKLXsgMHgwODFjLAkxLAl7MHgyMn0gfSwKLXsgMHgwODFkLAkxNiwJezB4MDgsIDB4MDgsIDB4MDgsIDB4ZTYsIDB4MmYsIDB4ZmYsIDB4ZjYsIDB4MTgsIDB4ZTYsIDB4M2UsIDB4ZmUsIDB4ZjYsIDB4MTgsIDB4ZTYsIDB4M2QsIDB4ZmR9IH0sCi17IDB4MDgyZCwJNywJezB4ZjYsIDB4MTgsIDB4ZTYsIDB4M2MsIDB4ZmMsIDB4ZjYsIDB4MjJ9IH0sCi17IDB4MDgzNCwJNCwJezB4OGMsIDB4MzQsIDB4OGQsIDB4MzV9IH0sCi17IDB4MDgzOCwJMTYsCXsweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweGMwLCAweGYwLCAweGU0LCAweGY1LCAweDM2LCAweGY1LCAweDM3LCAweGMzLCAweGU1LCAweDM3LCAweDk1fSB9LAoteyAweDA4NDgsCTE2LAl7MHgzNSwgMHhlNSwgMHgzNiwgMHg5NSwgMHgzNCwgMHg1MCwgMHg2OSwgMHhlZiwgMHgyNSwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNiwgMHgzZSwgMHhmNX0gfSwKLXsgMHgwODU4LAkxNiwJezB4ODMsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZjQsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4ZWYsIDB4MjUsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzZ9IH0sCi17IDB4MDg2OCwJMTYsCXsweDNlLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweGVmLCAweDI1LCAweDM3LCAweGY1LCAweDgyLCAweGU1LCAweDM2fSB9LAoteyAweDA4NzgsCTE2LAl7MHgzZSwgMHhmNSwgMHg4MywgMHg3NCwgMHhhYSwgMHhmMCwgMHg2NCwgMHhhYSwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHhlZiwgMHgyNSwgMHgzNywgMHhmNX0gfSwKLXsgMHgwODg4LAkxNiwJezB4ODIsIDB4ZTUsIDB4MzYsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4NTUsIDB4ZjAsIDB4NjQsIDB4NTUsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4YWR9IH0sCi17IDB4MDg5OCwJMTYsCXsweDM3LCAweGU1LCAweDM3LCAweDJmLCAweGY1LCAweDgyLCAweGU1LCAweDM2LCAweDNlLCAweGY1LCAweDgzLCAweGVkLCAweGYwLCAweGZjLCAweGFjLCAweDA1fSB9LAoteyAweDA4YTgsCTE2LAl7MHhlZCwgMHg2YywgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHgwNSwgMHgzNywgMHhlNSwgMHgzNywgMHg3MCwgMHgwMiwgMHgwNSwgMHgzNiwgMHg4MCwgMHg4Y30gfSwKLXsgMHgwOGI4LAkxNiwJezB4ZTQsIDB4ZjUsIDB4MzYsIDB4ZjUsIDB4MzcsIDB4YzMsIDB4ZTUsIDB4MzcsIDB4OTUsIDB4MzUsIDB4ZTUsIDB4MzYsIDB4OTUsIDB4MzQsIDB4NTAsIDB4Mjd9IH0sCi17IDB4MDhjOCwJMTYsCXsweGVmLCAweDI1LCAweDM3LCAweGY1LCAweDgyLCAweGU1LCAweDM2LCAweDNlLCAweGY1LCAweDgzLCAweGUwLCAweDY1LCAweDM3LCAweDYwLCAweDAyLCAweGMzfSB9LAoteyAweDA4ZDgsCTE2LAl7MHgyMiwgMHhlZiwgMHgyNSwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNiwgMHgzZSwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHgwNSwgMHgzNywgMHhlNX0gfSwKLXsgMHgwOGU4LAk4LAl7MHgzNywgMHg3MCwgMHgwMiwgMHgwNSwgMHgzNiwgMHg4MCwgMHhjZSwgMHhkM30gfSwKLXsgMHgwOGYwLAkxLAl7MHgyMn0gfSwKLXsgMHgwOGYxLAkxNCwJezB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MDhmZiwJMSwJezB4MjJ9IH0sCi17IDB4MDkwMCwJOSwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4NzR9IH0sCi17IDB4MDk3ZCwJMTYsCXsweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyfSB9LAoteyAweDA5OGQsCTEyLAl7MHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzYSwgMHgwMiwgMHgwOSwgMHhkNH0gfSwKLXsgMHgwOTk5LAkxNiwJezB4MDIsIDB4MDYsIDB4OWQsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjJ9IH0sCi17IDB4MDlhOSwJMTYsCXsweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzfSB9LAoteyAweDA5YjksCTE2LAl7MHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZn0gfSwKLXsgMHgwOWM5LAkxNiwJezB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MGUsIDB4MmQsIDB4ZTQsIDB4N2V9IH0sCi17IDB4MDlkOSwJMTYsCXsweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzfSB9LAoteyAweDA5ZTksCTE2LAl7MHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhM30gfSwKLXsgMHgwOWY5LAkxNiwJezB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9IH0sCi17IDB4MGEwOSwJMTYsCXsweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlfSB9LAoteyAweDBhMTksCTE2LAl7MHhlNCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHg3ZiwgMHgwYSwgMHhmZSwgMHgxMiwgMHgwZCwgMHhkNSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHg4OX0gfSwKLXsgMHgwYTI5LAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4Y2YsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGEzOSwJMTYsCXsweDk2LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDBkLCAweGQ1LCAweDdmLCAweDA1LCAweDdlLCAweDAwfSB9LAoteyAweDBhNDksCTE2LAl7MHgxMiwgMHgwZCwgMHhkNSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg3ZiwgMHgwNX0gfSwKLXsgMHgwYTU5LAkxNiwJezB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDB9IH0sCi17IDB4MGE2OSwJMTYsCXsweDEyLCAweDBkLCAweGQ1LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDBkfSB9LAoteyAweDBhNzksCTE2LAl7MHhkNSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgzMiwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHhkNSwgMHgyMn0gfSwKLXsgMHgwYTg5LAkxNiwJezB4NzUsIDB4MzMsIDB4MDEsIDB4ZTUsIDB4MzMsIDB4NjAsIDB4MWIsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MGUsIDB4MTgsIDB4N2YsIDB4MDAsIDB4N2UsIDB4MGV9IH0sCi17IDB4MGE5OSwJMTYsCXsweDdkLCAweDAwLCAweDdjLCAweDAxLCAweDEyLCAweDA4LCAweDM0LCAweGU0LCAweDMzLCAweGY1LCAweDMzLCAweDcwLCAweDA1LCAweDdmLCAweDBmLCAweDEyfSB9LAoteyAweDBhYTksCTE2LAl7MHgwZSwgMHgxOCwgMHhlNSwgMHgzMywgMHg2MCwgMHgxYiwgMHg3ZiwgMHgwMiwgMHgxMiwgMHgwZSwgMHgxOCwgMHg3ZiwgMHgwMCwgMHg3ZSwgMHg4MCwgMHg3ZH0gfSwKLXsgMHgwYWI5LAkxNiwJezB4MDAsIDB4N2MsIDB4ODAsIDB4MTIsIDB4MDgsIDB4MzQsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MzMsIDB4NzAsIDB4MDUsIDB4N2YsIDB4MGYsIDB4MTIsIDB4MGV9IH0sCi17IDB4MGFjOSwJMTYsCXsweDE4LCAweGU1LCAweDMzLCAweDYwLCAweDFiLCAweDdmLCAweDAzLCAweDEyLCAweDBlLCAweDE4LCAweDdmLCAweDAwLCAweDdlLCAweDIwLCAweDdkLCAweDQwfSB9LAoteyAweDBhZDksCTE2LAl7MHg3YywgMHg1YiwgMHgxMiwgMHgwOCwgMHgzNCwgMHhlNCwgMHgzMywgMHhmNSwgMHgzMywgMHg3MCwgMHgwNSwgMHg3ZiwgMHgwZiwgMHgxMiwgMHgwZSwgMHgxOH0gfSwKLXsgMHgwYWU5LAkxMywJezB4ZTUsIDB4MzMsIDB4NjAsIDB4MDUsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MGUsIDB4MTgsIDB4ZTUsIDB4MzMsIDB4MjQsIDB4ZmZ9IH0sCi17IDB4MGFmNiwJMSwJezB4MjJ9IH0sCi17IDB4MGFmNywJOCwJezB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MTAsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MGFmZiwJMSwJezB4MzJ9IH0sCi17IDB4MGIwMCwJMTYsCXsweDAyLCAweDBkLCAweGE1LCAweDAwLCAweDAyLCAweDBkLCAweGVjLCAweDAwLCAweDAyLCAweDBkLCAweDcwLCAweDAwLCAweDAyLCAweDBkLCAweGJkLCAweDAwfSB9LAoteyAweDBiMTAsCTE2LAl7MHgwMiwgMHgwZSwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwYSwgMHhmZiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4MywgMHgwMCwgMHgwMiwgMHgwZSwgMHg4NCwgMHgwMH0gfSwKLXsgMHgwYjIwLAkxNiwJezB4MDIsIDB4MGUsIDB4ODUsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ODYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ODcsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ODgsIDB4MDB9IH0sCi17IDB4MGIzMCwJMTYsCXsweDAyLCAweDBlLCAweDg5LCAweDAwLCAweDAyLCAweDBlLCAweDhhLCAweDAwLCAweDAyLCAweDBlLCAweDhiLCAweDAwLCAweDAyLCAweDBlLCAweDhjLCAweDAwfSB9LAoteyAweDBiNDAsCTE2LAl7MHgwMiwgMHgwZSwgMHg4ZCwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4ZSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4ZiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg5MCwgMHgwMH0gfSwKLXsgMHgwYjUwLAk4LAl7MHgwMiwgMHgwZSwgMHg5MSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg5MiwgMHgwMH0gfSwKLXsgMHgwYjU4LAkxNiwJezB4ZTQsIDB4ZmUsIDB4NzUsIDB4MmIsIDB4ZmYsIDB4NzUsIDB4MmMsIDB4MTEsIDB4NzUsIDB4MmQsIDB4MTIsIDB4YWIsIDB4MmIsIDB4YWEsIDB4MmMsIDB4YTl9IH0sCi17IDB4MGI2OCwJMTYsCXsweDJkLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDA3LCAweDg1LCAweDY0LCAweDAyLCAweDcwLCAweDJkLCAweGFkLCAweDA2LCAweDBlLCAweGVkLCAweGI1fSB9LAoteyAweDBiNzgsCTE2LAl7MHgwNywgMHgwMSwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHgwNywgMHhkNCwgMHg4NSwgMHhmMCwgMHgyOSwgMHhmNSwgMHgyYSwgMHg2MiwgMHgyOX0gfSwKLXsgMHgwYjg4LAkxNiwJezB4ZTUsIDB4MjksIDB4NjIsIDB4MmEsIDB4ZTUsIDB4MmEsIDB4NjIsIDB4MjksIDB4MjksIDB4ZmQsIDB4ZTUsIDB4MjksIDB4M2EsIDB4YTksIDB4MDUsIDB4NzV9IH0sCi17IDB4MGI5OCwJMTQsCXsweDJiLCAweGZmLCAweGY1LCAweDJjLCAweDg5LCAweDJkLCAweDgwLCAweGMzLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwfSB9LAoteyAweDBiYTYsCTEsCXsweDIyfSB9LAoteyAweDBiYTcsCTYsCXsweGFiLCAweDA3LCAweGFhLCAweDA2LCAweGFjLCAweDA1fSB9LAoteyAweDBiYWQsCTE2LAl7MHhlNCwgMHhmZCwgMHhlNSwgMHgxMSwgMHg2MCwgMHgxMSwgMHhlYSwgMHhmZiwgMHhhZSwgMHgwNSwgMHgwZCwgMHhlZSwgMHgyNCwgMHgxMCwgMHhmNSwgMHg4Mn0gfSwKLXsgMHgwYmJkLAkxNiwJezB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZWIsIDB4YWUsIDB4MDUsIDB4MGQsIDB4NzQsIDB4MTAsIDB4MmUsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4MGJjZCwJMTYsCXsweGU0LCAweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGViLCAweGYwLCAweGFmLCAweDA1LCAweDBkLCAweDc0LCAweDEwLCAweDJmLCAweGY1LCAweDgyLCAweGU0fSB9LAoteyAweDBiZGQsCTE2LAl7MHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHhhZiwgMHgwZiwgMHg3YSwgMHgwZiwgMHg3YiwgMHgxMCwgMHgxMiwgMHgwZCwgMHg1MSwgMHg3Zn0gfSwKLXsgMHgwYmVkLAk2LAl7MHgwYSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHhkNX0gfSwKLXsgMHgwYmYzLAkxLAl7MHgyMn0gfSwKLXsgMHgwYmY0LAkxMCwJezB4OGUsIDB4MzMsIDB4OGYsIDB4MzQsIDB4OGQsIDB4MzUsIDB4OGEsIDB4MzYsIDB4OGIsIDB4Mzd9IH0sCi17IDB4MGJmZSwJMTYsCXsweGU0LCAweGZkLCAweGY1LCAweDM4LCAweGU1LCAweDExLCAweDYwLCAweDEyLCAweGU1LCAweDMzLCAweGZmLCAweGFlLCAweDA1LCAweDBkLCAweGVlLCAweDI0fSB9LAoteyAweDBjMGUsCTE2LAl7MHgxMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwgMHgzNCwgMHhhZSwgMHgwNSwgMHgwZCwgMHg3NH0gfSwKLXsgMHgwYzFlLAkxNiwJezB4MTMsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4MzQsIDB4ZjAsIDB4YWYsIDB4MGYsIDB4N2EsIDB4MGZ9IH0sCi17IDB4MGMyZSwJMTYsCXsweDdiLCAweDEzLCAweDEyLCAweDBkLCAweDUxLCAweGFmLCAweDBmLCAweGFkLCAweDM1LCAweGFiLCAweDM3LCAweGFhLCAweDM2LCAweDEyLCAweDBkLCAweDMyfSB9LAoteyAweDBjM2UsCTEsCXsweDIyfSB9LAoteyAweDBjM2YsCTIsCXsweDhmLCAweDI5fSB9LAoteyAweDBjNDEsCTE2LAl7MHhlNCwgMHhmNSwgMHgyYSwgMHg3NSwgMHgyYiwgMHhmZiwgMHg3NSwgMHgyYywgMHgxMSwgMHg3NSwgMHgyZCwgMHgzMiwgMHhhYiwgMHgyYiwgMHhhYSwgMHgyY30gfSwKLXsgMHgwYzUxLAkxNiwJezB4YTksIDB4MmQsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MDcsIDB4ODUsIDB4YjQsIDB4MDMsIDB4MWQsIDB4YWYsIDB4MmEsIDB4MDUsIDB4MmEsIDB4ZWZ9IH0sCi17IDB4MGM2MSwJMTYsCXsweGI1LCAweDI5LCAweDAxLCAweDIyLCAweDEyLCAweDA3LCAweDZjLCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1fSB9LAoteyAweDBjNzEsCTE0LAl7MHgyYiwgMHhmZiwgMHhmNSwgMHgyYywgMHg4OSwgMHgyZCwgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMH0gfSwKLXsgMHgwYzdmLAkxLAl7MHgyMn0gfSwKLXsgMHgwYzgwLAkxMCwJezB4OGUsIDB4MzMsIDB4OGYsIDB4MzQsIDB4OGQsIDB4MzUsIDB4OGEsIDB4MzYsIDB4OGIsIDB4Mzd9IH0sCi17IDB4MGM4YSwJMTYsCXsweGU0LCAweGY1LCAweDM4LCAweGU1LCAweDM4LCAweGMzLCAweDk1LCAweDM1LCAweDUwLCAweDIwLCAweDA1LCAweDM0LCAweGU1LCAweDM0LCAweGFlLCAweDMzfSB9LAoteyAweDBjOWEsCTE2LAl7MHg3MCwgMHgwMiwgMHgwNSwgMHgzMywgMHgxNCwgMHhmZiwgMHhlNSwgMHgzNywgMHgyNSwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgzNiwgMHhmNX0gfSwKLXsgMHgwY2FhLAkxMCwJezB4ODMsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MGIsIDB4YTcsIDB4MDUsIDB4MzgsIDB4ODAsIDB4ZDl9IH0sCi17IDB4MGNiNCwJMSwJezB4MjJ9IH0sCi17IDB4MGNiNSwJMTYsCXsweGE5LCAweDA3LCAweGU1LCAweDBkLCAweDcwLCAweDI1LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU5LCAweDI1LCAweGUwfSB9LAoteyAweDBjYzUsCTE2LAl7MHg0NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg4ZCwgMHgwOCwgMHhhZiwgMHgwMywgMHhhOSwgMHgwNywgMHg3NSwgMHgwOSwgMHgwMSwgMHg4YX0gfSwKLXsgMHgwY2Q1LAkxMywJezB4MGEsIDB4ODksIDB4MGIsIDB4ZTQsIDB4ZjUsIDB4MGMsIDB4NzUsIDB4MGQsIDB4MDMsIDB4ZDMsIDB4MjIsIDB4YzMsIDB4MjJ9IH0sCi17IDB4MGNlMiwJMTYsCXsweGE5LCAweDA3LCAweGU1LCAweDBkLCAweDcwLCAweDIzLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU5LCAweDI1LCAweGUwfSB9LAoteyAweDBjZjIsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg4ZCwgMHgwOCwgMHhhZiwgMHgwMywgMHhhOSwgMHgwNywgMHg3NSwgMHgwOSwgMHgwMSwgMHg4YSwgMHgwYSwgMHg4OX0gfSwKLXsgMHgwZDAyLAkxMSwJezB4MGIsIDB4ZTQsIDB4ZjUsIDB4MGMsIDB4NzUsIDB4MGQsIDB4MDEsIDB4ZDMsIDB4MjIsIDB4YzMsIDB4MjJ9IH0sCi17IDB4MGQwZCwJMTYsCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDA2LCAweDA0LCAweGUwLCAweDQ0fSB9LAoteyAweDBkMWQsCTE2LAl7MHgwMiwgMHhmMCwgMHg3ZiwgMHhkMCwgMHg3ZSwgMHgwNywgMHgxMiwgMHgwZCwgMHhkNSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMH0gfSwKLXsgMHgwZDJkLAk1LAl7MHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHgyMn0gfSwKLXsgMHgwZDMyLAkxNiwJezB4MTIsIDB4MGMsIDB4YjUsIDB4ZTUsIDB4MGQsIDB4MjQsIDB4ZmEsIDB4NjAsIDB4MTAsIDB4MTQsIDB4NjAsIDB4MDcsIDB4MjQsIDB4MDcsIDB4NzAsIDB4ZjN9IH0sCi17IDB4MGQ0MiwJMTUsCXsweDdmLCAweDA4LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA3LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA2LCAweDIyfSB9LAoteyAweDBkNTEsCTE2LAl7MHgxMiwgMHgwYywgMHhlMiwgMHhlNSwgMHgwZCwgMHgyNCwgMHhmYSwgMHg2MCwgMHgxMCwgMHgxNCwgMHg2MCwgMHgwNywgMHgyNCwgMHgwNywgMHg3MCwgMHhmM30gfSwKLXsgMHgwZDYxLAkxNSwJezB4N2YsIDB4MDgsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDcsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDYsIDB4MjJ9IH0sCi17IDB4MGQ3MCwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDkwLCAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoteyAweDBkODAsCTExLAl7MHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZDhiLAkxNiwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MTIsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MTQsIDB4N2UsIDB4MDAsIDB4MTJ9IH0sCi17IDB4MGQ5YiwJMTAsCXsweDBkLCAweGQ1LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDIyfSB9LAoteyAweDBkYTUsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhkMiwgMHgwMSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMX0gfSwKLXsgMHgwZGI1LAk4LAl7MHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZGJkLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZDIsIDB4MDMsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDh9IH0sCi17IDB4MGRjZCwJOCwJezB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGRkNSwJMTYsCXsweDhlLCAweDM5LCAweDhmLCAweDNhLCAweGU1LCAweDNhLCAweDE1LCAweDNhLCAweGFlLCAweDM5LCAweDcwLCAweDAyLCAweDE1LCAweDM5LCAweDRlLCAweDYwfSB9LAoteyAweDBkZTUsCTcsCXsweDA1LCAweDEyLCAweDBlLCAweDQxLCAweDgwLCAweGVlLCAweDIyfSB9LAoteyAweDBkZWMsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMiwgMHhmMCwgMHhkMH0gfSwKLXsgMHgwZGZjLAk2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZTAyLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZDB9IH0sCi17IDB4MGUxMiwJNiwJezB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGUxOCwJMTYsCXsweGFlLCAweDA3LCAweDdmLCAweDIxLCAweDdkLCAweDAxLCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmLCAweGFiLCAweDgyfSB9LAoteyAweDBlMjgsCTUsCXsweGZhLCAweDEyLCAweDBkLCAweDUxLCAweDIyfSB9LAoteyAweDBlMmQsCTE2LAl7MHg1MCwgMHgwZiwgMHgwMCwgMHhjMCwgMHhmOSwgMHhhNCwgMHhiMCwgMHg5OSwgMHg5MiwgMHg4MiwgMHhmOCwgMHg4MCwgMHg5OCwgMHg4OCwgMHg4MywgMHhjNn0gfSwKLXsgMHgwZTNkLAkzLAl7MHhhMSwgMHg4NiwgMHg4ZX0gfSwKLXsgMHgwZTQwLAkxLAl7MHgwMH0gfSwKLXsgMHgwZTQxLAkxNiwJezB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4Zjl9IH0sCi17IDB4MGU1MSwJMSwJezB4MjJ9IH0sCi17IDB4MGU1MiwJMTQsCXsweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDBlLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweGQzLCAweDIyfSB9LAoteyAweDBlNjAsCTgsCXsweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDBlLCAweGQzLCAweDIyfSB9LAoteyAweDBlNjgsCTgsCXsweGU0LCAweGY1LCAweDBkLCAweGQyLCAweGU5LCAweGQyLCAweGFmLCAweDIyfSB9LAoteyAweDBlNzAsCTQsCXsweDUzLCAweGQ4LCAweGVmLCAweDMyfSB9LAoteyAweDBlNzQsCTMsCXsweGQyLCAweDAwLCAweDIyfSB9LAoteyAweDBlNzcsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlNzksCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlN2IsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlN2QsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlN2YsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlODEsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlODMsCTEsCXsweDMyfSB9LAoteyAweDBlODQsCTEsCXsweDMyfSB9LAoteyAweDBlODUsCTEsCXsweDMyfSB9LAoteyAweDBlODYsCTEsCXsweDMyfSB9LAoteyAweDBlODcsCTEsCXsweDMyfSB9LAoteyAweDBlODgsCTEsCXsweDMyfSB9LAoteyAweDBlODksCTEsCXsweDMyfSB9LAoteyAweDBlOGEsCTEsCXsweDMyfSB9LAoteyAweDBlOGIsCTEsCXsweDMyfSB9LAoteyAweDBlOGMsCTEsCXsweDMyfSB9LAoteyAweDBlOGQsCTEsCXsweDMyfSB9LAoteyAweDBlOGUsCTEsCXsweDMyfSB9LAoteyAweDBlOGYsCTEsCXsweDMyfSB9LAoteyAweDBlOTAsCTEsCXsweDMyfSB9LAoteyAweDBlOTEsCTEsCXsweDMyfSB9LAoteyAweDBlOTIsCTEsCXsweDMyfSB9LAoteyAweDExMDAsCTE2LAl7MHgxMiwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NywgMHgwNSwgMHgxMCwgMHgyNywgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMn0gfSwKLXsgMHgxMTEwLAkxNiwJezB4MDAsIDB4MDEsIDB4MDksIDB4MDIsIDB4MjAsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDMsIDB4YTAsIDB4MDAsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDJ9IH0sCi17IDB4MTEyMCwJMTYsCXsweGZmLCAweDAwLCAweDAwLCAweDA0LCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwfSB9LAoteyAweDExMzAsCTE2LAl7MHgwMCwgMHgwMCwgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHgyNiwgMHgwMywgMHg0MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHg2OCwgMHgwMH0gfSwKLXsgMHgxMTQwLAkxNiwJezB4NmYsIDB4MDAsIDB4NzIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDMsIDB4MDAsIDB4NjgsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzMsIDB4MDB9IH0sCi17IDB4MTE1MCwJMTYsCXsweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDI4LCAweDAzLCAweDQ2LCAweDAwfSB9LAoteyAweDExNjAsCTE2LAl7MHg2OSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2ZCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2NSwgMHgwMCwgMHgyMCwgMHgwMH0gfSwKLXsgMHgxMTcwLAkxNiwJezB4NDYsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NTcsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NzIsIDB4MDB9IH0sCi17IDB4MTE4MCwJMTYsCXsweDZiLCAweDAwLCAweDczLCAweDAwLCAweDJhLCAweDAzLCAweDQzLCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDY2LCAweDAwLCAweDY5LCAweDAwfSB9LAoteyAweDExOTAsCTE2LAl7MHg2NywgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMH0gfSwKLXsgMHgxMWEwLAkxNiwJezB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjcsIDB4MDAsIDB4MjIsIDB4MDN9IH0sCi17IDB4MTFiMCwJMTYsCXsweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY2LCAweDAwLCAweDYxLCAweDAwLCAweDYzLCAweDAwfSB9LAoteyAweDExYzAsCTE2LAl7MHg2NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NywgMHgwMH0gfSwKLXsgMHgxMWQwLAkyLAl7MHgwMCwgMHgwMH0gfSwKLXsgMHhmZmZmLAkwLAl7MHgwMH0gfQotfTsKLQotI2Vsc2UKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB3aGl0ZWhlYXRfaGV4X3JlY29yZCB3aGl0ZWhlYXRfbG9hZGVyW10gPSB7Ci17IDB4MDAwMCwJMywJezB4MDIsIDB4MDksIDB4OGR9IH0sCi17IDB4MDAzMywJMywJezB4MDIsIDB4MDgsIDB4ZmJ9IH0sCi17IDB4MDA0MywJMywJezB4MDIsIDB4MGIsIDB4MDB9IH0sCi17IDB4MDA0YiwJMywJezB4MDIsIDB4MDUsIDB4YWF9IH0sCi17IDB4MDEwMCwJMTYsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDU0LCAweDEwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDUwLCAweGY1LCAweDBmLCAweDEzLCAweGU0fSB9LAoteyAweDAxMTAsCTE2LAl7MHgzMywgMHhmNSwgMHgxMSwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgyNCwgMHg1ZSwgMHhiNCwgMHgwNywgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwM30gfSwKLXsgMHgwMTIwLAkxNiwJezB4NzgsIDB4OTAsIDB4MDEsIDB4MjgsIDB4ZjgsIDB4MjgsIDB4MjgsIDB4NzMsIDB4MDIsIDB4MDEsIDB4YmMsIDB4MDIsIDB4MDEsIDB4YmMsIDB4MDIsIDB4MDF9IH0sCi17IDB4MDEzMCwJMTYsCXsweDkxLCAweDAyLCAweDAxLCAweDNkLCAweDAyLCAweDAxLCAweDUzLCAweDAyLCAweDAxLCAweDZmLCAweDAyLCAweDAxLCAweDlhLCAweDkwLCAweDdmLCAweDAwfSB9LAoteyAweDAxNDAsCTE2LAl7MHhlNSwgMHgxMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMH0gfSwKLXsgMHgwMTUwLAkxNiwJezB4MDIsIDB4MDMsIDB4NzgsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MDE2MCwJMTYsCXsweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDAyLCAweDAzLCAweDc4LCAweDEyfSB9LAoteyAweDAxNzAsCTE2LAl7MHgwYSwgMHg4OSwgMHg1MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHg4MCwgMHgwNiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwZn0gfSwKLXsgMHgwMTgwLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDN9IH0sCi17IDB4MDE5MCwJMTYsCXsweDc4LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDBmLCAweDAyLCAweDAzLCAweDc4LCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDA3LCAweGYwfSB9LAoteyAweDAxYTAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHhlOCwgMHg3ZX0gfSwKLXsgMHgwMWIwLAkxNiwJezB4MDMsIDB4MTIsIDB4MGQsIDB4OTQsIDB4ZDIsIDB4MDYsIDB4MTIsIDB4MGMsIDB4Y2MsIDB4MDIsIDB4MDMsIDB4NzgsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9IH0sCi17IDB4MDFjMCwJMTYsCXsweDc1LCAweDI4LCAweDAwLCAweGY1LCAweDI5LCAweGEzLCAweGUwLCAweGZlLCAweGU0LCAweGVlLCAweDQyLCAweDI4LCAweDkwLCAweDdmLCAweGVlLCAweGUwfSB9LAoteyAweDAxZDAsCTE2LAl7MHg3NSwgMHgyYSwgMHgwMCwgMHhmNSwgMHgyYiwgMHhhMywgMHhlMCwgMHhmZSwgMHhlNCwgMHhlZSwgMHg0MiwgMHgyYSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMH0gfSwKLXsgMHgwMWUwLAkxNiwJezB4NjQsIDB4YzAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4YzksIDB4ZTUsIDB4MmIsIDB4NDUsIDB4MmEsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4Nzh9IH0sCi17IDB4MDFmMCwJMTYsCXsweGMzLCAweGU1LCAweDJiLCAweDk0LCAweDQwLCAweGU1LCAweDJhLCAweDk0LCAweDAwLCAweDUwLCAweDA4LCAweDg1LCAweDJhLCAweDJjLCAweDg1LCAweDJifSB9LAoteyAweDAyMDAsCTE2LAl7MHgyZCwgMHg4MCwgMHgwNiwgMHg3NSwgMHgyYywgMHgwMCwgMHg3NSwgMHgyZCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg2NCwgMHhhMywgMHg3MH0gfSwKLXsgMHgwMjEwLAkxNiwJezB4MzQsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MzEsIDB4YzMsIDB4ZTUsIDB4MzEsIDB4OTUsIDB4MmQsIDB4ZTUsIDB4MzAsIDB4OTUsIDB4MmMsIDB4NTAsIDB4NWN9IH0sCi17IDB4MDIyMCwJMTYsCXsweGU1LCAweDI5LCAweDI1LCAweDMxLCAweGY1LCAweDgyLCAweGU1LCAweDMwLCAweDM1LCAweDI4LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDc0LCAweDAwfSB9LAoteyAweDAyMzAsCTE2LAl7MHgyNSwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgzMSwgMHhlNSwgMHgzMSwgMHg3MH0gfSwKLXsgMHgwMjQwLAkxNiwJezB4MDIsIDB4MDUsIDB4MzAsIDB4ODAsIDB4ZDAsIDB4ZTQsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MzEsIDB4YzMsIDB4ZTUsIDB4MzEsIDB4OTUsIDB4MmQsIDB4ZTV9IH0sCi17IDB4MDI1MCwJMTYsCXsweDMwLCAweDk1LCAweDJjLCAweDUwLCAweDE4LCAweDc0LCAweDAwLCAweDI1LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzfSB9LAoteyAweDAyNjAsCTE2LAl7MHg3NCwgMHhjZCwgMHhmMCwgMHgwNSwgMHgzMSwgMHhlNSwgMHgzMSwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzMCwgMHg4MCwgMHhkZCwgMHhhZiwgMHgyOSwgMHhhZX0gfSwKLXsgMHgwMjcwLAkxNiwJezB4MjgsIDB4YWQsIDB4MmQsIDB4N2EsIDB4N2YsIDB4NzksIDB4MDAsIDB4N2IsIDB4MDAsIDB4MTIsIDB4MGIsIDB4ZjQsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZTV9IH0sCi17IDB4MDI4MCwJMTYsCXsweDJkLCAweGYwLCAweGU1LCAweDJkLCAweDI1LCAweDI5LCAweGY1LCAweDI5LCAweGU1LCAweDJjLCAweDM1LCAweDI4LCAweGY1LCAweDI4LCAweGMzLCAweGU1fSB9LAoteyAweDAyOTAsCTE2LAl7MHgyYiwgMHg5NSwgMHgyZCwgMHhmNSwgMHgyYiwgMHhlNSwgMHgyYSwgMHg5NSwgMHgyYywgMHhmNSwgMHgyYSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHhmZn0gfSwKLXsgMHgwMmEwLAkxNiwJezB4YzQsIDB4NTQsIDB4MGYsIDB4NzUsIDB4MmUsIDB4MDAsIDB4ZjUsIDB4MmYsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4ZTUsIDB4MmUsIDB4OTQsIDB4MDAsIDB4NTB9IH0sCi17IDB4MDJiMCwJMTYsCXsweDBjLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDIwLCAweGUxLCAweDAzLCAweDAyLCAweDAxLCAweGU3LCAweDgwLCAweGY0LCAweDkwLCAweDdmLCAweGI0fSB9LAoteyAweDAyYzAsCTE2LAl7MHhlMCwgMHgyMCwgMHhlMiwgMHgwMywgMHgwMiwgMHgwMSwgMHhlNywgMHg4MCwgMHhmNCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHg2NCwgMHg0MCwgMHg2MH0gfSwKLXsgMHgwMmQwLAkxNiwJezB4MDMsIDB4MDIsIDB4MDMsIDB4NzgsIDB4ZTUsIDB4MmIsIDB4NDUsIDB4MmEsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NzgsIDB4ZTQsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDJlMCwJMTYsCXsweGM1LCAweGYwLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDc1LCAweDJlLCAweDAwLCAweGY1LCAweDJmLCAweGQzfSB9LAoteyAweDAyZjAsCTE2LAl7MHg5NCwgMHgwMCwgMHhlNSwgMHgyZSwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwOSwgMHg4MH0gfSwKLXsgMHgwMzAwLAkxNiwJezB4ZjcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4ZjksIDB4OTAsIDB4N2YsIDB4YzUsIDB4ZTAsIDB4NzUsIDB4MmMsIDB4MDAsIDB4ZjV9IH0sCi17IDB4MDMxMCwJMTYsCXsweDJkLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDY0LCAweGEzLCAweDcwLCAweDM0LCAweGY1LCAweDMwLCAweGY1LCAweDMxLCAweGMzLCAweGU1LCAweDMxfSB9LAoteyAweDAzMjAsCTE2LAl7MHg5NSwgMHgyZCwgMHhlNSwgMHgzMCwgMHg5NSwgMHgyYywgMHg1MCwgMHgzNCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNH0gfSwKLXsgMHgwMzMwLAkxLAl7MHg3ZX0gfSwKLXsgMHgwMzMxLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MjksIDB4MjUsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzAsIDB4MzUsIDB4MjgsIDB4ZjUsIDB4ODN9IH0sCi17IDB4MDM0MSwJMTYsCXsweGVmLCAweGYwLCAweDA1LCAweDMxLCAweGU1LCAweDMxLCAweDcwLCAweDAyLCAweDA1LCAweDMwLCAweDgwLCAweGQwLCAweGFmLCAweDI5LCAweGFlLCAweDI4fSB9LAoteyAweDAzNTEsCTE2LAl7MHhhZCwgMHgyZCwgMHg3YSwgMHg3ZSwgMHg3OSwgMHhjMCwgMHg3YiwgMHhjMCwgMHgxMiwgMHgwYywgMHgzZiwgMHhlNSwgMHgyZCwgMHgyNSwgMHgyOSwgMHhmNX0gfSwKLXsgMHgwMzYxLAkxNiwJezB4MjksIDB4ZTUsIDB4MmMsIDB4MzUsIDB4MjgsIDB4ZjUsIDB4MjgsIDB4YzMsIDB4ZTUsIDB4MmIsIDB4OTUsIDB4MmQsIDB4ZjUsIDB4MmIsIDB4ZTUsIDB4MmF9IH0sCi17IDB4MDM3MSwJOSwJezB4OTUsIDB4MmMsIDB4ZjUsIDB4MmEsIDB4MDIsIDB4MDIsIDB4ZDQsIDB4YzMsIDB4MjJ9IH0sCi17IDB4MDM3YSwJMTYsCXsweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDUyLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweGNlLCAweDI0fSB9LAoteyAweDAzOGEsCTE2LAl7MHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg0MiwgMHgyNCwgMHhmYiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg0YywgMHgxNCwgMHg3MCwgMHgwM30gfSwKLXsgMHgwMzlhLAkxNiwJezB4MDIsIDB4MDQsIDB4NDYsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4M2EsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4MjR9IH0sCi17IDB4MDNhYSwJMTYsCXsweDA1LCAweDYwLCAweDAzLCAweDAyLCAweDA1LCAweDk2LCAweDEyLCAweDBlLCAweDQ0LCAweDQwLCAweDAzLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmfSB9LAoteyAweDAzYmEsCTE2LAl7MHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwgMHg0MCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg2OSwgMHg3NCwgMHgxMSwgMHg5MH0gfSwKLXsgMHgwM2NhLAkxNiwJezB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTB9IH0sCi17IDB4MDNkYSwJMTYsCXsweGZmLCAweDEyLCAweDBiLCAweDU4LCAweDhiLCAweDI1LCAweDhhLCAweDI2LCAweDg5LCAweDI3LCAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyfSB9LAoteyAweDAzZWEsCTE2LAl7MHhlZSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhhZiwgMHgwMSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MH0gfSwKLXsgMHgwM2ZhLAkxNiwJezB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MDh9IH0sCi17IDB4MDQwYSwJMTYsCXsweGJhLCAweDhiLCAweDI1LCAweDhhLCAweDI2LCAweDg5LCAweDI3LCAweGVhLCAweDQ5LCAweDYwLCAweDExLCAweGFlLCAweDAyLCAweGVlLCAweDkwLCAweDdmfSB9LAoteyAweDA0MWEsCTE2LAl7MHhkNCwgMHhmMCwgMHhhZiwgMHgwMSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMH0gfSwKLXsgMHgwNDJhLAkxNiwJezB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTJ9IH0sCi17IDB4MDQzYSwJMTYsCXsweDEyLCAweDBlLCAweDFmLCAweDAyLCAweDA1LCAweGEyLCAweDEyLCAweDBlLCAweDJkLCAweDAyLCAweDA1LCAweGEyLCAweDEyLCAweDBhLCAweGY3LCAweDAyfSB9LAoteyAweDA0NGEsCTE2LAl7MHgwNSwgMHhhMiwgMHgxMiwgMHgwZSwgMHgxMSwgMHgwMiwgMHgwNSwgMHhhMiwgMHgxMiwgMHgwZSwgMHg0NiwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhMn0gfSwKLXsgMHgwNDVhLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTJ9IH0sCi17IDB4MDQ2YSwJMTYsCXsweDAwLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDAyLCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwfSB9LAoteyAweDA0N2EsCTE2LAl7MHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHgwNDhhLAkxNiwJezB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTB9IH0sCi17IDB4MDQ5YSwJMTYsCXsweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0fSB9LAoteyAweDA0YWEsCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhM30gfSwKLXsgMHgwNGJhLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDF9IH0sCi17IDB4MDRjYSwJMTYsCXsweGYwLCAweDAyLCAweDA1LCAweGEyLCAweDEyLCAweDBlLCAweDQ4LCAweDQwLCAweDAzLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGU4LCAweGUwfSB9LAoteyAweDA0ZGEsCTE2LAl7MHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNH0gfSwKLXsgMHgwNGVhLAkxNiwJezB4MDEsIDB4MDUsIDB4YzIsIDB4MDAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDV9IH0sCi17IDB4MDRmYSwJMTYsCXsweGEyLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0fSB9LAoteyAweDA1MGEsCTE2LAl7MHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3Zn0gfSwKLXsgMHgwNTFhLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWZ9IH0sCi17IDB4MDUyYSwJMTYsCXsweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDY5LCAweDkwfSB9LAoteyAweDA1M2EsCTE2LAl7MHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg2MCwgMHgxMiwgMHgwZSwgMHg0YSwgMHg1MCwgMHg1YiwgMHg5MCwgMHg3ZiwgMHhlOH0gfSwKLXsgMHgwNTRhLAkxNiwJezB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDR9IH0sCi17IDB4MDU1YSwJMTYsCXsweGQyLCAweDAwLCAweDgwLCAweDQ0LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDNiLCAweDkwLCAweDdmLCAweGVhfSB9LAoteyAweDA1NmEsCTE2LAl7MHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMH0gfSwKLXsgMHgwNTdhLAkxNiwJezB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDF9IH0sCi17IDB4MDU4YSwJMTYsCXsweGYwLCAweDgwLCAweDE1LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDBjLCAweDEyLCAweDAxLCAweDAwLCAweDUwfSB9LAoteyAweDA1OWEsCTE2LAl7MHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMn0gfSwKLXsgMHgwNWFhLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzB9IH0sCi17IDB4MDViYSwJMTYsCXsweGQwLCAweGMwLCAweDAwLCAweGMwLCAweDAxLCAweGMwLCAweDAyLCAweGMwLCAweDAzLCAweGMwLCAweDA2LCAweGMwLCAweDA3LCAweDkwLCAweDdmLCAweGE1fSB9LAoteyAweDA1Y2EsCTE2LAl7MHhlMCwgMHgzMCwgMHhlMiwgMHgwNiwgMHg3NSwgMHgwZCwgMHgwNiwgMHgwMiwgMHgwNiwgMHg3NiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHgyMCwgMHhlMX0gfSwKLXsgMHgwNWRhLAkxNiwJezB4MGMsIDB4ZTUsIDB4MGQsIDB4NjQsIDB4MDIsIDB4NjAsIDB4MDYsIDB4NzUsIDB4MGQsIDB4MDcsIDB4MDIsIDB4MDYsIDB4NzYsIDB4YWYsIDB4MGQsIDB4ZWZ9IH0sCi17IDB4MDVlYSwJMTYsCXsweDI0LCAweGZlLCAweDYwLCAweDQ4LCAweDE0LCAweDYwLCAweDJjLCAweDI0LCAweGZlLCAweDYwLCAweDc3LCAweDI0LCAweDA0LCAweDYwLCAweDAzLCAweDAyfSB9LAoteyAweDA1ZmEsCTE2LAl7MHgwNiwgMHg3NiwgMHhhYiwgMHgwOSwgMHhhYSwgMHgwYSwgMHhhOSwgMHgwYiwgMHhhZiwgMHgwYywgMHgwNSwgMHgwYywgMHg4ZiwgMHg4MiwgMHg3NSwgMHg4M30gfSwKLXsgMHgwNjBhLAkxNiwJezB4MDAsIDB4MTIsIDB4MDgsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4ZTUsIDB4MGMsIDB4NjUsIDB4MDgsIDB4NzAsIDB4NWUsIDB4NzUsIDB4MGR9IH0sCi17IDB4MDYxYSwJMTYsCXsweDA1LCAweDgwLCAweDU5LCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGFiLCAweDA5LCAweGFhLCAweDBhLCAweGE5LCAweDBiLCAweGFlLCAweDBjLCAweDhlfSB9LAoteyAweDA2MmEsCTE2LAl7MHg4MiwgMHg3NSwgMHg4MywgMHgwMCwgMHgxMiwgMHgwOCwgMHg0ZiwgMHg3NSwgMHgwZCwgMHgwMiwgMHg4MCwgMHg0MCwgMHhlNSwgMHgwOCwgMHgyNCwgMHhmZX0gfSwKLXsgMHgwNjNhLAkxNiwJezB4YjUsIDB4MGMsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ZTUsIDB4MDgsIDB4MTQsIDB4YjUsIDB4MGMsIDB4MGF9IH0sCi17IDB4MDY0YSwJMTYsCXsweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweGU0LCAweGY1LCAweDBkLCAweDkwLCAweDdmLCAweGE2LCAweGUwLCAweGFiLCAweDA5fSB9LAoteyAweDA2NWEsCTE2LAl7MHhhYSwgMHgwYSwgMHhhOSwgMHgwYiwgMHhhZSwgMHgwYywgMHg4ZSwgMHg4MiwgMHg3NSwgMHg4MywgMHgwMCwgMHgxMiwgMHgwOCwgMHg0ZiwgMHgwNSwgMHgwY30gfSwKLXsgMHgwNjZhLAkxNiwJezB4ODAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4NTMsIDB4OTEsIDB4ZGYsIDB4ZDB9IH0sCi17IDB4MDY3YSwJMTYsCXsweDA3LCAweGQwLCAweDA2LCAweGQwLCAweDAzLCAweGQwLCAweDAyLCAweGQwLCAweDAxLCAweGQwLCAweDAwLCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwfSB9LAoteyAweDA2OGEsCTEwLAl7MHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwNjk0LAkxNiwJezB4OGMsIDB4MzMsIDB4OGQsIDB4MzQsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4YzAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4ZjUsIDB4MzZ9IH0sCi17IDB4MDZhNCwJMTYsCXsweGMzLCAweGU1LCAweDM2LCAweDk1LCAweDM0LCAweGU1LCAweDM1LCAweDk1LCAweDMzLCAweDUwLCAweDY5LCAweGVmLCAweDI1LCAweDM2LCAweGY1LCAweDgyfSB9LAoteyAweDA2YjQsCTE2LAl7MHhlNSwgMHgzNSwgMHgzZSwgMHhmNSwgMHg4MywgMHg3NCwgMHhmZiwgMHhmMCwgMHhmNCwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHhlZiwgMHgyNSwgMHgzNn0gfSwKLXsgMHgwNmM0LAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4ZWYsIDB4MjUsIDB4MzZ9IH0sCi17IDB4MDZkNCwJMTYsCXsweGY1LCAweDgyLCAweGU1LCAweDM1LCAweDNlLCAweGY1LCAweDgzLCAweDc0LCAweGFhLCAweGYwLCAweDY0LCAweGFhLCAweDYwLCAweDAyLCAweGMzLCAweDIyfSB9LAoteyAweDA2ZTQsCTE2LAl7MHhlZiwgMHgyNSwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNSwgMHgzZSwgMHhmNSwgMHg4MywgMHg3NCwgMHg1NSwgMHhmMCwgMHg2NCwgMHg1NSwgMHg2MH0gfSwKLXsgMHgwNmY0LAkxNiwJezB4MDIsIDB4YzMsIDB4MjIsIDB4YWQsIDB4MzYsIDB4ZTUsIDB4MzYsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZWR9IH0sCi17IDB4MDcwNCwJMTYsCXsweGYwLCAweGZjLCAweGFjLCAweDA1LCAweGVkLCAweDZjLCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweDA1LCAweDM2LCAweGU1LCAweDM2LCAweDcwLCAweDAyfSB9LAoteyAweDA3MTQsCTE2LAl7MHgwNSwgMHgzNSwgMHg4MCwgMHg4YywgMHhlNCwgMHhmNSwgMHgzNSwgMHhmNSwgMHgzNiwgMHhjMywgMHhlNSwgMHgzNiwgMHg5NSwgMHgzNCwgMHhlNSwgMHgzNX0gfSwKLXsgMHgwNzI0LAkxNiwJezB4OTUsIDB4MzMsIDB4NTAsIDB4MjcsIDB4ZWYsIDB4MjUsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjV9IH0sCi17IDB4MDczNCwJMTYsCXsweDM2LCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweGVmLCAweDI1LCAweDM2LCAweGY1LCAweDgyLCAweGU1LCAweDM1LCAweDNlLCAweGY1LCAweDgzLCAweGU0fSB9LAoteyAweDA3NDQsCTEzLAl7MHhmMCwgMHgwNSwgMHgzNiwgMHhlNSwgMHgzNiwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzNSwgMHg4MCwgMHhjZSwgMHhkMywgMHgyMn0gfSwKLXsgMHgwNzUxLAkxNiwJezB4YzIsIDB4MDQsIDB4ZDIsIDB4MDUsIDB4YzIsIDB4MDMsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDIsIDB4YzIsIDB4MDEsIDB4MTIsIDB4MGUsIDB4M2QsIDB4ZDJ9IH0sCi17IDB4MDc2MSwJMTYsCXsweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLCAweDdmfSB9LAoteyAweDA3NzEsCTE2LAl7MHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MywgMHg3NH0gfSwKLXsgMHgwNzgxLAkxNiwJezB4MzAsIDB4ZjAsIDB4MTIsIDB4MGEsIDB4MTksIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTB9IH0sCi17IDB4MDc5MSwJMTYsCXsweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweDEyLCAweDBlLCAweDM1LCAweDIwLCAweDAxLCAweDQyLCAweDc1LCAweDI0LCAweDAwLCAweDc1LCAweDIzfSB9LAoteyAweDA3YTEsCTE2LAl7MHgwMCwgMHg3NSwgMHgyMiwgMHgwMCwgMHg3NSwgMHgyMSwgMHgwMCwgMHg3ZiwgMHg0OCwgMHg3ZSwgMHg5MiwgMHg3ZCwgMHgwMCwgMHg3YywgMHgwMCwgMHhhYn0gfSwKLXsgMHgwN2IxLAkxNiwJezB4MjQsIDB4YWEsIDB4MjMsIDB4YTksIDB4MjIsIDB4YTgsIDB4MjEsIDB4YzMsIDB4MTIsIDB4MDgsIDB4YTksIDB4NTAsIDB4ZGIsIDB4MjAsIDB4MDEsIDB4ZDh9IH0sCi17IDB4MDdjMSwJMTYsCXsweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDc4LCAweDAwLCAweGU1LCAweDI0LCAweDI0LCAweDAxLCAweGY1LCAweDI0LCAweGVhLCAweDM1LCAweDIzLCAweGY1fSB9LAoteyAweDA3ZDEsCTE2LAl7MHgyMywgMHhlOSwgMHgzNSwgMHgyMiwgMHhmNSwgMHgyMiwgMHhlOCwgMHgzNSwgMHgyMSwgMHhmNSwgMHgyMSwgMHg4MCwgMHhjYSwgMHgzMCwgMHgwMSwgMHgwNX0gfSwKLXsgMHgwN2UxLAkxNiwJezB4MTIsIDB4MDMsIDB4N2EsIDB4YzIsIDB4MDEsIDB4MzAsIDB4MDQsIDB4MWEsIDB4MTIsIDB4MGUsIDB4NDAsIDB4NTAsIDB4MTMsIDB4MTIsIDB4MDksIDB4MDB9IH0sCi17IDB4MDdmMSwJMTYsCXsweDMwLCAweDAwLCAweDA3LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLCAweGU3LCAweGYzLCAweDEyLCAweDBkLCAweDRhLCAweDEyLCAweDBlLCAweDQyfSB9LAoteyAweDA4MDEsCTgsCXsweGMyLCAweDAzLCAweDEyLCAweDA4LCAweGZmLCAweDgwLCAweGQ2LCAweDIyfSB9LAoteyAweDA4MDksCTE2LAl7MHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMn0gfSwKLXsgMHgwODE5LAk5LAl7MHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKLXsgMHgwODIyLAkxNiwJezB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTB9IH0sCi17IDB4MDgzMiwJMTYsCXsweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyfSB9LAoteyAweDA4NDIsCTEzLAl7MHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMn0gfSwKLXsgMHgwODRmLAkxNiwJezB4ZjgsIDB4YmIsIDB4MDEsIDB4MGQsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTgsIDB4ZjB9IH0sCi17IDB4MDg1ZiwJMTYsCXsweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGM4LCAweGY2LCAweDIyLCAweGJiLCAweGZlLCAweDA1LCAweGU5LCAweDI1LCAweDgyLCAweGM4fSB9LAoteyAweDA4NmYsCTIsCXsweGYyLCAweDIyfSB9LAoteyAweDA4NzEsCTE2LAl7MHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHhmMH0gfSwKLXsgMHgwODgxLAkxNiwJezB4YTMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDksIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ODYsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmV9IH0sCi17IDB4MDg5MSwJMTYsCXsweDBhLCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweGY1LCAweGYwLCAweDA4LCAweGUyLCAweDIyLCAweGU1LCAweDgzLCAweDJhLCAweGY1LCAweDgzfSB9LAoteyAweDA4YTEsCTgsCXsweGU5LCAweDkzLCAweGY1LCAweGYwLCAweGEzLCAweGU5LCAweDkzLCAweDIyfSB9LAoteyAweDA4YTksCTE2LAl7MHhlYiwgMHg5ZiwgMHhmNSwgMHhmMCwgMHhlYSwgMHg5ZSwgMHg0MiwgMHhmMCwgMHhlOSwgMHg5ZCwgMHg0MiwgMHhmMCwgMHhlOCwgMHg5YywgMHg0NSwgMHhmMH0gfSwKLXsgMHgwOGI5LAkxLAl7MHgyMn0gfSwKLXsgMHgwOGJhLAkyLAl7MHg4ZiwgMHgyOH0gfSwKLXsgMHgwOGJjLAkxNiwJezB4ZTQsIDB4ZjUsIDB4MjksIDB4NzUsIDB4MmEsIDB4ZmYsIDB4NzUsIDB4MmIsIDB4MTEsIDB4NzUsIDB4MmMsIDB4MzIsIDB4YWIsIDB4MmEsIDB4YWEsIDB4MmJ9IH0sCi17IDB4MDhjYywJMTYsCXsweGE5LCAweDJjLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDA4LCAweDIyLCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDI5LCAweDA1LCAweDI5LCAweGVmfSB9LAoteyAweDA4ZGMsCTE2LAl7MHhiNSwgMHgyOCwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwOCwgMHgwOSwgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NX0gfSwKLXsgMHgwOGVjLAkxNCwJezB4MmEsIDB4ZmYsIDB4ZjUsIDB4MmIsIDB4ODksIDB4MmMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDB9IH0sCi17IDB4MDhmYSwJMSwJezB4MjJ9IH0sCi17IDB4MDhmYiwJNCwJezB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9IH0sCi17IDB4MDhmZiwJMSwJezB4MjJ9IH0sCi17IDB4MDkwMCwJOSwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4NzR9IH0sCi17IDB4MDk3ZCwJMTYsCXsweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyfSB9LAoteyAweDA5OGQsCTEyLAl7MHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzOSwgMHgwMiwgMHgwOSwgMHhkNH0gfSwKLXsgMHgwOTk5LAkxNiwJezB4MDIsIDB4MDcsIDB4NTEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjJ9IH0sCi17IDB4MDlhOSwJMTYsCXsweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzfSB9LAoteyAweDA5YjksCTE2LAl7MHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZn0gfSwKLXsgMHgwOWM5LAkxNiwJezB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MGQsIDB4ZWMsIDB4ZTQsIDB4N2V9IH0sCi17IDB4MDlkOSwJMTYsCXsweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzfSB9LAoteyAweDA5ZTksCTE2LAl7MHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhM30gfSwKLXsgMHgwOWY5LAkxNiwJezB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2F9IH0sCi17IDB4MGEwOSwJMTYsCXsweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlfSB9LAoteyAweDBhMTksCTE2LAl7MHhlNCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHg3ZiwgMHgwYSwgMHhmZSwgMHgxMiwgMHgwZCwgMHg5NCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHg4OX0gfSwKLXsgMHgwYTI5LAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4Y2YsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MGQsIDB4OTQsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGEzOSwJMTYsCXsweDk2LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDBkLCAweDk0LCAweDdmLCAweDA1LCAweDdlLCAweDAwfSB9LAoteyAweDBhNDksCTE2LAl7MHgxMiwgMHgwZCwgMHg5NCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg3ZiwgMHgwNX0gfSwKLXsgMHgwYTU5LAkxNiwJezB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4OTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDB9IH0sCi17IDB4MGE2OSwJMTYsCXsweDEyLCAweDBkLCAweDk0LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDdmLCAweDMyLCAweDdlLCAweDAwLCAweDEyLCAweDBkfSB9LAoteyAweDBhNzksCTE2LAl7MHg5NCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgzMiwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHg5NCwgMHgyMn0gfSwKLXsgMHgwYTg5LAkxNiwJezB4NzUsIDB4MzIsIDB4MDEsIDB4ZTUsIDB4MzIsIDB4NjAsIDB4MWIsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MGQsIDB4ZDcsIDB4N2YsIDB4MDAsIDB4N2UsIDB4MGV9IH0sCi17IDB4MGE5OSwJMTYsCXsweDdkLCAweDAwLCAweDdjLCAweDAxLCAweDEyLCAweDA2LCAweDk0LCAweGU0LCAweDMzLCAweGY1LCAweDMyLCAweDcwLCAweDA1LCAweDdmLCAweDBmLCAweDEyfSB9LAoteyAweDBhYTksCTE2LAl7MHgwZCwgMHhkNywgMHhlNSwgMHgzMiwgMHg2MCwgMHgxYiwgMHg3ZiwgMHgwMiwgMHgxMiwgMHgwZCwgMHhkNywgMHg3ZiwgMHgwMCwgMHg3ZSwgMHg4MCwgMHg3ZH0gfSwKLXsgMHgwYWI5LAkxNiwJezB4MDAsIDB4N2MsIDB4ODAsIDB4MTIsIDB4MDYsIDB4OTQsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4NzAsIDB4MDUsIDB4N2YsIDB4MGYsIDB4MTIsIDB4MGR9IH0sCi17IDB4MGFjOSwJMTYsCXsweGQ3LCAweGU1LCAweDMyLCAweDYwLCAweDFiLCAweDdmLCAweDAzLCAweDEyLCAweDBkLCAweGQ3LCAweDdmLCAweDAwLCAweDdlLCAweDIwLCAweDdkLCAweDQwfSB9LAoteyAweDBhZDksCTE2LAl7MHg3YywgMHg1YiwgMHgxMiwgMHgwNiwgMHg5NCwgMHhlNCwgMHgzMywgMHhmNSwgMHgzMiwgMHg3MCwgMHgwNSwgMHg3ZiwgMHgwZiwgMHgxMiwgMHgwZCwgMHhkN30gfSwKLXsgMHgwYWU5LAkxNCwJezB4ZTUsIDB4MzIsIDB4NjAsIDB4MDUsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MGQsIDB4ZDcsIDB4ZTUsIDB4MzIsIDB4MjQsIDB4ZmYsIDB4MjJ9IH0sCi17IDB4MGFmNywJOCwJezB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MTAsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MGFmZiwJMSwJezB4MzJ9IH0sCi17IDB4MGIwMCwJMTYsCXsweDAyLCAweDBkLCAweDY0LCAweDAwLCAweDAyLCAweDBkLCAweGFiLCAweDAwLCAweDAyLCAweDBkLCAweDJmLCAweDAwLCAweDAyLCAweDBkLCAweDdjLCAweDAwfSB9LAoteyAweDBiMTAsCTE2LAl7MHgwMiwgMHgwZCwgMHhjMSwgMHgwMCwgMHgwMiwgMHgwYSwgMHhmZiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg0YywgMHgwMCwgMHgwMiwgMHgwZSwgMHg0ZCwgMHgwMH0gfSwKLXsgMHgwYjIwLAkxNiwJezB4MDIsIDB4MGUsIDB4NGUsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NGYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTAsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTEsIDB4MDB9IH0sCi17IDB4MGIzMCwJMTYsCXsweDAyLCAweDBlLCAweDUyLCAweDAwLCAweDAyLCAweDBlLCAweDUzLCAweDAwLCAweDAyLCAweDBlLCAweDU0LCAweDAwLCAweDAyLCAweDBlLCAweDU1LCAweDAwfSB9LAoteyAweDBiNDAsCTE2LAl7MHgwMiwgMHgwZSwgMHg1NiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1NywgMHgwMCwgMHgwMiwgMHgwZSwgMHg1OCwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1OSwgMHgwMH0gfSwKLXsgMHgwYjUwLAk4LAl7MHgwMiwgMHgwZSwgMHg1YSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1YiwgMHgwMH0gfSwKLXsgMHgwYjU4LAkxNiwJezB4ZTQsIDB4ZmUsIDB4NzUsIDB4MmEsIDB4ZmYsIDB4NzUsIDB4MmIsIDB4MTEsIDB4NzUsIDB4MmMsIDB4MTIsIDB4YWIsIDB4MmEsIDB4YWEsIDB4MmIsIDB4YTl9IH0sCi17IDB4MGI2OCwJMTYsCXsweDJjLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDA4LCAweDIyLCAweDY0LCAweDAyLCAweDcwLCAweDJkLCAweGFkLCAweDA2LCAweDBlLCAweGVkLCAweGI1fSB9LAoteyAweDBiNzgsCTE2LAl7MHgwNywgMHgwMSwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwgMHgwOCwgMHg3MSwgMHg4NSwgMHhmMCwgMHgyOCwgMHhmNSwgMHgyOSwgMHg2MiwgMHgyOH0gfSwKLXsgMHgwYjg4LAkxNiwJezB4ZTUsIDB4MjgsIDB4NjIsIDB4MjksIDB4ZTUsIDB4MjksIDB4NjIsIDB4MjgsIDB4MjksIDB4ZmQsIDB4ZTUsIDB4MjgsIDB4M2EsIDB4YTksIDB4MDUsIDB4NzV9IH0sCi17IDB4MGI5OCwJMTQsCXsweDJhLCAweGZmLCAweGY1LCAweDJiLCAweDg5LCAweDJjLCAweDgwLCAweGMzLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwfSB9LAoteyAweDBiYTYsCTEsCXsweDIyfSB9LAoteyAweDBiYTcsCTE2LAl7MHhhYiwgMHgwNywgMHhhYSwgMHgwNiwgMHhhYywgMHgwNSwgMHhlNCwgMHhmZCwgMHhlNSwgMHgxMSwgMHg2MCwgMHgxMSwgMHhlYSwgMHhmZiwgMHhhZSwgMHgwNX0gfSwKLXsgMHgwYmI3LAkxNiwJezB4MGQsIDB4ZWUsIDB4MjQsIDB4MTAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZWIsIDB4YWUsIDB4MDV9IH0sCi17IDB4MGJjNywJMTYsCXsweDBkLCAweDc0LCAweDEwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGViLCAweGYwLCAweGFmLCAweDA1LCAweDBkfSB9LAoteyAweDBiZDcsCTE2LAl7MHg3NCwgMHgxMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHhhZiwgMHgwZiwgMHg3YSwgMHgwZn0gfSwKLXsgMHgwYmU3LAkxMywJezB4N2IsIDB4MTAsIDB4MTIsIDB4MGQsIDB4MTAsIDB4N2YsIDB4MGEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4OTQsIDB4MjJ9IH0sCi17IDB4MGJmNCwJMTYsCXsweDhlLCAweDMyLCAweDhmLCAweDMzLCAweDhkLCAweDM0LCAweDhhLCAweDM1LCAweDhiLCAweDM2LCAweGU0LCAweGZkLCAweGY1LCAweDM3LCAweGU1LCAweDExfSB9LAoteyAweDBjMDQsCTE2LAl7MHg2MCwgMHgxMiwgMHhlNSwgMHgzMiwgMHhmZiwgMHhhZSwgMHgwNSwgMHgwZCwgMHhlZSwgMHgyNCwgMHgxMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZn0gfSwKLXsgMHgwYzE0LAkxNiwJezB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MzMsIDB4YWUsIDB4MDUsIDB4MGQsIDB4NzQsIDB4MTMsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzR9IH0sCi17IDB4MGMyNCwJMTYsCXsweDBmLCAweGY1LCAweDgzLCAweGU1LCAweDMzLCAweGYwLCAweGFmLCAweDBmLCAweDdhLCAweDBmLCAweDdiLCAweDEzLCAweDEyLCAweDBkLCAweDEwLCAweGFmfSB9LAoteyAweDBjMzQsCTExLAl7MHgwZiwgMHhhZCwgMHgzNCwgMHhhYiwgMHgzNiwgMHhhYSwgMHgzNSwgMHgxMiwgMHgwYywgMHhmMSwgMHgyMn0gfSwKLXsgMHgwYzNmLAkxNiwJezB4OGUsIDB4MzIsIDB4OGYsIDB4MzMsIDB4OGQsIDB4MzQsIDB4OGEsIDB4MzUsIDB4OGIsIDB4MzYsIDB4ZTQsIDB4ZjUsIDB4MzcsIDB4ZTUsIDB4MzcsIDB4YzN9IH0sCi17IDB4MGM0ZiwJMTYsCXsweDk1LCAweDM0LCAweDUwLCAweDIwLCAweDA1LCAweDMzLCAweGU1LCAweDMzLCAweGFlLCAweDMyLCAweDcwLCAweDAyLCAweDA1LCAweDMyLCAweDE0LCAweGZmfSB9LAoteyAweDBjNWYsCTE2LAl7MHhlNSwgMHgzNiwgMHgyNSwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgzNSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZCwgMHgxMiwgMHgwYiwgMHhhN30gfSwKLXsgMHgwYzZmLAk1LAl7MHgwNSwgMHgzNywgMHg4MCwgMHhkOSwgMHgyMn0gfSwKLXsgMHgwYzc0LAkxNiwJezB4YTksIDB4MDcsIDB4ZTUsIDB4MGQsIDB4NzAsIDB4MjUsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTksIDB4MjUsIDB4ZTB9IH0sCi17IDB4MGM4NCwJMTYsCXsweDQ0LCAweDAxLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDhkLCAweDA4LCAweGFmLCAweDAzLCAweGE5LCAweDA3LCAweDc1LCAweDA5LCAweDAxLCAweDhhfSB9LAoteyAweDBjOTQsCTEzLAl7MHgwYSwgMHg4OSwgMHgwYiwgMHhlNCwgMHhmNSwgMHgwYywgMHg3NSwgMHgwZCwgMHgwMywgMHhkMywgMHgyMiwgMHhjMywgMHgyMn0gfSwKLXsgMHgwY2ExLAkxNiwJezB4YTksIDB4MDcsIDB4ZTUsIDB4MGQsIDB4NzAsIDB4MjMsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTksIDB4MjUsIDB4ZTB9IH0sCi17IDB4MGNiMSwJMTYsCXsweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDhkLCAweDA4LCAweGFmLCAweDAzLCAweGE5LCAweDA3LCAweDc1LCAweDA5LCAweDAxLCAweDhhLCAweDBhLCAweDg5fSB9LAoteyAweDBjYzEsCTExLAl7MHgwYiwgMHhlNCwgMHhmNSwgMHgwYywgMHg3NSwgMHgwZCwgMHgwMSwgMHhkMywgMHgyMiwgMHhjMywgMHgyMn0gfSwKLXsgMHgwY2NjLAkxNiwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MDYsIDB4MDQsIDB4ZTAsIDB4NDR9IH0sCi17IDB4MGNkYywJMTYsCXsweDAyLCAweGYwLCAweDdmLCAweGQwLCAweDdlLCAweDA3LCAweDEyLCAweDBkLCAweDk0LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwfSB9LAoteyAweDBjZWMsCTUsCXsweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyfSB9LAoteyAweDBjZjEsCTE2LAl7MHgxMiwgMHgwYywgMHg3NCwgMHhlNSwgMHgwZCwgMHgyNCwgMHhmYSwgMHg2MCwgMHgxMCwgMHgxNCwgMHg2MCwgMHgwNywgMHgyNCwgMHgwNywgMHg3MCwgMHhmM30gfSwKLXsgMHgwZDAxLAkxNSwJezB4N2YsIDB4MDgsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDcsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDYsIDB4MjJ9IH0sCi17IDB4MGQxMCwJMTYsCXsweDEyLCAweDBjLCAweGExLCAweGU1LCAweDBkLCAweDI0LCAweGZhLCAweDYwLCAweDEwLCAweDE0LCAweDYwLCAweDA3LCAweDI0LCAweDA3LCAweDcwLCAweGYzfSB9LAoteyAweDBkMjAsCTE1LAl7MHg3ZiwgMHgwOCwgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNywgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNiwgMHgyMn0gfSwKLXsgMHgwZDJmLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGQzZiwJMTEsCXsweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkNGEsCTE2LAl7MHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgxMiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgxNCwgMHg3ZSwgMHgwMCwgMHgxMn0gfSwKLXsgMHgwZDVhLAkxMCwJezB4MGQsIDB4OTQsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4MGQ2NCwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGQyLCAweDAxLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxfSB9LAoteyAweDBkNzQsCTgsCXsweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkN2MsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhkMiwgMHgwMywgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOH0gfSwKLXsgMHgwZDhjLAk4LAl7MHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZDk0LAkxNiwJezB4OGUsIDB4MzgsIDB4OGYsIDB4MzksIDB4ZTUsIDB4MzksIDB4MTUsIDB4MzksIDB4YWUsIDB4MzgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MzgsIDB4NGUsIDB4NjB9IH0sCi17IDB4MGRhNCwJNywJezB4MDUsIDB4MTIsIDB4MGUsIDB4MDAsIDB4ODAsIDB4ZWUsIDB4MjJ9IH0sCi17IDB4MGRhYiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAyLCAweGYwLCAweGQwfSB9LAoteyAweDBkYmIsCTYsCXsweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkYzEsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgxMCwgMHhmMCwgMHhkMH0gfSwKLXsgMHgwZGQxLAk2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZGQ3LAkxNiwJezB4YWUsIDB4MDcsIDB4N2YsIDB4MjEsIDB4N2QsIDB4MDEsIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4YWIsIDB4ODJ9IH0sCi17IDB4MGRlNywJNSwJezB4ZmEsIDB4MTIsIDB4MGQsIDB4MTAsIDB4MjJ9IH0sCi17IDB4MGRlYywJMTYsCXsweDUwLCAweDBmLCAweDAwLCAweGMwLCAweGY5LCAweGE0LCAweGIwLCAweDk5LCAweDkyLCAweDgyLCAweGY4LCAweDgwLCAweDk4LCAweDg4LCAweDgzLCAweGM2fSB9LAoteyAweDBkZmMsCTMsCXsweGExLCAweDg2LCAweDhlfSB9LAoteyAweDBkZmYsCTEsCXsweDAwfSB9LAoteyAweDBlMDAsCTE2LAl7MHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOX0gfSwKLXsgMHgwZTEwLAkxLAl7MHgyMn0gfSwKLXsgMHgwZTExLAkxNCwJezB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MGUxZiwJMTQsCXsweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDBlLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweGQzLCAweDIyfSB9LAoteyAweDBlMmQsCTgsCXsweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDBlLCAweGQzLCAweDIyfSB9LAoteyAweDBlMzUsCTgsCXsweGU0LCAweGY1LCAweDBkLCAweGQyLCAweGU5LCAweGQyLCAweGFmLCAweDIyfSB9LAoteyAweDBlM2QsCTMsCXsweGQyLCAweDAwLCAweDIyfSB9LAoteyAweDBlNDAsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlNDIsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlNDQsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlNDYsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlNDgsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlNGEsCTIsCXsweGQzLCAweDIyfSB9LAoteyAweDBlNGMsCTEsCXsweDMyfSB9LAoteyAweDBlNGQsCTEsCXsweDMyfSB9LAoteyAweDBlNGUsCTEsCXsweDMyfSB9LAoteyAweDBlNGYsCTEsCXsweDMyfSB9LAoteyAweDBlNTAsCTEsCXsweDMyfSB9LAoteyAweDBlNTEsCTEsCXsweDMyfSB9LAoteyAweDBlNTIsCTEsCXsweDMyfSB9LAoteyAweDBlNTMsCTEsCXsweDMyfSB9LAoteyAweDBlNTQsCTEsCXsweDMyfSB9LAoteyAweDBlNTUsCTEsCXsweDMyfSB9LAoteyAweDBlNTYsCTEsCXsweDMyfSB9LAoteyAweDBlNTcsCTEsCXsweDMyfSB9LAoteyAweDBlNTgsCTEsCXsweDMyfSB9LAoteyAweDBlNTksCTEsCXsweDMyfSB9LAoteyAweDBlNWEsCTEsCXsweDMyfSB9LAoteyAweDBlNWIsCTEsCXsweDMyfSB9LAoteyAweDExMDAsCTE2LAl7MHgxMiwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NywgMHgwNSwgMHgxMCwgMHgyNywgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMn0gfSwKLXsgMHgxMTEwLAkxNiwJezB4MDAsIDB4MDEsIDB4MDksIDB4MDIsIDB4MjAsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDMsIDB4YTAsIDB4MDAsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDJ9IH0sCi17IDB4MTEyMCwJMTYsCXsweGZmLCAweDAwLCAweDAwLCAweDA0LCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwfSB9LAoteyAweDExMzAsCTE2LAl7MHgwMCwgMHgwMCwgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHgyNiwgMHgwMywgMHg0MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHg2OCwgMHgwMH0gfSwKLXsgMHgxMTQwLAkxNiwJezB4NmYsIDB4MDAsIDB4NzIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDMsIDB4MDAsIDB4NjgsIDB4MDAsIDB4NjksIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzMsIDB4MDB9IH0sCi17IDB4MTE1MCwJMTYsCXsweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDYzLCAweDAwLCAweDJlLCAweDAwLCAweDI4LCAweDAzLCAweDQ2LCAweDAwfSB9LAoteyAweDExNjAsCTE2LAl7MHg2OSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2ZCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2NSwgMHgwMCwgMHgyMCwgMHgwMH0gfSwKLXsgMHgxMTcwLAkxNiwJezB4NDYsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NTcsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NzIsIDB4MDB9IH0sCi17IDB4MTE4MCwJMTYsCXsweDZiLCAweDAwLCAweDczLCAweDAwLCAweDJhLCAweDAzLCAweDQzLCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDY2LCAweDAwLCAweDY5LCAweDAwfSB9LAoteyAweDExOTAsCTE2LAl7MHg2NywgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMH0gfSwKLXsgMHgxMWEwLAkxNiwJezB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjcsIDB4MDAsIDB4MjIsIDB4MDN9IH0sCi17IDB4MTFiMCwJMTYsCXsweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY2LCAweDAwLCAweDYxLCAweDAwLCAweDYzLCAweDAwfSB9LAoteyAweDExYzAsCTE2LAl7MHg2NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NywgMHgwMH0gfSwKLXsgMHgxMWQwLAkyLAl7MHgwMCwgMHgwMH0gfSwKLXsgMHhmZmZmLAkwLAl7MHgwMH0gfQotfTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3hpcmNvbV9wZ3NfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC94aXJjb21fcGdzX2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmZjc0YTYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3hpcmNvbV9wZ3NfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0vKgotICogVVNCIFhpcmNvbSBQR1MgRmlybXdhcmUKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAgQnJpYW4gV2FybmVyICAgICAgICA8d2FybmVyQGxvdGhhci5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDEgQ3Jpc3RpYW4gTS4gQ3JhY2l1bmVzY3UJPGNyaXN0aUBkbnQucm8+Ci0gKgotICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIEdlbmVyYXRlZCBmcm9tIHhpcmNvbV9wZ3MuUyBieSBlenVzYl9jb252ZXJ0X3gucGwKLSAqLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgeGlyY29tX3Bnc19maXJtd2FyZVtdID0gewoteyAweDAwMDAsCTMsCXsweDAyLCAweDAyLCAweDAwfSB9LAoteyAweDAwMjMsCTQsCXsweDAyLCAweDA1LCAweDliLCAweDAwfSB9LAoteyAweDAwMzAsCTUsCXsweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfSB9LAoteyAweDAwNDMsCTQsCXsweDAyLCAweDAxLCAweDAwLCAweDAwfSB9LAoteyAweDAxMDAsCTE2LAl7MHgwMiwgMHgwMiwgMHhiYSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMH0gfSwKLXsgMHgwMTEwLAkxNiwJezB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDB9IH0sCi17IDB4MDEyMCwJMTYsCXsweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDA0LCAweDg1LCAweDAwLCAweDAyLCAweDA0LCAweGI5LCAweDAwfSB9LAoteyAweDAyMDAsCTE2LAl7MHg3NSwgMHg4MSwgMHg1ZSwgMHhlNCwgMHhmNSwgMHgzMiwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMCwgMHhmNSwgMHgzMSwgMHhmNSwgMHgzNCwgMHhjMiwgMHgwMH0gfSwKLXsgMHgwMjEwLAkxNiwJezB4YzIsIDB4MDEsIDB4YTksIDB4MDAsIDB4NzQsIDB4ZmUsIDB4OTAsIDB4MTAsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZDksIDB4ZmMsIDB4NzQsIDB4ZmQsIDB4OTB9IH0sCi17IDB4MDIyMCwJMTYsCXsweDExLCAweDAwLCAweGYwLCAweGEzLCAweGQ5LCAweGZjLCAweDkwLCAweDdmLCAweDk0LCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0fSB9LAoteyAweDAyMzAsCTE2LAl7MHhlZiwgMHhmMCwgMHg3NCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHg3NCwgMHg0MH0gfSwKLXsgMHgwMjQwLAkxNiwJezB4OTAsIDB4N2YsIDB4OWQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4NzQsIDB4ODIsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZjB9IH0sCi17IDB4MDI1MCwJMTYsCXsweDkwLCAweDdmLCAweDk1LCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDdmLCAweGFmLCAweGUwLCAweGQyLCAweGUwLCAweGYwLCAweDc0LCAweDAxLCAweDkwfSB9LAoteyAweDAyNjAsCTE2LAl7MHg3ZiwgMHhhYiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHg3NCwgMHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZH0gfSwKLXsgMHgwMjcwLAkxNiwJezB4NzQsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4NzQsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YWYsIDB4ZjAsIDB4NzQsIDB4MjAsIDB4OTB9IH0sCi17IDB4MDI4MCwJMTYsCXsweDdmLCAweDljLCAweGYwLCAweDc0LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDc0LCAweDUzLCAweGY1LCAweDk4LCAweDc1LCAweGM4LCAweDMwfSB9LAoteyAweDAyOTAsCTE2LAl7MHg3YiwgMHgwNSwgMHg5MSwgMHg0NCwgMHhkMiwgMHhjYSwgMHg3NSwgMHg5OCwgMHg1MCwgMHhkMiwgMHhlOCwgMHhkMiwgMHhhZiwgMHhkMiwgMHhhYywgMHg3NH0gfSwKLXsgMHgwMmEwLAkxNiwJezB4MDAsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4NzksIDB4MmUsIDB4N2EsIDB4MDAsIDB4N2IsIDB4MDAsIDB4ZGJ9IH0sCi17IDB4MDJiMCwJMTYsCXsweGZlLCAweGRhLCAweGZhLCAweGQ5LCAweGY2LCAweDc0LCAweDA2LCAweGYwLCAweDgwLCAweGZlLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzfSB9LAoteyAweDAyYzAsCTE2LAl7MHhjMCwgMHg4NCwgMHhjMCwgMHg4NSwgMHhjMCwgMHhlMCwgMHhlNSwgMHg5MSwgMHhjMiwgMHhlNCwgMHhmNSwgMHg5MSwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NH0gfSwKLXsgMHgwMmQwLAkxNiwJezB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4YTMsIDB4ZTAsIDB4ZmIsIDB4YTMsIDB4ZTAsIDB4ZmN9IH0sCi17IDB4MDJlMCwJMTYsCXsweGU5LCAweDU0LCAweDYwLCAweGI0LCAweDAwLCAweDAzLCAweDAyLCAweDAzLCAweDVkLCAweGI0LCAweDQwLCAweDZlLCAweGJhLCAweDAwLCAweDBiLCAweDEyfSB9LAoteyAweDAyZjAsCTE2LAl7MHgwNCwgMHg0NCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNCwgMHgyNiwgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYSwgMHgwMSwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZX0gfSwKLXsgMHgwMzAwLAkxNiwJezB4YmEsIDB4MDIsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmEsIDB4MDMsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NjgsIDB4YmEsIDB4MDQsIDB4MWUsIDB4YmJ9IH0sCi17IDB4MDMxMCwJMTYsCXsweDAwLCAweDBhLCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDAyLCAweDA0LCAweDI2LCAweDkwLCAweDdmLCAweDk4LCAweGUwfSB9LAoteyAweDAzMjAsCTE2LAl7MHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyNiwgMHhiYSwgMHgwNSwgMHgwM30gfSwKLXsgMHgwMzMwLAkxNiwJezB4MDIsIDB4MDQsIDB4MmUsIDB4YmEsIDB4MDYsIDB4MTksIDB4YmIsIDB4MDAsIDB4MDgsIDB4ZTUsIDB4MzMsIDB4ZDMsIDB4OTUsIDB4MzIsIDB4MDIsIDB4MDR9IH0sCi17IDB4MDM0MCwJMTYsCXsweDAyLCAweGJiLCAweDAxLCAweDA4LCAweGU1LCAweDMyLCAweGMzLCAweDk1LCAweDMzLCAweDAyLCAweDA0LCAweDAyLCAweDAyLCAweDA0LCAweDJlLCAweGJhfSB9LAoteyAweDAzNTAsCTE2LAl7MHgwNywgMHgwNSwgMHg4YiwgMHgzNCwgMHgwMiwgMHgwNCwgMHgyNiwgMHgwMiwgMHgwNCwgMHgyZSwgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYSwgMHgwMCwgMHgyMH0gfSwKLXsgMHgwMzYwLAkxNiwJezB4YjksIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjB9IH0sCi17IDB4MDM3MCwJMTYsCXsweDAyLCAweDA0LCAweDI2LCAweGI5LCAweDgyLCAweDAyLCAweDgwLCAweGViLCAweGI5LCAweDgxLCAweDAyLCAweDgwLCAweGU2LCAweDAyLCAweDA0LCAweDJlfSB9LAoteyAweDAzODAsCTE2LAl7MHhiYSwgMHgwMSwgMHgwZiwgMHhiYiwgMHgwMCwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYiwgMHgwMSwgMHgwMywgMHgwMiwgMHgwNCwgMHgyNiwgMHgwMn0gfSwKLXsgMHgwMzkwLAkxNiwJezB4MDQsIDB4MmUsIDB4YmEsIDB4MDMsIDB4MGYsIDB4YmIsIDB4MDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmIsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDR9IH0sCi17IDB4MDNhMCwJMTYsCXsweDI2LCAweDAyLCAweDA0LCAweDJlLCAweGJhLCAweDA2LCAweDU2LCAweGJjLCAweDAxLCAweDBmLCAweDkwLCAweDdmLCAweGQ0LCAweDc0LCAweDA2LCAweGYwfSB9LAoteyAweDAzYjAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhkNSwgMHg3NCwgMHg1YSwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyNiwgMHhiYywgMHgwMiwgMHgxMiwgMHhiYiwgMHgwMCwgMHg2ZiwgMHg5MH0gfSwKLXsgMHgwM2MwLAkxNiwJezB4N2YsIDB4ZDQsIDB4NzQsIDB4MDYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4NzQsIDB4NmMsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4YmMsIDB4MDN9IH0sCi17IDB4MDNkMCwJMTYsCXsweDI5LCAweDc0LCAweDA0LCAweGMzLCAweDliLCAweDQwLCAweDU3LCAweDYwLCAweDU1LCAweGViLCAweDJiLCAweDkwLCAweDA2LCAweDhjLCAweDI1LCAweDgyfSB9LAoteyAweDAzZTAsCTE2LAl7MHhmNSwgMHg4MiwgMHg3NCwgMHgwMCwgMHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHhmOSwgMHhhMywgMHhlMCwgMHhmYSwgMHg5MCwgMHg3ZiwgMHhkNH0gfSwKLXsgMHgwM2YwLAkxNiwJezB4ZTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZWEsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmEsIDB4MDgsIDB4MGZ9IH0sCi17IDB4MDQwMCwJMTYsCXsweDc0LCAweDAxLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweDc0LCAweDAxLCAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDAyLCAweDA0LCAweDI2LCAweGJhfSB9LAoteyAweDA0MTAsCTE2LAl7MHgwOSwgMHgwMywgMHgwMiwgMHgwNCwgMHgyNiwgMHhiYSwgMHgwYSwgMHgwNSwgMHg3NCwgMHgwMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHhiYSwgMHgwYiwgMHgwM30gfSwKLXsgMHgwNDIwLAkxNiwJezB4MDIsIDB4MDQsIDB4MjYsIDB4MDIsIDB4MDQsIDB4MmUsIDB4OTAsIDB4N2YsIDB4YjQsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MDksIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDQzMCwJMTYsCXsweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDAwLCAweGQwLCAweGUwLCAweGQwLCAweDg1LCAweGQwLCAweDg0LCAweGQwLCAweDgzLCAweGQwfSB9LAoteyAweDA0NDAsCTE2LAl7MHg4MiwgMHhkMCwgMHg4NiwgMHgzMiwgMHhlYiwgMHgyMCwgMHhlNywgMHgxZSwgMHhjMywgMHg5NCwgMHgwYSwgMHg1MCwgMHgxOSwgMHhlYiwgMHgyMywgMHgyNH0gfSwKLXsgMHgwNDUwLAkxNiwJezB4NDYsIDB4ZjUsIDB4ODIsIDB4NzQsIDB4MDYsIDB4MzQsIDB4MDAsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4Y2IsIDB4ZjUsIDB4Y2QsIDB4YTMsIDB4ZTB9IH0sCi17IDB4MDQ2MCwJMTYsCXsweGY1LCAweGNhLCAweGY1LCAweGNjLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAweGI5LCAweDQxLCAweDExLCAweGViLCAweDY0LCAweGZmLCAweDU0LCAweDgwfSB9LAoteyAweDA0NzAsCTE2LAl7MHhmYiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHg0YiwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyNiwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMH0gfSwKLXsgMHgwNDgwLAkxNiwJezB4NjQsIDB4ZmYsIDB4MDIsIDB4MDQsIDB4MDIsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODUsIDB4YzB9IH0sCi17IDB4MDQ5MCwJMTYsCXsweGUwLCAweGU1LCAweDkxLCAweGMyLCAweGU0LCAweGY1LCAweDkxLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDA0LCAweGYwLCAweDc0LCAweDIwLCAweDkwfSB9LAoteyAweDA0YTAsCTE2LAl7MHg3ZiwgMHg5YywgMHhmMCwgMHgxMiwgMHgwNSwgMHhkYywgMHg3NCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NX0gfSwKLXsgMHgwNGIwLAkxNiwJezB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzB9IH0sCi17IDB4MDRjMCwJMTYsCXsweDg0LCAweGMwLCAweDg1LCAweGMwLCAweGUwLCAweDc0LCAweDEwLCAweDkwLCAweDdmLCAweDljLCAweGYwLCAweGU1LCAweDkxLCAweGMyLCAweGU0LCAweGY1fSB9LAoteyAweDA0ZDAsCTE2LAl7MHg5MSwgMHg5MCwgMHg3ZiwgMHhhYSwgMHg3NCwgMHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmOSwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MH0gfSwKLXsgMHgwNGUwLAkxNiwJezB4N2QsIDB4YzAsIDB4NzUsIDB4ODUsIDB4MTAsIDB4ODUsIDB4MzIsIDB4ODQsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4MDUsIDB4ODQsIDB4ZjAsIDB4ZTUsIDB4ODR9IH0sCi17IDB4MDRmMCwJMTYsCXsweGI1LCAweDMzLCAweDAyLCAweDgwLCAweDA5LCAweDA1LCAweDMyLCAweDA1LCAweDg2LCAweGEzLCAweGQ5LCAweGVjLCAweDgwLCAweDAwLCAweDkwLCAweDdmfSB9LAoteyAweDA1MDAsCTE2LAl7MHhjOSwgMHhmMCwgMHhiMSwgMHg2ZCwgMHg3NCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4NH0gfSwKLXsgMHgwNTEwLAkxNiwJezB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4YmMsIDB4ZTAsIDB4MjAsIDB4ZTF9IH0sCi17IDB4MDUyMCwJMTYsCXsweDRiLCAweDkwLCAweDdkLCAweDAwLCAweGU1LCAweDMyLCAweGYwLCAweGEzLCAweGU1LCAweDMzLCAweGYwLCAweGEzLCAweGU1LCAweDMwLCAweGYwLCAweGEzfSB9LAoteyAweDA1MzAsCTE2LAl7MHhlNSwgMHgzMSwgMHhmMCwgMHhhMywgMHhlNCwgMHgzMCwgMHgwMCwgMHgwMSwgMHgwNCwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHg5MCwgMHgxMCwgMHgwMH0gfSwKLXsgMHgwNTQwLAkxNiwJezB4NzksIDB4MTAsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZDksIDB4ZjYsIDB4MDUsIDB4ODYsIDB4NzQsIDB4ZmN9IH0sCi17IDB4MDU1MCwJMTYsCXsweGYwLCAweGEzLCAweDA1LCAweDg2LCAweDkwLCAweDExLCAweDAwLCAweDc5LCAweDEwLCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1fSB9LAoteyAweDA1NjAsCTE2LAl7MHg4NiwgMHhkOSwgMHhmNiwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHg3NCwgMHgyNiwgMHhmMCwgMHgyMiwgMHgyMCwgMHgwMCwgMHgxM30gfSwKLXsgMHgwNTcwLAkxNiwJezB4ZTUsIDB4MzIsIDB4YjUsIDB4MzMsIDB4MDEsIDB4MjIsIDB4MDUsIDB4MzMsIDB4NzUsIDB4ODMsIDB4MTAsIDB4ODUsIDB4MzMsIDB4ODIsIDB4ZTAsIDB4ZjV9IH0sCi17IDB4MDU4MCwJMTYsCXsweDk5LCAweGQyLCAweDAwLCAweDc0LCAweDAwLCAweGI1LCAweDM0LCAweDAxLCAweDIyLCAweGU1LCAweDMzLCAweGQzLCAweDk1LCAweDMyLCAweGMzLCAweDk1fSB9LAoteyAweDA1OTAsCTE2LAl7MHgzNCwgMHg0MCwgMHhmNSwgMHg3NSwgMHgzNCwgMHgwMCwgMHhkMiwgMHgwMSwgMHgwMiwgMHgwNSwgMHhkYywgMHhjMCwgMHg4NiwgMHhjMCwgMHg4MiwgMHhjMH0gfSwKLXsgMHgwNWEwLAkxNiwJezB4ODMsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ZTAsIDB4MzAsIDB4OTksIDB4MDcsIDB4YzIsIDB4OTksIDB4YzIsIDB4MDAsIDB4MTIsIDB4MDV9IH0sCi17IDB4MDViMCwJMTYsCXsweDcwLCAweDMwLCAweDk4LCAweDA1LCAweDEyLCAweDA1LCAweGM2LCAweGMyLCAweDk4LCAweGQwLCAweGUwLCAweGQwLCAweDg1LCAweGQwLCAweDg0LCAweGQwfSB9LAoteyAweDA1YzAsCTE2LAl7MHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4NiwgMHgzMiwgMHg3NSwgMHg4MywgMHgxMSwgMHg4NSwgMHgzMCwgMHg4MiwgMHgwNSwgMHg4MiwgMHhlNSwgMHg5OX0gfSwKLXsgMHgwNWQwLAkxNiwJezB4ZjAsIDB4ZTUsIDB4ODIsIDB4YjUsIDB4MzEsIDB4MDEsIDB4MjIsIDB4MDUsIDB4MzAsIDB4YjEsIDB4ZGMsIDB4MjIsIDB4NzQsIDB4MTAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDVlMCwJMTYsCXsweDljLCAweGYwLCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDNlLCAweDIwLCAweDAxLCAweDNjLCAweGU1LCAweDMwLCAweGI1LCAweDMxfSB9LAoteyAweDA1ZjAsCTE2LAl7MHgwMSwgMHgyMiwgMHhlNCwgMHhmNSwgMHg4NiwgMHg3NSwgMHg4MywgMHgxMSwgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZSwgMHgwMCwgMHhmMCwgMHhhMywgMHgwNX0gfSwKLXsgMHgwNjAwLAkxNiwJezB4ODYsIDB4NzksIDB4MDEsIDB4ZTUsIDB4MzAsIDB4YjUsIDB4MzEsIDB4MDIsIDB4ODAsIDB4MTAsIDB4MDUsIDB4MzEsIDB4ODUsIDB4MzEsIDB4ODIsIDB4ZTB9IH0sCi17IDB4MDYxMCwJMTYsCXsweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweDA5LCAweGI5LCAweDQwLCAweGU5LCAweDc0LCAweDEwLCAweDkwLCAweDdmLCAweDljLCAweGYwfSB9LAoteyAweDA2MjAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiOSwgMHhlOSwgMHg2MCwgMHgwMSwgMHhmMCwgMHgyMiwgMHhjMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHg4NiwgMHg5MCwgMHg3ZSwgMHgwMH0gfSwKLXsgMHgwNjMwLAkxNiwJezB4NzQsIDB4MDEsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZjAsIDB4MjIsIDB4YzIsIDB4OTksIDB4ZjUsIDB4OTl9IH0sCi17IDB4MDY0MCwJMTYsCXsweDMwLCAweDk5LCAweGZkLCAweGMyLCAweDk5LCAweDIyLCAweGU1LCAweDVlLCAweGY2LCAweDNjLCAweGZkLCAweDhmLCAweGZlLCAweGM4LCAweGZmLCAweDY0fSB9LAoteyAweDA2NTAsCTE2LAl7MHhmZiwgMHhiMiwgMHhmZiwgMHhkOSwgMHhmZiwgMHhlZCwgMHhmZiwgMHhmMywgMHhmZiwgMHhmYSwgMHgxMiwgMHgwMSwgMHgwMCwgMHgwMSwgMHhmZiwgMHhmZn0gfSwKLXsgMHgwNjYwLAkxNiwJezB4ZmYsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MDQsIDB4MDEsIDB4ODksIDB4YWIsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDEsIDB4MDksIDB4MDIsIDB4MjAsIDB4MDB9IH0sCi17IDB4MDY3MCwJMTYsCXsweDAxLCAweDAxLCAweDAwLCAweDgwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDAyLCAweGZmLCAweGZmLCAweGZmLCAweDAwLCAweDA3LCAweDA1fSB9LAoteyAweDA2ODAsCTE2LAl7MHg4MiwgMHgwMywgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHg5NCwgMHgwNiwgMHg5OH0gfSwKLXsgMHgwNjkwLAkxNiwJezB4MDYsIDB4YmEsIDB4MDYsIDB4ZTgsIDB4MDQsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MjIsIDB4MDMsIDB4NDEsIDB4MDAsIDB4NDMsIDB4MDAsIDB4NGQsIDB4MDB9IH0sCi17IDB4MDZhMCwJMTYsCXsweDQ1LCAweDAwLCAweDIwLCAweDAwLCAweDc1LCAweDAwLCAweDczLCAweDAwLCAweDYyLCAweDAwLCAweDIwLCAweDAwLCAweDc3LCAweDAwLCAweDY5LCAweDAwfSB9LAoteyAweDA2YjAsCTE2LAl7MHg2NCwgMHgwMCwgMHg2NywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MywgMHgwMCwgMHgyZSwgMHgwMywgMHg0MSwgMHgwMCwgMHg0MywgMHgwMH0gfSwKLXsgMHgwNmMwLAkxNiwJezB4NGQsIDB4MDAsIDB4NDUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NzMsIDB4MDB9IH0sCi17IDB4MDZkMCwJMTYsCXsweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLCAweDAwLCAweDIwLCAweDAwLCAweDc3LCAweDAwLCAweDY5LCAweDAwfSB9LAoteyAweDA2ZTAsCTE0LAl7MHg2NCwgMHgwMCwgMHg2NywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3NCwgMHgwMCwgMHgwNiwgMHgwMywgMHgzNCwgMHgwMCwgMHgzNywgMHgwMH0gfSwKLXsgMHhmZmZmLAkwLAl7MHgwMH0gfQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmggYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oCmluZGV4IDQ1ZmUzNjYuLjM5YTdjMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgKKysrIGIvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaApAQCAtNDAyLDExICs0MDIsMTkgQEAKIAkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKIAogI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCCisvKiBDWTdDNjgzMDAgOiBzdXBwb3J0IGF0YWNiICovCiBVTlVTVUFMX0RFViggIDB4MDRiNCwgMHg2ODMwLCAweDAwMDAsIDB4OTk5OSwKIAkJIkN5cHJlc3MiLAogCQkiQ3lwcmVzcyBBVDJMUCIsCiAJCVVTX1NDX0NZUF9BVEFDQiwgVVNfUFJfREVWSUNFLCBOVUxMLAogCQkwKSwKKworLyogQ1k3QzY4MzEwIDogc3VwcG9ydCBhdGFjYiBhbmQgYXRhY2IyICovCitVTlVTVUFMX0RFViggIDB4MDRiNCwgMHg2ODMxLCAweDAwMDAsIDB4OTk5OSwKKwkJIkN5cHJlc3MiLAorCQkiQ3lwcmVzcyBJU0QtMzAwTFAiLAorCQlVU19TQ19DWVBfQVRBQ0IsIFVTX1BSX0RFVklDRSwgTlVMTCwKKwkJMCksCiAjZW5kaWYKIAogLyogUmVwb3J0ZWQgYnkgU2ltb24gTGV2aXR0IDxzaW1vbkB3aGF0dGYuY29tPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9LY29uZmlnIGIvZHJpdmVycy92aWRlby9LY29uZmlnCmluZGV4IDAwMmI2MWIuLjliODg3ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL0tjb25maWcKQEAgLTcsNyArNyw3IEBACiAKIHNvdXJjZSAiZHJpdmVycy9jaGFyL2FncC9LY29uZmlnIgogCi1zb3VyY2UgImRyaXZlcnMvY2hhci9kcm0vS2NvbmZpZyIKK3NvdXJjZSAiZHJpdmVycy9ncHUvZHJtL0tjb25maWciCiAKIGNvbmZpZyBWR0FTVEFURQogICAgICAgIHRyaXN0YXRlCkBAIC0xODI1LDEyICsxODI1LDEzIEBACiAKIGNvbmZpZyBGQl9XMTAwCiAJdHJpc3RhdGUgIlcxMDAgZnJhbWUgYnVmZmVyIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBGQiAmJiBQWEFfU0hBUlBTTAorCWRlcGVuZHMgb24gRkIgJiYgQVJDSF9QWEEKICAJc2VsZWN0IEZCX0NGQl9GSUxMUkVDVAogIAlzZWxlY3QgRkJfQ0ZCX0NPUFlBUkVBCiAgCXNlbGVjdCBGQl9DRkJfSU1BR0VCTElUCiAJLS0taGVscC0tLQogCSAgRnJhbWUgYnVmZmVyIGRyaXZlciBmb3IgdGhlIHcxMDAgYXMgZm91bmQgb24gdGhlIFNoYXJwIFNMLUN4eCBzZXJpZXMuCisJICBJdCBjYW4gYWxzbyBkcml2ZSB0aGUgdzMyMjAgY2hpcCBmb3VuZCBvbiBpUEFRIGh4NDcwMC4KIAogCSAgVGhpcyBkcml2ZXIgaXMgYWxzbyBhdmFpbGFibGUgYXMgYSBtb2R1bGUgKCA9IGNvZGUgd2hpY2ggY2FuIGJlCiAJICBpbnNlcnRlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBydW5uaW5nIGtlcm5lbCB3aGVuZXZlciB5b3Ugd2FudCkuIFRoZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvS2NvbmZpZyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L0tjb25maWcKaW5kZXggZGNkODA3My4uMzBiZjdmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9LY29uZmlnCkBAIC0xMTIsMyArMTEyLDEwIEBACiAJaGVscAogCSAgSWYgeW91IGhhdmUgYSBJbnRlbCBMRTgwNTc4IChDYXJpbGxvIFJhbmNoKSBzYXkgWSB0byBlbmFibGUgdGhlCiAJICBiYWNrbGlnaHQgZHJpdmVyLgorCitjb25maWcgQkFDS0xJR0hUX1BXTQorCXRyaXN0YXRlICJHZW5lcmljIFBXTSBiYXNlZCBCYWNrbGlnaHQgRHJpdmVyIgorCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRSAmJiBIQVZFX1BXTQorCWhlbHAKKwkgIElmIHlvdSBoYXZlIGEgTENEIGJhY2tsaWdodCBhZGp1c3RhYmxlIGJ5IFBXTSwgc2F5IFkgdG8gZW5hYmxlCisJICB0aGlzIGRyaXZlci4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L01ha2VmaWxlIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvTWFrZWZpbGUKaW5kZXggMzNmNmM3Yy4uYjUxYTdjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvTWFrZWZpbGUKKysrIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvTWFrZWZpbGUKQEAgLTEwLDMgKzEwLDQgQEAKIG9iai0kKENPTkZJR19CQUNLTElHSFRfT01BUDEpCSs9IG9tYXAxX2JsLm8KIG9iai0kKENPTkZJR19CQUNLTElHSFRfUFJPR0VBUikgKz0gcHJvZ2Vhcl9ibC5vCiBvYmotJChDT05GSUdfQkFDS0xJR0hUX0NBUklMTE9fUkFOQ0gpICs9IGNyX2JsbGNkLm8KK29iai0kKENPTkZJR19CQUNLTElHSFRfUFdNKQkrPSBwd21fYmwubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvcHdtX2JsLmMgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzM4ZDBlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvcHdtX2JsLmMKQEAgLTAsMCArMSwxODUgQEAKKy8qCisgKiBsaW51eC9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYworICoKKyAqIHNpbXBsZSBQV00gYmFzZWQgYmFja2xpZ2h0IGNvbnRyb2wsIGJvYXJkIGNvZGUgaGFzIHRvIHNldHVwCisgKiAxKSBwaW4gY29uZmlndXJhdGlvbiBzbyBQV00gd2F2ZWZvcm1zIGNhbiBvdXRwdXQKKyAqIDIpIHBsYXRmb3JtX2RhdGEgY2FzdHMgdG8gdGhlIFBXTSBpZCAoMC8xLzIvMyBvbiBQWEEpCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZiLmg+CisjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvcHdtLmg+CisjaW5jbHVkZSA8bGludXgvcHdtX2JhY2tsaWdodC5oPgorCitzdHJ1Y3QgcHdtX2JsX2RhdGEgeworCXN0cnVjdCBwd21fZGV2aWNlCSpwd207CisJdW5zaWduZWQgaW50CQlwZXJpb2Q7CisJaW50CQkJKCpub3RpZnkpKGludCBicmlnaHRuZXNzKTsKK307CisKK3N0YXRpYyBpbnQgcHdtX2JhY2tsaWdodF91cGRhdGVfc3RhdHVzKHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpibCkKK3sKKwlzdHJ1Y3QgcHdtX2JsX2RhdGEgKnBiID0gZGV2X2dldF9kcnZkYXRhKCZibC0+ZGV2KTsKKwlpbnQgYnJpZ2h0bmVzcyA9IGJsLT5wcm9wcy5icmlnaHRuZXNzOworCWludCBtYXggPSBibC0+cHJvcHMubWF4X2JyaWdodG5lc3M7CisKKwlpZiAoYmwtPnByb3BzLnBvd2VyICE9IEZCX0JMQU5LX1VOQkxBTkspCisJCWJyaWdodG5lc3MgPSAwOworCisJaWYgKGJsLT5wcm9wcy5mYl9ibGFuayAhPSBGQl9CTEFOS19VTkJMQU5LKQorCQlicmlnaHRuZXNzID0gMDsKKworCWlmIChwYi0+bm90aWZ5KQorCQlicmlnaHRuZXNzID0gcGItPm5vdGlmeShicmlnaHRuZXNzKTsKKworCWlmIChicmlnaHRuZXNzID09IDApIHsKKwkJcHdtX2NvbmZpZyhwYi0+cHdtLCAwLCBwYi0+cGVyaW9kKTsKKwkJcHdtX2Rpc2FibGUocGItPnB3bSk7CisJfSBlbHNlIHsKKwkJcHdtX2NvbmZpZyhwYi0+cHdtLCBicmlnaHRuZXNzICogcGItPnBlcmlvZCAvIG1heCwgcGItPnBlcmlvZCk7CisJCXB3bV9lbmFibGUocGItPnB3bSk7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfZ2V0X2JyaWdodG5lc3Moc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsKQoreworCXJldHVybiBibC0+cHJvcHMuYnJpZ2h0bmVzczsKK30KKworc3RhdGljIHN0cnVjdCBiYWNrbGlnaHRfb3BzIHB3bV9iYWNrbGlnaHRfb3BzID0geworCS51cGRhdGVfc3RhdHVzCT0gcHdtX2JhY2tsaWdodF91cGRhdGVfc3RhdHVzLAorCS5nZXRfYnJpZ2h0bmVzcwk9IHB3bV9iYWNrbGlnaHRfZ2V0X2JyaWdodG5lc3MsCit9OworCitzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fcHdtX2JhY2tsaWdodF9kYXRhICpkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsOworCXN0cnVjdCBwd21fYmxfZGF0YSAqcGI7CisJaW50IHJldDsKKworCWlmICghZGF0YSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoZGF0YS0+aW5pdCkgeworCQlyZXQgPSBkYXRhLT5pbml0KCZwZGV2LT5kZXYpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcGIgPSBremFsbG9jKHNpemVvZigqcGIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXBiKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX2FsbG9jOworCX0KKworCXBiLT5wZXJpb2QgPSBkYXRhLT5wd21fcGVyaW9kX25zOworCXBiLT5ub3RpZnkgPSBkYXRhLT5ub3RpZnk7CisKKwlwYi0+cHdtID0gcHdtX3JlcXVlc3QoZGF0YS0+cHdtX2lkLCAiYmFja2xpZ2h0Iik7CisJaWYgKElTX0VSUihwYi0+cHdtKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ1bmFibGUgdG8gcmVxdWVzdCBQV00gZm9yIGJhY2tsaWdodFxuIik7CisJCXJldCA9IFBUUl9FUlIocGItPnB3bSk7CisJCWdvdG8gZXJyX3B3bTsKKwl9CisKKwlibCA9IGJhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIocGRldi0+bmFtZSwgJnBkZXYtPmRldiwKKwkJCXBiLCAmcHdtX2JhY2tsaWdodF9vcHMpOworCWlmIChJU19FUlIoYmwpKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZWdpc3RlciBiYWNrbGlnaHRcbiIpOworCQlyZXQgPSBQVFJfRVJSKGJsKTsKKwkJZ290byBlcnJfYmw7CisJfQorCisJYmwtPnByb3BzLm1heF9icmlnaHRuZXNzID0gZGF0YS0+bWF4X2JyaWdodG5lc3M7CisJYmwtPnByb3BzLmJyaWdodG5lc3MgPSBkYXRhLT5kZnRfYnJpZ2h0bmVzczsKKwliYWNrbGlnaHRfdXBkYXRlX3N0YXR1cyhibCk7CisKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBibCk7CisJcmV0dXJuIDA7CisKK2Vycl9ibDoKKwlwd21fZnJlZShwYi0+cHdtKTsKK2Vycl9wd206CisJa2ZyZWUocGIpOworZXJyX2FsbG9jOgorCWlmIChkYXRhLT5leGl0KQorCQlkYXRhLT5leGl0KCZwZGV2LT5kZXYpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcHdtX2JhY2tsaWdodF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fcHdtX2JhY2tsaWdodF9kYXRhICpkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHB3bV9ibF9kYXRhICpwYiA9IGRldl9nZXRfZHJ2ZGF0YSgmYmwtPmRldik7CisKKwliYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0ZXIoYmwpOworCXB3bV9jb25maWcocGItPnB3bSwgMCwgcGItPnBlcmlvZCk7CisJcHdtX2Rpc2FibGUocGItPnB3bSk7CisJcHdtX2ZyZWUocGItPnB3bSk7CisJa2ZyZWUocGIpOworCWlmIChkYXRhLT5leGl0KQorCQlkYXRhLT5leGl0KCZwZGV2LT5kZXYpOworCXJldHVybiAwOworfQorCisjaWZkZWYgQ09ORklHX1BNCitzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJCSBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHB3bV9ibF9kYXRhICpwYiA9IGRldl9nZXRfZHJ2ZGF0YSgmYmwtPmRldik7CisKKwlwd21fY29uZmlnKHBiLT5wd20sIDAsIHBiLT5wZXJpb2QpOworCXB3bV9kaXNhYmxlKHBiLT5wd20pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwliYWNrbGlnaHRfdXBkYXRlX3N0YXR1cyhibCk7CisJcmV0dXJuIDA7Cit9CisjZWxzZQorI2RlZmluZSBwd21fYmFja2xpZ2h0X3N1c3BlbmQJTlVMTAorI2RlZmluZSBwd21fYmFja2xpZ2h0X3Jlc3VtZQlOVUxMCisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcHdtX2JhY2tsaWdodF9kcml2ZXIgPSB7CisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gInB3bS1iYWNrbGlnaHQiLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9LAorCS5wcm9iZQkJPSBwd21fYmFja2xpZ2h0X3Byb2JlLAorCS5yZW1vdmUJCT0gcHdtX2JhY2tsaWdodF9yZW1vdmUsCisJLnN1c3BlbmQJPSBwd21fYmFja2xpZ2h0X3N1c3BlbmQsCisJLnJlc3VtZQkJPSBwd21fYmFja2xpZ2h0X3Jlc3VtZSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHB3bV9iYWNrbGlnaHRfaW5pdCh2b2lkKQoreworCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnB3bV9iYWNrbGlnaHRfZHJpdmVyKTsKK30KK21vZHVsZV9pbml0KHB3bV9iYWNrbGlnaHRfaW5pdCk7CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBwd21fYmFja2xpZ2h0X2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmcHdtX2JhY2tsaWdodF9kcml2ZXIpOworfQorbW9kdWxlX2V4aXQocHdtX2JhY2tsaWdodF9leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJQV00gYmFzZWQgQmFja2xpZ2h0IERyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYl9kZGMuYyBiL2RyaXZlcnMvdmlkZW8vZmJfZGRjLmMKaW5kZXggYTBkZjYzMi4uMGNmOTZlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYl9kZGMuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiX2RkYy5jCkBAIC0xMDYsNiArMTA2LDcgQEAKIAlhbGdvX2RhdGEtPnNldHNkYShhbGdvX2RhdGEtPmRhdGEsIDEpOwogCWFsZ29fZGF0YS0+c2V0c2NsKGFsZ29fZGF0YS0+ZGF0YSwgMSk7CiAKKwlhZGFwdGVyLT5jbGFzcyB8PSBJMkNfQ0xBU1NfRERDOwogCXJldHVybiBlZGlkOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiX2RlZmlvLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiX2RlZmlvLmMKaW5kZXggMjQ4NDNmZC4uNTlkZjEzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYl9kZWZpby5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJfZGVmaW8uYwpAQCAtNzQsNiArNzQsNyBAQAogewogCXN0cnVjdCBmYl9pbmZvICppbmZvID0gdm1hLT52bV9wcml2YXRlX2RhdGE7CiAJc3RydWN0IGZiX2RlZmVycmVkX2lvICpmYmRlZmlvID0gaW5mby0+ZmJkZWZpbzsKKwlzdHJ1Y3QgcGFnZSAqY3VyOwogCiAJLyogdGhpcyBpcyBhIGNhbGxiYWNrIHdlIGdldCB3aGVuIHVzZXJzcGFjZSBmaXJzdCB0cmllcyB0bwogCXdyaXRlIHRvIHRoZSBwYWdlLiB3ZSBzY2hlZHVsZSBhIHdvcmtxdWV1ZS4gdGhhdCB3b3JrcXVldWUKQEAgLTgzLDcgKzg0LDI0IEBACiAKIAkvKiBwcm90ZWN0IGFnYWluc3QgdGhlIHdvcmtxdWV1ZSBjaGFuZ2luZyB0aGUgcGFnZSBsaXN0ICovCiAJbXV0ZXhfbG9jaygmZmJkZWZpby0+bG9jayk7Ci0JbGlzdF9hZGQoJnBhZ2UtPmxydSwgJmZiZGVmaW8tPnBhZ2VsaXN0KTsKKworCS8qIHdlIGxvb3AgdGhyb3VnaCB0aGUgcGFnZWxpc3QgYmVmb3JlIGFkZGluZyBpbiBvcmRlcgorCXRvIGtlZXAgdGhlIHBhZ2VsaXN0IHNvcnRlZCAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkoY3VyLCAmZmJkZWZpby0+cGFnZWxpc3QsIGxydSkgeworCQkvKiB0aGlzIGNoZWNrIGlzIHRvIGNhdGNoIHRoZSBjYXNlIHdoZXJlIGEgbmV3CisJCXByb2Nlc3MgY291bGQgc3RhcnQgd3JpdGluZyB0byB0aGUgc2FtZSBwYWdlCisJCXRocm91Z2ggYSBuZXcgcHRlLiB0aGlzIG5ldyBhY2Nlc3MgY2FuIGNhdXNlIHRoZQorCQlta3dyaXRlIGV2ZW4gd2hlbiB0aGUgb3JpZ2luYWwgcHMncyBwdGUgaXMgbWFya2VkCisJCXdyaXRhYmxlICovCisJCWlmICh1bmxpa2VseShjdXIgPT0gcGFnZSkpCisJCQlnb3RvIHBhZ2VfYWxyZWFkeV9hZGRlZDsKKwkJZWxzZSBpZiAoY3VyLT5pbmRleCA+IHBhZ2UtPmluZGV4KQorCQkJYnJlYWs7CisJfQorCisJbGlzdF9hZGRfdGFpbCgmcGFnZS0+bHJ1LCAmY3VyLT5scnUpOworCitwYWdlX2FscmVhZHlfYWRkZWQ6CiAJbXV0ZXhfdW5sb2NrKCZmYmRlZmlvLT5sb2NrKTsKIAogCS8qIGNvbWUgYmFjayBhZnRlciBkZWxheSB0byBwcm9jZXNzIHRoZSBkZWZlcnJlZCBJTyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYm1lbS5jIGIvZHJpdmVycy92aWRlby9mYm1lbS5jCmluZGV4IDc3NmY3ZmMuLjMzZWJkYjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJtZW0uYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZibWVtLmMKQEAgLTEzMjYsMjAgKzEzMjYsMjcgQEAKIAogCWlmIChmYmlkeCA+PSBGQl9NQVgpCiAJCXJldHVybiAtRU5PREVWOworCWxvY2tfa2VybmVsKCk7CiAjaWZkZWYgQ09ORklHX0tNT0QKIAlpZiAoIShpbmZvID0gcmVnaXN0ZXJlZF9mYltmYmlkeF0pKQogCQl0cnlfdG9fbG9hZChmYmlkeCk7CiAjZW5kaWYgLyogQ09ORklHX0tNT0QgKi8KLQlpZiAoIShpbmZvID0gcmVnaXN0ZXJlZF9mYltmYmlkeF0pKQotCQlyZXR1cm4gLUVOT0RFVjsKLQlpZiAoIXRyeV9tb2R1bGVfZ2V0KGluZm8tPmZib3BzLT5vd25lcikpCi0JCXJldHVybiAtRU5PREVWOworCWlmICghKGluZm8gPSByZWdpc3RlcmVkX2ZiW2ZiaWR4XSkpIHsKKwkJcmVzID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQorCWlmICghdHJ5X21vZHVsZV9nZXQoaW5mby0+ZmJvcHMtPm93bmVyKSkgeworCQlyZXMgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gaW5mbzsKIAlpZiAoaW5mby0+ZmJvcHMtPmZiX29wZW4pIHsKIAkJcmVzID0gaW5mby0+ZmJvcHMtPmZiX29wZW4oaW5mbywxKTsKIAkJaWYgKHJlcykKIAkJCW1vZHVsZV9wdXQoaW5mby0+ZmJvcHMtPm93bmVyKTsKIAl9CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXM7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZnNsLWRpdS1mYi5jIGIvZHJpdmVycy92aWRlby9mc2wtZGl1LWZiLmMKaW5kZXggMGEyNzg1My4uMDlkN2UyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mc2wtZGl1LWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mc2wtZGl1LWZiLmMKQEAgLTI4Niw3ICsyODYsNyBAQAogICoJcmhlYXAgYW5kIG1ha2UgdGhlIGZ1cnR1cmUgbGFyZ2UgYWxsb2NhdGlvbiBmYWlsLgogICovCiAKLXZvaWQgKmZzbF9kaXVfYWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCBwaHlzX2FkZHJfdCAqcGh5cykKK3N0YXRpYyB2b2lkICpmc2xfZGl1X2FsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGh5c19hZGRyX3QgKnBoeXMpCiB7CiAJdm9pZCAqdmlydDsKIApAQCAtMzExLDEyICszMTEsMTIgQEAKIAkJbWVtc2V0KHZpcnQsIDAsIHNpemUpOwogCX0KIAotCXByX2RlYnVnKCJyaCB2aXJ0PSVwIHBoeXM9JWx4XG4iLCB2aXJ0LCAqcGh5cyk7CisJcHJfZGVidWcoInJoIHZpcnQ9JXAgcGh5cz0lbGx4XG4iLCB2aXJ0LCAodW5zaWduZWQgbG9uZyBsb25nKSpwaHlzKTsKIAogCXJldHVybiB2aXJ0OwogfQogCi12b2lkIGZzbF9kaXVfZnJlZSh2b2lkICpwLCB1bnNpZ25lZCBsb25nIHNpemUpCitzdGF0aWMgdm9pZCBmc2xfZGl1X2ZyZWUodm9pZCAqcCwgdW5zaWduZWQgbG9uZyBzaXplKQogewogCXByX2RlYnVnKCJwPSVwIHNpemU9JWx1XG4iLCBwLCBzaXplKTsKIApAQCAtNzcwLDcgKzc3MCw3IEBACiAJaW5mby0+Zml4LnNtZW1fbGVuID0gaW5mby0+Zml4LmxpbmVfbGVuZ3RoICogaW5mby0+dmFyLnlyZXNfdmlydHVhbDsKIAlwcl9kZWJ1ZygiTUFQX1ZJREVPX01FTU9SWTogc21lbV9sZW4gPSAlZFxuIiwgaW5mby0+Zml4LnNtZW1fbGVuKTsKIAlpbmZvLT5zY3JlZW5fYmFzZSA9IGZzbF9kaXVfYWxsb2MoaW5mby0+Zml4LnNtZW1fbGVuLCAmcGh5cyk7Ci0JaWYgKGluZm8tPnNjcmVlbl9iYXNlID09IDApIHsKKwlpZiAoaW5mby0+c2NyZWVuX2Jhc2UgPT0gTlVMTCkgewogCQlwcmludGsoS0VSTl9FUlIgIlVuYWJsZSB0byBhbGxvY2F0ZSBmYiBtZW1vcnlcbiIpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CkBAIC03ODgsNyArNzg4LDcgQEAKIHN0YXRpYyB2b2lkIHVubWFwX3ZpZGVvX21lbW9yeShzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIHsKIAlmc2xfZGl1X2ZyZWUoaW5mby0+c2NyZWVuX2Jhc2UsIGluZm8tPmZpeC5zbWVtX2xlbik7Ci0JaW5mby0+c2NyZWVuX2Jhc2UgPSAwOworCWluZm8tPnNjcmVlbl9iYXNlID0gTlVMTDsKIAlpbmZvLT5maXguc21lbV9zdGFydCA9IDA7CiAJaW5mby0+Zml4LnNtZW1fbGVuID0gMDsKIH0KQEAgLTExNTgsNyArMTE1OCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaW5zdGFsbF9mYihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKK3N0YXRpYyBpbnQgX19kZXZpbml0IGluc3RhbGxfZmIoc3RydWN0IGZiX2luZm8gKmluZm8pCiB7CiAJaW50IHJjOwogCXN0cnVjdCBtZmJfaW5mbyAqbWZiaSA9IGluZm8tPnBhcjsKQEAgLTEyMzMsNyArMTIzMyw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIF9fZXhpdCB1bmluc3RhbGxfZmIoc3RydWN0IGZiX2luZm8gKmluZm8pCitzdGF0aWMgdm9pZCB1bmluc3RhbGxfZmIoc3RydWN0IGZiX2luZm8gKmluZm8pCiB7CiAJc3RydWN0IG1mYl9pbmZvICptZmJpID0gaW5mby0+cGFyOwogCkBAIC0xMjg3LDcgKzEyODcsNyBAQAogCS8qIFJlYWQgdG8gY2xlYXIgdGhlIHN0YXR1cyAqLwogCXN0YXR1cyA9IGluX2JlMzIoJmh3LT5pbnRfc3RhdHVzKTsKIAotCXJldCA9IHJlcXVlc3RfaXJxKGlycSwgZnNsX2RpdV9pc3IsIDAsICJkaXUiLCAwKTsKKwlyZXQgPSByZXF1ZXN0X2lycShpcnEsIGZzbF9kaXVfaXNyLCAwLCAiZGl1IiwgTlVMTCk7CiAJaWYgKHJldCkKIAkJcHJfaW5mbygiUmVxdWVzdCBkaXUgSVJRIGZhaWxlZC5cbiIpOwogCWVsc2UgewpAQCAtMTMxMiw3ICsxMzEyLDcgQEAKIAkvKiBEaXNhYmxlIGFsbCBMQ0RDIGludGVycnVwdCAqLwogCW91dF9iZTMyKCZody0+aW50X21hc2ssIDB4MWYpOwogCi0JZnJlZV9pcnEoaXJxLCAwKTsKKwlmcmVlX2lycShpcnEsIE5VTEwpOwogfQogCiAjaWZkZWYgQ09ORklHX1BNCkBAIC0xMzUzLDcgKzEzNTMsOCBAQAogCWRtYV9hZGRyX3QgcGFkZHIgPSAwOwogCiAJc3NpemUgPSBzaXplICsgYnl0ZXNfYWxpZ247Ci0JYnVmLT52YWRkciA9IGRtYV9hbGxvY19jb2hlcmVudCgwLCBzc2l6ZSwgJnBhZGRyLCBHRlBfRE1BIHwgX19HRlBfWkVSTyk7CisJYnVmLT52YWRkciA9IGRtYV9hbGxvY19jb2hlcmVudChOVUxMLCBzc2l6ZSwgJnBhZGRyLCBHRlBfRE1BIHwKKwkJCQkJCQkgICAgIF9fR0ZQX1pFUk8pOwogCWlmICghYnVmLT52YWRkcikKIAkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTEzNzEsNyArMTM3Miw3IEBACiAKIHN0YXRpYyB2b2lkIGZyZWVfYnVmKHN0cnVjdCBkaXVfYWRkciAqYnVmLCB1MzIgc2l6ZSwgdTMyIGJ5dGVzX2FsaWduKQogewotCWRtYV9mcmVlX2NvaGVyZW50KDAsIHNpemUgKyBieXRlc19hbGlnbiwKKwlkbWFfZnJlZV9jb2hlcmVudChOVUxMLCBzaXplICsgYnl0ZXNfYWxpZ24sCiAJCQkJYnVmLT52YWRkciwgKGJ1Zi0+cGFkZHIgLSBidWYtPm9mZnNldCkpOwogCXJldHVybjsKIH0KQEAgLTE0MTEsNyArMTQxMiw3IEBACiAJcmV0dXJuIGRpdV9vcHMuc2hvd19tb25pdG9yX3BvcnQobWFjaGluZV9kYXRhLT5tb25pdG9yX3BvcnQsIGJ1Zik7CiB9CiAKLXN0YXRpYyBpbnQgZnNsX2RpdV9wcm9iZShzdHJ1Y3Qgb2ZfZGV2aWNlICpvZmRldiwKK3N0YXRpYyBpbnQgX19kZXZpbml0IGZzbF9kaXVfcHJvYmUoc3RydWN0IG9mX2RldmljZSAqb2ZkZXYsCiAJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2gpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IG9mZGV2LT5ub2RlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9pbnRlbGZiL2ludGVsZmJfaTJjLmMgYi9kcml2ZXJzL3ZpZGVvL2ludGVsZmIvaW50ZWxmYl9pMmMuYwppbmRleCBjYTk1ZjA5Li5mY2Y5ZmFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ludGVsZmIvaW50ZWxmYl9pMmMuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ludGVsZmIvaW50ZWxmYl9pMmMuYwpAQCAtMTAwLDcgKzEwMCw4IEBACiAKIHN0YXRpYyBpbnQgaW50ZWxmYl9zZXR1cF9pMmNfYnVzKHN0cnVjdCBpbnRlbGZiX2luZm8gKmRpbmZvLAogCQkJCSBzdHJ1Y3QgaW50ZWxmYl9pMmNfY2hhbiAqY2hhbiwKLQkJCQkgY29uc3QgdTMyIHJlZywgY29uc3QgY2hhciAqbmFtZSkKKwkJCQkgY29uc3QgdTMyIHJlZywgY29uc3QgY2hhciAqbmFtZSwKKwkJCQkgaW50IGNsYXNzKQogewogCWludCByYzsKIApAQCAtMTA4LDYgKzEwOSw3IEBACiAJY2hhbi0+cmVnCQkJPSByZWc7CiAJc25wcmludGYoY2hhbi0+YWRhcHRlci5uYW1lLCBzaXplb2YoY2hhbi0+YWRhcHRlci5uYW1lKSwKIAkJICJpbnRlbGZiICVzIiwgbmFtZSk7CisJY2hhbi0+YWRhcHRlci5jbGFzcwkJPSBjbGFzczsKIAljaGFuLT5hZGFwdGVyLm93bmVyCQk9IFRISVNfTU9EVUxFOwogCWNoYW4tPmFkYXB0ZXIuaWQJCT0gSTJDX0hXX0JfSU5URUxGQjsKIAljaGFuLT5hZGFwdGVyLmFsZ29fZGF0YQkJPSAmY2hhbi0+YWxnbzsKQEAgLTE0NSw3ICsxNDcsNyBAQAogCiAJLyogc2V0dXAgdGhlIEREQyBidXMgZm9yIGFuYWxvZyBvdXRwdXQgKi8KIAlpbnRlbGZiX3NldHVwX2kyY19idXMoZGluZm8sICZkaW5mby0+b3V0cHV0W2ldLmRkY19idXMsIEdQSU9BLAotCQkJICAgICAgIkNSVEREQ19BIik7CisJCQkgICAgICAiQ1JURERDX0EiLCBJMkNfQ0xBU1NfRERDKTsKIAlpKys7CiAKIAkvKiBuZWVkIHRvIGFkZCB0aGUgb3V0cHV0IGJ1c3NlcyBmb3IgZWFjaCBkZXZpY2UKQEAgLTE1OSw5ICsxNjEsOSBAQAogCWNhc2UgSU5URUxfODY1RzoKIAkJZGluZm8tPm91dHB1dFtpXS50eXBlID0gSU5URUxGQl9PVVRQVVRfRFZPOwogCQlpbnRlbGZiX3NldHVwX2kyY19idXMoZGluZm8sICZkaW5mby0+b3V0cHV0W2ldLmRkY19idXMsCi0JCQkJICAgICAgR1BJT0QsICJEVk9ERENfRCIpOworCQkJCSAgICAgIEdQSU9ELCAiRFZPRERDX0QiLCBJMkNfQ0xBU1NfRERDKTsKIAkJaW50ZWxmYl9zZXR1cF9pMmNfYnVzKGRpbmZvLCAmZGluZm8tPm91dHB1dFtpXS5pMmNfYnVzLAotCQkJCSAgICAgIEdQSU9FLCAiRFZPSTJDX0UiKTsKKwkJCQkgICAgICBHUElPRSwgIkRWT0kyQ19FIiwgMCk7CiAJCWkrKzsKIAkJYnJlYWs7CiAJY2FzZSBJTlRFTF85MTVHOgpAQCAtMTc0LDcgKzE3Niw3IEBACiAJCS8qIFNEVk8gcG9ydHMgaGF2ZSBhIHNpbmdsZSBjb250cm9sIGJ1cyAtIDIgZGV2aWNlcyAqLwogCQlkaW5mby0+b3V0cHV0W2ldLnR5cGUgPSBJTlRFTEZCX09VVFBVVF9TRFZPOwogCQlpbnRlbGZiX3NldHVwX2kyY19idXMoZGluZm8sICZkaW5mby0+b3V0cHV0W2ldLmkyY19idXMsCi0JCQkJICAgICAgR1BJT0UsICJTRFZPQ1RSTF9FIik7CisJCQkJICAgICAgR1BJT0UsICJTRFZPQ1RSTF9FIiwgMCk7CiAJCS8qIFRPRE86IGluaXRpYWxpemUgdGhlIFNEVk8gKi8KIAkJLyogSTgzMFNEVk9Jbml0KHBTY3JuLCBpLCBEVk9CKTsgKi8KIAkJaSsrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9tYXRyb3gvaTJjLW1hdHJveGZiLmMgYi9kcml2ZXJzL3ZpZGVvL21hdHJveC9pMmMtbWF0cm94ZmIuYwppbmRleCA0YmFhYjdiLi43NWVlNWExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL21hdHJveC9pMmMtbWF0cm94ZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL21hdHJveC9pMmMtbWF0cm94ZmIuYwpAQCAtMTA0LDcgKzEwNCw5IEBACiB9OwogCiBzdGF0aWMgaW50IGkyY19idXNfcmVnKHN0cnVjdCBpMmNfYml0X2FkYXB0ZXIqIGIsIHN0cnVjdCBtYXRyb3hfZmJfaW5mbyogbWluZm8sIAotCQl1bnNpZ25lZCBpbnQgZGF0YSwgdW5zaWduZWQgaW50IGNsb2NrLCBjb25zdCBjaGFyKiBuYW1lKSB7CisJCXVuc2lnbmVkIGludCBkYXRhLCB1bnNpZ25lZCBpbnQgY2xvY2ssIGNvbnN0IGNoYXIgKm5hbWUsCisJCWludCBjbGFzcykKK3sKIAlpbnQgZXJyOwogCiAJYi0+bWluZm8gPSBtaW5mbzsKQEAgLTExNCw2ICsxMTYsNyBAQAogCXNucHJpbnRmKGItPmFkYXB0ZXIubmFtZSwgc2l6ZW9mKGItPmFkYXB0ZXIubmFtZSksIG5hbWUsCiAJCW1pbmZvLT5mYmNvbi5ub2RlKTsKIAlpMmNfc2V0X2FkYXBkYXRhKCZiLT5hZGFwdGVyLCBiKTsKKwliLT5hZGFwdGVyLmNsYXNzID0gY2xhc3M7CiAJYi0+YWRhcHRlci5hbGdvX2RhdGEgPSAmYi0+YmFjOwogCWItPmFkYXB0ZXIuZGV2LnBhcmVudCA9ICZBQ0NFU1NfRkJJTkZPKHBjaWRldiktPmRldjsKIAliLT5iYWMgPSBtYXRyb3hfaTJjX2FsZ29fdGVtcGxhdGU7CkBAIC0xNTksMjIgKzE2MiwyOSBAQAogCXN3aXRjaCAoQUNDRVNTX0ZCSU5GTyhjaGlwKSkgewogCQljYXNlIE1HQV8yMDY0OgogCQljYXNlIE1HQV8yMTY0OgotCQkJZXJyID0gaTJjX2J1c19yZWcoJm0yaW5mby0+ZGRjMSwgbWluZm8sIEREQzFCX0RBVEEsIEREQzFCX0NMSywgIkREQzpmYiV1ICMwIik7CisJCQllcnIgPSBpMmNfYnVzX3JlZygmbTJpbmZvLT5kZGMxLCBtaW5mbywKKwkJCQkJICBEREMxQl9EQVRBLCBEREMxQl9DTEssCisJCQkJCSAgIkREQzpmYiV1ICMwIiwgSTJDX0NMQVNTX0REQyk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJCWVyciA9IGkyY19idXNfcmVnKCZtMmluZm8tPmRkYzEsIG1pbmZvLCBEREMxX0RBVEEsIEREQzFfQ0xLLCAiRERDOmZiJXUgIzAiKTsKKwkJCWVyciA9IGkyY19idXNfcmVnKCZtMmluZm8tPmRkYzEsIG1pbmZvLAorCQkJCQkgIEREQzFfREFUQSwgRERDMV9DTEssCisJCQkJCSAgIkREQzpmYiV1ICMwIiwgSTJDX0NMQVNTX0REQyk7CiAJCQlicmVhazsKIAl9CiAJaWYgKGVycikKIAkJZ290byBmYWlsX2RkYzE7CiAJaWYgKEFDQ0VTU19GQklORk8oZGV2ZmxhZ3MuZHVhbGhlYWQpKSB7Ci0JCWVyciA9IGkyY19idXNfcmVnKCZtMmluZm8tPmRkYzIsIG1pbmZvLCBEREMyX0RBVEEsIEREQzJfQ0xLLCAiRERDOmZiJXUgIzEiKTsKKwkJZXJyID0gaTJjX2J1c19yZWcoJm0yaW5mby0+ZGRjMiwgbWluZm8sCisJCQkJICBEREMyX0RBVEEsIEREQzJfQ0xLLAorCQkJCSAgIkREQzpmYiV1ICMxIiwgSTJDX0NMQVNTX0REQyk7CiAJCWlmIChlcnIgPT0gLUVOT0RFVikgewogCQkJcHJpbnRrKEtFUk5fSU5GTyAiaTJjLW1hdHJveGZiOiBWR0EtPlRWIHBsdWcgZGV0ZWN0ZWQsIEREQyB1bmF2YWlsYWJsZS5cbiIpOwogCQl9IGVsc2UgaWYgKGVycikKIAkJCXByaW50ayhLRVJOX0lORk8gImkyYy1tYXRyb3hmYjogQ291bGQgbm90IHJlZ2lzdGVyIHNlY29uZGFyeSBvdXRwdXQgaTJjIGJ1cy4gQ29udGludWluZyBhbnl3YXkuXG4iKTsKIAkJLyogUmVnaXN0ZXIgbWF2ZW4gYnVzIGV2ZW4gb24gRzQ1MC9HNTUwICovCi0JCWVyciA9IGkyY19idXNfcmVnKCZtMmluZm8tPm1hdmVuLCBtaW5mbywgTUFUX0RBVEEsIE1BVF9DTEssICJNQVZFTjpmYiV1Iik7CisJCWVyciA9IGkyY19idXNfcmVnKCZtMmluZm8tPm1hdmVuLCBtaW5mbywKKwkJCQkgIE1BVF9EQVRBLCBNQVRfQ0xLLCAiTUFWRU46ZmIldSIsIDApOwogCQlpZiAoZXJyKQogCQkJcHJpbnRrKEtFUk5fSU5GTyAiaTJjLW1hdHJveGZiOiBDb3VsZCBub3QgcmVnaXN0ZXIgTWF2ZW4gaTJjIGJ1cy4gQ29udGludWluZyBhbnl3YXkuXG4iKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3B4YWZiLmMgYi9kcml2ZXJzL3ZpZGVvL3B4YWZiLmMKaW5kZXggN2RjZGExOC4uZDA3NDYyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9weGFmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vcHhhZmIuYwpAQCAtMTI0Niw3ICsxMjQ2LDcgQEAKICAqICAgICAgY2FjaGUuICBPbmNlIHRoaXMgYXJlYSBpcyByZW1hcHBlZCwgYWxsIHZpcnR1YWwgbWVtb3J5CiAgKiAgICAgIGFjY2VzcyB0byB0aGUgdmlkZW8gbWVtb3J5IHNob3VsZCBvY2N1ciBhdCB0aGUgbmV3IHJlZ2lvbi4KICAqLwotc3RhdGljIGludCBfX2luaXQgcHhhZmJfbWFwX3ZpZGVvX21lbW9yeShzdHJ1Y3QgcHhhZmJfaW5mbyAqZmJpKQorc3RhdGljIGludCBfX2RldmluaXQgcHhhZmJfbWFwX3ZpZGVvX21lbW9yeShzdHJ1Y3QgcHhhZmJfaW5mbyAqZmJpKQogewogCS8qCiAJICogV2UgcmVzZXJ2ZSBvbmUgcGFnZSBmb3IgdGhlIHBhbGV0dGUsIHBsdXMgdGhlIHNpemUKQEAgLTEzNDgsNyArMTM0OCw3IEBACiAJcHhhZmJfZGVjb2RlX21vZGVfaW5mbyhmYmksIGluZi0+bW9kZXMsIGluZi0+bnVtX21vZGVzKTsKIH0KIAotc3RhdGljIHN0cnVjdCBweGFmYl9pbmZvICogX19pbml0IHB4YWZiX2luaXRfZmJpbmZvKHN0cnVjdCBkZXZpY2UgKmRldikKK3N0YXRpYyBzdHJ1Y3QgcHhhZmJfaW5mbyAqIF9fZGV2aW5pdCBweGFmYl9pbml0X2ZiaW5mbyhzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHB4YWZiX2luZm8gKmZiaTsKIAl2b2lkICphZGRyOwpAQCAtMTQxMCw3ICsxNDEwLDcgQEAKIH0KIAogI2lmZGVmIENPTkZJR19GQl9QWEFfUEFSQU1FVEVSUwotc3RhdGljIGludCBfX2luaXQgcGFyc2Vfb3B0X21vZGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICp0aGlzX29wdCkKK3N0YXRpYyBpbnQgX19kZXZpbml0IHBhcnNlX29wdF9tb2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqdGhpc19vcHQpCiB7CiAJc3RydWN0IHB4YWZiX21hY2hfaW5mbyAqaW5mID0gZGV2LT5wbGF0Zm9ybV9kYXRhOwogCkBAIC0xNDY5LDcgKzE0NjksNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV9vcHQoc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICp0aGlzX29wdCkKK3N0YXRpYyBpbnQgX19kZXZpbml0IHBhcnNlX29wdChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNoYXIgKnRoaXNfb3B0KQogewogCXN0cnVjdCBweGFmYl9tYWNoX2luZm8gKmluZiA9IGRldi0+cGxhdGZvcm1fZGF0YTsKIAlzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvICptb2RlID0gJmluZi0+bW9kZXNbMF07CkBAIC0xNTY3LDcgKzE1NjcsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBweGFmYl9wYXJzZV9vcHRpb25zKHN0cnVjdCBkZXZpY2UgKmRldiwgY2hhciAqb3B0aW9ucykKK3N0YXRpYyBpbnQgX19kZXZpbml0IHB4YWZiX3BhcnNlX29wdGlvbnMoc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICpvcHRpb25zKQogewogCWNoYXIgKnRoaXNfb3B0OwogCWludCByZXQ7CkBAIC0xNTg4LDggKzE1ODgsOCBAQAogCiBzdGF0aWMgY2hhciBnX29wdGlvbnNbMjU2XSBfX2RldmluaXRkYXRhID0gIiI7CiAKLSNpZm5kZWYgQ09ORklHX01PRFVMRVMKLXN0YXRpYyBpbnQgX19kZXZpbml0IHB4YWZiX3NldHVwX29wdGlvbnModm9pZCkKKyNpZm5kZWYgTU9EVUxFCitzdGF0aWMgaW50IF9faW5pdCBweGFmYl9zZXR1cF9vcHRpb25zKHZvaWQpCiB7CiAJY2hhciAqb3B0aW9ucyA9IE5VTEw7CiAKQEAgLTE2MTMsNyArMTYxMyw3IEBACiAjZGVmaW5lIHB4YWZiX3NldHVwX29wdGlvbnMoKQkJKDApCiAjZW5kaWYKIAotc3RhdGljIGludCBfX2luaXQgcHhhZmJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQorc3RhdGljIGludCBfX2RldmluaXQgcHhhZmJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBweGFmYl9pbmZvICpmYmk7CiAJc3RydWN0IHB4YWZiX21hY2hfaW5mbyAqaW5mOwpAQCAtMTY4NSwxNCArMTY4NSwxNCBAQAogCWlmIChyID09IE5VTEwpIHsKIAkJZGV2X2VycigmZGV2LT5kZXYsICJubyBJL08gbWVtb3J5IHJlc291cmNlIGRlZmluZWRcbiIpOwogCQlyZXQgPSAtRU5PREVWOwotCQlnb3RvIGZhaWxlZDsKKwkJZ290byBmYWlsZWRfZmJpOwogCX0KIAogCXIgPSByZXF1ZXN0X21lbV9yZWdpb24oci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSwgZGV2LT5uYW1lKTsKIAlpZiAociA9PSBOVUxMKSB7CiAJCWRldl9lcnIoJmRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3QgSS9PIG1lbW9yeVxuIik7CiAJCXJldCA9IC1FQlVTWTsKLQkJZ290byBmYWlsZWQ7CisJCWdvdG8gZmFpbGVkX2ZiaTsKIAl9CiAKIAlmYmktPm1taW9fYmFzZSA9IGlvcmVtYXAoci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSk7CkBAIC0xNzM1LDggKzE3MzUsMTcgQEAKIAkgKiBUaGlzIG1ha2VzIHN1cmUgdGhhdCBvdXIgY29sb3VyIGJpdGZpZWxkCiAJICogZGVzY3JpcHRvcnMgYXJlIGNvcnJlY3RseSBpbml0aWFsaXNlZC4KIAkgKi8KLQlweGFmYl9jaGVja192YXIoJmZiaS0+ZmIudmFyLCAmZmJpLT5mYik7Ci0JcHhhZmJfc2V0X3BhcigmZmJpLT5mYik7CisJcmV0ID0gcHhhZmJfY2hlY2tfdmFyKCZmYmktPmZiLnZhciwgJmZiaS0+ZmIpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHN1aXRhYmxlIG1vZGVcbiIpOworCQlnb3RvIGZhaWxlZF9mcmVlX2lycTsKKwl9CisKKwlyZXQgPSBweGFmYl9zZXRfcGFyKCZmYmktPmZiKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoJmRldi0+ZGV2LCAiRmFpbGVkIHRvIHNldCBwYXJhbWV0ZXJzXG4iKTsKKwkJZ290byBmYWlsZWRfZnJlZV9pcnE7CisJfQogCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEoZGV2LCBmYmkpOwogCkBAIC0xNzQ0LDcgKzE3NTMsNyBAQAogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIoJmRldi0+ZGV2LAogCQkJIkZhaWxlZCB0byByZWdpc3RlciBmcmFtZWJ1ZmZlciBkZXZpY2U6ICVkXG4iLCByZXQpOwotCQlnb3RvIGZhaWxlZF9mcmVlX2lycTsKKwkJZ290byBmYWlsZWRfZnJlZV9jbWFwOwogCX0KIAogI2lmZGVmIENPTkZJR19DUFVfRlJFUQpAQCAtMTc2MywzMSArMTc3Miw3NCBAQAogCiAJcmV0dXJuIDA7CiAKK2ZhaWxlZF9mcmVlX2NtYXA6CisJaWYgKGZiaS0+ZmIuY21hcC5sZW4pCisJCWZiX2RlYWxsb2NfY21hcCgmZmJpLT5mYi5jbWFwKTsKIGZhaWxlZF9mcmVlX2lycToKIAlmcmVlX2lycShpcnEsIGZiaSk7Ci1mYWlsZWRfZnJlZV9yZXM6Ci0JcmVsZWFzZV9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEpOwotZmFpbGVkX2ZyZWVfaW86Ci0JaW91bm1hcChmYmktPm1taW9fYmFzZSk7CiBmYWlsZWRfZnJlZV9tZW06CiAJZG1hX2ZyZWVfd3JpdGVjb21iaW5lKCZkZXYtPmRldiwgZmJpLT5tYXBfc2l6ZSwKIAkJCWZiaS0+bWFwX2NwdSwgZmJpLT5tYXBfZG1hKTsKLWZhaWxlZDoKK2ZhaWxlZF9mcmVlX2lvOgorCWlvdW5tYXAoZmJpLT5tbWlvX2Jhc2UpOworZmFpbGVkX2ZyZWVfcmVzOgorCXJlbGVhc2VfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxKTsKK2ZhaWxlZF9mYmk6CisJY2xrX3B1dChmYmktPmNsayk7CiAJcGxhdGZvcm1fc2V0X2RydmRhdGEoZGV2LCBOVUxMKTsKIAlrZnJlZShmYmkpOworZmFpbGVkOgogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgX19kZXZleGl0IHB4YWZiX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHB4YWZiX2luZm8gKmZiaSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IHJlc291cmNlICpyOworCWludCBpcnE7CisJc3RydWN0IGZiX2luZm8gKmluZm87CisKKwlpZiAoIWZiaSkKKwkJcmV0dXJuIDA7CisKKwlpbmZvID0gJmZiaS0+ZmI7CisKKwl1bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyKGluZm8pOworCisJcHhhZmJfZGlzYWJsZV9jb250cm9sbGVyKGZiaSk7CisKKwlpZiAoZmJpLT5mYi5jbWFwLmxlbikKKwkJZmJfZGVhbGxvY19jbWFwKCZmYmktPmZiLmNtYXApOworCisJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShkZXYsIDApOworCWZyZWVfaXJxKGlycSwgZmJpKTsKKworCWRtYV9mcmVlX3dyaXRlY29tYmluZSgmZGV2LT5kZXYsIGZiaS0+bWFwX3NpemUsCisJCQkJCWZiaS0+bWFwX2NwdSwgZmJpLT5tYXBfZG1hKTsKKworCWlvdW5tYXAoZmJpLT5tbWlvX2Jhc2UpOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlyZWxlYXNlX21lbV9yZWdpb24oci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSk7CisKKwljbGtfcHV0KGZiaS0+Y2xrKTsKKwlrZnJlZShmYmkpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHB4YWZiX2RyaXZlciA9IHsKIAkucHJvYmUJCT0gcHhhZmJfcHJvYmUsCisJLnJlbW92ZSAJPSBweGFmYl9yZW1vdmUsCiAJLnN1c3BlbmQJPSBweGFmYl9zdXNwZW5kLAogCS5yZXN1bWUJCT0gcHhhZmJfcmVzdW1lLAogCS5kcml2ZXIJCT0geworCQkub3duZXIJPSBUSElTX01PRFVMRSwKIAkJLm5hbWUJPSAicHhhMnh4LWZiIiwKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2RldmluaXQgcHhhZmJfaW5pdCh2b2lkKQorc3RhdGljIGludCBfX2luaXQgcHhhZmJfaW5pdCh2b2lkKQogewogCWlmIChweGFmYl9zZXR1cF9vcHRpb25zKCkpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTc5NSw3ICsxODQ3LDEzIEBACiAJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmcHhhZmJfZHJpdmVyKTsKIH0KIAorc3RhdGljIHZvaWQgX19leGl0IHB4YWZiX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmcHhhZmJfZHJpdmVyKTsKK30KKwogbW9kdWxlX2luaXQocHhhZmJfaW5pdCk7Cittb2R1bGVfZXhpdChweGFmYl9leGl0KTsKIAogTU9EVUxFX0RFU0NSSVBUSU9OKCJsb2FkYWJsZSBmcmFtZWJ1ZmZlciBkcml2ZXIgZm9yIFBYQSIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9zZ2l2d2ZiLmMgYi9kcml2ZXJzL3ZpZGVvL3NnaXZ3ZmIuYwppbmRleCA0ZmIxNjI0Li5mNTI1MmMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3NnaXZ3ZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL3NnaXZ3ZmIuYwpAQCAtMjEsOCArMjEsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL210cnIuaD4KLQotI2luY2x1ZGUgPHNldHVwX2FyY2guaD4KKyNpbmNsdWRlIDxhc20vdmlzd3Mvc2dpdncuaD4KIAogI2RlZmluZSBJTkNMVURFX1RJTUlOR19UQUJMRV9EQVRBCiAjZGVmaW5lIERCRV9SRUdfQkFTRSBwYXItPnJlZ3MKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vdzEwMGZiLmMgYi9kcml2ZXJzL3ZpZGVvL3cxMDBmYi5jCmluZGV4IDMwNDY5YmYuLmQwNjc0ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vdzEwMGZiLmMKKysrIGIvZHJpdmVycy92aWRlby93MTAwZmIuYwpAQCAtMTAwMyw2ICsxMDAzLDcgQEAKIHN0YXRpYyBzdHJ1Y3QgdzEwMF9wbGxfaW5mbyB4dGFsXzE2MDAwMDAwW10gPSB7CiAJLypmcmVxICAgICBNICAgTl9pbnQgICAgTl9mYWMgIHRmZ29hbCAgbG9ja190aW1lICovCiAJeyA3MiwgICAgICAxLCAgIDgsICAgICAgIDAsICAgICAweGUwLCAgICAgICAgNDh9LCAvKiB0ZmdvYWwgZ3Vlc3NlZCAqLworCXsgODAsICAgICAgMSwgICA5LCAgICAgICAwLCAgICAgMHhlMCwgICAgICAgIDEzfSwgLyogdGZnb2FsIGd1ZXNzZWQgKi8KIAl7IDk1LCAgICAgIDEsICAgMTAsICAgICAgNywgICAgIDB4ZTAsICAgICAgICAzOH0sIC8qIHRmZ29hbCBndWVzc2VkICovCiAJeyA5NiwgICAgICAxLCAgIDExLCAgICAgIDAsICAgICAweGUwLCAgICAgICAgMzZ9LCAvKiB0ZmdvYWwgZ3Vlc3NlZCAqLwogCXsgIDAsICAgICAgMCwgICAwLCAgICAgICAwLCAgICAgICAgMCwgICAgICAgICAwfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8veGVuLWZiZnJvbnQuYyBiL2RyaXZlcnMvdmlkZW8veGVuLWZiZnJvbnQuYwppbmRleCA2MTlhNmY4Li40N2VkMzliIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3hlbi1mYmZyb250LmMKKysrIGIvZHJpdmVycy92aWRlby94ZW4tZmJmcm9udC5jCkBAIC0xOCw2ICsxOCw3IEBACiAgKiBmcmFtZSBidWZmZXIuCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2ZiLmg+CkBAIC00MiwzNyArNDMsNjggQEAKIAlzdHJ1Y3QgeGVuZmJfcGFnZQkqcGFnZTsKIAl1bnNpZ25lZCBsb25nIAkJKm1mbnM7CiAJaW50CQkJdXBkYXRlX3dhbnRlZDsgLyogWEVORkJfVFlQRV9VUERBVEUgd2FudGVkICovCisJaW50CQkJZmVhdHVyZV9yZXNpemU7IC8qIFhFTkZCX1RZUEVfUkVTSVpFIG9rICovCisJc3RydWN0IHhlbmZiX3Jlc2l6ZQlyZXNpemU7CQkvKiBwcm90ZWN0ZWQgYnkgcmVzaXplX2xvY2sgKi8KKwlpbnQJCQlyZXNpemVfZHB5OwkvKiBkaXR0byAqLworCXNwaW5sb2NrX3QJCXJlc2l6ZV9sb2NrOwogCiAJc3RydWN0IHhlbmJ1c19kZXZpY2UJKnhiZGV2OwogfTsKIAotc3RhdGljIHUzMiB4ZW5mYl9tZW1fbGVuID0gWEVORkJfV0lEVEggKiBYRU5GQl9IRUlHSFQgKiBYRU5GQl9ERVBUSCAvIDg7CisjZGVmaW5lIFhFTkZCX0RFRkFVTFRfRkJfTEVOIChYRU5GQl9XSURUSCAqIFhFTkZCX0hFSUdIVCAqIFhFTkZCX0RFUFRIIC8gOCkKIAorZW51bSB7IEtQQVJBTV9NRU0sIEtQQVJBTV9XSURUSCwgS1BBUkFNX0hFSUdIVCwgS1BBUkFNX0NOVCB9Oworc3RhdGljIGludCB2aWRlb1tLUEFSQU1fQ05UXSA9IHsgMiwgWEVORkJfV0lEVEgsIFhFTkZCX0hFSUdIVCB9OworbW9kdWxlX3BhcmFtX2FycmF5KHZpZGVvLCBpbnQsIE5VTEwsIDApOworTU9EVUxFX1BBUk1fREVTQyh2aWRlbywKKwkiVmlkZW8gbWVtb3J5IHNpemUgaW4gTUIsIHdpZHRoLCBoZWlnaHQgaW4gcGl4ZWxzIChkZWZhdWx0IDIsODAwLDYwMCkiKTsKKworc3RhdGljIHZvaWQgeGVuZmJfbWFrZV9wcmVmZXJyZWRfY29uc29sZSh2b2lkKTsKIHN0YXRpYyBpbnQgeGVuZmJfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICopOwotc3RhdGljIHZvaWQgeGVuZmJfaW5pdF9zaGFyZWRfcGFnZShzdHJ1Y3QgeGVuZmJfaW5mbyAqKTsKK3N0YXRpYyB2b2lkIHhlbmZiX2luaXRfc2hhcmVkX3BhZ2Uoc3RydWN0IHhlbmZiX2luZm8gKiwgc3RydWN0IGZiX2luZm8gKik7CiBzdGF0aWMgaW50IHhlbmZiX2Nvbm5lY3RfYmFja2VuZChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqLCBzdHJ1Y3QgeGVuZmJfaW5mbyAqKTsKIHN0YXRpYyB2b2lkIHhlbmZiX2Rpc2Nvbm5lY3RfYmFja2VuZChzdHJ1Y3QgeGVuZmJfaW5mbyAqKTsKIAorc3RhdGljIHZvaWQgeGVuZmJfc2VuZF9ldmVudChzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbywKKwkJCSAgICAgdW5pb24geGVuZmJfb3V0X2V2ZW50ICpldmVudCkKK3sKKwl1MzIgcHJvZDsKKworCXByb2QgPSBpbmZvLT5wYWdlLT5vdXRfcHJvZDsKKwkvKiBjYWxsZXIgZW5zdXJlcyAheGVuZmJfcXVldWVfZnVsbCgpICovCisJbWIoKTsJCQkvKiBlbnN1cmUgcmluZyBzcGFjZSBhdmFpbGFibGUgKi8KKwlYRU5GQl9PVVRfUklOR19SRUYoaW5mby0+cGFnZSwgcHJvZCkgPSAqZXZlbnQ7CisJd21iKCk7CQkJLyogZW5zdXJlIHJpbmcgY29udGVudHMgdmlzaWJsZSAqLworCWluZm8tPnBhZ2UtPm91dF9wcm9kID0gcHJvZCArIDE7CisKKwlub3RpZnlfcmVtb3RlX3ZpYV9pcnEoaW5mby0+aXJxKTsKK30KKwogc3RhdGljIHZvaWQgeGVuZmJfZG9fdXBkYXRlKHN0cnVjdCB4ZW5mYl9pbmZvICppbmZvLAogCQkJICAgIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKQogewogCXVuaW9uIHhlbmZiX291dF9ldmVudCBldmVudDsKLQl1MzIgcHJvZDsKIAorCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZihldmVudCkpOwogCWV2ZW50LnR5cGUgPSBYRU5GQl9UWVBFX1VQREFURTsKIAlldmVudC51cGRhdGUueCA9IHg7CiAJZXZlbnQudXBkYXRlLnkgPSB5OwogCWV2ZW50LnVwZGF0ZS53aWR0aCA9IHc7CiAJZXZlbnQudXBkYXRlLmhlaWdodCA9IGg7CiAKLQlwcm9kID0gaW5mby0+cGFnZS0+b3V0X3Byb2Q7CiAJLyogY2FsbGVyIGVuc3VyZXMgIXhlbmZiX3F1ZXVlX2Z1bGwoKSAqLwotCW1iKCk7CQkJLyogZW5zdXJlIHJpbmcgc3BhY2UgYXZhaWxhYmxlICovCi0JWEVORkJfT1VUX1JJTkdfUkVGKGluZm8tPnBhZ2UsIHByb2QpID0gZXZlbnQ7Ci0Jd21iKCk7CQkJLyogZW5zdXJlIHJpbmcgY29udGVudHMgdmlzaWJsZSAqLwotCWluZm8tPnBhZ2UtPm91dF9wcm9kID0gcHJvZCArIDE7CisJeGVuZmJfc2VuZF9ldmVudChpbmZvLCAmZXZlbnQpOworfQogCi0Jbm90aWZ5X3JlbW90ZV92aWFfaXJxKGluZm8tPmlycSk7CitzdGF0aWMgdm9pZCB4ZW5mYl9kb19yZXNpemUoc3RydWN0IHhlbmZiX2luZm8gKmluZm8pCit7CisJdW5pb24geGVuZmJfb3V0X2V2ZW50IGV2ZW50OworCisJbWVtc2V0KCZldmVudCwgMCwgc2l6ZW9mKGV2ZW50KSk7CisJZXZlbnQucmVzaXplID0gaW5mby0+cmVzaXplOworCisJLyogY2FsbGVyIGVuc3VyZXMgIXhlbmZiX3F1ZXVlX2Z1bGwoKSAqLworCXhlbmZiX3NlbmRfZXZlbnQoaW5mbywgJmV2ZW50KTsKIH0KIAogc3RhdGljIGludCB4ZW5mYl9xdWV1ZV9mdWxsKHN0cnVjdCB4ZW5mYl9pbmZvICppbmZvKQpAQCAtODQsMTIgKzExNiwyOCBAQAogCXJldHVybiBwcm9kIC0gY29ucyA9PSBYRU5GQl9PVVRfUklOR19MRU47CiB9CiAKK3N0YXRpYyB2b2lkIHhlbmZiX2hhbmRsZV9yZXNpemVfZHB5KHN0cnVjdCB4ZW5mYl9pbmZvICppbmZvKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaW5mby0+cmVzaXplX2xvY2ssIGZsYWdzKTsKKwlpZiAoaW5mby0+cmVzaXplX2RweSkgeworCQlpZiAoIXhlbmZiX3F1ZXVlX2Z1bGwoaW5mbykpIHsKKwkJCWluZm8tPnJlc2l6ZV9kcHkgPSAwOworCQkJeGVuZmJfZG9fcmVzaXplKGluZm8pOworCQl9CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmluZm8tPnJlc2l6ZV9sb2NrLCBmbGFncyk7Cit9CisKIHN0YXRpYyB2b2lkIHhlbmZiX3JlZnJlc2goc3RydWN0IHhlbmZiX2luZm8gKmluZm8sCiAJCQkgIGludCB4MSwgaW50IHkxLCBpbnQgdywgaW50IGgpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgeTIgPSB5MSArIGggLSAxOwogCWludCB4MiA9IHgxICsgdyAtIDE7CisJaW50IHkyID0geTEgKyBoIC0gMTsKKworCXhlbmZiX2hhbmRsZV9yZXNpemVfZHB5KGluZm8pOwogCiAJaWYgKCFpbmZvLT51cGRhdGVfd2FudGVkKQogCQlyZXR1cm47CkBAIC0yMjIsNiArMjcwLDU3IEBACiAJcmV0dXJuIHJlczsKIH0KIAorc3RhdGljIGludAoreGVuZmJfY2hlY2tfdmFyKHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKK3sKKwlzdHJ1Y3QgeGVuZmJfaW5mbyAqeGVuZmJfaW5mbzsKKwlpbnQgcmVxdWlyZWRfbWVtX2xlbjsKKworCXhlbmZiX2luZm8gPSBpbmZvLT5wYXI7CisKKwlpZiAoIXhlbmZiX2luZm8tPmZlYXR1cmVfcmVzaXplKSB7CisJCWlmICh2YXItPnhyZXMgPT0gdmlkZW9bS1BBUkFNX1dJRFRIXSAmJgorCQkgICAgdmFyLT55cmVzID09IHZpZGVvW0tQQVJBTV9IRUlHSFRdICYmCisJCSAgICB2YXItPmJpdHNfcGVyX3BpeGVsID09IHhlbmZiX2luZm8tPnBhZ2UtPmRlcHRoKSB7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBDYW4ndCByZXNpemUgcGFzdCBpbml0aWFsIHdpZHRoIGFuZCBoZWlnaHQgKi8KKwlpZiAodmFyLT54cmVzID4gdmlkZW9bS1BBUkFNX1dJRFRIXSB8fCB2YXItPnlyZXMgPiB2aWRlb1tLUEFSQU1fSEVJR0hUXSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXF1aXJlZF9tZW1fbGVuID0gdmFyLT54cmVzICogdmFyLT55cmVzICogeGVuZmJfaW5mby0+cGFnZS0+ZGVwdGggLyA4OworCWlmICh2YXItPmJpdHNfcGVyX3BpeGVsID09IHhlbmZiX2luZm8tPnBhZ2UtPmRlcHRoICYmCisJICAgIHZhci0+eHJlcyA8PSBpbmZvLT5maXgubGluZV9sZW5ndGggLyAoWEVORkJfREVQVEggLyA4KSAmJgorCSAgICByZXF1aXJlZF9tZW1fbGVuIDw9IGluZm8tPmZpeC5zbWVtX2xlbikgeworCQl2YXItPnhyZXNfdmlydHVhbCA9IHZhci0+eHJlczsKKwkJdmFyLT55cmVzX3ZpcnR1YWwgPSB2YXItPnlyZXM7CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGludCB4ZW5mYl9zZXRfcGFyKHN0cnVjdCBmYl9pbmZvICppbmZvKQoreworCXN0cnVjdCB4ZW5mYl9pbmZvICp4ZW5mYl9pbmZvOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwl4ZW5mYl9pbmZvID0gaW5mby0+cGFyOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnhlbmZiX2luZm8tPnJlc2l6ZV9sb2NrLCBmbGFncyk7CisJeGVuZmJfaW5mby0+cmVzaXplLnR5cGUgPSBYRU5GQl9UWVBFX1JFU0laRTsKKwl4ZW5mYl9pbmZvLT5yZXNpemUud2lkdGggPSBpbmZvLT52YXIueHJlczsKKwl4ZW5mYl9pbmZvLT5yZXNpemUuaGVpZ2h0ID0gaW5mby0+dmFyLnlyZXM7CisJeGVuZmJfaW5mby0+cmVzaXplLnN0cmlkZSA9IGluZm8tPmZpeC5saW5lX2xlbmd0aDsKKwl4ZW5mYl9pbmZvLT5yZXNpemUuZGVwdGggPSBpbmZvLT52YXIuYml0c19wZXJfcGl4ZWw7CisJeGVuZmJfaW5mby0+cmVzaXplLm9mZnNldCA9IDA7CisJeGVuZmJfaW5mby0+cmVzaXplX2RweSA9IDE7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmeGVuZmJfaW5mby0+cmVzaXplX2xvY2ssIGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHN0cnVjdCBmYl9vcHMgeGVuZmJfZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfcmVhZAk9IGZiX3N5c19yZWFkLApAQCAtMjMwLDYgKzMyOSw4IEBACiAJLmZiX2ZpbGxyZWN0CT0geGVuZmJfZmlsbHJlY3QsCiAJLmZiX2NvcHlhcmVhCT0geGVuZmJfY29weWFyZWEsCiAJLmZiX2ltYWdlYmxpdAk9IHhlbmZiX2ltYWdlYmxpdCwKKwkuZmJfY2hlY2tfdmFyCT0geGVuZmJfY2hlY2tfdmFyLAorCS5mYl9zZXRfcGFyICAgICA9IHhlbmZiX3NldF9wYXIsCiB9OwogCiBzdGF0aWMgaXJxcmV0dXJuX3QgeGVuZmJfZXZlbnRfaGFuZGxlcihpbnQgcnEsIHZvaWQgKmRldl9pZCkKQEAgLTI1OCw2ICszNTksOCBAQAogewogCXN0cnVjdCB4ZW5mYl9pbmZvICppbmZvOwogCXN0cnVjdCBmYl9pbmZvICpmYl9pbmZvOworCWludCBmYl9zaXplOworCWludCB2YWw7CiAJaW50IHJldDsKIAogCWluZm8gPSBremFsbG9jKHNpemVvZigqaW5mbyksIEdGUF9LRVJORUwpOwpAQCAtMjY1LDE4ICszNjgsMzUgQEAKIAkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIC1FTk9NRU0sICJhbGxvY2F0aW5nIGluZm8gc3RydWN0dXJlIik7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KKworCS8qIExpbWl0IGtlcm5lbCBwYXJhbSB2aWRlb3JhbSBhbW91bnQgdG8gd2hhdCBpcyBpbiB4ZW5zdG9yZSAqLworCWlmICh4ZW5idXNfc2NhbmYoWEJUX05JTCwgZGV2LT5vdGhlcmVuZCwgInZpZGVvcmFtIiwgIiVkIiwgJnZhbCkgPT0gMSkgeworCQlpZiAodmFsIDwgdmlkZW9bS1BBUkFNX01FTV0pCisJCQl2aWRlb1tLUEFSQU1fTUVNXSA9IHZhbDsKKwl9CisKKwkvKiBJZiByZXF1ZXN0ZWQgcmVzIGRvZXMgbm90IGZpdCBpbiBhdmFpbGFibGUgbWVtb3J5LCB1c2UgZGVmYXVsdCAqLworCWZiX3NpemUgPSB2aWRlb1tLUEFSQU1fTUVNXSAqIDEwMjQgKiAxMDI0OworCWlmICh2aWRlb1tLUEFSQU1fV0lEVEhdICogdmlkZW9bS1BBUkFNX0hFSUdIVF0gKiBYRU5GQl9ERVBUSCAvIDgKKwkgICAgPiBmYl9zaXplKSB7CisJCXZpZGVvW0tQQVJBTV9XSURUSF0gPSBYRU5GQl9XSURUSDsKKwkJdmlkZW9bS1BBUkFNX0hFSUdIVF0gPSBYRU5GQl9IRUlHSFQ7CisJCWZiX3NpemUgPSBYRU5GQl9ERUZBVUxUX0ZCX0xFTjsKKwl9CisKIAlkZXYtPmRldi5kcml2ZXJfZGF0YSA9IGluZm87CiAJaW5mby0+eGJkZXYgPSBkZXY7CiAJaW5mby0+aXJxID0gLTE7CiAJaW5mby0+eDEgPSBpbmZvLT55MSA9IElOVF9NQVg7CiAJc3Bpbl9sb2NrX2luaXQoJmluZm8tPmRpcnR5X2xvY2spOworCXNwaW5fbG9ja19pbml0KCZpbmZvLT5yZXNpemVfbG9jayk7CiAKLQlpbmZvLT5mYiA9IHZtYWxsb2MoeGVuZmJfbWVtX2xlbik7CisJaW5mby0+ZmIgPSB2bWFsbG9jKGZiX3NpemUpOwogCWlmIChpbmZvLT5mYiA9PSBOVUxMKQogCQlnb3RvIGVycm9yX25vbWVtOwotCW1lbXNldChpbmZvLT5mYiwgMCwgeGVuZmJfbWVtX2xlbik7CisJbWVtc2V0KGluZm8tPmZiLCAwLCBmYl9zaXplKTsKIAotCWluZm8tPm5yX3BhZ2VzID0gKHhlbmZiX21lbV9sZW4gKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOworCWluZm8tPm5yX3BhZ2VzID0gKGZiX3NpemUgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOwogCiAJaW5mby0+bWZucyA9IHZtYWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogaW5mby0+bnJfcGFnZXMpOwogCWlmICghaW5mby0+bWZucykKQEAgLTI4Nyw4ICs0MDcsNiBAQAogCWlmICghaW5mby0+cGFnZSkKIAkJZ290byBlcnJvcl9ub21lbTsKIAotCXhlbmZiX2luaXRfc2hhcmVkX3BhZ2UoaW5mbyk7Ci0KIAkvKiBhYnVzaW5nIGZyYW1lYnVmZmVyX2FsbG9jKCkgdG8gYWxsb2NhdGUgcHNldWRvX3BhbGV0dGUgKi8KIAlmYl9pbmZvID0gZnJhbWVidWZmZXJfYWxsb2Moc2l6ZW9mKHUzMikgKiAyNTYsIE5VTEwpOwogCWlmIChmYl9pbmZvID09IE5VTEwpCkBAIC0zMDEsOSArNDE5LDkgQEAKIAlmYl9pbmZvLT5zY3JlZW5fYmFzZSA9IGluZm8tPmZiOwogCiAJZmJfaW5mby0+ZmJvcHMgPSAmeGVuZmJfZmJfb3BzOwotCWZiX2luZm8tPnZhci54cmVzX3ZpcnR1YWwgPSBmYl9pbmZvLT52YXIueHJlcyA9IGluZm8tPnBhZ2UtPndpZHRoOwotCWZiX2luZm8tPnZhci55cmVzX3ZpcnR1YWwgPSBmYl9pbmZvLT52YXIueXJlcyA9IGluZm8tPnBhZ2UtPmhlaWdodDsKLQlmYl9pbmZvLT52YXIuYml0c19wZXJfcGl4ZWwgPSBpbmZvLT5wYWdlLT5kZXB0aDsKKwlmYl9pbmZvLT52YXIueHJlc192aXJ0dWFsID0gZmJfaW5mby0+dmFyLnhyZXMgPSB2aWRlb1tLUEFSQU1fV0lEVEhdOworCWZiX2luZm8tPnZhci55cmVzX3ZpcnR1YWwgPSBmYl9pbmZvLT52YXIueXJlcyA9IHZpZGVvW0tQQVJBTV9IRUlHSFRdOworCWZiX2luZm8tPnZhci5iaXRzX3Blcl9waXhlbCA9IFhFTkZCX0RFUFRIOwogCiAJZmJfaW5mby0+dmFyLnJlZCA9IChzdHJ1Y3QgZmJfYml0ZmllbGQpezE2LCA4LCAwfTsKIAlmYl9pbmZvLT52YXIuZ3JlZW4gPSAoc3RydWN0IGZiX2JpdGZpZWxkKXs4LCA4LCAwfTsKQEAgLTMxNSw5ICs0MzMsOSBAQAogCWZiX2luZm8tPnZhci52bW9kZSA9IEZCX1ZNT0RFX05PTklOVEVSTEFDRUQ7CiAKIAlmYl9pbmZvLT5maXgudmlzdWFsID0gRkJfVklTVUFMX1RSVUVDT0xPUjsKLQlmYl9pbmZvLT5maXgubGluZV9sZW5ndGggPSBpbmZvLT5wYWdlLT5saW5lX2xlbmd0aDsKKwlmYl9pbmZvLT5maXgubGluZV9sZW5ndGggPSBmYl9pbmZvLT52YXIueHJlcyAqIFhFTkZCX0RFUFRIIC8gODsKIAlmYl9pbmZvLT5maXguc21lbV9zdGFydCA9IDA7Ci0JZmJfaW5mby0+Zml4LnNtZW1fbGVuID0geGVuZmJfbWVtX2xlbjsKKwlmYl9pbmZvLT5maXguc21lbV9sZW4gPSBmYl9zaXplOwogCXN0cmNweShmYl9pbmZvLT5maXguaWQsICJ4ZW4iKTsKIAlmYl9pbmZvLT5maXgudHlwZSA9IEZCX1RZUEVfUEFDS0VEX1BJWEVMUzsKIAlmYl9pbmZvLT5maXguYWNjZWwgPSBGQl9BQ0NFTF9OT05FOwpAQCAtMzM0LDYgKzQ1Miw4IEBACiAJZmJfaW5mby0+ZmJkZWZpbyA9ICZ4ZW5mYl9kZWZpbzsKIAlmYl9kZWZlcnJlZF9pb19pbml0KGZiX2luZm8pOwogCisJeGVuZmJfaW5pdF9zaGFyZWRfcGFnZShpbmZvLCBmYl9pbmZvKTsKKwogCXJldCA9IHJlZ2lzdGVyX2ZyYW1lYnVmZmVyKGZiX2luZm8pOwogCWlmIChyZXQpIHsKIAkJZmJfZGVmZXJyZWRfaW9fY2xlYW51cChmYl9pbmZvKTsKQEAgLTM0OCw2ICs0NjgsNyBAQAogCWlmIChyZXQgPCAwKQogCQlnb3RvIGVycm9yOwogCisJeGVuZmJfbWFrZV9wcmVmZXJyZWRfY29uc29sZSgpOwogCXJldHVybiAwOwogCiAgZXJyb3Jfbm9tZW06CkBAIC0zNTgsMTIgKzQ3OSwzNCBAQAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBfX2RldmluaXQgdm9pZAoreGVuZmJfbWFrZV9wcmVmZXJyZWRfY29uc29sZSh2b2lkKQoreworCXN0cnVjdCBjb25zb2xlICpjOworCisJaWYgKGNvbnNvbGVfc2V0X29uX2NtZGxpbmUpCisJCXJldHVybjsKKworCWFjcXVpcmVfY29uc29sZV9zZW0oKTsKKwlmb3IgKGMgPSBjb25zb2xlX2RyaXZlcnM7IGM7IGMgPSBjLT5uZXh0KSB7CisJCWlmICghc3RyY21wKGMtPm5hbWUsICJ0dHkiKSAmJiBjLT5pbmRleCA9PSAwKQorCQkJYnJlYWs7CisJfQorCXJlbGVhc2VfY29uc29sZV9zZW0oKTsKKwlpZiAoYykgeworCQl1bnJlZ2lzdGVyX2NvbnNvbGUoYyk7CisJCWMtPmZsYWdzIHw9IENPTl9DT05TREVWOworCQljLT5mbGFncyAmPSB+Q09OX1BSSU5UQlVGRkVSOyAvKiBkb24ndCBwcmludCBhZ2FpbiAqLworCQlyZWdpc3Rlcl9jb25zb2xlKGMpOworCX0KK30KKwogc3RhdGljIGludCB4ZW5mYl9yZXN1bWUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbyA9IGRldi0+ZGV2LmRyaXZlcl9kYXRhOwogCiAJeGVuZmJfZGlzY29ubmVjdF9iYWNrZW5kKGluZm8pOwotCXhlbmZiX2luaXRfc2hhcmVkX3BhZ2UoaW5mbyk7CisJeGVuZmJfaW5pdF9zaGFyZWRfcGFnZShpbmZvLCBpbmZvLT5mYl9pbmZvKTsKIAlyZXR1cm4geGVuZmJfY29ubmVjdF9iYWNrZW5kKGRldiwgaW5mbyk7CiB9CiAKQEAgLTM5MSwyMCArNTM0LDIzIEBACiAJcmV0dXJuIHBmbl90b19tZm4odm1hbGxvY190b19wZm4oYWRkcmVzcykpOwogfQogCi1zdGF0aWMgdm9pZCB4ZW5mYl9pbml0X3NoYXJlZF9wYWdlKHN0cnVjdCB4ZW5mYl9pbmZvICppbmZvKQorc3RhdGljIHZvaWQgeGVuZmJfaW5pdF9zaGFyZWRfcGFnZShzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbywKKwkJCQkgICBzdHJ1Y3QgZmJfaW5mbyAqZmJfaW5mbykKIHsKIAlpbnQgaTsKKwlpbnQgZXBkID0gUEFHRV9TSVpFIC8gc2l6ZW9mKGluZm8tPm1mbnNbMF0pOwogCiAJZm9yIChpID0gMDsgaSA8IGluZm8tPm5yX3BhZ2VzOyBpKyspCiAJCWluZm8tPm1mbnNbaV0gPSB2bWFsbG9jX3RvX21mbihpbmZvLT5mYiArIGkgKiBQQUdFX1NJWkUpOwogCi0JaW5mby0+cGFnZS0+cGRbMF0gPSB2bWFsbG9jX3RvX21mbihpbmZvLT5tZm5zKTsKLQlpbmZvLT5wYWdlLT5wZFsxXSA9IDA7Ci0JaW5mby0+cGFnZS0+d2lkdGggPSBYRU5GQl9XSURUSDsKLQlpbmZvLT5wYWdlLT5oZWlnaHQgPSBYRU5GQl9IRUlHSFQ7Ci0JaW5mby0+cGFnZS0+ZGVwdGggPSBYRU5GQl9ERVBUSDsKLQlpbmZvLT5wYWdlLT5saW5lX2xlbmd0aCA9IChpbmZvLT5wYWdlLT5kZXB0aCAvIDgpICogaW5mby0+cGFnZS0+d2lkdGg7Ci0JaW5mby0+cGFnZS0+bWVtX2xlbmd0aCA9IHhlbmZiX21lbV9sZW47CisJZm9yIChpID0gMDsgaSAqIGVwZCA8IGluZm8tPm5yX3BhZ2VzOyBpKyspCisJCWluZm8tPnBhZ2UtPnBkW2ldID0gdm1hbGxvY190b19tZm4oJmluZm8tPm1mbnNbaSAqIGVwZF0pOworCisJaW5mby0+cGFnZS0+d2lkdGggPSBmYl9pbmZvLT52YXIueHJlczsKKwlpbmZvLT5wYWdlLT5oZWlnaHQgPSBmYl9pbmZvLT52YXIueXJlczsKKwlpbmZvLT5wYWdlLT5kZXB0aCA9IGZiX2luZm8tPnZhci5iaXRzX3Blcl9waXhlbDsKKwlpbmZvLT5wYWdlLT5saW5lX2xlbmd0aCA9IGZiX2luZm8tPmZpeC5saW5lX2xlbmd0aDsKKwlpbmZvLT5wYWdlLT5tZW1fbGVuZ3RoID0gZmJfaW5mby0+Zml4LnNtZW1fbGVuOwogCWluZm8tPnBhZ2UtPmluX2NvbnMgPSBpbmZvLT5wYWdlLT5pbl9wcm9kID0gMDsKIAlpbmZvLT5wYWdlLT5vdXRfY29ucyA9IGluZm8tPnBhZ2UtPm91dF9wcm9kID0gMDsKIH0KQEAgLTUwNCw2ICs2NTAsMTEgQEAKIAkJCXZhbCA9IDA7CiAJCWlmICh2YWwpCiAJCQlpbmZvLT51cGRhdGVfd2FudGVkID0gMTsKKworCQlpZiAoeGVuYnVzX3NjYW5mKFhCVF9OSUwsIGRldi0+b3RoZXJlbmQsCisJCQkJICJmZWF0dXJlLXJlc2l6ZSIsICIlZCIsICZ2YWwpIDwgMCkKKwkJCXZhbCA9IDA7CisJCWluZm8tPmZlYXR1cmVfcmVzaXplID0gdmFsOwogCQlicmVhazsKIAogCWNhc2UgWGVuYnVzU3RhdGVDbG9zaW5nOgpAQCAtNTQ3LDQgKzY5OCw2IEBACiBtb2R1bGVfaW5pdCh4ZW5mYl9pbml0KTsKIG1vZHVsZV9leGl0KHhlbmZiX2NsZWFudXApOwogCitNT0RVTEVfREVTQ1JJUFRJT04oIlhlbiB2aXJ0dWFsIGZyYW1lYnVmZmVyIGRldmljZSBmcm9udGVuZCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0FMSUFTKCJ4ZW46dmZiIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9NYWtlZmlsZSBiL2RyaXZlcnMveGVuL01ha2VmaWxlCmluZGV4IDM3YWYwNGYuLjM2MzI4NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL01ha2VmaWxlCisrKyBiL2RyaXZlcnMveGVuL01ha2VmaWxlCkBAIC0xLDQgKzEsNCBAQAotb2JqLXkJKz0gZ3JhbnQtdGFibGUubyBmZWF0dXJlcy5vIGV2ZW50cy5vCitvYmoteQkrPSBncmFudC10YWJsZS5vIGZlYXR1cmVzLm8gZXZlbnRzLm8gbWFuYWdlLm8KIG9iai15CSs9IHhlbmJ1cy8KIG9iai0kKENPTkZJR19YRU5fWEVOQ09NTSkJKz0geGVuY29tbS5vCiBvYmotJChDT05GSUdfWEVOX0JBTExPT04pCSs9IGJhbGxvb24ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vYmFsbG9vbi5jIGIvZHJpdmVycy94ZW4vYmFsbG9vbi5jCmluZGV4IGFiMjViYTYuLjU5MWJjMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2JhbGxvb24uYworKysgYi9kcml2ZXJzL3hlbi9iYWxsb29uLmMKQEAgLTIyNSw3ICsyMjUsNyBAQAogCQlwYWdlID0gYmFsbG9vbl9uZXh0X3BhZ2UocGFnZSk7CiAJfQogCi0JcmVzZXJ2YXRpb24uZXh0ZW50X3N0YXJ0ID0gKHVuc2lnbmVkIGxvbmcpZnJhbWVfbGlzdDsKKwlzZXRfeGVuX2d1ZXN0X2hhbmRsZShyZXNlcnZhdGlvbi5leHRlbnRfc3RhcnQsIGZyYW1lX2xpc3QpOwogCXJlc2VydmF0aW9uLm5yX2V4dGVudHMgICA9IG5yX3BhZ2VzOwogCXJjID0gSFlQRVJWSVNPUl9tZW1vcnlfb3AoCiAJCVhFTk1FTV9wb3B1bGF0ZV9waHlzbWFwLCAmcmVzZXJ2YXRpb24pOwpAQCAtMzIxLDcgKzMyMSw3IEBACiAJCWJhbGxvb25fYXBwZW5kKHBmbl90b19wYWdlKHBmbikpOwogCX0KIAotCXJlc2VydmF0aW9uLmV4dGVudF9zdGFydCA9ICh1bnNpZ25lZCBsb25nKWZyYW1lX2xpc3Q7CisJc2V0X3hlbl9ndWVzdF9oYW5kbGUocmVzZXJ2YXRpb24uZXh0ZW50X3N0YXJ0LCBmcmFtZV9saXN0KTsKIAlyZXNlcnZhdGlvbi5ucl9leHRlbnRzICAgPSBucl9wYWdlczsKIAlyZXQgPSBIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24sICZyZXNlcnZhdGlvbik7CiAJQlVHX09OKHJldCAhPSBucl9wYWdlcyk7CkBAIC0zNjgsNyArMzY4LDcgQEAKIH0KIAogLyogUmVzZXRzIHRoZSBYZW4gbGltaXQsIHNldHMgbmV3IHRhcmdldCwgYW5kIGtpY2tzIG9mZiBwcm9jZXNzaW5nLiAqLwotdm9pZCBiYWxsb29uX3NldF9uZXdfdGFyZ2V0KHVuc2lnbmVkIGxvbmcgdGFyZ2V0KQorc3RhdGljIHZvaWQgYmFsbG9vbl9zZXRfbmV3X3RhcmdldCh1bnNpZ25lZCBsb25nIHRhcmdldCkKIHsKIAkvKiBObyBuZWVkIGZvciBsb2NrLiBOb3QgcmVhZC1tb2RpZnktd3JpdGUgdXBkYXRlcy4gKi8KIAliYWxsb29uX3N0YXRzLmhhcmRfbGltaXQgICA9IH4wVUw7CkBAIC00ODMsNyArNDgzLDcgQEAKIAkJLmV4dGVudF9vcmRlciA9IDAsCiAJCS5kb21pZCAgICAgICAgPSBET01JRF9TRUxGCiAJfTsKLQlyZXNlcnZhdGlvbi5leHRlbnRfc3RhcnQgPSAodW5zaWduZWQgbG9uZykmbWZuOworCXNldF94ZW5fZ3Vlc3RfaGFuZGxlKHJlc2VydmF0aW9uLmV4dGVudF9zdGFydCwgJm1mbik7CiAJc2V0X3B0ZV9hdCgmaW5pdF9tbSwgYWRkciwgcHRlLCBfX3B0ZV9tYSgwdWxsKSk7CiAJc2V0X3BoeXNfdG9fbWFjaGluZShfX3BhKGFkZHIpID4+IFBBR0VfU0hJRlQsIElOVkFMSURfUDJNX0VOVFJZKTsKIAlyZXQgPSBIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24sICZyZXNlcnZhdGlvbik7CkBAIC01MTksNyArNTE5LDcgQEAKIAkJCQkuZXh0ZW50X29yZGVyID0gMCwKIAkJCQkuZG9taWQgICAgICAgID0gRE9NSURfU0VMRgogCQkJfTsKLQkJCXJlc2VydmF0aW9uLmV4dGVudF9zdGFydCA9ICh1bnNpZ25lZCBsb25nKSZnbWZuOworCQkJc2V0X3hlbl9ndWVzdF9oYW5kbGUocmVzZXJ2YXRpb24uZXh0ZW50X3N0YXJ0LCAmZ21mbik7CiAJCQlyZXQgPSBIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24sCiAJCQkJCQkgICAmcmVzZXJ2YXRpb24pOwogCQkJaWYgKHJldCA9PSAxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZXZlbnRzLmMgYi9kcml2ZXJzL3hlbi9ldmVudHMuYwppbmRleCA3NmU1YjczLi4zMzJkZDYzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZXZlbnRzLmMKKysrIGIvZHJpdmVycy94ZW4vZXZlbnRzLmMKQEAgLTM1NSw3ICszNTUsNyBAQAogCiAJc3Bpbl9sb2NrKCZpcnFfbWFwcGluZ191cGRhdGVfbG9jayk7CiAKLQlpZiAoVkFMSURfRVZUQ0hOKGV2dGNobikgJiYgKC0taXJxX2JpbmRjb3VudFtpcnFdID09IDApKSB7CisJaWYgKCgtLWlycV9iaW5kY291bnRbaXJxXSA9PSAwKSAmJiBWQUxJRF9FVlRDSE4oZXZ0Y2huKSkgewogCQljbG9zZS5wb3J0ID0gZXZ0Y2huOwogCQlpZiAoSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wKEVWVENITk9QX2Nsb3NlLCAmY2xvc2UpICE9IDApCiAJCQlCVUcoKTsKQEAgLTM3NSw3ICszNzUsNyBAQAogCQlldnRjaG5fdG9faXJxW2V2dGNobl0gPSAtMTsKIAkJaXJxX2luZm9baXJxXSA9IElSUV9VTkJPVU5EOwogCi0JCWR5bmFtaWNfaXJxX2luaXQoaXJxKTsKKwkJZHluYW1pY19pcnFfY2xlYW51cChpcnEpOwogCX0KIAogCXNwaW5fdW5sb2NrKCZpcnFfbWFwcGluZ191cGRhdGVfbG9jayk7CkBAIC01NTcsNiArNTU3LDMzIEBACiAJcHV0X2NwdSgpOwogfQogCisvKiBSZWJpbmQgYSBuZXcgZXZlbnQgY2hhbm5lbCB0byBhbiBleGlzdGluZyBpcnEuICovCit2b2lkIHJlYmluZF9ldnRjaG5faXJxKGludCBldnRjaG4sIGludCBpcnEpCit7CisJLyogTWFrZSBzdXJlIHRoZSBpcnEgaXMgbWFza2VkLCBzaW5jZSB0aGUgbmV3IGV2ZW50IGNoYW5uZWwKKwkgICB3aWxsIGFsc28gYmUgbWFza2VkLiAqLworCWRpc2FibGVfaXJxKGlycSk7CisKKwlzcGluX2xvY2soJmlycV9tYXBwaW5nX3VwZGF0ZV9sb2NrKTsKKworCS8qIEFmdGVyIHJlc3VtZSB0aGUgaXJxPC0+ZXZ0Y2huIG1hcHBpbmdzIGFyZSBhbGwgY2xlYXJlZCBvdXQgKi8KKwlCVUdfT04oZXZ0Y2huX3RvX2lycVtldnRjaG5dICE9IC0xKTsKKwkvKiBFeHBlY3QgaXJxIHRvIGhhdmUgYmVlbiBib3VuZCBiZWZvcmUsCisJICAgc28gdGhlIGJpbmRjb3VudCBzaG91bGQgYmUgbm9uLTAgKi8KKwlCVUdfT04oaXJxX2JpbmRjb3VudFtpcnFdID09IDApOworCisJZXZ0Y2huX3RvX2lycVtldnRjaG5dID0gaXJxOworCWlycV9pbmZvW2lycV0gPSBta19pcnFfaW5mbyhJUlFUX0VWVENITiwgMCwgZXZ0Y2huKTsKKworCXNwaW5fdW5sb2NrKCZpcnFfbWFwcGluZ191cGRhdGVfbG9jayk7CisKKwkvKiBuZXcgZXZlbnQgY2hhbm5lbHMgYXJlIGFsd2F5cyBib3VuZCB0byBjcHUgMCAqLworCWlycV9zZXRfYWZmaW5pdHkoaXJxLCBjcHVtYXNrX29mX2NwdSgwKSk7CisKKwkvKiBVbm1hc2sgdGhlIGV2ZW50IGNoYW5uZWwuICovCisJZW5hYmxlX2lycShpcnEpOworfQorCiAvKiBSZWJpbmQgYW4gZXZ0Y2huIHNvIHRoYXQgaXQgZ2V0cyBkZWxpdmVyZWQgdG8gYSBzcGVjaWZpYyBjcHUgKi8KIHN0YXRpYyB2b2lkIHJlYmluZF9pcnFfdG9fY3B1KHVuc2lnbmVkIGlycSwgdW5zaWduZWQgdGNwdSkKIHsKQEAgLTY0Nyw2ICs2NzQsODkgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgdm9pZCByZXN0b3JlX2NwdV92aXJxcyh1bnNpZ25lZCBpbnQgY3B1KQoreworCXN0cnVjdCBldnRjaG5fYmluZF92aXJxIGJpbmRfdmlycTsKKwlpbnQgdmlycSwgaXJxLCBldnRjaG47CisKKwlmb3IgKHZpcnEgPSAwOyB2aXJxIDwgTlJfVklSUVM7IHZpcnErKykgeworCQlpZiAoKGlycSA9IHBlcl9jcHUodmlycV90b19pcnEsIGNwdSlbdmlycV0pID09IC0xKQorCQkJY29udGludWU7CisKKwkJQlVHX09OKGlycV9pbmZvW2lycV0udHlwZSAhPSBJUlFUX1ZJUlEpOworCQlCVUdfT04oaXJxX2luZm9baXJxXS5pbmRleCAhPSB2aXJxKTsKKworCQkvKiBHZXQgYSBuZXcgYmluZGluZyBmcm9tIFhlbi4gKi8KKwkJYmluZF92aXJxLnZpcnEgPSB2aXJxOworCQliaW5kX3ZpcnEudmNwdSA9IGNwdTsKKwkJaWYgKEhZUEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcChFVlRDSE5PUF9iaW5kX3ZpcnEsCisJCQkJCQkmYmluZF92aXJxKSAhPSAwKQorCQkJQlVHKCk7CisJCWV2dGNobiA9IGJpbmRfdmlycS5wb3J0OworCisJCS8qIFJlY29yZCB0aGUgbmV3IG1hcHBpbmcuICovCisJCWV2dGNobl90b19pcnFbZXZ0Y2huXSA9IGlycTsKKwkJaXJxX2luZm9baXJxXSA9IG1rX2lycV9pbmZvKElSUVRfVklSUSwgdmlycSwgZXZ0Y2huKTsKKwkJYmluZF9ldnRjaG5fdG9fY3B1KGV2dGNobiwgY3B1KTsKKworCQkvKiBSZWFkeSBmb3IgdXNlLiAqLworCQl1bm1hc2tfZXZ0Y2huKGV2dGNobik7CisJfQorfQorCitzdGF0aWMgdm9pZCByZXN0b3JlX2NwdV9pcGlzKHVuc2lnbmVkIGludCBjcHUpCit7CisJc3RydWN0IGV2dGNobl9iaW5kX2lwaSBiaW5kX2lwaTsKKwlpbnQgaXBpLCBpcnEsIGV2dGNobjsKKworCWZvciAoaXBpID0gMDsgaXBpIDwgWEVOX05SX0lQSVM7IGlwaSsrKSB7CisJCWlmICgoaXJxID0gcGVyX2NwdShpcGlfdG9faXJxLCBjcHUpW2lwaV0pID09IC0xKQorCQkJY29udGludWU7CisKKwkJQlVHX09OKGlycV9pbmZvW2lycV0udHlwZSAhPSBJUlFUX0lQSSk7CisJCUJVR19PTihpcnFfaW5mb1tpcnFdLmluZGV4ICE9IGlwaSk7CisKKwkJLyogR2V0IGEgbmV3IGJpbmRpbmcgZnJvbSBYZW4uICovCisJCWJpbmRfaXBpLnZjcHUgPSBjcHU7CisJCWlmIChIWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AoRVZUQ0hOT1BfYmluZF9pcGksCisJCQkJCQkmYmluZF9pcGkpICE9IDApCisJCQlCVUcoKTsKKwkJZXZ0Y2huID0gYmluZF9pcGkucG9ydDsKKworCQkvKiBSZWNvcmQgdGhlIG5ldyBtYXBwaW5nLiAqLworCQlldnRjaG5fdG9faXJxW2V2dGNobl0gPSBpcnE7CisJCWlycV9pbmZvW2lycV0gPSBta19pcnFfaW5mbyhJUlFUX0lQSSwgaXBpLCBldnRjaG4pOworCQliaW5kX2V2dGNobl90b19jcHUoZXZ0Y2huLCBjcHUpOworCisJCS8qIFJlYWR5IGZvciB1c2UuICovCisJCXVubWFza19ldnRjaG4oZXZ0Y2huKTsKKworCX0KK30KKwordm9pZCB4ZW5faXJxX3Jlc3VtZSh2b2lkKQoreworCXVuc2lnbmVkIGludCBjcHUsIGlycSwgZXZ0Y2huOworCisJaW5pdF9ldnRjaG5fY3B1X2JpbmRpbmdzKCk7CisKKwkvKiBOZXcgZXZlbnQtY2hhbm5lbCBzcGFjZSBpcyBub3QgJ2xpdmUnIHlldC4gKi8KKwlmb3IgKGV2dGNobiA9IDA7IGV2dGNobiA8IE5SX0VWRU5UX0NIQU5ORUxTOyBldnRjaG4rKykKKwkJbWFza19ldnRjaG4oZXZ0Y2huKTsKKworCS8qIE5vIElSUSA8LT4gZXZlbnQtY2hhbm5lbCBtYXBwaW5ncy4gKi8KKwlmb3IgKGlycSA9IDA7IGlycSA8IE5SX0lSUVM7IGlycSsrKQorCQlpcnFfaW5mb1tpcnFdLmV2dGNobiA9IDA7IC8qIHphcCBldmVudC1jaGFubmVsIGJpbmRpbmcgKi8KKworCWZvciAoZXZ0Y2huID0gMDsgZXZ0Y2huIDwgTlJfRVZFTlRfQ0hBTk5FTFM7IGV2dGNobisrKQorCQlldnRjaG5fdG9faXJxW2V2dGNobl0gPSAtMTsKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKKwkJcmVzdG9yZV9jcHVfdmlycXMoY3B1KTsKKwkJcmVzdG9yZV9jcHVfaXBpcyhjcHUpOworCX0KK30KKwogc3RhdGljIHN0cnVjdCBpcnFfY2hpcCB4ZW5fZHluYW1pY19jaGlwIF9fcmVhZF9tb3N0bHkgPSB7CiAJLm5hbWUJCT0gInhlbi1keW4iLAogCS5tYXNrCQk9IGRpc2FibGVfZHluaXJxLApkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYyBiL2RyaXZlcnMveGVuL2dyYW50LXRhYmxlLmMKaW5kZXggNTJiNmI0MS4uZTllMTExNiAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYworKysgYi9kcml2ZXJzL3hlbi9ncmFudC10YWJsZS5jCkBAIC00NzEsMTQgKzQ3MSwxNCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdudHRhYl9yZXN1bWUodm9pZCkKK2ludCBnbnR0YWJfcmVzdW1lKHZvaWQpCiB7CiAJaWYgKG1heF9ucl9ncmFudF9mcmFtZXMoKSA8IG5yX2dyYW50X2ZyYW1lcykKIAkJcmV0dXJuIC1FTk9TWVM7CiAJcmV0dXJuIGdudHRhYl9tYXAoMCwgbnJfZ3JhbnRfZnJhbWVzIC0gMSk7CiB9CiAKLXN0YXRpYyBpbnQgZ250dGFiX3N1c3BlbmQodm9pZCkKK2ludCBnbnR0YWJfc3VzcGVuZCh2b2lkKQogewogCWFyY2hfZ250dGFiX3VubWFwX3NoYXJlZChzaGFyZWQsIG5yX2dyYW50X2ZyYW1lcyk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9tYW5hZ2UuYyBiL2RyaXZlcnMveGVuL21hbmFnZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViNTQ2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3hlbi9tYW5hZ2UuYwpAQCAtMCwwICsxLDI1MiBAQAorLyoKKyAqIEhhbmRsZSBleHRlcm4gcmVxdWVzdHMgZm9yIHNodXRkb3duLCByZWJvb3QgYW5kIHN5c3JxCisgKi8KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNycS5oPgorI2luY2x1ZGUgPGxpbnV4L3N0b3BfbWFjaGluZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZyZWV6ZXIuaD4KKworI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KKyNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KKyNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+CisjaW5jbHVkZSA8eGVuL2h2Yy1jb25zb2xlLmg+CisjaW5jbHVkZSA8eGVuL3hlbi1vcHMuaD4KKworI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJjYWxsLmg+CisjaW5jbHVkZSA8YXNtL3hlbi9wYWdlLmg+CisKK2VudW0gc2h1dGRvd25fc3RhdGUgeworCVNIVVRET1dOX0lOVkFMSUQgPSAtMSwKKwlTSFVURE9XTl9QT1dFUk9GRiA9IDAsCisJU0hVVERPV05fU1VTUEVORCA9IDIsCisJLyogQ29kZSAzIGlzIFNIVVRET1dOX0NSQVNILCB3aGljaCB3ZSBkb24ndCB1c2UgYmVjYXVzZSB0aGUgZG9tYWluIGNhbiBvbmx5CisJICAgcmVwb3J0IGEgY3Jhc2gsIG5vdCBiZSBpbnN0cnVjdGVkIHRvIGNyYXNoIQorCSAgIEhBTFQgaXMgdGhlIHNhbWUgYXMgUE9XRVJPRkYsIGFzIGZhciBhcyB3ZSdyZSBjb25jZXJuZWQuICBUaGUgdG9vbHMgdXNlCisJICAgdGhlIGRpc3RpbmN0aW9uIHdoZW4gd2UgcmV0dXJuIHRoZSByZWFzb24gY29kZSB0byB0aGVtLiAgKi8KKwkgU0hVVERPV05fSEFMVCA9IDQsCit9OworCisvKiBJZ25vcmUgbXVsdGlwbGUgc2h1dGRvd24gcmVxdWVzdHMuICovCitzdGF0aWMgZW51bSBzaHV0ZG93bl9zdGF0ZSBzaHV0dGluZ19kb3duID0gU0hVVERPV05fSU5WQUxJRDsKKworI2lmZGVmIENPTkZJR19QTV9TTEVFUAorc3RhdGljIGludCB4ZW5fc3VzcGVuZCh2b2lkICpkYXRhKQoreworCWludCAqY2FuY2VsbGVkID0gZGF0YTsKKwlpbnQgZXJyOworCisJQlVHX09OKCFpcnFzX2Rpc2FibGVkKCkpOworCisJbG9hZF9jcjMoc3dhcHBlcl9wZ19kaXIpOworCisJZXJyID0gZGV2aWNlX3Bvd2VyX2Rvd24oUE1TR19TVVNQRU5EKTsKKwlpZiAoZXJyKSB7CisJCXByaW50ayhLRVJOX0VSUiAieGVuX3N1c3BlbmQ6IGRldmljZV9wb3dlcl9kb3duIGZhaWxlZDogJWRcbiIsCisJCSAgICAgICBlcnIpOworCQlyZXR1cm4gZXJyOworCX0KKworCXhlbl9tbV9waW5fYWxsKCk7CisJZ250dGFiX3N1c3BlbmQoKTsKKwl4ZW5fcHJlX3N1c3BlbmQoKTsKKworCS8qCisJICogVGhpcyBoeXBlcmNhbGwgcmV0dXJucyAxIGlmIHN1c3BlbmQgd2FzIGNhbmNlbGxlZAorCSAqIG9yIHRoZSBkb21haW4gd2FzIG1lcmVseSBjaGVja3BvaW50ZWQsIGFuZCAwIGlmIGl0CisJICogaXMgcmVzdW1pbmcgaW4gYSBuZXcgZG9tYWluLgorCSAqLworCSpjYW5jZWxsZWQgPSBIWVBFUlZJU09SX3N1c3BlbmQodmlydF90b19tZm4oeGVuX3N0YXJ0X2luZm8pKTsKKworCXhlbl9wb3N0X3N1c3BlbmQoKmNhbmNlbGxlZCk7CisJZ250dGFiX3Jlc3VtZSgpOworCXhlbl9tbV91bnBpbl9hbGwoKTsKKworCWRldmljZV9wb3dlcl91cCgpOworCisJaWYgKCEqY2FuY2VsbGVkKSB7CisJCXhlbl9pcnFfcmVzdW1lKCk7CisJCXhlbl9jb25zb2xlX3Jlc3VtZSgpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBkb19zdXNwZW5kKHZvaWQpCit7CisJaW50IGVycjsKKwlpbnQgY2FuY2VsbGVkID0gMTsKKworCXNodXR0aW5nX2Rvd24gPSBTSFVURE9XTl9TVVNQRU5EOworCisjaWZkZWYgQ09ORklHX1BSRUVNUFQKKwkvKiBJZiB0aGUga2VybmVsIGlzIHByZWVtcHRpYmxlLCB3ZSBuZWVkIHRvIGZyZWV6ZSBhbGwgdGhlIHByb2Nlc3NlcworCSAgIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIGluIHRoZSBtaWRkbGUgb2YgYSBwYWdldGFibGUgdXBkYXRlCisJICAgZHVyaW5nIHN1c3BlbmQuICovCisJZXJyID0gZnJlZXplX3Byb2Nlc3NlcygpOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ4ZW4gc3VzcGVuZDogZnJlZXplIGZhaWxlZCAlZFxuIiwgZXJyKTsKKwkJcmV0dXJuOworCX0KKyNlbmRpZgorCisJZXJyID0gZGV2aWNlX3N1c3BlbmQoUE1TR19TVVNQRU5EKTsKKwlpZiAoZXJyKSB7CisJCXByaW50ayhLRVJOX0VSUiAieGVuIHN1c3BlbmQ6IGRldmljZV9zdXNwZW5kICVkXG4iLCBlcnIpOworCQlnb3RvIG91dDsKKwl9CisKKwlwcmludGsoInN1c3BlbmRpbmcgeGVuYnVzLi4uXG4iKTsKKwkvKiBYWFggdXNlIG5vcm1hbCBkZXZpY2UgdHJlZT8gKi8KKwl4ZW5idXNfc3VzcGVuZCgpOworCisJZXJyID0gc3RvcF9tYWNoaW5lX3J1bih4ZW5fc3VzcGVuZCwgJmNhbmNlbGxlZCwgMCk7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBzdGFydCB4ZW5fc3VzcGVuZDogJWRcbiIsIGVycik7CisJCWdvdG8gb3V0OworCX0KKworCWlmICghY2FuY2VsbGVkKQorCQl4ZW5idXNfcmVzdW1lKCk7CisJZWxzZQorCQl4ZW5idXNfc3VzcGVuZF9jYW5jZWwoKTsKKworCWRldmljZV9yZXN1bWUoKTsKKworCS8qIE1ha2Ugc3VyZSB0aW1lciBldmVudHMgZ2V0IHJldHJpZ2dlcmVkIG9uIGFsbCBDUFVzICovCisJY2xvY2tfd2FzX3NldCgpOworb3V0OgorI2lmZGVmIENPTkZJR19QUkVFTVBUCisJdGhhd19wcm9jZXNzZXMoKTsKKyNlbmRpZgorCXNodXR0aW5nX2Rvd24gPSBTSFVURE9XTl9JTlZBTElEOworfQorI2VuZGlmCS8qIENPTkZJR19QTV9TTEVFUCAqLworCitzdGF0aWMgdm9pZCBzaHV0ZG93bl9oYW5kbGVyKHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLAorCQkJICAgICBjb25zdCBjaGFyICoqdmVjLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCWNoYXIgKnN0cjsKKwlzdHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKKwlpbnQgZXJyOworCisJaWYgKHNodXR0aW5nX2Rvd24gIT0gU0hVVERPV05fSU5WQUxJRCkKKwkJcmV0dXJuOworCisgYWdhaW46CisJZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworCWlmIChlcnIpCisJCXJldHVybjsKKworCXN0ciA9IChjaGFyICopeGVuYnVzX3JlYWQoeGJ0LCAiY29udHJvbCIsICJzaHV0ZG93biIsIE5VTEwpOworCS8qIElnbm9yZSByZWFkIGVycm9ycyBhbmQgZW1wdHkgcmVhZHMuICovCisJaWYgKFhFTkJVU19JU19FUlJfUkVBRChzdHIpKSB7CisJCXhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAxKTsKKwkJcmV0dXJuOworCX0KKworCXhlbmJ1c193cml0ZSh4YnQsICJjb250cm9sIiwgInNodXRkb3duIiwgIiIpOworCisJZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDApOworCWlmIChlcnIgPT0gLUVBR0FJTikgeworCQlrZnJlZShzdHIpOworCQlnb3RvIGFnYWluOworCX0KKworCWlmIChzdHJjbXAoc3RyLCAicG93ZXJvZmYiKSA9PSAwIHx8CisJICAgIHN0cmNtcChzdHIsICJoYWx0IikgPT0gMCkgeworCQlzaHV0dGluZ19kb3duID0gU0hVVERPV05fUE9XRVJPRkY7CisJCW9yZGVybHlfcG93ZXJvZmYoZmFsc2UpOworCX0gZWxzZSBpZiAoc3RyY21wKHN0ciwgInJlYm9vdCIpID09IDApIHsKKwkJc2h1dHRpbmdfZG93biA9IFNIVVRET1dOX1BPV0VST0ZGOyAvKiA/ICovCisJCWN0cmxfYWx0X2RlbCgpOworI2lmZGVmIENPTkZJR19QTV9TTEVFUAorCX0gZWxzZSBpZiAoc3RyY21wKHN0ciwgInN1c3BlbmQiKSA9PSAwKSB7CisJCWRvX3N1c3BlbmQoKTsKKyNlbmRpZgorCX0gZWxzZSB7CisJCXByaW50ayhLRVJOX0lORk8gIklnbm9yaW5nIHNodXRkb3duIHJlcXVlc3Q6ICVzXG4iLCBzdHIpOworCQlzaHV0dGluZ19kb3duID0gU0hVVERPV05fSU5WQUxJRDsKKwl9CisKKwlrZnJlZShzdHIpOworfQorCitzdGF0aWMgdm9pZCBzeXNycV9oYW5kbGVyKHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLCBjb25zdCBjaGFyICoqdmVjLAorCQkJICB1bnNpZ25lZCBpbnQgbGVuKQoreworCWNoYXIgc3lzcnFfa2V5ID0gJ1wwJzsKKwlzdHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKKwlpbnQgZXJyOworCisgYWdhaW46CisJZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworCWlmIChlcnIpCisJCXJldHVybjsKKwlpZiAoIXhlbmJ1c19zY2FuZih4YnQsICJjb250cm9sIiwgInN5c3JxIiwgIiVjIiwgJnN5c3JxX2tleSkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJVbmFibGUgdG8gcmVhZCBzeXNycSBjb2RlIGluICIKKwkJICAgICAgICJjb250cm9sL3N5c3JxXG4iKTsKKwkJeGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDEpOworCQlyZXR1cm47CisJfQorCisJaWYgKHN5c3JxX2tleSAhPSAnXDAnKQorCQl4ZW5idXNfcHJpbnRmKHhidCwgImNvbnRyb2wiLCAic3lzcnEiLCAiJWMiLCAnXDAnKTsKKworCWVyciA9IHhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAwKTsKKwlpZiAoZXJyID09IC1FQUdBSU4pCisJCWdvdG8gYWdhaW47CisKKwlpZiAoc3lzcnFfa2V5ICE9ICdcMCcpCisJCWhhbmRsZV9zeXNycShzeXNycV9rZXksIE5VTEwpOworfQorCitzdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBzaHV0ZG93bl93YXRjaCA9IHsKKwkubm9kZSA9ICJjb250cm9sL3NodXRkb3duIiwKKwkuY2FsbGJhY2sgPSBzaHV0ZG93bl9oYW5kbGVyCit9OworCitzdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBzeXNycV93YXRjaCA9IHsKKwkubm9kZSA9ICJjb250cm9sL3N5c3JxIiwKKwkuY2FsbGJhY2sgPSBzeXNycV9oYW5kbGVyCit9OworCitzdGF0aWMgaW50IHNldHVwX3NodXRkb3duX3dhdGNoZXIodm9pZCkKK3sKKwlpbnQgZXJyOworCisJZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZzaHV0ZG93bl93YXRjaCk7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBzZXQgc2h1dGRvd24gd2F0Y2hlclxuIik7CisJCXJldHVybiBlcnI7CisJfQorCisJZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZzeXNycV93YXRjaCk7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBzZXQgc3lzcnEgd2F0Y2hlclxuIik7CisJCXJldHVybiBlcnI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2h1dGRvd25fZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpub3RpZmllciwKKwkJCSAgdW5zaWduZWQgbG9uZyBldmVudCwKKwkJCSAgdm9pZCAqZGF0YSkKK3sKKwlzZXR1cF9zaHV0ZG93bl93YXRjaGVyKCk7CisJcmV0dXJuIE5PVElGWV9ET05FOworfQorCitzdGF0aWMgaW50IF9faW5pdCBzZXR1cF9zaHV0ZG93bl9ldmVudCh2b2lkKQoreworCXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgeGVuc3RvcmVfbm90aWZpZXIgPSB7CisJCS5ub3RpZmllcl9jYWxsID0gc2h1dGRvd25fZXZlbnQKKwl9OworCXJlZ2lzdGVyX3hlbnN0b3JlX25vdGlmaWVyKCZ4ZW5zdG9yZV9ub3RpZmllcik7CisKKwlyZXR1cm4gMDsKK30KKworc3Vic3lzX2luaXRjYWxsKHNldHVwX3NodXRkb3duX2V2ZW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NsaWVudC5jCmluZGV4IDBmODZiMGYuLjk2NzhiM2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMKKysrIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jbGllbnQuYwpAQCAtMTE3LDcgKzExNyw3IEBACiAJY2hhciAqcGF0aDsKIAogCXZhX3N0YXJ0KGFwLCBwYXRoZm10KTsKLQlwYXRoID0ga3Zhc3ByaW50ZihHRlBfS0VSTkVMLCBwYXRoZm10LCBhcCk7CisJcGF0aCA9IGt2YXNwcmludGYoR0ZQX05PSU8gfCBfX0dGUF9ISUdILCBwYXRoZm10LCBhcCk7CiAJdmFfZW5kKGFwKTsKIAogCWlmICghcGF0aCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jb21tcy5jIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jb21tcy5jCmluZGV4IDZlZmJlM2YuLjA5MGM2MWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY29tbXMuYworKysgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NvbW1zLmMKQEAgLTIwMyw3ICsyMDMsNiBAQAogaW50IHhiX2luaXRfY29tbXModm9pZCkKIHsKIAlzdHJ1Y3QgeGVuc3RvcmVfZG9tYWluX2ludGVyZmFjZSAqaW50ZiA9IHhlbl9zdG9yZV9pbnRlcmZhY2U7Ci0JaW50IGVycjsKIAogCWlmIChpbnRmLT5yZXFfcHJvZCAhPSBpbnRmLT5yZXFfY29ucykKIAkJcHJpbnRrKEtFUk5fRVJSICJYRU5CVVMgcmVxdWVzdCByaW5nIGlzIG5vdCBxdWllc2NlbnQgIgpAQCAtMjE2LDE4ICsyMTUsMjAgQEAKIAkJaW50Zi0+cnNwX2NvbnMgPSBpbnRmLT5yc3BfcHJvZDsKIAl9CiAKLQlpZiAoeGVuYnVzX2lycSkKLQkJdW5iaW5kX2Zyb21faXJxaGFuZGxlcih4ZW5idXNfaXJxLCAmeGJfd2FpdHEpOworCWlmICh4ZW5idXNfaXJxKSB7CisJCS8qIEFscmVhZHkgaGF2ZSBhbiBpcnE7IGFzc3VtZSB3ZSdyZSByZXN1bWluZyAqLworCQlyZWJpbmRfZXZ0Y2huX2lycSh4ZW5fc3RvcmVfZXZ0Y2huLCB4ZW5idXNfaXJxKTsKKwl9IGVsc2UgeworCQlpbnQgZXJyOworCQllcnIgPSBiaW5kX2V2dGNobl90b19pcnFoYW5kbGVyKHhlbl9zdG9yZV9ldnRjaG4sIHdha2Vfd2FpdGluZywKKwkJCQkJCTAsICJ4ZW5idXMiLCAmeGJfd2FpdHEpOworCQlpZiAoZXJyIDw9IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiWEVOQlVTIHJlcXVlc3QgaXJxIGZhaWxlZCAlaVxuIiwgZXJyKTsKKwkJCXJldHVybiBlcnI7CisJCX0KIAotCWVyciA9IGJpbmRfZXZ0Y2huX3RvX2lycWhhbmRsZXIoCi0JCXhlbl9zdG9yZV9ldnRjaG4sIHdha2Vfd2FpdGluZywKLQkJMCwgInhlbmJ1cyIsICZ4Yl93YWl0cSk7Ci0JaWYgKGVyciA8PSAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiWEVOQlVTIHJlcXVlc3QgaXJxIGZhaWxlZCAlaVxuIiwgZXJyKTsKLQkJcmV0dXJuIGVycjsKKwkJeGVuYnVzX2lycSA9IGVycjsKIAl9CiAKLQl4ZW5idXNfaXJxID0gZXJyOwotCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMKaW5kZXggMjI3ZDUzYjEuLjdmMmY5MWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfeHMuYworKysgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMKQEAgLTI4Myw5ICsyODMsOSBAQAogCWNoYXIgKmJ1ZmZlcjsKIAogCWlmIChzdHJsZW4obmFtZSkgPT0gMCkKLQkJYnVmZmVyID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICIlcyIsIGRpcik7CisJCWJ1ZmZlciA9IGthc3ByaW50ZihHRlBfTk9JTyB8IF9fR0ZQX0hJR0gsICIlcyIsIGRpcik7CiAJZWxzZQotCQlidWZmZXIgPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIiVzLyVzIiwgZGlyLCBuYW1lKTsKKwkJYnVmZmVyID0ga2FzcHJpbnRmKEdGUF9OT0lPIHwgX19HRlBfSElHSCwgIiVzLyVzIiwgZGlyLCBuYW1lKTsKIAlyZXR1cm4gKCFidWZmZXIpID8gRVJSX1BUUigtRU5PTUVNKSA6IGJ1ZmZlcjsKIH0KIApAQCAtMjk3LDcgKzI5Nyw3IEBACiAJKm51bSA9IGNvdW50X3N0cmluZ3Moc3RyaW5ncywgbGVuKTsKIAogCS8qIFRyYW5zZmVyIHRvIG9uZSBiaWcgYWxsb2MgZm9yIGVhc3kgZnJlZWluZy4gKi8KLQlyZXQgPSBrbWFsbG9jKCpudW0gKiBzaXplb2YoY2hhciAqKSArIGxlbiwgR0ZQX0tFUk5FTCk7CisJcmV0ID0ga21hbGxvYygqbnVtICogc2l6ZW9mKGNoYXIgKikgKyBsZW4sIEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKCFyZXQpIHsKIAkJa2ZyZWUoc3RyaW5ncyk7CiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwpAQCAtNzUxLDcgKzc1MSw3IEBACiAJfQogCiAKLQltc2cgPSBrbWFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7CisJbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyksIEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKG1zZyA9PSBOVUxMKSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gb3V0OwpAQCAtNzYzLDcgKzc2Myw3IEBACiAJCWdvdG8gb3V0OwogCX0KIAotCWJvZHkgPSBrbWFsbG9jKG1zZy0+aGRyLmxlbiArIDEsIEdGUF9LRVJORUwpOworCWJvZHkgPSBrbWFsbG9jKG1zZy0+aGRyLmxlbiArIDEsIEdGUF9OT0lPIHwgX19HRlBfSElHSCk7CiAJaWYgKGJvZHkgPT0gTlVMTCkgewogCQlrZnJlZShtc2cpOwogCQllcnIgPSAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvTWFrZWZpbGUgYi9maXJtd2FyZS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGYyZmIzCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvTWFrZWZpbGUKQEAgLTAsMCArMSwxNzUgQEAKKyMKKyMga2J1aWxkIGZpbGUgZm9yIGZpcm13YXJlLworIworCisjIENyZWF0ZSAkKGZ3YWJzKSBmcm9tICQoQ09ORklHX0VYVFJBX0ZJUk1XQVJFX0RJUikgLS0gaWYgaXQgZG9lc24ndCBoYXZlIGEKKyMgbGVhZGluZyAvLCBpdCdzIHJlbGF0aXZlIHRvICQoc3JjdHJlZSkuCitmd2RpciA6PSAkKHN1YnN0ICIsLCQoQ09ORklHX0VYVFJBX0ZJUk1XQVJFX0RJUikpCitmd2FicyA6PSAkKGFkZHByZWZpeCAkKHNyY3RyZWUpLywkKGZpbHRlci1vdXQgLyUsJChmd2RpcikpKSQoZmlsdGVyIC8lLCQoZndkaXIpKQorCitmdy1leHRlcm5hbC15IDo9ICQoc3Vic3QgIiwsJChDT05GSUdfRVhUUkFfRklSTVdBUkUpKQorCisjIFRoZXJlIGFyZSB0aHJlZSBjYXNlcyB0byBjYXJlIGFib3V0OgorIyAxLiBCdWlsZGluZyBrZXJuZWwgd2l0aCBDT05GSUdfRklSTVdBUkVfSU5fS0VSTkVMPXkgLS0gJChmdy1zaGlwcGVkLXkpIHNob3VsZAorIyAgICBpbmNsdWRlIHRoZSBmaXJtd2FyZSBmaWxlcyB0byBpbmNsdWRlLCBhY2NvcmRpbmcgdG8gLmNvbmZpZworIyAyLiAnbWFrZSBtb2R1bGVzX2luc3RhbGwnLCB3aGljaCB3aWxsIGluc3RhbGwgZmlybXdhcmUgZm9yIG1vZHVsZXMsIGFuZCAKKyMgICAgX2Fsc29fIGZvciB0aGUgaW4ta2VybmVsIGRyaXZlcnMgd2hlbiBDT05GSUdfRklSTVdBUkVfSU5fS0VSTkVMPW4KKyMgMy4gJ21ha2UgZmlybXdhcmVfaW5zdGFsbCcsIHdoaWNoIGluc3RhbGxzIGFsbCBmaXJtd2FyZSwgdW5jb25kaXRpb25hbGx5LgorCisjIEZvciB0aGUgZm9ybWVyIHR3byBjYXNlcyB3ZSB3YW50ICQoZnctc2hpcHBlZC15KSBhbmQgJChmdy1zaGlwcGVkLW0pIHRvIGJlCisjIGFjY3VyYXRlLiBJbiB0aGUgbGF0dGVyIGNhc2UgaXQgZG9lc24ndCBtYXR0ZXIgLS0gaXQnbGwgdXNlICQoZnctc2hpcHBlZC1hbGwpLgorIyBCdXQgYmUgYXdhcmUgdGhhdCB0aGUgY29uZmlnIGZpbGUgbWlnaHQgbm90IGJlIGluY2x1ZGVkIGF0IGFsbC4KKworZnctc2hpcHBlZC0kKENPTkZJR19BVEFSSV9EU1A1NkspICs9IGRzcDU2ay9ib290c3RyYXAuYmluCitmdy1zaGlwcGVkLSQoQ09ORklHX0FUTV9BTUJBU1NBRE9SKSArPSBhdG1zYXIxMS5mdworZnctc2hpcHBlZC0kKENPTkZJR19DT01QVVRPTkUpICs9IGludGVsbGlwb3J0Mi5iaW4KK2Z3LXNoaXBwZWQtJChDT05GSUdfRFZCX1RUVVNCX0JVREdFVCkgKz0gdHR1c2ItYnVkZ2V0L2RzcGJvb3Rjb2RlLmJpbgorZnctc2hpcHBlZC0kKENPTkZJR19TTUNUUikgKz0gdHJfc21jdHIuYmluCitmdy1zaGlwcGVkLSQoQ09ORklHX1NORF9LT1JHMTIxMikgKz0ga29yZy9rMTIxMi5kc3AKK2Z3LXNoaXBwZWQtJChDT05GSUdfU05EX01BRVNUUk8zKSArPSBlc3MvbWFlc3RybzNfYXNzcF9rZXJuZWwuZncgXAorCQkJCSAgICAgZXNzL21hZXN0cm8zX2Fzc3BfbWluaXNyYy5mdworZnctc2hpcHBlZC0kKENPTkZJR19TTkRfU0IxNl9DU1ApICs9IHNiMTYvbXVsYXdfbWFpbi5jc3Agc2IxNi9hbGF3X21haW4uY3NwIFwKKwkJCQkgICAgIHNiMTYvaW1hX2FkcGNtX2luaXQuY3NwIFwKKwkJCQkgICAgIHNiMTYvaW1hX2FkcGNtX3BsYXliYWNrLmNzcCBcCisJCQkJICAgICBzYjE2L2ltYV9hZHBjbV9jYXB0dXJlLmNzcAorZnctc2hpcHBlZC0kKENPTkZJR19TTkRfWU1GUENJKSArPSB5YW1haGEvZHMxX2N0cmwuZncgeWFtYWhhL2RzMV9kc3AuZncgXAorCQkJCSAgIHlhbWFoYS9kczFlX2N0cmwuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX0RBQlVTQikgKz0gZGFidXNiL2Zpcm13YXJlLmZ3IGRhYnVzYi9iaXRzdHJlYW0uYmluCitmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9FTUkyNikgKz0gZW1pMjYvbG9hZGVyLmZ3IGVtaTI2L2Zpcm13YXJlLmZ3IFwKKwkJCQkgIGVtaTI2L2JpdHN0cmVhbS5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfRU1JNjIpICs9IGVtaTYyL2xvYWRlci5mdyBlbWk2Mi9iaXRzdHJlYW0uZncgXAorCQkJCSAgZW1pNjIvc3BkaWYuZncgZW1pNjIvbWlkaS5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfS0FXRVRIKSArPSBrYXdldGgvbmV3X2NvZGUuYmluIGthd2V0aC90cmlnZ2VyX2NvZGUuYmluIFwKKwkJCQkgICBrYXdldGgvbmV3X2NvZGVfZml4LmJpbiBcCisJCQkJICAga2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluCitpZmRlZiBDT05GSUdfRklSTVdBUkVfSU5fS0VSTkVMCitmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9NUFIpICs9IGtleXNwYW4vbXByLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOFgpICs9IGtleXNwYW4vdXNhMTh4LmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOSkgKz0ga2V5c3Bhbi91c2ExOS5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRSSkgKz0ga2V5c3Bhbi91c2ExOXFpLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVFXKSArPSBrZXlzcGFuL3VzYTE5cXcuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5VykgKz0ga2V5c3Bhbi91c2ExOXcuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4KSArPSBrZXlzcGFuL3VzYTI4LmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFhBKSArPSBrZXlzcGFuL3VzYTI4eGEuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WEIpICs9IGtleXNwYW4vdXNhMjh4Yi5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYKSArPSBrZXlzcGFuL3VzYTI4eC5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXKSArPSBrZXlzcGFuL3VzYTQ5dy5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXTEMpICs9IGtleXNwYW4vdXNhNDl3bGMuZncKK2Vsc2UKK2Z3LXNoaXBwZWQtIDo9IGtleXNwYW4vbXByLmZ3IGtleXNwYW4vdXNhMTh4LmZ3IGtleXNwYW4vdXNhMTkuZncJXAorCWtleXNwYW4vdXNhMTlxaS5mdyBrZXlzcGFuL3VzYTE5cXcuZncga2V5c3Bhbi91c2ExOXcuZncJCVwKKwlrZXlzcGFuL3VzYTI4LmZ3IGtleXNwYW4vdXNhMjh4YS5mdyBrZXlzcGFuL3VzYTI4eGIuZncJCVwKKwlrZXlzcGFuL3VzYTI4eC5mdyBrZXlzcGFuL3VzYTQ5dy5mdyBrZXlzcGFuL3VzYTQ5d2xjLmZ3CitlbmRpZgorZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX1RJKSArPSB0aV8zNDEwLmZ3IHRpXzUwNTIuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9FREdFUE9SVCkgKz0gZWRnZXBvcnQvYm9vdC5mdyBlZGdlcG9ydC9ib290Mi5mdyBcCisJCQkJCSAgICBlZGdlcG9ydC9kb3duLmZ3IGVkZ2Vwb3J0L2Rvd24yLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfRURHRVBPUlRfVEkpICs9IGVkZ2Vwb3J0L2Rvd24zLmJpbgorZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX1dISVRFSEVBVCkgKz0gd2hpdGVoZWF0X2xvYWRlci5mdyB3aGl0ZWhlYXQuZncgXAorCQkJCQkgICAjIHdoaXRlaGVhdF9sb2FkZXJfZGVidWcuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQSkgKz0ga2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9YSVJDT00pICs9IGtleXNwYW5fcGRhL3hpcmNvbV9wZ3MuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1ZJQ0FNKSArPSB2aWNhbS9maXJtd2FyZS5mdworZnctc2hpcHBlZC0kKENPTkZJR19WSURFT19DUElBMikgKz0gY3BpYTIvc3R2MDY3Ml92cDQuYmluCisKK2Z3LXNoaXBwZWQtYWxsIDo9ICQoZnctc2hpcHBlZC15KSAkKGZ3LXNoaXBwZWQtbSkgJChmdy1zaGlwcGVkLSkKKworIyBEaXJlY3RvcmllcyB3aGljaCB3ZSBfbWlnaHRfIG5lZWQgdG8gY3JlYXRlLCBzbyB3ZSBoYXZlIGEgcnVsZSBmb3IgdGhlbS4KK2Zpcm13YXJlLWRpcnMgOj0gJChzb3J0ICQocGF0c3Vic3QgJSwkKG9ianRyZWUpLyQob2JqKS8lLywkKGRpciAkKGZ3LWV4dGVybmFsLXkpICQoZnctc2hpcHBlZC1hbGwpKSkpCisKK3F1aWV0X2NtZF9ta2RpciA9IE1LRElSICAgJChwYXRzdWJzdCAkKG9ianRyZWUpLyUsJSwkQCkKKyAgICAgIGNtZF9ta2RpciA9IG1rZGlyIC1wICRACisKK3F1aWV0X2NtZF9paGV4ICA9IElIRVggICAgJEAKKyAgICAgIGNtZF9paGV4ICA9ICQoT0JKQ09QWSkgLUlpaGV4IC1PYmluYXJ5ICQ8ICRACisKK3F1aWV0X2NtZF9paGV4MmZ3ICA9IElIRVgyRlcgJEAKKyAgICAgIGNtZF9paGV4MmZ3ICA9ICQob2JqdHJlZSkvJChvYmopL2loZXgyZncgJDwgJEAKKworcXVpZXRfY21kX2gxNnRvZncgID0gSDE2VE9GVyAkQAorICAgICAgY21kX2gxNnRvZncgID0gJChvYmp0cmVlKS8kKG9iaikvaWhleDJmdyAtdyAkPCAkQAorCitxdWlldF9jbWRfZndiaW4gPSBNS19GVyAgICRACisgICAgICBjbWRfZndiaW4gPSBGV05BTUU9IiQocGF0c3Vic3QgZmlybXdhcmUvJS5nZW4uUywlLCRAKSI7CQkgICAgIFwKKwkJICBGV1NUUj0iJChzdWJzdCAvLF8sJChzdWJzdCAuLF8sJChzdWJzdCAtLF8sJChwYXRzdWJzdAkgICAgIFwKKwkJCQlmaXJtd2FyZS8lLmdlbi5TLCUsJEApKSkpIjsJCSAgICAgXAorCQkgIEFTTV9XT1JEPSQoaWYgJChDT05GSUdfNjRCSVQpLC5xdWFkLC5sb25nKTsJCSAgICAgXAorCQkgIEFTTV9BTElHTj0kKGlmICQoQ09ORklHXzY0QklUKSwzLDIpOwkJCSAgICAgXAorCQkgIFBST0dCSVRTPSQoaWYgJChDT05GSUdfQVJNKSwlLEApcHJvZ2JpdHM7CQkgICAgIFwKKwkJICBlY2hvICIvKiBHZW5lcmF0ZWQgYnkgZmlybXdhcmUvTWFrZWZpbGUgKi8iCQk+ICRAO1wKKwkJICBlY2hvICIgICAgLnNlY3Rpb24gLnJvZGF0YSIJCQkJPj4kQDtcCisJCSAgZWNobyAiICAgIC5wMmFsaWduICQke0FTTV9BTElHTn0iCQkJPj4kQDtcCisJCSAgZWNobyAiX2Z3XyQke0ZXU1RSfV9iaW46IgkJCQk+PiRAO1wKKwkJICBlY2hvICIgICAgLmluY2JpbiBcIiQoMilcIiIJCQkJPj4kQDtcCisJCSAgZWNobyAiX2Z3X2VuZDoiCQkJCQk+PiRAO1wKKwkJICBlY2hvICIgICAuc2VjdGlvbiAucm9kYXRhLnN0cixcImFNU1wiLCQke1BST0dCSVRTfSwxIgk+PiRAO1wKKwkJICBlY2hvICIgICAgLnAyYWxpZ24gJCR7QVNNX0FMSUdOfSIJCQk+PiRAO1wKKwkJICBlY2hvICJfZndfJCR7RldTVFJ9X25hbWU6IgkJCQk+PiRAO1wKKwkJICBlY2hvICIgICAgLnN0cmluZyBcIiQkRldOQU1FXCIiCQkJPj4kQDtcCisJCSAgZWNobyAiICAgIC5zZWN0aW9uIC5idWlsdGluX2Z3LFwiYVwiLCQke1BST0dCSVRTfSIJPj4kQDtcCisJCSAgZWNobyAiICAgIC5wMmFsaWduICQke0FTTV9BTElHTn0iCQkJPj4kQDtcCisJCSAgZWNobyAiICAgICQke0FTTV9XT1JEfSBfZndfJCR7RldTVFJ9X25hbWUiCQk+PiRAO1wKKwkJICBlY2hvICIgICAgJCR7QVNNX1dPUkR9IF9md18kJHtGV1NUUn1fYmluIgkJPj4kQDtcCisJCSAgZWNobyAiICAgICQke0FTTV9XT1JEfSBfZndfZW5kIC0gX2Z3XyQke0ZXU1RSfV9iaW4iCT4+JEA7CisKKyMgT25lIG9mIHRoZXNlIGZpbGVzIHdpbGwgY2hhbmdlLCBvciBjb21lIGludG8gZXhpc3RlbmNlLCB3aGVuZXZlcgorIyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzIGJldHdlZW4gMzItYml0IGFuZCA2NC1iaXQuIFRoZSAuUyBmaWxlcworIyBuZWVkIHRvIGNoYW5nZSB3aGVuIHRoYXQgaGFwcGVucy4KK3dvcmRzaXplX2RlcHMgOj0gJCh3aWxkY2FyZCBpbmNsdWRlL2NvbmZpZy82NGJpdC5oIGluY2x1ZGUvY29uZmlnLzMyYml0LmggXAorCQlpbmNsdWRlL2NvbmZpZy9wcGMzMi5oIGluY2x1ZGUvY29uZmlnL3BwYzY0LmggXAorCQlpbmNsdWRlL2NvbmZpZy9zdXBlcmgzMi5oIGluY2x1ZGUvY29uZmlnL3N1cGVyaDY0LmggXAorCQlpbmNsdWRlL2NvbmZpZy94ODZfMzIuaCBpbmNsdWRlL2NvbmZpZy94ODZfNjQuaCkKKworIyBXb3JrYXJvdW5kIGZvciBtYWtlIDwgMy44MSwgd2hlcmUgLlNFQ09OREVYUEFOU0lPTiBkb2Vzbid0IHdvcmsuCisjIEl0J2xsIGVuZCB1cCBkZXBlbmRpbmcgb24gdGhlc2UgdGFyZ2V0cywgc28gbWFrZSB0aGVtIGEgUEhPTlkgcnVsZSB3aGljaAorIyBkZXBlbmRzIG9uIF9hbGxfIHRoZSBkaXJlY3RvcmllcyBpbiAkKGZpcm13YXJlLWRpcnMpLCBhbmQgaXQnbGwgd29yayBvdXQgT0suCitQSE9OWSArPSAkKG9ianRyZWUpLyQkKCUpICQob2JqdHJlZSkvJChvYmopLyQkKCUpCiskKG9ianRyZWUpLyQkKCUpICQob2JqdHJlZSkvJChvYmopLyQkKCUpOiAkKGZpcm13YXJlLWRpcnMpCisJQHRydWUKKworIyBGb3IgdGhlICQkKGRpciAlKSB0cmljaywgd2hlcmUgd2UgbmVlZCAlIHRvIGJlIGV4cGFuZGVkIGZpcnN0LgorLlNFQ09OREVYUEFOU0lPTjoKKworJChwYXRzdWJzdCAlLCQob2JqKS8lLmdlbi5TLCAkKGZ3LXNoaXBwZWQteSkpOiAlOiAkKHdvcmRzaXplX2RlcHMpIFwKKwkJfCAkKG9ianRyZWUpLyQkKGRpciAlKQorCSQoY2FsbCBjbWQsZndiaW4sJChwYXRzdWJzdCAlLmdlbi5TLCUsJEApKQorJChwYXRzdWJzdCAlLCQob2JqKS8lLmdlbi5TLCAkKGZ3LWV4dGVybmFsLXkpKTogJTogJCh3b3Jkc2l6ZV9kZXBzKSBcCisJCWluY2x1ZGUvY29uZmlnL2V4dHJhL2Zpcm13YXJlL2Rpci5oIHwgJChvYmp0cmVlKS8kJChkaXIgJSkKKwkkKGNhbGwgY21kLGZ3YmluLCQoZndhYnMpLyQocGF0c3Vic3QgJChvYmopLyUuZ2VuLlMsJSwkQCkpCisKKyMgVGhlIC5vIGZpbGVzIGRlcGVuZCBvbiB0aGUgYmluYXJpZXMgZGlyZWN0bHk7IHRoZSAuUyBmaWxlcyBkb24ndC4KKyQocGF0c3Vic3QgJSwkKG9iaikvJS5nZW4ubywgJChmdy1zaGlwcGVkLXkpKTogJS5nZW4ubzogJQorJChwYXRzdWJzdCAlLCQob2JqKS8lLmdlbi5vLCAkKGZ3LWV4dGVybmFsLXkpKTogJChvYmopLyUuZ2VuLm86ICQoZndkaXIpLyUKKworIyAuaWhleCBpcyB1c2VkIGp1c3QgYXMgYSBzaW1wbGUgd2F5IHRvIGhvbGQgYmluYXJ5IGZpbGVzIGluIGEgc291cmNlIHRyZWUKKyMgd2hlcmUgYmluYXJpZXMgYXJlIGZyb3duZWQgdXBvbi4gVGhleSBhcmUgZGlyZWN0bHkgY29udmVydGVkIHdpdGggb2JqY29weS4KKyQob2JqKS8lOiAkKG9iaikvJS5paGV4IHwgJChvYmp0cmVlKS8kKG9iaikvJCQoZGlyICUpCisJJChjYWxsIGNtZCxpaGV4KQorCisjIC5IRVggaXMgYWxzbyBJbnRlbCBIRVgsIGJ1dCB3aGVyZSB0aGUgb2Zmc2V0IGFuZCBsZW5ndGggaW4gZWFjaCByZWNvcmQKKyMgaXMgYWN0dWFsbHkgbWVhbmluZ2Z1bCwgYmVjYXVzZSB0aGUgZmlybXdhcmUgaGFzIHRvIGJlIGxvYWRlZCBpbiBhIGNlcnRhaW4KKyMgb3JkZXIgcmF0aGVyIHRoYW4gYXMgYSBzaW5nbGUgYmluYXJ5IGJsb2IuIFRodXMsIHdlIGNvbnZlcnQgdGhlbSBpbnRvIG91cgorIyBtb3JlIGNvbXBhY3QgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGloZXggcmVjb3JkcyAoPGxpbnV4L2loZXguaD4pCiskKG9iaikvJS5mdzogJChvYmopLyUuSEVYICQob2JqKS9paGV4MmZ3IHwgJChvYmp0cmVlKS8kKG9iaikvJCQoZGlyICUpCisJJChjYWxsIGNtZCxpaGV4MmZ3KQorCisjIC5IMTYgaXMgb3VyIG93biBtb2RpZmllZCBmb3JtIG9mIEludGVsIEhFWCwgd2l0aCAxNi1iaXQgbGVuZ3RoIGZvciByZWNvcmRzLgorJChvYmopLyUuZnc6ICQob2JqKS8lLkgxNiAkKG9iaikvaWhleDJmdyB8ICQob2JqdHJlZSkvJChvYmopLyQkKGRpciAlKQorCSQoY2FsbCBjbWQsaDE2dG9mdykKKworJChmaXJtd2FyZS1kaXJzKToKKwkkKGNhbGwgY21kLG1rZGlyKQorCitvYmoteQkJCQkgKz0gJChwYXRzdWJzdCAlLCUuZ2VuLm8sICQoZnctZXh0ZXJuYWwteSkpCitvYmotJChDT05GSUdfRklSTVdBUkVfSU5fS0VSTkVMKSArPSAkKHBhdHN1YnN0ICUsJS5nZW4ubywgJChmdy1zaGlwcGVkLXkpKQorCisjIFJlbW92ZSAuUyBmaWxlcyBhbmQgYmluYXJpZXMgY3JlYXRlZCBmcm9tIGloZXgKKyMgKGR1cmluZyAnbWFrZSBjbGVhbicgLmNvbmZpZyBpc24ndCBpbmNsdWRlZCBzbyB0aGV5J3JlIGFsbCBpbiAkKGZ3LXNoaXBwZWQtKSkKK3RhcmdldHMgOj0gJChmdy1zaGlwcGVkLSkgJChwYXRzdWJzdCAkKG9iaikvJSwlLCBcCisJCQkJJChzaGVsbCBmaW5kICQob2JqKSAtbmFtZSBcKi5nZW4uUyAyPi9kZXYvbnVsbCkpCisKKyMgV2l0aG91dCB0aGlzLCBidWlsdC1pbi5vIHdvbid0IGJlIGNyZWF0ZWQgd2hlbiBpdCdzIGVtcHR5LCBhbmQgdGhlCisjIGZpbmFsIHZtbGludXggbGluayB3aWxsIGZhaWwuCitvYmotbiA6PSBkdW1teQorCitob3N0cHJvZ3MteSA6PSBpaGV4MmZ3CmRpZmYgLS1naXQgYS9maXJtd2FyZS9XSEVOQ0UgYi9maXJtd2FyZS9XSEVOQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZjNTFiMgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL1dIRU5DRQpAQCAtMCwwICsxLDM0MSBAQAorICAgICAgICAgICAgICoqKioqKioqKioKKyAgICAgICAgICAgICAqIFdIRU5DRSAqCisgICAgICAgICAgICAgKioqKioqKioqKgorCitUaGlzIGZpbGUgYXR0ZW1wdHMgdG8gZG9jdW1lbnQgdGhlIG9yaWdpbiBhbmQgbGljZW5zaW5nIGluZm9ybWF0aW9uLAoraWYga25vd24sIGZvciBlYWNoIHBpZWNlIG9mIGZpcm13YXJlIGRpc3RyaWJ1dGVkIGZvciB1c2Ugd2l0aCB0aGUgTGludXgKK2tlcm5lbC4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBrb3JnMTIxMiAtLSBLb3JnIDEyMTIgSU8gYXVkaW8gZGV2aWNlCisKK0ZpbGU6IGtvcmcvazEyMTIuZHNwCisKK0xpY2VuY2U6IFVua25vd24KKworRm91bmQgaW4gYWxzYS1maXJtd2FyZSBwYWNrYWdlIGluIGhleCBmb3JtOyBubyBsaWNlbnNpbmcgaW5mb3JtYXRpb24uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogbWFlc3RybzMgLS0gRVNTIEFsbGVncm8gTWFlc3RybzMgYXVkaW8gZGV2aWNlCisKK0ZpbGU6IGVzcy9tYWVzdHJvM19hc3NwX2tlcm5lbC5mdworRmlsZTogZXNzL21hZXN0cm8zX2Fzc3BfbWluaXNyYy5mdworCitMaWNlbmNlOiBVbmtub3duCisKK0ZvdW5kIGluIGFsc2EtZmlybXdhcmUgcGFja2FnZSBpbiBoZXggZm9ybSB3aXRoIGEgY29tbWVudCBjbGFpbWluZyB0bworYmUgR1BMdjIrLCBidXQgd2l0aG91dCBzb3VyY2UgLS0gYW5kIHdpdGggYW5vdGhlciBjb21tZW50IHNheWluZyAiRVNTCitkcm9wcyBiaW5hcnkgZHNwIGNvZGUgaW1hZ2VzIG9uIG91ciBoZWFkcywgYnV0IHdlIGRvbid0IGdldCB0byBzZWUKK3NwZWNzIG9uIHRoZSBkc3AuIgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IHltZnBjaSAtLSBZYW1haGEgWU1GNzI0Lzc0MC83NDQvNzU0IGF1ZGlvIGRldmljZXMKKworRmlsZTogeWFtYWhhL2RzMV9jdHJsLmZ3CitGaWxlOiB5YW1haGEvZHMxX2RzcC5mdworRmlsZTogeWFtYWhhL2RzMWVfY3RybC5mdworCitMaWNlbmNlOiBVbmtub3duCisKK0ZvdW5kIGFsc2EtZmlybXdhcmUgcGFja2FnZSBpbiBoZXggZm9ybSwgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1lbnQ6CisgICBDb3B5cmlnaHQgKGMpIDE5OTctMTk5OSBZYW1haGEgQ29ycG9yYXRpb24uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogc21jdHIgLS0gU01DIElTQS9NQ0EgVG9rZW4gUmluZyBhZGFwdGVyCisKK0ZpbGU6IHRyX3NtY3RyLmJpbgorSW5mbzogTUNULkJJTiB2Ni4zQzEgMDMvMDEvOTUKKworT3JpZ2luYWwgbGljZW5jZSBpbmZvOgorCisgKiBUaGlzIGZpcm13YXJlIGlzIGxpY2Vuc2VkIHRvIHlvdSBzdHJpY3RseSBmb3IgdXNlIGluIGNvbmp1bmN0aW9uCisgKiB3aXRoIHRoZSB1c2Ugb2YgU01DIFRva2VuUmluZyBhZGFwdGVycy4gVGhlcmUgaXMgbm8gd2FyYW50eQorICogZXhwcmVzc2VkIG9yIGltcGxpZWQgYWJvdXQgaXRzIGZpdG5lc3MgZm9yIGFueSBwdXJwb3NlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IGthd2V0aCAtLSBVU0IgS0xTSSBLTDVVU0IxMDEtYmFzZWQgRXRoZXJuZXQgZGV2aWNlCisKK0ZpbGU6IGthd2V0aC9uZXdfY29kZS5iaW4KK0ZpbGU6IGthd2V0aC9uZXdfY29kZV9maXguYmluCitGaWxlOiBrYXdldGgvdHJpZ2dlcl9jb2RlLmJpbgorRmlsZToga2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluCisKK0xpY2VuY2U6IFVua25vd24KKworRm91bmQgaW4gaGV4IGZvcm0gaW4gdGhlIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogdHR1c2ItYnVkZ2V0IC0tIFRlY2hub3RyZW5kL0hhdXBwYXVnZSBOb3ZhLVVTQiBkZXZpY2VzCisKK0ZpbGU6IHR0dXNiLWJ1ZGdldC9kc3Bib290Y29kZS5iaW4KKworTGljZW5jZTogVW5rbm93bgorCitGb3VuZCBpbiBoZXggZm9ybSBpbiB0aGUga2VybmVsIHNvdXJjZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBrZXlzcGFuIC0tIFVTQiBLZXlzcGFuIFVTQS14eHggc2VyaWFsIGRldmljZQorCitGaWxlOiBrZXlzcGFuL21wci5mdworRmlsZToga2V5c3Bhbi91c2ExOHguZncKK0ZpbGU6IGtleXNwYW4vdXNhMTkuZncKK0ZpbGU6IGtleXNwYW4vdXNhMTlxaS5mdworRmlsZToga2V5c3Bhbi91c2ExOXF3LmZ3CitGaWxlOiBrZXlzcGFuL3VzYTE5dy5mdworRmlsZToga2V5c3Bhbi91c2EyOC5mdworRmlsZToga2V5c3Bhbi91c2EyOHhhLmZ3CitGaWxlOiBrZXlzcGFuL3VzYTI4eGIuZncKK0ZpbGU6IGtleXNwYW4vdXNhMjh4LmZ3CitGaWxlOiBrZXlzcGFuL3VzYTQ5dy5mdworRmlsZToga2V5c3Bhbi91c2E0OXdsYy5mdworCitDb252ZXJ0ZWQgZnJvbSBJbnRlbCBIRVggZmlsZXMsIHVzZWQgaW4gb3VyIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBpaGV4LgorCitPcmlnaW5hbCBsaWNlbmNlIGluZm9ybWF0aW9uOgorCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBrZXlzcGFuX3BkYSAtLSBVU0IgS2V5c3BhbiBQREEgc2luZ2xlLXBvcnQgc2VyaWFsIGRldmljZQorCitGaWxlOiBrZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5mdworU291cmNlOiBrZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5TCisKK0ZpbGU6IGtleXNwYW5fcGRhL3hpcmNvbV9wZ3MuZncKK1NvdXJjZToga2V5c3Bhbl9wZGEveGlyY29tX3Bncy5TCisKK0xpY2VuY2U6IEdQTHYyKworCitDb21waWxlZCBmcm9tIG9yaWdpbmFsIDgwNTEgc291cmNlIGludG8gSW50ZWwgSEVYLCB1c2VkIGluIG91ciBiaW5hcnkgaWhleCBmb3JtLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IGVtaTI2IC0tIEVNSSAyfDYgVVNCIEF1ZGlvIGludGVyZmFjZQorCitGaWxlOiBlbWkyNi9iaXRzdHJlYW0uZncKK0luZm86IFZFUlNJT049MS4xLjEuMTMxIERBVEU9MjAwMWRlYzA2CisKK0ZpbGU6IGVtaTI2L2Zpcm13YXJlLmZ3CitJbmZvOiBWRVJTSU9OPTEuMC4yLjkxNiBEQVRFPTEyLjAyLjIwMDIKKworRmlsZTogZW1pMjYvbG9hZGVyLmZ3CisKK0NvbnZlcnRlZCBmcm9tIEludGVsIEhFWCBmaWxlcywgdXNlZCBpbiBvdXIgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGloZXguCisKK09yaWdpbmFsIGxpY2VuY2UgaW5mb3JtYXRpb246CisvKgorICogVGhpcyBmaXJtd2FyZSBpcyBmb3IgdGhlIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZQorICoKKyAqIFRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIEVtYWdpYworICogYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkCisgKiBvciBwdWJsaWMgYWNjZXNzIHRvIHRoaXMgZmlybXdhcmUgd2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQgb2YgRW1hZ2ljLAorICogYW5kIHdoaWNoIG1heSBub3QgYmUgcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0bworICogYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgRW1hZ2ljJ3Mgd3JpdHRlbiBjb25zZW50LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorICogaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisgKiBpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorICoKKyAqIFRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoIHRoZQorICogRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlLiBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZgorICogYW55IGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LAorICogcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4KKyAqLworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IGVtaTYyIC0tIEVNSSA2fDJtIFVTQiBBdWRpbyBpbnRlcmZhY2UKKworRmlsZTogZW1pNjIvYml0c3RyZWFtLmZ3CitJbmZvOiBWRVJTSU9OPTEuMC4wLjE5MSBEQVRFPSAyMDAyb2N0MjgKKworRmlsZTogZW1pNjIvbG9hZGVyLmZ3CitTb3VyY2U6IEVNSUxPQUQuSEVYCitJbmZvOiBWRVJTSU9OPTEuMC4yLjAwMiBEQVRFPTEwLjAxLjIwMDIKKworRmlsZTogZW1pNjIvbWlkaS5mdworU291cmNlOiBFTUk2Mk1GVy5IRVgKK0luZm86IFZFUlNJT049MS4wNC4wNjIgREFURT0xNi4xMC4yMDAyCisKK0ZpbGU6IGVtaTYyL3NwZGlmLmZ3CitTb3VyY2U6IEVNSTYyU0ZXLkhFWAorSW5mbzogVkVSU0lPTj0xLjA0LjA2MiBEQVRFPTE2LjEwLjIwMDIKKworQ29udmVydGVkIGZyb20gSW50ZWwgSEVYIGZpbGVzLCB1c2VkIGluIG91ciBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgaWhleC4KKworT3JpZ2luYWwgbGljZW5jZSBpbmZvcm1hdGlvbjogTm9uZQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IHR1X3VzYl8zNDEwXzUwNTIgLS0gVVNCIFRJIDM0MTAvNTA1MiBzZXJpYWwgZGV2aWNlCisKK0ZpbGU6IHRpXzM0MTAuZncKK0luZm86IGZpcm13YXJlIDkvMTAvMDQgRlczNDEwX1NwZWNpYWxfU3RhcnRXZG9nT25TdGFydFBvcnQKKworRmlsZTogdGlfNTA1Mi5mdworSW5mbzogZmlybXdhcmUgOS8xOC8wNAorCitMaWNlbmNlOiBBbGxlZ2VkbHkgR1BMdjIrLCBidXQgbm8gc291cmNlIHZpc2libGUuIE1hcmtlZDoKKwkgQ29weXJpZ2h0IChDKSAyMDA0IFRleGFzIEluc3RydW1lbnRzCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogd2hpdGVoZWF0IC0tIFVTQiBDb25uZWN0VGVjaCBXaGl0ZUhFQVQgc2VyaWFsIGRldmljZQorCitGaWxlOiB3aGl0ZWhlYXQuZncKK1ZlcnNpb246IDQuMDYKKworRmlsZTogd2hpdGVoZWF0X2xvYWRlci5mdworRmlsZTogd2hpdGVoZWF0X2xvYWRlcl9kZWJ1Zy5mdworCitMaWNlbmNlOiBBbGxlZ2VkbHkgR1BMdjIsIGJ1dCBubyBzb3VyY2UgdmlzaWJsZS4gTWFya2VkOgorCSBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiAgQ29ubmVjdFRlY2ggSW5jCisKK0RlYnVnIGxvYWRlciBjbGFpbXMgdGhlIGZvbGxvd2luZyBiZWhhdmlvdXI6CisJUG9ydCAxIExFRCBmbGFzaGVzIHdoZW4gdGhlIHZlbmRfYXggcHJvZ3JhbSBpcyBydW5uaW5nCisJUG9ydCAyIExFRCBmbGFzaGVzIHdoZW4gYW55IFNFVFVQIGNvbW1hbmQgYXJyaXZlcworCVBvcnQgMyBMRUQgZmxhc2hlcyB3aGVuIGFueSB2YWxpZCBWRU5ET1IgcmVxdWVzdCBvY2N1cnMKKwlQb3J0IDQgTEVEIGZsYXNoZXMgd2hlbiB0aGUgRVhURVJOQUwgUkFNIERPV05MT0FEIHJlcXVlc3Qgb2NjdXJzCisKK0NvbnZlcnRlZCBmcm9tIEludGVsIEhFWCBmaWxlcywgdXNlZCBpbiBvdXIgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGloZXguCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogaXAyIC0tIENvbXB1dG9uZSBJbnRlbGxpUG9ydCBQbHVzIHNlcmlhbCBkZXZpY2UKKworRmlsZTogaW50ZWxsaXBvcnQyLmJpbgorCitMaWNlbmNlOiBVbmtub3duCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogQ1BpQTIgLS0gY2FtZXJhcyBiYXNlZCBvbiBWaXNpb24ncyBDUGlBMgorCitGaWxlOiBjcGlhMi9zdHYwNjcyX3ZwNC5iaW4KKworTGljZW5jZTogQWxsZWdlZGx5IEdQTHYyKywgYnV0IG5vIHNvdXJjZSB2aXNpYmxlLiBNYXJrZWQ6CisJQ29weXJpZ2h0IChDKSAyMDAxIFNUTWljcm9lbGVjdHJvbmljcywgSW5jLgorCUNvbnRhY3Q6ICBzdGV2ZS5taWxsZXJAc3QuY29tCisJRGVzY3JpcHRpb246IFRoaXMgZmlsZSBjb250YWlucyBwYXRjaCBkYXRhIGZvciB0aGUgQ1BpQTIgKHN0djA2NzIpIFZQNC4KKworRm91bmQgaW4gaGV4IGZvcm0gaW4ga2VybmVsIHNvdXJjZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBEQUJVU0IgLS0gRGlnaXRhbCBBdWRpbyBCcm9hZGNhc3RpbmcgKERBQikgUmVjZWl2ZXIgZm9yIFVTQiBhbmQgTGludXgKKworRmlsZTogZGFidXNiL2Zpcm13YXJlLmZ3CitGaWxlOiBkYWJ1c2IvYml0c3RyZWFtLmJpbgorCitMaWNlbmNlOiBEaXN0cmlidXRhYmxlCisKKyAqIENvcHlyaWdodCAoQykgMTk5OSBCYXlDb20gR21iSAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgcmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZQorICogY29kZSByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgY29tbWVudCB3aXRob3V0CisgKiBtb2RpZmljYXRpb24uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogVVNCX1ZJQ0FNIC0tIFVTQiAzY29tIEhvbWVDb25uZWN0IChha2EgdmljYW0pCisKK0ZpbGU6IHZpY2FtL2Zpcm13YXJlLmZ3CisKK0xpY2VuY2U6IFVua25vd24KKworRm91bmQgaW4gaGV4IGZvcm0gaW4ga2VybmVsIHNvdXJjZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBVU0JfU0VSSUFMX0VER0VQT1JUIC0gVVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlcgorCitGaWxlOiBlZGdlcG9ydC9ib290LmZ3CitGaWxlOiBlZGdlcG9ydC9ib290Mi5mdworRmlsZTogZWRnZXBvcnQvZG93bi5mdworRmlsZTogZWRnZXBvcnQvZG93bjIuZncKKworTGljZW5jZTogQWxsZWdlZGx5IEdQTHYyKywgYnV0IG5vIHNvdXJjZSB2aXNpYmxlLiBNYXJrZWQ6CisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyogRWRnZXBvcnQvNCBCaW5hcnkgSW1hZ2UKKy8vKiBHZW5lcmF0ZWQgYnkgSEVYMkMgdjEuMDYKKy8vKiBDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworRm91bmQgaW4gaGV4IGZvcm0gaW4ga2VybmVsIHNvdXJjZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBVU0JfU0VSSUFMX0VER0VQT1JUX1RJIC0gVVNCIEluc2lkZSBPdXQgRWRnZXBvcnQgU2VyaWFsIERyaXZlcgorKFRJIERldmljZXMpCisKK0ZpbGU6IGVkZ2Vwb3J0L2Rvd24zLmJpbgorCitMaWNlbmNlOgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0IEJpbmFyeSBJbWFnZSAoZm9yIFRJIGJhc2VkIHByb2R1Y3RzKQorLy8qIEdlbmVyYXRlZCBieSBUSUJpbjJDIHYyLjAwICh3YXRjaHBvcnQpCisvLyogQ29weXJpZ2h0IChDKSAyMDAxIEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogQVRBUklfRFNQNTZLIC0gQXRhcmkgRFNQNTZrIHN1cHBvcnQKKworRmlsZTogZHNwNTZrL2Jvb3RzdHJhcC5iaW4KK1NvdXJjZTogZHNwNTZrL2Jvb3RzdHJhcC5hc20KKworTGljZW5jZTogR1BMdjIgb3IgbGF0ZXIKKworRFNQNTYwMDEgYXNzZW1ibGVyLCBwb3NzaWJseSBidWlsZGFibGUgd2l0aCBhNTYgZnJvbSAKK2h0dHA6Ly93d3cuemRvbWFpbi5jb20vYTU2Lmh0bWwKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBTTkRfU0IxNl9DU1AgLSBTb3VuZCBCbGFzdGVyIDE2L0FXRSBDU1Agc3VwcG9ydAorCitGaWxlOiBzYjE2L211bGF3X21haW4uY3NwCitGaWxlOiBzYjE2L2FsYXdfbWFpbi5jc3AKK0ZpbGU6IHNiMTYvaW1hX2FkcGNtX2luaXQuY3NwCitGaWxlOiBzYjE2L2ltYV9hZHBjbV9wbGF5YmFjay5jc3AKK0ZpbGU6IHNiMTYvaW1hX2FkcGNtX2NhcHR1cmUuY3NwCisKK0xpY2VuY2U6IEFsbGVnZWRseSBHUEx2MissIGJ1dCBubyBzb3VyY2UgdmlzaWJsZS4gTWFya2VkOgorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTQgQ3JlYXRpdmUgVGVjaG5vbG9neSBMdGQuCisgKiAgTWljcm9jb2RlIGZpbGVzIGZvciBTQjE2IEFkdmFuY2VkIFNpZ25hbCBQcm9jZXNzb3IKKyAqLworCitGb3VuZCBpbiBoZXggZm9ybSBpbiBrZXJuZWwgc291cmNlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvYXRtc2FyMTEuSEVYIGIvZmlybXdhcmUvYXRtc2FyMTEuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZGRjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9hdG1zYXIxMS5IRVgKQEAgLTAsMCArMSwyMDQgQEAKKzowNDAwMDAwMEEwRDBGMDAwOUMKKzoyQzAwODAwMDQwMUE2ODAwMDAwMDAwMDAzMzVCMDA3QzEzNjAwMDA1MzM1QjEwMDAzQzFBQTBDMDM3NUEwMTgwMDM0MDAwMDgwMDAwMDAwMDE3NjBGRkZCMzM1QjQwMDAyMAorOjJDMDBBQzAwNDAxQTcwMDAxMzYwMDAwMzI0MUIwRkMwQUY5QjQ1MDAyNTA4MDAwODAzNDAwMDA4NDIwMDAwMTA4RjgxMEM5MDMyMjIwMDAyMTA0MDAwMDMzQzAzQTBEMTc0Cis6MkMwMEQ4MDAyNDYzRjgxMDAwNjBGODA5MjQyMTAwMDExMDAwMDAxQUFGODEwQzkwODIwMjAwMTFBRjkwMEM0ODA0NDEwMDBBMzQ0MjAwODA5NjdEMDAwMjk2MDIwMDEyQTQKKzoyQzAxMDQwMDAwMDAwMDAwMTA1RDAwMTEwMDAwMDAwMDA0MTEwMTYxQTY2MjAwMDIxMDAwMDAwREFFNjIwMDBDMzQ4NDgwMDBBMjAyMDAxMTREMDFGRkZGMDAwMDAwMDA1RQorOjJDMDEzMDAwOEY4MzRDMDAwMDAwMDAwMEFGODMwRkVDMDBFMEY4MDkwM0UwMzgyMTAwMDQxNDAwMDQ0MEZGRjcwMDAwMDAwMEFGODA0NjBDOEUxMDAwMDg0RDAxRkZGRjM2Cis6MkMwMTVDMDAwMDAwMDAwMDhGODM0QzAwNDkwMDAwMURBRjgzMEZFQzhGODIwQ0JDOEY5RDBDNEMyNDQyMDAwMTk3QkUwMDAwQUY4MjBDQkMxM0MwMDAwOUFDQTIwMEQ4NzIKKzoyQzAxODgwMEE3QTAwMDAwM0MwMTAwRDEwMDNFMDgyNTk0MjIwMDJDMDQxMTAxM0ZBNDIyMDAwMkFDMjIwMDBDQUMyMDAwMTA4RjlFMEM1NDI3QkQwMDAyMTdCRTAwMDI4QworOjJDMDFCNDAwOENBMjAwQzA4RjlEMEM1MDhGOTcwRkM4QUY5RDBDNEMxMkUyMDAwNTg3ODA0MDAyM0MwMkEwRDEyNDQyRjk0QzAwNDBGODA5MDAwMDAwMDAwMEUwRjgwOTRBCis6MkMwMUUwMDAwM0UwMzgyMTQ1MDBGRkRDOEUxMTAwMEMzQzEzMDBEMTAwMTExMTAyMkM0MzA0MDAxMDYwRkZCOTAwMDIxMTgwMDI2Mjk4MjE4RTc2MDAzQzMyMjIwMDA4QzEKKzoyQzAyMEMwMDE0NDBGRkI3OEU3NzAwMzQ4RTc1MDAzMDNDMDNDRkIwMTZDMDAwMDMwMkQ1MTAyQjA0MTEwMEJFMDAwMDAwMDAxMDQwRkZBNjAwNzAxODI2NEQwMUZGRkZFNQorOjJDMDIzODAwMDAwMDAwMDA4RjgyNEMwMEFGOTc0QzAwQUY4MjBGRUNBQzc2MDAxMDAyNjA5MDIxMzIyMjAwMDIxMDQwMDAwNzhGOTQ0QTAwOTYwMjAwM0EzNDg0MDAwNDkyCis6MkMwMjY0MDAxNDQwMDAwM0FGODIwRkJDM0MwMjkwMDBBRjgyMEZCQzhFMTAwMDA4MzI5NDNGMDA4RTExMDAwQzI2OTRGRjAwMTI4MDAwNzMzQzEzMDBEMTQ5MDEwMDcxNjIKKzoyQzAyOTAwMDMyMzcwMDA4MTZFMDAwNkYwMDExMTEwMjJDNDMwNDAwMTA2MDAwNkMwMDAyQjk4MDAwMDQxNzQwMDQ0MDAwM0EwMjc3OTgyMTEyNzIwMDIzMjZENjAwMzBFMAorOjJDMDJCQzAwQUU1NjAwM0M4RTc2MDAzQzhFNzcwMDM0OEU3NTAwMzAzQzAzQ0ZCMDE2QzAwMDAzMDJENTEwMkIwNDExMDA5MTAwMDAwMDAwMTA0MDAwNjAyRTgyMTAwMDZCCis6MkMwMkU4MDAxNDQwMDAwOTAwNzAxODI2NEQwMUZGRkYwMDAwMDAwMDhGODI0QzAwQUY5NzRDMDBBQzc2MDAxMEFFNDIwMDM0MTAwMEZGRDBBRjgwNDYwQzAwRTBGODA5MEQKKzoyQzAzMTQwMDAzRTAzODIxM0MwM0NGQjAwMDcwMTgyNkFFNDYwMDM0NEQwMUZGRkYwMDAwMDAwMDhGODI0QzAwQUY5NzRDMDBBRjgyMEZFQ0FDNzYwMDEwMTAwMEZGQzM4MgorOjJDMDM0MDAwQUY4MDQ2MEMwMkQ1MTAyQjEwNDAwMDQyM0MxN0NGQjAyRTgyMTAwMDE0NDAwMDA2MDJGMEI4MjY0RDAxRkZGRjAwMDAwMDAwQUVGNjAwMTAxMDAwRkZCOEU5Cis6MkMwMzZDMDBBRjgwNDYwQzAwRTBGODA5MDNFMDM4MjE0RDAxRkZGRjAwMDAwMDAwOEY4MjRDMDBBRjg2NEMwMEFFRjYwMDEwQUY4MjBGRUMxMDAwRkZBRUFGODA0NjBDN0YKKzoyQzAzOTgwMDMwODRGRkZCOEU1NzAwMzgzMjQyRkZDMDAwMDIxMTgyQTc4MjBGQjhBRjk3MEZCNDg2NUQwMDJBODY1RTAwMDhBNzlEMEZCQTI3OUQwRjE4MzNERTAwNjA0QgorOjJDMDNDNDAwMDNCRUU4MjEwMDFFRjBDMjAzQkVFODIxOEY5NzBDNTg0RDAxRkZGRjAwMDAwMDAwOEY4MzRDMDA4RkEyMDAxQzEyRTMwMDAzM0MwMzBDNDAzQzFFQzAwMDhCCis6MkMwM0YwMDBBRjlFMEZCQ0FDNjIwRkI0OEZBMzAwMTgyNDQyMDAwQzE0NDMwMDAyQUY4MDQ2MEM4RkEyMDAxNEFFNDAwMDNDQUZBMjAwMUM4RTc2MDAzQzhFNzcwMDM0MEQKKzoyQzA0MUMwMDhFNzUwMDMwM0MwM0NGQjAxNkMwMDAwMzAyRDUxMDJCMDQxMTAwM0MwMDAwMDAwMDAwNzAxODI2NEQwMUZGRkYwMDAwMDAwMEFDQTUwMEU0MTA0MDAwMzJENgorOjJDMDQ0ODAwQUY5NzRDMDAxMDAwRkY3RkFDNzYwMDEwMDAwNDE3NDAwNDQwMDAwNzI2RDYwMDMwQUU1NjAwM0MwMEUwRjgwOTAzRTAzODIxQUY4MDQ2MEMxMDAwRkYzOTNFCis6MkMwNDc0MDBBRTQ2MDAzNDhFNTcwMDM4MzI0MkZGQzAwMDAyMTE4MkE3ODIwRkI4QUY5NzBGQjQ4Rjk3MEM1ODAwRTBGODA5MDNFMDM4MjExMkU2MDAwMzNDMDMwQzQwMjkKKzoyQzA0QTAwMDNDMDJDMDAwQUY4MjBGQkM4NjVEMDAyQTg2NUUwMDA4QTc5RDBGQkEyNzlEMEYxODMzREUwMDYwMDNCRUU4MjEwMDFFRjBDMjAzQkVFODIxOEZBMjAwMUMyMworOjJDMDRDQzAwNEQwMUZGRkYwMDAwMDAwMDhGOTc0QzAwQUM2MjBGQjQzMDg0RkZGQjhGQTMwMDE4MjQ0MjAwMEMxNDQzMDAwMkFGODA0NjBDOEZBMjAwMTRBRTQwMDAzQ0MyCis6MkMwNEY4MDBBRkEyMDAxQzREMDFGRkZGMDAwMDAwMDBBQ0E1MDBFNDEwMDBGRjEzQUY5NzRDMDAwMEUwRjgwOTAzRTAzODIxMTAwMEZGMEYwMDAwMDAwMDEwNDAwMDVCNTAKKzoyQzA1MjQwMDg2N0UwMDA4Mjc5RDBGMTgzM0RFMDA2MDAzQkVFODIxMDAxRTEwQzIwM0EyRTgyMThGQjcwMDA4OEZBMjAwMEM4RUY2MDAwNDEyRTIwMDI4ODY2MjAwMDhCQworOjJDMDU1MDAwODIwMzAwMTAwMDAyMTc0MDA0NDEwMDE5MjQ2MzAwMDExMDYwMDAxNzNDMDJEMUIwMDA1MDEwMjY0RDAxRkZGRjAwMDAwMDAwOEY5RTRDMDBBQzU2MDAxMDA4Cis6MkMwNTdDMDAyNkQ2RkZGRTg2MDIwMDEwM0MwM0NGQjAzNDYzMjAwMEE2NjIwMDJBOEVFMjAwMDAyNkY3MDAwOEFFNjIwMDM4OEZBMjAwMjBBRkI3MDAwODI0MTdGRkZGNDYKKzoyQzA1QTgwMDAyQzJBODIxNEQwMUZGRkYwMDAwMDAwMEFGOUU0QzAwMDNFMDAwMDhBRTc1MDAzMDhFRTIwMDAwMjZGNzAwMDhBRTYyMDAzODhGQTIwMDIwQUZCNzAwMDhEQgorOjJDMDVENDAwMjQxN0ZGRkZBNjc3MDAyQTAyQzJBODIxM0MwM0NGQjAwM0UwMDAwOEFFNzUwMDMwMDAxRTE4QzIwMDY1MTgyMThDNjMwMEM4OEZBMjAwMTAwMDAwMDAwMDY0Cis6MkMwNjAwMDAwMDYyQjAyMzFFQzAwMDAzOEZBMTAwMDQxMkMwMDAxQjAwMjJCMDIzMkVDMzAwNDExNDYwMDAwMjNDMTUwMDQwMjQxNjAwNDAwMDE2MUU4MDAwMDMxODgyOUUKKzoyQzA2MkMwMDAwNzUxODI1NEQwMUZGRkYwMDAwMDAwMDhGOTU0QzAwMDAxRUI4NDAwMDc3MTgyMUFDNjI0RDAwMDA1NjEwMjExNDQxMDAwMjI3ODMwRDAwOEZBMjAwMDA0RAorOjJDMDY1ODAwMDJFM0I4MjFBRkEyMDAxMDAyRDcxODIxQUZBMzAwMEM0RDAxRkZGRjAwMDAwMDAwOEVGNjAwMDQxMDAwRkZCNUFGOTU0QzAwM0MxNkRFQURBRTc2MDAzQzgyCis6MkMwNjg0MDBBRTYwMDAzODI2RDVGRkZGMDAwMDEwMjEwM0UwMDAwOEFFNzUwMDMwMkM0MzBBQjIxMDYwMDAwNTJDNDMyNEIyMTAwMDAwMDQyNDAyMEFCMjEwMDAwMDAyQUYKKzoyQzA2QjAwMDI0MDIyNEIxMTA2MEZGRkQzMDQzMDFGRjAwMDMxODQwM0MxREEwRDEyN0JERDZDQzAwN0QxODIxOTQ2MzAwMDAwMDAyRUE0MjAwMDMxQzAwMjdCREZGRkJDMQorOjJDMDZEQzAwMDNFMDAwMDgwM0EzMTAwNjI0MDMwRkMwQUY4MzQ1MDAxMDAwMDAwMjAxMjA2MDIxM0MwQ0NGQjAxMUUwMDA1NjAxODk2MDI2ODVGRTAwMDAwMDAwMDAwMDg5Cis6MkMwNzA4MDAxM0MwMDA0NzNDMDJDRkIwMDdDMDAwMkQwMDFFMUY4MDA0NjEwMDM0MDAxRTFGQzAwNDYwMDAwOTNDMDJEM0IwMDBFMEY4MDkwM0UwMzgyMTREMDFGRkZGMTAKKzoyQzA3MzQwMDAwMDAwMDAwOEY4NjRDMDA4Rjk5MEZFQzEwMDAwMDBCQUY5OTRDMDAwMUUyNzgyNjAwRTBGODA5MDNFMDM4MjE0RDAxRkZGRjAwMDAwMDAwOEY4NjRDMDAxQgorOjJDMDc2MDAwQUY5OTRDMDBBREVGMjAxMDNDMDJEM0IwMDFFMjc4MjY4RjgyMEZDMDhGODMwRkM0QUY4MjREMDA4REUyMDAwNEE1RTAwMDAwQUM2MjAwMDA4QzYyMDAwMDk0Cis6MkMwNzhDMDAyNDAyMDM4MEFGODI0RDAwOEY4MjREMDA4RjgyMEYxNDI0NjMwMDA0MTQ2MjAwMDIyNDE5RkZGRjhGODMwRjEwQUNBNTAwRTRBRjgzMEZDNDREMDFGRkZGOTMKKzoyQzA3QjgwMDAwMDAwMDAwOEY4MjRDODAxMDAwMDAxRkFERTIwMDNDMDBFMEY4MDkwM0UwMzgyMTREMDFGRkZGMDAwMDAwMDBBNUUwMDAwMDhGODY0QzAwMTU4MDAwMjIzOAorOjJDMDdFNDAwQUY4RjQ1NDAxMDAwMDAxNzAxRTI3ODI2MDBFMEY4MDkwM0UwMzgyMTREMDFGRkZGMDAwMDAwMDA4Rjg2NEMwMEFGOTk0QzAwQURFRjIwMTAzQzAyQ0ZCMDk3Cis6MkMwODEwMDAwMUUyNzgyNkE1RTAwMDAwNEQwMUZGRkYwMDAwMDAwMDEwMDAwMDA3OEY5OTRDMDAwMEUwRjgwOTAzRTAzODIxNEQwMUZGRkYwMDAwMDAwMDhGODY0QzAwMTUKKzoyQzA4M0MwMDhGOTkwRkVDMTU4MDAwMEFBRjhGNDUwMDAwMDA3ODIxMTAwMDAwMTRBRjE5MDAxNDAwRTBGODA5MDNFMDM4MjE0RDAxRkZGRjAwMDAwMDAwMTE4MEZGRjhDMQorOjJDMDg2ODAwOEY4NjRDMDA4NTIyMDAwMDAxMjA3ODIxMDQ0MDAwMEE4RDI5MDAwODEzMEIwMDA0MDAwQzE2MDJBRjE5MDAxNDhENzkwMDE0MDE2MEMwMjFBRjk5NEMwMDg0Cis6MkMwODk0MDBBRDhFNDAxMDMwNDIwMDNGMDFDMjcwMjEwMDA0MTc4MDA0NDAwMThCOEY4MjRBMDAzMDgxODAwMDMwNDIwMDA0MTQ0MEZGOEQ4RDRCMDAwMDEwMjAwMDBDNDcKKzoyQzA4QzAwMDMwODQ3RkZGOEY4MjBDNDgwMTIwRjAyMTI0NDMwMDM0OEM1RDAwMEMyNDQyMDAwNEFGREQwMDBDMTQ2MkZGRkMyN0RFMDAwNEE1MjEwMDAwMTAwMEZGODJFMAorOjJDMDhFQzAwMjUwODAwMDgxMTYwMDA1ODAwMDAwMDAwODU3RDAwMDg4RDYzMDAwQzk1NjIwMDBBOEQ0MTAwMDQwN0ExMDAyNjAwNjIxODIxQTU2MzAwMEEwMDAzMUMwMjZECis6MkMwOTE4MDAwNDExMDFBMDAwMDMxOEMwMDAxRDE2QzAwNDQxMDAxRjI3QTIwMDgwMDAwMjFDQzAwNDYxMDAwRTAwNDBFODIxMjdCRDAwODA5NTYyMDAwMDk1NjMwMDAyOTMKKzoyQzA5NDQwMDM0NDIwMDBDQUQyMjAwMEMyNDAyMDEwMEE1MjIwMDEwOTU2MjAwMkNBNTIzMDAxNEE1MjIwMDEyQTUyMDAwMTYzNDAyODAwMEE1MjIwMDAwQTU3RDAwMDhEMgorOjJDMDk3MDAwMDdBMDAwMEM4RjgyMEM0QzhGODMwQzUwMjQ0MUZGRTgwMDIzRjAyQjEzQzAwMDAyMDAyMDEwMjEyNDQyMDQwMDk0NUUwMDAwMjQ0MUZGRkUxN0MwRkZGOTk0Cis6MkMwOTlDMDBBRDYyMDAxMEE0NEIwMDAwMTQyQjAwMUNBRDQwMDAwMEFENDAwMDA0MjU0QTAwMDgzMTQyMDA3RjE0NDAwMDBFMDAwNDE3ODAwNDQxMDAwMzhGODIwRkUwM0EKKzoyQzA5QzgwMDEwMDAwMDA2MzQ4NDAwMDEzNDg0MDAwMjI0NDIwMDA4MzQ0MjEwMDAzODQyMTAwMEFGODIwRkUwMzU0QTAxMDAzOTRBMDEwMDM5NDIwMDgwQUY4MjBGRTRCOQorOjJDMDlGNDAwMDAxRDE0QzAwNDQxMDAwMzMzQTJFRkZGMTAwMEZGM0NBNTYyMDAwODA3QTAwMDlGMzNBMkZGRkUxMDAwMDAyMUE1NjIwMDA4OEQ2MjAwMjQwMDFEMUNDMDFECis6MkMwQTIwMDAwNDYxMDAwNEFENDIwMDAwMzNBM0VGRkYxMDAwRkYzMUE1NjMwMDA4MDdBMDAwMDUzM0EzRkZGRUE1NjMwMDA4OEQ0QjAwMDAxMDAwRkZBQTAwMDAwMDAwMUUKKzoyQzBBNEMwMDEwMDAwMDhFMjUwODAwMDgyNTRBMDAwODMxNDIwMDdGMTQ0MDAwMEUwMDA0MTc4MDA0NDEwMDAzOEY4MjBGRTAxMDAwMDAwNjM0ODQwMDAxMzQ4NDAwMDI3NAorOjJDMEE3ODAwMjQ0MjAwMDgzNDQyMTAwMDM4NDIxMDAwQUY4MjBGRTAzNTRBMDEwMDM5NEEwMTAwMzk0MjAwODBBRjgyMEZFNDExMDAwMDAzOEQ0QjAwMDAxMDAwRkY5MzAzCis6MkMwQUE0MDAyNTA4RkZGODhGODIwRkQ4OEY4MzBGREM4RjgxMEZENDEwNjIwMDFEMjQ2MjAwMDg0RDAxRkZGRjAwMDAwMDAwOEY4QzRDMDA4NDdGMDAwMDNDMUUwMEQxMUMKKzoyQzBBRDAwMDMzRkQwM0ZGMDAxRDU5ODAwMTdFNTgyMTg1N0UwMDA4MDAxREU5MDAwMDFFMEYwMDAzRTFGODI1MDdFMDAwMDNBRjgyMEZEQzg3OUUwQ0EwMjc4QjBDOTg2RQorOjJDMEFGQzAwMDdDMTAwNDIzQzAyMDg0MDNDMDFGN0IwOEQ2MjAwMjAwMDIzMDgyNkFDMjIwMDAwOEM2MjAwMDQ5NDYzMDAwMjI0NDJGRkY4MDA0MzEwMjExMDAwMDA0RTEyCis6MkMwQjI4MDBBRDYyMDAyMDhGODIwRkQwODc4MzBDQTAxNDIyMDAwNzI3OEIwQzk4NDEwMDAwNTEzQzAxODAwMEFDQTEwMEUwOENBMTAwQzQwMDAwMDAwMDEwMjIwMDRDNEUKKzoyQzBCNTQwMDAwMjJFODIzOEY5RjBGMEMwN0ExMDAwMkFGODEwRkQ0MDNFMkU4MjMyRkEzMDA0MTE0NjAwMDAyM0MxRTAwNDAyNDFEMDA0MDAwMUQxRTgwMDAwMzE4ODI1NgorOjJDMEI4MDAwMDA3RTE4MjU0RDAxRkZGRjAwMDAwMDAwOEY4QzRDMDBBQzYyNENDMDAwNUQxMDIxMTQ1RjAwMDIyNzgzMENDMDhGODIwRjA4MDNBM0YwMjFBRjgyMEZEMDU5Cis6MkMwQkFDMDBBRjlFMEZEODREMDFGRkZGMDAwMDAwMDAxMDAwRkZDMzI0NjIwMDA4OEQ2MzAwMEM4RDdEMDAxMEE1NjMwMDBBMTNBMDAwMDIwMDAzMUMwMkE3QTAwMDAwRjgKKzoyQzBCRDgwMDAwMDMxOEMwMDQxMTAwRUYwMDY4MTgyMTREMDFGRkZGMDAwMDAwMDA4RjgyMEM0NDhGODMwQzQwQUQ2MjAwMTBBNTYzMDAwNEE1NjMwMDA2MTAwMDAwMjFGQworOjJDMEMwNDAwQUY4QzRDMDBBNTdEMDAwMDhDN0QwMDA0OTQ2MzAwMDJBQzVENEM0MDI3QTIwMDA4QUQ2MjAwMTgwM0EzRTgyMTI3QkRGRkY0QUQ3RDAwMUMyN0JEMDAwNEQ0Cis6MkMwQzMwMDBBRDdEMDAyMDM3QzE4MDAxMDAxRTE3QzAwNDQxRkZFMEE1NjEwMDA4NEQwMUZGRkYwMDAwMDAwMDhGODIwQzQ0OEY4MzBDNDBBRDYyMDAxMEE1NjMwMDA0NzgKKzoyQzBDNUMwMEE1NjMwMDA2OEY4MjBGRDg4RjgzMEZEQzREMDFGRkZGMDAwMDAwMDAxNDYyRkY5NTI0NjIwMDA4QUY4QzRDMDA4NzgzMENBMDI3OEIwQzk4MDQ2MUZFOTdGOAorOjJDMEM4ODAwMDAwNDE3MDAwNDQwMDAwNTk1NjIwMDAwMTE3ODAwMDYwMDAwMDAwMEFGMEUwMDEwQTcwRDAwMDQzMDg0RkZGNzk1NkQwMDA0OEQ2RTAwMTAyNUFERkZEMDc1Cis6MkMwQ0I0MDAwNUExRkU4RkFEMjIwMDBDM0MwQ0ZGQjAwMTg5NjAyNjAwMEQxODIyMjVBRDAwMzA4RDdFMDAxODhENjEwMDFDNEQwMUZGRkYwMDAwMDAwMDEwM0UwMDM2QjkKKzoyQzBDRTAwMDhGOUQ0QzAwM0MwMTA4NDBBQzNFNEM0MDI3REUwMDA4MTFBMDAwMTdBRDdFMDAxODAwMERGNjAwMDE5RTYwMjU0RDAxRkZGRjAwMDAwMDAwQUQ4RTQwMTA1RgorOjJDMEQwQzAwOEY4RDBDNDA5NTdFMDAwNjhGOEUwQzQ0MDNDREYwMjFBNTdFMDAwNjAwMENGNzgyMDAwQzBFMDIwM0MxRjAyMTAwMUUwRjgwMDAwQzYyMDAwMDBDNjIwMkMyCis6MkMwRDM4MDAwMTgxNjAyNTMzREUwMDNDMDE5RTYwMjEzNDAxMDAwMTEwMDAwMDA4QTUyMTAwMDA5NTdFMDAwNjREMDFGRkZGMDAwMDAwMDA4RjhEMEM0MDhGOEUwQzQ0Q0QKKzoyQzBENjQwMDAzQ0RGMDIxQTU3RTAwMDY0RDAxRkZGRjAwMDAwMDAwMDFBM0YwMkIxN0MwMDAwODAwMDNGNjAwMDFBMzY4MjMwMTlFNjAyNTAxODk2MDI2NEQwMUZGRjdDRgorOjJDMEQ5MDAwMDAwMDAwMDAxMDAwRkU1OEFGOUQ0QzAwOEQ3RTAwMTg4RDYxMDAxQzAwMDAwMDAwMTQzRUZGQ0UwMDZEMTgyMzREMDFGRkZGMDAwMDAwMDAyQzYxMDAwODY0Cis6MkMwREJDMDAxMDIwMDAxNzk1NjEwMDA4MDAwMDAwMDAwMDAxRkY4MDA3RTAwMDBCMzQyMTAwMDIwMDZEMTgyMTAwMDMxRTAwMDE4MzYwMjUwMTg5NjAyNjI0MEQwMDJDQzAKKzoyQzBERTgwMEE1NjEwMDA4NEQwMUZGRkYwMDAwMDAwMDEwMDBGRTQwQUY5RDRDMDAzQzFGMEM0MEFGRkU0RkE4MzAyMUZGRkRBNTYxMDAwODNDMENEM0NGMzU4Q0UwMDA2RQorOjJDMEUxNDAwMTAwMDAwMDgzNDAzMDAwMjNDMUYwQzQwQUZGRTRGQTgxMUEwRkZGOTAwMERGNjAwMzQwMzAwMDMwMTlFNjAyNTAxODk2MDI2MzQ4NDAwMDgzNDQyMDAwMkM0Cis6MkMwRTQwMDBBRDIyMDAwQzk1NjIwMDA2QTUyMzAwMDBBRDIyMDAzODREMDFGRkZGMDAwMDAwMDA4NTdFMDAwODhGODIwRkE4OTc4MzBGQUNBRDIyMDAwNDMzQzE3RkZGQTYKKzoyQzBFNkMwMEFENjAwMDEwQTU2MTAwMDgxMDYwRkUyMEFGOUQ0QzAwQTU3RTAwMDgwMDAzMTkwMDMwNjMzRkYwQTU2MzAwMDA4RjgyMEZCMDNDMDMwODQwQUM2MjRDNDAwNworOjJDMEU5ODAwMjQ0MzAwMDhBRDYzMDAxODk3ODMwRkFFMjQ0MkZGRjQwMDYyMTgyMUFENjMwMDFDNEQwMUZGRkYwMDAwMDAwMDhGOEQwQzQwOEY4MzBDNDRBNTZEMDAwNDc0Cis6MkMwRUM0MDBBNTZEMDAwNkFENjMwMDEwMTAwMEZFMEFBRjlENEMwMDhGODIwRkUwMDAwNDBGQzA4QzQzMDAwMDA0MjEwMDFCOEY5RjBGRTQ4QzVEMDAwNEFDNDAwMDA0M0EKKzoyQzBFRjAwMDEwNjAwMDBFQUM0MDAwMDAwMDAwMDAwMDk0NjIwMDI4MDAwMDAwMDAwMDVGMTAyMDhDNDEwMDA0MDAwMDAwMDAxMDIwMDAwM0FDNDMwMDA0MTAwMDAwMDJCNgorOjJDMEYxQzAwQUMyMzAwMjRBQzQzMDAwMDE3QTNGRkY0OEM2MzAwMjQ4RjgyMEZFMDNCRkYwMDgwMjQ0MjAwMDgzNDQyMTAwMDM4NDIxMDAwQUY4MjBGRTBBRjlGMEZFNDZFCis6MkMwRjQ4MDAxMDAwRkU1NzMwODRGRkZFMTA2MDAwMTAwMDAwMDAwMDk0N0QwMDI4MDAwMDAwMDAwM0JGRTgyMDhGQTEwMDA0QUZBMzAwMDQxMDIwMDAwMzhDNUUwMDA0MzkKKzoyQzBGNzQwMDEwMDAwMDAyQUMyMzAwMjRBRkEzMDAwMDhDNjEwMDI0MTdDM0ZFNDhBQzQxMDAwMEFDNDAwMDA0QUM0MDAwMDAxMDAwRkU0NDMwODRGRkZEMkM2MjAxMDA2RgorOjJDMEZBMDAwMTQ0MDAwMEUwMDZBMTAyMTMxNDMwMDdGMDE0MzE4MjMwMDQzMTgyMzMwNjIwMDdGQTU2MjAwMjgwMDYyMTgyMzAwMDMxOTAyOEY4MjBGRTAyNDYzRkZGOEJGCis6MkMwRkNDMDAwMDYyMTgyMTM0NjMxMDAwMTAwMDAwMDMzODYzMTAwMDM0NDMwMTAwMzg2MzAxMDA4QzYyMDAwNDAwMDAwMDAwMTA0MDAwMDNBQzZCMDAwNDAzRTAwMDA4OUEKKzowQzBGRjgwMEFDNEIwMDI0MDNFMDAwMDhBQzZCMDAwMEQwCis6MDIwMDAwMDRBMEQwOEEKKzoyQ0Q1MDAwMDAwMDAwMDAyQTBEMEUwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDYwMDAwMDAwODAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMkEwRDBENjQ4MDAwMDAwMDBGNworOjJDRDUyQzAwMDAwMDA4ODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0MzEzMjAwMjQzMTMyMDAyNDMxMzIwMDAwMDAwMDAwMjQ0RDQzNTIyNDIwNDM2RkIyCis6MkNENTU4MDA3MDc5NzI2OTY3Njg3NDIwMjg2MzI5MjA0RDYxNjQ2NzY1MjA0RTY1NzQ3NzZGNzI2QjczMjA0Qzc0NjQyMDMxMzkzOTM1MkUyMDQxNkM2QzIwNzI2OTY3NEMKKzoyQ0Q1ODQwMDY4NzQ3MzIwNzI2NTczNjU3Mjc2NjU2NDJFMDA0RDYxNjQ2NzY1MjA0MTZENjI2MTczNzM2MTY0NkY3MjIwNzYzMTJFMzAzMTAwMDAwMDAwMDAwMDAwMDEyQworOjJDRDVCMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MkNENURDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoyQ0Q2MDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjBDRDYzNDAwMDAwMDAwMDBGRkYwNDAwMDAwMDAwMDAwQkIKKzoyQ0YwMDAwMDBDMzQzRTJEMDAwMDAwMDAzQzFDQTBEMTI3OUM1NjM4M0MxREEwRDEyN0JEREZEMDNDMDhBMEQxMjUwOERGRDBBRjg3ODAwODBDMzQzQzEzMDAwMDAwMDBFNAorOjJDRjAyQzAwMjQwNDAwMDMwMDk3MDAwRDNDMDhCRkMwMzUwODAyMzA4RDA4MDAwMDAwMDAwMDAwMDEwMDAwMDgwMDAwMDAwMDI3QkRGRkQwQUZCRjAwMUNBRkIxMDAxODY0Cis6MkNGMDU4MDBBRkIwMDAxNDNDMTFGRkYwMDAwMDgwMjEzQzE4MDA1NjM3MTgzQjc5MjYxOTAyMDAxNzIwMDAwMjAzMTkwMDFBMDAwNzAwMEQyNDAxRkZGRjE3MjEwMDA1NkIKKzoyQ0YwODQwMDAwMDAwMDAwM0MwMTgwMDAxNzAxMDAwMjAwMDAwMDAwMDAwNjAwMEQwMDAwMTAxMjAwMTAxODQwM0MwNUEwRDEyNEE1RDZDQzAwQTMyMDIxQTQ4MjAwMDBDNQorOjJDRjBCMDAwMjYxMDAwMDEyQTAxMDIwMDE0MjBGRkVBMDAwMDAwMDAzQzA2QTBEMTI0QzZGOUU0M0MwN0EwRDEyNEU3RDY0OEFDRTYwMDAwM0MwOEEwRDEyNTA4RkIxNEQ5Cis6MkNGMERDMDBBQ0U4MDAwNDNDMDlBMEQxMjUyOUZDOTRBQ0U5MDAwODNDMEFBMEQxMjU0QUZDRDRBQ0VBMDAwQzNDMEJBMEQxMjU2QkZCQThBQ0VCMDAxMDNDMENBMEQxNUMKKzoyQ0YxMDgwMDI1OENGQkM0QUNFQzAwMTQzQzBEQTBEMTI1QURGQkUwQUNFRDAwMTgzQzBFQTBEMTI1Q0VGQkZDQUNFRTAwMUMzQzBGQTBEMTI1RUZGQzE4QUNFRjAwMjBBRAorOjJDRjEzNDAwM0MxOEEwRDEyNzE4RkMzNEFDRjgwMDI0M0MxOUEwRDEyNzM5RkM1MEFDRjkwMDI4M0MwMkEwRDEyNDQyRkM2MEFDRTIwMDJDM0MwM0EwRDEyNDYzRkM3MEE2Cis6MkNGMTYwMDBBQ0UzMDAzMDNDMDRBMEQxMjQ4NEZDODBBQ0U0MDAzNDNDMDVBMEQxMjRBNUZDQjRBQ0U1MDAzODNDMDZBMEQxMjRDNkZFMDhBQ0U2MDAzQzNDMDhBMEQxMTEKKzoyQ0YxOEMwMDI1MDhGRTkwQUNFODAwNDAzQzA5QTBEMTI1MjlGQTM4QUNFOTAwNDQzQzBBQTBEMTI1NEFGQTc0QUNFQTAwNDgyNDEwMDAxMzNDMEJBMEQxMjU2QkY5RDhFNworOjJDRjFCODAwMDAxMDYwODAzQzBFQTBEMTI1Q0VENjQ4MDFDQzY4MjFBREFCMDAwMDI2MTAwMDAxMkEwMTAwMjAxNDIwRkZGNjAwMDAwMDAwOEY5ODgwMDAwMDAwMDAwMDZGCis6MkNGMUU0MDBBRjAwMDEwMDhGODI4MDAwMjQxOTAzRkZBNDU5MDIwMjAwMDA4MDIxOEY4NjgwMDAyNDAzMEZGRjAwMTAyMDQwMjRDNzAzODAwMEU0MjgyMUE0QTMwMDAwQzEKKzoyQ0YyMTAwMDI2MTAwMDAxMkEwMTAwMDgxNDIwRkZGNzAwMDAwMDAwOEY4OTgwMDAzNDA4OUM0MEFEMjgwM0EwOEY4QjgwMDAzQzBBMDBGRjM1NEFGRkZGQUQ2QTAzQTRGQworOjJDRjIzQzAwMDAwMDgwMjE4RjhGODAwMDI0MEMwRkZGMDAxMDY4NDAyNUY4MDMwMDAzMEQ3MDIxQTVDQzAwMDAyNjEwMDAwMTJBMDEwMDA4MTQyMEZGRjcwMDAwMDAwMEFCCis6MkNGMjY4MDA4RjgyODAwMDM0MTk5QzQwQUM1OTAzMjA4Rjg0ODAwMDNDMDMwMEZGMzQ2M0ZGRkZBQzgzMDMyNDhGODY4MDAwMjQwNTAyRkZBNEM1MDIwMjNDMDhBMEMwMEMKKzoyQ0YyOTQwMDM1MDgwMTgwM0MwOUEwRDEyNTI5RDVCODI1MEEwMDI4OEQwQjAwMDA4RDBDMDAwNEFEMkIwMDAwQUQyQzAwMDQyNTA4MDAwODE1MEFGRkZBMjUyOTAwMDgxQgorOjJDRjJDMDAwNDAwMjYwMDAwMDAwMDAwMEFGQTIwMDI4MjQwMzAwMjIzQzA0QTBFMDM0ODQwMDE0QUM4MzAwMDA4RkE1MDAyODAwMDAwMDAwMzRBNjEwMDEwMEMwMTAyMUNCCis6MkNGMkVDMDBBRkE2MDAyODNDMDdGRkJGMzRFN0ZGRkYwMEM3MzgyNDAwRTAxMDIxQUZBNzAwMjg0MDg3NjAwMDAwMDAwMDAwM0MwODAwMDIzNTA4RDg5MDNDMDlGRkZFNTkKKzoyQ0YzMTgwMDM1MjkwMTMwQUQyODAwMDA4RkFBMDAyODNDMEJGMDAwMDE0QjU4MjUwMTYwMTAyMUFGQUIwMDI4MDE2MDYwMjE0MDhDNjAwMDAwMDAwMDAwMDAwMDgwMjE0MQorOjJDRjM0NDAwMDAxMDcwODAwMjJFNzgyMUFERTAwMDAwMjYxMDAwMDEyQTAxMDQwMDE0MjBGRkZBMDAwMDAwMDAyNDE4MDAwMTNDMTlBMEU4QUYzODAwMDAyNDAyMDAxMTdDCis6MkNGMzcwMDAzQzAzQTBGMDM0NjMwMDE3QTA2MjAwMDAzQzA0RjBFQjM0ODQwMDcwM0MwNUZGRjAzNEE1NEEwMEFDQTQwMDAwM0MwNkZDRUIzNEM2MDA3MEFDQTYwMDAwMjcKKzoyQ0YzOUMwMDNDMDdGRkYwMzRFNzQ3MDBBQ0UwMDAwMDAwMDA4MDIxM0MwOEZGRjAzNTA4MEZDMDNDMDlGRkYwMzUyOTQ1MDBBRDI4MDAwMDI2MTAwMDAxMkEwMTAwMDQzMworOjJDRjNDODAwMTQyMEZGRjgwMDAwMDAwMDAwMDA4MDIxM0MwQURFQUQwMDEwNTk4MDNDMDEwMEQxMDAyQjA4MjFBQzJBMDAzQzNDMDEwMEQxMDAyQjA4MjFBQzIwMDAzMEMxCis6MkNGM0Y0MDAzQzAxMDBEMTAwMkIwODIxQUMyMDAwMzgyNDBERkZGRjNDMDEwMEQxMDAyQjA4MjFBQzJEMDAxNDAwMTA3MTAwM0MwMTAwRDEwMDJCMDgyMUE0MkUwMDAwNTQKKzoyQ0Y0MjAwMDNDMDEwMEQxMDAyQjA4MjFBNDIwMDAwNDI0MTgwMDIwM0MwMTAwRDEwMDJCMDgyMUE0MzgwMDA4M0MwMTAwRDEwMDJCMDgyMUFDMjAwMDEwMjYxMDAwMDE3RgorOjJDRjQ0QzAwMkEwMTA0MDAxNDIwRkZFMDAwMDAwMDAwMDAwMDgwMjEwMDEwMThDMDNDMDVBMEQxMjRBNUUwMDAwMEEzMjAyMUFDODAwMDAwM0MwN0EwRDEyNEU3RTAwMEJGCis6MkNGNDc4MDAyNEU4MDAwNDAxMDMzMDIxQUNDMDAwMDAyNjEwMDAwMTJBMDEwMDA5MTQyMEZGRjMwMDAwMDAwMDI0MDkwMzgwM0MwQUZGRjAzNTRBNEQwMEFENDkwMDAwNUYKKzoyQ0Y0QTQwMDNDMENBMDgwMzU4QzAwOUNBRDgwMDAwMDNDMERBMDgwMzVBRDAwQTBBREEwMDAwMDNDMEUxMTAwM0MwRkEwODAzNUVGMDBBOEFERUUwMDAwNDEwMTAwMDNBMAorOjJDRjREMDAwMDAwMDAwMDA0MTAwRkZGRjAwMDAwMDAwM0MxOEEwODAzNzE4MDBFMDhGMTkwMDAwM0MwMUEwRDFBQzM5RDZDODBDMzQzRDQzMDMyMDIwMjE4RkIwMDAxNERFCis6MkNGNEZDMDA4RkJGMDAxQzhGQjEwMDE4MDNFMDAwMDgyN0JEMDAzMDAwODBCODIxM0MxQ0ZGRjBBMzgwMEM4NEEzODAwQzg4OEY5MDQ0MDAwMDAwMjAyMUFGODAwQ0JDN0UKKzoyQ0Y1MjgwMDI0MDIwMEE4Mjc4MzBGMDAyQzVEMDA0MDE3QTAwMDBDM0MxREZGQjAwM0EzRTgyNkFGQjc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQwMUZGRkZGNgorOjJDRjU1NDAwMDAwMDAwMDAyNDQyRkZDMDI0NjMwMDQwMTAwMEZGRjMyNkY3MDA0MDEwNDAwMDBEMDAwMDAwMDAwMDAyRUUwMDNDMDEwMDQwMDNBMUU4MjUzQzAxRkZGMDk5Cis6MkNGNTgwMDAwM0ExRTgyNjAzQTNFODI2QUZCNzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RDAxRkZGRjAwMDAwMDAwM0MwNUEwODA4RjgyMEYwODAwMDAwMDAwN0UKKzoyQ0Y1QUMwMEFGODIwRkQ0QUY4MjBGRDBBQ0EyMDBDNDhGODIwRjEwMDAwMDAwMDAwMDAyMUQ4MkFGODMwRkMwMDAwMzFEODAwMDQzMTAyMzNDMDFBMDgwMDA0MTEwMjU0MgorOjJDRjVEODAwQUY4MjBGQzRBRjgyMEYxMDhGODIwRjE0MDAwMDAwMDAwMDQzMTAyMzNDMDFBMDgwMDA0MTEwMjVBRjgyMEYxNDI0MDMwMDAzMjc5RDBGMTgyNEJFMDBDODIzCis6MkNGNjA0MDAyNzgxMEQwMDhGQTIwMDAwMDAwMDAwMDBBRkEyMDAxMEFGQzIwMDAwQUZBMTAwMDhBRkExMDAwQzhGQTIwMDE0MDAwMDAwMDBBRkEyMDAxQzI3QkQwMDI0QjQKKzoyQ0Y2MzAwMDI3REUwMDA0MjQyMTAwNDAxNDYwRkZGMzI0NjNGRkZGOEY4MjBGMDAwMDAwMDAwMEFGODIwRkM4QUNBMjAwQzAyNzgyMDgwMDI0MDMwMDBGQUM0MDAwMDAyQworOjJDRjY1QzAwMjQ0MjAwMDQxNDYwRkZGRDI0NjNGRkZGOEY4MzBGQzAwMDAwMDAwMEFGODM0RDAwOEY4MzREMDA4RjgzMEYxNDhGODIwRjEwMjQ2M0ZGRkNBQzQwMDAwMDkxCis6MkNGNjg4MDAxNDQzRkZGRTI0NDIwMDA0MjQwMjAzODBBRjgyNEQwMDI3OUQwRjE4MjdBMTAwOTA4RkEyMDAxNDhGQTMwMDE4MDAwMDAwMDAwMDYyMTgyMzJDN0YwMDQwMTcKKzoyQ0Y2QjQwMDE3RTAwMDA5M0MxRjAwNDAzN0ZGMDgwMDAzQTBGMDIxNEQwMUZGRkYwMDAwMDAwMEFGRTIwMDAwMjQ0MjAwNDAxMDAwRkZGNjI0NjNGRkMwMTA2MDAwMDY1OQorOjJDRjZFMDAwMzdGRjA4MDAwMDAzMUUwMDAzRTNGODI1NEQwMUZGRkYwMDAwMDAwMEFGRTIwMDAwMjdCRDAwMjQxN0ExRkZFODAwMDAwMDAwMDAwMDM4MjE4RkMyMDAxNDVBCis6MkNGNzBDMDA4RkMzMDAxODAwMDAwMDAwMDA2MjE4MjMyQzdGMDA0MDEzRTAwMDA0M0MxRjAwNDAwMDAzMEUwMDEwMDAwMDAyMDNFMUY4MjUyNDAzMDA0MDM3RkYwODAwODQKKzoyQ0Y3MzgwMDI0MUUwM0U3MDAwMDA4MjE0RDAxRkZGRjAwMDAwMDAwQUZFMjAwMDAwMDIzMDgyMTQ5MDBGRkZCMDAwMDAwMDA4NzgwNDAwMjE3QzBGRkY4MjdERUZGRkZDQQorOjJDRjc2NDAwMTRFMDAwMDQzNEU3NDAwMDAzRTdGODI1MTAwMEZGRjBBRjgxMEM2MEFGODEwQzVDM0MwMUEwRDE4QzIyRDZDODAwMDAwMDAwM0MwMUEwODBBQzIyMDBFMEU3Cis6MkNGNzkwMDAzQzAxQTA4MDhDMjAwMEUwQUY4MDBGQjRBNzgwMEZCOEE3ODAwRkJBQTc4MDBGQkNBNzgwMEZCRTI3ODIwQ0MwQUY4MjBGRENBRjgyMEZEODNDMDJBMEQxNTYKKzoyQ0Y3QkMwMDI0NDJEQUNDQUY4MjBDNENBRjgyMEM1MDI0NDIwNDAwQUY4MjBDNTQyNDAyMDAxRTNDMDNGRkYwMjQ3RDAwNDBBQzdEMDAwODAzQTAxODIxMTQ0MEZGRkM1NQorOjJDRjdFODAwMjQ0MkZGRkYzQzFERkZGMEFDN0QwMDA4M0MwMkM3MDQzNDQyREQ3QkFGODIwQzU4M0MwNzAwMDAyNEU3MDE1ODA4MzQzRkE5MDAwMDAwMDA4RTYyMDAzOEI5Cis6MkNGODE0MDAwMDAwMDAwMDE0NDAwMDA1OEY4MzBDOTQxMkEwMDAyMjI0NjMwMDAxMTAwMDAwMjBBRjgzMEM5NEFGODIwRkI0MzI2MkZGQzAwMDAyMTE4Mjg2NjMwMDJBNzAKKzoyQ0Y4NDAwMEE3ODIwRkI4M0MwMkEwMDBBRjgyMEZCQ0E3ODMwRkJBODY3RTAwMDgyNzlEMEYxODMzREUwMDYwMDNCRUU4MjEwMDFFRjBDMjAzQkVFODIxOEZBMjAwMUNDNgorOjJDRjg2QzAwM0MwMzBDNDA0RDAxRkZGRjAwMDAwMDAwOEY5NzRDMDBBQzYyMEZCNDhGQTMwMDE4MjQ0MjAwMEMxNDQzMDAwMzAwMDAwMDAwOEZBMjAwMTQwMDAwMDAwMEZCCis6MkNGODk4MDBBRkEyMDAxQzREMDFGRkZGMDAwMDAwMDBBQ0E1MDBFNEFGOTc0QzAwMDNFMDAwMDhBRTYwMDAzQzNDMERBMEQxMjVBREQ1MDAxMUEwMDAyMTAwMDAwMDAwNUMKKzoyQ0Y4QzQwMDhEQTkwMDAwMDAwMDAwMDAxMTIwMDAxRDAwMDAwMDAwOERBQTAwMDQ4REFCMDAwODhEQUMwMDBDMDAwOTQ3NDAwNTAxMDAwNDAwMDAwMDAwM0MwOEEwRDE4NQorOjJDRjhGMDAwMjUwOEQ2MzgwMTQ4NTAyMTAwMDk0NzgwMDUwMTAwMDcwMDAwMDAwMDExODAwMDBEMDAwMDAwMDBBRDQwMDAwMDI1NEEwMDA0MTAwMEZGRkIyNThDRkZGQzY2Cis6MkNGOTFDMDAxMTgwMDAwNzAwMDAwMDAwOEQ2RTAwMDAyNTZCMDAwNEFENEUwMDAwMjU0QTAwMDQxMDAwRkZGOTI1OENGRkZDMTAwMEZGRTEyNUFEMDAxMDAzRTAwMDA4QjkKKzoyQ0Y5NDgwMDAwMDAwMDAwM0MwMjEwNDBBQzU3NEZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQwMUZGRkYwMDAwMDAwMDhGODIwRkZDMDAwMDAwMDA1QgorOjJDRjk3NDAwMzA0MjAwMUYwMDAyMTA4MDNDMTdBMEQxMDJFMkI4MjEyNkY3RDY0ODhFRjcwMDAwMDAwMDAwMDAwMkUwMDAwODAwMDAwMDAwMjQwMkZGRkZBRjgyMEZGQ0I5Cis6MkNGOUEwMDA4Rjk3MEZDODNDMDIxMDQwQUM1NzBGRjA4RjgyMEYwNDI2RjcwMDEwMTZFMjAwMDRBRjk3MEZDODhGOTcwRjAwMDAwMDAwMDBBRjk3MEZDODREMDFGRkZGQTYKKzoyQ0Y5Q0MwMDAwMDAwMDAwMDNFMDAwMDgwMDAwMDAwMDNDMUZBMEQxMjdGRkYwMkMxMDAwRkZFRDhGOTcwRkYwM0MwMjAwRDEzMkY3MDNGRjAwMTdCOTgwMDJFMkI4MjVBQQorOjJDRjlGODAwQUVFMDAwM0MyNDAyRkZGRkFFRTIwMDMwQUVFMjAwMTQ5NzgzMEZGNDk3ODIwRkY4M0MxRDAwMDAyN0JEMDY5OEE2RTMwMDA4QTZFMjAwMDJBRjlGMEZFODE5Cis6MkNGQTI0MDAwM0EwRjgwOUE2RTIwMDJDOEY5RjBGRTgxMDAwRkZEOUFFRTIwMDBDOEY5NzBGRjAzQzAyMDBEMTMyRjcwM0ZGMDAxN0I5ODAwMkUyQjgyNTk3ODIwRkY0MjkKKzoyQ0ZBNTAwMDNDMDMwMDAwMjQ2MzA2OThBNkUyMDAwMkFGOUYwRkU4MDA2MEY4MDlBNkUyMDAyQzhGOUYwRkU4MTAwMEZGQ0FBRUUyMDAwQzhGOTcwRkYwM0MwMjAwRDE3NAorOjJDRkE3QzAwMzJGNzAzRkYwMDE3Qjk4MDAyRTJCODI1OTc4MjBGRjQwMDAwMDAwMDk2RTMwMDA4QTZFMjAwMDgwMDQzMTAyNjMwNDIwMDYwMTA0MEZGQkQ4RUUyMDAzQ0YyCis6MkNGQUE4MDBBRUUwMDAzQzEwNDBGRkJBM0MwMjg4MDBBRjgyMEZCQzhFRTIwMDM4QUVFMDAwMzgzMDYzMDA2MDI3OUQwRjE4MDNBM0U4MjEwMDAzMThDMjAzQTNFODIxMTYKKzoyQ0ZBRDQwMDhGQTMwMDFDMTA0MEZGQUZBRjgyMEZCNDNDMDIwQzQwQUM0MzBGQjQ4RkEyMDAxODI0NjMwMDBDMTQ0MzAwMDMwMDAwMDAwMDhGQTMwMDE0MDAwMDAwMDAwRQorOjJDRkIwMDAwQUZBMzAwMUM0RDAxRkZGRjAwMDAwMDAwMTAwMEZGQTIwMDAwMDAwMDhGOTcwRkYwM0MwMjAwRDFBNzk3MEZCODAwMTdCOTgwMzJGN0ZGQzAwMkUyQjgyMTQwCis6MkNGQjJDMDBBRUUwMDAzMDNDMDJERUFEOEVFMzAwM0NBRUUyMDAzQzhFRTIwMDM4MTA2MEZGOTVBRUUwMDAzODNDMDM4ODAwQUY4MzBGQkM4NkUzMDAwODI3OTcwRjE4MjEKKzoyQ0ZCNTgwMDMwNjMwMDYwMDJFM0I4MjEwMDAzMThDMjAyRTNCODIxOEVFMzAwMUMxMDQwRkY4QUFGODIwRkI0M0MwMjBDNDBBQzQzMEZCNDhFRTIwMDE4MjQ2MzAwMEM4NAorOjJDRkI4NDAwMTQ0MzAwMDMwMDAwMDAwMDhFRTMwMDE0MDAwMDAwMDBBRUUzMDAxQzREMDFGRkZGMDAwMDAwMDAxMDAwRkY3RDAwMDAwMDAwOEY4MjBGRjA4Rjk3MEZGNEI4Cis6MkNGQkIwMDA5MDQxMDAwMDAwMDAwMDAwMDAzNzA4MjUxMDAwRkY3NkEwNDEwMDAwOEY4MjBGRjA4Rjk3MEZGNDk0NDEwMDAwMDAwMDAwMDAwMDM3MDgyNTEwMDBGRjZGOUUKKzoyQ0ZCREMwMEE0NDEwMDAwOEY4MjBGRjA4Rjk3MEZGNDhDNDEwMDAwMDAwMDAwMDAwMDM3MDgyNTEwMDBGRjY4QUM0MTAwMDA4RjgyMEZGMDhGOTcwRkY0OTA0MTAwMDA0MAorOjJDRkMwODAwMDJFMEI4MjcwMDM3MDgyNDEwMDBGRjYxQTA0MTAwMDA4RjgyMEZGMDhGOTcwRkY0OTQ0MTAwMDAwMkUwQjgyNzAwMzcwODI0MTAwMEZGNUFBNDQxMDAwMERCCis6MkNGQzM0MDA4RjgyMEZGMDhGOTcwRkY0OEM0MTAwMDAwMkUwQjgyNzAwMzcwODI0MTAwMEZGNTNBQzQxMDAwMDhGODIwRkYwOEY5NzBGRjQxMDAwRkY0RkEwNTcwMDAwOUQKKzoyQ0ZDNjAwMDhGODIwRkYwOEY5NzBGRjQxMDAwRkY0QkE0NTcwMDAwOEY4MjBGRjA4Rjk3MEZGNDEwMDBGRjQ3QUM1NzAwMDA4RjgyMEZGMDAwMDAwMDAwOEM0MjAwMDA3QQorOjJDRkM4QzAwMTAwMEZGNDJBRjgyMEZGNDNDMDFBMEMyOEMyMkMwMDAwMDAwMDAwMEFGODIwRkYwM0MwMUEwQzI4QzIyQzAwNDEwMDBGRjNBQUY4MjBGRjQzQzAxQTBEMTRFCis6MkNGQ0I4MDA4QzIyRDVBQzAwMDAwMDAwQUY4MjBGRjAzQzAxQTBEMThDMjJENUIwMTAwMEZGMzJBRjgyMEZGNDNDMDJBMEYwQUM0MDAwMDA5MDU3MDE1MzAwMDAwMDAwNzYKKzoyQ0ZDRTQwMEEzOTcwQzgwOTA1NzAxNTcwMDAwMDAwMEEzOTcwQzgxOTA1NzAxNUIwMDAwMDAwMEEzOTcwQzg3OTA1NzAxNUYwMDAwMDAwMEEzOTcwQzg2OTA1NzAxNjNCQQorOjJDRkQxMDAwMDAwMDAwMDAzMkY3MDAwN0EzOTcwQzg1OTA1NzAxOTMwMDAwMDAwMEEzOTcwQzhCOTA1NzAxOTcwMDAwMDAwMEEzOTcwQzhBOTA1NzAxOUIwMDAwMDAwMEFFCis6MkNGRDNDMDAzMkY3MDAwN0EzOTcwQzg5OTA1NzAwMEIwMDAwMDAwMDMyRjcwMEUwMDAxNzA5NDI5MDU3MDA0NzAwMDAwMDAwMzJGNzAwNzgwMDM3MDgyNTkwNTcwMDY3QkUKKzoyQ0ZENjgwMDAwMDAwMDAwMzJGNzAwMEYwMDE3QjlDMDAwMzcwODI1OTA1NzAwQzcwMDAwMDAwMDMyRjcwMDJGMDAxN0JBQzAwMDM3MDgyNTkwNTcwMTQ3MDAwMDAwMDAxOQorOjJDRkQ5NDAwMzJGNzAwMUUwMDE3QkMwMDAwMzcwODI1OTA1NzAxODMwMDAwMDAwMDMyRjcwMDYwMDAxN0JDMDAwMDM3MDgyNUFGODEwQzhDM0MwMjE4NDA4Rjk3MEZDODNGCis6MkNGREMwMDAwMDAwMDAwMDhGOTcwRkYwMDAwMDAwMDBBQzU3MEM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDREMDFGRkZGMTcKKzoyQ0ZERUMwMDAwMDAwMDAwM0MwMkEwRDEyNDQyRjk5OEFGODAwQzkwQUY4MDBDOTQwMDQwMDAwODAwMDAwMDAwODc5NzBGRjAzQzEzMDBEMUE2NzcwMDA4M0MwMzAwMDBDMgorOjJDRkUxODAwMjQ2MzA1MjBBRjlGMEZFODAwNjBGODA5MjQwMjAwMDE4RjlGMEZFODEwNDBGRURBOTc5NzBGRjAyNzgzMEYxODAwNzcxODIxMDAxN0I4QzIwMkUzQjgyMUZCCis6MkNGRTQ0MDAzQzAyODgwMEFGODIwRkJDOEU2MjAwMzhBNzgwMEZCOEFGODIwRkI0OEVFMzAwMUMzQzAyMEM0MEFDNDMwRkI0OEVFMjAwMTgyNDYzMDAwQzE0NDMwMDA0ODcKKzoyQ0ZFNzAwMEFFRTMwMDFDOEVFMzAwMTQwMDAwMDAwMEFFRTMwMDFDNEQwMUZGRkYwMDAwMDAwMDEwMDBGRkRGMDAwMDAwMDA4RjgyMEM1QzhGODMwQzYwQUY4MjBGRjAyNgorOjJDRkU5QzAwMTAwMEZFQkVBRjgzMEZGNDIzODkwODAwMDEyMDE4MjEyNDAyMDAwRjIwNkMwMDQwQUM2QzAwMDgwMTgwMTgyMTE0NDBGRkZDMjA0MkZGRkZBQzY5MDAwODg0Cis6MkNGRUM4MDAyNzhCMEM5OEE1NjAwMDAwMjQwM0ZGRkZBRDYzMDAxNDM0MDIwMDAxMzQ0MjAwMjBBNTYyMDAwODI3OEEwRTAwMDE0MDEwMjEwMDAwMTgyMUFDNDAwMDAwMzgKKzoyQ0ZFRjQwMDI0NjMwMDA0MkM2QzAxMDAxNTgwRkZGQzI0NDIwMDA0M0MwMkEwRDEyNDQyRTAwMEFGODIwRkUwM0MxODAwRDEwMTIwNjAyMTAwMDA2ODIxMDAwMDc4MjFDNgorOjI4RkYyMDAwMDAwMDU4MjEwMDAwNDAyMTQwMDI2MDAwMDAwMDAwMDAzNDQyNDAwMTQwODI2MDAwM0MwMjAwMDAyNDQyMDZGODAwNDAwMDA4MDAwMDAwMDA3QQorOjAwMDAwMDAxRkYKKy8qCisgIE1hZGdlIEFtYmFzc2Fkb3IgQVRNIEFkYXB0ZXIgbWljcm9jb2RlLgorICBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OSAgTWFkZ2UgTmV0d29ya3MgTHRkLgorCisgIFRoaXMgbWljcm9jb2RlIGRhdGEgaXMgcGxhY2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwKKyAgUHVibGljIExpY2Vuc2UuIFRoZSBHUEwgaXMgY29udGFpbmVkIGluIC91c3IvZG9jL2NvcHlyaWdodC9HUEwgb24gYQorICBEZWJpYW4gc3lzdGVtIGFuZCBpbiB0aGUgZmlsZSBDT1BZSU5HIGluIHRoZSBMaW51eCBrZXJuZWwgc291cmNlLgorCisgIFdlIHdvdWxkIHByZWZlciB5b3Ugbm90IHRvIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgd2l0aG91dAorICBjb25zdWx0YXRpb24gYW5kIG5vdCB0byBhc2sgZm9yIGFzc2VtYmx5L290aGVyIG1pY3JvY29kZSBzb3VyY2UuCisqLworCitGaXJzdCByZWNvcmQgaXMgc3RhcnQgYWRkcmVzcyBpbiBhIF9fYmUzMi4KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2NwaWEyL3N0djA2NzJfdnA0LmJpbi5paGV4IGIvZmlybXdhcmUvY3BpYTIvc3R2MDY3Ml92cDQuYmluLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQwYjljZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2NwaWEyL3N0djA2NzJfdnA0LmJpbi5paGV4CkBAIC0wLDAgKzEsNzMgQEAKKzoxMDAwMDAwMDAxQkNFMzAyRTMwM0UzMDRFMzA1RTMwNkUzMDc5MzQ0RUYKKzoxMDAwMTAwMDU2RDQ5MzRFNTY1MTkzNEU1MUQ2OTM0RTRGNTQ5MzRFQzEKKzoxMDAwMjAwMDkyNEY5MkE0OTMwNTkyRjQ5MzFCOTI5MjkxRTY5MjM2OEEKKzoxMDAwMzAwMDkyNzQ5MjRBOTI4QzkyOEVDOEQwMEI0MjAyQTBDQTkyQkQKKzoxMDAwNDAwMDA5MDJDOTEwMEEwQTBBODFFM0I4RTNCMEUzQThFM0EwRjEKKzoxMDAwNTAwMEUzOThFMzkwRTEwMENGRDcwQTEyQ0M5NTA4QjIwQTE4RDIKKzoxMDAwNjAwMEUxMDAwMUVFMEMwODRBMTJDODE4RjA5QUMwMjJGMzFDRjUKKzoxMDAwNzAwMDRBMTNGMzE0QzhBMEYyMTRGMjFDRUIxM0QzQTI2MzE2QjQKKzoxMDAwODAwMDQ4OUVGMDE4QTQwM0YzOTNDMDU4RjcxMzUxOUNFOTIwM0QKKzoxMDAwOTAwMENGRUY2M0Y5OTIyRUQzNUY2M0ZBOTIyRUQzNjc2M0ZCOUYKKzoxMDAwQTAwMDkyMkVEMzZGRTkxQTYzMTY0OEE3RjAyMEE0MDZGMzk0QTIKKzoxMDAwQjAwMEMwMjdGNzE0RjUxMzUxOURGNjEzNjMxOEM0MjBDQkVGMzYKKzoxMDAwQzAwMDYzRkM5MjJFRDM3NzYzRkQ5MjJFRDM3RjYzRkU5MjJFMzQKKzoxMDAwRDAwMEQzODc2M0ZGOTIyRUQzOEY2NDM4OTIyRUQzOTc2NDM5REYKKzoxMDAwRTAwMDkyMkVEMzlGRTEwMEY1M0FGNDNCRjdCRkYyQkNGMjNEMEMKKzoxMDAwRjAwMEUxMDA4MDg3OTA4MDUxRDUwMjIyMDIzMjRCRDNGNzExNjQKKzoxMDAxMDAwMDBCREFFMTAwMEUwMjAyNDAwREI1RTMwMjQ4NTVFNTEyOUMKKzoxMDAxMTAwMEE0MDFFODFCRTM5MEYwMThBNDAxRThCRjhEQjg0QkQxMEYKKzoxMDAxMjAwMDRCRDgwQkNCMEJDMkUxMDBFMzAyRTMwMzUyRDM2MDU5N0YKKzoxMDAxMzAwMEU2OTMwRDIyNTJENEU2OTMwRDJBRTM5OEUzOTBFMTAwNzIKKzoxMDAxNDAwMDAyNUQwMjYzRTMwMkM4MTIwMkNBQzg1MjAyQzI4MjY4OTgKKzoxMDAxNTAwMEUzMDJDODE0MDJDQUM4OTAwMkMyMEFEMEM5OTMwQURBREMKKzoxMDAxNjAwMENDRDIwQUUyNjMxMjAyREEwQTk4MEFBMDBBQThFMzkwNDMKKzoxMDAxNzAwMEUxMDBFMzAyMEFEMEM5OTMwQURBQ0NEMjBBRTI2MzEyQTAKKzoxMDAxODAwMDAyREEwQTk4MEFBMDBBQTg0OTkxRTU2QUE0MDRDODEyRUEKKzoxMDAxOTAwMDAyQ0FDODUyODI4OUM4MTQwMkNBQzg5MDAyQzJFMzkwMzcKKzoxMDAxQTAwMEUxMDAwODYwRTEwMDQ4NTNFODk3MDg1QUUxMDBFMzAyRTMKKzoxMDAxQjAwMEUzMDM1NEQzNjA1OUU2OTMwRDUyRTM5OEUzOTBFMTAwRDIKKzoxMDAxQzAwMDAyOUNFMzAyNTUxMzkzMTc1NTEzOTMxN0UzOTBFMTAwMzQKKzoxMDAxRDAwMDc1MzBFMzAyRTMwMzU1NTU2MDU5RTY5MzBEQjJFMzk4OTkKKzoxMDAxRTAwMEUzOTBFMTAwMDJBRUU3OTJFOTE4RUE5QUU4OThFODEwOTUKKzoxMDAxRjAwMEU4MTFFODUxRDJEQUQyRjNFODEzRDJGQUU4NTBEMkVBQTEKKzoxMDAyMDAwMEU4RDBFOEQxRDMwQTAzMDk0ODIzRTUyQ0EwMDM0ODI0MDkKKzoxMDAyMTAwMEVBMUMwMzA4RDJFM0QzMDNEMzEzRTEwMDAyQ0IwNTkzMTYKKzoxMDAyMjAwMDU3OTNGMDlBQUMwQkUzMDc5MkVBRTI5RkU1MDZFM0IwM0UKKzoxMDAyMzAwMEEwMDJFQjFFODJEN0VBMUVFMjNCODU5QkU5MUVDODkwMTYKKzoxMDAyNDAwMDg1OTQwMkRFMDU4MDU3OTNGMEJBQUMwNjkyRUFFMkJGQ0QKKzoxMDAyNTAwMEU1MDZBMDAxRUJCRjg1ODhFOTNFQzg5MDg1ODFFOTNFQUYKKzoxMDAyNjAwMEYwQkFGMzM5RjAzQTYwMTdGMDNBQzA5MEYwQkFFMTAwMTIKKzoxMDAyNzAwMDAwM0ZFMzAyRTMwMzU4MTA2MDU5RTY5MzBEQTI1ODEyQzEKKzoxMDAyODAwMEU2OTMwREFBRTM5OEUzOTBFMTAwMDMwMUUxMDAwMzAzODQKKzoxMDAyOTAwMDlCN0Q4QjhCRTMwMkUzMDM1ODU2NjA1OUU2OTMwREJBQkUKKzoxMDAyQTAwMEUzOThFMzkwRTEwMDAzMEY5MzExRTEwMEUzMDI0QTExQTgKKzoxMDAyQjAwMDBCNDI5MUFGRTM5MEUxMDBGMjkxRjA5MUEzRkVFMTAwRDcKKzoxMDAyQzAwMDYwOTJDMDVGRjAxM0YwMTM1OTVCRTIxM0YwMTE1QTE5RkEKKzoxMDAyRDAwMEUyMTNFMTAwMDAwMDAzMjc2ODYxNzY2MTZFNjEwMDA2QTkKKzoxMDAyRTAwMDAzMkNFMzAyRTMwM0U5Mzg1OTE1NTk1QUYyOUFCQzBCN0YKKzoxMDAyRjAwMEE0MEE1OTFFRjMxMUYwMUFFMkJCNTkxNUYwMTExOTJBN0MKKzoxMDAzMDAwMEU1MDJBNDAxRUJCRkUzOThFMzkwRTEwMDAzNDIxOTI4NjIKKzoxMDAzMTAwMEUxMDBFOTMwNjA3OUUxMDBFMzAzRTMwNzYwNzk5MzRFOUYKKzoxMDAzMjAwMEUzQjhFMzk4RTEwMEU5MUFGMDFGRTIzM0YwOTFFMjkyQkEKKzowODAzMzAwMEUwMzJGMDMxRTEwMDAwMDBCMQorOjAwMDAwMDAxRkYKKworICBDb3B5cmlnaHQgMjAwMSwgU1RNaWNyb2xlY3Ryb25pY3MsIEluYy4KKyAgQ29udGFjdDogIHN0ZXZlLm1pbGxlckBzdC5jb20KKworICBEZXNjcmlwdGlvbjoKKyAgICAgVGhpcyBmaWxlIGNvbnRhaW5zIHBhdGNoIGRhdGEgZm9yIHRoZSBDUGlBMiAoc3R2MDY3MikgVlA0LgorCisgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2RhYnVzYi9iaXRzdHJlYW0uYmluLmloZXggYi9maXJtd2FyZS9kYWJ1c2IvYml0c3RyZWFtLmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwMjFhNGIKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9kYWJ1c2IvYml0c3RyZWFtLmJpbi5paGV4CkBAIC0wLDAgKzEsNzYxIEBACis6MTAwMDAwMDAwMDA5MEZGMDBGRjAwRkYwMEZGMDAwMDAwMTYxMDAwRDdDCis6MTAwMDEwMDA2NDYxNjI3NTczNjI3NDcyMkU2RTYzNjQwMDYyMDAwQkI5Cis6MTAwMDIwMDA3MzMxMzA3ODZDNzY3MTMxMzAzMDAwNjMwMDBCMzEzOUM4Cis6MTAwMDMwMDAzOTM5MkYzMDM5MkYzMjM0MDA2NDAwMDkzMTMwM0EzNEU1Cis6MTAwMDQwMDAzMjNBMzQzNjAwNjUwMDAwMkVDMEZGMjAxNzVGOUY1QkY4Cis6MTAwMDUwMDBGRUZCQkJCN0JCQkJGQkJGQUZFRkZCREZCN0ZCRkI3RjYxCis6MTAwMDYwMDBCRkI3RUZGMkZGRkJGRUZGRkZFRkZGRkVGRkJGRkZGRjlCCis6MTAwMDcwMDBGRkZGQUZGRkZBRkZGRkZGQzlGRkZGRkZERkZGRkZGRjNCCis6MTAwMDgwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkJGRkEzRkZGQkU0Cis6MTAwMDkwMDBGRUZGQkZFRkUzRkVGRkJGRTNGRUZGQkY2RkZCRjZGRjE4Cis6MTAwMEEwMDBCRkZGNDdGRkZGOUZFRUY5RkVDRjlGRUZGQkNGOUJFRTE5Cis6MTAwMEIwMDBGOEZFRUY4RkVFRkJGRTBCRkZGRkZGRkZGRkZGRkZGRkUyCis6MTAwMEMwMDBGRkZGQkZGRkZGRkJGRkZGQkZGRkZGRkMxN0ZGRkZGRkFGCis6MTAwMEQwMDBGRkZGRkY3RkZGRkZGRjdGRkZGRkZCRkZGRjdGRkZGRkI0Cis6MTAwMEUwMDBGQzNGRkZGRkZGRkZGRkZGRkZGRkZGRkJGRkZGRkZGRkU3Cis6MTAwMEYwMDBGRkZGRkZGRkZGRkU1RkZGRkZGREZGRkZEQkZGRkRGRkQ5Cis6MTAwMTAwMDA3N0ZGRkRGRkZGREZGRUZERkZGRkYyRkZGRkZGRkZGRkI5Cis6MTAwMTEwMDBGRkZERkZGRkZGRkRGRkZGRkZGRkZGRkZGRkZGRkZFMTExCis6MTAwMTIwMDA3RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjNGRkZGRjFGCis6MTAwMTMwMDBGRkZGRkZGRkUzRkZGRkZGRkZGRkZGRkZGRkZGRkZCRjJCCis6MTAwMTQwMDBGRkZFRkZGRkZGRkZGRkZGRkY2N0ZGRkZGRkZGRkZGRjU4Cis6MTAwMTUwMDA3RkZGRkZGRjdGRkZGRkZGRkZGRkRGRkZGRkZGMkZGRjlGCis6MTAwMTYwMDBGM0ZERkY3RkRFRjdGREZGN0ZGNzdERkY3RkRGRjdCRDRDCis6MTAwMTcwMDBGRjdGRkYxRkZGRUZGQkZFRkZCRkVGRkJGRUZGRUZGQjZECis6MTAwMTgwMDBGRUZGQkZFRkZCRkVGRkZGM0ZGRTdGOUZFN0Y5RkU3RjE1Cis6MTAwMTkwMDA5RkU3RkE3RjlGRTdGOUZFN0Y5RkU3RkZGQzdGQkZCRkU2Cis6MTAwMUEwMDBFRkZCRkVGRkJGRUZGQkI3QkZFRkZCRkVGRkJGRUZGQkI5Cis6MTAwMUIwMDBGRkUwRkRGOUZFN0Y5RkU3RjlGRTdGOURGOUZFN0Q5RDQzCis6MTAwMUMwMDBFN0Y5RkU3RjlGRURFREZGRkRGRjdGREZGN0ZERkY3RjhFCis6MTAwMUQwMDBERkZERkY3RkRGRjdGREZGN0ZERkZGOUJGRkVGRkJGRTE0Cis6MTAwMUUwMDBGQkJGRUZCQkZFRkZBRkJCQkVGRkJGRUZGQkZFRkZGRkUyCis6MTAwMUYwMDBCN0JGREJGNkJEQkY2QkRCRjZGOUJGNUJENkY5QkY2RkYwCis6MTAwMjAwMDBEQkY2RkRCRkZGMEVGRkZGRkZGRjVGRkZGN0ZGRkY3Rjg2Cis6MTAwMjEwMDBGN0JERkZGRkZGRkZGRkZGRkZERjlGRkZGRkZGRkVGRkI5Cis6MTAwMjIwMDBGRkVGRkVGRUZGRkY3N0ZGRkJGQkZGRkZGRkZGRjgzRjQ3Cis6MTAwMjMwMDBGRkZERkZGRkZGRkRGRkZGRkZGRkZGRkZGRkZGRkZGRkQyCis6MTAwMjQwMDBGRkZGRkZGNDdGRkZGRUZEQkVGRkRGRkVGRkZGRUY3RjNFCis6MTAwMjUwMDBGRkNGRkZDRkZGRkZGRkRGRTZGRkZGN0ZERkY3REQ3RjkxCis6MTAwMjYwMDA3RkRGRjdGRjdGREZEN0ZERkY3RkRGRjdGRkNERkZGMkY3Cis6MTAwMjcwMDBGRkZGNEY3RkY0RkZGRkZGRTdFRkZGRkZGRkZGRkZGRkYxCis6MTAwMjgwMDBGRkZGQkJGRkVGRkZGRUZGRkZGRkVGRkZGRkVGRkZGQkY3Cis6MTAwMjkwMDBGRkZGRkZGRkZGRkZGRjY1RUZGRkZGN0ZGRkZERUZGRkFBCis6MTAwMkEwMDBGRkZGRkVGRkZGRkZGRkZGRkZGRkZGRkVDRkRGRkVGRkIxCis6MTAwMkIwMDBGRkZCRkZGRkZGRkZGM0ZGRkZGRkZGRkZGRkZGRkZGRjVFCis6MTAwMkMwMDBGRURGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjVGCis6MTAwMkQwMDBGRkZGRkZGRkZGRkVCRkZGRkZGRkUzN0ZGRkZGRkZGRjBCCis6MTAwMkUwMDBGRkZGRUZFQkZGRkVCRkZGRUJGRkZDN0ZGRkZGRkZFRTJCCis6MTAwMkYwMDBGRkZGRkZGRkZGRkZEREZGRDZGRkZEQkZGRkZCRkZGRUEwCis6MTAwMzAwMDBGREZGRkZGREVGRkZGRkZGRkZGRkZGREVGRkZGRkZGRjMyCis6MTAwMzEwMDBGRkZGQkZGRkZERkY3RkJGRkY1RkRGRkZGRkJGNzdGRjc3Cis6MTAwMzIwMDBGRkZGN0ZEN0ZGRkZGRkZGRkZDM0ZGRkZGRkZGREZFRkYxCis6MTAwMzMwMDBGRkZGRkVGQkZGRkZERkJGRkZGRkZGRkZFREZGQjdGRjhDCis6MTAwMzQwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkJECis6MTAwMzUwMDBGRkZGRkZBRjdGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjdECis6MTAwMzYwMDBGRkZGRkZGRkZGRkZGRkZGREZCRkRGRjNGREZCRkY1QkQzCis6MTAwMzcwMDBGREZGQkZFRkY3RkZGRjdERkZGRkZGRkZGODNCRkZCRjc0Cis6MTAwMzgwMDA2RkZGRkVGRkJGRkZFQjdERkZFRkZCRkVGRkZGRkZGRkY5Cis6MTAwMzkwMDBGRkYyN0ZGQ0ZGM0ZERkVERkVGRkZGRkZGRkVGNUZGN0E4Cis6MTAwM0EwMDBCNUZGRUZGRkZGRkZFMDNGOUY5RUZGRkZFRkZGREZGRjg3Cis6MTAwM0IwMDBCRjVGQkZDRkYzRkZGRkZGRkZGRkZGNjlBRjMzRkRGRjVECis6MTAwM0MwMDBGQkZGRkZGRkZGRkNGRjdGRDlGRkRGRkZGRkZGRkZGNTE0Cis6MTAwM0QwMDBBM0RGNkVERUZGRkZCREZGRkZGRUZGRkZGRkZFRTdGREI5Cis6MTAwM0UwMDBGRkZGRkZGOUVGQzZGRUI3QURFNUY5RkZGRkZGQ0ZGRjU3Cis6MTAwM0YwMDBGRkZGQ0RGQjdGRkZGRkZGRjlGNjBGREZFQ0NGN0ZGRkE1Cis6MTAwNDAwMDBGQjdGRkZGRkZGRkRGRkZFRjlGRDdGRkY3RkZGRjk1QjM1Cis6MTAwNDEwMDBGRjczRENGRDdCREZGRkZGRkY3QkZGRkZGNzUzRDZGRkEyCis6MTAwNDIwMDBGRkZGRkZEODlGRkVGRkVGN0ZFRUZGRkZGRkZCRURFRDJECis6MTAwNDMwMDBGREZGRkVGRkZGRkI3RkZGRTI3RkZGNkZEODU3RjdGRjU3Cis6MTAwNDQwMDBGRkZGREZGRkU4RkZGRkZERkZGRkZDN0ZGRkU0RkZGQjk3Cis6MTAwNDUwMDBFRkZCRkVERkI3RURGRkZFREY3RkZGRkU3RkI3RkZGRkE1Cis6MTAwNDYwMDBGRkZGODlGRkZGQ0ZGM0ZFN0ZGRkVGRkZGRTdFN0ZGQkU1Cis6MTAwNDcwMDBGRkZGRkZGRkZGRkZGRkYxRkZFQjdBRDVCRjZGREJCRTkyCis6MTAwNDgwMDBGREI3RDhGNkU1QkY2RkZCRkVGNUJEN0UwNkZGREZGN0QzCis6MTAwNDkwMDBGQkY2RkYzRkZGREJGRkZGNkZGQkY3RkZGRkZGRkJGRUZFCis6MTAwNEEwMDBGN0FGRkZCN0VERUZGN0ZFRkZGRkRGRkZGRUZGRUZGRjU4Cis6MTAwNEIwMDBGRkZGRkZCRkY3RkMxRkVFRkJGRUJERkY3RjVGRDdGRDE5Cis6MTAwNEMwMDBGQjQzRkZGRkZERkY1RkZGRjdGRkY5M0ZGRkNGRjNGREFBCis6MTAwNEQwMDBGNzdFRUZBN0Y5RkU4RkE3RTlGMzdFOUZGQkY4RkZGRkZBCis6MTAwNEUwMDAzRkZEN0Y1RkRGRkRGRkZGNUZGRkZENUZGRkZGN0ZGREU0Cis6MTAwNEYwMDA3RkZEOUZGRkUwRkZGQUY4QkU2RjlGRTZGOEJFM0Y5QUQwCis6MTAwNTAwMDBGOUJFNkY5RkUyRjlGRTZGOUZGOUZGRjVGRDdGQ0ZERjI4Cis6MTAwNTEwMDBGREZEN0ZGRkY1RkZGRkZGRjdGNUZEMEZEQkZGRDNGRkNECis6MTAwNTIwMDBFQkZBRkZGRkJGRkZGQUZGRkZDQkZCRkVGRkZGRUJGQThCCis6MTAwNTMwMDBGRUZGRkZCN0ZGRkZGRkZGQkZGRkRGRjVGRkZGRDdGRkE2Cis6MTAwNTQwMDBGRkZGREZEN0Y1RkY3RkZFNEZGRkZERkY3RjdGRkZBRDkyCis6MTAwNTUwMDBFQkZCRkZBREZGRkZGRkZGQUZFQkZCRkZGQzBERkZGRjcyCis6MTAwNTYwMDBERkQyRkRGRkZGRkRGNkZGRkY3RkZGRkYxRkZGRkZGRjU1Cis6MTAwNTcwMDBGRkZCM0Y3REVCMzJGRUJGMkZFQkZBQUVCREUwRkE3RTE0Cis6MTAwNTgwMDBCRkFERUJGQUZFQkZGNTdGRkZERUZFRTNGQkZGRkZGRjMzCis6MTAwNTkwMDBERkVGNEZERkZGN0ZERkZGRjdGRkZGRjg3RkZGRkZFRkFBCis6MTAwNUEwMDBGQkZGRkZGRkVGRkZGRkRGRURGQkRGRkZCRkZGRkZGRjA1Cis6MTAwNUIwMDA4MUZGRkZGRkZGM0ZGRkZGRkZGRkZFRERGRUVGRkRGRkJGCis6MTAwNUMwMDBGRkZCRkVGN0ZGOTNGREZCN0VGRkZFODdFOUZGN0ZCMzk2Cis6MTAwNUQwMDA5RkZFRkVGRkFGRkRGRTdFM0ZGRTY3RkZGRkY3RkZGRkMyCis6MTAwNUUwMDBGQ0Y3REZGREZGN0ZGRkZGN0Y2REZGRkZGRUZGRkYyRkFCCis6MTAwNUYwMDBGRkJGRkZGRkVFRkZCRUZGRkZGRUZGRUZGRkZGRkVGRkFGCis6MTAwNjAwMDBFRkZGRkZGQTVGRkZGRkZCRkZGRkVGRkZGQkZFRkRGRkNBCis6MTAwNjEwMDBGRUZGRkJGRkZGRkY3RkZGRkVCRkRGRkZGQkZGRkZGN0RDCis6MTAwNjIwMDBGQ0ZERkZGRkZGRkZGRjdGRkZGRkZGRkZGRkYyN0ZGRkVDCis6MTAwNjMwMDBGRkZGRkY3RkZGRkZGRkZGRjNGRkZGRkZFRkZCRkZGRjZBCis6MTAwNjQwMDBGRkRGRTJGRkZGRkJGRkZGRkZGRkZGRkZGQkU3RkZGRDE5Cis6MTAwNjUwMDBGRkZGRkZCRkZGRkZGRkVERUZGREZGRkZERkQ3RjVGRDYyCis6MTAwNjYwMDA3RjVERkRGRjdGREY5N0Y0RkQ3QjVGRkZDOUZGRkJGRTMyCis6MTAwNjcwMDBGRkJGRkY1RkZGRkZGN0ZGRUZGREZGRUZGRkZGRkZGRjk0Cis6MTAwNjgwMDBGRkY3RkZEN0ZEN0Q3RkZGRkZGRkZGRUZERkY3RkRGRkU4Cis6MTAwNjkwMDBCQkZGRkY3RkZGRkVFM0ZGRjlGRTdGQkZFRkZCRkVGRjI3Cis6MTAwNkEwMDBCRkY5RkVGRjlGRUZGOUZFRkZCRkYzREFGRjM3Q0RGMzhGCis6MTAwNkIwMDA3Q0RGMzdDREYzN0YzN0NERjM3Q0RGMzdDQ0YzN0Y1QTQ4Cis6MTAwNkMwMDBCREY2RkRCRjZGREJGNkZEQkY2RkRFRkRCRjZGREJGNjc2Cis6MTAwNkQwMDBGREJGNkZGRUYxNkZFQjdBREVCN0FERUI3QURFQjdBRjQxCis6MTAwNkUwMDA3QURFQjdBREVCN0FERUI3RkY3RUZGRkVDREIzNkNEQjEzCis6MTAwNkYwMDAzNkNEQjM2Q0RFQ0RCMzZDREIzNkNEQjM2Q0RGQzlCRkFBCis6MTAwNzAwMDBGN0JERUY3QTlFQTdBOUVBN0FCN0JERUE3QkRFQTdCRDVGCis6MTAwNzEwMDBDQTcyOEQ5MUZGRUZGQkZFRkZCRkVGRkJGRUY3RUZGQjExCis6MTAwNzIwMDBGRUZGQkZFRkZCRkVGRkZFODdGRkY2RkRCRjZGREJGNkIwCis6MTAwNzMwMDBGREJGNkZGNkZEQkY2RkRCRjZGREJGNkZGRTRGRkZCRjY2Cis6MTAwNzQwMDBFRkJCRUVGQkJFRUZCQkVGQkVFRkJCRUVGQkJFRUZCQjA2Cis6MTAwNzUwMDBFRkZDNUZGRkZGRkYzRkNGRjNGQ0ZGM0ZDRkZDRkYzRjBFCis6MTAwNzYwMDBDRkYzRkNGRjNGQ0ZGRDlGRkVCRkFGRUJGQUZFQkZBRjY1Cis6MTAwNzcwMDBFQkZFQkZBRkVCRkFGRUJGQUZFQkZGRTE2RkZERkY3RjFDCis6MTAwNzgwMDBERkY3RkRGRjdGREZGREZGN0ZERkY3RkRGRjdGREZGRjhGCis6MTAwNzkwMDA3QUJGRkJGRURGQjdFREZCN0VERkI3RkI3RURGQjdFRDk5Cis6MTAwN0EwMDBGQjdFREZCN0ZGQzlGRkZGQkZFRkZCRkVGRkJGRUZGQjI1Cis6MTAwN0IwMDBGRkJGRUZGQkZFRkZCRkVFRkJGRUJCRkZGRUZGQkZFRjg5Cis6MTAwN0MwMDBGQkZFRkZCRkVGRkVGRkJGRUZGQkZFRkYzRkNGRkZFN0VDCis6MTAwN0QwMDBGRUZGRjVGRDc3NURENzM1REQ3N0Q3RjVDRDdCNUREN0FFCis6MTAwN0UwMDBGNURENzdGRTI3RkZGRjhCRTJGOEJFMkY4QkUyRjlBRjM2Cis6MTAwN0YwMDA4QkUyRjhCRTJGOEJFMkY5RkUxRkZGNUZEN0Y1RkQ3RjdFCis6MTAwODAwMDA1RkQ3RjVGRjVGRDdGNUZEN0Y1RkQ3RjVGRkZBM0ZGRUI2Cis6MTAwODEwMDBCRkFGRUJGQUZFQkZBRkVCRUNCRkFGRUJGQUZFQkZBRjgzCis6MTAwODIwMDBFQkZGRkU3RkZEN0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkVGCis6MTAwODMwMDBGRkZGRkZGRkZGRkZGRkU2RkZGQURGRjdGREZGN0ZERkIwCis6MTAwODQwMDBGN0ZDRkZERkY3RkRGRjdGREZGN0ZERkZGNUZGRkZGRkExCis6MTAwODUwMDBGRkZGRkZGRkZGRkZGQkZGRkZGRkZGRkZGRkZGRkZGRkFDCis6MTAwODYwMDBGRjAyRkZGRUJGQUJFQkZBQkVCRjIzRUJERTFGQUZFQTFBCis6MTAwODcwMDBGQUZFQUZBRkVCRkQ5N0ZGRjNGQzdCMUZDRkYxRkM3RkUwCis6MTAwODgwMDAxRkYxRkM3NzFGQ0RGMUZDRkYxRkZFODdGRkFGRUZGQUQyCis6MTAwODkwMDBGRUZGQUZFRkZBRkRCRjJCRkI3RUJGQkZFQkZCRkJGQjA5Cis6MTAwOEEwMDBERkZGRkJGN0ZGRkY3RkY3RjdGRkZEREZGRUZDREZGRjVBCis6MTAwOEIwMDBERkZGRkRGRkRBQkZGRkJCRUZGQkY5RkZCRUVGRkJGQjg2Cis6MTAwOEMwMDBCRkVGRkJGRUZGQkZFRkZCRkZGNzdGRkREN0ZGRkY3RjEzCis6MTAwOEQwMDBGRkZGRkZGRUY3RkZGRUZGRjdGRkZGN0ZGRkZGRUNGRkNECis6MTAwOEUwMDBGRkZFREZCRkZGRkJGRUZGQkI2OEFFMUZBRUZCRkJGRkUzCis6MTAwOEYwMDBGRkJGRkZENUZGN0ZGRkZGRjdGRUZFRkZCRkVGOUZGREFFCis6MTAwOTAwMDA3RkZGQ0JGRkZGREZGRkZGQkJGN0JGRkZGRkZGRkZERjc3Cis6MTAwOTEwMDBGRkJGRkJGRkZGRkZERTNGRkZGRkZGRkZGRkE3RkZGRjY0Cis6MTAwOTIwMDBGRkZGRUZGRjdGRkJGREZCN0ZGRkZGRkZGRkNGRjM3Q0IwCis6MTAwOTMwMDBGRjdGOEQ3RkZGRkZGRkZGRkJGRkY3RkJGRUZERkZGRjRDCis6MTAwOTQwMDBGRkZGRjdGREZGN0ZGRDFGRkRGRkZGRkZGRkJGREZGRjg1Cis6MTAwOTUwMDBGRkZFNUNGRjZERkY3RkFCRTdGMUZGRkQ5RkZGRkZBRDhCCis6MTAwOTYwMDBFQjdBM0YxRkZGRkZGRUJGQUZGM0RFRjVGRjhGRkJERjJDCis6MTAwOTcwMDBFNjdGRkZERkYzRkRGRjdFRkZGRkZGRkZGRkZERjdGM0U1Cis6MTAwOTgwMDA3RkRGRjdFRkZGRjYzRjlGREZGRkZGRUVGRkZGRUZGQjlECis6MTAwOTkwMDBGRkZGRjlGQkZFNEZCRkVGQkJGRjY5QUZBRkZDRkYzRkFGCis6MTAwOUEwMDBEREZGRkNCRjhGRkZGREYzQkZFRDlFRkNCRjZGRjVEM0Y2Cis6MTAwOUIwMDBERkZGREJENkY1RUZGREZFRkZCOUZGMUZEMkE5QUZGRkNBCis6MTAwOUMwMDBEQkY3QkZFRjQ2RkZGRkFERUI3QURGRUZGN0ZGN0ZGNzE3Cis6MTAwOUQwMDA5RkVERkY3RkZGQURFQjdGRjU2RkZGRkRGQkQ2RjRGN0RCCis6MTAwOUUwMDBGQkY5N0U3RkZGNUZDMkZFQkZGREZCMzNERkY5NUJGRkRDCis6MTAwOUYwMDBGRkRENjc3RENGRUZEQkVDRkY3N0RERjdGREZGRkZERThGCis6MTAwQTAwMDBBN0JGRDQ5RkZGRkZCRkVGRkVGRkRGRUZCQkZGRkZFRkVFCis6MTAwQTEwMDBFQkZBRkZFRkJERkJGRkUyN0ZGRkRGREZGN0ZEQkZCQkMwCis6MTAwQTIwMDA3M0Y3RkQ3RkRGREVGN0JGRUFEQkY2RkZENkZGRkY2Njc5Cis6MTAwQTMwMDBGRkJFRkZCRjZCRDlGNkRGRkZGQjdFN0ZCNzdFRkZGRUY5Cis6MTAwQTQwMDBGRkNERkZGRTdGRkZGQ0ZEM0ZGQkZCRjdGRkZGRkJGNjRCCis6MTAwQTUwMDA3REZFN0ZGRkZDRkZCOUZGRjlGQUZFQkZBRjVCRDZFRDZECis6MTAwQTYwMDBBRDdCRjZGOUJGRUZGOEZBRkVCRkZFRTZGRkZGRjdGRDNDCis6MTAwQTcwMDBGRjdGQkZFRkYzRkZGRjZGRjdGRUZGRkZGN0ZERkVGNzBFCis6MTAwQTgwMDBFRkZGRkJFRkZCN0VERUZFRkZCRkZGRkVGRkZGRkJGRjg2Cis6MTAwQTkwMDBGRkVGRkI2RkZDMUZGRUU3RkZGRkZGRUZGRkQzQjRCQkQxCis6MTAwQUEwMDBGRkZGRkRCRjZGRTNGRUZGQkZGQ0JGRjdDRkY3RkRGRjBBCis6MTAwQUIwMDAyRkRGQUJFQUZGREZFN0VBOUFBRkVGRkJGRUZGRjUzRjgwCis6MTAwQUMwMDBGRDdFRkZEN0Y1RkJGRkZERjdGRjdGRkVGN0ZERkZEN0FDCis6MTAwQUQwMDBGRkQ3N0ZFRTdGRkE3OUZFMkY4QkU2RjlGRTNGOUVGOTc2Cis6MTAwQUUwMDBCRTJGMEJFN0Y5RkUyRjlGRkRGRkZFN0Q3RjVGRDdGRjM3Cis6MTAwQUYwMDBGRjdGRkZGREZGN0Y1Rjk3RkZGRDdGNUZGRkUzRkZGRjRFCis6MTAwQjAwMDBGQUZFQkZBRkZCRkJGRkZGQ0ZFQkZFQkZBRkZGRkFGRTZFCis6MTAwQjEwMDBCRkZGODdGRkZGRjVGRkZGRkZGRkZERkY3RkZGRkZGRjI5Cis6MTAwQjIwMDBGQkZGRkZGNUZGRkZGRTBGRkZGREVCRkZGRkY3RkZFRjAyCis6MTAwQjMwMDA3QkRGRkVGRkZGREZGN0ZERUI3RkRGRkY1RkZGRkZGRkU4Cis6MTAwQjQwMDBGRkZEQkZGRjdFRkFCRkM3REJGN0JEM0ZGQkZGRjZGRjMwCis6MTAwQjUwMDBGQUFGRkZFQkZBRkUzRjJGRUFGQTNFQURDOUJBRjZBREE3Cis6MTAwQjYwMDBBRkVCRkFGNkJGRkU3RkZGRkZGREZGRjE3RjNGQ0ZGMTU2Cis6MTAwQjcwMDBFRkZGN0ZGRkJDREZERkY3RERGRkUwN0ZGRkZGRkVGRjYyCis6MTAwQjgwMDBGQUVDQkI3RjVGRkZGQkVDRkZFRkI3RkZGN0ZGRkZCNUIyCis6MTAwQjkwMDBGRkZGN0ZGRkZGRkZFRURGNUZERkRFRkZBRUU3NzdGRkU4Cis6MTAwQkEwMDBGRkRGRjdGRkUzRkZGQUJCRkVGRkFGRkRGQkZFQkZBQkNFCis6MTAwQkIwMDBGOUZFRkZCRjdGQkZGRUJERkVEN0ZGOUZGREZGQkVFRjZCCis6MTAwQkMwMDBGRkVFRkRCQjVCRUZGRjdGRUZGRkVGRkY3RkZGNEZGRjEwCis6MTAwQkQwMDBFRkZCQkNGQ0ZGRkZGRkZFRkVGREZBRkVGQkZGRkRGMzlCCis6MTAwQkUwMDBGQkZGRjg1RkZGRkZEN0Y1RkRERkVGRkZGM0RDNUZDRTI0Cis6MTAwQkYwMDBGNUJERkZGRkQ3RkZGRkY5M0ZGRkRGRjdGRkZFRkZGRDZBCis6MTAwQzAwMDBGRkZCRkZGN0I5N0RGRURGRkZGRkZGRkZGOTdGRkZGRTcwCis6MTAwQzEwMDBGRkZGN0ZGRkZFRkZGRkY3RjZGRkJGRjFGOEZGRkZGRkNCCis6MTAwQzIwMDBGRkUwRkZGRkZGRkZGOUZGRkZGRkZGRkZFRkVGRkZGRjE5Cis6MTAwQzMwMDA5QkZCN0ZGRkZGRkZDMUZGREZGRjNGNUZEN0JGRUZCQjI2Cis6MTAwQzQwMDBERUVFRkY3RkRGRkZGRUY1N0ZERkZGOTlGRkZGRkFGRjlDCis6MTAwQzUwMDBCRkZERUI3QUZGQjdGRUZFRkZGRkVGRkZGRkZEQkZGRjFCCis6MTAwQzYwMDA5N0ZGRkRGN0ZGN0ZGN0ZGRkZGRDVGRkVGM0Y5REZERjgzCis6MTAwQzcwMDBGRkZGRkNGRkZGODNGRkZGRkVGRjlFRUNGQkVFRkY5RkVECis6MTAwQzgwMDBCRkVGRkZGRUVEN0JGRkZGRkZGMTVBRkZGRkZERkY3QzkzCis6MTAwQzkwMDA2OTNCREZGRjdGMUZERkZGRkRCQUZGRkZGQkZGNUJCRDhGCis6MTAwQ0EwMDBGRkZGRkZGRkQ3QjZFREU5RkZENkJENkY1RkZCRkZFRjlDCis6MTAwQ0IwMDBGRjVGRkVGNjZGRkZGRkZGRkZGN0VCN0FERkZGOUY3RjFGCis6MTAwQ0MwMDA3RkZGQjdGRkZGRkVERkZGNkNGRkZCRkZCQjZGRUJGRTlECis6MTAwQ0QwMDBDQ0Y3QTVGQTVDRjU3NUJCQjdERkZFNkY1RkM1QkZGRDRFCis6MTAwQ0UwMDA3QkZFRkY5NUU3MjlDRjRGRjU5MUVFNkJERkVGRkQ1NENCCis6MTAwQ0YwMDBGNUJEQjFGRkVGRUVGQkJFQkZBRkZFREVCRDZGREFGMkJBCis6MTAwRDAwMDBGRkFGQkVGRkZGRkQ3RUE3RkZGN0ZGQkZFRjdCRjZGRDQ2Cis6MTAwRDEwMDBCRDRBRjI4NTg1QkY1QkZFQjVGREZBRkY0RkZGRkVERkUyCis6MTAwRDIwMDBGRkVERkZCRkZGQkY3RkZFRkZCNzZERkZGN0JGQkZFRjU4Cis6MTAwRDMwMDBGRDFGRkZGRTdERkY2N0ZGRkZGRjNGN0ZGRUJGRkZFNzU5Cis6MTAwRDQwMDBERkU3RkZFRjZCRkMxRkZGQkZFRkZCRkVERUJGQUZGQTdECis6MTAwRDUwMDBGRkI2RUZGOUZFRkY4RkVGREJFRkFCNkZGQkZFRkZGRkEwCis6MTAwRDYwMDBFRkZERkY3RkZGRkZERUZGRkZFRkZGRkZGRjNGRkY2Q0E5Cis6MTAwRDcwMDBGRkJGRkJGRkZFRkZGQkZFREZGRkZGRUZGRkZGQkZGRjNECis6MTAwRDgwMDBGRkZFRkJGRkQ1N0ZGRkZGRUZGQkZGRkZCRkVGNDNCNThDCis6MTAwRDkwMDBGRDZGQ0ZENkJFM0Y3RkRCRkVDM0ZGRkRGRkFGRUJGQjlBCis6MTAwREEwMDBGQ0ZGM0VFRkU4RkFCRENEQUFGRUZFN0RDRkZGQjdGRjA4Cis6MTAwREIwMDBGN0ZGRkZGRkZERkY3NUNENTJEN0ZERkJGN0RERkJFRjIyCis6MTAwREMwMDBFQkZGRkY0RkZGQkY5RkU3RjlGQzdGOEJDM0Y5QUY4RkFFCis6MTAwREQwMDBFN0U5QkU3RjlGRTZGOUZDNUZGRkZGRjdGREZGN0E1RjYzCis6MTAwREUwMDBEN0VERkZGRkQ3RkZERDdGRTdGRkZDRkZGQzNGRkZGRkY1Cis6MTAwREYwMDBGRkZCRkZGRUJGQUZGRkZERkZFRkZGRUJGRkZGRkZGRkJFCis6MTAwRTAwMDBGRkY3N0ZGRjdGREZGRkZERkQ3RkZFRjdGRDdGREZGRjQ5Cis6MTAwRTEwMDBGREZGRkZERkZCRkZFRUZGRkJGRkY3RkRGRjdBREZGNUQ2Cis6MTAwRTIwMDBGREZBREZGN0ZDRkY3RkRGQkZFREZGQzlGRkRGRkZCRjhDCis6MTAwRTMwMDAyRkZCRkZCQ0FERkZGN0ZGRkZFRkQzRkY3REJGNkZGRkMxCis6MTAwRTQwMDBGQUZGRkVCRkFFRUFGQUJFQURBNUVCQ0VCRkE3RUI1QUU2Cis6MTAwRTUwMDBERUJEQUY2QkZENTdGRkZGRjQ3RjFGN0ZGREZGN0YzNkM5Cis6MTAwRTYwMDBGMERGNzlGRkZGRkZGN0ZEQkZGRjg3RkZGQkYzRkNGRjFDCis6MTAwRTcwMDBGRkZGRkY3RUZGQkZERkZGRkZGRkZGRkZGREJGRjg5RjBDCis6MTAwRTgwMDBGRkZGRkZGRkJGRkZGRkZERjdGQ0JERkZGRUZGRkZGRjAyCis6MTAwRTkwMDBGRkZGRkJGOUJGRkZGRkVCRTJGRUZGQkZFRkE5QkEyRjk5Cis6MTAwRUEwMDBFQkY5RkU3N0RGRjdGRkZGRjk3RkZGRkY3RkVGRDdGRjVCCis6MTAwRUIwMDBGREZGRkJGNUZGQkY2RkRGRkZGRkZERkZGRkYwRkZGRjUzCis6MTAwRUMwMDBGRjNGQ0ZGRkJBRUU5QkJGRUVEN0ZFQ0RFRkZGREZCRkY4Cis6MTAwRUQwMDBGRkZGQzVGRkZGRkQ3RjRGRkRGNkQ5RkY0RkQ2RkRCRkRBCis6MTAwRUUwMDA2RUZGRkZGNDdGRkY3RjhCRkZGRkZGRkZGN0ZGRjlGRTMxCis6MTAwRUYwMDAzN0ZGRDlGQkY1QUZGREZGRkZGQkZGRkYwN0ZGRkZGRjRDCis6MTAwRjAwMDBGQkY3RkZGREZGN0NGQTdFNEZGQ0RGMURDN0ZGRkZGRkY1Cis6MTAwRjEwMDBGRkFFRkZGRkZGRkZGREZCRkZGRkZFRkVGQ0ZGN0Y3RjNECis6MTAwRjIwMDBCRkVGRkVGRkZGRkY1RkZERkZGRkZGRkQ2RjVBRDc3QkE3Cis6MTAwRjMwMDBCRTVGRkUzOUZGRjdGRkY3RkRGRUFBMUZGRkZGRkZGRkIxCis6MTAwRjQwMDBGRUZFQUJBRkZERkVCRkZGRjdGRjdGRkU4RkUzRkJFRUM0Cis6MTAwRjUwMDA3RkZGRkZGRkZGRUJGQkZGRkRCRkVGREZGRkZGRkZGRkFCCis6MTAwRjYwMDBGRkZGRkZGQkU0M0ZGRkRGRkZGRkZGRkZGM0VGQkJGQkY0Cis6MTAwRjcwMDBCRkVGQkJGRkQ3QkZGRkZGRkYyOUFGRjdGRkZGRkJGRkFGCis6MTAwRjgwMDBGQkU2RkYwRkZCM0ZERjBGRkZBRkZGRkZGRkY1QzNERjA4Cis6MTAwRjkwMDA1RkZGRkZGRkZFNkJDQUJFQkNGRjlGRjJCRkZGRkVGQTAyCis6MTAwRkEwMDBGRkZGRUYxNkZGRkZGRkZGRkZGQ0RGOTdGRDc5RkYzNzI1Cis6MTAwRkIwMDBFNzdGRkZGRkI1RkZGRkY2MkZGRkZERkJGRUZGRkZGRDA1Cis6MTAwRkMwMDA1RjU3NUZGRkRCNTJERkZGRkRCRkZGRkZGQ0RCRkY3QkY3Cis6MTAwRkQwMDBCNUZEN0ZGRjcxOUM2RUZGRjYzNUE1OUJGRkZGRkRGRjAyCis6MTAwRkUwMDBGRkRCOUU3RkZFRUZGQkZGRkZCREVGRkZERUI3Rjk0QkEwCis6MTAwRkYwMDBGRkY1RUZGRkZGRkZFODdFRkZFQURGRjdGRkZENjk1QjJDCis6MTAxMDAwMDBGQzlGRUY3OEQ2RkZFQkVGRkZGRkZGRThGRkZGRURGRjYwCis6MTAxMDEwMDBGRkZGRkZFM0Y5RjZCRkZGRkZGRURGRkY3RkZGRkZGRkVDCis6MTAxMDIwMDBEMUZGRkZFN0ZGRkZGRkZGRTdGOUZGQkY3RkQ5RkZGRDFDCis6MTAxMDMwMDBGRTdGRkZGRUZGRjlGRkZCRDZERkJGRUY1QkQ2RkZCRkYyCis6MTAxMDQwMDBGQkY2RkZCRkVGRjhGNkREQkVGRTE2RkZCRkVGRkZGRUJCCis6MTAxMDUwMDBGRkJGRUZGRkZGRkY2RkZCRkZGRkZGNkZGM0ZGRjdFRjM4Cis6MTAxMDYwMDBGQkZGQkZGRkVGRkVGRkJGRkZGRkZGQkVCRkZGRUZGRkI2Cis6MTAxMDcwMDA3RkVGRkZGRDE3RkI3QkZGRkZGRDdGREJGNkY0N0ZGQUMxCis6MTAxMDgwMDBGRUY1QkZFQkUzRjdGRkZGRTlCRkZGQUZGN0ZERjM3RTMwCis6MTAxMDkwMDA4RkEzRUFGRkNCRjNFRUZGQkZFRkY3RjlGRkZFN0ZGRjcxCis6MTAxMEEwMDBGRkZGRkZGNUZCRjZGRkY1MkZGRUZCRDdCRkZGQkVERjBGCis6MTAxMEIwMDA5RkZGRjBGRkZGRjlGRTdGOEZBM0Y4RkU2RjlGRjlGNjA5Cis6MTAxMEMwMDAyRjlGRTdGOUZFMkY5RkUxRkZGRkZGN0ZERkY3RjVGRDgxCis6MTAxMEQwMDA3RjdGRjVGRjlGNUZGQkZFRkY3RkZGRkZDQkZGRkZGQkU3Cis6MTAxMEUwMDBGRUZGQkZBRkZCRkVGRkRGRkVGRUJGRjdGRkZGRkZGRjEwCis6MTAxMEYwMDBGRkM3RkZGRkZERkY3RkRERjdGREZGRkZEN0ZGRkQ3RjkwCis6MTAxMTAwMDBGRkZCRkRGRkZGRkVFRjdGRkRFRkZCRkVGQkZERkY3RjIzCis6MTAxMTEwMDBERkZERkY3QURGRjdGREZGRkZGRkZGMUZGRkZGRDNGN0M0Cis6MTAxMTIwMDBGRkZGNkZEQkZGRkZFRkNCRjRGRkZGRkZGRkZGRkZGRUQzCis6MTAxMTMwMDAyOUZGRThEQTc2OUZBRjZBREFGRTM1RUJEQUQ2QkZBQjg1Cis6MTAxMTQwMDBFQjdBREVCRkQ3N0ZGRkZFRkZCRkVGRkRERjc3QkZGRDhFCis6MTAxMTUwMDAzN0VGRkZFRkZGM0ZGRkZGRkZGRTdGRkZGRkZGRjc3RTUxCis6MTAxMTYwMDBERkZGRkZGRkZBQjc3RkZGRkZGRUZGRkZGRkZGODlGRkYzCis6MTAxMTcwMDBGRkZGRkZGRkZGRkZGRkZGRkY5RkZCRkZGRkZGRTdGRkZCCis6MTAxMTgwMDBGRkZGRkZBQUZGQUJGQkZBRUZCRkZGREZGQTdCQjlGRTYxCis6MTAxMTkwMDBGRUZGRkRGRkY3RkUzRkZGQjdGRkY3RUVGRjdGRUZGRjFDCis6MTAxMUEwMDBGRjdGRkYxRkZCRkZCRkZCRkVGRkJERkZGRjJGRkZCRjRBCis6MTAxMUIwMDBGRjdGREZGQUZGRkZGQ0VFRjVGM0JFRkIwRkVGRjNCRUEwCis6MTAxMUMwMDBFRkZDNUZGRjVBRkZGN0RGRkZGRkZFRDVGQzVGRkJGMjhFCis6MTAxMUQwMDBGRkZGMkZCQkYzRkZGRkJGRkZFRkZGRUZGRkZGRkZGRjlGCis6MTAxMUUwMDBCRkZGRkZGRDdCRkZERkI5RkZGQkZGRDg3RkZGRkZGRkU2Cis6MTAxMUYwMDBGQkZGRkM3RjFGQkZFMERGRjdFRkZGRkQ3RkZFREZGRkEwCis6MTAxMjAwMDBFMEZGRkZGREVGRkJGRkZFRjdERkZGRUI1RkZGRjdGRjA4Cis6MTAxMjEwMDBGRkZGRkZCRkZGRkRGRkZERkZGRkZGRjdGREZGM0JEQzEzCis6MTAxMjIwMDBGRDZEN0I1RjU3RjVGRDdGNUZGRkIxRkZFQkZGRkZGRkJDCis6MTAxMjMwMDBGQkZCRkVGRkJGRkJCRUZGQkZFRkZCRkVGRkFGRkVGN0ZBCis6MTAxMjQwMDBERkRGRkZGRkZGN0ZDRkYzRjhGRkQ3RkJGRjVGQkZGN0M1Cis6MTAxMjUwMDBGQkZGN0ZGRTIzRkZGRkZFN0ZGM0ZGRkJGRUZGRkZGMzlECis6MTAxMjYwMDBGRkZGRjVGOUZGM0ZGRkZGRjA5QUZGQkU3RkZGRkNGOTlDCis6MTAxMjcwMDBGRkZEQUZFQkZFQkZGRkNGRjNGRTdGRkZGRjVCQkRGRkM4Cis6MTAxMjgwMDBCQ0VCRkZEN0Q0QUZBRkZERkZDRkY3RkRGRjdGREZGNzlDCis6MTAxMjkwMDBGREZFRkY2RkZGRkJGRkZGRkZGRDdGNUVGREJGREJGNjg3Cis6MTAxMkEwMDBGREJGNkZGQkVFRkRGRjdBRkZGQUZCRkYzRkZCQjc1RjcxCis6MTAxMkIwMDBENkY3MUY3MURDNzcxREM3MzFEQzc3REZGOUJGRjU1QjJGCis6MTAxMkMwMDBGNEQ3OURBRUZGQkZGREJGREJGNkZEQkY2RkRCRjZGRUMzCis6MTAxMkQwMDAzRDgxRkZFQkZFRkVGRUZGRUI3QURGN0Q3NzdERjU3OTRBCis6MTAxMkUwMDBERjU3RERGNTdEN0VFNkZGRDYzRkJGN0ZGRkQ0RjUzRkJDCis6MTAxMkYwMDBCRkZCQkVFRkIzRUVGQjlFRUZCQkZFOEJGRkZFREZCNzg3Cis6MTAxMzAwMDBFREZGRjdGREZFRkZFRkJCRUVGRkJFRUZCQkVFRUJGQzJDCis6MTAxMzEwMDAxRkZGRkZGREZGRTdGRkY3RkRGRkVGRkVGRkJGRUZGQjQ2Cis6MTAxMzIwMDBGRUZGQkZFQkZBMUZGRkI3RUY1QkZFRkZBRkVCRERFN0EyCis6MTAxMzMwMDBERTc3OURFNzc5REU3NzlEQkZFNjZGRkZGRUZGQkZFRkFCCis6MTAxMzQwMDBGQkZFRkRCRjZGRjZGREJGNkZEQkY2RkRCRkZGN0VGRjRGCis6MTAxMzUwMDBGRkZCRkVGRUZGRUZGQkZERUY3RUY3QkRFRjdCREVGNzUxCis6MTAxMzYwMDBCREVGRkZENUZGQkZGRkVGRkVGRkZDM0YwRkU3RkU3RkE2Cis6MTAxMzcwMDA5RkU3RjlGRTdGOUZFN0ZFRjNGRkZFREZBRERGNjdFRTNECis6MTAxMzgwMDBGQkJGRUZGRUZGQkZFRkZCRkVGRkJGRUZGRjIzRkZGRjQzCis6MTAxMzkwMDBGRkZGN0ZGRkYzQkNEQkZFRkJGRkZCQkVGN0ZCRkY3RjI2Cis6MTAxM0EwMDBERkZGQ0ZGQkZGOUZFM0Y5QkUzRjhGRTc3OUZGOURFN0FDCis6MTAxM0IwMDBGOUZFN0Y5RkU3RjlGRTVGRkZDRkY3RkZGRkZGREZGNzQzCis6MTAxM0MwMDBGRTdGRTdGOUZFN0ZGRkZGRkJGRUZGRkZCRkZGQkZCRjEyCis6MTAxM0QwMDBGRkZFRkZCRkVGRkZGREZGRkZGRkZGRkZGRkY3RkRGRjdBCis6MTAxM0UwMDBGRjNGRkZCRkZGRjdGRkZGN0ZERkZGRkZGRkZGRkZGRkI1Cis6MTAxM0YwMDBGRkZGRkZGRkZGRThFRkZGNUZGN0JGRjlGRURGQjdGRDdECis6MTAxNDAwMDBGRkRGRjdGREZGN0ZERkY3RkRGRkRERkZGMkZGQkZGRjJGCis6MTAxNDEwMDBGRkJGRkZGRjJGRjJGRkJGMkY3QkQyRjdCRjJGRkZCQjE2Cis6MTAxNDIwMDBGRkVFOEZBRkVCRkFGRTNGQTc2OUNFOEZBNEVBRkFFRThDCis6MTAxNDMwMDBCN0FFRUJGREM3RkZGN0Y3RkZGRkZGRkZGRjdGM0VGMzAwCis6MTAxNDQwMDA3NEZGM0Y0RkZGRTdGRjNGRkVBN0ZGRkZERkY3QjdGRjQ4Cis6MTAxNDUwMDBGN0ZGQkFFRjM3RUJGQkZFQkZGQkZFRjNGRkY5REZGRjUxCis6MTAxNDYwMDBCRkZGRkZGRkJGRkZGRkZGRkRERkZGRkRGRkZGRkJGRTM1Cis6MTAxNDcwMDBGREZGRkJCRkZFM0ZFREZGREZCRTNEQTdGQkZBM0ZFNkYyCis6MTAxNDgwMDBFMUZFRkUzRkVGRTNERkY1N0ZGRUZGN0VGRkZGRkZGRkE0Cis6MTAxNDkwMDBFRjZGRjZGRjdERUZEN0RFRkY3REVGRkZGMkZGRkZGRjdGCis6MTAxNEEwMDBGRkZGRkY3QkRFRkJFNkVFRUYzNzZFRjM3RUVCMzdFRjAxCis6MTAxNEIwMDBGRkMxRkZGRUZGRjdFRkZGRkZGRkJGM0ZEMkRGQkYyRkYwCis6MTAxNEMwMDA3QkUyRkZGRTNCQkREQkZGRkVGRkZGRkZGRkZGRUZGRTBBCis6MTAxNEQwMDBGRkZCRkZGRkJGRkZGQkRGRkZCRkZGQjdGRkZGQkZFRjVDCis6MTAxNEUwMDBGRkZGRkZGRkZGRkYwRkZGN0ZGRjFGRUZGMUZERkZGNjg1Cis6MTAxNEYwMDBBRkZGRkZGRkZGRkZFRkZGRkZGRkZFOUZGRkZGRkY3NzQ1Cis6MTAxNTAwMDBFRkY3RkJGRkZFNUZGRkZGQkZDRkZCRjdEREY3RjVGRjU4Cis6MTAxNTEwMDA1RkQ1RjVGRDdGNUZEN0Y1RkZGQjBGRkZGRkE5RUE3QUU3Cis6MTAxNTIwMDBGRkFGOEZGRURGQUZFRkZCRkVGRkJGRUZGQkRGRTU1RjNGCis6MTAxNTMwMDBGRkZGRkZGRkZGQkQ1N0ZGRkY2Rjc3QkZGN0ZCRkY3Rjg5Cis6MTAxNTQwMDBCRkY3RkZGQ0JGRkY5RkZGRkZFRkZGRkVGRkZGRkYxRjg3Cis6MTAxNTUwMDBDRkZGRkNGRkZGRkZGRkZCNjVBRkYzN0NGRjNGREZGRjJCCis6MTAxNTYwMDBGREU5RkU3RkU3RkZGRTdGRkZGRkZGRkZGREUzREZGQkZGCis6MTAxNTcwMDBEQkY2RkRFRjVCRkJGRkRGRkNGRjNGREZGM0ZERkY3RkYzCis6MTAxNTgwMDBERkVGNjZGRkRGQURFQjdBREVGN0Y3RTdEOUZEOUY2N0E4Cis6MTAxNTkwMDBEOUY2N0Q5RkU3REZGNTQ3RkQ2NTVCRDZGNEZFRkZFRkVCCis6MTAxNUEwMDBGRjZERjZEREI3NkREQjc2RENCNzdERkE5QkY2NkQ5REUyCis6MTAxNUIwMDA2NzU5REZGN0RERkZFQkZFQkZBRkVCRkFGRUJGQUZFMzJFCis6MTAxNUMwMDBEMTlGRkZCREJGRUZGRUY3QkZCRkY3RDc3RkRERjc5RDEwCis6MTAxNUQwMDBERjdGREZGN0ZGRTA3RkZEQzFERkY3RkRDNzdGN0ZGQjI4Cis6MTAxNUUwMDBGRkJCRUNGQjNFRkZCRkVDRkJGRkQ4N0ZCRjZDRkZCRTM5Cis6MTAxNUYwMDBGRkJGRURGRkVGRkVGQkJGRUZGQkZFRkZCRkVFRkZDNTQyCis6MTAxNjAwMDBGRkFGNkZGRkZDRkQzRkU3RkZGRUZGRUZGQkZFRkZCRkZECis6MTAxNjEwMDBFRkZCRkVCRjg5RkVGQUJBRkVCRkFGRkJGNkY1RDk3RDQwCis6MTAxNjIwMDA5NzY1RDk3NDVEOTc2NUQzRkVENkZGQkZGN0ZERkY3RjQxCis6MTAxNjMwMDBCRkNGRkJGRUZGRUZGQkZFRkZCRkVGRkJGRkY2OEZGQjE1Cis6MTAxNjQwMDBGRkVGRkI3RURCRkVGRkJFRUZFRUZCQkVFRkJCRUVGQjc0Cis6MTAxNjUwMDBCRUZGRkZERkZGNDNGRkZGRkJFRjVGQjdGRTdGRTdGOTUyCis6MTAxNjYwMDBGRTdGOUZFN0Y5RkU3RkY5QkZGRUFGNzdGREZGMkZBRjRCCis6MTAxNjcwMDBBN0ZFRkZFRkZCRkVGRkJGRUZGQkZFRkZGMTdGRUZERkZCCis6MTAxNjgwMDBGRjk3RjVFRkZGREZGRkZGQkZGRkJGRkZGRkZFRkZGRjhECis6MTAxNjkwMDBGRkUwRkZGRkY5RkUyRjhCRTNGOEJFNzc5RkY5REE3N0MzCis6MTAxNkEwMDA5REU3NzlERTc3OUZEREZGRkRGRDdGNUZEN0ZERkY3RjQzCis6MTAxNkIwMDBFN0ZFN0Y5N0U3RkJGRUZGQkZFRkZGQUJGRkVGRkFGRTEyCis6MTAxNkMwMDBCRkFGRkZGQUZGRkZERkZGRkJGRkY3RkRGRjdGREZGRjhECis6MTAxNkQwMDA2N0ZGRjdGNUZGRkZGRkRGRkRGRkZGRkZGRkZGRkZGRkU2Cis6MTAxNkUwMDBGRkZGRkZGRkZGRUZGRkJERUJGRkZGRjdBREVCRkZERkZFCis6MTAxNkYwMDBGREZGM0ZERkY3RkRGRjdGREZGRjVGRkZGN0ZGRkZGRDMwCis6MTAxNzAwMDBCRkZGQ0JGNEZGN0ZEM0Y3RkQzRjdGRDNGN0ZGRkMzRjU1Cis6MTAxNzEwMDBGRkVBRkFCRUFGQUJFQkJBRjQ5NTZCNTJENEFEMkY0QUU5Cis6MTAxNzIwMDBEMkY2QkZEMjdGRjczRkZGRkZGMzdGRkZGRkY3RkZCQThECis6MTAxNzMwMDBERkZCRkRGRkJGRkZGQkZGRjg3RkVBRkZGRUZFREZGRkUxCis6MTAxNzQwMDBGN0ZGN0ZCQkZGRkZCRkRGRkJGRkZGQkZGRkIxN0ZGRkU3Cis6MTAxNzUwMDBGQkVGRkZGRkZGRkZGRkJGQ0ZGRUZGRkZFRkZGRjdGRjM2Cis6MTAxNzYwMDBGRkZGRjFGRjY5QkVGQUJGQUZFMkZGRkVGREFGRjNGRTgwCis6MTAxNzcwMDBGRkJGRUZGQkZDRkZGRjA3RkQ5NURCREY3RkRGQUZGRjY4Cis6MTAxNzgwMDBGN0FGMzZGRUJGNjVFQkY2RkU5RjZGRkUwN0ZGQ0ZGRjlDCis6MTAxNzkwMDBGOEZFRkZDRkZGRjZGQUU3RkJGRUZGQkJFREY5RkZGRjE4Cis6MTAxN0EwMDBGRjVGRkZGRkZGNzVGRkVGN0VGREUwRTg1RUQzRTVGOTI5Cis6MTAxN0IwMDAzRTVGRDdGN0ZGRkEyRkZCRkZGRkZGRkZGRUZGRkY3RjI0Cis6MTAxN0MwMDA3RkQ3RjU3RDVGNTdENUY1RUZGRkYzN0ZGQzdGRkZDNzMwCis6MTAxN0QwMDBGMUZGRkYxRkNGQjBGRjNGQ0ZGM0ZDRkYzRkNFRkZFNDkxCis6MTAxN0UwMDBGRkRGN0ZGRUY3QkJGRkZGREZFRkVFRkZCRkVGRkJGRThDCis6MTAxN0YwMDBCRkJGRUZGRkQxRkZGRkZGRkRGQkZGRkRGRkZCOUZFOTM5Cis6MTAxODAwMDBGRTdGOUZFN0Y5RkU3RkJGRkZCM0ZGRkZGN0ZGRkZBRjRDCis6MTAxODEwMDBGN0ZGQjYzRkVCRkFGRUJGQUZFQkZBRkVCRkZFQTdGRjQ2Cis6MTAxODIwMDBGRkZGRkZGRkY3RkZGRkZGRkU5RkY3RjlGRjdGOUZFNzM3Cis6MTAxODMwMDBGRkZGRkVBRjZGRkZGRkZGOUZGRkRGRkY3RDVGRERGRjVECis6MTAxODQwMDBGQkJGRTdCQkZGRkJERjZENUY3RUZGRkZGRkZGRkZGRjFGCis6MTAxODUwMDBFQkY3RkZFN0VGRjdGRkZGN0ZGRkY3RkZGQzhGRkZFRkVGCis6MTAxODYwMDBGREZFRkZCRUY0RjI3REQ3Q0ZGRjNGRkZGRkZGRkZGRjdFCis6MTAxODcwMDBGRkNGNkJGRkJGM0ZGQkYyRkM3RkVCRkY5RkZBRkZGRjQ5Cis6MTAxODgwMDAzRkZGRjNGRkZGRkQ3MEY3RkZGRkJGRkZGQkQ3RkVGNTQ0Cis6MTAxODkwMDA3N0ZGMTVERDc3RkRGRjdGREZGN0ZCQ0RCRkZGRkRGRjk2Cis6MTAxOEEwMDBGRkRGMzdDREY5RUNGRUVGQkJGNEZCM0Y0RkIzRkZGRDlECis6MTAxOEIwMDBDQkZGRTk3RTU0OUZFNTRCQjdGRkREN0RDNzcxREQ3NzM4Cis6MTAxOEMwMDA1REQ3NzVDRDdGRDZGRkQzRjZGOTNGNkQ5NUFGN0ZGRTFGCis6MTAxOEQwMDBGRkVGRkJGRUZGQkZFRkZCRkVGNkM3RkZBRDdCQ0FGRkNFCis6MTAxOEUwMDBCRkJGRUZGREUzREZCN0VERkI3RURGMzdFREUzRkJERkVGCis6MTAxOEYwMDBGRjUyNUMxNUZEQ0Y3RkRGRkVFRkVGRkJGRUZGQkZFQzdECis6MTAxOTAwMDA3QkZFRkZGRTNFN0ZEQUY3RkRGRjdGRkZGRkZCRUZCQkI1Cis6MTAxOTEwMDA2RkZCRkVGRkJGRUZGQkZGRjc3REZGRDhGRkZEQkY3RjMzCis6MTAxOTIwMDBGQkZGRkY5RkZCRkU3RjlGRTdGOUZFN0Y5RkVBN0ZGNkFECis6MTAxOTMwMDBCRkJENkE1QUY2RTVCRjc3NUY2RERENzc1REQ3NzVEREIwCis6MTAxOTQwMDA3N0ZGQTVCRkNGRkJGRkZGQkZDRkZCRkRGRkJGRjNGRUMwCis6MTAxOTUwMDBGRkJGRUZGQkZFRkZGREFCRkZCRkJGRkZGQkZGN0ZFRjU2Cis6MTAxOTYwMDBGRkJFRkJFRUZCQkVFRkJCRUVGQkJGRkZCNUZGRDBCQzg3Cis6MTAxOTcwMDBGRDJGNEJGN0ZGRkY5RkY5RkU3RjlGRTdGOUZFN0Y5RjRCCis6MTAxOTgwMDBGQThGRkRBQkZBREFCRkFGQjNGREZGQkZGQkZFRkZCRkJGCis6MTAxOTkwMDBFRkZCRkVGN0JGRkY5RkZGNzdGN0JERkQ3N0RGRkY3RTExCis6MTAxOUEwMDBERkVEQkJGRUZGQkVFRkZCRkVGRkZBM0ZGRkJFNkY4RjFBCis6MTAxOUIwMDBFNkY5RkU3RjlGQzdGRTdGOUZFN0Y5RkU3RjlGRTdGQjZCCis6MTAxOUMwMDA3RkZGN0ZDRkZGRkRGRkZGREZGQkFGQkZFRkZGRkVGRjFFCis6MTAxOUQwMDA5RkVGRkJGRkZDRkZGQkZFRkZGRkZGRkZGRUZGRkZGNzlDCis6MTAxOUUwMDBGRkZGRkZGRkZGRkZGRkZGRkZGNUZGRkZGRjNGREZGN0Y5Cis6MTAxOUYwMDBGRkZGN0ZFRkZFRkZCRkZGRkJGRkZGQkZFRkZGQjM3RkU4Cis6MTAxQTAwMDBGRjdCNUVGN0ZERkY3QjdGRjdGRjdGREZGN0ZERkY3RjRCCis6MTAxQTEwMDBERkY3RkYxN0ZGRkZGRjdGRkZGRkRERjZGQ0JGQ0JGMjE1Cis6MTAxQTIwMDBCQ0JGMkZDQkYyRkNCRkZFOEZGRkZBN0VCRkE3RUJEQTY1Cis6MTAxQTMwMDBGQ0JGQUY3QUZFQkZBRkVBRkFGRUJGQUZGNERGRkVGRjM2Cis6MTAxQTQwMDBGMzNDN0YzRUZGQ0ZGOEJGOEZFM0Y4RkUzRjhGRTdFODIwCis6MTAxQTUwMDBGRkZDOUZGRkZGQ0ZFQkIzRTdGQjdCRjNGRUZGQ0ZEQjhBCis6MTAxQTYwMDBGQkZCQkY2RjZGREZFQzdGRkZGRkY3RkRGREZGRkZGRkFECis6MTAxQTcwMDBGRkIyQkZGRkRFRkRCREVGRkJGNkRGRUFFN0RCRkVCQjNCCis6MTAxQTgwMDBGRkVCRkJCRjlGOEZFOEZFM0Y4RkEzRjhGRTNGOEZGRjZBCis6MTAxQTkwMDBGODdFRkRGRDdGRkZGQkNERkZGREZGNUZFRkZERkZGRjRDCis6MTAxQUEwMDBERkY3RkRGRkJFOTBGRkZGRUVGRjNGQkZGM0JCRkVCN0NBCis6MTAxQUIwMDBBQkZBRkVBRkFERUFGQURFQUJGRjYzRkZGRUYyRkZCM0I3Cis6MTAxQUMwMDBGRkRGRUU3REZGMDNGMUY0M0YxRkMzRjFFQzdGRkU2RkZDCis6MTAxQUQwMDBGRkZCRkJGRjlGRkZCRkZGN0I1RkZERkZERkY3RkRGRDEwCis6MTAxQUUwMDA3RjdGREZGRUNGRkJGRkZGQUZGQkZGMUZFRkE1RkRCRjNCCis6MTAxQUYwMDBERkZCN0RGRkJGREZGQkZGRkQzQkZGRkZGRkZGRkZGREM4Cis6MTAxQjAwMDBBRkYzRkZGQjdGQkZEN0ZCQkY3RkJCRjdGRkY4N0ZGRkM0Cis6MTAxQjEwMDBGQTVGRDdGRkRGN0ZFRkZGRkY3RkRCRjdGREZGN0ZERkEwCis6MTAxQjIwMDBCN0ZCRUNGRkZGRjdCRkVGRkRGQ0ZCRkZFRkYwRkUzRjY1Cis6MTAxQjMwMDA4RkUzRjhGRTNGOEZFRjhERkZGRkVGN0ZCRkZGRkJGRkNGCis6MTAxQjQwMDBEQkJGRkZGRkZGRkZGRkZGRkZGRkZGRUZEOEZGMkU3RjkxCis6MTAxQjUwMDBCRUVGRkU2RUZGQkZGOUZGRkZGM0ZGRkZGRkZGRkZGRkNBCis6MTAxQjYwMDBGQzY2QkU0N0YzN0ZERkZFODc5RkZGRkZGRkZGRTdGRkI3Cis6MTAxQjcwMDBGRkZGRkZGRkZGRDY2RjdDRkI0RkQyRkZGRDJCRkVGRjY5Cis6MTAxQjgwMDBGRkZENUZEN0Q1RjU3REZGRkZGRkJGOUJGRkZGREZCN0YxCis6MTAxQjkwMDBGRkZGREZGRjNGQ0ZGRTdGQkZFRkZCRkNGRjNGRkZEOTIzCis6MTAxQkEwMDBCRkZFOTdFQzhGQjdGRTlCN0RGREI3REQ3NzFEQzc3MTNDCis6MTAxQkIwMDBERDc3NUREN0YzNkZGRDNGNzNEREFGRkQ3QUZGRkZBRkRDCis6MTAxQkMwMDBGRUZEQkZFRkZCRkVGRkJGRUY2NjdGRkZGRkJGQkZGRjY2Cis6MTAxQkQwMDBGQkZGRjdERkZERkI3RERGQjdDREYzN0M1RjNGOTEzRjgwCis6MTAxQkUwMDBGRjNERUY3QkZGRkNGRkNBRUZGRUZGQkRFRkZCMUVFN0YzCis6MTAxQkYwMDBCQkVDN0ZCM0ZGRkQ5RkZGRkZGRUZGRkY3RkJGRkJGRTQwCis6MTAxQzAwMDBGRkJGRUZGQkVFRkJCRkRGNjdGRkZGQkZFRkRCRkZCQ0ZDCis6MTAxQzEwMDBGRTdGRkJGRjlGRUZGOUZFN0Y5RkU3RjlGRTg3RkZFRTU4Cis6MTAxQzIwMDBGQkJFRTVCRkVGRjlENzY1RjdEREU3N0RERjc3NURENzcxCis6MTAxQzMwMDA3RkY4OUJGRUZGQkZFRkZCRkZGRkJGRUZGQkZGN0ZDRkY4Cis6MTAxQzQwMDBGM0ZDRkZCRkVGRkZEQjNGRUZGQkZFRkZERkZGRkVGQjIxCis6MTAxQzUwMDBCQkVGQkZFRkJCRUVGQkJFRUZCQkZGRkM3RkZEM0I1QjEzCis6MTAxQzYwMDBENkU1RkQ0RkMzRkJGRkJGRUZGQkZFRkZCRkVGRkJGRjYyCis6MTAxQzcwMDBCNEZGRkFCQzhGQjJFOUQyMkVDRkZCRkZCRkVGRkJGRTYxCis6MTAxQzgwMDBGRkJGRUZGQkZGRUNGRkZERkQ3RkRGRjdFNERGNUZGRjUyCis6MTAxQzkwMDBGRkZCRkZGRkZGRkZGRkZGRkZGRkMzRkZFRkU2RjhGRUM1Cis6MTAxQ0EwMDAzRjhCODNGOUZFN0ZFN0Y5RkU3RjlGRTdGOUZFN0YxNzAxCis6MTAxQ0IwMDBGREZGRkZGRjdGNUZGNzJDRkZGRkZGRkU3RkZGRTdGOUQwCis6MTAxQ0MwMDBGRTdGOUZGRTJGRkZGRkVGRkZGRUJGRUZBREZGRkY3RjA5Cis6MTAxQ0QwMDBGRkZGRkZGRkZGRkZGRkZGRkVERkZGREZGRkZERkQ3RkQ5Cis6MTAxQ0UwMDBERkY3RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZBM0ZGRUYyCis6MTAxQ0YwMDBGN0ZERUY3QUZGQjFCREZGN0ZGN0ZERkY3RkRGRjdGRDU3Cis6MTAxRDAwMDBGRjdGRjMyN0ZGREZGRkRERkZGQzlCRkZDQkZDQkYyRjM3Cis6MTAxRDEwMDBDQkYyRkNCRjJGQzlGRkRFRkZERkFGRUJEQUZFQkJBRkJDCis6MTAxRDIwMDBFQkY4RjdBRkU4RkFGRUJGQUZFQkYyRkZGREZGRkZFRjE2Cis6MTAxRDMwMDBCREQ3QkZGRkZGREU4RkI4REUzNzhEQTM3OERBM0Y4RkM4Cis6MTAxRDQwMDBGRkExRkZGRkZCRkJGRkZGRkZGRkE3QkRGQjc2RkRCRjcyCis6MTAxRDUwMDBFRkRCRkVCQkJGRkUyNzdGRkZGRUZFRkRGNUZGRUZGNUNECis6MTAxRDYwMDBERjFGRTdGREZGN0ZERkY3RkRGRkZGQ0RGREFFRkZGQUQxCis6MTAxRDcwMDAzRTNGQUJGREY4N0U4RkUzRjhGRTNFOEZFM0Y4RkZGRUJCCis6MTAxRDgwMDAxRkVGREZCRkZFREVERkQ5RkZERkJDRkZGRjdGRkZFRjBFCis6MTAxRDkwMDBGRDdGREZGN0Y5M0ZGRUZGRkY2RkZFREVCRkY3RURFQUU1Cis6MTAxREEwMDBGRDhGODNGOEVBM0Y4RkVGRkZGNDdGRkZFRkVGN0JGM0M4Cis6MTAxREIwMDBGMTVGRkZGRkYxM0I3RkRGRjdGREZGRkZGRkZGRTBGRjdDCis6MTAxREMwMDBGRkZGRjdGRjZGRkY3RkZGRkZGN0RFRjdCRkVGRkJGN0M4Cis6MTAxREQwMDBGREZGRkZGNUZBRkZGRkZCRTdGRkYzRjg3RkYzREZGRkZGCis6MTAxREUwMDBGRkZGRkZGRkZGRkYxRkVGQkJGRkZGRkZGRkZGRkZGRDM5Cis6MTAxREYwMDBGRjdGRkY5RkZGRkZGRkZGRkZGRkZGQ0ZGRjM3RkZGRkNCCis6MTAxRTAwMDA3RkRGNzc1REU3RkNGRkJGRjdGNUZCRkZGRkQ3RjVGQjUzCis6MTAxRTEwMDBGRkZGNDVGRDdGRUFGREJFQkZERkY3RkZGRkRCRkJGRUY3Cis6MTAxRTIwMDBGRkJGRUZGRkZGRkZGQjVGN0ZGRkZFRkZGRkZGRkZGRjM3Cis6MTAxRTMwMDBGRkZFRkZFRkZERkY3RkRGRkZFRkZCRjgwRkYzRkZGOTgyCis6MTAxRTQwMDAyRUZCRkVGQ0YzRUZGRkZGQkZGRkZCRTdGRkZFN0VGRjc1Cis6MTAxRTUwMDBDMDZCQ0ZGRjM0REZGMUZERkZFRkZGRkZGRkRGRjdGRENBCis6MTAxRTYwMDBDRjdGOUNGREZENkNGN0ZGRjZGREVCMkI5RkZGRkNGRThCCis6MTAxRTcwMDA3RUZGRkZGRkZGRDdGM0Y3RkZGQkUxQkZGRkVCN0FERTRCCis6MTAxRTgwMDBEN0ZCRkZGOUZFRkZGRkYzREU3RkZERTc3RkZGRkRCQjIyCis6MTAxRTkwMDBGRkZGN0VDQ0Y2QUY1RjdGRkVGNDdERjdGREJCNkVEQjEwCis6MTAxRUEwMDBCN0ZGRjdERjY2RkZGRkY3M0RDRkRFQkRGRkZGREVEQkVECis6MTAxRUIwMDA4REY3N0VERkI3RUY3RkZGRjY4N0ZGRkZFRkZFREVCRjE4Cis6MTAxRUMwMDBGRkZGRkZCQkVGRkRGRjdCREVGNzNGRkZCRkZCREJGRjRECis6MTAxRUQwMDBGMkI2RkRCRDdGRTdGRkZGRkY2RkY3RkZGRkZGRkU3NzY1Cis6MTAxRUUwMDBGRkJGRjhBRkZGREZCRkZGQkY3RkZCRkZGRkZGREJGRUUyCis6MTAxRUYwMDBGRkJGRkZGQUZGRkRGRkY2N0ZGRjlGRkZGRjNGRUZGOEY5Cis6MTAxRjAwMDBFRTdFOUZCQUZFQkY4RkVGRkVGRUY5RkZGQTdGRkU3RUU4Cis6MTAxRjEwMDBCRkFGRkI5NkZEOUZFRjVFNjVCRUVGNUJCNkZGQkVFMzE2Cis6MTAxRjIwMDBGRkI1QkZGRkZERkY3RkZGRUZERkZFRkZCRkZCRkVGRjQzCis6MTAxRjMwMDBCRkNGRkZGRkZGRkQ5QkZGRkVGQkZFREZGRjdGRkZGNzM1Cis6MTAxRjQwMDBGRUZGREZGQkZCRkVGRkZGRkZGRkZGQjdGRUZBRkZBQjZECis6MTAxRjUwMDBFRkZGRkRCNTdCN0ZGQkY3RkRGRkZGRERGRkVGOEZGRkExCis6MTAxRjYwMDAyRkZGRkI3Q0ZGM0ZERjczRUJGRTNGRkZFRkZCRkVGRjJFCis6MTAxRjcwMDBFRkZERkZCRkZEMEZGRkZGRkZGNUY5RkY3RkQ3RkRGRjZGCis6MTAxRjgwMDBERkZGRjdGQkZGN0ZCRkZGRkZGMDlGRkZGRTdGOEJFM0NECis6MTAxRjkwMDBGOURFMjc5QkU2QkU3RjlCQzNGOERFN0Y5REU3RkU3RkQxCis6MTAxRkEwMDBGRkZGNUZEN0ZGRkZGRjRGRkJGRkZGN0ZGRkFGRkY5RkVECis6MTAxRkIwMDA3RkZCRkZFOEZGRkZGRUJGQUZGRkZGRkVCRkVGRjdGRkI2Cis6MTAxRkMwMDBCRkZGRkZGRkZGRkZGN0ZGRkNGRkZGRkQ3RkZGRkZGRkVFCis6MTAxRkQwMDBGRDNGQ0ZGRkZGRkZGRkY3RkZGRDdGRkZGRjkzRkZGRkY5Cis6MTAxRkUwMDA3QURGRjdGRkZGN0I3RkI3RUZGRkZGRkRCRkZERkJGRjUyCis6MTAxRkYwMDBGN0ZGRDdGRkZGRkZGQzlGNkZDQkZGRjRCQkRGRDZGREUyCis6MTAyMDAwMDBCRjJGRDNGN0ZGREZGRkNGRkZGQUJFQkRBRjZBREFCRTQ3Cis6MTAyMDEwMDBCQkFCM0FCRTJEQUVFQkRBRjYzRkFERjVEREZGQ0ZGMTRGCis6MTAyMDIwMDBGRkY5N0ZGRjczRkVGRkNGQzNGNEY3MkZGM0ZGRkNGRjMxCis6MTAyMDMwMDA3QzFGRkYzRjRGRkY3RUZGRUZCREY2RkVGRjJCRUZEQzY3Cis6MTAyMDQwMDBGQkZERkZGQkZGRUE3QkZGRkZGRkZGRkZGQkY3REZGRjZGCis6MTAyMDUwMDBFMzdERkZCN0ZGQkZGRkZGREZGRkY4RkZCRkZGQkZFQjcxCis6MTAyMDYwMDBFN0ZBRkUzREJGRTlGQ0JGRkZGQUZCRkVGRkZGRkZEOTI5Cis6MTAyMDcwMDBGRkZGRkZGNjdGRkZGNjdERkZERkNGRkRCRkZCRUY3RUFCCis6MTAyMDgwMDBGRjdGRkZGRkQzRkZGREZCRkZGQkZGRkZGRkVGRkZCRjY2Cis6MTAyMDkwMDBGRUZGRjdFRkZGRkZGRkZCRkY4N0ZGRkRGRkZGRkZGRkU3Cis6MTAyMEEwMDA3QkZFRkZGRTNCRjdGN0ZGM0ZGRkZGRkZGRkZGMEZGRjRBCis6MTAyMEIwMDBGRkZGRkZGQkZGRkZGRkY3RkZGRkFERkZGRUY3RkZGRjk3Cis6MTAyMEMwMDA1RkZGRkZERkZGRkRGRkY1RkZERkZGQkRGRkU5RkZDNzlDCis6MTAyMEQwMDBGM0ZGRkZGN0ZGRjNGRkY4M0JGRkZGN0JERkJGRkJFRkYzCis6MTAyMEUwMDBGQkZGRkJGN0Y3QkJGRkZGRkZGRkZCRkZGRTdGRjM3RjZECis6MTAyMEYwMDA1RUI3QkZGRDdGRkZGOTdGRkJGRkVCRkQ3RjdGRkZFRjRCCis6MTAyMTAwMDBGQkUwM0ZGRUJGQkZERkZGN0VGRkY3RkZGRkZFQkZGRjJECis6MTAyMTEwMDBEQjc4RkZGRkZGRUVBMUJGRjVERUZCRjdGRkZCRkZGRjY0Cis6MTAyMTIwMDBGRkZGRkJGRkZGRDdGRkZGRkZGRkVGRjBGRkZGRkZGMzE2Cis6MTAyMTMwMDBGN0ZGRUZGRkU3Q0ZGRkZCRkZFRkZGRkY5RjlGRUZGQ0Y2Cis6MTAyMTQwMDAxNkJGRkVGM0U0RkZGRkM2RkZFN0ZGRkZGREZGQkZGRjgzCis6MTAyMTUwMDBGRjNGRkZCRkQ2QUY3RkZFNkI3RTdGRkZBRkZGRkZCRkFFCis6MTAyMTYwMDBGRjVGRkZGRUZGRkZGRUZGRkZCRERCRkZGRTVGRjJGRjM1Cis6MTAyMTcwMDBGRjVGRkZGRkZGRkZGRkZGRUY3RkZGRkZGRkZGREVCRjAwCis6MTAyMTgwMDBGRkZGRUZGQjc3RkVCRDdGNUZGRkZGRkZERjZGRURGRjIwCis6MTAyMTkwMDBGREZGN0ZGRDZGRkZGRjc3REFDRkZENUZGRkJGRkZGRjIyCis6MTAyMUEwMDBERjdGRkZGQkZGRkZGRkZGNjY3RkZGRkVCRkU3QkZGQTlBCis6MTAyMUIwMDBGRkZFRkZGRkZGREZGRjU5RUZGRkVGRkI3Rjg5RkZGRjEwCis6MTAyMUMwMDBFOUZGNkZGRkY1RkZGRkZGRkZGRjdGRjJGN0ZGRkZFRjc0Cis6MTAyMUQwMDBGODdGRkJGRkZERkZGRkQ5RkZFRkJCRkZGRkZGQkZFRjY2Cis6MTAyMUUwMDBERUZGRkY5RjdGREZGRkY3RkZGRkZGRkZERkZGRkZBRjk4Cis6MTAyMUYwMDBGRkZGRjczRkVCOUZGRTdGOUU3RjlGRkU4N0ZGRUREQjlDCis6MTAyMjAwMDA1NkZGQkZBRjBCRDJGRkVGREI2RTdEQkQ2RkY4RkUzRjE5Cis6MTAyMjEwMDBGQTVCRkZGREJGRUZGRkJGNkZEQkU2RkZGRjNGRkZERkI2Cis6MTAyMjIwMDBGRUZGRkZGRkZGREEzRkZGRkJGRUZFRkZGRkRGRjdCRDE0Cis6MTAyMjMwMDBGRkZERkZGRUZGRkJGRkZGRkZGRkYxNUZGRDlGREZGREU3Cis6MTAyMjQwMDBGRkZEN0ZGRkZGRkZGRjc2RkFGRkZGN0ZFM0Y4RkZBRUEyCis6MTAyMjUwMDBGRkZCN0U5RDczRkZGQTdGREZGRkZGN0ZGRkZCQ0RGRjVDCis6MTAyMjYwMDA3RkVGRkJGRkZERkZGNzdGN0ZFRkZGRURGRkZGRkZCNTg4Cis6MTAyMjcwMDBGRkJGRkZCRkZERUZEQkY3RkY5M0ZGRUZFMkY5QkU3RjhDCis6MTAyMjgwMDA4QkU3RjlGRTZCRTdGOUZFN0Y5RkU3RjlGRTdGNDdGRkRCCis6MTAyMjkwMDBGRkZERkY5RkZGRDdGRkZGRkZGRkY1RkY5RkZGRjdGRTRCCis6MTAyMkEwMDBGRkJGRkU2RkZGRkZGQkZGRkZGRkFGRkZGRkZGN0ZGQkU3Cis6MTAyMkIwMDBGRkZFRkZGRkZGRkZGRkZEREZGRkZGRjdGRkZGRkZERjc5Cis6MTAyMkMwMDBGRkZGRkY1RkZGRkZGRkZGNUZGQkZFRkZGODM3RkZGRjMyCis6MTAyMkQwMDBFRkZGN0ZGRUJGRkZGRkZFQkZGRkZGN0ZGRkJGRkRGRkUyCis6MTAyMkUwMDA3RkZBN0ZGRkZGNkZGRkZGN0RGRkNGRkZGRkZGNEZGRkY1Cis6MTAyMkYwMDBGMkZGRkZGRkZGRkZGQUJGRkZBRUVCRkFGRUJCQURFQjU1Cis6MTAyMzAwMDBGQUY3QUY2QkZBRjZCRjI1RTlGMjdGNDVGRkZGRkRGNzVECis6MTAyMzEwMDBGN0JGRkZERkZGRkZCRkZCRkZERkYzRkZGNzNGQ0ZGRjlECis6MTAyMzIwMDBBMUZGRkZCRkU3RkZGRjdGRkYzREZGRkZGRkY3RkYyRjhECis6MTAyMzMwMDBGRkZCRjU3RkZFNTdGRkZGRkZGRkZGRkZGRkZGRkZGN0VDCis6MTAyMzQwMDAzRkZGRkVGRkZGRkZGREZFRjdFRUFGRkVFRUU3RkFGRkY5Cis6MTAyMzUwMDBGRTlERjk1RUZFRkZFQkZGRkZERkE3RkZGRkZGRkNEQjRCCis6MTAyMzYwMDBGRkZGRkY3RUZCRkZGRkVGRkJGREZGREJGRkZGRkZFRjRDCis6MTAyMzcwMDBGRkZGRkZGREJGRkVCRkZGNkY3RkZGRjdGRkZGRjlGRjBFCis6MTAyMzgwMDBGN0ZGQkZERUY3RkZGRkZGRkE3RkZEQkY1RkZGRkZCRjc1Cis6MTAyMzkwMDBGRkVERkZGN0JGRkZGRkVGRkZERkZGRkZGRkU2RkZGQkY0Cis6MTAyM0EwMDA3RkZGRkZGRkZGRkZGN0ZGRkZGRkZGRkZGRkZGRUJGRkQ5Cis6MTAyM0IwMDBGREZGRjVGRkY2N0ZERkJEQ0ZGRkZGRkZGRkRGRkZGRjc0Cis6MTAyM0MwMDBGRkY5RkZGRkZGRkZGRkUzRkZFRUJGRkY3REVGRkVGRjIzCis6MTAyM0QwMDBGRkZGQkZGRkZGRkZGRkZFRkZGRkZGRkZFN0ZGQjVBRTAxCis6MTAyM0UwMDBGRkZGQjZGRUJGRkZGRkJGRkZGRkZGRkZGRkZGRkZGRkM3Cis6MTAyM0YwMDBGRjI3RkZFRkZFN0ZERkZGN0VGRkZGRkZGRkZGRkZGRkY3Cis6MTAyNDAwMDBGRkZGRkRGRkY3Rjk5RkZGNUZGRkZGRkZGRkZGRkY3RjZDCis6MTAyNDEwMDBGRkZGRkVGRkZGRkZGRkZGRkZGRkZGMEZGRkU3QkZGRTE2Cis6MTAyNDIwMDBGRkJGRkZGRkZGRkZGQ0JGRkZGRkZFRkZGRkZGRkZDNDdCCis6MTAyNDMwMDA2QkZGMjkxRkZCQUZGRkZGRkZGRkZGRUYxQkZFRkZGQzQyCis6MTAyNDQwMDA2RkZGRkZGRDZBRjdEN0Y1QkZGRkZFRkZGRkZGRkZGRjNFCis6MTAyNDUwMDBGRUJGRkZGRkZBRkZGRkY3RkJEREJGRkZFN0ZGRkZGRjU4Cis6MTAyNDYwMDBGRkZGRkZGRkZGRkQ3RkZGRkZGNUZGRkZGN0ZEQjNFRjZFCis6MTAyNDcwMDBGRDdFNURGRkZERkZGRkZGRkQ3RkQyRjVGQjdFQ0JCNzRECis6MTAyNDgwMDBGRkZGRkZDNkZGRkRFRTYzRkZGRkZGRkZGRkY2RkQ2NUU5Cis6MTAyNDkwMDA1QkRGRkZENUZGRkZGRkY2RTdCRkY3QTlGRkZGRURGRjBCCis6MTAyNEEwMDBGRkZGRkZGRkVCRkZGRkZGQUZGRkZGRkZGODFCRkZFM0E3Cis6MTAyNEIwMDBEMEJGRkZFMUZGRkZGRkZGRkZEN0ZGRkZGRjVGRkZGRjgxCis6MTAyNEMwMDBGRkZGQUZGRkRCNzZCRkZGN0ZGRkJGRUZGRUZGQkZFRjdBCis6MTAyNEQwMDBGQkZFRkZGRkZGQkZGMjdGRkY5RkZFQkRGRTdGRkZGRjAyCis6MTAyNEUwMDBGRkZGRkZGRkZGRkZGRkZGRkZGNzNGRUM3RkY2OTVCQjBFCis6MTAyNEYwMDBFRkY4RkVGQ0JGMkZEQUZDQkYyRkNCRjJGQ0JGRUZGRkUzCis6MTAyNTAwMDBBOUJGQ0ZGQkZGRkZGRkZFRERCNzZERjZEOUI2NkQ5QjEwCis6MTAyNTEwMDA3NkQ5QkZGQkZEQTNGRkJGRUZGRkVGRkZGRkZGN0ZERjFDCis6MTAyNTIwMDBGREVGN0JERUY3RkRFRjdGRkZGRjA1RkZGQUZFN0ZFRjlDCis6MTAyNTMwMDBFM0ZGRkZGRDdGRkZGRkZGRkY1RkZGRkZGRDdGRkJBRkJGCis6MTAyNTQwMDBGRjYzQzhGRkJGRUZGRkZGRkE3RkZGRkZGRkZFOUZGN0FDCis6MTAyNTUwMDBGRkZBQkZGRTlGRkI3RkZGRkZFRkQ3RkZGRkY1RkZGRkY3Cis6MTAyNTYwMDBGRkZGRkQ3RkZGRkZCRkZGRjlCRkZGQkUyNzlGRTdGOTFBCis6MTAyNTcwMDBGRTdGOEJFN0ZFN0Y5RkUyRjlGRTdGOUZFN0YxN0ZGRjAzCis6MTAyNTgwMDBGRkZGRkJGRUZGRkZGRkQ3RkZGRkZGRkZGNUZGRkZGRjkyCis6MTAyNTkwMDBEN0ZGRkFGRkZFRkZGRkZGRkRGRkZGRkZBRkY3RkZGRkQzCis6MTAyNUEwMDBGRkVCRkZGRkZGQUZGRkM0RkZGN0ZGRkZFRkZGRkZGRkYyCis6MTAyNUIwMDBGRjVGRkZGRkZGRkZEN0ZGRkZGRkZGRkZFQkZGRkI3QTkwCis6MTAyNUMwMDBERkY3RkRGRkZGRkVCRkZGRkY3RkZGQUZGRkZGRkZGNzVFCis6MTAyNUQwMDBFRkUzRkZEREQyRkZERkZGRkZGMkZDQkZDQkY2RkRCRjc1Cis6MTAyNUUwMDAyRkNCRkY3RkRGREVBRkZGREFFRUJGQUZFOUZBRjRCRDNFCis6MTAyNUYwMDBBRjVBQUVCQkFCNkJEQURFQkZBREQ3NUVGRkZGQkZGQzQxCis6MTAyNjAwMDBGRkRGRkRGRkZGRkZGRkRGRjdGRkZGRkZGRkZERkZGQTJCCis6MTAyNjEwMDAxRkZGRkVGQkVGQkZGREZGRkRCRDc3RkZGRkZGRkY5RDJGCis6MTAyNjIwMDBFRkZGRkZGRkVGN0RGRkZCRkVFRkZGRkZGRkZGRkZGNzc5Cis6MTAyNjMwMDBGRkZGRkZGRkZGRkZGRkVFQkZFNEZCRkZGRTNGRkVGRkRDCis6MTAyNjQwMDBGRkZGRkZBRkVBRkVCRkFGRUJGQUZFRkZGRkZGNTVGNjVECis6MTAyNjUwMDBGRkZFRjdGRjdGRkZFQkY3NUZDNUZEN0Y1RkQ3RjVGRjVECis6MTAyNjYwMDA2RkZCRkY4QUZGRkZGRkZGRUJGRkZGRkZGRkZCQkZCRjFCCis6MTAyNjcwMDBFRkZCRkZGRkZGRkZGQkZGNzdERkZCRkZGRDdGRUZGRkMwCis6MTAyNjgwMDBGRkZGQkY3RkZGREZCRkZGRkJGRkZGRkZGRUVGREZGRkFGCis6MTAyNjkwMDBGRUZGOUZFRjdERkZGN0ZGN0ZGRkZGREZGN0ZERkZFRkZGCis6MTAyNkEwMDBERkZGREZGRkZGRkZGRkZGRkZGRkZGRkZGREZGRkZGQjgwCis6MTAyNkIwMDBGREZGQkZERkQxRkZGODNCRkZGRkZGRkZGRkZGRkZGRjg1Cis6MTAyNkMwMDA3RURCRkRGRjc3REJCNzdEQkZGQkZGRjg3RkVEN0I1RTM5Cis6MTAyNkQwMDBGRkZFRkZGRjRGRDdGRDdGREZEN0Y1RkY3RkZGRkZGRjM3Cis6MTAyNkUwMDBGMjNGRkVGRkJGRkZGRkZGRkZCRkVGRkVGRjNCRUVGRjJFCis6MTAyNkYwMDBGQ0VGRkZGRkZGODVGRkZERkVGRkY1RkZGRkZFRkZERkE1Cis6MTAyNzAwMDBGQkZGNUZCRkZGRkRGRkZGRkZGRkE4RkZGRjlGOUVGRkQ3Cis6MTAyNzEwMDBGRkZGN0ZGM0ZGRkZDRkZGRjdGREZGN0ZGRkZGRkMxNkZCCis6MTAyNzIwMDBCRkNGQTNFNUVGN0ZGRkYzRTRGRkNGOTNGQ0ZGM0ZDRkU1Cis6MTAyNzMwMDBGRkZGRkZENjBGN0RCRjZFRkJGNEZDQUY2RERCNzdCN0ZECis6MTAyNzQwMDA2RERCRjZGREJGRkZGRkZGQkY5QkZBREVCN0I3RURGOTBDCis6MTAyNzUwMDA3RUI3QUNFQkQ2QjNBREVCN0FERkZGRkZGRkQ4QkZGRkEwCis6MTAyNzYwMDBCN0VEOUY2RkRERjc2OERCMzdCMzZDREIzNkNEQjM3RjNBCis6MTAyNzcwMDBGRjdGRjU2RkZERUY3OTNERjc5M0U0N0E5RUFERUE3QTNFCis6MTAyNzgwMDA5RUY3QkRFRkZGRkZGRjc2N0ZGQkM2RkZCQkVGREFGRUQ0Cis6MTAyNzkwMDBGREJGRkJGRUZGQkZFRkZCRkZGRkZCRkZBNUZGRkRBQjk4Cis6MTAyN0EwMDA2Rjc4REUxNzhGNzlERkZERkY3RkRGRjdGREZGRkZGQjFGCis6MTAyN0IwMDBGRkZCRkZFRkZCRUZGQkZFRkZCQkRBRjNFRjNCQ0VGM0RDCis6MTAyN0MwMDBCQ0VGM0ZDRkRGRkZCN0ZGRkZGRkNGNzNGRkJGRUZGRkQwCis6MTAyN0QwMDBGM0ZGM0ZDRkYzRkNGRjNEQ0Y5RkZFMDdGRkFGRUJGRUM0Cis6MTAyN0UwMDBGREJGRUZFQkZBRkZBRkVCRkFGRUJGQUZGQkZFM0ZGQjI3Cis6MTAyN0YwMDA5QkZGN0ZERkZGRjNGRUZGREVGN0JGN0JERUY3QkRFRjYyCis6MTAyODAwMDA3QkZFRkZGRkRGM0ZGRUZGQjdGRkVGRjdGRkJGRURGRUYxCis6MTAyODEwMDBERkI3RURGQjdFREZGRkZGRkZGRDVGRUZFQkZBRkVGNUJECis6MTAyODIwMDBCRjZGRkZGRkZGRkZGRkZGRkZGRkZGRkVGOEZGQThGRkU3Cis6MTAyODMwMDBGRkJGRUZGQjZBRkJCN0VGRkJGRkJGRUZGQkZFRkZCRjg2Cis6MTAyODQwMDBFRkZCRkZFMEZGRkZGRDdGNUNENzdEREZGMzVDRjVDREE1Cis6MTAyODUwMDA3MzVFRDdCNUZEN0ZFRkZGREJGRkZGRTJGOEJFMkY4RjgyCis6MTAyODYwMDBFN0Y4QkU2QkUyRjhCRTJGOEJFMkY5RkU3RkU3RkZEN0Y5Cis6MTAyODcwMDBGNUZEN0ZGRkY3RjVGRDdGRDdGNUZEN0Y1RkQ3RjVGRjBFCis6MTAyODgwMDBGRkZGOEZGRkFGRUJGQUZGRkZCRkVCRkFGRjJGRUJGQTczCis6MTAyODkwMDBGRUJGQUZFQkZGRkZGRTVGRkY1RkZGRkZGREZGRkZENzU4Cis6MTAyOEEwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCRkZFQjdGREMzCis6MTAyOEIwMDBGRjdFREZGN0FERkY3RkY3RkRGRjdGREZGN0ZERkY3RkQ3Cis6MTAyOEMwMDBGNjdGRkZGRkZGREJGNkZDQUZGRkZGRkZGRkY3RkZGRjI5Cis6MTAyOEQwMDBGRkZGRkZGRkZGRUNCRkZGQUZFQkZBRjZBQjhGRUJGQUFBCis6MTAyOEUwMDBGN0E1RUJGQUJFQkZBRkVCRkFGRjZERkZGRjdGREYzMzVCCis6MTAyOEYwMDBEREZGN0ZGRUY3RkM3RkZCRkZGRkZGRkZGRkZGRkZBOTcwCis6MTAyOTAwMDBGRkZERkZGRkZFRkZGRkRGRkZGRkVGRUZGREZGN0ZGRjlDCis6MTAyOTEwMDBGRkZGRkZGRUE3RkZGRkZGNzdERkY3RkQ5RjdGRkU3NzNCCis6MTAyOTIwMDBFRkZGRkZGRkZGRkZGRkZGRkZBRkJGQUZGRkY5QkVCRjJFCis6MTAyOTMwMDA4RkZCRkVGRUVGRkJGRUZGQkZFRkZCRkZGRkZEREY2RjM4Cis6MTAyOTQwMDBFRkZGN0ZGRkJGQkZERkZGRkNGRkRGRjdGREVGN0ZERkE0Cis6MTAyOTUwMDBGRkZGRkYzRkY2RkZDRkZGREJGQkY3RkZFQjdBRkZGRjQ5Cis6MTAyOTYwMDBGRkJGRUZGQkZGRkZGRkZFNkRGREZGNUZGQkZGRkZGNzBDCis6MTAyOTcwMDBGRjVGRjVGRkZGRkZGRkZGRkZGRkZGRkZGOEZGRkJGRjFDCis6MTAyOTgwMDBGRkZERkZGRkZGRkZFN0Y2QkZGRkZGRkZGRkZCRkZGRkJFCis6MTAyOTkwMDBGRkM5RkZGRkZGQkRGRkJGQUZFRkVGM0ZEMUZDN0ZGQkU0Cis6MTAyOUEwMDBDN0ZGRkZGRkZGRkZFM0ZGRkZGRkZGRkRGRkZGNzdGRjE1Cis6MTAyOUIwMDBERkI3RkRGN0ZERjdGRkZGRkZGRkZGNTdGRkY3QTVGREFGCis6MTAyOUMwMDAzRkRGQkZCRkZFN0ZGRkZGRkZERkZBRkRGRkZGRkZGRTIwCis6MTAyOUQwMDA4N0ZGRTlGRkZFRUZCRkVGRkVGRUZGRUZGRkZGRkZGRjA4Cis6MTAyOUUwMDBGRkZGRkZGRkZBOUZGRjNGRkZGREZENTdERkZERjNGRkY2Cis6MTAyOUYwMDBERkZERkY1RkRGRjVGREZGRkZGOThGRkZGRkZGRUU3RkRDCis6MTAyQTAwMDBGRkZGQkY1RUZFRUNGQjNGN0Y5RkVGRjlGRkZGQ0Q2QjRCCis6MTAyQTEwMDBGRkZGRkZDNUYzRkNGQTM4RkZBRjNGRUU3RjlGRkZEOTAyCis6MTAyQTIwMDBGRkZGRkQ3QUY3RkZGM0ZGQUY2RkRCRjJCOUU5RkJGRkMyCis6MTAyQTMwMDBGRkZGRkVGRkZGRUZGRkZCQzVCRkZGRUZGRjVFQjdBRDgwCis6MTAyQTQwMDBDRDc5N0NGRkZGRkZGRkZGRkZGRkZGRkZGRDkzRkZFRjRGCis6MTAyQTUwMDBFQUZFQkZFRjVCRDJDREY1NkQ3N0RGRjdGREZGN0ZERkRECis6MTAyQTYwMDBGRkZGNjZGRkQ1NjU3RDVGNzU5RDY1N0ZENkZCNEZGRkQ4Cis6MTAyQTcwMDBGRkZGRkZGRkZGRkZGNkM3RkZCRkVGRkFGRUZGQkZFQjUxCis6MTAyQTgwMDBGRkRGRkY3RUZGRkZFRkZEN0VEN0ZGNzhERkZGNUZERjE5Cis6MTAyQTkwMDBGNUJGN0ZERkM1RkYzRkY2N0VGRjBGRUZGMjNFQkZGRkMyCis6MTAyQUEwMDBGQjNGRkZGQjdGRkZCM0ZFRkJGNkZERkZEQUY3RkRGRjA5Cis6MTAyQUIwMDA3RkRGRjdCRkZGRkE3RkZGRkZGRkZGOUZGRkYzRENGOTI4Cis6MTAyQUMwMDBCRkNFRTdGOUZFN0Y5RkU3RkZGRkUyN0ZGRUZGQkZFRjhDCis6MTAyQUQwMDBFQkZBRkY5RjY3MUVGRjhGRTdGOEZFN0Y4RkVGRkZCRENBCis6MTAyQUUwMDBCRkZGRkJGRkZGREZGN0ZGRkNGRkJGRkZGRkZGRkZGRkE1Cis6MTAyQUYwMDBGRkZGRkZGREIzRkZGRkVGRkZGRkJGRURGRkZCRUVGRUFDCis6MTAyQjAwMDBGRkZGRUZGRkZFRkZGRkZGRkZCNUZGQjdGREZENkVGRjBECis6MTAyQjEwMDBGRkZFRkQyRkQ4RkVCRjhGRUJGOUZFM0ZGRkZBQ0ZGRjgwCis6MTAyQjIwMDBFN0Q5RkFCRkRGNzdGQ0ZCM0ZBQkZFRkZCRkVGRkJGRTUxCis6MTAyQjMwMDBGRkZGRUUxRkZGREZGN0ZGRkZGRjVGOTczNUJGNUVGRTcyCis6MTAyQjQwMDBCRkVGRkZGN0ZERkZGRkZBQkZGRkJFNkY5RkU3RjhCRUM1Cis6MTAyQjUwMDAyRjhCNjY5NDdEOURFN0Y5RkU3RjlGRTdGMTdGRkZGRjU2Cis6MTAyQjYwMDBGRkY3RjVGRDdGNUZGQkZEOUVGRkZCRkVGRkZGRUZGRjI1Cis6MTAyQjcwMDBGRkEwRkZGRkZGQkZFRkVCRkFGRUJGQjdGN0Y3RkZGRkM2Cis6MTAyQjgwMDBGREZGRkZGRkZGRkZEREZGRkRGRkZGRkZEN0ZGRkZGRkEzCis6MTAyQjkwMDA3RkY1RkZGRkVGRkZGRkZGQkZGRkZGQUJGRUZCRkVGRjc5Cis6MTAyQkEwMDBGN0FGRkZGRkRFRjdFQjVGREZGN0ZERkY3RkRGRkZGRjM0Cis6MTAyQkIwMDBCM0ZGQzlGRUZGRkZGRkZGRDZGRkZGQ0JGRkZGREZGRjI1Cis6MTAyQkMwMDBGRkZGRkZGRkZDOEZGRkJBQkVCRkFGRUI3OEZFQjdBREQ0Cis6MTAyQkQwMDAzQUZFQjdBRkVCN0FGRUJGQUZGRjlGRkZGRkRGRkNGRjEwCis6MTAyQkUwMDBGRkZFQzNGRUZGRkYzM0ZDRkZCRkRGRjNGRkZGQkI5RjEyCis6MTAyQkYwMDBGRkZGRkZFQkRGRkZGRkFGRjc2RkY5QkZFRkZERkZGRjU5Cis6MTAyQzAwMDBGRkZGRkZFMzdGRkZGRkZGRkJGRkZGQkZGREZCRjdGRkMyCis6MTAyQzEwMDBERkY3RkZGRUVGNUZCREZGRkFGRkY4RkZCRkFGRkJGRTgwCis6MTAyQzIwMDBGRTNGRUZFOEZGREZGM0ZERkZGRkZGRkZGRkVERkZGQkUwCis6MTAyQzMwMDBGREZGQUZGRkZGRkVGRUJGREJGRkZGRkZCRkZGREZGRkJDCis6MTAyQzQwMDBGREZGQ0JGRkZGRkZGRkZGQkY2RkZGN0ZCN0IzRkZGRkFFCis6MTAyQzUwMDBERkZGRkJFRkZGRkZGRjA3RkZGQkZGRkZGRkVERkZGNUQwCis6MTAyQzYwMDA3Q0ZGN0ZGRUZGRkZFRkNGRkZGQkZGRkYyRkZGRkZGRjhDCis6MTAyQzcwMDBGRkYzRkZGQkZGRkVGRkZGRkZGRkZGRkZCRkZGRkZGRkI1Cis6MTAyQzgwMDBGRDFCRkZGRkZGRkZGRkZGRkZGRkZFN0NGRkZGRkZGRkJFCis6MTAyQzkwMDBFRkZGRkZGRkZGRkJCRjdGRkRGRkZGRkZGRkZGRkZGRjFBCis6MTAyQ0EwMDBEQkZGRkZGRkZGRkZGRkZERkZGRkYwN0ZGRkZGRkZGRkU5Cis6MTAyQ0IwMDBGRkZGRkZGRkZGRkJGRkRGRkZGRkZGRkZGRkZEQkZGRThCCis6MTAyQ0MwMDA3RkZGRkZGRkZGRkZGRkZGRkZFRkZFRkZCRkZGRkZGRkU1Cis6MTAyQ0QwMDBGRkZGRUZGQUI1RkZGRkZGRjdGN0ZGRkZGRkZGREZGQjk3Cis6MTAyQ0UwMDBGQ0ZGRkZGRUZGN0ZERkJGRkZDQkJGRjlGRTdGOUZFNzRCCis6MTAyQ0YwMDBGOUZFN0Y5N0UxRkU3OTlGRTdGREZFN0ZERkZFMzdGRjVDCis6MTAyRDAwMDBGQkRFREVCREVGRjNGRUZCQUZFQkZFRkZGRkNGRkZGRTEyCis6MTAyRDEwMDBGRkJGRkY4RkZGRUZGQkZFRkZCRkU3Rjk1RTdGRUZGQjFCCis6MTAyRDIwMDBEQUZGQkZFRkZCRkVGRkZEMUZGRkZGRkZGRkZGRkZERjJGCis6MTAyRDMwMDBGRkZGN0ZGRkZGRjdGQjdGRkZGRkZGRkZGQzNGRkZCRkIyCis6MTAyRDQwMDBFRkZCRkVGRkJGRUY3QjdGQkZFRkZCRkVGRkI1RUZGQkFGCis6MTAyRDUwMDBCRkZBN0ZGQ0ZGM0ZDRkYzRkNGRjNGQ0ZCQ0ZGM0ZFRjRECis6MTAyRDYwMDBGM0ZDRkUzRkNGRkZFRUVGRkJGRUZGQkZFRkZCNkFEN0FBCis6MTAyRDcwMDBCN0ZCRjhGRkI3RUZCQUZFRkZCRjdGRTlGRkY5N0U1RjUxCis6MTAyRDgwMDA5N0U1RjlGRTdGQkZGOTdFNUY5RkU1RkJGRTVGQjdGRjJBCis6MTAyRDkwMDBBM0ZGRjdGREZGN0ZERkY3RkRGRjVFRjc3REZGNzdERjI2Cis6MTAyREEwMDBGN0ZERkY3RkZGRDdGRkZGRkZGRkZGRkZGRERGRkI3RjhCCis6MTAyREIwMDBGRkZGRUZGRkZFRkJGRkZGQkZGRThGRkZERkY3RkRGRDE1Cis6MTAyREMwMDA3RkRGRjdGRDNFREZGNUJERkY3RkRGRjdGREY3RkY5RkZDCis6MTAyREQwMDBGRkZGRkZGRkZGRkZGRkZGRkZGREZGQkVGRkZGRkZGRjQ2Cis6MTAyREUwMDBGRkZGRkZGRDNGRkZERkY3RkRGRjdGREZGN0ZERkZDRkI5Cis6MTAyREYwMDA3N0ZDRkY1RkRGRjdGREZGRjQ3RkZGRkZGRkZGRkZGRkMzCis6MTAyRTAwMDBGRkZGRkZGRkZGRkZGRkZGRkZGREZGRkZGRkVFRkZGRkU1Cis6MTAyRTEwMDBGRkZGRkZGRkZGRkZGRkZGRURGQkZGRkZCRkZGRkZGRjE4Cis6MTAyRTIwMDBGRkZGRTlGRkZGRkZGRkZGRkZGQkZGRkZGRkQzRkZGRkY4Cis6MTAyRTMwMDBCRjNGRkJGRkZGRkZGQkYzRkZGRkZGRkZGRkZGRkZGRkI2Cis6MTAyRTQwMDBGRkZGRkZGRkZGRkVGRkY3RkZGRkZGRkYxN0ZGRkZGRjgzCis6MTAyRTUwMDBERkZGRkRGRkZGRkZGRkZGREZERkZGRkRGRkZGREZGNzBFCis6MTAyRTYwMDBGRjRGRkZGRkZGRkZGRkZGRkZGRkZGRkVGRkZGRkZGRDI1Cis6MTAyRTcwMDBGRkZGRkZGRkZFRkY5RkZGRkZGRkZGRkZGRkZGRkZGRkMzCis6MTAyRTgwMDBGREZGRkZGRkZGRkY3RkZGRkZGRjdBM0ZGRkZGRkZGRjE5Cis6MTAyRTkwMDBGRkZGRkY3RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMkNGCis6MTAyRUEwMDA3RkZGRkJGRUZGQkZFRkY4RkVGRkJGRkJGRUZGOEZFQ0Q3Cis6MTAyRUIwMDBGQkZFRkZCRkY4RjdGRUZGQkZFRkZCRkVGREJGQ0ZFQzUxCis6MTAyRUMwMDBGRjNGRUZEQkY4RkZCRkNGRkZGOUZGRkZCRkZGRkJGRkM3Cis6MTAyRUQwMDBGRkZGRUZGQkRGRkZGRkZGRkZGRkJGRkZGRkZGQkJGRkJBCis6MTAyRUUwMDBFRkZCRkVFRkJGRUVFQkZCRkVGRkVGRkVFRUJGRkVFQkY4Cis6MTAyRUYwMDBGRkVGRkYxN0ZGN0VFQkJCRkVCRkJFRkJFRjVCRjdCRDM3Cis6MEEyRjAwMDBGQkNGQkZCRkJCRkI3RUNDRUZGRjkxCis6MDAwMDAwMDFGRgorCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgQmF5Q29tIEdtYkgKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UKKyAqIGNvZGUgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIGNvbW1lbnQgd2l0aG91dAorICogbW9kaWZpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZGFidXNiL2Zpcm13YXJlLkhFWCBiL2Zpcm13YXJlL2RhYnVzYi9maXJtd2FyZS5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MyNThkZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2RhYnVzYi9maXJtd2FyZS5IRVgKQEAgLTAsMCArMSw2NDkgQEAKKzowMjAwMDAwMDIxNTc4NgorOjAzMDAwMzAwMDIwMTY2OTEKKzowMzAwMEIwMDAyMDE2Njg5Cis6MDMwMDEzMDAwMjAxNjY4MQorOjAzMDAxQjAwMDIwMTY2NzkKKzowMzAwMjMwMDAyMDE2NjcxCis6MDMwMDJCMDAwMjAxNjY2OQorOjAzMDAzMzAwMDIwMzBGQjYKKzowMzAwM0IwMDAyMDE2NjU5Cis6MDMwMDQzMDAwMjAxMDBCNworOjAzMDA0QjAwMDIwMTY2NDkKKzowMzAwNTMwMDAyMDE2NjQxCis6MDMwMDVCMDAwMjA0QkRERgorOjAzMDA2MzAwMDIwMTY3MzAKKzowMzAxMDAwMDAyMEM1QTk0Cis6MDMwMTA0MDAwMjAxRUQwOAorOjAzMDEwODAwMDIwMjUxOUYKKzowMzAxMEMwMDAyMDI3QzcwCis6MDMwMTEwMDAwMjAyRTQwNAorOjAxMDExNDAwMzJCOAorOjAxMDExODAwMzJCNAorOjAzMDExQzAwMDIwNUZEREMKKzowMzAxMjAwMDAyMDAwMERBCis6MDMwMTI0MDAwMjAwMDBENgorOjAzMDEyODAwMDIwNDNDOTIKKzowMzAxMkMwMDAyMDQ2QTYwCis6MDMwMTMwMDAwMjAwMDBDQQorOjAzMDEzNDAwMDIwMDAwQzYKKzowMzAxMzgwMDAyMDAwMEMyCis6MDMwMTNDMDAwMjAwMDBCRQorOjAzMDE0MDAwMDIwMDAwQkEKKzowMzAxNDQwMDAyMDAwMEI2Cis6MDMwMTQ4MDAwMjAwMDBCMgorOjAzMDE0QzAwMDIwMDAwQUUKKzowMzAxNTAwMDAyMDAwMEFBCis6MDMwMTU0MDAwMjAwMDBBNgorOjBBMDE1NzAwNzU4MTdGRTU4MjYwMDMwMjAxNjFGQgorOjA1MDE2MTAwMTIwNzZGMjE2NDhDCis6MDEwMTY2MDAzMjY2Cis6MEUwMTY3MDBDMEQwQzA4NkMwODJDMDgzQzBFMDkwN0Y5N0UwMDkKKzowRTAxNzUwMDQ0ODBGMDkwN0Y2OUYwRjBGMEYwRjBGMEYwRjBEMAorOjBFMDE4MzAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMDRFCis6MEUwMTkxMDBGMEYwRjBGMEYwRjBGMEYwRjBGMDkwN0Y5N0UwN0EKKzowMzAxOUYwMDU1N0ZGMDk5Cis6MEUwMUEyMDA5MDdGOUFFMDMwRTQyMzkwN0Y2OEYwRjBGMEYwNTgKKzowRTAxQjAwMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjAyMQorOjBFMDFCRTAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMDEzCis6MEUwMUNDMDBFNUQ4QzJFM0Y1RDhEMEUwRDA4M0QwODJEMDg2NEIKKzowMzAxREEwMEQwRDAzMjUwCis6MDgwMUREMDA3NTg2MDA5MEZGQzM3QzA1NEMKKzowNzAxRTUwMEEzRTU4MjQ1ODM3MEY5RDgKKzowMTAxRUMwMDIyRjAKKzowRTAxRUQwMEMwRTBDMEYwQzA4MkMwODNDMDAyQzAwM0MwRDAxQQorOjBFMDFGQjAwNzVEMDAwQzA4Njc1ODYwMEU1OTFDMkU0RjU5MUNFCis6MEQwMjA5MDA5MDg4MDBFMEY1NDE5MDdGQUI3NDAyRjA5MDBBCis6MDkwMjE2MDA3RkFCNzQwMkYwRTUzMjYwMjFCNworOjA0MDIxRjAwN0EwMDdCMDBFNgorOjBCMDIyMzAwQzNFQTk0MThFQjY0ODA5NDgwNTAxMjMyCis6MEUwMjJFMDA5MDdGNjlGMEYwRjBGMEYwRjBGMEYwMEFCQTAwMDYKKzowMjAyM0MwMDAxMEJCNAorOjAyMDIzRTAwODBFMzVCCis6MDIwMjQwMDBEMDg2NjYKKzowRTAyNDIwMEQwRDBEMDAzRDAwMkQwODNEMDgyRDBGMEQwRTA1NAorOjAxMDI1MDAwMzI3QgorOjBFMDI1MTAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMDM1Cis6MEUwMjVGMDA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwN0ZBQjc0NDAKKzowNDAyNkQwMDA0RjBEMDg2NDMKKzowQjAyNzEwMEQwRDBEMDgzRDA4MkQwRjBEMEUwMzI5QgorOjBFMDI3QzAwQzBFMEMwRjBDMDgyQzA4M0MwMDJDMDAzQzAwNDU2Cis6MEUwMjhBMDBDMDA1QzAwNkMwMDdDMDAwQzAwMUMwRDA3NUQwQkUKKzowRDAyOTgwMDAwQzA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwRTYKKzowQzAyQTUwMDdGQUI3NDA4RjA3NTZFMDA3NTZGMDIxMkRDCis6MDYwMkIxMDAxMTQ0NzU3MDM5NzU1RgorOjA2MDJCNzAwNzEwQzc1NzIwMjEyQzkKKzowQzAyQkQwMDExNzU5MDdGRDZFNEYwNzVEODIwRDA4NjMzCis6MEUwMkM5MDBEMEQwRDAwMUQwMDBEMDA3RDAwNkQwMDVEMDA0OTAKKzowRDAyRDcwMEQwMDNEMDAyRDA4M0QwODJEMEYwRDBFMDMyMkUKKzowRTAyRTQwMEMwRTBDMEYwQzA4MkMwODNDMEQwNzVEMDAwQzBBMgorOjBFMDJGMjAwODY3NTg2MDBFNTkxQzJFNEY1OTE5MDdGQUI3NEFECis6MDQwMzAwMDAxMEYwRDA4NkEzCis6MEIwMzA0MDBEMEQwRDA4M0QwODJEMEYwRDBFMDMyMDcKKzowRTAzMEYwMEMwRTBDMEYwQzA4MkMwODNDMDAyQzAwM0MwMDRDMgorOjBFMDMxRDAwQzAwNUMwMDZDMDA3QzAwMEMwMDFDMEQwNzVEMDJBCis6MEMwMzJCMDAwMEMwODY3NTg2MDA3NTZFMDA3NTZGMDJCQworOjA3MDMzNzAwMTIxMTQ0NzU3MDQwNzVCRQorOjA2MDMzRTAwNzEwQzc1NzIwMjEyNDEKKzowRTAzNDQwMDExNzU5MDdGRDY3NDAyRjA5MDdGRDY3NDA2RjA4QgorOjA1MDM1MjAwNzVEODEwRDA4NkYzCis6MEUwMzU3MDBEMEQwRDAwMUQwMDBEMDA3RDAwNkQwMDVEMDA0MDEKKzowRDAzNjUwMEQwMDNEMDAyRDA4M0QwODJEMEYwRDBFMDMyOUYKKzowRDAzNzIwMDkwN0ZBNTc0ODBGMDkwN0ZBNjc0OUFGMDEyMjEKKzowQzAzN0YwMDEwMUI5MDdGQTZFNTQyRjAxMjEwMUI5MEFFCis6MEQwMzhCMDA3RkE2RTU0M0YwMTIxMDFCOTA3RkE1NzQ0MDgzCis6MDEwMzk4MDBGMDc0Cis6MDEwMzk5MDAyMjQxCis6MEQwMzlBMDA5MDdGQTU3NDgwRjA5MDdGQTY3NDlBRjAxMkY5Cis6MEMwM0E3MDAxMDFCOTA3RkE2RTU0NEYwMTIxMDFCOTA4NAorOjBDMDNCMzAwN0ZBNkU1NDVGMDEyMTAxQjkwN0ZBNkU1MjgKKzowQjAzQkYwMDQ2RjAxMjEwMUI5MDdGQTU3NDQwRjA2OAorOjAxMDNDQTAwMjIxMAorOjBBMDNDQjAwNzU0NDAyNzU0NTAwNzU0NjAwMTJFNgorOjA5MDNENTAwMDM5QTc1NDIwMzc1NDMwMDEyRkUKKzowMjAzREUwMDAzNzJBOAorOjAxMDNFMDAwMjJGQQorOjBDMDNFMTAwOTA4ODAwRTUzNkYwOTA4ODAwNzQxMDI1MkMKKzowOTAzRUQwMDM2RjAxMjAxREQ3NTQyMDE3NUM0Cis6MDkwM0Y2MDA0MzE4MTIwMzcyNzU0NDAyNzVFQworOjA5MDNGRjAwNDUwMDc1NDYwMDEyMDM5QTc1RDEKKzowODA0MDgwMDQyMDM3NTQzNDQxMjAzNzIyNAorOjAxMDQxMDAwMjJDOQorOjBFMDQxMTAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMDczCis6MEUwNDFGMDA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwN0ZBQTc0N0YKKzowNDA0MkQwMDAyRjBEMDg2ODMKKzowQjA0MzEwMEQwRDBEMDgzRDA4MkQwRjBEMEUwMzJEOQorOjBFMDQzQzAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMDQ4Cis6MEUwNDRBMDA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwN0ZBOTc0NTUKKzowNzA0NTgwMDA0RjA3NTMwMDFEMDg2QUQKKzowQjA0NUYwMEQwRDBEMDgzRDA4MkQwRjBEMEUwMzJBQgorOjBFMDQ2QTAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMDFBCis6MEUwNDc4MDA4Njc1ODYwMEU1OTFDMkU0RjU5MTkwN0ZBQTc0MjYKKzowNzA0ODYwMDA0RjA3NTMxMDFEMDg2N0UKKzowQjA0OEQwMEQwRDBEMDgzRDA4MkQwRjBEMEUwMzI3RAorOjBFMDQ5ODAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMEVDCis6MEMwNEE2MDA4Njc1ODYwMEU1OTFDMkU1RjU5MUQwODZEMAorOjBCMDRCMjAwRDBEMEQwODNEMDgyRDBGMEQwRTAzMjU4Cis6MEUwNEJEMDBDMEUwQzBGMEMwODJDMDgzQzBEMDc1RDAwMEMwQzcKKzowQzA0Q0IwMDg2NzU4NjAwRTU5MUMyRTdGNTkxRDA4NkE5Cis6MEIwNEQ3MDBEMEQwRDA4M0QwODJEMEYwRDBFMDMyMzMKKzowQzA0RTIwMDkwN0ZFQUUwRkE4QTIwOTA3Rjk2RTRGMDE4Cis6MDEwNEVFMDAyMkVCCis6MDcwNEVGMDA5MDdGRUFFMEZBOEEyMTg4Cis6MDEwNEY2MDAyMkUzCis6MEUwNEY3MDA5MDE3MTNFMEZBOTAxNzE1RTBGQjc0ODAyQUZBQjQKKzowRTA1MDUwMDc0ODAyQkZCRUEwMzAzNTQzRkZDRUFDNDIzNTQyQQorOjBFMDUxMzAwMUZGQTJDRkFFQjAzMDM1NDNGRkNFQkM0MjM1NEY1Cis6MEIwNTIxMDAxRkZCMkNGQjkwMTcwQUUwRkM2MDAyOUYKKzowMjA1MkMwMDdBMDA1MworOjA3MDUyRTAwOTAxNzBDRTBGQzYwMDJENQorOjAyMDUzNTAwN0IwMDQ5Cis6MEIwNTM3MDBFQTJCRkNDMzEzRjUzQTc1NDQwMjhCNUQKKzowNzA1NDIwMDQ1OEE0NjEyMDM5QTc1NzkKKzowOTA1NDkwMDZFMDg3NTZGMDAxMjExNDQ3NTczCis6MDQwNTUyMDA3MDQ3NzU3MTA4Cis6MDgwNTU2MDAwQzc1NzIwMjEyMTE3NTg1OEIKKzowNTA1NUUwMDNBNzMxMjExQTAyOAorOjAxMDU2MzAwMjI3NQorOjBFMDU2NDAwOTA3Rjk2RTBGQTkwN0Y5Njc0ODA2NTAyRjA5MDhBCis6MEUwNTcyMDA3RkVCRTBGQTkwN0ZFQUUwRkI5MDdGRUZFMEZDODkKKzowRTA1ODAwMDMzOTVFMEZEOEMwNTdDMDA5MDdGRUVFMEZFMzNBRAorOjBFMDU4RTAwOTVFMEZGRUMyRUZDRUQzRkZEOTA3RkU5RTBGRUQ2Cis6MDUwNTlDMDBCRTAxMDI4MDAzMTYKKzowMzA1QTEwMDAyMDVGOTU3Cis6MDYwNUE0MDBCQzAxMjFCRDAwMUU5OAorOjBFMDVBQTAwRUFDNDAzNTRGOEZDRUIyNUUwRkQyQzI0MDBGQzExCis6MEUwNUI4MDBFNDM0MTdGRDkwN0VDMEUwRkU4QzgyOEQ4M0YwNEYKKzowMjA1QzYwMDgwMzE4MgorOjBFMDVDODAwRUFDNDAzNTRGOEZBRUIyNUUwRkIyQUZBMjQwMEZCCis6MEUwNUQ2MDBGQkU0MzQxN0ZDOTA3RUMwRTBGRDhCODI4QzgzMkEKKzowRTA1RTQwMEYwNzQwMTJBMjQwMEZBRTQzNDE3RkI5MDdFQzE2MworOjA3MDVGMjAwRTBGQzhBODI4QjgzRjAxQworOjAzMDVGOTAwNzUzODAxNTEKKzowMTA1RkMwMDIyREMKKzowRTA1RkQwMEMwRTBDMEYwQzA4MkMwODNDMDAyQzAwM0MwMDREMgorOjBFMDYwQjAwQzAwNUMwMDZDMDA3QzAwMEMwMDFDMEQwNzVEMDM5Cis6MEQwNjE5MDAwMEMwODY3NTg2MDBFNTkxQzJFNEY1OTE5MDYxCis6MEQwNjI2MDA3RkFBNzQwMUYwMTIwNTY0NzUzNzAwRDA4NkJDCis6MEUwNjMzMDBEMEQwRDAwMUQwMDBEMDA3RDAwNkQwMDVEMDA0MjIKKzowRDA2NDEwMEQwMDNEMDAyRDA4M0QwODJEMEYwRDBFMDMyQzAKKzowRTA2NEUwMDkwN0ZFQkUwRkE5MDdGRUFFMEZCOTA3RkVFRTAxOQorOjBFMDY1QzAwRkMzMzk1RTBGRDkwN0Y5NkUwRkU5MDdGOTY3NDUzCis6MEUwNjZBMDA4MDY1MDZGMDkwN0YwMDc0MDFGMEVBQzQwMzU0MkUKKzowRTA2NzgwMEY4RkVFQjI1RTBGQjJFRkUyNDAwRkJFNDM0MTcxOQorOjBFMDY4NjAwRkY4QjgyOEY4M0UwRkI3NDAxMkUyNDAwRkVFNEM0Cis6MEUwNjk0MDAzNDE3RkY4RTgyOEY4M0UwRkU5MDdGRTlFMEZGMzcKKzowMzA2QTIwMEJGODEwQTBCCis6MEEwNkE1MDA5MDdGMDBFQkYwOTA3RjAxRUVGMDczCis6MDgwNkFGMDA5MDdGRTlFMEZCQkI4MjFBMTkKKzowMzA2QjcwMEJBMDEwQzc5Cis6MEMwNkJBMDA5MDdGMDBFNEYwOTA3RjAxRTRGMDgwMEJFMgorOjBCMDZDNjAwOTA3RjAwRTRGMDkwN0YwMTc0QjVGMDFECis6MDgwNkQxMDA5MDdGRTlFMEZCQkI4MzFCRjUKKzowMzA2RDkwMEJBMDEwRDU2Cis6MEQwNkRDMDA5MDdGMDA3NDAxRjA5MDdGMDFFNEYwODAwQjJFCis6MEIwNkU5MDA5MDdGMDBFNEYwOTA3RjAxNzQxMkYwOUQKKzowODA2RjQwMDkwN0ZFOUUwRkJCQjg0MUNEMAorOjAzMDZGQzAwQkEwMTBEMzMKKzowRDA2RkYwMDkwN0YwMDc0MDFGMDkwN0YwMUU0RjA4MDBDMEEKKzowQzA3MEMwMDkwN0YwMDc0ODBGMDkwN0YwMTc0MDFGMDc5Cis6MDUwNzE4MDA5MDdGQjVFQ0YwM0MKKzowMTA3MUQwMDIyQjkKKzowQzA3MUUwMDc1MzYwRDkwODgwMDc0MURGMDc1NkI4MDFFCis6MEEwNzJBMDA3NTZDM0MxMjEwRTI3NTZCODA3NUNGCis6MDkwNzM0MDA2QzBGMTIxMEUyNzU2QjgwNzU2OAorOjA5MDczRDAwNkMwNjEyMTBFMjc1NkI4MDc1NjgKKzowNzA3NDYwMDZDMDExMjEwRTI3QTAwQzEKKzowMzA3NEQwMEJBRkYwMEYwCis6MDIwNzUwMDA1MDBBNEQKKzowQTA3NTIwMEMwMDIxMjAxREREMDAyMEE4MEYxOUUKKzowQTA3NUMwMDc1NkI4MDc1NkMzQzEyMTBFMjc1OUQKKzowODA3NjYwMDZCODA3NTZDMEYxMjEwRTJBQworOjAxMDc2RTAwMjI2OAorOjBFMDc2RjAwOTA3RkExRTRGMDkwN0ZBRjc0MDFGMDkwN0Y5MjM0Cis6MEUwNzdEMDA3NDAyRjA3NThFMzE3NTg5MjE3NTg4MDA3NUM4N0IKKzowRTA3OEIwMDAwNzU4RDQwNzU5ODQwNzVDMDQwNzU4NzAwNzVFQgorOjA5MDc5OTAwMjAwMDc1MjEwMDc1MjIwMDc1OTUKKzowNTA3QTIwMDIzMDA3NTQ3MDA3MworOjA3MDdBNzAwQzNFNTQ3OTQyMDUwMTE0NworOjBEMDdBRTAwRTU0NzI0MDBGNTgyRTQzNDE3RjU4M0U0RjBGQworOjA0MDdCQjAwMDU0NzgwRTg4NgorOjA5MDdCRjAwRTRGNTQwRjUzRkU0RjUzQ0Y1REEKKzowNzA3QzgwMDNCRTRGNTNFRjUzRDc1MzEKKzowQjA3Q0YwMDMyMDA3NTM3MDA3NTM5MDA5MDdGOTNGMQorOjBFMDdEQTAwNzQzQ0YwOTA3RjlDNzRGRkYwOTA3Rjk2NzQ4MENBCis6MEUwN0U4MDBGMDkwN0Y5NDc0NzBGMDkwN0Y5RDc0OEZGMDkwNkQKKzowRTA3RjYwMDdGOTdFNEYwOTA3Rjk1NzRDMkYwOTA3Rjk4NzQyNgorOjBFMDgwNDAwMjhGMDkwN0Y5RTc0MjhGMDkwN0ZGMEU0RjA5MDMyCis6MEUwODEyMDA3RkYxRTRGMDkwN0ZGMkU0RjA5MDdGRjNFNEYwRTkKKzowRTA4MjAwMDkwN0ZGNEU0RjA5MDdGRjVFNEYwOTA3RkY2RTQzMgorOjBFMDgyRTAwRjA5MDdGRjdFNEYwOTA3RkY4RTRGMDkwN0ZGOTBGCis6MEUwODNDMDA3NDM4RjA5MDdGRkE3NEEwRjA5MDdGRkI3NEEwRTcKKzowRTA4NEEwMEYwOTA3RkZDNzRBMEYwOTA3RkZENzRBMEYwOTAwMQorOjBFMDg1ODAwN0ZGRTc0QTBGMDkwN0ZGRjc0QTBGMDkwN0ZFMDEwCis6MEUwODY2MDA3NDAzRjA5MDdGRTE3NDAxRjA5MDdGREQ3NDgwRTgKKzowQjA4NzQwMEYwMTIxMjQzMTIwNzFFN0EwMDdCMDBGNgorOjA5MDg3RjAwQzNFQTk0MUVFQjk0MDA1MDE3MkIKKzowQzA4ODgwMDkwODgwMEUwRjU0NzkwODgwQkUwRjU0N0YxCis6MDkwODk0MDA5MDdGNjhGMDBBQkEwMDAxMEIyNAorOjAyMDg5RDAwODBFMEY5Cis6MEMwODlGMDAxMjAzRTE5MDdGRDZFNEYwN0EwMDdCMDBBOQorOjBEMDhBQjAwOEEwNDhCMDVDM0VBOTRFMEVCOTQyRTUwMUFFQQorOjBFMDhCODAwQzAwMkMwMDNDMDA0QzAwNTEyMDFEREQwMDVEMDhGCis6MEEwOEM2MDAwNEQwMDNEMDAyMEFCQTAwMDEwQkFGCis6MDIwOEQwMDA4MEQ5Q0QKKzowRDA4RDIwMDkwN0ZENjc0MDJGMDkwN0ZENjc0MDZGMDkwRUYKKzowRTA4REYwMDdGREU3NDA1RjA5MDdGREY3NDA1RjA5MDdGQUMzMworOjBFMDhFRDAwRTRGMDkwN0ZBRDc0MDVGMDc1QTg4MDc1RjgxMEVBCis6MEQwOEZCMDA5MDdGQUU3NDBCRjA5MDdGRTI3NDg4RjA5MDU3Cis6MEMwOTA4MDA3RkFCNzQwOEYwNzVFODExNzUzMjAxNzVDMgorOjBDMDkxNDAwMzEwMDc1MzAwMEMwMDRDMDA1MTIwNEY3NkIKKzowQTA5MjAwMEQwMDVEMDA0NzUzNDAwNzUzNTAxRDAKKzowRDA5MkEwMDkwN0ZBRTc0MDNGMDhDMDJCQTAwMDI4MDAzQ0YKKzowMzA5MzcwMDAyMEEzRjcyCis6MEMwOTNBMDA4NTMzMzQ5MDdGOUQ3NDhGRjA5MDdGOTc4MAorOjBFMDk0NjAwNzQwOEYwOTA3RjlENzQ4OEYwOTA3RjlBRTBGQTFDCis6MEMwOTU0MDA3NDA1NUFGNTMzOTA3RjlENzQ4RkYwOTA2RAorOjBEMDk2MDAwN0Y5Nzc0MDJGMDkwN0Y5RDc0ODJGMEU1MzM2NAorOjBEMDk2RDAwMjVFMEZBOTA3RjlBRTA1NDA1RkI0QUY1MzMyRgorOjAyMDk3QTAwNjAwQzBGCis6MEMwOTdDMDA5MDdGOTZFMEZBOTA3Rjk2NzQ4MDRBRjAxRAorOjBCMDk4ODAwNzU2RTAwNzU2RjAwQzAwNEMwMDUxMjAyCis6MEUwOTkzMDAxMTQ0RDAwNUQwMDQ5MDE3MTNFMEZBNzQ4MDJBQTYKKzowNjA5QTEwMEZBRTUzM0I0MDQyOTVECis6MDMwOUE3MDBCQUEwMDBGMworOjAyMDlBQTAwNTAyNEQ3Cis6MEQwOUFDMDA5MDE3MTNFMDA0RkIwQjkwMTcxM0VCRjA5MDc1Cis6MEUwOUI5MDAxNzEzRTBGQjkwMTcxNUYwQzAwMkMwMDRDMDA1MzQKKzowOTA5QzcwMDEyMDRGN0QwMDVEMDA0RDAwMjlGCis6MDUwOUQwMDBFNTMzQjQwMjI2MkUKKzowNjA5RDUwMEMzNzQwNDlBNTAyMEQ3Cis6MEQwOURCMDA5MDE3MTNFMEZBMUExQTkwMTcxM0VBRjA5MDIzCis6MEQwOUU4MDAxNzEzRTBGQTkwMTcxNUYwQzAwNEMwMDUxMkI3Cis6MDYwOUY1MDAwNEY3RDAwNUQwMDQ1OAorOjA1MDlGQjAwRTUzM0I0MDgxRDA2Cis6MDQwQTAwMDBFNTM0NzAxOTUwCis6MEEwQTA0MDA3NDAxMjUzNTU0MEZGNTM1ODUzNUQyCis6MEMwQTBFMDA3NTc1NzYwMEMwMDRDMDA1MTIxM0ZFRDAwMAorOjAzMEExQTAwMDVEMDA0MDAKKzowNTBBMUQwMEU1MzNCNDAxMURFQQorOjA0MEEyMjAwRTUzNDcwMTkyRQorOjBBMEEyNjAwRTUzNTI0RkY1NDBGRjUzNTg1MzU0MgorOjBDMEEzMDAwNzU3NTc2MDBDMDA0QzAwNTEyMTNGRUQwREUKKzowMzBBM0MwMDA1RDAwNERFCis6MEUwQTNGMDBDMDA0QzAwNTEyMDFEREQwMDVEMDA0OTA3Rjk2RTIKKzowRTBBNEQwMEUwRkE5MDdGOTY3NDdGNUFGMDkwN0Y5Nzc0MDhCRAorOjBBMEE1QjAwRjBDM0VDOTQwMEVEOTQwMjQwMDg5MworOjA4MEE2NTAwOTA3Rjk2RTBGQTIwRTYwOEZDCis6MDgwQTZEMDBDM0U0OUM3NDA4OUQ1MDEzQzIKKzowRTBBNzUwMDkwN0Y5NkUwRkE5MDdGOTY3NDQwNjUwMkYwN0NDOAorOjA1MEE4MzAwMDA3RDAwODAwNTZDCis6MDUwQTg4MDAwQ0JDMDAwMTBEOTMKKzowNTBBOEQwMEU1MzhCNDAxMEU4NAorOjBEMEE5MjAwQzAwNEMwMDUxMjA0RjdEMDA1RDAwNDc1Mzg2QgorOjAxMEE5RjAwMDA1NgorOjA3MEFBMDAwRTUzMTcwMDMwMjA5MkE5MQorOjBBMEFBNzAwOTA3RkM5RTBGQTcwMDMwMjBDMkRFNQorOjBFMEFCMTAwOTA3Rjk2RTBGQTkwN0Y5Njc0ODA2NTAyRjA5MDM4Cis6MDkwQUJGMDA3REMwRTBGQUJBMkMwMjgwMDNBQworOjAzMEFDODAwMDIwQjM2RTgKKzowNTBBQ0IwMDc1MzIwMDdCMDAwNAorOjAzMEFEMDAwQkI2NDAwMDQKKzowMjBBRDMwMDUwMUNCNQorOjBFMEFENTAwQzAwMkMwMDNDMDA0QzAwNTEyMDFEREQwMDVEMDcwCis6MEQwQUUzMDAwNEQwMDNEMDAyOTA4ODBGRTBGNTQ3MEI4MDhGCis6MDEwQUYwMDBERjI2Cis6MEQwQUYxMDBDMDAyQzAwNEMwMDUxMjA3MUUxMjAzRTExMjZFCis6MEMwQUZFMDAwNEY3RDAwNUQwMDREMDAyNzU2RTAwNzUxRQorOjBEMEIwQTAwNkYwMUMwMDJDMDA0QzAwNTEyMTE0NEQwMDVFNworOjA5MEIxNzAwRDAwNEQwMDI3NTcwNEQ3NTcxMTcKKzowQjBCMjAwMDBDNzU3MjAyQzAwMkMwMDRDMDA1MTI3OAorOjBCMEIyQjAwMTE3NUQwMDVEMDA0RDAwMjAyMEMyRDgzCis6MDMwQjM2MDBCQTJBM0I5RAorOjBEMEIzOTAwOTA3Rjk4NzQyMEYwQzAwMkMwMDRDMDA1MTIyNworOjBFMEI0NjAwMDFEREQwMDVEMDA0RDAwMjkwN0Y5ODc0MjhGMDE1Cis6MDIwQjU0MDA3QjAwMjQKKzowMzBCNTYwMEJCMEEwMEQ3Cis6MDUwQjU5MDA0MDAzMDIwQzJEMTkKKzowRTBCNUUwMEMwMDJDMDAzQzAwNEMwMDUxMjAxREREMDA1RDBFNgorOjA4MEI2QzAwMDREMDAzRDAwMjBCODBFMjZCCis6MDMwQjc0MDBCQTJCMUE3RgorOjA4MEI3NzAwOTA3RkM5RTBGQkJCNDAxMkI2Cis6MEUwQjdGMDBDMDAyQzAwNEMwMDUxMjEyMDVEMDA1RDAwNEQwN0IKKzowNDBCOEQwMDAyMDIwQzJEMjcKKzowMzBCOTEwMEJBMTAxRjc4Cis6MEUwQjk0MDA5MDdGOTZFMEZCOTA3Rjk2NzQ4MDY1MDNGMEMwMjIKKzowRTBCQTIwMDAyQzAwNEMwMDUxMjEwM0REMDA1RDAwNEQwMDJFMAorOjAzMEJCMDAwMDIwQzJEMDcKKzowMzBCQjMwMEJBMTExMjYyCis6MEUwQkI2MDBDMDAyQzAwNEMwMDUxMjEwNkFEMDA1RDAwNEQwRTEKKzowNDBCQzQwMDAyMDIwQzJERjAKKzowMzBCQzgwMEJBMTIxMjRDCis6MEUwQkNCMDBDMDAyQzAwNEMwMDUxMjEwOEZEMDA1RDAwNEQwQTcKKzowNDBCRDkwMDAyMDIwQzJEREIKKzowMzBCREQwMEJBMTMwQjNECis6MEIwQkUwMDA5MDdEQzFFMEZCOTA4ODAwRjA4MDQyOTcKKzowMzBCRUIwMEJBMTQxMTI4Cis6MEUwQkVFMDBDMDAyQzAwNEMwMDUxMjExREREMDA1RDAwNEQwMzUKKzowMzBCRkMwMDAyODAyRTQ2Cis6MDMwQkZGMDBCQTE1MUQwNworOjBDMEMwMjAwOTA3REMxRTBGNTc1OTA3REMyRTBGNTc2QjQKKzowRTBDMEUwMEMwMDJDMDA0QzAwNTEyMTNGRUQwMDVEMDA0RDBGMQorOjAzMEMxQzAwMDI4MDBFNDUKKzowMzBDMUYwMEJBMTYwQkY3Cis6MEIwQzIyMDBDMDA0QzAwNTEyMTNBM0QwMDVEMDA0Q0QKKzowQjBDMkQwMDkwN0ZDOUU0RjA3NTMxMDAwMjA5MkEzNQorOjAxMEMzODAwMjI5OQorOjA3MEMzOTAwNTM1NTUwNDU0RTQ0MDBFNQorOjA3MEM0MDAwNTI0NTUzNTU0RDQ1MDBEQworOjA2MEM0NzAwMjA1NjZGNkMyMDAwMzYKKzowRDBDNEQwMDQ0NDE0MjU1NTM0MjIwNzYzMTJFMzAzMDAwOTQKKzowRTBDNUEwMEMwRTBDMEYwQzA4MkMwODNDMDAyQzAwM0MwMDQ2RQorOjBFMEM2ODAwQzAwNUMwMDZDMDA3QzAwMEMwMDFDMEQwNzVEMEQ2Cis6MEQwQzc2MDAwMEMwODY3NTg2MDBFNTkxQzJFNEY1OTE5MEZFCis6MEUwQzgzMDA3RkFCNzQwMUYwOTA3RkU4RTBGQTkwN0ZFOUUwMkIKKzowNjBDOTEwMEZCQkIwMDAyODAwMzIyCis6MDMwQzk3MDAwMjBEMzgxMworOjAzMEM5QTAwQkE4MDE0MDkKKzowRTBDOUQwMDkwN0YwMDc0MDFGMDkwN0YwMUU0RjA5MDdGQjUyRAorOjA2MENBQjAwNzQwMkYwMDIwRUNEMDAKKzowNTBDQjEwMEJBODIwMjgwMDM3RAorOjAzMENCNjAwMDIwRDFEMEYKKzowODBDQjkwMDkwN0ZFQ0UwRkNCQzAxMDA5RgorOjAyMENDMTAwNDAyMUQwCis6MDYwQ0MzMDBDMzc0MDc5QzQwMUJGNgorOjBFMENDOTAwRUMyNEZGMjVFMEZEMjRDNkY1ODJFNDM0N0ZGNTFGCis6MEQwQ0Q3MDA4M0UwRkQ1MzA1MDE5MDdGMDBFREYwODAyQkMwCis6MDMwQ0U0MDBCQzgxMDBEMAorOjAyMENFNzAwNDAyMUFBCis6MDYwQ0U5MDBDMzc0ODc5QzQwMUI1MAorOjBFMENFRjAwRUMyNDdGMjVFMEZDMjRCNkY1ODJFNDM0N0ZGNThBCis6MEQwQ0ZEMDA4M0UwRkM1MzA0MDE5MDdGMDBFQ0YwODAwNUMzCis6MDUwRDBBMDA5MDdGMDBFNEYwMDEKKzowRTBEMEYwMDkwN0YwMUU0RjA5MDdGQjU3NDAyRjAwMjBFQ0RFQgorOjA1MEQxRDAwQkE4MTAyODAwMzExCis6MDMwRDIyMDAwMjBFQzVGOQorOjBFMEQyNTAwOTA3RjAwRTRGMDkwN0YwMUU0RjA5MDdGQjU3NEMxCis6MDUwRDMzMDAwMkYwMDIwRUNERUMKKzowMzBEMzgwMEJCMDEyRENGCis6MDYwRDNCMDBCQTAwMDMwMjBFQ0QxOAorOjAzMEQ0MTAwQkEwMjExRTIKKzowRDBENDQwMDc1NTkwMEMwMDJDMDAzMTIwRUYwRDAwM0QwOUMKKzowNDBENTEwMDAyMDIwRUNEQkYKKzowNTBENTUwMEJBMjEwMjgwMDMzOQorOjAzMEQ1QTAwMDIwRUNEQjkKKzowQjBENUQwMDc1MzcwMTkwN0ZDNUU0RjAwMjBFQ0Q1OQorOjAzMEQ2ODAwQkIwMzFGQUIKKzowNjBENkIwMEJBMDAwMzAyMEVDREU4Cis6MDUwRDcxMDBCQTAyMDI4MDAzM0MKKzowMzBENzYwMDAyMEVDRDlECis6MEQwRDc5MDA3NTU5MDFDMDAyQzAwMzEyMEVGMEQwMDNEMDY2Cis6MDQwRDg2MDAwMjAyMEVDRDhBCis6MDMwRDhBMDBCQjA2NTQ1MQorOjA1MEQ4RDAwQkE4MDAyODAwM0EyCis6MDMwRDkyMDAwMjBFQzU4OQorOjA4MEQ5NTAwOTA3RkVCRTBGQ0JDMDExNUFFCis6MEMwRDlEMDA3Q0ZCN0QwRjhEMDY3RjAwOTA3RkQ0RUU2NAorOjA5MERBOTAwRjA5MDdGRDVFQ0YwMDIwRUNEQjQKKzowQTBEQjIwMDkwN0ZFQkUwRkNCQzAyMDI4MDAzMUUKKzowMzBEQkMwMDAyMEVDNTVGCis6MEEwREJGMDA5MDdGRUFFMEZDQkMwMDAyODAwMzE0Cis6MDMwREM5MDAwMjBFQzU1MgorOjBDMERDQzAwN0MzQjdEMEY4RDA2N0YwMDkwN0ZENEVFRjUKKzowOTBERDgwMEYwOTA3RkQ1RUNGMDAyMEVDRDg1Cis6MDYwREUxMDBCQjA3MDMwMjBFQzU3MgorOjAzMERFNzAwQkIwODEwMzYKKzowRDBERUEwMEFDNDg5MDdGMDBFQ0YwOTA3RkI1NzQwMUYwRjQKKzowMzBERjcwMDAyMEVDRDFDCis6MDMwREZBMDBCQjA5MzEwMQorOjA1MERGRDAwQkEwMDAyODAwM0IyCis6MDMwRTAyMDAwMjBFQzUxOAorOjBFMEUwNTAwOTA3RkVBRTBGQ0MzNzQwMTlDNTAwMzAyMEVDNTBFCis6MDgwRTEzMDA5MDdGRUFFMEZDQkMwMDBBM0MKKzowQTBFMUIwMDkwMTcyMUU0RjA5MDE3MjJFNEYwOTQKKzowOTBFMjUwMDkwN0ZFQUUwRjU0ODAyMEVDREQxCis6MDMwRTJFMDBCQjBBMjdENQorOjA1MEUzMTAwQkE4MTAyODAwM0ZDCis6MDMwRTM2MDAwMjBFQzVFNAorOjBFMEUzOTAwOTA3RkVDRTBGQTI0MjBGQUU0MzQxN0ZDOEE4MjYxCis6MEUwRTQ3MDA4QzgzRTBGQTkwN0YwMEYwOTA3RkI1NzQwMUYwOEMKKzowMzBFNTUwMDAyMEVDREJECis6MDUwRTU4MDBCQjBCMDI4MDAzNEEKKzowMzBFNUQwMDAyMEVBOUQ5Cis6MEQwRTYwMDA5MDE3MjBFNEYwOTA3RkVDRTBGQUJBMDExQTQwCis6MDgwRTZEMDA5MDdGRURFMEZBQkEwMDEyREIKKzowRTBFNzUwMDkwN0ZFQUUwRkE5MDE3MjFGMEMwMDMxMjA0RTIyOQorOjA0MEU4MzAwRDAwMzgwNDZEMgorOjA4MEU4NzAwOTA3RkVDRTBGQUJBMDIzRTk0Cis6MDgwRThGMDA5MDdGRURFMEZBQkEwMDM2OTUKKzowRDBFOTcwMEMwMDMxMjA0RUZEMDAzOTA3RkVBRTBGQTkwNTAKKzowNTBFQTQwMDE3MjJGMDgwMjQ3QworOjA1MEVBOTAwQkIxMjAyODAxN0RFCis6MDUwRUFFMDBCQjgxMDI4MDBENzQKKzowNTBFQjMwMEJCODMwMjgwMDg3MgorOjA1MEVCODAwQkI4MjAyODAwMzczCis6MDMwRUJEMDBCQjg0MDVFRQorOjA1MEVDMDAwMTIwNjRFODAwODNGCis6MDgwRUM1MDA5MDdGQjQ3NDAzRjA4MDA2NzUKKzowNjBFQ0QwMDkwN0ZCNDc0MDJGMEY2Cis6MDIwRUQzMDBEMDg2QzcKKzowRTBFRDUwMEQwRDBEMDAxRDAwMEQwMDdEMDA2RDAwNUQwMDQ3OAorOjBEMEVFMzAwRDAwM0QwMDJEMDgzRDA4MkQwRjBEMEUwMzIxNgorOjBCMEVGMDAwOTA3RkVDRTBGNTVBQzM5NDAxNDAxRDE4Cis6MDcwRUZCMDBDMzc0MDc5NTVBNDAxNjZECis6MEQwRjAyMDBFNTVBMjRGRjI1RTBGQTI0QzZGNTgyRTQzNDA4Cis6MDkwRjBGMDA3RkY1ODNBQTU5RUFGMDgwMjI2MworOjA3MEYxODAwQzNFNTVBOTQ4MTQwMUI2MAorOjA3MEYxRjAwQzM3NDg3OTU1QTQwMTRDQQorOjBEMEYyNjAwRTU1QTI0RkYyNUUwRkEyNEI2RjU4MkU0MzRGNAorOjA3MEYzMzAwN0ZGNTgzQUE1OUVBRjBFMworOjAxMEYzQTAwMjI5NAorOjBFMEYzQjAwMDkwMkJBMDAwMzAxMDA0MDAwMDkwNDAwMDAwMDkyCis6MEUwRjQ5MDAwMTAxMDAwMDA5MjQwMTAwMDEzRDAwMDEwMTBDMUUKKzowRTBGNTcwMDI0MDIwMTEwMDcwMDAyMDMwMDAwMDAwRDI0MDYxMgorOjBFMEY2NTAwMDMwMTAyMTUwMDAzMDAwMzAwMDAwOTI0MDMwMjJCCis6MEUwRjczMDAwMTAxMDAwMTAwMDkyNDAzMDQwMjAzMDAwMzAwMzEKKzowRTBGODEwMDA5MjQwMzA1MDMwNjAwMDEwMDA5MDQwMTAwMDAxNQorOjBFMEY4RjAwMDEwMjAwMDAwOTA0MDEwMTAxMDEwMjAwMDAwNzM3Cis6MEUwRjlEMDAyNDAxMDIwMTAxMDAwQjI0MDIwMTAyMDIxMDAxRDYKKzowRTBGQUIwMDgwQkIwMDA5MDU4ODA1MDAwMTAxMDAwMDA3MjUzNAorOjBFMEZCOTAwMDEwMDAwMDAwMDA5MDQwMjAwMDIwMDAwMDAwMDE4Cis6MEUwRkM3MDAwNzA1ODIwMjQwMDAwMDA3MDUwMjAyNDAwMDAwRkMKKzowRTBGRDUwMDA5MDQwMjAxMDMwMDAwMDAwMDA3MDU4MjAyNDAyQgorOjBFMEZFMzAwMDAwMDA3MDUwMjAyNDAwMDAwMDkwNTg5MDVBMDc0Cis6MEEwRkYxMDAwMTAxMDAwMDAwRkZGRkZGRkYwMEY4Cis6MEUwRkZCMDAxMjAxMDAwMTAwMDAwMDQwNDcwNTk5OTkwMDAxMTUKKzowRTEwMDkwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwOTAyQkExMworOjA0MTAxNzAwMDAwMzAxMDBEMQorOjAyMTAxQjAwN0EwMDU5Cis6MDMxMDFEMDBCQTA1MDAxMQorOjAyMTAyMDAwNTAxNzY3Cis6MDgxMDIyMDA5MDdGQTVFMEZCMzBFMDA1MjIKKzowNTEwMkEwMDkwMDAwMTgwMERBMworOjBBMTAyRjAwQzAwMjEyMDFEREQwMDIwQTgwRTRDNQorOjAzMTAzOTAwOTAwMDAxMjMKKzowMTEwM0MwMDIyOTEKKzowRTEwM0QwMDkwN0RDMUUwRjlBM0UwRkFBM0UwRkI3QzAwN0QwQQorOjA0MTA0QjAwN0VFQjYwMTJDNgorOjBFMTA0RjAwODk4MjhBODNFMEEzQTk4MkFBODM4QzgyOEQ4MzgyCis6MDQxMDVEMDBGMDBDREJFRUNBCis6MDgxMDYxMDA5MDdEQzNFMDkwN0ZCOUYwMUYKKzowMTEwNjkwMDIyNjQKKzowRTEwNkEwMDkwN0RDMUUwRjlBM0UwRkFBM0UwRkI3Q0M0N0QxOQorOjA0MTA3ODAwN0RFQjYwRTVDNworOjBFMTA3QzAwOEM4MjhEODNFMDBDODk4MjhBODNGMEEzQTk4Mjg2Cis6MDQxMDhBMDBBQTgzREJFRTZDCis6MDExMDhFMDAyMjNGCis6MEUxMDhGMDA5MDdGQTU3NDgwRjAwNTg2OTA3REMxRTAwNTg2RjcKKzowRTEwOUQwMEEzRjAxMjEwMUI5MDdGQTYwNTg2QTNBM0UwRjkxNgorOjA1MTBBQjAwNjAxNkEzMDU4NjlDCis6MEQxMEIwMDA5MDdGQTYwNTg2RTBBMzA1ODZGMEMwMDExMjIyCis6MDYxMEJEMDAxMDFCRDAwMUQ5RUQ2QgorOjA2MTBDMzAwOTA3RkE1NzQ0MEYwQ0YKKzowMTEwQzkwMDIyMDQKKzowODEwQ0EwMDkwODgwMjc0MDFGMDdBMDAyNQorOjAzMTBEMjAwQkFGRjAwNjIKKzowMjEwRDUwMDUwMEFCRgorOjBBMTBENzAwQzAwMjEyMDFEREQwMDIwQTgwRjExMAorOjAxMTBFMTAwMjJFQworOjA1MTBFMjAwRTU2QkI0QzAwODNECis6MDgxMEU3MDA5MDg4MDNFNTZDRjA4MDA2MUYKKzowNjEwRUYwMDkwODgwMkU1NkNGMEEwCis6MDQxMEY1MDA3QTAwN0IwMDAyCis6MEIxMEY5MDBDM0VBOTQzMkVCNjQ4MDk0ODA1MDA3M0YKKzowNTExMDQwMDBBQkEwMDAxMEIxNgorOjAyMTEwOTAwODBFRTc2Cis6MDExMTBCMDAyMkMxCis6MEExMTBDMDA5MDg4MDNFNTZERjAwNTM5N0EwMEM0Cis6MDMxMTE2MDBCQTI4MDBGNAorOjAyMTExOTAwNTAwMzgxCis6MDMxMTFCMDAwQTgwRjg0RgorOjA1MTExRTAwRTUzOUI0MTAwOEUyCis6MDgxMTIzMDA5MDg4MDI3NEMwRjA4MDBFRjgKKzowNTExMkIwMEU1MzlCNDIwMDlDNAorOjA5MTEzMDAwOTA4ODAyNzQ4MEYwNzUzOTAwMEEKKzowMjExMzkwMDdBMDAzQQorOjAzMTEzQjAwQkEyODAwQ0YKKzowMjExM0UwMDUwMDM1QworOjAzMTE0MDAwMEE4MEY4MkEKKzowMTExNDMwMDIyODkKKzowNDExNDQwMEU1NkY2MDAyRjEKKzowMjExNDgwMDgwMDcxRQorOjA3MTE0QTAwN0EwMDc1MzkwMDgwMDVGMQorOjA1MTE1MTAwN0E0MDc1MzkxMDIxCis6MDkxMTU2MDBFNTZFMkFGQUU1NkUyNTM5RjU3MworOjBBMTE1RjAwMzk5MDg4MDI3NDgwMkFGMDdBMDBBQgorOjA4MTE2OTAwQzNFQTY0ODA5NEE4NTAwMzVFCis6MDMxMTcxMDAwQTgwRjVGQworOjAxMTE3NDAwMjI1OAorOjA2MTE3NTAwQUE3MEFCNzFBQzcyMjAKKzowQzExN0IwMDhBODI4QjgzOENGMDEyMTRFRUZENjAxODQ5Cis6MEQxMTg3MDA4RDZEQzAwMkMwMDNDMDA0MTIxMTBDRDAwNDE1Cis6MDkxMTk0MDBEMDAzRDAwMjBBQkEwMDAxMEJERAorOjAyMTE5RDAwODBEQ0Y0Cis6MDExMTlGMDAyMjJECis6MEQxMUEwMDBFNTczQzQ1NDBGRkE1MzAyMEZDMzc0MDk5QThCCis6MDIxMUFEMDA1MDA2RUEKKzowNjExQUYwMDc0MzcyQUZCODAwNEU2Cis6MDQxMUI1MDA3NDMwMkFGQjZECis6MEMxMUI5MDA4QjZEQzAwMzEyMTEwQ0QwMDNBQTczNTNGRAorOjA4MTFDNTAwMDIwRkMzNzQwOTlBNTAwNkUxCis6MDYxMUNEMDA3NDM3MkFGQjgwMDRDOAorOjA0MTFEMzAwNzQzMDJBRkI0RgorOjA1MTFENzAwOEI2RDEyMTEwQ0VDCis6MDExMURDMDAyMkYwCis6MDcxMUREMDA5MDdEQzNFMEZBNjAwRkYyCis6MEMxMUU0MDA5MDdEQzFFMEY1NkU5MDdEQzJFMEY1NkZEQgorOjAzMTFGMDAwMTIxMTQ0OTUKKzowQzExRjMwMDkwN0RGRkU0RjA3NTcwQzQ3NTcxN0Q3NThGCis6MDUxMUZGMDA3MjAxMTIxMTc1RTAKKzowMTEyMDQwMDIyQzcKKzowMjEyMDUwMDdBMDQ2OQorOjAzMTIwNzAwQkE0MDAwRUEKKzowMjEyMEEwMDUwMzY1QworOjBFMTIwQzAwRUEyNEMwRjU4MkU0MzQ3REY1ODNFMEZCN0MwMDJCCis6MDMxMjFBMDBCQzA4MDAwRAorOjAyMTIxRDAwNTAyMDVGCis6MDYxMjFGMDA4QjA1RUQzMEU3MEIyQQorOjBCMTIyNTAwOTA3Rjk2NzQ0MkYwNzRDM0YwODAwOEM0Cis6MDgxMjMwMDA5MDdGOTZFNEYwNzQ4MUYwNTgKKzowNzEyMzgwMEVCMjVFMEZCMEM4MERCNUQKKzowMzEyM0YwMDBBODBDNTVECis6MDExMjQyMDAyMjg5Cis6MDQxMjQzMDA3QTAwN0JFRkMzCis6MDMxMjQ3MDBCQTEwMDBEQQorOjAyMTI0QTAwNTAyMDMyCis6MEUxMjRDMDA3NDExMkJGQjI0MDBGQ0U0MzQxOEZEOEM4MjhEMDEKKzowRTEyNUEwMDgzRTRGMEVBMjQwMEY1ODJFNDM0MTlGNTgzRTQxRAorOjA0MTI2ODAwRjAwQTgwREIyRAorOjAxMTI2QzAwMjI1RgorOjBFMTI2RDAwNzRGODI0MDBGNTgyNzQwMzM0ODRGNTgzRTRGMEYxCis6MEUxMjdCMDA3NEY5MjQwMEY1ODI3NDAzMzQ4NEY1ODNFNEYwRTIKKzowRTEyODkwMDc0RkEyNDAwRjU4Mjc0MDMzNDg0RjU4M0U0RjBEMworOjBFMTI5NzAwNzRGQjI0MDBGNTgyNzQwMzM0ODRGNTgzRTRGMEM0Cis6MEUxMkE1MDA3NEZGMjQwMEY1ODI3NDAzMzQ4NEY1ODNFNEYwQjIKKzowMTEyQjMwMDIyMTgKKzowRTEyQjQwMDEyMDNDQjEyMTI2RDdBQzA3Qjg3N0MwMTc0MDE4RAorOjBFMTJDMjAwMkFGREU0M0JGRThDMDc4QTgyOEI4MzhDRjA3NDNECis6MEUxMkQwMDAwMTEyMTRCRjJERkFFNDNFRkI4RjA0OEQ4MjhFQjYKKzowRTEyREUwMDgzOEZGMDc0MDYxMjE0QkY3NDAxMkFGREU0M0JFNgorOjBFMTJFQzAwRkU4QzA3OEE4MjhCODM4Q0YwRTQxMjE0QkY3NDkwCis6MEUxMkZBMDAwMTJERkFFNDNFRkI4RjA0OEQ4MjhFODM4RkYwNkYKKzowRTEzMDgwMDc0MEIxMjE0QkY3NDAxMkFGREU0M0JGRThDMDcyNworOjBFMTMxNjAwOEE4MjhCODM4Q0YwNzQwODEyMTRCRjc0MDEyRDMwCis6MEUxMzI0MDBGQUU0M0VGQjhGMDQ4RDgyOEU4MzhGRjA3NDAxRkQKKzowRTEzMzIwMDEyMTRCRjJBRkRFNDNCRkU4QzA3OEE4MjhCODNENworOjBFMTM0MDAwOENGMEU0MTIxNEJGNzQwMTJERkFFNDNFRkI4RjEyCis6MEUxMzRFMDAwNDhEODI4RTgzOEZGMDc0MDMxMjE0QkY3RDAwMTUKKzowMzEzNUMwMEJEMDYwMENCCis6MDIxMzVGMDA1MDEyMkEKKzowQjEzNjEwMDhBODI4QjgzOENGMDBBQkEwMDAxMEIxQgorOjA3MTM2QzAwRTQxMjE0QkYwRDgwRTkzQgorOjBEMTM3MzAwOEE4MjhCODM4Q0YwRTU3NDEyMTRCRjc0RjkyQworOjBFMTM4MDAwMjQwMEY1ODI3NDAzMzQ4NEY1ODM3NDBGRjA3NDM2Cis6MEUxMzhFMDBGRTI0MDBGNTgyNzQwMzM0ODRGNTgzNzQwMUYwQUMKKzowNjEzOUMwMDEyMDNFMTEyMDRGNzQ4Cis6MDExM0EyMDAyMjI4Cis6MEQxM0EzMDA5MDdEQzFFMEZBMjQwMEZCRTQzNDE5RkM5MEI5Cis6MEUxM0IwMDA3REMyRTBGRDhCODI4QzgzRjA3NUYwMTFFQUE0MDMKKzowMzEzQkUwMEZBN0IwMEI3Cis6MDMxM0MxMDBCQjEwMDA1RQorOjAyMTNDNDAwNTAyNEIzCis6MEUxM0M2MDBFQTI0MDBGQ0U0MzQxOEZERUIyQ0ZDRTQzREZEQjEKKzowRTEzRDQwMDc0MDQyQjI0QzBGNTgyRTQzNDdERjU4M0UwRkUyMgorOjA4MTNFMjAwOEM4MjhEODNGMDBCODBENzkzCis6MEUxM0VBMDBFQTI0MDBGQUU0MzQxOEZCNzQxMDJBRjU4MkU0QjkKKzowNTEzRjgwMDNCRjU4M0U0RjA2OQorOjAxMTNGRDAwMjJDRAorOjA0MTNGRTAwRTU3NjYwMDIyRQorOjAyMTQwMjAwODAxNjUyCis6MEMxNDA0MDA3NDBGNTU3NUZBOEE3NTI0MDBGNTgyRTQxNworOjBBMTQxMDAwMzQxOUY1ODNFMEY1NzQxMjEyQjRFQworOjBBMTQxQTAwMTIxMENBNzU2RTAwNzU2RjAwMTIwMworOjA2MTQyNDAwMTE0NDc1NzBCOTc1NUEKKzowNjE0MkEwMDcxMTQ3NTcyMDIxMjNDCis6MEIxNDMwMDAxMTc1RTU3NkI0MDIwNDc0MDE4MDAxMjAKKzowMTE0M0IwMEU0Q0MKKzowMzE0M0MwMEZBNzAwRjM0Cis6MEMxNDNGMDA3NDAxMjU3NUY1NzNDMDAyMTIxMUEwRDBENQorOjAzMTQ0QjAwMDI4MDBBMTIKKzowQTE0NEUwMDg1NzU3M0MwMDIxMjExQTBEMDAyRDAKKzowQzE0NTgwMDc1NkUwMDc1NkYwMUMwMDIxMjExNDREMEM3Cis6MDQxNDY0MDAwMkVBNzAxQTBFCis6MEQxNDY4MDA3NUYwMTFFNTc1QTRGQTI0MDBGQUU0MzQxOEJCCis6MDkxNDc1MDBGQjhBNzA4QjcxNzU3MjAxMTI4MworOjA0MTQ3RTAwMTE3NTgwMzYyRQorOjAyMTQ4MjAwN0EwMEVFCis6MDMxNDg0MDBCQTEwMDA5QgorOjAyMTQ4NzAwNTAyRkU0Cis6MEQxNDg5MDBFQTI0MDBGNTgyRTQzNDE5RjU4M0UwRkJFNTY4Cis6MDQxNDk2MDA3NUI1MDMxQjBBCis6MEUxNDlBMDA3NUYwMTFFQUE0RkIyNDAwRkJFNDM0MThGQzhCNkYKKzowOTE0QTgwMDcwOEM3MTc1NzIwMUMwMDIxMjEyCis6MDQxNEIxMDAxMTc1RDAwMkRGCis6MDMxNEI1MDAwQTgwQ0NERQorOjAxMTRCODAwMjIxMQorOjA2MTRCOTAwNTA3MjZGNjcyMDAwNzUKKzowRTE0QkYwMEM4QzBFMEM4QzBFMEU1RjA2MDBCMTQ2MDBGMTQ3OAorOjA3MTRDRDAwNjAxMTE0NjAxMjgwMTU4QworOjA3MTRENDAwRDBFMEE4ODJGNjgwMEVCMworOjA1MTREQjAwRDBFMEYwODAwOUUzCis6MDQxNEUwMDBEMEUwODAwNUQzCis6MDUxNEU0MDBEMEUwQTg4MkYyMzcKKzowNDE0RTkwMEM4RDBFMEM4QkYKKzowMTE0RUQwMDIyREMKKzowRTE0RUUwMEM4QzBFMEU1RjA2MDBEMTQ2MDBGMTQ2MDBGMTQyQworOjA2MTRGQzAwNjAxMDc0RkY4MDBGNzgKKzowNTE1MDIwMEE4ODJFNjgwMEE0QQorOjAzMTUwNzAwRTA4MDA3N0EKKzowNDE1MEEwMEU0OTM4MDAzRTMKKzowMzE1MEUwMEE4ODJFMkNFCis6MDQxNTExMDBGOEQwRTBDODY2Cis6MDExNTE1MDAyMkIzCis6MDAwMDAwMDFGRgorCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgQmF5Q29tIEdtYkgKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UKKyAqIGNvZGUgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIGNvbW1lbnQgd2l0aG91dAorICogbW9kaWZpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZHNwNTZrL2Jvb3RzdHJhcC5hc20gYi9maXJtd2FyZS9kc3A1NmsvYm9vdHN0cmFwLmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGQ4OTE5Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZHNwNTZrL2Jvb3RzdHJhcC5hc20KQEAgLTAsMCArMSw5OCBAQAorOyBBdXRob3I6IEZyZWRlcmlrIE5vcmluZyA8bm9yaW5nQG5vY3Jldy5vcmc+Cis7Cis7IFRoaXMgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCis7IExpY2Vuc2UuICBTZWUgdGhlIGZpbGUgQ09QWUlORyBpbiB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhpcyBhcmNoaXZlCis7IGZvciBtb3JlIGRldGFpbHMuCisKKzsgRFNQNTZrIGxvYWRlcgorCis7IEhvc3QgSW50ZXJmYWNlCitNX0JDUiAgIEVRVSAgICAgJEZGRkUgICAgICAgICAgIDsgUG9ydCBBIEJ1cyBDb250cm9sIFJlZ2lzdGVyCitNX1BCQyAgIEVRVSAgICAgJEZGRTAgICAgICAgICAgIDsgUG9ydCBCIENvbnRyb2wgUmVnaXN0ZXIKK01fUEJERFIgRVFVICAgICAkRkZFMiAgICAgICAgICAgOyBQb3J0IEIgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXIKK01fUEJEICAgRVFVICAgICAkRkZFNCAgICAgICAgICAgOyBQb3J0IEIgRGF0YSBSZWdpc3RlcgorTV9QQ0MgICBFUVUgICAgICRGRkUxICAgICAgICAgICA7IFBvcnQgQyBDb250cm9sIFJlZ2lzdGVyCitNX1BDRERSIEVRVSAgICAgJEZGRTMgICAgICAgICAgIDsgUG9ydCBDIERhdGEgRGlyZWN0aW9uIFJlZ2lzdGVyCitNX1BDRCAgIEVRVSAgICAgJEZGRTUgICAgICAgICAgIDsgUG9ydCBDIERhdGEgUmVnaXN0ZXIKKworTV9IQ1IgICBFUVUgICAgICRGRkU4ICAgICAgICAgICA7IEhvc3QgQ29udHJvbCBSZWdpc3RlcgorTV9IU1IgICBFUVUgICAgICRGRkU5ICAgICAgICAgICA7IEhvc3QgU3RhdHVzIFJlZ2lzdGVyCitNX0hSWCAgIEVRVSAgICAgJEZGRUIgICAgICAgICAgIDsgSG9zdCBSZWNlaXZlIERhdGEgUmVnaXN0ZXIKK01fSFRYICAgRVFVICAgICAkRkZFQiAgICAgICAgICAgOyBIb3N0IFRyYW5zbWl0IERhdGEgUmVnaXN0ZXIKKworOyBTU0ksIFN5bmNocm9ub3VzIFNlcmlhbCBJbnRlcmZhY2UKK01fUlggICAgRVFVICAgICAkRkZFRiAgICAgICAgICAgOyBTZXJpYWwgUmVjZWl2ZSBEYXRhIFJlZ2lzdGVyCitNX1RYICAgIEVRVSAgICAgJEZGRUYgICAgICAgICAgIDsgU2VyaWFsIFRyYW5zbWl0IERhdGEgUmVnaXN0ZXIKK01fQ1JBICAgRVFVICAgICAkRkZFQyAgICAgICAgICAgOyBTU0kgQ29udHJvbCBSZWdpc3RlciBBCitNX0NSQiAgIEVRVSAgICAgJEZGRUQgICAgICAgICAgIDsgU1NJIENvbnRyb2wgUmVnaXN0ZXIgQgorTV9TUiAgICBFUVUgICAgICRGRkVFICAgICAgICAgICA7IFNTSSBTdGF0dXMgUmVnaXN0ZXIKK01fVFNSICAgRVFVICAgICAkRkZFRSAgICAgICAgICAgOyBTU0kgVGltZSBTbG90IFJlZ2lzdGVyCisKKzsgRXhjZXB0aW9uIFByb2Nlc3NpbmcKK01fSVBSICAgRVFVICAgICAkRkZGRiAgICAgICAgICAgOyBJbnRlcnJ1cHQgUHJpb3JpdHkgUmVnaXN0ZXIKKworICAgICAgICBvcmcgICAgIFA6JDAKK3N0YXJ0ICAgam1wICAgICA8JDQwCisKKyAgICAgICAgb3JnICAgICBQOiQ0MAorOyAgICAgICA7IFplcm8gMTYzODQgRFNQIFggYW5kIFkgd29yZHMKKzsgICAgICAgY2xyICAgICBBICMwLHIwCis7ICAgICAgIGNsciAgICAgQiAjMCxyNAorOyAgICAgICBkbyAgICAgICM2NCw8X2Jsb2NrMQorOyAgICAgICByZXAgICAgICMyNTYKKzsgICAgICAgbW92ZSAgICBBLFg6KHIwKSsgQixZOihyNCkrCis7X2Jsb2NrMSAgICAgICAgOyBaZXJvICgzMjc2OC01MTIpIFByb2dyYW0gd29yZHMKKzsgICAgICAgY2xyICAgICBBICM1MTIscjAKKzsgICAgICAgZG8gICAgICAjMTI2LDxfYmxvY2syCis7ICAgICAgIHJlcCAgICAgIzI1NgorOyAgICAgICBtb3ZlICAgIEEsUDoocjApKworO19ibG9jazIKKworICAgICAgICA7IENvcHkgRFNQIHByb2dyYW0gY29udHJvbAorICAgICAgICBtb3ZlICAgICNyZWFsLHIwCisgICAgICAgIG1vdmUgICAgI3VwbG9hZCxyMQorICAgICAgICBkbyAgICAgICN1cGxvYWRfZW5kLXVwbG9hZCw8X2NvcHkKKyAgICAgICAgbW92ZSAgICBQOihyMCkrLHgwCisgICAgICAgIG1vdmUgICAgeDAsUDoocjEpKworX2NvcHkgICBtb3ZlcCAgICM+NCxYOjw8TV9IQ1IKKyAgICAgICAgbW92ZXAgICAjPiRjMDAsWDo8PE1fSVBSCisgICAgICAgIGFuZCAgICAgIzwkZmUsbXIKKyAgICAgICAgam1wICAgICB1cGxvYWQKKworcmVhbAorICAgICAgICBvcmcgICAgIFA6JDdlYTkKK3VwbG9hZAorICAgICAgICBtb3ZlcCAgICM+MSxYOjw8TV9QQkMKKyAgICAgICAgbW92ZXAgICAjPjAsWDo8PE1fQkNSCisKK25leHQgICAgamNsciAgICAjMCxYOjw8TV9IU1IsKgorICAgICAgICBtb3ZlcCAgIFg6PDxNX0hSWCxBCisgICAgICAgIG1vdmUgICAgIz4zLHgwCisgICAgICAgIGNtcCAgICAgeDAsQSAjPjEseDAKKyAgICAgICAgamVxICAgICA8JDAKK19nZXRfYWRkcmVzcworICAgICAgICBqY2xyICAgICMwLFg6PDxNX0hTUixfZ2V0X2FkZHJlc3MKKyAgICAgICAgbW92ZXAgICBYOjw8TV9IUlgscjAKK19nZXRfbGVuZ3RoCisgICAgICAgIGpjbHIgICAgIzAsWDo8PE1fSFNSLF9nZXRfbGVuZ3RoCisgICAgICAgIG1vdmVwICAgWDo8PE1fSFJYLHkwCisgICAgICAgIGNtcCAgICAgeDAsQSAjPjIseDAKKyAgICAgICAgamVxICAgICBsb2FkX1gKKyAgICAgICAgY21wICAgICB4MCxBCisgICAgICAgIGplcSAgICAgbG9hZF9ZCisKK2xvYWRfUCAgZG8gICAgICB5MCxfbG9hZAorICAgICAgICBqY2xyICAgICMwLFg6PDxNX0hTUiwqCisgICAgICAgIG1vdmVwICAgWDo8PE1fSFJYLFA6KHIwKSsKK19sb2FkICAgam1wICAgICBuZXh0Citsb2FkX1ggIGRvICAgICAgeTAsX2xvYWQKKyAgICAgICAgamNsciAgICAjMCxYOjw8TV9IU1IsKgorICAgICAgICBtb3ZlcCAgIFg6PDxNX0hSWCxYOihyMCkrCitfbG9hZCAgIGptcCAgICAgbmV4dAorbG9hZF9ZICBkbyAgICAgIHkwLF9sb2FkCisgICAgICAgIGpjbHIgICAgIzAsWDo8PE1fSFNSLCoKKyAgICAgICAgbW92ZXAgICBYOjw8TV9IUlgsWToocjApKworX2xvYWQgICBqbXAgICAgIG5leHQKKwordXBsb2FkX2VuZAorICAgICAgICBlbmQKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2RzcDU2ay9ib290c3RyYXAuYmluLmloZXggYi9maXJtd2FyZS9kc3A1NmsvYm9vdHN0cmFwLmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzM2YyMWYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9kc3A1NmsvYm9vdHN0cmFwLmJpbi5paGV4CkBAIC0wLDAgKzEsMjYgQEAKKzoxMDAwMDAwMDBDMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzoxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTAKKzoxMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAKKzoxMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAKKzoxMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKKzoxMDAwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKKzoxMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAKKzoxMDAwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKKzoxMDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzAKKzoxMDAwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzoxMDAwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAKKzoxMDAwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAKKzoxMDAwQzAwMDYwRjQwMDAwMDA0RjYxRjQwMDAwN0VBOTA2MkU4MDAwNUQKKzoxMDAwRDAwMDAwNDcwN0Q4ODQwNzU5ODQwOEY0QTgwMDAwMDQwOEY0RUUKKzoxMDAwRTAwMEJGMDAwQzAwMDBGRUI4MEFGMDgwMDA3RUE5MDhGNEEwNTIKKzoxMDAwRjAwMDAwMDAwMTA4RjRCRTAwMDAwMDBBQTk4MDAwN0VBRDA4REYKKzoxMDAxMDAwMDRFMkI0NEY0MDAwMDAwMDM0NEY0NDUwMDAwMDEwRUEwMEYKKzoxMDAxMTAwMDAwMEFBOTgwMDA3RUI1MDg1MDJCMEFBOTgwMDA3RUI4OEQKKzoxMDAxMjAwMDA4NDYyQjQ0RjQ0NTAwMDAwMjBBRjBBQTAwN0VDOTIwQ0MKKzoxMDAxMzAwMDAwNDUwQUYwQUEwMDdFRDAwNkM2MDAwMDdFQzYwQUE5QzUKKzoxMDAxNDAwMDgwMDA3RUM0MDg1ODZCMEFGMDgwMDA3RUFEMDZDNjAwQjEKKzoxMDAxNTAwMDAwN0VDRDBBQTk4MDAwN0VDQjA4NThBQjBBRjA4MDAwNTMKKzoxMDAxNjAwMDdFQUQwNkM2MDAwMDdFRDQwQUE5ODAwMDdFRDIwODU4NjMKKzowNzAxNzAwMEVCMEFGMDgwMDA3RUFERjgKKzowMDAwMDAwMUZGCisvKiBEU1A1NjAwMSBib290c3RyYXAgY29kZSAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZWRnZXBvcnQvYm9vdC5IMTYgYi9maXJtd2FyZS9lZGdlcG9ydC9ib290LkgxNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmY4ZTkxCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZWRnZXBvcnQvYm9vdC5IMTYKQEAgLTAsMCArMSwyOSBAQAorOjAwMDQwMDAwMDAwMTBDMDAwMkVECis6MDAwMjAwMDAwNDAwRkZGQgorOjAwMDYwMDAwMDAwMjAwODAwMjAwMDM3MworOjAwMDMwMDBCMDAwMjAwMEJFNQorOjAwMDMwMDEzMDAwMjAxQjgyRgorOjAwMDMwMDFCMDAwMjAwMUJDNQorOjAwMDMwMDIzMDAwMjAwMjNCNQorOjAwMDMwMDJCMDAwMjAwMkJBNQorOjAwMDMwMDMzMDAwMjAwMzM5NQorOjAwMDMwMDNCMDAwMjAwM0I4NQorOjAwMDMwMDQzMDAwMjAxQkRGQQorOjAwMDMwMDRCMDAwMjAxRDBERgorOjAwMDMwMDUzMDAwMjAxMjE4NgorOjAwMDMwMDdCMDAwMjAwN0IwNQorOjAxNjYwMDgwMDA3RUIwMDA3QUIzM0ZGMjdFRjgwMDIzN0UwMDAxN0UxMDAwMTIwNzVGNjkyMDAwMEFCRTI0MDAwMDc4MDU3NTkwMEQ4MDAzNzU5MDFERDJCNTdFMDAwMEE1RDhGRDc1QTgwMDc1QjEwMEE5RDU4N0NBMjkxMjA5Q0MxMjA5QTBGNTA5N0FBMTIwMTIwMUU2REEyOUE5RDBDNzdFMDAwNTdBMDFGMTc1RTExMEE5RDdGNEE5RDdFNEE1RDhGMTc1RjEwMDc1RTEzRjc1QTIwMzc1QTMwMDc1QzAwMDc1QzEwMEE5RDFCMUE5RDBCMUE5RDVEM0QyQUZFNDdFMDQyODAwOERFRjFCMDQ3OEZBMDRBOTM0RDMwMzMwRTBFRUJFMjQwMDAwNzgwNTYzOTAzMDgwRTNCMjk1ODBERkJFQjAwMjIyQzBEMEE5MjBERjBGQTkzMURGMDMwMjAxQjU3NTA4MDExMjA4MzM4MEZFNzUwOEZFMTIwODMzNzVBODAwN0VCMzNGRjIzMEUwNEIzMDAxNDZDMjkyN0UyNDgwMDA3RTExMDk3NDA4MTlCMjAwMTA3NDBFMTlCMjAwMDQyRTI0MDEwMEE1RDlFRDdFMjQ4MDAwN0UxMTA5RTRENUUwRkQwOUIyMDAwODIwRTAwQTA5QjIwMDAwMDlCMjAwMTg4MEVCMkUyNDAxMDBBNUQ5RTQ0MzkwMzBEMkFBODAwNUQyQUE0MzkwMzREMkFGQTlEMTg3MDAwMDAwMDAwMEE5MTFERjAzQTlEMkRGNzUwOEZGMTIwODMzQzBEMUNBMDJGRkNBMDY4MzAwMzJEMEQwMzJDMjhCQzJBQTMyNzUwODA4MTIwODMzQTlDMEIxQTlDNUQzQTlDNkQzQTlEMkIxMzJDQUI4NzUwODAyMTIwODMzRTVDMDU0MDM2ODA1MTIwMUVFODBGNURBQjgzMkFFCis6MDAwMTFCQ0EwMDAwMUEKKzowNjREMDFFNjAwRTQ3QUIzM0ZGMTAyMDI2M0NBMEJDQTFCQ0EyQkNBM0JDQTRCQ0E1QkNBNkJDQTdCQ0FFQkMwRjE3RUIzMDEyQkI0MDAwMjgwMTlCNDAxMTYzMEMwMDg3NUYxMDAxMjAyNEQ4MDFGMzBDMTFDNzVGMTAwMTIwMkRFODAxNDMwQzEwODc1RjEwMDEyMDJERTgwMDkzMEMwMDY3NUYxMDAxMjAyNEREMEYxREFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjJDMkMwN0VCMzAxMkJCNDAyMDcxMjAyNkYwMjAyNjMyMkI0MDFGQzAyMDJBOTdFMDAwMDdBMDMwMTJCN0EwMzAxMkMyMjdFQjMwMTIzNTQ2MDYwMDVCNDQwMTU4MDEzN0VCMzAxMjRCNDA1MEM3NTA4NzExMjA4MzM3RUIzMDEyNkY1OEYyMjc1RjYwMDIyQkU1NzAxMjkyODA0N0U1NzAxMjk3QTBGMDEyRTdBNTcwMTMyMDIwMkE5N0VFRjAxMkU3RUY3MDEzMjdFMDcwMTMyNEQwMDY4MjE3RTAwMDA3RUVCQjBGNUYzQTNBNTA4MUJGNDY4MDRBNUI4MDhGMDdBRUYwMTJFN0FGNzAxMzI3NTA4MDYxMjA4MzM3QTAxRjYyMkMyQzE3NTA4MDMxMjA4MzNBOTM2RTIxNkU1RjU1NEMwNjgwN0E5RDdGNEE5MjdGNEZDNTNFMTNGNDNGMjg4MDIwMzU1N0VCMzAxMkNCNDAyMEZBOUQ0RTQ3RUIwMDA3QUIzMDEyQzdBQjMwMTJCMjJCNDAxMzk3RTIxRTY3QzMyN0UxMzAxMkQyQzIxN0EyMzAxMkQ3RTAwMDAyRTA0MDEzNEU1RTM3QTA5QjAwQjA0QTVEQkY2QTlENEU0NzUwODcwMTIwODMzN0VCMzAxMkQ3RUEzMDEyQUJDQUI3ODAzMTIwM0VDMjIwMjA3NTVFNUU2QjQwODY1QTlDNEUyN0UwMUUzN0UxMUUzN0UzMUUzN0UyMUUzN0U1MUUzN0U0MUUzN0U3MUUzN0U2MUUzN0EwRjAxMjM3QTFGMDEyNzc1MDgwNDEyMDgzMzdBMDEwODEyMDgzMzdBMTEwODEyMDgzMzdBMjEwODEyMDgzMzdBMzEwODEyMDgzMzdBNDEwODEyMDgzMzdBNTEwODEyMDgzMzdBNjEwODEyMDgzMzdBNzEwODEyMDgzM0E5RDRFNEE5RDdGNEE5QzZFMjEyMDNDMDIyNkQwMDdFMTQwMTAyN0EwNzAxMzI3QTAzMDEyRDdFQjMwMTIzMjBFNzBGN0EyMzAxMkM3QTMzMDEyQkJFMDcwMTI5NjgwOTIyN0EzMzAxMkM3QTIzMDEyQjdFQjMwMTIzNTRFMzIzMjMzMEUwMDJEMkU1MzBFNzAyRDJFNDMwRTUwNjMwRTQwMzAyMDc1NTU0M0VGNUYwMDM1NDFGQzMyNUYwOTAwNDE4NzU4NEZGNzMwMjA1NkMwMjA0NjAwMjA2MDkwMjA2MjQwMjA1MDUwMjA0QzYwMjA2M0QwMjA2M0QwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDAwMjA2NDYwMjA2RkEwMjA2NDMwMjA2NDMwMjA2NDMwMjA2NDMwMjA2NDMwMjA2NDM3RUIzMDEyNEI0MDYyQTdFQjMwMTI1NjA1NjdDMEI3RTEzMDEyNjdFMTcwMTI3NzUwODcyMTIwODMzN0EwMTA4MTIwODMzN0ExMTA4MTIwODMzMTIwNzVGNDAzNTAyMDI5NEI0MDgxMDc1MDg3NDEyMDgzMzdFQjMzRkYxRjVGMzc1RjYwMTIyQjQwMDFDNzUwODc1MTIwODMzN0VCMzNGRjIzMEUwMDU3NUYzMDI4MDAzNzVGMzAwNzVGMzAwNzVGNjAyMjIwMjA3NTU3RUIzMDEyNEI0MDAzNTc1MDg3NjEyMDgzMzdFQjMwMTI4NTQwRkY1RjE3RUIzMDEyODIwRTcwOUU1RTEzMEU3MEQ3NDAxODAwQkU1RTEzMEU2MDQ3NDAxODAwMjc0MDA1M0YxODBGNUYzNzVGMzAwNzVGNjAyMjIwMjA3NTVDMEYxN0VCMzAxMjg1NDBGNDJGMTdFQjMwMTI2QjQwMDQ1N0VCMzAxMjRCNDAxMjQ3NTA4NzcxMjA4MzM3RUIzMDEyODU0MEY3ODA1NTNFMTNGODAzNzdFQjMwMTI4MjBFNzA1NTNFMTdGODAyQjUzRTFCRjgwMjZCNDAzMTc3NTA4NzgxMjA4MzM3RUIzMDEyODIwRTcwNTQzRTE4MDgwMTE0M0UxNDA4MDBDNDNFMUMwRDBGMTc1MDgwNzEyMDgzMzIyRDBGMTAyMDI5MDdFQjMwMTI0QjQwOTIzNzUwODc5MTIwODMzN0VCMzAxMjZCRUIzM0ZGMTY4MTFDQUI4QzBGMTEyMDExREQwRjFEQUI4NTA3NjdBQjMzRkYxODA2REI0MDUwODc1MDg3QTEyMDgzMzgwNjJCNDAzMTk3NTA4N0IxMjA4MzM3RUIzMDEyNkI0MDE1NTdFQjMzRkYyNDQwMTdBQjMzRkYyODA0NkI0MDExOTc1MDg3QzEyMDgzMzdFQjMwMTI2QjQwMTM5N0VCMzNGRjI1NEZFN0FCMzNGRjI4MDJBQjQwNzJBN0VCMzAxMjU2MDI0N0MwQjdFMTMwMTI2N0UxNzAxMjc3NTA4NzMxMjA4MzM3QTAxMDgxMjA4MzM3QTExMDgxMjA4MzMxMjA3OEI0MDAzMDIwMjkwMDIwNzU1N0VCMzAxMjRCNDBCRjY3NTA4N0QxMjA4MzM3RUIzMDEyNjdFQTMwMTI4NENBQjc4RTQ4MERGN0VCMzAxMjRCNDBBREI3NTA4N0UxMjA4MzM3RUIzMDEyNjcwQ0ZGNUYzNzVGNjAxMjIwMjA3NTUwMjA3NTUwMjA3NTU3RUIzMDEyNEI0MDQyMDc1MDhDMzEyMDgzMzdFMDQwMDAxN0UxNzAxMjU3RTE4MDEzNDdBMUMwMDAwN0U0NzAxMjkxMjA4M0YwMjA2RjRCNDA2M0E3NTA4QzExMjA4MzM3RTU4MDAwMDdBNUMwMEZFN0RDQTdFRDcwMTI1N0U3ODAxMzQ3QTdDMDAwMDdFNzcwMTI5NzUwOEMxMTIwODMzQzBBOEMwODdDMkFGQTlENTg3MTIwOEQ2RDA4N0QwQTg0MDRGODA0QUI0MDAxQ0MyQUZBOUQ1ODcxMjAyOTBFNDhERUY4REVGOERFRkQ1RTBGN0MwRDFDQTAyRkZDQTA2MDAwMDMyQjQwOTEyN0U1NzAxMjU0RDU1NjgwNUE5RDJCMTgwMDNBOUMyQjE4MDE2QjQwNzE2QzJBRjdFMDcwMTI3N0UxNzAxMjVDMEQxQ0ExOENBMzhDQTI4MzIwMjAyOTAwMjA3NTU3RUIzMDEyNEI0MDMxNTc1MDhDMjEyMDgzMzdFMDQwMDAxN0UxNzAxMjU3RTU3MDEyOTAyMDI5NEI0MDUzOTc1MDhDMDEyMDgzM0MwQThDMDg3QzJBRkE5RDU4NzdFMDgwMTM0N0EwQzAwMDA3RTI0MDBGRTdFMzcwMTI1N0U0NzAxMjkxMjA4M0ZEMDg3RDBBODdFMDgwMTM0N0EwQzAwMDA3RTU3MDEyOTAyMDI5NDAyMDc1NTc1MDgwNzEyMDgzMzQzRTFDMDIyQzBBOEMwODdDMkFGQTlENTg3MTIwN0NBNDAxOTdFMDgwMTM0N0EwQzAwMDBDQTBCQ0E0OTEyMDgzRkRBNTlEQTBCRDA4N0QwQThDMzIyRDA4N0QwQTgyMkMwQThDMDg3QzJBRkE5RDU4NzEyMDdDQTQwMkI3RTU4MDAwMDdBNUMwMEZFN0Y2MTdFNzgwMTM0N0E3QzAwMDA3RTc3MDEyOUJENzQ3ODExNzUwOEMxMTIwODMzMTIwOEQ2NDAwNkQwODdEMEE4QzMyMkQwODdEMEE4RDMyMjdFMjQwMEZFN0UzNDdGQ0EwQjFBNTBDNUYwN0Q2MjdENzU3RDg3N0UzNDdGMDM3RTFCQjBCQzBCNTA0OTNFMDAzRTAwMEE1MDJENzUwQjNBMzA2OTUzMDAwMkJEMzg1MDAyMkQzOEJDMUI1MDMwM0UxMDNFMTAwQTUxMkQzNTY5NDEwMDAyMEIxQTMwQkQzODUwMDIyRDM4QkU0NEZGRkY3ODA1N0UxQjkwMEE0OTRENDQ2ODBDQkU0NDAwRkYyODA0N0U0NDAwRkZDMzIyRDMyMjM0Cis6MDA0MDdGQzAwMDQwMDEwMjAwQ0ExQjAxMEMwMjAwMDA3QzAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMTdGMDAwMDAwMDAwMDAwNUQKKzoxMzk3MDgzMzAwQ0EwODdFMDEwODdBMDMzRkYwREEwODIyODA1MDBCMUE2MDBCMzUwQjFBNzAwQjM1MEIxQTgwMEIzNTBCMUE5MDBCMzUwQjFBQTAwQjM1MEIxQUIwMEIzNTBCMUFDMDBCMzUwQjFBRDAwQjM1MUIwQTYwMEIxNTFCMEE3MDBCMTUxQjBBODAwQjE1MUIwQTkwMEIxNTFCMEFBMDBCMTUxQjBBQjAwQjE1MUIwQUMwMEIxNTFCMEFEMDBCMTU5RTQ0MDAxMDUwQUEyRTQ0MDAxMDY4MEU3RTFCQzA3QTBCQzAwQjE0MEIzNDFCNDQ3OEYyMjI3RjZGN0ZGMDFCRkM3QzU0N0QzMjgwMDhDQTFCQ0ExQkNBMUJDQTFCOUU0NDAwMTA1MEYyMkU0NDAwMTA2ODA2Q0E0ODFCNDQ3OEZBN0ZGNjg5RTRDQTZCNUVENDAwM0Y2ODIwN0U4NDAwNDA5RDhEREE2QkJEODczODE2Q0E3OTdENzgxMjA5MDBEQTc5NDAwODlENzg2ODAyODAwNUMyRDcyMkRBNkI0MzkwMzA3NEFBMzlCNTU1NTU3NDU1MzlCNTJBQUE3NEEwMzlCNTU1NTU3RTA0MDA0MDlENzA1MDA2MkQ3MDdEMDc2RDc3N0MzMTdFN0IwMDdBNkIwMDBCN0MwQjZDQTVEOUYzN0YxNjFCMUM3RTU0MjcxMDdFMUIxMEJDMTA2ODA2MUI1NDc4RjU4MDJDNkQwMDdDMjA3RjE2OUYxMDdGMjc5RjIwN0UyQjAwN0UxQjEwQkMwMTc4MTYwQjJDMEIxQ0E1REJFRjdDQjYyMEUwMDM2MzkwMzA0RDc3Nzg5M0MyRDcyMkQyRDcyMjAwMDQwMDA0MDAwMDA2MDQwMjA0MDAwMjAxMDQwMTAyMDAwMDAwMDAwMDAwMDAwMDAyMDIwMjAyMDIwNDAwMDgxMDAyMTAwNDAyMDgwMDAxMDEwODdFMTg3RkJEN0ExQzAwRkYwQjFBMDBCRTEwMTQzODFBMEE1MTIzN0UxODA5NzY3QTFDMDBGRjJEMzUwQjFBNTA2MDA4QTVCODAyMDM0RUEwMDgyMjgwRkU3RUU4N0ZCRjdBRUMwMEZGRTBGNTIyNTRDMDY4MTY3RUU4N0ZCRTdBRUMwMEZGRTA2MDBDMTIwOUEwRjUwOTdBQTEyMDAyMEYwQTIyQzI5NUQyOTQxMjE5RkI1MzkwQ0YxMjE5RkI4MEYxMEQwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBEMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEE0NTY0Njc2NTcwNkY3Mjc0MkYzNDIwMkQyMDQ4NjE3MjY0Nzc2MTcyNjUyMDQ0Njk2MTY3NkU2RjczNzQ2OTYzNzMyQzIwNTI2NTc2MjAzMTJFMzAzMDNCMjA0MzZGNzA3OTcyNjk2NzY4NzQyMDMxMzkzOTM4MjA0OTZFNzM2OTY0NjUyMDRGNzU3NDIwNEU2NTc0Nzc2RjcyNkI3MzBEMEEwMDUwNjE3MzczMDA0NjQxNDk0QzIwMjEyMTAwNTA2MTczNzMyMDIwMjAyMDAwNDY0MTQ5NEMyMDIxMjEyMDAwMEQwQTQ0NjU3NDY1NjM3NDIwNTI2MTZEM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNTI2MTZEMjA1NDY1NzM3NDNBMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAwMDBEMEE0MTY0NjQ3MjY1NzM3MzIwNjI2OTc0MjAzMDJEMzEzNDIwNzQ2NTczNzQzQTIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTU3NzI2Rjc0NjUyMDQxNjQ2NDcyNjU3MzczM0EyMDMwMzAzQTAwMjAyMDc3Njk3NDY4MjA2NDYxNzQ2MTNBMjAwMDJDMjA2MTZFNjQyMDcyNjU2MTY0M0EyMDAwMEQwQTRGNkU2NTIwNkY3MjIwNjI2Rjc0NjgyMDZGNjYyMDc0Njg2NTIwNjY2RjZDNkM2Rjc3Njk2RTY3MjA0MTY0NjQ3MjY1NzM3MzIwNjI2OTc0NzMyMDZDNjk3Mzc0NjU2NDIwNjE3MjY1MjA3MzY4NkY3Mjc0NjU2NDBEMEE3NDZGMjA3MzZGNkQ2NTc0Njg2OTZFNjczQTIwMDAyMDYxNkU2NDIwMDAwRDBBNDQ2NTc0NjU2Mzc0MjA1NTYxNzI3NDNBMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAwMDBEMEE1MzYzNzI2MTc0NjM2ODIwNTA2MTY0MkM0NjY5NDY2RjIwNDU2RTYxNjI2QzY1MjAyNjIwNTI1MzU0M0EyMDAwMEQwQTBBMjAyMDIwNTU2MTcyNzQyMDU0NjU3Mzc0NzMyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwNTA2RjcyNzQzMTIwMjAyMDUwNkY3Mjc0MzIyMDIwMjA1MDZGNzI3NDMzMjAyMDIwNTA2RjcyNzQzNDBEMEEyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMDAwRDBBNTA2RjcyNzQyMDQ0NjU2MzZGNjQ2NTcyM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNDQ2OTY3Njk3NDYxNkMyMDRDNkY2RjcwNjI2MTYzNkIzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNDE2RTYxNkM2RjY3MjA0QzZGNkY3MDYyNjE2MzZCM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNTI1ODQ0MkM1NDU4NDQyMDc0NkYyMDUyNTQ1MzJDNDM1NDUzMkM1MjQ5MjA1MzY4NkY3Mjc0M0EyMDIwMjAyMDIwMDAwRDBBNTI1ODQ0MkM1NDU4NDQyMDc0NkYyMDQ0NTQ1MjJDNDQ1MzUyMkM0MzQ0MjA1MzY4NkY3Mjc0M0EyMDIwMjAyMDIwMDAwRDBBNTI1NDUzNUI0MzU0NTMyQzUyNDk1RDIwNzQ2RjIwNDQ1NDUyMkM0NDUzNTIyQzQzNDQyMDUzNjg2RjcyNzQzQTIwMDAwRDBBNTI1NDUzNUI0MzU0NTMyQzQzNDQ1RDIwNzQ2RjIwNDQ1MzUyMkM1MjQ5MjA1MzY4NkY3Mjc0M0EyMDIwMjAyMDIwMDAwRDBBNDQ1NDUyNUI0NDUzNTIyQzQzNDQ1RDIwNzQ2RjIwNTI1NDUzMkM0MzU0NTMyQzUyNDkyMDUzNjg2RjcyNzQzQTIwMDAwRDBBNDQ1NDUyMjA3NDZGMjA0MzU0NTMyQzQzNDQyMDUzNjg2RjcyNzQzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNTI1NDUzMjA3NDZGMjA0MzU0NTMyQzUyNDkyMDRDNkY2RjcwNjI2MTYzNkIzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNTI1NDUzMjA3NDZGMjA0MzU0NTMyQzQzNDQyMDRDNkY2RjcwNjI2MTYzNkIzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNDQ1NDUyMjA3NDZGMjA0NDUzNTIyQzQzNDQyMDRDNkY2RjcwNjI2MTYzNkIzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBMEEyMDIwMjA0NTIwNTIyMDUyMjA0RjIwNTIyMDIxMjEyMTJDMjA0NTIwNTIyMDUyMjA0RjIwNTIyMDIxMjEyMTIwMkMyMDQ1MjA1MjIwNTIyMDRGMjA1MjIwMjEyMTIxMEQwQTBBNDQ2OTYxNjc2RTZGNzM3NDY5NjM3MzIwNkU2Rjc3MjA3NzY5NkM2QzIwNjU2RTc0NjU3MjIwNjEyMDY0NjU2Mjc1NjcyMDZDNkY2RjcwMjA2RjY2MjA3NDY4NjUyMDY2Njk3MjczNzQyMDY0NjU3NDY1NjM3NDY1NjQyMDY1NzI3MjZGNzIyRTAwMEQwQTBBNEU2RjIwNDg2MTcyNjQ3NzYxNzI2NTIwNjU3MjcyNkY3MjczMjA2NDY1NzQ2NTYzNzQ2NTY0MkUwRDBBMDA0MzZGNzA3OTY5NkU2NzIwNjM2RjY0NjUyMDY2NzI2RjZEMjA0RDYxNzM3NDY1NzIyMDc0NkYyMDUzNkM2MTc2NjUyNzczMjA0NTQ1NzA3MjZGNkQyMDJFMkUyRTAwNDQ2RjZFNjUwRDBBMEEyRDNFMjA1NDc1NzI2RTIwNzU2RTY5NzQyMDZGNjY2NjJDMjA2NDY5NzM2MzZGNkU2RTY1NjM3NDIwNjM2MTYyNkM2NTIwNjE2RTY0MjA3Mjc1NkUyMDczNzQ2MTZFNjQ2MTZDNkY2RTY1MjA2NDY5NjE2NzZFNkY3Mzc0Njk2MzczMkUwMEMyQUZDMjA5QzIwQTc1OTAwRDIwMTcwMkQyQjU0MzkwMzA2QzAwN0UxMDAzMTIwRjM4N0U2ODBBMDE3QTZDMDBGRjEyMUE5MzBCMDAzMEI0MDI4MDI0MDIxQjNDMjAwOTFEQzI5NEQyOTUxMjE5RkI1MzkwQ0YxMjE5RkJDMjk1RDI5NDEyMTlGQkE1RDlFNjQzOTAzMDEyMTlGQjIyN0U2ODBBOTQ3QTZDMDBGRjEyMUE5MzdFRTQxMDAwN0U0MDU1N0FFOTQwMEJFNDdFNTBBQTdBRTk1MDFCRTRCRUU5NDA2ODE5N0U2ODBBN0E3QTZDMDBGRjEyMUE5MzEyMUEwODMwMDkxMzdBRTk0MDdFRTkxMDgwRjg3RTY4MEE3NTdBNkMwMEZGMTIxQTkzMEIwMDdFNjgwQUQ4N0E2QzAwRkYxMjFBOTM3RTc4MDAwMDdFNzAwRTdFQTRGRkZGN0VCNEJGRkY3RENCMEVDNDdEREM1RERCNkNCQjdERkE1RUY0N0ZGRjdBN0JCMDBCQjA3REZCNUVGNDdGRkY3QTdCQjAwQkIwN0RGQzVFRjQ3RkZGN0E3QkIwMEJCMDdERkQ1RUY0N0ZGRjdBN0JCMDZDQkI3REZBNUVGNDdGRkZCRTdCQjA3ODQxMEJCMDdERkI1RUY0N0ZGRkJFN0JCMDc4MzQwQkIwN0RGQzVFRjQ3RkZGQkU3QkIwNzgyNzBCQjA3REZENUVGNDdGRkZCRTdCQjA3ODFBMEJCMEJFQzRGRkZFNzg5MjBFQjRBNURGOEI3RTY4MEE4MjdBNkMwMEZGMTIxQTkzODA3N0NBNUJDQTZCN0U2ODBBOEI3QTZDMDBGRjEyMUE5MzdFNjgwQjJBN0E2QzAwRkYxMjFBOTMwQTQ3MTIxQUM5N0U2ODBCNzk3QTZDMDBGRjEyMUE5MzZDNzdEQTZCQ0E2QjBCNzAwRUM0QkVDNEZGRkY3OEY2MUI3MDBBNDcxMjFBQzkxMjFBMDgzMDA5MzBEQTZCREE1QjZDQkI3RTc4MDAwMDdERkE1RUY0N0ZGRjdBN0JCMDdERkI1RUY0N0ZGRjdBN0JCMDdERkM1RUY0N0ZGRjdBN0JCMDdERkQ1RUY0N0ZGRjdBN0JCMDgwRDQ3RTY4MEFCNjdBNkMwMEZGMTIxQTkzMzAxNzBFN0U3ODA0MjA3QTdDMDAwMDdFNDQ3QkUwODAwQzdFNzgwMDAwN0E3QzAwMDE3RTQ0ODAwMDBCMDA3RTQwM0E3QzU0N0Y1NzdEODQ2QzY2N0E1QjUwMEI1QzBCNTBBNURFMDIwQjUwMUI4NDc4RjA3QzU0N0Y1NzdEODQ2QzY2QkU1QjUwNzgxQTBCNUMwQjUwQTVERTAyMEI1MDFCODQ3OEVFN0U2ODBBNzU3QTZDMDBGRjEyMUE5MzgwNEI3RjQ1N0U2ODBBN0E3QTZDMDBGRjEyMUE5MzdFNjgwQUZBN0E2QzAwRkYxMjFBOTM3RDRCMTIxQUM5N0U2ODBCMEY3QTZDMDBGRjEyMUE5MzZDODg3Qzk1MTIxQUM5N0U2ODBCMUQ3QTZDMDBGRjEyMUE5MzdFNEI5MDEyMUFDOTEyMUEwODMwMDkwNTdFNEI5MDgwRkI3RTY4MEI3RjdBNkMwMEZGMTIxQTkzMEIwMEQyOTI3RTI0ODAwMDA5QjIwMDA4QkVCMDAxNzgwQjA5QjIwMDE0QkVCMDYwNzgwMjgwMTc3RTY4MEE3QTdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTExMDlCMjAwMDg4MEZBN0U2ODBBNzU3QTZDMDBGRjEyMUE5MzdFNjgwQkExN0E2QzAwRkYxMjFBOTMwQjAwQzI5MjEyMTlFRTdFMjQ4MDAwN0VBMDU1MTlBMjAwMUM3RUIwMDExOUIyMDAwODA5QjIwMDFDQkNBQjc4MzcwOUIyMDAwODVFQjBDMEJFQjBDMDc4MkI3RUEwQUExOUEyMDAxQzZDQkIxOUIyMDAwODA5QjIwMDFDQkNBQjc4MTYwOUIyMDAwODVFQjBDMDc4MEQ3RTY4MEE3NTdBNkMwMEZGMTIxQTkzODAxQjdFNjgwQTdBN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5MEExOUEyMDAxQzA5QjIwMDFDODBGNjdFNjgwQkMzN0E2QzAwRkYxMjFBOTM3RTY4MEM0NTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDk3RUIwMDExOUIyMDAxQzJFMjQwMTAwMEJCMEE1RDlGMzdFMjQ4MDAwN0UxMTA5N0VCMDAxMEIwMDA5QTIwMDFDQkNBQjc4MTY3RTY4MEE4MjdBNkMwMEZGMTIxQTkzMkUyNDAxMDAwQkIwQTVEOUUyODAyNTdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTQ3RTI0ODAwMDdFMTEwOTA5QTIwMDFDMkUyNDAxMDBBNUQ5RjU4MEVDN0U2ODBDNjk3QTZDMDBGRjEyMUE5MzEyMTM4QTdFMjQ4MDAwN0UxMTA5MEIwMDc0MTAxOUIyMDAxMDEyMTMwMzJFMjQwMTAwQTVEOUVFN0U2ODBDOEQ3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMEU0MTlCMjAwMTAxMjEzMDMyRTI0MDEwMEE1RDlFRjMwMDAwMzAyMThCNzAyMTNCQjc0MDcxOUIyMDAwODEyMTlGQjA5QjIwMDAwMDlCMjAwMTQwOUIyMDAwMDA5QjIwMDE0MDlCMjAwMDAwOUIyMDAxNDA5QjIwMDAwMDlCMjAwMTRDMjBCN0VCMDU1MTIxMzY0N0VCMEFBMTIxMzY0N0VCMDAwMTIxMzY0N0VCMEZGMTIxMzY0MzAwQjBGN0U2ODBBOEI3QTZDMDBGRjEyMUE5MzEyMUEwODIyN0U2ODBBODI3QTZDMDBGRjEyMUE5MzIyMTlCMjAwMDAxMjE5RUUwOUEyMDAwMEJDQUI3ODAxMjIyMDA5MDNEMjBCMjIxMjFBMDgxOUIyMDAwMDEyMTlFRTA5QTIwMDAwODBGM0QyOTIxMjE5RUVDMjkyMTIxOUVFN0UyNDgwMDA3RTExMDk3NDgwMTlCMjAwMEM3RTU0MDAwMjE5QTIwMDA0MTlCMjAwMDA3NDAzMTlCMjAwMEMyRTI0MDEwMEE1RDlFMTIyN0U2ODBDQjE3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMDEyMTlFRTA5QjIwMDE4N0VBMDU1MTlBMjAwMDAxMjE5RUUwOUIyMDAxODVFQjAwNTc4MEQ3RTY4MEE4MjdBNkMwMEZGMTIxQTkzODAxQTdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5MDkxOUEyMDAwMDEyMTlFRTgwRjcyRTI0MDEwMEE1RDlCNjdFNjgwQ0Q1N0E2QzAwRkYxMjFBOTM3RTI0ODAwMDdFMTEwOTBCMDAxMjE5RUUwOUIyMDAxODdFQTA1NTE5QTIwMDAwMTIxOUVFMDlCMjAwMTg1RUIwMEE3ODBEN0U2ODBBODI3QTZDMDBGRjEyMUE5MzgwMUE3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTA5MTlBMjAwMDAxMjE5RUU4MEY3MkUyNDAxMDBBNUQ5QjYzMDA0MDMwMjE2OEM3RTY4MENGOTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDBBNzgzQzdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwMEE3ODE0N0U2ODBBODI3QTZDMDBGRjEyMUE5MzJFMjQwMTAwQTVEOTlFODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MEQ0MTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDA1NzgzQzdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwMDU3ODE0N0U2ODBBODI3QTZDMDBGRjEyMUE5MzJFMjQwMTAwQTVEOTlFODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTY3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MEQ4OTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwN0VBMDAyMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjA1MEJFQjA1MDc4MUY2Q0FBMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjA1MDc4MEQ3RTY4MEE4MjdBNkMwMEZGMTIxQTkzODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5MEY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjEyRTI0MDEwMEE1RDlBMjdFNjgwREQxN0E2QzAwRkYxMjFBOTM3RTI0ODAwMDdFMTEwOTBCMDAwOUIyMDAxODdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwQTBCRUIwQTA3ODFGNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwQTA3ODBEN0U2ODBBODI3QTZDMDBGRjEyMUE5MzgwMjA3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTBGN0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxMkUyNDAxMDBBNUQ5OUUwMjE4MkI3RTY4MEQxRDdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDA2NzgzQzdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwMDY3ODE0N0U2ODBBODI3QTZDMDBGRjEyMUE5MzJFMjQwMTAwQTVEOTlFODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MEQ2NTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDA5NzgzQzdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwMDk3ODE0N0U2ODBBODI3QTZDMDBGRjEyMUE5MzJFMjQwMTAwQTVEOTlFODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5RTY3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MERBRDdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwN0VBMDAyMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjA5MEJFQjA5MDc4MUY2Q0FBMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjA5MDc4MEQ3RTY4MEE4MjdBNkMwMEZGMTIxQTkzODAyMDdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5MEY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjEyRTI0MDEwMEE1RDlBMjAyMThCNzMwMTcwMzAyMTkzQkMyOEExMjE5MjI3RTI0ODAwMDdFMTEwOTZDQUExOUEyMDAwNDEyMTlFRTBCMDA3RUEwMDgxOUEyMDAxMDEyMTlFRTIwOEIzRTIwODkzQjdFQTAwODE5QTIwMDA0MDlBMjAwMTA0RUEwMDIxOUEyMDAxMDEyMTlFRTMwOEIyMzMwODkyMDA5QTIwMDEwNUVBMEZEMTlBMjAwMTAxMjE5RUU3RUEwMDAxOUEyMDAwNDEyMTlFRTIwOEIwNTIwODkwMjgwMUExMjFBMDgzMDA5MTQ3RUEwMDIxOUEyMDAxMDAwMDA1RUEwRkQxOUEyMDAxMDAwMDA4MEVDMkUyNDAxMDBBNUQ5ODkwMjE5M0IyMDE3RkExMjEzOEExMjE5MjI3RTI0ODAwMDdFMTEwOTBCMDAyMDg5MjY3RUEwRkYxOUEyMDAwNDEyMTlFRTdFQjA1NTE5QjIwMDAwMTIxOUVFMzA4OTBGN0VBMDAwMTlBMjAwMDQxMjE5RUUyMDg5MDI4MDI2MTIxQTA4MzAwOTIwN0VBMEZGMTlBMjAwMDQxMjE5RUU3RUIwNTUxOUIyMDAwMDEyMTlFRTdFQTAwMDE5QTIwMDA0MTIxOUVFODBFMDJFMjQwMTAwQTVEOUE4MDIxOTNCN0UyNDgwMDA3RTExMDk3RUEwMDgxOUEyMDAxMDEyMTlFRTJFMjQwMTAwQTVEOUVGMjIzMDBBMTk3RTY4MERGNTdBNkMwMEZGMTIxQTkzRDIwOTEyMTlFRTEyMTlFRTEyMTlFRTAyMEYxMDMwMTcxQzdFNjgwRTZGN0E2QzAwRkYxMjFBOTM3RTY4MEU5MTdBNkMwMEZGMTIxQTkzMTIxQjNDMDIxOUU2MEIwMDdFNzgxOUEwN0E3QzAwRkY3RjY3N0E2QzAwMDA3RTcwM0U3RTdCQjA3QTZCQjAwQjdDMEI2Q0E1REZGMzdFNzgxOUEwN0E3QzAwMDA4OTc4N0U3ODAwMDA3QTdDMDBGRTdFNjg3RkJGN0E2QzAwRkU3NEFBMzlCNzU1NTU3NDU1MzlCNzJBQUE3NEEwMzlCNzU1NTU2Qzk5N0E2QjkwN0U1NDI3MTA3RTZCODBCQzg5NjgwODFCNTQ3OEY1OEFGRjE5REU4QUZGMTlFNjEyMUEwODdFNkI4MDgwRkI3RTEwRkYxMjFBODU4MEY4Q0FGOTdFRjQwMEZGMUJGNDc4RkNEQUY5MjJDQUY5N0VGNDAwMDAxQkY0NzhGQ0RBRjkyMjIwMDkxOUQyMEExMjE5RkJDMjk1RDI5NDEyMTlGQjEyMTlGQjEyMTlGQjEyMTlGQjQzOTAzMDIyQ0EwQjdFMTAwMzdDMzA2QzIyMEIyMDlFMzAwQTUwRjkyRTMwMEIxQjIwNjgxODEyMTlGQjEyMTlGQjUzOTBDRjEyMTlGQjEyMTlGQjEyMTlGQjQzOTAzMEE1REFFODEyMTlGQjEyMTlGQjFCMzA2ODE5MTIxOUZCMTIxOUZCQzI5NUQyOTQxMjE5RkIxMjE5RkIxMjE5RkI0MzkwMzBBNURCRTc3RTIwMEExMjE5RkJBNURBRkFBNUQ5QTdEQTBCMjIyMDA5MEExMjE5RkJCMjk0MTIxOUZCQjI5NDIyMzAxNzMyMjAwOTJGQ0EyQkNBN0I3RTc4ODAwMDdBN0MwMEZFMTIxQjFDN0U2QkEwNUNBQTY4MTAyOUI3MDAxNDU0NjA2OEY4MzlBNzAwMDAwQjZDODBFOTEyMTlFRUQyQjVEQTdCREEyQjIyMTIxQUQ0N0U2ODAwMEIxMjFBOTMyMkNBNTlDQTVCN0VCNDAwMEI3Q0I4QzQxMjFCMDQ3Q0I4MTIxQjA0N0NCOUM0MTIxQjA0N0NCOTEyMUIwNDdFQjA2ODdBQjlCMDBCQjQ2Q0JCN0FCOUIwREE1OURBNUIyMjVFQjAwRjdDQUI5RUEwMEE0MDA1MkVCMDM3ODAwMzJFQjAzMDdBQjlCMDBCQjQyMkMyQjVDMjkyMTIxOUVFNzQ4MDM5QjcwMDBDN0U1NDAwMDYzOUE3MDAwNDM5QjcwMDAwNzQwMzM5QjcwMDBDMjI3RTc4MDAwMDdBN0MwMEZGN0U1ODAwMDA3QTVDMDAwMTdGNjU3RTc0MjAwMDEyMDhENjQwNTQ3RTc4N0MwMDdBN0MwMEZGN0U1ODAwMDA3QTVDMDAwMTdFNjg3QzAwN0E2QzAwMDE3RTc0MDQwMDEyMDhENjQwMzM3NDgwMTIxQkIxNDAyQzUzOTBDRkQyMDg3RTA0MDAwODdFMTQwMDAwODRBNURCRkNBNURBRjlBNUQ5RjY3NDQwMTIxQkIxNDAwRTdFNjgwRUMwN0E2QzAwRkYxMjFBOTMwMjE5RTZDMjk1RDI5NDgwRkVGNTBBN0U3ODAwMEE3QTdDMDAwMDdFNjg3RkJGN0E2QzAwMDE3RTc0MDAwMTAyMDhENkQyCis6MDAwMDAwMDAwMUZGCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyogRWRnZXBvcnQvNCBCaW5hcnkgSW1hZ2UKKy8vKiBHZW5lcmF0ZWQgYnkgSEVYMkMgdjEuMDYKKy8vKiBDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLy8qCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisvLyoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKy8vKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZWRnZXBvcnQvYm9vdDIuSDE2IGIvZmlybXdhcmUvZWRnZXBvcnQvYm9vdDIuSDE2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTQyOTUKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lZGdlcG9ydC9ib290Mi5IMTYKQEAgLTAsMCArMSwyOCBAQAorOjAwMDQwMDAwMDAwMjAwMDAwM0Y3Cis6MDAwMjAwMDAwNDAwRkZGQgorOjAwMDYwMDAwMDAwMjAwODAwMjAwMDM3MworOjAwMDMwMDBCMDAwMjAwMEJFNQorOjAwMDMwMDEzMDAwMjAyNTY5MAorOjAwMDMwMDFCMDAwMjAwMUJDNQorOjAwMDMwMDIzMDAwMjAwMjNCNQorOjAwMDMwMDJCMDAwMjAwMkJBNQorOjAwMDMwMDMzMDAwMjAwMzM5NQorOjAwMDMwMDNCMDAwMjAwM0I4NQorOjAwMDMwMDQzMDAwMjAwNDM3NQorOjAwMDMwMDRCMDAwMjAwNEI2NQorOjAwMDMwMDUzMDAwMjAxRjVCMgorOjAwMDMwMDdCMDAwMjAwN0IwNQorOjAyMTYwMDgwMDA3RUIzOTEwMTIwRTMwQzdFQjMzRkYyNTRGRTdBQjMzRkYyODAwQTdFQjMzRkYyNDQwMTdBQjMzRkYyNzQwMDdBQjM5MTAwNzQwMTdBQjM5MTEyN0VGODAwMjQ3RTAwMDE3RTEwMDAxMjA5RDA2OTIwMDAwQTVFNDAxRkJFMjQwMDAwNzgwOTdFMDAwMzdBMDM5MDAwODAwNzdFMDAwMjdBMDM5MDAwNzVCMERGN0UwMDAxN0EwMzk0MDA3QTAzMDEyNDdFMDAwMTdBMDM5MzAwN0UwMDAwQTVEOEZENzVBODAwNzVCMTAwQ0EyOTEyMEM2NjEyMEMzN0Y1MjE3QUExMjAyMDA5MDgyMDBBMEE3RUIwMEM4MDA4N0VCMDAwODAwMzdFQjAwODdBQjM5MjAwMTIwMjk2REEyOTc0MTA3QUIzOTEwMTdFMjAwNDdDQjJDMkQ3MTMxMzEzMTM3QUIzOTEwMDc0MDA3QUIzOTExMDc0NjA3QUIzOTExQzc0MDI3QUIzOTExMkE1REFERjc0MDA3QUIzOTEwMDc0NjA3QUIzOTExQzc0MTA3QUIzOTEwNjc0MTA3QUIzOTEwNzc0MzQ3QUIzOTExMzc0M0Y3QUIzOTExNDc0MDI3QUIzOTEwNjc0MDE3QUIzOTEwNzc0MDM3QUIzOTEwNjc0NDQ3QUIzOTEwNzc0RUY3QUIzOTEwNDc0MDc3QUIzOTEwNjdFQjM5MTA3N0FCMTBBNzUwOTAxRDJBQUQyQUZFNDdFNjAwMjREMjI3ODAzN0U2MDAzN0M3NjdFMDQyODAwOERFRjFCMDQ3OEZBMDQ3RTIwMDc3QTIzOTEwNjdFMjM5MTA3N0UzMTBBQkMzMjY4MjI3QTIxMEE3RTIxMDk2ODE3Q0FCODc0MDM3QUIzOTEwNjdFQjM5MTA3NDQwMjdBQjM5MTA3REFCODc1MDkwMDMwRTBDMTZDNjc3QTYzOTAwMDgwQjlCRUIwMDIyMkMwRDA3NTA4RkUxMjBBQzA3NDAyN0FCMzkxMDY3NDAwN0FCMzkxMDc3NDAzN0FCMzkxMDY3NDAwN0FCMzkxMDc3NDAyN0FCMzkxMDQ3RUIzM0ZGMjMwRTAwODc0MTg3QUIzOTEwMTgwMDY3NDEwN0FCMzkxMDE3NDEwN0FCMzkxMDQwMjAyMzY3NTA4RkYxMjBBQzA3NDAxN0FCMzkxMDQ3NDAzN0FCMzkxMDY3RUIzOTEwNzU0RkM3QUIzOTEwNzMyQ0FCODc1MDgwMjEyMEFDMDdFQjM5MTAzMjBFNTA4MzBFMDJCMTIwMjlFODBGMTdFQjM5MTA0MzBFMDA1REFCODAyMDIzOTMwRTEwNURBQjgwMjAxRjUzMEU2MDUxMjA0MDM4MEQ1MzBFMjA1REFCODAyMDA4MDgwQ0JEQUI4MzI2RAorOjA4MkEwMjk2MDBFNDdBQjMzRkYxMDIwMzQxQ0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCNzQwMDdBQjM5MTAwN0VCMzAxMkVCNDAwMDI4MDFDQjQwMTE5N0VCMzkxMTQ1NDE0NjgwNTEyMDMwNTgwMjM3RUIzOTExNDMwRTUxQzEyMDQ0MzgwMTc3RUIzOTExNDMwRTUwNTEyMDQ0MzgwMEI3RUIzOTExNDU0MTQ2ODAzMTIwMzA1REFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjIyMEU0MTk3NTA4MEExMjBBQzA3RUIzMDEyRDcwMEE3RUIzMDEyRUI0MDExRjAyMDM5RDAyMDk4Qjc1MDgwQjEyMEFDMDc0MTQ3QUIzOTExNDdFQjMwMTJFQjQwMjBDMTIwMzREMDIwMzQxNzQwNDdBQjM5MTE0MjI3RTAwMDA3QTAzMDEyRTdBMDMwMTJGMjI3RUIzMDEyNTU0NjA2MDA1QjQ0MDFFODAxQzdFQjMwMTI2QjQwNTE1NzUwODcxMTIwQUMwN0VCMzAxMjg3RUEwMDE3QUEzOTEwNjdBQjM5MTA3MjI3NDAwN0FCMzkxMDA3NDEwN0FCMzkxMTIyMkJFNTcwMTJCMjgwNDdFNTcwMTJCN0EwRjAxMzE3QTU3MDEzNTc0MTA3QUIzOTExMjIyNzQwMDdBQjM5MTAwN0VCMzkxMUE3MDUzN0VCMzkxMTQyMEU0NEM3RUVGMDEzMTdFRjcwMTM1N0UwNzAxMzU0RDAwNjgyMTdFMDAwMEUwN0FCMzkxMTdBM0E1MDgxQkY0NjgwNkE1QjgxMEYwODAxOTdFQjAwMDdBQjMwMTJFQkUwMDEwNjgwRDdFQjAwMDdBQjMwMTJFNzQ4MDdBQjM5MTFFN0FFRjAxMzE3QUY3MDEzNTc1MDgwNjEyMEFDMDc0MDQ3QUIzOTExNDIyQ0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCNzUwODAzMTIwQUMwNzQwMDdBQjMwMTJENzQwMDdBQjM5MTAwNzQwMTdBQjM5MTEyMTIwNEIyREFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjI3NTA4MDMxMjBBQzA3RUIzMDEyRkI0MDIxMTc0MDA3QUIzMDEyRjdBQjMwMTJFNzQyMDdBQjM5MTE0MjJCNDAxNDY3RUIzOTEwNDIwRTY0MjdFMjM5MTFBN0MzMjdFMTMwMTMwMkMyMTdBMjMwMTMwN0UwMDAwMkUwNDAxMzc3RUIzOTExNjdBMDlCMDBCMDRBNURCRjQ3NDIwN0FCMzkxMTQ3NTA4NzAxMjBBQzA3RUIzMDEzMDdFQTMwMTJDQkNBQjc4MDMxMjA1NTIyMjAyMDk4QkRBNTkwMjA0MTU3NEUwN0FCMzkxMDA3RTAzOTExMDdFMTM5MTExN0UzMzkxMTI3RTIzOTExMzdFNTM5MTE0N0U0MzkxMTU3RTczOTExNjdFNjM5MTE3N0EwRjAxMjU3QTFGMDEyOTc1MDgwNDEyMEFDMDdBMDEwODEyMEFDMDdBMTEwODEyMEFDMDdBMjEwODEyMEFDMDdBMzEwODEyMEFDMDdBNDEwODEyMEFDMDdBNTEwODEyMEFDMDdBNjEwODEyMEFDMDdBNzEwODEyMEFDMDc0MDA3QUIzOTEwMDc0NDA3QUIzOTEwNDEyMDUyNjIyNkQwMDdFMTQwMTAyN0EwNzAxMzU3QTAzMDEzMDdFQjMwMTI1MjBFNzBGN0EyMzAxMkY3QTMzMDEyRUJFMDcwMTJCNjgwOTIyN0EzMzAxMkY3QTIzMDEyRTdFQjMwMTI1NTRFMzIzMjMzMEUwMDJEMkU1MzBFNzAyRDJFNDMwRTUwNjMwRTQwMzAyMDk4QjU0M0VGNUYwMDM1NDFGQzMyNUYwOTAwNTdFNzU4NEZGNzMwMjA3MzkwMjA1QzYwMjA3RDIwMjA3RUQwMjA2RDAwMjA2NUIwMjA4MUUwMjA4MUUwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjEwMjA4MjcwMjA4RjkwMjA4MjQwMjA4MjQwMjA4MjQwMjA4MjQwMjA4MjQwMjA4MjQ3NDAwN0FCMzkxMDA3NDYwN0FCMzkxMUM3RUIzMDEyNkI0MDYyQTdFQjMwMTI3NjA3OTdDMEI3RTEzMDEyODdFMTcwMTI5NzUwODcyMTIwQUMwN0EwMTA4MTIwQUMwN0ExMTA4MTIwQUMwMTIwOUQwNDA1ODAyMDM4NEI0MDgxQzc1MDg3NDEyMEFDMDdFQjMzRkYxN0UwODAxMzc3QTBDMDAwMDdBMEJCMDdFNTQwMDAxMDIwMzg0QjQwMDMzNzUwODc1MTIwQUMwN0UwODAxMzc3QTBDMDAwMENBMEI3RUIzM0ZGMjMwRTAwNzc0MDI3QTBCQjA4MDA1NzQwMDdBMEJCMDBCMTQ3NDAwN0EwQkIwN0U1NDAwMDJEQTBCMDIwMzg0MDIwOThCNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzAxMjZCNDAwNUY3NTA4NzYxMjBBQzA3RUIzMDEyQTU0MEZCNDAyMDU3RUIwNjA4MDE3QjQwMDA1N0VCMDAwODAwRjdFQjMwMTJBMjBFNzA1N0VCMDQwODAwMzdFQjAyMDdBQjM5MTAwN0VCMzkxMTEzMEUwMDQ3NDAxODAwMjc0MDA3RTA4MDEzNzdBMEMwMDAwQ0EwQjdBMEJCMDBCMTQ3NDAwN0EwQkIwNzQwMDdBQjM5MTAwN0U1NDAwMDJEQTBCMDIwMzg0MDIwOThCN0VCMzAxMkE1NDBGQjQwMjA1N0VCMDYwODAxN0I0MDAwNTdFQjAwMDgwMEY3RUIzMDEyQTIwRTcwNTdFQjA0MDgwMDM3RUIwMjA3QUIzOTEwMDdFQjMwMTI4QjQwMDI2N0VCMzAxMjZCNDAxMEU3NTA4NzcxMjBBQzA3NDAxN0FCMzkxMTI4MDFCQjQwMzBFNzUwODc4MTIwQUMwNzQwMTdBQjM5MTExODAwQTc0MDA3QUIzOTEwMDEyMDk4QjIyNzQwMDdBQjM5MTAwMDIwMzc3N0VCMzAxMjZCNDA5MUY3NTA4NzkxMjBBQzA3RUIzMDEyOEJFQjMzRkYxNjgwRENBQjgxMjAxRjFEQUI4NTA3NjdBQjMzRkYxODA2REI0MDUwODc1MDg3QTEyMEFDMDgwNjJCNDAzMTk3NTA4N0IxMjBBQzA3RUIzMDEyOEI0MDE1NTdFQjMzRkYyNDQwMTdBQjMzRkYyODA0NkI0MDExOTc1MDg3QzEyMEFDMDdFQjMwMTI4QjQwMTM5N0VCMzNGRjI1NEZFN0FCMzNGRjI4MDJBQjQwNzJBN0VCMzAxMjc2MDI0N0MwQjdFMTMwMTI4N0UxNzAxMjk3NTA4NzMxMjBBQzA3QTAxMDgxMjBBQzA3QTExMDgxMjBBQzAxMjBBMEE0MDAzMDIwMzc3MDIwOThCN0VCMzAxMjZCNDBCRjY3NTA4N0QxMjBBQzA3RUIzMDEyODdFQTMwMTJBNENBQjc4RTQ4MERGNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzAxMjZCNDBBQ0Y3NTA4N0UxMjBBQzA3RUIzMDEyODcwQzM3RTA4MDEzNzdBMEMwMDAwN0EwQkIwN0U1NDAwMDEwMjAzODQwMjA5OEIwMjA5OEIwMjA5OEI3RUIzMDEyNkI0MDQyMDc1MDhDMzEyMEFDMDdFMDQwMDAxN0UxNzAxMjc3RTE4MDEzNzdBMUMwMDAwN0U0NzAxMkIxMjBBQ0MwMjA4RjNCNDA2NDI3NTA4QzExMjBBQzA3RTU4MDAwMDdBNUMwMEZFN0RDQTdFRDcwMTI3N0U3ODAxMzc3QTdDMDAwMDdFNzcwMTJCNzUwOEMxMTIwQUMwQzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyMEI2MzdFNDMwMTI0N0E0Mzk0MDBEMEE4NDA2NTgwNjBCNDAwMjRDMkFGN0VCMDAxN0FCMzk0MDA3QUIzMDEyNDEyMDM3N0U0OERFRjhERUY4REVGRDVFMEY3QzBEMUNBMDJGRkNBMDYwMDAwMzJCNDA5MjA3NDAzN0FCMzkxMDY3RTIzOTEwNzdFNTcwMTI3NEQ1NTY4MDU0RTIwMDI4MDAzNUUyMEZEN0EyMzkxMDc4MDE2QjQwNzE2QzJBRjdFMDcwMTI5N0UxNzAxMjdDMEQxQ0ExOENBMzhDQTI4MzIwMjAzNzcwMjA5OEI3NDAwN0FCMzkxMDA3NDYwN0FCMzkxMUM3RUIzMDEyNkI0MDMxNTc1MDhDMjEyMEFDMDdFMDQwMDAxN0UxNzAxMjc3RTU3MDEyQjAyMDM4NEI0MDU0MTc1MDhDMDEyMEFDMEMwQThDMkFGN0U0MDAxN0E0Mzk0MDA3RTA4MDEzNzdBMEMwMDAwN0UyNDAwRkU3RTM3MDEyNzdFNDcwMTJCMTIwQUNDN0U0MzAxMjQ3QTQzOTQwMEQwQTg3RTA4MDEzNzdBMEMwMDAwN0U1NzAxMkIwMjAzODRCNDAxMjA3RTAwMDA3RTEwMDE3NTA4NzIxMjBBQzA3QTAxMDgxMjBBQzA3QTExMDgxMjBBQzAxMjA5RDA0MDAzMDIwMzg0MDIwOThCNzUwODA3MTIwQUMwN0VCMDAyN0FCMzkwMDA3NDAwN0FCMzkxMDA3NDQwN0FCMzkxMTU3NDAxN0FCMzkxMTE3RUIzOTExNTU0NjBCRUIwNDA2ODA4NzQyMDdBQjM5MTE1ODBFRDc0MDE3QUIzOTExMjc0MDQ3QUIzOTExNDc0RkY3QUIzMDEyRDIyQzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyMEE1NzQwMUY3RTA4MDEzNzdBMEMwMDAwQ0EwQkNBNDkxMjBBQ0NEQTU5REEwQjdFNDMwMTI0N0E0Mzk0MDBEMEE4QzMyMjdFNDMwMTI0N0E0Mzk0MDBEMEE4MjJDMEE4QzJBRjdFNDAwMTdBNDM5NDAwMTIwQTU3NDAzMTdFNTgwMDAwN0E1QzAwRkU3RjYxN0U3ODAxMzc3QTdDMDAwMDdFNzcwMTJCQkQ3NDc4MTc3NTA4QzExMjBBQzAxMjBCNjM0MDBDN0U0MzAxMjQ3QTQzOTQwMEQwQThDMzIyN0U0MzAxMjQ3QTQzOTQwMEQwQThEMzIyN0UyNDAwRkU3RTM0N0ZDQTBCMUE1MEM1RjA3RDYyN0Q3NTdEODc3RTM0N0YwMzdFMUJCMEJDMEI1MDQ5M0UwMDNFMDAwQTUwMkQ3NTBCM0EzMDY5NTMwMDAyQkQzODUwMDIyRDM4QkMxQjUwMzAzRTEwM0UxMDBBNTEyRDM1Njk0MTAwMDIwQjFBMzBCRDM4NTAwMjJEMzhCRTQ0RkZGRjc4MDU3RTFCOTAwQTQ5NEQ0NDY4MENCRTQ0MDBGRjI4MDQ3RTQ0MDBGRkMzMjJEMzIyNDgKKzowMDQwN0ZDMDAwNDAwMTAyMDBENzMxMDIwMDAzMDAwMDdDMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxN0YwMDAwMDAwMDAwMDA0NAorOjEwNDMwQUMwMDBDQTA4N0UwMTA4N0EwMzNGRjBEQTA4MjI4MDUwMEIxQTYwMEIzNTBCMUE3MDBCMzUwQjFBODAwQjM1MEIxQTkwMEIzNTBCMUFBMDBCMzUwQjFBQjAwQjM1MEIxQUMwMEIzNTBCMUFEMDBCMzUxQjBBNjAwQjE1MUIwQTcwMEIxNTFCMEE4MDBCMTUxQjBBOTAwQjE1MUIwQUEwMEIxNTFCMEFCMDBCMTUxQjBBQzAwQjE1MUIwQUQwMEIxNTlFNDQwMDEwNTBBQTJFNDQwMDEwNjgwRTdFMUJDMDdBMEJDMDBCMTQwQjM0MUI0NDc4RjIyMjdGNkY3RkYwMUJGQzdDNTQ3RDMyODAwOENBMUJDQTFCQ0ExQkNBMUI5RTQ0MDAxMDUwRjIyRTQ0MDAxMDY4MDZDQTQ4MUI0NDc4RkE3RkY2ODlFNENBNkI1RUQ0MDAzRjY4MjA3RTg0MDA0MDlEOEREQTZCQkQ4NzM4MTZDQTc5N0Q3ODEyMEI4RERBNzk0MDA4OUQ3ODY4MDI4MDA1QzJENzIyREE2QjdFQzAwMzdFRDAwMDdBRDM5MDAwNzRBQTM5QjU1NTU1NzQ1NTM5QjUyQUFBNzRBMDM5QjU1NTU1N0UwNDAwNDA5RDcwNTAwNjJENzA3RDA3NkQ3NzdDMzE3RTdCMDA3QTZCMDAwQjdDMEI2Q0E1RDlGMzdGMTYxQjFDN0U1NDI3MTA3RTFCMTBCQzEwNjgwNjFCNTQ3OEY1ODAyRjZEMDA3QzIwN0YxNjlGMTA3RjI3OUYyMDdFMkIwMDdFMUIxMEJDMDE3ODE5MEIyQzBCMUNBNURCRUY3Q0I2MjBFMDA2NkNEQzdBRDM5MDAwNEQ3Nzc4OTBDMkQ3MjJEMkQ3MjIwMDA0MDAwNDAwMDAwNjA0MDIwNDAwMDIwMTA0MDEwMjAwMDAwMDAwMDAwMDAwMDAwMjAyMDIwMjAyMDQwMDA4MTAwMjEwMDQwMjA4MDAwMTAxMDg3RTE4N0ZCRDdBMUMwMEZGMEIxQTAwNUUxMDFGQkUxMDE0MzgxQTBBNTEyMzdFMTgwQzBEN0ExQzAwRkYyRDM1MEIxQTUwNjAwOEE1QjgwMjAzNEVBMDA4MjI4MEZFN0VFODdGQkY3QUVDMDBGRkUwRjUyMzU0QzA2ODM4N0VFODdGQkU3QUVDMDBGRkUwNjAyRTEyMEMzN0Y1MjE3QUExMjAyMDA5MEMyMDBBMTI3RUIwMEU3QUIzOTIwMDgwMTA3RUIwMDI3QUIzOTIwMDgwMDc3RUIwMEE3QUIzOTIwMDdBQjEwRDAyMENDNDIyN0VCMDAyN0FCMzkwMDAxMjE5MEM3RUIwMDM3QUIzOTAwMDEyMTkwQzgwRUFDMkFGQzIxMUMyMTI3NUIwREY3RTAwMDE3QTAzOTMwMDdFMDAwMDdBMDM5MDAwNkMwMDdFMTAwMzEyMENGNTdFNjgyQzY2N0E2QzAwRkYxMjE5QzQwQjAwODAzMjAyMUE2RTIwMTEyQjdFQjAwMTdBQjM5MDAwMTIxOTBDN0VCMDAzN0FCMzkwMDAxMjE5MEM3RUIwMDI3QUIzOTAwMDEyMTkwQ0E1RDlEQzdFQjAwMDdBQjM5MDAwMTIxOTBDMjI3RTY4MkNGOTdBNkMwMEZGMTIxOUM0N0VFNDEwMDA3RTQwNTU3QUU5NDAwQkU0N0U1MEFBN0FFOTUwMUJFNEJFRTk0MDY4MTk3RTY4MkNERjdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTEzN0FFOTQwN0VFOTEwODBGODdFNjgyQ0RBN0E2QzAwRkYxMjE5QzQwQjAwN0U2ODJEM0Q3QTZDMDBGRjEyMTlDNDdFNzgwMDAwN0U3MDBFN0VBNEZGRkY3RUI0QkZGRjdEQ0IwRUM0N0REQzVEREI2Q0JCN0RGQTVFRjQ3RkZGN0E3QkIwMEJCMDdERkI1RUY0N0ZGRjdBN0JCMDBCQjA3REZDNUVGNDdGRkY3QTdCQjAwQkIwN0RGRDVFRjQ3RkZGN0E3QkIwNkNCQjdERkE1RUY0N0ZGRkJFN0JCMDc4NDEwQkIwN0RGQjVFRjQ3RkZGQkU3QkIwNzgzNDBCQjA3REZDNUVGNDdGRkZCRTdCQjA3ODI3MEJCMDdERkQ1RUY0N0ZGRkJFN0JCMDc4MUEwQkIwQkVDNEZGRkU3ODkyMEVCNEE1REY4QjdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQ4MDc3Q0E1QkNBNkI3RTY4MkNGMDdBNkMwMEZGMTIxOUM0N0U2ODJEOEY3QTZDMDBGRjEyMTlDNDBBNDcxMjE5RkE3RTY4MkRERTdBNkMwMEZGMTIxOUM0NkM3N0RBNkJDQTZCMEI3MDBFQzRCRUM0RkZGRjc4RjYxQjcwMEE0NzEyMTlGQTEyMTkxOTMwMTEzMERBNkJEQTVCNkNCQjdFNzgwMDAwN0RGQTVFRjQ3RkZGN0E3QkIwN0RGQjVFRjQ3RkZGN0E3QkIwN0RGQzVFRjQ3RkZGN0E3QkIwN0RGRDVFRjQ3RkZGN0E3QkIwODBENDdFNjgyRDFCN0E2QzAwRkYxMjE5QzQzMDFGMEU3RTc4MDQyMDdBN0MwMDAwN0U0NDdCRTA4MDBDN0U3ODAwMDA3QTdDMDAwMTdFNDQ4MDAwMEIwMDdFNDAzQTdDNTQ3RjU3N0Q4NDZDNjY3QTVCNTAwQjVDMEI1MEE1REUwMjBCNTAxQjg0NzhGMDdDNTQ3RjU3N0Q4NDZDNjZCRTVCNTA3ODFBMEI1QzBCNTBBNURFMDIwQjUwMUI4NDc4RUU3RTY4MkNEQTdBNkMwMEZGMTIxOUM0ODA0QjdGNDU3RTY4MkNERjdBNkMwMEZGMTIxOUM0N0U2ODJENUY3QTZDMDBGRjEyMTlDNDdENEIxMjE5RkE3RTY4MkQ3NDdBNkMwMEZGMTIxOUM0NkM4ODdDOTUxMjE5RkE3RTY4MkQ4MjdBNkMwMEZGMTIxOUM0N0U0QjkwMTIxOUZBMTIxOTE5MzAxMTA1N0U0QjkwODBGQjdFNjgyRTI4N0E2QzAwRkYxMjE5QzQwQjAwN0VCMDgwN0FCMzkxMDA3RUEwNTU3QUEzOTExMDdFQjM5MTA3N0VCMzkxMTBCQ0FCNzgyMDdFQTBBQTdBQTM5MTEwN0VCMzkxMDc3RUIzOTExMEJDQUI3ODBEN0U2ODJDREE3QTZDMDBGRjEyMTlDNDgwMUI3RTY4MkNERjdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTBBN0FBMzkxMTA3RUIzOTExMDgwRjY3RTY4MkU0QTdBNkMwMEZGMTIxOUM0MTIxMjMxMEIwMDdFRTQxMDAwN0VBMEE1Q0FBODdBRTlBMDdFQjAzMDdBQjM5NTAwN0VFOUEwN0VCMDAwN0FCMzk1MDAxMjE5MEMwQkU1N0VCMDIwN0FCMzk1MDA3RUU5QjA3RUIwMDA3QUIzOTUwMDdFRTlCMERBQThCQ0FCNzgwRDdFNjgyQ0RBN0E2QzAwRkYxMjE5QzQ4MDFEN0U2ODJDREY3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwQzdFQjAzODdBQjM5NTAwN0VFOUIwODBGQjgwMDA3RTY4MkRFNDdBNkMwMEZGMTIxOUM0MEIwMDc1QjBERjdFMjQ4MDAwMDlCMjAwMDhCRUIwMDE3ODBCMDlCMjAwMTRCRUIwNjA3ODAyODAxNzdFNjgyQ0RGN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMTEwOUIyMDAwODgwRkE3RTY4MkNEQTdBNkMwMEZGMTIxOUM0N0U2ODJFMDY3QTZDMDBGRjEyMTlDNDBCMDA3NUIwRUYxMjE4RkY3RTI0ODAwMDdFQTA1NTE5QTIwMDFDN0VCMDAxMTlCMjAwMDgwOUIyMDAxQ0JDQUI3ODM3MDlCMjAwMDg1RUIwQzBCRUIwQzA3ODJCN0VBMEFBMTlBMjAwMUM2Q0JCMTlCMjAwMDgwOUIyMDAxQ0JDQUI3ODE2MDlCMjAwMDg1RUIwQzA3ODBEN0U2ODJDREE3QTZDMDBGRjEyMTlDNDgwMUI3RTY4MkNERjdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTBBMTlBMjAwMUMwOUIyMDAxQzgwRjY3RTY4MkU2QzdBNkMwMEZGMTIxOUM0N0U2ODJFRUU3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxN0VCMDAxMTlCMjAwMUMyRTI0MDEwMDBCQjBBNUQ5RjM3RTI0ODAwMDdFMTEyMTdFQjAwMTBCMDAwOUEyMDAxQ0JDQUI3ODE2N0U2ODJDRTc3QTZDMDBGRjEyMTlDNDJFMjQwMTAwMEJCMEE1RDlFMjgwMjU3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMUU0N0UyNDgwMDA3RTExMjEwOUEyMDAxQzJFMjQwMTAwQTVEOUY1ODBFQzdFNjgyRjEyN0E2QzAwRkYxMjE5QzQxMjEyMzE3RTI0ODAwMDdFMTEyMTBCMDA3NDEwMTlCMjAwMTAxMjExQUEyRTI0MDEwMEE1RDlFRTdFNjgyRjM2N0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDBFNDE5QjIwMDEwMTIxMUFBMkUyNDAxMDBBNUQ5RUYzMDAwMDMwMjE3M0IwMjEyNkE3NDA3MTlCMjAwMDgxMjE5MEMwOUIyMDAwMDA5QjIwMDE0MDlCMjAwMDAwOUIyMDAxNDA5QjIwMDAwMDlCMjAwMTQwOUIyMDAwMDA5QjIwMDE0QzIxMzdFQjA1NTEyMTIwQjdFQjBBQTEyMTIwQjdFQjAwMDEyMTIwQjdFQjBGRjEyMTIwQjMwMTMwRjdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkyMjdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQyMjE5QjIwMDAwMTIxOEZGMDlBMjAwMDBCQ0FCNzgwMTIyMjAxMTAzRDIxMzIyMTIxOTE5MTlCMjAwMDAxMjE4RkYwOUEyMDAwMDgwRjM3NUIwREYxMjE4RkY3NUIwRUYxMjE4RkY3RTI0ODAwMDdFMTEyMTc0ODAxOUIyMDAwQzdFNTQwMDAyMTlBMjAwMDQxOUIyMDAwMDc0MDMxOUIyMDAwQzc0MDYxOUIyMDAwODJFMjQwMTAwQTVEOURCMjI3RTY4MkY1QTdBNkMwMEZGMTIxOUM0N0UyNDgwMDA3RTExMjEwQjAwMTIxOEZGMDlCMjAwMTg3RUEwNTUxOUEyMDAwMDEyMThGRjA5QjIwMDE4NUVCMDA1NzgwRDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQ4MDFBN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwOTE5QTIwMDAwMTIxOEZGODBGNzJFMjQwMTAwQTVEOUI2N0U2ODJGN0U3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDEyMThGRjA5QjIwMDE4N0VBMDU1MTlBMjAwMDAxMjE4RkYwOUIyMDAxODVFQjAwQTc4MEQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0ODAxQTdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMDkxOUEyMDAwMDEyMThGRjgwRjcyRTI0MDEwMEE1RDlCNjMwMDQwMzAyMTU5RjdFNjgyRkEyN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwMEE3ODNDN0VBMDAxMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMzE5QTIwMDEwN0VBMDAxMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwQTc4MTQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0MkUyNDAxMDBBNUQ5OUU4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTFFNjdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTdFNjgyRkVBN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMTE5QTIwMDEwNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwMDU3ODNDN0VBMDAyMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMzE5QTIwMDEwN0VBMDAyMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwNTc4MTQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0MkUyNDAxMDBBNUQ5OUU4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTFFNjdFQTAwMTE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTdFNjgzMDMyN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDA3RUEwMDIxOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDUwQkVCMDUwNzgxRjZDQUExOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDUwNzgwRDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQ4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwRjdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTJFMjQwMTAwQTVEOUEyN0U2ODMwN0E3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDA5QjIwMDE4N0VBMDAxMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjBBMEJFQjBBMDc4MUY2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjBBMDc4MEQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0ODAyMDdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMEY3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDgwRjEyRTI0MDEwMEE1RDk5RTdFNjgzMDlFN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDAyMEIxMjY3RUEwMDIxOUEyMDAxMDEyMThGRjMwQjExOTZDQUExOUEyMDAxMDEyMThGRjIwQjEwRDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQ4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwRjdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTJFMjQwMTAwQTVEOUFFMDIxNzNCN0U2ODJGQzY3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDZDQUExOUEyMDAxMDEyMThGRjA5QjIwMDE4N0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwNjc4M0M3RUEwMDExOUEyMDAxMDEyMThGRjA5QjIwMDE4N0VBMDAzMTlBMjAwMTA3RUEwMDExOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDA2NzgxNDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQyRTI0MDEwMEE1RDk5RTgwMjA3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMUU2N0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxN0U2ODMwMEU3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDZDQUExOUEyMDAxMDEyMThGRjA5QjIwMDE4N0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwOTc4M0M3RUEwMDIxOUEyMDAxMDEyMThGRjA5QjIwMDE4N0VBMDAzMTlBMjAwMTA3RUEwMDIxOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDA5NzgxNDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQyRTI0MDEwMEE1RDk5RTgwMjA3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMUU2N0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxN0U2ODMwNTY3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDdFQTAwMjE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwOTBCRUIwOTA3ODFGNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwOTA3ODBEN0U2ODJDRTc3QTZDMDBGRjEyMTlDNDgwMjA3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTBGN0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxMkUyNDAxMDBBNUQ5QTIyMDFGNjgxMjEyMzExMjE3QTk3RTI0ODAwMDdFMTEyMTBCMDAyMDg5MjY3RUEwRkYxOUEyMDAwNDEyMThGRjdFQjA1NTE5QjIwMDAwMTIxOEZGMzA4OTBGN0VBMDAwMTlBMjAwMDQxMjE4RkYyMDg5MDI4MDI2MTIxOTE5MzAxMTIwN0VBMEZGMTlBMjAwMDQxMjE4RkY3RUIwNTUxOUIyMDAwMDEyMThGRjdFQTAwMDE5QTIwMDA0MTIxOEZGODBFMDJFMjQwMTAwQTVEOUE4MDIxN0MyMDIxODRDN0UyNDgwMDA3RTExMjE3RUEwMDgxOUEyMDAxMDEyMThGRjJFMjQwMTAwQTVEOUVGMjIzMDFGMDMwMjE4NENDMjhBMTIxN0E5MEIwMDEyMTgxNjIwOEIyNDc0MDM3QUIzOTEwNjc0MDI3QUIzOTEwNzc0MEM3QUIzOTEwNjc0MDA3QUIzOTEwNzEyMTkwQzMwOEIwNjEyMTgxNjMwOEJBRDEyMTkxOTMwMTFBNzEyMTgxNjc0MDM3QUIzOTEwNjc0MDI3QUIzOTEwNzEyMTkwQzEyMTgxNjgwRTk3RUEwMDA3NDAyN0FCMzkxMDY3QUEzOTEwNzc0MDM3QUIzOTEwNjdBQTM5MTA3MTIxOEZGNzRFRjdBQjM5MTA0NzQ4MDdBQjM5MTAzNzQwQzdBQjM5MTA2NzQwODdBQjM5MTA3MTIxOTBDMjIzMDEyMTk3RTY4MzBDMjdBNkMwMEZGMTIxOUM0RDIxMTEyMThGRjEyMThGRjEyMThGRjAyMENDQTMwMUYxQzdFNjgzMTNDN0E2QzAwRkYxMjE5QzQ3RTY4MzE1RTdBNkMwMEZGMTIxOUM0MTIxQTZFMDIxOEY3MEIwMDdFNzgxOEIxN0E3QzAwRkY3RjY3N0E2QzAwMDA3RTcwM0U3RTdCQjA3QTZCQjAwQjdDMEI2Q0E1REZGMzdFNzgxOEIxN0E3QzAwMDA4OTc4N0U3ODAwMDA3QTdDMDBGRTdFNjg3RkJGN0E2QzAwRkU3NEFBMzlCNzU1NTU3NDU1MzlCNzJBQUE3NEEwMzlCNzU1NTU2Qzk5N0E2QjkwN0U1NDI3MTA3RTZCODBCQzg5NjgwODFCNTQ3OEY1OEFGRjE4RUY4QUZGMThGNzEyMTkxOTdFNkI4MDgwRkI3RTEwRkYxMjE5QUM4MEY4Q0FGOTdFRjQwMEZGMUJGNDc4RkNEQUY5MjJDQUY5N0VGNDAwMDAxQkY0NzhGQ0RBRjkyMjIwMTEyMEQyMTIxMjE5MEM3RUIwMDI3QUIzOTAwMDEyMTkwQzEyMTkwQzEyMTkwQzEyMTkwQzdFQjAwMDdBQjM5MDAwMjJDQTBCN0UxMDAzN0MzMDZDMjIwQjIwOUUzMDBBNTBGOTJFMzAwQjFCMjA2ODIwMTIxOTBDMTIxOTBDN0VCMDAzN0FCMzkwMDAxMjE5MEMxMjE5MEMxMjE5MEM3RUIwMDA3QUIzOTAwMEE1REFFMDEyMTkwQzEyMTkwQzFCMzA2ODIwMTIxOTBDMTIxOTBDN0VCMDAyN0FCMzkwMDAxMjE5MEMxMjE5MEMxMjE5MEM3RUIwMDA3QUIzOTAwMEE1REJFMDdFMjAwQTEyMTkwQ0E1REFGQUE1RDk5OERBMEIyMjIwMTExNDEyMTkwQzdFQjAwMTdBQjM5MDAwMTIxOTBDN0VCMDAwN0FCMzkwMDAyMjMwMUYzMjIwMTEyRkNBMkJDQTdCN0U3ODgwMDA3QTdDMDBGRTEyMUE0RDdFNkJBMDVDQUE2ODEwMjlCNzAwMTQ1NDYwNjhGODM5QTcwMDAwMEI2QzgwRTkxMjE4RkZEMkI1REE3QkRBMkIyMjEyMUEwNTdFNjgwMDBDMTIxOUM0MjJDQTU5Q0E1QjdFQjQwMDBDN0NCOEM0MTIxQTM1N0NCODEyMUEzNTdDQjlDNDEyMUEzNTdDQjkxMjFBMzU3RUIwNjg3QUI5QjAwQkI0NkNCQjdBQjlCMERBNTlEQTVCMjI1RUIwMEY3Q0FCOUVBMDBBNDAwNTJFQjAzNzgwMDMyRUIwMzA3QUI5QjAwQkI0MjJDMkI1NzVCMEVGMTIxOEZGNzQ4MDM5QjcwMDBDN0U1NDAwMDYzOUE3MDAwNDM5QjcwMDAwNzQwMzM5QjcwMDBDMjI3RTc4MDAwMDdBN0MwMEZGN0U1ODAwMDA3QTVDMDAwMTdGNjU3RTc0MjAwMDEyMEI2MzQwNTg3RTc4N0MwMDdBN0MwMEZGN0U1ODAwMDA3QTVDMDAwMTdFNjg3QzAwN0E2QzAwMDE3RTc0MDQwMDEyMEI2MzQwMzc3NDgwMTIxQUVBNDAzMDdFMDAwMzdBMDM5MDAwRDIxMDdFMDQwMDA4N0UxNDAwMDA4NEE1REJGQ0E1REFGOUE1RDlGNjc0NDAxMjFBRUE0MDBFN0U2ODMxOEQ3QTZDMDBGRjEyMTlDNDAyMThGNzdFQjAwMjdBQjM5MDAwODBGRUY1MEI3RTc4MDAwQjdBN0MwMDAwN0U2ODdGQkY3QTZDMDAwMTdFNzQwMDAxMDIwQjYzNzQKKzowMDAwMDAwMDAxRkYKKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQorLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgorLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisvLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lZGdlcG9ydC9kb3duLkgxNiBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24uSDE2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMzZmZTEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lZGdlcG9ydC9kb3duLkgxNgpAQCAtMCwwICsxLDI5IEBACis6MDAwNDAwMDAwMDAxMTAwMDA0RTcKKzowMDAyMDAwMDA0MDBGRkZCCis6MDAwNjAwMDAwMDAyMDA4MDAyNDRCMDgyCis6MDAwMzAwMEIwMDAyNDQ3MjNBCis6MDAwMzAwMTMwMDAyMDAxM0Q1Cis6MDAwMzAwMUIwMDAyMDAxQkM1Cis6MDAwMzAwMjMwMDAyMDAyM0I1Cis6MDAwMzAwMkIwMDAyMDAyQkE1Cis6MDAwMzAwMzMwMDAyMDAzMzk1Cis6MDAwMzAwM0IwMDAyMDAzQjg1Cis6MDAwMzAwNDMwMDAyMDA0Mzc1Cis6MDAwMzAwNEIwMDAyNkVDNDdFCis6MDAwMzAwNTMwMDAyNzU4REE2Cis6MDAwMzAwN0IwMDAyMDA3QjA1Cis6MDAwNzAwODAwMDdFMTQwMDAwMDI0MDUxNTQKKzowODgyMzAwMDAwMTIzNzI4MTIzMDNFMTIzMDU0MTIzMEU1MTIzMTY4MTIzNTIwMTIzODU4MTIzMTE1MTIzMTQwMTIzMEEwODBFMEU1MjM2MDE5N0UxNDAwMDAwOUIxMDFDRkI0MDAwMjgwMDUxNDE5QjEwMUNGQTUwQkJFMzEyRjc4RUIyMkMyQUY3RUIzM0ZGMUI0MDEwQUMwRjE3NUYxMDIxMjcwRUZEMEYxRDJBRjIyQzJBRkU1MjI2MDQzN0UwNzAxRTFCRTA0MDM4MDM4Mzk3RTA0ODAwMDdFMjAwMDEzNTAyMTA5QTAwMDA0NEVBMDA1MTlBMDAwMDQwQTMyMDk1MzY3OEU1RTUxMjc2ODBCMDlBMDAwMTA0RUEwMDExOUEwMDAxMDJFMDQwMTAwQTUwQUJFMjEyRjc4RDE3NTIyMDBEMkFGMjJDMkFGN0UyMDAwN0UzMDAxN0NCMjIzMEEyQjQ5MzIwMThGQkUzNDAwMDA2ODEyN0VCMTIxQTU0QjdBQjEyMUNBMTk0OTIyMzBENTk5MjREQTE5M0UzMEE1MEFCRTIxMkY3OEQ2RDJBRjIyNDYwRjQ5Njc0Q0JGNTAxNzUzNkY1NkM3NUExRjVENzdDMkFGRTUzMjYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzMTAyREFCOEE1MEFCRTIxMkY3OEVGRDJBRjIyQ0EyODEyNjdBQkRBMjg0MDA5MEEyMjA5QjI2NzhFRjQ1MjMyMjJDMkFGRTUzNDYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzMTMyREFCOEE1MEFCRTIxMkY3OEVGRDJBRjIyQ0EyODBBMjIwOTQyMDAzRTEyNjlDMkRBMjgyMkMyQUZFNTM1NjAxNDdFMjAwMDEzNTAwN0NBQjgxMjMxNUREQUI4QTUwQUJFMjEyRjc4RUZEMkFGMjJDQTI4N0U0MDAwMTI2QzVCREEyODIyQzJBRkU1MjM2MDE0N0UyMDAwMTM1MDA3Q0FCODEyMzE4NURBQjhBNTBBQkUyMTJGNzhFRkQyQUYyMjdDQjIyMzBBMkI0OTIyMzE5MDg5MjQzMUEwMzIxMDMyODAzMkYwMzM2MDMzRDAzNDQwMzRCMDdFMjcwMThGQkUyNDAwMDA3ODI0N0UyNDgwMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI0OTMwN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxOUY2ODBEN0EyNzAxOUY3RTYwOUM3QTYzMDFDRjgwMkU3RTYzMDFDRkE1QkUwMDI2N0U2MDAxN0VCMDAwN0VBMEM4MTI2MkI2NDAxODc1MzFCMzEyN0MxNUMyMTg2QzAwN0EwMzAxQ0ZDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNzAxOTFCRTI0MDAwMDc4MjQ3RTI0ODEwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRDODg3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDFBMTY4MEQ3QTI3MDFBMTdFNjA5QzdBNjMwMUQwODAyRTdFNjMwMUQwQTVCRTAwMjY3RTYwMDE3RUIwMDA3RUEwQzgxMjYyQjY0MDE4NzUzMUIzMTI3QzE1QzIxOTZDMDA3QTAzMDFEMEMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI3MDE5M0JFMjQwMDAwNzgyNDdFMjQ4MjAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNEZFMDdEMjFEQTE5MzBFNjE4N0U2MDAwODAxRUJFMjcwMUEzNjgwRDdBMjcwMUEzN0U2MDlDN0E2MzAxRDE4MDJFN0U2MzAxRDFBNUJFMDAyNjdFNjAwMTdFQjAwMDdFQTBDODEyNjJCNjQwMTg3NTMxQjMxMjdDMTVDMjFBNkMwMDdBMDMwMUQxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjcwMTk1QkUyNDAwMDA3ODI0N0UyNDgzMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1MzM4N0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxQTU2ODBEN0EyNzAxQTU3RTYwOUM3QTYzMDFEMjgwMkU3RTYzMDFEMkE1QkUwMDI2N0U2MDAxN0VCMDAwN0VBMEM4MTI2MkI2NDAxODc1MzFCMzEyN0MxNUMyMUI2QzAwN0EwMzAxRDJDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNzAxOTdCRTI0MDAwMDc4MjQ3RTI0ODQwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU2OTA3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDFBNzY4MEQ3QTI3MDFBNzdFNjA5QzdBNjMwMUQzODAyRTdFNjMwMUQzQTVCRTAwMjY3RTYwMDE3RUIwMDA3RUEwQzgxMjYyQjY0MDE4NzUzMUIzMTI3QzE1QzIxQzZDMDA3QTAzMDFEM0MwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI3MDE5OUJFMjQwMDAwNzgyNDdFMjQ4NTAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNTlFODdEMjFEQTE5MzBFNjE4N0U2MDAwODAxRUJFMjcwMUE5NjgwRDdBMjcwMUE5N0U2MDlDN0E2MzAxRDQ4MDJFN0U2MzAxRDRBNUJFMDAyNjdFNjAwMTdFQjAwMDdFQTBDODEyNjJCNjQwMTg3NTMxQjMxMjdDMTVDMjFENkMwMDdBMDMwMUQ0QzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjcwMTlCQkUyNDAwMDA3ODI0N0UyNDg2MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1RDQwN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxQUI2ODBEN0EyNzAxQUI3RTYwOUM3QTYzMDFENTgwMkU3RTYzMDFENUE1QkUwMDI2N0U2MDAxN0VCMDAwN0VBMEM4MTI2MkI2NDAxODc1MzFCMzEyN0MxNUMyMUU2QzAwN0EwMzAxRDVDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNzAxOURCRTI0MDAwMDc4MjQ3RTI0ODcwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjYwOTg3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDFBRDY4MEQ3QTI3MDFBRDdFNjA5QzdBNjMwMUQ2ODAyRTdFNjMwMUQ2QTVCRTAwMjY3RTYwMDE3RUIwMDA3RUEwQzgxMjYyQjY0MDE4NzUzMUIzMTI3QzE1QzIxRjZDMDA3QTAzMDFENkMwRjE3NUYxMDExMjZGRDlEMEYxMjJDMkFGRTUyNDYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzNTNEREFCOEE1MEFCRTIxMkY3OEVGRDJBRjIyN0NCMjIzMEEyQjQ5MjIzNTQ4ODkyNDM1NTgzNTkyMzVDQzM2MDYzNjQwMzY3QTM2QjQzNkVFN0UyNDgwMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI0OTMwN0QyMURBMTk1RUIwMDE3RUEwOTAxMjYyOTM0MDEyNzUzMUI4MTI3QzE1QzIyMEMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODEwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRDODg3RDIxREExOTVFQjAwMTdFQTA5MDEyNjI5MzQwMTI3NTMxQjgxMjdDMTVDMjIxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4MjAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNEZFMDdEMjFEQTE5NUVCMDAxN0VBMDkwMTI2MjkzNDAxMjc1MzFCODEyN0MxNUMyMjJDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDgzMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1MzM4N0QyMURBMTk1RUIwMDE3RUEwOTAxMjYyOTM0MDEyNzUzMUI4MTI3QzE1QzIyM0MwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODQwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU2OTA3RDIxREExOTVFQjAwMTdFQTA5MDEyNjI5MzQwMTI3NTMxQjgxMjdDMTVDMjI0QzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4NTAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNTlFODdEMjFEQTE5NUVCMDAxN0VBMDkwMTI2MjkzNDAxMjc1MzFCODEyN0MxNUMyMjVDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDg2MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1RDQwN0QyMURBMTk1RUIwMDE3RUEwOTAxMjYyOTM0MDEyNzUzMUI4MTI3QzE1QzIyNkMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODcwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjYwOTg3RDIxREExOTVFQjAwMTdFQTA5MDEyNjI5MzQwMTI3NTMxQjgxMjdDMTVDMjI3QzBGMTc1RjEwMTEyNkZEOUQwRjEyMkMyQUZFNTMzNjAxNDdFMjAwMDEzNTAwN0NBQjgxMjM3NDVEQUI4QTUwQUJFMjEyRjc4RUZEMkFGMjI3Q0IyMjMwQTJCNDkyMjM3NTA4OTI0Mzc2MDM3N0YzNzlFMzdCRDM3REMzN0ZCMzgxQTM4Mzk3RTI0ODAwMENBMTk3RDEyMTI0ODFCREExOTEwMDQwMjgwMENEMjAxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4MTAwQ0ExOTdEMTIxMjRCNzNEQTE5MTAwNDAyODAwQ0QyMDFDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDgyMDBDQTE5N0QxMjEyNEVDQkRBMTkxMDA0MDI4MDBDRDIwMUMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODMwMENBMTk3RDEyMTI1MjIzREExOTEwMDQwMjgwMENEMjAxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4NDAwQ0ExOTdEMTIxMjU1N0JEQTE5MTAwNDAyODAwQ0QyMDFDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDg1MDBDQTE5N0QxMjEyNThEM0RBMTkxMDA0MDI4MDBDRDIwMUMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODYwMENBMTk3RDEyMTI1QzJCREExOTEwMDQwMjgwMENEMjAxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4NzAwQ0ExOTdEMTIxMjVGODNEQTE5MTAwNDAyODAwQ0QyMDFDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyQzJBRkMwRjE3NUYxMDFBOTMyRjIxQTdFMDcwMUUxQkUwNDAwMDA3ODEwRTVGNTMzODJFNzQwMDk4NTMxMzExMjdDMTU3NUY2MDBEMEYxRDJBRjIyNDcKKzozQzE1NDAwMDAwN0UwNDAwMDE3RTE0N0ZGODdFMjQwMEZFN0QzMTBCMUE1MDFCMEE1MDdFMTQ0MDFCMDI0MDZBN0VGODAwNkZEMjA0QzI5NEQyOTU3RUY0NDAyQzAyNDA3QzEyN0QzMEY1MkY3QUExMzA3QTExNkUxMjc1Q0ExMjQwREM3RUIzM0ZGMTYwMDMxMjQzRDQ3NUYxMDAxMjc2NkZEMkFGMDIzMDAwN0UwNDAwRkY3RTE4NDA1RjdBMUMwMDAxODkxOEE5MjU4NzAzQTlENTg3RDI5Mzg5MDg3RTA0MDBGRjdFMTg0MDc4N0ExQzAwMDE4OTE4QzI5Mzg5MDg3RTA4MDAyMDdFNDQwNDAwN0U0MDAwN0VFNDQwOEUwMjdDMzA3RTA4MDE2RjdFNDQyODdDN0U0MDAwN0VFNDQwQTAwMjdDMzA3RTA4MDA2RjdFNDQwMTAwN0U0MDUzN0VFNDQwQjIwMjdDMzA3NTZEMjA3NTZDMzA3RTA0MDAwODc1NkE1ODc1NkIwODc1NjcwODc1NjkwMTc1ODkwMTc1OEEwMTc1OEMwMEQyOEM3RTA0MDAwMjdBMDU1ODg5RjQ3NUI3N0Y3NUI4N0Y3NUIzMDc3NUIyMDdEMkE5MjJEMjkyRTRENUUwRkRDMjkyN0UyNDgwMDA3RTExMkY3RUEwMDgxOUEyMDAxMDJFMjQwMTAwQTVEOUYyN0UyMDAwMTI0MTdFMEIyMEJFMjEyRjc4RjYyMjdFMDQ4MDAwNEMwMjc0QkYxOUIwMDAwQzc0MTAxOUIwMDAwODc0ODAxOUIwMDAwQzdFNTQwMDAyMTlBMDAwMDQxOUIwMDAwMDc0MDMxOUIwMDAwQzc0MDdBOTIwMzAwQkE5MzUzMDA1QkUyMDAxMjgwMjc0MEYxOUIwMDAwNEE5MzMzMDE4NzRCRjE5QjAwMDBDNzQyOEE5MjAzMDAyNzQyMDE5QjAwMDA0NzQwMzE5QjAwMDBDNzRBNzE5QjAwMDA4NzQwQzE5QjAwMDEwMjI3RTA0ODAwMDRDMDJFNDE5QjAwMDA0MDlCMDAwMTA1NDA4MTlCMDAwMTA3NEE3MTlCMDAwMDgyMjdDQjIyMzBBMkI0OTIyNDFBNTg5MjQ0MUI1NDFENDQxRjM0MjEyNDIzMTQyNTA0MjZGNDI4RUMyMTBDMjE4QzIyMEMyMDg3RTA0MDlFMzdBMDcwMTZGN0EwNzAxN0Y2RDAwN0EwNzAxOEY3QTA3MDE5RjIyQzIxMUMyMTlDMjIxQzIwOTdFMDQwREUzN0EwNzAxNzE3QTA3MDE4MTZEMDA3QTA3MDE5MTdBMDcwMUExMjJDMjEyQzIxQUMyMjJDMjBBN0UwNDExRTM3QTA3MDE3MzdBMDcwMTgzNkQwMDdBMDcwMTkzN0EwNzAxQTMyMkMyMTNDMjFCQzIyM0MyMEI3RTA0MTVFMzdBMDcwMTc1N0EwNzAxODU2RDAwN0EwNzAxOTU3QTA3MDFBNTIyQzIxNEMyMUNDMjI0QzIwQzdFMDQxOUUzN0EwNzAxNzc3QTA3MDE4NzZEMDA3QTA3MDE5NzdBMDcwMUE3MjJDMjE1QzIxREMyMjVDMjBEN0UwNDFERTM3QTA3MDE3OTdBMDcwMTg5NkQwMDdBMDcwMTk5N0EwNzAxQTkyMkMyMTZDMjFFQzIyNkMyMEU3RTA0MjFFMzdBMDcwMTdCN0EwNzAxOEI2RDAwN0EwNzAxOUI3QTA3MDFBQjIyQzIxN0MyMUZDMjI3QzIwRjdFMDQyNUUzN0EwNzAxN0Q3QTA3MDE4RDZEMDA3QTA3MDE5RDdBMDcwMUFEMjI3Q0IyMjMwQTJCNDkyMjQyQjg4OTI0NDJDODQyRTk0MzBBNDMyQjQzNEM0MzZENDM4RTQzQUYzMDUwMDcyMDY4MDRDMjI4ODAxNjMwNDAwNzIwNjAwNEMyMjg4MDBDMzA0ODA3MjA1ODA0QzIyODgwMDJEMjI4MjIzMDUxMDcyMDY5MDRDMjI5ODAxNjMwNDEwNzIwNjEwNEMyMjk4MDBDMzA0OTA3MjA1OTA0QzIyOTgwMDJEMjI5MjIzMDUyMDcyMDZBMDRDMjJBODAxNjMwNDIwNzIwNjIwNEMyMkE4MDBDMzA0QTA3MjA1QTA0QzIyQTgwMDJEMjJBMjIzMDUzMDcyMDZCMDRDMjJCODAxNjMwNDMwNzIwNjMwNEMyMkI4MDBDMzA0QjA3MjA1QjA0QzIyQjgwMDJEMjJCMjIzMDU0MDcyMDZDMDRDMjJDODAxNjMwNDQwNzIwNjQwNEMyMkM4MDBDMzA0QzA3MjA1QzA0QzIyQzgwMDJEMjJDMjIzMDU1MDcyMDZEMDRDMjJEODAxNjMwNDUwNzIwNjUwNEMyMkQ4MDBDMzA0RDA3MjA1RDA0QzIyRDgwMDJEMjJEMjIzMDU2MDcyMDZFMDRDMjJFODAxNjMwNDYwNzIwNjYwNEMyMkU4MDBDMzA0RTA3MjA1RTA0QzIyRTgwMDJEMjJFMjIzMDU3MDcyMDZGMDRDMjJGODAxNjMwNDcwNzIwNjcwNEMyMkY4MDBDMzA0RjA3MjA1RjA0QzIyRjgwMDJEMjJGMjI0NDM4NDNFNUJFQjAwMjQwMDEyMjIzMEE1QjQ5NTU0M0QwOTk1NEQzMjJBOUM1ODcxMjQ0NDM3RTA0MDVFMzdBMDcwMUQ3N0EwNzAxRDk3RTA0MDFFMzdBMDcwMUREN0EwNzAxREY3RTA0NzRBRDdBMDU2MTc1RjEwMTc1RTExRjc1RTQwNDc1RjQwNDc1RjEwMjc1RTEwMzc1RTQwNDc1RjQwNDQzQTIxQzEyNDBFQjdFMjAwMDEyNDE5QTBCMjBCRTIxMkY3OEY2RDJBODIyQTlENTg3MTI0NDQzRDI5MkMyQTgyMjc1QTMwMDUzQTIwMzc1QzEwMDUzQzAwMzdFMDAwNTdBMDFGMTQzRjQ4MDQzRTQ4MEU1RjI1NDdGNDQwOEY1RjJFNUUyNTQ3RjQ0MDhGNUUyNzVFMTEwQTVEOEUxMjJDQTA5MTIzMDIwMTAwMTEyRDU2NzFFNjM2OTAxN0UwMDZBMkUwMTY5QTVFNkY1Njc4MDEyMjAwMjFFNzU2OTAwODU2QTY3RDIwMjc0MDA4MDBEMzAwMjBGQzIwMjdFMDA2QzJFMDE2OUE1RTY1MzkwQ0Y0MjkwREEwOTMyQzBEMEMwRDFDMEUwQzBGMENBMEJDQTFCQ0EyQkQyMDE3NTMxODkxMjdDMTU3RTE0ODAwMDA5QjEwMDA4MjBFMDAzMDI0NTRGMjA3ODVBQTUwQTA5QjEwMDA4MjBFMDAzMDI0NTY3MjA3OTRCQTUwQTA5QjEwMDA4MjBFMDAzMDI0NTdGQTUwQTA5QjEwMDA4MjBFMDAzMDI0NTk3MjA3QTMwQTUwQTA5QjEwMDA4MjBFMDAzMDI0NUFGQTUwQTA5QjEwMDA4MjBFMDAzMDI0NUM3QTUwQTA5QjEwMDA4MjBFMDAzMDI0NURGQTUwQTA5QjEwMDA4MjBFMDAzMDI0NUY3MzAwNDBDQzIwNEMwRjE3NUYxMDExMjZGRDlEMEYxREEyQkRBMUJEQTBCRDBGMEQwRTBEMEQxRDBEMDMyNzUzMTgwMTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MzJCQ0EwNkM2NDQ4OTU0NzUzMTgxMTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MzZCQ0EwNkM2NDQ4OTU0NzUzMTgyMTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2M0FCQ0EwNkM2NDQ4OTU0NzUzMTgzMTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2M0VCQ0EwNkM2NDQ4OTU0NzUzMTg0MTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2NDJCQ0EwNkM2NDQ4OTU0NzUzMTg1MTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2NDZCQ0EwNkM2NDQ4OTU0NzUzMTg2MTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2NEFCQ0EwNkM2NDQ4OTU0NzUzMTg3MTI3QzE1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2NEVCQ0EwNkM2NDQ4OTU0MTAwODAxMjIyMDI4MDNEMjA4MjI3NTMxQTAxMjdDMTU3RTE0ODAwMDgwMDYyMDI4MDNEMjA4MjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNDkzMDIwRTYwM0QyMDgyMjMwMzA0OUQyNzA3RTM3MDE4RjdFMjcwMUFGOUQzMjQwMzE3RDAyMkUwNTQ4N0EwNTQ4N0EzNzAxOEY3RTM3MDE2RjdENDMyRDQyQkU0NDBERTIzODY4N0E0NzAxNkY3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUxMjY1MkIxMDcwQzQyMkMyNzAyRDIzNjg3ODZEMzM4MDFBN0UyNzAxOEZCRTI0MDAwMDY4NkFCRTI3MDFBRjI4MDQ3RTI3MDFBRjdFMzcwMThGOUQzMjdEMDIyRTA1NDg3QTA1NDg3QTM3MDE4RjdFMzcwMTZGN0Q0MzJENDJCRTQ0MERFMjM4MTM3QTQ3MDE2Rjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTAyNjUyQjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTlFNDQwREUzOUQyNDEyNjUyQjdFMzQwOUUzN0QyNDJENDM3QTQ3MDE2RjEyNjUyQkJFMjUyMDc4MDMwMjQ2N0YyMkQyMDg3RTA0MDlFMzdBMDcwMTZGN0EwNzAxN0Y3NTMxOTQxMjdDMTU3NTMxMDAxMjdDMTUyMjc1MzE5MjEyN0MxNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4NzA3RTM3MDFFMTdFMjcwMUJGMkUyNDAwMDIyRDMyQkUzNDA0MDAzODNDN0QwMjJFMDU0NjdBMDU0NjdBMzcwMUUxN0UzNzAxREY3RDQzMkQ0MkJFNDQwNUUyMzg0NDdBNDcwMURGN0UyNDAwMDAyRTI3MDFCRjFCMzgyMDBCMzU3QTUxMzExMjdDMTVCRTUwMzg3ODAzMDI2NjE2MDI2NUZCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDM4MEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTAyMjgwN0Q3QTUxMzExMjdDMTU5RTQ0MDVFMzlEMjQ3RTY0MDAwMDJFNjcwMUJGOUUyNDAwMDI0MDE3MUIzODYwMEIzNTEyNjVGQjdFMzQwMUUzN0QyNDJENDM3QTQ3MDFERjAyNjVGQjdBMzlDMDdFMzQwMUUzN0EzOUQwMEIzNDFCNDQ4MEU1OUQzMjdDQjY1NDBGMjMyMzIzNDQwMDdBNjlCMDdBNzk3MDBCMzU3NTMxOTMxMjdDMTU3QTcxMzExMjdDMTVCRDA0NjgyOTdBMDcwMURGN0U0NzAxRTEyRDQzN0E0NzAxRTEyRTM1NDY3QTM1NDYyMjA5QjEwMDE0MjBFMDEzMjI3RTA0MDFFMzgwMkE3RTA0MDFFMzgwMkM3RTA0MDFFMzgwRDFEMjA0N0UwNzAxRTE3RTI0MDNGRTlEMjAyODQwN0UwNzAxREY3RTQ0MDVFMzdENjAwQjA0QkQwNDY4RDA3RDcwMEIwNEJEMDQ2OENFN0Q1NDlENTBCRDI1NDAwMjdEMjU3RDMyMDlCMTAwMTRDQUI4NTQxRkI0MDEzMURBQjg3RTE5QjA3QTA5QjAwQjA0MUIyNDc4RTcwMjQ3RTM3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwMzgwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMDIyREFCODMwRTBEOEJEMzI2ODA3Q0FCODEyNDdFM0RBQjgwMjQ5MzAwOUIxMDAxODdFQTA4ODc1MzE5MDEyN0MxNUY1MzExMjdDMTVBNUZDNUVCMEYwQTVGRDA5QjEwMDE4NEM0QjVFQjBGMEJDQjU3OEYxNUU0MDBGNEM1NDdDQjU1RTUwMEI2ODJBQTVGRDVFNTAxMDY4MDREMjY4ODAwMkMyNjhBNUZENUU1MDIwNjgwNEQyNjA4MDAyQzI2MEE1RkQ1RTUwODA2ODA0RDI1ODgwMDJDMjU4MTI0MkM4MDI2MjkzNzUzMTkxMTI3QzE1MDlCMTAwMTQ3QUIxMzExMjdDMTUyMEUwMDhEMjA0N0VBMDgwMDI2MjkzRDIwNDMwRTEwNjdFQTA4MDEyNjI5M0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MkI2MDlCMTAwMTQyMEUwREIyMjAyNDgzNTc1MzE5NTEyN0MxNTIyNzUzMTk2MTI3QzE1MjIxMDA5MDEyMjIwMjkwM0QyMDkyMjc1MzFBMTEyN0MxNTdFMTQ4MTAwODAwNjIwMjkwM0QyMDkyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI0Qzg4MjBFNjAzRDIwOTIyMzAzMTQ5RDI3MTdFMzcwMTkxN0UyNzAxQjE5RDMyNDAzMTdEMDIyRTA1NEE3QTA1NEE3QTM3MDE5MTdFMzcwMTcxN0Q0MzJENDJCRTQ0MTFFMjM4Njg3QTQ3MDE3MTc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTEyNjUyQjEwNzFDNDIyQzI3MTJEMjM2ODc4NkQzMzgwMUE3RTI3MDE5MUJFMjQwMDAwNjg2QUJFMjcwMUIxMjgwNDdFMjcwMUIxN0UzNzAxOTE5RDMyN0QwMjJFMDU0QTdBMDU0QTdBMzcwMTkxN0UzNzAxNzE3RDQzMkQ0MkJFNDQxMUUyMzgxMzdBNDcwMTcxNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MDI2NTJCNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1OUU0NDExRTM5RDI0MTI2NTJCN0UzNDBERTM3RDI0MkQ0MzdBNDcwMTcxMTI2NTJCQkUyNTIwNzgwMzAyNDlENzIyRDIwOTdFMDQwREUzN0EwNzAxNzE3QTA3MDE4MTc1MzE5NDEyN0MxNTc1MzEwMDEyN0MxNTIyNzUzMTkyMTI3QzE1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg3MDdFMzcwMUUxN0UyNzAxQzEyRTI0MDAwMjJEMzJCRTM0MDQwMDM4M0M3RDAyMkUwNTQ2N0EwNTQ2N0EzNzAxRTE3RTM3MDFERjdENDMyRDQyQkU0NDA1RTIzODQ0N0E0NzAxREY3RTI0MDEwMDJFMjcwMUMxMUIzODIwMEIzNTdBNTEzMTEyN0MxNUJFNTAzODc4MDMwMjY2MTYwMjY1RkI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwMzkwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMTIyODA3RDdBNTEzMTEyN0MxNTlFNDQwNUUzOUQyNDdFNjQwMTAwMkU2NzAxQzE5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2NUZCN0UzNDAxRTM3RDI0MkQ0MzdBNDcwMURGMDI2NUZCN0EzOUMwN0UzNDAxRTM3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDAxN0E2OUIwN0E3OTcwMEIzNTc1MzE5MzEyN0MxNTdBNzEzMTEyN0MxNUJEMDQ2ODI5N0EwNzAxREY3RTQ3MDFFMTJENDM3QTQ3MDFFMTJFMzU0NjdBMzU0NjIyMDlCMTAwMTQyMEUwMTMyMjdFMDQwMUUzODAyQTdFMDQwMUUzODAyQzdFMDQwMUUzODBEMUQyMDQ3RTA3MDFFMTdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFERjdFNDQwNUUzN0Q2MDBCMDRCRDA0NjhEMDdENzAwQjA0QkQwNDY4Q0U3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNEIzQjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzOTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjExMjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI0QjNCREFCODAyNEM4ODA5QjEwMDE4N0VBMDg4NzUzMTkwMTI3QzE1RjUzMTEyN0MxNUE1RkM1RUIwRjBBNUZEMDlCMTAwMTg0QzRCNUVCMEYwQkNCNTc4RjE1RTQwMEY0QzU0N0NCNTVFNTAwQjY4MkFBNUZENUU1MDEwNjgwNEQyNjk4MDAyQzI2OUE1RkQ1RTUwMjA2ODA0RDI2MTgwMDJDMjYxQTVGRDVFNTA4MDY4MDREMjU5ODAwMkMyNTkxMjQyRTkwMjYyOTM3NTMxOTExMjdDMTUwOUIxMDAxNDdBQjEzMTEyN0MxNTIwRTAwOEQyMDQ3RUEwODAwMjYyOTNEMjA0MzBFMTA2N0VBMDgwMTI2MjkzQ0FCODVFQjAxQ0RBQjg2ODEyN0VBMEMwMDk2MTAwMDAxMjYyQjYwOUIxMDAxNDIwRTBEQjIyMDI0QjhENzUzMTk1MTI3QzE1MjI3NTMxOTYxMjdDMTUyMjEwMEEwMTIyMjAyQTAzRDIwQTIyNzUzMUEyMTI3QzE1N0UxNDgyMDA4MDA2MjAyQTAzRDIwQTIyMDlCMTAwMTRDQUI4NUVCMDFFREFCODY4MDMxMjRGRTAyMEU2MDNEMjBBMjIzMDMyNDlEMjcyN0UzNzAxOTM3RTI3MDFCMzlEMzI0MDMxN0QwMjJFMDU0QzdBMDU0QzdBMzcwMTkzN0UzNzAxNzM3RDQzMkQ0MkJFNDQxNUUyMzg2ODdBNDcwMTczNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MTI2NTJCMTA3MkM0MjJDMjcyMkQyMzY4Nzg2RDMzODAxQTdFMjcwMTkzQkUyNDAwMDA2ODZBQkUyNzAxQjMyODA0N0UyNzAxQjM3RTM3MDE5MzlEMzI3RDAyMkUwNTRDN0EwNTRDN0EzNzAxOTM3RTM3MDE3MzdENDMyRDQyQkU0NDE1RTIzODEzN0E0NzAxNzM3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUwMjY1MkI3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTU5RTQ0MTVFMzlEMjQxMjY1MkI3RTM0MTFFMzdEMjQyRDQzN0E0NzAxNzMxMjY1MkJCRTI1MjA3ODAzMDI0RDJGMjJEMjBBN0UwNDExRTM3QTA3MDE3MzdBMDcwMTgzNzUzMTk0MTI3QzE1NzUzMTAwMTI3QzE1MjI3NTMxOTIxMjdDMTVEMjA0MDlCMTAwMTRDQUI4NTQ4MkRBQjg3ODcwN0UzNzAxRTE3RTI3MDFDMzJFMjQwMDAyMkQzMkJFMzQwNDAwMzgzQzdEMDIyRTA1NDY3QTA1NDY3QTM3MDFFMTdFMzcwMURGN0Q0MzJENDJCRTQ0MDVFMjM4NDQ3QTQ3MDFERjdFMjQwMjAwMkUyNzAxQzMxQjM4MjAwQjM1N0E1MTMxMTI3QzE1QkU1MDM4NzgwMzAyNjYxNjAyNjVGQjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEyMjI4MDdEN0E1MTMxMTI3QzE1OUU0NDA1RTM5RDI0N0U2NDAyMDAyRTY3MDFDMzlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjY1RkI3RTM0MDFFMzdEMjQyRDQzN0E0NzAxREYwMjY1RkI3QTM5QzA3RTM0MDFFMzdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDI3QTY5QjA3QTc5NzAwQjM1NzUzMTkzMTI3QzE1N0E3MTMxMTI3QzE1QkQwNDY4Mjk3QTA3MDFERjdFNDcwMUUxMkQ0MzdBNDcwMUUxMkUzNTQ2N0EzNTQ2MjIwOUIxMDAxNDIwRTAxMzIyN0UwNDAxRTM4MDJBN0UwNDAxRTM4MDJDN0UwNDAxRTM4MEQxRDIwNDdFMDcwMUUxN0UyNDAzRkU5RDIwMjg0MDdFMDcwMURGN0U0NDA1RTM3RDYwMEIwNEJEMDQ2OEQwN0Q3MDBCMDRCRDA0NjhDRTdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI0RTkzNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNBMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTIyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjRFOTNEQUI4MDI0RkUwMDlCMTAwMTg3RUEwODg3NTMxOTAxMjdDMTVGNTMxMTI3QzE1QTVGQzVFQjBGMEE1RkQwOUIxMDAxODRDNEI1RUIwRjBCQ0I1NzhGMTVFNDAwRjRDNTQ3Q0I1NUU1MDBCNjgyQUE1RkQ1RTUwMTA2ODA0RDI2QTgwMDJDMjZBQTVGRDVFNTAyMDY4MDREMjYyODAwMkMyNjJBNUZENUU1MDgwNjgwNEQyNUE4MDAyQzI1QTEyNDMwQTAyNjI5Mzc1MzE5MTEyN0MxNTA5QjEwMDE0N0FCMTMxMTI3QzE1MjBFMDA4RDIwNDdFQTA4MDAyNjI5M0QyMDQzMEUxMDY3RUEwODAxMjYyOTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjJCNjA5QjEwMDE0MjBFMERCMjIwMjRFRTU3NTMxOTUxMjdDMTUyMjc1MzE5NjEyN0MxNTIyMTAwQjAxMjIyMDJCMDNEMjBCMjI3NTMxQTMxMjdDMTU3RTE0ODMwMDgwMDYyMDJCMDNEMjBCMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNTMzODIwRTYwM0QyMEIyMjMwMzM0OUQyNzM3RTM3MDE5NTdFMjcwMUI1OUQzMjQwMzE3RDAyMkUwNTRFN0EwNTRFN0EzNzAxOTU3RTM3MDE3NTdENDMyRDQyQkU0NDE5RTIzODY4N0E0NzAxNzU3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUxMjY1MkIxMDczQzQyMkMyNzMyRDIzNjg3ODZEMzM4MDFBN0UyNzAxOTVCRTI0MDAwMDY4NkFCRTI3MDFCNTI4MDQ3RTI3MDFCNTdFMzcwMTk1OUQzMjdEMDIyRTA1NEU3QTA1NEU3QTM3MDE5NTdFMzcwMTc1N0Q0MzJENDJCRTQ0MTlFMjM4MTM3QTQ3MDE3NTc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTAyNjUyQjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTlFNDQxOUUzOUQyNDEyNjUyQjdFMzQxNUUzN0QyNDJENDM3QTQ3MDE3NTEyNjUyQkJFMjUyMDc4MDMwMjUwODcyMkQyMEI3RTA0MTVFMzdBMDcwMTc1N0EwNzAxODU3NTMxOTQxMjdDMTU3NTMxMDAxMjdDMTUyMjc1MzE5MjEyN0MxNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4NzA3RTM3MDFFMTdFMjcwMUM1MkUyNDAwMDIyRDMyQkUzNDA0MDAzODNDN0QwMjJFMDU0NjdBMDU0NjdBMzcwMUUxN0UzNzAxREY3RDQzMkQ0MkJFNDQwNUUyMzg0NDdBNDcwMURGN0UyNDAzMDAyRTI3MDFDNTFCMzgyMDBCMzU3QTUxMzExMjdDMTVCRTUwMzg3ODAzMDI2NjE2MDI2NUZCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNCMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTMyMjgwN0Q3QTUxMzExMjdDMTU5RTQ0MDVFMzlEMjQ3RTY0MDMwMDJFNjcwMUM1OUUyNDAwMDI0MDE3MUIzODYwMEIzNTEyNjVGQjdFMzQwMUUzN0QyNDJENDM3QTQ3MDFERjAyNjVGQjdBMzlDMDdFMzQwMUUzN0EzOUQwMEIzNDFCNDQ4MEU1OUQzMjdDQjY1NDBGMjMyMzIzNDQwMzdBNjlCMDdBNzk3MDBCMzU3NTMxOTMxMjdDMTU3QTcxMzExMjdDMTVCRDA0NjgyOTdBMDcwMURGN0U0NzAxRTEyRDQzN0E0NzAxRTEyRTM1NDY3QTM1NDYyMjA5QjEwMDE0MjBFMDEzMjI3RTA0MDFFMzgwMkE3RTA0MDFFMzgwMkM3RTA0MDFFMzgwRDFEMjA0N0UwNzAxRTE3RTI0MDNGRTlEMjAyODQwN0UwNzAxREY3RTQ0MDVFMzdENjAwQjA0QkQwNDY4RDA3RDcwMEIwNEJEMDQ2OENFN0Q1NDlENTBCRDI1NDAwMjdEMjU3RDMyMDlCMTAwMTRDQUI4NTQxRkI0MDEzMURBQjg3RTE5QjA3QTA5QjAwQjA0MUIyNDc4RTcwMjUxRUI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0IwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMzIyREFCODMwRTBEOEJEMzI2ODA3Q0FCODEyNTFFQkRBQjgwMjUzMzgwOUIxMDAxODdFQTA4ODc1MzE5MDEyN0MxNUY1MzExMjdDMTVBNUZDNUVCMEYwQTVGRDA5QjEwMDE4NEM0QjVFQjBGMEJDQjU3OEYxNUU0MDBGNEM1NDdDQjU1RTUwMEI2ODJBQTVGRDVFNTAxMDY4MDREMjZCODAwMkMyNkJBNUZENUU1MDIwNjgwNEQyNjM4MDAyQzI2M0E1RkQ1RTUwODA2ODA0RDI1QjgwMDJDMjVCMTI0MzJCMDI2MjkzNzUzMTkxMTI3QzE1MDlCMTAwMTQ3QUIxMzExMjdDMTUyMEUwMDhEMjA0N0VBMDgwMDI2MjkzRDIwNDMwRTEwNjdFQTA4MDEyNjI5M0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MkI2MDlCMTAwMTQyMEUwREIyMjAyNTIzRDc1MzE5NTEyN0MxNTIyNzUzMTk2MTI3QzE1MjIxMDBDMDEyMjIwMkMwM0QyMEMyMjc1MzFBNDEyN0MxNTdFMTQ4NDAwODAwNjIwMkMwM0QyMEMyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1NjkwMjBFNjAzRDIwQzIyMzAzNDQ5RDI3NDdFMzcwMTk3N0UyNzAxQjc5RDMyNDAzMTdEMDIyRTA1NTA3QTA1NTA3QTM3MDE5NzdFMzcwMTc3N0Q0MzJENDJCRTQ0MURFMjM4Njg3QTQ3MDE3Nzc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTEyNjUyQjEwNzRDNDIyQzI3NDJEMjM2ODc4NkQzMzgwMUE3RTI3MDE5N0JFMjQwMDAwNjg2QUJFMjcwMUI3MjgwNDdFMjcwMUI3N0UzNzAxOTc5RDMyN0QwMjJFMDU1MDdBMDU1MDdBMzcwMTk3N0UzNzAxNzc3RDQzMkQ0MkJFNDQxREUyMzgxMzdBNDcwMTc3NzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MDI2NTJCNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1OUU0NDFERTM5RDI0MTI2NTJCN0UzNDE5RTM3RDI0MkQ0MzdBNDcwMTc3MTI2NTJCQkUyNTIwNzgwMzAyNTNERjIyRDIwQzdFMDQxOUUzN0EwNzAxNzc3QTA3MDE4Nzc1MzE5NDEyN0MxNTc1MzEwMDEyN0MxNTIyNzUzMTkyMTI3QzE1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg3MDdFMzcwMUUxN0UyNzAxQzcyRTI0MDAwMjJEMzJCRTM0MDQwMDM4M0M3RDAyMkUwNTQ2N0EwNTQ2N0EzNzAxRTE3RTM3MDFERjdENDMyRDQyQkU0NDA1RTIzODQ0N0E0NzAxREY3RTI0MDQwMDJFMjcwMUM3MUIzODIwMEIzNTdBNTEzMTEyN0MxNUJFNTAzODc4MDMwMjY2MTYwMjY1RkI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0MwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNDIyODA3RDdBNTEzMTEyN0MxNTlFNDQwNUUzOUQyNDdFNjQwNDAwMkU2NzAxQzc5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2NUZCN0UzNDAxRTM3RDI0MkQ0MzdBNDcwMURGMDI2NUZCN0EzOUMwN0UzNDAxRTM3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDA0N0E2OUIwN0E3OTcwMEIzNTc1MzE5MzEyN0MxNTdBNzEzMTEyN0MxNUJEMDQ2ODI5N0EwNzAxREY3RTQ3MDFFMTJENDM3QTQ3MDFFMTJFMzU0NjdBMzU0NjIyMDlCMTAwMTQyMEUwMTMyMjdFMDQwMUUzODAyQTdFMDQwMUUzODAyQzdFMDQwMUUzODBEMUQyMDQ3RTA3MDFFMTdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFERjdFNDQwNUUzN0Q2MDBCMDRCRDA0NjhEMDdENzAwQjA0QkQwNDY4Q0U3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNTU0Mzc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQzBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE0MjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1NTQzREFCODAyNTY5MDA5QjEwMDE4N0VBMDg4NzUzMTkwMTI3QzE1RjUzMTEyN0MxNUE1RkM1RUIwRjBBNUZEMDlCMTAwMTg0QzRCNUVCMEYwQkNCNTc4RjE1RTQwMEY0QzU0N0NCNTVFNTAwQjY4MkFBNUZENUU1MDEwNjgwNEQyNkM4MDAyQzI2Q0E1RkQ1RTUwMjA2ODA0RDI2NDgwMDJDMjY0QTVGRDVFNTA4MDY4MDREMjVDODAwMkMyNUMxMjQzNEMwMjYyOTM3NTMxOTExMjdDMTUwOUIxMDAxNDdBQjEzMTEyN0MxNTIwRTAwOEQyMDQ3RUEwODAwMjYyOTNEMjA0MzBFMTA2N0VBMDgwMTI2MjkzQ0FCODVFQjAxQ0RBQjg2ODEyN0VBMEMwMDk2MTAwMDAxMjYyQjYwOUIxMDAxNDIwRTBEQjIyMDI1NTk1NzUzMTk1MTI3QzE1MjI3NTMxOTYxMjdDMTUyMjEwMEQwMTIyMjAyRDAzRDIwRDIyNzUzMUE1MTI3QzE1N0UxNDg1MDA4MDA2MjAyRDAzRDIwRDIyMDlCMTAwMTRDQUI4NUVCMDFFREFCODY4MDMxMjU5RTgyMEU2MDNEMjBEMjIzMDM1NDlEMjc1N0UzNzAxOTk3RTI3MDFCOTlEMzI0MDMxN0QwMjJFMDU1MjdBMDU1MjdBMzcwMTk5N0UzNzAxNzk3RDQzMkQ0MkJFNDQyMUUyMzg2ODdBNDcwMTc5NzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MTI2NTJCMTA3NUM0MjJDMjc1MkQyMzY4Nzg2RDMzODAxQTdFMjcwMTk5QkUyNDAwMDA2ODZBQkUyNzAxQjkyODA0N0UyNzAxQjk3RTM3MDE5OTlEMzI3RDAyMkUwNTUyN0EwNTUyN0EzNzAxOTk3RTM3MDE3OTdENDMyRDQyQkU0NDIxRTIzODEzN0E0NzAxNzk3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUwMjY1MkI3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTU5RTQ0MjFFMzlEMjQxMjY1MkI3RTM0MURFMzdEMjQyRDQzN0E0NzAxNzkxMjY1MkJCRTI1MjA3ODAzMDI1NzM3MjJEMjBEN0UwNDFERTM3QTA3MDE3OTdBMDcwMTg5NzUzMTk0MTI3QzE1NzUzMTAwMTI3QzE1MjI3NTMxOTIxMjdDMTVEMjA0MDlCMTAwMTRDQUI4NTQ4MkRBQjg3ODcwN0UzNzAxRTE3RTI3MDFDOTJFMjQwMDAyMkQzMkJFMzQwNDAwMzgzQzdEMDIyRTA1NDY3QTA1NDY3QTM3MDFFMTdFMzcwMURGN0Q0MzJENDJCRTQ0MDVFMjM4NDQ3QTQ3MDFERjdFMjQwNTAwMkUyNzAxQzkxQjM4MjAwQjM1N0E1MTMxMTI3QzE1QkU1MDM4NzgwMzAyNjYxNjAyNjVGQjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRDBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE1MjI4MDdEN0E1MTMxMTI3QzE1OUU0NDA1RTM5RDI0N0U2NDA1MDAyRTY3MDFDOTlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjY1RkI3RTM0MDFFMzdEMjQyRDQzN0E0NzAxREYwMjY1RkI3QTM5QzA3RTM0MDFFMzdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDU3QTY5QjA3QTc5NzAwQjM1NzUzMTkzMTI3QzE1N0E3MTMxMTI3QzE1QkQwNDY4Mjk3QTA3MDFERjdFNDcwMUUxMkQ0MzdBNDcwMUUxMkUzNTQ2N0EzNTQ2MjIwOUIxMDAxNDIwRTAxMzIyN0UwNDAxRTM4MDJBN0UwNDAxRTM4MDJDN0UwNDAxRTM4MEQxRDIwNDdFMDcwMUUxN0UyNDAzRkU5RDIwMjg0MDdFMDcwMURGN0U0NDA1RTM3RDYwMEIwNEJEMDQ2OEQwN0Q3MDBCMDRCRDA0NjhDRTdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1ODlCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNEMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTUyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjU4OUJEQUI4MDI1OUU4MDlCMTAwMTg3RUEwODg3NTMxOTAxMjdDMTVGNTMxMTI3QzE1QTVGQzVFQjBGMEE1RkQwOUIxMDAxODRDNEI1RUIwRjBCQ0I1NzhGMTVFNDAwRjRDNTQ3Q0I1NUU1MDBCNjgyQUE1RkQ1RTUwMTA2ODA0RDI2RDgwMDJDMjZEQTVGRDVFNTAyMDY4MDREMjY1ODAwMkMyNjVBNUZENUU1MDgwNjgwNEQyNUQ4MDAyQzI1RDEyNDM2RDAyNjI5Mzc1MzE5MTEyN0MxNTA5QjEwMDE0N0FCMTMxMTI3QzE1MjBFMDA4RDIwNDdFQTA4MDAyNjI5M0QyMDQzMEUxMDY3RUEwODAxMjYyOTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjJCNjA5QjEwMDE0MjBFMERCMjIwMjU4RUQ3NTMxOTUxMjdDMTUyMjc1MzE5NjEyN0MxNTIyMTAwRTAxMjIyMDJFMDNEMjBFMjI3NTMxQTYxMjdDMTU3RTE0ODYwMDgwMDYyMDJFMDNEMjBFMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNUQ0MDIwRTYwM0QyMEUyMjMwMzY0OUQyNzY3RTM3MDE5QjdFMjcwMUJCOUQzMjQwMzE3RDAyMkUwNTU0N0EwNTU0N0EzNzAxOUI3RTM3MDE3QjdENDMyRDQyQkU0NDI1RTIzODY4N0E0NzAxN0I3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUxMjY1MkIxMDc2QzQyMkMyNzYyRDIzNjg3ODZEMzM4MDFBN0UyNzAxOUJCRTI0MDAwMDY4NkFCRTI3MDFCQjI4MDQ3RTI3MDFCQjdFMzcwMTlCOUQzMjdEMDIyRTA1NTQ3QTA1NTQ3QTM3MDE5QjdFMzcwMTdCN0Q0MzJENDJCRTQ0MjVFMjM4MTM3QTQ3MDE3Qjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTAyNjUyQjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTlFNDQyNUUzOUQyNDEyNjUyQjdFMzQyMUUzN0QyNDJENDM3QTQ3MDE3QjEyNjUyQkJFMjUyMDc4MDMwMjVBOEYyMkQyMEU3RTA0MjFFMzdBMDcwMTdCN0EwNzAxOEI3NTMxOTQxMjdDMTU3NTMxMDAxMjdDMTUyMjc1MzE5MjEyN0MxNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4NzA3RTM3MDFFMTdFMjcwMUNCMkUyNDAwMDIyRDMyQkUzNDA0MDAzODNDN0QwMjJFMDU0NjdBMDU0NjdBMzcwMUUxN0UzNzAxREY3RDQzMkQ0MkJFNDQwNUUyMzg0NDdBNDcwMURGN0UyNDA2MDAyRTI3MDFDQjFCMzgyMDBCMzU3QTUxMzExMjdDMTVCRTUwMzg3ODAzMDI2NjE2MDI2NUZCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNFMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTYyMjgwN0Q3QTUxMzExMjdDMTU5RTQ0MDVFMzlEMjQ3RTY0MDYwMDJFNjcwMUNCOUUyNDAwMDI0MDE3MUIzODYwMEIzNTEyNjVGQjdFMzQwMUUzN0QyNDJENDM3QTQ3MDFERjAyNjVGQjdBMzlDMDdFMzQwMUUzN0EzOUQwMEIzNDFCNDQ4MEU1OUQzMjdDQjY1NDBGMjMyMzIzNDQwNjdBNjlCMDdBNzk3MDBCMzU3NTMxOTMxMjdDMTU3QTcxMzExMjdDMTVCRDA0NjgyOTdBMDcwMURGN0U0NzAxRTEyRDQzN0E0NzAxRTEyRTM1NDY3QTM1NDYyMjA5QjEwMDE0MjBFMDEzMjI3RTA0MDFFMzgwMkE3RTA0MDFFMzgwMkM3RTA0MDFFMzgwRDFEMjA0N0UwNzAxRTE3RTI0MDNGRTlEMjAyODQwN0UwNzAxREY3RTQ0MDVFMzdENjAwQjA0QkQwNDY4RDA3RDcwMEIwNEJEMDQ2OENFN0Q1NDlENTBCRDI1NDAwMjdEMjU3RDMyMDlCMTAwMTRDQUI4NTQxRkI0MDEzMURBQjg3RTE5QjA3QTA5QjAwQjA0MUIyNDc4RTcwMjVCRjM3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0UwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNjIyREFCODMwRTBEOEJEMzI2ODA3Q0FCODEyNUJGM0RBQjgwMjVENDAwOUIxMDAxODdFQTA4ODc1MzE5MDEyN0MxNUY1MzExMjdDMTVBNUZDNUVCMEYwQTVGRDA5QjEwMDE4NEM0QjVFQjBGMEJDQjU3OEYxNUU0MDBGNEM1NDdDQjU1RTUwMEI2ODJBQTVGRDVFNTAxMDY4MDREMjZFODAwMkMyNkVBNUZENUU1MDIwNjgwNEQyNjY4MDAyQzI2NkE1RkQ1RTUwODA2ODA0RDI1RTgwMDJDMjVFMTI0MzhFMDI2MjkzNzUzMTkxMTI3QzE1MDlCMTAwMTQ3QUIxMzExMjdDMTUyMEUwMDhEMjA0N0VBMDgwMDI2MjkzRDIwNDMwRTEwNjdFQTA4MDEyNjI5M0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MkI2MDlCMTAwMTQyMEUwREIyMjAyNUM0NTc1MzE5NTEyN0MxNTIyNzUzMTk2MTI3QzE1MjIxMDBGMDEyMjIwMkYwM0QyMEYyMjc1MzFBNzEyN0MxNTdFMTQ4NzAwODAwNjIwMkYwM0QyMEYyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI2MDk4MjBFNjAzRDIwRjIyMzAzNzQ5RDI3NzdFMzcwMTlEN0UyNzAxQkQ5RDMyNDAzMTdEMDIyRTA1NTY3QTA1NTY3QTM3MDE5RDdFMzcwMTdEN0Q0MzJENDJCRTQ0MjlFMjM4Njg3QTQ3MDE3RDc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTEyNjUyQjEwNzdDNDIyQzI3NzJEMjM2ODc4NkQzMzgwMUE3RTI3MDE5REJFMjQwMDAwNjg2QUJFMjcwMUJEMjgwNDdFMjcwMUJEN0UzNzAxOUQ5RDMyN0QwMjJFMDU1NjdBMDU1NjdBMzcwMTlEN0UzNzAxN0Q3RDQzMkQ0MkJFNDQyOUUyMzgxMzdBNDcwMTdENzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MDI2NTJCNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1OUU0NDI5RTM5RDI0MTI2NTJCN0UzNDI1RTM3RDI0MkQ0MzdBNDcwMTdEMTI2NTJCQkUyNTIwNzgwMzAyNURFNzIyRDIwRjdFMDQyNUUzN0EwNzAxN0Q3QTA3MDE4RDc1MzE5NDEyN0MxNTc1MzEwMDEyN0MxNTIyNzUzMTkyMTI3QzE1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg3MDdFMzcwMUUxN0UyNzAxQ0QyRTI0MDAwMjJEMzJCRTM0MDQwMDM4M0M3RDAyMkUwNTQ2N0EwNTQ2N0EzNzAxRTE3RTM3MDFERjdENDMyRDQyQkU0NDA1RTIzODQ0N0E0NzAxREY3RTI0MDcwMDJFMjcwMUNEMUIzODIwMEIzNTdBNTEzMTEyN0MxNUJFNTAzODc4MDMwMjY2MTYwMjY1RkI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0YwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNzIyODA3RDdBNTEzMTEyN0MxNTlFNDQwNUUzOUQyNDdFNjQwNzAwMkU2NzAxQ0Q5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2NUZCN0UzNDAxRTM3RDI0MkQ0MzdBNDcwMURGMDI2NUZCN0EzOUMwN0UzNDAxRTM3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDA3N0E2OUIwN0E3OTcwMEIzNTc1MzE5MzEyN0MxNTdBNzEzMTEyN0MxNUJEMDQ2ODI5N0EwNzAxREY3RTQ3MDFFMTJENDM3QTQ3MDFFMTJFMzU0NjdBMzU0NjIyMDlCMTAwMTQyMEUwMTMyMjdFMDQwMUUzODAyQTdFMDQwMUUzODAyQzdFMDQwMUUzODBEMUQyMDQ3RTA3MDFFMTdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFERjdFNDQwNUUzN0Q2MDBCMDRCRDA0NjhEMDdENzAwQjA0QkQwNDY4Q0U3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNUY0Qjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRjBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE3MjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1RjRCREFCODAyNjA5ODA5QjEwMDE4N0VBMDg4NzUzMTkwMTI3QzE1RjUzMTEyN0MxNUE1RkM1RUIwRjBBNUZEMDlCMTAwMTg0QzRCNUVCMEYwQkNCNTc4RjE1RTQwMEY0QzU0N0NCNTVFNTAwQjY4MkFBNUZENUU1MDEwNjgwNEQyNkY4MDAyQzI2RkE1RkQ1RTUwMjA2ODA0RDI2NzgwMDJDMjY3QTVGRDVFNTA4MDY4MDREMjVGODAwMkMyNUYxMjQzQUYwMjYyOTM3NTMxOTExMjdDMTUwOUIxMDAxNDdBQjEzMTEyN0MxNTIwRTAwOEQyMDQ3RUEwODAwMjYyOTNEMjA0MzBFMTA2N0VBMDgwMTI2MjkzQ0FCODVFQjAxQ0RBQjg2ODEyN0VBMEMwMDk2MTAwMDAxMjYyQjYwOUIxMDAxNDIwRTBEQjIyMDI1RjlENzUzMTk1MTI3QzE1MjI3NTMxOTYxMjdDMTUyMjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2ODgwMDJDMjY4QTVGRDVFNTAyMDY4MDREMjYwODAwMkMyNjBBNUZENUU1MDgwNjgwNEQyNTg4MDAyQzI1ODAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2OTgwMDJDMjY5QTVGRDVFNTAyMDY4MDREMjYxODAwMkMyNjFBNUZENUU1MDgwNjgwNEQyNTk4MDAyQzI1OTAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2QTgwMDJDMjZBQTVGRDVFNTAyMDY4MDREMjYyODAwMkMyNjJBNUZENUU1MDgwNjgwNEQyNUE4MDAyQzI1QTAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2QjgwMDJDMjZCQTVGRDVFNTAyMDY4MDREMjYzODAwMkMyNjNBNUZENUU1MDgwNjgwNEQyNUI4MDAyQzI1QjAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2QzgwMDJDMjZDQTVGRDVFNTAyMDY4MDREMjY0ODAwMkMyNjRBNUZENUU1MDgwNjgwNEQyNUM4MDAyQzI1QzAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2RDgwMDJDMjZEQTVGRDVFNTAyMDY4MDREMjY1ODAwMkMyNjVBNUZENUU1MDgwNjgwNEQyNUQ4MDAyQzI1RDAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2RTgwMDJDMjZFQTVGRDVFNTAyMDY4MDREMjY2ODAwMkMyNjZBNUZENUU1MDgwNjgwNEQyNUU4MDAyQzI1RTAyNjI3RjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMTA2ODA0RDI2RjgwMDJDMjZGQTVGRDVFNTAyMDY4MDREMjY3ODAwMkMyNjdBNUZENUU1MDgwNjgwNEQyNUY4MDAyQzI1RjAyNjI3RjU0RjBDNEE1RkZDNEE1NEY3NTMxOTAxMjdDMTVGNTMxMTI3QzE1MjJDQTE5NUUyMDA3NENBMjdFNzQyOUUzQ0E3OTdBNzlBMDBCNzQ3QTc5QjAwQjc0REE3OTdFMzAwMjdFNjQwMDAyMDI2MkRFQ0ExOTVFMjAwNzRDQTI3RTc0MjlFM0NBNzk3QTc5QTAwQjc0N0E3OUIwMEI3NDdBNzk2MDBCNzREQTc5N0UzMDAzN0U2NDAwMDMwMjYyREVEMjA0N0UyNzAxRTEyRDI2QkUyNDA0MDAzODJFN0UwNzAxREY3RTQ0MDVFMzdFNzlBMDdBMDlBMDBCMDQwQjc0QkQwNDY4MjNBNURCRUY3QTI3MDFFMTdFMjU0NjJEMjY3QTI1NDY3QTA3MDFERkRBMTlDMkQ3MjI3NTMxOUExMjdDMTVEQTE5RDJENzIyN0UwNDAxRTM4MEQ3NDhCNjQ2MjU0NzFDNDkxNTQ0QzY0NEM2NDgxQjQ0QzY0OTU5NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ5NjA0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0QzBFNDk3RDRBNzQ0QzZENDRDNjQ0QzY0QjczNDRDNjRDQjE0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NENCODQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjRGNjY0Q0Q1NERDQzRGQzU0NEM2NDRDNjRFQ0I0NEM2NTAwOTQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY1MDEwNDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NTJCRTUwMkQ1MTI0NTMxRDQ0QzY0NEM2NTIyMzQ0QzY1MzYxNDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjUzNjg0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY1NjE2NTM4NTU0N0M1Njc1NDRDNjQ0QzY1NTdCNDRDNjU2Qjk0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NTZDMDQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjU5NkU1NkRENTdENDU5Q0Q0NEM2NDRDNjU4RDM0NEM2NUExMTQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY1QTE4NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NUNDNjVBMzU1QjJDNUQyNTQ0QzY0NEM2NUMyQjQ0QzY1RDY5NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjVENzA0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY2MDFFNUQ4RDVFODQ2MDdENDRDNjQ0QzY1RjgzNDRDNjYwQzE0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NjBDODQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNkNBMjkxRTUwNDAwRDdFNTQwQjEwOUNCNUE0MkU1NDY1NDg4OTU0N0UzOTAwN0ExOTAwMEIzNDgwRTkwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1REEyOTIyMUU1MDQwMEQ3RTU0MEIxQzlDQjVBNDJFNTQ2NjE2ODk1NDdFMTkwMDdBMzkwMDBCMzQ4MEU5N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTIyNjc5NjY5NjM2OTdCNkE0OTZBRTQ2QjhFNkJBOTZDM0I2QkM0NkMwNTY5OTY2OUFBN0NCM0JFQjAwQjI4MTQ3NTMxMDkxMjdDMTU3NTZEMTBDMEYxNzVGMTAxNDNFMUMwRDBGMTIyQzBBOEMyQUYyMzZDQUEyRTU0Njc0QjBCNTg1MDg5NTQwMTAyMDQwODEwMjA0MDgwNzUzMUIwMTI3QzE1MEEzMjA5QjM2NzhFNDIzMjE5NDMwMDM2RDBBODIyN0NCMjIzMEEzQjQ5MzM2N0NCMEEyMjA5MzIwMDM2MDlCMjY3OEVBNUJCMDAwNUY0NTIzMzgwMDI0MjMzODkzNDY3REI2ODA5NjgzNzY4NjU2ODkzNjhDMTY4RUY2OTFEMTI0MUI1RDIyOEQyMDhDMjQwQzI0OEMyMzhDMjMwNkQwMDdBMDMwMUNGN0UwNDAwMjA3QTA3MDFBRjdFMDQwMDM4N0EwNzAxQkYxMjQxMTYxMjYwQ0YwMjY5NEIxMjQxRDREMjI5RDIwOUMyNDFDMjQ5QzIzOUMyMzE2RDAwN0EwMzAxRDA3RTA0MDAyMDdBMDcwMUIxN0UwNDAwMzg3QTA3MDFDMTEyNDExNjEyNjEwNTAyNjk0QjEyNDFGM0QyMkFEMjBBQzI0MkMyNEFDMjNBQzIzMjZEMDA3QTAzMDFEMTdFMDQwMDIwN0EwNzAxQjM3RTA0MDAzODdBMDcwMUMzMTI0MTE2MTI2MTNCMDI2OTRCMTI0MjEyRDIyQkQyMEJDMjQzQzI0QkMyM0JDMjMzNkQwMDdBMDMwMUQyN0UwNDAwMjA3QTA3MDFCNTdFMDQwMDM4N0EwNzAxQzUxMjQxMTYxMjYxNzEwMjY5NEIxMjQyMzFEMjJDRDIwQ0MyNDRDMjRDQzIzQ0MyMzQ2RDAwN0EwMzAxRDM3RTA0MDAyMDdBMDcwMUI3N0UwNDAwMzg3QTA3MDFDNzEyNDExNjEyNjFBNzAyNjk0QjEyNDI1MEQyMkREMjBEQzI0NUMyNERDMjNEQzIzNTZEMDA3QTAzMDFENDdFMDQwMDIwN0EwNzAxQjk3RTA0MDAzODdBMDcwMUM5MTI0MTE2MTI2MUREMDI2OTRCMTI0MjZGRDIyRUQyMEVDMjQ2QzI0RUMyM0VDMjM2NkQwMDdBMDMwMUQ1N0UwNDAwMjA3QTA3MDFCQjdFMDQwMDM4N0EwNzAxQ0IxMjQxMTYxMjYyMTMwMjY5NEIxMjQyOEVEMjJGRDIwRkMyNDdDMjRGQzIzRkMyMzc2RDAwN0EwMzAxRDY3RTA0MDAyMDdBMDcwMUJEN0UwNDAwMzg3QTA3MDFDRDEyNDExNjEyNjI0OTAyNjk0QjdFQTBEMDdFNjAwRjEyNjJCNjQwMENDMEYxNzVGMTAxMTI2RkQ5RDBGMUMyRDcyMjc1MzFCMTEyN0MxNTBBNTIyMzZEMDA1OTA1MDA0ODEyNDE3RTEyNDE5QUQwQTgyMjc1MzFCMjEyN0MxNTBBMjIwOUIyNjc4RTQyMjM3RUIwOUMxOUIyMDFDRjEyMzE4NUQwQTgyMjc1MzFCNzEyN0MxNTBBMjIwOUIyNjc4RTQyMjQxMjM1M0REMEE4MjI3NTMxQjkxMjdDMTUwQTMyMDlCMzY3OEU0MjM0MTk0MzAwM0UxMjY5QzJEMEE4MjI3Q0IyMjMwQTBCN0NCNDIwRTAwNDZEMzM4MDA0NDkzMDAxOEY3RUEwRDhBNUVGQ0EwQkNBMjkxMjYyQjZEQTI5REEwQjQwNjI3NTMxQkExMjdDMTU3Q0I0MzBFMDFFNkQzMzU5MzAwMThGN0UzNDA5RTMwQTgyN0U5NDA0MDBBRDg5MkQzOTU5MzAwMTZGNTkzMDAxN0Y3Q0I0MzBFMTEwN0UwNDgwMDA0QzAyMDlCMDAwMDg0NDA0MTlCMDAwMDgwQTAyMDlCMDY3OEU0MjIxRjQ1MjM0N0NCMjIzMEEwQkNBMTk0OTAwMzBENTk5MDREQTE5QzBGMTc1RjEwMTEyNkZEOUQwRjFDMkQ3MjI3RTA0ODAwMDRDMDIwOTMwMDAwQzc0QkYxOUIwMDAwQzA5QjAwMDA4MTkzMDAwMEM3Qzc0NUU3MDAxNjgxMjQ0NDBDQUI4MDlCMDAwMTA0NDAyMTlCMDAwMTBEQUI4ODAwMjU0QkY3Qzc0NUU3MDA4NjgwNDQ0MDg4MDAyNTRGNzA5MzAwMDBDQ0FCODc0QkYxOUIwMDAwQ0RBQjgxOUIwMDAwODE5MzAwMDBDMEE2MjA5QjY2NzhFM0UyMDBBNjI3Qzc0NUU3MDAyNjgyMDQyMjdDQUI4NzQ2MTE5QjAwMDA4N0U0NDAwMTA1OTQ2MDFCRjA5QjAwMDEwNDQwMTE5QjAwMDEwREFCODgwMTFGNDUyMjc3NEExMTlCMDAwMDg3RTQ0MDAzODU5NDYwMUJGRDBBODIyN0M3NDdFMDQ4MDAwNEMwMjBBNjIwOUI2Njc4RUE1RkRGNEE1RkVDQTI4M0UyMDBBNjJBNUVFNTIyNjdFNDQwMDIwNTk0NjAxQUZEQTI4MDkzMDAwMEM3NEJGMTlCMDAwMEMwOUIwMDAwODdDNzQ1RTcwMDE2ODBDNDQ4MENBQjhBNUVENDIyQURBQjg4MDBBNTQ3RkNBQjhBNUVFNTIyQURBQjg3Qzc0NUU3MDA4NjgwNDQ0MDI4MDAyNTRGRDE5QjAwMDA4MTkzMDAwMEM3Qzc0NUU3MDAyNjgxMEE1RUQ0MjI4NDIyNjdFNDQwMDA4NTk0NjAxQUY4MDA0QTVFRTUyMjg3Qzc0NUU3MDA0NjgxMEE1RUQ0MjI5NDIyNjdFNDQwMDA4NTk0NjAxQUY4MDBCQTVFRTUyMjk3Qzc0NUU3MDAyNzgwMDEyNDJBREQwQTgyMjdFMDQ4MDAwNEMwMjA5MzAwMDBDNzRCRjE5QjAwMDBDMTk0MDAwMTAxOTMwMDAwQ0QwQTgyMjdFMDQ4MDAwNEMwMjA5MzAwMDBDNzRCRjE5QjAwMDBDMTk0MDAwMTgxOTMwMDAwQ0QwQTgyMjc1MzFCNTEyN0MxNTdFMDQ4MDAwNEMwMjA5QjAwMDBDNDQ0MDE5QjAwMDBDRTU2RUI0MDcyMzA5QjAwMDEwNEVCMDAyMTlCMDAwMTAwOTMwMDAwQzc0QkYxOUIwMDAwQzA5QjAwMDA0NTRGNzE5QjAwMDA0MTkzMDAwMENEMEE4MjI3NTMxQjYxMjdDMTU3RTA0ODAwMDRDMDJFNTZFQjQwNzE4MDkzMDAwMEM3NEJGMTlCMDAwMEMwOUIwMDAwNDQ0MDgxOUIwMDAwNDE5MzAwMDBDMDlCMDAwMEM1NEJGMTlCMDAwMENEMEE4MjI3NTMxQjQxMjdDMTU3QTIxMzExMjdDMTU3QTQxMzExMjdDMTUwQTMyMDlCMzY3OEU0MjM1MTI2QzVCRDBBODIyN0VCMDAxN0VBMEM4N0M2NDEyNjJCNjQwMTMwQTMyMDlCMzY3OEVGNDUyMzVDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyNkM4QzZDRDM2RDFBNkQ2MTZEQTg2REVGNkUzNjZFN0Q3NTMxNTUxMjdDMTU3NTMxMDAxMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTU3RTE3MDE3RjdFMjcwMThGMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDBERTIzODBGMUIzNDc4RUM3QTE3MDE3RjdBMjcwMThGMDI0NjBGN0UxNDA5RTM4MEVCNzUzMTU1MTI3QzE1NzUzMTAxMTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1N0UxNzAxODE3RTI3MDE5MTJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxMUUyMzgwRjFCMzQ3OEVDN0ExNzAxODE3QTI3MDE5MTAyNDk2NzdFMTQwREUzODBFQjc1MzE1NTEyN0MxNTc1MzEwMjEyN0MxNTdBNjEzMTEyN0MxNTdBNzEzMTEyN0MxNTdFMTcwMTgzN0UyNzAxOTMyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MTVFMjM4MEYxQjM0NzhFQzdBMTcwMTgzN0EyNzAxOTMwMjRDQkY3RTE0MTFFMzgwRUI3NTMxNTUxMjdDMTU3NTMxMDMxMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTU3RTE3MDE4NTdFMjcwMTk1MkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDE5RTIzODBGMUIzNDc4RUM3QTE3MDE4NTdBMjcwMTk1MDI1MDE3N0UxNDE1RTM4MEVCNzUzMTU1MTI3QzE1NzUzMTA0MTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1N0UxNzAxODc3RTI3MDE5NzJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxREUyMzgwRjFCMzQ3OEVDN0ExNzAxODc3QTI3MDE5NzAyNTM2RjdFMTQxOUUzODBFQjc1MzE1NTEyN0MxNTc1MzEwNTEyN0MxNTdBNjEzMTEyN0MxNTdBNzEzMTEyN0MxNTdFMTcwMTg5N0UyNzAxOTkyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MjFFMjM4MEYxQjM0NzhFQzdBMTcwMTg5N0EyNzAxOTkwMjU2Qzc3RTE0MURFMzgwRUI3NTMxNTUxMjdDMTU3NTMxMDYxMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTU3RTE3MDE4QjdFMjcwMTlCMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDI1RTIzODBGMUIzNDc4RUM3QTE3MDE4QjdBMjcwMTlCMDI1QTFGN0UxNDIxRTM4MEVCNzUzMTU1MTI3QzE1NzUzMTA3MTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1N0UxNzAxOEQ3RTI3MDE5RDJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQyOUUyMzgwRjFCMzQ3OEVDN0ExNzAxOEQ3QTI3MDE5RDAyNUQ3NzdFMTQyNUUzODBFQkNBQjhDMEYxNzUzMTAyMTI3QzE1RTVDMDU0MDM2ODA1MTI3NUNEODBGNTMwQzIwODc1RjEwMTEyNkZEOTgwMTQzMEMzMDg3NUYxMDExMjZFRkQ4MDA5MzBDNDA2NzVGMTAyMTI3MEU5RDBGMURBQjgzMjc1MzExMDEyN0MxNUNBMEJDQTM5Q0E1OUMyQzNBOTIxRTI1Q0U1RTU1NEMwNjg0RkU1RTY2Q0FBN0UzNzAxREIyRDM1QkUzNDA0MDAzODRBN0EzNzAxREI3RTM3MDFEOTdENDMyRDQ1QkU0NDA5RTIzODQwN0E0NzAxRDk3NTMxMTExMjdDMTU3QUIxMzExMjdDMTUxMjcxQjhBOTIxRTUxRkE5RDRFNEE5MjRFNEZDQzJDM0E5MjFFMjNCRTVFNTU0QzA3OEI0MTI3NDVBREE1OURBMzlEQTBCMjI4MDI5ODA1ODc1MzExNjEyN0MxNTgwRUQ3NTMxMTIxMjdDMTU3QUIxMzExMjdDMTU5RTQ0MDlFMzlENTQxMjcxQjg3RTM0MDVFMzdENTQyRDQzODBBMUU1RTU1NDAzNzgxMjc1MzExMzEyN0MxNTdFMEYyOUZGMEIwQzdBMEYyOUZGODBBNzc1MzExNDEyN0MxNTdFMEYyQTAzMEIwQzdBMEYyQTAzQTlEN0U0QTkyN0U0RkM4MDlENzUzMTE1MTI3QzE1N0UwRjJBMDcwQjBDN0EwRjJBMDc4MEU1NzUzMTE4MTI3QzE1Q0EwOUNBMzlDQTJCQzJDMkE5MjFGMjUyRTVGNTMzODJFNzQwNDQ3RTM3MDFFMTdFNTQwMDQwOUQzNTQwNDM3QTM3MDFFMTdFMzcwMUREN0Q0MzJENDVCRTQ0MDVFMjM4NTI3QTQ3MDFERDdENDUxMjczMTZBOTIwRjUyMjc1MzExOTEyN0MxNTdBOTEzMTEyN0MxNTdBODFGNzdBOTFGNkU1RjUzMzgyRTc1MEJDREEyQkRBMzlEQTA5MjI4MDQxODA2NDJENTM2RDMzNzBCNzdFMDQwMUUzN0EwNzAxREY3QTA3MDFEREE5MzJGMkRGODUzMDMxMTI3QzE1NzVGNjAwODBENENBNTk5RTQ0MDVFMzlENTQxMjczMTY3RTM0MDFFMzdENTQyRDQzN0E0NzAxREQxMjczMTZEQTQ5ODA5OUU1RjU1NDAzNzgxRjdFMEYyOUVGMEIwQzdBMEYyOUVGODA5RDdFMEYyOUY3MEIwQzdBMEYyOUY3QTlEN0Y0QTkyN0Y0RkM4MDhBN0UwRjI5RjMwQjBDN0EwRjI5RjM4MEVCRTVGNTU0MDM3ODFGN0UyRjJBMEYwQjJDN0EyRjJBMEY4MDM0N0UyRjJBMTcwQjJDN0EyRjJBMTdBOUQ3RjRBOTI3RjRGQzgwMjE3RTJGMkExMzBCMkM3QTJGMkExMzgwRUJEQTJCREExQkRBMEIyMjc1MzEyODEyN0MxNUNBMEJDQTFCQ0EyQkMyQzRBOTIxRjJCNkU1RjUzMzcyRTc0MEUwN0UwRDQ2N0UxRDRBN0UyRDRFN0UzRDUyN0U4NTU2N0Q5MDREOTE0RDkyNEQ5MzREOTQ0RDk1NEQ5NjREOTc0RDk4Njg3MjdBMTFGMzdBMDFGMzdBMzFGMzdBMjFGMzdBNTFGMzdBNDFGMzdBNzFGMzdBNjFGMzdBOTFGMzdBODFGMzMwN0IxQTdBQjFGMzdBQTFGMzdBRDFGMzdBQzFGMzdBRjFGMzdBRTFGMzdENzg3QUYxRjM3QUUxRjNBOTMwRjUwMzAyNzBENjc1MzEyOTEyN0MxNTIwN0IwQjc1MzEwQTEyN0MxNTc1RjYwQTgwMDk3NTMxMTIxMjdDMTU3NUY2MTI2RDAwN0QxMDdBMEQ0NjdBMEQ0QTdBMEQ0RTdBMEQ1MjdBMDU1NkRBMkJEQTFCREEwQjIyMUVCMDQwMEM3RUEwMEFBNDdFMDQ3MkZCOUQwNTg5MDQ3RUExRTM3QTM5QTAwQjM0ODBFQUI0NDBFMzdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzUyMjFFQjA0MDBDN0VBMDBBQTQ3RTA0NzQ1OTlEMDU4OTA0N0UzOUEwN0FBMUYzMEIzNDgwRUFCNDQwRTMwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MjJDMkFGN0UzNzAxREI0RDMzNjgzQjdFMDcwMUQ3N0U1NDA5RTM5RDUwQkQzNTQwMDI3RDM1Q0EzOTdFNjU2MTk5NjREQTM5N0UwNzAxREI5RDAzN0EwNzAxREIyRTM3MDFENzdBMzcwMUQ3QkUzNDA5RTIyOEM3N0UzNDA1RTM3QTM3MDFENzgwQkREMkFGMjI3NTMxNTMxMjdDMTU3RTE1NjM4MDExNzUzMTUxMTI3QzE1MEIwODEwMEIwNTlFMzQwMDAyMjg0RDdDQjIyMEU3Mjc1NDA3MjMwQTJCNDkyMjZDN0M3Q0IyNTQ3ODAzMDMwMzdDMkI5RDEzNDAxQTY4MTI3QTE1NjM3QTI1NjU3RTY0NzUzNzdBNjU2MTg5MjQwMjc1NDU3RTY0NzRBRDgwRjIyRDEzOUQzMUNBMzk3RDMxMkQxMENBMTlDQTI5OTkyNERBMjlEQTA5REEzOTgwQTI3QTE1NjM3RTY0NzUyMzREMzM3ODA5N0NCMjIwRTcyQTdFNjQ3NEEyN0E2NTYxMjI3NTMxNTIxMjdDMTU3RTIxNjM3RTA5MzAwQjA0MUIzNDc4ODk4MEQ0NzUzMTU0MTI3QzE1N0UxNTYzN0UyNTY1ODA5MDVFMjAwNzU0Nzg3RTQ0NzVDMTMwRTYxNjREMzM2ODI2MUIzNDdFMDk0MDBCMDQ3RTQ0Njc2MzIwRTMwNDdFNDQ3NUM5Q0EwOUNBMzk5OTQ0REEzOURBMDk3RTY0NzRBRDREMzM2OEE2ODk2NDdBMTU2M0Y1NjU3RTY0NzU4NjgwOTk3RTE1NjNFNTY1ODBDNEMwRDBDMEQxQzBFMENBMTlBOTIwREYxMkE5MjFERjFCNzUzMTAxMTI3QzE1NTNERkY3MTI0MERDODAwRDc1MzFGRTEyN0MxNTdFMTQwMDUzMDI0MDUxREExOUQwRTBEMEQxRDBEMDMyMDNBNUNCMTlCMTgwMDAyMjIyMDI3NjQyQ0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCQzBGMTdFQjMyQTMzQjQwMDAyODAxOUI0MDExNjMwQzAwODc1RjEwMDEyNzYyQzgwMUYzMEMxMUM3NUYxMDAxMjc2QkQ4MDE0MzBDMTA4NzVGMTAwMTI3NkJEODAwOTMwQzAwNjc1RjEwMDEyNzYyQ0QwRjFEQUVCREE3QkRBNkJEQTVCREE0QkRBM0JEQTJCREExQkRBMEIyMkMyQzA3RUIzMkEzM0I0MDIwNzEyNzY0RTAyNzY0MjIyQjQwMUZDMDI3Njg4N0UwMDAwN0EwMzJBMzM3QTAzMkEzNDIyN0VCMzJBMkI1NDYwNjAwNUI0NDAxNTgwMTM3RUIzMkEyQ0I0MDUwQzc1MzE3MTEyN0MxNTdFQjMyQTJFRjU4RjIyNzVGNjAwMjJCRTU3MkEzMTI4MDQ3RTU3MkEzMTdBMEYyQTM2N0E1NzJBM0EwMjc2ODg3RUVGMkEzNjdFRjcyQTNBN0UwNzJBM0E0RDAwNjgyMTdFMDAwMDdFRUJCMEY1RjNBM0E1MDgxQkY0NjgwNEE1QjgwOEYwN0FFRjJBMzY3QUY3MkEzQTc1MzEwNjEyN0MxNTdBMDFGNjIyQzJDMTc1MzEwMzEyN0MxNUE5MzZFMjE2RTVGNTU0QzA2ODA3QTlEN0Y0QTkyN0Y0RkM1M0UxM0Y0M0YyODgwMjc3Mjk3RUIzMkEzNEI0MDIwNEE5RDRFNDIyQjQwMTM5N0UyMUU2N0MzMjdFMTMyQTM1MkMyMTdBMjMyQTM1N0UwMDAwMkUwNDJBM0NFNUUzN0EwOUIwMEIwNEE1REJGNkE5RDRFNDc1MzE3MDEyN0MxNTdFQjMyQTM1N0VBMzJBMzJCQ0FCNzgwMzEyNzdDMDIyMDI3QjI5RTVFNkI0MDg2NUE5QzRFMjdFMDFFMzdFMTFFMzdFMzFFMzdFMjFFMzdFNTFFMzdFNDFFMzdFNzFFMzdFNjFFMzdBMEYyQTJCN0ExRjJBMkY3NTMxMDQxMjdDMTU3QTAxMzExMjdDMTU3QTExMzExMjdDMTU3QTIxMzExMjdDMTU3QTMxMzExMjdDMTU3QTQxMzExMjdDMTU3QTUxMzExMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTVBOUQ0RTRBOUQ3RjRBOUM2RTIxMjc3OTQyMjZEMDA3RTE0MDEwMjdBMDcyQTNBN0EwMzJBMzU3RUIzMkEyQjIwRTcwRjdBMjMyQTM0N0EzMzJBMzNCRTA3MkEzMTY4MDkyMjdBMzMyQTM0N0EyMzJBMzM3RUIzMkEyQjU0RTMyMzIzMzBFMDAyRDJFNTMwRTcwMkQyRTQzMEU1MDYzMEU0MDMwMjdCMjk1NDNFRjVGMDAzNTQxRkMzMjVGMDkwNzdFQzc1ODRGRjczMDI3OTQwMDI3ODM0MDI3OUREMDI3OUY4MDI3OEQ5MDI3ODlBMDI3QTExMDI3QTExMDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTE0MDI3QTFBMDI3QUNFMDI3QTE3MDI3QTE3MDI3QTE3MDI3QTE3MDI3QTE3MDI3QTE3N0VCMzJBMkNCNDA2MkE3RUIzMkEyRDYwNTY3QzBCN0UxMzJBMkU3RTE3MkEyRjc1MzE3MjEyN0MxNTdBMDEzMTEyN0MxNTdBMTEzMTEyN0MxNTEyN0IzMzQwMzUwMjc2NzNCNDA4MTA3NTMxNzQxMjdDMTU3RUIzM0ZGMUY1RjM3NUY2MDEyMkI0MDAxQzc1MzE3NTEyN0MxNTdFQjMzRkYyMzBFMDA1NzVGMzAyODAwMzc1RjMwMDc1RjMwMDc1RjYwMjIyMDI3QjI5N0VCMzJBMkNCNDAwMzU3NTMxNzYxMjdDMTU3RUIzMkEzMDU0MEZGNUYxN0VCMzJBMzAyMEU3MDlFNUUxMzBFNzBENzQwMTgwMEJFNUUxMzBFNjA0NzQwMTgwMDI3NDAwNTNGMTgwRjVGMzc1RjMwMDc1RjYwMjIyMDI3QjI5QzBGMTdFQjMyQTMwNTQwRjQyRjE3RUIzMkEyRUI0MDA0NTdFQjMyQTJDQjQwMTI0NzUzMTc3MTI3QzE1N0VCMzJBMzA1NDBGNzgwNTUzRTEzRjgwMzc3RUIzMkEzMDIwRTcwNTUzRTE3RjgwMkI1M0UxQkY4MDI2QjQwMzE3NzUzMTc4MTI3QzE1N0VCMzJBMzAyMEU3MDU0M0UxODA4MDExNDNFMTQwODAwQzQzRTFDMEQwRjE3NTMxMDcxMjdDMTUyMkQwRjEwMjc2NkY3RUIzMkEyQ0I0MDkyMzc1MzE3OTEyN0MxNTdFQjMyQTJFQkVCMzNGRjE2ODExQ0FCOEMwRjExMjQzRDREMEYxREFCODUwNzY3QUIzM0ZGMTgwNkRCNDA1MDg3NTMxN0ExMjdDMTU4MDYyQjQwMzE5NzUzMTdCMTI3QzE1N0VCMzJBMkVCNDAxNTU3RUIzM0ZGMjQ0MDE3QUIzM0ZGMjgwNDZCNDAxMTk3NTMxN0MxMjdDMTU3RUIzMkEyRUI0MDEzOTdFQjMzRkYyNTRGRTdBQjMzRkYyODAyQUI0MDcyQTdFQjMyQTJENjAyNDdDMEI3RTEzMkEyRTdFMTcyQTJGNzUzMTczMTI3QzE1N0EwMTMxMTI3QzE1N0ExMTMxMTI3QzE1MTI3QjVGNDAwMzAyNzY2RjAyN0IyOTdFQjMyQTJDQjQwQkY2NzUzMTdEMTI3QzE1N0VCMzJBMkU3RUEzMkEzMDRDQUI3OEU0ODBERjdFQjMyQTJDQjQwQURCNzUzMTdFMTI3QzE1N0VCMzJBMkU3MENGRjVGMzc1RjYwMTIyMDI3QjI5MDI3QjI5MDI3QjI5N0VCMzJBMkNCNDA0MjA3NTMxQzMxMjdDMTU3RTA0MDAwMTdFMTcyQTJEN0UxODJBM0M3QTFDMDAwMDdFNDcyQTMxMTI3QzIxMDI3QUM4QjQwNjNBNzUzMUMxMTI3QzE1N0U1ODAwMDA3QTVDMDBGRTdEQ0E3RUQ3MkEyRDdFNzgyQTNDN0E3QzAwMDA3RTc3MkEzMTc1MzFDMTEyN0MxNUMwQThDMDg3QzJBRkE5RDU4NzEyN0M1QUQwODdEMEE4NDA0RjgwNEFCNDAwMUNDMkFGQTlENTg3MTI3NjZGRTQ4REVGOERFRjhERUZENUUwRjdDMEQxQ0EwMkZGQ0EwNjAwMDAzMkI0MDkxMjdFNTcyQTJENEQ1NTY4MDVBOUQyQjE4MDAzQTlDMkIxODAxNkI0MDcxNkMyQUY3RTA3MkEyRjdFMTcyQTJEQzBEMUNBMThDQTM4Q0EyODMyMDI3NjZGMDI3QjI5N0VCMzJBMkNCNDAzMTU3NTMxQzIxMjdDMTU3RTA0MDAwMTdFMTcyQTJEN0U1NzJBMzEwMjc2NzNCNDA1Mzk3NTMxQzAxMjdDMTVDMEE4QzA4N0MyQUZBOUQ1ODc3RTA4MkEzQzdBMEMwMDAwN0UyNDAwRkU3RTM3MkEyRDdFNDcyQTMxMTI3QzIxRDA4N0QwQTg3RTA4MkEzQzdBMEMwMDAwN0U1NzJBMzEwMjc2NzMwMjdCMjk3NTMxMDcxMjdDMTU0M0UxQzAyMkMwQThDMDg3QzJBRkE5RDU4NzEyN0I5RTQwMTk3RTA4MkEzQzdBMEMwMDAwQ0EwQkNBNDkxMjdDMjFEQTU5REEwQkQwODdEMEE4QzMyMkQwODdEMEE4MjJDMEE4QzA4N0MyQUZBOUQ1ODcxMjdCOUU0MDJCN0U1ODAwMDA3QTVDMDBGRTdGNjE3RTc4MkEzQzdBN0MwMDAwN0U3NzJBMzFCRDc0NzgxMTc1MzFDMTEyN0MxNTEyN0M1QTQwMDZEMDg3RDBBOEMzMjJEMDg3RDBBOEQzMjI3RTI0MDBGRTdFMzQ3RkNBMEIxQTUwQzVGMDdENjI3RDc1N0Q4NzdFMzQ3RkMyN0UxQkIwN0UzNDdGMDNCNDAxMDQ3RTM0N0ZDQzdFMUJCMEJDMEI1MDQ5M0UwMDNFMDAwQTUwMkQ3NTBCM0EzMDY5NTMwMDAyQkQzODUwMDIyRDM4QkMxQjUwMzAzRTEwM0UxMDBBNTEyRDM1Njk0MTAwMDIwQjFBMzBCRDM4NTAwMjJEMzhCRTQ0RkZGRjc4MDU3RTFCOTAwQTQ5NEQ0NDY4MENCRTQ0MDBGRjI4MDQ3RTQ0MDBGRkMzMjJEMzIyRkEKKzowMDA0N0ZDNjAwMDExMDA0MDBBMgorOjAxNEE3QzE1MDBDQTA4N0UwMTMxN0EwMzNGRjBEQTA4MjI3RTFCQzA3QTBCQzAwQjE0MEIzNDFCNDQ3OEYyMjI3RjZGN0ZGMDFCRkM3QzU0N0QzMjgwMDhDQTFCQ0ExQkNBMUJDQTFCOUU0NDAwMTA1MEYyMkU0NDAwMTA2ODA2Q0E0ODFCNDQ3OEZBN0ZGNjg5RTRDQTZCNUVENDAwM0Y2ODIwN0U4NDAwNDA5RDhEREE2QkJEODczODE2Q0E3OTdENzgxMjdDODREQTc5NDAwODlENzg2ODAyODAwNUMyRDcyMkRBNkI0MzkwMzA3NEFBMzlCNTU1NTU3NDU1MzlCNTJBQUE3NEEwMzlCNTU1NTU3RTA0MDA0MDlENzA1MDA2MkQ3MDdEMDc2RDc3N0MzMTdFN0IwMDdBNkIwMDBCN0MwQjZDQTVEOUYzN0YxNjFCMUM3RTU0MjcxMDdFMUIxMEJDMTA2ODA2MUI1NDc4RjU4MDJDNkQwMDdDMjA3RjE2OUYxMDdGMjc5RjIwN0UyQjAwN0UxQjEwQkMwMTc4MTYwQjJDMEIxQ0E1REJFRjdDQjYyMEUwMDM2MzkwMzA0RDc3Nzg5M0MyRDcyMkQyRDcyMjAwMDQwMDA0NDIwODA2MDQwMjA0MDAwMjAxMDQwMTAyODIwODAwMDAwMDAwMDAwMDAyMDIwMjAyMDIwNDAyMDgxMDAyMTAwNDAyMDgwMDAxMDEwODAwMDEwMDAyMDAwMjAyMDgwMjA0MjAwNDdFMTg3RkJEN0ExQzAwRkUwQjFBMDA1RTEwMUZCRTEwMUEzODFBMEE1MTIzN0UxODdDRkE3QTFDMDBGRjJEMzUwQjFBNTA2MDA4QTVCODAyMDM0RUEwMDgyMjgwRkU3MworOjAwMDAwMDAwMDFGRgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCisvLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2CisvLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisvLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24yLkgxNiBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24yLkgxNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjRiNGZmCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZWRnZXBvcnQvZG93bjIuSDE2CkBAIC0wLDAgKzEsMjkgQEAKKzowMDA0MDAwMDAwMDIwMDAwMDNGNworOjAwMDIwMDAwMDQwMEZGRkIKKzowMDA2MDAwMDAwMDIwMDgwMDI0NTE0MUQKKzowMDAzMDAwQjAwMDI0NEE1MDcKKzowMDAzMDAxMzAwMDI2M0FCREEKKzowMDAzMDAxQjAwMDIwMDFCQzUKKzowMDAzMDAyMzAwMDIwMDIzQjUKKzowMDAzMDAyQjAwMDIwMDJCQTUKKzowMDAzMDAzMzAwMDIwMDMzOTUKKzowMDAzMDAzQjAwMDIwMDNCODUKKzowMDAzMDA0MzAwMDIwMDQzNzUKKzowMDAzMDA0QjAwMDIwMDRCNjUKKzowMDAzMDA1MzAwMDI2NzVGRTIKKzowMDAzMDA3QjAwMDIwMDdCMDUKKzowMDA3MDA4MDAwN0UxNDAwMDAwMjQwNTI1MworOjBCNjYzMDAwMDAxMjMwNjQxMjMwRkYxMjMxMkYxMjMwQjA4MEYyRTUyMzYwMTk3RTE0MDAwMDA5QjEwMUI5QjQwMDAyODAwNTE0MTlCMTAxQjlBNTBBQkUyMTJFNzhFQjIyQzJBRjdFQjMzRkYxQjQwMTAzMTI2NTY3RDJBRjIyQzJBRjdFQjMzRkYxQjQwMTFENzQ0MDdBQjM5MTAwN0VCMzkxMUE2Q0FBNjAwRkNBMEJDQTM5Q0E1OTEyNjQyNERBNTlEQTM5REEwQkQyQUYyMkMyQUZFNTIyNjA0MzdFMDcwMUNCQkUwNDAzODAzODM5N0UwNDgwMDA3RTIwMDAxMzUwMjEwOUEwMDAwNDRFQTAwNTE5QTAwMDA0MEEzMjA5NTMzNTMzNUU1MTI3NjgwQjA5QTAwMDEwNEVBMDAxMTlBMDAwMTAyRTA0MDEwMEE1MEFCRTIxMkU3OEQxNzUyMjAwRDJBRjIyQzJBRkU1MjY2MDM2N0UyMDAwN0UzMDAxRTUyNkE1NUI2ODIxN0NCMjIzMEEyQjQ5MzIwMTc5QkUzNDAwMDA2ODEyN0VCMTIxQTU0QjdBQjEyMUNBMTk0OTIyMzBFRjk5MjREQTE5M0UzMEE1MEFCRTIxMkU3OEQwRDJBRjIyNDY0RjQ5N0M0Q0E5NEZENjUzMDM1NjMwNTk1RDVDOEFDMkFGRTUyNDYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzMTFDREFCOEE1MEFCRTIxMkU3OEVGRDJBRjIyQ0EyODEyMzU0Q0RBMjg0MDA5MEEyMjA5QjIzNTMzRjQ1MjI0MjJDMkFGRTUyMzYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzMTRDREFCOEE1MEFCRTIxMkU3OEVGRDJBRjIyN0NCMjIzMEEyQjQ5MjIzMTU3ODkyNDMxNjczMUQwMzIzOTMyQTIzMzBCMzM3NDMzREQzNDQ2N0UyNzAxNzlCRTI0MDAwMDc4MjQ3RTI0ODAwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjQ5NDU3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE4OTY4MEQ3QTI3MDE4OTdFNjA5QzdBNjMwMUI5ODAyNzdFNjMwMUI5QTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxODZDMDA3QTAzMDFCOTEyNjQ4NjIyN0UyNzAxN0JCRTI0MDAwMDc4MjQ3RTI0ODEwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRDNzI3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE4QjY4MEQ3QTI3MDE4QjdFNjA5QzdBNjMwMUJBODAyNzdFNjMwMUJBQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxOTZDMDA3QTAzMDFCQTEyNjQ4NjIyN0UyNzAxN0RCRTI0MDAwMDc4MjQ3RTI0ODIwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRGOUY3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE4RDY4MEQ3QTI3MDE4RDdFNjA5QzdBNjMwMUJCODAyNzdFNjMwMUJCQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxQTZDMDA3QTAzMDFCQjEyNjQ4NjIyN0UyNzAxN0ZCRTI0MDAwMDc4MjQ3RTI0ODMwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjUyQ0M3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE4RjY4MEQ3QTI3MDE4RjdFNjA5QzdBNjMwMUJDODAyNzdFNjMwMUJDQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxQjZDMDA3QTAzMDFCQzEyNjQ4NjIyN0UyNzAxODFCRTI0MDAwMDc4MjQ3RTI0ODQwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU1Rjk3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE5MTY4MEQ3QTI3MDE5MTdFNjA5QzdBNjMwMUJEODAyNzdFNjMwMUJEQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxQzZDMDA3QTAzMDFCRDEyNjQ4NjIyN0UyNzAxODNCRTI0MDAwMDc4MjQ3RTI0ODUwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU5MjY3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE5MzY4MEQ3QTI3MDE5MzdFNjA5QzdBNjMwMUJFODAyNzdFNjMwMUJFQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxRDZDMDA3QTAzMDFCRTEyNjQ4NjIyN0UyNzAxODVCRTI0MDAwMDc4MjQ3RTI0ODYwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjVDNTM3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE5NTY4MEQ3QTI3MDE5NTdFNjA5QzdBNjMwMUJGODAyNzdFNjMwMUJGQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxRTZDMDA3QTAzMDFCRjEyNjQ4NjIyN0UyNzAxODdCRTI0MDAwMDc4MjQ3RTI0ODcwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjVGODA3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDE5NzY4MEQ3QTI3MDE5NzdFNjA5QzdBNjMwMUMwODAyNzdFNjMwMUMwQTVCRTAwMUY3RTYwMDE3RUIwMDA3RUEwQzgxMjYxMzY0MDExNzUyRkIzMTI3MzM1QzIxRjZDMDA3QTAzMDFDMDEyNjQ4NjIyQzJBRjdFMDcwMUNCQkUwNDAwMDA3ODI4NzQyMDdBQjM5MTAwN0VCMzkxMTUzMEU1MUI3RUIzOTExQUJFQjAzRjM4MEM4NTMxMkYxMjczMzU3NDgwN0FCMzkxMUU3NDIwN0FCMzkxMTVEMkFGMjIzNTNCMzZFODM3MDAzNzFCMzdCNjM4NEUzODY5MzhGQjM4ODQzOEM1N0NCM0JFQjAwOTI4MjI3NTJGMDkxMjczMzU3NTU3MDI3NDIwN0FCMzkxMDA3NDAxN0FCMzkxMTE3NDQwN0FCMzkxMDA3NDAxN0FCMzkxMTEyMkMwQThDMkFGMjM2Q0FBMkU1NDM0RTYwQjU4NTA4OTU0MDEwMjA0MDgxMDIwNDA4MDc1MkZCMDEyNzMzNTBBMjIwOUIyMzUzMzQyMjREMEE4MjI3Q0IyMjMwQTNCNDkzMzM1NTc4OTM0MzU2NzM1OTUzNUMzMzVGMTM2MUYzNjREMzY3QjM2QTkxMjQxQkFEMjI4RDIwOEMyNDBDMjQ4QzIzOEMyMzA2RDAwN0EwMzAxQjk3RTA0MDAyMDdBMDcwMTk5N0UwNDAwMzg3QTA3MDFBOTEyNDEyNzEyNUZCNzAyMzZENzEyNDFEN0QyMjlEMjA5QzI0MUMyNDlDMjM5QzIzMTZEMDA3QTAzMDFCQTdFMDQwMDIwN0EwNzAxOUI3RTA0MDAzODdBMDcwMUFCMTI0MTI3MTI1RkUwMDIzNkQ3MTI0MUY0RDIyQUQyMEFDMjQyQzI0QUMyM0FDMjMyNkQwMDdBMDMwMUJCN0UwNDAwMjA3QTA3MDE5RDdFMDQwMDM4N0EwNzAxQUQxMjQxMjcxMjYwMDkwMjM2RDcxMjQyMTFEMjJCRDIwQkMyNDNDMjRCQzIzQkMyMzM2RDAwN0EwMzAxQkM3RTA0MDAyMDdBMDcwMTlGN0UwNDAwMzg3QTA3MDFBRjEyNDEyNzEyNjAzMjAyMzZENzEyNDIyRUQyMkNEMjBDQzI0NEMyNENDMjNDQzIzNDZEMDA3QTAzMDFCRDdFMDQwMDIwN0EwNzAxQTE3RTA0MDAzODdBMDcwMUIxMTI0MTI3MTI2MDVCMDIzNkQ3MTI0MjRCRDIyREQyMERDMjQ1QzI0REMyM0RDMjM1NkQwMDdBMDMwMUJFN0UwNDAwMjA3QTA3MDFBMzdFMDQwMDM4N0EwNzAxQjMxMjQxMjcxMjYwODQwMjM2RDcxMjQyNjhEMjJFRDIwRUMyNDZDMjRFQzIzRUMyMzY2RDAwN0EwMzAxQkY3RTA0MDAyMDdBMDcwMUE1N0UwNDAwMzg3QTA3MDFCNTEyNDEyNzEyNjBBRDAyMzZENzEyNDI4NUQyMkZEMjBGQzI0N0MyNEZDMjNGQzIzNzZEMDA3QTAzMDFDMDdFMDQwMDIwN0EwNzAxQTc3RTA0MDAzODdBMDcwMUI3MTI0MTI3MTI2MEQ2MDIzNkQ3N0VBMEQwN0U2MDBGMTI2MTM2NDAwNTEyNjQ4NkMyRDcyMjc1MkZCMTEyNzMzNTBBNTIyMzZEMDA1OTA1MDAzMjEyNDE4MzEyNDE5RkQwQTgyMjc1MkZCMjEyNzMzNTBBMjIwOUIyMzUzMzQyMjM3RUIwOUMxOUIyMDFCOTEyMzE0Q0QwQTgyMjdFMDQ4MDAwNEMwMjA5MzAwMDBDNzRCRjE5QjAwMDBDMDlCMDAwMDgxOTMwMDAwQzdDNzQ1RTcwMDE2ODEyNDQ0MENBQjgwOUIwMDAxMDQ0MDIxOUIwMDAxMERBQjg4MDAyNTRCRjdDNzQ1RTcwMDg2ODA0NDQwODgwMDI1NEY3MDkzMDAwMENDQUI4NzRCRjE5QjAwMDBDREFCODE5QjAwMDA4MTkzMDAwMEMwQTYyMDlCNjM1MzMzRTIwMEE2MjdDNzQ1RTcwMDI2ODIwNDIyN0NBQjg3NDYxMTlCMDAwMDg3RTQ0MDAxMDU5NDYwMUE5MDlCMDAwMTA0NDAxMTlCMDAwMTBEQUI4ODAxMUY0NTIyNzc0QTExOUIwMDAwODdFNDQwMDM4NTk0NjAxQTlEMEE4MjI3Qzc0N0UwNDgwMDA0QzAyMDkzMDAwMEM3NEJGMTlCMDAwMEMwOUIwMDAwODdDNzQ1RTcwMDE2ODA0NDQ4MDgwMDI1NDdGN0M3NDVFNzAwODY4MDQ0NDAyODAwMjU0RkQxOUIwMDAwODE5MzAwMDBDMEE2MjA5QjYzNTMzQTVGREY0QTVGRUNBMjgzRTIwMEE2MkRBMjg3Qzc0NUU3MDAyNjgxMEE1RUQ0MjI4NDIyNjdFNDQwMDA4NTk0NjAxOTk4MDA0QTVFRTUyMjg3Qzc0NUU3MDA0NjgxMEE1RUQ0MjI5NDIyNjdFNDQwMDA4NTk0NjAxOTk4MDE1QTVFRTUyMjk3Qzc0NUU3MDAyNzgwQTUyMjY3RTQ0MDAyMDU5NDYwMTk5MTI0MkEyRDBBODIyN0UwNDgwMDA0QzAyMDkzMDAwMEM3NEJGMTlCMDAwMEMxOTQwMDAxMDE5MzAwMDBDRDBBODIyN0UwNDgwMDA0QzAyMDkzMDAwMEM3NEJGMTlCMDAwMEMxOTQwMDAxODE5MzAwMDBDRDBBODIyNzUyRkI1MTI3MzM1N0UwNDgwMDA0QzAyMDlCMDAwMEM0NDQwMTlCMDAwMENFNTU4QjQwNzIzMDlCMDAwMTA0RUIwMDIxOUIwMDAxMDA5MzAwMDBDNzRCRjE5QjAwMDBDMDlCMDAwMDQ1NEY3MTlCMDAwMDQxOTMwMDAwQ0QwQTgyMjc1MkZCNjEyNzMzNTdFMDQ4MDAwNEMwMkU1NThCNDA3MTgwOTMwMDAwQzc0QkYxOUIwMDAwQzA5QjAwMDA0NDQwODE5QjAwMDA0MTkzMDAwMEMwOUIwMDAwQzU0QkYxOUIwMDAwQ0QwQTgyMjc1MkZCNDEyNzMzNTdBMjEyRjEyNzMzNTdBNDEyRjEyNzMzNTdFQjAwMTdFQTBDODdDNjQxMjYxMzYxMjY0ODZEMEE4MjIzOTJFMzk3NTM5QkMzQTAzM0E0QTNBOTEzQUQ4M0IxRjc1MkY1NTEyNzMzNTc1MkYwMDEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTdFMTcwMTY5N0UyNzAxNzkyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MDgyQzM4MEYxQjM0NzhFQzdBMTcwMTY5N0EyNzAxNzkwMjQ2NEY3RTE0MDQyRDgwRUI3NTJGNTUxMjczMzU3NTJGMDExMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3RTE3MDE2QjdFMjcwMTdCMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDBDMkMzODBGMUIzNDc4RUM3QTE3MDE2QjdBMjcwMTdCMDI0OTdDN0UxNDA4MkQ4MEVCNzUyRjU1MTI3MzM1NzUyRjAyMTI3MzM1N0E2MTJGMTI3MzM1N0E3MTJGMTI3MzM1N0UxNzAxNkQ3RTI3MDE3RDJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxMDJDMzgwRjFCMzQ3OEVDN0ExNzAxNkQ3QTI3MDE3RDAyNENBOTdFMTQwQzJEODBFQjc1MkY1NTEyNzMzNTc1MkYwMzEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTdFMTcwMTZGN0UyNzAxN0YyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MTQyQzM4MEYxQjM0NzhFQzdBMTcwMTZGN0EyNzAxN0YwMjRGRDY3RTE0MTAyRDgwRUI3NTJGNTUxMjczMzU3NTJGMDQxMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3RTE3MDE3MTdFMjcwMTgxMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDE4MkMzODBGMUIzNDc4RUM3QTE3MDE3MTdBMjcwMTgxMDI1MzAzN0UxNDE0MkQ4MEVCNzUyRjU1MTI3MzM1NzUyRjA1MTI3MzM1N0E2MTJGMTI3MzM1N0E3MTJGMTI3MzM1N0UxNzAxNzM3RTI3MDE4MzJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxQzJDMzgwRjFCMzQ3OEVDN0ExNzAxNzM3QTI3MDE4MzAyNTYzMDdFMTQxODJEODBFQjc1MkY1NTEyNzMzNTc1MkYwNjEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTdFMTcwMTc1N0UyNzAxODUyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MjAyQzM4MEYxQjM0NzhFQzdBMTcwMTc1N0EyNzAxODUwMjU5NUQ3RTE0MUMyRDgwRUI3NTJGNTUxMjczMzU3NTJGMDcxMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3RTE3MDE3NzdFMjcwMTg3MkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDI0MkMzODBGMUIzNDc4RUM3QTE3MDE3NzdBMjcwMTg3MDI1QzhBN0UxNDIwMkQ4MEVCNjQKKzozMzM1NDAwMDAwN0UwNDAwMDE3RTE0N0ZGODdFMjQwMEZFN0QzMTBCMUE1MDFCMEE1MDdFMTQ0MDFCMDI0MDc0N0VGODAwNTk3NUIwREY3RUIwMDE3QUIzOTAwMDdFRjQ0MDMwMDI0MDhCMTI3NDRFRjUyRTdBQTEyRDdBMTE1ODEyNkIwMjEyNDBFQjdFQjMzRkYxNjAwMzEyNDM3OTEyNkJERUQyQUYwMjMwMDA3RTA0MDBGRjdFMTg0MDYwN0ExQzAwMDE4OTE4N0VCMDAxN0FCMzk0MDA3QUIzMkMzNTdFQjAwMTdBQjM5MzAwODkwODdFMDQwMEZGN0UxODQwODI3QTFDMDAwMTg5MTg3RUIwMDA3QUIzOTMwMDg5MDg3RTA4MDAyMDdFNDQwNDAwN0U0MDAwN0VFNDQwOUQwMjczNTA3RTA4MDE1OTdFNDQyQUREN0U0MDAwN0VFNDQwQUYwMjczNTA3RTA4MDA1OTdFNDQwMTAwN0U0MDUzN0VFNDQwQzEwMjczNTA3NTU3MDE3NTU2MDA3RTA0MDAwODc1NTQ1ODc1NTUwODc1NTEwODc1NTMwMTc1ODkwMTc1OEEwMTc1OEMwMEQyOEM3RTA0MDAwMjdBMDU0Mjg5RjQ3NUI3N0Y3NUI4N0Y3NUIzMDE3NUIyMDFEMkE5MjI3NUIwREZFNEQ1RTBGRDc1QjBFRjdFMjQ4MDAwN0UxMTJFN0VBMDA4MTlBMjAwMTAyRTI0MDEwMEE1RDlGMjdFMjAwMDEyNDE4MzBCMjBCRTIxMkU3OEY2MjI3RTA0ODAwMDRDMDI3NEJGMTlCMDAwMEM3NDEwMTlCMDAwMDg3NDgwMTlCMDAwMEM3RTU0MDAwMjE5QTAwMDA0MTlCMDAwMDA3NDAzMTlCMDAwMEM3NDA3MjA2ODAyNzQwRjE5QjAwMDA0MzA2QjE3NzRCRjE5QjAwMDBDNzQyODIwNjgwMjc0MjAxOUIwMDAwNDc0MDMxOUIwMDAwQzc0QTcxOUIwMDAwODc0MEMxOUIwMDAxMDIyN0UwNDgwMDA0QzAyRTQxOUIwMDAwNDA5QjAwMDEwNTQwODE5QjAwMDEwNzRBNzE5QjAwMDA4MjI3Q0IyMjMwQTJCNDkyMjQxQUE4OTI0NDFCQTQxRDc0MUY0NDIxMTQyMkU0MjRCNDI2ODQyODVDMjEwQzIxOEMyMDg3RTA0MDQyRDdBMDcwMTU5N0EwNzAxNjk2RDAwN0EwNzAxNzk3QTA3MDE4OTIyQzIxMUMyMTlDMjA5N0UwNDA4MkQ3QTA3MDE1QjdBMDcwMTZCNkQwMDdBMDcwMTdCN0EwNzAxOEIyMkMyMTJDMjFBQzIwQTdFMDQwQzJEN0EwNzAxNUQ3QTA3MDE2RDZEMDA3QTA3MDE3RDdBMDcwMThEMjJDMjEzQzIxQkMyMEI3RTA0MTAyRDdBMDcwMTVGN0EwNzAxNkY2RDAwN0EwNzAxN0Y3QTA3MDE4RjIyQzIxNEMyMUNDMjBDN0UwNDE0MkQ3QTA3MDE2MTdBMDcwMTcxNkQwMDdBMDcwMTgxN0EwNzAxOTEyMkMyMTVDMjFEQzIwRDdFMDQxODJEN0EwNzAxNjM3QTA3MDE3MzZEMDA3QTA3MDE4MzdBMDcwMTkzMjJDMjE2QzIxRUMyMEU3RTA0MUMyRDdBMDcwMTY1N0EwNzAxNzU2RDAwN0EwNzAxODU3QTA3MDE5NTIyQzIxN0MyMUZDMjBGN0UwNDIwMkQ3QTA3MDE2NzdBMDcwMTc3NkQwMDdBMDcwMTg3N0EwNzAxOTcyMjdDQjIyMzBBMkI0OTIyNDJBRDg5MjQ0MkJENDJENDQyRUI0MzAyNDMxOTQzMzA0MzQ3NDM1RTMwNDAwNzIwNTgwNEMyMjg4MDBDMzA0ODA3MjA1MDA0QzIyODgwMDJEMjI4MjIzMDQxMDcyMDU5MDRDMjI5ODAwQzMwNDkwNzIwNTEwNEMyMjk4MDAyRDIyOTIyMzA0MjA3MjA1QTA0QzIyQTgwMEMzMDRBMDcyMDUyMDRDMjJBODAwMkQyMkEyMjMwNDMwNzIwNUIwNEMyMkI4MDBDMzA0QjA3MjA1MzA0QzIyQjgwMDJEMjJCMjIzMDQ0MDcyMDVDMDRDMjJDODAwQzMwNEMwNzIwNTQwNEMyMkM4MDAyRDIyQzIyMzA0NTA3MjA1RDA0QzIyRDgwMEMzMDREMDcyMDU1MDRDMjJEODAwMkQyMkQyMjMwNDYwNzIwNUUwNEMyMkU4MDBDMzA0RTA3MjA1NjA0QzIyRTgwMDJEMjJFMjIzMDQ3MDcyMDVGMDRDMjJGODAwQzMwNEYwNzIwNTcwNEMyMkY4MDAyRDIyRjIyNDQ2NjQzOEFCRUIwMDI0MDAxMjIyMzBBNUI0OTU1NDM3NTk5NTREMzIyN0VCMDAwN0FCMzk0MDA3QUIzMkMzNTEyNDQ3QTdFMDQyODJEN0EwNzAxQzE3QTA3MDFDMzdFMDQyNDJEN0EwNzAxQzc3QTA3MDFDOTdFMDQ2NjdGN0EwNTRCNzQyMDdBQjM5MTAwNzQ2MDdBQjM5MTFDNzQxMjdBQjM5MTA2NzQ0MDdBQjM5MTA3NzQxRTdBQjM5MTEwNzQ0ODdBQjM5MTEyNzQxMDdBQjM5MTEzNzQzRjdBQjM5MTE0NzQ0MDdBQjM5MTAwNzQ2MDdBQjM5MTFDNzQxNDdBQjM5MTA2NzQ0MDdBQjM5MTA3NzQxNjdBQjM5MTEwNzQwODdBQjM5MTExNzQyMDdBQjM5MTEzNzQzRjdBQjM5MTE0NzQ2MDdBQjM5MTAwNzQ2MDdBQjM5MTFDNzQxNjdBQjM5MTA2NzQyMDdBQjM5MTA3NzQyRjdBQjM5MTEwNzQ0ODdBQjM5MTEyNzQxMDdBQjM5MTEzNzQzRjdBQjM5MTE0NzQwMjdBQjM5MTA2NzQwRjdBQjM5MTA3MTI0MEZBN0UyMDAwMTI0MTlGMEIyMEJFMjEyRTc4RjZEMkE4MjI3RUIwMDE3QUIzOTQwMDdBQjMyQzM1MTI0NDdBNzVCMERGQzJBODIyNzQwMjdBQjM5MTA2NzQwMTdBQjM5MTA3N0UyMDA0N0NCMkMyRDcxMzEzMTMxMzdBQjM5MTAwNzQ2MDdBQjM5MTFDNzQwMjdBQjM5MTEyQTVEQUU1MjJDQTA5MTIzMDBFMTAwMTM0RDU1MTQwNzQwMDdBQjM5MTAwNzQwMjdBQjM5MTA2N0VCMzkxMDc3NDAzN0FCMzkxMDY3RUIzOTEwNzdFQjM5MTE0N0VCMzkxMDQ2MzUzMDE3RTAwNTQyRTAxNTNBNUU2RjU1MTgwMTIyMDAyMUQ3NTUzMDA4NTU0NTFEMjAyNzQwMzgwMEQzMDAyMEVDMjAyN0UwMDU2MkUwMTUzQTVFNjdBQjM5MDAwREEwOTMyNDU2RjQ1OEI0NUE3NDVDMzQ1REY0NUZCNDYxNzQ2MzNDMEQwQzBEMUMwRTBDMEYwQ0EwQkNBMUJDQTJCRDIwMTc1MkY4OTEyNzMzNTdFQjM5MDAwNjAyODdFMTQ4MDAwN0UwMDAwMTM1MDEzQ0EwQkNBNTk3Q0IwMjMwQTJCNDkyMjQ1MDQ5OTI0REE1OURBMEJBNTBBQTUwOEJFMDEyRTc4RTE4MEQyMzAwNDA1QzIwNDEyNjQ4NkRBMkJEQTFCREEwQkQwRjBEMEUwRDBEMUQwRDAzMjA5QjEwMDA4MjBFMDE0NzUyRjgwMTI3MzM1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MUFCODk1NDIyMDlCMTAwMDgyMEUwMTQ3NTJGODExMjczMzU1NDNFMEE1QjdFNDQwMEZGNjk1MjYxRUI4OTU0MjIwOUIxMDAwODIwRTAxNDc1MkY4MjEyNzMzNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjIyQjg5NTQyMjA5QjEwMDA4MjBFMDE0NzUyRjgzMTI3MzM1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MjZCODk1NDIyMDlCMTAwMDgyMEUwMTQ3NTJGODQxMjczMzU1NDNFMEE1QjdFNDQwMEZGNjk1MjYyQUI4OTU0MjIwOUIxMDAwODIwRTAxNDc1MkY4NTEyNzMzNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjJFQjg5NTQyMjA5QjEwMDA4MjBFMDE0NzUyRjg2MTI3MzM1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MzJCODk1NDIyMDlCMTAwMDgyMEUwMTQ3NTJGODcxMjczMzU1NDNFMEE1QjdFNDQwMEZGNjk1MjYzNkI4OTU0MjIxMDA4MDEyMjIwMjgwM0QyMDgyMjc1MkZBMDEyNzMzNTdFMTQ4MDAwODAwNjIwMjgwM0QyMDgyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI0OTQ1MzAzMDA2MjBFNjRGRDIwODIyMzBFNjAyRDI2MDdFMzcwMTc5N0UyNzAxOTk5RDMyNDAzMTdEMDIyRTA1MzI3QTA1MzI3QTM3MDE3OTdFMzcwMTU5N0Q0MzJENDJCRTQ0MDgyQzM4Njg3QTQ3MDE1OTc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjBDNDIyQzI2MDJEMjM2ODc4NkQzMzgwMUE3RTI3MDE3OUJFMjQwMDAwNjg2QUJFMjcwMTk5MjgwNDdFMjcwMTk5N0UzNzAxNzk5RDMyN0QwMjJFMDUzMjdBMDUzMjdBMzcwMTc5N0UzNzAxNTk3RDQzMkQ0MkJFNDQwODJDMzgxMzdBNDcwMTU5NzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDA4MkQ5RDI0MTI2OUYwN0UzNDA0MkQ3RDI0MkQ0MzdBNDcwMTU5MTI2OUYwQkUyNTIwNzgwMzAyNDZDMjIyRDIwODdFMDQwNDJEN0EwNzAxNTk3QTA3MDE2OTc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQTkyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDAwMDJFMjcwMUE5MUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzODBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEwMjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDAwMDAyRTY3MDFBOTlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDA3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI0ODFFNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDM4MEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTAyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjQ4MUVEQUI4MDI0OTQ1MDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNTg4MDAyQzI1OEE1RkQ1RTUwODA2ODA0RDI1MDgwMDJDMjUwMTI0MkJEMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNDg3Mjc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDA5MDEyMjIwMjkwM0QyMDkyMjc1MkZBMTEyNzMzNTdFMTQ4MTAwODAwNjIwMjkwM0QyMDkyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI0QzcyMzAzMTA2MjBFNjRGRDIwOTIyMzBFNjAyRDI2MTdFMzcwMTdCN0UyNzAxOUI5RDMyNDAzMTdEMDIyRTA1MzQ3QTA1MzQ3QTM3MDE3QjdFMzcwMTVCN0Q0MzJENDJCRTQ0MEMyQzM4Njg3QTQ3MDE1Qjc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjFDNDIyQzI2MTJEMjM2ODc4NkQzMzgwMUE3RTI3MDE3QkJFMjQwMDAwNjg2QUJFMjcwMTlCMjgwNDdFMjcwMTlCN0UzNzAxN0I5RDMyN0QwMjJFMDUzNDdBMDUzNDdBMzcwMTdCN0UzNzAxNUI3RDQzMkQ0MkJFNDQwQzJDMzgxMzdBNDcwMTVCNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDBDMkQ5RDI0MTI2OUYwN0UzNDA4MkQ3RDI0MkQ0MzdBNDcwMTVCMTI2OUYwQkUyNTIwNzgwMzAyNDlFRjIyRDIwOTdFMDQwODJEN0EwNzAxNUI3QTA3MDE2Qjc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQUIyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDEwMDJFMjcwMUFCMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzOTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjExMjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDAxMDAyRTY3MDFBQjlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDE3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI0QjRCNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDM5MEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTEyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjRCNEJEQUI4MDI0QzcyMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNTk4MDAyQzI1OUE1RkQ1RTUwODA2ODA0RDI1MTgwMDJDMjUxMTI0MkQ0MDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNEI5Rjc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBBMDEyMjIwMkEwM0QyMEEyMjc1MkZBMjEyNzMzNTdFMTQ4MjAwODAwNjIwMkEwM0QyMEEyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI0RjlGMzAzMjA2MjBFNjRGRDIwQTIyMzBFNjAyRDI2MjdFMzcwMTdEN0UyNzAxOUQ5RDMyNDAzMTdEMDIyRTA1MzY3QTA1MzY3QTM3MDE3RDdFMzcwMTVEN0Q0MzJENDJCRTQ0MTAyQzM4Njg3QTQ3MDE1RDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjJDNDIyQzI2MjJEMjM2ODc4NkQzMzgwMUE3RTI3MDE3REJFMjQwMDAwNjg2QUJFMjcwMTlEMjgwNDdFMjcwMTlEN0UzNzAxN0Q5RDMyN0QwMjJFMDUzNjdBMDUzNjdBMzcwMTdEN0UzNzAxNUQ3RDQzMkQ0MkJFNDQxMDJDMzgxMzdBNDcwMTVENzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDEwMkQ5RDI0MTI2OUYwN0UzNDBDMkQ3RDI0MkQ0MzdBNDcwMTVEMTI2OUYwQkUyNTIwNzgwMzAyNEQxQzIyRDIwQTdFMDQwQzJEN0EwNzAxNUQ3QTA3MDE2RDc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQUQyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDIwMDJFMjcwMUFEMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEyMjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDAyMDAyRTY3MDFBRDlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDI3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI0RTc4NzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNBMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTIyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjRFNzhEQUI4MDI0RjlGMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUE4MDAyQzI1QUE1RkQ1RTUwODA2ODA0RDI1MjgwMDJDMjUyMTI0MkVCMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNEVDQzc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBCMDEyMjIwMkIwM0QyMEIyMjc1MkZBMzEyNzMzNTdFMTQ4MzAwODAwNjIwMkIwM0QyMEIyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1MkNDMzAzMzA2MjBFNjRGRDIwQjIyMzBFNjAyRDI2MzdFMzcwMTdGN0UyNzAxOUY5RDMyNDAzMTdEMDIyRTA1Mzg3QTA1Mzg3QTM3MDE3RjdFMzcwMTVGN0Q0MzJENDJCRTQ0MTQyQzM4Njg3QTQ3MDE1Rjc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjNDNDIyQzI2MzJEMjM2ODc4NkQzMzgwMUE3RTI3MDE3RkJFMjQwMDAwNjg2QUJFMjcwMTlGMjgwNDdFMjcwMTlGN0UzNzAxN0Y5RDMyN0QwMjJFMDUzODdBMDUzODdBMzcwMTdGN0UzNzAxNUY3RDQzMkQ0MkJFNDQxNDJDMzgxMzdBNDcwMTVGNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDE0MkQ5RDI0MTI2OUYwN0UzNDEwMkQ3RDI0MkQ0MzdBNDcwMTVGMTI2OUYwQkUyNTIwNzgwMzAyNTA0OTIyRDIwQjdFMDQxMDJEN0EwNzAxNUY3QTA3MDE2Rjc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQUYyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDMwMDJFMjcwMUFGMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQjBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEzMjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDAzMDAyRTY3MDFBRjlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDM3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1MUE1NzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNCMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTMyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjUxQTVEQUI4MDI1MkNDMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUI4MDAyQzI1QkE1RkQ1RTUwODA2ODA0RDI1MzgwMDJDMjUzMTI0MzAyMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNTFGOTc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBDMDEyMjIwMkMwM0QyMEMyMjc1MkZBNDEyNzMzNTdFMTQ4NDAwODAwNjIwMkMwM0QyMEMyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1NUY5MzAzNDA2MjBFNjRGRDIwQzIyMzBFNjAyRDI2NDdFMzcwMTgxN0UyNzAxQTE5RDMyNDAzMTdEMDIyRTA1M0E3QTA1M0E3QTM3MDE4MTdFMzcwMTYxN0Q0MzJENDJCRTQ0MTgyQzM4Njg3QTQ3MDE2MTc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjRDNDIyQzI2NDJEMjM2ODc4NkQzMzgwMUE3RTI3MDE4MUJFMjQwMDAwNjg2QUJFMjcwMUExMjgwNDdFMjcwMUExN0UzNzAxODE5RDMyN0QwMjJFMDUzQTdBMDUzQTdBMzcwMTgxN0UzNzAxNjE3RDQzMkQ0MkJFNDQxODJDMzgxMzdBNDcwMTYxNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDE4MkQ5RDI0MTI2OUYwN0UzNDE0MkQ3RDI0MkQ0MzdBNDcwMTYxMTI2OUYwQkUyNTIwNzgwMzAyNTM3NjIyRDIwQzdFMDQxNDJEN0EwNzAxNjE3QTA3MDE3MTc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQjEyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDQwMDJFMjcwMUIxMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQzBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE0MjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDA0MDAyRTY3MDFCMTlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDQ3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1NEQyNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNDMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTQyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjU0RDJEQUI4MDI1NUY5MDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUM4MDAyQzI1Q0E1RkQ1RTUwODA2ODA0RDI1NDgwMDJDMjU0MTI0MzE5MDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNTUyNjc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBEMDEyMjIwMkQwM0QyMEQyMjc1MkZBNTEyNzMzNTdFMTQ4NTAwODAwNjIwMkQwM0QyMEQyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1OTI2MzAzNTA2MjBFNjRGRDIwRDIyMzBFNjAyRDI2NTdFMzcwMTgzN0UyNzAxQTM5RDMyNDAzMTdEMDIyRTA1M0M3QTA1M0M3QTM3MDE4MzdFMzcwMTYzN0Q0MzJENDJCRTQ0MUMyQzM4Njg3QTQ3MDE2Mzc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjVDNDIyQzI2NTJEMjM2ODc4NkQzMzgwMUE3RTI3MDE4M0JFMjQwMDAwNjg2QUJFMjcwMUEzMjgwNDdFMjcwMUEzN0UzNzAxODM5RDMyN0QwMjJFMDUzQzdBMDUzQzdBMzcwMTgzN0UzNzAxNjM3RDQzMkQ0MkJFNDQxQzJDMzgxMzdBNDcwMTYzNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDFDMkQ5RDI0MTI2OUYwN0UzNDE4MkQ3RDI0MkQ0MzdBNDcwMTYzMTI2OUYwQkUyNTIwNzgwMzAyNTZBMzIyRDIwRDdFMDQxODJEN0EwNzAxNjM3QTA3MDE3Mzc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQjMyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDUwMDJFMjcwMUIzMUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRDBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE1MjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDA1MDAyRTY3MDFCMzlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDU3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1N0ZGNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNEMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTUyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjU3RkZEQUI4MDI1OTI2MDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUQ4MDAyQzI1REE1RkQ1RTUwODA2ODA0RDI1NTgwMDJDMjU1MTI0MzMwMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNTg1Mzc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBFMDEyMjIwMkUwM0QyMEUyMjc1MkZBNjEyNzMzNTdFMTQ4NjAwODAwNjIwMkUwM0QyMEUyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1QzUzMzAzNjA2MjBFNjRGRDIwRTIyMzBFNjAyRDI2NjdFMzcwMTg1N0UyNzAxQTU5RDMyNDAzMTdEMDIyRTA1M0U3QTA1M0U3QTM3MDE4NTdFMzcwMTY1N0Q0MzJENDJCRTQ0MjAyQzM4Njg3QTQ3MDE2NTc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjZDNDIyQzI2NjJEMjM2ODc4NkQzMzgwMUE3RTI3MDE4NUJFMjQwMDAwNjg2QUJFMjcwMUE1MjgwNDdFMjcwMUE1N0UzNzAxODU5RDMyN0QwMjJFMDUzRTdBMDUzRTdBMzcwMTg1N0UzNzAxNjU3RDQzMkQ0MkJFNDQyMDJDMzgxMzdBNDcwMTY1NzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDIwMkQ5RDI0MTI2OUYwN0UzNDFDMkQ3RDI0MkQ0MzdBNDcwMTY1MTI2OUYwQkUyNTIwNzgwMzAyNTlEMDIyRDIwRTdFMDQxQzJEN0EwNzAxNjU3QTA3MDE3NTc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQjUyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDYwMDJFMjcwMUI1MUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE2MjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDA2MDAyRTY3MDFCNTlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDY3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1QjJDNzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNFMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTYyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjVCMkNEQUI4MDI1QzUzMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUU4MDAyQzI1RUE1RkQ1RTUwODA2ODA0RDI1NjgwMDJDMjU2MTI0MzQ3MDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNUI4MDc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjIxMDBGMDEyMjIwMkYwM0QyMEYyMjc1MkZBNzEyNzMzNTdFMTQ4NzAwODAwNjIwMkYwM0QyMEYyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1RjgwMzAzNzA2MjBFNjRGRDIwRjIyMzBFNjAyRDI2NzdFMzcwMTg3N0UyNzAxQTc5RDMyNDAzMTdEMDIyRTA1NDA3QTA1NDA3QTM3MDE4NzdFMzcwMTY3N0Q0MzJENDJCRTQ0MjQyQzM4Njg3QTQ3MDE2Nzc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTEyNjlGMDEwNjdDNDIyQzI2NzJEMjM2ODc4NkQzMzgwMUE3RTI3MDE4N0JFMjQwMDAwNjg2QUJFMjcwMUE3MjgwNDdFMjcwMUE3N0UzNzAxODc5RDMyN0QwMjJFMDU0MDdBMDU0MDdBMzcwMTg3N0UzNzAxNjc3RDQzMkQ0MkJFNDQyNDJDMzgxMzdBNDcwMTY3NzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1MDI2OUYwNzUyRjk0MTI3MzM1N0E1MTJGMTI3MzM1OUU0NDI0MkQ5RDI0MTI2OUYwN0UzNDIwMkQ3RDI0MkQ0MzdBNDcwMTY3MTI2OUYwQkUyNTIwNzgwMzAyNUNGRDIyRDIwRjdFMDQyMDJEN0EwNzAxNjc3QTA3MDE3Nzc1MkY5NDEyNzMzNTc1MkYwMDEyNzMzNTIyNzUyRjkyMTI3MzM1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg2ODdFMzcwMUNCN0UyNzAxQjcyRTI0MDAwMjJEMzJCRTM0MDQwMDM4MzQ3RDAyMkUwNTMwN0EwNTMwN0EzNzAxQ0I3RTM3MDFDOTdENDMyRDQyQkU0NDI4MkMzODNDN0E0NzAxQzk3RTI0MDcwMDJFMjcwMUI3MUIzODIwMEIzNTdBNTEyRjEyNzMzNTAyNkE2Mzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRjBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE3MjI4MDdGN0E1MTJGMTI3MzM1OUU0NDI4MkQ5RDI0N0U2NDA3MDAyRTY3MDFCNzlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjZBNjM3RTM0MjQyRDdEMjQyRDQzN0E0NzAxQzkwMjZBNjM3QTM5QzA3RTM0MjQyRDdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDc3QTY5QjA3QTc5NzAwQjM1NzUyRjkzMTI3MzM1N0E3MTJGMTI3MzM1QkQwNDY4MkI3QTA3MDFDOTdFNDcwMUNCMkQ0MzdBNDcwMUNCMkUzNTMwN0EzNTMwMjJEMjA0MDlCMTAwMTQyMEUwMTMyMjdFMDQyNDJEODAyODdFMDQyNDJEODAyQTdFMDQyNDJEODBDRjdFMDcwMUNCN0UyNDAzRkU5RDIwMjg0MDdFMDcwMUM5N0U0NDI4MkQ3RDYwMEIwNEJEMDQ2OEQyN0Q3MDBCMDRCRDA0NjhEMDdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1RTU5NzUyRjk5MTI3MzM1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNGMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTcyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjVFNTlEQUI4MDI1RjgwMDlCMTAwMTg3RUEwODg3NTJGOTAxMjczMzVGNTJGMTI3MzM1QTVGRDVFNTAwQTY4MURBNUZENUU1MDIwNjgwNEQyNUY4MDAyQzI1RkE1RkQ1RTUwODA2ODA0RDI1NzgwMDJDMjU3MTI0MzVFMDI2MTEzNzUyRjkxMTI3MzM1MDlCMTAwMTQ3QUIxMkYxMjczMzUyMEUwMDhEMjA0N0VBMDgwMDI2MTEzRDIwNDMwRTEwNjdFQTA4MDEyNjExM0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MTM2MDlCMTAwMTQyMEUwREIyMjAyNUVBRDc1MkY5NTEyNzMzNTIyNzUyRjk2MTI3MzM1MjI3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDIwNjgwNEQyNTg4MDAyQzI1OEE1RkQ1RTUwODA2ODA0RDI1MDgwMDJDMjUwMDI2MEZGN0MwMjdFMTQ4MDAwNEMyMDA5QjEwMDE4QTVGRDVFNTAyMDY4MDREMjU5ODAwMkMyNTlBNUZENUU1MDgwNjgwNEQyNTE4MDAyQzI1MTAyNjBGRjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMjA2ODA0RDI1QTgwMDJDMjVBQTVGRDVFNTA4MDY4MDREMjUyODAwMkMyNTIwMjYwRkY3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDIwNjgwNEQyNUI4MDAyQzI1QkE1RkQ1RTUwODA2ODA0RDI1MzgwMDJDMjUzMDI2MEZGN0MwMjdFMTQ4MDAwNEMyMDA5QjEwMDE4QTVGRDVFNTAyMDY4MDREMjVDODAwMkMyNUNBNUZENUU1MDgwNjgwNEQyNTQ4MDAyQzI1NDAyNjBGRjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMjA2ODA0RDI1RDgwMDJDMjVEQTVGRDVFNTA4MDY4MDREMjU1ODAwMkMyNTUwMjYwRkY3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDIwNjgwNEQyNUU4MDAyQzI1RUE1RkQ1RTUwODA2ODA0RDI1NjgwMDJDMjU2MDI2MEZGN0MwMjdFMTQ4MDAwNEMyMDA5QjEwMDE4QTVGRDVFNTAyMDY4MDREMjVGODAwMkMyNUZBNUZENUU1MDgwNjgwNEQyNTc4MDAyQzI1NzAyNjBGRjU0RjBDNEE1RkZDNEE1NEY3NTJGOTAxMjczMzVGNTJGMTI3MzM1MjJDQTE5NUUyMDA3NENBMjdFNzQyQzJEQ0E3OTdBNzlBMDBCNzQ3QTc5QjAwQjc0REE3OTdFMzAwMjdFNjQwMDAyMDI2MTVFQ0ExOTVFMjAwNzRDQTI3RTc0MkMyRENBNzk3QTc5QTAwQjc0N0E3OUIwMEI3NDdBNzk2MDBCNzREQTc5N0UzMDAzN0U2NDAwMDMwMjYxNUVEMjA0N0UyNzAxQ0IyRDI2QkUyNDA0MDAzODJFN0UwNzAxQzk3RTQ0MjgyRDdFNzlBMDdBMDlBMDBCMDQwQjc0QkQwNDY4MjNBNURCRUY3QTI3MDFDQjdFMjUzMDJEMjY3QTI1MzA3QTA3MDFDOURBMTlDMkQ3MjI3NTJGOUExMjczMzVEQTE5RDJENzIyN0UwNDI0MkQ4MEQ3NDhGMTQ2NjU0NzVGNDkyQTQ1MkE0NTJBNDg1NjQ1MkE0OTZFNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ5NzU0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0QzFFNDk5MjRBOEM0QzU3NDUyQTQ1MkE0QjgzNDUyQTRDOUI0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNENBMjQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTRGNEI0Q0JGNERCOTRGODQ0NTJBNDUyQTRFQjA0NTJBNEZDODQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0RkNGNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNTI3ODRGRUM1MEU2NTJCMTQ1MkE0NTJBNTFERDQ1MkE1MkY1NDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTUyRkM0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE1NUE1NTMxOTU0MTM1NURFNDUyQTQ1MkE1NTBBNDUyQTU2MjI0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNTYyOTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTU4RDI1NjQ2NTc0MDU5MEI0NTJBNDUyQTU4Mzc0NTJBNTk0RjQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE1OTU2NDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNUJGRjU5NzM1QTZENUMzODQ1MkE0NTJBNUI2NDQ1MkE1QzdDNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTVDODM0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE1RjJDNUNBMDVEOUE1RjY1NDUyQTQ1MkE1RTkxNDUyQTVGQTk0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNUZCMDQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQUNBQjg3NTJGMDIxMjczMzU3RUIzOTEwMzIwRTUyMDMwRTAwNTEyNkIwNTgwMzAzMEUxMDUxMjY0ODY4MDI4MzBFMjA1MTI2M0Y1ODAyMDMwRTMxRDEyNjU2MTgwMTg3RUIzOTEwNDMwRTEwMzAyNjc1RjMwRTYwNTEyNkM2QTgwMDYyMEUyMDMwMjAwODBEQUI4MzI3NTJGMTAxMjczMzVDQTBCQ0EzOUNBNTk3NDQwN0FCMzkxMDA3RUIzOTExQTZDQUFCRUIwNDAyODBBMTI2NDI0REE1OURBMzlEQTBCMjI3NDIwN0FCMzkxMTQ4MEYxN0UzNzAxQzUyRDM1QkUzNDA0MDAzODJGN0EzNzAxQzU3RTM3MDFDMzdENDMyRDQ1QkU0NDJDMkMzODI1N0E0NzAxQzM3NTJGMTExMjczMzU3QUIxMkYxMjczMzUxMjY3OUY3NDIwN0FCMzkxMTQxMjY2MzAyMjc1MkYxNjEyNzMzNTgwRjQ3NTJGMTIxMjczMzU3QUIxMkYxMjczMzU5RTQ0MkMyRDlENTQxMjY3OUY3RTM0MjgyRDdENTQyRDQzODBCQzc1MkYxODEyNzMzNUNBMDlDQTM5Q0EyQjc0MjA3QUIzOTEwMDdFNjM5MTFBNzQxMDdBQjM5MTE0N0VCMDgwOUNCNjYwMzg2Q0FBN0UzNzAxQ0I5RDM1NDAzNzdBMzcwMUNCN0UzNzAxQzc3RDQzMkQ0NUJFNDQyODJDMzgzQjdBNDcwMUM3N0Q0NTEyNjhENDdFQjM5MTFFMjBFNTEzNzUyRjE5MTI3MzM1N0E5MTJGMTI3MzM1REEyQkRBMzlEQTA5MjI4MDM0MkQ1MzZEMzM2MDAyODBDMTdFMDQyNDJEN0EwNzAxQzk3QTA3MDFDNzgwRTFDQTU5OUU0NDI4MkQ5RDU0MTI2OEQ0N0UzNDI0MkQ3RDU0MkQ0MzdBNDcwMUM3MTI2OEQ0REE0OTgwQjA3RTBGMkMzRTBCMEM3QTBGMkMzRTc0MjA3QUIzOTExRTc0NjA3QUIzOTExQzc0MDI3QUIzOTExMjgwQTU3RTJGMkM1RTBCMkM3QTJGMkM1RTc0MjA3QUIzOTExRTc0NjA3QUIzOTExQzc0MDI3QUIzOTExMjgwMUZEQTJCREExQkRBMEIyMjc1MkYyODEyNzMzNUNBMEJDQTFCQ0EyQjc0NjA3QUIzOTEwMDc0MTA3QUIzOTExNDdFQjM5MTFBNzBEQjdFMEQzMDdFMUQzNDdFMkQzODdFM0QzQzdFODU0MDdEOTA0RDkxNEQ5MjREOTM0RDk0NEQ5NTREOTY0RDk3NEQ5ODY4Qjg3QTEzOTExNzdBMDM5MTE3N0EzMzkxMTc3QTIzOTExNzdBNTM5MTE3N0E0MzkxMTc3QTczOTExNzdBNjM5MTE3N0E5MzkxMTc3QTgzOTExNzMwNzMyMjdBQjM5MTE3N0FBMzkxMTc3QUQzOTExNzdBQzM5MTE3N0FGMzkxMTc3QUUzOTExNzdENzg3QUYzOTExNzdBRTM5MTE3N0VCMzkxMUUzMEU1MDMwMjY1M0M3NTJGMjkxMjczMzUyMDczMDg3NTJGMEExMjczMzU4MDA2NzUyRjEyMTI3MzM1NzQ4MDdBQjM5MTFFNkQwMDdEMTA3QTBEMzA3QTBEMzQ3QTBEMzg3QTBEM0M3QTA1NDBEQTJCREExQkRBMEIyMjdFMzcwMUM1NEQzMzY4M0I3RTA3MDFDMTdFNTQyQzJEOUQ1MEJEMzU0MDAyN0QzNUNBMzk3RTY1NEI5OTY0REEzOTdFMDcwMUM1OUQwMzdBMDcwMUM1MkUzNzAxQzE3QTM3MDFDMUJFMzQyQzJDMjhDNzdFMzQyODJEN0EzNzAxQzE4MEJEMjI3NTJGNTMxMjczMzU3RTE1NEQ4MDExNzUyRjUxMTI3MzM1MEIwODEwMEIwNTlFMzQwMDAyMjg0RDdDQjIyMEU3Mjc1NDA3MjMwQTJCNDkyMjM5MUU3Q0IyNTQ3ODAzMDMwMzdDMkI5RDEzNDAxQTY4MTI3QTE1NEQ3QTI1NEY3RTY0NjcwOTdBNjU0Qjg5MjQwMjY3MTc3RTY0NjY3RjgwRjIyRDEzOUQzMUNBMzk3RDMxMkQxMENBMTlDQTI5OTkyNERBMjlEQTA5REEzOTgwQTI3QTE1NEQ3RTY0NjZGNTREMzM3ODA5N0NCMjIwRTcyQTdFNjQ2Njc0N0E2NTRCMjI3NTJGNTIxMjczMzU3RTIxNEQ3RTA5MzAwQjA0MUIzNDc4ODk4MEQ0NzUyRjU0MTI3MzM1N0UxNTREN0UyNTRGODA5MDVFMjAwNzU0Nzg3RTQ0Njc3RDMwRTYxNjREMzM2ODI2MUIzNDdFMDk0MDBCMDQ3RTQ0MzRGQTIwRTMwNDdFNDQ2Nzg1Q0EwOUNBMzk5OTQ0REEzOURBMDk3RTY0NjY3RjREMzM2OEE2ODk2NDdBMTU0REY1NEY3RTY0Njc1ODgwOTk3RTE1NERFNTRGODBDNEMwRDBDMEQxQzBFMENBMTk3NTJGRkUxMjczMzU3RTE0MDA1MzAyNDA1MkRBMTlEMEUwRDBEMUQwRDAzMjAzQTVDQjE5QjE4MDAwMjIyMjdFMjQwMDAwN0ZFMTdFQTAwMkE0N0UwNDY4QjE5RDA1N0VCMDI4N0FCMzk1MDA4OTA0Q0EyOUI0ODBFMjdFMjQwMDAwN0ZFMTdFMDAyODdBMDM5NTAwRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTM3RTAwMDA3QTAzOTUwMERBMjkyMjdFMjQwMDAwN0ZFMTdFQTAwMkE0N0UwNDY5RTY5RDA1N0VCMDM4N0FCMzk1MDA4OTA0Q0EyOUI0ODBFMjdFMjQwMDAwN0ZFMTdFMDAzODdBMDM5NTAwRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTM3RTAwMDA3QTAzOTUwMERBMjkyMkNBMjlDQTE5Q0E1ODdFMjQwMDAwN0ZFMURBNTg3RTU0MDIyMDlDQjVBNDdFNTAzMDVFMjAwNzJDNTI3QTUzOTUwMDJFNTQ2QTE3ODk1NEUwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzN0UwMDAwN0EwMzk1MDBEQTE5REEyOTIyQ0ExOUNBNTg3RTI0MDAwMDdGRTFEQTU4N0U1NDAyMzg5Q0I1QTQ3RTUwMjA1RTIwMDcyQzUyN0E1Mzk1MDAyRTU0NkE4ODg5NTRFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBMzdFMDAwMDdBMDM5NTAwREExOTIyMDI2QkE4Q0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCNzQwMDdBQjM5MTAwN0VCMzJDN0ZCNDAwMDI4MDFDQjQwMTE5N0VCMzkxMTQ1NDE0NjgwNTEyNkI2QzgwMjM3RUIzOTExNDMwRTUxQzEyNkNBQTgwMTc3RUIzOTExNDMwRTUwNTEyNkNBQTgwMEI3RUIzOTExNDU0MTQ2ODAzMTI2QjZDREFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjIyMEU0MTk3NTJGMEExMjczMzU3RUIzMkM3RTcwMEE3RUIzMkM3RkI0MDExRjAyNkMwNDAyNzFGMjc1MkYwQjEyNzMzNTc0MTQ3QUIzOTExNDdFQjMyQzdGQjQwMjBDMTI2QkI0MDI2QkE4NzQwNDdBQjM5MTE0MjI3RTAwMDA3QTAzMkM3RjdBMDMyQzgwMjI3RUIzMkM3NjU0NjA2MDA1QjQ0MDFFODAxQzdFQjMyQzc3QjQwNTE1NzUyRjcxMTI3MzM1N0VCMzJDNzk3RUEwMDE3QUEzOTEwNjdBQjM5MTA3MjI3NDAwN0FCMzkxMDA3NDEwN0FCMzkxMTIyMkJFNTcyQzdDMjgwNDdFNTcyQzdDN0EwRjJDODI3QTU3MkM4Njc0MTA3QUIzOTExMjIyNzQwMDdBQjM5MTAwN0VCMzkxMUE3MDUzN0VCMzkxMTQyMEU0NEM3RUVGMkM4MjdFRjcyQzg2N0UwNzJDODY0RDAwNjgyMTdFMDAwMEUwN0FCMzkxMTdBM0E1MDgxQkY0NjgwNkE1QjgxMEYwODAxOTdFQjAwMDdBQjMyQzdGQkUwMDEwNjgwRDdFQjAwMDdBQjMyQzdGNzQ4MDdBQjM5MTFFN0FFRjJDODI3QUY3MkM4Njc1MkYwNjEyNzMzNTc0MDQ3QUIzOTExNDIyQ0EwQkNBMUJDQTJCQ0EzQkNBNEJDQTVCQ0E2QkNBN0JDQUVCNzUyRjAzMTI3MzM1NzQwMDdBQjMyQzdFNzQwMDdBQjM5MTAwNzQwMTdBQjM5MTEyMTI2RDE5REFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjI3NTJGMDMxMjczMzU3RUIzMkM4MEI0MDIxMTc0MDA3QUIzMkM4MDdBQjMyQzdGNzQyMDdBQjM5MTE0MjJCNDAxNDY3RUIzOTEwNDIwRTY0MjdFMjM5MTFBN0MzMjdFMTMyQzgxMkMyMTdBMjMyQzgxN0UwMDAwMkUwNDJDODg3RUIzOTExNjdBMDlCMDBCMDRBNURCRjQ3NDIwN0FCMzkxMTQ3NTJGNzAxMjczMzU3RUIzMkM4MTdFQTMyQzdEQkNBQjc4MDMxMjZEQjkyMjAyNzFGMkRBNTkwMjZDN0M3NEUwN0FCMzkxMDA3RTAzOTExMDdFMTM5MTExN0UzMzkxMTI3RTIzOTExMzdFNTM5MTE0N0U0MzkxMTU3RTczOTExNjdFNjM5MTE3N0EwRjJDNzY3QTFGMkM3QTc1MkYwNDEyNzMzNTdBMDEyRjEyNzMzNTdBMTEyRjEyNzMzNTdBMjEyRjEyNzMzNTdBMzEyRjEyNzMzNTdBNDEyRjEyNzMzNTdBNTEyRjEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTc0MDA3QUIzOTEwMDc0NDA3QUIzOTEwNDEyNkQ4RDIyNkQwMDdFMTQwMTAyN0EwNzJDODY3QTAzMkM4MTdFQjMyQzc2MjBFNzBGN0EyMzJDODA3QTMzMkM3RkJFMDcyQzdDNjgwOTIyN0EzMzJDODA3QTIzMkM3RjdFQjMyQzc2NTRFMzIzMjMzMEUwMDJEMkU1MzBFNzAyRDJFNDMwRTUwNjMwRTQwMzAyNzFGMjU0M0VGNUYwMDM1NDFGQzMyNUYwOTA2REU1NzU4NEZGNzMwMjZGQTAwMjZFMkQwMjcwMzkwMjcwNTQwMjZGMzcwMjZFQzIwMjcwODUwMjcwODUwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwODgwMjcwOEUwMjcxNjAwMjcwOEIwMjcwOEIwMjcwOEIwMjcwOEIwMjcwOEIwMjcwOEI3NDAwN0FCMzkxMDA3NDYwN0FCMzkxMUM3RUIzMkM3N0I0MDYyQTdFQjMyQzc4NjA3OTdDMEI3RTEzMkM3OTdFMTcyQzdBNzUyRjcyMTI3MzM1N0EwMTJGMTI3MzM1N0ExMTJGMTI3MzM1MTI3MjM3NDA1ODAyNkJFQkI0MDgxQzc1MkY3NDEyNzMzNTdFQjMzRkYxN0UwODJDODg3QTBDMDAwMDdBMEJCMDdFNTQwMDAxMDI2QkVCQjQwMDMzNzUyRjc1MTI3MzM1N0UwODJDODg3QTBDMDAwMENBMEI3RUIzM0ZGMjMwRTAwNzc0MDI3QTBCQjA4MDA1NzQwMDdBMEJCMDBCMTQ3NDAwN0EwQkIwN0U1NDAwMDJEQTBCMDI2QkVCMDI3MUYyNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzJDNzdCNDAwNUY3NTJGNzYxMjczMzU3RUIzMkM3QjU0MEZCNDAyMDU3RUIwNjA4MDE3QjQwMDA1N0VCMDAwODAwRjdFQjMyQzdCMjBFNzA1N0VCMDQwODAwMzdFQjAyMDdBQjM5MTAwN0VCMzkxMTEzMEUwMDQ3NDAxODAwMjc0MDA3RTA4MkM4ODdBMEMwMDAwQ0EwQjdBMEJCMDBCMTQ3NDAwN0EwQkIwNzQwMDdBQjM5MTAwN0U1NDAwMDJEQTBCMDI2QkVCMDI3MUYyN0VCMzJDN0I1NDBGQjQwMjA1N0VCMDYwODAxN0I0MDAwNTdFQjAwMDgwMEY3RUIzMkM3QjIwRTcwNTdFQjA0MDgwMDM3RUIwMjA3QUIzOTEwMDdFQjMyQzc5QjQwMDI2N0VCMzJDNzdCNDAxMEU3NTJGNzcxMjczMzU3NDAxN0FCMzkxMTI4MDFCQjQwMzBFNzUyRjc4MTI3MzM1NzQwMTdBQjM5MTExODAwQTc0MDA3QUIzOTEwMDEyNzFGMjIyNzQwMDdBQjM5MTAwMDI2QkRFN0VCMzJDNzdCNDA5MUY3NTJGNzkxMjczMzU3RUIzMkM3OUJFQjMzRkYxNjgwRENBQjgxMjQzNzlEQUI4NTA3NjdBQjMzRkYxODA2REI0MDUwODc1MkY3QTEyNzMzNTgwNjJCNDAzMTk3NTJGN0IxMjczMzU3RUIzMkM3OUI0MDE1NTdFQjMzRkYyNDQwMTdBQjMzRkYyODA0NkI0MDExOTc1MkY3QzEyNzMzNTdFQjMyQzc5QjQwMTM5N0VCMzNGRjI1NEZFN0FCMzNGRjI4MDJBQjQwNzJBN0VCMzJDNzg2MDI0N0MwQjdFMTMyQzc5N0UxNzJDN0E3NTJGNzMxMjczMzU3QTAxMkYxMjczMzU3QTExMkYxMjczMzUxMjcyNzE0MDAzMDI2QkRFMDI3MUYyN0VCMzJDNzdCNDBCRjY3NTJGN0QxMjczMzU3RUIzMkM3OTdFQTMyQzdCNENBQjc4RTQ4MERGNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzJDNzdCNDBBQ0Y3NTJGN0UxMjczMzU3RUIzMkM3OTcwQzM3RTA4MkM4ODdBMEMwMDAwN0EwQkIwN0U1NDAwMDEwMjZCRUIwMjcxRjIwMjcxRjIwMjcxRjI3RUIzMkM3N0I0MDQyMDc1MkZDMzEyNzMzNTdFMDQwMDAxN0UxNzJDNzg3RTE4MkM4ODdBMUMwMDAwN0U0NzJDN0MxMjczNDEwMjcxNUFCNDA2NDI3NTJGQzExMjczMzU3RTU4MDAwMDdBNUMwMEZFN0RDQTdFRDcyQzc4N0U3ODJDODg3QTdDMDAwMDdFNzcyQzdDNzUyRkMxMTI3MzM1QzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyNzM3QTdFNDMyQzM1N0E0Mzk0MDBEMEE4NDA2NTgwNjBCNDAwMjRDMkFGN0VCMDAxN0FCMzk0MDA3QUIzMkMzNTEyNkJERUU0OERFRjhERUY4REVGRDVFMEY3QzBEMUNBMDJGRkNBMDYwMDAwMzJCNDA5MjA3NDAzN0FCMzkxMDY3RTIzOTEwNzdFNTcyQzc4NEQ1NTY4MDU0RTIwMDI4MDAzNUUyMEZEN0EyMzkxMDc4MDE2QjQwNzE2QzJBRjdFMDcyQzdBN0UxNzJDNzhDMEQxQ0ExOENBMzhDQTI4MzIwMjZCREUwMjcxRjI3NDAwN0FCMzkxMDA3NDYwN0FCMzkxMUM3RUIzMkM3N0I0MDMxNTc1MkZDMjEyNzMzNTdFMDQwMDAxN0UxNzJDNzg3RTU3MkM3QzAyNkJFQkI0MDU0MTc1MkZDMDEyNzMzNUMwQThDMkFGN0U0MDAxN0E0Mzk0MDA3RTA4MkM4ODdBMEMwMDAwN0UyNDAwRkU3RTM3MkM3ODdFNDcyQzdDMTI3MzQxN0U0MzJDMzU3QTQzOTQwMEQwQTg3RTA4MkM4ODdBMEMwMDAwN0U1NzJDN0MwMjZCRUJCNDAxMjA3RTAwMDA3RTEwMDE3NTJGNzIxMjczMzU3QTAxMkYxMjczMzU3QTExMkYxMjczMzUxMjcyMzc0MDAzMDI2QkVCMDI3MUYyNzUyRjA3MTI3MzM1N0VCMDAyN0FCMzkwMDA3NDAwN0FCMzkxMDA3NDQwN0FCMzkxMTU3NDAxN0FCMzkxMTE3RUIzOTExNTU0NjBCRUIwNDA2ODA4NzQyMDdBQjM5MTE1ODBFRDc0MDE3QUIzOTExMjc0MDQ3QUIzOTExNDc0RkY3QUIzMkM3RTIyQzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyNzJCRTQwMUY3RTA4MkM4ODdBMEMwMDAwQ0EwQkNBNDkxMjczNDFEQTU5REEwQjdFNDMyQzM1N0E0Mzk0MDBEMEE4QzMyMjdFNDMyQzM1N0E0Mzk0MDBEMEE4MjJDMEE4QzJBRjdFNDAwMTdBNDM5NDAwMTI3MkJFNDAzMTdFNTgwMDAwN0E1QzAwRkU3RjYxN0U3ODJDODg3QTdDMDAwMDdFNzcyQzdDQkQ3NDc4MTc3NTJGQzExMjczMzUxMjczN0E0MDBDN0U0MzJDMzU3QTQzOTQwMEQwQThDMzIyN0U0MzJDMzU3QTQzOTQwMEQwQThEMzIyN0UyNDAwRkU3RTM0N0ZDQTBCMUE1MEM1RjA3RDYyN0Q3NTdEODc3RTM0N0ZDMjdFMUJCMDdFMzQ3RjAzQjQwMTA0N0UzNDdGQ0M3RTFCQjBCQzBCNTA0OTNFMDAzRTAwMEE1MDJENzUwQjNBMzA2OTUzMDAwMkJEMzg1MDAyMkQzOEJDMUI1MDMwM0UxMDNFMTAwQTUxMkQzNTY5NDEwMDAyMEIxQTMwQkQzODUwMDIyRDM4QkU0NEZGRkY3ODA1N0UxQjkwMEE0OTRENDQ2ODBDQkU0NDAwRkYyODA0N0U0NDAwRkZDMzIyRDMyMjc0Cis6MDAwNDdGQzYwMDAyMDAwMzAwQjIKKzowMTQ4NzMzNTAwQ0EwODdFMDEyRjdBMDMzRkYwREEwODIyN0UxQkMwN0EwQkMwMEIxNDBCMzQxQjQ0NzhGMjIyN0Y2RjdGRjAxQkZDN0M1NDdEMzI4MDA4Q0ExQkNBMUJDQTFCQ0ExQjlFNDQwMDEwNTBGMjJFNDQwMDEwNjgwNkNBNDgxQjQ0NzhGQTdGRjY4OUU0Q0E2QjVFRDQwMDNGNjgyMDdFODQwMDQwOUQ4RERBNkJCRDg3MzgxNkNBNzk3RDc4MTI3M0E0REE3OTQwMDg5RDc4NjgwMjgwMDVDMkQ3MjJEQTZCN0VDMDAzN0VEMDAwN0FEMzkwMDA3NEFBMzlCNTU1NTU3NDU1MzlCNTJBQUE3NEEwMzlCNTU1NTU3RTA0MDA0MDlENzA1MDA2MkQ3MDdEMDc2RDc3N0MzMTdFN0IwMDdBNkIwMDBCN0MwQjZDQTVEOUYzN0YxNjFCMUM3RTU0MjcxMDdFMUIxMEJDMTA2ODA2MUI1NDc4RjU4MDJGNkQwMDdDMjA3RjE2OUYxMDdGMjc5RjIwN0UyQjAwN0UxQjEwQkMwMTc4MTkwQjJDMEIxQ0E1REJFRjdDQjYyMEUwMDY2Q0RDN0FEMzkwMDA0RDc3Nzg5MEMyRDcyMkQyRDcyMjAwMDQwMDA0MDAwMDA2MDQwMjA0MDAwMjAxMDQwMTAyMDAwMDAwMDAwMDAwMDAwMDAyMDIwMjAyMDIwNDAwMDgxMDAyMTAwNDAyMDgwMDAxMDEwODdFMTg3RkJEN0ExQzAwRkUwQjFBMDA1RTEwMUZCRTEwMTQzODFBMEE1MTIzN0UxODc0MjQ3QTFDMDBGRjJEMzUwQjFBNTA2MDA4QTVCODAyMDM0RUEwMDgyMjgwRkVDQgorOjAwMDAwMDAwMDFGRgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCisvLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2CisvLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisvLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24zLmJpbi5paGV4IGIvZmlybXdhcmUvZWRnZXBvcnQvZG93bjMuYmluLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzkzNWU1MgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24zLmJpbi5paGV4CkBAIC0wLDAgKzEsODE1IEBACis6MTAwMDAwMDAwNDUwMDAwMDg3MzI5QTAyMjdCRjAyMjFCMjAwMDAwMDhDCis6MTAwMDEwMDAwMDAwMDIwMDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTAwMDIwMDAwMDAwMDIwMTFBODUzRjhDODU0MDhBQzBFMEMwRDBDMDI0Cis6MTAwMDMwMDBGMEMwODJDMDgzQzAwMEMwMDFDMDAyQzAwM0MwMDRDMEMxCis6MTAwMDQwMDAwNUMwMDZDMDA3RTUzRTI0MDhGOEU2NjAyQkU1M0UyNDFGCis6MTAwMDUwMDAxMEY4QTY4MUU1M0U3NUYwMjFBNDI0MDVGNTgyRTQzNDZDCis6MTAwMDYwMDBGOEY1ODM3ODhDRTU4MTA0QzM5OEY5OTQyMjQwMDMwMjYzCis6MTAwMDcwMDAxMURDRTZGMDA4QTNEOUZBNzQwODI1M0VGODA1M0UwODFECis6MTAwMDgwMDBFNjU0ODA3MDBDRTUzRUI0MDdGMzc4MDg3NTNFMDA4MEI2Cis6MTAwMDkwMDBFRkU1M0UyNDEwRjg4NjgxRTUzRTc1RjAyMUE0MjQwNUE1Cis6MTAwMEEwMDBGNTgyRTQzNEY4RjU4Mzc4OENFNTgxMDRDMzk4RjlFMEFGCis6MTAwMEIwMDBGNjA4QTNEOUZBRDAwN0QwMDZEMDA1RDAwNEQwMDNEMEQzCis6MTAwMEMwMDAwMkQwMDFEMDAwRDA4M0QwODJEMEYwRDBEMEQwRTAzMkE2Cis6MTAwMEQwMDAzMDAxNEQzMEI0NDgxMDAwNDU5MEZGMDhFMDU0MjBGODNFCis6MTAwMEUwMDA5MEZGNDhFMDU0MjBGOTkwRkYxMEUwNTQyMEZBOTBGRjcwCis6MTAwMEYwMDA1MEUwNTQyMEZCNzQwMEY1ODI3NEY4RjU4M0UwQzhGMEZBCis6MTAwMTAwMDA2ODYwMDI3RTA0QTNFMEM5RjA2OTYwMDI3RTA0QTNFMDk3Cis6MTAwMTEwMDBDQUYwNkE2MDAyN0UwNEEzRTBDQkYwNkI2MDAyN0UwNDRBCis6MTAwMTIwMDAyMkMwRTBDMEQwQzBGMEMwODJDMDgzQzAwMEMwMDFDMDA3Cis6MTAwMTMwMDAwMkMwMDNDMDA0QzAwNUMwMDZDMDA3NzQxNUY1ODI3NDcwCis6MTAwMTQwMDBGOUY1ODNFMDYwMjM3NDY2RjU4Mjc0RjlGNTgzRTAxNEIxCis6MTAwMTUwMDBGMDcwMTY3NEZGRjA3NDFDRjU4Mjc0RjlGNTgzRTA2MDlBCis6MTAwMTYwMDAwNDE0RjA3MDA0QzI5MDgwRkM5MEZGOTM3NDgxRjBFNTU5Cis6MTAwMTcwMDA4MTk0RkQ0MDAzMDIxMURDODU0MThEODU0MjhCNzRCMjcwCis6MTAwMTgwMDBGNTgyNzRGQUY1ODNFMEI0MDExQkMwODJDMDgzOTBGRjRFCis6MTAwMTkwMDA0QUUwMzBFNzJDOTBGRjRFRTAzMEU3MjVEMDgzRDA4MjU0Cis6MTAwMUEwMDA3NDAyRjA4MDIwQjQwMjFEQzA4MkMwODM5MEZGN0FFMDA4Cis6MTAwMUIwMDAzMEU3MDUxMjI4NEU4MDA5RDA4M0QwODI3NDAzRjA4MDg2Cis6MTAwMUMwMDAwNEQwODNEMDgyQTNFMEI0MDExQkMwODJDMDgzOTBGRjFGCis6MTAwMUQwMDA1MkUwMzBFNzJDOTBGRjU2RTAzMEU3MjVEMDgzRDA4MjA0Cis6MTAwMUUwMDA3NDAyRjA4MDI1QjQwMjIyQzA4MkMwODM5MEZGN0FFMEJFCis6MTAwMUYwMDAzMEU3MDUxMjI4NEU4MDA5RDA4M0QwODI3NDAzRjA4MDQ2Cis6MTAwMjAwMDAwOUQwODNEMDgyODAwMzAyMDI5MDc0MTZGNTgyNzRGOUJCCis6MTAwMjEwMDBGNTgzRTAyMDA0RjEyMDAyMDMzMDAxRUI3NDE5RjU4MjJDCis6MTAwMjIwMDA3NEY5RjU4M0UwMTRGQ0YwQTNFMEZEQTNFMEZFNjQwNEEwCis6MTAwMjMwMDA3MDBGRUM3MDYyN0UwMTEyMDBDOTdDMEE3REZBMDIwMjI2Cis6MTAwMjQwMDA2MTEyMDBDOUVFNjQwNDYwMURFQzcwNEI3QzBBRUQxNDcxCis6MTAwMjUwMDBGRDcwMTVFRTY0MDI2MDA3N0UwMjdEMzIwMjAyNjE3RTRGCis6MTAwMjYwMDAwMTdERkEwMjAyNjE3QzBBNzQxOUY1ODI3NEY5RjU4MzQyCis6MTAwMjcwMDBFQ0YwQTNFREYwQTNFRUYwMTQ2MDE4MjBFMTBGMjAwMUU0Cis6MTAwMjgwMDAwNkQyQjFDMkIwODAxMEMyQjFEMkIwODAwQUMyQjFDMjJGCis6MTAwMjkwMDBCMDgwMDREMkIwRDJCMTc4MTk3OTA5N0EwN0U3NzAwNDM2Cis6MTAwMkEwMDBBNjAwODAwQkU2NjAwODE2RTY3MDA0RTc0NDgwRjcwOEI1Cis6MTAwMkIwMDAwOURBRUFFNTNENjAxMzE0RjUzRDcwMEVFNTNFMjQwOEM5Cis6MTAwMkMwMDBGODc2MDAxMjExNTdEMjhDRDI4REQwMDdEMDA2RDAwNTA3Cis6MTAwMkQwMDBEMDA0RDAwM0QwMDJEMDAxRDAwMEQwODNEMDgyRDBGMDlGCis6MTAwMkUwMDBEMEQwRDBFMDMyOTBGRjA0RTA5MEZBQjlGMDkwRkYwNjUxCis6MTAwMkYwMDBFMEZDQTNFMEZBRUNGRkVBRkVFRkMzOTQwOEVFOTQwMTAxCis6MTAwMzAwMDA1MDAyODAwNDdFMDE3RjA4OEUzQjhGM0M5MEZGMDJFMDBDCis6MTAwMzEwMDBGQ0EzRTBGQUVDRkZFQTkwRkFCREYwRUZBM0YwMTIxQ0E4Cis6MTAwMzIwMDBFMEU0RjU0REU1NERDMzk0MDI1MDBGMTIxQ0MxRTQxMkY4Cis6MTAwMzMwMDAxQUU4MDU0RDA0MTIxQ0IyODBFQTEyMUNFMDkwRkYwMDdFCis6MTAwMzQwMDBFMEZGNTQ2MDI0QzA3MDAzMDIwOEYzMjQ0MDYwMDMwMkZECis6MTAwMzUwMDAwRjZFOTBGQUI5RTBGRTU0MEZGNTRERUUzMEU3MDNEMzdGCis6MTAwMzYwMDA4MDAxQzM5MjBBOTBGRjAxRTAxMjFCRkMwMzg0MDAwNDg5Cis6MTAwMzcwMDA1NzAxMDU2QTAzMDYzMTA1MDY3MzA2MDdENTA4MDgxREVGCis6MTAwMzgwMDAwOTA4NzkwQTA4QjkwQjAwMDAwRjZFRTUzNTIwRTcwMzZDCis6MTAwMzkwMDAwMjBGNkU5MEZBQkRFMDcwMDJBM0UwNjAwMzAyMEY2RUUwCis6MTAwM0EwMDBFNTNDNjQwMjQ1M0I2MDAzMDIwRjZFRUY1NDFGMTQ2MDhFCis6MTAwM0IwMDAyQjE0NjA0NzI0MDI2MDAzMDIwRjZFRUU2MDAzMDIwRkVECis6MTAwM0MwMDA2RTEyMUNDMTc0MDExMjFBRTg3ODY3RTYzMEUwMDgxMjU4Cis6MTAwM0QwMDAxQ0MxNzQwMjEyMUFFODdGMDIwMjMyNkVFNTM1MjBFMTc4Cis6MTAwM0UwMDAwOTkwRkFCOUUwNjAwMzAyMEY2RTkwRkFCOUUwRDM5NDc1Cis6MTAwM0YwMDAwMTQwMDMwMjBGNkU3RjAyMDIzMjZFRTUzNTIwRTEwRUVFCis6MTAwNDAwMDA5MEZBQjlFMEZGNjAwNzY0ODA2MDAzMDIwRjZFMTIwRjdDCis6MTAwNDEwMDBGQTQwMDMwMjBGNkVFNTRENzAxOTMwMEEwQjkwRkY4MDExCis6MTAwNDIwMDAxMjFDQkUxMjFBRTg4MDI0OTBGRjgyMTIxQ0JFMTIxQUZGCis6MTAwNDMwMDBFODgwMTkxNTREMzAwQTBCMTIxRDU1MTIxQ0JDMTIxQUZBCis6MTAwNDQwMDBFODgwMDkxMjFENjMxMjFDQkMxMjFBRTgxMjFDQzExMkFBCis6MTAwNDUwMDAxQUEyNjAwNTc0MDExMjFBRTg3RjAyMDIzMjZFRTUzNUI1Cis6MTAwNDYwMDAzMEU3MDMwMjBGNkVFNTNDNDUzQjYwMDMwMjBGNkUxMjVFCis6MTAwNDcwMDAxRDc5MTQ2MDJEMTQ2MDU5MjQwMjYwMDMwMjBGNkU5MEUwCis6MTAwNDgwMDBGQUJERTA3MDA0QTNFMDY0MDE2MDAzMDIwRjZFOTBGQTBECis6MTAwNDkwMDBCOUUwNjAwMzAyMEY2RTc4NjdFNjU0RkVGNkU0RkYwMkVGCis6MTAwNEEwMDAzMjZFRTUzNTIwRTEwNjIwRTAwMzAyMEY2RUU1MzUzMEJGCis6MTAwNEIwMDBFMDA5OTBGQUI5RTA2MDAzMDIwRjZFRTUzNTMwRTEwQzE3Cis6MTAwNEMwMDA5MEZBQjlFMEQzOTQwMTQwMDMwMjBGNkVFNEZGMDIzMkM4Cis6MTAwNEQwMDA2RTkwRkFCREUwNzAwMkEzRTA2MDAzMDIwRjZFMTIwRjhGCis6MTAwNEUwMDBGQTQwMDMwMjBGNkVFNTM1MjBFMTA2MjBFMDAzMDIwRjFCCis6MTAwNEYwMDA2RUU1MzUzMEUwMDdFNTRENjAwMzAyMEY2RUU1NEQ3MEE3Cis6MTAwNTAwMDAwRjkwRkY4MkUwNTRGN0YwOTBGRjgwRTA1NEY3RjAyMjY0Cis6MTAwNTEwMDBFNTREMjRGRTYwMjAyNEZCNjAzNDI0MDY3MDM1MzAwQTRCCis6MTAwNTIwMDAwQ0EyMEFFNDMzRkQ3RjAzMTIyRTc5ODAyNkU0RkQ3RkJFCis6MTAwNTMwMDAwMzEyMkU3OTgwMUQzMDBBMENBMjBBRTQzM0ZEN0YwNEQ5Cis6MTAwNTQwMDAxMjJFNzk4MDBFRTRGRDdGMDQxMjJFNzk4MDA1N0Y4N0JDCis6MTAwNTUwMDAxMjMxRUYxNTREMzAwQTBCMTIxRDU1RjU4M0UwNTRGNzlCCis6MTAwNTYwMDBGMDgwMDkxMjFENjNGNTgzRTA1NEY3RjBFNEZGMDIzMkQ2Cis6MTAwNTcwMDA2RUU1MzUzMEU3MDMwMjBGNkVFNTNDNDUzQjYwMDMwMjU0Cis6MTAwNTgwMDAwRjZFMTIxRDc5MTQ2MDJEMTQ2MDU1MjQwMjYwMDMwMjUxCis6MTAwNTkwMDAwRjZFOTBGQUJERTA3MDA0QTNFMDY0MDE2MDAzMDIwRkU3Cis6MTAwNUEwMDA2RTkwRkFCOUUwNjAwMzAyMEY2RTc4NjdFNjQ0MDFGNkQ4Cis6MTAwNUIwMDBFNEZGMDIzMjZFRTUzNTIwRTEwNjIwRTAwMzAyMEY2RTEzCis6MTAwNUMwMDBFNTM1MzBFMDA3RTU0RDYwMDMwMjBGNkVFNTM1MzBFMUJCCis6MTAwNUQwMDAwQUU1NEREMzk0MDE0MDAzMDIwRjZFRTRGRjAyMzI2RTMwCis6MTAwNUUwMDA5MEZBQkRFMDcwMDJBM0UwNjAwMzAyMEY2RTkwRkFCOUNBCis6MTAwNUYwMDBFMEZGMTIzMjNGNDAwMzAyMEY2RUU1MzUyMEUxMDYyMDk2Cis6MTAwNjAwMDBFMDAzMDIwRjZFRTU0RDcwMDkzMDBBMDMwMjFFMTQwMjZBCis6MTAwNjEwMDAxRERGRTUzNTIwRTEwMzAyMEY2RTE1NEQzMDBBMEIxMjg4Cis6MTAwNjIwMDAxRDU1RjU4M0UwNDQwOEYwODAwOTEyMUQ2M0Y1ODNFMDUxCis6MTAwNjMwMDA0NDA4RjBFNEZGMDIzMjZFRTUzNTMwRTcwMzAyMEY2RTQ2Cis6MTAwNjQwMDBFNTNDNDUzQjYwMDMwMjBGNkU5MEZBQjlFMDYwMDMwMjlGCis6MTAwNjUwMDAwRjZFMTIxRDc5NjAwMzAyMEY2RUU1MzUzMEUxMDMwMjYzCis6MTAwNjYwMDAwRjZFOTBGQUJFRTA5MEZGRkZGMEUwNjAwNTQzMzUwMUE5Cis6MTAwNjcwMDA4MDAzNTMzNUZFRTRGRjAyMzI2RUU1MzUyMEU3MDMwMkM2Cis6MTAwNjgwMDAwRjZFRTUzQzQ1M0I3MDAzMDIwRjZFMTIxRDc5NjAwMzRGCis6MTAwNjkwMDAwMjBGNkU5MEZBQkRFMEZDQTNFMEZERUMyNEZFNjAzQTkwCis6MTAwNkEwMDAxNDYwNzUyNDAyNjAwMzAyMEY2RUVENjAwMzAyMEY2RThBCis6MTAwNkIwMDAxMjFDRTAxMjFFMEQ3RDAzMTIwRkI1NjAwMzAyMEY2RUI3Cis6MTAwNkMwMDAxMjBGNzI5MEZBQjZFMEZEQTMxMjFEMkIxMjBGRDE1MDNCCis6MTAwNkQwMDAwMjgwMDRBRTNCQUYzQzAyMTAwMjEyMUNFMDkwRjkxNkZGCis6MTAwNkUwMDBFMDMwRTQwRDEyMUUwRDdEMTQxMjBGQjU2MDEwMDIwRkU0Cis6MTAwNkYwMDA2RTEyMUUwRDdEMDQxMjEwMDk2MDAzMDIwRjZFMTIwRkEwCis6MTAwNzAwMDA3MjkwRkFCNkUwRkRBMzEyMUQyQjEyMEZEMTUwMDI4MDk5Cis6MTAwNzEwMDAwNEFFM0JBRjNDMDIxMDAyMTIxRTBEN0QwNTEyMTAwOTAzCis6MTAwNzIwMDA2MDAzMDIwRjZFN0IwMTdBRkE3OUI2MTIxRDI4N0QwMUYzCis6MTAwNzMwMDAxMjI2OTg5MEZBQjdFNDc1RjAwMzEyMUIxQzkwRkFCRUNCCis6MTAwNzQwMDBFMDkwRkFCNUYwRTRGNTRDOTBGQUI1RTBGRkU1NENDMzYzCis6MTAwNzUwMDA5RjUwMjQxMjFEMjIxMjEwMTRGRkZEOTBGQUI3RTQ4RDUxCis6MTAwNzYwMDBGMDEyMUIxQzkwRkFCNkUwQzM5RkYwRDM5NDAwNTAwMzI0Cis6MTAwNzcwMDAwMjBGNkUwNTRDODBEMTEyMUQyMjEyMTAxNDI0RkVGRkIwCis6MTAwNzgwMDA5MEZBQjZGMEZEQTNFNDc1RjAwMjEyMUIxQzdBRjk3OTE5Cis6MTAwNzkwMDA3MjdCMDE4QjM2OEEzNzg5MzhFOTI0MDJGOUU0M0FGQTA4Cis6MTAwN0EwMDAxMjFEMjgxMjI2OTg4RjRDMDU0QzA1NEMxMjFDQzFFNUQxCis6MTAwN0IwMDA0QzEyMUFFODEyMUNDMTkwMDAwMTc0MDMxMjFBRkFBRjBECis6MTAwN0MwMDA0QzdFMDBDM0VGOTUzQ0VFOTUzQjUwMDI4MDA0QUUzQjVGCis6MTAwN0QwMDBBRjNDOEUzOThGM0EwMjJDRDgwMjBGNkVFNTM1MjBFN0Y4Cis6MTAwN0UwMDAwMzAyMEY2RUU1M0M2NDAxNDUzQjYwMDMwMjBGNkU5MDBGCis6MTAwN0YwMDBGQUI5RTA2MDAzMDIwRjZFOTBGQUJERTA3MDAyQTNFMDY4Cis6MTAwODAwMDA2MDAzMDIwRjZFMTIxRDc5NjAwMzAyMEY2RUU1MzUyMDQyCis6MTAwODEwMDBFMDA2MjBFMTAzMDIwRjZFNzUzNjAwNzUzNzAwNzUzODZCCis6MTAwODIwMDAzMjAyMEZGMUU1MzUzMEU3MDMwMjBGNkVFNTNDNDUzQjQwCis6MTAwODMwMDA2MDAzMDIwRjZFOTBGQUI5RTA2MDAzMDIwRjZFRDM5MDZFCis6MTAwODQwMDBGQUJFRTA5NDAxOTBGQUJERTA5NDAwNDAwMzAyMEY2RUZFCis6MTAwODUwMDAxMjFENzk2MDAzMDIwRjZFRTUzNTIwRTAwNjIwRTEwM0VBCis6MTAwODYwMDAwMjBGNkU5MEZBQkVFMEY1MzJFNTMyNzAwODQzMzUwMUIyCis6MTAwODcwMDA1MzM1RkQ4MDA2NTMzNUZFNDMzNTAyRTRGRjAyMzI2RUU4Cis6MTAwODgwMDBFNTM1MjBFNzAzMDIwRjZFRTUzQzY0MDE0NTNCNjAwMzVDCis6MTAwODkwMDAwMjBGNkU5MEZBQjlFMDYwMDMwMjBGNkU5MEZBQkRFMEFECis6MTAwOEEwMDA3MDAyQTNFMDYwMDMwMjBGNkUxMjFENzk2NDAxNjAwMzAxCis6MTAwOEIwMDAwMjBGNkVFNTM1MjBFMTAzMDIwRjZFN0YwMTAyMzI2RUZBCis6MTAwOEMwMDBFNTM1MzBFNzAzMDIwRjZFRTUzQzQ1M0I2MDAzMDIwRjYwCis6MTAwOEQwMDA2RUQzOTBGQUJFRTA5NDAwOTBGQUJERTA5NDAwNDAwMzFECis6MTAwOEUwMDAwMjBGNkUxMjFENzk2NDAxNjAwMzAyMEY2RUU1MzUyMDYwCis6MTAwOEYwMDBFMTAzMDIwRjZFRTRGRjAyMzI2RTkwRkYwMTEyMUUyNDJDCis6MTAwOTAwMDBFRjEyMUFFODkwRkFCOTEyMUUyNDkwMDAwMUVGMTIxQUExCis6MTAwOTEwMDBGQTkwMDAwMkU0MTIxQUZBNzQwMzEyMUNCMjkwRkFCREEzCis6MTAwOTIwMDBFMEZGQTNFMDg1Mzg4Mjg1Mzc4M0NGRjBBM0VGRjA5MDE2Cis6MTAwOTMwMDBGRjAxRTAxMjFCRkMwOTdCMDIwOTlEMDQwOUJGMDUwOUE4Cis6MTAwOTQwMDBFQjA2MEEwOTA3MEEyNzA4MEE0NTA5MEE2MzBCMEIxODcwCis6MTAwOTUwMDA4MDBEQjc4MTBERTg4MjBCNUY4MzBCQTg4NDBCQzc4NUUwCis6MTAwOTYwMDAwQzBDODYwQzU3ODcwQ0U4ODgwRDczODkwQTgxOTIwQTUzCis6MTAwOTcwMDA4MTkzMERBMEIwMEU5QkMwMEVDN0MxMEVEOEMyMDAwMDVGCis6MTAwOTgwMDAwRjVERTUzNTIwRTcwNTdGMDUwMjMxQTkxMjFENzE2MDc1Cis6MTAwOTkwMDAwMzA0NzAwOUVGRkQ3QzAwN0YwNzAyMTE1RUU0RkQ3RjE4Cis6MTAwOUEwMDAwNzAyMkZCNEU1MzUyMEU3MDU3RjA1MDIzMUE5MTIxREE2Cis6MTAwOUIwMDA3MTYwMDMwNDcwMDlFRkZEN0MwMDdGMEMwMjExNUVFNDlFCis6MTAwOUMwMDBGRDdGMDcwMjJGQjRFNTM1MzBFNzAzMDIwRjcxMTIxRUQ5Cis6MTAwOUQwMDA0MjUwMDZFNTNDNDUzQjcwMDU3RjAyMDIzMUE5OTBGQTgyCis6MTAwOUUwMDBCOUUwMjRGRTI0RkQ1MDAyODAwMzAyMzIyQzdGMDcwMjZFCis6MTAwOUYwMDAzMUE5RTUzNTMwRTcwMzAyMEY3MTEyMUQ3MTYwMDMwNDYwCis6MTAwQTAwMDA3MDA5RUZGRDdDMDA3RjA4MDIxMTVFN0YwNzAyMzFBOUFCCis6MTAwQTEwMDBFNTM1MzBFNzAzMDIwRjcxMTIxRDcxNjAwMzA0NzAwOUEwCis6MTAwQTIwMDBFRkZEN0MwMDdGMDkwMjExNUU3RjA3MDIzMUE5RTUzNUU5Cis6MTAwQTMwMDAzMEU3MDMwMjBGNzExMjFENzE2MDAzMDQ3MDA5RUZGREFFCis6MTAwQTQwMDA3QzAwN0YwQTAyMTE1RTdGMDcwMjMxQTlFNTM1MzBFNzlECis6MTAwQTUwMDAwMzAyMEY3MTEyMUQ3MTYwMDMwNDcwMDlFRkZEN0MwMDI5Cis6MTAwQTYwMDA3RjBCMDIxMTVFN0YwNzAyMzFBOUU1MzUzMEU3MDMwMkYzCis6MTAwQTcwMDAwRjcxMTIxRDcxNjAwMzA0NzAwOUVGRkQ3QzAwN0YwRTgxCis6MTAwQTgwMDAwMjExNUU3RjA3MDIzMUE5RTUzNTMwRTc1NjEyMUQ3OTY0Cis6MTAwQTkwMDA3MDRBOTBGRjAyRTBGNTRDRTU0Q0I0ODIwNTc1NEM2MTVDCis6MTAwQUEwMDA4MDEyRTU0Q0I0ODMwNTc1NEM2MjgwMDhFNTRDQzQ1NDUzCis6MTAwQUIwMDBGMDA0RjU0QzEyMUMyMjEyMUUzQjEyMjVGQTEyMUQ4OTVECis6MTAwQUMwMDAxMjFBQkI2MDA1MTIzMjdBODAwNjg1MzMzOTg1MzQzQUIyCis6MTAwQUQwMDA3NTM2MDE3NTM3Rjk3NTM4NzUwMjJDRDhFNEZEN0YwNTM4Cis6MTAwQUUwMDAwMjJGQjQxMjFENzk2MDA1N0YwNTAyMzFBOTEyMUU0MjQyCis6MTAwQUYwMDA0MDA1N0YwMzAyMzFBOTkwRkYwMkUwRjU0Q0U1NENCNEJDCis6MTAwQjAwMDA4MjA1NzU0QzYxODAxMkU1NENCNDgzMDU3NTRDNjI4MDlBCis6MTAwQjEwMDAwOEU1NENDNDU0RjAwNEY1NEMxMjFDMjIwMjMyMkMxMjhECis6MTAwQjIwMDAxRTRDMTIyQUM3MTIxRDMzRTA1NDdGRjAwMDAwMDBFMDczCis6MTAwQjMwMDA5MEZBQkFGMDc4NjgxMjFCRDg5MDAwMDIxMjFBQkIzMEYzCis6MTAwQjQwMDBFN0YyOTAwMDAyRTQxMjFBRkE5MEZBQkFFMDQ0ODBGRjQ5Cis6MTAwQjUwMDBGMDc4N0NFNkZDMDhFNjhDODMxMjFEM0JFRkYwMTIzMjQ1Cis6MTAwQjYwMDA4NEU0RkYwMjMxQTk5MEZBQjlFMDY0MDE3MDFGOTBGQUExCis6MTAwQjcwMDBCREUwRkY3RTAwNzAwNkEzRTBGNTkwODAyREMyQUZFRkQwCis6MTAwQjgwMDBGNDUyOTA5MEZBQkVFMDQyOTBEMkFGODAxRDkwRkFCRDMwCis6MTAwQjkwMDBFMEZGN0UwMDcwMDZBM0UwRjVCMDgwMEVDMkFGRUZGNDc4Cis6MTAwQkEwMDA1MkIwOTBGQUJFRTA0MkIwRDJBRkU0RkYwMjMxQTkxMkQ3Cis6MTAwQkIwMDAxQ0UwOTBGQUI5RTBCNDAxMEExMjFDQzFFNTkwMTIxQUM3Cis6MTAwQkMwMDBFODgwMDgxMjFDQzFFNUIwMTIxQUU4MDIwRkYxOTBGQTkxCis6MTAwQkQwMDBCOUUwRkYyNDEzMTIxQ0YxMjBFMTMzMTIxRDgwRUYyNDMxCis6MTAwQkUwMDBGQzYwMTgwNDcwMjg5MEZBQkFFMDYwMDk5MEZGQTRFMDU1Cis6MTAwQkYwMDA0NDEwRjA4MDE5MTIxRTU2RjA4MDEzOTBGQUJBRTA2MDhCCis6MTAwQzAwMDAwOTkwRkZCNEUwNDQxMEYwODAwNDEyMUU1REYwRTRGRjkwCis6MTAwQzEwMDAwMjMxQTk5MEZBQjlFMEZGMjQxMzEyMUNGMTIwRTEzOTQ2Cis6MTAwQzIwMDAxMjFEODBFRjI0RkM2MDFCMDQ3MDJFOTBGQUJBRTA2MDY1Cis6MTAwQzMwMDAwOTkwRkZBNEUwNDQyMEYwODAxRjkwRkZBNEUwNTRERjVGCis6MTAwQzQwMDBGMDgwMTY5MEZBQkFFMDYwMDk5MEZGQjRFMDQ0MjBGMDFBCis6MTAwQzUwMDA4MDA3OTBGRkI0RTA1NERGRjBFNEZGMDIzMUE5MTIxREQ5Cis6MTAwQzYwMDA4MDEyMUQ3MTYwNEQwNDYwMDMwMjBDRTM5MEZBQkFFMDNCCis6MTAwQzcwMDA2MDBGOTBGRkE0MTIxQ0VBMzBFMTZGMTIxRTJDMDIwQ0QwCis6MTAwQzgwMDBFMzkwRkZBNEUwNTRGQjEyMUNFREZFMzBFMTVDMzBFMjg3Cis6MTAwQzkwMDAxMTMwQjQwNTEyMUUyQzgwNTE5MEZGQTRFMDU0RkRGMEQ5Cis6MTAwQ0EwMDA4MDQ4MzA5NTA1MTIxRTJDODA0MDkwRkZBNEUwNTRGRDMyCis6MTAwQ0IwMDBGMDgwMzc5MEZBQkFFMDYwMTI5MEZGQjQxMjFDRUEzMDZDCis6MTAwQ0MwMDBFMTI4OTBGRkI0RTA0NDAyRjA4MDFGOTBGRkI0RTA1NEFDCis6MTAwQ0QwMDBGQjEyMUNFRDMwRTExMzMwOTMwOTkwRkZCNEUwNDQwMkE1Cis6MTAwQ0UwMDBGMDgwMDc5MEZGQjRFMDU0RkRGMEU0RkYwMjMxQTkxMjU4Cis6MTAwQ0YwMDAxRDgwOTBGQUI5RTAyNEZDNjA0MDA0NzA3ODkwRkFCQTQ0Cis6MTAwRDAwMDBFMDYwMUQ5MEZGQTJFMDQ0NDBGMEEzRTBGRjMwRTc2NTAzCis6MTAwRDEwMDBEMjAzQTNFMDU0REZGMDkwRkZBM0VGNTQ3RkYwODA1NTlGCis6MTAwRDIwMDAzMDAzMEU5MEZGQTNFMDQ0ODBGMEMyMDNBM0UwNDQyMDEwCis6MTAwRDMwMDBGMDkwRkZBMkUwNTRCRkYwODAzQjkwRkFCQUUwNjAxRDUzCis6MTAwRDQwMDA5MEZGQjJFMDQ0NDBGMEEzRTBGRjMwRTcyOEQyMDRBM0Q0Cis6MTAwRDUwMDBFMDU0REZGMDkwRkZCM0VGNTQ3RkYwODAxODMwMDQwRUMyCis6MTAwRDYwMDA5MEZGQjNFMDQ0ODBGMEMyMDRBM0UwNDQyMEYwOTBGRjgxCis6MTAwRDcwMDBCMkUwNTRCRkYwRTRGRjAyMzFBOTEyMUNFMDkwRkFCOUNFCis6MTAwRDgwMDBFMDI0RkM2MDBGMDQ3MDE2OTBGRkE2RTAxMjFDQzExMjU0Cis6MTAwRDkwMDAxQUU4ODAwQTkwRkZCNkUwMTIxQ0MxMTIxQUU4NzUzOUYxCis6MTAwREEwMDAwMDc1M0EwMTAyMkNEODkwRjkxNTc0MDFGMDkwRjkxQ0U1Cis6MTAwREIwMDA3NDE5RjA5MEY5NjY3NEZGRjBFNEZGMDIzMUE5RTRGRkMyCis6MTAwREMwMDAxMjMxQTkxMjFERTc3RjAzMTIxMjYxOTBGOTE2RTAzMDZCCis6MTAwREQwMDBFNDA4OTBGRjkzNzQ4MEYwODAxMDkwRkZGQ0UwNTQ3RjUzCis6MTAwREUwMDBGMDdGRkY3RTAwMTIzMEQzQzI5MEMyQUYwMDgwRkRFNERFCis6MTAwREYwMDBGNTRFRjU0RjkwRkFCRjc0M0VGMEEzRTRGMDkwRkFCN0M5Cis6MTAwRTAwMDBGMEEzNzQxNUYwRTA1NDNGRkZDMzc0NDA5RjkwRkFCQzA4Cis6MTAwRTEwMDBGMEQzOTQwMEU0OTQzRTQwMDg5MEZBQzBFMDkwRkFCQzBECis6MTAwRTIwMDBGMDEyMEY5OEU1MzE0NTMwNzA3MzEyMUNGQTkwRkFCRjNBCis6MTAwRTMwMDAxMjFFMDY2MDI3RDNFRjk0NDBFRTk0MDA0MDA4OTBGQTBCCis6MTAwRTQwMDBCQzc0NDBGMDgwMDg5MEZBQzBFMDkwRkFCQ0YwMTIwRjM5Cis6MTAwRTUwMDA5OEU1MzE0NTMwNzA0NjEyMUNGQTgwRDE3NTRDMDI5MEVECis6MTAwRTYwMDBGQUJGRTRGMEEzMDRGMDkwRkFCN0U0RjBBMzc0MEZGMDMzCis6MTAwRTcwMDA3QjAwN0EwMDc5NEM5MEZBQzBFMEY1NEE3RDBGN0MwMDQ3Cis6MTAwRTgwMDAxMjI5NjA3NTMwMDA4RjMxN0IwMDdBMDA3OTRDRTRGNUNGCis6MTAwRTkwMDAyREY1MkU3RDAxMTIyNjk4RTRGNTMwRjUzMUFGMzEwMkEzCis6MTAwRUEwMDAzMUE5MTIxRDgwMzBFNzEwRTA1NDBGOTBGOTY3RjBEMzlDCis6MTAwRUIwMDA5NDAwNDAxNUMyOTU4MDExOTBGQUJBRTA1NDBGOTBGOTUxCis6MTAwRUMwMDA2NUYwRDM5NDAwNDAwMkMyOTRFNEZGMDIzMUE5MTIxRURGCis6MTAwRUQwMDA0Q0JGMDEwNEQyOTM4MDAyQzI5M0U0RkYwMjMxQTkxMkY1Cis6MTAwRUUwMDAxRDgwNTQwMzE0NjAwQTE0NjAwRjE0NjAwODI0MDM3MEZBCis6MTAwRUYwMDAyQkQyOTE4MDI3QzI5MTgwMjMxMjFFNTYxMjBGQzA2MDAwCis6MTAwRjAwMDAwNEQyOTE4MDE3OTBGRkE0RTA0NDEwMTIwRkMwRkZCRkRECis6MTAwRjEwMDBBMDA0QzI5MTgwMDJEMjkxMTIxRTU2RjA5MEZBQkFFMDVCCis6MTAwRjIwMDA1NDBDRkYxMzEzNTQzRjE0NjAwQTE0NjAwRjE0NjAwODJDCis6MTAwRjMwMDAyNDAzNzAyQkQyOTI4MDI3QzI5MjgwMjMxMjFFNUQxMjRFCis6MTAwRjQwMDAwRkUwNjAwNEQyOTI4MDE3OTBGRkI0RTA0NDEwMTIwRkJCCis6MTAwRjUwMDBFMEZGQkZBMDA0QzI5MjgwMDJEMjkyMTIxRTVERjBFNEI0Cis6MTAwRjYwMDBGRjAyMzFBOUU1MzUzMEU3MDdFNEZEN0YwNTAyMkZCNDI0Cis6MTAwRjcwMDA3RjA1MDIzMUE5MTIzMjdBMjI3QjAxN0FGQTc5QjY5MDgyCis6MTAwRjgwMDBGQUI3RTBGNTJEQTNFMEY1MkU3RDAxMTIyNjk4OTBGQTMwCis6MTAwRjkwMDBCN0U0NzVGMDAzMTIxQjFDQUIzNkFBMzdBOTM4MjJBQTk2Cis6MTAwRkEwMDA0RUE5NEY3QkZGOTBGQUI3RTBGQ0EzRTBGRDkwRkFCQzlFCis6MTAwRkIwMDBFMEY1NEExMjI5NjA3NTMwMDA4RjMxMjIxMjIzNjE3RURDCis6MTAwRkMwMDAwMDhFMzA4RjMxRUYyMkYwN0YwMTEyMTI2MTkwRkZBNjY4Cis6MTAwRkQwMDBFMDkwRkFCQkYwNTRBMDIyMTIyNjk4OEY0QzdFMDBDM0ZBCis6MTAwRkUwMDBFRjk1M0NFRTk1M0IyMkYwN0YwMTEyMTI2MTkwRkZCNjI3Cis6MTAwRkYwMDBFMDkwRkFCQkYwNTRBMDIyNzUzOTAwNzUzQTAxMDIyQzNBCis6MTAxMDAwMDBEODkwRkFCOUUwRkYwMjMyM0Y4RTM5OEYzQTAyMkNEOERECis6MTAxMDEwMDAxMjIzNjE3RTAwOEUzMDhGMzFFRjIyN0QwMTEyMjY5OERGCis6MTAxMDIwMDA5MEZBQjRFMDIyRUY5MEY4MDRGMDIyQzBBOEMyQUZFRTJDCis6MTAxMDMwMDA2MDBBQzAwNTdEN0ZEREZFREVGQUQwMDVFRkMzOTQxNUEyCis6MTAxMDQwMDA1MDAzRDBBODIyMTM3MDAzRDBBODIyRkZENTA3RkREMEVCCis6MTAxMDUwMDBBODIyQzAwMEMwMDFDMDAyQzAwNEMwMDVFNTNFMjQwOEFCCis6MTAxMDYwMDBGODg2MDU1MzA1N0Y3Q0ZGMTIxMEMwN0YwMDdFMDBFNUU3Cis6MTAxMDcwMDA0MzYwNDZGQzkwRjkxREUwNTQ3RjZENzAwRkMwODNDMDQzCis6MTAxMDgwMDA4MkEzRTBGRUEzRTBGRkEzMTU0MzgwMDdBM0EzQTNEQzk0Cis6MTAxMDkwMDBFNjgwMjZEQzA2RDA4MkQwODM4MDFFRTBGOEEzRTBGOTRCCis6MTAxMEEwMDBBM0UwRkFEMDgyRDA4M0U4RjBBM0U5RjBBM0VBRjBBM0FBCis6MTAxMEIwMDBDMDgzQzA4MkEzQTNBMzgwREExMjExNTdEMDA1RDAwNDQ1Cis6MTAxMEMwMDBEMDAyRDAwMUQwMDAyMjg1QTg0NDc1QTg4OEVDNzAwMjE3Cis6MTAxMEQwMDA3QzNGOEMzRDIyRTUzRTI0MDhGODc2MDAxMjExQUU4MDVDCis6MTAxMEUwMDBGQkMwMDBDMDAxQzAwMkMwMDRDMDA2N0NGRjEyMTBDMERCCis6MTAxMEYwMDBFNTQzNjA0MkZFOTBGOTFERTA1NDdGNkY3MDBCQzA4M0EyCis6MTAxMTAwMDBDMDgyQTNBM0EzMTU0MzgwMDdBM0EzQTNERUVBODAyNjdFCis6MTAxMTEwMDBERTA2RDA4MkQwODM4MEQ4RTBGOEEzRTBGOUEzRTBGQTFECis6MTAxMTIwMDBEMDgyRDA4M0U4RjBBM0U5RjBBM0VBRjBBM0MwODNDMEEzCis6MTAxMTMwMDA4MkEzQTNBMzgwREE3ODA4MDg3OTE4MDk3QzAxRTY1NDExCis6MTAxMTQwMDA3RjZGNzAwNjc2MDA3NzAwODAwNjA4MDkwQ0JDMDhFRUY5Cis6MTAxMTUwMDAxMjExNTdEMDA2RDAwNEQwMDJEMDAxRDAwMDIyNzUzRDI0Cis6MTAxMTYwMDAwMDg1NDRBODIyQzBGMEMwODJDMDgzQzNFNTQzMjRFOEMwCis6MTAxMTcwMDA1MDA1MTIxMUFFODBGNEVGNjAzMTkwMzExMUU0OTNDMzQ5Cis6MTAxMTgwMDA5RjQwMkZDMDA0N0NGRjEyMTBDMEQwMDQ0MzA3ODBFNUFECis6MTAxMTkwMDA0Mzc1RjAwM0E0MjQxREY1ODJFNDM0RjlGNTgzRUZGMEUwCis6MTAxMUEwMDBFQ0EzRjBFREEzRjAwNTQzMTIxMTU3RDA4M0QwODJEMDA5Cis6MTAxMUIwMDBGMDIyMDIxMURDQzAwNDdDMjBEMjhDRDI4REQ1MDRGRDNCCis6MTAxMUMwMDBEMDA0MjI3NUE4MDA3NTg4MDA3NUI4MDA3NUYwMDA3NTA4Cis6MTAxMUQwMDBEMDAwRTRGODkwRjgwNEYwOTAwMDAwRjYwOEI4MDBGQkE2Cis6MTAxMUUwMDAwMjAwMDBDMkFGRTQ5MEZGNDhGMDkwRkY1MEYwOTBGRjgzCis6MTAxMUYwMDAwOEYwOTBGRjEwRjA5MEZGODBGMEEzQTNGMEQyQjFDMkVFCis6MTAxMjAwMDBCMDdFRkY3RkZGMTIxMDI0N0VGRjdGRkYxMjEwMjQ3RTJFCis6MTAxMjEwMDBGRjdGRkYxMjEwMjREMkIwRDJCMTdFRkY3RkZGMTIxMEU5Cis6MTAxMjIwMDAyNDdFRkY3RkZGMTIxMDI0N0VGRjdGRkYxMjEwMjQ4MDk4Cis6MTAxMjMwMDBDQ0MzRUU5NDAyNTAwNDdFMDM3RkU4RUZGNEZGRUVGNDlCCis6MTAxMjQwMDBGRTBGQkYwMDAxMEU4RjQyOEU0MTIyQzNFRjk0QkNFRTExCis6MTAxMjUwMDA5NDAyNTAwNDdFMDc3RkQwRUZGNEZGRUVGNEZFMEZCRjQwCis6MTAxMjYwMDAwMDAxMEU4RjQwOEUzRjIyRUY3MDAxMjJDMDAwQzBBODA3Cis6MTAxMjcwMDBDMkFGRTUzRTI0MThGOEE2MDdFNTNFMjQwOEY4QzY1NDk4Cis6MTAxMjgwMDA3RkY2RDBBOEU2MzBFNzAzRDAwMDIyMTIxMUFFODBGNDNBCis6MTAxMjkwMDBDMDAwN0YwMUVGMjQwOEY4RTY2MDA5MEZCRjA4RjUxMkNGCis6MTAxMkEwMDAxMUFFODBFRUQwMDAyMkMwRjBDMDgyQzA4M0MwMDBDMDZBCis6MTAxMkIwMDAwNkMwMDRFRDI0MTBGODc2OUFFRDc1RjAyMUE0MjQwNUZCCis6MTAxMkMwMDBGNTgyRTQzNEY4RjU4M0MwODJDMDgzQTNBM0U0NzgwREVCCis6MTAxMkQwMDBGMEEzRDhGQ0VGNTQ3Rjc1RjAwMkE0MjRGM0Y1ODJFNTY3Cis6MTAxMkUwMDBGMDM0MzBGNTgzRTQ5M0ZFNzQwMTkzRkNEMDgzRDA4MjE0Cis6MTAxMkYwMDBFQ0YwQTNFRUYwRUQyNDA4RjhFRjQ0ODBGNkQwMDREMDMzCis6MTAxMzAwMDAwNkQwMDBEMDgzRDA4MkQwRjAyMjc1M0UwMDc1NDMwMDE1Cis6MTAxMzEwMDA3QTA4NzkxODc4MDg3NjAwNzcwMDA4MDlEQUY4OTBGOEUyCis6MTAxMzIwMDAwNEUwRkM5MDMxMTFFNDkzQzM5QzUwMDVFNDkwRjgwNDcwCis6MTAxMzMwMDBGMDc4MDg3NDgwNDQ3RkY2NzQwMTQ0MTBGNTg5NzVCODFDCis6MTAxMzQwMDAwMEQyQUJEMkE5MjI3NTgxOEJEMjhFRDI4Q0QyQUZFNURFCis6MTAxMzUwMDA0MzYwMzZGRjkwRjkxREUwNTQ4MDYwMjg3ODA4NzkwOEQyCis6MTAxMzYwMDBFMDU0N0ZGQTdCMDBFNjU0N0ZCNTAyMDI3QkZGMDhEOTg4Cis6MTAxMzcwMDBGNUVCNzAxMEVBRjBDMDA3MTIxMjg5QUQwN0FGMDIxMjQ4Cis6MTAxMzgwMDAxMkEwRDAwN0EzQTNBM0RGQ0UxMjExQUU4MEMxOEYyNDc5Cis6MTAxMzkwMDAxMjJBQzcxMjIyQjVBM0EzRTBBMzMwRTcyODc4N0UxMjUxCis6MTAxM0EwMDAyMjk5RTA0NDAxRjAxMjIyRkExMjIyOURFMDIwRTBGNjk4Cis6MTAxM0IwMDAxMjIzNTA3NDAyRjAxMjIyREFFMEEzMzBFNTA3MTIyMzYwCis6MTAxM0MwMDA1MEUwNDQwMUYwNzg4MEU2RkUwOEU2RkY4RTgzMjQwOEIyCis6MTAxM0QwMDAxMjIyQTFFMEZEMTIyMzM5OEE4MzI0MEExMjIyQTFFREYwCis6MTAxM0UwMDBGMDEyMjMwNjI0MDcxMjIyQTFFMEZGMTIyMzVBMjQwOTM3Cis6MTAxM0YwMDAxMjIyQTFFRkYwOTBGOTE2RTAzMEU0MjAwODEyMjJCNzkzCis6MTAxNDAwMDBDMDgzQzA4MkEzRTAyNUUwRkYwNTgyRDU4MjAyMTU4MzU4Cis6MTAxNDEwMDAxNTgyRTAzM0QwODJEMDgzRjBBM0VGRjAxMjIyQjVFMDQyCis6MTAxNDIwMDBGQ0EzRTBGREVDRkYxMjIzMzk4QTgzMjQwODEyMjJBMUQ5Cis6MTAxNDMwMDBFRkYwRUQxMjIzNUEyNDA3MTIyMkExRURGMDEyMjJBOTk3Cis6MTAxNDQwMDBFMDMwRTYwQTEyMjM0MTI0MDkxMjIyQTFFNEYwMTIyMjFDCis6MTAxNDUwMDBBOUUwRkYzMEU3MUIxMjIzMUUyNDA5MTIyMkExRTA2MDNECis6MTAxNDYwMDAwOTEyMjJBOUVGNDQwMkYwODAwNzEyMjJBOUVGNTRGRENECis6MTAxNDcwMDBGMDc4N0UxMjIyQjdBM0EzRTBGRjUzMDdDNzA4RTZGQzZCCis6MTAxNDgwMDAwOEU2RkQxMjIyRTBBM0UwMzBFMzEyOEQ4MjhDODNFNUIyCis6MTAxNDkwMDA4MjI0MDUxMjIyQTFFMDkwMzI1MTkzNDIwNzUzMDdGQkE4Cis6MTAxNEEwMDAxMjIzMUUyNDA2MTIyMkExRTA2MDAzNDMwNzA0NTMwN0ZGCis6MTAxNEIwMDBGQzc4ODAxMjIzMjkyNDA0MTIyMkExRTA0MjA3NDMwNzZBCis6MTAxNEMwMDA4MDEyMjMzOUY1ODI4QTgzQTNBM0VGRjAxMjIzNUEyNEQyCis6MTAxNEQwMDAwNDEyMjJBMUUwRkY4RDgyOEM4M0EzQTNFMEZDQTNFMDkxCis6MTAxNEUwMDBGRDMwRTEwNTUzMDdERjgwMDM0MzA3MjBFQzMwRTQwNUJFCis6MTAxNEYwMDA1MzA3RUY4MDAzNDMwNzEwMTIyMkE5RTBGRTU0MDM2MDU0Cis6MTAxNTAwMDA3MzUzMDdERkVFMzBFMTY5MTIyMzFFMjQwOTEyMjJBMTcyCis6MTAxNTEwMDBFMDEyMUJGQzE1MkMwMDE1NjAwMTE1NjUwMzE1NjAwNTE0Cis6MTAxNTIwMDAxNTY1MDcxNTYwMDkxNTY1MEIxNTYwMEQxNTY1MEYwMDJDCis6MTAxNTMwMDAwMDE1NkRFNTI0NjQwMzcwMjE5MEY5MTZFMDMwRTIwRDhBCis6MTAxNTQwMDAzMEI0MDU0MzA3MDI4MDJDNTMwN0ZEODAyNzMwOTUwNUYyCis6MTAxNTUwMDA0MzA3MDI4MDFGNTMwN0ZEODAxQTMwOTMwNTQzMDcwMjlCCis6MTAxNTYwMDA4MDEyNTMwN0ZEODAwRDQzMDcwMjgwMDg1MzA3RkQ4MDVBCis6MTAxNTcwMDAwMzUzMDdGRDEyMjMyNzI0MDQxMjIyQTFFRkYwOEQ4MkNBCis6MTAxNTgwMDA4QzgzQTNBM0EzRTBGRjEyMjJBOUUwRkU1NDAzNzAwM0ZGCis6MTAxNTkwMDAwMjE2NjBFRTIwRTEwMzAyMTY1RDA4MTIyMzIwMjQwOUUyCis6MTAxNUEwMDAxMjIyQTFFMDEyMUJGQzE1QkYwMDE1RjUwMTE1RjUwMzcxCis6MTAxNUIwMDAxNjI5MDUxNjI5MDcxNjBGMDkxNjBGMEIxNjQzMEQxNkM3Cis6MTAxNUMwMDA0MzBGMDAwMDE2NjBFNTI0NjQwMzcwMjM5MEY5MTZFMEQxCis6MTAxNUQwMDAzMEUyMEYzMEIxMDY1MzA3N0YwMjE2NjA0MzA3ODAwMkU2Cis6MTAxNUUwMDAxNjYwMzA5NDA1NTMwNzdGODA3RDQzMDc4MDgwNzgzMEY0Cis6MTAxNUYwMDA5MjA1NTMwNzdGODA3MDQzMDc4MDgwNkJFNTI0QjQwMzE2Cis6MTAxNjAwMDAwOTkwRkY5RUUwNTRFRkYwODAwNzkwRkY5RUUwNTRERkNBCis6MTAxNjEwMDBGMDUzMDc3RjgwNTFFNTI0QjQwMzA5OTBGRjlFRTA0NDE2Cis6MTAxNjIwMDAxMEYwODAwNzkwRkY5RUUwNDQyMEYwNTMwNzdGODAzNzQyCis6MTAxNjMwMDBFNTI0QjQwMzA5OTBGRjlFRTA1NEVGRjA4MDA3OTBGRjhCCis6MTAxNjQwMDA5RUUwNTRERkYwNDMwNzgwODAxREU1MjRCNDAzMDk5MDM5Cis6MTAxNjUwMDBGRjlFRTA0NDEwRjA4MDA3OTBGRjlFRTA0NDIwRjA0MzlFCis6MTAxNjYwMDAwNzgwODAwMzUzMDc3RjEyMjJEQUUwRkNBM0UwRkQzMEZECis6MTAxNjcwMDBFMDA1NDMwNzIwODAwMzUzMDdERkVDMzBFMzA1NDMwNzExCis6MTAxNjgwMDA0MDgwMDM1MzA3QkZFQzMwRTAwNTQzMDcxMDgwMDM1MzRECis6MTAxNjkwMDAwN0VGRUQzMEU0MDU0MzA3MDg4MDAzNTMwN0Y3RUQzMDBCCis6MTAxNkEwMDBFNTA1NDMwNzA0ODAwMzUzMDdGQkVEMzBFNjA1NDMwN0Q4Cis6MTAxNkIwMDAwMTgwMDM1MzA3RkVFRDMwRTcwNTQzMDcwMjgwMDM1MzIzCis6MTAxNkMwMDAwN0ZENzg3RTEyMjJEQ0EzRUZGMDEyMzI4NDdGMDAyMjI1Cis6MTAxNkQwMDA5MEZGRkE3NDA4RjBBMzc0MTZGMDkwRkZGOTc0MDJGMDBBCis6MTAxNkUwMDA3QjAxN0FGQTc5Q0ZFNEZEMTIyMzYxOTBGQUNGRTQ3NTk5Cis6MTAxNkYwMDBGMDAzMTIxQjFDMTIxOTkyRTUyMzMwRTcwMkQyMDI3QjgxCis6MTAxNzAwMDAwMDdBMDA3OTI0OTBGQUNGRTBGNTJEQTNFMEY1MkU3RDQ0Cis6MTAxNzEwMDAwMTEyMjY5ODkwRkFDRkU0RjBBMzc0MEJGMDdCMDA3QUM0Cis6MTAxNzIwMDAwMDc5MjM3NTJEMDBGNTJFN0QwMTEyMjY5OEU1MjMyNERFCis6MTAxNzMwMDA4MDkwRkZGOEYwRTUyMzY0MDc2MDFFRTUyMzY0MDY2MEVGCis6MTAxNzQwMDAxOEU1MjM2NDE0NjAxMkU1MjM2NDQxNjAwQ0U1MjM2NDBBCis6MTAxNzUwMDAxQTcwNDZFNTI0NjQwMjcwNDBFNTIzQjQwNzE2RDI5NDVCCis6MTAxNzYwMDBEMjk1RDI5MkQyOTM5MEY5MTZFMDQ0MDJGMEEzRTA0NENECis6MTAxNzcwMDAwMkYwODAxRUU1MjNCNDQxMTI5MEY5MTZFMDQ0MDZGMDExCis6MTAxNzgwMDBBM0UwNDQwNkYwRDJCMUQyQjQ4MDA3OTBGOTE2RTA0NDQ5Cis6MTAxNzkwMDAwMUYwOTBGOTE3RTA0NDAxRjBFNTIzNjQ0MjYwMENFNUE0Cis6MTAxN0EwMDAyMzY0NDM2MDA2RTUyMzY0NDQ3MDJFOTBGOTE2RTBGRjNECis6MTAxN0IwMDBFNTIzQjQ0NDA0N0U0MDgwMDI3RTAwRUUyNDgwNEY5MEY2Cis6MTAxN0MwMDBGOTE2RjBBM0UwRkZFNTIzQjQ0NDA0N0U0MDgwMDI3RUQ2Cis6MTAxN0QwMDAwMEVFMjQ4MDRGOTBGOTE3RjA5MEZBQ0ZFNEYwQTM3NDU0Cis6MTAxN0UwMDAwREYwMTIxOTkyOTBGRkY1RTUyM0YwRTRGNTM1RjUzMzhECis6MTAxN0YwMDBGNTM0RjUzMjEyMUUzNDEyMUNFMDEyMUUzQjkwRjk2QUM5Cis6MTAxODAwMDAxMjFCRjM5MEY5NkYxMjFCRjM5MEZGRkZFNEYwOTBGRkFGCis6MTAxODEwMDA4M0UwRTRGMDkwRkY4MTc0ODBGMEEzNzQ4NEYwOTBGRjgzCis6MTAxODIwMDA4MEYwRTRGNTIzRTUyMzEyMUQ1N0Y1ODNFNEYwRTUyMzZBCis6MTAxODMwMDAxMjFENjVGNTgzRTRGMDA1MjNFNTIzQjQwN0U3Nzg3QTA0Cis6MTAxODQwMDA3NkZFMDg3NkYwOTAzMjBBRTQ5M0ZGNzg3OEY2RkRBREU0Cis6MTAxODUwMDAwNzkwMzIxN0U0OTNGRjA4RjZGRkVENTQwRkZEMTIxREI5Cis6MTAxODYwMDA0Nzc0ODRGMEVENzVGMDA4QTQyNDQ3RjU4MkU0MzRGRjUyCis6MTAxODcwMDBGNTgzRUZGMEMzNzRGMDlGNzg3QkY2NzRGRTk0MDAxODQ0Cis6MTAxODgwMDAxMjFDRDhDRUMzMTNDRTEzRDhGOUZGRUQxMjFEQThFRjRBCis6MTAxODkwMDBGMEVEMTIxRENFRTRGNTIzRTUyMzkwMzIwNDkzRkY3ODlBCis6MTAxOEEwMDA3OEY2RkRFNTIzMjVFMDI0MEJGNTgyRTQzNDMyRjU4MzU4Cis6MTAxOEIwMDBFNDkzMDhGNkVEMzBFNzUzMThFNjU0MEZGOTEyMUQ0NzhDCis6MTAxOEMwMDAxMjFEQjYyNDQ3RjU4MkU0MzRGRjEyMUNDOENFQzMxM0EwCis6MTAxOEQwMDBDRTEzRDhGOUZGRTkxMjFEQThFRkYwMTIxQ0NGQ0VDMzJBCis6MTAxOEUwMDAxM0NFMTNEOEY5MTIxREJCMjQ0NUY1ODJFNDM0RkZGNTVECis6MTAxOEYwMDA4M0VGRjBFOTEyMURDRUU5NzVGMDA4QTQyNDQ2RjU4MkM1Cis6MTAxOTAwMDBFNDM0RkZGNTgzNzQ4MEYwMDIxOTY3Nzg3OEU2NTQwRkE5Cis6MTAxOTEwMDBGOTEyMUQ5QTEyMURCNjI0MDdGNTgyRTQzNEZGMTIxQzM5Cis6MTAxOTIwMDBDOENFQzMxM0NFMTNEOEY5MTIxREJCMjQwMUY1ODJFNDJGCis6MTAxOTMwMDAzNEZGRjU4M0VGRjAxMjFDQ0ZDRUMzMTNDRTEzRDhGOUNBCis6MTAxOTQwMDAxMjFEQkIyNDA1RjU4MkU0MzRGRkY1ODNFRkYwRTk3NTQxCis6MTAxOTUwMDBGMDA4QTQyNDAyRjU4MkU0MzRGRkY1ODNFNEYwRTk3NThECis6MTAxOTYwMDBGMDA4QTQyNDA2RjU4MkU0MzRGRkY1ODNFNEYwMDUyM0FGCis6MTAxOTcwMDBFNTIzNjQwNDYwMDMwMjE4OTE5MDMyMDlFNDkzRkY3ODMwCis6MTAxOTgwMDA3OEY2MTIxRDk4RTRGMDkwMzIwODkzRkZGNjEyMUQ0NTg4Cis6MTAxOTkwMDBFNEYwOTBGRkZENzQwNUYwMjI3QjAwN0EwMDc5MjM5MDNCCis6MTAxOUEwMDBGQUNGRTQ3NUYwMDExMjFCMzI4NUYwMkVGNTJEN0QwMTgyCis6MTAxOUIwMDAwMjI2OThFNzA5RjYwOERGRkE4MDQ2RTcwOUYyMDhERjExCis6MTAxOUMwMDBGQTgwM0U4ODgyOEM4M0U3MDlGMEEzREZGQTgwMzJFMzU1Cis6MTAxOUQwMDAwOUY2MDhERkZBODA3OEUzMDlGMjA4REZGQTgwNzA4OEY4Cis6MTAxOUUwMDA4MjhDODNFMzA5RjBBM0RGRkE4MDY0ODk4MjhBODNFMDMyCis6MTAxOUYwMDBBM0Y2MDhERkZBODA1ODg5ODI4QTgzRTBBM0YyMDhERjIxCis6MTAxQTAwMDBGQTgwNEM4MEQyODBGQTgwQzY4MEQ0ODA2OTgwRjI4MENGCis6MTAxQTEwMDAzMzgwMTA4MEE2ODBFQTgwOUE4MEE4ODBEQTgwRTI4MEY1Cis6MTAxQTIwMDBDQTgwMzM4OTgyOEE4M0VDRkFFNDkzQTNDOEM1ODJDODRBCis6MTAxQTMwMDBDQ0M1ODNDQ0YwQTNDOEM1ODJDOENDQzU4M0NDREZFOUI0Cis6MTAxQTQwMDBERUU3ODAwRDg5ODI4QTgzRTQ5M0EzRjYwOERGRjlFQzUwCis6MTAxQTUwMDBGQUE5RjBFREZCMjI4OTgyOEE4M0VDRkFFMEEzQzhDNURCCis6MTAxQTYwMDA4MkM4Q0NDNTgzQ0NGMEEzQzhDNTgyQzhDQ0M1ODNDQzAyCis6MTAxQTcwMDBERkVBREVFODgwREI4OTgyOEE4M0U0OTNBM0YyMDhERjcxCis6MTAxQTgwMDBGOTgwQ0M4OEYwRUY2MDAxMEU0RTYwQzM4OEYwRUQyNDQxCis6MTAxQTkwMDAwMkI0MDQwMDUwQjlGNTgyRUIyNDAyQjQwNDAwNTBBRjQ0Cis6MTAxQUEwMDAyMzIzNDU4MjIzOTAxOUZDNzNCQjAxMDY4OTgyOEE4MzE0Cis6MTAxQUIwMDBFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDBECis6MTAxQUMwMDA5MzIyQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDk4Cis6MTAxQUQwMDAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEI3Cis6MTAxQUUwMDBFMjIyRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjdECis6MTAxQUYwMDAwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzlECis6MTAxQjAwMDAyMkY4QkIwMTBERTU4MjI5RjU4MkU1ODMzQUY1ODNFOEU5Cis6MTAxQjEwMDBGMDIyNTAwNkU5MjU4MkM4RjYyMkJCRkUwNUU5MjU4MjlGCis6MTAxQjIwMDBDOEYyMjJDNUYwRjhBM0UwMjhGMEM1RjBGOEU1ODIxNTY4Cis6MTAxQjMwMDA4MjcwMDIxNTgzRTAzOEYwMjJBM0Y4RTBDNUYwMjVGMEFBCis6MTAxQjQwMDBGMEU1ODIxNTgyNzAwMjE1ODNFMEM4MzhGMEU4MjJCQjA4Cis6MTAxQjUwMDAwMTEwRTU4MjI5RjU4MkU1ODMzQUY1ODNFMEY1RjBBM0VCCis6MTAxQjYwMDBFMDIyNTAwOUU5MjU4MkY4ODZGMDA4RTYyMkJCRkUwQTQ5Cis6MTAxQjcwMDBFOTI1ODJGOEUyRjVGMDA4RTIyMkU1ODMyQUY1ODNFOTE3Cis6MTAxQjgwMDA5M0Y1RjBBM0U5OTMyMkJCMDEwQTg5ODI4QTgzRjBFNUU5Cis6MTAxQjkwMDBGMEEzRjAyMjUwMDZGNzA5QTdGMDE5MjJCQkZFMDZGM0M2Cis6MTAxQkEwMDBFNUYwMDlGMzE5MjJGOEJCMDExMUU1ODIyOUY1ODJFNTc4Cis6MTAxQkIwMDA4MzNBRjU4M0U4RjBFNUYwQTNGMDIyNTAwOUU5MjU4MkE1Cis6MTAxQkMwMDBDOEY2MDhBNkYwMjJCQkZFMDlFOTI1ODJDOEYyRTVGMEI2Cis6MTAxQkQwMDAwOEYyMjJBNDI1ODJGNTgyRTVGMDM1ODNGNTgzMjJFNjFBCis6MTAxQkUwMDBGQjA4RTZGQTA4RTZGOTIyRUJGNjA4RUFGNjA4RTlGNjU5Cis6MTAxQkYwMDAyMkUwRkJBM0UwRkFBM0UwRjkyMkVCRjBBM0VBRjBBM0QyCis6MTAxQzAwMDBFOUYwMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MENCCis6MTAxQzEwMDAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjhGCis6MTAxQzIwMDA5MzY4NjBFRkEzQTNBMzgwREZBQjM2QUEzN0E5MzhFNTlBCis6MTAxQzMwMDA0QzEyMUFFODc0MDEyNTM4RjUzOEU0MzUzN0Y1MzdBQjFFCis6MTAxQzQwMDAzNkZBQTkzODc0MTExMjFBRTg3NDAxMjUzOEY1MzhFNDA3Cis6MTAxQzUwMDAzNTM3RjUzNzkwRkYwNkUwQUIzNkFBMzdBOTM4MTIxQUE4Cis6MTAxQzYwMDBFODc0MDEyNTM4RjUzOEU0MzUzN0Y1MzdBQjM2RkFBOThECis6MTAxQzcwMDAzOEU0MTIxQUU4MDQyNTM4RjUzOEU0MzUzN0Y1MzdBQjdGCis6MTAxQzgwMDAzNkZBQTkzOEU0MTIxQUU4MDQyNTM4RjUzOEU0MzUzNzZECis6MTAxQzkwMDBGNTM3OTBGRjA0RTBBQjM2QUEzN0E5MzgxMjFBRTg3NDdBCis6MTAxQ0EwMDAwMTI1MzhGNTM4RTQzNTM3RjUzNzkwRkYwNUUwQUIzNkQ4Cis6MTAxQ0IwMDBBQTM3QTkzODEyMUFFODc0MDEyNTM4RjUzOEU0MzUzN0ZGCis6MTAxQ0MwMDBGNTM3MjJGNTgzRTA1NDA4QUIzNkFBMzdBOTM4MjJGNTU4Cis6MTAxQ0QwMDA4M0VGRjBGRDdDMDBDMzc4N0JFNjlERjYxOEU2OUNGNjZBCis6MTAxQ0UwMDBFNkZFMDhFNjc4MDMyMjc1MzYwMTc1MzdGOTc1Mzg3MjE1Cis6MTAxQ0YwMDAyMkUwNDQwNEYwNzQxMzJGRjU4MkU0MzRGOUY1ODNFMDE0Cis6MTAxRDAwMDAyMjkwRkFCQ0UwRkY3RTAwQzM5MEZBQzBFMDlGRjA5MDAyCis6MTAxRDEwMDBGQUJGRTA5RUYwOTBGQUI3RUU4RkYwMTIxQjFDRUYyNTkxCis6MTAxRDIwMDA0RkY1NEZFRTM1NEVGNTRFMjI3QjAxN0FGQTc5QjQ5MDlECis6MTAxRDMwMDBGQUI3RTBGNTJEQTNFMEY1MkUyMjc4N0NFNkZFMDhFNjYyCis6MTAxRDQwMDA4RTgzMjQwNEY1ODJFNDM1ODNGNTgzMjI1NDBGNzVGMEU1Cis6MTAxRDUwMDAwOEE0MjQ0MEY1ODJFNDM0RkZGNTgzMjJFNTRENzVGMEI0Cis6MTAxRDYwMDAwOEE0MjQ0OEY1ODJFNDM0RkYyMkU1NEQ3NUYwMDhBNDY4Cis6MTAxRDcwMDAyNDA4RjU4MkU0MzRGRjIyOTBGQUI5RTBGRjI0RkMyMjIzCis6MTAxRDgwMDA5MEZGMDBFMDU0MUYyMjkwRkFCRUUwOTBGQUJBRjAyMkQxCis6MTAxRDkwMDA3NTMzMDA4RjM0OTBGOTZGMTIxQkVBOTAwMDAyMjI1NEMxCis6MTAxREEwMDAwRjc1RjAwOEE0MjQwMEY1ODJFNDM0RkZGNTgzMjI3NTUyCis6MTAxREIwMDBGMDA4QTQyNDQxRjU4MkU0MzRGRkY1ODMyMjc0ODBGMDE2Cis6MTAxREMwMDAwOEU2RkZFOTc1RjAwOEE0MjI3NEIyMjUyMkY1ODJFNDQyCis6MTAxREQwMDAzNEZBRjU4MzIyNzVGMDA4QTQyNDQyRjU4MkU0MzRGRjM2Cis6MTAxREUwMDBGNTgzNzQ4MEYwMjI5MEZGODJFMDQ0MDhGMDIyOTBGRjk3Cis6MTAxREYwMDBGRUUwNDQwM0YwOTBGRkZDRTA1NEZERjAyMjc4NjdFNjNCCis6MTAxRTAwMDA1NEZERjY5MEZGRkQ3NDY1RjAyMjEyMUJDQ0UwRkVBMzlBCis6MTAxRTEwMDBFMEZGNEUyMjdCMDE3QUZBNzlCNzIyOTBGRjgwRTA0NEZFCis6MTAxRTIwMDAwOEYwMjI5MEZGODNFMDU0N0ZGMDIyRTBGRjkwRjk2QUVGCis6MTAxRTMwMDAwMjFCRUE5MEZGQTRFMDQ0MDJGMDIyNzUzOTAxNzUzQUQyCis6MTAxRTQwMDAwOTIyN0IwMTdBRjk3OTcyMjJEM0U1M0M5NDA4RTUzQkJCCis6MTAxRTUwMDA5NDAxMjI5MEZBQkVFMEZGOTBGQUJBRjAyMjkwRkZBNDFCCis6MTAxRTYwMDBFMDU0RUYyMjkwRkZCNEUwNTRFRjIyMTIxMDRCNzg4ODM4Cis6MTAxRTcwMDBFRkY2MTIyQUM3MTIyMkZBOEU4MzI0MDkxMjIyQTFFMDU5Cis6MTAxRTgwMDBGRDEyMjJFODkwMDAwQTEyMjMwMjI0MEExMjIyQTFFMDg1Cis6MTAxRTkwMDA5MDAwMEIxMjFBRkExMjIyRkFGNTgyOEU4M0EzQTNBM0UyCis6MTAxRUEwMDBFMEY1NTMxMjIzMDYyNDA0MTIyMkExRTBGNTU0OEY4Mjk4Cis6MTAxRUIwMDA4RTgzQTNBM0UwRjU1NUU1NTNDNDEzMTMxMzU0MDE3ODlGCis6MTAxRUMwMDA4OEY2RDM5NDAwNDAwNkU1NTQzMEUxMDEwNjc4ODhFNkIwCis6MTAxRUQwMDAxMjIyRTc5MDAwMENFRjEyMUFGQTEyMjJCNUEzQTNFMDI3Cis6MTAxRUUwMDBGRUEzRTBGRjUzMDcwQzUzMDZFNkU1NTMzMEU1MDM0MzNBCis6MTAxRUYwMDAwNzAxRTU1NDIwRTUwRUU1NTM1NDdGNzAwOEU1NTMyMEIzCis6MTAxRjAwMDBFNzAzNDMwNzAyRTU1MzMwRTMwMzQzMDcxMEU1NTMzMDhCCis6MTAxRjEwMDBFMjAzNDMwNzIwRTU1MzU0MDM2MDAzNDMwNzQwRTU1M0JFCis6MTAxRjIwMDAzMEUxMDM0MzA3ODBFNTUzMzBFNDAzNDMwNjAxRTU1MzAyCis6MTAxRjMwMDAzMEU2MDM0MzA2MDhFNTU0MjBFNDBFRTU1MzU0N0Y3MDcxCis6MTAxRjQwMDAwOEU1NTMyMEU3MDM0MzA2MTA1MzA3RkI1MzA2Nzk5MDM3Cis6MTAxRjUwMDAwMDA1RUU4RkYwMTIxQjlGRTU1NTMwRTMxMjU0MzBGRjYxCis6MTAxRjYwMDBDNDU0MEYxMjIyRTc5MDAwMDhFRjEyMUFGQTgwMEExMkU2Cis6MTAxRjcwMDAyMkU4OTAwMDA4RTQxMjFBRkFFNTU1NTQwMzEyMjJFNzA5Cis6MTAxRjgwMDA5MDAwMDdFRjEyMUFGQUU1NTU1NDA0RkZDMzEzOTAwMEFFCis6MTAxRjkwMDAwOTEyMUFGQTkwMDAwNzEyMUFCQjcwMTMxMjIyRThFOTBDCis6MTAxRkEwMDAyNDA5RjlFNDNBRkExMjFBQTJGRkMzMTMxMjFBRTgxMjJBCis6MTAxRkIwMDAyMzI3MjQwODEyMjJBMUUwRkU4RDgyOEM4M0U1ODIyNDRGCis6MTAxRkMwMDAwNzEyMjJBMUUwRkRFRUVEMTIyMkU3OTAwMDAzRUU4RjUyCis6MTAxRkQwMDBGMDEyMUI5RjEyMzI4NDdEMEFFNEZGMTIyRkI0MDIxMDBDCis6MTAxRkUwMDBDRTkwRkFFNkUwQjQwMzA2N0UwMDdGNDA4MDA0N0UwMEQ3Cis6MTAxRkYwMDA3RjA4OTBGQURBRUVGMEEzRUZGMDkwMDAwNTEyMUFCQjFBCis6MTAyMDAwMDBGRjdFMDA5MEZBRDZFRUYwQTNFRkYwNzAwMzdGMDgyMjc3Cis6MTAyMDEwMDA5MDAwMDgxMjFCNDhGRjkwRkFEOEU1RjBGMEEzRUZGMDBCCis6MTAyMDIwMDBBRTAyQUYwMThFNTA4RjUxNzQwQTI1NTFGNTUxRTQzNTNGCis6MTAyMDMwMDA1MEY1NTA5MEZBREJFMEZGMTRGRTkwRkFEOUUwNUVGRTE2Cis6MTAyMDQwMDBDM0VGOUVGRjkwRkFEREYwQzM5MEZBRDdFMDlGOTBGQUJECis6MTAyMDUwMDBENkUwOTQwMDUwMDZBM0UwOTBGQURERjAxMjIwQTk2MENCCis6MTAyMDYwMDAwM0UwRkYyMjEyMkUyQjkwRkFENkUwRkVBM0UwRkY0RUYzCis6MTAyMDcwMDA2MDJCOTBGQURBRTBGQ0EzRTBGREQzRUY5REVFOUM0MEVDCis6MTAyMDgwMDAwN0UwOTBGQURERjA4MDA4OTBGQUQ3RTA5MEZBRERGMEYyCis6MTAyMDkwMDAxMjIwQTk2MDAzRTBGRjIyMTIyRTJCODBDQTdCMDA3QTU3Cis6MTAyMEEwMDAwMDc5NTJFNEY1MkRGNTJFN0QwMTEyMjY5ODdGMDAyMjRECis6MTAyMEIwMDBBQTUwQTk1MTdCMDE5MEZBRDhFMEZDQTNFMEZEOTBGQTY4Cis6MTAyMEMwMDBEREUwRjU0QTEyMjk2MDkwRkFEQ0VGRjAyMkVGMjRBRTUxCis6MTAyMEQwMDA2MDUyMjRGRTYwMkUyNEZFNzAwMzAyMjE2OTI0MDY2MEYzCis6MTAyMEUwMDAwMzAyMjFCMTc4NzFFNjU0RkJGNjkwRkZBNUUwRjUyMkRBCis6MTAyMEYwMDA0NDBGRjA3NDMzOTBGQTk0RjBFNTIyQTNGMDkwRkFCMjEyCis6MTAyMTAwMDA3NDAxRjAyMjc4NzJFNjU0RkJGNjkwRkZCNUUwRjUyMkY4Cis6MTAyMTEwMDA0NDBGRjA3NDQzOTBGQTk2RjBFNTIyQTNGMDkwRkFCM0RFCis6MTAyMTIwMDA3NDAxRjAyMjkwRkFBMEUwQTMyMEU1MDMwMjIxQjE5MDBGCis6MTAyMTMwMDBGRkE2RTA5MEZBQ0RGMEEzRjA5MEZBQ0RFMEZGNTQwRkE3Cis6MTAyMTQwMDBGRTYwMTA5MEZGQTYxMjIzMEQ5MEZGQTZFMDkwRkFDRDNFCis6MTAyMTUwMDBGMDgwRTY5MEZBQ0VFMEZGNzQzNEZFMTIyRDg1RUY3MDI5Cis6MTAyMTYwMDA1NzkwRkFDRUUwRkY3NDM0OTBGQTk4RjBFRkEzRjAyMjgzCis6MTAyMTcwMDA5MEZBQUFFMEEzMzBFNTQwOTBGRkI2RTA5MEZBQ0RGMEU3Cis6MTAyMTgwMDBBM0YwOTBGQUNERTBGRjU0MEZGRTYwMTA5MEZGQjYxMjVFCis6MTAyMTkwMDAyMzBEOTBGRkI2RTA5MEZBQ0RGMDgwRTY5MEZBQ0VFMDA1Cis6MTAyMUEwMDBGRjc0NDRGRTEyMkQ4NUVGNzAwRTkwRkFDRUUwRkY3NDlFCis6MTAyMUIwMDA0NDkwRkE5QUYwRUZBM0YwMjJDMEUwQzBGMEMwODNDMEQwCis6MTAyMUMwMDA4MkMwRDA3NUQwMDBDMDAwQzAwMUMwMDJDMDAzQzAwNEVFCis6MTAyMUQwMDBDMDA1QzAwNkMwMDc5MEZGOTJFMEZGOTBGQUNDRjA5MEQ3Cis6MTAyMUUwMDBGRjkyRTRGMEVGMTIxQkZDMjI2OTI2MjI2OTJFMjIwQ0RBCis6MTAyMUYwMDAzMDIyMEMzMjIyMUEzODIyMkMzQTIyNUUzRTIyNDk0NEU2Cis6MTAyMjAwMDAyMjNFNDYyMjU0NTAyMjU0NTIyMjU0NTQyMjU0NTYwMDA0Cis6MTAyMjEwMDAwMDIyNkU5MEZBQ0NFMEZEN0MwMDdGMDExMjExNUU4MEZFCis6MTAyMjIwMDA2MjdDMDA3RDAxN0YwMzEyMTE1RTkwRkZGRUUwNDQyMDdFCis6MTAyMjMwMDBGMDgwNTA3QzAwN0QwMTdGMDIxMjExNUU5MEZGRkVFMDc1Cis6MTAyMjQwMDA0NDQwRjA4MDNFN0MwMDdEMDE3RjA1MTIxMTVFODAzM0FBCis6MTAyMjUwMDA3QzAwN0QwMTdGMDYxMjExNUU4MDI4OTBGQUNDRTBGRkExCis6MTAyMjYwMDAxMjIwQzY4MDFFN0MwMDdEMDE3RjA0MTIxMTVFODAxMzQ3Cis6MTAyMjcwMDAxMjI4NEU4MDBFOTBGQUNDRTAyNDAwRkZFNDM0RkZGRURBCis6MTAyMjgwMDAxMjJEODVEMDA3RDAwNkQwMDVEMDA0RDAwM0QwMDJEMEJGCis6MTAyMjkwMDAwMUQwMDBEMEQwRDA4MkQwODNEMEYwRDBFMDMyNzg3QzkyCis6MTAyMkEwMDBFNkZFMDhFNjI0MDQ4RTgzRjU4MkU0MzU4M0Y1ODMyMjc2Cis6MTAyMkIwMDA3NDEzMjUyNEY1ODJFNDM0RjlGNTgzMjI3ODgwRTZGRTUwCis6MTAyMkMwMDAwOEU2RjU4MjhFODMyMjc4ODBFNkZFMDhFNkFBMDZGODA0Cis6MTAyMkQwMDBBQzAyN0QwMTdCRkY3QTMyNzk1NjdFMDA3RjBBMDIxQUJBCis6MTAyMkUwMDA3Qzc4ODBFNkZDMDhFNkY1ODI4QzgzQTNBMzIyRkY5MDJECis6MTAyMkYwMDBGOTZGMDIxQkVBOTBGOTZBMTIxQkVBOTAwMDA0MDIxQUI1Cis6MTAyMzAwMDBCQjc4N0VFNkZFMDhFNkZGMjJFRDEyMUFGQThGODI4RTc3Cis6MTAyMzEwMDA4M0U1ODIyMkVGRjA5MEZBQ0VFMDU0MEY0RUZFRjBFRjBDCis6MTAyMzIwMDA1NEYwNEVGMDIyNzg4MEU2RkMwOEU2OEM4MzIyNzg3RTFBCis6MTAyMzMwMDBFNkZDMDhFNkZEOEM4MzIyQTYwN0U2MjQ2RUY4RTYyMjdBCis6MTAyMzQwMDA3ODdFRTZGQTA4RTZGQjIyMDhFNkZFMDhFNjhFODMyMjlGCis6MTAyMzUwMDAyNkY2MThFRTM2RjYyMkVGMjQwQkY1ODJFNDNFRjU4M0RFCis6MTAyMzYwMDAyMjhCODI4QTgzRTU4MjIyOEIyNThBMjY4OTI3OEQyOEUzCis6MTAyMzcwMDA5MEZBRDJFNEYwQTM3NDAyRjA3QjAxN0FGQTc5RDE5MDVBCis6MTAyMzgwMDBGQUQyRTBGNTJEQTNFMEY1MkU3RDAxMTIyNjk4OTBGQTAxCis6MTAyMzkwMDBEMUUwNjUyODYwNDZBM0UwRkZBM0UwQTNDRkYwQTNFRjYwCis6MTAyM0EwMDBGMDEyMjNGMDkwRkFEMUUwRkY5MEZBRDRFNDhGRjAxMjBCCis6MTAyM0IwMDAxQjFDMTIyM0YwOTBGQUQ0RTBGRkEzRTA5MEZBRDJDRkQ2Cis6MTAyM0MwMDBGMEEzRUZGMDkwRkFEMUUwQTM3NUYwMDAxMjFCMUM5MDdGCis6MTAyM0QwMDBGQUQyRTQ3NUYwMDQxMjFCMUMwMjIzNzI5MEZBRDNFMEM3Cis6MTAyM0UwMDAyNDAxRkY5MEZBRDJFMDM0MDBBQjI1QUEyNkE5Mjc4RjVBCis6MTAyM0YwMDBGMDEyMUI4MDdGMDAyMjdCMDE3QUZBNzlEMTkwRkFEMjA5Cis6MTAyNDAwMDBFNDc1RjAwMTEyMUIxQzg1RjAyRUY1MkQ3RDAxMDIyNkNFCis6MTAyNDEwMDA5ODhGNjIxMjJBQzcxMjIyRkE4RTgzMjQwQjEyMjJBMUVECis6MTAyNDIwMDBFMDU0RkJGMDQ0MDJGMDA4MTIyMkRDRTBBMzMwRTUwQzlCCis6MTAyNDMwMDAxMjIzMDYyNDBCMTIyMkExRTA0NDAxRjA3ODdDRTZGRTcwCis6MTAyNDQwMDAwOEU2RkZGNTgyOEU4M0UwNTRCOEZERjBFNTYyMjRGRUQ1Cis6MTAyNDUwMDA0NDIwRkM0REYwRTU4MjI0MDQxMjIyQTFFMDU0QjhGMDlGCis6MTAyNDYwMDA0Q0YwOEY4MjhFODNBMzc0MDNGMDE4RTZGRTA4RTZGRjFCCis6MTAyNDcwMDA4RTgzMjQwNTEyMjJBMUMwODNDMDgyRTBGRDc0OTkyNUI5Cis6MTAyNDgwMDA2MkY1ODJFNDM0RkFGNTgzRTA1NEZDNDQwM0ZDRUQ0QzNECis6MTAyNDkwMDBEMDgyRDA4M0YwOEY4MjhFODNFMDQ0ODBGMEU1ODIyNDY2Cis6MTAyNEEwMDAwNDEyMjJBMUUwNDQ4MEYwMTIzMjg0NzQ2RTI1NjJGODk2Cis6MTAyNEIwMDA3NDA0NDZGNjdGMDAyMjEyMTA0QjdGMDIxMjEyNjE3OERDCis6MTAyNEMwMDA2N0U2NDQwMkY2RDJCMEQyQjE5MEY5MTZFMDMwRTcwN0UxCis6MTAyNEQwMDA5MEZGOUVFNEYwODAzNkQyQjM5MEZGQTRFMDkwRkE3RUE1Cis6MTAyNEUwMDBGMDkwRkZCNEUwOTBGQTdGRjA5MEZGQTJFMDkwRkE3Q0M5Cis6MTAyNEYwMDBGMDkwRkZCMkUwOTBGQTdERjA5MEZGQTQ3NDMwRjA5MDdECis6MTAyNTAwMDBGRkI0RjA5MEZGQTI3NDQwRjA5MEZGQjJGMDkwRkFFN0IxCis6MTAyNTEwMDBFNUE4RjA3NUE4ODE5MEZGOTJFMDYwMDRFNEYwODBGNkYxCis6MTAyNTIwMDA5MEZGRkQ3NDNBRjA0Mzg3MDEwMDAwMDA5MEZBN0VFMENFCis6MTAyNTMwMDA5MEZGQTRGMDkwRkE3RkUwOTBGRkI0RjA5MEZBN0NFMDc2Cis6MTAyNTQwMDA5MEZGQTJGMDkwRkE3REUwOTBGRkIyRjA5MEY5MThFMEQxCis6MTAyNTUwMDA2MDAyQzJCMzkwRkFFN0UwRjVBODAyMTBDRThCNUM4QTY1Cis6MTAyNTYwMDA1RDg5NUUxMjJFMEQ5MEZBQzMxMjFCRjNBQTVEQTk1RTVGCis6MTAyNTcwMDA5MEZBQzYxMjFCRjM5MEZBQzdFNDc1RjAwQTEyMUIxQ0ZFCis6MTAyNTgwMDA5MEZBQzYxMjFCRUFFOTI0MDFGOUU0M0FGQTkwRkFDOTcyCis6MTAyNTkwMDAxMjFCRjNBQjVDQUE1REE5NUUxMjJFMTlFMEZGQzMxM0Y4Cis6MTAyNUEwMDBGMEU0Nzg4MkY2OTBGQUMxRTBGRjc4ODJFNkMzOUY1MEFCCis6MTAyNUIwMDA0QTkwRkFDMzEyMkRFRUZGNzg4M0Y2OTBGQUM2MTIyREQ4Cis6MTAyNUMwMDBFRUZFRjQ1RkZGNzg4M0Y2MTIyREVCNUU0RkZGNzg4MzBCCis6MTAyNUQwMDBGNjEyMkRGNDc1RjAwMjEyMUIxQzkwRkFDN0U0NzVGMDg4Cis6MTAyNUUwMDAwMjEyMUIxQ0FCNUNBQTVEQTk1RTkwMDAwNDEyMUFCQjEwCis6MTAyNUYwMDAzMEU0MDMxMjJFMDM3ODgyMDY4MEFBRTQ5MEZBQzJGMDM3Cis6MTAyNjAwMDAyMjhCNTY4QTU3ODk1ODkwRkFDMjc0MDZGMEU0OTBGQUUxCis6MTAyNjEwMDBDMUYwMTIxQUEyMjQ2RTYwMjYxNDcwNzAxMjJEREE2MEI2Cis6MTAyNjIwMDAwOTI0MzA3MDEyMTIyNTU2ODA2MjEyMkUyNDEyMUZEQUVECis6MTAyNjMwMDA5MEZBQzJFRkYwODA1NTkwRkFDMjc0ODFGMDgwNEQxMjhBCis6MTAyNjQwMDAyRERBNjAwOTI0MzA3MDNFMTIyRDMwODAzRkU1NTgyNDg5Cis6MTAyNjUwMDAwM0Y5RTQzNTU3RkE3QjAxQzAwM0MwMDJDMDAxMTIyRTEyCis6MTAyNjYwMDAyNDkwMDAwNTEyMUFCQkZEOTAwMDA4MTIxQjQ4RjUyRTlECis6MTAyNjcwMDA4NUYwMkREMDAxRDAwMkQwMDMxMjI2OTg5MEZBQzFFRjM4Cis6MTAyNjgwMDBGMEU0QTNGMDgwMDY5MEZBQzI3NDgxRjA5MEZBQzJFMDAwCis6MTAyNjkwMDAxMjJFMjQ5MDAwMDIxMjFBRkE5MEZBQzFFMEZGMjI4QjQ3Cis6MTAyNkEwMDAyOThBMkE4OTJCOEQyQ0U1MkM3MDAzQUYyQzIyMTIyRTFGCis6MTAyNkIwMDA1MzcwMTYxMjJFNzJFNTJEOTBGRkYxRjAxMjMxRDg1MEEyCis6MTAyNkMwMDBGMjEyMjcyNTQwMEI3RjAwMjIxMjJFNzIxMjI3MjU1MDZFCis6MTAyNkQwMDBGODkwRkZGMzc0QTFGMEU1MkNCNDAxMDc5MEZGRjBFMDRGCis6MTAyNkUwMDA0NDAyRjA5MEZGRjFFNEYwRjUyRkU1MkMxNEZGRTUyRjA0Cis6MTAyNkYwMDBDMzlGNTAyQTEyMzFDMTQwMDNBRjJGMjJDM0U1MkM5NTRFCis6MTAyNzAwMDAyRkZGQkYwMjA3OTBGRkYwRTA0NDAyRjAxMjJFNjUwNTk0Cis6MTAyNzEwMDAyRjc0MDEyNTJCRjUyQkU0MzUyQUY1MkE4MENDMTIzMUI0Cis6MTAyNzIwMDBDMTQwMDM3RjE4MjIxMjJFNjVBRjJDMjI5MEZGRjFFNUU1Cis6MTAyNzMwMDAyRUYwMDIzMUQ4MTIxMDRCNzg4NDEyMjMzMTMwRTEwODg4Cis6MTAyNzQwMDA3RjEzMTIzMUE5MDIyN0JDNzg4NEU2RjkyNDEzMTIyMkUwCis6MTAyNzUwMDBBREUwRkYzMEU3NDA1NDAzNjAxRUU5QjQwMzBEOTBGRjg1Cis6MTAyNzYwMDA5RUUwNTRGRUYwRTA0NDA0RjA4MDQ2OTBGRjlFRTA1NDZBCis6MTAyNzcwMDBGREYwRTA0NDA4RjA4MDM5RTlCNDAzMEQ5MEZGOUVFMERECis6MTAyNzgwMDA1NEZCRjBFMDQ0MDFGMDgwMjg5MEZGOUVFMDU0RjdGMDA1Cis6MTAyNzkwMDBFMDQ0MDJGMDgwMUJFRjU0MDM2MDE0RTlCNDAzMDk5MDk1Cis6MTAyN0EwMDBGRkE0RTA1NERGRjA4MDA3OTBGRkI0RTA1NERGRjBDMkY0Cis6MTAyN0IwMDBCMzkwRjkxOEUwMDRGMEFGMDExMjIyRUVGRDEyMkZFNUZDCis6MTAyN0MwMDAxMjMxQTkwMjEwQ0U3NUE4NDA3ODdGRTRGNkQ4RkQ3NUM1Cis6MTAyN0QwMDA4MThCMDIyODA5MDIzMThDRTQ5M0EzRjhFNDkzQTM0MDhGCis6MTAyN0UwMDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzhDCis6MTAyN0YwMDAyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1Njg3Cis6MTAyODAwMDA4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MEJFCis6MTAyODEwMDA5MDJCQTlFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOUVGCis6MTAyODIwMDA1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBOEJFCis6MTAyODMwMDA0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MjUxCis6MTAyODQwMDBDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkJGCis6MTAyODUwMDBFOURFRTc4MEJFRTRGNTIyMTIxREMyRTBCNDA0MERFNTE2Cis6MTAyODYwMDAyMjI0MDNGRjEyMzAxMzEyMURDMkU0RjAwNTIyRTUyMkQ4Cis6MTAyODcwMDBDMzk0MDI0MEUzRTRGNTIyNzVGMDAyRTUyMjkwRkE5NDU1Cis6MTAyODgwMDAxMjFFMDM2MDJDMTIyRDg1RUY2MDUyNzVGMDAyRTUyMkI2Cis6MTAyODkwMDA5MEZBOTQxMjFCQ0NFNEYwQTNGMDc1RjAwQUU1MjI5MEI0Cis6MTAyOEEwMDBGQUEwMTIxQkNDRTBBMzMwRTYzMzEyMURDMjc0MDRGMDcwCis6MTAyOEIwMDAyMjc1RjAwMkU1MjI5MEZBOTgxMjFFMDM2MDE2MTIyRDdFCis6MTAyOEMwMDA4NUVGNjAxOTc1RjAwMkU1MjI5MEZBOTgxMjFCQ0NFNEFFCis6MTAyOEQwMDBGMEEzRjAyMjA1MjJFNTIyQzM5NDAyNDA5QjIyRTRGRkVDCis6MTAyOEUwMDA5MEZGODNFMDU0MEZGRUVGQzM5RTUwMTc3NEYwMkZGNTU2Cis6MTAyOEYwMDA4MkU0MzRGRUY1ODNFMDEyMUNDMTEyMUFFODBGMTIxQ0E4Cis6MTAyOTAwMDBCMDgwRERFRkZEQzNFNTNBOURGNTNBRTUzOTk0MDBGNTc5Cis6MTAyOTEwMDAzOUQzRTUzQTk0MDBFNTM5OTQwMDQwMDZFNDkwRkY4MzBBCis6MTAyOTIwMDBGMDIyMTIxRERGMTIxRTM0MTIxRTI2MTIxQUEyMjQ2RTZECis6MTAyOTMwMDA2MDFFMTQ2MDFCMjQ4RTcwMkQ5MDAwMDExMjFBQkJGRkM0Cis6MTAyOTQwMDAyNEZDNjAwMzA0NzAxRkVGRkQ3QzAwN0YwRDAyMTE1RTBDCis6MTAyOTUwMDAxMjFFM0IxMjI1RkExMjFEODkxMjFBQkI2MDAzMDIzMkE1Cis6MTAyOTYwMDA3QUU0RkYxMjMyNkUyMjhCNDU4QTQ2ODk0NzhDNDg4RDY1Cis6MTAyOTcwMDA0OUQyMDAxMjJFNTM3MDE2MTIyRTcyRTU0ODkwRkZGMUM0Cis6MTAyOTgwMDBGMDEyMzFEODUwRjIxMjI5RDU0MDBCN0YxODIyMTIyRUE2Cis6MTAyOTkwMDA3MjEyMjlENTUwRjhFNEY1NEJFNTRBMTRGRkU1NEJDMzE0Cis6MTAyOUEwMDA5RjUwMTcxMjI5QzU0MDAzN0YxODIyMDU0Qjc0MDEyNTNCCis6MTAyOUIwMDA0N0Y1NDdFNDM1NDZGNTQ2ODBERjkwRkZGMEUwNDQwMUY3Cis6MTAyOUMwMDBGMDEyMjlDNTQwMDM3RjE4MjI3RjAwMjJBQjQ1QUE0NjlBCis6MTAyOUQwMDBBOTQ3MTIxQUEyOTBGRkYxRjAwMjMxRDg5MEZGRjFFNTU5Cis6MTAyOUUwMDA0OUYwMDIzMUQ4N0IwMTdBRkE3OUNGRTRGRDEyMjM2MUY0Cis6MTAyOUYwMDA5MEZBQ0ZFNDc1RjAwOTEyMUIxQzdCMDA3QTAwNzkyMzUyCis6MTAyQTAwMDA5MEZBQ0ZFNDc1RjAwMTEyMUIzMjg1RjAyRUY1MkQ3RDgyCis6MTAyQTEwMDAwMTEyMjY5ODkwRkZGN0U1MjMxMjJBMzk5MEZGRjZFNTc4Cis6MTAyQTIwMDAyM0YwOTBGQUNGRTRGMEEzNzQwNjEyMkEzOUU1MjMzMDlDCis6MTAyQTMwMDBFMDA3OTBGRkZDNzQ5NEYwMjI5MEZGRkM3NDkwRjAyMjY5Cis6MTAyQTQwMDBGMDdCMDA3QTAwNzkyMzkwRkFDRkU0NzVGMDAxMTIxQjM1Cis6MTAyQTUwMDAzMjg1RjAyRUY1MkQ3RDAxMDIyNjk4OTBGRjkzNzQ4MTJBCis6MTAyQTYwMDBGMDkwRkZGRkUwNjAwNjkwRkZGQzc0MTBGMDkwRkY5MTgzCis6MTAyQTcwMDBFMDQ0OTBGMEU0OTBGOTE2RjBBM0YwMTIyQjM5MTIxNjBFCis6MTAyQTgwMDBDOTEyMzA2OTdFMDc3RkQwMTIxMjJBN0UwRjdGQTAxMkYyCis6MTAyQTkwMDAxMjQ0RTQ3ODc3RjY3ODc3RTZGRkMzOTQwNjUwMEI3NDE3Cis6MTAyQUEwMDA2RTJGRjhFNEY2Nzg3NzA2ODBFQzdGMDMxMjMwQjI5MDUwCis6MTAyQUIwMDBGOTE2RTAyMEU0MDU3RjA0MTIzMEIyOTBGRjlCRTRGMEE5Cis6MTAyQUMwMDA5MEZGOUFGMDkwRkZFOEUwNTQxRkYwRDJBODIyMTU2NTFECis6MTAyQUQwMDBBODY1QTYwNzMwMDgwNTEyMTFBRTgwRjhEMjA4QTg2NUNGCis6MTAyQUUwMDBFNkZGQjQwMzBGNzg3Qzc2RkYwODc2RTAwODc2RkYwOEVGCis6MTAyQUYwMDA3NkEwODAwRDc4N0M3NkZGMDg3NkUyMDg3NkZGMDg3NjZGCis6MTAyQjAwMDBCMDc4ODA3NkZBMDg3NjlFRUYyNEZENzVGMDBBQTRBRUMwCis6MTAyQjEwMDBGMDEyMjM0OTdCMDE3QUZGNzk0ODc4NjgxMjFCRTFBOEZCCis6MTAyQjIwMDA2NUU2MjRGRDc1RjAwOEE0RkZBRUYwNzg2QTEyMjM0OTJCCis6MTAyQjMwMDA3OTA4Nzg2QjEyMUJFMTc4NkRFRjEyMjM0OTA1NjUyMjQ1Cis6MTAyQjQwMDA5MEZGRjBFMDU0QUJGMEUwNDQyMEYwOTBGQUU2NzQwMjFECis6MTAyQjUwMDBGMDdCMDE3QUZBNzlDRkU0RjUyREY1MkU3RDAxMTIyNjZFCis6MTAyQjYwMDA5ODdFMDA5MEZBRTRFRUYwQTNFRkYwNjQwMTcwMTA5MDBDCis6MTAyQjcwMDBGQUNGRTBCNDUyMDk5MEY5MTZFMDU0RUZGMDgwMjk5MEIyCis6MTAyQjgwMDBGQUU0RTA3MDA0QTNFMDY0MDE3MDEwOTBGQUNGRTBCNEJFCis6MTAyQjkwMDAxMDA5OTBGOTE2RTA0NDEwRjA4MDBEOTBGQUU2NzQwM0U1Cis6MTAyQkEwMDBGMDkwRjkxNkUwNTRFRkYwOTBGRkYwRTA0NDIwRjAyMkFFCis6MTAyQkIwMDAwMzY4MDFGRjQ4MDM2QjAxRkYwODAyNjYwMDAwNDRGQTQ2Cis6MTAyQkMwMDA5ODAwMDAwMDAwNDRGQTk0MDAwMDAwMDA0MkZBQjIwMEFECis6MTAyQkQwMDAwMDQyRkE3RTAwMDA0MkZBN0MwMDAwNDJGOTZERkZGRkRECis6MTAyQkUwMDA0MkZBN0EwMDAwNDFGOTY2RkY0MUY5MUMxOTQxRjkxNUQyCis6MTAyQkYwMDAwMDQzRjkxOTBBMzIwMjQxRjk2ODIwNDFGOTY5MjA0MTdDCis6MTAyQzAwMDBGOTY1MDA0MUY5NjcwMDQ0RjgwMDAwMDAwMDAwNDJGOTRFCis6MTAyQzEwMDAxNjAwMDA0MUY5MTgwMDAxMjAwMDQxRjgwNDAwMDAxMkRDCis6MTAyQzIwMDAxMDRCNzg4QUVGRjYxMjJBQzcxMjIyRUUzMEUwMjk3ODhDCis6MTAyQzMwMDA3QzEyMjJCN0UwNTQ3RkYwNzg2QjEyMUJEODkwMDAwMjEwCis6MTAyQzQwMDAxMjFBQkIzMEU3MDk5MDAwMDJFNDEyMUFGQTgwRTk3ODAwCis6MTAyQzUwMDA3QzEyMjJCN0UwNDQ4MEYwMTIyMkVFMzBFMTFFMTIyMkY0Cis6MTAyQzYwMDA5N0UwNTQ3RkYwMTIzMjE5Nzg2ODEyMUJEODkwMDAwMjU2Cis6MTAyQzcwMDA3NDgwMTIxQUZBMTIyMjk3RTA0NDgwRjAxMjMyODRFNDJGCis6MTAyQzgwMDBGRjEyMzFBOTAyMTBDRTEyMTA0Qjc4ODVFRkY2MTIzMUU3Cis6MTAyQzkwMDA1MDEyMzFBOTc4ODVFNkZGMjQxMzEyMjJBREUwRkUzMEYwCis6MTAyQ0EwMDBFNzE2RUZCNDAzMDk5MEZGOUVFMDU0RkFGMDgwMjI5MEZCCis6MTAyQ0IwMDBGRjlFRTA1NEY1RjA4MDE5RUU1NDAzNjAxNEVGQjQwMzY2Cis6MTAyQ0MwMDAwOTkwRkZBNEUwNDQyMEYwODAwNzkwRkZCNEUwNDQyMDg2Cis6MTAyQ0QwMDBGMDkwRjkxOEUwMTRGMEUwNzAwMkQyQjMwMjEwQ0UxMkI2Cis6MTAyQ0UwMDAxRTFDRTUzQTY0MDk3MDA0RTUzOTY0MDE2MDQ4QzNFNUQ3Cis6MTAyQ0YwMDAzQTk0MDhFNTM5OTQwMDQwMTE3RjA4RUZFNTNBOTQwOENBCis6MTAyRDAwMDBGNTNBRTUzOTk0MDBGNTM5ODAwNUFGM0ExMjFFMzRFNEZFCis6MTAyRDEwMDBGRUVFQzM5RjUwMTkxMjFDQzExMjFBQTJGRDc0RjgyRUE4Cis6MTAyRDIwMDBGNTgyRTQzNEZFRjU4M0VERjAwRTEyMUNCMDgwRTJFRjg0Cis6MTAyRDMwMDA1NDdGOTBGRjgxRjAyMjhCNTk4QTVBODk1QjEyMkUxOTk5Cis6MTAyRDQwMDA3MDA1QTM3NDA4RjAyMkFCNTlBQTVBQTk1QjEyMkUwRDg0Cis6MTAyRDUwMDA5MEZBQzkxMjFCRjNFNTVCMjQwM0Y5RTQzNTVBRkE5MEEzCis6MTAyRDYwMDBGQUMzMTIxQkYzRTQ5MEZBQzJGMDc4OEJGNjkwRkFDMTIyCis6MTAyRDcwMDBFMEZGNzg4QkU2QzM5RjUwMTIxMjJERUJGRjEyMkRGNDZCCis6MTAyRDgwMDAxMjJFMDc3ODhCMDYxMjJFMDM4MEUyMjJBRDA3QUMwNkM2Cis6MTAyRDkwMDA5MDMyMEFFNDkzRkY3ODc0RjY1NDBGMTIxREE4RTAwOEVECis6MTAyREEwMDA3NjAwMDhGNjE4MTIxQ0Q5QzMzM0NFMzNDRUQ4RjlGRkZCCis6MTAyREIwMDA3ODc1RUVGNjA4RUZGNkVFNDRGODE4RjZFRjA4RjY5MEEwCis6MTAyREMwMDBGRjdBRTAyMEU3MDM3RjAwMjI3ODc1RTZGRTA4RTZGNTRCCis6MTAyREQwMDA4MjhFODNFQ0YwQTNFREYwOTBGRjdBNzQwMkYwN0YwMTE1Cis6MTAyREUwMDAyMkFCNTZBQTU3QTk1ODkwMDAwMzEyMUFCQjU0RjAyNERDCis6MTAyREYwMDBBMDIyOTBGQUM5MTIxQkVBMDIxQUEyOTBGQUMzMTIxQjZGCis6MTAyRTAwMDBFQUVGMTIxQUU4OTBGQUNBRTQyMjkwRkFDNEU0NzVGMEU0Cis6MTAyRTEwMDAwMTAyMUIxQzkwMDAwODEyMUI0OEFBRjBGOTdCMDEyMjNBCis6MTAyRTIwMDA5MDAwMDUxMjFBQkI5MEZBQzFGMDIyQUI1NkFBNTdBOTFFCis6MTAyRTMwMDA1ODIyOTBGQURERTBGRjdFMDBDMzkwRkFEN0UwOUZGMEMxCis6MTAyRTQwMDA5MEZBRDZFMDlFRjA5MEZBRDhFRThGRjAxMjFCMUNFRkFECis6MTAyRTUwMDAyNTUxRjU1MUVFMzU1MEY1NTAyMjkwRkZGMEUwNTRGRTJCCis6MTAyRTYwMDBGMEUwNTRGREYwOTBGQUU2RTA2NDAzMjI5MEZGRjJFMDE3Cis6MTAyRTcwMDBBQjI5QUEyQUE5MkIwMjFBRTg5MEZGRjM3NEEwRjAyMjJBCis6MTAyRTgwMDA4RjY0RUQ3MDBGRTU2NEI0MDMwNTdGMDEwMjMxRUY3RkJECis6MTAyRTkwMDAwMjAyMzFFRkFGNjQxMjJBQzc3NDZFMjU2NEY4RTYzMDdGCis6MTAyRUEwMDBFMjBCRDIwOTEyMUQzM0UwNTQ3RkYwODAwMkMyMDlFNTIzCis6MTAyRUIwMDA2NEI0MDMwNzdGODExMjMxRUY4MDA1N0Y4MjEyMzFFRjA2Cis6MTAyRUMwMDAzMDA5MDcxMjFEMzNFMDQ0ODBGMDEyMzI4NDIyMTIxMEMwCis6MTAyRUQwMDA0QjkwRkZGREUwNDQ2MEYwRDIwMTkwRkZGQ0UwNDQwMjIzCis6MTAyRUUwMDBGMDkwRkYwMEUwMzBFNzEzOTBGRjgzRTA0NDgwRjA0MzcwCis6MTAyRUYwMDAzNTgwOTBGRkZDRTA0NDAxRjA4MDBEMTIxRERGNTMzNTVBCis6MTAyRjAwMDA3RjkwRkZGQ0UwNTRGRUYwOTBGRjgxRTA0NDgwRjAxMkRGCis6MTAyRjEwMDAwMkRFMTIxREU3MDIxMENFMTIxMDRCNzg4OUVGRjZEMkI2Cis6MTAyRjIwMDAwMDEyMkFDNzkwRjk2QTEyMUJFQUU5MjQwM0Y5RTQzQTZECis6MTAyRjMwMDBGQUMwMDI3ODgwRTZGRTA4RTZBQTA2RjhBQzAyN0QwMTM3Cis6MTAyRjQwMDBEMDAyMTIyMkQzMTIzMjg0Nzg4OUU2RkYxMjEzODcxMjNDCis6MTAyRjUwMDAzMUE5MDIxMENFOEY2MzEyMkFDNzc4N0MxMjIyQjdFMDAzCis6MTAyRjYwMDA1NDNGRjBFNTgyMjQwNDEyMjJBMUUwNTQzRkYwMTIyM0UyCis6MTAyRjcwMDA0MTI0MEIxMjIyQTFFMDU0RjhGMDEyMzI4NDc0NkUyNTIxCis6MTAyRjgwMDA2M0Y4NzRGQjU2RjY3RjAwMjIxMjEwNEIxMjJBQzcxMjA4Cis6MTAyRjkwMDAyMkZBMjQwNjEyMjI5RkUwRkQxMjIyRTg5MDAwMDMxMjdBCis6MTAyRkEwMDAyMzAyMjQwNTEyMjJBMUUwOTAwMDA0MTIxQUZBMTIzMjIwCis6MTAyRkIwMDA4NDdEMDJFNEZGMTIyRkI0MDIxMENFQUUwNTEyMUQ4RUU2Cis6MTAyRkMwMDBFRjEyMUFGQTBFMEUwRUVFRDM5NTNDRTQ5NTNCNDAwMjNBCis6MTAyRkQwMDBBRTNDRUVEMzk0MDg3NDgwOTQ4MTQwMEE3RTAzOTAwMDQ2Cis6MTAyRkUwMDAwMjc0MDIxMjFBRkFBRjA2MTIzMjZFMjJBRTA3RUQ1NEM0Cis6MTAyRkYwMDAwMzY0MDE2MDAzN0YxMDIyRUQ1NDdDQzM5NDA0NTAwM0VBCis6MTAzMDAwMDA3RjBCMjI3NDZFMkVGODc0MDI0NkY2NzQ5OTJFRjU4MkE4Cis6MTAzMDEwMDBFNDM0RkFGNTgzRURGMDdGMDAyMkJGMDMwNjdDRkY3REU4Cis6MTAzMDIwMDBFMDgwMDQ3Q0ZGN0RFMjhEODI4QzgzRTA0NDgwRjBFNUNCCis6MTAzMDMwMDA4MjI0MDQxMjIyQTFFMDQ0ODBGMDc0NkUyRkY4NzQwNEZDCis6MTAzMDQwMDA0NkY2N0YwMDIyMTIxMDRCRTUzQTY0MDk3MDA0RTUzOTE4Cis6MTAzMDUwMDA2NDAxNjAxNjkwRkY4M0UwNTQwRkZGQzNFNTNBOUZFNURCCis6MTAzMDYwMDAzOTk0MDA0MDA1MTIyOEQ3ODAwMzEyMzI3QTAyMTBDRTFDCis6MTAzMDcwMDA5MEZGRkNFMDIwRTcxRkMyQUY3REZGQUMwNTFERUM2MEI4Cis6MTAzMDgwMDAxNTdFMDQ3RjAwRUYxRkFBMDY3MDAxMUU0QTYwRUM5MEI3Cis6MTAzMDkwMDBGRjkyRTRGMDgwRUYyMjEyMTA0Qjc4NjZFNkZFMDhFNjFECis6MTAzMEEwMDBGRjMwRTAxMjMwRTEwRjkwRkZGQ0UwNDQyMEYwN0YwNDlECis6MTAzMEIwMDAxMjEyNjExMjFERjYwMjEwQ0U4RjIzQzIwODEyMkFDNzA3Cis6MTAzMEMwMDAxMjIyQzA3ODdFMTIyMzQyMjQwQjEyMjJBMUUwNTRGODZGCis6MTAzMEQwMDBGMDEyMzI4NEFGMjMxMjEzODcyMjhFNUY4RjYwRTU2MDc3Cis6MTAzMEUwMDAxNTYwQUU1RjcwMDIxNTVGRDM5NDAwRUU5NDAwNDAwOTQ2Cis6MTAzMEYwMDA3RTA3N0ZEMDEyMTAyNDgwRTUyMjExREMyRUM3MjRCMDc5Cis6MTAzMTAwMDAzMjYwMzA5MDMwM0UzMTZGMkY4MjI3MkUyQzgwMzExMjZBCis6MTAzMTEwMDAzMTMxMUU2NDJGMTEyQzE4MEUxMjEwNEI3ODg2MTIyMzk5Cis6MTAzMTIwMDAzMTIwRTEwNzdGMTIxMjMxQTk4MDBBNzg4NkU2RkYxMjZBCis6MTAzMTMwMDAyNDBBMTIzMUE5MDIxMENFMTIxMDRCNzg4NzEyMjMzMUMzCis6MTAzMTQwMDAyMEUyMDc3RjExMTIzMUE5ODAwQTc4ODdFNkZGMTIyRjRCCis6MTAzMTUwMDA0RTEyMzFBOTAyMTBDRThGNjExMjJGNEVBRjYxMTIyQThBCis6MTAzMTYwMDBDNzEyMjJDMDEyMzI4NDc0NkUyNTYxRjg3NEZENTZGNkJGCis6MTAzMTcwMDBBRjYxMTIxMzg3MjIxMjEwNEJFNTNBNjQwOTcwMDRFNTFGCis6MTAzMTgwMDAzOTY0MDE2MDA1MTIyQ0Q4ODAwNjEyMUUxNDEyMUUxQzEwCis6MTAzMTkwMDAwMjEwQ0UxMjJBNTQxMjEzMDM5MEY4MDRFMEZGNjAwNUM3Cis6MTAzMUEwMDA3RDAxMTIxMkEwMTIyOURFMTIxMzNGMTIxMUJDODBFMzFFCis6MTAzMUIwMDAxMjFEOEVFRjEyMUFGQUU0RjUzM0Y1MzRFRjYwMDMwMkI0Cis6MTAzMUMwMDAzMjdBRTRGRjEyMzI2RTIyOTBGRkYwRTBGRjU0QTA2MEVBCis6MTAzMUQwMDBGN0VGMzBFNTA4OTBGRkYwNDQyMEYwQzMyMkQzMjI5MEFGCis6MTAzMUUwMDBGRkYwRTBGRjU0Mjg2MEY3RUYzMEU1MDg5MEZGRjA0NDZGCis6MTAzMUYwMDAyMEYwQzMyMkQzMjJFRjMwRTcwODEyMUQ0NUUwNTRERjUwCis6MTAzMjAwMDBGMDIyRUYxMjFEOThFMDU0REZGMDIyODEwMTgyMDI4MzQ4Cis6MTAzMjEwMDAwMzg3NDAwMDQwMDA0MDAwNDAwMDQwMDA0MDAwMDgwMDlDCis6MTAzMjIwMDA3ODdFMTIyMkI3QTNBM0UwRkYzMEU3MDY1NDdGRjA0NDc0Cis6MTAzMjMwMDA4MEYwMjI4NTNCMzk4NTNDM0E5MEZGODJFMDU0RjdGMERDCis6MTAzMjQwMDBBM0UwNTQ3RkYwMjJFNEZFRUU5MDMyMDQ5M0I1MDcwMjJGCis6MTAzMjUwMDBEMzIyMEVCRTA3RjJDMzIyMDAwODE4MjgzODAxODE5MDNECis6MTAzMjYwMDAwQTAyMDAwMDExMTMwMDEyMTA0QjdGMDIxMjEwREExMjMyCis6MTAzMjcwMDAxREY2MDIxMENFNzUzOTAwOEYzQTEyMUNFMDEyMkNEOEMwCis6MEUzMjgwMDAyMjEyMUUxQzEyMURERjEyMUUxNDIyQzIwODIyNzIKKzowMDAwMDAwMUZGCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyogRWRnZXBvcnQgQmluYXJ5IEltYWdlIChmb3IgVEkgYmFzZWQgcHJvZHVjdHMpCisvLyogR2VuZXJhdGVkIGJ5IFRJQmluMkMgdjIuMDAgKHdhdGNocG9ydCkKKy8vKiBDb3B5cmlnaHQgKEMpIDIwMDEgSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VtaTI2L2JpdHN0cmVhbS5IRVggYi9maXJtd2FyZS9lbWkyNi9iaXRzdHJlYW0uSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NGQzZjYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lbWkyNi9iaXRzdHJlYW0uSEVYCkBAIC0wLDAgKzEsNDM5MSBAQAorOjEwODAxMDAwRkZGRkZGRkZBQTk5NTU2NjMwMDA4MDAxMDAwMDAwMDdBRQorOjEwODAyMDAwMzAwMTYwMDEwMDAwMDAwQjMwMDEyMDAxMDA4MDNGMkQ3NQorOjEwODAzMDAwMzAwMEMwMDEwMDAwMDAwMDMwMDA4MDAxMDAwMDAwMDk5NQorOjEwODA0MDAwMzAwMDIwMDEwMDAwMDAwMDMwMDA4MDAxMDAwMDAwMDEyRAorOjEwODA1MDAwMzAwMDQwMDA1MDAwM0UwNDA4MTIxMDAwMDAwMDAwMDBGNAorOjEwODA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwODA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDRCQworOjEwODA4MDAwODAwMDAwMDAwMDAwMDAwMDAwMTIxMDAwMDAwMDAwMDA0RQorOjEwODA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwODBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwODQwQworOjEwODBCMDAwODAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAzRQorOjEwODBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwODBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDA5OAorOjEwODBFMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDBDRQorOjEwODBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwODExMDAwODAwMDAwMDAwMDAwMDAwMDAwMTIwMDAwMDAwMDAwMDBDRAorOjEwODEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwODEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzQgorOjEwODE0MDAwODAwMDAwMDAwMDAwMDAwMDA4MTMwMDAwMDAwMDAwMDA5NAorOjEwODE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwODE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwODE3MDAwOTAwMDAwMDAwMDAwMDAwMDAwMTIwMDAwMDAwMDAwMDA1RAorOjEwODE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwODE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQ1QgorOjEwODFBMDAwOTAwMDAwMDAwMDAwMDAwMEY3MTAwMTE0MDAyNTAwMDVGOQorOjEwODFCMDAwNDAwMTUwMDA5NDAwMTUwMDA3NDAwMUQwMDA5NDAwMjVCNAorOjEwODFDMDAwODAwMTYwMDJEODAwRjYwMDJGODAwMkUwMDREODM3NDQxNgorOjEwODFEMDAwOTAwMDAwMDAwMDAwMDAwMEMwMDVGMjAwQ0M5MDM5MjBBMworOjEwODFFMDAwMEQ5ODAzRDIwMEU3ODAzNzA0MEVGMTgzN0UwMERGOTAwNAorOjEwODFGMDAwMzFFNDhGNzkwMzdDMjBERjIyMzNDMDBDRjAyMjMwMDA4MQorOjEwODIwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTA2MjAwODAyNDIyMjAyNgorOjEwODIxMDAwMDg5ODEyRTIwMDhCODEyMDk0MDg3NDAyMkUwMDhBMDFEMworOjEwODIyMDAwMjJDODA4OTIwMjNEODA4QjYwMjI4MDA4QjAwMjIwMDRBMAorOjEwODIzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDODAwQTAwMDIwMDBGOQorOjEwODI0MDAwMEIxMDAyQzAwMEExMDAyNDA5NEEzMjAyNDgwMEIxMDAwQworOjEwODI1MDAwNjJDMDA5QTA0NkNDMjQ5MzQ5MkE4MDQ4MzAyMjYyMDE5QQorOjEwODI2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBODEyQTgwMDIyMDA0NQorOjEwODI3MDAwMDg5MDAyRTAwMDg5ODAyMjQ0MDhCMDEyQTgwMEE5NDBCQQorOjEwODI4MDAwMjJDMDA4OTA4MkFDMDA5QjA0MkFDNDA4QjAwMjcwMDQ4QgorOjEwODI5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTQ4NDAwRTk4MEIyNjQ2NworOjEwODJBMDAwNERBMDAzRUEyMEU5QzAzNjQwMEVCMDAzNDQwMEZCOTAyNQorOjEwODJCMDAwQjI4ODBEQkMwM0VDMDg1QjAwMzg2MDJDQjA2MzQwMDQ0RQorOjEwODJDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDI2REQ5MDM3NDA5RgorOjEwODJEMDAwNEZFMDEzRjI4MEZEMDAzREEwMEQ3MDAzNzUwMDVFMDBCRAorOjEwODJFMDAwM0ZBNDBERjkwMzVDMTBFQjAwMzcyMDBGMzAwM0I4MDBGQQorOjEwODJGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRTk4MDMyNDA0NworOjEwODMwMDAwMENBMTgzRTgwMEU5MDAzMjQyMEVCMDAzQUM0OEU5MDA1QQorOjEwODMxMDAwM0E4MDBFQTQwM0VDMDBFQjAwQjIwMzBFQjAwQjEwMDQ4NQorOjEwODMyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyRTgwODlEMTIwNDBGOAorOjEwODMzMDAwMDhBMDAyQzAwMDgxODAyMjU4MDhGNTAyMkY0MDhCMDA1RgorOjEwODM0MDAwMjBDMDA4MzA0MzdDMDA4NzAwMjI0MDA4RjAwMjMyMDA0MQorOjEwODM1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0MjAxOUE0NDI4QTIwRAorOjEwODM2MDAwMDgxODAyQzA4MEExODBBMDAwMDgzMDAyOEUwMEFCMDA3NworOjEwODM3MDAwMkM0MDBBMzAwMjBDMDBBMzAwMjA0NDBBMzAwMjM4MDBDRQorOjEwODM4MDAwNTAwMDAwMDAwMDAwMDAwMDYwMDEzMjAwOTY4MjJCQTIyNQorOjEwODM5MDAwODg1QTAyRjIwMDA1ODAyOUEwMDg3ODQyQkUwMDhFODQyNworOjEwODNBMDAwMkY2MTBBRDgwMjRFMTBBNzgwMjAyODA4NzgwMjE4MDBGMgorOjEwODNCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODAwRjIyNDM4ODA1NworOjEwODNDMDAwMkMxQTAzQzQwMEUwNThBMDgwMkUzMDAzODg0MUUzMDIzOQorOjEwODNEMDAwM0M0MDA2MjAwMzhDMDBFMzAwMTAwMDBFMzE0MzEyMDJFMworOjEwODNFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5ODAwRUUwMTM3ODRFRQorOjEwODNGMDAwOUZEOTAzRjA0OEZEMTAzN0MwMDdCMDAzNUMwMEY2MTBBQQorOjEwODQwMDAwMzNDMDBERTEwM0VEMjBERjEwM0Y0ODBGRjAyM0QwMDYwRAorOjEwODQxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAyQ0I4MDMwQzAyRQorOjEwODQyMDAwMENBMDAzRTIwMkM5MDAzQTQwMERCNjAzNjQwMEVCMDA2MQorOjEwODQzMDAwM0VDMDBGQjAwM0VEMDBGQjAxM0VFMDBDQjAwMkVBMDBDRAorOjEwODQ0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAwODcwMDIxQzA2NworOjEwODQ1MDAwMjg2MDAyRDAwMDg1MDAyRDgwNDhGMDgyMUMwMEI3MDAwMworOjEwODQ2MDAwMkQwMDBCNTAwMkRDMDBCN0EwMkY4MDI4N0EwMkQyMDQyNgorOjEwODQ3MDAwNjAwMDAwMDAwMDAwMDAwMEMxMDBCRTAwODc4MDIxRTAxNQorOjEwODQ4MDAwMjg2ODAyRDcwMDg0ODAyREUwNDk3OTA2NTMwOUI1ODAxOQorOjEwODQ5MDAwMkRFMjBCNzgwMkRFODBCNzkwMkRCMDA4NzkwMkYwMDA1MworOjEwODRBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzEwODMwMTI4QzgwMAorOjEwODRCMDAwMDgyMDAyQzIwNjgxMDAyQ0M4ODgzMDYyMEUyMUIzQTBCOQorOjEwODRDMDAwMkNDMTBCQjYwMkNDMDBCMzAwMkNFMDA4MzAwMkQyMDQ2MQorOjEwODREMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwQ0E0MEIwODA4RAorOjEwODRFMDAwMEMyQzAyRjgwMEM2MjAzRjkwMERBMDAzN0IwMUVFRTBBQgorOjEwODRGMDAwM0ZCNDBGRUMwM0U4MDBGQTAwM0ZBMDBDQTAwM0ZBMDQxRAorOjEwODUwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMzAwRjgwOTI2MDBCOQorOjEwODUxMDAwMEZDMTgzRTAxMEY4NDAzQzAwMEY4MDAzRTAwMUY4MDAzOQorOjEwODUyMDAwM0UwMDBGODEwM0UwMDRGODAwM0UxMDBGODAwM0QyMDBFQworOjEwODUzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAyQzkwMDNFNDBDNgorOjEwODU0MDAwNEY5MDYzMjY4NDM5MDJCMjQwMEM5MTAzMjQwMEY5MDA1NQorOjEwODU1MDAwM0U0MDBGOTAwMzI0MDBGMTAwM0E0NDBGOTAwM0MyMDQwMAorOjEwODU2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ0NTAwODk0MDJFNDBEQgorOjEwODU3MDAwMDg5MjBBMjQwMEI5MzEyMjYwODg5NDhBMjQyMEI5MDAyNAorOjEwODU4MDAwMkU0MDBCOTAwMjI0MDBCOTAwMjI2ODBCOTAwMkUwMDBGQworOjEwODU5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNEEwOEQ4NDJGNDA2QQorOjEwODVBMDAwMEJEMTAyMjQwMEI5MDAyMjRBMDgxMDAyMkM0MEI5MDA2NQorOjEwODVCMDAwMkU0MDBCOTAwMjI0MDBCOTAwMkE0MDBCOTAwMkM2MDAwNgorOjEwODVDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQxNDAwODU4MDJENDBEOQorOjEwODVEMDAwMDg1MDAyMDQwQ0I5MDBBMDUwMDgxNDIyMDQwMEIxMDA5NQorOjEwODVFMDAwMkM0MDBCMTAwMjA0MDBCMTI4MjA0QTBCMTMwMkMyMDFEOAorOjEwODVGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwQzA1MDNFODA4OAorOjEwODYwMDAwMEZDMDQzMjAwMEY4MDAzMDAwMkM4MDIzMjAwMEY4NTFEOAorOjEwODYxMDAwM0UxNDhGODUwQjIxNDBGODcwM0EwODBGODQ4M0VFMDNENworOjEwODYyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURDNDAwRjkwNDNFNDAwNgorOjEwODYzMDAwMEY5MDIzRDQwMEZEMDAzRjUwMEY5NDAzRjQwNEZEMDA3RAorOjEwODY0MDAwM0Y0MThGRDA0M0U1MENGOTAyM0Y0QTBGOTIwM0U2MDIwNworOjEwODY1MDAwNzAwMDAwMDAwMDAwMDAwMDg4MDVENDAxRkQwMDNENDBDRQorOjEwODY2MDAwMENEMDEzRjQwMEQ1MDAzMzZBMUNEQzgzMzQwMEQxMDQzMQorOjEwODY3MDAwM0U1MDBDOTEwM0U2QzBEREIwMzM2QTJDOUM4M0U2MDBDQgorOjEwODY4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDA5Rjg4MDJFMDBBMworOjEwODY5MDAwODg4MDAwRTgwMEJBMDAyMkIwMDg4RTAyMjgwMDg4QTg2RQorOjEwODZBMDAwMjYyODA4OEEyMkUyMDA4OEU0MjIzMDA4OEMwMkNFMDRDMAorOjEwODZCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEyODJFNDA3MgorOjEwODZDMDAwMDgxMDAyQzQwMDk5MDAyMDQyNDgxMDAyNjQwMTkxODAwMQorOjEwODZEMDAwMkM0ODA4MTAwMkM0QzA4MTQwMjA0QTA4MTIwMkMyMDE3RQorOjEwODZFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDk0QTkwMjJFNDA5QworOjEwODZGMDAwMEE5MDAyNjQwMEI5MDA4MjYwMDg5MDAyNjYwMDg5MTA0NgorOjEwODcwMDAwMjQ2MjA4OTAwMkU0MDA4OTAyMjI0MDE4OTAwMkM2MDQwNAorOjEwODcxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNjAwQjkwNDNFNDAyMworOjEwODcyMDAwMEM5MDEzRTQwMEQxQzAxMjUwMjg5MDAzNDQwMEQ5MDBFQgorOjEwODczMDAwM0U0MDI4OTIwM0U0MDJEOTAwMzI0MjhDOTAxMkU4MDRCMQorOjEwODc0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNjIwRjkwMDNFNDE1MgorOjEwODc1MDAwMkQ5MDAzRTQwMEY5MjAzRTQwNEY5MDAxQTQwMEY5MDA2MQorOjEwODc2MDAwMzY0MDhGOTIwN0U0MDBGMTAwQkU0MDBGOTAwM0NBMDAyQworOjEwODc3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwQzgwMDNFMjA5QgorOjEwODc4MDAwMEM4MDAzRTA0MEY4MDAzNjEyMkMwMDAzRTBDMEY4MDAzMworOjEwODc5MDAwMzIxMDBEODQwM0EwMDBGODAyM0UwODBGODAwMENBMDRDNgorOjEwODdBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzQTkwOEUwMDJEQTA1NworOjEwODdCMDAwODBFODAyRkEwMEJFNDAyMzgwMDhFODAyRkEwMDhBMDAzRQorOjEwODdDMDAwMzY4MDA4QTAwMkU4MDBCQTAwMkY4MDBCQTAwMzhBMDBDMAorOjEwODdEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0NjAyODMwMDJDODBCNQorOjEwODdFMDAwMDgyMjQyQzY4MEIxNjAyRUY0MDgzODIyQ0UwMEEzMDBEMQorOjEwODdGMDAwMjBDMDA4MzAwMkFDMDBCMTAwMkU0MDBCMzAwMkNBMDA4RAorOjEwODgwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTAyODUwMTJEQzJFMgorOjEwODgxMDAwQTg0NDAyRDQwMEJEMDEyOTQwMTg2OEQyREMwMDhGODAzMgorOjEwODgyMDAwMjVDQzI4NzM0MkRDODBCNTMwMkRDMDFCNzIwMkU4MDBENQorOjEwODgzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTA0QzY4MjNERTBDMQorOjEwODg0MDAwMEM0ODEyRDYxMEY1ODAzQ0EwMEM3MDAzREUwMEU3OTBCNworOjEwODg1MDAwMjNFQTA0N0EwMzlFMDBGNTgwM0RFMDBGN0EwM0VBMDJFMgorOjEwODg2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MERBQzAwOUMwMDNFQzBBRAorOjEwODg3MDAwMEY4MDAzRTQxMEY5MDAzNjAxMEZBMDAzQzAwMEVCMDBFNQorOjEwODg4MDAwM0VEODRFQjA4M0VDMDBGOTAwM0VDMDBGQjQ0MzgyMDZFMAorOjEwODg5MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDVERTAwQ0Y4NDMxRTA3MQorOjEwODhBMDAwMEVDODQzRDYwMENEODAzM0UwQ0REOTAzM0EwMEZGODgwRgorOjEwODhCMDAwMzNFMDBGRjkxM0ZFMjRGRDgwM0YyMDBDRjY4MzEwMDBGNworOjEwODhDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwODUwMDIxQzQ3OQorOjEwODhEMDAwMjg0MDgyRDAwMEQ1MDAyMzgwNDhDOTAyMUMwMEI3MDA4MAorOjEwODhFMDAwMjFDMDBCNzEwMkRFODBCNTEwMkRDMDI4RjAwMjJBMDREMQorOjEwODhGMDAwNjAwMDAwMDAwMDAwMDAwMDEwMDA5QzAwOTYwMDIxQzBGNQorOjEwODkwMDAwMEE0MTAyRjU0MDhEMDAyMTQwMDk1MjAyOTgyMEI3MDAyQgorOjEwODkxMDAwMjFDMDBCNzAwNkRDODBCNTAwMkRDMDA4NzAwMjA0MDA3OQorOjEwODkyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDQzEwOTgwMDAwQzA3RgorOjEwODkzMDAwODgwNDgyQzAwMDkxMDQyMDAzMDkwMDAyOEEwMEIzMEE1RgorOjEwODk0MDAwMjBDNDhCMzQwMkNDMDBCOTAwMkNDMDAwMzAwMjE4MDRDMworOjEwODk1MDAwMzAwMDAwMDAwMDAwMDAwMEY4MTVBQzAwREIwMEIwQzBFMworOjEwODk2MDAwMEU5QzAyQzUwMEMxMTBCMkMwMERCMDBCQTcwOEZGMDBERAorOjEwODk3MDAwQjNDMDBGRkEwM0ZDMDBGRDAwM0VENDBDRjAwQjJFMDQzNAorOjEwODk4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzA0RUQwMDNFNDBBQworOjEwODk5MDAwMEY4NDAzRTU0MEY5NDAzRTYwQ0VCNDQzNjQwMEZCODBBMQorOjEwODlBMDAwM0VDMjBGQjAxM0VDMDBGOTAyM0VDMDRGQjAwM0UxMDAyRAorOjEwODlCMDAwMzAwMDAwMDAwMDAwMDAwMDkwMTBGRjAwQ0UwMDMzQzAyNworOjEwODlDMDAwMEVDMDA3NzQwNEVDMDAxMTgwMENDQTAzRkU2MEZGMDBBNworOjEwODlEMDAwM0ZDMDBGRjA4MzNDMDBERDAwQjM1MDJDRjAwMzIwMDRCNworOjEwODlFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDA0QzA0OEIwQjIyNzA1RQorOjEwODlGMDAwMDgwODAzNjcyMDhBODhBMjAwMjg4NDAyRTcwMEJCMDBEOQorOjEwOEEwMDAwM0VDMDBCQjAwMjJDMDBCOTAwMjI2MTA4QjAwMzYwNDBFOAorOjEwOEExMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIyMDIyRTJFNgorOjEwOEEyMDAwMEE4QzAyMjYwMEE5ODAyQUMwMDhCNDQyRUQwMEJCMDBDRgorOjEwOEEzMDAwMkVDMDBCMzAwMjJDMDBCOTAwMjA4MDA4MzAwMjYwMDBFQworOjEwOEE0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwRTAxODEwMEEwQzBFQQorOjEwOEE1MDAwMDg4MTAyNDQwMDgxMDAyODgxMDgzMjAyQ0MwMEIzMDA2MgorOjEwOEE2MDAwMjhDMDBCMzAwMjBDODBCMTAwMjBDMDA4MzAxMjQyMDEzNworOjEwOEE3MDAwMDAwMDAwMDAwMDAwMDAwMDgwMEQ2QzAwQzIwMTMyQzA0OAorOjEwOEE4MDAwMkU4MDE2MkMwOEU5MDAzQTQwMEM4MDAzRUMwMEY3MDAxOQorOjEwOEE5MDAwMkZDMDBGRjAwQjJDMDBEOTAwMzA0MDBDRjAwMzYwMDMwNgorOjEwOEFBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMERGODA4RkYwMDNGQzBDQgorOjEwOEFCMDAwMEZDMjE3RkMwMEY3MDAzNzAwMEY4NDAzRkMwMEZGMDAxMworOjEwOEFDMDAwM0ZDMDBGRjAwM0VEMDBGRDAwM0Y0MDBGRjAwM0U4MDY0QworOjEwOEFEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwQ0YzMDE3NDgwNworOjEwOEFFMDAwMEM1OTAzQjkwMERGMjgzNTI0MEQ4MkEzN0M4MEZGMDBEOAorOjEwOEFGMDAwM0ZDODBGRjIwM0U0QTBFRjgwM0ZFMThDRDg0MzMwMDA4MQorOjEwOEIwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFRDQ4ODkzNEEzNzA2MAorOjEwOEIxMDAwMjhCMDIzNjAwMDhCQzAyMjQwMDhCNDgyMkY0MEJGRDExMAorOjEwOEIyMDAwNkZGNDhFQkQwMkU3MDBCQjgwM0FFMDA4OTgwQTI4MDQ4MworOjEwOEIzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNEIwOTEwMEE4NTA3QgorOjEwOEI0MDAwMDhCMjAyQzg4NDkzMDAyNDQ5MEIwMjAyNEMwMEIzMDQwQgorOjEwOEI1MDAwMkNDMDBCMzA0Mjg0MDBCMzAwMkUwMDBBQjAxMjIyMDE1OAorOjEwOEI2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTFBQzAyOTkxODJBNDRGNworOjEwOEI3MDAwMDhCODgyQTIwMUJCMDAyODYwMEFBMDEyNkMwMEJCMDBFQQorOjEwOEI4MDAwNkVDMDBBQjAwMkU0MDBCQjAwMkEwMDJBQjAwMjM4MDQxQQorOjEwOEI5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTFFNDA4REFDMDNBNjAwNAorOjEwOEJBMDAwMEMxODBBRUIwNERCMDAzNkUwMDc4NTgzNkMwMEZCMDA0MQorOjEwOEJCMDAwMkVDMDBGQjA0M0U0MDBFQjAwM0U4ODBFMTgwMzEwMDRGMworOjEwOEJDMDAwNzAwMDAwMDAwMDAwMDAwMEUwNDE5QzEwRTkwMDM3NjBFOAorOjEwOEJEMDAwODdGMDE3NzAwMENGMDEzN0MwNEM5ODAzQkMwMEZCMDAzMgorOjEwOEJFMDAwM0ZDMjBGRjAwM0U0MDBGRjQwM0ZFNDBERDkwM0YwMDA2MworOjEwOEJGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNDAwRjQwMDMwNDBCRAorOjEwOEMwMDAwMEZCNDAzOTkwMEZCMDAzRUMwMEQwNDIzMkMwOEZCODgyMQorOjEwOEMxMDAwMzJDMDBGQjAwM0U2MDBEQjEwM0UwMjBGQjA4M0QwMDQ3OQorOjEwOEMyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQjk1MEEyNDgzOAorOjEwOEMzMDAwOEJCMDAzMjAwMEQ3ODAyRUQ4MDA4MDAyM0MwMEJGODA3QworOjEwOEM0MDAwMjNFODhCRjAwMkY0NDA4QjQwMEM0MjAzQjYwMkYyMDBBMgorOjEwOEM1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjI0NDAwQzhFNQorOjEwOEM2MDAwMEIzMDEyOEMwMEEzODAyNEM4MEIwMDBBQ0MwMEIzNDQ0NAorOjEwOEM3MDAwMDRDMDFCMzYwMkM1MDE4MzBDMkNBMDBCMzAwMkY4MDA4NworOjEwOEM4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTA4Qjc5MDIxNjQ4MQorOjEwOEM5MDAwMEJGODAyNEEwNDk3ODEyRkU0MEE3ODAyOUUwMEI3ODBGRAorOjEwOENBMDAwMjFFMDhCNzg4MkQ2ODY4Nzg0MkRBMDBCNzgwMkMwMDBDNQorOjEwOENCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwNDAwRjIwMDMwQzAzRQorOjEwOENDMDAwMEYzMDAzOEMwMEUzMEEzQ0MwMEYxODAzOEMwMEYzMDI0MgorOjEwOENEMDAwMzBDMDFGMzAwMUM2ODBDMzAwM0NDMDBGMTIwM0RBMDI0RgorOjEwOENFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMERCQzAwRkYwMDNGNDFGQworOjEwOENGMDAwMEZGMDAzQjgwOEZGMDgzRkMwMERGMDAzM0MyMEZGMDg0OQorOjEwOEQwMDAwM0JEMjBGRjAwM0Y0NDBFRjAwM0ZDNDBGRDAwM0QwMDY3NgorOjEwOEQxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAwRkUwMDMyQzI3MAorOjEwOEQyMDAwMEMzMDBCMjYwMEZCODAzNkMwMERBMDAzRUMwMEZCRTBFRQorOjEwOEQzMDAwMzJEMDBGQjg0MzY0NDREQjA0M0U4MDBGQjAwM0UyMDAzRQorOjEwOEQ0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjcwMEExQzBBNgorOjEwOEQ1MDAwODg3MDAzMTAwMEI3MjAyMUMwMDg3MDAyREM4MEIzMzA5NworOjEwOEQ2MDAwMzFDODBCNzQwMjE0MDA4NzQwMkRDMDRCNzAwMkQyMDAzMgorOjEwOEQ3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5NjIwQjY4MDIwRTBFNworOjEwOEQ4MDAwMjhGODAyOTQxMEI3ODEyN0UyMDk3ODAyREUwMEI3QTAyNAorOjEwOEQ5MDAwQTlFODBCMzgwMjc2MDA4NzgwMkRBMDBCNTgwMkYwMDA1RQorOjEwOERBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRTEwQjMwMDIwQzREMgorOjEwOERCMDAwMDgyMDAyODAxMEIzMDAyMkM4MDhCMDAyQ0MxMUIzMDIxMAorOjEwOERDMDAwMjhDMDBCMzAwMjA0MDA5MzgwMkNEMjBCMTAwMkQyMDQ3NgorOjEwOEREMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkU0MDMyQTBBRQorOjEwOERFMDAwMENFNDAzOTg4MEZBMDAzN0EwMERFMDgzRTgwMEZFMDA1MQorOjEwOERGMDAwM0E4MDBCQTAwMzY4MDBEOEEwM0Y5MDBGQTAwM0ZBMDRBQworOjEwOEUwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDA4RjgwODNFMDA5NAorOjEwOEUxMDAwMEY4MDAzMjAwMEY4NDAzRTAwMEY4MDAzRTAwMEY4MDRCQworOjEwOEUyMDAwMzAxMDBGODAwM0UwMDJFODAwM0UwMDBGODAwM0QyMDAwNAorOjEwOEUzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjEwMDMyNDBBMworOjEwOEU0MDAwMEU5MDgzQTQwMEM5ODAzRTQwMEU5MDAzQTQwMEY5MDA1OAorOjEwOEU1MDAwM0U0MDBDOTAwM0U0MDBDODAwM0U0MDhGOTAwMzAyMDRBMworOjEwOEU2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk0MEEwNjJFRgorOjEwOEU3MDAwMDgxMDAyMjQxMDg5MDAyRTQwMDg5MDAyMjQwMEI5MDAzNgorOjEwOEU4MDAwMkU1MjA4OTQwMkM0MDA4OTQwMkU0MDBCMTAwMzYwMTAzQgorOjEwOEU5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkxODIyNDQ0QQorOjEwOEVBMDAwMEE5MDAyQUMwMDg5MTAyRUMwMEE5MDAyQTQwMEI5ODA3QQorOjEwOEVCMDAwMkU2MDA4OTgwMkU2MDI4OTA4MkU0MDBCOTAwMjA2MDBGOAorOjEwOEVDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwQjEyMEEwNDgxOQorOjEwOEVEMDAwMDg5MDAyMjQwODgxMjMyQzUwMDgxMDAyMDQ4MEIxMjAzRAorOjEwOEVFMDAwMkM0ODI4MTIwMkU0ODA4MTIwMkM0MDBCOTgwMjQyMDU3NQorOjEwOEVGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg1MDMyMDA5MgorOjEwOEYwMDAwMEU4NTAzQTFFMENBMDAzRTAwMEU4NTAzQTAwMEY4MDAxNAorOjEwOEYxMDAwMkUwMDlDQTAwM0UwMDBDODI4M0UwMDBGODAwMzJFMDExNQorOjEwOEYyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwRjUxMDNGNDQ4MAorOjEwOEYzMDAwMEZEMDAzRjQwMEYxMTAzRDQwOEZENDAzRTQ1MEY5MTAzQQorOjEwOEY0MDAwM0U0NTBGOTEwM0Q0NDBGQzAwM0ZDMDhGRDAyM0U2MDQ4MAorOjEwOEY1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNjIwQ0RBODMzNDA5NgorOjEwOEY2MDAwOEREMDAzMjY4MENEMDAzRDUwMEM5QTAzNjQwMEY5QTBGQgorOjEwOEY3MDAwN0E2QTBGOUE2M0U2ODBDOTgwM0U0MDBGOTAwMzA2MDAyQworOjEwOEY4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTAwODhFMDM2MDBBQQorOjEwOEY5MDAwMDg4MDBBMjE0MkM4MDAyRTI5MENBNDQyMjAwMEI4NDBCMworOjEwOEZBMDAwMkUwMDBCODEwMkUxMDA4ODAyM0EwMTBCQzAwMjBFMDQ4MAorOjEwOEZCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAyODEwODI0NDBDMQorOjEwOEZDMDAwMDkxMDAyMDQwMDkxMDAyQzQwNEIxNDAyNDQwMEI1MTAxQgorOjEwOEZEMDAwMjk0MDBCNTAwMkY1MDBCNTAwMkQ0MDBCRDAwMjAyMDFENAorOjEwOEZFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNjAxODkwMDI2NDA1MgorOjEwOEZGMDAwMDg5NDAyMjQwMTg5MDAyRTQwMUE5MDAyNkMwMEJGMDJERQorOjEwOTAwMDAwMkY0MDBCRDAwMkY0MDJCRDgwMkI0MDhCRDgzQTA2MDRDRgorOjEwOTAxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwQzkwNTM2NDExMgorOjEwOTAyMDAwMEQxQzAzMjQwMEQ5MDAzRTQyMkY5NDAzNjQwMEY5MDA3NAorOjEwOTAzMDAwM0E0MDBGOTAwM0M0MDBGOTAwM0U3MDBGMTAwMzI4MDQ1QgorOjEwOTA0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NDA4RjkyNDNFNDA2MAorOjEwOTA1MDAwMEY5MTAzRTQwMEY5MDAzRTQxMEQxMDAzQTQwMEY5MDA1NAorOjEwOTA2MDAwM0U0MDBGOTAwM0U0MDBDOTAwM0U2NDBGOTAwM0NBMDAyNQorOjEwOTA3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDA4Qzg4MDMyMDIzNAorOjEwOTA4MDAwMEY4MDAzMDAwMEM4MDgzQTEwQ0U4NDAzRTAwMEZDMDAwMworOjEwOTA5MDAwM0YwMDhGQzAwM0YwODBGQzAwM0YxODBGQzA0M0NBMDQ5QworOjEwOTBBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEUwMEExODA5QworOjEwOTBCMDAwMEJFMDAyMjgwMERFQzIyMzkwMDBBMDAyRTgwMEJBMDAwNAorOjEwOTBDMDAwMkU4MDBCQTAwMkU4MDBGQTAwMkU4MDBCQTAwMkNBMDAzRQorOjEwOTBEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTk4MTYwQzA5RAorOjEwOTBFMDAwMEIxMDAyMEMwMDkwMTAyQUZDMEIzMDAyQ0MwMEIzMDBENQorOjEwOTBGMDAwMkNDMDBCMzAwMkNDMDBCMzAwMkNDMDBCMzAwMkNBMDBENQorOjEwOTEwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzgyOTU0MDIxQzAxQQorOjEwOTExMDAwMEI1MDAyMUM4MDkwODAyMzAxMDk3MjEyREMwMEI2MDAwMworOjEwOTEyMDAwMkQwMDBCNDAwMkQwMDBCNDA5MkQwMDRCNDA4MkU4MDAxNgorOjEwOTEzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTgwREQ4MEIxRTA5MworOjEwOTE0MDAwMEZEQTAzMEY4MEQ0ODAzOUUwMEI3QTAzREUwMEY1ODA1QworOjEwOTE1MDAwM0QyMDBGNDgwM0Q2MTBGNjgxM0RFMDhGNjgwM0VBMDJGOAorOjEwOTE2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRUQwMDNFMDAwMworOjEwOTE3MDAwMEY5MTBCRUMxMEY4MDAzRTAwMEVCMDAzRUMwMEY4MDA2RAorOjEwOTE4MDAwM0VDMDRGQjAwM0U4MDBFOTAxM0UwMDBGOTAwM0MyMDY2NQorOjEwOTE5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTIwQkY4MTMzQTQzNQorOjEwOTFBMDAwOEMxOTAzM0UwMENEODAzRkUwMEZGODgzM0UwMEVGODAzNgorOjEwOTFCMDAwM0ZFMDBGRjkxM0ZBMTBGRDgwM0ZBNDBGRDgwM0MwMDA2MQorOjEwOTFDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQkYyMDMxQzIwOAorOjEwOTFEMDAwMDg1QTAyM0MwMjg3MDAyRDk0MEI3MDBBMUM0MDg2MTAyRQorOjEwOTFFMDAwMkQwMDBCNDAwMkQ0MDBGNjAwMkQ0MDRCNjAwMkVBMDQzMworOjEwOTFGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcwMTIzODAxOAorOjEwOTIwMDAwMjg1MDAyMUMwMDg0MDAyREMwMEIzMDAyMUMwMEI1MDA0OQorOjEwOTIxMDAwMkQwMDBCNDAwNkQwNDBCNDA4MkQ4MDBCNDgwMkMwMDA0MgorOjEwOTIyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwQjMwOEEwMjBBMworOjEwOTIzMDAwMDgxMThBMEUwMDgwMDAyQzkwMEIzNzAyMEMwMDkwMDA2MQorOjEwOTI0MDAwMkNDMDBCMzA0MkNDMDRBMzgwMkM1MDBCMzAwMkM4MDQzRAorOjEwOTI1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwRjk4MDMyNjA1QQorOjEwOTI2MDAwMENENDAzM0M4MDg4MDAzRUQwMEZGODAzMjgwMEZBMDA5RAorOjEwOTI3MDAwM0VDMDBGQjAwN0VDMDFCQjgwM0U1NDBGQjAwNkVBMDRCRAorOjEwOTI4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFRTA4Rjk4MDNBQzA5NQorOjEwOTI5MDAwMEY5MDAzRUMwMEY4NDAzRTU4MEZCMDQzRTkwMEVCNDQ1OAorOjEwOTJBMDAwM0UwMDBGODAwM0UwMERGODAwM0U4MDBGODAwM0UwMDBEOQorOjEwOTJCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQ0YwMDMzNDA0RgorOjEwOTJDMDAwMENEMDAzM0MzMENDMDAzQkMwMkRGMDAzRDgwMkNDMDBDNgorOjEwOTJEMDAwM0QwMDBDQzAwM0Y0MDBFRTAyMzc0MDBDRTAwM0MwNDQzNAorOjEwOTJFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzE4ODM4NDIwMDAxRQorOjEwOTJGMDAwNEExMDAyMEMwMEE4NDgyRTYwMDhCMDAyRTkwMDg5NDAxQworOjEwOTMwMDAwMkVDMDA4QjAwMkU4MTBCMTAxMjA4MDBBOTAwM0EwNDBFRQorOjEwOTMxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEI4MjIyMDg1NQorOjEwOTMyMDAwMDg5MDAyMkMxNDg4MDQyQzA4MDhCMDEyRTgwMDhBMDA2NworOjEwOTMzMDAwMkVDMDBBQjAwMkU4MDFCOTAwMjYwNDA4OTAwMkUwMDAzRAorOjEwOTM0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODM4MEEyQzA2MAorOjEwOTM1MDAwMEE5MjAyMkMwMEEyMDAyQzAwMDgzNDAyQzgwMDgzMDBFQworOjEwOTM2MDAwMkMwMDI4MDAwMkM0MDFCQTAwMjJDMDAyMjAwNkMyMDE1QgorOjEwOTM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQ0EwMEIyMDBGOAorOjEwOTM4MDAwMEM5MjBCMkMwNEM4MDQzQTAwMENCNDAzRTgwMEM4MDA4QgorOjEwOTM5MDAwMkUwMDBDODAzM0UxNDBFODAwMzYwMDBDODAwM0MwMDM0RgorOjEwOTNBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDNEMDA3OAorOjEwOTNCMDAwMEZEMTBCRkMwMUZDMDAzRjAwMEZGMDAzRDgwMEZEMDBCMworOjEwOTNDMDAwM0ZDMDBGRjAwM0ZDODBGRjAwM0ZDMDBGRjAwN0E4MDY2RQorOjEwOTNEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVGMzAwQ0Y4MDM1NjA3MQorOjEwOTNFMDAwNEU2ODQzNUMwMEU3ODAzOUMwMENDMTAzN0UwMENGMzQ3NworOjEwOTNGMDAwMzVFMTRERjIwMzdDMDBERjM4M0ZDODBGRjgwM0YwMDA4MQorOjEwOTQwMDAwNzAwMDAwMDAwMDAwMDAwMEMwMThDODAwREI4NDIyNjA2QgorOjEwOTQxMDAwMDhBQzBBMkMwMDhCODAyMjMwMDg5MTIyMkM5MDI3NjEwNgorOjEwOTQyMDAwMjJDQTg4RkMyMkJGMDA4QjYyMkZEMDA5QjgwM0IwMDQ4NworOjEwOTQzMDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVFMjgwQTkwMjI0NDBCRQorOjEwOTQ0MDAwODIzNDQyMDQwMEE5MDAyOEM1NDgzMjAyNEMyMDgzMzBFRgorOjEwOTQ1MDAwMjBDMDA4MzEwMjBEMDBCMzIwMkNDNDBCMzAwMkYyMDFGMQorOjEwOTQ2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVBQTAyQjkwNDIyNjBEQworOjEwOTQ3MDAwMjhCMjAyMjYwMDg5ODgwMkMwMDgzMTEyRUMwMDhCMDA1NQorOjEwOTQ4MDAwMkFEMDA4QjAwMkFDMDAyQjAwMkVDMDBCQjAwMkIwMDRGMgorOjEwOTQ5MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDVFMjAwRTMwMDM2MjA4QworOjEwOTRBMDAwMEVBNDYzNkUwMEUxQzAxQUMxMEM4MDAzNjg3MENCMDA4QgorOjEwOTRCMDAwMzY4MDBEQjAwMzRDMDBGQjA0M0VDMTBGQjAwM0QwMDQ1NgorOjEwOTRDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCODA0REYwMDNGMDA3MQorOjEwOTREMDAwMEZFODAzRkMwMEZEMDAzRjAwMkI5ODAzM0EwMDc3MDBFMworOjEwOTRFMDAwMjdFNDBGRjAwM0ZDMDBERjAwM0VDMDBERjA0M0Y4MDA1RQorOjEwOTRGMDAwNjAwMDAwMDAwMDAwMDAwMDUwMDBBNDY4Q0IyMDNBOTBGQgorOjEwOTUwMDAwMEYyNEEzQUMwMEU5NTAzQUMwMEVCNDgzMkMwOEVCMDA0MgorOjEwOTUxMDAwM0E5MDBFQjA4QkVDODBGQjAwM0VDMDBFQjAwMzkwMDQ3RQorOjEwOTUyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDEwQTAwOEJBMDIwODA3RAorOjEwOTUzMDAwMERBODAyMkMwNDg5NDAyOEU4MDhCMjAyMkMwMEFGMDBENAorOjEwOTU0MDAwMDI4MDA4N0MwMzNEODAzRjAwMkZDMDA4QjAwMjM2MDAzNworOjEwOTU1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0OTAwMDM0MDI4QzA3MgorOjEwOTU2MDAwMkIyODRBMjgwMEExMDA2OEQyMEEyMDQyQTQwMUEzMDBBNworOjEwOTU3MDAwMDI0MDBBMzQwMjBEMDAzMzAwMkNDMDBBMzAwMEI4MDA0QgorOjEwOTU4MDAwNTAwMDAwMDAwMDAwMDAwMEI4MDExQTAwODc5MDIxRTQ5QworOjEwOTU5MDAwMkJDODEyM0EwMDg1QzAyQjIxMjg2ODAyQjYwMEE3ODQ4OAorOjEwOTVBMDAwMjM2MDA4Mzg4MDFFMDBCNzgwMkRFMDA4NzgwMjJFMDA2NgorOjEwOTVCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODAwQzEwMDM4NTRDNgorOjEwOTVDMDAwMEYyNjgzODAwMEUwMzQyOEM4MEUyQzBCOEMwMEUzMDBBQgorOjEwOTVEMDAwNzg0NTBFMzAwMzhFODBGMzAwM0NDODBFMzAwMzkyMDJCMworOjEwOTVFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCODAwRjUwMjNGNDRFQworOjEwOTVGMDAwMEQ5MDAzRjgwMEJEMTQxRkMwMEZFMTIzNUM0NDlGNDI4RgorOjEwOTYwMDAwM0ZDMDBGRjQ4MjdENDBGRjEwM0ZDMDRGNzAwN0QwMDY2RgorOjEwOTYxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAyQ0IwMDM4QzA5MAorOjEwOTYyMDAwM0NBMDAzRUMwMEU5MDAzRUMwMENCMDAzMjAwNEZCMjE4OQorOjEwOTYzMDAwM0U4MDRGQjQwM0NGMDBDQjAwM0VDQzRGQjA0M0VBMDA5NgorOjEwOTY0MDAwNzAwMDAwMDAwMDAwMDAwMEM4OTE5ODAwODcwMDIxQzA1MQorOjEwOTY1MDAwMDg0MDAyREMwNEI1MDAyRDAwMkQ3MDAyMUMxQ0I3MDI2RQorOjEwOTY2MDAwMkRDMDBCNzIwMkRDMDA4NzQwMkRDQThCNzAwMkYyMDQwMQorOjEwOTY3MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBCQTAwODc4ODJCRTAzNgorOjEwOTY4MDAwMTg3ODIyRDYxMUE0ODIyRkUwMDg3ODAyMTIwMEI3OTQyRAorOjEwOTY5MDAwNkQ2MDRCN0EwMkRFNDBCN0EwMkRFMDBCNzgwNkUwMDA0QgorOjEwOTZBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDOTEyODM4MjI4RDQ2MgorOjEwOTZCMDAwOTgwMDA2RUYwNUIxOTAyQ0MxMDlCNDAyMEMwNEIzMDE2NworOjEwOTZDMDAwNkNGMDBCMzAwMkNDMDBCQjAwMkVDMDBCMzAwMkQyMDQ3OQorOjEwOTZEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODQwQ0E4MDNCQTA0MAorOjEwOTZFMDAwNENFNTAyRjg4MEVFMDAzRDgwMkNFMDBGMzg4MEZBMDA1NworOjEwOTZGMDAwM0ZBOTBGQTAwM0U4MDBCQTAyM0U4MDhCQTAwM0ZBMDQ0MgorOjEwOTcwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDEwRjgwMDI2MDJBMQorOjEwOTcxMDAwMEY4NDAzRTAyNEY4MDAzRTAwNEY4MEEzRTAzMEY4MDBGRgorOjEwOTcyMDAwMzYwMjBGODAyM0UwMDQwODAwM0UwMDBGODAwM0QyMDBDMQorOjEwOTczMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRDkwMEI2NDEyRAorOjEwOTc0MDAwNEU5OTBCQTQwMDY5MTAzRTQwMEM5MDAzQTQxMEM5MDA3MAorOjEwOTc1MDAwM0U0MDBEOTIwM0U2MDBGOTAwM0E0MDBFOTAwM0MyMDQyOQorOjEwOTc2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODEwMDIwNDJGRQorOjEwOTc3MDAwMDgxNDlBMjQwMDg5MDA2RTUwMDA5MDAyMjQxMEQ5MDIyNworOjEwOTc4MDAwNkU0MDBCOTQwM0E3MDBCOTAwMjI0MDA4OTAwM0UwMDA0QworOjEwOTc5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUwNjAwOTkwMEE2NDExNgorOjEwOTdBMDAwMEE5MDA2MkMwMEE5MDk2RTUwMDg5MTAyODQwNDg5MDBEMQorOjEwOTdCMDAwMEU0MDBCOTQwMkU1NDlCOTAwMEE0MDBBOTAwMkM2MDAyNworOjEwOTdDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNjAwODEwMDIyNDA2NAorOjEwOTdEMDAwMDgxMjIyMDQ4MUExMDAyQzQwMDgxNjAyMDQwMDkxMjBFNgorOjEwOTdFMDAwMkM0MDBCMTI0Mjg0ODlCMTIwMjA0ODA4MTAwMkMyMDE4QgorOjEwOTdGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRDgwMDM2MDBGNQorOjEwOTgwMDAwMEE4MDAzQTE0MEU4MDAyRTAwMEMwMDIzQTE0MEM4NTBBQworOjEwOTgxMDAwMkUxNDBEODAwM0UwMDBGODUwM0EwMDBFODAwM0VFMDM5MgorOjEwOTgyMDAwNTAwMDAwMDAwMDAwMDAwMDg4MURENDAwRjUwMEJGNDA3QgorOjEwOTgzMDAwMEZEMTAzRjQ0NEREMDIzRDUwMkJEMTIzRjQwMEY5MTA4NQorOjEwOTg0MDAwM0Y0MDBEOTEwM0E0NDhGOTEyM0U0RTFGOTAwM0E2MDIxQgorOjEwOTg1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVGNDAwQzUwNDNCNDAzMworOjEwOTg2MDAwMEZEODAzQTc4MEZEMDBCMzY4MEREODQzQTUxMEM5QTA4OQorOjEwOTg3MDAwMzI1MTRGNUE0MzM2MDBDOUEwN0E2ODBCRDAwM0M2MDE1MworOjEwOTg4MDAwNzAwMDAwMDAwMDAwMDAwMDc4MThDQTg4ODgwMjAyMDBGQQorOjEwOTg5MDAwOEQ4NDIyMjM0MkY4MDAyMjA0Mjg4QUEyQUE5NDg4RTkwRgorOjEwOThBMDAwMjBBODBBODAwQTIxNDA4MEUyMkUyODBCODAwMkNFMDRFNAorOjEwOThCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNDIwQTEwNEE4QzAzQQorOjEwOThDMDAwMEIxQzJBMjQwMDM5MDQyMDQwMkExRTAyRTQ4MEIxMTAxNworOjEwOThEMDAwMkE0ODA5MTQ0NjA0MDA4MTM4MkM1QjBCMTAwMkQyMDA4MAorOjEwOThFMDAwMzAwMDAwMDAwMDAwMDAwMDE4MDVBNDEyQTkyNDIyNDA0NgorOjEwOThGMDAwMjk5MDAyMjQwMDM5MDAwMjU4MDgxODEwRTYwMUI5MDAyNgorOjEwOTkwMDAwQUE0NDA4OTAwMjI0MDA4OTAwMEU0MTBCOTAwMkM2MDQ2QworOjEwOTkxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDVFNDAwRTEwMTJBNjRFRQorOjEwOTkyMDAwMkY5NDEzMjQwMjcxNjAxMjYwNEQ5MDAwQzUwMkY5MDA1QgorOjEwOTkzMDAwM0E0MDBGOTAyMzI0MDJDOTAyM0E0MDBGOTAwMkU4MDRGMworOjEwOTk0MDAwNTAwMDAwMDAwMDAwMDAwMDY4MDFBNDAwRDkwMDNFNjA0MworOjEwOTk1MDAwQUY5MDgzNjQ4OEY5MjAzRTYyMDM5MDgzQTQwMEM5MDAxRAorOjEwOTk2MDAwMzY2MDBGMTAwM0M0MDBGOTAwN0U0MDBGOTAwM0RBMDA0OAorOjEwOTk3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MDBBMTAwQzg4MjMyMDA0MgorOjEwOTk4MDAwNkYwMDAzQTAwMEQ4NDAzMDAwMEU4MDAzNjAwNEY4MDE4RgorOjEwOTk5MDAwM0UxMDRGODA4QjIyMDBGODAwMzIwMTBFODAwM0NBMDQ3MworOjEwOTlBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDEzODAwMEUwMEE5OTBFRgorOjEwOTlCMDAwMkZFNjIwODgwMDlFODAyMzgwMEFFODAzMjgwMEJBMDA1MgorOjEwOTlDMDAwMTg4MDBERUMwMjM4ODBCQTAwQTI4MDA4QTAwMzhBMDAzQgorOjEwOTlEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU2QzAyODM4MDIwQzhDMQorOjEwOTlFMDAwMEIyMDAyMEMwMTkyMTA2OEMwM0EzQzAyQ0MxMDNCMDJFMgorOjEwOTlGMDAwMENDMDI4M0MwMjRFMDBCMzAwMjhDMDI4MzAwMkNBMDAyOAorOjEwOUEwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNDAwODc0MjJCQzA5RAorOjEwOUExMDAwMjk3MDIyOUMwMEI2MDAyQkMyMEE2MDg2MUMwMEI3MjE2OAorOjEwOUEyMDAwMjlDMDAwNzQwMjVDMDAzNzkxMDFFMDA4NzQwMkE4MDBBQworOjEwOUEzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwQzc4MDIxRTBEMAorOjEwOUE0MDAwMkY3ODAyOUUwMDk2ODAzOUUwMkVGODAzREUzMEY3RDBBMgorOjEwOUE1MDAwMkRGMjAwNzgwMzUyMDBGN0EyM0JFMDBFNzgwN0VBMDJFRAorOjEwOUE2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURCNDAwRkIwMDBDQzA1NgorOjEwOUE3MDAwMEYzMDAzRUMxMEQzMDBCNEMwMkY4MDAzNkM0OEZCMDAwMAorOjEwOUE4MDAwM0VDODREOTAwM0E0MDBGQjIwMUVDMDBGQjAwM0MyMDZDOQorOjEwOUE5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwQ0M4MDJCMkNDMAorOjEwOUFBMDAwMkZGODAzN0UwMDZFODAzQkExMEREODQzM0UwMEZGOTA0RgorOjEwOUFCMDAwMzNFMDBGRTkzM0ZFMDBDRkMwM0ZFMjBGRDgwM0MwMDAxMAorOjEwOUFDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTFCNDQwODcwMDIxMDRDRAorOjEwOUFEMDAwMDg3ODAyMUMwMDg2MDAyMUMwMjg5MDAyREMwMEI3MTAyNAorOjEwOUFFMDAwMjFDMDBGNzMwMkNDMDA4NzAwMkRDMDBCNTAwMkVBMDA4QQorOjEwOUFGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5RDAwQTQwMDI5NDg1NAorOjEwOUIwMDAwNkFGMDgyNEMwMEFFMDBBMUM0Mjk3NDAyNUM0MEEzMTAyQworOjEwOUIxMDAwNjFDMjBCNjAwNkM4MDA4NzAwMkRDMDBCNTAwMkMwMDQ1NAorOjEwOUIyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRFNjAxQTMwMjIwNDBGNQorOjEwOUIzMDAwMjgzQzAyMEMwMDgzNDIyMEM4MDgxMDAyQ0QwMEIzMDA2QworOjEwOUI0MDAwMjhGMDBCMzAwMkNDMDE4MzA0MkNDMDgzMTAwMkM4MDQxRgorOjEwOUI1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQTgwRUIwMDM4QzAwQgorOjEwOUI2MDAwMEE5MDAzN0MyMkEyNDAzMjQ4MERCMDBCM0UwMEZGMDA1OQorOjEwOUI3MDAwMzNGNDBGOTAwM0VDMDA4RjAyM0ZDMDBGOTAwM0VBMDQxMAorOjEwOUI4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFMDAwRDkwMjNFQzAzQworOjEwOUI5MDAwMEVCNjAzRUMwMEZBMjAzRUMwNEYyNDIzQUM2MEZCMDA1RAorOjEwOUJBMDAwQTZDMDBFOTAwM0U0MDBGQjAwM0NDMTBGOTAwM0UwMDA1MAorOjEwOUJCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGODAyQ0YwMDMzRTA4OAorOjEwOUJDMDAwMkNGMDEzQkMwMDJFMTBCMTY0MkVGMDAyM0MwMEZGMDJGQQorOjEwOUJEMDAwM0ZDMTRERUM2M0ZFMDBCNzAwM0JDMDBDRDgwM0MwNDQ0RQorOjEwOUJFMDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2QzI4ODE4MTIyRTAyOQorOjEwOUJGMDAwMEEzODAyM0MwNEJBQzkzMkUwMjA4NDAyMkMwMEJCMDBCRgorOjEwOUMwMDAwMkVDMDBCOUMwMkU3ODFCQjA0MjJDMDBBOTkwMkUwMDAyRgorOjEwOUMxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyODQwODg4MDIyODg5NQorOjEwOUMyMDAwMjhCQzQyQUMwMEJBMDAyQTgwMDg4NDAyQUMwMEJCMDAwOQorOjEwOUMzMDAwMkVDMDBCQjA4MkU4OTBBQjAwNjJDMDA4QjAxMkUwMDAwQQorOjEwOUM0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAwODkwMDJBODA5NQorOjEwOUM1MDAwMjhCMjAyMEMwMEJBMDAyMEMwMDgwMDAyOEMwMEIzMDAzOQorOjEwOUM2MDAwMkNDMDBCMzAyMDRDMTRCMzAwMjBDMDA4MzAwMkMyMDFCRAorOjEwOUM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2ODAwQzgwMEIyQzAzNQorOjEwOUM4MDAwMkNCMjAzQUMwMEZBMDAzQUMwNEVBNTAzQkMwMEZGMDBBMgorOjEwOUM5MDAwM0ZDMDA5QTAwM0U5MDRFRjAwQkFDMDBDQjAwMUMwMDE0NQorOjEwOUNBMDAwMTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRjUwMDM1QzAwNQorOjEwOUNCMDAwQUYzNDAzRkMwMEY0MDAzOUMwMEZDMjAzN0MwMEZGMDE4NQorOjEwOUNDMDAwM0ZDMDBGRjAwM0ZDQTBGRjAwM0ZDMDBGRjAwM0U4MDUwQQorOjEwOUNEMDAwNjAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwRkYyOTNEMjBERQorOjEwOUNFMDAwOEVDMTAzMzI0OERDODAyMzI1MEVGMjAzM0NDMERGODRBMgorOjEwOUNGMDAwMzNDOTBGRjIwM0ZDMDBDRjgwMzM0MDBDRjIwMzMwMDA3NQorOjEwOUQwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQ0MwQkI2MDJFMDg1NgorOjEwOUQxMDAwMDg4MTAyMjAwNDg4MjAyMDQ4MDhGMTgyMkRDMDgzMDA5OQorOjEwOUQyMDAwMjJENDA5RjUwMkZDMDg4QjAxMjI0MDI4QjQwMjIwMDQ0OQorOjEwOUQzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzIwQjMwOTJDODIxMAorOjEwOUQ0MDAwMDgxMDE2QTAxMDkwMDgyODQ4MEEzMjAyMEMwMEJCMDAyOAorOjEwOUQ1MDAwMkNDMDBCMzAwMkNDMDI5MzAxMjAwMDhBMzEyMkUyMDE5OAorOjEwOUQ2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA0QkIwMDJDODA5NworOjEwOUQ3MDAwMDg4NjAyQTAyMEEwMDAyQTYwMEFCMDEwMkMwMEFCMENCQworOjEwOUQ4MDAwNkVDMDA5QjAwMkNDMDA5QjAwMjI2MDBBQjAwMkYwMDQ1MQorOjEwOUQ5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFQzAwQkIwMDNFMzQzNQorOjEwOURBMDAwMDhBMDBCODMwMEQ5MDIzQUUwMkVCMDBCMkMwMEY4ODBGQgorOjEwOURCMDAwM0VDMDRGQjAwM0VDMDBDQTQwQjI3MjBFQjAwQkMwMDRGQworOjEwOURDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzEwRkIwMDNGMDAzQworOjEwOUREMDAwMERGODEzNzA0OERENDAzN0MyOERGMDAzREMwMEREQzg5QworOjEwOURFMDAwMTNDMDBGRjAwM0ZDMDBFRTQwN0Y0MDBENzAwMzM4MDBGRAorOjEwOURGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwMTMyQzAxOQorOjEwOUUwMDAwMDQxMDAzMjA0MEU4MTAzQUMwMERCMDAzQUMwOEY4NDAzRAorOjEwOUUxMDAwQjJDMDJDQjAzM0E0ODJEQTQwQkE0MDBGQjAwM0QwMDRGMQorOjEwOUUyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzQzA4QkY4MDIyQzhEOAorOjEwOUUzMDAwMDhCNzAwMjM0NDg4RDAyMkQwMDg3MDgyRkMwMEIyRTAyQQorOjEwOUU0MDAwMDNGNDA4RjUwMjM3MDQ4QkQxMjI2MDRCRkQwMkYyMDBDNworOjEwOUU1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjMxMEE0NDBFQQorOjEwOUU2MDAwMDgwMDAyNDgwMEEwNDIyQUQwMDEzMDAyOEMwMEIzODBEMgorOjEwOUU3MDAwMkNDMDA5MzEwMkNDMDA4OTAwMjJFODAzMzgwMkY4MDAyNgorOjEwOUU4MDAwNTAwMDAwMDAwMDAwMDAwMDYwMDExRTAwQjc4MDI3NjQ0MQorOjEwOUU5MDAwNjg0QTAyNTIwMDhDODAyMUUwMDg3ODAyREUwMEI3ODAxOAorOjEwOUVBMDAwMkRFMjE5MzkwMjVFMzA4NTk4MjFFNDBCNzkwMkQ4MDA0MQorOjEwOUVCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRjMyMDM0MDBCRgorOjEwOUVDMDAwMENCODAzNDg4MEUyMjIzOEMwMEQzMDAzOEMwMEYzMDA0OAorOjEwOUVEMDAwM0VDMDBEMzEwM0VDMDBDQjAwMzgwNjBGMzA4M0QyMDJCOAorOjEwOUVFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwRkYwMDNCMDExRQorOjEwOUVGMDAwMEZEMDAzOTAwMEY2MDAzRkMwMEZGNDAxRkMwMEZGMDFGQgorOjEwOUYwMDAwMzNDMjBFRjUxM0JDMDBFRDAwM0ZDNDBGRjAwM0QwMDZDMgorOjEwOUYxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzAwRkIwMDNDQzA1MQorOjEwOUYyMDAwMEVBMDAxNjQwMUQ4MDAzMkUwMkNCNTAzMkMwMEYyMDAzMQorOjEwOUYzMDAwN0FDMDBEQjQwMzJEODBDOTAyMzJDMDBDQjAwMzJBMDBEMAorOjEwOUY0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzgwQjcwMDJEQzA4OAorOjEwOUY1MDAwMEQ2MDAyRDAwMTg0MDAyMUMwMDgzMDAyMUQwMEI3MDA0RQorOjEwOUY2MDAwMjFDODBCRjQwMzFFQzA4NjAwMjFDMDA4N0MwMzUyMDRFNAorOjEwOUY3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RUMwQjc5MDJERTAwRgorOjEwOUY4MDAwMDg3ODA2RDYwMUI0ODIyMUUwMDg3ODBBMUUwMEI1QzAyMAorOjEwOUY5MDAwMjlFODA5NzgwMjM2QzE5NzgwMjhCMDBBN0EwMjMwMDA5MQorOjEwOUZBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQkIwMDJDRTBBMgorOjEwOUZCMDAwMDkzNTgyQzBDMUEwNTEyMEU0MDgzMDAyOEMwMEJCQzQyNgorOjEwOUZDMDAwMjBDMDBCMzAwMjA2MDA5MzE4QUFCMDJBMzAwQTUyMDRBRgorOjEwOUZEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkEwMTNEQUNDOAorOjEwOUZFMDAwNENFQzEzNzgxMEY2ODBCMzkwMENBMDAzMjgwMEZFMDAxMAorOjEwOUZGMDAwM0E4MTBEQTAwRjJBODBERTA0M0JBMDBFQTAwMzNBMDQ5NAorOjEwQTAwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAwRjgwMDNFMDA5MgorOjEwQTAxMDAwMEQ4MDAyRTEwMEQ4NDgzRTEyMEY4MDEzNjAwMEY4NjAwNgorOjEwQTAyMDAwM0UwMDA3ODAwM0EwMDJFODA0MjYwODA1ODAwMzkyMDA5MgorOjEwQTAzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjkwNDNBNDA3RAorOjEwQTA0MDAwMEMxMjAzMjQ4MkM5MDAzNjQ0MEYxMDAzMjQwMEY5MDBDNworOjEwQTA1MDAwMzY0MDA0OTAwMzA0MDBDOTAwMTI0MDBDOTAwMzAyMDQyRgorOjEwQTA2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk4MTIyNDAzQworOjEwQTA3MDAwMDg5MDFBMjQwMDg5MDAyMjY4MEI5OTAyMjQwMEI5MDA3NAorOjEwQTA4MDAwMjI0MDY4OTAwQTI0MDA4OTAwQTI0MDA4OTAwQTIwMDAxQgorOjEwQTA5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkxMDIyRTBBNAorOjEwQTBBMDAwMDg5NDAwMDQwNDhCMDgyNkMwMEI5MDAyMjQwNEI5MEMwOQorOjEwQTBCMDAwMjQ0MDBBMTAwMjI0MDAyMzAyMkE0MEE4MTAwMjA2MDBBRAorOjEwQTBDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDkwQjEyMDIyNDA3RAorOjEwQTBEMDAwMDgxMjAyMEMxMDgxMDJBMDUwMEIxMjAyMDQ4MEIxMDU3QworOjEwQTBFMDAwMDA0ODBBMTAwMjA0QTBBMTAwMjg0QTA4MTIwMDAyMDEzOAorOjEwQTBGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg1MEJBMTRFNAorOjEwQTEwMDAwMEM4NTAzMDE0MkM4NTAzNDAwMEY4NTAzMjE0MEY4MDAzQworOjEwQTExMDAwMzYwMDBFODAxMzIwODBFMDAwMUEwODBDMDAwMzJFMDM4NgorOjEwQTEyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDQ0RjkxMDNGNDA3QQorOjEwQTEzMDAwMkZEMTEzRjQwNEY1MDAzRjQwMEY5MTBCRTQ0MEZGMjhBQQorOjEwQTE0MDAwQkU0RTBEOTY4M0Q0QTJERDI4Mzc0QTBGOTM4M0U2MDZEMAorOjEwQTE1MDAwNzAwMDAwMDAwMDAwMDAwMDk4MDVFNDEwQ0QwMDNGNDBCMgorOjEwQTE2MDAwMEZEMDAzMzUwMjVEMDEzMTQ0MEZEMDAzMjQwMEY5MDAwNAorOjEwQTE3MDAwMzI2MDBDOTg4M0U2NDBEOTAwMzY2QTBDOUU4MzI2MDEzMworOjEwQTE4MDAwNjAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwODgwMDJFMDA5MQorOjEwQTE5MDAwMEI4MDQyMDI4MDhBMDAyMjIwODg4MDAzMjAwOEI4ODIzNworOjEwQTFBMDAwMjIyMTA4ODg4MkUyNDI4OEE4MjIyMDA4Q0UwMjBFMDREQQorOjEwQTFCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAyODEwMDY4NDA3MworOjEwQTFDMDAwMEIxMDAyODQwMUI5MDAyMDQwNDkxMDBBMDQwMEI1MDhCMAorOjEwQTFEMDAwMjE0NjA4NTAwMkQ0MDA4RDIwMjU0QTBCNTAwMjQyMDEyRQorOjEwQTFFMDAwMzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwODkwNDZFNTQyMworOjEwQTFGMDAwMEIxMDEyQTQwMUE5MDBBMjQwMTg5MDE2MjQwMEI5MDA2NworOjEwQTIwMDAwMjM0MDE4RDAwMkY0MDA4RDQwMjE0QTBCRDAwMjQ2MDRBRQorOjEwQTIxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwQzkwMDNBNTBGMgorOjEwQTIyMDAwOEY5NjBCODQwMkYxMDEzMDQ4OEQ5MDAzMjQxMEY5MDBDMQorOjEwQTIzMDAwQjI0MDJDOTAwM0U2NDBEMUMwMzY1MDJGOTAwQjY4MDRGQQorOjEwQTI0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMDNFNjAzQQorOjEwQTI1MDAwMEY5OUMzNjQwMEQ5MjgzRTQwMEQ5MDAzQTQwMEY5NDAzMworOjEwQTI2MDAwM0U0MDBGOTAwM0U0MjBGOTQwM0U0MDBDOTAwMzhBMDBFQQorOjEwQTI3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjgwMTM2MDA3NworOjEwQTI4MDAwOEY4MDAzRTAwMkY4MDQzMjAwMEQ4MDQzMjAwMkNDMDBFRQorOjEwQTI5MDAwM0YwMDBGQzAxMzkwMDJEQzQwM0YxMDRDQzAyMzBBMDQ2MworOjEwQTJBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQkEwMDIyODBERAorOjEwQTJCMDAwMEJFODIwRjgwMDRFQzAyM0EwMDhBMDAzNjgwMDhBMDAyNQorOjEwQTJDMDAwMkU4MDFGQTAwMjJBMDY4QTAwMkVBMDAyNjAwMzBBMDAyOAorOjEwQTJEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU2QzAwQjMwMDIwQzAxMgorOjEwQTJFMDAwMEIzRDAyQzAwMzIzMDAyMEUwMDFCMDA2NEMwMDhCMDBCMAorOjEwQTJGMDAwMkVDMDRCMzAwMjhFMDg4MzgwMkNDNDAwMzQ4RTRBMDA1RQorOjEwQTMwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzgwQjU4MDYxQzA2QQorOjEwQTMxMDAwMEI0MDAyRDQwMDg0MDgyM0MyMDg1MDAyNUVDMDg0MDFBRQorOjEwQTMyMDAwMkQwMDhBMDgwMjEwMjQ4NDA4NkQwMDBBMDMxMjI4MDBGOAorOjEwQTMzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjU4MjIxNjAxNworOjEwQTM0MDAwMEY3ODAzRDYwNEFFODAzMUUwMEQ1ODIzN0UwMEM2ODAxRQorOjEwQTM1MDAwMkRFMDBCNzgwMzhFMDBENzgyM0RGMDBDN0EwMzZBMDI2MQorOjEwQTM2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjEwMEJBRDg5OQorOjEwQTM3MDAwMEY4MDAzRTQxMkY4MDBCRTgwMEUxMDAzRUMwMEY5MDAxOQorOjEwQTM4MDAwM0UwMDVGODAwM0UwMDhGODA0M0MwMDBGODAwM0MyMDYzMworOjEwQTM5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTIwRkY4MDNGRjA0QworOjEwQTNBMDAwMEZGODAzRDIwMEVGODRCMzYxMENCOTAzRkUwMEZGODAwNQorOjEwQTNCMDAwMzNFMDBDRjgxMzIyMTFDRDkwM0Y2MDBDRTgwMzEwMDAzRAorOjEwQTNDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwRjUwMDJEQzBFNgorOjEwQTNEMDAwMEIwMDAyRDQwNDg0MjAyMzQwMDg1QTAyREMwMEI0MDA5RAorOjEwQTNFMDAwMjEwMDI4QzIwMjFFMDQ4NjA0MkQ4ODA4RDAwMjJBMDRGNworOjEwQTNGMDAwNjAwMDAwMDAwMDAwMDAwMDEwMDA5QzAwQjUwMDJENDAyRgorOjEwQTQwMDAwMEI3MDAyRjQyMEE3MDQyMUMwMEE1MDAyREMwMEJFMDAzOQorOjEwQTQxMDAwMjFDMDA4NzAxMjAwMDA4NTAwMkQ0MDg4NjgwQTA0MDBFMQorOjEwQTQyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDQzAwQTEwMDJFQzAzRAorOjEwQTQzMDAwMUIwODA2QzQyMDgwMDAyMDk4MUExMDAyQ0MwMEIxMDgyNgorOjEwQTQ0MDAwMjAwMDA4MDAwMjBDMDE4MkMwMkNBQzI4OTAyMjE4MDRDNQorOjEwQTQ1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwQjMwMDNFNDAyMgorOjEwQTQ2MDAwMEZCQTAzRTUwMkU5MDQzMjkwQUVCMDAzRkMxMEZCNDBFMgorOjEwQTQ3MDAwQjIwMDBDODAwQjJDMDI4MjE4M0ZBMDBDRDAwMzJFMDREQgorOjEwQTQ4MDAwNjAwMDAwMDAwMDAwMDAwMDkwMDBFQzA0RkIwMTNFNDA3MgorOjEwQTQ5MDAwMEZCNjQzRTQwMEY4MDAzRTgwMDE5MDAzRUMwMEY4ODEyMQorOjEwQTRBMDAwM0VEMDBEQjQ1M0UwMDBGOTQwM0U0MDBGQTAwM0UwMDA2MQorOjEwQTRCMDAwMzAwMDAwMDAwMDAwMDAwMDgwMTBEQzAyQ0Q4MDMzNjAxRQorOjEwQTRDMDAwMkNEQTAzRkMwMEVDMDAzMzQwMEZGMjAzN0MwNEZFMDBBNgorOjEwQTREMDAwMzIwMDBDQzgwMzNDMDBDRTAwMzE4MDBDRDEwMzI0MDRCMAorOjEwQTRFMDAwMzAwMDAwMDAwMDAwMDAwMDkxMDQ2QzAwMDkwMDJBNjRBNAorOjEwQTRGMDAwMDg4RTAyQzIxMEEwMTAzRTEwMEI5ODAyRUMwMEI5MDBBQQorOjEwQTUwMDAwMDJEODA4QkUyMjIwMDA4OTAwMjI1MDA4QTAwMjIwNDA2NAorOjEwQTUxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwMEIyMDIyNDBFRAorOjEwQTUyMDAwMDhBMDAyRTU0MkFCMDQyMjE4MEJCMDAyNkMwMEIzMDA5NQorOjEwQTUzMDAwMjAwNDA4MDEwMjAwMDRBODQwMjIxMDA4ODAwMjIwMDAyNAorOjEwQTU0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzA4ODMwMDI4NDBDMAorOjEwQTU1MDAwMDgwNDAyQzQwMkE4MDAyQzAwMEIxMjAyQ0MwMEIwMDBCOAorOjEwQTU2MDAwMjBDMDQwMzAwMjBDMDA4QjAwQThDMDA4MzAwMjAyMTE0RAorOjEwQTU3MDAwMDAwMDAwMDAwMDAwMDAwMDgwMEQ2QzAwQzkwMDMzNDBBNgorOjEwQTU4MDAwMENCMDAzRUMwMkVCMDAzMjQwMEZCMDAzNkMwMEZBMDA5OQorOjEwQTU5MDAwMzIwMDBDODAwMzIwODBDODAwMzAwMDBDODAwMzIwMDNCMAorOjEwQTVBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRkQwMDNGNDAyQQorOjEwQTVCMDAwMEZDMjEzRjAwMEY0MDAzRjAwNEZENDAzRkMwMEY1MDA3RAorOjEwQTVDMDAwM0ZDMDhGRjAwM0ZDNDBGRjAwMzdDMDJGRjAwM0U4MDZDOAorOjEwQTVEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMDAwQ0MwMDMzMDA1NworOjEwQTVFMDAwMEVEMDBCMzMwMENDMDAzM0UwMEZDMDgzN0MwMENGMjBCMworOjEwQTVGMDAwN0IwOThDRjgwM0ZFNTBDRjM4M0ZFMTBEQzIwM0YwMDAxOQorOjEwQTYwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMjAwOTgwODIwODAyOAorOjEwQTYxMDAwMDg5ODAyMjAwMDg4RDAyMkUwMEVCNDIyN0QxOTlGNjk5QworOjEwQTYyMDAwMkU5MDA4MzA5MjI4ODFEQjY0MkVFMTg4MTZBMkUwMDQ4NworOjEwQTYzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDODAwOTAyNDIwMDFDMAorOjEwQTY0MDAwMDgxMDE2MDA4MjgzMDEyOEMxMEIwMjgyMENFMEEzMTBCRgorOjEwQTY1MDAwMjgwRTFCOTIwMjg0ODQ5MzIwMkVDMDA4MzEwMkUyMDE0RQorOjEwQTY2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBODEwOTgwMDIyODBCMworOjEwQTY3MDAwMDg5MDAyMDA2MDhBMTAyQUMwMEEyMDAyNkMxOEJCMDBGMQorOjEwQTY4MDAwNkU2MDJCOTAwMjQ2MjA4QjAwMkVDMjA4QjE4MkYwMDQyRgorOjEwQTY5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTFFNDAyQ0IwMEIyNDA2NgorOjEwQTZBMDAwMkM5MjAzMjcwMDg4MDBCQUMwMEY4ODAzMkMwMEVCMDQwQgorOjEwQTZCMDAwM0FBMENGMkNBM0VEMDA5QjAwM0NGMDJEOEMzM0QwMDRBRQorOjEwQTZDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDA0RUYwMDNGQzA5MworOjEwQTZEMDAwMEQ1MTAzRjAwMEYxODEzN0MwMEVGNDAzOUMxMENGMDA0MAorOjEwQTZFMDAwM0Q4MDBDRUMwN0I4MDhGRjAyMUZDNDBGQzgwM0Y4MDAzOAorOjEwQTZGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTA5RTAwQzMwMDM4NDBEMQorOjEwQTcwMDAwMEM5MjAzQTQ4MEZCMjAzQUMwMEQ5NDAzMkM0MEZCMDA2NAorOjEwQTcxMDAwM0UwMTBGODAwM0U1MDBFQjAwM0FDMDBEODQwQjEwMDRFRQorOjEwQTcyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzA4OEIwMjIyQzA5OQorOjEwQTczMDAwMDg5MjAzMjEwMDhCNDgyMkMwMEJCNzAyM0Q0MDNGMDEyNQorOjEwQTc0MDAwMjI3NDBCOTAwMjI4MDRCRjAwQjJDMDBCODUwMjMyMDBCNQorOjEwQTc1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0MDAxODAwMDI4MDBFQgorOjEwQTc2MDAwMDgyQzEyODg0MEIwNDAwOEMwMEIxODAyMEUwMEIzMDAzRAorOjEwQTc3MDAwMjgyMDExMzAwMjBDMDBCMzAwMjQwMDA5MDAwNjM4MDAyNAorOjEwQTc4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExMjAwODQ4MDIxQTA4MQorOjEwQTc5MDAwMjg2ODEyM0EwMDg0ODAyNUUwOEI1ODAyMUU0MEI3ODI1OAorOjEwQTdBMDAwMjFBNjBCNzgwMjFBMDBCNzgwMjEyMDBCNTgwMjA4MDA1RQorOjEwQTdCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODAwQzgyMTM4MDlENworOjEwQTdDMDAwMEMyODAzODAwMUYxMDAzOEMwMEQ4NTAyMEMwMEZCMDA0RAorOjEwQTdEMDAwMzg4NTBGMTAwMzhDMDBFQjEwM0NDODBEMzAwMzEyMDJCQgorOjEwQTdFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5ODAwRkMwMTNGODBCOAorOjEwQTdGMDAwMEY2ODAzRDA0MEZDMDAzQkMwMERDMDAzRkMyMEZGMDBFRAorOjEwQTgwMDAwM0JDNTBGRjAwQkI0NDBGRjE4M0YwMDBGRjEwM0QwMDYxQgorOjEwQTgxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAwRUIwMEIwNDE2QgorOjEwQTgyMDAwMENBMDAzRTAwNENBMDRCMEUwMEVCMDAzRUM4MENCMjAxRgorOjEwQTgzMDAwMzI4MTBDQTAwM0VFMDBEQjAwM0UwMDBFQjAwMzJBMDBDNAorOjEwQTg0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDA0ODcwMDIxQzAzRgorOjEwQTg1MDAwNDg2MDAyRjAwMDg3MDAyMUMwMDg3MDAyRkNBMDgzMjgzNQorOjEwQTg2MDAwQTM4MDA4NjAwMkRDMDA4NzIwMkRDMDBCNzAwMjEyMDQ1OAorOjEwQTg3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QzAyQTM4MDIxNjA3NgorOjEwQTg4MDAwMDg2ODAyRDIwMDg3ODAyMUUwMjk3ODAyREU4MDg3OTA2NAorOjEwQTg5MDAwMjFBMDE5NDgwMkZFMDA5NzgwMkRFMDBBMzg4MjMwMDA3RQorOjEwQThBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAxODM4MDIwQzA3QworOjEwQThCMDAwMDgyMDQyQzAzMDgzNzBBMEMwODkzNDAyQ0MwMjgzMDBEQgorOjEwQThDMDAwNjBDMDI5MDAwMkNFMDA4MzAwMkNDODBCQkMwMjEyMDQxOQorOjEwQThEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBOTAwRUFFMjMyOTAxNAorOjEwQThFMDAwMkNFMDAzRkIwMkNFQzAzMjgwMEZFNDAzRTgwMDhBMDBCNAorOjEwQThGMDAwMzM4ODBENjRDM0ZBMDBEQTAwM0Q5MDBFRTAwQjNBMDQ5MQorOjEwQTkwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBDMDI0RjgwODNFMTI2QgorOjEwQTkxMDAwMEZDMDAzRTA0OEYwMDAzRTAwMEU4MDkzQzAwMEY4MDAzNgorOjEwQTkyMDAwN0UwMTBFODBDMkUwNDBGODAwN0UwMDhGODQwM0QyMDBEQQorOjEwQTkzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNTAwQzEwMTMyNDhBRQorOjEwQTk0MDAwMEM5ODAzRTY0MEM5MDAzMjQwMEY5MDAzNjYwMEM5MDAyRQorOjEwQTk1MDAwMTg2MTBDOTAwMzY0MjBGOTA1M0U0MDBDOTA4MzAyMDRCQQorOjEwQTk2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NjIwODkwMDIwNTJCMgorOjEwQTk3MDAwMjgxMEMyMjYwMkE5MDAyMjQwMEI5MDBBMjcwMEE5MDAzNQorOjEwQTk4MDAwMjI3MDA4OTAwMjI0MDhCOTAwMkU0MDBBOTAwQTIwMDA4NAorOjEwQTk5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAyOEQwMDIzNDA3NAorOjEwQTlBMDAwMDhEMTAyODQyMDg5MDAyMjYwMEIxMUYyMjRCMDgxMDBCQQorOjEwQTlCMDAwMkE0NjA4OTA0MjY0MDhCOTAwMkU0MDA4OTIwMjA2MDAxOAorOjEwQTlDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQxNDgwODUyMDIzNDg5NworOjEwQTlEMDAwMDg1MjAyODQwODgxMDAyMDQwMEIxMjAyMDQ4MEExMjA0QQorOjEwQTlFMDAwMjg0OTI4OTAwMjA0MDAzMTIwMkU0MDA4MzIwMjAyMDEzQQorOjEwQTlGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwQzg1MEIyMTQ1NAorOjEwQUEwMDAwMENDMDAzQTE0MEM4MDBCMjAwMDc4NTAzMjE0MEM4NTAxNAorOjEwQUExMDAwM0ExNTBDODUwMzYxNDBGODUxM0UwMDJDODUwMzJFMDM0NgorOjEwQUEyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURDNDQ4RjkxMDNFNDQ4QQorOjEwQUEzMDAwNEY5MTAzNzQwMEY1NDQzRTQwMEZEMTAzRTQ0MEY5MTBGOAorOjEwQUE0MDAwMzc0NDBGRDAwM0Q0MDBGOTEwM0ZDMDBGRDEwM0U2MDZGRQorOjEwQUE1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVGNkEwREQ4QzMzNzhBRgorOjEwQUE2MDAwMEVEQTAzMzUwMENEQTAzMzQwMERGODBCMzY4MUU5ODBCNgorOjEwQUE3MDAwMzM3MDBDOTEwM0U0NDBGOUMwM0VDMDBGREMwM0M2MDAwNAorOjEwQUE4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTA0Qjg0MDIwM0NENQorOjEwQUE5MDAwMEM4NTAyMDI4NDhBNDAyMjAwMDg4RjgyMjMwMEI4RThENQorOjEwQUFBMDAwMjIyMDA4ODgwMkUyMDBCOEQwMkUwMDBCOEMwMkNFMDRDRgorOjEwQUFCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwOTEwMDYwNDg1QworOjEwQUFDMDAwNEIxMDAyMDQ4QTgxNDA2MDQwNDkxMDAyOERBMEExNDFEMAorOjEwQUFEMDAwMjA1MDA5MTIyMkM0ODBCMTIwMkM0MDRCM0UwMkMyMDFGQQorOjEwQUFFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDA4QjkwNEEwNDA4MAorOjEwQUFGMDAwNDhCMDAyMjQwMDg5MDA4MjQwMDg5MEE2QTQwMEI5MDQ0RQorOjEwQUIwMDAwMjI1NDI5OTUwMkU1NDBCOTAwNkU0MDBCOTIwMkM2MDQxQQorOjEwQUIxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDVFNDAwOTEwMDMyNDA0OQorOjEwQUIyMDAwMEY5MDA5MjQwMDg5OTAzMjQwMEQ5NDAzQTQwMEU5MDI5QgorOjEwQUIzMDAwNzI2MDBEOTQwM0U0MDFGOTAxM0U2MDBGOTAwM0U4MDQ5NAorOjEwQUI0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDQwRjkwMDNFNDAxMQorOjEwQUI1MDAwNEY5MDAzRTcxMEY5ODAzRTQwMEYxMDEzNjQwMEYxMDA5RQorOjEwQUI2MDAwQkU0MDBFOTAwM0U2MDhGOTAxM0U2NDBGOTAwM0NBMDA1MAorOjEwQUI3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MDBBMDAwRjgwMDMyMDg3QgorOjEwQUI4MDAwMEMwMTBCMjA0MEM4NDAzMjAwMEU4NDgzMjAwMEY4MDRFMgorOjEwQUI5MDAwM0UwNDBGODAwMzIxMDBFODAwM0UxMDBGODgwM0NBMDQyMgorOjEwQUJBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzODAwM0UwNDIzODAzQgorOjEwQUJCMDAwMDhFQzEyMzk0NEE2MDAyODgxMDhFMDAwMzgwOEJBMDBFMQorOjEwQUJDMDAwM0Y4MDBCQTAwMkE4MDA4QTAyMkU4MDBCRTAwMkNBMDA4MAorOjEwQUJEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0ODAwMzEwMDI0RDA5QgorOjEwQUJFMDAwMDgzRTEyQUUwODgxQTAyQ0MwMEEzODAwNEMwMEIzMDAwOQorOjEwQUJGMDAwNkVDMDBBMzAwMjBDMDBBMzAwNkNDMDBCMzAwMkNBMDAwOQorOjEwQUMwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExODAwQjUxMDI1QzA5MQorOjEwQUMxMDAwMjg2MDEyOTAxMEE1MDgyREMyMDg2NDIyNTgxOEI3MDBBOQorOjEwQUMyMDAwMkQ4MDBCNzkwMkJFQzA4NzAxNkRDMDBCNjAwMkU4MDA2OQorOjEwQUMzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjU4NDM1MjAzOAorOjEwQUM0MDAwOEMxODAyOTIxMEM1ODAzRDYwMEVDODBCNUEwODc3RjMyRAorOjEwQUM1MDAwM0RBMDBGRjgwMzFFQjBFNzg1M0RFMDBGNzgwM0VBMDI0MAorOjEwQUM2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjEwNEJBMDE2MworOjEwQUM3MDAwMEZBMDQzNjAwOUUxMDAzODQwMEVBMDAzQTgxNEZCMjA5OAorOjEwQUM4MDAwM0E4MDBGQjQxQjRDODBGQjI5M0VDMDBGQjAyM0MyMDY5NAorOjEwQUM5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQTAwQ0Q4MDNCRTBFRAorOjEwQUNBMDAwNEVGODAzRjIwMkQ0ODEzQkUwOEU5ODA3M0U0NEVGOTFDOAorOjEwQUNCMDAwM0ZFMDRGRkMwN0VFRDBDRjk4MzNFNDBGRjgwM0MwMDAxRAorOjEwQUNDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MDE5ODAwODUxMDJEQzQ0RAorOjEwQUNEMDAwMEQxMTAyRjAwMDg1MjAzMUM0MEI3QjAwMzg0MEQ3MTBFNQorOjEwQUNFMDAwMkQ4MDBCNzA2MkZFRTE4NzE0MzlDMDBCNjAwMkVBMDQwQworOjEwQUNGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMTBCQzQwQTUwMDI5NDBEQQorOjEwQUQwMDAwMEI1MDgyREM0MDg0MDQyREMwMEIxMDA2NTg0NEE3MTA2MQorOjEwQUQxMDAwMkQ4MDBCNzEwMkRDMDA4NzA0MjFDMjBCNTAwMkMwMTA5MQorOjEwQUQyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzBBQTEwMTJDNDBFQgorOjEwQUQzMDAwODkxODAyQzEwMEExMDgyMEMwMEIzNDA2NDAwMDkzMDUwOQorOjEwQUQ0MDAwMkMxNDBCM0M4NkNFMTA4MzAxMjhGMTBCMTQwMkM4MDQ4RQorOjEwQUQ1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBMDAwRUQwMDNBQzA3RgorOjEwQUQ2MDAwMDdCQzYzRUQwMDgxNDAzRUMwMEU4ODAzNjQwMEVGMDAyNQorOjEwQUQ3MDAwN0U1MDBGRjAwMkZENDJDRjAwNzJDMDFGQjQwM0VBMDQwMAorOjEwQUQ4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFODAwOTkwMDNFRTA0NAorOjEwQUQ5MDAwNEZCNDgzRUQ5MDA5NDAzRUMwMEZBMTgzQTgwMUVCMDFBMQorOjEwQURBMDAwM0UwMDBGQjExM0VDMENGQjAwM0FDMDVGMjAyM0UwMDAyMworOjEwQURCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGODAwRkQwNDNGQjA2QQorOjEwQURDMDAwMEQ2MDAzM0UwMENEMDAzM0YwMEZGMjAxRjAwMEZGMDNGMQorOjEwQUREMDAwM0YwMzBGRjAwMUZDMDBGQjAyMzNDMjBGRjBFMzAwNDQxRAorOjEwQURFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QTAwQjkwMjJFQTBCQgorOjEwQURGMDAwNEFBQzAyMEU4MEY5QzAzNkUxMEJBMDAyMkEwOEJCMDA2MworOjEwQUUwMDAwMkUyMDBFQjAwMkVDMDBFQjAwMjJDMDhCQjAwMjIwNDBERQorOjEwQUUxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDEyMzAwQTkwMDI4QzBFRAorOjEwQUUyMDAwMDlCMjIyNkM0MDg5ODkyQUMwMEIxNDA2MjYwMEFCMDJBNQorOjEwQUUzMDAwNkVFMDA5QjAwNjZDMDBCMzAyMjJDMDBCQjAwMjIwMDAyNQorOjEwQUU0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwODAwQjEwMDJDQzAxMQorOjEwQUU1MDAwMEEzMDAyMkMwMEJCMDA2NEMwMEIzMjBBMDgwMDMzMDAyOQorOjEwQUU2MDAwNkM4MDAyMzA0NkNDMThBMzAwMjBDMDBCMjgwMjAyMTFDRgorOjEwQUU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2ODAwRTkwMDM4QzE4MworOjEwQUU4MDAwMERCMTBCMkMwMDg5MDAzQUMwMEI5MDAzNjAwMEZGMDI0QgorOjEwQUU5MDAwM0U4MDBGRjAwM0ZDODBGRjAwMzJDMDhGODAwQjAwMDM2OAorOjEwQUVBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTFEODAwRkQwNDNGQzBDOQorOjEwQUVCMDAwMkZGMjAzRkMxMUVGMDAzRkMwMEZGNDQzNzAwMEZGMDBCRQorOjEwQUVDMDAwM0YwMDQ2RjAwM0ZEMDBFRjAwM0ZDMDBGQzAwM0U4MDY1RgorOjEwQUVEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGRTAwRkY4MDNERTBBMworOjEwQUVFMDAwMENGOTEzREUwMDdGODBCM0UwMEZGQzAzQkU0MENGODA3RgorOjEwQUVGMDAwMzNGMDBGRjgwMzdDMDRDQzgwMzNBMDBDRjAwQjMwMDE0RQorOjEwQUYwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMDIwODgwMDJFMjA2QgorOjEwQUYxMDAwMDg4MjEyRTA4MEE4ODEyMjAyMEI4MDAyMjA4MEE4ODA5MworOjEwQUYyMDAwMjIwODBCODAwMjJDMDI4ODA0QUEyMDA4QjAwMjIwMDQwOAorOjEwQUYzMDAwMjAwMDAwMDAwMDAwMDAwMDg4MDVFQzAwQTMwODJDODAyMQorOjEwQUY0MDAwMDgzMjAyQzQyMEEzMDAyODQwMEI5MjAyODQwMEE5MDEwOQorOjEwQUY1MDAwMjhDODFCMTI4MkNDNDBBODAwMjRFMDBBMzA0MjIyMDFGQgorOjEwQUY2MDAwMzAwMDAwMDAwMDAwMDAwMEMwMTFBODgwQTgwMjJFNDBBMAorOjEwQUY3MDAwNjg4MDEwQzgwMEI4NDAyQTkwMEJBMDAwMjgwMEFBMDhEQQorOjEwQUY4MDAwMkEwMjAzMjAwMjhDMDBBODg4MkUyMDBBQjAwMjMwMDQ3NgorOjEwQUY5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFODA0RkEwMDNDNDA5QQorOjEwQUZBMDAwMENBMDAzRTgwMEVCMDAzQUMwMEYyMDUzQTgwMEUzNDBEOAorOjEwQUZCMDAwMkE0MDBGQTAwMzZDMDBBODgwMzQyMDFFQjAwMzEwMDRBOAorOjEwQUZDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDAwOUQ5MTNGODA4RgorOjEwQUZEMDAwMEZEQTIzRjQwMENDMjAzNzAwMDdEMDEzNzQwMEJDMDAzNAorOjEwQUZFMDAwQjc4MDBCRDA0MzdDMDBEQzA0M0IwMDZERjAwM0Y4MDAxRAorOjEwQUZGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBODAwRkE4MDNBMDA0NQorOjEwQjAwMDAwMkNBMDBCMjAwMkNCNjIzRTUwMEU4ODAzMjAwMEQ5MTBFQQorOjEwQjAxMDAwM0U3MDhDODAzM0VDODBEODQwM0EwMjBEQjAwMzEwMDRBRgorOjEwQjAyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDEwQzAwMzk4MDIyQzA5MAorOjEwQjAzMDAwMEM5RDgyMkMxMEQwNDAyRUEwMDhCODAzNEUwMjhBNDBFRQorOjEwQjA0MDAwMEVBMDBEQjAwMzNEMDBEMDkwMzYxMDBCRjAwMkIyMDAwMAorOjEwQjA1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjEwMDYwQzBBRQorOjEwQjA2MDAwOEExODAyOEMwODgwNDAwQ0EwMDIzMDAyQ0UwMDgyNDg3MAorOjEwQjA3MDAwMkM4MDJCMzAwNjhDMDA4MTAyMjA5MDA5QjAwMjM4MDAxMQorOjEwQjA4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExMjAwQjY5MEEzMzAyNAorOjEwQjA5MDAwMDhFODIyQjIxNDg3ODAyRDYwMDg0OTEyMTI2MTk1OTA0OQorOjEwQjBBMDAwMkQ2MTBBNDgxNjFFODA5NTgwMjUyMDBCNzgwMjg4MDBBNQorOjEwQjBCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRjEwMDI4OEM0RgorOjEwQjBDMDAwOEUxMDAzODQ4MDgwMDAyQzAyMEE5QTAyRTQwMEQwMDBEMworOjEwQjBEMDAwM0U4MDBCOTEwMzhFODBDMjA4Mzg4MDBEQjAwMzEyMDJBRgorOjEwQjBFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCMDAwRjYwMDNGNDREQQorOjEwQjBGMDAwMEYyMTEzNzgwMEZGMDAzREMwMEZFMDAzNzgwMEVGMDQzQworOjEwQjEwMDAwM0Y0MDhERTgwM0RDMDRGNjAwM0YwMDBGRjA4M0QwMDZEQgorOjEwQjExMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAwRTg4MDMyNDA2MAorOjEwQjEyMDAwMEY4ODBCMjgwMDc4MDIzRTgwMEUyODAzMjgwMENBODA3MgorOjEwQjEzMDAwMzIwMDBGQTAwM0VDMDBDOTgwMzI4MDBGQjAwMzJBMDA1OAorOjEwQjE0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE4QzAwOEYwMEExODBGQQorOjEwQjE1MDAwMEI3MDQyMTQwMEI3MDAyRDQxMEI1MDQyMTQwMEE1MDBBMworOjEwQjE2MDAwQTFDMDBCNTAwMkZDODBBNTAwMjEwMDBCRjIwMjEyMDRDQQorOjEwQjE3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDBCQTAwQTQ4MDI5MzA3OAorOjEwQjE4MDAwNEI0ODA2NTIwOEI0ODAyRDIwMEI0ODQyMzIwMDg0ODA4MAorOjEwQjE5MDAwMjEyMDBCNDgxMkRFNDA4NjgxMjlBMDBCNzgwQTMwMDA1RQorOjEwQjFBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwODMwNTIwRTBDRgorOjEwQjFCMDAwMEIzNDAyNkMxMEIzMDAyQ0MwMEIzNjRBMEQwREEzMDBFQgorOjEwQjFDMDAwMjBDMDBCMzQ4MkNDMDJBMjAwMjgwMDBCMzAwMjEyMDRGMworOjEwQjFEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBOTIwRUE0MDMwQTA3RgorOjEwQjFFMDAwMDdBMDQzNjk0MEZBMDAzQzgwMEZBMDAzMDg0MENBMDA1MgorOjEwQjFGMDAwMzBBMDBGQTQwM0U4MDBDRTAwM0I5ODBGQTAwMzNBMDQ1MAorOjEwQjIwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBEMjAwRkMwODNGMDA4MQorOjEwQjIxMDAwMEJDMjAzQjAwMEZDMDAzRjAwMEZDMDAzRjAwMEZDMDBCNQorOjEwQjIyMDAwM0YwNDBGQzAwM0UwMDBGODAwQjYwMjBGODAwM0QyMDAxNQorOjEwQjIzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRDkwMDNFNjg2MworOjEwQjI0MDAwNEM5MTAxRTQwOEM5MDAzRTQwMkM5MjAzRTQwMkM5QTBERAorOjEwQjI1MDAwM0U3MDBFOTAwM0M2NDJDOTAwM0U0MDBGMTAwMzAyMDQyOAorOjEwQjI2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODk4NjBFNjA0OQorOjEwQjI3MDAwMDg5ODAyRTQwODg5MTAyRTYwMDg5MDAyRTQwMDg5MEMwNgorOjEwQjI4MDAwMkU2MDA4OTAwMkU2ODg4OTAwMkU0MDBCOTAwMkEwMDBGNAorOjEwQjI5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOUQxMDJGNDA0MQorOjEwQjJBMDAwMjhEMDA2RjQwMkFEMDAyRjYwMDhEMDAyRjQwMDhEMDAxMworOjEwQjJCMDAwMkY0MDBBRDAwMkU0MDA4OTAwMkU2MDBCOTAwMjA2MDBBNQorOjEwQjJDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQzNDAwODUwMDJENDAwQworOjEwQjJEMDAwMDg1ODAyRDQwMEE1MDIyRDQwMDg1MDAwRDQwMDg1MDA3MworOjEwQjJFMDAwMkQ0MDA4NTQwMkM0ODA4MTAwMkM2MDBCMTQwMjgyMDE5RQorOjEwQjJGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRDg1MjNFMDA4MAorOjEwQjMwMDAwMEMwNTAzRTE0MEU4MDQzRTE0MEM4NTAzRTE0MEM4MDA0RAorOjEwQjMxMDAwM0UxNDBFQzAwM0UwMDBDMDAyM0UwMDRGODAyMzJFMDMwNworOjEwQjMyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDAwRjkwMTNFNDBBQworOjEwQjMzMDAwNEY5MDEzRTQwMEQ5MDAxRTQwMEY5MDAzQzQxMEYxMDA5OQorOjEwQjM0MDAwMUU0MDBGOTAwM0U0RTBGRDI4M0Y0MDBGOTQwM0U2MDYwMworOjEwQjM1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVBNDAwRkQwMDNGNDA0MAorOjEwQjM2MDAwNEQ1MDAyRTQwMDk1MDQzMzQwMjhEMDAzRjQwMEZEMDA2MgorOjEwQjM3MDAwMzM0MDBGOTEwMzM0MDBDRDQwMzM0MDBGOTg4MTA2MDBENQorOjEwQjM4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDEwQjgwMDJFMDAyRgorOjEwQjM5MDAwMEI4MDAyRTAxMEI4MDAyMjAwMDg4MDAyRTAwMEI4MDAzNAorOjEwQjNBMDAwMjIwMDBCODgwM0MyODA4ODgwMjIwMDBCOEMwMjBFMDRDRQorOjEwQjNCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDRDNDAwQjEwMDJDQzBGMAorOjEwQjNDMDAwMEIxMDAyQzQwMEJCMDAyMjQwMDgxMDAyQzQwMUI5MDBFNworOjEwQjNEMDAwMjA0MDFCOTAwMjA0MjI4OTAwMjA2MDBCMTI4MjAyMDE4RgorOjEwQjNFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDQ0QjkwMDJFQzAzMQorOjEwQjNGMDAwNEI5MDAyRTQxMEI5MDIwMjQwMDg5MTQyRTQwMEI5ODA4NworOjEwQjQwMDAwMjI0MDBCOTIwMkM0MDA5OTQwMjI0MDRCOTAxMjA2MDQ0NQorOjEwQjQxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNjAwQjkwMTNFNThFMQorOjEwQjQyMDAwMEQ5MDAzRTYwMEQxMDAzMjYwMEM5ODAyRTY0MEY5MDA2RQorOjEwQjQzMDAwQjI0MDBGMTgwMzI0MDBDOTgwMzI1MDBGOTAyMzI4MDQxMworOjEwQjQ0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMDNFNDI0NgorOjEwQjQ1MDAwMEI5MDAzRTcwOEY5MDBCRTQ4MEY5MDAzRTQwMEY5MDBFMQorOjEwQjQ2MDAwM0U0MDBGOTgwM0E0MDBFOUEwQkU0MDBGMTAwQjRBMDAxNQorOjEwQjQ3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRDgwMTNFMDA3RAorOjEwQjQ4MDAwMEY4MDhCMjAwMEY4MjAzRTAxMEY4MTAzRTAwMEY4MDhCOAorOjEwQjQ5MDAwM0EwMDBDODAwM0UwMDBEODQwMzIwMDBGODAxMzBBMDQwOQorOjEwQjRBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEE4MDJGOTE1RAorOjEwQjRCMDAwMEJFRTAyMjgwMUJFMDAyMDgwMEJBMDAyRUE4MEI2NDhGNQorOjEwQjRDMDAwMjI4MDBEQTAwMkZBMDI4NjQxQTNBNjBCQTAwMzBBMDA2NworOjEwQjREMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTM4MDJDQzBCNAorOjEwQjRFMDAwMEIzMDAyMEMxMEIzMDAyOEMwMEIzODAyQ0MwMEIzMDBBNAorOjEwQjRGMDAwMjhDMDA5MzAwMkM2MDE4MzYwMjA3MDBCMzAwQTRBMDA2MAorOjEwQjUwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDEyRTg4ODUwODJEODA1QQorOjEwQjUxMDAwNEJGODA2MUM4MEI3MDAyMUMwMEI1MDAyRDQwMEI2MDBDNworOjEwQjUyMDAwMjk2MDA5NzAwMkQwQTA4RDAwMjE0MDBCMzIwMjI4MDA1MgorOjEwQjUzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRDU4MDNERTA4QgorOjEwQjU0MDAwOEY3ODAzMUU4NEI3ODIzRDYwMEY1OTAzREUwMEY3ODBCOQorOjEwQjU1MDAwMjk2MDE1NzgwM0RFMDBDNzgwMzE2MDBGN0MwMzZBMDIyMgorOjEwQjU2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzQwRTkwMDNFODAyMworOjEwQjU3MDAwMEZBMDAzRUQzMEZCMDAzNkMxMEY5NjAzRTQwMEIzMDBDQgorOjEwQjU4MDAwMzQ0MDBGQjc4M0VDNDAyMTAwM0U0MDBGQjAwM0MyMDZBOQorOjEwQjU5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkY4MTMzRTBCNQorOjEwQjVBMDAwMEZGOTAzREUyMENGODEzRkUwMDc3ODAzM0UwMEZGODBFNAorOjEwQjVCMDAwM0ZFMDA0RjgxM0ZFMDJERTgwMzM2MDBGRjgwMzAwMDA2MgorOjEwQjVDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQjcwMDIxQzQxQQorOjEwQjVEMDAwMEI1QTAyREM0ODg2NTAyREMwMEIzMTAyOTQ2MEI0MTgxRgorOjEwQjVFMDAwMkQ0MDQ4NzAwMkU4MDBBNTEwMjE0MDBCNzEwMjJBMDQ4QQorOjEwQjVGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQkQwMDIxNDIyRgorOjEwQjYwMDAwMEI3MDAyRkMwMjg1MDAyNTQwMEI1MDAyOUMwMEI3MDAyNQorOjEwQjYxMDAwMkY0MDI4NzEwMkRDMDBBNjAwMjFDMDBCNzAwMjAwMDA0MAorOjEwQjYyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTQ2RDgwQjEyMEEwNTAxOAorOjEwQjYzMDAwMEJCMjA2Q0UwMEEwMzQyRUYwMEIxODAyODUyMEIzNEFDMAorOjEwQjY0MDAwMkM1NDg4MzgwMkNDMTBBMTAwMjBCMDBCMzAwMjA4MDQyMgorOjEwQjY1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCRTgwRjMwODEwNTQ2MAorOjEwQjY2MDAwMEI4ODEzRkYwMEMwODAzRTY0MEZCNDgzMDcwMEY5QzA0RAorOjEwQjY3MDAwM0VGMDBDRkMxM0Y0MDBFQTAwMzI3MDBGRjAwQjJBMDRDOQorOjEwQjY4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRjkwMDNFMTBBNworOjEwQjY5MDAwMDc5MTAzRUNDMDU4MDAzRTQ0MEY5MjAzRTQwMEY5MDAwOAorOjEwQjZBMDAwM0VDMDhGQjMwM0UwMDBCQjAwQkU0NDBGQjAwM0UwMDAxOAorOjEwQjZCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAyQ0QwNDMzRTA2NworOjEwQjZDMDAwMENDMDAzM0MwOEZFMDAzMzYwMkNEMDAyQjQ4MENGMDBENQorOjEwQjZEMDAwM0Y1MjA3RjAxM0ZDMDBDRTEwMzM0MjBDQjAwM0MwNDRCRAorOjEwQjZFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzAwODkwMDJBQjBENgorOjEwQjZGMDAwMDg4ODAyMkMwMEJBMDAzNjQ0MDg5MDAwMjYwMERCQzBGRgorOjEwQjcwMDAwMkU0MDBCQjAwMkVDMDA4M0MwMjg0MDBBQjAwMkUwNDA5QgorOjEwQjcxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIwMDIyMDhCMworOjEwQjcyMDAwMUFBMjAyMkMxMEI5MjAyMjQwMDgzMDAyMkMwNEFBNTQ3QworOjEwQjczMDAwMkVDMDBCQjAxMkNDMDA4QjA4MjI0MDA4QjAwMkUwMDBGMworOjEwQjc0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODMwNDJBMDBGMAorOjEwQjc1MDAwMEEwODgyMEMwMEI4MDA2NDQwMDgzMDAyQTQwMEIwMDA1RgorOjEwQjc2MDAwMkNDMDhCMzAxMEM4MDI4QjAwMkE0MDBBMzAwMkMyMDE2NAorOjEwQjc3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQzkwMDMyMDA1NQorOjEwQjc4MDAwMUE4MjAzM0MwMEY5MDAzMjQwMENEMTAzQUMwMEVCMDBGQworOjEwQjc5MDAwM0U0MDBGRjAwM0VEMDBDMzAwMzJDMDhDQjAwM0MwMDM4NQorOjEwQjdBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRjUwMDNGMDA2MAorOjEwQjdCMDAwMEQ4MDRCRkMwMDdDMDAzRjQwMEZEMjBCNzQwMERGMDA3QgorOjEwQjdDMDAwMUQ0MDhGRjAwM0ZDQTBGRjAwM0Y4MDBGRjAwM0U4MDY1MAorOjEwQjdEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwREY4NDNCRTBCQQorOjEwQjdFMDAwMEZGODBCM0UwMEVDODAzM0UxMEMzMDAzM0M4MENGNDg3NworOjEwQjdGMDAwMzdDMDBFNDAwM0UwQzBDNzkxQjMwNDBDRjAwMzMwMDAyMworOjEwQjgwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFRjA0OEI4MDIyNDFENworOjEwQjgxMDAwMEJCMDgyMkUwMDg4ODBBMkUwMEFBMjkyQUQ4MDg3NDJGRgorOjEwQjgyMDAwMjNEODhBQUQwMkUwQzA4QjAwMjA0QzQ4QTQwMjIwMDQzQgorOjEwQjgzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzU4QkIwMDI4ODBDNAorOjEwQjg0MDAwMEJCMjQyMjQwMEE4MDAyQUMwMEExMDAyMDQ2MEEzMjAwMAorOjEwQjg1MDAwMjREMjA4MDA0MjhDODM5QjAxMjA0OTA4MzNDMjIyMDE3NAorOjEwQjg2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzAwQUI4ODIyQTBGMgorOjEwQjg3MDAwMEJCODAyMjYwQ0E4MDAyQUMwMEE5MjAyQTQwMEFCMDY0QworOjEwQjg4MDAwMjJDMDBBQjAwMkU4MDA5QjAwMDI0MDA4QTA0MjMwMDQzNworOjEwQjg5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwRDM4MDNBRTA5QQorOjEwQjhBMDAwMEYxODAxMDYwMEU4MzAzODY2MEVCODAzMkE0MEVCMDA5NgorOjEwQjhCMDAwMzZDMTBFOTYwM0UyODBEQTA4MzI4MDJDQkIwMzEwMDRGNgorOjEwQjhDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDE5QzAwREYwMDNGQzBBRAorOjEwQjhEMDAwMEZEMDAzRjQwMERDODAzNzYwMEZFODAzRkEwMERGMDFDQgorOjEwQjhFMDAwM0ZDMDBGQzA0M0U2NENFRkEwM0Y0NDBGQTAwM0Y4MDA1OQorOjEwQjhGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzQwREIwMDM2ODAxQgorOjEwQjkwMDAwMEM5ODAzMjYwMEY4MDAzRUMwMEUxODAzODQwMkUzMDFFMQorOjEwQjkxMDAwMzhDMTBFQjQwM0FDODBDQTE4M0FEMDJDMzAwMzEwMDRERQorOjEwQjkyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzRjQwQjk4ODJFODBCQworOjEwQjkzMDAwMDhCQzAyQTMwMEIwMDAwRUMwMDhCMDA2MjAwMDhGMDRBRgorOjEwQjk0MDAwMjNDMTA4QjkxMjJGMDA4MzgwMzY0MDA4QUQwMjMyMDBBRgorOjEwQjk1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjIwMDJDQzBEOAorOjEwQjk2MDAwMDkzMjAyODQwMDMzMDAyQ0IyMEEzNjEyOEMwODkzMDU4NworOjEwQjk3MDAwMjBDMDBCMTgwMkVEMDA5MTgwNkEwMDA4MTAwMjM4MDAwOAorOjEwQjk4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwQjc4MDJERTBFNAorOjEwQjk5MDAwMDk3ODAyOTc0MEI0ODAyRkEwMDhFODAyMEU0MDk3ODJGMQorOjEwQjlBMDAwMjFFMDk4Njg4MjFBMTg5RDkwMkRBMTE4NTgwMjA4MDA2RAorOjEwQjlCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQ0MwRjMwMDNFQzAzQQorOjEwQjlDMDAwMERCMDQzODQ0MEYwMDAzQzgyMEUzODEyOEM0NEYzMzBCQQorOjEwQjlEMDAwQkFDMTFFMTA0NzhFMjJEMTEwMzgxODBDMzA4MzEyMDJDMworOjEwQjlFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzQwRkYwMDNGQzAwMAorOjEwQjlGMDAwMEVFMDAzRjQ0MEZDMDAzREM0MEZEMDAxRjQ0MUVGMTgwOQorOjEwQkEwMDAwM0ZDNDFGRjAwM0Y4NDhFRjE0MzM4MDBGQzEwM0QwMDY4MgorOjEwQkExMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVGQzQwRkIwMDNFQzBFNAorOjEwQkEyMDAwMEY5ODAzMjQwMENCMDAzRTQwMEZCMDAzQTgwMERCMjg5MgorOjEwQkEzMDAwM0VDNDFGOTAyM0VDMDBDQTAwMzJFMDBDOTAwM0VBMDBFMQorOjEwQkE0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzgwQjcwMDJEQzA2RAorOjEwQkE1MDAwNEI1MDUyMTQwMEQ0MDEyRDgwMEI2MDAyRDgwMEE3MjA1NworOjEwQkE2MDAwMkRDNTBCNDAxNkRDMDA4NDAwMjNDMDA4NDAwMkQyMDQyMAorOjEwQkE3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTgwQjc4MDJERTA0NAorOjEwQkE4MDAwMEI3ODBBOTYwMDk0ODAyRDYwMUI3ODA2RDIwMEE3ODA2MAorOjEwQkE5MDAwMkRFMDBCNzgyMkRFMDA4NzgyMjFFMDA4NTgwMkYwMDBCQQorOjEwQkFBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjNFNDJDQzBDQgorOjEwQkFCMDAwMUIyMTAyODEwMDkwMDAyQ0M4MEIzOTAyQ0UwMEEzMDA4QworOjEwQkFDMDAwMkNDMDBCMzAwMkNEMDA4QjIwMjBGMDA4QjIwMkQyMDQzMworOjEwQkFEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkVBMDNGODIzMgorOjEwQkFFMDAwMEZFODAzOTgzMEQ2MDAzRkEwMEZFMDAzQkFDMEZBMDA3OQorOjEwQkFGMDAwM0U4MDBGRUMzM0Y4MDJDRTAwQjNCODJDRUM4M0ZBMDQ4RQorOjEwQkIwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDE4Rjg0MDNFMDAxRgorOjEwQkIxMDAwMEY4MDAyNjA4NEY4MDUyRTA0OEY4MDQxRTAwMDc4MDJENworOjEwQkIyMDAwM0UwMDBGODE4M0UwMjBGODAwQkUwMjBGODAwM0QyMDBBOAorOjEwQkIzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNjE4RjkyMDNFNDAyOAorOjEwQkI0MDAwMEY5QzAzRTQ0MEM5MDAzMjYxMEM5MDEzQzQwOEM5MDE4MgorOjEwQkI1MDAwM0U0MTBGMTgwMzI0MDBDOUEwMzI0MDBGOTg0MzAyMDQ0RAorOjEwQkI2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NTAwQjFDMDIyNDBFOQorOjEwQkI3MDAwMEI5QzAyRTcxMDg5MDAyODQ0MDg5NDIyRTQxMDg5MDBGNQorOjEwQkI4MDAwMkU0MDBCOUYyMjI2NjA4OTgwMjI0MDBCOTEwQTIwMDBDNAorOjEwQkI5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDgwQjkwMDJFQzAyRAorOjEwQkJBMDAwNEJCNDAyRTQyMDg5MjAyMjQwMDg5NDAyRUMwMDg5MDA3MgorOjEwQkJCMDAwMkU0MTBCOTAwMjA0MDA4OTQwMjI0MDBCOTAwMjA2MDBBNworOjEwQkJDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjEwNDIwNDAxMAorOjEwQkJEMDAwOEIxMDAyRTQwNTgxMDAyODQwMjgxMjEyQzQ4MjgxMjBDMworOjEwQkJFMDAwMkM0ODBCMTIwQTA0ODI4MTAwMjA0ODBCMTIwMjAyMDEyOQorOjEwQkJGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2OEEwRkEwMjNFMTQyQQorOjEwQkMwMDAwMEY4NTAzRTAwMEM4MDAzMjAwMEM4NTAzQzE0MEM4NTMxMworOjEwQkMxMDAwM0UxNDBGODAwMzAxNDhDMDUwQjIxNDBGODUwMzJFMDM1OQorOjEwQkMyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDAwRkQwMEJGNDAyRgorOjEwQkMzMDAwMEY1MDEzRDQwMkZEMDAyRkMwMEZEMTAzRjQ0MEY5MTBCMAorOjEwQkM0MDAwM0U0NDBGRDEwM0Y0NDBGRjAwQkY0NDBGRDEwM0U2MDY4QQorOjEwQkM1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNkEwRkQwMTNFNDQ1MQorOjEwQkM2MDAwMEZEMTAzRDQwMEM1MDAzMzQxMEZEQjAzMjcyMEQ5RTBGNworOjEwQkM3MDAwQjI3MDBEREE4M0Y2NDBDRjEwMzI3ODJEREEwMzA2MDA2OQorOjEwQkM4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTAwQjgwMDJFMjgwRAorOjEwQkM5MDAwMEI4ODQyRTAxMEQ4MDAyMjAwMEI4QzBBMjMwMDg4QzBEOQorOjEwQkNBMDAwMjIyODA4ODQwMkMyODA4MEEwMjIzMDQ4QUE4MjBFMDQ4MgorOjEwQkNCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDJDNDA2NgorOjEwQkNDMDAwOEIxMjAyQzQwMDk5MDIyODQwOEIxNjAyODQ4MTkxMzBBNQorOjEwQkNEMDAwMjA1ODA5MTAwMkM1MDA4MTAwNjQ0RDA4MzQwMjAyMDE5OQorOjEwQkNFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBQzBDQjkwNDJFNDhDQworOjEwQkNGMDAwMEI5NDA2RTQwMDk5NDBBQTQwMEI5MjIyQTQwMDg5MDAwQworOjEwQkQwMDAwNjA0MDA4OTQwMkU0MDA4OTgwQTY1MDA4OTIwMjA2MDQ2QworOjEwQkQxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjk5ODNFNDgxMworOjEwQkQyMDAwMEY5ODAzRTUyMEQ5MDAzQTY0MEY5NDgzQTRDMEQ5MDI4OAorOjEwQkQzMDAwNzI0MDREOTA0MkU0ODJDOTQwMzY0MDBDOTAwQjI4MDQ3QQorOjEwQkQ0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBQzI4Rjk4ODNFNDA4NworOjEwQkQ1MDAwMEY5OTEzRTcwMEY5QzAzNjYwMEY5MDAzNjYwMEYxMDBGOQorOjEwQkQ2MDAwN0U0MDBGOTkwN0U0NjBGOTAwMzg0MDBGOTgwM0NBMDAzRAorOjEwQkQ3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjgxMDMyMDA1MQorOjEwQkQ4MDAwMEY4MjBCMjEwMEU4MDAzNjA0MEM4NjAzRTEwMEQ4MDA4NgorOjEwQkQ5MDAwMzIwMDBGODAwMzYxMDBDODAwMzIwMDBGMDAwMzBBMDQ2NAorOjEwQkRBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODIwQkUwMDIyODA5RQorOjEwQkRCMDAwMjhFQzAyMTkwNDgyMDAwMzgwMERFNDgyRTgwMDhBMDE2NQorOjEwQkRDMDAwQUE4MDhCRUQ4MjNCODA4RTkwMzY4MDBCRTAwMzRBMDA4OAorOjEwQkREMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0MjAwQjM4MDIwQzBBMQorOjEwQkRFMDAwNkIzNDE2NDBDMDgzMTAyNDcyODhCMDAyRUMwMDgzMDBDQworOjEwQkRGMDAwMjRDMDBCMDQwMjZGMDk5QjAwMjRDMDBCMzAwMjBBMDAxMAorOjEwQkUwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNDAwQjc4MDIzRTRFRgorOjEwQkUxMDAwMjg3ODgyNzQxNDhGMDA2MUUwMDk1MDEyREMwNDg3MjJCNAorOjEwQkUyMDAwMjVDODFCNzgwMjE0MDA5NDQwQTVDMDBCNjAyMjY4MDA0RQorOjEwQkUzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxMjIwQjc4MEIxRTAxOAorOjEwQkU0MDAwOEZGODAzMTIwMkU3ODAzNUUwMEM2ODA2Q0ZDMkNGQjA0RQorOjEwQkU1MDAwMjVGNDBGNTgwMzVBMDJENTgwNzVGQTRGRjgwMzJBMDJDOQorOjEwQkU2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBNTkwRjMwMDNEQzA4OAorOjEwQkU3MDAwNEZCMDEzQTgwNEZCMDAzQ0MwMEY4MDQzRUM4MEVCNjA4NAorOjEwQkU4MDAwM0FDOTBGMzAwM0VDMDBFOTAwM0VDODBGQTAwM0MyMDYxOAorOjEwQkU5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGNjAwRUU4MDNGRTBCQQorOjEwQkVBMDAwMEQ4OTAzRDI0MEU1ODEzOUUwM0NGOTA3RkUwMENGODhENworOjEwQkVCMDAwM0ZFMDBGRTgwM0YyMDhDRTgwMzNFMDBDRjgwMzAwMDAwNworOjEwQkVDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5NDQ0QzYwMDJGQzBCQworOjEwQkVEMDAwMDg1ODAyRDBDNDg1MjQyMTkwMDg1NDEyREM4MjA3MDAzRgorOjEwQkVFMDAwMkRDMDBCNzAwNkQ0MDA4RTQ4MjFDMDBBNjAwMjJBMDRCRgorOjEwQkVGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQTc0MDJEQzA3MgorOjEwQkYwMDAwMDg0MjAyRDAwMEFEMDAyOUMwMDg3MDIyREMyODg3MDA1QQorOjEwQkYxMDAwMkRDMDBCNDAwMjk4MDA5NzAwQTBDNDA4NzAwMjAwMDBEQQorOjEwQkYyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzA4OTMwMDJDRTA0QQorOjEwQkYzMDAwMDgzQzIyQzEwMDgxMDAyMDgwODgxNTAyQ0UzMDgzMDA5OQorOjEwQkY0MDAwMkNDMDBCM0MwMkNDMDQ5M0MwMjBGNDRBMEM4MjA4MDRBMQorOjEwQkY1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBMDAwRTNDMDFGRTBCMgorOjEwQkY2MDAwNkMxMDgzRTAwNEVCMDAzQTUyNENCNDAzRkUwMkNGMDBBNQorOjEwQkY3MDAwM0ZDMDBGODQ0M0UxMDJEOEMyMzNDMDBDODQwQjJBMDRCMworOjEwQkY4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFOTAwRUIxMDNFQzRFQgorOjEwQkY5MDAwMEU5NDAzRTQwMEZCMTgzRUMyMEZCNjAzRUMwMEZCMDE1NQorOjEwQkZBMDAwM0VDMDBGMzUwM0M0MjhFQTQyM0VDMDBGODEwM0UwMDBDMworOjEwQkZCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzQwRkYwMDMzQzAxMgorOjEwQkZDMDAwMENDMEEzMzAyOENEQTAzM0MwMENFODAzMEMwMEVGMDU1MworOjEwQkZEMDAwM0RDMDBDQ0E4MzNDMDBDRDA4M0ZDMjBDQTAwM0MwNDQ0NgorOjEwQkZFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2NzAwQkI4MDIwQzAxQQorOjEwQkZGMDAwMDhBQTAyMDgwMEExMDEzNEQxMDhBNDEyMkMwMDhCMDA2OQorOjEwQzAwMDAwNkVDMDg4QjIwMjJDMDg4OTgwMkVDMDBBQTgwM0EwNDAwNgorOjEwQzAxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwQkE4MEEyQzBDMworOjEwQzAyMDAwMDhBODBBQTAwMDhCMDBBMkMwNDgxMTAyQUMwNDhCMDAzMworOjEwQzAzMDAwMkVDMDAwODAxMjJBMDg4QjE0MkNDMDA4ODgwMkUwMDA1MQorOjEwQzA0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQjIwMDIyQzAwNAorOjEwQzA1MDAwMDhCMjEyODAwMEFCMDEyNEMwMDgwMDAyMEMwNDgzMDA2NworOjEwQzA2MDAwMkNDMDA4MzAwMjA3MDA4MjAwMjRDMDA4MDgwMjgyMDFBOAorOjEwQzA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwRkIwMDMyQzA1QQorOjEwQzA4MDAwMENBMjAzQTAwMEM5MDAzMkMwMjQ5NDAzM0MwMkNGMDBEQworOjEwQzA5MDAwMkZDMDA0ODAwQjA5MDJDQjAxM0ZDMDJDQTAwM0MwMDNCQQorOjEwQzBBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlEQzAwRkQwMjNGQzBBRAorOjEwQzBCMDAwNEZFNDEzNzAwMEZEMDAzRkMwMEZDMjgzRkMwMEZGMDA3RgorOjEwQzBDMDAwM0ZDMDBGRjAwM0ZDMDBGRjAwM0ZDMDBGQzAwM0E4MDZGNQorOjEwQzBEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzIwRUYzMDNGMDRBRAorOjEwQzBFMDAwNkM4ODAzM0E0MkU0OTEzRjBEMEQ0ODAzM0NDMEZGMDJDNworOjEwQzBGMDAwMzM0NDBDRjQwM0ZDODJERjMwMzM2MDBERjEwMzMwMDA3NQorOjEwQzEwMDAwNzAwMDAwMDAwMDAwMDAwMEEwMTBFRDAwOEI3MDJFMThFMQorOjEwQzExMDAwODgyMjRBMkM4MkVBMjYyRTBDMEJCODQyM0Q4MEJGOTAyMgorOjEwQzEyMDAwMkE1NDI4QjQwMkNEMDBEQjQwMkE0QTQ4MzAwMkEwMDQzOQorOjEwQzEzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQ0IwQTMwMDZDMTBBNworOjEwQzE0MDAwMDkwMDgyMjA4MkEwMjAyQzg4NEI4MDAwMEM0MEIzMDE4MworOjEwQzE1MDAwMjA0ODBCMzYwMjhDRTA4MzY0MjQ0MDI4MzIwMjIyMDFGRQorOjEwQzE2MDAwNzAwMDAwMDAwMDAwMDAwMEUwMTFBQzAwOEIwMDJFMDAwOQorOjEwQzE3MDAwMDk4MDgwQTYwMEJBMTEyRTg4MEJCMDAwMkMwMEJCMDJFQgorOjEwQzE4MDAwMDI0MDA5QjAwMkVDMDA4QjAwMkNDODA4Qjg4MkIwMDQ1MQorOjEwQzE5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwRUIwMDNFOTI0MworOjEwQzFBMDAwMEQ4MDAzMEEyMEU5MDAzRTUwNDU4MDAxMkMwNEYzMDA3NQorOjEwQzFCMDAwOTA2MDA5QjAwM0VDMDA4QjAyMjY1MDhEQkMwMzEwMDQ4NAorOjEwQzFDMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDFCQzAwRkYwMjNGODBDMgorOjEwQzFEMDAwMEVGOTAyN0MyMkFGMDAzRjYwMDNDMDBCRkMxMEZGMDA5MQorOjEwQzFFMDAwM0Y0QTRFRjAwM0ZDMDBGNzAwMkI2MDBGNzAwM0Y4MDA4RAorOjEwQzFGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwMEIwMDAzOAorOjEwQzIwMDAwMEY4MjBCQTkwMEM5MDAzMkQyMEZBMDgzQUMwMENCMTA2MworOjEwQzIxMDAwM0U0MDBDQjAwM0VDMDBEQjAwMzI1MDJDOTUwMzEwMDRDMAorOjEwQzIyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzQzA0QkYwMjIyODA3RQorOjEwQzIzMDAwMEI5ODAwMjkwMENCNDAyMkMwMEIyNDAyM0MwODhGNTBGMQorOjEwQzI0MDAwMkU1MDBERjAwMkZENDI4RjU4MjJFMDQ4QjUwMjMyMDAxOAorOjEwQzI1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2QzAwQjMwMDI0NDAzNgorOjEwQzI2MDAwNEI5NDAwNDkwMDkwODAwNDMwMDkwMDBFNEMwMDgzODBGQworOjEwQzI3MDAwMkNDMDA5MzAyMjZFNDI4MzgwMjA0ODA4MzgwMjM4MDBFMgorOjEwQzI4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwQjc4MDY1MjA2MworOjEwQzI5MDAwMEI3ODgyN0EwODhDQzAyNUEzNEI3ODAyNUUwNDg3ODREMQorOjEwQzJBMDAwMkQ2MTg5NzgwMkRFMDQ4NzgwRTk2MjA4NzgwMjA4MDAzRgorOjEwQzJCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRkIwMDM0NDg2QgorOjEwQzJDMDAwMEYzQjAzNDgwMDkzNDgzNDUwMEQwMDAzNkMwMEMzMTAyQgorOjEwQzJEMDAwMUNDMjA1MzAwM0NDNDBDQjAwMzI0MDBDMjAwMzEyMDJCQworOjEwQzJFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzIwRkYwMTAzNDBEMgorOjEwQzJGMDAwMEZGMDIzMUMwMEZGMDAzQjgwMEZCMDIzM0MwMkZGNTBENworOjEwQzMwMDAwM0RDNDBGRjEwM0VDMDBFRjAwQjdDMDBGRTEwM0QwMDYwRQorOjEwQzMxMDAwNjAwMDAwMDAwMDAwMDAwMDg4MDVFQzAwRkIwMjNFRTAyOQorOjEwQzMyMDAwMEM4MDAzNDgwMkM4ODEzMjAwMEY5MDQyRUNBMEZCMTA0MQorOjEwQzMzMDAwM0VFMDBDQjEwM0VDNDBGQjEwMzI0MDFGRjAwMzJBMDAzQQorOjEwQzM0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjcyNDJEODAwMAorOjEwQzM1MDAwMDg3MDQyRDgxMDhDMDIyMTQwMEI1MDAyREQwMEU3MjAwQgorOjEwQzM2MDAwMkY0MDA4NzAwMkRDMDVCNzAwMjFDMDBCRjAwMjEyMDQ1OAorOjEwQzM3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc5MDJGNDA0OQorOjEwQzM4MDAwMEE2ODAyN0EwMDk3ODAyMUUwMEI3ODAyREUwMEI3ODAwRAorOjEwQzM5MDAwMkRFMDA4NzgwNkRFMDBCN0EwMjE2MDBCNzg0MjMwMDA1RgorOjEwQzNBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjMwMDJDQzBBNgorOjEwQzNCMDAwMEEzNDAyQzgwMDgzNEEyMEY4MEIzMTAyQ0MwMEEzMDBFMworOjEwQzNDMDAwMkNDMDA4MzAwMkNDMDBCMzAwMjBCMjBCMjA0MjEyMDQ3MworOjEwQzNEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwQkEwMDNGODgwNworOjEwQzNFMDAwMkVFMDQzNTk4OERFMDAzM0IwMEY2QzAzRTgwMEZBMDBGQQorOjEwQzNGMDAwM0U4MDJDQTAwM0U4MDRGQTAwMjNCODBGRTA4QjNBMDQzNworOjEwQzQwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDA0RjgwMTNFMDA2OQorOjEwQzQxMDAwMDk4MjIxRTAwMEY4NDBCRTE0MEY4NDgxRTAwMEU4MDBBQQorOjEwQzQyMDAwM0UwMDFGODAwM0UwMDBGODAwQkUwMDBGODgwM0QyMDAyQQorOjEwQzQzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRTEwMDMyNDA3RAorOjEwQzQ0MDAwMEM5MDQzRTQyMEQ5MDAzQzQ0MDg5MDAzMjQwMEY5MDFGNworOjEwQzQ1MDAwM0U0ODBGMTA0MzI1MDBDOTAwQjI0MDBDOTAwMzAyMDQ2RgorOjEwQzQ2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjkwMEEwNDAxQgorOjEwQzQ3MDAwMDg5ODAyRTYwOEE5NjAyRTQ5MDg5NDAyMjQwMEI5MDAzMQorOjEwQzQ4MDAwMkU3MDBCOTAwMjI2MDI4OTAwQTA0MDBBOTAwQTIwMDAxQworOjEwQzQ5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkwMDIyNDAzMAorOjEwQzRBMDAwMDg5ODA0RTYwMDk5ODAyRTQwMEFCMTAyMjQwMEI5MDBFMQorOjEwQzRCMDAwMEU0MDBCOTAwQTA0MDA4MTAxMjJDMDA4MTAwMjA2MDAwMQorOjEwQzRDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwQjEyMDIyNDg2MQorOjEwQzREMDAwMDgxODA2QzQwMEExMDAyQzQ4MkEzMDAyMDQ4MEIxMjJBQQorOjEwQzRFMDAwMkM0ODBCMTIwMjA1ODA4MTYwMjI1MDBBMTQwMjAyMDFCRQorOjEwQzRGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg1MDMyMTQ0OAorOjEwQzUwMDAwMEM4NTAzRTE0MEQ4NTAzRTE0MEU4MDBCMjE0MEZBMDAwOAorOjEwQzUxMDAwM0U5NDBGODUwMzIwMDBDMDAwMzIwMDBDODAwMzJFMDNFMAorOjEwQzUyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDQxRjkxMDNENDU1NgorOjEwQzUzMDAwMEZEMDAzRjQwMEZGMDAzRjQ1MEREMDAzRTQ0MEY5MTA5NQorOjEwQzU0MDAwM0Y0NDBGOTEwM0U0NDJGOTEwM0Y0MDBGRDQwM0U2MDY0NQorOjEwQzU1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNDAwRjkwMDNFNDBGMworOjEwQzU2MDAwMENEMDAzRjQwODhEMDIzRjQwMEZEMDAzRTQwMENEMDA0RgorOjEwQzU3MDAwMzM0MDBDOTAwMzI0MDBGOTAwMzI0MDRDOTgyMzA2MDAwRAorOjEwQzU4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwRTgwMDJFMDBGRAorOjEwQzU5MDAwNDg4MDAyRTgwMEQwMDAyRTgwMEI4MDEyRTAwMjg4MDA2NAorOjEwQzVBMDAwQTIwMDBBODAxMjIyMDBCODgxMjIyODA4Q0YwMjBFMDRCRAorOjEwQzVCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDJDNDA1RAorOjEwQzVDMDAwMjgxMDAyQzQwMDgxMDAyQzQwMEIxMDAyQzQwMDkxMDAwRQorOjEwQzVEMDAwMjY0MDA5MTAwMjU0QTBCNTJDQTU0MjA4NTA4MjAyMDE0MQorOjEwQzVFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwQTkwMDJFNTBFMworOjEwQzVGMDAwNTg5MDAyRTQ4MDlCMDAyRTQ1OEI5MjAyRTQwMDk5MDA0MworOjEwQzYwMDAwMjY0NDBCOTAwMjY0MDhCNTAwMjU0QTA4NTEwMjA2MDQyRQorOjEwQzYxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjkwMDNFNTQ5NgorOjEwQzYyMDAwMEM5MDQzQzQwMEM5OTAzRTcwMEY5ODAzRTQwMEQ5MDBGOQorOjEwQzYzMDAwMzQ2MDREOTAwQTY0MDBGOTAwMzY0MDJDOUUwMzI4MDRCMworOjEwQzY0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMDNDNDAzOAorOjEwQzY1MDAwMEY5QzAzRTYzMEY5MDAzRTYyMEY5MDAzRTQwMEU5MDAwRQorOjEwQzY2MDAwM0E0MDRFOTAwM0E0MDA3OTBDM0E0MDBGOTAxQkNBMDA0OAorOjEwQzY3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjgwMDNFMDA0QworOjEwQzY4MDAwMEM4MTEzRTEwOEM4NDgzMjAwM0M4MDAzQzAwMEYwMTA2MAorOjEwQzY5MDAwM0UwNjBDODAwM0YwMDhDQzAwMzMwNDBDQzAwMzBBMDRFRgorOjEwQzZBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQkEwMDJFODBBRAorOjEwQzZCMDAwMDhFQzQyRkEyMDhFMDAyM0EwMDhFODQyRTgwMEJFODA4MQorOjEwQzZDMDAwMkY4MDA4QTAwMkU4MDBEQTAwMjI4MDQ4RTAwMjBBMDA3OQorOjEwQzZEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjMwMDJDQzAwMgorOjEwQzZFMDAwMDkzNDgyQzkwMDgzODAyMEYwMDgzMDgyQ0MwMEIzODBGNgorOjEwQzZGMDAwMkNGMDA4QjAwMkMxMjA4MDAwQTAzMjA4MDAwMjBBMDAxRAorOjEwQzcwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQ0MwQjcwMTJGQzhBRAorOjEwQzcxMDAwODk1MDAyRDgwMjg3QzQyMUUyNDg3MDgyREMwMEI3MDA0OQorOjEwQzcyMDAwMkM0MDA4NzIwMkNFMDA5NzA4MjNDMDA4NzAwMjI4MDAyRgorOjEwQzczMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjdFMTNERThFRQorOjEwQzc0MDAwMkQ2ODAzRjIwMEM3ODBCMEUwMDg2ODAzREY4MEY2ODA0MAorOjEwQzc1MDAwM0RFMDhDN0UwM0RBMDBDQzgwMzEyMDBDQzgwQjJBMDIyRAorOjEwQzc2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzA4RkIwMDNDQzBGOQorOjEwQzc3MDAwMEU4MDAzRTAwOEY5MDAzRTQwMEZCMDAyRUMwMEZBMDAyMgorOjEwQzc4MDAwM0U0MDJGQjAwM0U0MDBGQjAwM0NDMDJGQjAwM0MyMDZDNAorOjEwQzc5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkY5MjdGRUEzQworOjEwQzdBMDAwMENGODAzRkUwMENDQTAzRjIwMERGOTAzM0UwMENGODAyMworOjEwQzdCMDAwMzM2MDBGRjgwM0Y2MDBFRjg0MzNFMDJDQzgwMzAwMDA2OQorOjEwQzdDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQjcwMDJGQzhGNgorOjEwQzdEMDAwMDg1NDAyRDgwMEQ2MDQyRDAxMDg2OTAyMUMwMDg1MDAwNworOjEwQzdFMDAwMjE0MzBCNzAwMzlBQzA4QzAwQTMwMjA4RjEwMjJBMDRCMworOjEwQzdGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcwMTJEQ0M4QworOjEwQzgwMDAwMDg3MDAyRDQwMDk0MjgyREMyMDhDMjAyNUMwMDg2MDA4MQorOjEwQzgxMDAwMjE4MDBCNzEwMkRDMDBBNzEwMjFDMDA4NDgwMjQwMDBGMworOjEwQzgyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzA4QjMwMDJDRjAxMQorOjEwQzgzMDAwMDgwNTAyQzAyMDkwODAyRTAwMDgwMDgyNEMwMjgwMDA3MworOjEwQzg0MDAwQTA2MTBCMzAwMkEwMDA4MDAwQTAzMDg4QjEwQTQ4MDQyQgorOjEwQzg1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwRkYwMDJEQzgzQgorOjEwQzg2MDAwMEMzRDAzRTQwMERCMDIzRUYwMkM5MDRCN0MwMEMxMDA0OQorOjEwQzg3MDAwMzIyMDRGRjAxM0UwMDBFODAxMzIwMDhDQUMwMzZBMDQ3MAorOjEwQzg4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwNDNFQzJERAorOjEwQzg5MDAwNEZCMDAzRTAwNEZBNDAzRUMyNEU5ODIzQUMxMEY4MDBCQgorOjEwQzhBMDAwM0U1MDA3QjAxM0FDMDBGQjAwM0VDMjBGOTIwM0EwMDA0NQorOjEwQzhCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQ0YwMDNGQzA4RAorOjEwQzhDMDAwMENDODIzMzY4MkNGODAzRjgwMENFMDAzRUMwMEY5MjBCNworOjEwQzhEMDAwMzNDMDBFRjAwM0Y4MTBEQzAwMzMwMDRDRTgyMTAwNDRCNAorOjEwQzhFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzAwQUIwMDJFQzA4RQorOjEwQzhGMDAwNEE4RDQyMjEwMDhCNDIyRUQyMDhCMDAzRUMwMEI4ODg0QQorOjEwQzkwMDAwMzQ2MjBEQjAwMkU0MDA4QjAwMjJDMDA4OTAwQTIwNDA3RgorOjEwQzkxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIwMDJFQzBERAorOjEwQzkyMDAwMDhBMDAyMEQwMDg5MTAyRTA4Mjg5MjAyRUMwNEJCMDAxQQorOjEwQzkzMDAwMjJBMDA4QjAwMjY0MDJCMzAyMjBDMDA4QTIwMkEwMDAzNAorOjEwQzk0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQTMwMDJFQzBGRQorOjEwQzk1MDAwMEE5MDIyMEMxMDgwMDAyQzAwMTgwMjgyQ0MwMEIwMDAzQgorOjEwQzk2MDAwMjY0MDA5MzAwMkM4MjA4MDAwMjAwMDA4MTAwNjgyMDFGRAorOjEwQzk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQ0IwMDJFQzA4NQorOjEwQzk4MDAwMENBMTAyMjQwMDg4MDAzQzAwMEM4MDAzRUMwMEZCMDA5QQorOjEwQzk5MDAwMzI4MDBFQjAwM0NDODBEQjAwMzJDMDBDQTAwMzgwMDNEOQorOjEwQzlBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDNGQzA4MAorOjEwQzlCMDAwNEZDMjEzRDQxMEZDMDAzRjAwMEYwMDAzQkMwMEZDMDA2QQorOjEwQzlDMDAwM0Y0MDBGRjAyM0UwMTJGQzAxQkYwMDBGRDAwMzY4MDJDQworOjEwQzlEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwQzc4MDMzQzBFQworOjEwQzlFMDAwOEJCNDAzQjBDMENGMkUxRjBDNEZDMzAzMzA4MEZGMDFBOAorOjEwQzlGMDAwM0YwODBGRjAwMDdDMDBGRjIxMzNFNDBDRTAwMzMwMDAxRgorOjEwQ0EwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFRTAwOEI4MjIzRjAxOAorOjEwQ0ExMDAwMEJCNTEyMEQ4ODg4QzAwRTk4MEI4NjAyMjEwMEJCQzA5MgorOjEwQ0EyMDAwMkVFNDRCRjc4MzJGNDRCRjkwMjJDODQ4QTY4MjIwMDRFRgorOjEwQ0EzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzA5OEEwMDIwNTA2QQorOjEwQ0E0MDAwNEJCMjBBODBDQzgzMDEwQzhDMEIyMzBBMDQ2MEIzMTQxNAorOjEwQ0E1MDAwMjQ0MDRCMzAwMkNDMTBCMzAwMjBDOEU5MTEwNjYyMDExQgorOjEwQ0E2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzAxOEE4MEEyNDRFNAorOjEwQ0E3MDAwMEJCMDAyQTEwNDg4NDAyRUEwMEIyMDAyMjgyMEJCNDA0RQorOjEwQ0E4MDAwMkU0MDBCQjAwMjJDMDhCQjAwMjJDMDA5QjAwMjcwMDQ3QgorOjEwQ0E5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwQzM4MzMyRTA5RAorOjEwQ0FBMDAwOEYwMDAzQTAwMkNCQzQzRTI4MDc4QjAzMjEwMEY5QzBFRQorOjEwQ0FCMDAwM0UxMDBGQjAwM0VDMDA3QjAwMzJDMDBEQTAwMzUwMDQwOQorOjEwQ0FDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDE5QzAyRkYwMDNGRTA1OQorOjEwQ0FEMDAwMEZGNDQzNUU4MEZDOTQzRjAwMEZDMDJCRjI1MEZEMjEwOQorOjEwQ0FFMDAwN0U4NDhGRjAwMzZDMENGRjAwM0ZDMDBFNjIwM0I4MDAyMQorOjEwQ0FGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRUIwMDMyNDA3RAorOjEwQ0IwMDAwMkM4MDAzNjkwMENCMzBCMjAwNEZCMzQzRTUwMENCNDAyQgorOjEwQ0IxMDAwNzIxODJDQjAwM0VDMjhDMzIxM0FDMTBGOTQwMzEwMDRGRgorOjEwQ0IyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzQzAwOEIyMDIyNTBCRgorOjEwQ0IzMDAwMDhCMDAyMjgwMDg4QzAyQTAwOEJCNDAyRTgwMERCMDA5RAorOjEwQ0I0MDAwNjIzMDA4RjAwMkZDMDA4RjgwMjJDMDBCOTU0NzMyMDA1MworOjEwQ0I1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjEwMDIwQzJEMQorOjEwQ0I2MDAwNDgzMDAyNDk4MDgzNDI2MDEyMEIzMDAyQzgwMDgyMDJDMgorOjEwQ0I3MDAwMkMzMDA5QjAwMkNGMDE4MzUwMkFDMDBCMjAwMkI4MDAyQworOjEwQ0I4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwOUQ4MEEwRTA3OQorOjEwQ0I5MDAwMDg3OTIyNUU2MDg3OTAyOUEwMEI3ODAyQzYwMDkyODFGNgorOjEwQ0JBMDAwMDVFMDA5NzgwMkRFNDA4NzgwMjFFMDBCMjkwMjA4MDBCOQorOjEwQ0JCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzQwRjIwMDMwQzBCNworOjEwQ0JDMDAwMDgzQTAzNDQwNEMzMTQzMEMwMEYyMjAzQ0M4MEMyMDBDRgorOjEwQ0JEMDAwQTREMjBEMzAxM0NDMjBDMzAwMzhDNDRGMDQ0MzEyMDIzQQorOjEwQ0JFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5QzAwRUUwMDNGRTAzRgorOjEwQ0JGMDAwMEY3MDAzQjQwMkY0MTAzRkMwOEZBMDAzRkMwMDdFMDA0RQorOjEwQ0MwMDAwM0JDMDBFRjA4M0VDMDBGNzAwM0ZDMDBGQzAwM0QwMDYxRQorOjEwQ0MxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVGQzAwRjkwMDNFQzAxNAorOjEwQ0MyMDAwMEZBMDAzQUExMkNCMDEzMjgwMEZCMDEzMjgxNEY5ODA5MQorOjEwQ0MzMDAwM0E0MDAzQjQwM0VDNDJDQjE4M0VDMDBGQjAwMzJBMDBDNQorOjEwQ0M0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5RDAwQjUwMDJEQzREOAorOjEwQ0M1MDAwMEI3MDRCN0MwMDg0MDAyMTgwMEI3MDAyOTQxMEIyMDA5QQorOjEwQ0M2MDAwMjlDMDBCNzI4MkRDMDA4NzIwMkRDMTBFNzAwMjEyMDRENQorOjEwQ0M3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc4MDJERTBCMgorOjEwQ0M4MDAwMEI2ODAyOUUwMDgzODAyMUUwNUIzODAyMUUwMEI0QzA2NgorOjEwQ0M5MDAwMjVFMDA5NzgzMkNFMDA5NzgwMkRFMDBCNUM0RTMwMDAwNQorOjEwQ0NBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjM0NDJDQzA1OQorOjEwQ0NCMDAwMEIzQzAyQ0M0MDkzMDgyMEUwMEIzMDAyOEMxMEIzQzAzOAorOjEwQ0NDMDAwMjhEODFCMzAwMkNDMDg5MzAxNkNDMDBBQjg4MjEyMDQyOQorOjEwQ0NEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRjYxMDNFODBCQgorOjEwQ0NFMDAwNEJFRDgzQjgwMENFRTRCM0EzMEZFMDAzMzgwMEZFMDBBMQorOjEwQ0NGMDAwM0I4MDBEQTAwMkU4MDBEQTAwM0U4MDBGRTgwMjNBMDQxMworOjEwQ0QwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDEwRjg0MDNFMDAxNQorOjEwQ0QxMDAwMEY4MDEzNjAwMEUwMDAzRTAwNDMwODAzRTAwMEY4MDhDNQorOjEwQ0QyMDAwM0EwMDBGODAwM0UwMDBFODQwM0UwMDBFODAyM0QyMDA2RQorOjEwQ0QzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBDNDAwRDlDMEJFNDA1MAorOjEwQ0Q0MDAwMEY5MDAzRTYwMEY5MDAzMjQwMDE5QTAzMjQwMEY5MDAzNQorOjEwQ0Q1MDAwM0U0MDBGOTAwM0M0NDAwOTEwMEU0MDBGOUEwMzAyMDQ5NgorOjEwQ0Q2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA0ODkwNEEyNjAxOAorOjEwQ0Q3MDAwOEI5RDgwQTYwMEI5ODAyMjQwNDg5ODAyMjQwMEI5MDAwQgorOjEwQ0Q4MDAwMkU0MDhCOTAwMkU0OTQ4OTYwMkU0MDBCOTQwQjIwMDA3RgorOjEwQ0Q5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOTkwOEFFNDhBQgorOjEwQ0RBMDAwNEIxMDAyRTU4MUI5MTAyMDQ0MUI5NDAyMjQxMEI5MDBGNQorOjEwQ0RCMDAwNkU2MDBCOTAwMkU0MDA4OTAwMkU0MDBCOTQwMjA2MDA4NgorOjEwQ0RDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwODkwMEEwNjgwMgorOjEwQ0REMDAwMEIxMjAyODQ4OUIxMjAyMDQ4MUExMjEyMDQ4MEIxMjI1OQorOjEwQ0RFMDAwMEM0ODBCMTIwMkM0ODFBMTIwMkM0MDBCMTIwMjAyMDEzQworOjEwQ0RGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwRDgwMEJFMDA3OAorOjEwQ0UwMDAwMEYwNTBCRTE0MEY4MDAzMjE0MEY4NTAzMjE0MEY4MDBCNAorOjEwQ0UxMDAwMkU4MDBGODUxM0UwMDJDODAwM0UxNDBGMDUwMTJFMDM3QgorOjEwQ0UyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDQwRkQwMEJGNDREOQorOjEwQ0UzMDAwMEZEMTAzRjQ0MDdEMTBCRjQ0NDVGMTJCRjQ0MEZEMTBBOQorOjEwQ0U0MDAwM0Y0NDBGOTEwM0U0NDBEOTEwM0U0MDBGRDEwM0E2MDZBMgorOjEwQ0U1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjAwRkQwMDFGNjJEMQorOjEwQ0U2MDAwMEZEODgyMzYwMEJEQTAzQjY4MENEQzgzMjZDOEQ5QTA1MQorOjEwQ0U3MDAwMzM2MDBEOTk4MzU2MjBENUE4MkU0NDBDRDg4Mzg2MDRBMAorOjEwQ0U4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTQ4QjgwMDJFMDBEQgorOjEwQ0U5MDAwMEIwQTgyMjIyMEI4NTAyMkJBMDg4QTIyMjI4MDg4MDBGNworOjEwQ0VBMDAwMjIwMTA4MEMwMjIwMDA4ODAwMkUyODg4ODgwMkNFMDQ2NworOjEwQ0VCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDJDNDA1NAorOjEwQ0VDMDAwMUIxMDBBODQ0MEIxMDAyODU4MEEzMjAyMDUwMDk5NDAxQworOjEwQ0VEMDAwMjA2NTA5MTA0MkM0MDA5MTAwMkM0MDBBMzA4MkMyMDEzMgorOjEwQ0VFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwQjkwMDJFNDBERQorOjEwQ0VGMDAwMUI5MDAyQTU4MEI5MTAyMjQ4MDgxMDQyMDQxMDA5MDBCNgorOjEwQ0YwMDAwMjI0MDA4OTAwMkU0MDA5QjAwMkM0MDBBOTQyMkM2MDRCMAorOjEwQ0YxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjkyMDNFNDA4MQorOjEwQ0YyMDAwMEY5MDEzQTcxMEY5NjBCQTUwMkU5QzBBMjU4NEQxRjBGNworOjEwQ0YzMDAwQjI2MDBEOTAwM0U0MDBEOTAwM0U0MDBFOTAwM0E4MDBCQgorOjEwQ0Y0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDBDRjk5MDNFNkE2NworOjEwQ0Y1MDAwOEY5MDIzNjYwMEYxMDgzQzQwMEY5QzQzRTQ0MEY5ODAyOQorOjEwQ0Y2MDAwM0E0NDBGOTAwMzI0MDRFOTAyM0U0MDJEOTExM0NBMDA3NQorOjEwQ0Y3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRTgyMDNFMDEzMgorOjEwQ0Y4MDAwMEMwMDAzQTEyMEU4NTAzMjEwMkM4QzAzMjEwMEU4MDA5MworOjEwQ0Y5MDAwMzIwMjBGMDAxMzIwODhDODA4MzIwMDBGOEMwM0NBMDAyOQorOjEwQ0ZBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODIwOEVFMzJGOTBCQworOjEwQ0ZCMDAwMEFFMDA2M0IwMEVFMDQyMzkwMDhFMDAyMjgwODhBMDJGQgorOjEwQ0ZDMDAwNzU5MDhCQTA0MTU4OTA4RTgwMkE4MTBCRTAwMzhBMTBDNworOjEwQ0ZEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0RTAwQTMwMDZDNjAyNworOjEwQ0ZFMDAwMDgzODFBOEU0MEEwODAyMENDMDkzMDAyMEMwNUEzMDQxQQorOjEwQ0ZGMDAwMjhDNDBCMzAwMjBEMDE4M0MwMjBDMDBCMzAwMkNBMDBEMAorOjEwRDAwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTA4ODcwMDJENjJGMworOjEwRDAxMDAwMEI3MDkyMUMwOEEwMDA2MUMwMDk2MDA2MUM4MEE3MDA2QworOjEwRDAyMDAwMjFDMDBCNzIwMjU4MDE4Nzg4MjlDMDBCNjAxMkE4MDAyQQorOjEwRDAzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRTY4MDNENjBERgorOjEwRDA0MDAwMEM3ODQyOTYwMEU0ODBBMzYwMEQ3ODAzM0YwMEUzODBGMworOjEwRDA1MDAwMjFFMDBGN0IwMzE2MDhDNzgwMzFFMjRGNzg0M0VBMDJENAorOjEwRDA2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MUQ4QzAxRjgwMDNDNDA5QQorOjEwRDA3MDAwMEVCMDAyRUMwMEY4MDEzRTQwNEUzMDMzRUQyMERCMDFGMworOjEwRDA4MDAwQkVDMDBGQjQwM0VDMDBGQjAwM0VEODBGQTAwM0MyMDZFNQorOjEwRDA5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwQzc4NDIzNjA1RgorOjEwRDBBMDAwMEM3ODBCQkUwMEZEODAzRkUwMEZFQjAzM0UwMENGODAwRAorOjEwRDBCMDAwM0IyNTBDRjg4MzdFNDBDRDgwMzNFMjBCRjkwMzAwMDA2MgorOjEwRDBDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAyODcwMDE1NDhCNQorOjEwRDBEMDAwMDg3MDAyMTQyMEI2MDAzNTlBNDlDODAzOUM4NEE3MDA0MgorOjEwRDBFMDAwMzlEMDBBNzAwMjFBMDhBNDAwMjFDMDA5NjE0MjJBMDQzQQorOjEwRDBGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwODcwMDIxNDA0QworOjEwRDEwMDAwMDg3MTAyOTQwMEI1MDAyRDQwMEJGMTIyNUMwMjA3MDg2MworOjEwRDExMDAwMkM1MDA4NzAwMjUwMDA4NzAwMkRDNDBCNTA0MjAwMDBCNAorOjEwRDEyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwODMwMjI0NDBGNgorOjEwRDEzMDAwMTgzRDBBMDEwMEIwNTgyNDIwMDkzMDAyOEY0MDgzRTBENgorOjEwRDE0MDAwMkNDMTBBMzA0MjA4MDBCMzAxNkNDMDA5MDgxNjA4MDQ1QgorOjEwRDE1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTU4QzAwOEIwMDMyNDA1OQorOjEwRDE2MDAwMEMyNTAzQTg0OEY4ODEzRTgwMEY4MDYzN0MwMENCODBBQgorOjEwRDE3MDAwM0FDMDBDRjAwMzZDMDBDQTAyQkZDMDBGOTg4QjJBMDQ5RgorOjEwRDE4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRjkwMDNFNTA0QworOjEwRDE5MDAwMkZBNDBCQzgwMEYwNDAzRUQwMEZBMDMzRUMyMEZCMDRCRQorOjEwRDFBMDAwN0FFMDBGQjAwM0VEMDhFOTAzMzJDMDBEOTAwM0UwMDAxMAorOjEwRDFCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBFQzQwRUUwMDNFQzAxNgorOjEwRDFDMDAwMENEQTAzNzAwNENDMDJCMUEwMEVGMDIzRUMwMEZGMDBENworOjEwRDFEMDAwMzcyMENEQjA3M0VDODhGQjgwM0ZDMDBGMzAwMzAwNDQ5NAorOjEwRDFFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2RTAwODg4MDJDRTEwNworOjEwRDFGMDAwMDg5NDBBQTkwMjg4NDAyMkQwMDhCOTQyRUMwNEJCMDA3NgorOjEwRDIwMDAwMkNENDBEQjAwMkVEMjBCQkQwMkVDMDBCQjAwMkEwNDAzQworOjEwRDIxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNDAwQUI4MDJFRjAwQworOjEwRDIyMDAwMjlBMDgyNkQwMDg4MDgyMjA0MDg5MDQyRUMwMEJCMDAwRgorOjEwRDIzMDAwMkE4MTA4QjAwMkU0MDlCQTA0MkVDMTRCOTg4MjIwMDA2QQorOjEwRDI0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwODMwMDJDQzAxRgorOjEwRDI1MDAwMEEyMTAyODQxMDgyMDBFMDAwMTgwQTEyQ0MwMEIzMDBGOAorOjEwRDI2MDAwMENDMDA5MzAwMkNDOTBCMDAwMkNDMDBCMTAwMjgyMDExRgorOjEwRDI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2NDAwRUIwMDNFMDAxNAorOjEwRDI4MDAwMkNCNDAzNjQwODg4MDBCMjAwMENCMjQzRkMwMEZCMDAxRAorOjEwRDI5MDAwNTYwMDBDRjAwMUU0MDBGQjAwM0ZDMDBGODAwQjAwMDNDMAorOjEwRDJBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGNDAwRkYwMDNGNDBGRgorOjEwRDJCMDAwMkRGMDYxRjAwMEY0MDAyNzAxMERCMTExRkMwMEZGMDIxOAorOjEwRDJDMDAwMDdDMDBGRjAwM0VDNDBGRjAwM0ZDMDBGQzAwMzY4MDYyQgorOjEwRDJEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGNjAwRUY5MDNENEMxQgorOjEwRDJFMDAwMkNDMDEzRjQwOEZEMjAzNzRDOEU4MjgzNzQ4NERDQzI3QQorOjEwRDJGMDAwM0ZEODBERjIwM0VDQzBGRjgxM0YwMDBDRjgwM0YwMDBCMworOjEwRDMwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFNjAwOEIyNDJFNUNGRQorOjEwRDMxMDAwMDg4RDAyRkY0OEI5OTAyRjU0MEI4NDgyM0U0MEEwODBCNAorOjEwRDMyMDAwMkVDNDBBRkM0MkVEODBCOTgwMkU2MDBBOTgxMkUwMDRGNworOjEwRDMzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVFNDAxQTMwMDI4NDgzOAorOjEwRDM0MDAwMEEwMDQyQzQwMEIxMDAyQzQ5MEIwQTQyMDRBMjkxMjFGOAorOjEwRDM1MDAwMkNDOTA4MzEwMjhDQzFBMzAwMkM0MDA4MTgwMkEyMDE3QworOjEwRDM2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBMDIwOEI4MjJFNDQzOQorOjEwRDM3MDAwNTg4MDAyRTQwMEJCMTAyRTQwMEJBMTEyMEMwMTg5MTA1MgorOjEwRDM4MDAwMkVDMDBBQjAwMkVDMDFCODgwMkVFMjBBQTEwMkYwMDQxRAorOjEwRDM5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQjQwRUI0MDNFNjBFNAorOjEwRDNBMDAwMEU4NzMzRTQwMEI5QTEzNkMwMEVBODBCMjYwMERBQzAwMAorOjEwRDNCMDAwM0VDMDhEQjAwM0VDMDBGQjg1M0VFMTA4QjgwMzkwMDU0QworOjEwRDNDMDAwMjAwMDAwMDAwMDAwMDAwMEUwMDFCODAwRkYwMjJGNjAxNAorOjEwRDNEMDAwMDNFODgzRkMxMEZEODAxRjQwMUZEMDEzQkU0MEVFMDQwNQorOjEwRDNFMDAwM0ZDMDBGRjA0M0ZDMDhGRDAwM0NDMDBGRDAxMUY4MDAxNworOjEwRDNGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNDAwREIwMEIyNDAwQworOjEwRDQwMDAwMEU5NDAzMjQwMEQ5MDBCQUMwMEMyMDAzRTQ5MEZCMDA2MgorOjEwRDQxMDAwM0FDMDBDQjAwM0VDMDFGQTAwM0VEMDJDOTgwMzkwMDQwMworOjEwRDQyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUwMzAwOEIwMDIyNDgxNworOjEwRDQzMDAwMDg4NDIyMkMwMEI5MDAyMkMwMDhBMDAyRUQwMDhCQTBCNQorOjEwRDQ0MDAwMjFDMDA4RjAwMkZDMDBCOTgwMkVDMDA4QTAwMjMyMDAwMgorOjEwRDQ1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0NTIwOTMwMDIyRjg5NQorOjEwRDQ2MDAwMEIzMDBBODQ0MEIyMDAyMDQwMDgxMDAyQzQwMDgwODBDMworOjEwRDQ3MDAwMjhDMDI4MzkwMjRDMDBCMTAwMkNDMDA4MzAwMkI4MDA4NgorOjEwRDQ4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDEzNjAwOUY4MDIxNjA1NQorOjEwRDQ5MDAwMDkzODAyOUUwMEIyQzAyMDYwNDg0ODEyRDZDNjg2RDAyNQorOjEwRDRBMDAwMjFFMDA4NzgwMERFODBCNzgyMkRFMDA4RjgwMjA4MDA0RAorOjEwRDRCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzIwRDMxMDMwQzhENQorOjEwRDRDMDAwMEYzMDAzODQwMEYxMDAzMDQwMjQxOTAzRTRDMEUwNDAzMQorOjEwRDREMDAwM0FDMDBDMzIwM0NFODBCMTI4M0NDMDBDMzAxMzkyMDIwQgorOjEwRDRFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5QzAwRTYwMDdGQzAxRQorOjEwRDRGMDAwMEVGMDIzNzQ0MEZGMTAzRjQwNEZEMDAzRkNEMkNFMDQwNworOjEwRDUwMDAwM0ZDMDBGRjQwM0ZDMDBGRTAwM0ZDMDBGNzEwM0QwMTJCOAorOjEwRDUxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFRTAwQ0IwMDE2QzA2RgorOjEwRDUyMDAwMEQ4MDAzMjcyMENCMDAzRUMyMEFCMDUzRTQyOEMxODFGRQorOjEwRDUzMDAwMzJDMTBFQjkwMzJDMDBGMTgwMzVFMDBDQjgwMzJBMDQ4NworOjEwRDU0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAyODcxMDJENDA3MAorOjEwRDU1MDAwMDg3MDAzNUMwMEE3MDAyRDQwMjg3MDAyRDQwNDg3MDRFMworOjEwRDU2MDAwQTFEMDBCNzIwMjFEMDBGNzAwMjFDMDBENTAwMjEyMDQ2MQorOjEwRDU3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwODU4MDI1RTBFMworOjEwRDU4MDAwMDk3ODAyMzcwMzg3ODAyRkUwMDg3ODEyQzYxMDhEODA1MworOjEwRDU5MDAwMjVFODBCMzgwMjFFODBCQzg0MjVFMDA4NTgwMjcwMDA4NAorOjEwRDVBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRDgwODM4ODJDQzBCQgorOjEwRDVCMDAwMDgzQzAyNEUwMUEzRDIyRUM0MDhCMTAyQ0MwMDgzODBFNQorOjEwRDVDMDAwMjRDMTBCMzAwMjBDMDBCMzQwQTBEMjA5MzAxMjUyMDAyQgorOjEwRDVEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQTAwQ0FDMDM2ODAyNAorOjEwRDVFMDAwMEQ2NzEzMjgwMENFMDAzRUEwMENFRDAzRTgwMENFRTA0RQorOjEwRDVGMDAwMzY4MDFFQTAwQjI4MDRGRTAwQjdCMjBDRTAwQjdBMDBBOAorOjEwRDYwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDQwRjgxMDJFMTAwQworOjEwRDYxMDAwMEY4MDAzRTAwMUQ4MEEzRTAwMEY4MDAzQzAwMkY4MDgyMworOjEwRDYyMDAwM0EwMDBGODAwM0UwMTBFODIwQkUwMDBGODAxMzkyMDA0NAorOjEwRDYzMDAwMjAwMDAwMDAwMDAwMDAwMDA4MTBFNTAwRkIwMDNFNDA1NAorOjEwRDY0MDAwMEM5MTAzMjYwMDYxODAzMjQwMEM5MDAzMjQwMEM5MDAzNQorOjEwRDY1MDAwMUU0MDBDOUMwM0U0MDFGOTAwM0U0MDBGOTAwM0MyMDAwMQorOjEwRDY2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NzAwQjkwMDJDNDA3QQorOjEwRDY3MDAwMDA5QzAyQTYwMDc5MDAyMjQwMjg5MDAyMjQwMDg5MDAyNAorOjEwRDY4MDAwMkM0NDA4OTgwMkU0MDBCOTgwMkU0MDBCOTAwMkUwMDE3RgorOjEwRDY5MDAwMDAwMDAwMDAwMDAwMDAwMDE4MDEyNDAwQkIwMDI2NTAxQworOjEwRDZBMDAwMjg5MDgyMjQ4NDk5MjAyMjQwNDk5MDAyMjQwMDg5MDBGNQorOjEwRDZCMDAwMkU0MDA4OTAwMkU0MDBCOTYwMkU0MDBCOTAwMkM2MDQ5MAorOjEwRDZDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNjAwQjEwMDJFNDhFMQorOjEwRDZEMDAwMDgxMjAyODQ4MEIxMjBBMDQ4MDkxMjBBMDQ4MDgxMDA0NworOjEwRDZFMDAwMkM0ODI4MTI0MkM0ODgzMTAwMkM0MDBCMTgwMkMyMDE3OQorOjEwRDZGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwRjg1MDM2MTQ3MworOjEwRDcwMDAwMEM4MDAzMjAwMEU4MDAzMjE0MEM4NTAzMjE0MEM4NTAyRgorOjEwRDcxMDAwM0UxNDBDODAwM0UxNDAzODAwM0UwMDhGODAwM0VFMDM4RQorOjEwRDcyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURENDAwRkIwNDNENDRBMAorOjEwRDczMDAwMEY1MTIzRDQ0OEVEMTAzRDQ0NEVEMTIzRjQ0MkZEMDA1NworOjEwRDc0MDAwM0U0NDhGOTEwM0U0NThGRDAwM0Y1MDBGNTAwM0U2MDYxRQorOjEwRDc1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNDAwRjkwMDNENDBEMgorOjEwRDc2MDAwMENEMDAzRjQwMEREMDIzRTQwMEM5MDAzRTQ0MEM5MTBFRAorOjEwRDc3MDAwMzc0MDA3RDAwNzI0MDBFNTAwMkY2QTBGNzAwMzA2MDAyQQorOjEwRDc4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwQjgwMDNBMDAwRgorOjEwRDc5MDAwODA4MDAyRTAwMDg4MDAyRTAwMEE4MDUzQTI4MDJDQTAyNgorOjEwRDdBMDAwMjIwMDBCODAwQTIwMDBCODAwMkUxMDA5ODAwMzBFMDQwRQorOjEwRDdCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDZDNDAwQgorOjEwRDdDMDAwMkExMDAyODQwMTgxODAyRTQwMDkxMDAyRjQwMDhEMDQ4OQorOjEwRDdEMDAwMjA0MDBCMTAwMjg0MDBCMTAwMkM0MDBCOTgwMjQyMDE0MworOjEwRDdFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNDIwQjkwMDJBNDBCOQorOjEwRDdGMDAwODhCNDAyRTYwMUE5MjAyRTQ4MEE5MDAwQTQ0MEFENDA1QQorOjEwRDgwMDAwMjI0MDBCOTAxMkE0MDRCOTAxMkU0MTBCOTAwMjA2MDQ5MQorOjEwRDgxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjlDMDNFNjBCOAorOjEwRDgyMDAwMEM5NDEzQTYwMkQ5NDIxQzYwMEM5RTAxQzYwNEMxMDBEMAorOjEwRDgzMDAwQjI0MDFGOTAwMkE0MDBFOTA4M0U2ODRGOTgwQjY4MDRBQworOjEwRDg0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNjQwRjkyMDM4NzA5OAorOjEwRDg1MDAwMEY5MTAzRTQwMEQ5ODAzRTQwMEY5QzEzQTQwMEY5MDAwRgorOjEwRDg2MDAwM0U0MDBGMTAwMzY0MTBGOTBBM0U1MDBEOUEwM0NBMDA5RgorOjEwRDg3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMTAwRDgwNDNFMDA1NQorOjEwRDg4MDAwMEM4MTEzQzAwMkQ4MjAzRTAwMkQ4NDAzRTAwMENDMDg5OAorOjEwRDg5MDAwM0EwMDBGODA0M0UwMDBGODQxMzIwMDA3ODE4QjBBMDQxMAorOjEwRDhBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzQTYwOEEwMDJGQTgzMAorOjEwRDhCMDAwMEFFMDIyRTgwMjdFNDgyRTgwMDhBMDQyRTgwNDhFMDA5QQorOjEwRDhDMDAwMjNBODBCQTg4MkU4MDBFRTAwQTI4MDRCNjAwMjBBMDBBOQorOjEwRDhEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTMwMDZDQzBEMAorOjEwRDhFMDAwMDgzMDAyQ0MwMDEzODEyQ0MwMDgzMDAyQ0U0MDgyNDBBOAorOjEwRDhGMDAwMjhFMDBCMzgwMkNDMDBCMzEwMjRDMDhCMzgwMjBBMDA5OQorOjEwRDkwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTAwODcyMDJGQzA3MgorOjEwRDkxMDAwMEE3MDAyREMwQUI2MDAyQ0M4ODg3MjA2RDgwMDg2MDA5RAorOjEwRDkyMDAwMjFDMDBCNzAwMkRDODRBRjgwQTVDMDBCRDAwMjI4MDBBMAorOjEwRDkzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRDc4MDNEQTBBNQorOjEwRDk0MDAwMUM3ODEzRDYwMkQ3ODAzREVDMDg3RTIzRkUwMENFODBFMworOjEwRDk1MDAwMzk2MDBGNzgwM0RGMDBGNjgwNzVFMDBGNzgwMzJBMDI0NAorOjEwRDk2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MUQ4QzAwRkIxMDNFODAzRAorOjEwRDk3MDAwMUZBMDIxQ0MwMEZBMDAzRUMwMEVCMDAzRTgwMkZBMDA1RQorOjEwRDk4MDAwM0U0MDBGQjAxM0VDMDBFQTAxM0FDMDBGOTAwM0MyMDYwQworOjEwRDk5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQzAwRkY4MDNGNjAwOAorOjEwRDlBMDAwMDg5OTA3N0UwMEREODAzRkUyMENGODAzRjYwMkRGODA3NQorOjEwRDlCMDAwQjNFMDBDRjgwMzNFNDFDQzgwMzNFNDBGRjgwM0MwMDAyMQorOjEwRDlDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzQwQjcwMDJEQzBBRQorOjEwRDlEMDAwMEQ1QTIyREM4MDc1MDAyREMwMDg3MTAyRjAyMDg3MDBFRQorOjEwRDlFMDAwMjFDMDBBNzAwMjFDMDBENDI4MjFDMDBCNzIwMkVBMDQ3NAorOjEwRDlGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzQwQjcwMDJEMDAwNworOjEwREEwMDAwMDg3MjIyRjQwMDg3MDAyREMyMDg3MDAyRDQwMDg3ODBCQgorOjEwREExMDAwMjU0MDA5MzAwMjVDMDFBRDAwMjlEMDRCNzAwMkMwMDBFNgorOjEwREEyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwQkJDODJDQTA4NworOjEwREEzMDAwMDkyMDAyQ0UwMEEzMDAyQ0UwQTgzRDQyQzIwMDhCODA0QQorOjEwREE0MDAwMjQ0MDBCMzAwQTZDMDhBMzQwQThFMDBCMzQwMkM4MDQ0MQorOjEwREE1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBRDAwRkY0ODNDMjg4MQorOjEwREE2MDAwMENBOTIzNkM4MDhCMDAzRkMwMENGQzAzRUMwMEQ4ODAxOQorOjEwREE3MDAwMzQ0MDBEMzAwMzdDMDJBMzQwMzg2ODBGMjQwM0VBMDRDRAorOjEwREE4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFRDg4RkIwMDNFNTBCOAorOjEwREE5MDAwMEZBMTAzRUMwNDNBQzAzRUMwMEZCMDgzRTgwMkY4MTBCNworOjEwREFBMDAwM0E0MTBFOTAwM0FDMDA5QjA4QjY0MDBGODEwM0UwMDBBMgorOjEwREFCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkYwMEIzMjA1NworOjEwREFDMDAwMEM1MDEzMUMwOUNEODMzM0MwODM3MDAwM0MwMERDMTA2NAorOjEwREFEMDAwMzI2MDBFRjE0MzJDMDBDRTA0M0I3MDBDRjA4MzAwNDQwNgorOjEwREFFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2NzgwQkIwMTYyMjE1QgorOjEwREFGMDAwOEE4OTIwMkMwMDgwRTAyMkMwMEJCMDAzRDgxMDhDMDQ0RgorOjEwREIwMDAwMjI0MDA1OTAwMkFDMDBEODgwMzY0MDBBOTAwMjIwNDBBNgorOjEwREIxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNjAwQkIwMDIyMDY2NworOjEwREIyMDAwMDg4MDAyMkUwMDg4MjAyMkMwMDlCMDAyQTQwMDk5MDBCQgorOjEwREIzMDAwNjJDNDA4QjAwNjJDMDA4ODgwMjI0MTA4QTAwMjIwMDBBMAorOjEwREI0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQjMwMDIwNDA2QQorOjEwREI1MDAwMEEwMDgyMEMwMDgwMDAyMEMwMEIzMDIyQTAwMDgxMDA0RgorOjEwREI2MDAwQTBDMDA5MzAwMjhDMDA5MDAwMjQ0MDBBMjgwMjAyMDE2MworOjEwREI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2MDAwRkIwMjIwMDAxQgorOjEwREI4MDAwMkM5MjAzMkMwMjg4MDAzMUMwMEJCNTAyQTQwMEQxMDRGMgorOjEwREI5MDAwMzI0MDBFOTAwMzJDNDBDOTAwM0E0MDhDQTAwMzAwMDM5MQorOjEwREJBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGNDAwRkYwMDJGMDA0NgorOjEwREJCMDAwMEZDMDAzREMwMEZDMDAzRkMxMEZGMDQzRjAwMEZEMDA4QworOjEwREJDMDAwM0Y0MDRGRDAwM0ZDMDBGNTAwM0Y0MDBGRTAwM0U4MDY2NAorOjEwREJEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVEODgwQ0MwMEI3MDQzMQorOjEwREJFMDAwNEVFMTAzM0MyMERGMTAzMTgwMDZGMDAzN0YwMEZGQzBEMAorOjEwREJGMDAwM0JDMDBFRjIwMzVFMDBFRjEwMzNEMDJDRjIwMzMwMDA3NgorOjEwREMwMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTBFOTAwODhDNjIwNUMyMQorOjEwREMxMDAwMDhBNDU3NjUwMDhGNTIyQUYwMDlGQzAyMDQwMEJCMDBEQgorOjEwREMyMDAwMkREOTA5NzQ4MzY0Mjg4MzQ0MjI4NDg4MDY4MjMwMDRCMQorOjEwREMzMDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVDOTAwODAxMDIwMDg2NgorOjEwREM0MDAwMDgzMTEyMDRCMkEzMDAyMDg0MUIzNDAyMEM4MEIzMjBEQworOjEwREM1MDAwMkNDNzA5MzYwMjhDODA5MzQwQUNDODA4MzEyODMyMDFBOQorOjEwREM2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBOTAwODgwMEEyNTA0QworOjEwREM3MDAwMDgzNTAyMjQwMDhCMDQyRUMxMDlCMDAyMjQ5NEJCMDA5NQorOjEwREM4MDAwMkVDMDBCQjAwMkNDNjA4QjAwMkU4MDA4ODAwMDMwMDRDOAorOjEwREM5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFNzAyQ0IxOEIyODAxMQorOjEwRENBMDAwMkNBQzBBMkUwOEVCMDAzMjEyNEVCMDAzMkI4MEZCMDA4NgorOjEwRENCMDAwM0FDMDBBQjAwM0FCMDhFQjA0MkU0ODBDQjg4MzAwMDQ0QQorOjEwRENDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNjgwRkY4MDM5Q0E0QgorOjEwRENEMDAwMERFODAzRDY0MEU3MDQzQjY2NEU3MDAzQjgwMEZGMDEzMQorOjEwRENFMDAwM0ZDMDZDRjAwMzcwMDZFNzAwMzEwNDBGQzE0M0Y4MDAzOQorOjEwRENGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTA4NTAwQ0I0MDMyOTAyMgorOjEwREQwMDAwMkZCMDBCNjQ4MEZCMDhCQTEwMERCMEE3MkQwMEZCMDRFOAorOjEwREQxMDAwM0VDMDhFQjAwMzZEMDBEQjAxMzI0MDhDMzMwMzkwMDRCMworOjEwREQyMDAwMjAwMDAwMDAwMDAwMDAwMEMwMDUyNDAwODNFMEEyRDAxNQorOjEwREQzMDAwNDBCMDAyMjUwNEJGODBBMDUwMDhGODAyMjAwMDhCMDJFQQorOjEwREQ0MDAwMkZEMDA4RjAwMjI0MDA4RjgwMzYwMTA4ODQ0MjM2MDA2QworOjEwREQ1MDAwNDAwMDAwMDAwMDAwMDAwMEU4MDU0NDAwODM0ODIwQzRBMworOjEwREQ2MDAwMDkwMDAyNDYwMEIzMDFBODkwMTkzMDEyOEMwMEEzMDRFOAorOjEwREQ3MDAwMkVFMjBBQjAwMjBDMDA4MzQ5MjhDMDA5M0MwMjM4MDA5OAorOjEwREQ4MDAwNTAwMDAwMDAwMDAwMDAwMEYwMDEzNjA0ODM4MDIxRTExMworOjEwREQ5MDAwMDgzODEyMUUyOEIzOTgyMUEwMTkzODgyOTYwMDg3ODM2QworOjEwRERBMDAwMkRFMjA4NzgyMjM2OEM4NzgwMkRFMDA5NzkwMjNFMDAyQQorOjEwRERCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwNDAwQzMzMDMwQzhFNAorOjEwRERDMDAwNEQwMDBCNEM4MEYzMTIzOEMwMEQzQTAyOEM4MEYzMDBFQQorOjEwREREMDAwM0NDMDBFMzAwQjBFMDBDMzBDM0FDMDBEMzAwMzEyMDJEMworOjEwRERFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCNDA2RkYxMDNGQzAwRQorOjEwRERGMDAwMEZCMDEzQkMwMEZGMTA3RkMwMEVGMUEzN0MwMEZGMTIxOAorOjEwREUwMDAwM0ZDMjBGRjUyM0JDNDFFRjE4Mzc4MEFFQzAwMzUwMDY2OAorOjEwREUxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAwREIwMDNFREExRQorOjEwREUyMDAwMEM4MDAzNjYxMDhCMDAzMjgwOENCNjAzNEEwMDRCODA1NgorOjEwREUzMDAwMzJDODBDQjQwMzBBMTBEQjAwM0VDMTBDQjA0MzJBMDAwOAorOjEwREU0MDAwNzAwMDAwMDAwMDAwMDAwMEM4MTFCNDAwODcwNDJDQzA1RQorOjEwREU1MDAwMEQ3MDAzMUMwODg3NDgyMDgxMEQ3MjgyNUMwMEQ3MDA3QQorOjEwREU2MDAwMjFDQzI4RjAwMjFDMTA4NzIwMkMwMDA4NDAwQTMyMDQyNAorOjEwREU3MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDA5NjAwQjc4MTJERTBFNworOjEwREU4MDAwMDg0ODAyMEUwNDg3ODAyMUUwMDg3ODAyM0UwMTg3ODA1RQorOjEwREU5MDAwMjFFMDE4NzkwMjNBMDE5N0EwMkQ2MDA4MzgwMjIwMDA4RAorOjEwREVBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDNjAwQTNDNjJDQzBEQgorOjEwREVCMDAwMDkzMDAyMEMwMTgzMDAyMEUwMDkzMDAyNEUwMDkzMDA3QgorOjEwREVDMDAwMjBDMDQ5MzAyMjBGNjQ4MzAyNkNENDI4MzAwMjEyMDQyRgorOjEwREVEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTFBQjgwRkFFMDNDODg1MAorOjEwREVFMDAwMENFMDAyMjgwMkNBMDBCM0E5MENBMDAzM0IxMENBMDAzMAorOjEwREVGMDAwQTI4MDBDQTAwQjM4MDBEQTAwM0ZCMDBDRTYwMzNBMDQxNQorOjEwREYwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBDMDIwOTgwODNFMDBBQgorOjEwREYxMDAwMEY4MDBCRTEwMEY4MDEzQzEwNEYwMDAzQTA0MEY4MDAxNworOjEwREYyMDAwM0UxMDBFODAwM0UwMDBGODAwM0MwMjJGMDQ5M0QyMDA2NAorOjEwREYzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwQzFDMTMyNDBDMQorOjEwREY0MDAwMEM5ODAzMjY0MEY5MDAzMjQwMEM5ODAzMjQyNEY5MDA3MQorOjEwREY1MDAwM0M2MDBDMTAwM0E0MDBGOTgyMzI0MDBDOTAwMzAyMDREMAorOjEwREY2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODkwMDIyNTA5RQorOjEwREY3MDAwMEQ5ODAyMjU4MEI5MDAyMjUyMEQ5QzAyMjQwMEI5MDBBMAorOjEwREY4MDAwMkU2MDA4OTA0MjI0MDBCOTQwMzY0MDA4OTAwQTIwMDBENAorOjEwREY5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOEQwMDIzNDA0MAorOjEwREZBMDAwMDgxMjAyMjQwMEExMTBBMjYwMDg5MjhBMjQwMEI5MDE3QworOjEwREZCMDAwMkU0NjA4OTAwMkE0MDBCMTUwMjI0MDI4OTA4MjA2MDAwQworOjEwREZDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDg0ODUyMEExRDg1RgorOjEwREZEMDAwMDkxMDAyMDQ4MEIzMjAyMDQwMjkxMjA2MDQwMEIxMDE3OAorOjEwREZFMDAwMkM0ODI4MTIwMjA0MDBCMTIwMjQ0ODA4MTIwMjAyMDEyMQorOjEwREZGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQyOEEwMEIzMDA3QworOjEwRTAwMDAwMEMwNTAzMjE0MEUwNTBCMjAwMkM4MDAyMjE0MEYwNTA2QQorOjEwRTAxMDAwM0MxNDBDODUxM0ExNTBGODUwMzIxNDBDODUyMzJFMDNBOAorOjEwRTAyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwRjkxMDNFNDQyQworOjEwRTAzMDAwMEZENDBCRjQ0NEY5MTAzRjUwNEYxMTAzRjQwMEY5MDBEMgorOjEwRTA0MDAwM0U0NDBGOTE1M0Y0MTRGOTEwM0Y0NDBGRDEwM0U2MDJGQworOjEwRTA1MDAwNzAwMDAwMDAwMDAwMDAwMDk4MDVFNkEwREQ4OEIzNjZBRgorOjEwRTA2MDAwMENEQzgzMzY4OEJEQTAzNzZBMENEQTBCMjUwMkM5NDA2OAorOjEwRTA3MDAwM0Y3ODRGOThCM0U1MDRDREEwNzI3ODBDRDg4QjI2MTQ2NgorOjEwRTA4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMzAwODg0MjIyMzFEOAorOjEwRTA5MDAwMDgwQTAyMjJBMEI4RjkyMjEwMEQ4NDEyNkE4MDg4ODAzMgorOjEwRTBBMDAwMkUyMDBCMDgwMkUyODBBOEE4QTIzODQ4QTgwMjBFMDA4MQorOjEwRTBCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNEEyODEwMDIwNDg5NAorOjEwRTBDMDAwMDgxMjQyNDUwMEIxMDAyNDQwMDkxNDAyMjQwMDgxMjBCNgorOjEwRTBEMDAwMkM1ODBCMTA4MkM0MDQ5MTQwNjQ2QzA4MzA4MjEyMDVFNQorOjEwRTBFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwODkwMDIyNDEwMworOjEwRTBGMDAwMDg5MDhBNjQ4MEI5MDAyMjUwMDk5MDA2NjQwODk5MDA0QgorOjEwRTEwMDAwMkU0MDBCOTAwNkM0MDFCOTAyMjY2MTg4OTAwMjA2MDRENQorOjEwRTExMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwQzkwMDIyNDBEQgorOjEwRTEyMDAwMkM5NDIzNjQwMEI5MDAzNjQwMDk5MDEzMDUwMEM5MDBGRgorOjEwRTEzMDAwM0U0MDRGOTAxM0U1QzBEOTAwMjY0MDJDOTQwMzI4MDBBMAorOjEwRTE0MDAwNzAwMDAwMDAwMDAwMDAwMDY4MDFBNDAyRTkwODNDNDBFMworOjEwRTE1MDAwMEY5MDBCQTQwMEYxMDAzRTQxMEY5MDQzQTQ4OEU5MDQwNgorOjEwRTE2MDAwM0U0MDBGOTAwM0U2MDBFMTAwM0E0MDlGOTI2M0RBMDBFMAorOjEwRTE3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTA4MDEwRTAwMTMyMDA2NAorOjEwRTE4MDAwOEY4MDAzMjAwMEQ4MDgzMDAxOEMwMDAzRTEwMkM4MDQwRQorOjEwRTE5MDAwM0UwMDBDODAwQjIxMDBDODAwNzgwMDBGODYwMzBBMDBBNworOjEwRTFBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEU0MDJCODI3RgorOjEwRTFCMDAwMEJBMDAyM0EwMDhFODAyMzgyMDhFMjAyMjgxMDhBMDAxNworOjEwRTFDMDAwMkY5ODI4QTAxMjI4MDA4RTIwMkU4MDRCRTQwMjBBMDBFRgorOjEwRTFEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAyQTI0MDIwODAwMgorOjEwRTFFMDAwMEJCMDAyNEU0MDkzQzBBMDIwMDgzNjAyOEMwMDkzMDA3MgorOjEwRTFGMDAwMkNFMjA4MzAwNjRDMTI5MzA4MjhDMDBCQjAwMjBBMDAyQgorOjEwRTIwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzA4ODI0MDI5NDBDRQorOjEwRTIxMDAwMEI3MDAyNUUwODg0MDgyMzQwMDg3MDA2MUM4MDg3MDA4QgorOjEwRTIyMDAwMkQyMDA4NzkxMjVDMDA5NDAwMkRDMDBCMzA0MjI4MDA4QworOjEwRTIzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTAwRTQ4MDMxQTE3QQorOjEwRTI0MDAwMEY1ODEzNzYwMEQwODAzMUMwMEMzODAzQkU4MEQ3ODFDMAorOjEwRTI1MDAwM0YyMDhDNzkwMzdGMDFENjgwMzlFODRGNjgwMzJBMDA3QworOjEwRTI2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURCRTAwRkEwMDNFMDA5MworOjEwRTI3MDAwOEY5NjBCQTQwMEVBMDAzQ0MwMEY5MDAzQUMyMEZCNDAzQgorOjEwRTI4MDAwMkUwMDBGQjIwM0FEQTBFQTAwM0VDMDBGQTAxQkMyMDRENworOjEwRTI5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTA4REU4MTMzQTQ5RAorOjEwRTJBMDAwMEVGQzEzM0UwMEZDODAxMzIwMEM2ODAzM0UyMEZGQzhDOAorOjEwRTJCMDAwM0Y2MDFERjgwMzdFMDBDNzgwMzNFMjBDRDgwMzEwMDBENgorOjEwRTJDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwODY0MTMxQzRDRAorOjEwRTJEMDAwMDg3OTQyOUMwMEJDMTAyMTQwODUzNTAzNUMwMEI3MDBFMgorOjEwRTJFMDAwMkRDMDA4NzIwMjJDMDBBNzAxMzdDMDA4NTE0MjJBMDAzNQorOjEwRTJGMDAwNjAwMDAwMDAwMDAwMDAwMDEwMDA4QzQwODIwMDI0ODFCQgorOjEwRTMwMDAwMDhEODAyMTQyMEI1MDAyMDQwMDk2MDAyMUM0MEI3MDA2NAorOjEwRTMxMDAwMkM0MDBCMzAyMkRDMDA5NzAwMjFDNDA4NDAwMjQ0MDA0RQorOjEwRTMyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRFQzAwOTIwNjIwOTAyNQorOjEwRTMzMDAwMzgxNTAyODYwMEI4MDA2MDUwMDkzMDAyNEUwMUJCMDA1QgorOjEwRTM0MDAwMkU0MDBCMzAwMkNFMjBCMzAwMjRGMDQ4MDIwQTU4MDRCRAorOjEwRTM1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwQ0EwMEE2OTQxMAorOjEwRTM2MDAwMkM5MDAzMkUwMEZCMDVCMjg1MEQ5MDAzM0Y5MEZGMDAxQgorOjEwRTM3MDAwN0U4MDFGRjA0M0ZDMjE5QTAwMzNDODNDQjIwMzZBMDQzQworOjEwRTM4MDAwNjAwMDAwMDAwMDAwMDAwMDkwMDBFQzAyRUE0MDNEODBDOAorOjEwRTM5MDAwMEYxMDkzRUQwMEZCNDAzRTkwOEYzMDAzRUM4MEZCMDBBQworOjEwRTNBMDAwM0U5MTFDQjAwMzJDMTBFODAwM0VDODFGOTAwM0E1MTAzRQorOjEwRTNCMDAwMzAwMDAwMDAwMDAwMDAwMDgwMTBGQzAyRTQwMDczQTBBOAorOjEwRTNDMDAwMENGQzAzN0MwMkZGMTAxM0M0MUNDMDAzM0MwMEZGMDBDNAorOjEwRTNEMDAwMzdFMDBERjAwM0ZDMDBFRDgwMzFDMDBDMzI2MzIwMDQwNworOjEwRTNFMDAwMzAwMDAwMDAwMDAwMDAwMDg0MDA2QzAwOEFDMDIyQjFGMAorOjEwRTNGMDAwOEFCODQzNEExMERCMjAyMEYwMEE5NDAzNkMwMEJCMDc2NAorOjEwRTQwMDAwMjJCODA4QjAwMkVDMTFFOEMwQjJDMDJBOTIxQTIwMDA2QgorOjEwRTQxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDEyQzAwQUE4MDIyOTg1QgorOjEwRTQyMDAwMDg5MDAyMkYwM0JCMDEyQTgzMDhCMjRFMkMwNEFCMDJEMgorOjEwRTQzMDAwMjJDNDI4QjAyMkVDMDlCMzUwNjJDMDA4QjAwMjIwMDAwOAorOjEwRTQ0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAxODMwMDYwODAxMAorOjEwRTQ1MDAwMDgxMjBBNDQwMDkzMDAyQTgwNEEzMDAyMEMwMEIzMDBEQworOjEwRTQ2MDAwNjBDMDA4MzAwMkNDMDBCMzAyNjBDMDA4MDA0NjAyMDE2MAorOjEwRTQ3MDAwMDAwMDAwMDAwMDAwMDAwMDgwMEQ2QzAwRTgwMjIyODAxNworOjEwRTQ4MDAwMkNGMjQzMkMwMEZCMDBCQUMwMDhBNTAyM0MwMEVGMDBCMAorOjEwRTQ5MDAwMzZDMDRERjAxM0ZENTFGQjAwMzJDMDBDQjAwMzIwMDExQgorOjEwRTRBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwN0UwNDNGODAyMgorOjEwRTRCMDAwMEYzMTQzRjAwMkZGMDAzN0MwMEZGMDAzRkMwOEZGMDBFQworOjEwRTRDMDAwM0ZDMDBGRjAwM0ZDMDBFRjAwM0JDMDBGQzAwM0U4MTY5NQorOjEwRTREMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMjQwRkM4MDNGMjRGNgorOjEwRTRFMDAwMEREODUzRDYwNERGMzIzRkNDNENDMDQzRkMwMERGNjA3NAorOjEwRTRGMDAwMzdDMDBGQzQwMzdDRDBERjIwMzNEODBERjg0M0YwMDBDMQorOjEwRTUwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMThFODgwQjAwMTJFMDhCNAorOjEwRTUxMDAwODg5MDAyRUMyMDhCNzAyRkNDMDhCMzgyRkRFMEJGNDBDNgorOjEwRTUyMDAwMjJEODBCOTMwMkZEQzBBRjEwMjhGMDA4QkMxMkYwMDRGMworOjEwRTUzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDAwQjAwMDJFMDE3QgorOjEwRTU0MDAwMEExMjgyRUM4MEIzMDAyQ0M4MEEwMDMyOEMwMEEzMzA3RgorOjEwRTU1MDAwMjBEMjA5MDAwMjhDODA4MzAwMjhEODBCMzQxMkYyMDFFQgorOjEwRTU2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVBQzAxQjgwMjJFMDBFMQorOjEwRTU3MDAwMEE5MDEyRUMxMDhCMDAyRUMwMEFCMDAwRUMwMEIzMDAyMQorOjEwRTU4MDAwMjJDMTBCOTIwMkNDMDFBQjAwMkFDMDAyQjAwMkYwMDRGRgorOjEwRTU5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFMDAwRkEwQzNFQzBFMgorOjEwRTVBMDAwMEZBMDEzRUUyMERCMDAzRUMwMkU4ODUzRUMwMEZCMDBEMgorOjEwRTVCMDAwQjJDMDhGQUM4M0FDMDhEQjAwMUFDMDRGQjAwM0MwMDRGQworOjEwRTVDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCODAwRkUwMDNGQzA0NQorOjEwRTVEMDAwMkRFMDAzRkU4MDdGMDAzRkMwMEREMjAzRkMwMEJGMDE5MQorOjEwRTVFMDAwM0VDMDBEQzgwM0ZDMENGRjAwM0ZDMDA5RjAyM0Y4MDAzQgorOjEwRTVGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNDAwRkE0MDMyQzE5QQorOjEwRTYwMDAwMEZBMDAzMjkwOERCMDAzRUMwMEU4NTAzRUMyMENCMDBFMQorOjEwRTYxMDAwM0FDMDBFQTQwM0VDMDBGQjAwM0FDMjBFQjAwMzEwMDQ5MworOjEwRTYyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQkE2MDIwQzBENworOjEwRTYzMDAwMEJBMDAyMDgwMEFGMDAyRkQwMEJCNTAyRkUwMjhGMDAyNgorOjEwRTY0MDAwMkZDMDBEODAwQTNDMDBCNzAwMjNDMjA1RjAyMjM2MDAxRgorOjEwRTY1MDAwNDAwMDAwMDAwMDAwMDAwMEMwMDQ0MDAwQjE4ODIwMDAxRAorOjEwRTY2MDAwMEIxMDAyMEMwMDgzMDAyRUM4MEIwODA2NEQ0MDgzMDBERgorOjEwRTY3MDAwMjBDMDA4MzAwNjBDMDg5MzIwMEFFMDRBMzAwMjM4MDAxNworOjEwRTY4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMTA1QTAwQjU5MDIxMjAyQQorOjEwRTY5MDAwMEI1ODQyM0UwMEE3ODAyREUwMEI2OTAyREU0MDg3OTJCNgorOjEwRTZBMDAwMkRFMDA5MTgwMjlFMDFCNzgwMjlFMDAzNzAwMjNFMDBBOAorOjEwRTZCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDg0NDAwRjEwMTMwMDA2NAorOjEwRTZDMDAwNUYxODAzMEMxMDgzMDAzQ0M0MEUwNDAzRUMwMDgzMDBBRAorOjEwRTZEMDAwMzBDNDBDMzEwMzhDMDBGMzAwMzhDODBFMzEwMzEyMDIzMQorOjEwRTZFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMTVCQzAwRkQwNEJGMDQ1NQorOjEwRTZGMDAwNEY1ODAzRjgwOEVGMDgzRkMwMEZGMDAxRkMwMEZGNEMzMworOjEwRTcwMDAwM0ZDMTBGRDAwMzNDMDBGNzAwMzdDMjBENzIwM0QwMDZBMworOjEwRTcxMDAwNjAwMDAwMDAwMDAwMDAwMDA4MDVFMjAwREIwMDMyQzBERAorOjEwRTcyMDAwNERBODAzMkMwOEZCMDA3RUM4OEZCMDBCNkY0NUVCQzJEMQorOjEwRTczMDAwMzZDMDA3QTAwM0VGMjBDQjUwQjJDMDBDNzkwMzJBMDBFQgorOjEwRTc0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTk5ODAwOEYwMDIxQzBGMAorOjEwRTc1MDAwMEI2MDAzNUMwMDM3MDAyREQyMEIzMDAyMENBODg3MjQxRAorOjEwRTc2MDAwMjFEMDA5NzAwMkREODg4NzJBMjNFODA4NzAwMjMyMDQ2QworOjEwRTc3MDAwNjAwMDAwMDAwMDAwMDAwMDIwMDBCNjAwOTc4MDIxRTA0QgorOjEwRTc4MDAwMEI2ODAyMUUwMEI3ODAyREU4OEI0ODgyMUU4MEEzODQ5MAorOjEwRTc5MDAwMjVFODBCNjgwMkNFMDI4NzgwMjFFMDA4N0EwMjIwMDA3QgorOjEwRTdBMDAwMjAwMDAwMDAwMDAwMDAwMDY4MDRDQzA4ODM4MjIwRTAwNAorOjEwRTdCMDAwOEIyQTAyNDg0MEIzMDAyQ0MwMEIzMDgyMEMwMDgzMDAyRgorOjEwRTdDMDAwMDBDMTA5MzEwMkNDMDA4MzAwMjBDMDA4MzAwQTEyMDRDNQorOjEwRTdEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVFODAwREFBMDMyQThEMAorOjEwRTdFMDAwOERBODAzM0IwMEZBMDAzRTgwMEZFNDAzNjgwMEVBMDJCNAorOjEwRTdGMDAwMzY4MDBGRTQwM0U4MDBDQTAwMzI4MDJDQTAwMzNBMDRGQworOjEwRTgwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDFBMDEwRjgwMEJFMjBEOQorOjEwRTgxMDAwOEZDMTAzRTAyNEY4MDAzRTEwMEY4NDAzRTAwMEY4MDFFQworOjEwRTgyMDAwM0UwMDBGODAwM0UwMDBGODAxQkUxMDBGODAwM0QyMDAwRAorOjEwRTgzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBBNDAwRjk0MDMyNDA0MQorOjEwRTg0MDAwQ0Y5MDAzRTQwMEM5MDAwRTUwMEYxQTAzMjYwMEY5MDAxMAorOjEwRTg1MDAwM0U0MDBGOTA4MUU0MDBGOTgwMzI0MDBDOTAwM0MyMDRFNgorOjEwRTg2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA0QjEwNDIyNDA3NQorOjEwRTg3MDAwMEI5MDAyRTQwMEE5MDAyRTUzMEI5MjBBMjY0OEI5MDQxQgorOjEwRTg4MDAwMkU0MDBCOTAwMkU0MDBCOTgwMDI1MDA4OTAwMkUwMDA5NAorOjEwRTg5MDAwMTAwMDAwMDAwMDAwMDAwMDM4MDUyNDAwQkQwMDIzNDBFNworOjEwRThBMDAwMEJEMDEyQzQwMDg5MDIyRTQwMEI5MDIyMjQwMEI5MDAyNAorOjEwRThCMDAwMkU0MDBCOTAwMkU0MDBCMTIwMjA0MDY4OTAyMkM2MDA1OAorOjEwRThDMDAwNDAwMDAwMDAwMDAwMDAwMDI4MTQxNDAwQkYxMkExNDAwNgorOjEwRThEMDAwMEI1MDAyQzQwMEExMjAyQzQ4MEIxMjAyMDQxMEIxMTFFRAorOjEwRThFMDAwMkM0ODBCMTMyMkM0MDBCMTQwMjA1QTA4MTAwMkMyMDE2OAorOjEwRThGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg0MDMyMTQzNAorOjEwRTkwMDAwMEY0NTAzRTE0MEM4NTAzRTE1OEY4NTAzMjFFOEY4NjhBNAorOjEwRTkxMDAwM0UxNDBGODQwM0UxRTBGMDI4MzJBOENDODAyM0VFMDNGQworOjEwRTkyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MTVDNDEwRjkyMDNFNDA3RgorOjEwRTkzMDAwMEY5MDAzRjQwMEY5MTAzRTQ0MEZEMTAzRTQwMEY5MjBENgorOjEwRTk0MDAwM0U0NDBGRDMwM0U0MDBGOTAwQkU0MDBGOTQwM0U2MDZGMworOjEwRTk1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVFNDAwRkQxMDMzNDBCNgorOjEwRTk2MDAwMENEMDAzMjQwMEQ5MDAzRjQwNENEMDAzRjYwMEZEOTBBQQorOjEwRTk3MDAwM0E0MDBDOTAwM0U2QTBGREE4Mzc2ODBDRDg4MzI2MDAyNworOjEwRTk4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDA4QzhBMDIyMDA1RAorOjEwRTk5MDAwMDg4MDAyMjAwMDg4MDAyRTAwMEM4MDEyRTAwMEI4ODA2MQorOjEwRTlBMDAwMjIwMDBEMEEwMkUzODBCMEMwMjAzNDA4ODQwMzRFMDQyNAorOjEwRTlCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDA4NDA5QTEwMDIwNDE1MAorOjEwRTlDMDAwMDg5MDAyMjQwMDkxMDAyQzQwMDgxMDAyQzUwMEIxNjA5QworOjEwRTlEMDAwMjA0MDA4MTBBMkM0MjBCMTI4MjQ0QTA4MTAwMjUyMDE4NQorOjEwRTlFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTRBNDAxODEwMEEyNDA4MworOjEwRTlGMDAwQTg5MDAwMjU0MDg5MDEyQzQwMDg5NDAyRTQwMEI5MDA0OQorOjEwRUEwMDAwMkE0MDA5OTAwMkU0MDFCOTA0MjI0MTQ4OTAwMjQ2MDREOAorOjEwRUExMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTRBNTIwRTkwMDMyNDBDMgorOjEwRUEyMDAwNEMxMDBCMjYwMEQ5MDAzRTQwMkM5ODAzRTQwMEY5MDA1RQorOjEwRUEzMDAwQjI0MDBDOTAwM0U0MDBGOTAwMzY0MDJDOTAwMzY4MDRDNworOjEwRUE0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MDFBNDAwRTkwMDNFNDAwMgorOjEwRUE1MDAwMEY5MDAzRTYwMEY5MDAzRTQwMEU5QTAzRTQwMEY5MDAyRgorOjEwRUE2MDAwMzY0MDBGOTAwM0U0MDBGOTAwM0M0MDBGOTAwM0RBMDBCOQorOjEwRUE3MDAwNjAwMDAwMDAwMDAwMDAwMDA4MTBBMTAwRjgwMDMyMDA1MworOjEwRUE4MDAwMEY4MDEzQTAwMEM4MDAzMjA0OEM4MDAzQTBDMEY4MDBERgorOjEwRUE5MDAwM0EwMDBGODAwMzIwMDBDMDA5MzIwMDRDODAwMTBBMDRCNAorOjEwRUFBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQkUwMDIwODA5MworOjEwRUFCMDAwMEJFMDAyODgwMEFBMDAwM0EwMEFFNjAyRkEwMDhBMDAxRQorOjEwRUFDMDAwMzI4MDBCQTAwMjI4MDA4RTgwQTM4MDI4MjAwMjhBMDBCQQorOjEwRUFEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU2QzAwQjM0ODIwNDAwMgorOjEwRUFFMDAwMEIxMDAyMEMwMDgzMDAyMEMwMDgzNDgyOEUwNDk5MDBCMQorOjEwRUFGMDAwMEFDMDFCMzAwMjBDMDI5MDUwMjA2MDA4MzAwMjBBMDA0RAorOjEwRUIwMDAwNTAwMDAwMDAwMDAwMDAwMDgwMTExQzgwQkQwQTIxNDg1OAorOjEwRUIxMDAwMEI1MjAyOUM0MEEzQTAyMDgwMEE2MDAyQ0UwMDg1MjBGOAorOjEwRUIyMDAwMjFDNDBCN0EwNjFFODA5NTIwMjE5MDA4NzAwMjI4MDBDRgorOjEwRUIzMDAwNDAwMDAwMDAwMDAwMDAwMDg4MDgxRTgwRjc4MEIxNzlDNgorOjEwRUI0MDAwMEZEQjAyM0UyMEM3QTBCMTYwQ0M3ODEzOTYwMEYxRjAzNQorOjEwRUI1MDAwMzlFMjBGN0IxMzBGMDBENEEwMzE2MDJDNzAwMzJBMDIxRQorOjEwRUI2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MTVBQzAwRjcwMDNFNDA2NworOjEwRUI3MDAwMEY5MDAzRUQ4MEZCMTAzRTQwMEJCMDIzRUMwMEY5MjAxQQorOjEwRUI4MDAwM0FEODBGQjAwQkVEODFFRDEwM0U4MDBGMzAwM0MyMDY3NgorOjEwRUI5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDRCRTIwRUU4MDMzNjAzMgorOjEwRUJBMDAwMENEODgzMUUwMDZGODAzM0UwMEZCODExMzIwNEY1ODA1QgorOjEwRUJCMDAwMzNFMDBGRjg4MzJGNDBGRTgwQjNFMDBDRjgwMzEwMDAyMQorOjEwRUJDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTg5QzAwQkMwMEExNDREOAorOjEwRUJEMDAwMDgxMDAzNUMwMDhGMDAyMTgwMEJFQTIyMUM4MEI1MDEyNQorOjEwRUJFMDAwMjFDMDBCRjAwMjFFODBCRTAwMjM4MDJBNzAwMjJBMDQ3RQorOjEwRUJGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzIwQTcwMDIzNDBFRgorOjEwRUMwMDAwMEI1MDBBM0MwMEE3MDAyNUMwMEE0MzAyMTAwMEI1MDBDMworOjEwRUMxMDAwMjFDMDBCNzA4MjFDODBCNDAwMjFDMDA4NzAwMjA0MDA2NworOjEwRUMyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMDQ4RTA0QjMwMDIyNDBGOQorOjEwRUMzMDAwMDkxNDAyNEMwMDgzMDAyMEMwMEIyNDgyMDQwMEIxMDBBMAorOjEwRUM0MDAwMjBDMDhCM0EwMjJDMDFCMDAwMjA4MDBBMzAwMjFBMDQ0NgorOjEwRUM1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTU5RTAwRUIwNDMzNDBDNworOjEwRUM2MDAwMkREQzAzMUQ2MEVGMDAzMjAwQ0Y5QTAzMjgwMEZEMDA2OQorOjEwRUM3MDAwMzNDMThCRkMwQjNDMDBGQzAwMzI4MDBDOTAwMzJBMDQ1NworOjEwRUM4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBBQzEwRjgwMDNFNDA3MgorOjEwRUM5MDAwMEU5ODIzQUMwNEZCMDAzQzAwMEY4NDIwRUQwMEY5MDAyQgorOjEwRUNBMDAwM0VDMDRGQjAwM0VDMDBGRDAwM0U4MDBGOTAwM0U0MDAzNworOjEwRUNCMDAwMzAwMDAwMDAwMDAwMDAwMDIxMTBGQzAwQ0Y4MDMzNDAzNQorOjEwRUNDMDAwMENEMDgzRkMwMEVGMDAzRjQwMENGMTQxMzAxMENEMDAzMAorOjEwRUNEMDAwM0ZDMDAwNzAxMzNDMDBFNDAwQjFEMDBDMTAwMzIwMDRDRQorOjEwRUNFMDAwMzAwMDAwMDAwMDAwMDAwMEExMDQyQzAwOEFFNDJBNDA0QgorOjEwRUNGMDAwMjg5MDAyRUMwMDhCMDAzRTAyMEE4MDAyMkM4Mjg5MDREQworOjEwRUQwMDAwMkVDMTBBQjAwQTJDMDA4OTAyMjJGMjJBOTgwMjIwMDBBMQorOjEwRUQxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAyODAxNDJBNDAzMgorOjEwRUQyMDAwMDg5MDAyRUMwOEFCMDQyRTg0MDgxMDgyODAxMDg5MDMzRQorOjEwRUQzMDAwMkNDMDRBQjAyMjJDMDBBQTAwMjI4MDA4OTEwMjIwMDA5OAorOjEwRUQ0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MTQyQzAwODAwMDI4NDA1MworOjEwRUQ1MDAwMDgxMTAyRUMwMDgzMDAyQzgxMEEwMDVBODgwMDAxMDA4RgorOjEwRUQ2MDAwMkNDMDBBMzAwMjBDMDA4MjAwMjA4MDBBMTAwMjAyMDEyRQorOjEwRUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQzkwMDNBNDBENworOjEwRUQ4MDAwMENENDAzRkMwMEVCMDAzRTQwMEM5MjAzQTAwMDREMDBBRAorOjEwRUQ5MDAwM0ZDMDBFRjAzMzNDODBFODAwMzJDMDBDOTAwMzIwMDNFQgorOjEwRURBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTFGQzAwRkMwMDNENDBFRAorOjEwRURCMDAwMEY1MDAzRkMwMjNGMDQzQjAxNEZDNDEzNzAwMEZEMDBFMQorOjEwRURDMDAwM0ZDMDFGRjAwMUZDNDBGQzAwM0ZDMDBGRDAxM0U4MDYxRAorOjEwRUREMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGOEUwRkY4MDNEQzBBQQorOjEwRURFMDAwMERGMzgyRjA4MEZGNDAzMUNCMENGMzAzRkQwNEVGQzE0MworOjEwRURGMDAwMzNFMDBGNzkwM0ZFMDBDRjQyMzNGMDRDRjgwMzMwMDBDQworOjEwRUUwMDAwNzAwMDAwMDAwMDAwMDAwMEUwMTBFOTA4Qjk4MTJGRjA1OAorOjEwRUUxMDAwMDhGNDUyRTkyMEJGNDAyM0YwMEFGMzAyRkQwODhCMDBGQQorOjEwRUUyMDAwMzZFMDBCODAyMkU4ODA4RjQwMjJDMDA4QjA4MjMwMDQ5OAorOjEwRUUzMDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVDQzAwQjE4MDJDQzVFNworOjEwRUU0MDAwMDkzMjQyQzhDMEIzMzEyMEMxMDgzMjAyQ0NENEJCMjA0MQorOjEwRUU1MDAwNjhDMDBCMzAwMkNDMjA5MzYwMjA4ODA4MzIwMjMyMDE1NworOjEwRUU2MDAwNzAwMDAwMDAwMDAwMDAwMEUwMTVBMDAwQkI4MDJFQzA3NAorOjEwRUU3MDAwMDhCMDAyRUEwMEJCMDA2MkMxMEFCMDAyQ0MwMEFCMDBERAorOjEwRUU4MDAwMkVDMDBCQTAwMEU4MDA4MzAwMjJDMTA4MzAwMjMwMDQyRAorOjEwRUU5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFODkwRkI4MDNFQzAwQworOjEwRUVBMDAwMERCMDAzRTIxMEZCMDAzMkMwNENCMDEzRUMwMEU5NTQ4QgorOjEwRUVCMDAwM0FDMDBGQjAwM0U2MDBDQjAwQjI0MDBDQjAwMzA0MDQyQworOjEwRUVDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCODAwRkYwMDNGQzAzQgorOjEwRUVEMDAwOEZGMDAzRjAwMEY3MDJCRkMxMEZGMDIzRkMwMERGMDY0NAorOjEwRUVFMDAwMzdDMDhGQzkwN0ZBOTJGRjA0M0Y1MDJGRjAwM0Y4MDA5NAorOjEwRUVGMDAwNjAwMDAwMDAwMDAwMDAwMDUwMTBBQzAwQzkwMDNFQzJERAorOjEwRUYwMDAwMEVCMDIzRTQwMEVCMDAzQUM4MEVCMDAzRUMwMEY5MDBBOQorOjEwRUYxMDAwM0VDMDBGQjQwM0E0MDBGQjAwM0U4MDBGQjA4M0QwMDRCQQorOjEwRUYyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyODAwOEI3NDJEQzBFMAorOjEwRUYzMDAwMDhGMDAyRTQwMDhGMDAyMUYwMDhGMDAyRkMxMEQzMDA3QQorOjEwRUY0MDAwMkVDMDBCOTAxMjJDMDBFRjAwMkVDMDBCQjYwMkY2MDA2NAorOjEwRUY1MDAwNDAwMDAwMDAwMDAwMDAwMEU4MDU0ODAwQTMwMDJDQzRBOQorOjEwRUY2MDAwMEEzMDAyQzAwMEEzMDA2OEYwMEEzMDEyQ0MwNEEyMDBFQworOjEwRUY3MDAwMkNDMDBCMzAwMkVDMDBCMzAxMkVDMDBCMzQwMkY4MDBBMQorOjEwRUY4MDAwNTAwMDAwMDAwMDAwMDAwMEIwMDEwQzAwODc4MDJERTg1OAorOjEwRUY5MDAwMDg3ODQyREEwMDg3ODAyNUUwMDg3OTAyQ0UwMDk2ODA2MgorOjEwRUZBMDAwMkRFMDBCRDkwMkRFMDBBNzgwMkRFMDBCNzgwMkZDMDBEQgorOjEwRUZCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzQwRTMxMDNDQzA4NgorOjEwRUZDMDAwMEEzODAzRTgwMEVCMDAzOEMyMEEzMDAzQ0MwMEUzNDAwMworOjEwRUZEMDAwM0NDMDBGMzQwM0NEMDBGMzIwM0M4ODBGMzAwM0QyMDIzNQorOjEwRUZFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCNDgwRkYwNDNGQzg4NgorOjEwRUZGMDAwMEZGMDgzRjg0MEZGMTgzQkMwMEZGNDgzRkMwMEVFMDJEMworOjEwRjAwMDAwM0ZDMDBGRjAwMzNDMDBFRjA4M0Y4MDBGRjAxM0QwMDYyNQorOjEwRjAxMDAwNjAwMDAwMDAwMDAwMDAwMDg4MDVFODAwQ0IwMDNFRjIyMAorOjEwRjAyMDAwNERCMjEzRTgwNENCMDEzMkY4NERCMjEzNkQyMEY4MDA1NQorOjEwRjAzMDAwM0VDMDBGMzAwMzI0MDBGQjAwM0U0MDhGQjgwMzJBMDA3RgorOjEwRjA0MDAwNzAwMDAwMDAwMDAwMDAwMEM4MTE4QzAwODYwMDJDQzA3OQorOjEwRjA1MDAwMDg3MzAyRDgxMjg3MzAyMENCMDhGMjAyMUQwNUI1MDBENAorOjEwRjA2MDAwMkRDMDBCNjAwMzUwMTBCNzA5MkRDMDBCRjAwMjMyMDQwNQorOjEwRjA3MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDA5RTAwODc4MDJERTRGQQorOjEwRjA4MDAwMDk3QTAyQ0UwMTg3ODAyMUVDMDk3ODAyNUU4MEI3QzA0MAorOjEwRjA5MDAwMkRFMDBCRjgwMjFFMDBCN0EwMkQ2MDBCNzgwMjIwMDBCNworOjEwRjBBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRFRTAwODI4MDJDQzAwOAorOjEwRjBCMDAwMDgzMDAyRUMwMDgzMDBBMEMwMDgzMDAyMEMwMEIzODBDRQorOjEwRjBDMDAwMkNDMTBCMzAwMjRFMDBCMzAwMkNGMTBCMzAwQTEyMDQ5RAorOjEwRjBEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQTgwQzYwMDNFODA0NQorOjEwRjBFMDAwMERBMDAzRjg0MENBMDAzMjgwMERBMDEzNjgwMEZFMDI5NAorOjEwRjBGMDAwN0U4MDBGRUQ4MzM5MTBGQTAwM0Y4QzBGQTAwMzNBMDQ5NQorOjEwRjEwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDEyRjg5MDNFMDA5RgorOjEwRjExMDAwMEY4MDAzRTAwMEY4MDUzRTAwMEUwMDAzRTAwMEY4ODBEOQorOjEwRjEyMDAwM0UwMDBGODAwM0UwNjBGODAwN0UwMDBGODAwM0QyMDBGNQorOjEwRjEzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwQzk4MDMyNjRDNAorOjEwRjE0MDAwMEY5MDQzRTQwNkMxMDQzQTQwMEY5MDAzRTQwMEU5MDA0NQorOjEwRjE1MDAwMzI0MDBGOTAwMzI0MDBDMTAxMzI0MDBDOTAwM0MyMDRERQorOjEwRjE2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODlDMDIyNDBEQworOjEwRjE3MDAwMEI5MDAyMjQwMDg5MDAyMjUwMUI5MDIyMjQwMDgxMDA2MQorOjEwRjE4MDAwMjI0MDBCOTAyMjI0MDhDOTAwMjA0MDA4OTQwMkUwMDA4RAorOjEwRjE5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOTkyMDIyNDAwMworOjEwRjFBMDAwMEIxMDAyQTQwMDg5MDAyQTU4MEI5MDAyODQwMEE5MDBDOQorOjEwRjFCMDAwMjI0MDBCMTAwQTA0MDA5OTAyMjJDMTA4OTA4MkM2MDA2NgorOjEwRjFDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwOTEwMkEwQzhGNAorOjEwRjFEMDAwMEIxMjAyMDQ4MDgxMjIyMDQ4OUIxMjAyMDQ5MDg5MDFCNAorOjEwRjFFMDAwMjA0MDBCMTAwMjA0MDI4MTIyMjI0MDA4MTAwMkMyMDFCQQorOjEwRjFGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQyREEwMTMyMDE5OQorOjEwRjIwMDAwMEY4NTAzQTE0MEMwNTAzQTAxOEI4NTIzQTE0NEU4NTBFQgorOjEwRjIxMDAwQjIwMDBGODUwMzIxNDhEODUxMzIxNDJDODUwM0VFMDMyOAorOjEwRjIyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNTAwRUQwMjNFNDQ3MworOjEwRjIzMDAwMEY5MTAzRjQ0MEY5MTAzRTQ0MEY5MTAzRTQ0MEZEMDBBOAorOjEwRjI0MDAwM0U0MDBGRDAwM0Y0MDBFOTEwQkY0MDBGOTAwMzY2MDY2NAorOjEwRjI1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNjIxQzUwMDMzNjhCQQorOjEwRjI2MDAwMEY5QTAzNkY4OEM5QzAzMzY4MEM5RTAzMjc4MEQ5NDA2QQorOjEwRjI3MDAwM0U0MDBGOTAwM0M1MTBEOUU4MzY1MDBDRDAwM0U2MDA4RAorOjEwRjI4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTA4ODgwMDgyMDBEMworOjEwRjI5MDAwMEI4RTgyRUJDODg4RTAyMjAwMjg4ODQyQTI4MDhBODBGOAorOjEwRjJBMDAwMjIwMDBCQUEwMkUyMDA4OEMwMjJBOTA4OEEwMzhFMDQ2OQorOjEwRjJCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNDAwODEwMDIwRDA5QworOjEwRjJDMDAwMEIxMTMyODQ4NDgxNjA2MDUwMDgxNjA2MDUwMDkxMjA3RAorOjEwRjJEMDAwMjA0MDBCMTA4MkU0MDk5MTIwMjQ0MDA4MTBDMkQyMDE4MgorOjEwRjJFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDA0ODkwNDIyNDBFQQorOjEwRjJGMDAwMEI5MDAyQzQwMEE5MDAyMjQxMDA5MDAyQTQwMDgxMDBFQQorOjEwRjMwMDAwMjI0MDBCOTIyMkU1ODA5OTAxMjI2MTA4OTAwMjg2MDQzNgorOjEwRjMxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTRBNTgyODE5MDMyNDAyRgorOjEwRjMyMDAwMEY5MDEzNjcwMkM5MDAzMjQwMEM5MDIzMjQwNEQ5QzAwNworOjEwRjMzMDAwQjI0MDBGOUMwM0U2MDBEOTAwMzY1MDBDOTAwM0U4MDQ1RAorOjEwRjM0MDAwNzAwMDAwMDAwMDAwMDAwMDY4MDBBNjgwRjkwMDNFNDA0OAorOjEwRjM1MDAwMEY5MDAzRTcwMEQ5MDBCQzQyMEY5MDUzRTQwNEY5MTA2QQorOjEwRjM2MDAwM0U0MDBGOTgwM0U2MDRFMTAwM0U0MDJGOTAwM0RBMDA5MAorOjEwRjM3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTA4MTEwNDgxMDMyMDhEMgorOjEwRjM4MDAwMEM4MDBGMjEwMkM4MDAzQTA0MEY4MDA3NjAwMEY4NDA4QgorOjEwRjM5MDAwQjIwMDBGODQwQjIwMDBEODAwMzYxMDBDODAwM0NBMDQ4MgorOjEwRjNBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDQyODA0OEU4MDIzODAzNAorOjEwRjNCMDAwMDhBMDQyMjgwMDhBMDAyM0EwNEJBMDAyRTgwMEJBMDA1RgorOjEwRjNDMDAwNzY4MDBCQTAwMjA4MDA4QTAwMzI4MDA4RTAwM0NBMDBBMQorOjEwRjNEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwODIwMDIwRDAwMgorOjEwRjNFMDAwMDgzMDAyMEMwMDlCMDAyOEMwMUFCMDAyNkMwMEIzMDI2NworOjEwRjNGMDAwMjBDMDBCMzAwMjBDMDBBMzAwMjJDMDI4MzQ4MkNBMDBCNworOjEwRjQwMDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExQzAwODcwMDIwRTBFOAorOjEwRjQxMDAwMDg3ODAyMEMwMDk3MjAyNUMwMEI3MTAyREM4MUI3MjAxMAorOjEwRjQyMDAwMjFDMDBCN0E0MjNDODA4NzIwMjFDMDA4NzAwMkU4MDA4RQorOjEwRjQzMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDgwRTgyQzc4MEIxRTBGNAorOjEwRjQ0MDAwMkNGQTA2MUUwOEQzQjEzOTYwNEU3ODEyNUVBMEZGRjA4OAorOjEwRjQ1MDAwMjFFMDBGRjgwMzFGMDhFM0EwMzNFMDBDNjgwM0VBMDI4MQorOjEwRjQ2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzQwRkIwMDNFQzA5MgorOjEwRjQ3MDAwMEZCMjAzRURBOEVCMTAzQTgwMEZCMEMzRUM0MEZCMDBENQorOjEwRjQ4MDAwM0VDMDBGQjA4M0VDODBFQjcwQkVDNDBGQjAwMzgyMDZBOQorOjEwRjQ5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTAwQ0U4MEIzNjA2OAorOjEwRjRBMDAwMEZGQzgzN0UyMEVGQjAzQkUwMEZCODAzM0UwMENGODExRQorOjEwRjRCMDAwM0ZFMDhGRjg4M0VGNDBGRkMyMzNFMTBDRjgwM0QwMDA0OAorOjEwRjRDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzgyODcxODIxODBCNQorOjEwRjREMDAwMEIzMDAyMUM2MEQ3MTAyMUQwMEI3QjAyM0MwMEQ3MDAwMAorOjEwRjRFMDAwMkRDMDBCNzAwMkRFMDBCRjAwQTNDNDA4NzAwM0FBMDQ4NQorOjEwRjRGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDBCQzExODcwMDIxQzA3NworOjEwRjUwMDAwMEIzMDAyMUMwMDkzMjA2OUMwMEI3MDAyMUMwMDg3MDBBNgorOjEwRjUxMDAwMkRDMDBCNzEwMkRDMjBCNzEwMjFDMDA4NjAwMjg0MDBFRQorOjEwRjUyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDRDAwODM0MDIwQzBENworOjEwRjUzMDAwNEIzMDAyMEMwMTgzMDAyMEMwMEIzMDAyMEMwMDkzODA4MgorOjEwRjU0MDAwMkNDMDBCMzAwMkNDMDFCMzAwMjBDMDA4MzAyMjk4MDQzQworOjEwRjU1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCRjIwQ0FDMDMyODBBMworOjEwRjU2MDAwMEZGMDAzM0UwMDlGMDAzQTgwMEZGMDBCM0MwMENGOTg1NQorOjEwRjU3MDAwM0VDMDBGRjYwM0ZGMDBGRjAwMzFFMDJDQjAwM0FFMDRFNQorOjEwRjU4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBDQzgwRkIwMDNFNTBDNgorOjEwRjU5MDAwMEZCMDAzQUMwMkZCMDA3RTUwMEZCMDAzRUMwMEZCMDA4OQorOjEwRjVBMDAwM0VDMDBGQjIwM0VDMjBGMzAwM0VDNjBGOTAwM0EwMDA1NAorOjEwRjVCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAyQ0Y5ODczQzg2QQorOjEwRjVDMDAwMEY3MDAzM0MwMEZGMDAzMzI4MEZCMDAyMUMwMDRGMDBGNworOjEwRjVEMDAwM0ZDMDBGRjAwM0ZDMDBGRjAxMzNDMDBDRTQwM0U0MDQ2MAorOjEwRjVFMDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2QzAwODM4MEEyRjg1RQorOjEwRjVGMDAwMEJCMDQyMkMwMEJCMDAzMjEwMEZCMDAzNkMwNEFCMDAwOAorOjEwRjYwMDAwMkVDMDBCQjAxMkVDMDRFQjAwMjJDMDRBOTQ4MkUwMDA0MgorOjEwRjYxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDU2QzAwOEEwMDIyMDAzRAorOjEwRjYyMDAwMEJCMDAyMkMwMEIzMDBBMkMwMEIzMDAyQUMwMEFCMDQ0NAorOjEwRjYzMDAwMkVDMDBCQjA0MkVDMDBCQjAwMjJDMDA4QjAyMkUwMDA5QworOjEwRjY0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDAwQzAwOEIwMTIwMDBCQQorOjEwRjY1MDAwMEIzMDA2MEMwMEIzMDAyMEMwMEEzMjBBQ0MwMEEzMDAxNQorOjEwRjY2MDAwMkNDMDBCMzAwMkNDMDBBMzAwMjJDMDRBMDAxMkMyMDEwMQorOjEwRjY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2QzAwOEIwNDIyQzBBNQorOjEwRjY4MDAwMEZGMTAzMUMwMEZGMDQzMkMwMEJGMjAzQkMwMEVGMDBCQgorOjEwRjY5MDAwM0VDMDA3RjAwM0ZDODBGRjAwQjJDMDBDQTAwM0UwMDNGMworOjEwRjZBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlEQzAwRjUwMDNGQzA4MQorOjEwRjZCMDAwMEZGMDAzRkMwMUZGMDIzQkMwMEZGMTAzN0MwMEZGMDBEMQorOjEwRjZDMDAwM0ZDMDBGRjAxM0ZDNDBFRjAwM0ZDMDBGQzAwM0U4MDYzRgorOjEwRjZEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVGMjQwQ0M4MDM3MjAxMAorOjEwRjZFMDAwMENEODAzQjA0NEZDMDgzRjBFMEZDMTAzRkMwMENDOTRCRgorOjEwRjZGMDAwM0YwQTJFQzQwMzdEODBDRjEwM0ZDMDBGQzA4MzMwMDA2RgorOjEwRjcwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMDhFMDkwODgwMjIyODE2NAorOjEwRjcxMDAwMDg5MjEzQTQ0MDNCNjAyMjE4MEI4MTAyRkNENDgxMDBBNAorOjEwRjcyMDAwM0FCMDBBOTQwMjNENDBBRjYzMkZERjBCOTgwMDIwMDRFQgorOjEwRjczMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVFMDAwODgwMDIwNDA0NAorOjEwRjc0MDAwODgzMDgyQzAwMEIwMDgyODgwMEExMDAyQ0MyMDgwMDFENgorOjEwRjc1MDAwMkM0MDFCMDYwMjhDOTA5MzYwNjhDMDRBMDA0MjIyMDEzNAorOjEwRjc2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVBMDAyODgwMDIyQzA1OAorOjEwRjc3MDAwMDhCMDAyRTQyMEJCODgyNjk4MEI4MDQyQ0MxODhBMDA4RgorOjEwRjc4MDAwMkVDMjFCOTgwMkFDMDBBQjAwMkVDMDBCOTg4MjMwMDQzNgorOjEwRjc5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTFFM0MwQ0IwMjMyMDA1NgorOjEwRjdBMDAwMkM4MDAzQUUwOEI5MDAzRTcwMEZCOTAzRUMwMjQ4NDg0NAorOjEwRjdCMDAwM0NDMDBGOEM5M0VDMDBEQjAwMUFDMDBFQUMwMzEwMDRBRAorOjEwRjdDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCMjAwRkYwMEJCODBGQworOjEwRjdEMDAwMEZDMDQzQjY0MEJEMDAzQjYwMEZFODAzRkMwMEZGOTQ0MAorOjEwRjdFMDAwM0JFNDBFNjAwRjZDMDhFRjAxM0ZDMDBGNjAwM0Y4MDBCMAorOjEwRjdGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBMTAwRkIwMDNFNjAxRgorOjEwRjgwMDAwMEZBMDAzRUQwMEY5NDAzQTAwMEY5MDAzRUMwMkM5MDQ4OQorOjEwRjgxMDAwMzJEMDBGOTAwMzJDMDhEQjAwQjZDMDBEQjQwM0QwMDQyNworOjEwRjgyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUwMDAwQjM4OTJFRTBBMQorOjEwRjgzMDAwMEJBNDAzQTQwMUI5MDAyRTAxMEI5MDQyRkMxMDg5NTBDNworOjEwRjg0MDAwQTJDMDhEQjQwMjNDNDQ4RjAwMjNDMDA4QjAwMkYyMDA3NQorOjEwRjg1MDAwNDAwMDAwMDAwMDAwMDAwMEMwMDQwQzAwQjA4MDJFMDAzQQorOjEwRjg2MDAwMEIxMjAyQzgwMEJBMDAyQ0MwMEIyMDAyQ0MwMEEyMDA3MAorOjEwRjg3MDAwMjAwMDJCMkQ5QTJFNDI4MzAwMjhDMDA4MjAwMkY4MDA3OQorOjEwRjg4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDAxRTA0QjQ4MDJEQTBFNQorOjEwRjg5MDAwMEI1ODAyOTIwMEI2ODAyREUwMEI2ODAyREU0MEE2ODA3NQorOjEwRjhBMDAwMjEyNDI5NDgwMjFFODA4NzgwNjlFMDA4NjEwMkM4MDA3RgorOjEwRjhCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MTgwQzAwRjAzMDNDNENGNAorOjEwRjhDMDAwMEYzMjAzQzg4MEIyMDAzODgwMEYxQjAzRUMwMEUwMzAxOQorOjEwRjhEMDAwMzAwNDBGQjEwMzBFODVDQjAwM0FDMDBDMzEwM0QyMDJDNQorOjEwRjhFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUNCQzAwRkMxMTNGQzRGMAorOjEwRjhGMDAwMEZCODEzQjAwNEZFMDIzRjgwMEZDMDAzRkQwMERGMTJGQgorOjEwRjkwMDAwMUQwNDBGRDA0M0JDMDFFRjEwMzNDNDBFRjMwM0QwMDYyNworOjEwRjkxMDAwNjAwMDAwMDAwMDAwMDAwMDA4MDVFRTAwQ0IwMDNFMDA4MworOjEwRjkyMDAwMEY4MDAzMjgwMEY4MDAzRTQwM0RCMDAzRUYwOEM5MDBGNworOjEwRjkzMDAwM0EwMDBDQTAwM0VDOThGQjIwMzJEMjBDQTgwMzJBMDI1OAorOjEwRjk0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwODcwMTJEODAxRAorOjEwRjk1MDAwMEI0MDQyMUMwNDM3MDBBMTQwMDg2MDAyQ0M4MDg3MDBBNQorOjEwRjk2MDAwMkQ4MDJFNzAwMkRDQTlCNzI4MjFEMDA4NzAwMjEyMDA2OQorOjEwRjk3MDAwNjAwMDAwMDAwMDAwMDAwMDIwMDBCRTAyODc4MDJENjBCMworOjEwRjk4MDAwNEJFODAyNUEwMUI0ODgyOEUwODg3OEMyREU1Mjg2QzA2QgorOjEwRjk5MDAwMjk2MDA4NjgwMkRFNDBCMzkyRTFFODI4MjgwMjcwMDA3RQorOjEwRjlBMDAwMjAwMDAwMDAwMDAwMDAwMDY4MTRDQzAwOEI4MDJFQzBGNgorOjEwRjlCMDAwMEIyMDAyNEQ4MDlCMjAyMEUwMDgzODAyQ0MwMDgzODA4MQorOjEwRjlDMDAwMkNDMDBBQjAwMkNDMDhCMzAwMjBDMDA4MzEwMjUyMDQ5NworOjEwRjlEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MDVBODAwQ0FFMDNFODBGQQorOjEwRjlFMDAwMUZBNDBCNzkwMEZFMDAzRjgyMURFMDAzRTgwMENFNDAxQgorOjEwRjlGMDAwM0I4ODJDRTQwM0U4MDFGQTAwMzI4MDBDRTgwMzdBMDQyNworOjEwRkEwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MTFBMDAwRjgwOTNFMDA1RQorOjEwRkExMDAwOEZDMDgzQTAxOEY4MDAzQzIwMEY4ODAzRTAwMEY4MDg4RQorOjEwRkEyMDAwM0UyMDBFODA4M0UxMDFGMDAwM0MwMDBGODAwQjkyMDAyRAorOjEwRkEzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBBNDAwRjk0MjMyNDAyRAorOjEwRkE0MDAwNEM5ODAzMDQwMEM5MDAzQTQwMEY5MDIzMjQwMEI5ODE2OAorOjEwRkE1MDAwM0M0MDBDOTIwMzI0MDBGOTA1MzI0MDZDOTBDM0MyMDQ3MAorOjEwRkE2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQyNDE0QjkwMEEyNTRGQgorOjEwRkE3MDAwMDg5QjFBMjQwMjg5MDAyMjQwMjg5MDAyQTQwMEI5OTAxMQorOjEwRkE4MDAwMkU0MDI4OUM4MjI1MDRCOTAwMjI0MDA4OTgxMkUwMDBFQworOjEwRkE5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQUQwMDIzNDAwNQorOjEwRkFBMDAwMDg1MDAyNjQwMDg5MDAyQTQwMDgxMDAyNjQwMEI5MDA2RQorOjEwRkFCMDAwNkU0MDA4OTAwMjI1MDBBOTAwMjI0MDA4OTEwNkM2MDA2OQorOjEwRkFDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQxNDAwQjUxMEExNDQyQworOjEwRkFEMDAwMjg1MDAyNDQ4MDgxMzAyMDQ4MDgxMjAyODQ0MEIxODBCRQorOjEwRkFFMDAwNkNDODA4MTIwMjA0ODBCMTM0MjA0ODA4MTIwMkMyMDExNgorOjEwRkFGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRTg0MDMyOTBCNgorOjEwRkIwMDAwMENDNTAzNjE0MEMwNDAzQTE0MEY4NTAzMjFCMEY4NTA4MgorOjEwRkIxMDAwM0UwMDBDODUwMzIxNDBGODQwQjAxNDBDODAwM0VFMDEzOAorOjEwRkIyMDAwNTAwMDAwMDAwMDAwMDAwMEI4MURDNDA0RjkyMjBFNDg3NworOjEwRkIzMDAwMEYxMDEzQjQ0MEZEMzAzRjQ0NEZEMTAwRTQ4NEZGMDE2NworOjEwRkI0MDAwM0Q0NDBGRDEwQkU0NDBGOTMwM0U0NDBGRDEwM0U2MDRBRAorOjEwRkI1MDAwNzAwMDAwMDAwMDAwMDAwMDM4MDVFNDAwREQ0MDNGNTA2OAorOjEwRkI2MDAwMENEMDAzMkMwMEM5MDAzNjQwMEY5MDEzMjcwNEY1MDE3OAorOjEwRkI3MDAwMzc0MDBDRjAwM0Y2MjBGOUE4MzI2ODBDRDAwM0M2MDAxOQorOjEwRkI4MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDBFMDAwODhBMDJFMjg4RgorOjEwRkI5MDAwMjg4MDAyMjAwMDg4QTAyMjAwMEI4MDBBNjI4MEI4MDAyMgorOjEwRkJBMDAwMjIwMDA4ODAwMkUxMDBCOEUwMjIzQTA4QTAwMkNFMDQ1OAorOjEwRkJCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDA4NDAyODEwMDJFNDA1OAorOjEwRkJDMDAwMDgxMDBBNDQwMjgxMDgyNDQwMEExMDAyNDU4MEI5MDA0NgorOjEwRkJEMDAwMjQ0MDI5MTAwMkM0MDBCMTA4MjQ0NDA4MTAwMkMyMDFDNAorOjEwRkJFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTRBNDA0ODkwMTJFNTBDOQorOjEwRkJGMDAwNDhCMjAyNjQwMDkxMDAyMjQ2MEI5MDAyNjQwMEI5MDFGMQorOjEwRkMwMDAwMjZDMDA5QjAxMkU0MDBCMTAwMjY0MDA4OTAwMkM2MDRFNAorOjEwRkMxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDRFNDAwQzkwMDNDNDBCNworOjEwRkMyMDAwMEM5MDAzNjQwMEM5MDIzNjUwMEU5MzAzMjQwMEY5OTAyRgorOjEwRkMzMDAwMzY0ODBEOTQ4M0U0MDhGOTAwQjY0MDBDOTQwM0U4MDRCOAorOjEwRkM0MDAwNzAwMDAwMDAwMDAwMDAwMDY4MTBBNDAwRTkwMDNFNDBDMQorOjEwRkM1MDAwMEY5MDEzQTQwMEU5MDIyRTYxMDU5MDAzQTQwMEY5MDA5RgorOjEwRkM2MDAwM0E0MDBFOTA0M0U0MTBGOTAwMzg0MDJGOTAwM0NBMDA0OAorOjEwRkM3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRDgwMTMyMDQzRAorOjEwRkM4MDAwMEY4MDQzQzAwMUM4MDBCMjAxMEM4MDAzMjAwMEM4NDBBRgorOjEwRkM5MDAwMzAwMDhDODQ4M0UwMDBDODAwMzIwMDZDODQwM0NBMDQwNgorOjEwRkNBMDAwMjAwMDAwMDAwMDAwMDAwMDA4MDQyODAwQkEwMDIzODBBMworOjEwRkNCMDAwMEJFQTAyRTgwMEFBMDAyMjgwMDhBMDAyMjgwMDg2MjBBMQorOjEwRkNDMDAwMzdBMDhERTQwMkY4MDBEQTAwMjI4MDA4QTAwMkNBMDAwMgorOjEwRkNEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDU2QzAwQjMwMDIwQzBEOAorOjEwRkNFMDAwMEJCODAyNEMwNDgzMDAyMEMwMDhCMDAyMEMwMjgzMDA1MQorOjEwRkNGMDAwMjA0MDI4MzQwMkNFOTA4MzAwQTBDMDA4MzAwMkNBMDAwMQorOjEwRkQwMDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExQ0MwQjU4ODIxNDAwOAorOjEwRkQxMDAwMEI3MDAyREM4MEEzMjAyMUUwNDgzMjQyMEU5MDhFMDE1RAorOjEwRkQyMDAwNjU1MDA5NzAwMkRFMjA5MzIxMjFDMDA4NzAwMkU4MDBBRQorOjEwRkQzMDAwNDAwMDAwMDAwMDAwMDAwMDI4MTgxRTAwRkY4MEIxQTA1NQorOjEwRkQ0MDAwMEY0ODAyN0UwMDg3QTAzM0UwMjg3QTBCMUYwMEM0ODA5MgorOjEwRkQ1MDAwMzE2MDhDNTgwM0ZFMDBDN0M4MzNFODBDNTgwM0VBMDIzMAorOjEwRkQ2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRkYwMDNFMDA4NQorOjEwRkQ3MDAwMEY5MDIzRUNBMEZCNDAzRUMwOEZCNTAzRUQ4MEY4MDA1MAorOjEwRkQ4MDAwM0M0MDBGQjAwM0U4MDBGQjAyM0VEMDBGOTAwM0MyMDZEOAorOjEwRkQ5MDAwNjAwMDAwMDAwMDAwMDAwMDYwMDRCRTAwRkY4MDNGRTA0MworOjEwRkRBMDAwMEZEOTAzRkUyMENGQzgzM0VBOEZGQzAzM0YwMEZEODA0QworOjEwRkRCMDAwM0Y2MDBFRTgwM0YyMDBDRjgwMkZGRTBDNzgwMzAwMDBCNgorOjEwRkRDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MDA5QzAwQjUwMjJEQzBEQgorOjEwRkREMDAwMEI1ODQyREM4MENGMDAyMUMxMEIzMDEyMUM0MEI0MDIxMgorOjEwRkRFMDAwMkQ0NjA4NzExMkM4MDBFNzAwMkRDNDA4NzAwMzZBMDQ4QworOjEwRkRGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcwMDJEMDIyMQorOjEwRkUwMDAwMEI0NjAyREMwODk3MDAyMUM5MEEzMDIyMUMwMEI0MDAwRQorOjEwRkUxMDAwMkQ0MDBBNTA4MkM0MDBCNzAwMkNDODI4NTAwMjQwMTA2MAorOjEwRkUyMDAwMjAwMDAwMDAwMDAwMDAwMDQwMTQ4QzE4QjMwMDJFMjBCOQorOjEwRkUzMDAwMEIxODAyQ0Y0QTgzQzIyMEMxMEIzNDIyMEMwNEI4NThERAorOjEwRkU0MDAwMkM0MDBCMjgwMkM4MDBBMzAwMkNDMDA4MTQwMjQ4MDQ1MAorOjEwRkU1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MDVCQzAwRkIwMDNFODA1MAorOjEwRkU2MDAwMEZBMDAyRkMwMERGQTBCM0MwMEVGMDBCM0MwMEZCQzBGMworOjEwRkU3MDAwM0NBMDBFQkQwM0VDMDBGRjAwM0ZDMDBDMzAwMzZBMDQ0MQorOjEwRkU4MDAwNjAwMDAwMDAwMDAwMDAwMEEwMTBFQzAwRjkwMDNFMDEzRQorOjEwRkU5MDAwOEZCMTQzRUMwMEYzMDAzRUMwNEZCMDEzRUMwMEZCMDAwOQorOjEwRkVBMDAwM0U4MDBDODQwM0UxMDA3MzAwM0VDMTBGQjI0M0UwMDBDQQorOjEwRkVCMDAwMzAwMDAwMDAwMDAwMDAwMDAxNTBGQzEwRkY4MDM3QzAzRgorOjEwRkVDMDAwMENFMDAzRkMyMEZGMDgzM0MwMEZGMDgzQkMwMEZGMDBGMAorOjEwRkVEMDAwMzNDMDJFNDAwMzFDMDFDRjAwMTFDMDRDRDAwMzAwNDQ5RQorOjEwRkVFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzA0QjMwMjIyNzJBNAorOjEwRkVGMDAwMDhBMTE2RUMwMEJCMDQyMkMwMEJCMDQyRUMwMEJBMTlGQQorOjEwRkYwMDAwQjZEMDA4OUM0QTI2ODBEQjAwMjJDMDA4OTAwMzYwNDBERgorOjEwRkYxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwQjkxMDYyMjBENQorOjEwRkYyMDAwNDhBMDAyRUMwMEJCMDAyMkMwMEJCMDAyRUMxMEJCMDBFQQorOjEwRkYzMDAwNjYwODBBQTgxMjI2MTA5QjAwMkFDMDI4QjAyNjIwMDBCNgorOjEwRkY0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDAwQzAwQjkwMDIwMDA4NAorOjEwRkY1MDAwMDgzMjAyQ0MwNEIzMDAyMEMwNEIzMDAyQ0MwMEIzMDAwNgorOjEwRkY2MDAwMjAwMDA4MDAwMjAxMDA5MzAwMjhDMDA4MzAwNjQyMTE1QQorOjEwRkY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMUM2QzAwRjkwMEIyNDAwRQorOjEwRkY4MDAwMEM4MjAyREMwMUZGMDBCMkMwMEJGMTAzQkMwMEY5MDBERgorOjEwRkY5MDAwMjY0MDJFODAwMzIxMDRDRjAwQkJDMDBDOTAwMzAwMDMzOQorOjEwRkZBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkQwMDNGNDBDQworOjEwRkZCMDAwMEY4MTAzRkMwMEZGMDAzRkMwMEZGMDIzRkMwMEZDMDA5QQorOjEwRkZDMDAwMkQ0MDJGQzAwM0YwODhGRjAwMzdDMDhGRDAwM0U4MDIxOAorOjEwRkZEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGRTQwRkY4MDMzQzIzQQorOjEwRkZFMDAwMENGODAzN0NBMEZGOTAzRkM0MkNCNDAzQkM4MENGNDAyRQorOjEwRkZGMDAwMzdFMDBGRjE5MzZFNDRCRjMwM0YyMDJDRjg2M0YwMDREQworOjEwODAxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQzAwRUIyMDIzRjA1NgorOjEwODAyMDAwMDhCODUyM0QwMEIzMDAyRURDMDhGNDQyMUM0MjhCNDBERAorOjEwODAzMDAwMjJDODBCRjYwMzZDODhCQjMwMkUwMDA4QjIwMkUwMDRBNQorOjEwODA0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzAwQkIwODIwQzAwNAorOjEwODA1MDAwMDgzMDAyNENBMEIzMjAyNjgwODgzNjAyQ0NBMDkzNjA2MgorOjEwODA2MDAwQTRDMjBBMzI0MjRDOTBCMzIwMkMwQjg4MzA4MkUyMDEyOQorOjEwODA3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA4QkIyMkEyQzBDOAorOjEwODA4MDAwMDhCMDAyMkMwMEJCMDAyRTkwMDhCMDAyRUMwMDlCMDA1MAorOjEwODA5MDAwMjJDMDBCQjAwMjZDMDBCQjAyMkUyMDA4QjAwMkYwMDAyMAorOjEwODBBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwQjE4MzMyQzAwOQorOjEwODBCMDAwMEMxQTAzNkMxMEZCMDAzNEMwMENCMDAzRUMwOERBMDA5RgorOjEwODBDMDAwMzZDMDBFQjAwQjZDMDBGQjAwM0UyODBDQjAwMkQwMDA5NgorOjEwODBEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzAwRUQ4MDNGQzAyNworOjEwODBFMDAwMEZENDAzRUMwMEZGMDAzRkM4MEZCMDAzM0MwMEVFNDA4QworOjEwODBGMDAwM0ZDMDBGNzAwM0ZDMDBGRjAwM0Y4MDBGRjAwM0Y4MDA0QgorOjEwODEwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIyMEIwQzA4OAorOjEwODExMDAwMEZCNDAzQUMwMkNCMDAzMjkwMEVCMDAzNkMwMEVCMDA0NgorOjEwODEyMDAwM0FDMDBDQjAwMkVDMDBGQjAwM0U5MTBGQjAwMzkwMDA4RgorOjEwODEzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQkI4MDIzRDdGMQorOjEwODE0MDAwMEI5MDAyM0MxNDhCMDA2QTA4MjhGMDAwQkMwMDgzMDBFRQorOjEwODE1MDAwQkVDMDg4RjAxMzJDMDBFRjAwMkU4MDBCQjAwN0IyMDBEOQorOjEwODE2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjM0MDIwRDBCQgorOjEwODE3MDAwMEIyODAyOEMwMDgzMDEyMEMwMUFCODAwNkMxMEExMDBFQgorOjEwODE4MDAwNjhDMDJBMzAwMjhDMDBCMzAyMkUwMDRCMzAwMkY4MDQ4MworOjEwODE5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwQjdBMDIxRTBGOAorOjEwODFBMDAwMEJFQ0MyMUUwNDg3ODAyOUU0MDg3OTgyOUU0MEFGOTBDMAorOjEwODFCMDAwMjlFMDBBMzgwMDFFMDBBNzkwMkQyNDBCNzgwMjg4MDBDMQorOjEwODFDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzUwRkIwOTMwQzBDRgorOjEwODFEMDAwMEYyMDAyOEM0MEMzMDAyMEMwMEEzODAzNEM0NEUxMDA0OQorOjEwODFFMDAwQUFDMDBFMzE0MzhFMDBGMzAwM0MwMDBGMzAwM0QyMDJEMAorOjEwODFGMDAwMDAwMDAwMDAwMDAwMDAwMDQwNERCQzAwRkYyMDNGRDAwOAorOjEwODIwMDAwNEY3MDAzRkMwMEZGMDAzREMwMEZGMzQzRkM0MEQ3MDA1QworOjEwODIxMDAwQkZDMDBERjRDM0ZDNDBGRjAwM0Y0MDBGRjAwM0QwMDY4OQorOjEwODIyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzAwRkIwMDMyRDA1OAorOjEwODIzMDAwMEQ5MDAxRURDMEZCMDAzRUMwMUZCQTAzQUNDMEM4MDBFQQorOjEwODI0MDAwMzJFMDhEQjQ0M0VDMDBGQjAwMzZBMDBDQjAwMzZBMDBCMgorOjEwODI1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjcwMDIxQzgxOQorOjEwODI2MDAwMDg2MDAyREMyMEI3MDAyREMwMEY3NEEyMUMyOEQ2MDBDNQorOjEwODI3MDAwMzVDMDA4NzIwMjVDMDhCNzQ0QTE4MDQ4NzAwMjEyMDA0MQorOjEwODI4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc4MDIwRTRGNQorOjEwODI5MDAwMDk3ODI2REUwMEI3ODAyREUyMEE3MDEyOEM4ODgxODA3MgorOjEwODJBMDAwMjFFMDA5NzgwMkRFMDBCM0EwMjVBMDI4NzgwMjcwMDQzRQorOjEwODJCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAxQkI4MDIwQzA1QQorOjEwODJDMDAwMDgzMDQyRUMwMEIzMDAyQ0MwMEEzMDIyMEMwMDkzMDBBRQorOjEwODJEMDAwMjRDMTA4MzAwMkNDMDBCMzAwMjBFMDA4QjAwMjEyMDQzMAorOjEwODJFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkEwOEIyODA4NQorOjEwODJGMDAwMERFMjAzRTgwMEZBMDAzRjgwMEFBMDAzQTgwMENFNTA3OAorOjEwODMwMDAwMzI4MDA1QTAwM0U4MDBGQTAwMzdBODBDQTAwMzdBMDQyNQorOjEwODMxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDA2MDA4RjgwMDNDMDAxOQorOjEwODMyMDAwMEY4ODAxRTAwMEY4MDQzQzAwNEYwMDEzQzAwMEY4MDA4MworOjEwODMzMDAwM0UwMDBGODAwMzYwMDBGODAyM0UwMTBGODAwM0QyMDA3MAorOjEwODM0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjk5MDEyNDAyNgorOjEwODM1MDAwMEM5MDAzQTQwMEM5MDAzRTcwMEU5NDMzMjQwOEM5MDA5OQorOjEwODM2MDAwMkE0MDBCOTAwM0U0MDBGOTAwM0E0MDBGOTAwMzAyMDQwNgorOjEwODM3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk0MjIyNjA2OAorOjEwODM4MDAwMDgxMDAyMjQwMDg5MDMyRTQwMDg5MDAyQTQwMTgxMDRGMQorOjEwODM5MDAwM0U0MDBCOTAwMkU0MDBCOTAyMjI0MDBFOTAwMjIwMDAwMQorOjEwODNBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjk0MDJBNEEwRgorOjEwODNCMDAwMDg5MTAyQTQwMDg5MDAyRTQwMUE5MDBBMjQwNDg5MDAyMgorOjEwODNDMDAwMkE0MDBCOTAwMkU0MDBCMTAwMkE0MDBCOTAwMjA2MDAwNAorOjEwODNEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjEwMUE4NDhBQgorOjEwODNFMDAwODg5MDAyMDQ4MDgxNDAyQzUwMTgxNDBBODQxMDg5NDAxRgorOjEwODNGMDAwMkM0MDBCMTAwMkM0MDAzMTIwMjA0MDBBMTAwQTAyMDE1OAorOjEwODQwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjA1MDNBMDA4QworOjEwODQxMDAwMkNBMDAyQTE0MkM4MDAzRTAwREUwMDIzMjE0Mjg4MDBCOQorOjEwODQyMDAwMzgxNDBGODUwM0UxNDBGODUwMzgxNDBGMDUwMzJFMDE2RQorOjEwODQzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDA4RkQwMDM2NDRENAorOjEwODQ0MDAwMEZEMDAzNjQ0MEY5MDAzRDUwMEY5NDAzRTUwMDdENDBEOAorOjEwODQ1MDAwM0U0MDBGOTQwM0U0MDBGOTEwM0Y0MDBFOTAwM0U2MDQwMQorOjEwODQ2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNDAwRkQ0MDMzNjhDMworOjEwODQ3MDAwMENEMDAzRTc4MUY5MDAzMzc4MEREODEzMjZBMENEQTBFNgorOjEwODQ4MDAwMzI0MDBEOUIwMzI0MDBGOUEwM0M0NDJDOTAwNzg2MDA0OQorOjEwODQ5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwQjhBMEEyMTAzQQorOjEwODRBMDAwMTg4MDAzODI4NEI4ODAzNjJDMkUwRjAyQTNBMEQ4RTA1NworOjEwODRCMDAwMzYyMjhCMDgwMzQyQTBGOEUwMkUyODA4ODgwMkNFMDQ1QQorOjEwODRDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMEEwNTAwQQorOjEwODREMDAwMjgzMDAyQzU4MEIxMDgyMDQwMDkxMEEyNDQwODgxNDgxNAorOjEwODRFMDAwMjA0MDBCMTQwMjA0ODBCMTM4MkM0ODA4MTI4MjgyMDEwQgorOjEwODRGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwQjEwMDIyNDAyQworOjEwODUwMDAwMDg5MjAyRTQwMEI5MDIyNjU4NEE5MDAyRTQwODk5NDAxMQorOjEwODUxMDAwMjY0MDBCOTAwMjY0MDhCOTAxMkM0ODA4OTAxMkM2MDQ0QQorOjEwODUyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjk4MDMyNDA2NworOjEwODUzMDAwMDg5ODgzRTQwNEI5MDEzMDQwMEQ5MDBCNjQwMkM5MDAyRgorOjEwODU0MDAwMzI0MDBGOTAwMzI0MDBGOTAwMUU1ODBDOTAwM0E4MDQzOQorOjEwODU1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkyMDNDNDA0OQorOjEwODU2MDAwMEY5ODAzQTQwMEI5MDAzRTQyOEUxMDRCODQwNEY5MDAxQQorOjEwODU3MDAwM0U0MDhGOTAwM0U0MDBFOTAwM0U0MDBGOTAwM0NBMDBBNAorOjEwODU4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRDgwMDMyMDhBMQorOjEwODU5MDAwMEY4NDgzQTAwNEM4MDQzRTAwODM4MDAxMjAwMEMwMDAzMworOjEwODVBMDAwMzIwMDBGMDAwM0EwMDBDODAwMzIxMDRFODAxM0NBMDQyRQorOjEwODVCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEU5MEEzODAwNQorOjEwODVDMDAwMEJFNDAyMjgwMENBMDAyRjgwNEFBMDEzQTgwMEFBMDBDQQorOjEwODVEMDAwMzY4MTBCQTAwMjI4MDA4QTAwMjI4MDA4QTAwMzhBMDBBRQorOjEwODVFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTNDMDIwRDA4RgorOjEwODVGMDAwMEIzNDAyOEMwMDhCMDAyQ0YwOEIxODAyNEMwMDgzMDA5MworOjEwODYwMDAwNjBDMDBCMzAwMjhDMDI4MzAwMjhDMTBBMzAwMkNBMDAwRAorOjEwODYxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTAwQjQwQjY5QzA2MworOjEwODYyMDAwMDk1ODA2MUU4MDk3MTAyRkMyNDg3MDgyOUM4MEE3MDhBOAorOjEwODYzMDAwMjVDQzBCNzAwMjFFODE4N0EyQUJDNDA4NzMwMkU4MDAzMAorOjEwODY0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTEwREM4NDIxRTA4QgorOjEwODY1MDAwMEY3ODQyOUYwMkM3ODgzREUwMkY3MTAzNEUwMENGODAwNAorOjEwODY2MDAwMjFFMjBGNzg4MzlFNDlDRkQwMzlFODBFNzgwM0VBMDJFMQorOjEwODY3MDAwMDAwMDAwMDAwMDAwMDAwMDA4NERBQzQwQ0EwMDM2MDBCOQorOjEwODY4MDAwOEYzMDIzRUNBOEVCNDAzQ0MwMEY5NjQzRUQ4MEZCMDBGRAorOjEwODY5MDAwM0VEODhGQjE0M0VEODBGQjIwMzZDQTBGQjBBMzgyMDZDRgorOjEwODZBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTgwRkM4MDMxRTA1QQorOjEwODZCMDAwMDVBQTEwRkU0NEZGOTAzRkUxQ0ZGOTE3M0YyMEQ3ODA3NQorOjEwODZDMDAwOEJFNDBGRjgwMzNFMzBGRjgwMzdFMDBGRjgwMDQwMDBFNgorOjEwODZEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQkQxMDIxQzAyNworOjEwODZFMDAwMDg0QTAyRENDMEI3MDAyREMyMENEMzAyMUM4MDg3MDBGMAorOjEwODZGMDAwMjlDMDRCNzIwMjFDMDBCNzAxMjFDMDBCRjAxMjJBMDRFMgorOjEwODcwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzkwMzQwMDIxODAwOAorOjEwODcxMDAwMDk3MDAwNUMwQ0I3MDAyREM0MDg1MDFBMEMwMDk3MDBCQgorOjEwODcyMDAwMjFDMDRCMzAwMjFDMDBCNzAwMjVDMDBCNzAwMjQwMDA3NgorOjEwODczMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwQjAwMDYwMDAwOQorOjEwODc0MDAwMDgzRTAyQ0MwMEIzMDIwQ0UwMkJCMDAyMEMwMDkzMDBGOAorOjEwODc1MDAwMjhDMDBCQjAwMjJDMTBCMzAwMjBENjAzMzAwMjA4MDQ0RQorOjEwODc2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwRkIwMEIyMDBCMworOjEwODc3MDAwMDVCRTAzN0MwMEZGMDAzRTIwMENCMDAzM0MwMEQ5ODAwNgorOjEwODc4MDAwMzNDMDhCRjAwMzNDMDBGRjAwMzdFMDBGRjAwMzZBMDRCNgorOjEwODc5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwNDNFMDBEMAorOjEwODdBMDAwMEZBNDIzQ0MwMEZCMDAzRTgxMDg5MDAzRUMwMEU5MTRFOQorOjEwODdCMDAwM0VDMDBGQjAwM0VDMTBGQjAwM0VDMDBGQjAwM0UwMDA2MgorOjEwODdDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkYwMDM3ODBCNgorOjEwODdEMDAwMEZGQTAzRkMwMENGMDAzRjkwMDZEQzIzM0MwMEZEMTBBNQorOjEwODdFMDAwMzNDMDBGRjAwQjNDMDA0MzAwMzNDMDBGRjAwM0MwNDQxNAorOjEwODdGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDA2QzA5QkIxOTIyMzIyQgorOjEwODgwMDAwMEJCRTAzNkMwMDhCMDAyQzkwMERCODAyQUMwMEIxMDBDNQorOjEwODgxMDAwRjJDMDBCQjAxMkFDMDA4QjAwMjJDMDBCQjAwM0EwNDAyMgorOjEwODgyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzEwQjMwMDI2MjA3RQorOjEwODgzMDAwMEI5MDEyRUMwMThCMDAyQUMyMEE5MDAyMkMwMEJCMDBBNAorOjEwODg0MDAwQTJDMDBCQjAwMjJDMDBBQjAwMkFDMDBCQjAwMkUwMDBBQgorOjEwODg1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAxQjMwMDIwMDBFQworOjEwODg2MDAwMEIwMDAyOEMwMDgzMDAyRUMwMEIzNDAyOEMwMEJCMDA3NgorOjEwODg3MDAwMjBDMDBCMzAwMjBEMDBBMzAwQTBDMDBCMzAwMjgyMDEwQgorOjEwODg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQkIwNDM2ODBGQQorOjEwODg5MDAwMEZCMjAyRkMwMkNGMDIzOEMwMEVGMDAzM0MwMEZCMDAxNgorOjEwODhBMDAwMjNDMDBGRjAwMzNEMDJFRjAwMzNDMDBGRjA0M0MwMDNCRAorOjEwODhCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDNGMDA3MQorOjEwODhDMDAwMEZGNDIzN0MwMEZGMDAzRkMwMEREMDAzRkMwMEZGMDAyRAorOjEwODhEMDAwM0JDMDBGRjAwM0ZDODhERjAwM0ZDMDBGRjAwM0E4MDY4OQorOjEwODhFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMDUwQ0UxMjMzRDAzMAorOjEwODhGMDAwNEM4NjgzMzA4MDVGNjgzM0M0MEZGMzgzM0NDMENDMzgzMAorOjEwODkwMDAwQjMwODBDQzYwM0YxQTBGRjAwMzMyNDBDQzIwM0YwMDAyRgorOjEwODkxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQzgwRDIyMDIzRDhGRQorOjEwODkyMDAwMEQ5NjAyODg2MEFGNDAyM0RDMEJGNjAyM0NDMjg4NjBFMworOjEwODkzMDAwMjI1MjA4OTEyMkUxMDBCNzI0QTI0ODhBODQ4MjYwMDQ2RQorOjEwODk0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDAwODEwMEUwQzQ4MQorOjEwODk1MDAwMEEwMDAyMDQ4MEEzMjBBOEMwMUIzMDBBMEMwMEEwMDA1QgorOjEwODk2MDAwMjgwQzA5MDIwMkM0ODBCMzFDMjIwODE5MDMwMkUyMTE3OAorOjEwODk3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBNDAwOTk4MDYyQzBEMworOjEwODk4MDAwMEJBMDMyQTQ1MUFCMDAyQUMwOEJCMDAwMEMwMEE5QzBEMAorOjEwODk5MDAwMkEyMTA4QjgyMkUyMDBCQjAwMjI4NDFCQTg0MjcwMDRFRQorOjEwODlBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFMjAwQ0JDOTMyQzBBQQorOjEwODlCMDAwMEU4QjEzMjIxMERCMDEzMkMwMEZCMDBCMkMwMDY4ODEyQworOjEwODlDMDAwM0EyMjJDODgyM0UzMDBGQjAwMzAzMDhEOUM4M0QwMDRCNgorOjEwODlEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQTQwRjcwNDNFQzI1MQorOjEwODlFMDAwMEREODIzRDgwMDdCMDAzN0MwMEY3MDMzRkMxMEQyMDBBNQorOjEwODlGMDAwMzVDMDhGQzAwM0Y0MDBGNzAyM0ZFMDBFODAwM0Y4MDA5QgorOjEwOEEwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTA4MTIwQzgwODMwQzA1NQorOjEwOEExMDAwMEMwMDgzMjQ0MEMzODkzQUMwMEVCMDBCMkMwOEM5NDgwRgorOjEwOEEyMDAwNzI1NDBGOTEwM0VEMDJFQjhBM0E2MjhDODAwQjEwMDRCMgorOjEwOEEzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQjA0ODg0MEEzQzJFRAorOjEwOEE0MDAwMDJBRTEyMjc0MjhGNDQyM0MyMEJGNDAyM0QwMDBBNDBCQgorOjEwOEE1MDAwMjJFMDBCQjUwMkVDMjA4RjQ0QTI0MDhEQkQyMzMyMDBGMgorOjEwOEE2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0OTQwODM4MTI0QzE2RgorOjEwOEE3MDAwMDgyODAyMDEwMDkzMDBBMEU4MEEzMDgyOEY2MEIzOTBCQQorOjEwOEE4MDAwNjBCODBCMjgxMjRBMDA5MzAwMjA5MDA5MjAwMjc4MDA1OQorOjEwOEE5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAyODdBODI1RTAxMQorOjEwOEFBMDAwMEE3QjAyMUEwNDg3ODAyMUU0MEI3ODgyOEUwMjk2OTE1OQorOjEwOEFCMDAwMjEyMTBCNjk0MERCNDA5NzkyMjNBMDg5NTg4MjA4MDA0RQorOjEwOEFDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgyNTgyQzMwMDM0QzBCOAorOjEwOEFEMDAwMEM5QjQzMDhEMEQzMjAzOEMwMEVCMDAzOEMwMEIzMDBFOQorOjEwOEFFMDAwMjA4MDA3MTAwM0UwMDBEMzEwMzgxODBEMzAwMzUyMDIyNQorOjEwOEFGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCNDAwN0YyMDFCRDBEQgorOjEwOEIwMDAwMEZGMTAzRjg0MEVGMDAzRkMwMEZCNDAzN0MyMENGMDQwNworOjEwOEIxMDAwQkY0MDBGRjAwM0U0MTBFRjE4M0RDMDBGRTAwM0QwMDY5NAorOjEwOEIyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAwRTMwMEIyQzRGNworOjEwOEIzMDAwMENBMDAzMjQwMERCNjgzMkM4MENCNDAzRUM4MEM4ODBBRQorOjEwOEI0MDAwQjZFMDBDQTAwMzJFMDBDQkUwQjI2MDBDQjgwQjJBMDBGQworOjEwOEI1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAyODcwMEExQzhCRQorOjEwOEI2MDAwMDg3MDAyMUMwODk3MDIyMUQ0MDg3NDAyRENDMDA3MDBCOAorOjEwOEI3MDAwMjFDMDg4NzAwMjE4MDA4MzA4MjFDMDA4NTAwMjEyMDQyNgorOjEwOEI4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTIwQUQ4MDI5RTBEMQorOjEwOEI5MDAwMDg1ODAyMUUwMDk3QjAyMUU4MDg3ODAyREUxMDE1ODAwMAorOjEwOEJBMDAwMjFBMTA4NDgwMjVFMDA4N0E0NjVBMDA4NzgwMjMwMDA3MQorOjEwOEJCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRjEwODE3MEE4QzAwMQorOjEwOEJDMDAwMzgzMDBBMEQwMDkzMDBBMEMxMjgzMDAyQ0MwMjgzODhGRgorOjEwOEJEMDAwMjBFMDM4MzQwQTRENzI4MzAwMjRFODI4MzQ4MjEyMDRERAorOjEwOEJFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQTQwRUVDMEJBODA3NgorOjEwOEJGMDAwMENFMDAzMzkxMERBMDAzMjgwMENBMDAzRTgwMERFQzg3NAorOjEwOEMwMDAwMzNBMDBDRTAwMzdCMDBDQTAwMzdCMTBDRTQyMzNBMDQyNAorOjEwOEMxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBDMTAwRjgwMDM2MDBCRAorOjEwOEMyMDAwMEY4MDAzQzAyMDM4MDAzRTAwMEYwMDAzRTAwMEY4MDI3MAorOjEwOEMzMDAwM0EyNDBGODA4M0EwMDFGODA0M0EwNDBEODAxM0QyMDA3NworOjEwOEM0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDQ0QzEwMDMyNDA4MQorOjEwOEM1MDAwMEM5MDMyMjQwQ0MxMDYzODQwMEQ5MDA5MDQwMEQ5MDA1NAorOjEwOEM2MDAwM0U0MDBGMTgwMzI0MDBGOTAxM0U0MDBGOTAwM0MyMDQ1OAorOjEwOEM3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA2ODkwMDJBNTBEMworOjEwOEM4MDAwMDg5NDBBMjQwMDg5NDIyMjUwMEE5MDEyMjUwMDg5MDA4MworOjEwOEM5MDAwMkU1MDBCOUMwQTI1MTBCOTAwMkU1MDBCOTAwMkUwMDBCQworOjEwOENBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDIwODkwMDIwNDI2OAorOjEwOENCMDAwMDgxMEMyQUMxMDg5MDgyQTQyMDk5MDAyMjQyMDk5MDBBOQorOjEwOENDMDAwMkU0MjBBQjE4MjJDMjBCOTAwNkU0MjBCOTAwMkM2MDBERgorOjEwOENEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwODMwMDI4NDg1MQorOjEwOENFMDAwMDgxMjYyOEM4MDgxMDAyMDQwMDIxMDAyODQ4MDgxMjA2MgorOjEwOENGMDAwMkM0OTBCMTIwNjA0ODRCMzAyNkM0MDBCMTIwMkMyMDExMQorOjEwOEQwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ0MUUwQzg3ODMwMTRGOQorOjEwOEQxMDAwNEMwNTEzQTE0MkMwNzgzODFFMEQ4NzgzMDE0MEQwNTAwNgorOjEwOEQyMDAwM0MxNDBFMDUwMzAxNDBGODc4M0MxNDBGMDUwM0VFMDNENAorOjEwOEQzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGQzAwRkYwMDBFNDRFMQorOjEwOEQ0MDAwMkZGMTAzNzQ0MEY5MDAzRTQwMEQ5MDAzNjQ0MEZEMTA4NAorOjEwOEQ1MDAwM0Y0NDBGRDEwMUY0NDBGOTAxM0ZDMDBGRDEwM0U2MDZCMworOjEwOEQ2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNjIyRTk4OEIyNDAwQgorOjEwOEQ3MDAwMEY5MDAzMjQxNkM5OEMzNjdCOEY5QzgzQTc5MEM5MDA2MworOjEwOEQ4MDAwM0U1MDA0OTQxMzI0NTBDOUUwM0U1MDBGOTAwMzA2MDA1NworOjEwOEQ5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMjgwODhBMDIyMjg0NworOjEwOERBMDAwMEI4QTAyMkE4MDg4QTQyMjMwMDg4RTBBMjIwMjg4QTAxOAorOjEwOERCMDAwMkUyODg4QUExMjIyOTA4OEY0MkUyMDBCQzgwMjBFMDRCNgorOjEwOERDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVENDIwQTUwODIxNDI2MgorOjEwOEREMDAwMEI1MDgyMTQzMTg1MDgyNTQwMEE1MDIyOTQ0MDg1MDhBMgorOjEwOERFMDAwNkQ0MDA4NTAwMjU0MDI5NTAwMkQ0ODBCNTA4MjQyMDFGQworOjEwOERGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTU4NDAwOEQxMDIzNDA1MgorOjEwOEUwMDAwMEJEMDAwMzQwMThEMDAyMzQxNThEMDAyMzQwMDhEMDg2RQorOjEwOEUxMDAwMkY1MDA4RDIwMjc0ODA5RDAwMkY0ODBCREMwMjQ2MDRCQworOjEwOEUyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNzQwRTlDMDMyNDBFQgorOjEwOEUzMDAwMEY5MDA5MjYwMEM5MDQzNjQwMUY5MDIzQTQwOEM5NDA5QQorOjEwOEU0MDAwM0U0MDBDOTQwQjY0MjBEOTAyM0U0MTBGOTQwMzY4MDQwOQorOjEwOEU1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjk4MDNFNDBERQorOjEwOEU2MDAwMEYxNDAzQzUwOEY5MDAzRTQwMUY5MDIzRTQwMEY5MDBFOQorOjEwOEU3MDAwM0M0MEFGOTgwMzg2MDBFOTAwM0U0MDBGMTAwQjhBMDA4QgorOjEwOEU4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBCMDAwREM0MEIzMDBDQgorOjEwOEU5MDAwMEZDMDAzMzEwMkM0MDRCMTAwM0M0MDAzMTAwMEZDNDA4OQorOjEwOEVBMDAwMzMwMDBDQzQwM0IxMDBDQzAwQjMwMDBDQzQwM0NBMDRFQgorOjEwOEVCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEE4MDIyQTA3MQorOjEwOEVDMDAwMEJBMDAyMkEwMDhBODQyMkExMDhBMDAyMjgwOEJBMDE2NQorOjEwOEVEMDAwMjI4MDA4QTAyQjI4MDA4QTgwMkE4MDA4RTAwMkNBMDA4RAorOjEwOEVFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAyOUI4MTIwRTBBQgorOjEwOEVGMDAwOEIzODA2Q0UwMDkzODAyMEMwMDgzODAyMEMwMEIzODA2NworOjEwOEYwMDAwNkNFMDBBQjAwMjRDMDA5MzAwMjBFMDA4MzAwMkNBMDA3NgorOjEwOEYxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExMDA0ODAwODIxMDJBMQorOjEwOEYyMDAwNEI0NDA2RDAyMDkwMDgyMTAyODA0NDAyMTAwMEI0QzBCNworOjEwOEYzMDAwMkQxMDQ4NDAwMjAwMDA5NDg5MjkzMDA4NDAwMkU4MDBDMgorOjEwOEY0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzMjAwRDY4MDMxQTBEOAorOjEwOEY1MDAwMEZFODBCQ0EwMEQ2ODAyM0EwMDRGODBCMUEwMEZGODA4QworOjEwOEY2MDAwQkZBMDJFQzgxM0RBMDI1RTgwNzNBMDJDNzgwM0VBMDIzOQorOjEwOEY3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjkwMDNFNDBBOQorOjEwOEY4MDAwMEY5MDAzMjQwMEU5MDAzRTQwMEU4MDAzRTQwMEY4MDA0NworOjEwOEY5MDAwMzI0MDBGQjAwM0U0MDFFOTA0MzY0MDBGODAwM0MyMDZGQgorOjEwOEZBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwQ0Q4MDMzNjA3RQorOjEwOEZCMDAwMENEODQzMzYwMENEODAzMzYwMENEOTIzQkUwMDREODBFMQorOjEwOEZDMDAwMzM2MDA4RjgwQjNFMDBGRDg0M0Y2MDBGRjkwM0MwMDBEQQorOjEwOEZEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5MDA0REUwMDIzODA1MworOjEwOEZFMDAwMDg2MDAyQjgyMDhFMDQyMzgwMDg2ODAyMTAwMDhFMjBEQQorOjEwOEZGMDAwMjM4MjA4NDAwMjEyMDBGNjAwMkQ4MDBCNDFBMEVBMDRGMworOjEwOTAwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5MDAwODQwMDIxMDBDQgorOjEwOTAxMDAwMDg0MTAyNTA0MDk0MDAyMTAwMEE1MjAyRDgwMDg1MDIwMworOjEwOTAyMDAwMjUwNDA4NDAyMjE4MDhCNDAwMkQxMDBCNzg0MEMwMDAxOQorOjEwOTAzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRFRTIyOTMwMDIwQzA1OQorOjEwOTA0MDAwMDgzODAyRUMwMDkzMDAyMEMxMkEyMDAyNjQwMjgyMTAzQQorOjEwOTA1MDAwMjRGMDBBM0M0MjI0MjhCMzAwMkNFMDBCODg4MkM4MDQ4OAorOjEwOTA2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBRDAwQ0IwMEIyQzAyOQorOjEwOTA3MDAwQUNCRTAzNkUwMkRCMDBCMkMwMUVBMDAzRTQwMENBMTE0NgorOjEwOTA4MDAwQjZEMEFDQkMwMzI0MDBGQjAwM0VDMENGODQwM0VBMDQ4RQorOjEwOTA5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFMDQwRjgwMDNDMDA5QworOjEwOTBBMDAwMkY4MjAzQTAwMEU4MDAzRTAwMUQ5MDEzQTgwMEY5MDBFNQorOjEwOTBCMDAwM0EwMDgxODM0M0U4MDBFODAzM0UwNDBGQjAwM0UwMDA3OAorOjEwOTBDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBFMDAwRDYwMDM3ODBGMgorOjEwOTBEMDAwMENBMDAzRjgwMENFMDAzMzgwMERBMDEzMjAwOENFMDBCMgorOjEwOTBFMDAwMzM4MjBDNDA3MzMwMThDRTAwMUY4MDRGQzE0MzAwNDRDMAorOjEwOTBGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ3QzAwOEQwMDIzNDA0RgorOjEwOTEwMDAwMEFEMDAyRjQwMDhEMDAyMzQwMDhENDgwM0U0MjhENDBGNgorOjEwOTExMDAwMjM0MDA4RjAwMjNFNDA4RDAwMEY0MDBCRjQwMjIwNDAzNworOjEwOTEyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOTkwMEE2NDBGRgorOjEwOTEzMDAwMDg5MDA2RTQwMDkxMDAyMDQwODgwMDAyMjQwODgwNDA0NgorOjEwOTE0MDAwMjA0MDBBQjAwMjI0MDA4OTAwMEU0MDBCODQwMjIwMDA1NworOjEwOTE1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAwODIwMDIwODBBMQorOjEwOTE2MDAwMEEyMTA2QzgwMTgyMDAyMDgwMDgzMjgyMDgwODgzMDA5NAorOjEwOTE3MDAwNjA4MDBBMDAxMjA4ODA4MjAwMkM4MDBCMzAwQTAyMDFGNQorOjEwOTE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2MDAwRDgwMDM2MDA2NAorOjEwOTE5MDAwMEM4NDIzRTAwMEM4MDAzMjAwMEQ4MjBCMjAwMkM4MDBCRQorOjEwOTFBMDAwMzIwMDBFMDAwMzIwMDJDODAwM0UwMDBGODAwMzAwMDNCRgorOjEwOTFCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwQkYwMDNGQzBFOAorOjEwOTFDMDAwMEZGMDAzRkMwMEZGMDBCRkMwOEZCMDAzRkMwOEZGMDJEQworOjEwOTFEMDAwM0ZDMDBERjAwM0VEMDBGRjAyM0ZDMDBGRjAwM0U4MDZCMworOjEwOTFFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDFGMDhDRkYwMDNENjAzNgorOjEwOTFGMDAwMkNCMjgzN0M5MERGMzgzMUUwMEZGODAzM0MwMEZGMjA3NQorOjEwOTIwMDAwM0ZDNDBFRjQwMzdDMDBGNDgwMzMwMDBERjgwM0YwMDAzQgorOjEwOTIxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMTIwQkI2MjJFNDJDMAorOjEwOTIyMDAwMjhGNDQyM0U0MDhGNDQyMkUwMEJCMDgzN0Y0NEJGQzEwQworOjEwOTIzMDAwMkREQzJBRjYwMjNGNDVCODgwMjI2MTg4QjgwMkUwMDQ5RQorOjEwOTI0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNTgwQjIxODJFQzg1QworOjEwOTI1MDAwMjkzMDMyMEMwOEIzMjAyMEMwNEI5MjAyMEMwMEIzNDBERQorOjEwOTI2MDAwMkNDMDg5MzQxMjRDMDBCMDAwMjRDMTQ5MzAwMkUyMDEwNAorOjEwOTI3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTFBNDAwQkEwQzJFRTAzNQorOjEwOTI4MDAwQTlCMDA2MkMwMDhCMDBBMkMwMEI5MDAwNkMwMEJCMDBBNAorOjEwOTI5MDAwMkVDMDBCMzAwMjZDMDBCQTgwMjZGMDA4QjAwMkYwMDQzOQorOjEwOTJBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTFFRTAwRkJDNDNFNzhBQQorOjEwOTJCMDAwMkRCMDAzNkMwOEZCMDAzMkMwOEIyNDgzMkMwMEZCMDAxNAorOjEwOTJDMDAwM0VDMDhGQjAwQjZDMDhCMkUwMTY2MDhEQjAyM0QwMDRBNgorOjEwOTJEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCRTk4RkY0MDNGQzBBOQorOjEwOTJFMDAwMEU3MDAzREMwMEZGMDAzRkMwMEZFMDAzRkMwMEZGMDAzNgorOjEwOTJGMDAwM0ZDMDBFRjAwM0FDMDBGRTAwQjlDMDBGRjAwM0Y4MDA1MQorOjEwOTMwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBRDAwRkE0MDNFRDBCOAorOjEwOTMxMDAwMEVCMjAzRUMwMEMzMDAzRUMwMENBMDAzMkMwMUZCMDAwNgorOjEwOTMyMDAwM0NDMDBFQjgwM0VDMDBEQTAwM0FEMDRGQjAyM0QwMDRCMgorOjEwOTMzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQkEwMDJDQzA2RQorOjEwOTM0MDAwMDhGNDA3QkMxNERGMDAzRUMwMUFBMDUyQkMwMEJGMDRFMgorOjEwOTM1MDAwM0ZDMDhBRjAwM0JDMDBGQTAwMjJDODBGQjAwM0YyMDAzRAorOjEwOTM2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0ODAxQjEwMDZDQzJCMAorOjEwOTM3MDAwMEEzMDQyQ0MwMDgzMDUyQ0MwMDgzMDAyOEMwMUIzMDRCMworOjEwOTM4MDAwMkNDMDBBMzAyMjhDMDA4MDgwMjhDMDBCMzAyMkY4MDBDQworOjEwOTM5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTA4Qjc4MDZGRTBCMAorOjEwOTNBMDAwMTg3ODAyOEU0MEI3ODAyREUwMEE3ODAyOUUwMEI3ODBDMAorOjEwOTNCMDAwMjlFMTBBNzgwMjlFMDFCQzgwMjlFNDBCNzgwMkM4MDBFQQorOjEwOTNDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwOTQwRjEyMDNDQzRCMworOjEwOTNEMDAwMEUzOTAyQ0MwMEMzMDAyQ0M0MDg5MjAzOEM4OEIzMTA1MQorOjEwOTNFMDAwMkNDNDBFQjAwNzhDMDBDMjA4MzhDMDBGMzA0M0QyMDIyNAorOjEwOTNGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzEwRkMwMDdGQzAwOQorOjEwOTQwMDAwMEZGMDgzRkMyMURGMDgzQkMwOEY5MDAxRkMyMUZGMEM5MworOjEwOTQxMDAwM0ZDMjBGRjEwM0VDMDBFRjAwNzdDMDFFRjAwMzkwMDY4RgorOjEwOTQyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAxRjkwMDMyQzA1QgorOjEwOTQzMDAwMEZCMjAzRUU5MERCRTEzQUMwNEQzODEzMkQzMEZCMDA0NAorOjEwOTQ0MDAwM0VFMDRGQkE0MzJDNDBGQTAwM0ZDMDhDQjAwM0VBMDAyNAorOjEwOTQ1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjEwMDIxQzAxNQorOjEwOTQ2MDAwMEI3MTAyQ0MyMEE3MjgyMUMwMEI3MDEzNUMwOEI3MTAyOQorOjEwOTQ3MDAwMkRDNDRCMzQ4MzFDQzFCNzAyMkRDMDFBNzAwMkQyMDQxNAorOjEwOTQ4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QTIwQjRDNDI1QTJDMworOjEwOTQ5MDAwMEI3ODA2REUwMDgzODAyOUUwMUJGODAyNUU4MEE3QTAxRgorOjEwOTRBMDAwMkRDODBBNzIwMjFFMDBBNjgwMjhFMDA4NzgwMkYwMDA4QgorOjEwOTRCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRFRDAwQjM0MDI0QzM2OQorOjEwOTRDMDAwMEIzMDQyQ0MwMEEzMDAyMEMwMUIzNDAyNEMwMEIzMDA4MAorOjEwOTREMDAwMkNDMDRCMzAwMjBDMDBCMzg4MkNENDBBMzAwMkQyMDRDQQorOjEwOTRFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODAwRkU0MEI3QTAwMgorOjEwOTRGMDAwMEZBMDAzRTgwMERBMDAzQTgwMEZFMjAzNjgwMEZBMDBFOAorOjEwOTUwMDAwM0U4MDBGQTAwQjI4MDBFRUUwM0ZCMDA0QTAwM0ZBMDQ1OQorOjEwOTUxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDA0RjAwODNBMTA3RAorOjEwOTUyMDAwMEY4NDAzRTAxMEY4MDAzRTAwNEY4MDgzRTAwMEY4MDA1NQorOjEwOTUzMDAwM0MwMDBGODAwMzgwMDBGODQwM0UwOTBGODAwM0QyMDBGQQorOjEwOTU0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDIwRTkwMDMyNDQ3MAorOjEwOTU1MDAwMEM5MDAzMjQwMEY5MDAzRTQwMEY5MDEzRTQwMEI5MDA4MgorOjEwOTU2MDAwMUU0MDBDMTAwMzI0MDBDOUEwM0M2NDBDOTAwMzgyMDQyQworOjEwOTU3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODkwMDIyNjhDMAorOjEwOTU4MDAwMDgxMzAyMjQwOEY5MDAyRTQ4MUI5MDAyRTQwMEI5MDBEOQorOjEwOTU5MDAwM0U0MDBDOTAwMjI0MDhGOTQwMkU2MDBBOTAwNkUwMDAzQworOjEwOTVBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDEyNDAwQTkwMDIwNDA2NQorOjEwOTVCMDAwMDg5MDAyMjQwMEI5MDEyRTQwMEI5MDAyRTQwMEI5MDA4QgorOjEwOTVDMDAwMkU0MDA4OTIyMjI0MDA4OTAwMkU0MDA4OTAwMkM2MDBGNgorOjEwOTVEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwODEyMUUwNTBFOQorOjEwOTVFMDAwMjgxNjBBMDQ4MEExNDAyQzQwNEIxNDIyQzQwMEIxMDA2QworOjEwOTVGMDAwMkM1MDA5MTQwMjA0MDRCMTAwMkM0MDBBMTAwMkMyMDFDQworOjEwOTYwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRTg1MDMyMDA4QQorOjEwOTYxMDAwOEM4MDAyMjAwMEI4MDAzRTAwMEI4MDMzRTAxMEY4MDA4MAorOjEwOTYyMDAwM0UwMDBDODAwMzIwMDhDQTAwM0UwMDBDODAwM0FFMDNGRAorOjEwOTYzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGQzQwRkQxMDJGNDE2QworOjEwOTY0MDAwNEY5MTAzRTQ0MEY5NDAzRTQwNEZEMDYzRTUwMEY5NDBCQworOjEwOTY1MDAwM0E1MDJFOTQwMzY1MDBFRDAwM0Y1MDBGOTAwM0U2MDY0QworOjEwOTY2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVFNjAwRjlFMDMzNTAxQgorOjEwOTY3MDAwMENEQTAzQTYwMEQ5ODAzRjQwMEY5MTAzQTYwMEY5ODhCOQorOjEwOTY4MDAwM0U2ODBDREUwMzY2MDBFRDAwM0I2OTBDOTAwM0M2MDBFQgorOjEwOTY5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTA4QjhFMDIwMjA1MQorOjEwOTZBMDAwMTg4RTI2RTEwMDgwQTAyRTAwNEI4ODQyRTE1MEI4NDA4MQorOjEwOTZCMDAwMkUyQTBEMEEwMjIwMDhCODAwMkUxNDBEODAwMkNFMDRCNgorOjEwOTZDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNTAwQjE2MDIwNDAyNworOjEwOTZEMDAwMDgzMUEyQzUwMDkxNDgyQzQwMUIxMjAyODQwMEIxMDA0MQorOjEwOTZFMDAwMkM1MDA5MTYwMjA1MDBBMzA0Mjg0MDA4MTAwMkMyMDFFQworOjEwOTZGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVBNDAwQjkwODIwNzBFOAorOjEwOTcwMDAwMjg5MDAyRTQwMDg5MDAyRTQwMEI5MDAyRTQwOEI5MDM3RgorOjEwOTcxMDAwMkM0MDI5OTAwMjY0MDBCOTAwMkU2MjA5OTAwMkM2MDQxMAorOjEwOTcyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDVFNTAwRjlEMEIyNzA2NAorOjEwOTczMDAwMDg5MDAzRTQwMEQ5MDQzRTQwMEY5MDAzQTQxMEY5MDJGRQorOjEwOTc0MDAwM0U0MDBEOTAyQjY0MDBFOThEM0E2MDBDOTAwM0U4MDRENAorOjEwOTc1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjk4MDNFNDJEMworOjEwOTc2MDAwMEY5MDAzRTQwMEY5MDAzRTQwMEY5QTAzRTQwMEY5MDA3MworOjEwOTc3MDAwM0U0MDJGMTAwM0E0MDBGOTIyM0M0MDRGOTAwM0NBMDA0MgorOjEwOTc4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MDBBMDAwRjA0MDMyMDA0RgorOjEwOTc5MDAwMEM4MDAzQzAwMEY4MDAzMjIwMUY4MDAzRTAwMEM4MDBFNgorOjEwOTdBMDAwMzIwMDBDODAwMjIwMDBDOEMwM0UwMDBDODAwM0NBMDRCNgorOjEwOTdCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MTUyODEwQkEwMDIzQTA5NworOjEwOTdDMDAwMEFFNDAyRTgwMEJBMDAyQkExMEJBMDAyRTgwMEFBMDBGQworOjEwOTdEMDAwMkE4MTBBQTAwM0U4MDhERTAwMkU4MDBBQTAwMkNBMDAzRgorOjEwOTdFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjMwNEEwQjFCOAorOjEwOTdGMDAwMDgzNjIyQ0MwMEIzMDAyMEU0MEIzMDAyQ0MwMDgzMDBGQQorOjEwOTgwMDAwMjBDMDA4MTgwMjBDMDA5MTAxMkNDMDA4MzAwNkNBMDBDNAorOjEwOTgxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQ0M4QjMyMTIxQzJCQworOjEwOTgyMDAwMkE3MDAyREMwMEI3QTAyOUMwMEI3MjAyQ0UwMEE3ODEwQgorOjEwOTgzMDAwMjlDMDRBNzQwMkZFMDA5NzAxMkNDMDBBNzAxMkU4MDA4OQorOjEwOTg0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTgwRjdDMDMxRTBDMgorOjEwOTg1MDAwMEM0ODAzREUxMUY3ODAyMUUwMEI3QTAzREUwMEMzODBBMQorOjEwOTg2MDAwMzNEODZDNzgwMzNFMDBENjgwM0RFMDBDNzgwM0VBMDJFMgorOjEwOTg3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MERBQzA4RkI4MDNFQzBBNgorOjEwOTg4MDAwMEZEMDAzRUMwNEZCM0MzRUMwMEZCNjA3NkMwMUZCMDA5RAorOjEwOTg5MDAwM0VEMDBGOTQwN0VDMDFFQTAwM0VDMDBGQjAwM0MyMDZCMQorOjEwOThBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDFGRTAwQ0ZBNDNCNjA0QgorOjEwOThCMDAwMDhEOTAzN0UwMENGODAzRjI1NEZGQzg3QkUwMENGODBCNAorOjEwOThDMDAwN0ZGQzBDRkMwMzdDMDBGNjkwMzNFMDBGRjgwM0MwMDAzMworOjEwOThEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzA4OEYyODIxNDBBMworOjEwOThFMDAwMDhEMDAyMUM0MEE3MjAzMTA0MUI3ODAyREM4MEQ3MDA3RQorOjEwOThGMDAwMkZDNDFBRDAwMjFFNDhCNjAwNjFDMDBCNzAwNkVBMDRERAorOjEwOTkwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA4QzAwODczMDY5NDQwNworOjEwOTkxMDAwMDg1MDIyMEMwMDg3MDEyRDQ0OEI3MDA2OEMxMDg3MDBBNAorOjEwOTkyMDAwMjlDOTA4NTAwMjFDNDRBNjAwNjFDMDBCNzAwMkMwMDA4NworOjEwOTkzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDRDAwODM4ODYwNDA1QgorOjEwOTk0MDAwMDAxMDAyNEMwMDJCMDAyQzQxMUIzMDAyQ0MwMDkzMDA3NQorOjEwOTk1MDAwMkNDMDBBMzA0MjBDMDBCMjQwMjBGMTBCMzAwMkM4MDQ4NworOjEwOTk2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCRDQxQ0ZDMEJBRjBEMworOjEwOTk3MDAwMjg5MDFCNkMwOENGMDAyQ0MwMEZGMDAzQUMwMDhCMDBBQworOjEwOTk4MDAwM0ZDMDZDQjA0QjJDMDFGQjQwMjJDODBGQjAwM0VBMDQ2RgorOjEwOTk5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzA0RkIwNDNGRDRFNQorOjEwOTlBMDAwMEYxMDAzQUMwMEZCMDAzMkMwNUZCMDAzRUMwMEZCMDRGRgorOjEwOTlCMDAwM0VDMDRGMTAxM0VDMDBGQjg4M0VDMDRGQjAwM0UwMDBFOAorOjEwOTlDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQzcwMDMzNjIxRQorOjEwOTlEMDAwMENDMDBCM0MwMEVGMDAzM0UwMUNGMDEzM0MwOEY3MDAxOAorOjEwOTlFMDAwMzFDMDBFRDgwM0JDMDBGRTAwM0RDNjBDRjAwM0MwNDRERAorOjEwOTlGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzAwQ0IwMzIyNDcwRgorOjEwOUEwMDAwMDg5ODQyMkMwMDlCMDAyQUMwMEFCMDAyMkMwMEJCMDQxQworOjEwOUExMDAwMkFDMDBBQjAwMkFDMDhGQTAwMkU2MDA4QjAwMkUwNDA4QQorOjEwOUEyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOUIwMDIwNDA3QQorOjEwOUEzMDAwMDg5ODAyMkMwMEJCMDAyMjg4MDgzMDAyMkMwMEJCMDBEMgorOjEwOUE0MDAwMjJDMDhBOTIwMkFDMDBBQTgwMkVDMDA4QjAwNkUwMDBCNAorOjEwOUE1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODMwMEEwNDA0QgorOjEwOUE2MDAwMDgxMDAyMEMwMEIzMDAyODgwMEEzMjEyMEMwMEIzMDQ2NAorOjEwOUE3MDAwMjhDMDBBMzAyMjhDMjBCMjAwMkNDMDA4MzAwMkMyMDE1QgorOjEwOUE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAyQ0IwMDMwNDAyMAorOjEwOUE5MDAwMUM5NDAzMkMwMEVGMDAzMkMwODhGMDhCMkMwMEZCMDBEQworOjEwOUFBMDAwMzNDMEFFRjAwM0FDODBFQTAxM0VDMDJDQjAwM0MwMDM2QgorOjEwOUFCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDJGNDAyRgorOjEwOUFDMDAwMDdEMjgzRkMwMERGMDQzRkMwMEZCMDAzRkMwMEZGMDA5RgorOjEwOUFEMDAwM0ZDMDBGRDAwQkVDMDBFRTAwM0Y0MDBGRjAwM0U4MDY1NAorOjEwOUFFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGNTAwQ0YwODNGNDhFRQorOjEwOUFGMDAwMEZDMzkzNzBEMERDMzAzRkQ4MENCMjAzM0NDMEZGNDBBMgorOjEwOUIwMDAwMzNDNDJDRjEwMzYyNTBGQzM0MzMwMDBGNUMwM0YwMDBDQgorOjEwOUIxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBDNDgwOEIwMDJGNUFFRAorOjEwOUIyMDAwMEJBNjEyMjFDMDg5NzAyRkRDMDhGMkMyM0REMEJGNDBDNQorOjEwOUIzMDAwMzdEQzg4RjUwQTIwODBFODEwMkExNjBCOTAwMkUwMDQzMgorOjEwOUI0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDMDAwODMwODJDNDQ5RAorOjEwOUI1MDAwMEIwMjAyMEMwMDgwMDAyQ0M4MDgzMzQyOEM5MEIzMzBGQQorOjEwOUI2MDAwMjhDODRBMzIxMjgwMENCMEEwMjgyODBCMTIwMkUyMDE0OQorOjEwOUI3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBMjAwOEIwMDJFNDhGRAorOjEwOUI4MDAwMEJBMDIyMjAyMDg4ODAyRUMwMjhCMDBBQUMwMEJCMDA4OQorOjEwOUI5MDAwMkVDMDBBQjAwMkEwMDBBQjgyMkFBMDBCQjIwMkYwMDREMQorOjEwOUJBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFNzAwQ0IwMDNFQzA1MAorOjEwOUJCMDAwQ0Y5QzBCMjEwMEQ4ODgzRUMwMENCMDAzQUMwMEZCMDA0QQorOjEwOUJDMDAwM0FDMDBFQjA0M0U4NDBGODgwM0E2MDBGOTgwM0QwMDRFMgorOjEwOUJEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDAwRkYwMDBGRTA5MgorOjEwOUJFMDAwMDdBMTAzRTgwMkZCMDAzRkMwMEY3MDIzN0MwMEZGMDJDNworOjEwOUJGMDAwMzVDMDREQjAwMzc0MjBGQzAxM0YwMDBGRjgwM0Y4MDA5RQorOjEwOUMwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNTAwQ0IwMEJBNDAzQQorOjEwOUMxMDAwMEMxNDBCMkYyMkM5NDAzMkMwOEVCMDAzQUMwMEZCMDBFNQorOjEwOUMyMDAwM0VDMDBFQjAwM0U0MDBDOTAwMzIwMDJDOTAwMzEwMDRDMworOjEwOUMzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDEyNDAwOEYwMDIyNDAyNgorOjEwOUM0MDAwMkNBNTQyMjkwMDhCMDRBM0MxMERGMDBBM0MwMEJGMDBFMworOjEwOUM1MDAwM0ZDMDA4RjAwMTY5MDBEQTA1MjJEMDA4OTQwMzcyMDBDMQorOjEwOUM2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2MDQwODMwMTIwQzBDQgorOjEwOUM3MDAwMDkwMDAyMjAwMDgyNjAyMkMwMDgzMDQyNEMxMEJCMDI2MgorOjEwOUM4MDAwMkNDMDA4QjAxMjA1MDA5QjAwMjA4MjA5MzIwMjM4MDA2NworOjEwOUM5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjkwODc4MDIwRTBBNgorOjEwOUNBMDAwMDg1ODAyMTYxNDg0ODEyMUUwMjkzOTAyNUUwMEI3ODAyOQorOjEwOUNCMDAwMjhFMDA4NzgwMjdBODA5NjgxMjFFMDA5RjgwMjQ4MDBCRAorOjEwOUNDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODA5OEIxMDM4NDREQworOjEwOUNEMDAwNEQyNTEyMEMwMEMyMTAyMkM4MEEzODAzQ0MwMEYzMTAyNAorOjEwOUNFMDAwMkNDMDBDMzAwMzhBQzBEOTEwMzI0MDJEMTAwMzEyMDI1MAorOjEwOUNGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzgwRkYwMDNGNDA0RAorOjEwOUQwMDAwMEZGMDAzRjQ0MEVEMDAzRkMwMEVGMzAzQkMwNEZGMDA2RQorOjEwOUQxMDAwM0ZDMjBGRjAwQkQ0MDBGRjEwQkY4MDBFRjAwM0QwMDYzRgorOjEwOUQyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVGQTAwQ0IwMjNFQzA2MQorOjEwOUQzMDAwMEY5MDAzQTAwMENCMDAzQUNBMENCMzEzQUYyNENCNDg1QQorOjEwOUQ0MDAwMUVDODBGQjYwMzJDMDBGQTAwM0VDMDBGOTAwM0VBMDBCNQorOjEwOUQ1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzA4ODcyMDJEQzRGRQorOjEwOUQ2MDAwMEI1MDEyREMwNDg3MDAyQ0MwMDg3MEEyMUQwMEE3NDAxNQorOjEwOUQ3MDAwMjVDQjhCNzQ4MjFDMDBCNzAwMkRDMTBCNzAwMkQyMDQ1RQorOjEwOUQ4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QTAxODc5MDJERTBGNAorOjEwOUQ5MDAwMEI3ODAyQ0UwMDg2ODAyREU0Mjk3QTAyOUU4MDg3QTA2RgorOjEwOURBMDAwNkRFODBCNzgwMjFFMDBCNTgwMkQ2MDBCNzgwMkYwMDA4NAorOjEwOURCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRDAwODMwMjJDRTBDOQorOjEwOURDMDAwMEIzMDAyQ0MwMDgzRTAyQ0MwMDgzMDAyMEMwMEEzMDA1MgorOjEwOUREMDAwMjRDMDBCQjAwMjBFMjBCMzA4MkNDMDBCMzAwMkQyMDRGQQorOjEwOURFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODgyQ0EwMDNFQTg1QworOjEwOURGMDAwMEZFMDAzRjgwMjhFODAzRTgwMERBMDVCQTgwMENBMDAzMQorOjEwOUUwMDAwM0U4MDBGQTAwMzNCODBGRTQyMkY4MDBGQTgwM0ZBMDQ4MAorOjEwOUUxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDIwRjgwMDNFMDA2NAorOjEwOUUyMDAwMEYwNjAzQzAwMEY4MTEzRTAwMEYwMDAzRTAwMEY4MDAyOQorOjEwOUUzMDAwMzYwMDBGODAwQkUwMDBGODA0M0UyMDBGODEwM0QyMDBCMworOjEwOUU0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjkwMDNFNDA2RgorOjEwOUU1MDAwMEM5QTAzMjQ0MEM5QzAzRTQwNEM5MDAzMjQwMEY5MDBGMgorOjEwOUU2MDAwMzY0MDA3OTAwMzI0MDBDOTA0MzI2MDBGOTAwM0MyMDRGNworOjEwOUU3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjkwMjJFNDBBMQorOjEwOUU4MDAwMEE5MjAyMjUwMjg5RTAyRTQwOTg5MDAyMjQwMEI5MDAyRgorOjEwOUU5MDAwMjI0MDA5OTAwMjA0MDBEOTAwMjI0NDBCOUMwMkUwMDBGOQorOjEwOUVBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyQzAwQjkwMDJDNDAzNAorOjEwOUVCMDAwMDg5MDAyMjQyODg5MDAyQzQwNjg5MDQyMjQwQ0IxMDRBOAorOjEwOUVDMDAwMjY0MDBCOTAwQTJDODA4MTAwMjI0MENCOTI4MkM2MDA1MworOjEwOUVEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjEyMDJDNDhFRAorOjEwOUVFMDAwMEExMjAyMDQ4MDgxMjEyQzRDMDgxMTAyMDQwOEIxMTBDRQorOjEwOUVGMDAwMjA0QzA5MTIwMjI0MDE5MTIwQTA0ODBCMTAwMkMyMDEzQgorOjEwOUYwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ0MUUwRjg1MDNFMTREMQorOjEwOUYxMDAwMEM4NTAzMjE0MEM4NTAzRTEwMDgwNjgzMDFGMEY4NjgwNAorOjEwOUYyMDAwMzYxMDBGMDUwMzI5NDBDODUwMzI5NDBGODUwM0VFMDMwNQorOjEwOUYzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDAwRjkxMDNGNDQ5QworOjEwOUY0MDAwMEZEMTBCRjQ0MEZEMTIyRTRDMDM5MjBCRTQwMEY5MjBDQworOjEwOUY1MDAwM0U0QzBGOTEwM0ZDMDBGRDEwM0Y0NDBGRDAwM0U2MDY3QQorOjEwOUY2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjIwQzkwMTNFNDAwNgorOjEwOUY3MDAwMEZEMDAzM0MwMEJEMDAzMjYzMEM5RTQzMjcwMEU5QzBCNAorOjEwOUY4MDAwM0U2ODBDOTgwMzM0MDBGOTEwM0Y0MDBGRDAwM0M2MDAyMAorOjEwOUY5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBDMjIwRDgwMDJFMDAyMQorOjEwOUZBMDAwMEI4MDUyMjgwNEI4MDAyMjM4MDg4ODAzNjIwMDg4RjAyOQorOjEwOUZCMDAwMkUzQTQ4OEYwQTIwMDBCMDgwMkUwMDBCODAwMkNFMDQ3QgorOjEwOUZDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDgwODEwMDJDNDAyMworOjEwOUZEMDAwMEIxMDAyMDQwMEIxMDAyMDQyNDgxNDQyMDU4MEExMjA2OQorOjEwOUZFMDAwMkM0NDA4MTA4MjA0MDBCMTIwMkM0MDBCMTAwMkMyMDE0NgorOjEwOUZGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNTAxOTkwMDJFNDAxNworOjEwQTAwMDAwMEI5MDAyMjQ0MEJCMDEyMjQxMDg5MDEyMjQwMEE5MDBCOQorOjEwQTAxMDAwMkM0MDA4MTA0MDI0MDhCOTQwNkU1MDBCOTIwMkM2MDQzMAorOjEwQTAyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNzE0QzkwNTNFNDFEMworOjEwQTAzMDAwMEY5MDBCMjQwNEY5MDhCMjQwMkM5MDBBMjQwMEU5MDA4OAorOjEwQTA0MDAwM0U0MDJDOTAwMzI3MDBGOTgwM0U2MDBGOTAwM0U4MDQwNworOjEwQTA1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NDg4RjkwMDNFNDhEQworOjEwQTA2MDAwMEY5OTAzRTYwMEY5MDIzQzQwQUYxMDAzRTQxMkQ5MDQ1MworOjEwQTA3MDAwM0U0MDBGOTAwM0U1MDBGOUMwM0U2NDBGOTA4M0NBMDA5NAorOjEwQTA4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMTAwQzgwMDNFMDA5MQorOjEwQTA5MDAwMEY4MDAzMjEwMEM4NDBCMjAwMEM4MDAzMjAxMEM4MDBDQworOjEwQTBBMDAwMzIwMDBDODAwM0UwODBGODA0MzIwMDJDODAwQjBBMDQ5QworOjEwQTBCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQ0EwMDJFODBCMworOjEwQTBDMDAwMEJFODBBMzgxMDhFQzAyMjgwMERBMDAyMjgwMDBBMDQ3NgorOjEwQTBEMDAwMDI4MDI4QTAwMkZCMDBCQTAwMzdCMDQ4RUEwMjBBMDA1QQorOjEwQTBFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTMwMTJDQzAzNworOjEwQTBGMDAwOEJCMDQyMEM5MDlCMjAyMEMwNDgzMDQyMkMwMDgzMDA0MworOjEwQTEwMDAwMjBDMDA4MzAwMkNENDBCMzAwMjRDODA4MzgwMjBBMDAzRAorOjEwQTExMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNDAwODcwMDJEQzBDNgorOjEwQTEyMDAwMEIyNDA2MTYwMDkzMDgyMUM4MDkzMTAyMEM4MDg3QTA3MQorOjEwQTEzMDAwMjFDMDE4NzIwMkRDMDBCN0I0MjRFMzA4NzgwMjI4MDBCQQorOjEwQTE0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAyOTdBMDNERjA5QgorOjEwQTE1MDAwMEY0ODAzM0UwMEQ2ODAzMEUwMkM3QTAyMUU4MkMzRjAwNgorOjEwQTE2MDAwMzNFQzBDN0MwM0Q2MDBGNzgwMzVFMDBDRDgwMzJBMDJEMAorOjEwQTE3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MTlBNUEwRkIwMDNFQ0E3NgorOjEwQTE4MDAwMEY4MDAzRUMwMkVBMDAzRUM2MEZCNDBCRUQ0MEZCMDA2QgorOjEwQTE5MDAwQkVDMDBGQjY0M0UwMDBGQjAyM0U4MDBGOTAwM0MyMDYzNAorOjEwQTFBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAyQ0Y4ODNGRTBENAorOjEwQTFCMDAwMENCOTAzRkUwMEREODEzM0UwOENGQzAzM0YwNENGODA0QgorOjEwQTFDMDAwMzNFMjRGRkMwMzNFMDBDRkMwMzM2NDBDRjgwM0MwMDAwMQorOjEwQTFEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5NDQwODcwMDJGQzEwQgorOjEwQTFFMDAwMEQ2OUEyRDA0MEJDMDAyM0MwMDhGMDAyOUMwMDg3MDA4QgorOjEwQTFGMDAwMjFDMDBCNzAwQTNDMDQ4NzEwMjE0QzA4NjAwMkVBMDQ1RAorOjEwQTIwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5RTAwODcwMDJEQzBEQworOjEwQTIxMDAwMDk2MjAyRDgwMDk3MDAyMUM0MDg3MDAyMEM0MDk3MDAyMAorOjEwQTIyMDAwMjFDNDBCMzAwMjU4MDBBNzA4MjE4MDA4NjA4MkMwMDBCQQorOjEwQTIzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRFNDI1ODMwMDJDQzA1MgorOjEwQTI0MDAwMDkyMjAyQ0MyMEIyMDAyMEMwMjhCMDAyOEMwMDkzMDA2QQorOjEwQTI1MDAwMjBDMDBCMzA0MjZDMjA4MzA4MjBFMjA4QjgwMkM4MDRGQQorOjEwQTI2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBNDAwQ0YwMDNGQzA4RgorOjEwQTI3MDAwMEQ5QzAzRTgwMERCODAzM0MwMENGMDBCM0MwNkRGMDBENAorOjEwQTI4MDAwQjNDMDBCRjAwNzY4MDBFRjQwMzJBODBDQTgwM0VBMDQ0MworOjEwQTI5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwMDJFQzAwOQorOjEwQTJBMDAwMEY5NDAzQzU0MEZBMzAzRUMwMEZCMDAzNkMwMEVCMDBDMgorOjEwQTJCMDAwM0VDMDBGMzAxM0FENDBGQjAyM0VEMDBGQjQwM0UwMDBCMAorOjEwQTJDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBFNDAwQzcwMDMxQzFCMAorOjEwQTJEMDAwOENEMDAzMzQwMENEMDAzREMwMENGMDAxN0MwMERCMDFDQworOjEwQTJFMDAwM0RDMDRDRjAwQjMwMDJDMzAwMzIwMDBGRDAwMzAwNDRERAorOjEwQTJGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2RTQwOEIwMDJBQzA4NgorOjEwQTMwMDAwMjg4NDQyMjI4MDg4ODAzQUMwMERCMDAyQUMwODhCMDBCRAorOjEwQTMxMDAwMkVDMDA4QjAwMjIzMjA4QjAwMjIzMDhCOEMwMjIwNDBGQworOjEwQTMyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNDAwOEIwMDIyQzAwNworOjEwQTMzMDAwMDgzODg2MkEwMDg5ODAyQUMwMDhCMDAyQ0MwMDlCMDAxOQorOjEwQTM0MDAwMkVDMDA4QjA0MjI2MDA4QjAwMjI3MTBCOEMwMjIwMDAyOAorOjEwQTM1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODMwMDI4QzAzQQorOjEwQTM2MDAwMDgzMjQyMDAwMDgxMDAyOEMwMDkzMDUyOEMwODgzMDA2NgorOjEwQTM3MDAwMkNDMDE4MzAwNjAwMDA4MzAwQTAwMDBCMDAwMjAyMDE3MAorOjEwQTM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3NDAyOEIwMDMzQzBDQworOjEwQTM5MDAwMEM5MjBCMjAwMkM4MDAzQkMwMENGNTAzRkMwMERGMDE0RgorOjEwQTNBMDAwM0ZDMTA0RjAzMzIxNDBDRjAwMzIwMDBGODAwQjAwMDM4NworOjEwQTNCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRkYwMDNGQzA5QQorOjEwQTNDMDAwMEZDNDAzRjAwMDlDMDAzQkMwMEZGMDAzRkMwMEZGMDAzMworOjEwQTNEMDAwMkZDMDBGRjAwM0YwODBGRjAwM0YwMDBGQzAwM0U4MDYxRQorOjEwQTNFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMEMwRkZBMDMxMjQ5NAorOjEwQTNGMDAwMEVGMDYzMTAwNEVGNjQzRkMwNENGMzAzMUM4MERGMDhEMQorOjEwQTQwMDAwMzdDMDBGRjAwM0YwQTBGQzAwMzEwODJDRDIwM0YwMDA5RAorOjEwQTQxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMTAwQkJDMTIyNDg3NQorOjEwQTQyMDAwMDhGRDAyMkUwMDk3MDAyRkMyNDg3MTIzN0U0MEJGMDAxNgorOjEwQTQzMDAwMjFDNTRCRjUwMkVGMDBCQjQwMzZFMDA4QTgwMkUwMDQ1RQorOjEwQTQ0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNTg0QjMxMUEyQzlENworOjEwQTQ1MDAwMEEzMDAyMDAwMUIzMzAyOEM0MDgzMjQyMEMwMEEzMDhCRAorOjEwQTQ2MDAwQTBDQTBBMzI4MjgwMTBCMDQxMjQxMTA4MzEwMkUyMDFGMAorOjEwQTQ3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBNTAwQkIwMDIyRTEzNAorOjEwQTQ4MDAwMjhCMDAyMkM4MDlCMDAyRUMwMDhCMDAyNkMwMEIzMDBFNAorOjEwQTQ5MDAwMjJDMDBCQjAwMEVDMjBCQjAwMjZDMDA4ODAwMkYwMDRGNAorOjEwQTRBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFMzQwRjcwNDMyQzBFNworOjEwQTRCMDAwNEVCMDIzMkUyMEVCMDAxRUMwMENCMDAxMkMwMEZCMDA4MAorOjEwQTRDMDAwMzZDMDFGQjAwM0UxNDBGQjAwMzY5ODBDOTAwM0QwMDQ2NworOjEwQTREMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNjA0RkYwMjNGQzA3MQorOjEwQTRFMDAwMEZGMDAzRkUwMEVGMDIzREMwMEZGMDIzRkMwMEZGMDA2MQorOjEwQTRGMDAwM0ZDMDRGRjAwM0ZDMDBGNDAwM0I0MDBGQTAxM0Y4MDBGNgorOjEwQTUwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQTIwRUIxMDM2QzBFMAorOjEwQTUxMDAwMERCMDA3RUMyMERCMDAzMkMwMENCMDAyNkMyMEVCMDA2OQorOjEwQTUyMDAwM0VDMTBEQjAwM0UwMjBEQkEwMzI5MDRDQjAwQjEwMDQxNAorOjEwQTUzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyRDAwOEY4MDIwQzExMQorOjEwQTU0MDAwMDg3MDEyQ0YwMDhGMDBBM0MwMERGMDAyM0MwMDhGMDBGNgorOjEwQTU1MDAwMzdDMDg4RjAwMkVDMDA4ODAwMjA0MDA4ODAwMjMyMDBGQQorOjEwQTU2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQTM4MDI0ODFCMgorOjEwQTU3MDAwMDkzMDA2Q0M0MDkzMDAyOEMxMDhCMDAyQ0Y0MEEzMDBBOAorOjEwQTU4MDAwMkNDMDA5MzAwMkNEMDA5MDQwNjA0MDI4MTAwMjM4MDBGNQorOjEwQTU5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDEwRTAwODc4MDIzRTAzMgorOjEwQTVBMDAwNDg3OTAyREU0MTk3ODAyOUUwMTk3ODA2OUUwMDg3ODA2RAorOjEwQTVCMDAwMjVFMDA4NzgwMkQyMDM4MzgwMjFBMDA4NjgwMjA4MDAwMQorOjEwQTVDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwQTMwMDM0QzA1OAorOjEwQTVEMDAwMEQzMDQyQ0MwMUQzMTAzQUM1MEMzOTAzQ0MwMEUzMDQ1MgorOjEwQTVFMDAwM0NDNDBEMzAwM0NFMDBEMDAwMzA0MDBDMzAwMzEyMDJDQQorOjEwQTVGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwRjcwMDNGQzA0QworOjEwQTYwMDAwMUZGMDUzRkMwMEVGMDgzN0QxMEZGMDgzN0MwMEY3NDBCOAorOjEwQTYxMDAwM0ZDMTBGRjEwM0QwMDBGRjAwQkY4NDBGQzgwM0QwMDY3NQorOjEwQTYyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFMDAwRkIwMDNFRTAyNAorOjEwQTYzMDAwMkNCRTgzRUMwMEVCNDAzRUMwMEZCNDAzRUQyMEZCMTBCQQorOjEwQTY0MDAwQjZEMjBGQjQ4M0VDMDBEQjgwMzZDMTBDOTAyMTJBMDAxNworOjEwQTY1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAwQjcwMDJGQzBGNworOjEwQTY2MDAwMDgzNjAyMEMwODg3MzAyREQ5OEI3Mjg2REQwMEIzMjBBNgorOjEwQTY3MDAwMjFDODBCNzQwMkQwMDI4NDAwQTAwMDI4MjAwMjEyMDQxQQorOjEwQTY4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QTAwQjc4MDJERTBDQworOjEwQTY5MDAwMDg3QTAyOUQwMEE3QTAyREUwMEI3ODAyOUU4MEE3ODA3QgorOjEwQTZBMDAwMjFFNDA4N0EyNjlFMTg4MzA0MjFFMDA4NzgwQTcwMDBDNQorOjEwQTZCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjMwMDJDRTA5MworOjEwQTZDMDAwNTgzMDEyMEU4MjgzMDAyQ0MwMEIzMDAyQ0MwMUIzMDAzNAorOjEwQTZEMDAwMjBDMTBCMzAwMkMwMDg4OEQyMjAyMDA4MDAwMjUyMDQ5QQorOjEwQTZFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODYwRkEwMDNGODI2QQorOjEwQTZGMDAwMENBMDAzRkEwMEFBMDAxRTgwOEZBMDAzRTgwMEYyMDA1RAorOjEwQTcwMDAwMzI4MDFGQTAwM0U4MDBEQTAwMzY4OEFDRTAwMzdBMDQ0OAorOjEwQTcxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMTAwRjgwMDNFMjA1QQorOjEwQTcyMDAwNEY4MDAzRTEwMEYwMDAzQzAwMEI4MDAzRTAwMEY4MDJFMgorOjEwQTczMDAwM0EwMDBGODA0M0YxMDBGQzBBM0QwMDBGQzAwMzkyMDA3NQorOjEwQTc0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNjAwQzk5MDNFNDAwNAorOjEwQTc1MDAwMEY5MjAzRTQwMEQ5MDAzMjQwMDQ5MDA3RTcwMEY5MTA5QgorOjEwQTc2MDAwMzA0MDBDOTA0M0U0MDlEOTgwMjI0MDJDMTAwQjAyMDRBNQorOjEwQTc3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDYwODlDMDJFNDBBQQorOjEwQTc4MDAwMEI5ODI2QzU4MDg5MDAyMjQwMjg5MDEyRTcxMEI5MDA1NgorOjEwQTc5MDAwMzY0MDI4OTAxMkM1ODNDOTgwQjY0MDA4OTAwMjIwMDAzOAorOjEwQTdBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUwNDAwODk0MDJFNDE0MAorOjEwQTdCMDAwNEI5MDAyRTQwMDk5MDBBMjQwMEE5MDAyRTUwMEI5MDAyMworOjEwQTdDMDAwRTI0MTA4OTA0MkU0MDA5RDUwQUI0QTA4RDAyNjA2MDBDMgorOjEwQTdEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgyODEyMDJDNTA4QQorOjEwQTdFMDAwMEIxMDAyRTQwMDgxNDAyMDUwNEExNDMyQzQwMEIxNDBGMgorOjEwQTdGMDAwMjQ1MTE4MTQxMkQ0MDA4NTQwMkQ0MDA4NTAwNjAyMDEzRgorOjEwQTgwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwQzgwMDNFMDBEQworOjEwQTgxMDAwMEY4MDAyRTAwMEQ4MDAzMjAwMEE4MDAyRTAxMEY4MDA0OQorOjEwQTgyMDAwMzIwMDA0ODAwM0UwMDBEODAwM0EwMDBDQzAwMzJFMDM3RAorOjEwQTgzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwRjkxMDNGNDE1NgorOjEwQTg0MDAwMEY5NDAzRjUwMEY5NDAzRTUwMEQ5NDAzRTUxMEY5NDBENAorOjEwQTg1MDAwM0U1MDRGOTQwM0M1MDBFOTQxMzY1MDBGOTQwM0U2MDY3RAorOjEwQTg2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjAwRkRBODNBNDA0NgorOjEwQTg3MDAwMENEODIzMzYwMEU5QTAzRTc4MEY5RTAzQjY4MENERTJDNworOjEwQTg4MDAwMzI2ODBDOUIwMzM2ODI0REEwMzc2ODhDOTgwMzA2MDAxMworOjEwQTg5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFQkEwQjg0MDIwMjAzRAorOjEwQThBMDAwMDg4NTAyMjE1MTg4QzAyRTI5MEI4RTAyRTEwMEQ4RTBENAorOjEwQThCMDAwMjIzMjBEOEQyMzYxNDg5OEQ0QTIxMDI4ODQwMjBFMDQwMAorOjEwQThDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNTAwQjMwMDJBNEE1RgorOjEwQThEMDAwMjgxMDRFQTQwOEExNjgyODQ0MEIxNDAyQzUwMDgxNDAyQQorOjEwQThFMDAwQTA1MDA4MTAwMjA0MDI5MTJBMjA0NDI4MTQ0QTAyMDFCMAorOjEwQThGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBQzgwQjkwMDIyNDA3NAorOjEwQTkwMDAwNDg5MDA2QTQwMEE5MDAyRTQwMEI5MDIyRTQwMDk5MDA3NAorOjEwQTkxMDAwMjI0MDA5MTAwMjY0MDI5OTAwMjI0MDA4OTAwMjA2MDRCNQorOjEwQTkyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjkwMDM4NThBNQorOjEwQTkzMDAwMEM5MDUzODQxNEE5MDQzRTQwMEY5MDAzRTQwMEM5MDAxNgorOjEwQTk0MDAwMzI0MDBDOTAwMzI0MDREOTAwQjY0MDRDOTAwQjI4MDRFQworOjEwQTk1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMjNFNDkzOAorOjEwQTk2MDAwMEYxMDQzNjQwMEQ5MDAzRTQwMEY5MDAzQzQwMEYxMDI3MQorOjEwQTk3MDAwM0U0MDBGOTAwM0M0MDJFOTA0M0M0MDBGMUMwM0NBMDA5MAorOjEwQTk4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMTgwQzgyMDNFMDBFOAorOjEwQTk5MDAwOEM4MDBCMjAwMEU4MDIzRTAwMEY4MDAzQTA4MkM4MDBEQworOjEwQTlBMDAwNkMwMDBGODAwMzIwMTBDODAwMzIwMjBDODAwMzBBMDRFMAorOjEwQTlCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzODAwODYwMDJFODBERQorOjEwQTlDMDAwNjhBODgwM0EwMDhBMDAyRTgwMEJBMDAyRjgwMDhBMDA1NgorOjEwQTlEMDAwMkU4MDBCQTAwQTNBMDA4RTEwMjM4MDA4QTAwMzBBMDBFNAorOjEwQTlFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0RDAwODMwMDJDQzAzRQorOjEwQTlGMDAwMDgzODAwMEM2MDIzMDAyQ0MwMEIzMDAyQ0M0MDgzMDBEMAorOjEwQUEwMDAwMkNDMDBCMzAwMjBDMDI4QTgwQTBFMDI4MzAwQTRBMDBEOQorOjEwQUExMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNjIwODcwMjJEQzE5OAorOjEwQUEyMDAwNDg3MDEyN0MwMEE3MjAyREM5MEI3MjAwREMwMDg3MDgzQgorOjEwQUEzMDAwMkRDNDFCMzIwMjFEMDE4NzQyMjFDMjA4NzAwMjI4MDA2QQorOjEwQUE0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTAyQzc4MDNERUM2NgorOjEwQUE1MDAwMEM1ODAzMUUwMEU3ODAzREVDMEY3RjAzOTYwMEM3ODA3MworOjEwQUE2MDAwMkRFMjA3NzkwMzBBMDZDMzgwMzAyMDhDMzgwMzZBMDI3RQorOjEwQUE3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRkIwMDNFQzAwQworOjEwQUE4MDAwMEYxMDQzOEMwMERCMzgzRUQ4MEZCMDAzQ0MwNEZCNDRERQorOjEwQUE5MDAwM0VDMDhGQjYxM0VDMDJGRjAyM0UwMDBGQjAwM0MyMDZBOQorOjEwQUFBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQTAwRkY4MDMxRTNCNAorOjEwQUFCMDAwMEVGODIzRkUwMkRGODBCN0UyMEVGODAzN0UwMDZERDBCMQorOjEwQUFDMDAwMzNFMDBDRjg5Qjc2QzBERjg0QjNFMDA0RjgwM0MwMDBFOQorOjEwQUFEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5MDQwQjcwMjIxQzRERgorOjEwQUFFMDAwMDg3QjQyREMwMDg3MDAyMUM0MEIzMDAwMTA4MDhEMDAwMQorOjEwQUFGMDAwMjNDMDBERjIwMjA0NDI4RjAwMjlDODI4NzAwMkVBMDQyNAorOjEwQUIwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5NDAwQjYwMDIzQzBCOAorOjEwQUIxMDAwMEE3MjAyOEMwMDg3MDAyMUMwMEEzMDAyMDQwMUE3MDJEOQorOjEwQUIyMDAwMjFDMDA4NzA0MjAwOEE4NzAwMjFDMDI4NzAwMkMwMDAzRQorOjEwQUIzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDNTAwQjAwMEEwRDBEQworOjEwQUI0MDAwMDhCMDAyQzk0MjhCMDAyMEMwMEIzMDIyMDQwMDgzMDBGMQorOjEwQUI1MDAwQTBDMDQ5MzAwMjQ1NDA5M0MwQThENDAwMzUwMkM4MDRDMworOjEwQUI2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwQkIwMDMxQzBBMAorOjEwQUI3MDAwMEVCMDIzQ0QwMERGMDAzN0MwMEVGMDAxNjgwMEUzMDAwNworOjEwQUI4MDAwMzNDMDFDRjAwMzQ1MDBEQUM4OTJENDJDQjQwM0VBMDRBNQorOjEwQUI5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFNTIwRkIwMDNFQzBENworOjEwQUJBMDAwMEZCMDAzRUMwMEZCMDAzRUMwNEZCMDAzQUQwMEZCMDA1NAorOjEwQUJCMDAwN0VDMDFGMzAwM0E0ODBFOTIwM0NDMDBGMzIwM0UwMDBCOAorOjEwQUJDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQzcwMDMzQzJBQworOjEwQUJEMDAwMkNGMDAzM0UyMERCMDAxM0MwMEM3MDAzM0M4MEVGMDQxQworOjEwQUJFMDAwNzNDMTBGRjAyMjMwMDBDNjAwQjJDMDBDRjAwMzAwNDQ2NQorOjEwQUJGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDA2OTAwOEI0NEEyQzEwOQorOjEwQUMwMDAwODhCMDAzNkMwMDhCMDAyMkMwMjhCMDBBMkQwMEJCMDA2NgorOjEwQUMxMDAwNjJDMDBCQjAwMjI2MDI4QjgwMjJDMDA4QjAwMzIwNDAyNQorOjEwQUMyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyODAxOEEwODIyQzBGMgorOjEwQUMzMDAwMDhCMjAyNkM0MDlCMDAyOEMwNDhCMDE2MjkwNEI5MDEzNAorOjEwQUM0MDAwMjJDMDQ5QjAwNkFFMDk4QjgwMjJFMDQ4QjAwMjIwMDA0NQorOjEwQUM1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAyODIwMDIyQzA0MgorOjEwQUM2MDAwODhCMDAyNDQwMDgzMDAyOEMwMDgzMDAyMDgwMEIxMDAwOAorOjEwQUM3MDAwMjBDMDBCMzAwMjhDMDA4MzgwMjBFMDA4MzAwQTAyMDFFMworOjEwQUM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2NDAwQ0EwMDMzQzA5NgorOjEwQUM5MDAwMENCMjAzMkMwMERGMDAzQkMwNENGNTEzMkMwNEVGMDA3QQorOjEwQUNBMDAwQTNDMDBERjAwM0E4NDBDQjAwQjIwMDJDQjAwMzAwMDNGQQorOjEwQUNCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGMDAwRjQwMDNGQzBBNAorOjEwQUNDMDAwMEZCMTAzRjAwMEZGMDAzN0MwMEZGMDAzRkMwMEZGMDBERQorOjEwQUNEMDAwM0ZDMDA3RjAwQjdDMDhGRjAxM0YwMDBGRjAwM0E4MDYwMAorOjEwQUNFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMEM1RUQzMzNCQ0M1MworOjEwQUNGMDAwMENGMDAzMzA0MEZGMjUzRkNDMENGMzgzM0NEMERGNDgwMQorOjEwQUQwMDAwMzczMDRDRjMwM0ZEODBDRjI4MzNEODBDRjEwMzMwMDBFQgorOjEwQUQxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQ0QwQkIzMTIwQ0M5RgorOjEwQUQyMDAwODhGMzQyMjA1MEJGOTAyRkM0MEFGNjAyN0RDMDhGNDBBNgorOjEwQUQzMDAwMjY0MDhGRjYwMkZEMDBGRjA4MzlDODA4RjYwMkEwMDQ3RAorOjEwQUQ0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDgwQTEyMDI4Qzk1MAorOjEwQUQ1MDAwMDgzMDlBMDAwOUIzMDAyQ0MwMjAzMDAyNEM5MDgzMjBBOAorOjEwQUQ2MDAwMDIwODBCMzMxMkNEODA5MzIwMjREODA4MzQyMjIyMDEwQworOjEwQUQ3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTFBRTAwQkIxMDIyQzAzNworOjEwQUQ4MDAwMDhCMDAyMjYwMTNCMDE2RUMwMDhCMDAyNEMwODhCMDBERgorOjEwQUQ5MDAwQTI4OTBCQjAwMkVDMDBBQjAwNkFDMTI4QjAwMkIwMDQ3QgorOjEwQURBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTU2RTAwRThDMTNBQzBERAorOjEwQURCMDAwMkNCMDQzMjYwMEZCMDYzRUMxMENCMDBCMkMwMkNCMDA4RQorOjEwQURDMDAwMzQyMjlGQjA0M0VDMDA5QjAyMzZDMThDQjAwMzEwMDRDOAorOjEwQUREMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzAwRkM4MDNERDBERAorOjEwQURFMDAwMkZGMDAzRkMwMEZCMDAzREMwMDczMDAzQkMwMEVGMDQ2NAorOjEwQURGMDAwM0ZFMDVFQjAwMUZDMDBGRjAwMUJDMDBGRjAwM0Y4MDA1NQorOjEwQUUwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwQ0IwMTNFQzkxMworOjEwQUUxMDAwMENCMDE3MjA4NEVCMDBCMkMxMERCMDAzNkMwMEMzMDA2RQorOjEwQUUyMDAwMzI1MDBGQjAwMzBDNDBDMzAwN0VDMDBDMzAwMzEwMDQzRQorOjEwQUUzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwOEE1ODJFRTAwOQorOjEwQUU0MDAwNDhGMDAyMkQwMEVGMDEyM0MwMDhGMDIyM0MwNDhGNjA3RgorOjEwQUU1MDAwMzY1NDBCRjAwQTNENDA4RjAwMkZDMDA4RjAwMzcyMDBGQgorOjEwQUU2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0MDAwODk4MDJDMTAzOAorOjEwQUU3MDAwMDhCMDAyNDkwMEEzQTAyNEMwMDkzMDAyNEMwMDgzQzlENQorOjEwQUU4MDAwMjA5MDQyMzAxMjREMDA4MzAwNkFDMDA5MzAwMjM4MDAyMQorOjEwQUU5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjAwODU4MDZENjI1NworOjEwQUVBMDAwMDg3RTAyNTY0MDI3ODAyNUUwMTk3ODA2MEUwMDgzODAzMAorOjEwQUVCMDAwNjFBMDBCNzgwMjRFMDA4NzgyNkRFMDA5NzkwMjQ4MDA5QworOjEwQUVDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgyQzAyQzM2MTNDODhEQworOjEwQUVEMDAwMkNCQTEyNDkxMEUzMkMzNkMwMEQzMDUzNEM0NEMzMDAzOQorOjEwQUVFMDAwMjAwMTBGMzEwMzRDMDBDMzAxM0NDMDJEQjEwMzEyMDJGRAorOjEwQUVGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwRkYwMDNGMDBGQgorOjEwQUYwMDAwNEZGMTA5QjAwMEZGMDAzQkMwMEVGNDAxRkQyNEZGNDBFQgorOjEwQUYxMDAwQkZDMDA3RjAwM0JDMDA2RjEwM0ZDNDFFRjE4M0QwMDYxMgorOjEwQUYyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVDNDAwRTgwNDMyMDAzMgorOjEwQUYzMDAwMENCNjAzRTgwMkNCMDAzNkNBMEZCNTAzQUQwMEZCMjAwOAorOjEwQUY0MDAwM0U0MDBGQjMwM0VDODBGQkE4MzJDNjhDQjYwMzJBMDA0OAorOjEwQUY1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAyRTYwMDIwMDA4QworOjEwQUY2MDAwMDg3MzAyREMwMDg3NzAyREQwMEJGMDAyMUM4NEI3MjAyMAorOjEwQUY3MDAwMkRDMDBCNzA4MkREMjRCNzQwMzRDOTI4NzI4MjkyMDQ0MAorOjEwQUY4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDBCRTAyQUM4MEExMjBGNAorOjEwQUY5MDAwMDg3OTAwQ0UwNDg3ODA2NUUwMEI3QTAyOUUwMEI3OTBBNgorOjEwQUZBMDAwNkRBMDBCNzgwMkRFMDBCNzgwMjFFMDA4NzgwMjMwMDA0NworOjEwQUZCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRFRDgyQUJFMDIwRTQxNworOjEwQUZDMDAwMDgzMDAyRUUwNDgzMDAyQ0MxMUIzMDAyMEMwOEIzMDBEMQorOjEwQUZEMDAwNjRGNjBCQjAwMkNDMDRCMzAwMjZDMDA4MzAwMjkyMDQyMQorOjEwQUZFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQjgwRUU0OTMxQTBGMQorOjEwQUZGMDAwMkNBMDAzRkEwMENBMDIzNjgwMEZBMDAzQTgwMEZBMDJCMAorOjEwQjAwMDAwM0Y5MDBGQTA2M0U4MDBGQTAwMzI4MDBDQTAyMzNBMDRCRQorOjEwQjAxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDBBRTgwMDNFMDg3MAorOjEwQjAyMDAwMEY4MDAzRTM1MEYwMDAzRTAwMEY4MDEzRTAwMEY4MDBCMworOjEwQjAzMDAwM0UwMDBGODAwM0UwMDFGODAxN0UwMDBGODAwM0QyMDA4NAorOjEwQjA0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDQwQzlBMTMyNDBCOAorOjEwQjA1MDAwMjAxMTAxQTY0MEM5ODQzNjQwMEQ5MDAzNDQwMDQxMDBGMAorOjEwQjA2MDAwMzI0MDBGOTAwQjI0MDBGOTAwM0U0MDRDMTAwMzAyMDRDNAorOjEwQjA3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODk4MkEyNDBDQgorOjEwQjA4MDAwMDg5QzAyMjUwMDg5QzgyMjQwMDg5MDQyMjQwMDg5MjA5QgorOjEwQjA5MDAwMjI2MDBCOTAwMjI0MTBCOTAwMkU0MDA4OTAwMzYwMDAzQgorOjEwQjBBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwODkwNDIyQ0FENgorOjEwQjBCMDAwMEE5MDBBMjUwMjg5MjAyMDQwMjgxMDAyNjQwMUE5MDA3NAorOjEwQjBDMDAwMjI0QjBCOTAwMjI0MDFCOTAwMkU0MTI4OTAwMjA2MDA2OQorOjEwQjBEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDkwODFBMDIwNDgwNworOjEwQjBFMDAwMEEzMjAyMDQ4MDgxMDAyMDQ0MDgxMTAyMDREMEExMjAwOQorOjEwQjBGMDAwMjA0MDBCMTEwMjA2MDBCMTMxMkM0ODA4MTQwMjQyMDExNQorOjEwQjEwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQyQzg1NDMyMTQ3NQorOjEwQjExMDAwMEU4NTAzMjE0NEM4MjhCMjFBNEM4NjkzNjExNEU4NTA2NgorOjEwQjEyMDAwMjIxNDBGODY4MzIxNDBGMDQwMUUxNDBDMDAwMzJFMDNDRQorOjEwQjEzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MUQ3NDQ0RjUxMDNGNDRDQQorOjEwQjE0MDAwMEQ5MTAzNzQ0MEY5MDAzRTQ4MEI5MjAzRTRDMkQ5MTBGQworOjEwQjE1MDAwQkY0MDBGOTIwM0U1MDRGOTMwM0U0NDBGOTQ0M0U2MDZFNgorOjEwQjE2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjIyQ0RBMTMzNjEzOAorOjEwQjE3MDAwMENEOEQzMzQxMENEQTgzRTYwOEU5QzkzQTcwOENEODAwOAorOjEwQjE4MDAwMzM0MDBFOUFEMzM2QTBDOTgwMzI2MDBDOTkwMzA2MDA3MgorOjEwQjE5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMzg4OEFBMDIwMjgxQQorOjEwQjFBMDAwMDg4MDIyMjAxMjg4NDAyQzI4MDg4QTAyMjIwMDg4MDA2OQorOjEwQjFCMDAwMjIwMDBCOEMwMzIxMDA4OEQwQTIzRTI4OEQwMjBFMDRCMQorOjEwQjFDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDRTIwQTE0ODIwNTJGOQorOjEwQjFEMDAwMjkxMDAyMjQwMzgxMDAyQzUyMEExMDEyODUxMDkxNDA3QworOjEwQjFFMDAwQTQ0MDBBMTI4MjQ0MDA5MTI4MjQ0MDI4MTIwMjAyMDEzRAorOjEwQjFGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwQTkxNDIyNDBFRgorOjEwQjIwMDAwMDk5MDAyQTQwMTg5MDQyQzQwMDg5MDAyMjQwMDk5MDBBRQorOjEwQjIxMDAwMjI0NDRCMTA0MjI0MTQ5OTAwMjY0MDA4MTAwMjA2MDREMAorOjEwQjIyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDQwRTk0MEIyNzg5MgorOjEwQjIzMDAwMEQ5MDBCMjQyMkM5MDMzRTQxMEU5MDAzQTQwMkQ5MDBCNQorOjEwQjI0MDAwMTY1ODA2OTAwQjY0MDJEOTAwMzY0MDBDOTAwQjI4MDQ2NworOjEwQjI1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NDAwRDk4MDNFNEFGMAorOjEwQjI2MDAwMEU5MDAzNjQyMEY5MDgzRTQxMEY5MDAzRTQwMEUxMDhDQQorOjEwQjI3MDAwM0U0MDBGOTAwM0M0MDBFMTAwMzg0MDBGOTAwM0NBMDAyNQorOjEwQjI4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDA5RjA0MEIwMTA4RAorOjEwQjI5MDAwNEMwMDBCMjAwMEY4MDAzQTAwMUMwMDAzRTAwMEM4MDAzRQorOjEwQjJBMDAwMzYwMDBDODAwMzIwMDBDODAwMzIwMDBGODAwMzBBMDQxRgorOjEwQjJCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwM0U4ODIzQTI4RQorOjEwQjJDMDAwNDhFMDAwMTk4MEJFODgyRTgwMERBMDQyRTgwMDhFMDA2NAorOjEwQjJEMDAwMjM5MDA4QTAwQTNBMDBEQTAwMzY4MDBCQTAwQTBBMDA4MAorOjEwQjJFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjM4MDIwRTA3MgorOjEwQjJGMDAwMjgzMEMyMEYxMEIzNDAyOEMwMEIzMDAyRUMxMTgzNDAzRAorOjEwQjMwMDAwMjhEMjBBMzAwMjBDQzA4MzAwMjBDMDBCMzAwMjBBMDA5MQorOjEwQjMxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzAwQjYwMDIxQzA4OQorOjEwQjMyMDAwMDgyMEMyMUMxMEI1MDAyREM4MEE3MjAyREM0MDg1MDgzNgorOjEwQjMzMDAwMjlBMjFBNzIyMjBDMDA5MzMwMDVDNDBCMzIyMjI4MDA3NQorOjEwQjM0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxNjAwQjI4MDMxMjA3NAorOjEwQjM1MDAwMEM1ODAzMUUwMEY3ODAzOUY4MEI3QzIyQ0U0MENGODBCQQorOjEwQjM2MDAwOUI2MDJFM0IwMzFBMDBDN0E4MTFFMDBGNzgwMzJBMDI0NgorOjEwQjM3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBNDAwRkEwMDNFQzAwQworOjEwQjM4MDAwMEY5MDIzRTgwMEZCMDAzRUQwMkRCNjAzRUQwMkY5MDAzQworOjEwQjM5MDAwMzI0MDBEQjAwN0VDMDBGQjYwM0VDODBGQjUwM0MyMDY5QgorOjEwQjNBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkY4MDMzQTBFOAorOjEwQjNCMDAwMENGODBCMzI0MENFODEzN0YwMENCQzAzRkUwMEZGODQ0QQorOjEwQjNDMDAwMzNFMDJDRjg4M0U2MDJDRjg1MzNGMDBDRkMwMzAwMTQ0NQorOjEwQjNEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQkUwMDM1QzZFRgorOjEwQjNFMDAwMjgzMDAyMzA0MDg3MDAyM0MwMDg3QTAyREMwMEJFMDAwQgorOjEwQjNGMDAwMjNDMDA4NzAxMkZFMDA4NzAwMjFDMDA4RjAwMjJBMDQ1MgorOjEwQjQwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5NTIwQjYwMDIwODBEMQorOjEwQjQxMDAwMDgzMTAyNUMwMTg3MDAyNUMwMDg3MjAyREMwMEI2MDAxQQorOjEwQjQyMDAwMjFEMDA5NzAwMkQ0MDg5MzAwMjBDMDA4NzAwMjAwMDBFNworOjEwQjQzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDNDAwQjBFMDI0NjBFMAorOjEwQjQ0MDAwMDgyMDA2NDgwMTgwMDAyMEMwMDgzMDAyQ0MwNEIzMDA2OAorOjEwQjQ1MDAwMjA4NDBCMzAwMkU4MDA5QjAwMjBDMDA4MzAwMjA4MDQ2MgorOjEwQjQ2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwQjlFMDMyODBGOAorOjEwQjQ3MDAwNkNCMDIzNkYwMEMzMDAzN0MxM0NGMDAzRkMwMEZBMDAzRQorOjEwQjQ4MDAwQjBDMDA5RjAwM0VDMTBERjAwNzNDMDBDRjAwQjJBMDAxMQorOjEwQjQ5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzEwRjgwMDNFNDI1OAorOjEwQjRBMDAwMEYyNDAzQTg2MEY4MDAzQ0MxMEZCMDAzRUMwMEY5NDA4MgorOjEwQjRCMDAwM0U4MDA0QjAyM0UxMDBFQjAwM0VDMDBGQjAwM0UwMDA4QgorOjEwQjRDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGNDAwRUUwMDNEMzBFQworOjEwQjREMDAwMENDMDAzMTQwMENDQTBCM0MwNEM3MDAzNUMxMERGMDBBMAorOjEwQjRFMDAwM0YwMDBDRjAwM0Y4MDBDRjAwMjNDMDBDRjAwMzAwNDAzNQorOjEwQjRGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2NDAwQkE4MTJFNTg3MgorOjEwQjUwMDAwMDg4ODAyMjc4MDg5MjAyMkMwMjhCMDAyMkMwMDg4ODM2NgorOjEwQjUxMDAwMkUyMDA1QjA2MkUzMDA4QjAwMkFDMDA4QjAwMzYwNDAxMworOjEwQjUyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNjAwQjk4MTJFNDBCOAorOjEwQjUzMDAwMDg4QzA2MjYwMDg4MDAyMkMwMDhCMDE2NkMwMDk4ODg4NworOjEwQjU0MDAwMkUyMDA4QjAwNEUzMDEwQjAwMjhDMDA4MzAwMjIwMDBDMAorOjEwQjU1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjAwMDJDQzBGRgorOjEwQjU2MDAwMjgwMDBFMDAxMDgwMDAyMEMwMDgzMjAyMEMwMDgwMDQ2OQorOjEwQjU3MDAwMkUyMDA5MzAwMkM0MTI4MzAwMjhDMDA4MzAwMjQyMDE4NAorOjEwQjU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwRkEwMDNFMDAwQQorOjEwQjU5MDAwMkM5MTAzMjAwMDhBMDAzM0MwMENGMDAzN0MwMEQ4MDBGQgorOjEwQjVBMDAwMkU0MDBDRjAwM0UwODBDRjAwM0JDMDBDRjAwMzAwMDMwMgorOjEwQjVCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkMwMTNGNDAwNgorOjEwQjVDMDAwMEZDMDEzRjAwMEY0MDAzRkMxMEZGNDIzRkMwOEZDMDA4RgorOjEwQjVEMDAwM0YwMDBGRjAwM0YwNDBGRjAwM0ZDMDBGRjAwM0U4MDYwQworOjEwQjVFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzIwQ0QxMDM5QzgyQworOjEwQjVGMDAwMERDMTAzM0M4MEVGOTAyM0Q4MEZGODAwRkUwMENGODBGMAorOjEwQjYwMDAwMUZEMDBGRjkwM0ZGMDBFN0MwMzNDNDBGRjAwM0IwMDBGMQorOjEwQjYxMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTBGRTAyODk0MDIzRjAwRQorOjEwQjYyMDAwMDg4NTEwM0MwMDhCMDBBM0RDNEJCMjgyRUMyMDhCMDAyMQorOjEwQjYzMDAwMjZDMDRCQjAwMkVDMTBCOTA0MkFDOTBCQjU4MEYwMDQ0NworOjEwQjY0MDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVDQzAwODE2NDI4QzQ2MAorOjEwQjY1MDAwMDlCMjBBMENGMEEzMjAyMEM4MEIzMjAyRUMwMjgzMDhDNgorOjEwQjY2MDAwMkNDODA5MzIwMkNDODBBQkEwMjBDODBCMzIwMEIyMDEzQQorOjEwQjY3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzEwODkwMDIyQzA1RQorOjEwQjY4MDAwMDhCMjEyMkMwMjBCMDAyMkMwMEJCODAyRUMwMDhCMDA5NworOjEwQjY5MDAwMjZDMDRCQjA0NkVDMDBCOTAwMEFDMDBCQjAwMkYwMDQ2MworOjEwQjZBMDAwNjAwMDAwMDAwMDAwMDAwMEQwMTVFQzEwQzlFMDNBQzBCNgorOjEwQjZCMDAwMEQyODAzMkMwMEVCMTAzMkMwMEY4MjAzQzQwMENCMDAxNgorOjEwQjZDMDAwM0VDMTBGQjAwNkVDMDhFOTAwQjJDMDBGQjAxMzkwMDQwMQorOjEwQjZEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDE5QzAwRjVBMDNGQzBFOQorOjEwQjZFMDAwMEZFODAzRkMwOEZGMDAzRkMwOEZDMDAzRkMwMEZGMDAxMQorOjEwQjZGMDAwMzdDMDBGRjAwM0ZDMDBGRjA0M0VDMDBGRjAwM0Y4MDA1QQorOjEwQjcwMDAwNjAwMDAwMDAwMDAwMDAwMDUwMTBBQzAwRjk0MDM0QzBBMAorOjEwQjcxMDAwMERCNDAzMkMwMERCNDAzRUMwMkM4MDAzNjQwOEZCMTBGQQorOjEwQjcyMDAwM0VDNjhGQjAwM0VDMDBGOTgwMzJDMDBDQjAwQjE0MDQ5RAorOjEwQjczMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzRTIwRTlDODM3RDQwMgorOjEwQjc0MDAwNDhBQTIyMUMwMDhCMDA2RkUwMDg4NTgyRUQ0MEJCODQ3NAorOjEwQjc1MDAwMkZDMDRCQjgwM0FENDBCMzAwMjNENDA4RjcwMjMyMDAyQQorOjEwQjc2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDE0QzAwQjE2NEE0QzBGMworOjEwQjc3MDAwMDkyMDBBMEMwNEI4MDA2Q0MwMDgzODAyQzg0MEIzODAyNQorOjEwQjc4MDAwMkNEMTBCMzAwMkNDMDRCMzAwMjhDMDA4MzAwMjNBMDBBMAorOjEwQjc5MDAwNTAwMDAwMDAwMDAwMDAwMEIwMDExRTAwQTU4MDI1RTA2MAorOjEwQjdBMDAwODgzQTEyMUUwMEE2OTAyREUyMDg3OTAyREEwMEI3ODJDQworOjEwQjdCMDAwMkRFMDAzNzg4MjlFMDBCQ0MxMjlFMDA4NzgwMjJDMTA5RAorOjEwQjdDMDAwNDAwMDAwMDAwMDAwMDAwMDQ5MDgwQzAwRjMwMDM0QzBGNQorOjEwQjdEMDAwMEQzRTAzMEMwMEYwNDAyRUMwMEMzMDQzQzgwMEYzMDBCNworOjEwQjdFMDAwM0NDMDA3MzAwM0NDODBGMjAwMzhDMDBDMzAwMzEyMDI5QQorOjEwQjdGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMTlCRDIwRjcwMDNGQzIxQgorOjEwQjgwMDAwMEZGMTBCREMyMERFMDQzRkQyMDdGMDEzRjg0MEZGMDBGRAorOjEwQjgxMDAwM0ZDMDA3RjAwM0ZDMDBGRDAwMzdDMDBGNzAwM0QwMDZFNworOjEwQjgyMDAwNjAwMDAwMDAwMDAwMDAwMEFBMDVDRjAwREMwMDNFQ0E1NgorOjEwQjgzMDAwMEZBMDAwQUM5MkM5MDAzMkMwMEZCMDExQTQwOEZCMDBFOQorOjEwQjg0MDAwMkVDMDRGQjAyM0VDMDBGOTAwM0VDNDBGQjAwM0VBMDA1NQorOjEwQjg1MDAwNzAwMDAwMDAwMDAwMDAwMEM4OTE5QzAwODQwMDAxQzAzRQorOjEwQjg2MDAwNEI3MDIyMUNDMDg3MDAyMUMwNEI3MDAyMUMwMEI3MDEyNgorOjEwQjg3MDAwMjVEODBCNzAyMkRDMDBCNjAwMkRDMDBCNzIyMkYyMDQxQQorOjEwQjg4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDA5RTgwOTc4MEE5RTAxQQorOjEwQjg5MDAwMEJGODAyQ0UwODg1ODAyOUU4MEJGQzAyMTcwMEI3ODA2MAorOjEwQjhBMDAwMkRFMDhCNzgwMkRFMDBCNEMwMkRFODBCNzkwMkUwMDBCOQorOjEwQjhCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwODMwOEEwQzA1NQorOjEwQjhDMDAwOEIzQzAyNEMwMDgzMDBBMEMwMUIzQzBBMEYyOUIzMDAzNAorOjEwQjhEMDAwMjRDMDBCMzAwMkNDMDBCMzgwMkNDMDBCMzAwMkQyMDQ0OQorOjEwQjhFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwREUwMDNBODBFQgorOjEwQjhGMDAwMEZFQTAyRTgwMENFMDAzQTgwMEZFMDAzMzgwMEZBMDBCOQorOjEwQjkwMDAwM0U4MDBGQTAwM0U4MDBGRTAwM0U4MDBCQTAwM0ZBMDQ3NworOjEwQjkxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAwRjgwNEJBMDFFOAorOjEwQjkyMDAwMEY4MjBCODAwNEY4ODAzRTAwMEY4NjAzNjAwMEY4MDA1MQorOjEwQjkzMDAwMzYwMDBGODAyM0UxMDBGODAwM0UwMDBGODAwM0QyMDBBNAorOjEwQjk0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAxRjkwMDMyNDA1RgorOjEwQjk1MDAwMEY5MDAzRTQwMDQ5MDAzMjQwMEI5MDAzMjQwMDQ5MDA5QgorOjEwQjk2MDAwM0M0MDBEOTAwM0U0MDhDOTAwM0U2MDBDOTAwMzAyMDRDMworOjEwQjk3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk0MEEyNjRCMAorOjEwQjk4MDAwMEIxODAyMjUwMEQxNTAzNjUwNEU5MDBBMjQwMjg5NDBFRgorOjEwQjk5MDAwM0E1MTA4OTQwMkU1MjI4OTQ0MkU2MDI4OTAwQTIwMDAzQQorOjEwQjlBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDEyNDAwQjEwODIyNDAyRgorOjEwQjlCMDAwNEI5MjgyQTUwMEE5MDgyMjUwMEExMDAyMEMwMEE5NDA0RgorOjEwQjlDMDAwNkU1MDBCOTQwMkM0MDQ4OTQ0NkM0ODg4MTAwMjQ2MDBFRgorOjEwQjlEMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDQwNDAwQjE0MEUwNDAwRQorOjEwQjlFMDAwMUIxNDBBMDQwMEI5MDAyNDQwMUExMDIyMDQwMEExMDAwQworOjEwQjlGMDAwMjg0MDBBMTAxMkM0MDA4MTAyNkM0MDA4MTIwMjQyMDE2MQorOjEwQkEwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDA4QjAwMDMyMDAyNworOjEwQkExMDAwNEY4MDAyQTE1MEUwNTAzMjE0MEVBNTIzMjE0MEU4NTA3RgorOjEwQkEyMDAwM0UxNDBGODUwM0UxNDBDODUwMUUxNDBDODU0MzZFMDM3RAorOjEwQkEzMDAwNTAwMDAwMDAwMDAwMDAwMEQ4MTlFNTAwRkQ0MDNFNTAxNQorOjEwQkE0MDAwMEY3NDAzQTUwMDVEMDAzRTUwMEE1MDEzRjQwMEQ5MDBBNgorOjEwQkE1MDAwM0E1MDBEOTAxM0U0MDBGRjAwM0U1MDBGOTEwM0E2MDZFQworOjEwQkE2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjkwQkRFODIzNkI5MAorOjEwQkE3MDAwMEJEQTBCMzY4MEM5MDAzMjY4NDY5MDQzRTQwMDQ5MDA3NworOjEwQkE4MDAwMzI2ODBDOTAwMzI0NDBGOTAwMzI2MDBDOUMwM0M2MDExQworOjEwQkE5MDAwNjAwMDAwMDAwMDAwMDAwMDc4MTBFMTAwQjhFMEEyMTE5MgorOjEwQkFBMDAwMEI4RTBBMjMyMjg4ODAyQTMxMjg4ODAyNjIwMDg4ODAyRgorOjEwQkFCMDAwQTIzMDI4ODg4QTIyMDBCOEE4QTIzOTA4Q0EwMkNFMDQ3NworOjEwQkFDMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNTA4MjEwMDAwNDBDQgorOjEwQkFEMDAwMDMxNDgyODU4MEFEMDgyMTUyOTg1MDgyMzQyMzg1MDg1MgorOjEwQkFFMDAwMjE1MjA4NTAwNjU0MDBCNTIwMjE1QTA5NTQwMkQyMDFBRgorOjEwQkFGMDAwMzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwQjk2MTIyNDBDRAorOjEwQkIwMDAwMEI5MDA2MDQwMEFEMDA2OTQwMDhEMDAyNzQwMDg1MDA2NworOjEwQkIxMDAwMDE0MDAwNzAwNjc0MDRCNTAwMjM0MDA5RDAwMkM2MDQzOQorOjEwQkIyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTRBNDAwRTkwMDMyNDAwMgorOjEwQkIzMDAwNEY5NTBCQTQwMEU5MDAzMjQwOEM5MDAzMjQwMEM5MDAwQgorOjEwQkI0MDAwMzI0MDBDOTAwMzY0MDhGOTAwMzI0MDNEOTAwM0U4MDQ1MQorOjEwQkI1MDAwNzAwMDAwMDAwMDAwMDAwMDY4MDFBNDA4RjkwMDNFNDBFOQorOjEwQkI2MDAwNEY5MDhCRTQwNEQ5MDEzRTQwMEQ5MDAzNjQwMEQ5MDE0RAorOjEwQkI3MDAwM0U0MDBGOTAwM0E0MDBGOTAwM0M0MDBFOTAwM0RBMDAxMQorOjEwQkI4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjg0MDM2MjBFRgorOjEwQkI5MDAwMTc4NDAzMjAyMUM4MDA3RTAyMkM4MDQzMjAwMEU4MDI4NQorOjEwQkJBMDAwM0UwMTBGODAwM0UwMDBDODQwMUUwMDBGODAwM0NBMDQ1RQorOjEwQkJCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyQTg4QjYwMjIzQTAwQgorOjEwQkJDMDAwMEJFQzQyMkIwMEQyODA2RUIxMDhBMDIyMDgwMEVBMDRFMAorOjEwQkJEMDAwM0E4MDlGQTAwM0E4MDA4QTA0MkU4MDBCQTgwMkNBMDAwNgorOjEwQkJFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjIwMEE0RTE2NQorOjEwQkJGMDAwOEJCNDMyNDc0NTgzOTAyQ0Y0NEIzODEyMEU0NEEzMDE4QQorOjEwQkMwMDAwMkNDMDRCMzAwMkNFMDA5MzAwNkNDMDBCMzgwMkNBMDAyRgorOjEwQkMxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzAwQjc0NDIxQzIzOQorOjEwQkMyMDAwMEI1NDAyNTQwNTg3MDAyQzQwOUI2QzAyMTgxMEE3MDQ4QgorOjEwQkMzMDAwMjlDMDBBNzAwMjlCMDA5NzA0MEQ4MDBCNjA4MkU4MDAwNworOjEwQkM0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjM4MDM1RTA1RQorOjEwQkM1MDAwMEIzODAyNTIxMDg0ODAyREEwMEZGODBCMUUwMEU2ODBENgorOjEwQkM2MDAwMURBMDBCNjgwM0ZFMDJENjgwM0RFMDBGNzgwM0VBMDJCOAorOjEwQkM3MDAwMDAwMDAwMDAwMDAwMDAwMDBBMURBQzAwRkIwMDNFQzFGNworOjEwQkM4MDAwOEI5MDBCODAwQUI4MDEyRTAwMENCMDAzRTgwMEZBMDA3QworOjEwQkM5MDAwM0VDMDBGQTA0M0VDMDBFQjAwM0U4MDBGQTYyM0MyMDI4MworOjEwQkNBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkU4MDMzMjA2MAorOjEwQkNCMDAwNEVDOTEyRjY1MEVGOTAzRkUwMEMxOTAwQjY0MkNGMjE2QQorOjEwQkNDMDAwM0ZFMDBFRjkwMkU2QzBGRjgwM0ZFMDRDREMwMzQwMDA5RAorOjEwQkNEMDAwNzAwMDAwMDAwMDAwMDAwMEFBMTE5NDAwQjcwMDgxNDAyRAorOjEwQkNFMDAwMDgwMzAyMTRDNDg3MDEyREM4MDg2QTEyMzg0MDg3MDI2RAorOjEwQkNGMDAwMkRDMDA4NzExMkQyODBCNzAwMkQ4MDA4NjAwMjJBMDQ3RQorOjEwQkQwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcxMDIxODBDRgorOjEwQkQxMDAwMDhGNDEyOTQwNEE2MDAyQ0MwMThEMjAyMTQ0ODg2MTAwRAorOjEwQkQyMDAwMkQ4MDBBNjEzMkQ0MDBCNjE4MkRDNDA4NTgwMjAwMTBDNAorOjEwQkQzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDNDAwQjMwMDIwQzA1OAorOjEwQkQ0MDAwNDBCMDIyMDQwMDgyODEwQ0MwMDgzMDBBMEEwMDhBMDAzOAorOjEwQkQ1MDAwMkVDMDA4QTAwMkM0MDBCQjAwMkU4MDA4MjAwMjA4MDRFOAorOjEwQkQ2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwRkIwMEEwQzBERgorOjEwQkQ3MDAwMjQ5NDIzQUMxMEVCQTAwRUMwMENCMDAyMkUyMEM5MDBGRQorOjEwQkQ4MDAwMkU0MDBFOTAwM0VDMDBGOTgwM0U0MDZDQTAwQjJBMDQ3QworOjEwQkQ5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBDQzAwRkIwMDNFQzBGRQorOjEwQkRBMDAwODk5MDAzMkMwMEZCMDIzRTQwNEZBMDAzNkQwMUZCNDEzNAorOjEwQkRCMDAwM0VDMDhGQjQwM0U4MDBGQjIwM0U1MDBGQTQwM0UwMDAxOAorOjEwQkRDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwQzMyMEIyQzBFMQorOjEwQkREMDAwMEREMDAzMzgwMENEMDAzRjgwMERGMDAzRkMwMEZEMDJDNAorOjEwQkRFMDAwMzYwMDBDRDAwMzNGMDhGQzA0MTJDMDBDQTAwM0MwNDQ3MgorOjEwQkRGMDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2QzAyOEJDODIyQzBFQworOjEwQkUwMDAwMDg5ODBBMkE0MDg5MjAyRTAxOEVCMDEyRUM4MEJCRjBERgorOjEwQkUxMDAwMjJFNTA4QkQwMjJFMDBCQjkwMjJFRDA4QTIwMkUwMDA0MAorOjEwQkUyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIwMTIyMDBBMworOjEwQkUzMDAwNDlBODFFMDQwMDhCMDEyRUMwNDk5MDAyRTQwMEI5MDBGRAorOjEwQkU0MDAwMjI0MDBBOTAwMjJDMDBCOTAwMkE0MDA4ODAwMkUwMDAzQgorOjEwQkU1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwODEwMDIwNDBCMQorOjEwQkU2MDAwMDgyMDAyMDQwMDgzMDAyQ0MwMEEyMDQyQ0MwMEIzMDA0QQorOjEwQkU3MDAwMjBDMDAyMzAwMjA4ODRCMzA0MDg0MDA4MjAwMkMyMTEyNgorOjEwQkU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwOEIwMEIyODA3QworOjEwQkU5MDAwMERCMTAzMjQwMkNCMDEzRUMwNEQ5MDQzRTQwMEY5MDBGNAorOjEwQkVBMDAwQjIwMDJFOTAwQjJDODBGODAwQkFDMDJDODAwM0MwMDM4NworOjEwQkVCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGNDAwN0QwMDNGQzAwNQorOjEwQkVDMDAwMEY3MjAzRDQwMEZGMDAzRkMwMEVGMTQ3RkMwMEZGMDBEQgorOjEwQkVEMDAwM0JDMDBERjAxM0ZDNTBGRjAwMzdDMDBGRTAwM0U4MDYzNQorOjEwQkVFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMEM0Q0MzMzNGMDQyNworOjEwQkVGMDAwMkNGNjAzMzg2MENDOTBCMzIwMEZGMTIzRjA2MEZGMDFFMworOjEwQkYwMDAwMjNDODBDRjI4QTNDODFERjMwM0Y2NDBDRDgwMzMwMDQzNAorOjEwQkYxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMEMyOEEzMDJFMTg3RgorOjEwQkYyMDAwMDhGNTMwQTU5NDU4MjIyMjIxNEJGMzAyRTEwMDlGNzBCRQorOjEwQkYzMDAwMkJFNDBBRjQxMjFENDBBRjcyMkM0OTJGMzA4MkEwMDY2OAorOjEwQkY0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDgwODBBMDJDOTgwQworOjEwQkY1MDAwMDgzMjIyMDgwMDgyMDAyODAwMDMzMjAyQzA4NEIzMEM5OQorOjEwQkY2MDAwMjBDMDU4MzI5MjhDMzBBMzIwMkVDMDQ4MTI0MjYyMDE2OQorOjEwQkY3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBODAwOEIwMDJFMjBGQgorOjEwQkY4MDAwMDhCMDBBMjAwMTk4MDAyQTIyMEJCMDAyRTYwMDlCMDBBQworOjEwQkY5MDAwMjJDMDBBQjAxMkFDMDRBQjAwMkVDMDAzQjAwMkYwMDAwNQorOjEwQkZBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFNTAwQzgwMDNFQjA4MQorOjEwQkZCMDAwMENCMDAzMjkwMEM4MDAzQTIwNEZCMDAzRTIyMEZCMDE3NworOjEwQkZDMDAwQjBDMDBDQjAwMzJDMDBGQjAyM0M0MTBDOTA0MzQ4MDQ3MQorOjEwQkZEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFBMjgwRkU0MDNFMDA3MgorOjEwQkZFMDAwMEZGMDYzRUMwMEJGQzQxNzQyMEZGMDAzRUMwMEZGMDAzQQorOjEwQkZGMDAwMUZDMTBGQjAwMzVDMDBGQjAwM0Y0MDRGRjAwMEI4MDBEMgorOjEwQzAwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNTAyQzgwMDNFOTA0MworOjEwQzAxMDAwMkNCMDBCMDEwNkNCMDEzRTUwNUZCMDEzMjExMENCMDBCQQorOjEwQzAyMDAwN0VDMDBDQjAwQjJDMDBDQjAwMzJDMDBDOTAwMzEwMDQ2RgorOjEwQzAzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyODAxOEJEMDJDMzQyRgorOjEwQzA0MDAwNDhGRjAyMzAwMEFBMDQyRTY5MEZGMDAzNjgxMERGMDBEOQorOjEwQzA1MDAwMkZENDBERjAwMjNFMDA1RjA0QjZDMDA4QjAwMzcyMDA5QQorOjEwQzA2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2OTkwODE4MDJDMDA4NQorOjEwQzA3MDAwNDhCODAyMDgwOTk5MDA0Q0IwMEIzMDAyMEMwMDhCMDA0NAorOjEwQzA4MDAwMkNDMDA5QjA0MDBDNDA4MzAwMDA0MDBBOTAwMjMwMDBGMAorOjEwQzA5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjAwODQ4ODJERTRGQworOjEwQzBBMDAwNDgzOTAyMTYwMEI0ODAyREUwMEE3QjA2NUUwMDk3ODBCNgorOjEwQzBCMDAwMkRFMjA5NzgwMjFFOTA5NzgwMjU2NDhBNzgwMjQ4MDA1NAorOjEwQzBDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwRDAwODExMDJDOTY4MAorOjEwQzBEMDAwMDgzMTIzMEMwMDkwMjAzQ0M0MUJCODAyMDg0MEMzMDA2OAorOjEwQzBFMDAwMkNDNDBEMzAwMzBFNDBDMzEwMzBDMDRFMTAwNzFBMTI3RQorOjEwQzBGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwN0QwNTNGQzVBMQorOjEwQzEwMDAwMEZCMTBCRjQwMEVGMDAxRjQ1MEZGMDQzRkMwMUZGNDA5RgorOjEwQzExMDAwM0RDNDFGRjAwNkZDMTBGRjAwM0JDMTJERjEwM0QwMDYwQgorOjEwQzEyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzA0Q0IwNDNFQTA2NQorOjEwQzEzMDAwNDRCNjAzMjgwNENCODAzMjgwMEZCMzkzNjAwOEZCMjAwMQorOjEwQzE0MDAwM0VEMjFGQjMwMzJEODBGQjYxN0U0MDhDOTgwMzJBMDBGMgorOjEwQzE1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE4NDBDODYwNTJEQzAwRQorOjEwQzE2MDAwMDhGNDgyOEM5MDg1MDBBMUMwMEJGMDAyNUMwMDM3MDBCRgorOjEwQzE3MDAwMkREMDBCNzEwMjFDQzhCNzQ4MkQ0MDBBNzAwMjEyMDQ2MgorOjEwQzE4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwODc4MDJEQTExQworOjEwQzE5MDAwNjA3ODRBMTZEMEE3ODAyOUUwMEI3ODUyOTYwMUI3OTBCNAorOjEwQzFBMDAwMkRFODBCN0EyMjVFNDBCN0EwMkZFMTQ4NTAyMjMwMDBFNAorOjEwQzFCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzEwODM4NDJDQzAzNAorOjEwQzFDMDAwMDgzMDAyQTQxMDgzQ0IyOEUwMEIzMDJBNEY0MDkzMDBBNAorOjEwQzFEMDAwMkNDMDBCMzAwMjRDMTBCMzAyMkNDMEFBMzAwMjEyMDQ0NworOjEwQzFFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODAwQ0VBMDNGODAzRAorOjEwQzFGMDAwNENBMDJCM0EwMENFNDAzQkI4MEZBMDAzQjkwMEJBMDBDOAorOjEwQzIwMDAwM0U4MDBGQTAwMzY4MDBGQTAwN0U4MDFDQTAwQjNBMDQ1OQorOjEwQzIxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAyRjgwMDNFMDQ1QQorOjEwQzIyMDAwOEYwMDAzRTA0QUY4MTAyNjE4MEY4MDAzQTA4MEY4MDI2MAorOjEwQzIzMDAwM0UwMDhGMDAwQkEwMDBGODAyM0UwMDBGODAxM0QyMDBEQQorOjEwQzI0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDIwQzkwMDMyNDA2NworOjEwQzI1MDAwNEQ5OTAzMjQwMEM5MDIzRTY4MEY5MDAyMjQwMEU5MDBCMgorOjEwQzI2MDAwMzA0MDhDOTAwMzA0NDBDOTAwM0U0MDBDOTAwMzAyMDQwRgorOjEwQzI3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDIwODkwNjIyNTA4NQorOjEwQzI4MDAwOEI5Q0MyMjQwMEQ5MDEyRTQwMEI5MDQyMjQwOEI5MDE5NgorOjEwQzI5MDAwMjI0NjBEOTAwQTI2MDI4OTAwMkM0MDBBMTAwMjIwMDAzNgorOjEwQzJBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDEwNjAwOTE0MDQyNzBEQworOjEwQzJCMDAwMEI5MDEyMkMwMjhCMDAyRTQwMEIxMDIyRTQxMEIxMDBDOAorOjEwQzJDMDAwQTI0MDQ4OTAxMjI0MDg5OTAyMkU0MDA4OTAwMjA2MDBDRAorOjEwQzJEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDkyOTEyMEUwNDhBMworOjEwQzJFMDAwMEIxMjAyMDQwMjkxMTAyQ0MwMEIxMDA2ODRDMEIxMTA3NgorOjEwQzJGMDAwMjA0ODg5MTEwMjA1ODA5MTQwMkU0NDJBOTQwMjAyMDFBRgorOjEwQzMwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRDg1MDMwMTQ1QgorOjEwQzMxMDAwMEY4NTBCMjFFMDgwNDAzRTAwMEY4NzhCRTEwQ0Y4NkMwRAorOjEwQzMyMDAwMzIwMDg0MDY4MzIwMDREODI4M0UxMDBDMDAwMzJFMDMxQworOjEwQzMzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwQUQxMDNGNDU4MworOjEwQzM0MDAwMEY5MTAzRkMxODdEMjAxRjQxMEY5MDAzNzRDMEY5MjE0OQorOjEwQzM1MDAwM0U0NDBGOTIwMUU0NDBFOTAwM0Q0ODRGRDAwM0U2MDYxOQorOjEwQzM2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNzgwRkRFMDMzNzA0OQorOjEwQzM3MDAwMENEQTAzMjYyMEM5NDAzMTQwMEU5QTAzMjQwMEY5ODBDQworOjEwQzM4MDAwM0I2MDBGOUM4MzM2QTBGOUExQjA0MDBGOTEwM0M2MDAxQgorOjEwQzM5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMjkwQjhBMDIyMjhEMQorOjEwQzNBMDAwMjg4ODBBMjIwMjg4QTAyMjAwMDg4ODAyQzI4MEI4ODg1MQorOjEwQzNCMDAwMjIwNDBCOEUwMzIyODBCOEQwMkEyMDBCODgwMkNFMDRFMAorOjEwQzNDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNTgwQjE2MTAwNTg4MQorOjEwQzNEMDAwNDgxNjhBMDRBMDg5MDEyMjQwMUExNDg4MDQyMEIxNDAxQQorOjEwQzNFMDAwMjg0MDBCMTAwQTA0MjBCMTJDMjA0QTBCMTIwMkMyMDE3MworOjEwQzNGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNTkwQkI0MDIwNDAxMAorOjEwQzQwMDAwMDg5MDAyMjQ0MDg5NDI2MjU4MDgxMDAyRTUwMEI5MDNFRQorOjEwQzQxMDAwMjJDMDBCOTAwMkE0MTQzMTAwMkE0NDBCOTAwMkM2MDRERgorOjEwQzQyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTBBNTAwRjkwMTMyNDBFQgorOjEwQzQzMDAwOEM5MDAzMjcwMEMxOTQzMDQwMEU5MDAzMjQwMEY5MDAzMworOjEwQzQ0MDAwM0E0MDBGOTAwMzI0MDBGOTAwMzI2MDA3OTAyN0U4MDU3NgorOjEwQzQ1MDAwMjAwMDAwMDAwMDAwMDAwMDI4MDBBNDE4RjkwMEJFNDRERAorOjEwQzQ2MDAwMEY5MDAzQzQwMEY5MDBCRTYxOEY5MDAzQTQwMEYxMDA5NworOjEwQzQ3MDAwMUU0MDBGMTAwMzI0MDhGOTAwN0U0MDBGOTAwM0NBMDBFRAorOjEwQzQ4MDAwMjAwMDAwMDAwMDAwMDAwMDI4MTBBMTgxRjgwMDMyMDQwNAorOjEwQzQ5MDAwMEMwMEQzMjEwMEQ4MDQzQTE0OUM4MDAzMjEwMUM4MDA2OQorOjEwQzRBMDAwMzYwMDBDODAxMzIwMTBDODAwMzIwMDJDODAwM0NBMDQxMAorOjEwQzRCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDQzQTAwQkU4NDIzODUwQworOjEwQzRDMDAwMDhFQzgzNjgwNDhBMDAyRjkwNERBMDAyMjgwMURBMDA0RQorOjEwQzREMDAwMjNCMDBBQTAwMjJBMDhEQTAxMjI4MDBGQTAwMkNBMDBCMworOjEwQzRFMDAwMDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQkJGMDIwQzA0OAorOjEwQzRGMDAwMDgzQzBBMEMwMDkzMDEyOEM4ODkzMDA2NEMwMDgzMDJDRQorOjEwQzUwMDAwMkNGNjA4MzAwMjA0MDBBMzAwMjBDMDBBMzAwMkNBMDA0MgorOjEwQzUxMDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRDExQjMwMEEwQzA2OQorOjEwQzUyMDAwMDg1MDAyNUMxMDg3MDE2RDgxNDkzMjUyMUVDMzg3MDA5QQorOjEwQzUzMDAwMjhFMDBBMzIyNjFGMDAzNzAwMjNFMDBCNzIwMkM4MDBGMQorOjEwQzU0MDAwNDAwMDAwMDAwMDAwMDAwMDI4MDgxMjAwQjc4MjMxMjBERgorOjEwQzU1MDAwMDgwODM3MEYwOEQ3RTAzOTYwMTk3QTBCNUUwQzgzQjJGMAorOjEwQzU2MDAwN0RFMDBDN0EwQjNFMDJBRkEwQjFFMDBFN0EwM0NBMDI2NgorOjEwQzU3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBMDEwRkIwMDNFQzBFRAorOjEwQzU4MDAwNkZCMDQzRUMxMUZCMDAzRTQwMEZCNTAzRUMyMEZCNTBCNQorOjEwQzU5MDAwMzYwMDBGQjU0M0U1QTFEQjc4M0VDMDBGQjQwM0MyMDZGOQorOjEwQzVBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTAwRkZBMDNGQTA2QQorOjEwQzVCMDAwMERDOTEzM0UwMENGRDAzREU4MDJGRjEzM0UwMENGODJFRAorOjEwQzVDMDAwM0Y2MDBDRkMyMzNFMTBFRjgwMzNGMjBDRkM4MzEwMDAyNAorOjEwQzVEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzQwQjUwMTJERDBBMworOjEwQzVFMDAwMDg1ODAyMUM0MDU3MTAyRDVBMjgzMTAyQkMwMTk3MTBFMAorOjEwQzVGMDAwMkQwMDBBNzAwMjg0MDRDRjAwMjlDMDBBRjAwMjJBMDQyOAorOjEwQzYwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5MDAwQjcyQTJEODJBQQorOjEwQzYxMDAwMDg0MjIyM0MwMDg3MTEwRENDODgzMjAyMUQwMDk3MDA5MQorOjEwQzYyMDAwMkNDNDA4MzAwMjE0MDBBNzAwMjNDMDA5NzA4MjAwMDA0NworOjEwQzYzMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDMDIwQjAyMDJDNTAzQQorOjEwQzY0MDAwMDgxMDAyMkRDMDkzRTIyQzIxMDgzMDAyMEUwODkzMDAzRQorOjEwQzY1MDAwMkM0MDBBMzAwMjhDMDA5MzAwMkFDMDBCMzAwMjE4MDREMAorOjEwQzY2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwRjhDMDNFODBCQgorOjEwQzY3MDAwMkNBMDBCM0YwMEM3NjAzRUQwMENGMDBCM0MwMENGMDA1RAorOjEwQzY4MDAwM0U4MDBDRjAwQjJDMDBFRjAwMzNDMTBERjAwQjJBMDRBMAorOjEwQzY5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzQwRjM0MDNFNTBDRAorOjEwQzZBMDAwOEVCNDAzRUMxMEZCMDAzRTA5MEZCMDEzRUM0MkVCMDAxQworOjEwQzZCMDAwM0MwMDhGQjAxM0M0MTFFMzAwM0VDMDBFQjAwM0UwMDA5NQorOjEwQzZDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkM4MDMxMjI1RQorOjEwQzZEMDAwMENBODAzM0MwMENGMDAzM0EwMEVGMDAzREMwMENGMDAxOQorOjEwQzZFMDAwMUZGMDBDRjAwM0Y0MDBDRjAyMzNDMDBDRjAwMjAwNTQzMgorOjEwQzZGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2RjAwQkJDMDIyNzAwOQorOjEwQzcwMDAwMEFCOTQyMkMxMDhCMDA3NjExODNCMDAyRUMxMEFCMDBGQQorOjEwQzcxMDAwMkVCMDBBQjAwM0VDMDQ4QjAwQTJDMDI4QjAwMjIwNDA2NworOjEwQzcyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDU2NTQwQjgyMDIyNDQ5MQorOjEwQzczMDAwNTgzNDBBMkMwMDhCMDAyMjg0NEJCMDAyRUMwMDhCMDA5MgorOjEwQzc0MDAwNkVDMDA4QjA0MkU2MDQ4QjAwMDJDMDA4MzAwMkEwMDFBRgorOjEwQzc1MDAwNDAwMDAwMDAwMDAwMDAwMDBDMDAwMDAwQjEwMDIwQzBGQworOjEwQzc2MDAwMEEzMDBBMEMwMDhCMDMyNDgwMEIzMDAyQ0MwMEEzMDA5QgorOjEwQzc3MDAwNkMwMDBBMzAwMjhEMDA4MzAwMjBDMDE4MzAwMjgyMDA1NQorOjEwQzc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2NDAwRjgwMDMwMDAxNQorOjEwQzc5MDAwNENBMDBCMkMwMkNGMDAyMjQwMEVGNTAzRkMwMENGMDE3MQorOjEwQzdBMDAwM0UwMDBDRjAxMkREMDJDRjAyMzNDMDRDRjAwQjgwMDNEMAorOjEwQzdCMDAwMTAwMDAwMDAwMDAwMDAwMEE0MTlGMDAwRkMwMDNGNDA0MQorOjEwQzdDMDAwMEZCMTAzREMwMEJGMDEzRjAwMEZGMjIzRkMxMEZGMDA5QworOjEwQzdEMDAwM0YwMDBGRjAwMUY0ODRGRjAwM0RDMDRGRjAxMzY4MDZFNgorOjEwQzdFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGRTQwREY4MDMzQzg3QworOjEwQzdGMDAwMENGODAzM0MwQTlGQzAzRkYwMDhCODAyM0UwMEZGODBERgorOjEwQzgwMDAwM0ZEODBDRjk2MTJFNDA2RjkwM0ZFNDhGRjE4MzMwMDBFOAorOjEwQzgxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQzA0OEI4MDIzRjAwQQorOjEwQzgyMDAwMDhCODAyM0Q0MEFCMDAwRTA4NDgyMjgyNkMyMEJCMDBENQorOjEwQzgzMDAwMkZEMDQ4QjAwMjJDMDBCQjAwMkVDMTBCQjAwMjMwMDQzOAorOjEwQzg0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzAyODMwMUEwQzU3NAorOjEwQzg1MDAwMDhCMDRBNENBMDgwMjQyOEM4MDkzMjAyNEMwMEIzMDgxMgorOjEwQzg2MDAwMkVEMTI5QjIzQTBDODRBMzIxMkNDODRCQjIwQTMyMDEzMgorOjEwQzg3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA4OEIwMDIyQzA1MgorOjEwQzg4MDAwMDhCMDAyNEMwMDg4MjEyNDIxMDlCMDQ2NkMwMEJCMDY4OAorOjEwQzg5MDAwMkVDMDA5QjAwMjJDMTBCQjAwMkVDMDBCQjAwMjMwMDQxOQorOjEwQzhBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwQ0IwMDMyQzAyQQorOjEwQzhCMDAwMENCOTAyNkMwMENCQzgzQUMwMkQ5MDBCMkMwOEZCMDBDMQorOjEwQzhDMDAwM0VDMDBEMzA0MjJDMDBFQjAwM0VDMDBGQjAxMzAwMDQwMAorOjEwQzhEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzAwRUYwMDNEQzA1RgorOjEwQzhFMDAwMEZGMDAzQkMwNkVGODIzRjQwNEVDOTgzQkMwMEZGMDAzRgorOjEwQzhGMDAwN0ZDMDFDRjAxMzdDMDBGRjA0M0ZDMDBGRjAwM0Y4MDA2MgorOjEwQzkwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwMjNFQzBEMAorOjEwQzkxMDAwMEVCMDAzQUMyMEQ4NDAzRUMwOEM5MDBCMkMwMEZCMDAyNgorOjEwQzkyMDAwM0VDOTBEQjAzM0VDMDhGQjAyM0VDMDBGQjAwQjU0MDRGRgorOjEwQzkzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQjMwMDJGQzAzQworOjEwQzk0MDAwMEIzMDEyRkMwMDg4QTAyRTQwMjg5NDAyMkMxMEJCMDQ0RgorOjEwQzk1MDAwMkRDMDI4QjAwMkVDMDBCQjAwMkVDMDBCNzIwNjMyMDBDNgorOjEwQzk2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2QzAwQjMwMDJDRTA3NworOjEwQzk3MDAwMEExMDAyQ0QwMDkzMDAyQ0MwMDhCMDAyNEMwMEIzMDA5NgorOjEwQzk4MDAwMjhDMDA4MzAwMkNDMDBCMzAwMkNDMDBCMzAwMjNBMDBBMworOjEwQzk5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTQwQjc4MDJERTI4MgorOjEwQzlBMDAwMEI1ODAyREUwMjk3ODEyRkEwMDg2ODAyNUUwMEI3ODE1MworOjEwQzlCMDAwMkZFMDA4NzkwMkRFMDBCNzgxMkRFMDBCNzgwMjNDMDAwMQorOjEwQzlDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRjMwMDNDQzBEQworOjEwQzlEMDAwMEUzMjAzQ0M4MEQzMDAzQ0M0MEMzOTAzNEMwOEYzMUE0QworOjEwQzlFMDAwM0NDNjBEMzAwM0NFMjBGMzA4M0NDMDBGMzAwMzUyMDI4QQorOjEwQzlGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURBQzAwRkIwMDJFQzA0NQorOjEwQ0EwMDAwMEJCMDAzQ0MyMEVCMDAzQzgwMEZCMDQxQUMwMEZCMDAyRQorOjEwQ0ExMDAwM0NDMjBGQjAwM0VDNDBGQjAwM0VDMDBGMzAwM0QwMDYxOQorOjEwQ0EyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFRTAyQzM4MDMwQ0VDOAorOjEwQ0EzMDAwMEQ5ODAzQUNBMEMzODBCMkMwMEZCMDAzRUMwMEZCMDBBNAorOjEwQ0E0MDAwM0VEMjRGQjAwOTJFMDg0QjAxM0VDMDI0QjAwM0VBMDA4RAorOjEwQ0E1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwODcwMTIxQzAwOAorOjEwQ0E2MDAwNDg1MDEyNEMwMDg3MDAzNUMwNEI2MDAyREMwNEI3MDEwRgorOjEwQ0E3MDAwMkRDMDBCNzAwMjFDMDA4NzAwMkRDMTBDNzIwMkYyMDQ0NQorOjEwQ0E4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwODc4MDIzRTBERQorOjEwQ0E5MDAwMDhGODAyREU4MDhGODEyMUUwNEI3ODEyREUwNDM3ODBCNworOjEwQ0FBMDAwMkRFODBCRjgwMjNFMTg4NzgwMkZFMDA5NzkwMkUwMDA5QworOjEwQ0FCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwODMwMEEwQzA0QgorOjEwQ0FDMDAwMjgzMDQyNEMwMDgzMDAyNEMwMEIzODA2Q0MwNEIzMDA0RAorOjEwQ0FEMDAwMkNDMDBCMzAwMjBDMDI4MzAwMkNDMDA4MzAwMkQyMDRBMAorOjEwQ0FFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwQ0EwMDMxODBGNgorOjEwQ0FGMDAwMDhFMDAyOTgwMkNFMDAzMzg0MEJFQTAzRTgwMEJBMDA5MworOjEwQ0IwMDAwM0Y4MTBGQTAwMzI4MDBDQTAwM0U4MDBERTAwM0ZBMDQxNQorOjEwQ0IxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAwRjgwMDNFMDA1NworOjEwQ0IyMDAwMEU4NDIzQTAwMEY4MDAzQTEwMEY4MDAzRTAwMEY4MDAwNAorOjEwQ0IzMDAwM0UxMDBGODAxM0UwMDBGODAwM0UwMDBEODAwM0QyMDA4RAorOjEwQ0I0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAxRjkwMDNFNDA0MQorOjEwQ0I1MDAwMEM5QTEzRTQwMEM5MDAzRTQwMEM5ODIzRTQ4MEY5MDBDRAorOjEwQ0I2MDAwM0U0MDJDOTgwMzY0MDBGOTAwM0U0MDBDOTAwM0MyMDQ0MAorOjEwQ0I3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA0QjkwMDJFNDA3MgorOjEwQ0I4MDAwNjg5QzIyRTQwMjg5MDE3QzUwOEQ5ODIyRTQ4MEI5MjBCRgorOjEwQ0I5MDAwMkU1MDQ4MTAwQjI1MDBCOTQ0MkM0MDI4OTAwMEUwMDA4RQorOjEwQ0JBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkwMDJFNTBGRAorOjEwQ0JCMDAwMDg5MDAyRTQwNDg5MDAyRTUwMEE5MjAyRTQwMEI5MDBCMQorOjEwQ0JDMDAwMkM0MDA4OTEwMjI0MDBCOTAwMkU0MDA4OTAwMkM2MDBCMworOjEwQ0JEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNTAwQjEwMTJDNDBFNgorOjEwQ0JFMDAwNDgzMDAyRTQwMDgxMDAyQTQwNEIxMDAyQzQwMEIxMDAyQQorOjEwQ0JGMDAwMENDMDA4OTAwMjBDMDBCMzAwMkU0MDQ4MTIwMkMyMDE4MworOjEwQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwQjgwMTNFMDAwOAorOjEwQ0MxMDAwMUM4MDA3RTE1MEM4NTAyRTE0MUU4NTAzRTE0MUY4NTBENgorOjEwQ0MyMDAwM0UxNDBDODUxMzIxNDhGODUwM0UxNDBDODU0M0VFMDM0NgorOjEwQ0MzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MTlDNDAwRjkwMDNFNTFBNworOjEwQ0M0MDAwMEY1MDAzRTUwMEZEMDAzRjQwMUREMDAzRjQxMEY5MDAzNAorOjEwQ0M1MDAwM0U1MDBGNTAwMDk0MDBGOTAwM0Q0MDBGOTEwM0U2MDY0RQorOjEwQ0M2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDFFNDUwQ0QwMDMxNjBBOQorOjEwQ0M3MDAwMDREMDAzMzY4MEMxNDIyRTUwMUY5NDAzRTUwMEU5MDIyMAorOjEwQ0M4MDAwMkU3MjBBOTAyMjA1MDhFOTQwM0U1MDQwOUMwMzI2MDA3RgorOjEwQ0M5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBDMjgyODgwMDIyMTVEOQorOjEwQ0NBMDAwMDg4MDAyMjM1ODg4QTAyRTI4MEJBQTQyRTI4Mjg4ODA5RQorOjEwQ0NCMDAwMkUzODI4ODgwMjIyODBCOEEwM0EyODA4Q0QwMjBFMDQxNworOjEwQ0NDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwODEwMEE2NDBGQworOjEwQ0NEMDAwMjgxMDBBMjQyNjk1MDAwRDQwMEI1MDAyNzQwMDg1MDg4OAorOjEwQ0NFMDAwMkY0MDc5RDJBQTE0MDBBNTAxMkY0MDM4NTAwMjEyMDExQQorOjEwQ0NGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDA0ODkwMDI2NDAwMAorOjEwQ0QwMDAwMDg5MTAyMjQxMDlEMDgyRjQwMEJEMDAyRjQwMDhEMDJFMAorOjEwQ0QxMDAwMkY0MDA5RDAwMDM0MDBCRDAwMEI0MDE4NzAwMjA2MDRGQgorOjEwQ0QyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVDNDAwQzkwNTM2NDFFNQorOjEwQ0QzMDAwNEM5MDYzMjQwMEQ5MDAzRTQwMEI5MDAzNDQwOEM5MDA4NgorOjEwQ0Q0MDAwM0U0MDE1MTAwMzI0MDBFOTAwM0M0MDBDOTAwMzI4MDRFOQorOjEwQ0Q1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDA0RjkwMDNBNDAxRgorOjEwQ0Q2MDAwNEY5ODAzRTQwMEU5OTkzRTQwNEY5MDAzRTQyMEY5MEEwQworOjEwQ0Q3MDAwM0U0MDBFOTA0MzY0MjRGOTA4M0E0MjBGOTA4QkRBMDA0QgorOjEwQ0Q4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwQzgwMDEyMDA5MQorOjEwQ0Q5MDAwMEM4MDQzRTAwMEM4NDAzMjAwMEY4NDUzRTAxMEY4MDBEQworOjEwQ0RBMDAwM0UwMDBEODAyMzIwMDBEODAwM0UwMDBGODAwMzBBMDRCRgorOjEwQ0RCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzODAyODIwMEExODg0MQorOjEwQ0RDMDAwMDg2MDIyQzgwMDhBNDAzNkExMEJBMDAyRTkxMEJBNDRDQworOjEwQ0REMDAwMkM4MDBDQTQxMjI5MDI4QTQ0MkU5ODBCQTQwMjBBMDA2QgorOjEwQ0RFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzEwODMwMDIwRTBGNworOjEwQ0RGMDAwMTgzMDkyQzQwODkzNDAyMEUwMEIzMDAyQ0QwMEIzNDBCRAorOjEwQ0UwMDAwMkNDMDBCM0E0MkNEMDA4MzQwMkNEMDBCMzgwMjRBMDA5NAorOjEwQ0UxMDAwNTAwMDAwMDAwMDAwMDAwMEEwNDExQzAwODcwMDIxQzA1RAorOjEwQ0UyMDAwMjg3MDAyRDEwMDlEODAyNUMyNEI2MDAyREMwOEI3MDI0OQorOjEwQ0UzMDAwMkNDMDBBNzQwMkZFMDA4NzAwMkRDMDBCMzQwMjY4MDA2QgorOjEwQ0U0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwQzc4NDMxRTA3OAorOjEwQ0U1MDAwMEM2ODAzRDYwMDk3ODAzMUEwMEY1ODEzREUwOEY3ODJDNAorOjEwQ0U2MDAwM0RBMDBGRjgwQkRFMDBDNzgwM0RFMDBGNzg4QjZBMDIxMworOjEwQ0U3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBRDgwRjMwMDNFQzE2RQorOjEwQ0U4MDAwMEZBMDIzQzAwMkU5MDAzRTgxMEY4MDAzRUMwMEZCMDBFRAorOjEwQ0U5MDAwM0VDMDBEQjAxMzJDMDBFQjAwM0VDMDBGQjAwMzgyMDI2OQorOjEwQ0VBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRjMyQzc4MDMzNjAxMgorOjEwQ0VCMDAwMEY3ODAzM0VDODRFODAyMzY0MENGODAzM0EwMENFODBGRQorOjEwQ0VDMDAwMTNFQzA2RDgwMzNBMDBERTgwMzNBNDBDQzgwM0QwMDA2QworOjEwQ0VEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwODcxMDAxQzAzNQorOjEwQ0VFMDAwMEI3MDAyMTg1MDg0MDAyQjQ0MDg2MDEyOTgwMDg2MTNCRgorOjEwQ0VGMDAwMjFDNDg4NTAwMjE4ODA4NjAwMjE4MDA4NjEwMkVBMDQ1QgorOjEwQ0YwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwODcwMDIxNDAzRAorOjEwQ0YxMDAwMEJGMTAyNUM4MDA2MDAyMTAwODhEMDAyNUMwMDg3MDBEMworOjEwQ0YyMDAwMjA4OThBRjEwMjFDMDg4NzEwMjE4MTg4NDgwMkM2MDBFNgorOjEwQ0YzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzEwODMwNEEwQzFEOQorOjEwQ0Y0MDAwMEIzMDBBNDgwQzg4MDY2MDM4MDgwNDQyRUMwMThCMDQ1OAorOjEwQ0Y1MDAwMjJDMTA4MzAwQTJDMDA4QjAwMjI4MDAwMjAwMkQ4MDQ1NQorOjEwQ0Y2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwQzMwMDIyODBCMworOjEwQ0Y3MDAwOEY5MDAzNjQwQUNCMDJCMkYyMjAzNTEyNjQwQUM5MDAxMgorOjEwQ0Y4MDAwQjI0MDBFQTAwMzI0MEFDOTAwQTI0MDJDQTAwM0VFMDQ2NAorOjEwQ0Y5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwMDNDODAwRQorOjEwQ0ZBMDAwMEY5MDAzQTUwMERCNDAzRUQwNERCNDEzQTQwOEZCMDE1NQorOjEwQ0ZCMDAwM0VDMDFDQTAwMzZDMDBGQjA0M0U1MDRGQTQwM0UwMDBFNQorOjEwQ0ZDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkYwMDMzQzAzMgorOjEwQ0ZEMDAwMENFODQzMjYwMERGODBCM0UwMEZGODAzN0MwMENEMDBBRgorOjEwQ0ZFMDAwMzMwNDBDRTAyMzM0NDBDRDAwMjM0MDBDRTAwM0UwMDQ4NAorOjEwQ0ZGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzEwQkIwMEEyRDJEMQorOjEwRDAwMDAwMDgyODAyMDQ2MDhCMTkyMkM2MEVCMThBMkU0MDhCOTAyQworOjEwRDAxMDAwMjJDMTA4QTQ4MjJDMDA4QjkwMjI2NDQ4QTQwMkUwMDA2NAorOjEwRDAyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwQkIwMDIyMDA2MgorOjEwRDAzMDAwMDg5MTJFMjQwMDlCMDAyMkMwOEJCMDEyMjAwNDg4MDA4RgorOjEwRDA0MDAwMjI0MDA4MTAyMjIwMDA4ODAxMkFEMDA4ODA0MkUwMDBGNworOjEwRDA1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQjMwNDIwODAyMQorOjEwRDA2MDAwMDgxMDA2MDQxMDgzMDAyMEMwOEJCMDEyMDAwMDgyMDA1QworOjEwRDA3MDAwMjBDMDI4MTA0MjA5MDY4MjAwMjhDMDA4MjAwMkMyMDFGMAorOjEwRDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3QzAwQkIwMDMyNDBFQQorOjEwRDA5MDAwMkNCMDAzMjQwMEQzMDAzMkMwNUZCNTAzMEMwMkMxMDBFMgorOjEwRDBBMDAwQjIwMDBDQjAwQjA1MDBDMTAwQjhDMDJDODAxM0UwMDMyNworOjEwRDBCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMUREQzAwRkYwMDFGQzBBOQorOjEwRDBDMDAwODdGMDAxRjQwMEZGMDAzRkMwMEU3MDQzRkMxMDdGMDBBQQorOjEwRDBEMDAwM0ZDMDBGNzAwM0ZDMDBGRjAwMzdDMDBGRTAwM0U4MDZGRAorOjEwRDBFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMTg0RkU2MTMxRDgyRQorOjEwRDBGMDAwMENCMkMzRkNFMENDODA3QkMwMEVGMTAzN0NFMENDODM5RgorOjEwRDEwMDAwM0YyMDBGRjBDQjMyNDREQzg0M0YyNTRDRjI0MzMwMDAwQgorOjEwRDExMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFNDQ4QjAxMDIyREMyNQorOjEwRDEyMDAwMDhCNjAyRkQ5Mjg4ODUyM0Y0NDBGMTAyRUQwMDg4MkRCNworOjEwRDEzMDAwMEU2MDBCQkMxMjJDMTBBODgyMkUwMDBBRkMyMkEwMDQ0OAorOjEwRDE0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDMDgwQjMyMjI4QzAyNQorOjEwRDE1MDAwMDgzMDgyQ0MwMTg4MDAyQ0MwNEEzMjAyQ0MwMDAxMDE4OAorOjEwRDE2MDAwMjgwMDRCQjAwMkEwMDA4MDAwMkMwOTA4MzQwMjYyMDFBNAorOjEwRDE3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA0QjIxMDJBQzEwRAorOjEwRDE4MDAwMDhCMDAyRUMxMDg5ODAyMkMwMDhCMDAyRUMwODg4MDBDOAorOjEwRDE5MDAwMkU0MDgzQjAwMkEwNDBCOTgwMkMyMTBBQjAwMkYwMDRENgorOjEwRDFBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwRkEwMEJBQzA2QQorOjEwRDFCMDAwMkNCMDQzRUMwMEMwODAzRUMwOEVCMDAzNEMwQ0M4MTBCNQorOjEwRDFDMDAwM0U4MDhGQjAwMzgyMTBEODgyM0UyODBDQjAwQjUwMDRGMgorOjEwRDFEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNjgwRkQwMjM3QzFEMQorOjEwRDFFMDAwMEZCMDAzRkMwMEZEMDAzRUMwMEZCMDUzRkMwMkZGMDE3NgorOjEwRDFGMDAwMkZBNDhCRjA4MzdDMDBBRDAyMkY0MDAzNzAwM0I4MDA5NgorOjEwRDIwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwNDMyQzBEMQorOjEwRDIxMDAwNENCMDIzMkMwMEY4NDAzRUMyMENCMDAzMkMwMEZCNDE2NAorOjEwRDIyMDAwMzJDMjBGQjA0MzJEMDBDODUwM0U0MDBDQjAwQjEwMDQ2QQorOjEwRDIzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyRjkwQjk1MDAzQzA3NgorOjEwRDI0MDAwMThGMDFBM0MwMEI5MzIyREUwMzhGMDYwM0MwNEY5MDBDNworOjEwRDI1MDAwM0VGMDBCN0M4MDJDMDBEOUMwMkU0MDBERjAwMjMyMDAzNQorOjEwRDI2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QjI0QjIxMDAyQzFBNQorOjEwRDI3MDAwMjgzMDAyNkMwNEIyQzEyQ0MwMDgzMDAwMEMwMEIyMDA4RgorOjEwRDI4MDAwMjgyNDAzM0MwQTAwMDA4MkM4MkNBMDA4MzAwMjM4MDA4MQorOjEwRDI5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjAwQjQ4MDIxRTRDRQorOjEwRDJBMDAwNDg3QjAyNUUwMEI2ODA2REUyNDg3OTIyMUU0MEFDODQ2NQorOjEwRDJCMDAwMkRFMDBCRkEwMDUyNDA5NjgwMkRFODE5MzgwMjA4MDA0NAorOjEwRDJDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODQwRjMxMEIwQzQwRgorOjEwRDJEMDAwMDgzQTAyNEM5MEYzMTAzQ0NDMDgzMTAzMEM0OUIwNDBBMgorOjEwRDJFMDAwMzAwNTBGMzAwNzIxNDA0MzAxM0VDMjFDMzA0MzEyMDI3QgorOjEwRDJGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMERCQzEwRkMxMDNGQzUwNQorOjEwRDMwMDAwMEZGMTAxQkMwNEZGMDQzRkM0MEZCMTRCRkM2NEY3MDBGNAorOjEwRDMxMDAwMzdDMDBGNzI1M0FDNDRGRjAxM0ZDOTBGRjQwM0QwMDY2RQorOjEwRDMyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzA4RkEwMDNFRTBFNAorOjEwRDMzMDAwMENCMDAzMkMwMENCMDIzRUNBMEZCMjA3MkUwMERCMDI1QQorOjEwRDM0MDAwMzIwODBGMzEwMzJDMDBDQjA0M0U4MDBDMzUwMzJBMDAzOQorOjEwRDM1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAwQjUwMDJEQzhDNgorOjEwRDM2MDAwMDg3MDBBMUMyMjg3MDAyREM5MEJGMjgyOUM4MEE2MDAzRgorOjEwRDM3MDAwMDk4QjBCNzAwQTFDMDI4NTAwMkQ0MDA4NzAwMjkyMDQ3NAorOjEwRDM4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc4MDJDRUM5MAorOjEwRDM5MDAwMDg3QjAyNUU0MDg1ODkyREVDOEI3QjAyNEU4NDhGODA1QQorOjEwRDNBMDAwMjU2NDBCRkEwMjEyMDg5NzgwNkZFMTA4N0EwMjMwMDBCOAorOjEwRDNCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzIwQjM2NDJDQzAwMgorOjEwRDNDMDAwMDgzMDA2MEMxMDgzOEE2Q0MwNUIzMDQyQ0MwMEFCMTA3NgorOjEwRDNEMDAwMkNGMjBCMzAwMjBEMDA5MzA0MkNENTA4MzAwQTkyMDQ3NQorOjEwRDNFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQjAwRkVDMDNFODBEOQorOjEwRDNGMDAwMkNBMDAzNjgwMEM2NDAzRjgwMEZBMDAyNjgwMENFNDQwNgorOjEwRDQwMDAwMzY5MDRGNjAwMzFCNzBERUQ4M0ZBMDBDMjAwMzNBMDQxNworOjEwRDQxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDQwRjgxMDNFMDBGRQorOjEwRDQyMDAwMEY4MDAzQTAxMEY4NDIzRTEwMUY4MDAzQTAwMEU4MENGQworOjEwRDQzMDAwM0EwNDFGODAwM0UwMDBFODQ1N0UwMjJGODAwM0QyMDBGQgorOjEwRDQ0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTA2NDAwRTk4MDMyNDA1NQorOjEwRDQ1MDAwMEY5MDBCMDQwOEQ5ODAzNjQwMEYxMDEzMjQwOEY5MDBGMAorOjEwRDQ2MDAwNzI3MDBGOTExMzI0MTBDOTEwM0U2OTBDOTAwMzAyMDRDRQorOjEwRDQ3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA4Qjk4MDIyNDBGMQorOjEwRDQ4MDAwMEIxMDAyMjQwMDg5QzQyMjUyMEI5MDQyMjQwMEI5MDBFMAorOjEwRDQ5MDAwMjJFMDBCOTAxMjI0MDREOTRBMkU2MDA4OTAwMzYwMDAwOQorOjEwRDRBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjExODIyNDAwMAorOjEwRDRCMDAwMEI5MDAyMjQwMDhCMjAyNjQ5MEI5MDAyNjQwMEI5MDBENworOjEwRDRDMDAwQTI0MDBCOTA4QTI0MDA4QjAwMkM0MEE4OTAwMjA2MDBGQQorOjEwRDREMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDg0QjEyMEEwNDhCRgorOjEwRDRFMDAwMEIxMTA2MDQwMDgzMDAwMDQwNEIxMTAyMDQ0OUIxMTBFNworOjEwRDRGMDAwMjg0MDBCMTAwMjI0NDE5MTAwMkM1MDA4MTAwMjQyMDFEOAorOjEwRDUwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2OTQwRTg1MDMyMTQyRgorOjEwRDUxMDAwMEY4NjkzMjFFMkM4MDAzNjBBMEI4NjhCNjFBOEY4NDA3QgorOjEwRDUyMDAwMjI4MDBGODJBMzIxMDhDODAyM0UwMDBDODA0MzJFMDNGNAorOjEwRDUzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQ4RkQxMjNFNDQxOQorOjEwRDU0MDAwMEYxMjAzQzQwMDdEMDExRTQwMEI5MjAzRTQ4MEY1MjBGRQorOjEwRDU1MDAwMzY0MDBGOTAwM0Q0OTA3RDAwM0Q0MDBGOTQwM0U2MDZDMworOjEwRDU2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDFGNkMxREQ4ODMyNzI3MgorOjEwRDU3MDAwMEM5ODAzMjYyMkREMDAzRjYyMkM5OTgzNDZBMEM5NDAwNworOjEwRDU4MDAwQjI0MDBGRDgwMzI0MDBGRDAwMzM1MTJDRDg4MzA2MDA4RAorOjEwRDU5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFM0MyODhDMDIyMzA5NAorOjEwRDVBMDAwMDg4QzQyMjIxMThBMDEyRTAwMDg4ODUyMjMwMDgwQTM5MQorOjEwRDVCMDAwMkEwMDRCODA0MjIyQTBCODAwMjIyODA4ODQwMjhFMDQ1MAorOjEwRDVDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwODEyRDIwNDg0NAorOjEwRDVEMDAwNjgxNDgwMDQyMDgxMDAyRTQwMEIxMjEyMDQyNDgxMjA0NAorOjEwRDVFMDAwMjA0MDBCOTQzMjA0OTBCOTAwMjA0MDQ4MTA0QTAyMDFCOAorOjEwRDVGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwODkyMDIyNDBERgorOjEwRDYwMDAwMDg5MDEyMjQwMDg5MDAyRTQwMDg5MDAyMjQwODg5NDBDNgorOjEwRDYxMDAwMjI1MDBCQjAwMjI0MjBCOTA5QTI0NDA4OTAwMjg2MDRDQgorOjEwRDYyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRDkwOEIyNDAyRQorOjEwRDYzMDAwNEMxMDIzMDQwNEQ5QzEzRTQwOEY5MDBCMDQwOEMxNDAxNAorOjEwRDY0MDAwMTI0MDBGOTA0MzI0MDRGMTQxMzA3ODBDOTAwMzI4MDREOQorOjEwRDY1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NjY0Rjk4MDNFNDA1MAorOjEwRDY2MDAwMEY5MDBCRTQwMEY5OTgzRTQwMkYxMDAzQTQwMkY5MTAyQworOjEwRDY3MDAwM0U0MDBGOTAwQkU2NDBGOTkwM0U2MDBGOTAwM0NBMDBDOQorOjEwRDY4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwQzg0MTMyMDAyNworOjEwRDY5MDAwMEM4MDA3MjAxMEM4MTAzRTBDMEU4MDAzRTAwNEM4MDA2OAorOjEwRDZBMDAwQkEwMDBGODE0MzIwMDBGODcwM0UwMDBGMDAwQjBBMDRGRgorOjEwRDZCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzOTAyOEUyMEEzODAxMQorOjEwRDZDMDAwMjhFMDBBMzgxMEFFMDQzREExOEVFMDAyRjgwMDhFMDA3QQorOjEwRDZEMDAwNzY4MDBCNjAwMzc4MDBCRTQwMkY4MjBCQTAwM0NBMDA0NworOjEwRDZFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0RDAwOEI4ODIyQzA4QgorOjEwRDZGMDAwMTgzMDAyMEMwMDgzNDQyQ0QwMUIzMDEyQ0MwNjgzMDA1RgorOjEwRDcwMDAwMjBDMTBCMzA4MjBDMDFCMzAwMkM0MDBCMzAwMjBBMDAwOAorOjEwRDcxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzAwODUwMDIwQ0M4QgorOjEwRDcyMDAwMDg3MDA2MUM4NEE3MDEyOUMwMEI3MjIyREM4MDg3MzQ5NAorOjEwRDczMDAwNjE4MDBCMTAwMjVDMDBCNzAwMkRDMDBCNzAwMkU4MDA4NgorOjEwRDc0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgwRTAwOEM4MDMxRTBCRQorOjEwRDc1MDAwMENGRTAyM0YwMEM1ODAyREUwMEU3ODAzREZBMEM3QTBCRAorOjEwRDc2MDAwMjE2MDBGNzgwMzFFODBGNzgwM0RFMDBGNzgwMzJBMDJDNgorOjEwRDc3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjkwMDNFQzBFMQorOjEwRDc4MDAwMEZCMDAzRUMwMEZBMDAzRUMwMDZCMDAzRUM4MEZCMjhBQgorOjEwRDc5MDAwMzZEODRGQTAwM0VDMTBGQTAwM0U1MDBGMzAwM0MyMDZGQgorOjEwRDdBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQTAwQ0M4MEIzRTAzQgorOjEwRDdCMDAwMEZGODAzM0UwMENGOTAzRjYwNEZGOEMzM0UwMEVGODA2QworOjEwRDdDMDAwMzNGMDBDN0EwMzNFNzBDNTkwMzNGMTBDNzgwMzAwMDBGRgorOjEwRDdEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTFCODAwODcwMDIxQzAwMAorOjEwRDdFMDAwMEI3MDRBMUMwMDg3MTAyREMwNEI3MTBBM0M0NDhGMTJFRAorOjEwRDdGMDAwMjE4NjBENzIwMjFFMDA4NzAwMjM0MDA4NzAwQTJBMDQ0OQorOjEwRDgwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwODQwMDI1QzBCMworOjEwRDgxMDAwMEI3MTBBMEMwMEE3MTIyRDg0MEI3MDBBMUMwMEI3MDhBQworOjEwRDgyMDAwMjM0MDA5RjMxQTVDODY5NzA4MjU0MDA4NzAwMjAwMDAxRgorOjEwRDgzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzIwODEyMDI2QzAyMQorOjEwRDg0MDAwMEIzMDAyMkMwMDgyNDIyQzgwMEIzMDIyMEMwODlCODA3MworOjEwRDg1MDAwMjBFMDA5MjAwMjREMDg5MjAwMjRFNTA4MzAwQTA4MDQ1RgorOjEwRDg2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBRTgyQ0FFMEI3QzA3QQorOjEwRDg3MDAwMEZGMDEzM0MwQUM5QzgzRTQwMEZGMDAzM0MwNEZGODQ3QworOjEwRDg4MDAwMzJDMDBEOTAxMzdDMDBEOTAwRjZDMDJDMTAwMzJBMDQ3RQorOjEwRDg5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFNDAwRjMwMDNBQzFENgorOjEwRDhBMDAwNEZCMDAzRUMwMEY5MDgzQzAwMEYzMDEzRUMwMEVCMDQyMAorOjEwRDhCMDAwQkUxODBGOTAyM0FDNjBFOTAyM0E0MDRGOTAwM0UwMDA5RAorOjEwRDhDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwQ0EwMDMzQzA1RQorOjEwRDhEMDAwMENGMDAzRkMwMENEMDI3RjQwMENGMDQyM0MwMENGMDg2RQorOjEwRDhFMDAwMzcxMDBGRDAwM0ZDMTBDRDA4M0Y2NjJDRDkwMzAwNDQzRAorOjEwRDhGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2MzgwOEJFMDIyQzA0MworOjEwRDkwMDAwMDhCMDIyRUMwMEQ4ODA2RTIwNjhCMDFBMkMwMUZCMDAxMQorOjEwRDkxMDAwMjIxODBCODg0MzRDMDA4OEEwMkNDMDFEOTAwMjIwNDA4OAorOjEwRDkyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDEwODgwOEIyMDIyQzA1MQorOjEwRDkzMDAwMDhCMDIyRUMwMDg4ODgyRTYyNDhCMDFBQ0MwMDhCMDAxOAorOjEwRDk0MDAwMjZDMDRBODgwMkVDMDAwODg0MkU0MDA5OTAwMjIwMDA3QworOjEwRDk1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAwODMwMDYwQzBEOAorOjEwRDk2MDAwMDgzMDAyQ0MwMDkwMDY2QzAwMDgzMDAyOEMwMEEzMDQ0MgorOjEwRDk3MDAwMjAwMDhCMDAwNjRDMjE4MDAwNkNDMDQ5MTAwQTAyMDE3NworOjEwRDk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQ0EwMEIyQzFFMQorOjEwRDk5MDAwODhCNDAzRUMxMEM4MDAyRTAwMENCMDBCQkMwODhGMDAzQworOjEwRDlBMDAwMzYwMDA2ODAwM0VDODBDODAyM0ZDMTBDOTAwMzAwMDNFMAorOjEwRDlCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGMDAwRkYwMDNGQzA2QworOjEwRDlDMDAwMEY3MjgzRkMxOEZDMDMzRjAwOEY3MDAzN0MwMEZGMDA4NAorOjEwRDlEMDAwM0QwMDBGQzAyMzhDMDZGQzAwM0Y0MDBFRDAwM0U4MDYzQworOjEwRDlFMDAwNzAwMDAwMDAwMDAwMDAwMDAwQzU0MTAzNzA0MERDMTAyMgorOjEwRDlGMDAwMzcwNDBEQzEwMzcwNDBEQzEwMzcwNDBEQzEwMTcwNDBDNQorOjEwREEwMDAwOUMxMDE3MTQwNUMxMDM3MDQwREMxMDE3MDQwREMwMzFDMQorOjEwREExMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0NDA1NzEwMTVDNDBFQQorOjEwREEyMDAwNTcxMDE1QzQwNTIxMDE1QzQwNTcxMDE1QzQwMTcxMDE0MAorOjEwREEzMDAwNUM0MDE3MTAwNUM0MDU3MTA1NUM0MTU3MTAxNUMwMTFGNQorOjEwREE0MDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwMjAxMjA4MDQ4MjBGQgorOjEwREE1MDAwMTIwODA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTIwODBEQworOjEwREE2MDAwNDgyMDEyMDgwNDgyMDEyMDgwNDgyMDEyMDgwNDgwMjBFNworOjEwREE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwNjAwMDU4MDA2RQorOjEwREE4MDAwMTYwMDA1ODAwMTYwMDA1ODAwMTYwMDA1ODAwNTYwMDA0MgorOjEwREE5MDAwNTgwMDE2MTgwMTgwMDE2MDAwNTgwMDU2MDAwNTgwMjBDQgorOjEwREFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0ODA1MjIwMTFDODBBNQorOjEwREFCMDAwNDcyMDExQzgwNDcyMDE1QzgwNTcyMDExQzgwNDcyNDFDQworOjEwREFDMDAwNUM4MDU3MjAxMUM4MDQ3MjAxMUM4MDQ3MjAxNUMwMzFBQQorOjEwREFEMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0MDAwNjAwMDE4MDA3OQorOjEwREFFMDAwMDYwMDAxODAwMDYwMDAxODAwMDYwMDAxODAwMDYwMDA1MAorOjEwREFGMDAwMTgwMDA2MDAwMTgwMDA2MDAwMTgwMDA2MDAwMTgwMzE1NworOjEwREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0ODA0MjIwMTA4ODA1OQorOjEwREIxMDAwNDIyMDEwODgwNDIyMDEwODgwNDIyMDEwODAwNDIzMDE0MgorOjEwREIyMDAwMDg4MDQyMjAxMDg4MDQyMjAxMDgwMDQyMjAxMDgwMjEzMQorOjEwREIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0QTA1NDI4MTUwQTAxRQorOjEwREI0MDAwNDQyQzExMEIwNDQyODExMEUwNTQyODExMDIwMDQyODE0MAorOjEwREI1MDAwMTBBMDQ0MzgxMTBCMDU0MjgxMTAyMTE0MjgxNTAwMzEwMgorOjEwREI2MDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwQzAxNTcwMDU0QzA2RAorOjEwREI3MDAwMTUzMDA0NEMwMTEzMDA1NEMwMTU3MDA1NEMwMTUzMDBCRQorOjEwREI4MDAwNTRDMDE1MzA4NTRDMDExMzAwNTRDMDE1MzAwNTQwMjE5OAorOjEwREI5MDAwNDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwNDAwMDEwMDA3NQorOjEwREJBMDAwMDQwMDAwNDAwMDEwMDAxMDYyMDQwMDAxMDgwNDQxMDA1RAorOjEwREJCMDAwMTAwMDQ0MTgxMTAwMDAxMDAwMTA4MDA0MDAwMTAxMjAyMgorOjEwREJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2MDAyMDgwMDgyMDAyNAorOjEwREJEMDAwMjA4MDA4NjAwMjE4MDA4MjAwMjA4MDA4MjAwMDA4MjBCMQorOjEwREJFMDAwODIwMDAwODA4MDIwMDIxODAwODIwMDIwODAwODAxMzExRAorOjEwREJGMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0MDA1NjQwMTU4MDAwRQorOjEwREMwMDAwNTYwMDE1ODAwNTYwMDE1ODAwNTY0MDE1ODAwNTYwMDFEQQorOjEwREMxMDAwNTgwMDU2MDAxNTgwMDU2MDAxNTgwMDc2MDAxNTgwMzFDNworOjEwREMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MDAzNjAwMEQ4MDBCNAorOjEwREMzMDAwMzYwMDBEODAwMzYwMDA5ODAwMzYwMDFEODgwNTYwMDBFNgorOjEwREM0MDAwRDgwMDE2MDAwRDgwMDM2MDAwRDg4MDQ2MDAwRDgwMzE5QQorOjEwREM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MjA0MzA4MTBDMjBEQworOjEwREM2MDAwNDMwODEwQzIwNDMwODEwQzIyNDEwODE4QzIwNDMwODlENAorOjEwREM3MDAwMEMyMDAzMDgxMEMyMDQzMDgxMEMyMDQzMDgxMEMwMTA4RgorOjEwREM4MDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwMDAwMzAwMDBDMDA4OAorOjEwREM5MDAwMDMwMDAwQzAwMDMwMDAwQzAwMDMwMDAwQzAwMDMwMDA5MgorOjEwRENBMDAwMEMwMDAzMDAwMEMwMDAzMDAwMEMwMDAzMDAwMEMwMDFBNQorOjEwRENCMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMjAxMzA4MDRDMjBDNQorOjEwRENDMDAwMTMwODA0QzIwMTMwODA0QzIwMTMwODA0QzMwMTMwODBDMworOjEwRENEMDAwNEMyMDEzMDgwNEMyMDEzMDgwNEMzMDEzMDgwNEMwMjFDQQorOjEwRENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MjA1NjA4MTU4MjBDRgorOjEwRENGMDAwNTYwODExODIwNTYwODE1ODIwNTYwODExODMwMDYwODEwMgorOjEwREQwMDAwNTgyMDQ2MDgxMTgyMDQ2MDgxMTgzMDU2MDgxNTgwMzA2QQorOjEwREQxMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0MjAwMjA4MDA4MjBFNAorOjEwREQyMDAwMDIwODAwODIwMDIwODAwODIwMDIwODAwODIwMDMwODA2MworOjEwREQzMDAwMDgyMDAyMDAwMDgyMDAyMDgwMDgyMDAzMDgwMDgwMzFCMworOjEwREQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MjA0NjA4MTE4MjBBRgorOjEwREQ1MDAwNDY0ODExOTIwNDYwODExOTIwNDYyODExODIwMDM0ODFCRQorOjEwREQ2MDAwMTgyMDQ2NDgxMTkyMDQ2MDgxMTgyMDQzMDgxMTgwMTE0MAorOjEwREQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU2MDA0NTgwMTU2MDBDQgorOjEwREQ4MDAwNTU4MDE1NjAwNDU4MDExNjAwNTU4MDAxNjAwNDE4MDE4MworOjEwREQ5MDAwNTYwMDQ1ODAxMTYwMDQ1ODAxMTYwMDQxODAxMTQwMzE0MQorOjEwRERBMDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwNjAxNDE4MDUwNjAyQgorOjEwRERCMDAwMTQxODA1MDYwMTQxODA1MDYwMDQxODA1MDYwMDQxODBEMgorOjEwRERDMDAwMTA2MDE0MTgwNTA2MDE0MTgwNTA2MDE0MTgwNTAwMjBFOQorOjEwREREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMDA4MDQwMjA2MAorOjEwRERFMDAwMTA0ODA0MTIwMTAwODA0MTIwMTAwODA0MDIwMTA0ODA0MAorOjEwRERGMDAwNDAyMDUwNDgwNDEyMDEwMDg0NDAyMDEwMDgwNDAwMjBGNAorOjEwREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0NjAzNTE4MEQ0NjBGRgorOjEwREUxMDAwMzAxODBENDYwMzUxODBENTYwMzUxODBENDYwMzA1ODAzNgorOjEwREUyMDAwRDQ2MDE1MTgwRDQ2MDMxMTgwRDQ2MDM1MTgwRDQwMzFBQgorOjEwREUzMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0NjA1NzE4MDVDNjBENQorOjEwREU0MDAwOTcxODE1QzYwNTcxODE1QzIwNTcxODE1QzYwMzcwODE5NworOjEwREU1MDAwNUM2MDU3MTgxMUM2MDUzMTgxNUM2MDc3MTgxNUMwMzFCOAorOjEwREU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0NjAzNzE4MERDNjBGNworOjEwREU3MDAwMzcxODBEQzYwMzcxODBERDYwMzcxODA1QzYwMTc1ODEzRQorOjEwREU4MDAwREM2MDM3MTgwREM2MDM3MTg0NUM2MDE3MTgxOUMwMTE2NworOjEwREU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0NjA1NzE4MTVDNjA0NAorOjEwREVBMDAwNTcxODE0ODYwNTcxODE1QzYwNTcxODA1QzYwNDMxODFDNgorOjEwREVCMDAwNUM2MDU3MTgxNUM2MDU3MTgwNUM2MDQzMTgxNUMwMTE2OQorOjEwREVDMDAwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMjA4MDQ4MjBGNworOjEwREVEMDAwMTIwODA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTcwODAwOAorOjEwREVFMDAwNDgyMDEyMDgwNDgyMDEyMDgwNDgyMDE3MDgwNDgwMDA3RQorOjEwREVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAxNjE4MDU4NjA4MgorOjEwREYwMDAwMTYxODQxODYwMTYxODAxODYwMDYzQzA1ODYwNDYxODAxMAorOjEwREYxMDAwMTg2MDE2MTgwMTg2MDA2MTgwNTg2MDU2MTgxNTgwMTAyOAorOjEwREYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0MDA1NzAwMTVDMDA5QQorOjEwREYzMDAwNTcwMDE1QzAwNDcwMDE1QzAwNTcwMDEwQzAwNDcwMDA0OQorOjEwREY0MDAwMUMwMDQ3MDAxMUMwMDQ3MDAxNUMwMDQ3MDAwMUMwMTFCMworOjEwREY1MDAwNTAwMDAwMDAwMDAwMDAwMDAwNDU0MjAwNjA4MDE4MjBEMgorOjEwREY2MDAwMDYwODAxODIwMDYwODAxODIwMDYwODAwODIwMDYwODA5OAorOjEwREY3MDAwMTgyMDA2MDgwMTgyMDA2MDgwMTgyMDA2MDgwMTgwMTEyMAorOjEwREY4MDAwNDAwMDAwMDAwMDAwMDAwMDAwMDU0MjA0MjA4MTA4MjAzRAorOjEwREY5MDAwNDIwODEwODIwNDIwODEwODIwNDIwODExODIwNDIwODA1NworOjEwREZBMDAwMDgyMDQyMDgxMDgyMDQyMDgxMDgyMDQyMDgwMDgwMTFDNQorOjEwREZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0MjA1NDA4MTUwMjBBNAorOjEwREZDMDAwNTQwODE1MDIwNTQwODExMDIwNTQwQzE1NDIwMDQwODE3MAorOjEwREZEMDAwNTAyMDQ0MDgxMTAyMDU0MDgxMTAyMDE0MDgwNTAwMTE0QQorOjEwREZFMDAwNTAwMDAwMDAwMDAwMDAwMDAwMDEwMzAxNTBDMDU0MzA0OAorOjEwREZGMDAwMTUwODA1NDIwMTUwQzA1NDMwMTUwQzA1NDMwMTUwQzBBRQorOjEwRTAwMDAwNTQzMDE1MEMwNTQyMDE1MEMwNTQzMDE1MEMwNTQwMTAxOQorOjEwRTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwNDIwMDEwODAyNgorOjEwRTAyMDAwMDQyMDAxODgwMDYyMDAxMDgwMDQwMDExMDgwMDQyMDBGMgorOjEwRTAzMDAwMTA4MDA0MjAwMTA4MDA0MjAxMTA4MDA0MjAwMTAwMDAyQgorOjEwRTA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0MjAyMDA4MDgwMjAyNworOjEwRTA1MDAwMjAwODA4MDIwMjIwODA4MDIwMjAyODAwMDIwMjAwODA4MAorOjEwRTA2MDAwODAyMDIwMEEwODAyMDIwMDgwMDAyMDIwMDgwODAwMTFGOQorOjEwRTA3MDAwNTAwMDAwMDAwMDAwMDAwMDAwNDU0MDA1NjAwMTU4MDAwRAorOjEwRTA4MDAwNTYwMDA1ODAwNTYwMDE1ODA4NTYwMDE1ODAwNzYwMDI5QgorOjEwRTA5MDAwNTgwMDU2NDAxNTgwMDU2MDAzMTgwMDc2MDAxNTgwMTE2MQorOjEwRTBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MDAzNjAwMEQ4MDAzMAorOjEwRTBCMDAwMzYwMDBEODAwMTYwMDBEODBBMzYwMDBEODAwNTcwMDkxOQorOjEwRTBDMDAwRDgwMTM2MDAwRDgwMDM2MDAwRDgwMDU3MDAwRDgwMDA5NQorOjEwRTBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MzAwMTBDMDBGRgorOjEwRTBFMDAwNDMwMDEwQzAwMDMwMDEwQzAwNDMyMDEwQzAwNDYwMDE0OAorOjEwRTBGMDAwMEMwMDQzNDA1MEMxMDQzMDAxMEMwMDQ2MDAxMEMwMDAyOQorOjEwRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAwMDBDMDBEMworOjEwRTExMDAwMDEwMDAwQzAwMDMwMDAwQzAwMDMwMDAwRDAwMDIwMDAwRgorOjEwRTEyMDAwMEMwMDAzNDAwMEMwMDAzMDAwMEQwMDAyMDAwMEMwMDBFMQorOjEwRTEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAxMzE0MDRDNTBDQworOjEwRTE0MDAwMTMxMDA0QzQwMTMxNDA0QzUwMTMxNDA0QzUxMTMxNDE2MworOjEwRTE1MDAwNEM1MDEzMTQwNEM1MDEzMTQwNEM1MDEzMTQwNEMwMDAzQQorOjEwRTE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMzA1NjhDMTVBMzBENAorOjEwRTE3MDAwNTY4QzExQTMwNDY4QzExQTMwNTY4QzExQTMwNTY4QzBDRgorOjEwRTE4MDAwNUEzMDQ2OEMxMUEzMDQ2OEMxNUEzMDE2OEMxNTgwMDA5MQorOjEwRTE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDA4MDA1NworOjEwRTFBMDAwMDIwMDAwODAwMDIwMDAwODAwMDIyMDAwOTAwMDIwMDBGMworOjEwRTFCMDAwMDgwMDAyNDAwMDgwMDAyMDAwMDkwMDAyMDAwMDgwMDBFQQorOjEwRTFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQ0NjIwMTE4ODQwNAorOjEwRTFEMDAwNDYyMTExODg0NDYyMTExODg0NDYwMTExODg0NDYyMTA1NgorOjEwRTFFMDAwMTg4NDQ2MjExMTg4NDQ2MjExMTg4NDA2MjExMTgwMDA4OAorOjEwRTFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NTAxMTU0MDQyMQorOjEwRTIwMDAwNTUwMTExNDA0NTUwMTExNDAwNDUwMTExNDA0NDUwMDA4MgorOjEwRTIxMDAwMTQwNDQ1MDAxNTQwNDQ1MDExMTQwNDU1MDExMTQwMDBFOAorOjEwRTIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIxNDIwODUwODJBOQorOjEwRTIzMDAwMTQyMDg1MDgyMTQyMDg1MDgyMDQyMDg1MDgyMTQyMDhDNAorOjEwRTI0MDAwNTA4MjE0MjAwNTA4MjE0MjA4NTA4MjE0MjA4NTAwMDBDNQorOjEwRTI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAxMDI4MDQwQTA1MQorOjEwRTI2MDAwMTAyODA0MEEwMTAyODA0MEEwMTAyODQwMEEwMTAyODAwMAorOjEwRTI3MDAwNDBBMDEwMjg0NDBBMDEwMjgwNDBBMDEwMjgwNDAwMDA5OQorOjEwRTI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAzNTMwMEQ0QzA5OAorOjEwRTI5MDAwMzUzMDBENEMwMTUzMDBENEMwMzUxMDBDNEMwMzUzMDBFNQorOjEwRTJBMDAwRDRDMDM1MzAwRDRDMDM1MzAwRDRDMDM1MzAwRDQwMDA4MAorOjEwRTJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA1NzIwMTVDODAwMgorOjEwRTJDMDAwMTcyMDA1QzgwNjcyMDE1QzgwNTcyMDE1QzgwMjcyMDEyQworOjEwRTJEMDAwNUM4MDU3MjAxNUM4MDU3MjAxNUM4MDM3MjAxMUMwMDA5MgorOjEwRTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMzE4NDBDNjEyMzFBQQorOjEwRTJGMDAwODQ4QzIxMjMwODQ4QzYxMjMwODQwQzYxMjMxMDQ4QzI0NAorOjEwRTMwMDAwMTIzMTg0OEMwMTIzMDg0OEM2MTIzMTA0OEM2MTAwMDA0QworOjEwRTMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGNEZGRkQzRkY5RgorOjEwRTMyMDAwRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkYyMworOjEwRTMzMDAwRDNGRkY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGRDAwMDBDRAorOjEwRTM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwRTM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwRTM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwRTM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQ0RCMEZCNkMyQ0Q0MgorOjEwRTM4MDAwQjBCMzZDMkNEQjBCMzZDMkRGQjBCMzZDMkNEQjBCN0U3NgorOjEwRTM5MDAwQzJDREIwQjdGRDJDREIwQjM2QzJDREIwQjM2QzAwMDBFNAorOjEwRTNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMzNDNEZDRjEzMzM5QQorOjEwRTNCMDAwQzRDQ0YxMzMzQzRDQ0YxMzNGQzRDQ0YxMzMzQzRDRkZDNQorOjEwRTNDMDAwMTMzM0M0Q0ZGRDMzM0M0Q0NGMTMzM0M0Q0NGMTAwMDAyNgorOjEwRTNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQjdFNEVERjkzQjcwRAorOjEwRTNFMDAwRTRFQzc5M0IxRTRFREY5M0JGRTQ4REY5M0I3ODRFRkZBMgorOjEwRTNGMDAwOTNCN0U0RURGRDNCMUU0RURGOTNCNzg0RURGOTAwMDBDQgorOjEwRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAyNzA0MDlDMTBBRAorOjEwRTQxMDAwMjcxQzA5QzEwMTMwNDAxQzEwNjcwNDA5QzEwMjcwNDE2QQorOjEwRTQyMDAwOUMxMTA3MTQwMUMxMDI3MDQwOUM1MDA3MUMwMUMwMDBFMAorOjEwRTQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDA1NzEwMTVDNDBDNQorOjEwRTQ0MDAwNTcxMDU1QzQwMTMxMDA1QzQwNTcxMDE1QzQwNTcxMDFDNworOjEwRTQ1MDAwREM0MDE3MTgxREM0MDU3MTA1NUM0MDU3MTAxREMwMDAzNQorOjEwRTQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMjA4MDQ4MjBBMQorOjEwRTQ3MDAwMTIwMDA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTIwODBCQQorOjEwRTQ4MDAwNDgyMDEyMDgwNDgyMDEyMDgwNDg2MDEyMDgwNDgwMDA5RAorOjEwRTQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDE4MDAwNAorOjEwRTRBMDAwMDYwMDQxODAwMDYwMDAxODAwNDYwMDAxODAwMDYwMDAwNgorOjEwRTRCMDAwMTAwMDA2MTAwMTgwMDA2MDAwMTgyMDQ2MTAwMTgwMDA0NgorOjEwRTRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA0NzIwMTFDODAzMQorOjEwRTREMDAwNDcyMDExQzgwNDcyMDExQzgwMDcyMDExQzgwNDczMDA3MgorOjEwRTRFMDAwMUM4MDQ3MjAxMUNDMDQ3MjAxMUM4MDQ3MjAxMUMwMDAwMQorOjEwRTRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDE4MDBBNAorOjEwRTUwMDAwMDYwMDAxODQwMDYwMDAxODAwMDYwMDAxODAwMDYwNDBFMQorOjEwRTUxMDAwMTgwMDA2MDQwMTgxMDA2MDAwMTgwMDA2MTQwMTgwMDA0NAorOjEwRTUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA0MjIwMTA4ODAzNAorOjEwRTUzMDAwNDI3MDEwOEMwNDIyMDEwOEMwMDIyMDEwODgwNDIyMDBCRQorOjEwRTU0MDAwMDg4MDQyNTAxMDA4MDQyMjAxMDkwMDQyNDAxMDgwMDA1NworOjEwRTU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRTA0NEE4MTEyQTAwQworOjEwRTU2MDAwNDRBODExMkEwNDRBODExMkEwMDRBODExMkEwNDRCODA0RAorOjEwRTU3MDAwMTJBMDQ0ODgwMTJFMDQ0QTgxMTIyMDA0OTgwMTAwMDA1MAorOjEwRTU4MDAwMDAwMDAwMDAwMDAwMDAwMDA4QzAwRTAwNTMwMDE0QzA4RQorOjEwRTU5MDAwMDUzMDAxNEMwMDUzMDAxNEUwMDUzMDAxNEMwMDUzMDBERAorOjEwRTVBMDAwMDRDMDA1MzAwMDRDMDAwMzAwMTRDMDA1MzAwMDQwMTBDQQorOjEwRTVCMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzAwNDAwNDAwMDEwMDAzRgorOjEwRTVDMDAwMDQ1ODAxMDQwMDQwMDAxMDAwMDQwMDAxMDAwMDQxMDA1NAorOjEwRTVEMDAwMDQwMDQ0NTgxMDQ0MDAwMDAwMTE4MDA0NTAxMDQwMzBFMgorOjEwRTVFMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzA0MDAyMDAwMDgwMDBBMQorOjEwRTVGMDAwMjAwMDA4MDA0MDAwMDAwMDAwMjAwMDA4MDAwMjAwMDA4OQorOjEwRTYwMDAwODQwMDAwMDAwODQwMDIwMDAwODAwMDIwMDAwODQwMzAyNAorOjEwRTYxMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzA0MDAwNjAwMTE4MDA3OQorOjEwRTYyMDAwNDYwMDAxODAwNjYwMDE5ODAwNDYwMDExODAwNDYwMDFFOAorOjEwRTYzMDAwMTgwMDQ2MDAxMTgwMDQyMDAxMTgwMDY2MDAxMTgwMzA4NworOjEwRTY0MDAwMDAwMDAwMDAwMDAwMDAwMDEwMDE0MDAwNjAwMDk4MDA4MQorOjEwRTY1MDAwMjYwMDA5ODAwMjYwMDE5ODAwMDYwMDBDODAwMjYwMDAxQworOjEwRTY2MDAwMTgwMDA2MDAwMTgwMDI2MDAwOTg4MDA2MDAwMTgyMDAwOAorOjEwRTY3MDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MjAwMzA4MTBDMjBGNgorOjEwRTY4MDAwNDMwODEwQzIyNDMwODE4QzIwMDMwODEwQzIwNDIwODA2QgorOjEwRTY5MDAwMEMyMDAzMDgxOEMyMDQzMDgxMEMyMDQzMDgxOEMwMTE1NAorOjEwRTZBMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMzAwMDBDMDA5RQorOjEwRTZCMDAwMDMwMDAwQzA0MDMwMDAwQzAwMDMwMDAwODAwMDMwMDA2OAorOjEwRTZDMDAwMEMwMDAzMjAwMEMwMDAzMDAwMEMwMDAzMjAwMEMwMDAzQworOjEwRTZEMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDEwMjEwMzA4MDBDMjAwQgorOjEwRTZFMDAwMDMwODAwQzIwMDMwODAwQzIwMDMwODAwQzIwMTIwODAxMworOjEwRTZGMDAwMEMyMDAzMkMwMEMyMDAzMDgwMEMzMDQzMkMwMEMwMDBFMgorOjEwRTcwMDAwNDAwMDAwMDAwMDAwMDAwMDQwNDU0MjA0NjA4MTE4MjBFNQorOjEwRTcxMDAwNDYwODExODIwNDYwODAxODIwNDYwODExODIwNDYwODEzNgorOjEwRTcyMDAwMTgyMDQ2MEMxMUMyMDQ2MDgxMTgzMDQ2MEMxMUMwMTEyQgorOjEwRTczMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDE0MjAwMjA4MDA4MjAzRQorOjEwRTc0MDAwMDIyODAwODIwMDIwODAwODIwMDIwODAwODIwMDIwODAyOQorOjEwRTc1MDAwMDgyMDAyMDgwMTgyMDAyMDgwMDgyMDAzMDgwMTgwMDBCMAorOjEwRTc2MDAwMDAwMDAwMDAwMDAwMDAwMDUwMDE0MjA0NjA4MTE4MjBGOQorOjEwRTc3MDAwNDYyODExODIwNDYwODAxODIwNDYwODExODIwNDYwODFCNgorOjEwRTc4MDAwMTgyMDQ2MDgxMDgyMDQ2MDgxMTgyMDQzMDgxMDgwMDA3OQorOjEwRTc5MDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MDA0NTAwMTE0MDA0QgorOjEwRTdBMDAwNDUwMDExNDAyNTAwMDAxNDAwNDUwMDExNDAwNDUwMDFBRgorOjEwRTdCMDAwMTQwMDQ1MDAwMDQwMDQ1MDAxNDAwMDAxMDAwMDQyMTFENworOjEwRTdDMDAwNTAwMDAwMDAwMDAwMDAwMDQ4MDAwNjAwNDE4MDEwNjA3QQorOjEwRTdEMDAwMDQxODAxMDYwMDQxODAxMDYwMDQxODAxMDYwMDQxODAwMQorOjEwRTdFMDAwMTA2MDA0MTgwMTA2MDA0MTgwMTA2MDA0MTgwMTAwMDA0OAorOjEwRTdGMDAwMDAwMDAwMDAwMDAwMDAwMDQ4MDAwMjA1MDA4MDQwMjFFOQorOjEwRTgwMDAwMTAwODA0MDAwMTAwODA0MDIwMTAwODA0MDIwMTAwODA2QworOjEwRTgxMDAwNDAyMDUwMDgxNDAyMTEwMDg0NDAyMDEwMDgxNDAwMDAwOQorOjEwRTgyMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0NjAxNTE4MEQ0NjAxNworOjEwRTgzMDAwMzUxODBENDYwMzUxODBENDYwMTUxODBENDYwMzUxODBEQworOjEwRTg0MDAwNTQ2MDE1MTgwRDQ2MDM1MTgwRDQ2MDM1MTgwRDQwMTFFMQorOjEwRTg1MDAwNTAwMDAwMDAwMDAwMDAwMDAwMDE0NjA0NzE4MTFDNjBBRgorOjEwRTg2MDAwNDUxODExRDYwNDcxODExQzYwNjcxODExQzYwNDcxODFBNgorOjEwRTg3MDAwOUM2MDQ3MTgxMUM2MDQ3MTgxMUM2MDY3MTgxMUMwMDBBNAorOjEwRTg4MDAwMDAwMDAwMDAwMDAwMDAwMDQwMDU0NjAyNzE4MDlDNjAwRQorOjEwRTg5MDAwMjcxODA5QzYwMDcxODA5QzYwNjcxODA5QzYwMjcxODAzQworOjEwRThBMDAwOUM2MTI3MTgwMUM2MDI3MTgwOUM2MDA3MTgwMUMwMDA5NgorOjEwRThCMDAwMDAwMDAwMDAwMDAwMDAwMDUwNDU0NjA1NzE4MTVDNjBDQQorOjEwRThDMDAwNTcxODU1RDYwMTcxODE1QzYwNTcxODE1QzYwNTcxODFCRQorOjEwRThEMDAwNUM2MDU3MTgxOEM2MDU3MTgxNUM2MDQzMTgxODgyMTE3NgorOjEwRThFMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDQ1MjAxMjA4MDQ4MjAzOQorOjEwRThGMDAwMTI0ODA0OTAwMTIwODA0OTIwMTIwODA0ODIwMTI0ODBEQgorOjEwRTkwMDAwNDgyMDEyNDgwMDkyMDEyMDgwNDgyMDE3NDgwNDgwMDFDNgorOjEwRTkxMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwNjAwNjE4MDE4NjA1OAorOjEwRTkyMDAwMDYzQzAxODYwMDYxODAxODYwNDYxODAxODYwMDYxODBGRgorOjEwRTkzMDAwMTg2MDA2MTgwMTg2MDA2MTgwMTg2MDQ2MTgwMTgwMDE4MQorOjEwRTk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDE2MDA0NzgwMTFFMDA4QgorOjEwRTk1MDAwNDc4MDExRTAyNDc4MDExRTAwMDc4MDExRTAwNDc4MDE0RgorOjEwRTk2MDAwMUUwMDQ3ODAxMUUwMDQzODAxMUUwMDQ3ODAxMUMwMTFDRAorOjEwRTk3MDAwNTAwMDAwMDAwMDAwMDAwMDQwMDExMjAwNjA4MDE4MjBEQworOjEwRTk4MDAwMDY0ODAxOTIwMDYwODAxOTIwMDYwODAxODIwMDY0ODAxOAorOjEwRTk5MDAwMTgyMDA2NDgwMTkzMDAyMDgwMTgyMDA2NDgwMTgwMDBCNgorOjEwRTlBMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDE0MjA0MjA4MTA4MjAxNworOjEwRTlCMDAwNDIwODEwODIwNDIwODEwODIwMDIwODEwODIwNDIwODE2RAorOjEwRTlDMDAwMDgyMDQyMDgxMDhBMDQ2MDgxMDgyMDQyMDgxMDgwMDA1NAorOjEwRTlEMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MjA0NDA4MTEwMjA3QgorOjEwRTlFMDAwNDQwODExMDIwNDQwODExMDIwMDQwODExMDIwNDQwODFFRgorOjEwRTlGMDAwMTAyMTQ0MDgwMTAyMDQ1MDgxMTAyMDA0MDgwMTAwMTE3NAorOjEwRUEwMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDAwMzAwNTBDMDE0MzAxRgorOjEwRUExMDAwMDUwQzAxNDMwMDUwQzAxNDMwMDUwQzAxNDMwMDUwODAyOAorOjEwRUEyMDAwMTQzMDA1MDgwMTRBMDA1MEMwMTQzMDA1MDgwMTQwMDBBOAorOjEwRUEzMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwODAwNDIwMDEwODBCQworOjEwRUE0MDAwMDQyMDAxMDgwMDQyMDAxMDgwMDQyMDAxMDgwMDQyMDA1OAorOjEwRUE1MDAwMTA4MDA0MjAxMTAwMDA0MjAwMTA4MDA0MjAxMTAwMTBEQQorOjEwRUE2MDAwNDAwMDAwMDAwMDAwMDAwMDQwNDU0MjAyMDA4MDgwMjA3RAorOjEwRUE3MDAwMjAwODA4MDIwMDAwODA4MDIwMjAwODA4MDIwMjAwODA5MAorOjEwRUE4MDAwODAyMDIwMDgwODAyMDIwMDgwODAyMDIwMDgwODAwMTE1MQorOjEwRUE5MDAwNTAwMDAwMDAwMDAwMDAwMDQwMDE0MDAwNjAwMTE4MDAyQworOjEwRUFBMDAwNDYwMDExODAwNjYwMDExODAwNDYwMDExODAwNDYwMDFENAorOjEwRUFCMDAwMTgwMDQ2MDAxMTgwMDQ2MDAxMTgwMDY2MDAxMTgwMTBFMworOjEwRUFDMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDE0MDAyNjQwMDk4MDBDNworOjEwRUFEMDAwMjYwMDA5OTAwNjYwMDE5ODAwMjY0MDA5ODAwMjYwMDAyNworOjEwRUFFMDAwOTgwMDI2MDAwMDkwMDI2MDAwOTgwMDA3MDAwMTgwMDA1NgorOjEwRUFGMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU2MDA0MzgwNTBFMDBFMgorOjEwRUIwMDAwNDM4MDEwRTA0NDM4MDEwRTAwNDM4MDEwRTAwNDM4MDFENworOjEwRUIxMDAwMEUwMDQzODAxOEEwMDQzODAxMEUwMDQ2ODAxODgwMTFCMgorOjEwRUIyMDAwNTAwMDAwMDAwMDAwMDAwMDUwMDAwMTAwMzA0MDBDMTBCOAorOjEwRUIzMDAwMDMwNDAwQzUwMDMwNDAwQzEwMDMxNDAwQzEwMDMwNDAzNQorOjEwRUI0MDAwMEMxMDAzMDQwMDg3NDAzMDQwMEMxMDAyMDQwMDgwMDBDOQorOjEwRUI1MDAwMDAwMDAwMDAwMDAwMDAwMDQwMDQwNTAwMzU0MDBDNTA5QgorOjEwRUI2MDAwMDMxNDAwRDUwNDMxNDEwQzUwMDM1QzAwQzUwMDMxMDA5MgorOjEwRUI3MDAwMEM1MDAzMTAwMDk0MDAzMTQwMEM1MDQzMTAwMEMyMDBCMAorOjEwRUI4MDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MzA1MjBDMTE4MzA4RgorOjEwRUI5MDAwNDYwQzExOTcwMDYwQzAxODMwNDYxQzExODMwNDYwQzFGOAorOjEwRUJBMDAwMTgzMDUyMEMxMTg3MDQ2MEMxMTgzMDQ2MEMxMTgwMTFDNgorOjEwRUJCMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDEwMDAwMjE0MDA4MDA1QgorOjEwRUJDMDAwMDIwMDAwODAwMDIwMDAwODAwMDIwMDAwODAwMDIwMDBGOQorOjEwRUJEMDAwMDgwMDAyMDAwMDgwMDAyMDAwMDgwMDAyMDAwMDgwMDAwMQorOjEwRUJFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDE0ODQ0MjIwMTE4ODQ5OQorOjEwRUJGMDAwNDYyMTExOTgwMDYyMTAxODg0NDQyMDExODg0NDYyMTE0MworOjEwRUMwMDAwMTg4NDQyMjExMTgwNDQ2MjExMTg4NDQ2MjExMTgwMDAyOQorOjEwRUMxMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MDA0NTAxMTE0MDRCMgorOjEwRUMyMDAwNDUwMDExNDEwMDUwMTAxNDAwNDUwMTExNDA0NDUwMTE5RAorOjEwRUMzMDAwMTQwNDQ1MDEwMTQwNDQ1MDExMTQwNDA1MDEwMTQwMTEyMAorOjEwRUM0MDAwNTAwMDAwMDAwMDAwMDAwMDQwMDAwODIwNDIwODEwODIzMAorOjEwRUM1MDAwMDQyMDAxMDgyMDQyMDgxMDgyMDQyMDgxMDgyMDQyMDg3NAorOjEwRUM2MDAwMTA4MjA0MjI4MTA4MjA1MjA4MTA4QTA0MjI4MTAwMDBBOAorOjEwRUM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwQTAxMDI4NDQwQTExRQorOjEwRUM4MDAwMTAyODAwMEEwMTAyODA0MEEwMTAyODA0MEEwMTAyODAxNgorOjEwRUM5MDAwNDBBMDEwMkMxNDBBMDAwMjgwNDBCMDEwMkMxNDAwMDA3OAorOjEwRUNBMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0RDAzNTM0MEQ0RDA1OAorOjEwRUNCMDAwMzUzMDBDNEQwMzUzNDBENEQwMzUzNDBENEQwMzUzNDAwMworOjEwRUNDMDAwRDREMDM1MzQwRDREMDIxMzQwRDREMDM1MzQwRDQwMTExRAorOjEwRUNEMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDEwODA0NzIwMTFDODA4OAorOjEwRUNFMDAwNDcyMDE1QzgwNDcyMDExQzgwNDcyMDExQzgwNDcyMTEwNgorOjEwRUNGMDAwMUM4MDQ3MjYxMUM4NDQ3MjAxMUM5MDY3MjYxMUMwMDA3MQorOjEwRUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMzA4NDBDNjEyMzE4RgorOjEwRUQxMDAwODQ4QzAxMDMwODQ4QzYxMjMwODQwQzYxMjMxODQ4QzI1MQorOjEwRUQyMDAwMTIzMTg0OEMwMTAzMDg0OEM2MTIzMTA0OEMwMTAwMDBBMgorOjEwRUQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGNEZGRkQzRkY3NQorOjEwRUQ0MDAwRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZGOQorOjEwRUQ1MDAwRDNGRkY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGRDAwMDBBMworOjEwRUQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwRUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwRUQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwRUQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyREZCMEZCNkMyQ0RGNworOjEwRURBMDAwQjBCN0ZEM0ZGQjBCMzZDMkRGQjBGQjZDMkNEQjBCN0UzQworOjEwRURCMDAwQzJDREIwQjdGRDNGRkIwQjM2QzJDREY0QjdGRDAwMDBBRQorOjEwRURDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzM0ZDNEZDRjEzMzNCMAorOjEwRUREMDAwQzRDRkZEM0ZGQzRDQ0YxMzNGQzRGQ0YxMzMzQzRDRkY5MAorOjEwRURFMDAwMTMzM0M0Q0ZGRDNGRkM0Q0NGMTMzM0Y0Q0ZGRDAwMDBGMQorOjEwRURGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQjdFNEVERjkzQjdFMworOjEwRUUwMDAwRTRFREY5M0ZGRTRFREY5M0I3RTRFREY5M0I3RTRFQzdFQworOjEwRUUxMDAwOTNCN0U0RUM2MTIzMUU0RURGOTNCNzg0RUM2MTAwMDBFRQorOjEwRUUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1MjRBMTRBMjRFQQorOjEwRUUzMDAwNjMwMTE0MDI0NDAwODEwQjI4NzEwMjEwODI0MDM4MTFEMgorOjEwRUU0MDAwNDEwNDUwMDgxODgyODczODMxQzMyQzUyMEExMDAwMDA0MAorOjEwRUU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQ1MTI4MTQ0ODAwRQorOjEwRUU2MDAwNzEyMTFDMEEwNzFBODEwMkEwNTIyMDE0NDgwNzEyODEzRQorOjEwRUU3MDAwQzY4MDYwMjAwODg4NDcwMjAxNEE4MDcwMjAxMDAwMDA4OAorOjEwRUU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkM1MkMwMTRBMDA0NAorOjEwRUU5MDAwNTIwOTFDODAwNzI0MjEwODA4NzEwMjEwODA0NTIwQTExNgorOjEwRUVBMDAwNDkyODUyMDExNEMwNDUwMDkxQzQwMDcyMDIxMDAwMDBBQworOjEwRUVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjA3MjAwMUMxMDA2NworOjEwRUVDMDAwNzEwOTEwODAwNzAwMDEwMTAwNzAwODE4ODAwNzAwMDExNworOjEwRUVEMDAwODkyMDUyMDEwQzgwNDYzMDgxNDUwNDYwMDAxMDAwMDBGQQorOjEwRUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMyMDIyMDAwODhBRQorOjEwRUVGMDAwMjAyMjAwMDhDMjIyODA0MDg4MDIyMjAwMDg4MjBBQTA0NAorOjEwRUYwMDAwMENBODAyMjIwMDA4ODAwQTAwODA4QzAyMjIwMDAwMDA2NworOjEwRUYxMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMjQzMDAwMDQwMjA0NAorOjEwRUYyMDAwMzAwODA0NDA0MTMwMTBDODAwMDAwMDAwMDIwMzAwMTAwNworOjEwRUYzMDAwQzAwMDExMDgwMEMyNDMxMDgwQzAyMDAxMDgwMDAyMDA3OAorOjEwRUY0MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwOEMzMEEyMEMxOEM3NworOjEwRUY1MDAwMTIyMjA0ODgwMTM2MjBDMzA4MTIyODA0MDgwMTA0MDA4NAorOjEwRUY2MDAwNEFBODIyMDEwNEM4NDEyNjMwQzA4ODAyMjEwMDAyMDBCQworOjEwRUY3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODAwMEExMEMxODAyNgorOjEwRUY4MDAwMzIyMTBDODg0MzAyODA0NDgwMTIyOTA0MDg0MjBBOTBFRQorOjEwRUY5MDAwOEE4MDAwMjAwNDQ4MDMwQTEwODI4MDAwMjAwMDAyMDBCQQorOjEwRUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTg3MDJBMTgwQUMwMQorOjEwRUZCMDAwNDMyOTE0OEE4NDAyQTEwMEFDNDEyMDEwMDgwNjI2MzE5RQorOjEwRUZDMDAwODBBNDYwMjAxNDRBNDQzMjgxODFBQzYwMkExODAyMDA3NworOjEwRUZEMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODA3MjIwMUM1ODBCMgorOjEwRUZFMDAwNzMyMTFDQzgwNzJBMDEwQzgwNzIyMDEwNDg0NzI2MTE4MworOjEwRUZGMDAwQzU4MDczMjAxQzg4MDcyQTExNDk4MDcwMjAxNDAyMDBFNAorOjEwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDQ1MTAzMUM5MEM5RAorOjEwRjAxMDAwNzMwMjFDQzA0NzA0MDEwQTBDNTEwQTEwODI0NzIwMzFCOAorOjEwRjAyMDAwQzgwMDcyMDIxQzQwMDUzMDExQzQwMDcyMDExODAyMDBCMQorOjEwRjAzMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTAxMDA2MjQwMTQ1MDQzNAorOjEwRjA0MDAwNTE4MTE4OTA0NzE0MDEwNDA0NzE4ODEwMTIwNTM0MDE4RAorOjEwRjA1MDAwNDQwNDUxNDAxOEQwMDczODAxQzQwNDUyMDExNEMyMDRCQQorOjEwRjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg3MDAyMTg5MEM2MworOjEwRjA3MDAwNjAwMTFDRDA0NTI0MDFDMTBDNDIwMTAwMDBDNTIwMzFCMworOjEwRjA4MDAwNDEwODQwMDAxODgwNDUwMDIxNDEwQzcwNDIxQ0MyMDAxQworOjEwRjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMUM4MEM0MjBFRAorOjEwRjBBMDAwMzEwODEwNDI0MjA4ODBDNjIwMzEwOTAwMjAwMzFDOTAxQworOjEwRjBCMDAwQzQyMDAxNDkwQzQyNDMxMDgwNDQyMDMxMDgxMDAwMDA1NAorOjEwRjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDgzMjAzMDQ4MENFOQorOjEwRjBEMDAwMzI0MDEwOTA4MTI0MjBDODA0MzI0MDEwMjBDMzIwODA4OAorOjEwRjBFMDAwQzgwMDAyNEEwQ0EwMDEyNDEwQzgwODMyNDExMDAwMDBEOAorOjEwRjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTA5MDAzMDAwMEM5MDRBMAorOjEwRjEwMDAwMzA0MDAwOTAwMDIwMDA4MDAwMTA0MDEwMDA0MDIwMTA4RgorOjEwRjExMDAwQzIwMDAwODAwODIwNDMwODEwODEwMDMyNDAwQ0MwMDQ2NworOjEwRjEyMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAzMDAwNDAwMDAwMDA0RgorOjEwRjEzMDAwMTAwMDAwRjAxMDIwMDAwMDAwMTAwMDAwRjAxMDgwNDBDRgorOjEwRjE0MDAwMDAwMDAwNDAwMEYwMTA5MDgwMDAwMDAwMDAwMEMwMDBBRgorOjEwRjE1MDAwMDAwMDAwMDAwMDAwMDAwMDNDM0MxMDgwOTA0MDAwMDBENworOjEwRjE2MDAwMDA4MDEwOTBBMDkwMDAwMDAwMDAwMDEwOTA4MDgwMDBBRgorOjEwRjE3MDAwMDAwMDAwMDAxMDkwODA5MDAwMDAwMDAwNDAxMDhGMEZGMQorOjEwRjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNEM2QkEwNkMwMUNGOQorOjEwRjE5MDAwNDkyODYxMTQyQjFDMEU0MDNGRDlCRkQ5QUFCQzFBNUY2NQorOjEwRjFBMDAwMDAxMEE2NTAzQjYxQjMyNUJDNDAxOUJGRkZFOTgwMDBBOQorOjEwRjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDkyMTQ5NDgwMEM3OQorOjEwRjFDMDAwMDczRjJCOTQ4NjE0ODQ4MDI4MDAwMDQ5MTQwNDg2MTI3QgorOjEwRjFEMDAwODAwMDQxMjczNEQwOTA4NDkyMDAyRDhBMjExRTgwMDAyNworOjEwRjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QTI3NQorOjEwRjFGMDAwQjEwMTAxMDAwMDAwMDAwODg0QjE3ODI4MDAwMDAwMDA3RgorOjEwRjIwMDAwMDhCMTMyMTQxNDAwMDAwMDAwMDhBODIzNTQyMTQwMDA2MworOjEwRjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBGMgorOjEwRjIyMDAwMDAwMDAwMkZGRkZFRjdDMDAwMDAwMDAwMkZEN0ZFRUYwOAorOjEwRjIzMDAwQzAwMDAwMDAwMDNGRkY3RkZGQzAwMDAwMDAwMDAwMDA5MgorOjEwRjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBDMgorOjEwRjI1MDAwMDAwMDAwMEZFRjc3RkZDMDAwMDAwMDAwM0VGRkZFRUY1MAorOjEwRjI2MDAwNDAwMDAwMDAwMDNGRkZCRkZGNDAwMDAwMDAwMDAwMDAyMgorOjEwRjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA5MgorOjEwRjI4MDAwMDAwMDAwM0ZGRkRGRkZDMDAwMDAwMDAwM0ZGRkZGRkY2NgorOjEwRjI5MDAwQzAwMDAwMDAwMDNGN0YyRkZGQzAwMDAwMDAwMDAwMDAwMgorOjEwRjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA2MgorOjEwRjJCMDAwMDAwMDAwMUZGRkZGRUZDMDAwMDAwMDAwMUZFRkVGRUY5NgorOjEwRjJDMDAwQzAwMDAwMDAwMDJGRkZGRkZGQzAwMDAwMDAwMDAwMDA5MgorOjEwRjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDAzMgorOjEwRjJFMDAwMDAwMDAwM0ZGRkVGRkZDMDAwMDAwMDAwMkZBRkRGRkY3NgorOjEwRjJGMDAwQzAwMDAwMDAwMDNGRUZGRkY3QzAwMDAwMDAwMDAwMDA2QQorOjEwRjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDAwMQorOjEwRjMxMDAwMDAwMDAwM0ZERkRGRkZDMDAwMDAwMDAwM0ZGRkZGRkZGNQorOjEwRjMyMDAwQzAwMDAwMDAwMDFGRkZERkZGQzAwMDAwMDAwMDAwMDA2MQorOjEwRjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkM0MjRBMTAwMkMxNgorOjEwRjM0MDAwNTIwQjE4QzI4NjJDQTE4MDM4NjIwQTA4NDBDNDJDQTEzNgorOjEwRjM1MDAwMDgyODQyMEIxNDAwODUxNEExMDgyODQzMEExMDAwMDA1NQorOjEwRjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA0MTIwMTAzODBGQgorOjEwRjM3MDAwNjEyMDEwMDgwNzEyNDE0MjgwNzAyMDFDMDgwNDFBMDEwNQorOjEwRjM4MDAwODQ4MTQwMjAxODA4NDYzNjgxMDU4MDYzMjAxMDAwMDFFMgorOjEwRjM5MDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0MjQyMTAwMEMxOAorOjEwRjNBMDAwNTIwMjE0MDA4NzI4MjE4MTA4NzIwNjFDODI4NDIwMjFDMQorOjEwRjNCMDAwNDgxODQyMDM1NDgwNDUzMDI1NEExODUzMDIxMDAwMDE3MgorOjEwRjNDMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwODA0MjIwMTAxODA2RAorOjEwRjNEMDAwNDIyMDE4Qzg0NDIyMDE4MDg0NDIyMDFDODgwNDIyMDE1MworOjEwRjNFMDAwMDA4MDQwMjAxMDg4NDQzNjAxNDA4MDQxMDAxMDAwMDAxOQorOjEwRjNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwMDgyMDAwMEMxOQorOjEwRjQwMDAwMjIwMzA0NDA4MTAwMjA4NDA4MDMwMDAwODBDMjAwMjAwMQorOjEwRjQxMDAwQzQwODAwMDMwODg4ODIxNkEwNDA4ODMyMjI4MDAwMDBCOQorOjEwRjQyMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMjAxMDA4MDA0MjAyRAorOjEwRjQzMDAwMTAwODBDQzIxMjEwODRDODIyMTIwODA0MDIwMzAwODhBQgorOjEwRjQ0MDAwMDAyMTAwMEMwQzQwNDEzMDAwODQyMDEwMDgwMDAyMDAxNAorOjEwRjQ1MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODgyMDYyMDA4OEM2MAorOjEwRjQ2MDAwMzIyMjBDODg4MTI2MjA0RDg4MjMyMjgwODg4MzA2MjAyMgorOjEwRjQ3MDAwMDg4ODAwMjMwNDhBODEzNjIwNEI4ODMyMjIwMDAwMDA0RAorOjEwRjQ4MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODAyMDIwMDA5ODBERgorOjEwRjQ5MDAwMzIyMDA0ODg2MDIyMDA4OTg0MDAyMDA4OTgwMDAyMDAzRAorOjEwRjRBMDAwMDA4MDAwMjAwMDA4MDIzQTgwNDg4MDMwMjAwMDAyMDBERQorOjEwRjRCMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwQUM0MUFBMTgwQTg5MworOjEwRjRDMDAwNDEyQTEwQ0FDNzFBQTEwNEFENzEyQTE4NEFENDA2QjEzQworOjEwRjREMDAwMDBBODcxMkExMDA4ODQyNjI5MDZBQzUyMkExMDAyMDBCRQorOjEwRjRFMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODA0MkEwMTQxODAxQworOjEwRjRGMDAwNDIyMDFDMDAwNDBBMDEwOTg0NTEyMDFDODg0NDAyMDE5NgorOjEwRjUwMDAwMDg4MDQwMjAxMDRBNDcwMjAxNDg4MDYzMjAxMDAyMDAxMgorOjEwRjUxMDAwODAwMDAwMDAwMDAwMDAwMDA4MDAwMEM0MTAyMTgxMENFMQorOjEwRjUyMDAwNDEwMjBDMDBDMDIwNjEwRDBFNzIwMjFDNDBDNDA4MzE2MworOjEwRjUzMDAwMDQxODQyMDIxMDgwODcyMEIxQzQwQzUzMDIxMDAwMDA0RQorOjEwRjU0MDAwMDAwMDAwMDAwMDAwMDAwMDA4MTAyMDA3MjQwMUNDMDA4QgorOjEwRjU1MDAwNzI0MDE0MDAwNDI0MDEwODAwNzM0MTEwQzAwNzMwMTFFOAorOjEwRjU2MDAwQ0MwMDcxMDExMDAyMDQyMDgxNDYxMDQyNDAxMDAyMDRCOAorOjEwRjU3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMEM1MTAyMTAwMDg4NQorOjEwRjU4MDAwNjIwMjFDOTBDNTI0MjEwMDBDNzA4MjFDMTBDNDIwMzEyMgorOjEwRjU5MDAwODgwMjQwMDYxQzAwODUwMEExMDAwQzQwNDIwMDAyMDBDOQorOjEwRjVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMjA1MTQ4MDAxMjA3RgorOjEwRjVCMDAwMzAwODBDNDIwNjAwODAwMTI0NTEwODBDMDI0MTAwODBGMgorOjEwRjVDMDAwNEMyMDAwMDgwQzMwNDIwNDAwMDQyMDAwMDgwMDAwMDAxOQorOjEwRjVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMEM2MjQyMDAwMEMwNQorOjEwRjVFMDAwMzJDMjA0ODBDNzMwMjAwMDBDNTNDMjA0MTBDMjI4NzBGRAorOjEwRjVGMDAwMEMwOTAyMDI0QzgwODEwNDMwMDkwQzAyNDIxMDAwMDAwOAorOjEwRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTA4MDAxMzgwMDAyMDAyRgorOjEwRjYxMDAwMTI0MDBDMjAwNzM0MDQwMjAwNjMwMTA4MTAwMDI0MTA3QgorOjEwRjYyMDAwMDQwMDAyMDEwNDgyMDEwODgwMDkxMDAyNDAxMDAwMDQ1NQorOjEwRjYzMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDAzMDIwMTA4MDAwMDBCQQorOjEwRjY0MDAwMjA4MDAwRjAyMDEwODAwMDAwMjA4MDAwRDA4MDAwMDA4QQorOjEwRjY1MDAwNDAwMDAwMDAwMDMwMTAwMDgwMDAwMDAwMDAwMENDNDA5RQorOjEwRjY2MDAwMDAwMDAwMDAwMDAwMDAwMDNDM0MxMDgwODAwMDAwMDAxMgorOjEwRjY3MDAwMDAwMDEwOTA4MDgwMDAwMDAwMDAwMDEwOTA4MDAwOTAzQQorOjEwRjY4MDAwODAwMDEwMDAwMDEwQTA4MDAwMDAwMDIwMDAxMDhDMDhGNgorOjEwRjY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNDFBQkUxNzgwMDBDNworOjEwRjZBMDAwM0U0MDI2NkZCQUUzMjQ4MDAwMTY1OUJEODI4MTgyRDg3RAorOjEwRjZCMDAwODAwMDAwMTk5OTg2ODA2NDgwQzAzRkQ5OTk4MDAwMDEzQworOjEwRjZDMDAwRjAwMDAwMDAwMDAwMDAwMDAwMDAwNjE2MDI5NDAwMTY4MgorOjEwRjZEMDAwQzAxNjk0ODI5MDE2MTA4MDIxMTgyODI4MDIwQTAyMDg2OQorOjEwRjZFMDAwODAwMDAwMDAwMDAyODI4MDE0MDAwMTE0MTFBMDQwMDA3QworOjEwRjZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODQ3RQorOjEwRjcwMDAwMDI4NEE4ODAwMDAwMDAwODkxMjI4NDQxQTIwODI0MDFGQworOjEwRjcxMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDg4NDAxNDQwMTAwMDBFNworOjEwRjcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBERAorOjEwRjczMDAwMDAwMDAwM0VGN0ZGRjdDMDAwMDAwMDAwMkZFN0I3RkYxMgorOjEwRjc0MDAwQzAwMDAwMDAwMDJGRkU3RkY3QzAwMDAwMDAwMDAwMDA5NgorOjEwRjc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBBRAorOjEwRjc2MDAwMDAwMDAwMzZCRkZFREZDMDAwMDAwMDAwMEZGN0RGRkYyMworOjEwRjc3MDAwQzAwMDAwMDAwMDNEQjdCN0VGQzAwMDAwMDAwMDAwMDA2RgorOjEwRjc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA3RAorOjEwRjc5MDAwMDAwMDAwMUZERkRGRkZDMDAwMDAwMDAwMEZERkRGRkYwMQorOjEwRjdBMDAwQzAwMDAwMDAwMDNGRUZGRkZGQzAwMDAwMDAwMDAwMDBBRAorOjEwRjdCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA0RAorOjEwRjdDMDAwMDAwMDAwM0ZCRjdGRkZDMDAwMDAwMDAwM0ZGRjdGRjc0OQorOjEwRjdEMDAwQzAwMDAwMDAwMDNGREZGRkZGQzAwMDAwMDAwMDAwMDA4RAorOjEwRjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDAxRAorOjEwRjdGMDAwMDAwMDAwM0Y3RUZGRkY0MDAwMDAwMDAwM0ZGRUZGRkZEMworOjEwRjgwMDAwQzAwMDAwMDAwMDNGRkZGRkZGQzAwMDAwMDAwMDAwMDAzQworOjEwRjgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBFQworOjEwRjgyMDAwMDAwMDAwMzdGRjZGRkZDMDAwMDAwMDAwM0ZGRkZGRkYzOAorOjEwRjgzMDAwQzAwMDAwMDAwMDNGRkZGRkZGQzAwMDAwMDAwMDAwMDAwQworOjEwRjg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOAorOjEwRjg1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjEwRjg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OAorOjEwRjg3MDAwMDAwMDAwMDAwMDAwMDAwMDMwMDAyMDAxMDIwMDAwMDAzNQorOjEwRjg4MDAwMzAwMDQzMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOQorOjEwRjg5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjEwRjhBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OAorOjEwRjhCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OAorOjEwRjhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOAorOjEwRjhEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjEwRjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOAorOjEwRjhGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDAwMDAwMDAwMzBFOAorOjEwRjkwMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNworOjEwRjkxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjEwRjkyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENworOjEwRjkzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNworOjEwRjk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNworOjEwRjk1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAzMEMwMDBDNworOjEwRjk2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NworOjEwRjk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NworOjEwRjk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwRjk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjEwRjlBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NworOjEwRjlCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAzMEMwMzA0NworOjEwRjlDMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwRjlEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjEwRjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNworOjEwRjlGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNworOjEwRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjEwRkExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDAwMDAwMDAwMEZDOAorOjEwRkEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENgorOjEwRkEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNgorOjEwRkE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwRkE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjEwRkE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NgorOjEwRkE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDAwMDAwMDAwM0Y0OAorOjEwRkE4MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwRkE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjEwRkFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NgorOjEwRkFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NgorOjEwRkFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNgorOjEwRkFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDMwQzAzMEMwMEYyOAorOjEwRkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNgorOjEwRkFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNgorOjEwRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQorOjEwRkIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjEwRkIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENQorOjEwRkIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTM2QjAwQzAwMENGMkM4QworOjEwRkI0MDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwRkI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjEwRkI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQorOjEwRkI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQorOjEwRkI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwRkI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwRjAwMDA0NworOjEwRkJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQorOjEwRkJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQorOjEwRkJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQorOjEwRkJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjEwRkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQorOjEwRkJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDBGMDAwRjAwMzBDNworOjEwRkMwMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwRkMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwRkMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwRkMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAorOjEwRkM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAorOjEwRkM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAzRkMwMDBBNgorOjEwRkM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAorOjEwRkM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAorOjEwRkM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwRkM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjEwRkNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwRkNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDNGQzAzRkMwMzAyNgorOjEwRkNDMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwRkNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwRkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwRkNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwRkQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwRjAwMEZBNworOjEwRkQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwRkQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwRkQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwRkQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwRkQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwRkQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDBGMDAwRjAwM0YyNworOjEwRkQ4MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwRkQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwRkRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwRkRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwRkRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwRkREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDNGQzAzRkMwMEYwNworOjEwRkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwRkRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMgorOjEwRkUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMgorOjEwRkUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwRkUzMDAwMDAwMDAwMDAwMDAwMDAwMDA2MzM1RDgwQzAwMEZEQUM0MworOjEwRkU0MDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwRkU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwRkU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwRkU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwRkU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwRkU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwRkVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwRkVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwRkVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjEwRkVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjEwRkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMgorOjEwRkVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDAwMDAwMDAwMzBFMgorOjEwRkYwMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwRkYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwRkYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMQorOjEwRkYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjEwRkY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwRkY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAzMEMwMDBDMQorOjEwRkY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwRkY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwRkY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwRkY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwRkZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwRkZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAzMEMwMzA0MQorOjEwRkZDMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwRkZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwRkZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwRkZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwODAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwODAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDAwMDAwMDAwMEYzMgorOjEwODAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwODA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwODA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwODA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwODA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwODA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDAwMDAwMDAwM0ZCMgorOjEwODA5MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwODBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwODBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwODBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwODBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwODBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDMwQzAzMEMwMEY5MgorOjEwODBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwODExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwODEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwODEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwODE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMTM3NEMwQzAwMEYwRUM0QworOjEwODE1MDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwODE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwODE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwODE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwODE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwODFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwRjAwMDBCMQorOjEwODFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgorOjEwODFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgorOjEwODFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgorOjEwODFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgorOjEwODFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgorOjEwODIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDBGMDAwRjAwMzAzMAorOjEwODIxMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwODIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwODIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwODI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwODI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwODI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAzRkMwMDAxMAorOjEwODI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwODI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwODI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwODJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwODJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwODJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTk4NjEwODAzMDgyM0Q5MAorOjEwODJEMDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwODJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwODJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwODMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwODMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwODMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwRjAwMEYxMQorOjEwODMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwODM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwODM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwODM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwODM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwODM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDBGMDAwRjAwM0Y5MQorOjEwODM5MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwODNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwODNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwODNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwODNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwODNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDNGQzAzRkMwMEY3MQorOjEwODNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwODQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QworOjEwODQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QworOjEwODQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QworOjEwODQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQworOjEwODQ0MDAwMDAwMDAwMDAwMDAwMDAwMDM3NjUyNUU0ODAwMEIwODhDRgorOjEwODQ1MDAwQUI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwODQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQworOjEwODQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQworOjEwODQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQworOjEwODQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQworOjEwODRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQworOjEwODRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQworOjEwODRDMDAwMDAwMDAwMDAzMDAwMjAwMTAyMDIwMDAwMzAwMDQzMDBFNAorOjEwODREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QworOjEwODRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QworOjEwODRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QworOjEwODUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QgorOjEwODUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QgorOjEwODUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QgorOjEwODUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQgorOjEwODU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjEwODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQgorOjEwODU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQgorOjEwODU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQgorOjEwODU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjEwODU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQgorOjEwODVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQgorOjEwODVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQgorOjEwODVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjEwODVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QgorOjEwODVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QgorOjEwODVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QgorOjEwODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjEwODYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QQorOjEwODYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QQorOjEwODYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQQorOjEwODY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQQorOjEwODY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQQorOjEwODY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQQorOjEwODY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQQorOjEwODY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQQorOjEwODY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQQorOjEwODZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQQorOjEwODZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQQorOjEwODZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQQorOjEwODZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QQorOjEwODZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QQorOjEwODZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QQorOjEwODcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OQorOjEwODcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OQorOjEwODcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OQorOjEwODczMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOQorOjEwODc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOQorOjEwODc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOQorOjEwODc2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOQorOjEwODc3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOQorOjEwODc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOQorOjEwODc5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOQorOjEwODdBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOQorOjEwODdCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOQorOjEwODdDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOQorOjEwODdEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OQorOjEwODdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OQorOjEwODdGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OQorOjEwODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjEwODgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OAorOjEwODgyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OAorOjEwODgzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOAorOjEwODg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjEwODg1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOAorOjEwODg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOAorOjEwODg3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOAorOjEwODg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOAorOjEwODg5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOAorOjEwODhBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOAorOjEwODhCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOAorOjEwODhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjEwODhEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OAorOjEwODhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OAorOjEwODhGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OAorOjEwODkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjEwODkxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NworOjEwODkyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NworOjEwODkzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNworOjEwODk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjEwODk1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNworOjEwODk2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNworOjEwODk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNworOjEwODk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjEwODk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENworOjEwODlBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNworOjEwODlCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNworOjEwODlDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNworOjEwODlEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NworOjEwODlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NworOjEwODlGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwOEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjEwOEExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NgorOjEwOEEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NgorOjEwOEEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNgorOjEwOEE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjEwOEE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNgorOjEwOEE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNgorOjEwOEE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjEwOEE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjEwOEE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENgorOjEwOEFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNgorOjEwOEFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwOEFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjEwOEFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NgorOjEwOEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NgorOjEwOEFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NgorOjEwOEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjEwOEIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQorOjEwOEIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQorOjEwOEIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQorOjEwOEI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjEwOEI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQorOjEwOEI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNQorOjEwOEI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQorOjEwOEI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjEwOEI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENQorOjEwOEJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNQorOjEwOEJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNQorOjEwOEJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjEwOEJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQorOjEwOEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQorOjEwOEJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwOEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjEwOEMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwOEMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NAorOjEwOEMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwOEM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwOEM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwOEM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwOEM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwOEM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwOEM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwOENBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAorOjEwOENCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAorOjEwOENDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjEwOENEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAorOjEwOENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAorOjEwOENGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwOEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwOEQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwOEQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwOEQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwOEQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjEwOEQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwOEQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwOEQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwOEQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjEwOEQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwOERBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwOERCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwOERDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwOEREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwOERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwOERGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MworOjEwOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwOEUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwOEUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwOEUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjEwOEU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjEwOEU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMgorOjEwOEU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMgorOjEwOEU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMgorOjEwOEU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMgorOjEwOEU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwOEVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMgorOjEwOEVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMgorOjEwOEVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwOEVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwOEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwOEVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwOEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwOEYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwOEYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwOEYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwOEY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwOEY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwOEY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwOEY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwOEY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwOEY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMQorOjEwOEZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjEwOEZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwOEZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMQorOjEwOEZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwOEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwOEZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwOTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAorOjEwOTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwOTAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwOTA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwOTA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwOTA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwOTA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAorOjEwOTA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwOTA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwOTBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwOTBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwOTBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwOTBEMDAwMzAwMDAwMDEwMDAwNDQ3MjMwMDA4MDAxMDAwMDAwMDNGNQorOjEwOTBFMDAwMzAwMDQwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwOTBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAorOjEwOTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwOTExMDAwMDAwMDAwMDAzMDAwODAwMTAwMDAwMDA1MzAwMEEwMDFDOAorOjEwOTEyMDAwMDAwMDAwMDAzMDAwMDAwMTAwMDBFMTVBMDAwMDAwMDBEMworOjBDOTEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzowMDAwMDAwMUZGCisvKgorICogVGhpcyBmaXJtd2FyZSBpcyBmb3IgdGhlIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZQorICoKKyAqIFRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIEVtYWdpYworICogYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkCisgKiBvciBwdWJsaWMgYWNjZXNzIHRvIHRoaXMgZmlybXdhcmUgd2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQgb2YgRW1hZ2ljLAorICogYW5kIHdoaWNoIG1heSBub3QgYmUgcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0bworICogYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgRW1hZ2ljJ3Mgd3JpdHRlbiBjb25zZW50LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorICogaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisgKiBpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorICoKKyAqIFRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoIHRoZQorICogRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlLiBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZgorICogYW55IGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LAorICogcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4KKyAqCisvLy8gVkVSU0lPTj0xLjEuMS4xMzEKKy8vIERBVEU9MjAwMWRlYzA2CisvLyBQUk9EVUNUPUVNSSAyfDYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VtaTI2L2Zpcm13YXJlLkhFWCBiL2Zpcm13YXJlL2VtaTI2L2Zpcm13YXJlLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2E0MDBlCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZW1pMjYvZmlybXdhcmUuSEVYCkBAIC0wLDAgKzEsMTI2MSBAQAorOjAzMDAwMDAwMDI0MzU2NjIKKzowMzAwMDMwMDAyNEJDREUwCis6MDMwMDBCMDAwMjRCRDJEMworOjAzMDAxMzAwMDI0QjkyMEIKKzowMzAwMUIwMDAyNEJENUMwCis6MDMwMDIzMDAwMjFCMzk4NAorOjAzMDAyQjAwMDI0M0UyQUIKKzowMzAwMzMwMDAyM0ZGMzk2Cis6MDMwMDNCMDAwMjRCQzBCNQorOjAzMDA0MzAwMDI0NzAwNzEKKzowMzAwNEIwMDAyM0ZGQzc1Cis6MDMwMDUzMDAwMjM3RkE3NworOjAzMDA1QjAwMDI0QkM3OEUKKzowMzAwNjMwMDAyNDZGQzU2Cis6MTAwNTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODAxMDEwMDAxMDEwMjBGCis6MTAwNTEwMDAwMDAxMDkwMkI4MDEwMzAxMDA4MEEwMDkwNDAwMDAwMEU1Cis6MTAwNTIwMDAwMTAxMDAwMDBBMjQwMTAwMDE1NjAwMDIwMTAyMEMyNDBFCis6MTAwNTMwMDAwMjAxMDEwMTAwMDYwMDAwMDAwMDE1MjQwNjA1MDEwMjY5Cis6MTAwNTQwMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTlGCis6MTAwNTUwMDAyNDAzMDIwNDAzMDAwNTAwMEMyNDAyMDMwMTAyMDAwMjJDCis6MTAwNTYwMDAwMDAwMDAwMDBEMjQwNjA2MDMwMjAzMDAwMDAwMDAwMDQ2Cis6MTAwNTcwMDAwMDA5MjQwMzA0MDEwMTAwMDYwMDA5MDQwMTAwMDAwMTMwCis6MTAwNTgwMDAwMjAwMDAwOTA0MDEwMTAyMDEwMjAwMDAwNzI0MDEwMTI4Cis6MTAwNTkwMDAwMDAxMDAxMTI0MDIwMTAyMDIxMDAzNDRBQzAwODBCQkUwCis6MTAwNUEwMDAwMDAwNzcwMTA5MDUwQTA1ODQwMTAxMDA4RjA3MjUwMTc0Cis6MTAwNUIwMDAwMTAwMDAwMDA5MDU4RjAxMDMwMDAxMDYwMDA5MDQwMTg0Cis6MTAwNUMwMDAwMjAyMDEwMjAwMDAwNzI0MDEwMTAwMDEwMDBFMjQwMkMyCis6MTAwNUQwMDAwMTA2MDIxMDAyNDRBQzAwODBCQjAwMDkwNTBBMDU0QzZDCis6MTAwNUUwMDAwMjAxMDA4RjA3MjUwMTAxMDAwMDAwMDkwNThGMDEwM0FBCis6MTAwNUYwMDAwMDAxMDYwMDA5MDQwMTAzMDIwMTAyMDAwMDA3MjQwMUIyCis6MTAwNjAwMDAwMTAwMDEwMDBFMjQwMjAxMDYwMzE4MDI0NEFDMDA4MDIwCis6MTAwNjEwMDBCQjAwMDkwNTBBMDU3MjAzMDEwMDhGMDcyNTAxMDEwMENGCis6MTAwNjIwMDAwMDAwMDkwNThGMDEwMzAwMDEwNjAwMDkwNDAxMDQwMjBFCis6MTAwNjMwMDAwMTAyMDAwMDA3MjQwMTAxMDAwMTAwMEIyNDAyMDEwMjU1Cis6MTAwNjQwMDAwMzE4MDEwMDc3MDEwOTA1MEEwNTQ2MDIwMTAwOEYwNzFBCis6MTAwNjUwMDAyNTAxMDEwMDAwMDAwOTA1OEYwMTAzMDAwMTA2MDAwOUMyCis6MTAwNjYwMDAwNDAyMDAwMDAxMDIwMDAwMDkwNDAyMDEwMTAxMDIwMDZECis6MTAwNjcwMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyMDEwMjAyMTAwM0ZBCis6MTAwNjgwMDA0NEFDMDA4MEJCMDAwMDc3MDEwOTA1OEMwNTg0MDEwMUEyCis6MTAwNjkwMDAwMDAwMDcyNTAxMDEwMjAwMDAwOTA0MDIwMjAxMDEwMjE1Cis6MTAwNkEwMDAwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDIwMTAyMDMxOEM0Cis6MTAwNkIwMDAwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU4QzA1NDYwMkFECis6MTAwNkMwMDAwMTAwMDAwNzI1MDEwMTAyMDAwMDA1MEMwOTAxQTEwMTNDCis6MTAwNkQwMDAwNTBDMDlFOTA1MEMwOUVBMTUwMDI1MDE5NTAyNzUwMUNCCis6MTAwNkUwMDA4MTQyOTUwMTc1MDY4MTAxMDUwQzA5MDAwNTBDMDkwMDgwCis6MTAwNkYwMDAxNTAwMjUwMTk1MDI3NTAxOTEwNjk1MDE3NTA2OTEwMzc2Cis6MTAwNzAwMDBDMDA0MDMwOTA0MTgwMzQ1MDA0RDAwNDEwMDQ3MDA0OTk3Cis6MTAwNzEwMDAwMDQzMDAyMDAwNDcwMDZEMDA2MjAwNDgwMDFFMDM0NUIyCis6MTAwNzIwMDAwMDZEMDA2MTAwNjcwMDY5MDA2MzAwMjAwMDQ1MDA0RDE2Cis6MTAwNzMwMDAwMDQ5MDAyMDAwMzIwMDdDMDAzNjAwMkEwMzQzMDA2RjhECis6MTAwNzQwMDAwMDZFMDA2NjAwNjkwMDY3MDA3NTAwNzIwMDYxMDA3NDQ5Cis6MTAwNzUwMDAwMDY5MDA2RjAwNkUwMDIwMDA1MzAwNzQwMDcyMDA2OTkxCis6MTAwNzYwMDAwMDZFMDA2NzAwMjIwMzQ5MDA2RTAwNzQwMDY1MDA3MjhECis6MTAwNzcwMDAwMDY2MDA2MTAwNjMwMDY1MDAyMDAwNTMwMDc0MDA3MjkxCis6MDkwNzgwMDAwMDY5MDA2RTAwNjcwMDAwMDAzMgorOjEwMDc4OTAwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjk4MworOjAxMDc5OTAwMjIzRAorOjEwMDc5QTAwOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJFOQorOjEwMDdBQTAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwOERFMEMwRTBFNQorOjEwMDdCQTAwOENFMEMwRTBDMDgyQzA4MzA1ODZDMDg0QzA4NUU1MTg4RAorOjEwMDdDQTAwQjQwMjAzMDIwN0Q5QjQwMTAzMDIwN0RFMDIwN0ZBN0Q2NQorOjEwMDdEQTAwMDEwMjA4MTZFNTE5MTRGNTE5QzNCNTEzMDMwMjA3RjU0MgorOjEwMDdFQTAwNTAwOUI0MDBFQTc1MTkwQTAyMDdEOTdEMDAwMjA4MTZGMQorOjEwMDdGQTAwRTUxOTE0RjUxOUMzQjUxNDAzMDIwODExNTAwOUI0MDAxOAorOjEwMDgwQTAwQ0U3NTE5MEEwMjA3RDk3RDAyMDIwODE2N0MwNTkwN0Y2NworOjEwMDgxQTAwOTlFMDU0NDBEQzAzMDIwODQzQjQwMDFEOTA3RkUzNzQ1RQorOjEwMDgyQTAwN0JGMEEzNzQ4MEYwOTA3RkUyNzQ0MEYwOTA3RkU1RjA1MworOjEwMDgzQTAwOTA3RkUyNzQwMEYwMDIwODE4MDU4NjkwN0ZFMjc0ODBDNworOjEwMDg0QTAwRjA5MDc5NjVFMEI0MDEwMzAyMDg5RUI0MDIwMzAyMDgzRAorOjEwMDg1QTAwOTZCNDAzMDMwMjA4OEVCNDA0MDMwMjA4ODZCNDA1MDM5RgorOjEwMDg2QTAwMDIwODdFQjQwNjAzMDIwODc2MDIwOEY0MDU4NjkwN0YyMQorOjEwMDg3QTAwNkMwMjA4RTkwNTg2OTA3RjZDMDIwOEREMDU4NjkwN0Y4OAorOjEwMDg4QTAwNkMwMjA4Q0YwNTg2OTA3RjZDMDIwOEMwMDU4NjkwN0ZBRgorOjEwMDg5QTAwNkMwMjA4QjIwNTg2OTA3RjZDRjAwMEYwMDBGMDAwRjA2MAorOjEwMDhBQTAwMERFREI0MkRGNDAyMDhGNEYwRjBGMEYwRjBGMDBERURENworOjEwMDhCQTAwQjQyREY1MDIwOEY0RjAwMEYwMDBGMDAwRjAwREVEQjRFQworOjEwMDhDQTAwMzFGNDAyMDhGNEYwRjBGMEYwRjBGMDBERURCNDMxRjU4NworOjEwMDhEQTAwMDIwOEY0RjBGMEYwRjAwREVEQjQ2MUY3MDIwOEY0RjA1QworOjEwMDhFQTAwRjBGMEYwRjBGMDBERURCNDYxRjU5MDdGRTI3NDAwRjBGNQorOjEwMDhGQTAwRDA4NUQwODQwNTg2RDA4M0QwODJEMEUwRkNEMEUwRkRCQworOjA1MDkwQTAwRDBFMEZFRDBFMDhBCis6MDYwOTBGMDBGRkQwRTBEMEQwMjI3MQorOjEwMDkxNTAwQzBEMEMwRTBDMDgyQzA4MzkwN0Y2RkU1MENGMEU1MERDQworOjBEMDkyNTAwRjBFNTBFRjBEMDgzRDA4MkQwRTBEMEQwMjJEQgorOjEwMDkzMjAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwQzA4MkMwODNFMworOjEwMDk0MjAwMDU4NkMwODRDMDg1OTA3OTcwRTBGRkJGMDAwMzAyMEE2QgorOjEwMDk1MjAwQjg5MDdGOTZFMDQ0ODBGMDkwN0ZFMjc0ODBGMDkwN0ZDMAorOjEwMDk2MjAwNjJFMDA1ODY5MDdGRTI3NDAwRjA5MDdGOTZFMDU0N0YwQgorOjEwMDk3MjAwRjA5MDdGRTI3NDgwRjA5MDc5ODhFMEI0MDEwMzAyMDk3QworOjEwMDk4MjAwQkVCNDAyMDMwMjA5QzNCNDAzMDMwMjA5QUNCNDA0MDNGNAorOjEwMDk5MjAwMDIwOTlBMDU4NjAyMEFCMkVGNTQwM0ZFRUYwMzAzNTREQQorOjEwMDlBMjAwM0ZGRjkwN0Y2MzA1ODYwMjA5QzlFRjU0MDNGRUVGMDMwMAorOjEwMDlCMjAwMDM1NDNGRkY5MDdGNjMwNTg2MDIwQTM2MDU4NjAyMEFDQQorOjEwMDlDMjAwQTUwNTg2MDIwQThFRTBFMEUwRTBFMEUwMDU4NkUwRTBEMAorOjEwMDlEMjAwRTAwNTg2RTBFMEUwRTBFMEUwMDU4NkUwRTBFMDA1ODZCNAorOjEwMDlFMjAwRTBFMEUwRTBFMEUwMDU4NkUwRTBFMDA1ODZFMEUwRTA2RgorOjEwMDlGMjAwRTBFMEUwMDU4NkUwRTBFMDA1ODZERkNBRUVCNDAwMDM1MQorOjEwMEEwMjAwMDIwQUIyQjQwMTAzMDIwQTI1RTBFMEUwRTBFMEUwMDVGOAorOjEwMEExMjAwODZFMEUwRTAwNTg2RTBFMEUwRTBFMEUwMDU4NkUwRTA5OAorOjEwMEEyMjAwRTAwNTg2RTBFMEUwRTBFMEUwMDU4NkUwRTBFMDA1ODY2MworOjEwMEEzMjAwMDIwQUIyRTBFMEUwRTAwNTg2RTBFMDA1ODZFMEUwRTAwMAorOjBEMEE0MjAwRTAwNTg2RTBFMDA1ODZFMEUwRTBFMDA1ODZFNgorOjEwMEE0RjAwRTBFMDA1ODZFMEUwRTBFMDA1ODZFMEUwMDU4NkRGRDY0MQorOjEwMEE1RjAwRUVCNDAwMDMwMjBBQjJCNDAxMDMwMjBBODBFMEUwRTA0MAorOjEwMEE2RjAwRTAwNTg2RTBFMDA1ODZFMEUwRTBFMDA1ODZFMEUwMDVGMQorOjEwMEE3RjAwODZFMEUwRTBFMDA1ODZFMEUwMDU4NjAyMEFCMkUwRTAwRAorOjEwMEE4RjAwRTBFMEUwRTBFMEUwRTBFMEUwRTBFMEUwRTBFMEUwRTA1NworOjEwMEE5RjAwREZFQzAyMEFCMkUwRTBFMEUwRTBFMEUwRTBFMEUwRTAxRQorOjEwMEFBRjAwRTBERkYyOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2RDAyRAorOjBFMEFCRjAwODNEMDgyRDBFMEZFRDBFMEZGRDBFMEQwRDAyMjg1Cis6MTAwQUNEMDBDMDgyQzA4M0MwRTBFOEMwRTA3OEQxRTgxNEY4NzBGQkM0Cis6MEEwQUREMDBEMEUwRjhEMEUwRDA4M0QwODIyMkYwCis6MTAwQUU3MDBDMEQwQzBFMDhGRTBDMEUwOEVFMEMwRTA4REUwQzBFMEE1Cis6MTAwQUY3MDA4Q0UwQzBFMDc1ODYwMEMwODJDMDgzMDU4NkMwODRDMEQ0Cis6MTAwQjA3MDA4NTdFMDA5MDc5OEVFMEI0MDAxNjc0MDFGMDkwMDZDQUQ1Cis6MTAwQjE3MDBBM0EzQTNBM0EzQTNBM0UwRkY5MDc5OERGMDAyMEIzOUFFCis6MTAwQjI3MDA5MDc5OERFMEZGOTA3OThGRTBGRDkwNzk5MEUwRkMwMjVECis6MTAwQjM3MDAwQjQ2OTAwNkNBMDU4NjkwN0YwMDA1ODYwMjBCNTE4REVECis6MTAwQjQ3MDA4NDhDODUwNTg2OTA3RjAwMDU4NkUwQTMwNTg2RjBBMzQzCis6MTAwQjU3MDAwRUVFQjQ0MDAzMDIwQjZDMDU4NkRGRUU5MDc5OEU3NEJGCis6MTAwQjY3MDAwMEYwMDIwQjgyMDU4NkFEODRBQzg1OTA3OThGRURGMDlECis6MTAwQjc3MDA5MDc5OTBFQ0YwOTA3OThEMUZFRkYwOTA3RkI1RUVGMEMzCis6MTAwQjg3MDBEMDg1RDA4NDA1ODZEMDgzRDA4MkQwRTBGQ0QwRTBGRDJDCis6MEIwQjk3MDBEMEUwRkVEMEUwRkZEMEUwRDBEMDIyODQKKzoxMDBCQTIwMEMwRDBDMEUwQzA4MkMwODM5MDdGQUVFMDU0RTBGMDkwM0QKKzoxMDBCQjIwMDdGOTZFMDQ0MDg1NEZCRjA5MDdGOTdFMDU0QkZGMDkwOUEKKzoxMDBCQzIwMDdGRTM3NDdCRjA5MDdGRTQ3NDQwRjA5MDc5NzhFMDkwNUEKKzoxMDBCRDIwMDdCNDBGMDkwN0ZFMjc0NDhGMDkwN0ZFNUUwOTA3RkUyMDYKKzoxMDBCRTIwMDc0MDBGMDkwN0Y5NkUwNTRGNzQ0MDRGMDkwN0ZFMzc0MzEKKzoxMDBCRjIwMDdCRjA5MDdGRTQ3NDQwRjA5MDc5NzlFMDkwN0I0MEYwNTQKKzoxMDBDMDIwMDkwN0ZFMjc0NDhGMDkwN0ZFNUUwOTA3RkUyNzQwMEYwMUMKKzoxMDBDMTIwMDkwN0Y5NkUwNTRGM0YwOTA3RkFFRTA0NDFGRjBEMDgzRDMKKzowNzBDMjIwMEQwODJEMEUwRDBEMDIyMDcKKzoxMDBDMjkwMEMwRDBDMEUwQzA4M0MwODI5MDc5MkZFMDY0RkZDMzI0QTQKKzowQjBDMzkwMDAxRjBEMDgyRDA4M0QwRTBEMEQwMjJBOAorOjEwMEM0NDAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJBRQorOjA5MEM1NDAwRTMyMjg5ODI4QTgzRTQ5MzIyRTEKKzoxMDBDNUQwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwNEMKKzoxMDBDNkQwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyOTYKKzowRDBDN0QwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQjAKKzoxMDBDOEEwMEJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxNDkKKzowMjBDOUEwMEYzMjI0MworOjEwMEM5QzAwRjhCQjAxMERFNTgyMjlGNTgyRTU4MzNBRjU4M0U4RjA4RQorOjEwMENBQzAwMjI1MDA2RTkyNTgyQzhGNjIyQkJGRTA1RTkyNTgyQzgzQQorOjAyMENCQzAwRjIyMjIyCis6MTAwQ0JFMDBDMkQ1RUMzMEU3MDlCMkQ1RTRDMzlERkRFNDlDRkNFRTUxCis6MTAwQ0NFMDAzMEU3MTVCMkQ1RTRDMzlGRkZFNDlFRkUxMjBFNDBDMzdCCis6MTAwQ0RFMDBFNDlERkRFNDlDRkM4MDAzMTIwRTQwMzBENTA3QzNFNDc2Cis6MDYwQ0VFMDA5RkZGRTQ5RUZFMjJDMAorOjEwMENGNDAwQzVGMEY4QTNFMDI4RjBDNUYwRjhFNTgyMTU4MjcwMDI4QgorOjA2MEQwNDAwMTU4M0UwMzhGMDIyMjcKKzoxMDBEMEEwMEJCMDExMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTBGNUYwMjcKKzoxMDBEMUEwMEEzRTAyMjUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFMDQKKzoxMDBEMkEwMDBBRTkyNTgyRjhFMkY1RjAwOEUyMjJFNTgzMkFGNTgzNEEKKzowODBEM0EwMEU5OTNGNUYwQTNFOTkzMjIwRgorOjEwMEQ0MjAwRTg4RkYwQTRDQzhCRjBBNDJDRkNFOThFRjBBNDJDRkM1MAorOjEwMEQ1MjAwOEFGMEVEQTQyQ0ZDRUE4RUYwQTRDREE4RjA4QkYwQTRDRQorOjEwMEQ2MjAwMkRDQzM4MjVGMEZERTk4RkYwQTQyQ0NEMzVGMEZDRUIyRAorOjEwMEQ3MjAwOEVGMEE0RkVBOUYwRUI4RkYwQTRDRkM1RjAyRUNEMzlGMgorOjBGMEQ4MjAwRkVFNDNDRkNFQUE0MkRDRTM1RjBGREU0M0NGQzIyNUYKKzoxMDBEOTEwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwQjgKKzowMTBEQTEwMDIyMkYKKzoxMDBEQTIwMEJCMDEwREU1ODIyOUY1ODJFNTgzM0FGNTgzMDIwRUExQTYKKzoxMDBEQjIwMDUwMDdFOTI1ODJGODAyMEU5NUJCRkUwN0U5MjU4MkY4NjUKKzoxMDBEQzIwMDAyMEVBREU1ODIyOUY1ODJFNTgzM0FGNTgzMDIwRUI5N0EKKzoxMDBERDIwMEJCMDEwREU1ODIyOUY1ODJFNTgzM0FGNTgzMDIwRUQ1NDIKKzoxMDBERTIwMDUwMDdFOTI1ODJGODAyMEVDOUJCRkUwN0U5MjU4MkY4MDEKKzowNDBERjIwMDAyMEVFMTIyRUEKKzoxMDBERjYwMEJCMDEwREU1ODIyOUY1ODJFNTgzM0FGNTgzMDIwRjA2RUMKKzoxMDBFMDYwMDUwMDdFOTI1ODJGODAyMEVFREJCRkUwN0U5MjU4MkY4QjgKKzowNDBFMTYwMDAyMEYzNzIyNkUKKzoxMDBFMUEwMEQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzNjcKKzoxMDBFMkEwMDkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwN0IKKzowNjBFM0EwMEVGQTNBM0EzODBERjdCCis6MTAwRTQwMDBCQzAwMEJCRTAwMjlFRjhERjA4NEZGQURGMDIyRTRDQzk2Cis6MTAwRTUwMDBGODc1RjAwOEVGMkZGRkVFMzNGRUVDMzNGQ0VFOURFQzVGCis6MTAwRTYwMDA5ODQwMDVGQ0VFOURGRTBGRDVGMEU5RTRDRUZEMjJFREE1Cis6MTAwRTcwMDBGOEY1RjBFRTg0MjBEMjFDRkVBREYwNzVGMDA4RUYyRkVGCis6MTAwRTgwMDBGRkVEMzNGRDQwMDc5ODUwMDZENUYwRjIyMkMzOThGREUwCis6MDUwRTkwMDAwRkQ1RjBFQTIyN0QKKzowQzBFOTUwMEU2RkMwOEU2RkQwOEU2RkUwOEU2RkYyMjg5Cis6MEMwRUExMDBFMEZDQTNFMEZEQTNFMEZFQTNFMEZGMjJDNAorOjBDMEVBRDAwRTJGQzA4RTJGRDA4RTJGRTA4RTJGRjIyODEKKzoxMDBFQjkwMEU0OTNGQ0EzRTQ5M0ZEQTNFNDkzRkVBM0U0OTNGRjIyNEMKKzowQzBFQzkwMEVDRjYwOEVERjYwOEVFRjYwOEVGRjYyMjU1Cis6MEMwRUQ1MDBFQ0YwQTNFREYwQTNFRUYwQTNFRkYwMjI5MAorOjBDMEVFMTAwRUNGMjA4RURGMjA4RUVGMjA4RUZGMjIyNEQKKzoxMDBFRUQwMEQwODNEMDgyRTQ5M0Y2MDg3NDAxOTNGNjA4NzQwMjkzQ0MKKzowOTBFRkQwMEY2MDg3NDAzOTNGNjc0MDQ3MzAzCis6MTAwRjA2MDBBODgyODU4M0YwRDA4M0QwODIxMjBGMUQxMjBGMUQxMjg2Cis6MTAwRjE2MDAwRjFEMTIwRjFERTQ3M0U0OTNBM0M1ODNDNUYwQzU4M0FCCis6MTAwRjI2MDBDOEM1ODJDOEYwQTNDNTgzQzVGMEM1ODNDOEM1ODJDODM1Cis6MDEwRjM2MDAyMjk4Cis6MTAwRjM3MDBEMDgzRDA4MkU0OTNGMjA4NzQwMTkzRjIwODc0MDI5Mzg5Cis6MDkwRjQ3MDBGMjA4NzQwMzkzRjI3NDA0NzNDMAorOjEwMEY1MDAwQzJBRkQyMkM5MDdGOTM3NDMwRjA5MDdGOUM3NEJGRjAxRQorOjEwMEY2MDAwOTA3Rjk2RTA1NDMwRjA5MDdGOTQ3NDMwRjA5MDdGOURBNQorOjEwMEY3MDAwNzRDRkYwOTA3Rjk3NzRBMEYwOTA3Rjk1NzRDQ0YwRTREQworOjEwMEY4MDAwOTA3RjlFRjBDMjJEQzIyQUMyMkJDMjJFOTA3OTc0MDQ4QgorOjEwMEY5MDAwRjAxMjJFOTQxMjQ5RTIxMjRCRTYxMjMyMEQxMjNCMEQ2MgorOjEwMEZBMDAwMTI0MUZEMTIzRTk5RTUxRjcwMTg3NTFGMDExMjE3RkZCRgorOjEwMEZCMDAwMTIyRkZGMTI0OUM4MTI0QkQ4MTI0QkRBMTI0OTZGMTI4NgorOjEwMEZDMDAwMUI0MDEyMzk4RDkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA3RQorOjEwMEZEMDAwNDQxRkYwOTA3RkFDNzRGRkYwOTA3RkFERjA5MDdGREUwNworOjEwMEZFMDAwRjA5MDdGREZGMDkwN0ZBQkYwOTA3RkE5RjA5MDdGQUEyOAorOjEwMEZGMDAwRjA1MzkxRUY0M0Q4MjBEMkU4NDNEODIwNDNBODgwMjI3MQorOjEwMTAwMDAwOTA3OTYzRTAxNDYwNDQxNDcwMDIyMUQwMTQ3MDAyNDE5RQorOjEwMTAxMDAwRDkxNDcwMDI2MUQ3MjQwNDYwMDI4MTU2RTQ5MDc5Nzg3MworOjEwMTAyMDAwRjA5MDc5N0JFMDkwNzk3OUYwNDQwMUYwNTRGREYwOTBGNAorOjEwMTAzMDAwNzk3QkYwRTQ5MDc5ODhGMEEyQUYzM0Y1MTJDMkFGMTI1OQorOjEwMTA0MDAwMEJBMkU1MTI3MDAyODE1NkQyQUYyMjkwNzkyREUwNjQ5NgorOjEwMTA1MDAwMDE3MDc5OTA3RkYyRjA5MDdGRjM3NDMwRjA5MDdGRkYxMQorOjEwMTA2MDAwNzRGQ0YwRTQ5MDc5NzhGMDkwNzk3QkUwOTA3OTc5RjBGNQorOjEwMTA3MDAwNDQwMUYwNDQwMkYwOTA3OTdCRjBBMkFGRTQzM0Y1MTIyMgorOjEwMTA4MDAwQzJBRjEyMEJBMjkwNzk3ODc0MDJGMDkwNzk4NEUwOTA0QworOjEwMTA5MDAwNzk3OUYwOTA3OTdGRTBCNDAxMDk5MDc5NzlFMDU0RkU5NAorOjEwMTBBMDAwRjA4MDA3OTA3OTc5RTA0NDAxRjA5MDc5NzlFMDU0RkQ3RgorOjEwMTBCMDAwRjA1NEZCRjA5MDc5ODRGMDEyMEJBMjkwNzk4Mjc0MDRDMgorOjEwMTBDMDAwRjA5MDc5ODgxNEYwRTUxMjYwMDJEMkFGOTA3OTJERTBBQgorOjEwMTBEMDAwNjQwMjcwNzk5MDdGRjJGMDkwN0ZGMzc0MzRGMDkwN0YyNworOjEwMTBFMDAwRkY3NEZDRjBFNDkwNzk3OEYwOTA3OTdCRTA5MDc5Nzk2NgorOjEwMTBGMDAwRjA0NDAxRjA0NDAyRjA5MDc5N0JGMEEyQUZFNDMzRjVDNAorOjEwMTEwMDAwMTJDMkFGMTIwQkEyOTA3OTc4NzQwMkYwOTA3OTg0RTA0OQorOjEwMTExMDAwOTA3OTc5RjA5MDc5N0ZFMEI0MDEwOTkwNzk3OUUwNTQ4MQorOjEwMTEyMDAwRkVGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwNzk3OUUwNDQwRAorOjEwMTEzMDAwMDJGMDU0RkJGMDkwNzk4NEYwMTIwQkEyOTA3OTgyNzQ0MworOjEwMTE0MDAwMDRGMDkwNzk4ODE0RjBFNTEyNjAwMkQyQUY5MDc5MkQwNgorOjEwMTE1MDAwRTA2NDAzNjAwMjgxNTY5MDdGRjJGMDkwN0ZGMzc0NjQ0NAorOjEwMTE2MDAwRjA5MDdGRkY3NEZDRjBFNDkwNzk3OEYwOTA3OTdCRTA2OAorOjEwMTE3MDAwOTA3OTc5RjA0NDAxRjA0NDAyRjA5MDc5N0JGMEEyQUZDRAorOjEwMTE4MDAwRTQzM0Y1MTJDMkFGMTIwQkEyOTA3OTc4NzQwMkYwOTA5QQorOjEwMTE5MDAwNzk4NEUwOTA3OTc5RjA5MDc5N0ZFMEI0MDEwOTkwNzlEMQorOjEwMTFBMDAwNzlFMDU0RkVGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwNzk3RAorOjEwMTFCMDAwNzlFMDQ0MDRGMDkwNzk4NEYwMTIwQkEyOTA3OTgyNzQ2MworOjEwMTFDMDAwMDRGMDkwNzk4ODE0RjBFNTEyNzAwMjgxNTZEMkFGMjJCMworOjEwMTFEMDAwOTA3OTJERTA2NDAxNzA3QTkwN0ZGMkYwOTA3RkYzNzQ0MworOjEwMTFFMDAwODhGMDkwN0ZGRjc0RkNGMEU0OTA3OTc4RjA5MDc5N0I0MAorOjEwMTFGMDAwRTA5MDc5NzlGMDQ0MDFGMDU0RkRGMDkwNzk3QkYwQTIxMQorOjEwMTIwMDAwQUZFNDMzRjUxMkMyQUYxMjBCQTI5MDc5Nzg3NDAyRjBGQQorOjEwMTIxMDAwOTA3OTg0RTA5MDc5NzlGMDkwNzk3RkUwQjQwMTA5OTAzOQorOjEwMTIyMDAwNzk3OUUwNTRGRUYwODAwNzkwNzk3OUUwNDQwMUYwOTBGQworOjEwMTIzMDAwNzk3OUUwNTRGREYwNTRGQkYwOTA3OTg0RjAxMjBCQTIyMAorOjEwMTI0MDAwOTA3OTgyNzQwQ0YwOTA3OTg4NzQwMUYwRTUxMjYwMDI1NAorOjEwMTI1MDAwRDJBRjkwNzkyREUwNjQwMjYwMDI4MTU2OTA3RkYyRjA2NworOjEwMTI2MDAwOTA3RkYzNzQ5NEYwOTA3RkZGNzRGQ0YwRTQ5MDc5NzhCMQorOjEwMTI3MDAwRjA5MDc5N0JFMDkwNzk3OUYwNDQwMUYwNTRGREYwOTBBMgorOjEwMTI4MDAwNzk3QkYwQTJBRkU0MzNGNTEyQzJBRjEyMEJBMjkwNzlEMgorOjEwMTI5MDAwNzg3NDAyRjA5MDc5ODRFMDkwNzk3OUYwOTA3OTdGRTAyOQorOjEwMTJBMDAwQjQwMTA5OTA3OTc5RTA1NEZFRjA4MDA3OTA3OTc5RTBGMworOjEwMTJCMDAwNDQwMUYwOTA3OTc5RTA0NDAyRjA1NEZCRjA5MDc5ODQ5NQorOjEwMTJDMDAwRjAxMjBCQTI5MDc5ODI3NDBDRjA5MDc5ODg3NDAxRjA3RQorOjEwMTJEMDAwRTUxMjcwMDI4MTU2RDJBRjIyOTA3OTJERTA2NDAxNzA0MAorOjEwMTJFMDAwNzc5MDdGRjJGMDkwN0ZGMzc0Q0NGMDkwN0ZGRjc0RkNFNgorOjEwMTJGMDAwRjBFNDkwNzk3OEYwOTA3OTdCRTA5MDc5NzlGMDU0RkM4MworOjEwMTMwMDAwRjA5MDc5N0JGMEEyQUZFNDMzRjUxMkMyQUYxMjBCQTJEQQorOjEwMTMxMDAwOTA3OTc4NzQwMkYwOTA3OTg0RTA5MDc5NzlGMDkwNzlGRQorOjEwMTMyMDAwN0ZFMEI0MDEwOTkwNzk3OUUwNTRGRUYwODAwNzkwNzk2QworOjEwMTMzMDAwNzlFMDQ0MDFGMDkwNzk3OUUwNTRGREYwNTRGQkYwOTBBRAorOjEwMTM0MDAwNzk4NEYwMTIwQkEyOTA3OTgyNzQxMkYwOTA3OTg4NzRFQgorOjEwMTM1MDAwMDJGMEU1MTI2MDAyRDJBRjkwNzkyREUwNjQwMjcwNzc1RQorOjEwMTM2MDAwOTA3RkYyRjA5MDdGRjM3NEUwRjA5MDdGRkY3NEZDRjBEOAorOjEwMTM3MDAwRTQ5MDc5NzhGMDkwNzk3QkUwOTA3OTc5RjA1NEZDRjAwMgorOjEwMTM4MDAwOTA3OTdCRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQkEyOTBCQQorOjEwMTM5MDAwNzk3ODc0MDJGMDkwNzk4NEUwOTA3OTc5RjA5MDc5N0Y4RgorOjEwMTNBMDAwRTBCNDAxMDk5MDc5NzlFMDU0RkVGMDgwMDc5MDc5NzlGMgorOjEwMTNCMDAwRTA0NDAxRjA5MDc5NzlFMDQ0MDJGMDU0RkJGMDkwNzkzOAorOjEwMTNDMDAwODRGMDEyMEJBMjkwNzk4Mjc0MTJGMDkwNzk4ODc0MDJFMgorOjEwMTNEMDAwRjBFNTEyNjAwMkQyQUY5MDc5MkRFMDY0MDM3MDc3OTA0RgorOjEwMTNFMDAwN0ZGMkYwOTA3RkYzNzQ5NEYwOTA3RkZGNzRGQ0YwRTQ1MAorOjEwMTNGMDAwOTA3OTc4RjA5MDc5N0JFMDkwNzk3OUYwNTRGRUYwNDQyMAorOjEwMTQwMDAwMDJGMDkwNzk3QkYwQTJBRkU0MzNGNTEyQzJBRjEyMEI3OQorOjEwMTQxMDAwQTI5MDc5Nzg3NDAyRjA5MDc5ODRFMDkwNzk3OUYwOTBENAorOjEwMTQyMDAwNzk3RkUwQjQwMTA5OTA3OTc5RTA1NEZFRjA4MDA3OTA2QgorOjEwMTQzMDAwNzk3OUUwNDQwMUYwOTA3OTc5RTA0NDA0RjA5MDc5ODQ3RQorOjEwMTQ0MDAwRjAxMjBCQTI5MDc5ODI3NDA2RjA5MDc5ODg3NDA0RjBGRgorOjA3MTQ1MDAwRTUxMjYwMDJEMkFGMjI5OQorOjEwMTQ1NzAwQzIyOEMyMjk5MDdGRThFMDEyMEUxQTE0ODQwMDE0RTAxMworOjEwMTQ2NzAwMDExNEY2MDIxNjdDMjExNkJFMjIxNTkxODAxNUQxODEzMgorOjEwMTQ3NzAwMTYyRTgyMTZDRkExMTcwNUEyMDAwMDE3MEE5MDdGRTk0MgorOjEwMTQ4NzAwRTAxNDYwMTEyNEZFNjAyODI0RkU2MDNCMjRGQzcwNDBCOQorOjEwMTQ5NzAwMTI0QTJBRTExNjEyNEJFMDQwMDJFMTE2OTA3RkVBRTA3OQorOjEwMTRBNzAwQjQwMTA0QzIyQUUxMTY5MDdGQjRFMDQ0MDFGMEUxMTZDQQorOjEwMTRCNzAwMTI0QkUyOTA3RkVBRTBCNDAxMDREMjJBRTExNjkwN0Y1MgorOjEwMTRDNzAwQjRFMDQ0MDFGMEUxMTY5MDdGQjRFMDQ0MDFGMEUxMTY4NgorOjEwMTRENzAwOTA3RkI0RTA0NDAxRjBFMTE2OTA3RkU5RTAyNEY1NzBENQorOjEwMTRFNzAwMDUxMjQ3OUNFMTE2OTA3RkI0RTA0NDAxRjBFMTE2OTBBNQorOjEwMTRGNzAwN0ZFOUUwMjRGRDYwNTQyNDAyNjAwMkExODgxMjRCRTBEQQorOjEwMTUwNzAwNDAwMkUxMTY5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTRGNworOjEwMTUxNzAwODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODI2MQorOjEwMTUyNzAwRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRjEzMTNGRAorOjEwMTUzNzAwMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjBBQgorOjEwMTU0NzAwRTExNjkwN0ZCNEUwNDQwMUYwRTExNjEyNEJFMjQwMDI0RAorOjEwMTU1NzAwRTExNjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkY4MgorOjEwMTU2NzAwQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3OAorOjEwMTU3NzAwN0ZGNTgzNzQwMUYwRTExNjkwN0ZCNEUwNDQwMUYwRTE1OAorOjEwMTU4NzAwMTY5MDdGQjRFMDQ0MDFGMEUxMTY5MDdGRTlFMDYwMTIyNQorOjEwMTU5NzAwMjRGODYwMDkyNDAyNzAyOTEyMTcxRUUxMTYxMjRCQTBDNQorOjEwMTVBNzAwRTExNjEyNEJERUEyMkFFNDMzRkYyNUUwRkZBMjJCRTQ2QgorOjEwMTVCNzAwMzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwRTEyMQorOjEwMTVDNzAwMTY5MDdGQjRFMDQ0MDFGMEUxMTY5MDdGRTlFMDYwMzdDMAorOjEwMTVENzAwMjRGNjYwMkUyNDA0NzA0MTkwN0ZFQkUwMjRERTYwMEUzOQorOjEwMTVFNzAwMDQ3MDE2RDIyOTkwN0ZCNEUwNDQwMUYwRTExNkQyMjlBNQorOjEwMTVGNzAwOTA3RkI0RTA0NDAxRjBFMTE2OTA3RkI0RTA0NDAxRjAzRAorOjEwMTYwNzAwRTExNjEyNDQ2M0UxMTYxMjRCREVFNDkwN0YwMEYwQTM2QgorOjEwMTYxNzAwRjA5MDdGQjU3NDAyRjBFMTE2MjAyOTA3OTA3RkI0RTBCRgorOjEwMTYyNzAwNDQwMUYwQzIyOUUxMTY5MDdGRTlFMDI0RjQ2MDM0MjRGNAorOjEwMTYzNzAwMEM3MDM5MTI0QkRFOTA3RkVDRTBGNDU0ODBGRkM0NTRGOQorOjEwMTY0NzAwMEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjUzQgorOjEwMTY1NzAwODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDIxRgorOjEwMTY2NzAwRjBFMTE2OTA3RkI0RTA0NDAxRjBFMTE2OTA3RkI0RTAxQQorOjEwMTY3NzAwNDQwMUYwRTExNjkwN0ZFOUUwMjRGNjYwMTIxNDYwMUE0NQorOjEwMTY4NzAwMjQwMjcwMUREMjI4OTA3RkI0RTA0NDAxRjA4MDEyRDI2QQorOjEwMTY5NzAwMjg5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFENAorOjEwMTZBNzAwRjAyMDI4MEY5MDc5ODU3NDAxRjAxMjQ5NkY5MDdGQzU1QgorOjEwMTZCNzAwNzQwMkYwQzIyODgwNTg5MDc5ODY3NDAxRjAxMjQ5NkYzRAorOjEwMTZDNzAwOTA3RkM1NzQwMkYwODA0NzkwN0ZFOUUwMjRGRTYwMTJBNgorOjEwMTZENzAwMTQ2MDFBMjQwMjcwMUREMjI4OTA3RkI0RTA0NDAxRjBGMAorOjEwMTZFNzAwODAxMkQyMjg5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjQ0NQorOjEwMTZGNzAwRTA0NDAxRjAyMDI4MDMxMjFBN0JDMjI4ODAxMTEyMkMyMworOjEwMTcwNzAwMkI4MDBDMTI0QkU0NTAwNzkwN0ZCNEUwNDQwMUYwOTAxQgorOjA3MTcxNzAwN0ZCNEUwNDQwMkYwMjI2MAorOjEwMTcxRTAwMTI0QkRDNDAwMkUxRTM5MDdGRUJFMDI0RkU2MDFFMTRFRQorOjEwMTcyRTAwNjA0NjE0NjA2RTE0NzAwMkUxRDQyNDA0NjAwMkUxRENBMQorOjEwMTczRTAwNzQwNTkwN0ZENEYwNzQwMDkwN0ZENUYwMjI5MDdGRUFFQworOjEwMTc0RTAwRTBGRjEyM0ZBMjhCMzM4QTM0ODkzNUVBNDk2MDExQ0UwRAorOjEwMTc1RTAwRUFDRUVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5NgorOjEwMTc2RTAwOTA3RkI0RTA0NDAxRjAyMjkwN0ZFQUUwRkYxMjQ4MDAzRgorOjEwMTc3RTAwOEIzMzhBMzQ4OTM1RUE0OTYwMTFDRUVBQ0VFRTkwN0ZGQQorOjEwMTc4RTAwRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZCNEUwNDQzNAorOjEwMTc5RTAwMDFGMDIyOTA3RkVBRTBGRjkwN0VDMEUwRkRBM0UwRkIyNworOjEwMTdBRTAwMTI0NEQyOEIzMzhBMzQ4OTM1RUE0OTYwMTFDRUVBQ0U5RgorOjEwMTdCRTAwRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZERgorOjEwMTdDRTAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0YxNworOjA1MTdERTAwQjRFMDQ0MDFGMDNECis6MDExN0UzMDAyMkUzCis6MTAxN0U0MDBDMEUwQzA4M0MwODI5MDdGQzRFNEYwNTM5MUVGOTA3RjQ3Cis6MEIxN0Y0MDBBQjc0MDRGMEQwODJEMDgzRDBFMDMyNTAKKzowMTE3RkYwMDIyQzcKKzoxMDE4MDAwMEU0OTA3ODE1RjA3QjAxOTA3ODEyMDRGMEEzNzQ3OEYwREUKKzoxMDE4MTAwMEEzNzQ1OEYwOTA3ODEyRTBGQkEzRTBGQUEzRTBGOTkwRUIKKzoxMDE4MjAwMDAwMDExMjBDNURGRjkwNzk5QUUwNkY2MDE4OTA3ODE1QjYKKzoxMDE4MzAwMEUwQzM5NDA2NTAwRkUwMDRGMDkwNzgxM0U0NzVGMDBGQzUKKzoxMDE4NDAwMDEyMENGNDgwQ0Y5MDc4MTVFMEI0MDYwODkwN0ZCNEUwRDUKKzoxMDE4NTAwMDQ0MDFGMDIyOTA3ODEyRTBGQkEzRTBGQUEzRTBGOTEyMzEKKzoxMDE4NjAwMDBDNDRGRjI0QkY3MDAyNDE3QTI0RTA3MDAyNDE0QzI0RjIKKzoxMDE4NzAwMDIxNjAwMjQxNzM5MDc5OTdFMDI0RkU3MDAyMjE5QTE0NEUKKzoxMDE4ODAwMDcwMDIyMUVGMjQwMjYwMDI0MTQ0OTA3OTJERTBBM0YwMjAKKzoxMDE4OTAwMDkwNzkyM0UwRkZFNEZDRkRGRUZCRkE3OTAxRjgxMjBEREMKKzoxMDE4QTAwMDQyQzhFQ0M4QzlFREM5Q0FFRUNBQ0JFRkNCOTA3OTIyQzkKKzoxMDE4QjAwMEUwRkVFNEZDRkQyQkZCRUEzRUZBRUQzOUY5RUMzOEY4RUEKKzoxMDE4QzAwMDkwNzkyMUUwRkZFNEZFRUIyRkZGRUUzQUZFRUQzOUZEQ0IKKzoxMDE4RDAwMEVDMzhGQzkwNzgxMkUwRkJBM0UwRkFBM0UwRjk5MDAwNkEKKzoxMDE4RTAwMDAyMTIwREQyOTAwMDAyMTIwREEyN0I0NDdBQUM3OTAwNTQKKzoxMDE4RjAwMDc4MDBDMzEyMEQ5MTcwMDU5MDc5MkQwNEYwOTA3ODEyNDQKKzoxMDE5MDAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDIxMjBEQTI3QjgwQjUKKzoxMDE5MTAwMDdBQkI3OTAwNzgwMEMzMTIwRDkxNzAwNjkwNzkyRDc0MEUKKzoxMDE5MjAwMDAyRjA5MDc4MTJFMEZCQTNFMEZBQTNFMEY5OTAwMDAyNDUKKzoxMDE5MzAwMDEyMERBMjdCMDA3QTc3NzkwMTc4MDBDMzEyMEQ5MTcwQTUKKzoxMDE5NDAwMDA2OTA3OTJENzQwM0YwOTA3OTJERTBGRkI0MDEwOTc1QUMKKzoxMDE5NTAwMDBDNjc3NTBEMDY3NTBFMEJFRkI0MDIwOEU0RjUwQ0Y1NzcKKzoxMDE5NjAwMDBENzUwRTBDRUZCNDAzMDhFNEY1MENGNTBENzUwRTE4QUIKKzoxMDE5NzAwMEVGQjQwMzBEOTA3OTJFRTA2NDAzNjAwNUQyMkYxMjNEODEKKzoxMDE5ODAwMDc5OTA3OTJERTA2NDAzNjAwQUEzRTBCNDAzMDVDMjJGQzcKKzoxMDE5OTAwMDEyM0Q3OTEyMTAwMDEyMjgwMTIyOTA3OTIzRTBGRkU0MTEKKzoxMDE5QTAwMEZDRkRGRUZCRkE3OTAxRjgxMjBENDJDOEVDQzhDOUVENDYKKzoxMDE5QjAwMEM5Q0FFRUNBQ0JFRkNCOTA3OTIyRTBGRUU0RkNGRDJCNDYKKzoxMDE5QzAwMEZCRUEzRUZBRUQzOUY5RUMzOEY4OTA3OTIxRTBGRkU0RDIKKzoxMDE5RDAwMEZFRUIyRkZGRUUzQUZFRUQzOUZERUMzOEZDOTA3ODEyNkQKKzoxMDE5RTAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDYxMjBERDIyMjkwRUEKKzoxMDE5RjAwMDc5MjNFMEZGRTRGQ0ZERkVGQkZBNzkwMUY4MTIwRDQyQzkKKzoxMDFBMDAwMEM4RUNDOEM5RURDOUNBRUVDQUNCRUZDQjkwNzkyMkUwQzkKKzoxMDFBMTAwMEZFRTRGQ0ZEMkJGQkVBM0VGQUVEMzlGOUVDMzhGODkwRDgKKzoxMDFBMjAwMDc5MjFFMEZGRTRGRUVCMkZGRkVFM0FGRUVEMzlGREVDMEQKKzoxMDFBMzAwMDM4RkM5MDc4MTJFMEZCQTNFMEZBQTNFMEY5OTAwMDBBRUEKKzoxMDFBNDAwMDEyMEREMjIyOTA3RkI0RTA0NDAxRjAyMjkwNzk5N0UwMDkKKzoxMDFBNTAwMDE0NzAxODkwNzkyMUUwRkY5MDc4MTJFMEZCQTNFMEZBNkYKKzoxMDFBNjAwMEEzRTBGOTkwMDAwRUVGMTIwQzlDMjI5MDdGQjRFMDQ0QUEKKzowQTFBNzAwMDAxRjAyMjkwN0ZCNEUwNDQwMUYwODEKKzowMTFBN0EwMDIyNDkKKzoxMDFBN0IwMEU0RkZGRTdCMDE5MDc4MEYwNEYwQTM3NDc4RjBBMzc0NUQKKzoxMDFBOEIwMDJCRjA5MDc4MEZFMEZCQTNFMEZBQTNFMEY5OTAwMDAyQjMKKzoxMDFBOUIwMDEyMEM1REZEOTA3RkVDRTA2RDYwMTNFRkMzOTQwNTUwNkQKKzoxMDFBQUIwMDBEMEY5MDc4MTBFNDc1RjAwMzEyMENGNDgwRDQ4RDMzODUKKzoxMDFBQkIwMDkwNzgwRkUwRkJBM0UwRkFBM0UwRjk5MDAwMDExMjBDODEKKzoxMDFBQ0IwMDVERkQ5MDdGRURFMDZENjAxM0VFQzM5NDBCNTAwRDBFM0EKKzoxMDFBREIwMDkwNzgxMEU0NzVGMDAzMTIwQ0Y0ODBENDkwN0ZFREUwNTUKKzoxMDFBRUIwMEY1MzRFRjY0MDU2MDAzQkUwQjA4OTA3RkI0RTA0NDAxNEUKKzoxMDFBRkIwMEYwMjI5MDc4MEZFMEZCQTNFMEZBQTNFMEY5MTIwQzQ0N0MKKzoxMDFCMEIwMEZGMjRGMDYwMDgyNDBGNzAwRTEyNDkyQTIyMTI0QjgzMTcKKzowRTFCMUIwMDkwNzkyMEU1MzRGMDIyOTA3RkI0RTA0NDAxRjA5MAorOjAxMUIyOTAwMjI5OQorOjBGMUIyQTAwOTA3RkVBRTBCNEZGMDQxMjM0MTYyMjEyMzgwMDIyMzIKKzowNzFCMzkwMDUzOThGRTUzOThGRDMyQTIKKzoxMDFCNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUKKzoxMDFCNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODUKKzoxMDFCNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKKzoxMDFCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzoxMDFCODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTUKKzoxMDFCOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDUKKzoxMDFCQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzUKKzoxMDFCQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzoxMDFCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTUKKzoxMDFCRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUKKzoxMDFCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjUKKzoxMDFCRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzoxMDFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDFDMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzQKKzoxMDFDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjQKKzoxMDFDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzoxMDFDNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTQKKzoxMDFDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQKKzoxMDFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKKzoxMDFDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzoxMDFDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKKzoxMDFDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQKKzoxMDFDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzoxMDFDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDFDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDFDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDFDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDFDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKKzoxMDFEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDFEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDFEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMDFENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMDFENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzoxMDFENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzoxMDFENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzoxMDFEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKKzoxMDFEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKKzoxMDFEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzoxMDFEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoxMDFEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKKzoxMDFERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKKzoxMDFERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKKzoxMDFERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzoxMDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKKzoxMDFFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzIKKzoxMDFFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjIKKzoxMDFFMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzoxMDFFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKKzoxMDFFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKKzoxMDFFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzoxMDFFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzoxMDFFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKKzoxMDFFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKKzoxMDFFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKKzowRTFFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwMUVCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwMUVDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwMUVERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwMUVFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwMUVGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwMUYwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwMUYxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwMUYyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjAyMUYzRTAwMDAwMEExCis6MTAxRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTAxRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTAxRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTAxRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTAxRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTAxRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCis6MTAxRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTAxRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTAxRkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTAxRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTAxRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCis6MTAxRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTAyMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTAyMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTAyMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTAyMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwCis6MTAyMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTAyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCis6MTAyMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTAyMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCis6MTAyMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTAyMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTAyMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTAyMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTAyMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTAyMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwCis6MTAyMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTAyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyMTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJGCis6MTAyMTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFGCis6MTAyMTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlGCis6MTAyMTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhGCis6MTAyMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdGCis6MTAyMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTAyMTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyMUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyMjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyMkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyMzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyMzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MEUyMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKKzoxMDIzN0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKKzoxMDIzOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKKzoxMDIzOUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKKzoxMDIzQUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKKzoxMDIzQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKKzoxMDIzQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKKzoxMDIzREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDIzRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDIzRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKKzoxMDI0MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDI0MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKKzoxMDI0MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDI0M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDI0NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDI0NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKKzoxMDI0NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKKzoxMDI0N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzoxMDI0OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKKzoxMDI0OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKKzoxMDI0QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKKzoxMDI0QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKKzoxMDI0Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKKzoxMDI0REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKKzoxMDI0RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDI0RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDI1MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDI1MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDI1MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDI1M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDI1NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDI1NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDI1NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDI1N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDI1OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDI1OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDI1QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDI1QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDI1Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDI1REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDI1RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzoxMDI1RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKKzoxMDI2MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkMKKzoxMDI2MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUMKKzoxMDI2MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUMKKzoxMDI2M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMKKzoxMDI2NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0MKKzoxMDI2NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzoxMDI2NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUMKKzoxMDI2N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEMKKzoxMDI2OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0MKKzoxMDI2OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzoxMDI2QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUMKKzoxMDI2QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMKKzoxMDI2Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkMKKzoxMDI2REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzowRTI2RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjZGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjcwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjcxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjcyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjczQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjc0QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjc1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwMjc2QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwMjc3QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAorOjEwMjc4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwMjc5QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwMjdBQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwMjdCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwMjdDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwMjdEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAorOjEwMjdFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAorOjA1MjdGQzAwMDAwMDAwMDAyMkI2Cis6MTAyODAxMDA5MDc5NjRFMDE0NjA0NjE0NzAwMjQxM0MyNDAyNjAwMjM1Cis6MTAyODExMDA4MTJBOTA3RkZDNzRDQ0YwOTA3RkZGNzRGQ0YwOTA3OTVBCis6MTAyODIxMDA3ODc0MDFGMDkwNzk3Q0UwOTA3OTc5RjA1NEZERjA0NDZFCis6MTAyODMxMDAwMUYwOTA3OTdDRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQjM0Cis6MTAyODQxMDBBMkU1MTI2MDAyRDJBRkU0OTA3OTdBRjAyMjkwNzkyRDVDCis6MTAyODUxMDBFMDY0MDE2MDAyMDFGMTkwN0ZGQzc0Q0NGMDkwN0ZGRjk1Cis6MTAyODYxMDA3NEZDRjA5MDc5Nzg3NDAxRjA5MDc5N0NFMDkwNzk3OTNBCis6MTAyODcxMDBGMDQ0MDFGMDQ0MDJGMDkwNzk3RUUwQjQwMTA5OTA3OUNFCis6MTAyODgxMDA3OUUwNDQwNEYwODAwNzkwNzk3OUUwNTRGQkYwOTA3OTg1Cis6MTAyODkxMDA3OUUwOTA3OTdDRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQjZDCis6MTAyOEExMDBBMjkwNzk3ODc0MDJGMDkwNzk4NEUwOTA3OTc5RjA5MDJGCis6MTAyOEIxMDA3OTdGRTBCNDAxMDk5MDc5NzlFMDU0RkVGMDgwMDc5MEM2Cis6MTAyOEMxMDA3OTc5RTA0NDAxRjA5MDc5NzlFMDU0RkRGMDU0RkJGMDFFCis6MTAyOEQxMDA5MDc5ODRGMDEyMEJBMjkwNzk3QTc0MDFGMDkwNzk2NTY1Cis6MTAyOEUxMDBGMEU1MTI2MDAyRDJBRkU0OTA3OThDRjA5MDc5OEJGMDMwCis6MTAyOEYxMDA5MDc5MkRFMDY0MDI2MDAyMjE5NjkwN0ZGQzc0QzhGMDBCCis6MTAyOTAxMDA5MDdGRkY3NEZDRjA5MDc5Nzg3NDAxRjA5MDc5N0NFMDBECis6MTAyOTExMDA5MDc5NzlGMDQ0MDFGMDQ0MDJGMDkwNzk3RUUwQjQwMUJECis6MTAyOTIxMDAwOTkwNzk3OUUwNDQwNEYwODAwNzkwNzk3OUUwNTRGQkNCCis6MTAyOTMxMDBGMDkwNzk3OUUwOTA3OTdDRjBBMkFGRTQzM0Y1MTJDMjlFCis6MTAyOTQxMDBBRjEyMEJBMjkwNzk3ODc0MDJGMDkwNzk4NEUwOTA3OUJCCis6MTAyOTUxMDA3OUYwOTA3OTdGRTBCNDAxMDk5MDc5NzlFMDU0RkVGMDQzCis6MTAyOTYxMDA4MDA3OTA3OTc5RTA0NDAxRjA5MDc5NzlFMDQ0MDJGMEIwCis6MTAyOTcxMDA1NEZCRjA5MDc5ODRGMDEyMEJBMjkwNzk3QTc0MDFGMEYzCis6MTAyOTgxMDA5MDc5NjU3NDAzRjBFNTEyNjAwMkQyQUZFNDkwNzk4QzFFCis6MTAyOTkxMDBGMDkwNzk4QkYwOTA3OTJERTA2NDAzNjAwMjgxMkE5MEE4Cis6MTAyOUExMDA3RkZDNzQ5OEYwOTA3RkZGNzRGQ0YwOTA3OTc4NzQwMTRCCis6MTAyOUIxMDBGMDkwNzk3Q0UwOTA3OTc5RjA0NDAxRjA0NDAyRjA5MDU0Cis6MTAyOUMxMDA3OTdFRTBCNDAxMDk5MDc5NzlFMDQ0MDRGMDgwMDc5MEMwCis6MTAyOUQxMDA3OTc5RTA1NEZCRjA5MDc5NzlFMDkwNzk3Q0YwQTJBRkJECis6MTAyOUUxMDBFNDMzRjUxMkMyQUYxMjBCQTI5MDc5Nzg3NDAyRjA5MDIxCis6MTAyOUYxMDA3OTg0RTA5MDc5NzlGMDkwNzk3RkUwQjQwMTA5OTA3OTU4Cis6MTAyQTAxMDA3OUUwNTRGRUYwODAwNzkwNzk3OUUwNDQwMUYwOTA3OTAzCis6MTAyQTExMDA3OUUwNTRGREYwNDQwNEYwOTA3OTg0RjAxMjBCQTI5MDE3Cis6MTAyQTIxMDA3OTdBNzQwMUYwOTA3OTY1NzQwNUYwRTUxMjYwMDJEMjRCCis6MTAyQTMxMDBBRkU0OTA3OThDRjA5MDc5OEJGMDIyOTA3OTJERTA2NDVECis6MTAyQTQxMDAwMTYwMDI0MUUwOTA3RkZDNzRCNEYwOTA3RkZGNzRGQzYwCis6MTAyQTUxMDBGMDkwNzk3ODc0MDFGMDkwNzk3Q0UwOTA3OTc5RjA1NDc0Cis6MTAyQTYxMDBGRUYwNDQwMkYwOTA3OTdFRTBCNDAxMDk5MDc5NzlFMEJBCis6MTAyQTcxMDA0NDA0RjA4MDA3OTA3OTc5RTA1NEZCRjA5MDc5NzlFMDkzCis6MTAyQTgxMDA5MDc5N0NGMEEyQUZFNDMzRjUxMkMyQUYxMjBCQTI5MEExCis6MTAyQTkxMDA3OTc4NzQwMkYwOTA3OTg0RTA5MDc5NzlGMDkwNzk3Rjc3Cis6MTAyQUExMDBFMEI0MDEwOTkwNzk3OUUwNTRGRUYwODAwNzkwNzk3OURBCis6MTAyQUIxMDBFMDQ0MDFGMDkwNzk3OUUwNTRGREYwNTRGQkYwOTA3OTE1Cis6MTAyQUMxMDA4NEYwMTIwQkEyOTA3OTdBNzQwMUYwOTA3OTY1MDRGMDg4Cis6MTAyQUQxMDBFNTEyNjAwMkQyQUZFNDkwNzk4Q0YwOTA3OThCRjA5MDlFCis6MTAyQUUxMDA3OTJERTA2NDAyNjAwMjYxODU5MDdGRkM3NEIwRjA5MDAyCis6MTAyQUYxMDA3RkZGNzRGQ0YwOTA3OTc4NzQwMUYwOTA3OTdDRTA5MDFDCis6MTAyQjAxMDA3OTc5RjA1NEZFRjA0NDAyRjA5MDc5N0VFMEI0MDEwOTQ1Cis6MTAyQjExMDA5MDc5NzlFMDQ0MDRGMDgwMDc5MDc5NzlFMDU0RkJGMEYyCis6MTAyQjIxMDA5MDc5NzlFMDkwNzk3Q0YwQTJBRkU0MzNGNTEyQzJBRkVECis6MTAyQjMxMDAxMjBCQTI5MDc5Nzg3NDAyRjA5MDc5ODRFMDkwNzk3OUZGCis6MTAyQjQxMDBGMDkwNzk3RkUwQjQwMTA5OTA3OTc5RTA1NEZFRjA4MDRBCis6MTAyQjUxMDAwNzkwNzk3OUUwNDQwMUYwOTA3OTc5RTA0NDAyRjA1NEVBCis6MTAyQjYxMDBGQkYwOTA3OTg0RjAxMjBCQTI5MDc5N0E3NDAxRjA5MEM1Cis6MTAyQjcxMDA3OTY1NzQwNEYwRTUxMjYwMDJEMkFGRTQ5MDc5OENGMENCCis6MTAyQjgxMDA5MDc5OEJGMDkwNzkyREUwNjQwMzYwMDI4MTJBOTA3RjI3Cis6MTAyQjkxMDBGQzc0NjhGMDkwN0ZGRjc0RkNGMDkwNzk3ODc0MDFGMDE4Cis6MTAyQkExMDA5MDc5N0NFMDkwNzk3OUYwNTRGRUYwNDQwMkYwOTA3OUNDCis6MTAyQkIxMDA3RUUwQjQwMTA5OTA3OTc5RTA0NDA0RjA4MDA3OTA3OUNFCis6MTAyQkMxMDA3OUUwNTRGQkYwOTA3OTc5RTA5MDc5N0NGMEEyQUZFNDYwCis6MTAyQkQxMDAzM0Y1MTJDMkFGMTIwQkEyOTA3OTc4NzQwMkYwOTA3OTlBCis6MTAyQkUxMDA4NEUwOTA3OTc5RjA5MDc5N0ZFMEI0MDEwOTkwNzk3OTY2Cis6MTAyQkYxMDBFMDU0RkVGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwNzk3OTEyCis6MTAyQzAxMDBFMDU0RkRGMDQ0MDRGMDkwNzk4NEYwMTIwQkEyOTA3OTI1Cis6MTAyQzExMDA3QTc0MDFGMDkwNzk2NTc0MDZGMEU1MTI2MDAyRDJBRjIyCis6MEEyQzIxMDBFNDkwNzk4Q0YwOTA3OThCRjAyMjlBCis6MTAyQzJCMDBFNEZGN0IwMTkwNzgxNjA0RjBBMzc0NzhGMEEzNzQ1ODNBCis6MTAyQzNCMDBGMDkwNzgxNkUwRkJBM0UwRkFBM0UwRjk5MDAwMDExMjA0Cis6MTAyQzRCMDAwQzVERkU5MDdGRUNFMDZFNjAxM0VGQzM5NDA2NTAwREFECis6MTAyQzVCMDAwRjkwNzgxN0U0NzVGMDBGMTIwQ0Y0ODBENEJGMDYwOEIwCis6MTAyQzZCMDA5MDdGQjRFMDQ0MDFGMDIyOTA3ODE2RTBGQkEzRTBGQUU5Cis6MTAyQzdCMDBBM0UwRjkxMjBDNDRGRjI0OUY3MDAyQzE2NjI0MjE2MDZCCis6MTAyQzhCMDAwMkMxOEM5MDdGRTlFMDI0N0U3MDAyQTEzMDE0NzAwMkE3Cis6MTAyQzlCMDBBMUM4MjQwMjYwMDJDMTVFOTAwMDAyMTIwREEyN0I0NDA3Cis6MTAyQ0FCMDA3QUFDNzkwMDc4MDBDMzEyMEQ5MTcwMTM5MDdGMDA3NDg5Cis6MTAyQ0JCMDA0NEYwQTM3NEFDRjBFNEEzRjA5MDdGQjU3NDAzRjA5MEYwCis6MTAyQ0NCMDA3ODE2RTBGQkEzRTBGQUEzRTBGOTkwMDAwMjEyMERBMjQ0Cis6MTAyQ0RCMDA3QjgwN0FCQjc5MDA3ODAwQzMxMjBEOTE3MDEzOTA3RkMzCis6MTAyQ0VCMDAwMDc0ODBGMEEzNzRCQkYwRTRBM0YwOTA3RkI1NzQwMzgxCis6MTAyQ0ZCMDBGMDkwNzgxNkUwRkJBM0UwRkFBM0UwRjk5MDAwMDIxMjQzCis6MTAyRDBCMDAwREEyN0IwMDdBNzc3OTAxNzgwMEMzMTIwRDkxNjAwMkQ2Cis6MTAyRDFCMDBDMTkzOTA3RjAwRjBBMzc0NzdGMEEzNzQwMUYwOTA3RkMwCis6MTAyRDJCMDBCNTc0MDNGMDIyOTA3ODE2RTBGQkEzRTBGQUEzRTBGOTY4Cis6MTAyRDNCMDA5MDAwMDYxMjBEQTI3QjQ0N0FBQzc5MDA3ODAwQzMxMjg2Cis6MTAyRDRCMDAwRDkxNzAxMzkwN0YwMDc0NDRGMEEzNzRBQ0YwRTRBMzY2Cis6MTAyRDVCMDBGMDkwN0ZCNTc0MDNGMDkwNzgxNkUwRkJBM0UwRkFBMzM0Cis6MTAyRDZCMDBFMEY5OTAwMDA2MTIwREEyN0I4MDdBQkI3OTAwNzgwMDA3Cis6MTAyRDdCMDBDMzEyMEQ5MTcwMTM5MDdGMDA3NDgwRjBBMzc0QkJGMDlECis6MTAyRDhCMDBFNEEzRjA5MDdGQjU3NDAzRjA5MDc4MTZFMEZCQTNFMDFBCis6MTAyRDlCMDBGQUEzRTBGOTkwMDAwNjEyMERBMjdCMDA3QTc3NzkwMTc1Cis6MTAyREFCMDA3ODAwQzMxMjBEOTE2MDAyQzE5MzkwN0YwMEYwQTM3NDYxCis6MTAyREJCMDA3N0YwQTM3NDAxRjA5MDdGQjU3NDAzRjAyMjkwNzgxNjJFCis6MTAyRENCMDBFMEZCQTNFMEZBQTNFMEY5OTAwMDBBMTIwREEyN0I0NDBBCis6MTAyRERCMDA3QUFDNzkwMDc4MDBDMzEyMEQ5MTcwMTM5MDdGMDA3NDU4Cis6MTAyREVCMDA0NEYwQTM3NEFDRjBFNEEzRjA5MDdGQjU3NDAzRjA5MEJGCis6MTAyREZCMDA3ODE2RTBGQkEzRTBGQUEzRTBGOTkwMDAwQTEyMERBMjBCCis6MTAyRTBCMDA3QjgwN0FCQjc5MDA3ODAwQzMxMjBEOTE3MDEzOTA3RjkxCis6MTAyRTFCMDAwMDc0ODBGMEEzNzRCQkYwRTRBM0YwOTA3RkI1NzQwMzRGCis6MTAyRTJCMDBGMDkwNzgxNkUwRkJBM0UwRkFBM0UwRjk5MDAwMEExMjA5Cis6MTAyRTNCMDAwREEyN0IwMDdBNzc3OTAxNzgwMEMzMTIwRDkxNzA0ODRGCis6MTAyRTRCMDA5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MDdGQjU3NEJBCis6MTAyRTVCMDAwM0YwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkU5RTAyNDVDCis6MTAyRTZCMDA3RjcwMTY5MDc4MTZFMEZCQTNFMEZBQTNFMEY5OTAwMEQwCis6MTAyRTdCMDAwRTEyMEM1RDkwN0YwMEYwMjI5MDdGQjRFMDQ0MDFGMEM1Cis6MDgyRThCMDAyMjkwN0ZCNEUwNDQwMUYwNDUKKzowMTJFOTMwMDIyMUMKKzoxMDJFOTQwMDc1MzYyNTc1MzcyNDkwNzk3NEUwNjQwMTcwNTRGMEY1MjMKKzoxMDJFQTQwMDM1NzUyMjAxRTUyMjY0MDE3MDQ4OTA3RkE1RTA0NDgwRDUKKzoxMDJFQjQwMEYwOTA3RkE2RTUzNkYwMTI0NkMwNzQ0RjI1MzVGNTgyQjIKKzoxMDJFQzQwMEU0MzQ3OUY1ODNFMDkwN0ZBNkYwMTI0NkMwNzQzNTI1OEEKKzoxMDJFRDQwMDM1RjU4MkU0MzQ3OUY1ODNFMDkwN0ZBNkYwMTI0NkMwOUMKKzoxMDJFRTQwMDkwN0ZBNTc0NDBGMDEyMEFDRDA1MzVFNTM1QzM5NDBERTUKKzoxMDJFRjQwMDQwQjI5MDc5NzVFMDY0MDE2MDAyRTFERUYwOTA3OTIwREYKKzoxMDJGMDQwMEUwNjQwNTYwMDJFMThEN0IwMTkwNzk1QzA0RjBBMzc0QjgKKzoxMDJGMTQwMDc4RjBBMzc0QjJGMDc1MzMwNzkwNzk1Q0UwRkJBM0UwMUEKKzoxMDJGMjQwMEZBQTNFMEY5OTAwMDAxMTIwQzVENzAwRjkwMDAwNDEyRjYKKzoxMDJGMzQwMDBDNUQ5MDc5MkZGMDEyMEMyOTgwMDY5MDc5MkY3NEZGODQKKzoxMDJGNDQwMEYwRTRGNTM1NzUyMjAxNzUzNDAyRTUyMjY0MDE3MDM5MjcKKzoxMDJGNTQwMDkwN0ZBNUUwNDQ4MEYwOTA3RkE2RTUzNkYwMTI0NkMwNEQKKzoxMDJGNjQwMEFGMzQwNTM0OTA3RkE2RUZGMDEyNDZDMDkwNzkyRkUwN0QKKzoxMDJGNzQwMDkwN0ZBNkYwMTI0NkMwOTA3RkE1NzQ0MEYwMTIwQUNENEYKKzoxMDJGODQwMDA1MzVFNTM1QzM5NDA2NDBDMTkwNzkyMEUwNjQwNjcwQTgKKzoxMDJGOTQwMDQ5N0IwMTkwNzk1RjA0RjBBMzc0NzhGMEEzNzRGRkYwODcKKzoxMDJGQTQwMDc1MzMwMzkwNzk1RkUwRkJBM0UwRkFBM0UwRjk5MDAwQTYKKzoxMDJGQjQwMDAxMTIwQzVENzAxQzkwMDAwNDEyMEM1RDkwNzkzM0YwQ0EKKzoxMDJGQzQwMDcwMDM3NEZGRjA5MDc5MzNFMDU0N0ZGRkYwMjVFMEYwNTQKKzowQTJGRDQwMDgwMDVFNDkwNzkzM0YwMTI0N0RGMjYKKzowMTJGREUwMDIyRDAKKzoxMDJGREYwMDkwNzk3ODc0MDNGMDkwNzk4M0UwOTA3OTc5RjBBMkFGQ0IKKzoxMDJGRUYwMEU0MzNGNTEyQzJBRjEyMEJBMkU1MTI2MDAyRDJBRjIyODgKKzowMTJGRkYwMDIyQUYKKzoxMDMwMDAwMEU0RkU5MDc5MjBFMEZEQjQwNTExOTA3ODI1NzQwMUYwN0MKKzoxMDMwMTAwMEEzNzQ3OEYwQTM3NEIyRjA3NTM1MDdFREI0MDYxMTkwN0YKKzoxMDMwMjAwMDc4MjU3NDAxRjBBMzc0NzhGMEEzNzRGRkYwNzUzNTAzNkMKKzoxMDMwMzAwMDkwN0ZFQkUwMTQ2MDExMTQ2MDVCMjQwMjYwMDI0MTA1OTQKKzoxMDMwNDAwMDkwN0ZCNEUwNDQwMUYwMjI5MDdGRTlFMDI0N0Y3MDNENUUKKzoxMDMwNTAwMEU0RkZFRkMzOTUzNTUwMkY5MDc4MjVFMEZCQTNFMEZBMEQKKzoxMDMwNjAwMEEzRTBGOTkwMDAwMTEyMEM1REZEQ0NFRUNDMEU3NDAwRDMKKzoxMDMwNzAwMDJDRjU4MkU0MzQ3RkY1ODNFREYwOTA3ODI2RTQ3NUYwNEEKKzoxMDMwODAwMDBCMTIwQ0Y0MEY4MENCOTA3RkI1RUVGMDIyOTA3RkI0NDIKKzoxMDMwOTAwMEUwNDQwMUYwMjI5MDdGRTlFMDI0N0U2MDY0MTQ3MDAyMzUKKzoxMDMwQTAwMDIxNTUxNDcwMDIyMUE5MjQwMzYwMDIyMUZERTRGRkVGRTEKKzoxMDMwQjAwMEMzOTUzNTUwNDY5MDc4MjVFMEZCQTNFMEZBQTNFMEY5RUMKKzoxMDMwQzAwMDkwMDAwMzEyMEM1REZEQ0NFRUNDMEU3NDAwMkNGNTgyNEEKKzoxMDMwRDAwMEU0MzQ3RkY1ODNFREYwOTAwMDA0MTIwQzVERkRDQ0VFM0UKKzoxMDMwRTAwMENDMEU3NDAwMkNGNTgyRTQzNDdGRjU4M0VERjA5MDc4RkIKKzoxMDMwRjAwMDI2RTQ3NUYwMEIxMjBDRjQwRjgwQjQ5MDdGQjVFRUYwNUYKKzoxMDMxMDAwMDIyRTRGRkVGQzM5NTM1NTA0NjkwNzgyNUUwRkJBM0UwMUQKKzoxMDMxMTAwMEZBQTNFMEY5OTAwMDA1MTIwQzVERkRDQ0VFQ0MwRTc0MjQKKzoxMDMxMjAwMDAwMkNGNTgyRTQzNDdGRjU4M0VERjA5MDAwMDYxMjBDNUMKKzoxMDMxMzAwMDVERkRDQ0VFQ0MwRTc0MDAyQ0Y1ODJFNDM0N0ZGNTgzN0IKKzoxMDMxNDAwMEVERjA5MDc4MjZFNDc1RjAwQjEyMENGNDBGODBCNDkwM0IKKzoxMDMxNTAwMDdGQjVFRUYwMjJFNEZGRUZDMzk1MzU1MDQ2OTA3ODI1MTkKKzoxMDMxNjAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDcxMjBDNURGRENDQjAKKzoxMDMxNzAwMEVFQ0MwRTc0MDAyQ0Y1ODJFNDM0N0ZGNTgzRURGMDkwRjQKKzoxMDMxODAwMDAwMDgxMjBDNURGRENDRUVDQzBFNzQwMDJDRjU4MkU0MzAKKzoxMDMxOTAwMDM0N0ZGNTgzRURGMDkwNzgyNkU0NzVGMDBCMTIwQ0Y0OTMKKzoxMDMxQTAwMDBGODBCNDkwN0ZCNUVFRjAyMkU0RkZFRkMzOTUzNTUwNjkKKzoxMDMxQjAwMDQ2OTA3ODI1RTBGQkEzRTBGQUEzRTBGOTkwMDAwOTEyMUQKKzoxMDMxQzAwMDBDNURGRENDRUVDQzBFNzQwMDJDRjU4MkU0MzQ3RkY1NjIKKzoxMDMxRDAwMDgzRURGMDkwMDAwQTEyMEM1REZEQ0NFRUNDMEU3NDAwNzUKKzoxMDMxRTAwMDJDRjU4MkU0MzQ3RkY1ODNFREYwOTA3ODI2RTQ3NUYwRDkKKzoxMDMxRjAwMDBCMTIwQ0Y0MEY4MEI0OTA3RkI1RUVGMDIyOTA3RkI0RTgKKzowQzMyMDAwMEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMEIzCis6MDEzMjBDMDAyMjlGCis6MTAzMjBEMDA3QjAxN0E3ODc5MkI5MDc4MDBFQkYwQTNFQUYwQTNFOUIzCis6MTAzMjFEMDBGMDc0MDExMjBDOEE5MDc4MDBFMEZCQTNFMEZBQTNFMEIxCis6MTAzMjJEMDBGOTkwMDAwMTc0MDExMjBDOUM5MDAwMDJFNDEyMEM5Q0E4Cis6MTAzMjNEMDA5MDc4MDFFNDc1RjAwMzEyMENGNDkwNzgwMEUwRkJBMzk0Cis6MTAzMjREMDBFMEZBQTNFMEY5NzQxMDEyMEM4QTkwNzgwMEUwRkJBMzY5Cis6MTAzMjVEMDBFMEZBQTNFMEY5OTAwMDAxNzQwNTEyMEM5QzkwMDAwMkI1Cis6MTAzMjZEMDBFNDEyMEM5QzkwNzgwMUU0NzVGMDAzMTIwQ0Y0OTA3ODQ0Cis6MTAzMjdEMDAwMEUwRkJBM0UwRkFBM0UwRjk3NDAyMTIwQzhBOTA3ODQ3Cis6MTAzMjhEMDAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDE3NDAyMTIwQzM4Cis6MTAzMjlEMDA5QzkwMDAwMkU0MTIwQzlDOTA3ODAxRTQ3NUYwMDMxMkVFCis6MTAzMkFEMDAwQ0Y0OTA3ODAwRTBGQkEzRTBGQUEzRTBGOTc0MDExMkFFCis6MTAzMkJEMDAwQzhBOTA3ODAwRTBGQkEzRTBGQUEzRTBGOTkwMDAwMUZFCis6MTAzMkNEMDA3NDAzMTIwQzlDOTAwMDAyRTQxMjBDOUM5MDc4MDFFNEEzCis6MTAzMkREMDA3NUYwMDMxMjBDRjQ5MDc4MDBFMEZCQTNFMEZBQTNFMDg0Cis6MTAzMkVEMDBGOTc0MTAxMjBDOEE5MDc4MDBFMEZCQTNFMEZBQTNFMEM5Cis6MTAzMkZEMDBGOTkwMDAwMTc0MDYxMjBDOUM5MDAwMDJFNDEyMEM5Q0QzCis6MTAzMzBEMDA5MDc4MDFFNDc1RjAwMzEyMENGNDkwNzgwMEUwRkJBM0MzCis6MTAzMzFEMDBFMEZBQTNFMEY5NzQwMjEyMEM4QTkwNzgwMEUwRkJBM0E2Cis6MTAzMzJEMDBFMEZBQTNFMEY5OTAwMDAxNzQwNDEyMEM5QzkwMDAwMkU1Cis6MTAzMzNEMDBFNDEyMEM5QzkwNzgwMUU0NzVGMDAzMTIwQ0Y0OTA3ODczCis6MTAzMzREMDAwMEUwRkJBM0UwRkFBM0UwRjk3NDAyMTIwQzhBOTA3ODc2Cis6MTAzMzVEMDAwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDE3NDA0MTIwQzY1Cis6MTAzMzZEMDA5QzkwMDAwMjc0MDQxMjBDOUM5MDc4MDFFNDc1RjAwMzlCCis6MTAzMzdEMDAxMjBDRjQ5MDc4MDBFMEZCQTNFMEZBQTNFMEY5NzQwMkRDCis6MTAzMzhEMDAxMjBDOEE5MDc4MDBFMEZCQTNFMEZBQTNFMEY5OTAwMDFDCis6MTAzMzlEMDAwMTc0MDMxMjBDOUM5MDAwMDI3NDA0MTIwQzlDOTA3ODIyCis6MTAzM0FEMDAwMUU0NzVGMDAzMTIwQ0Y0OTA3ODAwRTBGQkEzRTBGQTUxCis6MTAzM0JEMDBBM0UwRjk3NDAyMTIwQzhBOTA3ODAwRTBGQkEzRTBGQTA2Cis6MTAzM0NEMDBBM0UwRjk5MDAwMDE3NDAyMTIwQzlDOTAwMDAyNzQwNEE5Cis6MTAzM0REMDAxMjBDOUM5MDc4MDFFNDc1RjAwMzEyMENGNDkwNzgwMEI3Cis6MTAzM0VEMDBFMEZCQTNFMEZBQTNFMEY5NzQwMjEyMEM4QTkwNzgwMEQ2Cis6MTAzM0ZEMDBFMEZCQTNFMEZBQTNFMEY5OTAwMDAxNzQwMTEyMEM5QzJDCis6MDgzNDBEMDA5MDAwMDI3NDA0MTIwQzlDRjMKKzowMTM0MTUwMDIyOTQKKzoxMDM0MTYwMEU0RkU5MDc5MjBFMEZEQjQwNTExOTA3ODFGNzQwMUYwNjgKKzoxMDM0MjYwMEEzNzQ3OEYwQTM3NEIyRjA3NTM1MDdFREI0MDYxMTkwNjUKKzoxMDM0MzYwMDc4MUY3NDAxRjBBMzc0NzhGMEEzNzRGRkYwNzUzNTAzNTgKKzoxMDM0NDYwMDkwNzk5OUUwMTQ2MDExMTQ2MDVCMjQwMjYwMDJDMTA2NTEKKzoxMDM0NTYwMDkwN0ZCNEUwNDQwMUYwMjI5MDc5OTdFMDE0NzAzRUU0NDYKKzoxMDM0NjYwMEZGRUZDMzk1MzU1MDJGQ0RFRUNEMEU3NDIxMkRGNTgyOEQKKzoxMDM0NzYwMEU0MzQ3OUY1ODNFMEZEOTA3ODFGRTBGQkEzRTBGQUEzM0UKKzoxMDM0ODYwMEUwRjk5MDAwMDFFRDEyMEM5QzkwNzgyMEU0NzVGMDBCQTkKKzoxMDM0OTYwMDEyMENGNDBGODBDQjkwNzk3NTc0MDFGMDIyOTA3RkI0RjIKKzoxMDM0QTYwMEUwNDQwMUYwMjI5MDc5OTdFMDI0RkU2MDYzMTQ3MDAyRjQKKzoxMDM0QjYwMEExNjQxNDcwMDJBMUIyMjQwMzYwMDJBMUZFRTRGRkVGMkUKKzoxMDM0QzYwMEMzOTUzNTUwNDRDREVFQ0QwRTc0MjEyREY1ODJFNDM0RUUKKzoxMDM0RDYwMDc5RjU4M0UwRkQ5MDc4MUZFMEZCQTNFMEZBQTNFMEY5MUQKKzoxMDM0RTYwMDkwMDAwM0VEMTIwQzlDQ0RFRUNEMEU3NDIxMkRGNTgyQ0QKKzoxMDM0RjYwMEU0MzQ3OUY1ODNFMDkwMDAwNDEyMEM5QzkwNzgyMEU0ODMKKzoxMDM1MDYwMDc1RjAwQjEyMENGNDBGODBCNjkwNzk3NTc0MDFGMDIyRTkKKzoxMDM1MTYwMEU0RkZFRkMzOTUzNTQwMDJDMTBEQ0RFRUNEMEU3NDIxMEIKKzoxMDM1MjYwMDJERjU4MkU0MzQ3OUY1ODNFMEZEOTA3ODFGRTBGQkEzNjYKKzoxMDM1MzYwMEUwRkFBM0UwRjk5MDAwMDVFRDEyMEM5Q0NERUVDRDBFNUQKKzoxMDM1NDYwMDc0MjEyREY1ODJFNDM0NzlGNTgzRTA5MDAwMDYxMjBDOUYKKzoxMDM1NTYwMDlDOTA3ODIwRTQ3NUYwMEIxMjBDRjQwRjgwQjRFNEZGMTUKKzoxMDM1NjYwMEVGQzM5NTM1NDAwMkMxMERDREVFQ0QwRTc0MjEyREY1N0MKKzoxMDM1NzYwMDgyRTQzNDc5RjU4M0UwRkQ5MDc4MUZFMEZCQTNFMEZBNUUKKzoxMDM1ODYwMEEzRTBGOTkwMDAwN0VEMTIwQzlDQ0RFRUNEMEU3NDIxNTAKKzoxMDM1OTYwMDJERjU4MkU0MzQ3OUY1ODNFMDkwMDAwODEyMEM5QzkwQjYKKzoxMDM1QTYwMDc4MjBFNDc1RjAwQjEyMENGNDBGODBCNEU0RkZFRkMzM0YKKzoxMDM1QjYwMDk1MzU1MDUzQ0RFRUNEMEU3NDIxMkRGNTgyRTQzNDc5MzgKKzoxMDM1QzYwMEY1ODNFMEZEOTA3ODFGRTBGQkEzRTBGQUEzRTBGOTkwMTUKKzoxMDM1RDYwMDAwMDlFRDEyMEM5Q0NERUVDRDBFNzQyMTJERjU4MkU0ODIKKzoxMDM1RTYwMDM0NzlGNTgzRTA5MDAwMEExMjBDOUM5MDc4MjBFNDc1RkIKKzoxMDM1RjYwMEYwMEIxMjBDRjQwRjgwQjY5MDdGQjRFMDQ0MDFGMDIyNzkKKzowNzM2MDYwMDkwN0ZCNEUwNDQwMUYwRTUKKzowMTM2MEQwMDIyOUEKKzoxMDM2MEUwMEU0RkU5MDc5MjBFMEZEQjQwNTEwOTA3ODI4NzQwMUYwNjYKKzoxMDM2MUUwMEEzNzQ3OEYwQTM3NEIyRjA3RjA3RURCNDA2MTA5MDc4MUYKKzoxMDM2MkUwMDI4NzQwMUYwQTM3NDc4RjBBMzc0RkZGMDdGMDM5MDc4RjAKKzoxMDM2M0UwMDI4RTBGQkEzRTBGQUEzRTBGOTEyMEM0NEZEOTA3RkVBMjgKKzoxMDM2NEUwMEUwNkQ2MDEyRUVDMzlGNTAwRDkwNzgyOUU0NzVGMDBCN0IKKzoxMDM2NUUwMDEyMENGNDBFODBEODkwN0ZFQkUwMTQ2MDExMTQ2MDQ2Q0IKKzoxMDM2NkUwMDI0MDI2MDAyRTE5QTkwN0ZCNEUwNDQwMUYwMjI5MDdGNDAKKzoxMDM2N0UwMEU5RTAyNDdGNzAyOEVFNkY3MDA4OTA3RkI0RTA0NDAxN0IKKzoxMDM2OEUwMEYwMjI5MDc4MjhFMEZCQTNFMEZBQTNFMEY5OTAwMDAxODUKKzoxMDM2OUUwMDEyMEM1RDkwN0YwMEYwOTA3RkI1NzQwMUYwMjI5MDdGNDgKKzoxMDM2QUUwMEI0RTA0NDAxRjAyMjkwN0ZFOUUwMjQ3RTYwNDAxNDYwOTMKKzoxMDM2QkUwMDZGMTQ3MDAyRTE2MDI0MDM2MDAyRTE5MkVFNkY3MDA4RjUKKzoxMDM2Q0UwMDkwN0ZCNEUwNDQwMUYwMjI5MDc4MjhFMEZCQTNFMEZBNkEKKzoxMDM2REUwMEEzRTBGOTkwMDAwMzEyMEM1RDkwN0YwMEYwOTAwMDA0QkYKKzoxMDM2RUUwMDEyMEM1RDkwN0YwMUYwOTA3RkI1NzQwMkYwMjJFRTZGQTgKKzoxMDM2RkUwMDcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3ODI4RTBGQkEzOUMKKzoxMDM3MEUwMEUwRkFBM0UwRjk5MDAwMDUxMjBDNUQ5MDdGMDBGMDkwQjYKKzoxMDM3MUUwMDAwMDYxMjBDNUQ5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyQ0UKKzoxMDM3MkUwMEVFNkY3MDA4OTA3RkI0RTA0NDAxRjAyMjkwNzgyOEUwQUMKKzoxMDM3M0UwMEZCQTNFMEZBQTNFMEY5OTAwMDA3MTIwQzVEOTA3RjAwNjYKKzoxMDM3NEUwMEYwOTAwMDA4MTIwQzVEOTA3RjAxRjA5MDdGQjU3NDAyMkUKKzoxMDM3NUUwMEYwMjJFRTZGNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDc4NzIKKzoxMDM3NkUwMDI4RTBGQkEzRTBGQUEzRTBGOTkwMDAwOTEyMEM1RDkwQUIKKzoxMDM3N0UwMDdGMDBGMDkwMDAwQTEyMEM1RDkwN0YwMUYwOTA3RkI1RjMKKzoxMDM3OEUwMDc0MDJGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwMDYKKzowMzM3OUUwMDQ0MDFGMEYzCis6MDEzN0ExMDAyMjA1Cis6MTAzN0EyMDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMEExCis6MTAzN0IyMDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRjVDCis6MTAzN0MyMDBDMEUwNTM5MUVGOTA3RkFCNzQxMEYwOTA3OTgzRTA1NDk2Cis6MTAzN0QyMDBGREYwMTIyRkRGRDBFMEZGRDBFMEZFRDBFMEZERDBFMDIwCis6MTAzN0UyMDBGQ0QwRTBGQkQwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMEM1Cis6MDgzN0YyMDA4MkQwODNEMEYwRDBFMDMyNTgKKzowNjM3RkEwMDUzOTFCRkQyMjYzMkZDCis6MTAzODAwMDBFNEZFOTA3OTIwRTBGREI0MDUxMDkwNzgyMjc0MDFGMDc4Cis6MTAzODEwMDBBMzc0NzhGMEEzNzRCMkYwN0YwN0VEQjQwNjEwOTA3ODJCCis6MTAzODIwMDAyMjc0MDFGMEEzNzQ3OEYwQTM3NEZGRjA3RjAzOTA3ODAyCis6MTAzODMwMDAyMkUwRkJBM0UwRkFBM0UwRjkxMjBDNDRGRDkwNzk5ODkyCis6MTAzODQwMDBFMDZENjAxMkVFQzM5RjUwMEQ5MDc4MjNFNDc1RjAwQjhECis6MTAzODUwMDAxMjBDRjQwRTgwRDg5MDc5OTlFMDE0NjAxMTE0NjA0ODJECis6MTAzODYwMDAyNDAyNjAwMjIxODU5MDdGQjRFMDQ0MDFGMDIyOTA3OTI3Cis6MTAzODcwMDA5N0UwMTQ3MDJCRUU2RjcwMDk5MDdGQjRFMDQ0MDFGMDc0Cis6MTAzODgwMDA4MDE3OTA3OTIxRTBGRDkwNzgyMkUwRkJBM0UwRkFBMzc1Cis6MTAzODkwMDBFMEY5OTAwMDAxRUQxMjBDOUM5MDc5NzU3NDAxRjAyMjEyCis6MTAzOEEwMDA5MDdGQjRFMDQ0MDFGMDIyOTA3OTk3RTAyNEZFNjA0M0Q5Cis6MTAzOEIwMDAxNDYwNkUxNDcwMDIyMTRGMjQwMzYwMDIyMTdERUU2RkFDCis6MTAzOEMwMDA3MDA5OTA3RkI0RTA0NDAxRjA4MDIxOTA3OTIxRTBGREZGCis6MTAzOEQwMDA5MDc4MjJFMEZCQTNFMEZBQTNFMEY5OTAwMDAzRUQxMjU4Cis6MTAzOEUwMDAwQzlDOTA3OTIyRTA5MDAwMDQxMjBDOUM5MDc5NzU3NEU1Cis6MTAzOEYwMDAwMUYwMjJFRTZGNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDU2Cis6MTAzOTAwMDA3OTIxRTBGRDkwNzgyMkUwRkJBM0UwRkFBM0UwRjk5MEIyCis6MTAzOTEwMDAwMDA1RUQxMjBDOUM5MDc5MjJFMDkwMDAwNjEyMEM5Q0EwCis6MTAzOTIwMDAyMkVFNkY3MDA4OTA3RkI0RTA0NDAxRjAyMjkwNzkyMTdDCis6MTAzOTMwMDBFMEZEOTA3ODIyRTBGQkEzRTBGQUEzRTBGOTkwMDAwNzE1Cis6MTAzOTQwMDBFRDEyMEM5QzkwNzkyMkUwOTAwMDA4MTIwQzlDMjJFRTYzCis6MTAzOTUwMDA2RjcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3OTIxRTBGRTdFCis6MTAzOTYwMDA5MDc4MjJFMEZCQTNFMEZBQTNFMEY5OTAwMDA5RUUxMkMwCis6MTAzOTcwMDAwQzlDOTA3OTIyRTA5MDAwMEExMjBDOUMyMjkwN0ZCNDVCCis6MEMzOTgwMDBFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyQworOjAxMzk4QzAwMjIxOAorOjEwMzk4RDAwQTJBRkU0MzNGNTEyRTQ5MDc5ODNGMDEyMkZERjkwN0YyQworOjEwMzk5RDAwRTA3NDkwRjA5MDdGRTE3NDA0RjBFNDkwN0ZEREYwOTA5RQorOjEwMzlBRDAwN0ZBMUYwNTM4RUY4NzU4ODA1NzVCODIwNzVGODAxNDMyMQorOjEwMzlCRDAwOEUzMEY1Qzg3NUNBN0Y3NUNCRjg0M0E4MjA5MDc5NzQwMQorOjEwMzlDRDAwMDRGMEMyMjJFNEY1MEY5MDc5NzhGMEEzRjA5MDc5NjJCQgorOjEwMzlERDAwRjBBM0YwQTNGMDkwNzk2NkYwQTNGMDkwNzk3QkYwQTNCQgorOjEwMzlFRDAwRjA5MDc5ODRGMDkwNzk3REYwOTA3OTc1RjBBM0YwQTM0MworOjEwMzlGRDAwRjBDMjIzQzIyNEMyMjVDMjI2QzIyMDkwN0Y5QkUwRjVDRgorOjEwM0EwRDAwMEE1NDIwRjUwQTcwMDY5MDc5N0VGMDgwMDY5MDc5N0UzMgorOjEwM0ExRDAwNzQwMUYwOTA3RjlCRTBGNTBBNTQwMkY1MEE3MDA2OTA1MAorOjEwM0EyRDAwNzk3RkYwODAwNjkwNzk3Rjc0MDFGMDkwNzk3ODc0MDIzNworOjEwM0EzRDAwRjA5MDc5ODRFMDkwNzk3OUYwOTA3OTdGRTBCNDAxMDk4NAorOjEwM0E0RDAwOTA3OTc5RTA1NEZFRjA4MDA3OTA3OTc5RTA0NDAxRjBBNworOjEwM0E1RDAwOTA3OTc5RTA5MDc5ODRGMDEyMEJBMjkwNzk3ODc0MDFDNQorOjEwM0E2RDAwRjA5MDc5N0NFMDkwNzk3OUYwOTA3OTdFRTBCNDAxMDk1RAorOjEwM0E3RDAwOTA3OTc5RTA0NDA0RjA4MDA3OTA3OTc5RTA1NEZCRjA3NworOjEwM0E4RDAwOTA3OTc5RTA5MDc5N0NGMDEyMEJBMkU0OTA3OTc4RjAzRQorOjEwM0E5RDAwQTMwNEYwRTQ5MDc5ODhGMDEyMEJBMjkwN0ZGQzc0REQwMgorOjEwM0FBRDAwRjA5MDdGRkY3NEZGRjA5MDc5Nzg3NDAxRjBBM0YwMTIxRAorOjEwM0FCRDAwMEJBMkU0OTA3OTdBRjA5MDc5ODMwNEYwMTIyRkRGRTQ3MQorOjEwM0FDRDAwOTA3OTMwRjA5MDc5ODVGMEEzRjBBM0YwMTIyRTk0OTBCOAorOjEwM0FERDAwNzkyRDc0MDJGMDkwNzk4ODE0RjBDMjJGRTQ5MDc5NjhGMgorOjEwM0FFRDAwRjA5MDc5OEFGMDkwNzk2QUYwQTNGMDc1MTMwODc1MTQ0NworOjEwM0FGRDAwMDhGNTE2RjUxNUY1MTc5MDc5OENGMDkwNzk4QkYwMjI2NQorOjEwM0IwRDAwN0IwMTdBNzg3OTU4OTA3ODAzRUJGMEEzRUFGMEEzRTk3QQorOjEwM0IxRDAwRjA3NDQwMTIwQzhBOTA3ODAzRTBGQkEzRTBGQUEzRTA2NgorOjEwM0IyRDAwRjk5MDAwMDE3NDBBMTIwQzlDOTAwMDAyMTIwREY2MDAxRgorOjEwM0IzRDAwMDBCQjgwOTAwMDA2MTIwREY2MDAwMEFDNDQ5MDAwMEEwOAorOjEwM0I0RDAwMTIwREY2MDAwMTc3MDA5MDc4MDRFNDc1RjAwRjEyMEM1OQorOjEwM0I1RDAwRjQ5MDc4MDNFMEZCQTNFMEZBQTNFMEY5NzQ0MDEyMENCMworOjEwM0I2RDAwOEE5MDc4MDNFMEZCQTNFMEZBQTNFMEY5OTAwMDAxNzREQQorOjEwM0I3RDAwOEMxMjBDOUM5MDAwMDIxMjBERjYwMDAwQkI4MDkwMDA4MAorOjEwM0I4RDAwMDYxMjBERjYwMDAwQUM0NDkwMDAwQTEyMERGNjAwMDE2RAorOjEwM0I5RDAwNzcwMDkwNzgwNEU0NzVGMDBGMTIwQ0Y0OTA3ODAzRTA0MAorOjEwM0JBRDAwRkJBM0UwRkFBM0UwRjk3NDQwMTIwQzhBOTA3ODAzRTBDRAorOjEwM0JCRDAwRkJBM0UwRkFBM0UwRjk5MDAwMDE3NDhGMTIwQzlDOTAyNgorOjEwM0JDRDAwNzgwNEU0NzVGMDBGMTIwQ0Y0OTA3ODAzRTBGQkEzRTA5OQorOjEwM0JERDAwRkFBM0UwRjk3NDQxMTIwQzhBOTA3ODAzRTBGQkEzRTA5QworOjEwM0JFRDAwRkFBM0UwRjk5MDAwMDE3NDg0MTIwQzlDOTA3ODA0RTQxRgorOjEwM0JGRDAwNzVGMDBGMTIwQ0Y0OTA3ODAzRTBGQkEzRTBGQUEzRTA0QworOjEwM0MwRDAwRjk3NDYxMTIwQzhBOTA3ODAzRTBGQkEzRTBGQUEzRTA0QgorOjEwM0MxRDAwRjk5MDAwMDE3NDgxMTIwQzlDOTA3ODA0RTQ3NUYwMEZGQQorOjEwM0MyRDAwMTIwQ0Y0OTA3ODAzRTBGQkEzRTBGQUEzRTBGOTc0NjFDMQorOjEwM0MzRDAwMTIwQzhBOTA3ODAzRTBGQkEzRTBGQUEzRTBGOTkwMDA2MAorOjA2M0M0RDAwMDE3NDAxMTIwQzlDNDEKKzowMTNDNTMwMDIyNEUKKzoxMDNDNTQwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwRUEKKzoxMDNDNjQwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGQTUKKzowMjNDNzQwMEMwRTBBRQorOjEwM0M3NjAwOTA3RkEyRTBGNTBCOTA3Rjc0RTA5MDc5NzBGMDkwN0ZEMgorOjEwM0M4NjAwNzVFMDkwNzk3MUYwOTA3OTgzRTBGRkZFNTQwMkZFNzA0MgorOjEwM0M5NjAwMERFRjQ0MDJGMDEyMkZERjkwNzk3NDc0MDFGMEU1MEJGQQorOjEwM0NBNjAwMjBFMjI4OTA3OTcwRTBGRUEzRTA3QzAwMjQwMEY1MTE2NAorOjEwM0NCNjAwRUMzRUY1MTA5MDc5ODJFMEZEQUUxMEFGMTExMjBDQkUwRAorOjEwM0NDNjAwOTA3OTcwRUZGMDkwNzk4OTc0MDFGMDEyNDg0MzEyNDhBOAorOjEwM0NENjAwNzY5MDc5ODlFMDY0MDE3MDMyMTI0MTA4OTA3OTg5RTQxRQorOjEwM0NFNjAwRjA5MDdGOThFMDQ0NDBGMDkwN0Y5RUUwNDQ0MEYwOTA1MgorOjEwM0NGNjAwN0Y5NTc0ODBGMDc1RTgwMTEyMDkzMjc1RTgwRDkwN0ZBMgorOjEwM0QwNjAwOTU3NEMwRjA3NUU4MEREMjIwODAwNTc1RTgwMUMyMjBEMworOjEwM0QxNjAwMjAyMDJCOTA3OTJERTBGRkI0MDEwOTc1MEM2Nzc1MERGNQorOjEwM0QyNjAwMDY3NTBFMEJFRkI0MDIwOTc1MEMwMDc1MEQwMDc1MEVDNQorOjEwM0QzNjAwMENFRkI0MDMwOTc1MEMwMDc1MEQwMDc1MEUxODc1Q0FFNQorOjEwM0Q0NjAwNkY3NUNCRkVEMkNBNTM5MUVGOTA3RkFCNzQwMkYwRjA0MQorOjEwM0Q1NjAwRDBFMEZGRDBFMEZFRDBFMEZERDBFMEZDRDBFMEZCRDAyQworOjEwM0Q2NjAwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMDgyRDA4M0QwRjAxRAorOjAzM0Q3NjAwRDBFMDMyNjgKKzoxMDNENzkwMDc1MzMyNTc1MzQyNDkwNzk1Qzc0MDFGMEEzNzQ3OEYwNTcKKzoxMDNEODkwMEEzNzRCMkYwMjAyRjAyQzExN0U0RjUzNTc1MjIwMTkwMTIKKzoxMDNEOTkwMDc5NUNFMEZCQTNFMEZBQTNFMEY5OTAwMDA0MTIwQzVENjIKKzoxMDNEQTkwMEY1MzY3NTM1MDY3NDQyMjUzNUY1ODJFNDM0NzlGNTgzOUYKKzoxMDNEQjkwMEU1MzZGMDA1MzVFNTM1QjQwQ0VCRTUzNUMzOTQwRDQwMzIKKzoxMDNEQzkwMDAyQzE5OEU1MjI2NDAxNjAwMkMxOTg5MDdGQTVFMDQ0OTAKKzoxMDNERDkwMDgwRjA5MDdGQTZFNTMzRjAxMjQ2QzA3NDRGMjUzNUY1ODMKKzoxMDNERTkwMDgyRTQzNDc5RjU4M0UwOTA3RkE2RjAxMjQ2QzA3NDQyRUMKKzoxMDNERjkwMDI1MzVGNTgyRTQzNDc5RjU4M0UwOTA3RkE2RjAxMjQ2MDMKKzoxMDNFMDkwMEMwOTA3RkE1NzQ0MEYwMTIwQUNEMDUzNTgwQUNFNEY1NjkKKzoxMDNFMTkwMDM1NzUyMjAxOTA3OTVDRTBGQkEzRTBGQUEzRTBGOTkwMDMKKzoxMDNFMjkwMDAwMDQxMjBDNURGNTM2NzUzNTA2NzQzNTI1MzVGNTgyQjUKKzoxMDNFMzkwMEU0MzQ3OUY1ODNFNTM2RjAwNTM1RTUzNUI0MENFQkU1ODEKKzoxMDNFNDkwMDM1QzM5NDBENTA0OUU1MjI2NDAxNzA0MzkwN0ZBNUUwODQKKzoxMDNFNTkwMDQ0ODBGMDkwN0ZBNkU1MzNGMDEyNDZDMDc0NEYyNTM1QjMKKzoxMDNFNjkwMEY1ODJFNDM0NzlGNTgzRTA5MDdGQTZGMDEyNDZDMDc0QjgKKzoxMDNFNzkwMDM1MjUzNUY1ODJFNDM0NzlGNTgzRTA5MDdGQTZGMDEyOTMKKzowRjNFODkwMDQ2QzA5MDdGQTU3NDQwRjAxMjBBQ0QwNTM1ODBCMDc5Cis6MDEzRTk4MDAyMjA3Cis6MTAzRTk5MDA5MDc4MDk3NDAxRjBBMzc0NzhGMEEzNzRCMkYwRTRGRjg4Cis6MTAzRUE5MDBGRTkwNzgwOUUwRkJBM0UwRkFBM0UwRjlFRjEyMEM4QThGCis6MTAzRUI5MDA5MDc4MDlFMEZCQTNFMEZBQTNFMEY5OTAwMDAxRTQxMjhECis6MTAzRUM5MDAwQzlDOTAwMDAyNzQxNTEyMEM5QzkwMDAwM0U0MTIwQ0Q3Cis6MTAzRUQ5MDA5QzkwMDAwNDc0RkYxMjBDOUM5MDAwMDVFNDEyMEM5QzQ5Cis6MTAzRUU5MDA5MDAwMDY3NEMzMTIwQzlDOTAwMDA3RTQxMjBDOUM5MDdECis6MTAzRUY5MDAwMDA4RTQxMjBDOUM5MDAwMDlFNDEyMEM5QzkwMDAwQTQyCis6MTAzRjA5MDA3NDAxMTIwQzlDOTA3ODBBRTQ3NUYwMEIxMjBDRjQwRkYyCis6MTAzRjE5MDAwRUJFMDc4RDkwNzgwOTc0MDFGMEEzNzQ3OEYwQTM3NDJDCis6MTAzRjI5MDBGRkYwRTRGRkZFOTA3ODA5RTBGQkEzRTBGQUEzRTBGOUQzCis6MTAzRjM5MDBFRjEyMEM4QTkwNzgwOUUwRkJBM0UwRkFBM0UwRjk5MDZDCis6MTAzRjQ5MDAwMDAxRTQxMjBDOUM5MDAwMDI3NDE1MTIwQzlDOTAwMDY0Cis6MTAzRjU5MDAwM0U0MTIwQzlDOTAwMDA0NzQ4MDEyMEM5QzkwMDAwNUUwCis6MTAzRjY5MDBFNDEyMEM5QzkwMDAwNjc0QzMxMjBDOUM5MDAwMDdFNEE4Cis6MTAzRjc5MDAxMjBDOUM5MDAwMDhFNDEyMEM5QzkwMDAwOUU0MTIwQ0FECis6MTAzRjg5MDA5QzkwMDAwQTc0MDExMjBDOUM5MDc4MEFFNDc1RjAwQjVECis6MDgzRjk5MDAxMjBDRjQwRjBFQkUwMzhEQTMKKzowMTNGQTEwMDIyRkQKKzoxMDNGQTIwMEU0RkU3NTNERkY3NTNFMDU3NTNGMTJBQjNEQUEzRUE5ODUKKzoxMDNGQjIwMDNGOTAwMDAxMTIwQzVENjQwMjcwMkZDREVFQ0QwRUVEMkMKKzoxMDNGQzIwMDZGNzAwMTIyOTAwMDAyMTIwRDBBODVGMDNCRjUzQzYyRUYKKzoxMDNGRDIwMDNCRTUzQjYyM0NFNTNDNjIzQjI5RkRFNTNCM0FDOUVERjIKKzoxMDNGRTIwMEM5NzUzREZGRjUzRTg5M0Y4MEMxN0IwMDdBMDA3OTAwQUIKKzowMTNGRjIwMDIyQUMKKzowOTNGRjMwMDUzRDhFRjQzRDgyMEMyMkQzMjRGCis6MDQzRkZDMDA1MzkxREYzMkNDCis6MTA0MDAwMDA5MDc5ODdFMEI0MDExRDkwNzk4NUUwQjQwMTAzMTI0MkY0Cis6MTA0MDEwMDBBQTkwNzk4NkUwQjQwMTAzMTIxODAwRTQ5MDc5ODVGMDQzCis6MTA0MDIwMDBBM0YwQTNGMDEyMkU5NDkwN0Y5QkUwRjUwQTU0MDJGNUMyCis6MTA0MDMwMDAwQTcwMDQ5MDc5N0ZGMDkwN0Y5QkUwRjUwQTU0MDJGRkFDCis6MTA0MDQwMDBGNTBBQkYwMjA2OTA3OTdGNzQwMUYwOTA3RjlCRTBGNTNFCis6MTA0MDUwMDAwQTU0MjBGNTBBNzAwNDkwNzk3RUYwOTA3RjlCRTBGNTc5Cis6MTA0MDYwMDAwQTU0MjBGRkY1MEFCRjIwMDY5MDc5N0U3NDAxRjA5MDczCis6MTA0MDcwMDA3OTdGRTBGRjkwNzk4MUUwNkY2MDM4OTA3OTc4NzQwMjAxCis6MTA0MDgwMDBGMDkwNzk4NEUwOTA3OTc5RjBFRkI0MDEwNkUwNTRGRTg1Cis6MTA0MDkwMDBGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwNzk3OUUwOTA3OUE3Cis6MTA0MEEwMDA4NEYwQTJBRkU0MzNGNTEyQzJBRjEyMEJBMkU1MTI2MEE2Cis6MTA0MEIwMDAwMkQyQUY5MDc5N0VFMEZGOTA3OTgwRTA2RjYwMzg5MDE3Cis6MTA0MEMwMDA3OTc4NzQwMUYwOTA3OTdDRTA5MDc5NzlGMEVGQjQwMTFGCis6MTA0MEQwMDAwNkUwNDQwNEYwODAwNzkwNzk3OUUwNTRGQkYwOTA3OTkxCis6MTA0MEUwMDA3OUUwOTA3OTdDRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQjA1Cis6MTA0MEYwMDBBMkU1MTI2MDAyRDJBRjkwNzk3RkUwOTA3OTgxRjA5MEQyCis6MDg0MTAwMDA3OTdFRTA5MDc5ODBGMDIyNDUKKzoxMDQxMDgwMDkwNzkyREUwNjQwMTcwMzU5MDc5NzBFMEZGRDM5NDJEOUIKKzoxMDQxMTgwMDQwMkI5MDc5Njk3NDAxRjA5MDc5NjhFMDA0RjBFMEQzNUQKKzoxMDQxMjgwMDk0MEY0MDE5RTRGMEVGRDM5NDMxNDAwODkwNzkyRDc0M0UKKzoxMDQxMzgwMDAzRjA4MDA2OTA3OTJENzQwMkYwMTIxMDAwOTA3OTJEMEEKKzoxMDQxNDgwMEUwQjQwMjJDOTA3OTcwRTBGRkMzOTQyRjUwMjJFRkQzOTMKKzoxMDQxNTgwMDk0MkE0MDFDOTA3OTY5NzQwMUYwOTA3OTY4RTAwNEYwMjEKKzoxMDQxNjgwMEUwRDM5NDBGNDAwQUU0RjA5MDc5MkQwNEYwMTIxMDAwODcKKzoxMDQxNzgwMDkwNzkyREUwQjQwMjI2OTA3OTcwRTBEMzk0MzE0MDFERjcKKzoxMDQxODgwMDkwNzk2OTc0MDFGMDkwNzk2OEUwMDRGMEUwRDM5NDBGQjUKKzoxMDQxOTgwMDQwMEJFNEYwOTA3OTJENzQwM0YwMTIxMDAwOTA3OTJEMDMKKzoxMDQxQTgwMEUwNjQwMzcwM0Y5MDc5NzBFMEZGQzM5NDVGNTAzNTkwRUUKKzoxMDQxQjgwMDc5Njk3NDAxRjA5MDc5NjhFMDA0RjBFMEQzOTQwRjQwRDUKKzoxMDQxQzgwMDIzRTRGMEVGQzM5NDJGNTAwQ0VGRDM5NDJBNDAwNjkwQzkKKzoxMDQxRDgwMDc5MkQ3NDAxRjBFRkQzOTQyRjQwMDY5MDc5MkQ3NDAyNTUKKzoxMDQxRTgwMEYwMTIxMDAwOTA3OTY5RTA3MDA1OTA3OTY4RjAyMkU0ODcKKzowNTQxRjgwMDkwNzk2OUYwMjIzRQorOjEwNDFGRDAwN0IwMTdBNzg3OTRDOTA3ODA2RUJGMEEzRUFGMEEzRTk4RAorOjEwNDIwRDAwRjBFNDEyMEM4QTkwNzgwNkUwRkJBM0UwRkFBM0UwRjk0MworOjEwNDIxRDAwOTAwMDAxNzQwMTEyMEM5QzkwNzgwN0U0NzVGMDAzMTI2NAorOjEwNDIyRDAwMENGNDkwNzgwNkUwRkJBM0UwRkFBM0UwRjlFNDEyMEM5RAorOjEwNDIzRDAwOEE5MDc4MDZFMEZCQTNFMEZBQTNFMEY5OTAwMDAxNzQwMAorOjEwNDI0RDAwMDIxMjBDOUM5MDc4MDdFNDc1RjAwMzEyMENGNDkwNzgzMAorOjEwNDI1RDAwMDZFMEZCQTNFMEZBQTNFMEY5RTQxMjBDOEE5MDc4MDZERAorOjEwNDI2RDAwRTBGQkEzRTBGQUEzRTBGOTkwMDAwMTc0MDMxMjBDOUNBQgorOjEwNDI3RDAwOTA3ODA3RTQ3NUYwMDMxMjBDRjQ5MDc4MDZFMEZCQTMzOAorOjEwNDI4RDAwRTBGQUEzRTBGOUU0MTIwQzhBOTA3ODA2RTBGQkEzRTBEMworOjBDNDI5RDAwRkFBM0UwRjk5MDAwMDE3NDA0MTIwQzlDREMKKzowMTQyQTkwMDIyRjIKKzoxMDQyQUEwMEU0RkZGRTdCMDE5MDc4MEMwNEYwQTM3NDc4RjBBMzc0MDkKKzoxMDQyQkEwMDJCRjA5MDc4MENFMEZCQTNFMEZBQTNFMEY5OTAwMDAyNUYKKzoxMDQyQ0EwMDEyMEM1REZEOTA3OTlBRTA2RDYwMTNFRkMzOTQwNTUwNkUKKzoxMDQyREEwMDBEMEY5MDc4MERFNDc1RjAwMzEyMENGNDgwRDQ4RDMzMzEKKzoxMDQyRUEwMDkwNzgwQ0UwRkJBM0UwRkFBM0UwRjk5MDAwMDExMjBDMkQKKzoxMDQyRkEwMDVERkQ5MDc5OUJFMEZDNkQ2MDEzRUVDMzk0MEI1MDBENEQKKzoxMDQzMEEwMDBFOTA3ODBERTQ3NUYwMDMxMjBDRjQ4MEQzOEMzNEVGMjAKKzoxMDQzMUEwMDY0MDU2MDAzQkUwQjA4OTA3RkI0RTA0NDAxRjAyMjkwNkMKKzoxMDQzMkEwMDc4MENFMEZCQTNFMEZBQTNFMEY5MTIwQzQ0RkYyNEYwQjYKKzoxMDQzM0EwMDYwMDgyNDBFNzAwRTEyNDk0RDIyOTA3OTIwRTUzNEYwNUYKKzowQjQzNEEwMDEyMUIyQTIyOTA3RkI0RTA0NDAxRjAxNworOjAxNDM1NTAwMjI0NQorOjBDNDM1NjAwNzg3RkU0RjZEOEZENzU4MTNGMDI0MzlEOUUKKzoxMDQzNjIwMDAyNDhBOUU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyODAKKzoxMDQzNzIwMDA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzNUMKKzoxMDQzODIwMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGMkIKKzoxMDQzOTIwMEU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDQ2NjFFNDdFMTQKKzoxMDQzQTIwMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzMjAKKzoxMDQzQjIwMEEzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRTcKKzoxMDQzQzIwMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBMTIKKzoxMDQzRDIwMEYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFQ0EKKzoxMDQzRTIwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwNTUKKzoxMDQzRjIwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGMTAKKzoxMDQ0MDIwMEMwRTBDMkNBQzJDRjkwNzk3QUUwQjQwMTFGMTI0QkFFQUIKKzoxMDQ0MTIwMDEyNDc1ODUzQThBMDkwN0ZBRUU0RjAxMjA3QUExMjRCOUQKKzoxMDQ0MjIwMEI3OTA3RkFFNzQxRkYwNDNBODA1ODAwMzUzQThBMDUzMzIKKzoxMDQ0MzIwMEE4RkE3NUU4MDExMjA5MTU3NUU4MEQ0M0E4MDVEMEUwNDAKKzoxMDQ0NDIwMEZGRDBFMEZFRDBFMEZERDBFMEZDRDBFMEZCRDBFMEZBMEYKKzoxMDQ0NTIwMEQwRTBGOUQwRTBGOEQwRDBEMDgyRDA4M0QwRjBEMEUwNTQKKzowMTQ0NjIwMDMyMjcKKzoxMDQ0NjMwMDkwN0ZFQ0UwRjUwOTE0NjAxRDE0NjAyQTE0NjAzNzE0ODIKKzoxMDQ0NzMwMDYwNDQyNDA0NzA1MDkwNzk2MkUwOTA3RjAwRjA5MDdGNTQKKzoxMDQ0ODMwMEI1NzQwMUYwODA0NzkwNzk2M0UwOTA3RjAwRjA5MDdGRUUKKzoxMDQ0OTMwMEI1NzQwMUYwODAzNzkwNzk2NEUwOTA3RjAwRjA5MDdGRUQKKzoxMDQ0QTMwMEI1NzQwMUYwODAyNzkwNzk2NkUwOTA3RjAwRjA5MDdGRUIKKzoxMDQ0QjMwMEI1NzQwMUYwODAxNzkwNzk2N0UwOTA3RjAwRjA5MDdGRUEKKzowRjQ0QzMwMEI1NzQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwRDMyMjdDCis6MDQ0NEQyMDA4RDM2OEIzNzYxCis6MTA0NEQ2MDAxMjNGQTJFQTQ5NjA1NzEyMEM0NDdFMDAyOUZGRUUzQUM5Cis6MTA0NEU2MDBDOUVGQzk3NTM4RkZGNTM5ODkzQUFCMzhBQTM5QTkzQUZGCis6MTA0NEY2MDA5MDAwMDExMjBDNURGRjY0MDQ2MDA1RUY2NDA1NzAyRUU4Cis6MTA0NTA2MDBFRkI0MDQxNTkwMDAwMjEyMEM1RDY1MzY3MDBCOTAwMDM2Cis6MTA0NTE2MDAwMzEyMEM1RDY1Mzc3MDAxMjIxMjBDNDQ3RTAwMjlGRkUwCis6MTA0NTI2MDBFRTNBQzlFRkM5NzUzOEZGRjUzOTg5M0E4MEJDN0IwMDg4Cis6MDQ0NTM2MDA3QTAwNzkwMDhFCis6MDE0NTNBMDAyMjVFCis6MTA0NTNCMDBFNEZGN0IwMTkwNzgxQzA0RjBBMzc0NzhGMEEzNzQ0QzE3Cis6MTA0NTRCMDBGMDkwNzgxQ0UwRkJBM0UwRkFBM0UwRjk5MDAwMDIxMkQ0Cis6MTA0NTVCMDAwQzVERkU5MDdGRUNFMDZFNjAxM0VGQzM5NDA0NTAwRDg2Cis6MTA0NTZCMDA5MDc4MURFNDc1RjAwMzEyMENGNDBGODBENEJGMDQwOThFCis6MTA0NTdCMDA5MDdGQjRFMDQ0MDFGMDgwMTQ5MDc5MjFFMEZGOTA3OEIzCis6MTA0NThCMDAxQ0UwRkJBM0UwRkFBM0UwRjlFRjEyMEM4QTkwN0ZDNUM1Cis6MDM0NTlCMDA3NDAxRjBCOAorOjAxNDU5RTAwMjJGQQorOjBFNDU5RjAwQzBFMEMwODNDMDgyQzBEMEVFQzBFMEVGQzBFMDNDCis6MTA0NUFEMDA5MDc5ODVFMDY0MDE2MDA1QTNFMEI0MDEyRDkwNzk4N0QxCis6MTA0NUJEMDA3NDAxRjBFNEZGOTA3RkM1RTBGRUVGQzM5RTUwMUI3NEM1Cis6MTA0NUNEMDBDMDJGRjU4MkU0MzQ3RUY1ODNFMEZFNzQyMTJGRjU4MjUxCis6MTA0NUREMDBFNDM0NzlGNTgzRUVGMDBGODBEQjUzOTFFRjkwN0ZBQUYxCis6MDQ0NUVEMDBFMDQ0MDFGMEI1Cis6MEY0NUYxMDBEMEUwRkZEMEUwRkVEMEQwRDA4MkQwODNEMEUwMzIzNworOjEwNDYwMDAwRTRGRjdCMDE5MDc4MTkwNEYwQTM3NDc4RjBBMzc0NEM1NAorOjEwNDYxMDAwRjA5MDc4MTlFMEZCQTNFMEZBQTNFMEY5OTAwMDAyMTIxMQorOjEwNDYyMDAwMEM1REZFOTA3RkVDRTA2RTYwMTNFRkMzOTQwNDUwMERDMAorOjEwNDYzMDAwOTA3ODFBRTQ3NUYwMDMxMjBDRjQwRjgwRDRCRjA0MDhDQworOjEwNDY0MDAwOTA3RkI0RTA0NDAxRjAyMjkwNzgxOUUwRkJBM0UwRkFGNworOjEwNDY1MDAwQTNFMEY5MTIwQzQ0OTA3RjAwRjA5MDdGQjU3NDAxRjA1NAorOjAxNDY2MDAwMjIzNworOjEwNDY2MTAwMDExODAyMDExOTBBMDExQzAwQzEyOEMxMjkwMTFGMDFGOQorOjBGNDY3MTAwNDQ3OTlGMDAwMDAwMDA0MTc5QTMwMDQxNzlBNDAwMjMKKzowNDQ2ODAwMDQxNzk4OTAwRjMKKzoxMDQ2ODQwMDAxMjIwMTQxNzkzMUZGNDE3OTM0MDA0RDc5MzUzRjNGQjEKKzoxMDQ2OTQwMDAwMDgwMDAxMDAwMDAwMDAwMDAwMTU0RDc5NDIzRjNGNzIKKzoxMDQ2QTQwMDA2MDgwNDA3MDAwMDAwMDAwMDAwMTU0RDc5NEYwQTBBQUYKKzowQjQ2QjQwMDA5MDAwMTA5MDIwMzA0MDUwNjA3MDhDNQorOjAxNDZCRjAwMDBGQQorOjEwNDZDMDAwMTIwQUNEOTA3RkE1RTBGNTIxRTUyMTU0MDFGNTIxNjQ4MgorOjEwNDZEMDAwMDE2MDI4RTUyMjY0MDE3MDIyOTA3RkE1RTBGNTIxNTQ1NQorOjEwNDZFMDAwMDJGNTIxNzAwMzc1MjIwMTkwN0ZBNUUwRjUyMTU0MDRBNQorOjBDNDZGMDAwRkZGNTIxQkYwNEQzNzUyMjAxODBDRTIyMEIKKzowNDQ2RkMwMDUzRDhGNzMyNjYKKzoxMDQ3MDAwMDAyNDlGQTAwMDIzQzU0MDAwMjE3RTQwMDAyNEExMjAwNzcKKzoxMDQ3MTAwMDAyMzdBMjAwMDI0N0ZGMDAwMjRBNDEwMDAyNDU5RjAwMDMKKzoxMDQ3MjAwMDAyNDk4RTAwMDI0OUFCMDAwMjRBNTgwMDAyNEE2RjAwNUIKKzoxMDQ3MzAwMDAyNEE4NjAwMDI0QTlEMDAwMjRBQjQwMDAyNEFDQjAwQTcKKzoxMDQ3NDAwMDAyNEFFMjAwMDI0QUY5MDAwMjRCMTAwMDAyNEIyNzAwMjUKKzowODQ3NTAwMDAyNEIzRTAwMDI0QjU1MDAzNAorOjEwNDc1ODAwRTUxODcwMTQ5MDc5OENFMDA0RjA5MDc5OEJFMEMzOTQ5QworOjEwNDc2ODAwMDA0MDE1RTAxNEYwODAxMDkwNzk4QkUwMDRGMEEzRTA4RAorOjEwNDc3ODAwQzM5NDAwNDAwM0UwMTRGMDkwNzk4QkUwRDM5NDE0NDA4NAorOjEwNDc4ODAwMDRFNEY1MThGMDkwNzk4Q0UwRDM5NDE0NDAwNTc1MTg3QQorOjA0NDc5ODAwMDFFNEYwMjIyNgorOjEwNDc5QzAwOTA3RkQ3RTBGNTMzOTA3RkVDRTBGNTA5MTQ2MDExMTRBRAorOjEwNDdBQzAwNjAxQjI0MDI3MDI0OTA3RkVBRTA5MDc5NjJGMDgwMjFGMworOjEwNDdCQzAwOTA3RkVBRTA5MDc5NjNGMDEyMTAwMDgwMTQ5MDdGRUEwOQorOjEwNDdDQzAwRTA5MDc5NjRGMDEyMjgwMTgwMDc5MDdGQjRFMDQ0MDFGNgorOjAyNDdEQzAwRjBEMzE4Cis6MDE0N0RFMDAyMkI4Cis6MTA0N0RGMDA5MDc5Nzg3NDA0RjA5MDc5MzNFMDkwNzk3OUYwQTJBRjAyCis6MTA0N0VGMDBFNDMzRjUxMkMyQUYxMjBCQTJFNTEyNjAwMkQyQUYyMjcwCis6MDE0N0ZGMDAzMjg3Cis6MDI0ODAwMDA4RjM2RjEKKzoxMDQ4MDIwMEU0RjUzNzc1MzhGRjc1MzkwNzc1M0EwMUFCMzhBQTM5QkYKKzoxMDQ4MTIwMEE5M0E5MDAwMDExMjBDNURCNDAzMUZBRjM3MDUzN0VGQzAKKzoxMDQ4MjIwMDY1MzY3MDAxMjIxMjBDNDQ3RTAwMjlGRkVFM0FDOUVGNzAKKzoxMDQ4MzIwMEM5NzUzOEZGRjUzOTg5M0E4MEQyN0IwMDdBMDA3OTAwNTAKKzowMTQ4NDIwMDIyNTMKKzoxMDQ4NDMwMDMwMjYyRkMyMjY5MDc5MkRFMEZGQjQwMTA5RTRGNTBDNDAKKzoxMDQ4NTMwMDc1MERGODc1MEUwQUVGQjQwMjA5RTRGNTBDNzUwREYwNDkKKzoxMDQ4NjMwMDc1MEUwQkVGQjQwMzA5RTRGNTBDNzUwREY4NzUwRTE3MEYKKzowMzQ4NzMwMEQyMjIyMjJDCis6MTA0ODc2MDAzMDI1MkZDMjI1OTA3OTJERTBGRkI0MDEwOTc1MENDMEIzCis6MTA0ODg2MDA3NTBEMTQ3NTBFMEJFRkI0MDIwOUU0RjUwQzc1MEQxMEQ5Cis6MTA0ODk2MDA3NTBFMENFRkI0MDMwOUU0RjUwQzc1MEQxODc1MEUxOEJBCis6MDM0OEE2MDBEMjIyMjJGOQorOjEwNDhBOTAwRTRGNTMyMTIwRjUwMjAyRTEwRTUzMkMzOTQwMjUwMDk1QworOjEwNDhCOTAwMDUzMkQyMzAxMjQ5MDU4MEVEMzAyRTA1MTIxNDU3QzI0NworOjBGNDhDOTAwMkUzMDJEMDYxMjA3OUExMjQ4RDkxMjQwMDA4MEVBQUQKKzowMTQ4RDgwMDIyQkQKKzoxMDQ4RDkwMDkwN0ZENkUwRjUxRDU0ODBGNTFENjQ4MDcwMURDMkFGMzAKKzoxMDQ4RTkwMEUwNDQ4MEYwRTA0NDAxRjA3RjBDN0UwMDEyNEI2QzkwQjQKKzowQzQ4RjkwMDdGRDZFMDU0RkVGMDUzODdGRUQyQUYyMkMxCis6MTA0OTA1MDA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAzMDA0RTA0NEZBCis6MTA0OTE1MDAwMkYwN0ZEQzdFMDUxMjRCNkM5MDdGRDZFMDU0RjdGMEY5Cis6MDU0OTI1MDBFMDQ0MDRGMDIyNTMKKzoxMDQ5MkEwMDkwN0ZFQkUwMTQ3MDE0OTA3RkU5RTAyNDdGNzAwNDEyMEEKKzoxMDQ5M0EwMDQ2MDAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MjQKKzowMzQ5NEEwMDAxRjAyMjU3Cis6MTA0OTREMDA5MDdGRUJFMDE0NzAxMzkwN0ZFOUUwMTQ3MDA0MTI0NTMyCis6MTA0OTVEMDAzQjIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMTBCCis6MDI0OTZEMDBGMDIyMzYKKzoxMDQ5NkYwMEU0RkY3NEU4MkZGNTgyRTQzNDdGRjU4M0UwRkU3NDk2NUMKKzowRTQ5N0YwMDJGRjU4MkU0MzQ3OUY1ODNFRUYwMEZCRjA4RTRFMworOjAxNDk4RDAwMjIwNworOjEwNDk4RTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAyRjA1MworOjBENDk5RTAwOTA3RkI3NzQwM0YwRDA4MkQwODNEMEUwMzI1OAorOjEwNDlBQjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAyRjAzNQorOjBENDlCQjAwOTA3RkM3NzQwM0YwRDA4MkQwODNEMEUwMzIyQgorOjEwNDlDODAwOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMTQ3RTAwMTJCOQorOjBBNDlEODAwNEI2QzkwN0ZENkUwNTRGRUYwMjJGNQorOjEwNDlFMjAwRTRGNTFBNzUxQjAxOTA3OTkxMDRGMEEzRjBFNEEzRjBBOQorOjA4NDlGMjAwQTM3NDBBRjBFNEEzRjAyMjEzCis6MTA0OUZBMDBDMEUwQzA4M0MwODJEMjJFNTM5MUVGOTA3RkFCNzQwMTg2Cis6MDg0QTBBMDBGMEQwODJEMDgzRDBFMDMyMkQKKzoxMDRBMTIwMEMwRTBDMDgzQzA4MkQyMkQ1MzkxRUY5MDdGQUI3NDA4NjcKKzowODRBMjIwMEYwRDA4MkQwODNEMEUwMzIxNQorOjEwNEEyQTAwOTA3RkVBRTBGNTA4RTQ5MDc5NjJGMEEzRjBBM0YwOTBCMQorOjA3NEEzQTAwNzk2NkYwQTNGMEQzMjIxRQorOjEwNEE0MTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAxRjBBMAorOjA3NEE1MTAwRDA4MkQwODNEMEUwMzJENworOjEwNEE1ODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA0RjA4NgorOjA3NEE2ODAwRDA4MkQwODNEMEUwMzJDMAorOjEwNEE2RjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA0RjA2RQorOjA3NEE3RjAwRDA4MkQwODNEMEUwMzJBOQorOjEwNEE4NjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA4RjA1NAorOjA3NEE5NjAwRDA4MkQwODNEMEUwMzI5MgorOjEwNEE5RDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA4RjAzQworOjA3NEFBRDAwRDA4MkQwODNEMEUwMzI3QgorOjEwNEFCNDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDEwRjAxRQorOjA3NEFDNDAwRDA4MkQwODNEMEUwMzI2NAorOjEwNEFDQjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDEwRjAwNgorOjA3NEFEQjAwRDA4MkQwODNEMEUwMzI0RAorOjEwNEFFMjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDIwRjBFMAorOjA3NEFGMjAwRDA4MkQwODNEMEUwMzIzNgorOjEwNEFGOTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDIwRjBDOAorOjA3NEIwOTAwRDA4MkQwODNEMEUwMzIxRQorOjEwNEIxMDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDQwRjA5MQorOjA3NEIyMDAwRDA4MkQwODNEMEUwMzIwNworOjEwNEIyNzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDQwRjA3OQorOjA3NEIzNzAwRDA4MkQwODNEMEUwMzJGMAorOjEwNEIzRTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDgwRjAyMworOjA3NEI0RTAwRDA4MkQwODNEMEUwMzJEOQorOjEwNEI1NTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDgwRjAwQgorOjA3NEI2NTAwRDA4MkQwODNEMEUwMzJDMgorOjEwNEI2QzAwOEUzMzhGMzRFNTM0MTUzNEFFMzM3MDAyMTUzMzRFNjAwQQorOjA3NEI3QzAwMDUxMjA3ODk4MEVFMjJGQgorOjBGNEI4MzAwOTA3RkVBRTBCNEZGMDQxMjMwMDAyMjEyMzYwRTIyQjcKKzowRTRCOTIwMEMwRTBDMjhCRDIyNDMwMjMwMkMyMjNEMEUwMzIxNgorOjBFNEJBMDAwOTA3RjAwRTUwOEYwOTA3RkI1NzQwMUYwRDMyMkZECis6MDk0QkFFMDAzMDI0MDVDMjI0NzUxODAxMjIwRgorOjA5NEJCNzAwMzAyMzA1QzIyM0U0RjUxODIyQTUKKzowNzRCQzAwMDUzQzBGRTUzQzBGRDMyOUIKKzowNjRCQzcwMDUzOTE3RkQyMjUzMjVDCis6MDU0QkNEMDBDMjg5RDIyMzMyNzEKKzowMzRCRDIwMEMyOEQzMjVGCis6MDM0QkQ1MDBDMjhGMzI1QQorOjAyNEJEODAwRDMyMkU2Cis6MDI0QkRBMDBEMzIyRTQKKzowMjRCREMwMEQzMjJFMgorOjAyNEJERTAwRDMyMkUwCis6MDI0QkUwMDBEMzIyREUKKzowMjRCRTIwMEQzMjJEQworOjAyNEJFNDAwQzMyMkVBCis6MDE0QkU2MDAyMkFDCis6MDAwMDAwMDFGRgorLyoKKyAqIFRoaXMgZmlybXdhcmUgaXMgZm9yIHRoZSBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UKKyAqCisgKiBUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMiBFbWFnaWMKKyAqIGFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZAorICogb3IgcHVibGljIGFjY2VzcyB0byB0aGlzIGZpcm13YXJlIHdoaWNoIGlzIGEgdHJhZGUgc2VjcmV0IG9mIEVtYWdpYywKKyAqIGFuZCB3aGljaCBtYXkgbm90IGJlIHJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8KKyAqIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IEVtYWdpYydzIHdyaXR0ZW4gY29uc2VudC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCB0aGUKKyAqIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZS4gRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YKKyAqIGFueSBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwKKyAqIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuCisgKi8KKy8qCitWRVJTSU9OPTEuMC4yLjkxNgorREFURT0xMi4wMi4yMDAyCisqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZW1pMjYvbG9hZGVyLkhFWCBiL2Zpcm13YXJlL2VtaTI2L2xvYWRlci5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdjNDM5ZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VtaTI2L2xvYWRlci5IRVgKQEAgLTAsMCArMSwxMTYgQEAKKzowMzAwMDAwMDAyMDMxQ0RDCis6MDMwMDQzMDAwMjA0MDBCNAorOjEwMDEwMDAwOTA3RkU5RTAyNDVCNjA2MDI0MDI2MDAzMDIwMUJFOTBGRQorOjEwMDExMDAwN0ZFQUUwNzUwQTAwRjUwQkEzRTBGRUU0RUU0MjBBOTBFOAorOjEwMDEyMDAwN0ZFRUUwNzUxNTAwRjUxNkEzRTBGRUU0RUU0MjE1RTU1RQorOjEwMDEzMDAwMTY0NTE1NzAwMzAyMDFCRUU0OTA3RkM1RjA5MDdGQjRCMAorOjEwMDE0MDAwRTAyMEUzRjk5MDdGQzVFMEY1MEMxMjAyNzdBRjBDN0U1QQorOjEwMDE1MDAwMDBFRjI1MEJGNTBCRUUzNTBBRjUwQUMzRTUxNjlGRjUwMgorOjEwMDE2MDAwMTZFNTE1OUVGNTE1ODBDNzkwN0ZFQUUwNzUwQTAwRjU0MworOjEwMDE3MDAwMEJBM0UwRkVFNEVFNDIwQTkwN0ZFRUUwNzUxNTAwRjU3OQorOjEwMDE4MDAwMTZBM0UwRkVFNEVFNDIxNUU1MTY0NTE1NjAzMEU0OTA1NgorOjEwMDE5MDAwN0ZDNUYwOTA3RkI0RTAyMEUzRjk5MDdGQzVFMEY1MENENworOjEwMDFBMDAwMTIwMjhGQUYwQzdFMDBFRjI1MEJGNTBCRUUzNTBBRjUzMgorOjBGMDFCMDAwMEFDM0U1MTY5RkY1MTZFNTE1OUVGNTE1ODBDQUMzMUYKKzowMTAxQkYwMDIyMUQKKzoxMDAxQzAwMEMyMjBEMkU4NDNEODIwOTA3RkFCNzRGRkYwOTA3RkE5ODMKKzoxMDAxRDAwMEYwOTA3RkFBRjA1MzkxRUY5MDdGOTVFMDQ0QzBGMDkwQUIKKzoxMDAxRTAwMDdGOThFMDQ0QzBGMDkwN0Y5RUUwNDRDMEYwRTQ5MDdGQjAKKzoxMDAxRjAwMDk0RjA5MDdGOURFMDQ0MEZGMDkwN0Y5N0UwNTRGMEYwRjIKKzoxMDAyMDAwMDkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBERjBEMkFGQkMKKzoxMDAyMTAwMDkwN0Y5N0UwNTRGMEYwMjAyMDQyNzUxNDAwNzUxMzAwOTEKKzoxMDAyMjAwMDc1MTIwMDc1MTEwMDdGNDg3RTkyN0QwMDdDMDBBQjE0MzIKKzoxMDAyMzAwMEFBMTNBOTEyQTgxMUMzMTIwNDlBNTBEQjIwMjBEODdBNUQKKzoxMDAyNDAwMDAwNzkwMDc4MDBFNTE0MjQwMUY1MTRFQTM1MTNGNTEzNUMKKzoxMDAyNTAwMEU5MzUxMkY1MTJFODM1MTFGNTExODBDQTMwMjBGRDEyOEEKKzoxMDAyNjAwMDAxMDA1MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0NzcKKzowNjAyNzAwMDAyRjBDMjIwODBFNjRFCis6MDEwMjc2MDAyMjY1Cis6MTAwMjc3MDBFNTBDRkZFNTBCRjU4MkU1MEFGNTgzNzU5MjdFNzRDMDAwCis6MDgwMjg3MDBGOEUyMDhGMEEzREZGQTIyRkYKKzoxMDAyOEYwMDkwN0Y5Njg1ODM5MkE4ODI3OTAyOTAwMDAwRTBCNDAwNTcKKzoxMDAyOUYwMDM3NzQwMUYwOTA3RjkzRTA1NEZDRjA5MDdGOTZFMDU0MTgKKzoxMDAyQUYwMEZDRjA5MDdGOUNFMDQ0MDNGMDkwN0Y5NEUwNTQ3RkYwNEIKKzoxMDAyQkYwMDkwN0Y5N0UwNDQ4MEYwOTA3RjlERTA0NDgwRjA5MDdGQTYKKzoxMDAyQ0YwMDk3RTA1NDdGRjA0NDgwRjBFNTBDRkY5MDdFQzBFMEY1OUUKKzoxMDAyREYwMDI4RTRBMjQ3MzNGMjY5RjJFNEEyNDYzM0YyNjlGMkU0NkEKKzoxMDAyRUYwMEEyNDUzM0YyNjlGMkU0QTI0NDMzRjI2OUYyRTRBMjQzODUKKzoxMDAyRkYwMDMzRjI2OUYyRTRBMjQyMzNGMjY5RjJFNEEyNDEzM0YyM0IKKzowRDAzMEYwMDY5RjJFNEEyNDAzM0YyNjlGMkEzREZDMjIyREEKKzowQzAzMUMwMDc4N0ZFNEY2RDhGRDc1ODEyOTAyMDM2M0E4Cis6MTAwMzI4MDAwMjAxQzBFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjJBCis6MTAwMzM4MDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0Q2Cis6MTAwMzQ4MDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkE1Cis6MTAwMzU4MDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwNDg0RTQ3RUFECis6MTAwMzY4MDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzlBCis6MTAwMzc4MDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBMzYxCis6MTAwMzg4MDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQThDCis6MTAwMzk4MDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTQ0Cis6MTAwM0E4MDBDMEUwQzA4M0MwODI5MDdGQzRFNEYwNTM5MUVGOTA3Rjk3Cis6MEIwM0I4MDBBQjc0MDRGMEQwODJEMDgzRDBFMDMyQTAKKzoxMDAzQzMwMEMwRTBDMDgzQzA4MkQyMjA1MzkxRUY5MDdGQUI3NDAxMTEKKzowODAzRDMwMEYwRDA4MkQwODNEMEUwMzJBQgorOjEwMDNEQjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwMkYwRDAyQQorOjA2MDNFQjAwODJEMDgzRDBFMDMyNTUKKzowMTAzRjEwMDMyRDkKKzowMTAzRjIwMDMyRDgKKzowMTAzRjMwMDMyRDcKKzowMTAzRjQwMDMyRDYKKzowMTAzRjUwMDMyRDUKKzowMTAzRjYwMDMyRDQKKzowMTAzRjcwMDMyRDMKKzowMTAzRjgwMDMyRDIKKzowMTAzRjkwMDMyRDEKKzowMTAzRkEwMDMyRDAKKzowMTAzRkIwMDMyQ0YKKzowMTAzRkMwMDMyQ0UKKzowMTAzRkQwMDMyQ0QKKzowMTAzRkUwMDMyQ0MKKzowMTAzRkYwMDMyQ0IKKzoxMDA0MDAwMDAyMDNDMzAwMDIwM0RCMDAwMjAzQTgwMDAyMDQ2RTAwMjMKKzoxMDA0MTAwMDAyMDQ1ODAwMDIwM0YxMDAwMjAzRjIwMDAyMDNGMzAwOTkKKzoxMDA0MjAwMDAyMDNGNDAwMDIwM0Y1MDAwMjAzRjYwMDAyMDNGNzAwRTIKKzoxMDA0MzAwMDAyMDNGODAwMDIwM0Y5MDAwMjAzRkEwMDAyMDNGQjAwQzIKKzoxMDA0NDAwMDAyMDNGQzAwMDIwM0ZEMDAwMjAzRkUwMDAyMDNGRjAwQTIKKzowODA0NTAwMDAyMDRBQjAwMDIwNEFDMDA0MQorOjEwMDQ1ODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwRDA5RQorOjA2MDQ2ODAwODJEMDgzRDBFMDMyRDcKKzoxMDA0NkUwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDhGMEQwOTAKKzowNjA0N0UwMDgyRDA4M0QwRTAzMkMxCis6MTAwNDg0MDAwMjBBMDAwRjAxMEMxMTA0MEQwMDAwMDAwMDQxMDAwMERECis6MDEwNDk0MDAwMDY3Cis6MDQwNDk1MDAwMjE3MDAwMDRBCis6MDEwNDk5MDAwMDYyCis6MTAwNDlBMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMEI4Cis6MDEwNEFBMDAyMjJGCis6MDEwNEFCMDAzMjFFCis6MDEwNEFDMDAzMjFECis6MTAxMTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODAxMDEwMDAxMDEwMjAzCis6MTAxMTEwMDAwMDAxMDkwMjIwMDAwMTAxMDNBMDAwMDkwNDAwMDAwMkVGCis6MTAxMTIwMDBGRjAwMDAwNDA3MDU4MjAyNDAwMDAwMDcwNTAyMDI0MDlDCis6MTAxMTMwMDAwMDAwMDQwMzA5MDQyNjAzNDEwMDZFMDA2MzAwNjgwMEY4Cis6MTAxMTQwMDA2RjAwNzIwMDIwMDA0MzAwNjgwMDY5MDA3MDAwNzMwMEE3Cis6MTAxMTUwMDAyQzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAyODAzNDYwMDhBCis6MTAxMTYwMDA2OTAwNzIwMDZEMDA3NzAwNjEwMDcyMDA2NTAwMjAwMDY4Cis6MTAxMTcwMDA0NjAwNzIwMDYxMDA2RDAwNjUwMDU3MDA2RjAwNzIwMDRDCis6MTAxMTgwMDA2QjAwNzMwMDJBMDM0MzAwNkYwMDZFMDA2NjAwNjkwMDY1Cis6MTAxMTkwMDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDA2RjAwNkUwMEU2Cis6MTAxMUEwMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjIwMzgzCis6MTAxMUIwMDA0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA2MTAwNjMwMDAzCis6MTAxMUMwMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIzCis6MDIxMUQwMDAwMDAwMUQKKzowMDAwMDAwMUZGCisvKgorICogVGhpcyBmaXJtd2FyZSBpcyBmb3IgdGhlIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZQorICoKKyAqIFRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIEVtYWdpYworICogYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkCisgKiBvciBwdWJsaWMgYWNjZXNzIHRvIHRoaXMgZmlybXdhcmUgd2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQgb2YgRW1hZ2ljLAorICogYW5kIHdoaWNoIG1heSBub3QgYmUgcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0bworICogYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgRW1hZ2ljJ3Mgd3JpdHRlbiBjb25zZW50LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoIHRoZQorICogRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlLiBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZgorICogYW55IGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LAorICogcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4KKyAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZW1pNjIvYml0c3RyZWFtLkhFWCBiL2Zpcm13YXJlL2VtaTYyL2JpdHN0cmVhbS5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M2ZWNjMwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VtaTYyL2JpdHN0cmVhbS5IRVgKQEAgLTAsMCArMSw0MzcyIEBACis6MTA4MDEwMDBGRkZGRkZGRkFBOTk1NTY2MzAwMDgwMDEwMDAwMDAwN0FFCis6MTA4MDIwMDAzMDAxNjAwMTAwMDAwMDBCMzAwMTIwMDEwMDgwM0YyRDc1Cis6MTA4MDMwMDAzMDAwQzAwMTAwMDAwMDAwMzAwMDgwMDEwMDAwMDAwOTk1Cis6MTA4MDQwMDAzMDAwMjAwMTAwMDAwMDAwMzAwMDgwMDEwMDAwMDAwMTJECis6MTA4MDUwMDAzMDAwNDAwMDUwMDAzRTA0MDgxMjEwMDAwMDAwMDAwMEY0Cis6MTA4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTA4MDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAwNEJDCis6MTA4MDgwMDA4MDAwMDAwMDAwMDAwMDAwMDAxMjEwMDAwMDAwMDAwMDRFCis6MTA4MDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTA4MEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDA4NDBDCis6MTA4MEIwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDNFCis6MTA4MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTA4MEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDk4Cis6MTA4MEUwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMENFCis6MTA4MEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTA4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTA4MTEwMDA4MDAwMDAwMDAwMDAwMDAwMDAxMjAwMDAwMDAwMDAwMENECis6MTA4MTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTA4MTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDNCCis6MTA4MTQwMDA4MDAwMDAwMDAwMDAwMDAwMDgxMzAwMDAwMDAwMDAwMDk0Cis6MTA4MTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTA4MTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTA4MTcwMDA5MDAwMDAwMDAwMDAwMDAwMDAxMjAwMDAwMDAwMDAwMDVECis6MTA4MTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTA4MTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NDVCCis6MTA4MUEwMDA5MDAwMDAwMDAwMDAwMDAwRjcxMDAxMTQwMDI1MDAwNUY5Cis6MTA4MUIwMDA0MDAxNTAwMDk0MDAxNTAwMDc0MDAxRDAwMDk0MDAyNUI0Cis6MTA4MUMwMDA4MDAxNjAwMkQ4MDBGNjAwMkY4MDAyRTAwNEQ4Mzc0NDE2Cis6MTA4MUQwMDA5MDAwMDAwMDAwMDAwMDAwQzAwNUYyMDBDQzkwMzkyMEEzCis6MTA4MUUwMDAwRDk4MDNEMjAwRTc4MDM3MDQwRUYxODM3RTAwREY5MDA0Cis6MTA4MUYwMDAzMUU0OEY3OTAzN0MyMERGMjIzM0MwMENGMDIyMzAwMDgxCis6MTA4MjAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMDYyMDA4MDI0MjIyMDI2Cis6MTA4MjEwMDAwODk4MTJFMjAwOEI4MTIwOTQwODc0MDIyRTAwOEEwMUQzCis6MTA4MjIwMDAyMkM4MDg5MjAyM0Q4MDhCNjAyMjgwMDhCMDAyMjAwNEEwCis6MTA4MjMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM4MDBBMDAwMjAwMEY5Cis6MTA4MjQwMDAwQjEwMDJDMDAwQTEwMDI0MDk0QTMyMDI0ODAwQjEwMDBDCis6MTA4MjUwMDA2MkMwMDlBMDQ2Q0MyNDkzNDkyQTgwNDgzMDIyNjIwMTlBCis6MTA4MjYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE4MTJBODAwMjIwMDQ1Cis6MTA4MjcwMDAwODkwMDJFMDAwODk4MDIyNDQwOEIwMTJBODAwQTk0MEJBCis6MTA4MjgwMDAyMkMwMDg5MDgyQUMwMDlCMDQyQUM0MDhCMDAyNzAwNDhCCis6MTA4MjkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNDg0MDBFOTgwQjI2NDY3Cis6MTA4MkEwMDA0REEwMDNFQTIwRTlDMDM2NDAwRUIwMDM0NDAwRkI5MDI1Cis6MTA4MkIwMDBCMjg4MERCQzAzRUMwODVCMDAzODYwMkNCMDYzNDAwNDRFCis6MTA4MkMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI0MjZERDkwMzc0MDlGCis6MTA4MkQwMDA0RkUwMTNGMjgwRkQwMDNEQTAwRDcwMDM3NTAwNUUwMEJECis6MTA4MkUwMDAzRkE0MERGOTAzNUMxMEVCMDAzNzIwMEYzMDAzQjgwMEZBCis6MTA4MkYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBFOTgwMzI0MDQ3Cis6MTA4MzAwMDAwQ0ExODNFODAwRTkwMDMyNDIwRUIwMDNBQzQ4RTkwMDVBCis6MTA4MzEwMDAzQTgwMEVBNDAzRUMwMEVCMDBCMjAzMEVCMDBCMTAwNDg1Cis6MTA4MzIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJFODA4OUQxMjA0MEY4Cis6MTA4MzMwMDAwOEEwMDJDMDAwODE4MDIyNTgwOEY1MDIyRjQwOEIwMDVGCis6MTA4MzQwMDAyMEMwMDgzMDQzN0MwMDg3MDAyMjQwMDhGMDAyMzIwMDQxCis6MTA4MzUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQyMDE5QTQ0MjhBMjBECis6MTA4MzYwMDAwODE4MDJDMDgwQTE4MEEwMDAwODMwMDI4RTAwQUIwMDc3Cis6MTA4MzcwMDAyQzQwMEEzMDAyMEMwMEEzMDAyMDQ0MEEzMDAyMzgwMENFCis6MTA4MzgwMDA1MDAwMDAwMDAwMDAwMDAwNjAwMTMyMDA5NjgyMkJBMjI1Cis6MTA4MzkwMDA4ODVBMDJGMjAwMDU4MDI5QTAwODc4NDJCRTAwOEU4NDI3Cis6MTA4M0EwMDAyRjYxMEFEODAyNEUxMEE3ODAyMDI4MDg3ODAyMTgwMEYyCis6MTA4M0IwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4MDBGMjI0Mzg4MDU3Cis6MTA4M0MwMDAyQzFBMDNDNDAwRTA1OEEwODAyRTMwMDM4ODQxRTMwMjM5Cis6MTA4M0QwMDAzQzQwMDYyMDAzOEMwMEUzMDAxMDAwMEUzMTQzMTIwMkUzCis6MTA4M0UwMDAwMDAwMDAwMDAwMDAwMDAwNDAxRDk4MDBFRTAxMzc4NEVFCis6MTA4M0YwMDA5RkQ5MDNGMDQ4RkQxMDM3QzAwN0IwMDM1QzAwRjYxMEFBCis6MTA4NDAwMDAzM0MwMERFMTAzRUQyMERGMTAzRjQ4MEZGMDIzRDAwNjBECis6MTA4NDEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU0MDJDQjgwMzBDMDJFCis6MTA4NDIwMDAwQ0EwMDNFMjAyQzkwMDNBNDAwREI2MDM2NDAwRUIwMDYxCis6MTA4NDMwMDAzRUMwMEZCMDAzRUQwMEZCMDEzRUUwMENCMDAyRUEwMENECis6MTA4NDQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDA4NzAwMjFDMDY3Cis6MTA4NDUwMDAyODYwMDJEMDAwODUwMDJEODA0OEYwODIxQzAwQjcwMDAzCis6MTA4NDYwMDAyRDAwMEI1MDAyREMwMEI3QTAyRjgwMjg3QTAyRDIwNDI2Cis6MTA4NDcwMDA2MDAwMDAwMDAwMDAwMDAwQzEwMEJFMDA4NzgwMjFFMDE1Cis6MTA4NDgwMDAyODY4MDJENzAwODQ4MDJERTA0OTc5MDY1MzA5QjU4MDE5Cis6MTA4NDkwMDAyREUyMEI3ODAyREU4MEI3OTAyREIwMDg3OTAyRjAwMDUzCis6MTA4NEEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMTA4MzAxMjhDODAwCis6MTA4NEIwMDAwODIwMDJDMjA2ODEwMDJDQzg4ODMwNjIwRTIxQjNBMEI5Cis6MTA4NEMwMDAyQ0MxMEJCNjAyQ0MwMEIzMDAyQ0UwMDgzMDAyRDIwNDYxCis6MTA4NEQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBDQTQwQjA4MDhECis6MTA4NEUwMDAwQzJDMDJGODAwQzYyMDNGOTAwREEwMDM3QjAxRUVFMEFCCis6MTA4NEYwMDAzRkI0MEZFQzAzRTgwMEZBMDAzRkEwMENBMDAzRkEwNDFECis6MTA4NTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUzMDBGODA5MjYwMEI5Cis6MTA4NTEwMDAwRkMxODNFMDEwRjg0MDNDMDAwRjgwMDNFMDAxRjgwMDM5Cis6MTA4NTIwMDAzRTAwMEY4MTAzRTAwNEY4MDAzRTEwMEY4MDAzRDIwMEVDCis6MTA4NTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDJDOTAwM0U0MEM2Cis6MTA4NTQwMDA0RjkwNjMyNjg0MzkwMkIyNDAwQzkxMDMyNDAwRjkwMDU1Cis6MTA4NTUwMDAzRTQwMEY5MDAzMjQwMEYxMDAzQTQ0MEY5MDAzQzIwNDAwCis6MTA4NTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDQ1MDA4OTQwMkU0MERCCis6MTA4NTcwMDAwODkyMEEyNDAwQjkzMTIyNjA4ODk0OEEyNDIwQjkwMDI0Cis6MTA4NTgwMDAyRTQwMEI5MDAyMjQwMEI5MDAyMjY4MEI5MDAyRTAwMEZDCis6MTA4NTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0QTA4RDg0MkY0MDZBCis6MTA4NUEwMDAwQkQxMDIyNDAwQjkwMDIyNEEwODEwMDIyQzQwQjkwMDY1Cis6MTA4NUIwMDAyRTQwMEI5MDAyMjQwMEI5MDAyQTQwMEI5MDAyQzYwMDA2Cis6MTA4NUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDE0MDA4NTgwMkQ0MEQ5Cis6MTA4NUQwMDAwODUwMDIwNDBDQjkwMEEwNTAwODE0MjIwNDAwQjEwMDk1Cis6MTA4NUUwMDAyQzQwMEIxMDAyMDQwMEIxMjgyMDRBMEIxMzAyQzIwMUQ4Cis6MTA4NUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBDMDUwM0U4MDg4Cis6MTA4NjAwMDAwRkMwNDMyMDAwRjgwMDMwMDAyQzgwMjMyMDAwRjg1MUQ4Cis6MTA4NjEwMDAzRTE0OEY4NTBCMjE0MEY4NzAzQTA4MEY4NDgzRUUwM0Q3Cis6MTA4NjIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREM0MDBGOTA0M0U0MDA2Cis6MTA4NjMwMDAwRjkwMjNENDAwRkQwMDNGNTAwRjk0MDNGNDA0RkQwMDdECis6MTA4NjQwMDAzRjQxOEZEMDQzRTUwQ0Y5MDIzRjRBMEY5MjAzRTYwMjA3Cis6MTA4NjUwMDA3MDAwMDAwMDAwMDAwMDAwODgwNUQ0MDFGRDAwM0Q0MENFCis6MTA4NjYwMDAwQ0QwMTNGNDAwRDUwMDMzNkExQ0RDODMzNDAwRDEwNDMxCis6MTA4NjcwMDAzRTUwMEM5MTAzRTZDMEREQjAzMzZBMkM5QzgzRTYwMENCCis6MTA4NjgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDlGODgwMkUwMEEzCis6MTA4NjkwMDA4ODgwMDBFODAwQkEwMDIyQjAwODhFMDIyODAwODhBODZFCis6MTA4NkEwMDAyNjI4MDg4QTIyRTIwMDg4RTQyMjMwMDg4QzAyQ0UwNEMwCis6MTA4NkIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTI4MkU0MDcyCis6MTA4NkMwMDAwODEwMDJDNDAwOTkwMDIwNDI0ODEwMDI2NDAxOTE4MDAxCis6MTA4NkQwMDAyQzQ4MDgxMDAyQzRDMDgxNDAyMDRBMDgxMjAyQzIwMTdFCis6MTA4NkUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0OTRBOTAyMkU0MDlDCis6MTA4NkYwMDAwQTkwMDI2NDAwQjkwMDgyNjAwODkwMDI2NjAwODkxMDQ2Cis6MTA4NzAwMDAyNDYyMDg5MDAyRTQwMDg5MDIyMjQwMTg5MDAyQzYwNDA0Cis6MTA4NzEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU2MDBCOTA0M0U0MDIzCis6MTA4NzIwMDAwQzkwMTNFNDAwRDFDMDEyNTAyODkwMDM0NDAwRDkwMEVCCis6MTA4NzMwMDAzRTQwMjg5MjAzRTQwMkQ5MDAzMjQyOEM5MDEyRTgwNEIxCis6MTA4NzQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE2MjBGOTAwM0U0MTUyCis6MTA4NzUwMDAyRDkwMDNFNDAwRjkyMDNFNDA0RjkwMDFBNDAwRjkwMDYxCis6MTA4NzYwMDAzNjQwOEY5MjA3RTQwMEYxMDBCRTQwMEY5MDAzQ0EwMDJDCis6MTA4NzcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBDODAwM0UyMDlCCis6MTA4NzgwMDAwQzgwMDNFMDQwRjgwMDM2MTIyQzAwMDNFMEMwRjgwMDMzCis6MTA4NzkwMDAzMjEwMEQ4NDAzQTAwMEY4MDIzRTA4MEY4MDAwQ0EwNEM2Cis6MTA4N0EwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTNBOTA4RTAwMkRBMDU3Cis6MTA4N0IwMDA4MEU4MDJGQTAwQkU0MDIzODAwOEU4MDJGQTAwOEEwMDNFCis6MTA4N0MwMDAzNjgwMDhBMDAyRTgwMEJBMDAyRjgwMEJBMDAzOEEwMEMwCis6MTA4N0QwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTQ2MDI4MzAwMkM4MEI1Cis6MTA4N0UwMDAwODIyNDJDNjgwQjE2MDJFRjQwODM4MjJDRTAwQTMwMEQxCis6MTA4N0YwMDAyMEMwMDgzMDAyQUMwMEIxMDAyRTQwMEIzMDAyQ0EwMDhECis6MTA4ODAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFFMDI4NTAxMkRDMkUyCis6MTA4ODEwMDBBODQ0MDJENDAwQkQwMTI5NDAxODY4RDJEQzAwOEY4MDMyCis6MTA4ODIwMDAyNUNDMjg3MzQyREM4MEI1MzAyREMwMUI3MjAyRTgwMEQ1Cis6MTA4ODMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDRDNjgyM0RFMEMxCis6MTA4ODQwMDAwQzQ4MTJENjEwRjU4MDNDQTAwQzcwMDNERTAwRTc5MEI3Cis6MTA4ODUwMDAyM0VBMDQ3QTAzOUUwMEY1ODAzREUwMEY3QTAzRUEwMkUyCis6MTA4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDgwREFDMDA5QzAwM0VDMEFECis6MTA4ODcwMDAwRjgwMDNFNDEwRjkwMDM2MDEwRkEwMDNDMDAwRUIwMEU1Cis6MTA4ODgwMDAzRUQ4NEVCMDgzRUMwMEY5MDAzRUMwMEZCNDQzODIwNkUwCis6MTA4ODkwMDA2MDAwMDAwMDAwMDAwMDAwQzAwNURFMDBDRjg0MzFFMDcxCis6MTA4OEEwMDAwRUM4NDNENjAwQ0Q4MDMzRTBDREQ5MDMzQTAwRkY4ODBGCis6MTA4OEIwMDAzM0UwMEZGOTEzRkUyNEZEODAzRjIwMENGNjgzMTAwMEY3Cis6MTA4OEMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDA4NTAwMjFDNDc5Cis6MTA4OEQwMDAyODQwODJEMDAwRDUwMDIzODA0OEM5MDIxQzAwQjcwMDgwCis6MTA4OEUwMDAyMUMwMEI3MTAyREU4MEI1MTAyREMwMjhGMDAyMkEwNEQxCis6MTA4OEYwMDA2MDAwMDAwMDAwMDAwMDAwMTAwMDlDMDA5NjAwMjFDMEY1Cis6MTA4OTAwMDAwQTQxMDJGNTQwOEQwMDIxNDAwOTUyMDI5ODIwQjcwMDJCCis6MTA4OTEwMDAyMUMwMEI3MDA2REM4MEI1MDAyREMwMDg3MDAyMDQwMDc5Cis6MTA4OTIwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNENDMTA5ODAwMDBDMDdGCis6MTA4OTMwMDA4ODA0ODJDMDAwOTEwNDIwMDMwOTAwMDI4QTAwQjMwQTVGCis6MTA4OTQwMDAyMEM0OEIzNDAyQ0MwMEI5MDAyQ0MwMDAzMDAyMTgwNEMzCis6MTA4OTUwMDAzMDAwMDAwMDAwMDAwMDAwRjgxNUFDMDBEQjAwQjBDMEUzCis6MTA4OTYwMDAwRTlDMDJDNTAwQzExMEIyQzAwREIwMEJBNzA4RkYwMERECis6MTA4OTcwMDBCM0MwMEZGQTAzRkMwMEZEMDAzRUQ0MENGMDBCMkUwNDM0Cis6MTA4OTgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDRFRDAwM0U0MEFDCis6MTA4OTkwMDAwRjg0MDNFNTQwRjk0MDNFNjBDRUI0NDM2NDAwRkI4MEExCis6MTA4OUEwMDAzRUMyMEZCMDEzRUMwMEY5MDIzRUMwNEZCMDAzRTEwMDJECis6MTA4OUIwMDAzMDAwMDAwMDAwMDAwMDAwOTAxMEZGMDBDRTAwMzNDMDI3Cis6MTA4OUMwMDAwRUMwMDc3NDA0RUMwMDExODAwQ0NBMDNGRTYwRkYwMEE3Cis6MTA4OUQwMDAzRkMwMEZGMDgzM0MwMEREMDBCMzUwMkNGMDAzMjAwNEI3Cis6MTA4OUUwMDAzMDAwMDAwMDAwMDAwMDAwODEwMDRDMDQ4QjBCMjI3MDVFCis6MTA4OUYwMDAwODA4MDM2NzIwOEE4OEEyMDAyODg0MDJFNzAwQkIwMEQ5Cis6MTA4QTAwMDAzRUMwMEJCMDAyMkMwMEI5MDAyMjYxMDhCMDAzNjA0MEU4Cis6MTA4QTEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjIwMjJFMkU2Cis6MTA4QTIwMDAwQThDMDIyNjAwQTk4MDJBQzAwOEI0NDJFRDAwQkIwMENGCis6MTA4QTMwMDAyRUMwMEIzMDAyMkMwMEI5MDAyMDgwMDgzMDAyNjAwMEVDCis6MTA4QTQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBFMDE4MTAwQTBDMEVBCis6MTA4QTUwMDAwODgxMDI0NDAwODEwMDI4ODEwODMyMDJDQzAwQjMwMDYyCis6MTA4QTYwMDAyOEMwMEIzMDAyMEM4MEIxMDAyMEMwMDgzMDEyNDIwMTM3Cis6MTA4QTcwMDAwMDAwMDAwMDAwMDAwMDAwODAwRDZDMDBDMjAxMzJDMDQ4Cis6MTA4QTgwMDAyRTgwMTYyQzA4RTkwMDNBNDAwQzgwMDNFQzAwRjcwMDE5Cis6MTA4QTkwMDAyRkMwMEZGMDBCMkMwMEQ5MDAzMDQwMENGMDAzNjAwMzA2Cis6MTA4QUEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwREY4MDhGRjAwM0ZDMENCCis6MTA4QUIwMDAwRkMyMTdGQzAwRjcwMDM3MDAwRjg0MDNGQzAwRkYwMDEzCis6MTA4QUMwMDAzRkMwMEZGMDAzRUQwMEZEMDAzRjQwMEZGMDAzRTgwNjRDCis6MTA4QUQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMDBDRjMwMTc0ODA3Cis6MTA4QUUwMDAwQzU5MDNCOTAwREYyODM1MjQwRDgyQTM3QzgwRkYwMEQ4Cis6MTA4QUYwMDAzRkM4MEZGMjAzRTRBMEVGODAzRkUxOENEODQzMzAwMDgxCis6MTA4QjAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVENDg4OTM0QTM3MDYwCis6MTA4QjEwMDAyOEIwMjM2MDAwOEJDMDIyNDAwOEI0ODIyRjQwQkZEMTEwCis6MTA4QjIwMDA2RkY0OEVCRDAyRTcwMEJCODAzQUUwMDg5ODBBMjgwNDgzCis6MTA4QjMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0QjA5MTAwQTg1MDdCCis6MTA4QjQwMDAwOEIyMDJDODg0OTMwMDI0NDkwQjAyMDI0QzAwQjMwNDBCCis6MTA4QjUwMDAyQ0MwMEIzMDQyODQwMEIzMDAyRTAwMEFCMDEyMjIwMTU4Cis6MTA4QjYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMUFDMDI5OTE4MkE0NEY3Cis6MTA4QjcwMDAwOEI4ODJBMjAxQkIwMDI4NjAwQUEwMTI2QzAwQkIwMEVBCis6MTA4QjgwMDA2RUMwMEFCMDAyRTQwMEJCMDAyQTAwMkFCMDAyMzgwNDFBCis6MTA4QjkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMUU0MDhEQUMwM0E2MDA0Cis6MTA4QkEwMDAwQzE4MEFFQjA0REIwMDM2RTAwNzg1ODM2QzAwRkIwMDQxCis6MTA4QkIwMDAyRUMwMEZCMDQzRTQwMEVCMDAzRTg4MEUxODAzMTAwNEYzCis6MTA4QkMwMDA3MDAwMDAwMDAwMDAwMDAwRTA0MTlDMTBFOTAwMzc2MEU4Cis6MTA4QkQwMDA4N0YwMTc3MDAwQ0YwMTM3QzA0Qzk4MDNCQzAwRkIwMDMyCis6MTA4QkUwMDAzRkMyMEZGMDAzRTQwMEZGNDAzRkU0MEREOTAzRjAwMDYzCis6MTA4QkYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE0MDBGNDAwMzA0MEJECis6MTA4QzAwMDAwRkI0MDM5OTAwRkIwMDNFQzAwRDA0MjMyQzA4RkI4ODIxCis6MTA4QzEwMDAzMkMwMEZCMDAzRTYwMERCMTAzRTAyMEZCMDgzRDAwNDc5Cis6MTA4QzIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCOTUwQTI0ODM4Cis6MTA4QzMwMDA4QkIwMDMyMDAwRDc4MDJFRDgwMDgwMDIzQzAwQkY4MDdDCis6MTA4QzQwMDAyM0U4OEJGMDAyRjQ0MDhCNDAwQzQyMDNCNjAyRjIwMEEyCis6MTA4QzUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMjQ0MDBDOEU1Cis6MTA4QzYwMDAwQjMwMTI4QzAwQTM4MDI0QzgwQjAwMEFDQzAwQjM0NDQ0Cis6MTA4QzcwMDAwNEMwMUIzNjAyQzUwMTgzMEMyQ0EwMEIzMDAyRjgwMDg3Cis6MTA4QzgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDhCNzkwMjE2NDgxCis6MTA4QzkwMDAwQkY4MDI0QTA0OTc4MTJGRTQwQTc4MDI5RTAwQjc4MEZECis6MTA4Q0EwMDAyMUUwOEI3ODgyRDY4Njg3ODQyREEwMEI3ODAyQzAwMEM1Cis6MTA4Q0IwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA0MDBGMjAwMzBDMDNFCis6MTA4Q0MwMDAwRjMwMDM4QzAwRTMwQTNDQzAwRjE4MDM4QzAwRjMwMjQyCis6MTA4Q0QwMDAzMEMwMUYzMDAxQzY4MEMzMDAzQ0MwMEYxMjAzREEwMjRGCis6MTA4Q0UwMDAwMDAwMDAwMDAwMDAwMDAwNDAwREJDMDBGRjAwM0Y0MUZDCis6MTA4Q0YwMDAwRkYwMDNCODA4RkYwODNGQzAwREYwMDMzQzIwRkYwODQ5Cis6MTA4RDAwMDAzQkQyMEZGMDAzRjQ0MEVGMDAzRkM0MEZEMDAzRDAwNjc2Cis6MTA4RDEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU0MDBGRTAwMzJDMjcwCis6MTA4RDIwMDAwQzMwMEIyNjAwRkI4MDM2QzAwREEwMDNFQzAwRkJFMEVFCis6MTA4RDMwMDAzMkQwMEZCODQzNjQ0NERCMDQzRTgwMEZCMDAzRTIwMDNFCis6MTA4RDQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDBCNzAwQTFDMEE2Cis6MTA4RDUwMDA4ODcwMDMxMDAwQjcyMDIxQzAwODcwMDJEQzgwQjMzMDk3Cis6MTA4RDYwMDAzMUM4MEI3NDAyMTQwMDg3NDAyREMwNEI3MDAyRDIwMDMyCis6MTA4RDcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDk2MjBCNjgwMjBFMEU3Cis6MTA4RDgwMDAyOEY4MDI5NDEwQjc4MTI3RTIwOTc4MDJERTAwQjdBMDI0Cis6MTA4RDkwMDBBOUU4MEIzODAyNzYwMDg3ODAyREEwMEI1ODAyRjAwMDVFCis6MTA4REEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENFMTBCMzAwMjBDNEQyCis6MTA4REIwMDAwODIwMDI4MDEwQjMwMDIyQzgwOEIwMDJDQzExQjMwMjEwCis6MTA4REMwMDAyOEMwMEIzMDAyMDQwMDkzODAyQ0QyMEIxMDAyRDIwNDc2Cis6MTA4REQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGRTQwMzJBMEFFCis6MTA4REUwMDAwQ0U0MDM5ODgwRkEwMDM3QTAwREUwODNFODAwRkUwMDUxCis6MTA4REYwMDAzQTgwMEJBMDAzNjgwMEQ4QTAzRjkwMEZBMDAzRkEwNEFDCis6MTA4RTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDhGODA4M0UwMDk0Cis6MTA4RTEwMDAwRjgwMDMyMDAwRjg0MDNFMDAwRjgwMDNFMDAwRjgwNEJDCis6MTA4RTIwMDAzMDEwMEY4MDAzRTAwMkU4MDAzRTAwMEY4MDAzRDIwMDA0Cis6MTA4RTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBGMTAwMzI0MEEzCis6MTA4RTQwMDAwRTkwODNBNDAwQzk4MDNFNDAwRTkwMDNBNDAwRjkwMDU4Cis6MTA4RTUwMDAzRTQwMEM5MDAzRTQwMEM4MDAzRTQwOEY5MDAzMDIwNEEzCis6MTA4RTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTQwQTA2MkVGCis6MTA4RTcwMDAwODEwMDIyNDEwODkwMDJFNDAwODkwMDIyNDAwQjkwMDM2Cis6MTA4RTgwMDAyRTUyMDg5NDAyQzQwMDg5NDAyRTQwMEIxMDAzNjAxMDNCCis6MTA4RTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTE4MjI0NDRBCis6MTA4RUEwMDAwQTkwMDJBQzAwODkxMDJFQzAwQTkwMDJBNDAwQjk4MDdBCis6MTA4RUIwMDAyRTYwMDg5ODAyRTYwMjg5MDgyRTQwMEI5MDAyMDYwMEY4Cis6MTA4RUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODBCMTIwQTA0ODE5Cis6MTA4RUQwMDAwODkwMDIyNDA4ODEyMzJDNTAwODEwMDIwNDgwQjEyMDNECis6MTA4RUUwMDAyQzQ4MjgxMjAyRTQ4MDgxMjAyQzQwMEI5ODAyNDIwNTc1Cis6MTA4RUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGODUwMzIwMDkyCis6MTA4RjAwMDAwRTg1MDNBMUUwQ0EwMDNFMDAwRTg1MDNBMDAwRjgwMDE0Cis6MTA4RjEwMDAyRTAwOUNBMDAzRTAwMEM4MjgzRTAwMEY4MDAzMkUwMTE1Cis6MTA4RjIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDBGNTEwM0Y0NDgwCis6MTA4RjMwMDAwRkQwMDNGNDAwRjExMDNENDA4RkQ0MDNFNDUwRjkxMDNBCis6MTA4RjQwMDAzRTQ1MEY5MTAzRDQ0MEZDMDAzRkMwOEZEMDIzRTYwNDgwCis6MTA4RjUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU2MjBDREE4MzM0MDk2Cis6MTA4RjYwMDA4REQwMDMyNjgwQ0QwMDNENTAwQzlBMDM2NDAwRjlBMEZCCis6MTA4RjcwMDA3QTZBMEY5QTYzRTY4MEM5ODAzRTQwMEY5MDAzMDYwMDJDCis6MTA4RjgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDA4OEUwMzYwMEFBCis6MTA4RjkwMDAwODgwMEEyMTQyQzgwMDJFMjkwQ0E0NDIyMDAwQjg0MEIzCis6MTA4RkEwMDAyRTAwMEI4MTAyRTEwMDg4MDIzQTAxMEJDMDAyMEUwNDgwCis6MTA4RkIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDI4MTA4MjQ0MEMxCis6MTA4RkMwMDAwOTEwMDIwNDAwOTEwMDJDNDA0QjE0MDI0NDAwQjUxMDFCCis6MTA4RkQwMDAyOTQwMEI1MDAyRjUwMEI1MDAyRDQwMEJEMDAyMDIwMUQ0Cis6MTA4RkUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxMUE2MDE4OTAwMjY0MDUyCis6MTA4RkYwMDAwODk0MDIyNDAxODkwMDJFNDAxQTkwMDI2QzAwQkYwMkRFCis6MTA5MDAwMDAyRjQwMEJEMDAyRjQwMkJEODAyQjQwOEJEODNBMDYwNENGCis6MTA5MDEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBDOTA1MzY0MTEyCis6MTA5MDIwMDAwRDFDMDMyNDAwRDkwMDNFNDIyRjk0MDM2NDAwRjkwMDc0Cis6MTA5MDMwMDAzQTQwMEY5MDAzQzQwMEY5MDAzRTcwMEYxMDAzMjgwNDVCCis6MTA5MDQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMTg0MDhGOTI0M0U0MDYwCis6MTA5MDUwMDAwRjkxMDNFNDAwRjkwMDNFNDEwRDEwMDNBNDAwRjkwMDU0Cis6MTA5MDYwMDAzRTQwMEY5MDAzRTQwMEM5MDAzRTY0MEY5MDAzQ0EwMDI1Cis6MTA5MDcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDhDODgwMzIwMjM0Cis6MTA5MDgwMDAwRjgwMDMwMDAwQzgwODNBMTBDRTg0MDNFMDAwRkMwMDAzCis6MTA5MDkwMDAzRjAwOEZDMDAzRjA4MEZDMDAzRjE4MEZDMDQzQ0EwNDlDCis6MTA5MEEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4RTAwQTE4MDlDCis6MTA5MEIwMDAwQkUwMDIyODAwREVDMjIzOTAwMEEwMDJFODAwQkEwMDA0Cis6MTA5MEMwMDAyRTgwMEJBMDAyRTgwMEZBMDAyRTgwMEJBMDAyQ0EwMDNFCis6MTA5MEQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5OTgxNjBDMDlECis6MTA5MEUwMDAwQjEwMDIwQzAwOTAxMDJBRkMwQjMwMDJDQzAwQjMwMEQ1Cis6MTA5MEYwMDAyQ0MwMEIzMDAyQ0MwMEIzMDAyQ0MwMEIzMDAyQ0EwMEQ1Cis6MTA5MTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDODI5NTQwMjFDMDFBCis6MTA5MTEwMDAwQjUwMDIxQzgwOTA4MDIzMDEwOTcyMTJEQzAwQjYwMDAzCis6MTA5MTIwMDAyRDAwMEI0MDAyRDAwMEI0MDkyRDAwNEI0MDgyRTgwMDE2Cis6MTA5MTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODNFODBERDgwQjFFMDkzCis6MTA5MTQwMDAwRkRBMDMwRjgwRDQ4MDM5RTAwQjdBMDNERTAwRjU4MDVDCis6MTA5MTUwMDAzRDIwMEY0ODAzRDYxMEY2ODEzREUwOEY2ODAzRUEwMkY4Cis6MTA5MTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBFRDAwM0UwMDAzCis6MTA5MTcwMDAwRjkxMEJFQzEwRjgwMDNFMDAwRUIwMDNFQzAwRjgwMDZECis6MTA5MTgwMDAzRUMwNEZCMDAzRTgwMEU5MDEzRTAwMEY5MDAzQzIwNjY1Cis6MTA5MTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMjBCRjgxMzNBNDM1Cis6MTA5MUEwMDA4QzE5MDMzRTAwQ0Q4MDNGRTAwRkY4ODMzRTAwRUY4MDM2Cis6MTA5MUIwMDAzRkUwMEZGOTEzRkExMEZEODAzRkE0MEZEODAzQzAwMDYxCis6MTA5MUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCRjIwMzFDMjA4Cis6MTA5MUQwMDAwODVBMDIzQzAyODcwMDJEOTQwQjcwMEExQzQwODYxMDJFCis6MTA5MUUwMDAyRDAwMEI0MDAyRDQwMEY2MDAyRDQwNEI2MDAyRUEwNDMzCis6MTA5MUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCNzAxMjM4MDE4Cis6MTA5MjAwMDAyODUwMDIxQzAwODQwMDJEQzAwQjMwMDIxQzAwQjUwMDQ5Cis6MTA5MjEwMDAyRDAwMEI0MDA2RDA0MEI0MDgyRDgwMEI0ODAyQzAwMDQyCis6MTA5MjIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDBCMzA4QTAyMEEzCis6MTA5MjMwMDAwODExOEEwRTAwODAwMDJDOTAwQjM3MDIwQzAwOTAwMDYxCis6MTA5MjQwMDAyQ0MwMEIzMDQyQ0MwNEEzODAyQzUwMEIzMDAyQzgwNDNECis6MTA5MjUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBGOTgwMzI2MDVBCis6MTA5MjYwMDAwQ0Q0MDMzQzgwODgwMDNFRDAwRkY4MDMyODAwRkEwMDlECis6MTA5MjcwMDAzRUMwMEZCMDA3RUMwMUJCODAzRTU0MEZCMDA2RUEwNEJECis6MTA5MjgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVFMDhGOTgwM0FDMDk1Cis6MTA5MjkwMDAwRjkwMDNFQzAwRjg0MDNFNTgwRkIwNDNFOTAwRUI0NDU4Cis6MTA5MkEwMDAzRTAwMEY4MDAzRTAwREY4MDAzRTgwMEY4MDAzRTAwMEQ5Cis6MTA5MkIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMERDMDBDRjAwMzM0MDRGCis6MTA5MkMwMDAwQ0QwMDMzQzMwQ0MwMDNCQzAyREYwMDNEODAyQ0MwMEM2Cis6MTA5MkQwMDAzRDAwMENDMDAzRjQwMEVFMDIzNzQwMENFMDAzQzA0NDM0Cis6MTA5MkUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMTg4Mzg0MjAwMDFFCis6MTA5MkYwMDA0QTEwMDIwQzAwQTg0ODJFNjAwOEIwMDJFOTAwODk0MDFDCis6MTA5MzAwMDAyRUMwMDhCMDAyRTgxMEIxMDEyMDgwMEE5MDAzQTA0MEVFCis6MTA5MzEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjgyMjIwODU1Cis6MTA5MzIwMDAwODkwMDIyQzE0ODgwNDJDMDgwOEIwMTJFODAwOEEwMDY3Cis6MTA5MzMwMDAyRUMwMEFCMDAyRTgwMUI5MDAyNjA0MDg5MDAyRTAwMDNECis6MTA5MzQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDA4MzgwQTJDMDYwCis6MTA5MzUwMDAwQTkyMDIyQzAwQTIwMDJDMDAwODM0MDJDODAwODMwMEVDCis6MTA5MzYwMDAyQzAwMjgwMDAyQzQwMUJBMDAyMkMwMDIyMDA2QzIwMTVCCis6MTA5MzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDQTAwQjIwMEY4Cis6MTA5MzgwMDAwQzkyMEIyQzA0QzgwNDNBMDAwQ0I0MDNFODAwQzgwMDhCCis6MTA5MzkwMDAyRTAwMEM4MDMzRTE0MEU4MDAzNjAwMEM4MDAzQzAwMzRGCis6MTA5M0EwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRjAwM0QwMDc4Cis6MTA5M0IwMDAwRkQxMEJGQzAxRkMwMDNGMDAwRkYwMDNEODAwRkQwMEIzCis6MTA5M0MwMDAzRkMwMEZGMDAzRkM4MEZGMDAzRkMwMEZGMDA3QTgwNjZFCis6MTA5M0QwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUYzMDBDRjgwMzU2MDcxCis6MTA5M0UwMDA0RTY4NDM1QzAwRTc4MDM5QzAwQ0MxMDM3RTAwQ0YzNDc3Cis6MTA5M0YwMDAzNUUxNERGMjAzN0MwMERGMzgzRkM4MEZGODAzRjAwMDgxCis6MTA5NDAwMDA3MDAwMDAwMDAwMDAwMDAwQzAxOEM4MDBEQjg0MjI2MDZCCis6MTA5NDEwMDAwOEFDMEEyQzAwOEI4MDIyMzAwODkxMjIyQzkwMjc2MTA2Cis6MTA5NDIwMDAyMkNBODhGQzIyQkYwMDhCNjIyRkQwMDlCODAzQjAwNDg3Cis6MTA5NDMwMDAzMDAwMDAwMDAwMDAwMDAwQzgwNUUyODBBOTAyMjQ0MEJFCis6MTA5NDQwMDA4MjM0NDIwNDAwQTkwMDI4QzU0ODMyMDI0QzIwODMzMEVGCis6MTA5NDUwMDAyMEMwMDgzMTAyMEQwMEIzMjAyQ0M0MEIzMDAyRjIwMUYxCis6MTA5NDYwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUFBMDJCOTA0MjI2MERDCis6MTA5NDcwMDAyOEIyMDIyNjAwODk4ODAyQzAwODMxMTJFQzAwOEIwMDU1Cis6MTA5NDgwMDAyQUQwMDhCMDAyQUMwMDJCMDAyRUMwMEJCMDAyQjAwNEYyCis6MTA5NDkwMDA2MDAwMDAwMDAwMDAwMDAwQzAwNUUyMDBFMzAwMzYyMDhDCis6MTA5NEEwMDAwRUE0NjM2RTAwRTFDMDFBQzEwQzgwMDM2ODcwQ0IwMDhCCis6MTA5NEIwMDAzNjgwMERCMDAzNEMwMEZCMDQzRUMxMEZCMDAzRDAwNDU2Cis6MTA5NEMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI4MDRERjAwM0YwMDcxCis6MTA5NEQwMDAwRkU4MDNGQzAwRkQwMDNGMDAyQjk4MDMzQTAwNzcwMEUzCis6MTA5NEUwMDAyN0U0MEZGMDAzRkMwMERGMDAzRUMwMERGMDQzRjgwMDVFCis6MTA5NEYwMDA2MDAwMDAwMDAwMDAwMDAwNTAwMEE0NjhDQjIwM0E5MEZCCis6MTA5NTAwMDAwRjI0QTNBQzAwRTk1MDNBQzAwRUI0ODMyQzA4RUIwMDQyCis6MTA5NTEwMDAzQTkwMEVCMDhCRUM4MEZCMDAzRUMwMEVCMDAzOTAwNDdFCis6MTA5NTIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwMTBBMDA4QkEwMjA4MDdECis6MTA5NTMwMDAwREE4MDIyQzA0ODk0MDI4RTgwOEIyMDIyQzAwQUYwMEQ0Cis6MTA5NTQwMDAwMjgwMDg3QzAzM0Q4MDNGMDAyRkMwMDhCMDAyMzYwMDM3Cis6MTA5NTUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQ5MDAwMzQwMjhDMDcyCis6MTA5NTYwMDAyQjI4NEEyODAwQTEwMDY4RDIwQTIwNDJBNDAxQTMwMEE3Cis6MTA5NTcwMDAwMjQwMEEzNDAyMEQwMDMzMDAyQ0MwMEEzMDAwQjgwMDRCCis6MTA5NTgwMDA1MDAwMDAwMDAwMDAwMDAwQjgwMTFBMDA4NzkwMjFFNDlDCis6MTA5NTkwMDAyQkM4MTIzQTAwODVDMDJCMjEyODY4MDJCNjAwQTc4NDg4Cis6MTA5NUEwMDAyMzYwMDgzODgwMUUwMEI3ODAyREUwMDg3ODAyMkUwMDY2Cis6MTA5NUIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4MDBDMTAwMzg1NEM2Cis6MTA5NUMwMDAwRjI2ODM4MDAwRTAzNDI4QzgwRTJDMEI4QzAwRTMwMEFCCis6MTA5NUQwMDA3ODQ1MEUzMDAzOEU4MEYzMDAzQ0M4MEUzMDAzOTIwMkIzCis6MTA5NUUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREI4MDBGNTAyM0Y0NEVDCis6MTA5NUYwMDAwRDkwMDNGODAwQkQxNDFGQzAwRkUxMjM1QzQ0OUY0MjhGCis6MTA5NjAwMDAzRkMwMEZGNDgyN0Q0MEZGMTAzRkMwNEY3MDA3RDAwNjZGCis6MTA5NjEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU4MDJDQjAwMzhDMDkwCis6MTA5NjIwMDAzQ0EwMDNFQzAwRTkwMDNFQzAwQ0IwMDMyMDA0RkIyMTg5Cis6MTA5NjMwMDAzRTgwNEZCNDAzQ0YwMENCMDAzRUNDNEZCMDQzRUEwMDk2Cis6MTA5NjQwMDA3MDAwMDAwMDAwMDAwMDAwQzg5MTk4MDA4NzAwMjFDMDUxCis6MTA5NjUwMDAwODQwMDJEQzA0QjUwMDJEMDAyRDcwMDIxQzFDQjcwMjZFCis6MTA5NjYwMDAyREMwMEI3MjAyREMwMDg3NDAyRENBOEI3MDAyRjIwNDAxCis6MTA5NjcwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEJBMDA4Nzg4MkJFMDM2Cis6MTA5NjgwMDAxODc4MjJENjExQTQ4MjJGRTAwODc4MDIxMjAwQjc5NDJECis6MTA5NjkwMDA2RDYwNEI3QTAyREU0MEI3QTAyREUwMEI3ODA2RTAwMDRCCis6MTA5NkEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEM5MTI4MzgyMjhENDYyCis6MTA5NkIwMDA5ODAwMDZFRjA1QjE5MDJDQzEwOUI0MDIwQzA0QjMwMTY3Cis6MTA5NkMwMDA2Q0YwMEIzMDAyQ0MwMEJCMDAyRUMwMEIzMDAyRDIwNDc5Cis6MTA5NkQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4NDBDQTgwM0JBMDQwCis6MTA5NkUwMDA0Q0U1MDJGODgwRUUwMDNEODAyQ0UwMEYzODgwRkEwMDU3Cis6MTA5NkYwMDAzRkE5MEZBMDAzRTgwMEJBMDIzRTgwOEJBMDAzRkEwNDQyCis6MTA5NzAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMTBGODAwMjYwMkExCis6MTA5NzEwMDAwRjg0MDNFMDI0RjgwMDNFMDA0RjgwQTNFMDMwRjgwMEZGCis6MTA5NzIwMDAzNjAyMEY4MDIzRTAwNDA4MDAzRTAwMEY4MDAzRDIwMEMxCis6MTA5NzMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBEOTAwQjY0MTJECis6MTA5NzQwMDA0RTk5MEJBNDAwNjkxMDNFNDAwQzkwMDNBNDEwQzkwMDcwCis6MTA5NzUwMDAzRTQwMEQ5MjAzRTYwMEY5MDAzQTQwMEU5MDAzQzIwNDI5Cis6MTA5NzYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4MTAwMjA0MkZFCis6MTA5NzcwMDAwODE0OUEyNDAwODkwMDZFNTAwMDkwMDIyNDEwRDkwMjI3Cis6MTA5NzgwMDA2RTQwMEI5NDAzQTcwMEI5MDAyMjQwMDg5MDAzRTAwMDRDCis6MTA5NzkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTA2MDA5OTAwQTY0MTE2Cis6MTA5N0EwMDAwQTkwMDYyQzAwQTkwOTZFNTAwODkxMDI4NDA0ODkwMEQxCis6MTA5N0IwMDAwRTQwMEI5NDAyRTU0OUI5MDAwQTQwMEE5MDAyQzYwMDI3Cis6MTA5N0MwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA2MDA4MTAwMjI0MDY0Cis6MTA5N0QwMDAwODEyMjIwNDgxQTEwMDJDNDAwODE2MDIwNDAwOTEyMEU2Cis6MTA5N0UwMDAyQzQwMEIxMjQyODQ4OUIxMjAyMDQ4MDgxMDAyQzIwMThCCis6MTA5N0YwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBEODAwMzYwMEY1Cis6MTA5ODAwMDAwQTgwMDNBMTQwRTgwMDJFMDAwQzAwMjNBMTQwQzg1MEFDCis6MTA5ODEwMDAyRTE0MEQ4MDAzRTAwMEY4NTAzQTAwMEU4MDAzRUUwMzkyCis6MTA5ODIwMDA1MDAwMDAwMDAwMDAwMDAwODgxREQ0MDBGNTAwQkY0MDdCCis6MTA5ODMwMDAwRkQxMDNGNDQ0REQwMjNENTAyQkQxMjNGNDAwRjkxMDg1Cis6MTA5ODQwMDAzRjQwMEQ5MTAzQTQ0OEY5MTIzRTRFMUY5MDAzQTYwMjFCCis6MTA5ODUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUY0MDBDNTA0M0I0MDMzCis6MTA5ODYwMDAwRkQ4MDNBNzgwRkQwMEIzNjgwREQ4NDNBNTEwQzlBMDg5Cis6MTA5ODcwMDAzMjUxNEY1QTQzMzYwMEM5QTA3QTY4MEJEMDAzQzYwMTUzCis6MTA5ODgwMDA3MDAwMDAwMDAwMDAwMDAwNzgxOENBODg4ODAyMDIwMEZBCis6MTA5ODkwMDA4RDg0MjIyMzQyRjgwMDIyMDQyODhBQTJBQTk0ODhFOTBGCis6MTA5OEEwMDAyMEE4MEE4MDBBMjE0MDgwRTIyRTI4MEI4MDAyQ0UwNEU0Cis6MTA5OEIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwNUM0MjBBMTA0QThDMDNBCis6MTA5OEMwMDAwQjFDMkEyNDAwMzkwNDIwNDAyQTFFMDJFNDgwQjExMDE3Cis6MTA5OEQwMDAyQTQ4MDkxNDQ2MDQwMDgxMzgyQzVCMEIxMDAyRDIwMDgwCis6MTA5OEUwMDAzMDAwMDAwMDAwMDAwMDAwMTgwNUE0MTJBOTI0MjI0MDQ2Cis6MTA5OEYwMDAyOTkwMDIyNDAwMzkwMDAyNTgwODE4MTBFNjAxQjkwMDI2Cis6MTA5OTAwMDBBQTQ0MDg5MDAyMjQwMDg5MDAwRTQxMEI5MDAyQzYwNDZDCis6MTA5OTEwMDA2MDAwMDAwMDAwMDAwMDAwQTAwNUU0MDBFMTAxMkE2NEVFCis6MTA5OTIwMDAyRjk0MTMyNDAyNzE2MDEyNjA0RDkwMDBDNTAyRjkwMDVCCis6MTA5OTMwMDAzQTQwMEY5MDIzMjQwMkM5MDIzQTQwMEY5MDAyRTgwNEYzCis6MTA5OTQwMDA1MDAwMDAwMDAwMDAwMDAwNjgwMUE0MDBEOTAwM0U2MDQzCis6MTA5OTUwMDBBRjkwODM2NDg4RjkyMDNFNjIwMzkwODNBNDAwQzkwMDFECis6MTA5OTYwMDAzNjYwMEYxMDAzQzQwMEY5MDA3RTQwMEY5MDAzREEwMDQ4Cis6MTA5OTcwMDA2MDAwMDAwMDAwMDAwMDAwMjgwMEExMDBDODgyMzIwMDQyCis6MTA5OTgwMDA2RjAwMDNBMDAwRDg0MDMwMDAwRTgwMDM2MDA0RjgwMThGCis6MTA5OTkwMDAzRTEwNEY4MDhCMjIwMEY4MDAzMjAxMEU4MDAzQ0EwNDczCis6MTA5OUEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwMTM4MDAwRTAwQTk5MEVGCis6MTA5OUIwMDAyRkU2MjA4ODAwOUU4MDIzODAwQUU4MDMyODAwQkEwMDUyCis6MTA5OUMwMDAxODgwMERFQzAyMzg4MEJBMDBBMjgwMDhBMDAzOEEwMDNCCis6MTA5OUQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTZDMDI4MzgwMjBDOEMxCis6MTA5OUUwMDAwQjIwMDIwQzAxOTIxMDY4QzAzQTNDMDJDQzEwM0IwMkUyCis6MTA5OUYwMDAwQ0MwMjgzQzAyNEUwMEIzMDAyOEMwMjgzMDAyQ0EwMDI4Cis6MTA5QTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE0MDA4NzQyMkJDMDlECis6MTA5QTEwMDAyOTcwMjI5QzAwQjYwMDJCQzIwQTYwODYxQzAwQjcyMTY4Cis6MTA5QTIwMDAyOUMwMDA3NDAyNUMwMDM3OTEwMUUwMDg3NDAyQTgwMEFDCis6MTA5QTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBDNzgwMjFFMEQwCis6MTA5QTQwMDAyRjc4MDI5RTAwOTY4MDM5RTAyRUY4MDNERTMwRjdEMEEyCis6MTA5QTUwMDAyREYyMDA3ODAzNTIwMEY3QTIzQkUwMEU3ODA3RUEwMkVECis6MTA5QTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREI0MDBGQjAwMENDMDU2Cis6MTA5QTcwMDAwRjMwMDNFQzEwRDMwMEI0QzAyRjgwMDM2QzQ4RkIwMDAwCis6MTA5QTgwMDAzRUM4NEQ5MDAzQTQwMEZCMjAxRUMwMEZCMDAzQzIwNkM5Cis6MTA5QTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBDQzgwMkIyQ0MwCis6MTA5QUEwMDAyRkY4MDM3RTAwNkU4MDNCQTEwREQ4NDMzRTAwRkY5MDRGCis6MTA5QUIwMDAzM0UwMEZFOTMzRkUwMENGQzAzRkUyMEZEODAzQzAwMDEwCis6MTA5QUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMUI0NDA4NzAwMjEwNENECis6MTA5QUQwMDAwODc4MDIxQzAwODYwMDIxQzAyODkwMDJEQzAwQjcxMDI0Cis6MTA5QUUwMDAyMUMwMEY3MzAyQ0MwMDg3MDAyREMwMEI1MDAyRUEwMDhBCis6MTA5QUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlEMDBBNDAwMjk0ODU0Cis6MTA5QjAwMDA2QUYwODI0QzAwQUUwMEExQzQyOTc0MDI1QzQwQTMxMDJDCis6MTA5QjEwMDA2MUMyMEI2MDA2QzgwMDg3MDAyREMwMEI1MDAyQzAwNDU0Cis6MTA5QjIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEU2MDFBMzAyMjA0MEY1Cis6MTA5QjMwMDAyODNDMDIwQzAwODM0MjIwQzgwODEwMDJDRDAwQjMwMDZDCis6MTA5QjQwMDAyOEYwMEIzMDAyQ0MwMTgzMDQyQ0MwODMxMDAyQzgwNDFGCis6MTA5QjUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFBODBFQjAwMzhDMDBCCis6MTA5QjYwMDAwQTkwMDM3QzIyQTI0MDMyNDgwREIwMEIzRTAwRkYwMDU5Cis6MTA5QjcwMDAzM0Y0MEY5MDAzRUMwMDhGMDIzRkMwMEY5MDAzRUEwNDEwCis6MTA5QjgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEUwMDBEOTAyM0VDMDNDCis6MTA5QjkwMDAwRUI2MDNFQzAwRkEyMDNFQzA0RjI0MjNBQzYwRkIwMDVECis6MTA5QkEwMDBBNkMwMEU5MDAzRTQwMEZCMDAzQ0MxMEY5MDAzRTAwMDUwCis6MTA5QkIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEY4MDJDRjAwMzNFMDg4Cis6MTA5QkMwMDAyQ0YwMTNCQzAwMkUxMEIxNjQyRUYwMDIzQzAwRkYwMkZBCis6MTA5QkQwMDAzRkMxNERFQzYzRkUwMEI3MDAzQkMwMENEODAzQzA0NDRFCis6MTA5QkUwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDZDMjg4MTgxMjJFMDI5Cis6MTA5QkYwMDAwQTM4MDIzQzA0QkFDOTMyRTAyMDg0MDIyQzAwQkIwMEJGCis6MTA5QzAwMDAyRUMwMEI5QzAyRTc4MUJCMDQyMkMwMEE5OTAyRTAwMDJGCis6MTA5QzEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI4NDA4ODgwMjI4ODk1Cis6MTA5QzIwMDAyOEJDNDJBQzAwQkEwMDJBODAwODg0MDJBQzAwQkIwMDA5Cis6MTA5QzMwMDAyRUMwMEJCMDgyRTg5MEFCMDA2MkMwMDhCMDEyRTAwMDBBCis6MTA5QzQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDAwMDA4OTAwMkE4MDk1Cis6MTA5QzUwMDAyOEIyMDIwQzAwQkEwMDIwQzAwODAwMDI4QzAwQjMwMDM5Cis6MTA5QzYwMDAyQ0MwMEIzMDIwNEMxNEIzMDAyMEMwMDgzMDAyQzIwMUJECis6MTA5QzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDY4MDBDODAwQjJDMDM1Cis6MTA5QzgwMDAyQ0IyMDNBQzAwRkEwMDNBQzA0RUE1MDNCQzAwRkYwMEEyCis6MTA5QzkwMDAzRkMwMDlBMDAzRTkwNEVGMDBCQUMwMENCMDAxQzAwMTQ1Cis6MTA5Q0EwMDAxMDAwMDAwMDAwMDAwMDAwQTAxOUZDMDBGNTAwMzVDMDA1Cis6MTA5Q0IwMDBBRjM0MDNGQzAwRjQwMDM5QzAwRkMyMDM3QzAwRkYwMTg1Cis6MTA5Q0MwMDAzRkMwMEZGMDAzRkNBMEZGMDAzRkMwMEZGMDAzRTgwNTBBCis6MTA5Q0QwMDA2MDAwMDAwMDAwMDAwMDAwQzAwNUZDMDBGRjI5M0QyMERFCis6MTA5Q0UwMDA4RUMxMDMzMjQ4REM4MDIzMjUwRUYyMDMzQ0MwREY4NEEyCis6MTA5Q0YwMDAzM0M5MEZGMjAzRkMwMENGODAzMzQwMENGMjAzMzAwMDc1Cis6MTA5RDAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDQzBCQjYwMkUwODU2Cis6MTA5RDEwMDAwODgxMDIyMDA0ODgyMDIwNDgwOEYxODIyREMwODMwMDk5Cis6MTA5RDIwMDAyMkQ0MDlGNTAyRkMwODhCMDEyMjQwMjhCNDAyMjAwNDQ5Cis6MTA5RDMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDMjBCMzA5MkM4MjEwCis6MTA5RDQwMDAwODEwMTZBMDEwOTAwODI4NDgwQTMyMDIwQzAwQkIwMDI4Cis6MTA5RDUwMDAyQ0MwMEIzMDAyQ0MwMjkzMDEyMDAwOEEzMTIyRTIwMTk4Cis6MTA5RDYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDRCQjAwMkM4MDk3Cis6MTA5RDcwMDAwODg2MDJBMDIwQTAwMDJBNjAwQUIwMTAyQzAwQUIwQ0JDCis6MTA5RDgwMDA2RUMwMDlCMDAyQ0MwMDlCMDAyMjYwMEFCMDAyRjAwNDUxCis6MTA5RDkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNUVDMDBCQjAwM0UzNDM1Cis6MTA5REEwMDAwOEEwMEI4MzAwRDkwMjNBRTAyRUIwMEIyQzAwRjg4MEZCCis6MTA5REIwMDAzRUMwNEZCMDAzRUMwMENBNDBCMjcyMEVCMDBCQzAwNEZDCis6MTA5REMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJDMTBGQjAwM0YwMDNDCis6MTA5REQwMDAwREY4MTM3MDQ4REQ0MDM3QzI4REYwMDNEQzAwRERDODlDCis6MTA5REUwMDAxM0MwMEZGMDAzRkMwMEVFNDA3RjQwMEQ3MDAzMzgwMEZECis6MTA5REYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjAxMzJDMDE5Cis6MTA5RTAwMDAwNDEwMDMyMDQwRTgxMDNBQzAwREIwMDNBQzA4Rjg0MDNECis6MTA5RTEwMDBCMkMwMkNCMDMzQTQ4MkRBNDBCQTQwMEZCMDAzRDAwNEYxCis6MTA5RTIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNDMDhCRjgwMjJDOEQ4Cis6MTA5RTMwMDAwOEI3MDAyMzQ0ODhEMDIyRDAwODcwODJGQzAwQjJFMDJBCis6MTA5RTQwMDAwM0Y0MDhGNTAyMzcwNDhCRDEyMjYwNEJGRDAyRjIwMEM3Cis6MTA5RTUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMzEwQTQ0MEVBCis6MTA5RTYwMDAwODAwMDI0ODAwQTA0MjJBRDAwMTMwMDI4QzAwQjM4MEQyCis6MTA5RTcwMDAyQ0MwMDkzMTAyQ0MwMDg5MDAyMkU4MDMzODAyRjgwMDI2Cis6MTA5RTgwMDA1MDAwMDAwMDAwMDAwMDAwNjAwMTFFMDBCNzgwMjc2NDQxCis6MTA5RTkwMDA2ODRBMDI1MjAwOEM4MDIxRTAwODc4MDJERTAwQjc4MDE4Cis6MTA5RUEwMDAyREUyMTkzOTAyNUUzMDg1OTgyMUU0MEI3OTAyRDgwMDQxCis6MTA5RUIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBGMzIwMzQwMEJGCis6MTA5RUMwMDAwQ0I4MDM0ODgwRTIyMjM4QzAwRDMwMDM4QzAwRjMwMDQ4Cis6MTA5RUQwMDAzRUMwMEQzMTAzRUMwMENCMDAzODA2MEYzMDgzRDIwMkI4Cis6MTA5RUUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMDBGRjAwM0IwMTFFCis6MTA5RUYwMDAwRkQwMDM5MDAwRjYwMDNGQzAwRkY0MDFGQzAwRkYwMUZCCis6MTA5RjAwMDAzM0MyMEVGNTEzQkMwMEVEMDAzRkM0MEZGMDAzRDAwNkMyCis6MTA5RjEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVDMDBGQjAwM0NDMDUxCis6MTA5RjIwMDAwRUEwMDE2NDAxRDgwMDMyRTAyQ0I1MDMyQzAwRjIwMDMxCis6MTA5RjMwMDA3QUMwMERCNDAzMkQ4MEM5MDIzMkMwMENCMDAzMkEwMEQwCis6MTA5RjQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDODBCNzAwMkRDMDg4Cis6MTA5RjUwMDAwRDYwMDJEMDAxODQwMDIxQzAwODMwMDIxRDAwQjcwMDRFCis6MTA5RjYwMDAyMUM4MEJGNDAzMUVDMDg2MDAyMUMwMDg3QzAzNTIwNEU0Cis6MTA5RjcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFQzBCNzkwMkRFMDBGCis6MTA5RjgwMDAwODc4MDZENjAxQjQ4MjIxRTAwODc4MEExRTAwQjVDMDIwCis6MTA5RjkwMDAyOUU4MDk3ODAyMzZDMTk3ODAyOEIwMEE3QTAyMzAwMDkxCis6MTA5RkEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCQjAwMkNFMEEyCis6MTA5RkIwMDAwOTM1ODJDMEMxQTA1MTIwRTQwODMwMDI4QzAwQkJDNDI2Cis6MTA5RkMwMDAyMEMwMEIzMDAyMDYwMDkzMThBQUIwMkEzMDBBNTIwNEFGCis6MTA5RkQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGQTAxM0RBQ0M4Cis6MTA5RkUwMDA0Q0VDMTM3ODEwRjY4MEIzOTAwQ0EwMDMyODAwRkUwMDEwCis6MTA5RkYwMDAzQTgxMERBMDBGMkE4MERFMDQzQkEwMEVBMDAzM0EwNDk0Cis6MTBBMDAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDBGODAwM0UwMDkyCis6MTBBMDEwMDAwRDgwMDJFMTAwRDg0ODNFMTIwRjgwMTM2MDAwRjg2MDA2Cis6MTBBMDIwMDAzRTAwMDc4MDAzQTAwMkU4MDQyNjA4MDU4MDAzOTIwMDkyCis6MTBBMDMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBGOTA0M0E0MDdECis6MTBBMDQwMDAwQzEyMDMyNDgyQzkwMDM2NDQwRjEwMDMyNDAwRjkwMEM3Cis6MTBBMDUwMDAzNjQwMDQ5MDAzMDQwMEM5MDAxMjQwMEM5MDAzMDIwNDJGCis6MTBBMDYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTgxMjI0MDNDCis6MTBBMDcwMDAwODkwMUEyNDAwODkwMDIyNjgwQjk5MDIyNDAwQjkwMDc0Cis6MTBBMDgwMDAyMjQwNjg5MDBBMjQwMDg5MDBBMjQwMDg5MDBBMjAwMDFCCis6MTBBMDkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTEwMjJFMEE0Cis6MTBBMEEwMDAwODk0MDAwNDA0OEIwODI2QzAwQjkwMDIyNDA0QjkwQzA5Cis6MTBBMEIwMDAyNDQwMEExMDAyMjQwMDIzMDIyQTQwQTgxMDAyMDYwMEFECis6MTBBMEMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0OTBCMTIwMjI0MDdECis6MTBBMEQwMDAwODEyMDIwQzEwODEwMkEwNTAwQjEyMDIwNDgwQjEwNTdDCis6MTBBMEUwMDAwMDQ4MEExMDAyMDRBMEExMDAyODRBMDgxMjAwMDIwMTM4Cis6MTBBMEYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGODUwQkExNEU0Cis6MTBBMTAwMDAwQzg1MDMwMTQyQzg1MDM0MDAwRjg1MDMyMTQwRjgwMDNDCis6MTBBMTEwMDAzNjAwMEU4MDEzMjA4MEUwMDAxQTA4MEMwMDAzMkUwMzg2Cis6MTBBMTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0NDRGOTEwM0Y0MDdBCis6MTBBMTMwMDAyRkQxMTNGNDA0RjUwMDNGNDAwRjkxMEJFNDQwRkYyOEFBCis6MTBBMTQwMDBCRTRFMEQ5NjgzRDRBMkREMjgzNzRBMEY5MzgzRTYwNkQwCis6MTBBMTUwMDA3MDAwMDAwMDAwMDAwMDAwOTgwNUU0MTBDRDAwM0Y0MEIyCis6MTBBMTYwMDAwRkQwMDMzNTAyNUQwMTMxNDQwRkQwMDMyNDAwRjkwMDA0Cis6MTBBMTcwMDAzMjYwMEM5ODgzRTY0MEQ5MDAzNjZBMEM5RTgzMjYwMTMzCis6MTBBMTgwMDA2MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDA4ODAwMkUwMDkxCis6MTBBMTkwMDAwQjgwNDIwMjgwOEEwMDIyMjA4ODgwMDMyMDA4Qjg4MjM3Cis6MTBBMUEwMDAyMjIxMDg4ODgyRTI0Mjg4QTgyMjIwMDhDRTAyMEUwNERBCis6MTBBMUIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDI4MTAwNjg0MDczCis6MTBBMUMwMDAwQjEwMDI4NDAxQjkwMDIwNDA0OTEwMEEwNDAwQjUwOEIwCis6MTBBMUQwMDAyMTQ2MDg1MDAyRDQwMDhEMjAyNTRBMEI1MDAyNDIwMTJFCis6MTBBMUUwMDAzMDAwMDAwMDAwMDAwMDAwMTgxMUE0MDA4OTA0NkU1NDIzCis6MTBBMUYwMDAwQjEwMTJBNDAxQTkwMEEyNDAxODkwMTYyNDAwQjkwMDY3Cis6MTBBMjAwMDAyMzQwMThEMDAyRjQwMDhENDAyMTRBMEJEMDAyNDYwNEFFCis6MTBBMjEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBDOTAwM0E1MEYyCis6MTBBMjIwMDA4Rjk2MEI4NDAyRjEwMTMwNDg4RDkwMDMyNDEwRjkwMEMxCis6MTBBMjMwMDBCMjQwMkM5MDAzRTY0MEQxQzAzNjUwMkY5MDBCNjgwNEZBCis6MTBBMjQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTAwM0U2MDNBCis6MTBBMjUwMDAwRjk5QzM2NDAwRDkyODNFNDAwRDkwMDNBNDAwRjk0MDMzCis6MTBBMjYwMDAzRTQwMEY5MDAzRTQyMEY5NDAzRTQwMEM5MDAzOEEwMEVBCis6MTBBMjcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBGODAxMzYwMDc3Cis6MTBBMjgwMDA4RjgwMDNFMDAyRjgwNDMyMDAwRDgwNDMyMDAyQ0MwMEVFCis6MTBBMjkwMDAzRjAwMEZDMDEzOTAwMkRDNDAzRjEwNENDMDIzMEEwNDYzCis6MTBBMkEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDBCQTAwMjI4MERECis6MTBBMkIwMDAwQkU4MjBGODAwNEVDMDIzQTAwOEEwMDM2ODAwOEEwMDI1Cis6MTBBMkMwMDAyRTgwMUZBMDAyMkEwNjhBMDAyRUEwMDI2MDAzMEEwMDI4Cis6MTBBMkQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTZDMDBCMzAwMjBDMDEyCis6MTBBMkUwMDAwQjNEMDJDMDAzMjMwMDIwRTAwMUIwMDY0QzAwOEIwMEIwCis6MTBBMkYwMDAyRUMwNEIzMDAyOEUwODgzODAyQ0M0MDAzNDhFNEEwMDVFCis6MTBBMzAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDODBCNTgwNjFDMDZBCis6MTBBMzEwMDAwQjQwMDJENDAwODQwODIzQzIwODUwMDI1RUMwODQwMUFFCis6MTBBMzIwMDAyRDAwOEEwODAyMTAyNDg0MDg2RDAwMEEwMzEyMjgwMEY4Cis6MTBBMzMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBGNTgyMjE2MDE3Cis6MTBBMzQwMDAwRjc4MDNENjA0QUU4MDMxRTAwRDU4MjM3RTAwQzY4MDFFCis6MTBBMzUwMDAyREUwMEI3ODAzOEUwMEQ3ODIzREYwMEM3QTAzNkEwMjYxCis6MTBBMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGMTAwQkFEODk5Cis6MTBBMzcwMDAwRjgwMDNFNDEyRjgwMEJFODAwRTEwMDNFQzAwRjkwMDE5Cis6MTBBMzgwMDAzRTAwNUY4MDAzRTAwOEY4MDQzQzAwMEY4MDAzQzIwNjMzCis6MTBBMzkwMDA2MDAwMDAwMDAwMDAwMDAwNDAwNUZFMjBGRjgwM0ZGMDRDCis6MTBBM0EwMDAwRkY4MDNEMjAwRUY4NEIzNjEwQ0I5MDNGRTAwRkY4MDA1Cis6MTBBM0IwMDAzM0UwMENGODEzMjIxMUNEOTAzRjYwMENFODAzMTAwMDNECis6MTBBM0MwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBGNTAwMkRDMEU2Cis6MTBBM0QwMDAwQjAwMDJENDA0ODQyMDIzNDAwODVBMDJEQzAwQjQwMDlECis6MTBBM0UwMDAyMTAwMjhDMjAyMUUwNDg2MDQyRDg4MDhEMDAyMkEwNEY3Cis6MTBBM0YwMDA2MDAwMDAwMDAwMDAwMDAwMTAwMDlDMDBCNTAwMkQ0MDJGCis6MTBBNDAwMDAwQjcwMDJGNDIwQTcwNDIxQzAwQTUwMDJEQzAwQkUwMDM5Cis6MTBBNDEwMDAyMUMwMDg3MDEyMDAwMDg1MDAyRDQwODg2ODBBMDQwMEUxCis6MTBBNDIwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNENDMDBBMTAwMkVDMDNECis6MTBBNDMwMDAxQjA4MDZDNDIwODAwMDIwOTgxQTEwMDJDQzAwQjEwODI2Cis6MTBBNDQwMDAyMDAwMDgwMDAyMEMwMTgyQzAyQ0FDMjg5MDIyMTgwNEM1Cis6MTBBNDUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBCMzAwM0U0MDIyCis6MTBBNDYwMDAwRkJBMDNFNTAyRTkwNDMyOTBBRUIwMDNGQzEwRkI0MEUyCis6MTBBNDcwMDBCMjAwMEM4MDBCMkMwMjgyMTgzRkEwMENEMDAzMkUwNERCCis6MTBBNDgwMDA2MDAwMDAwMDAwMDAwMDAwOTAwMEVDMDRGQjAxM0U0MDcyCis6MTBBNDkwMDAwRkI2NDNFNDAwRjgwMDNFODAwMTkwMDNFQzAwRjg4MTIxCis6MTBBNEEwMDAzRUQwMERCNDUzRTAwMEY5NDAzRTQwMEZBMDAzRTAwMDYxCis6MTBBNEIwMDAzMDAwMDAwMDAwMDAwMDAwODAxMERDMDJDRDgwMzM2MDFFCis6MTBBNEMwMDAyQ0RBMDNGQzAwRUMwMDMzNDAwRkYyMDM3QzA0RkUwMEE2Cis6MTBBNEQwMDAzMjAwMENDODAzM0MwMENFMDAzMTgwMENEMTAzMjQwNEIwCis6MTBBNEUwMDAzMDAwMDAwMDAwMDAwMDAwOTEwNDZDMDAwOTAwMkE2NEE0Cis6MTBBNEYwMDAwODhFMDJDMjEwQTAxMDNFMTAwQjk4MDJFQzAwQjkwMEFBCis6MTBBNTAwMDAwMkQ4MDhCRTIyMjAwMDg5MDAyMjUwMDhBMDAyMjA0MDY0Cis6MTBBNTEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDAwQjIwMjI0MEVECis6MTBBNTIwMDAwOEEwMDJFNTQyQUIwNDIyMTgwQkIwMDI2QzAwQjMwMDk1Cis6MTBBNTMwMDAyMDA0MDgwMTAyMDAwNEE4NDAyMjEwMDg4MDAyMjAwMDI0Cis6MTBBNTQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDg4MzAwMjg0MEMwCis6MTBBNTUwMDAwODA0MDJDNDAyQTgwMDJDMDAwQjEyMDJDQzAwQjAwMEI4Cis6MTBBNTYwMDAyMEMwNDAzMDAyMEMwMDhCMDBBOEMwMDgzMDAyMDIxMTRECis6MTBBNTcwMDAwMDAwMDAwMDAwMDAwMDAwODAwRDZDMDBDOTAwMzM0MEE2Cis6MTBBNTgwMDAwQ0IwMDNFQzAyRUIwMDMyNDAwRkIwMDM2QzAwRkEwMDk5Cis6MTBBNTkwMDAzMjAwMEM4MDAzMjA4MEM4MDAzMDAwMEM4MDAzMjAwM0IwCis6MTBBNUEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOUZDMDBGRDAwM0Y0MDJBCis6MTBBNUIwMDAwRkMyMTNGMDAwRjQwMDNGMDA0RkQ0MDNGQzAwRjUwMDdECis6MTBBNUMwMDAzRkMwOEZGMDAzRkM0MEZGMDAzN0MwMkZGMDAzRTgwNkM4Cis6MTBBNUQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwMDBDQzAwMzMwMDU3Cis6MTBBNUUwMDAwRUQwMEIzMzAwQ0MwMDMzRTAwRkMwODM3QzAwQ0YyMEIzCis6MTBBNUYwMDA3QjA5OENGODAzRkU1MENGMzgzRkUxMERDMjAzRjAwMDE5Cis6MTBBNjAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUyMDA5ODA4MjA4MDI4Cis6MTBBNjEwMDAwODk4MDIyMDAwODhEMDIyRTAwRUI0MjI3RDE5OUY2OTlDCis6MTBBNjIwMDAyRTkwMDgzMDkyMjg4MURCNjQyRUUxODgxNkEyRTAwNDg3Cis6MTBBNjMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM4MDA5MDI0MjAwMUMwCis6MTBBNjQwMDAwODEwMTYwMDgyODMwMTI4QzEwQjAyODIwQ0UwQTMxMEJGCis6MTBBNjUwMDAyODBFMUI5MjAyODQ4NDkzMjAyRUMwMDgzMTAyRTIwMTRFCis6MTBBNjYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE4MTA5ODAwMjI4MEIzCis6MTBBNjcwMDAwODkwMDIwMDYwOEExMDJBQzAwQTIwMDI2QzE4QkIwMEYxCis6MTBBNjgwMDA2RTYwMkI5MDAyNDYyMDhCMDAyRUMyMDhCMTgyRjAwNDJGCis6MTBBNjkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMUU0MDJDQjAwQjI0MDY2Cis6MTBBNkEwMDAyQzkyMDMyNzAwODgwMEJBQzAwRjg4MDMyQzAwRUIwNDBCCis6MTBBNkIwMDAzQUEwQ0YyQ0EzRUQwMDlCMDAzQ0YwMkQ4QzMzRDAwNEFFCis6MTBBNkMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI0MDRFRjAwM0ZDMDkzCis6MTBBNkQwMDAwRDUxMDNGMDAwRjE4MTM3QzAwRUY0MDM5QzEwQ0YwMDQwCis6MTBBNkUwMDAzRDgwMENFQzA3QjgwOEZGMDIxRkM0MEZDODAzRjgwMDM4Cis6MTBBNkYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMDlFMDBDMzAwMzg0MEQxCis6MTBBNzAwMDAwQzkyMDNBNDgwRkIyMDNBQzAwRDk0MDMyQzQwRkIwMDY0Cis6MTBBNzEwMDAzRTAxMEY4MDAzRTUwMEVCMDAzQUMwMEQ4NDBCMTAwNEVFCis6MTBBNzIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDg4QjAyMjJDMDk5Cis6MTBBNzMwMDAwODkyMDMyMTAwOEI0ODIyQzAwQkI3MDIzRDQwM0YwMTI1Cis6MTBBNzQwMDAyMjc0MEI5MDAyMjgwNEJGMDBCMkMwMEI4NTAyMzIwMEI1Cis6MTBBNzUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQwMDE4MDAwMjgwMEVCCis6MTBBNzYwMDAwODJDMTI4ODQwQjA0MDA4QzAwQjE4MDIwRTAwQjMwMDNECis6MTBBNzcwMDAyODIwMTEzMDAyMEMwMEIzMDAyNDAwMDkwMDA2MzgwMDI0Cis6MTBBNzgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTEyMDA4NDgwMjFBMDgxCis6MTBBNzkwMDAyODY4MTIzQTAwODQ4MDI1RTA4QjU4MDIxRTQwQjc4MjU4Cis6MTBBN0EwMDAyMUE2MEI3ODAyMUEwMEI3ODAyMTIwMEI1ODAyMDgwMDVFCis6MTBBN0IwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4MDBDODIxMzgwOUQ3Cis6MTBBN0MwMDAwQzI4MDM4MDAxRjEwMDM4QzAwRDg1MDIwQzAwRkIwMDRECis6MTBBN0QwMDAzODg1MEYxMDAzOEMwMEVCMTAzQ0M4MEQzMDAzMTIwMkJCCis6MTBBN0UwMDAwMDAwMDAwMDAwMDAwMDAwNDAxRDk4MDBGQzAxM0Y4MEI4Cis6MTBBN0YwMDAwRjY4MDNEMDQwRkMwMDNCQzAwREMwMDNGQzIwRkYwMEVECis6MTBBODAwMDAzQkM1MEZGMDBCQjQ0MEZGMTgzRjAwMEZGMTAzRDAwNjFCCis6MTBBODEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU0MDBFQjAwQjA0MTZCCis6MTBBODIwMDAwQ0EwMDNFMDA0Q0EwNEIwRTAwRUIwMDNFQzgwQ0IyMDFGCis6MTBBODMwMDAzMjgxMENBMDAzRUUwMERCMDAzRTAwMEVCMDAzMkEwMEM0Cis6MTBBODQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDQ4NzAwMjFDMDNGCis6MTBBODUwMDA0ODYwMDJGMDAwODcwMDIxQzAwODcwMDJGQ0EwODMyODM1Cis6MTBBODYwMDBBMzgwMDg2MDAyREMwMDg3MjAyREMwMEI3MDAyMTIwNDU4Cis6MTBBODcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlDMDJBMzgwMjE2MDc2Cis6MTBBODgwMDAwODY4MDJEMjAwODc4MDIxRTAyOTc4MDJERTgwODc5MDY0Cis6MTBBODkwMDAyMUEwMTk0ODAyRkUwMDk3ODAyREUwMEEzODgyMzAwMDdFCis6MTBBOEEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDE4MzgwMjBDMDdDCis6MTBBOEIwMDAwODIwNDJDMDMwODM3MEEwQzA4OTM0MDJDQzAyODMwMERCCis6MTBBOEMwMDA2MEMwMjkwMDAyQ0UwMDgzMDAyQ0M4MEJCQzAyMTIwNDE5Cis6MTBBOEQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE5MDBFQUUyMzI5MDE0Cis6MTBBOEUwMDAyQ0UwMDNGQjAyQ0VDMDMyODAwRkU0MDNFODAwOEEwMEI0Cis6MTBBOEYwMDAzMzg4MEQ2NEMzRkEwMERBMDAzRDkwMEVFMDBCM0EwNDkxCis6MTBBOTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEMwMjRGODA4M0UxMjZCCis6MTBBOTEwMDAwRkMwMDNFMDQ4RjAwMDNFMDAwRTgwOTNDMDAwRjgwMDM2Cis6MTBBOTIwMDA3RTAxMEU4MEMyRTA0MEY4MDA3RTAwOEY4NDAzRDIwMERBCis6MTBBOTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU1MDBDMTAxMzI0OEFFCis6MTBBOTQwMDAwQzk4MDNFNjQwQzkwMDMyNDAwRjkwMDM2NjAwQzkwMDJFCis6MTBBOTUwMDAxODYxMEM5MDAzNjQyMEY5MDUzRTQwMEM5MDgzMDIwNEJBCis6MTBBOTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY2MjA4OTAwMjA1MkIyCis6MTBBOTcwMDAyODEwQzIyNjAyQTkwMDIyNDAwQjkwMEEyNzAwQTkwMDM1Cis6MTBBOTgwMDAyMjcwMDg5MDAyMjQwOEI5MDAyRTQwMEE5MDBBMjAwMDg0Cis6MTBBOTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDI4RDAwMjM0MDc0Cis6MTBBOUEwMDAwOEQxMDI4NDIwODkwMDIyNjAwQjExRjIyNEIwODEwMEJBCis6MTBBOUIwMDAyQTQ2MDg5MDQyNjQwOEI5MDAyRTQwMDg5MjAyMDYwMDE4Cis6MTBBOUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDE0ODA4NTIwMjM0ODk3Cis6MTBBOUQwMDAwODUyMDI4NDA4ODEwMDIwNDAwQjEyMDIwNDgwQTEyMDRBCis6MTBBOUUwMDAyODQ5Mjg5MDAyMDQwMDMxMjAyRTQwMDgzMjAyMDIwMTNBCis6MTBBOUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBDODUwQjIxNDU0Cis6MTBBQTAwMDAwQ0MwMDNBMTQwQzgwMEIyMDAwNzg1MDMyMTQwQzg1MDE0Cis6MTBBQTEwMDAzQTE1MEM4NTAzNjE0MEY4NTEzRTAwMkM4NTAzMkUwMzQ2Cis6MTBBQTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREM0NDhGOTEwM0U0NDhBCis6MTBBQTMwMDA0RjkxMDM3NDAwRjU0NDNFNDAwRkQxMDNFNDQwRjkxMEY4Cis6MTBBQTQwMDAzNzQ0MEZEMDAzRDQwMEY5MTAzRkMwMEZEMTAzRTYwNkZFCis6MTBBQTUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUY2QTBERDhDMzM3OEFGCis6MTBBQTYwMDAwRURBMDMzNTAwQ0RBMDMzNDAwREY4MEIzNjgxRTk4MEI2Cis6MTBBQTcwMDAzMzcwMEM5MTAzRTQ0MEY5QzAzRUMwMEZEQzAzQzYwMDA0Cis6MTBBQTgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDRCODQwMjAzQ0Q1Cis6MTBBQTkwMDAwQzg1MDIwMjg0OEE0MDIyMDAwODhGODIyMzAwQjhFOEQ1Cis6MTBBQUEwMDAyMjIwMDg4ODAyRTIwMEI4RDAyRTAwMEI4QzAyQ0UwNENGCis6MTBBQUIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDA5MTAwNjA0ODVDCis6MTBBQUMwMDA0QjEwMDIwNDhBODE0MDYwNDA0OTEwMDI4REEwQTE0MUQwCis6MTBBQUQwMDAyMDUwMDkxMjIyQzQ4MEIxMjAyQzQwNEIzRTAyQzIwMUZBCis6MTBBQUUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDhCOTA0QTA0MDgwCis6MTBBQUYwMDA0OEIwMDIyNDAwODkwMDgyNDAwODkwQTZBNDAwQjkwNDRFCis6MTBBQjAwMDAyMjU0Mjk5NTAyRTU0MEI5MDA2RTQwMEI5MjAyQzYwNDFBCis6MTBBQjEwMDA2MDAwMDAwMDAwMDAwMDAwQTAwNUU0MDA5MTAwMzI0MDQ5Cis6MTBBQjIwMDAwRjkwMDkyNDAwODk5MDMyNDAwRDk0MDNBNDAwRTkwMjlCCis6MTBBQjMwMDA3MjYwMEQ5NDAzRTQwMUY5MDEzRTYwMEY5MDAzRTgwNDk0Cis6MTBBQjQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0NDBGOTAwM0U0MDExCis6MTBBQjUwMDA0RjkwMDNFNzEwRjk4MDNFNDAwRjEwMTM2NDAwRjEwMDlFCis6MTBBQjYwMDBCRTQwMEU5MDAzRTYwOEY5MDEzRTY0MEY5MDAzQ0EwMDUwCis6MTBBQjcwMDA2MDAwMDAwMDAwMDAwMDAwMjgwMEEwMDBGODAwMzIwODdCCis6MTBBQjgwMDAwQzAxMEIyMDQwQzg0MDMyMDAwRTg0ODMyMDAwRjgwNEUyCis6MTBBQjkwMDAzRTA0MEY4MDAzMjEwMEU4MDAzRTEwMEY4ODAzQ0EwNDIyCis6MTBBQkEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTM4MDAzRTA0MjM4MDNCCis6MTBBQkIwMDAwOEVDMTIzOTQ0QTYwMDI4ODEwOEUwMDAzODA4QkEwMEUxCis6MTBBQkMwMDAzRjgwMEJBMDAyQTgwMDhBMDIyRTgwMEJFMDAyQ0EwMDgwCis6MTBBQkQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTQ4MDAzMTAwMjREMDlCCis6MTBBQkUwMDAwODNFMTJBRTA4ODFBMDJDQzAwQTM4MDA0QzAwQjMwMDA5Cis6MTBBQkYwMDA2RUMwMEEzMDAyMEMwMEEzMDA2Q0MwMEIzMDAyQ0EwMDA5Cis6MTBBQzAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE4MDBCNTEwMjVDMDkxCis6MTBBQzEwMDAyODYwMTI5MDEwQTUwODJEQzIwODY0MjI1ODE4QjcwMEE5Cis6MTBBQzIwMDAyRDgwMEI3OTAyQkVDMDg3MDE2REMwMEI2MDAyRTgwMDY5Cis6MTBBQzMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBGNTg0MzUyMDM4Cis6MTBBQzQwMDA4QzE4MDI5MjEwQzU4MDNENjAwRUM4MEI1QTA4NzdGMzJECis6MTBBQzUwMDAzREEwMEZGODAzMUVCMEU3ODUzREUwMEY3ODAzRUEwMjQwCis6MTBBQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGMTA0QkEwMTYzCis6MTBBQzcwMDAwRkEwNDM2MDA5RTEwMDM4NDAwRUEwMDNBODE0RkIyMDk4Cis6MTBBQzgwMDAzQTgwMEZCNDFCNEM4MEZCMjkzRUMwMEZCMDIzQzIwNjk0Cis6MTBBQzkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZBMDBDRDgwM0JFMEVECis6MTBBQ0EwMDA0RUY4MDNGMjAyRDQ4MTNCRTA4RTk4MDczRTQ0RUY5MUM4Cis6MTBBQ0IwMDAzRkUwNEZGQzA3RUVEMENGOTgzM0U0MEZGODAzQzAwMDFECis6MTBBQ0MwMDA3MDAwMDAwMDAwMDAwMDAwQTgwMTk4MDA4NTEwMkRDNDRECis6MTBBQ0QwMDAwRDExMDJGMDAwODUyMDMxQzQwQjdCMDAzODQwRDcxMEU1Cis6MTBBQ0UwMDAyRDgwMEI3MDYyRkVFMTg3MTQzOUMwMEI2MDAyRUEwNDBDCis6MTBBQ0YwMDA2MDAwMDAwMDAwMDAwMDAwMDAxMEJDNDBBNTAwMjk0MERBCis6MTBBRDAwMDAwQjUwODJEQzQwODQwNDJEQzAwQjEwMDY1ODQ0QTcxMDYxCis6MTBBRDEwMDAyRDgwMEI3MTAyREMwMDg3MDQyMUMyMEI1MDAyQzAxMDkxCis6MTBBRDIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMEFBMTAxMkM0MEVCCis6MTBBRDMwMDA4OTE4MDJDMTAwQTEwODIwQzAwQjM0MDY0MDAwOTMwNTA5Cis6MTBBRDQwMDAyQzE0MEIzQzg2Q0UxMDgzMDEyOEYxMEIxNDAyQzgwNDhFCis6MTBBRDUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUEwMDBFRDAwM0FDMDdGCis6MTBBRDYwMDAwN0JDNjNFRDAwODE0MDNFQzAwRTg4MDM2NDAwRUYwMDI1Cis6MTBBRDcwMDA3RTUwMEZGMDAyRkQ0MkNGMDA3MkMwMUZCNDAzRUEwNDAwCis6MTBBRDgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEU4MDA5OTAwM0VFMDQ0Cis6MTBBRDkwMDA0RkI0ODNFRDkwMDk0MDNFQzAwRkExODNBODAxRUIwMUExCis6MTBBREEwMDAzRTAwMEZCMTEzRUMwQ0ZCMDAzQUMwNUYyMDIzRTAwMDIzCis6MTBBREIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEY4MDBGRDA0M0ZCMDZBCis6MTBBREMwMDAwRDYwMDMzRTAwQ0QwMDMzRjAwRkYyMDFGMDAwRkYwM0YxCis6MTBBREQwMDAzRjAzMEZGMDAxRkMwMEZCMDIzM0MyMEZGMEUzMDA0NDFECis6MTBBREUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZBMDBCOTAyMkVBMEJCCis6MTBBREYwMDA0QUFDMDIwRTgwRjlDMDM2RTEwQkEwMDIyQTA4QkIwMDYzCis6MTBBRTAwMDAyRTIwMEVCMDAyRUMwMEVCMDAyMkMwOEJCMDAyMjA0MERFCis6MTBBRTEwMDAxMDAwMDAwMDAwMDAwMDAwODAwMTIzMDBBOTAwMjhDMEVECis6MTBBRTIwMDAwOUIyMjI2QzQwODk4OTJBQzAwQjE0MDYyNjAwQUIwMkE1Cis6MTBBRTMwMDA2RUUwMDlCMDA2NkMwMEIzMDIyMkMwMEJCMDAyMjAwMDI1Cis6MTBBRTQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA4MDBCMTAwMkNDMDExCis6MTBBRTUwMDAwQTMwMDIyQzAwQkIwMDY0QzAwQjMyMEEwODAwMzMwMDI5Cis6MTBBRTYwMDA2QzgwMDIzMDQ2Q0MxOEEzMDAyMEMwMEIyODAyMDIxMUNGCis6MTBBRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTY4MDBFOTAwMzhDMTgzCis6MTBBRTgwMDAwREIxMEIyQzAwODkwMDNBQzAwQjkwMDM2MDAwRkYwMjRCCis6MTBBRTkwMDAzRTgwMEZGMDAzRkM4MEZGMDAzMkMwOEY4MDBCMDAwMzY4Cis6MTBBRUEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxMUQ4MDBGRDA0M0ZDMEM5Cis6MTBBRUIwMDAyRkYyMDNGQzExRUYwMDNGQzAwRkY0NDM3MDAwRkYwMEJFCis6MTBBRUMwMDAzRjAwNDZGMDAzRkQwMEVGMDAzRkMwMEZDMDAzRTgwNjVGCis6MTBBRUQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZFMDBGRjgwM0RFMEEzCis6MTBBRUUwMDAwQ0Y5MTNERTAwN0Y4MEIzRTAwRkZDMDNCRTQwQ0Y4MDdGCis6MTBBRUYwMDAzM0YwMEZGODAzN0MwNENDODAzM0EwMENGMDBCMzAwMTRFCis6MTBBRjAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUwMjA4ODAwMkUyMDZCCis6MTBBRjEwMDAwODgyMTJFMDgwQTg4MTIyMDIwQjgwMDIyMDgwQTg4MDkzCis6MTBBRjIwMDAyMjA4MEI4MDAyMkMwMjg4MDRBQTIwMDhCMDAyMjAwNDA4Cis6MTBBRjMwMDAyMDAwMDAwMDAwMDAwMDAwODgwNUVDMDBBMzA4MkM4MDIxCis6MTBBRjQwMDAwODMyMDJDNDIwQTMwMDI4NDAwQjkyMDI4NDAwQTkwMTA5Cis6MTBBRjUwMDAyOEM4MUIxMjgyQ0M0MEE4MDAyNEUwMEEzMDQyMjIwMUZCCis6MTBBRjYwMDAzMDAwMDAwMDAwMDAwMDAwQzAxMUE4ODBBODAyMkU0MEEwCis6MTBBRjcwMDA2ODgwMTBDODAwQjg0MDJBOTAwQkEwMDAyODAwQUEwOERBCis6MTBBRjgwMDAyQTAyMDMyMDAyOEMwMEE4ODgyRTIwMEFCMDAyMzAwNDc2Cis6MTBBRjkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUU4MDRGQTAwM0M0MDlBCis6MTBBRkEwMDAwQ0EwMDNFODAwRUIwMDNBQzAwRjIwNTNBODAwRTM0MEQ4Cis6MTBBRkIwMDAyQTQwMEZBMDAzNkMwMEE4ODAzNDIwMUVCMDAzMTAwNEE4Cis6MTBBRkMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI0MDA5RDkxM0Y4MDhGCis6MTBBRkQwMDAwRkRBMjNGNDAwQ0MyMDM3MDAwN0QwMTM3NDAwQkMwMDM0Cis6MTBBRkUwMDBCNzgwMEJEMDQzN0MwMERDMDQzQjAwNkRGMDAzRjgwMDFECis6MTBBRkYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE4MDBGQTgwM0EwMDQ1Cis6MTBCMDAwMDAyQ0EwMEIyMDAyQ0I2MjNFNTAwRTg4MDMyMDAwRDkxMEVBCis6MTBCMDEwMDAzRTcwOEM4MDMzRUM4MEQ4NDAzQTAyMERCMDAzMTAwNEFGCis6MTBCMDIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwMTBDMDAzOTgwMjJDMDkwCis6MTBCMDMwMDAwQzlEODIyQzEwRDA0MDJFQTAwOEI4MDM0RTAyOEE0MEVFCis6MTBCMDQwMDAwRUEwMERCMDAzM0QwMEQwOTAzNjEwMEJGMDAyQjIwMDAwCis6MTBCMDUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMTAwNjBDMEFFCis6MTBCMDYwMDA4QTE4MDI4QzA4ODA0MDBDQTAwMjMwMDJDRTAwODI0ODcwCis6MTBCMDcwMDAyQzgwMkIzMDA2OEMwMDgxMDIyMDkwMDlCMDAyMzgwMDExCis6MTBCMDgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTEyMDBCNjkwQTMzMDI0Cis6MTBCMDkwMDAwOEU4MjJCMjE0ODc4MDJENjAwODQ5MTIxMjYxOTU5MDQ5Cis6MTBCMEEwMDAyRDYxMEE0ODE2MUU4MDk1ODAyNTIwMEI3ODAyODgwMEE1Cis6MTBCMEIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBGMTAwMjg4QzRGCis6MTBCMEMwMDA4RTEwMDM4NDgwODAwMDJDMDIwQTlBMDJFNDAwRDAwMEQzCis6MTBCMEQwMDAzRTgwMEI5MTAzOEU4MEMyMDgzODgwMERCMDAzMTIwMkFGCis6MTBCMEUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREIwMDBGNjAwM0Y0NERBCis6MTBCMEYwMDAwRjIxMTM3ODAwRkYwMDNEQzAwRkUwMDM3ODAwRUYwNDNDCis6MTBCMTAwMDAzRjQwOERFODAzREMwNEY2MDAzRjAwMEZGMDgzRDAwNkRCCis6MTBCMTEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU4MDBFODgwMzI0MDYwCis6MTBCMTIwMDAwRjg4MEIyODAwNzgwMjNFODAwRTI4MDMyODAwQ0E4MDcyCis6MTBCMTMwMDAzMjAwMEZBMDAzRUMwMEM5ODAzMjgwMEZCMDAzMkEwMDU4Cis6MTBCMTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMThDMDA4RjAwQTE4MEZBCis6MTBCMTUwMDAwQjcwNDIxNDAwQjcwMDJENDEwQjUwNDIxNDAwQTUwMEEzCis6MTBCMTYwMDBBMUMwMEI1MDAyRkM4MEE1MDAyMTAwMEJGMjAyMTIwNENBCis6MTBCMTcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMEJBMDBBNDgwMjkzMDc4Cis6MTBCMTgwMDA0QjQ4MDY1MjA4QjQ4MDJEMjAwQjQ4NDIzMjAwODQ4MDgwCis6MTBCMTkwMDAyMTIwMEI0ODEyREU0MDg2ODEyOUEwMEI3ODBBMzAwMDVFCis6MTBCMUEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDA4MzA1MjBFMENGCis6MTBCMUIwMDAwQjM0MDI2QzEwQjMwMDJDQzAwQjM2NEEwRDBEQTMwMEVCCis6MTBCMUMwMDAyMEMwMEIzNDgyQ0MwMkEyMDAyODAwMEIzMDAyMTIwNEYzCis6MTBCMUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE5MjBFQTQwMzBBMDdGCis6MTBCMUUwMDAwN0EwNDM2OTQwRkEwMDNDODAwRkEwMDMwODQwQ0EwMDUyCis6MTBCMUYwMDAzMEEwMEZBNDAzRTgwMENFMDAzQjk4MEZBMDAzM0EwNDUwCis6MTBCMjAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEQyMDBGQzA4M0YwMDgxCis6MTBCMjEwMDAwQkMyMDNCMDAwRkMwMDNGMDAwRkMwMDNGMDAwRkMwMEI1Cis6MTBCMjIwMDAzRjA0MEZDMDAzRTAwMEY4MDBCNjAyMEY4MDAzRDIwMDE1Cis6MTBCMjMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBEOTAwM0U2ODYzCis6MTBCMjQwMDA0QzkxMDFFNDA4QzkwMDNFNDAyQzkyMDNFNDAyQzlBMERECis6MTBCMjUwMDAzRTcwMEU5MDAzQzY0MkM5MDAzRTQwMEYxMDAzMDIwNDI4Cis6MTBCMjYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OTg2MEU2MDQ5Cis6MTBCMjcwMDAwODk4MDJFNDA4ODkxMDJFNjAwODkwMDJFNDAwODkwQzA2Cis6MTBCMjgwMDAyRTYwMDg5MDAyRTY4ODg5MDAyRTQwMEI5MDAyQTAwMEY0Cis6MTBCMjkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA5RDEwMkY0MDQxCis6MTBCMkEwMDAyOEQwMDZGNDAyQUQwMDJGNjAwOEQwMDJGNDAwOEQwMDEzCis6MTBCMkIwMDAyRjQwMEFEMDAyRTQwMDg5MDAyRTYwMEI5MDAyMDYwMEE1Cis6MTBCMkMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDM0MDA4NTAwMkQ0MDBDCis6MTBCMkQwMDAwODU4MDJENDAwQTUwMjJENDAwODUwMDBENDAwODUwMDczCis6MTBCMkUwMDAyRDQwMDg1NDAyQzQ4MDgxMDAyQzYwMEIxNDAyODIwMTlFCis6MTBCMkYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBEODUyM0UwMDgwCis6MTBCMzAwMDAwQzA1MDNFMTQwRTgwNDNFMTQwQzg1MDNFMTQwQzgwMDRECis6MTBCMzEwMDAzRTE0MEVDMDAzRTAwMEMwMDIzRTAwNEY4MDIzMkUwMzA3Cis6MTBCMzIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0MDBGOTAxM0U0MEFDCis6MTBCMzMwMDA0RjkwMTNFNDAwRDkwMDFFNDAwRjkwMDNDNDEwRjEwMDk5Cis6MTBCMzQwMDAxRTQwMEY5MDAzRTRFMEZEMjgzRjQwMEY5NDAzRTYwNjAzCis6MTBCMzUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUE0MDBGRDAwM0Y0MDQwCis6MTBCMzYwMDA0RDUwMDJFNDAwOTUwNDMzNDAyOEQwMDNGNDAwRkQwMDYyCis6MTBCMzcwMDAzMzQwMEY5MTAzMzQwMENENDAzMzQwMEY5ODgxMDYwMEQ1Cis6MTBCMzgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMTBCODAwMkUwMDJGCis6MTBCMzkwMDAwQjgwMDJFMDEwQjgwMDIyMDAwODgwMDJFMDAwQjgwMDM0Cis6MTBCM0EwMDAyMjAwMEI4ODAzQzI4MDg4ODAyMjAwMEI4QzAyMEUwNENFCis6MTBCM0IwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNEM0MDBCMTAwMkNDMEYwCis6MTBCM0MwMDAwQjEwMDJDNDAwQkIwMDIyNDAwODEwMDJDNDAxQjkwMEU3Cis6MTBCM0QwMDAyMDQwMUI5MDAyMDQyMjg5MDAyMDYwMEIxMjgyMDIwMThGCis6MTBCM0UwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0NDRCOTAwMkVDMDMxCis6MTBCM0YwMDA0QjkwMDJFNDEwQjkwMjAyNDAwODkxNDJFNDAwQjk4MDg3Cis6MTBCNDAwMDAyMjQwMEI5MjAyQzQwMDk5NDAyMjQwNEI5MDEyMDYwNDQ1Cis6MTBCNDEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU2MDBCOTAxM0U1OEUxCis6MTBCNDIwMDAwRDkwMDNFNjAwRDEwMDMyNjAwQzk4MDJFNjQwRjkwMDZFCis6MTBCNDMwMDBCMjQwMEYxODAzMjQwMEM5ODAzMjUwMEY5MDIzMjgwNDEzCis6MTBCNDQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTAwM0U0MjQ2Cis6MTBCNDUwMDAwQjkwMDNFNzA4RjkwMEJFNDgwRjkwMDNFNDAwRjkwMEUxCis6MTBCNDYwMDAzRTQwMEY5ODAzQTQwMEU5QTBCRTQwMEYxMDBCNEEwMDE1Cis6MTBCNDcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBEODAxM0UwMDdECis6MTBCNDgwMDAwRjgwOEIyMDAwRjgyMDNFMDEwRjgxMDNFMDAwRjgwOEI4Cis6MTBCNDkwMDAzQTAwMEM4MDAzRTAwMEQ4NDAzMjAwMEY4MDEzMEEwNDA5Cis6MTBCNEEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4QTgwMkY5MTVECis6MTBCNEIwMDAwQkVFMDIyODAxQkUwMDIwODAwQkEwMDJFQTgwQjY0OEY1Cis6MTBCNEMwMDAyMjgwMERBMDAyRkEwMjg2NDFBM0E2MEJBMDAzMEEwMDY3Cis6MTBCNEQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5MzgwMkNDMEI0Cis6MTBCNEUwMDAwQjMwMDIwQzEwQjMwMDI4QzAwQjM4MDJDQzAwQjMwMEE0Cis6MTBCNEYwMDAyOEMwMDkzMDAyQzYwMTgzNjAyMDcwMEIzMDBBNEEwMDYwCis6MTBCNTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTJFODg4NTA4MkQ4MDVBCis6MTBCNTEwMDA0QkY4MDYxQzgwQjcwMDIxQzAwQjUwMDJENDAwQjYwMEM3Cis6MTBCNTIwMDAyOTYwMDk3MDAyRDBBMDhEMDAyMTQwMEIzMjAyMjgwMDUyCis6MTBCNTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBENTgwM0RFMDhCCis6MTBCNTQwMDA4Rjc4MDMxRTg0Qjc4MjNENjAwRjU5MDNERTAwRjc4MEI5Cis6MTBCNTUwMDAyOTYwMTU3ODAzREUwMEM3ODAzMTYwMEY3QzAzNkEwMjIyCis6MTBCNTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDNDBFOTAwM0U4MDIzCis6MTBCNTcwMDAwRkEwMDNFRDMwRkIwMDM2QzEwRjk2MDNFNDAwQjMwMENCCis6MTBCNTgwMDAzNDQwMEZCNzgzRUM0MDIxMDAzRTQwMEZCMDAzQzIwNkE5Cis6MTBCNTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBGRjgxMzNFMEI1Cis6MTBCNUEwMDAwRkY5MDNERTIwQ0Y4MTNGRTAwNzc4MDMzRTAwRkY4MEU0Cis6MTBCNUIwMDAzRkUwMDRGODEzRkUwMkRFODAzMzYwMEZGODAzMDAwMDYyCis6MTBCNUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCNzAwMjFDNDFBCis6MTBCNUQwMDAwQjVBMDJEQzQ4ODY1MDJEQzAwQjMxMDI5NDYwQjQxODFGCis6MTBCNUUwMDAyRDQwNDg3MDAyRTgwMEE1MTAyMTQwMEI3MTAyMkEwNDhBCis6MTBCNUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCRDAwMjE0MjJGCis6MTBCNjAwMDAwQjcwMDJGQzAyODUwMDI1NDAwQjUwMDI5QzAwQjcwMDI1Cis6MTBCNjEwMDAyRjQwMjg3MTAyREMwMEE2MDAyMUMwMEI3MDAyMDAwMDQwCis6MTBCNjIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNDZEODBCMTIwQTA1MDE4Cis6MTBCNjMwMDAwQkIyMDZDRTAwQTAzNDJFRjAwQjE4MDI4NTIwQjM0QUMwCis6MTBCNjQwMDAyQzU0ODgzODAyQ0MxMEExMDAyMEIwMEIzMDAyMDgwNDIyCis6MTBCNjUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJFODBGMzA4MTA1NDYwCis6MTBCNjYwMDAwQjg4MTNGRjAwQzA4MDNFNjQwRkI0ODMwNzAwRjlDMDRECis6MTBCNjcwMDAzRUYwMENGQzEzRjQwMEVBMDAzMjcwMEZGMDBCMkEwNEM5Cis6MTBCNjgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGOTAwM0UxMEE3Cis6MTBCNjkwMDAwNzkxMDNFQ0MwNTgwMDNFNDQwRjkyMDNFNDAwRjkwMDA4Cis6MTBCNkEwMDAzRUMwOEZCMzAzRTAwMEJCMDBCRTQ0MEZCMDAzRTAwMDE4Cis6MTBCNkIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDJDRDA0MzNFMDY3Cis6MTBCNkMwMDAwQ0MwMDMzQzA4RkUwMDMzNjAyQ0QwMDJCNDgwQ0YwMEQ1Cis6MTBCNkQwMDAzRjUyMDdGMDEzRkMwMENFMTAzMzQyMENCMDAzQzA0NEJECis6MTBCNkUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMDA4OTAwMkFCMEQ2Cis6MTBCNkYwMDAwODg4MDIyQzAwQkEwMDM2NDQwODkwMDAyNjAwREJDMEZGCis6MTBCNzAwMDAyRTQwMEJCMDAyRUMwMDgzQzAyODQwMEFCMDAyRTA0MDlCCis6MTBCNzEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjAwMjIwOEIzCis6MTBCNzIwMDAxQUEyMDIyQzEwQjkyMDIyNDAwODMwMDIyQzA0QUE1NDdDCis6MTBCNzMwMDAyRUMwMEJCMDEyQ0MwMDhCMDgyMjQwMDhCMDAyRTAwMEYzCis6MTBCNzQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDA4MzA0MkEwMEYwCis6MTBCNzUwMDAwQTA4ODIwQzAwQjgwMDY0NDAwODMwMDJBNDAwQjAwMDVGCis6MTBCNzYwMDAyQ0MwOEIzMDEwQzgwMjhCMDAyQTQwMEEzMDAyQzIwMTY0Cis6MTBCNzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDOTAwMzIwMDU1Cis6MTBCNzgwMDAxQTgyMDMzQzAwRjkwMDMyNDAwQ0QxMDNBQzAwRUIwMEZDCis6MTBCNzkwMDAzRTQwMEZGMDAzRUQwMEMzMDAzMkMwOENCMDAzQzAwMzg1Cis6MTBCN0EwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOUZDMDBGNTAwM0YwMDYwCis6MTBCN0IwMDAwRDgwNEJGQzAwN0MwMDNGNDAwRkQyMEI3NDAwREYwMDdCCis6MTBCN0MwMDAxRDQwOEZGMDAzRkNBMEZGMDAzRjgwMEZGMDAzRTgwNjUwCis6MTBCN0QwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMDBERjg0M0JFMEJBCis6MTBCN0UwMDAwRkY4MEIzRTAwRUM4MDMzRTEwQzMwMDMzQzgwQ0Y0ODc3Cis6MTBCN0YwMDAzN0MwMEU0MDAzRTBDMEM3OTFCMzA0MENGMDAzMzAwMDIzCis6MTBCODAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVGMDQ4QjgwMjI0MUQ3Cis6MTBCODEwMDAwQkIwODIyRTAwODg4MEEyRTAwQUEyOTJBRDgwODc0MkZGCis6MTBCODIwMDAyM0Q4OEFBRDAyRTBDMDhCMDAyMDRDNDhBNDAyMjAwNDNCCis6MTBCODMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDNThCQjAwMjg4MEM0Cis6MTBCODQwMDAwQkIyNDIyNDAwQTgwMDJBQzAwQTEwMDIwNDYwQTMyMDAwCis6MTBCODUwMDAyNEQyMDgwMDQyOEM4MzlCMDEyMDQ5MDgzM0MyMjIwMTc0Cis6MTBCODYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDBBQjg4MjJBMEYyCis6MTBCODcwMDAwQkI4MDIyNjBDQTgwMDJBQzAwQTkyMDJBNDAwQUIwNjRDCis6MTBCODgwMDAyMkMwMEFCMDAyRTgwMDlCMDAwMjQwMDhBMDQyMzAwNDM3Cis6MTBCODkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBEMzgwM0FFMDlBCis6MTBCOEEwMDAwRjE4MDEwNjAwRTgzMDM4NjYwRUI4MDMyQTQwRUIwMDk2Cis6MTBCOEIwMDAzNkMxMEU5NjAzRTI4MERBMDgzMjgwMkNCQjAzMTAwNEY2Cis6MTBCOEMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMTlDMDBERjAwM0ZDMEFECis6MTBCOEQwMDAwRkQwMDNGNDAwREM4MDM3NjAwRkU4MDNGQTAwREYwMUNCCis6MTBCOEUwMDAzRkMwMEZDMDQzRTY0Q0VGQTAzRjQ0MEZBMDAzRjgwMDU5Cis6MTBCOEYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDNDBEQjAwMzY4MDFCCis6MTBCOTAwMDAwQzk4MDMyNjAwRjgwMDNFQzAwRTE4MDM4NDAyRTMwMUUxCis6MTBCOTEwMDAzOEMxMEVCNDAzQUM4MENBMTgzQUQwMkMzMDAzMTAwNERFCis6MTBCOTIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNGNDBCOTg4MkU4MEJDCis6MTBCOTMwMDAwOEJDMDJBMzAwQjAwMDBFQzAwOEIwMDYyMDAwOEYwNEFGCis6MTBCOTQwMDAyM0MxMDhCOTEyMkYwMDgzODAzNjQwMDhBRDAyMzIwMEFGCis6MTBCOTUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMjAwMkNDMEQ4Cis6MTBCOTYwMDAwOTMyMDI4NDAwMzMwMDJDQjIwQTM2MTI4QzA4OTMwNTg3Cis6MTBCOTcwMDAyMEMwMEIxODAyRUQwMDkxODA2QTAwMDgxMDAyMzgwMDA4Cis6MTBCOTgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDBCNzgwMkRFMEU0Cis6MTBCOTkwMDAwOTc4MDI5NzQwQjQ4MDJGQTAwOEU4MDIwRTQwOTc4MkYxCis6MTBCOUEwMDAyMUUwOTg2ODgyMUExODlEOTAyREExMTg1ODAyMDgwMDZECis6MTBCOUIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDQzBGMzAwM0VDMDNBCis6MTBCOUMwMDAwREIwNDM4NDQwRjAwMDNDODIwRTM4MTI4QzQ0RjMzMEJBCis6MTBCOUQwMDBCQUMxMUUxMDQ3OEUyMkQxMTAzODE4MEMzMDgzMTIwMkMzCis6MTBCOUUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDNDBGRjAwM0ZDMDAwCis6MTBCOUYwMDAwRUUwMDNGNDQwRkMwMDNEQzQwRkQwMDFGNDQxRUYxODA5Cis6MTBCQTAwMDAzRkM0MUZGMDAzRjg0OEVGMTQzMzgwMEZDMTAzRDAwNjgyCis6MTBCQTEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUZDNDBGQjAwM0VDMEU0Cis6MTBCQTIwMDAwRjk4MDMyNDAwQ0IwMDNFNDAwRkIwMDNBODAwREIyODkyCis6MTBCQTMwMDAzRUM0MUY5MDIzRUMwMENBMDAzMkUwMEM5MDAzRUEwMEUxCis6MTBCQTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDODBCNzAwMkRDMDZECis6MTBCQTUwMDA0QjUwNTIxNDAwRDQwMTJEODAwQjYwMDJEODAwQTcyMDU3Cis6MTBCQTYwMDAyREM1MEI0MDE2REMwMDg0MDAyM0MwMDg0MDAyRDIwNDIwCis6MTBCQTcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFODBCNzgwMkRFMDQ0Cis6MTBCQTgwMDAwQjc4MEE5NjAwOTQ4MDJENjAxQjc4MDZEMjAwQTc4MDYwCis6MTBCQTkwMDAyREUwMEI3ODIyREUwMDg3ODIyMUUwMDg1ODAyRjAwMEJBCis6MTBCQUEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCM0U0MkNDMENCCis6MTBCQUIwMDAxQjIxMDI4MTAwOTAwMDJDQzgwQjM5MDJDRTAwQTMwMDhDCis6MTBCQUMwMDAyQ0MwMEIzMDAyQ0QwMDhCMjAyMEYwMDhCMjAyRDIwNDMzCis6MTBCQUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGRUEwM0Y4MjMyCis6MTBCQUUwMDAwRkU4MDM5ODMwRDYwMDNGQTAwRkUwMDNCQUMwRkEwMDc5Cis6MTBCQUYwMDAzRTgwMEZFQzMzRjgwMkNFMDBCM0I4MkNFQzgzRkEwNDhFCis6MTBCQjAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMThGODQwM0UwMDFGCis6MTBCQjEwMDAwRjgwMDI2MDg0RjgwNTJFMDQ4RjgwNDFFMDAwNzgwMkQ3Cis6MTBCQjIwMDAzRTAwMEY4MTgzRTAyMEY4MDBCRTAyMEY4MDAzRDIwMEE4Cis6MTBCQjMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU2MThGOTIwM0U0MDI4Cis6MTBCQjQwMDAwRjlDMDNFNDQwQzkwMDMyNjEwQzkwMTNDNDA4QzkwMTgyCis6MTBCQjUwMDAzRTQxMEYxODAzMjQwMEM5QTAzMjQwMEY5ODQzMDIwNDRECis6MTBCQjYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY1MDBCMUMwMjI0MEU5Cis6MTBCQjcwMDAwQjlDMDJFNzEwODkwMDI4NDQwODk0MjJFNDEwODkwMEY1Cis6MTBCQjgwMDAyRTQwMEI5RjIyMjY2MDg5ODAyMjQwMEI5MTBBMjAwMEM0Cis6MTBCQjkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0ODBCOTAwMkVDMDJECis6MTBCQkEwMDA0QkI0MDJFNDIwODkyMDIyNDAwODk0MDJFQzAwODkwMDcyCis6MTBCQkIwMDAyRTQxMEI5MDAyMDQwMDg5NDAyMjQwMEI5MDAyMDYwMEE3Cis6MTBCQkMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDBCMTA0MjA0MDEwCis6MTBCQkQwMDA4QjEwMDJFNDA1ODEwMDI4NDAyODEyMTJDNDgyODEyMEMzCis6MTBCQkUwMDAyQzQ4MEIxMjBBMDQ4MjgxMDAyMDQ4MEIxMjAyMDIwMTI5Cis6MTBCQkYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDY4QTBGQTAyM0UxNDJBCis6MTBCQzAwMDAwRjg1MDNFMDAwQzgwMDMyMDAwQzg1MDNDMTQwQzg1MzEzCis6MTBCQzEwMDAzRTE0MEY4MDAzMDE0OEMwNTBCMjE0MEY4NTAzMkUwMzU5Cis6MTBCQzIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0MDBGRDAwQkY0MDJGCis6MTBCQzMwMDAwRjUwMTNENDAyRkQwMDJGQzAwRkQxMDNGNDQwRjkxMEIwCis6MTBCQzQwMDAzRTQ0MEZEMTAzRjQ0MEZGMDBCRjQ0MEZEMTAzRTYwNjhBCis6MTBCQzUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU2QTBGRDAxM0U0NDUxCis6MTBCQzYwMDAwRkQxMDNENDAwQzUwMDMzNDEwRkRCMDMyNzIwRDlFMEY3Cis6MTBCQzcwMDBCMjcwMEREQTgzRjY0MENGMTAzMjc4MkREQTAzMDYwMDY5Cis6MTBCQzgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDBCODAwMkUyODBECis6MTBCQzkwMDAwQjg4NDJFMDEwRDgwMDIyMDAwQjhDMEEyMzAwODhDMEQ5Cis6MTBCQ0EwMDAyMjI4MDg4NDAyQzI4MDgwQTAyMjMwNDhBQTgyMEUwNDgyCis6MTBCQ0IwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwMkM0MDY2Cis6MTBCQ0MwMDA4QjEyMDJDNDAwOTkwMjI4NDA4QjE2MDI4NDgxOTEzMEE1Cis6MTBCQ0QwMDAyMDU4MDkxMDAyQzUwMDgxMDA2NDREMDgzNDAyMDIwMTk5Cis6MTBCQ0UwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUFDMENCOTA0MkU0OENDCis6MTBCQ0YwMDAwQjk0MDZFNDAwOTk0MEFBNDAwQjkyMjJBNDAwODkwMDBDCis6MTBCRDAwMDA2MDQwMDg5NDAyRTQwMDg5ODBBNjUwMDg5MjAyMDYwNDZDCis6MTBCRDEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTk4M0U0ODEzCis6MTBCRDIwMDAwRjk4MDNFNTIwRDkwMDNBNjQwRjk0ODNBNEMwRDkwMjg4Cis6MTBCRDMwMDA3MjQwNEQ5MDQyRTQ4MkM5NDAzNjQwMEM5MDBCMjgwNDdBCis6MTBCRDQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUFDMjhGOTg4M0U0MDg3Cis6MTBCRDUwMDAwRjk5MTNFNzAwRjlDMDM2NjAwRjkwMDM2NjAwRjEwMEY5Cis6MTBCRDYwMDA3RTQwMEY5OTA3RTQ2MEY5MDAzODQwMEY5ODAzQ0EwMDNECis6MTBCRDcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBGODEwMzIwMDUxCis6MTBCRDgwMDAwRjgyMEIyMTAwRTgwMDM2MDQwQzg2MDNFMTAwRDgwMDg2Cis6MTBCRDkwMDAzMjAwMEY4MDAzNjEwMEM4MDAzMjAwMEYwMDAzMEEwNDY0Cis6MTBCREEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MjBCRTAwMjI4MDlFCis6MTBCREIwMDAyOEVDMDIxOTA0ODIwMDAzODAwREU0ODJFODAwOEEwMTY1Cis6MTBCREMwMDBBQTgwOEJFRDgyM0I4MDhFOTAzNjgwMEJFMDAzNEEwMDg4Cis6MTBCREQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTQyMDBCMzgwMjBDMEExCis6MTBCREUwMDA2QjM0MTY0MEMwODMxMDI0NzI4OEIwMDJFQzAwODMwMENDCis6MTBCREYwMDAyNEMwMEIwNDAyNkYwOTlCMDAyNEMwMEIzMDAyMEEwMDEwCis6MTBCRTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE0MDBCNzgwMjNFNEVGCis6MTBCRTEwMDAyODc4ODI3NDE0OEYwMDYxRTAwOTUwMTJEQzA0ODcyMkI0Cis6MTBCRTIwMDAyNUM4MUI3ODAyMTQwMDk0NDBBNUMwMEI2MDIyNjgwMDRFCis6MTBCRTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODEyMjBCNzgwQjFFMDE4Cis6MTBCRTQwMDA4RkY4MDMxMjAyRTc4MDM1RTAwQzY4MDZDRkMyQ0ZCMDRFCis6MTBCRTUwMDAyNUY0MEY1ODAzNUEwMkQ1ODA3NUZBNEZGODAzMkEwMkM5Cis6MTBCRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREE1OTBGMzAwM0RDMDg4Cis6MTBCRTcwMDA0RkIwMTNBODA0RkIwMDNDQzAwRjgwNDNFQzgwRUI2MDg0Cis6MTBCRTgwMDAzQUM5MEYzMDAzRUMwMEU5MDAzRUM4MEZBMDAzQzIwNjE4Cis6MTBCRTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUY2MDBFRTgwM0ZFMEJBCis6MTBCRUEwMDAwRDg5MDNEMjQwRTU4MTM5RTAzQ0Y5MDdGRTAwQ0Y4OEQ3Cis6MTBCRUIwMDAzRkUwMEZFODAzRjIwOENFODAzM0UwMENGODAzMDAwMDA3Cis6MTBCRUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTk0NDRDNjAwMkZDMEJDCis6MTBCRUQwMDAwODU4MDJEMEM0ODUyNDIxOTAwODU0MTJEQzgyMDcwMDNGCis6MTBCRUUwMDAyREMwMEI3MDA2RDQwMDhFNDgyMUMwMEE2MDAyMkEwNEJGCis6MTBCRUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBBNzQwMkRDMDcyCis6MTBCRjAwMDAwODQyMDJEMDAwQUQwMDI5QzAwODcwMjJEQzI4ODcwMDVBCis6MTBCRjEwMDAyREMwMEI0MDAyOTgwMDk3MDBBMEM0MDg3MDAyMDAwMERBCis6MTBCRjIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDg5MzAwMkNFMDRBCis6MTBCRjMwMDAwODNDMjJDMTAwODEwMDIwODA4ODE1MDJDRTMwODMwMDk5Cis6MTBCRjQwMDAyQ0MwMEIzQzAyQ0MwNDkzQzAyMEY0NEEwQzgyMDgwNEExCis6MTBCRjUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUEwMDBFM0MwMUZFMEIyCis6MTBCRjYwMDA2QzEwODNFMDA0RUIwMDNBNTI0Q0I0MDNGRTAyQ0YwMEE1Cis6MTBCRjcwMDAzRkMwMEY4NDQzRTEwMkQ4QzIzM0MwMEM4NDBCMkEwNEIzCis6MTBCRjgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEU5MDBFQjEwM0VDNEVCCis6MTBCRjkwMDAwRTk0MDNFNDAwRkIxODNFQzIwRkI2MDNFQzAwRkIwMTU1Cis6MTBCRkEwMDAzRUMwMEYzNTAzQzQyOEVBNDIzRUMwMEY4MTAzRTAwMEMzCis6MTBCRkIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDNDBGRjAwMzNDMDEyCis6MTBCRkMwMDAwQ0MwQTMzMDI4Q0RBMDMzQzAwQ0U4MDMwQzAwRUYwNTUzCis6MTBCRkQwMDAzREMwMENDQTgzM0MwMENEMDgzRkMyMENBMDAzQzA0NDQ2Cis6MTBCRkUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDY3MDBCQjgwMjBDMDFBCis6MTBCRkYwMDAwOEFBMDIwODAwQTEwMTM0RDEwOEE0MTIyQzAwOEIwMDY5Cis6MTBDMDAwMDA2RUMwODhCMjAyMkMwODg5ODAyRUMwMEFBODAzQTA0MDA2Cis6MTBDMDEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDBCQTgwQTJDMEMzCis6MTBDMDIwMDAwOEE4MEFBMDAwOEIwMEEyQzA0ODExMDJBQzA0OEIwMDMzCis6MTBDMDMwMDAyRUMwMDA4MDEyMkEwODhCMTQyQ0MwMDg4ODAyRTAwMDUxCis6MTBDMDQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDBCMjAwMjJDMDA0Cis6MTBDMDUwMDAwOEIyMTI4MDAwQUIwMTI0QzAwODAwMDIwQzA0ODMwMDY3Cis6MTBDMDYwMDAyQ0MwMDgzMDAyMDcwMDgyMDAyNEMwMDgwODAyODIwMUE4Cis6MTBDMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBGQjAwMzJDMDVBCis6MTBDMDgwMDAwQ0EyMDNBMDAwQzkwMDMyQzAyNDk0MDMzQzAyQ0YwMERDCis6MTBDMDkwMDAyRkMwMDQ4MDBCMDkwMkNCMDEzRkMwMkNBMDAzQzAwM0JBCis6MTBDMEEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOURDMDBGRDAyM0ZDMEFECis6MTBDMEIwMDA0RkU0MTM3MDAwRkQwMDNGQzAwRkMyODNGQzAwRkYwMDdGCis6MTBDMEMwMDAzRkMwMEZGMDAzRkMwMEZGMDAzRkMwMEZDMDAzQTgwNkY1Cis6MTBDMEQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMjBFRjMwM0YwNEFECis6MTBDMEUwMDA2Qzg4MDMzQTQyRTQ5MTNGMEQwRDQ4MDMzQ0MwRkYwMkM3Cis6MTBDMEYwMDAzMzQ0MENGNDAzRkM4MkRGMzAzMzYwMERGMTAzMzAwMDc1Cis6MTBDMTAwMDA3MDAwMDAwMDAwMDAwMDAwQTAxMEVEMDA4QjcwMkUxOEUxCis6MTBDMTEwMDA4ODIyNEEyQzgyRUEyNjJFMEMwQkI4NDIzRDgwQkY5MDIyCis6MTBDMTIwMDAyQTU0MjhCNDAyQ0QwMERCNDAyQTRBNDgzMDAyQTAwNDM5Cis6MTBDMTMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDQjBBMzAwNkMxMEE3Cis6MTBDMTQwMDAwOTAwODIyMDgyQTAyMDJDODg0QjgwMDAwQzQwQjMwMTgzCis6MTBDMTUwMDAyMDQ4MEIzNjAyOENFMDgzNjQyNDQwMjgzMjAyMjIwMUZFCis6MTBDMTYwMDA3MDAwMDAwMDAwMDAwMDAwRTAxMUFDMDA4QjAwMkUwMDA5Cis6MTBDMTcwMDAwOTgwODBBNjAwQkExMTJFODgwQkIwMDAyQzAwQkIwMkVCCis6MTBDMTgwMDAwMjQwMDlCMDAyRUMwMDhCMDAyQ0M4MDhCODgyQjAwNDUxCis6MTBDMTkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBFQjAwM0U5MjQzCis6MTBDMUEwMDAwRDgwMDMwQTIwRTkwMDNFNTA0NTgwMDEyQzA0RjMwMDc1Cis6MTBDMUIwMDA5MDYwMDlCMDAzRUMwMDhCMDIyNjUwOERCQzAzMTAwNDg0Cis6MTBDMUMwMDA3MDAwMDAwMDAwMDAwMDAwQzAwMUJDMDBGRjAyM0Y4MEMyCis6MTBDMUQwMDAwRUY5MDI3QzIyQUYwMDNGNjAwM0MwMEJGQzEwRkYwMDkxCis6MTBDMUUwMDAzRjRBNEVGMDAzRkMwMEY3MDAyQjYwMEY3MDAzRjgwMDhECis6MTBDMUYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjAwQjAwMDM4Cis6MTBDMjAwMDAwRjgyMEJBOTAwQzkwMDMyRDIwRkEwODNBQzAwQ0IxMDYzCis6MTBDMjEwMDAzRTQwMENCMDAzRUMwMERCMDAzMjUwMkM5NTAzMTAwNEMwCis6MTBDMjIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNDMDRCRjAyMjI4MDdFCis6MTBDMjMwMDAwQjk4MDAyOTAwQ0I0MDIyQzAwQjI0MDIzQzA4OEY1MEYxCis6MTBDMjQwMDAyRTUwMERGMDAyRkQ0MjhGNTgyMkUwNDhCNTAyMzIwMDE4Cis6MTBDMjUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTZDMDBCMzAwMjQ0MDM2Cis6MTBDMjYwMDA0Qjk0MDA0OTAwOTA4MDA0MzAwOTAwMEU0QzAwODM4MEZDCis6MTBDMjcwMDAyQ0MwMDkzMDIyNkU0MjgzODAyMDQ4MDgzODAyMzgwMEUyCis6MTBDMjgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDBCNzgwNjUyMDYzCis6MTBDMjkwMDAwQjc4ODI3QTA4OENDMDI1QTM0Qjc4MDI1RTA0ODc4NEQxCis6MTBDMkEwMDAyRDYxODk3ODAyREUwNDg3ODBFOTYyMDg3ODAyMDgwMDNGCis6MTBDMkIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBGQjAwMzQ0ODZCCis6MTBDMkMwMDAwRjNCMDM0ODAwOTM0ODM0NTAwRDAwMDM2QzAwQzMxMDJCCis6MTBDMkQwMDAxQ0MyMDUzMDAzQ0M0MENCMDAzMjQwMEMyMDAzMTIwMkJDCis6MTBDMkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMjBGRjAxMDM0MEQyCis6MTBDMkYwMDAwRkYwMjMxQzAwRkYwMDNCODAwRkIwMjMzQzAyRkY1MEQ3Cis6MTBDMzAwMDAzREM0MEZGMTAzRUMwMEVGMDBCN0MwMEZFMTAzRDAwNjBFCis6MTBDMzEwMDA2MDAwMDAwMDAwMDAwMDAwODgwNUVDMDBGQjAyM0VFMDI5Cis6MTBDMzIwMDAwQzgwMDM0ODAyQzg4MTMyMDAwRjkwNDJFQ0EwRkIxMDQxCis6MTBDMzMwMDAzRUUwMENCMTAzRUM0MEZCMTAzMjQwMUZGMDAzMkEwMDNBCis6MTBDMzQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDBCNzI0MkQ4MDAwCis6MTBDMzUwMDAwODcwNDJEODEwOEMwMjIxNDAwQjUwMDJERDAwRTcyMDBCCis6MTBDMzYwMDAyRjQwMDg3MDAyREMwNUI3MDAyMUMwMEJGMDAyMTIwNDU4Cis6MTBDMzcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDBCNzkwMkY0MDQ5Cis6MTBDMzgwMDAwQTY4MDI3QTAwOTc4MDIxRTAwQjc4MDJERTAwQjc4MDBECis6MTBDMzkwMDAyREUwMDg3ODA2REUwMEI3QTAyMTYwMEI3ODQyMzAwMDVGCis6MTBDM0EwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCMzAwMkNDMEE2Cis6MTBDM0IwMDAwQTM0MDJDODAwODM0QTIwRjgwQjMxMDJDQzAwQTMwMEUzCis6MTBDM0MwMDAyQ0MwMDgzMDAyQ0MwMEIzMDAyMEIyMEIyMDQyMTIwNDczCis6MTBDM0QwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBCQTAwM0Y4ODA3Cis6MTBDM0UwMDAyRUUwNDM1OTg4REUwMDMzQjAwRjZDMDNFODAwRkEwMEZBCis6MTBDM0YwMDAzRTgwMkNBMDAzRTgwNEZBMDAyM0I4MEZFMDhCM0EwNDM3Cis6MTBDNDAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDRGODAxM0UwMDY5Cis6MTBDNDEwMDAwOTgyMjFFMDAwRjg0MEJFMTQwRjg0ODFFMDAwRTgwMEFBCis6MTBDNDIwMDAzRTAwMUY4MDAzRTAwMEY4MDBCRTAwMEY4ODAzRDIwMDJBCis6MTBDNDMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBFMTAwMzI0MDdECis6MTBDNDQwMDAwQzkwNDNFNDIwRDkwMDNDNDQwODkwMDMyNDAwRjkwMUY3Cis6MTBDNDUwMDAzRTQ4MEYxMDQzMjUwMEM5MDBCMjQwMEM5MDAzMDIwNDZGCis6MTBDNDYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTAwQTA0MDFCCis6MTBDNDcwMDAwODk4MDJFNjA4QTk2MDJFNDkwODk0MDIyNDAwQjkwMDMxCis6MTBDNDgwMDAyRTcwMEI5MDAyMjYwMjg5MDBBMDQwMEE5MDBBMjAwMDFDCis6MTBDNDkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTAwMjI0MDMwCis6MTBDNEEwMDAwODk4MDRFNjAwOTk4MDJFNDAwQUIxMDIyNDAwQjkwMEUxCis6MTBDNEIwMDAwRTQwMEI5MDBBMDQwMDgxMDEyMkMwMDgxMDAyMDYwMDAxCis6MTBDNEMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODBCMTIwMjI0ODYxCis6MTBDNEQwMDAwODE4MDZDNDAwQTEwMDJDNDgyQTMwMDIwNDgwQjEyMkFBCis6MTBDNEUwMDAyQzQ4MEIxMjAyMDU4MDgxNjAyMjUwMEExNDAyMDIwMUJFCis6MTBDNEYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGODUwMzIxNDQ4Cis6MTBDNTAwMDAwQzg1MDNFMTQwRDg1MDNFMTQwRTgwMEIyMTQwRkEwMDA4Cis6MTBDNTEwMDAzRTk0MEY4NTAzMjAwMEMwMDAzMjAwMEM4MDAzMkUwM0UwCis6MTBDNTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0NDFGOTEwM0Q0NTU2Cis6MTBDNTMwMDAwRkQwMDNGNDAwRkYwMDNGNDUwREQwMDNFNDQwRjkxMDk1Cis6MTBDNTQwMDAzRjQ0MEY5MTAzRTQ0MkY5MTAzRjQwMEZENDAzRTYwNjQ1Cis6MTBDNTUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU0MDBGOTAwM0U0MEYzCis6MTBDNTYwMDAwQ0QwMDNGNDA4OEQwMjNGNDAwRkQwMDNFNDAwQ0QwMDRGCis6MTBDNTcwMDAzMzQwMEM5MDAzMjQwMEY5MDAzMjQwNEM5ODIzMDYwMDBECis6MTBDNTgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDBFODAwMkUwMEZECis6MTBDNTkwMDA0ODgwMDJFODAwRDAwMDJFODAwQjgwMTJFMDAyODgwMDY0Cis6MTBDNUEwMDBBMjAwMEE4MDEyMjIwMEI4ODEyMjI4MDhDRjAyMEUwNEJECis6MTBDNUIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwMkM0MDVECis6MTBDNUMwMDAyODEwMDJDNDAwODEwMDJDNDAwQjEwMDJDNDAwOTEwMDBFCis6MTBDNUQwMDAyNjQwMDkxMDAyNTRBMEI1MkNBNTQyMDg1MDgyMDIwMTQxCis6MTBDNUUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDBBOTAwMkU1MEUzCis6MTBDNUYwMDA1ODkwMDJFNDgwOUIwMDJFNDU4QjkyMDJFNDAwOTkwMDQzCis6MTBDNjAwMDAyNjQ0MEI5MDAyNjQwOEI1MDAyNTRBMDg1MTAyMDYwNDJFCis6MTBDNjEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTAwM0U1NDk2Cis6MTBDNjIwMDAwQzkwNDNDNDAwQzk5MDNFNzAwRjk4MDNFNDAwRDkwMEY5Cis6MTBDNjMwMDAzNDYwNEQ5MDBBNjQwMEY5MDAzNjQwMkM5RTAzMjgwNEIzCis6MTBDNjQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTAwM0M0MDM4Cis6MTBDNjUwMDAwRjlDMDNFNjMwRjkwMDNFNjIwRjkwMDNFNDAwRTkwMDBFCis6MTBDNjYwMDAzQTQwNEU5MDAzQTQwMDc5MEMzQTQwMEY5MDFCQ0EwMDQ4Cis6MTBDNjcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBGODAwM0UwMDRDCis6MTBDNjgwMDAwQzgxMTNFMTA4Qzg0ODMyMDAzQzgwMDNDMDAwRjAxMDYwCis6MTBDNjkwMDAzRTA2MEM4MDAzRjAwOENDMDAzMzA0MENDMDAzMEEwNEVGCis6MTBDNkEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDBCQTAwMkU4MEFECis6MTBDNkIwMDAwOEVDNDJGQTIwOEUwMDIzQTAwOEU4NDJFODAwQkU4MDgxCis6MTBDNkMwMDAyRjgwMDhBMDAyRTgwMERBMDAyMjgwNDhFMDAyMEEwMDc5Cis6MTBDNkQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCMzAwMkNDMDAyCis6MTBDNkUwMDAwOTM0ODJDOTAwODM4MDIwRjAwODMwODJDQzAwQjM4MEY2Cis6MTBDNkYwMDAyQ0YwMDhCMDAyQzEyMDgwMDBBMDMyMDgwMDAyMEEwMDFECis6MTBDNzAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDQzBCNzAxMkZDOEFECis6MTBDNzEwMDA4OTUwMDJEODAyODdDNDIxRTI0ODcwODJEQzAwQjcwMDQ5Cis6MTBDNzIwMDAyQzQwMDg3MjAyQ0UwMDk3MDgyM0MwMDg3MDAyMjgwMDJGCis6MTBDNzMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBGN0UxM0RFOEVFCis6MTBDNzQwMDAyRDY4MDNGMjAwQzc4MEIwRTAwODY4MDNERjgwRjY4MDQwCis6MTBDNzUwMDAzREUwOEM3RTAzREEwMENDODAzMTIwMENDODBCMkEwMjJECis6MTBDNzYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDhGQjAwM0NDMEY5Cis6MTBDNzcwMDAwRTgwMDNFMDA4RjkwMDNFNDAwRkIwMDJFQzAwRkEwMDIyCis6MTBDNzgwMDAzRTQwMkZCMDAzRTQwMEZCMDAzQ0MwMkZCMDAzQzIwNkM0Cis6MTBDNzkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBGRjkyN0ZFQTNDCis6MTBDN0EwMDAwQ0Y4MDNGRTAwQ0NBMDNGMjAwREY5MDMzRTAwQ0Y4MDIzCis6MTBDN0IwMDAzMzYwMEZGODAzRjYwMEVGODQzM0UwMkNDODAzMDAwMDY5Cis6MTBDN0MwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCNzAwMkZDOEY2Cis6MTBDN0QwMDAwODU0MDJEODAwRDYwNDJEMDEwODY5MDIxQzAwODUwMDA3Cis6MTBDN0UwMDAyMTQzMEI3MDAzOUFDMDhDMDBBMzAyMDhGMTAyMkEwNEIzCis6MTBDN0YwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCNzAxMkRDQzhDCis6MTBDODAwMDAwODcwMDJENDAwOTQyODJEQzIwOEMyMDI1QzAwODYwMDgxCis6MTBDODEwMDAyMTgwMEI3MTAyREMwMEE3MTAyMUMwMDg0ODAyNDAwMEYzCis6MTBDODIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDhCMzAwMkNGMDExCis6MTBDODMwMDAwODA1MDJDMDIwOTA4MDJFMDAwODAwODI0QzAyODAwMDczCis6MTBDODQwMDBBMDYxMEIzMDAyQTAwMDgwMDBBMDMwODhCMTBBNDgwNDJCCis6MTBDODUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBGRjAwMkRDODNCCis6MTBDODYwMDAwQzNEMDNFNDAwREIwMjNFRjAyQzkwNEI3QzAwQzEwMDQ5Cis6MTBDODcwMDAzMjIwNEZGMDEzRTAwMEU4MDEzMjAwOENBQzAzNkEwNDcwCis6MTBDODgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGQjA0M0VDMkRECis6MTBDODkwMDA0RkIwMDNFMDA0RkE0MDNFQzI0RTk4MjNBQzEwRjgwMEJCCis6MTBDOEEwMDAzRTUwMDdCMDEzQUMwMEZCMDAzRUMyMEY5MjAzQTAwMDQ1Cis6MTBDOEIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMERDMDBDRjAwM0ZDMDhECis6MTBDOEMwMDAwQ0M4MjMzNjgyQ0Y4MDNGODAwQ0UwMDNFQzAwRjkyMEI3Cis6MTBDOEQwMDAzM0MwMEVGMDAzRjgxMERDMDAzMzAwNENFODIxMDA0NEI0Cis6MTBDOEUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMDBBQjAwMkVDMDhFCis6MTBDOEYwMDA0QThENDIyMTAwOEI0MjJFRDIwOEIwMDNFQzAwQjg4ODRBCis6MTBDOTAwMDAzNDYyMERCMDAyRTQwMDhCMDAyMkMwMDg5MDBBMjA0MDdGCis6MTBDOTEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjAwMkVDMERECis6MTBDOTIwMDAwOEEwMDIwRDAwODkxMDJFMDgyODkyMDJFQzA0QkIwMDFBCis6MTBDOTMwMDAyMkEwMDhCMDAyNjQwMkIzMDIyMEMwMDhBMjAyQTAwMDM0Cis6MTBDOTQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDBBMzAwMkVDMEZFCis6MTBDOTUwMDAwQTkwMjIwQzEwODAwMDJDMDAxODAyODJDQzAwQjAwMDNCCis6MTBDOTYwMDAyNjQwMDkzMDAyQzgyMDgwMDAyMDAwMDgxMDA2ODIwMUZECis6MTBDOTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDQjAwMkVDMDg1Cis6MTBDOTgwMDAwQ0ExMDIyNDAwODgwMDNDMDAwQzgwMDNFQzAwRkIwMDlBCis6MTBDOTkwMDAzMjgwMEVCMDAzQ0M4MERCMDAzMkMwMENBMDAzODAwM0Q5Cis6MTBDOUEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRjAwM0ZDMDgwCis6MTBDOUIwMDA0RkMyMTNENDEwRkMwMDNGMDAwRjAwMDNCQzAwRkMwMDZBCis6MTBDOUMwMDAzRjQwMEZGMDIzRTAxMkZDMDFCRjAwMEZEMDAzNjgwMkNDCis6MTBDOUQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMDBDNzgwMzNDMEVDCis6MTBDOUUwMDA4QkI0MDNCMEMwQ0YyRTFGMEM0RkMzMDMzMDgwRkYwMUE4Cis6MTBDOUYwMDAzRjA4MEZGMDAwN0MwMEZGMjEzM0U0MENFMDAzMzAwMDFGCis6MTBDQTAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVFMDA4QjgyMjNGMDE4Cis6MTBDQTEwMDAwQkI1MTIwRDg4ODhDMDBFOTgwQjg2MDIyMTAwQkJDMDkyCis6MTBDQTIwMDAyRUU0NEJGNzgzMkY0NEJGOTAyMkM4NDhBNjgyMjAwNEVGCis6MTBDQTMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDMDk4QTAwMjA1MDZBCis6MTBDQTQwMDA0QkIyMEE4MENDODMwMTBDOEMwQjIzMEEwNDYwQjMxNDE0Cis6MTBDQTUwMDAyNDQwNEIzMDAyQ0MxMEIzMDAyMEM4RTkxMTA2NjIwMTFCCis6MTBDQTYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDE4QTgwQTI0NEU0Cis6MTBDQTcwMDAwQkIwMDJBMTA0ODg0MDJFQTAwQjIwMDIyODIwQkI0MDRFCis6MTBDQTgwMDAyRTQwMEJCMDAyMkMwOEJCMDAyMkMwMDlCMDAyNzAwNDdCCis6MTBDQTkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBDMzgzMzJFMDlECis6MTBDQUEwMDA4RjAwMDNBMDAyQ0JDNDNFMjgwNzhCMDMyMTAwRjlDMEVFCis6MTBDQUIwMDAzRTEwMEZCMDAzRUMwMDdCMDAzMkMwMERBMDAzNTAwNDA5Cis6MTBDQUMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMTlDMDJGRjAwM0ZFMDU5Cis6MTBDQUQwMDAwRkY0NDM1RTgwRkM5NDNGMDAwRkMwMkJGMjUwRkQyMTA5Cis6MTBDQUUwMDA3RTg0OEZGMDAzNkMwQ0ZGMDAzRkMwMEU2MjAzQjgwMDIxCis6MTBDQUYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBFQjAwMzI0MDdECis6MTBDQjAwMDAyQzgwMDM2OTAwQ0IzMEIyMDA0RkIzNDNFNTAwQ0I0MDJCCis6MTBDQjEwMDA3MjE4MkNCMDAzRUMyOEMzMjEzQUMxMEY5NDAzMTAwNEZGCis6MTBDQjIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNDMDA4QjIwMjI1MEJGCis6MTBDQjMwMDAwOEIwMDIyODAwODhDMDJBMDA4QkI0MDJFODAwREIwMDlECis6MTBDQjQwMDA2MjMwMDhGMDAyRkMwMDhGODAyMkMwMEI5NTQ3MzIwMDUzCis6MTBDQjUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMTAwMjBDMkQxCis6MTBDQjYwMDA0ODMwMDI0OTgwODM0MjYwMTIwQjMwMDJDODAwODIwMkMyCis6MTBDQjcwMDAyQzMwMDlCMDAyQ0YwMTgzNTAyQUMwMEIyMDAyQjgwMDJDCis6MTBDQjgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDA5RDgwQTBFMDc5Cis6MTBDQjkwMDAwODc5MjI1RTYwODc5MDI5QTAwQjc4MDJDNjAwOTI4MUY2Cis6MTBDQkEwMDAwNUUwMDk3ODAyREU0MDg3ODAyMUUwMEIyOTAyMDgwMEI5Cis6MTBDQkIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDNDBGMjAwMzBDMEI3Cis6MTBDQkMwMDAwODNBMDM0NDA0QzMxNDMwQzAwRjIyMDNDQzgwQzIwMENGCis6MTBDQkQwMDBBNEQyMEQzMDEzQ0MyMEMzMDAzOEM0NEYwNDQzMTIwMjNBCis6MTBDQkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxRDlDMDBFRTAwM0ZFMDNGCis6MTBDQkYwMDAwRjcwMDNCNDAyRjQxMDNGQzA4RkEwMDNGQzAwN0UwMDRFCis6MTBDQzAwMDAzQkMwMEVGMDgzRUMwMEY3MDAzRkMwMEZDMDAzRDAwNjFFCis6MTBDQzEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUZDMDBGOTAwM0VDMDE0Cis6MTBDQzIwMDAwRkEwMDNBQTEyQ0IwMTMyODAwRkIwMTMyODE0Rjk4MDkxCis6MTBDQzMwMDAzQTQwMDNCNDAzRUM0MkNCMTgzRUMwMEZCMDAzMkEwMEM1Cis6MTBDQzQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlEMDBCNTAwMkRDNEQ4Cis6MTBDQzUwMDAwQjcwNEI3QzAwODQwMDIxODAwQjcwMDI5NDEwQjIwMDlBCis6MTBDQzYwMDAyOUMwMEI3MjgyREMwMDg3MjAyREMxMEU3MDAyMTIwNEQ1Cis6MTBDQzcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDBCNzgwMkRFMEIyCis6MTBDQzgwMDAwQjY4MDI5RTAwODM4MDIxRTA1QjM4MDIxRTAwQjRDMDY2Cis6MTBDQzkwMDAyNUUwMDk3ODMyQ0UwMDk3ODAyREUwMEI1QzRFMzAwMDA1Cis6MTBDQ0EwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCMzQ0MkNDMDU5Cis6MTBDQ0IwMDAwQjNDMDJDQzQwOTMwODIwRTAwQjMwMDI4QzEwQjNDMDM4Cis6MTBDQ0MwMDAyOEQ4MUIzMDAyQ0MwODkzMDE2Q0MwMEFCODgyMTIwNDI5Cis6MTBDQ0QwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGNjEwM0U4MEJCCis6MTBDQ0UwMDA0QkVEODNCODAwQ0VFNEIzQTMwRkUwMDMzODAwRkUwMEExCis6MTBDQ0YwMDAzQjgwMERBMDAyRTgwMERBMDAzRTgwMEZFODAyM0EwNDEzCis6MTBDRDAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMTBGODQwM0UwMDE1Cis6MTBDRDEwMDAwRjgwMTM2MDAwRTAwMDNFMDA0MzA4MDNFMDAwRjgwOEM1Cis6MTBDRDIwMDAzQTAwMEY4MDAzRTAwMEU4NDAzRTAwMEU4MDIzRDIwMDZFCis6MTBDRDMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEM0MDBEOUMwQkU0MDUwCis6MTBDRDQwMDAwRjkwMDNFNjAwRjkwMDMyNDAwMTlBMDMyNDAwRjkwMDM1Cis6MTBDRDUwMDAzRTQwMEY5MDAzQzQ0MDA5MTAwRTQwMEY5QTAzMDIwNDk2Cis6MTBDRDYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDQ4OTA0QTI2MDE4Cis6MTBDRDcwMDA4QjlEODBBNjAwQjk4MDIyNDA0ODk4MDIyNDAwQjkwMDBCCis6MTBDRDgwMDAyRTQwOEI5MDAyRTQ5NDg5NjAyRTQwMEI5NDBCMjAwMDdGCis6MTBDRDkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA5OTA4QUU0OEFCCis6MTBDREEwMDA0QjEwMDJFNTgxQjkxMDIwNDQxQjk0MDIyNDEwQjkwMEY1Cis6MTBDREIwMDA2RTYwMEI5MDAyRTQwMDg5MDAyRTQwMEI5NDAyMDYwMDg2Cis6MTBDREMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODA4OTAwQTA2ODAyCis6MTBDREQwMDAwQjEyMDI4NDg5QjEyMDIwNDgxQTEyMTIwNDgwQjEyMjU5Cis6MTBDREUwMDAwQzQ4MEIxMjAyQzQ4MUExMjAyQzQwMEIxMjAyMDIwMTNDCis6MTBDREYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBEODAwQkUwMDc4Cis6MTBDRTAwMDAwRjA1MEJFMTQwRjgwMDMyMTQwRjg1MDMyMTQwRjgwMEI0Cis6MTBDRTEwMDAyRTgwMEY4NTEzRTAwMkM4MDAzRTE0MEYwNTAxMkUwMzdCCis6MTBDRTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0NDBGRDAwQkY0NEQ5Cis6MTBDRTMwMDAwRkQxMDNGNDQwN0QxMEJGNDQ0NUYxMkJGNDQwRkQxMEE5Cis6MTBDRTQwMDAzRjQ0MEY5MTAzRTQ0MEQ5MTAzRTQwMEZEMTAzQTYwNkEyCis6MTBDRTUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2MDBGRDAwMUY2MkQxCis6MTBDRTYwMDAwRkQ4ODIzNjAwQkRBMDNCNjgwQ0RDODMyNkM4RDlBMDUxCis6MTBDRTcwMDAzMzYwMEQ5OTgzNTYyMEQ1QTgyRTQ0MENEODgzODYwNEEwCis6MTBDRTgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxNDhCODAwMkUwMERCCis6MTBDRTkwMDAwQjBBODIyMjIwQjg1MDIyQkEwODhBMjIyMjgwODgwMEY3Cis6MTBDRUEwMDAyMjAxMDgwQzAyMjAwMDg4MDAyRTI4ODg4ODAyQ0UwNDY3Cis6MTBDRUIwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwMkM0MDU0Cis6MTBDRUMwMDAxQjEwMEE4NDQwQjEwMDI4NTgwQTMyMDIwNTAwOTk0MDFDCis6MTBDRUQwMDAyMDY1MDkxMDQyQzQwMDkxMDAyQzQwMEEzMDgyQzIwMTMyCis6MTBDRUUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxMUE0MDBCOTAwMkU0MERFCis6MTBDRUYwMDAxQjkwMDJBNTgwQjkxMDIyNDgwODEwNDIwNDEwMDkwMEI2Cis6MTBDRjAwMDAyMjQwMDg5MDAyRTQwMDlCMDAyQzQwMEE5NDIyQzYwNEIwCis6MTBDRjEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTIwM0U0MDgxCis6MTBDRjIwMDAwRjkwMTNBNzEwRjk2MEJBNTAyRTlDMEEyNTg0RDFGMEY3Cis6MTBDRjMwMDBCMjYwMEQ5MDAzRTQwMEQ5MDAzRTQwMEU5MDAzQTgwMEJCCis6MTBDRjQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MENGOTkwM0U2QTY3Cis6MTBDRjUwMDA4RjkwMjM2NjAwRjEwODNDNDAwRjlDNDNFNDQwRjk4MDI5Cis6MTBDRjYwMDAzQTQ0MEY5MDAzMjQwNEU5MDIzRTQwMkQ5MTEzQ0EwMDc1Cis6MTBDRjcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBFODIwM0UwMTMyCis6MTBDRjgwMDAwQzAwMDNBMTIwRTg1MDMyMTAyQzhDMDMyMTAwRTgwMDkzCis6MTBDRjkwMDAzMjAyMEYwMDEzMjA4OEM4MDgzMjAwMEY4QzAzQ0EwMDI5Cis6MTBDRkEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MjA4RUUzMkY5MEJDCis6MTBDRkIwMDAwQUUwMDYzQjAwRUUwNDIzOTAwOEUwMDIyODA4OEEwMkZCCis6MTBDRkMwMDA3NTkwOEJBMDQxNTg5MDhFODAyQTgxMEJFMDAzOEExMEM3Cis6MTBDRkQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRFMDBBMzAwNkM2MDI3Cis6MTBDRkUwMDAwODM4MUE4RTQwQTA4MDIwQ0MwOTMwMDIwQzA1QTMwNDFBCis6MTBDRkYwMDAyOEM0MEIzMDAyMEQwMTgzQzAyMEMwMEIzMDAyQ0EwMEQwCis6MTBEMDAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFFMDg4NzAwMkQ2MkYzCis6MTBEMDEwMDAwQjcwOTIxQzA4QTAwMDYxQzAwOTYwMDYxQzgwQTcwMDZDCis6MTBEMDIwMDAyMUMwMEI3MjAyNTgwMTg3ODgyOUMwMEI2MDEyQTgwMDJBCis6MTBEMDMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBFNjgwM0Q2MERGCis6MTBEMDQwMDAwQzc4NDI5NjAwRTQ4MEEzNjAwRDc4MDMzRjAwRTM4MEYzCis6MTBEMDUwMDAyMUUwMEY3QjAzMTYwOEM3ODAzMUUyNEY3ODQzRUEwMkQ0Cis6MTBEMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxRDhDMDFGODAwM0M0MDlBCis6MTBEMDcwMDAwRUIwMDJFQzAwRjgwMTNFNDA0RTMwMzNFRDIwREIwMUYzCis6MTBEMDgwMDBCRUMwMEZCNDAzRUMwMEZCMDAzRUQ4MEZBMDAzQzIwNkU1Cis6MTBEMDkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBDNzg0MjM2MDVGCis6MTBEMEEwMDAwQzc4MEJCRTAwRkQ4MDNGRTAwRkVCMDMzRTAwQ0Y4MDBECis6MTBEMEIwMDAzQjI1MENGODgzN0U0MENEODAzM0UyMEJGOTAzMDAwMDYyCis6MTBEMEMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDI4NzAwMTU0OEI1Cis6MTBEMEQwMDAwODcwMDIxNDIwQjYwMDM1OUE0OUM4MDM5Qzg0QTcwMDQyCis6MTBEMEUwMDAzOUQwMEE3MDAyMUEwOEE0MDAyMUMwMDk2MTQyMkEwNDNBCis6MTBEMEYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDA4NzAwMjE0MDRDCis6MTBEMTAwMDAwODcxMDI5NDAwQjUwMDJENDAwQkYxMjI1QzAyMDcwODYzCis6MTBEMTEwMDAyQzUwMDg3MDAyNTAwMDg3MDAyREM0MEI1MDQyMDAwMEI0Cis6MTBEMTIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDA4MzAyMjQ0MEY2Cis6MTBEMTMwMDAxODNEMEEwMTAwQjA1ODI0MjAwOTMwMDI4RjQwODNFMEQ2Cis6MTBEMTQwMDAyQ0MxMEEzMDQyMDgwMEIzMDE2Q0MwMDkwODE2MDgwNDVCCis6MTBEMTUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNThDMDA4QjAwMzI0MDU5Cis6MTBEMTYwMDAwQzI1MDNBODQ4Rjg4MTNFODAwRjgwNjM3QzAwQ0I4MEFCCis6MTBEMTcwMDAzQUMwMENGMDAzNkMwMENBMDJCRkMwMEY5ODhCMkEwNDlGCis6MTBEMTgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGOTAwM0U1MDRDCis6MTBEMTkwMDAyRkE0MEJDODAwRjA0MDNFRDAwRkEwMzNFQzIwRkIwNEJFCis6MTBEMUEwMDA3QUUwMEZCMDAzRUQwOEU5MDMzMkMwMEQ5MDAzRTAwMDEwCis6MTBEMUIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEVDNDBFRTAwM0VDMDE2Cis6MTBEMUMwMDAwQ0RBMDM3MDA0Q0MwMkIxQTAwRUYwMjNFQzAwRkYwMEQ3Cis6MTBEMUQwMDAzNzIwQ0RCMDczRUM4OEZCODAzRkMwMEYzMDAzMDA0NDk0Cis6MTBEMUUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZFMDA4ODgwMkNFMTA3Cis6MTBEMUYwMDAwODk0MEFBOTAyODg0MDIyRDAwOEI5NDJFQzA0QkIwMDc2Cis6MTBEMjAwMDAyQ0Q0MERCMDAyRUQyMEJCRDAyRUMwMEJCMDAyQTA0MDNDCis6MTBEMjEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI0MDBBQjgwMkVGMDBDCis6MTBEMjIwMDAyOUEwODI2RDAwODgwODIyMDQwODkwNDJFQzAwQkIwMDBGCis6MTBEMjMwMDAyQTgxMDhCMDAyRTQwOUJBMDQyRUMxNEI5ODgyMjAwMDZBCis6MTBEMjQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDA4MzAwMkNDMDFGCis6MTBEMjUwMDAwQTIxMDI4NDEwODIwMEUwMDAxODBBMTJDQzAwQjMwMEY4Cis6MTBEMjYwMDAwQ0MwMDkzMDAyQ0M5MEIwMDAyQ0MwMEIxMDAyODIwMTFGCis6MTBEMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDY0MDBFQjAwM0UwMDE0Cis6MTBEMjgwMDAyQ0I0MDM2NDA4ODgwMEIyMDAwQ0IyNDNGQzAwRkIwMDFECis6MTBEMjkwMDA1NjAwMENGMDAxRTQwMEZCMDAzRkMwMEY4MDBCMDAwM0MwCis6MTBEMkEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREY0MDBGRjAwM0Y0MEZGCis6MTBEMkIwMDAyREYwNjFGMDAwRjQwMDI3MDEwREIxMTFGQzAwRkYwMjE4Cis6MTBEMkMwMDAwN0MwMEZGMDAzRUM0MEZGMDAzRkMwMEZDMDAzNjgwNjJCCis6MTBEMkQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUY2MDBFRjkwM0Q0QzFCCis6MTBEMkUwMDAyQ0MwMTNGNDA4RkQyMDM3NEM4RTgyODM3NDg0RENDMjdBCis6MTBEMkYwMDAzRkQ4MERGMjAzRUNDMEZGODEzRjAwMENGODAzRjAwMEIzCis6MTBEMzAwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEU2MDA4QjI0MkU1Q0ZFCis6MTBEMzEwMDAwODhEMDJGRjQ4Qjk5MDJGNTQwQjg0ODIzRTQwQTA4MEI0Cis6MTBEMzIwMDAyRUM0MEFGQzQyRUQ4MEI5ODAyRTYwMEE5ODEyRTAwNEY3Cis6MTBEMzMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUU0MDFBMzAwMjg0ODM4Cis6MTBEMzQwMDAwQTAwNDJDNDAwQjEwMDJDNDkwQjBBNDIwNEEyOTEyMUY4Cis6MTBEMzUwMDAyQ0M5MDgzMTAyOENDMUEzMDAyQzQwMDgxODAyQTIwMTdDCis6MTBEMzYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUEwMjA4QjgyMkU0NDM5Cis6MTBEMzcwMDA1ODgwMDJFNDAwQkIxMDJFNDAwQkExMTIwQzAxODkxMDUyCis6MTBEMzgwMDAyRUMwMEFCMDAyRUMwMUI4ODAyRUUyMEFBMTAyRjAwNDFECis6MTBEMzkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVCNDBFQjQwM0U2MEU0Cis6MTBEM0EwMDAwRTg3MzNFNDAwQjlBMTM2QzAwRUE4MEIyNjAwREFDMDAwCis6MTBEM0IwMDAzRUMwOERCMDAzRUMwMEZCODUzRUUxMDhCODAzOTAwNTRDCis6MTBEM0MwMDAyMDAwMDAwMDAwMDAwMDAwRTAwMUI4MDBGRjAyMkY2MDE0Cis6MTBEM0QwMDAwM0U4ODNGQzEwRkQ4MDFGNDAxRkQwMTNCRTQwRUUwNDA1Cis6MTBEM0UwMDAzRkMwMEZGMDQzRkMwOEZEMDAzQ0MwMEZEMDExRjgwMDE3Cis6MTBEM0YwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE0MDBEQjAwQjI0MDBDCis6MTBENDAwMDAwRTk0MDMyNDAwRDkwMEJBQzAwQzIwMDNFNDkwRkIwMDYyCis6MTBENDEwMDAzQUMwMENCMDAzRUMwMUZBMDAzRUQwMkM5ODAzOTAwNDAzCis6MTBENDIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTAzMDA4QjAwMjI0ODE3Cis6MTBENDMwMDAwODg0MjIyQzAwQjkwMDIyQzAwOEEwMDJFRDAwOEJBMEI1Cis6MTBENDQwMDAyMUMwMDhGMDAyRkMwMEI5ODAyRUMwMDhBMDAyMzIwMDAyCis6MTBENDUwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQ1MjA5MzAwMjJGODk1Cis6MTBENDYwMDAwQjMwMEE4NDQwQjIwMDIwNDAwODEwMDJDNDAwODA4MEMzCis6MTBENDcwMDAyOEMwMjgzOTAyNEMwMEIxMDAyQ0MwMDgzMDAyQjgwMDg2Cis6MTBENDgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTM2MDA5RjgwMjE2MDU1Cis6MTBENDkwMDAwOTM4MDI5RTAwQjJDMDIwNjA0ODQ4MTJENkM2ODZEMDI1Cis6MTBENEEwMDAyMUUwMDg3ODAwREU4MEI3ODIyREUwMDhGODAyMDgwMDRECis6MTBENEIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMjBEMzEwMzBDOEQ1Cis6MTBENEMwMDAwRjMwMDM4NDAwRjEwMDMwNDAyNDE5MDNFNEMwRTA0MDMxCis6MTBENEQwMDAzQUMwMEMzMjAzQ0U4MEIxMjgzQ0MwMEMzMDEzOTIwMjBCCis6MTBENEUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxRDlDMDBFNjAwN0ZDMDFFCis6MTBENEYwMDAwRUYwMjM3NDQwRkYxMDNGNDA0RkQwMDNGQ0QyQ0UwNDA3Cis6MTBENTAwMDAzRkMwMEZGNDAzRkMwMEZFMDAzRkMwMEY3MTAzRDAxMkI4Cis6MTBENTEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVFMDBDQjAwMTZDMDZGCis6MTBENTIwMDAwRDgwMDMyNzIwQ0IwMDNFQzIwQUIwNTNFNDI4QzE4MUZFCis6MTBENTMwMDAzMkMxMEVCOTAzMkMwMEYxODAzNUUwMENCODAzMkEwNDg3Cis6MTBENTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDI4NzEwMkQ0MDcwCis6MTBENTUwMDAwODcwMDM1QzAwQTcwMDJENDAyODcwMDJENDA0ODcwNEUzCis6MTBENTYwMDBBMUQwMEI3MjAyMUQwMEY3MDAyMUMwMEQ1MDAyMTIwNDYxCis6MTBENTcwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDA4NTgwMjVFMEUzCis6MTBENTgwMDAwOTc4MDIzNzAzODc4MDJGRTAwODc4MTJDNjEwOEQ4MDUzCis6MTBENTkwMDAyNUU4MEIzODAyMUU4MEJDODQyNUUwMDg1ODAyNzAwMDg0Cis6MTBENUEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENEODA4Mzg4MkNDMEJCCis6MTBENUIwMDAwODNDMDI0RTAxQTNEMjJFQzQwOEIxMDJDQzAwODM4MEU1Cis6MTBENUMwMDAyNEMxMEIzMDAyMEMwMEIzNDBBMEQyMDkzMDEyNTIwMDJCCis6MTBENUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJBMDBDQUMwMzY4MDI0Cis6MTBENUUwMDAwRDY3MTMyODAwQ0UwMDNFQTAwQ0VEMDNFODAwQ0VFMDRFCis6MTBENUYwMDAzNjgwMUVBMDBCMjgwNEZFMDBCN0IyMENFMDBCN0EwMEE4Cis6MTBENjAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwNDBGODEwMkUxMDBDCis6MTBENjEwMDAwRjgwMDNFMDAxRDgwQTNFMDAwRjgwMDNDMDAyRjgwODIzCis6MTBENjIwMDAzQTAwMEY4MDAzRTAxMEU4MjBCRTAwMEY4MDEzOTIwMDQ0Cis6MTBENjMwMDAyMDAwMDAwMDAwMDAwMDAwMDgxMEU1MDBGQjAwM0U0MDU0Cis6MTBENjQwMDAwQzkxMDMyNjAwNjE4MDMyNDAwQzkwMDMyNDAwQzkwMDM1Cis6MTBENjUwMDAxRTQwMEM5QzAzRTQwMUY5MDAzRTQwMEY5MDAzQzIwMDAxCis6MTBENjYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY3MDBCOTAwMkM0MDdBCis6MTBENjcwMDAwMDlDMDJBNjAwNzkwMDIyNDAyODkwMDIyNDAwODkwMDI0Cis6MTBENjgwMDAyQzQ0MDg5ODAyRTQwMEI5ODAyRTQwMEI5MDAyRTAwMTdGCis6MTBENjkwMDAwMDAwMDAwMDAwMDAwMDAwMTgwMTI0MDBCQjAwMjY1MDFDCis6MTBENkEwMDAyODkwODIyNDg0OTkyMDIyNDA0OTkwMDIyNDAwODkwMEY1Cis6MTBENkIwMDAyRTQwMDg5MDAyRTQwMEI5NjAyRTQwMEI5MDAyQzYwNDkwCis6MTBENkMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA2MDBCMTAwMkU0OEUxCis6MTBENkQwMDAwODEyMDI4NDgwQjEyMEEwNDgwOTEyMEEwNDgwODEwMDQ3Cis6MTBENkUwMDAyQzQ4MjgxMjQyQzQ4ODMxMDAyQzQwMEIxODAyQzIwMTc5Cis6MTBENkYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBGODUwMzYxNDczCis6MTBENzAwMDAwQzgwMDMyMDAwRTgwMDMyMTQwQzg1MDMyMTQwQzg1MDJGCis6MTBENzEwMDAzRTE0MEM4MDAzRTE0MDM4MDAzRTAwOEY4MDAzRUUwMzhFCis6MTBENzIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREQ0MDBGQjA0M0Q0NEEwCis6MTBENzMwMDAwRjUxMjNENDQ4RUQxMDNENDQ0RUQxMjNGNDQyRkQwMDU3Cis6MTBENzQwMDAzRTQ0OEY5MTAzRTQ1OEZEMDAzRjUwMEY1MDAzRTYwNjFFCis6MTBENzUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY0MDBGOTAwM0Q0MEQyCis6MTBENzYwMDAwQ0QwMDNGNDAwREQwMjNFNDAwQzkwMDNFNDQwQzkxMEVECis6MTBENzcwMDAzNzQwMDdEMDA3MjQwMEU1MDAyRjZBMEY3MDAzMDYwMDJBCis6MTBENzgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDBCODAwM0EwMDBGCis6MTBENzkwMDA4MDgwMDJFMDAwODgwMDJFMDAwQTgwNTNBMjgwMkNBMDI2Cis6MTBEN0EwMDAyMjAwMEI4MDBBMjAwMEI4MDAyRTEwMDk4MDAzMEUwNDBFCis6MTBEN0IwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwNkM0MDBCCis6MTBEN0MwMDAyQTEwMDI4NDAxODE4MDJFNDAwOTEwMDJGNDAwOEQwNDg5Cis6MTBEN0QwMDAyMDQwMEIxMDAyODQwMEIxMDAyQzQwMEI5ODAyNDIwMTQzCis6MTBEN0UwMDA3MDAwMDAwMDAwMDAwMDAwMTgxMUE0MjBCOTAwMkE0MEI5Cis6MTBEN0YwMDA4OEI0MDJFNjAxQTkyMDJFNDgwQTkwMDBBNDQwQUQ0MDVBCis6MTBEODAwMDAyMjQwMEI5MDEyQTQwNEI5MDEyRTQxMEI5MDAyMDYwNDkxCis6MTBEODEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOUMwM0U2MEI4Cis6MTBEODIwMDAwQzk0MTNBNjAyRDk0MjFDNjAwQzlFMDFDNjA0QzEwMEQwCis6MTBEODMwMDBCMjQwMUY5MDAyQTQwMEU5MDgzRTY4NEY5ODBCNjgwNEFDCis6MTBEODQwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE2NDBGOTIwMzg3MDk4Cis6MTBEODUwMDAwRjkxMDNFNDAwRDk4MDNFNDAwRjlDMTNBNDAwRjkwMDBGCis6MTBEODYwMDAzRTQwMEYxMDAzNjQxMEY5MEEzRTUwMEQ5QTAzQ0EwMDlGCis6MTBEODcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEExMDBEODA0M0UwMDU1Cis6MTBEODgwMDAwQzgxMTNDMDAyRDgyMDNFMDAyRDg0MDNFMDAwQ0MwODk4Cis6MTBEODkwMDAzQTAwMEY4MDQzRTAwMEY4NDEzMjAwMDc4MThCMEEwNDEwCis6MTBEOEEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTNBNjA4QTAwMkZBODMwCis6MTBEOEIwMDAwQUUwMjJFODAyN0U0ODJFODAwOEEwNDJFODA0OEUwMDlBCis6MTBEOEMwMDAyM0E4MEJBODgyRTgwMEVFMDBBMjgwNEI2MDAyMEEwMEE5Cis6MTBEOEQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5MzAwNkNDMEQwCis6MTBEOEUwMDAwODMwMDJDQzAwMTM4MTJDQzAwODMwMDJDRTQwODI0MEE4Cis6MTBEOEYwMDAyOEUwMEIzODAyQ0MwMEIzMTAyNEMwOEIzODAyMEEwMDk5Cis6MTBEOTAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFFMDA4NzIwMkZDMDcyCis6MTBEOTEwMDAwQTcwMDJEQzBBQjYwMDJDQzg4ODcyMDZEODAwODYwMDlECis6MTBEOTIwMDAyMUMwMEI3MDAyREM4NEFGODBBNUMwMEJEMDAyMjgwMEEwCis6MTBEOTMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBENzgwM0RBMEE1Cis6MTBEOTQwMDAxQzc4MTNENjAyRDc4MDNERUMwODdFMjNGRTAwQ0U4MEUzCis6MTBEOTUwMDAzOTYwMEY3ODAzREYwMEY2ODA3NUUwMEY3ODAzMkEwMjQ0Cis6MTBEOTYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxRDhDMDBGQjEwM0U4MDNECis6MTBEOTcwMDAxRkEwMjFDQzAwRkEwMDNFQzAwRUIwMDNFODAyRkEwMDVFCis6MTBEOTgwMDAzRTQwMEZCMDEzRUMwMEVBMDEzQUMwMEY5MDAzQzIwNjBDCis6MTBEOTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZDMDBGRjgwM0Y2MDA4Cis6MTBEOUEwMDAwODk5MDc3RTAwREQ4MDNGRTIwQ0Y4MDNGNjAyREY4MDc1Cis6MTBEOUIwMDBCM0UwMENGODAzM0U0MUNDODAzM0U0MEZGODAzQzAwMDIxCis6MTBEOUMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDNDBCNzAwMkRDMEFFCis6MTBEOUQwMDAwRDVBMjJEQzgwNzUwMDJEQzAwODcxMDJGMDIwODcwMEVFCis6MTBEOUUwMDAyMUMwMEE3MDAyMUMwMEQ0MjgyMUMwMEI3MjAyRUEwNDc0Cis6MTBEOUYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDNDBCNzAwMkQwMDA3Cis6MTBEQTAwMDAwODcyMjJGNDAwODcwMDJEQzIwODcwMDJENDAwODc4MEJCCis6MTBEQTEwMDAyNTQwMDkzMDAyNUMwMUFEMDAyOUQwNEI3MDAyQzAwMEU2Cis6MTBEQTIwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDBCQkM4MkNBMDg3Cis6MTBEQTMwMDAwOTIwMDJDRTAwQTMwMDJDRTBBODNENDJDMjAwOEI4MDRBCis6MTBEQTQwMDAyNDQwMEIzMDBBNkMwOEEzNDBBOEUwMEIzNDAyQzgwNDQxCis6MTBEQTUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFEMDBGRjQ4M0MyODgxCis6MTBEQTYwMDAwQ0E5MjM2QzgwOEIwMDNGQzAwQ0ZDMDNFQzAwRDg4MDE5Cis6MTBEQTcwMDAzNDQwMEQzMDAzN0MwMkEzNDAzODY4MEYyNDAzRUEwNENECis6MTBEQTgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVEODhGQjAwM0U1MEI4Cis6MTBEQTkwMDAwRkExMDNFQzA0M0FDMDNFQzAwRkIwODNFODAyRjgxMEI3Cis6MTBEQUEwMDAzQTQxMEU5MDAzQUMwMDlCMDhCNjQwMEY4MTAzRTAwMEEyCis6MTBEQUIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBGRjAwQjMyMDU3Cis6MTBEQUMwMDAwQzUwMTMxQzA5Q0Q4MzMzQzA4MzcwMDAzQzAwREMxMDY0Cis6MTBEQUQwMDAzMjYwMEVGMTQzMkMwMENFMDQzQjcwMENGMDgzMDA0NDA2Cis6MTBEQUUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDY3ODBCQjAxNjIyMTVCCis6MTBEQUYwMDA4QTg5MjAyQzAwODBFMDIyQzAwQkIwMDNEODEwOEMwNDRGCis6MTBEQjAwMDAyMjQwMDU5MDAyQUMwMEQ4ODAzNjQwMEE5MDAyMjA0MEE2Cis6MTBEQjEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI2MDBCQjAwMjIwNjY3Cis6MTBEQjIwMDAwODgwMDIyRTAwODgyMDIyQzAwOUIwMDJBNDAwOTkwMEJCCis6MTBEQjMwMDA2MkM0MDhCMDA2MkMwMDg4ODAyMjQxMDhBMDAyMjAwMEEwCis6MTBEQjQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDBCMzAwMjA0MDZBCis6MTBEQjUwMDAwQTAwODIwQzAwODAwMDIwQzAwQjMwMjJBMDAwODEwMDRGCis6MTBEQjYwMDBBMEMwMDkzMDAyOEMwMDkwMDAyNDQwMEEyODAyMDIwMTYzCis6MTBEQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDYwMDBGQjAyMjAwMDFCCis6MTBEQjgwMDAyQzkyMDMyQzAyODgwMDMxQzAwQkI1MDJBNDAwRDEwNEYyCis6MTBEQjkwMDAzMjQwMEU5MDAzMkM0MEM5MDAzQTQwOENBMDAzMDAwMzkxCis6MTBEQkEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREY0MDBGRjAwMkYwMDQ2Cis6MTBEQkIwMDAwRkMwMDNEQzAwRkMwMDNGQzEwRkYwNDNGMDAwRkQwMDhDCis6MTBEQkMwMDAzRjQwNEZEMDAzRkMwMEY1MDAzRjQwMEZFMDAzRTgwNjY0Cis6MTBEQkQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUQ4ODBDQzAwQjcwNDMxCis6MTBEQkUwMDA0RUUxMDMzQzIwREYxMDMxODAwNkYwMDM3RjAwRkZDMEQwCis6MTBEQkYwMDAzQkMwMEVGMjAzNUUwMEVGMTAzM0QwMkNGMjAzMzAwMDc2Cis6MTBEQzAwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMEU5MDA4OEM2MjA1QzIxCis6MTBEQzEwMDAwOEE0NTc2NTAwOEY1MjJBRjAwOUZDMDIwNDAwQkIwMERCCis6MTBEQzIwMDAyREQ5MDk3NDgzNjQyODgzNDQyMjg0ODgwNjgyMzAwNEIxCis6MTBEQzMwMDAzMDAwMDAwMDAwMDAwMDAwQzgwNUM5MDA4MDEwMjAwODY2Cis6MTBEQzQwMDAwODMxMTIwNEIyQTMwMDIwODQxQjM0MDIwQzgwQjMyMERDCis6MTBEQzUwMDAyQ0M3MDkzNjAyOEM4MDkzNDBBQ0M4MDgzMTI4MzIwMUE5Cis6MTBEQzYwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE5MDA4ODAwQTI1MDRDCis6MTBEQzcwMDAwODM1MDIyNDAwOEIwNDJFQzEwOUIwMDIyNDk0QkIwMDk1Cis6MTBEQzgwMDAyRUMwMEJCMDAyQ0M2MDhCMDAyRTgwMDg4MDAwMzAwNEM4Cis6MTBEQzkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNUU3MDJDQjE4QjI4MDExCis6MTBEQ0EwMDAyQ0FDMEEyRTA4RUIwMDMyMTI0RUIwMDMyQjgwRkIwMDg2Cis6MTBEQ0IwMDAzQUMwMEFCMDAzQUIwOEVCMDQyRTQ4MENCODgzMDAwNDRBCis6MTBEQ0MwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI2ODBGRjgwMzlDQTRCCis6MTBEQ0QwMDAwREU4MDNENjQwRTcwNDNCNjY0RTcwMDNCODAwRkYwMTMxCis6MTBEQ0UwMDAzRkMwNkNGMDAzNzAwNkU3MDAzMTA0MEZDMTQzRjgwMDM5Cis6MTBEQ0YwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMDg1MDBDQjQwMzI5MDIyCis6MTBERDAwMDAyRkIwMEI2NDgwRkIwOEJBMTAwREIwQTcyRDAwRkIwNEU4Cis6MTBERDEwMDAzRUMwOEVCMDAzNkQwMERCMDEzMjQwOEMzMzAzOTAwNEIzCis6MTBERDIwMDAyMDAwMDAwMDAwMDAwMDAwQzAwNTI0MDA4M0UwQTJEMDE1Cis6MTBERDMwMDA0MEIwMDIyNTA0QkY4MEEwNTAwOEY4MDIyMDAwOEIwMkVBCis6MTBERDQwMDAyRkQwMDhGMDAyMjQwMDhGODAzNjAxMDg4NDQyMzYwMDZDCis6MTBERDUwMDA0MDAwMDAwMDAwMDAwMDAwRTgwNTQ0MDA4MzQ4MjBDNEEzCis6MTBERDYwMDAwOTAwMDI0NjAwQjMwMUE4OTAxOTMwMTI4QzAwQTMwNEU4Cis6MTBERDcwMDAyRUUyMEFCMDAyMEMwMDgzNDkyOEMwMDkzQzAyMzgwMDk4Cis6MTBERDgwMDA1MDAwMDAwMDAwMDAwMDAwRjAwMTM2MDQ4MzgwMjFFMTEzCis6MTBERDkwMDAwODM4MTIxRTI4QjM5ODIxQTAxOTM4ODI5NjAwODc4MzZDCis6MTBEREEwMDAyREUyMDg3ODIyMzY4Qzg3ODAyREUwMDk3OTAyM0UwMDJBCis6MTBEREIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA0MDBDMzMwMzBDOEU0Cis6MTBEREMwMDA0RDAwMEI0QzgwRjMxMjM4QzAwRDNBMDI4QzgwRjMwMEVBCis6MTBEREQwMDAzQ0MwMEUzMDBCMEUwMEMzMEMzQUMwMEQzMDAzMTIwMkQzCis6MTBEREUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREI0MDZGRjEwM0ZDMDBFCis6MTBEREYwMDAwRkIwMTNCQzAwRkYxMDdGQzAwRUYxQTM3QzAwRkYxMjE4Cis6MTBERTAwMDAzRkMyMEZGNTIzQkM0MUVGMTgzNzgwQUVDMDAzNTAwNjY4Cis6MTBERTEwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU0MDBEQjAwM0VEQTFFCis6MTBERTIwMDAwQzgwMDM2NjEwOEIwMDMyODA4Q0I2MDM0QTAwNEI4MDU2Cis6MTBERTMwMDAzMkM4MENCNDAzMEExMERCMDAzRUMxMENCMDQzMkEwMDA4Cis6MTBERTQwMDA3MDAwMDAwMDAwMDAwMDAwQzgxMUI0MDA4NzA0MkNDMDVFCis6MTBERTUwMDAwRDcwMDMxQzA4ODc0ODIwODEwRDcyODI1QzAwRDcwMDdBCis6MTBERTYwMDAyMUNDMjhGMDAyMUMxMDg3MjAyQzAwMDg0MDBBMzIwNDI0Cis6MTBERTcwMDA2MDAwMDAwMDAwMDAwMDAwODAwMDk2MDBCNzgxMkRFMEU3Cis6MTBERTgwMDAwODQ4MDIwRTA0ODc4MDIxRTAwODc4MDIzRTAxODc4MDVFCis6MTBERTkwMDAyMUUwMTg3OTAyM0EwMTk3QTAyRDYwMDgzODAyMjAwMDhECis6MTBERUEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEM2MDBBM0M2MkNDMERCCis6MTBERUIwMDAwOTMwMDIwQzAxODMwMDIwRTAwOTMwMDI0RTAwOTMwMDdCCis6MTBERUMwMDAyMEMwNDkzMDIyMEY2NDgzMDI2Q0Q0MjgzMDAyMTIwNDJGCis6MTBERUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxMUFCODBGQUUwM0M4ODUwCis6MTBERUUwMDAwQ0UwMDIyODAyQ0EwMEIzQTkwQ0EwMDMzQjEwQ0EwMDMwCis6MTBERUYwMDBBMjgwMENBMDBCMzgwMERBMDAzRkIwMENFNjAzM0EwNDE1Cis6MTBERjAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEMwMjA5ODA4M0UwMEFCCis6MTBERjEwMDAwRjgwMEJFMTAwRjgwMTNDMTA0RjAwMDNBMDQwRjgwMDE3Cis6MTBERjIwMDAzRTEwMEU4MDAzRTAwMEY4MDAzQzAyMkYwNDkzRDIwMDY0Cis6MTBERjMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBDMUMxMzI0MEMxCis6MTBERjQwMDAwQzk4MDMyNjQwRjkwMDMyNDAwQzk4MDMyNDI0RjkwMDcxCis6MTBERjUwMDAzQzYwMEMxMDAzQTQwMEY5ODIzMjQwMEM5MDAzMDIwNEQwCis6MTBERjYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OTAwMjI1MDlFCis6MTBERjcwMDAwRDk4MDIyNTgwQjkwMDIyNTIwRDlDMDIyNDAwQjkwMEEwCis6MTBERjgwMDAyRTYwMDg5MDQyMjQwMEI5NDAzNjQwMDg5MDBBMjAwMEQ0Cis6MTBERjkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA4RDAwMjM0MDQwCis6MTBERkEwMDAwODEyMDIyNDAwQTExMEEyNjAwODkyOEEyNDAwQjkwMTdDCis6MTBERkIwMDAyRTQ2MDg5MDAyQTQwMEIxNTAyMjQwMjg5MDgyMDYwMDBDCis6MTBERkMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODQ4NTIwQTFEODVGCis6MTBERkQwMDAwOTEwMDIwNDgwQjMyMDIwNDAyOTEyMDYwNDAwQjEwMTc4Cis6MTBERkUwMDAyQzQ4MjgxMjAyMDQwMEIxMjAyNDQ4MDgxMjAyMDIwMTIxCis6MTBERkYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDI4QTAwQjMwMDdDCis6MTBFMDAwMDAwQzA1MDMyMTQwRTA1MEIyMDAyQzgwMDIyMTQwRjA1MDZBCis6MTBFMDEwMDAzQzE0MEM4NTEzQTE1MEY4NTAzMjE0MEM4NTIzMkUwM0E4Cis6MTBFMDIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDBGOTEwM0U0NDJDCis6MTBFMDMwMDAwRkQ0MEJGNDQ0RjkxMDNGNTA0RjExMDNGNDAwRjkwMEQyCis6MTBFMDQwMDAzRTQ0MEY5MTUzRjQxNEY5MTAzRjQ0MEZEMTAzRTYwMkZDCis6MTBFMDUwMDA3MDAwMDAwMDAwMDAwMDAwOTgwNUU2QTBERDg4QjM2NkFGCis6MTBFMDYwMDAwQ0RDODMzNjg4QkRBMDM3NkEwQ0RBMEIyNTAyQzk0MDY4Cis6MTBFMDcwMDAzRjc4NEY5OEIzRTUwNENEQTA3Mjc4MENEODhCMjYxNDY2Cis6MTBFMDgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUzMDA4ODQyMjIzMUQ4Cis6MTBFMDkwMDAwODBBMDIyMkEwQjhGOTIyMTAwRDg0MTI2QTgwODg4MDMyCis6MTBFMEEwMDAyRTIwMEIwODAyRTI4MEE4QThBMjM4NDhBODAyMEUwMDgxCis6MTBFMEIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwNUM0QTI4MTAwMjA0ODk0Cis6MTBFMEMwMDAwODEyNDI0NTAwQjEwMDI0NDAwOTE0MDIyNDAwODEyMEI2Cis6MTBFMEQwMDAyQzU4MEIxMDgyQzQwNDkxNDA2NDZDMDgzMDgyMTIwNUU1Cis6MTBFMEUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDA4OTAwMjI0MTAzCis6MTBFMEYwMDAwODkwOEE2NDgwQjkwMDIyNTAwOTkwMDY2NDA4OTkwMDRCCis6MTBFMTAwMDAyRTQwMEI5MDA2QzQwMUI5MDIyNjYxODg5MDAyMDYwNEQ1Cis6MTBFMTEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBDOTAwMjI0MERCCis6MTBFMTIwMDAyQzk0MjM2NDAwQjkwMDM2NDAwOTkwMTMwNTAwQzkwMEZGCis6MTBFMTMwMDAzRTQwNEY5MDEzRTVDMEQ5MDAyNjQwMkM5NDAzMjgwMEEwCis6MTBFMTQwMDA3MDAwMDAwMDAwMDAwMDAwNjgwMUE0MDJFOTA4M0M0MEUzCis6MTBFMTUwMDAwRjkwMEJBNDAwRjEwMDNFNDEwRjkwNDNBNDg4RTkwNDA2Cis6MTBFMTYwMDAzRTQwMEY5MDAzRTYwMEUxMDAzQTQwOUY5MjYzREEwMEUwCis6MTBFMTcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMDgwMTBFMDAxMzIwMDY0Cis6MTBFMTgwMDA4RjgwMDMyMDAwRDgwODMwMDE4QzAwMDNFMTAyQzgwNDBFCis6MTBFMTkwMDAzRTAwMEM4MDBCMjEwMEM4MDA3ODAwMEY4NjAzMEEwMEE3Cis6MTBFMUEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4RTQwMkI4MjdGCis6MTBFMUIwMDAwQkEwMDIzQTAwOEU4MDIzODIwOEUyMDIyODEwOEEwMDE3Cis6MTBFMUMwMDAyRjk4MjhBMDEyMjgwMDhFMjAyRTgwNEJFNDAyMEEwMEVGCis6MTBFMUQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDJBMjQwMjA4MDAyCis6MTBFMUUwMDAwQkIwMDI0RTQwOTNDMEEwMjAwODM2MDI4QzAwOTMwMDcyCis6MTBFMUYwMDAyQ0UyMDgzMDA2NEMxMjkzMDgyOEMwMEJCMDAyMEEwMDJCCis6MTBFMjAwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDMDg4MjQwMjk0MENFCis6MTBFMjEwMDAwQjcwMDI1RTA4ODQwODIzNDAwODcwMDYxQzgwODcwMDhCCis6MTBFMjIwMDAyRDIwMDg3OTEyNUMwMDk0MDAyREMwMEIzMDQyMjgwMDhDCis6MTBFMjMwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODNFMDBFNDgwMzFBMTdBCis6MTBFMjQwMDAwRjU4MTM3NjAwRDA4MDMxQzAwQzM4MDNCRTgwRDc4MUMwCis6MTBFMjUwMDAzRjIwOEM3OTAzN0YwMUQ2ODAzOUU4NEY2ODAzMkEwMDdDCis6MTBFMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREJFMDBGQTAwM0UwMDkzCis6MTBFMjcwMDA4Rjk2MEJBNDAwRUEwMDNDQzAwRjkwMDNBQzIwRkI0MDNCCis6MTBFMjgwMDAyRTAwMEZCMjAzQURBMEVBMDAzRUMwMEZBMDFCQzIwNEQ3Cis6MTBFMjkwMDA2MDAwMDAwMDAwMDAwMDAwNDAwNUZFMDhERTgxMzNBNDlECis6MTBFMkEwMDAwRUZDMTMzRTAwRkM4MDEzMjAwQzY4MDMzRTIwRkZDOEM4Cis6MTBFMkIwMDAzRjYwMURGODAzN0UwMEM3ODAzM0UyMENEODAzMTAwMEQ2Cis6MTBFMkMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDA4NjQxMzFDNENECis6MTBFMkQwMDAwODc5NDI5QzAwQkMxMDIxNDA4NTM1MDM1QzAwQjcwMEUyCis6MTBFMkUwMDAyREMwMDg3MjAyMkMwMEE3MDEzN0MwMDg1MTQyMkEwMDM1Cis6MTBFMkYwMDA2MDAwMDAwMDAwMDAwMDAwMTAwMDhDNDA4MjAwMjQ4MUJCCis6MTBFMzAwMDAwOEQ4MDIxNDIwQjUwMDIwNDAwOTYwMDIxQzQwQjcwMDY0Cis6MTBFMzEwMDAyQzQwMEIzMDIyREMwMDk3MDAyMUM0MDg0MDAyNDQwMDRFCis6MTBFMzIwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNEVDMDA5MjA2MjA5MDI1Cis6MTBFMzMwMDAzODE1MDI4NjAwQjgwMDYwNTAwOTMwMDI0RTAxQkIwMDVCCis6MTBFMzQwMDAyRTQwMEIzMDAyQ0UyMEIzMDAyNEYwNDgwMjBBNTgwNEJECis6MTBFMzUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBDQTAwQTY5NDEwCis6MTBFMzYwMDAyQzkwMDMyRTAwRkIwNUIyODUwRDkwMDMzRjkwRkYwMDFCCis6MTBFMzcwMDA3RTgwMUZGMDQzRkMyMTlBMDAzM0M4M0NCMjAzNkEwNDNDCis6MTBFMzgwMDA2MDAwMDAwMDAwMDAwMDAwOTAwMEVDMDJFQTQwM0Q4MEM4Cis6MTBFMzkwMDAwRjEwOTNFRDAwRkI0MDNFOTA4RjMwMDNFQzgwRkIwMEFDCis6MTBFM0EwMDAzRTkxMUNCMDAzMkMxMEU4MDAzRUM4MUY5MDAzQTUxMDNFCis6MTBFM0IwMDAzMDAwMDAwMDAwMDAwMDAwODAxMEZDMDJFNDAwNzNBMEE4Cis6MTBFM0MwMDAwQ0ZDMDM3QzAyRkYxMDEzQzQxQ0MwMDMzQzAwRkYwMEM0Cis6MTBFM0QwMDAzN0UwMERGMDAzRkMwMEVEODAzMUMwMEMzMjYzMjAwNDA3Cis6MTBFM0UwMDAzMDAwMDAwMDAwMDAwMDAwODQwMDZDMDA4QUMwMjJCMUYwCis6MTBFM0YwMDA4QUI4NDM0QTEwREIyMDIwRjAwQTk0MDM2QzAwQkIwNzY0Cis6MTBFNDAwMDAyMkI4MDhCMDAyRUMxMUU4QzBCMkMwMkE5MjFBMjAwMDZCCis6MTBFNDEwMDAxMDAwMDAwMDAwMDAwMDAwODAwMTJDMDBBQTgwMjI5ODVCCis6MTBFNDIwMDAwODkwMDIyRjAzQkIwMTJBODMwOEIyNEUyQzA0QUIwMkQyCis6MTBFNDMwMDAyMkM0MjhCMDIyRUMwOUIzNTA2MkMwMDhCMDAyMjAwMDA4Cis6MTBFNDQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDE4MzAwNjA4MDEwCis6MTBFNDUwMDAwODEyMEE0NDAwOTMwMDJBODA0QTMwMDIwQzAwQjMwMERDCis6MTBFNDYwMDA2MEMwMDgzMDAyQ0MwMEIzMDI2MEMwMDgwMDQ2MDIwMTYwCis6MTBFNDcwMDAwMDAwMDAwMDAwMDAwMDAwODAwRDZDMDBFODAyMjI4MDE3Cis6MTBFNDgwMDAyQ0YyNDMyQzAwRkIwMEJBQzAwOEE1MDIzQzAwRUYwMEIwCis6MTBFNDkwMDAzNkMwNERGMDEzRkQ1MUZCMDAzMkMwMENCMDAzMjAwMTFCCis6MTBFNEEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDA3RTA0M0Y4MDIyCis6MTBFNEIwMDAwRjMxNDNGMDAyRkYwMDM3QzAwRkYwMDNGQzA4RkYwMEVDCis6MTBFNEMwMDAzRkMwMEZGMDAzRkMwMEVGMDAzQkMwMEZDMDAzRTgxNjk1Cis6MTBFNEQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYyNDBGQzgwM0YyNEY2Cis6MTBFNEUwMDAwREQ4NTNENjA0REYzMjNGQ0M0Q0MwNDNGQzAwREY2MDc0Cis6MTBFNEYwMDAzN0MwMEZDNDAzN0NEMERGMjAzM0Q4MERGODQzRjAwMEMxCis6MTBFNTAwMDA3MDAwMDAwMDAwMDAwMDAwODAxOEU4ODBCMDAxMkUwOEI0Cis6MTBFNTEwMDA4ODkwMDJFQzIwOEI3MDJGQ0MwOEIzODJGREUwQkY0MEM2Cis6MTBFNTIwMDAyMkQ4MEI5MzAyRkRDMEFGMTAyOEYwMDhCQzEyRjAwNEYzCis6MTBFNTMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0MDBCMDAwMkUwMTdCCis6MTBFNTQwMDAwQTEyODJFQzgwQjMwMDJDQzgwQTAwMzI4QzAwQTMzMDdGCis6MTBFNTUwMDAyMEQyMDkwMDAyOEM4MDgzMDAyOEQ4MEIzNDEyRjIwMUVCCis6MTBFNTYwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUFDMDFCODAyMkUwMEUxCis6MTBFNTcwMDAwQTkwMTJFQzEwOEIwMDJFQzAwQUIwMDBFQzAwQjMwMDIxCis6MTBFNTgwMDAyMkMxMEI5MjAyQ0MwMUFCMDAyQUMwMDJCMDAyRjAwNEZGCis6MTBFNTkwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUUwMDBGQTBDM0VDMEUyCis6MTBFNUEwMDAwRkEwMTNFRTIwREIwMDNFQzAyRTg4NTNFQzAwRkIwMEQyCis6MTBFNUIwMDBCMkMwOEZBQzgzQUMwOERCMDAxQUMwNEZCMDAzQzAwNEZDCis6MTBFNUMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI4MDBGRTAwM0ZDMDQ1Cis6MTBFNUQwMDAyREUwMDNGRTgwN0YwMDNGQzAwREQyMDNGQzAwQkYwMTkxCis6MTBFNUUwMDAzRUMwMERDODAzRkMwQ0ZGMDAzRkMwMDlGMDIzRjgwMDNCCis6MTBFNUYwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE0MDBGQTQwMzJDMTlBCis6MTBFNjAwMDAwRkEwMDMyOTA4REIwMDNFQzAwRTg1MDNFQzIwQ0IwMEUxCis6MTBFNjEwMDAzQUMwMEVBNDAzRUMwMEZCMDAzQUMyMEVCMDAzMTAwNDkzCis6MTBFNjIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCQTYwMjBDMEQ3Cis6MTBFNjMwMDAwQkEwMDIwODAwQUYwMDJGRDAwQkI1MDJGRTAyOEYwMDI2Cis6MTBFNjQwMDAyRkMwMEQ4MDBBM0MwMEI3MDAyM0MyMDVGMDIyMzYwMDFGCis6MTBFNjUwMDA0MDAwMDAwMDAwMDAwMDAwQzAwNDQwMDBCMTg4MjAwMDFECis6MTBFNjYwMDAwQjEwMDIwQzAwODMwMDJFQzgwQjA4MDY0RDQwODMwMERGCis6MTBFNjcwMDAyMEMwMDgzMDA2MEMwODkzMjAwQUUwNEEzMDAyMzgwMDE3Cis6MTBFNjgwMDA1MDAwMDAwMDAwMDAwMDAwMjAxMDVBMDBCNTkwMjEyMDJBCis6MTBFNjkwMDAwQjU4NDIzRTAwQTc4MDJERTAwQjY5MDJERTQwODc5MkI2Cis6MTBFNkEwMDAyREUwMDkxODAyOUUwMUI3ODAyOUUwMDM3MDAyM0UwMEE4Cis6MTBFNkIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODQ0MDBGMTAxMzAwMDY0Cis6MTBFNkMwMDA1RjE4MDMwQzEwODMwMDNDQzQwRTA0MDNFQzAwODMwMEFECis6MTBFNkQwMDAzMEM0MEMzMTAzOEMwMEYzMDAzOEM4MEUzMTAzMTIwMjMxCis6MTBFNkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxNUJDMDBGRDA0QkYwNDU1Cis6MTBFNkYwMDA0RjU4MDNGODA4RUYwODNGQzAwRkYwMDFGQzAwRkY0QzMzCis6MTBFNzAwMDAzRkMxMEZEMDAzM0MwMEY3MDAzN0MyMEQ3MjAzRDAwNkEzCis6MTBFNzEwMDA2MDAwMDAwMDAwMDAwMDAwMDgwNUUyMDBEQjAwMzJDMERECis6MTBFNzIwMDA0REE4MDMyQzA4RkIwMDdFQzg4RkIwMEI2RjQ1RUJDMkQxCis6MTBFNzMwMDAzNkMwMDdBMDAzRUYyMENCNTBCMkMwMEM3OTAzMkEwMEVCCis6MTBFNzQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxOTk4MDA4RjAwMjFDMEYwCis6MTBFNzUwMDAwQjYwMDM1QzAwMzcwMDJERDIwQjMwMDIwQ0E4ODcyNDFECis6MTBFNzYwMDAyMUQwMDk3MDAyREQ4ODg3MkEyM0U4MDg3MDAyMzIwNDZDCis6MTBFNzcwMDA2MDAwMDAwMDAwMDAwMDAwMjAwMEI2MDA5NzgwMjFFMDRCCis6MTBFNzgwMDAwQjY4MDIxRTAwQjc4MDJERTg4QjQ4ODIxRTgwQTM4NDkwCis6MTBFNzkwMDAyNUU4MEI2ODAyQ0UwMjg3ODAyMUUwMDg3QTAyMjAwMDdCCis6MTBFN0EwMDAyMDAwMDAwMDAwMDAwMDAwNjgwNENDMDg4MzgyMjBFMDA0Cis6MTBFN0IwMDA4QjJBMDI0ODQwQjMwMDJDQzAwQjMwODIwQzAwODMwMDJGCis6MTBFN0MwMDAwMEMxMDkzMTAyQ0MwMDgzMDAyMEMwMDgzMDBBMTIwNEM1Cis6MTBFN0QwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUU4MDBEQUEwMzJBOEQwCis6MTBFN0UwMDA4REE4MDMzQjAwRkEwMDNFODAwRkU0MDM2ODAwRUEwMkI0Cis6MTBFN0YwMDAzNjgwMEZFNDAzRTgwMENBMDAzMjgwMkNBMDAzM0EwNEZDCis6MTBFODAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMUEwMTBGODAwQkUyMEQ5Cis6MTBFODEwMDA4RkMxMDNFMDI0RjgwMDNFMTAwRjg0MDNFMDAwRjgwMUVDCis6MTBFODIwMDAzRTAwMEY4MDAzRTAwMEY4MDFCRTEwMEY4MDAzRDIwMDBECis6MTBFODMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEE0MDBGOTQwMzI0MDQxCis6MTBFODQwMDBDRjkwMDNFNDAwQzkwMDBFNTAwRjFBMDMyNjAwRjkwMDEwCis6MTBFODUwMDAzRTQwMEY5MDgxRTQwMEY5ODAzMjQwMEM5MDAzQzIwNEU2Cis6MTBFODYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDRCMTA0MjI0MDc1Cis6MTBFODcwMDAwQjkwMDJFNDAwQTkwMDJFNTMwQjkyMEEyNjQ4QjkwNDFCCis6MTBFODgwMDAyRTQwMEI5MDAyRTQwMEI5ODAwMjUwMDg5MDAyRTAwMDk0Cis6MTBFODkwMDAxMDAwMDAwMDAwMDAwMDAwMzgwNTI0MDBCRDAwMjM0MEU3Cis6MTBFOEEwMDAwQkQwMTJDNDAwODkwMjJFNDAwQjkwMjIyNDAwQjkwMDI0Cis6MTBFOEIwMDAyRTQwMEI5MDAyRTQwMEIxMjAyMDQwNjg5MDIyQzYwMDU4Cis6MTBFOEMwMDA0MDAwMDAwMDAwMDAwMDAwMjgxNDE0MDBCRjEyQTE0MDA2Cis6MTBFOEQwMDAwQjUwMDJDNDAwQTEyMDJDNDgwQjEyMDIwNDEwQjExMUVECis6MTBFOEUwMDAyQzQ4MEIxMzIyQzQwMEIxNDAyMDVBMDgxMDAyQzIwMTY4Cis6MTBFOEYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGODQwMzIxNDM0Cis6MTBFOTAwMDAwRjQ1MDNFMTQwQzg1MDNFMTU4Rjg1MDMyMUU4Rjg2OEE0Cis6MTBFOTEwMDAzRTE0MEY4NDAzRTFFMEYwMjgzMkE4Q0M4MDIzRUUwM0ZDCis6MTBFOTIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxNUM0MTBGOTIwM0U0MDdGCis6MTBFOTMwMDAwRjkwMDNGNDAwRjkxMDNFNDQwRkQxMDNFNDAwRjkyMEQ2Cis6MTBFOTQwMDAzRTQ0MEZEMzAzRTQwMEY5MDBCRTQwMEY5NDAzRTYwNkYzCis6MTBFOTUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUU0MDBGRDEwMzM0MEI2Cis6MTBFOTYwMDAwQ0QwMDMyNDAwRDkwMDNGNDA0Q0QwMDNGNjAwRkQ5MEFBCis6MTBFOTcwMDAzQTQwMEM5MDAzRTZBMEZEQTgzNzY4MENEODgzMjYwMDI3Cis6MTBFOTgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDhDOEEwMjIwMDVECis6MTBFOTkwMDAwODgwMDIyMDAwODgwMDJFMDAwQzgwMTJFMDAwQjg4MDYxCis6MTBFOUEwMDAyMjAwMEQwQTAyRTM4MEIwQzAyMDM0MDg4NDAzNEUwNDI0Cis6MTBFOUIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwMDg0MDlBMTAwMjA0MTUwCis6MTBFOUMwMDAwODkwMDIyNDAwOTEwMDJDNDAwODEwMDJDNTAwQjE2MDlDCis6MTBFOUQwMDAyMDQwMDgxMEEyQzQyMEIxMjgyNDRBMDgxMDAyNTIwMTg1Cis6MTBFOUUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNEE0MDE4MTAwQTI0MDgzCis6MTBFOUYwMDBBODkwMDAyNTQwODkwMTJDNDAwODk0MDJFNDAwQjkwMDQ5Cis6MTBFQTAwMDAyQTQwMDk5MDAyRTQwMUI5MDQyMjQxNDg5MDAyNDYwNEQ4Cis6MTBFQTEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNEE1MjBFOTAwMzI0MEMyCis6MTBFQTIwMDA0QzEwMEIyNjAwRDkwMDNFNDAyQzk4MDNFNDAwRjkwMDVFCis6MTBFQTMwMDBCMjQwMEM5MDAzRTQwMEY5MDAzNjQwMkM5MDAzNjgwNEM3Cis6MTBFQTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgwMUE0MDBFOTAwM0U0MDAyCis6MTBFQTUwMDAwRjkwMDNFNjAwRjkwMDNFNDAwRTlBMDNFNDAwRjkwMDJGCis6MTBFQTYwMDAzNjQwMEY5MDAzRTQwMEY5MDAzQzQwMEY5MDAzREEwMEI5Cis6MTBFQTcwMDA2MDAwMDAwMDAwMDAwMDAwMDgxMEExMDBGODAwMzIwMDUzCis6MTBFQTgwMDAwRjgwMTNBMDAwQzgwMDMyMDQ4QzgwMDNBMEMwRjgwMERGCis6MTBFQTkwMDAzQTAwMEY4MDAzMjAwMEMwMDkzMjAwNEM4MDAxMEEwNEI0Cis6MTBFQUEwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDBCRTAwMjA4MDkzCis6MTBFQUIwMDAwQkUwMDI4ODAwQUEwMDAzQTAwQUU2MDJGQTAwOEEwMDFFCis6MTBFQUMwMDAzMjgwMEJBMDAyMjgwMDhFODBBMzgwMjgyMDAyOEEwMEJBCis6MTBFQUQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTZDMDBCMzQ4MjA0MDAyCis6MTBFQUUwMDAwQjEwMDIwQzAwODMwMDIwQzAwODM0ODI4RTA0OTkwMEIxCis6MTBFQUYwMDAwQUMwMUIzMDAyMEMwMjkwNTAyMDYwMDgzMDAyMEEwMDRECis6MTBFQjAwMDA1MDAwMDAwMDAwMDAwMDAwODAxMTFDODBCRDBBMjE0ODU4Cis6MTBFQjEwMDAwQjUyMDI5QzQwQTNBMDIwODAwQTYwMDJDRTAwODUyMEY4Cis6MTBFQjIwMDAyMUM0MEI3QTA2MUU4MDk1MjAyMTkwMDg3MDAyMjgwMENGCis6MTBFQjMwMDA0MDAwMDAwMDAwMDAwMDAwODgwODFFODBGNzgwQjE3OUM2Cis6MTBFQjQwMDAwRkRCMDIzRTIwQzdBMEIxNjBDQzc4MTM5NjAwRjFGMDM1Cis6MTBFQjUwMDAzOUUyMEY3QjEzMEYwMEQ0QTAzMTYwMkM3MDAzMkEwMjFFCis6MTBFQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNUFDMDBGNzAwM0U0MDY3Cis6MTBFQjcwMDAwRjkwMDNFRDgwRkIxMDNFNDAwQkIwMjNFQzAwRjkyMDFBCis6MTBFQjgwMDAzQUQ4MEZCMDBCRUQ4MUVEMTAzRTgwMEYzMDAzQzIwNjc2Cis6MTBFQjkwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNEJFMjBFRTgwMzM2MDMyCis6MTBFQkEwMDAwQ0Q4ODMxRTAwNkY4MDMzRTAwRkI4MTEzMjA0RjU4MDVCCis6MTBFQkIwMDAzM0UwMEZGODgzMkY0MEZFODBCM0UwMENGODAzMTAwMDIxCis6MTBFQkMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxODlDMDBCQzAwQTE0NEQ4Cis6MTBFQkQwMDAwODEwMDM1QzAwOEYwMDIxODAwQkVBMjIxQzgwQjUwMTI1Cis6MTBFQkUwMDAyMUMwMEJGMDAyMUU4MEJFMDAyMzgwMkE3MDAyMkEwNDdFCis6MTBFQkYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMjBBNzAwMjM0MEVGCis6MTBFQzAwMDAwQjUwMEEzQzAwQTcwMDI1QzAwQTQzMDIxMDAwQjUwMEMzCis6MTBFQzEwMDAyMUMwMEI3MDgyMUM4MEI0MDAyMUMwMDg3MDAyMDQwMDY3Cis6MTBFQzIwMDAyMDAwMDAwMDAwMDAwMDAwMjAwNDhFMDRCMzAwMjI0MEY5Cis6MTBFQzMwMDAwOTE0MDI0QzAwODMwMDIwQzAwQjI0ODIwNDAwQjEwMEEwCis6MTBFQzQwMDAyMEMwOEIzQTAyMkMwMUIwMDAyMDgwMEEzMDAyMUEwNDQ2Cis6MTBFQzUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNTlFMDBFQjA0MzM0MEM3Cis6MTBFQzYwMDAyRERDMDMxRDYwRUYwMDMyMDBDRjlBMDMyODAwRkQwMDY5Cis6MTBFQzcwMDAzM0MxOEJGQzBCM0MwMEZDMDAzMjgwMEM5MDAzMkEwNDU3Cis6MTBFQzgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEFDMTBGODAwM0U0MDcyCis6MTBFQzkwMDAwRTk4MjNBQzA0RkIwMDNDMDAwRjg0MjBFRDAwRjkwMDJCCis6MTBFQ0EwMDAzRUMwNEZCMDAzRUMwMEZEMDAzRTgwMEY5MDAzRTQwMDM3Cis6MTBFQ0IwMDAzMDAwMDAwMDAwMDAwMDAwMjExMEZDMDBDRjgwMzM0MDM1Cis6MTBFQ0MwMDAwQ0QwODNGQzAwRUYwMDNGNDAwQ0YxNDEzMDEwQ0QwMDMwCis6MTBFQ0QwMDAzRkMwMDA3MDEzM0MwMEU0MDBCMUQwMEMxMDAzMjAwNENFCis6MTBFQ0UwMDAzMDAwMDAwMDAwMDAwMDAwQTEwNDJDMDA4QUU0MkE0MDRCCis6MTBFQ0YwMDAyODkwMDJFQzAwOEIwMDNFMDIwQTgwMDIyQzgyODkwNERDCis6MTBFRDAwMDAyRUMxMEFCMDBBMkMwMDg5MDIyMkYyMkE5ODAyMjAwMEExCis6MTBFRDEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDI4MDE0MkE0MDMyCis6MTBFRDIwMDAwODkwMDJFQzA4QUIwNDJFODQwODEwODI4MDEwODkwMzNFCis6MTBFRDMwMDAyQ0MwNEFCMDIyMkMwMEFBMDAyMjgwMDg5MTAyMjAwMDk4Cis6MTBFRDQwMDA0MDAwMDAwMDAwMDAwMDAwMDgxNDJDMDA4MDAwMjg0MDUzCis6MTBFRDUwMDAwODExMDJFQzAwODMwMDJDODEwQTAwNUE4ODAwMDEwMDhGCis6MTBFRDYwMDAyQ0MwMEEzMDAyMEMwMDgyMDAyMDgwMEExMDAyMDIwMTJFCis6MTBFRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDOTAwM0E0MEQ3Cis6MTBFRDgwMDAwQ0Q0MDNGQzAwRUIwMDNFNDAwQzkyMDNBMDAwNEQwMEFECis6MTBFRDkwMDAzRkMwMEVGMDMzM0M4MEU4MDAzMkMwMEM5MDAzMjAwM0VCCis6MTBFREEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxMUZDMDBGQzAwM0Q0MEVECis6MTBFREIwMDAwRjUwMDNGQzAyM0YwNDNCMDE0RkM0MTM3MDAwRkQwMEUxCis6MTBFREMwMDAzRkMwMUZGMDAxRkM0MEZDMDAzRkMwMEZEMDEzRTgwNjFECis6MTBFREQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUY4RTBGRjgwM0RDMEFBCis6MTBFREUwMDAwREYzODJGMDgwRkY0MDMxQ0IwQ0YzMDNGRDA0RUZDMTQzCis6MTBFREYwMDAzM0UwMEY3OTAzRkUwMENGNDIzM0YwNENGODAzMzAwMENDCis6MTBFRTAwMDA3MDAwMDAwMDAwMDAwMDAwRTAxMEU5MDhCOTgxMkZGMDU4Cis6MTBFRTEwMDAwOEY0NTJFOTIwQkY0MDIzRjAwQUYzMDJGRDA4OEIwMEZBCis6MTBFRTIwMDAzNkUwMEI4MDIyRTg4MDhGNDAyMkMwMDhCMDgyMzAwNDk4Cis6MTBFRTMwMDAzMDAwMDAwMDAwMDAwMDAwQzgwNUNDMDBCMTgwMkNDNUU3Cis6MTBFRTQwMDAwOTMyNDJDOEMwQjMzMTIwQzEwODMyMDJDQ0Q0QkIyMDQxCis6MTBFRTUwMDA2OEMwMEIzMDAyQ0MyMDkzNjAyMDg4MDgzMjAyMzIwMTU3Cis6MTBFRTYwMDA3MDAwMDAwMDAwMDAwMDAwRTAxNUEwMDBCQjgwMkVDMDc0Cis6MTBFRTcwMDAwOEIwMDJFQTAwQkIwMDYyQzEwQUIwMDJDQzAwQUIwMERECis6MTBFRTgwMDAyRUMwMEJBMDAwRTgwMDgzMDAyMkMxMDgzMDAyMzAwNDJECis6MTBFRTkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNUU4OTBGQjgwM0VDMDBDCis6MTBFRUEwMDAwREIwMDNFMjEwRkIwMDMyQzA0Q0IwMTNFQzAwRTk1NDhCCis6MTBFRUIwMDAzQUMwMEZCMDAzRTYwMENCMDBCMjQwMENCMDAzMDQwNDJDCis6MTBFRUMwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI4MDBGRjAwM0ZDMDNCCis6MTBFRUQwMDA4RkYwMDNGMDAwRjcwMkJGQzEwRkYwMjNGQzAwREYwNjQ0Cis6MTBFRUUwMDAzN0MwOEZDOTA3RkE5MkZGMDQzRjUwMkZGMDAzRjgwMDk0Cis6MTBFRUYwMDA2MDAwMDAwMDAwMDAwMDAwNTAxMEFDMDBDOTAwM0VDMkRECis6MTBFRjAwMDAwRUIwMjNFNDAwRUIwMDNBQzgwRUIwMDNFQzAwRjkwMEE5Cis6MTBFRjEwMDAzRUMwMEZCNDAzQTQwMEZCMDAzRTgwMEZCMDgzRDAwNEJBCis6MTBFRjIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTI4MDA4Qjc0MkRDMEUwCis6MTBFRjMwMDAwOEYwMDJFNDAwOEYwMDIxRjAwOEYwMDJGQzEwRDMwMDdBCis6MTBFRjQwMDAyRUMwMEI5MDEyMkMwMEVGMDAyRUMwMEJCNjAyRjYwMDY0Cis6MTBFRjUwMDA0MDAwMDAwMDAwMDAwMDAwRTgwNTQ4MDBBMzAwMkNDNEE5Cis6MTBFRjYwMDAwQTMwMDJDMDAwQTMwMDY4RjAwQTMwMTJDQzA0QTIwMEVDCis6MTBFRjcwMDAyQ0MwMEIzMDAyRUMwMEIzMDEyRUMwMEIzNDAyRjgwMEExCis6MTBFRjgwMDA1MDAwMDAwMDAwMDAwMDAwQjAwMTBDMDA4NzgwMkRFODU4Cis6MTBFRjkwMDAwODc4NDJEQTAwODc4MDI1RTAwODc5MDJDRTAwOTY4MDYyCis6MTBFRkEwMDAyREUwMEJEOTAyREUwMEE3ODAyREUwMEI3ODAyRkMwMERCCis6MTBFRkIwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDNDBFMzEwM0NDMDg2Cis6MTBFRkMwMDAwQTM4MDNFODAwRUIwMDM4QzIwQTMwMDNDQzAwRTM0MDAzCis6MTBFRkQwMDAzQ0MwMEYzNDAzQ0QwMEYzMjAzQzg4MEYzMDAzRDIwMjM1Cis6MTBFRkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREI0ODBGRjA0M0ZDODg2Cis6MTBFRkYwMDAwRkYwODNGODQwRkYxODNCQzAwRkY0ODNGQzAwRUUwMkQzCis6MTBGMDAwMDAzRkMwMEZGMDAzM0MwMEVGMDgzRjgwMEZGMDEzRDAwNjI1Cis6MTBGMDEwMDA2MDAwMDAwMDAwMDAwMDAwODgwNUU4MDBDQjAwM0VGMjIwCis6MTBGMDIwMDA0REIyMTNFODA0Q0IwMTMyRjg0REIyMTM2RDIwRjgwMDU1Cis6MTBGMDMwMDAzRUMwMEYzMDAzMjQwMEZCMDAzRTQwOEZCODAzMkEwMDdGCis6MTBGMDQwMDA3MDAwMDAwMDAwMDAwMDAwQzgxMThDMDA4NjAwMkNDMDc5Cis6MTBGMDUwMDAwODczMDJEODEyODczMDIwQ0IwOEYyMDIxRDA1QjUwMEQ0Cis6MTBGMDYwMDAyREMwMEI2MDAzNTAxMEI3MDkyREMwMEJGMDAyMzIwNDA1Cis6MTBGMDcwMDA2MDAwMDAwMDAwMDAwMDAwODAwMDlFMDA4NzgwMkRFNEZBCis6MTBGMDgwMDAwOTdBMDJDRTAxODc4MDIxRUMwOTc4MDI1RTgwQjdDMDQwCis6MTBGMDkwMDAyREUwMEJGODAyMUUwMEI3QTAyRDYwMEI3ODAyMjAwMEI3Cis6MTBGMEEwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEVFMDA4MjgwMkNDMDA4Cis6MTBGMEIwMDAwODMwMDJFQzAwODMwMEEwQzAwODMwMDIwQzAwQjM4MENFCis6MTBGMEMwMDAyQ0MxMEIzMDAyNEUwMEIzMDAyQ0YxMEIzMDBBMTIwNDlECis6MTBGMEQwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJBODBDNjAwM0U4MDQ1Cis6MTBGMEUwMDAwREEwMDNGODQwQ0EwMDMyODAwREEwMTM2ODAwRkUwMjk0Cis6MTBGMEYwMDA3RTgwMEZFRDgzMzkxMEZBMDAzRjhDMEZBMDAzM0EwNDk1Cis6MTBGMTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMTJGODkwM0UwMDlGCis6MTBGMTEwMDAwRjgwMDNFMDAwRjgwNTNFMDAwRTAwMDNFMDAwRjg4MEQ5Cis6MTBGMTIwMDAzRTAwMEY4MDAzRTA2MEY4MDA3RTAwMEY4MDAzRDIwMEY1Cis6MTBGMTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBDOTgwMzI2NEM0Cis6MTBGMTQwMDAwRjkwNDNFNDA2QzEwNDNBNDAwRjkwMDNFNDAwRTkwMDQ1Cis6MTBGMTUwMDAzMjQwMEY5MDAzMjQwMEMxMDEzMjQwMEM5MDAzQzIwNERFCis6MTBGMTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OUMwMjI0MERDCis6MTBGMTcwMDAwQjkwMDIyNDAwODkwMDIyNTAxQjkwMjIyNDAwODEwMDYxCis6MTBGMTgwMDAyMjQwMEI5MDIyMjQwOEM5MDAyMDQwMDg5NDAyRTAwMDhECis6MTBGMTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA5OTIwMjI0MDAzCis6MTBGMUEwMDAwQjEwMDJBNDAwODkwMDJBNTgwQjkwMDI4NDAwQTkwMEM5Cis6MTBGMUIwMDAyMjQwMEIxMDBBMDQwMDk5MDIyMkMxMDg5MDgyQzYwMDY2Cis6MTBGMUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDA5MTAyQTBDOEY0Cis6MTBGMUQwMDAwQjEyMDIwNDgwODEyMjIwNDg5QjEyMDIwNDkwODkwMUI0Cis6MTBGMUUwMDAyMDQwMEIxMDAyMDQwMjgxMjIyMjQwMDgxMDAyQzIwMUJBCis6MTBGMUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDJEQTAxMzIwMTk5Cis6MTBGMjAwMDAwRjg1MDNBMTQwQzA1MDNBMDE4Qjg1MjNBMTQ0RTg1MEVCCis6MTBGMjEwMDBCMjAwMEY4NTAzMjE0OEQ4NTEzMjE0MkM4NTAzRUUwMzI4Cis6MTBGMjIwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY1MDBFRDAyM0U0NDczCis6MTBGMjMwMDAwRjkxMDNGNDQwRjkxMDNFNDQwRjkxMDNFNDQwRkQwMEE4Cis6MTBGMjQwMDAzRTQwMEZEMDAzRjQwMEU5MTBCRjQwMEY5MDAzNjYwNjY0Cis6MTBGMjUwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU2MjFDNTAwMzM2OEJBCis6MTBGMjYwMDAwRjlBMDM2Rjg4QzlDMDMzNjgwQzlFMDMyNzgwRDk0MDZBCis6MTBGMjcwMDAzRTQwMEY5MDAzQzUxMEQ5RTgzNjUwMENEMDAzRTYwMDhECis6MTBGMjgwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDg4ODAwODIwMEQzCis6MTBGMjkwMDAwQjhFODJFQkM4ODhFMDIyMDAyODg4NDJBMjgwOEE4MEY4Cis6MTBGMkEwMDAyMjAwMEJBQTAyRTIwMDg4QzAyMkE5MDg4QTAzOEUwNDY5Cis6MTBGMkIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwNUM0MDA4MTAwMjBEMDlDCis6MTBGMkMwMDAwQjExMzI4NDg0ODE2MDYwNTAwODE2MDYwNTAwOTEyMDdECis6MTBGMkQwMDAyMDQwMEIxMDgyRTQwOTkxMjAyNDQwMDgxMEMyRDIwMTgyCis6MTBGMkUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDQ4OTA0MjI0MEVBCis6MTBGMkYwMDAwQjkwMDJDNDAwQTkwMDIyNDEwMDkwMDJBNDAwODEwMEVBCis6MTBGMzAwMDAyMjQwMEI5MjIyRTU4MDk5MDEyMjYxMDg5MDAyODYwNDM2Cis6MTBGMzEwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNEE1ODI4MTkwMzI0MDJGCis6MTBGMzIwMDAwRjkwMTM2NzAyQzkwMDMyNDAwQzkwMjMyNDA0RDlDMDA3Cis6MTBGMzMwMDBCMjQwMEY5QzAzRTYwMEQ5MDAzNjUwMEM5MDAzRTgwNDVECis6MTBGMzQwMDA3MDAwMDAwMDAwMDAwMDAwNjgwMEE2ODBGOTAwM0U0MDQ4Cis6MTBGMzUwMDAwRjkwMDNFNzAwRDkwMEJDNDIwRjkwNTNFNDA0RjkxMDZBCis6MTBGMzYwMDAzRTQwMEY5ODAzRTYwNEUxMDAzRTQwMkY5MDAzREEwMDkwCis6MTBGMzcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMDgxMTA0ODEwMzIwOEQyCis6MTBGMzgwMDAwQzgwMEYyMTAyQzgwMDNBMDQwRjgwMDc2MDAwRjg0MDhCCis6MTBGMzkwMDBCMjAwMEY4NDBCMjAwMEQ4MDAzNjEwMEM4MDAzQ0EwNDgyCis6MTBGM0EwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNDI4MDQ4RTgwMjM4MDM0Cis6MTBGM0IwMDAwOEEwNDIyODAwOEEwMDIzQTA0QkEwMDJFODAwQkEwMDVGCis6MTBGM0MwMDA3NjgwMEJBMDAyMDgwMDhBMDAzMjgwMDhFMDAzQ0EwMEExCis6MTBGM0QwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA4MjAwMjBEMDAyCis6MTBGM0UwMDAwODMwMDIwQzAwOUIwMDI4QzAxQUIwMDI2QzAwQjMwMjY3Cis6MTBGM0YwMDAyMEMwMEIzMDAyMEMwMEEzMDAyMkMwMjgzNDgyQ0EwMEI3Cis6MTBGNDAwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFDMDA4NzAwMjBFMEU4Cis6MTBGNDEwMDAwODc4MDIwQzAwOTcyMDI1QzAwQjcxMDJEQzgxQjcyMDEwCis6MTBGNDIwMDAyMUMwMEI3QTQyM0M4MDg3MjAyMUMwMDg3MDAyRTgwMDhFCis6MTBGNDMwMDA0MDAwMDAwMDAwMDAwMDAwMjgwODBFODJDNzgwQjFFMEY0Cis6MTBGNDQwMDAyQ0ZBMDYxRTA4RDNCMTM5NjA0RTc4MTI1RUEwRkZGMDg4Cis6MTBGNDUwMDAyMUUwMEZGODAzMUYwOEUzQTAzM0UwMEM2ODAzRUEwMjgxCis6MTBGNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDNDBGQjAwM0VDMDkyCis6MTBGNDcwMDAwRkIyMDNFREE4RUIxMDNBODAwRkIwQzNFQzQwRkIwMEQ1Cis6MTBGNDgwMDAzRUMwMEZCMDgzRUM4MEVCNzBCRUM0MEZCMDAzODIwNkE5Cis6MTBGNDkwMDA2MDAwMDAwMDAwMDAwMDAwNDAwNUZFMDBDRTgwQjM2MDY4Cis6MTBGNEEwMDAwRkZDODM3RTIwRUZCMDNCRTAwRkI4MDMzRTAwQ0Y4MTFFCis6MTBGNEIwMDAzRkUwOEZGODgzRUY0MEZGQzIzM0UxMENGODAzRDAwMDQ4Cis6MTBGNEMwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDODI4NzE4MjE4MEI1Cis6MTBGNEQwMDAwQjMwMDIxQzYwRDcxMDIxRDAwQjdCMDIzQzAwRDcwMDAwCis6MTBGNEUwMDAyREMwMEI3MDAyREUwMEJGMDBBM0M0MDg3MDAzQUEwNDg1Cis6MTBGNEYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMEJDMTE4NzAwMjFDMDc3Cis6MTBGNTAwMDAwQjMwMDIxQzAwOTMyMDY5QzAwQjcwMDIxQzAwODcwMEE2Cis6MTBGNTEwMDAyREMwMEI3MTAyREMyMEI3MTAyMUMwMDg2MDAyODQwMEVFCis6MTBGNTIwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNENEMDA4MzQwMjBDMEQ3Cis6MTBGNTMwMDA0QjMwMDIwQzAxODMwMDIwQzAwQjMwMDIwQzAwOTM4MDgyCis6MTBGNTQwMDAyQ0MwMEIzMDAyQ0MwMUIzMDAyMEMwMDgzMDIyOTgwNDNDCis6MTBGNTUwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJGMjBDQUMwMzI4MEEzCis6MTBGNTYwMDAwRkYwMDMzRTAwOUYwMDNBODAwRkYwMEIzQzAwQ0Y5ODU1Cis6MTBGNTcwMDAzRUMwMEZGNjAzRkYwMEZGMDAzMUUwMkNCMDAzQUUwNEU1Cis6MTBGNTgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMENDODBGQjAwM0U1MEM2Cis6MTBGNTkwMDAwRkIwMDNBQzAyRkIwMDdFNTAwRkIwMDNFQzAwRkIwMDg5Cis6MTBGNUEwMDAzRUMwMEZCMjAzRUMyMEYzMDAzRUM2MEY5MDAzQTAwMDU0Cis6MTBGNUIwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDJDRjk4NzNDODZBCis6MTBGNUMwMDAwRjcwMDMzQzAwRkYwMDMzMjgwRkIwMDIxQzAwNEYwMEY3Cis6MTBGNUQwMDAzRkMwMEZGMDAzRkMwMEZGMDEzM0MwMENFNDAzRTQwNDYwCis6MTBGNUUwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDZDMDA4MzgwQTJGODVFCis6MTBGNUYwMDAwQkIwNDIyQzAwQkIwMDMyMTAwRkIwMDM2QzA0QUIwMDA4Cis6MTBGNjAwMDAyRUMwMEJCMDEyRUMwNEVCMDAyMkMwNEE5NDgyRTAwMDQyCis6MTBGNjEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTZDMDA4QTAwMjIwMDNECis6MTBGNjIwMDAwQkIwMDIyQzAwQjMwMEEyQzAwQjMwMDJBQzAwQUIwNDQ0Cis6MTBGNjMwMDAyRUMwMEJCMDQyRUMwMEJCMDAyMkMwMDhCMDIyRTAwMDlDCis6MTBGNjQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwMDBDMDA4QjAxMjAwMEJBCis6MTBGNjUwMDAwQjMwMDYwQzAwQjMwMDIwQzAwQTMyMEFDQzAwQTMwMDE1Cis6MTBGNjYwMDAyQ0MwMEIzMDAyQ0MwMEEzMDAyMkMwNEEwMDEyQzIwMTAxCis6MTBGNjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODZDMDA4QjA0MjJDMEE1Cis6MTBGNjgwMDAwRkYxMDMxQzAwRkYwNDMyQzAwQkYyMDNCQzAwRUYwMEJCCis6MTBGNjkwMDAzRUMwMDdGMDAzRkM4MEZGMDBCMkMwMENBMDAzRTAwM0YzCis6MTBGNkEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOURDMDBGNTAwM0ZDMDgxCis6MTBGNkIwMDAwRkYwMDNGQzAxRkYwMjNCQzAwRkYxMDM3QzAwRkYwMEQxCis6MTBGNkMwMDAzRkMwMEZGMDEzRkM0MEVGMDAzRkMwMEZDMDAzRTgwNjNGCis6MTBGNkQwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUYyNDBDQzgwMzcyMDEwCis6MTBGNkUwMDAwQ0Q4MDNCMDQ0RkMwODNGMEUwRkMxMDNGQzAwQ0M5NEJGCis6MTBGNkYwMDAzRjBBMkVDNDAzN0Q4MENGMTAzRkMwMEZDMDgzMzAwMDZGCis6MTBGNzAwMDA3MDAwMDAwMDAwMDAwMDAwODAwOEUwOTA4ODAyMjI4MTY0Cis6MTBGNzEwMDAwODkyMTNBNDQwM0I2MDIyMTgwQjgxMDJGQ0Q0ODEwMEE0Cis6MTBGNzIwMDAzQUIwMEE5NDAyM0Q0MEFGNjMyRkRGMEI5ODAwMjAwNEVCCis6MTBGNzMwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUUwMDA4ODAwMjA0MDQ0Cis6MTBGNzQwMDA4ODMwODJDMDAwQjAwODI4ODAwQTEwMDJDQzIwODAwMUQ2Cis6MTBGNzUwMDAyQzQwMUIwNjAyOEM5MDkzNjA2OEMwNEEwMDQyMjIwMTM0Cis6MTBGNzYwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUEwMDI4ODAwMjJDMDU4Cis6MTBGNzcwMDAwOEIwMDJFNDIwQkI4ODI2OTgwQjgwNDJDQzE4OEEwMDhGCis6MTBGNzgwMDAyRUMyMUI5ODAyQUMwMEFCMDAyRUMwMEI5ODgyMzAwNDM2Cis6MTBGNzkwMDA2MDAwMDAwMDAwMDAwMDAwMDAxMUUzQzBDQjAyMzIwMDU2Cis6MTBGN0EwMDAyQzgwMDNBRTA4QjkwMDNFNzAwRkI5MDNFQzAyNDg0ODQ0Cis6MTBGN0IwMDAzQ0MwMEY4QzkzRUMwMERCMDAxQUMwMEVBQzAzMTAwNEFECis6MTBGN0MwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUIyMDBGRjAwQkI4MEZDCis6MTBGN0QwMDAwRkMwNDNCNjQwQkQwMDNCNjAwRkU4MDNGQzAwRkY5NDQwCis6MTBGN0UwMDAzQkU0MEU2MDBGNkMwOEVGMDEzRkMwMEY2MDAzRjgwMEIwCis6MTBGN0YwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEExMDBGQjAwM0U2MDFGCis6MTBGODAwMDAwRkEwMDNFRDAwRjk0MDNBMDAwRjkwMDNFQzAyQzkwNDg5Cis6MTBGODEwMDAzMkQwMEY5MDAzMkMwOERCMDBCNkMwMERCNDAzRDAwNDI3Cis6MTBGODIwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTAwMDBCMzg5MkVFMEExCis6MTBGODMwMDAwQkE0MDNBNDAxQjkwMDJFMDEwQjkwNDJGQzEwODk1MEM3Cis6MTBGODQwMDBBMkMwOERCNDAyM0M0NDhGMDAyM0MwMDhCMDAyRjIwMDc1Cis6MTBGODUwMDA0MDAwMDAwMDAwMDAwMDAwQzAwNDBDMDBCMDgwMkUwMDNBCis6MTBGODYwMDAwQjEyMDJDODAwQkEwMDJDQzAwQjIwMDJDQzAwQTIwMDcwCis6MTBGODcwMDAyMDAwMkIyRDlBMkU0MjgzMDAyOEMwMDgyMDAyRjgwMDc5Cis6MTBGODgwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMDFFMDRCNDgwMkRBMEU1Cis6MTBGODkwMDAwQjU4MDI5MjAwQjY4MDJERTAwQjY4MDJERTQwQTY4MDc1Cis6MTBGOEEwMDAyMTI0Mjk0ODAyMUU4MDg3ODA2OUUwMDg2MTAyQzgwMDdGCis6MTBGOEIwMDA0MDAwMDAwMDAwMDAwMDAwNDgxODBDMDBGMDMwM0M0Q0Y0Cis6MTBGOEMwMDAwRjMyMDNDODgwQjIwMDM4ODAwRjFCMDNFQzAwRTAzMDE5Cis6MTBGOEQwMDAzMDA0MEZCMTAzMEU4NUNCMDAzQUMwMEMzMTAzRDIwMkM1Cis6MTBGOEUwMDAwMDAwMDAwMDAwMDAwMDAwNDAxQ0JDMDBGQzExM0ZDNEYwCis6MTBGOEYwMDAwRkI4MTNCMDA0RkUwMjNGODAwRkMwMDNGRDAwREYxMkZCCis6MTBGOTAwMDAxRDA0MEZEMDQzQkMwMUVGMTAzM0M0MEVGMzAzRDAwNjI3Cis6MTBGOTEwMDA2MDAwMDAwMDAwMDAwMDAwMDgwNUVFMDBDQjAwM0UwMDgzCis6MTBGOTIwMDAwRjgwMDMyODAwRjgwMDNFNDAzREIwMDNFRjA4QzkwMEY3Cis6MTBGOTMwMDAzQTAwMENBMDAzRUM5OEZCMjAzMkQyMENBODAzMkEwMjU4Cis6MTBGOTQwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDA4NzAxMkQ4MDFECis6MTBGOTUwMDAwQjQwNDIxQzA0MzcwMEExNDAwODYwMDJDQzgwODcwMEE1Cis6MTBGOTYwMDAyRDgwMkU3MDAyRENBOUI3MjgyMUQwMDg3MDAyMTIwMDY5Cis6MTBGOTcwMDA2MDAwMDAwMDAwMDAwMDAwMjAwMEJFMDI4NzgwMkQ2MEIzCis6MTBGOTgwMDA0QkU4MDI1QTAxQjQ4ODI4RTA4ODc4QzJERTUyODZDMDZCCis6MTBGOTkwMDAyOTYwMDg2ODAyREU0MEIzOTJFMUU4MjgyODAyNzAwMDdFCis6MTBGOUEwMDAyMDAwMDAwMDAwMDAwMDAwNjgxNENDMDA4QjgwMkVDMEY2Cis6MTBGOUIwMDAwQjIwMDI0RDgwOUIyMDIwRTAwODM4MDJDQzAwODM4MDgxCis6MTBGOUMwMDAyQ0MwMEFCMDAyQ0MwOEIzMDAyMEMwMDgzMTAyNTIwNDk3Cis6MTBGOUQwMDAzMDAwMDAwMDAwMDAwMDAwRTgwNUE4MDBDQUUwM0U4MEZBCis6MTBGOUUwMDAxRkE0MEI3OTAwRkUwMDNGODIxREUwMDNFODAwQ0U0MDFCCis6MTBGOUYwMDAzQjg4MkNFNDAzRTgwMUZBMDAzMjgwMENFODAzN0EwNDI3Cis6MTBGQTAwMDA2MDAwMDAwMDAwMDAwMDAwNDgxMUEwMDBGODA5M0UwMDVFCis6MTBGQTEwMDA4RkMwODNBMDE4RjgwMDNDMjAwRjg4MDNFMDAwRjgwODhFCis6MTBGQTIwMDAzRTIwMEU4MDgzRTEwMUYwMDAzQzAwMEY4MDBCOTIwMDJECis6MTBGQTMwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEE0MDBGOTQyMzI0MDJECis6MTBGQTQwMDA0Qzk4MDMwNDAwQzkwMDNBNDAwRjkwMjMyNDAwQjk4MTY4Cis6MTBGQTUwMDAzQzQwMEM5MjAzMjQwMEY5MDUzMjQwNkM5MEMzQzIwNDcwCis6MTBGQTYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDI0MTRCOTAwQTI1NEZCCis6MTBGQTcwMDAwODlCMUEyNDAyODkwMDIyNDAyODkwMDJBNDAwQjk5MDExCis6MTBGQTgwMDAyRTQwMjg5QzgyMjUwNEI5MDAyMjQwMDg5ODEyRTAwMEVDCis6MTBGQTkwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBBRDAwMjM0MDA1Cis6MTBGQUEwMDAwODUwMDI2NDAwODkwMDJBNDAwODEwMDI2NDAwQjkwMDZFCis6MTBGQUIwMDA2RTQwMDg5MDAyMjUwMEE5MDAyMjQwMDg5MTA2QzYwMDY5Cis6MTBGQUMwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDE0MDBCNTEwQTE0NDJDCis6MTBGQUQwMDAyODUwMDI0NDgwODEzMDIwNDgwODEyMDI4NDQwQjE4MEJFCis6MTBGQUUwMDA2Q0M4MDgxMjAyMDQ4MEIxMzQyMDQ4MDgxMjAyQzIwMTE2Cis6MTBGQUYwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBFODQwMzI5MEI2Cis6MTBGQjAwMDAwQ0M1MDM2MTQwQzA0MDNBMTQwRjg1MDMyMUIwRjg1MDgyCis6MTBGQjEwMDAzRTAwMEM4NTAzMjE0MEY4NDBCMDE0MEM4MDAzRUUwMTM4Cis6MTBGQjIwMDA1MDAwMDAwMDAwMDAwMDAwQjgxREM0MDRGOTIyMEU0ODc3Cis6MTBGQjMwMDAwRjEwMTNCNDQwRkQzMDNGNDQ0RkQxMDBFNDg0RkYwMTY3Cis6MTBGQjQwMDAzRDQ0MEZEMTBCRTQ0MEY5MzAzRTQ0MEZEMTAzRTYwNEFECis6MTBGQjUwMDA3MDAwMDAwMDAwMDAwMDAwMzgwNUU0MDBERDQwM0Y1MDY4Cis6MTBGQjYwMDAwQ0QwMDMyQzAwQzkwMDM2NDAwRjkwMTMyNzA0RjUwMTc4Cis6MTBGQjcwMDAzNzQwMENGMDAzRjYyMEY5QTgzMjY4MENEMDAzQzYwMDE5Cis6MTBGQjgwMDA3MDAwMDAwMDAwMDAwMDAwMTgwMEUwMDA4OEEwMkUyODhGCis6MTBGQjkwMDAyODgwMDIyMDAwODhBMDIyMDAwQjgwMEE2MjgwQjgwMDIyCis6MTBGQkEwMDAyMjAwMDg4MDAyRTEwMEI4RTAyMjNBMDhBMDAyQ0UwNDU4Cis6MTBGQkIwMDAzMDAwMDAwMDAwMDAwMDAwNDgwMDg0MDI4MTAwMkU0MDU4Cis6MTBGQkMwMDAwODEwMEE0NDAyODEwODI0NDAwQTEwMDI0NTgwQjkwMDQ2Cis6MTBGQkQwMDAyNDQwMjkxMDAyQzQwMEIxMDgyNDQ0MDgxMDAyQzIwMUM0Cis6MTBGQkUwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNEE0MDQ4OTAxMkU1MEM5Cis6MTBGQkYwMDA0OEIyMDI2NDAwOTEwMDIyNDYwQjkwMDI2NDAwQjkwMUYxCis6MTBGQzAwMDAyNkMwMDlCMDEyRTQwMEIxMDAyNjQwMDg5MDAyQzYwNEU0Cis6MTBGQzEwMDA2MDAwMDAwMDAwMDAwMDAwQTAwNEU0MDBDOTAwM0M0MEI3Cis6MTBGQzIwMDAwQzkwMDM2NDAwQzkwMjM2NTAwRTkzMDMyNDAwRjk5MDJGCis6MTBGQzMwMDAzNjQ4MEQ5NDgzRTQwOEY5MDBCNjQwMEM5NDAzRTgwNEI4Cis6MTBGQzQwMDA3MDAwMDAwMDAwMDAwMDAwNjgxMEE0MDBFOTAwM0U0MEMxCis6MTBGQzUwMDAwRjkwMTNBNDAwRTkwMjJFNjEwNTkwMDNBNDAwRjkwMDlGCis6MTBGQzYwMDAzQTQwMEU5MDQzRTQxMEY5MDAzODQwMkY5MDAzQ0EwMDQ4Cis6MTBGQzcwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBEODAxMzIwNDNECis6MTBGQzgwMDAwRjgwNDNDMDAxQzgwMEIyMDEwQzgwMDMyMDAwQzg0MEFGCis6MTBGQzkwMDAzMDAwOEM4NDgzRTAwMEM4MDAzMjAwNkM4NDAzQ0EwNDA2Cis6MTBGQ0EwMDAyMDAwMDAwMDAwMDAwMDAwMDgwNDI4MDBCQTAwMjM4MEEzCis6MTBGQ0IwMDAwQkVBMDJFODAwQUEwMDIyODAwOEEwMDIyODAwODYyMEExCis6MTBGQ0MwMDAzN0EwOERFNDAyRjgwMERBMDAyMjgwMDhBMDAyQ0EwMDAyCis6MTBGQ0QwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNTZDMDBCMzAwMjBDMEQ4Cis6MTBGQ0UwMDAwQkI4MDI0QzA0ODMwMDIwQzAwOEIwMDIwQzAyODMwMDUxCis6MTBGQ0YwMDAyMDQwMjgzNDAyQ0U5MDgzMDBBMEMwMDgzMDAyQ0EwMDAxCis6MTBGRDAwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFDQzBCNTg4MjE0MDA4Cis6MTBGRDEwMDAwQjcwMDJEQzgwQTMyMDIxRTA0ODMyNDIwRTkwOEUwMTVECis6MTBGRDIwMDA2NTUwMDk3MDAyREUyMDkzMjEyMUMwMDg3MDAyRTgwMEFFCis6MTBGRDMwMDA0MDAwMDAwMDAwMDAwMDAwMjgxODFFMDBGRjgwQjFBMDU1Cis6MTBGRDQwMDAwRjQ4MDI3RTAwODdBMDMzRTAyODdBMEIxRjAwQzQ4MDkyCis6MTBGRDUwMDAzMTYwOEM1ODAzRkUwMEM3QzgzM0U4MEM1ODAzRUEwMjMwCis6MTBGRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGRjAwM0UwMDg1Cis6MTBGRDcwMDAwRjkwMjNFQ0EwRkI0MDNFQzA4RkI1MDNFRDgwRjgwMDUwCis6MTBGRDgwMDAzQzQwMEZCMDAzRTgwMEZCMDIzRUQwMEY5MDAzQzIwNkQ4Cis6MTBGRDkwMDA2MDAwMDAwMDAwMDAwMDAwNjAwNEJFMDBGRjgwM0ZFMDQzCis6MTBGREEwMDAwRkQ5MDNGRTIwQ0ZDODMzRUE4RkZDMDMzRjAwRkQ4MDRDCis6MTBGREIwMDAzRjYwMEVFODAzRjIwMENGODAyRkZFMEM3ODAzMDAwMEI2Cis6MTBGREMwMDA3MDAwMDAwMDAwMDAwMDAwQTgwMDlDMDBCNTAyMkRDMERCCis6MTBGREQwMDAwQjU4NDJEQzgwQ0YwMDIxQzEwQjMwMTIxQzQwQjQwMjEyCis6MTBGREUwMDAyRDQ2MDg3MTEyQzgwMEU3MDAyREM0MDg3MDAzNkEwNDhDCis6MTBGREYwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCNzAwMkQwMjIxCis6MTBGRTAwMDAwQjQ2MDJEQzA4OTcwMDIxQzkwQTMwMjIxQzAwQjQwMDBFCis6MTBGRTEwMDAyRDQwMEE1MDgyQzQwMEI3MDAyQ0M4Mjg1MDAyNDAxMDYwCis6MTBGRTIwMDAyMDAwMDAwMDAwMDAwMDAwNDAxNDhDMThCMzAwMkUyMEI5Cis6MTBGRTMwMDAwQjE4MDJDRjRBODNDMjIwQzEwQjM0MjIwQzA0Qjg1OERECis6MTBGRTQwMDAyQzQwMEIyODAyQzgwMEEzMDAyQ0MwMDgxNDAyNDgwNDUwCis6MTBGRTUwMDAzMDAwMDAwMDAwMDAwMDAwQTgwNUJDMDBGQjAwM0U4MDUwCis6MTBGRTYwMDAwRkEwMDJGQzAwREZBMEIzQzAwRUYwMEIzQzAwRkJDMEYzCis6MTBGRTcwMDAzQ0EwMEVCRDAzRUMwMEZGMDAzRkMwMEMzMDAzNkEwNDQxCis6MTBGRTgwMDA2MDAwMDAwMDAwMDAwMDAwQTAxMEVDMDBGOTAwM0UwMTNFCis6MTBGRTkwMDA4RkIxNDNFQzAwRjMwMDNFQzA0RkIwMTNFQzAwRkIwMDA5Cis6MTBGRUEwMDAzRTgwMEM4NDAzRTEwMDczMDAzRUMxMEZCMjQzRTAwMENBCis6MTBGRUIwMDAzMDAwMDAwMDAwMDAwMDAwMDE1MEZDMTBGRjgwMzdDMDNGCis6MTBGRUMwMDAwQ0UwMDNGQzIwRkYwODMzQzAwRkYwODNCQzAwRkYwMEYwCis6MTBGRUQwMDAzM0MwMkU0MDAzMUMwMUNGMDAxMUMwNENEMDAzMDA0NDlFCis6MTBGRUUwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMDRCMzAyMjI3MkE0Cis6MTBGRUYwMDAwOEExMTZFQzAwQkIwNDIyQzAwQkIwNDJFQzAwQkExOUZBCis6MTBGRjAwMDBCNkQwMDg5QzRBMjY4MERCMDAyMkMwMDg5MDAzNjA0MERGCis6MTBGRjEwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDBCOTEwNjIyMEQ1Cis6MTBGRjIwMDA0OEEwMDJFQzAwQkIwMDIyQzAwQkIwMDJFQzEwQkIwMEVBCis6MTBGRjMwMDA2NjA4MEFBODEyMjYxMDlCMDAyQUMwMjhCMDI2MjAwMEI2Cis6MTBGRjQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwMDBDMDBCOTAwMjAwMDg0Cis6MTBGRjUwMDAwODMyMDJDQzA0QjMwMDIwQzA0QjMwMDJDQzAwQjMwMDA2Cis6MTBGRjYwMDAyMDAwMDgwMDAyMDEwMDkzMDAyOEMwMDgzMDA2NDIxMTVBCis6MTBGRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQzZDMDBGOTAwQjI0MDBFCis6MTBGRjgwMDAwQzgyMDJEQzAxRkYwMEIyQzAwQkYxMDNCQzAwRjkwMERGCis6MTBGRjkwMDAyNjQwMkU4MDAzMjEwNENGMDBCQkMwMEM5MDAzMDAwMzM5Cis6MTBGRkEwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRDAwM0Y0MENDCis6MTBGRkIwMDAwRjgxMDNGQzAwRkYwMDNGQzAwRkYwMjNGQzAwRkMwMDlBCis6MTBGRkMwMDAyRDQwMkZDMDAzRjA4OEZGMDAzN0MwOEZEMDAzRTgwMjE4Cis6MTBGRkQwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZFNDBGRjgwMzNDMjNBCis6MTBGRkUwMDAwQ0Y4MDM3Q0EwRkY5MDNGQzQyQ0I0MDNCQzgwQ0Y0MDJFCis6MTBGRkYwMDAzN0UwMEZGMTkzNkU0NEJGMzAzRjIwMkNGODYzRjAwNERDCis6MTA4MDEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDMDBFQjIwMjNGMDU2Cis6MTA4MDIwMDAwOEI4NTIzRDAwQjMwMDJFREMwOEY0NDIxQzQyOEI0MERECis6MTA4MDMwMDAyMkM4MEJGNjAzNkM4OEJCMzAyRTAwMDhCMjAyRTAwNEE1Cis6MTA4MDQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDMDBCQjA4MjBDMDA0Cis6MTA4MDUwMDAwODMwMDI0Q0EwQjMyMDI2ODA4ODM2MDJDQ0EwOTM2MDYyCis6MTA4MDYwMDBBNEMyMEEzMjQyNEM5MEIzMjAyQzBCODgzMDgyRTIwMTI5Cis6MTA4MDcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDhCQjIyQTJDMEM4Cis6MTA4MDgwMDAwOEIwMDIyQzAwQkIwMDJFOTAwOEIwMDJFQzAwOUIwMDUwCis6MTA4MDkwMDAyMkMwMEJCMDAyNkMwMEJCMDIyRTIwMDhCMDAyRjAwMDIwCis6MTA4MEEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBCMTgzMzJDMDA5Cis6MTA4MEIwMDAwQzFBMDM2QzEwRkIwMDM0QzAwQ0IwMDNFQzA4REEwMDlGCis6MTA4MEMwMDAzNkMwMEVCMDBCNkMwMEZCMDAzRTI4MENCMDAyRDAwMDk2Cis6MTA4MEQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJDMDBFRDgwM0ZDMDI3Cis6MTA4MEUwMDAwRkQ0MDNFQzAwRkYwMDNGQzgwRkIwMDMzQzAwRUU0MDhDCis6MTA4MEYwMDAzRkMwMEY3MDAzRkMwMEZGMDAzRjgwMEZGMDAzRjgwMDRCCis6MTA4MTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjIwQjBDMDg4Cis6MTA4MTEwMDAwRkI0MDNBQzAyQ0IwMDMyOTAwRUIwMDM2QzAwRUIwMDQ2Cis6MTA4MTIwMDAzQUMwMENCMDAyRUMwMEZCMDAzRTkxMEZCMDAzOTAwMDhGCis6MTA4MTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCQjgwMjNEN0YxCis6MTA4MTQwMDAwQjkwMDIzQzE0OEIwMDZBMDgyOEYwMDBCQzAwODMwMEVFCis6MTA4MTUwMDBCRUMwODhGMDEzMkMwMEVGMDAyRTgwMEJCMDA3QjIwMEQ5Cis6MTA4MTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBCMzQwMjBEMEJCCis6MTA4MTcwMDAwQjI4MDI4QzAwODMwMTIwQzAxQUI4MDA2QzEwQTEwMEVCCis6MTA4MTgwMDA2OEMwMkEzMDAyOEMwMEIzMDIyRTAwNEIzMDAyRjgwNDgzCis6MTA4MTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDBCN0EwMjFFMEY4Cis6MTA4MUEwMDAwQkVDQzIxRTA0ODc4MDI5RTQwODc5ODI5RTQwQUY5MEMwCis6MTA4MUIwMDAyOUUwMEEzODAwMUUwMEE3OTAyRDI0MEI3ODAyODgwMEMxCis6MTA4MUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDNTBGQjA5MzBDMENGCis6MTA4MUQwMDAwRjIwMDI4QzQwQzMwMDIwQzAwQTM4MDM0QzQ0RTEwMDQ5Cis6MTA4MUUwMDBBQUMwMEUzMTQzOEUwMEYzMDAzQzAwMEYzMDAzRDIwMkQwCis6MTA4MUYwMDAwMDAwMDAwMDAwMDAwMDAwNDA0REJDMDBGRjIwM0ZEMDA4Cis6MTA4MjAwMDA0RjcwMDNGQzAwRkYwMDNEQzAwRkYzNDNGQzQwRDcwMDVDCis6MTA4MjEwMDBCRkMwMERGNEMzRkM0MEZGMDAzRjQwMEZGMDAzRDAwNjg5Cis6MTA4MjIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVDMDBGQjAwMzJEMDU4Cis6MTA4MjMwMDAwRDkwMDFFREMwRkIwMDNFQzAxRkJBMDNBQ0MwQzgwMEVBCis6MTA4MjQwMDAzMkUwOERCNDQzRUMwMEZCMDAzNkEwMENCMDAzNkEwMEIyCis6MTA4MjUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDBCNzAwMjFDODE5Cis6MTA4MjYwMDAwODYwMDJEQzIwQjcwMDJEQzAwRjc0QTIxQzI4RDYwMEM1Cis6MTA4MjcwMDAzNUMwMDg3MjAyNUMwOEI3NDRBMTgwNDg3MDAyMTIwMDQxCis6MTA4MjgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDBCNzgwMjBFNEY1Cis6MTA4MjkwMDAwOTc4MjZERTAwQjc4MDJERTIwQTcwMTI4Qzg4ODE4MDcyCis6MTA4MkEwMDAyMUUwMDk3ODAyREUwMEIzQTAyNUEwMjg3ODAyNzAwNDNFCis6MTA4MkIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDFCQjgwMjBDMDVBCis6MTA4MkMwMDAwODMwNDJFQzAwQjMwMDJDQzAwQTMwMjIwQzAwOTMwMEFFCis6MTA4MkQwMDAyNEMxMDgzMDAyQ0MwMEIzMDAyMEUwMDhCMDAyMTIwNDMwCis6MTA4MkUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBGQTA4QjI4MDg1Cis6MTA4MkYwMDAwREUyMDNFODAwRkEwMDNGODAwQUEwMDNBODAwQ0U1MDc4Cis6MTA4MzAwMDAzMjgwMDVBMDAzRTgwMEZBMDAzN0E4MENBMDAzN0EwNDI1Cis6MTA4MzEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMDYwMDhGODAwM0MwMDE5Cis6MTA4MzIwMDAwRjg4MDFFMDAwRjgwNDNDMDA0RjAwMTNDMDAwRjgwMDgzCis6MTA4MzMwMDAzRTAwMEY4MDAzNjAwMEY4MDIzRTAxMEY4MDAzRDIwMDcwCis6MTA4MzQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBGOTkwMTI0MDI2Cis6MTA4MzUwMDAwQzkwMDNBNDAwQzkwMDNFNzAwRTk0MzMyNDA4QzkwMDk5Cis6MTA4MzYwMDAyQTQwMEI5MDAzRTQwMEY5MDAzQTQwMEY5MDAzMDIwNDA2Cis6MTA4MzcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTQyMjI2MDY4Cis6MTA4MzgwMDAwODEwMDIyNDAwODkwMzJFNDAwODkwMDJBNDAxODEwNEYxCis6MTA4MzkwMDAzRTQwMEI5MDAyRTQwMEI5MDIyMjQwMEU5MDAyMjAwMDAxCis6MTA4M0EwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTQwMkE0QTBGCis6MTA4M0IwMDAwODkxMDJBNDAwODkwMDJFNDAxQTkwMEEyNDA0ODkwMDIyCis6MTA4M0MwMDAyQTQwMEI5MDAyRTQwMEIxMDAyQTQwMEI5MDAyMDYwMDA0Cis6MTA4M0QwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDBCMTAxQTg0OEFCCis6MTA4M0UwMDA4ODkwMDIwNDgwODE0MDJDNTAxODE0MEE4NDEwODk0MDFGCis6MTA4M0YwMDAyQzQwMEIxMDAyQzQwMDMxMjAyMDQwMEExMDBBMDIwMTU4Cis6MTA4NDAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBGMDUwM0EwMDhDCis6MTA4NDEwMDAyQ0EwMDJBMTQyQzgwMDNFMDBERTAwMjMyMTQyODgwMEI5Cis6MTA4NDIwMDAzODE0MEY4NTAzRTE0MEY4NTAzODE0MEYwNTAzMkUwMTZFCis6MTA4NDMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREU0MDhGRDAwMzY0NEQ0Cis6MTA4NDQwMDAwRkQwMDM2NDQwRjkwMDNENTAwRjk0MDNFNTAwN0Q0MEQ4Cis6MTA4NDUwMDAzRTQwMEY5NDAzRTQwMEY5MTAzRjQwMEU5MDAzRTYwNDAxCis6MTA4NDYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU0MDBGRDQwMzM2OEMzCis6MTA4NDcwMDAwQ0QwMDNFNzgxRjkwMDMzNzgwREQ4MTMyNkEwQ0RBMEU2Cis6MTA4NDgwMDAzMjQwMEQ5QjAzMjQwMEY5QTAzQzQ0MkM5MDA3ODYwMDQ5Cis6MTA4NDkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUwMDBCOEEwQTIxMDNBCis6MTA4NEEwMDAxODgwMDM4Mjg0Qjg4MDM2MkMyRTBGMDJBM0EwRDhFMDU3Cis6MTA4NEIwMDAzNjIyOEIwODAzNDJBMEY4RTAyRTI4MDg4ODAyQ0UwNDVBCis6MTA4NEMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDBCMTAwQTA1MDBBCis6MTA4NEQwMDAyODMwMDJDNTgwQjEwODIwNDAwOTEwQTI0NDA4ODE0ODE0Cis6MTA4NEUwMDAyMDQwMEIxNDAyMDQ4MEIxMzgyQzQ4MDgxMjgyODIwMTBCCis6MTA4NEYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxMUE0MDBCMTAwMjI0MDJDCis6MTA4NTAwMDAwODkyMDJFNDAwQjkwMjI2NTg0QTkwMDJFNDA4OTk0MDExCis6MTA4NTEwMDAyNjQwMEI5MDAyNjQwOEI5MDEyQzQ4MDg5MDEyQzYwNDRBCis6MTA4NTIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTgwMzI0MDY3Cis6MTA4NTMwMDAwODk4ODNFNDA0QjkwMTMwNDAwRDkwMEI2NDAyQzkwMDJGCis6MTA4NTQwMDAzMjQwMEY5MDAzMjQwMEY5MDAxRTU4MEM5MDAzQTgwNDM5Cis6MTA4NTUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTIwM0M0MDQ5Cis6MTA4NTYwMDAwRjk4MDNBNDAwQjkwMDNFNDI4RTEwNEI4NDA0RjkwMDFBCis6MTA4NTcwMDAzRTQwOEY5MDAzRTQwMEU5MDAzRTQwMEY5MDAzQ0EwMEE0Cis6MTA4NTgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBEODAwMzIwOEExCis6MTA4NTkwMDAwRjg0ODNBMDA0QzgwNDNFMDA4MzgwMDEyMDAwQzAwMDMzCis6MTA4NUEwMDAzMjAwMEYwMDAzQTAwMEM4MDAzMjEwNEU4MDEzQ0EwNDJFCis6MTA4NUIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4RTkwQTM4MDA1Cis6MTA4NUMwMDAwQkU0MDIyODAwQ0EwMDJGODA0QUEwMTNBODAwQUEwMENBCis6MTA4NUQwMDAzNjgxMEJBMDAyMjgwMDhBMDAyMjgwMDhBMDAzOEEwMEFFCis6MTA4NUUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5M0MwMjBEMDhGCis6MTA4NUYwMDAwQjM0MDI4QzAwOEIwMDJDRjA4QjE4MDI0QzAwODMwMDkzCis6MTA4NjAwMDA2MEMwMEIzMDAyOEMwMjgzMDAyOEMxMEEzMDAyQ0EwMDBECis6MTA4NjEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFFMDBCNDBCNjlDMDYzCis6MTA4NjIwMDAwOTU4MDYxRTgwOTcxMDJGQzI0ODcwODI5QzgwQTcwOEE4Cis6MTA4NjMwMDAyNUNDMEI3MDAyMUU4MTg3QTJBQkM0MDg3MzAyRTgwMDMwCis6MTA4NjQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODNFMTBEQzg0MjFFMDhCCis6MTA4NjUwMDAwRjc4NDI5RjAyQzc4ODNERTAyRjcxMDM0RTAwQ0Y4MDA0Cis6MTA4NjYwMDAyMUUyMEY3ODgzOUU0OUNGRDAzOUU4MEU3ODAzRUEwMkUxCis6MTA4NjcwMDAwMDAwMDAwMDAwMDAwMDAwMDg0REFDNDBDQTAwMzYwMEI5Cis6MTA4NjgwMDA4RjMwMjNFQ0E4RUI0MDNDQzAwRjk2NDNFRDgwRkIwMEZECis6MTA4NjkwMDAzRUQ4OEZCMTQzRUQ4MEZCMjAzNkNBMEZCMEEzODIwNkNGCis6MTA4NkEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFODBGQzgwMzFFMDVBCis6MTA4NkIwMDAwNUFBMTBGRTQ0RkY5MDNGRTFDRkY5MTczRjIwRDc4MDc1Cis6MTA4NkMwMDA4QkU0MEZGODAzM0UzMEZGODAzN0UwMEZGODAwNDAwMEU2Cis6MTA4NkQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCRDEwMjFDMDI3Cis6MTA4NkUwMDAwODRBMDJEQ0MwQjcwMDJEQzIwQ0QzMDIxQzgwODcwMEYwCis6MTA4NkYwMDAyOUMwNEI3MjAyMUMwMEI3MDEyMUMwMEJGMDEyMkEwNEUyCis6MTA4NzAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDOTAzNDAwMjE4MDA4Cis6MTA4NzEwMDAwOTcwMDA1QzBDQjcwMDJEQzQwODUwMUEwQzAwOTcwMEJCCis6MTA4NzIwMDAyMUMwNEIzMDAyMUMwMEI3MDAyNUMwMEI3MDAyNDAwMDc2Cis6MTA4NzMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMDBCMDAwNjAwMDA5Cis6MTA4NzQwMDAwODNFMDJDQzAwQjMwMjBDRTAyQkIwMDIwQzAwOTMwMEY4Cis6MTA4NzUwMDAyOEMwMEJCMDAyMkMxMEIzMDAyMEQ2MDMzMDAyMDgwNDRFCis6MTA4NzYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBGQjAwQjIwMEIzCis6MTA4NzcwMDAwNUJFMDM3QzAwRkYwMDNFMjAwQ0IwMDMzQzAwRDk4MDA2Cis6MTA4NzgwMDAzM0MwOEJGMDAzM0MwMEZGMDAzN0UwMEZGMDAzNkEwNEI2Cis6MTA4NzkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGQjA0M0UwMEQwCis6MTA4N0EwMDAwRkE0MjNDQzAwRkIwMDNFODEwODkwMDNFQzAwRTkxNEU5Cis6MTA4N0IwMDAzRUMwMEZCMDAzRUMxMEZCMDAzRUMwMEZCMDAzRTAwMDYyCis6MTA4N0MwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBGRjAwMzc4MEI2Cis6MTA4N0QwMDAwRkZBMDNGQzAwQ0YwMDNGOTAwNkRDMjMzQzAwRkQxMEE1Cis6MTA4N0UwMDAzM0MwMEZGMDBCM0MwMDQzMDAzM0MwMEZGMDAzQzA0NDE0Cis6MTA4N0YwMDAzMDAwMDAwMDAwMDAwMDAwODEwMDZDMDlCQjE5MjIzMjJCCis6MTA4ODAwMDAwQkJFMDM2QzAwOEIwMDJDOTAwREI4MDJBQzAwQjEwMEM1Cis6MTA4ODEwMDBGMkMwMEJCMDEyQUMwMDhCMDAyMkMwMEJCMDAzQTA0MDIyCis6MTA4ODIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMTBCMzAwMjYyMDdFCis6MTA4ODMwMDAwQjkwMTJFQzAxOEIwMDJBQzIwQTkwMDIyQzAwQkIwMEE0Cis6MTA4ODQwMDBBMkMwMEJCMDAyMkMwMEFCMDAyQUMwMEJCMDAyRTAwMEFCCis6MTA4ODUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDFCMzAwMjAwMEVDCis6MTA4ODYwMDAwQjAwMDI4QzAwODMwMDJFQzAwQjM0MDI4QzAwQkIwMDc2Cis6MTA4ODcwMDAyMEMwMEIzMDAyMEQwMEEzMDBBMEMwMEIzMDAyODIwMTBCCis6MTA4ODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBCQjA0MzY4MEZBCis6MTA4ODkwMDAwRkIyMDJGQzAyQ0YwMjM4QzAwRUYwMDMzQzAwRkIwMDE2Cis6MTA4OEEwMDAyM0MwMEZGMDAzM0QwMkVGMDAzM0MwMEZGMDQzQzAwM0JECis6MTA4OEIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRjAwM0YwMDcxCis6MTA4OEMwMDAwRkY0MjM3QzAwRkYwMDNGQzAwREQwMDNGQzAwRkYwMDJECis6MTA4OEQwMDAzQkMwMEZGMDAzRkM4OERGMDAzRkMwMEZGMDAzQTgwNjg5Cis6MTA4OEUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwNTBDRTEyMzNEMDMwCis6MTA4OEYwMDA0Qzg2ODMzMDgwNUY2ODMzQzQwRkYzODMzQ0MwQ0MzODMwCis6MTA4OTAwMDBCMzA4MENDNjAzRjFBMEZGMDAzMzI0MENDMjAzRjAwMDJGCis6MTA4OTEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDODBEMjIwMjNEOEZFCis6MTA4OTIwMDAwRDk2MDI4ODYwQUY0MDIzREMwQkY2MDIzQ0MyODg2MEUzCis6MTA4OTMwMDAyMjUyMDg5MTIyRTEwMEI3MjRBMjQ4OEE4NDgyNjAwNDZFCis6MTA4OTQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0MDA4MTAwRTBDNDgxCis6MTA4OTUwMDAwQTAwMDIwNDgwQTMyMEE4QzAxQjMwMEEwQzAwQTAwMDVCCis6MTA4OTYwMDAyODBDMDkwMjAyQzQ4MEIzMUMyMjA4MTkwMzAyRTIxMTc4Cis6MTA4OTcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE0MDA5OTgwNjJDMEQzCis6MTA4OTgwMDAwQkEwMzJBNDUxQUIwMDJBQzA4QkIwMDAwQzAwQTlDMEQwCis6MTA4OTkwMDAyQTIxMDhCODIyRTIwMEJCMDAyMjg0MUJBODQyNzAwNEVFCis6MTA4OUEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUUyMDBDQkM5MzJDMEFBCis6MTA4OUIwMDAwRThCMTMyMjEwREIwMTMyQzAwRkIwMEIyQzAwNjg4MTJDCis6MTA4OUMwMDAzQTIyMkM4ODIzRTMwMEZCMDAzMDMwOEQ5QzgzRDAwNEI2Cis6MTA4OUQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJBNDBGNzA0M0VDMjUxCis6MTA4OUUwMDAwREQ4MjNEODAwN0IwMDM3QzAwRjcwMzNGQzEwRDIwMEE1Cis6MTA4OUYwMDAzNUMwOEZDMDAzRjQwMEY3MDIzRkUwMEU4MDAzRjgwMDlCCis6MTA4QTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMDgxMjBDODA4MzBDMDU1Cis6MTA4QTEwMDAwQzAwODMyNDQwQzM4OTNBQzAwRUIwMEIyQzA4Qzk0ODBGCis6MTA4QTIwMDA3MjU0MEY5MTAzRUQwMkVCOEEzQTYyOEM4MDBCMTAwNEIyCis6MTA4QTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJCMDQ4ODQwQTNDMkVECis6MTA4QTQwMDAwMkFFMTIyNzQyOEY0NDIzQzIwQkY0MDIzRDAwMEE0MEJCCis6MTA4QTUwMDAyMkUwMEJCNTAyRUMyMDhGNDRBMjQwOERCRDIzMzIwMEYyCis6MTA4QTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQ5NDA4MzgxMjRDMTZGCis6MTA4QTcwMDAwODI4MDIwMTAwOTMwMEEwRTgwQTMwODI4RjYwQjM5MEJBCis6MTA4QTgwMDA2MEI4MEIyODEyNEEwMDkzMDAyMDkwMDkyMDAyNzgwMDU5Cis6MTA4QTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDI4N0E4MjVFMDExCis6MTA4QUEwMDAwQTdCMDIxQTA0ODc4MDIxRTQwQjc4ODI4RTAyOTY5MTU5Cis6MTA4QUIwMDAyMTIxMEI2OTQwREI0MDk3OTIyM0EwODk1ODgyMDgwMDRFCis6MTA4QUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODI1ODJDMzAwMzRDMEI4Cis6MTA4QUQwMDAwQzlCNDMwOEQwRDMyMDM4QzAwRUIwMDM4QzAwQjMwMEU5Cis6MTA4QUUwMDAyMDgwMDcxMDAzRTAwMEQzMTAzODE4MEQzMDAzNTIwMjI1Cis6MTA4QUYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREI0MDA3RjIwMUJEMERCCis6MTA4QjAwMDAwRkYxMDNGODQwRUYwMDNGQzAwRkI0MDM3QzIwQ0YwNDA3Cis6MTA4QjEwMDBCRjQwMEZGMDAzRTQxMEVGMTgzREMwMEZFMDAzRDAwNjk0Cis6MTA4QjIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU4MDBFMzAwQjJDNEY3Cis6MTA4QjMwMDAwQ0EwMDMyNDAwREI2ODMyQzgwQ0I0MDNFQzgwQzg4MEFFCis6MTA4QjQwMDBCNkUwMENBMDAzMkUwMENCRTBCMjYwMENCODBCMkEwMEZDCis6MTA4QjUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDI4NzAwQTFDOEJFCis6MTA4QjYwMDAwODcwMDIxQzA4OTcwMjIxRDQwODc0MDJEQ0MwMDcwMEI4Cis6MTA4QjcwMDAyMUMwODg3MDAyMTgwMDgzMDgyMUMwMDg1MDAyMTIwNDI2Cis6MTA4QjgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMjBBRDgwMjlFMEQxCis6MTA4QjkwMDAwODU4MDIxRTAwOTdCMDIxRTgwODc4MDJERTEwMTU4MDAwCis6MTA4QkEwMDAyMUExMDg0ODAyNUUwMDg3QTQ2NUEwMDg3ODAyMzAwMDcxCis6MTA4QkIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENGMTA4MTcwQThDMDAxCis6MTA4QkMwMDAzODMwMEEwRDAwOTMwMEEwQzEyODMwMDJDQzAyODM4OEZGCis6MTA4QkQwMDAyMEUwMzgzNDBBNEQ3MjgzMDAyNEU4MjgzNDgyMTIwNERECis6MTA4QkUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJBNDBFRUMwQkE4MDc2Cis6MTA4QkYwMDAwQ0UwMDMzOTEwREEwMDMyODAwQ0EwMDNFODAwREVDODc0Cis6MTA4QzAwMDAzM0EwMENFMDAzN0IwMENBMDAzN0IxMENFNDIzM0EwNDI0Cis6MTA4QzEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEMxMDBGODAwMzYwMEJECis6MTA4QzIwMDAwRjgwMDNDMDIwMzgwMDNFMDAwRjAwMDNFMDAwRjgwMjcwCis6MTA4QzMwMDAzQTI0MEY4MDgzQTAwMUY4MDQzQTA0MEQ4MDEzRDIwMDc3Cis6MTA4QzQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0NDRDMTAwMzI0MDgxCis6MTA4QzUwMDAwQzkwMzIyNDBDQzEwNjM4NDAwRDkwMDkwNDAwRDkwMDU0Cis6MTA4QzYwMDAzRTQwMEYxODAzMjQwMEY5MDEzRTQwMEY5MDAzQzIwNDU4Cis6MTA4QzcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDY4OTAwMkE1MEQzCis6MTA4QzgwMDAwODk0MEEyNDAwODk0MjIyNTAwQTkwMTIyNTAwODkwMDgzCis6MTA4QzkwMDAyRTUwMEI5QzBBMjUxMEI5MDAyRTUwMEI5MDAyRTAwMEJDCis6MTA4Q0EwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MjA4OTAwMjA0MjY4Cis6MTA4Q0IwMDAwODEwQzJBQzEwODkwODJBNDIwOTkwMDIyNDIwOTkwMEE5Cis6MTA4Q0MwMDAyRTQyMEFCMTgyMkMyMEI5MDA2RTQyMEI5MDAyQzYwMERGCis6MTA4Q0QwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDA4MzAwMjg0ODUxCis6MTA4Q0UwMDAwODEyNjI4QzgwODEwMDIwNDAwMjEwMDI4NDgwODEyMDYyCis6MTA4Q0YwMDAyQzQ5MEIxMjA2MDQ4NEIzMDI2QzQwMEIxMjAyQzIwMTExCis6MTA4RDAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDQxRTBDODc4MzAxNEY5Cis6MTA4RDEwMDA0QzA1MTNBMTQyQzA3ODM4MUUwRDg3ODMwMTQwRDA1MDA2Cis6MTA4RDIwMDAzQzE0MEUwNTAzMDE0MEY4NzgzQzE0MEYwNTAzRUUwM0Q0Cis6MTA4RDMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREZDMDBGRjAwMEU0NEUxCis6MTA4RDQwMDAyRkYxMDM3NDQwRjkwMDNFNDAwRDkwMDM2NDQwRkQxMDg0Cis6MTA4RDUwMDAzRjQ0MEZEMTAxRjQ0MEY5MDEzRkMwMEZEMTAzRTYwNkIzCis6MTA4RDYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUU2MjJFOTg4QjI0MDBCCis6MTA4RDcwMDAwRjkwMDMyNDE2Qzk4QzM2N0I4RjlDODNBNzkwQzkwMDYzCis6MTA4RDgwMDAzRTUwMDQ5NDEzMjQ1MEM5RTAzRTUwMEY5MDAzMDYwMDU3Cis6MTA4RDkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUyODA4OEEwMjIyODQ3Cis6MTA4REEwMDAwQjhBMDIyQTgwODhBNDIyMzAwODhFMEEyMjAyODhBMDE4Cis6MTA4REIwMDAyRTI4ODhBQTEyMjI5MDg4RjQyRTIwMEJDODAyMEUwNEI2Cis6MTA4REMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUQ0MjBBNTA4MjE0MjYyCis6MTA4REQwMDAwQjUwODIxNDMxODUwODI1NDAwQTUwMjI5NDQwODUwOEEyCis6MTA4REUwMDA2RDQwMDg1MDAyNTQwMjk1MDAyRDQ4MEI1MDgyNDIwMUZDCis6MTA4REYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNTg0MDA4RDEwMjM0MDUyCis6MTA4RTAwMDAwQkQwMDAzNDAxOEQwMDIzNDE1OEQwMDIzNDAwOEQwODZFCis6MTA4RTEwMDAyRjUwMDhEMjAyNzQ4MDlEMDAyRjQ4MEJEQzAyNDYwNEJDCis6MTA4RTIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU3NDBFOUMwMzI0MEVCCis6MTA4RTMwMDAwRjkwMDkyNjAwQzkwNDM2NDAxRjkwMjNBNDA4Qzk0MDlBCis6MTA4RTQwMDAzRTQwMEM5NDBCNjQyMEQ5MDIzRTQxMEY5NDAzNjgwNDA5Cis6MTA4RTUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTgwM0U0MERFCis6MTA4RTYwMDAwRjE0MDNDNTA4RjkwMDNFNDAxRjkwMjNFNDAwRjkwMEU5Cis6MTA4RTcwMDAzQzQwQUY5ODAzODYwMEU5MDAzRTQwMEYxMDBCOEEwMDhCCis6MTA4RTgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEIwMDBEQzQwQjMwMENCCis6MTA4RTkwMDAwRkMwMDMzMTAyQzQwNEIxMDAzQzQwMDMxMDAwRkM0MDg5Cis6MTA4RUEwMDAzMzAwMENDNDAzQjEwMENDMDBCMzAwMENDNDAzQ0EwNEVCCis6MTA4RUIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDA4QTgwMjJBMDcxCis6MTA4RUMwMDAwQkEwMDIyQTAwOEE4NDIyQTEwOEEwMDIyODA4QkEwMTY1Cis6MTA4RUQwMDAyMjgwMDhBMDJCMjgwMDhBODAyQTgwMDhFMDAyQ0EwMDhECis6MTA4RUUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDI5QjgxMjBFMEFCCis6MTA4RUYwMDA4QjM4MDZDRTAwOTM4MDIwQzAwODM4MDIwQzAwQjM4MDY3Cis6MTA4RjAwMDA2Q0UwMEFCMDAyNEMwMDkzMDAyMEUwMDgzMDAyQ0EwMDc2Cis6MTA4RjEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTEwMDQ4MDA4MjEwMkExCis6MTA4RjIwMDA0QjQ0MDZEMDIwOTAwODIxMDI4MDQ0MDIxMDAwQjRDMEI3Cis6MTA4RjMwMDAyRDEwNDg0MDAyMDAwMDk0ODkyOTMwMDg0MDAyRTgwMEMyCis6MTA4RjQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODMyMDBENjgwMzFBMEQ4Cis6MTA4RjUwMDAwRkU4MEJDQTAwRDY4MDIzQTAwNEY4MEIxQTAwRkY4MDhDCis6MTA4RjYwMDBCRkEwMkVDODEzREEwMjVFODA3M0EwMkM3ODAzRUEwMjM5Cis6MTA4RjcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGOTAwM0U0MEE5Cis6MTA4RjgwMDAwRjkwMDMyNDAwRTkwMDNFNDAwRTgwMDNFNDAwRjgwMDQ3Cis6MTA4RjkwMDAzMjQwMEZCMDAzRTQwMUU5MDQzNjQwMEY4MDAzQzIwNkZCCis6MTA4RkEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBDRDgwMzM2MDdFCis6MTA4RkIwMDAwQ0Q4NDMzNjAwQ0Q4MDMzNjAwQ0Q5MjNCRTAwNEQ4MEUxCis6MTA4RkMwMDAzMzYwMDhGODBCM0UwMEZEODQzRjYwMEZGOTAzQzAwMERBCis6MTA4RkQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTkwMDRERTAwMjM4MDUzCis6MTA4RkUwMDAwODYwMDJCODIwOEUwNDIzODAwODY4MDIxMDAwOEUyMERBCis6MTA4RkYwMDAyMzgyMDg0MDAyMTIwMEY2MDAyRDgwMEI0MUEwRUEwNEYzCis6MTA5MDAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDkwMDA4NDAwMjEwMENCCis6MTA5MDEwMDAwODQxMDI1MDQwOTQwMDIxMDAwQTUyMDJEODAwODUwMjAzCis6MTA5MDIwMDAyNTA0MDg0MDIyMTgwOEI0MDAyRDEwMEI3ODQwQzAwMDE5Cis6MTA5MDMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEVFMjI5MzAwMjBDMDU5Cis6MTA5MDQwMDAwODM4MDJFQzAwOTMwMDIwQzEyQTIwMDI2NDAyODIxMDNBCis6MTA5MDUwMDAyNEYwMEEzQzQyMjQyOEIzMDAyQ0UwMEI4ODgyQzgwNDg4Cis6MTA5MDYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFEMDBDQjAwQjJDMDI5Cis6MTA5MDcwMDBBQ0JFMDM2RTAyREIwMEIyQzAxRUEwMDNFNDAwQ0ExMTQ2Cis6MTA5MDgwMDBCNkQwQUNCQzAzMjQwMEZCMDAzRUMwQ0Y4NDAzRUEwNDhFCis6MTA5MDkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEUwNDBGODAwM0MwMDlDCis6MTA5MEEwMDAyRjgyMDNBMDAwRTgwMDNFMDAxRDkwMTNBODAwRjkwMEU1Cis6MTA5MEIwMDAzQTAwODE4MzQzRTgwMEU4MDMzRTA0MEZCMDAzRTAwMDc4Cis6MTA5MEMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEUwMDBENjAwMzc4MEYyCis6MTA5MEQwMDAwQ0EwMDNGODAwQ0UwMDMzODAwREEwMTMyMDA4Q0UwMEIyCis6MTA5MEUwMDAzMzgyMEM0MDczMzAxOENFMDAxRjgwNEZDMTQzMDA0NEMwCis6MTA5MEYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDdDMDA4RDAwMjM0MDRGCis6MTA5MTAwMDAwQUQwMDJGNDAwOEQwMDIzNDAwOEQ0ODAzRTQyOEQ0MEY2Cis6MTA5MTEwMDAyMzQwMDhGMDAyM0U0MDhEMDAwRjQwMEJGNDAyMjA0MDM3Cis6MTA5MTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA5OTAwQTY0MEZGCis6MTA5MTMwMDAwODkwMDZFNDAwOTEwMDIwNDA4ODAwMDIyNDA4ODA0MDQ2Cis6MTA5MTQwMDAyMDQwMEFCMDAyMjQwMDg5MDAwRTQwMEI4NDAyMjAwMDU3Cis6MTA5MTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDAwMDA4MjAwMjA4MEExCis6MTA5MTYwMDAwQTIxMDZDODAxODIwMDIwODAwODMyODIwODA4ODMwMDk0Cis6MTA5MTcwMDA2MDgwMEEwMDEyMDg4MDgyMDAyQzgwMEIzMDBBMDIwMUY1Cis6MTA5MTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDYwMDBEODAwMzYwMDY0Cis6MTA5MTkwMDAwQzg0MjNFMDAwQzgwMDMyMDAwRDgyMEIyMDAyQzgwMEJFCis6MTA5MUEwMDAzMjAwMEUwMDAzMjAwMkM4MDAzRTAwMEY4MDAzMDAwM0JGCis6MTA5MUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBCRjAwM0ZDMEU4Cis6MTA5MUMwMDAwRkYwMDNGQzAwRkYwMEJGQzA4RkIwMDNGQzA4RkYwMkRDCis6MTA5MUQwMDAzRkMwMERGMDAzRUQwMEZGMDIzRkMwMEZGMDAzRTgwNkIzCis6MTA5MUUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwMUYwOENGRjAwM0Q2MDM2Cis6MTA5MUYwMDAyQ0IyODM3QzkwREYzODMxRTAwRkY4MDMzQzAwRkYyMDc1Cis6MTA5MjAwMDAzRkM0MEVGNDAzN0MwMEY0ODAzMzAwMERGODAzRjAwMDNCCis6MTA5MjEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUxMjBCQjYyMkU0MkMwCis6MTA5MjIwMDAyOEY0NDIzRTQwOEY0NDIyRTAwQkIwODM3RjQ0QkZDMTBDCis6MTA5MjMwMDAyRERDMkFGNjAyM0Y0NUI4ODAyMjYxODhCODAyRTAwNDlFCis6MTA5MjQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM1ODBCMjE4MkVDODVDCis6MTA5MjUwMDAyOTMwMzIwQzA4QjMyMDIwQzA0QjkyMDIwQzAwQjM0MERFCis6MTA5MjYwMDAyQ0MwODkzNDEyNEMwMEIwMDAyNEMxNDkzMDAyRTIwMTA0Cis6MTA5MjcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMUE0MDBCQTBDMkVFMDM1Cis6MTA5MjgwMDBBOUIwMDYyQzAwOEIwMEEyQzAwQjkwMDA2QzAwQkIwMEE0Cis6MTA5MjkwMDAyRUMwMEIzMDAyNkMwMEJBODAyNkYwMDhCMDAyRjAwNDM5Cis6MTA5MkEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMUVFMDBGQkM0M0U3OEFBCis6MTA5MkIwMDAyREIwMDM2QzA4RkIwMDMyQzA4QjI0ODMyQzAwRkIwMDE0Cis6MTA5MkMwMDAzRUMwOEZCMDBCNkMwOEIyRTAxNjYwOERCMDIzRDAwNEE2Cis6MTA5MkQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJFOThGRjQwM0ZDMEE5Cis6MTA5MkUwMDAwRTcwMDNEQzAwRkYwMDNGQzAwRkUwMDNGQzAwRkYwMDM2Cis6MTA5MkYwMDAzRkMwMEVGMDAzQUMwMEZFMDBCOUMwMEZGMDAzRjgwMDUxCis6MTA5MzAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFEMDBGQTQwM0VEMEI4Cis6MTA5MzEwMDAwRUIyMDNFQzAwQzMwMDNFQzAwQ0EwMDMyQzAxRkIwMDA2Cis6MTA5MzIwMDAzQ0MwMEVCODAzRUMwMERBMDAzQUQwNEZCMDIzRDAwNEIyCis6MTA5MzMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCQTAwMkNDMDZFCis6MTA5MzQwMDAwOEY0MDdCQzE0REYwMDNFQzAxQUEwNTJCQzAwQkYwNEUyCis6MTA5MzUwMDAzRkMwOEFGMDAzQkMwMEZBMDAyMkM4MEZCMDAzRjIwMDNECis6MTA5MzYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQ4MDFCMTAwNkNDMkIwCis6MTA5MzcwMDAwQTMwNDJDQzAwODMwNTJDQzAwODMwMDI4QzAxQjMwNEIzCis6MTA5MzgwMDAyQ0MwMEEzMDIyOEMwMDgwODAyOEMwMEIzMDIyRjgwMENDCis6MTA5MzkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFMDhCNzgwNkZFMEIwCis6MTA5M0EwMDAxODc4MDI4RTQwQjc4MDJERTAwQTc4MDI5RTAwQjc4MEMwCis6MTA5M0IwMDAyOUUxMEE3ODAyOUUwMUJDODAyOUU0MEI3ODAyQzgwMEVBCis6MTA5M0MwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA5NDBGMTIwM0NDNEIzCis6MTA5M0QwMDAwRTM5MDJDQzAwQzMwMDJDQzQwODkyMDM4Qzg4QjMxMDUxCis6MTA5M0UwMDAyQ0M0MEVCMDA3OEMwMEMyMDgzOEMwMEYzMDQzRDIwMjI0Cis6MTA5M0YwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMTBGQzAwN0ZDMDA5Cis6MTA5NDAwMDAwRkYwODNGQzIxREYwODNCQzA4RjkwMDFGQzIxRkYwQzkzCis6MTA5NDEwMDAzRkMyMEZGMTAzRUMwMEVGMDA3N0MwMUVGMDAzOTAwNjhGCis6MTA5NDIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUU4MDFGOTAwMzJDMDVCCis6MTA5NDMwMDAwRkIyMDNFRTkwREJFMTNBQzA0RDM4MTMyRDMwRkIwMDQ0Cis6MTA5NDQwMDAzRUUwNEZCQTQzMkM0MEZBMDAzRkMwOENCMDAzRUEwMDI0Cis6MTA5NDUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDBCMTAwMjFDMDE1Cis6MTA5NDYwMDAwQjcxMDJDQzIwQTcyODIxQzAwQjcwMTM1QzA4QjcxMDI5Cis6MTA5NDcwMDAyREM0NEIzNDgzMUNDMUI3MDIyREMwMUE3MDAyRDIwNDE0Cis6MTA5NDgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlBMjBCNEM0MjVBMkMzCis6MTA5NDkwMDAwQjc4MDZERTAwODM4MDI5RTAxQkY4MDI1RTgwQTdBMDFGCis6MTA5NEEwMDAyREM4MEE3MjAyMUUwMEE2ODAyOEUwMDg3ODAyRjAwMDhCCis6MTA5NEIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEVEMDBCMzQwMjRDMzY5Cis6MTA5NEMwMDAwQjMwNDJDQzAwQTMwMDIwQzAxQjM0MDI0QzAwQjMwMDgwCis6MTA5NEQwMDAyQ0MwNEIzMDAyMEMwMEIzODgyQ0Q0MEEzMDAyRDIwNENBCis6MTA5NEUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4MDBGRTQwQjdBMDAyCis6MTA5NEYwMDAwRkEwMDNFODAwREEwMDNBODAwRkUyMDM2ODAwRkEwMEU4Cis6MTA5NTAwMDAzRTgwMEZBMDBCMjgwMEVFRTAzRkIwMDRBMDAzRkEwNDU5Cis6MTA5NTEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDRGMDA4M0ExMDdECis6MTA5NTIwMDAwRjg0MDNFMDEwRjgwMDNFMDA0RjgwODNFMDAwRjgwMDU1Cis6MTA5NTMwMDAzQzAwMEY4MDAzODAwMEY4NDAzRTA5MEY4MDAzRDIwMEZBCis6MTA5NTQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MjBFOTAwMzI0NDcwCis6MTA5NTUwMDAwQzkwMDMyNDAwRjkwMDNFNDAwRjkwMTNFNDAwQjkwMDgyCis6MTA5NTYwMDAxRTQwMEMxMDAzMjQwMEM5QTAzQzY0MEM5MDAzODIwNDJDCis6MTA5NTcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OTAwMjI2OEMwCis6MTA5NTgwMDAwODEzMDIyNDA4RjkwMDJFNDgxQjkwMDJFNDAwQjkwMEQ5Cis6MTA5NTkwMDAzRTQwMEM5MDAyMjQwOEY5NDAyRTYwMEE5MDA2RTAwMDNDCis6MTA5NUEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwMTI0MDBBOTAwMjA0MDY1Cis6MTA5NUIwMDAwODkwMDIyNDAwQjkwMTJFNDAwQjkwMDJFNDAwQjkwMDhCCis6MTA5NUMwMDAyRTQwMDg5MjIyMjQwMDg5MDAyRTQwMDg5MDAyQzYwMEY2Cis6MTA5NUQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODA4MTIxRTA1MEU5Cis6MTA5NUUwMDAyODE2MEEwNDgwQTE0MDJDNDA0QjE0MjJDNDAwQjEwMDZDCis6MTA5NUYwMDAyQzUwMDkxNDAyMDQwNEIxMDAyQzQwMEExMDAyQzIwMUNDCis6MTA5NjAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBFODUwMzIwMDhBCis6MTA5NjEwMDA4QzgwMDIyMDAwQjgwMDNFMDAwQjgwMzNFMDEwRjgwMDgwCis6MTA5NjIwMDAzRTAwMEM4MDAzMjAwOENBMDAzRTAwMEM4MDAzQUUwM0ZECis6MTA5NjMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREZDNDBGRDEwMkY0MTZDCis6MTA5NjQwMDA0RjkxMDNFNDQwRjk0MDNFNDA0RkQwNjNFNTAwRjk0MEJDCis6MTA5NjUwMDAzQTUwMkU5NDAzNjUwMEVEMDAzRjUwMEY5MDAzRTYwNjRDCis6MTA5NjYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUU2MDBGOUUwMzM1MDFCCis6MTA5NjcwMDAwQ0RBMDNBNjAwRDk4MDNGNDAwRjkxMDNBNjAwRjk4OEI5Cis6MTA5NjgwMDAzRTY4MENERTAzNjYwMEVEMDAzQjY5MEM5MDAzQzYwMEVCCis6MTA5NjkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUxMDhCOEUwMjAyMDUxCis6MTA5NkEwMDAxODhFMjZFMTAwODBBMDJFMDA0Qjg4NDJFMTUwQjg0MDgxCis6MTA5NkIwMDAyRTJBMEQwQTAyMjAwOEI4MDAyRTE0MEQ4MDAyQ0UwNEI2Cis6MTA5NkMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM1MDBCMTYwMjA0MDI3Cis6MTA5NkQwMDAwODMxQTJDNTAwOTE0ODJDNDAxQjEyMDI4NDAwQjEwMDQxCis6MTA5NkUwMDAyQzUwMDkxNjAyMDUwMEEzMDQyODQwMDgxMDAyQzIwMUVDCis6MTA5NkYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUE0MDBCOTA4MjA3MEU4Cis6MTA5NzAwMDAyODkwMDJFNDAwODkwMDJFNDAwQjkwMDJFNDA4QjkwMzdGCis6MTA5NzEwMDAyQzQwMjk5MDAyNjQwMEI5MDAyRTYyMDk5MDAyQzYwNDEwCis6MTA5NzIwMDA2MDAwMDAwMDAwMDAwMDAwQTAwNUU1MDBGOUQwQjI3MDY0Cis6MTA5NzMwMDAwODkwMDNFNDAwRDkwNDNFNDAwRjkwMDNBNDEwRjkwMkZFCis6MTA5NzQwMDAzRTQwMEQ5MDJCNjQwMEU5OEQzQTYwMEM5MDAzRTgwNEQ0Cis6MTA5NzUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTgwM0U0MkQzCis6MTA5NzYwMDAwRjkwMDNFNDAwRjkwMDNFNDAwRjlBMDNFNDAwRjkwMDczCis6MTA5NzcwMDAzRTQwMkYxMDAzQTQwMEY5MjIzQzQwNEY5MDAzQ0EwMDQyCis6MTA5NzgwMDA2MDAwMDAwMDAwMDAwMDAwMjgwMEEwMDBGMDQwMzIwMDRGCis6MTA5NzkwMDAwQzgwMDNDMDAwRjgwMDMyMjAxRjgwMDNFMDAwQzgwMEU2Cis6MTA5N0EwMDAzMjAwMEM4MDAyMjAwMEM4QzAzRTAwMEM4MDAzQ0EwNEI2Cis6MTA5N0IwMDAyMDAwMDAwMDAwMDAwMDAwMjgxNTI4MTBCQTAwMjNBMDk3Cis6MTA5N0MwMDAwQUU0MDJFODAwQkEwMDJCQTEwQkEwMDJFODAwQUEwMEZDCis6MTA5N0QwMDAyQTgxMEFBMDAzRTgwOERFMDAyRTgwMEFBMDAyQ0EwMDNGCis6MTA5N0UwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCMzA0QTBCMUI4Cis6MTA5N0YwMDAwODM2MjJDQzAwQjMwMDIwRTQwQjMwMDJDQzAwODMwMEZBCis6MTA5ODAwMDAyMEMwMDgxODAyMEMwMDkxMDEyQ0MwMDgzMDA2Q0EwMEM0Cis6MTA5ODEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDQzhCMzIxMjFDMkJDCis6MTA5ODIwMDAyQTcwMDJEQzAwQjdBMDI5QzAwQjcyMDJDRTAwQTc4MTBCCis6MTA5ODMwMDAyOUMwNEE3NDAyRkUwMDk3MDEyQ0MwMEE3MDEyRTgwMDg5Cis6MTA5ODQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFODBGN0MwMzFFMEMyCis6MTA5ODUwMDAwQzQ4MDNERTExRjc4MDIxRTAwQjdBMDNERTAwQzM4MEExCis6MTA5ODYwMDAzM0Q4NkM3ODAzM0UwMEQ2ODAzREUwMEM3ODAzRUEwMkUyCis6MTA5ODcwMDAwMDAwMDAwMDAwMDAwMDAwMDgwREFDMDhGQjgwM0VDMEE2Cis6MTA5ODgwMDAwRkQwMDNFQzA0RkIzQzNFQzAwRkI2MDc2QzAxRkIwMDlECis6MTA5ODkwMDAzRUQwMEY5NDA3RUMwMUVBMDAzRUMwMEZCMDAzQzIwNkIxCis6MTA5OEEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMUZFMDBDRkE0M0I2MDRCCis6MTA5OEIwMDAwOEQ5MDM3RTAwQ0Y4MDNGMjU0RkZDODdCRTAwQ0Y4MEI0Cis6MTA5OEMwMDA3RkZDMENGQzAzN0MwMEY2OTAzM0UwMEZGODAzQzAwMDMzCis6MTA5OEQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDg4RjI4MjE0MEEzCis6MTA5OEUwMDAwOEQwMDIxQzQwQTcyMDMxMDQxQjc4MDJEQzgwRDcwMDdFCis6MTA5OEYwMDAyRkM0MUFEMDAyMUU0OEI2MDA2MUMwMEI3MDA2RUEwNERECis6MTA5OTAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDhDMDA4NzMwNjk0NDA3Cis6MTA5OTEwMDAwODUwMjIwQzAwODcwMTJENDQ4QjcwMDY4QzEwODcwMEE0Cis6MTA5OTIwMDAyOUM5MDg1MDAyMUM0NEE2MDA2MUMwMEI3MDAyQzAwMDg3Cis6MTA5OTMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENEMDA4Mzg4NjA0MDVCCis6MTA5OTQwMDAwMDEwMDI0QzAwMkIwMDJDNDExQjMwMDJDQzAwOTMwMDc1Cis6MTA5OTUwMDAyQ0MwMEEzMDQyMEMwMEIyNDAyMEYxMEIzMDAyQzgwNDg3Cis6MTA5OTYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJENDFDRkMwQkFGMEQzCis6MTA5OTcwMDAyODkwMUI2QzA4Q0YwMDJDQzAwRkYwMDNBQzAwOEIwMEFDCis6MTA5OTgwMDAzRkMwNkNCMDRCMkMwMUZCNDAyMkM4MEZCMDAzRUEwNDZGCis6MTA5OTkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDRGQjA0M0ZENEU1Cis6MTA5OUEwMDAwRjEwMDNBQzAwRkIwMDMyQzA1RkIwMDNFQzAwRkIwNEZGCis6MTA5OUIwMDAzRUMwNEYxMDEzRUMwMEZCODgzRUMwNEZCMDAzRTAwMEU4Cis6MTA5OUMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMERDMDBDNzAwMzM2MjFFCis6MTA5OUQwMDAwQ0MwMEIzQzAwRUYwMDMzRTAxQ0YwMTMzQzA4RjcwMDE4Cis6MTA5OUUwMDAzMUMwMEVEODAzQkMwMEZFMDAzREM2MENGMDAzQzA0NERECis6MTA5OUYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMDBDQjAzMjI0NzBGCis6MTA5QTAwMDAwODk4NDIyQzAwOUIwMDJBQzAwQUIwMDIyQzAwQkIwNDFDCis6MTA5QTEwMDAyQUMwMEFCMDAyQUMwOEZBMDAyRTYwMDhCMDAyRTA0MDhBCis6MTA5QTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA5QjAwMjA0MDdBCis6MTA5QTMwMDAwODk4MDIyQzAwQkIwMDIyODgwODMwMDIyQzAwQkIwMEQyCis6MTA5QTQwMDAyMkMwOEE5MjAyQUMwMEFBODAyRUMwMDhCMDA2RTAwMEI0Cis6MTA5QTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDA4MzAwQTA0MDRCCis6MTA5QTYwMDAwODEwMDIwQzAwQjMwMDI4ODAwQTMyMTIwQzAwQjMwNDY0Cis6MTA5QTcwMDAyOEMwMEEzMDIyOEMyMEIyMDAyQ0MwMDgzMDAyQzIwMTVCCis6MTA5QTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDJDQjAwMzA0MDIwCis6MTA5QTkwMDAxQzk0MDMyQzAwRUYwMDMyQzA4OEYwOEIyQzAwRkIwMERDCis6MTA5QUEwMDAzM0MwQUVGMDAzQUM4MEVBMDEzRUMwMkNCMDAzQzAwMzZCCis6MTA5QUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGRjAwMkY0MDJGCis6MTA5QUMwMDAwN0QyODNGQzAwREYwNDNGQzAwRkIwMDNGQzAwRkYwMDlGCis6MTA5QUQwMDAzRkMwMEZEMDBCRUMwMEVFMDAzRjQwMEZGMDAzRTgwNjU0Cis6MTA5QUUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUY1MDBDRjA4M0Y0OEVFCis6MTA5QUYwMDAwRkMzOTM3MEQwREMzMDNGRDgwQ0IyMDMzQ0MwRkY0MEEyCis6MTA5QjAwMDAzM0M0MkNGMTAzNjI1MEZDMzQzMzAwMEY1QzAzRjAwMENCCis6MTA5QjEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEM0ODA4QjAwMkY1QUVECis6MTA5QjIwMDAwQkE2MTIyMUMwODk3MDJGREMwOEYyQzIzREQwQkY0MEM1Cis6MTA5QjMwMDAzN0RDODhGNTBBMjA4MEU4MTAyQTE2MEI5MDAyRTAwNDMyCis6MTA5QjQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUMwMDA4MzA4MkM0NDlECis6MTA5QjUwMDAwQjAyMDIwQzAwODAwMDJDQzgwODMzNDI4QzkwQjMzMEZBCis6MTA5QjYwMDAyOEM4NEEzMjEyODAwQ0IwQTAyODI4MEIxMjAyRTIwMTQ5Cis6MTA5QjcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUEyMDA4QjAwMkU0OEZECis6MTA5QjgwMDAwQkEwMjIyMDIwODg4MDJFQzAyOEIwMEFBQzAwQkIwMDg5Cis6MTA5QjkwMDAyRUMwMEFCMDAyQTAwMEFCODIyQUEwMEJCMjAyRjAwNEQxCis6MTA5QkEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUU3MDBDQjAwM0VDMDUwCis6MTA5QkIwMDBDRjlDMEIyMTAwRDg4ODNFQzAwQ0IwMDNBQzAwRkIwMDRBCis6MTA5QkMwMDAzQUMwMEVCMDQzRTg0MEY4ODAzQTYwMEY5ODAzRDAwNEUyCis6MTA5QkQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI0MDBGRjAwMEZFMDkyCis6MTA5QkUwMDAwN0ExMDNFODAyRkIwMDNGQzAwRjcwMjM3QzAwRkYwMkM3Cis6MTA5QkYwMDAzNUMwNERCMDAzNzQyMEZDMDEzRjAwMEZGODAzRjgwMDlFCis6MTA5QzAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE1MDBDQjAwQkE0MDNBCis6MTA5QzEwMDAwQzE0MEIyRjIyQzk0MDMyQzA4RUIwMDNBQzAwRkIwMEU1Cis6MTA5QzIwMDAzRUMwMEVCMDAzRTQwMEM5MDAzMjAwMkM5MDAzMTAwNEMzCis6MTA5QzMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwMTI0MDA4RjAwMjI0MDI2Cis6MTA5QzQwMDAyQ0E1NDIyOTAwOEIwNEEzQzEwREYwMEEzQzAwQkYwMEUzCis6MTA5QzUwMDAzRkMwMDhGMDAxNjkwMERBMDUyMkQwMDg5NDAzNzIwMEMxCis6MTA5QzYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTYwNDA4MzAxMjBDMENCCis6MTA5QzcwMDAwOTAwMDIyMDAwODI2MDIyQzAwODMwNDI0QzEwQkIwMjYyCis6MTA5QzgwMDAyQ0MwMDhCMDEyMDUwMDlCMDAyMDgyMDkzMjAyMzgwMDY3Cis6MTA5QzkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTE2OTA4NzgwMjBFMEE2Cis6MTA5Q0EwMDAwODU4MDIxNjE0ODQ4MTIxRTAyOTM5MDI1RTAwQjc4MDI5Cis6MTA5Q0IwMDAyOEUwMDg3ODAyN0E4MDk2ODEyMUUwMDlGODAyNDgwMEJECis6MTA5Q0MwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4MDk4QjEwMzg0NERDCis6MTA5Q0QwMDA0RDI1MTIwQzAwQzIxMDIyQzgwQTM4MDNDQzAwRjMxMDI0Cis6MTA5Q0UwMDAyQ0MwMEMzMDAzOEFDMEQ5MTAzMjQwMkQxMDAzMTIwMjUwCis6MTA5Q0YwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDODBGRjAwM0Y0MDRECis6MTA5RDAwMDAwRkYwMDNGNDQwRUQwMDNGQzAwRUYzMDNCQzA0RkYwMDZFCis6MTA5RDEwMDAzRkMyMEZGMDBCRDQwMEZGMTBCRjgwMEVGMDAzRDAwNjNGCis6MTA5RDIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUZBMDBDQjAyM0VDMDYxCis6MTA5RDMwMDAwRjkwMDNBMDAwQ0IwMDNBQ0EwQ0IzMTNBRjI0Q0I0ODVBCis6MTA5RDQwMDAxRUM4MEZCNjAzMkMwMEZBMDAzRUMwMEY5MDAzRUEwMEI1Cis6MTA5RDUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDg4NzIwMkRDNEZFCis6MTA5RDYwMDAwQjUwMTJEQzA0ODcwMDJDQzAwODcwQTIxRDAwQTc0MDE1Cis6MTA5RDcwMDAyNUNCOEI3NDgyMUMwMEI3MDAyREMxMEI3MDAyRDIwNDVFCis6MTA5RDgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlBMDE4NzkwMkRFMEY0Cis6MTA5RDkwMDAwQjc4MDJDRTAwODY4MDJERTQyOTdBMDI5RTgwODdBMDZGCis6MTA5REEwMDA2REU4MEI3ODAyMUUwMEI1ODAyRDYwMEI3ODAyRjAwMDg0Cis6MTA5REIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENEMDA4MzAyMkNFMEM5Cis6MTA5REMwMDAwQjMwMDJDQzAwODNFMDJDQzAwODMwMDIwQzAwQTMwMDUyCis6MTA5REQwMDAyNEMwMEJCMDAyMEUyMEIzMDgyQ0MwMEIzMDAyRDIwNEZBCis6MTA5REUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4ODJDQTAwM0VBODVDCis6MTA5REYwMDAwRkUwMDNGODAyOEU4MDNFODAwREEwNUJBODAwQ0EwMDMxCis6MTA5RTAwMDAzRTgwMEZBMDAzM0I4MEZFNDIyRjgwMEZBODAzRkEwNDgwCis6MTA5RTEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMjBGODAwM0UwMDY0Cis6MTA5RTIwMDAwRjA2MDNDMDAwRjgxMTNFMDAwRjAwMDNFMDAwRjgwMDI5Cis6MTA5RTMwMDAzNjAwMEY4MDBCRTAwMEY4MDQzRTIwMEY4MTAzRDIwMEIzCis6MTA5RTQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDBGOTAwM0U0MDZGCis6MTA5RTUwMDAwQzlBMDMyNDQwQzlDMDNFNDA0QzkwMDMyNDAwRjkwMEYyCis6MTA5RTYwMDAzNjQwMDc5MDAzMjQwMEM5MDQzMjYwMEY5MDAzQzIwNEY3Cis6MTA5RTcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTAyMkU0MEExCis6MTA5RTgwMDAwQTkyMDIyNTAyODlFMDJFNDA5ODkwMDIyNDAwQjkwMDJGCis6MTA5RTkwMDAyMjQwMDk5MDAyMDQwMEQ5MDAyMjQ0MEI5QzAyRTAwMEY5Cis6MTA5RUEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTJDMDBCOTAwMkM0MDM0Cis6MTA5RUIwMDAwODkwMDIyNDI4ODkwMDJDNDA2ODkwNDIyNDBDQjEwNEE4Cis6MTA5RUMwMDAyNjQwMEI5MDBBMkM4MDgxMDAyMjQwQ0I5MjgyQzYwMDUzCis6MTA5RUQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDBCMTIwMkM0OEVECis6MTA5RUUwMDAwQTEyMDIwNDgwODEyMTJDNEMwODExMDIwNDA4QjExMENFCis6MTA5RUYwMDAyMDRDMDkxMjAyMjQwMTkxMjBBMDQ4MEIxMDAyQzIwMTNCCis6MTA5RjAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDQxRTBGODUwM0UxNEQxCis6MTA5RjEwMDAwQzg1MDMyMTQwQzg1MDNFMTAwODA2ODMwMUYwRjg2ODA0Cis6MTA5RjIwMDAzNjEwMEYwNTAzMjk0MEM4NTAzMjk0MEY4NTAzRUUwMzA1Cis6MTA5RjMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0MDBGOTEwM0Y0NDlDCis6MTA5RjQwMDAwRkQxMEJGNDQwRkQxMjJFNEMwMzkyMEJFNDAwRjkyMENDCis6MTA5RjUwMDAzRTRDMEY5MTAzRkMwMEZEMTAzRjQ0MEZEMDAzRTYwNjdBCis6MTA5RjYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2MjBDOTAxM0U0MDA2Cis6MTA5RjcwMDAwRkQwMDMzQzAwQkQwMDMyNjMwQzlFNDMyNzAwRTlDMEI0Cis6MTA5RjgwMDAzRTY4MEM5ODAzMzQwMEY5MTAzRjQwMEZEMDAzQzYwMDIwCis6MTA5RjkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEMyMjBEODAwMkUwMDIxCis6MTA5RkEwMDAwQjgwNTIyODA0QjgwMDIyMzgwODg4MDM2MjAwODhGMDI5Cis6MTA5RkIwMDAyRTNBNDg4RjBBMjAwMEIwODAyRTAwMEI4MDAyQ0UwNDdCCis6MTA5RkMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0ODA4MTAwMkM0MDIzCis6MTA5RkQwMDAwQjEwMDIwNDAwQjEwMDIwNDI0ODE0NDIwNTgwQTEyMDY5Cis6MTA5RkUwMDAyQzQ0MDgxMDgyMDQwMEIxMjAyQzQwMEIxMDAyQzIwMTQ2Cis6MTA5RkYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE1MDE5OTAwMkU0MDE3Cis6MTBBMDAwMDAwQjkwMDIyNDQwQkIwMTIyNDEwODkwMTIyNDAwQTkwMEI5Cis6MTBBMDEwMDAyQzQwMDgxMDQwMjQwOEI5NDA2RTUwMEI5MjAyQzYwNDMwCis6MTBBMDIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU3MTRDOTA1M0U0MUQzCis6MTBBMDMwMDAwRjkwMEIyNDA0RjkwOEIyNDAyQzkwMEEyNDAwRTkwMDg4Cis6MTBBMDQwMDAzRTQwMkM5MDAzMjcwMEY5ODAzRTYwMEY5MDAzRTgwNDA3Cis6MTBBMDUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMTg0ODhGOTAwM0U0OERDCis6MTBBMDYwMDAwRjk5MDNFNjAwRjkwMjNDNDBBRjEwMDNFNDEyRDkwNDUzCis6MTBBMDcwMDAzRTQwMEY5MDAzRTUwMEY5QzAzRTY0MEY5MDgzQ0EwMDk0Cis6MTBBMDgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEExMDBDODAwM0UwMDkxCis6MTBBMDkwMDAwRjgwMDMyMTAwQzg0MEIyMDAwQzgwMDMyMDEwQzgwMENDCis6MTBBMEEwMDAzMjAwMEM4MDAzRTA4MEY4MDQzMjAwMkM4MDBCMEEwNDlDCis6MTBBMEIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDBDQTAwMkU4MEIzCis6MTBBMEMwMDAwQkU4MEEzODEwOEVDMDIyODAwREEwMDIyODAwMEEwNDc2Cis6MTBBMEQwMDAwMjgwMjhBMDAyRkIwMEJBMDAzN0IwNDhFQTAyMEEwMDVBCis6MTBBMEUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDA5MzAxMkNDMDM3Cis6MTBBMEYwMDA4QkIwNDIwQzkwOUIyMDIwQzA0ODMwNDIyQzAwODMwMDQzCis6MTBBMTAwMDAyMEMwMDgzMDAyQ0Q0MEIzMDAyNEM4MDgzODAyMEEwMDNECis6MTBBMTEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE0MDA4NzAwMkRDMEM2Cis6MTBBMTIwMDAwQjI0MDYxNjAwOTMwODIxQzgwOTMxMDIwQzgwODdBMDcxCis6MTBBMTMwMDAyMUMwMTg3MjAyREMwMEI3QjQyNEUzMDg3ODAyMjgwMEJBCis6MTBBMTQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDI5N0EwM0RGMDlCCis6MTBBMTUwMDAwRjQ4MDMzRTAwRDY4MDMwRTAyQzdBMDIxRTgyQzNGMDA2Cis6MTBBMTYwMDAzM0VDMEM3QzAzRDYwMEY3ODAzNUUwMENEODAzMkEwMkQwCis6MTBBMTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxOUE1QTBGQjAwM0VDQTc2Cis6MTBBMTgwMDAwRjgwMDNFQzAyRUEwMDNFQzYwRkI0MEJFRDQwRkIwMDZCCis6MTBBMTkwMDBCRUMwMEZCNjQzRTAwMEZCMDIzRTgwMEY5MDAzQzIwNjM0Cis6MTBBMUEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDJDRjg4M0ZFMEQ0Cis6MTBBMUIwMDAwQ0I5MDNGRTAwREQ4MTMzRTA4Q0ZDMDMzRjA0Q0Y4MDRCCis6MTBBMUMwMDAzM0UyNEZGQzAzM0UwMENGQzAzMzY0MENGODAzQzAwMDAxCis6MTBBMUQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTk0NDA4NzAwMkZDMTBCCis6MTBBMUUwMDAwRDY5QTJEMDQwQkMwMDIzQzAwOEYwMDI5QzAwODcwMDhCCis6MTBBMUYwMDAyMUMwMEI3MDBBM0MwNDg3MTAyMTRDMDg2MDAyRUEwNDVECis6MTBBMjAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlFMDA4NzAwMkRDMERDCis6MTBBMjEwMDAwOTYyMDJEODAwOTcwMDIxQzQwODcwMDIwQzQwOTcwMDIwCis6MTBBMjIwMDAyMUM0MEIzMDAyNTgwMEE3MDgyMTgwMDg2MDgyQzAwMEJBCis6MTBBMjMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEU0MjU4MzAwMkNDMDUyCis6MTBBMjQwMDAwOTIyMDJDQzIwQjIwMDIwQzAyOEIwMDI4QzAwOTMwMDZBCis6MTBBMjUwMDAyMEMwMEIzMDQyNkMyMDgzMDgyMEUyMDhCODAyQzgwNEZBCis6MTBBMjYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUE0MDBDRjAwM0ZDMDhGCis6MTBBMjcwMDAwRDlDMDNFODAwREI4MDMzQzAwQ0YwMEIzQzA2REYwMEQ0Cis6MTBBMjgwMDBCM0MwMEJGMDA3NjgwMEVGNDAzMkE4MENBODAzRUEwNDQzCis6MTBBMjkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGQjAwMkVDMDA5Cis6MTBBMkEwMDAwRjk0MDNDNTQwRkEzMDNFQzAwRkIwMDM2QzAwRUIwMEMyCis6MTBBMkIwMDAzRUMwMEYzMDEzQUQ0MEZCMDIzRUQwMEZCNDAzRTAwMEIwCis6MTBBMkMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEU0MDBDNzAwMzFDMUIwCis6MTBBMkQwMDA4Q0QwMDMzNDAwQ0QwMDNEQzAwQ0YwMDE3QzAwREIwMUNDCis6MTBBMkUwMDAzREMwNENGMDBCMzAwMkMzMDAzMjAwMEZEMDAzMDA0NERECis6MTBBMkYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZFNDA4QjAwMkFDMDg2Cis6MTBBMzAwMDAyODg0NDIyMjgwODg4MDNBQzAwREIwMDJBQzA4OEIwMEJECis6MTBBMzEwMDAyRUMwMDhCMDAyMjMyMDhCMDAyMjMwOEI4QzAyMjA0MEZDCis6MTBBMzIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI0MDA4QjAwMjJDMDA3Cis6MTBBMzMwMDAwODM4ODYyQTAwODk4MDJBQzAwOEIwMDJDQzAwOUIwMDE5Cis6MTBBMzQwMDAyRUMwMDhCMDQyMjYwMDhCMDAyMjcxMEI4QzAyMjAwMDI4Cis6MTBBMzUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDA4MzAwMjhDMDNBCis6MTBBMzYwMDAwODMyNDIwMDAwODEwMDI4QzAwOTMwNTI4QzA4ODMwMDY2Cis6MTBBMzcwMDAyQ0MwMTgzMDA2MDAwMDgzMDBBMDAwMEIwMDAyMDIwMTcwCis6MTBBMzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDc0MDI4QjAwMzNDMENDCis6MTBBMzkwMDAwQzkyMEIyMDAyQzgwMDNCQzAwQ0Y1MDNGQzAwREYwMTRGCis6MTBBM0EwMDAzRkMxMDRGMDMzMjE0MENGMDAzMjAwMEY4MDBCMDAwMzg3Cis6MTBBM0IwMDA1MDAwMDAwMDAwMDAwMDAwQTAxOUZDMDBGRjAwM0ZDMDlBCis6MTBBM0MwMDAwRkM0MDNGMDAwOUMwMDNCQzAwRkYwMDNGQzAwRkYwMDMzCis6MTBBM0QwMDAyRkMwMEZGMDAzRjA4MEZGMDAzRjAwMEZDMDAzRTgwNjFFCis6MTBBM0UwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwQzBGRkEwMzEyNDk0Cis6MTBBM0YwMDAwRUYwNjMxMDA0RUY2NDNGQzA0Q0YzMDMxQzgwREYwOEQxCis6MTBBNDAwMDAzN0MwMEZGMDAzRjBBMEZDMDAzMTA4MkNEMjAzRjAwMDlECis6MTBBNDEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUxMDBCQkMxMjI0ODc1Cis6MTBBNDIwMDAwOEZEMDIyRTAwOTcwMDJGQzI0ODcxMjM3RTQwQkYwMDE2Cis6MTBBNDMwMDAyMUM1NEJGNTAyRUYwMEJCNDAzNkUwMDhBODAyRTAwNDVFCis6MTBBNDQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM1ODRCMzExQTJDOUQ3Cis6MTBBNDUwMDAwQTMwMDIwMDAxQjMzMDI4QzQwODMyNDIwQzAwQTMwOEJECis6MTBBNDYwMDBBMENBMEEzMjgyODAxMEIwNDEyNDExMDgzMTAyRTIwMUYwCis6MTBBNDcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE1MDBCQjAwMjJFMTM0Cis6MTBBNDgwMDAyOEIwMDIyQzgwOUIwMDJFQzAwOEIwMDI2QzAwQjMwMEU0Cis6MTBBNDkwMDAyMkMwMEJCMDAwRUMyMEJCMDAyNkMwMDg4MDAyRjAwNEY0Cis6MTBBNEEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUUzNDBGNzA0MzJDMEU3Cis6MTBBNEIwMDA0RUIwMjMyRTIwRUIwMDFFQzAwQ0IwMDEyQzAwRkIwMDgwCis6MTBBNEMwMDAzNkMwMUZCMDAzRTE0MEZCMDAzNjk4MEM5MDAzRDAwNDY3Cis6MTBBNEQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI2MDRGRjAyM0ZDMDcxCis6MTBBNEUwMDAwRkYwMDNGRTAwRUYwMjNEQzAwRkYwMjNGQzAwRkYwMDYxCis6MTBBNEYwMDAzRkMwNEZGMDAzRkMwMEY0MDAzQjQwMEZBMDEzRjgwMEY2Cis6MTBBNTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFBMjBFQjEwMzZDMEUwCis6MTBBNTEwMDAwREIwMDdFQzIwREIwMDMyQzAwQ0IwMDI2QzIwRUIwMDY5Cis6MTBBNTIwMDAzRUMxMERCMDAzRTAyMERCQTAzMjkwNENCMDBCMTAwNDE0Cis6MTBBNTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJEMDA4RjgwMjBDMTExCis6MTBBNTQwMDAwODcwMTJDRjAwOEYwMEEzQzAwREYwMDIzQzAwOEYwMEY2Cis6MTBBNTUwMDAzN0MwODhGMDAyRUMwMDg4MDAyMDQwMDg4MDAyMzIwMEZBCis6MTBBNTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRDMDBBMzgwMjQ4MUIyCis6MTBBNTcwMDAwOTMwMDZDQzQwOTMwMDI4QzEwOEIwMDJDRjQwQTMwMEE4Cis6MTBBNTgwMDAyQ0MwMDkzMDAyQ0QwMDkwNDA2MDQwMjgxMDAyMzgwMEY1Cis6MTBBNTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTBFMDA4NzgwMjNFMDMyCis6MTBBNUEwMDA0ODc5MDJERTQxOTc4MDI5RTAxOTc4MDY5RTAwODc4MDZECis6MTBBNUIwMDAyNUUwMDg3ODAyRDIwMzgzODAyMUEwMDg2ODAyMDgwMDAxCis6MTBBNUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBBMzAwMzRDMDU4Cis6MTBBNUQwMDAwRDMwNDJDQzAxRDMxMDNBQzUwQzM5MDNDQzAwRTMwNDUyCis6MTBBNUUwMDAzQ0M0MEQzMDAzQ0UwMEQwMDAzMDQwMEMzMDAzMTIwMkNBCis6MTBBNUYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMDBGNzAwM0ZDMDRDCis6MTBBNjAwMDAxRkYwNTNGQzAwRUYwODM3RDEwRkYwODM3QzAwRjc0MEI4Cis6MTBBNjEwMDAzRkMxMEZGMTAzRDAwMEZGMDBCRjg0MEZDODAzRDAwNjc1Cis6MTBBNjIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUUwMDBGQjAwM0VFMDI0Cis6MTBBNjMwMDAyQ0JFODNFQzAwRUI0MDNFQzAwRkI0MDNFRDIwRkIxMEJBCis6MTBBNjQwMDBCNkQyMEZCNDgzRUMwMERCODAzNkMxMEM5MDIxMkEwMDE3Cis6MTBBNjUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDBCNzAwMkZDMEY3Cis6MTBBNjYwMDAwODM2MDIwQzA4ODczMDJERDk4QjcyODZERDAwQjMyMEE2Cis6MTBBNjcwMDAyMUM4MEI3NDAyRDAwMjg0MDBBMDAwMjgyMDAyMTIwNDFBCis6MTBBNjgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlBMDBCNzgwMkRFMENDCis6MTBBNjkwMDAwODdBMDI5RDAwQTdBMDJERTAwQjc4MDI5RTgwQTc4MDdCCis6MTBBNkEwMDAyMUU0MDg3QTI2OUUxODgzMDQyMUUwMDg3ODBBNzAwMEM1Cis6MTBBNkIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDBCMzAwMkNFMDkzCis6MTBBNkMwMDA1ODMwMTIwRTgyODMwMDJDQzAwQjMwMDJDQzAxQjMwMDM0Cis6MTBBNkQwMDAyMEMxMEIzMDAyQzAwODg4RDIyMDIwMDgwMDAyNTIwNDlBCis6MTBBNkUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4NjBGQTAwM0Y4MjZBCis6MTBBNkYwMDAwQ0EwMDNGQTAwQUEwMDFFODA4RkEwMDNFODAwRjIwMDVECis6MTBBNzAwMDAzMjgwMUZBMDAzRTgwMERBMDAzNjg4QUNFMDAzN0EwNDQ4Cis6MTBBNzEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUxMDBGODAwM0UyMDVBCis6MTBBNzIwMDA0RjgwMDNFMTAwRjAwMDNDMDAwQjgwMDNFMDAwRjgwMkUyCis6MTBBNzMwMDAzQTAwMEY4MDQzRjEwMEZDMEEzRDAwMEZDMDAzOTIwMDc1Cis6MTBBNzQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU2MDBDOTkwM0U0MDA0Cis6MTBBNzUwMDAwRjkyMDNFNDAwRDkwMDMyNDAwNDkwMDdFNzAwRjkxMDlCCis6MTBBNzYwMDAzMDQwMEM5MDQzRTQwOUQ5ODAyMjQwMkMxMDBCMDIwNEE1Cis6MTBBNzcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0NjA4OUMwMkU0MEFBCis6MTBBNzgwMDAwQjk4MjZDNTgwODkwMDIyNDAyODkwMTJFNzEwQjkwMDU2Cis6MTBBNzkwMDAzNjQwMjg5MDEyQzU4M0M5ODBCNjQwMDg5MDAyMjAwMDM4Cis6MTBBN0EwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTA0MDA4OTQwMkU0MTQwCis6MTBBN0IwMDA0QjkwMDJFNDAwOTkwMEEyNDAwQTkwMDJFNTAwQjkwMDIzCis6MTBBN0MwMDBFMjQxMDg5MDQyRTQwMDlENTBBQjRBMDhEMDI2MDYwMEMyCis6MTBBN0QwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODI4MTIwMkM1MDhBCis6MTBBN0UwMDAwQjEwMDJFNDAwODE0MDIwNTA0QTE0MzJDNDAwQjE0MEYyCis6MTBBN0YwMDAyNDUxMTgxNDEyRDQwMDg1NDAyRDQwMDg1MDA2MDIwMTNGCis6MTBBODAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBDODAwM0UwMERDCis6MTBBODEwMDAwRjgwMDJFMDAwRDgwMDMyMDAwQTgwMDJFMDEwRjgwMDQ5Cis6MTBBODIwMDAzMjAwMDQ4MDAzRTAwMEQ4MDAzQTAwMENDMDAzMkUwMzdECis6MTBBODMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDBGOTEwM0Y0MTU2Cis6MTBBODQwMDAwRjk0MDNGNTAwRjk0MDNFNTAwRDk0MDNFNTEwRjk0MEQ0Cis6MTBBODUwMDAzRTUwNEY5NDAzQzUwMEU5NDEzNjUwMEY5NDAzRTYwNjdECis6MTBBODYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2MDBGREE4M0E0MDQ2Cis6MTBBODcwMDAwQ0Q4MjMzNjAwRTlBMDNFNzgwRjlFMDNCNjgwQ0RFMkM3Cis6MTBBODgwMDAzMjY4MEM5QjAzMzY4MjREQTAzNzY4OEM5ODAzMDYwMDEzCis6MTBBODkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEVCQTBCODQwMjAyMDNECis6MTBBOEEwMDAwODg1MDIyMTUxODhDMDJFMjkwQjhFMDJFMTAwRDhFMEQ0Cis6MTBBOEIwMDAyMjMyMEQ4RDIzNjE0ODk4RDRBMjEwMjg4NDAyMEUwNDAwCis6MTBBOEMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM1MDBCMzAwMkE0QTVGCis6MTBBOEQwMDAyODEwNEVBNDA4QTE2ODI4NDQwQjE0MDJDNTAwODE0MDJBCis6MTBBOEUwMDBBMDUwMDgxMDAyMDQwMjkxMkEyMDQ0MjgxNDRBMDIwMUIwCis6MTBBOEYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUFDODBCOTAwMjI0MDc0Cis6MTBBOTAwMDA0ODkwMDZBNDAwQTkwMDJFNDAwQjkwMjJFNDAwOTkwMDc0Cis6MTBBOTEwMDAyMjQwMDkxMDAyNjQwMjk5MDAyMjQwMDg5MDAyMDYwNEI1Cis6MTBBOTIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBGOTAwMzg1OEE1Cis6MTBBOTMwMDAwQzkwNTM4NDE0QTkwNDNFNDAwRjkwMDNFNDAwQzkwMDE2Cis6MTBBOTQwMDAzMjQwMEM5MDAzMjQwNEQ5MDBCNjQwNEM5MDBCMjgwNEVDCis6MTBBOTUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDBGOTAyM0U0OTM4Cis6MTBBOTYwMDAwRjEwNDM2NDAwRDkwMDNFNDAwRjkwMDNDNDAwRjEwMjcxCis6MTBBOTcwMDAzRTQwMEY5MDAzQzQwMkU5MDQzQzQwMEYxQzAzQ0EwMDkwCis6MTBBOTgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEExODBDODIwM0UwMEU4Cis6MTBBOTkwMDA4QzgwMEIyMDAwRTgwMjNFMDAwRjgwMDNBMDgyQzgwMERDCis6MTBBOUEwMDA2QzAwMEY4MDAzMjAxMEM4MDAzMjAyMEM4MDAzMEEwNEUwCis6MTBBOUIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTM4MDA4NjAwMkU4MERFCis6MTBBOUMwMDA2OEE4ODAzQTAwOEEwMDJFODAwQkEwMDJGODAwOEEwMDU2Cis6MTBBOUQwMDAyRTgwMEJBMDBBM0EwMDhFMTAyMzgwMDhBMDAzMEEwMEU0Cis6MTBBOUUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTREMDA4MzAwMkNDMDNFCis6MTBBOUYwMDAwODM4MDAwQzYwMjMwMDJDQzAwQjMwMDJDQzQwODMwMEQwCis6MTBBQTAwMDAyQ0MwMEIzMDAyMEMwMjhBODBBMEUwMjgzMDBBNEEwMEQ5Cis6MTBBQTEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTE2MjA4NzAyMkRDMTk4Cis6MTBBQTIwMDA0ODcwMTI3QzAwQTcyMDJEQzkwQjcyMDBEQzAwODcwODNCCis6MTBBQTMwMDAyREM0MUIzMjAyMUQwMTg3NDIyMUMyMDg3MDAyMjgwMDZBCis6MTBBQTQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODNFMDJDNzgwM0RFQzY2Cis6MTBBQTUwMDAwQzU4MDMxRTAwRTc4MDNERUMwRjdGMDM5NjAwQzc4MDczCis6MTBBQTYwMDAyREUyMDc3OTAzMEEwNkMzODAzMDIwOEMzODAzNkEwMjdFCis6MTBBQTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGQjAwM0VDMDBDCis6MTBBQTgwMDAwRjEwNDM4QzAwREIzODNFRDgwRkIwMDNDQzA0RkI0NERFCis6MTBBQTkwMDAzRUMwOEZCNjEzRUMwMkZGMDIzRTAwMEZCMDAzQzIwNkE5Cis6MTBBQUEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZBMDBGRjgwMzFFM0I0Cis6MTBBQUIwMDAwRUY4MjNGRTAyREY4MEI3RTIwRUY4MDM3RTAwNkREMEIxCis6MTBBQUMwMDAzM0UwMENGODlCNzZDMERGODRCM0UwMDRGODAzQzAwMEU5Cis6MTBBQUQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTkwNDBCNzAyMjFDNERGCis6MTBBQUUwMDAwODdCNDJEQzAwODcwMDIxQzQwQjMwMDAxMDgwOEQwMDAxCis6MTBBQUYwMDAyM0MwMERGMjAyMDQ0MjhGMDAyOUM4Mjg3MDAyRUEwNDI0Cis6MTBBQjAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDk0MDBCNjAwMjNDMEI4Cis6MTBBQjEwMDAwQTcyMDI4QzAwODcwMDIxQzAwQTMwMDIwNDAxQTcwMkQ5Cis6MTBBQjIwMDAyMUMwMDg3MDQyMDA4QTg3MDAyMUMwMjg3MDAyQzAwMDNFCis6MTBBQjMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEM1MDBCMDAwQTBEMERDCis6MTBBQjQwMDAwOEIwMDJDOTQyOEIwMDIwQzAwQjMwMjIwNDAwODMwMEYxCis6MTBBQjUwMDBBMEMwNDkzMDAyNDU0MDkzQzBBOEQ0MDAzNTAyQzgwNEMzCis6MTBBQjYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFDMDBCQjAwMzFDMEEwCis6MTBBQjcwMDAwRUIwMjNDRDAwREYwMDM3QzAwRUYwMDE2ODAwRTMwMDA3Cis6MTBBQjgwMDAzM0MwMUNGMDAzNDUwMERBQzg5MkQ0MkNCNDAzRUEwNEE1Cis6MTBBQjkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEU1MjBGQjAwM0VDMEQ3Cis6MTBBQkEwMDAwRkIwMDNFQzAwRkIwMDNFQzA0RkIwMDNBRDAwRkIwMDU0Cis6MTBBQkIwMDA3RUMwMUYzMDAzQTQ4MEU5MjAzQ0MwMEYzMjAzRTAwMEI4Cis6MTBBQkMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMERDMDBDNzAwMzNDMkFDCis6MTBBQkQwMDAyQ0YwMDMzRTIwREIwMDEzQzAwQzcwMDMzQzgwRUYwNDFDCis6MTBBQkUwMDA3M0MxMEZGMDIyMzAwMEM2MDBCMkMwMENGMDAzMDA0NDY1Cis6MTBBQkYwMDAzMDAwMDAwMDAwMDAwMDAwODEwMDY5MDA4QjQ0QTJDMTA5Cis6MTBBQzAwMDA4OEIwMDM2QzAwOEIwMDIyQzAyOEIwMEEyRDAwQkIwMDY2Cis6MTBBQzEwMDA2MkMwMEJCMDAyMjYwMjhCODAyMkMwMDhCMDAzMjA0MDI1Cis6MTBBQzIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI4MDE4QTA4MjJDMEYyCis6MTBBQzMwMDAwOEIyMDI2QzQwOUIwMDI4QzA0OEIwMTYyOTA0QjkwMTM0Cis6MTBBQzQwMDAyMkMwNDlCMDA2QUUwOThCODAyMkUwNDhCMDAyMjAwMDQ1Cis6MTBBQzUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDAwMDI4MjAwMjJDMDQyCis6MTBBQzYwMDA4OEIwMDI0NDAwODMwMDI4QzAwODMwMDIwODAwQjEwMDA4Cis6MTBBQzcwMDAyMEMwMEIzMDAyOEMwMDgzODAyMEUwMDgzMDBBMDIwMUUzCis6MTBBQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDY0MDBDQTAwMzNDMDk2Cis6MTBBQzkwMDAwQ0IyMDMyQzAwREYwMDNCQzA0Q0Y1MTMyQzA0RUYwMDdBCis6MTBBQ0EwMDBBM0MwMERGMDAzQTg0MENCMDBCMjAwMkNCMDAzMDAwM0ZBCis6MTBBQ0IwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREYwMDBGNDAwM0ZDMEE0Cis6MTBBQ0MwMDAwRkIxMDNGMDAwRkYwMDM3QzAwRkYwMDNGQzAwRkYwMERFCis6MTBBQ0QwMDAzRkMwMDdGMDBCN0MwOEZGMDEzRjAwMEZGMDAzQTgwNjAwCis6MTBBQ0UwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwQzVFRDMzM0JDQzUzCis6MTBBQ0YwMDAwQ0YwMDMzMDQwRkYyNTNGQ0MwQ0YzODMzQ0QwREY0ODAxCis6MTBBRDAwMDAzNzMwNENGMzAzRkQ4MENGMjgzM0Q4MENGMTAzMzAwMEVCCis6MTBBRDEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDRDBCQjMxMjBDQzlGCis6MTBBRDIwMDA4OEYzNDIyMDUwQkY5MDJGQzQwQUY2MDI3REMwOEY0MEE2Cis6MTBBRDMwMDAyNjQwOEZGNjAyRkQwMEZGMDgzOUM4MDhGNjAyQTAwNDdECis6MTBBRDQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0ODBBMTIwMjhDOTUwCis6MTBBRDUwMDAwODMwOUEwMDA5QjMwMDJDQzAyMDMwMDI0QzkwODMyMEE4Cis6MTBBRDYwMDAwMjA4MEIzMzEyQ0Q4MDkzMjAyNEQ4MDgzNDIyMjIwMTBDCis6MTBBRDcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMUFFMDBCQjEwMjJDMDM3Cis6MTBBRDgwMDAwOEIwMDIyNjAxM0IwMTZFQzAwOEIwMDI0QzA4OEIwMERGCis6MTBBRDkwMDBBMjg5MEJCMDAyRUMwMEFCMDA2QUMxMjhCMDAyQjAwNDdCCis6MTBBREEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNTZFMDBFOEMxM0FDMERECis6MTBBREIwMDAyQ0IwNDMyNjAwRkIwNjNFQzEwQ0IwMEIyQzAyQ0IwMDhFCis6MTBBREMwMDAzNDIyOUZCMDQzRUMwMDlCMDIzNkMxOENCMDAzMTAwNEM4Cis6MTBBREQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJDMDBGQzgwM0REMERECis6MTBBREUwMDAyRkYwMDNGQzAwRkIwMDNEQzAwNzMwMDNCQzAwRUYwNDY0Cis6MTBBREYwMDAzRkUwNUVCMDAxRkMwMEZGMDAxQkMwMEZGMDAzRjgwMDU1Cis6MTBBRTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBDQjAxM0VDOTEzCis6MTBBRTEwMDAwQ0IwMTcyMDg0RUIwMEIyQzEwREIwMDM2QzAwQzMwMDZFCis6MTBBRTIwMDAzMjUwMEZCMDAzMEM0MEMzMDA3RUMwMEMzMDAzMTAwNDNFCis6MTBBRTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDA4QTU4MkVFMDA5Cis6MTBBRTQwMDA0OEYwMDIyRDAwRUYwMTIzQzAwOEYwMjIzQzA0OEY2MDdGCis6MTBBRTUwMDAzNjU0MEJGMDBBM0Q0MDhGMDAyRkMwMDhGMDAzNzIwMEZCCis6MTBBRTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTQwMDA4OTgwMkMxMDM4Cis6MTBBRTcwMDAwOEIwMDI0OTAwQTNBMDI0QzAwOTMwMDI0QzAwODNDOUQ1Cis6MTBBRTgwMDAyMDkwNDIzMDEyNEQwMDgzMDA2QUMwMDkzMDAyMzgwMDIxCis6MTBBRTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTE2MDA4NTgwNkQ2MjU3Cis6MTBBRUEwMDAwODdFMDI1NjQwMjc4MDI1RTAxOTc4MDYwRTAwODM4MDMwCis6MTBBRUIwMDA2MUEwMEI3ODAyNEUwMDg3ODI2REUwMDk3OTAyNDgwMDlDCis6MTBBRUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODJDMDJDMzYxM0M4OERDCis6MTBBRUQwMDAyQ0JBMTI0OTEwRTMyQzM2QzAwRDMwNTM0QzQ0QzMwMDM5Cis6MTBBRUUwMDAyMDAxMEYzMTAzNEMwMEMzMDEzQ0MwMkRCMTAzMTIwMkZECis6MTBBRUYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMDBGRjAwM0YwMEZCCis6MTBBRjAwMDA0RkYxMDlCMDAwRkYwMDNCQzAwRUY0MDFGRDI0RkY0MEVCCis6MTBBRjEwMDBCRkMwMDdGMDAzQkMwMDZGMTAzRkM0MUVGMTgzRDAwNjEyCis6MTBBRjIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUM0MDBFODA0MzIwMDMyCis6MTBBRjMwMDAwQ0I2MDNFODAyQ0IwMDM2Q0EwRkI1MDNBRDAwRkIyMDA4Cis6MTBBRjQwMDAzRTQwMEZCMzAzRUM4MEZCQTgzMkM2OENCNjAzMkEwMDQ4Cis6MTBBRjUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDJFNjAwMjAwMDhDCis6MTBBRjYwMDAwODczMDJEQzAwODc3MDJERDAwQkYwMDIxQzg0QjcyMDIwCis6MTBBRjcwMDAyREMwMEI3MDgyREQyNEI3NDAzNEM5Mjg3MjgyOTIwNDQwCis6MTBBRjgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMEJFMDJBQzgwQTEyMEY0Cis6MTBBRjkwMDAwODc5MDBDRTA0ODc4MDY1RTAwQjdBMDI5RTAwQjc5MEE2Cis6MTBBRkEwMDA2REEwMEI3ODAyREUwMEI3ODAyMUUwMDg3ODAyMzAwMDQ3Cis6MTBBRkIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNEVEODJBQkUwMjBFNDE3Cis6MTBBRkMwMDAwODMwMDJFRTA0ODMwMDJDQzExQjMwMDIwQzA4QjMwMEQxCis6MTBBRkQwMDA2NEY2MEJCMDAyQ0MwNEIzMDAyNkMwMDgzMDAyOTIwNDIxCis6MTBBRkUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJCODBFRTQ5MzFBMEYxCis6MTBBRkYwMDAyQ0EwMDNGQTAwQ0EwMjM2ODAwRkEwMDNBODAwRkEwMkIwCis6MTBCMDAwMDAzRjkwMEZBMDYzRTgwMEZBMDAzMjgwMENBMDIzM0EwNEJFCis6MTBCMDEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMEFFODAwM0UwODcwCis6MTBCMDIwMDAwRjgwMDNFMzUwRjAwMDNFMDAwRjgwMTNFMDAwRjgwMEIzCis6MTBCMDMwMDAzRTAwMEY4MDAzRTAwMUY4MDE3RTAwMEY4MDAzRDIwMDg0Cis6MTBCMDQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0NDBDOUExMzI0MEI4Cis6MTBCMDUwMDAyMDExMDFBNjQwQzk4NDM2NDAwRDkwMDM0NDAwNDEwMEYwCis6MTBCMDYwMDAzMjQwMEY5MDBCMjQwMEY5MDAzRTQwNEMxMDAzMDIwNEM0Cis6MTBCMDcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDA4OTgyQTI0MENCCis6MTBCMDgwMDAwODlDMDIyNTAwODlDODIyNDAwODkwNDIyNDAwODkyMDlCCis6MTBCMDkwMDAyMjYwMEI5MDAyMjQxMEI5MDAyRTQwMDg5MDAzNjAwMDNCCis6MTBCMEEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDA4OTA0MjJDQUQ2Cis6MTBCMEIwMDAwQTkwMEEyNTAyODkyMDIwNDAyODEwMDI2NDAxQTkwMDc0Cis6MTBCMEMwMDAyMjRCMEI5MDAyMjQwMUI5MDAyRTQxMjg5MDAyMDYwMDY5Cis6MTBCMEQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0OTA4MUEwMjA0ODA3Cis6MTBCMEUwMDAwQTMyMDIwNDgwODEwMDIwNDQwODExMDIwNEQwQTEyMDA5Cis6MTBCMEYwMDAyMDQwMEIxMTAyMDYwMEIxMzEyQzQ4MDgxNDAyNDIwMTE1Cis6MTBCMTAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDJDODU0MzIxNDc1Cis6MTBCMTEwMDAwRTg1MDMyMTQ0QzgyOEIyMUE0Qzg2OTM2MTE0RTg1MDY2Cis6MTBCMTIwMDAyMjE0MEY4NjgzMjE0MEYwNDAxRTE0MEMwMDAzMkUwM0NFCis6MTBCMTMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxRDc0NDRGNTEwM0Y0NENBCis6MTBCMTQwMDAwRDkxMDM3NDQwRjkwMDNFNDgwQjkyMDNFNEMyRDkxMEZDCis6MTBCMTUwMDBCRjQwMEY5MjAzRTUwNEY5MzAzRTQ0MEY5NDQzRTYwNkU2Cis6MTBCMTYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2MjJDREExMzM2MTM4Cis6MTBCMTcwMDAwQ0Q4RDMzNDEwQ0RBODNFNjA4RTlDOTNBNzA4Q0Q4MDA4Cis6MTBCMTgwMDAzMzQwMEU5QUQzMzZBMEM5ODAzMjYwMEM5OTAzMDYwMDcyCis6MTBCMTkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUzODg4QUEwMjAyODFBCis6MTBCMUEwMDAwODgwMjIyMDEyODg0MDJDMjgwODhBMDIyMjAwODgwMDY5Cis6MTBCMUIwMDAyMjAwMEI4QzAzMjEwMDg4RDBBMjNFMjg4RDAyMEUwNEIxCis6MTBCMUMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUNFMjBBMTQ4MjA1MkY5Cis6MTBCMUQwMDAyOTEwMDIyNDAzODEwMDJDNTIwQTEwMTI4NTEwOTE0MDdDCis6MTBCMUUwMDBBNDQwMEExMjgyNDQwMDkxMjgyNDQwMjgxMjAyMDIwMTNECis6MTBCMUYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDBBOTE0MjI0MEVGCis6MTBCMjAwMDAwOTkwMDJBNDAxODkwNDJDNDAwODkwMDIyNDAwOTkwMEFFCis6MTBCMjEwMDAyMjQ0NEIxMDQyMjQxNDk5MDAyNjQwMDgxMDAyMDYwNEQwCis6MTBCMjIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0NDBFOTQwQjI3ODkyCis6MTBCMjMwMDAwRDkwMEIyNDIyQzkwMzNFNDEwRTkwMDNBNDAyRDkwMEI1Cis6MTBCMjQwMDAxNjU4MDY5MDBCNjQwMkQ5MDAzNjQwMEM5MDBCMjgwNDY3Cis6MTBCMjUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMTg0MDBEOTgwM0U0QUYwCis6MTBCMjYwMDAwRTkwMDM2NDIwRjkwODNFNDEwRjkwMDNFNDAwRTEwOENBCis6MTBCMjcwMDAzRTQwMEY5MDAzQzQwMEUxMDAzODQwMEY5MDAzQ0EwMDI1Cis6MTBCMjgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDlGMDQwQjAxMDhECis6MTBCMjkwMDA0QzAwMEIyMDAwRjgwMDNBMDAxQzAwMDNFMDAwQzgwMDNFCis6MTBCMkEwMDAzNjAwMEM4MDAzMjAwMEM4MDAzMjAwMEY4MDAzMEEwNDFGCis6MTBCMkIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTI4MDAzRTg4MjNBMjhFCis6MTBCMkMwMDA0OEUwMDAxOTgwQkU4ODJFODAwREEwNDJFODAwOEUwMDY0Cis6MTBCMkQwMDAyMzkwMDhBMDBBM0EwMERBMDAzNjgwMEJBMDBBMEEwMDgwCis6MTBCMkUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCMzgwMjBFMDcyCis6MTBCMkYwMDAyODMwQzIwRjEwQjM0MDI4QzAwQjMwMDJFQzExODM0MDNECis6MTBCMzAwMDAyOEQyMEEzMDAyMENDMDgzMDAyMEMwMEIzMDAyMEEwMDkxCis6MTBCMzEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDMDBCNjAwMjFDMDg5Cis6MTBCMzIwMDAwODIwQzIxQzEwQjUwMDJEQzgwQTcyMDJEQzQwODUwODM2Cis6MTBCMzMwMDAyOUEyMUE3MjIyMEMwMDkzMzAwNUM0MEIzMjIyMjgwMDc1Cis6MTBCMzQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODE2MDBCMjgwMzEyMDc0Cis6MTBCMzUwMDAwQzU4MDMxRTAwRjc4MDM5RjgwQjdDMjJDRTQwQ0Y4MEJBCis6MTBCMzYwMDA5QjYwMkUzQjAzMUEwMEM3QTgxMUUwMEY3ODAzMkEwMjQ2Cis6MTBCMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREE0MDBGQTAwM0VDMDBDCis6MTBCMzgwMDAwRjkwMjNFODAwRkIwMDNFRDAyREI2MDNFRDAyRjkwMDNDCis6MTBCMzkwMDAzMjQwMERCMDA3RUMwMEZCNjAzRUM4MEZCNTAzQzIwNjlCCis6MTBCM0EwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBGRjgwMzNBMEU4Cis6MTBCM0IwMDAwQ0Y4MEIzMjQwQ0U4MTM3RjAwQ0JDMDNGRTAwRkY4NDRBCis6MTBCM0MwMDAzM0UwMkNGODgzRTYwMkNGODUzM0YwMENGQzAzMDAxNDQ1Cis6MTBCM0QwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDBCRTAwMzVDNkVGCis6MTBCM0UwMDAyODMwMDIzMDQwODcwMDIzQzAwODdBMDJEQzAwQkUwMDBCCis6MTBCM0YwMDAyM0MwMDg3MDEyRkUwMDg3MDAyMUMwMDhGMDAyMkEwNDUyCis6MTBCNDAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDk1MjBCNjAwMjA4MEQxCis6MTBCNDEwMDAwODMxMDI1QzAxODcwMDI1QzAwODcyMDJEQzAwQjYwMDFBCis6MTBCNDIwMDAyMUQwMDk3MDAyRDQwODkzMDAyMEMwMDg3MDAyMDAwMEU3Cis6MTBCNDMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEM0MDBCMEUwMjQ2MEUwCis6MTBCNDQwMDAwODIwMDY0ODAxODAwMDIwQzAwODMwMDJDQzA0QjMwMDY4Cis6MTBCNDUwMDAyMDg0MEIzMDAyRTgwMDlCMDAyMEMwMDgzMDAyMDgwNDYyCis6MTBCNDYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFDMDBCOUUwMzI4MEY4Cis6MTBCNDcwMDA2Q0IwMjM2RjAwQzMwMDM3QzEzQ0YwMDNGQzAwRkEwMDNFCis6MTBCNDgwMDBCMEMwMDlGMDAzRUMxMERGMDA3M0MwMENGMDBCMkEwMDExCis6MTBCNDkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMTBGODAwM0U0MjU4Cis6MTBCNEEwMDAwRjI0MDNBODYwRjgwMDNDQzEwRkIwMDNFQzAwRjk0MDgyCis6MTBCNEIwMDAzRTgwMDRCMDIzRTEwMEVCMDAzRUMwMEZCMDAzRTAwMDhCCis6MTBCNEMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEY0MDBFRTAwM0QzMEVDCis6MTBCNEQwMDAwQ0MwMDMxNDAwQ0NBMEIzQzA0QzcwMDM1QzEwREYwMEEwCis6MTBCNEUwMDAzRjAwMENGMDAzRjgwMENGMDAyM0MwMENGMDAzMDA0MDM1Cis6MTBCNEYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDY0MDBCQTgxMkU1ODcyCis6MTBCNTAwMDAwODg4MDIyNzgwODkyMDIyQzAyOEIwMDIyQzAwODg4MzY2Cis6MTBCNTEwMDAyRTIwMDVCMDYyRTMwMDhCMDAyQUMwMDhCMDAzNjA0MDEzCis6MTBCNTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTI2MDBCOTgxMkU0MEI4Cis6MTBCNTMwMDAwODhDMDYyNjAwODgwMDIyQzAwOEIwMTY2QzAwOTg4ODg3Cis6MTBCNTQwMDAyRTIwMDhCMDA0RTMwMTBCMDAyOEMwMDgzMDAyMjAwMEMwCis6MTBCNTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDBCMDAwMkNDMEZGCis6MTBCNTYwMDAyODAwMEUwMDEwODAwMDIwQzAwODMyMDIwQzAwODAwNDY5Cis6MTBCNTcwMDAyRTIwMDkzMDAyQzQxMjgzMDAyOEMwMDgzMDAyNDIwMTg0Cis6MTBCNTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBGQTAwM0UwMDBBCis6MTBCNTkwMDAyQzkxMDMyMDAwOEEwMDMzQzAwQ0YwMDM3QzAwRDgwMEZCCis6MTBCNUEwMDAyRTQwMENGMDAzRTA4MENGMDAzQkMwMENGMDAzMDAwMzAyCis6MTBCNUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREZDMDBGQzAxM0Y0MDA2Cis6MTBCNUMwMDAwRkMwMTNGMDAwRjQwMDNGQzEwRkY0MjNGQzA4RkMwMDhGCis6MTBCNUQwMDAzRjAwMEZGMDAzRjA0MEZGMDAzRkMwMEZGMDAzRTgwNjBDCis6MTBCNUUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZDMjBDRDEwMzlDODJDCis6MTBCNUYwMDAwREMxMDMzQzgwRUY5MDIzRDgwRkY4MDBGRTAwQ0Y4MEYwCis6MTBCNjAwMDAxRkQwMEZGOTAzRkYwMEU3QzAzM0M0MEZGMDAzQjAwMEYxCis6MTBCNjEwMDA3MDAwMDAwMDAwMDAwMDAwQzAxMEZFMDI4OTQwMjNGMDBFCis6MTBCNjIwMDAwODg1MTAzQzAwOEIwMEEzREM0QkIyODJFQzIwOEIwMDIxCis6MTBCNjMwMDAyNkMwNEJCMDAyRUMxMEI5MDQyQUM5MEJCNTgwRjAwNDQ3Cis6MTBCNjQwMDAzMDAwMDAwMDAwMDAwMDAwQzgwNUNDMDA4MTY0MjhDNDYwCis6MTBCNjUwMDAwOUIyMEEwQ0YwQTMyMDIwQzgwQjMyMDJFQzAyODMwOEM2Cis6MTBCNjYwMDAyQ0M4MDkzMjAyQ0M4MEFCQTAyMEM4MEIzMjAwQjIwMTNBCis6MTBCNjcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMTA4OTAwMjJDMDVFCis6MTBCNjgwMDAwOEIyMTIyQzAyMEIwMDIyQzAwQkI4MDJFQzAwOEIwMDk3Cis6MTBCNjkwMDAyNkMwNEJCMDQ2RUMwMEI5MDAwQUMwMEJCMDAyRjAwNDYzCis6MTBCNkEwMDA2MDAwMDAwMDAwMDAwMDAwRDAxNUVDMTBDOUUwM0FDMEI2Cis6MTBCNkIwMDAwRDI4MDMyQzAwRUIxMDMyQzAwRjgyMDNDNDAwQ0IwMDE2Cis6MTBCNkMwMDAzRUMxMEZCMDA2RUMwOEU5MDBCMkMwMEZCMDEzOTAwNDAxCis6MTBCNkQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMTlDMDBGNUEwM0ZDMEU5Cis6MTBCNkUwMDAwRkU4MDNGQzA4RkYwMDNGQzA4RkMwMDNGQzAwRkYwMDExCis6MTBCNkYwMDAzN0MwMEZGMDAzRkMwMEZGMDQzRUMwMEZGMDAzRjgwMDVBCis6MTBCNzAwMDA2MDAwMDAwMDAwMDAwMDAwNTAxMEFDMDBGOTQwMzRDMEEwCis6MTBCNzEwMDAwREI0MDMyQzAwREI0MDNFQzAyQzgwMDM2NDA4RkIxMEZBCis6MTBCNzIwMDAzRUM2OEZCMDAzRUMwMEY5ODAzMkMwMENCMDBCMTQwNDlECis6MTBCNzMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTNFMjBFOUM4MzdENDAyCis6MTBCNzQwMDA0OEFBMjIxQzAwOEIwMDZGRTAwODg1ODJFRDQwQkI4NDc0Cis6MTBCNzUwMDAyRkMwNEJCODAzQUQ0MEIzMDAyM0Q0MDhGNzAyMzIwMDJBCis6MTBCNzYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwMTRDMDBCMTY0QTRDMEYzCis6MTBCNzcwMDAwOTIwMEEwQzA0QjgwMDZDQzAwODM4MDJDODQwQjM4MDI1Cis6MTBCNzgwMDAyQ0QxMEIzMDAyQ0MwNEIzMDAyOEMwMDgzMDAyM0EwMEEwCis6MTBCNzkwMDA1MDAwMDAwMDAwMDAwMDAwQjAwMTFFMDBBNTgwMjVFMDYwCis6MTBCN0EwMDA4ODNBMTIxRTAwQTY5MDJERTIwODc5MDJEQTAwQjc4MkNDCis6MTBCN0IwMDAyREUwMDM3ODgyOUUwMEJDQzEyOUUwMDg3ODAyMkMxMDlECis6MTBCN0MwMDA0MDAwMDAwMDAwMDAwMDAwNDkwODBDMDBGMzAwMzRDMEY1Cis6MTBCN0QwMDAwRDNFMDMwQzAwRjA0MDJFQzAwQzMwNDNDODAwRjMwMEI3Cis6MTBCN0UwMDAzQ0MwMDczMDAzQ0M4MEYyMDAzOEMwMEMzMDAzMTIwMjlBCis6MTBCN0YwMDAwMDAwMDAwMDAwMDAwMDAwNDAxOUJEMjBGNzAwM0ZDMjFCCis6MTBCODAwMDAwRkYxMEJEQzIwREUwNDNGRDIwN0YwMTNGODQwRkYwMEZECis6MTBCODEwMDAzRkMwMDdGMDAzRkMwMEZEMDAzN0MwMEY3MDAzRDAwNkU3Cis6MTBCODIwMDA2MDAwMDAwMDAwMDAwMDAwQUEwNUNGMDBEQzAwM0VDQTU2Cis6MTBCODMwMDAwRkEwMDBBQzkyQzkwMDMyQzAwRkIwMTFBNDA4RkIwMEU5Cis6MTBCODQwMDAyRUMwNEZCMDIzRUMwMEY5MDAzRUM0MEZCMDAzRUEwMDU1Cis6MTBCODUwMDA3MDAwMDAwMDAwMDAwMDAwQzg5MTlDMDA4NDAwMDFDMDNFCis6MTBCODYwMDA0QjcwMjIxQ0MwODcwMDIxQzA0QjcwMDIxQzAwQjcwMTI2Cis6MTBCODcwMDAyNUQ4MEI3MDIyREMwMEI2MDAyREMwMEI3MjIyRjIwNDFBCis6MTBCODgwMDA2MDAwMDAwMDAwMDAwMDAwODAwMDlFODA5NzgwQTlFMDFBCis6MTBCODkwMDAwQkY4MDJDRTA4ODU4MDI5RTgwQkZDMDIxNzAwQjc4MDYwCis6MTBCOEEwMDAyREUwOEI3ODAyREUwMEI0QzAyREU4MEI3OTAyRTAwMEI5Cis6MTBCOEIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDA4MzA4QTBDMDU1Cis6MTBCOEMwMDA4QjNDMDI0QzAwODMwMEEwQzAxQjNDMEEwRjI5QjMwMDM0Cis6MTBCOEQwMDAyNEMwMEIzMDAyQ0MwMEIzODAyQ0MwMEIzMDAyRDIwNDQ5Cis6MTBCOEUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBERTAwM0E4MEVCCis6MTBCOEYwMDAwRkVBMDJFODAwQ0UwMDNBODAwRkUwMDMzODAwRkEwMEI5Cis6MTBCOTAwMDAzRTgwMEZBMDAzRTgwMEZFMDAzRTgwMEJBMDAzRkEwNDc3Cis6MTBCOTEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDBGODA0QkEwMUU4Cis6MTBCOTIwMDAwRjgyMEI4MDA0Rjg4MDNFMDAwRjg2MDM2MDAwRjgwMDUxCis6MTBCOTMwMDAzNjAwMEY4MDIzRTEwMEY4MDAzRTAwMEY4MDAzRDIwMEE0Cis6MTBCOTQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDFGOTAwMzI0MDVGCis6MTBCOTUwMDAwRjkwMDNFNDAwNDkwMDMyNDAwQjkwMDMyNDAwNDkwMDlCCis6MTBCOTYwMDAzQzQwMEQ5MDAzRTQwOEM5MDAzRTYwMEM5MDAzMDIwNEMzCis6MTBCOTcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDBCOTQwQTI2NEIwCis6MTBCOTgwMDAwQjE4MDIyNTAwRDE1MDM2NTA0RTkwMEEyNDAyODk0MEVGCis6MTBCOTkwMDAzQTUxMDg5NDAyRTUyMjg5NDQyRTYwMjg5MDBBMjAwMDNBCis6MTBCOUEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwMTI0MDBCMTA4MjI0MDJGCis6MTBCOUIwMDA0QjkyODJBNTAwQTkwODIyNTAwQTEwMDIwQzAwQTk0MDRGCis6MTBCOUMwMDA2RTUwMEI5NDAyQzQwNDg5NDQ2QzQ4ODgxMDAyNDYwMEVGCis6MTBCOUQwMDA0MDAwMDAwMDAwMDAwMDAwMDAwNDA0MDBCMTQwRTA0MDBFCis6MTBCOUUwMDAxQjE0MEEwNDAwQjkwMDI0NDAxQTEwMjIwNDAwQTEwMDBDCis6MTBCOUYwMDAyODQwMEExMDEyQzQwMDgxMDI2QzQwMDgxMjAyNDIwMTYxCis6MTBCQTAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDhCMDAwMzIwMDI3Cis6MTBCQTEwMDA0RjgwMDJBMTUwRTA1MDMyMTQwRUE1MjMyMTQwRTg1MDdGCis6MTBCQTIwMDAzRTE0MEY4NTAzRTE0MEM4NTAxRTE0MEM4NTQzNkUwMzdECis6MTBCQTMwMDA1MDAwMDAwMDAwMDAwMDAwRDgxOUU1MDBGRDQwM0U1MDE1Cis6MTBCQTQwMDAwRjc0MDNBNTAwNUQwMDNFNTAwQTUwMTNGNDAwRDkwMEE2Cis6MTBCQTUwMDAzQTUwMEQ5MDEzRTQwMEZGMDAzRTUwMEY5MTAzQTYwNkVDCis6MTBCQTYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY2OTBCREU4MjM2QjkwCis6MTBCQTcwMDAwQkRBMEIzNjgwQzkwMDMyNjg0NjkwNDNFNDAwNDkwMDc3Cis6MTBCQTgwMDAzMjY4MEM5MDAzMjQ0MEY5MDAzMjYwMEM5QzAzQzYwMTFDCis6MTBCQTkwMDA2MDAwMDAwMDAwMDAwMDAwNzgxMEUxMDBCOEUwQTIxMTkyCis6MTBCQUEwMDAwQjhFMEEyMzIyODg4MDJBMzEyODg4MDI2MjAwODg4MDJGCis6MTBCQUIwMDBBMjMwMjg4ODhBMjIwMEI4QThBMjM5MDhDQTAyQ0UwNDc3Cis6MTBCQUMwMDAzMDAwMDAwMDAwMDAwMDAwNDgwNUM1MDgyMTAwMDA0MENCCis6MTBCQUQwMDAwMzE0ODI4NTgwQUQwODIxNTI5ODUwODIzNDIzODUwODUyCis6MTBCQUUwMDAyMTUyMDg1MDA2NTQwMEI1MjAyMTVBMDk1NDAyRDIwMUFGCis6MTBCQUYwMDAzMDAwMDAwMDAwMDAwMDAwMTgxMUE0MDBCOTYxMjI0MENECis6MTBCQjAwMDAwQjkwMDYwNDAwQUQwMDY5NDAwOEQwMDI3NDAwODUwMDY3Cis6MTBCQjEwMDAwMTQwMDA3MDA2NzQwNEI1MDAyMzQwMDlEMDAyQzYwNDM5Cis6MTBCQjIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNEE0MDBFOTAwMzI0MDAyCis6MTBCQjMwMDA0Rjk1MEJBNDAwRTkwMDMyNDA4QzkwMDMyNDAwQzkwMDBCCis6MTBCQjQwMDAzMjQwMEM5MDAzNjQwOEY5MDAzMjQwM0Q5MDAzRTgwNDUxCis6MTBCQjUwMDA3MDAwMDAwMDAwMDAwMDAwNjgwMUE0MDhGOTAwM0U0MEU5Cis6MTBCQjYwMDA0RjkwOEJFNDA0RDkwMTNFNDAwRDkwMDM2NDAwRDkwMTRECis6MTBCQjcwMDAzRTQwMEY5MDAzQTQwMEY5MDAzQzQwMEU5MDAzREEwMDExCis6MTBCQjgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBGODQwMzYyMEVGCis6MTBCQjkwMDAxNzg0MDMyMDIxQzgwMDdFMDIyQzgwNDMyMDAwRTgwMjg1Cis6MTBCQkEwMDAzRTAxMEY4MDAzRTAwMEM4NDAxRTAwMEY4MDAzQ0EwNDVFCis6MTBCQkIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTJBODhCNjAyMjNBMDBCCis6MTBCQkMwMDAwQkVDNDIyQjAwRDI4MDZFQjEwOEEwMjIwODAwRUEwNEUwCis6MTBCQkQwMDAzQTgwOUZBMDAzQTgwMDhBMDQyRTgwMEJBODAyQ0EwMDA2Cis6MTBCQkUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCMjAwQTRFMTY1Cis6MTBCQkYwMDA4QkI0MzI0NzQ1ODM5MDJDRjQ0QjM4MTIwRTQ0QTMwMThBCis6MTBCQzAwMDAyQ0MwNEIzMDAyQ0UwMDkzMDA2Q0MwMEIzODAyQ0EwMDJGCis6MTBCQzEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDMDBCNzQ0MjFDMjM5Cis6MTBCQzIwMDAwQjU0MDI1NDA1ODcwMDJDNDA5QjZDMDIxODEwQTcwNDhCCis6MTBCQzMwMDAyOUMwMEE3MDAyOUIwMDk3MDQwRDgwMEI2MDgyRTgwMDA3Cis6MTBCQzQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBGMzgwMzVFMDVFCis6MTBCQzUwMDAwQjM4MDI1MjEwODQ4MDJEQTAwRkY4MEIxRTAwRTY4MEQ2Cis6MTBCQzYwMDAxREEwMEI2ODAzRkUwMkQ2ODAzREUwMEY3ODAzRUEwMkI4Cis6MTBCQzcwMDAwMDAwMDAwMDAwMDAwMDAwMEExREFDMDBGQjAwM0VDMUY3Cis6MTBCQzgwMDA4QjkwMEI4MDBBQjgwMTJFMDAwQ0IwMDNFODAwRkEwMDdDCis6MTBCQzkwMDAzRUMwMEZBMDQzRUMwMEVCMDAzRTgwMEZBNjIzQzIwMjgzCis6MTBCQ0EwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZFMDBGRTgwMzMyMDYwCis6MTBCQ0IwMDA0RUM5MTJGNjUwRUY5MDNGRTAwQzE5MDBCNjQyQ0YyMTZBCis6MTBCQ0MwMDAzRkUwMEVGOTAyRTZDMEZGODAzRkUwNENEQzAzNDAwMDlECis6MTBCQ0QwMDA3MDAwMDAwMDAwMDAwMDAwQUExMTk0MDBCNzAwODE0MDJECis6MTBCQ0UwMDAwODAzMDIxNEM0ODcwMTJEQzgwODZBMTIzODQwODcwMjZECis6MTBCQ0YwMDAyREMwMDg3MTEyRDI4MEI3MDAyRDgwMDg2MDAyMkEwNDdFCis6MTBCRDAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDBCNzEwMjE4MENGCis6MTBCRDEwMDAwOEY0MTI5NDA0QTYwMDJDQzAxOEQyMDIxNDQ4ODYxMDBECis6MTBCRDIwMDAyRDgwMEE2MTMyRDQwMEI2MTgyREM0MDg1ODAyMDAxMEM0Cis6MTBCRDMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNEM0MDBCMzAwMjBDMDU4Cis6MTBCRDQwMDA0MEIwMjIwNDAwODI4MTBDQzAwODMwMEEwQTAwOEEwMDM4Cis6MTBCRDUwMDAyRUMwMDhBMDAyQzQwMEJCMDAyRTgwMDgyMDAyMDgwNEU4Cis6MTBCRDYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFDMDBGQjAwQTBDMERGCis6MTBCRDcwMDAyNDk0MjNBQzEwRUJBMDBFQzAwQ0IwMDIyRTIwQzkwMEZFCis6MTBCRDgwMDAyRTQwMEU5MDAzRUMwMEY5ODAzRTQwNkNBMDBCMkEwNDdDCis6MTBCRDkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMENDMDBGQjAwM0VDMEZFCis6MTBCREEwMDA4OTkwMDMyQzAwRkIwMjNFNDA0RkEwMDM2RDAxRkI0MTM0Cis6MTBCREIwMDAzRUMwOEZCNDAzRTgwMEZCMjAzRTUwMEZBNDAzRTAwMDE4Cis6MTBCREMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBDMzIwQjJDMEUxCis6MTBCREQwMDAwREQwMDMzODAwQ0QwMDNGODAwREYwMDNGQzAwRkQwMkM0Cis6MTBCREUwMDAzNjAwMENEMDAzM0YwOEZDMDQxMkMwMENBMDAzQzA0NDcyCis6MTBCREYwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDZDMDI4QkM4MjJDMEVDCis6MTBCRTAwMDAwODk4MEEyQTQwODkyMDJFMDE4RUIwMTJFQzgwQkJGMERGCis6MTBCRTEwMDAyMkU1MDhCRDAyMkUwMEJCOTAyMkVEMDhBMjAyRTAwMDQwCis6MTBCRTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDA4QjAxMjIwMEEzCis6MTBCRTMwMDA0OUE4MUUwNDAwOEIwMTJFQzA0OTkwMDJFNDAwQjkwMEZECis6MTBCRTQwMDAyMjQwMEE5MDAyMkMwMEI5MDAyQTQwMDg4MDAyRTAwMDNCCis6MTBCRTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0MDA4MTAwMjA0MEIxCis6MTBCRTYwMDAwODIwMDIwNDAwODMwMDJDQzAwQTIwNDJDQzAwQjMwMDRBCis6MTBCRTcwMDAyMEMwMDIzMDAyMDg4NEIzMDQwODQwMDgyMDAyQzIxMTI2Cis6MTBCRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDA4QjAwQjI4MDdDCis6MTBCRTkwMDAwREIxMDMyNDAyQ0IwMTNFQzA0RDkwNDNFNDAwRjkwMEY0Cis6MTBCRUEwMDBCMjAwMkU5MDBCMkM4MEY4MDBCQUMwMkM4MDAzQzAwMzg3Cis6MTBCRUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREY0MDA3RDAwM0ZDMDA1Cis6MTBCRUMwMDAwRjcyMDNENDAwRkYwMDNGQzAwRUYxNDdGQzAwRkYwMERCCis6MTBCRUQwMDAzQkMwMERGMDEzRkM1MEZGMDAzN0MwMEZFMDAzRTgwNjM1Cis6MTBCRUUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYwQzRDQzMzM0YwNDI3Cis6MTBCRUYwMDAyQ0Y2MDMzODYwQ0M5MEIzMjAwRkYxMjNGMDYwRkYwMUUzCis6MTBCRjAwMDAyM0M4MENGMjhBM0M4MURGMzAzRjY0MENEODAzMzAwNDM0Cis6MTBCRjEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEUwQzI4QTMwMkUxODdGCis6MTBCRjIwMDAwOEY1MzBBNTk0NTgyMjIyMjE0QkYzMDJFMTAwOUY3MEJFCis6MTBCRjMwMDAyQkU0MEFGNDEyMUQ0MEFGNzIyQzQ5MkYzMDgyQTAwNjY4Cis6MTBCRjQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUM0ODA4MEEwMkM5ODBDCis6MTBCRjUwMDAwODMyMjIwODAwODIwMDI4MDAwMzMyMDJDMDg0QjMwQzk5Cis6MTBCRjYwMDAyMEMwNTgzMjkyOEMzMEEzMjAyRUMwNDgxMjQyNjIwMTY5Cis6MTBCRjcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUE4MDA4QjAwMkUyMEZCCis6MTBCRjgwMDAwOEIwMEEyMDAxOTgwMDJBMjIwQkIwMDJFNjAwOUIwMEFDCis6MTBCRjkwMDAyMkMwMEFCMDEyQUMwNEFCMDAyRUMwMDNCMDAyRjAwMDA1Cis6MTBCRkEwMDA2MDAwMDAwMDAwMDAwMDAwMDAxNUU1MDBDODAwM0VCMDgxCis6MTBCRkIwMDAwQ0IwMDMyOTAwQzgwMDNBMjA0RkIwMDNFMjIwRkIwMTc3Cis6MTBCRkMwMDBCMEMwMENCMDAzMkMwMEZCMDIzQzQxMEM5MDQzNDgwNDcxCis6MTBCRkQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUEyODBGRTQwM0UwMDcyCis6MTBCRkUwMDAwRkYwNjNFQzAwQkZDNDE3NDIwRkYwMDNFQzAwRkYwMDNBCis6MTBCRkYwMDAxRkMxMEZCMDAzNUMwMEZCMDAzRjQwNEZGMDAwQjgwMEQyCis6MTBDMDAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEE1MDJDODAwM0U5MDQzCis6MTBDMDEwMDAyQ0IwMEIwMTA2Q0IwMTNFNTA1RkIwMTMyMTEwQ0IwMEJBCis6MTBDMDIwMDA3RUMwMENCMDBCMkMwMENCMDAzMkMwMEM5MDAzMTAwNDZGCis6MTBDMDMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTI4MDE4QkQwMkMzNDJGCis6MTBDMDQwMDA0OEZGMDIzMDAwQUEwNDJFNjkwRkYwMDM2ODEwREYwMEQ5Cis6MTBDMDUwMDAyRkQ0MERGMDAyM0UwMDVGMDRCNkMwMDhCMDAzNzIwMDlBCis6MTBDMDYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTY5OTA4MTgwMkMwMDg1Cis6MTBDMDcwMDA0OEI4MDIwODA5OTkwMDRDQjAwQjMwMDIwQzAwOEIwMDQ0Cis6MTBDMDgwMDAyQ0MwMDlCMDQwMEM0MDgzMDAwMDQwMEE5MDAyMzAwMEYwCis6MTBDMDkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTE2MDA4NDg4MkRFNEZDCis6MTBDMEEwMDA0ODM5MDIxNjAwQjQ4MDJERTAwQTdCMDY1RTAwOTc4MEI2Cis6MTBDMEIwMDAyREUyMDk3ODAyMUU5MDk3ODAyNTY0OEE3ODAyNDgwMDU0Cis6MTBDMEMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBEMDA4MTEwMkM5NjgwCis6MTBDMEQwMDAwODMxMjMwQzAwOTAyMDNDQzQxQkI4MDIwODQwQzMwMDY4Cis6MTBDMEUwMDAyQ0M0MEQzMDAzMEU0MEMzMTAzMEMwNEUxMDA3MUExMjdFCis6MTBDMEYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREJDMDA3RDA1M0ZDNUExCis6MTBDMTAwMDAwRkIxMEJGNDAwRUYwMDFGNDUwRkYwNDNGQzAxRkY0MDlGCis6MTBDMTEwMDAzREM0MUZGMDA2RkMxMEZGMDAzQkMxMkRGMTAzRDAwNjBCCis6MTBDMTIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVDMDRDQjA0M0VBMDY1Cis6MTBDMTMwMDA0NEI2MDMyODA0Q0I4MDMyODAwRkIzOTM2MDA4RkIyMDAxCis6MTBDMTQwMDAzRUQyMUZCMzAzMkQ4MEZCNjE3RTQwOEM5ODAzMkEwMEYyCis6MTBDMTUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTg0MEM4NjA1MkRDMDBFCis6MTBDMTYwMDAwOEY0ODI4QzkwODUwMEExQzAwQkYwMDI1QzAwMzcwMEJGCis6MTBDMTcwMDAyREQwMEI3MTAyMUNDOEI3NDgyRDQwMEE3MDAyMTIwNDYyCis6MTBDMTgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDA4NzgwMkRBMTFDCis6MTBDMTkwMDA2MDc4NEExNkQwQTc4MDI5RTAwQjc4NTI5NjAxQjc5MEI0Cis6MTBDMUEwMDAyREU4MEI3QTIyNUU0MEI3QTAyRkUxNDg1MDIyMzAwMEU0Cis6MTBDMUIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMTA4Mzg0MkNDMDM0Cis6MTBDMUMwMDAwODMwMDJBNDEwODNDQjI4RTAwQjMwMkE0RjQwOTMwMEE0Cis6MTBDMUQwMDAyQ0MwMEIzMDAyNEMxMEIzMDIyQ0MwQUEzMDAyMTIwNDQ3Cis6MTBDMUUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUI4MDBDRUEwM0Y4MDNECis6MTBDMUYwMDA0Q0EwMkIzQTAwQ0U0MDNCQjgwRkEwMDNCOTAwQkEwMEM4Cis6MTBDMjAwMDAzRTgwMEZBMDAzNjgwMEZBMDA3RTgwMUNBMDBCM0EwNDU5Cis6MTBDMjEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDJGODAwM0UwNDVBCis6MTBDMjIwMDA4RjAwMDNFMDRBRjgxMDI2MTgwRjgwMDNBMDgwRjgwMjYwCis6MTBDMjMwMDAzRTAwOEYwMDBCQTAwMEY4MDIzRTAwMEY4MDEzRDIwMERBCis6MTBDMjQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MjBDOTAwMzI0MDY3Cis6MTBDMjUwMDA0RDk5MDMyNDAwQzkwMjNFNjgwRjkwMDIyNDAwRTkwMEIyCis6MTBDMjYwMDAzMDQwOEM5MDAzMDQ0MEM5MDAzRTQwMEM5MDAzMDIwNDBGCis6MTBDMjcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MjA4OTA2MjI1MDg1Cis6MTBDMjgwMDA4QjlDQzIyNDAwRDkwMTJFNDAwQjkwNDIyNDA4QjkwMTk2Cis6MTBDMjkwMDAyMjQ2MEQ5MDBBMjYwMjg5MDAyQzQwMEExMDAyMjAwMDM2Cis6MTBDMkEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwMTA2MDA5MTQwNDI3MERDCis6MTBDMkIwMDAwQjkwMTIyQzAyOEIwMDJFNDAwQjEwMjJFNDEwQjEwMEM4Cis6MTBDMkMwMDBBMjQwNDg5MDEyMjQwODk5MDIyRTQwMDg5MDAyMDYwMENECis6MTBDMkQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0OTI5MTIwRTA0OEEzCis6MTBDMkUwMDAwQjEyMDIwNDAyOTExMDJDQzAwQjEwMDY4NEMwQjExMDc2Cis6MTBDMkYwMDAyMDQ4ODkxMTAyMDU4MDkxNDAyRTQ0MkE5NDAyMDIwMUFGCis6MTBDMzAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYxNDBEODUwMzAxNDVCCis6MTBDMzEwMDAwRjg1MEIyMUUwODA0MDNFMDAwRjg3OEJFMTBDRjg2QzBECis6MTBDMzIwMDAzMjAwODQwNjgzMjAwNEQ4MjgzRTEwMEMwMDAzMkUwMzFDCis6MTBDMzMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDBBRDEwM0Y0NTgzCis6MTBDMzQwMDAwRjkxMDNGQzE4N0QyMDFGNDEwRjkwMDM3NEMwRjkyMTQ5Cis6MTBDMzUwMDAzRTQ0MEY5MjAxRTQ0MEU5MDAzRDQ4NEZEMDAzRTYwNjE5Cis6MTBDMzYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwNUY3ODBGREUwMzM3MDQ5Cis6MTBDMzcwMDAwQ0RBMDMyNjIwQzk0MDMxNDAwRTlBMDMyNDAwRjk4MENDCis6MTBDMzgwMDAzQjYwMEY5QzgzMzZBMEY5QTFCMDQwMEY5MTAzQzYwMDFCCis6MTBDMzkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUyOTBCOEEwMjIyOEQxCis6MTBDM0EwMDAyODg4MEEyMjAyODhBMDIyMDAwODg4MDJDMjgwQjg4ODUxCis6MTBDM0IwMDAyMjA0MEI4RTAzMjI4MEI4RDAyQTIwMEI4ODAyQ0UwNEUwCis6MTBDM0MwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM1ODBCMTYxMDA1ODgxCis6MTBDM0QwMDA0ODE2OEEwNEEwODkwMTIyNDAxQTE0ODgwNDIwQjE0MDFBCis6MTBDM0UwMDAyODQwMEIxMDBBMDQyMEIxMkMyMDRBMEIxMjAyQzIwMTczCis6MTBDM0YwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE1OTBCQjQwMjA0MDEwCis6MTBDNDAwMDAwODkwMDIyNDQwODk0MjYyNTgwODEwMDJFNTAwQjkwM0VFCis6MTBDNDEwMDAyMkMwMEI5MDAyQTQxNDMxMDAyQTQ0MEI5MDAyQzYwNERGCis6MTBDNDIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxMEE1MDBGOTAxMzI0MEVCCis6MTBDNDMwMDA4QzkwMDMyNzAwQzE5NDMwNDAwRTkwMDMyNDAwRjkwMDMzCis6MTBDNDQwMDAzQTQwMEY5MDAzMjQwMEY5MDAzMjYwMDc5MDI3RTgwNTc2Cis6MTBDNDUwMDAyMDAwMDAwMDAwMDAwMDAwMjgwMEE0MThGOTAwQkU0NERECis6MTBDNDYwMDAwRjkwMDNDNDAwRjkwMEJFNjE4RjkwMDNBNDAwRjEwMDk3Cis6MTBDNDcwMDAxRTQwMEYxMDAzMjQwOEY5MDA3RTQwMEY5MDAzQ0EwMEVECis6MTBDNDgwMDAyMDAwMDAwMDAwMDAwMDAwMjgxMEExODFGODAwMzIwNDA0Cis6MTBDNDkwMDAwQzAwRDMyMTAwRDgwNDNBMTQ5QzgwMDMyMTAxQzgwMDY5Cis6MTBDNEEwMDAzNjAwMEM4MDEzMjAxMEM4MDAzMjAwMkM4MDAzQ0EwNDEwCis6MTBDNEIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNDNBMDBCRTg0MjM4NTBDCis6MTBDNEMwMDAwOEVDODM2ODA0OEEwMDJGOTA0REEwMDIyODAxREEwMDRFCis6MTBDNEQwMDAyM0IwMEFBMDAyMkEwOERBMDEyMjgwMEZBMDAyQ0EwMEIzCis6MTBDNEUwMDAwMDAwMDAwMDAwMDAwMDAwMjgwNTRDMDBCQkYwMjBDMDQ4Cis6MTBDNEYwMDAwODNDMEEwQzAwOTMwMTI4Qzg4OTMwMDY0QzAwODMwMkNFCis6MTBDNTAwMDAyQ0Y2MDgzMDAyMDQwMEEzMDAyMEMwMEEzMDAyQ0EwMDQyCis6MTBDNTEwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFEMTFCMzAwQTBDMDY5Cis6MTBDNTIwMDAwODUwMDI1QzEwODcwMTZEODE0OTMyNTIxRUMzODcwMDlBCis6MTBDNTMwMDAyOEUwMEEzMjI2MUYwMDM3MDAyM0UwMEI3MjAyQzgwMEYxCis6MTBDNTQwMDA0MDAwMDAwMDAwMDAwMDAwMjgwODEyMDBCNzgyMzEyMERGCis6MTBDNTUwMDAwODA4MzcwRjA4RDdFMDM5NjAxOTdBMEI1RTBDODNCMkYwCis6MTBDNTYwMDA3REUwMEM3QTBCM0UwMkFGQTBCMUUwMEU3QTAzQ0EwMjY2Cis6MTBDNTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREEwMTBGQjAwM0VDMEVECis6MTBDNTgwMDA2RkIwNDNFQzExRkIwMDNFNDAwRkI1MDNFQzIwRkI1MEI1Cis6MTBDNTkwMDAzNjAwMEZCNTQzRTVBMURCNzgzRUMwMEZCNDAzQzIwNkY5Cis6MTBDNUEwMDA2MDAwMDAwMDAwMDAwMDAwNDAwNUZFMDBGRkEwM0ZBMDZBCis6MTBDNUIwMDAwREM5MTMzRTAwQ0ZEMDNERTgwMkZGMTMzRTAwQ0Y4MkVECis6MTBDNUMwMDAzRjYwMENGQzIzM0UxMEVGODAzM0YyMENGQzgzMTAwMDI0Cis6MTBDNUQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDNDBCNTAxMkREMEEzCis6MTBDNUUwMDAwODU4MDIxQzQwNTcxMDJENUEyODMxMDJCQzAxOTcxMEUwCis6MTBDNUYwMDAyRDAwMEE3MDAyODQwNENGMDAyOUMwMEFGMDAyMkEwNDI4Cis6MTBDNjAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDkwMDBCNzJBMkQ4MkFBCis6MTBDNjEwMDAwODQyMjIzQzAwODcxMTBEQ0M4ODMyMDIxRDAwOTcwMDkxCis6MTBDNjIwMDAyQ0M0MDgzMDAyMTQwMEE3MDAyM0MwMDk3MDgyMDAwMDQ3Cis6MTBDNjMwMDAyMDAwMDAwMDAwMDAwMDAwNjAxNEMwMjBCMDIwMkM1MDNBCis6MTBDNjQwMDAwODEwMDIyREMwOTNFMjJDMjEwODMwMDIwRTA4OTMwMDNFCis6MTBDNjUwMDAyQzQwMEEzMDAyOEMwMDkzMDAyQUMwMEIzMDAyMTgwNEQwCis6MTBDNjYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFDMDBGOEMwM0U4MEJCCis6MTBDNjcwMDAyQ0EwMEIzRjAwQzc2MDNFRDAwQ0YwMEIzQzAwQ0YwMDVECis6MTBDNjgwMDAzRTgwMENGMDBCMkMwMEVGMDAzM0MxMERGMDBCMkEwNEEwCis6MTBDNjkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDNDBGMzQwM0U1MENECis6MTBDNkEwMDA4RUI0MDNFQzEwRkIwMDNFMDkwRkIwMTNFQzQyRUIwMDFDCis6MTBDNkIwMDAzQzAwOEZCMDEzQzQxMUUzMDAzRUMwMEVCMDAzRTAwMDk1Cis6MTBDNkMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBGQzgwMzEyMjVFCis6MTBDNkQwMDAwQ0E4MDMzQzAwQ0YwMDMzQTAwRUYwMDNEQzAwQ0YwMDE5Cis6MTBDNkUwMDAxRkYwMENGMDAzRjQwMENGMDIzM0MwMENGMDAyMDA1NDMyCis6MTBDNkYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZGMDBCQkMwMjI3MDA5Cis6MTBDNzAwMDAwQUI5NDIyQzEwOEIwMDc2MTE4M0IwMDJFQzEwQUIwMEZBCis6MTBDNzEwMDAyRUIwMEFCMDAzRUMwNDhCMDBBMkMwMjhCMDAyMjA0MDY3Cis6MTBDNzIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTY1NDBCODIwMjI0NDkxCis6MTBDNzMwMDA1ODM0MEEyQzAwOEIwMDIyODQ0QkIwMDJFQzAwOEIwMDkyCis6MTBDNzQwMDA2RUMwMDhCMDQyRTYwNDhCMDAwMkMwMDgzMDAyQTAwMUFGCis6MTBDNzUwMDA0MDAwMDAwMDAwMDAwMDAwMEMwMDAwMDBCMTAwMjBDMEZDCis6MTBDNzYwMDAwQTMwMEEwQzAwOEIwMzI0ODAwQjMwMDJDQzAwQTMwMDlCCis6MTBDNzcwMDA2QzAwMEEzMDAyOEQwMDgzMDAyMEMwMTgzMDAyODIwMDU1Cis6MTBDNzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODY0MDBGODAwMzAwMDE1Cis6MTBDNzkwMDA0Q0EwMEIyQzAyQ0YwMDIyNDAwRUY1MDNGQzAwQ0YwMTcxCis6MTBDN0EwMDAzRTAwMENGMDEyREQwMkNGMDIzM0MwNENGMDBCODAwM0QwCis6MTBDN0IwMDAxMDAwMDAwMDAwMDAwMDAwQTQxOUYwMDBGQzAwM0Y0MDQxCis6MTBDN0MwMDAwRkIxMDNEQzAwQkYwMTNGMDAwRkYyMjNGQzEwRkYwMDlDCis6MTBDN0QwMDAzRjAwMEZGMDAxRjQ4NEZGMDAzREMwNEZGMDEzNjgwNkU2Cis6MTBDN0UwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUZFNDBERjgwMzNDODdDCis6MTBDN0YwMDAwQ0Y4MDMzQzBBOUZDMDNGRjAwOEI4MDIzRTAwRkY4MERGCis6MTBDODAwMDAzRkQ4MENGOTYxMkU0MDZGOTAzRkU0OEZGMTgzMzAwMEU4Cis6MTBDODEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEVDMDQ4QjgwMjNGMDBBCis6MTBDODIwMDAwOEI4MDIzRDQwQUIwMDBFMDg0ODIyODI2QzIwQkIwMEQ1Cis6MTBDODMwMDAyRkQwNDhCMDAyMkMwMEJCMDAyRUMxMEJCMDAyMzAwNDM4Cis6MTBDODQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUNDMDI4MzAxQTBDNTc0Cis6MTBDODUwMDAwOEIwNEE0Q0EwODAyNDI4QzgwOTMyMDI0QzAwQjMwODEyCis6MTBDODYwMDAyRUQxMjlCMjNBMEM4NEEzMjEyQ0M4NEJCMjBBMzIwMTMyCis6MTBDODcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDg4QjAwMjJDMDUyCis6MTBDODgwMDAwOEIwMDI0QzAwODgyMTI0MjEwOUIwNDY2QzAwQkIwNjg4Cis6MTBDODkwMDAyRUMwMDlCMDAyMkMxMEJCMDAyRUMwMEJCMDAyMzAwNDE5Cis6MTBDOEEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBDQjAwMzJDMDJBCis6MTBDOEIwMDAwQ0I5MDI2QzAwQ0JDODNBQzAyRDkwMEIyQzA4RkIwMEMxCis6MTBDOEMwMDAzRUMwMEQzMDQyMkMwMEVCMDAzRUMwMEZCMDEzMDAwNDAwCis6MTBDOEQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUJDMDBFRjAwM0RDMDVGCis6MTBDOEUwMDAwRkYwMDNCQzA2RUY4MjNGNDA0RUM5ODNCQzAwRkYwMDNGCis6MTBDOEYwMDA3RkMwMUNGMDEzN0MwMEZGMDQzRkMwMEZGMDAzRjgwMDYyCis6MTBDOTAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjAyM0VDMEQwCis6MTBDOTEwMDAwRUIwMDNBQzIwRDg0MDNFQzA4QzkwMEIyQzAwRkIwMDI2Cis6MTBDOTIwMDAzRUM5MERCMDMzRUMwOEZCMDIzRUMwMEZCMDBCNTQwNEZGCis6MTBDOTMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJDMDBCMzAwMkZDMDNDCis6MTBDOTQwMDAwQjMwMTJGQzAwODhBMDJFNDAyODk0MDIyQzEwQkIwNDRGCis6MTBDOTUwMDAyREMwMjhCMDAyRUMwMEJCMDAyRUMwMEI3MjA2MzIwMEM2Cis6MTBDOTYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTZDMDBCMzAwMkNFMDc3Cis6MTBDOTcwMDAwQTEwMDJDRDAwOTMwMDJDQzAwOEIwMDI0QzAwQjMwMDk2Cis6MTBDOTgwMDAyOEMwMDgzMDAyQ0MwMEIzMDAyQ0MwMEIzMDAyM0EwMEEzCis6MTBDOTkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTFFNDBCNzgwMkRFMjgyCis6MTBDOUEwMDAwQjU4MDJERTAyOTc4MTJGQTAwODY4MDI1RTAwQjc4MTUzCis6MTBDOUIwMDAyRkUwMDg3OTAyREUwMEI3ODEyREUwMEI3ODAyM0MwMDAxCis6MTBDOUMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODBDMDBGMzAwM0NDMERDCis6MTBDOUQwMDAwRTMyMDNDQzgwRDMwMDNDQzQwQzM5MDM0QzA4RjMxQTRDCis6MTBDOUUwMDAzQ0M2MEQzMDAzQ0UyMEYzMDgzQ0MwMEYzMDAzNTIwMjhBCis6MTBDOUYwMDAwMDAwMDAwMDAwMDAwMDAwNDAxREFDMDBGQjAwMkVDMDQ1Cis6MTBDQTAwMDAwQkIwMDNDQzIwRUIwMDNDODAwRkIwNDFBQzAwRkIwMDJFCis6MTBDQTEwMDAzQ0MyMEZCMDAzRUM0MEZCMDAzRUMwMEYzMDAzRDAwNjE5Cis6MTBDQTIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVFMDJDMzgwMzBDRUM4Cis6MTBDQTMwMDAwRDk4MDNBQ0EwQzM4MEIyQzAwRkIwMDNFQzAwRkIwMEE0Cis6MTBDQTQwMDAzRUQyNEZCMDA5MkUwODRCMDEzRUMwMjRCMDAzRUEwMDhECis6MTBDQTUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTlDMDA4NzAxMjFDMDA4Cis6MTBDQTYwMDA0ODUwMTI0QzAwODcwMDM1QzA0QjYwMDJEQzA0QjcwMTBGCis6MTBDQTcwMDAyREMwMEI3MDAyMUMwMDg3MDAyREMxMEM3MjAyRjIwNDQ1Cis6MTBDQTgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDA4NzgwMjNFMERFCis6MTBDQTkwMDAwOEY4MDJERTgwOEY4MTIxRTA0Qjc4MTJERTA0Mzc4MEI3Cis6MTBDQUEwMDAyREU4MEJGODAyM0UxODg3ODAyRkUwMDk3OTAyRTAwMDlDCis6MTBDQUIwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMDA4MzAwQTBDMDRCCis6MTBDQUMwMDAyODMwNDI0QzAwODMwMDI0QzAwQjM4MDZDQzA0QjMwMDRECis6MTBDQUQwMDAyQ0MwMEIzMDAyMEMwMjgzMDAyQ0MwMDgzMDAyRDIwNEEwCis6MTBDQUUwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUE4MDBDQTAwMzE4MEY2Cis6MTBDQUYwMDAwOEUwMDI5ODAyQ0UwMDMzODQwQkVBMDNFODAwQkEwMDkzCis6MTBDQjAwMDAzRjgxMEZBMDAzMjgwMENBMDAzRTgwMERFMDAzRkEwNDE1Cis6MTBDQjEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwMDBGODAwM0UwMDU3Cis6MTBDQjIwMDAwRTg0MjNBMDAwRjgwMDNBMTAwRjgwMDNFMDAwRjgwMDA0Cis6MTBDQjMwMDAzRTEwMEY4MDEzRTAwMEY4MDAzRTAwMEQ4MDAzRDIwMDhECis6MTBDQjQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMEU0MDFGOTAwM0U0MDQxCis6MTBDQjUwMDAwQzlBMTNFNDAwQzkwMDNFNDAwQzk4MjNFNDgwRjkwMENECis6MTBDQjYwMDAzRTQwMkM5ODAzNjQwMEY5MDAzRTQwMEM5MDAzQzIwNDQwCis6MTBDQjcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDRCOTAwMkU0MDcyCis6MTBDQjgwMDA2ODlDMjJFNDAyODkwMTdDNTA4RDk4MjJFNDgwQjkyMEJGCis6MTBDQjkwMDAyRTUwNDgxMDBCMjUwMEI5NDQyQzQwMjg5MDAwRTAwMDhFCis6MTBDQkEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCOTAwMkU1MEZECis6MTBDQkIwMDAwODkwMDJFNDA0ODkwMDJFNTAwQTkyMDJFNDAwQjkwMEIxCis6MTBDQkMwMDAyQzQwMDg5MTAyMjQwMEI5MDAyRTQwMDg5MDAyQzYwMEIzCis6MTBDQkQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA1MDBCMTAxMkM0MEU2Cis6MTBDQkUwMDA0ODMwMDJFNDAwODEwMDJBNDA0QjEwMDJDNDAwQjEwMDJBCis6MTBDQkYwMDAwQ0MwMDg5MDAyMEMwMEIzMDAyRTQwNDgxMjAyQzIwMTgzCis6MTBDQzAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDYwMDBCODAxM0UwMDA4Cis6MTBDQzEwMDAxQzgwMDdFMTUwQzg1MDJFMTQxRTg1MDNFMTQxRjg1MEQ2Cis6MTBDQzIwMDAzRTE0MEM4NTEzMjE0OEY4NTAzRTE0MEM4NTQzRUUwMzQ2Cis6MTBDQzMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxOUM0MDBGOTAwM0U1MUE3Cis6MTBDQzQwMDAwRjUwMDNFNTAwRkQwMDNGNDAxREQwMDNGNDEwRjkwMDM0Cis6MTBDQzUwMDAzRTUwMEY1MDAwOTQwMEY5MDAzRDQwMEY5MTAzRTYwNjRFCis6MTBDQzYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwMUU0NTBDRDAwMzE2MEE5Cis6MTBDQzcwMDAwNEQwMDMzNjgwQzE0MjJFNTAxRjk0MDNFNTAwRTkwMjIwCis6MTBDQzgwMDAyRTcyMEE5MDIyMDUwOEU5NDAzRTUwNDA5QzAzMjYwMDdGCis6MTBDQzkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEMyODI4ODAwMjIxNUQ5Cis6MTBDQ0EwMDAwODgwMDIyMzU4ODhBMDJFMjgwQkFBNDJFMjgyODg4MDlFCis6MTBDQ0IwMDAyRTM4Mjg4ODAyMjI4MEI4QTAzQTI4MDhDRDAyMEUwNDE3Cis6MTBDQ0MwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDA4MTAwQTY0MEZDCis6MTBDQ0QwMDAyODEwMEEyNDI2OTUwMDBENDAwQjUwMDI3NDAwODUwODg4Cis6MTBDQ0UwMDAyRjQwNzlEMkFBMTQwMEE1MDEyRjQwMzg1MDAyMTIwMTFBCis6MTBDQ0YwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDQ4OTAwMjY0MDAwCis6MTBDRDAwMDAwODkxMDIyNDEwOUQwODJGNDAwQkQwMDJGNDAwOEQwMkUwCis6MTBDRDEwMDAyRjQwMDlEMDAwMzQwMEJEMDAwQjQwMTg3MDAyMDYwNEZCCis6MTBDRDIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUM0MDBDOTA1MzY0MUU1Cis6MTBDRDMwMDA0QzkwNjMyNDAwRDkwMDNFNDAwQjkwMDM0NDA4QzkwMDg2Cis6MTBDRDQwMDAzRTQwMTUxMDAzMjQwMEU5MDAzQzQwMEM5MDAzMjgwNEU5Cis6MTBDRDUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMUE0MDRGOTAwM0E0MDFGCis6MTBDRDYwMDA0Rjk4MDNFNDAwRTk5OTNFNDA0RjkwMDNFNDIwRjkwQTBDCis6MTBDRDcwMDAzRTQwMEU5MDQzNjQyNEY5MDgzQTQyMEY5MDhCREEwMDRCCis6MTBDRDgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBDODAwMTIwMDkxCis6MTBDRDkwMDAwQzgwNDNFMDAwQzg0MDMyMDAwRjg0NTNFMDEwRjgwMERDCis6MTBDREEwMDAzRTAwMEQ4MDIzMjAwMEQ4MDAzRTAwMEY4MDAzMEEwNEJGCis6MTBDREIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTM4MDI4MjAwQTE4ODQxCis6MTBDREMwMDAwODYwMjJDODAwOEE0MDM2QTEwQkEwMDJFOTEwQkE0NENDCis6MTBDREQwMDAyQzgwMENBNDEyMjkwMjhBNDQyRTk4MEJBNDAyMEEwMDZCCis6MTBDREUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTRDMTA4MzAwMjBFMEY3Cis6MTBDREYwMDAxODMwOTJDNDA4OTM0MDIwRTAwQjMwMDJDRDAwQjM0MEJECis6MTBDRTAwMDAyQ0MwMEIzQTQyQ0QwMDgzNDAyQ0QwMEIzODAyNEEwMDk0Cis6MTBDRTEwMDA1MDAwMDAwMDAwMDAwMDAwQTA0MTFDMDA4NzAwMjFDMDVECis6MTBDRTIwMDAyODcwMDJEMTAwOUQ4MDI1QzI0QjYwMDJEQzA4QjcwMjQ5Cis6MTBDRTMwMDAyQ0MwMEE3NDAyRkUwMDg3MDAyREMwMEIzNDAyNjgwMDZCCis6MTBDRTQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODFFMDBDNzg0MzFFMDc4Cis6MTBDRTUwMDAwQzY4MDNENjAwOTc4MDMxQTAwRjU4MTNERTA4Rjc4MkM0Cis6MTBDRTYwMDAzREEwMEZGODBCREUwMEM3ODAzREUwMEY3ODhCNkEwMjEzCis6MTBDRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFEODBGMzAwM0VDMTZFCis6MTBDRTgwMDAwRkEwMjNDMDAyRTkwMDNFODEwRjgwMDNFQzAwRkIwMEVECis6MTBDRTkwMDAzRUMwMERCMDEzMkMwMEVCMDAzRUMwMEZCMDAzODIwMjY5Cis6MTBDRUEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZGMzJDNzgwMzM2MDEyCis6MTBDRUIwMDAwRjc4MDMzRUM4NEU4MDIzNjQwQ0Y4MDMzQTAwQ0U4MEZFCis6MTBDRUMwMDAxM0VDMDZEODAzM0EwMERFODAzM0E0MENDODAzRDAwMDZDCis6MTBDRUQwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMTlDMDA4NzEwMDFDMDM1Cis6MTBDRUUwMDAwQjcwMDIxODUwODQwMDJCNDQwODYwMTI5ODAwODYxM0JGCis6MTBDRUYwMDAyMUM0ODg1MDAyMTg4MDg2MDAyMTgwMDg2MTAyRUEwNDVCCis6MTBDRjAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDA4NzAwMjE0MDNECis6MTBDRjEwMDAwQkYxMDI1QzgwMDYwMDIxMDA4OEQwMDI1QzAwODcwMEQzCis6MTBDRjIwMDAyMDg5OEFGMTAyMUMwODg3MTAyMTgxODg0ODAyQzYwMEU2Cis6MTBDRjMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMTA4MzA0QTBDMUQ5Cis6MTBDRjQwMDAwQjMwMEE0ODBDODgwNjYwMzgwODA0NDJFQzAxOEIwNDU4Cis6MTBDRjUwMDAyMkMxMDgzMDBBMkMwMDhCMDAyMjgwMDAyMDAyRDgwNDU1Cis6MTBDRjYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUJDMDBDMzAwMjI4MEIzCis6MTBDRjcwMDA4RjkwMDM2NDBBQ0IwMkIyRjIyMDM1MTI2NDBBQzkwMDEyCis6MTBDRjgwMDBCMjQwMEVBMDAzMjQwQUM5MDBBMjQwMkNBMDAzRUUwNDY0Cis6MTBDRjkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEVDMDBGQjAwM0M4MDBFCis6MTBDRkEwMDAwRjkwMDNBNTAwREI0MDNFRDA0REI0MTNBNDA4RkIwMTU1Cis6MTBDRkIwMDAzRUMwMUNBMDAzNkMwMEZCMDQzRTUwNEZBNDAzRTAwMEU1Cis6MTBDRkMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBGRjAwMzNDMDMyCis6MTBDRkQwMDAwQ0U4NDMyNjAwREY4MEIzRTAwRkY4MDM3QzAwQ0QwMEFGCis6MTBDRkUwMDAzMzA0MENFMDIzMzQ0MENEMDAyMzQwMENFMDAzRTAwNDg0Cis6MTBDRkYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDZDMTBCQjAwQTJEMkQxCis6MTBEMDAwMDAwODI4MDIwNDYwOEIxOTIyQzYwRUIxOEEyRTQwOEI5MDJDCis6MTBEMDEwMDAyMkMxMDhBNDgyMkMwMDhCOTAyMjY0NDhBNDAyRTAwMDY0Cis6MTBEMDIwMDAxMDAwMDAwMDAwMDAwMDAwODAwNTJDMDBCQjAwMjIwMDYyCis6MTBEMDMwMDAwODkxMkUyNDAwOUIwMDIyQzA4QkIwMTIyMDA0ODgwMDhGCis6MTBEMDQwMDAyMjQwMDgxMDIyMjAwMDg4MDEyQUQwMDg4MDQyRTAwMEY3Cis6MTBEMDUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDBDMDBCMzA0MjA4MDIxCis6MTBEMDYwMDAwODEwMDYwNDEwODMwMDIwQzA4QkIwMTIwMDAwODIwMDVDCis6MTBEMDcwMDAyMEMwMjgxMDQyMDkwNjgyMDAyOEMwMDgyMDAyQzIwMUYwCis6MTBEMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDdDMDBCQjAwMzI0MEVBCis6MTBEMDkwMDAyQ0IwMDMyNDAwRDMwMDMyQzA1RkI1MDMwQzAyQzEwMEUyCis6MTBEMEEwMDBCMjAwMENCMDBCMDUwMEMxMDBCOEMwMkM4MDEzRTAwMzI3Cis6MTBEMEIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxRERDMDBGRjAwMUZDMEE5Cis6MTBEMEMwMDA4N0YwMDFGNDAwRkYwMDNGQzAwRTcwNDNGQzEwN0YwMEFBCis6MTBEMEQwMDAzRkMwMEY3MDAzRkMwMEZGMDAzN0MwMEZFMDAzRTgwNkZECis6MTBEMEUwMDA3MDAwMDAwMDAwMDAwMDAwQzAwNUYxODRGRTYxMzFEODJFCis6MTBEMEYwMDAwQ0IyQzNGQ0UwQ0M4MDdCQzAwRUYxMDM3Q0UwQ0M4MzlGCis6MTBEMTAwMDAzRjIwMEZGMENCMzI0NERDODQzRjI1NENGMjQzMzAwMDBCCis6MTBEMTEwMDA3MDAwMDAwMDAwMDAwMDAwODAxMEU0NDhCMDEwMjJEQzI1Cis6MTBEMTIwMDAwOEI2MDJGRDkyODg4NTIzRjQ0MEYxMDJFRDAwODgyREI3Cis6MTBEMTMwMDAwRTYwMEJCQzEyMkMxMEE4ODIyRTAwMEFGQzIyQTAwNDQ4Cis6MTBEMTQwMDAzMDAwMDAwMDAwMDAwMDAwODgwNUMwODBCMzIyMjhDMDI1Cis6MTBEMTUwMDAwODMwODJDQzAxODgwMDJDQzA0QTMyMDJDQzAwMDEwMTg4Cis6MTBEMTYwMDAyODAwNEJCMDAyQTAwMDgwMDAyQzA5MDgzNDAyNjIwMUE0Cis6MTBEMTcwMDA3MDAwMDAwMDAwMDAwMDAwQzAxNUFDMDRCMjEwMkFDMTBECis6MTBEMTgwMDAwOEIwMDJFQzEwODk4MDIyQzAwOEIwMDJFQzA4ODgwMEM4Cis6MTBEMTkwMDAyRTQwODNCMDAyQTA0MEI5ODAyQzIxMEFCMDAyRjAwNEQ2Cis6MTBEMUEwMDA2MDAwMDAwMDAwMDAwMDAwNDAxNUVDMDBGQTAwQkFDMDZBCis6MTBEMUIwMDAyQ0IwNDNFQzAwQzA4MDNFQzA4RUIwMDM0QzBDQzgxMEI1Cis6MTBEMUMwMDAzRTgwOEZCMDAzODIxMEQ4ODIzRTI4MENCMDBCNTAwNEYyCis6MTBEMUQwMDA3MDAwMDAwMDAwMDAwMDAwRTAwMUI2ODBGRDAyMzdDMUQxCis6MTBEMUUwMDAwRkIwMDNGQzAwRkQwMDNFQzAwRkIwNTNGQzAyRkYwMTc2Cis6MTBEMUYwMDAyRkE0OEJGMDgzN0MwMEFEMDIyRjQwMDM3MDAzQjgwMDk2Cis6MTBEMjAwMDA2MDAwMDAwMDAwMDAwMDAwNDAxMEFDMDBGQjA0MzJDMEQxCis6MTBEMjEwMDA0Q0IwMjMyQzAwRjg0MDNFQzIwQ0IwMDMyQzAwRkI0MTY0Cis6MTBEMjIwMDAzMkMyMEZCMDQzMkQwMEM4NTAzRTQwMENCMDBCMTAwNDZBCis6MTBEMjMwMDAyMDAwMDAwMDAwMDAwMDAwQzgwNTJGOTBCOTUwMDNDMDc2Cis6MTBEMjQwMDAxOEYwMUEzQzAwQjkzMjJERTAzOEYwNjAzQzA0RjkwMEM3Cis6MTBEMjUwMDAzRUYwMEI3QzgwMkMwMEQ5QzAyRTQwMERGMDAyMzIwMDM1Cis6MTBEMjYwMDA0MDAwMDAwMDAwMDAwMDAwRTAwNTRCMjRCMjEwMDJDMUE1Cis6MTBEMjcwMDAyODMwMDI2QzA0QjJDMTJDQzAwODMwMDAwQzAwQjIwMDhGCis6MTBEMjgwMDAyODI0MDMzQzBBMDAwMDgyQzgyQ0EwMDgzMDAyMzgwMDgxCis6MTBEMjkwMDA1MDAwMDAwMDAwMDAwMDAwMjAwMTE2MDBCNDgwMjFFNENFCis6MTBEMkEwMDA0ODdCMDI1RTAwQjY4MDZERTI0ODc5MjIxRTQwQUM4NDY1Cis6MTBEMkIwMDAyREUwMEJGQTAwNTI0MDk2ODAyREU4MTkzODAyMDgwMDQ0Cis6MTBEMkMwMDA0MDAwMDAwMDAwMDAwMDAwNDgwODA4NDBGMzEwQjBDNDBGCis6MTBEMkQwMDAwODNBMDI0QzkwRjMxMDNDQ0MwODMxMDMwQzQ5QjA0MEEyCis6MTBEMkUwMDAzMDA1MEYzMDA3MjE0MDQzMDEzRUMyMUMzMDQzMTIwMjdCCis6MTBEMkYwMDAwMDAwMDAwMDAwMDAwMDAwNDAwREJDMTBGQzEwM0ZDNTA1Cis6MTBEMzAwMDAwRkYxMDFCQzA0RkYwNDNGQzQwRkIxNEJGQzY0RjcwMEY0Cis6MTBEMzEwMDAzN0MwMEY3MjUzQUM0NEZGMDEzRkM5MEZGNDAzRDAwNjZFCis6MTBEMzIwMDA2MDAwMDAwMDAwMDAwMDAwQTgwNUVDMDhGQTAwM0VFMEU0Cis6MTBEMzMwMDAwQ0IwMDMyQzAwQ0IwMjNFQ0EwRkIyMDcyRTAwREIwMjVBCis6MTBEMzQwMDAzMjA4MEYzMTAzMkMwMENCMDQzRTgwMEMzNTAzMkEwMDM5Cis6MTBEMzUwMDA3MDAwMDAwMDAwMDAwMDAwNDgxMTk0MDBCNTAwMkRDOEM2Cis6MTBEMzYwMDAwODcwMEExQzIyODcwMDJEQzkwQkYyODI5QzgwQTYwMDNGCis6MTBEMzcwMDAwOThCMEI3MDBBMUMwMjg1MDAyRDQwMDg3MDAyOTIwNDc0Cis6MTBEMzgwMDA2MDAwMDAwMDAwMDAwMDAwQzAwMDlFMDBCNzgwMkNFQzkwCis6MTBEMzkwMDAwODdCMDI1RTQwODU4OTJERUM4QjdCMDI0RTg0OEY4MDVBCis6MTBEM0EwMDAyNTY0MEJGQTAyMTIwODk3ODA2RkUxMDg3QTAyMzAwMEI4Cis6MTBEM0IwMDAyMDAwMDAwMDAwMDAwMDAwNDgxNENDMjBCMzY0MkNDMDAyCis6MTBEM0MwMDAwODMwMDYwQzEwODM4QTZDQzA1QjMwNDJDQzAwQUIxMDc2Cis6MTBEM0QwMDAyQ0YyMEIzMDAyMEQwMDkzMDQyQ0Q1MDgzMDBBOTIwNDc1Cis6MTBEM0UwMDAzMDAwMDAwMDAwMDAwMDAwRTgxNUJCMDBGRUMwM0U4MEQ5Cis6MTBEM0YwMDAyQ0EwMDM2ODAwQzY0MDNGODAwRkEwMDI2ODAwQ0U0NDA2Cis6MTBENDAwMDAzNjkwNEY2MDAzMUI3MERFRDgzRkEwMEMyMDAzM0EwNDE3Cis6MTBENDEwMDA2MDAwMDAwMDAwMDAwMDAwNDgwMEUwNDBGODEwM0UwMEZFCis6MTBENDIwMDAwRjgwMDNBMDEwRjg0MjNFMTAxRjgwMDNBMDAwRTgwQ0ZDCis6MTBENDMwMDAzQTA0MUY4MDAzRTAwMEU4NDU3RTAyMkY4MDAzRDIwMEZCCis6MTBENDQwMDAzMDAwMDAwMDAwMDAwMDAwMDgxMDY0MDBFOTgwMzI0MDU1Cis6MTBENDUwMDAwRjkwMEIwNDA4RDk4MDM2NDAwRjEwMTMyNDA4RjkwMEYwCis6MTBENDYwMDA3MjcwMEY5MTEzMjQxMEM5MTAzRTY5MEM5MDAzMDIwNENFCis6MTBENDcwMDAzMDAwMDAwMDAwMDAwMDAwODAwNDY0MDhCOTgwMjI0MEYxCis6MTBENDgwMDAwQjEwMDIyNDAwODlDNDIyNTIwQjkwNDIyNDAwQjkwMEUwCis6MTBENDkwMDAyMkUwMEI5MDEyMjQwNEQ5NEEyRTYwMDg5MDAzNjAwMDA5Cis6MTBENEEwMDAxMDAwMDAwMDAwMDAwMDAwMTgwNTI0MDBCMTE4MjI0MDAwCis6MTBENEIwMDAwQjkwMDIyNDAwOEIyMDI2NDkwQjkwMDI2NDAwQjkwMEQ3Cis6MTBENEMwMDBBMjQwMEI5MDhBMjQwMDhCMDAyQzQwQTg5MDAyMDYwMEZBCis6MTBENEQwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDA0ODRCMTIwQTA0OEJGCis6MTBENEUwMDAwQjExMDYwNDAwODMwMDAwNDA0QjExMDIwNDQ5QjExMEU3Cis6MTBENEYwMDAyODQwMEIxMDAyMjQ0MTkxMDAyQzUwMDgxMDAyNDIwMUQ4Cis6MTBENTAwMDAwMDAwMDAwMDAwMDAwMDAwQjgwRDY5NDBFODUwMzIxNDJGCis6MTBENTEwMDAwRjg2OTMyMUUyQzgwMDM2MEEwQjg2OEI2MUE4Rjg0MDdCCis6MTBENTIwMDAyMjgwMEY4MkEzMjEwOEM4MDIzRTAwMEM4MDQzMkUwM0Y0Cis6MTBENTMwMDA1MDAwMDAwMDAwMDAwMDAwOTgxREY0NDhGRDEyM0U0NDE5Cis6MTBENTQwMDAwRjEyMDNDNDAwN0QwMTFFNDAwQjkyMDNFNDgwRjUyMEZFCis6MTBENTUwMDAzNjQwMEY5MDAzRDQ5MDdEMDAzRDQwMEY5NDAzRTYwNkMzCis6MTBENTYwMDA3MDAwMDAwMDAwMDAwMDAwMTgwMUY2QzFERDg4MzI3MjcyCis6MTBENTcwMDAwQzk4MDMyNjIyREQwMDNGNjIyQzk5ODM0NkEwQzk0MDA3Cis6MTBENTgwMDBCMjQwMEZEODAzMjQwMEZEMDAzMzUxMkNEODgzMDYwMDhECis6MTBENTkwMDA3MDAwMDAwMDAwMDAwMDAwMzgxMEUzQzI4OEMwMjIzMDk0Cis6MTBENUEwMDAwODhDNDIyMjExOEEwMTJFMDAwODg4NTIyMzAwODBBMzkxCis6MTBENUIwMDAyQTAwNEI4MDQyMjJBMEI4MDAyMjI4MDg4NDAyOEUwNDUwCis6MTBENUMwMDAzMDAwMDAwMDAwMDAwMDAwMDgwNUM0MDA4MTJEMjA0ODQ0Cis6MTBENUQwMDA2ODE0ODAwNDIwODEwMDJFNDAwQjEyMTIwNDI0ODEyMDQ0Cis6MTBENUUwMDAyMDQwMEI5NDMyMDQ5MEI5MDAyMDQwNDgxMDRBMDIwMUI4Cis6MTBENUYwMDA3MDAwMDAwMDAwMDAwMDAwMTgxNUE0MDA4OTIwMjI0MERGCis6MTBENjAwMDAwODkwMTIyNDAwODkwMDJFNDAwODkwMDIyNDA4ODk0MEM2Cis6MTBENjEwMDAyMjUwMEJCMDAyMjQyMEI5MDlBMjQ0MDg5MDAyODYwNENCCis6MTBENjIwMDA2MDAwMDAwMDAwMDAwMDAwQTAxNUU0MDBEOTA4QjI0MDJFCis6MTBENjMwMDA0QzEwMjMwNDA0RDlDMTNFNDA4RjkwMEIwNDA4QzE0MDE0Cis6MTBENjQwMDAxMjQwMEY5MDQzMjQwNEYxNDEzMDc4MEM5MDAzMjgwNEQ5Cis6MTBENjUwMDA3MDAwMDAwMDAwMDAwMDAwMjgwMTg2NjRGOTgwM0U0MDUwCis6MTBENjYwMDAwRjkwMEJFNDAwRjk5ODNFNDAyRjEwMDNBNDAyRjkxMDJDCis6MTBENjcwMDAzRTQwMEY5MDBCRTY0MEY5OTAzRTYwMEY5MDAzQ0EwMEM5Cis6MTBENjgwMDA2MDAwMDAwMDAwMDAwMDAwMjgxMEEwMDBDODQxMzIwMDI3Cis6MTBENjkwMDAwQzgwMDcyMDEwQzgxMDNFMEMwRTgwMDNFMDA0QzgwMDY4Cis6MTBENkEwMDBCQTAwMEY4MTQzMjAwMEY4NzAzRTAwMEYwMDBCMEEwNEZGCis6MTBENkIwMDAyMDAwMDAwMDAwMDAwMDAwMjgwNTM5MDI4RTIwQTM4MDExCis6MTBENkMwMDAyOEUwMEEzODEwQUUwNDNEQTE4RUUwMDJGODAwOEUwMDdBCis6MTBENkQwMDA3NjgwMEI2MDAzNzgwMEJFNDAyRjgyMEJBMDAzQ0EwMDQ3Cis6MTBENkUwMDA0MDAwMDAwMDAwMDAwMDAwMjgwNTREMDA4Qjg4MjJDMDhCCis6MTBENkYwMDAxODMwMDIwQzAwODM0NDJDRDAxQjMwMTJDQzA2ODMwMDVGCis6MTBENzAwMDAyMEMxMEIzMDgyMEMwMUIzMDAyQzQwMEIzMDAyMEEwMDA4Cis6MTBENzEwMDA1MDAwMDAwMDAwMDAwMDAwQTAwMTFDMDA4NTAwMjBDQzhCCis6MTBENzIwMDAwODcwMDYxQzg0QTcwMTI5QzAwQjcyMjJEQzgwODczNDk0Cis6MTBENzMwMDA2MTgwMEIxMDAyNUMwMEI3MDAyREMwMEI3MDAyRTgwMDg2Cis6MTBENzQwMDA0MDAwMDAwMDAwMDAwMDAwQTgwODBFMDA4QzgwMzFFMEJFCis6MTBENzUwMDAwQ0ZFMDIzRjAwQzU4MDJERTAwRTc4MDNERkEwQzdBMEJECis6MTBENzYwMDAyMTYwMEY3ODAzMUU4MEY3ODAzREUwMEY3ODAzMkEwMkM2Cis6MTBENzcwMDAwMDAwMDAwMDAwMDAwMDAwMDgxREFDMDBGOTAwM0VDMEUxCis6MTBENzgwMDAwRkIwMDNFQzAwRkEwMDNFQzAwNkIwMDNFQzgwRkIyOEFCCis6MTBENzkwMDAzNkQ4NEZBMDAzRUMxMEZBMDAzRTUwMEYzMDAzQzIwNkZCCis6MTBEN0EwMDA2MDAwMDAwMDAwMDAwMDAwMDAwNUZBMDBDQzgwQjNFMDNCCis6MTBEN0IwMDAwRkY4MDMzRTAwQ0Y5MDNGNjA0RkY4QzMzRTAwRUY4MDZDCis6MTBEN0MwMDAzM0YwMEM3QTAzM0U3MEM1OTAzM0YxMEM3ODAzMDAwMEZGCis6MTBEN0QwMDA3MDAwMDAwMDAwMDAwMDAwQTgxMUI4MDA4NzAwMjFDMDAwCis6MTBEN0UwMDAwQjcwNEExQzAwODcxMDJEQzA0QjcxMEEzQzQ0OEYxMkVECis6MTBEN0YwMDAyMTg2MEQ3MjAyMUUwMDg3MDAyMzQwMDg3MDBBMkEwNDQ5Cis6MTBEODAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDlDMDA4NDAwMjVDMEIzCis6MTBEODEwMDAwQjcxMEEwQzAwQTcxMjJEODQwQjcwMEExQzAwQjcwOEFDCis6MTBEODIwMDAyMzQwMDlGMzFBNUM4Njk3MDgyNTQwMDg3MDAyMDAwMDFGCis6MTBEODMwMDAyMDAwMDAwMDAwMDAwMDAwMjAxNENDMjA4MTIwMjZDMDIxCis6MTBEODQwMDAwQjMwMDIyQzAwODI0MjJDODAwQjMwMjIwQzA4OUI4MDczCis6MTBEODUwMDAyMEUwMDkyMDAyNEQwODkyMDAyNEU1MDgzMDBBMDgwNDVGCis6MTBEODYwMDAzMDAwMDAwMDAwMDAwMDAwQTgxNUFFODJDQUUwQjdDMDdBCis6MTBEODcwMDAwRkYwMTMzQzBBQzlDODNFNDAwRkYwMDMzQzA0RkY4NDdDCis6MTBEODgwMDAzMkMwMEQ5MDEzN0MwMEQ5MDBGNkMwMkMxMDAzMkEwNDdFCis6MTBEODkwMDA2MDAwMDAwMDAwMDAwMDAwODAwMEU0MDBGMzAwM0FDMUQ2Cis6MTBEOEEwMDA0RkIwMDNFQzAwRjkwODNDMDAwRjMwMTNFQzAwRUIwNDIwCis6MTBEOEIwMDBCRTE4MEY5MDIzQUM2MEU5MDIzQTQwNEY5MDAzRTAwMDlECis6MTBEOEMwMDAzMDAwMDAwMDAwMDAwMDAwMDExMEZDMDBDQTAwMzNDMDVFCis6MTBEOEQwMDAwQ0YwMDNGQzAwQ0QwMjdGNDAwQ0YwNDIzQzAwQ0YwODZFCis6MTBEOEUwMDAzNzEwMEZEMDAzRkMxMENEMDgzRjY2MkNEOTAzMDA0NDNECis6MTBEOEYwMDAzMDAwMDAwMDAwMDAwMDAwODEwNDYzODA4QkUwMjJDMDQzCis6MTBEOTAwMDAwOEIwMjJFQzAwRDg4MDZFMjA2OEIwMUEyQzAxRkIwMDExCis6MTBEOTEwMDAyMjE4MEI4ODQzNEMwMDg4QTAyQ0MwMUQ5MDAyMjA0MDg4Cis6MTBEOTIwMDAxMDAwMDAwMDAwMDAwMDAwODAwMTA4ODA4QjIwMjJDMDUxCis6MTBEOTMwMDAwOEIwMjJFQzAwODg4ODJFNjI0OEIwMUFDQzAwOEIwMDE4Cis6MTBEOTQwMDAyNkMwNEE4ODAyRUMwMDA4ODQyRTQwMDk5MDAyMjAwMDdDCis6MTBEOTUwMDA0MDAwMDAwMDAwMDAwMDAwMDgwNDAwMDA4MzAwNjBDMEQ4Cis6MTBEOTYwMDAwODMwMDJDQzAwOTAwNjZDMDAwODMwMDI4QzAwQTMwNDQyCis6MTBEOTcwMDAyMDAwOEIwMDA2NEMyMTgwMDA2Q0MwNDkxMDBBMDIwMTc3Cis6MTBEOTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDZDMDBDQTAwQjJDMUUxCis6MTBEOTkwMDA4OEI0MDNFQzEwQzgwMDJFMDAwQ0IwMEJCQzA4OEYwMDNDCis6MTBEOUEwMDAzNjAwMDY4MDAzRUM4MEM4MDIzRkMxMEM5MDAzMDAwM0UwCis6MTBEOUIwMDA1MDAwMDAwMDAwMDAwMDAwQTAxREYwMDBGRjAwM0ZDMDZDCis6MTBEOUMwMDAwRjcyODNGQzE4RkMwMzNGMDA4RjcwMDM3QzAwRkYwMDg0Cis6MTBEOUQwMDAzRDAwMEZDMDIzOEMwNkZDMDAzRjQwMEVEMDAzRTgwNjNDCis6MTBEOUUwMDA3MDAwMDAwMDAwMDAwMDAwMDBDNTQxMDM3MDQwREMxMDIyCis6MTBEOUYwMDAzNzA0MERDMTAzNzA0MERDMTAzNzA0MERDMTAxNzA0MEM1Cis6MTBEQTAwMDA5QzEwMTcxNDA1QzEwMzcwNDBEQzEwMTcwNDBEQzAzMUMxCis6MTBEQTEwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQ0MDU3MTAxNUM0MEVBCis6MTBEQTIwMDA1NzEwMTVDNDA1MjEwMTVDNDA1NzEwMTVDNDAxNzEwMTQwCis6MTBEQTMwMDA1QzQwMTcxMDA1QzQwNTcxMDU1QzQxNTcxMDE1QzAxMUY1Cis6MTBEQTQwMDA1MDAwMDAwMDAwMDAwMDAwMDA4MDAyMDEyMDgwNDgyMEZCCis6MTBEQTUwMDAxMjA4MDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4MjAxMjA4MERDCis6MTBEQTYwMDA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTIwODA0ODAyMEU3Cis6MTBEQTcwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDA2MDAwNTgwMDZFCis6MTBEQTgwMDAxNjAwMDU4MDAxNjAwMDU4MDAxNjAwMDU4MDA1NjAwMDQyCis6MTBEQTkwMDA1ODAwMTYxODAxODAwMTYwMDA1ODAwNTYwMDA1ODAyMENCCis6MTBEQUEwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQ4MDUyMjAxMUM4MEE1Cis6MTBEQUIwMDA0NzIwMTFDODA0NzIwMTVDODA1NzIwMTFDODA0NzI0MUNDCis6MTBEQUMwMDA1QzgwNTcyMDExQzgwNDcyMDExQzgwNDcyMDE1QzAzMUFBCis6MTBEQUQwMDA1MDAwMDAwMDAwMDAwMDAwMDBDNTQwMDA2MDAwMTgwMDc5Cis6MTBEQUUwMDAwNjAwMDE4MDAwNjAwMDE4MDAwNjAwMDE4MDAwNjAwMDUwCis6MTBEQUYwMDAxODAwMDYwMDAxODAwMDYwMDAxODAwMDYwMDAxODAzMTU3Cis6MTBEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQ4MDQyMjAxMDg4MDU5Cis6MTBEQjEwMDA0MjIwMTA4ODA0MjIwMTA4ODA0MjIwMTA4MDA0MjMwMTQyCis6MTBEQjIwMDAwODgwNDIyMDEwODgwNDIyMDEwODAwNDIyMDEwODAyMTMxCis6MTBEQjMwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTRBMDU0MjgxNTBBMDFFCis6MTBEQjQwMDA0NDJDMTEwQjA0NDI4MTEwRTA1NDI4MTEwMjAwNDI4MTQwCis6MTBEQjUwMDAxMEEwNDQzODExMEIwNTQyODExMDIxMTQyODE1MDAzMTAyCis6MTBEQjYwMDA1MDAwMDAwMDAwMDAwMDAwMDA4MDBDMDE1NzAwNTRDMDZECis6MTBEQjcwMDAxNTMwMDQ0QzAxMTMwMDU0QzAxNTcwMDU0QzAxNTMwMEJFCis6MTBEQjgwMDA1NEMwMTUzMDg1NEMwMTEzMDA1NEMwMTUzMDA1NDAyMTk4Cis6MTBEQjkwMDA0MDAwMDAwMDAwMDAwMDAwMDA4MDAwMDA0MDAwMTAwMDc1Cis6MTBEQkEwMDAwNDAwMDA0MDAwMTAwMDEwNjIwNDAwMDEwODA0NDEwMDVECis6MTBEQkIwMDAxMDAwNDQxODExMDAwMDEwMDAxMDgwMDQwMDAxMDEyMDIyCis6MTBEQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTYwMDIwODAwODIwMDI0Cis6MTBEQkQwMDAyMDgwMDg2MDAyMTgwMDgyMDAyMDgwMDgyMDAwMDgyMEIxCis6MTBEQkUwMDA4MjAwMDA4MDgwMjAwMjE4MDA4MjAwMjA4MDA4MDEzMTFECis6MTBEQkYwMDA1MDAwMDAwMDAwMDAwMDAwMDBDNTQwMDU2NDAxNTgwMDBFCis6MTBEQzAwMDA1NjAwMTU4MDA1NjAwMTU4MDA1NjQwMTU4MDA1NjAwMURBCis6MTBEQzEwMDA1ODAwNTYwMDE1ODAwNTYwMDE1ODAwNzYwMDE1ODAzMUM3Cis6MTBEQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQwMDM2MDAwRDgwMEI0Cis6MTBEQzMwMDAzNjAwMEQ4MDAzNjAwMDk4MDAzNjAwMUQ4ODA1NjAwMEU2Cis6MTBEQzQwMDBEODAwMTYwMDBEODAwMzYwMDBEODgwNDYwMDBEODAzMTlBCis6MTBEQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQyMDQzMDgxMEMyMERDCis6MTBEQzYwMDA0MzA4MTBDMjA0MzA4MTBDMjI0MTA4MThDMjA0MzA4OUQ0Cis6MTBEQzcwMDAwQzIwMDMwODEwQzIwNDMwODEwQzIwNDMwODEwQzAxMDhGCis6MTBEQzgwMDA1MDAwMDAwMDAwMDAwMDAwMDA4MDAwMDAzMDAwMEMwMDg4Cis6MTBEQzkwMDAwMzAwMDBDMDAwMzAwMDBDMDAwMzAwMDBDMDAwMzAwMDkyCis6MTBEQ0EwMDAwQzAwMDMwMDAwQzAwMDMwMDAwQzAwMDMwMDAwQzAwMUE1Cis6MTBEQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAyMDEzMDgwNEMyMEM1Cis6MTBEQ0MwMDAxMzA4MDRDMjAxMzA4MDRDMjAxMzA4MDRDMzAxMzA4MEMzCis6MTBEQ0QwMDA0QzIwMTMwODA0QzIwMTMwODA0QzMwMTMwODA0QzAyMUNBCis6MTBEQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQyMDU2MDgxNTgyMENGCis6MTBEQ0YwMDA1NjA4MTE4MjA1NjA4MTU4MjA1NjA4MTE4MzAwNjA4MTAyCis6MTBERDAwMDA1ODIwNDYwODExODIwNDYwODExODMwNTYwODE1ODAzMDZBCis6MTBERDEwMDA1MDAwMDAwMDAwMDAwMDAwMDBDNTQyMDAyMDgwMDgyMEU0Cis6MTBERDIwMDAwMjA4MDA4MjAwMjA4MDA4MjAwMjA4MDA4MjAwMzA4MDYzCis6MTBERDMwMDAwODIwMDIwMDAwODIwMDIwODAwODIwMDMwODAwODAzMUIzCis6MTBERDQwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQyMDQ2MDgxMTgyMEFGCis6MTBERDUwMDA0NjQ4MTE5MjA0NjA4MTE5MjA0NjI4MTE4MjAwMzQ4MUJFCis6MTBERDYwMDAxODIwNDY0ODExOTIwNDYwODExODIwNDMwODExODAxMTQwCis6MTBERDcwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTYwMDQ1ODAxNTYwMENCCis6MTBERDgwMDA1NTgwMTU2MDA0NTgwMTE2MDA1NTgwMDE2MDA0MTgwMTgzCis6MTBERDkwMDA1NjAwNDU4MDExNjAwNDU4MDExNjAwNDE4MDExNDAzMTQxCis6MTBEREEwMDA1MDAwMDAwMDAwMDAwMDAwMDA4MDA2MDE0MTgwNTA2MDJCCis6MTBEREIwMDAxNDE4MDUwNjAxNDE4MDUwNjAwNDE4MDUwNjAwNDE4MEQyCis6MTBEREMwMDAxMDYwMTQxODA1MDYwMTQxODA1MDYwMTQxODA1MDAyMEU5Cis6MTBEREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDEwMDgwNDAyMDYwCis6MTBEREUwMDAxMDQ4MDQxMjAxMDA4MDQxMjAxMDA4MDQwMjAxMDQ4MDQwCis6MTBEREYwMDA0MDIwNTA0ODA0MTIwMTAwODQ0MDIwMTAwODA0MDAyMEY0Cis6MTBERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQ2MDM1MTgwRDQ2MEZGCis6MTBERTEwMDAzMDE4MEQ0NjAzNTE4MEQ1NjAzNTE4MEQ0NjAzMDU4MDM2Cis6MTBERTIwMDBENDYwMTUxODBENDYwMzExODBENDYwMzUxODBENDAzMUFCCis6MTBERTMwMDA1MDAwMDAwMDAwMDAwMDAwMDBDNTQ2MDU3MTgwNUM2MEQ1Cis6MTBERTQwMDA5NzE4MTVDNjA1NzE4MTVDMjA1NzE4MTVDNjAzNzA4MTk3Cis6MTBERTUwMDA1QzYwNTcxODExQzYwNTMxODE1QzYwNzcxODE1QzAzMUI4Cis6MTBERTYwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQ2MDM3MTgwREM2MEY3Cis6MTBERTcwMDAzNzE4MERDNjAzNzE4MERENjAzNzE4MDVDNjAxNzU4MTNFCis6MTBERTgwMDBEQzYwMzcxODBEQzYwMzcxODQ1QzYwMTcxODE5QzAxMTY3Cis6MTBERTkwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQ2MDU3MTgxNUM2MDQ0Cis6MTBERUEwMDA1NzE4MTQ4NjA1NzE4MTVDNjA1NzE4MDVDNjA0MzE4MUM2Cis6MTBERUIwMDA1QzYwNTcxODE1QzYwNTcxODA1QzYwNDMxODE1QzAxMTY5Cis6MTBERUMwMDA1MDAwMDAwMDAwMDAwMDAwMDAwMDAyMDEyMDgwNDgyMEY3Cis6MTBERUQwMDAxMjA4MDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4MjAxNzA4MDA4Cis6MTBERUUwMDA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTcwODA0ODAwMDdFCis6MTBERUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDE2MTgwNTg2MDgyCis6MTBERjAwMDAxNjE4NDE4NjAxNjE4MDE4NjAwNjNDMDU4NjA0NjE4MDEwCis6MTBERjEwMDAxODYwMTYxODAxODYwMDYxODA1ODYwNTYxODE1ODAxMDI4Cis6MTBERjIwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQwMDU3MDAxNUMwMDlBCis6MTBERjMwMDA1NzAwMTVDMDA0NzAwMTVDMDA1NzAwMTBDMDA0NzAwMDQ5Cis6MTBERjQwMDAxQzAwNDcwMDExQzAwNDcwMDE1QzAwNDcwMDAxQzAxMUIzCis6MTBERjUwMDA1MDAwMDAwMDAwMDAwMDAwMDA0NTQyMDA2MDgwMTgyMEQyCis6MTBERjYwMDAwNjA4MDE4MjAwNjA4MDE4MjAwNjA4MDA4MjAwNjA4MDk4Cis6MTBERjcwMDAxODIwMDYwODAxODIwMDYwODAxODIwMDYwODAxODAxMTIwCis6MTBERjgwMDA0MDAwMDAwMDAwMDAwMDAwMDAwNTQyMDQyMDgxMDgyMDNECis6MTBERjkwMDA0MjA4MTA4MjA0MjA4MTA4MjA0MjA4MTE4MjA0MjA4MDU3Cis6MTBERkEwMDAwODIwNDIwODEwODIwNDIwODEwODIwNDIwODAwODAxMUM1Cis6MTBERkIwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQyMDU0MDgxNTAyMEE0Cis6MTBERkMwMDA1NDA4MTUwMjA1NDA4MTEwMjA1NDBDMTU0MjAwNDA4MTcwCis6MTBERkQwMDA1MDIwNDQwODExMDIwNTQwODExMDIwMTQwODA1MDAxMTRBCis6MTBERkUwMDA1MDAwMDAwMDAwMDAwMDAwMDAwMTAzMDE1MEMwNTQzMDQ4Cis6MTBERkYwMDAxNTA4MDU0MjAxNTBDMDU0MzAxNTBDMDU0MzAxNTBDMEFFCis6MTBFMDAwMDA1NDMwMTUwQzA1NDIwMTUwQzA1NDMwMTUwQzA1NDAxMDE5Cis6MTBFMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDA0MjAwMTA4MDI2Cis6MTBFMDIwMDAwNDIwMDE4ODAwNjIwMDEwODAwNDAwMTEwODAwNDIwMEYyCis6MTBFMDMwMDAxMDgwMDQyMDAxMDgwMDQyMDExMDgwMDQyMDAxMDAwMDJCCis6MTBFMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTQyMDIwMDgwODAyMDI3Cis6MTBFMDUwMDAyMDA4MDgwMjAyMjA4MDgwMjAyMDI4MDAwMjAyMDA4MDgwCis6MTBFMDYwMDA4MDIwMjAwQTA4MDIwMjAwODAwMDIwMjAwODA4MDAxMUY5Cis6MTBFMDcwMDA1MDAwMDAwMDAwMDAwMDAwMDA0NTQwMDU2MDAxNTgwMDBECis6MTBFMDgwMDA1NjAwMDU4MDA1NjAwMTU4MDg1NjAwMTU4MDA3NjAwMjlCCis6MTBFMDkwMDA1ODAwNTY0MDE1ODAwNTYwMDMxODAwNzYwMDE1ODAxMTYxCis6MTBFMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTQwMDM2MDAwRDgwMDMwCis6MTBFMEIwMDAzNjAwMEQ4MDAxNjAwMEQ4MEEzNjAwMEQ4MDA1NzAwOTE5Cis6MTBFMEMwMDBEODAxMzYwMDBEODAwMzYwMDBEODAwNTcwMDBEODAwMDk1Cis6MTBFMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzMDAxMEMwMEZGCis6MTBFMEUwMDA0MzAwMTBDMDAwMzAwMTBDMDA0MzIwMTBDMDA0NjAwMTQ4Cis6MTBFMEYwMDAwQzAwNDM0MDUwQzEwNDMwMDEwQzAwNDYwMDEwQzAwMDI5Cis6MTBFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDAwMEMwMEQzCis6MTBFMTEwMDAwMTAwMDBDMDAwMzAwMDBDMDAwMzAwMDBEMDAwMjAwMDBGCis6MTBFMTIwMDAwQzAwMDM0MDAwQzAwMDMwMDAwRDAwMDIwMDAwQzAwMEUxCis6MTBFMTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MDEzMTQwNEM1MENDCis6MTBFMTQwMDAxMzEwMDRDNDAxMzE0MDRDNTAxMzE0MDRDNTExMzE0MTYzCis6MTBFMTUwMDA0QzUwMTMxNDA0QzUwMTMxNDA0QzUwMTMxNDA0QzAwMDNBCis6MTBFMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzMDU2OEMxNUEzMEQ0Cis6MTBFMTcwMDA1NjhDMTFBMzA0NjhDMTFBMzA1NjhDMTFBMzA1NjhDMENGCis6MTBFMTgwMDA1QTMwNDY4QzExQTMwNDY4QzE1QTMwMTY4QzE1ODAwMDkxCis6MTBFMTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDgwMDU3Cis6MTBFMUEwMDAwMjAwMDA4MDAwMjAwMDA4MDAwMjIwMDA5MDAwMjAwMEYzCis6MTBFMUIwMDAwODAwMDI0MDAwODAwMDIwMDAwOTAwMDIwMDAwODAwMEVBCis6MTBFMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NDQ2MjAxMTg4NDA0Cis6MTBFMUQwMDA0NjIxMTE4ODQ0NjIxMTE4ODQ0NjAxMTE4ODQ0NjIxMDU2Cis6MTBFMUUwMDAxODg0NDYyMTExODg0NDYyMTExODg0MDYyMTExODAwMDg4Cis6MTBFMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU1MDExNTQwNDIxCis6MTBFMjAwMDA1NTAxMTE0MDQ1NTAxMTE0MDA0NTAxMTE0MDQ0NTAwMDgyCis6MTBFMjEwMDAxNDA0NDUwMDE1NDA0NDUwMTExNDA0NTUwMTExNDAwMEU4Cis6MTBFMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MjE0MjA4NTA4MkE5Cis6MTBFMjMwMDAxNDIwODUwODIxNDIwODUwODIwNDIwODUwODIxNDIwOEM0Cis6MTBFMjQwMDA1MDgyMTQyMDA1MDgyMTQyMDg1MDgyMTQyMDg1MDAwMEM1Cis6MTBFMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMDEwMjgwNDBBMDUxCis6MTBFMjYwMDAxMDI4MDQwQTAxMDI4MDQwQTAxMDI4NDAwQTAxMDI4MDAwCis6MTBFMjcwMDA0MEEwMTAyODQ0MEEwMTAyODA0MEEwMTAyODA0MDAwMDk5Cis6MTBFMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMDM1MzAwRDRDMDk4Cis6MTBFMjkwMDAzNTMwMEQ0QzAxNTMwMEQ0QzAzNTEwMEM0QzAzNTMwMEU1Cis6MTBFMkEwMDBENEMwMzUzMDBENEMwMzUzMDBENEMwMzUzMDBENDAwMDgwCis6MTBFMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDU3MjAxNUM4MDAyCis6MTBFMkMwMDAxNzIwMDVDODA2NzIwMTVDODA1NzIwMTVDODAyNzIwMTJDCis6MTBFMkQwMDA1QzgwNTcyMDE1QzgwNTcyMDE1QzgwMzcyMDExQzAwMDkyCis6MTBFMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzMTg0MEM2MTIzMUFBCis6MTBFMkYwMDA4NDhDMjEyMzA4NDhDNjEyMzA4NDBDNjEyMzEwNDhDMjQ0Cis6MTBFMzAwMDAxMjMxODQ4QzAxMjMwODQ4QzYxMjMxMDQ4QzYxMDAwMDRDCis6MTBFMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkY0RkZGRDNGRjlGCis6MTBFMzIwMDBGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRjIzCis6MTBFMzMwMDBEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEMDAwMENECis6MTBFMzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTBFMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTBFMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTBFMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDREIwRkI2QzJDRDQyCis6MTBFMzgwMDBCMEIzNkMyQ0RCMEIzNkMyREZCMEIzNkMyQ0RCMEI3RTc2Cis6MTBFMzkwMDBDMkNEQjBCN0ZEMkNEQjBCMzZDMkNEQjBCMzZDMDAwMEU0Cis6MTBFM0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzM0M0RkNGMTMzMzlBCis6MTBFM0IwMDBDNENDRjEzMzNDNENDRjEzM0ZDNENDRjEzMzNDNENGRkM1Cis6MTBFM0MwMDAxMzMzQzRDRkZEMzMzQzRDQ0YxMzMzQzRDQ0YxMDAwMDI2Cis6MTBFM0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNCN0U0RURGOTNCNzBECis6MTBFM0UwMDBFNEVDNzkzQjFFNEVERjkzQkZFNDhERjkzQjc4NEVGRkEyCis6MTBFM0YwMDA5M0I3RTRFREZEM0IxRTRFREY5M0I3ODRFREY5MDAwMENCCis6MTBFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDI3MDQwOUMxMEFECis6MTBFNDEwMDAyNzFDMDlDMTAxMzA0MDFDMTA2NzA0MDlDMTAyNzA0MTZBCis6MTBFNDIwMDA5QzExMDcxNDAxQzEwMjcwNDA5QzUwMDcxQzAxQzAwMEUwCis6MTBFNDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDU3MTAxNUM0MEM1Cis6MTBFNDQwMDA1NzEwNTVDNDAxMzEwMDVDNDA1NzEwMTVDNDA1NzEwMUM3Cis6MTBFNDUwMDBEQzQwMTcxODFEQzQwNTcxMDU1QzQwNTcxMDFEQzAwMDM1Cis6MTBFNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDEyMDgwNDgyMEExCis6MTBFNDcwMDAxMjAwMDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4MjAxMjA4MEJBCis6MTBFNDgwMDA0ODIwMTIwODA0ODIwMTIwODA0ODYwMTIwODA0ODAwMDlECis6MTBFNDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwMTgwMDA0Cis6MTBFNEEwMDAwNjAwNDE4MDAwNjAwMDE4MDA0NjAwMDE4MDAwNjAwMDA2Cis6MTBFNEIwMDAxMDAwMDYxMDAxODAwMDYwMDAxODIwNDYxMDAxODAwMDQ2Cis6MTBFNEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDQ3MjAxMUM4MDMxCis6MTBFNEQwMDA0NzIwMTFDODA0NzIwMTFDODAwNzIwMTFDODA0NzMwMDcyCis6MTBFNEUwMDAxQzgwNDcyMDExQ0MwNDcyMDExQzgwNDcyMDExQzAwMDAxCis6MTBFNEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwMTgwMEE0Cis6MTBFNTAwMDAwNjAwMDE4NDAwNjAwMDE4MDAwNjAwMDE4MDAwNjA0MEUxCis6MTBFNTEwMDAxODAwMDYwNDAxODEwMDYwMDAxODAwMDYxNDAxODAwMDQ0Cis6MTBFNTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDQyMjAxMDg4MDM0Cis6MTBFNTMwMDA0MjcwMTA4QzA0MjIwMTA4QzAwMjIwMTA4ODA0MjIwMEJFCis6MTBFNTQwMDAwODgwNDI1MDEwMDgwNDIyMDEwOTAwNDI0MDEwODAwMDU3Cis6MTBFNTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFMDQ0QTgxMTJBMDBDCis6MTBFNTYwMDA0NEE4MTEyQTA0NEE4MTEyQTAwNEE4MTEyQTA0NEI4MDRECis6MTBFNTcwMDAxMkEwNDQ4ODAxMkUwNDRBODExMjIwMDQ5ODAxMDAwMDUwCis6MTBFNTgwMDAwMDAwMDAwMDAwMDAwMDAwMDhDMDBFMDA1MzAwMTRDMDhFCis6MTBFNTkwMDAwNTMwMDE0QzAwNTMwMDE0RTAwNTMwMDE0QzAwNTMwMERECis6MTBFNUEwMDAwNEMwMDUzMDAwNEMwMDAzMDAxNEMwMDUzMDAwNDAxMENBCis6MTBFNUIwMDAwMDAwMDAwMDAwMDAwMDAwMDhDMDA0MDA0MDAwMTAwMDNGCis6MTBFNUMwMDAwNDU4MDEwNDAwNDAwMDEwMDAwNDAwMDEwMDAwNDEwMDU0Cis6MTBFNUQwMDAwNDAwNDQ1ODEwNDQwMDAwMDAxMTgwMDQ1MDEwNDAzMEUyCis6MTBFNUUwMDAwMDAwMDAwMDAwMDAwMDAwMDhDMDQwMDIwMDAwODAwMEExCis6MTBFNUYwMDAyMDAwMDgwMDQwMDAwMDAwMDAyMDAwMDgwMDAyMDAwMDg5Cis6MTBFNjAwMDA4NDAwMDAwMDA4NDAwMjAwMDA4MDAwMjAwMDA4NDAzMDI0Cis6MTBFNjEwMDAwMDAwMDAwMDAwMDAwMDAwMDhDMDQwMDA2MDAxMTgwMDc5Cis6MTBFNjIwMDA0NjAwMDE4MDA2NjAwMTk4MDA0NjAwMTE4MDA0NjAwMUU4Cis6MTBFNjMwMDAxODAwNDYwMDExODAwNDIwMDExODAwNjYwMDExODAzMDg3Cis6MTBFNjQwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMTQwMDA2MDAwOTgwMDgxCis6MTBFNjUwMDAyNjAwMDk4MDAyNjAwMTk4MDAwNjAwMEM4MDAyNjAwMDFDCis6MTBFNjYwMDAxODAwMDYwMDAxODAwMjYwMDA5ODgwMDYwMDAxODIwMDA4Cis6MTBFNjcwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQyMDAzMDgxMEMyMEY2Cis6MTBFNjgwMDA0MzA4MTBDMjI0MzA4MThDMjAwMzA4MTBDMjA0MjA4MDZCCis6MTBFNjkwMDAwQzIwMDMwODE4QzIwNDMwODEwQzIwNDMwODE4QzAxMTU0Cis6MTBFNkEwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAzMDAwMEMwMDlFCis6MTBFNkIwMDAwMzAwMDBDMDQwMzAwMDBDMDAwMzAwMDA4MDAwMzAwMDY4Cis6MTBFNkMwMDAwQzAwMDMyMDAwQzAwMDMwMDAwQzAwMDMyMDAwQzAwMDNDCis6MTBFNkQwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMTAyMTAzMDgwMEMyMDBCCis6MTBFNkUwMDAwMzA4MDBDMjAwMzA4MDBDMjAwMzA4MDBDMjAxMjA4MDEzCis6MTBFNkYwMDAwQzIwMDMyQzAwQzIwMDMwODAwQzMwNDMyQzAwQzAwMEUyCis6MTBFNzAwMDA0MDAwMDAwMDAwMDAwMDAwNDA0NTQyMDQ2MDgxMTgyMEU1Cis6MTBFNzEwMDA0NjA4MTE4MjA0NjA4MDE4MjA0NjA4MTE4MjA0NjA4MTM2Cis6MTBFNzIwMDAxODIwNDYwQzExQzIwNDYwODExODMwNDYwQzExQzAxMTJCCis6MTBFNzMwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTQyMDAyMDgwMDgyMDNFCis6MTBFNzQwMDAwMjI4MDA4MjAwMjA4MDA4MjAwMjA4MDA4MjAwMjA4MDI5Cis6MTBFNzUwMDAwODIwMDIwODAxODIwMDIwODAwODIwMDMwODAxODAwMEIwCis6MTBFNzYwMDAwMDAwMDAwMDAwMDAwMDAwNTAwMTQyMDQ2MDgxMTgyMEY5Cis6MTBFNzcwMDA0NjI4MTE4MjA0NjA4MDE4MjA0NjA4MTE4MjA0NjA4MUI2Cis6MTBFNzgwMDAxODIwNDYwODEwODIwNDYwODExODIwNDMwODEwODAwMDc5Cis6MTBFNzkwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQwMDQ1MDAxMTQwMDRCCis6MTBFN0EwMDA0NTAwMTE0MDI1MDAwMDE0MDA0NTAwMTE0MDA0NTAwMUFGCis6MTBFN0IwMDAxNDAwNDUwMDAwNDAwNDUwMDE0MDAwMDEwMDAwNDIxMUQ3Cis6MTBFN0MwMDA1MDAwMDAwMDAwMDAwMDAwNDgwMDA2MDA0MTgwMTA2MDdBCis6MTBFN0QwMDAwNDE4MDEwNjAwNDE4MDEwNjAwNDE4MDEwNjAwNDE4MDAxCis6MTBFN0UwMDAxMDYwMDQxODAxMDYwMDQxODAxMDYwMDQxODAxMDAwMDQ4Cis6MTBFN0YwMDAwMDAwMDAwMDAwMDAwMDAwNDgwMDAyMDUwMDgwNDAyMUU5Cis6MTBFODAwMDAxMDA4MDQwMDAxMDA4MDQwMjAxMDA4MDQwMjAxMDA4MDZDCis6MTBFODEwMDA0MDIwNTAwODE0MDIxMTAwODQ0MDIwMTAwODE0MDAwMDA5Cis6MTBFODIwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQ2MDE1MTgwRDQ2MDE3Cis6MTBFODMwMDAzNTE4MEQ0NjAzNTE4MEQ0NjAxNTE4MEQ0NjAzNTE4MERDCis6MTBFODQwMDA1NDYwMTUxODBENDYwMzUxODBENDYwMzUxODBENDAxMUUxCis6MTBFODUwMDA1MDAwMDAwMDAwMDAwMDAwMDAwMTQ2MDQ3MTgxMUM2MEFGCis6MTBFODYwMDA0NTE4MTFENjA0NzE4MTFDNjA2NzE4MTFDNjA0NzE4MUE2Cis6MTBFODcwMDA5QzYwNDcxODExQzYwNDcxODExQzYwNjcxODExQzAwMEE0Cis6MTBFODgwMDAwMDAwMDAwMDAwMDAwMDAwNDAwNTQ2MDI3MTgwOUM2MDBFCis6MTBFODkwMDAyNzE4MDlDNjAwNzE4MDlDNjA2NzE4MDlDNjAyNzE4MDNDCis6MTBFOEEwMDA5QzYxMjcxODAxQzYwMjcxODA5QzYwMDcxODAxQzAwMDk2Cis6MTBFOEIwMDAwMDAwMDAwMDAwMDAwMDAwNTA0NTQ2MDU3MTgxNUM2MENBCis6MTBFOEMwMDA1NzE4NTVENjAxNzE4MTVDNjA1NzE4MTVDNjA1NzE4MUJFCis6MTBFOEQwMDA1QzYwNTcxODE4QzYwNTcxODE1QzYwNDMxODE4ODIxMTc2Cis6MTBFOEUwMDA1MDAwMDAwMDAwMDAwMDAwNDAwNDUyMDEyMDgwNDgyMDM5Cis6MTBFOEYwMDAxMjQ4MDQ5MDAxMjA4MDQ5MjAxMjA4MDQ4MjAxMjQ4MERCCis6MTBFOTAwMDA0ODIwMTI0ODAwOTIwMTIwODA0ODIwMTc0ODA0ODAwMUM2Cis6MTBFOTEwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDA2MDA2MTgwMTg2MDU4Cis6MTBFOTIwMDAwNjNDMDE4NjAwNjE4MDE4NjA0NjE4MDE4NjAwNjE4MEZGCis6MTBFOTMwMDAxODYwMDYxODAxODYwMDYxODAxODYwNDYxODAxODAwMTgxCis6MTBFOTQwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MTYwMDQ3ODAxMUUwMDhCCis6MTBFOTUwMDA0NzgwMTFFMDI0NzgwMTFFMDAwNzgwMTFFMDA0NzgwMTRGCis6MTBFOTYwMDAxRTAwNDc4MDExRTAwNDM4MDExRTAwNDc4MDExQzAxMUNECis6MTBFOTcwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTEyMDA2MDgwMTgyMERDCis6MTBFOTgwMDAwNjQ4MDE5MjAwNjA4MDE5MjAwNjA4MDE4MjAwNjQ4MDE4Cis6MTBFOTkwMDAxODIwMDY0ODAxOTMwMDIwODAxODIwMDY0ODAxODAwMEI2Cis6MTBFOUEwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMTQyMDQyMDgxMDgyMDE3Cis6MTBFOUIwMDA0MjA4MTA4MjA0MjA4MTA4MjAwMjA4MTA4MjA0MjA4MTZECis6MTBFOUMwMDAwODIwNDIwODEwOEEwNDYwODEwODIwNDIwODEwODAwMDU0Cis6MTBFOUQwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQyMDQ0MDgxMTAyMDdCCis6MTBFOUUwMDA0NDA4MTEwMjA0NDA4MTEwMjAwNDA4MTEwMjA0NDA4MUVGCis6MTBFOUYwMDAxMDIxNDQwODAxMDIwNDUwODExMDIwMDQwODAxMDAxMTc0Cis6MTBFQTAwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMDAzMDA1MEMwMTQzMDFGCis6MTBFQTEwMDAwNTBDMDE0MzAwNTBDMDE0MzAwNTBDMDE0MzAwNTA4MDI4Cis6MTBFQTIwMDAxNDMwMDUwODAxNEEwMDUwQzAxNDMwMDUwODAxNDAwMEE4Cis6MTBFQTMwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDA4MDA0MjAwMTA4MEJDCis6MTBFQTQwMDAwNDIwMDEwODAwNDIwMDEwODAwNDIwMDEwODAwNDIwMDU4Cis6MTBFQTUwMDAxMDgwMDQyMDExMDAwMDQyMDAxMDgwMDQyMDExMDAxMERBCis6MTBFQTYwMDA0MDAwMDAwMDAwMDAwMDAwNDA0NTQyMDIwMDgwODAyMDdECis6MTBFQTcwMDAyMDA4MDgwMjAwMDA4MDgwMjAyMDA4MDgwMjAyMDA4MDkwCis6MTBFQTgwMDA4MDIwMjAwODA4MDIwMjAwODA4MDIwMjAwODA4MDAxMTUxCis6MTBFQTkwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTQwMDA2MDAxMTgwMDJDCis6MTBFQUEwMDA0NjAwMTE4MDA2NjAwMTE4MDA0NjAwMTE4MDA0NjAwMUQ0Cis6MTBFQUIwMDAxODAwNDYwMDExODAwNDYwMDExODAwNjYwMDExODAxMEUzCis6MTBFQUMwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMTQwMDI2NDAwOTgwMEM3Cis6MTBFQUQwMDAyNjAwMDk5MDA2NjAwMTk4MDAyNjQwMDk4MDAyNjAwMDI3Cis6MTBFQUUwMDA5ODAwMjYwMDAwOTAwMjYwMDA5ODAwMDcwMDAxODAwMDU2Cis6MTBFQUYwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTYwMDQzODA1MEUwMEUyCis6MTBFQjAwMDA0MzgwMTBFMDQ0MzgwMTBFMDA0MzgwMTBFMDA0MzgwMUQ3Cis6MTBFQjEwMDAwRTAwNDM4MDE4QTAwNDM4MDEwRTAwNDY4MDE4ODAxMUIyCis6MTBFQjIwMDA1MDAwMDAwMDAwMDAwMDAwNTAwMDAxMDAzMDQwMEMxMEI4Cis6MTBFQjMwMDAwMzA0MDBDNTAwMzA0MDBDMTAwMzE0MDBDMTAwMzA0MDM1Cis6MTBFQjQwMDAwQzEwMDMwNDAwODc0MDMwNDAwQzEwMDIwNDAwODAwMEM5Cis6MTBFQjUwMDAwMDAwMDAwMDAwMDAwMDAwNDAwNDA1MDAzNTQwMEM1MDlCCis6MTBFQjYwMDAwMzE0MDBENTA0MzE0MTBDNTAwMzVDMDBDNTAwMzEwMDkyCis6MTBFQjcwMDAwQzUwMDMxMDAwOTQwMDMxNDAwQzUwNDMxMDAwQzIwMEIwCis6MTBFQjgwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQzMDUyMEMxMTgzMDhGCis6MTBFQjkwMDA0NjBDMTE5NzAwNjBDMDE4MzA0NjFDMTE4MzA0NjBDMUY4Cis6MTBFQkEwMDAxODMwNTIwQzExODcwNDYwQzExODMwNDYwQzExODAxMUM2Cis6MTBFQkIwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTAwMDAyMTQwMDgwMDVCCis6MTBFQkMwMDAwMjAwMDA4MDAwMjAwMDA4MDAwMjAwMDA4MDAwMjAwMEY5Cis6MTBFQkQwMDAwODAwMDIwMDAwODAwMDIwMDAwODAwMDIwMDAwODAwMDAxCis6MTBFQkUwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMTQ4NDQyMjAxMTg4NDk5Cis6MTBFQkYwMDA0NjIxMTE5ODAwNjIxMDE4ODQ0NDIwMTE4ODQ0NjIxMTQzCis6MTBFQzAwMDAxODg0NDIyMTExODA0NDYyMTExODg0NDYyMTExODAwMDI5Cis6MTBFQzEwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTQwMDQ1MDExMTQwNEIyCis6MTBFQzIwMDA0NTAwMTE0MTAwNTAxMDE0MDA0NTAxMTE0MDQ0NTAxMTlECis6MTBFQzMwMDAxNDA0NDUwMTAxNDA0NDUwMTExNDA0MDUwMTAxNDAxMTIwCis6MTBFQzQwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMDA4MjA0MjA4MTA4MjMwCis6MTBFQzUwMDAwNDIwMDEwODIwNDIwODEwODIwNDIwODEwODIwNDIwODc0Cis6MTBFQzYwMDAxMDgyMDQyMjgxMDgyMDUyMDgxMDhBMDQyMjgxMDAwMEE4Cis6MTBFQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDBBMDEwMjg0NDBBMTFFCis6MTBFQzgwMDAxMDI4MDAwQTAxMDI4MDQwQTAxMDI4MDQwQTAxMDI4MDE2Cis6MTBFQzkwMDA0MEEwMTAyQzE0MEEwMDAyODA0MEIwMTAyQzE0MDAwMDc4Cis6MTBFQ0EwMDAwMDAwMDAwMDAwMDAwMDAwNDA0NTREMDM1MzQwRDREMDU4Cis6MTBFQ0IwMDAzNTMwMEM0RDAzNTM0MEQ0RDAzNTM0MEQ0RDAzNTM0MDAzCis6MTBFQ0MwMDBENEQwMzUzNDBENEQwMjEzNDBENEQwMzUzNDBENDAxMTFECis6MTBFQ0QwMDA1MDAwMDAwMDAwMDAwMDAwNDAwMTA4MDQ3MjAxMUM4MDg4Cis6MTBFQ0UwMDA0NzIwMTVDODA0NzIwMTFDODA0NzIwMTFDODA0NzIxMTA2Cis6MTBFQ0YwMDAxQzgwNDcyNjExQzg0NDcyMDExQzkwNjcyNjExQzAwMDcxCis6MTBFRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzMDg0MEM2MTIzMThGCis6MTBFRDEwMDA4NDhDMDEwMzA4NDhDNjEyMzA4NDBDNjEyMzE4NDhDMjUxCis6MTBFRDIwMDAxMjMxODQ4QzAxMDMwODQ4QzYxMjMxMDQ4QzAxMDAwMEEyCis6MTBFRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkY0RkZGRDNGRjc1Cis6MTBFRDQwMDBGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRkY5Cis6MTBFRDUwMDBEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEMDAwMEEzCis6MTBFRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTBFRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTBFRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTBFRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJERkIwRkI2QzJDREY3Cis6MTBFREEwMDBCMEI3RkQzRkZCMEIzNkMyREZCMEZCNkMyQ0RCMEI3RTNDCis6MTBFREIwMDBDMkNEQjBCN0ZEM0ZGQjBCMzZDMkNERjRCN0ZEMDAwMEFFCis6MTBFREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzRkM0RkNGMTMzM0IwCis6MTBFREQwMDBDNENGRkQzRkZDNENDRjEzM0ZDNEZDRjEzMzNDNENGRjkwCis6MTBFREUwMDAxMzMzQzRDRkZEM0ZGQzRDQ0YxMzMzRjRDRkZEMDAwMEYxCis6MTBFREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNCN0U0RURGOTNCN0UzCis6MTBFRTAwMDBFNEVERjkzRkZFNEVERjkzQjdFNEVERjkzQjdFNEVDN0VDCis6MTBFRTEwMDA5M0I3RTRFQzYxMjMxRTRFREY5M0I3ODRFQzYxMDAwMEVFCis6MTBFRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzUyNEExNEEyNEVBCis6MTBFRTMwMDA2MzAxMTQwMjQ0MDA4MTBCMjg3MTAyMTA4MjQwMzgxMUQyCis6MTBFRTQwMDA0MTA0NTAwODE4ODI4NzM4MzFDMzJDNTIwQTEwMDAwMDQwCis6MTBFRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NDUxMjgxNDQ4MDBFCis6MTBFRTYwMDA3MTIxMUMwQTA3MUE4MTAyQTA1MjIwMTQ0ODA3MTI4MTNFCis6MTBFRTcwMDBDNjgwNjAyMDA4ODg0NzAyMDE0QTgwNzAyMDEwMDAwMDg4Cis6MTBFRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQzUyQzAxNEEwMDQ0Cis6MTBFRTkwMDA1MjA5MUM4MDA3MjQyMTA4MDg3MTAyMTA4MDQ1MjBBMTE2Cis6MTBFRUEwMDA0OTI4NTIwMTE0QzA0NTAwOTFDNDAwNzIwMjEwMDAwMEFDCis6MTBFRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDcyMDAxQzEwMDY3Cis6MTBFRUMwMDA3MTA5MTA4MDA3MDAwMTAxMDA3MDA4MTg4MDA3MDAwMTE3Cis6MTBFRUQwMDA4OTIwNTIwMTBDODA0NjMwODE0NTA0NjAwMDEwMDAwMEZBCis6MTBFRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzIwMjIwMDA4OEFFCis6MTBFRUYwMDAyMDIyMDAwOEMyMjI4MDQwODgwMjIyMDAwODgyMEFBMDQ0Cis6MTBFRjAwMDAwQ0E4MDIyMjAwMDg4MDBBMDA4MDhDMDIyMjAwMDAwMDY3Cis6MTBFRjEwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAyNDMwMDAwNDAyMDQ0Cis6MTBFRjIwMDAzMDA4MDQ0MDQxMzAxMEM4MDAwMDAwMDAwMjAzMDAxMDA3Cis6MTBFRjMwMDBDMDAwMTEwODAwQzI0MzEwODBDMDIwMDEwODAwMDIwMDc4Cis6MTBFRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4QzMwQTIwQzE4Qzc3Cis6MTBFRjUwMDAxMjIyMDQ4ODAxMzYyMEMzMDgxMjI4MDQwODAxMDQwMDg0Cis6MTBFRjYwMDA0QUE4MjIwMTA0Qzg0MTI2MzBDMDg4MDIyMTAwMDIwMEJDCis6MTBFRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4MDAwQTEwQzE4MDI2Cis6MTBFRjgwMDAzMjIxMEM4ODQzMDI4MDQ0ODAxMjI5MDQwODQyMEE5MEVFCis6MTBFRjkwMDA4QTgwMDAyMDA0NDgwMzBBMTA4MjgwMDAyMDAwMDIwMEJBCis6MTBFRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBODcwMkExODBBQzAxCis6MTBFRkIwMDA0MzI5MTQ4QTg0MDJBMTAwQUM0MTIwMTAwODA2MjYzMTlFCis6MTBFRkMwMDA4MEE0NjAyMDE0NEE0NDMyODE4MUFDNjAyQTE4MDIwMDc3Cis6MTBFRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4MDcyMjAxQzU4MEIyCis6MTBFRkUwMDA3MzIxMUNDODA3MkEwMTBDODA3MjIwMTA0ODQ3MjYxMTgzCis6MTBFRkYwMDBDNTgwNzMyMDFDODgwNzJBMTE0OTgwNzAyMDE0MDIwMEU0Cis6MTBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAwNDUxMDMxQzkwQzlECis6MTBGMDEwMDA3MzAyMUNDMDQ3MDQwMTBBMEM1MTBBMTA4MjQ3MjAzMUI4Cis6MTBGMDIwMDBDODAwNzIwMjFDNDAwNTMwMTFDNDAwNzIwMTE4MDIwMEIxCis6MTBGMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDgxMDEwMDYyNDAxNDUwNDM0Cis6MTBGMDQwMDA1MTgxMTg5MDQ3MTQwMTA0MDQ3MTg4MTAxMjA1MzQwMThECis6MTBGMDUwMDA0NDA0NTE0MDE4RDAwNzM4MDFDNDA0NTIwMTE0QzIwNEJBCis6MTBGMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODcwMDIxODkwQzYzCis6MTBGMDcwMDA2MDAxMUNEMDQ1MjQwMUMxMEM0MjAxMDAwMEM1MjAzMUIzCis6MTBGMDgwMDA0MTA4NDAwMDE4ODA0NTAwMjE0MTBDNzA0MjFDQzIwMDFDCis6MTBGMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDExQzgwQzQyMEVECis6MTBGMEEwMDAzMTA4MTA0MjQyMDg4MEM2MjAzMTA5MDAyMDAzMUM5MDFDCis6MTBGMEIwMDBDNDIwMDE0OTBDNDI0MzEwODA0NDIwMzEwODEwMDAwMDU0Cis6MTBGMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwODMyMDMwNDgwQ0U5Cis6MTBGMEQwMDAzMjQwMTA5MDgxMjQyMEM4MDQzMjQwMTAyMEMzMjA4MDg4Cis6MTBGMEUwMDBDODAwMDI0QTBDQTAwMTI0MTBDODA4MzI0MTEwMDAwMEQ4Cis6MTBGMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDkwMDMwMDAwQzkwNEEwCis6MTBGMTAwMDAzMDQwMDA5MDAwMjAwMDgwMDAxMDQwMTAwMDQwMjAxMDhGCis6MTBGMTEwMDBDMjAwMDA4MDA4MjA0MzA4MTA4MTAwMzI0MDBDQzAwNDY3Cis6MTBGMTIwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDMwMDA0MDAwMDAwMDRGCis6MTBGMTMwMDAxMDAwMDBGMDEwMjAwMDAwMDAxMDAwMDBGMDEwODA0MENGCis6MTBGMTQwMDAwMDAwMDA0MDAwRjAxMDkwODAwMDAwMDAwMDAwQzAwMEFGCis6MTBGMTUwMDAwMDAwMDAwMDAwMDAwMDAwM0MzQzEwODA5MDQwMDAwMEQ3Cis6MTBGMTYwMDAwMDgwMTA5MEEwOTAwMDAwMDAwMDAwMTA5MDgwODAwMEFGCis6MTBGMTcwMDAwMDAwMDAwMDEwOTA4MDkwMDAwMDAwMDA0MDEwOEYwRkYxCis6MTBGMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0QzZCQTA2QzAxQ0Y5Cis6MTBGMTkwMDA0OTI4NjExNDJCMUMwRTQwM0ZEOUJGRDlBQUJDMUE1RjY1Cis6MTBGMUEwMDAwMDEwQTY1MDNCNjFCMzI1QkM0MDE5QkZGRkU5ODAwMEE5Cis6MTBGMUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwOTIxNDk0ODAwQzc5Cis6MTBGMUMwMDAwNzNGMkI5NDg2MTQ4NDgwMjgwMDAwNDkxNDA0ODYxMjdCCis6MTBGMUQwMDA4MDAwNDEyNzM0RDA5MDg0OTIwMDJEOEEyMTFFODAwMDI3Cis6MTBGMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhBMjc1Cis6MTBGMUYwMDBCMTAxMDEwMDAwMDAwMDA4ODRCMTc4MjgwMDAwMDAwMDdGCis6MTBGMjAwMDAwOEIxMzIxNDE0MDAwMDAwMDAwOEE4MjM1NDIxNDAwMDYzCis6MTBGMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMEYyCis6MTBGMjIwMDAwMDAwMDAyRkZGRkVGN0MwMDAwMDAwMDAyRkQ3RkVFRjA4Cis6MTBGMjMwMDBDMDAwMDAwMDAwM0ZGRjdGRkZDMDAwMDAwMDAwMDAwMDkyCis6MTBGMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMEMyCis6MTBGMjUwMDAwMDAwMDAwRkVGNzdGRkMwMDAwMDAwMDAzRUZGRkVFRjUwCis6MTBGMjYwMDA0MDAwMDAwMDAwM0ZGRkJGRkY0MDAwMDAwMDAwMDAwMDIyCis6MTBGMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDkyCis6MTBGMjgwMDAwMDAwMDAzRkZGREZGRkMwMDAwMDAwMDAzRkZGRkZGRjY2Cis6MTBGMjkwMDBDMDAwMDAwMDAwM0Y3RjJGRkZDMDAwMDAwMDAwMDAwMDAyCis6MTBGMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDYyCis6MTBGMkIwMDAwMDAwMDAxRkZGRkZFRkMwMDAwMDAwMDAxRkVGRUZFRjk2Cis6MTBGMkMwMDBDMDAwMDAwMDAwMkZGRkZGRkZDMDAwMDAwMDAwMDAwMDkyCis6MTBGMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDMyCis6MTBGMkUwMDAwMDAwMDAzRkZGRUZGRkMwMDAwMDAwMDAyRkFGREZGRjc2Cis6MTBGMkYwMDBDMDAwMDAwMDAwM0ZFRkZGRjdDMDAwMDAwMDAwMDAwMDZBCis6MTBGMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDAxCis6MTBGMzEwMDAwMDAwMDAzRkRGREZGRkMwMDAwMDAwMDAzRkZGRkZGRkY1Cis6MTBGMzIwMDBDMDAwMDAwMDAwMUZGRkRGRkZDMDAwMDAwMDAwMDAwMDYxCis6MTBGMzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQzQyNEExMDAyQzE2Cis6MTBGMzQwMDA1MjBCMThDMjg2MkNBMTgwMzg2MjBBMDg0MEM0MkNBMTM2Cis6MTBGMzUwMDAwODI4NDIwQjE0MDA4NTE0QTEwODI4NDMwQTEwMDAwMDU1Cis6MTBGMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDQxMjAxMDM4MEZCCis6MTBGMzcwMDA2MTIwMTAwODA3MTI0MTQyODA3MDIwMUMwODA0MUEwMTA1Cis6MTBGMzgwMDA4NDgxNDAyMDE4MDg0NjM2ODEwNTgwNjMyMDEwMDAwMUUyCis6MTBGMzkwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwODQyNDIxMDAwQzE4Cis6MTBGM0EwMDA1MjAyMTQwMDg3MjgyMTgxMDg3MjA2MUM4Mjg0MjAyMUMxCis6MTBGM0IwMDA0ODE4NDIwMzU0ODA0NTMwMjU0QTE4NTMwMjEwMDAwMTcyCis6MTBGM0MwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDQyMjAxMDE4MDZECis6MTBGM0QwMDA0MjIwMThDODQ0MjIwMTgwODQ0MjIwMUM4ODA0MjIwMTUzCis6MTBGM0UwMDAwMDgwNDAyMDEwODg0NDM2MDE0MDgwNDEwMDEwMDAwMDE5Cis6MTBGM0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAwODIwMDAwQzE5Cis6MTBGNDAwMDAyMjAzMDQ0MDgxMDAyMDg0MDgwMzAwMDA4MEMyMDAyMDAxCis6MTBGNDEwMDBDNDA4MDAwMzA4ODg4MjE2QTA0MDg4MzIyMjgwMDAwMEI5Cis6MTBGNDIwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAyMDEwMDgwMDQyMDJECis6MTBGNDMwMDAxMDA4MENDMjEyMTA4NEM4MjIxMjA4MDQwMjAzMDA4OEFCCis6MTBGNDQwMDAwMDIxMDAwQzBDNDA0MTMwMDA4NDIwMTAwODAwMDIwMDE0Cis6MTBGNDUwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4ODIwNjIwMDg4QzYwCis6MTBGNDYwMDAzMjIyMEM4ODgxMjYyMDREODgyMzIyODA4ODgzMDYyMDIyCis6MTBGNDcwMDAwODg4MDAyMzA0OEE4MTM2MjA0Qjg4MzIyMjAwMDAwMDRECis6MTBGNDgwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4MDIwMjAwMDk4MERGCis6MTBGNDkwMDAzMjIwMDQ4ODYwMjIwMDg5ODQwMDIwMDg5ODAwMDIwMDNECis6MTBGNEEwMDAwMDgwMDAyMDAwMDgwMjNBODA0ODgwMzAyMDAwMDIwMERFCis6MTBGNEIwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDBBQzQxQUExODBBODkzCis6MTBGNEMwMDA0MTJBMTBDQUM3MUFBMTA0QUQ3MTJBMTg0QUQ0MDZCMTNDCis6MTBGNEQwMDAwMEE4NzEyQTEwMDg4NDI2MjkwNkFDNTIyQTEwMDIwMEJFCis6MTBGNEUwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDA4MDQyQTAxNDE4MDFDCis6MTBGNEYwMDA0MjIwMUMwMDA0MEEwMTA5ODQ1MTIwMUM4ODQ0MDIwMTk2Cis6MTBGNTAwMDAwODgwNDAyMDEwNEE0NzAyMDE0ODgwNjMyMDEwMDIwMDEyCis6MTBGNTEwMDA4MDAwMDAwMDAwMDAwMDAwMDgwMDAwQzQxMDIxODEwQ0UxCis6MTBGNTIwMDA0MTAyMEMwMEMwMjA2MTBEMEU3MjAyMUM0MEM0MDgzMTYzCis6MTBGNTMwMDAwNDE4NDIwMjEwODA4NzIwQjFDNDBDNTMwMjEwMDAwMDRFCis6MTBGNTQwMDAwMDAwMDAwMDAwMDAwMDAwMDgxMDIwMDcyNDAxQ0MwMDhCCis6MTBGNTUwMDA3MjQwMTQwMDA0MjQwMTA4MDA3MzQxMTBDMDA3MzAxMUU4Cis6MTBGNTYwMDBDQzAwNzEwMTEwMDIwNDIwODE0NjEwNDI0MDEwMDIwNEI4Cis6MTBGNTcwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAwQzUxMDIxMDAwODg1Cis6MTBGNTgwMDA2MjAyMUM5MEM1MjQyMTAwMEM3MDgyMUMxMEM0MjAzMTIyCis6MTBGNTkwMDA4ODAyNDAwNjFDMDA4NTAwQTEwMDBDNDA0MjAwMDIwMEM5Cis6MTBGNUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyMDUxNDgwMDEyMDdGCis6MTBGNUIwMDAzMDA4MEM0MjA2MDA4MDAxMjQ1MTA4MEMwMjQxMDA4MEYyCis6MTBGNUMwMDA0QzIwMDAwODBDMzA0MjA0MDAwNDIwMDAwODAwMDAwMDE5Cis6MTBGNUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwQzYyNDIwMDAwQzA1Cis6MTBGNUUwMDAzMkMyMDQ4MEM3MzAyMDAwMEM1M0MyMDQxMEMyMjg3MEZECis6MTBGNUYwMDAwQzA5MDIwMjRDODA4MTA0MzAwOTBDMDI0MjEwMDAwMDA4Cis6MTBGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDgwMDEzODAwMDIwMDJGCis6MTBGNjEwMDAxMjQwMEMyMDA3MzQwNDAyMDA2MzAxMDgxMDAwMjQxMDdCCis6MTBGNjIwMDAwNDAwMDIwMTA0ODIwMTA4ODAwOTEwMDI0MDEwMDAwNDU1Cis6MTBGNjMwMDAzMDAwMDAwMDAwMDAwMDAwMDAwMDMwMjAxMDgwMDAwMEJBCis6MTBGNjQwMDAyMDgwMDBGMDIwMTA4MDAwMDAyMDgwMDBEMDgwMDAwMDhBCis6MTBGNjUwMDA0MDAwMDAwMDAwMzAxMDAwODAwMDAwMDAwMDAwQ0M0MDlFCis6MTBGNjYwMDAwMDAwMDAwMDAwMDAwMDAwM0MzQzEwODA4MDAwMDAwMDEyCis6MTBGNjcwMDAwMDAwMTA5MDgwODAwMDAwMDAwMDAwMTA5MDgwMDA5MDNBCis6MTBGNjgwMDA4MDAwMTAwMDAwMTBBMDgwMDAwMDAwMjAwMDEwOEMwOEY2Cis6MTBGNjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0MUFCRTE3ODAwMEM3Cis6MTBGNkEwMDAzRTQwMjY2RkJBRTMyNDgwMDAxNjU5QkQ4MjgxODJEODdECis6MTBGNkIwMDA4MDAwMDAxOTk5ODY4MDY0ODBDMDNGRDk5OTgwMDAwMTNDCis6MTBGNkMwMDBGMDAwMDAwMDAwMDAwMDAwMDAwMDA2MTYwMjk0MDAxNjgyCis6MTBGNkQwMDBDMDE2OTQ4MjkwMTYxMDgwMjExODI4MjgwMjBBMDIwODY5Cis6MTBGNkUwMDA4MDAwMDAwMDAwMDI4MjgwMTQwMDAxMTQxMUEwNDAwMDdDCis6MTBGNkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg4NDdFCis6MTBGNzAwMDAwMjg0QTg4MDAwMDAwMDA4OTEyMjg0NDFBMjA4MjQwMUZDCis6MTBGNzEwMDAzMDAwMDAwMDAwMDAwMDAwMDAwODg0MDE0NDAxMDAwMEU3Cis6MTBGNzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMERECis6MTBGNzMwMDAwMDAwMDAzRUY3RkZGN0MwMDAwMDAwMDAyRkU3QjdGRjEyCis6MTBGNzQwMDBDMDAwMDAwMDAwMkZGRTdGRjdDMDAwMDAwMDAwMDAwMDk2Cis6MTBGNzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMEFECis6MTBGNzYwMDAwMDAwMDAzNkJGRkVERkMwMDAwMDAwMDAwRkY3REZGRjIzCis6MTBGNzcwMDBDMDAwMDAwMDAwM0RCN0I3RUZDMDAwMDAwMDAwMDAwMDZGCis6MTBGNzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDdECis6MTBGNzkwMDAwMDAwMDAxRkRGREZGRkMwMDAwMDAwMDAwRkRGREZGRjAxCis6MTBGN0EwMDBDMDAwMDAwMDAwM0ZFRkZGRkZDMDAwMDAwMDAwMDAwMEFECis6MTBGN0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDRECis6MTBGN0MwMDAwMDAwMDAzRkJGN0ZGRkMwMDAwMDAwMDAzRkZGN0ZGNzQ5Cis6MTBGN0QwMDBDMDAwMDAwMDAwM0ZERkZGRkZDMDAwMDAwMDAwMDAwMDhECis6MTBGN0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMDFECis6MTBGN0YwMDAwMDAwMDAzRjdFRkZGRjQwMDAwMDAwMDAzRkZFRkZGRkQzCis6MTBGODAwMDBDMDAwMDAwMDAwM0ZGRkZGRkZDMDAwMDAwMDAwMDAwMDNDCis6MTBGODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGRkZGRkZGQzAwMEVDCis6MTBGODIwMDAwMDAwMDAzN0ZGNkZGRkMwMDAwMDAwMDAzRkZGRkZGRjM4Cis6MTBGODMwMDBDMDAwMDAwMDAwM0ZGRkZGRkZDMDAwMDAwMDAwMDAwMDBDCis6MTBGODQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI4Cis6MTBGODUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE4Cis6MTBGODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk4Cis6MTBGODcwMDAwMDAwMDAwMDAwMDAwMDAwMzAwMDIwMDEwMjAwMDAwMDM1Cis6MTBGODgwMDAzMDAwNDMwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY5Cis6MTBGODkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY4Cis6MTBGOEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU4Cis6MTBGOEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ4Cis6MTBGOEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM4Cis6MTBGOEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4Cis6MTBGOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4Cis6MTBGOEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMDAwMDAwMDAzMEU4Cis6MTBGOTAwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM3Cis6MTBGOTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU3Cis6MTBGOTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3Cis6MTBGOTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM3Cis6MTBGOTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI3Cis6MTBGOTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAwMEM3Cis6MTBGOTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk3Cis6MTBGOTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg3Cis6MTBGOTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc3Cis6MTBGOTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY3Cis6MTBGOUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU3Cis6MTBGOUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMzBDMDMwQzAzMDQ3Cis6MTBGOUMwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc3Cis6MTBGOUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3Cis6MTBGOUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE3Cis6MTBGOUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3Cis6MTBGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY2Cis6MTBGQTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMDAwMDAwMDAwRkM4Cis6MTBGQTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2Cis6MTBGQTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM2Cis6MTBGQTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI2Cis6MTBGQTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE2Cis6MTBGQTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk2Cis6MTBGQTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwMDAwMDAwMDAzRjQ4Cis6MTBGQTgwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI2Cis6MTBGQTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY2Cis6MTBGQUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2Cis6MTBGQUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ2Cis6MTBGQUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM2Cis6MTBGQUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMzBDMDMwQzAwRjI4Cis6MTBGQUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2Cis6MTBGQUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2Cis6MTBGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTBGQjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTBGQjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ1Cis6MTBGQjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMzZCMDBDMDAwQ0YyQzhDCis6MTBGQjQwMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTBGQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE1Cis6MTBGQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTBGQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTBGQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTBGQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwMDQ3Cis6MTBGQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTBGQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTBGQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTBGQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTBGQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTBGQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMEYwMDBGMDAzMEM3Cis6MTBGQzAwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTBGQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTBGQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTBGQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTBGQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTBGQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDNGQzAwMEE2Cis6MTBGQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTBGQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTBGQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTBGQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTBGQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTBGQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwM0ZDMDNGQzAzMDI2Cis6MTBGQ0MwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTBGQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTBGQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTBGQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTBGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTBGRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMEYwMDBGMDAwRkE3Cis6MTBGRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTBGRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTBGRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTBGRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTBGRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTBGRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwMEYwMDBGMDAzRjI3Cis6MTBGRDgwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTBGRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTBGREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTBGREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTBGREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTBGREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwM0ZDMDNGQzAwRjA3Cis6MTBGREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTBGREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTBGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYyCis6MTBGRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUyCis6MTBGRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTBGRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDYzMzVEODBDMDAwRkRBQzQzCis6MTBGRTQwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTBGRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTBGRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTBGRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTBGRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTBGRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTBGRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTBGRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTBGRUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MTBGRUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6MTBGRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyCis6MTBGRUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMDAwMDAwMDAzMEUyCis6MTBGRjAwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTBGRjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTBGRjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQxCis6MTBGRjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxCis6MTBGRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIxCis6MTBGRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAwMEMxCis6MTBGRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTBGRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTBGRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTBGRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTBGRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTBGRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMzBDMDMwQzAzMDQxCis6MTBGRkMwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTBGRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTBGRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTBGRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTA4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTA4MDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMDAwMDAwMDAwRjMyCis6MTA4MDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTA4MDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTA4MDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTA4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTA4MDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTA4MDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwMDAwMDAwMDAzRkIyCis6MTA4MDkwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTA4MEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTA4MEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTA4MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTA4MEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTA4MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMzBDMDMwQzAwRjkyCis6MTA4MEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTA4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTA4MTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTA4MTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTA4MTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTA4MTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMzc0QzBDMDAwRjBFQzRDCis6MTA4MTUwMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTA4MTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTA4MTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTA4MTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTA4MTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTA4MUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwMEIxCis6MTA4MUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJGCis6MTA4MUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFGCis6MTA4MUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlGCis6MTA4MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhGCis6MTA4MUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdGCis6MTA4MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMEYwMDBGMDAzMDMwCis6MTA4MjEwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTA4MjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTA4MjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTA4MjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTA4MjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTA4MjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDNGQzAwMDEwCis6MTA4MjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTA4MjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTA4MjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTA4MkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTA4MkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTA4MkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOTg2MTA4MDMwODIzRDkwCis6MTA4MkQwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTA4MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTA4MkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTA4MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MTA4MzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECis6MTA4MzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMEYwMDBGMDAwRjExCis6MTA4MzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECis6MTA4MzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECis6MTA4MzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTA4MzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECis6MTA4MzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECis6MTA4MzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwMEYwMDBGMDAzRjkxCis6MTA4MzkwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTA4M0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTA4M0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTA4M0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTA4M0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTA4M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwM0ZDMDNGQzAwRjcxCis6MTA4M0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTA4NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCis6MTA4NDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCis6MTA4NDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCis6MTA4NDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCis6MTA4NDQwMDAwMDAwMDAwMDAwMDAwMDAwMzc2NTI1RTQ4MDAwQjA4OENGCis6MTA4NDUwMDBBQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTA4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCis6MTA4NDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCis6MTA4NDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCis6MTA4NDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERDCis6MTA4NEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENDCis6MTA4NEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCis6MTA4NEMwMDAwMDAwMDAwMDMwMDAyMDAxMDIwMjAwMDAzMDAwNDMwMEU0Cis6MTA4NEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCis6MTA4NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCis6MTA4NEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCis6MTA4NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZCCis6MTA4NTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVCCis6MTA4NTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRCCis6MTA4NTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNCCis6MTA4NTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJCCis6MTA4NTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFCCis6MTA4NTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCCis6MTA4NTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZCCis6MTA4NTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVCCis6MTA4NTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERCCis6MTA4NUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENCCis6MTA4NUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJCCis6MTA4NUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFCCis6MTA4NUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlCCis6MTA4NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhCCis6MTA4NUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdCCis6MTA4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZBCis6MTA4NjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVBCis6MTA4NjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRBCis6MTA4NjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNBCis6MTA4NjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJBCis6MTA4NjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFBCis6MTA4NjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBCis6MTA4NjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZBCis6MTA4NjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVBCis6MTA4NjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERBCis6MTA4NkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENBCis6MTA4NkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJBCis6MTA4NkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFBCis6MTA4NkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlBCis6MTA4NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhBCis6MTA4NkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdBCis6MTA4NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY5Cis6MTA4NzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU5Cis6MTA4NzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5Cis6MTA4NzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM5Cis6MTA4NzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI5Cis6MTA4NzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE5Cis6MTA4NzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5Cis6MTA4NzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY5Cis6MTA4NzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU5Cis6MTA4NzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ5Cis6MTA4N0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM5Cis6MTA4N0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI5Cis6MTA4N0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE5Cis6MTA4N0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk5Cis6MTA4N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg5Cis6MTA4N0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc5Cis6MTA4ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY4Cis6MTA4ODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU4Cis6MTA4ODIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ4Cis6MTA4ODMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM4Cis6MTA4ODQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4Cis6MTA4ODUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4Cis6MTA4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4Cis6MTA4ODcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY4Cis6MTA4ODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU4Cis6MTA4ODkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ4Cis6MTA4OEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM4Cis6MTA4OEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI4Cis6MTA4OEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE4Cis6MTA4OEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk4Cis6MTA4OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg4Cis6MTA4OEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc4Cis6MTA4OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY3Cis6MTA4OTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU3Cis6MTA4OTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ3Cis6MTA4OTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM3Cis6MTA4OTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3Cis6MTA4OTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE3Cis6MTA4OTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3Cis6MTA4OTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY3Cis6MTA4OTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU3Cis6MTA4OTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3Cis6MTA4OUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM3Cis6MTA4OUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI3Cis6MTA4OUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE3Cis6MTA4OUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk3Cis6MTA4OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg3Cis6MTA4OUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc3Cis6MTA4QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY2Cis6MTA4QTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2Cis6MTA4QTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ2Cis6MTA4QTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM2Cis6MTA4QTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI2Cis6MTA4QTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2Cis6MTA4QTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2Cis6MTA4QTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY2Cis6MTA4QTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU2Cis6MTA4QTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2Cis6MTA4QUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM2Cis6MTA4QUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI2Cis6MTA4QUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE2Cis6MTA4QUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk2Cis6MTA4QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2Cis6MTA4QUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc2Cis6MTA4QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6MTA4QjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTA4QjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTA4QjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTA4QjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTA4QjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTA4QjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Cis6MTA4QjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTA4QjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTA4QjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ1Cis6MTA4QkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1Cis6MTA4QkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI1Cis6MTA4QkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE1Cis6MTA4QkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTA4QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTA4QkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTA4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTA4QzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTA4QzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Cis6MTA4QzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTA4QzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTA4QzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTA4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTA4QzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTA4QzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTA4QzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTA4Q0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTA4Q0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTA4Q0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6MTA4Q0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTA4Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTA4Q0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTA4RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTA4RDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTA4RDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTA4RDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTA4RDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MTA4RDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTA4RDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTA4RDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTA4RDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6MTA4RDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTA4REEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTA4REIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTA4REMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTA4REQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTA4REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTA4REYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCis6MTA4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTA4RTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTA4RTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTA4RTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MTA4RTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6MTA4RTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyCis6MTA4RTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyCis6MTA4RTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYyCis6MTA4RTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUyCis6MTA4RTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTA4RUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCis6MTA4RUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCis6MTA4RUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTA4RUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTA4RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTA4RUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTA4RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTA4RjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTA4RjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCis6MTA4RjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTA4RjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTA4RjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTA4RjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTA4RjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCis6MTA4RjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTA4RjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQxCis6MTA4RkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxCis6MTA4RkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIxCis6MTA4RkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEExCis6MTA4RkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTA4RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTA4RkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTA5MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCis6MTA5MDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTA5MDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTA5MDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTA5MDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTA5MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTA5MDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwCis6MTA5MDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTA5MDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTA5MEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTA5MEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTA5MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTA5MEQwMDAzMDAwMDAwMTAwMDA0NDcyMzAwMDgwMDEwMDAwMDAwM0Y1Cis6MTA5MEUwMDAzMDAwNDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTA5MEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCis6MTA5MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTA5MTEwMDAwMDAwMDAwMDMwMDA4MDAxMDAwMDAwMDUzMDAwQTAwMUM4Cis6MTA5MTIwMDAwMDAwMDAwMDMwMDAwMDAxMDAwMEUxNUEwMDAwMDAwMEQzCis6MEM5MTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjAwMDAwMDAxRkYKKy8vIFZFUlNJT049IDEuMC4wLjE5MQorLy8gREFURT0gMjAwMm9jdDI4CmRpZmYgLS1naXQgYS9maXJtd2FyZS9lbWk2Mi9sb2FkZXIuSEVYIGIvZmlybXdhcmUvZW1pNjIvbG9hZGVyLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWRiMmRjCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZW1pNjIvbG9hZGVyLkhFWApAQCAtMCwwICsxLDEwNyBAQAorOjAzMDAwMDAwMDIwMjg3NzIKKzowMzAwNDMwMDAyMDQwMEI0Cis6MTAwMTAwMDBFNEZGRkVDMjIwRDJFODQzRDgyMDkwN0ZBQjc0RkZGMDFBCis6MTAwMTEwMDA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3Rjk1NzRDMEUzCis6MTAwMTIwMDBGMDkwN0Y5RUYwOTA3Rjk4RjBFNDkwN0Y5NEYwOTA3RjI1Cis6MTAwMTMwMDA5RDc0RkZGMDkwN0Y5Nzc0QTBGMDkwN0Y5M0UwNTRGQzQzCis6MTAwMTQwMDBGMDkwN0Y5Qzc0MDNGMEU0OTA3Rjk2RjA5MDdGQUZFMDk2Cis6MTAwMTUwMDA0NDAxRjA5MDdGQUVFMDQ0MERGMEQyQUYwRkJGMDAwMTNDCis6MTAwMTYwMDAwRUJFMDdGOEJGMDhGNTIwMjA0Mjc1MTQwMDc1MTMwMDc1Cis6MTAwMTcwMDA3NTEyMDA3NTExMDA3RjQ4N0U5MjdEMDA3QzAwQUIxNEUzCis6MTAwMTgwMDBBQTEzQTkxMkE4MTFDMzEyMDNFRDUwREIyMDIwRDg3QUJDCis6MTAwMTkwMDAwMDc5MDA3ODAwRTUxNDI0MDFGNTE0RUEzNTEzRjUxMzBECis6MTAwMUEwMDBFOTM1MTJGNTEyRTgzNTExRjUxMTgwQ0EzMDIwRkQxMjNCCis6MTAwMUIwMDAwMUM3NTAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDYxCis6MDYwMUMwMDAwMkYwQzIyMDgwRTZGRgorOjAxMDFDNjAwMjIxNgorOjEwMDFDNzAwOTA3RkU5RTAyNDVCNjA2MDI0MDI2MDAzMDIwMjg1OTA2RgorOjEwMDFENzAwN0ZFQUUwNzUwQTAwRjUwQkEzRTBGRUU0RUU0MjBBOTAyMQorOjEwMDFFNzAwN0ZFRUUwNzUxNTAwRjUxNkEzRTBGRUU0RUU0MjE1RTU5NworOjEwMDFGNzAwMTY0NTE1NzAwMzAyMDI4NUU0OTA3RkM1RjA5MDdGQjQyMQorOjEwMDIwNzAwRTAyMEUzRjk5MDdGQzVFMEY1MEMxMjAzMTNBRjBDN0VGNQorOjEwMDIxNzAwMDBFRjI1MEJGNTBCRUUzNTBBRjUwQUMzRTUxNjlGRjUzQQorOjEwMDIyNzAwMTZFNTE1OUVGNTE1ODBDNzkwN0ZFQUUwNzUwQTAwRjU3QgorOjEwMDIzNzAwMEJBM0UwRkVFNEVFNDIwQTkwN0ZFRUUwNzUxNTAwRjVCMQorOjEwMDI0NzAwMTZBM0UwRkVFNEVFNDIxNUU1MTY0NTE1NjAzMEU0OTA4RQorOjEwMDI1NzAwN0ZDNUYwOTA3RkI0RTAyMEUzRjk5MDdGQzVFMEY1MEMwRgorOjEwMDI2NzAwMTIwMzJCQUYwQzdFMDBFRjI1MEJGNTBCRUUzNTBBRjVDRAorOjBGMDI3NzAwMEFDM0U1MTY5RkY1MTZFNTE1OUVGNTE1ODBDQUMzNTcKKzowMTAyODYwMDIyNTUKKzowQzAyODcwMDc4N0ZFNEY2RDhGRDc1ODEyOTAyMDJDRUQ0Cis6MTAwMjkzMDAwMjAxMDBFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjgwCis6MTAwMkEzMDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzMzZDCis6MTAwMkIzMDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjNCCis6MTAwMkMzMDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwNDZFRTQ3RTU5Cis6MTAwMkQzMDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzMwCis6MTAwMkUzMDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0Y3Cis6MTAwMkYzMDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTIyCis6MTAwMzAzMDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUQ5Cis6MTAwMzEzMDBFNTBDRkZFNTBCRjU4MkU1MEFGNTgzNzU5MjdFNzRDMDYzCis6MDgwMzIzMDBGOEUyMDhGMEEzREZGQTIyNjIKKzoxMDAzMkIwMDkwN0Y5Njg1ODM5MkE4ODI3OTAyOTAwMDAwRTBCNDAwQkEKKzoxMDAzM0IwMDBENzQwMUYwOTA3Rjk3RTA1NDdGRjA0NDgwRjBFNTBDNTIKKzoxMDAzNEIwMEZGOTA3RUMwRTBGNTI4RTRBMjQ3MzNGMjY5RjJFNEEyMDUKKzoxMDAzNUIwMDQ2MzNGMjY5RjJFNEEyNDUzM0YyNjlGMkU0QTI0NDMzODQKKzoxMDAzNkIwMEYyNjlGMkU0QTI0MzMzRjI2OUYyRTRBMjQyMzNGMjY5OTYKKzoxMDAzN0IwMEYyRTRBMjQxMzNGMjY5RjJFNEEyNDAzM0YyNjlGMkEzNTAKKzowMzAzOEIwMERGQzIyMkFDCis6MTAwMzhFMDBDMEUwQzA4M0MwODI5MDdGQzRFNEYwNTM5MUVGOTA3RkIxCis6MEIwMzlFMDBBQjc0MDRGMEQwODJEMDgzRDBFMDMyQkEKKzoxMDAzQTkwMEMwRTBDMDgzQzA4MkQyMjA1MzkxRUY5MDdGQUI3NDAxMkIKKzowODAzQjkwMEYwRDA4MkQwODNEMEUwMzJDNQorOjEwMDNDMTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwMkYwRDA0NAorOjA2MDNEMTAwODJEMDgzRDBFMDMyNkYKKzoxMDAzRDcwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMEQwMjAKKzowNjAzRTcwMDgyRDA4M0QwRTAzMjU5Cis6MTAwM0VEMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMDY2Cis6MDEwM0ZEMDAyMkRECis6MDEwM0ZFMDAzMkNDCis6MDEwM0ZGMDAzMkNCCis6MTAwNDAwMDAwMjAzQTkwMDAyMDNDMTAwMDIwMzhFMDAwMjA0NTgwMDg3Cis6MTAwNDEwMDAwMjAzRDcwMDAyMDNGRTAwMDIwM0ZGMDAwMjA0ODQwMDZGCis6MTAwNDIwMDAwMjA0ODUwMDAyMDQ4NjAwMDIwNDg3MDAwMjA0ODgwMDlBCis6MTAwNDMwMDAwMjA0ODkwMDAyMDQ4QTAwMDIwNDhCMDAwMjA0OEMwMDdBCis6MTAwNDQwMDAwMjA0OEQwMDAyMDQ4RTAwMDIwNDhGMDAwMjA0OTAwMDVBCis6MDgwNDUwMDAwMjA0OTEwMDAyMDQ5MjAwNzUKKzoxMDA0NTgwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDhGMEQwQTYKKzowNjA0NjgwMDgyRDA4M0QwRTAzMkQ3Cis6MTAwNDZFMDAwMjBBMDAwRjAxMEMxMTA0MEQwMDAwMDAwMDQxMDAwMEYzCis6MDEwNDdFMDAwMDdECis6MDQwNDdGMDAwMjE3MDAwMDYwCis6MDEwNDgzMDAwMDc4Cis6MDEwNDg0MDAzMjQ1Cis6MDEwNDg1MDAzMjQ0Cis6MDEwNDg2MDAzMjQzCis6MDEwNDg3MDAzMjQyCis6MDEwNDg4MDAzMjQxCis6MDEwNDg5MDAzMjQwCis6MDEwNDhBMDAzMjNGCis6MDEwNDhCMDAzMjNFCis6MDEwNDhDMDAzMjNECis6MDEwNDhEMDAzMjNDCis6MDEwNDhFMDAzMjNCCis6MDEwNDhGMDAzMjNBCis6MDEwNDkwMDAzMjM5Cis6MDEwNDkxMDAzMjM4Cis6MDEwNDkyMDAzMjM3Cis6MTAxMTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODAxMDEwMDAxMDEwMjAzCis6MTAxMTEwMDAwMDAxMDkwMjIwMDAwMTAxMDNBMDAwMDkwNDAwMDAwMkVGCis6MTAxMTIwMDBGRjAwMDAwNDA3MDU4MjAyNDAwMDAwMDcwNTAyMDI0MDlDCis6MTAxMTMwMDAwMDAwMDQwMzA5MDQyNjAzNDEwMDZFMDA2MzAwNjgwMEY4Cis6MTAxMTQwMDA2RjAwNzIwMDIwMDA0MzAwNjgwMDY5MDA3MDAwNzMwMEE3Cis6MTAxMTUwMDAyQzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAyODAzNDYwMDhBCis6MTAxMTYwMDA2OTAwNzIwMDZEMDA3NzAwNjEwMDcyMDA2NTAwMjAwMDY4Cis6MTAxMTcwMDA0NjAwNzIwMDYxMDA2RDAwNjUwMDU3MDA2RjAwNzIwMDRDCis6MTAxMTgwMDA2QjAwNzMwMDJBMDM0MzAwNkYwMDZFMDA2NjAwNjkwMDY1Cis6MTAxMTkwMDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDA2RjAwNkUwMEU2Cis6MTAxMUEwMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjIwMzgzCis6MTAxMUIwMDA0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA2MTAwNjMwMDAzCis6MTAxMUMwMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIzCis6MDIxMUQwMDAwMDAwMUQKKzowMDAwMDAwMUZGCisvKgorU291cmNlOiBFTUlMT0FELkhFWAorVkVSU0lPTj0xLjAuMi4wMDIKK0RBVEU9MTAuMDEuMjAwMgorRU1JMjZfNjIKKyovCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lbWk2Mi9taWRpLkhFWCBiL2Zpcm13YXJlL2VtaTYyL21pZGkuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyYTBkNjUKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lbWk2Mi9taWRpLkhFWApAQCAtMCwwICsxLDEyNjYgQEAKKzowMzAwMDAwMDAyNDZCOUZDCis6MDMwMDAzMDAwMjBGRkRFQworOjAzMDAwQjAwMDI0RTBGOTMKKzowMzAwMTMwMDAyMTdGREQ0Cis6MDMwMDFCMDAwMjRFMTI4MAorOjAzMDAyMzAwMDI0REVGOUMKKzowMzAwMkIwMDAyNDgwMDg4Cis6MDMwMDMzMDAwMjRERTY5NQorOjAzMDAzQjAwMDI0REY2N0QKKzowMzAwNDMwMDAyNDkwMDZGCis6MDMwMDRCMDAwMjRFMDM1RgorOjAzMDA1MzAwMDI0OEZBNjYKKzowMzAwNUIwMDAyNERGRDU2Cis6MDMwMDYzMDAwMjRFMDc0MworOjEwMDUwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgxMTAxMDAwMTAxMDJGRgorOjEwMDUxMDAwMDAwMTA5MDIwODAyMDUwMTAwODAzMjA5MDQwMDAwMDAwMAorOjEwMDUyMDAwMDEwMTAwMDAwQTI0MDEwMDAxNTYwMDAyMDEwMjBDMjQwRQorOjEwMDUzMDAwMDIwMTAxMDEwMDAyMDAwMDAwMDAwRDI0MDYwNTAxMDI3NQorOjEwMDU0MDAwMDMwMDAwMDAwMDAwMDAwOTI0MDMwMjA0MDMwMDA1MDA2QQorOjEwMDU1MDAwMEMyNDAyMDMwNTAyMDAwNjAwMDAwMDAwMTUyNDA2MDYxNAorOjEwMDU2MDAwMDMwMjAwMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDAzMDA3NAorOjEwMDU3MDAwMDAwOTI0MDMwNDAxMDEwMDA2MDAwOTA0MDEwMDAwMDEzMAorOjEwMDU4MDAwMDIwMDAwMDkwNDAxMDEwMjAxMDIwMDAwMDcyNDAxMDEyOAorOjEwMDU5MDAwMDAwMTAwMTEyNDAyMDEwMjAyMTAwMzQ0QUMwMDgwQkJFMAorOjEwMDVBMDAwMDAwMDc3MDEwOTA1MEEwNTg0MDEwMTAwOEYwNzI1MDE3NAorOjEwMDVCMDAwMDEwMDAwMDAwOTA1OEYwMTAzMDAwMTA1MDAwOTA0MDE4NQorOjEwMDVDMDAwMDIwMjAxMDIwMDAwMDcyNDAxMDEwMDAxMDAxMTI0MDJCRgorOjEwMDVEMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU0OQorOjEwMDVFMDAwMEEwNTQ2MDIwMTAwOEYwNzI1MDEwMTAwMDAwMDA5MDVFOAorOjEwMDVGMDAwOEYwMTAzMDAwMTA1MDAwOTA0MDIwMDAwMDEwMjAwMDA1MAorOjEwMDYwMDAwMDkwNDAyMDEwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDBBNQorOjEwMDYxMDAwMEUyNDAyMDEwNjAyMTAwMjQ0QUMwMDgwQkIwMDA5MDU1MgorOjEwMDYyMDAwOEMwNTRDMDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDRBRQorOjEwMDYzMDAwMDIwMjAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDBFMjQ0RgorOjEwMDY0MDAwMDIwMTA2MDMxODAyNDRBQzAwODBCQjAwMDkwNThDMDVCQQorOjEwMDY1MDAwNzIwMzAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNDAyMDNFMworOjEwMDY2MDAwMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyMDExRAorOjEwMDY3MDAwMDIwMjEwMDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1OEMyNgorOjEwMDY4MDAwMDU4NDAxMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MDJBMQorOjEwMDY5MDAwMDQwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDJFQQorOjEwMDZBMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU3OAorOjEwMDZCMDAwOEMwNTQ2MDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDQyNAorOjEwMDZDMDAwMDMwMDAwMDEwMTAwMDAwOTI0MDEwMDAxMDkwMDAxMDRFOAorOjEwMDZEMDAwMDkwNDA0MDAwMjAxMDMwMDAwMDcyNDAxMDAwMTI0MDBCMgorOjEwMDZFMDAwMDYyNDAyMDEwNzAwMDkyNDAzMDIwODAxMDcwMTAwMDY4RAorOjEwMDZGMDAwMjQwMjAyMDkwMDA5MjQwMzAxMEEwMTA5MDEwMDA5MDU3NQorOjEwMDcwMDAwMDEwMjA0MDAwMDAwMDAwNTI1MDEwMTA3MDkwNTgxMDIxRQorOjEwMDcxMDAwMDQwMDAwMDAwMDA1MjUwMTAxMEEwNDAzMDkwNDE4MDM3MAorOjEwMDcyMDAwNDUwMDZEMDA2MTAwNjcwMDY5MDA2MzAwMjAwMDQ3MDAxQworOjEwMDczMDAwNkQwMDYyMDA0ODAwMjIwMzQ1MDA2RDAwNjEwMDY3MDAwMworOjEwMDc0MDAwNjkwMDYzMDAyMDAwNDUwMDREMDA0OTAwMjAwMDM2MDA4QworOjEwMDc1MDAwN0MwMDMyMDAyMDAwNkQwMDJBMDM0MzAwNkYwMDZFMDAxMQorOjEwMDc2MDAwNjYwMDY5MDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDAyRQorOjEwMDc3MDAwNkYwMDZFMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2QworOjEwMDc4MDAwNjcwMDIyMDM0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA3NQorOjEwMDc5MDAwNjEwMDYzMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RQorOjA2MDdBMDAwNkUwMDY3MDAwMDAwN0UKKzoxMDA3QTYwMEU0OTA3NjY2RjAxMjQ0QUQyMDI2MTM5MDc2NjZFMEMzOTgKKzoxMDA3QjYwMDk0MDI1MDBBRTAwNEYwRDI0MjEyNEI3RjgwRUEzMDI2QkYKKzoxMDA3QzYwMDA1MTIyODAxQzIyNjMwMjUyQjkwNzY5NkUwNTRGQ0YwQkYKKzoxMDA3RDYwMDkwODAwM0YwMTIxNDk2OTA3Njk2RTA0NDAzRjA5MDgwOTEKKzoxMDA3RTYwMDAzRjBFNDkwNzY2N0YwOTA3NjY3RTAwNEYwRTBCNDRCQUYKKzowQTA3RjYwMEY2MTI0N0ZBMTI0MTFCODBDNTIyREIKKzoxMDA4MDAwMEU0OTA3NjMxRjA5MDc2MzFFMEZGNzVGMDAzQTQyNDBGODgKKzoxMDA4MTAwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFREUwRkRFRTZENEEKKzoxMDA4MjAwMDYwMEVFRkMzOTQwQjUwMDg5MDc2MzFFMDA0RjA4MEQ1NTEKKzoxMDA4MzAwMEVGQjQwQjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzQjEKKzoxMDA4NDAwMEE0MjQwRUY1ODJFNDM0NzVGNTgzRTA5MDc2MzNGMDI0MjkKKzoxMDA4NTAwMEYwNjAwQTI0MEU2MDAyODE4NzEyNEJDNzIyOTA3RkVENjAKKzoxMDA4NjAwMEUwNjQwNTcwNTE5MDc2MTg3NDA1RjA5MDc2Mzc3NDAxNDUKKzoxMDA4NzAwMEYwOTA3NjM5NzQwM0YwOTA3NjIxRjBFNDkwNzYyMEYwRDEKKzoxMDA4ODAwMDkwN0ZFQUUwRjQ2MDJGOTA3NjIwRTBGRjc1RjAwQUE0RjQKKzoxMDA4OTAwMDI0QUFGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUFFMEZENUEKKzoxMDA4QTAwMEVFNkQ2MDEyOTA3NjIxRTBGRUVGQzM5RTUwMDg5MDc2QzgKKzoxMDA4QjAwMDIwRTAwNEYwODBEMTkwN0ZFREUwNjQwNjcwNTI5MDc2RTUKKzoxMDA4QzAwMDE4NzQwNkYwOTA3NjM3NzQwNEYwOTA3NjM5NzQwQUYwNTQKKzoxMDA4RDAwMDkwNzYyMUYwOTA3NjIwNzQwM0YwOTA3RkVBRTBGNDYwNDcKKzoxMDA4RTAwMDJGOTA3NjIwRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NjQKKzoxMDA4RjAwMDc1RjU4M0UwRkU5MDdGRUFFMEZERUU2RDYwMTI5MDc2ODQKKzoxMDA5MDAwMDIxRTBGRUVGQzM5RTUwMDg5MDc2MjBFMDA0RjA4MEQxRjUKKzoxMDA5MTAwMDkwNzYyMEUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RUQKKzoxMDA5MjAwMEY1ODNFMDkwNzIyOUYwRTQ5MDc2M0JGMDkwNzYyMUUwMzgKKzoxMDA5MzAwMEZFRUY2RTcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3RkVCRjAKKzoxMDA5NDAwMEUwMTQ2MDEzMTQ3MDAyMjFFMjI0MDI2MDAyODE3RjkwOUYKKzoxMDA5NTAwMDdGQjRFMDQ0MDFGMDIyOTA3RkU5RTAxNDcwN0M5MDdGNDYKKzoxMDA5NjAwMEVBRTBGNDcwNDg5MDc2MzdFMDkwNzYyMEYwOTA3NjM5OUYKKzoxMDA5NzAwMEUwRkU5MDc2MjBFMEZEQzM5RTUwMkI5MDc2M0JFMEZFOUIKKzoxMDA5ODAwMDA0RjA3NEMwMkVGNTgyRTQzNDdFRjU4M0UwRkVFRDc1NEMKKzoxMDA5OTAwMEYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0VFRjA5MDc2OEEKKzoxMDA5QTAwMDIwRTAwNEYwODBDNzkwNzYzRjc0MDFGMDIyOTA3RUMwNzIKKzoxMDA5QjAwMEUwRkVFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzMEMKKzoxMDA5QzAwMEVFRjBFMEI0MDEwODkwNzYzRTc0MDFGMDgwMDVFNDkwMEEKKzoxMDA5RDAwMDc2M0VGMDkwNzYzRjc0MDFGMDIyOTA3RkI0RTA0NDAxQkYKKzoxMDA5RTAwMEYwMjI5MDdGRTlFMDI0RkU3MDAyNDFBMzE0NzAwMjYxQkUKKzoxMDA5RjAwMDNGMTQ3MDAyNjFEQjI0MDM2MDAyODE3NzkwN0ZFQUUwOUMKKzoxMDBBMDAwMEY0NzA2QjkwNzYzN0UwOTA3NjIwRjA5MDc2MzlFMEZGQzYKKzoxMDBBMTAwMDkwNzYyMEUwRkVDMzlGNTA0RTkwNzYzQkUwRkYwNEYwQkUKKzoxMDBBMjAwMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFNzVGMDBBQTIKKzoxMDBBMzAwMEE0MjRBQ0Y1ODJFNDM0NzVGNTgzRUZGMDkwNzYzQkUwQzYKKzoxMDBBNDAwMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFRkUKKzoxMDBBNTAwMDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzRUZGMDkwQzcKKzoxMDBBNjAwMDc2MjBFMDA0RjA4MEE0OTA3NjQwNzQwMUYwMjI5MDdFMUQKKzoxMDBBNzAwMEMwRTBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QUNGNTgyNzkKKzoxMDBBODAwMEU0MzQ3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzVGMDBBNzcKKzoxMDBBOTAwMEE0MjRBREY1ODJFNDM0NzVGNTgzRUZGMDkwNzY0MTc0Q0IKKzoxMDBBQTAwMDAxRjAyMjkwN0ZFQUUwRjQ3MDY2OTA3NjM3RTA5MDc2NkQKKzoxMDBBQjAwMDIwRjA5MDc2MzlFMEZGOTA3NjIwRTBGRUMzOUY0MDAyNjAKKzoxMDBBQzAwMDgxOEU5MDc2M0JFMEZGMDRGMDc0QzAyRkY1ODJFNDM0MTEKKzoxMDBBRDAwMDdFRjU4M0UwRkZFRTc1RjAwQUE0MjRBRUY1ODJFNDM0REYKKzoxMDBBRTAwMDc1RjU4M0VGRjA5MDc2M0JFMEZGMDRGMDc0QzAyRkY1Q0UKKzoxMDBBRjAwMDgyRTQzNDdFRjU4M0UwRkZFRTc1RjAwQUE0MjRBRkY1QkUKKzoxMDBCMDAwMDgyRTQzNDc1RjU4M0VGRjA5MDc2MjBFMDA0RjA4MEEyNjMKKzoxMDBCMTAwMDkwN0VDMEUwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEFFM0YKKzoxMDBCMjAwMEY1ODJFNDM0NzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1NTkKKzoxMDBCMzAwMEYwMEFBNDI0QUZGNTgyRTQzNDc1RjU4M0VGRjAyMjkwMzcKKzoxMDBCNDAwMDdGRUFFMEY0NzA2NjkwNzYzN0UwOTA3NjIwRjA5MDc2NTkKKzoxMDBCNTAwMDM5RTBGRjkwNzYyMEUwRkVDMzlGNDAwMjgxOEU5MDc2QzAKKzoxMDBCNjAwMDNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwQUYKKzoxMDBCNzAwMEZGRUU3NUYwMEFBNDI0QjBGNTgyRTQzNDc1RjU4M0VGMzYKKzoxMDBCODAwMEYwOTA3NjNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjEKKzoxMDBCOTAwMEY1ODNFMEZGRUU3NUYwMEFBNDI0QjFGNTgyRTQzNDc1MjQKKzoxMDBCQTAwMEY1ODNFRkYwOTA3NjIwRTAwNEYwODBBMjkwN0VDMEUwMjQKKzoxMDBCQjAwMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRCMEY1ODJFNDM0QkMKKzoxMDBCQzAwMDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NUYwMEFBNDI0ODYKKzoxMDBCRDAwMEIxRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDdGRUFFMEY0MUEKKzoxMDBCRTAwMDcwNjY5MDc2MzdFMDkwNzYyMEYwOTA3NjM5RTBGRjkwNEUKKzoxMDBCRjAwMDc2MjBFMEZFQzM5RjQwMDI4MThFOTA3NjNCRTBGRjA0QUEKKzoxMDBDMDAwMEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwREEKKzoxMDBDMTAwMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFRkYwOTA3NjNCQjQKKzoxMDBDMjAwMEUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGMkEKKzoxMDBDMzAwMEVFNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUY1ODNFRkYwODEKKzoxMDBDNDAwMDkwNzYyMEUwMDRGMDgwQTI5MDdFQzBFMEZGOTA3NjIwQjUKKzoxMDBDNTAwMEUwRkU3NUYwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0VGNjIKKzoxMDBDNjAwMEYwOTA3RUMxRTBGRkVFNzVGMDBBQTQyNEIzRjU4MkU0QjMKKzoxMDBDNzAwMDM0NzVGNTgzRUZGMDIyOTA3RkI0RTA0NDAxRjAyMjkwQzgKKzowRjBDODAwMDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjAxCis6MTAwQzhGMDA0MTc2NjgwMTQxNzY2QTAyNDE3NjZCMEFDMTIwQzEyMTIzCis6MDIwQzlGMDBDMTJGNjMKKzowNDBDQTEwMDQxNzYyMzAwNzUKKzoxMDBDQTUwMDQxNzIwMTAxNDU3MjA1MDAwMkM5MDAwMDQ1NzIwQTAwNDIKKzoxMDBDQjUwMDAxMDIwMzA0NEQ3MjBGRDEwMEQxMDAwMDAwMDAwMDAwQjUKKzoxMDBDQzUwMDI4MjgwOTAwNEQ3MjFDMDEwMDAxMDIwMzA0MDUwNjA3Q0UKKzoxMDBDRDUwMDA4MDkwQTBCNDE3MjJFMjI0MTcyMkYyMzQxNzIzMDIwREUKKzoxMDBDRTUwMDQxNzIzMTIxNjJEMjcyM0EwMDAwMDAwMDAwMDAwMDAwMUEKKzoxMDBDRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDBEMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDBEMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDBEMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDBEMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKKzoxMDBENDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDBENTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDBENjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDBENzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMTAxMDEwMTAxNjgKKzoxMDBEODUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNEUKKzoxMDBEOTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxM0UKKzoxMDBEQTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMkUKKzoxMDBEQjUwMDAxMDEwMTAxMDEwMTAxMDEwMjAyMDIwMjAyMDIwMjAyMTYKKzoxMDBEQzUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRkUKKzoxMDBERDUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRUUKKzoxMDBERTUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyREUKKzoxMDBERjUwMDAyMDIwMjAyMDIwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQzMKKzoxMDBFMDUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQUQKKzoxMDBFMTUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOUQKKzoxMDBFMjUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOEQKKzoxMDBFMzUwMDAzMDMwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NkYKKzoxMDBFNDUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NUQKKzoxMDBFNTUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NEQKKzoxMDBFNjUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0M0QKKzoxMDBFNzUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MUQKKzoxMDBFODUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MEQKKzoxMDBFOTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1RkQKKzoxMDBFQTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNjA2RUIKKzoxMDBFQjUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2Q0QKKzoxMDBFQzUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QkQKKzoxMDBFRDUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QUQKKzoxMDBFRTUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNzA3MDcwODA4OTYKKzoxMDBFRjUwMDA4MDkwOTA5MEEwQTBBMEIwQjBCMEMwQzBDMEQwRDBENDAKKzoxMDBGMDUwMDBFMEUwRTBGMEYwRjEwMTAxMDExMTExMTEyMTIxMjEzRDkKKzoxMDBGMTUwMDEzMTMxNDE0MTQxNTE1MTUxNjE2MTYxNzE3MTcxODE4NzQKKzoxMDBGMjUwMDE4MTkxOTE5MTkxQTFBMUExQTFCMUIxQjFCMUMxQzFDMTgKKzoxMDBGMzUwMDFDMUQxRDFEMUQxRTFFMUUxRTFGMUYxRjFGMjAyMDIwQzgKKzoxMDBGNDUwMDIxMjEyMTIyMjIyMjIzMjMyNDI0MjUyNTI2MjYyNzI3NjEKKzoxMDBGNTUwMDI4MjgyOTI5MkEyQTJCMkIyQzJDMkQyRDJFMkUyRjJGRDQKKzoxMDBGNjUwMDMwMzAzMTMxMzIzMjMzMzMzNDM0MzUzNTM2MzYzNzM3NDQKKzoxMDBGNzUwMDM4MzgzOTM5M0EzQTNCM0MzRDNFM0Y0MDQxNDI0MzQ0OUIKKzoxMDBGODUwMDQ1NDY0NzQ4NDk0OTRBNEI0QjRDNEQ0RTRGNTA1MTUyQTcKKzoxMDBGOTUwMDUzNTQ1NTU1NTY1NjU3NTc1ODVBNUI1RDVFNUY2MTYyQjcKKzoxMDBGQTUwMDYzNjQ2NTY2Njc2ODY5NkE2QjZDNkQ2RjcxNzI3Mzc0OEIKKzoxMDBGQjUwMDc1NzY3Nzc4Nzk3QTdCN0M3RTgwMDEzNzAxMDEzODAwRjgKKzowMTBGQzUwMDAwMkIKKzoxMDBGQzYwMEU0RkY3NDQ2MkZGNTgyRTQzNDc2RjU4M0UwRkU3NDIwNjAKKzoxMDBGRDYwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQ0RTJGRjU4MkU0MkIKKzoxMDBGRTYwMDM0NzZGNTgzRTBGRTc0MzAyRkY1ODJFNDM0ODBGNTgzQTEKKzowNjBGRjYwMEVFRjAwRkJGMDhDQzc1Cis6MDEwRkZDMDAyMkQyCis6MDMwRkZEMDBDMjg5MzI3NAorOjEwMTAwMDAwRTQ5MDc2MkNGMDkwNzYyQ0UwRkY3NUYwMDNBNDI0MEY4QQorOjEwMTAxMDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVERTBGREVFNkQ0MgorOjEwMTAyMDAwNjAwRUVGQzM5NDBCNTAwODkwNzYyQ0UwMDRGMDgwRDU0RQorOjEwMTAzMDAwRUZCNDBCMDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDNBOQorOjEwMTA0MDAwQTQyNDBFRjU4MkU0MzQ3NUY1ODNFMDkwNzYyRUYwMjQyNgorOjEwMTA1MDAwRjA2MDBBMjQwRjYwMDI4MTdEMTI0QkE0MjI5MDdGRUQ4NAorOjEwMTA2MDAwRTA2NDA1NzA1MTkwNzYxODc0MDVGMDkwNzYzODc0MDEzQworOjEwMTA3MDAwRjA5MDc2M0E3NDAzRjA5MDc2MUNGMEU0OTA3NjFCRjBEMgorOjEwMTA4MDAwOTA3RkVBRTBGNDYwMkY5MDc2MUJFMEZGNzVGMDBBQTRGMQorOjEwMTA5MDAwMjRBQUY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQUUwRkQ1MgorOjEwMTBBMDAwRUU2RDYwMTI5MDc2MUNFMEZFRUZDMzlFNTAwODkwNzZDNQorOjEwMTBCMDAwMUJFMDA0RjA4MEQxOTA3RkVERTA2NDA2NzA1MjkwNzZFMgorOjEwMTBDMDAwMTg3NDA2RjA5MDc2Mzg3NDA0RjA5MDc2M0E3NDBBRjA0QQorOjEwMTBEMDAwOTA3NjFDRjA5MDc2MUI3NDAzRjA5MDdGRUFFMEY0NjA0OQorOjEwMTBFMDAwMkY5MDc2MUJFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ2MQorOjEwMTBGMDAwNzVGNTgzRTBGRTkwN0ZFQUUwRkRFRTZENjAxMjkwNzY3QworOjEwMTEwMDAwMUNFMEZFRUZDMzlFNTAwODkwNzYxQkUwMDRGMDgwRDFGNworOjEwMTExMDAwRTQ5MDc2MUVGMDkwNzYxQ0UwRkY5MDc2MUJFMEZFNkY2OAorOjEwMTEyMDAwNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDdGRUJFMDE0NjBGRgorOjEwMTEzMDAwMTMxNDcwMDIyMUJGMjQwMjYwMDI4MTc1OTA3RkI0RTAxNQorOjEwMTE0MDAwNDQwMUYwMjI5MDdGRTlFMDI0N0Y3MDZCOTA3RkVBRTAxOQorOjEwMTE1MDAwRjQ3MDRBOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MworOjEwMTE2MDAwOTA3NjFCRTBGREMzOUY1MDJCRUQ3NUYwMEFBNDI0QUJENQorOjEwMTE3MDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRDA0RjAxRgorOjEwMTE4MDAwNzQwMDJERjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTA1OAorOjEwMTE5MDAwMDRGMDgwQzc5MDc2MUVFMDkwN0ZCNUYwMjJFRTc1RjBFNworOjEwMTFBMDAwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA2NworOjEwMTFCMDAwOTA3RkI1NzQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA1QQorOjEwMTFDMDAwN0ZFOUUwMjQ3RTcwMDI0MTdFMTQ3MDAyNjEyMzE0NzA3NgorOjEwMTFEMDAwMDI2MUM4MjQwMzYwMDI4MTZEOTA3RkVBRTBGNDcwNkRDMworOjEwMTFFMDAwOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MDc2MUI5MAorOjEwMTFGMDAwRTBDMzlGNTA0RkUwRkY3NUYwMEFBNDI0QUNGNTgyRTRGMQorOjEwMTIwMDAwMzQ3NUY1ODNFMEZFOTA3NjFFRTBGRDA0RjA3NDAwMkQ0OQorOjEwMTIxMDAwRjU4MkU0MzQ3RkY1ODNFRUYwRUY3NUYwMEFBNDI0QUQ5NworOjEwMTIyMDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRTA0RjA2RAorOjEwMTIzMDAwNzQwMDJFRjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTBBNgorOjEwMTI0MDAwMDRGMDgwQTQ5MDc2MUVFMDkwN0ZCNUYwMjI5MDc2MUI4QgorOjEwMTI1MDAwRTBGRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzRTA3MAorOjEwMTI2MDAwOTA3RjAwRjBFRjc1RjAwQUE0MjRBREY1ODJFNDM0NzVBOAorOjEwMTI3MDAwRjU4M0UwOTA3RjAxRjA5MDdGQjU3NDAyRjAyMjkwN0ZCQgorOjEwMTI4MDAwRUFFMEY0NzA2RDkwNzYzOEUwOTA3NjFCRjA5MDc2M0E1NAorOjEwMTI5MDAwRTBGRjkwNzYxQkUwQzM5RjUwNEZFMEZGNzVGMDBBQTQ3QgorOjEwMTJBMDAwMjRBRUY1ODJFNDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQxMQorOjEwMTJCMDAwMDRGMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVEMQorOjEwMTJDMDAwRjAwQUE0MjRBRkY1ODJFNDM0NzVGNTgzRTBGRjkwNzY0QworOjEwMTJEMDAwMUVFMEZFMDRGMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUYwNworOjEwMTJFMDAwRjA5MDc2MUJFMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjUyRAorOjEwMTJGMDAwRjAyMjkwNzYxQkUwRkY3NUYwMEFBNDI0QUVGNTgyRTQ5QworOjEwMTMwMDAwMzQ3NUY1ODNFMDkwN0YwMEYwRUY3NUYwMEFBNDI0QUYwOAorOjEwMTMxMDAwRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMUYwOTA3RkI1NzQzOQorOjEwMTMyMDAwMDJGMDIyOTA3RkVBRTBGNDcwNkQ5MDc2MzhFMDkwNzZEQgorOjEwMTMzMDAwMUJGMDkwNzYzQUUwRkY5MDc2MUJFMEMzOUY1MDRGRTBBMQorOjEwMTM0MDAwRkY3NUYwMEFBNDI0QjBGNTgyRTQzNDc1RjU4M0UwRkU1RAorOjEwMTM1MDAwOTA3NjFFRTBGRDA0RjA3NDAwMkRGNTgyRTQzNDdGRjVGNAorOjEwMTM2MDAwODNFRUYwRUY3NUYwMEFBNDI0QjFGNTgyRTQzNDc1RjU0QworOjEwMTM3MDAwODNFMEZGOTA3NjFFRTBGRTA0RjA3NDAwMkVGNTgyRTQxOAorOjEwMTM4MDAwMzQ3RkY1ODNFRkYwOTA3NjFCRTAwNEYwODBBNDkwNzYzNAorOjEwMTM5MDAwMUVFMDkwN0ZCNUYwMjI5MDc2MUJFMEZGNzVGMDBBQTQ2NgorOjEwMTNBMDAwMjRCMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVBQQorOjEwMTNCMDAwRjAwQUE0MjRCMUY1ODJFNDM0NzVGNTgzRTA5MDdGMDE0RQorOjEwMTNDMDAwRjA5MDdGQjU3NDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTBBNworOjEwMTNEMDAwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCRTA0RQorOjEwMTNFMDAwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzRBNQorOjEwMTNGMDAwNzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJERjU5NworOjEwMTQwMDAwODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEIzRjU5RgorOjEwMTQxMDAwODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNzRGQworOjEwMTQyMDAwMDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDQyNAorOjEwMTQzMDAwRjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCRTBCRAorOjEwMTQ0MDAwRkY3NUYwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0UwOTBDOAorOjEwMTQ1MDAwN0YwMEYwRUY3NUYwMEFBNDI0QjNGNTgyRTQzNDc1RjU0QgorOjEwMTQ2MDAwODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQjQwQQorOjEwMTQ3MDAwRTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjQ3OAorOjA1MTQ4MDAwRTA0NDAxRjAyMjMwCis6MTAxNDg1MDA3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTdBCis6MDExNDk1MDAyMjM0Cis6MTAxNDk2MDA5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkUwCis6MTAxNEE2MDBDMEQwQzBFMDhGRTBDMEUwOEVFMEMwRTA4REUwQzBFMERDCis6MTAxNEI2MDA4Q0UwQzBFMEMwODJDMDgzMDU4NkMwODRDMDg1N0QwMDA0Cis6MTAxNEM2MDA5MDdGRTM3NDdCRjBBMzc0ODBGMDdDMTE5MDdGOTlFMEE5Cis6MTAxNEQ2MDA1NDQwREMwMzAyMTRGM0I0MDAxMzkwN0ZFMjc0NDBGMDJFCis6MTAxNEU2MDA5MDdGRTVGMDkwN0ZFMjc0MDBGMDAyMTREMjkwNzY5MDNGCis6MTAxNEY2MDBFMEI0MDExMjkwNzY4RkUwMkRGRDkwN0ZFMjc0ODBGMENCCis6MTAxNTA2MDA5MDdGNkMwMjE1NTdCNDAyMTI5MDc2OEZFMDJERkQ5MEY1Cis6MTAxNTE2MDA3RkUyNzQ4MEYwOTA3RjZDMDIxNTk2QjQwMzEyOTA3Njg5Cis6MTAxNTI2MDA4RkUwMkRGRDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTVFMUQ0Cis6MTAxNTM2MDBCNDA0MTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjA5MEQ3Cis6MTAxNTQ2MDA3RjZDMDIxNjEwOTA3RkUyNzQ4MEYwOTA3RjZDMDIxNjFBCis6MTAxNTU2MDA0MEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERjI3REI5Cis6MTAxNTY2MDAwMjA1ODY5MDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNEZECis6MTAxNTc2MDAwMDA1MDU4NjAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMDJECis6MTAxNTg2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRERENDAyMTY0MEZDCis6MTAxNTk2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMDQ1Cis6MTAxNUE2MDBGMEYwRERFQzdEMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjFFCis6MTAxNUI2MDA5QkUwNTQwNEI0MDAwNTA1ODYwMjE2NDA5MDdGRTI3NDUxCis6MTAxNUM2MDA4MEYwMDU4NkYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERBCis6MDYxNUQ2MDBGMEYwRjBGMEYwRjA2RgorOjEwMTVEQzAwRERDRTAyMTY0MEYwRjBGMEYwRERGQTdEMDIwNTg2OTBDQgorOjEwMTVFQzAwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1ODYwNAorOjEwMTVGQzAwMDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwREQ4QQorOjEwMTYwQzAwREMwMjE2NDBGMEYwRjBGMEYwRjBEREY4N0QwMjA1ODYxQgorOjEwMTYxQzAwOTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjQwMDA1MDVDOQorOjEwMTYyQzAwODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjBGMEYwRjBCMAorOjEwMTYzQzAwRjBGMEREREE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODY3RQorOjEwMTY0QzAwRDA4M0QwODJEMEUwRkNEMEUwRkREMEUwRkVEMEUwRkYzMworOjA1MTY1QzAwRDBFMEQwRDAyMjE3Cis6MTAxNjYxMDBDMEQwQzBFMEMwODJDMDgzOTA3NjdDRTA5MDdGNkZGMEY0Cis6MTAxNjcxMDA5MDc2N0RFMDkwN0Y2RkYwOTA3NjdFRTA5MDdGNkZGMEM2Cis6MDkxNjgxMDBEMDgzRDA4MkQwRTBEMEQwMjI0OQorOjEwMTY4QTAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwQzA4MkMwODM3RQorOjEwMTY5QTAwMDU4NkMwODRDMDg1OTA3Njg3RTBGRkJGMDAwMzAyMTdFNQorOjEwMTZBQTAwMDE5MDdGOTZFMDQ0ODBGMDkwN0ZFMjc0ODBGMDkwN0YxMgorOjEwMTZCQTAwNjJFMDA1ODY5MDdGRTI3NDAwRjA5MDdGOTZFMDU0N0ZBNgorOjEwMTZDQTAwRjA5MDdGRTI3NDgwRjA5MDc2OEVFMEI0MDEwNTA1ODY5MgorOjEwMTZEQTAwMDIxNkY2QjQwMjA1MDU4NjAyMTZFQjA1ODYwMjE2RkIwQgorOjEwMTZFQTAwRTBFMEUwRTBFMEUwREZGODAyMTZGQkUwRTBFMEUwREY2NworOjEwMTZGQTAwRkE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODZEMDgzRDAzQQorOjBDMTcwQTAwODJEMEUwRkVEMEUwRkZEMEUwRDBEMDIyODIKKzoxMDE3MTYwMEMwODJDMDgzQzBFMEU4QzBFMDc4RDFFODE0Rjg3MEZCNkUKKzowQTE3MjYwMEQwRTBGOEQwRTBEMDgzRDA4MjIyOUEKKzoxMDE3MzAwMEMwODJDMDgzQzBFMEU4QzBFMDc4NzhFODE0Rjg3MEZCQUQKKzowQTE3NDAwMEQwRTBGOEQwRTBEMDgzRDA4MjIyODAKKzowNzE3NEEwMDkwN0ZDNTc0MDJGMDIyM0MKKzoxMDE3NTEwMDkwN0VDMEUwOTA3NjQ1RjA5MDdFQzFFMDkwNzY0NEYwQjYKKzoxMDE3NjEwMDkwN0VDMkUwOTA3NjQzRjBCNDAwMDMwMjE3Nzg5MDc2NDEKKzoxMDE3NzEwMDE5NzQwM0YwMDIxNzhFOTA3NjQ0RTBCNEJCMDk5MDc2OTkKKzoxMDE3ODEwMDE5NzQwMkYwMDIxNzhFOTA3NjE5NzQwMUYwOTA3NjQyNjYKKzowMzE3OTEwMEU0RjAyMjVGCis6MDQxNzk0MDA4RDI5OEIyQUU2Cis6MTAxNzk4MDAxMjRBNTVFQTQ5NjA1NzEyMzY5MjdFMDAyOUZGRUUzQUZFCis6MTAxN0E4MDBDOUVGQzk3NTJCRkZGNTJDODkyREFCMkJBQTJDQTkyREI4Cis6MTAxN0I4MDA5MDAwMDExMjM2QUJGRjY0MDQ2MDA1RUY2NDA1NzAyRURCCis6MTAxN0M4MDBFRkI0MDQxNTkwMDAwMjEyMzZBQjY1Mjk3MDBCOTAwMDM3Cis6MTAxN0Q4MDAwMzEyMzZBQjY1MkE3MDAxMjIxMjM2OTI3RTAwMjlGRjY5Cis6MTAxN0U4MDBFRTNBQzlFRkM5NzUyQkZGRjUyQzg5MkQ4MEJDN0IwMDFCCis6MDQxN0Y4MDA3QTAwNzkwMEZBCis6MDExN0ZDMDAyMkNBCis6MDMxN0ZEMDBDMjhCMzI2QQorOjEwMTgwMDAwOTA3NjkwRTAxNDYwMzcxNDcwMDIwMUQ4MTQ3MDAyMjFCMQorOjEwMTgxMDAwNzIxNDcwMDI0MTNCMjQwNDYwMDI2MTAzOTA3RkZDNzRFNworOjEwMTgyMDAwQ0NGMDkwN0ZGRjc0RkNGMDkwNzY5NUUwNDQwMUYwNTQ4QQorOjEwMTgzMDAwMDVGMDkwODAwMUYwRTQ5MDc2MUFGMEMyMkUyMjkwNzZBNgorOjEwMTg0MDAwOTVFMDQ0MDFGMDQ0MDJGMDMwM0UwNkUwNDQwNEYwODBBQworOjEwMTg1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3QQorOjEwMTg2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTIyOTAyNworOjEwMTg3MDAwN0ZGQzc0NzRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkI3MworOjEwMTg4MDAwRjA5MDc2OTdFMDU0RkRGMEU0OTA3NjgxRjA5MDc2ODBDOQorOjEwMTg5MDAwRjBFRkI0MDIyMjkwN0ZGQzc0NjhGMDkwN0ZGRjc0RkMzQworOjEwMThBMDAwRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJGMEU0OTBGOQorOjEwMThCMDAwNzY4MUYwOTA3NjgwRjAzMDNGMDk5MDc2OTdFMDU0RkU4NAorOjEwMThDMDAwRjA4MDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDU0RkIyMworOjEwMThEMDAwRjA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTRGRUYwNDRGMworOjEwMThFMDAwMDJGMDMwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTQyNAorOjEwMThGMDAwRkJGMDkwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFCNAorOjEwMTkwMDAwRjA5MDc2MTlFMEZGQjQwMTIyOTA3RkZDNzQzMEYwOTBFMworOjEwMTkxMDAwN0ZGRjc0RkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGNAorOjEwMTkyMDAwRkRGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjIyOTBBMgorOjEwMTkzMDAwN0ZGQzc0MUNGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkYwNgorOjEwMTk0MDAwRjA5MDc2OTdFMDQ0MDJGMEU0OTA3NjgxRjA5MDc2ODAxMworOjEwMTk1MDAwRjAzMDNGMDk5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTczQworOjEwMTk2MDAwRTA0NDAxRjA5MDc2OTdFMDU0RkJGMDkwODAwMkYwRDJEMgorOjEwMTk3MDAwMkUyMjkwNzY5NUUwNDQwMUYwNDQwMkYwNDQwOEYwMzBDNQorOjEwMTk4MDAwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTRGQkYwOTAyQQorOjEwMTk5MDAwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFGMDkwNzY5OAorOjEwMTlBMDAwMTlFMEZGQjQwMTI1OTA3RkZDNzRDQ0YwOTA3RkZGNzRBOAorOjEwMTlCMDAwRkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGREYwNTQwNQorOjEwMTlDMDAwRkJGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjI1OTAwMQorOjEwMTlEMDAwN0ZGQzc0QzhGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkZCQQorOjEwMTlFMDAwRjA5MDc2OTdFMDQ0MDJGMDU0RkJGMEU0OTA3NjgxRjBCQQorOjEwMTlGMDAwOTA3NjgwRjBFRkI0MDMyNTkwN0ZGQzc0OThGMDkwN0Y5MAorOjEwMUEwMDAwRkY3NEZDRjA5MDc2OEY3NDVGRjA5MDc2OTdFMDU0RkQ1MQorOjEwMUExMDAwRjA0NDA0RjBFNDkwNzY4MUYwOTA3NjgwRjAzMDNGMDk1NQorOjEwMUEyMDAwOTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjBCRQorOjEwMUEzMDAwOTA3Njk3RTA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTQzNgorOjEwMUE0MDAwRkVGMDQ0MDJGMDQ0MDhGMDMwM0UwNkUwNDQwNEYwODAyQQorOjEwMUE1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3OAorOjEwMUE2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTI1OTAyMgorOjEwMUE3MDAwN0ZGQzc0QjRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkIzMQorOjEwMUE4MDAwRjA5MDc2OTdFMDU0RkRGMDU0RkJGMEU0OTA3NjgxRjAwRQorOjEwMUE5MDAwOTA3NjgwRjBFRkI0MDIyNTkwN0ZGQzc0QjBGMDkwN0ZEOAorOjEwMUFBMDAwRkY3NEZDRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJFQworOjEwMUFCMDAwRjA1NEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDM4MAorOjEwMUFDMDAwMjU5MDdGRkM3NDY4RjA5MDdGRkY3NEZDRjA5MDc2OEYxNworOjEwMUFEMDAwNzQ1RkYwOTA3Njk3RTA1NEZERjA0NDA0RjBFNDkwNzY2MworOjEwMUFFMDAwODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFRjBEOAorOjEwMUFGMDAwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDIxRQorOjA0MUIwMDAwRjBEMjJFMjJDRgorOjEwMUIwNDAwMzAyQzM4QzIyQzkwNzYxOUUwRkZCNDAxMEU5MDc2N0MwQworOjEwMUIxNDAwNzRDMEYwQTM3NDE0RjBBMzc0MEJGMEVGQjQwMjBERTREQQorOjEwMUIyNDAwOTA3NjdDRjBBMzc0MTBGMEEzNzQwQ0YwRUZCNDAzMEI2NAorOjBDMUIzNDAwRTQ5MDc2N0NGMEEzNzQxOEYwQTNGMDIyN0IKKzoxMDFCNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUKKzoxMDFCNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODUKKzoxMDFCNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKKzoxMDFCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzoxMDFCODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTUKKzoxMDFCOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDUKKzoxMDFCQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzUKKzoxMDFCQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzoxMDFCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTUKKzoxMDFCRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUKKzoxMDFCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjUKKzoxMDFCRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzoxMDFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDFDMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzQKKzoxMDFDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjQKKzoxMDFDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzoxMDFDNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTQKKzoxMDFDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQKKzoxMDFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKKzoxMDFDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzoxMDFDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKKzoxMDFDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQKKzoxMDFDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzoxMDFDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDFDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDFDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDFDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDFDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKKzoxMDFEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDFEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDFEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMDFENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMDFENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzoxMDFENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzoxMDFENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzoxMDFEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKKzoxMDFEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKKzoxMDFEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzoxMDFEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoxMDFEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKKzoxMDFERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKKzoxMDFERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKKzoxMDFERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzoxMDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKKzoxMDFFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzIKKzoxMDFFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjIKKzoxMDFFMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzoxMDFFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKKzoxMDFFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKKzoxMDFFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzoxMDFFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzoxMDFFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKKzoxMDFFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKKzoxMDFFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKKzowRTFFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwMUVCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwMUVDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwMUVERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwMUVFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwMUVGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwMUYwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwMUYxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwMUYyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjAyMUYzRTAwMDAwMEExCis6MTAxRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTAxRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTAxRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTAxRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTAxRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTAxRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCis6MTAxRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTAxRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTAxRkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTAxRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTAxRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCis6MTAxRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTAyMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTAyMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTAyMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTAyMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwCis6MTAyMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTAyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCis6MTAyMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTAyMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCis6MTAyMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTAyMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTAyMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTAyMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTAyMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTAyMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwCis6MTAyMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTAyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyMTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJGCis6MTAyMTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFGCis6MTAyMTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlGCis6MTAyMTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhGCis6MTAyMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdGCis6MTAyMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTAyMTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyMUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyMjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyMkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyMzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyMzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MEUyMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKKzoxMDIzN0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKKzoxMDIzOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKKzoxMDIzOUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKKzoxMDIzQUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKKzoxMDIzQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKKzoxMDIzQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKKzoxMDIzREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDIzRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDIzRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKKzoxMDI0MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDI0MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKKzoxMDI0MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDI0M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDI0NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDI0NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKKzoxMDI0NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKKzoxMDI0N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzoxMDI0OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKKzoxMDI0OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKKzoxMDI0QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKKzoxMDI0QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKKzoxMDI0Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKKzoxMDI0REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKKzoxMDI0RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDI0RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDI1MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDI1MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDI1MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDI1M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDI1NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDI1NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDI1NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDI1N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDI1OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDI1OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDI1QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDI1QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDI1Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDI1REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDI1RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzoxMDI1RkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKKzoxMDI2MEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkMKKzoxMDI2MUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUMKKzoxMDI2MkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUMKKzoxMDI2M0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMKKzoxMDI2NEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0MKKzoxMDI2NUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzoxMDI2NkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUMKKzoxMDI2N0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEMKKzoxMDI2OEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0MKKzoxMDI2OUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzoxMDI2QUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUMKKzoxMDI2QkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMKKzoxMDI2Q0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkMKKzoxMDI2REUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzowRTI2RUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjZGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjcwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjcxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjcyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjczQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjc0QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjc1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwMjc2QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwMjc3QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAorOjEwMjc4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwMjc5QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwMjdBQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwMjdCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwMjdDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwMjdEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAorOjEwMjdFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAorOjA1MjdGQzAwMDAwMDAwMDAyMkI2Cis6MTAyODAxMDBDMjIwQzIyMUMyMkE5MDdGRThFMDEyMzdGOTI4MzAwMEE1Cis6MTAyODExMDAyODhDMDEyOEEyMDIyQTFGMjEyQTZBMjIyOTNEODAyOTA3Cis6MTAyODIxMDA3RDgxMjlEMTgyMkE4NEExMkFCQUEyMDAwMDJBQkY5MERGCis6MTAyODMxMDA3RkU5RTAxNDYwMTEyNEZFNjAyODI0RkU2MDNCMjRGQzQzCis6MTAyODQxMDA3MDQwMTIzRkU1NDFDQjEyNEUxRDQwMDI0MUNCOTA3RkJCCis6MTAyODUxMDBFQUUwQjQwMTA0QzIyMjQxQ0I5MDdGQjRFMDQ0MDFGMDJDCis6MTAyODYxMDA0MUNCMTI0RTFGOTA3RkVBRTBCNDAxMDREMjIyNDFDQjRBCis6MTAyODcxMDA5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDlCCis6MTAyODgxMDA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTAyNDVCCis6MTAyODkxMDBGNTcwMDUxMjQ4NjM0MUNCOTA3RkI0RTA0NDAxRjA0MUVCCis6MTAyOEExMDBDQjkwN0ZFOUUwMjRGRDYwNTQyNDAyNjAwMjIxMzQxMkMwCis6MTAyOEIxMDA0RTFENDAwMjQxQ0I5MDdGRUFFMDcwMzg5MDdGRUNFMDAyCis6MTAyOEMxMDBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEQzCis6MTAyOEQxMDBGNTgyRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRkVGCis6MTAyOEUxMDAxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NEQ4Cis6MTAyOEYxMDAyMEYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjEyNEUxRjU4Cis6MTAyOTAxMDA0MDAyNDFDQjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NEVDCis6MTAyOTExMDA4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MjUzCis6MTAyOTIxMDBFNDM0N0ZGNTgzNzQwMUYwNDFDQjkwN0ZCNEUwNDQwMTNFCis6MTAyOTMxMDBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGRTlFMERFCis6MTAyOTQxMDA2MDEyMjRGODYwMDkyNDAyNzAyOTEyNDNFNzQxQ0IxMjc2Cis6MTAyOTUxMDA0RENBNDFDQjEyNEUxQkEyMjJFNDMzRkYyNUUwRkZBMjU4Cis6MTAyOTYxMDAyM0U0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMjJECis6MTAyOTcxMDBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGRTlFMDlFCis6MTAyOTgxMDA2MDMzMjRGNjYwMkEyNDA0NzAzRDkwN0ZFQkUwMjRERTVFCis6MTAyOTkxMDA2MDBDMDQ3MDEyOTA3RkI0RTA0NDAxRjA0MUNCOTA3RjUxCis6MTAyOUExMDBCNEUwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjZECis6MTAyOUIxMDAxMjQ3NDU0MUNCMTI0RTFCRTQ5MDdGMDBGMEEzRjA5MEVCCis6MTAyOUMxMDA3RkI1NzQwMkYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjdDCis6MTAyOUQxMDA5MDdGRTlFMDI0RjQ2MDM0MjQwQzcwMzkxMjRFMUI5MDhFCis6MTAyOUUxMDA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNTFGCis6MTAyOUYxMDBFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMDU4Cis6MTAyQTAxMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDQxQ0I5MDdGQjRFMDg1Cis6MTAyQTExMDA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RjgxCis6MTAyQTIxMDBFOUUwMjRGNjYwMTIxNDYwMUEyNDAyNzAxREQyMjA5MDhECis6MTAyQTMxMDA3RkI0RTA0NDAxRjA4MDEyRDIyMDkwN0ZCNEUwNDQwMUUxCis6MTAyQTQxMDBGMDgwMDc5MDdGQjRFMDQ0MDFGMDIwMjAxODkwN0ZFRUUxCis6MTAyQTUxMDBFMDcwMDRBM0UwNjAwQkQyMjlEMjI3MTIxNzRBRDIyQUQwCis6MTAyQTYxMDA4MDAzMTIwODAwQzIyMDgwNjE5MDdGRUVFMDcwMDRBMzExCis6MTAyQTcxMDBFMDYwMEJEMjI5RDIyODEyMTc0QUQyMkE4MDRDMTIzODkwCis6MTAyQTgxMDA3NDgwNDc5MDdGRTlFMDI0RkU2MDEyMTQ2MDFBMjQwMkVBCis6MTAyQTkxMDA3MDFERDIyMTkwN0ZCNEUwNDQwMUYwODAxMkQyMjE5MEM4Cis6MTAyQUExMDA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjAyMDVFCis6MTAyQUIxMDAyMTAzMTIxMDAwQzIyMTgwMTExMjJBRDY4MDBDMTI0RTVECis6MTAyQUMxMDAyMTUwMDc5MDdGQjRFMDQ0MDFGMDIwMkEwNzkwN0ZCNEExCis6MDUyQUQxMDBFMDQ0MDJGMDIyQzgKKzoxMDJBRDYwMEU0OTA3NjI3RjA5MDc2MjdFMEZGNzVGMDBGQTQyNDQyNjUKKzoxMDJBRTYwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZENTMKKzoxMDJBRjYwMDYwMEVFRkMzOTQwNjUwMDg5MDc2MjdFMDA0RjA4MEQ1NjgKKzoxMDJCMDYwMEVGQjQwNjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDBGQjEKKzoxMDJCMTYwMEE0MjQ0MUY1ODJFNDM0NzVGNTgzRTA5MDc2MjhGMDI0MDgKKzoxMDJCMjYwMDlGNzAwMkExNzQyNDIxNjAwMkExQTE5MDdGRTlFMDI0OTQKKzoxMDJCMzYwMDdFNzAwMjYxRkMxNDcwMDI4MUI1MjQwMjYwMDJBMTZDRjEKKzoxMDJCNDYwMEVGNzVGMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQjkKKzoxMDJCNTYwMEEzRTBGREEzRTBGRUEzRTBGRjdCNDQ3QUFDNzkwMDc4MTYKKzoxMDJCNjYwMDAwQzMxMjM3QUI3MDEzOTA3RjAwNzQ0NEYwQTM3NEFDQUIKKzoxMDJCNzYwMEYwRTRBM0YwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwNEIKKzoxMDJCODYwMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZENEQKKzoxMDJCOTYwMEEzRTBGRUEzRTBGRjdCODA3QUJCNzkwMDc4MDBDMzEyMzYKKzoxMDJCQTYwMDM3QUI3MDEzOTA3RjAwNzQ4MEYwQTM3NEJCRjBFNEEzN0UKKzoxMDJCQjYwMEYwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwMEZBNDI0QUIKKzoxMDJCQzYwMDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZEQTNFMEZFNjMKKzoxMDJCRDYwMEEzRTBGRjdCMDA3QTc3NzkwMTc4MDBDMzEyMzdBQjYwRjgKKzoxMDJCRTYwMDAyQTFBODkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwN0YKKzoxMDJCRjYwMDdGQjU3NDAzRjAyMjkwNzYyN0UwNzVGMDBGQTQyNDQ3ODIKKzoxMDJDMDYwMEY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzQzIKKzoxMDJDMTYwMEUwRkY3QjQ0N0FBQzc5MDA3ODAwQzMxMjM3QUI3MDEzQkYKKzoxMDJDMjYwMDkwN0YwMDc0NDRGMEEzNzRBQ0YwRTRBM0YwOTA3RkI1RjkKKzoxMDJDMzYwMDc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0M0MKKzoxMDJDNDYwMDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCODMKKzoxMDJDNTYwMDgwN0FCQjc5MDA3ODAwQzMxMjM3QUI3MDEzOTA3RjAwN0YKKzoxMDJDNjYwMDc0ODBGMEEzNzRCQkYwRTRBM0YwOTA3RkI1NzQwM0YwMTYKKzoxMDJDNzYwMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0MzQ3NUY1QzUKKzoxMDJDODYwMDgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCMDA3QTc3RjAKKzoxMDJDOTYwMDc5MDE3ODAwQzMxMjM3QUI2MDAyQTFBODkwN0YwMEYwREIKKzoxMDJDQTYwMEEzNzQ3N0YwQTM3NDAxRjA5MDdGQjU3NDAzRjAyMjkwQkIKKzoxMDJDQjYwMDc2MjdFMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzOEUKKzoxMDJDQzYwMEUwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5NDEKKzoxMDJDRDYwMDAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzRTIKKzoxMDJDRTYwMDc0QUNGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwMUYKKzoxMDJDRjYwMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzNEMKKzoxMDJEMDYwMEUwRkRBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQkMKKzoxMDJEMTYwMEMzMTIzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwQkUKKzoxMDJEMjYwMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGN0EKKzoxMDJEMzYwMEE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRkYKKzoxMDJENDYwMEUwRkVBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QjMKKzoxMDJENTYwMEFCNzA0RjkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwRUUKKzoxMDJENjYwMDdGQjU3NDAzRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGOTcKKzoxMDJENzYwMEU5RTAyNDdGNzAxRTkwNzYyN0UwNzVGMDBGQTQyNDRGQkIKKzoxMDJEODYwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDkwN0ZCNTc0QUEKKzoxMDJEOTYwMDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0RjYKKzowMzJEQTYwMDAxRjAyMjE3Cis6MTAyREE5MDBFNDkwNzYzNkYwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDkyCis6MTAyREI5MDAzNDc1RjU4Mzc0MDFGMEVGNzVGMDAzQTQyNDBGRjU4MkRGCis6MTAyREM5MDBFNDM0NzVGNTgzNzQwMUYwRUY3NUYwMDNBNDI0MTBGNTZDCis6MTAyREQ5MDA4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTAwNEYwRTBGRkEwCis6MTAyREU5MDA3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MTBGMEFDCis6MTAyREY5MDBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQwNUE3Cis6MTAyRTA5MDBGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODNFNDNBCis6MTAyRTE5MDBGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTk3Cis6MTAyRTI5MDA4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQwRjdFCis6MTAyRTM5MDBGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQyNDg4Cis6MTAyRTQ5MDAxMEY1ODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwMDRGMDA5Cis6MTAyRTU5MDBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDVDCis6MTAyRTY5MDAwMUYwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4M0JFCis6MTAyRTc5MDA3NDAzRjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNUJBCis6MTAyRTg5MDA4M0U0RjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNEMzCis6MTAyRTk5MDAwRUY1ODJFNDM0NzVGNTgzNzQxMEYwRUY3NUYwMDNBNDMwCis6MTAyRUE5MDAyNDBGRjU4MkU0MzQ3NUY1ODM3NDA2RjBFRjc1RjAwM0E5Cis6MTAyRUI5MDBBNDI0MTBGNTgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMEM1Cis6MTAyRUM5MDAwNEYwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNUVGCis6MTAyRUQ5MDA4Mzc0MDJGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUNFCis6MTAyRUU5MDBGNTgzNzQwNEYwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDNCCis6MTAyRUY5MDA3NUY1ODNFNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0IxCis6MTAyRjA5MDBBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMEFDCis6MTAyRjE5MDAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQwOEYwRUY3NTgyCis6MTAyRjI5MDBGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODM3NDA0RjA5MDU5Cis6MTAyRjM5MDA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDkwCis6MTAyRjQ5MDAzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQyNDBGRjU4MjRDCis6MTAyRjU5MDBFNDM0NzVGNTgzNzQwQUYwRUY3NUYwMDNBNDI0MTBGNUQxCis6MTAyRjY5MDA4MkU0MzQ3NUY1ODM3NDA0RjA5MDc2MzZFMDA0RjBFMDc5Cis6MTAyRjc5MDBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQwMjE5Cis6MTAyRjg5MDBGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODM3NDJBCis6MTAyRjk5MDAwOUYwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjU4Mzg0Cis6MTAyRkE5MDA3NDA0RjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDkxCis6MTAyRkI5MDAwRUY1ODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDFECis6MTAyRkM5MDAyNDBGRjU4MkU0MzQ3NUY1ODM3NDA3RjBFRjc1RjAwMzg3Cis6MEUyRkQ5MDBBNDI0MTBGNTgyRTQzNDc1RjU4Mzc0MDRGMDIyMEMKKzoxMDJGRTcwMEMwRTBDMDgzQzA4MkQyMjY1MzkxRUY5MDdGQUI3NDAxQkIKKzowODJGRjcwMEYwRDA4MkQwODNEMEUwMzI1QgorOjAxMkZGRjAwMzI5RgorOjEwMzAwMDAwOTA3RkI2RTAyMEUxMDJDMjNERDIzNjIwMzYwMjQxNkUwQQorOjEwMzAxMDAwMzAzRDAyNDE2RTkwODAwN0UwNjAwNEQyMzY4MDAyQzJFQgorOjEwMzAyMDAwMzYyMDM2MDI0MTJFRDIzNUU0RjUxQTkwODAwNEUwRjVDMAorOjEwMzAzMDAwMTk3NDA4MjUwRUY4QTYxOTg1MTkxOEU1MTgyMEU3MDQ1MworOjEwMzA0MDAwRDIzODgwMDJDMjM4MzAzODAyMjFENEU0RjUxNkU1MTlBRQorOjEwMzA1MDAwQjRGMDBDRDIzOTc1MDgwNDc1MDlGMDA1MEU4MDAyMDUyQworOjEwMzA2MDAwMTZFNTE5NjRGNzcwM0RDMjM5RTUwRTI0RkU2MDE3MTRBOQorOjEwMzA3MDAwNjAyMjI0MDM3MDI5NzUwODA1NzUwOUY3RTRGNTBBRjUzRgorOjEwMzA4MDAwMEI3NTBFMDQ4MDIwNzUwODA2NzUwQUY3RTRGNTBCNzVCQworOjEwMzA5MDAwMEUwNDgwMTI3NTA4MDc3NTBCRjc3NTBFMDQ4MDA3MTI3MQorOjEwMzBBMDAwNEREQTgwMDIwNTE2RTUxOTU0Rjg2NEY4NzAzQkMyMzUxNAorOjEwMzBCMDAwRTUxOTI0MDc2MDBDMjRGQzYwMDgyNDA1MjRGODUwMDY1OAorOjEwMzBDMDAwODAwOEQyM0E4MDA2QzIzQTgwMDJEMjNBNzUxQTAxMjBBQworOjEwMzBEMDAwM0ExOTkwN0U4MDc0MEZGMEEzRTUxOUYwRTRBM0YwQTNGMQorOjEwMzBFMDAwRjA5MDdGQjc3NDA0RjA4MDAyMDUxNjIwMzk2REU1MTk2MQorOjEwMzBGMDAwNjRGNzYwNjdFNTFBNzA2M0U1MTg1NEYwNjRGMDcwNTk3RQorOjEwMzEwMDAwODUxODE5RjUwRUU1MTkyNDBGNjAxQjI0RkU2MDE3MjQ5RAorOjEwMzExMDAwRkQ2MDIyMTQ2MDFGMjQwNTcwMkY3NTA4MDMwNTBFODVCRAorOjEwMzEyMDAwMTgwOUQyMzc4MDI4NzUwODAyMDUwRTg1MTgwOTc1MTQwQworOjEwMzEzMDAwMDFEMjM3ODAxOTc1MDgwNTA1MEU4NTE4MDlFNEY1MEFDRQorOjEwMzE0MDAwRjUwQjc1MEUwM0QyMzc4MDA1MTI0RERBQzIzNTMwMzVENgorOjEwMzE1MDAwMEE4NTA4MTM4NTE4MTI4MDAyMDUxNjg1MTgxOUU1MTZDOAorOjEwMzE2MDAwNjQwNDcwNjJGNTBFRTUxOTU0RjBGNTE5RjUxNTg1MTgyQgorOjEwMzE3MDAwMTlFNTE1MjQ3MDYwMTgyNEYwNjAxNDI0RjA2MDEwMjQwMAorOjEwMzE4MDAwRjA2MDFFMjRGMDYwMUEyNEYwNjAwNDI0NjA3MDI3RTVDQgorOjEwMzE5MDAwMTVDNDU0MEZGNTE5RjUwODA1MEU4NTE4MDlEMjM3ODBBNgorOjEwMzFBMDAwMUFFNTE1QzQ1NDBGRjUxOUY1MDgwNTBFODUxODA5NzVBQgorOjEwMzFCMDAwMTQwMUQyMzc4MDA1MTI0RERBQzIzNTMwMzUwQTg1MTkyRgorOjEwMzFDMDAwMTM4NTE4MTI4MDAyMDUxNkU1MTZEMzk0MDU0MDU3MTI5MAorOjEwMzFEMDAwNEREQTgwNTIzMDM5MTdFNTBFNzAwQTg1MDgwOTc1MDhGNgorOjEwMzFFMDAwMDQwNTBFODA0MTc0MDgyNTBFRjhBNjE5ODAzODIwMzc5MgorOjEwMzFGMDAwMkFFNTBFQjQwMTBGODUwODBBODUwOTBCODUxMzA4ODU5OQorOjEwMzIwMDAwMTIwOTc1MEUwNEU1MTRCNDAxMUM4NTA4MEFFNEY1MEJENworOjEwMzIxMDAwODUxMzA4ODUxMjA5NzUwRTA0ODAwQkU1MTRCNDAxMDZBOAorOjEwMzIyMDAwRTRGNTBCNzUwRTA0RTRGNTFBMzAzNTAyMDUwRUU1MEVEMworOjEwMzIzMDAwRDM5NDAzNTAwMjAxMEJDMjM3RTRGNTBFRjUxMEMyMzZFOQorOjEwMzI0MDAwRDIzREY1MTQ3NDA4MjUxMEY4RTZGRjc0ODAyNTEwRjVCQQorOjEwMzI1MDAwODJFNDM0N0VGNTgzRUZGMDc0MDgyNTEwRjhFNEY2MDU3NworOjBGMzI2MDAwMTBFNTEwQjQwNERFOTA3RkI3NzQwNEYwMDEwQjIyNjgKKzoxMDMyNkYwMDkwNzYxOEUwRkY2NDA1NzA0MjkwNzVBQkUwQjQwMTE5RDkKKzoxMDMyN0YwMDkwNzIzNzc0MDFGMEU0OTA4MDIwRjA5MDgwMzFGMDkwREMKKzoxMDMyOEYwMDgwMjhGMDkwODAzOUYwODAyMkU0OTA3MjM3RjA5MDc1QUEKKzoxMDMyOUYwMEFERTA5MDcyMkJGMEUwMjQ4MEYwRTA5MDgwMjBGMDkwNzEKKzoxMDMyQUYwMDgwMzFGMDkwODAyOEYwOTA4MDM5RjBFRjY0MDY2MDAyNTIKKzoxMDMyQkYwMDgxOTk5MDcyMzk3NDA0RjA5MDcyMzlFMEZGMjRGRTkwNzYKKzoxMDMyQ0YwMDcyMDRGMEVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1QkYKKzoxMDMyREYwMDgzRTA2NDAxNzA1NDkwNzIzNjA0RjA5MDcyMDRFMEZGNDIKKzoxMDMyRUYwMDI0RkQ2MDI4MjRGRTYwMjQyNDAzMjRGQjUwMDQ2MDFDNkEKKzoxMDMyRkYwMDgxOEM3NDIwMkZGNTgyRTQzNDgwRjU4M0U0RjA3NDI4RjgKKzoxMDMzMEYwMDJGRjU4MkU0MzQ4MEY1ODNFNEYwODE4QzkwNzIwNEUwMzEKKzoxMDMzMUYwMEZGMjQzMEY1ODJFNDM0ODBGNTgzRTRGMDc0MzgyRkY1MjAKKzoxMDMzMkYwMDgyRTQzNDgwRjU4M0U0RjA4MThDRTQ5MDcyMzZGMDkwN0YKKzoxMDMzM0YwMDcyMzlFMDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzOTMKKzoxMDMzNEYwMEUwRkY3RTAwOTA3NTBDRUVGMEEzRUZGMDcwMDY5MDcyMjgKKzoxMDMzNUYwMDAyNzQzQkYwOTA3NTBDRTBGRUEzRTBGRjY0ODA0RTcwQUEKKzoxMDMzNkYwMDA0OTA3MjAyRjBFRjRFNzAwMjgxMzVFRjY0ODA0RTcwNjAKKzoxMDMzN0YwMDAyODEzNUVGRjhFNDkwNzUwREYwRTg5MDc1MENGMDkwNDAKKzoxMDMzOEYwMDcyMzRFMDc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzNDkKKzoxMDMzOUYwMEUwRkY5MDcyMDJGMDkwNzUwREUwMkZGMDkwNzUwQ0UwNDkKKzoxMDMzQUYwMDM0MDBGMEUwRkVBM0UwRkZFNEZDRkQ3QkQ2N0FBNUY5NDQKKzoxMDMzQkYwMEY4RDMxMjM3OTU0MDBBOTA3NTBDNzRBNUYwQTM3NEQ2MDQKKzoxMDMzQ0YwMEYwOTA3NTBERTAyNDJBRjA5MDc1MENFMDM0NUFGMEUwN0YKKzoxMDMzREYwMEZFQTNFMDc4MDVDRUEyRTcxM0NFMTNEOEY4RkY5MDc1QzEKKzoxMDMzRUYwMDBDRUVGMEEzRUZGMDkwNzIyQ0VFRjBBM0VGRjBEMzk0NkQKKzoxMDMzRkYwMEQyRUU2NDgwOTQ4MjQwMEE5MDcyMkM3NDAyRjBBMzc0MEYKKzoxMDM0MEYwMEQyRjBDMzkwNzIyQ0UwNjQ4MDk0ODA1MDA0RTRGMEEzNTcKKzoxMDM0MUYwMEYwOTA3MjJDRTBGRUEzRTAyNDNBRjU4MkVFMzQ3MkY1QzAKKzoxMDM0MkYwMDgzRTA5MDcyMDJGMDkwNzIwNEUwRkYyNEZENjAyRDI0N0YKKzoxMDM0M0YwMEZFNjAyOTI0MDMyNEZCNTAwNDYwMjE4MDQwOTA3MjAyMTcKKzoxMDM0NEYwMEUwRkU3NDIwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDI4Q0IKKzoxMDM0NUYwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwODAyMTkwNzIwMkUwNDQKKzoxMDM0NkYwMEZGOTA3MjA0RTBGRTI0MzBGNTgyRTQzNDgwRjU4M0VGQTAKKzoxMDM0N0YwMEYwNzQzODJFRjU4MkU0MzQ4MEY1ODNFRkYwOTA3MjM5RDIKKzowQjM0OEYwMEUwMDRGMEUwNjQwQTYwMDI0MUM3MjI4NAorOjEwMzQ5QTAwOTA3NjE4RTBGRkI0MDUyMzkwNzIzN0UwNzAxRDkwNzU5RQorOjEwMzRBQTAwQURFMDkwNzIyQkYwRTAyNDgwRjBFMDkwODAyMEYwOTA2NAorOjEwMzRCQTAwODAzMUYwOTA4MDI4RjA5MDgwMzlGMEVGNjQwNjYwMDI0NQorOjEwMzRDQTAwQzE5MTkwNzIzNkUwNjAwMkMxOTE5MDc2NDBFMDcwMzEwRAorOjEwMzREQTAwOTA3MjAzNzQwM0YwOTA3MjAzRTBGRjc1RjAwQUE0MjQ1QgorOjEwMzRFQTAwQUFGNTgyRTQzNDc1RjU4M0UwRkU5MDcyMjlFMEZERUVEOAorOjEwMzRGQTAwNkQ2MDBFRUZDMzk0MEE1MDA4OTA3MjAzRTAwNEYwODBFNgorOjEwMzUwQTAwRDU5MDcyMzk3NDA0RjA5MDc2NDBFMDcwMDg5MDcyMDM5NgorOjEwMzUxQTAwRTA5MDcyMzlGMDkwNzIzOUUwRkQyNEZFOTA3MjJBRjA0MAorOjEwMzUyQTAwRUQ3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0UwRkY2NQorOjEwMzUzQTAwN0UwMDkwNzUwQ0VFRjBBM0VGRjA3MDA2OTA3MjAyNzRBNAorOjEwMzU0QTAwODBGMDkwNzUwQ0UwRkVBM0UwRkY2NDgwNEU3MDA0OTA1QQorOjEwMzU1QTAwNzIwMkYwRUY0RTcwMDJDMTFCRUY2NDgwNEU3MDAyQzExRQorOjEwMzU2QTAwMUJFRkY4RTQ5MDc1MERGMEU4OTA3NTBDRjBFRDc1RjAyRQorOjEwMzU3QTAwMEFBNDI0QUNGNTgyRTQzNDc1RjU4M0UwRkY5MDcyMDI2NAorOjEwMzU4QTAwRjA5MDc1MERFMDJGRjA5MDc1MENFMDM0MDBGMEUwRkUzRAorOjEwMzU5QTAwQTNFMEZGRTRGQ0ZEN0JENjdBQTVGOUY4RDMxMjM3OTVCMAorOjEwMzVBQTAwNDAwQTkwNzUwQzc0QTVGMEEzNzRENkYwOTA3NTBERTBERQorOjEwMzVCQTAwMjQyQUYwOTA3NTBDRTAzNDVBRjBFMEZFQTNFMDc4MDU3NgorOjEwMzVDQTAwQ0VBMkU3MTNDRTEzRDhGOEZGOTA3NTBDRUVGMEEzRUY1NgorOjEwMzVEQTAwRjA5MDcyMkNFRUYwQTNFRkYwRDM5NEQyRUU2NDgwOTRDNAorOjEwMzVFQTAwODI0MDBBOTA3MjJDNzQwMkYwQTM3NEQyRjBDMzkwNzJEMworOjEwMzVGQTAwMkNFMDY0ODA5NDgwNTAwNEU0RjBBM0YwOTA3MjJDRTBGNAorOjEwMzYwQTAwRkVBM0UwMjQzQUY1ODJFRTM0NzJGNTgzRTA5MDcyMDI2QQorOjEwMzYxQTAwRjA5MDcyMkFFMEZGMjRGRDYwMkQyNEZFNjAyOTI0MDMyNQorOjEwMzYyQTAwMjRGQjUwMDQ2MDIxODA0MDkwNzIwMkUwRkU3NDIwMkYzNworOjEwMzYzQTAwRjU4MkU0MzQ4MEY1ODNFRUYwNzQyODJGRjU4MkU0MzRDMQorOjEwMzY0QTAwODBGNTgzRUVGMDgwMjE5MDcyMDJFMEZGOTA3MjJBRTAwQQorOjEwMzY1QTAwRkUyNDMwRjU4MkU0MzQ4MEY1ODNFRkYwNzQzODJFRjVEOQorOjEwMzY2QTAwODJFNDM0ODBGNTgzRUZGMDkwNzY0MEUwNzAwNjkwNzI0MQorOjEwMzY3QTAwMzk3NDBBRjA5MDcyMzlFMDA0RjBFMEMzOTQwQTUwMDJGNworOjA4MzY4QTAwQTExMUU0OTA3NjQwRjAyMjRBCis6MTAzNjkyMDBCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMjM2Cis6MDkzNkEyMDBFMzIyODk4MjhBODNFNDkzMjI2OQorOjEwMzZBQjAwQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTBENAorOjEwMzZCQjAwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjIxRQorOjBEMzZDQjAwRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjIzOAorOjEwMzZEODAwQzJENUVDMzBFNzA5QjJENUU0QzM5REZERTQ5Q0ZDRUUwRAorOjEwMzZFODAwMzBFNzE1QjJENUU0QzM5RkZGRTQ5RUZFMTIzODFGQzMyRQorOjEwMzZGODAwRTQ5REZERTQ5Q0ZDODAwMzEyMzgxRjMwRDUwN0MzRTQyOQorOjA2MzcwODAwOUZGRkU0OUVGRTIyN0IKKzoxMDM3MEUwMEJCMDExMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTBGNUYwRjkKKzoxMDM3MUUwMEEzRTAyMjUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFRDYKKzoxMDM3MkUwMDBBRTkyNTgyRjhFMkY1RjAwOEUyMjJFNTgzMkFGNTgzMUMKKzowODM3M0UwMEU5OTNGNUYwQTNFOTkzMjJFMQorOjEwMzc0NjAwRTg4RkYwQTRDQzhCRjBBNDJDRkNFOThFRjBBNDJDRkMyMgorOjEwMzc1NjAwOEFGMEVEQTQyQ0ZDRUE4RUYwQTRDREE4RjA4QkYwQTRBMAorOjEwMzc2NjAwMkRDQzM4MjVGMEZERTk4RkYwQTQyQ0NEMzVGMEZDRUJGRgorOjEwMzc3NjAwOEVGMEE0RkVBOUYwRUI4RkYwQTRDRkM1RjAyRUNEMzlDNAorOjBGMzc4NjAwRkVFNDNDRkNFQUE0MkRDRTM1RjBGREU0M0NGQzIyMzEKKzoxMDM3OTUwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEVDNjQ4MEM4QUIKKzowNjM3QTUwMDY0ODA5ODQ1RjAyMjRCCis6MTAzN0FCMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMDc0Cis6MDEzN0JCMDAyMkVCCis6MEMzN0JDMDBFQ0YwQTNFREYwQTNFRUYwQTNFRkYwMjI4MAorOjEwMzdDODAwQTg4Mjg1ODNGMEQwODNEMDgyMTIzN0RGMTIzN0RGMTJDOAorOjEwMzdEODAwMzdERjEyMzdERkU0NzNFNDkzQTNDNTgzQzVGMEM1ODNFRAorOjEwMzdFODAwQzhDNTgyQzhGMEEzQzU4M0M1RjBDNTgzQzhDNTgyQzg0QgorOjAxMzdGODAwMjJBRQorOjEwMzdGOTAwRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM1RgorOjEwMzgwOTAwOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjA3MgorOjA2MzgxOTAwRUZBM0EzQTM4MERGNzIKKzoxMDM4MUYwMEJDMDAwQkJFMDAyOUVGOERGMDg0RkZBREYwMjJFNENDOEQKKzoxMDM4MkYwMEY4NzVGMDA4RUYyRkZGRUUzM0ZFRUMzM0ZDRUU5REVDNTYKKzoxMDM4M0YwMDk4NDAwNUZDRUU5REZFMEZENUYwRTlFNENFRkQyMkVEOUMKKzoxMDM4NEYwMEY4RjVGMEVFODQyMEQyMUNGRUFERjA3NUYwMDhFRjJGRTYKKzoxMDM4NUYwMEZGRUQzM0ZENDAwNzk4NTAwNkQ1RjBGMjIyQzM5OEZERDcKKzowNTM4NkYwMDBGRDVGMEVBMjI3NAorOjEwMzg3NDAwRTQ5MDc2MjlGMDkwNzYyOUUwRkY3NUYwMEZBNDI0NDJCNQorOjEwMzg4NDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkRBNworOjEwMzg5NDAwNjAwRUVGQzM5NDA2NTAwODkwNzYyOUUwMDRGMDgwRDVCQQorOjEwMzhBNDAwRUZCNDA2MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMEYwNgorOjEwMzhCNDAwQTQyNDQxRjU4MkU0MzQ3NUY1ODNFMDkwNzYyQUYwMjQ1QgorOjEwMzhDNDAwQkY3MDAyNDE0MTI0RTA3MDAyNDExMjI0MjE2MDAyNDE5MAorOjEwMzhENDAwM0E5MDdGRTlFMDI0RkU2MDdEMTQ3MDAyMjFCMjI0MDI1NAorOjEwMzhFNDAwNjAwMjQxMEExMjE3NTE5MDc2NDJFMEZDQTNFMEZEQTM2NgorOjEwMzhGNDAwRTBGRUEzRTBGRjkwNzYyOUUwNzVGMDBGQTQyNDQzRjVFMQorOjEwMzkwNDAwODJFNDM0NzVGNTgzMTIzN0JDOTA3NjE5RTBGRkI0MDE3NAorOjEwMzkxNDAwMTI5MDc2N0M3NDY3RjA5MDc2N0Q3NDA2RjA5MDc2N0VEMworOjEwMzkyNDAwNzQwQkYwRUZCNDAyMEZFNDkwNzY3Q0YwOTA3NjdERjBBNworOjEwMzkzNDAwOTA3NjdFNzQwQ0YwRUZCNDAzMEZFNDkwNzY3Q0YwOTBGNAorOjEwMzk0NDAwNzY3REYwOTA3NjdFNzQxOEYwOTA3NjFBNzQwMUYwMTJGOQorOjEwMzk1NDAwM0U5RjEyMTgwMDIyOTA3RUMyRTBGRkU0RkNGREZFRkJCNQorOjEwMzk2NDAwRkE3OTAxRjgxMjM3NDZDOEVDQzhDOUVEQzlDQUVFQ0FEQgorOjEwMzk3NDAwQ0JFRkNCOTA3RUMxRTBGRUU0RkNGRDJCRkJFQTNFRkFFQworOjEwMzk4NDAwRUQzOUY5RUMzOEY4OTA3RUMwRTBGRkU0RkVFQjJGRkY1MAorOjEwMzk5NDAwRUUzQUZFRUQzOUZERUMzOEZDOTA3NjI5RTA3NUYwMEYzNworOjEwMzlBNDAwQTQyNDQ3RjU4MkU0MzQ3NUY1ODMxMjM3QkMyMjkwN0U1MworOjEwMzlCNDAwQzJFMEZGRTRGQ0ZERkVGQkZBNzkwMUY4MTIzNzQ2QzhDOQorOjEwMzlDNDAwRUNDOEM5RURDOUNBRUVDQUNCRUZDQjkwN0VDMUUwRkUwQworOjEwMzlENDAwRTRGQ0ZEMkJGQkVBM0VGQUVEMzlGOUVDMzhGODkwN0U3NQorOjEwMzlFNDAwQzBFMEZGRTRGRUVCMkZGRkVFM0FGRUVEMzlGREVDMzhDQworOjEwMzlGNDAwRkM5MDc2MjlFMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzUyRAorOjEwM0EwNDAwRjU4MzEyMzdCQzIyOTA3RkI0RTA0NDAxRjAyMjkwN0YwQQorOjEwM0ExNDAwRTlFMDE0NzAxOTkwN0VDMEUwRkY5MDc2MjlFMDc1RjAxQgorOjEwM0EyNDAwMEZBNDI0NEZGNTgyRTQzNDc1RjU4M0VGRjAyMjkwN0ZFMAorOjBFM0EzNDAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjlGCis6MTAzQTQyMDBFNDkwNzYzNUYwOTA3NjM1RTBGRkMzOTQwMzQwMDI0MTZFCis6MTAzQTUyMDBGRkVGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUY1ODNFRjJBCis6MTAzQTYyMDBGMEVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFNDMzCis6MTAzQTcyMDBGMEVGNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODM3NDkyCis6MTAzQTgyMDBGMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4MzA1Cis6MTAzQTkyMDA3NEZGRjBFRjc1RjAwQUE0MjRBRUY1ODJFNDM0NzVGNUY0Cis6MTAzQUEyMDA4M0U0RjBFRjc1RjAwQUE0MjRBRkY1ODJFNDM0NzVGNUVGCis6MTAzQUIyMDA4Mzc0ODBGMEVGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUMzCis6MTAzQUMyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUNECis6MTAzQUQyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUJDCis6MTAzQUUyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUFCCis6MTAzQUYyMDBGNTgzNzQwMUYwOTA3NjM1RTAwNEYwNDE0NzkwNzYzQzBFCis6MTAzQjAyMDA3NDBBRjBFNEEzRjA5MDc2MzU3NDAzRjA5MDc2M0NFMDBBCis6MTAzQjEyMDBGRjkwNzYzNUUwRkVDMzlGNDAwMjYxRDI5MDc2M0RFMDkxCis6MTAzQjIyMDBGRjA0RjBFRTc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNUQ4Cis6MTAzQjMyMDA4M0VGRjBFRTc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTU4Cis6MTAzQjQyMDA4M0U0RjBFRTc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTUyCis6MTAzQjUyMDA4Mzc0NUVGMEVFNzVGMDBBQTQyNEFERjU4MkU0MzQ3NTQ4Cis6MTAzQjYyMDBGNTgzNzRCQUYwRUU3NUYwMEFBNDI0QUVGNTgyRTQzNDVCCis6MTAzQjcyMDA3NUY1ODM3NDA1RjBFRTc1RjAwQUE0MjRBRkY1ODJFNEJFCis6MTAzQjgyMDAzNDc1RjU4Mzc0ODBGMEVFNzVGMDBBQTQyNEIwRjU4MkUyCis6MTAzQjkyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIxRjU4MkZECis6MTAzQkEyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIyRjU4MkVDCis6MTAzQkIyMDBFNDM0NzVGNTgzNzQxNUYwRUU3NUYwMEFBNDI0QjNGNUI4Cis6MTAzQkMyMDA4MkU0MzQ3NUY1ODNFNEYwOTA3NjM1RTAwNEYwNjEwRTFBCis6MDEzQkQyMDAyMkQwCis6MTAzQkQzMDBFNDkwNzYzNkYwRTBGQjc1RjAwRkE0MjQ0MUY1ODJFNDFGCis6MTAzQkUzMDAzNDc1RjU4Mzc0NDBGMEVCNzVGMDBGQTQyNDQyRjU4MjJECis6MTAzQkYzMDBFNDM0NzVGNTgzNzQwQUYwRUI3NUYwMEZBNDI0NDNGNUYwCis6MTAzQzAzMDA4MkU0MzQ3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMEQ5Cis6MTAzQzEzMDAwRkE0MjQ0N0Y1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMEY2Cis6MTAzQzIzMDBBQzQ0RUI3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0IzCis6MTAzQzMzMDAxMjM3QzgwMDAxNzcwMDkwNzYzNkUwMDRGMEUwRkI3NTk4Cis6MTAzQzQzMDBGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQwRjBFQjVFCis6MTAzQzUzMDA3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0OENGMDc3Cis6MTAzQzYzMDBFQjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzMTIzNzIyCis6MTAzQzczMDBDODAwMDBBQzQ0RUI3NUYwMEZBNDI0NDdGNTgyRTQzNDhDCis6MTAzQzgzMDA3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMDBGQTQyNDFDCis6MTAzQzkzMDA0QkY1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMTc3MDA5MDQxCis6MTAzQ0EzMDA3NjM2RTAwNEYwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNERBCis6MTAzQ0IzMDAzNDc1RjU4Mzc0NDBGMEVGNzVGMDBGQTQyNDQyRjU4MjU4Cis6MTAzQ0MzMDBFNDM0NzVGNTgzNzQ4RkYwOTA3NjM2RTAwNEYwRTBGRjBBCis6MTAzQ0QzMDA3NUYwMEZBNDI0NDFGNTgyRTQzNDc1RjU4Mzc0NDFGMDQzCis6MTAzQ0UzMDBFRjc1RjAwRkE0MjQ0MkY1ODJFNDM0NzVGNTgzNzQ4NEYwCis6MTAzQ0YzMDBGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTcwCis6MTAzRDAzMDA4MkU0MzQ3NUY1ODM3NDYxRjBFRjc1RjAwRkE0MjQ0MkY3Cis6MTAzRDEzMDBGNTgyRTQzNDc1RjU4Mzc0ODFGMDkwNzYzNkUwMDRGMDJGCis6MTAzRDIzMDBFMEZGNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQ0Cis6MTAzRDMzMDA2MUYwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4MzQ2Cis6MDQzRDQzMDA3NDAxRjAyMkY1Cis6MTAzRDQ3MDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMEY2Cis6MTAzRDU3MDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkIxCis6MTAzRDY3MDBDMEUwOTA3RkEyRTA5MDc2N0ZGMDkwN0Y3NEUwOTA3NjNECis6MTAzRDc3MDA4N0YwOTA3Rjc1RTA5MDc2ODhGMDkwN0Y5OEUwNDQwMjE2Cis6MTAzRDg3MDBGMDkwNzY5NkUwRkYyMEUxMEM0NDAyRjA5MDgwMDNGMDdCCis6MTAzRDk3MDBEMjMyMTI0QjI4OTA3NjdGRTAyMEUyNTA5MDc2ODdFMDZGCis6MTAzREE3MDBGRUEzRTA3QzAwMjQwMEY1MzRFQzNFRjUzMzkwNzY5OEQyCis6MTAzREI3MDBFMEZEQUUzM0FGMzQxMjM2RDg5MDc2ODdFRkYwRDIyRkNFCis6MTAzREM3MDAzMDMxMjkyMDNGMjZDMjMxOTA3Rjk0RTA1NENGRjA5MEM0Cis6MTAzREQ3MDA3RjlBRTAzMEU0MDREMjJEQzIyQzkwN0Y5QUUwMjBFNTUwCis6MTAzREU3MDAwNEMyMkREMjJDOTA3Rjk0RTA0NDMwRjAxMjQ4QkQxMkNCCis6MTAzREY3MDAxQjA0MzAyRjEyMTI0MjFGQzIyRjc1RTgwMTEyMTY4QUI4Cis6MTAzRTA3MDA3NUU4MEREMjJCODAwNTc1RTgwMUMyMkIyMDJCMzQ5MDY1Cis6MTAzRTE3MDA3NjE5RTBGRkI0MDEwRTkwNzY3Qzc0NjdGMEEzNzQwNjAwCis6MTAzRTI3MDBGMEEzNzQwQkYwRUZCNDAyMEI5MDc2N0NFNEYwQTNGMEYwCis6MTAzRTM3MDBBMzc0MENGMEVGQjQwMzBCOTA3NjdDRTRGMEEzRjBBMzJCCis6MTAzRTQ3MDA3NDE4RjA3NUNBRDM3NUNCRkVEMkNBMzAzNDA0QzIzNEE1Cis6MTAzRTU3MDA4MDAyRDIzNDMwMzQwRDkwNzY4OUUwQzM5NDAzNDAwNDU1Cis6MTAzRTY3MDBFMDI0RkRGMDUzOTFFRjkwN0ZBQjc0MDJGMEYwOTA3RjY4Cis6MTAzRTc3MDA5OEUwNTRGREYwRDBFMEZGRDBFMEZFRDBFMEZERDBFMEM4Cis6MTAzRTg3MDBGQ0QwRTBGQkQwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMDE5Cis6MDgzRTk3MDA4MkQwODNEMEYwRDBFMDMyQUMKKzoxMDNFOUYwMDkwNzY5MkUwMTQ2MDFEMTQ3MDAyRTE1NDI0MDI2MDAyQzcKKzoxMDNFQUYwMEUxRTQ5MDc2OTQ3NDAxRjA5MDgwMDBGMEU0OTA3NjhFQzcKKzoxMDNFQkYwMEYwRDIzMTIyOTA3NjE5RTBGRkI0MDExQkU0OTA3RkYyMkIKKzoxMDNFQ0YwMEYwOTA3RkYzNzQzMEYwOTA3RkZGNzRGQ0YwOTA3Njk3NTIKKzoxMDNFREYwMEUwNTRGREYwNTRGQkYwRUZCNDAyMUJFNDkwN0ZGMkYwREUKKzoxMDNFRUYwMDkwN0ZGMzc0MzRGMDkwN0ZGRjc0RkNGMDkwNzY5N0UwM0UKKzoxMDNFRkYwMDQ0MDJGMDU0RkJGMEVGQjQwMzE4RTQ5MDdGRjJGMDkwMUIKKzoxMDNGMEYwMDdGRjM3NDY0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDQ0MzkKKzoxMDNGMUYwMDA0RjA5MDc2OTRFMDQ0MDFGMDkwODAwMEYwMzAzRjA5NzcKKzoxMDNGMkYwMDkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwOEEKKzoxMDNGM0YwMDkwNzY5N0UwOTA4MDAyRjA5MDc2OTg3NDA0RjA5MDc2RTcKKzoxMDNGNEYwMDhFNzQwMUYwMjI5MDc2MTlFMEZGQjQwMTFCRTQ5MDdGOEMKKzoxMDNGNUYwMEYyRjA5MDdGRjM3NDQ0RjA5MDdGRkY3NEZDRjA5MDc2NTIKKzoxMDNGNkYwMDk3RTA1NEZERjA1NEZCRjBFRkI0MDIxQkU0OTA3RkYyQTYKKzoxMDNGN0YwMEYwOTA3RkYzNzQ0Q0YwOTA3RkZGNzRGQ0YwOTA3Njk3ODUKKzoxMDNGOEYwMEUwNDQwMkYwNTRGQkYwRUZCNDAzMThFNDkwN0ZGMkYwM0EKKzoxMDNGOUYwMDkwN0ZGMzc0OTRGMDkwN0ZGRjc0RkNGMDkwNzY5N0UwMkQKKzoxMDNGQUYwMDQ0MDRGMDkwNzY5NEUwNTRGRUYwOTA4MDAwRjAzMDNGOUYKKzoxMDNGQkYwMDA5OTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRTEKKzoxMDNGQ0YwMEYwOTA3Njk3RTA5MDgwMDJGMDkwNzY5ODc0MDZGMDkwREIKKzowNjNGREYwMDc2OEU3NDAyRjAyMjUwCis6MTAzRkU1MDA5MDdGRUFFMDkwNzY4MkYwRTQ5MDc2OTFGMDkwNzY5Mjc4Cis6MEIzRkY1MDBGMDkwNzY5MEYwOTA3NjkzRjBEMzIyQ0QKKzoxMDQwMDAwMEU1MTFEMzk0MDA1MDAyMjEwNjkwNzY4OUUwQzM5NDA4MEMKKzoxMDQwMTAwMDQwMDIyMTA2NzQ0MDI1MEZGNTgyRTQzNDdFRjU4M0UwRUEKKzoxMDQwMjAwMEY1MTdFNTBENjAwRTkwODAwNUU1MTdGMDkwNzY4OUUwQjQKKzoxMDQwMzAwMDA0RjAwMURBRTUxNzEyMzdGOTQwQzEwMjQwNjcwNTQwODQKKzoxMDQwNDAwMDdBMDY0MDk4MDc0MEMxMEM0MEMxMEQ0MEM3MEY0MENCRDUKKzoxMDQwNTAwMEY2NDBDQkY4NDBDQkZBNDBDQkZCNDBDQkZDNDBDQkZFNEMKKzoxMDQwNjAwMDQwQ0JGRjAwMDA0MERBOTA3RTQxRTA5MDgwMDVGMDkwNjgKKzoxMDQwNzAwMDc2ODlFMDA0RjA3NTExMDE4MDYwOTA3RTQxRTA5MDgwQzcKKzoxMDQwODAwMDA1RjA5MDdFNDJFMDkwODAwNUYwOTA3Njg5RTAwNEYwQTMKKzoxMDQwOTAwMEUwMDRGMDc1MTEwMTgwNDI5MDdFNDFFMDkwODAwNUYwQ0YKKzoxMDQwQTAwMDkwN0U0MkUwOTA4MDA1RjA5MDdFNDNFMDkwODAwNUYwQTUKKzoxMDQwQjAwMDkwNzY4OUUwMDRGMEUwMDRGMEUwMDRGMDc1MTEwMTgwRUUKKzoxMDQwQzAwMDE5RDIzQkQyM0M4MDEzRDIzQjgwMEY5MDgwMDVFNTE3N0MKKzoxMDQwRDAwMEYwOTA3Njg5RTAwNEYwNzUxMTAxMjAzQjA0MDUwRDgwMTUKKzoxMDQwRTAwMDFGMzAzQzFDOTA3RTQxRTA5MDgwMDVGMDkwN0U0MkUwQzUKKzoxMDQwRjAwMDkwODAwNUYwOTA3Njg5RTAwNEYwRTAwNEYwNzUxMTAxRkQKKzoxMDQxMDAwMDA1MEYxNTExMDEwMEU1MTE3MDEwQzIzM0Y1MERGNTBGMDMKKzowQjQxMTAwMDkwN0ZDNzc0MDRGMEMyM0JDMjNDMjI0OQorOjEwNDExQjAwOTA3NjhERTA2NDAxNzAyNzMwMjcwOEMyMjcxMjA4MDBDMworOjEwNDEyQjAwMTIxNzRBMzAyODA4QzIyODEyMzg3NDEyMTc0QTMwMkEzQworOjEwNDEzQjAwMEVFNDkwNzY4REYwQzIyQTkwN0ZCNEUwNDQwMkYwOTBBQQorOjEwNDE0QjAwNzYzRkUwQjQwMTA1RTRGMDEyMzI2RjkwNzY0MUUwQjRCMworOjEwNDE1QjAwMDEwNUU0RjAxMjM0OUE5MDc2NDBFMEI0MDEwMzEyMzQ3NgorOjEwNDE2QjAwOUExMjMwMDAzMDMzMDMxMjQwMDA5MDdGOUJFMDIwRTQyMgorOjEwNDE3QjAwMDJDMjNGOTA3RjlCRTAzMEU0MDJEMjNGOTA3RjlCRTBGNgorOjEwNDE4QjAwMjBFNTAyQzIzRTkwN0Y5QkUwMzBFNTAyRDIzRUEyNDE4OQorOjEwNDE5QjAwMzAzRjAxQjM1MDFGQTIzRjkyNDEzMDNGMDk5MDc2OTdCOQorOjEwNDFBQjAwRTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjA5MDc2OTcwQworOjEwNDFCQjAwRTA5MDgwMDJGMDMwM0YzNDkwNzYxOUUwRkZCNDAxMEVBRQorOjEwNDFDQjAwOTA3NjdDNzQ2N0YwQTM3NDA2RjBBMzc0MEJGMEVGQjRENQorOjEwNDFEQjAwMDIwQkU0OTA3NjdDRjBBM0YwQTM3NDBDRjBFRkI0MDMyNQorOjEwNDFFQjAwMEJFNDkwNzY3Q0YwQTNGMEEzNzQxOEYwQTI0MDMwM0U2MQorOjEwNDFGQjAwMDFCMzUwMUZBMjNFOTI0MDMwM0UwOTkwNzY5NUUwNDRBOQorOjEwNDIwQjAwMDRGMDgwMDc5MDc2OTVFMDU0RkJGMDkwNzY5NUUwOTA2MworOjA0NDIxQjAwODAwMUYwMjIwQworOjEwNDIxRjAwOTA3NjE5RTA2NDAxNzAzNTkwNzY4N0UwRkZEMzk0MkQ4NgorOjEwNDIyRjAwNDAyQjkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDMxMQorOjEwNDIzRjAwOTQwRjQwMTlFNEYwRUZEMzk0MzE0MDA4OTA3NjE5NzQzRAorOjEwNDI0RjAwMDNGMDgwMDY5MDc2MTk3NDAyRjAxMjNFOUY5MDc2MTk1MworOjEwNDI1RjAwRTBCNDAyMkM5MDc2ODdFMEZGQzM5NDJGNTAyMkVGRDM2NworOjEwNDI2RjAwOTQyQTQwMUM5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBENQorOjEwNDI3RjAwRTBEMzk0MEY0MDBBRTRGMDkwNzYxOTA0RjAxMjNFOUZCOQorOjEwNDI4RjAwOTA3NjE5RTBCNDAyMjY5MDc2ODdFMEQzOTQzMTQwMURFMgorOjEwNDI5RjAwOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzk0MEY2OQorOjEwNDJBRjAwNDAwQkU0RjA5MDc2MTk3NDAzRjAxMjNFOUY5MDc2MTk0QworOjEwNDJCRjAwRTA2NDAzNzAzRjkwNzY4N0UwRkZDMzk0NUY1MDM1OTBDMgorOjEwNDJDRjAwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDM5NDBGNDA4OQorOjEwNDJERjAwMjNFNEYwRUZDMzk0MkY1MDBDRUZEMzk0MkE0MDA2OTBCMQorOjEwNDJFRjAwNzYxOTc0MDFGMEVGRDM5NDJGNDAwNjkwNzYxOTc0MDI2QgorOjEwNDJGRjAwRjAxMjNFOUY5MDc2ODZFMDcwMDU5MDc2ODVGMDIyRTQ2RQorOjA1NDMwRjAwOTA3Njg2RjAyMjBCCis6MTA0MzE0MDBFNDkwNzY5NkYwOTA4MDAzRjA5MDdGRTA3NDkwRjA5MEIzCis6MTA0MzI0MDA3RkUxNzQwNEYwRTQ5MDdGRERGMDkwN0ZBMUYwNTM4RTgwCis6MTA0MzM0MDBGODc1ODgwNTc1QjgyMDc1RjgwMTQzOEUzMEY1Qzg3NTkxCis6MTA0MzQ0MDBDQTdGNzVDQkY4NDNBODIwMTI0NTY1QzIyQ0MyMkRDMjgyCis6MTA0MzU0MDAyQkMyMkY5MDdGRkM3NERERjA5MDdGRkY3NEZGRjA5MEYwCis6MTA0MzY0MDA3Rjk3RTA0NDAxRjA5MDc2MTk3NDAxRjBFNDkwNzY4NTJCCis6MTA0Mzc0MDBGMEEzRjA5MDc2ODFGMDkwNzY4MEYwMTI0OUFFMTIwRjlGCis6MTA0Mzg0MDBDNjEyNEFGMTkwN0Y5N0UwNDQwOEYwRTA1NEI5RjBEMkE1Cis6MTA0Mzk0MDAzMDIwMzAxODEyNEFBNjEyMzAwMDEyNDAwMDEyNDIxRjc4Cis6MTA0M0E0MDAxMjQ4QkQxMjFCMDQxMjE2NjExMjQyMUYxMjRBQTZDMjAxCis6MTA0M0I0MDAyRkMyMzFDMjMyQzIzNEMyMzNDMjI5QzIyN0MyMjhFNDU2Cis6MTA0M0M0MDBGNTExOTA3Njg5RjA5MDc2M0ZGMDkwNzY0MUYwOTA3NkYyCis6MTA0M0Q0MDA0MEYwOTA3NjhBRjBBM0YwQTMwNEYwRTRBM0YwOTA3NjgyCis6MDM0M0U0MDA5OUYwMjIyQgorOjEwNDNFNzAwMTI0RTE5NDAwMjgxQUM5MDdGRUJFMDI0RkU2MDFFMTQ1MAorOjEwNDNGNzAwNjA0NjE0NjA2RTE0NzAwMjgxOUQyNDA0NjAwMjgxQTVEQQorOjEwNDQwNzAwNzQwNTkwN0ZENEYwNzQwMDkwN0ZENUYwMjI5MDdGRUFGNgorOjEwNDQxNzAwRTBGRjEyNEE1NThCMjA4QTIxODkyMkVBNDk2MDExQ0U5MgorOjEwNDQyNzAwRUFDRUVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjJBMAorOjEwNDQzNzAwOTA3RkI0RTA0NDAxRjAyMjkwN0ZFQUUwRkYxMjQ3Qjc5MworOjEwNDQ0NzAwOEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0VFRTkwN0YzRAorOjEwNDQ1NzAwRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZCNEUwNDQzRQorOjEwNDQ2NzAwMDFGMDIyOTA3RkVBRTBGRjkwN0VDMEUwRkRBM0UwRkIzMQorOjEwNDQ3NzAwMTIxNzk0OEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0U0RAorOjEwNDQ4NzAwRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZFOQorOjEwNDQ5NzAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0YyMQorOjA1NDRBNzAwQjRFMDQ0MDFGMDQ3Cis6MDE0NEFDMDAyMkVECis6MTA0NEFEMDBDMkFGRDIyNDkwN0Y5Mzc0MzBGMDkwN0Y5Qzc0QkJGMDk4Cis6MTA0NEJEMDA5MDdGOTZFMDQ0MzBGMEUwNTQzMEYwOTA3Rjk0NzQzMDZCCis6MTA0NENEMDBGMDkwN0Y5RDc0Q0ZGMDkwN0Y5Nzc0QTBGMDkwN0Y5NUMyCis6MTA0NEREMDA3NEMwRjA5MDdGOUU3NDAzRjA5MDdGOTlFMDMwRTIwOUY0Cis6MTA0NEVEMDA5MDA1MTk3NEEwRjBFNEEzRjBDMjI1QzIyMkMyMjNDMjI0Cis6MTA0NEZEMDAyNjEyNEIyODEyMkRBOTEyM0JEMzEyNDYxOTEyM0E0MkZECis6MTA0NTBEMDA5MDc2Njg3NDAxRjA3MDBGMTI0QzI5MTI0RTE1MTI0RUYwCis6MTA0NTFEMDAxNzEyMUI0MDEyMTQ5NjEyNDMxNDkwN0ZBRkUwNDQwMTAyCis6MTA0NTJEMDBGMDkwN0ZBRUUwNDQxRkYwOTA3RkFDNzRGRkYwOTA3RjcxCis6MTA0NTNEMDBBREYwOTA3RkRFRjA5MDdGREZGMDkwN0ZBQkYwOTA3RjVECis6MTA0NTREMDBBOUYwOTA3RkFBRjA1MzkxRUY0M0Q4MjBEMkU4NDNEODM5Cis6MDg0NTVEMDAyMDUzQThBMDQzQTg4MDIyMEUKKzoxMDQ1NjUwMDkwNzY5QTc0MDJGMEU0OTA3NjkxRjBBM0YwOTA3NjkwQUMKKzoxMDQ1NzUwMEYwOTA3NjkzRjA5MDc2OTY3NDAzRjA5MDgwMDNGMEU0RDMKKzoxMDQ1ODUwMDkwNzY5N0YwOTA4MDAyRjA5MDc2OTQwNEYwOTA4MDAwRjkKKzoxMDQ1OTUwMEYwRTQ5MDc2OEVGMDkwNzYxQUYwOTA3Njk1MDRGMEMyNUQKKzoxMDQ1QTUwMDJFOTA3RjlCRTBGRjU0MTBGRjcwMDJDMjNGOTA3RjlCQ0YKKzoxMDQ1QjUwMEUwRkY1NDEwRkVGRkJFMTAwMkQyM0Y5MDdGOUJFMEZGNEMKKzoxMDQ1QzUwMDU0MjBGRjcwMDJDMjNFOTA3RjlCRTBGRjU0MjBGRUZGMDcKKzoxMDQ1RDUwMEJFMjAwMkQyM0UzMDNGMDk5MDc2OTdFMDU0RkVGMDgwMkYKKzoxMDQ1RTUwMDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDkwODAwMkYwOEUKKzoxMDQ1RjUwMDMwM0UwOTkwNzY5NUUwNDQwNEYwODAwNzkwNzY5NUUwOEEKKzoxMDQ2MDUwMDU0RkJGMDkwNzY5NUUwOTA4MDAxRjBBMjNFOTI0MEEyOTYKKzowMzQ2MTUwMDNGOTI0MTkwCis6MDE0NjE4MDAyMjdGCis6MTA0NjE5MDBFNDkwNzYzNkYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNEU1Cis6MTA0NjI5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNERGCis6MTA0NjM5MDAzNDc1RjU4Mzc0MDFGMDkwNzYzNkUwMDRGMEUwRkY3NTg3Cis6MTA0NjQ5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NUMwCis6MTA0NjU5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDAyRjA5MEYxCis6MTA0NjY5MDA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNDI1Cis6MTA0Njc5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNDhGCis6MTA0Njg5MDAzNDc1RjU4Mzc0MDNGMDkwNzYzNkUwMDRGMEUwRkY3NTM1Cis6MTA0Njk5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NTcwCis6MTA0NkE5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMjBECis6MEM0NkI5MDA3ODdGRTRGNkQ4RkQ3NTgxMzgwMjQ3MDBEOAorOjEwNDZDNTAwMDIwN0E2RTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjI1RQorOjEwNDZENTAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNGNgorOjEwNDZFNTAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZDNQorOjEwNDZGNTAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMEM4RkU0N0VCQQorOjEwNDcwNTAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNCOQorOjEwNDcxNTAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTM4MAorOjEwNDcyNTAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FBQgorOjEwNDczNTAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkU2MworOjEwNDc0NTAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDFEMTQ2MDJBMTRFRAorOjEwNDc1NTAwNjAzNzE0NjA0NDI0MDQ3MDUwOTA3NjkxRTA5MDdGMDA5NworOjEwNDc2NTAwRjA5MDdGQjU3NDAxRjA4MDQ3OTA3NjkyRTA5MDdGMDBERAorOjEwNDc3NTAwRjA5MDdGQjU3NDAxRjA4MDM3OTA3NjkwRTA5MDdGMDBERgorOjEwNDc4NTAwRjA5MDdGQjU3NDAxRjA4MDI3OTA3Njg0RTA5MDdGMDBFQgorOjEwNDc5NTAwRjA5MDdGQjU3NDAxRjA4MDE3OTA3NjkzRTA5MDdGMDBEQworOjEwNDdBNTAwRjA5MDdGQjU3NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA4QworOjAyNDdCNTAwRDMyMjBECis6MDI0N0I3MDA4RjJFNDMKKzoxMDQ3QjkwMEU0RjUyRjc1MzBGRjc1MzEwNzc1MzIxQUFCMzBBQTMxMjAKKzoxMDQ3QzkwMEE5MzI5MDAwMDExMjM2QUJCNDAzMUZBRjJGMDUyRkVGQUEKKzoxMDQ3RDkwMDY1MkU3MDAxMjIxMjM2OTI3RTAwMjlGRkVFM0FDOUVGNEEKKzoxMDQ3RTkwMEM5NzUzMEZGRjUzMTg5MzI4MEQyN0IwMDdBMDA3OTAwQjIKKzowMTQ3RjkwMDIyOUQKKzowNjQ3RkEwMDEyNEIyOEMyMzEyMjFGCis6MTA0ODAwMDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMDMyCis6MTA0ODEwMDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkVECis6MTA0ODIwMDBDMEUwQzJDQUMyQ0Y5MDdGOThFMDQ0MDFGMDMwMkUwM0FFCis6MTA0ODMwMDAxMjE0QTY5MDdGOThFMDU0RkVGMDUzQThGQTEyMTY2MTY1Cis6MTA0ODQwMDBEMEUwRkZEMEUwRkVEMEUwRkREMEUwRkNEMEUwRkJEMDM3Cis6MTA0ODUwMDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwODJEMDgzRDBGMDI4Cis6MDM0ODYwMDBEMEUwMzI3MworOjEwNDg2MzAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDE3MTQ2MDIxMTRERAorOjEwNDg3MzAwNjAyQjE0NjAzMjI0MDQ3MDM4OTA3RkVBRTA5MDc2OTFDNAorOjEwNDg4MzAwRjA4MDM1OTA3RkVBRTA5MDc2OTJGMDEyM0U5RjgwMjg4OAorOjEwNDg5MzAwOTA3RkVBRTA5MDc2OTBGMDEyMTgwMDgwMUI5MDdGRUFGOAorOjEwNDhBMzAwRTA5MDc2ODRGMDgwMTE5MDdGRUFFMDkwNzY5M0YwODAzOAorOjBBNDhCMzAwMDc5MDdGQjRFMDQ0MDFGMEQzMjIyNworOjEwNDhCRDAwMzAyRDM5QzIyRDkwNzYxOUUwRkZCNDAxMERFNDkwNzZCQworOjEwNDhDRDAwN0NGMEEzNzRGOEYwQTM3NDBBRjBFRkI0MDIwREU0OTAzOQorOjEwNDhERDAwNzY3Q0YwQTM3NEYwRjBBMzc0MEJGMEVGQjQwMzBERTQ0OQorOjBENDhFRDAwOTA3NjdDRjBBMzc0RjhGMEEzNzQxN0YwMjIwRAorOjA2NDhGQTAwNTM5MUJGRDIyRDMyRTQKKzoxMDQ5MDAwMDAyMkZFNzAwMDIzRDQ3MDAwMjREQjQwMDAyNEM0MzAwNzUKKzoxMDQ5MTAwMDAyNEJFOTAwMDIyRkZGMDAwMjRDNUIwMDAyNEMwQTAwMzAKKzoxMDQ5MjAwMDAyNEM3MjAwMDI0QjVBMDAwMjRDODkwMDAyNENBMDAwNUIKKzoxMDQ5MzAwMDAyNENCNzAwMDI0Q0NFMDAwMjRDRTUwMDAyNENGQzAwRDkKKzoxMDQ5NDAwMDAyNEQxMzAwMDI0RDJBMDAwMjRENDEwMDAyNEQ1ODAwNTUKKzowODQ5NTAwMDAyNEQ2RjAwMDI0RDg2MDBDQworOjEwNDk1ODAwRTQ5MDc2MjZGMDkwNzYyNkUwRkY3NUYwMDNBNDI0MzRFMAorOjEwNDk2ODAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkRCMgorOjEwNDk3ODAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNkUwMDRGMDgwRDVDQQorOjEwNDk4ODAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDMxRgorOjEwNDk5ODAwQTQyNDMyRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwOTAyQQorOjA2NDlBODAwN0ZCNTc0MDFGMDIyNEUKKzoxMDQ5QUUwMDkwNzY0Njc0ODBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjYKKzoxMDQ5QkUwMEYwQTNGMEEzRjBBM0YwQTM3NDgwRjBFNEEzRjBBM0YwQUYKKzoxMDQ5Q0UwMEEzRjBBM0YwQTNGMEEzRjBBMzc0NDBGMEU0QTNGMEEzMkMKKzoxMDQ5REUwMDc0NDBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjBBM0YwQ0YKKzoxMDQ5RUUwMEEzNzQ0MEYwRTRBM0YwQTM3NDQwRjBFNEEzRjBBM0YwQUEKKzowNTQ5RkUwMEEzRjBBM0YwMjI2QworOjEwNEEwMzAwRTQ5MDc2MjVGMDkwNzYyNUUwRkY3NUYwMDNBNDI0MzQzNgorOjEwNEExMzAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkQwNgorOjEwNEEyMzAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNUUwMDRGMDgwRDUxRgorOjEwNEEzMzAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyOTA3RUMwRTAxQworOjEwNEE0MzAwRkVFRjc1RjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRUVBQQorOjAyNEE1MzAwRjAyMjRGCis6MTA0QTU1MDBFNEZFNzUxREZGNzUxRTA1NzUxRjEyQUIxREFBMUVBOTY3Cis6MTA0QTY1MDAxRjkwMDAwMTEyMzZBQjY0MDI3MDJGQ0RFRUNEMEVFRDE2Cis6MTA0QTc1MDA2RjcwMDEyMjkwMDAwMjEyMzcwRTg1RjAxQkY1MUM2MjQzCis6MTA0QTg1MDAxQkU1MUI2MjFDRTUxQzYyMUIyOUZERTUxQjNBQzlFREY0Cis6MTA0QTk1MDBDOTc1MURGRkY1MUU4OTFGODBDMTdCMDA3QTAwNzkwMDRECis6MDE0QUE1MDAyMkVFCis6MTA0QUE2MDBFNDkwNzY5QkYwOTA3NjlCRTBGRjA0RjBFRjYwMDhFMEUwCis6MTA0QUI2MDAyNDA4RjhFNEY2ODBFRTkwNzY5NkUwNDQwNEYwNDQwODg0Cis6MTA0QUM2MDBGMDkwODAwM0YwRTRGNTE4RDIzNUY1MEVGNTEwRDIzNkU1Cis6MTA0QUQ2MDA3NTEyMTE3NTEzMjJDMjM3QzIzOUMyMzhGNTE2RjUxNDhDCis6MEI0QUU2MDBGNTFBRjUwREMyM0JDMjNDQzIzRDIyOTgKKzoxMDRBRjEwMEU0RkY3NDU2MkZGNTgyRTQzNDc2RjU4M0UwRkU3NDI4RTIKKzoxMDRCMDEwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQ1RTJGRjU4MkU0QjQKKzoxMDRCMTEwMDM0NzZGNTgzRTBGRTc0MzgyRkY1ODJFNDM0ODBGNTgzMzIKKzowNjRCMjEwMEVFRjAwRkJGMDhDQzBFCis6MDE0QjI3MDAyMjZCCis6MTA0QjI4MDBFNDkwNzIzNkYwQTNGMDkwN0Y5N0UwNTRGQkYwRTQ5MEE1Cis6MTA0QjM4MDA3MjMzRjA5MDcyMzJGMDkwNzIwMTA0RjBFNDkwNzIzM0E0Cis6MTA0QjQ4MDBGMDkwNzIzMkYwOTA3MjAxMDRGMDkwN0Y5N0UwNDQwNDg0Cis6MDI0QjU4MDBGMDIyNDkKKzoxMDRCNUEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwMkYwODQKKzoxMDRCNkEwMDkwN0ZDN0UwRjUxMTc1MEYwMDc1MEQwMEQyMzNEMDgyMjIKKzowNTRCN0EwMEQwODNEMEUwMzIwMQorOjEwNEI3RjAwOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwNDIwNEUwNDQ2QworOjEwNEI4RjAwMDJGMDdGREM3RTA1MTI0RDlEOTA3RkQ2RTA1NEY3RjA0QQorOjA1NEI5RjAwRTA0NDA0RjAyMkQ3Cis6MTA0QkE0MDA5MDdGRUJFMDE0NzAxNDkwN0ZFOUUwMjQ3RjcwMDQxMjhFCis6MTA0QkI0MDA0OTU4MjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDRECis6MDM0QkM0MDAwMUYwMjJEQgorOjEwNEJDNzAwOTA3RkVCRTAxNDcwMTM5MDdGRTlFMDE0NzAwNDEyNEFCMQorOjEwNEJENzAwMDMyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFDNworOjAyNEJFNzAwRjAyMkJBCis6MTA0QkU5MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDEwRjA5MDA2Cis6MTA0QkY5MDA3Njk2RTA1NEZERjA5MDgwMDNGMEQwODJEMDgzRDBFMDI3Cis6MDE0QzA5MDAzMjc4Cis6MTA0QzBBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDFGMEQ0Cis6MEY0QzFBMDBDMjI5OTA3NjhENzQwMUYwRDA4MkQwODNEMEUwMzIyMQorOjEwNEMyOTAwOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMTQ3RTAwMTI1NQorOjBBNEMzOTAwNEQ5RDkwN0ZENkUwNTRGRUYwMjI1RQorOjEwNEM0MzAwQzBFMEMwODNDMDgyRDIyNTUzOTFFRjkwN0ZBQjc0MDgzQworOjA4NEM1MzAwRjBEMDgyRDA4M0QwRTAzMkUyCis6MTA0QzVCMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDFGMDg0Cis6MDc0QzZCMDBEMDgyRDA4M0QwRTAzMkJCCis6MTA0QzcyMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDJGMDZDCis6MDc0QzgyMDBEMDgyRDA4M0QwRTAzMkE0Cis6MTA0Qzg5MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDRGMDUzCis6MDc0Qzk5MDBEMDgyRDA4M0QwRTAzMjhECis6MTA0Q0EwMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDRGMDNCCis6MDc0Q0IwMDBEMDgyRDA4M0QwRTAzMjc2Cis6MTA0Q0I3MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDhGMDIxCis6MDc0Q0M3MDBEMDgyRDA4M0QwRTAzMjVGCis6MTA0Q0NFMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDhGMDA5Cis6MDc0Q0RFMDBEMDgyRDA4M0QwRTAzMjQ4Cis6MTA0Q0U1MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MTBGMEVCCis6MDc0Q0Y1MDBEMDgyRDA4M0QwRTAzMjMxCis6MTA0Q0ZDMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MTBGMEQzCis6MDc0RDBDMDBEMDgyRDA4M0QwRTAzMjE5Cis6MTA0RDEzMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MjBGMEFDCis6MDc0RDIzMDBEMDgyRDA4M0QwRTAzMjAyCis6MTA0RDJBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MjBGMDk0Cis6MDc0RDNBMDBEMDgyRDA4M0QwRTAzMkVCCis6MTA0RDQxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0NDBGMDVFCis6MDc0RDUxMDBEMDgyRDA4M0QwRTAzMkQ0Cis6MTA0RDU4MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0NDBGMDQ2Cis6MDc0RDY4MDBEMDgyRDA4M0QwRTAzMkJECis6MTA0RDZGMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0ODBGMEYwCis6MDc0RDdGMDBEMDgyRDA4M0QwRTAzMkE2Cis6MTA0RDg2MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0ODBGMEQ4Cis6MDc0RDk2MDBEMDgyRDA4M0QwRTAzMjhGCis6MTA0RDlEMDA4RTM1OEYzNkU1MzYxNTM2QUUzNTcwMDIxNTM1NEU2MENCCis6MDc0REFEMDAwNTEyMTQ4NTgwRUUyMkJGCis6MTA0REI0MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDA0RjBEMDA1Cis6MDY0REM0MDA4MkQwODNEMEUwMzIzMgorOjEwNERDQTAwOTA3NjgyRTA5MDdGMDBGMDkwN0ZCNTc0MDFGMEQzMjI1NAorOjBDNEREQTAwQzIzN0U0RjUwRUY1MTBDMjM2RjUxNDIyQzUKKzowOTRERTYwMEMyMjU1M0Q4RUY0M0Q4MjAzMjU2Cis6MDc0REVGMDA1Mzk4RkU1Mzk4RkQzMkJBCis6MDc0REY2MDA1M0MwRkU1M0MwRkQzMjYzCis6MDY0REZEMDA1MzkxN0ZEMjJDMzIxRAorOjA0NEUwMzAwNTM5MURGMzJCNgorOjA0NEUwNzAwNTNEOEY3MzI1MworOjA0NEUwQjAwMTIxNzMwMjIyOAorOjAzNEUwRjAwQzI4RDMyMUYKKzowMzRFMTIwMEMyOEYzMjFBCis6MDI0RTE1MDBEMzIyQTYKKzowMjRFMTcwMEQzMjJBNAorOjAyNEUxOTAwRDMyMkEyCis6MDI0RTFCMDBEMzIyQTAKKzowMjRFMUQwMEQzMjI5RQorOjAyNEUxRjAwRDMyMjlDCis6MDI0RTIxMDBDMzIyQUEKKzowMDAwMDAwMUZGCisvKgorU291cmNlOiBFTUk2Mk1GVy5IRVgKK1ZFUlNJT049MS4wNC4wNjIKK0RBVEU9MTYuMTAuMjAwMgorKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VtaTYyL3NwZGlmLkhFWCBiL2Zpcm13YXJlL2VtaTYyL3NwZGlmLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjJkNTBjCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZW1pNjIvc3BkaWYuSEVYCkBAIC0wLDAgKzEsMTI1NyBAQAorOjAzMDAwMDAwMDI0NUY5QkQKKzowMzAwMDMwMDAyMEZGREVDCis6MDMwMDBCMDAwMjREOUIwOAorOjAzMDAxMzAwMDIxN0ZERDQKKzowMzAwMUIwMDAyNEQ5RUY1Cis6MDMwMDIzMDAwMjRENzUxNgorOjAzMDAyQjAwMDI0NkY3OTMKKzowMzAwMzMwMDAyNEQ2QzBGCis6MDMwMDNCMDAwMjREN0NGNworOjAzMDA0MzAwMDI0OTAwNkYKKzowMzAwNEIwMDAyNEQ4RkQ0Cis6MDMwMDUzMDAwMjREODNEOAorOjAzMDA1QjAwMDI0RDg5Q0EKKzowMzAwNjMwMDAyNEQ5M0I4Cis6MTAwNTAwMDAxMjAxMTAwMTAwMDAwMDQwNkEwODExMDEwMDAxMDEwMkZGCis6MTAwNTEwMDAwMDAxMDkwMkFDMDEwMzAxMDA4MDMyMDkwNDAwMDAwMDVGCis6MTAwNTIwMDAwMTAxMDAwMDBBMjQwMTAwMDE1NjAwMDIwMTAyMEMyNDBFCis6MTAwNTMwMDAwMjAxMDEwMTAwMDIwMDAwMDAwMDBEMjQwNjA1MDEwMjc1Cis6MTAwNTQwMDAwMzAwMDAwMDAwMDAwMDA5MjQwMzAyMDQwMzAwMDUwMDZBCis6MTAwNTUwMDAwQzI0MDIwMzA1MDIwMDA2MDAwMDAwMDAxNTI0MDYwNjE0Cis6MTAwNTYwMDAwMzAyMDAwMDAzMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDc0Cis6MTAwNTcwMDAwMDA5MjQwMzA0MDEwMTAwMDYwMDA5MDQwMTAwMDAwMTMwCis6MTAwNTgwMDAwMjAwMDAwOTA0MDEwMTAyMDEwMjAwMDAwNzI0MDEwMTI4Cis6MTAwNTkwMDAwMDAxMDAxMTI0MDIwMTAyMDIxMDAzNDRBQzAwODBCQkUwCis6MTAwNUEwMDAwMDAwNzcwMTA5MDUwQTA1ODQwMTAxMDA4RjA3MjUwMTc0Cis6MTAwNUIwMDAwMTAwMDAwMDA5MDU4RjAxMDMwMDAxMDUwMDA5MDQwMTg1Cis6MTAwNUMwMDAwMjAyMDEwMjAwMDAwNzI0MDEwMTAwMDEwMDExMjQwMkJGCis6MTAwNUQwMDAwMTAyMDMxODAzNDRBQzAwODBCQjAwMDA3NzAxMDkwNTQ5Cis6MTAwNUUwMDAwQTA1NDYwMjAxMDA4RjA3MjUwMTAxMDAwMDAwMDkwNUU4Cis6MTAwNUYwMDA4RjAxMDMwMDAxMDUwMDA5MDQwMjAwMDAwMTAyMDAwMDUwCis6MTAwNjAwMDAwOTA0MDIwMTAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMEE1Cis6MTAwNjEwMDAwRTI0MDIwMTA2MDIxMDAyNDRBQzAwODBCQjAwMDkwNTUyCis6MTAwNjIwMDA4QzA1NEMwMjAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNEFFCis6MTAwNjMwMDAwMjAyMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMEUyNDRGCis6MTAwNjQwMDAwMjAxMDYwMzE4MDI0NEFDMDA4MEJCMDAwOTA1OEMwNUJBCis6MTAwNjUwMDA3MjAzMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MDIwM0UzCis6MTAwNjYwMDAwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDIwMTFECis6MTAwNjcwMDAwMjAyMTAwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU4QzI2Cis6MTAwNjgwMDAwNTg0MDEwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDQwMkExCis6MTAwNjkwMDAwNDAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDExMjQwMkVBCis6MTAwNkEwMDAwMTAyMDMxODAzNDRBQzAwODBCQjAwMDA3NzAxMDkwNTc4Cis6MTAwNkIwMDA4QzA1NDYwMjAxMDAwMDA3MjUwMTAwMDIwMDAwMDQwMzJBCis6MTAwNkMwMDAwOTA0MTgwMzQ1MDA2RDAwNjEwMDY3MDA2OTAwNjMwMEJDCis6MTAwNkQwMDAyMDAwNDcwMDZEMDA2MjAwNDgwMDIyMDM0NTAwNkQwMEM1Cis6MTAwNkUwMDA2MTAwNjcwMDY5MDA2MzAwMjAwMDQ1MDA0RDAwNDkwMDdCCis6MTAwNkYwMDAyMDAwMzYwMDdDMDAzMjAwMjAwMDZEMDAyQTAzNDMwMEY5Cis6MTAwNzAwMDA2RjAwNkUwMDY2MDA2OTAwNjcwMDc1MDA3MjAwNjEwMDhFCis6MTAwNzEwMDA3NDAwNjkwMDZGMDA2RTAwMjAwMDUzMDA3NDAwNzIwMEM2Cis6MTAwNzIwMDA2OTAwNkUwMDY3MDAyMjAzNDkwMDZFMDA3NDAwNjUwMEQ2Cis6MTAwNzMwMDA3MjAwNjYwMDYxMDA2MzAwNjUwMDIwMDA1MzAwNzQwMEQxCis6MEEwNzQwMDA3MjAwNjkwMDZFMDA2NzAwMDAwMEZGCis6MTAwNzRBMDA5MDc2OUE3NDAyRjBFNDkwNzY5MUYwQTNGMDkwNzY5MDA1Cis6MTAwNzVBMDBGMDkwNzY5M0YwOTA3Njk2NzQwM0YwOTA4MDAzRjBFNDJDCis6MTAwNzZBMDA5MDc2OTdGMDkwODAwMkYwOTA3Njk0MDRGMDkwODAwMDUyCis6MTAwNzdBMDBGMEU0OTA3NjhFRjA5MDc2MUFGMDkwNzY5NTA0RjBDMkI2Cis6MTAwNzhBMDAyRTkwN0Y5QkUwRkY1NDEwRkY3MDAyQzIzRjkwN0Y5QjI4Cis6MTAwNzlBMDBFMEZGNTQxMEZFRkZCRTEwMDJEMjNGOTA3RjlCRTBGRkE1Cis6MTAwN0FBMDA1NDIwRkY3MDAyQzIzRTkwN0Y5QkUwRkY1NDIwRkVGRjYwCis6MTAwN0JBMDBCRTIwMDJEMjNFMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDg4Cis6MTAwN0NBMDAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDJGMEU3Cis6MTAwN0RBMDAzMDNFMDk5MDc2OTVFMDQ0MDRGMDgwMDc5MDc2OTVFMEUzCis6MTAwN0VBMDA1NEZCRjA5MDc2OTVFMDkwODAwMUYwQTIzRTkyNDBBMkYwCis6MDMwN0ZBMDAzRjkyNDFFQQorOjAxMDdGRDAwMjJEOQorOjAyMDdGRTAwRDMyMjA0Cis6MTAwODAwMDBFNDkwNzYzMUYwOTA3NjMxRTBGRjc1RjAwM0E0MjQwRjg4Cis6MTAwODEwMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRURFMEZERUU2RDRBCis6MTAwODIwMDA2MDBFRUZDMzk0MEI1MDA4OTA3NjMxRTAwNEYwODBENTUxCis6MTAwODMwMDBFRkI0MEIwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwM0IxCis6MTAwODQwMDBBNDI0MEVGNTgyRTQzNDc1RjU4M0UwOTA3NjMzRjAyNDI5Cis6MTAwODUwMDBGMDYwMEEyNDBFNjAwMjgxODcxMjRCM0UyMjkwN0ZFREU5Cis6MTAwODYwMDBFMDY0MDU3MDUxOTA3NjE4NzQwNUYwOTA3NjM3NzQwMTQ1Cis6MTAwODcwMDBGMDkwNzYzOTc0MDNGMDkwNzYyMUYwRTQ5MDc2MjBGMEQxCis6MTAwODgwMDA5MDdGRUFFMEY0NjAyRjkwNzYyMEUwRkY3NUYwMEFBNEY0Cis6MTAwODkwMDAyNEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVBRTBGRDVBCis6MTAwOEEwMDBFRTZENjAxMjkwNzYyMUUwRkVFRkMzOUU1MDA4OTA3NkM4Cis6MTAwOEIwMDAyMEUwMDRGMDgwRDE5MDdGRURFMDY0MDY3MDUyOTA3NkU1Cis6MTAwOEMwMDAxODc0MDZGMDkwNzYzNzc0MDRGMDkwNzYzOTc0MEFGMDU0Cis6MTAwOEQwMDA5MDc2MjFGMDkwNzYyMDc0MDNGMDkwN0ZFQUUwRjQ2MDQ3Cis6MTAwOEUwMDAyRjkwNzYyMEUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDY0Cis6MTAwOEYwMDA3NUY1ODNFMEZFOTA3RkVBRTBGREVFNkQ2MDEyOTA3Njg0Cis6MTAwOTAwMDAyMUUwRkVFRkMzOUU1MDA4OTA3NjIwRTAwNEYwODBEMUY1Cis6MTAwOTEwMDA5MDc2MjBFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUVECis6MTAwOTIwMDBGNTgzRTA5MDcyMjlGMEU0OTA3NjNCRjA5MDc2MjFFMDM4Cis6MTAwOTMwMDBGRUVGNkU3MDA4OTA3RkI0RTA0NDAxRjAyMjkwN0ZFQkYwCis6MTAwOTQwMDBFMDE0NjAxMzE0NzAwMjIxRTIyNDAyNjAwMjgxN0Y5MDlGCis6MTAwOTUwMDA3RkI0RTA0NDAxRjAyMjkwN0ZFOUUwMTQ3MDdDOTA3RjQ2Cis6MTAwOTYwMDBFQUUwRjQ3MDQ4OTA3NjM3RTA5MDc2MjBGMDkwNzYzOTlGCis6MTAwOTcwMDBFMEZFOTA3NjIwRTBGREMzOUU1MDJCOTA3NjNCRTBGRTlCCis6MTAwOTgwMDAwNEYwNzRDMDJFRjU4MkU0MzQ3RUY1ODNFMEZFRUQ3NTRDCis6MTAwOTkwMDBGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFRUYwOTA3NjhBCis6MTAwOUEwMDAyMEUwMDRGMDgwQzc5MDc2M0Y3NDAxRjAyMjkwN0VDMDcyCis6MTAwOUIwMDBFMEZFRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4MzBDCis6MTAwOUMwMDBFRUYwRTBCNDAxMDg5MDc2M0U3NDAxRjA4MDA1RTQ5MDBBCis6MTAwOUQwMDA3NjNFRjA5MDc2M0Y3NDAxRjAyMjkwN0ZCNEUwNDQwMUJGCis6MTAwOUUwMDBGMDIyOTA3RkU5RTAyNEZFNzAwMjQxQTMxNDcwMDI2MUJFCis6MTAwOUYwMDAzRjE0NzAwMjYxREIyNDAzNjAwMjgxNzc5MDdGRUFFMDlDCis6MTAwQTAwMDBGNDcwNkI5MDc2MzdFMDkwNzYyMEYwOTA3NjM5RTBGRkM2Cis6MTAwQTEwMDA5MDc2MjBFMEZFQzM5RjUwNEU5MDc2M0JFMEZGMDRGMEJFCis6MTAwQTIwMDA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRTc1RjAwQUEyCis6MTAwQTMwMDBBNDI0QUNGNTgyRTQzNDc1RjU4M0VGRjA5MDc2M0JFMEM2Cis6MTAwQTQwMDBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRUZFCis6MTAwQTUwMDA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MEM3Cis6MTAwQTYwMDA3NjIwRTAwNEYwODBBNDkwNzY0MDc0MDFGMDIyOTA3RTFECis6MTAwQTcwMDBDMEUwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEFDRjU4Mjc5Cis6MTAwQTgwMDBFNDM0NzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1RjAwQTc3Cis6MTAwQTkwMDBBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MDc2NDE3NENCCis6MTAwQUEwMDAwMUYwMjI5MDdGRUFFMEY0NzA2NjkwNzYzN0UwOTA3NjZECis6MTAwQUIwMDAyMEYwOTA3NjM5RTBGRjkwNzYyMEUwRkVDMzlGNDAwMjYwCis6MTAwQUMwMDA4MThFOTA3NjNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDExCis6MTAwQUQwMDA3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUVGNTgyRTQzNERGCis6MTAwQUUwMDA3NUY1ODNFRkYwOTA3NjNCRTBGRjA0RjA3NEMwMkZGNUNFCis6MTAwQUYwMDA4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUZGNUJFCis6MTAwQjAwMDA4MkU0MzQ3NUY1ODNFRkYwOTA3NjIwRTAwNEYwODBBMjYzCis6MTAwQjEwMDA5MDdFQzBFMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRBRTNGCis6MTAwQjIwMDBGNTgyRTQzNDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NTU5Cis6MTAwQjMwMDBGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDM3Cis6MTAwQjQwMDA3RkVBRTBGNDcwNjY5MDc2MzdFMDkwNzYyMEYwOTA3NjU5Cis6MTAwQjUwMDAzOUUwRkY5MDc2MjBFMEZFQzM5RjQwMDI4MThFOTA3NkMwCis6MTAwQjYwMDAzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEFGCis6MTAwQjcwMDBGRkVFNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFRjM2Cis6MTAwQjgwMDBGMDkwNzYzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUYxCis6MTAwQjkwMDBGNTgzRTBGRkVFNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NTI0Cis6MTAwQkEwMDBGNTgzRUZGMDkwNzYyMEUwMDRGMDgwQTI5MDdFQzBFMDI0Cis6MTAwQkIwMDBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QjBGNTgyRTQzNEJDCis6MTAwQkMwMDA3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzVGMDBBQTQyNDg2Cis6MTAwQkQwMDBCMUY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkVBRTBGNDFBCis6MTAwQkUwMDA3MDY2OTA3NjM3RTA5MDc2MjBGMDkwNzYzOUUwRkY5MDRFCis6MTAwQkYwMDA3NjIwRTBGRUMzOUY0MDAyODE4RTkwNzYzQkUwRkYwNEFBCis6MTAwQzAwMDBGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFNzVGMERBCis6MTAwQzEwMDAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRUZGMDkwNzYzQkI0Cis6MTAwQzIwMDBFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRjJBCis6MTAwQzMwMDBFRTc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVGNTgzRUZGMDgxCis6MTAwQzQwMDA5MDc2MjBFMDA0RjA4MEEyOTA3RUMwRTBGRjkwNzYyMEI1Cis6MTAwQzUwMDBFMEZFNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFRjYyCis6MTAwQzYwMDBGMDkwN0VDMUUwRkZFRTc1RjAwQUE0MjRCM0Y1ODJFNEIzCis6MTAwQzcwMDAzNDc1RjU4M0VGRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MEM4Cis6MEYwQzgwMDA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjIwMQorOjEwMEM4RjAwNDE3NjY4MDE0MTc2NkEwMjQxNzY2QjBBQzEyMEMxMjEyMworOjAyMEM5RjAwQzEyRjYzCis6MDQwQ0ExMDA0MTc2MjMwMDc1Cis6MTAwQ0E1MDA0MTcyMDEwMTQ1NzIwNTAwMDJDOTAwMDA0NTcyMEEwMDQyCis6MTAwQ0I1MDAwMTAyMDMwNDRENzIwRkQxMDBEMTAwMDAwMDAwMDAwMEI1Cis6MTAwQ0M1MDAyODI4MDkwMDRENzIxQzAxMDAwMTAyMDMwNDA1MDYwN0NFCis6MTAwQ0Q1MDAwODA5MEEwQjQxNzIyRTIyNDE3MjJGMjM0MTcyMzAyMERFCis6MTAwQ0U1MDA0MTcyMzEyMTYyRDI3MjNBMDAwMDAwMDAwMDAwMDAwMDFBCis6MTAwQ0Y1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAwRDA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAwRDE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAwRDI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAwRDM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAwRDQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAwRDU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAwRDY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAwRDc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDEwMTAxMDEwMTY4Cis6MTAwRDg1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTRFCis6MTAwRDk1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTNFCis6MTAwREE1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTJFCis6MTAwREI1MDAwMTAxMDEwMTAxMDEwMTAxMDIwMjAyMDIwMjAyMDIwMjE2Cis6MTAwREM1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkZFCis6MTAwREQ1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkVFCis6MTAwREU1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkRFCis6MTAwREY1MDAwMjAyMDIwMjAyMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0MzCis6MTAwRTA1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0FECis6MTAwRTE1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzlECis6MTAwRTI1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzhECis6MTAwRTM1MDAwMzAzMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDZGCis6MTAwRTQ1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDVECis6MTAwRTU1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDRECis6MTAwRTY1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDNECis6MTAwRTc1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTFECis6MTAwRTg1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTBECis6MTAwRTk1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNUZECis6MTAwRUE1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDYwNkVCCis6MTAwRUI1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkNECis6MTAwRUM1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkJECis6MTAwRUQ1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkFECis6MTAwRUU1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDcwNzA3MDgwODk2Cis6MTAwRUY1MDAwODA5MDkwOTBBMEEwQTBCMEIwQjBDMEMwQzBEMEQwRDQwCis6MTAwRjA1MDAwRTBFMEUwRjBGMEYxMDEwMTAxMTExMTExMjEyMTIxM0Q5Cis6MTAwRjE1MDAxMzEzMTQxNDE0MTUxNTE1MTYxNjE2MTcxNzE3MTgxODc0Cis6MTAwRjI1MDAxODE5MTkxOTE5MUExQTFBMUExQjFCMUIxQjFDMUMxQzE4Cis6MTAwRjM1MDAxQzFEMUQxRDFEMUUxRTFFMUUxRjFGMUYxRjIwMjAyMEM4Cis6MTAwRjQ1MDAyMTIxMjEyMjIyMjIyMzIzMjQyNDI1MjUyNjI2MjcyNzYxCis6MTAwRjU1MDAyODI4MjkyOTJBMkEyQjJCMkMyQzJEMkQyRTJFMkYyRkQ0Cis6MTAwRjY1MDAzMDMwMzEzMTMyMzIzMzMzMzQzNDM1MzUzNjM2MzczNzQ0Cis6MTAwRjc1MDAzODM4MzkzOTNBM0EzQjNDM0QzRTNGNDA0MTQyNDM0NDlCCis6MTAwRjg1MDA0NTQ2NDc0ODQ5NDk0QTRCNEI0QzRENEU0RjUwNTE1MkE3Cis6MTAwRjk1MDA1MzU0NTU1NTU2NTY1NzU3NTg1QTVCNUQ1RTVGNjE2MkI3Cis6MTAwRkE1MDA2MzY0NjU2NjY3Njg2OTZBNkI2QzZENkY3MTcyNzM3NDhCCis6MTAwRkI1MDA3NTc2Nzc3ODc5N0E3QjdDN0U4MDAxMzcwMTAxMzgwMEY4Cis6MDEwRkM1MDAwMDJCCis6MTAwRkM2MDBFNEZGNzQ0NjJGRjU4MkU0MzQ3NkY1ODNFMEZFNzQyMDYwCis6MTAwRkQ2MDAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0NEUyRkY1ODJFNDJCCis6MTAwRkU2MDAzNDc2RjU4M0UwRkU3NDMwMkZGNTgyRTQzNDgwRjU4M0ExCis6MDYwRkY2MDBFRUYwMEZCRjA4Q0M3NQorOjAxMEZGQzAwMjJEMgorOjAzMEZGRDAwQzI4OTMyNzQKKzoxMDEwMDAwMEU0OTA3NjJDRjA5MDc2MkNFMEZGNzVGMDAzQTQyNDBGOEEKKzoxMDEwMTAwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFREUwRkRFRTZENDIKKzoxMDEwMjAwMDYwMEVFRkMzOTQwQjUwMDg5MDc2MkNFMDA0RjA4MEQ1NEUKKzoxMDEwMzAwMEVGQjQwQjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzQTkKKzoxMDEwNDAwMEE0MjQwRUY1ODJFNDM0NzVGNTgzRTA5MDc2MkVGMDI0MjYKKzoxMDEwNTAwMEYwNjAwQTI0MEY2MDAyODE3RDEyNEIxQjIyOTA3RkVEMEQKKzoxMDEwNjAwMEUwNjQwNTcwNTE5MDc2MTg3NDA1RjA5MDc2Mzg3NDAxM0MKKzoxMDEwNzAwMEYwOTA3NjNBNzQwM0YwOTA3NjFDRjBFNDkwNzYxQkYwRDIKKzoxMDEwODAwMDkwN0ZFQUUwRjQ2MDJGOTA3NjFCRTBGRjc1RjAwQUE0RjEKKzoxMDEwOTAwMDI0QUFGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUFFMEZENTIKKzoxMDEwQTAwMEVFNkQ2MDEyOTA3NjFDRTBGRUVGQzM5RTUwMDg5MDc2QzUKKzoxMDEwQjAwMDFCRTAwNEYwODBEMTkwN0ZFREUwNjQwNjcwNTI5MDc2RTIKKzoxMDEwQzAwMDE4NzQwNkYwOTA3NjM4NzQwNEYwOTA3NjNBNzQwQUYwNEEKKzoxMDEwRDAwMDkwNzYxQ0YwOTA3NjFCNzQwM0YwOTA3RkVBRTBGNDYwNDkKKzoxMDEwRTAwMDJGOTA3NjFCRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NjEKKzoxMDEwRjAwMDc1RjU4M0UwRkU5MDdGRUFFMEZERUU2RDYwMTI5MDc2N0MKKzoxMDExMDAwMDFDRTBGRUVGQzM5RTUwMDg5MDc2MUJFMDA0RjA4MEQxRjcKKzoxMDExMTAwMEU0OTA3NjFFRjA5MDc2MUNFMEZGOTA3NjFCRTBGRTZGNjgKKzoxMDExMjAwMDcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3RkVCRTAxNDYwRkYKKzoxMDExMzAwMDEzMTQ3MDAyMjFCRjI0MDI2MDAyODE3NTkwN0ZCNEUwMTUKKzoxMDExNDAwMDQ0MDFGMDIyOTA3RkU5RTAyNDdGNzA2QjkwN0ZFQUUwMTkKKzoxMDExNTAwMEY0NzA0QTkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTMKKzoxMDExNjAwMDkwNzYxQkUwRkRDMzlGNTAyQkVENzVGMDBBQTQyNEFCRDUKKzoxMDExNzAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkQwNEYwMUYKKzoxMDExODAwMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwNTgKKzoxMDExOTAwMDA0RjA4MEM3OTA3NjFFRTA5MDdGQjVGMDIyRUU3NUYwRTcKKzoxMDExQTAwMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwNjcKKzoxMDExQjAwMDkwN0ZCNTc0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwNUEKKzoxMDExQzAwMDdGRTlFMDI0N0U3MDAyNDE3RTE0NzAwMjYxMjMxNDcwNzYKKzoxMDExRDAwMDAyNjFDODI0MDM2MDAyODE2RDkwN0ZFQUUwRjQ3MDZEQzMKKzoxMDExRTAwMDkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCOTAKKzoxMDExRjAwMEUwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEFDRjU4MkU0RjEKKzoxMDEyMDAwMDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJENDkKKzoxMDEyMTAwMEY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEFEOTcKKzoxMDEyMjAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNkQKKzoxMDEyMzAwMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwQTYKKzoxMDEyNDAwMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCOEIKKzoxMDEyNTAwMEUwRkY3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4M0UwNzAKKzoxMDEyNjAwMDkwN0YwMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1QTgKKzoxMDEyNzAwMEY1ODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQkIKKzoxMDEyODAwMEVBRTBGNDcwNkQ5MDc2MzhFMDkwNzYxQkYwOTA3NjNBNTQKKzoxMDEyOTAwMEUwRkY5MDc2MUJFMEMzOUY1MDRGRTBGRjc1RjAwQUE0N0IKKzoxMDEyQTAwMDI0QUVGNTgyRTQzNDc1RjU4M0UwRkU5MDc2MUVFMEZEMTEKKzoxMDEyQjAwMDA0RjA3NDAwMkRGNTgyRTQzNDdGRjU4M0VFRjBFRjc1RDEKKzoxMDEyQzAwMEYwMEFBNDI0QUZGNTgyRTQzNDc1RjU4M0UwRkY5MDc2NEMKKzoxMDEyRDAwMDFFRTBGRTA0RjA3NDAwMkVGNTgyRTQzNDdGRjU4M0VGMDcKKzoxMDEyRTAwMEYwOTA3NjFCRTAwNEYwODBBNDkwNzYxRUUwOTA3RkI1MkQKKzoxMDEyRjAwMEYwMjI5MDc2MUJFMEZGNzVGMDBBQTQyNEFFRjU4MkU0OUMKKzoxMDEzMDAwMDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVGMDBBQTQyNEFGMDgKKzoxMDEzMTAwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDFGMDkwN0ZCNTc0MzkKKzoxMDEzMjAwMDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTA3NjM4RTA5MDc2REIKKzoxMDEzMzAwMDFCRjA5MDc2M0FFMEZGOTA3NjFCRTBDMzlGNTA0RkUwQTEKKzoxMDEzNDAwMEZGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFMEZFNUQKKzoxMDEzNTAwMDkwNzYxRUUwRkQwNEYwNzQwMDJERjU4MkU0MzQ3RkY1RjQKKzoxMDEzNjAwMDgzRUVGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUY1NEMKKzoxMDEzNzAwMDgzRTBGRjkwNzYxRUUwRkUwNEYwNzQwMDJFRjU4MkU0MTgKKzoxMDEzODAwMDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDRGMDgwQTQ5MDc2MzQKKzoxMDEzOTAwMDFFRTA5MDdGQjVGMDIyOTA3NjFCRTBGRjc1RjAwQUE0NjYKKzoxMDEzQTAwMDI0QjBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjBFRjc1QUEKKzoxMDEzQjAwMEYwMEFBNDI0QjFGNTgyRTQzNDc1RjU4M0UwOTA3RjAxNEUKKzoxMDEzQzAwMEYwOTA3RkI1NzQwMkYwMjI5MDdGRUFFMEY0NzA2RDkwQTcKKzoxMDEzRDAwMDc2MzhFMDkwNzYxQkYwOTA3NjNBRTBGRjkwNzYxQkUwNEUKKzoxMDEzRTAwMEMzOUY1MDRGRTBGRjc1RjAwQUE0MjRCMkY1ODJFNDM0QTUKKzoxMDEzRjAwMDc1RjU4M0UwRkU5MDc2MUVFMEZEMDRGMDc0MDAyREY1OTcKKzoxMDE0MDAwMDgyRTQzNDdGRjU4M0VFRjBFRjc1RjAwQUE0MjRCM0Y1OUYKKzoxMDE0MTAwMDgyRTQzNDc1RjU4M0UwRkY5MDc2MUVFMEZFMDRGMDc0RkMKKzoxMDE0MjAwMDAwMkVGNTgyRTQzNDdGRjU4M0VGRjA5MDc2MUJFMDA0MjQKKzoxMDE0MzAwMEYwODBBNDkwNzYxRUUwOTA3RkI1RjAyMjkwNzYxQkUwQkQKKzoxMDE0NDAwMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFMDkwQzgKKzoxMDE0NTAwMDdGMDBGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUY1NEIKKzoxMDE0NjAwMDgzRTA5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyOTA3RkI0MEEKKzoxMDE0NzAwMEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0NzgKKzowNTE0ODAwMEUwNDQwMUYwMjIzMAorOjEwMTQ4NTAwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjk3QQorOjAxMTQ5NTAwMjIzNAorOjEwMTQ5NjAwOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJFMAorOjEwMTRBNjAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwOERFMEMwRTBEQworOjEwMTRCNjAwOENFMEMwRTBDMDgyQzA4MzA1ODZDMDg0QzA4NTdEMDAwNAorOjEwMTRDNjAwOTA3RkUzNzQ3QkYwQTM3NDgwRjA3QzExOTA3Rjk5RTBBOQorOjEwMTRENjAwNTQ0MERDMDMwMjE0RjNCNDAwMTM5MDdGRTI3NDQwRjAyRQorOjEwMTRFNjAwOTA3RkU1RjA5MDdGRTI3NDAwRjAwMjE0RDI5MDc2OTAzRgorOjEwMTRGNjAwRTBCNDAxMTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjBDQgorOjEwMTUwNjAwOTA3RjZDMDIxNTU3QjQwMjEyOTA3NjhGRTAyREZEOTBGNQorOjEwMTUxNjAwN0ZFMjc0ODBGMDkwN0Y2QzAyMTU5NkI0MDMxMjkwNzY4OQorOjEwMTUyNjAwOEZFMDJERkQ5MDdGRTI3NDgwRjA5MDdGNkMwMjE1RTFENAorOjEwMTUzNjAwQjQwNDEyOTA3NjhGRTAyREZEOTA3RkUyNzQ4MEYwOTBENworOjEwMTU0NjAwN0Y2QzAyMTYxMDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTYxQQorOjEwMTU1NjAwNDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEREYyN0RCOQorOjEwMTU2NjAwMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjRGRAorOjEwMTU3NjAwMDAwNTA1ODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjAyRAorOjEwMTU4NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERDQwMjE2NDBGQworOjEwMTU5NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjA0NQorOjEwMTVBNjAwRjBGMERERUM3RDAyMDU4NjkwN0ZFMjc0MDBGMDkwN0YxRQorOjEwMTVCNjAwOUJFMDU0MDRCNDAwMDUwNTg2MDIxNjQwOTA3RkUyNzQ1MQorOjEwMTVDNjAwODBGMDA1ODZGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEQQorOjA2MTVENjAwRjBGMEYwRjBGMEYwNkYKKzoxMDE1REMwMEREQ0UwMjE2NDBGMEYwRjBGMERERkE3RDAyMDU4NjkwQ0IKKzoxMDE1RUMwMDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNDAwMDUwNTg2MDQKKzoxMDE1RkMwMDAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMEYwRjBGMEREOEEKKzoxMDE2MEMwMERDMDIxNjQwRjBGMEYwRjBGMEYwRERGODdEMDIwNTg2MUIKKzoxMDE2MUMwMDkwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1QzkKKzoxMDE2MkMwMDg2MDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwQjAKKzoxMDE2M0MwMEYwRjBERERBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2N0UKKzoxMDE2NEMwMEQwODNEMDgyRDBFMEZDRDBFMEZERDBFMEZFRDBFMEZGMzMKKzowNTE2NUMwMEQwRTBEMEQwMjIxNworOjEwMTY2MTAwQzBEMEMwRTBDMDgyQzA4MzkwNzY3Q0UwOTA3RjZGRjBGNAorOjEwMTY3MTAwOTA3NjdERTA5MDdGNkZGMDkwNzY3RUUwOTA3RjZGRjBDNgorOjA5MTY4MTAwRDA4M0QwODJEMEUwRDBEMDIyNDkKKzoxMDE2OEEwMEMwRDBDMEUwOEZFMEMwRTA4RUUwQzBFMEMwODJDMDgzN0UKKzoxMDE2OUEwMDA1ODZDMDg0QzA4NTkwNzY4N0UwRkZCRjAwMDMwMjE3RTUKKzoxMDE2QUEwMDAxOTA3Rjk2RTA0NDgwRjA5MDdGRTI3NDgwRjA5MDdGMTIKKzoxMDE2QkEwMDYyRTAwNTg2OTA3RkUyNzQwMEYwOTA3Rjk2RTA1NDdGQTYKKzoxMDE2Q0EwMEYwOTA3RkUyNzQ4MEYwOTA3NjhFRTBCNDAxMDUwNTg2OTIKKzoxMDE2REEwMDAyMTZGNkI0MDIwNTA1ODYwMjE2RUIwNTg2MDIxNkZCMEIKKzoxMDE2RUEwMEUwRTBFMEUwRTBFMERGRjgwMjE2RkJFMEUwRTBFMERGNjcKKzoxMDE2RkEwMEZBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2RDA4M0QwM0EKKzowQzE3MEEwMDgyRDBFMEZFRDBFMEZGRDBFMEQwRDAyMjgyCis6MTAxNzE2MDBDMDgyQzA4M0MwRTBFOEMwRTA3OEQxRTgxNEY4NzBGQjZFCis6MEExNzI2MDBEMEUwRjhEMEUwRDA4M0QwODIyMjlBCis6MTAxNzMwMDBDMDgyQzA4M0MwRTBFOEMwRTA3ODc4RTgxNEY4NzBGQkFECis6MEExNzQwMDBEMEUwRjhEMEUwRDA4M0QwODIyMjgwCis6MDcxNzRBMDA5MDdGQzU3NDAyRjAyMjNDCis6MTAxNzUxMDA5MDdFQzBFMDkwNzY0NUYwOTA3RUMxRTA5MDc2NDRGMEI2Cis6MTAxNzYxMDA5MDdFQzJFMDkwNzY0M0YwQjQwMDAzMDIxNzc4OTA3NjQxCis6MTAxNzcxMDAxOTc0MDNGMDAyMTc4RTkwNzY0NEUwQjRCQjA5OTA3Njk5Cis6MTAxNzgxMDAxOTc0MDJGMDAyMTc4RTkwNzYxOTc0MDFGMDkwNzY0MjY2Cis6MDMxNzkxMDBFNEYwMjI1RgorOjA0MTc5NDAwOEQyOThCMkFFNgorOjEwMTc5ODAwMTI0OUZGRUE0OTYwNTcxMjM2OTI3RTAwMjlGRkVFM0E1NQorOjEwMTdBODAwQzlFRkM5NzUyQkZGRjUyQzg5MkRBQjJCQUEyQ0E5MkRCOAorOjEwMTdCODAwOTAwMDAxMTIzNkFCRkY2NDA0NjAwNUVGNjQwNTcwMkVEQgorOjEwMTdDODAwRUZCNDA0MTU5MDAwMDIxMjM2QUI2NTI5NzAwQjkwMDAzNworOjEwMTdEODAwMDMxMjM2QUI2NTJBNzAwMTIyMTIzNjkyN0UwMDI5RkY2OQorOjEwMTdFODAwRUUzQUM5RUZDOTc1MkJGRkY1MkM4OTJEODBCQzdCMDAxQgorOjA0MTdGODAwN0EwMDc5MDBGQQorOjAxMTdGQzAwMjJDQQorOjAzMTdGRDAwQzI4QjMyNkEKKzoxMDE4MDAwMDkwNzY5MEUwMTQ2MDM3MTQ3MDAyMDFEODE0NzAwMjIxQjEKKzoxMDE4MTAwMDcyMTQ3MDAyNDEzQjI0MDQ2MDAyNjEwMzkwN0ZGQzc0RTcKKzoxMDE4MjAwMENDRjA5MDdGRkY3NEZDRjA5MDc2OTVFMDQ0MDFGMDU0OEEKKzoxMDE4MzAwMDA1RjA5MDgwMDFGMEU0OTA3NjFBRjBDMjJFMjI5MDc2QTYKKzoxMDE4NDAwMDk1RTA0NDAxRjA0NDAyRjAzMDNFMDZFMDQ0MDRGMDgwQUMKKzoxMDE4NTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwN0EKKzoxMDE4NjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyMjkwMjcKKzoxMDE4NzAwMDdGRkM3NDc0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCNzMKKzoxMDE4ODAwMEYwOTA3Njk3RTA1NEZERjBFNDkwNzY4MUYwOTA3NjgwQzkKKzoxMDE4OTAwMEYwRUZCNDAyMjI5MDdGRkM3NDY4RjA5MDdGRkY3NEZDM0MKKzoxMDE4QTAwMEYwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRjBFNDkwRjkKKzoxMDE4QjAwMDc2ODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFODQKKzoxMDE4QzAwMEYwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA1NEZCMjMKKzoxMDE4RDAwMEYwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0RkVGMDQ0RjMKKzoxMDE4RTAwMDAyRjAzMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0MjQKKzoxMDE4RjAwMEZCRjA5MDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxQjQKKzoxMDE5MDAwMEYwOTA3NjE5RTBGRkI0MDEyMjkwN0ZGQzc0MzBGMDkwRTMKKzoxMDE5MTAwMDdGRkY3NEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RjQKKzoxMDE5MjAwMEZERjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyMjkwQTIKKzoxMDE5MzAwMDdGRkM3NDFDRjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGMDYKKzoxMDE5NDAwMEYwOTA3Njk3RTA0NDAyRjBFNDkwNzY4MUYwOTA3NjgwMTMKKzoxMDE5NTAwMEYwMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3M0MKKzoxMDE5NjAwMEUwNDQwMUYwOTA3Njk3RTA1NEZCRjA5MDgwMDJGMEQyRDIKKzoxMDE5NzAwMDJFMjI5MDc2OTVFMDQ0MDFGMDQ0MDJGMDQ0MDhGMDMwQzUKKzoxMDE5ODAwMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0RkJGMDkwMkEKKzoxMDE5OTAwMDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxRjA5MDc2OTgKKzoxMDE5QTAwMDE5RTBGRkI0MDEyNTkwN0ZGQzc0Q0NGMDkwN0ZGRjc0QTgKKzoxMDE5QjAwMEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RkRGMDU0MDUKKzoxMDE5QzAwMEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyNTkwMDEKKzoxMDE5RDAwMDdGRkM3NEM4RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGQkEKKzoxMDE5RTAwMEYwOTA3Njk3RTA0NDAyRjA1NEZCRjBFNDkwNzY4MUYwQkEKKzoxMDE5RjAwMDkwNzY4MEYwRUZCNDAzMjU5MDdGRkM3NDk4RjA5MDdGOTAKKzoxMDFBMDAwMEZGNzRGQ0YwOTA3NjhGNzQ1RkYwOTA3Njk3RTA1NEZENTEKKzoxMDFBMTAwMEYwNDQwNEYwRTQ5MDc2ODFGMDkwNzY4MEYwMzAzRjA5NTUKKzoxMDFBMjAwMDkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwQkUKKzoxMDFBMzAwMDkwNzY5N0UwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0MzYKKzoxMDFBNDAwMEZFRjA0NDAyRjA0NDA4RjAzMDNFMDZFMDQ0MDRGMDgwMkEKKzoxMDFBNTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwNzgKKzoxMDFBNjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyNTkwMjIKKzoxMDFBNzAwMDdGRkM3NEI0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCMzEKKzoxMDFBODAwMEYwOTA3Njk3RTA1NEZERjA1NEZCRjBFNDkwNzY4MUYwMEUKKzoxMDFBOTAwMDkwNzY4MEYwRUZCNDAyMjU5MDdGRkM3NEIwRjA5MDdGRDgKKzoxMDFBQTAwMEZGNzRGQ0YwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRUMKKzoxMDFBQjAwMEYwNTRGQkYwRTQ5MDc2ODFGMDkwNzY4MEYwRUZCNDAzODAKKzoxMDFBQzAwMDI1OTA3RkZDNzQ2OEYwOTA3RkZGNzRGQ0YwOTA3NjhGMTcKKzoxMDFBRDAwMDc0NUZGMDkwNzY5N0UwNTRGREYwNDQwNEYwRTQ5MDc2NjMKKzoxMDFBRTAwMDgxRjA5MDc2ODBGMDMwM0YwOTkwNzY5N0UwNTRGRUYwRDgKKzoxMDFBRjAwMDgwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyMUUKKzowNDFCMDAwMEYwRDIyRTIyQ0YKKzoxMDFCMDQwMDMwMkMzOEMyMkM5MDc2MTlFMEZGQjQwMTBFOTA3NjdDMEMKKzoxMDFCMTQwMDc0QzBGMEEzNzQxNEYwQTM3NDBCRjBFRkI0MDIwREU0REEKKzoxMDFCMjQwMDkwNzY3Q0YwQTM3NDEwRjBBMzc0MENGMEVGQjQwMzBCNjQKKzowQzFCMzQwMEU0OTA3NjdDRjBBMzc0MThGMEEzRjAyMjdCCis6MTAxQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTAxQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTAxQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTAxQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6MTAxQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTAxQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTAxQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTAxQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTAxQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTAxQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Cis6MTAxQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTAxQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTAxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTAxQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTAxQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTAxQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6MTAxQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTAxQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTAxQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTAxQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTAxQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTAxQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Cis6MTAxQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTAxQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTAxQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTAxQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTAxQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTAxQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTAxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTAxRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTAxRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTAxRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTAxRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTAxRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTAxRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCis6MTAxRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTAxRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTAxRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTAxREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTAxREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MTAxREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTAxREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTAxREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTAxREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6MTAxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTAxRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCis6MTAxRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCis6MTAxRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTAxRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTAxRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTAxRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTAxRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTAxRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTAxRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTAxRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MEUxRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDFFQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDFFQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDFFREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDFFRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDFFRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDFGMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDFGMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDFGMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzowMjFGM0UwMDAwMDBBMQorOjEwMUY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwMUY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwMUY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwMUY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwMUY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwMUY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwMUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwMUZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwMUZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwMUZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwMUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwMUZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwMjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwMjAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwMjA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MAorOjEwMjA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwMjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAorOjEwMjA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwMjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAorOjEwMjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwMjBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwMjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwMjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwMjBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwMjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAorOjEwMjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgorOjEwMjExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgorOjEwMjEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgorOjEwMjEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgorOjEwMjE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgorOjEwMjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgorOjEwMjE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwMjE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwMjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwMjE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwMjFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgorOjEwMjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwMjFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwMjFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwMjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwMjFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQorOjEwMjIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwMjI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwMjI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQorOjEwMjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQorOjEwMjI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwMjI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwMjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwMjJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwMjJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQorOjEwMjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwMjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwMjJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwMjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjBFMjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMzdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMzhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMzlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyM0FFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyM0JFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyM0NFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyM0RFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyM0VFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyM0ZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyNDBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyNDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyNDJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyNDNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyNDRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyNDVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyNDZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyNDdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyNDhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyNDlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyNEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyNEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyNENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyNERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyNEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyNEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyNTBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyNTFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyNTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyNTNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyNTRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyNTVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MTAyNTZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECis6MTAyNTdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECis6MTAyNThFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECis6MTAyNTlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECis6MTAyNUFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTAyNUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECis6MTAyNUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECis6MTAyNURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECis6MTAyNUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECis6MTAyNUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyNjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCis6MTAyNjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFDCis6MTAyNjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCis6MTAyNjNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCis6MTAyNjRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCis6MTAyNjVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCis6MTAyNjZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCis6MTAyNjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCis6MTAyNjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCis6MTAyNjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDCis6MTAyNkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCis6MTAyNkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCis6MTAyNkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCis6MTAyNkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCis6MEUyNkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDI2RkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDI3MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDI3MUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDI3MkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDI3M0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDI3NEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDI3NUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDI3NkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDI3N0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDI3OEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDI3OUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDI3QUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDI3QkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDI3Q0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDI3REMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDI3RUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzowNTI3RkMwMDAwMDAwMDAwMjJCNgorOjEwMjgwMTAwQzIyMEMyMjFDMjJBOTA3RkU4RTAxMjM3RjkyODMwMDBBNQorOjEwMjgxMTAwMjg4QzAxMjhBMjAyMkExRjIxMkE2QTIyMjkzRDgwMjkwNworOjEwMjgyMTAwN0Q4MTI5RDE4MjJBODRBMTJBQkFBMjAwMDAyQUJGOTBERgorOjEwMjgzMTAwN0ZFOUUwMTQ2MDExMjRGRTYwMjgyNEZFNjAzQjI0RkM0MworOjEwMjg0MTAwNzA0MDEyNEJBMDQxQ0IxMjREQTc0MDAyNDFDQjkwN0Y2QgorOjEwMjg1MTAwRUFFMEI0MDEwNEMyMjI0MUNCOTA3RkI0RTA0NDAxRjAyQworOjEwMjg2MTAwNDFDQjEyNERBOTkwN0ZFQUUwQjQwMTA0RDIyMjQxQ0JDMQorOjEwMjg3MTAwOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA5QgorOjEwMjg4MTAwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwMjQ1QgorOjEwMjg5MTAwRjU3MDA1MTI0ODAwNDFDQjkwN0ZCNEUwNDQwMUYwNDE0RQorOjEwMjhBMTAwQ0I5MDdGRTlFMDI0RkQ2MDU0MjQwMjYwMDIyMTM0MTJDMAorOjEwMjhCMTAwNERBNzQwMDI0MUNCOTA3RkVBRTA3MDM4OTA3RkVDRTA3OQorOjEwMjhDMTAwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjREMworOjEwMjhEMTAwRjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkZFRgorOjEwMjhFMTAwMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDREOAorOjEwMjhGMTAwMjBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0IxMjREQTlDRgorOjEwMjkwMTAwNDAwMjQxQ0I5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTRFQworOjEwMjkxMTAwODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODI1MworOjEwMjkyMTAwRTQzNDdGRjU4Mzc0MDFGMDQxQ0I5MDdGQjRFMDQ0MDEzRQorOjEwMjkzMTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTBERQorOjEwMjk0MTAwNjAxMjI0Rjg2MDA5MjQwMjcwMjkxMjQzREI0MUNCMTI4MgorOjEwMjk1MTAwNEQ1QzQxQ0IxMjREQTVBMjIyRTQzM0ZGMjVFMEZGQTIzRAorOjEwMjk2MTAwMjNFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDIyRAorOjEwMjk3MTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTA5RQorOjEwMjk4MTAwNjAzMzI0RjY2MDJBMjQwNDcwM0Q5MDdGRUJFMDI0REU1RQorOjEwMjk5MTAwNjAwQzA0NzAxMjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y1MQorOjEwMjlBMTAwQjRFMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I2RAorOjEwMjlCMTAwMTI0Njg1NDFDQjEyNERBNUU0OTA3RjAwRjBBM0YwOTAyMworOjEwMjlDMTAwN0ZCNTc0MDJGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I3QworOjEwMjlEMTAwOTA3RkU5RTAyNEY0NjAzNDI0MEM3MDM5MTI0REE1OTAwNQorOjEwMjlFMTAwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjUxRgorOjEwMjlGMTAwRTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDA1OAorOjEwMkEwMTAwRjBFNEEzRjA5MDdGQjU3NDAyRjA0MUNCOTA3RkI0RTA4NQorOjEwMkExMTAwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y4MQorOjEwMkEyMTAwRTlFMDI0RjY2MDEyMTQ2MDFBMjQwMjcwMUREMjIwOTA4RAorOjEwMkEzMTAwN0ZCNEUwNDQwMUYwODAxMkQyMjA5MDdGQjRFMDQ0MDFFMQorOjEwMkE0MTAwRjA4MDA3OTA3RkI0RTA0NDAxRjAyMDIwMTg5MDdGRUVFMQorOjEwMkE1MTAwRTA3MDA0QTNFMDYwMEJEMjI5RDIyNzEyMTc0QUQyMkFEMAorOjEwMkE2MTAwODAwMzEyMDgwMEMyMjA4MDYxOTA3RkVFRTA3MDA0QTMxMQorOjEwMkE3MTAwRTA2MDBCRDIyOUQyMjgxMjE3NEFEMjJBODA0QzEyMzg5MAorOjEwMkE4MTAwNzQ4MDQ3OTA3RkU5RTAyNEZFNjAxMjE0NjAxQTI0MDJFQQorOjEwMkE5MTAwNzAxREQyMjE5MDdGQjRFMDQ0MDFGMDgwMTJEMjIxOTBDOAorOjEwMkFBMTAwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwMjA1RQorOjEwMkFCMTAwMjEwMzEyMTAwMEMyMjE4MDExMTIyQUQ2ODAwQzEyNEQ1RQorOjEwMkFDMTAwQUI1MDA3OTA3RkI0RTA0NDAxRjAyMDJBMDc5MDdGQjQxNworOjA1MkFEMTAwRTA0NDAyRjAyMkM4Cis6MTAyQUQ2MDBFNDkwNzYyN0YwOTA3NjI3RTBGRjc1RjAwRkE0MjQ0MjY1Cis6MTAyQUU2MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2RDUzCis6MTAyQUY2MDA2MDBFRUZDMzk0MDY1MDA4OTA3NjI3RTAwNEYwODBENTY4Cis6MTAyQjA2MDBFRkI0MDYwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwRkIxCis6MTAyQjE2MDBBNDI0NDFGNTgyRTQzNDc1RjU4M0UwOTA3NjI4RjAyNDA4Cis6MTAyQjI2MDA5RjcwMDJBMTc0MjQyMTYwMDJBMUExOTA3RkU5RTAyNDk0Cis6MTAyQjM2MDA3RTcwMDI2MUZDMTQ3MDAyODFCNTI0MDI2MDAyQTE2Q0YxCis6MTAyQjQ2MDBFRjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0I5Cis6MTAyQjU2MDBBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5MDA3ODE2Cis6MTAyQjY2MDAwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzNzRBQ0FCCis6MTAyQjc2MDBGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDRCCis6MTAyQjg2MDAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGRDRECis6MTAyQjk2MDBBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQzMxMjM2Cis6MTAyQkE2MDAzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwRTRBMzdFCis6MTAyQkI2MDBGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNEFCCis6MTAyQkM2MDA0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRTYzCis6MTAyQkQ2MDBBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QUI2MEY4Cis6MTAyQkU2MDAwMkExQTg5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MDdGCis6MTAyQkY2MDA3RkI1NzQwM0YwMjI5MDc2MjdFMDc1RjAwRkE0MjQ0NzgyCis6MTAyQzA2MDBGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0MyCis6MTAyQzE2MDBFMEZGN0I0NDdBQUM3OTAwNzgwMEMzMTIzN0FCNzAxM0JGCis6MTAyQzI2MDA5MDdGMDA3NDQ0RjBBMzc0QUNGMEU0QTNGMDkwN0ZCNUY5Cis6MTAyQzM2MDA3NDAzRjA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDNDCis6MTAyQzQ2MDAzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjgzCis6MTAyQzU2MDA4MDdBQkI3OTAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDdGCis6MTAyQzY2MDA3NDgwRjBBMzc0QkJGMEU0QTNGMDkwN0ZCNTc0MDNGMDE2Cis6MTAyQzc2MDA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDM0NzVGNUM1Cis6MTAyQzg2MDA4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjAwN0E3N0YwCis6MTAyQzk2MDA3OTAxNzgwMEMzMTIzN0FCNjAwMkExQTg5MDdGMDBGMERCCis6MTAyQ0E2MDBBMzc0NzdGMEEzNzQwMUYwOTA3RkI1NzQwM0YwMjI5MEJCCis6MTAyQ0I2MDA3NjI3RTA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4MzhFCis6MTAyQ0M2MDBFMEZDQTNFMEZEQTNFMEZFQTNFMEZGN0I0NDdBQUM3OTQxCis6MTAyQ0Q2MDAwMDc4MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDQ0RjBBM0UyCis6MTAyQ0U2MDA3NEFDRjBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDFGCis6MTAyQ0Y2MDA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBMzRDCis6MTAyRDA2MDBFMEZEQTNFMEZFQTNFMEZGN0I4MDdBQkI3OTAwNzgwMEJDCis6MTAyRDE2MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDgwRjBBMzc0QkJGMEJFCis6MTAyRDI2MDBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDc1RjAwRjdBCis6MTAyRDM2MDBBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0ZGCis6MTAyRDQ2MDBFMEZFQTNFMEZGN0IwMDdBNzc3OTAxNzgwMEMzMTIzN0IzCis6MTAyRDU2MDBBQjcwNEY5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MEVFCis6MTAyRDY2MDA3RkI1NzQwM0YwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3Rjk3Cis6MTAyRDc2MDBFOUUwMjQ3RjcwMUU5MDc2MjdFMDc1RjAwRkE0MjQ0RkJCCis6MTAyRDg2MDBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA5MDdGQjU3NEFBCis6MTAyRDk2MDAwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NEY2Cis6MDMyREE2MDAwMUYwMjIxNworOjEwMkRBOTAwRTQ5MDc2MzZGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MgorOjEwMkRCOTAwMzQ3NUY1ODM3NDAxRjBFRjc1RjAwM0E0MjQwRkY1ODJERgorOjEwMkRDOTAwRTQzNDc1RjU4Mzc0MDFGMEVGNzVGMDAzQTQyNDEwRjU2QworOjEwMkREOTAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkZBMAorOjEwMkRFOTAwNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDEwRjBBQworOjEwMkRGOTAwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDVBNworOjEwMkUwOTAwRjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzRTQzQQorOjEwMkUxOTAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU5NworOjEwMkUyOTAwODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0MEY3RQorOjEwMkUzOTAwRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQ4OAorOjEwMkU0OTAwMTBGNTgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMDA0RjAwOQorOjEwMkU1OTAwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQ1QworOjEwMkU2OTAwMDFGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODNCRQorOjEwMkU3OTAwNzQwM0YwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjVCQQorOjEwMkU4OTAwODNFNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjRDMworOjEwMkU5OTAwMEVGNTgyRTQzNDc1RjU4Mzc0MTBGMEVGNzVGMDAzQTQzMAorOjEwMkVBOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwNkYwRUY3NUYwMDNBOQorOjEwMkVCOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTBDNQorOjEwMkVDOTAwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjVFRgorOjEwMkVEOTAwODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVDRQorOjEwMkVFOTAwRjU4Mzc0MDRGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQzQgorOjEwMkVGOTAwNzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNCMQorOjEwMkYwOTAwQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjBBQworOjEwMkYxOTAwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDhGMEVGNzU4MgorOjEwMkYyOTAwRjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzNzQwNEYwOTA1OQorOjEwMkYzOTAwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MAorOjEwMkY0OTAwMzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODI0QworOjEwMkY1OTAwRTQzNDc1RjU4Mzc0MEFGMEVGNzVGMDAzQTQyNDEwRjVEMQorOjEwMkY2OTAwODJFNDM0NzVGNTgzNzQwNEYwOTA3NjM2RTAwNEYwRTA3OQorOjEwMkY3OTAwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MDIxOQorOjEwMkY4OTAwRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQyQQorOjEwMkY5OTAwMDlGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODM4NAorOjEwMkZBOTAwNzQwNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQ5MQorOjEwMkZCOTAwMEVGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQxRAorOjEwMkZDOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwN0YwRUY3NUYwMDM4NworOjBFMkZEOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMjBDCis6MTAyRkU3MDBDMEUwQzA4M0MwODJEMjI2NTM5MUVGOTA3RkFCNzQwMUJCCis6MDgyRkY3MDBGMEQwODJEMDgzRDBFMDMyNUIKKzowMTJGRkYwMDMyOUYKKzoxMDMwMDAwMDkwN0ZCNkUwMjBFMTAyQzIzREQyMzYyMDM2MDI0MTZFMEEKKzoxMDMwMTAwMDMwM0QwMjQxNkU5MDgwMDdFMDYwMDREMjM2ODAwMkMyRUIKKzoxMDMwMjAwMDM2MjAzNjAyNDEyRUQyMzVFNEY1MUE5MDgwMDRFMEY1QzAKKzoxMDMwMzAwMDE5NzQwODI1MEVGOEE2MTk4NTE5MThFNTE4MjBFNzA0NTMKKzoxMDMwNDAwMEQyMzg4MDAyQzIzODMwMzgwMjIxRDRFNEY1MTZFNTE5QUUKKzoxMDMwNTAwMEI0RjAwQ0QyMzk3NTA4MDQ3NTA5RjAwNTBFODAwMjA1MkMKKzoxMDMwNjAwMDE2RTUxOTY0Rjc3MDNEQzIzOUU1MEUyNEZFNjAxNzE0QTkKKzoxMDMwNzAwMDYwMjIyNDAzNzAyOTc1MDgwNTc1MDlGN0U0RjUwQUY1M0YKKzoxMDMwODAwMDBCNzUwRTA0ODAyMDc1MDgwNjc1MEFGN0U0RjUwQjc1QkMKKzoxMDMwOTAwMDBFMDQ4MDEyNzUwODA3NzUwQkY3NzUwRTA0ODAwNzEyNzEKKzoxMDMwQTAwMDQ4RjM4MDAyMDUxNkU1MTk1NEY4NjRGODcwM0JDMjM1MDAKKzoxMDMwQjAwMEU1MTkyNDA3NjAwQzI0RkM2MDA4MjQwNTI0Rjg1MDA2NTgKKzoxMDMwQzAwMDgwMDhEMjNBODAwNkMyM0E4MDAyRDIzQTc1MUEwMTIwQUMKKzoxMDMwRDAwMDNBMTk5MDdFODA3NDBGRjBBM0U1MTlGMEU0QTNGMEEzRjEKKzoxMDMwRTAwMEYwOTA3RkI3NzQwNEYwODAwMjA1MTYyMDM5NkRFNTE5NjEKKzoxMDMwRjAwMDY0Rjc2MDY3RTUxQTcwNjNFNTE4NTRGMDY0RjA3MDU5N0UKKzoxMDMxMDAwMDg1MTgxOUY1MEVFNTE5MjQwRjYwMUIyNEZFNjAxNzI0OUQKKzoxMDMxMTAwMEZENjAyMjE0NjAxRjI0MDU3MDJGNzUwODAzMDUwRTg1QkQKKzoxMDMxMjAwMDE4MDlEMjM3ODAyODc1MDgwMjA1MEU4NTE4MDk3NTE0MEMKKzoxMDMxMzAwMDAxRDIzNzgwMTk3NTA4MDUwNTBFODUxODA5RTRGNTBBQ0UKKzoxMDMxNDAwMEY1MEI3NTBFMDNEMjM3ODAwNTEyNDhGM0MyMzUzMDM1QzIKKzoxMDMxNTAwMDBBODUwODEzODUxODEyODAwMjA1MTY4NTE4MTlFNTE2QzgKKzoxMDMxNjAwMDY0MDQ3MDYyRjUwRUU1MTk1NEYwRjUxOUY1MTU4NTE4MkIKKzoxMDMxNzAwMDE5RTUxNTI0NzA2MDE4MjRGMDYwMTQyNEYwNjAxMDI0MDAKKzoxMDMxODAwMEYwNjAxRTI0RjA2MDFBMjRGMDYwMDQyNDYwNzAyN0U1Q0IKKzoxMDMxOTAwMDE1QzQ1NDBGRjUxOUY1MDgwNTBFODUxODA5RDIzNzgwQTYKKzoxMDMxQTAwMDFBRTUxNUM0NTQwRkY1MTlGNTA4MDUwRTg1MTgwOTc1QUIKKzoxMDMxQjAwMDE0MDFEMjM3ODAwNTEyNDhGM0MyMzUzMDM1MEE4NTE5MUIKKzoxMDMxQzAwMDEzODUxODEyODAwMjA1MTZFNTE2RDM5NDA1NDA1NzEyOTAKKzoxMDMxRDAwMDQ4RjM4MDUyMzAzOTE3RTUwRTcwMEE4NTA4MDk3NTA4RTIKKzoxMDMxRTAwMDA0MDUwRTgwNDE3NDA4MjUwRUY4QTYxOTgwMzgyMDM3OTIKKzoxMDMxRjAwMDJBRTUwRUI0MDEwRjg1MDgwQTg1MDkwQjg1MTMwODg1OTkKKzoxMDMyMDAwMDEyMDk3NTBFMDRFNTE0QjQwMTFDODUwODBBRTRGNTBCRDcKKzoxMDMyMTAwMDg1MTMwODg1MTIwOTc1MEUwNDgwMEJFNTE0QjQwMTA2QTgKKzoxMDMyMjAwMEU0RjUwQjc1MEUwNEU0RjUxQTMwMzUwMjA1MEVFNTBFRDMKKzoxMDMyMzAwMEQzOTQwMzUwMDIwMTBCQzIzN0U0RjUwRUY1MTBDMjM2RTkKKzoxMDMyNDAwMEQyM0RGNTE0NzQwODI1MTBGOEU2RkY3NDgwMjUxMEY1QkEKKzoxMDMyNTAwMDgyRTQzNDdFRjU4M0VGRjA3NDA4MjUxMEY4RTRGNjA1NzcKKzowRjMyNjAwMDEwRTUxMEI0MDRERTkwN0ZCNzc0MDRGMDAxMEIyMjY4Cis6MTAzMjZGMDA5MDc2MThFMEZGNjQwNTcwNDI5MDc1QUJFMEI0MDExOUQ5Cis6MTAzMjdGMDA5MDcyMzc3NDAxRjBFNDkwODAyMEYwOTA4MDMxRjA5MERDCis6MTAzMjhGMDA4MDI4RjA5MDgwMzlGMDgwMjJFNDkwNzIzN0YwOTA3NUFBCis6MTAzMjlGMDBBREUwOTA3MjJCRjBFMDI0ODBGMEUwOTA4MDIwRjA5MDcxCis6MTAzMkFGMDA4MDMxRjA5MDgwMjhGMDkwODAzOUYwRUY2NDA2NjAwMjUyCis6MTAzMkJGMDA4MTk5OTA3MjM5NzQwNEYwOTA3MjM5RTBGRjI0RkU5MDc2Cis6MTAzMkNGMDA3MjA0RjBFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNUJGCis6MTAzMkRGMDA4M0UwNjQwMTcwNTQ5MDcyMzYwNEYwOTA3MjA0RTBGRjQyCis6MTAzMkVGMDAyNEZENjAyODI0RkU2MDI0MjQwMzI0RkI1MDA0NjAxQzZBCis6MTAzMkZGMDA4MThDNzQyMDJGRjU4MkU0MzQ4MEY1ODNFNEYwNzQyOEY4Cis6MTAzMzBGMDAyRkY1ODJFNDM0ODBGNTgzRTRGMDgxOEM5MDcyMDRFMDMxCis6MTAzMzFGMDBGRjI0MzBGNTgyRTQzNDgwRjU4M0U0RjA3NDM4MkZGNTIwCis6MTAzMzJGMDA4MkU0MzQ4MEY1ODNFNEYwODE4Q0U0OTA3MjM2RjA5MDdGCis6MTAzMzNGMDA3MjM5RTA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4MzkzCis6MTAzMzRGMDBFMEZGN0UwMDkwNzUwQ0VFRjBBM0VGRjA3MDA2OTA3MjI4Cis6MTAzMzVGMDAwMjc0M0JGMDkwNzUwQ0UwRkVBM0UwRkY2NDgwNEU3MEFBCis6MTAzMzZGMDAwNDkwNzIwMkYwRUY0RTcwMDI4MTM1RUY2NDgwNEU3MDYwCis6MTAzMzdGMDAwMjgxMzVFRkY4RTQ5MDc1MERGMEU4OTA3NTBDRjA5MDQwCis6MTAzMzhGMDA3MjM0RTA3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4MzQ5Cis6MTAzMzlGMDBFMEZGOTA3MjAyRjA5MDc1MERFMDJGRjA5MDc1MENFMDQ5Cis6MTAzM0FGMDAzNDAwRjBFMEZFQTNFMEZGRTRGQ0ZEN0JENjdBQTVGOTQ0Cis6MTAzM0JGMDBGOEQzMTIzNzk1NDAwQTkwNzUwQzc0QTVGMEEzNzRENjA0Cis6MTAzM0NGMDBGMDkwNzUwREUwMjQyQUYwOTA3NTBDRTAzNDVBRjBFMDdGCis6MTAzM0RGMDBGRUEzRTA3ODA1Q0VBMkU3MTNDRTEzRDhGOEZGOTA3NUMxCis6MTAzM0VGMDAwQ0VFRjBBM0VGRjA5MDcyMkNFRUYwQTNFRkYwRDM5NDZECis6MTAzM0ZGMDBEMkVFNjQ4MDk0ODI0MDBBOTA3MjJDNzQwMkYwQTM3NDBGCis6MTAzNDBGMDBEMkYwQzM5MDcyMkNFMDY0ODA5NDgwNTAwNEU0RjBBMzU3Cis6MTAzNDFGMDBGMDkwNzIyQ0UwRkVBM0UwMjQzQUY1ODJFRTM0NzJGNUMwCis6MTAzNDJGMDA4M0UwOTA3MjAyRjA5MDcyMDRFMEZGMjRGRDYwMkQyNDdGCis6MTAzNDNGMDBGRTYwMjkyNDAzMjRGQjUwMDQ2MDIxODA0MDkwNzIwMjE3Cis6MTAzNDRGMDBFMEZFNzQyMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQyOENCCis6MTAzNDVGMDAyRkY1ODJFNDM0ODBGNTgzRUVGMDgwMjE5MDcyMDJFMDQ0Cis6MTAzNDZGMDBGRjkwNzIwNEUwRkUyNDMwRjU4MkU0MzQ4MEY1ODNFRkEwCis6MTAzNDdGMDBGMDc0MzgyRUY1ODJFNDM0ODBGNTgzRUZGMDkwNzIzOUQyCis6MEIzNDhGMDBFMDA0RjBFMDY0MEE2MDAyNDFDNzIyODQKKzoxMDM0OUEwMDkwNzYxOEUwRkZCNDA1MjM5MDcyMzdFMDcwMUQ5MDc1OUUKKzoxMDM0QUEwMEFERTA5MDcyMkJGMEUwMjQ4MEYwRTA5MDgwMjBGMDkwNjQKKzoxMDM0QkEwMDgwMzFGMDkwODAyOEYwOTA4MDM5RjBFRjY0MDY2MDAyNDUKKzoxMDM0Q0EwMEMxOTE5MDcyMzZFMDYwMDJDMTkxOTA3NjQwRTA3MDMxMEQKKzoxMDM0REEwMDkwNzIwMzc0MDNGMDkwNzIwM0UwRkY3NUYwMEFBNDI0NUIKKzoxMDM0RUEwMEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3MjI5RTBGREVFRDgKKzoxMDM0RkEwMDZENjAwRUVGQzM5NDBBNTAwODkwNzIwM0UwMDRGMDgwRTYKKzoxMDM1MEEwMEQ1OTA3MjM5NzQwNEYwOTA3NjQwRTA3MDA4OTA3MjAzOTYKKzoxMDM1MUEwMEUwOTA3MjM5RjA5MDcyMzlFMEZEMjRGRTkwNzIyQUYwNDAKKzoxMDM1MkEwMEVENzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODNFMEZGNjUKKzoxMDM1M0EwMDdFMDA5MDc1MENFRUYwQTNFRkYwNzAwNjkwNzIwMjc0QTQKKzoxMDM1NEEwMDgwRjA5MDc1MENFMEZFQTNFMEZGNjQ4MDRFNzAwNDkwNUEKKzoxMDM1NUEwMDcyMDJGMEVGNEU3MDAyQzExQkVGNjQ4MDRFNzAwMkMxMUUKKzoxMDM1NkEwMDFCRUZGOEU0OTA3NTBERjBFODkwNzUwQ0YwRUQ3NUYwMkUKKzoxMDM1N0EwMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODNFMEZGOTA3MjAyNjQKKzoxMDM1OEEwMEYwOTA3NTBERTAyRkYwOTA3NTBDRTAzNDAwRjBFMEZFM0QKKzoxMDM1OUEwMEEzRTBGRkU0RkNGRDdCRDY3QUE1RjlGOEQzMTIzNzk1QjAKKzoxMDM1QUEwMDQwMEE5MDc1MEM3NEE1RjBBMzc0RDZGMDkwNzUwREUwREUKKzoxMDM1QkEwMDI0MkFGMDkwNzUwQ0UwMzQ1QUYwRTBGRUEzRTA3ODA1NzYKKzoxMDM1Q0EwMENFQTJFNzEzQ0UxM0Q4RjhGRjkwNzUwQ0VFRjBBM0VGNTYKKzoxMDM1REEwMEYwOTA3MjJDRUVGMEEzRUZGMEQzOTREMkVFNjQ4MDk0QzQKKzoxMDM1RUEwMDgyNDAwQTkwNzIyQzc0MDJGMEEzNzREMkYwQzM5MDcyRDMKKzoxMDM1RkEwMDJDRTA2NDgwOTQ4MDUwMDRFNEYwQTNGMDkwNzIyQ0UwRjQKKzoxMDM2MEEwMEZFQTNFMDI0M0FGNTgyRUUzNDcyRjU4M0UwOTA3MjAyNkEKKzoxMDM2MUEwMEYwOTA3MjJBRTBGRjI0RkQ2MDJEMjRGRTYwMjkyNDAzMjUKKzoxMDM2MkEwMDI0RkI1MDA0NjAyMTgwNDA5MDcyMDJFMEZFNzQyMDJGMzcKKzoxMDM2M0EwMEY1ODJFNDM0ODBGNTgzRUVGMDc0MjgyRkY1ODJFNDM0QzEKKzoxMDM2NEEwMDgwRjU4M0VFRjA4MDIxOTA3MjAyRTBGRjkwNzIyQUUwMEEKKzoxMDM2NUEwMEZFMjQzMEY1ODJFNDM0ODBGNTgzRUZGMDc0MzgyRUY1RDkKKzoxMDM2NkEwMDgyRTQzNDgwRjU4M0VGRjA5MDc2NDBFMDcwMDY5MDcyNDEKKzoxMDM2N0EwMDM5NzQwQUYwOTA3MjM5RTAwNEYwRTBDMzk0MEE1MDAyRjcKKzowODM2OEEwMEExMTFFNDkwNzY0MEYwMjI0QQorOjEwMzY5MjAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDIzNgorOjA5MzZBMjAwRTMyMjg5ODI4QTgzRTQ5MzIyNjkKKzoxMDM2QUIwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwRDQKKzoxMDM2QkIwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyMUUKKzowRDM2Q0IwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyMzgKKzoxMDM2RDgwMEMyRDVFQzMwRTcwOUIyRDVFNEMzOURGREU0OUNGQ0VFMEQKKzoxMDM2RTgwMDMwRTcxNUIyRDVFNEMzOUZGRkU0OUVGRTEyMzgxRkMzMkUKKzoxMDM2RjgwMEU0OURGREU0OUNGQzgwMDMxMjM4MUYzMEQ1MDdDM0U0MjkKKzowNjM3MDgwMDlGRkZFNDlFRkUyMjdCCis6MTAzNzBFMDBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMEY5Cis6MTAzNzFFMDBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRUQ2Cis6MTAzNzJFMDAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyRTU4MzJBRjU4MzFDCis6MDgzNzNFMDBFOTkzRjVGMEEzRTk5MzIyRTEKKzoxMDM3NDYwMEU4OEZGMEE0Q0M4QkYwQTQyQ0ZDRTk4RUYwQTQyQ0ZDMjIKKzoxMDM3NTYwMDhBRjBFREE0MkNGQ0VBOEVGMEE0Q0RBOEYwOEJGMEE0QTAKKzoxMDM3NjYwMDJEQ0MzODI1RjBGREU5OEZGMEE0MkNDRDM1RjBGQ0VCRkYKKzoxMDM3NzYwMDhFRjBBNEZFQTlGMEVCOEZGMEE0Q0ZDNUYwMkVDRDM5QzQKKzowRjM3ODYwMEZFRTQzQ0ZDRUFBNDJEQ0UzNUYwRkRFNDNDRkMyMjMxCis6MTAzNzk1MDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFQzY0ODBDOEFCCis6MDYzN0E1MDA2NDgwOTg0NUYwMjI0QgorOjEwMzdBQjAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjA3NAorOjAxMzdCQjAwMjJFQgorOjBDMzdCQzAwRUNGMEEzRURGMEEzRUVGMEEzRUZGMDIyODAKKzoxMDM3QzgwMEE4ODI4NTgzRjBEMDgzRDA4MjEyMzdERjEyMzdERjEyQzgKKzoxMDM3RDgwMDM3REYxMjM3REZFNDczRTQ5M0EzQzU4M0M1RjBDNTgzRUQKKzoxMDM3RTgwMEM4QzU4MkM4RjBBM0M1ODNDNUYwQzU4M0M4QzU4MkM4NEIKKzowMTM3RjgwMDIyQUUKKzoxMDM3RjkwMEQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzNUYKKzoxMDM4MDkwMDkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwNzIKKzowNjM4MTkwMEVGQTNBM0EzODBERjcyCis6MTAzODFGMDBCQzAwMEJCRTAwMjlFRjhERjA4NEZGQURGMDIyRTRDQzhECis6MTAzODJGMDBGODc1RjAwOEVGMkZGRkVFMzNGRUVDMzNGQ0VFOURFQzU2Cis6MTAzODNGMDA5ODQwMDVGQ0VFOURGRTBGRDVGMEU5RTRDRUZEMjJFRDlDCis6MTAzODRGMDBGOEY1RjBFRTg0MjBEMjFDRkVBREYwNzVGMDA4RUYyRkU2Cis6MTAzODVGMDBGRkVEMzNGRDQwMDc5ODUwMDZENUYwRjIyMkMzOThGREQ3Cis6MDUzODZGMDAwRkQ1RjBFQTIyNzQKKzoxMDM4NzQwMEU0OTA3NjI5RjA5MDc2MjlFMEZGNzVGMDBGQTQyNDQyQjUKKzoxMDM4ODQwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEQTcKKzoxMDM4OTQwMDYwMEVFRkMzOTQwNjUwMDg5MDc2MjlFMDA0RjA4MEQ1QkEKKzoxMDM4QTQwMEVGQjQwNjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDBGMDYKKzoxMDM4QjQwMEE0MjQ0MUY1ODJFNDM0NzVGNTgzRTA5MDc2MkFGMDI0NUIKKzoxMDM4QzQwMEJGNzAwMjQxNDEyNEUwNzAwMjQxMTIyNDIxNjAwMjQxOTAKKzoxMDM4RDQwMDNBOTA3RkU5RTAyNEZFNjA3RDE0NzAwMjIxQjIyNDAyNTQKKzoxMDM4RTQwMDYwMDI0MTBBMTIxNzUxOTA3NjQyRTBGQ0EzRTBGREEzNjYKKzoxMDM4RjQwMEUwRkVBM0UwRkY5MDc2MjlFMDc1RjAwRkE0MjQ0M0Y1RTEKKzoxMDM5MDQwMDgyRTQzNDc1RjU4MzEyMzdCQzkwNzYxOUUwRkZCNDAxNzQKKzoxMDM5MTQwMDEyOTA3NjdDNzQ2N0YwOTA3NjdENzQwNkYwOTA3NjdFRDMKKzoxMDM5MjQwMDc0MEJGMEVGQjQwMjBGRTQ5MDc2N0NGMDkwNzY3REYwQTcKKzoxMDM5MzQwMDkwNzY3RTc0MENGMEVGQjQwMzBGRTQ5MDc2N0NGMDkwRjQKKzoxMDM5NDQwMDc2N0RGMDkwNzY3RTc0MThGMDkwNzYxQTc0MDFGMDEyRjkKKzoxMDM5NTQwMDNFOEYxMjE4MDAyMjkwN0VDMkUwRkZFNEZDRkRGRUZCQzUKKzoxMDM5NjQwMEZBNzkwMUY4MTIzNzQ2QzhFQ0M4QzlFREM5Q0FFRUNBREIKKzoxMDM5NzQwMENCRUZDQjkwN0VDMUUwRkVFNEZDRkQyQkZCRUEzRUZBRUMKKzoxMDM5ODQwMEVEMzlGOUVDMzhGODkwN0VDMEUwRkZFNEZFRUIyRkZGNTAKKzoxMDM5OTQwMEVFM0FGRUVEMzlGREVDMzhGQzkwNzYyOUUwNzVGMDBGMzcKKzoxMDM5QTQwMEE0MjQ0N0Y1ODJFNDM0NzVGNTgzMTIzN0JDMjI5MDdFNTMKKzoxMDM5QjQwMEMyRTBGRkU0RkNGREZFRkJGQTc5MDFGODEyMzc0NkM4QzkKKzoxMDM5QzQwMEVDQzhDOUVEQzlDQUVFQ0FDQkVGQ0I5MDdFQzFFMEZFMEMKKzoxMDM5RDQwMEU0RkNGRDJCRkJFQTNFRkFFRDM5RjlFQzM4Rjg5MDdFNzUKKzoxMDM5RTQwMEMwRTBGRkU0RkVFQjJGRkZFRTNBRkVFRDM5RkRFQzM4Q0MKKzoxMDM5RjQwMEZDOTA3NjI5RTA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1MkQKKzoxMDNBMDQwMEY1ODMxMjM3QkMyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGMEEKKzoxMDNBMTQwMEU5RTAxNDcwMTk5MDdFQzBFMEZGOTA3NjI5RTA3NUYwMUIKKzoxMDNBMjQwMDBGQTQyNDRGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDdGRTAKKzowRTNBMzQwMEI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5RgorOjEwM0E0MjAwRTQ5MDc2MzVGMDkwNzYzNUUwRkZDMzk0MDM0MDAyNDE2RQorOjEwM0E1MjAwRkZFRjc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNTgzRUYyQQorOjEwM0E2MjAwRjBFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRTQzMworOjEwM0E3MjAwRjBFRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzNzQ5MgorOjEwM0E4MjAwRjBGMEVGNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODMwNQorOjEwM0E5MjAwNzRGRkYwRUY3NUYwMEFBNDI0QUVGNTgyRTQzNDc1RjVGNAorOjEwM0FBMjAwODNFNEYwRUY3NUYwMEFBNDI0QUZGNTgyRTQzNDc1RjVFRgorOjEwM0FCMjAwODM3NDgwRjBFRjc1RjAwQUE0MjRCMEY1ODJFNDM0NzVDMworOjEwM0FDMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMUY1ODJFNDM0NzVDRAorOjEwM0FEMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMkY1ODJFNDM0NzVCQworOjEwM0FFMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVBQgorOjEwM0FGMjAwRjU4Mzc0MDFGMDkwNzYzNUUwMDRGMDQxNDc5MDc2M0MwRQorOjEwM0IwMjAwNzQwQUYwRTRBM0YwOTA3NjM1NzQwM0YwOTA3NjNDRTAwQQorOjEwM0IxMjAwRkY5MDc2MzVFMEZFQzM5RjQwMDI2MUQyOTA3NjNERTA5MQorOjEwM0IyMjAwRkYwNEYwRUU3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RjVEOAorOjEwM0IzMjAwODNFRkYwRUU3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU1OAorOjEwM0I0MjAwODNFNEYwRUU3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU1MgorOjEwM0I1MjAwODM3NDVFRjBFRTc1RjAwQUE0MjRBREY1ODJFNDM0NzU0OAorOjEwM0I2MjAwRjU4Mzc0QkFGMEVFNzVGMDBBQTQyNEFFRjU4MkU0MzQ1QgorOjEwM0I3MjAwNzVGNTgzNzQwNUYwRUU3NUYwMEFBNDI0QUZGNTgyRTRCRQorOjEwM0I4MjAwMzQ3NUY1ODM3NDgwRjBFRTc1RjAwQUE0MjRCMEY1ODJFMgorOjEwM0I5MjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMUY1ODJGRAorOjEwM0JBMjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMkY1ODJFQworOjEwM0JCMjAwRTQzNDc1RjU4Mzc0MTVGMEVFNzVGMDBBQTQyNEIzRjVCOAorOjEwM0JDMjAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNUUwMDRGMDYxMEUxQQorOjAxM0JEMjAwMjJEMAorOjEwM0JEMzAwRTQ5MDc2MzZGMEUwRkI3NUYwMEZBNDI0NDFGNTgyRTQxRgorOjEwM0JFMzAwMzQ3NUY1ODM3NDQwRjBFQjc1RjAwRkE0MjQ0MkY1ODIyRAorOjEwM0JGMzAwRTQzNDc1RjU4Mzc0MEFGMEVCNzVGMDBGQTQyNDQzRjVGMAorOjEwM0MwMzAwODJFNDM0NzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjBEOQorOjEwM0MxMzAwMEZBNDI0NDdGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDBGNgorOjEwM0MyMzAwQUM0NEVCNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NUY1ODNCMworOjEwM0MzMzAwMTIzN0M4MDAwMTc3MDA5MDc2MzZFMDA0RjBFMEZCNzU5OAorOjEwM0M0MzAwRjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0MEYwRUI1RQorOjEwM0M1MzAwNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM3NDhDRjA3NworOjEwM0M2MzAwRUI3NUYwMEZBNDI0NDNGNTgyRTQzNDc1RjU4MzEyMzcyMgorOjEwM0M3MzAwQzgwMDAwQUM0NEVCNzVGMDBGQTQyNDQ3RjU4MkU0MzQ4QworOjEwM0M4MzAwNzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjAwRkE0MjQxQworOjEwM0M5MzAwNEJGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDE3NzAwOTA0MQorOjEwM0NBMzAwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTgyRTREQQorOjEwM0NCMzAwMzQ3NUY1ODM3NDQwRjBFRjc1RjAwRkE0MjQ0MkY1ODI1OAorOjEwM0NDMzAwRTQzNDc1RjU4Mzc0OEZGMDkwNzYzNkUwMDRGMEUwRkYwQQorOjEwM0NEMzAwNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQxRjA0MworOjEwM0NFMzAwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0ODRGMAorOjEwM0NGMzAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDBGQTQyNDQxRjU3MAorOjEwM0QwMzAwODJFNDM0NzVGNTgzNzQ2MUYwRUY3NUYwMEZBNDI0NDJGNworOjEwM0QxMzAwRjU4MkU0MzQ3NUY1ODM3NDgxRjA5MDc2MzZFMDA0RjAyRgorOjEwM0QyMzAwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0NAorOjEwM0QzMzAwNjFGMEVGNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM0NgorOjA0M0Q0MzAwNzQwMUYwMjJGNQorOjEwM0Q0NzAwQzBFMEMwRjBDMDgzQzA4MkMwRDBFOEMwRTBFOUMwRTBGNgorOjEwM0Q1NzAwRUFDMEUwRUJDMEUwRUNDMEUwRURDMEUwRUVDMEUwRUZCMQorOjEwM0Q2NzAwQzBFMDkwN0ZBMkUwOTA3NjdGRjA5MDdGNzRFMDkwNzYzRAorOjEwM0Q3NzAwODdGMDkwN0Y3NUUwOTA3Njg4RjA5MDdGOThFMDQ0MDIxNgorOjEwM0Q4NzAwRjA5MDc2OTZFMEZGMjBFMTBDNDQwMkYwOTA4MDAzRjA3QgorOjEwM0Q5NzAwRDIzMjEyNEFDNDkwNzY3RkUwMjBFMjUwOTA3Njg3RTBENAorOjEwM0RBNzAwRkVBM0UwN0MwMDI0MDBGNTM0RUMzRUY1MzM5MDc2OThEMgorOjEwM0RCNzAwRTBGREFFMzNBRjM0MTIzNkQ4OTA3Njg3RUZGMEQyMkZDRQorOjEwM0RDNzAwMzAzMTI5MjAzRjI2QzIzMTkwN0Y5NEUwNTRDRkYwOTBDNAorOjEwM0RENzAwN0Y5QUUwMzBFNDA0RDIyREMyMkM5MDdGOUFFMDIwRTU1MAorOjEwM0RFNzAwMDRDMjJERDIyQzkwN0Y5NEUwNDQzMEYwMTI0QTUwMTIzNgorOjEwM0RGNzAwMUIwNDMwMkYxMjEyNDIxNkMyMkY3NUU4MDExMjE2OEFDMQorOjEwM0UwNzAwNzVFODBERDIyQjgwMDU3NUU4MDFDMjJCMjAyQjM0OTA2NQorOjEwM0UxNzAwNzYxOUUwRkZCNDAxMEU5MDc2N0M3NDY3RjBBMzc0MDYwMAorOjEwM0UyNzAwRjBBMzc0MEJGMEVGQjQwMjBCOTA3NjdDRTRGMEEzRjBGMAorOjEwM0UzNzAwQTM3NDBDRjBFRkI0MDMwQjkwNzY3Q0U0RjBBM0YwQTMyQgorOjEwM0U0NzAwNzQxOEYwNzVDQUQzNzVDQkZFRDJDQTMwMzQwNEMyMzRBNQorOjEwM0U1NzAwODAwMkQyMzQ1MzkxRUY5MDdGQUI3NDAyRjBGMDkwN0ZFMQorOjEwM0U2NzAwOThFMDU0RkRGMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBEOAorOjEwM0U3NzAwRkNEMEUwRkJEMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDAyOQorOjA4M0U4NzAwODJEMDgzRDBGMEQwRTAzMkJDCis6MTAzRThGMDA5MDc2OTJFMDE0NjAxRDE0NzAwMkUxNDQyNDAyNjAwMkU3Cis6MTAzRTlGMDBFMUQ0OTA3Njk0NzQwMUYwOTA4MDAwRjBFNDkwNzY4RUU3Cis6MTAzRUFGMDBGMEQyMzEyMjkwNzYxOUUwRkZCNDAxMUJFNDkwN0ZGMjNCCis6MTAzRUJGMDBGMDkwN0ZGMzc0MzBGMDkwN0ZGRjc0RkNGMDkwNzY5NzYyCis6MTAzRUNGMDBFMDU0RkRGMDU0RkJGMEVGQjQwMjFCRTQ5MDdGRjJGMEVFCis6MTAzRURGMDA5MDdGRjM3NDM0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDRFCis6MTAzRUVGMDA0NDAyRjA1NEZCRjBFRkI0MDMxOEU0OTA3RkYyRjA5MDJCCis6MTAzRUZGMDA3RkYzNzQ2NEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTA0NDRBCis6MTAzRjBGMDAwNEYwOTA3Njk0RTA0NDAxRjA5MDgwMDBGMDMwM0YwOTg3Cis6MTAzRjFGMDA5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMDlBCis6MTAzRjJGMDA5MDc2OTdFMDkwODAwMkYwOTA3Njk4NzQwNEYwOTA3NkY3Cis6MTAzRjNGMDA4RTc0MDFGMDIyOTA3NjE5RTBGRkI0MDExQkU0OTA3RjlDCis6MTAzRjRGMDBGMkYwOTA3RkYzNzQ0NEYwOTA3RkZGNzRGQ0YwOTA3NjYyCis6MTAzRjVGMDA5N0UwNTRGREYwNTRGQkYwRUZCNDAyMUJFNDkwN0ZGMkI2Cis6MTAzRjZGMDBGMDkwN0ZGMzc0NENGMDkwN0ZGRjc0RkNGMDkwNzY5Nzk1Cis6MTAzRjdGMDBFMDQ0MDJGMDU0RkJGMEVGQjQwMzE4RTQ5MDdGRjJGMDRBCis6MTAzRjhGMDA5MDdGRjM3NDk0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDNECis6MTAzRjlGMDA0NDA0RjA5MDc2OTRFMDU0RkVGMDkwODAwMEYwMzAzRkFGCis6MTAzRkFGMDAwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYxCis6MTAzRkJGMDBGMDkwNzY5N0UwOTA4MDAyRjA5MDc2OTg3NDA2RjA5MEVCCis6MDYzRkNGMDA3NjhFNzQwMkYwMjI2MAorOjEwM0ZENTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAyRjAxNQorOjEwM0ZFNTAwOTA3RkM3RTBGNTExNzUwRjAwNzUwRDAwRDIzM0QwODJCMworOjA1M0ZGNTAwRDA4M0QwRTAzMjkyCis6MDYzRkZBMDAxMjRBQzRDMjMxMjI4QworOjEwNDAwMDAwRTUxMUQzOTQwMDUwMDIyMTA2OTA3Njg5RTBDMzk0MDgwQworOjEwNDAxMDAwNDAwMjIxMDY3NDQwMjUwRkY1ODJFNDM0N0VGNTgzRTBFQQorOjEwNDAyMDAwRjUxN0U1MEQ2MDBFOTA4MDA1RTUxN0YwOTA3Njg5RTBCNAorOjEwNDAzMDAwMDRGMDAxREFFNTE3MTIzN0Y5NDBDMTAyNDA2NzA1NDA4NAorOjEwNDA0MDAwN0EwNjQwOTgwNzQwQzEwQzQwQzEwRDQwQzcwRjQwQ0JENQorOjEwNDA1MDAwRjY0MENCRjg0MENCRkE0MENCRkI0MENCRkM0MENCRkU0QworOjEwNDA2MDAwNDBDQkZGMDAwMDQwREE5MDdFNDFFMDkwODAwNUYwOTA2OAorOjEwNDA3MDAwNzY4OUUwMDRGMDc1MTEwMTgwNjA5MDdFNDFFMDkwODBDNworOjEwNDA4MDAwMDVGMDkwN0U0MkUwOTA4MDA1RjA5MDc2ODlFMDA0RjBBMworOjEwNDA5MDAwRTAwNEYwNzUxMTAxODA0MjkwN0U0MUUwOTA4MDA1RjBDRgorOjEwNDBBMDAwOTA3RTQyRTA5MDgwMDVGMDkwN0U0M0UwOTA4MDA1RjBBNQorOjEwNDBCMDAwOTA3Njg5RTAwNEYwRTAwNEYwRTAwNEYwNzUxMTAxODBFRQorOjEwNDBDMDAwMTlEMjNCRDIzQzgwMTNEMjNCODAwRjkwODAwNUU1MTc3QworOjEwNDBEMDAwRjA5MDc2ODlFMDA0RjA3NTExMDEyMDNCMDQwNTBEODAxNQorOjEwNDBFMDAwMUYzMDNDMUM5MDdFNDFFMDkwODAwNUYwOTA3RTQyRTBDNQorOjEwNDBGMDAwOTA4MDA1RjA5MDc2ODlFMDA0RjBFMDA0RjA3NTExMDFGRAorOjEwNDEwMDAwMDUwRjE1MTEwMTAwRTUxMTcwMTBDMjMzRjUwREY1MEYwMworOjBCNDExMDAwOTA3RkM3NzQwNEYwQzIzQkMyM0MyMjQ5Cis6MTA0MTFCMDA5MDc2OERFMDY0MDE3MDI3MzAyNzA4QzIyNzEyMDgwMEMzCis6MTA0MTJCMDAxMjE3NEEzMDI4MDhDMjI4MTIzODc0MTIxNzRBMzAyQTNDCis6MTA0MTNCMDAwRUU0OTA3NjhERjBDMjJBOTA3RkI0RTA0NDAyRjA5MEFBCis6MTA0MTRCMDA3NjNGRTBCNDAxMDVFNEYwMTIzMjZGOTA3NjQxRTBCNEIzCis6MTA0MTVCMDAwMTA1RTRGMDEyMzQ5QTkwNzY0MEUwQjQwMTAzMTIzNDc2Cis6MTA0MTZCMDA5QTkwN0Y5QkUwMjBFNDAyQzIzRjkwN0Y5QkUwMzBFNDdCCis6MTA0MTdCMDAwMkQyM0Y5MDdGOUJFMDIwRTUwMkMyM0U5MDdGOUJFMDA2Cis6MTA0MThCMDAzMEU1MDJEMjNFQTI0MTMwM0YwMUIzNTAxRkEyM0Y5MjE1Cis6MTA0MTlCMDA0MTMwM0YwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5Nzc4Cis6MTA0MUFCMDBFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyRjAzMDNGMzQ5MDNECis6MTA0MUJCMDA3NjE5RTBGRkI0MDEwRTkwNzY3Qzc0NjdGMEEzNzQwNjU5Cis6MTA0MUNCMDBGMEEzNzQwQkYwRUZCNDAyMEJFNDkwNzY3Q0YwQTNGMDQ5Cis6MTA0MURCMDBBMzc0MENGMEVGQjQwMzBCRTQ5MDc2N0NGMEEzRjBBMzg0Cis6MTA0MUVCMDA3NDE4RjBBMjQwMzAzRTAxQjM1MDFGQTIzRTkyNDAzMEYzCis6MTA0MUZCMDAzRTA5OTA3Njk1RTA0NDA0RjA4MDA3OTA3Njk1RTA1NDY0Cis6MEI0MjBCMDBGQkYwOTA3Njk1RTA5MDgwMDFGMDIyMUYKKzoxMDQyMTYwMDkwNzYxOUUwNjQwMTcwMzU5MDc2ODdFMEZGRDM5NDJEOEYKKzoxMDQyMjYwMDQwMkI5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzMUEKKzoxMDQyMzYwMDk0MEY0MDE5RTRGMEVGRDM5NDMxNDAwODkwNzYxOTc0NDYKKzoxMDQyNDYwMDAzRjA4MDA2OTA3NjE5NzQwMkYwMTIzRThGOTA3NjE5NkMKKzoxMDQyNTYwMEUwQjQwMjJDOTA3Njg3RTBGRkMzOTQyRjUwMjJFRkQzNzAKKzoxMDQyNjYwMDk0MkE0MDFDOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwREUKKzoxMDQyNzYwMEUwRDM5NDBGNDAwQUU0RjA5MDc2MTkwNEYwMTIzRThGRDIKKzoxMDQyODYwMDkwNzYxOUUwQjQwMjI2OTA3Njg3RTBEMzk0MzE0MDFERUIKKzoxMDQyOTYwMDkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDM5NDBGNzIKKzoxMDQyQTYwMDQwMEJFNEYwOTA3NjE5NzQwM0YwMTIzRThGOTA3NjE5NjUKKzoxMDQyQjYwMEUwNjQwMzcwM0Y5MDc2ODdFMEZGQzM5NDVGNTAzNTkwQ0IKKzoxMDQyQzYwMDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzOTQwRjQwOTIKKzoxMDQyRDYwMDIzRTRGMEVGQzM5NDJGNTAwQ0VGRDM5NDJBNDAwNjkwQkEKKzoxMDQyRTYwMDc2MTk3NDAxRjBFRkQzOTQyRjQwMDY5MDc2MTk3NDAyNzQKKzoxMDQyRjYwMEYwMTIzRThGOTA3Njg2RTA3MDA1OTA3Njg1RjAyMkU0ODcKKzowNTQzMDYwMDkwNzY4NkYwMjIxNAorOjEwNDMwQjAwRTQ5MDc2OTZGMDkwODAwM0YwOTA3RkUwNzQ5MEYwOTBCQworOjEwNDMxQjAwN0ZFMTc0MDRGMEU0OTA3RkRERjA5MDdGQTFGMDUzOEU4OQorOjEwNDMyQjAwRjg3NTg4MDU3NUI4MjA3NUY4MDE0MzhFMzBGNUM4NzU5QQorOjEwNDMzQjAwQ0E3Rjc1Q0JGODQzQTgyMDEyMDc0QUMyMkNDMjJEQzJFNAorOjEwNDM0QjAwMkJDMjJGOTA3RkZDNzREREYwOTA3RkZGNzRGRkYwOTBGOQorOjEwNDM1QjAwN0Y5N0UwNDQwMUYwOTA3NjE5NzQwMUYwRTQ5MDc2ODUzNAorOjEwNDM2QjAwRjBBM0YwOTA3NjgxRjA5MDc2ODBGMDEyNDk1ODEyMEZGRQorOjEwNDM3QjAwQzYxMjRBOEQ5MDdGOTdFMDQ0MDhGMEUwNTRCOUYwRDIxMgorOjEwNDM4QjAwMzAyMDMwMTgxMjQ3QjQxMjMwMDAxMjQwMDAxMjQyMTY3RgorOjEwNDM5QjAwMTI0QTUwMTIxQjA0MTIxNjYxMTI0MjE2QzIyRkMyMzE1RQorOjEwNDNBQjAwQzIzMkMyMzRDMjMzQzIyOUMyMjdDMjI4RTRGNTExOTBFQgorOjEwNDNCQjAwNzY4OUYwOTA3NjNGRjA5MDc2NDFGMDkwNzY0MEYwOTBEMQorOjEwNDNDQjAwNzY4QUYwQTNGMEEzMDRGMEU0QTNGMDkwNzY5OUYwMjJBMAorOjEwNDNEQjAwMTI0REEzNDAwMjgxQTA5MDdGRUJFMDI0RkU2MDFFMTRERgorOjEwNDNFQjAwNjA0NjE0NjA2RTE0NzAwMjgxOTEyNDA0NjAwMjgxOTlGRQorOjEwNDNGQjAwNzQwNTkwN0ZENEYwNzQwMDkwN0ZENUYwMjI5MDdGRUEwMworOjEwNDQwQjAwRTBGRjEyNDlGRjhCMjA4QTIxODkyMkVBNDk2MDExQ0VGNQorOjEwNDQxQjAwRUFDRUVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjJBQworOjEwNDQyQjAwOTA3RkI0RTA0NDAxRjAyMjkwN0ZFQUUwRkYxMjQ4QjBBNQorOjEwNDQzQjAwOEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0VFRTkwN0Y0OQorOjEwNDQ0QjAwRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZCNEUwNDQ0QQorOjEwNDQ1QjAwMDFGMDIyOTA3RkVBRTBGRjkwN0VDMEUwRkRBM0UwRkIzRAorOjEwNDQ2QjAwMTIxNzk0OEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0U1OQorOjEwNDQ3QjAwRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZGNQorOjEwNDQ4QjAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0YyRAorOjA1NDQ5QjAwQjRFMDQ0MDFGMDUzCis6MDE0NEEwMDAyMkY5Cis6MTA0NEExMDBDMkFGRDIyNDkwN0Y5Mzc0MzBGMDkwN0Y5Qzc0QkJGMEE0Cis6MTA0NEIxMDA5MDdGOTZFMDQ0MzBGMEUwNTQzMEYwOTA3Rjk0NzQzMDc3Cis6MTA0NEMxMDBGMDkwN0Y5RDc0Q0ZGMDkwN0Y5Nzc0QTBGMDkwN0Y5NUNFCis6MTA0NEQxMDA3NEMwRjA5MDdGOUU3NDAzRjA5MDdGOTlFMDMwRTIwOTAwCis6MTA0NEUxMDA5MDA1MTk3NEEwRjBFNEEzRjBDMjI1QzIyMkMyMjNDMjMwCis6MTA0NEYxMDAyNjEyNEFDNDEyMkRBOTEyM0JEMzEyNDU1OTEyM0E0MjJGCis6MTA0NTAxMDA5MDc2Njg3NDAxRjA3MDBGMTI0QkJCMTIwN0ZFMTI0RENBCis6MTA0NTExMDBBMTEyMUI0MDEyMTQ5NjEyNDMwQjkwN0ZBRkUwNDQwMThECis6MTA0NTIxMDBGMDkwN0ZBRUUwNDQxRkYwOTA3RkFDNzRGRkYwOTA3RjdECis6MTA0NTMxMDBBREYwOTA3RkRFRjA5MDdGREZGMDkwN0ZBQkYwOTA3RjY5Cis6MTA0NTQxMDBBOUYwOTA3RkFBRjA1MzkxRUY0M0Q4MjBEMkU4NDNEODQ1Cis6MDg0NTUxMDAyMDUzQThBMDQzQTg4MDIyMUEKKzoxMDQ1NTkwMEU0OTA3NjM2RjBFMEZGNzVGMDAzQTQyNDMyRjU4MkU0QTYKKzoxMDQ1NjkwMDM0NzVGNTgzRTRGMEVGNzVGMDAzQTQyNDMzRjU4MkU0QTAKKzoxMDQ1NzkwMDM0NzVGNTgzNzQwMUYwOTA3NjM2RTAwNEYwRTBGRjc1NDgKKzoxMDQ1ODkwMEYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0U0RjBFRjc1ODEKKzoxMDQ1OTkwMEYwMDNBNDI0MzNGNTgyRTQzNDc1RjU4Mzc0MDJGMDkwQjIKKzoxMDQ1QTkwMDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDMyRjU4MkU0RTYKKzoxMDQ1QjkwMDM0NzVGNTgzRTRGMEVGNzVGMDAzQTQyNDMzRjU4MkU0NTAKKzoxMDQ1QzkwMDM0NzVGNTgzNzQwM0YwOTA3NjM2RTAwNEYwRTBGRjc1RjYKKzoxMDQ1RDkwMEYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0U0RjBFRjc1MzEKKzoxMDQ1RTkwMEYwMDNBNDI0MzNGNTgyRTQzNDc1RjU4Mzc0MDRGMDIyQ0UKKzowQzQ1RjkwMDc4N0ZFNEY2RDhGRDc1ODEzODAyNDY0MDVBCis6MTA0NjA1MDAwMjQ3NUFFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjJBCis6MTA0NjE1MDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0I2Cis6MTA0NjI1MDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjg1Cis6MTA0NjM1MDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwQzhGRTQ3RTdBCis6MTA0NjQ1MDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzdBCis6MTA0NjU1MDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBMzQxCis6MTA0NjY1MDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTZDCis6MTA0Njc1MDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTI0Cis6MTA0Njg1MDA5MDdGRUNFMDkwNzY4M0YwRTAxNDYwMUQxNDYwMkExNEFFCis6MTA0Njk1MDA2MDM3MTQ2MDQ0MjQwNDcwNTA5MDc2OTFFMDkwN0YwMDU4Cis6MTA0NkE1MDBGMDkwN0ZCNTc0MDFGMDgwNDc5MDc2OTJFMDkwN0YwMDlFCis6MTA0NkI1MDBGMDkwN0ZCNTc0MDFGMDgwMzc5MDc2OTBFMDkwN0YwMEEwCis6MTA0NkM1MDBGMDkwN0ZCNTc0MDFGMDgwMjc5MDc2ODRFMDkwN0YwMEFDCis6MTA0NkQ1MDBGMDkwN0ZCNTc0MDFGMDgwMTc5MDc2OTNFMDkwN0YwMDlECis6MTA0NkU1MDBGMDkwN0ZCNTc0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDRECis6MDI0NkY1MDBEMzIyQ0UKKzoxMDQ2RjcwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwM0QKKzoxMDQ3MDcwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGRjcKKzoxMDQ3MTcwMEMwRTBDMkNBQzJDRjkwN0Y5OEUwNDQwMUYwMzAyRTAzQjgKKzoxMDQ3MjcwMDEyMTRBNjkwN0Y5OEUwNTRGRUYwNTNBOEZBMTIxNjYxNkYKKzoxMDQ3MzcwMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBGQ0QwRTBGQkQwNDEKKzoxMDQ3NDcwMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDA4MkQwODNEMEYwMzIKKzowMzQ3NTcwMEQwRTAzMjdECis6MTA0NzVBMDBFNDkwNzY2NkYwMTI0NEExMjAyNjEzOTA3NjY2RTBDM0IwCis6MTA0NzZBMDA5NDAyNTAwQUUwMDRGMEQyNDIxMjRBRjY4MEVBMzAyNjU1Cis6MTA0NzdBMDAwNTEyMjgwMUMyMjYzMDI1MkI5MDc2OTZFMDU0RkNGMENCCis6MTA0NzhBMDA5MDgwMDNGMDEyMTQ5NjkwNzY5NkUwNDQwM0YwOTA4MDlECis6MTA0NzlBMDAwM0YwRTQ5MDc2NjdGMDkwNzY2N0UwMDRGMEUwQjQ0QkJCCis6MEE0N0FBMDBGNjEyM0ZGQTEyNDExQjgwQzUyMkVGCis6MTA0N0I0MDBFNDkwNzY5QkYwOTA3NjlCRTBGRjA0RjBFRjYwMDhFMEQ1Cis6MTA0N0M0MDAyNDA4RjhFNEY2ODBFRTkwNzY5NkUwNTRGQkYwNTRGNzczCis6MTA0N0Q0MDBGMDkwODAwM0YwRTRGNTE4RDIzNUY1MEVGNTEwRDIzNkRBCis6MTA0N0U0MDA3NTEyMTE3NTEzMjJDMjM3QzIzOUMyMzhGNTE2RjUxNDgxCis6MEI0N0Y0MDBGNTFBRjUwREMyM0JDMjNDQzIzRDIyOEQKKzoxMDQ4MDAwMDkwN0ZFQ0UwOTA3NjgzRjBFMDE0NjAxNzE0NjAyMTE0NDAKKzoxMDQ4MTAwMDYwMkIxNDYwMzIyNDA0NzAzODkwN0ZFQUUwOTA3NjkxMjcKKzoxMDQ4MjAwMEYwODAzNTkwN0ZFQUUwOTA3NjkyRjAxMjNFOEY4MDI4RkIKKzoxMDQ4MzAwMDkwN0ZFQUUwOTA3NjkwRjAxMjE4MDA4MDFCOTA3RkVBNUIKKzoxMDQ4NDAwMEUwOTA3Njg0RjA4MDExOTA3RkVBRTA5MDc2OTNGMDgwOUIKKzowQTQ4NTAwMDA3OTA3RkI0RTA0NDAxRjBEMzIyOEEKKzoxMDQ4NUEwMEU0OTA3NjI2RjA5MDc2MjZFMEZGNzVGMDAzQTQyNDM0REYKKzoxMDQ4NkEwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEQjEKKzoxMDQ4N0EwMDYwMEVFRkMzOTQwNDUwMDg5MDc2MjZFMDA0RjA4MEQ1QzkKKzoxMDQ4OEEwMEVGQjQwNDA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzMUUKKzoxMDQ4OUEwMEE0MjQzMkY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDkwMjkKKzowNjQ4QUEwMDdGQjU3NDAxRjAyMjRECis6MDI0OEIwMDA4RjJFNDkKKzoxMDQ4QjIwMEU0RjUyRjc1MzBGRjc1MzEwNjc1MzJCRUFCMzBBQTMxODMKKzoxMDQ4QzIwMEE5MzI5MDAwMDExMjM2QUJCNDAzMUZBRjJGMDUyRkVGQjAKKzoxMDQ4RDIwMDY1MkU3MDAxMjIxMjM2OTI3RTAwMjlGRkVFM0FDOUVGNTAKKzoxMDQ4RTIwMEM5NzUzMEZGRjUzMTg5MzI4MEQyN0IwMDdBMDA3OTAwQjgKKzowMTQ4RjIwMDIyQTMKKzowQzQ4RjMwMEMyMzdFNEY1MEVGNTEwQzIzNkY1MTQyMkIxCis6MTA0OTAwMDAwMjJGRTcwMDAyM0Q0NzAwMDI0RDQ2MDAwMjRCRDUwMDUyCis6MTA0OTEwMDAwMjRCNjAwMDAyMkZGRjAwMDI0QkVEMDAwMjRCODEwMEIyCis6MTA0OTIwMDAwMjRDMDQwMDAyM0ZENTAwMDI0QzFCMDAwMjRDMzIwMDM2Cis6MTA0OTMwMDAwMjRDNDkwMDAyNEM2MDAwMDI0Qzc3MDAwMjRDOEUwMDkxCis6MTA0OTQwMDAwMjRDQTUwMDAyNENCQzAwMDI0Q0QzMDAwMjRDRUEwMDExCis6MDg0OTUwMDAwMjREMDEwMDAyNEQxODAwQTgKKzoxMDQ5NTgwMDkwNzY0Njc0ODBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzNEMKKzoxMDQ5NjgwMEYwQTNGMEEzRjBBM0YwQTM3NDgwRjBFNEEzRjBBM0YwMDUKKzoxMDQ5NzgwMEEzRjBBM0YwQTNGMEEzRjBBMzc0NDBGMEU0QTNGMEEzODIKKzoxMDQ5ODgwMDc0NDBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjBBM0YwMjUKKzoxMDQ5OTgwMEEzNzQ0MEYwRTRBM0YwQTM3NDQwRjBFNEEzRjBBM0YwMDAKKzowNTQ5QTgwMEEzRjBBM0YwMjJDMgorOjEwNDlBRDAwRTQ5MDc2MjVGMDkwNzYyNUUwRkY3NUYwMDNBNDI0MzQ4RAorOjEwNDlCRDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkQ1RAorOjEwNDlDRDAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNUUwMDRGMDgwRDU3NgorOjEwNDlERDAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyOTA3RUMwRTA3MworOjEwNDlFRDAwRkVFRjc1RjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRUUwMQorOjAyNDlGRDAwRjAyMkE2Cis6MTA0OUZGMDBFNEZFNzUxREZGNzUxRTA1NzUxRjEyQUIxREFBMUVBOUJFCis6MTA0QTBGMDAxRjkwMDAwMTEyMzZBQjY0MDI3MDJGQ0RFRUNEMEVFRDZDCis6MTA0QTFGMDA2RjcwMDEyMjkwMDAwMjEyMzcwRTg1RjAxQkY1MUM2Mjk5Cis6MTA0QTJGMDAxQkU1MUI2MjFDRTUxQzYyMUIyOUZERTUxQjNBQzlFRDRBCis6MTA0QTNGMDBDOTc1MURGRkY1MUU4OTFGODBDMTdCMDA3QTAwNzkwMEEzCis6MDE0QTRGMDAyMjQ0Cis6MTA0QTUwMDAzMDJEMzlDMjJEOTA3NjE5RTBGRkI0MDEwREU0OTA3NjI3Cis6MTA0QTYwMDA3Q0YwQTM3NEY4RjBBMzc0MEFGMEVGQjQwMjBERTQ5MEE0Cis6MTA0QTcwMDA3NjdDRjBBMzc0RjBGMEEzNzQwQkYwRUZCNDAzMERFNEI0Cis6MEQ0QTgwMDA5MDc2N0NGMEEzNzRGOEYwQTM3NDE3RjAyMjc4Cis6MTA0QThEMDBFNEZGNzQ1NjJGRjU4MkU0MzQ3NkY1ODNFMEZFNzQyODQ2Cis6MTA0QTlEMDAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0NUUyRkY1ODJFNDE5Cis6MTA0QUFEMDAzNDc2RjU4M0UwRkU3NDM4MkZGNTgyRTQzNDgwRjU4Mzk3Cis6MDY0QUJEMDBFRUYwMEZCRjA4Q0M3MworOjAxNEFDMzAwMjJEMAorOjEwNEFDNDAwRTQ5MDcyMzZGMEEzRjA5MDdGOTdFMDU0RkJGMEU0OTAwQQorOjEwNEFENDAwNzIzM0YwOTA3MjMyRjA5MDcyMDEwNEYwRTQ5MDcyMzMwOQorOjEwNEFFNDAwRjA5MDcyMzJGMDkwNzIwMTA0RjA5MDdGOTdFMDQ0MDRFOQorOjAyNEFGNDAwRjAyMkFFCis6MTA0QUY2MDA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzA0MjA0RTA0NEY2Cis6MTA0QjA2MDAwMkYwN0ZEQzdFMDUxMjREMkY5MDdGRDZFMDU0RjdGMDQxCis6MDU0QjE2MDBFMDQ0MDRGMDIyNjAKKzoxMDRCMUIwMDkwN0ZFQkUwMTQ3MDE0OTA3RkU5RTAyNDdGNzAwNDEyMTcKKzoxMDRCMkIwMDQ4NUEyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0RDUKKzowMzRCM0IwMDAxRjAyMjY0Cis6MTA0QjNFMDA5MDdGRUJFMDE0NzAxMzkwN0ZFOUUwMTQ3MDA0MTI0OTNCCis6MTA0QjRFMDBBRDIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUE2Cis6MDI0QjVFMDBGMDIyNDMKKzoxMDRCNjAwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMDkwOEYKKzoxMDRCNzAwMDc2OTZFMDU0RkRGMDkwODAwM0YwRDA4MkQwODNEMEUwQjAKKzowMTRCODAwMDMyMDIKKzoxMDRCODEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwMUYwNUUKKzowRjRCOTEwMEMyMjk5MDc2OEQ3NDAxRjBEMDgyRDA4M0QwRTAzMkFCCis6MTA0QkEwMDA5MDdGRUFFMDkwNzY4MkYwRTQ5MDc2OTFGMDkwNzY5MkIxCis6MEI0QkIwMDBGMDkwNzY5MEYwOTA3NjkzRjBEMzIyMDYKKzoxMDRCQkIwMDkwN0ZENkUwMzBFNzEyRTA0NDAxRjA3RjE0N0UwMDEyQzQKKzowQTRCQ0IwMDREMkY5MDdGRDZFMDU0RkVGMDIyM0IKKzoxMDRCRDUwMEMwRTBDMDgzQzA4MkQyMjU1MzkxRUY5MDdGQUI3NDA4QUIKKzowODRCRTUwMEYwRDA4MkQwODNEMEUwMzI1MQorOjEwNEJFRDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAxRjBGMworOjA3NEJGRDAwRDA4MkQwODNEMEUwMzIyQQorOjEwNEMwNDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAyRjBEQQorOjA3NEMxNDAwRDA4MkQwODNEMEUwMzIxMgorOjEwNEMxQjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA0RjBDMQorOjA3NEMyQjAwRDA4MkQwODNEMEUwMzJGQgorOjEwNEMzMjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA0RjBBOQorOjA3NEM0MjAwRDA4MkQwODNEMEUwMzJFNAorOjEwNEM0OTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA4RjA4RgorOjA3NEM1OTAwRDA4MkQwODNEMEUwMzJDRAorOjEwNEM2MDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA4RjA3NworOjA3NEM3MDAwRDA4MkQwODNEMEUwMzJCNgorOjEwNEM3NzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDEwRjA1OQorOjA3NEM4NzAwRDA4MkQwODNEMEUwMzI5RgorOjEwNEM4RTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDEwRjA0MQorOjA3NEM5RTAwRDA4MkQwODNEMEUwMzI4OAorOjEwNENBNTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDIwRjAxQgorOjA3NENCNTAwRDA4MkQwODNEMEUwMzI3MQorOjEwNENCQzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDIwRjAwMworOjA3NENDQzAwRDA4MkQwODNEMEUwMzI1QQorOjEwNENEMzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDQwRjBDRAorOjA3NENFMzAwRDA4MkQwODNEMEUwMzI0MworOjEwNENFQTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDQwRjBCNQorOjA3NENGQTAwRDA4MkQwODNEMEUwMzIyQworOjEwNEQwMTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDgwRjA1RQorOjA3NEQxMTAwRDA4MkQwODNEMEUwMzIxNAorOjEwNEQxODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDgwRjA0NgorOjA3NEQyODAwRDA4MkQwODNEMEUwMzJGRAorOjEwNEQyRjAwOEUzNThGMzZFNTM2MTUzNkFFMzU3MDAyMTUzNTRFNjAzOQorOjA3NEQzRjAwMDUxMjE0ODU4MEVFMjIyRAorOjEwNEQ0NjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwNEYwRDA3MworOjA2NEQ1NjAwODJEMDgzRDBFMDMyQTAKKzoxMDRENUMwMDkwNzY4MkUwOTA3RjAwRjA5MDdGQjU3NDAxRjBEMzIyQzIKKzowOTRENkMwMEMyMjU1M0Q4RUY0M0Q4MjAzMkQwCis6MDc0RDc1MDA1Mzk4RkU1Mzk4RkQzMjM0Cis6MDc0RDdDMDA1M0MwRkU1M0MwRkQzMkRECis6MDY0RDgzMDA1MzkxQkZEMjJEMzI1NgorOjA2NEQ4OTAwNTM5MTdGRDIyQzMyOTEKKzowNDREOEYwMDUzOTFERjMyMkIKKzowNDREOTMwMDUzRDhGNzMyQzgKKzowNDREOTcwMDEyMTczMDIyOUQKKzowMzREOUIwMEMyOEQzMjk0Cis6MDM0RDlFMDBDMjhGMzI4RgorOjAyNERBMTAwRDMyMjFCCis6MDI0REEzMDBEMzIyMTkKKzowMjREQTUwMEQzMjIxNworOjAyNERBNzAwRDMyMjE1Cis6MDI0REE5MDBEMzIyMTMKKzowMjREQUIwMEMzMjIyMQorOjAwMDAwMDAxRkYKKy8qCitTb3VyY2U6IEVNSTYyU0ZXLkhFWAorVkVSU0lPTj0xLjA0LjA2MgorREFURT0xNi4xMC4yMDAyCisqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZXNzL21hZXN0cm8zX2Fzc3Bfa2VybmVsLmZ3LmloZXggYi9maXJtd2FyZS9lc3MvbWFlc3RybzNfYXNzcF9rZXJuZWwuZncuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzNjNGMzCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZXNzL21hZXN0cm8zX2Fzc3Bfa2VybmVsLmZ3LmloZXgKQEAgLTAsMCArMSwxMjAgQEAKKzoxMDAwMDAwMDgwNzkzMDAwODA3OUI0MDM4MDc5QjQwMzgwNzlGQjAwNzMKKzoxMDAwMTAwMDgwNzlERDAwODA3OUI0MDM4MDc5MzIwMzgwNzk4NzAyQUEKKzoxMDAwMjAwMDgwNzlCNDAzODA3OUI0MDM4MDc5QjQwMzgwNzlCNDAzMTAKKzoxMDAwMzAwMDgwNzkxQTAzODA3OUI0MDM4MDc5MkYwMjgwNzlCNDAzMjAKKzoxMDAwNDAwMDgwNzlCNDAzODA3OUI0MDM4MDc5QjQwMzgwNzlCNDAzRjAKKzoxMDAwNTAwMDgwNzk2MzAwODA3OTZCMDA4MDc5QjQwMzgwNzlCNDAzODAKKzoxMDAwNjAwMDgwQkY3QzJDMDY4ODA0ODg0MEJFMjBCQzA5QUUwMDEwRUUKKzoxMDAwNzAwMDBBQUUwMTAwMzg2OTA4RUI1MzAwNUE2OTA4RUJENjAwNTQKKzoxMDAwODAwMDA5MDA4ODhCODA2OTg4RTMzNjAwMzBCRTIwQkMwOTY5OEUKKzoxMDAwOTAwMDAxQjgwOTkwNDFCRTQxQkUyODY5ODhFQjc4MDA0MUJFOTUKKzoxMDAwQTAwMDQwQkU4MDc5MzgwMDQxQkU0MUJFM0E5MDM4NjkwOEUzQ0QKKzoxMDAwQjAwMDU2MDAzQTkwNDFCRTQwQkUwMEVGM0E5MDM5NjkwOEUzREQKKzoxMDAwQzAwMDVFMDAzQTkwMDBFRjBCNjkwQzY2OENFRjBBNjkwQzY2RDMKKzoxMDAwRDAwMDBCNjIwOTY2MDBFRjEwNjkwRjY2MDRFRjg4RTM3NTAwOTQKKzoxMDAwRTAwMDBFNjkwRjY2MTA2MjBENjYwMEVGMEU2OTBENjYwMEVGNzcKKzoxMDAwRjAwMDcwQUUwMTAwMjBCQzI3QUUwMTAwMzk2OTA4RUI1RDAwM0QKKzoxMDAxMDAwMDI2NjkwMUI4MjY5MDI2MDA4ODhCODA2OTg4RTNDQjAwOTkKKzoxMDAxMTAwMDI4OTAyODBEMTE0MjAwRTE3QTAwMTE0NzAwRTFBMDAwNkIKKzoxMDAxMjAwMDgwN0E2MzAwMTFCODBBNjYwOTYyMDRFMzdBMDAwQjBDNTYKKzoxMDAxMzAwMDA1NDAwQTEwMDFCQTEyOTAxMjBDMDI0MDgwNzlBRjAwRkIKKzoxMDAxNDAwMDgwN0E2QjAwMDJCRTBFNjIwRDY2MTBCQTQ0RTM3QTAwM0MKKzoxMDAxNTAwMDEwMEMwNTQwMEUxMDAxQkExMjkwMTIwQzAyNDAwMzEwNTAKKzoxMDAxNjAwMDAyQkExMjkwMTIwQzAwNDAwMzEwODhFM0JBMDAwNDEwODcKKzoxMDAxNzAwMDgwNzlCQzAwMDQxMDAxQkExMjkwMTIwQzAxNDAwNTBDRTkKKzoxMDAxODAwMDAzNDAwNjBDMDQ0MDExMTBCMEJGRkYwMTEyOTAxMjBDODYKKzoxMDAxOTAwMDA2NDAyMEJDMDBFRjI2QUUyODEwNzA2OUQwQkYwMTAwRDkKKzoxMDAxQTAwMDcwOTA4OEUzN0EwMDI4QUUwMDAwMDBFRjcwQUUwMDAzODQKKzoxMDAxQjAwMDcwMEMwQ0IwNUFBRTAwMDAwMEVGODA3QThBMDM3RjY5QTEKKzoxMDAxQzAwMDAxQjg3RjkwNTYwMDg4OEJBMDBDMDhCMDcxQUYwMEIwQ0EKKzoxMDAxRDAwMDcxNEUwMEUyRjMwMDU2QUU1NzEwNTYwMEEwMEMwOEIwNjYKKzoxMDAxRTAwMDU2ODA4MDc5QTEwMzEwMDhBMEJGNTkxMDA0RTNBMTAzMzEKKzoxMDAxRjAwMDU2ODA4MDc5QTEwMzgwN0E4QTAzMDFCRjQzQkU1OUJFMkQKKzoxMDAyMDAwMDdDOTAzNzY5ODhFMzBEMDEwMUJBMDhFMzBDMDE3MUFFRjcKKzoxMDAyMTAwMDA0MDA3MTBDMDA1MDM2NjkzNzkwMEFCRjlFMTA4QThCMUIKKzoxMDAyMjAwMDgwQUYxNDgwODA0QzBBQkY2MDA1MDBGNTBBQkYyMDA1MkUKKzoxMDAyMzAwMDAwQjkxN0JCQTA5MDE3Njk4OEUzNDgwMTE3MEQwMEUxQ0EKKzoxMDAyNDAwMDI3MDEwQ0JGNzgwNTBEQkY3QzA1ODA3OTJCMDEwQ0JGMDEKKzoxMDAyNTAwMDM4MDUwREJGM0MwNTAwNjkwOEUzMzUwMThDOEI1OUJFOUMKKzoxMDAyNjAwMDA3QkJBMDkwMjBCQzgwNzk1NzAxMEMwMzhCOEIwM0I5OEUKKzoxMDAyNzAwMDA5ODhDNkJFM0UwMUFDNjlBQjkwQUQ2OUFCOTAxMzA4NkUKKzoxMDAyODAwMDBBNjY0NEUzNDQwMTA5MDMwQzgzMjBCQzgwNzk1NzAxQ0EKKzoxMDAyOTAwMDU1Njk4OEUzNTcwMTM4N0MwQkJGNzgwNTAwRjUwQkJGMjMKKzoxMDAyQTAwMDM4MDUwN0I5MDk4OEM2QkU1NjAxQUIxMEFBOTA3NDY5MTMKKzoxMDAyQjAwMDg4RTM2MzAxNzJBRTQwMDUwMEY1NzJBRTAwMDU2MUFFRTEKKzoxMDAyQzAwMDNCMTA4MDdBRjYwMjc4Njk4OEUzODIwMThDOEIwQ0JGNDAKKzoxMDAyRDAwMDYwMDUwMEU1NDA3QzE0MDgyMEJBMTI4ODNENzM4MDdBREUKKzoxMDAyRTAwMDgwMDMzRTczODA3QTgwMDM4QzhCMENCRjZDMDUwMEU1MjUKKzoxMDAyRjAwMDQwN0MxNDA4MkNCQTEyODgzRjczODA3QTgwMDM0MDczQzQKKzoxMDAzMDAwMDgwN0E4MDAzNzU2OTg4RTM4RTAxNzJBRTQ4MDUwMEY1MzYKKzoxMDAzMTAwMDcyQUUwODA1NjFBRTQxMTA4MDdBRjYwMjc5Njk4OEUzMTEKKzoxMDAzMjAwMEFEMDE4QzhCMENCRjYwMDUwMEU1NDA3QzE0MDgxOEJBNDkKKzoxMDAzMzAwMDEyODg0MzczODA3QTgwMDM0NDczODA3QTgwMDM4QzhCQTUKKzoxMDAzNDAwMDBDQkY2QzA1MDBFNTQwN0MxNDA4MjRCQTEyODg0NTczODQKKzoxMDAzNTAwMDgwN0E4MDAzNDY3MzgwN0E4MDAzNzY2OTg4RTNCOTAxRTYKKzoxMDAzNjAwMDcyQUU1ODA1MDBGNTcyQUUxODA1NjFBRTQ3MTA4MDdBN0UKKzoxMDAzNzAwMEY2MDI3QTY5ODhFM0Q4MDE4QzhCMENCRjYwMDUwMEU1MzIKKzoxMDAzODAwMDQwN0MxNDA4MDhCQTEyODg0OTczODA3QTgwMDM0QTczNDMKKzoxMDAzOTAwMDgwN0E4MDAzOEM4QjBDQkY2QzA1MDBFNTQwN0MxNDA4RDAKKzoxMDAzQTAwMDE0QkExMjg4NEI3MzgwN0E4MDAzNEM3MzgwN0E4MDAzNkUKKzoxMDAzQjAwMDIxQkMxQ0FFOTAxMDhBOEIwQUJGNjAwNTAwRTU0MDdDMTIKKzoxMDAzQzAwMDEyMDgwNEI4MTM4ODhEOEIwREJGNkMwNTAwRTU0MDdDQzYKKzoxMDAzRDAwMDE1MDgwNEI4MTE4ODgwN0E0QTAzOEE4QjBBQkY2MDA1MjEKKzoxMDAzRTAwMDAwRTU0MDdDMUY3MzAzQjkwOTg4QzZCRUY5MDE4QTU0MzEKKzoxMDAzRjAwMDAzQkVBMDk4MjA3MzAzQjkwOTg4QzZCRTAxMDI4QTU0QkYKKzoxMDA0MDAwMDAzQkVBMDk4MjAxRjFGMkYyNjk4MjBCQzM1Njk4OEUzQzMKKzoxMDA0MTAwMEExMDMzMzY5MDFCODMzOTBBMEJGRUUwMjA4RTNBMTAzNDIKKzoxMDA0MjAwMDMzOTAwMEJGNTE2OTg4RTMxRjAyMzQ3MzgwQkU2MDU3NjgKKzoxMDA0MzAwMDAzQkU3RTlGNTlCRTM0OTA3RTY5NTEwRDEzOTAyMEJDM0YKKzoxMDA0NDAwMDVDNjk4OEUzQTEwMzVFNzM4MEJFNjA1NzAzQkU3RTlGMzQKKzoxMDA0NTAwMDU5QkU1RTkwN0U2OTVDMEQxMzkwODA3OUExMDM4MDdBMEQKKzoxMDA0NjAwMDhBMDMwMUJGNDNCRTc3Njk4OEUzNEUwMjYxQUU0RDEwMzcKKzoxMDA0NzAwMDYxMDA4ODhCODA2OTg4RTM0RTAyNzE5MDcxMEQwQjAwREEKKzoxMDA0ODAwMEEwQUYxMDgwQTBBRjEwODAxMDA4MEE2NjA4RTM0OTAyRjAKKzoxMDA0OTAwMDA5MDAxMDA4MEM2Njg4RTM0RTAyMEI4MDIwQkM3QjY5QzMKKzoxMDA0QTAwMDg4RTNBMTAzMEFCRjlFMTA4QThCODBBRjE0ODA4MDRDMjIKKzoxMDA0QjAwMDAwRTE2NjAyN0M2OTkwQkY2MDA1NzI5MDcyMDM3QzY5RkUKKzoxMDA0QzAwMDkwQkY2NDA1NzM5MDczMDQ4MDc5NzAwMjdDNjk5MEJGNUIKKzoxMDA0RDAwMDIwMDU3MjkwNzIwMzdDNjk5MEJGMjQwNTczOTA3MzA0QTkKKzoxMDA0RTAwMDdDNjkwMUI4N0M5MDBBQkZGRDEwOEE4QjgwQUYxMDgwQjgKKzoxMDA0RjAwMDRGNzM4QTU0MDNCRTgwOTgyMUJDMjY3MzhCNTQwM0JFNkQKKzoxMDA1MDAwMDhCNjE4Qzk4MDNCRTgwNjE4MDk4ODA3OUExMDM4MDdBOEEKKzoxMDA1MTAwMDhBMDMyODBEMTE0NzAwRTFCRTAyMTJBRjA2NDAxMjY5OUUKKzoxMDA1MjAwMEIwQkYwMDBDODhFM0I2MDJBMEJGMDAwODg4RTNCMjAyQTcKKzoxMDA1MzAwMDEyNjlCMEJGMDAwQ0EwQkYwMDA0ODhFM0EzMDIwOTY5RTAKKzoxMDA1NDAwMDBCOTA4MDc5QTUwMjBCQUYwNTQwMDE2OTA1OTAwMjY5MDcKKzoxMDA1NTAwMDA2OTAxMTQzMDBFMUVEMDIxMTY5QzBCRjAwMjAxMTkwMjcKKzoxMDA1NjAwMDgwNzlFRDAyMDk2OTBCOTA4MDc5QjgwMjBCQUYwNTQwRTQKKzoxMDA1NzAwMDA1QUYwMzQwMDZBRjA0NDA4MDc5RUQwMjEyQUYwNjQwOUMKKzoxMDA1ODAwMDEyNjlCMEJGMDAwQzg4RTNFNzAyQTBCRjAwMDg4OEUzNEYKKzoxMDA1OTAwMEUzMDIxMjY5QjBCRjAwMENBMEJGMDAwNDg4RTNENDAyREMKKzoxMDA1QTAwMDBENjkxMDkwODA3OUQ2MDIxMEFGMDU0MDAxNjkwNTkwNjEKKzoxMDA1QjAwMDAyNjkwNjkwMTE0MzAwRTFFRDAyMTE2OUMwQkYwMDIwRkQKKzoxMDA1QzAwMDExOTA4MDc5RUQwMjBENjkxMDkwODA3OUU5MDIxMEFGRTkKKzoxMDA1RDAwMDA1NDAwNUFGMDM0MDA2QUYwNDQwMjBCQzcwNjk3MTkwMzAKKzoxMDA1RTAwMDgwN0E3ODAwNzE2OTcwOTA4MDc5QTEwMzIwQkM2MTAzRTIKKzoxMDA1RjAwMDhCOEI4MDY5ODhFRjcyMDI3MjAzMDQ3ODcxOTA3MTBEQTEKKzoxMDA2MDAwMDhBOEIwQjAwMDNCOTA5ODhDNkJFMDkwM0E4NjlBQjkwQTEKKzoxMDA2MTAwMEE4NjlBQTkwMTAwODBBNjY0NEUzMEYwMzA5MDAxMDA4QUQKKzoxMDA2MjAwMDBDNjY4OEUzMTQwMzBCODAyMEJDNjE2OTAxQjg2MTkwRkIKKzoxMDA2MzAwMDgwNzlGNzAyODA3QThBMDMzNTVEMDEwMDM0NjkwMUI4NTgKKzoxMDA2NDAwMDM0OTAwQUJGOUUxMDhBOEI4MEFGMTQ4MDgwNDg3MkFFQUYKKzoxMDA2NTAwMDUwMDUwMEY1NzJBRTEwMDU2MUFFNTExMDgwN0FGNjAyQjkKKzoxMDA2NjAwMDgwNzlBMTAzODA3QThBMDMzNTVEMDIwMDVFNjkwMUI4NTIKKzoxMDA2NzAwMDVFOTAwQUJGOUUxMDhBOEI4MEFGMTQ4MDgwNDc3MkFFNTYKKzoxMDA2ODAwMDU4MDUwMEY1NzJBRTE4MDU2MUFFNUMxMDgwN0FGNjAyNkUKKzoxMDA2OTAwMDgwNzlBMTAzMUMwMDg4OEI4MDY5ODhFRjFEOTAxRDBENTcKKzoxMDA2QTAwMDBGMTAxMDY2OENFMzU4MDMwRTY5MTA2NjBGNjIwRDY2MUEKKzoxMDA2QjAwMDBGQkEwMUUzN0EwMzEwMDQ4QThCMDNCOTA5ODhDNkJFMTYKKzoxMDA2QzAwMDZDMDM4QzZBQUE2MUFCOTg4QzZBQUI2MUFEOTg4QzZBM0EKKzoxMDA2RDAwMEFENjFBOTk4OEM2QUE5NjFBQTk4MDQ3QzhCOEIwNDdDNzMKKzoxMDA2RTAwMDhEOEIwNDdDODk4QjA0N0MxNDA4MEU2NjA4RTM3OTAzRTcKKzoxMDA2RjAwMDBEMDQxMDg0MjFCQzFDNjkwMUI4MUM5MDgwNzk0QTAzNDgKKzoxMDA3MDAwMDAzQjkwOTg4OEE4QkM2QkU4ODAzQUM1NDAzQkU4QzYxQ0EKKzoxMDA3MTAwMEFBOTgwMEVGMjBCQzQ2QkUwOTA4NkI5MDBBMDg2QzkwQUUKKzoxMDA3MjAwMDBCMDg2RDkwMUEwODYyOTAxQjA4NjM5MDFFMDg2NDkwNzUKKzoxMDA3MzAwMDU5QkUxRTg4NjU4MDY2ODE2NzgyNjg4MzY5ODQ2QTg1ODAKKzoxMDA3NDAwMDAwRUYyMEJDNkI2OTA5ODg2QzY5MEE4ODZENjkwQjg4QTkKKzoxMDA3NTAwMDYyNjkxQTg4NjM2OTFCODg2NDY5MUU4ODY1MDA2NjAxN0UKKzowQTA3NjAwMDY3MDI2ODAzNjkwNDZBMDUzQUJFRTcKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lc3MvbWFlc3RybzNfYXNzcF9taW5pc3JjLmZ3LmloZXggYi9maXJtd2FyZS9lc3MvbWFlc3RybzNfYXNzcF9taW5pc3JjLmZ3LmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJjMDAzMQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2Vzcy9tYWVzdHJvM19hc3NwX21pbmlzcmMuZncuaWhleApAQCAtMCwwICsxLDUxIEBACis6MTAwMDAwMDA4MEJGMUUxMDZFOTA2RTAwODg4QjgwNjk4OEVGNkY5MEE1Cis6MTAwMDEwMDA2RjBEMDA2OTA4RUIxMjA0MjBCQzZFNjkwMUI4NkU5MDg4Cis6MTAwMDIwMDA4MDc5MDMwNDBFQjkwNzg4NDNCRTAxQkY0N0JFNDFCRUI1Cis6MTAwMDMwMDA4MDdBMkEwMDQwQkUyOTMwQ0NFRjQxQkU4MDdBMjgwMDY5Cis6MTAwMDQwMDA0MEJFMjgzMENDRUYwNzY5MDhFMzJBMDQwOTY5MkM5MEU4Cis6MTAwMDUwMDA4MDc5MkMwNDBENjkyQzkwMDkxMDFBODgwQTEwMDFCQUI1Cis6MTAwMDYwMDAxQjg4MEQxMDFDODgwRTEwMDFCQTFEODg4MEJGRUQwMDgyCis6MTAwMDcwMDAxRTg4MEMwNTI0MDEwNEI5Mjc5MDE4NjkwOEUzQjMwNDBECis6MTAwMDgwMDAyRDkwMTM2OUEwQkY5ODc1MDRGNzJEQUVGRjAwOEQ4QkRFCis6MTAwMDkwMDAxOTY5MDhFMzYzMDQxQTY5MDhFMzU2MDQwN0I5MDk4ODczCis6MTAwMEEwMDBDNkJFNTMwNEE5MTBBRDkwODA3OTdDMDQwM0I5MDk4OEI5Cis6MTAwMEIwMDBDNkJFNjAwNDg5MTgyMjZDQUQ5MEE5MTAyMzZFMjI2QzE0Cis6MTAwMEMwMDBBRDkwODA3OTdDMDQxQTEwMDhFMzZGMDQwM0I5MDk4OEE1Cis6MTAwMEQwMDBDNkJFNkMwNEE5MTBBMDkwQUQ5MDgwNzk3QzA0MDFCOUQzCis6MTAwMEUwMDAwOTg4QzZCRTdCMDQ4OTE4MjI2Q0EwOTBBRDkwQTkxMDI3Cis6MTAwMEYwMDAyMzZFMjI2Q0EwOTBBRDkwMkQ2OTA4RTM5QzA0MjQwMTJFCis6MTAwMTAwMDAwM0I3MDJCOTE4ODg4OThCMkMwMjhBMTAwNDdDQTA5MDRFCis6MTAwMTEwMDAyQjY5MUY4ODgwN0U1QjA1MkE2OTA5ODg4OThCQTA5OUQ1Cis6MTAwMTIwMDA4QTEwQTA5MDJCNjkxRjg4ODA3RTVCMDUyQTY5MDk4ODQ4Cis6MTAwMTMwMDA4OThCQUY5OTk5N0I4NDA0MjQwMTBGMDYxQjEwMTMyMDJGCis6MTAwMTQwMDAxQjkwQTBCRkZGN0Y0NEUzQUMwNDFCOTA4OThCODA3QTk3Cis6MTAwMTUwMDAxQTA1Mjc2OTAxQkEyNzkwODA3QTIzMDUyNzY5MDhFM0UxCis6MTAwMTYwMDA5RTA0ODA3OTBGMDUyNDA2MjYxMDEzMjAyNjkwQTBCRjM4Cis6MTAwMTcwMDBGRjdGMDRFM0MwMDQ4RDhCODA3QTFBMDU4MDc5QjQwNDc0Cis6MTAwMTgwMDAyNjkwMTMxMDI2MzAxQjkwOEQ4QjgwN0ExQTA1ODA3QTZBCis6MTAwMTkwMDAyMzA1MjcxMDAxQkEyNzkwMDhFM0I0MDQyNDAxMEYwNkIxCis6MTAwMUEwMDA4OThCMUE2OTA4RTNFQTA0MTk2OTg4RTNFMDA0MDNCOTUyCis6MTAwMUIwMDAwOTg4QzZCRUREMDRBMDFGQUUyRkE5OTg4MDc5MEYwNTVGCis6MTAwMUMwMDAwMUI5MTg4ODA3QjkwOTg4QzZCRUU3MDRFRTEwQTk5MERFCis6MTAwMUQwMDA4MDc5MEYwNTE5NjkwOEUzRkUwNDAzQjkwOTg4NDZCRTUyCis6MTAwMUUwMDBDNkJFRkEwNEEwMTcxRUJFQUUxRkJGQkYwMEZGMTNCRURGCis6MTAwMUYwMDBERkJGODA4MEE5OTk0N0JFODA3OTBGMDUwMUI5MDk4OEMyCis6MTAwMjAwMDBDNkJFMEUwNUEwMTZBMDI2QjdCRjAwRkYxRUJFQTAxRUNDCis6MTAwMjEwMDBBRTJFQkZCRjAwRkYxM0JFREZCRjgwODBBOTk5MEM4NTQzCis6MTAwMjIwMDAwRjg2MDc2OTg4RTMxNjA1MDcwRDEwODU1OUJFMUU4OERECis6MTAwMjMwMDA0QUJFMDBFRjFFMTAxQzkwMUYxMDFEOTBBMDEwMUU5MEIzCis6MTAwMjQwMDBBMDEwMUY5MDAwRUYxRTEwMUMzMDIwOTAxQjczMjA1NDM0Cis6MTAwMjUwMDAwM0JFMjU5ODI1MTAxQzIwMjU5MDI1NzMxNDU0MDNCRTM5Cis6MTAwMjYwMDA4RThCODA5ODJGNjk4OEUzMzkwNTU5QkUwN0JCODA2MTYyCis6MTAwMjcwMDA4MDk4QTA4QjFGMTAxRDMwMjE5MDFCNzMyMTU0MDNCRTRBCis6MTAwMjgwMDAyRTk4MkUxMDFEMjAyRTkwMkU3MzE1NTQwM0JFODA5ODhDCis6MTAwMjkwMDAyRjY5ODhFMzRGMDU1OUJFMDdCQjgwNjE4MDk4QTA4QjBBCis6MTAwMkEwMDAxODY5MDhFRjI1NzMxNjU0MDNCRUEwOTgyRTczMTc1NENGCis6MTAwMkIwMDAwM0JFQTA5ODAwRUZBMDhCQzZCRTZCMDU1OUJFMDRCQjYxCis6MTAwMkMwMDA5MEFBMDRCRTFFQkVFMDk5RTA4QkEwNjlEMDkwQTA2OTAwCis6MTAwMkQwMDBEMDkwMUYwODA1QjgxRjg4OTA4QkEwNjlEMDkwQTA2OUE2Cis6MTAwMkUwMDA5MDkwRDA4QkQ4OEIxRkJFMDBFRjAwMDAwMDAwMDAwMDY0Cis6MTAwMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECis6MDIwMzEwMDAwMDAwRUIKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS9paGV4MmZ3LmMgYi9maXJtd2FyZS9paGV4MmZ3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjYwYjE5MQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2loZXgyZncuYwpAQCAtMCwwICsxLDI2OCBAQAorLyoKKyAqIFBhcnNlci9sb2FkZXIgZm9yIElIRVggZm9ybWF0dGVkIGRhdGEuCisgKgorICogQ29weXJpZ2h0IMKpIDIwMDggRGF2aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgorICogQ29weXJpZ2h0IMKpIDIwMDUgSmFuIEhhcmtlcyA8amFoYXJrZXNAY3MuY211LmVkdT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjZGVmaW5lIF9HTlVfU09VUkNFCisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisKKworc3RydWN0IGloZXhfYmlucmVjIHsKKwlzdHJ1Y3QgaWhleF9iaW5yZWMgKm5leHQ7IC8qIG5vdCBwYXJ0IG9mIHRoZSByZWFsIGRhdGEgc3RydWN0dXJlICovCisgICAgICAgIHVpbnQzMl90IGFkZHI7CisgICAgICAgIHVpbnQxNl90IGxlbjsKKyAgICAgICAgdWludDhfdCBkYXRhW107Cit9OworCisvKioKKyAqIG55YmJsZS9oZXggYXJlIGxpdHRsZSBoZWxwZXJzIHRvIHBhcnNlIGhleGFkZWNpbWFsIG51bWJlcnMgdG8gYSBieXRlIHZhbHVlCisgKiovCitzdGF0aWMgdWludDhfdCBueWJibGUoY29uc3QgdWludDhfdCBuKQoreworICAgICAgIGlmICAgICAgKG4gPj0gJzAnICYmIG4gPD0gJzknKSByZXR1cm4gbiAtICcwJzsKKyAgICAgICBlbHNlIGlmIChuID49ICdBJyAmJiBuIDw9ICdGJykgcmV0dXJuIG4gLSAoJ0EnIC0gMTApOworICAgICAgIGVsc2UgaWYgKG4gPj0gJ2EnICYmIG4gPD0gJ2YnKSByZXR1cm4gbiAtICgnYScgLSAxMCk7CisgICAgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1aW50OF90IGhleChjb25zdCB1aW50OF90ICpkYXRhLCB1aW50OF90ICpjcmMpCit7CisgICAgICAgdWludDhfdCB2YWwgPSAobnliYmxlKGRhdGFbMF0pIDw8IDQpIHwgbnliYmxlKGRhdGFbMV0pOworICAgICAgICpjcmMgKz0gdmFsOworICAgICAgIHJldHVybiB2YWw7Cit9CisKK3N0YXRpYyBpbnQgcHJvY2Vzc19paGV4KHVpbnQ4X3QgKmRhdGEsIHNzaXplX3Qgc2l6ZSk7CitzdGF0aWMgdm9pZCBmaWxlX3JlY29yZChzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlY29yZCk7CitzdGF0aWMgaW50IG91dHB1dF9yZWNvcmRzKGludCBvdXRmZCk7CisKK3N0YXRpYyBpbnQgc29ydF9yZWNvcmRzID0gMDsKK3N0YXRpYyBpbnQgd2lkZV9yZWNvcmRzID0gMDsKKworaW50IHVzYWdlKHZvaWQpCit7CisJZnByaW50ZihzdGRlcnIsICJpaGV4MmZ3OiBDb252ZXJ0IGloZXggZmlsZXMgaW50byBiaW5hcnkgIgorCQkicmVwcmVzZW50YXRpb24gZm9yIHVzZSBieSBMaW51eCBrZXJuZWxcbiIpOworCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6IGloZXgyZncgWzxvcHRpb25zPl0gPHNyYy5IRVg+IDxkc3QuZnc+XG4iKTsKKwlmcHJpbnRmKHN0ZGVyciwgIiAgICAgICAtdzogd2lkZSByZWNvcmRzICgxNi1iaXQgbGVuZ3RoKVxuIik7CisJZnByaW50ZihzdGRlcnIsICIgICAgICAgLXM6IHNvcnQgcmVjb3JkcyBieSBhZGRyZXNzXG4iKTsKKwlyZXR1cm4gMTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCWludCBpbmZkLCBvdXRmZDsKKwlzdHJ1Y3Qgc3RhdCBzdDsKKwl1aW50OF90ICpkYXRhOworCWludCBvcHQ7CisKKwl3aGlsZSAoKG9wdCA9IGdldG9wdChhcmdjLCBhcmd2LCAid3MiKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChvcHQpIHsKKwkJY2FzZSAndyc6CisJCQl3aWRlX3JlY29yZHMgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ3MnOgorCQkJc29ydF9yZWNvcmRzID0gMTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcmV0dXJuIHVzYWdlKCk7CisJCX0KKwl9CisKKwlpZiAob3B0aW5kICsgMiAhPSBhcmdjKQorCQlyZXR1cm4gdXNhZ2UoKTsKKworCWlmICghc3RyY21wKGFyZ3Zbb3B0aW5kXSwgIi0iKSkKKwkgICAgaW5mZCA9IDA7CisJZWxzZQorCQlpbmZkID0gb3Blbihhcmd2W29wdGluZF0sIE9fUkRPTkxZKTsKKwlpZiAoaW5mZCA9PSAtMSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBvcGVuIHNvdXJjZSBmaWxlOiAlcyIsCisJCQlzdHJlcnJvcihlcnJubykpOworCQlyZXR1cm4gdXNhZ2UoKTsKKwl9CisJaWYgKGZzdGF0KGluZmQsICZzdCkpIHsKKwkJcGVycm9yKCJzdGF0Iik7CisJCXJldHVybiAxOworCX0KKwlkYXRhID0gbW1hcChOVUxMLCBzdC5zdF9zaXplLCBQUk9UX1JFQUQsIE1BUF9TSEFSRUQsIGluZmQsIDApOworCWlmIChkYXRhID09IE1BUF9GQUlMRUQpIHsKKwkJcGVycm9yKCJtbWFwIik7CisJCXJldHVybiAxOworCX0KKworCWlmICghc3RyY21wKGFyZ3Zbb3B0aW5kKzFdLCAiLSIpKQorCSAgICBvdXRmZCA9IDE7CisJZWxzZQorCQlvdXRmZCA9IG9wZW4oYXJndltvcHRpbmQrMV0sIE9fVFJVTkN8T19DUkVBVHxPX1dST05MWSwgMDY0NCk7CisJaWYgKG91dGZkID09IC0xKSB7CisJCWZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIG9wZW4gZGVzdGluYXRpb24gZmlsZTogJXMiLAorCQkJc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0dXJuIHVzYWdlKCk7CisJfQorCWlmIChwcm9jZXNzX2loZXgoZGF0YSwgc3Quc3Rfc2l6ZSkpCisJCXJldHVybiAxOworCisJb3V0cHV0X3JlY29yZHMob3V0ZmQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHByb2Nlc3NfaWhleCh1aW50OF90ICpkYXRhLCBzc2l6ZV90IHNpemUpCit7CisJc3RydWN0IGloZXhfYmlucmVjICpyZWNvcmQ7CisJdWludDMyX3Qgb2Zmc2V0ID0gMDsKKwl1aW50OF90IHR5cGUsIGNyYyA9IDAsIGNyY2J5dGUgPSAwOworCWludCBpLCBqOworCWludCBsaW5lID0gMTsKKwlpbnQgbGVuOworCisJaSA9IDA7CituZXh0X3JlY29yZDoKKwkvKiBzZWFyY2ggZm9yIHRoZSBzdGFydCBvZiByZWNvcmQgY2hhcmFjdGVyICovCisJd2hpbGUgKGkgPCBzaXplKSB7CisJCWlmIChkYXRhW2ldID09ICdcbicpIGxpbmUrKzsKKwkJaWYgKGRhdGFbaSsrXSA9PSAnOicpIGJyZWFrOworCX0KKworCS8qIE1pbmltdW0gcmVjb3JkIGxlbmd0aCB3b3VsZCBiZSBhYm91dCAxMCBjaGFyYWN0ZXJzICovCisJaWYgKGkgKyAxMCA+IHNpemUpIHsKKwkJZnByaW50ZihzdGRlcnIsICJDYW4ndCBmaW5kIHZhbGlkIHJlY29yZCBhdCBsaW5lICVkXG4iLCBsaW5lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJbGVuID0gaGV4KGRhdGEgKyBpLCAmY3JjKTsgaSArPSAyOworCWlmICh3aWRlX3JlY29yZHMpIHsKKwkJbGVuIDw8PSA4OworCQlsZW4gKz0gaGV4KGRhdGEgKyBpLCAmY3JjKTsgaSArPSAyOworCX0KKwlyZWNvcmQgPSBtYWxsb2MoKHNpemVvZiAoKnJlY29yZCkgKyBsZW4gKyAzKSAmIH4zKTsKKwlpZiAoIXJlY29yZCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnkgZm9yIHJlY29yZHNcbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJbWVtc2V0KHJlY29yZCwgMCwgKHNpemVvZigqcmVjb3JkKSArIGxlbiArIDMpICYgfjMpOworCXJlY29yZC0+bGVuID0gbGVuOworCisJLyogbm93IGNoZWNrIGlmIHdlIGhhdmUgZW5vdWdoIGRhdGEgdG8gcmVhZCBldmVyeXRoaW5nICovCisJaWYgKGkgKyA4ICsgKHJlY29yZC0+bGVuICogMikgPiBzaXplKSB7CisJCWZwcmludGYoc3RkZXJyLCAiTm90IGVub3VnaCBkYXRhIHRvIHJlYWQgY29tcGxldGUgcmVjb3JkIGF0IGxpbmUgJWRcbiIsCisJCQlsaW5lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmVjb3JkLT5hZGRyICA9IGhleChkYXRhICsgaSwgJmNyYykgPDwgODsgaSArPSAyOworCXJlY29yZC0+YWRkciB8PSBoZXgoZGF0YSArIGksICZjcmMpOyBpICs9IDI7CisJdHlwZSA9IGhleChkYXRhICsgaSwgJmNyYyk7IGkgKz0gMjsKKworCWZvciAoaiA9IDA7IGogPCByZWNvcmQtPmxlbjsgaisrLCBpICs9IDIpCisJCXJlY29yZC0+ZGF0YVtqXSA9IGhleChkYXRhICsgaSwgJmNyYyk7CisKKwkvKiBjaGVjayBDUkMgKi8KKwljcmNieXRlID0gaGV4KGRhdGEgKyBpLCAmY3JjKTsgaSArPSAyOworCWlmIChjcmMgIT0gMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIkNSQyBmYWlsdXJlIGF0IGxpbmUgJWQ6IGdvdCAweCVYLCBleHBlY3RlZCAweCVYXG4iLAorCQkJbGluZSwgY3JjYnl0ZSwgKHVuc2lnbmVkIGNoYXIpKGNyY2J5dGUtY3JjKSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIERvbmUgcmVhZGluZyB0aGUgcmVjb3JkICovCisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSAwOgorCQkvKiBvbGQgc3R5bGUgRU9GIHJlY29yZD8gKi8KKwkJaWYgKCFyZWNvcmQtPmxlbikKKwkJCWJyZWFrOworCisJCXJlY29yZC0+YWRkciArPSBvZmZzZXQ7CisJCWZpbGVfcmVjb3JkKHJlY29yZCk7CisJCWdvdG8gbmV4dF9yZWNvcmQ7CisKKwljYXNlIDE6IC8qIEVuZC1PZi1GaWxlIFJlY29yZCAqLworCQlpZiAocmVjb3JkLT5hZGRyIHx8IHJlY29yZC0+bGVuKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkJhZCBFT0YgcmVjb3JkICh0eXBlIDAxKSBmb3JtYXQgYXQgbGluZSAlZCIsCisJCQkJbGluZSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlicmVhazsKKworCWNhc2UgMjogLyogRXh0ZW5kZWQgU2VnbWVudCBBZGRyZXNzIFJlY29yZCAoSEVYODYpICovCisJY2FzZSA0OiAvKiBFeHRlbmRlZCBMaW5lYXIgQWRkcmVzcyBSZWNvcmQgKEhFWDM4NikgKi8KKwkJaWYgKHJlY29yZC0+YWRkciB8fCByZWNvcmQtPmxlbiAhPSAyKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkJhZCBIRVg4Ni9IRVgzODYgcmVjb3JkICh0eXBlICUwMlgpIGF0IGxpbmUgJWRcbiIsCisJCQkJdHlwZSwgbGluZSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCS8qIFdlIHNob3VsZG4ndCByZWFsbHkgYmUgdXNpbmcgdGhlIG9mZnNldCBmb3IgSEVYODYgYmVjYXVzZQorCQkgKiB0aGUgd3JhcGFyb3VuZCBjYXNlIGlzIHNwZWNpZmllZCBxdWl0ZSBkaWZmZXJlbnRseS4gKi8KKwkJb2Zmc2V0ID0gcmVjb3JkLT5kYXRhWzBdIDw8IDggfCByZWNvcmQtPmRhdGFbMV07CisJCW9mZnNldCA8PD0gKHR5cGUgPT0gMiA/IDQgOiAxNik7CisJCWdvdG8gbmV4dF9yZWNvcmQ7CisKKwljYXNlIDM6IC8qIFN0YXJ0IFNlZ21lbnQgQWRkcmVzcyBSZWNvcmQgKi8KKwljYXNlIDU6IC8qIFN0YXJ0IExpbmVhciBBZGRyZXNzIFJlY29yZCAqLworCQlpZiAocmVjb3JkLT5hZGRyIHx8IHJlY29yZC0+bGVuICE9IDQpIHsKKwkJCWZwcmludGYoc3RkZXJyLCAiQmFkIFN0YXJ0IEFkZHJlc3MgcmVjb3JkICh0eXBlICUwMlgpIGF0IGxpbmUgJWRcbiIsCisJCQkJdHlwZSwgbGluZSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCS8qIFRoZXNlIHJlY29yZHMgY29udGFpbiB0aGUgQ1MvSVAgb3IgRUlQIHdoZXJlIGV4ZWN1dGlvbgorCQkgKiBzdGFydHMuIERvbid0IHJlYWxseSBrbm93IHdoYXQgdG8gZG8gd2l0aCB0aGVtLiAqLworCQlnb3RvIG5leHRfcmVjb3JkOworCisJZGVmYXVsdDoKKwkJZnByaW50ZihzdGRlcnIsICJVbmtub3duIHJlY29yZCAodHlwZSAlMDJYKVxuIiwgdHlwZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGloZXhfYmlucmVjICpyZWNvcmRzOworCitzdGF0aWMgdm9pZCBmaWxlX3JlY29yZChzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlY29yZCkKK3sKKwlzdHJ1Y3QgaWhleF9iaW5yZWMgKipwID0gJnJlY29yZHM7CisKKwl3aGlsZSAoKCpwKSAmJiAoIXNvcnRfcmVjb3JkcyB8fCAoKnApLT5hZGRyIDwgcmVjb3JkLT5hZGRyKSkKKwkJcCA9ICYoKCpwKS0+bmV4dCk7CisKKwlyZWNvcmQtPm5leHQgPSAqcDsKKwkqcCA9IHJlY29yZDsKK30KKworc3RhdGljIGludCBvdXRwdXRfcmVjb3JkcyhpbnQgb3V0ZmQpCit7CisJdW5zaWduZWQgY2hhciB6ZXJvZXNbNV0gPSB7MCwgMCwgMCwgMCwgMH07CisJc3RydWN0IGloZXhfYmlucmVjICpwID0gcmVjb3JkczsKKworCXdoaWxlIChwKSB7CisJCXVpbnQxNl90IHdyaXRlbGVuID0gKHAtPmxlbiArIDkpICYgfjM7CisKKwkJcC0+YWRkciA9IGh0b25sKHAtPmFkZHIpOworCQlwLT5sZW4gPSBodG9ubChwLT5sZW4pOworCQl3cml0ZShvdXRmZCwgJnAtPmFkZHIsIHdyaXRlbGVuKTsKKwkJcCA9IHAtPm5leHQ7CisJfQorCS8qIEVPRiByZWNvcmQgaXMgemVybyBsZW5ndGgsIHNpbmNlIHdlIGRvbid0IGJvdGhlciB0byByZXByZXNlbnQKKwkgICB0aGUgdHlwZSBmaWVsZCBpbiB0aGUgYmluYXJ5IHZlcnNpb24gKi8KKwl3cml0ZShvdXRmZCwgemVyb2VzLCA1KTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2ludGVsbGlwb3J0Mi5iaW4uaWhleCBiL2Zpcm13YXJlL2ludGVsbGlwb3J0Mi5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWNmZThjCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvaW50ZWxsaXBvcnQyLmJpbi5paGV4CkBAIC0wLDAgKzEsMjE0NyBAQAorOjEwMDAwMDAwM0M0MjM3MTgwMjAxMDMwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwMDAxMDAwNTc2NTY0MjA0NDY1NjMyMDMwMzEyMDMxMzIzQTMyMzRGMAorOjEwMDAyMDAwM0EzMzMwMjAzMTM5MzkzOTAwMDAwMDAwMDAwMDAwMDAzNworOjEwMDAzMDAwRTk2QzBGNDI2NTQ3Njk0RTZFNDk2RTQ3MjA2RjQ2MjA1NgorOjEwMDA0MDAwNjM0RjY0NDVDQzEzNUExNUU4MTY3NjE4MDQxQTkyMUJCMAorOjEwMDA1MDAwMjAxREFFMUUzQzIwQ0EyMTU4MjNFNjI0NzQyNjAyMjgwNworOjEwMDA2MDAwOTAyOTFFMkJBQzJDM0EyRUM4MkY1NjMxRTQzMjcyMzQxNAorOjEwMDA3MDAwMDAzNjhFMzcxQzM5QUEzQTM4M0NDNjNENTQzRkUyNDAyMAorOjEwMDA4MDAwNzA0MkZFNDM4QzQ1MUE0N0E4NDgzNjRBQzQ0QjUyNEQyRAorOjEwMDA5MDAwRTA0RTZFNTBGQzUxOEE1MzE4NTVBNjU2MzQ1OEMyNTkzQQorOjEwMDBBMDAwNTA1QkRFNUM2QzVFRkE1Rjg4NjExNjYzQTQ2NDMyNjY0NgorOjEwMDBCMDAwQzA2NzRFNjlEQzZBNkE2Q0Y4NkQ4NjZGMTQ3MUEyNzI1MworOjEwMDBDMDAwMzA3NEJFNzU0Qzc3NkM3NzhDNzdBQzc3MzNEQjhBREMxOQorOjEwMDBEMDAwNTMzM0RCMjUwNzAwNzUwQThBMUUwODAxODNFMzBDRUIwNgorOjEwMDBFMDAwMjA5MDNDMDE3NTBBOEExRTA4MDE4MEUzQzBFQjEyOTA0MworOjEwMDBGMDAwOEExRTBEMDEzQzAyNzUwNjgwRTMwQ0VCMDQ5MDgwRTM0MAorOjEwMDEwMDAwQzA1MzUwOEIxRUJBMTM4RURCRTg2QTY1NTU4QkVDNTNENworOjEwMDExMDAwMUUyQkMwOEVEODhCNUUwNEMxRTMwNDAzNUUwNkQxRTNDMAorOjEwMDEyMDAwMkU4QjlGNDQwMDhENDcyQTFFNUExRjVCNURDMzU1OEI0MworOjEwMDEzMDAwRUM1MzFFMkJDMDhFRDg4QjVFMDRDMUUzMDQwMzVFMDYxNQorOjEwMDE0MDAwRDFFMzJFOEI5RjQ0MDA4RDQ3MzQxRTVBMUY1QjVEQzM0NQorOjEwMDE1MDAwRkI1NThCRUM1MzUxNTI1NjU3MUUwNjFFMDczM0MwOEU2QgorOjEwMDE2MDAwRDg4QjVFMDQyNjhBNDc1OTI1MDMwMDhCRjBEMUU2MkVGMgorOjEwMDE3MDAwOEJCNEM0MDBDMUUwMDQyNjAyNDcxQUQxRTA4QkU4MkVGQworOjEwMDE4MDAwOEJBRTQ0MDA4OTJDMjY4QTQ3MUM4ODQ0MEYyNjhBNDc1OAorOjEwMDE5MDAwMUQ4ODQ0MTAyNjhBNDcxRTg4NDQxMTI2OEE0NzFGODhENgorOjEwMDFBMDAwNDQxMjI2OEE0NzIwODg0NDEzMjY4QTQ3MjM4ODQ0MTQwOQorOjEwMDFCMDAwMjY4QTQ3MjQ4ODQ0MTUyNjhBNDc1QTg4NDQwRTMzQzAyNQorOjEwMDFDMDAwODk0NDA2ODk0NDA4ODg0NDBCODg0NDBBQjAyMUI0NjRGMQorOjEwMDFEMDAwODk0NDA0ODk0NDAyQjA1NTg4NDQwRDg4NDQwQ0U4NkE3NworOjEwMDFFMDAwMDA3MjVCRThDOTAwRThDMTEwODk0NDA4ODA3QzBGMDFGNworOjEwMDFGMDAwNzQyOUU4MkIwMkU4N0YwMjgwN0MwRjAzNzQxREU4QTlCNAorOjEwMDIwMDAwMTA4QkY4MkI0NDA4M0RBMDBGNzIxMDg5N0MwODMzQzA3NgorOjEwMDIxMDAwODc0NDA2ODVDMDc1MDRDNjQ0MEFGRjhBNDQwQTg0QzAyMAorOjEwMDIyMDAwNzUwQkI4MDgwMEU4NkE0QUU4QTkwMTczQkZFODRGMDFGNgorOjEwMDIzMDAwODE2NjQ4N0ZGRjgzNjY3QUJGQjAwMkU4MDQwRThBNDQ3NQorOjEwMDI0MDAwMEE5ODA3MUY1RjVFNUE1OTVCNURDMzgxNEU0ODgwMDA2NAorOjEwMDI1MDAwQjA0MEU4M0Q0QUU4ODk0MDczMkFFODREMTA4QkQ4QjA5OQorOjEwMDI2MDAwMDVFODJFNEFGNjQ2MjcwMjc1MUFFODNEMTAyQkMzM0RENQorOjEwMDI3MDAwNTgxQjcyRUI4MTY2NDg3RkZGQjAwMkU4QzQwREM2NDQ4QworOjEwMDI4MDAwMEEwMUY5QzM4MzRFN0E0MEY4QzNGQkIwMDFFODAyNEE4MQorOjEwMDI5MDAwRkFFODk5MUVFNDBBODRDMDc1RjBCMDRFRTYwQUZCQjA5NQorOjEwMDJBMDAwMDFFOEVFNDlGQUU4ODUxRUU0MEE4NEMwNzVGMEMzRkE1NQorOjEwMDJCMDAwRTg3QTFFRTRFQzg4NDQxNkU0RTQ4ODQ0MTdFNEY4ODhGRAorOjEwMDJDMDAwNDQxOEU0RjA4ODQ0MTlFNDEwODg0NDFBRTQxMjg4NDQ3RAorOjEwMDJEMDAwMUJFNDE0ODg0NDFDRTQzNDg4NDQxREU0MzY4ODQ0MUUxRQorOjEwMDJFMDAwRTREODI0MDE4QUUwRTREQTI0MDIwQUM0ODg0NDFGOEE5QworOjEwMDJGMDAwNDQxMEU4Q0QxRjhBNDQxMUU4MzUyMThBNDQxMkU4ODk2OAorOjEwMDMwMDAwMjE4QTQ0MTNFODQzMjFDNjg2QTEwMDAwRTQxNDI0MTA4NgorOjEwMDMxMDAwRTYxNEU0MTIyNDNERTYxMjhBNDQxNTNDMDE3MjFFNzc2RAorOjEwMDMyMDAwMTZCMDExRTYzNEIwMTNFNjM2RTQxNDBDMTBFNjE0RTQwQgorOjEwMDMzMDAwMTIwQzQwRTYxMkVCMDZFNDEyMEMwMkU2MTI4QTQ0MEY5RAorOjEwMDM0MDAwM0MwMTc0MDYzQzAyNzQwQUVCMEVFNDEyMEMwOEU2MTIzRgorOjEwMDM1MDAwRUIwNkU0MTIwQzEwRTYxMkU4MkZGRjhBNDQxNDNDMDI2QworOjEwMDM2MDAwNzUwOEIwNTU4ODQ0MEM4ODQ0MERCMDIxQjQ2NDg5NDRBNAorOjEwMDM3MDAwMDQ4OTQ0MDJFNDBDMEMxMEU2MENFOEVEMzlGQkMzRThGOAorOjEwMDM4MDAwNUYzRjczMDhGQkIwMEFFODA4NDlFQkYzRkFFODlEMURFQworOjEwMDM5MDAwOEE2NDE2OEE0NDE3ODk4Njk0MDBFNkU0OEFDNEU2RUNFNworOjEwMDNBMDAwOEE2NDE4OEE0NDE5ODk4Njk2MDBFNkYwOEFDNEU2RjhCOQorOjEwMDNCMDAwOEE0NDFBRTYxMDhBNDQxQkU2MTI4QTQ0MUNFNjE0OEExMAorOjEwMDNDMDAwNDQxREU2MzQ4QTQ0MUVFNjM2OEE0NDFGRTZEOEU2REEzRgorOjEwMDNEMDAwRTlCN0ZFOTBGQThBNDQwRUU2RkVFNDAyQTgwMTc1MDUyQworOjEwMDNFMDAwMzNDMEZCRjhDMzMzQzBFNDAwRkJGOUMzOEE2NDE0ODA1NAorOjEwMDNGMDAwRkMwMjc0MkJGRUMwRkVDNzgwRkY0RTcyMUM3NDA5ODA4NQorOjEwMDQwMDAwRkY1MDczMDhCMDBBRUIxN0IwMERFQjEzMDJEQzMyRkY5QworOjEwMDQxMDAwODBGQjdGN0MwMkIzMjE4QUMzM0M3RjdDMDJCMDIxQzM3NgorOjEwMDQyMDAwRkE4MDdDMEIwNDc2MDJGQkMzOEI0NjI0M0QwODAwNzJFNQorOjEwMDQzMDAwRjY4RTQ2MDI4QjdFMjI4QTQ0MEM4QjVDMDJBQUU4QUJDNQorOjEwMDQ0MDAwRkZBQUU4QTdGRkFBRThBM0ZGQUFFODlGRkY4ODQ0MEMzOQorOjEwMDQ1MDAwODk1QzAyODA0NDBCMDQ4OTdFMjI4MzZFMjQwNDgzNDZENworOjEwMDQ2MDAwMUEwNDgwN0UyNjAyNzQwNjgwNjYyNkZERkJDMzYwQjBGNworOjEwMDQ3MDAwRkRFODAyM0Y2MUZCQzNGQTgwN0MwRjAzNzUwOUM2NDRBNworOjEwMDQ4MDAwMEIwMEU4RTUzOEZCQzNDNDdFMTQ4QjRFM0E4NUM5NzU3MgorOjEwMDQ5MDAwMzUyNjhCMEQ0NzQ3RTNFQTNCN0UwNDc2MjJCODAyMDBGRgorOjEwMDRBMDAwMzk0NjJFNzcwN0M3NDYyRTAwMDBFQjEzOEI1RTJDODk0QQorOjEwMDRCMDAwNUUwNDI2QzcwNzAwMDA0MzQzODk1RTJDMjk0NjJFODUyQgorOjEwMDRDMDAwQzk3OENFODk0RTNBOEE0NDBEOEI1QzA0MjY4QTI1NDcyQQorOjEwMDREMDAwM0FDNDc1MTZGRTRDMEJGRjQ0MDZFODBGRkZFMkVEODhBOAorOjEwMDRFMDAwNDQwRDg5NUMwNDg5NEUzQUVCQTdDNjQ0MEFGRUU4NzlCQworOjEwMDRGMDAwMzhGQkMzOTBFOEIzMEQ4QUU4OEEwRUNCMTNCMzA3OEFBMgorOjEwMDUwMDAwQzFFRUVCMDBFQzNBQzE3NTA5MDJDREZFQ0I3NUYwRUIwNAorOjEwMDUxMDAwMEM5MDg4MEVDQjEzOEFFOEJCRkZGRkY5QzM4ODBFQ0I4MworOjEwMDUyMDAwMTNGOEMzOTBCQjNGM0Y4QThFOUUwMEJBRkUwMEVDOEE1MAorOjEwMDUzMDAwRTgzMkMxMjJDMzc1MDJGOEMzRjlDMzkwRThFNUZGNzMzRQorOjEwMDU0MDAwMDFDM0JBRDAwMEJCMDMwMzhBOEU5RjAwRUM4QUU4MzI1NQorOjEwMDU1MDAwQzEyMkMzNzUwMkY4QzNGOUMzOTAzM0MwOEVEODhFQzBEMAorOjEwMDU2MDAwODAzRUM4MTMwMDc1MDdCMDBBRTgyNjQ3RUJGMkZCMzM1QworOjEwMDU3MDAwREI4QTFFQzkxMzQzNDM4M0ZCN0U3NjA3MzNEQkIwMDI1RAorOjEwMDU4MDAwRTgwRjQ3MkU4QkFGNDQwMDgzN0UwODAwNzRFNzg4MUU3NworOjEwMDU5MDAwQzkxM0IwMDJFOEZCNDZGQUY3NDYzODQwMDA3NDE0RTg4NQorOjEwMDVBMDAwOTYxQkU4N0ZGRjcyMUMzM0QyOEE5NjlGMDA4M0MyMEU4RgorOjEwMDVCMDAwRUIwQzkwRTg3NzFCRTg4M0ZGNzIwOEJBNDgwMEU4MzMzOQorOjEwMDVDMDAwRkY3M0FCMjNDQjg5OEU5QTAwODk5NjlDMDBGRTg2QjU3QgorOjEwMDVEMDAwMDBDNjA2QzgxMzAwQjAwQUU4NjcwQUZCRUI4OTEwMThDQQorOjEwMDVFMDAwMDgyODMzQzBBMDA1MDE4QUM4MjQ0MDc1MjRDNzA2N0NBQQorOjEwMDVGMDAwMTI4RTQ1QzcwNjQyMTIwMTAwQzYwNjU0MTIwMkIwMDgwOAorOjEwMDYwMDAwRjZDMTAxNzQwMkIwMDRBMzQ2MTJBMjRDMTJBMjk0MTJDNQorOjEwMDYxMDAwQzNDNzA2N0MxMkI2NDVBMDBGMDE4NEMwNzUwRTZBMDBFMAorOjEwMDYyMDAwMUZDNjA2OTMxMjFFOUMwRUU4QjEwQzkwQzcwNjQ0MTIxQQorOjEwMDYzMDAwMDEwMEEzNDIxMjhCRDhDMUUzMDQ4ODFFOTQxMkJFRTJDQgorOjEwMDY0MDAwMDUyQkYwOEJDODMzREI4QkZCMkVBQzg4ODU0ODEyOEFEOAorOjEwMDY1MDAwRDgwQzA1RTZGRThBRTBFQjAwRTRGRTMyQzRBODNGNzQ0NQorOjEwMDY2MDAwMDNFOTlFMDBFNDAwODg4NTUwMTI4QUUwMjQzMEJBMTAyNQorOjEwMDY3MDAwRkYzQzMwNzQxMjgwRkMwNDc0MEFCQTA0MDNGNjA2MDhDNgorOjEwMDY4MDAwMDFGRTc0MDNCQTA4MEY4ODk1NEMxMjAyRkEzMkMwRjZDNAorOjEwMDY5MDAwQzQwODc0MDJCMDAxODg4NTU4MTI4QUM0M0MzNTc0NUI2MgorOjEwMDZBMDAwM0MzNjc0NTczQzM0NzQ1MzNDMDQ3NDRGM0MxNDc0NEJDNAorOjEwMDZCMDAwM0MxNTc0NDdBODQwNzQyNUM2ODU1NDEyMDREMUU3QjQ4QworOjEwMDZDMDAwMDM4QUMzODk4NTVDMTI4QUMzOEFFMzgwQ0MwMTg5ODU0OQorOjEwMDZEMDAwNjQxMkQxRUY0N0UyMDNFQjFBOTBFOTZDRkZDNjg1NTQzMAorOjEwMDZFMDAwMTIwMkQxRTc4QUU2OEFDMzBDMDQ4OTg1NUMxMkQxRUYzNQorOjEwMDZGMDAwNDdFMkU3MzNDMDhBQzdBMzQ2MTJDM0M2ODU1NDEyMDYzMQorOjEwMDcwMDAwRUJCQkM2ODU1NDEyMDAzM0MwODg4NTUwMTI4ODg1NENENworOjEwMDcxMDAwMTI4ODg1NTgxMkVCQTZDNzQ2MjYwMjEyOEI0NjFFODkwMAorOjEwMDcyMDAwNDYwMDg5NDYyMjhCNDYyMDg5NDYyNEM3NDYxQTAwMDA4NworOjEwMDczMDAwQzNDNzQ2M0M4MDAwQzc0NjM4MDEwMDFFNTY4Qjc2MzA0MgorOjEwMDc0MDAwODk3NjA0ODk3NjE0OEU1RTA2MzNDMDg5MDQ0NjQ2ODkwQworOjEwMDc1MDAwNzYyQzg5NDYzQThCNDYzMjQ4NDg4OTQ2MkU1RTFGQzMxRQorOjEwMDc2MDAwMzNDMDg5NDY0ODg5NDY0QUM3NDY0NkFFMDE4OTQ2NEU0NworOjEwMDc3MDAwOEI0NjQ0ODk0NjUwOEI0NjQyODk0NjQwODk0NjA4QzM4OQorOjEwMDc4MDAwMzNDMDg5NDY3Njg5NDY3OEM3NDY3QTEwMDA1NjFFOEI1NAorOjEwMDc5MDAwNzY3MDg5NzYxMDg5NzYwQzhFNUUxMkM3MDQwMDAwOEIwNQorOjEwMDdBMDAwNDY3Mjg5NDY3NDFGNUVDMzg5NTYxODg5NTYwMjg5NTY1NworOjEwMDdCMDAwMDY4OTU2MEE4OTU2MEU4OTU2MTI4OTU2MTY4QkQ4NEJDOQorOjEwMDdDMDAwNEJDMUUzMDJCRjAyMDA4OTdFMUUwM0ZCODk3RTMwMDMxQQorOjEwMDdEMDAwRkI4OTdFNDIwM0ZCODk3RTcwODNFQjA4ODk1RTIwODk1QQorOjEwMDdFMDAwNUUzMjg5NUU0NDg5NUU3MjUwRTgyQkZGRTg3MUZGRTg1MworOjEwMDdGMDAwM0ZGRkU4OEJGRjU4QzNCODMwNzVDMUU4MDQwRTVCMDNCOAorOjEwMDgwMDAwQzNBM0JBMTM4MzNFNDIxMjAwNzQwNzgwM0U5NDEyMDBDMQorOjEwMDgxMDAwNzUwRTZBMDAxRkM2MDY5MzEyMUU5QzBFRThCRDBBOTA1NAorOjEwMDgyMDAwQjgzMDdBQzFFODA0NDBBM0MwMTMyQjA2MTIwMUY3RDhGMAorOjEwMDgzMDAwMzNEMjhCQ0E4QTBFOTQxMkY3RjEzRDgwMDA3NzBFNkE4QworOjEwMDg0MDAwMDAxRkM2MDY5MzEyMjU5QzBFRTg5MDBBOTA0ODNERkZCMworOjEwMDg1MDAwMDc3MjAzQjhGRjA3QTNDMjEzMzNDOThBMEU5NDEyMzM3OQorOjEwMDg2MDAwRjZCODAwMDkyRThCQUM0NDAwODk0NjRDNDA0NjQ2RTI1RgorOjEwMDg3MDAwRjM4QTBFOTQxMjMzRjY4QjE2QzAxM0ExQzIxMzJFOEI3QgorOjEwMDg4MDAwQUM0NDAwRTgyMkZGMDNEMDQ2NDZFMkYyQzMzM0MwMkU1OAorOjEwMDg5MDAwOEJBRDQ0MDA4OTQ2MDg0NzQ3RTJGNEMzNTEzM0MwMEE5MAorOjEwMDhBMDAwQzIyRThCQUQ0NDAwODk4NjlFMDA4MTRFMzgwMDIwNDdDMQorOjEwMDhCMDAwNDdGRUM0ODBGQzA0NzIwNDMyRTRGRUMwRTJFMzU5ODNDNAorOjEwMDhDMDAwRTkxMDc0MDVGN0Q5RThDNEZGQzM1MTMzQzAwQUMyMkUzQQorOjEwMDhEMDAwOEJBRDQ0MDA4OTg2OUUwMDgzNEUzODQwNDc0NzgwQzRENAorOjEwMDhFMDAwMTA3OTA0MzJFNEZFQzBFMkU2NTk4M0U5MTA3NDA1Rjc5QQorOjEwMDhGMDAwRDlFODk5RkZDM0U4RDJGRkMzOEQwODlDMDhDQTA4RjU2MAorOjEwMDkwMDAwMDg4QjBFNDIxMjMzRjY1MTU2MzNEQjhCQ0I4QTk0NDg1OAorOjEwMDkxMDAwMTI4QThDNEMxMjhBOUM1NDEyOEJGRUMxRTcwNTg1REIyRgorOjEwMDkyMDAwNzUwMkIxMTAyRUZGOTdGOTA4NUU1OTQ2RTJEOUMzMDE0RQorOjEwMDkzMDAwQ0MwM0QwMDBFODAyRDAwMEU4MDFEMDAwRTgwMEQwMDBFRAorOjEwMDk0MDAwRTgwNEQwQThEQTAwREMwMERFMDFEODAzQ0MwM0NDMDMzNQorOjEwMDk1MDAwQ0MwNEQwQThEQTIwREMwMERFMDNDQzAzQ0MwM0NDMDAyRQorOjEwMDk2MDAwRDgwM0NDMDNDQzAzQ0MwM0NDMDNDQzAzQ0MwM0NDMDMwMworOjEwMDk3MDAwQ0MwM0NDMDNDQzAzQ0MwM0NDMDNDQzAzQ0MwM0NDMDNGRgorOjEwMDk4MDAwQ0MwNEQwMDBEQTIwREMwM0RFMDFEODAzQ0MwM0NDMDM5NgorOjEwMDk5MDAwQ0MwM0NDMDBEODAwQ0MwMEQwMDAwMDU2NTIxRTBFMUY1NQorOjEwMDlBMDAwQkUyRjA5MzNEMkZDQUQ4NUMwNzQwRDhBRDRFRUFEODU1RgorOjEwMDlCMDAwQzA3NDA1OEFENEVFRUJFRTFGNUE1RUMzRTQ4MDg0QzA5NworOjEwMDlDMDAwNzQxNjc4MTRCMDI3RTZGQ0IwMTFFNjM0RTRGQzNDMjczQQorOjEwMDlEMDAwNzUwNkU0MTE3NTAyRjhDM0Y5QzM4M0MyMDZCMEJGRUUxMQorOjEwMDlFMDAwODNFQTAyQjAxMEVFODg4NkFGMDBCMDExODNDMjA0RUUzNQorOjEwMDlGMDAwODNDMjAyRUVCMDEzODNDMjAyRUU4M0MyMDJFRTJFQTFDNgorOjEwMEEwMDAwNEMyRDg5ODY5NDAwODNFQTBFRUU4M0MyMDI4QUM0RUVERQorOjEwMEExMDAwODNDMjA0QjAwM0VFODg4NkE4MDA4M0VBMDQzMkMwRUVFNQorOjEwMEEyMDAwODNDMjAyQjA4OUVFODg4NkE2MDAwQzA2RUVCMDQwQjQwMAorOjEwMEEzMDAwMzg4OTQ2MUNDNzQ2MzYzODAwODNDMjA0MzJDMEVFODg2NworOjEwMEE0MDAwODZBNzAwQzM4M0MyMDZCMEJGRUU4M0VBMDJFQzNBODZGMworOjEwMEE1MDAwQUYwMDc1MjQ4M0MyMDRFQzNDMTE3NTFDODNDMjA2RUMwNAorOjEwMEE2MDAwM0MxMzc1MTQ4M0VBMDg4QTg2QTgwMEVFODNFQTAyRUMzOAorOjEwMEE3MDAwMjRDMDNDQzA3NTAyRjhDM0Y5QzMzM0M5OEJEMThCRjFENAorOjEwMEE4MDAwOEEwRTk0MTJDMUU5MDIyRThCQUM0NDAwRjc0NjM4MDA1RQorOjEwMEE5MDAwMjA3NDBFOEE4NjlFMDBFNkZFMzJDMEU2ODA0MkU4RkFBNgorOjEwMEFBMDAwRkU4M0M2MDhFMkUxODVEMjc0MDNFODA1MDhDMzMzQzlCMgorOjEwMEFCMDAwOEJGMThBMEU5NDEyMkU4QkFDNDQwMEY3NDYzODQwMDAxRQorOjEwMEFDMDAwNzQwNkU4NzMxNkU4MTJGRjQ2NDZFMkVBQzMzM0M5OEJBMAorOjEwMEFEMDAwRjE4QTBFOTQxMkMxRTkwMjJFOEJBQzQ0MDBGNzQ2MzgxRAorOjEwMEFFMDAwMDAyMDc0MTZFODQ2MTZFOEQyRkU3MzBFNkEwMDFGQzY5MAorOjEwMEFGMDAwMDY5MzEyMUM5QzBFRThFMzA3OTA4M0M2MDhFMkQ5QzM1NAorOjEwMEIwMDAwMzNDOThCRjE4QTBFOTQxMjJFOEJBQzQ0MDBGNzQ2MzgxMQorOjEwMEIxMDAwNDAwMDc0MTZFODIxMTZFODJBRkY3MzBFNkEwMDFGQzYwQgorOjEwMEIyMDAwMDY5MzEyMUM5QzBFRThCMzA3OTA0NjQ2RTJEQUMzMEMwQgorOjEwMEIzMDAwMDAwMDEwMDAxMzEyMDAwMDE0MDAyODNDMDAxQjNFMDBBRgorOjEwMEI0MDAwMDAyQTAwMDAyQzAwMDA0MjAwMTREODAwMDBEQTAwMDA0NworOjEwMEI1MDAwMzQwMDExMzYwMDEzMzgwMDExM0EwMDEzMDAwMDU2NTBDQgorOjEwMEI2MDAwNTJCRTJGMEIyRUFEODVDMDc0MDY5MjJFQUNFRUVCRjQ2OAorOjEwMEI3MDAwNUE1ODVFQzM1MzJFQTE2MDIyRTZFNEU2RjA4QUM0RTYyQQorOjEwMEI4MDAwRUNFNkY4RThEOEZGQjA0QkU2MTBCMDUwRTYxMkIwMzgwQgorOjEwMEI5MDAwRTYxNEU4QUUxNUIwNDZFNjBBRThBNzE1QjAxQUU2MEE2QworOjEwMEJBMDAwRThBMDE1QjAyMkU2MEFFODk5MTVFOEZEMDY4QkQ4RTQxRQorOjEwMEJCMDAwMTZBODA0NzUxOEU4RjIwNjJCQzMzRDMyMDA3MkYwNkFERAorOjEwMEJDMDAwMDAxRkM2MDY5MzEyMjM5QzBFRTgxMDA3OTBFOERBMDY3MQorOjEwMEJEMDAwMkJDMzNEMjQwMDc3MUJCMDMxRTZGQzU2NTE1NUI5MTBBQworOjEwMEJFMDAwMDAyRThCQUM0NDAwODE0RTM4ODAwMDQ2NDZFMkYyNUQxOAorOjEwMEJGMDAwNTk1RUU4NjlGRkU4NEIxNUIwNDZFNjBBRTg0NDE1NUIyNAorOjEwMEMwMDAwQzMzM0Y2OEIwRTQyMTIyRThCQUM0NDAwRjc0NjM4MDBFRAorOjEwMEMxMDAwMjA3NDA2RTgxNzE1RTg1QkZGODNDNjIwRTJFOUMzOEI2MgorOjEwMEMyMDAwQzIwNTA0MDA4OTQ2MjgyRUExNEMyRDg5ODY4RTAwODk5NAorOjEwMEMzMDAwODY5MDAwODk4NjkyMDBDNjg2QTMwMDBBQzY4NkMzMDBGNQorOjEwMEM0MDAwMDM1MjgzQzIwNDhBODZBNjAwMEMwNkVFNUE4M0MyMDJBRgorOjEwMEM1MDAwQjAwNUVFODg4NkE1MDBDM0U4MDNGRkU4RTUxNEIwNDJCRQorOjEwMEM2MDAwRTYwQUY3NDYzODgwMDA3NDA2MkVBMTlDMjJFQjA0MkU3QgorOjEwMEM3MDAwQTE2QzIyQzc0NjFDMEMwMDg5ODY5NDAwODk4Njk2MDBDOAorOjEwMEM4MDAwODk4NjhFMDA4OTg2OTAwMDg5ODY5MjAwRTZGMEU2RTRFNworOjEwMEM5MDAwOEFDNEU2RjhFNkVDQzY4NkMzMDAwM0U4QTUxNEIwMUFEOQorOjEwMENBMDAwRTYwQUIwMTA4ODg2QTUwMEU2MENDMzMzQzk4QkYxOEEyQQorOjEwMENCMDAwMEU5NDEyMkU4QkFDNDQwMEY3NDYzODQwMDA3NDA2RThDMAorOjEwMENDMDAwNzYxNEU4NUFGRjQ2NDZFMkVBQzMzM0M5OEJGMThBMEUyRQorOjEwMENEMDAwOTQxMjJFOEJBQzQ0MDBGNzQ2MzgwMDIwNzQwNkU4NEM4MgorOjEwMENFMDAwMTRFODc0RkY0NjQ2RTJFQUMzOTA4MzNFNDQxMjAwNzU1RQorOjEwMENGMDAwMTRCMDAxQkEwNjAxRUUyQUMwRUVCMDAyRUVCMDA0RUU2NgorOjEwMEQwMDAwQjgwMDAyRUIwRkJBMDYwMUIwNDBFRUI4MDEwMDhBMEUzRgorOjEwMEQxMDAwMEUwMUQzRTBBMzg4MTJDM0ExODgxMkEzODQxMjJEMjA1MAorOjEwMEQyMDAwMDBBMzhBMTIyRDIwMDBBMzgyMTJDNzA2ODYxMjIwMDA3QgorOjEwMEQzMDAwQzcwNjgwMTIzMjAwQzM4MzNFNDQxMjAwNzQ3NjhCMEVDNQorOjEwMEQ0MDAwNDIxMjMzRjY4QUE0NTQxMjg0RTQ3NDVGOEE4NDQ4MTJFRgorOjEwMEQ1MDAwMEMwNEU2RkVGNkM0MDQ3NDI1QjAxQkJBMDAwMEVFRUJFQQorOjEwMEQ2MDAwMDAyQUMwQkEwMjAwRUVFQjAwQjAwM0VFRUIwMDMyQzA4NgorOjEwMEQ3MDAwQkEwMjAwRUVFQjAwQkEwMDAwQjAwMEVFRUIyREIwMUY5RgorOjEwMEQ4MDAwQkEwMDAwRUVFQjAwMkFDMEJBMDIwMEVFRUIwMEIwMDM5RQorOjEwMEQ5MDAwRUVFQjAwRDFFNjhBODQ1RDEyRDFFRUY2RDBCQTAyMDAwNQorOjEwMERBMDAwRUVFQjAwQkEwMDAwQjAwQUVFRUIwMEU0MDRFQjAwRTQ2NgorOjEwMERCMDAwMDQ0NkUyOTBDMzkwQjgxNDAwQkEzRUZGRUZCODA2MDBCNAorOjEwMERDMDAwQkEzMkZGRUZCODBGMDBCQTM0RkZFRkJBMzZGRkVGODM0NQorOjEwMEREMDAwM0U0NDEyMDA3NTE2QjgxMTAwQkEzOEZGRUZCODEyMDA4MQorOjEwMERFMDAwQkEzQUZGRUZCODFCMDBCQTNDRkZFRkMzQjgxMTAwQkEyNAorOjEwMERGMDAwMzhGRkVGQjgxMjAwQkEzQUZGRUZCODFCMDBCQTNDRkY1OQorOjEwMEUwMDAwRUZDM0I4RkMwMEJBMjhGRkVGRkI4MzNFNDQxMjAwNzQyNgorOjEwMEUxMDAwMDdCOENDMDBCQTI4RkZFRkMzMDBGRkZGMjAyNDI4RkY0QgorOjEwMEUyMDAwMkNGRkZGMzAzNDM4RkZGRjNDOTAzQzBGNzcwRUJCMTk4RQorOjEwMEUzMDAwMEUyRUQ3M0NGRjc0MDU4QUQ4RjhDMzkwMkFEQkY5QzM3RAorOjEwMEU0MDAwODMzRTQ0MTIwMDc0MjdBMDA2MDE4MDI2MDYwMTMwODBFQworOjEwMEU1MDAwM0UwNjAxMzA3NTE4QjkwMjAwQkZDNDEzQkEwNjAxRUM5MgorOjEwMEU2MDAwQTgyMDc1RjhCQTA0MDFFREFCRTJGMUVCMTY5MEI5MDRENQorOjEwMEU3MDAwMDBCRkM0MTNCQTA2MDFFQ0E4MjA3NUY4QkEwNDAxRUM0RgorOjEwMEU4MDAwQUFFMkYxRkE5MEJFQzQxM0FEODBFNDNGODBGQzAyNzQ4NAorOjEwMEU5MDAwMEU2QTAwMUZDNjA2OTMxMjBBOUMwRUU4M0UwNDkwQUQyRgorOjEwMEVBMDAwM0MwRjc1RUQ4QUM0RTg4MUZGNzJFNjg4MUUxQTAxQzYwMAorOjEwMEVCMDAwMDY4RTEyMDBCMDAwMEEwNjFBMDFCQTAwMDFFRUM2MDYzQworOjEwMEVDMDAwOEYxMjQwODMzRTQ0MTIwMDc1MDZCODBDMDBFQjA0OTA2QworOjEwMEVEMDAwQjg0QzAwQkEyOEZGRUZDMzgzM0U0NDEyMDA3NTAxQzMyQgorOjEwMEVFMDAwQTE1MDEyMEIwNjUyMTIwQUM0QTgwODc0RjJBMDBGMDFGNgorOjEwMEVGMDAwMkFFNDUwRkYzNkJBMTMxRkU4NTA1NjgzQzQwMjZBMDAzMgorOjEwMEYwMDAwMUYzM0MwQTNCQzEzQTAwRjAxQTNCRTEzOEIxRUJDMTNDMQorOjEwMEYxMDAwOEE4NzUwMTJGNjg3NTAxMjA4NzQwRDI0MDc4QUUwQkVBMworOjEwMEYyMDAwQ0MwMEEwQkMxM0U4OTQzREZGMDZCQzEzRkYwRUJFMTMxQgorOjEwMEYzMDAwNzVEQUMzOTAxRTMzQzA4RUQ4QjAwMUU4NTQzRDFGQzM4QworOjEwMEY0MDAwMzNDOThCRjE4QTBFOTQxMjJFOEJBQzQ0MDBDNzQ2NjJEMworOjEwMEY1MDAwMzg0NEM3NDY3Q0ZDM0JDNzQ2N0VFMjNCQzc4NjgwMDBFMAorOjEwMEY2MDAwRUMzQ0U4QUIxNkM2ODZDMDAwMTE4MzdFMDgwMDc0MDcwRgorOjEwMEY3MDAwNTE1NkU4MzMzMzVFNTk0NjQ2RTJDREMzMzNDOThCRjE0RgorOjEwMEY4MDAwOEJGOThBMEU5NDEyQzFFOTAyRTMxMzJFOEJBQzQ0MDA1NAorOjEwMEY5MDAwOEE4NjlFMDA4ODg1NkMxMjgzQzYwODQ3RTJFREMzRkFGNAorOjEwMEZBMDAwRkNCMEMwQkEwMDAxRUUzM0MwOEVEODhFQzA4RUQwQkY2OAorOjEwMEZCMDAwMTYwMUI5Q0M3NzJCQ0ZEMUU5RjNBQkJDNDAxMkU4RDlGRAorOjEwMEZDMDAwMDJFODcwM0NCRUNDMEZFOEYyM0NGNDkwMzNDMDhFRDhGRgorOjEwMEZEMDAwOEVDMDhFRDBGNjA2MEEwMTgwNzQwQkJFMzU1NUU4REI1NAorOjEwMEZFMDAwM0NCMDAxRThBQzNDRThCMzAwRThGNkY1RTgwOEY4RTgwNgorOjEwMEZGMDAwMEZGOUU4ODVGQUU4QjZGQUU4RUZGQ0U4QzIxMEU4MDM3MgorOjEwMTAwMDAwM0NFOEIyRkRFODMwRkRFODU0MDJDNjA2OEYxMkMwRThBNQorOjEwMTAxMDAwQkJGQUU4RUJGQUU4RTlGQkU4QUZGQ0U4OERGQ0U4MUY3NworOjEwMTAyMDAwRkZFODU4RkZFOERCRkRFODE2RkUzM0MwQkU1QTA1RThDRQorOjEwMTAzMDAwOEEzQ0U4QTNGRUU4RTBGQ0ZCQkVBNDQ0RTg3RDNDRTk3MgorOjEwMTA0MDAwQ0EyRDU2OTg4QkYwOEI0MjUyODVDMDc1MjdDNzQyNTJFNQorOjEwMTA1MDAwMDEwMDUzMzY4QjlDMkMwMUY2QzMwMTc1MEMzNjg5Njg1MAorOjEwMTA2MDAwNTIzNjg5QUMyQzAxNUI1RUMzMzY4OUFDMkMwMTM2ODlDMworOjEwMTA3MDAwQUMxQzAxNUI1RUMzNTY5ODhCRjAzM0VEMzY4Qjg0MUM0MQorOjEwMTA4MDAwMDFBODAxNzUxNThCRTgzM0MwODc0MjUyMzY4OTg0MUM0QworOjEwMTA5MDAwMDFBODAxNzQwNTM2ODk4NDJDMDE1RUMzNTY1MTMzRjZDQworOjEwMTBBMDAwQjgwMTAwQjkwODAwODk4NDFDMDE4OTg0MkMwMTQ2NDZENgorOjEwMTBCMDAwRTJGNDU5NUVDMzkwQkIwMTAwOEJFOEZGNEU2RTc0MEFFOAorOjEwMTBDMDAwOEJERDhCNDY1OEE4MDE3NEYwQzM4QjQ2NDhBOTA4MDBGNQorOjEwMTBEMDAwNzQ0NUY3NDYzODQwMDA3NDI3RTg1QzEwODBDMjA2OEFFMQorOjEwMTBFMDAwODZBODAwMjRCRjg4ODZBODAwRUU2MEIwRkVFODg2MzI5RAorOjEwMTBGMDAwNjFCMDAyRTg0Q0ZGOEI0NjQ4MjRGNzg5NDY0OEVCMTc1RAorOjEwMTEwMDAwRTgyQTEwODE0RTI2MDA0MDhBODZBNTAwMEMwMjg4ODZCNworOjEwMTExMDAwQTUwMEU2MEM4QjQ2NDhBOTA0MDA3NDE0QjAwMkU4MjEyRgorOjEwMTEyMDAwRkY4QjQ2NDgyNEZCODk0NjQ4NjBCMERGRTg0NzMyNjFDMAorOjEwMTEzMDAwMzNDMDg3NDY1OEY2QzMwMTc1MEIzNjg5NDc1OEE4MDE1NgorOjEwMTE0MDAwNzUwREU5NzRGRkEzMjIwMUE4MDE3NTAzRTk2QUZGODlGRgorOjEwMTE1MDAwMUUzMjAxQzNCQjAxMDA4QkU4Rjc0NjM4NDAwMDc0MTUwRQorOjEwMTE2MDAwRThENTBGODBDMjBBRUNBODQwNzUwQThCREQ4QjQ2NTY4NQorOjEwMTE3MDAwQTgwMTc0RTNDMzhCNDYyNjgwRTRGRTgwQ0MwMjg5NDYzNgorOjEwMTE4MDAwMjZCMDAyRThCQ0ZFMzNDMDg3NDY1NkY2QzMwMTc1MEE5NgorOjEwMTE5MDAwMzY4OTQ3NTZBODAxNzUwQkVCQkRBMzIwMDFBODAxNzU0MAorOjEwMTFBMDAwMDJFQkI0ODkxRTMwMDFDMzYwMUUwNjJCQzA4RUQ4QTA4RQorOjEwMTFCMDAwOTAxMjg0QzA3NTQ5QTEyMjAxQTgwMTc1MDNFOEY2RkVDQQorOjEwMTFDMDAwQTEyMDAxQTgwMTc1MDNFODhBRkZBMUFDMTM0ODc4MDVBNgorOjEwMTFEMDAwNzQ0NUEzQUMxM0ExQUUxMzQ4NzgwNTc0NTFBM0FFMTNBNAorOjEwMTFFMDAwQTFCMDEzNDg3ODA1NzQ2M0EzQjAxM0ExN0UxMjQwNzhCMAorOjEwMTFGMDAwMDNBMzdFMTJCODAwODBCQTIyRkZFRjA3MUY2MUNGQTBDMQorOjEwMTIwMDAwOTExMjQwM0MwMjcyMEIzM0MwQTI5MTEyRkYxNjdDMTI2NQorOjEwMTIxMDAwRUJBNEEyOTExMkVCOUZBMDhFMTIzMjA2OEYxMkEyOEUyNworOjEwMTIyMDAwMTIwQTA2MUEwMUJBMDAwMUVFQjgyQzAxRUJBNDgzM0VBMworOjEwMTIzMDAwODQxMjEwNzIxMUJBMjhGRkVEMEM4MUVGRTg1MzM3QkEwRgorOjEwMTI0MDAwMjhGRkVEMjQ3RUVGQjgwNDAwRUI5MkM2MDY4RDEyMDE1NAorOjEwMTI1MDAwRTgzRjM3QzYwNjhEMTIwMEExQjIxM0VCOEI5MDhBMUVCMQorOjEwMTI2MDAwMEIwMTJBRkY2QkMzMTlCQTYyRkZFRkI4MEEwMEJBNjAxQworOjEwMTI3MDAwRkZFRkI4MDFFMEJBNjZGRkVGQjhGRkZGQkE1MkZGRUYyOQorOjEwMTI4MDAwQjgwOUMwQkE1NkZGRUZDNzA2QUMxMzJDMDFDNzA2QUVBQgorOjEwMTI5MDAwMTMwNDAwQzYwNjkxMTIwMEMzOTA4QTFFMEIwMTJBRkY5OAorOjEwMTJBMDAwNkJDMzA1RDFFOEEzMTgwMUMzOTA1MkJBNTBGRkVENUFBMQorOjEwMTJCMDAwQzM5MDUzNTE4QjFFMTgwMUI5MzIwNTkwRTJGRTRCNzU1NQorOjEwMTJDMDAwRjc1OTVCQzNCMDgwQkEwMDAxMEEwNjFBMDFFRUMzOTA1OQorOjEwMTJEMDAwQjA0MEVCRjJCMEMwRUJFRUIwMDBFQkVBRkE2MDA2MUVGNQorOjEwMTJFMDAwMTYyQkRCOEVEQjJFQTFCQTRDMkVBMzkyNENBMDkzMTJCMAorOjEwMTJGMDAwOTg4QkU4ODkyNjJEN0E4MDNFQ0ExMzAwNzQwM0U5NkIyNworOjEwMTMwMDAwNDJFOEMwRkZFOEFCRkZFOEE4RkZCMDIwQzYwNjkwMTI5NQorOjEwMTMxMDAwMDBGRjE2N0MxMjhCRkQ4M0ZGMEE3MjExRThCOUZGRTgwQgorOjEwMTMyMDAwOTBGRkU4QUJGRkU4OEFGRjgzRUYwQUVCRUEwQkZGNzQ1QworOjEwMTMzMDAwMEZFOEE0RkZFODdCRkZFODlBRkZFODc1RkY0Rjc1RjExRgorOjEwMTM0MDAwRTg5NUZGRTg2Q0ZGRUJCOThBODZBNTAwMjRGREVFODhERQorOjEwMTM1MDAwODZBNTAwQzM4QTg2QTYwMDBDMDJFRUMzOEI3NjM4RjdGQQorOjEwMTM2MDAwQzYwMTAwNzRFRjhCNEUzNjhCNDYyRTNCQzE3MzAyOEI0OQorOjEwMTM3MDAwQzgyQkMxODk0NjJFMDE0RTM0QzQ3RTA0MjYwMTBEOEIzNAorOjEwMTM4MDAwN0UyQzgzRUEwNEYzNkM4RUMxODk3RTJDM0I0NjNDNzIzMgorOjEwMTM5MDAwMTJGN0M2MjAwMDc1MEI4M0NFMjA4OTc2MzhCMDAwRTg5RQorOjEwMTNBMDAwQTBGQ0MzRjdDNjA0MDA3NDFCOEJEODgzQ0UxMDg5NzZDQgorOjEwMTNCMDAwMzg4QTg2QTcwMDI0RkU4ODg2QTcwMDgzQzIwOEVFODNBOQorOjEwMTNDMDAwRUEwODhCQzMzRDQwMDA3MjAxQzM4MTRFMzgwMDA0ODM5QworOjEwMTNEMDAwQzIwMjhBODZBNTAwMjRGQTg4ODZBNTAwRUVDMzhBODYwMgorOjEwMTNFMDAwQTYwMDBDMDJFRUMzRjc0NjM4MDEwMDc0RjE4QjRFMkVCNgorOjEwMTNGMDAwMzJEQjhBQkVBMzAwODNDMjA2QzQ3NjA0OEI3RTJDODNCNAorOjEwMTQwMDAwRjkwODcyMkNFQ0E4MDE3NDE2OEFFMDgzRUEwQUVDODNDRQorOjEwMTQxMDAwQzIwQTg0RTc3NTUxQUFGRUMzNDk4M0Y5MDg3M0U1MzIwRAorOjEwMTQyMDAwRkYyNjAxMUMwMTVFMzQ4OTc2MDQ4OTRFMkU4OTdFMkNBQworOjEwMTQzMDAwM0I0RTNDNzIxMUY2NDYzODIwNzQwMUMzODM0RTM4MjA2RgorOjEwMTQ0MDAwQjAwMEU4RkRGQkMzRjY0NjM4MDQ3NDE1ODM0RTM4MTAyRgorOjEwMTQ1MDAwOEE4NkE3MDAyNEZFODg4NkE3MDA4M0VBMDJFRTgzQzI1QworOjEwMTQ2MDAwMDIzRDQwMDA3MjVEQzMzMkZGMjYwMzFDODVEQjc0MDkxOAorOjEwMTQ3MDAwMjY4OTFDOEJGNzQ3NDc0OTQ5ODBFNDFFODBDQ0MwMjY0QgorOjEwMTQ4MDAwODkwNEY2QzQxMDc0Mjc4Qjc2MzhGN0M2MDAxMDc0MEJFNQorOjEwMTQ5MDAwNTBGRTg2QjIwMEIwMEFFOEE4RkI1OEY3QzYwMDAxNzRGNworOjEwMTRBMDAwMERFODgyMjY4Qjc2Mzg4QjRFMkU4QjdFMDRBQjhCRjcyNQorOjEwMTRCMDAwMzNDMEFCMzJEQjhBQkVBMzAwNDk0OTgzRjkwODcyMTdGNworOjEwMTRDMDAwRTk0MUZGODE0RTM4MDAwNDgzQzJGODhBODZBNTAwMjREMgorOjEwMTREMDAwRkE4ODg2QTUwMEVFQzNFOTQ1RkY4M0MyMDhFQzg4ODYzQQorOjEwMTRFMDAwQUEwMEMwRTgwNDhBRTA4QUM4ODY4NkE5MDAzMkUwOEI5OAorOjEwMTRGMDAwNUUzRTg0RTM3NDRGOEFDMThCNEUyNkY2QzUwNDc0MEM5RAorOjEwMTUwMDAwQTgwODc0MDU4MEUxQkZFQjAzODBDOTQwRjZDNTA4NzRFNAorOjEwMTUxMDAwMENBODAyNzQwNTgwRTE3RkVCMDM4MEM5ODA4ODRFMjYwOQorOjEwMTUyMDAwOEJGMDhBODZBNTAwODRDOTc0MDhBODAyNzQxNTI0RkQ2RQorOjEwMTUzMDAwRUIwNkE4MDI3NTBEMEMwMjg4ODZBNTAwODNFQTBBRUU2OAorOjEwMTU0MDAwODNDMjBBOEJDNjg0RTc3NTAxQzNDNjg2QkEwMDAxQjBBMAorOjEwMTU1MDAwMEVFOEVFRkFGNzQ2MzgwMDAyNzRFRTgzN0UyRTA2NzIyRAorOjEwMTU2MDAwRTg4QUE2QUEwMEM0NUUwNDhCN0UyQ0IwRkZBQUIwMDI1MworOjEwMTU3MDAwQUIyNjgzMDcwMzgzNkUyRTAzODk3RTJDRjY0NjM4MjAyNAorOjEwMTU4MDAwNzQwMUMzODM0RTM4MjBCMDAwRThCNkZBQzM5MDgzRUFGMgorOjEwMTU5MDAwMDhFOUI0RkQ4M0MyMDY4QjVFMjZGNkMzQzA3NUVGOEJFNworOjEwMTVBMDAwNEUxQ0VDODg4NkE0MDA4M0VBMEFBODIwNzUwMjhBQ0QyNgorOjEwMTVCMDAwMzJFRDhCNDYxQTNCQzg3MzE4MDE0RTJBMkJDMTg5NDY1RgorOjEwMTVDMDAwMUFDNTc2MDBGMzZFOEVEOTg5NzYwMDNEMjAwMDcyMzAwMAorOjEwMTVEMDAwQzM4NUMwNzQzMThCQzgwMTQ2MkFDNTc2MDBGMzZFOEU3MAorOjEwMTVFMDAwRDk4MENCMDI4OTVFMjZFODMyRjFGNkM3MDE3NTE2ODNGMQorOjEwMTVGMDAwQzIwMkU4NTNGREY2QzcxMDc1MEJCMDAyRTg0M0ZBQzMwOAorOjEwMTYwMDAwRjZDNzAxNzRGMEMzODBDQjAyODk1RTI2RjZDNzAxNzQ2OQorOjEwMTYxMDAwREU4M0MyMDJFODMxRkRGNjg2QTQwMDQwNzQwQjgwRTc0OQorOjEwMTYyMDAwRkU4MENGMDI4OTVFMjZFQkNDQjAwNEU4MTRGQUMzQzA3QQorOjEwMTYzMDAwQzJDOENBQzRDNkNDQ0VEMEQyRDhEQUQ0RDZEQ0RFOTBFQQorOjEwMTY0MDAwRTkwRTAxRTRDNDhBRTBFNEM0OEJEMDgzRjkwODcyRjBBNworOjEwMTY1MDAwMjY4MzNGMDA3NDA0OEJERjQ5NDk4QkZCOEFERTgzRTNEQQorOjEwMTY2MDAwMEYyRThBQTcyRjE2QUJGNkM0MTA3NDI0RjdDNjAwMTBFRAorOjEwMTY3MDAwNzQwQjUwRkU4NkIyMDBCMDBBRThDNkY5NThGN0M2MDBFRgorOjEwMTY4MDAwMDE3NDBERThBMDI0OEI3NjM4OEI0RTJFOEI3RTA0QUIzNAorOjEwMTY5MDAwODk3RTA0MzNDMEFCNDk0OTg5NEUyRTg5N0UyQzhCQzE4QgorOjEwMTZBMDAwRUI0RTkwRUI5RTkwRTRENjg0QzA3OTYzRTZEMDhBQzg3NgorOjEwMTZCMDAwMjUwMzAwMDNEOEQxRTMyRThCQUY0NDAwODg4RUFFMDAwMworOjEwMTZDMDAwOEI0RTJFQzQ1RTA0OEI3RTJDOEI3NjM4RTQ4NjI0MDdFQQorOjEwMTZEMDAwM0MwMzc1Q0ZFNDFDOTEzQkMxNzMwMjhCQzgyQkMxODlCRAorOjEwMTZFMDAwNDYyRTAxNEUzNDI2MDEwRkJBQzQwMEYzNkM4OTdFMkNCRAorOjEwMTZGMDAwM0I0NjNDNzIxQ0Y3QzYyMDAwNzUwQjgzQ0UyMDg5NzZEMgorOjEwMTcwMDAwMzhCMDAwRTgzQ0Y5OEE4NkFFMDAyNDNGRTZENkMzRjkzQgorOjEwMTcxMDAwQzNGN0M2MEEwMDc0MzVGN0M2MTAwMDc1MkY4M0NFMTBDNAorOjEwMTcyMDAwODk3NjM4RjdDNjAyMDA3NDBFNTBFNEQ4MjRGRUU2RDg1NQorOjEwMTczMDAwNThGN0M2MDgwMDc0MTU1MDUxQjlFODAzRTQwQTg0QzA4QworOjEwMTc0MDAwRTBGQTg0QzA3NTA0QjAyNEU2MEE1OTU4M0Q0MDAwNzM5RAorOjEwMTc1MDAwQjU4QTg2QTUwMDI0RUY4ODg2QTUwMEU2MEM4MUNFMTAwOAorOjEwMTc2MDAwMDQ4OTc2MzhFQkEwMDAwODA0MEMwMTA5MDUwRDAyMEE3MworOjEwMTc3MDAwMDYwRTAzMEIwNzBGMDA0MDgwQzAyMDYwQTBFMDEwNTA1MQorOjEwMTc4MDAwOTBEMDMwNzBCMEYwRTREMkU2RDA4QUM4MjUwMzAwMDNEMAorOjEwMTc5MDAwRDhEMUUzMkU4QkFGNDQwMDg4OEVBRTAwRTREOEMwRThFOQorOjEwMTdBMDAwMDQ4QkQ4MkU4QTg3NjYxNzhBRTA4QUM4ODY4NkE5MDBBNQorOjEwMTdCMDAwMzJFMEU0OTg4QjVFM0U4NEUzNzQ1NDhBQzE4QjRFMjZGQgorOjEwMTdDMDAwRjZDNTA0NzQwQ0E4MDg3NDA1ODBFMUJGRUIwMzgwQzk1QQorOjEwMTdEMDAwNDBGNkM1MDg3NDBDQTgwMjc0MDU4MEUxN0ZFQjAzODAxNQorOjEwMTdFMDAwQzk4MDg4NEUyNjhCRjA4QTg2QTUwMEY2QzFGRDc0MDg1NAorOjEwMTdGMDAwQTgwNjc0MTkyNEY5RUIwRkE4MDY3NTExRjZDNTAxNzUzMgorOjEwMTgwMDAwMDQwQzA0RUIwMjBDMDI4ODg2QTUwMEU2MEM4QkM2ODQ0RgorOjEwMTgxMDAwRTc3NTA5OEE4NkFFMDAyNDNGRTZEMkMzQzY4NkJBMDBDMQorOjEwMTgyMDAwMDFCMDBFRTgxQ0Y4Rjc0NjM4MDAwMjc0RTY4MzdFMkVGRAorOjEwMTgzMDAwMDY3MkUwOEE4NkE5MDA4QUUwODY4NkFBMDA4QUM4MzJGMworOjEwMTg0MDAwQzQ4MEM5MEIyMkMxQzBFNDA0MEFFMEM0NUUwNDhCN0VEQworOjEwMTg1MDAwMkNCMEZGQUFCMDAyQUIyNjgzMDcwMzgzNkUyRTAzODk0OAorOjEwMTg2MDAwN0UyQ0Y2NDYzODIwNzVBQjgzNEUzODIwQjAwMEU4RDE4OAorOjEwMTg3MDAwRjdFQkEwOTBFNDEyMjRERkU2MTI4MUUzRkU5Rjg5NUU3RAorOjEwMTg4MDAwMjY4MzY2NDhGN0VCNzM5MEY2QzcyMDc1RTdFNDEyMENFMQorOjEwMTg5MDAwMjBFNjEyMzJDMEU2QzZCMDgzRTZDNjgwQ0YyMDg5NUU1RAorOjEwMThBMDAwMjY4QTg2QTUwMDBDMDI4ODg2QTUwMEU2MENFQjc0OTBCQgorOjEwMThCMDAwRjZDNzQwNzVEM0U0MTIwQzIwRTYxMjMyQzBFNkM2QjA3QgorOjEwMThDMDAwODFFNkM2ODBFN0RGODBDQjAxODk1RTI2QjAwNkU4NzEzRAorOjEwMThEMDAwRjc5MDhBODZBNTAwMjRGOUU2MEM4ODg2QTUwMEVCNDNEQworOjEwMThFMDAwRTRENEU2RDA4QkY4MjUwMzAwMDNEOEQxRTMyRThCQUZFOAorOjEwMThGMDAwNDQwMDhCNUUyNkY2Qzc2MDc1QjZGNkMzQzA3NUQzQkFEMgorOjEwMTkwMDAwQzYwMDhCNEUxQzhCNDYxQTNCQzg3MzFFMDE0RTJBMkJGOQorOjEwMTkxMDAwQzE4OTQ2MUFDNTc2MDBGMzZFOEVEOTg5NzYwMDNEMjBCRQorOjEwMTkyMDAwMDA3MjNEOEJDNzI0M0ZFNkQ0QzM4NUMwNzQzOThCQzg5MQorOjEwMTkzMDAwMDE0NjJBQzU3NjAwRjM2RThFRDk4M0NCMDI4OTVFMjZENgorOjEwMTk0MDAwRThEOUVERjZDNzAxNzUzOThBODZBNTAwMjRGOUU2MENCOQorOjEwMTk1MDAwODg4NkE1MDBGNkM3MTA3NUNBQjAwMkU4RTRGNkVCQzNBNgorOjEwMTk2MDAwRjZDNzAxNzRFRkVCQkNGNkM3MDE3NERDOEE4NkE1MDBFQworOjEwMTk3MDAwQTgwMjc0MTE4MUUzRkZGRTgxQ0IwMDAyODk1RTI2RUI5MQorOjEwMTk4MDAwQzc4QTg2QTUwMDI0RkIwQzAyRTYwQzg4ODZBNTAwRUIxRQorOjEwMTk5MDAwOTI5MEZERjdERjdGRkVGQkVGQkYwMDA0MDAwNDA1MDQxQgorOjEwMTlBMDAwMDUwNDAxMDQwMDA0MDUwNDA1MDQwNjA0MDYwNDA1MDRGNgorOjEwMTlCMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwMjA0MDAwNDA1MDRFNQorOjEwMTlDMDAwMDUwNDAxMDQwMDA0MDUwNDA1MDQwNjA0MDYwNDA1MDRENgorOjEwMTlEMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwNzA0MDcwNDA1MDRCOQorOjEwMTlFMDAwMDUwNDA3MDQwNzA0MDUwNDA1MDQwNjA0MDYwNDA1MDRBOQorOjEwMTlGMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwNzA0MDcwNDA1MDQ5OQorOjEwMUEwMDAwMDUwNDA3MDQwNzA0MDUwNDA1MDQwNjA0MDYwNDA1MDQ4OAorOjEwMUExMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwMzA0MDAwNDA1MDQ4MworOjEwMUEyMDAwMDUwNDAxMDQwMDA0MDUwNDA1MDQwNjA0MDYwNDA1MDQ3NQorOjEwMUEzMDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwMjA0MDAwNDA1MDQ2NAorOjEwMUE0MDAwMDUwNDAxMDQwMDA0MDUwNDA1MDQwNjA0MDYwNDA1MDQ1NQorOjEwMUE1MDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwNzA0MDcwNDA1MDQzOAorOjEwMUE2MDAwMDUwNDA3MDQwNzA0MDUwNDA1MDQwNjA0MDYwNDA1MDQyOAorOjEwMUE3MDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQwNzA0MDcwNDA1MDQxOAorOjEwMUE4MDAwMDUwNDA3MDQwNzA0MDUwNDA1MDQwNjA0MDYwNDA1MDQwOAorOjEwMUE5MDAwMDUwNDA2MDQwNjA0MDUwNDA1MDQzM0RCOEFEODhBODc5NgorOjEwMUFBMDAwNkMxMkU2RkVDMUUzMDJFNENFQTgwNDc1MDlBODAyNzQzNAorOjEwMUFCMDAwMDNFOTJDRkVGOUMzNTA1M0U4Q0JGQzVCNThBODAyNzQzMQorOjEwMUFDMDAwMDNFOTFDRkVGOEMzMzNEQjhBRDg4QTg3NkMxMkU2RkU3MgorOjEwMUFEMDAwQzFFMzAyRTlEMEZCOUExQUM2MUEwMDAwMDIwMDA0MDAxMgorOjEwMUFFMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDBEOAorOjEwMUFGMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQTAwMDIwMDA0MDBDNgorOjEwMUIwMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDBCNworOjEwMUIxMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQzAwMDIwMDA0MDBBMworOjEwMUIyMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDA5NworOjEwMUIzMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQTAwMDIwMDA0MDA4NQorOjEwMUI0MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDA3NworOjEwMUI1MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwRTAwMDIwMDA0MDA2MQorOjEwMUI2MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDA1NworOjEwMUI3MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQTAwMDIwMDA0MDA0NQorOjEwMUI4MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDAzNworOjEwMUI5MDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQzAwMDIwMDA0MDAyMworOjEwMUJBMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDAxNworOjEwMUJCMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwQTAwMDIwMDA0MDAwNQorOjEwMUJDMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDAwODAwMDIwMDA0MDBGNworOjEwMUJEMDAwMDIwMDA2MDAwMjAwMDQwMDAyMDBDMzkwREExNDk0MTUwQgorOjEwMUJFMDAwNUMxM0U2MTNEQTFCREExQkU2MTNEQTFCOEI5NDY0MTIyMAorOjEwMUJGMDAwQzFFNjA0QTgwMTc0MzU1MDMzQzA4QUMyRTZGRUU0QTBGMQorOjEwMUMwMDAwODVDMDc0Mjc4QkQ4MkU4QTlGREExQTUyNTYyRThCQTgzRAorOjEwMUMxMDAwNDQwMDhCNTYyOEVDQTgwMTc1MEQ4ODg2QUQwMDI0MEU3MworOjEwMUMyMDAwOEFEODJFRkY5N0RDMUI1RTVBRUJDRDU4QTgwMjc0MzY3QgorOjEwMUMzMDAwODNDNjEwMzNDMDhBQzZFNkZFRTRBMDg1QzA3NDI3OEIzNQorOjEwMUM0MDAwRDgyRThBOUZEQTFBNTI1NjJFOEJBODQ0MDA4QjU2MjgxQgorOjEwMUM1MDAwRUNBODAxNzUwRDg4ODZBRDAwMjQwRThBRDgyRUZGOTc1QQorOjEwMUM2MDAwREMxQjVFNUFFQkNEQzM5MDMyRTQ4QkQ4OEJEMDJFOEEyRQorOjEwMUM3MDAwOUY5QTE5MkUyMjk3OTIxOTU2NTI4QUMzMjQwMzAzQzY5QgorOjEwMUM4MDAwODBFMzA0RDBFQjJFRkY5N0Q2MUE1ODVFQTk1NTAwNzU1NQorOjEwMUM5MDAwRDlDMzYwMUUwNjJCQzA4RUQ4QTE1QzEyRTZGRUU0MDBGQworOjEwMUNBMDAwMjJDNDc0MDgzM0Y2RThCRkZGRUJFRTkwRTQwNDA3RTRDNworOjEwMUNCMDAwMDQxRkI4MDA4MEJBMjJGRkVGNjFDRjkwNjAxRTA2MkI5MAorOjEwMUNDMDAwQzA4RUQ4QTE1RTEyRTZGRUU0MDAyMkM0NzQwOEJFMDRGMQorOjEwMUNEMDAwMDBFODk0RkZFQkVERTQwNDA3RTQwNDFGQjgwMDgwQkFDOQorOjEwMUNFMDAwMjJGRkVGNjFDRjkwNjAxRTA2MkJDMDhFRDhBMTVDMTI0MAorOjEwMUNGMDAwRTZGRUU0MDAyMkM0NzQxODMzRjZFODZCRkZBMTYwMTIxQworOjEwMUQwMDAwRTZGRUU0MDAyMkM0NzRFNUJFMDgwMEU4NUFGRkVCRERGRAorOjEwMUQxMDAwQTE2MDEyRTZGRUU0MDAyMkM0NzVFREU0MDQwN0U0MDRDOQorOjEwMUQyMDAwQTE1QzEyRTZGRUU0MDQxRkU0MDRCODAwODBCQTIyRkZCRQorOjEwMUQzMDAwRUY2MUNGOTA2MDFFMDYyQkMwOEVEOEExNUUxMkU2RkUyQQorOjEwMUQ0MDAwRTQwMDIyQzQ3NDE5QkUwNDAwRTgxQ0ZGQTE2MjEyRTY3QworOjEwMUQ1MDAwRkVFNDAwMjJDNDc0RTRCRTBDMDBFODBCRkZFQkRDQTEzRgorOjEwMUQ2MDAwNjIxMkU2RkVFNDAwMjJDNDc1RURFNDA0MDdFNDA0QTE3NworOjEwMUQ3MDAwNUUxMkU2RkVFNDA0MUZFNDA0QjgwMDgwQkEyMkZGRUYxRQorOjEwMUQ4MDAwNjFDRjYwMUUwNjJCQzA4RUQ4QTE1QzEyRTZGRUU0ODBGNworOjEwMUQ5MDAwODRDNDc0MDgzM0Y2RTg1M0ZFRUJFRTkwQjgwMDgwQkFDMgorOjEwMURBMDAwMjJGRkVGMDcxRjYxQ0Y5MDYwMUUwNjJCQzA4RUQ4QTFDNworOjEwMURCMDAwNUUxMkU2RkVFNDgwODRDNDc0MDhCRTAyMDBFODJDRkVENQorOjEwMURDMDAwRUJFREI4MDA4MEJBMjJGRkVGMDcxRjYxQ0Y5MDYwMUVENQorOjEwMUREMDAwMDYyQkMwOEVEOEExNjAxMkU2RkVFNDgwODRDNDc0MDg4RAorOjEwMURFMDAwQkUwNDAwRTgwNkZFRUJFREI4MDA4MEJBMjJGRkVGMDc2NAorOjEwMURGMDAwMUY2MUNGOTA2MDFFMDYyQkMwOEVEOEExNjIxMkU2RkUzNgorOjEwMUUwMDAwRTQ4MDg0QzQ3NDA4QkUwNjAwRThFMEZERUJFREI4MDA5MQorOjEwMUUxMDAwODBCQTIyRkZFRjA3MUY2MUNGOTA2MDFFMDYyQkMwOEU5NQorOjEwMUUyMDAwRDhBMTVDMTJFNkZFRTQwMDIyQzQ3NDE4MzNGNkU4Mzc0OQorOjEwMUUzMDAwRkVBMTYwMTJFNkZFRTQ4MDg0QzQ3NEU1QkUwNDAwRThGRQorOjEwMUU0MDAwQUFGREVCRERBMTYwMTJFNkZFRTQ4MDg0QzQ3NUVEQTE3RAorOjEwMUU1MDAwNUMxMkU2RkVFNDA0MDdFNDA0MUZCODAwODBCQTIyRkYyNworOjEwMUU2MDAwRUY2MUNGOTA2MDFFMDYyQkMwOEVEOEExNUUxMkU2RkVGOQorOjEwMUU3MDAwRTQwMDIyQzQ3NDE5QkUwNDAwRThFQ0ZEQTE2MjEyRTY3RAorOjEwMUU4MDAwRkVFNDgwODRDNDc0RTRCRTA2MDBFODVGRkRFQkRDQTFFMAorOjEwMUU5MDAwNjIxMkU2RkVFNDgwODRDNDc1RURBMTVFMTJFNkZFRTQwMworOjEwMUVBMDAwMDQwN0U0MDQxRkI4MDA4MEJBMjJGRkVGNjFDRjYwMUU3MAorOjEwMUVCMDAwMDYyQkMwOEVEOEExNUMxMkU2RkVFNDgwODRDNDc0MThBMAorOjEwMUVDMDAwMzNGNkU4MjdGREExNjAxMkU2RkVFNDAwMjJDNDc0RTVDMworOjEwMUVEMDAwQkUwODAwRTg5MkZERUJEREExNjAxMkU2RkVFNDAwMjIwMAorOjEwMUVFMDAwQzQ3NUVERTQwNDA3RTQwNDFGQjgwMDgwQkEyMkZGRUZENAorOjEwMUVGMDAwNjFDRjYwMUUwNjJCQzA4RUQ4QTE1RTEyRTZGRUU0ODA4NAorOjEwMUYwMDAwODRDNDc0MTlCRTAyMDBFOEUyRkNBMTYyMTJFNkZFRTQ5OQorOjEwMUYxMDAwMDAyMkM0NzRFNEJFMEMwMEU4NERGREVCRENBMTYyMTJBQgorOjEwMUYyMDAwRTZGRUU0MDAyMkM0NzVFREU0MDQwN0U0MDQxRkI4MDBGMworOjEwMUYzMDAwODBCQTIyRkZFRjYxQ0Y5MDYwMUUwNjJCQzA4RUQ4QTEyMQorOjEwMUY0MDAwNUMxMkU2RkVFNDgwODRDNDc0MTgzM0Y2RTg5REZDQTFCQworOjEwMUY1MDAwNjAxMkU2RkVFNDgwODRDNDc0RTVCRTA0MDBFODhDRkNGNAorOjEwMUY2MDAwRUJEREExNjAxMkU2RkVFNDgwODRDNDc1RUQwNzFGQjhDNgorOjEwMUY3MDAwMDA4MEJBMjJGRkVGNjFDRjYwMUUwNjJCQzA4RUQ4QTE3MQorOjEwMUY4MDAwNUUxMkU2RkVFNDgwODRDNDc0MTlCRTAyMDBFODVDRkNDNAorOjEwMUY5MDAwQTE2MjEyRTZGRUU0ODA4NEM0NzRFNEJFMDYwMEU4NEI0RAorOjEwMUZBMDAwRkNFQkRDQTE2MjEyRTZGRUU0ODA4NEM0NzVFRDA3MUY0MQorOjEwMUZCMDAwQjgwMDgwQkEyMkZGRUY2MUNGOTA2MDFFMDYyQkMwOEU2MgorOjEwMUZDMDAwRDg5MDJBQzBFNkZFRTRDRUE4MDE3NDE0MzNEQkU4RDUyRAorOjEwMUZEMDAwRjZFQkVGOTBCODAwODBCQTIyRkZFRjA3MUY2MUNGOTBCOQorOjEwMUZFMDAwRjYwNjA1MDEwMTc1RURCMDAxRTZGRUU0Q0VBODAxNzQyOAorOjEwMUZGMDAwRTNCQjA0MDBFOEFGRjZFQkM5OTA2MDFFMDYyQkMwOEU3MQorOjEwMjAwMDAwRDg5MEZCOTBGQTJBQzBFNkZFRTRDRUE4MDI3NDEzMzNGRgorOjEwMjAxMDAwREJFOENDRjhFQkVDQjgwMDgwQkEyMkZGRUYwNzFGNjFEOQorOjEwMjAyMDAwQ0Y5MEE4MDQ3NEYwMzNEQkU4NUJGN0VCRDU5MDYwMUUyQgorOjEwMjAzMDAwMDYyQkMwOEVEODkwRkI5MEZBQjAwMUU2RkVFNENFQTg0NQorOjEwMjA0MDAwMDI3NDE1QkIwNDAwRTg5N0Y4RUJFQjkwQjgwMDgwQkE3NworOjEwMjA1MDAwMjJGRkVGMDcxRjYxQ0Y5MEE4MDQ3NEYwQkIwNDAwRThEMworOjEwMjA2MDAwMjRGN0VCRDI2QTAwMUZDNjA2OTMxMjA5OUMwRUU4NkI5OAorOjEwMjA3MDAwRjI5MDZBMDAxRkM2MDY5MzEyMjk5QzBFRTg1REYyOTA0QQorOjEwMjA4MDAwNzIyMDcyMjA3MjIwQ0UxRDkyMUNFNjFDMUExRTcyMjAzNQorOjEwMjA5MDAwODIxREFFMUUzODFGNzIyMDgyMUQ3MjIwNzIyMDM4MUZEMgorOjEwMjBBMDAwNzIyMDcyMjA3MjIwRjQxREJDMUMzNDFENjQxRTcyMjAyQworOjEwMjBCMDAwQTgxREYyMUU3ODFGNzIyMEE4MUQ3MjIwNzIyMDc4MUZBMgorOjEwMjBDMDAwRkNCOTQwMDA4Q0NCQjg2NDIwMkJGRkFCOTNBQjkzRTIwMAorOjEwMjBEMDAwRkFDNzA2NEMwMEE4MTE4MzNFNDQxMjAwNzUyMEM3MDZCQgorOjEwMjBFMDAwM0MwMDA4NEJDNzA2MzAwMEJBMUZDNzA2MzQwMEZBMUY3MQorOjEwMjBGMDAwRjYwNjA1MDEwMTc1MDZDNzA2MzgwMDJFMjBDM0M3MDY3RgorOjEwMjEwMDAwM0MwMDU2NEIzM0RCOEExRTU0MTJDMUUzMDIwMjFFNTZCQQorOjEwMjExMDAwMTIyRThCODc4MDIwQTMzMDAwOEExRTU1MTJDMUUzMDI0NQorOjEwMjEyMDAwMDIxRTU3MTIyRThCODdBMDIwQTMzNDAwQzM4Qjg2OUVERAorOjEwMjEzMDAwMDBFNkZFODZDNEU2RDBDMzhCODY5RTAwRTZGRTMzRDI2MAorOjEwMjE0MDAwOEFENEMzNTFCOTEwMjdFNDBBOTA5MDg0QzA3NDA1RTI4MAorOjEwMjE1MDAwRjY1OUY5QzM1OUY4QzM4NEMwNzgxRTUxOEFFODhBQzg3MQorOjEwMjE2MDAwQjgwMTAwRDNFMDA5ODY5ODAwM0FBRUEwMDA1OTc1MTA3NgorOjEwMjE3MDAwRThBOUU1ODM0RTI2MDJGOUMzOTg4OTg2OTgwMEVCRjAxQQorOjEwMjE4MDAwRjhDMzg0QzA3ODEyNTE4QUUwOEFDOEI4MDEwMEQzRTA0RAorOjEwMjE5MDAwNTlGN0QwMjE4Njk4MDBDM0M3ODY5ODAwMDAwMEMzODNGMgorOjEwMjFBMDAwQzIwNDhBODZBNjAwMEMwNEVFODNFQTA0QzNFODkzRkYwNworOjEwMjFCMDAwNzIwNEIwODJFNjBBQzM4QjQ2MjZBOEZENzQxMThBODY5MworOjEwMjFDMDAwQTUwMEE4MDY3NDA4MjRGOTg4ODZBNTAwRTYwQ0MzRjZDNQorOjEwMjFEMDAwQzQwMTc0MEE4QTg2QTUwMDI0RkIwQzAyRUIwQ0E4MDIzOQorOjEwMjFFMDAwNzUwRjhBODZBNTAwMjRGRDBDMDQzQTg2QTUwMDc1RDhEMworOjEwMjFGMDAwQzM4QTg2QTUwMEVCQ0ZFNEQ4MzNEQjhBRDhDMEVCMDREMgorOjEwMjIwMDAwMkU4QTlGNjYxNzg4OUVBOTAwOEI1RTI2ODBFMzNGRjY4NAorOjEwMjIxMDAwQzcwNDc0MDdBODEwNzUwMzgwQ0I0MEY2QzcwODc0MDc3RAorOjEwMjIyMDAwQTg4MDc1MDM4MENCNDA4ODVFMjY4QTg2QTUwMEY2QzMwOQorOjEwMjIzMDAwRkQ3NDBEQTgwNjc0MDgyNEY5ODg4NkE1MDBFNjBDQzM3MQorOjEwMjI0MDAwRjZDNzAxNzQwNDBDMDJFQkYwRjZDMzAyNzVFOTBDMDQ0NgorOjEwMjI1MDAwRUJFN0M0MDRDNDA0ODUwNDU5MDQ0ODA0NDEwNEMzMDNERgorOjEwMjI2MDAwODIwMzQxMDM4MjAyNTcwMjQxMDI4MjAxNDEwMTgyMDAzRQorOjEwMjI3MDAwNDEwMDRFMDJBRDAxNTcwMTJEMDAyQjAwMjcwMDIxMDAyNworOjEwMjI4MDAwMTYwMEY0MDRGNDA0QTMwNDZGMDQ1QjA0NTEwNEY0MDM4MworOjEwMjI5MDAwQTMwMzUxMDNBMzAyNkQwMjUxMDJBMzAxNTEwMUEzMDA0NAorOjEwMjJBMDAwNTEwMDYyMDJEOTAxNkQwMTM4MDAzNjAwMzEwMDI5MDA2OQorOjEwMjJCMDAwMUIwMDUxNTdCRjAyMDBFQjBGOTA1MTU2QkYwMTAwRUJCRQorOjEwMjJDMDAwMDc5MDUxNTZCRjAzMDA5MDNDMTk3NjAyQjAxNzk4OEJDNworOjEwMjJEMDAwRjA4QTgyQzQwMDJBRTQ4QkYwODNGRTE4NzM0NkQxRTZBQworOjEwMjJFMDAwMkU4QjhDNTIyMkY3NDYzODgwMDA3NDA1MkU4QjhDODIwMAorOjEwMjJGMDAwMjJGN0M3MDIwMDc0MTIzQjhFOTQwMDc0MEM4OThFOTRFRQorOjEwMjMwMDAwMDA4QUM1RTZFQzhBQzFFNkU0RjdDNzAxMDA3NDEyM0IxNworOjEwMjMxMDAwOEU5NjAwNzQwQzg5OEU5NjAwOEFDNUU2Rjg4QUMxRTYwRQorOjEwMjMyMDAwRjA1RTU5QzM3NzA2OEI4RThFMDBFQkM1OEI4RTkwMDBDNgorOjEwMjMzMDAwRUJCRkQ1MDNGNjAwM0UwMDEwMDAwNDAwQ0EwNDMzMDFEMQorOjEwMjM0MDAwNEQwMDE0MDAwNTAwMDEwMzA1MDcwOTAwMDEwMjAzMDQwNAorOjEwMjM1MDAwODA4NDFFMDBBMDI1MjYwMDAwMDA2MDhCRjAzM0ZGMkUzNQorOjEwMjM2MDAwQTE1MDIzMkU4QjE2NTIyM0JCMzIyM0Y3NDYzODgwMDAxMAorOjEwMjM3MDAwNzQwQzJFQTE1NDIzMkU4QjE2NTYyM0JCM0MyM0I5MDU3NworOjEwMjM4MDAwMDAyRTNCMzE3MzBBNDc0N0UyRjdCOEZGRkZFQjFEOTA4MQorOjEwMjM5MDAwRDFFRjJFOEE4RDQ2MjMyQUVERDFFQUQxRDhFMkZBRjc4MQorOjEwMjNBMDAwRjYwNTAyMDBDMUU4MDIyRThBQTU0QjIzMkVBMzU4MjM2RQorOjEwMjNCMDAwNjEyRUExNTgyM0MzMDgwMDIwMDA4MDAwMDAwMjYwMDk5QworOjEwMjNDMDAwMDgwMDIwMDA4MDAwMDAwMjAwMDgwMDAwMDEwMDAyMDA1OAorOjEwMjNEMDAwMDMwMDA0MDA1MjU2NTc4NUMwNzQwNTNEMDEwOTc2MDM3OQorOjEwMjNFMDAwQjgwMTA5QkY1QjAxRjc0NjM4ODAwMDc0MDNCRkIyMDEzMgorOjEwMjNGMDAwMzNGNjJFM0I4NEI2MjM3NjA0NDY0NkVCRjVGN0U3MkVGQworOjEwMjQwMDAwOEJCQ0MwMjMwM0M3ODNEMjAwRDFFN0Y3RjcyRThBQTQ4MQorOjEwMjQxMDAwQ0EyMzVGNUU1QUMzRTQzRTgwQkVDMzAwMDM3NTBDRjc1NworOjEwMjQyMDAwNDY3QTIwMDA3NDA1MEM4MEU2M0VDMzI0N0ZFNjNFQzM1NgorOjEwMjQzMDAwMjQwMzg4ODZDMzAwOEFFMEU0MTAyNEZDMEFDNEU2MTA2MgorOjEwMjQ0MDAwODA4RUExMDA0MkU4Q0VGRkMzOTA1NjhCRjA4M0U2MDc1MgorOjEwMjQ1MDAwRDFFNjJFRkZBNDU4MjQ5MDY4MjQ2QzI0NzAyNDc0MjRBMAorOjEwMjQ2MDAwNzgyNDg3MjQ4NzI0ODcyNEI0MDBFQjBFQjRDMEVCMEFCOQorOjEwMjQ3MDAwQjQ0MEVCMDZCNDIwRUIwMkI0QTBFNDEwMjQxRjBBQzQ1RAorOjEwMjQ4MDAwRTYxMDgwOEVBMTAwNDI1RUMzOTAzQzAyNzcxMjhBRTA4MworOjEwMjQ5MDAwRTQxMDI0RjNDMEU0MDIwQUM0RTYxMDgwOEVBMTAwNDJENgorOjEwMjRBMDAwQzM5MDhCNUUzODg0QzA3NDFGM0MwMjc0MjA4M0NCMDhCOQorOjEwMjRCMDAwOEI0NjJFM0I0NjNDNzcwQ0U4ODhGQzcyMDdCMDI0RTYzRQorOjEwMjRDMDAwMEE4M0NCMTA4OTVFMzhDMzgzRTNGN0VCRjdGN0MzMTBCOQorOjEwMjREMDAwMDA3NEY1RTg2REZDNzJFQzhBODZDMDAwRTYzOEIwMjMyMworOjEwMjRFMDAwRTYwQUVCRTA4QjVFMzg4QjQ2MkUzQjQ2M0NFNEQ4NzcyMQorOjEwMjRGMDAwMEIyNEZFODBDQjEyRTZEODg5NUUzOEMzMEMwMTgwQ0I1QQorOjEwMjUwMDAwMDJFQkYzNTAzM0RCQzFFODA0MjUwRjBGOEFEODJFOEE4MworOjEwMjUxMDAwODc2NjE3OEFEQzJFOEFBNzY2MTcwOTQ2M0U1OEMzNTA3RAorOjEwMjUyMDAwMzNEQkMxRTgwNDI1MEYwRjhBRDgyRThBODc2NjE3OEEwNQorOjEwMjUzMDAwREMyRThBQTc2NjE3RjdEMDIxNDYzRTU4QzM4QjQ2M0U0RAorOjEwMjU0MDAwMzNEQjhBRDgwQURDMkU4QTg3NzYxN0U2MkM4QUUwRTQwOQorOjEwMjU1MDAwMkEyNDBGMEFDNEU2MkE4QTg2QTUwMDg0RTQ3NTBEQThGOQorOjEwMjU2MDAwODA3NDExMjQ3Rjg4ODZBNTAwRTYwQ0MzQTg4MDc1MDRCQQorOjEwMjU3MDAwMEM4MEVCRjFDMzFFNjAzM0M5MzNEMjMzRjY4RUQ5OEQ5NAorOjEwMjU4MDAwQkVGRDAwNTc4QjA1ODRDMDc0MTY4QkQxNDI4QkZFNEY2NQorOjEwMjU5MDAwNzgwOTM4QTNFNDAwNzQwODRGNzlGNzg4QTJFNDAwNDY2QworOjEwMjVBMDAwNUY4M0M3MDk0MTgzRjkxMDcyRDk4OUI2ODYwMDg5OTY3RAorOjEwMjVCMDAwODQwMDYxMUZDMzUzQzc0NjY2MDAwMDhCNDY2NEE5NDA3MAorOjEwMjVDMDAwMDA3NDBEQjMwMEE5ODAwMDc0MDJCMzdGODg5RUMxMDAxRgorOjEwMjVEMDAwMzJEQkE5MDIwMDc0MDM4MENCNDBBOTAwNDA3NDAzODA2MQorOjEwMjVFMDAwQ0IwMkE5MDA4MDc0MDM4MENCMDFBOTMwMUU3NDAzODA0NAorOjEwMjVGMDAwQ0JCQ0E5MDAyMDc0MDM4MENCMDhBOTA0MDE3NDAzODAxQworOjEwMjYwMDAwQ0IxMEE5MDgwMDc0MDM4MENCMjA4ODlFQzIwMDVCQzM1NgorOjEwMjYxMDAwMDY1MTU3NTAxNjA3OERCRUM0MDBCOTFGMDAzM0MwQUExQgorOjEwMjYyMDAwNDBFMkZDOEI4NjkyMDA4OTg2OEUwMDg5ODY5MDAwNTg1NQorOjEwMjYzMDAwNUY1OTA3QzNFNEQ4QzBFODA0NTMyNTBGMDA4QkQ4MkU5OAorOjEwMjY0MDAwOEE4NzY2MTc4ODg2QTkwMDVBQzMwODg2QUMwMEM2ODZBMgorOjEwMjY1MDAwQkEwMDAxQjAwRUU4RUFFOUMzQUQzNkEzQjQxM0FEMzY1MworOjEwMjY2MDAwQTNCNjEzQUQzNkEzQjgxMzgzRTkwNjM2RjcwNkI2MTMzRgorOjEwMjY3MDAwMEYwMEMzOEE0NjI2Rjc0NjQ4ODAwMDc0MDIwQzEwODg3MworOjEwMjY4MDAwODZCRDAwMzJDMDgzN0UxQTAwNzUwRThCNUU0MDQzODA4QgorOjEwMjY5MDAwRTNGRTNCNUUwODc1MDIwQzAxODM3RTNBMDA3NTBEMUU1OQorOjEwMjZBMDAwQzU1RTE0OEIxRjFGODVEQjc1MDIwQzAyRjc0NjM4MTBDMAorOjEwMjZCMDAwMDA3NDAyMEMwNDhCNUU3QUY3QzMwMjAwNzQwMjBDMDhFQgorOjEwMjZDMDAwRjdDMzA0MDA3NDAyMEMxMEY3QzMwODAwNzQwMjBDMjA1NgorOjEwMjZEMDAwRjdDMzQwMDA3NDAyMEM0MDg4ODZCRjAwQzM5MDZBMDBCNAorOjEwMjZFMDAwMUZDNjA2OTMxMjBEOUMwRUU4RjFFQjkwQjAwMkU2REFERAorOjEwMjZGMDAwRjhDMzMzQzBFNkRBRjhDM0IwMDFFNkQ4RjhDMzMzQzA5NAorOjEwMjcwMDAwRTZEOEY4QzNCMEZGRTg0RUZBRThBMUZBRjhDM0FDNDkzRQorOjEwMjcxMDAwRThBRkZCRjhDMzkwQUM0OUU4MTVGREY4QzM5MEFDNDlBRAorOjEwMjcyMDAwRTg2N0ZERjhDMzkwQUM0OUU4MUZGREY4QzM5MEFDNDlEOQorOjEwMjczMDAwRTYzNEY4QzNBQzQ5RTYzNkY4QzNBQzQ5M0MwMjc3MUYyRgorOjEwMjc0MDAwODRDMDc1MURFNDE0MjRFRkU2MTRFNDEyMjQzRkU2MTI1RAorOjEwMjc1MDAwRTQxNkE4MDQ3NDA5RThFQUY5NzIwNEIwMThFNjBBRjg2NQorOjEwMjc2MDAwQzM4QUUwRTQxNDBDMTBFNjE0RTQxMjBDQzBGNkM0MDFCMQorOjEwMjc3MDAwNzQwMjI0N0ZFNjEyRjhDM0FDNDlFODI1RkRGOEMzOTA0MworOjEwMjc4MDAwQjgwMDQwRTg3REZERThCNEZERThBOEZFQjAwMUU4Qjk3NgorOjEwMjc5MDAwRkVGOEMzOTBCODAwNDBFODg1RkRFOEEwRkRGOEMzOTBCRQorOjEwMjdBMDAwQjgwMDEwRTg1REZERTg5NEZERTg4OEZFQjAwOEU4OTlGRgorOjEwMjdCMDAwRkVGOEMzOTBCODAwMTBFODY1RkRFODgwRkRGOEMzOTAwRQorOjEwMjdDMDAwQjgwMDgwRTgzREZERTg3NEZERTg2OEZFQjAwMkU4NzlGNQorOjEwMjdEMDAwRkVGOEMzOTBCODAwODBFODQ1RkRFODYwRkRGOEMzOTBCRQorOjEwMjdFMDAwQjgwMDIwRTgxREZERTg1NEZERTg0OEZFQjAwNEU4NTlCMworOjEwMjdGMDAwRkVGOEMzOTBCODAwMjBFODI1RkRFODQwRkRGOEMzOTAzRQorOjEwMjgwMDAwQUM0OUU4NDgxNEU0M0MyNEU3MEFDNEU2M0NGOEMzOTAyOQorOjEwMjgxMDAwQjhGQzNCODk0NjdDRTQzQzBDMThFNjNDRjhDM0U0MTI2NworOjEwMjgyMDAwMEMwMkU2MTJGOEMzRTQxMjI0RkRFQkY2RThCNUZDRjg1RQorOjEwMjgzMDAwQzM5MDgzNjYzOEZERjhDM0FDNDlBODAxNzQwNjgzNEU4MworOjEwMjg0MDAwN0EyMEVCMDQ4MzY2N0FERkU4Q0JGQkY4QzM5MDhBODZCNAorOjEwMjg1MDAwQTUwMDBDMDIyNEZCODg4NkE1MDBFNjBDODE0RTI2MDEwQgorOjEwMjg2MDAwMjBBQzQ5MzJFNDg5NDY2RTgzNEU0ODA4NDk0NkY5QzM5NAorOjEwMjg3MDAwOEE4NkE1MDAwQzAyMjRGQjg4ODZBNTAwRTYwQzgxNEUwMgorOjEwMjg4MDAwMjYwMTIwQUNCNDBBRjZFNEVCRDhFOEZBMTNFNDNDMjRDMQorOjEwMjg5MDAwRjgwQUM0RTYzQ0Y4QzM5MEFENDk0OTg5NDY2NEE5MDFFOQorOjEwMjhBMDAwMDA3NDFCOEJEODgzRTNGQTc1MUFBOTA0MDA3NDBGRTQzMworOjEwMjhCMDAwM0UwQzAyRTYzRUI4Mzg0NDg5NDY2MkY4QzM5MEU0M0VENgorOjEwMjhDMDAwMjRGQ0VCRUZFNDNFMjRGQ0U2M0VFOEU4RkNCOEFBNDAzQQorOjEwMjhEMDAwRUJFNkU4NkVGODcyMDVCMDE4RTYwQUY4QzM5MEFDNDk2QQorOjEwMjhFMDAwRThDRkY5RjhDMzkwQUM0OUU4Q0ZGOUY4QzM5MEU4NjhBRAorOjEwMjhGMDAwRkQ3NTA2MzJDMEU2REFGOEMzQjAwMkU2REEzNkEwQjRGNworOjEwMjkwMDAwMTMyNDEwMzQxMEU4MTYwMTM2QTFCNDEzQTkwMTAwNzQ4MQorOjEwMjkxMDAwMDVFOEZDRkVFQjBFQTkwMjAwNzQwNDMyQzBFQjAyQjAyNQorOjEwMjkyMDAwMDFFOERFRkUzNkExQjQxM0U4QjUxM0U0M0MyNEY4MEE0RQorOjEwMjkzMDAwQzRFNjNDMzZBMUI0MTNDMUU4MDUyNTAxMDBFOEZBRkU1RgorOjEwMjk0MDAwMzZBMEI1MTMyNDEwRTg1OUZCMzJDMDM2OEEyNkI1MTNEOQorOjEwMjk1MDAwRjZDNDA0NzQwOUZFQzBGNkM0MDg3NDAyRkVDMEU4REJDNQorOjEwMjk2MDAwRkQzNkExQjYxMzI1MEYwMEU4NTdGOTM2QTFCNjEzQzFGRAorOjEwMjk3MDAwRTgwNDI1MDMwMEU4QjhGQTM2QTFCNjEzQzFFODA1MjUzNgorOjEwMjk4MDAwMDIwMEU4MDVGQjM2QTFCNjEzRjZDNDAxNzUwNDMyQzA5NworOjEwMjk5MDAwRUIwOTgwRTQwMkQwRUNCMDAyMkFDNEU4QUNGQTM2RjZDNworOjEwMjlBMDAwMDZCNzEzNDA3NDA1RTg4M0ZFRUIwM0U4ODRGRTM2RjZCMQorOjEwMjlCMDAwMDZCNzEzMjA3NDA1RTg2NUZFRUIwM0U4NjhGRUY4QzM2QworOjEwMjlDMDAwRTQxMjBDMDFFNjEyRjhDM0U0MTIyNEZFRUJGNkU0MTQ2MAorOjEwMjlEMDAwMjRGMDBDMDVFNjE0RTQyQTI0RjAwQzA2RTYyQUY4QzNEOQorOjEwMjlFMDAwRTQyQTI0RjBFNjJBRTQxNDI0RjAwQzA3RTYxNEY4QzNFMQorOjEwMjlGMDAwQUQ0OTQ5RTg2NEY5ODk4NjhFMDBGOEMzQUQ0OTQ5RThENAorOjEwMkEwMDAwNThGOTg5ODY5MDAwRjhDMzgzNEUyNjA0RThBOEY3RjhBMQorOjEwMkExMDAwQzM5MDgzNjYyNkZCRTg5RUY3RjhDMzkwQUM0OTg0QzA1OAorOjEwMkEyMDAwNzUwREU0MTAyNEVGRTYxMDgwOEVBMTAwNDJGOEMzRTQ5NworOjEwMkEzMDAwMTAwQzEwRUJGMTkwQUM0OTNDMDI3NjAyMzJDMEMwRTBDMQorOjEwMkE0MDAwMDRBODIwNzQwMjBDMDgyNDE4OEFFMEU0MTIyNEU3MEE3RgorOjEwMkE1MDAwQzRFNjEyODA4RUExMDA0NEY4QzNBQzQ5ODg4NkMwMDA0OQorOjEwMkE2MDAwRjhDM0FDNDlFNjNBRjhDM0FDNDk4NEMwNzQwOEU0MTIzMAorOjEwMkE3MDAwMEMwNEU2MTJGOEMzRTQxMjI0RkJFQkY2QUM0OUU4RDZFQQorOjEwMkE4MDAwRjY3MzAzRTgyN0Y3RjhDM0U0MTJBODAyNzQwNDI0RkRFMAorOjEwMkE5MDAwRTYxMkI4RjAwMEU4ODdGQTgxNjYyNkZGRjNFODU3RjdGOAorOjEwMkFBMDAwRTg5QUZBRjhDMzkwQjg4MDAwRTg1N0ZBODA0RTI3MDhGMQorOjEwMkFCMDAwRTg0NEY3RTg4N0ZBRjhDM0I4ODAwMEU4NjFGQTgxNjY2RAorOjEwMkFDMDAwMjZGRkY3RTgzMUY3RTg3NEZBRjhDMzkwQjgxMDAwRTg4OQorOjEwMkFEMDAwMzFGQTgwNEUyNzA0RTgxRUY3RTg2MUZBRjhDM0I4MTAwRgorOjEwMkFFMDAwMDBFODNCRkE4MTY2MjZGRkZCRTgwQkY3RTg0RUZBRjhCMAorOjEwMkFGMDAwQzM5MDMzQzBBQzQ5M0MwMTczMDRCMDAxRUIwNjNDMENGRAorOjEwMkIwMDAwNzYwMkIwMEM4OTQ2MUNGOEMzOTA4MTRFMjYwMDIwOEFCQworOjEwMkIxMDAwODZBNTAwMEMwMjI0RkI4ODg2QTUwMEU2MEM4MzRFMjZDMQorOjEwMkIyMDAwMDFGOEMzOTA4MTRFMjYwMDQwOEE4NkE1MDAwQzAyODhEOQorOjEwMkIzMDAwODZBNTAwRTYwQ0Y4QzM5MEFDNDk1MEU4MDVGNjU4NzIzQgorOjEwMkI0MDAwMDhFNjM4QjAyM0U2MEFGOEMzRjlDMzkwQUM1MEFERTgwNAorOjEwMkI1MDAwODJGODVBRjZDMjAxNzQxMjM5ODY5NjAwNzQwQzg5ODY3RQorOjEwMkI2MDAwOTYwMEU2RjA4NkUwRTZGODg2RTBGNkMyMDI3NDEwMzlEOAorOjEwMkI3MDAwODY5NDAwNzQwQTg5ODY5NDAwRTZFNDg2RTBFNkVDODM5NQorOjEwMkI4MDAwRTkwM0MzOTBFNDE2ODg4NkJDMDBFOEU2RkEzM0RCRTQ4OAorOjEwMkI5MDAwMENBODA2NzQwMzgwQ0IwMUE4MTA3NDAzODBDQjAyQTg5NAorOjEwMkJBMDAwODA3NDAzODBDQjA0RTQxMjhBRTAyNDE4MEFEOEU0REFBMworOjEwMkJCMDAwRjZDNDAyNzQwN0E4NDA3NTAzODBDQjIwQTgwMjc1MDlFQgorOjEwMkJDMDAwRTQyQUE4MEY3NDAzODBDQjQwRjc0NjM4MDIwMDc0MDk0QQorOjEwMkJEMDAwRTREOEE4MDE3NTAzODBDQjgwODg5RUJFMDBGRTg2QjQzMQorOjEwMkJFMDAwMDBCMDBBRTg1Q0U0RjhDM0FDNDkzQzAyNzQ0MTc3MUZDQQorOjEwMkJGMDAwNTBFODRGRjU1ODcyMEM4NEMwNzQwQUIwMTJFNjBBODA4RgorOjEwMkMwMDAwNEUzODAxRjhDM0IwMTFFNjBBODA2NjM4RkVGOEMzOEI2RgorOjEwMkMxMDAwNDYzODI1RkZGNzg5NDYzOEE5MDAwNDc1RTY4QTg2QTU1NworOjEwMkMyMDAwMDBBODEwNzVERTBDMTA4ODg2QTUwMEU2MENGOEMzODE5QworOjEwMkMzMDAwNEUzODAwMDg4QTg2QTUwMEE4MTA3NEM3MjRFRkVCRTc3OQorOjEwMkM0MDAwQUQ0OTQ5M0MwMTcyMTEzQzBDNzcwRDUwOEFFMEU0MTQwNworOjEwMkM1MDAwMjVGMDBGMEFDNEU2MTQ1ODhBQzQ4NEMwNzQwMkU2NDIwMAorOjEwMkM2MDAwRjhDM0U4Q0ZGOUZFODZCOTAwQjAwRUU4RDRFM0Y4QzNBNAorOjEwMkM3MDAwM0E4NkFGMDA3NDFGODg4NkFGMDA4QUUwODBDMjA2QjAzMworOjEwMkM4MDAwQkZFRTgwRUEwMjhBQzRFRThBODZBODAwODBDMjAyRUUwNQorOjEwMkM5MDAwODBFQTA2OEFDNEMzOEI0NjNFODVDMDhBODZBNTAwNzQzNgorOjEwMkNBMDAwMTJBODA4NzUwRDBDMDg4ODg2QTUwMDgwQzIwMkVFODA2NworOjEwMkNCMDAwRUEwMkMzQTgwODc0RkIyNEY3RUJFQzhCNDYyNjg0QzAxOQorOjEwMkNDMDAwNzQxNjhBODZBNTAwQTgwMjc0MEQyNEZEODg4NkE1MDBDNgorOjEwMkNEMDAwODNDMjAyRUU4M0VBMDJDMzhBODZBNTAwQTgwMjc1RjdDMgorOjEwMkNFMDAwMEMwMkVCRTg1MjgzQzIwQ0VDQzBFODA0ODg4NkE5MDAxMQorOjEwMkNGMDAwOEI1RTI2ODBFMzNGRjZDNzA0NzQwN0E4MDg3NTAzODAzRgorOjEwMkQwMDAwQ0I0MEY2QzcwODc0MDdBODAyNzUwMzgwQ0I4MDg4NUVBNQorOjEwMkQxMDAwMjY4QTg2QTUwMDg0REI3NDEwQTgwMjc0MEEyNEZEODgyNAorOjEwMkQyMDAwODZBNTAwODNFQTBBRUU1QUMzQTgwMjc1RkEwQzAyRUJFNAorOjEwMkQzMDAwRUU5MEZGRkYwMDQ4MDAzMEJBMjBDNDFBMDAxODAwMTJCRAorOjEwMkQ0MDAwMDAwQzAwMDYwMDAzMDAwMjgwMDFDMDAwNjAwMDMwMDA5QgorOjEwMkQ1MDAwMTgwMENEMDEwMDAxODAwMDEwMDAxMDAwMEUwMDBDMDBEMgorOjEwMkQ2MDAwMDgwMDAwMDAwMDAwMDYwMDA0MDAwMzAwMDIwMDAxMDA0QgorOjEwMkQ3MDAwNTI1MTU2M0MxRTc3NDc5ODhCRjA4QTgyQzQwMDMyRTQ0OQorOjEwMkQ4MDAwODNGRTE4NzQzRDgzRkUxOTc0M0U4M0ZFMUU3NzJGRDE5NworOjEwMkQ5MDAwRTYyRThCOEMzMjJEM0I4RTk0MDA3NDIyODk4RTk0MDAwQgorOjEwMkRBMDAwODNDMjA2OEE4NkE4MDA4QUUwMEM4MEVFODNFQTA2OEEzRgorOjEwMkRCMDAwQzFFRTgzQzIwMjhBQzVFRTgzQzIwNDhBQzRFRTVFNTlBNAorOjEwMkRDMDAwNUFDMzhCOEU4RTAwRUJDRThCOEU5MDAwRUJDODUyNTE4NworOjEwMkREMDAwM0QwNTAwNzcwM0I4MDUwMDhCQzhCQTAyMDBCODAwRDBFMworOjEwMkRFMDAwRjdGMTA1MDEwMEQxRTg1OTVBQzM4QjQ2N0FBODIwNzQzRgorOjEwMkRGMDAwMEI4MEJFQzMwMDAzNzUwNDBDMDFFQjAyMjRGRTg5NDY2MAorOjEwMkUwMDAwN0FDMzI0MDM4ODg2QzMwMDhBQTZBODAwOEFEQzgwRTRFQgorOjEwMkUxMDAwRkMwQUM0M0FDMzc0MEI4ODg2QTgwMDgzQzIwNkVFODNGQQorOjEwMkUyMDAwRUEwNkU4QzVGRkMzMDAwODE4MzgyODkwM0MwNDc3MjM1OQorOjEwMkUzMDAwMzJFNDhCRDgyRThBODcyNjJFOEFBNkE4MDA4QURDODBDOAorOjEwMkU0MDAwRTRDNzBBQzQzQUMzNzQwQjg4ODZBODAwODNDMjA2RUU5RQorOjEwMkU1MDAwODNFQTA2QzM4NEMwNzQwMkIwMDQ4QUE2QTgwMDhBREM5MAorOjEwMkU2MDAwODBFNEZCMEFDNDNBQzM3NDBCODg4NkE4MDA4M0MyMDZCOAorOjEwMkU3MDAwRUU4M0VBMDZDMzkwOEI1RTM4ODRDMDc0MzQzQzAyNzRERgorOjEwMkU4MDAwM0I4QTg2QUYwMDBDMDRFOEU2RkQ4QjQ2MkUzQjQ2M0NCMQorOjEwMkU5MDAwNzcxQkY3QzMwMDA0NzUxNTgxQ0IwMDA0ODNDMjAyOEEzNworOjEwMkVBMDAwODZBNTAwMjRGQTg4ODZBNTAwRUU4M0VBMDI4OTVFMzhBQQorOjEwMkVCMDAwQzM4QTg2QUYwMDI0RkJFOEI2RkRFQkYxRjdDMzEwMDAzMAorOjEwMkVDMDAwNzRFRkVCRUQ4M0MyMENFQzgzRUEwQ0MwRTgwNDg4ODY1NworOjEwMkVEMDAwQTkwMEMzOTA4QTg2QTcwMDBDMDE4ODg2QTcwMDhCREExOAorOjEwMkVFMDAwODBDMjA4RUU4QkQzRjhDMzhBODZBNzAwMjRGRUVCRUFFMworOjEwMkVGMDAwOEE4NkE3MDAwQzAyRUJFMjhBODZBNzAwMjRGREVCREFBMworOjEwMkYwMDAwQjBGRkU4NTJGMkU4OTdGMkY4QzNBQzQ5RTg2MUZFRjg4NgorOjEwMkYxMDAwQzM5MEFDNDlFOEVCRkVGOEMzOTBBQzQ5RTgzNUZGRjg0NAorOjEwMkYyMDAwQzM5MEFDNDlFODA1RkZGOEMzOTA1MjgzQzIwNkIwQkYxNgorOjEwMkYzMDAwRUU1MjgzQzIwMkFDNDlFRTVBOEE4NkE4MDBFRTVBRjhENQorOjEwMkY0MDAwQzM5MDUyODNDMjA2QjBCRkVFNTI4M0MyMDZFQkU2OTAzNgorOjEwMkY1MDAwQUM0OTNDMDI3NzBEODRDMDc1MEI4QTg2QUYwMDI0RkQxNgorOjEwMkY2MDAwRTgwREZERjhDMzUwOEE4NkFGMDAwQzAyRTgwMUZENUI1NgorOjEwMkY3MDAwODNDMjA4OEE4NkE3MDBGNkMzMDE3NDBDMjRERjg4ODYwMgorOjEwMkY4MDAwQTcwMEVFODNFQTA4RjhDMzBDMjBFQkYyQUM0OUU4RTVCMQorOjEwMkY5MDAwRkVGOEMzOTBCODAwNDBFODY5RjVFOEY5RkNFODI0RkZDMgorOjEwMkZBMDAwQjAwMUU4QTVGNkY4QzM5MEI4MDA0MEU4NzFGNUU4RTU4RgorOjEwMkZCMDAwRkNGOEMzOTBCODAwMTBFODQ5RjVFOEQ5RkNFODA0RkYzNAorOjEwMkZDMDAwQjAwOEU4ODVGNkY4QzM5MEI4MDAxMEU4NTFGNUU4QzVGOAorOjEwMkZEMDAwRkNGOEMzOTBCODAwODBFODI5RjVFOEI5RkNFOEU0RkUwNQorOjEwMkZFMDAwQjAwMkU4NjVGNkY4QzM5MEI4MDA4MEU4MzFGNUU4QTVDRQorOjEwMkZGMDAwRkNGOEMzOTBCODAwMjBFODA5RjVFODk5RkNFOEM0RkVBNQorOjEwMzAwMDAwQjAwNEU4NDVGNkY4QzM5MEI4MDAyMEU4MTFGNUU4ODU2QgorOjEwMzAxMDAwRkNGOEMzOTBBQzQ5RTgzNDBDRjhDMzkwQjhGQzNCODk4OQorOjEwMzAyMDAwNDY3Q0Y4QzM4QTg2QUYwMDBDODBFODQzRkNGOEMzOTA2NgorOjEwMzAzMDAwOEE4NkFGMDAyNDdGRUJGMjhBODZBRjAwMEM0MEU4MkYyRgorOjEwMzA0MDAwRkNGOEMzOTA4QTg2QUYwMDI0QkZFQkYyQUM0OUE4MDExQworOjEwMzA1MDAwNzQwNzgzNEU3QTIwRUIwNTkwODM2NjdBREZFODhBRkQ1OQorOjEwMzA2MDAwRjhDMzgzQzIwNjhBODZBODAwMEM0MDg4ODZBODAwRUVCMgorOjEwMzA3MDAwODNFQTA2QUM0OTMyRTQ4OTQ2NkU4MzRFMjYwMTgzNEVDQworOjEwMzA4MDAwNDgwOEIwMDZFOEJCREY0OTQ2RjlDMzkwODNDMjA2OEEwOAorOjEwMzA5MDAwODZBODAwMEM0MDg4ODZBODAwRUU4M0VBMDZBQ0I0MEEzNQorOjEwMzBBMDAwRjZFNEVCRDBFOEUwMEJGOEMzOTBBRDQ5NDk4OTQ2NjRGQgorOjEwMzBCMDAwQTkwMTAwNzQxOThCRDg4M0UzRkE3NTBBQTkwNDAwNzQ3NgorOjEwMzBDMDAwMERCOEUyM0ZFQjBCRThFQ0Y0QjhBQTQwRUIwM0I4MzhEQworOjEwMzBEMDAwNDQ4OTQ2NjJGOEMzOEE4NkFGMDBBODAyNzQwQTI0RkRCOAorOjEwMzBFMDAwRTg4REZCMEMwMkU4ODhGQkY4QzNBQzQ5RTg4MUZDRjhFQQorOjEwMzBGMDAwQzM5MEFDNDlFODc5RkNGOEMzOTBFODVDRjU3NTA1RTg0NQorOjEwMzEwMDAwRTZGREY4QzNFOENERkQzNkEwQjQxMzI0MTAzNDEwRTg3MgorOjEwMzExMDAwMjYwMTM2QTFCNDEzQTkwMTAwNzQwNUU4RkVGRUVCMEVFQQorOjEwMzEyMDAwQTkwMjAwNzQwNDMyQzBFQjAyQjAwMUU4RThGRTM2QTE0NworOjEwMzEzMDAwQjQxM0U4QUIwQjM2QTFCNDEzQzFFODA1MjUwMTAwRThEMAorOjEwMzE0MDAwMENGRjM2QTBCNTEzMjQxMEU4MkJGRDMyQzAzNjhBMjZCQQorOjEwMzE1MDAwQjUxM0Y2QzQwNDc0MDlGRUMwRjZDNDA4NzQwMkZFQzBCOAorOjEwMzE2MDAwRThFRkZEMzZBMUI2MTMyNTBGMDBFODAzRkMzNkExQjY0MworOjEwMzE3MDAwMTNDMUU4MDQyNTAzMDBFODg4RkMzNkExQjYxM0MxRThCMgorOjEwMzE4MDAwMDUyNTAyMDBFOENERkMzNkExQjYxM0Y2QzQwMTc1MDQ4RQorOjEwMzE5MDAwMzJDMEVCMDk4MEU0MDJEMEVDQjAwMjJBQzRFODhDRkMxNworOjEwMzFBMDAwMzZGNjA2QjcxMzQwNzQwNUU4OERGRUVCMDNFODk0RkU4RgorOjEwMzFCMDAwMzZGNjA2QjcxMzIwNzQwNUU4NjlGRUVCMDNFODcwRkVFNworOjEwMzFDMDAwRjhDM0Y4QzM4QjQ2MzhBOTA0MDA3NTIzMEQwNDAwODlBMQorOjEwMzFEMDAwNDYzODgzQzIwODhCNDYyRTNCNDYzQzczMTQ4MzRFMzhEOAorOjEwMzFFMDAwMTA4QTg2QTcwMDI0RkU4ODg2QTcwMEVFODNFQTA4RjhFNgorOjEwMzFGMDAwQzM4QTg2QTcwMDBDMDFFQkVFOTA4QjQ2MzhBOTA0MDAyOQorOjEwMzIwMDAwNzQwNjI1RkJGRjg5NDYzOEY4QzNBRDQ5NDlFOEJFRkI4MworOjEwMzIxMDAwODk4NjhFMDBGOEMzQUQ0OTQ5RThCMkZCODk4NjkwMDBFMworOjEwMzIyMDAwRjhDMzgzNEUyNjA0RTg5MkZBRjhDMzkwODM2NjI2RkIxRgorOjEwMzIzMDAwRTg4OEZBRjhDMzkwQUM0OTg0QzA3NTA3ODA4RUEzMDA3MworOjEwMzI0MDAwMDRGOEMzODBBNkEzMDBGQkY4QzNBQzQ5ODNDMjA4M0NDMgorOjEwMzI1MDAwMDI3NjAyMzJDMDNDMDE3NDEyNzcwQjhBODZBNzAwMjRFMgorOjEwMzI2MDAwRUY4ODg2QTcwMEVFODNFQTA4RjhDMzhBODZBNzAwMENEOQorOjEwMzI3MDAwMTBFQkVFOTA1MjgzQzIwNkIwQkZFRTUyODNDMjA0QUM5NAorOjEwMzI4MDAwNDlFRTVBOEE4NkE4MDBFRTVBRjhDMzkwNTI4M0MyMDZDNQorOjEwMzI5MDAwQjBCRkVFNTI4M0MyMDhFQkU2OTBBQzQ5RjhDM0FDNDkyQworOjEwMzJBMDAwRThCNEVFNzMwM0U4RjdFRUY4QzM4QTg2QUYwMDI0N0YzNAorOjEwMzJCMDAwRThCREY5QjhGMDAwRTg2NkYyODE2NjI2RkZGM0U4MjM3RQorOjEwMzJDMDAwRkFFOEQyRjlGOEMzQjg4MDAwRTgzN0YyODA0RTI3MDg1MAorOjEwMzJEMDAwRTgxMUZBRThDMEY5RjhDM0I4ODAwMEU4NDFGMjgxNjY2NQorOjEwMzJFMDAwMjZGRkY3RThGRUY5RThBREY5RjhDMzkwQjgxMDAwRTg1QQorOjEwMzJGMDAwMTFGMjgwNEUyNzA0RThFQkY5RTg5QUY5RjhDM0I4MTAwOAorOjEwMzMwMDAwMDBFOEZGRjE4MTY2MjZGRkZCRThEOEY5RjhDM0FDNDk3NQorOjEwMzMxMDAwRjhDMzgzQzIwNjhBODZBODAwMEM0MDg4ODZBODAwRUVGRgorOjEwMzMyMDAwODNFQTA2RjhDMzkwODNDMjA2OEE4NkE4MDAyNEJGRUIwRQorOjEwMzMzMDAwRUE5MEFDNDk4QUUwODBDMjBBRUM4MEVBMEFBODIwNzRDQworOjEwMzM0MDAwMDU4QUM0RUVGOEMzMDY1MTU3OEI0RTI0RTMzNDQ5ODlFRAorOjEwMzM1MDAwNEUyNEZGNDYxQThFNDYwMjhCN0UyMjhBQzRBQTg5N0U5QworOjEwMzM2MDAwMjI4QjQ2MjYyNEZEODk0NjI2NzUyOThBODZBNTAwQTgzMworOjEwMzM3MDAwMDI3NTIxODBDMjAyMEMwMjg4ODZBNTAwRUU4MEVBMDI1NgorOjEwMzM4MDAwRUIxMkM0N0UwMDNCN0UxRTc2MEE0RjI2ODgyNTg5N0U3RQorOjEwMzM5MDAwMDBGRjQ2MUE1RjU5MDdGOEMzOTBBQ0FEODNFOTAzODU3NworOjEwMzNBMDAwQzA3NDA1M0QwMDIwNzIwNUI4RkZGRkVCMDNDMUUwMDNDOAorOjEwMzNCMDAwM0I4Njk0MDA3NDI2ODk4Njk0MDA4QkQ4NTI4M0MyMDY3QgorOjEwMzNDMDAwOEE4NkE4MDA4QUUwMEM4MEVFODNFQTA2OEFDM0VFODMzMAorOjEwMzNEMDAwQzIwMjhBQzdFRTgzQzIwNDhBQzRFRTVBRjhDM0IwODgxOAorOjEwMzNFMDAwODg4NkJDMDBFODhDRjIzM0RCOEE4NkE1MDBBODAyNzRDQworOjEwMzNGMDAwMDM4MENCMDFBODA1NzQwMzgwQ0IwMkE4MDg3NDAzODA2NgorOjEwMzQwMDAwQ0IwNEY2ODZBNzAwMTA3NDAzODBDQjEwOEE4NkE5MDAyRgorOjEwMzQxMDAwRjZDMzA0NzUwQTgzQzIwQ0VDODNFQTBDQzBFODA0OEE4NAorOjEwMzQyMDAwRTA4QTg2QUYwMEE4ODA3NDA4RjZDNDAxNzUwMzgwQ0JEQgorOjEwMzQzMDAwMjBGNjg2QTcwMDAyNzUwQUY3NDYzODA0MDA3NDAzODA1OAorOjEwMzQ0MDAwQ0I0MDg4OUVCRTAwRkU4NkI0MDBCMDBBRThGM0RCRjhFRAorOjEwMzQ1MDAwQzNGRTg2QjQwMEIwMEFFOEU4REJGOEMzQUM0OTNDMDIxRQorOjEwMzQ2MDAwNzQzNzc3MTA4NEMwNzQwNjgwNEUzODAxRjhDMzgwNjZDNAorOjEwMzQ3MDAwMzhGRUY4QzM4QjQ2MzgyNUZGRjc4OTQ2MzhBOTAwMDQ4MworOjEwMzQ4MDAwNzVFQThBODZBNTAwQTgwMTc1RTIwQzA1ODNDMjAyODg0OAorOjEwMzQ5MDAwODZBNTAwRUU4M0VBMDJGOEMzODE0RTM4MDAwODhBODZDQQorOjEwMzRBMDAwQTUwMEE4MDE3NEM2MjRGQUVCRTJBRDQ5NDlGOEMzOTAxRgorOjEwMzRCMDAwRTgxMUZBRkU4NkI5MDBCMDBFRTg4NkRCRjhDM0IwRkY2QgorOjEwMzRDMDAwRThCRkVDRjhDMzkwODM2NjdBRkJCMDAwRTg3M0RCRjhFMgorOjEwMzREMDAwQzM5MEFDNDlFODUzRDk3MjExMzY4ODFFMUEwMTM2QTA0MAorOjEwMzRFMDAwOEUxMjBBQzM1MkJBMDAwMUVFNUFGOEMzQUM0OTMyRTQ1NAorOjEwMzRGMDAwMzZBMzg2MTIwNTA2MDAzNjhCMUU4ODEyMkJEODM2ODkxNQorOjEwMzUwMDAwMUU4QTEyRjhDMzkwQUQ4QkQ4QUQ4M0U5MDQwM0MzMkI5OAorOjEwMzUxMDAwNDY3Njg5NDY3OEY3NDY3QTAyMDA3NDBBODM2NjdBRkQxMQorOjEwMzUyMDAwQjgwMDAwRTgxQ0RCRjhDMzA2MTYwN0FDNDkyNTBGMDBGRAorOjEwMzUzMDAwNkJDMDA5OERCRUZEMDAwM0Y4QUM0OTI1MEYwMEFBODVCQworOjEwMzU0MDAwQzA3NDA4MkJDODUxOEJDOEYzQTQ1OUU4MjdGMEU4NDQ4RAorOjEwMzU1MDAwMDMwN0Y4QzMzM0MwQUM0OTM2QTNCMjEzMzZBM0IwMTM4NAorOjEwMzU2MDAwRjhDMzgzNjY3QUVGRTgyQzAzRjhDMzkwODM0RTdBMTA5MQorOjEwMzU3MDAwRUJGNEU4OUJGMEY4QzM5MEFEM0MxOTc3MEUzQzE5Nzc1QgorOjEwMzU4MDAwMEE4QkY4ODFFN0ZGMDA4OEE2QzQwMEY4QzM5MDgzNEUzOQorOjEwMzU5MDAwMjYyMEFDNDkzMkU0RDFFMDhCRDhDMUUzMDIwM0MzODlEMQorOjEwMzVBMDAwNDY2RTgzNEU0ODA0QjAwNkU4OTdEQTQ5NDZGOUMzOTA2MAorOjEwMzVCMDAwRkU4NkIzMDBCMDBBRTg4OURBRjhDMzkwMzNDMEFDNDk5QworOjEwMzVDMDAwNkJDMDBBODk4NjhBMDBGOEMzOTBBQzQ5MzJFNDNEMEE5MAorOjEwMzVEMDAwMDA3NzA1QjgwQTAwRUIwODNENUEwMDcyMDNCODVBMDA5QworOjEwMzVFMDAwNTFGN0Q4MDU2NDAwOEJDODhCNDY0NEY3RTFCOTY0MDBGNQorOjEwMzVGMDAwRjdGMTg5NDY0NjU5RjhDM0FDNDlFODg1RUJGOEMzOTAyMgorOjEwMzYwMDAwQUM0OTg0QzA3NTA3ODE2NjM4RkZGREY4QzM4MTRFMzgyOAorOjEwMzYxMDAwMDAwMkY3NDYzODQwMDA3NTA4OEE4NkE5MDA4ODg2QUEwNQorOjEwMzYyMDAwMDBGOEMzOTA1MTU2RTg3RjBDNUU1OUY4QzM5MEZFODZBRgorOjEwMzYzMDAwQjYwMEIwMEFFODBCREFGOEMzOTBGRTg2QjcwMEIwMEEwRAorOjEwMzY0MDAwRThGRkQ5RjhDMzkwRkU4NkI4MDBCMDBBRThGM0Q5RjhDRAorOjEwMzY1MDAwQzM5MDAwOTA1MTU1QUMyRUEyNTIzNjMzQzlBRDhCRjlCMAorOjEwMzY2MDAwQzFFNzA1QTkwMTAwNzQyMzJFOEJBRDQ0MDA4MzdFMDhCOQorOjEwMzY3MDAwMDA3NDE4MkU4MDNFNTIzNjAxNzQwOTYwQjAwNEU4QkIxNQorOjEwMzY4MDAwMEM2MUVCMDc2MEIwRkJFOEVDMEM2MTQ3NDdEMUU4NzVEMworOjEwMzY5MDAwRDI0MTgzRjkwNDcyQzY1RDU5ODNFOTA1Rjc0NjM4NDA4MworOjEwMzZBMDAwMDA3NDA1RTg4N0VBRjhDM0U4OERFQUY4QzM5MDM2QzZFNworOjEwMzZCMDAwMDZDODEzMDFGOEMzMzNDMEFDNDkzNkEzODAxMkFDNDkyNQorOjEwMzZDMDAwMzYyQjA2ODgxMkY3RDgzNkEzODIxMkY4QzM5MERFMjY2RQorOjEwMzZEMDAwREUyNkVDMjZGMjI2RjgyNkZFMjYwNDI3MEUyNzE2MjdERAorOjEwMzZFMDAwMUUyNzI2MjcyRTI3MzQyN0JFMzRDNjM0RDIzNDNBMjc0NQorOjEwMzZGMDAwNzgyNzgwMjc5NDI3QTAyN0I0MjdDMDI3RDQyN0UwMjczRQorOjEwMzcwMDAwRjQyNzAwMjgxMDI4RUMzNERFMjYxRTI4MjYyODJDMjgzMgorOjEwMzcxMDAwMzIyODM4Mjg0RTI4OEEyODA2MzUyODM1OTgyOEJFMjg4OQorOjEwMzcyMDAwRDIyOERFMjhFNjI4NTQzNTYyMzU2QzM1RUUyOEMwMjlDQgorOjEwMzczMDAwQzgyOUNFMjlFMDI5NzIzNTc4MzVGMDI5RkMyOThFMzU0MworOjEwMzc0MDAwMDgyQTEyMkExQzJBQjAzNTM2MkFCQzM1NUEyQTYyMkE3RgorOjEwMzc1MDAwNjgyQUNBMzU3QzJBRjgzNTg4MkFBNjJBQjgyQUNDMkFBQgorOjEwMzc2MDAwREUyQUYyMkEwMDM2MEEyQjI0MkIyNDM2MzgyQjRDMkI0NworOjEwMzc3MDAwODQyQjJFMzYzQTM2NDYzNjU0MzZFODJCQUUzNjQwMkM1RAorOjEwMzc4MDAwNjIyQ0I2MzY3MDI4REUyNkRFMjZENDJFRTgyRUYwMkVFOQorOjEwMzc5MDAwRjgyRTAwMkYwQTJGMTIyRjFBMkYyMjJGMkEyRjQyMkZGNgorOjEwMzdBMDAwQkUzNEM2MzREMjM0NTAyRjhDMkY5NDJGQTgyRkI0MkY3MAorOjEwMzdCMDAwQzgyRkQ0MkZFODJGRjQyRjA4MzAxNDMwMUMzMEVDMzRFRAorOjEwMzdDMDAwREUyNjI0MzAzMDMwMzgzMDQ0MzA0QzMwNjIzMEE0MzA4MworOjEwMzdEMDAwMDYzNTI4MzVBQTMwQ0UzMEQ2MzBFQTMwRjIzMDU0MzVBRQorOjEwMzdFMDAwNjIzNTZDMzVGQTMwQzIzMUMyMzFDNDMxRkEzMTcyMzVDQQorOjEwMzdGMDAwNzgzNTBBMzIxNjMyOEUzNTIyMzIyQzMyMzYzMkIwMzVENgorOjEwMzgwMDAwNEEzMkJDMzU3NDMyOEMzMjlBMzJDQTM1OUUzMkY4MzUxRgorOjEwMzgxMDAwQUEzMkM2MzJEODMyRUMzMkZFMzIwRTMzMDAzNjEyMzNDMAorOjEwMzgyMDAwMjYzMzI0MzYzMjMzOUEzM0RFMzMyRTM2M0EzNjQ2MzY1MgorOjEwMzgzMDAwNTQzNjVDMzRBRTM2QUEzNEIwMzRCNjM2OEMzMEUzMjgxNQorOjEwMzg0MDAwRjc0NjM4NDAwMDc1MzJFOEUzRTgzM0MwQUM0OTNENUJFOQorOjEwMzg1MDAwMDA3NzE5OEJEOEQxRTMyRUZGOTdDRTM2NzIwQjg1QzkyRQorOjEwMzg2MDAwNzVFODhCNDY0OEU4MUEwQ0MzNEU0MUMzNkEwMDFGQzY3MAorOjEwMzg3MDAwMDY5MzEyMEM5QzBFRTg2M0RBRThCQ0U4MzNDMEFDNDk0RQorOjEwMzg4MDAwM0Q1QjAwNzdFNzhCRDhEMUUzMkVGRjk3ODYzNzcyRDk1RgorOjEwMzg5MDAwODVDOTc1RThDM0Y3NDY3QTEwMDA3NTBGODNCRTg0MDBBQQorOjEwMzhBMDAwMDA3NDA4Qjg0ODNBODk4NjgwMDBDMzgxQkU4MDAwRUM2NQorOjEwMzhCMDAwM0M3NEY3ODNCRTg4MDAwMDc1MDVCOEVDM0NFQkU3Rjc3NQorOjEwMzhDMDAwNDY3QTA4MDA3NTQwMUU2MDhCOEU4ODAwM0I0RTc0NzdFOAorOjEwMzhEMDAwMzMzQjRFNzg3NzJFQzQ3RTEwOEJERjI2MDMzRDQ3NDc1RgorOjEwMzhFMDAwMzNDMDhFRDg4REI2RjQwMDhCQzFGNzQ2N0EwMTAwNzVDRgorOjEwMzhGMDAwMURGM0E0MjYwMTA3Mjk0Njc4MDE0Njc2Mjk0Njc0QjBBRgorOjEwMzkwMDAwMENFODNFRDc2MTFGQzc4Njg4MDAwMDAwRUJBQ0UzRTNGQworOjEwMzkxMDAwNTA5MEFDMjQ3RkFBRTJGQTU4RUJEODkwOEI4RTg4MDBBNgorOjEwMzkyMDAwRTM0NjhCOUU4QTAwODVEQjc0M0VCQTUwRkZFRDJCODYwMgorOjEwMzkzMDAwODIwMDNCQzM3MjM3OERCNkY0MDBDNDdFMTA4QkRGMjY0NQorOjEwMzk0MDAwMDMzRDQ3NDc4QkMxMTYxRkY3NDY3QTAxMDA3NTI0RjNFNAorOjEwMzk1MDAwQTQyNjAxMDcyOTQ2NzgwMTQ2NzYyOTQ2NzRDNzg2ODgzOQorOjEwMzk2MDAwMDAwMDAwQjAwQ0U4REFENjgzNjY3QUY3QzNCMDAwRTg0RQorOjEwMzk3MDAwRDBENkMzRTNEQzUwQUMyNDdGQUFFMkZBNThFQkQyOTA1NQorOjEwMzk4MDAwMUU2MDMzQzA4RUQ4OERCNkZEMDA4Qjg2ODgwMDhCOTY2NgorOjEwMzk5MDAwODQwMDNBMDQ3NTEwOEJERTQ2OEJDODhEQkVGNDAwRjNBQworOjEwMzlBMDAwQTY3NDY2OEJGMzkwODNDNjA5NEE3NUU2OERCNkZEMDA1MgorOjEwMzlCMDAwOEI5Njg0MDAzQTA0NzMxMDhCREU0NjhCQzg4REJFRjQ2MAorOjEwMzlDMDAwMDBGM0E2NzQ3NjhCRjM5MDgzQzYwOTRBNzVFNjhEQjYyQworOjEwMzlEMDAwRjQwMEFDRjc0NjdBMDEwMDc0MDIyNDdGMUVDNTVFMTAyNQorOjEwMzlFMDAwOEIzNzg4NDAwMjQ2ODkzN0ZGNEU3OEZGNDY3NkZGNEU3OAorOjEwMzlGMDAwNzQxRjhCOEU4ODAwNDk4OThFODgwMEUzNDM4REI2RjQ0RQorOjEwM0EwMDAwMDA4QkZFNDZGM0E0RTk3REZGQzU3NjEwOEIxQzg1REI5OQorOjEwM0ExMDAwNzQwODAzRjM4M0M2MDM4M0U2RkU4Qjg2ODQwMDJCQzJGRgorOjEwM0EyMDAwQjQ4MDg5MDQ0NjQ2QzcwNDAwMDA4OTc2MTA4MzRFN0EyNAorOjEwM0EzMDAwMDRDNzg2ODgwMDAwMDA2MTFGRjlDMzMzQzA2MTFGQzMzQgorOjEwM0E0MDAwQjA4MDg0QzA2MTFGQzM5MDhCNEU3ODJCOEU4ODAwNzYyNworOjEwM0E1MDAwMjc4OUI2OEMwMDhCNUU3NDNCQ0I3MjAyOEJDQjNCQzg0NAorOjEwM0E2MDAwNzIwMjhCQzg4QkMxRTM0NDMzRDI4RUMyOEJEMTgzQkUyQQorOjEwM0E3MDAwODgwMDAwNzQwNkU5OEUwMDMzQzBDMzhCNUUxMDAzMUZGQworOjEwM0E4MDAwNDM0MzUyRjc0NjdBMDEwMDc1MkFBQzhEQkVFNDAwOEJBMQorOjEwM0E5MDAwOEU4NjAwRjJBRTc0MzQ4ODA3NDM0QTc1RUQ1ODhCNUUwQgorOjEwM0FBMDAwMTAwMTA3Mjk0Njc4MDE0Njc2Mjk0Njc0OEJDNjJCODY3NQorOjEwM0FCMDAwOEMwMEMzOTBBQzhEQkVFNDAwOEI4RTg2MDBGMkFFNzQ5OQorOjEwM0FDMDAwMEEyNDdGODgwNzQzNEE3NUVCRUJEMjg4ODZGNDAwQzc0NworOjEwM0FEMDAwODY4ODAwMDEwMDU4MkJDMjc0MEU4QjVFMTAwMTA3MjlFNgorOjEwM0FFMDAwNDY3ODAxNDY3NjI5NDY3NDQwRTg5NEZFNzJCRTRBNzVDRgorOjEwM0FGMDAwMTU4M0JFOEEwMDAwNzRCNEJBNTBGRkVEODk4NjgyMDAzNworOjEwM0IwMDAwODM0RTdBMDhFQkE2OERCRUY0MDAwM0JFODgwMEE0RkZBNgorOjEwM0IxMDAwODY4ODAwRTg2QUZFNzI5NDc5MDY0QTc0OEZFOTVCRkYzMgorOjEwM0IyMDAwNEE3NENFRUJFMTkwNTBFODExQ0M4QjQ2NzQzOTQ2NzI2MgorOjEwM0IzMDAwNzQyNzFFNTY1MTMzQzlDNTc2MENBRDc0MTA3ODA5MDMyRAorOjEwM0I0MDAwQzgwNTAxMDAyNEZFMDNGMDNCNzYxMDc2RUQyOTRFNzY4MQorOjEwM0I1MDAwMDE0RTc4RTgzN0NDNTk1RTFGNThDMzkwQzQ3RTEwMjZCQQorOjEwM0I2MDAwOEIxRDgzQzMwMzI2ODkxRDRCMDNGQkFCOTFBQUI4MDNBRQorOjEwM0I3MDAwMDAyOTQ2NzgwMTQ2NzYyOTQ2NzRDMzkwQzQ3RTEwMjZGMworOjEwM0I4MDAwOEIxRDQzMjY4OTFENDMwM0ZCQUFGRjRFNzhGRjQ2NzYxMworOjEwM0I5MDAwRkY0RTc0QzNFOEU1RkZDMzgwODE4NDg1ODI4Mzg2ODdGNgorOjEwM0JBMDAwNTA1MzhBREM4M0UzMEVEMUVCMkU4QTg3OTgzQjA4ODYzQworOjEwM0JCMDAwQjAwMEZFODZCMTAwQjAwQUU4ODdENDVCNThDMzUwOEFEMworOjEwM0JDMDAwQzhCOEZGMDBFODk1RkY1OEMzOTA4QTg2QkIwMEU4QUJGMQorOjEwM0JEMDAwRkZDM0U4Q0JGRkU4RjJGRkMzOTBFOEMzRkZFOEI0RkYwMAorOjEwM0JFMDAwQzM5MDMzQzBFODk1RkZDM0I4RkYwMDMzQzlFODZDRkY0QQorOjEwM0JGMDAwQzM5MEI4RkYwMUIxMTBFODYyRkZDMzkwQzNGQzNCRTI4MQorOjEwM0MwMDAwM0JGMjNCRjIzQkZDM0JFMjNCRTgzQkU4M0JGQzNCRTI2QworOjEwM0MxMDAwM0JFODNCRTgzQkZDM0JFMjNCRTIzQkUyM0IwMDEwMDA4NQorOjEwM0MyMDAwMDAwMDEwMDAwMDAwMTAwMDAwMDAxMDAwMDAwMDEwMDA1NAorOjEwM0MzMDAwMDAwMDEwMDAwMDAwMTAwMDAwMDAxMDAwMDAwMDA4MDA0QworOjEwM0M0MDAwMDAwMDA4MDAwMDAwMDgwMDAwMDAwODAwMDA1MTUzOEIyRAorOjEwM0M1MDAwNEUzODgxRTFGRkVFQTgwNDc0MDQ4MUM5MDAwMThBRTBCNgorOjEwM0M2MDAwODBFNDAzMjQxOEQwRTQwQUM0MzNEQjhBRDgyRThCODc3RgorOjEwM0M3MDAwRkQzQjg5NDY3QzJFMEI4RjFEM0M4OTRFMzhEMUVCMkVBNworOjEwM0M4MDAwOEFBNzNEM0M1QjU5QzNBQzQ5M0MwMTcyMUQ3NDIwM0M4MgorOjEwM0M5MDAwMDM3MjIzNzQyODNDMDg3MjJCNzQzMDNDMjA3MjM3NzRGMgorOjEwM0NBMDAwM0FCQkRBM0IzMkU0ODk1RTdFQzNCQkEwM0JFQkY1QkI5QgorOjEwM0NCMDAwOTQzQkI0MDFFQkYwQkJGQzNCQjQwMkVCRTlCQkUyM0I1MQorOjEwM0NDMDAwQjQwM0VCRTJCQkJFM0JCNDA0RUJEQkJCQ0EzQkFDNDk4OQorOjEwM0NEMDAwODg4NkJCMDBFQkNFQkJEMjNCRUJGM0JCRkMzQkVCQzQxQgorOjEwM0NFMDAwQTkwNDAwNzVEMUE5MDgwMDc1REFFQkQxOEI1RTc0OEIzRAorOjEwM0NGMDAwNEU3ODNCQ0I3MjAyOEJDQjNCQzg3MjAyOEJDODhCQzExOAorOjEwM0QwMDAwRTMyQ0M0N0UxMDhCREYyNjAzM0Q0NzQ3Rjc0NjdBMDEzQworOjEwM0QxMDAwMDA3NTFDRjdDNzAxMDA3NDAyNDlBNEQxRTlGM0E1NzMyQgorOjEwM0QyMDAwMDFBNDI2MDEwNzI5NDY3ODAxNDY3NjI5NDY3NEMzNTAyNgorOjEwM0QzMDAwNTNCQjdGN0ZGN0M3MDEwMDc0MDU0OUFDMjJDM0FBRDFFQQorOjEwM0Q0MDAwRTlFMzFEOUNBRDIzQzNBQjQ5NzQxNEFEMjNDM0FCNDk1OAorOjEwM0Q1MDAwNzQwREFEMjNDM0FCNDk3NDA2QUQyM0MzQUJFMkU1OUQzRgorOjEwM0Q2MDAwNzMwNEFDMjJDM0FCNUI1OEVCQjhFOENFQzk4QjVFMzhBQQorOjEwM0Q3MDAwRjdDMzEwMDQ3NTAxQzNGN0MzNDAwMDc0MDVFOEI4RTM0NgorOjEwM0Q4MDAwRUIwM0U4QThFMzgxNjYzOEVGRkJGNkMzMTA3NDNDRjY1QQorOjEwM0Q5MDAwQzMwMjc0MDZFNEQ4MEMwMUU2RDhGNkMzMDQ3NDExODM5OAorOjEwM0RBMDAwQzIwODhBODZBNzAwMEMwMUVFODg4NkE3MDA4M0VBMDg2RAorOjEwM0RCMDAwRjZDMzA4NzQwRkU4OEJFMzcyMEE4QTg2QzAwMEU2MzhGRgorOjEwM0RDMDAwQjAyM0U2MEFGN0MzMDAwNDc1MDFDM0Y3QzMwMDA4NzUwMgorOjEwM0REMDAwRjk4QTg2QTUwMEY2QzM0MDc1MERBODEwNzVFQzBDMTA4NQorOjEwM0RFMDAwODg4NkE1MDBFNjBDQzNBODAxNzVERjgzQzIwMjBDMDUxNgorOjEwM0RGMDAwRUU4ODg2QTUwMEMzQjAwMEU4NDdEMkVCMEZCMDAyRTgxQQorOjEwM0UwMDAwOTAwRUVCMDg4MzY2MzhERjgzNEU3QTAyMzNDMDhFRDg3QgorOjEwM0UxMDAwRkFBMDkyMTI0MEEyOTIxMjNDMDU3MjFFQzYwNjkyMTI5RAorOjEwM0UyMDAwMDBGQkIwMDFFODZCMEVGQUExMjYwMTIzMDYyQTAxQThDNworOjEwM0UzMDAwMDE3NTA3RThFMjA3RTg2MTA5OTBCMDAwRTgzN0QyRkJCNgorOjEwM0U0MDAwODVFRDc0QjlGQUY3NDY3QTQ2MDA3NUMwOEI0Njc4M0QyMQorOjEwM0U1MDAwMEEwMDcyQjA4QjRFNzQ4M0Y5NTA3MjlBODM2NjM4REYxMQorOjEwM0U2MDAwQzU3NjE0OEI0NjNBODVDMDc1NThBRDg1QzA3NTBGRTg4OAorOjEwM0U3MDAwRjhGRUY3NDY3QTA4MDA3NDkzRThBMEZBRUI4RTNCNzZEQQorOjEwM0U4MDAwMDQ3NjIxQjkwMjAwMzk0RTJFNzcwNUM3NDYyRTAwMDA3MAorOjEwM0U5MDAwNTY4Qjc2MkM4OTc2MDRDNzA0MDAwMDQ2NDY4OTc2MkMxQQorOjEwM0VBMDAwMjk0RTJFNUU4NUMwNzkxN0Y2QzQxMDc0MDVGRjU2N0MyNgorOjEwM0VCMDAwRUIwM0ZGNTY3RTg5NzYxNEIwMENFODg1RDFFQjg2ODkzQQorOjEwM0VDMDAwNDYzQUZGOTY4MDAwMjk0NjNBODk3NjE0QjAwQ0U4NzE4QworOjEwM0VEMDAwRDFFOTcxRkYwMDAwMDAwMDAwMDAwMDAwMDgwNDEwMDI5QQorOjEwM0VFMDAwMDEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwM0VGMDAwMDAwMDAwMDA4MDgwODA4MDgwODA4MDgwODA4MDgwODBDMgorOjEwM0YwMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODBCMQorOjEwM0YxMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODBBMQorOjEwM0YyMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA5MQorOjEwM0YzMDAwODA4MDgwODA4MEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMQorOjEwM0Y0MDAwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwODBCMQorOjEwM0Y1MDAwODA4MDgwMDA4MDgwODA4MDgwODA4MDgwODA4MDgwODBFMQorOjEwM0Y2MDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA1MQorOjEwM0Y3MDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA0MQorOjEwM0Y4MDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODAzMQorOjEwM0Y5MDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODAyMQorOjEwM0ZBMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODAxMQorOjEwM0ZCMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODAwMQorOjEwM0ZDMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODBGMQorOjEwM0ZEMDAwODA4MDgwODA0RTQxNzg0MUQwNDFGNDQxMDY0MjE4NDJCMQorOjEwM0ZFMDAwQzM5MDhFNDYwMjhCN0UyMjg5N0U2QzgwNjYyN0ZEOEI3NQorOjEwM0ZGMDAwNTYyNDgzRkEwNDcyRTk4M0VBMDI4QkQ5M0JDQTc2MDIxQgorOjEwNDAwMDAwOEJDQUIwMEE1NzUxOEJGRUYyQUU4QkMxNTk1Rjc1MUUzOQorOjEwNDAxMDAwNTA0MDJCQzg3NDA2MkJEMTJCRDlGM0E0NTk0QjRBNEFENAorOjEwNDAyMDAwQjAwREFBQTQzQkNBNzYwMjhCQ0FFMzEzRUJENDJCRDlGQQorOjEwNDAzMDAwRjdDNjAxMDA3NDAyQTQ0OUQxRTlGM0E1NzMwMUE0ODk2QworOjEwNDA0MDAwN0UyMjJCN0U2QzI5N0UyNDAxN0UxQThCQ0I4MDdFMjZERAorOjEwNDA1MDAwMDI3NDA1ODA2NjI2RkRDMzYwQjBGREU4MTgwMzYxQzNFNQorOjEwNDA2MDAwQzM5MEU4N0MwMjcyRjk5MDgzNEUyNjIwOEI0NjZBODlDMQorOjEwNDA3MDAwNDY2RThCNDY0ODBEMDQwMDI1QkZGRjg5NDY0OEIwMDZCMgorOjEwNDA4MDAwRThCRkNGQzM4OTdFMjIyQjdFNkMwMTdFMUEyOTdFMjQ1NQorOjEwNDA5MDAwODA3RTI2MDI3NDA1ODM2NjI2RkRDMzYwQjBGREU4RDVFOAorOjEwNDBBMDAwMDI2MUMzOTA4QUJFQzIwMEVCMjRGNzQ2NDg0MDAwNzUwNworOjEwNDBCMDAwQjE4RTQ2MDI4QjdFMjI4OTdFNkM4QjU2MjQ4M0VBMEE1RgorOjEwNDBDMDAwNzg5RTAzRDc4MDY2MjdGRDMzQzA4QUJFQzIwMEUzQjQ2MgorOjEwNDBEMDAwM0JGQTc3QjBBQzQ5OTMyRThBODdENDNFOTMyMkRGNzVBMgorOjEwNDBFMDAwMTdBQUUzQTAzQkZBNzc5Q0FDNDk5MzJFOEE4N0Q0M0U2QgorOjEwNDBGMDAwOTMyMkRGNzUwM0FBRUJENkY2QzM3Rjc1MDVGRjQ2NjZFQworOjEwNDEwMDAwRUJERkY2QzM0MDc1MEM4QkQ4ODNFQjA4RDFFMzJFRkZCMQorOjEwNDExMDAwQTdENDNGRkY0NjY2MkMyMEVCQzc4NUMwNzQyQzg5NDY4OAorOjEwNDEyMDAwNkE4MzRFNDg0MDg5N0UyMjJCN0U2QzAxN0UxQTI5N0U0RQorOjEwNDEzMDAwMjQ4MDdFMjYwMjc0MDg4MzY2MjZGREU4QTMwMUMzNjBGRQorOjEwNDE0MDAwQjBGREU4MzEwMjYxRTg5ODAxQzNFOTU3RkY5MDhCNUU0QQorOjEwNDE1MDAwNjY0Qjc4MDM4OTVFNjZBQThCNUU2NEY3QzMwMDIwNzVBMAorOjEwNDE2MDAwMDNFOTQwRkZGN0MzNDAwMDc0MDg4QTg2QzEwMEFBRTk0QQorOjEwNDE3MDAwMzJGRkI4MzIwMEVCQTM5MDhCNUU2Njg5NUU2ODgzQzMyMgorOjEwNDE4MDAwMDg4MEUzRjg4OTVFNjY4QjVFNjQ4MUUzMDAxODgxRkIzQQorOjEwNDE5MDAwMDAxODc0MkRBQTg1REI3NDI1Rjc0NjY0NDAwMDc1MTg1NQorOjEwNDFBMDAwODFGQjAwMTA3NDBDOEI0NjY2MkI0NjY4QzFFMDA0RTk2NQorOjEwNDFCMDAwNjhGRkI4NjQwMEU5NjJGRjhBODZDMTAwQUFBQUU5RTM0MQorOjEwNDFDMDAwRkU1MThCNEU2NjJCNEU2OEIwMjBGM0FBNTlFOUQ0RkVGRgorOjEwNDFEMDAwOEI1RTY2ODk1RTY4OEI1RTY0RjdDMzI0MDA3NDEwQzdDQgorOjEwNDFFMDAwNDY2NjAwMDBGN0MzMDQwMDc0MDVCMDBEQUFCMDBBQUEyMQorOjEwNDFGMDAwRUI0ODkwOTBBQUY3NDY2NDAwNDA3NDA2QjhEMDA3RTlFRgorOjEwNDIwMDAwMThGRkU5OUZGRTkwQUFGNzQ2NjQwMDgwNzQwNkI4RDBCNAorOjEwNDIxMDAwMDdFOTA2RkZFOThERkU5MDhCNUU2Njg5NUU2ODg1REJBNworOjEwNDIyMDAwNzUwQzhCNUU2NEY3QzMxMDAwNzQwNkU5NzZGRThCNUUzNgorOjEwNDIzMDAwNjRGN0MzMDgwMDc0MjdCMDBBQUFGN0MzMjAwMDc1MUZFQgorOjEwNDI0MDAwRjdDMzAwMDE3NTAzRTk1QkZFRjdDMzQwMDA3NTA2QjhDQworOjEwNDI1MDAwNjQwMEU5QzVGRThBODZDMTAwQUFBQUU5NDZGRUFBQzc4QgorOjEwNDI2MDAwNDY2NjAwMDBGN0MzMDAwNjc0RjFGN0MzNDAwMDc0MTlGNgorOjEwNDI3MDAwOEE4NkMxMDA4MUUzMDAwNjgxRkIwMDA0NzIwNjc2MDI5MworOjEwNDI4MDAwQUFBQUFBQUFBQUFBRTkxQkZFODFFMzAwMDY4MUZCMDA0QQorOjEwNDI5MDAwMDQ3MjBFNzYwNkI4OTYwMEU5N0ZGRUI4NjQwMEU5NzlFQworOjEwNDJBMDAwRkU4QjQ2NjhFOTczRkU5MDM2OEIwRURBMTI4M0Y5MzI4NAorOjEwNDJCMDAwNzMxRDFFMDYzM0MwOEVEODhFQzA4RDc2NENCRkRDMTJBNworOjEwNDJDMDAwMDNGOUE1QTVBNTgzQzEwNjg5MEVEQTEyMDcxRkMzQjA5RAorOjEwNDJEMDAwMDhFODZFQ0RDMzkwODM2NjQ4RkVFODkzQzRFOEM4RkY0MworOjEwNDJFMDAwQzNGNjQ2MjcwMjc1MEY5Q0ZBODM3RTFBMDA3NDA5ODA3NAorOjEwNDJGMDAwNEUyNzAxOURGOUMzRjhDMzUwNTJGNzQ2Mzg0MDAwNzQ2OQorOjEwNDMwMDAwMURFODM0REU4M0MyMEFFQ0E4NDA3NTI3ODNFQTA4OEFEOAorOjEwNDMxMDAwODZBNTAwMEMwMjg4ODZBNTAwRUU1QTU4RUJEMUU4MEM2MQorOjEwNDMyMDAwREU4QTg2QTUwMDI0RkIwQzAyODg4NkE1MDBFNjBDNUFDRQorOjEwNDMzMDAwNThFQkJDODA0RTI3MDI1QTU4OURGOEMzMDg0NjI2OUM2RAorOjEwNDM0MDAwRkE4QThFQTUwMEY3NDYzODQwMDA3NTE0RjZDMTA2NzQ0NworOjEwNDM1MDAwMjNFOEQ5REQ4QUMxMjRGOTg4ODZBNTAwRTYwQzlEQzMyRgorOjEwNDM2MDAwRjZDMTAyNzQwRkU4RDBERDgzQzIwMjhBQzEyNEZEODg0MQorOjEwNDM3MDAwODZBNTAwRUU5REMzOEI1RTI2MjJDMzg4NDYyNjc0MDE2NworOjEwNDM4MDAwQzM4MDY2MjdGRDlDRkE4QThFQTUwMEY3NDYzODQwMDA1OAorOjEwNDM5MDAwNzUxNkY2QzEwNDc1MEZFODkzREQ4QUMxMjRGRDBDMDQ3RgorOjEwNDNBMDAwODg4NkE1MDBFNjBDOURDM0Y2QzEwMjc1RjlFODg4REQ5NAorOjEwNDNCMDAwODNDMjBBRUNBODIwNzUwRTgzRUEwODhBQzEwQzAyODgyMQorOjEwNDNDMDAwODZBNTAwRUU5REMzODNFQTBBMzNDOThBNEUxQzhCNDYzQworOjEwNDNEMDAwMUEzQkM4NzMxQjAxNEUyQTJCQzE4OTQ2MUExRUM1NzY4QgorOjEwNDNFMDAwMDBGMzZFMUY4OTc2MDA4M0MyMDI4QTg2QTUwMEVCQ0Q5QQorOjEwNDNGMDAwODVDMDc0MTIwMTQ2MkE4QkM4MUVDNTc2MDBGMzZFMUY1NQorOjEwNDQwMDAwODk3NjAwODk0RTFBRjZDNzAxNzUyMzgwQ0IwMjg5NUUzMgorOjEwNDQxMDAwMjZFODA4QzM4M0MyMDI4QTg2QTUwMDI0RkRFRTg4ODZBQQorOjEwNDQyMDAwQTUwMEY2QzcxMDc1MDVCMDAyRTgxNkNDOURDMzgzQzI3RgorOjEwNDQzMDAwMDI4QTg2QTUwMEVCODY5MDhCRDE4QjQ2MjQzQkM4NzZGQQorOjEwNDQ0MDAwMDI4QkM4MkJEMTJCQzE4QkQ5RTMyMjgwNjYyN0ZEOEUyRQorOjEwNDQ1MDAwNDYwMjhCN0UyMkY3QzYwMTAwNzQwMkE0NDlEMUU5RjMxQgorOjEwNDQ2MDAwQTU3MzAxQTQ4OTdFMjI4OTQ2MjQwMTVFMUE4QkNBODAyNQorOjEwNDQ3MDAwN0UyNjAyNzQwNTgwNjYyNkZEQzM2MEIwRkRFOEY2RkU2OAorOjEwNDQ4MDAwNjFDMzUwRTQwQTg0QzA3NTBBODY4NkExMDA4NEMwNzRBMgorOjEwNDQ5MDAwMEFFNjBBNTgwQzIwODk0NjQ4RjlDMzU4MjRERjg5NDZBMQorOjEwNDRBMDAwNDhGOEMzOTBGQkIwMDJFOEU4MDdGQUU4MkUwMUZCQjAzOQorOjEwNDRCMDAwMDFFOERFMDdGQUIwMDJFOEJDQ0JGQjg1RUQ3NEU1RkE1MworOjEwNDRDMDAwOEU1RTBBRkI5MEZBOEI0NjQ4OEI3NjQwQTg4Qzc1REU5MAorOjEwNDREMDAwQTgyMDc0MUE1MEU4NTVEQzU4RThBNkZGNzMxMEIwMDIwMworOjEwNDRFMDAwRTg1RkNCRUJDOTkwMjVGRjAwOEJDOEVCMzY5MEE4MDFBNQorOjEwNDRGMDAwNzUyMjQ2ODNFNkZFM0I3NjA4NzQ3OUFEOEFGQ0IzRjBGQworOjEwNDUwMDAwMjJGQjNBRkI3NEUwM0FCRUEwMDA3NDJFRThEMkZENzNBMQorOjEwNDUxMDAwNzdFQjlCOTA4QUUwMjRGQzg4NDY0ODhCNEU0QUY2QzQ5MQorOjEwNDUyMDAwMDI3NDFERThCQkZENzI4NkU4MTNGMzg5NzY0MEUzOTNCRAorOjEwNDUzMDAwODM0RTQ4MDM4OTRFNEFFOTc0RkYyNUZGMEY4QkM4OTBDQworOjEwNDU0MDAwOEI4Njk4MDA4NUMwNzQxQTUxOEE4RUEwMDBDMEU5MDQzOQorOjEwNDU1MDAwQkEwMTAwRDNFMjU5MjNDMjc0MDgwM0YxODk3NjQwRTkxNQorOjEwNDU2MDAwNjFGRkZGNTY2MkUzRjU4MzRFNDgwMTg5NEU0QTg5NzYyMgorOjEwNDU3MDAwNDBFOTNBRkY4MTRFMjYwMDEwOEI0NjUwM0I0NjQ2Nzc3NQorOjEwNDU4MDAwMDNFODUyRkRFOTI3RkY5MDg4QkVBMDAwRUJBQzBBMDZDNQorOjEwNDU5MDAwOTAxMjhBRTBCQTA2MDFCMDA0RUVFQzg0QzA3NTEyQjA0NQorOjEwNDVBMDAwMDRFRThBQzRFRTMyRTRBODgwNzQwNkM3MDY4NDEyMDBDMgorOjEwNDVCMDAwMDA4ODI2OTAxMkMzMEEwNjkwMTI4QUUwQkEwNjAxRUMxRgorOjEwNDVDMDAwQTgwMTc1RURCQTA4MDE4QUM0RUUzMkU0QTg4MDc0RTE0RQorOjEwNDVEMDAwQzcwNjg0MTIwMDAwODgyNjkwMTJDMzkwMzZGNzA2MjQ3RQorOjEwNDVFMDAwMDEwMTAwNzUzMDM2OEIwRURBMTI4MEY5MzY3MzI2MzNFRQorOjEwNDVGMDAwQzA4RUMwOEVEOEJGREMxMjAzRjlCMDA4RTg3N0NBODUzOAorOjEwNDYwMDAwRUQ3NDBFOEQ3NjRDQTVBNUE1ODBDMTA2ODBGOTM2NzI5NQorOjEwNDYxMDAwRTk4OTBFREExMkMzQzM5MEY3MDYyNjAxMDEwMDc1RjY4OAorOjEwNDYyMDAwOEIwRTIwMTM4NUM5NzVFRTMzQzA4RUMwOEVEOEJGMjQ4MworOjEwNDYzMDAwMTNCOTM2MDBCMDBBRTgzRENBODVFRDc1MDZFOTEyMDFFNgorOjEwNDY0MDAwRTkwQTAxMzNEQjhBNDY0QzhBQTZCMzAwRkVDQzc4MEUxOQorOjEwNDY1MDAwODhBNkIzMDAwQURDQjQwQUFCODNFOTAyNzZFMjhBQTYzNAorOjEwNDY2MDAwQjIwMEZFQ0M3ODBFODhBNkIyMDAwQURDQjQwOEFCODM5OAorOjEwNDY3MDAwRTkwMjc2Q0M4QUE2QjEwMEZFQ0M3ODE4OEFCRUIwMDBEQQorOjEwNDY4MDAwNzUwNDg4QTZCMDAwODhBNkIxMDAwQURDOEFFN0FCODM2RgorOjEwNDY5MDAwRTkwMjc2QUM4QUE2QjQwMEZFQ0M3ODFGODhBNkI0MDBFNgorOjEwNDZBMDAwMEFEQ0I0MEJBQjhBODZCQzAwOEFBNkJEMDBBQjhCODY0NQorOjEwNDZCMDAwQkUwMEFCODNFOTA2NzY4ODhBNDY0QzhBQTZCNjAwRkUyMQorOjEwNDZDMDAwQ0M3ODE5ODhBNkI2MDAwQURDQjQwQ0FCRThEQkNCQUIxRgorOjEwNDZEMDAwOEI0NjJBQUI4M0U5MDY3Njc0OEE0NjRDOEFBNkI3MDBENQorOjEwNDZFMDAwRkVDQzc4MTk4OEE2QjcwMDBBRENCNDBEQUJFOEJBQ0JDQgorOjEwNDZGMDAwQUI4QjQ2MzRBQjgzRTkwNjc2NTM4QTQ2NEM4QUE2QjgyMAorOjEwNDcwMDAwMDBGRUNDNzgxOTg4QTZCODAwMEFEQ0I0MEVBQkExNTAyNAorOjEwNDcxMDAwMTJBQkExNTIxMkFCODNFOTA2NzYzMjhBNDY0QzhBQTZDNgorOjEwNDcyMDAwQjUwMEZFQ0M3ODE4ODhBNkI1MDAwQURDQjQwRkFCOEJCOAorOjEwNDczMDAwODY5QTAwQUI4Qjg2OUMwMEFCODNFOTA2NzYwRjg0REIwMAorOjEwNDc0MDAwNzUwM0U5RUZGRUIwMEFFOEY4QzhFOUU3RkVCMDBBRTg0OQorOjEwNDc1MDAwRjBDOEY3RDk4M0MxMzY4QkMxMEQ4MDAwODZDNEEzMjI2RgorOjEwNDc2MDAwMTM0MTQxODkwRTIwMTNDM0ExODQxMjJCQzE3MjExQTNERQorOjEwNDc3MDAwODQxMkJFMjIxM0QxRTlGMzZGOTA4OTBFMjAxM0Y4QzM3RgorOjEwNDc4MDAwRjlDM0MzODFFRjZBMTM3NEY5OEJDNzBEODAwMDg2QzQyNworOjEwNDc5MDAwQTM2ODEzNDc0Nzg5M0U2NjEzQzNGNzA2MkEwMTAxMDA0MQorOjEwNDdBMDAwNzVFMDhCMEU2NjEzRTMwNzgwRjkyMDc3RDU0OTQ5MzMwRQorOjEwNDdCMDAwQzA4RUMwOEVEOEJGNkExMzhCRjcwM0Y5ODNDNjM0M0IxMworOjEwNDdDMDAwRkU3N0MwQjAwRUU4QUVDODg1RUQ3NEI3OEE0NjRDOEE1NQorOjEwNDdEMDAwQjZCOTAwRkVDRTc4MTU4OEI2QjkwMDhBQTZBOTAwODBDMQorOjEwNDdFMDAwQ0NDMEFCODRGNjc0MDVCMDBFRTg1NkM4OEFCNkJBMDBFMQorOjEwNDdGMDAwRkVDRTc4Q0I4QTlFQTkwMDhBQkVBQjAwOEE1NjNGOEEzRAorOjEwNDgwMDAwRjMzMkY3MEFCNkFDMDBDNjg2QUMwMDAwMjJGMjc0NEI1NQorOjEwNDgxMDAwRjZDNjA4NzQwRkI0MDJGNkMzMDg3NTAyQjQwM0FCODA4MQorOjEwNDgyMDAwRTZGNzc0MzdGNkM2MDE3NDBGQjQwMEY2QzMwMTc1MDJEQgorOjEwNDgzMDAwQjQwMUFCODBFNkZFNzQyM0Y2QzYwMjc0MEZCNDA0RjYyRQorOjEwNDg0MDAwQzMwMjc1MDJCNDA1QUI4MEU2RkQ3NDBGRjZDNjA0NzRBRQorOjEwNDg1MDAwMEFCNDA2RjZDMzA0NzUwMkI0MDdBQkM2ODZCQTAwMDBGNAorOjEwNDg2MDAwODg5RUFCMDBFOTU4RkY5MEExODQxMjJCQzE3MjExQTM1RQorOjEwNDg3MDAwODQxMkJFNjgxM0QxRTlGMzZGOTA4OTBFNjYxM0Y4QzNGMgorOjEwNDg4MDAwRjlDM0ExODQxMjQxNDEyQkMxNzIyM0EzODQxMjhCQzFBRAorOjEwNDg5MDAwNDg0ODMyRTQwQzgwODZDNEVGOTA5MDkwOTA5MEJFREM0MworOjEwNDhBMDAwMTI0OTQ5RDFFOUYzNkY5MDg5MEVEQTEyRjhDM0Y5QzNCRQorOjEwNDhCMDAwOEFDODhBNDY0Q0I0MDE4M0VCMDZFRjkwOTA5MDkwOTBBMgorOjEwNDhDMDAwQjgwMTAwRUY5MDkwOTA5MDkwOEFDMUVGOTA5MDkwOTBGNgorOjEwNDhEMDAwOTBFOTk3MDBFOUFDMDAzM0MwOEVEODg5MUU4NDEyQzNEQQorOjEwNDhFMDAwMzY4QjFFODQxMkZCOTBGQUIwMENFODg5Qzc4NUVENzRGNAorOjEwNDhGMDAwRTZDNTc2MEM4M0ZCMTQ3MkRCRkI5MEZBQUQ4NUMwNzhCRAorOjEwNDkwMDAwQUY3NEUyOEJGRTAzRjgzNjhCMEU4NjEyM0JDMTc3MDI0MgorOjEwNDkxMDAwOEJDODgzRUIwNDNCRDk3NzAyOEJDQjMzQzA4QTQ2NENFMAorOjEwNDkyMDAwRUY5MDkwOTA5MDkwOEJDMUVGOTA5MDkwOTA5MDQxODBGQworOjEwNDkzMDAwRTFGRTJCRDk1MUQxRTlGMzZGOTA1OThCQzc0MDI0RkU4QQorOjEwNDk0MDAwM0JDNjc0MjcyQkZFNEU0RTUzOEI1RTEwM0JGMzcyMTMwNworOjEwNDk1MDAwMDMxRjgzQzMwMzgwRTNGRUM3MDcwMDAwODM2RTc0MDI1NgorOjEwNDk2MDAwODk1RTEwNUI4OTNDODk3NjBDRUI4OTg5NzYwQzM5NzZGNworOjEwNDk3MDAwMTA3NzgxNzIwODgzM0MwMDc0MDNFOTc3RkZFODBEQkU2RAorOjEwNDk4MDAwRTk2MkZGMzY4OTFFODQxMkIwMENFOEI1QzYzM0MwOEVDQQorOjEwNDk5MDAwRDhDM0ExODQxMjNEMTAwMDcyNzdCQTA0MDEzQjA2ODg4NworOjEwNDlBMDAwMTI3NTA2QzcwNjdFMTIwMDAwOEIwRURBMTJFMzBCRThDMgorOjEwNDlCMDAwRDBGRTcyNTdDNzA2N0UxMkZGN0Y4QjBFMjAxM0UzMEJDQgorOjEwNDlDMDAwRThBNUZENzI0NkM3MDY3RTEyRkY3RjhCMEU2NjEzRTNENQorOjEwNDlEMDAwMEJFODk0RkU3MjM1QzcwNjdFMTJGRjdGQTEyODAxQTk1RAorOjEwNDlFMDAwMDEwMDc1MDNFOEY5RkU4MDNFOEQxMjAwNzUxREExODQ1QgorOjEwNDlGMDAwMTIzRDIwMDA3NjE1M0IwNjgyMTI3NjA5QTE3RTEyM0JGRAorOjEwNEEwMDAwMDY4MDEyNzIwQzgwMEU5MDEyODBDM0IwODBGRjE2N0M1QworOjEwNEExMDAwMTJDMzgwMEU5MDEyNDBDMzZBMDAxRkM2MDY5MzEyMTc3RAorOjEwNEEyMDAwOUMwRUU4QjdDODZBMDAxRkM2MDY5MzEyMjA5QzBFRThDOQorOjEwNEEzMDAwQUFDODZBMDAxRkM2MDY5MzEyMTY5QzBFRTg5REM4OTA2RAorOjEwNEE0MDAwQkEwNjAxRUNBODIwNzVDQUZCOTBGQUJBMDQwMUVEOTBGMQorOjEwNEE1MDAwOTA5MDkwOTAzQTA2OTQxMjc3QkUzM0RCOEFEOEQxRTNENworOjEwNEE2MDAwMkU4QkFGNDQwMEM0N0UwODg1RkY3NEI5RjZDNEMwNzVCMAorOjEwNEE3MDAwNTUzMkMwQzFFMDAyODBFNEYwOEJGMEVEOTA5MDkwOTA1MAorOjEwNEE4MDAwOTA4NUMwNzRCQjhCQzg0MTgwRTFGRTBCQzY4QjVFNTAyNQorOjEwNEE5MDAwNEI0QjJCRDk3ODlDQUI4QkMxNDA0MDAxNDY0RUQxRTlBMgorOjEwNEFBMDAwRjM2RDkwODk1RTUwODk3RTA4OEI0NjI2ODBFNEVGODlGRAorOjEwNEFCMDAwNDYyNkY2QzQwMTc1MENGNzQ2NDgwQzAwNzUwNUIwMDI5MQorOjEwNEFDMDAwRTg3RkM1RTk3QUZGODZDNDhCQzg4M0UxM0Y0MTgwRTE3NgorOjEwNEFEMDAwRkVFMzBBM0M4MDcyMDkyNDNGQjRGMEVCQjBFOTYwRkZDQQorOjEwNEFFMDAwMjUzRjAwMzNGRjhFQzdCRjk2MTI4QkY3RDFFOUYzNkREOAorOjEwNEFGMDAwOTA4QkM4RTg0OEVERTk0N0ZGOTA2QTAwMUZDNjA2OTMwRgorOjEwNEIwMDAwMTIxQjlDMEVFOEQ1Qzc5MDYwMUUwNjMzQzA4RUQ4OEU0RgorOjEwNEIxMDAwQzBCQTA2MDFFQ0E4MDQ3NEUxQjAwNkVFRUNBMjhDMTI1NworOjEwNEIyMDAwQTg0MDc0MTFBMTg4MTJBMzg0MTJDNjA2OEQxMjAwRTg1MQorOjEwNEIzMDAwNjBGRUEwOEMxMkE4ODA3NDAzRTgwNEZGQjgwMDgwQkE1RAorOjEwNEI0MDAwMjJGRkVGMDcxRjYxQ0Y5MDZBMDAxRkM2MDY5MzEyMUI1QQorOjEwNEI1MDAwOUMwRUU4ODdDNzkwNjAxRTA2MzNDMDhFRDg4RUMwQkEwMAorOjEwNEI2MDAwMDYwMUVDQTgwNDc0RTFCQTA4MDFFQ0EyOEMxMkE4NDA3QQorOjEwNEI3MDAwNzQxMUExODgxMkEzODQxMkM2MDY4RDEyMDBFODEyRkVEOQorOjEwNEI4MDAwQTA4QzEyQTg4MDc0MDNFOEI2RkVCODAwODBCQTIyRkY5OQorOjEwNEI5MDAwRUYwNzFGNjFDRjkwRUU4NkUwRUU4NkUwRUM4NkUwRUM1QQorOjEwNEJBMDAwODZFMDgwRTFGRUYzNkM5MDgwRTFGRUYzNkU5MDA1MDBGQworOjEwNEJCMDAwNzU0N0E4NEIwNTAwNzU0OEE4NEIwNTAwQTM0OEE4NEJBRQorOjEwNEJDMDAwMDUwMDM1NDlBODRCMDYwMDk4NDg5NjRCMDYwMEJBNDhBMAorOjEwNEJEMDAwOTY0QjA2MDBDMzQ4OTY0QjA2MDBDQjQ4OTY0QjA2MDAwMgorOjEwNEJFMDAwMjA0OTk2NEIwNjAwMjg0OTk2NEIwNjAwNEU0QTlDNEI5RQorOjEwNEJGMDAwMDYwMDdCNEE5QzRCMDUwMDlFNEFBMjRCMDUwMEVDNEFFRQorOjEwNEMwMDAwQTI0QjAwMDAxRTA2ODMzRTQ0MTIwMDc0MDlBMDA2MDE1OAorOjEwNEMxMDAwMjQzMDNDMzA3NDFBOENDODhFRDg4RUMwQkJBRTRCOEJGRgorOjEwNEMyMDAwMEZFMzBEOEI3RjAyOEI3NzA0RjNBNDgzQzMwNkVCRUZCNgorOjEwNEMzMDAwMDcxRkMzOTAzM0MwQTMzRTAxQjkwQzAxQkU0MDAxOEJENgorOjEwNEM0MDAwRkU4MUM2QjQwRjg5MDQ4QkM2MkJGMTNCQzc3N0Y2QTM1MAorOjEwNEM1MDAwM0MwMUMzOTAxRTA2NjAzNjhCMkUzRTAxOEI1RTAwM0JFRQorOjEwNEM2MDAwRUI3NDJCOEI3NjAyODkxQzg5NzcwMjM2QTEzQzAxODk3MworOjEwNEM3MDAwNDYwMDM2ODkyRTNDMDE4QkVCRkY0RTA2NzQwODhCNkU4NgorOjEwNEM4MDAwMDBGRjRFMDY3NUY4MzY4OTJFM0UwMThCNjYwNDYxMDdEQgorOjEwNEM5MDAwMUZDMzFFMDY2MDM2OEIyRTNFMDE5ODg5NDYwNjg5NjYyNAorOjEwNENBMDAwMDQzQjZFMDA3NDEwOEI2RTAwRkY0RTA2NzVGODM2ODk1QgorOjEwNENCMDAwMkUzRTAxOEI2NjA0NjEwNzFGQzNDMzkwMUUwNjYwOUNENQorOjEwNENDMDAwRkEzM0VEOEVERDhCMkUzQzAxODVFRDc0M0Q4QjRFMDA2RAorOjEwNENEMDAwODkwRTNDMDE4QkNDOERBNjBBMDE1NjFFMDY2MDg5NjZBMgorOjEwNENFMDAwMDRDNzQ2MDgwRjFBQzc0NjA2MDEwMDhCMUUzRTAxODUwMQorOjEwNENGMDAwREI3NDFEOEJDNTg3MDc4OTQ2MDA4OTVFMDI4QkQ4ODlDNgorOjEwNEQwMDAwNkYwMjhCRTE5RDYxMDcxRkY4QzM5RDYxMDcxRkY5QzMwNworOjEwNEQxMDAwODkyRTNFMDE4OTZFMDA4OTZFMDI4N0UxOUQ4QkUxRUI1MQorOjEwNEQyMDAwRTQwMDBEMEE1NDY1NzI2RDY5NkU2MTZDNzMyMDczNzVEMQorOjEwNEQzMDAwNzA3MDZGNzI3NDY1NjQzQTBEMEEzMTI5MjA0MTRFNTNDOAorOjEwNEQ0MDAwNDkyMDYzNkY2RDcwNjE3NDY5NjI2QzY1MEQwQTMyMjk2OAorOjEwNEQ1MDAwMjA1Nzc5NzM2NTIwMzMzMDBEMEE1MDZDNjU2MTczNjU5NworOjEwNEQ2MDAwMjA3MzY1NkM2NTYzNzQzQTIwMDAwRDBBNjM2RjY0NjU5NworOjEwNEQ3MDAwMjA3MzY1Njc2RDY1NkU3NDNEMDAwRDBBNEQ2RjZFNjkzOQorOjEwNEQ4MDAwNzQ2RjcyMjA3NjMyMkUzNTBBMEQwQTNFMDAwRDBBNTBERAorOjEwNEQ5MDAwNjE3MjY0NkY2RTNGMDAwRDBBNEU2RjIwNjE2NDY0NzIzMQorOjEwNERBMDAwNjU3MzczMjA3MzcwNjU2MzY5NjY2OTY1NjQwMDBEMEFENQorOjEwNERCMDAwM0EwMDBEMEEwMDRDNkY2MzNEMDAwRDBBNDY0MTU0NDExNAorOjEwNERDMDAwNEMyMDQ1NTI1MjRGNTIzRDAwMEQwQTRENkY2RTY5NzQ5MgorOjEwNEREMDAwNkY3MjIwNjM2RjZENkQ2MTZFNjQ3MzNBMkQwRDBBMjBFMgorOjEwNERFMDAwMjAyMDQ0MkM2NDVCNUI3ODc4Nzg3ODNBNUQ3ODc4NzgxQQorOjEwNERGMDAwNzg1RDIwMkQyMDY0NzU2RDcwMjA2RDY1NkQ2RjcyNzkwMgorOjEwNEUwMDAwMEQwQTIwMjAyMDRDMkM2QzVCNUI3ODc4Nzg3ODNBNUQxQQorOjEwNEUxMDAwNzg3ODc4Nzg1RDIwMkQyMDY0NzU2RDcwMjA3MzY5NkVDOAorOjEwNEUyMDAwNjc2QzY1MjA2QzY5NkU2NTBEMEEyMDIwMjA0NTJDNjUzNQorOjEwNEUzMDAwNUI1Qjc4Nzg3ODc4M0E1RDc4Nzg3ODc4NUQyMDJEMjA5QgorOjEwNEU0MDAwNjU2NDY5NzQyMDZENjU2RDZGNzI3OTBEMEEyMDIwMjA4QworOjEwNEU1MDAwNDYyQzY2NUI1Qjc4Nzg3ODc4MjA1RDc4Nzg3ODc4NUQyQQorOjEwNEU2MDAwMjAyRDIwNjY2OTZDNkMyMDZENjU2RDZGNzI3OTIwNzBFNQorOjEwNEU3MDAwNjE3MjYxNjc3MjYxNzA2ODczMEQwQTIwMjAyMDQ5NUI1RQorOjEwNEU4MDAwNzg3ODc4Nzg1RDIwMjAyMDIwMjAyMDIwMjAyMDIwMkQ3OAorOjEwNEU5MDAwMjA3NzZGNzI2NDIwNjk2RTcwNzU3NDIwNjY3MjZGNkQxMgorOjEwNEVBMDAwMjA3MDZGNzI3NDBEMEEyMDIwMjA2OTVCNzg3ODc4NzgwMgorOjEwNEVCMDAwNUQyMDIwMjAyMDIwMjAyMDIwMjAyMDJEMjA2Mjc5NzRCOQorOjEwNEVDMDAwNjUyMDY5NkU3MDc1NzQyMDY2NzI2RjZEMjA3MDZGNzJFOAorOjEwNEVEMDAwNzQwRDBBMjAyMDIwNEY3ODc4Nzg3ODIwNzg3ODIwMjA2OAorOjEwNEVFMDAwMjAyMDIwMjAyMDIwMjAyRDIwNkY3NTc0NzA3NTc0MjBDNAorOjEwNEVGMDAwNzc2RjcyNjQyMDc0NkYyMDcwNkY3Mjc0MEQwQTIwMjBCNworOjEwNEYwMDAwMjA2Rjc4Nzg3ODc4MjA3ODc4MjAyMDIwMjAyMDIwMjA0MgorOjEwNEYxMDAwMjAyMDJEMjA2Rjc1NzQ3MDc1NzQyMDYyNzk3NDY1MjA1RgorOjEwNEYyMDAwNzQ2RjIwNzA2RjcyNzQwRDBBMjAyMDIwNDc1QjVCNzhDRAorOjEwNEYzMDAwNzg3ODc4M0E1RDc4Nzg3ODc4NUQyMDIwMjAyRDIwNjcyMQorOjEwNEY0MDAwNkY3NDZGMjA2MTY0NjQ3MjY1NzM3MzBEMEEyMDIwMjA5MgorOjEwNEY1MDAwNTc1QjVCNzg3ODc4NzgzQTVENzg3ODc4Nzg1RDIwMjA1MAorOjEwNEY2MDAwMjAyRDIwNzc2MTc0NjM2ODIwNjEyMDc3NkY3MjY0MEQ1MworOjEwNEY3MDAwMEEyMDIwMjA0MzIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyNAorOjEwNEY4MDAwMjAyMDIwMjAyMDJEMjA2OTZFNzQ2NTcyNzI3NTcwNzQ0NworOjEwNEY5MDAwNzMyMDZGNjY2NjBEMEEyMDIwMjA1MzIwMjAyMDIwMjBEOQorOjEwNEZBMDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJEMjA2OTZFNzQwOQorOjEwNEZCMDAwNjU3MjcyNzU3MDc0NzMyMDZGNkUwRDBBMjAyMDIwNzNGNQorOjEwNEZDMDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjBFMQorOjEwNEZEMDAwMkQyMDczNjk2RTY3NkM2NTIwNzM3NDY1NzAwRDBBMjBFRgorOjEwNEZFMDAwMjAyMDQyNzg3ODc4NzgyMDIwMjAyMDIwMjAyMDIwMjAzRgorOjEwNEZGMDAwMjAyMDIwMkQyMDYyNzI2NTYxNkI3MDZGNjk2RTc0MjBCNQorOjEwNTAwMDAwNzM2NTc0MEQwQTIwMjAyMDYyMjAyMDIwMjAyMDIwMjA5QgorOjEwNTAxMDAwMjAyMDIwMjAyMDIwMjAyMDIwMkQyMDYyNzI2NTYxNkIxRQorOjEwNTAyMDAwNzA2RjY5NkU3NDIwNjM2QzY1NjE3MjBEMEEyMDIwMjBCOAorOjEwNTAzMDAwNTIyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAzRQorOjEwNTA0MDAwMjAyRDIwNzI2NTczNzQ2MTcyNzQyMDYyNzI2NTYxNkJDOQorOjEwNTA1MDAwNzA2RjY5NkU3NDBEMEEyMDIwMjA3MjIwMjAyMDIwMjA5RAorOjEwNTA2MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJEMjA3MjY1Njc1NQorOjEwNTA3MDAwNjk3Mzc0NjU3MjczMjA2MTc0MjA2MjcyNkI3MDc0MEQ1MQorOjEwNTA4MDAwMEEyMDIwMjA1ODJDNzgyMDZFMjAyMDIwMjAyMDIwMjA0QworOjEwNTA5MDAwMjAyMDIwMjAyMDJEMjA2NTc4NjE2RDY5NkU2NTIwNjNCOQorOjEwNTBBMDAwNjg2MTZFNkU2NTZDMjA2RTBEMEEyMDIwMjA0ODJDM0ZEMgorOjEwNTBCMDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJEMjBFMworOjEwNTBDMDAwNzQ2ODY5NzMyMDZENjU3MzczNjE2NzY1MDAxQjVCMzI3QgorOjEwNTBEMDAwNEExQjVCMzEzQjMxNDg0MTRFNTM0OTIwNTQ2NTcyNkQ0OAorOjEwNTBFMDAwNjk2RTYxNkMwRDBBMEEwMDFCNUI0QjAwMUI1QjRBMDA3QQorOjEwNTBGMDAwMUI1QjMyNEExQjVCMzEzQjMxNDgwMDFCNUI0NDIwMUI2RQorOjEwNTEwMDAwNUI0NDAwMUI1QjMxM0IzNzMyNDgwMDFCNUIwMDNCMDBCQworOjEwNTExMDAwNDgwMDFCNUI3MzAwMUI1Qjc1MDAxQjdBMkIwQjdGMUIwRQorOjEwNTEyMDAwN0EyRTBDN0YxQjdBMkQwODdGMUI3QTJDMEE3RjFCN0EyNAorOjEwNTEzMDAwMjIwODdGMUE1Nzc5NzM2NTIwMzMzMDIwNTQ2NTcyNkRDOQorOjEwNTE0MDAwNjk2RTYxNkMwRDBBMDAxQjU0MDAxQjU5MDAxQTAwMUU4OQorOjEwNTE1MDAwMDAwODIwMDgwMDAwMUIzRDAwMDAwMDFCNDYwMDBEMDA1OQorOjEwNTE2MDAwM0Y0NDY0NDU2NTQ2NjY0NzY3NDg2ODQ5Njk0RjZGNDNGMQorOjEwNTE3MDAwNjM1MzczNDI2MjUyNzI1Nzc3NTg3ODRDNkMzQzYwRDREOAorOjEwNTE4MDAwNTdENDU3NTA1ODUwNThENjU5RDY1OUI0NTlCNDU5M0M5OQorOjEwNTE5MDAwNjAzQzYwNkM1NzQ4NTcyNjU3MDY1NzkwNTc5MDU3OTg3MQorOjEwNTFBMDAwNTc0ODVGMEM1RjU4NUYzMzVGNDA1RkEwNTdBMDU3RkVDMgorOjEwNTFCMDAwNTlGRTU5REM1N0RDNTc4ODYxOTg2MUMwNjFDQzYxRDhEMQorOjEwNTFDMDAwNjFGNjYxMDI2MjIyNjJGODU2NEE2MjU4NjI2MDU5MjBCMgorOjEwNTFEMDAwMjA2NjZDNjE2NzczM0QwMDIwMjA2MTc4M0QwMDIwMjBDRgorOjEwNTFFMDAwNjI3ODNEMDAyMDIwNjM3ODNEMDAyMDIwNjQ3ODNEMDBGNworOjEwNTFGMDAwMjAyMDYzNzMzRDAwMjAyMDY0NzMzRDAwMjAyMDY1NzNGMAorOjEwNTIwMDAwM0QwMDIwMjA3MzczM0QwMDIwMjA2NDY5M0QwMDIwMjA3NAorOjEwNTIxMDAwNzM2OTNEMDAyMDIwNjI3MDNEMDAyMDIwNzM3MDNEMDBDNgorOjEwNTIyMDAwMjAyMDY5NzAzRDAwMjA2MzY4NjE2RTY1NkMzRDAwMjA0MAorOjEwNTIzMDAwMjAyMDIwNzM2NTY3M0QwMDIwNzQ2OTVGNzM3NDcyM0RBMAorOjEwNTI0MDAwMDAyMDc0Njk1Rjc0NkY3MzNEMDAyMDc0Njk1RjZENjE0NQorOjEwNTI1MDAwNzgzRDAwMjA3NDY5NUY2MjYxNzMzRDAwMjA3NDY5NUY2RQorOjEwNTI2MDAwNzM2OTdBM0QwMDIwNzQ2OTVGNzM3NDY2M0QwMDIwNzQzMQorOjEwNTI3MDAwNjk1RjcyNkY2RjNEMDAyMDc0Njk1RjY2NkM2NzNEMDAwNworOjEwNTI4MDAwMjA3NDY5NUY3NDZGNzQzRDAwMjA3MjY5NUY3MDYzNkU5MworOjEwNTI5MDAwM0QwMDIwNzI2OTVGNzM3NDcyM0QwMDIwNzI2OTVGNzMxNAorOjEwNTJBMDAwNzQ2NjNEMDAyMDcyNjk1RjcyNkY2RjNEMDAyMDcyNjkwNQorOjEwNTJCMDAwNUY2MjYxNzMzRDAwMjA3MjY5NUY3MzY5N0EzRDAwMjAwRgorOjEwNTJDMDAwNzI2OTVGNzQ2Rjc0M0QwMDIwNzI2OTVGNkQ2OTZFM0QzNQorOjEwNTJEMDAwMDAyMDcyNjk1RjY2NkM2NzNEMDAyMDcyNjk1Rjc0NkZDMQorOjEwNTJFMDAwNzMzRDAwMjA3MjY5NUY3NDY4NzIzRDAwMjA3NDY4NUZDRQorOjEwNTJGMDAwNzM3NDY2M0QwMDIwNzQ2ODVGNzM3NDcyM0QwMDIwNzQ5RgorOjEwNTMwMDAwNjg1RjYyNjE3MzNEMDAyMDc0Njg1RjczNjk3QTNEMDA3NQorOjEwNTMxMDAwMjA3NDY4NUY3NDcyNjczRDAwMjA3NDY4NUY2NjZDNjcxNAorOjEwNTMyMDAwM0QwMDIwNzQ2ODVGNjM2RTc0M0QwMDIwNzI2ODVGNzM5NworOjEwNTMzMDAwNzQ3MjNEMDAyMDcyNjg1RjczNzQ2NjNEMDAyMDcyNjg2RAorOjEwNTM0MDAwNUY2MjYxNzMzRDAwMjA3MjY4NUY3MzY5N0EzRDAwMjA3RgorOjEwNTM1MDAwNzI2ODVGNzM3MDYxM0QwMDIwNzI2ODVGNjE3MzZGM0RCQQorOjEwNTM2MDAwMDAyMDcyNjg1RjcyNkY2RjNEMDAyMDcyNjg1RjY2NkMyQworOjEwNTM3MDAwNjczRDAwMjA2RDVGNjM2MTcyNjUzRDAwMjA3MDc0NUY2MgorOjEwNTM4MDAwNjY2QzZGM0QwMDIwNjE3MzVGNjY2QzZGM0QwMDIwNzIzQworOjEwNTM5MDAwNkQ1RjY2NkM2RjNEMDAyMDIwMjA3MTVGNjk2RTNEMDA3RgorOjEwNTNBMDAwMjAyMDcxNUY2Rjc1NzQzRDAwMjA3MTVGNjQ3MjYxNkVDMworOjEwNTNCMDAwM0QwMDIwMjA3MTVGNzQ2OTZEM0QwMDIwMjAyMDcxNUZFOQorOjEwNTNDMDAwNjY2MzNEMDAyMDcxNUY3Mzc0NjE3NDNEMDAyMDcxNUZGRQorOjEwNTNEMDAwNjQ2MTc0NjEzRDAwMjA3MTVGNkQ2RjY0NkQzRDAwMjBGQworOjEwNTNFMDAwNjg2MTZFNjQ1RjZGM0QwMDIwNjg2MTZFNjQ1RjYyM0Q1RQorOjEwNTNGMDAwMDAyMDY4NjE2RTY0NUY2NTNEMDAyMDY4NjE2RTY0NUZENworOjEwNTQwMDAwNjkzRDAwMjAyMDZGNzA2RjczNzQzRDAwMjAyMDc0NjkyNworOjEwNTQxMDAwNkQ2NTZGM0QwMDIwNjM3NTczNzQ2RDMxM0QwMDIwNjNEMQorOjEwNTQyMDAwNzU3Mzc0NkQzMjNEMDAyMDYzNzU3Mzc0NkQ2NDNEMDA1NworOjEwNTQzMDAwMjA3NDc4NzI2MTc0NjUzRDAwMjA3Mjc4NzI2MTc0NjVDMQorOjEwNTQ0MDAwM0QwMDIwMjA2MzVGNkQ2MTcwM0QwMDIwNjM1RjYxNjRGQgorOjEwNTQ1MDAwNjQ3MjNEMDAyMDYzNUY2MTY5NzM3MjNEMDAyMDYzNUY4OQorOjEwNTQ2MDAwNzg3NDYxNjczRDAwMjA2MzVGNjQ2NTY2NzIzRDAwMjA2QgorOjEwNTQ3MDAwNjM1RjY2NkM3MzY4M0QwMDIwNzQ3ODZENjE3ODczM0Q3RQorOjEwNTQ4MDAwMDAyMDcyNjk1RjY1NkQ3MzNEMDAyMDIwNjM1RjZDNzM1RgorOjEwNTQ5MDAwNzIzRDAwMjAyMDYzNUY2OTY1NzIzRDAwMjAyMDYzNUZEQworOjEwNTRBMDAwNjY2MzcyM0QwMDIwMjA2MzVGNkQ2MzcyM0QwMDIwMjBDMworOjEwNTRCMDAwNjM1RjZDNjM3MjNEMDAyMDIwNjM1RjY0NzM3MzNEMDAyMworOjEwNTRDMDAwMjA2MzVGNjQ3MzczNjkzRDAwMjA2MzVGNjQ3MzczNzI2QworOjEwNTREMDAwM0QwMDIwMjA2MzVGNjk3MzcyM0QwMDIwMjA2MzVGNjM5RAorOjEwNTRFMDAwNjE3MjNEMDAyMDIwNjM1RjY1NjY3MjNEMDAyMDYzNUY0RQorOjEwNTRGMDAwNjU3MjczNzQzRDAwMjA2MzVGNjU2MzZFNzQzRDAwMjBDOAorOjEwNTUwMDAwNjM1RjYyNzI2QjYzM0QwMDIwNjM1RjYyNkY2QjYzM0QzQworOjEwNTUxMDAwMDAyMDYzNUY3MjY1NzA2QzNEMDAyMDYzNUY2MzYzNzM5RQorOjEwNTUyMDAwNzIzRDAwMjA2MzVGNzM3NDc0MzEzRDAwMjA2MzVGNzNDQworOjEwNTUzMDAwNzQ3NDMyM0QwMDJCQzA4RUQ4OEVDMEU4QzIwMEU4RTVGRQorOjEwNTU0MDAwMDBGQUJGODQwMEM3MDVEQzU2OEM0RDAyQkYwQzAwQzdCMworOjEwNTU1MDAwMDU2RTVFOEM0RDAyQkYwNDAwQzcwNUJBNUU4QzREMDIxRAorOjEwNTU2MDAwRThGMTAwOTBFODQ5MDFFODE2MDBGNDkwRThFNTAwQkU5MworOjEwNTU3MDAwQkE0REU4MDkwQ0EwOTMxMkU4NUQwQ0U4QzIwOUVCRTQwRgorOjEwNTU4MDAwRThENTBDRThDNDBDMEFDMDc0RjY4QjFFRjg3OTNDMEQwMworOjEwNTU5MDAwNzQyRTNDMDg3NDE3M0M3Rjc0MTM4M0ZCMjA3RkUxODhEMgorOjEwNTVBMDAwODdENjc5NDM4OTFFRjg3OUU4NzcwQ0VCRDMwQkRCNzQ0NworOjEwNTVCMDAwQ0Y0Qjg5MUVGODc5OEIzNjE2N0FFOEMxMEJFQkMxOTA3OAorOjEwNTVDMDAwRTgwMjAwRUJCQkM2ODdENjc5MDAwQkRCNzQxRUEwRDZDMQorOjEwNTVEMDAwNzlCRjYwNTFCOTFEMDA4QkQ5MDYwRTA3RjJBRTA3NzU3MQorOjEwNTVFMDAwMTc0MTJCRDlEMUUzMkVGRjk3N0Q1MTkwMzNDMEEzRjhGQgorOjEwNTVGMDAwNzlCRTg5NERFODg3MEJDM0JFOEQ0REU4ODAwQkVCRUM3RgorOjEwNTYwMDAwQkEwMDAyQjA5M0VFQjA1NUVFQkExMDAyQjA5M0VFQjAwRAorOjEwNTYxMDAwQUFFRUJBMDAwMkVDM0M1NTc1MDhCQTEwMDJFQzNDQUE5RQorOjEwNTYyMDAwNzQwM0U4MkZGNkMzQkEwNDAyQjAxQUVFQjAyMEVFQjA0RAorOjEwNTYzMDAwMzBFRUIwNDBFRUIwODBFRUJBMDAwMkIwMTNFRUIwMDcyQworOjEwNTY0MDAwRUVCQTA4MDJCMDgwRUVCQTAyMDJCMEJCRUVCQTA0MDJCMworOjEwNTY1MDAwQjAwNUVFQzNDNjA2Q0ExMzAxQzcwNkY4NzkwMDAwQzYzNgorOjEwNTY2MDAwMDZGNjc5MDFDNzA2RDA3OTAwMDBDNzA2RDI3OTAwMDA5NgorOjEwNTY3MDAwQzcwNkQ0NzkwMDAwQzcwNkZBNzkwMDAwQzcwNkZDNzk4RQorOjEwNTY4MDAwMDAwMEM3MDZGRTc5MDAwMEM3MDYwMDdBMDAwMEM3MDZDMgorOjEwNTY5MDAwMDI3QUNFNTk4QzBFMDQ3QUM3MDYwNjdBMDAwMEM3MDYzNQorOjEwNTZBMDAwMjc3QTAwMDBDNjA2Mjk3QTAwQzYwNjJBN0EwMEMzOTAyNworOjEwNTZCMDAwQkUyMjRERThDODBBRTgzRjAwMkMzMTNDMDE3N0Y3RThFQworOjEwNTZDMDAwODEwOThCMzYwQzdBRThCNTBBQkU2QTRERThBRjBBMEUzRQorOjEwNTZEMDAwNThFOEY4MEFCRTdBNERFOEE0MEFDMzkwNjBEMUUzODM4MworOjEwNTZFMDAwRkIxODczMTExRUJBMDAwMDhFREEyRUZGOTdCNzUxOEI4QworOjEwNTZGMDAwRUM4OTQ2MTAxRjYxQ0Y5MEU4NEYwQjBBQzA3NTA1RTg5MgorOjEwNTcwMDAwNTYwQkVCRjRDMzkwODMzRUY4NzkwMTc0MTZCRUQ3NzkzQgorOjEwNTcxMDAwRTgzMTBBOEJEMEFDM0MyQzc0MDQzQzIwNzUwNUU4MjM5RQorOjEwNTcyMDAwMEFFRUMzRTlEMkZFODMzRUY4NzkwMTc0RjZCRUQ3Nzk1QQorOjEwNTczMDAwRTgxMTBBOEJEMEFDM0MyQzc0MDgzQzIwNzQwNEU5QjcwNworOjEwNTc0MDAwRkU5MEU4RkYwOUVGQzM5MDhCMTYwNjdBODMzRUY4Nzk0NgorOjEwNTc1MDAwMDE3NDBCQkVENzc5RThFQjA5OEJEMEEzMDY3QUIwMjA5MQorOjEwNTc2MDAwRTg1NzBCOEIxNjA2N0FFQ0U4NkYwQkMzOEIxNjA2N0E5QworOjEwNTc3MDAwODMzRUY4NzkwMTc0MEJCRUQ3NzlFOEM3MDk4QkQwQTNCMworOjEwNTc4MDAwMDY3QUIwMjBFODMzMEI4QjE2MDY3QUVERTg2NzBCQzM3OAorOjEwNTc5MDAwRkFDNjA2RjY3OTAwQzM5MEM2MDZGNjc5MDFGQkMzOTBGNworOjEwNTdBMDAwMDZFODU4MDlCMDIwRTgxMTBCMjY4QjA1RTg0NzBCQjAzNgorOjEwNTdCMDAwMDhFODA2MEJFODAzMEJFODAwMEJFOEZEMEFCODAxMDA1NworOjEwNTdDMDAwRThDRkY0QkEwMjAyRUMyNDAxNzUwMkVCRENCQTA2MDI1RgorOjEwNTdEMDAwRUMwN0MzOTBDNzA2MDg3QTEwMDBFQjA2QzcwNjA4N0FFNAorOjEwNTdFMDAwMDEwMDA2OEUwNkZDNzk4QjNFRkE3OUU4MEUwOUU4MEI3QgorOjEwNTdGMDAwMDA4OTNFRkE3OThDMDZGQzc5MDdDMzkwQkVCMjRERTg2OQorOjEwNTgwMDAwN0MwOThCMTYwODdBNTJFODJBMDlFODBGMEFFODBDMEE4NAorOjEwNTgxMDAwMzNEQkI5MTAwMDkwMjY4QTAxRThCQzA5RThGRDA5NDM5MgorOjEwNTgyMDAwRTJGNEU4RjcwOUU4RjQwOTMzREJCOTEwMDA5MDI2OEFCRQorOjEwNTgzMDAwMDEzQzIwNzIwNTNDN0U3NjAzOTBCMDJFRThFMzA5NDNEQworOjEwNTg0MDAwRTJFQ0JFQjI0REU4MzYwOTgzQzcxMDVBNEE3NUI3QzNCOQorOjEwNTg1MDAwMDY4RTA2MDA3QThCM0VGRTc5RThBMDA4ODkzRUZFNzkyNgorOjEwNTg2MDAwOEMwNjAwN0E1NzhCMzYwRTdBRTgxMjA5QzcwNjA4N0EzQQorOjEwNTg3MDAwMTAwMEJBMDAwMkU4RTgwMEU4ODFGRjVGQkEwMDAwRTgyMworOjEwNTg4MDAwREUwMEJFQjU0REU4RjYwODhDQzBFODNGMDlCMDNBRTg0NgorOjEwNTg5MDAwOTAwOThCQzdFODM1MDlFODdFMDhFOEMzMDA5MEU4QjdBRgorOjEwNThBMDAwMDlFOEE2MDkwQUMwNzRGNjNDMEI3NTA2ODNFRjEwRUJGNQorOjEwNThCMDAwMTk5MDNDMEE3NTA2ODNDNzEwRUIwRjkwM0MwQzc1MDREOQorOjEwNThDMDAwNDdFQjA3OTAzQzA4NzUyNDRGOTA4QjM2RkU3OThCQzdDOQorOjEwNThEMDAwMkJDNjNEMDAwMTcyQTUzRDEwMDE3MjA0ODNFRTIwOTA5RAorOjEwNThFMDAwODNDNjEwODkzNkZFNzk1NzhCRkVFQjgwM0MyRTc1MDhGNworOjEwNThGMDAwQkEwMTEzRTg2QTAwMDdDM0M2MDYwQTdBMDIzMkM5OTBFMQorOjEwNTkwMDAwM0MzMDcyNEMzQzM5NzYwQzI0NUYzQzQxNzI0MjNDNDY0MAorOjEwNTkxMDAwNzczRTJDMDcyQzMwNTBFOENDMDg1ODAyQzhGRTBFMEFGRgorOjEwNTkyMDAwN0E3NDBGQzBFMTA0RTgyRjA5RTgxRTA5MEFDMDc0RjY3MgorOjEwNTkzMDAwRUJDRTI2ODgwREU4RTAwNzhBRDBFODIzMDA4QUMxM0MzOAorOjEwNTk0MDAwMjA3MjA1M0M3RTc2MDM5MEIwMkVFOEQ1MDhFOTcwRkYwMgorOjEwNTk1MDAwRThDNTA3RTgwQTAwMjY4QTA1RTg3QzA4RTkxREZGOTBFQgorOjEwNTk2MDAwRjYwNjI2N0EwMjc1MDI4NkYyNTI4QjM2MUE3QUU4MEQwRQorOjEwNTk3MDAwMDg1QTUyOEFDNjAyMDYyNDdBRjYwNjI2N0EwMTc1MDY2NQorOjEwNTk4MDAwRTg5RjA4RUIwRDkwMzJFNEU4MEQwODhCMzYxQzdBRThBRQorOjEwNTk5MDAwRUMwNzVBOEFDMjAyMDYyNTdBRjYwNjI2N0EwMTc1MDZBRgorOjEwNTlBMDAwRTg3RjA4RUIwNjkwMzJFNEU4RUQwNzhCMzYxRTdBRThENAorOjEwNTlCMDAwQ0MwN0MzOTAwNjhFMDYwNDdBOEIzRTAyN0FFODNDMDczOQorOjEwNTlDMDAwODkzRTAyN0E4QzA2MDQ3QTA3RkYxRTAyN0FDM0JFOTdDQworOjEwNTlEMDAwNERFOEFBMDdDQjkwMDY1N0JFRDc3OUU4NjYwNzhCRDg2MworOjEwNTlFMDAwRTg2MTA3OEJDODJCQ0I3ODExOEVDM0JGMDAwMEI4RkZDRQorOjEwNTlGMDAwRkY1MUI5MDgwMEYzQUI1OUUyRjc1RjA3QzM5MDA2QkU0OQorOjEwNUEwMDAwRDc3OUU4M0YwNzhCRDhEMUUzMkU4QjlGNDQwMEJFMjY4MQorOjEwNUExMDAwNTJFOEYxMDg4QkMzRThERDA4QjgwMTAwRTg3M0YyRTg0QQorOjEwNUEyMDAwRTAwOEJFMkY1MkU4REQwODhCNDcxOEU4QzgwOEJFNzdBQgorOjEwNUEzMDAwNTJFOEQxMDg4QjQ3MjZFOEJDMDhCRTUzNTJFOEM1MDg5NworOjEwNUE0MDAwOEI0NzFFRThCMDA4QkU1QzUyRThCOTA4OEI0NzIwRThENworOjEwNUE1MDAwQTQwOEJFNkU1MkU4QUQwODhCNDcyNEU4OTgwOEJFODBDMworOjEwNUE2MDAwNTJFOEExMDg4QjQ3MkFFODhDMDhFODk1MDhCRTM4NTIwRQorOjEwNUE3MDAwRTg5MjA4OEIwN0U4N0UwOEJFNDE1MkU4ODcwODhCNDcwQQorOjEwNUE4MDAwMUFFODcyMDhCRTRBNTJFODdCMDg4QjQ3MUNFODY2MDg5MQorOjEwNUE5MDAwQkU2NTUyRTg2RjA4OEI0NzIyRTg1QTA4RTg2MzA4QkVFMworOjEwNUFBMDAwRDE1MkU4NjAwODhCNDczOEU4NEIwOEJFQUQ1MkU4NTQ0NQorOjEwNUFCMDAwMDg4QjQ3MzBFODNGMDhCRUI2NTJFODQ4MDg4QjQ3MzJBQgorOjEwNUFDMDAwRTgzMzA4QkVBNDUyRTgzQzA4OEI0NzJFRTgyNzA4QkVGRQorOjEwNUFEMDAwQkY1MkU4MzAwODhCNDczNEU4MUIwOEU4MjQwOEJFODkyOQorOjEwNUFFMDAwNTJFODIxMDg4QjQ3MDRFODBDMDhCRTkyNTJFODE1MDhEQQorOjEwNUFGMDAwOEI0NzE0RTgwMDA4QkU5QjUyRTgwOTA4OEI0NzJDRTg0NgorOjEwNUIwMDAwRjQwN0JFQzg1MkU4RkQwNzhCNDczNkU4RTgwN0JFREE1RgorOjEwNUIxMDAwNTJFOEYxMDc4QjQ3M0FFOERDMDdCRUUzNTJFOEU1MDdCNQorOjEwNUIyMDAwOEI0NzNDRThEMDA3RThEOTA3QkUxOTUzRThENjA3OEI2NgorOjEwNUIzMDAwNDc0OEU4QzEwN0JFRkU1MkU4Q0EwNzhCNDc0MkU4QjVBRQorOjEwNUI0MDAwMDdCRTA3NTNFOEJFMDc4QjQ3NDRFOEE5MDdCRTdDNTM0RQorOjEwNUI1MDAwRThCMjA3OEI0NzRDRTg5RDA3QkU4NTUzRThBNjA3OEI0NAorOjEwNUI2MDAwNDc0RUU4OTEwN0JFOEU1M0U4OUEwNzhCNDc1MEU4ODU2OQorOjEwNUI3MDAwMDdFODhFMDdCRTIyNTNFODhCMDc4QjQ3NEFFODc2MDc3MworOjEwNUI4MDAwQkVFQzUyRTg3RjA3OEI0NzA4RTg2QTA3QkVGNTUyRTg4QgorOjEwNUI5MDAwNzMwNzhCNDc0MEU4NUUwN0JFMTA1M0U4NjcwNzhCNDdFMworOjEwNUJBMDAwNDZFODUyMDdFODVCMDdCRTZBNTNFODU4MDc4QjQ3N0ExNgorOjEwNUJCMDAwRTg0MzA3QkUzRDUzRTg0QzA3OEI0NzcwRTgzNzA3QkUwNAorOjEwNUJDMDAwNDY1M0U4NDAwNzhCNDc3MkU4MkIwN0JFNEY1M0U4MzQzMworOjEwNUJEMDAwMDc4QjQ3NzRFODFGMDdFODI4MDdCRTJCNTNFODI1MDcwMworOjEwNUJFMDAwOEI0NzBDRTgxMDA3QkUzNDUzRTgxOTA3OEI0NzEwRThDMQorOjEwNUJGMDAwMDQwN0JFNTg1M0U4MEQwNzhCNDc3NkU4RjgwNkJFNjFFOAorOjEwNUMwMDAwNTNFODAxMDc4QjQ3NzhFOEVDMDZCRTczNTNFOEY1MDZDNgorOjEwNUMxMDAwOEI0NzNFRThFMDA2RThFOTA2QkU5NzUzRThFNjA2OEJDOAorOjEwNUMyMDAwNDc1MkU4RDEwNkJFQTA1M0U4REEwNjhCNDc1NEU4QzVEMAorOjEwNUMzMDAwMDZCRUE5NTNFOENFMDY4QjQ3NTZFOEI5MDZCRUIyNTM1NgorOjEwNUM0MDAwRThDMjA2OEI0NzU4RThBRDA2QkVCQjUzRThCNjA2OEJFNAorOjEwNUM1MDAwNDc1QUU4QTEwNkJFQzQ1M0U4QUEwNjhCNDc1Q0U4OTVGQworOjEwNUM2MDAwMDZFODlFMDZCRUNENTNFODlCMDY4QjQ3NUVFODg2MDY5NworOjEwNUM3MDAwQkVENjUzRTg4RjA2OEI0NzYwRTg3QTA2QkVERjUzRTg0RQorOjEwNUM4MDAwODMwNjhCNDc2MkU4NkUwNkJFRTg1M0U4NzcwNjhCNDdDQgorOjEwNUM5MDAwN0NFODYyMDZCRUYxNTNFODZCMDY4QjQ3N0VFODU2MDY0OQorOjEwNUNBMDAwQkVGQTUzRTg1RjA2OEI4NzgwMDBFODQ5MDZFODUyMDY5MworOjEwNUNCMDAwQkU0MjU0RTg0RjA2OEI4NzlFMDBFODM5MDZCRTAzNTQ2NworOjEwNUNDMDAwRTg0MjA2OEI0NzY0RTgyRDA2QkUwQzU0RTgzNjA2OEI4NgorOjEwNUNEMDAwNDc2RUU4MjEwNkJFMTU1NEU4MkEwNjhCODc4RTAwRTgzOQorOjEwNUNFMDAwMTQwNkJFMUU1NEU4MUQwNjhCODc5MDAwRTgwNzA2QkUwQQorOjEwNUNGMDAwMjc1NEU4MTAwNjhCODc5MjAwRThGQTA1RTgwMzA2QkVGMQorOjEwNUQwMDAwMzA1NEU4MDAwNjhCODc5NDAwRThFQTA1QkUzOTU0RTg3MQorOjEwNUQxMDAwRjMwNThCODc5NjAwRThERDA1QkU2RjU0RThFNjA1OEIzQQorOjEwNUQyMDAwODc5ODAwRThEMDA1QkU1RDU0RThEOTA1OEE4N0EwMDBCMQorOjEwNUQzMDAwRThBNzA1QkU1NDU0RThDQzA1OEE0NzI4RTg5QjA1QkU3MQorOjEwNUQ0MDAwNjY1NEU4QzAwNThBODdBMTAwRTg4RTA1RThCMzA1QkU2MQorOjEwNUQ1MDAwNzg1NEU4QjAwNThBODdBMjAwRTg3RTA1QkU4MTU0RTg0MQorOjEwNUQ2MDAwQTMwNThBODdBMzAwRTg3MTA1QkU4QTU0RTg5NjA1OEFEMAorOjEwNUQ3MDAwODdBNDAwRTg2NDA1QkU5MzU0RTg4OTA1OEE4N0E1MDBENgorOjEwNUQ4MDAwRTg1NzA1QkU5QzU0RTg3QzA1OEE4N0E2MDBFODRBMDVDQQorOjEwNUQ5MDAwQkVBNTU0RTg2RjA1OEE4N0E3MDBFODNEMDVCRUFFNTQ0RQorOjEwNURBMDAwRTg2MjA1OEE4N0E4MDBFODMwMDVFODU1MDVCRUI3NTRDMworOjEwNURCMDAwRTg1MjA1OEE4N0E5MDBFODIwMDVCRUMwNTRFODQ1MDVEOQorOjEwNURDMDAwOEE4N0FBMDBFODEzMDVCRUM5NTRFODM4MDU4QTg3QUI1QworOjEwNUREMDAwMDBFODA2MDVCRUQyNTRFODJCMDU4QTg3QUQwMEU4RjkzNQorOjEwNURFMDAwMDRCRURCNTRFODFFMDU4QTg3QUUwMEU4RUMwNEJFRTQ3RQorOjEwNURGMDAwNTRFODExMDU4QTg3QUYwMEU4REYwNEJFRUQ1NEU4MDREQgorOjEwNUUwMDAwMDU4QTg3QjAwMEU4RDIwNEU4RjcwNEJFRjY1NEU4RjQ0NworOjEwNUUxMDAwMDQ4QTg3QjEwMEU4QzIwNEJFRkY1NEU4RTcwNDhBODcxOQorOjEwNUUyMDAwQjIwMEU4QjUwNEJFMDg1NUU4REEwNDhBODdCMzAwRTg5MgorOjEwNUUzMDAwQTgwNEJFMTE1NUU4Q0QwNDhBODdCQjAwRTg5QjA0RTg5RQorOjEwNUU0MDAwQzAwNEJFMUE1NUU4QkQwNDhBODdCQzAwRTg4QjA0QkVCNgorOjEwNUU1MDAwMjM1NUU4QjAwNDhBODdCRTAwRTg3RTA0QkUyQzU1RThDRQorOjEwNUU2MDAwQTMwNDhBODdCRjAwRTg3MTA0RTg5NjA0MDdDMzYwMDZBQworOjEwNUU3MDAwMUUxNjhCRUNGRjRFMTZGNzQ2MUEwMDAyNzQwMUZCQjg5MworOjEwNUU4MDAwMDAwMDhFRDg4RUMwODkyRTJEN0FFOENCMDA4MTY2MUE0QworOjEwNUU5MDAwRkZGRUM2MDYyQTdBMDBFOEQ4MDBCODAwNUZBMzJCN0E3NgorOjEwNUVBMDAwRTg1RDAwODAzRTJBN0EwMDc0MEE4MTRFMUEwMDAxQzYxRAorOjEwNUVCMDAwMDYyQTdBMDAxNzFGMDc2MUNGOTA2MDA2MUUxNjhCRUMyQQorOjEwNUVDMDAwRjc0NjFBMDAwMjc0MDFGQkI4MDAwMDhFRDg4RUMwODkxNAorOjEwNUVEMDAwMkUyRDdBODE2NjFBRkZGRUM2MDYyQTdBMDBFODkyMDAwNQorOjEwNUVFMDAwQjgwMDVGQTMyQjdBRTgxNzAwODAzRTJBN0EwMDc0MEE3NAorOjEwNUVGMDAwODE0RTFBMDAwMUM2MDYyQTdBMDAxNzFGMDc2MUNGOTA0QgorOjEwNUYwMDAwQjhGMDAwRTg4Q0VERkYyNjJCN0FDMzkwMDY1MzU2ODAzQworOjEwNUYxMDAwM0UyOTdBMDA3NDAzRTgzRjAwQkVENzc5RTgyNTAyOEI1QQorOjEwNUYyMDAwRDhBMzI3N0EyRThBMDdBMjI5N0FCMENDMkU4ODA3NUVCQQorOjEwNUYzMDAwNUIwN0MzQzYwNjJBN0EwMEI4MEE1RkEzMkI3QUMzOTAxMAorOjEwNUY0MDAwOEIyRTJEN0FFODJCMDBDM0M2MDYyQTdBMDFFODA4MDBCQQorOjEwNUY1MDAwQjgwQTVGQTMyQjdBQzM5MDU3ODAzRTI5N0EwMDc0MEY0QQorOjEwNUY2MDAwOEIzRTI3N0FBMDI5N0EyRTg4MDVDNjA2Mjk3QTAwNUZGQgorOjEwNUY3MDAwQzM5MEJFQjI0REU4MDYwMkJFRDg1MUU4MDAwMkZGNzZEQgorOjEwNUY4MDAwMTQ1OEU4NDcwMkJFREU1MUU4RjMwMUZGNzYwRTU4RThFOAorOjEwNUY5MDAwM0EwMkJFRTQ1MUU4RTYwMUZGNzYxMjU4RTgyRDAyQkU0RgorOjEwNUZBMDAwRUE1MUU4RDkwMUZGNzYxMDU4RTgyMDAyQkUxNDUyRTgwMQorOjEwNUZCMDAwQ0MwMUZGNzYwQTU4RTgxMzAyQkUxQTUyRThCRjAxRkY2RgorOjEwNUZDMDAwNzYwQzU4RTgwNjAyQkVDRjUxRThCMjAxRkY3NjFBNThBNworOjEwNUZEMDAwRThGOTAxQkVCMjRERThBNTAxQkVGMDUxRTg5RjAxRkYwRQorOjEwNUZFMDAwNzYxODU4RThFNjAxQkVGNjUxRTg5MjAxRkY3NjAyNThBRAorOjEwNUZGMDAwRThEOTAxQkVGQzUxRTg4NTAxRkY3NjA0NThFOENDMDFFMAorOjEwNjAwMDAwQkUwMjUyRTg3ODAxRkY3NjAwNThFOEJGMDFCRTA4NTI5MAorOjEwNjAxMDAwRTg2QjAxRkY3NjA2NThFOEIyMDFCRTBFNTJFODVFMDE1OQorOjEwNjAyMDAwRkY3NjA4NThFOEE1MDFCRTIwNTJFODUxMDFGRjc2MTYxOAorOjEwNjAzMDAwNThFODk4MDFCRTg5NERFODQ0MDFDMzkwQkVDOTRERThCNworOjEwNjA0MDAwM0MwMUMzM0MwMDc0MDUzQzAxNzQ1OUMzQzcwNjBDN0E3QgorOjEwNjA1MDAwQ0Q1MEM3MDYwRTdBRjA1MEM3MDYxMDdBRTg1MEM3MDYzMgorOjEwNjA2MDAwMTI3QUVDNTBDNzA2MTQ3QUY0NTBDNzA2MTY3QUZCNTAyMQorOjEwNjA3MDAwQzcwNjE4N0EwMzUxQzcwNjFBN0EwQjUxQzcwNjFDN0E0RAorOjEwNjA4MDAwMEU1MUM3MDYxRTdBMTA1MUM3MDYyMDdBMTI1MUM3MDY1NAorOjEwNjA5MDAwMjI3QTE2NTFDNjA2MjQ3QTAxQzYwNjI1N0EwMUM2MDY1QQorOjEwNjBBMDAwMjY3QTAzQzNDNzA2MEM3QTFBNTFDNzA2MEU3QTRENTFEOQorOjEwNjBCMDAwQzcwNjEwN0E0NzUxQzcwNjEyN0E0QTUxQzcwNjE0N0FBMgorOjEwNjBDMDAwNEY1MUM3MDYxNjdBNTE1MUM3MDYxODdBNTU1MUM3MDY1RgorOjEwNjBEMDAwMUE3QTU2NTFDNzA2MUM3QTU5NTFDNzA2MUU3QTVBNTE2OAorOjEwNjBFMDAwQzcwNjIwN0E1QjUxQzcwNjIyN0E1RTUxQzYwNjI0N0ExQgorOjEwNjBGMDAwMjBDNjA2MjU3QTIwQzYwNjI2N0EwMkMzQTFGODc5NDg2QQorOjEwNjEwMDAwNzQxNEJFRDc3OUU4M0MwMDhCRjhBQzNDM0E3NTA3OEUyNgorOjEwNjExMDAwQzdFODMwMDA4QkY4QzM5MDhCQzcyQjA2RkU3OThBRjA1NgorOjEwNjEyMDAwMjQwRjhBRDAwMkQwMDJEMDgwQzIwQkMwRUUwNDgwQzZGOQorOjEwNjEzMDAwMDMwNDNEQzM4Q0MwRTg5MzAwQjAzQUU4RTQwMDhCQzc4OQorOjEwNjE0MDAwRTg4OTAwQzM1MTMzQzk5MEFDM0MyMDc0RkI5MDBBQzA2RAorOjEwNjE1MDAwNzQyNjJDMzA3MjIyM0MwOTc2MTQzQzExNzIxQTJDMDdEQQorOjEwNjE2MDAwM0MwRjc2MEEzQzJBNzIxMDJDMjAzQzBGNzcwQTk4QzEwQgorOjEwNjE3MDAwRTEwNDAzQzhBQ0VCRDc5MDRFOEJDMTU5QzM5MDA2OEM5OQorOjEwNjE4MDAwQzg4RUMwRTgwMjAwMDdDMzI2OEEwNDQ2MEFDMDc0MDYwNworOjEwNjE5MDAwRTg4RjAwRUJGMzkwQzM5MDBCQzA3NDdBNTEzM0QyQjlGRgorOjEwNjFBMDAwRTgwM0Y3RjE4QkNBRTgwMzAwOEJDMTU5QkE2NDAwRjYyMworOjEwNjFCMDAwRjJFODBDMDA4QUM0OThCMjBBRjZGMkU4MDIwMDhBQzQzNworOjEwNjFDMDAwNTAwQUYwNzQwNTA0MzBFODU4MDA1OEMzODZDNEU4MDc0NAorOjEwNjFEMDAwMDA4NkM0RTgwMjAwQzM5MEMxQzgwNEU4MDgwMEMxQzAzQQorOjEwNjFFMDAwMDRFODAyMDBDMzkwNTM1MDI0MEZCQkNBNjIyRUQ3RThDNAorOjEwNjFGMDAwMzAwMDU4NUJDMzkwODZDNEU4MDcwMDg2QzRFODAyMDBGQworOjEwNjIwMDAwQzM5MDUwQjkwODAwOEFFMDMyQzBEMUMwMDQzMEU4MTExMAorOjEwNjIxMDAwMDBFMkY1NThDMzkwQjAzMEU4MDcwMEMzQjAyMEU4MDFCMQorOjEwNjIyMDAwMDBDMzU2OEIzNkQwNzk4ODg0RDA3NzQ2ODFFNkZGMDE0QgorOjEwNjIzMDAwRkYwNkQ0Nzk4OTM2RDA3OTgxM0VENDc5RkUwMTc1MDg3QworOjEwNjI0MDAwNTZFODE0MDA1RUVCRjE5MDVFQzNCQTAyMDJFQzI0MDE0MgorOjEwNjI1MDAwNzQwNEJBMDYwMkVDQzM5MDgwM0VGNjc5MDA3NDA5NjBCQgorOjEwNjI2MDAwQjgwMTAwRTgyQ0VBNjE5MEJBMDIwMkVDQTgwNDc0Mjg5NAorOjEwNjI3MDAwOEIzNkQyNzk4MzNFRDQ3OTAwNzQxRDhBODREMDc3NDZEOAorOjEwNjI4MDAwODFFNkZGMDE4OTM2RDI3OUZGMEVENDc5QkEwNjAyRUU5MworOjEwNjI5MDAwQkEwMjAyRUNBODA0NzVEQ0ExRDQ3OUMzNTJCQTA2MDI5MgorOjEwNjJBMDAwRUU1QUMzOTA1MjUwQkEwMjAyRUNBODA0NzQwODU4NUEyRAorOjEwNjJCMDAwRThFOUZGRjlDMzkwNTg1QUY4QzM1MjUwQkEwMjAyRUMwOQorOjEwNjJDMDAwQTgwNDc0RkI1ODVBRThEM0ZGQzMzMDMxMzIzMzM0MzU1NQorOjEwNjJEMDAwMzYzNzM4Mzk0MTQyNDM0NDQ1NDY1MzUwOEFFMDgwRTREQQorOjEwNjJFMDAwMEZCQkNBNjJDMEU4MDQyRUQ3RThDRUZGOEFDNDJFRDdGRgorOjEwNjJGMDAwRThDN0ZGNTg1QkMzODZFMEU4REZGRjg2RTBFOERBRkYyNworOjEwNjMwMDAwQzM5MEJFQjI0RDUwMkVBQzNDMDA3NDA1RThBQkZGRUIyMQorOjEwNjMxMDAwRjU1OEMzOTBDODA4MDAwMDU2NTc4Qjc2MDRCRjA0MDA5OAorOjEwNjMyMDAwQzc0NkZDMDAwMEM3NDZGQTAwMDBDNzQ2RjgwMDAwODNENQorOjEwNjMzMDAwN0UwNjAwNzUwRTU2RThCNjBFNTkwQkMwNzUwNThCQzc2NAorOjEwNjM0MDAwRTk1QjAxOEI0NkZDODk0NkZFMEJGRjc1MDVCODAxMDAzMQorOjEwNjM1MDAwRUIwMjMzQzA1MDU2RThBNDBENTk1OUI0MDA4OTQ2RkNFRAorOjEwNjM2MDAwOEI1RUZDODNGQjA4NzYwM0U5MkIwMUQxRTMyRUZGQTdBQworOjEwNjM3MDAwQjI2NEI4MDMwMEU5MjYwMTgzN0VGQTAwNzQxNEM3NDZBQworOjEwNjM4MDAwRkEwMDAwOEE0NDU4OTg1MDhBNDQ1OTk4NTBFOEMyMEYzRAorOjEwNjM5MDAwNTk1OTgzN0VGODAwNzQwQUM3NDZGODAwMDA1NkU4OUJGNgorOjEwNjNBMDAwMDg1OTgzN0UwNjAwNzUwNThCQzdFOUYxMDA4M0ZGMDQ1OQorOjEwNjNCMDAwNzUwM0U5RTYwMDhCQzdFOUU0MDA4MzdFRkUwMDc1MDMwMAorOjEwNjNDMDAwQkYwMjAwRTlENTAwODM3RUZFMDA3NTAzQkYwMTAwRTkyRQorOjEwNjNEMDAwQzkwMDhCNUVGRTgzRkIwNzc2MDNFOTg2MDBEMUUzMkVCRQorOjEwNjNFMDAwRkZBN0EyNjQzM0ZGRTk3RjAwQkYwNDAwODA3QzU4MEY0MQorOjEwNjNGMDAwNzQyMjgzN0VGODAwNzUxQ0ZFNDQ1ODZBMDg1NkU4N0VCNQorOjEwNjQwMDAwMEM1OTU5OEE0NDU4MDQ4MDUwNTZFODcyMEM1OTU5Qzc5RgorOjEwNjQxMDAwNDZGQTAxMDA4MzdFRjgwMDc0MEFDNzQ2RjgwMDAwNTY2OQorOjEwNjQyMDAwRTgxOTA4NTlFQjQyQkYwNDAwODA3QzU4MDA3NDIyODNBRAorOjEwNjQzMDAwN0VGODAwNzUxQ0ZFNEM1ODZBMDg1NkU4NDEwQzU5NTkwNAorOjEwNjQ0MDAwOEE0NDU4MDQ4MDUwNTZFODM1MEM1OTU5Qzc0NkZBMDExOQorOjEwNjQ1MDAwMDA4MzdFRjgwMDc0MEFDNzQ2RjgwMDAwNTZFOERDMDc5RgorOjEwNjQ2MDAwNTlFQjA1QkYwNDAwRUIwMEVCMzFCRjA0MDBFQjJDQzc3OAorOjEwNjQ3MDAwNDZGODAxMDA2QTA4NTZFODA1MEM1OTU5ODA3QzU4MDkwRAorOjEwNjQ4MDAwN0QwNEIwMEZFQjAyQjAwMDA0ODA1MDU2RThGMDBCNTlDOQorOjEwNjQ5MDAwNTlCRjA0MDBFQjA1QkYwNDAwRUIwMEU5QTVGRTVGNUVGOQorOjEwNjRBMDAwQzlDM0U0NjM2MzY0NjM2NDYzNjQ2MzY0RTk2MzI2NjQyNworOjEwNjRCMDAwNTE2NDc4NjNCQTYzQzY2Mzk2NjREMjYzNkE2NDZBNjQzQgorOjEwNjRDMDAwNkY2NDcyNjNDODA4MDAwMDU2NTc4Qjc2MDQ4QjdFMDg5MQorOjEwNjREMDAwNkEwMTU2RThBOTBCNTk1OThBNDYwNkMwRTAwNjA0ODBBRAorOjEwNjRFMDAwNTA1NkU4OUEwQjU5NTlDNzQ2RkUwMDAwODk3RUY4RUJEMgorOjEwNjRGMDAwMDNGRjQ2RkU4QjVFRjhGRjQ2Rjg4MDNGMDA3NUYyODM4RgorOjEwNjUwMDAwN0VGRTEwN0QyNUI4MTAwMDJCNDZGRUQxRjg4OTQ2RkM5MgorOjEwNjUxMDAwQzc0NkZBMDAwMEVCMEI2QTIwNTZFODYyMEI1OTU5RkY5OAorOjEwNjUyMDAwNDZGQThCNDZGQTNCNDZGQzdDRURFQjBDOEJERjQ3OEE0OAorOjEwNjUzMDAwMDc1MDU2RTg0OTBCNTk1OTgwM0QwMDc1RUY2QTAyNTZERAorOjEwNjU0MDAwRTgzQzBCNTk1OUVCMDA1RjVFQzlDM0M4MDQwMDAwNTYxNAorOjEwNjU1MDAwNTc4QjdFMDRDNzQ2RkUwMDAwQkUxNDAwRTkwOTAxOEI3QworOjEwNjU2MDAwNUVGRTgzQzMwNDJCREY4QTg3QUMwQjg4NDQ1QUM2NDQ4MworOjEwNjU3MDAwNTgwODhBNDZGRTg4NDQ1OUM3NDQwNjAwMDBDNjQ0MTk5NAorOjEwNjU4MDAwMDBDNjQ0MUEwMEM2NDQxQjAwQzY0NDFEMERDNjQ0MUU2NgorOjEwNjU5MDAwMDNDNjQ0MUYwMEM2NDQyMDAwQzY0NDIxMDBDNjQ0NUIxNQorOjEwNjVBMDAwMDBDNjQ0NUQwMEM2NDQ1RTAwQzY0NDVGMDBDNjQ0NjA0OQorOjEwNjVCMDAwMDBDNzQ2RkMwMDAwRUIwRDhCNUVGQ0QxRTNDNzQwMzAwQQorOjEwNjVDMDAwMDAwMEZGNDZGQzgzN0VGQzEwN0NFREM3NDZGQzAwMDAwQgorOjEwNjVEMDAwRUIwQThCNUVGQ0M2NDA1MDAwRkY0NkZDODM3RUZDMDQ0OQorOjEwNjVFMDAwN0NGMEM3NDQ1NDAwMDBDNzQ0NTYwMDAwOEE0NDVBOThCRgorOjEwNjVGMDAwQkFGODAwMjNEMEI4MDUwMDBCQzI4OTQ2RkM5Q0ZBOEE4MQorOjEwNjYwMDAwNDZGQ0JBRkUwMEVFQkEwMDAwRUM5RDI0MDg4ODQ2RkM2OQorOjEwNjYxMDAwODM3RUZDMDA3NTAyRUI0QUZGNzZGRUU4N0EwQzU5NjgyRgorOjEwNjYyMDAwMzUwMjU2RTgzMjBBNTk1OTBCQzA3NTM0NjgzODAyNTY5QgorOjEwNjYzMDAwRTgyNTBBNTk1OTBCQzA3NTI3Njg0MjAyNTZFODE4MEExRQorOjEwNjY0MDAwNTk1OTBCQzA3NTFBNjg0QzAyNTZFODBCMEE1OTU5MEI3OAorOjEwNjY1MDAwQzA3NTBENjg1NjAyNTZFOEZFMDk1OTU5MEJDMDc0MDIwMAorOjEwNjY2MDAwRUIwMEZGNDZGRTgzQzY2MjM5N0VGRTdEMDNFOUVGRkU0NgorOjEwNjY3MDAwRUIwMDVGNUVDOUMzQzgwODAwMDA1NjU3OEI0NjA0QkFEQQorOjEwNjY4MDAwNjIwMEY3RUEwNTE0MDA4QkYwODM3RTA2MDA3NDA1QjhGQgorOjEwNjY5MDAwMTAwMEVCMDNCODA4MDA4OTQ0MDQ4QTQ2MDg4ODQ0NUM2QgorOjEwNjZBMDAwNTZFODU5MDQ1OThCRjg4QkM3ODk0NDU2ODk0NDU0OEE1MworOjEwNjZCMDAwNDQ1RDg4NDQyRjBCRkY3NTFENjhDMjBGNkEwMTU2RThDMAorOjEwNjZDMDAwMDJGRTgzQzQwNkVCMDA2QTAxNTZFODQ3RkM1OTU5MEJFOQorOjEwNjZEMDAwQzA3NUY0QkYwMTAwODk3RUZBQjkwNTAwQkJFOTZBMkVENgorOjEwNjZFMDAwOEIwNzNCNDZGQTc0MDc0MzQzRTJGNEU5QTQwMzJFRkYwOQorOjEwNjZGMDAwNjcwQUM3NDQwNjAyMDBDNzQ0MDhGNDA4OEI1RTA0RDE0OQorOjEwNjcwMDAwRTM4Qjg3RkMwODg5NDQwQTMzQzA4QkY4ODk0NDU0RTkzOQorOjEwNjcxMDAwODAwMzU2RThCQjA1NTlCRjAxMDA4QTQ0NUQ4ODQ0NjA4OAorOjEwNjcyMDAwRTk2RjAzODM3QzA0MDg3NTMwODA3QzVDMDE3NTE1OEFGMQorOjEwNjczMDAwNDQ1REI0MDBEMUUwOEJEOEZGQjdFNDA4NTZFOEY3MDgxMQorOjEwNjc0MDAwNTk1OUVCMTM4QTQ0NURCNDAwRDFFMDhCRDhGRkI3QzQyQworOjEwNjc1MDAwMDg1NkU4RTIwODU5NTlFQjJFODA3QzVDMDE3NTE1OEFEMQorOjEwNjc2MDAwNDQ1REI0MDBEMUUwOEJEOEZGQjdENDA4NTZFOEM3MDgyMQorOjEwNjc3MDAwNTk1OUVCMTM4QTQ0NURCNDAwRDFFMDhCRDhGRkI3QjQwQworOjEwNjc4MDAwMDg1NkU4QjIwODU5NTk2QTAxNTZFODg3RkI1OTU5OEJFRgorOjEwNjc5MDAwRDg4M0ZCMDM3NzJBRDFFMzJFRkZBN0UxNkFCRjAxMDA2QworOjEwNjdBMDAwOEE0NDVEODg0NDVFRUIxODhBNDQ1RDA0RkYyNDA3ODhCMAorOjEwNjdCMDAwNDQ1REVCMEM4QTQ0NURGRUMwMjQwNzg4NDQ1REVCMDAxOQorOjEwNjdDMDAwRTlDRjAyOEE0NDVEQjQwMEQxRTA4QkQ4RkZCN0ZEMDI2NworOjEwNjdEMDAwNTZFODYzMDg1OTU5NjgxRDAzNTZFODVBMDg1OTU5NkExQQorOjEwNjdFMDAwMDE1NkU4MkZGQjU5NTk4QkQ4ODNGQjAzNzczNkQxRTM0OQorOjEwNjdGMDAwMkVGRkE3RDk2QUJGMDEwMDhBNDQ1RDg4NDQ1RkVCMjQ1RAorOjEwNjgwMDAwOEE0NDVEMDRGRjhBNTQwNDgwQzJGRjIyQzI4ODQ0NUQyQQorOjEwNjgxMDAwRUIxMjhBNDQ1REZFQzA4QTU0MDQ4MEMyRkYyMkMyODgwMworOjEwNjgyMDAwNDQ1REVCMDBFOTZCMDI4QjVDMDY4M0MzRkVEMUUzOEIxNgorOjEwNjgzMDAwNDAwODg5MDQ4QjFDRkY3NzA2NkEwMDU2RTg4NUZDODNCNAorOjEwNjg0MDAwQzQwNjhCNUMwNjRCRDFFMzhCNDAwODg5NDQwMjhCNUMwOQorOjEwNjg1MDAwMDJGRjc3MDY2QTAxNTZFODZBRkM4M0M0MDY2QTAxNTY5RAorOjEwNjg2MDAwRThCMUZBNTk1OThCRDg4M0ZCMDM3NjAzRTkxRjAyRDFBQgorOjEwNjg3MDAwRTMyRUZGQTdEMTZBOEI1QzAyOEI0NzA0ODk0NDAyOEIwRAorOjEwNjg4MDAwNUMwMjgwM0Y0NDc1MEQ4QjVDMDI4QTQ3MDFCNDAwM0I3QgorOjEwNjg5MDAwNDQwNDdERTI4QjQ2MDREMUUwOEIxQzAzRDg4QjQ0MDI3OAorOjEwNjhBMDAwODk0NzA4OEI1QzA2NEJEMUUzOEI0NDAyODk0MDA4RTk5OQorOjEwNjhCMDAwREUwMThCNUMwMjhCNDcwMjg5NDQwMjhCNUMwMjgwM0ZDNQorOjEwNjhDMDAwNDQ3NTBEOEI1QzAyOEE0NzAxQjQwMDNCNDQwNDdERTJCMQorOjEwNjhEMDAwOEI0NjA0RDFFMDhCMUMwM0Q4OEI0NDAyODk0NzA4OEI3QworOjEwNjhFMDAwNUMwNjRCRDFFMzhCNDQwMjg5NDAwOEU5QTIwMUJGMDE1OQorOjEwNjhGMDAwMDBFOTlDMDE4QjVDMDI4QTA3QjQwMDg5NDZGOEI5MEM1OAorOjEwNjkwMDAwMDBCQkExNkEyRThCMDczQjQ2Rjg3NDA3NDM0M0UyRjRCMQorOjEwNjkxMDAwRTk3NzAxMkVGRjY3MTg4QjQ2MDREMUUwOEI1QzAyMDNGOAorOjEwNjkyMDAwRDg4QjQ3MDg4QjVDMDZGRjQ0MDZEMUUzODk0MDA4OEI2RgorOjEwNjkzMDAwMUM4MDdGMDEwMDc0MTI4QjVDMDI4QTQ3MDE4QjFDOEFDOQorOjEwNjk0MDAwNTcwMUI2MDA4QkRBODg0MDE4RTk0MDAxRkY0QzA2RTk5MAorOjEwNjk1MDAwM0EwMThCNUMwMjhBNDcwMThCMUM4QTU3MDFCNjAwOEI3NworOjEwNjk2MDAwREE4ODQwMThFOTI1MDE4QjVDMDI4QTQ3MDE4QjFDOEE3MgorOjEwNjk3MDAwNTcwMUI2MDA4QkRBODg0MDE4RkY0QzA2RTkwRDAxOEJGMQorOjEwNjk4MDAwNUMwMjhBNDcwMThCMUM4QTU3MDFCNjAwOEJEQTMwNDBDMworOjEwNjk5MDAwMThFOUY4MDBCOEYwMTA4QkY4ODk0NDU0OEE0NDVGODhFRAorOjEwNjlBMDAwNDQ1REU5RTcwMDhBNDQxQzk4M0QwMjAwNzQwNzNEMDNGQQorOjEwNjlCMDAwMDA3NDAyRUIwN0M3NDZGRTAwMDBFQjJCOEE0NDFDOThDQworOjEwNjlDMDAwRDFFMDhCRDhGRkI3NjkwMjU2RTg2QjA2NTk1OTZBMDFDNgorOjEwNjlEMDAwNTZFODQwRjk1OTU5ODk0NkZFODM3RUZFMDA3NDA2ODNDNQorOjEwNjlFMDAwN0VGRTAzNzVFOUVCMDA4MzdFRkUwMzc0NjI4QTQ0MUMxRAorOjEwNjlGMDAwOThEMUUwOEJEOEZGQjc2RDAyNTZFODNBMDY1OTU5NTY0MAorOjEwNkEwMDAwRTg0RDk3NTk4OTQ2RkM4QjVFRkM4M0VCRkU4M0ZCMDNDNAorOjEwNkExMDAwNzczM0QxRTMyRUZGQTc5OTZBNjhBQzAyNTZFODE3MDZEMAorOjEwNkEyMDAwNTk1OUVCMjM2ODhGMDI1NkU4MEMwNjU5NTlFQjE4Njg0MAorOjEwNkEzMDAwNzUwMjU2RTgwMTA2NTk1OUVCMEQ2OEM2MDI1NkU4RjY4QworOjEwNkE0MDAwMDU1OTU5RUIwMkVCMDA2QTAxNTZFOEM3Rjg1OTU5QkZERQorOjEwNkE1MDAwMDEwMEVCMzg2OEREMDI1NkU4REMwNTU5NTk2QTAxNTYzOQorOjEwNkE2MDAwRThCMUY4NTk1OUJGMDEwMEVCMjJCOEQwMzA4QkY4ODk1MgorOjEwNkE3MDAwNDQ1NDhBNDQ2MDg4NDQ1REVCMTJCOEUwMjA4QkY4ODk2NgorOjEwNkE4MDAwNDQ1NDhBNDQ1RTg4NDQ1REVCMDJFQjAwRUIwMkVCMDA2OQorOjEwNkE5MDAwRUIwMEU5NDFGQzVGNUVDOUMzMTk2QTI0NkEyRjZBM0FCOAorOjEwNkFBMDAwNkEwMDAwMDEwMDAyMDAwNDAwNDEwMDQyMDA0MzAwNDQ2QgorOjEwNkFCMDAwMDA4MDAwODEwMDgyMDBGRjAwMTc2OTU0NkE3QTZBQTU4RAorOjEwNkFDMDAwNjk1MjY5OTQ2OTZBNkE2NzY5NTI2OTdGNjk2NzY5NEM0MgorOjEwNkFEMDAwNjlGNDY4NzY2OEIyNjhFRTY4RjU2NzAwNjgxMjY4RjU3MAorOjEwNkFFMDAwNjc5RDY3QTg2N0I0Njc5RDY3MDAwMDAxMDBGMDEwRTAyQworOjEwNkFGMDAwMjBEMDMwMjc2OEYyNjZDMzY3MjM2NzEyNjdDODA0MDA5NgorOjEwNkIwMDAwMDA1NjU3OEI3NjA0OEE0NDU5OTg4OTQ2RkM2QTA5OEI0QgorOjEwNkIxMDAwNDZGQzA1ODQwMTUwRTg5MzA4NTk1OThCRjg4QkM3MjUyQQorOjEwNkIyMDAwMDBGMDNEMDAxMDc1NTU4QkM3MjVGMDAwM0RGMDAwNzU1NQorOjEwNkIzMDAwNEI4QkM3MjUwMDBGQzFGODA4ODk0NkZFOEI0NDA0M0JFOAorOjEwNkI0MDAwNDZGRTdEMDUzM0MwRTlFRjAwOEJDNzI1MEYwMEJBMEY2NQorOjEwNkI1MDAwMDAyQkQwM0I1NkZFNzQwNTMzQzBFOURCMDBDNzQ0MDI2RQorOjEwNkI2MDAwMDQwOThBNDZGRTg4NDQ1Rjg4NDQ1RDhCNUVGQ0QxRTM1RAorOjEwNkI3MDAwQzc4N0ZDMDgwNDA5QjhGMDEwRTlCQzAwOEJDNzI1MDBFMgorOjEwNkI4MDAwRjAzRDAwMjA3NTUyOEJDNzI1RjAwMDNERTAwMDc1NDhCMAorOjEwNkI5MDAwOEJDNzI1MDAwRkMxRjgwODg5NDZGRTgzN0VGRTA4N0U1QworOjEwNkJBMDAwMDUzM0MwRTk5MjAwOEJDNzI1MEYwMEJBMEYwMDJCRDAyOAorOjEwNkJCMDAwM0I1NkZFNzQwNTMzQzBFQjdGOTBDNzQ0MDIwQzA5OEEzNAorOjEwNkJDMDAwNDZGRTg4NDQ1RTg4NDQ1RDhCNUVGQ0QxRTNDNzg3RkM0QgorOjEwNkJEMDAwMDgwQzA5QjhFMDIwRUI2MDhCQzcyNTAwRjAzRDAwMzBDMQorOjEwNkJFMDAwNzU1MjhCQzcyNUYwMDAzREQwMDA3NTQ4OEJDNzI1MDAzNgorOjEwNkJGMDAwMEZDMUY4MDg4OTQ2RkU4QjQ0MDQzQjQ2RkU3RDA0MzNGMgorOjEwNkMwMDAwQzBFQjM1OEJDNzI1MEYwMEJBMEYwMDJCRDAzQjU2RkVDQgorOjEwNkMxMDAwNzQwNDMzQzBFQjIyQzc0NDAyMTQwOThBNDZGRTg4NDQzOAorOjEwNkMyMDAwNjA4ODQ0NUQ4QjVFRkNEMUUzQzc4N0ZDMDgxNDA5QjgxQgorOjEwNkMzMDAwRDAzMEVCMDQzM0MwRUIwMDVGNUVDOUMzQzgwNjAwMDA3MAorOjEwNkM0MDAwNTY4Qjc2MDQ2QTA4NTZFODM1MDQ1OTU5OEE0NDU4MDQyNAorOjEwNkM1MDAwODA1MDU2RTgyOTA0NTk1OThCNDQ1NDNCNDQ1Njc1MEFEMAorOjEwNkM2MDAwOEE0NDVEM0E0NDJGNzUwMkVCNjQ4QjQ0NTQ4OTQ0NTY0MAorOjEwNkM3MDAwOEI1QzAyOEE0NzAxODg0NDJGOEE0NDVEQjQwMEMxRTBERQorOjEwNkM4MDAwMDg4QjU0NTQwQkQwOEE0NDVEQjQwMEJCMEYwMDJCRDg0MgorOjEwNkM5MDAwMEJEMzg5NTZGRTZBMTA4QTQ0NTk5ODA1MDQwMDk5MDU1OQorOjEwNkNBMDAwNDAwMTgzRDIwMDUyNTBFODU0MDg4M0M0MDY4OTU2RkM0MAorOjEwNkNCMDAwODk0NkZBOEI0NkZFMDk0NkZBODM0RUZDMDA2QTE5RkZBNAorOjEwNkNDMDAwNzZGQ0ZGNzZGQUU4NzMwNzgzQzQwNkU4RkUwNzVFQzkyMAorOjEwNkNEMDAwQzNDODFDMDAwMDU2NTc4QjVFMDQ4QTQ3NTk5ODhCRjAzNgorOjEwNkNFMDAwOEI1RTA0OEE0NzVEQjQwMDg5NDZFNjgzN0VFNjAwN0RCQworOjEwNkNGMDAwMEE4QjVFMDQ4QjQ3MDQ0ODg5NDZFNjhCNUUwNDhCNDcwQgorOjEwNkQwMDAwMDQzQjQ2RTY3RjA1Qzc0NkU2MDAwMDhCNUUwNDhBNDZFNAorOjEwNkQxMDAwRTY4ODQ3NUQ4QkRFRDFFMzhCOUY1OTAyQzY0NzAyMjA5MAorOjEwNkQyMDAwOEJERUQxRTM4QjlGNTkwMkM2NDcwMzMwOEJERUQxRTM2NAorOjEwNkQzMDAwOEI5RjYxMDJDNjQ3MDIyMDhCREVEMUUzOEI5RjYxMDJFRAorOjEwNkQ0MDAwQzY0NzAzMzA4QjQ2RTY4OTQ2RkE4MzdFRkEwMDc0MThGQworOjEwNkQ1MDAwOEI0NkZBQkIwQTAwMzNEMkY3RjM4MEMyMzA4QkRFRDEwOAorOjEwNkQ2MDAwRTM4QjlGNTkwMjg4NTcwM0JCMEEwMDhCNDZGQTMzRDI0NAorOjEwNkQ3MDAwRjdGMzg5NDZGQTgzN0VGQTAwNzQxODhCNDZGQUJCMEE0OQorOjEwNkQ4MDAwMDAzM0QyRjdGMzgwQzIzMDhCREVEMUUzOEI5RjU5MDIwMAorOjEwNkQ5MDAwODg1NzAyOEI0NkU2ODk0NkZBODM3RUZBMDA3NDE4OEI4MAorOjEwNkRBMDAwNDZGQUJCMEEwMDMzRDJGN0YzODBDMjMwOEJERUQxRTM2MAorOjEwNkRCMDAwOEI5RjYxMDI4ODU3MDNCQjBBMDA4QjQ2RkEzM0QyRjdEOAorOjEwNkRDMDAwRjM4OTQ2RkE4MzdFRkEwMDc0MTg4QjQ2RkFCQjBBMDBGMAorOjEwNkREMDAwMzNEMkY3RjM4MEMyMzA4QkRFRDFFMzhCOUY2MTAyODgyMAorOjEwNkRFMDAwNTcwMjhCNUVFNkQxRTNGRkI3MTIwMjZBMDBGRjc2MDQxQQorOjEwNkRGMDAwRThEMUY2ODNDNDA2NjhEMzBGNkEwMUZGNzYwNEU4QzNCRQorOjEwNkUwMDAwRjY4M0M0MDZGRjc2RTY1NkU4MDE5MzU5NTk4OTU2RjI4RgorOjEwNkUxMDAwODk0NkYwRkY3NkU2NTZFODE0OTM1OTU5ODk1NkVFODk2QgorOjEwNkUyMDAwNDZFQzlDRkFDNDVFRjAyNjhCMDc4OTQ2RUFDNDVFRUMwOQorOjEwNkUzMDAwMjY4QjA3ODk0NkU4QkE1MEZGRUQ4OTQ2RkU5REM3NDY3NgorOjEwNkU0MDAwRTQwMTAwRThFRUEwQkE1MEZGRUQ4OTQ2RkM4QjQ2RkM1OQorOjEwNkU1MDAwMkI0NkZFM0RFODAzNzMwM0U5ODAwMTlDRkFCQTUwRkYxQworOjEwNkU2MDAwRUQ4OTQ2RkM4QjQ2RkMyQjQ2RkU4OTQ2RjhDNDVFRjA1NQorOjEwNkU3MDAwMjY4QjA3MkI0NkVBODk0NkY2QzQ1RUYwMjY4QjA3ODlFNworOjEwNkU4MDAwNDZFQUM0NUVFQzI2OEIwNzJCNDZFODg5NDZGNEM0NUVDRQorOjEwNkU5MDAwRUMyNjhCMDc4OTQ2RThCQTUwRkZFRDg5NDZGRTlEODFCNgorOjEwNkVBMDAwN0VGOEU4MDM3NjFDRkY3NkY4RkY3NkY2RTg3NjAxNTk1RgorOjEwNkVCMDAwNTk4OTQ2RjZGRjc2RjhGRjc2RjRFODY4MDE1OTU5ODk1MgorOjEwNkVDMDAwNDZGNEJGMEUwMEVCMTc4QkRFRDFFMzhCOUY1OTAyQzY1MQorOjEwNkVEMDAwMDEyMDhCREVEMUUzOEI5RjYxMDJDNjAxMjA0NzgzRkYzNworOjEwNkVFMDAwMTE3NkU0OEJERUQxRTM4QjlGNTkwMkM2NDcwRDMwOEJDMAorOjEwNkVGMDAwREVEMUUzOEI5RjYxMDJDNjQ3MEQzMDgzN0VGNjA5NzdCMgorOjEwNkYwMDAwMDVCODBEMDBFQjI2ODM3RUY2NjM3NzA1QjgwRTAwRUIxRgorOjEwNkYxMDAwMUI4MTdFRjZFNzAzNzcwNUI4MEYwMEVCMEY4MTdFRjY0NQorOjEwNkYyMDAwMEYyNzc3MDVCODEwMDBFQjAzQjgxMTAwOEJGOEVCMjU5RAorOjEwNkYzMDAwOEI0NkY2QkIwQTAwMzNEMkY3RjM4MEMyMzA4QkRFRDEyQQorOjEwNkY0MDAwRTM4QjlGNTkwMjg4MTE0RkJCMEEwMDhCNDZGNjMzRDI2MAorOjEwNkY1MDAwRjdGMzg5NDZGNjgzN0VGNjAwNzVENTgzN0VGNDA5NzdDQworOjEwNkY2MDAwMDVCODBEMDBFQjI2ODM3RUY0NjM3NzA1QjgwRTAwRUJDMQorOjEwNkY3MDAwMUI4MTdFRjRFNzAzNzcwNUI4MEYwMEVCMEY4MTdFRjRFOQorOjEwNkY4MDAwMEYyNzc3MDVCODEwMDBFQjAzQjgxMTAwOEJGOEVCMjUzRAorOjEwNkY5MDAwOEI0NkY0QkIwQTAwMzNEMkY3RjM4MEMyMzA4QkRFRDFDQworOjEwNkZBMDAwRTM4QjlGNjEwMjg4MTE0RkJCMEEwMDhCNDZGNDMzRDJGQQorOjEwNkZCMDAwRjdGMzg5NDZGNDgzN0VGNDAwNzVENThCREVEMUUzRkZDOQorOjEwNkZDMDAwQjc1OTAyRkY3NjA0RTg2RTAwNTk1OThCREVEMUUzRkYxMgorOjEwNkZEMDAwQjc2MTAyRkY3NjA0RTg1RTAwNTk1OTZBMDBGRjc2MDQ0MworOjEwNkZFMDAwRTgzMUYzNTk1OThCRDg4M0ZCMDQ3NzFGRDFFMzJFRkY4NworOjEwNkZGMDAwQTcxQjcwRUIyMkM3NDZFNDAwMDBGRjRFRTZFQjBDQzc3MAorOjEwNzAwMDAwNDZFNDAwMDBGRjQ2RTZFQjAyRUIwMDgzN0VFNDAwNzRGQQorOjEwNzAxMDAwMDNFOTJBRkVFOUQ0RkM1RjVFQzlDM0YzNkZGNTZGRkY5NQorOjEwNzAyMDAwNkZGMzZGMDk3MDU1OEJFQzhCNDYwNEI5RTgwM0Y3RTFGOQorOjEwNzAzMDAwOEI0RTA2RjdGMTVEQzM1NThCRUM1NjhCNzYwNkVCMEU0NworOjEwNzA0MDAwOEJERTQ2OEEwNzUwRkY3NjA0RTgzMzAwNTk1OTgwM0NBRQorOjEwNzA1MDAwMDA3NUVERUIwMDVFNURDMzU1OEJFQzU2OEI3NjA2RUI1MQorOjEwNzA2MDAwMTQ4QkRFNDY4QTA3NTBGRjc2MDRFODQ1MDA1OTU5MEIxOQorOjEwNzA3MDAwQzA3NDAyRUIwNzgwM0MwMDc1RTdFQjAwNUU1REMzQzg5RgorOjEwNzA4MDAwMDIwMDAwNTY4Qjc2MDQ4QTQ0NUE5ODg5NDZGRTlDRkE4MAorOjEwNzA5MDAwOEE0NkZFQkFGRTAwRUVCQTAyMDBFQ0E4MDI3NDA2OUQxMworOjEwNzBBMDAwRTg5MTlFRUJFOUJBMDAwMDhBNDYwNkVFOURFQjAwNUU5MQorOjEwNzBCMDAwQzlDM0M4MDQwMDAwNTY4Qjc2MDQ4QTQ0NUE5ODg5NDY4RQorOjEwNzBDMDAwRkVFOEU2QTE4OTQ2RkNFOEUwQTEyQjQ2RkMzREI4MEJCMgorOjEwNzBEMDAwNzYwNUI4MDEwMEVCMjM5Q0ZBOEE0NkZFQkFGRTAwRUU2NAorOjEwNzBFMDAwQkEwMjAwRUNBODAyNzQwNjlERTg0ODlFRUJEOUJBMDBFQgorOjEwNzBGMDAwMDA4QTQ2MDZFRTlEMzNDMEVCMDA1RUM5QzNDODA0MDA5QgorOjEwNzEwMDAwMDA1NjU3OEI3NjA0ODM3RTA2MDA3NDA3NTZFODAzMDEwOQorOjEwNzExMDAwNTlFQjA1NTZFOEEyMDA1OTg4NDZGRjgwN0VGRjA4NzdBNAorOjEwNzEyMDAwMDY4QTQ2RkZFOTg0MDA4MDdFRkYwRjc2MDNFQjc5OTBBNAorOjEwNzEzMDAwOEE0NkZGQjQwMDJEMEEwMDhCRDg4M0ZCMDQ3NzY3RDEwMQorOjEwNzE0MDAwRTMyRUZGQTdBRjcxQjAwMEVCNjE1NkU4NkIwMDU5QjRCNgorOjEwNzE1MDAwMDAyNTBGMDA4OTQ2RkM1NkU4NUUwMDU5QjQwMDhCRjgwNAorOjEwNzE2MDAwNTZFODU1MDA1OUI0MDBDMUUwMDg4QkQ3MDNEMDhCRkExQworOjEwNzE3MDAwOEI1RUZDRDFFMzg5NzgzMEVCMkU1NkU4M0IwMDU5ODhEMgorOjEwNzE4MDAwNDQ1QkVCMjQ1NkU4MzEwMDU5ODg0NDUwNTZFODI5MDAwNgorOjEwNzE5MDAwNTk4ODQ0NTE1NkU4MjEwMDU5ODg0NDUyNTZFODE5MDA0QworOjEwNzFBMDAwNTk4ODQ0NTNFQjAyRUIwMEU5NUJGRjVGNUVDOUMzNDZCRAorOjEwNzFCMDAwNzFBNjcxNEE3MTdBNzE4NDcxQzgwNDAwMDA1NjhCNzY4OQorOjEwNzFDMDAwMDQ4QTQ0NUE5ODg5NDZGRTlDRkE4QTQ2RkVCQUZFMDAxMgorOjEwNzFEMDAwRUVCQTAyMDBFQ0E4MDE3NTA2OURFODU3OURFQkU5QkFFRQorOjEwNzFFMDAwMDAwMEVDODg0NkZEOUQ4QTQ2RkRFQjAwNUVDOUMzQzhFMQorOjEwNzFGMDAwMDIwMDAwNTY4Qjc2MDQ4QTQ0NUE5ODg5NDZGRTlDRkEwRgorOjEwNzIwMDAwOEE0NkZFQkFGRTAwRUVCQTAyMDBFQzMyRTQyNDAxOUQ4QQorOjEwNzIxMDAwNUVDOUMzQzgwNjAwMDA1NjhCNzYwNDhBNDQ1QTk4ODkxMgorOjEwNzIyMDAwNDZGRUU4ODVBMDg5NDZGQUU4N0ZBMDJCNDZGQTNEQjhERAorOjEwNzIzMDAwMEI3NjA0QjAwOEVCMjQ5Q0ZBOEE0NkZFQkFGRTAwRUVGOAorOjEwNzI0MDAwQkEwMjAwRUNBODAxNzUwNjlERThFODlDRUJEQUJBMDBFQQorOjEwNzI1MDAwMDBFQzg4NDZGRDlEOEE0NkZERUIwMDVFQzlDMzU1OEI1OAorOjEwNzI2MDAwRUM1NjhCNTYwNDhBNDYwNkVFMzNGNkVCMDM1MDU4NDYyRQorOjEwNzI3MDAwODNGRTE0N0NGODVFNURDM0M4MDIwMDAwNTY4QjU2MDQ4MgorOjEwNzI4MDAwRUM4ODQ2RkYzM0Y2RUIwMzUwNTg0NjgzRkUxNDdDRjgzNworOjEwNzI5MDAwOEE0NkZGRUIwMDVFQzlDM0M4MDIwMDAwNTY1NzhCNzZEMgorOjEwNzJBMDAwMDQ4MzNFQjAwQjAwNzUxRkJBODgwMUIwMDBFRUJBODZBOQorOjEwNzJCMDAwMDFCMDAwRUU2QTA5NkEwMDY4MzAwMUU4N0QwMTgzQzQwQworOjEwNzJDMDAwMDZDNzA2QjAwQjAxMDA2QTA5OEJDNjA1ODAwMTUwRThBRAorOjEwNzJEMDAwREEwMDU5NTk4QkY4OEJDN0MxRTgwQzI1MEYwMDg5NDY5NQorOjEwNzJFMDAwRkU4QkM3QzFFODA4MjUwRjAwOEI1NkZFODNGMjBDM0JDRQorOjEwNzJGMDAwQzI3NTIxOEJDN0MxRTgwNDI1MEYwMDhCNTZGRTgzRjJBRgorOjEwNzMwMDAwMDYzQkMyNzUwRjhCQzcyNTBGMDA4QjU2RkU4M0YyMDkxMworOjEwNzMxMDAwM0JDMjc0MEQ2QTA3NTZFODM4MDA1OTU5Qzc0NkZFMDc0NAorOjEwNzMyMDAwMDA4QTQ2RkUwNDgwQTIzMzAyOEJDNkJBNjIwMEY3RUFFNgorOjEwNzMzMDAwOEE1NkZFOEJEODg4OTc2QzAwNjgzMjAyOEJDNkJBNjI3OAorOjEwNzM0MDAwMDBGN0VBMDUxNDAwNTBFODBFRkQ1OTU5RUIwMDVGNUVBNgorOjEwNzM1MDAwQzlDM0M4MDIwMDAwNTY4Qjc2MDY4M0U2MEY4QkM2QzFGMAorOjEwNzM2MDAwRTAwQzhCRDY4M0YyMENDMUUyMDgwQkMyOEJENjgzRjIwMQorOjEwNzM3MDAwMDZDMUUyMDQwQkMyOEJENjgzRjIwOTBCQzI4OTQ2RkUxQQorOjEwNzM4MDAwNkExOTZBMTA4QjQ2MDQ5OTA1NDAwMTgzRDIwMDUyNTA1NQorOjEwNzM5MDAwRTg2QjAxODNDNDA2MEI0NkZFODNDQTAwNTI1MEU4OUE4QworOjEwNzNBMDAwMDA4M0M0MDZFODI1MDFFQjAwNUVDOUMzNTU4QkVDNTY4QgorOjEwNzNCMDAwNTczM0ZGNkEwMTY4ODYwMUU4QTNGRTU5NTlCMTEwMkFDNAorOjEwNzNDMDAwNEUwNkQzNjYwNDMzRjZFQjJFODE3RTA0MDA4MDcyMDRGMQorOjEwNzNEMDAwQjAwMUVCMDJCMDAwNTA2ODg4MDFFODgxRkU1OTU5NkE5QgorOjEwNzNFMDAwMDM2ODg2MDFFODc3RkU1OTU5NkEwMTY4ODYwMUU4NkRFRAorOjEwNzNGMDAwRkU1OTU5RDE2NjA0NDYzQjc2MDY3Q0NEMzNGNkVCMjQyNAorOjEwNzQwMDAwRDFFNzZBMDM2ODg2MDFFODU0RkU1OTU5NkEwMTY4ODYyMworOjEwNzQxMDAwMDFFODRBRkU1OTU5Njg4ODAxRTg1Q0ZFNTk5ODI1MDEzRgorOjEwNzQyMDAwMDAwQkY4NDY4M0ZFMTA3Q0Q3NkEwMDY4ODYwMUU4MkRDMQorOjEwNzQzMDAwRkU1OTU5OEJDN0VCMDA1RjVFNURDMzU1OEJFQzU2NTcwOQorOjEwNzQ0MDAwOEI3RTA4NkEwMTY4ODYwMUU4MTNGRTU5NTlCODIwMDA0RQorOjEwNzQ1MDAwMkJDNzUwRkY3NjA2RkY3NjA0RThBMjAwODNDNDA2ODk5NgorOjEwNzQ2MDAwNTYwNjg5NDYwNDMzRjZFQjQ3ODE3RTA2MDA4MDcyMEM4RgorOjEwNzQ3MDAwNzUwNjgzN0UwNDAwNzIwNEIwMDFFQjAyQjAwMDUwNjgxMAorOjEwNzQ4MDAwODgwMUU4RDlGRDU5NTk2QTAzNjg4NjAxRThDRkZENTk5QQorOjEwNzQ5MDAwNTk2QTAxNjg4NjAxRThDNUZENTk1OTZBMDFGRjc2MDZGNworOjEwNzRBMDAwRkY3NjA0RTg1ODAwODNDNDA2ODk1NjA2ODk0NjA0NDZEOAorOjEwNzRCMDAwM0JGNzdDQjU2QTAwNjg4NjAxRThBMkZENTk1OTZBMDA2RAorOjEwNzRDMDAwNjg4NjAxRTg5OEZENTk1OTVGNUU1REMzNTU4QkVDNTY5RgorOjEwNzREMDAwNkEwMTY4ODYwMUU4ODZGRDU5NTkzM0Y2RUIwMDY4ODgzMQorOjEwNzRFMDAwMDFFODk0RkQ1OUE4MDE3NTA4OEJDNjQ2M0Q2NDAwN0NFRgorOjEwNzRGMDAwRUQ2QTAwNjg4NjAxRTg2NUZENTk1OTVFNURDM0M4MDQwMAorOjEwNzUwMDAwMDAwMDhCNDYwNDhCNTYwNjhCNEUwOEUzMDZEMUUwRDE3MworOjEwNzUxMDAwRDJFMkZBODk0NkZDODk1NkZFOEI1NkZFOEI0NkZDRUI3RQorOjEwNzUyMDAwMDBDOUMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgorOjEwNzUzMDAwNTA3MjY1NzY2OTZGNzU3MzIwNEQ2NTZFNzUwMDQyNjU5MgorOjEwNzU0MDAwNjc2OTZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwNzU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjEwNzU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQgorOjEwNzU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQgorOjEwNzU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQgorOjEwNzU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjEwNzVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQgorOjEwNzVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQgorOjEwNzVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQgorOjEwNzVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjEwNzVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QgorOjEwNzVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QgorOjEwNzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QQorOjEwNzYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjEwNzYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QQorOjEwNzYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QQorOjEwNzY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQQorOjEwNzY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQQorOjEwNzY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQQorOjEwNzY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQQorOjEwNzY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQQorOjEwNzY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQQorOjEwNzZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQQorOjEwNzZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQQorOjEwNzZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTA2RjcyNzQxNQorOjEwNzZEMDAwMjAzMDAwNTA2RjcyNzQyMDMxMDA1MDZGNzI3NDIwMzI2RAorOjEwNzZFMDAwMDA1MDZGNzI3NDIwMzMwMDUwNkY3Mjc0MjAzNDAwNTA1OQorOjEwNzZGMDAwNkY3Mjc0MjAzNTAwNTA2RjcyNzQyMDM2MDA1MDZGNzJCNAorOjEwNzcwMDAwNzQyMDM3MDA1MDZGNzI3NDIwMzgwMDUwNkY3Mjc0MjBFQworOjEwNzcxMDAwMzkwMDUwNkY3Mjc0MjAzMTMwMDA1MDZGNzI3NDIwMzExNAorOjEwNzcyMDAwMzEwMDUwNkY3Mjc0MjAzMTMyMDA1MDZGNzI3NDIwMzEwQQorOjEwNzczMDAwMzMwMDUwNkY3Mjc0MjAzMTM0MDA1MDZGNzI3NDIwMzFGNgorOjEwNzc0MDAwMzUwMDlDMDFBMzAxQUEwMUIxMDFCODAxQkYwMUM2MDEyNgorOjEwNzc1MDAwQ0QwMUQ0MDFEQjAxRTIwMUVBMDFGMjAxRkEwMTAyMDJFQQorOjEwNzc2MDAwMEEwMjA4MDAwMDA3ODEwMDAzODA4MDgwOUY5MTk1OTFBNAorOjEwNzc3MDAwOUYwMDAzODE4NDhFOTU4NDg0ODQ4NDAwMDM4Mjg0ODRBMgorOjEwNzc4MDAwODQ4NDk1OEU4NDAwMDQ4ODAwQjIwQkM2MEJEQTBCRUU1RAorOjEwNzc5MDAwMEIwMjBDMTYwQzJBMEMzRTBDNTIwQzc3MEM5QzBDQkVFNworOjEwNzdBMDAwMENFMDBDMDIwRDAxODAyMDU0NjU3Mzc0MjA1MDYxNzM0RAorOjEwNzdCMDAwNzM2NTY0MjAxRjIwNTA3MjY1NzM3MzIwODAwMjAwMDE3RQorOjEwNzdDMDAwODAyMDRENjk3MzczNjk2RTY3MjA1Mjc4MjA0NDYxNzQxQworOjEwNzdEMDAwNjExRjIwNTA3MjY1NzM3MzIwODAwMjAwMDE4MDIwNDI3NworOjEwNzdFMDAwNjE2NDIwNTI3ODIwNDQ2MTc0NjEyMDFGMjA1MDcyNjVDQQorOjEwNzdGMDAwNzM3MzIwODAwMjAwMDE4MDIwNTg2RDc0NzIyMDQyNzVERQorOjEwNzgwMDAwNzM3OTFGMjA1MDcyNjU3MzczMjA4MDAyMDAwMTgwMjBGRAorOjEwNzgxMDAwNkU2Rjc0MjA2Mzc1NzI3MjY1NkU3NDZDNzkxRjIwMjBCMAorOjEwNzgyMDAwNjk2RDcwNkM2NTZENjU2RTc0NjU2NDAyMDAyNDBEMkY2MgorOjEwNzgzMDAwMEQzQTBENDUwRDUwMEQ1QjBENjYwRDcxMEQ3QzBEODdEQworOjEwNzg0MDAwMEQ5MjBEOUQwREE4MERCMzBEQkUwREM5MEQ1MzgwMkNDRAorOjEwNzg1MDAwMzI1NDQ0MjA1Mzg2MkMzMzQ0NTQ1MjIwNTM4MjJDMzNDOAorOjEwNzg2MDAwNTI1NDUzMjAxRjUzODEyQzMyNTI0NDIwNTM4NTJDMzJDMgorOjEwNzg3MDAwNDM0NDIwNTM4MzJDMzM0MzU0NTMyMDUzODQyQzMzNDRBOAorOjEwNzg4MDAwNTM1MjIwNTM4NzJDMzI1MjQ5MjcwMjAwMDE4MDIwMjA3NgorOjEwNzg5MDAwNDQ0MzQ0MjAyRDIwNzA2OTZFMjAzMjMwMUYyNzUzODVDOQorOjEwNzhBMDAwMkUzMTgxODI2MzkwODA4MTgyODM4NDg1ODY4Nzg4ODk1NgorOjEwNzhCMDAwOEE4QjhDOEQ4RThGMjcwMjAwMDE4MDIwMjA0NDUzNTJBQQorOjEwNzhDMDAwMjAyRDIwNzA2OTZFMjAzMTMxMUYyNzUzODQyRTMxODE4NQorOjEwNzhEMDAwODI2MzkwODA4MTgyODM4NDg1ODY4Nzg4ODk4QThCOEM2NQorOjEwNzhFMDAwOEQ4RThGMjcwMjAwMDE4MDIwMjA0MzU0NTMyMDJEMjBBRAorOjEwNzhGMDAwNzA2OTZFMjAzNDFGMjc1MzgzMkUzMTgxODI2MzkwODBGQworOjEwNzkwMDAwODE4MjgzODQ4NTg2ODc4ODg5OEE4QjhDOEQ4RThGMjc1OAorOjEwNzkxMDAwMDIwMDAxODAyMDIwNTI0OTIwMkQyMDcwNjk2RTIwMzIwMworOjEwNzkyMDAwMzIxRjI3NTM4NzJFMzE4MTgyNjM5MDgwODE4MjgzODQyNgorOjEwNzkzMDAwODU4Njg3ODg4OThBOEI4QzhEOEU4RjI3MDIwMDAxODBBRgorOjEwNzk0MDAwMjAyMDQ0NTQ1MjIwMkQyMDcwNjk2RTIwMzYyRjM4MUY3RAorOjEwNzk1MDAwMjc1Mzg2MkUzMTgxODI2MzkwODA4MTgyODM4NDg1ODYzRAorOjEwNzk2MDAwODc4ODg5OEE4QjhDOEQ4RThGMjcwMjAwMDE4MDIwMjA0QQorOjEwNzk3MDAwNTI1NDUzMjAyRDIwNzA2OTZFMjAzNTFGMjc1MzgyMkVCQworOjEwNzk4MDAwMzE4MTgyNjM5MDgwODE4MjgzODQ4NTg2ODc4ODg5OEExOQorOjEwNzk5MDAwOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwNTI3ODQ0MjAwRQorOjEwNzlBMDAwMkQyMDcwNjk2RTIwMzIxRjI3NTM4MTJFMzA1MzREODE1OAorOjEwNzlCMDAwODI2MzkwODA4MTgyODM4NDg1ODY4Nzg4ODk4QThCOEM4NAorOjEwNzlDMDAwOEQ4RThGMjcwMjAwMDE4MDIwMjA1NDc4NDQyMDJEMjBBNgorOjEwNzlEMDAwNzA2OTZFMjAzMzFGMjc1MzgwMkUzMDUzNEQ4MTgyNjM5MAorOjEwNzlFMDAwOTA4MDgxODI4Mzg0ODU4Njg3ODg4OThBOEI4QzhEOEUxRQorOjEwNzlGMDAwOEYyNzAyMDAwMTgwMjAyMDQ0NDM0NDIwMkQyMDcwNjlGRAorOjEwN0EwMDAwNkUyMDM1MUYyNzUzODUyRTMxODE4MjYzOTA4MDgxODJCRAorOjEwN0ExMDAwODM4NDg1ODY4Nzg4ODk4QThCOEM4RDhFOEYyNzAyMDA0OAorOjEwN0EyMDAwMDE4MDIwMjA0NDUzNTIyMDJEMjA3MDY5NkUyMDM1MUY4NAorOjEwN0EzMDAwMjc1Mzg0MkUzMTgxODI2MzkwODA4MTgyODM4NDg1ODY1RQorOjEwN0E0MDAwODc4ODg5OEE4QjhDOEQ4RThGMjcwMjAwMDE4MDIwMjA2OQorOjEwN0E1MDAwNDM1NDUzMjAyRDIwNzA2OTZFMjAzMTFGMjc1MzgzMkVFRAorOjEwN0E2MDAwMzE4MTgyNjM5MDgwODE4MjgzODQ4NTg2ODc4ODg5OEEzOAorOjEwN0E3MDAwOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwNTI0OTIwMkQ3MworOjEwN0E4MDAwMjAyODZFMkU2MzJFMjkxRjI3NTM4NzJFMzE4MTgyNjM3MworOjEwN0E5MDAwOTA4MDgxODI4Mzg0ODU4Njg3ODg4OThBOEI4QzhEOEU2RAorOjEwN0FBMDAwOEYyNzAyMDAwMTgwMjAyMDQ0NTQ1MjIwMkQyMDcwNjkyRAorOjEwN0FCMDAwNkUyMDMyMUYyNzUzODYyRTMxODE4MjYzOTA4MDgxODIwRgorOjEwN0FDMDAwODM4NDg1ODY4Nzg4ODk4QThCOEM4RDhFOEYyNzAyMDA5OAorOjEwN0FEMDAwMDE4MDIwMjA1MjU0NTMyMDJEMjA3MDY5NkUyMDM3MUZDMgorOjEwN0FFMDAwMjc1MzgyMkUzMTgxODI2MzkwODA4MTgyODM4NDg1ODZCMAorOjEwN0FGMDAwODc4ODg5OEE4QjhDOEQ4RThGMjcwMjAwMDE4MDIwMjBCOQorOjEwN0IwMDAwNTI3ODQ0MjAyRDIwNzA2OTZFMjAzNjFGMjc1MzgxMkUxNQorOjEwN0IxMDAwMzA1MzREODE4MjYzOTA4MDgxODI4Mzg0ODU4Njg3ODhGQgorOjEwN0IyMDAwODk4QThCOEM4RDhFOEYyNzAyMDAwMTgwMjAyMDU0NzhDQgorOjEwN0IzMDAwNDQyMDJEMjA3MDY5NkUyMDMzMUYyNzUzODAyRTMwNTMzMAorOjEwN0I0MDAwNEQ4MTgyNjM5MDgwODE4MjgzODQ4NTg2ODc4ODg5OEEzQgorOjEwN0I1MDAwOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwNDQ0MzQ0MjA4RgorOjEwN0I2MDAwMkQyMDcwNjk2RTIwMzUxRjIwMjAyMDIwMjc1Mzg1MkU2MAorOjEwN0I3MDAwMzE4MTgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDBBMQorOjEwN0I4MDAwMDE4MDIwMjA0NDUzNTIyMDJEMjA3MDY5NkUyMDM1MUYyMworOjEwN0I5MDAwMjAyMDIwMjAyNzUzODQyRTMxODE4MjYzODg4MDgxODI5NworOjEwN0JBMDAwODM4NDg1ODY4NzI3MDIwMDAxODAyMDIwNDM1NDUzMjA0OAorOjEwN0JCMDAwMkQyMDcwNjk2RTIwMzExRjIwMjAyMDIwMjc1MzgzMkUxNgorOjEwN0JDMDAwMzE4MTgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDA1MQorOjEwN0JEMDAwMDE4MDIwMjA1MjQ5MjAyRDIwMjg2RTJFNjMyRTI5MUYzRgorOjEwN0JFMDAwMjAyMDIwMjAyNzUzODcyRTMxODE4MjYzODg4MDgxODI0NAorOjEwN0JGMDAwODM4NDg1ODY4NzI3MDIwMDAxODAyMDIwNDQ1NDUyMjBGOAorOjEwN0MwMDAwMkQyMDcwNjk2RTIwMzIxRjIwMjAyMDIwMjc1Mzg2MkVDMQorOjEwN0MxMDAwMzE4MTgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDAwMAorOjEwN0MyMDAwMDE4MDIwMjA1MjU0NTMyMDJEMjA3MDY5NkUyMDM3MUY3MAorOjEwN0MzMDAwMjAyMDIwMjAyNzUzODIyRTMxODE4MjYzODg4MDgxODJGOAorOjEwN0M0MDAwODM4NDg1ODY4NzI3MDIwMDAxODAyMDIwNTI3ODQ0MjA4MworOjEwN0M1MDAwMkQyMDcwNjk2RTIwMzYxRjIwMjAyMDIwMjc1MzgxMkU3MgorOjEwN0M2MDAwMzA1MzREODE4MjYzODg4MDgxODI4Mzg0ODU4Njg3MjcxMworOjEwN0M3MDAwMDIwMDAxODAyMDIwNTQ3ODQ0MjAyRDIwNzA2OTZFMjA1RAorOjEwN0M4MDAwMzMxRjIwMjAyMDIwMjc1MzgwMkUzMDUzNEQ4MTgyNjNDNAorOjEwN0M5MDAwODg4MDgxODI4Mzg0ODU4Njg3MjcwMjAwMDE4MDIwMjA1NgorOjEwN0NBMDAwNDQ0MzQ0MjAyRDIwNzA2OTZFMjAzMjMwMUYyMDIwMjA1NAorOjEwN0NCMDAwMjAyNzUzODUyRTMxODE4MjYzODg4MDgxODI4Mzg0ODU0OQorOjEwN0NDMDAwODY4NzI3MDIwMDAxODAyMDIwNDQ1MzUyMjAyRDIwNzBGNworOjEwN0NEMDAwNjk2RTIwMzEzMTFGMjAyMDIwMjAyNzUzODQyRTMxODFDRQorOjEwN0NFMDAwODI2Mzg4ODA4MTgyODM4NDg1ODY4NzI3MDIwMDAxODA2MQorOjEwN0NGMDAwMjAyMDQzNTQ1MzIwMkQyMDcwNjk2RTIwMzQxRjIwMjBGMworOjEwN0QwMDAwMjAyMDI3NTM4MzJFMzE4MTgyNjM4ODgwODE4MjgzODQ1RgorOjEwN0QxMDAwODU4Njg3MjcwMjAwMDE4MDIwMjA1MjQ5MjAyRDIwNzA2RgorOjEwN0QyMDAwNjk2RTIwMzIzMjFGMjAyMDIwMjAyNzUzODcyRTMxODE3OAorOjEwN0QzMDAwODI2Mzg4ODA4MTgyODM4NDg1ODY4NzI3MDIwMDAxODAxMAorOjEwN0Q0MDAwMjAyMDQ0NTQ1MjIwMkQyMDcwNjk2RTIwMzYyRjM4MUY3OQorOjEwN0Q1MDAwMjAyMDIwMjAyNzUzODYyRTMxODE4MjYzODg4MDgxODJEMworOjEwN0Q2MDAwODM4NDg1ODY4NzI3MDIwMDAxODAyMDIwNTI1NDUzMjA3NworOjEwN0Q3MDAwMkQyMDcwNjk2RTIwMzUxRjIwMjAyMDIwMjc1MzgyMkU1MQorOjEwN0Q4MDAwMzE4MTgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDA4RgorOjEwN0Q5MDAwMDE4MDIwMjA1Mjc4NDQyMDJEMjA3MDY5NkUyMDMyMUZFRgorOjEwN0RBMDAwMjAyMDIwMjAyNzUzODEyRTMwNTM0RDgxODI2Mzg4ODBFQworOjEwN0RCMDAwODE4MjgzODQ4NTg2ODcyNzAyMDAwMTgwMjAyMDU0Nzg3MQorOjEwN0RDMDAwNDQyMDJEMjA3MDY5NkUyMDMzMUYyMDIwMjAyMDI3NTM0RgorOjEwN0REMDAwODAyRTMwNTM0RDgxODI2Mzg4ODA4MTgyODM4NDg1ODZBMgorOjEwN0RFMDAwODcyNzAyMDA2ODA0OTYwNEI2MDMzQzA0MEUwNDg5MDM0NgorOjEwN0RGMDAwNUMwM0UyMDM2MDA4OEEwOEJFMDczODA4MEUwODk1MDc4RQorOjEwN0UwMDAwNkMwN0U2MDcxQzA1NzQwNUZBMDVDNDA0RjAwNENDMDVFQworOjEwN0UxMDAwQTAwNTQ4MDU3ODA2QzgwNjQyMDcyODA2NTAwNjE4MDczOAorOjEwN0UyMDAwRjAwNkEwMDYwMDAwRjQwOEY0MDhENDBEMDQwOTA0MDlDMworOjEwN0UzMDAwMDQwOTA0MDk0MjAwMEMwOTFDMDlFNTBEMDIwMDE0MDk5QgorOjEwN0U0MDAwMDQwOUY0MEQ0MzAwMUMwOTBDMDkwNTBFMDAwNDA0MDk4MworOjEwN0U1MDAwMTQwOTEyMEUyQzA5MkMwOTJDMDkyQzA5MDAwMDNDMDlDQworOjEwN0U2MDAwNkMwOTFFMEU3NDA5NzQwOTc0MDk3NDA5MDAwMTRDMDkyNworOjEwN0U3MDAwMkMwOTJEMEU3NDA5NzQwOTc0MDk3NDA5MDAwMjVDMDkzNworOjEwN0U4MDAwM0MwOTNEMEU3NDA5NzQwOTc0MDk3NDA5MDAwMzZDMDlGNgorOjEwN0U5MDAwNEMwOTREMEU3NDA5NzQwOTc0MDk3NDA5RkYwMDJDMDkwQQorOjEwN0VBMDAwNUMwOTAwMDAwMDA1ODQwOUVDMDk1RTBFRjQwOUY0MDk4MAorOjEwN0VCMDAwRjQwOUY0MDkwMDA2OTQwOTc0MDk2ODBFQUMwQUFDMEFDNgorOjEwN0VDMDAwQUMwQUFDMEEwMDA3QTQwOTg0MDk3MjBFQkMwQUJDMEFGOQorOjEwN0VEMDAwQkMwQUJDMEEwMDA4QjQwOTk0MDk3QzBFRDQwQUQ0MEE2RQorOjEwN0VFMDAwRDQwQUQ0MEEwMDBCQzQwOUE0MDk4MzBFRkMwQUZDMEFCNAorOjEwN0VGMDAwRkMwQUZDMEEwMDBDRDQwOUI0MDk5MDBFMTQwQjE0MEJGNAorOjEwN0YwMDAwMTQwQjE0MEIwMDAyRTQwOUM0MDlBMDBFMkMwQjJDMEI1QgorOjEwN0YxMDAwMkMwQjJDMEIwNDAwRUMwOUQ0MDkwRTAwRkYwMDc0MDk5MworOjEwN0YyMDAwRTQwOTAwMDA4MjAxRkMwOUE0MEFBQzBFODIwMjA0MEFFMgorOjEwN0YzMDAwRjQwOUFGMEU4MjAzMEMwQUZDMDlCMjBFODIwNDE0MEE4MworOjEwN0Y0MDAwMDQwQUI2MEU4MjA1MUMwQTBDMEFCQzBFODIwNjI0MEExQworOjEwN0Y1MDAwMTQwQUMwMEU4MjA3MkMwQTFDMEFDNDBFODIwODM0MEFCNgorOjEwN0Y2MDAwMjQwQUM4MEU4MjA5M0MwQTJDMEFDQzBFODIwQTQ0MEE1MgorOjEwN0Y3MDAwMzQwQUQxMEU4MjEwNEMwQTNDMEFENjBFODIwQjU0MEFFNworOjEwN0Y4MDAwNDQwQURCMEU4MjExNUMwQTRDMEFFMDBFODIwQzY0MEE4MQorOjEwN0Y5MDAwNTQwQUU1MEU4MjEyNkMwQTVDMEFFQTBFODIwRDc0MEExQgorOjEwN0ZBMDAwNjQwQUVGMEU4MjBFN0MwQTZDMEFGNDBFODIwRjg0MEFCOQorOjEwN0ZCMDAwNzQwQUZCMEU4MjEzOEMwQTdDMEEwMjBGODIxNDk0MEE0NAorOjEwN0ZDMDAwODQwQTA5MEY4MjE1OUMwQThDMEExMDBGODIxNkE0MEFEMworOjEwN0ZEMDAwOTQwQTE3MEY4MjE3RjQwOTlDMEExRTBGODIwMkI0MEEzMgorOjEwN0ZFMDAwQjQwQTI2MEY4MjAzQUMwQUFDMEEyRDBGODIwMEM0MEEyMQorOjEwN0ZGMDAwQ0MwQTM0MEY4MjAxQ0MwQUJDMEEzRjBGODIwMkJDMEFCMQorOjEwODAwMDAwQzQwQTREMEY4MjAwREMwQUY0MEE1OTBGODIwMUU0MEEwNworOjEwODAxMDAwRDQwQTYzMEY4MjAyRUMwQURDMEE2RTBGODIwM0Y0MEFCMAorOjEwODAyMDAwRTQwQTdBMEY4MjA0RDQwQUVDMEE4NzBGODIwMDA0MEI1OAorOjEwODAzMDAwMEMwQjkzMEY4MjAxMEMwQkZDMEE5QjBGODIwMkZDMEFCMworOjEwODA0MDAwMDQwQkE3MEY4MjAwMUMwQjI0MEJCMDBGODIwMTI0MEIyMgorOjEwODA1MDAwMTQwQkI1MEY4MjAyMTQwQjFDMEJCRTBGNDQwMDM0MEIyMworOjEwODA2MDAwQTQwQjlDMDE0NDAxM0MwQjJDMEJBMzAxNDQwMjQ0MEJDOAorOjEwODA3MDAwMzQwQkFBMDE0NDAzNEMwQjNDMEJCMTAxNDQwNDU0MEJEOAorOjEwODA4MDAwNDQwQkI4MDE0NDA1NUMwQjRDMEJCRjAxNDQwNjY0MEI2OAorOjEwODA5MDAwNTQwQkM2MDE0NDA3NkMwQjVDMEJDRDAxNDQwODc0MEJGOAorOjEwODBBMDAwNjQwQkQ0MDE0NDA5N0MwQjZDMEJEQjAxNDQwQTg0MEI4OAorOjEwODBCMDAwNzQwQkUyMDE0NDBCOEMwQjdDMEJFQTAxNDQwQzk0MEIxNworOjEwODBDMDAwODQwQkYyMDE0NDBEOUMwQjhDMEJGQTAxNDQwRUE0MEJBMworOjEwODBEMDAwOTQwQjAyMDI0NDBGMkMwQjlDMEIwQTAyMTcxRjBGMkY0QworOjEwODBFMDAwMDAwMDAxODA3ODc4M0EyMDc0NzgyMDYzNzA3MzIwMkEyOQorOjEwODBGMDAwMkEyQTJBMkEwMjAwMDE4MDc4NzgzQTIwNzQ3ODIwNjM5QworOjEwODEwMDAwNzA3MzIwMkEyQTJBMkEyQTAyMDAwMTgwNzg3ODNBMjBDRAorOjEwODExMDAwNzQ3ODIwNjM3MDczMjAyQTJBMkEyQTJBMDIwMDAxODA5OAorOjEwODEyMDAwNzg3ODNBMjA3NDc4MjA2MzcwNzMyMDJBMkEyQTJBMkFDMQorOjEwODEzMDAwMDIwMDAxQzA3ODc4M0EyMDcyNjMyMDYzNzA3MzIwMkFBRAorOjEwODE0MDAwMkEyQTJBMkEwMjAwMDFDMDc4NzgzQTIwNzI2MzIwNjMyMgorOjEwODE1MDAwNzA3MzIwMkEyQTJBMkEyQTAyMDAwMUMwNzg3ODNBMjAzRAorOjEwODE2MDAwNzI2MzIwNjM3MDczMjAyQTJBMkEyQTJBMDIwMDAxQzAxRgorOjEwODE3MDAwNzg3ODNBMjA3MjYzMjA2MzcwNzMyMDJBMkEyQTJBMkE4OAorOjEwODE4MDAwMDIwMDAxODA0OTZFNzM3NDYxNkM2QzIwNEM2RjZGNzBEQgorOjEwODE5MDAwNjI2MTYzNkIxRjUwNzI2NTczNzMyMDgwMjA3NDZGMjA1RgorOjEwODFBMDAwNzM3NDYxNzI3NDAyMDAwMTgwMjA0MzYxNjI2QzY1MjAwNworOjEwODFCMDAwNzQ2RjIwNTI2NTZENkY3NDY1MUY1MDcyNjU3MzczMjAwNAorOjEwODFDMDAwODAyMDc0NkYyMDczNzQ2MTcyNzQwMjAwMDE4MDIwNENFRgorOjEwODFEMDAwNkY2MzYxNkMyMDRDNkY2RjcwNjI2MTYzNkIyMDFGMjA1NgorOjEwODFFMDAwMjA1Mjc1NkU2RTY5NkU2NzIwMkUyRTJFMDIwMDAxODA2MQorOjEwODFGMDAwNTI2NTZENkY3NDY1MjA0QzZGNkY3MDYyNjE2MzZCMjBBOAorOjEwODIwMDAwMUYyMDIwNTI3NTZFNkU2OTZFNjcyMDJFMkUyRTAyMDA4MgorOjEwODIxMDAwMDE4MDIwNDk2RTc0NzI2RTZDMjA0QzZGNkY3MDYyNjFDOQorOjEwODIyMDAwNjM2QjFGMjAyMDUyNzU2RTZFNjk2RTY3MjAyRTJFMkU5NgorOjEwODIzMDAwMDIwMDAxODA1NDcyNjE2RTczNkQ2OTc0MjA1MDYxNzQyNAorOjEwODI0MDAwNzQ2NTcyNkUxRjIwMjA1Mjc1NkU2RTY5NkU2NzIwMkVFNworOjEwODI1MDAwMkUyRTAyMDAwMTgwMjAyMDMwM0EyMDI3NDM4MDAwMDE4QQorOjEwODI2MDAwODAyMDIwMzEzQTIwMjc0MzgxMDAwMTgwMjAyMDMyM0FBQgorOjEwODI3MDAwMjAyNzQzODIwMDAxODAyMDIwMzMzQTIwMjc0MzgzMDBCNworOjEwODI4MDAwMDE4MDIwMjAzNDNBMjAyNzQzODQwMDAxODAyMDIwMzVCQgorOjEwODI5MDAwM0EyMDI3NDM4NTAwMDE4MDIwMjAzNjNBMjAyNzQzODY1NAorOjEwODJBMDAwMDAwMTgwMjAyMDM3M0EyMDI3NDM4NzAwMDE4MDIwMjBDQQorOjEwODJCMDAwMzgzQTIwMjc0Mzg4MDAwMTgwMjAyMDM5M0EyMDI3NDM3QworOjEwODJDMDAwODkwMDAxODAyMDMxMzAzQTIwMjc0MzhBMDAwMTgwMjAzNAorOjEwODJEMDAwMzEzMTNBMjAyNzQzOEIwMDAxODAyMDMxMzIzQTIwMjc2OAorOjEwODJFMDAwNDM4QzAwMDE4MDIwMzEzMzNBMjAyNzQzOEQwMDAxODBFOAorOjEwODJGMDAwMjAzMTM0M0EyMDI3NDM4RTAwMDE4MDIwMzEzNTNBMjA0NgorOjEwODMwMDAwMjc0MzhGMDAyQTJBMjA0RDYxNjk2RTIwMjA0RDY1NkUxQgorOjEwODMxMDAwNzUyMDJBMkEwMDRENkY2RTY5NzQ2RjcyMjA2MTIwNTA5QgorOjEwODMyMDAwNkY3Mjc0MDA0RDZGNkU2OTc0NkY3MjIwNjEyMDUzNjlCMworOjEwODMzMDAwNjc2RTYxNkMwMDQ1NzM3NDY5NkQ2MTc0NjUyMDQzNTBBQworOjEwODM0MDAwNTMwMDQ0Njk2MTY3NkU2RjczNzQ2OTYzNzMwMDRDNkZBNworOjEwODM1MDAwNjM2MTZDMjA0QzZGNkY3MDYyNjE2MzZCMDA1MjY1NkQ3RQorOjEwODM2MDAwNkY3NDY1MjA0QzZGNkY3MDYyNjE2MzZCMDA0OTZFNzQ0RgorOjEwODM3MDAwNzI2RTZDMjA0QzZGNkY3MDYyNjE2MzZCMDA1NDcyNjEzRgorOjEwODM4MDAwNkU3MzZENjk3NDIwNTA2MTc0NzQ2NTcyNkUwMDQyNjEyMQorOjEwODM5MDAwNzU2NDIwNTI2MTc0NjUwMDQ0NjE3NDYxMjA0MjY5NzQ5RgorOjEwODNBMDAwNzMwMDUzNzQ2RjcwMjA0MjY5NzQ3MzAwNTA2MTcyNjk3NgorOjEwODNCMDAwNzQ3OTAwNDQ2MTc0NjEyMDUwNjE3NDc0NjU3MjZFMDA1OAorOjEwODNDMDAwNTQ3ODIwNDY2QzZGNzcyMDQzNkY2RTc0NzI2RjZDMDAyOAorOjEwODNEMDAwNTA2RjcyNzQyMDRFNzU2RDYyNjU3MjAwMzUzMDAwMzdEMworOjEwODNFMDAwMzUwMDMxMzEzMDAwMzEzMzM0MkUzNTAwMzEzNTMwMDAzNQorOjEwODNGMDAwMzIzMDMwMDAzMzMwMzAwMDM2MzAzMDAwMzEzMjMwMzBGRgorOjEwODQwMDAwMDAzMTM4MzAzMDAwMzIzMDMwMzAwMDMyMzQzMDMwMDAxQgorOjEwODQxMDAwMzMzNjMwMzAwMDM0MzgzMDMwMDAzNzMyMzAzMDAwMzlDNQorOjEwODQyMDAwMzYzMDMwMDAzMTM5MkMzMjMwMzAwMDMzMzgyQzM0MzA5MworOjEwODQzMDAwMzAwMDM1MzYyQzMwMzAzMDAwMzUzNzJDMzYzMDMwMDBCNworOjEwODQ0MDAwMzYzNDJDMzAzMDMwMDAzNzM2MkMzODMwMzAwMDMxMzE3MworOjEwODQ1MDAwMzUyQzMyMzAzMDAwMzcyMDYyNjk3NDczMDAzODIwNjI2NgorOjEwODQ2MDAwNjk3NDczMDAzMTIwNzM3NDZGNzAyMDYyNjk3NDAwMzExNQorOjEwODQ3MDAwMkUzNTIwNzM3NDZGNzAyMDYyNjk3NDczMDAzMjIwNzMxQworOjEwODQ4MDAwNzQ2RjcwMjA2MjY5NzQ3MzAwNkU2RjIwNzA2MTcyNjkxRQorOjEwODQ5MDAwNzQ3OTAwNkY2NDY0MjA3MDYxNzI2OTc0NzkwMDY1NzYyNAorOjEwODRBMDAwNjU2RTIwNzA2MTcyNjk3NDc5MDA3MzcwNjE2MzY1MjAxNAorOjEwODRCMDAwNzA2MTcyNjk3NDc5MDA2RDYxNzI2QjIwNzA2MTcyNjlBQworOjEwODRDMDAwNzQ3OTAwNDM2RjZDNzU2RDZFNzMwMDQyNjE3MjYyNjUwMgorOjEwODREMDAwNzIyMDUwNkY2QzY1MDA1NTU1NTU1NTU1MkUyRTJFMDA0NworOjEwODRFMDAwNEU2RjZFNjUwMDU4NkY2RTJGNTg2RjY2NjYwMDQzNTQ2RQorOjEwODRGMDAwNTMwMDUwNzI2NTczNzMyMDgwMjA2NjZGNzIyMDZENjUyMworOjEwODUwMDAwNkU3NTAwMjg2MzZGNzU2RTc0Njk2RTY3MkUyRTJFMjk0NgorOjEwODUxMDAwMDAwMDY1NEU2NDIwNEY2NjIwNDM2RjQ0NjUwMDAwMDBGNAorOjEwODUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QgorOjEwODUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQgorOjEwODU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjEwODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQgorOjEwODU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQgorOjEwODU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQgorOjEwODU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjEwODU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQgorOjEwODVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQgorOjEwODVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQgorOjEwODVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjEwODVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QgorOjEwODVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QgorOjEwODVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QgorOjAwMDAwMDAxRkYKKy8qICBJbnRlbGxpcG9ydCBJSSBsb2Fkd2FyZSAqLworLyogLTMxMjMyIGJ5dGVzIHJlYWQgZnJvbSBmZi5sb2QgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2thd2V0aC9uZXdfY29kZS5iaW4uaWhleCBiL2Zpcm13YXJlL2thd2V0aC9uZXdfY29kZS5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTJkNDBmCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2F3ZXRoL25ld19jb2RlLmJpbi5paGV4CkBAIC0wLDAgKzEsMjA2IEBACis6MTAwMDAwMDBCNkMzQUFCQkNDREQ5RkNGREUwNkU3NTcwMDAwQzQwNjBGCis6MTAwMDEwMDA5N0MxRTc2N0ZGMUYyOEMwRTc4NzAwMDQyNEMwRTc2NzkwCis6MTAwMDIwMDBGRkY5MjJDMDk3Q0ZENzA5MDBDMEU3MDlBMkMwQkUwNkRBCis6MTAwMDMwMDA5RkFGMzYwMEU3MDUwMEMwQTdDRkJDMDY5N0NGRTc1N0I0Cis6MTAwMDQwMDAwMDAwQjgwNkE3QTFCODA2OTdDRkU3NTcwMDAwMTQwODJDCis6MTAwMDUwMDAwQUMwRTc1NzAwMDBBNEMwQTdDMDdBMDY5RkFGOTIwNzY2Cis6MTAwMDYwMDBFNzA3MDAwMDE0MDhFNzU3RkZGRkJBMDY5RkEwMzgwMDEzCis6MTAwMDcwMDBFNzU5QkEwNkJFMDY5RkEwMzgwMEM4MDlDQTA2MDg2MjNBCis6MTAwMDgwMDA5RkExMzYwOEMwMDk3NjA2MDA2MEE3QzA3QTA2OUZBRjE4Cis6MTAwMDkwMDBDQzAyRTc1NzAwMDBCODA2QTdDMTdBMDY5RkFGMDQwMDVDCis6MTAwMEEwMDBFNzU3MDAwMDhFMDYwQUMxRTcwOTIwQzAxMDA4RTdEMDE0Cis6MTAwMEIwMDAxMDA4RTc2NzQwMDAxMDA4OUZBRjkyMENDMDA5RDAwNkY3Cis6MTAwMEMwMDAwMDYwMDVDNEMwNTlCRTA2MDJDMDlGQUZFQzAwOUZBRkUwCis6MTAwMEQwMDAzNDAyRTc1NzAwMDBBNjA2OUZBMDdBMDJBN0NGN0EwNjRGCis6MTAwMEUwMDA0ODAyRTcwOUJFMDZEMDA2QzgzNzA0MDA5RkFGMDgwM0UwCis6MTAwMEYwMDA5N0NGRTc1NzAwMDBDRTA2OTdDMEQ3MDkwMEMwQzFERkYxCis6MTAwMTAwMDBDODA5QzYwNjA4NjIxNEMwMjcwNEM2MDYxMDk0RjAwNzgyCis6MTAwMTEwMDAxMDA4MDIwMEMxMDcwMTAwNzAwMDA0MDBGMDA3MzAwMTYwCis6MTAwMTIwMDAwNjAwNTBBRkU3MDdGRkZGRDAwNkU3MDcwMDAwQ0UwNjQ2Cis6MTAwMTMwMDBFNzA1MDBDMDk3Q0ZENzA5MDBDMEMxREY0ODAyRDAwOTRBCis6MTAwMTQwMDBDNjA2MjcwMkM2MDZFNzA1MDBDMDk3Q0Y0ODAyQzgzNzkzCis6MTAwMTUwMDAwNDAwMDAwQzBDMDAwMDYwMjFDMEMwMzczRTAwMjNDOTIxCis6MTAwMTYwMDBDMDU3QjQwNTFCQzhDMDE3M0YwMEMwNjdDMEZGMzAwMEIwCis6MTAwMTcwMDAwODAwRjAwNzAwMDAwNDAwMDAwMkMwMTc0QzAwMzAwMDI3Cis6MTAwMTgwMDAwNjAwRjAwN0EwMDEwQTAwNDgwMkMxMDcwMjAwRDcwOUQzCis6MTAwMTkwMDAwMEMwQzFERjUxQUZFNzA1MDBDMDk3Q0Y5RkFGMDgwMzk0Cis6MTAwMUEwMDA5RkFGN0EwMjk3Q0Y5RkFGN0EwMkM5MzcwNDAwQzFERkIxCis6MTAwMUIwMDBDODA5QTIwNjUwMDI2NzAyQTIwNkQxMDcwMDAwMjdEODhDCis6MTAwMUMwMDBBQTA2QzBERjlGQUZDNDAxOTdDRkU3NTcwMDAwRDIwNjUxCis6MTAwMUQwMDA5N0MxRTc1NzAxMDBBODA2OTdDMEM4MDlBMDA2MDg2MkEyCis6MTAwMUUwMDA5N0MwMDAwMkMwMTcwRTAwMjcwMDM0MDEyNzBDMEMwMDM2Cis6MTAwMUYwMDAzNjAxRTcwNzUwQzMxMkMwRTcwN0NDMEIwMjAwRTcwNzQwCis6MTAwMjAwMDAwMTAwQTgwNkU3MDcwNTAwOTBDMDk3Q0ZDODA5QTQwNjFCCis6MTAwMjEwMDAwODYyMDJDMDEwNjQwN0MxRTcwNzAwMDA5RTA2RTcwN0Y2Cis6MTAwMjIwMDA3MjA0MjQwMDk3Q0YyNzA0QTQwNkM4MTcwRTAwMjcwMkUzCis6MTAwMjMwMDA5RTA2RTcwNzgwMDQyNDAwOTdDRkQ3MDkwMEMwQzFERkRFCis6MTAwMjQwMDBFNzU3MDAwMDkwMDYxM0MxOUZBRjA2MDJFNzU3MDAwMDcyCis6MTAwMjUwMDA5RTA2MTNDMEU3MDk5RTA2MzAwMUU3MDdGMjA1MzIwMTRBCis6MTAwMjYwMDBFNzA3MTAwMDk2QzBFNzA5OUUwNjkwMDYwNENGRTc1N0ZGCis6MTAwMjcwMDAwMDAwOUUwNjAyQzE5RkFGMDYwMkU3MDUwMEMwOTdDRkFGCis6MTAwMjgwMDBENzA5MDBDMEMxREYwODkyRTc1NzAyMDBBQTA2MDJDM0RGCis6MTAwMjkwMDBDODA5QTQwNjI3MDJBNjA2MDg2MjAzQzFFNzA1MDBDMDM0Cis6MTAwMkEwMDA5N0NGMjcwNEE0MDZFNzA1MDBDMEYwMDc0MDAwMDgwMDI4Cis6MTAwMkIwMDBGMDA3MDAwMDA0MDAwMDAyQzAxNzBDMDAzMDAwMDYwMDI4Cis6MTAwMkMwMDBGMDA3NDYwMTBBMDBDODE3MDQwMEMxMDcwMjAwNTFBRjM5Cis6MTAwMkQwMDA5N0NGRTc1NzAwMDA5NjA2OTdDMEMxREZDODA5OTYwNjdBCis6MTAwMkUwMDAyNzA0OTYwNjI3NTI5ODA2MDNDMUU3MDc5NjA2OTgwNjQ0Cis6MTAwMkYwMDBDMERGMTcwMkM4MTcwRTAwOUZBRkJBMDNDODA1MDA2MDIxCis6MTAwMzAwMDAwM0MwOUZBRjI0MDM5N0NGOUZBRjA4MDM5N0NGNTcwMjM3Cis6MTAwMzEwMDBDOTA3QTQwNkQ3MDkwMEMwQzFERjA4NjIxQkMwNTAwNDhBCis6MTAwMzIwMDAxMTAyRTcwNTAwQzBDOTA1OTdDRjk3MDJDQTA5RDYwNjkyCis6MTAwMzMwMDBGMjE3MDEwMDA0MDBGMjI3MDAwMDA2MDBDQTE3MkMwMDgzCis6MTAwMzQwMDBGODc3MDEwMDBFMDAwNkMwQ0FEOUY4NTdGRjAwMEUwMDZBCis6MTAwMzUwMDAwMUMxQ0FEOTIyMUMwQzAwRTIyNzAwMDBFMjE3MDEwMEVCCis6MTAwMzYwMDBFMjI3MDAwMENBMDUwMDBDMEMwMEMwMTc0MTAwQzA2NzVFCis6MTAwMzcwMDBDMEZGMzAwMDA4MDAwMDAyQzAxNzBDMDAzMDAwMDYwMDZCCis6MTAwMzgwMDBGMDA3REEwMDBBMDBGMDA3MDAwMDA0MDAwMDBDMDgwMDgzCis6MTAwMzkwMDA0MEQxMDEwMEMwMTlDRTA2QzA1OUMyMDYwNEM5NDlBRkY4Cis6MTAwM0EwMDA5RkFGRUMwMDRBQUY2NzEwQ0UwNkM4MTcwNDAwQzEwNzI0Cis6MTAwM0IwMDAwMTAwRDcwOTAwQzBDMURGNTBBRkU3MDUwMEMwOTdDRkVCCis6MTAwM0MwMDBDMDA3MDEwMEMxMDlBQzA2QzE3NzAxMDA5N0MxRDg3NzA5Cis6MTAwM0QwMDAwMTAwMTJDMEM5MDc2QTA2OUZBRjA4MDQwNEMxQzE3N0IzCis6MTAwM0UwMDAwODAwMTNDMDk3Q0ZDMTc3MDIwMDk3QzFDMTc3MTAwMEYyCis6MTAwM0YwMDAwQ0MwOUZBRjJDMDQ5N0NGQzE3NzA0MDAwNkMwQzkwNzdCCis6MTAwNDAwMDA3MDA2OUZBRjA4MDQ5N0MwMDBDRjAwOTA5N0NGNTA1NDVDCis6MTAwNDEwMDA5N0MxNzA1QzAyMDAwMjAwOTdDMTcwNUMwNDAwMDQwMDg4Cis6MTAwNDIwMDA5N0NGODAwMUMwMDA2MDAwMzAwMDE4MDAwQzAwMDYwMDZCCis6MTAwNDMwMDAwMDAwQ0IwOUIyMDZDQzA5QjQwNjBCNTMxMUMwQzkwMkE3Cis6MTAwNDQwMDBDQTA3MUMwNDlGQUYwODA0OTdDMDBBQzg4MjA4MEFDRkQ1Cis6MTAwNDUwMDA4MjA4OUZBRjA4MDQ5N0MwMDVDMjg5MzA4MjYwNzhDMUM2Cis6MTAwNDYwMDAwMDkwOTdDRjg5MTAwOTUzNzlDMjg5MzA4MjA4N0FDRkRBCis6MTAwNDcwMDBDMERGOTdDRkMwREY5N0NGRTcwOTk2QzA5MjA2RTcwOUE0Cis6MTAwNDgwMDA5OEMwOTQwNjBGQ0ZFNzA5OTZDMDkyMDZFNzA5OThDMDc2Cis6MTAwNDkwMDA5NDA2RTcwOTlFMDYzMDAxRTcwN0YyMDUzMjAxRTcwN0Y3Cis6MTAwNEEwMDAxMDAwOTZDMEQ3MDkwMEMwMTcwMkM4MDk5MDA2QzgzN0M3Cis6MTAwNEIwMDAwRTAwRTc3NzJBMDA5MjA2MzBDMDk3MDJDQTA5RDYwNkQ2Cis6MTAwNEMwMDBFNzc3MjAwMDkyMDYwRUMwRjIxNzAxMDAxMDAwRjIyNzE1Cis6MTAwNEQwMDAwMDAwMTIwMEU3NzcwQTAwOTIwNkNBMDUxRUMwOTcwMkM0Cis6MTAwNEUwMDBDQTA5RDYwNkYyMTcwMTAwMEMwMEYyMjcwMDAwMEUwMDIwCis6MTAwNEYwMDBFNzc3MDIwMDkyMDYwN0MwRjIxNzAxMDA0NDAwRjIyN0Q2Cis6MTAwNTAwMDAwMDAwNDYwMDA2Q0ZGMjE3MDEwMDYwMDBGMjI3MDAwMDRECis6MTAwNTEwMDA2MjAwQ0EwNTlGQUYwODAzMEZDRjU3MDIwOTAyRjEwOTE1Cis6MTAwNTIwMDA5NDA2MEMwMEYxREEwQzAwQzgwOTk4MDY1MDAyNjcwMjI0Cis6MTAwNTMwMDA5ODA2RDEwNzAwMDBDOTA1RTcwOTlFMDY5MDA2RTc1NzBGCis6MTAwNTQwMDAwMDAwOTAwNjAyQzA5RkFGMDYwMkM4MDVFNzA1MDBDMDg0Cis6MTAwNTUwMDBDMERGOTdDRkQ3MDkwMEMwMTcwMDE3MDI5NzAyQzAwOTY0Cis6MTAwNTYwMDA5MkMwRTcwNzA0MDA5MEMwQ0EwOUQ2MDZFNzA3MDAwMDVBCis6MTAwNTcwMDBBODA2RTcwNzZBMDQwMjAwQzA3NzAyMDAwOEMwRjIxNzY1Cis6MTAwNTgwMDAwMTAwNTAwMEYyMjcwMDAwNTIwMDlGQ0YyNDA2QzA3N0UwCis6MTAwNTkwMDAxMDAwMDZDMEYyMTcwMTAwNTgwMEYyMjcwMDAwNUEwMEIwCis6MTAwNUEwMDBDMDc3ODAwMDA2QzBGMjE3MDEwMDcwMDBGMjI3MDAwMDNCCis6MTAwNUIwMDA3MjAwQzA3NzA4MDAxREMxRjIxNzAxMDAwODAwRjIyNzgxCis6MTAwNUMwMDAwMDAwMEEwMEMwNzcwMDAyMDZDMEYyMTcwMTAwNjQwMEI0Cis6MTAwNUQwMDBGMjI3MDAwMDY2MDBDMDc3NDAwMDA2QzBGMjE3MDEwMDU1Cis6MTAwNUUwMDA1QzAwRjIyNzAwMDA1RTAwQzA3NzAxMDAwMUMwMUJDRjU1Cis6MTAwNUYwMDAxQUNGRjIxNzAxMDAwMDAwRjIyNzAwMDAwMjAwQzgwOTFDCis6MTAwNjAwMDAzNDAxQ0ExNzE0MDBEODc3MDEwMDA1QzBDQUQ5RDg1N0Q5Cis6MTAwNjEwMDBGRjAwMDFDMENBRDlFMjE5OTRDMEUyMjcwMDAwRTIxNzI2Cis6MTAwNjIwMDAwMTAwRTIyNzAwMDA5RkFGNDAwNjlGQUZDNDAxRTc1N0RCCis6MTAwNjMwMDAwMDAwRDIwNjlGQTEwRTBBQ0EwNUM4MDVDMDA1RTcwNTNECis6MTAwNjQwMDAwMEMwQzBERjk3Q0ZDODA5QTAwNjA4NjI5N0MwMjcwNDgyCis6MTAwNjUwMDBBMDA2Mjc1MkEyMDYwM0MxRTcwN0EwMDZBMjA2OUZBRjg1Cis6MTAwNjYwMDAwODAzRTc1NzAwMDBBQTA2MDJDMDI3REFBQTA2OTdDRkI4Cis6MTAwNjcwMDBGRkZGRkZGRkZGRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTAwNjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZBCis6MTAwNjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVBCis6MTAwNkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRBCis6MTAwNkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNBCis6MTAwNkMwMDAwMDAwMDAwMDAwMDAwMDAwM0YwMDAwMDAwMDAwMDAwMEVCCis6MTAwNkQwMDAwMDAwMDAwMDAwMDBGRkZGMDEwMDAwMDAwMDAwMDAwMDFCCis6MTAwNkUwMDBGRkZGRkIxM0U3NTcwMDgwQjIwMDA2QzJFNzA3RUUwQkRGCis6MTAwNkYwMDAxMjAwRTcwNzM0MENCMjAwRTcwN0M2MDdGMjAyQzgwOTg4Cis6MTAwNzAwMDBCNDAwRjgwNzAyMDAwRDAwRDcwOTBFQzBFNzA3MDAwMDhCCis6MTAwNzEwMDAwRUMwQzgwOURFMDBDODE3MDkwMEM5MDdEQTA2QzAwN0ZECis6MTAwNzIwMDAwNDAwNjgwQTAwREE3REMxRTcwOUMwMDA3QzA2RTcwOTE5Cis6MTAwNzMwMDBCRTAwNzgwNkU3MDkxMDAwQkMwNkM4MDdENjA3OUZBRkMxCis6MTAwNzQwMDBBRTA3OUZBRjAwMEFDODA5REUwMDAwMEUwRjAwNDE5MEZGCis6MTAwNzUwMDA5RkRFMDYwMDQ0QUYyNzAwQjIwNjI3MDBCNDA2MjcwMDNDCis6MTAwNzYwMDBCNjA2QzAwNzc0MDA0NEFGMjcwMEQ2MDYwODAwMDA5MDA0Cis6MTAwNzcwMDBDMTA3M0EwMDIwMDAwMURBN0RDMTlGQUZCQTA5QzAwNzY2Cis6MTAwNzgwMDA0NDAwNDhBRjI3MDA3QTA2OUZBRjk2MEFFNzA3MDEwMEFBCis6MTAwNzkwMDBDMDA2RTcwNTBFQzA5N0NGNDlBRkU3ODc0MzAwMEVDMEZDCis6MTAwN0EwMDBFNzA3RkZGRkJFMDY5RkFGQUUwQUMwMDcwMTAwNjBBRkJDCis6MTAwN0IwMDA0QUFGOTdDRjAwMDgwOTA4MTEwODAwREE3Q0MxOTdDRjJCCis6MTAwN0MwMDA2NzA0Q0MwMkMwREY1MTk0QjFBRjA2MDBDMURGQzkwOTk0Cis6MTAwN0QwMDBDQzAyNDk2Mjc1QzFDMERGQTdDRkQ2MDIwRTAwMjQwMDRCCis6MTAwN0UwMDA4MDA0MjIwMDRFMDVEMDAwMEUwQUFBMDAzMDA4QkUwMDg4Cis6MTAwN0YwMDA0QTBBMTAwMDIwMDAwNDAwNkUwNDAyMDA2QTA0MDYwMDg5Cis6MTAwODAwMDAwMDAwMjRDMDA0MDQyOEMwRkVGQjFFQzAwMDA0MjJDMDU3Cis6MTAwODEwMDBGRkY0QzAwMDkwMDkwMDAwMDAwMEZGRkY1NjA4NjAwOEM4Cis6MTAwODIwMDBEMDA4REEwODAwMDkwNDA5MDgwOTMyMDk0MjA5NTAwOTA4Cis6MTAwODMwMDA1MjA5NUEwOTVBMDkyNzAyQ0EwNjk3Q0ZFNzA3MDAwMDRBCis6MTAwODQwMDBDQTA2MEEwRTAxMDBDQTU3MEUwMDlGQzM1QTA5Q0EzN0NBCis6MTAwODUwMDAwMDAwOUZDMjVBMDkwQUQyQjJDRjE2MDhDODA5REUwMEFBCis6MTAwODYwMDAwNzA2OUZDRjZDMDkxNzAyQzgwOURFMDAwMDBFMEYwMEIzCis6MTAwODcwMDA0MTkwOUZERTA2MDBDODA1MzA1MDA2MDA5RkM4NUEwOTA3Cis6MTAwODgwMDAyNzBDMDIwMEIwMDZDMDA5QjIwNjI3MDBCNDA2RTcwNzJECis6MTAwODkwMDAwMDAwQUUwNjI3MDA4MDA2MDAxQzA2MDAyNzAwQjYwNkYyCis6MTAwOEEwMDA0MTkwNjc1MEIwMDYwREMwNjcwMDdFMDYyNzBDMDYwMDE5Cis6MTAwOEIwMDA4MjA2RTcwN0JDMDg4NDA2QzgwNzdFMDY0MTkwNTFBRjUwCis6MTAwOEMwMDA5N0NGOUZBRjQ4MENFNzA5QjYwNkI0MDZFNzA5QjAwNjE0Cis6MTAwOEQwMDBBRTA2NTlBRjk3Q0YyNzBDMDIwMEFDMDY1OUFGOTdDRkExCis6MTAwOEUwMDAwOTBDMDIwMDA5REE0OUQyQzkxOUQ2MDZDODA3N0UwNkUyCis6MTAwOEYwMDBFMDA3MDAwMDYwMDJFMDA3MDQwMEQwMDdDQzA4NDhEQkY2Cis6MTAwOTAwMDA0MTkwNTBBRjk3Q0Y1OUFGOTdDRjU5QUY5N0NGRjA1NzhFCis6MTAwOTEwMDAwNjAwMDYwMDI1QzFFNzA3NzAwNjgwMDY0MTkwNjcwMEMzCis6MTAwOTIwMDA3RTA2MjcwQzA2MDA4MjA2RTcwNzhDMDk4NDA2QzgwN0E2Cis6MTAwOTMwMDA3RTA2NDE5MDUxQUY5N0NGMDcwQzA2MDBDNzU3MDYwMEJGCis6MTAwOTQwMDAwRkMxQzgwNzcwMDYxNUNGMDAwQzAyMDAwMERBNDBEMUI1Cis6MTAwOTUwMDAyNzAwQzIwNjFFQ0YxRENGMjcwQzAyMDBDQzA2MTlDRkUwCis6MTAwOTYwMDAyNzAyMjAwMUU3MDcwODAwMjIwMUU3MDcxMzAwQjBDMEIzCis6MTAwOTcwMDA5N0NGNDE5MDY3MDA3RTA2RTcwMTgyMDYyNzAyODAwNjM2Cis6MTAwOTgwMDBFNzA3OEMwOTg0MDZDODA3N0UwNkMxMDcwMDgwNTBBRkMwCis6MTAwOTkwMDA5N0NGNTlBRjk3Q0YwMDYwMDVDMEU3MDcwMDAwQzQwNkE2Cis6MTAwOUEwMDBBN0NGN0MwNjlGQUYwMDBBRTcwNzAxMDBDNDA2NDlBRjQ2Cis6MTAwOUIwMDBENzA5MDBDMDA3QUZFNzA1MDBDMDRBQUZBN0NGN0MwNjQ0Cis6MTAwOUMwMDBDMDA3RkU3RjQ0QUY0MDAwQzAzNzAwMDE0MTkwQzAzN0YwCis6MTAwOUQwMDAwODAwREZERTUwMDZDMDU3MTAwMDAyQzJDMDA3MTAwMDNBCis6MTAwOUUwMDAyNzAwOUEwNjQxOTA5RkRFNDAwNjQ0QUYyNzAwOUMwNkYwCis6MTAwOUYwMDBDMDA5OUEwNjQxOTAwMEQyMDBEODlGREUwODAwNDRBRjlCCis6MTAwQTAwMDAyNzAwQzgwNjk3Q0ZFNzg3MDA4NDI4QzBFNzY3RkZGQjY5Cis6MTAwQTEwMDAyNEMwOTdDRkU3ODcwMTAwRDIwNkU3NTcwMDAwQTgwNjU5Cis6MTAwQTIwMDA5N0MxOUZBRjAwMEFFNzg3MDAwNjIyQzBFNzA3MDAwMEQyCis6MTAwQTMwMDA5MEMwRTc2N0ZFRkYzRUMwRTcwNzI2MDAwQUMwRTc4N0QxCis6MTAwQTQwMDAwMTAwM0VDMEU3MDdGRkZGQkUwNjlGQUYxMDBCOTdDRjI4Cis6MTAwQTUwMDAxNzAwQTdBRjc4MDZDMDA1MjcwMDc2MDZFNzg3MDEwMEQ0Cis6MTAwQTYwMDBEMjA2OUZBRjAwMEFFNzA3MEMwMDQwQzA5RkFGMTAwQkYzCis6MTAwQTcwMDAwMDkwMjcwMEE2MDYyNzAwQUEwNkU3MDlCMjA2QjQwNkRBCis6MTAwQTgwMDAyNzAwQUUwNjI3MDBBQzA2OUZBRkFFMEFDMDA3MDAwMEU1Cis6MTAwQTkwMDAyNzAwQjIwMjI3MDBCNDAyMjcwMDhFMDZDMDA3MDYwMDE2Cis6MTAwQUEwMDBDODA5REUwMEM4MTcwMzAwQzkwNzcwMDYyOTBBMDBEQTYyCis6MTAwQUIwMDA3REMxOTdDRkQ3MDkwMEMwQzFERjAwOTAyNzAwOTYwNkZGCis6MTAwQUMwMDBFNzA3OTYwNjk4MDYyNzAwQTAwNkU3MDdBMDA2QTIwNkY1Cis6MTAwQUQwMDAyNzAwQTYwNjI3MDA5MDA2MjcwMDlFMDZDODA5OUMwNjQ4Cis6MTAwQUUwMDBDMTA5OUEwNkM5MDdBNDA2MTEwMjA5MDJDODE3NDAwNkRGCis6MTAwQUYwMDAwMURBN0FDMTUxOTRDODA5QzgwNkM5MDdDNjA2QzEwOUY2Cis6MTAwQjAwMDA5QTA2MTEwMjA5MDJDODE3MDgwMDAxREE3QUMxNTE5NDQ1Cis6MTAwQjEwMDBFNzA1MDBDMDk3Q0ZFNzU3MDAwMDc2MDY5N0MwOUZBRjY0Cis6MTAwQjIwMDAwNDAwRTcwOUJFMDZCQTA2RTc1N0ZGRkZCQTA2MDRDMThDCis6MTAwQjMwMDBFNzA3MTAwQkI4MDY5N0NGRTcxNzMyMDBCQTA2RTc2NzRBCis6MTAwQjQwMDBGRjA3QkEwNkU3MDc0NjBCQjgwNjk3Q0ZFNzU3MDAwMDNFCis6MTAwQjUwMDBDMDA2MjNDMEU3MDcwNDAwOTBDMEU3MDcwMDgwODBDMEZDCis6MTAwQjYwMDBFNzA3MDAwMDgwQzBFNzA3MDA4MDgwQzBDMDA3MDAwMEUyCis6MTAwQjcwMDBDMDA3MDAwMEMwMDcwMDAwRTcwNzAwMDA4MEMwRTcwN0NCCis6MTAwQjgwMDAwMDgwODBDMEU3MDcwMDgwNDBDMEMwMDcwMDAwRTcwNzgyCis6MTAwQjkwMDAwMDAwNDBDMEU3MDcwMDAwODBDMEU3MDcwNDAwOTBDMEU1Cis6MTAwQkEwMDBFNzA3MDAwMjQwQzBFNzA3MEMwMjQwQzBFNzA3MDAwMDZCCis6MTAwQkIwMDBDMDA2RTcwNzAwMDBCODA2RTcwNzAwMDBEMjA2RDcwOTFECis6MTAwQkMwMDAwMEMwQzFERjlGQUYzNDAyRTcwNTAwQzA5RkFGQzQwMTgyCis6MTAwQkQwMDA5N0NGRDcwOTAwQzAxNzAwMTcwMjk3MDJFNzU3MDAwMDA4Cis6MTAwQkUwMDBBODA2MDZDMEMwMDk5MkMwQzA3NzA5MDI5RkMxNUMwNTczCis6MTAwQkYwMDA5RkNGMzIwNkQ3MDkwRUMwRTcwNzAwMDAwRUMwOUZBRjk3Cis6MTAwQzAwMDAwMjBDRTcwNTBFQzA5N0NGRDcwOTAwQzAxNzAyQzgwOTJDCis6MTAwQzEwMDBCMEMwRTc2N0ZFN0ZCMEMwQzg3NzAwMjA5RkMxNjRFQjFCCis6MTAwQzIwMDBFNzU3MDAwMEM4MDI5RkMxODBFQkM4OTlDQTAyQzg2Nzk1Cis6MTAwQzMwMDAwNDAwOUZDMTk2RUI5RkNGNENFQkU3MDcwMDAwQTZDMEQ2Cis6MTAwQzQwMDBFNzA5QjBDMEM4MDJFNzA3MDMwMEIwQzA5N0NGQzAwOUVBCis6MTAwQzUwMDBCMDA2QzAzNzAxMDA5N0M5QzkwOUIyMDYwMjAwNDE5MDI5Cis6MTAwQzYwMDA0ODAyQzkxNzA2MDA5RkFGMDgwNDlGQTI3MjBDMDJEQTVGCis6MTAwQzcwMDA3N0MxNDE2MDcxQzE5N0NGMTcwMjU3MDI0MzA0MjEwNDI1Cis6MTAwQzgwMDBFMDAwNDMwNDIxMDRFMDAwNDMwNDIxMDRFMDAwQzEwNzI0Cis6MTAwQzkwMDAwMTAwQzkwNUM4MDU5N0NGRTcwNzAxMDA4RTA2QzgwNzAwCis6MTAwQ0EwMDA4NjA2RTcwNzAwMDA4NjA2RTcwNzEwMDg4ODA2RTcwN0JDCis6MTAwQ0IwMDAwNDAwOEEwNkU3MDdCQzBDOEMwNkMxMDcwMzgwNTBBRjBFCis6MEMwQ0MwMDA5N0NGRTcwNzAwMDA4RTA2OTdDRjAwMDBEQQorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2thd2V0aC9uZXdfY29kZV9maXguYmluLmloZXggYi9maXJtd2FyZS9rYXdldGgvbmV3X2NvZGVfZml4LmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMzVkM2QKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rYXdldGgvbmV3X2NvZGVfZml4LmJpbi5paGV4CkBAIC0wLDAgKzEsNDAgQEAKKzoxMDAwMDAwMEI2QzNBQUJCQ0NERDAyMDAwODAwMjgwMDJDMDAzNDAwRDcKKzoxMDAwMTAwMDNDMDA0MDAwNDgwMDU0MDA1ODAwNUUwMDY0MDA2ODAwNDYKKzoxMDAwMjAwMDZFMDA2QzAwNzIwMDc2MDA3QzAwODAwMDg2MDA4QTAwMDIKKzoxMDAwMzAwMDkwMDA5NDAwOTgwMDlFMDBBNjAwQUEwMEIwMDBCNDAwQjIKKzoxMDAwNDAwMEI4MDBDMDAwQzYwMENBMDBEMDAwRDQwMEQ4MDBFMDAwNEMKKzoxMDAwNTAwMERFMDBFODAwRjAwMEZDMDAwNDAxMEEwMTE4MDEyMjAxQTIKKzoxMDAwNjAwMDI4MDEzQTAxM0UwMTdFMDE5ODAxOUMwMUEyMDFBQzAxRTgKKzoxMDAwNzAwMEIyMDFCQTAxQzAwMUM4MDFEMDAxRDYwMUY0MDFGQzAxRUUKKzoxMDAwODAwMDA4MDIxNjAyMUEwMjIyMDIyQTAyMkUwMjNFMDI0NDAyMkMKKzoxMDAwOTAwMDRBMDI1MDAyNjQwMjYyMDI2QzAyNzIwMjg2MDI4QzAyMDAKKzoxMDAwQTAwMDkwMDI5RTAyQkMwMkQwMDJEODAyREMwMkUwMDJFODAyMEEKKzoxMDAwQjAwMEU2MDJGNDAyRkUwMjA0MDMwQzAzMjgwMzdDMDM5MDAzMEYKKzoxMDAwQzAwMDk0MDM5QzAzQTIwM0MwMDNEMDAzRDQwM0VFMDNGQTAzRkEKKzoxMDAwRDAwMEZFMDMyRTA0MzIwNDNDMDQ0MDA0NEUwNDc2MDQ3QzA0RTcKKzoxMDAwRTAwMDg0MDQ4QTA0OEUwNEE2MDRCMDA0QjgwNEJFMDREMjA0QjYKKzoxMDAwRjAwMERDMDRFRTA0MTAwNTFBMDUyNDA1MkEwNTM2MDUzNDA1MkUKKzoxMDAxMDAwMDNDMDU0MjA1NjQwNTZBMDU2RTA1ODYwNTIyMDYyNjA2M0QKKzoxMDAxMTAwMDJDMDYzMDA2NDIwNjRBMDY0RTA2NTYwNjU0MDY1QTA2NzUKKzoxMDAxMjAwMDYwMDY2NjA2RTgwNkVFMDZGNDA2MTYwNzI2MDcyQzA3QTQKKzoxMDAxMzAwMDMyMDczNjA3M0EwNzNFMDc1MjA3NTYwNzVBMDc2NDA3NDEKKzoxMDAxNDAwMDc2MDc3QTA3ODAwNzg0MDc4QTA3OUUwN0EyMDdEQTA3REYKKzoxMDAxNTAwMERFMDdFMjA3RTYwN0VBMDdFRTA3RjIwN0Y2MDcwRTA4RjIKKzoxMDAxNjAwMDE2MDgxODA4MUEwODFDMDgxRTA4MjAwODIyMDgyNDA4NjcKKzoxMDAxNzAwMDI2MDgyODA4MkEwODJDMDgyRTA4MzIwODNBMDg0NjA4QkIKKzoxMDAxODAwMDRFMDg1NDA4NUUwODc4MDg3RTA4ODIwODg2MDg4QzA4QTUKKzoxMDAxOTAwMDkwMDg5ODA4OUUwOEE0MDhBQTA4QjAwOEFFMDhCNDA4RjkKKzoxMDAxQTAwMEJFMDhDNDA4QzIwOENBMDhDODA4RDQwOEU0MDhFODA4OTkKKzoxMDAxQjAwMEY2MDgxNDA5MTIwOTFBMDkyMDA5MjYwOTI0MDkyQTA5MkUKKzoxMDAxQzAwMDNFMDk0QzA5NTYwOTcwMDk3NDA5NzgwOTdFMDk3QzA5QjEKKzoxMDAxRDAwMDgyMDk5ODA5OUMwOUEwMDlBNjA5QjgwOURDMDlFODA5NUYKKzoxMDAxRTAwMEVDMDlGQzA5MTIwQTE4MEExRTBBNDIwQTQ2MEE0RTBBQkIKKzoxMDAxRjAwMDU0MEE1QTBBNUUwQTY4MEE2RTBBNzIwQTc4MEE3NjBBNkQKKzoxMDAyMDAwMDdDMEE4MDBBODQwQTk0MEFBNDBBQjgwQUJFMEFCQzBBQjQKKzoxMDAyMTAwMEMyMEFDODBBQzYwQUNDMEFEMDBBRDQwQUQ4MEFEQzBBMUEKKzoxMDAyMjAwMEUwMEFGMjBBRjYwQUZBMEExNDBCMUEwQjIwMEIxRTBCNEMKKzoxMDAyMzAwMDI2MEIyRTBCMkMwQjM2MEIzQzBCNDIwQjQwMEI0QTBCQTgKKzoxMDAyNDAwMEFBMEJCMDBCQjYwQkMwMEJDODBCREEwQkU4MEJFQzBCMTAKKzoxMDAyNTAwMEZBMEI0QTBDNTQwQzYyMEM2NjBDOTYwQzlBMENBMDBDMEYKKzowRTAyNjAwMEE2MENBNDBDQUMwQ0IyMENCMDBDQzAwQzAwMDAzMAorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2thd2V0aC90cmlnZ2VyX2NvZGUuYmluLmloZXggYi9maXJtd2FyZS9rYXdldGgvdHJpZ2dlcl9jb2RlLmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzZTE2NTgKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rYXdldGgvdHJpZ2dlcl9jb2RlLmJpbi5paGV4CkBAIC0wLDAgKzEsMTMgQEAKKzoxMDAwMDAwMEI2QzNBQUJCQ0NEREM4MDdBMDAwRjAwNzVFMDAwNjAwOUYKKzoxMDAwMTAwMEYwMDcwQTAwMDgwMEYwMDkwMDAwMDIwMEU3MDczNjAwQjgKKzoxMDAwMjAwMDAwMDBGMDA3MDAwMDA0MDBFNzA3NTBDMzEwQzBGMDA5MEIKKzoxMDAwMzAwMDBFQzAwMDAwRTc4NzAxMDAwRUMwOTdDRkQ3MDkwMEMwQUYKKzoxMDAwNDAwMDE3MDJDODA3QTAwMEU3MTc1MEMzMTBDMDMwRDgwNDAwM0IKKzoxMDAwNTAwMDMwNUMwODAwMDQwMEIwQzAwNjAwQzgwNUU3MDUwMEMwMTkKKzoxMDAwNjAwMEMwREY5N0NGNDlBRkMwMDcwMDAwNjBBRjRBQUYwMDBDQjgKKzoxMDAwNzAwMDBDMDA0MEQyMDAxQzBDMDA0MEQyMzAwMDA4MDBGMDA3RjkKKzoxMDAwODAwMDAwMDAwNDAwRjAwNzg2MDAwNjAwNjdDRjI3MEMwMjAwN0UKKzoxMDAwOTAwMDAwMDAyNzBDMDAwMDBFQzA0OUFGNjRBRkMwMDcwMDAwOEQKKzoxMDAwQTAwMDRCQUY0QUFGNUFDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzowNjAwQjAwMDk0MDAwNTAwMDAwMEIxCis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluLmloZXggYi9maXJtd2FyZS9rYXdldGgvdHJpZ2dlcl9jb2RlX2ZpeC5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzEyZjczCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluLmloZXgKQEAgLTAsMCArMSwzIEBACis6MTAwMDAwMDBCNkMzQUFCQkNDREQwMjAwMDYwMDE4MDAzRTAwODAwMDhCCis6MDYwMDEwMDA5ODAwQUEwMDAwMDBBOAorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vbXByLkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vbXByLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTNiYTEwCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi9tcHIuSEVYCkBAIC0wLDAgKzEsMTA0IEBACis6MDMwMDMzMDAwMjAwMUFBRQorOjA0MDAxQTAwNTNEOEVGMzI5NgorOjEwMDAwMzAwOEU1NjhGNTdFNTU3MTU1N0FFNTY3MDAyMTU1NjRFNjBFQworOjA3MDAxMzAwMDUxMjBGQTI4MEVFMjI4RQorOjAzMDAyMzAwMDIwMDQ2OTIKKzoxMDAwNDYwMEMwRTBDMDgzQzA4MkMwODY3NTg2MDBDMEQwNzVEMDA4NjcKKzoxMDAwNTYwMDMwOTkwRTMwMEIwN0EyMEU5MjlCODUzNjk5QzI5OUQyMjMKKzoxMDAwNjYwMDEyMjAxMjAzMDIwMkY5QzIxMjMwMDMxOTdFN0U3RjQwNkIKKzoxMDAwNzYwMDc1MUE3RTc1MUI0MDc1MTcwMDdFN0Q3RkMwNzUxODdEQ0QKKzoxMDAwODYwMDc1MTlDMDgwMTc3RTdEN0ZDMDc1MUE3RDc1MUJDMDc1N0EKKzoxMDAwOTYwMDE3MDE3RTdFN0Y0MDc1MTg3RTc1MTk0MDIwMEIwMzAyN0UKKzoxMDAwQTYwMDAxODRFNTNBQzM5NTUzNTAzQzIwMEMzNDIwMDkzMTkwMjUKKzoxMDAwQjYwMDdGOUJFMDU1Mzg3MDI5MzAxMDEyQUYzQTA1M0FFNTFCQTAKKzoxMDAwQzYwMDJGRjU4MkU0MzUxQUY1ODNFMDEzOTIwRUFGM0EwNTNBMUUKKzoxMDAwRDYwMEU1MUIyRkY1ODJFNDM1MUFGNTgzRTBGNTM2MDIwMkY3QzMKKzoxMDAwRTYwMEMyMEIwMjAyRjczMDAzMTE5MDdGQzdFNEYwQTNFMDU0N0QKKzoxMDAwRjYwMDAyRjUxREEzRTBGNTFDODAxMTkwN0ZDOUU0RjA5MDdGMDYKKzowMzAwNDMwMDAyMEYwMEE5Cis6MDMwMDAwMDAwMjAwMjZENQorOjBDMDAyNjAwNzg3RkU0RjZEOEZENzU4MTVBMDIwQTMzOTkKKzo0MDAxMDYwMEM2RTA1NDAyRjUxREEzRTBGNTFDRTUxNzI0RkY5MjAzMzAwRDBEQzIwRDkwN0ZCQjc0MDFGMEMyMEIwMjAyRjdFNTFENjAwNUMyMEIwMjAyRjc4NTFDNTM4NTE5ODI4NTE4ODNFMDEzOTIwRDc1MTJGRjIwMEMzQTIwMDkzNzkwODIKKzo0MDAxNDYwMDdGOUJFMDU1Mzg3MDJGMzAxMDFDODUxOTgyODUxODgzQTNFMDEzOTIwRTg1MTk4Mjg1MTg4M0EzQTNFMEY1MzY3NTNBMDMwMjAyRjc3NTNBMDI4NTE5ODI4NTE4ODNBM0UwRjUzNjAyMDJGNzc1M0EwMUMyMEIwMjAyRjczMDAzRkUKKzo0MDAxODYwMDBFOTA3RkM2RTA1NDAyRjUxREEzRTBGNTFDODAwQzkwN0ZDOEUwNTQwMkY1MURBM0UwRjUxQ0U1M0FDMzk1NTM1MDAzMDIwMjY4RTUxRDYwMDdDMjE0QzIwNTAyMDJGNzg1MUM1Mzg1MUI4Mjg1MUE4M0UwMTM5MjBENzUxMkZGNjEKKzo0MDAxQzYwMDMwMEMwMzAyMDI2MDMwMDkwMzAyMDI2MDkwN0Y5QkUwNTUzODYwMDMwMjAyNjAzMDEwMUI4NTFCODI4NTFBODNBM0UwMTM5MjlCODUxQjgyODUxQTgzQTNBM0UwRjU5OTc1M0EwMzgwMEQ4NTFCODI4NTFBODNBM0UwRjU5OTc1NzUKKzo0MDAyMDYwMDNBMDJFNTNBQzM5NTUzNDAyNjMwMDMwNzkwN0ZDN0U0RjA4MDA1OTA3RkM5RTRGMEU1MTcyNEZGOTIwMzIwMEQwMzAyMDJGN0MyMEQ5MDdGQkI3NDAxRjAwMjAyRjczMDEwMTJBRjNBMDUzQUU1MUIyRkY1ODJFNDM1MUFGNTgzOTQKKzo0MDAyNDYwMEUwMTM5MjBFQUYzQTA1M0FFNTFCMkZGNTgyRTQzNTFBRjU4M0UwRjUzNkQyMEIwMjAyRjc3NTNBMDFDMjE0MDIwMkY3MzAwQzAzMDIwMkY1MzAwOTAzMDIwMkY1OTA3RjlCRTA1NTM4NzA3OTMwMTAxMkFGM0EwNTNBRTUxQjJGRjIKKzo0MDAyODYwMEY1ODJFNDM1MUFGNTgzRTAxMzkyOUJBRjNBMDUzQUU1MUIyRkY1ODJFNDM1MUFGNTgzRTBGNTk5RTUzQUMzOTU1MzQwMjIzMDAzMDc5MDdGQzdFNEYwODAwNTkwN0ZDOUU0RjBFNTE3MjRGRjkyMDMzMDBEMzZDMjBEOTA3RkJCMEUKKzo0MDAyQzYwMDc0MDFGMDgwMkMzMDEwMTJBRjNBMDUzQUU1MUIyRkY1ODJFNDM1MUFGNTgzRTAxMzkyMEVBRjNBMDUzQUU1MUIyRkY1ODJFNDM1MUFGNTgzRTBGNTM2RDIwQjgwMDJDMjE0RDIwMTIwOTgwMzAyMDQzNUMyOTgyMDAyMDMwMjAzODMKKzo0MDAzMDYwMEEyMjAxNTI3QUYzOTA1Mzk3NDgwMkZGNTgyRTQzNDdFRjU4M0U1OTlGMDMwMTA0REFGMzkwNTM5NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjA4MDNBODU5OTU1RTU1NUI1NDcwNEQyMDk4MDJFRTU1NUI1NDYwNEMyMDk4MDI1MUMKKzo0MDAzNDYwMEFGMzkwNTM5NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTU1RjAzMDEwMTFBRjM5MDUzOTc0ODAyRkY1ODJFNDM0N0VGNTgzRTU5OEYwRDIwRkU1MzlDMzk1NDM1MDAzMDIwNDMzOTA3RkI4RTAzMEUxMTZFNTM5QzM5NDQwNTAwMzAyRjUKKzo0MDAzODYwMDA0MzMxNTM5MTUzOTA1MkI0MzM0MDEwMjA0MzM5MDdGQjdFNTM5RjA3NTM5MDBDMjAyMDIwNDMzMjAxNTI3QUYzOTA1Mzk3NDAwMkZGNTgyRTQzNDdFRjU4M0U1OTlGMDMwMTA0REFGMzkwNTM5NzQwMDJGRjU4MkU0MzQ3RUY1OTQKKzo0MDAzQzYwMDgzRTU5OEYwODAzQTg1OTk1NUU1NTVCNTQ3MDREMjA5ODAyRUU1NTVCNTQ2MDRDMjA5ODAyNUFGMzkwNTM5NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTU1RjAzMDEwMTFBRjM5MDUzOTc0MDAyRkY1ODJFNDM0N0VGNTgzRTU5OEYwRUEKKzo0MDA0MDYwMEQyMEZFNTM5QzM5NTQzNDAyNDkwN0ZCNkUwMzBFMTEyRTUzOUMzOTQ0MDQwMTYxNTM5MTUzOTA1MkI0MzM0MDE4MDBCOTA3RkI5RTUzOUYwNzUzOTAwRDIwMkQyMDEzMDAxMDVDMjAxMDIwMDU2RDBEMEQwODZEMDgyRDA4M0QwMkYKKzo0MDA0NDYwMEUwMzI5MDdGQkNFMDIwRTE1NEU1MzQ2MDUwRTUzMTcwNENFNTM0MzBFMTBCRTRGNTJGNzUzNDAxNzUzMTAyODAwRUEyMDhFNDMzRjUyRkMyMDhFNEY1MzQ3NTMxMTBFNEY1NTY3RTAwN0IwMDc0MjQyNTU2RjlFRTM0MDBGQTEyRDgKKzo0MDA0ODYwMDBDNzlGRjc0MDAyNTU2RjU4MkU0MzQ3REY1ODNFRkYwMDU1NkU1NTZCNDBDREI5MDdGQkQ3NDBDRjA5MDdGQ0FFMDMwRTEwMzAyMDVEMUU0RjU1Njc0NDAyNTU2RjU4MkU0MzQ3REY1ODNFMEZGRTU1NjdDMDA3QjAwMjQzQkY5MDMKKzo0MDA0QzYwMEVDMzQwMEZBRUYxMjBDOTIwNTU2RTU1NkI0MThEQkU1M0I2MDExNzVDOTIwNzVDODM2ODUzQ0NBODUzRENCRTQ5MDdGOUZGMEU1M0UxMzkyMTA5MjlGODUzRjM4RTU0MDEzOTIxNUU1NDE2MDA5OTA3Rjk4RTA1NEZCRjA4MDA3NDQKKzo0MDA1MDYwMDkwN0Y5OEUwNDQwNEYwRTU0MjYwMDk5MDdGOThFMDU0N0ZGMDgwMDc5MDdGOThFMDQ0ODBGMEU1NDg2MDBCQzIwQ0MyMDk5MDdGOTVFMDQ0MDJGMEU1NDk2MDBDRDIwOTQzMzQwMTkwN0Y5NUUwNDQwMkYwRTU0QTYwMERDMkFGQkIKKzo0MDA1NDYwMEMyMEJEMjAwRTRGNTUzRjUzQUQyQUZFNTRCNjAwNTMwMTUwMkQyMDlFNTRDNjAxNTkwN0Y5NUUwNTRGREYwOTA3RjlFRTA0NDAyRjA5MDdGOThFMDU0RkRGMEU1NEQ2MDBBRDI5Q0MyOTg3NTJDMDE3NTMxMUVFNTRFNjAwN0MyMjcKKzo0MDA1ODYwMDlDRTRGNTM5RjUyQ0U1NEY2MDAzRTRGNTM5RTU1MDYwMDJEMjA3RTU1MTYwMEFFNTRENzAwMkY1MzFFNTUxNDIzNEU1NTI2MDFGOTA3RkQ3NzQxMUYwNzQzMUYwNzQxMkYwNzQzMkYwNzQxM0YwNzQzM0YwNzQxNEYwNzQzNEYwNjcKKzo0MDA1QzYwMEQyMDNEMjAyRDIwOEU0OTA3RkNCRjBBMjBDRTQzM0ZGNjUyOTYwMDU4RjI5NDMzNDAxQTIwOUU0MzNGRjY1MkE2MDA1OEYyQTQzMzQwMTkwN0Y5QkUwRkY1NDA4NjQwOEY1NTc2NTI1NjAwNjg1NTcyNTQzMzQwMUVGNTQxMDY0M0EKKzo0MDA2MDYwMDEwRjU1NzY1MjY2MDA2ODU1NzI2NDMzNDAxRUY1NDQwNjQ0MEY1NTc2NTI3NjAwNjg1NTcyNzQzMzQwMUVGNTQyMDY0MjBGNTU3NjUyODYwMDY4NTU3Mjg0MzM0MDE5MDdGOUFFMDU0NDA2NDQwRjU1NzY1MkU2MDA2ODU1NzJFNUIKKzo0MDA2NDYwMDQzMzQwMTMwMDczNUMyQUYzMDAyMTg5MDdGQjhFMDIwRTEyN0U1Mzk2MDA5OTA3RkI3RjBFNEY1MzlDMjAyQzIwNzgwMTY5MDdGQjZFMDIwRTEwRkU1Mzk2MDA5OTA3RkI5RjBFNEY1MzlEMjAyQzIwN0QyQUYyMDA1M0QzMDAzREIKKzo0MDA2ODYwMDFFOTA3RkM2RTAyMEUxMzM5MDdFNDBFMDEzOTIwRDc1M0EwMTkwN0ZDN0UwRjU1M0QyMDU3NTEyRkY4MDFDOTA3RkM4RTAyMEUxMTU5MDdEQzBFMDEzOTIwRDc1M0EwMTkwN0ZDOUUwRjU1M0QyMDU3NTEyRkYyMDE0MzMyMDAwRTYKKzo0MDA2QzYwMDA2RTUzQTY1NTM3MDJBMzAwNTFBMzAwMzA5RTQ5MDdGQzdGMEMyMDM4MDA3RTQ5MDdGQzlGMEQyMDNDMjA1RTRGNTUzRjUzQTMwMEQwQUMyMERDMjAwOTA3RkJCNzQwMUYwMzAxNDAzMDIwN0JGMjAwNTAzMDIwN0JGMzAwQzAzMTQKKzo0MDA3MDYwMDAyMDdCRjMwMDkwMzAyMDdCRjkwN0Y5QkUwNTUzODYwMDMwMjA3QkYzMDAzMEM3RTdFN0Y0MDc1NTg3RTc1NTk0MDgwMEE3RTdEN0ZDMDc1NTg3RDc1NTlDMDMwMTAxMkFGM0EwNTNBRTU1OTJGRjU4MkU0MzU1OEY1ODNFMDEzN0MKKzo0MDA3NDYwMDkyMUFBRjNBMDUzQUU1NTkyRkY1ODJFNDM1NThGNTgzRTBGNTU3RTUzQUMzOTU1MzUwMkEzMDEwMTJBRjNBMDUzQUU1NTkyRkY1ODJFNDM1NThGNTgzRTAxMzkyMEVBRjNBMDUzQUU1NTkyRkY1ODJFNDM1NThGNTgzRTBGNTM2ODgKKzo0MDA3ODYwMEQyMEI4MDE1QzIwQjMwMDMwOUU0OTA3RkM3RjBDMjAzODAwN0U0OTA3RkM5RjBEMjAzMzAxMDA0QTIxQTkyOUJEMjE0QzJBRjg1NTc5OTIwMEIwRDMwMEQwQUMyMERDMjAwOTA3RkJCNzQwMUYwRDJBRjIyOTA3RkU5RTAxMjBDNzAKKzo0MDA3QzYwMEE0MDkxQzAwMDk4OTAxMDlFNjAzMDdFMzA2MDkwRDA4MDkwMTA5MDhFOTBBMDhGODBCMDAwMDBBMjQ5MDdGRUJFMDI0RkU2MDFDMTQ3MDAzMDIwODc5MjQwMjYwMDMwMjBBMjQ3NDBEOTA3RkQ0RjA3NDg3OTA3RkQ1RjAwMjBBRTYKKzo0MDA4MDYwMDJCOTA3RkVBRTBCNDAxMDQ3RjAyODAwMjdGMDM3NTgyRDg3NTgzMERFRkYwNzU4MkQxNzU4MzBERjA3NTgyQ0E3NTgzMERGMDc1ODJDMzc1ODMwREYwOTA3RkVBRTAwNDc1ODI5RTc1ODMwREYwOTA3RkVGRTBGRTkwN0ZFRUUwN0IKKzo0MDA4NDYwMDdDMDAyNDAwRjU1QUVDM0VGNTU5NzUxNTBENzUxNjk5NzU4MjlCNzU4MzBERTA3NTEzMDBGNTE0RDNFNTE0OTU1QUU1MTM5NTU5NDAwNjg1NTkxMzg1NUExNDEyMEJCQTAyMEEyQjkwN0ZFQUUwNzAwQjc1NTZGRjc1NTcwRDc1MDMKKzo0MDA4ODYwMDU4REM4MDJEOTA3RkVBRTBCNDAxMEI3NTU2RkY3NTU3MEQ3NTU4RTA4MDFCOTA3RkVBRTBCNDAyMEI3NTU2RkY3NTU3MEQ3NTU4RjA4MDA5NzU1NkZGNzU1NzBFNzU1ODFFOTA3RkVFRTA3NTU5MDBGNTVBQUU1N0FGNTg4RTE1MTIKKzo0MDA4QzYwMDhGMTY4RjgyOEU4M0UwRkVBM0UwOEUxM0Y1MTREMzk1NUFFNTEzOTU1OTQwMDY4NTU5MTM4NTVBMTQxMjBCQkEwMjBBMkI5MDdGMDBFNTExRjA5MDdGQjU3NDAxRjAwMjBBMkI5MDdGRUFFMEY1MTEwMjBBMkIxMjBDMjQ5MDdGODQKKzo0MDA5MDYwMEVBRTBGNTEwMDIwQTJCOTA3RjAwRTUxMEYwOTA3RkI1NzQwMUYwMDIwQTJCOTA3RkU4RTAyNDdGNjAyNzE0NjAzNDI0MDI2MDAzMDIwQTI0QTIxNkU0MzNGRjI1RTBGRkEyMThFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0NTUKKzo0MDA5NDYwMDAyRjAwMjBBMkJFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMEEyQjkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMEIKKzo0MDA5ODYwMDAyMEEyQjkwN0ZFOEUwMjRGRTYwMTcyNDAyNjAwMzAyMEEyQjkwN0ZFQUUwNjQwMTYwMDMwMjBBMjRDMjE2MDIwQTJCOTA3RkVBRTA3MDc2OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0OEQKKzo0MDA5QzYwMDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNDU5MDdGRThFMDI0RkU2MDEwMjQwMjcwMzk5MDdGRUFFMDY0MDE3MDJBRDIxNjgwMkQ5MDdGRUFFMDcwMjA5MDdGNzcKKzo0MDBBMDYwMEVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMkMyMTBFNEY1MTBGNTM0QzIwOUMyMENDMjBCQzIxNEMyMERDMjE1QTUKKzo0MDBBNDYwMEMyMTFDMjA3QzIxMkMyMEZDMjA4RjUzNUY1MzlGNTUzRjUzQUY1MzNGNTMwRjUyRkY1MkVGNTJERjUyQ0Y1MkJGNTJBRjUyOUY1MjhGNTI3RjUyNkY1MjVGNTI0QzIwNUMyMTdDMjE5QzIxNkMyMThDMjA0RDIxM0MyMDZDMjAxNzgKKzo0MDBBODYwMDkwN0Y5MkUwNTRGREYwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBGRjA5MDdGQUM3NDBFRjBEMkFGRDJCQ0QyNDcKKzo0MDBBQzYwMDFBMTIwRjdEQzIxNzMwMDQwMzEyMDQ0ODMwMDQyQTMwMDYyN0MyMDZFNTEyNjAxNjE1MTI5MDdGRDhFMDMwRTYwNDdGMDA4MDAyN0YyMDkwN0Y5NkVGRjA4MDA2OTA3Rjk2NzQyMEYwMTIwQjE0ODBDRDMwMTcwN0MyMTcxMjA3NDEKKzo0MDBCMDYwMEMwODBDMzMwMTlDMEMyMTkxMjBFREM4MEI5MjJFNTMxNjAwMjE1MzFFNTM5NjA1NTY1MzU3MDRCRTUzM0Y0NjAwMjA1MzNFNTMzQzM5NTQ0NDA0M0MyQUYzMDAyMUI5MDdGQjhFMDIwRTEyRDkwN0ZCN0U1MzlGMEMyMDJFNEY1QUEKKzo0MDBCNDYwMDM5RjUzM0Y1MzU3NTEyRkY4MDE5OTA3RkI2RTAyMEUxMTI5MDdGQjlFNTM5RjBEMjAyRTRGNTM5RjUzM0Y1MzU3NTEyRkZEMkFGODAwNjg1MzkzNUU0RjUzM0U1MkM2MDMwMjAwRjA3OTA3RjlCRTAzMEUwMEZFNTJENjAwNkU0OTcKKzo0MDBCODYwMEY1MkQ0MzM0MDFFNEY1MzA4MDE0RTUzMEQzOTU0NTUwMERFNTMwQjU0NTA2NzUyRDAxNDMzNDAxMDUzMEMyMEYyMjkwN0ZEOUUwMzBFMjA0N0YwMDgwMDI3RjIwOTA3Rjk2RUZGMDIyRTUxNDQ1MTM2MDU3QUUxM0FGMTREM0VGMEYKKzo0MDBCQzYwMDk0NDBFRTk0MDA0MDA0N0UwMDdGNDBDM0U1MTQ5RkY1MTRFNTEzOUVGNTEzRTRGREVEQzM5RkU0OUU1MDFGODUxNjgyODUxNTgzRTBGQzc0MDAyREY1ODJFNDM0N0ZGNTgzRUNGMDBEMDUxNkU1MTY3MDAyMDUxNTgwREE5MDdGQzQKKzo0MDBDMDYwMEE5NzQwMUYwOTA3RkFDRTA0NDAxRjA5MDdGQjVFRkYwMjI5MDdGQUNFMDU0RkVGMEU0OTA3RkI1RjAyMkU0OTA3RjkzRjA5MDdGOUM3NDMwRjA5MDdGOTY3NDIwRjA5MDdGOTQ3NDAxRjA5MDdGOUQ3NEZGRjA5MDdGOTc3NDg2REYKKzo0MDBDNDYwMEYwOTA3Rjk1NzQwM0YwOTA3RjlFNzQ4NEYwOTA3Rjk4RjBFNDkwN0ZDN0YwOTA3RkM5RjA5MDdGQ0JGMDc1OTg0MDQzQTgxMDkwN0ZERTc0MUZGMDkwN0ZERjc0MEZGMEQyMDQyMkJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQzMKKzo0MDBDODYwMEJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzNjcKKzo0MDBDQzYwMEEzQTM4MERGRTQ5MDdGOTVGMDkwN0Y5NEYwOTA3RjkzRjA5MDdGOURFMDQ0MDJGMDkwN0Y5N0UwNDQ0MkYwOTA3RjlDNzQxMEYwRTQ5MDdGOTZGMDkwN0Y5RDc0QkVGMDMwMTYwNDdGODA4MDAyN0YwMDkwN0Y5N0VGRjBFNDkwNDUKKzo0MDBEMDYwMDdGOTVGMDkwN0Y5RUYwOTA3Rjk4RjAyMkMwRTBDMEYwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBDMEQwNzVEMDA4NTM5MUVGOTA3RkE5NzQwMUYwMTIwQkJBRDBEMEQwODZEMDg0RDA4NUQwODJEMDgzRDBGMEQwRTAzMkMwNkEKKzo0MDBENDYwMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUMKKzo0MDBEODYwMDAwMTIwMTEwMDFGRkZGRkY0MENEMDYxQzAxMDEwMDAxMDIwMDAyMDkwMjQzMDAwMTAxMDA4MDMyMDkwNDAwMDAwN0ZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTgxMDI0MDAwMDIKKzo0MDBEQzYwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDQwMzA5MDQxMDAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJFMDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MDAwQTMKKzo0MDBFMDYwMDUzMDA0ODAwMzEwMDMxMDAzMjAwMkQwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIyMDM1NTAwNTMwMDQxMDAyRDAwMzUwMDMzMDAyMDAwMzIwMDMwMDAzMDAwMzIwMDYxMDA3MDAwNzIwMDMyMDAzNjAwMDAwMEMwRTBDMDgzREIKKzo0MDBFNDYwMEMwODJDMDg1QzA4NEMwODY3NTg2MDA1MzkxRUY5MDdGQUI3NDAyRjBEMjA2RDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE3NTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwMUYKKzo0MDBFODYwMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxOTUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwODQKKzo0MDBFQzYwMDUzOTFFRjkwN0ZBOTc0MDJGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyMTIwQ0NBMTIwRkIzOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMEQ3RTAwMTIwMDAzOTA3RkQ2RTA1NEZFRjAxMjBDMjQyMjAwMDIwRTY5MDAwMjBFQTMKKzo0MDBGMDYwMDQyMDAwMjBENDUwMDAyMEU5MDAwMDIwRjEwMDAwMjBGMTQwMDAyMEQxMjAwMDIwRjFDMDAwMjBFQjcwMDAyMEYyNDAwMDIwRjMzMDAwMjBGMkMwMDAyMEY1OEMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDUzOTFFRjkwQTkKKzo0MDBGNDYwMDdGQTk3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDUzOTFFRjkwN0ZBOTc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3RkQ2RTA1NEZCRjBFMDQ0QzEKKzozRDBGODYwMDA4RjAzMDFBMDRFMDQ0MDJGMDdGRjQ3RTAxMTIwMDAzOTA3RkQ2RTA1NEY3RjBFMDQ0MDRGMDIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyMkMKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKKworc3RhdGljIGNoYXIgdGhlRmlybXdhcmVEYXRlNTNbXSA9CisJIjA0LzI2LzIwMDIgIDAyOjQ3cCAgICAgICAgICAgICAgMTEsNTcwIFVTQTUzIjsKKwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2ExOHguSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOHguSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZmY3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE4eC5IRVgKQEAgLTAsMCArMSwxNDEgQEAKKzowMzAwMzMwMDAyMTJGN0JGCis6MTAwMDAzMDBFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwRTQ5MDdGOTZGMEJGCis6MTAwMDEzMDA5MDdGOTRGMDkwN0Y5RDc0RkZGMEU0OTA3Rjk3RjA5MDMxCis6MEYwMDIzMDA3Rjk1RjA5MDdGOUU3NDA3RjBFNDkwN0Y5OEYwMjIxNQorOjEwMDA0NjAwMzAwOTE4MTIxMzFCRUZDMzk1M0M0MDAzMDIwMEQ4OTBFOQorOjEwMDA1NjAwN0ZCRjc0MDFGMEMyMDlDMjAwODA3NzMwMDMzQjkwN0ZGNgorOjEwMDA2NjAwQzZFMDIwRTE2RDEyMTMxQkVGQzM5NDQwNTA2NDkwN0VFRQorOjEwMDA3NjAwNDBFMDEzOTIwOTkwN0ZDN0UwMTRGNTE5MjAwMDExNjA0MworOjEwMDA4NjAwMEZGNTA4N0U3RTdGNDE3NTBDN0U3NTBENDExMjBDQkEwOAorOjEwMDA5NjAwQzIwM0U0OTA3RkM3RjA4MDM5OTA3RkM4RTAyMEUxMzI0OAorOjEwMDBBNjAwMTIxMzFCRUZDMzk0NDA1MDI5OTA3REMwRTAxMzkyMDlCMAorOjEwMDBCNjAwOTA3RkM5RTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0RDOAorOjEwMDBDNjAwN0ZDMTc1MEM3RDc1MERDMTEyMENCQUQyMDNFNDkwN0YwOQorOjEwMDBENjAwQzlGMDkwN0ZCNkUwMzBFMTAzMDIwMTYwMTIxMUQ2OEZCRAorOjEwMDBFNjAwMTkxMjEzMjc4RjM2RTUxOUMzOTUzQTUwMEYxMjEyRUJFMgorOjEwMDBGNjAwRUYzMEUwMDhFNTM2MjBFNzAzMzAwQjVFQzIwQkU1MTk2QQorOjBDMDAzNjAwOTA3Rjk4NzQxMEYwOTBDMDAwRTBGRjIyNTIKKzowMzAwNDMwMDAyMTMwMEE1Cis6MDMwMDAwMDAwMjBFMDBFRAorOjQwMDEwNjAwNjA1OEI0ODAwMzQzMzYwMkU1MzYzMEU3MjZFNTE5RDM5NDIwNDAwMzc1MTkyMDg1MTkwODdFN0U3RjgwNzUwQzdFNzUwRDgwQUYzNjEyMEY0QkU1MTkyNUUwOTA3RkI3RjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDhENAorOjQwMDE0NjAwOTA3RTgwRTUzNkYwN0U3RTdGODE3NTBDN0U3NTBEODExMjBDREZFNTE5MDQ5MDdGQjdGMDkwN0ZDRUUwMzBFMTA2MjAwNTAzMDIwM0MxQzIwNUU0RjUxODc0NDAyNTE4RjU4MkU0MzQ3Q0Y1ODNFMEZGRTUxODdDMDA3QjAxN0FGMQorOjQwMDE4NjAwN0U3OTAwMjQwMEY5RUMzNDdFRkFFRjEyMEVEMjA1MThFNTE4QjQyMEQ3OTA3RTAwRTA2MDY4OTA3RTAzRTA2MDI0N0YwMUU0RkQxMjExQjE3RjAzN0RDRDEyMTFCMTQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMEU0OTBFMAorOjQwMDFDNjAwN0UxM0YwODAzMDkwN0UwMUUwRkYxMjEwMzU5MDdFMDJFMEZGMTIxMDVCN0YwMTkwN0UxMUUwRkQxMjExQjE3RjAzN0QwNzEyMTFCMTQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0Y5ODc0MTJGMEU1NDA0NDA2OTAzRQorOjQwMDIwNjAwQzAwMEYwOTA3RTAzRTA3MDA2OTA3RTEzRTA3MDA4RTQ5MDdFMTNGMDc1MjVGRjkwN0UwNUUwNjAxMkEzRTA1NDNGRjU0NDkwN0Y5ODc0MTNGMDkwQzAwMEU1NDRGMDkwN0UwN0UwNjAyQkEzRTA2MDA1NDM0MjgwODAwMzUzNDJEQQorOjQwMDI0NjAwN0Y1MzQyRkM5MDdFMDlFMDYwMTE0MzQyMDJBM0UwRkYxMjEwQTc5MDdFMEJFMEZGMTIxMENEQUY0MjEyMTA4MTkwN0UwM0UwNjAwODUzNDI3RkFGNDIxMjEwODE5MDdFMENFMDYwMThBM0UwNjAwNTQzNDYwMjgwMDM1MzQ2RkRCNAorOjQwMDI4NjAwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTBFRTA2MDE4QTNFMDYwMDU0MzQ2MDE4MDAzNTM0NkZFOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTEyRTBGNTNBQTNFMDEzOTIwREEzRTBGNTNDQTNFMDYwMDU0MzQ2MTA4QgorOjQwMDJDNjAwODAwMzUzNDZFRjkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UxNkUwNjAzMjUzNDRCRjkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdGOTg3NDExRjAxMjEyREZFRjU0RkU5MEMwMDBGMDUzM0VGREU0RkZBRDNFMTIwRgorOjQwMDMwNjAwMTFCMUU0RjUyQUY1MjlEMjA3OTA3RTE3RTA2MDBGNDMzRTAyRTRGRkFEM0UxMjExQjE3NTI5MDFEMjA3OTA3RTE4RTA2MDEwOTA3Rjk4NzQxMkYwRTU0MDQ0MDQ5MEMwMDBGMEQyMDA5MDdFMTlFMDYwMTE0MzQ0NDA5MDdGOThGMgorOjQwMDM0NjAwNzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0UxQUUwNjAwRjUzM0VGRUU0RkZBRDNFMTIxMUIxNzUyQjAxRDIwNzkwN0UxQkUwNjAwRjQzM0UwMUU0RkZBRDNFMTIxMUIxRTRGNTJCRDIwNzkwN0UxQ0UwNjAwRTkwN0Y5ODc0MTI4NAorOjQwMDM4NjAwRjBFNTQwNDQwMjkwQzAwMEYwOTA3RTFERTA2MDAyRDIwQjkwN0UxRUUwNjAwODc1MkMwMUU0RjUzOEQyMDc5MDdFMUZFMDYwMTE5MDdGRDc3NDExRjA3NDMxRjA3NDE1RjA3NDM1RjBEMjAzRTQ5MDdGQ0ZGMDMwMUE1MkU1Mzg5MgorOjQwMDNDNjAwNjAwMjE1MzgyMDEzNDlFNTEzRDM5NDAwNDAwNDE1MTM4MDNFNzUxMzBBMzAxQjAyRDIxMzEyMTJERkVGNTQwMUY1MTk2NTJBNjAwNTg1MTkyQUQyMDcxMjEzMzNFRjU0ODBGNTE5NjUyNjYwMDU4NTE5MjZEMjA3MzAwRDExMTI3RgorOjQwMDQwNjAwMTMzM0VGNTQxMEY1MTk2NTI1NjAwNTg1MTkyNUQyMDcyMDFCMDMwMjA3RUMzMDBBMTgxMjEzNkZFRkMzOTUzRDQwMDMwMjA0QUU5MDdGQzE3NDAxRjBDMjBBQzIwMDgwNzczMDA0M0I5MDdGQ0FFMDIwRTE2RDEyMTM2RkVGQzM1QQorOjQwMDQ0NjAwOTQ0MDUwNjQ5MDdENDBFMDEzOTIwQTkwN0ZDQkUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdEN0Y0MTc1MEM3RDc1MEQ0MTEyMEQwNEMyMDRFNDkwN0ZDQkYwODAzOTkwN0ZDQ0UwMjBFMTMyMTIxMzZGRUZDMzk0NDA1MDI5OTBCQworOjQwMDQ4NjAwN0NDMEUwMTM5MjBBOTA3RkNERTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0M3RkMxNzUwQzdDNzUwREMxMTIwRDA0RDIwNEU0OTA3RkNERjA5MDdGQkFFMDMwRTEwMzAyMDUzNjEyMTIyMDhGMTkxMjEzN0I4RjM3RTUxOUMzOTUyQgorOjQwMDRDNjAwM0I1MDBGMTIxMzU3RUYzMEUwMDhFNTM3MjBFNzAzMzAwQzVFQzIwQ0U1MTk2MDU4QjQ4MDAzNDMzNzAyRTUzNzMwRTcyNkU1MTlEMzk0MjA0MDAzNzUxOTIwODUxOTA4N0U3RDdGODA3NTBDN0Q3NTBEODBBRjM3MTIwRjg0RTUwMworOjQwMDUwNjAwMTkyNUUwOTA3RkJCRjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDg5MDdEODBFNTM3RjA3RTdEN0Y4MTc1MEM3RDc1MEQ4MTEyMEQyOUU1MTkwNDkwN0ZCQkYwOTA3RkQwRTAzMEUxMDYyMDA2MDMwMjA3OTdDMjA2RTRGOAorOjQwMDU0NjAwRjUxODc0QzAyNTE4RjU4MkU0MzQ3QkY1ODNFMEZGRTUxODdDMDA3QjAxN0E3RTc5MjAyNDIwRjlFQzM0N0VGQUVGMTIwRUQyMDUxOEU1MThCNDIwRDc5MDdFMjBFMDYwNjg5MDdFMjNFMDYwMjQ3RjAxRTRGRDEyMTFGQjdGMDMyOQorOjQwMDU4NjAwN0RDRDEyMTFGQjQzNDc4MDkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMEU0OTA3RTMzRjA4MDMwOTA3RTIxRTBGRjEyMTExOTkwN0UyMkUwRkYxMjExM0Y3RjAxOTA3RTMxRTBGRDEyMTFGQjdGMDM3RDA3MTIxMUZCNDM0NzgwOTA0OAorOjQwMDVDNjAwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0Y5ODc0MEFGMEU1NDE0NDA2OTBDMDAwRjA5MDdFMjNFMDcwMDY5MDdFMzNFMDcwMDhFNDkwN0UzM0YwNzUyRUZGOTA3RTI1RTA2MDEyQTNFMDU0M0ZGNTQ1OTA3Rjk4NzQwQkYwOTBFQgorOjQwMDYwNjAwQzAwMEU1NDVGMDkwN0UyN0UwNjAyQkEzRTA2MDA1NDM0MzgwODAwMzUzNDM3RjUzNDNGQzkwN0UyOUUwNjAxMTQzNDMwMkEzRTBGRjEyMTE2NTkwN0UyQkUwRkYxMjExOEJBRjQzMTIxMEYzOTA3RTIzRTA2MDA4NTM0MzdGQUZGRQorOjQwMDY0NjAwNDMxMjEwRjM5MDdFMkNFMDYwMThBM0UwNjAwNTQzNDcwMjgwMDM1MzQ3RkQ5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdFMkVFMDYwMThBM0UwNjAwNTQzNDcwMTgwMDM1MzQ3RkU5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjBENAorOjQwMDY4NjAwOTA3RTMyRTBGNTNCQTNFMDEzOTIwRUEzRTBGNTNEQTNFMDYwMDU0MzQ3MTA4MDAzNTM0N0VGOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3RTM2RTA2MDMyNTM0NUJGOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0Y3OQorOjQwMDZDNjAwOTg3NDA5RjAxMjEzNEJFRjU0RkU5MEMwMDBGMDUzM0ZGREU0RkZBRDNGMTIxMUZCRTRGNTMzRjUzMkQyMDg5MDdFMzdFMDYwMEY0MzNGMDJFNEZGQUQzRjEyMTFGQjc1MzIwMUQyMDg5MDdFMzhFMDYwMTA5MDdGOTg3NDBBRjA0MworOjQwMDcwNjAwRTU0MTQ0MDQ5MEMwMDBGMEQyMDA5MDdFMzlFMDYwMTE0MzQ1NDA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3RTNBRTA2MDBGNTMzRkZFRTRGRkFEM0YxMjExRkI3NTM0MDFEMjA4OTA3RTNCRTA2MDBGNDMzRjAxRTRFOQorOjQwMDc0NjAwRkZBRDNGMTIxMUZCRTRGNTM0RDIwODkwN0UzQ0UwNjAwRTkwN0Y5ODc0MEFGMEU1NDE0NDAyOTBDMDAwRjA5MDdFM0RFMDYwMDJEMjBDOTA3RTNFRTA2MDA4NzUzNTAxRTRGNTM5RDIwODkwN0UzRkUwNjAxMTkwN0ZENzc0MTM4OQorOjQwMDc4NjAwRjA3NDMzRjA3NDE2RjA3NDM2RjBEMjA0RTQ5MDdGRDFGMDMwMUE1MkU1Mzk2MDAyMTUzOTMwMTM0OUU1MTNEMzk0MDA0MDA0MTUxMzgwM0U3NTEzMEEzMDFCMDJDMjEzMTIxMzRCRUY1NDAxRjUxOTY1MzM2MDA1ODUxOTMzRDI3OQorOjQwMDdDNjAwMDgxMjEzODdFRjU0ODBGNTE5NjUyRjYwMDU4NTE5MkZEMjA4MzAwRTExMTIxMzg3RUY1NDEwRjUxOTY1MkU2MDA1ODUxOTJFRDIwODMwMUEyQTkwN0ZEMkUwMjBFMTIzOTA3QjQwRTA2MDA5RTBGNTE1OTA3QjQyRTBGNTE2OTAzNQorOjQwMDgwNjAwN0I0MUUwNjAwOTkwN0ZENzc0MTdGMDc0MzdGMEU0OTA3RkQzRjA5MDdGQzJFMDMwRTEwMzAyMDkyMEU1MEE3MDQwMzAwNzM5RTUzODcwMzVDMjA3RjUxODdFMDA3QjAwNzQyNDI1MThGOUVFMzQwMEZBMTIwRThDRkY3NDgwMjVCRAorOjQwMDg0NjAwMThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzgxMEU0RjUyQzc1MEEwMTIyRTUwQTY0MDE3MDQwMzAwODM5RTUzOTcwMzVDMjA4RjUxODdFMDA3QjAwNzQyRDI1MThGOUVFMzQwMEZBMTI5NworOjQwMDg4NjAwMEU4Q0ZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzkxMEU0RjUzNTc1MEEwMjIyRTUwQTY0MDI3MDM2MzAxNDJGQzIxNEY1MTg3RTAwN0IwMDc0MEUyNTE4RjlFRTM0MDA4MworOjQwMDhDNjAwRkExMjBFOENGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA1REI5MDdGQzM3NDA1RjA3NTBBMDMyMkU1MTU2MDMwMTUxNUU0RjUxODdFMDA3QjAwNzQxNDI1MThGOUVFMzQwMEZBMTIwRThDRkY3NDgwMjVGMgorOjQwMDkwNjAwMThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDNEQjkwN0ZDMzc0MDNGMEU0RjUwQTIyOTA3RkU5RTAxMjBFRTQwQTA4MDAwQTdDMDEwQUU4MDMwOTQ0MDYwOUZCMDgwOUY1MDkwOUREMEEwOUVDMEIwMDAwMEIzNzkwN0YzRAorOjQwMDk0NjAwRUJFMDI0RkU2MDE5MTQ2MDYxMjQwMjYwMDMwMjA5RDM3NDE5OTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjBCM0U5MDdGRUFFMDcwMDQ3RjAyODAwMjdGMDM3NTgyODI3NTgzMTlFRkYwNzU4MjdCNzU4MzE5RjA3NTgyNzQ3NTgzMTlCMgorOjQwMDk4NjAwRjA3NTgyNjY3NTgzMTlGMDc1ODI1ODc1ODMxOUYwOTA3RkVBRTAwNDc1ODIxNzc1ODMxOUYwNzQxOTkwN0ZENEYwNzQxMjkwN0ZENUYwMDIwQjNFOTA3RkVBRTBGRjEyMEYwQUVBNDk2MDBERUE5MDdGRDRGMEU5OTA3RkQ1RjA4NQorOjQwMDlDNjAwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0YwMEU1MDlGMDkwN0ZCNTc0MDFGMDAyMEIzRTkwN0ZFQUUwRjUwOTAyMEIzRTEyMEI0NjAyMEIzRTkwN0YwMDc0MDFGMDkwN0ZCNUYwMDIwNQorOjQwMEEwNjAwMEIzRTkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMTBFNDMzRkYyNUUwRkZBMjE2RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCM0VFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMEIzRTkwN0YwNAorOjQwMEE0NjAwRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkU4RTAyNEZFNjAxRDI0MDIwRgorOjQwMEE4NjAwNjAwMzAyMEIzRTkwN0ZFQUUwQjQwMTA1QzIxMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZCNgorOjQwMEFDNjAwRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0MDEwNEQyMTA4MDNGOTA3RkI0RTA0NDAxRjA0OQorOjQwMEIwNjAwODAzNjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjJENAorOjQwMEI0NjAwRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjA5MDdGOTU3NEMwRjA5MDdGOUU3NDNGRjA5MDdGOTg3NDE4RjBFNEY1OEU5MDdGREY3NEZGRjA5MDdGREVGMEU0RjUyNDc1MTgwMTdCMDA3NDI0MjUxOEY5RTQzNDAwRkE4QgorOjQwMEI4NjAwRTQxMjBFRDIwNTE4RTUxOEI0MDlFQTc1M0EwMUU0RjUzOEY1MTNGNTM2QzIwN0MyMEJDMjA1QzIwMEMyMDlDMjEzOTA3Rjk4NzQxM0YwNzU0NDAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjExQjE3RjEwOEY0MjEyMTA4MTkwN0YwMgorOjQwMEJDNjAwOTg3NDEyRjA3RjAxOEY0MEVGNDQwNjkwQzAwMEYwOTA3Rjk4NzQxNEYwNzU0NjgwOTBDMDAwNzQ4MEYwMEZFNEZEMTIxMUIxRTRGRjdFQTNBRDA2OEQzRTEyMTFCMTkwN0Y5ODc0MTFGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMTE4RQorOjQwMEMwNjAwQjE3RjAxMTIxMjZBN0YwMzdEMDcxMjExQjEyMDFCMDMwMjBDQjc3NTJEMDE3NTE4MDE3QjAwNzQyRDI1MThGOUU0MzQwMEZBRTQxMjBFRDIwNTE4RTUxOEI0MDlFQTc1M0IwMUU0RjUzOUY1MTNGNTM3QzIwOEMyMENDMjA2QzJDRAorOjQwMEM0NjAwMDBDMjBBQzIxMzkwN0Y5ODc0MEJGMDc1NDUwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIxMUZCN0YxMDhGNDMxMjEwRjM5MDdGOTg3NDBBRjA3RjAxOEY0MUVGNDQwNjkwQzAwMEYwOTA3Rjk4NzQwQ0YwNzU0NzgwOTBDMDAwNzQ0RQorOjQwMEM4NjAwODBGMDBGRTRGRDEyMTFGQkU0RkY3RUEzQUQwNjhEM0YxMjExRkI5MDdGOTg3NDA5RjA5MEMwMDBFNEYwN0YwNTdEN0YxMjExRkI3RjAxMTIxMjhCN0YwMzdEMDcxMjExRkJEMjEyMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJBNQorOjQwMENDNjAwRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjkwN0YyMAorOjQwMEQwNjAwOTg3NDA4RjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MDhGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDBFMDA1ODZGMEEzMDU1QworOjQwMEQ0NjAwODZERkY3MDU4NkQyQUYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkQyMTk5MDdGOTJFMDQ0MDJGMDkwN0ZBRUUwRkZEMzkyMTBFNDMzRkVFRjRFRjA4OQorOjQwMEQ4NjAwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBERjBEMkFGRDIxQTEyMTI0NUMyMTFFNEY1MEJGNTEzQzIxN0MyMTJENAorOjQwMERDNjAwOTA3RkExMDRGMDkwN0ZEOEUwNjUxNzYwMTAzMDEyMDVEMjFBMTIwMDQ2OTA3RkQ4RTBGNTE3ODAwODMwMTIwNUMyMUExMjAwNDYzMDExMDdDMjExMTIwOTIxODBENjMwMThEM0MyMTgxMjEzOTM4MENDMjI3ODdGRTRGNkQ4RkRDNworOjQwMEUwNjAwNzU4MTQ3MDIwRTQ3MDIwRDZGRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0M0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDBGNQorOjQwMEU0NjAwODA5MDEyQUNFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0ZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0ExRQorOjQwMEU4NjAwREZFOURFRTc4MEJFQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTVCOAorOjQwMEVDNjAwODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNDMQorOjQwMEYwNjAwQTNBMzgwREY4RjE4RTRGNTE5NzUxQUZGNzUxQjE5NzUxQzg2QUIxQUFBMUJBOTFDOTAwMDAxMTIwRUE1QjQwMzFEQUYxOTA1MTlFRkI1MTgwMTIyMTIwRThDN0UwMDI5RkZFRTNBQTkwNzc1MUFGRkY1MUI4OTFDODBENDdCMDBBNQorOjQwMEY0NjAwN0EwMDc5MDAyMjhGMUEwNTBERTUwREFFMEM3MDAyMDUwQzE0RjU4MjhFODNFNTFBRjAxMjAwMzYwNTBERTUwREFDMEM3MDAyMDUwQzE0RjU4MjhDODNFRkYwMTUwOEU1MDg2MDBBMTIxMzI3OEYxQUVGNDIzNjgwQ0EyMjhGMUFGQworOjQwMEY4NjAwMDUwREU1MERBRTBDNzAwMjA1MEMxNEY1ODI4RTgzRTUxQUYwMTIxMzNGMDUwREU1MERBQzBDNzAwMjA1MEMxNEY1ODI4QzgzRUZGMDE1MDhFNTA4NjAwQTEyMTM3QjhGMUFFRjQyMzc4MENBMjJDMEUwQzA4M0MwODJDMDg1QzA4OAorOjQwMEZDNjAwODRDMDg2NzU4NjAwOTA3RkM0RTRGMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxMTUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDBDNgorOjQwMTAwNjAwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTg1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTA4QQorOjQwMTA0NjAwRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMUYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTM0OQorOjQwMTA4NjAwRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEyRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDREOQorOjQwMTBDNjAwNTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE2RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwQUYwOTAyQQorOjQwMTEwNjAwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDA4RjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBBRgorOjQwMTE0NjAwQzAwMDc0QkZGMDkwN0Y5ODc0MDlGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBDRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0ZFQworOjQwMTE4NjAwOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MEVGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxN0YwOTA3NQorOjQwMTFDNjAwQzAwMEVGRjA5MDdGOTg3NDE1RjA5MEMwMDBFREYwMjIxMjEzMEY4RjFBMTIxMzBGOEYxQkU1MUE2NTFCNjAxMjEyMTMwRjhGMUFFNTFBNjUxQjYwMDcxMjEzMEY4RjFCODBFOEFGMUEyMjkwN0Y5ODc0MEJGMEU1NDU1NDdGOTA5OAorOjQwMTIwNjAwQzAwMEYwOTA3Rjk4NzQwRkYwOTBDMDAwRUZGMDkwN0Y5ODc0MERGMDkwQzAwMEVERjAyMjEyMTM2MzhGMUExMjEzNjM4RjFCRTUxQTY1MUI2MDEyMTIxMzYzOEYxQUU1MUE2NTFCNjAwNzEyMTM2MzhGMUI4MEU4QUYxQTIyOTBDOAorOjQwMTI0NjAwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDFBMDRFMDQ0MDJGMDdGRjQ3RTAxMTIxMkM4OTA3RkQ2RTA1NEY3RjBFMDQ0MDRGMDIyQUUwN0U0RkZFNTNFNTQ3RkZEMTIxMUIxOTA3Rjk4NzQxMUYwOTBDMDAwRUVGMEU0RTUzRTQ0ODBFOAorOjQwMTI4NjAwRkQxMjExQjEyMkFFMDdFNEZGRTUzRjU0N0ZGRDEyMTFGQjkwN0Y5ODc0MDlGMDkwQzAwMEVFRjBFNEU1M0Y0NDgwRkQxMjExRkIyMjA1MEUwMjAwMDAwMDAwMDMxNDAzMDAwMEMxMTFDMTE4QzE5NUMxMTBDMTE2MDEwQTAwQzE5QworOjQwMTJDNjAwMUIwMDhFMTg4RjE5RTUxOTE1MTlBRTE4NzAwMjE1MTg0RTYwMDUxMjBENEU4MEVFMjI5MDdGOTg3NDExRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEyRjA5MEMwMDBFMEZGMjI1M0Q4RUYzMjAwMDAwMDAwMDAwMjBGRTcwMDAyMTMwQQorOjQwMTMwNjAwMDQwMDAyMEZCRDAwMDIxMDBFOTA3Rjk4NzQxM0YwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNEYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNkYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwOEYwOTA1MAorOjQwMTM0NjAwQzAwMEUwRkYyMjkwN0Y5ODc0MDlGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEJGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MENGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MERGMDkwQzAwMEUwRkZDNQorOjQwMTM4NjAwMjI5MDdGOTg3NDBFRjA5MEMwMDBFMEZGMjIxMjAwMDMxMjBENUYxMjBCNDYyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjQwMTNDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjQwMTQwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjQwMTQ0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjQwMTQ4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjQwMTRDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjQwMTUwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjQwMTU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjQwMTU4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjQwMTVDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjQwMTYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjQwMTY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjQwMTY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjQwMTZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjQwMTcwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjQwMTc0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjQwMTc4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjQwMTdDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjQwMTgwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjQwMTg0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjQwMTg4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjQwMThDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxMTAwMUZGMDBCRgorOjQwMTkwNjAwMDA0MENEMDYxMjAxMDAwMDAxMDIwMDAyMDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA3NAorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGMworOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMzYwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyMDAwNTUwMDUzMDA0MjAwMjAwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA0MTAwNjQwMDYxMDA3MDAwNzQwMDY1MDBGOQorOjE0MUEwNjAwNzIwMDEwMDMzMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDAzMDAwMDAwMEY3Cis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuL3VzYTE5LkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMTkuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1ZDE0OTYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE5LkhFWApAQCAtMCwwICsxLDEwMSBAQAorOjBBMDAyNjAwMTIwREJGMTIwRjQ3MTIwRDZCMjJERQorOjAzMDAzMzAwMDIwMDFBQUUKKzowNDAwMUEwMDUzRDhFRjMyOTYKKzoxMDAwMDMwMDhFMTM4RjE0RTUxNDE1MTRBRTEzNzAwMjE1MTM0RTYwN0UKKzowNzAwMTMwMDA1MTIwRjM2ODBFRTIyRkEKKzowMzAwMjMwMDAyMDA0NjkyCis6MTAwMDQ2MDBDMEUwQzA4M0MwODJDMDg2NzU4NjAwQzBEMDc1RDAwODY3Cis6MTAwMDU2MDAzMDk5MEUzMDA4MDdBMjBCOTI5Qjg1MzU5OUMyOTlEMjJBCis6MTAwMDY2MDAwRjIwMEYwMzAyMDQzMUMyMEYyMDAyMDMwMjAyNTYyMEEyCis6MTAwMDc2MDAwODAzMDIwMTI3RTUzN0MzOTU1MDUwM0UyMDA5MzYyMDc0Cis6MTAwMDg2MDAwNjMzOTA3RjlCRTAzMEUzMDMyMDBFMjkzMDBEMTJBRjNDCis6MTAwMDk2MDAzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MkZBCis6MTAwMEE2MDAwQkFGMzcwNTM3NzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEQ1Cis6MTAwMEI2MDBGNTM1MDIwNDJGQzIwODAyMDQyRjkwN0ZDN0U0RjBDMjcwCis6MTAwMEM2MDAwMjMwMEEwQ0MyMEE5MDdGQkIwNEYwQzIwODAyMDQyRjU5Cis6MTAwMEQ2MDA5MDdGQzhFMDMwRTEwNUMyMDgwMjA0MkY5MDdGQzlFMDk2Cis6MTAwMEU2MDBGNTUwOTA3REMwRTAxMzkyMEEyMDA5MkQyMDA2MkE5MDMzCis6MTAwMEY2MDA3RjlCRTAzMEUzMDMyMDBFMjAzMDBEMTE5MDdEQzFFMEEwCis6MDMwMDQzMDAwMjBGMDBBOQorOjAzMDAwMDAwMDIwQzYxOEUKKzo0MDAxMDYwMDEzOTIwQkEzRTBGNTM1NzUzNzAzMDIwNDJGNzUzNzAyOTA3REMxRTBGNTM1MDIwNDJGNzUzNzAxQzIwODAyMDQyRkU1MzdDMzk1NTA1MDAzMDIwMUNGOTA3RkM2RTAzMEUxMDdDMjEwQzIwMzAyMDQyRjkwN0ZDN0UwRjU1MDkwMDQKKzo0MDAxNDYwMDdFNDBFMDEzOTIwQTMwMDkwMzAyMDFDNzIwMDY3MjIwMDA2RjkwN0Y5QkUwMzBFMzAzMjAwRTY1MzAwRDEwOTA3RTQxRTAxMzkyOUJBM0UwRjU5OTc1MzcwMzgwMDk5MDdFNDFFMEY1OTk3NTM3MDJFNTM3QzM5NTUwNDAxNzkwQjEKKzo0MDAxODYwMDdGQzdFNEYwQzIwMjIwMEEwMzAyMDQyRkMyMEE5MDdGQkIwNEYwMDIwNDJGMzAwRDEyQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBCQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjUzNUQyMDgwMjA0NUQKKzo0MDAxQzYwMDJGNzUzNzAxQzIxMDAyMDQyRjMwMDkwMzAyMDI1MTIwMDY3OTkwN0Y5QkUwMzBFMzAzMjAwRTZGMzAwRDEyQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjlCQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwNDYKKzo0MDAyMDYwMEY1OTlFNTM3QzM5NTUwNDAxNzkwN0ZDN0U0RjBDMjAyMjAwQTAzMDIwNDJGQzIwQTkwN0ZCQjA0RjAwMjA0MkYzMDBEMTJBRjM3MDUzNzc0NDAyRkY1ODJFNDM0N0VGNTgzRTAxMzkyMEJBRjM3MDUzNzc0NDAyRkY1ODJFNDM0ODMKKzo0MDAyNDYwMDdFRjU4M0UwRjUzNUQyMDgwMjA0MkZDMjEwMDIwNDJGMjAwODAzMDIwMzA4RTUzN0MzOTU1MDUwM0UyMDA5MzYyMDA2MzM5MDdGOUJFMDMwRTMwMzIwMEUyOTMwMEQxMkFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzREUKKzo0MDAyODYwMDkyMEJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTM1MDIwNDJGQzIwODAyMDQyRjkwN0ZDOUU0RjBEMjAyMzAwQTBDQzIwQTkwN0ZCQjA0RjBDMjA4MDIwNDJGOTA3RkM2RTAzMEUxMDVDMjA4MDIwNDJGOTA3RkM3NjUKKzo0MDAyQzYwMEUwRjU1MDkwN0U0MEUwMTM5MjBBMjAwOTJEMjAwNjJBOTA3RjlCRTAzMEUzMDMyMDBFMjAzMDBEMTE5MDdFNDFFMDEzOTIwQkEzRTBGNTM1NzUzNzAzMDIwNDJGNzUzNzAyOTA3RTQxRTBGNTM1MDIwNDJGNzUzNzAxQzIwODAyRUYKKzo0MDAzMDYwMDA0MkZFNTM3QzM5NTUwNTAwMzAyMDNCMDkwN0ZDOEUwMzBFMTA3QzIxMEMyMDMwMjA0MkY5MDdGQzlFMEY1NTA5MDdEQzBFMDEzOTIwQTMwMDkwMzAyMDNBODIwMDY3MjIwMDA2RjkwN0Y5QkUwMzBFMzAzMjAwRTY1MzAwRDEwMzQKKzo0MDAzNDYwMDkwN0RDMUUwMTM5MjlCQTNFMEY1OTk3NTM3MDM4MDA5OTA3REMxRTBGNTk5NzUzNzAyRTUzN0MzOTU1MDQwMTc5MDdGQzlFNEYwRDIwMjIwMEEwMzAyMDQyRkMyMEE5MDdGQkIwNEYwMDIwNDJGMzAwRDEyQUYzNzA1Mzc3NEMwRjUKKzo0MDAzODYwMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwQkFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MzVEMjA4MDIwNDJGNzUzNzAxQzIxMDAyMDQyRjMwMDkwMzAyMDQyRDIwMDY3NDkwN0Y5QkUwMzBFMzAzMjAwRTZBMzAwRDEyOEUKKzo0MDAzQzYwMEFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTI5QkFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1OTlFNTM3QzM5NTUwNDAxMzkwN0ZDOUU0RjBEMjAyMzAwQTM1QzIwQTkwN0ZCQjA0RjA4MDJDMzAwRDEyQ0MKKzo0MDA0MDYwMEFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwQkFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MzVEMjA4ODAwMkMyMTBEMjEyMjA5ODAzMDIwNTZEQzI5ODIwMDEwMzAyMDREQTIwMTEyN0FGMzYwNTM2RjMKKzo0MDA0NDYwMDc0ODAyRkY1ODJFNDM0N0VGNTgzRTU5OUYwMzAwRDREQUYzNjA1MzY3NDgwMkZGNTgyRTQzNDdFRjU4M0U1OThGMDgwM0E4NTk5MTBFNTEwQjU0NDA0RDIwNjgwMkVFNTEwQjU0MzA0QzIwNjgwMjVBRjM2MDUzNjc0ODAyRkY1QUIKKzo0MDA0ODYwMDgyRTQzNDdFRjU4M0U1MTBGMDMwMEQxMUFGMzYwNTM2NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjBDRTUzNkMzOTU0MDUwMDMwMjA1NkI5MDdGQjhFMDMwRTExNkU1MzZDMzk0NDA1MDAzMDIwNTZCMTUzNjE1MzYwNTJCREQKKzo0MDA0QzYwMDQzMzMwMTAyMDU2QjkwN0ZCN0U1MzZGMDc1MzYwMEMyMDEwMjA1NkIyMDExMjdBRjM2MDUzNjc0MDAyRkY1ODJFNDM0N0VGNTgzRTU5OUYwMzAwRDREQUYzNjA1MzY3NDAwMkZGNTgyRTQzNDdFRjU4M0U1OThGMDgwM0E4NTk5MzcKKzo0MDA1MDYwMDEwRTUxMEI1NDQwNEQyMDY4MDJFRTUxMEI1NDMwNEMyMDY4MDI1QUYzNjA1MzY3NDAwMkZGNTgyRTQzNDdFRjU4M0U1MTBGMDMwMEQxMUFGMzYwNTM2NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjBDRTUzNkMzOTU0MDQwQ0UKKzo0MDA1NDYwMDI0OTA3RkI2RTAzMEUxMTJFNTM2QzM5NDQwNDAxNjE1MzYxNTM2MDUyQjQzMzMwMTgwMEI5MDdGQjlFNTM2RjA3NTM2MDBEMjAxRDIxMjMwMTIwNUMyMTIwMjAwNTZEMEQwRDA4NkQwODJEMDgzRDBFMDMyOTA3RkNBRTAzMEUxQ0EKKzo0MDA1ODYwMDAzMDIwNkFCRTRGNTEzNzQ0MDI1MTNGNTgyRTQzNDdERjU4M0UwRkZFNTEzN0MwMDdCMDAyNDM4RjlFQzM0MDBGQUVGMTIwRDMzMDUxM0U1MTNCNDE4REJFNTM4NjAwQzc1QzkyMDc1QzgzNDg1MzlDQTg1M0FDQkU1M0IxMzkyQkYKKzo0MDA1QzYwMDBEOTI5RkU1M0MxMzkyMEVFNTNEMTM5MjExRTUzRTYwMDk5MDdGOThFMDU0RkJGMDgwMDc5MDdGOThFMDQ0MDRGMEU1M0Y2MDA5OTA3Rjk4RTA1NDdGRjA4MDA3OTA3Rjk4RTA0NDgwRjBFNTQ1NjAwQkMyMDlDMjA2OTA3Rjk1MEUKKzo0MDA2MDYwMEUwNDQwMkYwRTU0NjYwMENEMjA2NDMzMzAxOTA3Rjk1RTA0NDAyRjBFNTQ3NjAwREMyQUZDMjA4RDIwMEU0RjU1MEY1MzdEMkFGRTU0ODYwMDUzMDExMDJEMjA2RTU0OTYwMTU5MDdGOTVFMDU0RkRGMDkwN0Y5RUUwNDQwMkYwQUEKKzo0MDA2NDYwMDkwN0Y5OEUwNTRGREYwRTU0QTYwMEFEMjlDQzI5ODc1MkMwMTc1MzExRUU1NEI2MDA3QzI5Q0U0RjUzNkY1MkNFNTRDNjAwM0U0RjUzNkU1NEQ2MDAyRDIwNEU1NEU2MDBBRTU0QTcwMDJGNTMxRTU0RTQyMzNFNTRGNjAxRjkwNjQKKzo0MDA2ODYwMDdGRDc3NDExRjA3NDMxRjA3NDEyRjA3NDMyRjA3NDEzRjA3NDMzRjA3NDE0RjA3NDM0RjBEMjAyRDIwMUQyMDVFNDkwN0ZDQkYwQTIwOUU0MzNGRjY1Mjk2MDA1OEYyOTQzMzMwMUEyMDZFNDMzRkY2NTJBNjAwNThGMkE0MzMzQkEKKzo0MDA2QzYwMDAxOTA3RjlCRTA1NDA4QjUyNTBBRTA1NDA4NjQwOEY1MjU0MzMzMDE5MDdGOUJFMDU0MTBCNTI2MEFFMDU0MTA2NDEwRjUyNjQzMzMwMTkwN0Y5QkUwNTQ0MEI1MjcwQUUwNTQ0MDY0NDBGNTI3NDMzMzAxOTA3RjlCRTA1NDIwMjYKKzo0MDA3MDYwMEI1MjgwQUUwNTQyMDY0MjBGNTI4NDMzMzAxMzAwNDM1QzJBRjMwMDExODkwN0ZCOEUwMjBFMTI3RTUzNjYwMDk5MDdGQjdGMEU0RjUzNkMyMDFDMjA0ODAxNjkwN0ZCNkUwMjBFMTBGRTUzNjYwMDk5MDdGQjlGMEU0RjUzNkQyMzQKKzo0MDA3NDYwMDAxQzIwNEQyQUYyMDAzMzczMDAyMUI5MDdGQzZFMDIwRTEyRDkwN0U0MEUwMTM5MjBBNzUzNzAxOTA3RkM3RTBGNTUwRDIwMzgwMTk5MDdGQzhFMDIwRTExMjkwN0RDMEUwMTM5MjBBNzUzNzAxOTA3RkM5RTBGNTUwRDIwMzIwRTkKKzo0MDA3ODYwMDEwMzMyMDAwMDZFNTM3NjU1MDcwMkEzMDAzMUEzMDAyMDlFNDkwN0ZDN0YwQzIwMjgwMDdFNDkwN0ZDOUYwRDIwMkMyMDNFNEY1NTBGNTM3MzAwQTBBQzIwQUMyMDA5MDdGQkI3NDAxRjAzMDEwMDMwMjA4QzUyMDAzMDMwMjA4MDUKKzo0MDA3QzYwMEM1MzAwRTBBOTA3RjlCRTAzMEUzMDMwMjA4QzUzMDA2MDMwMjA4QzUzMDA5MDMwMjA4QzUzMDAyNjIzMDBEMTJBRjM3MDUzNzc0NDAyRkY1ODJFNDM0N0VGNTgzRTAxMzkyMTlBRjM3MDUzNzc0NDAyRkY1ODJFNDM0N0VGNTgzQ0YKKzo0MDA4MDYwMEUwRjUxNEU1MzdDMzk1NTA1MDJBMzAwRDEyQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBCQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjUzNUQyMDg4MDZCQzIwOEU0OTA3RkM3RjBDMjAyODA2MDMwODEKKzo0MDA4NDYwMDBEMTJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMTlBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTE0RTUzN0MzOTU1MDUwMkEzMDBEMTJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyOUYKKzo0MDA4ODYwMDBCQUYzNzA1Mzc3NEMwMkZGNTgyRTQzNDdERjU4M0UwRjUzNUQyMDg4MDA5QzIwOEU0OTA3RkM5RjBEMjAyMzAwRDA0QTIxOTkyOUJEMjEwQzJBRjg1MTQ5OTIwMDgwRDMwMEEwQUMyMEFDMjAwOTA3RkJCNzQwMUYwRDJBRjkwNzIKKzo0MDA4QzYwMDdGQkNFMDIwRTE1MUU1MzM2MDRERTUzMTcwNDlFNTMzMzBFMTA4RTRGNTJGNzUzMzAxODAwQkEyMDVFNDMzRjUyRkMyMDVFNEY1MzNFNEY1MTM3RTAwN0IwMDc0MjQyNTEzRjlFRTM0MDBGQTEyMENFREZGNzQwMDI1MTNGNTgyRDgKKzo0MDA5MDYwMEU0MzQ3REY1ODNFRkYwMDUxM0U1MTNCNDBDREI5MDdGQkQ3NDBDRjA3NTMxMTAyMjkwN0ZFOUUwMTIwRDQ1MEEwMzAwMEE3NzAxMEFFMzAzMDk0MTA2MDlGNDA4MDlFODA5MDlEMDBBMDlERjBCMDAwMDBCMzI5MDdGRUJFMDI0RUIKKzo0MDA5NDYwMEZFNjAxNjE0NjA1NzI0MDI3MDc2NzQwRjkwN0ZENEYwNzQ2NDkwN0ZENUYwMDIwQjM5OTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MkI1NzU4MzBGRUZGMDc1ODJBRTc1ODMwRkYwNzU4MkE3NzU4MzBGRjA3NTgyQTA3NTgzQkEKKzo0MDA5ODYwMDBGRjA5MDdGRUFFMDA0NzU4MjdCNzU4MzBGRjA3NDBGOTA3RkQ0RjA3NDc2OTA3RkQ1RjAwMjBCMzk5MDdGRUFFMEZGMTIwRTQ4RUE0OTYwMERFQTkwN0ZENEYwRTk5MDdGRDVGMDAyMEIzOTkwN0ZCNEUwNDQwMUYwMDIwQjM5RDQKKzo0MDA5QzYwMDkwN0ZCNEUwNDQwMUYwMDIwQjM5OTA3RjAwRTUxOUYwOTA3RkI1NzQwMUYwMDIwQjM5OTA3RkVBRTBGNTE5MDIwQjM5OTA3RkVBRTBGNTE4MTIwRDZCMDIwQjM5OTA3RjAwRTUxOEYwOTA3RkI1NzQwMUYwMDIwQjM5OTA3RkU4MjIKKzo0MDBBMDYwMEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMTNFNDMzRkYyNUUwRkZBMjE3RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCMzlFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMEIzOTkwN0ZFQ0UwRjQ1NDgwQjYKKzo0MDBBNDYwMEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIzOTkwN0ZCNEUwNDQwMUYwMDIwQjM5OTA3RkU4RTAyNEZFNjAxRDI0MDI2MDAzMDIwQjM5MDQKKzo0MDBBODYwMDkwN0ZFQUUwQjQwMTA1QzIxMzAyMEIzOTkwN0ZCNEUwNDQwMUYwMDIwQjM5OTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGQ0MKKzo0MDBBQzYwMDEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0MDEwNEQyMTM4MDNGOTA3RkI0RTA0NDAxRjA4MDM2OTA3RkVBMzYKKzo0MDBCMDYwMEUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjIyMDE1MDMwMjBCM0UKKzo0MDBCNDYwMEQzRTUzMTYwMDIxNTMxRTUzNjYwNEY2NTM0NzA0NUU1MzJGNDYwMDIwNTMyRTUzMkMzOTU0MTQwM0RDMkFGMzAwMTE4OTA3RkI4RTAyMEUxMjc5MDdGQjdFNTM2RjBDMjAxRTRGNTM2RjUzMkY1MzQ4MDE2OTA3RkI2RTAyMEUxM0QKKzo0MDBCODYwMDBGOTA3RkI5RTUzNkYwRDIwMUU0RjUzNkY1MzJGNTM0RDJBRjgwMDY4NTM2MzRFNEY1MzJFNTJDNjAyRjIwMEMwNzkwN0Y5QkUwMzBFMDBGRTUyRDYwMDZFNEY1MkQ0MzMzMDFFNEY1MzA4MDE0RTUzMEQzOTU0MjUwMERFNTMwREIKKzo0MDBCQzYwMEI1NDIwNjc1MkQwMTQzMzMwMTA1MzBDMjBDMjI3NTEyMDFDMjE0QzIxOEMyMTNDMjE3QzIxNUMyMTJEMjE2RTRGNTE4OTA3RjkyRTA1NEZERjA5MDdGQUVFMEZGRDM5MjEzRTQzM0ZFRUY0RUYwRDJFODQzRDgyMDkwN0ZERTc0REIKKzo0MDBDMDYwMDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwNDQwREYwRDJBRkQyQkNEMjE5MTIwRURBQzIxNDMwMTUwMzEyMDU4MDkwN0ZEOEUwNjUxMTYwMDhFMEY1Q0EKKzo0MDBDNDYwMDExMTIwQjQxODBFQTMwMTQwN0MyMTQxMjA5MUU4MEUwMzAxOEREQzIxODEyMDAyNjgwRDYyMjc4N0ZFNEY2RDhGRDc1ODE1MDAyMENBODAyMEJENEU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4M0IKKzo0MDBDODYwMDU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwRTA0RTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwOEUKKzo0MDBDQzYwMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyNDIKKzo0MDBEMDYwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwRTEKKzo0MDBENDYwMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBM0EzQTM4MERGRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMDkwN0Y5Njc0MTBGMDkwN0Y5NDc0MDFGMDkwN0Y5RDA0RTIKKzo0MDBEODYwMEYwOTA3Rjk3NzQyMEYwOTA3Rjk1NzQwM0YwOTA3RjlFNzQ4NEYwRTQ5MDdGOThGMDkwN0ZDN0YwOTA3RkM5RjA5MDdGQ0JGMDc1OTg0MDQzQTgxMDkwN0ZERTc0MUZGMDkwN0ZERjc0MEZGMEQyMTUyMkU0OTA3Rjk1RjA5MDdGRjcKKzo0MDBEQzYwMDk0RjA5MDdGOTNGMDkwN0Y5REUwNDQwMkYwOTA3Rjk3RTA0NDAyRjA5MDdGOURFMDU0RkRGMDkwN0Y5Qzc0MjBGMEU0OTA3Rjk2RjA5MDdGOURFMDQ0RkRGMEU0OTA3Rjk3RjA5MDdGOUU3NEZGRjBFNDkwN0Y5OEYwMjIwQzI0RDAKKzo0MDBFMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMzAwMDAxMzMwMTAxMzIwMDAxMzcwMDAxNTAwMDAxMzYwMDAxMzQwMEMxMDVDMTBDQzEwM0MxMEZDMTA0QzEwRUMxMTFDMTBBQzExMEMxMDhDMTA5QzEwNkMxMDBDMTBEQzE4MUMxMDkKKzo0MDBFNDYwMDgyMDA4RjEzRTRGNTE0NzUxNUZGNzUxNjBGNzUxN0I5QUIxNUFBMTZBOTE3OTAwMDAxMTIwRDA2QjQwMzFEQUYxNDA1MTRFRkI1MTMwMTIyMTIwQ0VEN0UwMDI5RkZFRTNBQTkwNzc1MTVGRkY1MTY4OTE3ODBENDdCMDA3QTAwNkQKKzo0MDBFODYwMDc5MDAyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTQ1MzkxQzcKKzo0MDBFQzYwMEVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxOTA0RTA0NDAyRjA3RkY0N0UwMTEyMDAwMzkwN0ZENkUwNTRGN0YwRTA0NDA0RjAyMjAwMDIwRUIzMDAwMjBGQzAKKzo0MDBGMDYwMDA0MDAwMjBFODkwMDAyMEYwRkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTg1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5QjkKKzo0MDBGNDYwMDIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDExMDAxRkYwMDAwNDBDRDA2MDcwMTAxMDAwMTAyMDAwMjA5MDI0MzAwMDEwMTAwODAzMjA5MDQwMDAwMDdGRjAwOEEKKzo0MDBGODYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1ODEwMjQwMDAwMTA3MDU4MjAyNDAwMDAxMDcwNTgzMDI0MDAwMDEwNzA1ODQwMjQwMDAwMTA0MDMwOTA0MTAwMzRCMDA2NTAwNzkwMDczMzIKKzoxNzBGQzYwMDAwNzAwMDYxMDA2RTAwMEUwMzUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDAwMDA2NAorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2ExOXFpLkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMTlxaS5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzUzYmZjZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMTlxaS5IRVgKQEAgLTAsMCArMSwxMDEgQEAKKzowMzAwMzMwMDAyMDAxQUFFCis6MDQwMDFBMDA1M0Q4RUYzMjk2Cis6MTAwMDAzMDA4RTExOEYxMkU1MTIxNTEyQUUxMTcwMDIxNTExNEU2MDhBCis6MDcwMDEzMDAwNTEyMEY4NDgwRUUyMkFDCis6MDMwMDIzMDAwMjAwNDY5MgorOjEwMDA0NjAwQzBFMEMwODNDMDgyQzA4Njc1ODYwMEMwRDA3NUQwMDg2NworOjEwMDA1NjAwMzA5OTBFMzAwQjA3QTIwRTkyOUI4NTM2OTlDMjk5RDIyMworOjEwMDA2NjAwMTIyMDEyMDMwMjA0MUVDMjEyMjAwMzAzMDIwMjRFMjBCMworOjEwMDA3NjAwMEIwMzAyMDEyNkU1M0FDMzk1NTM1MDNDMjAwQzM0MjA2RAorOjEwMDA4NjAwMDkzMTkwN0Y5QkUwNTUzODcwMjkzMDEwMTJBRjNBMDU0MAorOjEwMDA5NjAwM0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBFQUY3NgorOjEwMDBBNjAwM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1MzY1RQorOjEwMDBCNjAwMDIwNDFDQzIwQjAyMDQxQzkwN0ZDN0U0RjBDMjAzMzA4QQorOjEwMDBDNjAwMEQwQ0MyMEQ5MDdGQkIwNEYwQzIwQjAyMDQxQzkwN0Y4NgorOjEwMDBENjAwQzhFMDMwRTEwNUMyMEIwMjA0MUM5MDdGQzlFMEY1NTM2RAorOjEwMDBFNjAwOTA3REMwRTAxMzkyMEQ3NTE2RkYyMDBDMkIyMDA5Mjg3OQorOjEwMDBGNjAwOTA3RjlCRTA1NTM4NzAyMDMwMTAxMTkwN0RDMUUwMTM0MQorOjAzMDA0MzAwMDIwRTAwQUEKKzowMzAwMDAwMDAyMDAyNkQ1Cis6MEMwMDI2MDA3ODdGRTRGNkQ4RkQ3NTgxNTQwMjBCMjhBOQorOjQwMDEwNjAwOTIwRUEzRTBGNTM2NzUzQTAzMDIwNDFDNzUzQTAyOTA3REMxRTBGNTM2MDIwNDFDNzUzQTAxQzIwQjAyMDQxQ0U1M0FDMzk1NTM1MDAzMDIwMUM5OTA3RkM2RTAzMEUxMDdDMjE0QzIwNTAyMDQxQzkwN0ZDN0UwRjU1MzkwN0VDQgorOjQwMDE0NjAwNDBFMDEzOTIwRDc1MTZGRjIwMEM3MDIwMDk2RDkwN0Y5QkUwNTUzODcwNjUzMDEwMTA5MDdFNDFFMDEzOTI5QkEzRTBGNTk5NzUzQTAzODAwOTkwN0U0MUUwRjU5OTc1M0EwMkU1M0FDMzk1NTM0MDE3OTA3RkM3RTRGMEMyMDNGNgorOjQwMDE4NjAwMjAwRDAzMDIwNDFDQzIwRDkwN0ZCQjA0RjAwMjA0MUMzMDEwMTJBRjNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzRTAxMzkyMEVBRjNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzRTBGNTM2RDIwQjAyMDQxQzc1M0EwMUMyMTRBMworOjQwMDFDNjAwMDIwNDFDMzAwQzAzMDIwMjQ5MjAwOTc3OTA3RjlCRTA1NTM4NzA2RjMwMTAxMkFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTI5QkFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1OTlFNTNBQzM5NTUzNDBBQgorOjQwMDIwNjAwMTc5MDdGQzdFNEYwQzIwMzIwMEQwMzAyMDQxQ0MyMEQ5MDdGQkIwNEYwMDIwNDFDMzAxMDEyQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBFQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjUzNkQyMEI0NAorOjQwMDI0NjAwMDIwNDFDQzIxNDAyMDQxQzIwMEIwMzAyMDJGRkU1M0FDMzk1NTM1MDNDMjAwQzM0MjAwOTMxOTA3RjlCRTA1NTM4NzAyOTMwMTAxMkFGM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwRUFGM0EwNTNBNzRDMDJGRjVGOQorOjQwMDI4NjAwODJFNDM0N0RGNTgzRTBGNTM2MDIwNDFDQzIwQjAyMDQxQzkwN0ZDOUU0RjBEMjAzMzAwRDBDQzIwRDkwN0ZCQjA0RjBDMjBCMDIwNDFDOTA3RkM2RTAzMEUxMDVDMjBCMDIwNDFDOTA3RkM3RTBGNTUzOTA3RTQwRTAxMzkyMERBRgorOjQwMDJDNjAwNzUxNkZGMjAwQzJCMjAwOTI4OTA3RjlCRTA1NTM4NzAyMDMwMTAxMTkwN0U0MUUwMTM5MjBFQTNFMEY1MzY3NTNBMDMwMjA0MUM3NTNBMDI5MDdFNDFFMEY1MzYwMjA0MUM3NTNBMDFDMjBCMDIwNDFDRTUzQUMzOTU1MzUwMDM4MQorOjQwMDMwNjAwMDIwM0EyOTA3RkM4RTAzMEUxMDdDMjE0QzIwNTAyMDQxQzkwN0ZDOUUwRjU1MzkwN0RDMEUwMTM5MjBENzUxNkZGMjAwQzcwMjAwOTZEOTA3RjlCRTA1NTM4NzA2NTMwMTAxMDkwN0RDMUUwMTM5MjlCQTNFMEY1OTk3NTNBMDM3QQorOjQwMDM0NjAwODAwOTkwN0RDMUUwRjU5OTc1M0EwMkU1M0FDMzk1NTM0MDE3OTA3RkM5RTRGMEQyMDMyMDBEMDMwMjA0MUNDMjBEOTA3RkJCMDRGMDAyMDQxQzMwMTAxMkFGM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwRUFGM0E4MQorOjQwMDM4NjAwMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTM2RDIwQjAyMDQxQzc1M0EwMUMyMTQwMjA0MUMyMDBDNzUyMDA5NzI5MDdGOUJFMDU1Mzg3MDZBMzAxMDEyQUYzQTA1M0E3NEMwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjlCQUYwMgorOjQwMDNDNjAwM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1OTlFNTNBQzM5NTUzNDAxMzkwN0ZDOUU0RjBEMjAzMzAwRDM1QzIwRDkwN0ZCQjA0RjA4MDJDMzAxMDEyQUYzQTA1M0E3NEMwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjBFQUYzRAorOjQwMDQwNjAwM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MzZEMjBCODAwMkMyMTREMjAxMjA5ODAzMDIwNTVBQzI5ODIwMDIwMzAyMDRDNzIwMTYyN0FGMzkwNTM5NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTk5RjAzMDEwNERBRjM5MDVDOAorOjQwMDQ0NjAwMzk3NDgwMkZGNTgyRTQzNDdFRjU4M0U1OThGMDgwM0E4NTk5MTBFNTEwQjU0NzA0RDIwOTgwMkVFNTEwQjU0NjA0QzIwOTgwMjVBRjM5MDUzOTc0ODAyRkY1ODJFNDM0N0VGNTgzRTUxMEYwMzAxMDExQUYzOTA1Mzk3NDgwMkYxMQorOjQwMDQ4NjAwRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjBGRTUzOUMzOTU0MzUwMDMwMjA1NTg5MDdGQjhFMDMwRTExNkU1MzlDMzk0NDA1MDAzMDIwNTU4MTUzOTE1MzkwNTJCNDMzNDAxMDIwNTU4OTA3RkI3RTUzOUYwNzUzOTAwQzIwMjAyMDVEMworOjQwMDRDNjAwNTgyMDE2MjdBRjM5MDUzOTc0MDAyRkY1ODJFNDM0N0VGNTgzRTU5OUYwMzAxMDREQUYzOTA1Mzk3NDAwMkZGNTgyRTQzNDdFRjU4M0U1OThGMDgwM0E4NTk5MTBFNTEwQjU0NzA0RDIwOTgwMkVFNTEwQjU0NjA0QzIwOTgwMjU3MworOjQwMDUwNjAwQUYzOTA1Mzk3NDAwMkZGNTgyRTQzNDdFRjU4M0U1MTBGMDMwMTAxMUFGMzkwNTM5NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjBGRTUzOUMzOTU0MzQwMjQ5MDdGQjZFMDMwRTExMkU1MzlDMzk0NDA0MDE2MTUzOTE1MzkwOQorOjQwMDU0NjAwMDUyQjQzMzQwMTgwMEI5MDdGQjlFNTM5RjA3NTM5MDBEMjAyRDIwMTMwMDEwNUMyMDEwMjAwNTZEMEQwRDA4NkQwODJEMDgzRDBFMDMyOTA3RkJDRTAyMEUxNTFFNTM0NjA0REU1MzE3MDQ5RTUzNDMwRTEwOEU0RjUyRjc1MzRENAorOjQwMDU4NjAwMDE4MDBCQTIwOEU0MzNGNTJGQzIwOEU0RjUzNEU0RjUxMTdFMDA3QjAwNzQyNDI1MTFGOUVFMzQwMEZBMTIwRDA2RkY3NDAwMjUxMUY1ODJFNDM0N0RGNTgzRUZGMDA1MTFFNTExQjQwQ0RCOTA3RkJENzQwQ0YwNzUzMTEwOTBDRAorOjQwMDVDNjAwN0ZDQUUwMzBFMTAzMDIwNkYzRTRGNTExNzQ0MDI1MTFGNTgyRTQzNDdERjU4M0UwRkZFNTExN0MwMDdCMDAyNDNCRjlFQzM0MDBGQUVGMTIwRDFGMDUxMUU1MTFCNDE4REJFNTNCNjAxMTc1QzkyMDc1QzgzNjg1M0NDQTg1M0Q5OAorOjQwMDYwNjAwQ0JFNDkwN0Y5RkYwRTUzRTEzOTIxMDkyOUY4NTNGMzhFNTQwMTM5MjE2RTU0MTYwMDk5MDdGOThFMDU0RkJGMDgwMDc5MDdGOThFMDQ0MDRGMEU1NDI2MDA5OTA3Rjk4RTA1NDdGRjA4MDA3OTA3Rjk4RTA0NDgwRjBFNTQ4NjBCRQorOjQwMDY0NjAwMEJDMjBDQzIwOTkwN0Y5NUUwNDQwMkYwRTU0OTYwMENEMjA5NDMzNDAxOTA3Rjk1RTA0NDAyRjBFNTRBNjAwREMyQUZDMjBCRDIwMEU0RjU1M0Y1M0FEMkFGRTU0QjYwMDUzMDE2MDJEMjA5RTU0QzYwMTU5MDdGOTVFMDU0RkRCNAorOjQwMDY4NjAwRjA5MDdGOUVFMDQ0MDJGMDkwN0Y5OEUwNTRGREYwRTU0RDYwMEFEMjlDQzI5ODc1MkMwMTc1MzExRUU1NEU2MDA3QzI5Q0U0RjUzOUY1MkNFNTRGNjAwM0U0RjUzOUU1NTA2MDAyRDIwN0U1NTE2MDBBRTU0RDcwMDJGNTMxRTU1QworOjQwMDZDNjAwNTE0MjM0RTU1MjYwMUY5MDdGRDc3NDExRjA3NDMxRjA3NDEyRjA3NDMyRjA3NDEzRjA3NDMzRjA3NDE0RjA3NDM0RjBEMjAzRDIwMkQyMDhFNDkwN0ZDQkYwQTIwQ0U0MzNGRjY1Mjk2MDA1OEYyOTQzMzQwMUEyMDlFNDMzRkY4NAorOjQwMDcwNjAwNjUyQTYwMDU4RjJBNDMzNDAxOTA3RjlCRTBGRjU0MDg2NDA4RkU2NTI1NjAwNThFMjU0MzM0MDFFRjU0MTA2NDEwRkU2NTI2NjAwNThFMjY0MzM0MDFFRjU0NDA2NDQwRkU2NTI3NjAwNThFMjc0MzM0MDFFRjU0MjA2NDIwRkUxQworOjQwMDc0NjAwNjUyODYwMDU4RTI4NDMzNDAxOTA3RjlBRTA1NDQwNjQ0MEZFNjUyRTYwMDU4RTJFNDMzNDAxMzAwNzM1QzJBRjMwMDIxODkwN0ZCOEUwMjBFMTI3RTUzOTYwMDk5MDdGQjdGMEU0RjUzOUMyMDJDMjA3ODAxNjkwN0ZCNkUwMjAzQgorOjQwMDc4NjAwRTEwRkU1Mzk2MDA5OTA3RkI5RjBFNEY1MzlEMjAyQzIwN0QyQUYyMDA1M0QzMDAzMUU5MDdGQzZFMDIwRTEzMzkwN0U0MEUwMTM5MjBENzUzQTAxOTA3RkM3RTBGNTUzRDIwNTc1MTZGRjgwMUM5MDdGQzhFMDIwRTExNTkwN0REMworOjQwMDdDNjAwQzBFMDEzOTIwRDc1M0EwMTkwN0ZDOUUwRjU1M0QyMDU3NTE2RkYyMDE0MzMyMDAwMDZFNTNBNjU1MzcwMkEzMDA1MUEzMDAzMDlFNDkwN0ZDN0YwQzIwMzgwMDdFNDkwN0ZDOUYwRDIwM0MyMDVFNEY1NTNGNTNBMzAwRDBBQzI2NQorOjQwMDgwNjAwMERDMjAwOTA3RkJCNzQwMUYwMzAxNDAzMDIwOTE0MjAwNTAzMDIwOTE0MzAwQzAzMDIwOTE0MzAwOTAzMDIwOTE0OTA3RjlCRTA1NTM4NjAwMzAyMDkxNDMwMDM2MTMwMTAxMkFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODMzRgorOjQwMDg0NjAwRTAxMzkyMUJBRjNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzRTBGRUU1M0FDMzk1NTM1MDJBMzAxMDEyQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBFQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjU0NgorOjQwMDg4NjAwMzZEMjBCODA2QUMyMEJFNDkwN0ZDN0YwQzIwMzgwNUYzMDEwMTJBRjNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMUJBRjNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGRUU1M0FDMzk1NTM1MDJBMzAxMDEyQUZFNworOjQwMDhDNjAwM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwRUFGM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MzZEMjBCODAwOUMyMEJFNDkwN0ZDOUYwRDIwMzMwMTAwNEEyMUI5MjlCRDIxNEMyQUY4RTk5MjAwQjBEMzAxRAorOjQwMDkwNjAwMEQwQUMyMERDMjAwOTA3RkJCNzQwMUYwRDJBRjIyOTA3RkU5RTAxMjBEMzEwQTExMDAwQTdFMDEwQURCMDMwOTM4MDYwQTAyMDgwOUY2MDkwOURFMEEwOUVEMEIwMDAwMEIxOTkwN0ZFQkUwMjRGRTYwMTkxNDYwNUEyNDAyNjA0MQorOjQwMDk0NjAwMDMwMjBCMTk3NDBEOTA3RkQ0RjA3NDg3OTA3RkQ1RjAwMjBCMjA5MDdGRUFFMDcwMDQ3RjAyODAwMjdGMDM3NTgyRDg3NTgzMERFRkYwNzU4MkQxNzU4MzBERjA3NTgyQ0E3NTgzMERGMDc1ODJDMzc1ODMwREYwOTA3RkVBRTA3OAorOjQwMDk4NjAwMDQ3NTgyOUU3NTgzMERGMDc0MEQ5MDdGRDRGMDc0OTk5MDdGRDVGMDAyMEIyMDkwN0ZFQUUwNzAwQjc1MTFGRjc1MTIwRDc1MTNEQzgwMUI5MDdGRUFFMEI0MDEwQjc1MTFGRjc1MTIwRDc1MTNFMDgwMDk3NTExRkY3NTEyMEQxOQorOjQwMDlDNjAwNzUxM0YwQUExMkE5MTNBRTAyRUU5MDdGRDRGMEFGMDFFRjkwN0ZENUYwMDIwQjIwOTA3RjAwRTUxNUYwOTA3RkI1NzQwMUYwMDIwQjIwOTA3RkVBRTBGNTE1MDIwQjIwMTIwQ0IxOTA3RkVBRTBGNTE0MDIwQjIwOTA3RjAwRTVCRgorOjQwMEEwNjAwMTRGMDkwN0ZCNTc0MDFGMDAyMEIyMDkwN0ZFOEUwMjQ3RjYwMjcxNDYwMzQyNDAyNjAwMzAyMEIxOUEyMTdFNDMzRkYyNUUwRkZBMjE5RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCMjBFNDkwN0YwMEYwQTNCNworOjQwMEE0NjAwRjA5MDdGQjU3NDAyRjAwMjBCMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIyMDkwN0ZFOEUwMjRGRTYwMTcyNgorOjQwMEE4NjAwMjQwMjYwMDMwMjBCMjA5MDdGRUFFMDY0MDE2MDAzMDIwQjE5QzIxNzAyMEIyMDkwN0ZFQUUwNzA3NjkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBENgorOjQwMEFDNjAwRkYxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDQ1OTA3RkU4RTAyNEZFNjAxMDI0MDI3MDM5OTA3RkVBRTA2NDAxNzAyQUQyMTc4MDJEOTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NgorOjQwMEIwNjAwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjJDMjEwRTRGNTE0RjUzNEMyMDlDMjBDQzIwQkMyMTRDMjBEQzIxNkMyMTFDMjA3QzIxMkMyMEZDMjA4RjUzOAorOjQwMEI0NjAwMzVGNTM5RjU1M0Y1M0FGNTMzRjUzMEY1MkZGNTJFRjUyREY1MkNGNTJCRjUyQUY1MjlGNTI4RjUyN0Y1MjZGNTI1RjUyNEMyMDVDMjE4QzIxQUMyMTdDMjE5QzIxNUMyMDREMjEzQzIwNkMyMDE5MDdGOTJFMDU0RkRGMEQyRTgyMAorOjQwMEI4NjAwNDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUVFMDQ0MEZGMDkwN0ZBQzc0MEVGMEQyQUZEMkJDRDIxQjEyMEY1RkMyMTgzMDA0MDMxNgorOjQwMEJDNjAwMTIwNTZEMzAwNDJBMzAwNjI3QzIwNkU1MTY2MDE2MTUxNjkwN0ZEOEUwMzBFNjA0N0YwMDgwMDI3RjIwOTA3Rjk2RUZGMDgwMDY5MDdGOTY3NDIwRjAxMjBDMEI4MENEMzAxODA3QzIxODEyMDkxNTgwQzMzMDFBQzBDMjFBMTI4RQorOjQwMEMwNjAwMEZCQjgwQjkyMkU1MzE2MDAyMTUzMUU1Mzk2MDU1NjUzNTcwNEJFNTMzRjQ2MDAyMDUzM0U1MzNDMzk1NDQ0MDQzQzJBRjMwMDIxQjkwN0ZCOEUwMjBFMTJEOTA3RkI3RTUzOUYwQzIwMkU0RjUzOUY1MzNGNTM1NzUxNkZGODAyRAorOjQwMEM0NjAwMTk5MDdGQjZFMDIwRTExMjkwN0ZCOUU1MzlGMEQyMDJFNEY1MzlGNTMzRjUzNTc1MTZGRkQyQUY4MDA2ODUzOTM1RTRGNTMzRTUyQzYwMzAyMDBGMDc5MDdGOUJFMDMwRTAwRkU1MkQ2MDA2RTRGNTJENDMzNDAxRTRGNTMwODAwMAorOjQwMEM4NjAwMTRFNTMwRDM5NTQ1NTAwREU1MzBCNTQ1MDY3NTJEMDE0MzM0MDEwNTMwQzIwRjIyOTA3RkQ5RTAzMEUyMDQ3RjAwODAwMjdGMjA5MDdGOTZFRkYwMjJFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwOTA3Rjk2NzQyMEYwOTA3Rjk0NzQ4QQorOjQwMENDNjAwMDFGMDkwN0Y5RDc0QkZGMDkwN0Y5Nzc0ODZGMDkwN0Y5NTc0MDNGMDkwN0Y5RTc0ODRGMDkwN0Y5OEYwRTQ5MDdGQzdGMDkwN0ZDOUYwOTA3RkNCRjA3NTk4NDA0M0E4MTA5MDdGREU3NDFGRjA5MDdGREY3NDBGRjBEMjA0MjIxQQorOjQwMEQwNjAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNFQgorOjQwMEQ0NjAwRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjAwMDAwMDAwMDA3QgorOjQwMEQ4NjAwMDAxMjAxMTAwMUZGMDAwMDQwQ0QwNjBDMDEwMTAwMDEwMjAwMDIwOTAyNDMwMDAxMDEwMDgwMzIwOTA0MDAwMDA3RkYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1ODEwMjQwMDAxMAorOjQwMERDNjAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNDAzMDkwNDEwMDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMEUwMzUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDAwMDAwMjBFQTIwMDAyMEU0MQorOjQwMEUwNjAwN0IwMDAyMEQ1NzAwMDIwRUM5MDAwMjBFMTAwMDAyMEUxNDAwMDIwRTE4MDAwMjBFMUMwMDAyMEVGMDAwMDIwRTI0MDAwMjBGMTUwMDAyMEUyQzAwMDIwRjNBRTQ5MDdGOTVGMDkwN0Y5NEYwOTA3RjkzRjA5MDdGOURFMDQ0MDIwQQorOjQwMEU0NjAwRjA5MDdGOTdFMDQ0MDJGMDkwN0Y5Qzc0MTBGMEU0OTA3Rjk2RjA5MDdGOUQ3NEZFRjAzMDE3MDQ3RjgwODAwMjdGMDA5MDdGOTdFRkYwRTQ5MDdGOTVGMDkwN0Y5RUYwOTA3Rjk4RjAyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzAwRQorOjQwMEU4NjAwODY3NTg2MDA1MzkxRUY5MDdGQUI3NDAyRjBEMjA2RDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE4NTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNFQgorOjQwMEVDNjAwRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxQTUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwNTM5MUVGOTA3RkE5NzRDMgorOjQwMEYwNjAwMDJGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwNTM5MUVGOTA3RkE5NzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODZENworOjQwMEY0NjAwNzU4NjAwNTM5MUVGOTA3RkE5NzQwOEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxQjA0RTA0NDAyRjA3RkY0N0UwMTEyMDAwMzkwN0ZENkUwNTRGN0YwRTA0NDA0RjAyMjc0MDBCOQorOjQwMEY4NjAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjI5MDdGRDZFMDQ0MDFGMDdGMEQ3RTAwMTIwMDAzOTA3RkQ2RTA1NEZFRjAyMjEyMEUzMzEyMEY5NTkwN0ZENkUwMzBGQQorOjA5MEZDNjAwRTcwMzEyMEZBNTEyMENCMTIyODEKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMTlxdy5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE5cXcuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhODkxMDIzCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOXF3LkhFWApAQCAtMCwwICsxLDE0MiBAQAorOjAzMDAzMzAwMDIwMDJEOUIKKzowNDAwMkQwMDUzRDhFRjMyODMKKzoxMDAwNDYwMDMwMTAxOTEyMEUwRkVGQzM5NTE0NDAwMzAyMDBERjkwMTMKKzoxMDAwNTYwMDdGQkY3NDAxRjBDMjEwQzIwQjAyMDBERjMwMEQzRTkwNkMKKzoxMDAwNjYwMDdGQzZFMDIwRTE3MzEyMEUwRkVGQzM5NDQwNTA2QTkwRjIKKzoxMDAwNzYwMDdFNDBFMDEzOTIxMDkwN0ZDN0UwMTRGNTM2MjAwQjExRjYKKzoxMDAwODYwMDYwMEZGNTI0N0U3RTdGNDE3NTI5N0U3NTJBNDExMjA5MEYKKzoxMDAwOTYwMDEwQzIwREU0OTA3RkM3RjA3NTI2RkY4MDNDOTA3RkM4QTQKKzoxMDAwQTYwMEUwMjBFMTM1MTIwRTBGRUZDMzk0NDA1MDJDOTA3REMwMzYKKzoxMDAwQjYwMEUwMTM5MjEwOTA3RkM5RTAxNEY1MzYyMDBCMTE2MDBGMDMKKzoxMDAwQzYwMEY1MjQ3RTdEN0ZDMTc1Mjk3RDc1MkFDMTEyMDkxMEQyNUUKKzoxMDAwRDYwMDBERTQ5MDdGQzlGMDc1MjZGRjkwN0ZCNkUwMzBFMTAzMEUKKzoxMDAwRTYwMDAyMDE2ODEyMENGRjhGMzYxMjBFMUI4RjExRTUzNkMzMDQKKzoxMDAwRjYwMDk1MTM1MDBGMTIwRERFRUYzMEUwMDhFNTExMjBFNzAzRUYKKzowQzAwMzYwMDkwN0Y5ODc0MTBGMDkwQzAwMEUwRkYyMjUyCis6MDMwMDQzMDAwMjBFMDBBQQorOjEwMDAwMzAwQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwOTA2RQorOjEwMDAxMzAwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDBBQgorOjBBMDAyMzAwODREMDg1RDA4MkQwODNEMEUwMzI3MworOjAzMDAwMDAwMDIwOUM1MkQKKzo0MDAxMDYwMDMwMTM1RkMyMTNFNTM2NjA1OUI0ODAwMzQzMTEwMkU1MTEzMEU3MjRFNTM2RDM5NDIwNDAwMzc1MzYyMDg1MzYyNDdFN0U3RjgwNzUyOTdFNzUyQTgwMTIwQjlBRTUzNjI1RTA5MDdGQjdGMDgwMkFFNTM2RDM5NDNGNDAwMzc1M0IKKzo0MDAxNDYwMDM2M0Y4NTM2MjQ5MDdFODBFNTExRjA3RTdFN0Y4MTc1Mjk3RTc1MkE4MTEyMDkzNUU1MzYwNDkwN0ZCN0YwNzUyNkZGOTA3RkNFRTAzMEUxMDYyMDBFMDMwMjAzQzRFNEY1MzU3NDQwMjUzNUY1ODJFNDM0N0NGNTgzRTBGRkU1ODkKKzo0MDAxODYwMDM1N0MwMDdCMDE3QTdFNzkwMDI0MDBGOUVDMzQ3RUZBRUYxMjBBOTcwNTM1RTUzNUI0MjBENzkwN0UwMEUwNjA2RTdGMDE5MDdFMTFFMEZEMTIwQ0RBOTA3RTAxRTBGRjEyMEMxQzkwN0UwMkUwRkYxMjBDNDJEMjExRDIxMjc1NjIKKzo0MDAxQzYwMDM2MDQ5MDdFMDNFMDYwMDVDMjEyNDMzNkMwOTA3RTA0RTBCNDAxMDdDMjEyNDMzNjBCODAxMDkwN0UwNEUwNjAwN0MyMTE0MzM2MDk4MDAzNDMzNjAyN0YwM0FEMzYxMjBDREE0MzFBODA5MDdGOTg3NDE0RjA5MEMwMDBFNTFBNzIKKzo0MDAyMDYwMEYwOTA3Rjk4NzQxMkYwRTUxNzQ0MDY5MEMwMDBGMDkwN0UwNUUwNjAxMkEzRTA1NDNGRjUxOTkwN0Y5ODc0MTNGMDkwQzAwMEU1MTlGMDkwN0UwN0UwNjA0MjkwN0UxM0UwNjAwNTQzMTYwNDgwMDM1MzE2RkJFNEZGQUQxNjEyNDcKKzo0MDAyNDYwMDBDREE5MDdFMDhFMDYwMDU0MzE4ODA4MDAzNTMxODdGNTMxOEZDOTA3RTA5RTA2MDExNDMxODAyQTNFMEZGMTIwQzhFOTA3RTBCRTBGRjEyMENCNEFGMTgxMjBDNjg5MDdFMEVFMDYwMThBM0UwNjAwNTQzMUEwMTgwMDM1MzFBRDQKKzo0MDAyODYwMEZFOTA3Rjk4NzQxNEYwOTBDMDAwRTUxQUYwOTA3RTBDRTA2MDE4QTNFMDYwMDU0MzFBMDI4MDAzNTMxQUZEOTA3Rjk4NzQxNEYwOTBDMDAwRTUxQUYwOTA3RTEyRTBGNTEzQTNFMDEzOTIxNEEzRTBGNTE0QTNFMDYwMDU0MzFBQzMKKzo0MDAyQzYwMDEwODAwMzUzMUFFRjkwN0Y5ODc0MTRGMDkwQzAwMEU1MUFGMDkwN0UxNkUwNjAzMjUzMTlCRjkwN0Y5ODc0MTNGMEU1MTk1NDdGOTBDMDAwRjA5MDdGOTg3NDExRjAxMjBERDJFRjU0RkU5MEMwMDBGMDUzMTZGREU0RkZBRDE2MjEKKzo0MDAzMDYwMDEyMENEQUU0RjUwRUY1MEREMjBGOTA3RTE3RTA2MDBGNDMxNjAyRTRGRkFEMTYxMjBDREE3NTBEMDFEMjBGOTA3RTE4RTA2MDEwOTA3Rjk4NzQxMkYwRTUxNzQ0MDQ5MEMwMDBGMEQyMEI5MDdFMTlFMDYwMTE0MzE5NDA5MDdGMEQKKzo0MDAzNDYwMDk4NzQxM0YwRTUxOTU0N0Y5MEMwMDBGMDkwN0UxQUUwNjAwRjUzMTZGRUU0RkZBRDE2MTIwQ0RBNzUwRjAxRDIwRjkwN0UxQkUwNjAwRjQzMTYwMUU0RkZBRDE2MTIwQ0RBRTRGNTBGRDIwRjkwN0UxQ0UwNjAwRTkwN0Y5ODc0QTkKKzo0MDAzODYwMDEyRjBFNTE3NDQwMjkwQzAwMEYwOTA3RTFERTA2MDAyRDIxMzkwN0UxRUUwNjAwODc1MTAwMUU0RjUxMkQyMEY5MDdFMUZFMDYwMTE5MDdGRDc3NDExRjA3NDMxRjA3NDE1RjA3NDM1RjBEMjBEQzIwRUU0OTA3RkNGRjAzMDE2NzQKKzo0MDAzQzYwMDcxRTUxMjYwMDIxNTEyRTUzMEQzOTQwMDQwMDQxNTMwODA2MDc1MzAwQTEyMEREMkVGNTQwMUY1MzY2NTBFNjAwNzg1MzYwRUQyMEY4MDExMTIwRTI3RUY1NDEwRjUzNjY1MDk2MDA1ODUzNjA5RDIwRjEyMEUyN0VGNTQ4MEY1QzEKKzo0MDA0MDYwMDM2NjUwQTYwMDU4NTM2MEFEMjBGMTIwRTI3RUY1NDIwRjUzNjY1MEI2MDA4ODUzNjBCMzAxMTAyRDIwRjEyMEUyN0VGNTQ0MEY1MzY2NTBDNjAwODg1MzYwQzMwMTIwMkQyMEYzMDE2MkE5MDdGRDJFMDIwRTEyMzkwN0I0MEUwMzUKKzo0MDA0NDYwMDYwMDlFMEY1MzI5MDdCNDJFMEY1MzM5MDdCNDFFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjBFNDkwN0ZEM0YwOTA3RkMyRTAzMEUxMDMwMjA1MjlFNTI3NzA0MDMwMEYzOUU1MTI3MDM1QzIwRkY1MzU3RTAwN0IwMDc0MDgyNTM1REIKKzo0MDA0ODYwMEY5RUUzNDAwRkExMjBBNTFGRjc0ODAyNTM1RjU4MkU0MzQ3QkY1ODNFRkYwMDUzNUU1MzVCNDA5REI5MDdGQzM3NDA5RjA3NTEyMTBFNEY1MTA3NTI3MDIyMkU1Mjc2NDAyNzAzNjMwMDUyRkMyMDVGNTM1N0UwMDdCMDA3NDJCOTYKKzo0MDA0QzYwMDI1MzVGOUVFMzQwMEZBMTIwQTUxRkY3NDgwMjUzNUY1ODJFNDM0N0JGNTgzRUZGMDA1MzVFNTM1QjQwNURCOTA3RkMzNzQwNUYwNzUyNzAzMjJFNTMyNjAzMzc1MzEwMzE1MzJFNEY1MzU3RTAwN0IwMDc0MzEyNTM1RjlFRTM0Q0QKKzo0MDA1MDYwMDAwRkExMjBBNTFGRjc0ODAyNTM1RjU4MkU0MzQ3QkY1ODNFRkYwMDUzNUU1MzVCNDAzREI5MDdGQzM3NDAzRjBFNEY1MjcyMjkwN0ZFOUUwMTIwQUE5MDYwODAwMDY3QzAxMDZFOTAzMDU0RDA2MDVGOTA4MDVFRDA5MDVENTBBMDIKKzo0MDA1NDYwMDA1RTQwQjAwMDAwNzM5OTA3RkVCRTAyNEZFNjAxNjE0NjA1MDI0MDI3MDZGNzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIwNzQwOTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MjgyNzU4MzE5RUZGMDc1ODI3NDc1ODMxOUYwNkUKKzo0MDA1ODYwMDc1ODI1ODc1ODMxOUYwOTA3RkVBRTAwNDc1ODIxNzc1ODMxOUYwNzQxOTkwN0ZENEYwNzQxMjkwN0ZENUYwMDIwNzQwOTA3RkVBRTBGRjEyMEIxQ0VBNDk2MDBERUE5MDdGRDRGMEU5OTA3RkQ1RjAwMjA3NDA5MDdGQjRFMDQ0OUIKKzo0MDA1QzYwMDAxRjAwMjA3NDA5MDdGQjRFMDQ0MDFGMDAyMDc0MDkwN0YwMEU1MjVGMDkwN0ZCNTc0MDFGMDAyMDc0MDkwN0ZFQUUwRjUyNTAyMDc0MDEyMDc0ODkwN0ZFQUUwRjUyMzAyMDc0MDkwN0YwMEU1MjNGMDkwN0ZCNTc0MDFGMDAyMTYKKzo0MDA2MDYwMDA3NDA5MDdGRThFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjAxRTQzM0ZGMjVFMEZGQTIwN0U0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwNzQwRTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjA3NDA5MDdGMkMKKzo0MDA2NDYwMEVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA3NDA5MDdGQjRFMDQ0MDFGMDAyMDc0MDkwN0ZFOEUwMjRGRTYwMUUyNDAyMTYKKzo0MDA2ODYwMDYwMDMwMjA3NDA5MDdGRUFFMEI0MDEwNjEyMERGOTAyMDc0MDkwN0ZCNEUwNDQwMUYwMDIwNzQwOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwRjgKKzo0MDA2QzYwMDdGRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNjA5MDdGQjRFMDQ0MDFGMDgwNTc5MDdGRThFMDI0RkU2MDE5MjQwMjcwNEI5MDdGRUFFMEI0MDEwNTEyMERGNjgwM0Y5MDdGQjRFMDQ0ODcKKzo0MDA3MDYwMDAxRjA4MDM2OTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjkKKzo0MDA3NDYwMEYwMjJFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwOTA3Rjk2NzQyMEYwOTA3Rjk1NzRDMEYwOTA3RjlFNzQzRkYwOTA3Rjk4NzQxMEYwRTRGNThFOTA3RkRGNzRGRkYwOTA3RkRFRjBFNEY1MDg3RjAxN0IwMDc0MDgyRkY5RTQzNDAwMjMKKzo0MDA3ODYwMEZBRTQxMjBBOTcwRkJGMDlFRTc1MTMwMUU0RjUxMkY1MzBGNTExQzIwRkMyMTNDMjBFQzIwQkMyMTBDMjA0OTA3Rjk4NzQxM0YwNzUxOTAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjBDREE3RjEwOEYxODEyMEM2ODkwN0Y5ODc0QzIKKzo0MDA3QzYwMDEyRjA3RjAxOEYxN0VGNDQwNjkwQzAwMEYwMEZFNEZEMTIwQ0RBRTRGRjdFQTNBRDA2OEQxNjEyMENEQTkwN0Y5ODc0MTFGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMENEQTdGMDExMjBENkE3RjAzN0QwNzEyMENEQUU0RkZFNTE2N0IKKzo0MDA4MDYwMDU0N0ZGRDEyMENEQTEyMEUwRjhGMTVFNEZGRTUxNjQ0ODBGRDEyMENEQUU1MTUzMEU3MDRDMjA4ODAwMkQyMDg5MDdGOTg3NDE0RjA3NTFBODA5MEMwMDA3NDgwRjBEMjAzMjJEMjE1OTA3RjkyRTA0NDAyRjAxMjBERjlEMkU4N0MKKzo0MDA4NDYwMDQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFNzQwREYwRDJBRkQyMTYxMjBEMjRDMjAyRTRGNTI4RjUzMEMyMDlGNTIzQzIwMzkwRjcKKzo0MDA4ODYwMDdGQTEwNEYwOTA3RkQ4RTA2NTM0NjA0ODMwMDMwNUQyMTYxMjAwNDZFNTBGNjAyMkU1MjY2MDE2MTUyNjkwN0ZEOEUwMzBFNjA0N0YyMDgwMDI3RjMwOTA3Rjk2RUZGMDgwMUE5MDdGOTY3NDMwRjA4MDEyOTA3RkQ5RTAzMEUyRjgKKzo0MDA4QzYwMDA0N0YzMDgwMDI3RjIwOTA3Rjk2RUZGMDkwN0ZEOEUwRjUzNDgwMjAzMDAzMDdDMjE2MTIwMDQ2ODAxNkU1MEY3MDEyOTA3RkQ5RTAzMEUyMDQ3RjMwODAwMjdGMjA5MDdGOTZFRkYwMzAwMjA3QzIwMjEyMDUyQTgwODYzMDBBRTQKKzo0MDA5MDYwMDgzQzIwQTEyMEI1RDAyMDg4QTIyOTA3Rjk4NzQxMEYwQUYyNEU1MkFGNTgyRTUyOUY1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDEwRjBBRjI0RTUyQUY1ODJFNTI5RjU4M0MyQTMKKzo0MDA5NDYwMEFGMDU4NjkwQzAwMEUwMDU4NkYwQTMwNTg2REZGNzA1ODZEMkFGMjI5MDdGOTg3NDA4RjBBRjI0RTUyQUY1ODJFNTI5RjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MDhGMEFGQ0QKKzo0MDA5ODYwMDI0RTUyQUY1ODJFNTI5RjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMjc4NEIKKzo0MDA5QzYwMDdGRTRGNkQ4RkQ3NTgxMzkwMjBBMEMwMjA4MzhFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMTEKKzo0MDBBMDYwMDA0MDgxMDIwNDA4MDkwMEQ4QkU0N0UwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQjAKKzo0MDBBNDYwMEM4Q0FDNTgzQ0FERkU5REVFNzgwQkVCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1QkIKKzo0MDBBODYwMDgyRjhFMjIyRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOEYKKzo0MDBBQzYwMDkzNjg2MEVGQTNBM0EzODBERkU0OTA3RjkzRjA5MDdGOUM3NDIwRjAzMDAxMDNGRjgwMDI3RjAwOTA3Rjk2RUZGMEU0OTA3Rjk0RjA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwMzAwODExOTA3Rjk1RjA5MDdGOUU3NEZGRjA5MDdGMDUKKzo0MDBCMDYwMDk4NzQyMEYwMjJFNDkwN0Y5NUYwOTA3RjlFNzRERkYwRTQ5MDdGOThGMDIyOEYzNUU0RjUzNjc1MzdGRjc1MzgxOTc1Mzk4NkFCMzdBQTM4QTkzOTkwMDAwMTEyMEE2QUI0MDMxREFGMzYwNTM2RUZCNTM1MDEyMjEyMEE1MTdFNUMKKzo0MDBCNDYwMDAwMjlGRkVFM0FBOTA3NzUzN0ZGRjUzODg5Mzk4MEQ0N0IwMDdBMDA3OTAwMjI5MDdGRDhFMEY1MzUxMjBBQ0YyMDA4MDc5MDdGOTJFMDU0RkRGMDkwN0ZENkUwNDQ4MEYwMTIwOUI1OTA3RkQ2RTAzMEU3MEUzMDAxMDUxMjBEOUMKKzo0MDBCODYwMEJDODAwNjEyMEQ0OUVGNjBFMTkwN0Y5MkUwNDQwMkYwMTIwNzQ4MjIwNTJBRTUyQUFFMjk3MDAyMDUyOTE0RjU4MjhFODNFNTExRjAxMjAwMzYwNTJBRTUyQUFDMjk3MDAyMDUyOTE0RjU4MjhDODNFRkYwMTUyNEU1MjQ2MDA3QzcKKzo0MDBCQzYwMDEyMEUxQjhGMTE4MENEMjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjAyNTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjBBOUYKKzo0MDBDMDYwMDUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1MTk1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0RTgKKzo0MDBDNDYwMDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDExRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTUxOTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1N0MKKzo0MDBDODYwMDE5NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE0RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTUxOTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNkYwRkUKKzo0MDBDQzYwMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTE5NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjBFNTE5NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxN0YwOTBDMDAwRUZGMDkwN0Y5ODc0MTVGMDkwQzAwMEVERjAyMjEyMERFQThGMzcxMjBEOTEKKzo0MDBEMDYwMEVBOEYzOEU1Mzc2NTM4NjAxMjEyMERFQThGMzdFNTM3NjUzODYwMDcxMjBERUE4RjM4ODBFOEFGMzcyMjkwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDE2MDRFMDQ0MDJGMDdGRjQ3RTAxMTIwREE1OTA3RkQ2RTA1NEY3RjBFMDQ0NDgKKzo0MDBENDYwMDA0RjAyMjkwN0ZEOEUwRjUzNjEyMDc0ODEyMEUyN0VGMzBFNjBCOTA3RkQ4RTA2NTM2NjBGMTdGMDEyMjEyMEFDRjdGMDAyMkFFMDdFNEZGRTUxNjU0N0ZGRDEyMENEQTkwN0Y5ODc0MTFGMDkwQzAwMEVFRjBFNEU1MTY0NDgwODQKKzo0MDBEODYwMEZEMTIwQ0RBMjIwNTJCMDIwMDAwMDAwMDAzMzEwMzAwMDBDMTg2QzEwMkMxMEFDMTAxQzEwNzAxMjcwMDAwOEUzNjhGMzdFNTM3MTUzN0FFMzY3MDAyMTUzNjRFNjAwNTEyMDlBNDgwRUUyMjkwN0ZENkUwNDQwMUYwN0YwRDdFOEQKKzo0MDBEQzYwMDAwMTIwREE1OTA3RkQ2RTA1NEZFRjAyMjkwN0Y5ODc0MTFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTJGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTNGMDkwQzAwMEUwRkYyMkQyMDEyMkMyMDEyMjAwMDAwMDAwMDIwQkNFMDAwMjBFRjEKKzo0MDBFMDYwMDA0MDAwMjAwMDMwMDAyMEJGNTkwN0Y5ODc0MTRGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTVGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTZGMDkwQzAwMEUwRkYyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzo0MDBFNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzo0MDBFODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzo0MDBFQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzo0MDBGMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUIKKzo0MDBGNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkIKKzo0MDBGODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkIKKzo0MDBGQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUIKKzo0MDEwMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUEKKzo0MDEwNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkEKKzo0MDEwODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkEKKzo0MDEwQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUEKKzo0MDExMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTkKKzo0MDExNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjkKKzo0MDExODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjkKKzo0MDExQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTkKKzo0MDEyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTgKKzo0MDEyNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjgKKzo0MDEyODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgKKzo0MDEyQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTgKKzo0MDEzMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTcKKzo0MDEzNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjcKKzo0MDEzODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcKKzo0MDEzQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzo0MDE0MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzo0MDE0NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzo0MDE0ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzo0MDE0QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzo0MDE1MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzo0MDE1NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzo0MDE1ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzo0MDE1QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzo0MDE2MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzo0MDE2NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzo0MDE2ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzo0MDE2QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzo0MDE3MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzo0MDE3NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzo0MDE3ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzo0MDE3QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzo0MDE4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzo0MDE4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzo0MDE4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzo0MDE4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMTEwMDFGRjAwQkYKKzo0MDE5MDYwMDAwNDBDRDA2MTkwMTAwMDAwMTAyMDAwMjA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwNkQKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjMKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwRjkKKzowNDFBMDYwMDcyMDAwMDAwNkEKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMTl3LkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMTl3LkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2I4NDMxCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOXcuSEVYCkBAIC0wLDAgKzEsMTQxIEBACis6MDMwMDMzMDAwMjBENUM1RgorOjEwMDAwMzAwRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjBCRgorOjEwMDAxMzAwOTA3Rjk0RjA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwOTAzMQorOjBGMDAyMzAwN0Y5NUYwOTA3RjlFNzQxN0YwRTQ5MDdGOThGMDIyMDUKKzoxMDAwNDYwMDMwMEYxODEyMEQzOEVGQzM5NTE0NDAwMzAyMDBEODkwRjQKKzoxMDAwNTYwMDdGQkY3NDAxRjBDMjBGQzIwQTgwNzczMDBDM0I5MDdGREQKKzoxMDAwNjYwMEM2RTAyMEUxNkQxMjBEMzhFRkMzOTQ0MDUwNjQ5MDdFRDcKKzoxMDAwNzYwMDQwRTAxMzkyMEY5MDdGQzdFMDE0RjUxQzIwMEExMTYwMzAKKzoxMDAwODYwMDBGRjUyMzdFN0U3RjQxNzUyNzdFNzUyODQxMTIwODAxNzQKKzoxMDAwOTYwMEMyMENFNDkwN0ZDN0YwODAzOTkwN0ZDOEUwMjBFMTMyM0YKKzoxMDAwQTYwMDEyMEQzOEVGQzM5NDQwNTAyOTkwN0RDMEUwMTM5MjBGOTMKKzoxMDAwQjYwMDkwN0ZDOUUwMTRGNTFDMjAwQTExNjAwRkY1MjM3RTdEQTAKKzoxMDAwQzYwMDdGQzE3NTI3N0Q3NTI4QzExMjA4MDFEMjBDRTQ5MDdGODcKKzoxMDAwRDYwMEM5RjA5MDdGQjZFMDMwRTEwMzAyMDE1RTEyMEM0MThGNTkKKzoxMDAwRTYwMDFDMTIwRDQ0OEYxMUU1MUNDMzk1MTM1MDBGMTIwRDIwRTEKKzoxMDAwRjYwMEVGMzBFMDA4RTUxMTIwRTcwMzMwMTI1Q0MyMTJFNTFDODAKKzowQzAwMzYwMDkwN0Y5ODc0MTBGMDkwQzAwMEUwRkYyMjUyCis6MDMwMDQzMDAwMjBFMDBBQQorOjAzMDAwMDAwMDIwOEI2M0QKKzo0MDAxMDYwMDYwNTZCNDgwMDM0MzExMDJFNTExMzBFNzI0RTUxQ0QzOTQyMDQwMDM3NTFDMjA4NTFDMjM3RTdFN0Y4MDc1Mjc3RTc1Mjg4MDEyMEE4NkU1MUMyNTFDOTA3RkI3RjA4MDI3RTUxQ0QzOTQzRjQwMDM3NTFDM0Y4NTFDMjM5MDdFMDYKKzo0MDAxNDYwMDgwRTUxMUYwN0U3RTdGODE3NTI3N0U3NTI4ODExMjA4MjZFNTFDMDQ5MDdGQjdGMDkwN0ZDRUUwMzBFMTA2MjAwRDAzMDIwM0JBRTRGNTFCNzQ0MDI1MUJGNTgyRTQzNDdDRjU4M0UwRkZFNTFCN0MwMDdCMDE3QTdFNzkwMDI0NEEKKzo0MDAxODYwMDAwRjlFQzM0N0VGQUVGMTIwQTBEMDUxQkU1MUJCNDIwRDc5MDdFMDBFMDYwNkU3RjAxOTA3RTExRTBGRDEyMEMxQzkwN0UwMUUwRkYxMjBCNUU5MDdFMDJFMEZGMTIwQjg0RDIxMEQyMTE3NTFDMDQ5MDdFMDNFMDYwMDVDMjExRDcKKzo0MDAxQzYwMDQzMUNDMDkwN0UwNEUwQjQwMTA3QzIxMTQzMUMwQjgwMTA5MDdFMDRFMDYwMDdDMjEwNDMxQzA5ODAwMzQzMUMwMjdGMDNBRDFDMTIwQzFDNDMxOTgwOTA3Rjk4NzQxNEYwOTBDMDAwRTUxOUYwOTA3Rjk4NzQxMkYwRTUxNjQ0Q0UKKzo0MDAyMDYwMDA2OTBDMDAwRjA5MDdFMDVFMDYwMTJBM0UwNTQzRkY1MTg5MDdGOTg3NDEzRjA5MEMwMDBFNTE4RjA5MDdFMDdFMDYwNDI5MDdFMTNFMDYwMDU0MzE1MDQ4MDAzNTMxNUZCRTRGRkFEMTUxMjBDMUM5MDdFMDhFMDYwMDU0MzE3QkMKKzo0MDAyNDYwMDgwODAwMzUzMTc3RjUzMTdGQzkwN0UwOUUwNjAxMTQzMTcwMkEzRTBGRjEyMEJEMDkwN0UwQkUwRkYxMjBCRjZBRjE3MTIwQkFBOTA3RTBFRTA2MDE4QTNFMDYwMDU0MzE5MDE4MDAzNTMxOUZFOTA3Rjk4NzQxNEYwOTBDMDAwNDYKKzo0MDAyODYwMEU1MTlGMDkwN0UwQ0UwNjAxOEEzRTA2MDA1NDMxOTAyODAwMzUzMTlGRDkwN0Y5ODc0MTRGMDkwQzAwMEU1MTlGMDkwN0UxMkUwRjUxM0EzRTAxMzkyMTNBM0UwRjUxNEEzRTA2MDA1NDMxOTEwODAwMzUzMTlFRjkwN0Y5ODc0MkQKKzo0MDAyQzYwMDE0RjA5MEMwMDBFNTE5RjA5MDdFMTZFMDYwMzI1MzE4QkY5MDdGOTg3NDEzRjBFNTE4NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxMUYwMTIwRDE0RUY1NEZFOTBDMDAwRjA1MzE1RkRFNEZGQUQxNTEyMEMxQ0U0RjUwRUY1MEREMjBFRUIKKzo0MDAzMDYwMDkwN0UxN0UwNjAwRjQzMTUwMkU0RkZBRDE1MTIwQzFDNzUwRDAxRDIwRTkwN0UxOEUwNjAxMDkwN0Y5ODc0MTJGMEU1MTY0NDA0OTBDMDAwRjBEMjBBOTA3RTE5RTA2MDExNDMxODQwOTA3Rjk4NzQxM0YwRTUxODU0N0Y5MEMwNjQKKzo0MDAzNDYwMDAwRjA5MDdFMUFFMDYwMEY1MzE1RkVFNEZGQUQxNTEyMEMxQzc1MEYwMUQyMEU5MDdFMUJFMDYwMEY0MzE1MDFFNEZGQUQxNTEyMEMxQ0U0RjUwRkQyMEU5MDdFMUNFMDYwMEU5MDdGOTg3NDEyRjBFNTE2NDQwMjkwQzAwMEYwRDgKKzo0MDAzODYwMDkwN0UxREUwNjAwMkQyMTI5MDdFMUVFMDYwMDg3NTEwMDFFNEY1MTJEMjBFOTA3RTFGRTA2MDExOTA3RkQ3NzQxMUYwNzQzMUYwNzQxNUYwNzQzNUYwRDIwQ0MyMERFNDkwN0ZDRkYwMzAxNTcxRTUxMjYwMDIxNTEyRTUyRUQzMjYKKzo0MDAzQzYwMDk0MDA0MDA0MTUyRTgwNjA3NTJFMEExMjBEMTRFRjU0MDFGNTFDNjUwRTYwMDc4NTFDMEVEMjBFODAxMTEyMEQ1MEVGNTQxMEY1MUM2NTA5NjAwNTg1MUMwOUQyMEUxMjBENTBFRjU0ODBGNTFDNjUwQTYwMDU4NTFDMEFEMjBFRkIKKzo0MDA0MDYwMDEyMEQ1MEVGNTQyMEY1MUM2NTBCNjAwODg1MUMwQjMwMTAwMkQyMEUxMjBENTBFRjU0NDBGNTFDNjUwQzYwMDg4NTFDMEMzMDExMDJEMjBFMzAxNTJBOTA3RkQyRTAyMEUxMjM5MDdCNDBFMDYwMDlFMEY1MzA5MDdCNDJFMEY1NzIKKzo0MDA0NDYwMDMxOTA3QjQxRTA2MDA5OTA3RkQ3NzQxN0YwNzQzN0YwRTQ5MDdGRDNGMDkwN0ZDMkUwMzBFMTAzMDIwNTFGRTUyNTcwNDAzMDBFMzlFNTEyNzAzNUMyMEVGNTFCN0UwMDdCMDA3NDA4MjUxQkY5RUUzNDAwRkExMjA5QzdGRjc0NDcKKzo0MDA0ODYwMDgwMjUxQkY1ODJFNDM0N0JGNTgzRUZGMDA1MUJFNTFCQjQwOURCOTA3RkMzNzQwOUYwNzUxMjEwRTRGNTEwNzUyNTAyMjJFNTI1NjQwMjcwMzYzMDA1MkZDMjA1RjUxQjdFMDA3QjAwNzQyOTI1MUJGOUVFMzQwMEZBMTIwOUM3QzIKKzo0MDA0QzYwMEZGNzQ4MDI1MUJGNTgyRTQzNDdCRjU4M0VGRjAwNTFCRTUxQkI0MDVEQjkwN0ZDMzc0MDVGMDc1MjUwMzIyRTUzMDYwMzM3NTJGMDMxNTMwRTRGNTFCN0UwMDdCMDA3NDJGMjUxQkY5RUUzNDAwRkExMjA5QzdGRjc0ODAyNTFCMjYKKzo0MDA1MDYwMEY1ODJFNDM0N0JGNTgzRUZGMDA1MUJFNTFCQjQwM0RCOTA3RkMzNzQwM0YwRTRGNTI1MjI5MDdGRTlFMDEyMEExRjA1RjYwMDA2NkEwMTA2RDcwMzA1NDMwNjA1RTkwODA1RTMwOTA1Q0IwQTA1REEwQjAwMDAwNzI3OTA3RkVCQzkKKzo0MDA1NDYwMEUwMjRGRTYwMTYxNDYwNTAyNDAyNzA2Rjc0MTk5MDdGRDRGMDc0MDA5MDdGRDVGMDAyMDcyRTkwN0ZFQUUwNzAwNDdGMDI4MDAyN0YwMzc1ODI4Mjc1ODMxOUVGRjA3NTgyNzQ3NTgzMTlGMDc1ODI1ODc1ODMxOUYwOTA3RkVBNjUKKzo0MDA1ODYwMEUwMDQ3NTgyMTc3NTgzMTlGMDc0MTk5MDdGRDRGMDc0MTI5MDdGRDVGMDAyMDcyRTkwN0ZFQUUwRkYxMjBBNDVFQTQ5NjAwREVBOTA3RkQ0RjBFOTkwN0ZENUYwMDIwNzJFOTA3RkI0RTA0NDAxRjAwMjA3MkU5MDdGQjRFMDQ0RDEKKzo0MDA1QzYwMDAxRjAwMjA3MkU5MDdGMDBFNTI0RjA5MDdGQjU3NDAxRjAwMjA3MkU5MDdGRUFFMEY1MjQwMjA3MkUxMjA3MzYwMjA3MkU5MDdGMDA3NDAxRjA5MDdGQjVGMDAyMDcyRTkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMjEKKzo0MDA2MDYwMDAxRTQzM0ZGMjVFMEZGQTIwN0U0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwNzJFRTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjA3MkU5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0Q0QKKzo0MDA2NDYwMEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA3MkU5MDdGQjRFMDQ0MDFGMDAyMDcyRTkwN0ZFOEUwMjRGRTYwMUUyNDAyNjAwMzAyMDcyRTkwN0ZFQUUwQjQwMTA2MTIwRDYzMDIwNzJFNTMKKzo0MDA2ODYwMDkwN0ZCNEUwNDQwMUYwMDIwNzJFOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGNjkKKzo0MDA2QzYwMEQ3RjBFMDQ0MjBGMDgwNjA5MDdGQjRFMDQ0MDFGMDgwNTc5MDdGRThFMDI0RkU2MDE5MjQwMjcwNEI5MDdGRUFFMEI0MDEwNTEyMEQ2MDgwM0Y5MDdGQjRFMDQ0MDFGMDgwMzY5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQUQKKzo0MDA3MDYwMEM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMkU0OTA3RjkzRjA5MDdGOUM3NDMwRjBFNDkwN0Y5NkYwNkIKKzo0MDA3NDYwMDkwN0Y5NTc0QzBGMDkwN0Y5RTc0M0ZGMDkwN0Y5ODc0MThGMEU0RjU4RTkwN0ZERjc0RkZGMDkwN0ZERUYwRTRGNTA4N0YwMTdCMDA3NDA4MkZGOUU0MzQwMEZBRTQxMjBBMEQwRkJGMDlFRTc1MTMwMUU0RjUxMkY1MkVGNTExQTIKKzo0MDA3ODYwMEMyMEVDMjEyQzIwREMyMEFDMjBGQzIwNDkwN0Y5ODc0MTNGMDc1MTgwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIwQzFDN0YxMDhGMTcxMjBCQUE5MDdGOTg3NDEyRjA3RjAxOEYxNkVGNDQwNjkwQzAwMEYwMEZFNEZEMTIwQzFDNzEKKzo0MDA3QzYwMEU0RkY3RUEzQUQwNjhEMTUxMjBDMUM5MDdGOTg3NDExRjA5MEMwMDBFNEYwN0YwNTdEN0YxMjBDMUM3RjAxMTIwQ0FDN0YwMzdEMDcxMjBDMUM5MDdGOTg3NDE0RjA3NTE5ODA5MEMwMDA3NDgwRjBEMjAzMjI5MDdGOTg3NDEwNTkKKzo0MDA4MDYwMEYwQUYyM0U1MjhGNTgyRTUyN0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDEwRjBBRjIzRTUyOEY1ODJFNTI3RjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3NkYKKzo0MDA4NDYwMDA1ODZEMkFGMjI5MDdGOTg3NDA4RjBBRjIzRTUyOEY1ODJFNTI3RjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MDhGMEFGMjNFNTI4RjU4MkU1MjdGNTgzQzJBRjA1ODY5MEMwNDUKKzo0MDA4ODYwMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMjc4N0ZFNEY2RDhGRDc1ODEzMTAyMDhGRDAyMDk0MkU0M0IKKzo0MDA4QzYwMDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwQ0NERTQ3RTAxOTM2MEJDMzYKKzo0MDA5MDYwMEEzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUQyMTQ5MDdGODMKKzo0MDA5NDYwMDkyRTA0NDAyRjAxMjBENjNEMkU4NDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUU3NDBERjBEMkFGRDIxNTEyMEM2NkMyMDJFNEY1NTcKKzo0MDA5ODYwMDI2RjUyRUMyMDhDMjAzOTA3RkExMDRGMDkwN0ZEOEUwNjUxQTYwMTAzMDAzMDVEMjE1MTIwMDQ2OTA3RkQ4RTBGNTFBODAwODMwMDMwNUMyMTUxMjAwNDYzMDAyMDdDMjAyMTIwNTIwODBENjMwMDlEM0MyMDkxMjBBQkE4MENDNDAKKzo0MDA5QzYwMDIyQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTU4MjI5RjU4MkU1MUYKKzo0MDBBMDYwMDgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERjhGNTgKKzo0MDBBNDYwMDFCRTRGNTFDNzUxREZGNzUxRTE5NzUxRjg2QUIxREFBMUVBOTFGOTAwMDAxMTIwOUUwQjQwMzFEQUYxQzA1MUNFRkI1MUIwMTIyMTIwOUM3N0UwMDI5RkZFRTNBQTkwNzc1MURGRkY1MUU4OTFGODBENDdCMDA3QTAwNzkwMDIyRjMKKzo0MDBBODYwMDA1MjhFNTI4QUUyNzcwMDIwNTI3MTRGNTgyOEU4M0U1MTFGMDEyMDAzNjA1MjhFNTI4QUMyNzcwMDIwNTI3MTRGNTgyOEM4M0VGRjAxNTIzRTUyMzYwMDcxMjBENDQ4RjExODBDRDIyOTA3RkQ4RTBGNTFCMTIwMDAzOTA3RkQ2QUIKKzo0MDBBQzYwMEUwNDQ4MEYwMTIwOEE2OTA3RkQ2RTAzMEU3MEUzMDAxMDUxMjBDRkU4MDA2MTIwQzhCRUY2MEUxMTIwNzM2MjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwREYKKzo0MDBCMDYwMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIwMjUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwMjUKKzo0MDBCNDYwMEQyMDk1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTBGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTE4NTQ3RjkwQzAwMEYwMjI5MDdGREIKKzo0MDBCODYwMDk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMUYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1MTg1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTJGMDkwQzAwMEVGRjA5MDdGOTg3NDEzMDcKKzo0MDBCQzYwMEYwRTUxODU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1MTg1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0RjIKKzo0MDBDMDYwMDE2RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTUxODU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwRTUxODU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTdGMDkwQzAwMEVGRjA5MDdGOTg3NDE1RjA5MEMwMDBFREYwMjIxMjBEMkM4RjFENDQKKzo0MDBDNDYwMDEyMEQyQzhGMUVFNTFENjUxRTYwMTIxMjBEMkM4RjFERTUxRDY1MUU2MDA3MTIwRDJDOEYxRTgwRThBRjFEMjI5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxNTA0RTA0NDAyRjA3RkY0N0UwMTEyMENFNzkwN0ZENkUwNTRGN0YwRDgKKzo0MDBDODYwMEUwNDQwNEYwMjI5MDdGRDhFMEY1MUMxMjA3MzYxMjBENTBFRjMwRTYwQjkwN0ZEOEUwNjUxQzYwRjE3RjAxMjIxMjAwMDM3RjAwMjJBRTA3RTRGRkU1MTU1NDdGRkQxMjBDMUM5MDdGOTg3NDExRjA5MEMwMDBFRUYwRTRFNTE1OTkKKzo0MDBDQzYwMDQ0ODBGRDEyMEMxQzIyMDUyOTAyMDAwMDAwMDAwMzJGMDMwMDAwQzE4NkMxMDJDMTA5QzEwMUMxMDcwMTI1MDAwMDhFMUM4RjFERTUxRDE1MURBRTFDNzAwMjE1MUM0RTYwMDUxMjA4OTU4MEVFMjI5MDdGRDZFMDQ0MDFGMDdGODYKKzo0MDBEMDYwMDBEN0UwMDEyMENFNzkwN0ZENkUwNTRGRUYwMjI5MDdGOTg3NDExRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEyRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEzRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE0RjA5MEMwMDBFMEZGMjI5MDdGMkIKKzo0MDBENDYwMDk4NzQxNUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNkYwOTBDMDAwRTBGRjIyNTNEOEVGMzJEMjAxMjJDMjAxMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzo0MDBEODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzo0MDBEQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwQjEwMDAwMjBFQzAKKzo0MDBFMDYwMDA0MDAwMjBBRTYwMDAyMEIzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzo0MDBFNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzo0MDBFODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzo0MDBFQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzo0MDBGMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUIKKzo0MDBGNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkIKKzo0MDBGODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkIKKzo0MDBGQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUIKKzo0MDEwMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUEKKzo0MDEwNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkEKKzo0MDEwODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkEKKzo0MDEwQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUEKKzo0MDExMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTkKKzo0MDExNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjkKKzo0MDExODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjkKKzo0MDExQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTkKKzo0MDEyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTgKKzo0MDEyNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjgKKzo0MDEyODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgKKzo0MDEyQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTgKKzo0MDEzMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTcKKzo0MDEzNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjcKKzo0MDEzODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcKKzo0MDEzQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzo0MDE0MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzo0MDE0NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzo0MDE0ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzo0MDE0QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzo0MDE1MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzo0MDE1NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzo0MDE1ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzo0MDE1QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzo0MDE2MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzo0MDE2NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzo0MDE2ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzo0MDE2QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzo0MDE3MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzo0MDE3NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzo0MDE3ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzo0MDE3QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzo0MDE4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzo0MDE4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzo0MDE4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzo0MDE4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMTEwMDFGRjAwQkYKKzo0MDE5MDYwMDAwNDBDRDA2MDgwMTAwMDAwMTAyMDAwMjA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwN0UKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjMKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwRjkKKzowNDFBMDYwMDcyMDAwMDAwNkEKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMjguSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2EyOC5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAwYzk3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTI4LkhFWApAQCAtMCwwICsxLDE0OCBAQAorOjBBMDAyNjAwMTIxN0RCMTIxOEI1MTIxNEMzMjJFMgorOjAzMDAzMzAwMDIwMDFEQUIKKzowNDAwMUQwMDUzRDhFRjMyOTMKKzoxMDAwMDYwMDhFMTI4RjEzRTUxMzE1MTNBRTEyNzAwMjE1MTI0RTYwODEKKzowNzAwMTYwMDA1MTIxOEE0ODBFRTIyODAKKzowMzAwMDMwMDAyMDA0NkIyCis6MTAwMDQ2MDBDMEUwQzA4M0MwODJDMDg2NzU4NjAwQzBEMDc1RDAwODY3Cis6MTAwMDU2MDAzMDk5MEUzMDExMDdBMjE3OTI5Qjg1NDY5OUMyOTlEMjA0Cis6MTAwMDY2MDAxRjMwQzEwRTMwMTIwN0EyMTg5MkMzODU0N0MxQzJDMTA0Cis6MTAwMDc2MDBEMjIwMjAxRjAzMDIwNDQyQzIxRjIwMDMwMzAyMDI2NzhDCis6MTAwMDg2MDAyMDExMDMwMjAxMzhFNTRBQzM5NTdDNTAzRTIwMTMzNjAxCis6MTAwMDk2MDAyMDBCMzM5MDdGOUJFMDIwRTMwMzIwMUMyOTMwMUIxMkFBCis6MTAwMEE2MDBBRTRBMDU0QTc0NDAyRUY1ODJFNDM0N0VGNTgzRTAxM0E5Cis6MTAwMEI2MDA5MjE3QUU0QTA1NEE3NDQwMkVGNTgyRTQzNDdFRjU4M0UzCis6MTAwMEM2MDBFMEY1NDYwMjA0NDBDMjExMDIwNDQwOTA3RkM3RTRGMDA2Cis6MTAwMEQ2MDBDMjAzMzAxNTBDQzIxNTkwN0ZCRjA0RjBDMjExMDIwNDkyCis6MTAwMEU2MDA0MDkwN0ZDOEUwMzBFMTA1QzIxMTAyMDQ0MDkwN0ZDOTBDCis6MTAwMEY2MDBFMEY1N0M5MDdEQzBFMDEzOTIxNTIwMTMyRDIwMEIyQThECis6MDMwMDQzMDAwMjFCMDA5RAorOjAzMDAyMzAwMDIwMDQ2OTIKKzowMzAwM0IwMDAyMDA0NjdBCis6MDMwMDAwMDAwMjE2M0RBOAorOjQwMDEwNjAwOTA3RjlCRTAyMEUzMDMyMDFDMjAzMDFCMTE5MDdEQzFFMDEzOTIxN0EzRTBGNTQ2NzU0QTAzMDIwNDQwNzU0QTAyOTA3REMxRTBGNTQ2MDIwNDQwNzU0QTAxQzIxMTAyMDQ0MEU1NEFDMzk1N0M1MDAzMDIwMUUwOTA3RkM2RTA4QQorOjQwMDE0NjAwMzBFMTA3QzIyMUMyMDUwMjA0NDA5MDdGQzdFMEY1N0M5MDdFNDBFMDEzOTIxNTMwMTMwMzAyMDFEODIwMEI3MjIwMDA2RjkwN0Y5QkUwMjBFMzAzMjAxQzY1MzAxQjEwOTA3RTQxRTAxMzkyOUJBM0UwRjU5OTc1NEEwMzgwMDlCRQorOjQwMDE4NjAwOTA3RTQxRTBGNTk5NzU0QTAyRTU0QUMzOTU3QzQwMTc5MDdGQzdFNEYwQzIwMzIwMTUwMzAyMDQ0MEMyMTU5MDdGQkYwNEYwMDIwNDQwMzAxQjEyQUU0QTA1NEE3NDQwMkVGNTgyRTQzNDdFRjU4M0UwMTM5MjE3QUU0QTA1NEFBNworOjQwMDFDNjAwNzQ0MDJFRjU4MkU0MzQ3RUY1ODNFMEY1NDZEMjExMDIwNDQwNzU0QTAxQzIyMTAyMDQ0MDMwMTMwMzAyMDI2MjIwMEI3OTkwN0Y5QkUwMjBFMzAzMjAxQzZGMzAxQjEyQUU0QTA1NEE3NDQwMkVGNTgyRTQzNDdFRjU4M0UwMTNEQworOjQwMDIwNjAwOTI5QkFFNEEwNTRBNzQ0MDJFRjU4MkU0MzQ3RUY1ODNFMEY1OTlFNTRBQzM5NTdDNDAxNzkwN0ZDN0U0RjBDMjAzMjAxNTAzMDIwNDQwQzIxNTkwN0ZCRjA0RjAwMjA0NDAzMDFCMTJBRTRBMDU0QTc0NDAyRUY1ODJFNDM0N0VCNgorOjQwMDI0NjAwRjU4M0UwMTM5MjE3QUU0QTA1NEE3NDQwMkVGNTgyRTQzNDdFRjU4M0UwRjU0NkQyMTEwMjA0NDBDMjIxMDIwNDQwMjAxMTAzMDIwMzE5RTU0QUMzOTU3QzUwM0UyMDEzMzYyMDBCMzM5MDdGOUJFMDIwRTMwMzIwMUMyOTMwMUI1RgorOjQwMDI4NjAwMTJBRTRBMDU0QTc0QzAyRUY1ODJFNDM0N0RGNTgzRTAxMzkyMTdBRTRBMDU0QTc0QzAyRUY1ODJFNDM0N0RGNTgzRTBGNTQ2MDIwNDQwQzIxMTAyMDQ0MDkwN0ZDOUU0RjBEMjAzMzAxNTBDQzIxNTkwN0ZCRjA0RjBDMjExMDI3NgorOjQwMDJDNjAwMDQ0MDkwN0ZDNkUwMzBFMTA1QzIxMTAyMDQ0MDkwN0ZDN0UwRjU3QzkwN0U0MEUwMTM5MjE1MjAxMzJEMjAwQjJBOTA3RjlCRTAyMEUzMDMyMDFDMjAzMDFCMTE5MDdFNDFFMDEzOTIxN0EzRTBGNTQ2NzU0QTAzMDIwNDQwNzU5RQorOjQwMDMwNjAwNEEwMjkwN0U0MUUwRjU0NjAyMDQ0MDc1NEEwMUMyMTEwMjA0NDBFNTRBQzM5NTdDNTAwMzAyMDNDMTkwN0ZDOEUwMzBFMTA3QzIyMUMyMDUwMjA0NDA5MDdGQzlFMEY1N0M5MDdEQzBFMDEzOTIxNTMwMTMwMzAyMDNCOTIwMEI0OAorOjQwMDM0NjAwNzIyMDAwNkY5MDdGOUJFMDIwRTMwMzIwMUM2NTMwMUIxMDkwN0RDMUUwMTM5MjlCQTNFMEY1OTk3NTRBMDM4MDA5OTA3REMxRTBGNTk5NzU0QTAyRTU0QUMzOTU3QzQwMTc5MDdGQzlFNEYwRDIwMzIwMTUwMzAyMDQ0MEMyMTU3MworOjQwMDM4NjAwOTA3RkJGMDRGMDAyMDQ0MDMwMUIxMkFFNEEwNTRBNzRDMDJFRjU4MkU0MzQ3REY1ODNFMDEzOTIxN0FFNEEwNTRBNzRDMDJFRjU4MkU0MzQ3REY1ODNFMEY1NDZEMjExMDIwNDQwNzU0QTAxQzIyMTAyMDQ0MDMwMTMwMzAyMDQ2MworOjQwMDNDNjAwM0UyMDBCNzQ5MDdGOUJFMDIwRTMwMzIwMUM2QTMwMUIxMkFFNEEwNTRBNzRDMDJFRjU4MkU0MzQ3REY1ODNFMDEzOTI5QkFFNEEwNTRBNzRDMDJFRjU4MkU0MzQ3REY1ODNFMEY1OTlFNTRBQzM5NTdDNDAxMzkwN0ZDOUU0RjA5RAorOjQwMDQwNjAwRDIwMzMwMTUzNUMyMTU5MDdGQkYwNEYwODAyQzMwMUIxMkFFNEEwNTRBNzRDMDJFRjU4MkU0MzQ3REY1ODNFMDEzOTIxN0FFNEEwNTRBNzRDMDJFRjU4MkU0MzQ3REY1ODNFMEY1NDZEMjExODAwMkMyMjFEMjI1MjAyMDAzMDIzMAorOjQwMDQ0NjAwMDgwQ0MyMjAyMDA0MDMwMjA2MzEyMDEyMDMwMjA1MDJFNTRCQzM5NTdENTAzRTIwMTQzNjIwMEQzMzkwN0Y5QUUwMjBFNTAzMjAxRTI5MzAxRDEyQUU0QjA1NEI3NDQwMkVGNTgyRTQzNDdERjU4M0UwMTM5MjE4QUU0QjA1NEI5OQorOjQwMDQ4NjAwNzQ0MDJFRjU4MkU0MzQ3REY1ODNFMEY1NDcwMjA4MEFDMjEyMDIwODBBOTA3RkNCRTRGMEMyMDQzMDE2MENDMjE2OTA3RkMxMDRGMEMyMTIwMjA4MEE5MDdGQ0NFMDMwRTEwNUMyMTIwMjA4MEE5MDdGQ0RFMEY1N0Q5MDdDQzBCQgorOjQwMDRDNjAwRTAxMzkyMTYyMDE0MkQyMDBEMkE5MDdGOUFFMDIwRTUwMzIwMUUyMDMwMUQxMTkwN0NDMUUwMTM5MjE4QTNFMEY1NDc3NTRCMDMwMjA4MEE3NTRCMDI5MDdDQzFFMEY1NDcwMjA4MEE3NTRCMDFDMjEyMDIwODBBRTU0QkMzOTU2NgorOjQwMDUwNjAwN0Q1MDAzMDIwNUFBOTA3RkNBRTAzMEUxMDdDMjIyQzIwNjAyMDgwQTkwN0ZDQkUwRjU3RDkwN0Q0MEUwMTM5MjE2MzAxNDAzMDIwNUEyMjAwRDcyMjAwMDZGOTA3RjlBRTAyMEU1MDMyMDFFNjUzMDFEMTA5MDdENDFFMDEzOTIwRAorOjQwMDU0NjAwQzNBM0UwRjVDMTc1NEIwMzgwMDk5MDdENDFFMEY1QzE3NTRCMDJFNTRCQzM5NTdENDAxNzkwN0ZDQkU0RjBDMjA0MjAxNjAzMDIwODBBQzIxNjkwN0ZDMTA0RjAwMjA4MEEzMDFEMTJBRTRCMDU0Qjc0NDAyRUY1ODJFNDM0N0QyNAorOjQwMDU4NjAwRjU4M0UwMTM5MjE4QUU0QjA1NEI3NDQwMkVGNTgyRTQzNDdERjU4M0UwRjU0N0QyMTIwMjA4MEE3NTRCMDFDMjIyMDIwODBBMzAxNDAzMDIwNjJDMjAwRDc5OTA3RjlBRTAyMEU1MDMyMDFFNkYzMDFEMTJBRTRCMDU0Qjc0NDBFOQorOjQwMDVDNjAwMkVGNTgyRTQzNDdERjU4M0UwMTM5MkMzQUU0QjA1NEI3NDQwMkVGNTgyRTQzNDdERjU4M0UwRjVDMUU1NEJDMzk1N0Q0MDE3OTA3RkNCRTRGMEMyMDQyMDE2MDMwMjA4MEFDMjE2OTA3RkMxMDRGMDAyMDgwQTMwMUQxMkFFNEI5MQorOjQwMDYwNjAwMDU0Qjc0NDAyRUY1ODJFNDM0N0RGNTgzRTAxMzkyMThBRTRCMDU0Qjc0NDAyRUY1ODJFNDM0N0RGNTgzRTBGNTQ3RDIxMjAyMDgwQUMyMjIwMjA4MEEyMDEyMDMwMjA2RTNFNTRCQzM5NTdENTAzRTIwMTQzNjIwMEQzMzkwN0YxQQorOjQwMDY0NjAwOUFFMDIwRTUwMzIwMUUyOTMwMUQxMkFFNEIwNTRCNzRDMDJFRjU4MkU0MzQ3Q0Y1ODNFMDEzOTIxOEFFNEIwNTRCNzRDMDJFRjU4MkU0MzQ3Q0Y1ODNFMEY1NDcwMjA4MEFDMjEyMDIwODBBOTA3RkNERTRGMEQyMDQzMDE2MEM0MworOjQwMDY4NjAwQzIxNjkwN0ZDMTA0RjBDMjEyMDIwODBBOTA3RkNBRTAzMEUxMDVDMjEyMDIwODBBOTA3RkNCRTBGNTdEOTA3RDQwRTAxMzkyMTYyMDE0MkQyMDBEMkE5MDdGOUFFMDIwRTUwMzIwMUUyMDMwMUQxMTkwN0Q0MUUwMTM5MjE4QTM1MgorOjQwMDZDNjAwRTBGNTQ3NzU0QjAzMDIwODBBNzU0QjAyOTA3RDQxRTBGNTQ3MDIwODBBNzU0QjAxQzIxMjAyMDgwQUU1NEJDMzk1N0Q1MDAzMDIwNzhCOTA3RkNDRTAzMEUxMDdDMjIyQzIwNjAyMDgwQTkwN0ZDREUwRjU3RDkwN0NDMEUwMTNBQworOjQwMDcwNjAwOTIxNjMwMTQwMzAyMDc4MzIwMEQ3MjIwMDA2RjkwN0Y5QUUwMjBFNTAzMjAxRTY1MzAxRDEwOTA3Q0MxRTAxMzkyQzNBM0UwRjVDMTc1NEIwMzgwMDk5MDdDQzFFMEY1QzE3NTRCMDJFNTRCQzM5NTdENDAxNzkwN0ZDREU0RjBBRQorOjQwMDc0NjAwRDIwNDIwMTYwMzAyMDgwQUMyMTY5MDdGQzEwNEYwMDIwODBBMzAxRDEyQUU0QjA1NEI3NEMwMkVGNTgyRTQzNDdDRjU4M0UwMTM5MjE4QUU0QjA1NEI3NEMwMkVGNTgyRTQzNDdDRjU4M0UwRjU0N0QyMTIwMjA4MEE3NTRCMDE3MworOjQwMDc4NjAwQzIyMjAyMDgwQTMwMTQwMzAyMDgwODIwMEQ3NDkwN0Y5QUUwMjBFNTAzMjAxRTZBMzAxRDEyQUU0QjA1NEI3NEMwMkVGNTgyRTQzNDdDRjU4M0UwMTM5MkMzQUU0QjA1NEI3NEMwMkVGNTgyRTQzNDdDRjU4M0UwRjVDMUU1NEIzRgorOjQwMDdDNjAwQzM5NTdENDAxMzkwN0ZDREU0RjBEMjA0MzAxNjM1QzIxNjkwN0ZDMTA0RjA4MDJDMzAxRDEyQUU0QjA1NEI3NEMwMkVGNTgyRTQzNDdDRjU4M0UwMTM5MjE4QUU0QjA1NEI3NEMwMkVGNTgyRTQzNDdDRjU4M0UwRjU0N0QyMTIyQQorOjQwMDgwNjAwODAwMkMyMjJEMjI1MjA5ODAzMDIwOTNFQzI5ODIwMDEwMzAyMDhCMDIwMjMyN0FFNDgwNTQ4NzQ4MDJFRjU4MkU0MzQ3RUY1ODNFNTk5RjAzMDFCNDlBRTQ4MDU0ODc0ODAyRUY1ODJFNDM0N0VGNTgzRTU5OEYwODAzNkFGOTk2RQorOjQwMDg0NjAwRUZCNTU4MDREMjBCODAyQ0VGQjU1NzA0QzIwQjgwMjRBRTQ4MDU0ODc0ODAyRUY1ODJFNDM0N0VGNTgzRUZGMDMwMUIxMUFFNDgwNTQ4NzQ4MDJFRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjE5RTU0OEMzOTU1NDUwMDMwMjA5M0M5RgorOjQwMDg4NjAwOTA3RkI4RTAzMEUxMTVFNTQ4QzM5NDQwNTAwMzAyMDkzQzE1NDgxNTQ4MDUyREQyMEMwMjA5M0M5MDdGQjdFNTQ4RjA3NTQ4MDBDMjAxMDIwOTNDMjAyMzI3QUU0ODA1NDg3NDAwMkVGNTgyRTQzNDdFRjU4M0U1OTlGMDMwMUJCRgorOjQwMDhDNjAwNDlBRTQ4MDU0ODc0MDAyRUY1ODJFNDM0N0VGNTgzRTU5OEYwODAzNkFGOTlFRkI1NTgwNEQyMEI4MDJDRUZCNTU3MDRDMjBCODAyNEFFNDgwNTQ4NzQwMDJFRjU4MkU0MzQ3RUY1ODNFRkYwMzAxQjExQUU0ODA1NDg3NDAwMkU1MQorOjQwMDkwNjAwRjU4MkU0MzQ3RUY1ODNFNTk4RjBEMjE5RTU0OEMzOTU1NDQwMjM5MDdGQjZFMDMwRTExMUU1NDhDMzk0NDA0MDE1MTU0ODE1NDgwNTJERDIwQzgwMEI5MDdGQjlFNTQ4RjA3NTQ4MDBEMjAxRDIyNTIwQzAwMzAyMEE3MEMyQzAxNgorOjQwMDk0NjAwMjAwMjAzMDIwOUUyMjAyNDI3QUU0OTA1NDk3NDgwMkVGNTgyRTQzNDdERjU4M0U1QzFGMDMwMUQ0OUFFNDkwNTQ5NzQ4MDJFRjU4MkU0MzQ3REY1ODNFNUMwRjA4MDM2QUZDMUVGQjU3MDA0RDIwRDgwMkNFRkI1NkYwNEMyMERBRQorOjQwMDk4NjAwODAyNEFFNDkwNTQ5NzQ4MDJFRjU4MkU0MzQ3REY1ODNFRkYwMzAxRDExQUU0OTA1NDk3NDgwMkVGNTgyRTQzNDdERjU4M0U1QzBGMEQyMUFFNTQ5QzM5NTZDNTAwMzAyMEE2RTkwN0ZCQ0UwMzBFMTE1RTU0OUMzOTQ0MDUwMDM1MQorOjQwMDlDNjAwMDIwQTZFMTU0OTE1NDkwNTM5RDIwRTAyMEE2RTkwN0ZCQkU1NDlGMDc1NDkwMEMyMDIwMjBBNkUyMDI0MjdBRTQ5MDU0OTc0MDAyRUY1ODJFNDM0N0RGNTgzRTVDMUYwMzAxRDQ5QUU0OTA1NDk3NDAwMkVGNTgyRTQzNDdERjU1NQorOjQwMEEwNjAwODNFNUMwRjA4MDM2QUZDMUVGQjU3MDA0RDIwRDgwMkNFRkI1NkYwNEMyMEQ4MDI0QUU0OTA1NDk3NDAwMkVGNTgyRTQzNDdERjU4M0VGRjAzMDFEMTFBRTQ5MDU0OTc0MDAyRUY1ODJFNDM0N0RGNTgzRTVDMEYwRDIxQUU1NDk4MworOjQwMEE0NjAwQzM5NTZDNDAyMzkwN0ZCQUUwMzBFMTExRTU0OUMzOTQ0MDQwMTUxNTQ5MTU0OTA1MzlEMjBFODAwQjkwN0ZCREU1NDlGMDc1NDkwMEQyMDJEMjI1MzAyNTA1QzIyNTAyMDA1NkQwRDBEMDg2RDA4MkQwODNEMEUwMzI5MDdGQ0U5OQorOjQwMEE4NjAwRTAzMEUxMDMwMjBCQTVFNEY1MTI3NDQwMjUxMkY1ODJFNDM0N0NGNTgzRTBGRkU1MTI3QzAwN0IwMDI0NENGOUVDMzQwMEZBRUYxMjE1Q0QwNTEyRTUxMkI0MThEQkU1NEM2MDBDNzVDOTIwNzVDODM2ODU0RENBODU0RUNCRTVCQworOjQwMEFDNjAwNEYxMzkyMUI5MjlGRTU1MDEzOTIxQ0U1NTExMzkyMjNFNTUyNjAwOTkwN0Y5OEUwNTRGQkYwODAwNzkwN0Y5OEUwNDQwNEYwRTU1MzYwMDk5MDdGOThFMDU0N0ZGMDgwMDc5MDdGOThFMDQ0ODBGMEU1NTk2MDBCQzIxM0MyMEIxOAorOjQwMEIwNjAwOTA3Rjk1RTA0NDAyRjBFNTVBNjAwQkQyMEJEMjBDOTA3Rjk1RTA0NDAyRjBFNTVCNjAwREMyQUZDMjExRDIwMEU0RjU3Q0Y1NEFEMkFGRTU1QzYwMDUzMDIzMDJEMjBCRTU1RDYwMTU5MDdGOTVFMDU0RkRGMDkwN0Y5RUUwNDREOQorOjQwMEI0NjAwMDJGMDkwN0Y5OEUwNTRGREYwRTU1RTYwMEFEMjlDQzI5ODc1MkUwMTc1NDAyOEU1NUY2MDA3QzI5Q0U0RjU0OEY1MkVFNTYwNjAwM0U0RjU0OEU1NjE2MDAyRDIwN0U1NjI2MDA4RTU1RTcwMDJGNTQwRDIwQ0U1NjM2MDE5OTA2MAorOjQwMEI4NjAwN0ZENzc0MTFGMDc0MzFGMDc0MTJGMDc0MzJGMDc0MTVGMDc0MzVGMEQyMDNEMjAxRDIwOUU0OTA3RkNGRjBBMjEzRTQzM0ZGNjUyQjYwMDQ4RjJCRDIwQ0EyMEJFNDMzRkY2NTJDNjAwNDhGMkNEMjBDOTA3RjlCRTA1NDA4NjU4OQorOjQwMEJDNjAwMjc2MDA3RTA1NDA4RjUyN0QyMEM5MDdGOUJFMDU0NDBCNTI5MDlFMDU0NDA2NDQwRjUyOUQyMEMzMDA3MzVDMkFGMzAwMTE4OTA3RkI4RTAyMEUxMjdFNTQ4NjAwOTkwN0ZCN0YwRTRGNTQ4QzIwMUMyMDc4MDE2OTA3RkI2RTBFOQorOjQwMEMwNjAwMjBFMTBGRTU0ODYwMDk5MDdGQjlGMEU0RjU0OEQyMDFDMjA3RDJBRjIwMDUzNzMwMDMxQjkwN0ZDNkUwMjBFMTJEOTA3RTQwRTAxMzkyMTU3NTRBMDE5MDdGQzdFMEY1N0NEMjA1ODAxOTkwN0ZDOEUwMjBFMTEyOTA3REMwRTBDRgorOjQwMEM0NjAwMTM5MjE1NzU0QTAxOTA3RkM5RTBGNTdDRDIwNTIwMjEzMzIwMDAwNkU1NEE2NTdDNzAyQTMwMDUxQTMwMDMwOUU0OTA3RkM3RjBDMjAzODAwN0U0OTA3RkM5RjBEMjAzQzIwNUU0RjU3Q0Y1NEEzMDE1MEFDMjE1QzIwMDkwN0Y1QworOjQwMEM4NjAwQkY3NDAxRjAzMDIxMDMwMjBEOTQyMDA1MDMwMjBEOTQzMDFDMEE5MDdGOUJFMDIwRTMwMzAyMEQ5NDMwMEIwMzAyMEQ5NDMwMTMwMzAyMEQ5NDMwMDM2MjMwMUIxMkFGNEEwNTRBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTJDRQorOjQwMENDNjAwMkRBRjRBMDU0QTc0NDAyRkY1ODJFNDM0N0VGNTgzRTBGNTEzRTU0QUMzOTU3QzUwMkEzMDFCMTJBRjRBMDU0QTc0NDAyRkY1ODJFNDM0N0VGNTgzRTAxMzkyMTdBRjRBMDU0QTc0NDAyRkY1ODJFNDM0N0VGNTgzRTBGNTQ2RDI2NgorOjQwMEQwNjAwMTE4MDZCQzIxMUU0OTA3RkM3RjBDMjAzODA2MDMwMUIxMkFGNEEwNTRBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIyREFGNEEwNTRBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MTNFNTRBQzM5NTdDNTAyQTMwMUIxMkFGNEE2NworOjQwMEQ0NjAwMDU0QTc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMTdBRjRBMDU0QTc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTQ2RDIxMTgwMDlDMjExRTQ5MDdGQzlGMEQyMDMzMDFCMDRBMjJEOTI5QkQyMjFDMkFGODUxMzk5MjAxMTBEMzA0MworOjQwMEQ4NjAwMTUwQUMyMTVDMjAwOTA3RkJGNzQwMUYwRDJBRjkwN0ZEMEUwMzBFMTAzMDIwRUI1RTRGNTEyNzRDMDI1MTJGNTgyRTQzNDdCRjU4M0UwRkZFNTEyN0MwMDdCMDAyNDY0RjlFQzM0MDBGQUVGMTIxNUNEMDUxMkU1MTJCNDE4REI1MQorOjQwMERDNjAwRTU2NDYwMEI3NTg5NjA3NTg4NDBEMkRGODU2NThERTU2NzEzOTIxRDkyQzdFNTY4MTM5MjFFRTU2OTEzOTIyNEU1NkE2MDA5OTA3Rjk3RTA1NEVGRjA4MDA3OTA3Rjk3RTA0NDEwRjBFNTZCNjAwOTkwN0Y5N0UwNTQ3RkYwODBBNAorOjQwMEUwNjAwMDc5MDdGOTdFMDQ0ODBGMEU1NzE2MDBCQzIxNEMyMEQ5MDdGOTRFMDQ0MDhGMEU1NzI2MDBCRDIwREQyMEU5MDdGOTRFMDQ0MDhGMEU1NzM2MDBEQzJBRkMyMTJEMjAwRTRGNTdERjU0QkQyQUZFNTc0NjAwNTMwMjQwMkQyMEQyMAorOjQwMEU0NjAwRTU3NTYwMTU5MDdGOTRFMDU0RjdGMDkwN0Y5REUwNDQwOEYwOTA3Rjk3RTA1NEY3RjBFNTc2NjAwQUQyQzRDMkMwNzUzQTAxNzU0MTI4RTU3NzYwMDdDMkM0RTRGNTQ5RjUzQUU1Nzg2MDAzRTRGNTQ5RTU3OTYwMDJEMjA4RTVGMAorOjQwMEU4NjAwN0E2MDA4RTU3NjcwMDJGNTQxRDIwRUU1N0I2MDE5OTA3RkQ3NzQxM0YwNzQzM0YwNzQxNEYwNzQzNEYwNzQxNkYwNzQzNkYwRDIwNEQyMDJEMjBBRTQ5MDdGRDFGMEEyMTRFNDMzRkY2NTM3NjAwNDhGMzdEMjBFQTIwREU0MzMwNAorOjQwMEVDNjAwRkY2NTM4NjAwNDhGMzhEMjBFOTA3RjlBRTA1NDIwNjUzMzYwMDdFMDU0MjBGNTMzRDIwRTkwN0Y5QUUwNTQ0MEI1MzUwOUUwNTQ0MDY0NDBGNTM1RDIwRTMwMDgzNUMyQUYzMDAyMTg5MDdGQkNFMDIwRTEyN0U1NDk2MDA5OTA5OQorOjQwMEYwNjAwN0ZCQkYwRTRGNTQ5QzIwMkMyMDg4MDE2OTA3RkJBRTAyMEUxMEZFNTQ5NjAwOTkwN0ZCREYwRTRGNTQ5RDIwMkMyMDhEMkFGMjAwNjM3MzAwNDFCOTA3RkNBRTAyMEUxMkQ5MDdENDBFMDEzOTIxNjc1NEIwMTkwN0ZDQkUwRjUwMworOjQwMEY0NjAwN0REMjA2ODAxOTkwN0ZDQ0UwMjBFMTEyOTA3Q0MwRTAxMzkyMTY3NTRCMDE5MDdGQ0RFMEY1N0REMjA2MjAyMjMzMjAwMDA2RTU0QjY1N0Q3MDJBMzAwNjFBMzAwNDA5RTQ5MDdGQ0JGMEMyMDQ4MDA3RTQ5MDdGQ0RGMEQyMDQyQworOjQwMEY4NjAwQzIwNkU0RjU3REY1NEIzMDE2MEFDMjE2QzIwMDkwN0ZDMTc0MDFGMDMwMjIwMzAyMTBBNDIwMDYwMzAyMTBBNDMwMUUwQTkwN0Y5QUUwMjBFNTAzMDIxMEE0MzAwRDAzMDIxMEE0MzAxNDAzMDIxMEE0MzAwNDYyMzAxRDEyQUY4RQorOjQwMEZDNjAwNEIwNTRCNzQ0MDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIyREFGNEIwNTRCNzQ0MDJGRjU4MkU0MzQ3REY1ODNFMEY1MTNFNTRCQzM5NTdENTAyQTMwMUQxMkFGNEIwNTRCNzQ0MDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIxOEFGNEI3OAorOjQwMTAwNjAwMDU0Qjc0NDAyRkY1ODJFNDM0N0RGNTgzRTBGNTQ3RDIxMjgwNkJDMjEyRTQ5MDdGQ0JGMEMyMDQ4MDYwMzAxRDEyQUY0QjA1NEI3NEMwMkZGNTgyRTQzNDdDRjU4M0UwMTM5MjJEQUY0QjA1NEI3NEMwMkZGNTgyRTQzNDdDRjVGMgorOjQwMTA0NjAwODNFMEY1MTNFNTRCQzM5NTdENTAyQTMwMUQxMkFGNEIwNTRCNzRDMDJGRjU4MkU0MzQ3Q0Y1ODNFMDEzOTIxOEFGNEIwNTRCNzRDMDJGRjU4MkU0MzQ3Q0Y1ODNFMEY1NDdEMjEyODAwOUMyMTJFNDkwN0ZDREYwRDIwNDMwMURGNAorOjQwMTA4NjAwMDRBMjJEOTJDM0QyMjJDMkFGODUxM0MxMjAxMjBEMzAxNjBBQzIxNkMyMDA5MDdGQzE3NDAxRjBEMkFGOTA3RkMyRTAzMEUxMDMwMjExN0FFNTFBNzA0NjMwMEMzRkU1NDA3MDNCQTIwOTMzRjUzMUMyMDlDMjBDRTRGNTEyN0UwRAorOjQwMTBDNjAwMDA3QjAwNzQyNjI1MTJGOUVFMzQwMEZBMTIxNTg3RkY3NDgwMjUxMkY1ODJFNDM0N0JGNTgzRUZGMDA1MTJFNTEyQjQwQ0RCOTA3RkMzNzQwQ0YwNzU0MDEwMjI3NTFBMDEyMkU1MUE2NDAxNzA0NTMwMEUzRUU1NDE3MDNBQTJDNQorOjQwMTEwNjAwMEEzM0Y1M0RDMjBBQzIwRUU0RjUxMjdFMDA3QjAwNzQzMjI1MTJGOUVFMzQwMEZBMTIxNTg3RkY3NDgwMjUxMkY1ODJFNDM0N0JGNTgzRUZGMDA1MTJFNTEyQjQwQ0RCOTA3RkMzNzQwQ0YwNzU0MTEwNzUxQTAyMjJFNTFDNjBDQQorOjQwMTE0NjAwMzAxNTFDRTRGNTEyN0UwMDdCMDA3NDFCMjUxMkY5RUUzNDAwRkExMjE1ODdGRjc0ODAyNTEyRjU4MkU0MzQ3QkY1ODNFRkYwMDUxMkU1MTJCNDAzREI5MDdGQzM3NDAzRjBFNEY1MUEyMjkwN0ZFOUUwMTIxNjE3MTI0MDAwMTJBNworOjQwMTE4NjAwQjQwMTEzMjAwMzExOUUwNjEyMzMwODEyMkQwOTEyMjAwQTEzNzYwQjAwMDAxMzZGOTA3RkVCRTAyNEZFNjAxNjE0NjA0MDI0MDI3MDY5NzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIxMzc2OTA3RkVBRTBGRjEyMTc0QjhCMTI2MQorOjQwMTFDNjAwOEExMzg5MTRFQTQ5NjAxMUFFMDJFRTkwN0ZENEYwQUYwMUVGOTA3RkQ1RjAwMjEzNzY5MDdGQjRFMDQ0MDFGMDAyMTM3NjkwN0ZFQUUwRkYxMjE3OUE4QjEyOEExMzg5MTRFQTQ5NjAxMUFFMDJFRTkwN0ZENEYwQUYwMUVGOTA4MworOjQwMTIwNjAwN0ZENUYwMDIxMzc2OTA3RkI0RTA0NDAxRjAwMjEzNzY5MDdGQjRFMDQ0MDFGMDAyMTM3NjkwN0YwMDc0MDFGMDkwN0ZCNUYwMDIxMzc2MTIxNEMzMDIxMzc2OTA3RjAwNzQwMUYwOTA3RkI1RjAwMjEzNzY5MDdGRThFMDI0N0ZCRgorOjQwMTI0NjAwNjAyNDE0NjAzMTI0MDI3MDVCQTIyNkU0MzNGRjI1RTBGRkEyMkJFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMTM3NkU0OTA3RjAwRjBBM0YwOTA3RkI1NzQwMkYwMDIxMzc2OTA3RkVDRTBGNDU0ODBGRkM0NTQyOQorOjQwMTI4NjAwMEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIxMzc2OTA3RkI0RTA0NDAxRjAwMjEzNzY5MDdGRThFMDI0RkU2MDFEMjQwMjYwMDMwMjEzNzY5MDdGRUEwQgorOjQwMTJDNjAwRTBCNDAxMDVDMjI2MDIxMzc2OTA3RkI0RTA0NDAxRjAwMjEzNzY5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkYxMzEzMTNBNworOjQwMTMwNjAwNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA1RjkwN0ZCNEUwNDQwMUYwODA1NjkwN0ZFOEUwMjRGRTYwMTgyNDAyNzA0QTkwN0ZFQUUwQjQwMTA0RDIyNjgwM0Y5MDdGQjRFMDQ0MDFGMDgwMzY5MDdGRUFFMDcwMjBBMworOjQwMTM0NjAwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMjIwMjgwMzAyMTRDMkU1NDA2MworOjQwMTM4NjAwNjAwMjE1NDBFNTQ4NjA0RjY1NDQ3MDQ1RTU0MkY0NjAwMjA1NDJFNTQyQzM5NTU1NDAzREMyQUYzMDAxMTg5MDdGQjhFMDIwRTEyNzkwN0ZCN0U1NDhGMEMyMDFFNEY1NDhGNTQyRjU0NDgwMTY5MDdGQjZFMDIwRTEwRjkwN0YwNworOjQwMTNDNjAwQjlFNTQ4RjBEMjAxRTRGNTQ4RjU0MkY1NDREMkFGODAwNjg1NDg0NEU0RjU0MkU1MkU2MDJEMjAxOTA3OTA3RjlCRTAzMEUwMEVFNTJGNjAwNUU0RjUyRkQyMENFNEY1M0U4MDEzRTUzRUQzOTU1NjUwMENFNTNFQjU1NjA1NzUwNAorOjQwMTQwNjAwMkYwMUQyMEMwNTNFQzIxOUU1NDE2MDAyMTU0MUU1NDk2MDRGNjU0NTcwNDVFNTQzRjQ2MDAyMDU0M0U1NDNDMzk1NkQ0MDNEQzJBRjMwMDIxODkwN0ZCQ0UwMjBFMTI3OTA3RkJCRTU0OUYwQzIwMkU0RjU0OUY1NDNGNTQ1ODBFMgorOjQwMTQ0NjAwMTY5MDdGQkFFMDIwRTEwRjkwN0ZCREU1NDlGMEQyMDJFNEY1NDlGNTQzRjU0NUQyQUY4MDA2ODU0OTQ1RTRGNTQzRTUzQTYwMkQyMDFBMDc5MDdGOUFFMDMwRTIwRUU1M0I2MDA1RTRGNTNCRDIwRUU0RjUzRjgwMTNFNTNGRDM1RQorOjQwMTQ4NjAwOTU2RTUwMENFNTNGQjU2RTA1NzUzQjAxRDIwRTA1M0ZDMjFBOTA3RkQyRTAyMEUxMjM5MDdCNDBFMDYwMDlFMEY1MUM5MDdCNDJFMEY1MUQ5MDdCNDFFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjBFNDkwN0ZEM0YwMjJFNDkwN0ZDNQorOjQwMTRDNjAwOTNGMDkwN0Y5Qzc0MzBGMDkwN0Y5NkUwNDQxMEYwOTA3Rjk0NzQwREYwOTA3RjlENzQ5QUYwOTA3Rjk3RTA1NEZERjA5MDdGOTU3NDIzRjA5MDdGOUU3NDg0RjBFNDkwN0ZDN0YwOTA3RkM5RjA5MDdGQ0ZGMDc1OTg0MDQzQTg5RQorOjQwMTUwNjAwMTBDMjFCQzIwNUMyMjFDMjBCQzIxM0Y1N0NGNTRBQzIxMUMyMTVGNTQyQzIxOUY1NDRGNTQ4QzIyM0MyMUNGNTJERjUyRkMyMDdDMjAwQzIxRkY1M0VDMjA5RDIwQ0Y1MjY5MDdGQ0JGMDkwN0ZDREYwOTA3RkQxRjA3NUMwNDA0MworOjQwMTU0NjAwNDNBODQwQzIxREMyMDZDMjIyQzIwREMyMTRGNTdERjU0QkMyMTJDMjE2RjU0M0MyMUFGNTQ1RjU0OUMyMjRDMjFFRjUzOUY1M0JDMjA4QzIwMEMyMjBGNTNGQzIwQUQyMEU3NTMyMDE5MDdGREY3NEZGRjA5MDdGREVGMEQyMjhERQorOjQwMTU4NjAwMjJCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJFNTgyMjlGNTgyRTU1MworOjQwMTVDNjAwODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMEEzRTAyMjUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFMEFFOTI1ODJGOEUyRjUxMQorOjQwMTYwNjAwRjAwOEUyMjJFNTgzMkFGNTgzRTk5M0Y1RjBBM0U5OTMyMkQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzQTNBMzgwREY3ODdGRTRGNkQ4RkQ3NTgxN0QwRQorOjQwMTY0NjAwMDIxNjg0MDIxNkM5RTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0M0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMTgxQQorOjQwMTY4NjAwQzVFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0ZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REUzOQorOjQwMTZDNjAwRTc4MEJFNzUxMTAxOTA3RjkyRTA1NEZERjA5MDdGQUVFMEZGRDM5MjI2RTQzM0ZFRUY0RUYwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDRDNQorOjQwMTcwNjAwMDFGMDkwN0ZBRUUwNDQwREYwRDJBRkQyQkNEMkJFRDIyRDEyMTg3RkMyMjdDMjI1QzIyODMwMjgwMzEyMEE4MzkwN0ZEOEUwNjUxMDYwMDhFMEY1MTAxMjEzN0U4MEVBMzAyNzA3QzIyNzEyMTE3QjgwRTAzMDJDRERDMjJDMTJDNQorOjQwMTc0NjAwMDAyNjgwRDYyMkU0RkU3NTE3RkY3NTE4MTk3NTE5MTJBQjE3QUExOEE5MTk5MDAwMDExMjE1QTA2NDAyNzAyREFEMDYwRUVEQjUwNzAxMjI5MDAwMDIxMjE1REY4NUYwMTVGNTE2NjIxNUU1MTU2MjE2RTUxNjYyMTUyOUZERTU1MQorOjQwMTc4NjAwMTUzQUE5MDU3NTE3RkZGNTE4ODkxOTgwQzM3QjAwN0EwMDc5MDAyMjhGMTVFNEY1MTY3NTE3RkY3NTE4MTk3NTE5ODZBQjE3QUExOEE5MTk5MDAwMDExMjE1QTBCNDAzMURBRjE2MDUxNkVGQjUxNTAxMjIxMjE1ODc3RTAwMjlCRQorOjQwMTdDNjAwRkZFRTNBQTkwNzc1MTdGRkY1MTg4OTE5ODBENDdCMDA3QTAwNzkwMDIyRTQ5MDdGOTNGMDkwN0Y5Q0YwOTA3Rjk0RjA5MDdGOUQ3NDAyRjA5MDdGOTdGMEU0OTA3Rjk1RjA5MDdGOUU3NEZGRjBFNDkwN0Y5OEYwOTA3RjlERjAwMworOjQwMTgwNjAwMjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjI3NTM5MUVGOTAyNAorOjQwMTg0NjAwN0ZBQjc0MDFGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIyQzUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3RkQ2RTA1NEZCRjBERAorOjQwMTg4NjAwRTA0NDA4RjAzMDJEMDRFMDQ0MDJGMDdGRjQ3RTAxMTIwMDA2OTA3RkQ2RTA1NEY3RjBFMDQ0MDRGMDIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyQzEyNQorOjQwMThDNjAwQUEwMTFBMDAwMzFCMDMwMDAwQzEyN0MxMkNDMTI2QzEyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxMTAwMUZGMDAzMQorOjQwMTkwNjAwMDA0MENEMDYwRjAxMDAwMDAxMDIwMDAxMDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA3OAorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGMworOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMzYwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyMDAwNTUwMDUzMDA0MjAwMjAwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA0MTAwNjQwMDYxMDA3MDAwNzQwMDY1MDBGOQorOjQwMUEwNjAwNzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjQwMUE0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjQwMUE4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjQwMUFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjE4MzEwMDAyMUI3OAorOjA5MUIwNjAwMDQwMDAyMTgwNzAwMDIxODU4M0YKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMjh4LkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMjh4LkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjBmN2ZhCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2EyOHguSEVYCkBAIC0wLDAgKzEsMTQxIEBACis6MDMwMDMzMDAwMjEyRjdCRgorOjEwMDAwMzAwRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjBCRgorOjEwMDAxMzAwOTA3Rjk0RjA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwOTAzMQorOjBGMDAyMzAwN0Y5NUYwOTA3RjlFNzQwN0YwRTQ5MDdGOThGMDIyMTUKKzoxMDAwNDYwMDMwMDkxODEyMTMxQkVGQzM5NTNDNDAwMzAyMDBEODkwRTkKKzoxMDAwNTYwMDdGQkY3NDAxRjBDMjA5QzIwMDgwNzczMDAzM0I5MDdGRjYKKzoxMDAwNjYwMEM2RTAyMEUxNkQxMjEzMUJFRkMzOTQ0MDUwNjQ5MDdFRUUKKzoxMDAwNzYwMDQwRTAxMzkyMDk5MDdGQzdFMDE0RjUxOTIwMDAxMTYwNDMKKzoxMDAwODYwMDBGRjUwODdFN0U3RjQxNzUwQzdFNzUwRDQxMTIwQ0JBMDgKKzoxMDAwOTYwMEMyMDNFNDkwN0ZDN0YwODAzOTkwN0ZDOEUwMjBFMTMyNDgKKzoxMDAwQTYwMDEyMTMxQkVGQzM5NDQwNTAyOTkwN0RDMEUwMTM5MjA5QjAKKzoxMDAwQjYwMDkwN0ZDOUUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdEQzgKKzoxMDAwQzYwMDdGQzE3NTBDN0Q3NTBEQzExMjBDQkFEMjAzRTQ5MDdGMDkKKzoxMDAwRDYwMEM5RjA5MDdGQjZFMDMwRTEwMzAyMDE2MDEyMTFENjhGQkQKKzoxMDAwRTYwMDE5MTIxMzI3OEYzNkU1MTlDMzk1M0E1MDBGMTIxMkVCRTIKKzoxMDAwRjYwMEVGMzBFMDA4RTUzNjIwRTcwMzMwMEI1RUMyMEJFNTE5NkEKKzowQzAwMzYwMDkwN0Y5ODc0MTBGMDkwQzAwMEUwRkYyMjUyCis6MDMwMDQzMDAwMjEzMDBBNQorOjAzMDAwMDAwMDIwRTAwRUQKKzo0MDAxMDYwMDYwNThCNDgwMDM0MzM2MDJFNTM2MzBFNzI2RTUxOUQzOTQyMDQwMDM3NTE5MjA4NTE5MDg3RTdFN0Y4MDc1MEM3RTc1MEQ4MEFGMzYxMjBGNEJFNTE5MjVFMDkwN0ZCN0YwODAyN0U1MTlEMzk0M0Y0MDAzNzUxOTNGODUxOTA4RDQKKzo0MDAxNDYwMDkwN0U4MEU1MzZGMDdFN0U3RjgxNzUwQzdFNzUwRDgxMTIwQ0RGRTUxOTA0OTA3RkI3RjA5MDdGQ0VFMDMwRTEwNjIwMDUwMzAyMDNDMUMyMDVFNEY1MTg3NDQwMjUxOEY1ODJFNDM0N0NGNTgzRTBGRkU1MTg3QzAwN0IwMTdBRjEKKzo0MDAxODYwMDdFNzkwMDI0MDBGOUVDMzQ3RUZBRUYxMjBFRDIwNTE4RTUxOEI0MjBENzkwN0UwMEUwNjA2ODkwN0UwM0UwNjAyNDdGMDFFNEZEMTIxMUIxN0YwMzdEQ0QxMjExQjE0MzQ2ODA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjBFNDkwRTAKKzo0MDAxQzYwMDdFMTNGMDgwMzA5MDdFMDFFMEZGMTIxMDM1OTA3RTAyRTBGRjEyMTA1QjdGMDE5MDdFMTFFMEZEMTIxMUIxN0YwMzdEMDcxMjExQjE0MzQ2ODA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdGOTg3NDEyRjBFNTQwNDQwNjkwM0UKKzo0MDAyMDYwMEMwMDBGMDkwN0UwM0UwNzAwNjkwN0UxM0UwNzAwOEU0OTA3RTEzRjA3NTI1RkY5MDdFMDVFMDYwMTJBM0UwNTQzRkY1NDQ5MDdGOTg3NDEzRjA5MEMwMDBFNTQ0RjA5MDdFMDdFMDYwMkJBM0UwNjAwNTQzNDI4MDgwMDM1MzQyREEKKzo0MDAyNDYwMDdGNTM0MkZDOTA3RTA5RTA2MDExNDM0MjAyQTNFMEZGMTIxMEE3OTA3RTBCRTBGRjEyMTBDREFGNDIxMjEwODE5MDdFMDNFMDYwMDg1MzQyN0ZBRjQyMTIxMDgxOTA3RTBDRTA2MDE4QTNFMDYwMDU0MzQ2MDI4MDAzNTM0NkZEQjQKKzo0MDAyODYwMDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UwRUUwNjAxOEEzRTA2MDA1NDM0NjAxODAwMzUzNDZGRTkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UxMkUwRjUzQUEzRTAxMzkyMERBM0UwRjUzQ0EzRTA2MDA1NDM0NjEwOEIKKzo0MDAyQzYwMDgwMDM1MzQ2RUY5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMTZFMDYwMzI1MzQ0QkY5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxMUYwMTIxMkRGRUY1NEZFOTBDMDAwRjA1MzNFRkRFNEZGQUQzRTEyMEYKKzo0MDAzMDYwMDExQjFFNEY1MkFGNTI5RDIwNzkwN0UxN0UwNjAwRjQzM0UwMkU0RkZBRDNFMTIxMUIxNzUyOTAxRDIwNzkwN0UxOEUwNjAxMDkwN0Y5ODc0MTJGMEU1NDA0NDA0OTBDMDAwRjBEMjAwOTA3RTE5RTA2MDExNDM0NDQwOTA3Rjk4RjIKKzo0MDAzNDYwMDc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdFMUFFMDYwMEY1MzNFRkVFNEZGQUQzRTEyMTFCMTc1MkIwMUQyMDc5MDdFMUJFMDYwMEY0MzNFMDFFNEZGQUQzRTEyMTFCMUU0RjUyQkQyMDc5MDdFMUNFMDYwMEU5MDdGOTg3NDEyODQKKzo0MDAzODYwMEYwRTU0MDQ0MDI5MEMwMDBGMDkwN0UxREUwNjAwMkQyMEI5MDdFMUVFMDYwMDg3NTJDMDFFNEY1MzhEMjA3OTA3RTFGRTA2MDExOTA3RkQ3NzQxMUYwNzQzMUYwNzQxNUYwNzQzNUYwRDIwM0U0OTA3RkNGRjAzMDFBNTJFNTM4OTIKKzo0MDAzQzYwMDYwMDIxNTM4MjAxMzQ5RTUxM0QzOTQwMDQwMDQxNTEzODAzRTc1MTMwQTMwMUIwMkQyMTMxMjEyREZFRjU0MDFGNTE5NjUyQTYwMDU4NTE5MkFEMjA3MTIxMzMzRUY1NDgwRjUxOTY1MjY2MDA1ODUxOTI2RDIwNzMwMEQxMTEyN0YKKzo0MDA0MDYwMDEzMzNFRjU0MTBGNTE5NjUyNTYwMDU4NTE5MjVEMjA3MjAxQjAzMDIwN0VDMzAwQTE4MTIxMzZGRUZDMzk1M0Q0MDAzMDIwNEFFOTA3RkMxNzQwMUYwQzIwQUMyMDA4MDc3MzAwNDNCOTA3RkNBRTAyMEUxNkQxMjEzNkZFRkMzNUEKKzo0MDA0NDYwMDk0NDA1MDY0OTA3RDQwRTAxMzkyMEE5MDdGQ0JFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3RDdGNDE3NTBDN0Q3NTBENDExMjBEMDRDMjA0RTQ5MDdGQ0JGMDgwMzk5MDdGQ0NFMDIwRTEzMjEyMTM2RkVGQzM5NDQwNTAyOTkwQkMKKzo0MDA0ODYwMDdDQzBFMDEzOTIwQTkwN0ZDREUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdDN0ZDMTc1MEM3Qzc1MERDMTEyMEQwNEQyMDRFNDkwN0ZDREYwOTA3RkJBRTAzMEUxMDMwMjA1MzYxMjEyMjA4RjE5MTIxMzdCOEYzN0U1MTlDMzk1MkIKKzo0MDA0QzYwMDNCNTAwRjEyMTM1N0VGMzBFMDA4RTUzNzIwRTcwMzMwMEM1RUMyMENFNTE5NjA1OEI0ODAwMzQzMzcwMkU1MzczMEU3MjZFNTE5RDM5NDIwNDAwMzc1MTkyMDg1MTkwODdFN0Q3RjgwNzUwQzdENzUwRDgwQUYzNzEyMEY4NEU1MDMKKzo0MDA1MDYwMDE5MjVFMDkwN0ZCQkYwODAyN0U1MTlEMzk0M0Y0MDAzNzUxOTNGODUxOTA4OTA3RDgwRTUzN0YwN0U3RDdGODE3NTBDN0Q3NTBEODExMjBEMjlFNTE5MDQ5MDdGQkJGMDkwN0ZEMEUwMzBFMTA2MjAwNjAzMDIwNzk3QzIwNkU0RjgKKzo0MDA1NDYwMEY1MTg3NEMwMjUxOEY1ODJFNDM0N0JGNTgzRTBGRkU1MTg3QzAwN0IwMTdBN0U3OTIwMjQyMEY5RUMzNDdFRkFFRjEyMEVEMjA1MThFNTE4QjQyMEQ3OTA3RTIwRTA2MDY4OTA3RTIzRTA2MDI0N0YwMUU0RkQxMjExRkI3RjAzMjkKKzo0MDA1ODYwMDdEQ0QxMjExRkI0MzQ3ODA5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjBFNDkwN0UzM0YwODAzMDkwN0UyMUUwRkYxMjExMTk5MDdFMjJFMEZGMTIxMTNGN0YwMTkwN0UzMUUwRkQxMjExRkI3RjAzN0QwNzEyMTFGQjQzNDc4MDkwNDgKKzo0MDA1QzYwMDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdGOTg3NDBBRjBFNTQxNDQwNjkwQzAwMEYwOTA3RTIzRTA3MDA2OTA3RTMzRTA3MDA4RTQ5MDdFMzNGMDc1MkVGRjkwN0UyNUUwNjAxMkEzRTA1NDNGRjU0NTkwN0Y5ODc0MEJGMDkwRUIKKzo0MDA2MDYwMEMwMDBFNTQ1RjA5MDdFMjdFMDYwMkJBM0UwNjAwNTQzNDM4MDgwMDM1MzQzN0Y1MzQzRkM5MDdFMjlFMDYwMTE0MzQzMDJBM0UwRkYxMjExNjU5MDdFMkJFMEZGMTIxMThCQUY0MzEyMTBGMzkwN0UyM0UwNjAwODUzNDM3RkFGRkUKKzo0MDA2NDYwMDQzMTIxMEYzOTA3RTJDRTA2MDE4QTNFMDYwMDU0MzQ3MDI4MDAzNTM0N0ZEOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3RTJFRTA2MDE4QTNFMDYwMDU0MzQ3MDE4MDAzNTM0N0ZFOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwRDQKKzo0MDA2ODYwMDkwN0UzMkUwRjUzQkEzRTAxMzkyMEVBM0UwRjUzREEzRTA2MDA1NDM0NzEwODAwMzUzNDdFRjkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0UzNkUwNjAzMjUzNDVCRjkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjA5MDdGNzkKKzo0MDA2QzYwMDk4NzQwOUYwMTIxMzRCRUY1NEZFOTBDMDAwRjA1MzNGRkRFNEZGQUQzRjEyMTFGQkU0RjUzM0Y1MzJEMjA4OTA3RTM3RTA2MDBGNDMzRjAyRTRGRkFEM0YxMjExRkI3NTMyMDFEMjA4OTA3RTM4RTA2MDEwOTA3Rjk4NzQwQUYwNDMKKzo0MDA3MDYwMEU1NDE0NDA0OTBDMDAwRjBEMjAwOTA3RTM5RTA2MDExNDM0NTQwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0UzQUUwNjAwRjUzM0ZGRUU0RkZBRDNGMTIxMUZCNzUzNDAxRDIwODkwN0UzQkUwNjAwRjQzM0YwMUU0RTkKKzo0MDA3NDYwMEZGQUQzRjEyMTFGQkU0RjUzNEQyMDg5MDdFM0NFMDYwMEU5MDdGOTg3NDBBRjBFNTQxNDQwMjkwQzAwMEYwOTA3RTNERTA2MDAyRDIwQzkwN0UzRUUwNjAwODc1MzUwMUU0RjUzOUQyMDg5MDdFM0ZFMDYwMTE5MDdGRDc3NDEzODkKKzo0MDA3ODYwMEYwNzQzM0YwNzQxNkYwNzQzNkYwRDIwNEU0OTA3RkQxRjAzMDFBNTJFNTM5NjAwMjE1MzkzMDEzNDlFNTEzRDM5NDAwNDAwNDE1MTM4MDNFNzUxMzBBMzAxQjAyQzIxMzEyMTM0QkVGNTQwMUY1MTk2NTMzNjAwNTg1MTkzM0QyNzkKKzo0MDA3QzYwMDA4MTIxMzg3RUY1NDgwRjUxOTY1MkY2MDA1ODUxOTJGRDIwODMwMEUxMTEyMTM4N0VGNTQxMEY1MTk2NTJFNjAwNTg1MTkyRUQyMDgzMDFBMkE5MDdGRDJFMDIwRTEyMzkwN0I0MEUwNjAwOUUwRjUxNTkwN0I0MkUwRjUxNjkwMzUKKzo0MDA4MDYwMDdCNDFFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjBFNDkwN0ZEM0YwOTA3RkMyRTAzMEUxMDMwMjA5MjBFNTBBNzA0MDMwMDczOUU1Mzg3MDM1QzIwN0Y1MTg3RTAwN0IwMDc0MjQyNTE4RjlFRTM0MDBGQTEyMEU4Q0ZGNzQ4MDI1QkQKKzo0MDA4NDYwMDE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA5REI5MDdGQzM3NDA5RjA3NTM4MTBFNEY1MkM3NTBBMDEyMkU1MEE2NDAxNzA0MDMwMDgzOUU1Mzk3MDM1QzIwOEY1MTg3RTAwN0IwMDc0MkQyNTE4RjlFRTM0MDBGQTEyOTcKKzo0MDA4ODYwMDBFOENGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA5REI5MDdGQzM3NDA5RjA3NTM5MTBFNEY1MzU3NTBBMDIyMkU1MEE2NDAyNzAzNjMwMTQyRkMyMTRGNTE4N0UwMDdCMDA3NDBFMjUxOEY5RUUzNDAwODMKKzo0MDA4QzYwMEZBMTIwRThDRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwNURCOTA3RkMzNzQwNUYwNzUwQTAzMjJFNTE1NjAzMDE1MTVFNEY1MTg3RTAwN0IwMDc0MTQyNTE4RjlFRTM0MDBGQTEyMEU4Q0ZGNzQ4MDI1RjIKKzo0MDA5MDYwMDE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDAzREI5MDdGQzM3NDAzRjBFNEY1MEEyMjkwN0ZFOUUwMTIwRUU0MEEwODAwMEE3QzAxMEFFODAzMDk0NDA2MDlGQjA4MDlGNTA5MDlERDBBMDlFQzBCMDAwMDBCMzc5MDdGM0QKKzo0MDA5NDYwMEVCRTAyNEZFNjAxOTE0NjA2MTI0MDI2MDAzMDIwOUQzNzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIwQjNFOTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MjgyNzU4MzE5RUZGMDc1ODI3Qjc1ODMxOUYwNzU4Mjc0NzU4MzE5QjIKKzo0MDA5ODYwMEYwNzU4MjY2NzU4MzE5RjA3NTgyNTg3NTgzMTlGMDkwN0ZFQUUwMDQ3NTgyMTc3NTgzMTlGMDc0MTk5MDdGRDRGMDc0MTI5MDdGRDVGMDAyMEIzRTkwN0ZFQUUwRkYxMjBGMEFFQTQ5NjAwREVBOTA3RkQ0RjBFOTkwN0ZENUYwODUKKzo0MDA5QzYwMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGMDBFNTA5RjA5MDdGQjU3NDAxRjAwMjBCM0U5MDdGRUFFMEY1MDkwMjBCM0UxMjBCNDYwMjBCM0U5MDdGMDA3NDAxRjA5MDdGQjVGMDAyMDUKKzo0MDBBMDYwMDBCM0U5MDdGRThFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjEwRTQzM0ZGMjVFMEZGQTIxNkU0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwQjNFRTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjBCM0U5MDdGMDQKKzo0MDBBNDYwMEVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0ZFOEUwMjRGRTYwMUQyNDAyMEYKKzo0MDBBODYwMDYwMDMwMjBCM0U5MDdGRUFFMEI0MDEwNUMyMTAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0ZFQUUwNzAzODkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0U0RjA5MDdGQjYKKzo0MDBBQzYwMEVDRTA1NDgwRkYxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDVGOTA3RkI0RTA0NDAxRjA4MDU2OTA3RkU4RTAyNEZFNjAxODI0MDI3MDRBOTA3RkVBRTBCNDAxMDREMjEwODAzRjkwN0ZCNEUwNDQwMUYwNDkKKzo0MDBCMDYwMDgwMzY5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyRDQKKzo0MDBCNDYwMEU0OTA3RjkzRjA5MDdGOUM3NDMwRjBFNDkwN0Y5NkYwOTA3Rjk1NzRDMEYwOTA3RjlFNzQzRkYwOTA3Rjk4NzQxOEYwRTRGNThFOTA3RkRGNzRGRkYwOTA3RkRFRjBFNEY1MjQ3NTE4MDE3QjAwNzQyNDI1MThGOUU0MzQwMEZBOEIKKzo0MDBCODYwMEU0MTIwRUQyMDUxOEU1MThCNDA5RUE3NTNBMDFFNEY1MzhGNTEzRjUzNkMyMDdDMjBCQzIwNUMyMDBDMjA5QzIxMzkwN0Y5ODc0MTNGMDc1NDQwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIxMUIxN0YxMDhGNDIxMjEwODE5MDdGMDIKKzo0MDBCQzYwMDk4NzQxMkYwN0YwMThGNDBFRjQ0MDY5MEMwMDBGMDkwN0Y5ODc0MTRGMDc1NDY4MDkwQzAwMDc0ODBGMDBGRTRGRDEyMTFCMUU0RkY3RUEzQUQwNjhEM0UxMjExQjE5MDdGOTg3NDExRjA5MEMwMDBFNEYwN0YwNTdEN0YxMjExOEUKKzo0MDBDMDYwMEIxN0YwMTEyMTI2QTdGMDM3RDA3MTIxMUIxMjAxQjAzMDIwQ0I3NzUyRDAxNzUxODAxN0IwMDc0MkQyNTE4RjlFNDM0MDBGQUU0MTIwRUQyMDUxOEU1MThCNDA5RUE3NTNCMDFFNEY1MzlGNTEzRjUzN0MyMDhDMjBDQzIwNkMyQ0QKKzo0MDBDNDYwMDAwQzIwQUMyMTM5MDdGOTg3NDBCRjA3NTQ1MDM5MEMwMDA3NDAzRjA3RjBDRTRGRDEyMTFGQjdGMTA4RjQzMTIxMEYzOTA3Rjk4NzQwQUYwN0YwMThGNDFFRjQ0MDY5MEMwMDBGMDkwN0Y5ODc0MENGMDc1NDc4MDkwQzAwMDc0NEUKKzo0MDBDODYwMDgwRjAwRkU0RkQxMjExRkJFNEZGN0VBM0FEMDY4RDNGMTIxMUZCOTA3Rjk4NzQwOUYwOTBDMDAwRTRGMDdGMDU3RDdGMTIxMUZCN0YwMTEyMTI4QjdGMDM3RDA3MTIxMUZCRDIxMjIyOTA3Rjk4NzQxMEYwQUYwOEU1MERGNTgyQTUKKzo0MDBDQzYwMEU1MENGNTgzQzJBRjA1ODY5MEMwMDAwNTg2RTBBMzA1ODZGMDA1ODZERkY3RDJBRjIyOTA3Rjk4NzQxMEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMEUwMDU4NkYwQTMwNTg2REZGNzA1ODZEMkFGMjI5MDdGMjAKKzo0MDBEMDYwMDk4NzQwOEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDA4RjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1NUMKKzo0MDBENDYwMDg2REZGNzA1ODZEMkFGMjI3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJEMjE5OTA3RjkyRTA0NDAyRjA5MDdGQUVFMEZGRDM5MjEwRTQzM0ZFRUY0RUYwODkKKzo0MDBEODYwMEQyRTg0M0Q4MjA5MDdGREU3NDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwNDQwREYwRDJBRkQyMUExMjEyNDVDMjExRTRGNTBCRjUxM0MyMTdDMjEyRDQKKzo0MDBEQzYwMDkwN0ZBMTA0RjA5MDdGRDhFMDY1MTc2MDEwMzAxMjA1RDIxQTEyMDA0NjkwN0ZEOEUwRjUxNzgwMDgzMDEyMDVDMjFBMTIwMDQ2MzAxMTA3QzIxMTEyMDkyMTgwRDYzMDE4RDNDMjE4MTIxMzkzODBDQzIyNzg3RkU0RjZEOEZEQzcKKzo0MDBFMDYwMDc1ODE0NzAyMEU0NzAyMEQ2RkU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkU0ODAwQjAxMDIwNDA4MTAyMDQwRjUKKzo0MDBFNDYwMDgwOTAxMkFDRTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQUYwQTNDOEM1ODJDOENBQzU4M0NBMUUKKzo0MDBFODYwMERGRTlERUU3ODBCRUJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMkU1QjgKKzo0MDBFQzYwMDgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzQzEKKzo0MDBGMDYwMEEzQTM4MERGOEYxOEU0RjUxOTc1MUFGRjc1MUIxOTc1MUM4NkFCMUFBQTFCQTkxQzkwMDAwMTEyMEVBNUI0MDMxREFGMTkwNTE5RUZCNTE4MDEyMjEyMEU4QzdFMDAyOUZGRUUzQUE5MDc3NTFBRkZGNTFCODkxQzgwRDQ3QjAwQTUKKzo0MDBGNDYwMDdBMDA3OTAwMjI4RjFBMDUwREU1MERBRTBDNzAwMjA1MEMxNEY1ODI4RTgzRTUxQUYwMTIwMDM2MDUwREU1MERBQzBDNzAwMjA1MEMxNEY1ODI4QzgzRUZGMDE1MDhFNTA4NjAwQTEyMTMyNzhGMUFFRjQyMzY4MENBMjI4RjFBRkMKKzo0MDBGODYwMDA1MERFNTBEQUUwQzcwMDIwNTBDMTRGNTgyOEU4M0U1MUFGMDEyMTMzRjA1MERFNTBEQUMwQzcwMDIwNTBDMTRGNTgyOEM4M0VGRjAxNTA4RTUwODYwMEExMjEzN0I4RjFBRUY0MjM3ODBDQTIyQzBFMEMwODNDMDgyQzA4NUMwODgKKzo0MDBGQzYwMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTE1MzkxRUY5MDdGQUI3NDAxRjBEMDg2RDA4NEQwQzYKKzo0MDEwMDYwMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE4NTM5MUVGOTA3RkFCNzQwOEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEwOEEKKzo0MDEwNDYwMEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTFGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzNDkKKzo0MDEwODYwMEYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTRGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0RDkKKzo0MDEwQzYwMDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MEFGMDkwMkEKKzo0MDExMDYwMEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwOEYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQUYKKzo0MDExNDYwMEMwMDA3NEJGRjA5MDdGOTg3NDA5RjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwQ0YwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGRUMKKzo0MDExODYwMDkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBFRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTdGMDkwNzUKKzo0MDExQzYwMEMwMDBFRkYwOTA3Rjk4NzQxNUYwOTBDMDAwRURGMDIyMTIxMzBGOEYxQTEyMTMwRjhGMUJFNTFBNjUxQjYwMTIxMjEzMEY4RjFBRTUxQTY1MUI2MDA3MTIxMzBGOEYxQjgwRThBRjFBMjI5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwOTgKKzo0MDEyMDYwMEMwMDBGMDkwN0Y5ODc0MEZGMDkwQzAwMEVGRjA5MDdGOTg3NDBERjA5MEMwMDBFREYwMjIxMjEzNjM4RjFBMTIxMzYzOEYxQkU1MUE2NTFCNjAxMjEyMTM2MzhGMUFFNTFBNjUxQjYwMDcxMjEzNjM4RjFCODBFOEFGMUEyMjkwQzgKKzo0MDEyNDYwMDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxQTA0RTA0NDAyRjA3RkY0N0UwMTEyMTJDODkwN0ZENkUwNTRGN0YwRTA0NDA0RjAyMkFFMDdFNEZGRTUzRTU0N0ZGRDEyMTFCMTkwN0Y5ODc0MTFGMDkwQzAwMEVFRjBFNEU1M0U0NDgwRTgKKzo0MDEyODYwMEZEMTIxMUIxMjJBRTA3RTRGRkU1M0Y1NDdGRkQxMjExRkI5MDdGOTg3NDA5RjA5MEMwMDBFRUYwRTRFNTNGNDQ4MEZEMTIxMUZCMjIwNTBFMDIwMDAwMDAwMDAzMTQwMzAwMDBDMTExQzExOEMxOTVDMTEwQzExNjAxMEEwMEMxOUMKKzo0MDEyQzYwMDlCMDA4RTE4OEYxOUU1MTkxNTE5QUUxODcwMDIxNTE4NEU2MDA1MTIwRDRFODBFRTIyOTA3Rjk4NzQxMUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxMkYwOTBDMDAwRTBGRjIyNTNEOEVGMzIwMDAwMDAwMDAwMDIwRkU3MDAwMjEzOEEKKzo0MDEzMDYwMDA0MDAwMjBGQkQwMDAyMTAwRTkwN0Y5ODc0MTNGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTRGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTVGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTZGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MDhGMDkwNTAKKzo0MDEzNDYwMEMwMDBFMEZGMjI5MDdGOTg3NDA5RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBBRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBCRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBDRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBERjA5MEMwMDBFMEZGQzUKKzo0MDEzODYwMDIyOTA3Rjk4NzQwRUYwOTBDMDAwRTBGRjIyMTIwMDAzMTIwRDVGMTIwQjQ2MjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzo0MDEzQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzo0MDE0MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzo0MDE0NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzo0MDE0ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzo0MDE0QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzo0MDE1MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzo0MDE1NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzo0MDE1ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzo0MDE1QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzo0MDE2MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzo0MDE2NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzo0MDE2ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzo0MDE2QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzo0MDE3MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzo0MDE3NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzo0MDE3ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzo0MDE3QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzo0MDE4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzo0MDE4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzo0MDE4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzo0MDE4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMTEwMDFGRjAwQkYKKzo0MDE5MDYwMDAwNDBDRDA2MTAwMTAwMDAwMTAyMDAwMjA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwNzYKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDAwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjQKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwRjkKKzowNDFBMDYwMDcyMDAwMDAwNkEKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMjh4YS5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTI4eGEuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxNDkzMmUKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTI4eGEuSEVYCkBAIC0wLDAgKzEsMTQxIEBACis6MDMwMDMzMDAwMjEyRjlCRAorOjEwMDAwMzAwRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjBCRgorOjEwMDAxMzAwOTA3Rjk0RjA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwOTAzMQorOjBGMDAyMzAwN0Y5NUYwOTA3RjlFNzQwN0YwRTQ5MDdGOThGMDIyMTUKKzoxMDAwNDYwMDMwMDkxODEyMTMyN0VGQzM5NTNDNDAwMzAyMDBEODkwREQKKzoxMDAwNTYwMDdGQkY3NDAxRjBDMjA5QzIwMDgwNzczMDAzM0I5MDdGRjYKKzoxMDAwNjYwMEM2RTAyMEUxNkQxMjEzMjdFRkMzOTQ0MDUwNjQ5MDdFRTIKKzoxMDAwNzYwMDQwRTAxMzkyMDk5MDdGQzdFMDE0RjUxOTIwMDAxMTYwNDMKKzoxMDAwODYwMDBGRjUwODdFN0U3RjQxNzUwQzdFNzUwRDQxMTIwQ0M4RkEKKzoxMDAwOTYwMEMyMDNFNDkwN0ZDN0YwODAzOTkwN0ZDOEUwMjBFMTMyNDgKKzoxMDAwQTYwMDEyMTMyN0VGQzM5NDQwNTAyOTkwN0RDMEUwMTM5MjA5QTQKKzoxMDAwQjYwMDkwN0ZDOUUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdEQzgKKzoxMDAwQzYwMDdGQzE3NTBDN0Q3NTBEQzExMjBDQzhEMjAzRTQ5MDdGRkIKKzoxMDAwRDYwMEM5RjA5MDdGQjZFMDMwRTEwMzAyMDE2MDEyMTFFNDhGQUYKKzoxMDAwRTYwMDE5MTIxMzMzOEYzNkU1MTlDMzk1M0E1MDBGMTIxMzBGQjEKKzoxMDAwRjYwMEVGMzBFMDA4RTUzNjIwRTcwMzMwMEI1RUMyMEJFNTE5NkEKKzowQzAwMzYwMDkwN0Y5ODc0MTBGMDkwQzAwMEUwRkYyMjUyCis6MDMwMDQzMDAwMjEzMDBBNQorOjAzMDAwMDAwMDIwRTBFREYKKzo0MDAxMDYwMDYwNThCNDgwMDM0MzM2MDJFNTM2MzBFNzI2RTUxOUQzOTQyMDQwMDM3NTE5MjA4NTE5MDg3RTdFN0Y4MDc1MEM3RTc1MEQ4MEFGMzYxMjBGNTlFNTE5MjVFMDkwN0ZCN0YwODAyN0U1MTlEMzk0M0Y0MDAzNzUxOTNGODUxOTA4QzYKKzo0MDAxNDYwMDkwN0U4MEU1MzZGMDdFN0U3RjgxNzUwQzdFNzUwRDgxMTIwQ0VERTUxOTA0OTA3RkI3RjA5MDdGQ0VFMDMwRTEwNjIwMDUwMzAyMDNDMUMyMDVFNEY1MTg3NDQwMjUxOEY1ODJFNDM0N0NGNTgzRTBGRkU1MTg3QzAwN0IwMTdBRTMKKzo0MDAxODYwMDdFNzkwMDI0MDBGOUVDMzQ3RUZBRUYxMjBFRTAwNTE4RTUxOEI0MjBENzkwN0UwMEUwNjA2ODkwN0UwM0UwNjAyNDdGMDFFNEZEMTIxMUJGN0YwMzdEQ0QxMjExQkY0MzQ2ODA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjBFNDkwQjYKKzo0MDAxQzYwMDdFMTNGMDgwMzA5MDdFMDFFMEZGMTIxMDQzOTA3RTAyRTBGRjEyMTA2OTdGMDE5MDdFMTFFMEZEMTIxMUJGN0YwMzdEMDcxMjExQkY0MzQ2ODA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdGOTg3NDEyRjBFNTQwNDQwNjkwMDYKKzo0MDAyMDYwMEMwMDBGMDkwN0UwM0UwNzAwNjkwN0UxM0UwNzAwOEU0OTA3RTEzRjA3NTI1RkY5MDdFMDVFMDYwMTJBM0UwNTQzRkY1NDQ5MDdGOTg3NDEzRjA5MEMwMDBFNTQ0RjA5MDdFMDdFMDYwMkJBM0UwNjAwNTQzNDI4MDgwMDM1MzQyREEKKzo0MDAyNDYwMDdGNTM0MkZDOTA3RTA5RTA2MDExNDM0MjAyQTNFMEZGMTIxMEI1OTA3RTBCRTBGRjEyMTBEQkFGNDIxMjEwOEY5MDdFMDNFMDYwMDg1MzQyN0ZBRjQyMTIxMDhGOTA3RTBDRTA2MDE4QTNFMDYwMDU0MzQ2MDI4MDAzNTM0NkZEN0MKKzo0MDAyODYwMDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UwRUUwNjAxOEEzRTA2MDA1NDM0NjAxODAwMzUzNDZGRTkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UxMkUwRjUzQUEzRTAxMzkyMERBM0UwRjUzQ0EzRTA2MDA1NDM0NjEwOEIKKzo0MDAyQzYwMDgwMDM1MzQ2RUY5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMTZFMDYwMzI1MzQ0QkY5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxMUYwMTIxMkVERUY1NEZFOTBDMDAwRjA1MzNFRkRFNEZGQUQzRTEyMDEKKzo0MDAzMDYwMDExQkZFNEY1MkFGNTI5RDIwNzkwN0UxN0UwNjAwRjQzM0UwMkU0RkZBRDNFMTIxMUJGNzUyOTAxRDIwNzkwN0UxOEUwNjAxMDkwN0Y5ODc0MTJGMEU1NDA0NDA0OTBDMDAwRjBEMjAwOTA3RTE5RTA2MDExNDM0NDQwOTA3Rjk4RDYKKzo0MDAzNDYwMDc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdFMUFFMDYwMEY1MzNFRkVFNEZGQUQzRTEyMTFCRjc1MkIwMUQyMDc5MDdFMUJFMDYwMEY0MzNFMDFFNEZGQUQzRTEyMTFCRkU0RjUyQkQyMDc5MDdFMUNFMDYwMEU5MDdGOTg3NDEyNjgKKzo0MDAzODYwMEYwRTU0MDQ0MDI5MEMwMDBGMDkwN0UxREUwNjAwMkQyMEI5MDdFMUVFMDYwMDg3NTJDMDFFNEY1MzhEMjA3OTA3RTFGRTA2MDExOTA3RkQ3NzQxMUYwNzQzMUYwNzQxNUYwNzQzNUYwRDIwM0U0OTA3RkNGRjAzMDFBNTJFNTM4OTIKKzo0MDAzQzYwMDYwMDIxNTM4MjAxMzQ5RTUxM0QzOTQwMDQwMDQxNTEzODAzRTc1MTMwQTMwMUIwMkQyMTMxMjEyRURFRjU0MDFGNTE5NjUyQTYwMDU4NTE5MkFEMjA3MTIxMzNGRUY1NDgwRjUxOTY1MjY2MDA1ODUxOTI2RDIwNzMwMEQxMTEyNjUKKzo0MDA0MDYwMDEzM0ZFRjU0MTBGNTE5NjUyNTYwMDU4NTE5MjVEMjA3MjAxQjAzMDIwN0VDMzAwQTE4MTIxMzdCRUZDMzk1M0Q0MDAzMDIwNEFFOTA3RkMxNzQwMUYwQzIwQUMyMDA4MDc3MzAwNDNCOTA3RkNBRTAyMEUxNkQxMjEzN0JFRkMzMzYKKzo0MDA0NDYwMDk0NDA1MDY0OTA3RDQwRTAxMzkyMEE5MDdGQ0JFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3RDdGNDE3NTBDN0Q3NTBENDExMjBEMTJDMjA0RTQ5MDdGQ0JGMDgwMzk5MDdGQ0NFMDIwRTEzMjEyMTM3QkVGQzM5NDQwNTAyOTkwQTIKKzo0MDA0ODYwMDdDQzBFMDEzOTIwQTkwN0ZDREUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdDN0ZDMTc1MEM3Qzc1MERDMTEyMEQxMkQyMDRFNDkwN0ZDREYwOTA3RkJBRTAzMEUxMDMwMjA1MzYxMjEyMkU4RjE5MTIxMzg3OEYzN0U1MTlDMzk1MDMKKzo0MDA0QzYwMDNCNTAwRjEyMTM2M0VGMzBFMDA4RTUzNzIwRTcwMzMwMEM1RUMyMENFNTE5NjA1OEI0ODAwMzQzMzcwMkU1MzczMEU3MjZFNTE5RDM5NDIwNDAwMzc1MTkyMDg1MTkwODdFN0Q3RjgwNzUwQzdENzUwRDgwQUYzNzEyMEY5MkU1RTkKKzo0MDA1MDYwMDE5MjVFMDkwN0ZCQkYwODAyN0U1MTlEMzk0M0Y0MDAzNzUxOTNGODUxOTA4OTA3RDgwRTUzN0YwN0U3RDdGODE3NTBDN0Q3NTBEODExMjBEMzdFNTE5MDQ5MDdGQkJGMDkwN0ZEMEUwMzBFMTA2MjAwNjAzMDIwNzk3QzIwNkU0RUEKKzo0MDA1NDYwMEY1MTg3NEMwMjUxOEY1ODJFNDM0N0JGNTgzRTBGRkU1MTg3QzAwN0IwMTdBN0U3OTIwMjQyMEY5RUMzNDdFRkFFRjEyMEVFMDA1MThFNTE4QjQyMEQ3OTA3RTIwRTA2MDY4OTA3RTIzRTA2MDI0N0YwMUU0RkQxMjEyMDk3RjAzMEMKKzo0MDA1ODYwMDdEQ0QxMjEyMDk0MzQ3ODA5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjBFNDkwN0UzM0YwODAzMDkwN0UyMUUwRkYxMjExMjc5MDdFMjJFMEZGMTIxMTREN0YwMTkwN0UzMUUwRkQxMjEyMDk3RjAzN0QwNzEyMTIwOTQzNDc4MDkwRkYKKzo0MDA1QzYwMDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdGOTg3NDBBRjBFNTQxNDQwNjkwQzAwMEYwOTA3RTIzRTA3MDA2OTA3RTMzRTA3MDA4RTQ5MDdFMzNGMDc1MkVGRjkwN0UyNUUwNjAxMkEzRTA1NDNGRjU0NTkwN0Y5ODc0MEJGMDkwRUIKKzo0MDA2MDYwMEMwMDBFNTQ1RjA5MDdFMjdFMDYwMkJBM0UwNjAwNTQzNDM4MDgwMDM1MzQzN0Y1MzQzRkM5MDdFMjlFMDYwMTE0MzQzMDJBM0UwRkYxMjExNzM5MDdFMkJFMEZGMTIxMTk5QUY0MzEyMTEwMTkwN0UyM0UwNjAwODUzNDM3RkFGRDMKKzo0MDA2NDYwMDQzMTIxMTAxOTA3RTJDRTA2MDE4QTNFMDYwMDU0MzQ3MDI4MDAzNTM0N0ZEOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3RTJFRTA2MDE4QTNFMDYwMDU0MzQ3MDE4MDAzNTM0N0ZFOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwQzUKKzo0MDA2ODYwMDkwN0UzMkUwRjUzQkEzRTAxMzkyMEVBM0UwRjUzREEzRTA2MDA1NDM0NzEwODAwMzUzNDdFRjkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0UzNkUwNjAzMjUzNDVCRjkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjA5MDdGNzkKKzo0MDA2QzYwMDk4NzQwOUYwMTIxMzU3RUY1NEZFOTBDMDAwRjA1MzNGRkRFNEZGQUQzRjEyMTIwOUU0RjUzM0Y1MzJEMjA4OTA3RTM3RTA2MDBGNDMzRjAyRTRGRkFEM0YxMjEyMDk3NTMyMDFEMjA4OTA3RTM4RTA2MDEwOTA3Rjk4NzQwQUYwMTkKKzo0MDA3MDYwMEU1NDE0NDA0OTBDMDAwRjBEMjAwOTA3RTM5RTA2MDExNDM0NTQwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0UzQUUwNjAwRjUzM0ZGRUU0RkZBRDNGMTIxMjA5NzUzNDAxRDIwODkwN0UzQkUwNjAwRjQzM0YwMUU0REEKKzo0MDA3NDYwMEZGQUQzRjEyMTIwOUU0RjUzNEQyMDg5MDdFM0NFMDYwMEU5MDdGOTg3NDBBRjBFNTQxNDQwMjkwQzAwMEYwOTA3RTNERTA2MDAyRDIwQzkwN0UzRUUwNjAwODc1MzUwMUU0RjUzOUQyMDg5MDdFM0ZFMDYwMTE5MDdGRDc3NDEzN0EKKzo0MDA3ODYwMEYwNzQzM0YwNzQxNkYwNzQzNkYwRDIwNEU0OTA3RkQxRjAzMDFBNTJFNTM5NjAwMjE1MzkzMDEzNDlFNTEzRDM5NDAwNDAwNDE1MTM4MDNFNzUxMzBBMzAxQjAyQzIxMzEyMTM1N0VGNTQwMUY1MTk2NTMzNjAwNTg1MTkzM0QyNkQKKzo0MDA3QzYwMDA4MTIxMzkzRUY1NDgwRjUxOTY1MkY2MDA1ODUxOTJGRDIwODMwMEUxMTEyMTM5M0VGNTQxMEY1MTk2NTJFNjAwNTg1MTkyRUQyMDgzMDFBMkE5MDdGRDJFMDIwRTEyMzkwN0I0MEUwNjAwOUUwRjUxNTkwN0I0MkUwRjUxNjkwMUQKKzo0MDA4MDYwMDdCNDFFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjBFNDkwN0ZEM0YwOTA3RkMyRTAzMEUxMDMwMjA5MjBFNTBBNzA0MDMwMDczOUU1Mzg3MDM1QzIwN0Y1MTg3RTAwN0IwMDc0MjQyNTE4RjlFRTM0MDBGQTEyMEU5QUZGNzQ4MDI1QUYKKzo0MDA4NDYwMDE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA5REI5MDdGQzM3NDA5RjA3NTM4MTBFNEY1MkM3NTBBMDEyMkU1MEE2NDAxNzA0MDMwMDgzOUU1Mzk3MDM1QzIwOEY1MTg3RTAwN0IwMDc0MkQyNTE4RjlFRTM0MDBGQTEyOTcKKzo0MDA4ODYwMDBFOUFGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA5REI5MDdGQzM3NDA5RjA3NTM5MTBFNEY1MzU3NTBBMDIyMkU1MEE2NDAyNzAzNjMwMTQyRkMyMTRGNTE4N0UwMDdCMDA3NDBFMjUxOEY5RUUzNDAwNzUKKzo0MDA4QzYwMEZBMTIwRTlBRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwNURCOTA3RkMzNzQwNUYwNzUwQTAzMjJFNTE1NjAzMDE1MTVFNEY1MTg3RTAwN0IwMDc0MTQyNTE4RjlFRTM0MDBGQTEyMEU5QUZGNzQ4MDI1RDYKKzo0MDA5MDYwMDE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDAzREI5MDdGQzM3NDAzRjBFNEY1MEEyMjkwN0ZFOUUwMTIwRUYyMEEwODAwMEE3QzAxMEFFODAzMDk0NDA2MDlGQjA4MDlGNTA5MDlERDBBMDlFQzBCMDAwMDBCMzc5MDdGMkYKKzo0MDA5NDYwMEVCRTAyNEZFNjAxOTE0NjA2MTI0MDI2MDAzMDIwOUQzNzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIwQjNFOTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MjgyNzU4MzE5RUZGMDc1ODI3Qjc1ODMxOUYwNzU4Mjc0NzU4MzE5QjIKKzo0MDA5ODYwMEYwNzU4MjY2NzU4MzE5RjA3NTgyNTg3NTgzMTlGMDkwN0ZFQUUwMDQ3NTgyMTc3NTgzMTlGMDc0MTk5MDdGRDRGMDc0MTI5MDdGRDVGMDAyMEIzRTkwN0ZFQUUwRkYxMjBGMThFQTQ5NjAwREVBOTA3RkQ0RjBFOTkwN0ZENUYwNzcKKzo0MDA5QzYwMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGMDBFNTA5RjA5MDdGQjU3NDAxRjAwMjBCM0U5MDdGRUFFMEY1MDkwMjBCM0UxMjBCNDYwMjBCM0U5MDdGMDA3NDAxRjA5MDdGQjVGMDAyMDUKKzo0MDBBMDYwMDBCM0U5MDdGRThFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjEwRTQzM0ZGMjVFMEZGQTIxNkU0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwQjNFRTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjBCM0U5MDdGMDQKKzo0MDBBNDYwMEVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0ZFOEUwMjRGRTYwMUQyNDAyMEYKKzo0MDBBODYwMDYwMDMwMjBCM0U5MDdGRUFFMEI0MDEwNUMyMTAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0ZFQUUwNzAzODkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0U0RjA5MDdGQjYKKzo0MDBBQzYwMEVDRTA1NDgwRkYxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDVGOTA3RkI0RTA0NDAxRjA4MDU2OTA3RkU4RTAyNEZFNjAxODI0MDI3MDRBOTA3RkVBRTBCNDAxMDREMjEwODAzRjkwN0ZCNEUwNDQwMUYwNDkKKzo0MDBCMDYwMDgwMzY5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyRDQKKzo0MDBCNDYwMEU0OTA3RjkzRjA5MDdGOUM3NDMwRjBFNDkwN0Y5NkYwOTA3Rjk1NzRDMEYwOTA3RjlFNzQzRkYwOTA3Rjk4NzQxOEYwRTRGNThFOTA3RkRGNzRGRkYwOTA3RkRFRjBFNEY1MjQ3NTE4MDE3QjAwNzQyNDI1MThGOUU0MzQwMEZBOEIKKzo0MDBCODYwMEU0MTIwRUUwMDUxOEU1MThCNDA5RUE3NTNBMDFFNEY1MzhGNTEzRjUzNkMyMDdDMjBCQzIwNUMyMDBDMjA5QzIxMzkwN0Y5ODc0MTNGMDc1NDQwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIxMUJGN0YxMDhGNDIxMjEwOEY5MDdGRDgKKzo0MDBCQzYwMDk4NzQxMkYwN0YwMThGNDBFRjQ0MDY5MEMwMDBGMDkwN0Y5ODc0MTRGMDc1NDY4MDkwQzAwMDc0ODBGMDBGRTRGRDEyMTFCRkU0RkY3RUEzQUQwNjhEM0UxMjExQkY5MDdGOTg3NDExRjA5MEMwMDBFNEYwN0YwNTdEN0YxMjExNzIKKzo0MDBDMDYwMEJGN0YwMTEyMTI3ODdGMDM3RDA3MTIxMUJGN0YxMzdEMDExMjExQkYyMDFCMDMwMjBDQzU3NTJEMDE3NTE4MDE3QjAwNzQyRDI1MThGOUU0MzQwMEZBRTQxMjBFRTAwNTE4RTUxOEI0MDlFQTc1M0IwMUU0RjUzOUY1MTNGNTM3QjcKKzo0MDBDNDYwMEMyMDhDMjBDQzIwNkMyMDBDMjBBQzIxMzkwN0Y5ODc0MEJGMDc1NDUwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIxMjA5N0YxMDhGNDMxMjExMDE5MDdGOTg3NDBBRjA3RjAxOEY0MUVGNDQwNjkwQzAwMEYwOTA3Rjk4NzQwQ0YwMEUKKzo0MDBDODYwMDc1NDc4MDkwQzAwMDc0ODBGMDBGRTRGRDEyMTIwOUU0RkY3RUEzQUQwNjhEM0YxMjEyMDk5MDdGOTg3NDA5RjA5MEMwMDBFNEYwN0YwNTdEN0YxMjEyMDk3RjAxMTIxMjk5N0YwMzdEMDcxMjEyMDk3RjEzN0QwMTEyMTIwOUQyOEQKKzo0MDBDQzYwMDEyMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MTBGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDBFMDA1NjgKKzo0MDBEMDYwMDg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjkwN0Y5ODc0MDhGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDAwNTg2RTBBMzA1ODZGMDA1ODZERkY3RDJBRjIyOTA3Rjk4NzQwOEYwQUYwOEU1MERGNTgyRTUwQ0Y1NzcKKzo0MDBENDYwMDgzQzJBRjA1ODY5MEMwMDBFMDA1ODZGMEEzMDU4NkRGRjcwNTg2RDJBRjIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyRDIxOTkwN0Y5MkUwNDQwMkYwMEEKKzo0MDBEODYwMDkwN0ZBRUUwRkZEMzkyMTBFNDMzRkVFRjRFRjBEMkU4NDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUVFMDQ0MERGMEQyQUZEMjFBNTYKKzo0MDBEQzYwMDEyMTI1M0MyMTFFNEY1MEJGNTEzQzIxN0MyMTI5MDdGQTEwNEYwOTA3RkQ4RTA2NTE3NjAxMDMwMTIwNUQyMUExMjAwNDY5MDdGRDhFMEY1MTc4MDA4MzAxMjA1QzIxQTEyMDA0NjMwMTEwN0MyMTExMjA5MjE4MEQ2MzAxOEQzOEEKKzo0MDBFMDYwMEMyMTgxMjEzOUY4MENDMjI3ODdGRTRGNkQ4RkQ3NTgxNDcwMjBFNTUwMjBEN0RFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMzEKKzo0MDBFNDYwMDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMTJCQUU0N0UwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4MjgKKzo0MDBFODYwMENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkVCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1NDgKKzo0MDBFQzYwMDgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxREUKKzo0MDBGMDYwMDkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERjhGMThFNEY1MTk3NTFBRkY3NTFCMTk3NTFDODZBQjFBQUExQkE5MUM5MDAwMDExMjBFQjNCNDAzMURBRjE5MDUxOUVGQjUxODAxMjIxMjBFOUE3RTAwMjlGRkVFQjYKKzo0MDBGNDYwMDNBQTkwNzc1MUFGRkY1MUI4OTFDODBENDdCMDA3QTAwNzkwMDIyOEYxQTA1MERFNTBEQUUwQzcwMDIwNTBDMTRGNTgyOEU4M0U1MUFGMDEyMDAzNjA1MERFNTBEQUMwQzcwMDIwNTBDMTRGNTgyOEM4M0VGRjAxNTA4RTUwODYwN0IKKzo0MDBGODYwMDBBMTIxMzMzOEYxQUVGNDIzNjgwQ0EyMjhGMUEwNTBERTUwREFFMEM3MDAyMDUwQzE0RjU4MjhFODNFNTFBRjAxMjEzNEIwNTBERTUwREFDMEM3MDAyMDUwQzE0RjU4MjhDODNFRkYwMTUwOEU1MDg2MDBBMTIxMzg3OEYxQUVGRjgKKzo0MDBGQzYwMDQyMzc4MENBMjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjExMjMKKzo0MDEwMDYwMDUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxODUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3Rjk4MzMKKzo0MDEwNDYwMDc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTBGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDExRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwQzAKKzo0MDEwODYwMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTJGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE0QjMKKzo0MDEwQzYwMEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTZGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCQ0MKKzo0MDExMDYwMEYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwQUYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MDhGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1ODIKKzo0MDExNDYwMDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwOUYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MENGMDkwQzMKKzo0MDExODYwMEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwRUYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMEU1Q0MKKzo0MDExQzYwMDQ0NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxN0YwOTBDMDAwRUZGMDkwN0Y5ODc0MTVGMDkwQzAwMEVERjAyMjEyMTMxQjhGMUExMjEzMUI4RjFCRTUxQTY1MUI2MDEyMTIxMzFCOEYxQUU1MUE2NTFCNjAwNzEyMTMxQjhGMUI4MEU4RUQKKzo0MDEyMDYwMEFGMUEyMjkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjA5MDdGOTg3NDBGRjA5MEMwMDBFRkYwOTA3Rjk4NzQwREYwOTBDMDAwRURGMDIyMTIxMzZGOEYxQTEyMTM2RjhGMUJFNTFBNjUxQjYwMTIxMjEzNkY4RjFBRTUxQTY1QUQKKzo0MDEyNDYwMDFCNjAwNzEyMTM2RjhGMUI4MEU4QUYxQTIyOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwMUEwNEUwNDQwMkYwN0ZGNDdFMDExMjEyRDY5MDdGRDZFMDU0RjdGMEUwNDQwNEYwMjJBRTA3RTRGRkU1M0U1NDdGRkQxMjExQkY5MDdGMkYKKzo0MDEyODYwMDk4NzQxMUYwOTBDMDAwRUVGMEU0RTUzRTQ0ODBGRDEyMTFCRjIyQUUwN0U0RkZFNTNGNTQ3RkZEMTIxMjA5OTA3Rjk4NzQwOUYwOTBDMDAwRUVGMEU0RTUzRjQ0ODBGRDEyMTIwOTIyMDUwRTAyMDAwMDAwMDAwMzE0MDMwMDAwREYKKzo0MDEyQzYwMEMxMTFDMTE4QzE5NUMxMTBDMTE2MDEwQTAwQzE5QjAwOEUxODhGMTlFNTE5MTUxOUFFMTg3MDAyMTUxODRFNjAwNTEyMEQ1QzgwRUUyMjkwN0Y5ODc0MTFGMDkwQzAwMEUwRkYyMjUzRDhFRjMyMDAwMDAwMDIwRkY1MDAwMjEzNjcKKzo0MDEzMDYwMDA0MDAwMjBGQ0IwMDAyMTAxQzkwN0Y5ODc0MTJGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTNGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTRGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTVGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTZGMDkwMkEKKzo0MDEzNDYwMEMwMDBFMEZGMjI5MDdGOTg3NDA4RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDA5RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBBRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBCRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBDRjA5MEMwMDBFMEZGQ0EKKzo0MDEzODYwMDIyOTA3Rjk4NzQwREYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwRUYwOTBDMDAwRTBGRjIyMTIwMDAzMTIwRDZEMTIwQjQ2MjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMKKzo0MDEzQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzo0MDE0MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzo0MDE0NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzo0MDE0ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzo0MDE0QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzo0MDE1MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzo0MDE1NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzo0MDE1ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzo0MDE1QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzo0MDE2MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzo0MDE2NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzo0MDE2ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzo0MDE2QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzo0MDE3MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzo0MDE3NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzo0MDE3ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzo0MDE3QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzo0MDE4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzo0MDE4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzo0MDE4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzo0MDE4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMTEwMDFGRjAwQkYKKzo0MDE5MDYwMDAwNDBDRDA2MTUwMTAwMDAwMTAyMDAwMjA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwNzEKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjMKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwRjkKKzowNDFBMDYwMDcyMDAwMDAwNkEKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMjh4Yi5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTI4eGIuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3Y2I3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTI4eGIuSEVYCkBAIC0wLDAgKzEsMTQyIEBACis6MDMwMDMzMDAwMjAwMkQ5QgorOjA0MDAyRDAwNTNEOEVGMzI4MworOjEwMDA0NjAwMzAwOTE4MTIxMzMzRUZDMzk1M0M0MDAzMDIwMEQ4OTBEMQorOjEwMDA1NjAwN0ZCRjc0MDFGMEMyMDlDMjAwODA3NzMwMDMzQjkwN0ZGNgorOjEwMDA2NjAwQzZFMDIwRTE2RDEyMTMzM0VGQzM5NDQwNTA2NDkwN0VENgorOjEwMDA3NjAwNDBFMDEzOTIwOTkwN0ZDN0UwMTRGNTE5MjAwMDExNjA0MworOjEwMDA4NjAwMEZGNTA4N0U3RTdGNDE3NTBDN0U3NTBENDExMjBDQ0NGNgorOjEwMDA5NjAwQzIwM0U0OTA3RkM3RjA4MDM5OTA3RkM4RTAyMEUxMzI0OAorOjEwMDBBNjAwMTIxMzMzRUZDMzk0NDA1MDI5OTA3REMwRTAxMzkyMDk5OAorOjEwMDBCNjAwOTA3RkM5RTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0RDOAorOjEwMDBDNjAwN0ZDMTc1MEM3RDc1MERDMTEyMENDQ0QyMDNFNDkwN0ZGNworOjEwMDBENjAwQzlGMDkwN0ZCNkUwMzBFMTAzMDIwMTYwMTIxMUY1OEY5RQorOjEwMDBFNjAwMTkxMjEzM0Y4RjM2RTUxOUMzOTUzQTUwMEYxMjEzMUI5OQorOjEwMDBGNjAwRUYzMEUwMDhFNTM2MjBFNzAzMzAwQjVFQzIwQkU1MTk2QQorOjBDMDAzNjAwOTA3Rjk4NzQxMEYwOTBDMDAwRTBGRjIyNTIKKzowMzAwNDMwMDAyMTMwMEE1Cis6MTAwMDAzMDBDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDZFCis6MTAwMDEzMDA3RkM0RTRGMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZEMEFCCis6MEEwMDIzMDA4NEQwODVEMDgyRDA4M0QwRTAzMjczCis6MDMwMDAwMDAwMjBFMTJEQgorOjQwMDEwNjAwNjA1OEI0ODAwMzQzMzYwMkU1MzYzMEU3MjZFNTE5RDM5NDIwNDAwMzc1MTkyMDg1MTkwODdFN0U3RjgwNzUwQzdFNzUwRDgwQUYzNjEyMEY1REU1MTkyNUUwOTA3RkI3RjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDhDMgorOjQwMDE0NjAwOTA3RTgwRTUzNkYwN0U3RTdGODE3NTBDN0U3NTBEODExMjBDRjFFNTE5MDQ5MDdGQjdGMDkwN0ZDRUUwMzBFMTA2MjAwNTAzMDIwM0MxRTRGNTE4NzQ0MDI1MThGNTgyRTQzNDdDRjU4M0UwRkZFNTE4N0MwMDdCMDE3QTdFNzlBRgorOjQwMDE4NjAwMDAyNDAwRjlFQzM0N0VGQUVGMTIwRUU0MDUxOEU1MThCNDIwRDc5MDdFMDBFMDYwNjg5MDdFMDNFMDYwMjQ3RjAxRTRGRDEyMTFEMDdGMDM3RENEMTIxMUQwNDM0NjgwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwRTQ5MDdFMTNGNgorOjQwMDFDNjAwRjA4MDMwOTA3RTAxRTBGRjEyMTA1NDkwN0UwMkUwRkYxMjEwN0E3RjAxOTA3RTExRTBGRDEyMTFEMDdGMDM3RDA3MTIxMUQwNDM0NjgwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3Rjk4NzQxMkYwRTU0MDQ0MDY5MEMwMDA5MworOjQwMDIwNjAwRjA5MDdFMDNFMDcwMDY5MDdFMTNFMDcwMDhFNDkwN0UxM0YwNzUyNUZGOTA3RTA1RTA2MDEyQTNFMDU0M0ZGNTQ0OTA3Rjk4NzQxM0YwOTBDMDAwRTU0NEYwOTA3RTA3RTA2MDJCQTNFMDYwMDU0MzQyODA4MDAzNTM0MjdGNTNDOAorOjQwMDI0NjAwNDJGQzkwN0UwOUUwNjAxMTQzNDIwMkEzRTBGRjEyMTBDNjkwN0UwQkUwRkYxMjEwRUNBRjQyMTIxMEEwOTA3RTAzRTA2MDA4NTM0MjdGQUY0MjEyMTBBMDkwN0UwQ0UwNjAxOEEzRTA2MDA1NDM0NjAyODAwMzUzNDZGRDkwN0ZGQgorOjQwMDI4NjAwOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMEVFMDYwMThBM0UwNjAwNTQzNDYwMTgwMDM1MzQ2RkU5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMTJFMEY1M0FBM0UwMTM5MjBEQTNFMEY1M0NBM0UwNjAwNTQzNDYxMDgwMDMxNworOjQwMDJDNjAwNTM0NkVGOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTE2RTA2MDMyNTM0NEJGOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTFGMDEyMTMwRkVGNTRGRTkwQzAwMEYwNTMzRUZERTRGRkFEM0UxMjExRDA4MAorOjQwMDMwNjAwRTRGNTJBRjUyOUQyMDc5MDdFMTdFMDYwMEY0MzNFMDJFNEZGQUQzRTEyMTFEMDc1MjkwMUQyMDc5MDdFMThFMDYwMTA5MDdGOTg3NDEyRjBFNTQwNDQwNDkwQzAwMEYwRDIwMDkwN0UxOUUwNjAxMTQzNDQ0MDkwN0Y5ODc0MTMwRQorOjQwMDM0NjAwRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3RTFBRTA2MDBGNTMzRUZFRTRGRkFEM0UxMjExRDA3NTJCMDFEMjA3OTA3RTFCRTA2MDBGNDMzRTAxRTRGRkFEM0UxMjExRDBFNEY1MkJEMjA3OTA3RTFDRTA2MDBFOTA3Rjk4NzQxMkYwRTVGOAorOjQwMDM4NjAwNDA0NDAyOTBDMDAwRjA5MDdFMURFMDYwMDJEMjBCOTA3RTFFRTA2MDA4NzUyQzAxRTRGNTM4RDIwNzkwN0UxRkUwNjAxMTkwN0ZENzc0MTFGMDc0MzFGMDc0MTVGMDc0MzVGMEQyMDNDMjA1RTQ5MDdGQ0ZGMDMwMUE1NEU1Mzg5RQorOjQwMDNDNjAwNjAwMjE1MzgyMDEzNEJFNTEzRDM5NDAwNDAwNDE1MTM4MDQwNzUxMzBBMzAxQjAyRDIxMzEyMTMwRkVGNTQwMUY1MTk2NTJBNjAwNTg1MTkyQUQyMDcxMjEzNEJFRjU0ODA2NDgwRjUxOTY1MjY2MDA1ODUxOTI2RDIwNzMwMEQ3MQorOjQwMDQwNjAwMTExMjEzNEJFRjU0MTBGNTE5NjUyNTYwMDU4NTE5MjVEMjA3MjAxQjAzMDIwN0YwMzAwQTE4MTIxMzg3RUZDMzk1M0Q0MDAzMDIwNEIwOTA3RkMxNzQwMUYwQzIwQUMyMDA4MDc3MzAwNDNCOTA3RkNBRTAyMEUxNkQxMjEzODc5QgorOjQwMDQ0NjAwRUZDMzk0NDA1MDY0OTA3RDQwRTAxMzkyMEE5MDdGQ0JFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3RDdGNDE3NTBDN0Q3NTBENDExMjBEMTZDMjA0RTQ5MDdGQ0JGMDgwMzk5MDdGQ0NFMDIwRTEzMjEyMTM4N0VGQzM5NDQwNTA5OQorOjQwMDQ4NjAwMjk5MDdDQzBFMDEzOTIwQTkwN0ZDREUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdDN0ZDMTc1MEM3Qzc1MERDMTEyMEQxNkQyMDRFNDkwN0ZDREYwOTA3RkJBRTAzMEUxMDMwMjA1MzgxMjEyM0Y4RjE5MTIxMzkzOEYzN0U1MTk3RgorOjQwMDRDNjAwQzM5NTNCNTAwRjEyMTM2RkVGMzBFMDA4RTUzNzIwRTcwMzMwMEM1RUMyMENFNTE5NjA1OEI0ODAwMzQzMzcwMkU1MzczMEU3MjZFNTE5RDM5NDIwNDAwMzc1MTkyMDg1MTkwODdFN0Q3RjgwNzUwQzdENzUwRDgwQUYzNzEyMEZGQworOjQwMDUwNjAwOTZFNTE5MjVFMDkwN0ZCQkYwODAyN0U1MTlEMzk0M0Y0MDAzNzUxOTNGODUxOTA4OTA3RDgwRTUzN0YwN0U3RDdGODE3NTBDN0Q3NTBEODExMjBEM0JFNTE5MDQ5MDdGQkJGMDkwN0ZEMEUwMzBFMTA2MjAwNjAzMDIwNzk5RTQzMQorOjQwMDU0NjAwRjUxODc0QzAyNTE4RjU4MkU0MzQ3QkY1ODNFMEZGRTUxODdDMDA3QjAxN0E3RTc5MjAyNDIwRjlFQzM0N0VGQUVGMTIwRUU0MDUxOEU1MThCNDIwRDc5MDdFMjBFMDYwNjg5MDdFMjNFMDYwMjQ3RjAxRTRGRDEyMTIxQTdGMDNGNworOjQwMDU4NjAwN0RDRDEyMTIxQTQzNDc4MDkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMEU0OTA3RTMzRjA4MDMwOTA3RTIxRTBGRjEyMTEzODkwN0UyMkUwRkYxMjExNUU3RjAxOTA3RTMxRTBGRDEyMTIxQTdGMDM3RDA3MTIxMjFBNDM0NzgwOTBBQQorOjQwMDVDNjAwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0Y5ODc0MEFGMEU1NDE0NDA2OTBDMDAwRjA5MDdFMjNFMDcwMDY5MDdFMzNFMDcwMDhFNDkwN0UzM0YwNzUyRUZGOTA3RTI1RTA2MDEyQTNFMDU0M0ZGNTQ1OTA3Rjk4NzQwQkYwOTBFQgorOjQwMDYwNjAwQzAwMEU1NDVGMDkwN0UyN0UwNjAyQkEzRTA2MDA1NDM0MzgwODAwMzUzNDM3RjUzNDNGQzkwN0UyOUUwNjAxMTQzNDMwMkEzRTBGRjEyMTE4NDkwN0UyQkUwRkYxMjExQUFBRjQzMTIxMTEyOTA3RTIzRTA2MDA4NTM0MzdGQUZBMAorOjQwMDY0NjAwNDMxMjExMTI5MDdFMkNFMDYwMThBM0UwNjAwNTQzNDcwMjgwMDM1MzQ3RkQ5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdFMkVFMDYwMThBM0UwNjAwNTQzNDcwMTgwMDM1MzQ3RkU5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjBCNAorOjQwMDY4NjAwOTA3RTMyRTBGNTNCQTNFMDEzOTIwRUEzRTBGNTNEQTNFMDYwMDU0MzQ3MTA4MDAzNTM0N0VGOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3RTM2RTA2MDMyNTM0NUJGOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0Y3OQorOjQwMDZDNjAwOTg3NDA5RjAxMjEzNjNFRjU0RkU5MEMwMDBGMDUzM0ZGREU0RkZBRDNGMTIxMjFBRTRGNTMzRjUzMkQyMDg5MDdFMzdFMDYwMEY0MzNGMDJFNEZGQUQzRjEyMTIxQTc1MzIwMUQyMDg5MDdFMzhFMDYwMTA5MDdGOTg3NDBBRjBFQgorOjQwMDcwNjAwRTU0MTQ0MDQ5MEMwMDBGMEQyMDA5MDdFMzlFMDYwMTE0MzQ1NDA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3RTNBRTA2MDBGNTMzRkZFRTRGRkFEM0YxMjEyMUE3NTM0MDFEMjA4OTA3RTNCRTA2MDBGNDMzRjAxRTRDOQorOjQwMDc0NjAwRkZBRDNGMTIxMjFBRTRGNTM0RDIwODkwN0UzQ0UwNjAwRTkwN0Y5ODc0MEFGMEU1NDE0NDAyOTBDMDAwRjA5MDdFM0RFMDYwMDJEMjBDOTA3RTNFRTA2MDA4NzUzNTAxRTRGNTM5RDIwODkwN0UzRkUwNjAxMTkwN0ZENzc0MTM2OQorOjQwMDc4NjAwRjA3NDMzRjA3NDE2RjA3NDM2RjBEMjA0QzIwNkU0OTA3RkQxRjAzMDFBNTRFNTM5NjAwMjE1MzkzMDEzNEJFNTEzRDM5NDAwNDAwNDE1MTM4MDQwNzUxMzBBMzAxQjAyQzIxMzEyMTM2M0VGNTQwMUY1MTk2NTMzNjAwNTg1MTk5OAorOjQwMDdDNjAwMzNEMjA4MTIxMzlGRUY1NDgwNjQ4MEY1MTk2NTJGNjAwNTg1MTkyRkQyMDgzMDBFMTExMjEzOUZFRjU0MTBGNTE5NjUyRTYwMDU4NTE5MkVEMjA4MzAxQTJBOTA3RkQyRTAyMEUxMjM5MDdCNDBFMDYwMDlFMEY1MTU5MDdCNDI5NworOjQwMDgwNjAwRTBGNTE2OTA3QjQxRTA2MDA5OTA3RkQ3NzQxN0YwNzQzN0YwRTQ5MDdGRDNGMDkwN0ZDMkUwMzBFMTAzMDIwOTI0RTUwQTcwNDAzMDA3MzlFNTM4NzAzNUMyMDdGNTE4N0UwMDdCMDA3NDI0MjUxOEY5RUUzNDAwRkExMjBFOUU0NAorOjQwMDg0NjAwRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwOURCOTA3RkMzNzQwOUYwNzUzODEwRTRGNTJDNzUwQTAxMjJFNTBBNjQwMTcwNDAzMDA4MzlFNTM5NzAzNUMyMDhGNTE4N0UwMDdCMDA3NDJEMjUxOEY5RUVCRgorOjQwMDg4NjAwMzQwMEZBMTIwRTlFRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwOURCOTA3RkMzNzQwOUYwNzUzOTEwRTRGNTM1NzUwQTAyMjJFNTBBNjQwMjcwMzYzMDE0MkZDMjE0RjUxODdFMDA3QjAwNzQwRTI1MTg0QworOjQwMDhDNjAwRjlFRTM0MDBGQTEyMEU5RUZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDVEQjkwN0ZDMzc0MDVGMDc1MEEwMzIyRTUxNTYwMzAxNTE1RTRGNTE4N0UwMDdCMDA3NDE0MjUxOEY5RUUzNDAwRkExMjBFOUVDQgorOjQwMDkwNjAwRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwM0RCOTA3RkMzNzQwM0YwRTRGNTBBMjI5MDdGRTlFMDEyMEVGNjBBMEMwMDBBODAwMTBBRUMwMzA5NDgwNjA5RkYwODA5RjkwOTA5RTEwQTA5RjAwQjAwMDA0NAorOjQwMDk0NjAwMEIzQjkwN0ZFQkUwMjRGRTYwMTkxNDYwNjEyNDAyNjAwMzAyMDlENzc0MTk5MDdGRDRGMDc0MDA5MDdGRDVGMDAyMEI0MjkwN0ZFQUUwNzAwNDdGMDI4MDAyN0YwMzc1ODI4Mjc1ODMxOUVGRjA3NTgyN0I3NTgzMTlGMDc1ODJEQQorOjQwMDk4NjAwNzQ3NTgzMTlGMDc1ODI2Njc1ODMxOUYwNzU4MjU4NzU4MzE5RjA5MDdGRUFFMDA0NzU4MjE3NzU4MzE5RjA3NDE5OTA3RkQ0RjA3NDEyOTA3RkQ1RjAwMjBCNDI5MDdGRUFFMEZGMTIwRjFDRUE0OTYwMERFQTkwN0ZENEYwRTlCRQorOjQwMDlDNjAwOTA3RkQ1RjAwMjBCNDI5MDdGQjRFMDQ0MDFGMDAyMEI0MjkwN0ZCNEUwNDQwMUYwMDIwQjQyOTA3RjAwRTUwOUYwOTA3RkI1NzQwMUYwMDIwQjQyOTA3RkVBRTBGNTA5MDIwQjQyMTIwQjRBMDIwQjQyOTA3RjAwNzQwMUYwOTAzQgorOjQwMEEwNjAwN0ZCNUYwMDIwQjQyOTA3RkU4RTAyNDdGNjAyNDE0NjAzMTI0MDI3MDVCQTIxMEU0MzNGRjI1RTBGRkEyMTZFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEI0MkU0OTA3RjAwRjBBM0YwOTA3RkI1NzQwMkYwMDIyRQorOjQwMEE0NjAwMEI0MjkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwQjQyOTA3RkI0RTA0NDAxRjAwMjBCNDI5MDdGRThFMDI0RkU0RQorOjQwMEE4NjAwNjAxRDI0MDI2MDAzMDIwQjQyOTA3RkVBRTBCNDAxMDVDMjEwMDIwQjQyOTA3RkI0RTA0NDAxRjAwMjBCNDI5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFQQorOjQwMEFDNjAwRTRGMDkwN0ZFQ0UwNTQ4MEZGMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA1RjkwN0ZCNEUwNDQwMUYwODA1NjkwN0ZFOEUwMjRGRTYwMTgyNDAyNzA0QTkwN0ZFQUUwQjQwMTA0RDIxMDgwM0Y5MDdGQjQ3QgorOjQwMEIwNjAwRTA0NDAxRjA4MDM2OTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTAxNworOjQwMEI0NjAwNDQwMkYwMjJFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwRTQ5MDdGOTZGMDkwN0Y5NTc0QzBGMDkwN0Y5RTc0M0ZGMDkwN0Y5ODc0MThGMEU0RjU4RTkwN0ZERjc0RkZGMDkwN0ZERUYwRTRGNTI0NzUxODAxN0IwMDc0MjQyNTE4Rjk0NQorOjQwMEI4NjAwRTQzNDAwRkFFNDEyMEVFNDA1MThFNTE4QjQwOUVBNzUzQTAxRTRGNTM4RjUxM0Y1MzZDMjA3QzIwQkMyMDVDMjAwQzIwOUMyMTM5MDdGOTg3NDEzRjA3NTQ0MDM5MEMwMDA3NDAzRjA3RjBDRTRGRDEyMTFEMDdGMTA4RjQyMTI1RgorOjQwMEJDNjAwMTBBMDkwN0Y5ODc0MTJGMDdGMDE4RjQwRUY0NDA2OTBDMDAwRjA5MDdGOTg3NDE0RjA3NTQ2ODA5MEMwMDA3NDgwRjAwRkU0RkQxMjExRDBFNEZGN0VBM0FEMDY4RDNFMTIxMUQwOTA3Rjk4NzQxMUYwOTBDMDAwRTRGMDdGMDVCMAorOjQwMEMwNjAwN0Q3RjEyMTFEMDdGMDExMjEyODk3RjAzN0QwNzEyMTFEMDdGMTM3RDA5MTIxMUQwMjAxQjAzMDIwQ0M5NzUyRDAxNzUxODAxN0IwMDc0MkQyNTE4RjlFNDM0MDBGQUU0MTIwRUU0MDUxOEU1MThCNDA5RUE3NTNCMDFFNEY1Mzk3OAorOjQwMEM0NjAwRjUxM0Y1MzdDMjA4QzIwQ0MyMDZDMjAwQzIwQUMyMTM5MDdGOTg3NDBCRjA3NTQ1MDM5MEMwMDA3NDAzRjA3RjBDRTRGRDEyMTIxQTdGMTA4RjQzMTIxMTEyOTA3Rjk4NzQwQUYwN0YwMThGNDFFRjQ0MDY5MEMwMDBGMDkwN0ZDMAorOjQwMEM4NjAwOTg3NDBDRjA3NTQ3ODA5MEMwMDA3NDgwRjAwRkU0RkQxMjEyMUFFNEZGN0VBM0FEMDY4RDNGMTIxMjFBOTA3Rjk4NzQwOUYwOTBDMDAwRTRGMDdGMDU3RDdGMTIxMjFBN0YwMTEyMTJBQTdGMDM3RDA3MTIxMjFBN0YxMzdEMDkyNworOjQwMENDNjAwMTIxMjFBRDIxMjIyOTA3Rjk4NzQxMEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBGRAorOjQwMEQwNjAwQzAwMEUwMDU4NkYwQTMwNTg2REZGNzA1ODZEMkFGMjI5MDdGOTg3NDA4RjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MDhGMEFGMDhFNTBERjUzQQorOjQwMEQ0NjAwODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkQyMTk5MDdGOTJCOAorOjQwMEQ4NjAwRTA0NDAyRjA5MDdGQUVFMEZGRDM5MjEwRTQzM0ZFRUY0RUYwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBERjBBRAorOjQwMERDNjAwRDJBRkQyMUExMjEyNjRDMjExRTRGNTBCRjUxM0MyMTdDMjEyOTA3RkExMDRGMDkwN0ZEOEUwNjUxNzYwMTAzMDEyMDVEMjFBMTIwMDQ2OTA3RkQ4RTBGNTE3ODAwODMwMTIwNUMyMUExMjAwNDYzMDExMDdDMjExMTIwOTI1ODBGOQorOjQwMEUwNjAwRDYzMDE4RDNDMjE4MTIxM0FCODBDQzIyNzg3RkU0RjZEOEZENzU4MTQ3MDIwRTU5MDIwRDgxRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0M0NTQwRjQ0MjBDODgzNDBGQQorOjQwMEU0NjAwMDRGNDU2ODAwMTQ2RjZERkU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDEyQ0JFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0ZBRTQ5M0EzRjhFNDkzQTMyMAorOjQwMEU4NjAwQzhDNTgyQzhDQUM1ODNDQUYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjJENQorOjQwMEVDNjAwNTAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMkU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM3QQorOjQwMEYwNjAwOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzQTNBMzgwREY4RjE4RTRGNTE5NzUxQUZGNzUxQjE5NzUxQzg2QUIxQUFBMUJBOTFDOTAwMDAxMTIwRUI3QjQwMzFEQUYxOTA1MTlFRkI1MTgwMTIyMTIwRTlFN0VDNAorOjQwMEY0NjAwMDAyOUZGRUUzQUE5MDc3NTFBRkZGNTFCODkxQzgwRDQ3QjAwN0EwMDc5MDAyMjhGMUEwNTBERTUwREFFMEM3MDAyMDUwQzE0RjU4MjhFODNFNTFBRjAxMjAwMzYwNTBERTUwREFDMEM3MDAyMDUwQzE0RjU4MjhDODNFRkYwMTVCQQorOjQwMEY4NjAwMDhFNTA4NjAwQTEyMTMzRjhGMUFFRjQyMzY4MENBMjI4RjFBMDUwREU1MERBRTBDNzAwMjA1MEMxNEY1ODI4RTgzRTUxQUYwMTIxMzU3MDUwREU1MERBQzBDNzAwMjA1MEMxNEY1ODI4QzgzRUZGMDE1MDhFNTA4NjAwQTEyMTNBQQorOjQwMEZDNjAwOTM4RjFBRUY0MjM3ODBDQTIyRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjA5MDdGOTVGMDkwN0Y5RTc0MjdGMDkwN0Y5ODc0MjBGMDkwN0Y5RTc0MDdGMEU0OTA3Rjk0RjA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwMjI3QworOjQwMTAwNjAwQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxMTUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxODUzOTFFRjkwN0ZBQjc0MDg3RQorOjQwMTA0NjAwRjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTBGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjAwQworOjQwMTA4NjAwOTA3Rjk4NzQxMUYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTJGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjIwQQorOjQwMTBDNjAwOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTZGMDkwQzAwMEVGRjA5MDdGOTgwNworOjQwMTEwNjAwNzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwQUYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0ZGQQorOjQwMTE0NjAwOTg3NDA4RjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwOUYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y3MQorOjQwMTE4NjAwOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBDRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwRUYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGRAorOjQwMTFDNjAwRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxN0YwOTBDMDAwRUZGMDkwN0Y5ODc0MTVGMDkwQzAwMEVERjAyMjEyMTMyNzhGMUExMjEzMjc4RjFCRTUxQTY1MUI2MDEyMTI5MgorOjQwMTIwNjAwMTMyNzhGMUFFNTFBNjUxQjYwMDcxMjEzMjc4RjFCODBFOEFGMUEyMjkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjA5MDdGOTg3NDBGRjA5MEMwMDBFRkYwOTA3Rjk4NzQwREYwOTBDMDAwRURGMDIyMTIxMzdCOEYxQTEyMTMyNQorOjQwMTI0NjAwN0I4RjFCRTUxQTY1MUI2MDEyMTIxMzdCOEYxQUU1MUE2NTFCNjAwNzEyMTM3QjhGMUI4MEU4QUYxQTIyOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwMUEwNEUwNDQwMkYwN0ZGNDdFMDExMjEyRTc5MDdGRDZFMDU0RjdGMEUwNDRFMQorOjQwMTI4NjAwMDRGMDIyQUUwN0U0RkZFNTNFNTQ3RkZEMTIxMUQwOTA3Rjk4NzQxMUYwOTBDMDAwRUVGMEU0RTUzRTQ0ODBGRDEyMTFEMDIyQUUwN0U0RkZFNTNGNTQ3RkZEMTIxMjFBOTA3Rjk4NzQwOUYwOTBDMDAwRUVGMEU0RTUzRjQ0ODA5NQorOjQwMTJDNjAwRkQxMjEyMUEyMjA1MEUwMjAwMDAwMDAwMDMxNDAzMDAwMEMxMTFDMTE4QzE5NUMxMTBDMTE2MDEwQTAwQzE5QjAwOEUxODhGMTlFNTE5MTUxOUFFMTg3MDAyMTUxODRFNjAwNTEyMEQ2MDgwRUUyMjAwMDAwMjEwMDYwMDAyMTM3RQorOjQwMTMwNjAwMDQwMDAyMDAwMzAwMDIxMDJEOTA3Rjk4NzQxMUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxMkYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxM0YwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNEYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNUYwOTBGNQorOjQwMTM0NjAwQzAwMEUwRkYyMjkwN0Y5ODc0MTZGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MDhGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MDlGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEJGMDkwQzAwMEUwRkZDMAorOjQwMTM4NjAwMjI5MDdGOTg3NDBDRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBERjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBFRjA5MEMwMDBFMEZGMjIxMjBGQ0YxMjBENzExMjBCNEEyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjQwMTNDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjQwMTQwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjQwMTQ0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjQwMTQ4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjQwMTRDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjQwMTUwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjQwMTU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjQwMTU4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjQwMTVDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjQwMTYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjQwMTY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjQwMTY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjQwMTZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjQwMTcwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjQwMTc0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjQwMTc4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjQwMTdDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjQwMTgwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjQwMTg0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjQwMTg4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjQwMThDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxMTAwMUZGMDBCRgorOjQwMTkwNjAwMDA0MENEMDYxMDAxMDAwMDAxMDIwMDAyMDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA3NgorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMDA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGNAorOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMzYwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyMDAwNTUwMDUzMDA0MjAwMjAwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA0MTAwNjQwMDYxMDA3MDAwNzQwMDY1MDBGOQorOjA0MUEwNjAwNzIwMDAwMDA2QQorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2E0OXcuSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2E0OXcuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNWIzZDEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTQ5dy5IRVgKQEAgLTAsMCArMSwxNDUgQEAKKzowMzAwMzMwMDAyMThGQkI1Cis6MEMwMDM2MDA5MDc4NDE3NDAxRjA5MEMwMDBFMEZGMjJCRgorOjEwMDA0NjAwRTRGRjc0NDAyRkY1ODJFNDM0N0JGNTgzRTBGRUU1MTU4QQorOjEwMDA1NjAwMjQwNEZERTQzNTE0RkFBOTA1N0IwMUVGN0MwMDI5Rjk5NworOjEwMDA2NjAwRUMzQUZBRUUxMjExRjEwRkJGMjJEN0U1MTUyNDA1RjU4OQorOjEwMDA3NjAwODJFNDM1MTRGNTgzRTA3MDAzMDIwMTM0RTUxNTI0MDlBMgorOjEwMDA4NjAwRjU4MkU0MzUxNEY1ODNFMDcwMEVFNTE1MjQwQUY1ODI1MQorOjEwMDA5NjAwRTQzNTE0RjU4M0UwNjAxODdGMDFFNEZEMTIxNjQ3RTVBOAorOjEwMDBBNjAwMTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0Q0ZGMDgwNDExMAorOjEwMDBCNjAwRTUxNTI0MDZGNTgyRTQzNTE0RjU4M0UwRkYxMjE2NzY3RAorOjEwMDBDNjAwRTUxNTI0MDdGNTgyRTQzNTE0RjU4M0UwRkYxMjAwMDNGNQorOjEwMDBENjAwN0YwMUU1MTUyNDA4RjU4MkU0MzUxNEY1ODNFMEZEMTI2OQorOjEwMDBFNjAwMTY0N0U1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0MzBFRQorOjEwMDBGNjAwRjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA0NDgwRjAwMworOjEwMDAwMzAwOTA3ODQxNzQwM0YwOTBDMDAwNzRCRkYwOTA3ODQxNzQwRAorOjEwMDAxMzAwMDFGMDkwQzAwMEVGRjA5MDc4NDE3NDAzRjBFNTE1MjRFRgorOjEwMDAyMzAwMzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwMjI2NQorOjAzMDA0MzAwMDIxQjAwOUQKKzowMzAwMDAwMDAyMTA5NTU2Cis6NDAwMTA2MDA5MDc4NDE3NDA0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMDkwNzg0MTc0MDJGMEU1MTUyNDM2RjU4MkU0MzUxNEY1ODNFMDQ0MDY5MEMwMDBGMEU1MTUyNDBCRjU4MkU0MzUxNEY1ODNFMDYwMzJFNTE1MjQwQzBCCis6NDAwMTQ2MDBGNTgyRTQzNTE0RjU4M0UwNTQzRkZGRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0VGRjA5MDc4NDE3NDAzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMEU1MTUyNDBERjU4MkU0MzUxNEY1ODNFMDcwMDMwMjAyNEZFNTg4Cis6NDAwMTg2MDAxNTI0MTdGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDQ0MDRGMDgwMEZFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA1NEZCRjBFNEZGRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwRkQxMjE2NDdFNTVFCis6NDAwMUM2MDAxNTI0MEVGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFMDQ0ODBGMDgwMEZFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRTA1NDdGRjBFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRTA1NEZDRjBFNTE1MjQwRkVCCis6NDAwMjA2MDBGNTgyRTQzNTE0RjU4M0UwNjAyRkU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFMDQ0MDJGMEU1MTUyNDEwRjU4MkU0MzUxNEY1ODNFMEZGMTIxNUU3RTUxNTI0MTFGNTgyRTQzNTE0RjU4M0UwRkYxMjE2MTdFNTE1MjQzM0Y1ODJFNDVFCis6NDAwMjQ2MDAzNTE0RjU4M0UwRkYxMjE1QjdFNTE1MjQxNEY1ODJFNDM1MTRGNTgzRTA2MDQ0RTUxNTI0MTVGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDQ0MDFGMDgwMEZFNTE1MjQzOUY1ODJFNDM1MTRGNTgxCis6NDAwMjg2MDA4M0UwNTRGRUYwOTA3ODQxNzQwNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjBFNTE1MjQxMkY1ODJFNDM1MTRGNTgzRTA2MDQ0RTUxNTI0MTNGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDM5RjU4MkU0MzUxNEU2Cis6NDAwMkM2MDBGNTgzRTA0NDAyRjA4MDBGRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNTRGREYwOTA3ODQxNzQwNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjBFNTE1MjQxNkY1ODJFNDM1MTRGNTgzRTBGRkU1MTUyNDM1RjU4MjBBCis6NDAwMzA2MDBFNDM1MTRGNTgzRUZGMEU1MTUyNDE3RjU4MkU0MzUxNEY1ODNFMDMwRTAxMUU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0NDBGMDgwMEZFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NEJGRjBFNTE1MjQxOEY1ODJFNDM1MTRGNTc2Cis6NDAwMzQ2MDA4M0UwRkZFNTE1MjQzQkY1ODJFNDM1MTRGNTgzRUZGMEU1MTUyNDE5RjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA0NDEwRjA4MDBGRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNTRFRkYwOTA3ODY5Cis6NDAwMzg2MDA0MTc0MDRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwRTUxNTI0MUFGNTgyRTQzNTE0RjU4M0UwNjA2QkU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0QkZGMDkwNzg0MTc0MDNGMEU1MTUyNDM3RjU4MkU0MzUxNEZGCis6NDAwM0M2MDBGNTgzRTA1NDdGOTBDMDAwRjA5MDc4NDE3NDAxRjAxMjAwMzZFRjU0RkU5MEMwMDBGMEU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDU0RkRGRkYwRkRFNEZGMTIxNjQ3RTUxNTI0MkNGNTgyRTQzNTE0RjU4M0U0RjBFNTE1MjQyQkI3Cis6NDAwNDA2MDBGNTgyRTQzNTE0RjU4M0U0RjBFNTE2NDIxM0U1MTUyNDFCRjU4MkU0MzUxNEY1ODNFMDcwMEVFNTE1MjQyNUY1ODJFNDM1MTRGNTgzRTA2MDI4RTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNDQwMkZGRjBGREU0RkYxMjE2NDdFNTQ3Cis6NDAwNDQ2MDAxNTI0MkJGNTgyRTQzNTE0RjU4Mzc0MDFGMEU1MTY0MjEzRTUxNTI0MUNGNTgyRTQzNTE0RjU4M0UwRkY3MDBFRTUxNTI0MjVGNTgyRTQzNTE0RjU4M0UwNjAyQTkwNzg0MTc0MDJGMEU1MTUyNDM2RjU4MkU0MzUxNEY1ODNFMEM2Cis6NDAwNDg2MDA0NDA0OTBDMDAwRjBFRjYwMEZFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDA0RjBFNTE1MjQxREY1ODJFNDM1MTRGNTgzRTA2MDI3RTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNDQ0MEYwOTA3ODQxNzQwM0YwRTUxNTI0MzdGNTUwCis6NDAwNEM2MDA4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMEU1MTUyNDFFRjU4MkU0MzUxNEY1ODNFMDYwMjhFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA1NEZFRkZGMEZERTRGRjEyMTY0N0U1MTUyNDJERjU4MkU0MzUxNEY1ODM3NDAxRjBFNThGCis6NDAwNTA2MDAxNjQyMTNFNTE1MjQxRkY1ODJFNDM1MTRGNTgzRTA3MDBFRTUxNTI0MjVGNTgyRTQzNTE0RjU4M0UwNjAyN0U1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDQ0MDFGRkYwRkRFNEZGMTIxNjQ3RTUxNTI0MkRGNTgyRTQzNTE0RjU4Mzk3Cis6NDAwNTQ2MDBFNEYwRTUxNjQyMTNFNTE1MjQyMEY1ODJFNDM1MTRGNTgzRTA3MDBFRTUxNTI0MjVGNTgyRTQzNTE0RjU4M0UwNjAxODkwNzg0MTc0MDJGMEU1MTUyNDM2RjU4MkU0MzUxNEY1ODNFMDQ0MDI5MEMwMDBGMEU1MTUyNDIxRjU4MkE3Cis6NDAwNTg2MDBFNDM1MTRGNTgzRTA2MDBGRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQwMkYwRTUxNTI0MjJGNTgyRTQzNTE0RjU4M0UwNjAxRkU1MTUyNDJFRjU4MkU0MzUxNEY1ODM3NDAxRjBFNTE1MjQzQUY1ODJFNDM1MTRGNTgzRTRGMEYwCis6NDAwNUM2MDBFNTE2NDIxM0U1MTUyNDIzRjU4MkU0MzUxNEY1ODNFMDYwMDMxMjE4ODVFNTE1MjQyNEY1ODJFNDM1MTRGNTgzRTA2MDFCRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQwOEYwOTA3Rjk4RTBGRkU1MTZGNEZFRUY1RUYwRTUxNTZDCis6NDAwNjA2MDAyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMTZFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NEY3RjA5MDdGOThFMDQ1MTZGMDIyOTA3RkU5RTAxMjEyMDMwNzgzMDAwN0Y3MDEwODYzMDMwNjRDMDYwNzc0MDgwNzY4MDkwNzUwMEEwN0NFCis6NDAwNjQ2MDA1RjBCMDAwMDA4QjI5MDdGRUJFMDI0RkU2MDFDMTQ3MDAzMDIwNkZFMjQwMjYwMDMwMjA3NDY3NDE5OTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjA4Qjk5MDdGRUFFMDA0NzU4MjE3NzU4MzE5RjA5MDdGRUFFMDMwRTAwNDdGMDM4MDJECis6NDAwNjg2MDAwMjdGMDI3NTgyODI3NTgzMTlFRkYwNzU4MjZENzU4MzE5RjA3NTgyNjY3NTgzMTlGMDc1ODI1Rjc1ODMxOUYwNzU4MjU4NzU4MzE5RjA5MDdGRUFFMDMwRTEwNDdGNjQ4MDAyN0YzMjc1ODIxQTc1ODMxOUVGRjA5MDdGRUZFMEZCCis6NDAwNkM2MDBGRTkwN0ZFRUUwN0MwMDI0MDBGNTE5RUMzRUY1MTg3NTMzMTk3NTM0MTI3NTgyMTQ3NTgzMTlFMDc1MjcwMEY1MjhEM0U1Mjg5NTE5RTUyNzk1MTg0MDA2ODUxODI3ODUxOTI4MTIxMzEyMDIwOEI5OTA3RkVBRTBGRjEyMTQyQkM5Cis6NDAwNzA2MDBFQTQ5NjAzMjkwN0ZFRUUwNzUxODAwRjUxOUFFMDJBRjAxOEUzMzhGMzQ4RjgyOEU4M0UwRkVBM0UwOEUyN0Y1MjhEMzk1MTlFNTI3OTUxODQwMDY4NTE4Mjc4NTE5MjgxMjEzMTIwMjA4Qjk5MDdGQjRFMDQ0MDFGMDAyMDhCOTlFCis6NDAwNzQ2MDA5MDdGQjRFMDQ0MDFGMDAyMDhCOTkwN0YwMEU1MjVGMDkwN0ZCNTc0MDFGMDAyMDhCOTkwN0ZFQUUwRjUyNTAyMDhCOTkwN0ZFQUUwRjUyMjEyMEFCODAyMDhCOTkwN0YwMEU1MjJGMDkwN0ZCNTc0MDFGMDAyMDhCOTkwN0ZFOEJECis6NDAwNzg2MDBFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjAwRTQzM0ZGMjVFMEZGQTIwNkU0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwOEI5RTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjA4Qjk5MDdGRUNFMEY0NTQ4MDYzCis6NDAwN0M2MDBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA4Qjk5MDdGQjRFMDQ0MDFGMDAyMDhCOTkwN0ZFOEUwMjRGRTYwMUQyNDAyNjAwMzAyMDhCOTEwCis6NDAwODA2MDA5MDdGRUFFMEI0MDEwNUMyMDAwMjA4Qjk5MDdGQjRFMDQ0MDFGMDAyMDhCOTkwN0ZFQUUwNzAzODkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRjY3Cis6NDAwODQ2MDAxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDVGOTA3RkI0RTA0NDAxRjA4MDU2OTA3RkU4RTAyNEZFNjAxODI0MDI3MDRBOTA3RkVBRTBCNDAxMDREMjAwODAzRjkwN0ZCNEUwNDQwMUYwODAzNjkwN0ZFQUNCCis6NDAwODg2MDBFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyRTUxMTU0MEY3MDNECis6NDAwOEM2MDAwMzAyMDlCMjEyMTZBNUVGMjBFMTc1MTIxNzAzRUYxNEY1MTkxMjE4Q0NFRjI1MTlGRkU0MzNGRUMzRUY5NDgwRUU2NDgwOTQ4MDUwNTk4NTE1ODI4NTE0ODNFMEZFQTNFMEZGRjU4MjhFODNFMDMwRTAxMUU1MTUyNDMxRjU4MjUwCis6NDAwOTA2MDBFNDM1MTRGNTgzRTA0NDgwRjA4MDBGRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTQ3RkYwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMjBFMjEyRTUxOTYwMEVGNTIzRUYyNDAxRjUyREU0M0VGNTJDMTIxNEFERTRGRjEyMTRFM0MwCis6NDAwOTQ2MDBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAzMEU3NUQxMjE4Q0NFNTE1MjQzQkY1ODJFNDM1MTRGNTgzRTBGRUVGQzM5RTUwNDhFNTE1MjQyRkY1ODJFNDM1MTRGNTgzNzQwMUYwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTQ3Qjk5Cis6NDAwOTg2MDBGMEU1MTUyNDNBRjU4MkU0MzUxNEY1ODNFNEYwRTUxNjQyMTM5MDdGQzJFMDMwRTExMEU1MTUyNDI2RjU4MkU0MzUxNEY1ODNFMEY1MjQ4MDAzMTIxMkExMTIxNkQ0RUYzMEUxMDMwMjBBQjcxMjE3RDI4RjE5MTIxOEQ4RTUxNUQ1Cis6NDAwOUM2MDAyNDM4RjU4MkU0MzUxNEY1ODNFRkYwRTUxNTI0MzVGNTgyRTQzNTE0RjU4M0UwRkZFNTE5QzM5RjUwMjgxMjE4QjRFRjMwRTAyMUU1MTUyNDM4RjU4MkU0MzUxNEY1ODNFMDIwRTcxMkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMEMwCis6NDAwQTA2MDAyMEUxMDMwMjBBQjdFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NEZERjBFNTE5NzAwMzAyMEFCN0I0ODAwRkU1MTUyNDM4RjU4MkU0MzUxNEY1ODNFMDQ0MDJGMEU1MTUyNDM4RjU4MkU0MzUxNEY1ODNFMEZGMzBFNzI5RTUxOUNGCis6NDAwQTQ2MDBEMzk0MjA0MDAzNzUxOTIwODUxOTIzODUxNTgyODUxNDgzQTNBM0UwRkNBM0UwOEMyQ0Y1MkQxMjEzRERFNTE5MjVFMEZGMTIxNTE5MjJFNTE5RDM5NDNGNDAwMzc1MTkzRjg1MTkyM0U1MTUyNDM4RjU4MkU0MzUxNEY1ODNFMDUzCis6NDAwQTg2MDBGRjg1MTU4Mjg1MTQ4M0EzQTNFMEZDQTNFMEY1ODI4QzgzRUZGMDg1MTU4Mjg1MTQ4M0EzQTNFMEZFQTNFMDI0MDFGNTJERTQzRUY1MkMxMjE0NkNFNTE5MDRGRjEyMTUxOTIyRTQ5MDdGOTNGMDkwN0Y5Qzc0RjBGMDkwN0Y5Njc3Cis6NDAwQUM2MDBGMEU0OTA3Rjk0RjA5MDc4NEEwNEYwRjU4RTkwN0Y5NTc0QzBGMDkwN0Y5RTc0M0ZGMDkwN0Y5ODc0MUZGMDkwNzg0Mzc0RkZGMEU0OTA3ODQxRjA5MDdGREY3NDlGRjA5MDdGREVGMDkwN0Y5MkUwNDQwMkYwN0U3QjdGQzA3NTgxCis6NDAwQjA2MDAxNDdCNzUxNUMwOTA3Rjk2NzRFRkYwNzUxNjAxMTIwRjEyN0U3QjdGQzA3NTE0N0I3NTE1QzA5MDdGOTY3NEVGRjA3NTE2MDFFNTE1MjQyNkY1ODJFNDM1MTRGNTgzRTRGMDdFN0U3RjQwODUxNTgyODUxNDgzNzQ3RUYwQTM3NEY1Cis6NDAwQjQ2MDA0MEYwN0U3RTdGODA4NTE1ODI4NTE0ODNBM0EzNzQ3RUYwQTM3NDgwRjA3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5Njc0REZGMDc1MTYwMjEyMEYxMjdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk2NzRERkYwNzUxNjAyRTUxNTM2Cis6NDAwQjg2MDAyNDI2RjU4MkU0MzUxNEY1ODM3NDAxRjA3RTdEN0ZDMDg1MTU4Mjg1MTQ4Mzc0N0RGMEEzNzRDMEYwN0U3RTdGMDA4NTE1ODI4NTE0ODNBM0EzNzQ3RUYwQTM3NDAwRjA3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5Njc0QkZGMDE4Cis6NDAwQkM2MDA3NTE2MDQxMjBGMTI3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5Njc0QkZGMDc1MTYwNEU1MTUyNDI2RjU4MkU0MzUxNEY1ODM3NDAyRjA3RTdEN0Y0MDg1MTU4Mjg1MTQ4Mzc0N0RGMEEzNzQ0MEYwN0U3RDdGODA4NTE1ODI4NUQzCis6NDAwQzA2MDAxNDgzQTNBMzc0N0RGMEEzNzQ4MEYwN0U3QzdGODA3NTE0N0M3NTE1ODA5MDdGOTY3NDdGRjA3NTE2MDgxMjBGMTI3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0Y5Njc0N0ZGMDc1MTYwOEU1MTUyNDI2RjU4MkU0MzUxNEY1ODM3NDFDCis6NDAwQzQ2MDAwM0YwN0U3QzdGQzA4NTE1ODI4NTE0ODM3NDdDRjBBMzc0QzBGMDdFN0Q3RjAwODUxNTgyODUxNDgzQTNBMzc0N0RGMEEzNzQwMEYwQzIwQUMyMDlEMjAyMjJFNTEwMDQ1NDAzRjUxMDE0NjAxRjE0NjAzMTE0NjA0MzI0MDM3MDFCCis6NDAwQzg2MDA1MjdFN0I3RkMwNzUxNDdCNzUxNUMwOTA3Rjk2NzRFRkYwNzUxNjAxODAzRDdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk2NzRERkYwNzUxNjAyODAyODdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk2NzRCRkYwNzUxNjA0ODAxMzdFCis6NDAwQ0M2MDA3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0Y5Njc0N0ZGMDc1MTYwOEU1MzI1NTE2NzAwMzAyMEUxMUU1MTZGNEZGNTIzMkU1MjY1NDdGRkU3MDBGRTUyQTU1MTY2MDI0OTA3Rjk4RTA0NTE2RjA4MDFCQkUyMDE4RTUxNTI0MzFGNTQzCis6NDAwRDA2MDA4MkU0MzUxNEY1ODNFMDMwRTMwOUU0RjUyQTkwN0Y5OEUwNUZGMEU1MTUyNDNBRjU4MkU0MzUxNEY1ODNFMDYwMDNFMDE0RjBFNTE1MjQzNEY1ODJFNDM1MTRGNTgzRTA2MDAzRTAxNEYwRTA2MDAzMDIwRTExNzQwQUYwMTIwMDlECis6NDAwRDQ2MDAzNkVGNTQwMUZGRjUxOUU1MTUyNDJDRjU4MkU0MzUxNEY1ODNFMDZGNjAwN0U1MTlGMEU1MTY0MjEzMTIxOEU0OEYxOUU1MTUyNDI3RjU4MkU0MzUxNEY1ODNFMEZGRTUxOTU0MTBGRTZGNjAwNkVFRjBFNTE2NDIxM0U1MTUyNDE1Cis6NDAwRDg2MDAyOEY1ODJFNDM1MTRGNTgzRTBGRkU1MTk1NDgwRkU2RjYwMDZFRUYwRTUxNjQyMTNFNTE1MjQyOUY1ODJFNDM1MTRGNTgzRTBGRkU1MTk1NDIwRkU2RjYwMTVFRUYwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMzBFNDA0RTUxNjY1Cis6NDAwREM2MDA0MjEzRTUxMjU1MTZGRkY1MTlFNTE1MjQyQUY1ODJFNDM1MTRGNTgzRTA2RjYwMTZFNTE5RjBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAzMEU1MDRFNTE2NDIxM0U1MTc1NTE2RkZGNTE5RTUxNTI0MzBGNTgyRTQzNTE0RjU4MzgwCis6NDAwRTA2MDBFMDZGNjAwN0U1MTlGMEU1MTY0MjEzMjIzMDA5MDMwMjBGMTFFNTI0MTQ2MDJBMTQ2MDQxMTQ2MDU4MTQ2MDZGMjQwNDYwMDMwMjBFQ0Y3RTdCN0ZDMDc1MTQ3Qjc1MTVDMDkwN0Y5Njc0RUZGMDc1MTYwMTEyMTJBMTc1MjQwMTVBCis6NDAwRTQ2MDAyMjdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk2NzRERkYwNzUxNjAyMTIxMkExNzUyNDAyMjI3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5Njc0QkZGMDc1MTYwNDEyMTJBMTc1MjQwMzIyN0U3QzdGODA3NTE0N0M3NTE1ODA5MDUxCis6NDAwRTg2MDA3Rjk2NzQ3RkYwNzUxNjA4MTIxMkExNzUyNDA0MjIzMDA0MzNDMjA0NTMxM0RGRTRGNTE5N0UwMDdCMDA3NDJFMjUxOUY5RUUzNDAwRkExMjExQUJGRjc0ODAyNTE5RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOUU1MTlCNDAzREI5MDJECis6NDAwRUM2MDA3RkMzNzQwM0YwNzUyNDA1MjJFNTM2NjAzQkQ1MzYwQTUzMTNFRjMwMEEwNEQyMDlDMjBBRTRGNTE5N0UwMDdCMDA3NDM1MjUxOUY5RUUzNDAwRkExMjExQUJGRjc0ODAyNTE5RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOUU1MTlCNDY3Cis6NDAwRjA2MDAwM0RCOTA3RkMzNzQwM0YwRTRGNTI0MjJFNEY1MUE3RTAwN0IwMUU1MTUyNTFBRjlFRTM1MTRGQUU0MTIxMUYxMDUxQUU1MUFCNDNDRThFNTE1MjQzNUY1ODJFNDM1MTRGNTgzNzQwMUYwOTA3ODQxNzQwM0YwRTUxNTI0MzdGNTY5Cis6NDAwRjQ2MDA4MkU0MzUxNEY1ODM3NDAzRjA5MEMwMDBGMDdGMENFNEZEMTIxNjQ3N0YxMEU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFRkYwMTIxNUI3OTA3ODQxNzQwMkYwN0YwMUU1MTUyNDM2RjU4MkU0MzUxNEY1ODNFRkYwNDQwNjkwQzAwMEYxCis6NDAwRjg2MDBGMDkwNzg0MTc0MDRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODM3NDgwRjA5MEMwMDBGMDBGRTRGRDEyMTY0N0U0RkY3RUEzRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0VFRjBGRDEyMTY0NzkwNzg0MTc0MDFGMDkwQzAwMEU0RjA3Rjg5Cis6NDAwRkM2MDAwNTdEN0YxMjE2NDc3RjAxMTIxNTRGN0YwMzdEMDcxMjE2NDcyMjUzMTMzRjkwN0JGMUUwMzBFMzE2N0U3QjdGQzA3NTE0N0I3NTE1QzA5MDdGOTY3NEVGRjA3NTE2MDExMjA4QzE5MDdDMzFFMDMwRTMxNjdFN0M3RjAwNzUxNDE3Cis6NDAxMDA2MDA3Qzc1MTUwMDkwN0Y5Njc0REZGMDc1MTYwMjEyMDhDMTkwN0M3MUUwMzBFMzE2N0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTY3NEJGRjA3NTE2MDQxMjA4QzE5MDdDQjFFMDMwRTMxNjdFN0M3RjgwNzUxNDdDNzUxNTgwOTA3RjM3Cis6NDAxMDQ2MDA5Njc0N0ZGMDc1MTYwODEyMDhDMTA1MTFFNTExNTQwRkY1MTg3MDFGOTA3ODQxRTA1NEY3RjA5MDdGOTlFMEY1MTc5MDc4NDFFMDQ0MDhGMDkwN0Y5OUUwRjRGNTEyMTIxMTIxMjJFNTE4QjQwMTA0MTIwQzczMjI5MDdGQzJFMDE4Cis6NDAxMDg2MDAyMEUxMDhFNTEzNjAwNDEyMEUxMjIyMTIwQzczMjI3ODdGRTRGNkQ4RkQ3NTgxMzcwMjEwREMwMjEyMjlFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMDdFCis6NDAxMEM2MDBDODgzNDAwNEY0NTY4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMTg1MEU0N0UwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEEyCis6NDAxMTA2MDBFNDkzQTNDOEM1ODJDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkU5MDdGRDJFMDMwRTEwMzAyMTFBQUMyMDk5MDdCNDBFMDE0NjAyNjE0NjAzQjE0NjA1MDI0ODM2MDY0MjQ4MDcwNjM3RTdCN0ZDMDFDCis6NDAxMTQ2MDA3NTE0N0I3NTE1QzA5MDdGOTY3NEVGRjA3NTE2MDExMjAwNDY4MDRCN0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTY3NERGRjA3NTE2MDIxMjAwNDY4MDMzN0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTY3NEJGRjA3NTE2MDQxMkZCCis6NDAxMTg2MDAwMDQ2ODAxQjdFN0M3RjgwNzUxNDdDNzUxNTgwOTA3Rjk2NzQ3RkYwNzUxNjA4MTIwMDQ2ODAwMzEyMTc1Q0U0OTA3RkQzRjAyMkJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyQkIwMTg5Cis6NDAxMUM2MDAwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwODNEMDg2Cis6NDAxMjA2MDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBM0EzQTM4MERGOTA3RkFFRTBGRkQzOTIwMEU0MzNGRUVGNEVGMEQyRTg0M0Q4MjA5MDdGREU3NDAxRjA5MDdGREZGMDhFCis6NDAxMjQ2MDA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGNzQwMUYwOTA3RkFFNzQwREYwRDJBRkQyMEIxMjE4MTRDMjAxRTRGNTJCRjUzMUMyMDdDMjAyNzUyOUYwOTA3RkQ4RTA2NTI2NjAwNjc1MzIwRkUwRjUyNkM5Cis6NDAxMjg2MDAzMDAyMDMxMjBGRDkzMDAxMDdDMjAxMTIwNjI5ODBFMjMwMDhERkMyMDgxMjE4MzU4MEQ4MjJFNTEzNTUxNjYwNkFFNTE1MjQzQUY1ODJFNDM1MTRGNTgzRTA3MDVDRTUxNkY0NTIxM0U1MTUyNDI2RkZFNDM1MTRGRUU0RkQwRkEyCis6NDAxMkM2MDBFRkFBMDY3MDAxMEUxNEY1ODI4QTgzRTBGQzc0ODAyREY1ODJFNDM0N0JGNTgzRUNGMDBEQkQwQkUyOTA3RkMzNzQwQkYwRTUxNTI0M0FGNTgyRTQzNTE0RjU4Mzc0MTBGMEU1MTUyNDJFRjU4MkU0MzUxNEY1ODNFNEYwRTUxNUMxCis6NDAxMzA2MDAyNDJGRjU4MkU0MzUxNEY1ODNFNEYwMjJFNTI4NDUyNzYwNTdBRTI3QUYyOEQzRUY5NDQwRUU5NDAwNDAwNDdFMDA3RjQwQzNFNTI4OUZGNTI4RTUyNzlFRjUyN0U0RkRFREMzOUZFNDlFNTAxRjg1MzQ4Mjg1MzM4M0UwRkM3NDk0Cis6NDAxMzQ2MDAwMDJERjU4MkU0MzQ3RkY1ODNFQ0YwMEQwNTM0RTUzNDcwMDIwNTMzODBEQTkwN0ZBOTc0MDFGMDkwN0ZBQ0UwNDQwMUYwOTA3RkI1RUZGMDIyOTA3RkFDRTA1NEZFRjBFNDkwN0ZCNUYwMjJFNDkwN0Y5M0YwOTA3RjlDNzRGMEE3Cis6NDAxMzg2MDBGMDkwN0Y5NkYwRTQ5MDc4NEFGMDkwN0Y5NEYwOTA3RjlENzRGRkYwRTQ5MDdGOTdGMDMwMDAwN0U1Mjk1NEYwRkY4MDAyN0YwMEVGNDQwODkwNzg0MUYwRTQ5MDdGOThGMDkwN0Y5NUYwOTA3RjlFNzRGRkYwRTQ5MDdGOThGMEM5Cis6NDAxM0M2MDA5MDdGOTNGMDkwN0Y5Qzc0RjBGMEU0OTA3Rjk2RjA5MDdGOTJFMDU0RkRGMDIyOEYxQTA1MkRFNTJEQUUyQzcwMDIwNTJDMTRGNTgyOEU4M0U1MUFGMDEyMThGMDA1MkRFNTJEQUMyQzcwMDIwNTJDMTRGNTgyOEM4M0VGRjAxNTlECis6NDAxNDA2MDAyM0U1MjM2MDFGRTUxNTI0MzhGNTgyRTQzNTE0RjU4M0MwODNDMDgyRTBGRTEyMThEODhGMUFFRTRGRDA4MkQwODNGMDgwQjUyMjhGMUFFNEY1MUI3NTFDRkY3NTFEMTk3NTFFODZBQjFDQUExREE5MUU5MDAwMDExMjExQzRCNEUxCis6NDAxNDQ2MDAwMzFEQUYxQjA1MUJFRkI1MUEwMTIyMTIxMUFCN0UwMDI5RkZFRTNBQTkwNzc1MUNGRkY1MUQ4OTFFODBENDdCMDA3QTAwNzkwMDIyRTQ5MDc4NDFGMDkwNzg0Rjc0QzBGMEU0OTA3ODUwRjBFNTJDOTA3ODUxRjBBRTJDRTUyREY4Cis6NDAxNDg2MDA5MDc4NTJGMDkwNzg1NEU1MjNGMDkwNzg1Nzc0MDRGMDkwN0ZFMkUwNDQxMEYwRTA1NEY3RjBFNDkwNzg1NUYwOTA3ODU1RTA2MEZBMjJFNDkwNzg0MUYwRTUyQzkwNzg0RkYwQUUyQ0U1MkQ5MDc4NTBGMDkwNzg1MTc0QzBGMDgxCis6NDAxNEM2MDBFNDkwNzg1MkYwOTA3ODU0RTUyM0YwOTA3ODU3NzQwNEYwRTQ5MDc4NTVGMDkwNzg1NUUwNjBGQTIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDBGMTQ2MDEzMTQ2MDE3ODAwMDkwN0ZDN0VGRjA4MDEzOTA3RkM5RUZGMDgxCis6NDAxNTA2MDA4MDBDOTA3RkNCRUZGMDgwMDU5MDdGQ0RFRkYwRTUxNjQyMkEyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwRjE0NjAxMzE0NjAxNzgwMDA5MDdGQjdFRkYwODAxMzkwN0ZCOUVGRjA4MDBDOTA3RkJCRUZGMDgwMDU5MDNCCis6NDAxNTQ2MDA3RkJERUZGMEU1MTY0MjJBMjJBRTA3RTRGRkU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDU0N0ZGRDEyMTY0NzkwNzg0MTc0MDFGMDkwQzAwMEVFRjBFNEU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDQ0ODBGRDEyMTY0NzIyQzBFMEEwCis6NDAxNTg2MDBDMEYwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBDMEQwNzVEMDA4NTM5MUVGOTA3RkE5NzQwMUYwMTIxMzEyRDBEMEQwODZEMDg0RDA4NUQwODJEMDgzRDBGMEQwRTAzMjkwNzg0MTc0MDNGMDkwQzAwMDc0QkZGMDkwNzg0MUQwCis6NDAxNUM2MDA3NDAyRjA5MEMwMDBFRkYwOTA3ODQxNzQwM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwMjI5MDc4NDE3NDAzRjA5MEMwMDA3NEJGRjA5MDc4NDE3NDA0RjA5MEMwMDBFRkYwOTA3ODQxNzQwM0YwRTUxNTZECis6NDAxNjA2MDAyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDIyOTA3ODQxNzQwM0YwOTBDMDAwNzRCRkYwOTA3ODQxNzQwNkYwOTBDMDAwRUZGMDkwNzg0MTc0MDNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMEZGCis6NDAxNjQ2MDAyMjkwNzg0MTc0MDNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDkwNzg0MTc0MDdGMDkwQzAwMEVGRjA5MDc4NDE3NDA1RjA5MEMwMDBFREYwMjI5MDc4NDE3NDAzRjA5MEMwMDA3NEJGRjBFNDkwNzg0MUZBCis6NDAxNjg2MDBGMDkwQzAwMEVGRjA5MDc4NDE3NDAzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjAyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwRTE0NjAxMTE0NjAxNDgwMDA5MDdGQzZFMEZGMjI5MDdGQzhFMDE1Cis6NDAxNkM2MDBGRjIyOTA3RkNBRTBGRjIyOTA3RkNDRTBGRjIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDBFMTQ2MDExMTQ2MDE0ODAwMDkwN0ZCNkUwRkYyMjkwN0ZCOEUwRkYyMjkwN0ZCQUUwRkYyMjkwN0ZCQ0UwRkYyMkU1MTUyNDlFCis6NDAxNzA2MDAwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMEUxNDYwMTExNDYwMTQ4MDAwOTA3RkM3RTBGRjIyOTA3RkM5RTBGRjIyOTA3RkNCRTBGRjIyOTA3RkNERTBGRjIyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwOTA3RkM0RTRGMDk2Cis6NDAxNzQ2MDA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0I0MUUwRjUzNjQzMTMxMEEzRTA2MDA5OTA3RkQ3NzQxN0YwNzQzN0YwOTA3QjQzRTBGNTM3QTNFMDU0RjBGNTI5RTA2MDAyRDIwQTIyQzBFMDI0Cis6NDAxNzg2MDBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMDE1MzkxRUY5MDdGQUI3NDAxRjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMDg1MzkxRUY5MDdGQUI3NDA4RjBEMEY3Cis6NDAxN0M2MDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzIxMjE4QzBBRTA3MTIxOEMwQUQwN0VFNkQ2MDEwMTIxOEMwQUUwN0VFNkQ2MDA3MTIxOEMwQUQwNzgwRUNBRjA2MjI3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIyOTA3RkQ1Cis6NDAxODA2MDBENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyOTA3RkQ2RTA0NDA0RjBFMDQ0MDhGMDMwMEIwNEUwNDQwMkYwN0ZGNDdFMDExMjE4NkI5MDdGRDZFMDU0RjdGMDIyMTIxMzdDMTIxODA0OTA3RkQ2RTAzMEU3MEE3RjA1N0UwMDdECis6NDAxODQ2MDAxMjE4NkIxMjE4OUUxMjBBQjgyMjAzMzU4MDAwMDAwMzJFODEwMDAwQzE4NUMxODFDMTA4QzEwMEMxMDYwMTIyMDAwMTI0MDAwMDhFMTg4RjE5RTUxOTE1MTlBRTE4NzAwMjE1MTg0RTYwMDgxMjE3RjMxMjE3RjM4MEVCMjJFNTQ1Cis6NDAxODg2MDAxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMDRGRjQ0MTA5MDdGRDdGMEVGNDQzMEYwMjI5MDdGRDZFMDQ0MDFGMDdGMEQ3RTAwMTIxODZCOTA3RkQ2RTA1NEZFRjAyMjkwNzg0MTc0MDJGMDkwQzAwMEUwRkYyMjkwNzg0MTc0MDNGMEQ1Cis6NDAxOEM2MDA5MEMwMDBFMEZGMjI5MDc4NDE3NDA0RjA5MEMwMDBFMEZGMjI5MDc4NDE3NDA1RjA5MEMwMDBFMEZGMjI5MDc4NDE3NDA2RjA5MEMwMDBFMEZGMjJFNDkwNzg0MUYwOTBDMDAwRTBGRjIyNTNEOEVGMzIwMDEyMDExMDAxRkYwMEFCCis6NDAxOTA2MDAwMDQwQ0QwNjBBMDEwMDAwMDEwMjAwMDQwOTAyNzQwMDAxMDEwMEEwMzIwOTA0MDAwMDBFRkYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1MDQwMjQwMDAwMDA3MDUwNTAyNDAwMDdBCis6NDAxOTQ2MDAwMDA3MDUwNjAyNDAwMDAwMDcwNTA3MDI0MDAwMDAwNzA1ODEwMjQwMDAwMTA3MDU4MjAyNDAwMDAxMDcwNTgzMDI0MDAwMDEwNzA1ODQwMjQwMDAwMTA3MDU4NTAyNDAwMDAxMDcwNTg2MDI0MDAwMDEwNzA1ODcwMjQwMDAwMUYzCis6NDAxOTg2MDAwNDAzMDkwNDQ4MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMkMwMDIwMDA2MTAwMjAwMDY0MDA2OTAwNzYwMDY5MDA3MzAwNjkwMDZGMDA2RTAwMjAwMDZGMDA2NjAwMjAwMDQ5MDA2RTAwNkUwMDZGMDA1MzAwNzkwMDQwCis6NDAxOUM2MDA3MzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAzNjAzNTUwMDUzMDA0MjAwMjAwMDM0MDAyRDAwNzAwMDZGMDA3MjAwNzQwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwNzIwMDNDCis6NDAxQTA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6NDAxQTQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6NDAxQTg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6NDAxQUM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMTc4NDAwMDIxQjI2Cis6MTUxQjA2MDAwNDAwMDIxNzMyMDAwMjE3QUIwMDAyMUIxMDAwMDIxQjE0MDAwMjE1ODRCRQorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2E0OXdsYy5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTQ5d2xjLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDA2ZWIxCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2E0OXdsYy5IRVgKQEAgLTAsMCArMSwxNTMgQEAKKzowMTdGOTIwMDAxRUQKKzowMzAwMzMwMDAyMThGQkI1Cis6MEQwMDM2MDBFNTExMDQ5MDc4NDFGMDkwQzAwMEUwRkYyMjM5Cis6MTAwMDQ2MDBFNEZGNzQ0MDJGRjU4MkU0MzQ3QkY1ODNFMEZFRTUxNThBCis6MTAwMDU2MDAyNDA0RkRFNDM1MTRGQUE5MDU3QjAxRUY3QzAwMjlGOTk3Cis6MTAwMDY2MDBFQzNBRkFFRTEyMTFFQzBGQkYyMkQ3RTUxNTI0MDVGNThFCis6MTAwMDc2MDA4MkU0MzUxNEY1ODNFMDcwMDMwMjAxMzRFNTE1MjQwOUEyCis6MTAwMDg2MDBGNTgyRTQzNTE0RjU4M0UwNzAwRUU1MTUyNDBBRjU4MjUxCis6MTAwMDk2MDBFNDM1MTRGNTgzRTA2MDE4N0YwMUU0RkQxMjE2NkJFNTg0Cis6MTAwMEE2MDAxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTRDRkYwODA0MTEwCis6MTAwMEI2MDBFNTE1MjQwNkY1ODJFNDM1MTRGNTgzRTBGRjEyMDAwMzA2Cis6MTAwMEM2MDBFNTE1MjQwN0Y1ODJFNDM1MTRGNTgzRTBGRjEyMTVBQjM4Cis6MTAwMEQ2MDA3RjAxRTUxNTI0MDhGNTgyRTQzNTE0RjU4M0UwRkQxMjY5Cis6MTAwMEU2MDAxNjZCRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQzMENBCis6MTAwMEY2MDBGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDQ0ODBGMDAzCis6MTAwMDAzMDA5MDc4NDE3NEYzRjA5MEMwMDA3NEJGRjA5MDc4NDE3NDFECis6MTAwMDEzMDBGMEYwOTBDMDAwRUZGMDkwNzg0MTc0RjNGMEU1MTUyNDEwCis6MTAwMDIzMDAzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjAyMjY1Cis6MDMwMDQzMDAwMjFCMDA5RAorOjAzMDAwMDAwMDIxMDkwNUIKKzo0MDAxMDYwMDkwNzg0MTc0RjRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwOTA3ODQxNzRGMkYwRTUxNTI0MzZGNTgyRTQzNTE0RjU4M0UwNDQwNjkwQzAwMEYwRTUxNTI0MEJGNTgyRTQzNTE0RjU4M0UwNjAzMkU1MTUyNDBDMkIKKzo0MDAxNDYwMEY1ODJFNDM1MTRGNTgzRTA1NDNGRkZFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRUZGMDkwNzg0MTc0RjNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwRTUxNTI0MERGNTgyRTQzNTE0RjU4M0UwNzAwMzAyMDI0RkU1OTgKKzo0MDAxODYwMDE1MjQxN0Y1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNDQwNEYwODAwRkU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDU0RkJGMEU0RkZFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTBGRDEyMTY2QkU1M0EKKzo0MDAxQzYwMDE1MjQwRUY1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0UwNDQ4MEYwODAwRkU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFMDU0N0ZGMEU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFMDU0RkNGMEU1MTUyNDBGRUIKKzo0MDAyMDYwMEY1ODJFNDM1MTRGNTgzRTA2MDJGRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0UwNDQwMkYwRTUxNTI0MTBGNTgyRTQzNTE0RjU4M0UwRkYxMjE2MEJFNTE1MjQxMUY1ODJFNDM1MTRGNTgzRTBGRjEyMTYzQkU1MTUyNDMzRjU4MkU0MTUKKzo0MDAyNDYwMDM1MTRGNTgzRTBGRjEyMTVEQkU1MTUyNDE0RjU4MkU0MzUxNEY1ODNFMDYwNDRFNTE1MjQxNUY1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNDQwMUYwODAwRkU1MTUyNDM5RjU4MkU0MzUxNEY1NUQKKzo0MDAyODYwMDgzRTA1NEZFRjA5MDc4NDE3NEY0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMEU1MTUyNDEyRjU4MkU0MzUxNEY1ODNFMDYwNDRFNTE1MjQxM0Y1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzlGNTgyRTQzNTE0RjYKKzo0MDAyQzYwMEY1ODNFMDQ0MDJGMDgwMEZFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA1NEZERjA5MDc4NDE3NEY0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMEU1MTUyNDE2RjU4MkU0MzUxNEY1ODNFMEZGRTUxNTI0MzVGNTgyMUEKKzo0MDAzMDYwMEU0MzUxNEY1ODNFRkYwRTUxNTI0MTdGNTgyRTQzNTE0RjU4M0UwMzBFMDExRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQ0MEYwODAwRkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0QkZGMEU1MTUyNDE4RjU4MkU0MzUxNEY1NzYKKzo0MDAzNDYwMDgzRTBGRkU1MTUyNDNCRjU4MkU0MzUxNEY1ODNFRkYwRTUxNTI0MTlGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDQ0MTBGMDgwMEZFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA1NEVGRjA5MDc4NjkKKzo0MDAzODYwMDQxNzRGNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjBFNTE1MjQxQUY1ODJFNDM1MTRGNTgzRTA2MDZCRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTRCRkYwOTA3ODQxNzRGM0YwRTUxNTI0MzdGNTgyRTQzNTE0MUYKKzo0MDAzQzYwMEY1ODNFMDU0N0Y5MEMwMDBGMDkwNzg0MTc0RjFGMDEyMDAzNkVGNTRGRTkwQzAwMEYwRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNTRGREZGRjBGREU0RkYxMjE2NkJFNTE1MjQyQ0Y1ODJFNDM1MTRGNTgzRTRGMEU1MTUyNDJCQTMKKzo0MDA0MDYwMEY1ODJFNDM1MTRGNTgzRTRGMEU1MTY0MjEzRTUxNTI0MUJGNTgyRTQzNTE0RjU4M0UwNzAwRUU1MTUyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMjhFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA0NDAyRkZGMEZERTRGRjEyMTY2QkU1MjMKKzo0MDA0NDYwMDE1MjQyQkY1ODJFNDM1MTRGNTgzNzQwMUYwRTUxNjQyMTNFNTE1MjQxQ0Y1ODJFNDM1MTRGNTgzRTBGRjcwMEVFNTE1MjQyNUY1ODJFNDM1MTRGNTgzRTA2MDJBOTA3ODQxNzRGMkYwRTUxNTI0MzZGNTgyRTQzNTE0RjU4M0UwRDYKKzo0MDA0ODYwMDQ0MDQ5MEMwMDBGMEVGNjAwRkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0MDRGMEU1MTUyNDFERjU4MkU0MzUxNEY1ODNFMDYwMjdFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA0NDQwRjA5MDc4NDE3NEYzRjBFNTE1MjQzN0Y1NjAKKzo0MDA0QzYwMDgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwRTUxNTI0MUVGNTgyRTQzNTE0RjU4M0UwNjAyOEU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDU0RkVGRkYwRkRFNEZGMTIxNjZCRTUxNTI0MkRGNTgyRTQzNTE0RjU4Mzc0MDFGMEU1NkIKKzo0MDA1MDYwMDE2NDIxM0U1MTUyNDFGRjU4MkU0MzUxNEY1ODNFMDcwMEVFNTE1MjQyNUY1ODJFNDM1MTRGNTgzRTA2MDI3RTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNDQwMUZGRjBGREU0RkYxMjE2NkJFNTE1MjQyREY1ODJFNDM1MTRGNTgzNzMKKzo0MDA1NDYwMEU0RjBFNTE2NDIxM0U1MTUyNDIwRjU4MkU0MzUxNEY1ODNFMDcwMEVFNTE1MjQyNUY1ODJFNDM1MTRGNTgzRTA2MDE4OTA3ODQxNzRGMkYwRTUxNTI0MzZGNTgyRTQzNTE0RjU4M0UwNDQwMjkwQzAwMEYwRTUxNTI0MjFGNTgyQjcKKzo0MDA1ODYwMEU0MzUxNEY1ODNFMDYwMEZFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDAyRjBFNTE1MjQyMkY1ODJFNDM1MTRGNTgzRTA2MDFGRTUxNTI0MkVGNTgyRTQzNTE0RjU4Mzc0MDFGMEU1MTUyNDNBRjU4MkU0MzUxNEY1ODNFNEYwRjAKKzo0MDA1QzYwMEU1MTY0MjEzRTUxNTI0MjNGNTgyRTQzNTE0RjU4M0UwNjAwMzEyMTg3QUU1MTUyNDI0RjU4MkU0MzUxNEY1ODNFMDYwMjNFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDA4RjBFNTE2QzQ1NEYwRkY0MjExOTA3Rjk2RTA0RkYwMDAKKzo0MDA2MDYwMDkwNzg0MUUwNEZGMEU1MTUyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMjRFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NEY3RjBFNTE2QzQ1NEYwRjRGRjUyMTE5MDdGOTZFMDVGRjA5MDc4NDFFMDVGRjAyMjkwN0ZFOUUwMTIxMUZFNDMKKzo0MDA2NDYwMDA3OTkwMDA4MEQwMTA4NzkwMzA2NjIwNjA3OEEwODA3N0UwOTA3NjYwQTA3NzUwQjAwMDAwOEM4OTA3RkVCRTAyNEZFNjAxQzE0NzAwMzAyMDcxNDI0MDI2MDAzMDIwNzVDNzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIwOENGNEMKKzo0MDA2ODYwMDkwN0ZFQUUwMDQ3NTgyMTc3NTgzMTlGMDkwN0ZFQUUwMzBFMDA0N0YwMjgwMDI3RjAzNzU4MjgyNzU4MzE5RUZGMDc1ODI2RDc1ODMxOUYwNzU4MjY2NzU4MzE5RjA3NTgyNUY3NTgzMTlGMDc1ODI1ODc1ODMxOUYwOTA3RkVBMEEKKzo0MDA2QzYwMEUwMzBFMTA0N0Y2NDgwMDI3RjMyNzU4MjFBNzU4MzE5RUZGMDkwN0ZFRkUwRkU5MDdGRUVFMDdDMDAyNDAwRjUxOEVDM0VGNTE3NzUzMzE5NzUzNDEyNzU4MjE0NzU4MzE5RTA3NTI3MDBGNTI4RDNFNTI4OTUxOEU1Mjc5NTE3RDYKKzo0MDA3MDYwMDQwMDY4NTE3Mjc4NTE4MjgxMjEzMEQwMjA4Q0Y5MDdGRUFFMEZGMTIxNDVGRUE0OTYwMzI5MDdGRUVFMDc1MTcwMEY1MThBRTAyQUYwMThFMzM4RjM0OEY4MjhFODNFMEZFQTNFMDhFMjdGNTI4RDM5NTE4RTUyNzk1MTc0MDA2OEIKKzo0MDA3NDYwMDg1MTcyNzg1MTgyODEyMTMwRDAyMDhDRjkwN0ZCNEUwNDQwMUYwMDIwOENGOTA3RkI0RTA0NDAxRjAwMjA4Q0Y5MDdGMDBFNTI1RjA5MDdGQjU3NDAxRjAwMjA4Q0Y5MDdGRUFFMEY1MjUwMjA4Q0Y5MDdGRUFFMEY1MjIxMjBBOUIKKzo0MDA3ODYwMENFMDIwOENGOTA3RjAwRTUyMkYwOTA3RkI1NzQwMUYwMDIwOENGOTA3RkU4RTAyNDdGNjAyNDE0NjAzMTI0MDI3MDVCQTIwMEU0MzNGRjI1RTBGRkEyMDZFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMDhDRkU0QzkKKzo0MDA3QzYwMDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMDhDRjkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwOENGOTA3RkI0NUMKKzo0MDA4MDYwMEUwNDQwMUYwMDIwOENGOTA3RkU4RTAyNEZFNjAxRDI0MDI2MDAzMDIwOENGOTA3RkVBRTBCNDAxMDVDMjAwMDIwOENGOTA3RkI0RTA0NDAxRjAwMjA4Q0Y5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0OTAKKzo0MDA4NDYwMDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA1RjkwN0ZCNEUwNDQwMUYwODA1NjkwN0ZFOEUwMjRGRTYwMTgyNDAyNzA0QTkwQ0EKKzo0MDA4ODYwMDdGRUFFMEI0MDEwNEQyMDA4MDNGOTA3RkI0RTA0NDAxRjA4MDM2OTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwNDYKKzo0MDA4QzYwMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjJFNTEyNTQwRjcwMDMwMjA5QzgxMjE2OUFFRjIwRTE3NTEyMTZGOEVGMTRGNTE4MTIxOEM1RUYyNTE4RkZFNDMzRkVDM0VGOTQ4MEVFNjQ4MDk0ODA1MDU5ODUxNTgyMDEKKzo0MDA5MDYwMDg1MTQ4M0UwRkVBM0UwRkZGNTgyOEU4M0UwMzBFMDExRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQ4MEYwODAwRkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0N0ZGMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDIwRTIxMkU1Q0MKKzo0MDA5NDYwMDE4NjAwRUY1MjNFRjI0MDFGNTJERTQzRUY1MkMxMjE0QTBFNEZGMTIxNEQ3RTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMzBFNzVEMTIxOEM1RTUxNTI0M0JGNTgyRTQzNTE0RjU4M0UwRkVFRkMzOUU1MDQ4RTUxNTI0MkZGNTgyMDcKKzo0MDA5ODYwMEU0MzUxNEY1ODM3NDAxRjBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NDdCRjBFNTE1MjQzQUY1ODJFNDM1MTRGNTgzRTRGMEU1MTY0MjEzOTA3RkMyRTAzMEUxMTBFNTE1MjQyNkY1ODJFNDM1MTRGNTgzRTBGNTI0ODAwMzEyQzUKKzo0MDA5QzYwMDEyOUMxMjE2QzlFRjMwRTEwMzAyMEFDRDEyMTdDNzhGMTgxMjE4RDNFNTE1MjQzOEY1ODJFNDM1MTRGNTgzRUZGMEU1MTUyNDM1RjU4MkU0MzUxNEY1ODNFMEZGRTUxOEMzOUY1MDI4MTIxOEE5RUYzMEUwMjFFNTE1MjQzOEY1MkUKKzo0MDBBMDYwMDgyRTQzNTE0RjU4M0UwMjBFNzEyRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMjBFMTAzMDIwQUNERTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTRGREYwRTUxODcwMDMwMjBBQ0RCNDgwMEZFNTE1MjQzOEY1ODJFNDM1MTRGNTgzREUKKzo0MDBBNDYwMEUwNDQwMkYwRTUxNTI0MzhGNTgyRTQzNTE0RjU4M0UwRkYzMEU3MjlFNTE4RDM5NDIwNDAwMzc1MTgyMDg1MTgyMzg1MTU4Mjg1MTQ4M0EzQTNFMEZDQTNFMDhDMkNGNTJEMTIxM0NGRTUxODI1RTBGRjEyMTUwRDIyRTUxOEQzQzMKKzo0MDBBODYwMDk0M0Y0MDAzNzUxODNGODUxODIzRTUxNTI0MzhGNTgyRTQzNTE0RjU4M0UwRkY4NTE1ODI4NTE0ODNBM0EzRTBGQ0EzRTBGNTgyOEM4M0VGRjA4NTE1ODI4NTE0ODNBM0EzRTBGRUEzRTAyNDAxRjUyREU0M0VGNTJDMTIxNDFENEYKKzo0MDBBQzYwMEU1MTgwNEZGMTIxNTBEMjJFNDkwN0Y5M0YwOTA3RjlDNzRGRkYwRTQ5MDdGOTZGMDkwN0Y5NEYwOTA3ODRBMDRGMEY1OEU5MDdGOTU3NEMwRjA5MDdGOUU3NDNGRjA5MDdGOTg3NDJGRjA5MDc4NDM3NEY3RjBFNDkwNzg0MUYwMkMKKzo0MDBCMDYwMDkwN0ZERjc0OUZGMDkwN0ZERUYwOTA3RjkyRTA0NDAyRjA3RTdCN0ZDMDc1MTQ3Qjc1MTVDMDkwN0Y5ODc0MkVGMDc1MTYwMTEyMEYyODdFN0I3RkMwNzUxNDdCNzUxNUMwOTA3Rjk4NzQyRUYwNzUxNjAxRTUxNTI0MjZGNTgyOTAKKzo0MDBCNDYwMEU0MzUxNEY1ODNFNEYwN0U3RTdGNDA4NTE1ODI4NTE0ODM3NDdFRjBBMzc0NDBGMDdFN0U3RjgwODUxNTgyODUxNDgzQTNBMzc0N0VGMEEzNzQ4MEYwN0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTg3NDJERjA3NTE2MDIxMjBGMEEKKzo0MDBCODYwMDI4N0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTg3NDJERjA3NTE2MDJFNTE1MjQyNkY1ODJFNDM1MTRGNTgzNzQwMUYwN0U3RDdGQzA4NTE1ODI4NTE0ODM3NDdERjBBMzc0QzBGMDdFN0U3RjAwODUxNTgyODUxNDgzQTNBMzc0RUUKKzo0MDBCQzYwMDdFRjBBMzc0MDBGMDdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk4NzQyQkYwNzUxNjA0MTIwRjI4N0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTg3NDJCRjA3NTE2MDRFNTE1MjQyNkY1ODJFNDM1MTRGNTgzNzQwMkYwN0U3RDdGNTcKKzo0MDBDMDYwMDQwODUxNTgyODUxNDgzNzQ3REYwQTM3NDQwRjA3RTdEN0Y4MDg1MTU4Mjg1MTQ4M0EzQTM3NDdERjBBMzc0ODBGMDdFN0M3RjgwNzUxNDdDNzUxNTgwOTA3Rjk4NzQyN0YwNzUxNjA4MTIwRjI4N0U3QzdGODA3NTE0N0M3NTE1OTAKKzo0MDBDNDYwMDgwOTA3Rjk4NzQyN0YwNzUxNjA4RTUxNTI0MjZGNTgyRTQzNTE0RjU4Mzc0MDNGMDdFN0M3RkMwODUxNTgyODUxNDgzNzQ3Q0YwQTM3NEMwRjA3RTdEN0YwMDg1MTU4Mjg1MTQ4M0EzQTM3NDdERjBBMzc0MDBGMEMyMEFDMjA5RDMKKzo0MDBDODYwMEU0RjUxMUQyMDIyMkU1MTAwNDU0MDNGNTEwMTQ2MDFGMTQ2MDMxMTQ2MDQzMjQwMzcwNTI3RTdCN0ZDMDc1MTQ3Qjc1MTVDMDkwN0Y5ODc0MkVGMDc1MTYwMTgwM0Q3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5ODc0MkRGMDc1NjQKKzo0MDBDQzYwMDE2MDI4MDI4N0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTg3NDJCRjA3NTE2MDQ4MDEzN0U3QzdGODA3NTE0N0M3NTE1ODA5MDdGOTg3NDI3RjA3NTE2MDhFNTMyNTUxNjcwMDMwMjBFMjdFNTE2RjQ1MjMyRTUyNjU0N0ZGRjcwOTUKKzo0MDBEMDYwMDE3RTUyQTU1MTY2MDM0OTA3Rjk2RTBGRUU1MTZDNDU0RjBGNEZERUU1REYwODAyM0JGMjAyMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDMwRTMxMUU0RjUyQTkwN0Y5NkUwRkZFNTE2QzQ1NEYwRkVFRjRFRjBFNTE1MjQzQUY1QzMKKzo0MDBENDYwMDgyRTQzNTE0RjU4M0UwNjAwM0UwMTRGMEU1MTUyNDM0RjU4MkU0MzUxNEY1ODNFMDYwMDNFMDE0RjBFMDYwMDMwMjBFMjc3NDBBRjAxMjAwMzZFRjU0MDFGRkY1MThFNTE1MjQyQ0Y1ODJFNDM1MTRGNTgzRTA2RjYwMDdFNTE4RjEKKzo0MDBEODYwMEYwRTUxNjQyMTMxMjE4RTE4RjE4RTUxNTI0MjdGNTgyRTQzNTE0RjU4M0UwRkZFNTE4NTQxMEZFNkY2MDA2RUVGMEU1MTY0MjEzRTUxNTI0MjhGNTgyRTQzNTE0RjU4M0UwRkZFNTE4NTQ4MEZFNkY2MDA2RUVGMEU1MTY0MjEzODYKKzo0MDBEQzYwMEU1MTUyNDI5RjU4MkU0MzUxNEY1ODNFMEZGRTUxODU0MjBGRTZGNjAxNUVFRjBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAzMEU0MDRFNTE2NDIxM0U1MTUyNDJBRjU4MkU0MzUxNEY1ODNFMEZGRTUxODU0NDBGRTZGNjAxNUVFMjMKKzo0MDBFMDYwMEYwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMzBFNTA0RTUxNjQyMTNFNTE1MjQzMEY1ODJFNDM1MTRGNTgzRTRGMDIyMzAwOTAzMDIwRjI3RTUyNDE0NjAyQTE0NjA0MTE0NjA1ODE0NjA2RjI0MDQ2MDAzMDIwRUU1N0U3QjdGMzEKKzo0MDBFNDYwMEMwNzUxNDdCNzUxNUMwOTA3Rjk4NzQyRUYwNzUxNjAxMTIxMjlDNzUyNDAxMjI3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5ODc0MkRGMDc1MTYwMjEyMTI5Qzc1MjQwMjIyN0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTg3NDJCMDUKKzo0MDBFODYwMEYwNzUxNjA0MTIxMjlDNzUyNDAzMjI3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0Y5ODc0MjdGMDc1MTYwODEyMTI5Qzc1MjQwNDIyMzAwNDMzQzIwNDUzMTNERkU0RjUxODdFMDA3QjAwNzQyRTI1MThGOUVFMzQwMEZBMTIxMUE2Q0EKKzo0MDBFQzYwMEZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDNEQjkwN0ZDMzc0MDNGMDc1MjQwNTIyRTUzNjYwM0JENTM2MEE1MzEzRUYzMDBBMDREMjA5QzIwQUU0RjUxODdFMDA3QjAwNzQzNTI1MThGOUVFMzQwMEZBQ0MKKzo0MDBGMDYwMDEyMTFBNkZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDNEQjkwN0ZDMzc0MDNGMEU0RjUyNDIyRTRGNTE5N0UwMDdCMDFFNTE1MjUxOUY5RUUzNTE0RkFFNDEyMTFFQzA1MTlFNTE5QjQzQ0U4RTUxNTI0RkEKKzo0MDBGNDYwMDM1RjU4MkU0MzUxNEY1ODM3NDAxRjA5MDc4NDE3NEYzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzNzQwM0YwOTBDMDAwRjA3RjBDRTRGRDEyMTY2QjdGMTBFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRUZGMDEyMTVEQjkwNzg0MTc0NjQKKzo0MDBGODYwMEYyRjA3RjAxRTUxNTI0MzZGNTgyRTQzNTE0RjU4M0VGRjA0NDA2OTBDMDAwRjA5MDc4NDE3NEY0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzNzQ4MEYwOTBDMDAwRjAwRkU0RkQxMjE2NkJFNEZGN0VBM0U1MTUyNDMyRjU4MkU0ODYKKzo0MDBGQzYwMDM1MTRGNTgzRUVGMEZEMTIxNjZCOTA3ODQxNzRGMUYwOTBDMDAwRTRGMDdGMDU3RDdGMTIxNjZCN0YwMTEyMTU0MzdGMDM3RDA3MTIxNjZCMjI1MzEzM0Y5MDdCRjFFMDMwRTMxNjdFN0I3RkMwNzUxNDdCNzUxNUMwOTA3Rjk4NkIKKzo0MDEwMDYwMDc0MkVGMDc1MTYwMTEyMDhENzkwN0MzMUUwMzBFMzE2N0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTg3NDJERjA3NTE2MDIxMjA4RDc5MDdDNzFFMDMwRTMxNjdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk4NzQyQkYwNzUxNjA0QzQKKzo0MDEwNDYwMDEyMDhENzkwN0NCMUUwMzBFMzE2N0U3QzdGODA3NTE0N0M3NTE1ODA5MDdGOTg3NDI3RjA3NTE2MDgxMjA4RDcwNTEyRTUxMjU0MEZGNTE3NzAwNDEyMTExQzIyRTUxN0I0MDEwNDEyMEM4QzIyOTA3RkMyRTAyMEUxMDhFNTEzNzAKKzo0MDEwODYwMDYwMDQxMjBFMjgyMjEyMEM4QzIyNzg3RkU0RjZEOEZENzU4MTM3MDIxMEQ3MDIxMjI0RTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0M0NTQwRjQ0MjBDODgzNDAwNEY0RDcKKzo0MDEwQzYwMDU2ODAwMTQ2RjZERkU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDE4NDVFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0ZBRTQ5M0EzRjhFNDkzQTNDOEM1ODkKKzo0MDExMDYwMDgyQzhDQUM1ODNDQUYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFOTA3RkQyRTAzMEUxMDMwMjExQTVDMjA5OTA3QjQwRTAxNDYwMjYxNDYwM0IxNDYwNTAyNDgzNjA2NDI0ODA3MDYzN0U3QjdGQzA3NTE0N0I3NTE1M0EKKzo0MDExNDYwMEMwOTA3Rjk4NzQyRUYwNzUxNjAxMTIwMDQ2ODA0QjdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk4NzQyREYwNzUxNjAyMTIwMDQ2ODAzMzdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk4NzQyQkYwNzUxNjA0MTIwMDQ2ODAxQjdFMkIKKzo0MDExODYwMDdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0Y5ODc0MjdGMDc1MTYwODEyMDA0NjgwMDMxMjE3NTFFNDkwN0ZEM0YwMjJCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwQ0U1ODIyOUY1QjgKKzo0MDExQzYwMDgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwQjYKKzo0MDEyMDYwMDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERjkwN0ZBRUUwRkZEMzkyMDBFNDMzRkVFRjRFRjBEMkU4NDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGQzIKKzo0MDEyNDYwMEYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRjc0MDFGMDkwN0ZBRTc0MERGMEQyQUZEMjBCMTIxODA5QzIwMUU0RjUyQkY1MzFDMjA3QzIwMjc1MjkwRjkwN0ZEOEUwNjUyNjYwMDY3NTMyMEZFMEY1MjYzMDAyMDMxMjBGOEMKKzo0MDEyODYwMEVGMzAwMTA3QzIwMTEyMDYzRjgwRTIzMDA4REZDMjA4MTIxODJBODBEODIyRTUxMzU1MTY2MDZBRTUxNTI0M0FGNTgyRTQzNTE0RjU4M0UwNzA1Q0U1MTZGNDUyMTNFNTE1MjQyNkZGRTQzNTE0RkVFNEZEMEZFRkFBMDY3MDAxQzcKKzo0MDEyQzYwMDBFMTRGNTgyOEE4M0UwRkM3NDgwMkRGNTgyRTQzNDdCRjU4M0VDRjAwREJEMEJFMjkwN0ZDMzc0MEJGMEU1MTUyNDNBRjU4MkU0MzUxNEY1ODM3NDEwRjBFNTE1MjQyRUY1ODJFNDM1MTRGNTgzRTRGMEU1MTUyNDJGRjU4MkU0MjMKKzo0MDEzMDYwMDM1MTRGNTgzRTRGMDIyRTUyODQ1Mjc2MDU3QUUyN0FGMjhEM0VGOTQ0MEVFOTQwMDQwMDQ3RTAwN0Y0MEMzRTUyODlGRjUyOEU1Mjc5RUY1MjdFNEZERURDMzlGRTQ5RTUwMUY4NTM0ODI4NTMzODNFMEZDNzQwMDJERjU4MkU0QkEKKzo0MDEzNDYwMDM0N0ZGNTgzRUNGMDBEMDUzNEU1MzQ3MDAyMDUzMzgwREE5MDdGQTk3NDAxRjA5MDdGQUNFMDQ0MDFGMDkwN0ZCNUVGRjAyMjkwN0ZBQ0UwNTRGRUYwRTQ5MDdGQjVGMDIyOTA3Rjk4NzQwRkYwRTQ5MDc4NEFGMDkwN0Y5NEYwRTEKKzo0MDEzODYwMDkwN0Y5RDc0RkZGMEU0OTA3Rjk3RjA5MDc4NDFGMDkwN0Y5M0YwOTA3RjlDNzRGRkYwMzAwMDA3RTUyOTU0MEZGRjgwMDI3RjAwOTA3Rjk2RUZGMDkwN0Y5ODc0MUZGMEU0OTA3Rjk1RjA5MDdGOUU3NDNGRjA5MDdGOTg3NERGQUQKKzo0MDEzQzYwMEYwOTA3RjkyRTA1NEZERjAyMjhGMTkwNTJERTUyREFFMkM3MDAyMDUyQzE0RjU4MjhFODNFNTE5RjAxMjE4RUYwNTJERTUyREFDMkM3MDAyMDUyQzE0RjU4MjhDODNFRkYwMTUyM0U1MjM2MDFGRTUxNTI0MzhGNTgyRTQzNTE0MTYKKzo0MDE0MDYwMEY1ODNDMDgzQzA4MkUwRkUxMjE4RDM4RjE5RUU0RkQwODJEMDgzRjA4MEI1MjI5MDc4NDFFNTExRjA5MDc4NEY3NEMwRjBFNDkwNzg1MEYwRTUyQzkwNzg1MUYwQUUyQ0U1MkQ5MDc4NTJGMDkwNzg1NEU1MjNGMDkwNzg1Nzc0NzAKKzo0MDE0NDYwMDA0RjA5MDdGRTJFMDQ0MTBGMEUwNTRGN0YwRTQ5MDc4NTVGMDkwNzg1NUUwNjBGQTIyOEYxOUU0RjUxQTc1MUJGRjc1MUMxOTc1MUQ4NkFCMUJBQTFDQTkxRDkwMDAwMTEyMTFCRkI0MDMxREFGMUEwNTFBRUZCNTE5MDEyMjEyRjkKKzo0MDE0ODYwMDExQTY3RTAwMjlGRkVFM0FBOTA3NzUxQkZGRjUxQzg5MUQ4MEQ0N0IwMDdBMDA3OTAwMjI5MDc4NDFFNTExRjBFNTJDOTA3ODRGRjBBRTJDRTUyRDkwNzg1MEYwOTA3ODUxNzRDMEYwRTQ5MDc4NTJGMDkwNzg1NEU1MjNGMDkwN0QKKzo0MDE0QzYwMDc4NTc3NDA0RjBFNDkwNzg1NUYwOTA3ODU1RTA2MEZBMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMEYxNDYwMTMxNDYwMTc4MDAwOTA3RkM3RUZGMDgwMTM5MDdGQzlFRkYwODAwQzkwN0ZDQkVGRjA4MDA1OTA3RkNERUQKKzo0MDE1MDYwMEVGRjBFNTE2NDIyQTIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDBGMTQ2MDEzMTQ2MDE3ODAwMDkwN0ZCN0VGRjA4MDEzOTA3RkI5RUZGMDgwMEM5MDdGQkJFRkYwODAwNTkwN0ZCREVGRjBFNTE2NDIyQTIyQUUwN0U0QTQKKzo0MDE1NDYwMEZGRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNTQ3RkZEMTIxNjZCOTA3ODQxNzRGMUYwOTBDMDAwRUVGMEU0RTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNDQ4MEZEMTIxNjZCMjJDMEUwQzBGMEMwODNDMDgyQzA4NUMwODRDMDg2QTEKKzo0MDE1ODYwMDc1ODYwMEMwRDA3NUQwMDg1MzkxRUY5MDdGQTk3NDAxRjAxMjEzMEREMEQwRDA4NkQwODREMDg1RDA4MkQwODNEMEYwRDBFMDMyOTA3ODQxNzRGM0YwOTBDMDAwNzRCRkYwOTA3ODQxNzRGMUYwOTBDMDAwRUZGMDkwNzg0MTc0QTgKKzo0MDE1QzYwMEYzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjAyMjkwNzg0MTc0RjNGMDkwQzAwMDc0QkZGMDkwNzg0MTc0RjJGMDkwQzAwMEVGRjA5MDc4NDE3NEYzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGRDcKKzo0MDE2MDYwMDkwQzAwMEYwMjI5MDc4NDE3NEYzRjA5MEMwMDA3NEJGRjA5MDc4NDE3NEY0RjA5MEMwMDBFRkYwOTA3ODQxNzRGM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwMjI5MDc4NDE3NEYzRjA5MEMwMDA3NEJGMTYKKzo0MDE2NDYwMEYwOTA3ODQxNzRGNkYwOTBDMDAwRUZGMDkwNzg0MTc0RjNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDIyOTA3ODQxNzRGM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwOTA3ODQxMkYKKzo0MDE2ODYwMDc0RjdGMDkwQzAwMEVGRjA5MDc4NDE3NEY1RjA5MEMwMDBFREYwMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMEUxNDYwMTExNDYwMTQ4MDAwOTA3RkM2RTBGRjIyOTA3RkM4RTBGRjIyOTA3RkNBRTBGRjIyOTA3RkNDMTkKKzo0MDE2QzYwMEUwRkYyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwRTE0NjAxMTE0NjAxNDgwMDA5MDdGQjZFMEZGMjI5MDdGQjhFMEZGMjI5MDdGQkFFMEZGMjI5MDdGQkNFMEZGMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMDAKKzo0MDE3MDYwMDBFMTQ2MDExMTQ2MDE0ODAwMDkwN0ZDN0UwRkYyMjkwN0ZDOUUwRkYyMjkwN0ZDQkUwRkYyMjkwN0ZDREUwRkYyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2QkYKKzo0MDE3NDYwMEQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdCNDFFMEY1MzY0MzEzMTBBM0UwNjAwOTkwN0ZENzc0MTdGMDc0MzdGMDkwN0I0M0UwRjUzN0EzRTA1NEYwRjUyOUUwNjAwMkQyMEEyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1QTYKKzo0MDE3ODYwMDg2MDBEMjAxNTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjA4NTM5MUVGOTA3RkFCNzQwOEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwM0MKKzo0MDE3QzYwMDMyMTIxOEI3QUUwNzEyMThCN0FEMDdFRTZENjAxMDEyMThCN0FFMDdFRTZENjAwNzEyMThCN0FEMDc4MEVDQUYwNjIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwNDgKKzo0MDE4MDYwMDAwMDAyMjkwN0ZENkUwNDQwNEYwRTA0NDA4RjAzMDBCMDRFMDQ0MDJGMDdGRjQ3RTAxMTIxODYwOTA3RkQ2RTA1NEY3RjAyMjEyMTM3NzEyMTdGOTkwN0ZENkUwMzBFNzBBN0YwNTdFMDAxMjE4NjAxMjE4OTMxMjBBQ0UyMjAzNzgKKzo0MDE4NDYwMDM1ODAwMDAwMDMyRTgxMDAwMEMxODVDMTgxQzEwOEMxMDBDMTA2MDEyMjAwMDEyNDAwMDA4RTE3OEYxOEU1MTgxNTE4QUUxNzcwMDIxNTE3NEU2MDA4MTIxN0U4MTIxN0U4ODBFQjIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwN0UKKzo0MDE4ODYwMDA0RkY0NDEwOTA3RkQ3RjBFRjQ0MzBGMDIyOTA3RkQ2RTA0NDAxRjA3RjBEN0UwMDEyMTg2MDkwN0ZENkUwNTRGRUYwMjJFNTExMjQwMjkwNzg0MUYwOTBDMDAwRTBGRjIyRTUxMTI0MDM5MDc4NDFGMDkwQzAwMEUwRkYyMkU1OTcKKzo0MDE4QzYwMDExMjQwNDkwNzg0MUYwOTBDMDAwRTBGRjIyRTUxMTI0MDU5MDc4NDFGMDkwQzAwMEUwRkYyMkU1MTEyNDA2OTA3ODQxRjA5MEMwMDBFMEZGMjI5MDc4NDFFNTExRjA5MEMwMDBFMEZGMjI1M0Q4RUYzMjAwMTIwMTEwMDFGRkZGREUKKzo0MDE5MDYwMEZGNDBDRDA2MkEwMTAwMDAwMTAyMDAwNDA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwNUIKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjMKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDI0MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDEwMDJEMDAzNDAwMzkwMDU3MDA0QzAwNDMwMDIyMDM1NTAwNTMwMDQxMDAyRDAwMzYwMDM1MDAyMDAwQjUKKzo0MDFBMDYwMDMyMDAzMDAwMzAwMDMzMDA2QTAwNjEwMDZFMDAzMzAwMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKKzo0MDFBNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzo0MDFBODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKKzo0MDFBQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxNzc5MDAwMjFCMzEKKzoxNTFCMDYwMDA0MDAwMjE3MjcwMDAyMTdBMDAwMDIxQjEwMDAwMjFCMTQwMDAyMTU3OEUwCis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMworCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisKK3N0YXRpYyBjaGFyIHRoZUZpcm13YXJlRGF0ZTQ5W10gPQorICAgICAgICAiMDIvMTQvMjAwMiAgMDI6MzdwICAgICAgICAgICAgICAxOSwzNDcgVVNBNDkiOworCitzdGF0aWMgY2hhciB0aGVGaXJtd2FyZURhdGU2NVtdID0KKyAgICAgICAgIjAxLzMxLzIwMDMgIDA5OjM0YSAgICAgICAgICAgICAgMTksMzMxIFVTQTY1IjsKKwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuSEVYIGIvZmlybXdhcmUva2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmY2YwMmIKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5IRVgKQEAgLTAsMCArMSw4MyBAQAorOjAzMDAwMDAwMDIwMjAwRjkKKzowNDAwMjMwMDAyMDU1RjAwNzMKKzowNDAwNDMwMDAyMDEwMDAwQjYKKzowNTAwMzAwMDAwMDAwMDAwMDBDQgorOjEwMDEwMDAwMDIwMjk2MDAwMjAwMDAwMDAyMDAwMDAwMDIwMDAwMDA0RgorOjEwMDExMDAwMDIwMDAwMDAwMjAwMDAwMDAyMDAwMDAwMDIwMDAwMDBENworOjEwMDEyMDAwMDIwMDAwMDAwMjAwMDAwMDAyMDQ2MTAwMDIwNDg5MDBENQorOjEwMDIwMDAwNzU4MTVFRTRGNTMyRjUzM0Y1MzBGNTMxRjUzNEMyMDAzMQorOjEwMDIxMDAwQzIwMUE5MDA3NEZFOTAxMDAwRjBBM0Q5RkM3NEZEOTBGNworOjEwMDIyMDAwMTEwMEYwQTNEOUZDNzQwMjkwN0Y5REYwNzQwMDkwN0ZDMAorOjEwMDIzMDAwOTdGMDc0ODY5MDdGOUVGMDkwN0Y5NTc0MDNGMDkwN0Y4NgorOjEwMDI0MDAwQUZFMEQyRTBGMDc0MDE5MDdGQUJGMDkwN0ZBRUYwOTAyMQorOjEwMDI1MDAwN0ZBQzc0MDRGMDkwN0ZBRDc0MDRGMDkwN0ZDOUYwNzRBQgorOjEwMDI2MDAwODQ5MDdGOThGMDc0MDBGNTk4NzVDODMwN0IwNTkxMjBENAorOjEwMDI3MDAwRDJDQTc1OTg1MEQyRThEMkFGRDJBQzc0MDBGNTg2OTA0RAorOjEwMDI4MDAwN0ZENjc0MDJGMDc5MkU3QTAwN0IwMERCRkVEQUZBRDk5MQorOjEwMDI5MDAwRjY3NDA2RjA4MEZFQzA4NkMwODJDMDgzQzA4NEMwODUyQworOjEwMDJBMDAwQzBFMEU1OTFDMkU0RjU5MTkwN0ZBQjc0MDFGMDkwN0ZERQorOjEwMDJCMDAwRThFMEY5QTNFMEZBQTNFMEZCQTNFMEZDRTk1NDYwQjRCMgorOjEwMDJDMDAwMDAwMzAyMDMzOUI0NDA2RUJBMDAwQjEyMDQyMDQwMDM0RAorOjEwMDJEMDAwMDIwNDAyMDIwNDBBQkEwMTAzMDIwNDBBQkEwMjAzMDI3NworOjEwMDJFMDAwMDQwQUJBMDMwMzAyMDQ0NEJBMDQxRUJCMDAwQTkwN0Y0NgorOjEwMDJGMDAwOTVFMDQ0MDJGMDAyMDQwMjkwN0Y5OEUwNTRGREYwOTBGMworOjEwMDMwMDAwN0Y5NUUwNTRGREYwMDIwNDAyQkEwNTAzMDIwNDBBQkEyNAorOjEwMDMxMDAwMDYxOUJCMDAwOEU1MzNEMzk1MzIwMjAzREVCQjAxMDhBMgorOjEwMDMyMDAwRTUzMkMzOTUzMzAyMDNERTAyMDQwQUJBMDcwNThCMzRCMworOjEwMDMzMDAwMDIwNDAyMDIwNDBBMDIwNDBBQkEwMDIwQjk4MDEwOTBFMgorOjEwMDM0MDAwN0YwMEU0RjBBM0YwOTA3RkI1NzQwMkYwMDIwNDAyQjlEQworOjEwMDM1MDAwODIwMjgwRUJCOTgxMDI4MEU2MDIwNDBBQkEwMTBGQkI3NworOjEwMDM2MDAwMDAwMzAyMDQwQUJCMDEwMzAyMDQwMjAyMDQwQUJBMDNFNgorOjEwMDM3MDAwMEZCQjAwMDMwMjA0MEFCQjAxMDMwMjA0MDIwMjA0MEFDOQorOjEwMDM4MDAwQkEwNjU2QkMwMTBGOTA3RkQ0NzQwNkYwOTA3RkQ1NzRFNgorOjEwMDM5MDAwMTJGMDAyMDQwMkJDMDIxMkJCMDA2RjkwN0ZENDc0MDZGQworOjEwMDNBMDAwRjA5MDdGRDU3NDI0RjAwMjA0MDJCQzAzMjk3NDA0QzNDNgorOjEwMDNCMDAwOUI0MDU3NjA1NUVCMkI5MDA2NDQyNTgyRjU4Mjc0MDBENAorOjEwMDNDMDAwMzU4M0Y1ODNFMEY5QTNFMEZBOTA3RkQ0RTlGMDkwN0ZEQworOjEwMDNEMDAwRDVFQUYwMDIwNDAyMDIwNDBBQkEwODBGNzQwMTkwN0YwMQorOjEwMDNFMDAwMDBGMDc0MDE5MDdGQjVGMDAyMDQwMkJBMDkwMzAyMDQyMAorOjEwMDNGMDAwMDJCQTBBMDU3NDAwMDIwM0RFQkEwQjAzMDIwNDAyMDIwOQorOjEwMDQwMDAwMDQwQTkwN0ZCNDc0MDJGMDgwMDk5MDdGQjRFMDQ0MDE0NAorOjEwMDQxMDAwRjA4MDAwRDBFMEQwODVEMDg0RDA4M0QwODJEMDg2MzJFNgorOjEwMDQyMDAwRUIyMEU3MUVDMzk0MEE1MDE5RUIyMzI0RkVGNTgyNzRENworOjEwMDQzMDAwMDUzNDAwRjU4M0UwRjVDQkY1Q0RBM0UwRjVDQUY1Q0NBNgorOjEwMDQ0MDAwQzMyMkQzMjJCOTQxMTFFQjY0RkY1NDg0RkI5MDdGOThGRgorOjEwMDQ1MDAwRTA1NDdCNEJGMDAyMDQwMjkwN0Y5QkUwNjRGRjAyMDNCOAorOjEwMDQ2MDAwREVDMDg2QzA4MkMwODNDMDg0QzA4NUMwRTBFNTkxQzI4MgorOjEwMDQ3MDAwRTRGNTkxOTA3RkE5NzQwNEYwMTIwNUEwRDBFMEQwODUzNgorOjEwMDQ4MDAwRDA4NEQwODNEMDgyRDA4NjMyQzA4NkMwODJDMDgzQzA2MAorOjEwMDQ5MDAwODRDMDg1QzBFMEU1OTFDMkU0RjU5MTkwN0ZBQTc0MDQyMAorOjEwMDRBMDAwRjA5MDdGQzlFMEY5RTRGNTg2OTA3REMwNzU4NTEwODVGMAorOjEwMDRCMDAwMzI4NEUwMDU4NjA1ODRGMEU1ODRCNTMzMDI4MDA5MDVDMQorOjEwMDRDMDAwMzIwNTg2QTNEOUVDODAwMDkwN0ZDOUYwQjEzMUQwRTAyRAorOjEwMDREMDAwRDA4NUQwODREMDgzRDA4MkQwODYzMkU0RjU4NjkwN0ZEOAorOjEwMDRFMDAwQkNFMDIwRTE0QjkwN0QwMEU1MzJGMEEzRTUzM0YwQTNDMgorOjEwMDRGMDAwRTUzMEYwQTNFNTMxRjBBM0U0MzAwMDAxMDRGMEEzMDVGQQorOjEwMDUwMDAwODY5MDEwMDA3OTEwRTBBMzA1ODZGMEEzMDU4NkQ5RjY0MQorOjEwMDUxMDAwMDU4Njc0RkNGMEEzMDU4NjkwMTEwMDc5MTBFMEEzMDUxMAorOjEwMDUyMDAwODZGMEEzMDU4NkQ5RjZFNEY1ODY5MDdGQkQ3NDI2RjBBMworOjEwMDUzMDAwMjIyMDAwMTNFNTMyQjUzMzAxMjIwNTMzNzU4MzEwODU3RgorOjEwMDU0MDAwMzM4MkUwRjU5OUQyMDA3NDAwQjUzNDAxMjJFNTMzRDM0QgorOjEwMDU1MDAwOTUzMkMzOTUzNDQwRjU3NTM0MDBEMjAxMDIwNUEwQzAzMAorOjEwMDU2MDAwODZDMDgyQzA4M0MwODRDMDg1QzBFMDMwOTkwN0MyOTkyQworOjEwMDU3MDAwQzIwMDEyMDUzNDMwOTgwNTEyMDU4QUMyOThEMEUwRDAyNgorOjEwMDU4MDAwODVEMDg0RDA4M0QwODJEMDg2MzI3NTgzMTE4NTMwODIyNQorOjEwMDU5MDAwMDU4MkU1OTlGMEU1ODJCNTMxMDEyMjA1MzBCMUEwMjI0RQorOjEwMDVBMDAwOTA3RkI4RTAyMEUxMzgyMDAxMzZFNTMwQjUzMTAxMjJGNgorOjEwMDVCMDAwRTRGNTg2NzU4MzExMDU4NjkwN0UwMEYwQTMwNTg2NzlBMworOjEwMDVDMDAwMDFFNTMwQjUzMTAyODAxMDA1MzE4NTMxODJFMDA1ODZDNAorOjEwMDVEMDAwRjBBMzA1ODYwOUI5NDBFOTkwN0ZCOUU5NjAwMUYwMjJFRQorOjEwMDVFMDAwQzIwMUU0RjU4NjkwN0UwMDc0MDFGMEEzNzQwMkYwOTBERAorOjEwMDVGMDAwN0ZCOUYwMjJDMjk5RjU5OTMwOTlGREMyOTkyMkU1NUU0MgorOjEwMDYwMDAwRjYzQ0ZEOEZGRUM4RkY2NEZGQjJGRkQ5RkZFREZGRjM5QworOjEwMDYxMDAwRkZGQTEyMDEwMDAxRkZGRkZGNDBDRDA2MDQwMTg5QUI4NAorOjEwMDYyMDAwMDEwMjAzMDEwOTAyMjAwMDAxMDEwMDgwMzIwOTA0MDBENworOjEwMDYzMDAwMDAwMkZGRkZGRjAwMDcwNTgyMDM0MDAwMDEwNzA1MDJEQgorOjEwMDY0MDAwMDI0MDAwMDAwNjRDMDY1MDA2NzIwNkEwMDQwMzAwMDA5QgorOjEwMDY1MDAwMjIwMzQxMDA0MzAwNEQwMDQ1MDAyMDAwNzUwMDczMDA1NworOjEwMDY2MDAwNjIwMDIwMDA3NzAwNjkwMDY0MDA2NzAwNjUwMDc0MDA4NAorOjEwMDY3MDAwNzMwMDJFMDM0MTAwNDMwMDREMDA0NTAwMjAwMDU1MDA0QgorOjEwMDY4MDAwNTMwMDQyMDAyMDAwNzMwMDY1MDA3MjAwNjkwMDYxMDBBMQorOjEwMDY5MDAwNkMwMDIwMDA3NzAwNjkwMDY0MDA2NzAwNjUwMDc0MDA0QQorOjA2MDZBMDAwMDYwMzM0MDAzNzAwRTAKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuUyBiL2Zpcm13YXJlL2tleXNwYW5fcGRhL2tleXNwYW5fcGRhLlMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5TCnJlbmFtZSB0byBmaXJtd2FyZS9rZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5TCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuX3BkYS94aXJjb21fcGdzLkhFWCBiL2Zpcm13YXJlL2tleXNwYW5fcGRhL3hpcmNvbV9wZ3MuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YjAwZDcKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuX3BkYS94aXJjb21fcGdzLkhFWApAQCAtMCwwICsxLDg3IEBACis6MDMwMDAwMDAwMjAyMDBGOQorOjA0MDAyMzAwMDIwNTlCMDAzNworOjA1MDAzMDAwMDAwMDAwMDAwMENCCis6MDQwMDQzMDAwMjAxMDAwMEI2Cis6MTAwMTAwMDAwMjAyQkEwMDAyMDAwMDAwMDIwMDAwMDAwMjAwMDAwMDJCCis6MTAwMTEwMDAwMjAwMDAwMDAyMDAwMDAwMDIwMDAwMDAwMjAwMDAwMEQ3Cis6MTAwMTIwMDAwMjAwMDAwMDAyMDAwMDAwMDIwNDg1MDAwMjA0QjkwMDgxCis6MTAwMjAwMDA3NTgxNUVFNEY1MzJGNTMzRjUzMEY1MzFGNTM0QzIwMDMxCis6MTAwMjEwMDBDMjAxQTkwMDc0RkU5MDEwMDBGMEEzRDlGQzc0RkQ5MEY3Cis6MTAwMjIwMDAxMTAwRjBBM0Q5RkM5MDdGOTQ3NEJGRjA5MDdGOTU3NDc3Cis6MTAwMjMwMDBFRkYwNzQxMDkwN0Y5RUYwNzQwMDkwN0Y5OEYwNzQ0MEZGCis6MTAwMjQwMDA5MDdGOURGMDc0MDA5MDdGOTdGMDc0ODI5MDdGOUVGMDc1Cis6MTAwMjUwMDA5MDdGOTU3NDAzRjA5MDdGQUZFMEQyRTBGMDc0MDE5MDRFCis6MTAwMjYwMDA3RkFCRjA5MDdGQUVGMDkwN0ZBQzc0MDRGMDkwN0ZBREU4Cis6MTAwMjcwMDA3NDA0RjA5MDdGQzlGMDc0MDc5MDdGQUZGMDc0MjA5MDAxCis6MTAwMjgwMDA3RjlDRjA3NDgwOTA3Rjk4RjA3NDUzRjU5ODc1QzgzMDE3Cis6MTAwMjkwMDA3QjA1OTE0NEQyQ0E3NTk4NTBEMkU4RDJBRkQyQUM3NEUzCis6MTAwMkEwMDAwMEY1ODY5MDdGRDY3NDAyRjA3OTJFN0EwMDdCMDBEQjExCis6MTAwMkIwMDBGRURBRkFEOUY2NzQwNkYwODBGRUMwODZDMDgyQzA4M0VBCis6MTAwMkMwMDBDMDg0QzA4NUMwRTBFNTkxQzJFNEY1OTE5MDdGQUI3NDM1Cis6MTAwMkQwMDAwMUYwOTA3RkU4RTBGOUEzRTBGQUEzRTBGQkEzRTBGQ0UzCis6MTAwMkUwMDBFOTU0NjBCNDAwMDMwMjAzNURCNDQwNkVCQTAwMEIxMjFGCis6MTAwMkYwMDAwNDQ0NDAwMzAyMDQyNjAyMDQyRUJBMDEwMzAyMDQyRTIxCis6MTAwMzAwMDBCQTAyMDMwMjA0MkVCQTAzMDMwMjA0NjhCQTA0MUVCQjM1Cis6MTAwMzEwMDAwMDBBOTA3Rjk1RTA0NDAyRjAwMjA0MjY5MDdGOThFMDY2Cis6MTAwMzIwMDA1NEZERjA5MDdGOTVFMDU0RkRGMDAyMDQyNkJBMDUwM0Q5Cis6MTAwMzMwMDAwMjA0MkVCQTA2MTlCQjAwMDhFNTMzRDM5NTMyMDIwNDM1Cis6MTAwMzQwMDAwMkJCMDEwOEU1MzJDMzk1MzMwMjA0MDIwMjA0MkVCQTRGCis6MTAwMzUwMDAwNzA1OEIzNDAyMDQyNjAyMDQyRTAyMDQyRUJBMDAyMDY0Cis6MTAwMzYwMDBCOTgwMTA5MDdGMDBFNEYwQTNGMDkwN0ZCNTc0MDJGMEE0Cis6MTAwMzcwMDAwMjA0MjZCOTgyMDI4MEVCQjk4MTAyODBFNjAyMDQyRUQzCis6MTAwMzgwMDBCQTAxMEZCQjAwMDMwMjA0MkVCQjAxMDMwMjA0MjYwMkM0Cis6MTAwMzkwMDAwNDJFQkEwMzBGQkIwMDAzMDIwNDJFQkIwMTAzMDIwNEE4Cis6MTAwM0EwMDAyNjAyMDQyRUJBMDY1NkJDMDEwRjkwN0ZENDc0MDZGMEM0Cis6MTAwM0IwMDA5MDdGRDU3NDVBRjAwMjA0MjZCQzAyMTJCQjAwNkY5MEU1Cis6MTAwM0MwMDA3RkQ0NzQwNkYwOTA3RkQ1NzQ2Q0YwMDIwNDI2QkMwM0QxCis6MTAwM0QwMDAyOTc0MDRDMzlCNDA1NzYwNTVFQjJCOTAwNjhDMjU4MkYzCis6MTAwM0UwMDBGNTgyNzQwMDM1ODNGNTgzRTBGOUEzRTBGQTkwN0ZENEI5Cis6MTAwM0YwMDBFOUYwOTA3RkQ1RUFGMDAyMDQyNjAyMDQyRUJBMDgwRjM1Cis6MTAwNDAwMDA3NDAxOTA3RjAwRjA3NDAxOTA3RkI1RjAwMjA0MjZCQTY5Cis6MTAwNDEwMDAwOTAzMDIwNDI2QkEwQTA1NzQwMDAyMDQwMkJBMEIwMzk3Cis6MTAwNDIwMDAwMjA0MjYwMjA0MkU5MDdGQjQ3NDAyRjA4MDA5OTA3RkFCCis6MTAwNDMwMDBCNEUwNDQwMUYwODAwMEQwRTBEMDg1RDA4NEQwODNEMEY3Cis6MTAwNDQwMDA4MkQwODYzMkVCMjBFNzFFQzM5NDBBNTAxOUVCMjMyNDk2Cis6MTAwNDUwMDA0NkY1ODI3NDA2MzQwMEY1ODNFMEY1Q0JGNUNEQTNFMEQ0Cis6MTAwNDYwMDBGNUNBRjVDQ0MzMjJEMzIyQjk0MTExRUI2NEZGNTQ4MDA1Cis6MTAwNDcwMDBGQjkwN0Y5OEUwNTQ3RjRCRjAwMjA0MjY5MDdGOUJFMDM2Cis6MTAwNDgwMDA2NEZGMDIwNDAyQzA4NkMwODJDMDgzQzA4NEMwODVDMEVECis6MTAwNDkwMDBFMEU1OTFDMkU0RjU5MTkwN0ZBOTc0MDRGMDc0MjA5MDk2Cis6MTAwNEEwMDA3RjlDRjAxMjA1REM3NDIwOTA3RjlDRjBEMEUwRDA4NTFBCis6MTAwNEIwMDBEMDg0RDA4M0QwODJEMDg2MzJDMDg2QzA4MkMwODNDMDMwCis6MTAwNEMwMDA4NEMwODVDMEUwNzQxMDkwN0Y5Q0YwRTU5MUMyRTRGNTkzCis6MTAwNEQwMDA5MTkwN0ZBQTc0MDRGMDkwN0ZDOUUwRjlFNEY1ODY5MENBCis6MTAwNEUwMDA3REMwNzU4NTEwODUzMjg0RTAwNTg2MDU4NEYwRTU4NDNECis6MTAwNEYwMDBCNTMzMDI4MDA5MDUzMjA1ODZBM0Q5RUM4MDAwOTA3RkQwCis6MTAwNTAwMDBDOUYwQjE2RDc0MjA5MDdGOUNGMEQwRTBEMDg1RDA4NDhDCis6MTAwNTEwMDBEMDgzRDA4MkQwODYzMkU0RjU4NjkwN0ZCQ0UwMjBFMUEzCis6MTAwNTIwMDA0QjkwN0QwMEU1MzJGMEEzRTUzM0YwQTNFNTMwRjBBMzc2Cis6MTAwNTMwMDBFNTMxRjBBM0U0MzAwMDAxMDRGMEEzMDU4NjkwMTAwMDNCCis6MTAwNTQwMDA3OTEwRTBBMzA1ODZGMEEzMDU4NkQ5RjYwNTg2NzRGQzJDCis6MTAwNTUwMDBGMEEzMDU4NjkwMTEwMDc5MTBFMEEzMDU4NkYwQTMwNUFECis6MTAwNTYwMDA4NkQ5RjZFNEY1ODY5MDdGQkQ3NDI2RjAyMjIwMDAxMzJDCis6MTAwNTcwMDBFNTMyQjUzMzAxMjIwNTMzNzU4MzEwODUzMzgyRTBGNTBBCis6MTAwNTgwMDA5OUQyMDA3NDAwQjUzNDAxMjJFNTMzRDM5NTMyQzM5NTc2Cis6MTAwNTkwMDAzNDQwRjU3NTM0MDBEMjAxMDIwNURDQzA4NkMwODJDMDRCCis6MTAwNUEwMDA4M0MwODRDMDg1QzBFMDMwOTkwN0MyOTlDMjAwMTIwNTlCCis6MTAwNUIwMDA3MDMwOTgwNTEyMDVDNkMyOThEMEUwRDA4NUQwODREMDlFCis6MTAwNUMwMDA4M0QwODJEMDg2MzI3NTgzMTE4NTMwODIwNTgyRTU5OTg5Cis6MTAwNUQwMDBGMEU1ODJCNTMxMDEyMjA1MzBCMURDMjI3NDEwOTA3RjQ0Cis6MTAwNUUwMDA5Q0YwOTA3RkI4RTAyMEUxM0UyMDAxM0NFNTMwQjUzMTQxCis6MTAwNUYwMDAwMTIyRTRGNTg2NzU4MzExMDU4NjkwN0UwMEYwQTMwNTNGCis6MTAwNjAwMDA4Njc5MDFFNTMwQjUzMTAyODAxMDA1MzE4NTMxODJFMDBGCis6MTAwNjEwMDAwNTg2RjBBMzA1ODYwOUI5NDBFOTc0MTA5MDdGOUNGMDI3Cis6MTAwNjIwMDA5MDdGQjlFOTYwMDFGMDIyQzIwMUU0RjU4NjkwN0UwMDc2Cis6MTAwNjMwMDA3NDAxRjBBMzc0MDJGMDkwN0ZCOUYwMjJDMjk5RjU5OTg5Cis6MTAwNjQwMDAzMDk5RkRDMjk5MjJFNTVFRjYzQ0ZEOEZGRUM4RkY2NDNECis6MTAwNjUwMDBGRkIyRkZEOUZGRURGRkYzRkZGQTEyMDEwMDAxRkZGRjI4Cis6MTAwNjYwMDBGRjQwQ0QwNjA0MDE4OUFCMDEwMjAzMDEwOTAyMjAwMDBECis6MTAwNjcwMDAwMTAxMDA4MDMyMDkwNDAwMDAwMkZGRkZGRjAwMDcwNUFFCis6MTAwNjgwMDA4MjAzNDAwMDAxMDcwNTAyMDI0MDAwMDAwNjk0MDY5ODFDCis6MTAwNjkwMDAwNkJBMDZFODA0MDMwMDAwMjIwMzQxMDA0MzAwNEQwMEFGCis6MTAwNkEwMDA0NTAwMjAwMDc1MDA3MzAwNjIwMDIwMDA3NzAwNjkwMDlCCis6MTAwNkIwMDA2NDAwNjcwMDY1MDA3NDAwNzMwMDJFMDM0MTAwNDMwMDZFCis6MTAwNkMwMDA0RDAwNDUwMDIwMDA1NTAwNTMwMDQyMDAyMDAwNzMwMEZCCis6MTAwNkQwMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA3NzAwNjkwMDBECis6MEUwNkUwMDA2NDAwNjcwMDY1MDA3NDAwMDYwMzM0MDAzNzAwRjQKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwveGlyY29tX3Bncy5TIGIvZmlybXdhcmUva2V5c3Bhbl9wZGEveGlyY29tX3Bncy5TCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL3VzYi9zZXJpYWwveGlyY29tX3Bncy5TCnJlbmFtZSB0byBmaXJtd2FyZS9rZXlzcGFuX3BkYS94aXJjb21fcGdzLlMKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tvcmcvazEyMTIuZHNwLmloZXggYi9maXJtd2FyZS9rb3JnL2sxMjEyLmRzcC5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxNTE5OTcKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rb3JnL2sxMjEyLmRzcC5paGV4CkBAIC0wLDAgKzEsOTg3IEBACis6MTAwMDAwMDAwMUZGMThGRkY1RkZDRkZGMDBGRjAwRkZGRkZGMDBGRjFDCis6MTAwMDEwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkVBCis6MTAwMDIwMDAyNkZGMThGRkZGRkYwRkZGMDBGRjAwRkZGRkZGMDBGRjhECis6MTAwMDMwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkNBCis6MTAwMDQwMDAwMEZGMEFGRkZGRkYxRkZGMDBGRjAwRkZGRkZGMDBGRjkxCis6MTAwMDUwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkFBCis6MTAwMDYwMDAwMEZGMEFGRkZGRkYxRkZGMDBGRjAwRkZGRkZGMDBGRjcxCis6MTAwMDcwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjhBCis6MTAwMDgwMDAwMEZGMEFGRkZGRkYxRkZGMDBGRjAwRkZGRkZGMDBGRjUxCis6MTAwMDkwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjZBCis6MTAwMEEwMDAzOEZGMThGRkZGRkZERkZGMDBGRjAwRkZGRkZGMDBGRjJCCis6MTAwMEIwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjRBCis6MTAwMEMwMDAwMEZGMEFGRkZGRkYxRkZGMDBGRjAwRkZGRkZGMDBGRjExCis6MTAwMEQwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjJBCis6MTAwMEUwMDAwM0ZGM0NGRkZGRkZGQ0ZGNjdGRjQwRkZGRkZGQzBGRjc4Cis6MTAwMEYwMDBGRkZGOTNGRkZGRkZFMEZGMDBGRjBDRkZGRkZGMENGRjgwCis6MTAwMTAwMDAwQ0ZGMENGRkZGRkYwMEZGMzBGRjBDRkZGRkZGMDBGRkE1Cis6MTAwMTEwMDAwRkZGNDBGRkZGRkZGNEZGNDdGRjgwRkZGRkZGMEFGRkQ1Cis6MTAwMTIwMDA4MkZGMjNGRkZGRkYwRkZGOERGRjkzRkZGRkZGN0FGRjhCCis6MTAwMTMwMDA4REZGODNGRkZGRkY3MEZGNDdGRjkwRkZGRkZGMDBGRjcyCis6MTAwMTQwMDAwMEZGNDhGRkZGRkYwNEZGQTBGRjIzRkZGRkZGMEZGRjlCCis6MTAwMTUwMDA0NkZGOTBGRkZGRkY2QUZGMDBGRjBDRkZGRkZGMjBGRjNECis6MTAwMTYwMDAwMEZGMDRGRkZGRkYxQ0ZGMDBGRjA0RkZGRkZGMUNGRjU5Cis6MTAwMTcwMDAwMEZGMDRGRkZGRkYxQ0ZGMDBGRjA0RkZGRkZGMUNGRjQ5Cis6MTAwMTgwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjUxCis6MTAwMTkwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjQxCis6MTAwMUEwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjMxCis6MTAwMUIwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjIxCis6MTAwMUMwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjExCis6MTAwMUQwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjAxCis6MTAwMUUwMDA3MkZGMUNGRkZGRkY1RkZGMDJGRjQwRkZGRkZGNDBGRkFBCis6MTAwMUYwMDAxMUZGOTBGRkZGRkYyMEZGMDBGRjQ4RkZGRkZGMDBGRjAwCis6MTAwMjAwMDA4QkZGOTNGRkZGRkYyMEZGMDBGRjQwRkZGRkZGMDBGRjdBCis6MTAwMjEwMDA4NkZGOTNGRkZGRkY3MEZGOEJGRjkzRkZGRkZGMzBGRjExCis6MTAwMjIwMDA4REZGOTNGRkZGRkY0MEZGMDJGRjkxRkZGRkZGODBGRjY1Cis6MTAwMjMwMDAwMkZGOTFGRkZGRkY5MEZGOERGRjkzRkZGRkZGQzBGRkM1Cis6MTAwMjQwMDA0NkZGOTBGRkZGRkYyMEZGOERGRjkzRkZGRkZGRDBGRkQyCis6MTAwMjUwMDAwMEZGNDhGRkZGRkYwMEZGOEJGRjkzRkZGRkZGNDBGRjAyCis6MTAwMjYwMDBGRkZGNDdGRkZGRkZGMEZGOERGRjkzRkZGRkZGRTBGRjYyCis6MTAwMjcwMDAwMEZGMzRGRkZGRkYxN0ZGMDBGRjM4RkZGRkZGMTdGRkVFCis6MTAwMjgwMDA4MEZGMzdGRkZGRkYwMkZGODRGRjNCRkZGRkZGMDJGRkZFCis6MTAwMjkwMDAwMkZGMzRGRkZGRkY0QUZGMDJGRjM4RkZGRkZGNEFGRjY0Cis6MTAwMkEwMDAwMUZGMzRGRkZGRkYyQkZGMDFGRjM4RkZGRkZGMkJGRjk0Cis6MTAwMkIwMDA4MEZGNDNGRkZGRkYwMEZGODJGRjkzRkZGRkZGNTBGRjIwCis6MTAwMkMwMDA4MUZGNDNGRkZGRkYyMEZGODJGRjkzRkZGRkZGNjBGRkRGCis6MTAwMkQwMDA4NEZGNDNGRkZGRkYwMEZGODJGRjkzRkZGRkZGNzBGRkRDCis6MTAwMkUwMDA4NUZGNDNGRkZGRkYyMEZGODNGRjkzRkZGRkZGQzBGRjVBCis6MTAwMkYwMDA4MkZGMzdGRkZGRkY4MUZGMDBGRjM0RkZGRkZGODlGRjExCis6MTAwMzAwMDA4OEZGNDNGRkZGRkYwMEZGMDBGRjY4RkZGRkZGMDdGRkJECis6MTAwMzEwMDA4MkZGODNGRkZGRkY2MEZGMDBGRjY4RkZGRkZGMDdGRjEzCis6MTAwMzIwMDA4Q0ZGNDNGRkZGRkYwMEZGMDBGRjY4RkZGRkZGMDdGRjk5Cis6MTAwMzMwMDA4M0ZGODNGRkZGRkZDMEZGMDBGRjY4RkZGRkZGMDdGRjkyCis6MTAwMzQwMDA4QUZGNDNGRkZGRkYwMEZGMDBGRjY4RkZGRkZGMDdGRjdCCis6MTAwMzUwMDA4MkZGODNGRkZGRkY1MEZGMDBGRjY4RkZGRkZGMDdGRkUzCis6MTAwMzYwMDA4RUZGNDNGRkZGRkYwMEZGMDBGRjY4RkZGRkZGMDdGRjU3Cis6MTAwMzcwMDA4MkZGODNGRkZGRkY3MEZGMDBGRjY4RkZGRkZGMDdGRkEzCis6MTAwMzgwMDA4M0ZGMzdGRkZGRkYwMUZGMDBGRjM0RkZGRkZGODlGRkZGCis6MTAwMzkwMDAwMEZGMzRGRkZGRkYyNkZGMzBGRjBDRkZGRkZGMDBGRkQxCis6MTAwM0EwMDAwMEZGNDBGRkZGRkYyNkZGMjBGRjQwRkZGRkZGMDRGRjhECis6MTAwM0IwMDA4MEZGNDFGRkZGRkYwMkZGRTBGRjIwRkZGRkZGMEZGRjc1Cis6MTAwM0MwMDAwMEZGNjhGRkZGRkZCNkZGNjNGRjIyRkZGRkZGMEZGRjg1Cis6MTAwM0QwMDA2MkZGNkFGRkZGRkZBNkZGNjJGRjZBRkZGRkZGQTZGRjQzCis6MTAwM0UwMDAwMEZGNjhGRkZGRkZBNkZGMDBGRjA5RkZGRkZGMDdGRkY5Cis6MTAwM0YwMDA0MEZGNDFGRkZGRkYwMkZGRTBGRjIwRkZGRkZGMEZGRjc1Cis6MTAwNDAwMDAwMEZGNjhGRkZGRkZCNkZGNjNGRjIyRkZGRkZGMEZGRjQ0Cis6MTAwNDEwMDA2MkZGNkFGRkZGRkZBNkZGNjJGRjZBRkZGRkZGQTZGRjAyCis6MTAwNDIwMDAwMEZGNjhGRkZGRkZBNkZGMDVGRjQxRkZGRkZGMDJGRjgwCis6MTAwNDMwMDBFMEZGMjBGRkZGRkYwRkZGOEJGRjkzRkZGRkZGQkJGRkRFCis6MTAwNDQwMDAwMkZGNDFGRkZGRkY4MkZGRTBGRjIwRkZGRkZGMEZGRkUyCis6MTAwNDUwMDA4QkZGOTNGRkZGRkZDQkZGMDVGRjQxRkZGRkZGRTJGRjk1Cis6MTAwNDYwMDBFMEZGMjBGRkZGRkYwRkZGOEJGRjkzRkZGRkZGREJGRjhFCis6MTAwNDcwMDAyMEZGMENGRkZGRkYwMEZGMzBGRjBDRkZGRkZGMDBGRjFFCis6MTAwNDgwMDAwMEZGNDBGRkZGRkYyNkZGMDBGRjQxRkZGRkZGMDJGRkNECis6MTAwNDkwMDBFMEZGMjBGRkZGRkYwRkZGODNGRjkzRkZGRkZGODJGRkJGCis6MTAwNEEwMDA4M0ZGOTNGRkZGRkY5QkZGMDNGRjQxRkZGRkZGMDJGRjVGCis6MTAwNEIwMDBFMEZGMjBGRkZGRkYwRkZGODNGRjkzRkZGRkZGQTJGRjdGCis6MTAwNEMwMDA4M0ZGOTNGRkZGRkZCQkZGMjBGRjBDRkZGRkZGMDBGRjM5Cis6MTAwNEQwMDAwMEZGNDBGRkZGRkYwMEZGNDRGRjkwRkZGRkZGNjBGRkIyCis6MTAwNEUwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjE2Cis6MTAwNEYwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjA2Cis6MTAwNTAwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkY1Cis6MTAwNTEwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkU1Cis6MTAwNTIwMDAyMUZGNDBGRkZGRkY2MEZGNDBGRjkwRkZGRkZGMjBGRjI0Cis6MTAwNTMwMDAwMkZGMzVGRkZGRkYwMEZGMDBGRjM0RkZGRkZGMDhGRjUyCis6MTAwNTQwMDAwMEZGM0NGRkZGRkY4NUZGMEFGRjE0RkZGRkZGQUVGRjI4Cis6MTAwNTUwMDAwMEZGQTBGRkZGRkYwM0ZGMDBGRjM1RkZGRkZGMDBGRkNECis6MTAwNTYwMDAwMEZGMzRGRkZGRkYwOEZGMDJGRjNDRkZGRkZGMDVGRjE2Cis6MTAwNTcwMDAwQUZGMTRGRkZGRkZGRUZGMDBGRkEwRkZGRkZGMDNGRkM2Cis6MTAwNTgwMDAwM0ZGMzVGRkZGRkYwMEZGMDBGRjM0RkZGRkZGMDhGRjAxCis6MTAwNTkwMDAwMkZGM0NGRkZGRkYwNUZGMEJGRjE0RkZGRkZGNEVGRkI1Cis6MTAwNUEwMDAwMEZGQTBGRkZGRkYwM0ZGMDBGRjM1RkZGRkZGMDFGRjdDCis6MTAwNUIwMDA3OEZGMUNGRkZGRkY1RkZGMDNGRjM1RkZGRkZGMDFGRjE5Cis6MTAwNUMwMDA3OEZGMUNGRkZGRkY1RkZGNUJGRjQwRkZGRkZGRjBGRkI3Cis6MTAwNUQwMDBGRkZGOTNGRkZGRkYzMEZGODBGRjQyRkZGRkZGNzBGRjMxCis6MTAwNUUwMDBGRkZGOTNGRkZGRkY2MEZGREZGRjQwRkZGRkZGRjBGRjE0Cis6MTAwNUYwMDBGRUZGOTNGRkZGRkZGMEZGODBGRjQyRkZGRkZGNzBGRjUyCis6MTAwNjAwMDBGRkZGOTNGRkZGRkYyMEZGQzFGRjQxRkZGRkZGODBGRkMwCis6MTAwNjEwMDBGRkZGOTNGRkZGRkZGMEZGMDNGRjNDRkZGRkZGRkNGRjI3Cis6MTAwNjIwMDAwMEZGM0NGRkZGRkYwNEZGMDJGRjNDRkZGRkZGMjNGRjMzCis6MTAwNjMwMDAwMEZGNDhGRkZGRkYwMEZGOEJGRjkzRkZGRkZGMjBGRjNFCis6MTAwNjQwMDA1OUZGMThGRkZGRkZERkZGMDBGRjQ4RkZGRkZGMDBGRjFDCis6MTAwNjUwMDA4QkZGOTNGRkZGRkYyMEZGMThGRjIzRkZGRkZGMEZGRjFDCis6MTAwNjYwMDAwQ0ZGMTRGRkZGRkZFNEZGOEJGRjgzRkZGRkZGMjRGRjVFCis6MTAwNjcwMDAwMEZGMjJGRkZGRkYwRkZGMERGRjE4RkZGRkZGMEZGRjFGCis6MTAwNjgwMDA4QkZGODNGRkZGRkYyMEZGMDBGRjQwRkZGRkZGMTRGRkYyCis6MTAwNjkwMDBFMEZGMjJGRkZGRkYwRkZGMTBGRjE4RkZGRkZGRDBGRjVCCis6MTAwNkEwMDA4QkZGODNGRkZGRkYyMEZGMDBGRjQwRkZGRkZGMjRGRkMyCis6MTAwNkIwMDBFMEZGMjJGRkZGRkYwRkZGMTBGRjE4RkZGRkZGMzBGRkRCCis6MTAwNkMwMDA4QkZGODNGRkZGRkYyMEZGMDBGRjQwRkZGRkZGNDRGRjgyCis6MTAwNkQwMDBFMEZGMjJGRkZGRkYwRkZGMjJGRjE4RkZGRkZGOTBGRjQ5Cis6MTAwNkUwMDA4QkZGODNGRkZGRkYyMEZGMDBGRjQwRkZGRkZGODRGRjIyCis6MTAwNkYwMDBFMEZGMjJGRkZGRkYwRkZGMjJGRjE4RkZGRkZGOTBGRjI5Cis6MTAwNzAwMDAwQ0ZGMThGRkZGRkY2RkZGMDBGRjQwRkZGRkZGMDBGRjIwCis6MTAwNzEwMDA4NkZGOTNGRkZGRkY3MEZGNzZGRjFDRkZGRkZGOUZGRjI5Cis6MTAwNzIwMDA4NkZGODNGRkZGRkY1MEZGODZGRjgzRkZGRkZGNjRGRjBECis6MTAwNzMwMDA2MEZGMjJGRkZGRkYwRkZGNzRGRjE4RkZGRkZGODFGRjI1Cis6MTAwNzQwMDAwMEZGMzVGRkZGRkYwMEZGNjBGRjFDRkZGRkZGN0ZGRjgzCis6MTAwNzUwMDA2MUZGMUNGRkZGRkZBRkZGNzdGRjFDRkZGRkZGQUZGRjM1Cis6MTAwNzYwMDA2M0ZGMUNGRkZGRkY0RkZGMDVGRjM1RkZGRkZGMDBGRjhCCis6MTAwNzcwMDA5MkZGM0JGRkZGRkYwMEZGMDBGRjM0RkZGRkZGMDhGRjdBCis6MTAwNzgwMDAwMEZGMzhGRkZGRkYwOEZGMDBGRjNDRkZGRkZGNjVGRjkyCis6MTAwNzkwMDAwRkZGMTRGRkZGRkY2RUZGMDBGRjYwRkZGRkZGMDNGRjZGCis6MTAwN0EwMDAwMEZGNjBGRkZGRkYxM0ZGMDBGRjc4RkZGRkZGMTNGRjU1Cis6MTAwN0IwMDAwMEZGNzhGRkZGRkYwM0ZGMDVGRjM1RkZGRkZGRTBGRkFFCis6MTAwN0MwMDA3RkZGMzhGRkZGRkYwMEZGMDBGRjM0RkZGRkZGMDhGRjQwCis6MTAwN0QwMDAwMEZGMzhGRkZGRkYwOEZGMDBGRjNDRkZGRkZGNjVGRjQyCis6MTAwN0UwMDAxMEZGMTRGRkZGRkYwRUZGMDBGRjYwRkZGRkZGMDNGRjdFCis6MTAwN0YwMDAwMEZGNjBGRkZGRkYxM0ZGMDBGRjU4RkZGRkZGMTNGRjI1Cis6MTAwODAwMDAwMEZGNThGRkZGRkYwM0ZGNzlGRjFDRkZGRkZGRkZGRjAzCis6MTAwODEwMDAwMEZGMEFGRkZGRkYwRkZGMEVGRjFDRkZGRkZGMUZGRjgwCis6MTAwODIwMDA4REZGODNGRkZGRkZFMEZGNzhGRjIyRkZGRkZGMEZGRjM5Cis6MTAwODMwMDAxNUZGMUNGRkZGRkY4NUZGNzVGRjFDRkZGRkZGOEZGRkVDCis6MTAwODQwMDAwMEZGNDBGRkZGRkY0MEZGOEJGRjkzRkZGRkZGODBGRjk0Cis6MTAwODUwMDAwMkZGNDBGRkZGRkY2MEZGMTFGRjkwRkZGRkZGMjBGRjNGCis6MTAwODYwMDAxNkZGMThGRkZGRkYxRkZGMEVGRjFDRkZGRkZGMUZGRkZDCis6MTAwODcwMDA3NUZGMUNGRkZGRkY4RkZGODBGRjM1RkZGRkZGMDBGRkFECis6MTAwODgwMDAwMEZGMzRGRkZGRkYwOEZGMDBGRjQwRkZGRkZGMDBGRkY2Cis6MTAwODkwMDA0MEZGM0NGRkZGRkYwNUZGMTFGRjE0RkZGRkZGNEVGRjZFCis6MTAwOEEwMDAwMEZGNjhGRkZGRkYwM0ZGODdGRjgzRkZGRkZGRjBGRkVECis6MTAwOEIwMDA4NkZGOTNGRkZGRkY4MEZGOTBGRjM3RkZGRkZGMDBGRkUyCis6MTAwOEMwMDAwMkZGMzRGRkZGRkYwOEZGMDBGRjYwRkZGRkZGMDNGRjkxCis6MTAwOEQwMDA4OUZGOTNGRkZGRkYyMEZGMDBGRjYwRkZGRkZGMDNGRjgzCis6MTAwOEUwMDA4OUZGOTNGRkZGRkYzMEZGMDBGRjYwRkZGRkZGMDNGRjYzCis6MTAwOEYwMDA4OUZGOTNGRkZGRkY0MEZGMDBGRjYwRkZGRkZGMDNGRjQzCis6MTAwOTAwMDA4OUZGOTNGRkZGRkY1MEZGODZGRjk3RkZGRkZGOTBGRkQ4Cis6MTAwOTEwMDAwM0ZGMzVGRkZGRkYwMEZGNjBGRjFDRkZGRkZGN0ZGRkFFCis6MTAwOTIwMDA2M0ZGMUNGRkZGRkY3RkZGMDBGRjQwRkZGRkZGMDBGRjkzCis6MTAwOTMwMDA4REZGOTNGRkZGRkY2MEZGODJGRjkzRkZGRkZGNDBGRkVDCis6MTAwOTQwMDA4NkZGOTNGRkZGRkZBMEZGODNGRjM3RkZGRkZGODBGRkJFCis6MTAwOTUwMDA3NUZGMUNGRkZGRkYxRkZGODNGRjQzRkZGRkZGMDBGRjJCCis6MTAwOTYwMDA4N0ZGOTNGRkZGRkZFMEZGNkFGRjFDRkZGRkZGMEZGRjAyCis6MTAwOTcwMDA0MEZGNDFGRkZGRkYwMEZGOEJGRjkzRkZGRkZGOTBGRjUyCis6MTAwOTgwMDA4MEZGNDFGRkZGRkYwMEZGOEJGRjkzRkZGRkZGQTBGRkYyCis6MTAwOTkwMDA4QkZGODdGRkZGRkY5MEZGN0VGRjM4RkZGRkZGMDBGRjA5Cis6MTAwOUEwMDA0MEZGMzRGRkZGRkYwOEZGMDBGRjM4RkZGRkZGMDhGRjk1Cis6MTAwOUIwMDAwMEZGM0NGRkZGRkY1NUZGMTNGRjE0RkZGRkZGQkVGRkNCCis6MTAwOUMwMDAwMEZGNjBGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMTNGRjVCCis6MTAwOUQwMDAwMEZGNThGRkZGRkYxM0ZGMDBGRjU4RkZGRkZGMDNGRjVCCis6MTAwOUUwMDAwMEZGNjBGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMTNGRjNCCis6MTAwOUYwMDAwMEZGNThGRkZGRkYxM0ZGMDBGRjU4RkZGRkZGMDNGRjNCCis6MTAwQTAwMDAwMEZGNjBGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMTNGRjFBCis6MTAwQTEwMDAwMEZGNThGRkZGRkYxM0ZGMDBGRjU4RkZGRkZGMDNGRjFBCis6MTAwQTIwMDAwMEZGNjBGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMDNGRjBBCis6MTAwQTMwMDA4QkZGOTdGRkZGRkY5MEZGMDVGRjQxRkZGRkZGMDBGRkM4Cis6MTAwQTQwMDA5MkZGNDNGRkZGRkYwMUZGODZGRjkzRkZGRkZGRjBGRkQxCis6MTAwQTUwMDA4NkZGOTNGRkZGRkZFMUZGOERGRjgzRkZGRkZGRTBGRkI2Cis6MTAwQTYwMDA3OEZGMjJGRkZGRkYwRkZGMTVGRjFDRkZGRkZGODVGRjMxCis6MTAwQTcwMDA3NUZGMUNGRkZGRkY4RkZGOERGRjgzRkZGRkZGNDBGRjEwCis6MTAwQTgwMDA3OEZGMjJGRkZGRkYwRkZGNTNGRjE4RkZGRkZGQjRGRkE4Cis6MTAwQTkwMDA3MkZGMUNGRkZGRkYwRkZGMDBGRjQwRkZGRkZGMDBGRjgzCis6MTAwQUEwMDA4QkZGOTNGRkZGRkYzMEZGMDJGRjQwRkZGRkZGNjBGRjYwCis6MTAwQUIwMDAxMUZGOTBGRkZGRkYyMEZGMTZGRjE4RkZGRkZGNEZGRjAyCis6MTAwQUMwMDAzOEZGNDJGRkZGRkY1MEZGNDhGRjkwRkZGRkZGQTBGRkVFCis6MTAwQUQwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjIwCis6MTAwQUUwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjEwCis6MTAwQUYwMDAzMEZGNDBGRkZGRkYwMEZGNDdGRjkwRkZGRkZGNTBGRjY5Cis6MTAwQjAwMDAwMEZGMEFGRkZGRkYwRkZGMUVGRjFDRkZGRkZGMEZGRjhECis6MTAwQjEwMDAyMEZGMUNGRkZGRkZDRkZGMTZGRjE4RkZGRkZGMUZGRjg3Cis6MTAwQjIwMDAwMEZGNDBGRkZGRkYwMEZGNDZGRjkwRkZGRkZGNzBGRjQ5Cis6MTAwQjMwMDAxOEZGMUNGRkZGRkZFRkZGNkFGRjFDRkZGRkZGQkZGRjU3Cis6MTAwQjQwMDA1Q0ZGMUNGRkZGRkY3RkZGMThGRjFDRkZGRkZGRUZGRjk1Cis6MTAwQjUwMDA2N0ZGMUNGRkZGRkYzRkZGNUNGRjFDRkZGRkZGN0ZGRkU2Cis6MTAwQjYwMDAwOEZGNDBGRkZGRkYwMEZGNDZGRjkwRkZGRkZGNzBGRjAxCis6MTAwQjcwMDAxOEZGMUNGRkZGRkZFRkZGNjlGRjFDRkZGRkZGMEZGRkM4Cis6MTAwQjgwMDA1REZGMUNGRkZGRkYyRkZGMThGRjFDRkZGRkZGRUZGRkE0Cis6MTAwQjkwMDA3OUZGMUNGRkZGRkYxRkZGNUNGRjFDRkZGRkZGN0ZGRkI0Cis6MTAwQkEwMDAxOEZGMUNGRkZGRkZFRkZGNUNGRjFDRkZGRkZGN0ZGRjM1Cis6MTAwQkIwMDAxOEZGMUNGRkZGRkZFRkZGNUNGRjFDRkZGRkZGN0ZGRjI1Cis6MTAwQkMwMDAxOEZGMUNGRkZGRkZFRkZGNURGRjFDRkZGRkZGMkZGRjY0Cis6MTAwQkQwMDAxOEZGMUNGRkZGRkZFRkZGNUNGRjFDRkZGRkZGN0ZGRjA1Cis6MTAwQkUwMDAxOEZGMUNGRkZGRkZFRkZGNUNGRjFDRkZGRkZGN0ZGRkY1Cis6MTAwQkYwMDAxOEZGMUNGRkZGRkZFRkZGNUNGRjFDRkZGRkZGN0ZGRkU1Cis6MTAwQzAwMDAxOEZGMUNGRkZGRkZFRkZGNURGRjFDRkZGRkZGMkZGRjIzCis6MTAwQzEwMDAxOEZGMUNGRkZGRkZFRkZGNUNGRjFDRkZGRkZGN0ZGRkM0Cis6MTAwQzIwMDAxOEZGMUNGRkZGRkZFRkZGNUNGRjFDRkZGRkZGN0ZGRkI0Cis6MTAwQzMwMDAxOEZGMUNGRkZGRkZFRkZGNUNGRjFDRkZGRkZGN0ZGRkE0Cis6MTAwQzQwMDAxOEZGMUNGRkZGRkZFRkZGNURGRjFDRkZGRkZGMkZGRkUzCis6MTAwQzUwMDAxOEZGMUNGRkZGRkZFRkZGNjZGRjFDRkZGRkZGMUZGRkRBCis6MTAwQzYwMDA1Q0ZGMUNGRkZGRkY3RkZGMTZGRjE4RkZGRkZGNEZGRjFBCis6MTAwQzcwMDA4QkZGODdGRkZGRkY2MUZGMDBGRjM0RkZGRkZGODlGRjRFCis6MTAwQzgwMDAwMEZGMzRGRkZGRkYyNkZGMDBGRjYwRkZGRkZGMDZGRkFFCis6MTAwQzkwMDA4M0ZGOTNGRkZGRkZEMEZGMDBGRjYwRkZGRkZGMDZGRjEyCis6MTAwQ0EwMDA4M0ZGOTNGRkZGRkZFMEZGMzhGRjIyRkZGRkZGMEZGRkVGCis6MTAwQ0IwMDAxOUZGMTRGRkZGRkY4NUZGOEJGRjgzRkZGRkZGNTBGRjJFCis6MTAwQ0MwMDA3OEZGMjJGRkZGRkYwRkZGMDBGRjYwRkZGRkZGMDdGRjFFCis6MTAwQ0QwMDAwNEZGMERGRkZGRkYzMEZGMDBGRjYwRkZGRkZGMDdGRjc2Cis6MTAwQ0UwMDA4M0ZGOTNGRkZGRkZGMEZGMDBGRjYwRkZGRkZGMDdGRkExCis6MTAwQ0YwMDAwOEZGMERGRkZGRkYzMEZGMDBGRjYwRkZGRkZGMDdGRjUyCis6MTAwRDAwMDA4NkZGOTNGRkZGRkY0MEZGMDBGRjQwRkZGRkZGMDFGRjUzCis6MTAwRDEwMDA4QkZGOTNGRkZGRkY1MUZGMDBGRjM0RkZGRkZGNDZGRkY0Cis6MTAwRDIwMDAwMEZGMDlGRkZGRkYwNkZGOEJGRjk3RkZGRkZGNjFGRjNCCis6MTAwRDMwMDA4M0ZGOEJGRkZGRkZEMEZGODNGRjhCRkZGRkZGRTFGRkYwCis6MTAwRDQwMDA4N0ZGMzdGRkZGRkYwMUZGNkVGRjFDRkZGRkZGQkZGRkE1Cis6MTAwRDUwMDA4N0ZGMzdGRkZGRkYwMEZGOTJGRjM3RkZGRkZGMDFGRjE1Cis6MTAwRDYwMDA3RkZGMzhGRkZGRkYwMEZGN0VGRjM4RkZGRkZGMDFGRjFGCis6MTAwRDcwMDAyM0ZGMUNGRkZGRkZGRkZGN0VGRjM4RkZGRkZGMDBGRjg5Cis6MTAwRDgwMDA4M0ZGODdGRkZGRkZGMUZGODZGRjhCRkZGRkZGNDFGRjIwCis6MTAwRDkwMDA2Q0ZGMUNGRkZGRkYyRkZGODdGRjM3RkZGRkZGMDBGRkU4Cis6MTAwREEwMDA4QkZGOEJGRkZGRkZBMEZGMDBGRjM0RkZGRkZGMDhGRjVCCis6MTAwREIwMDA0MEZGMzhGRkZGRkYwOEZGMDBGRjNDRkZGRkZGNTVGRjJDCis6MTAwREMwMDAxQkZGMTRGRkZGRkZDRUZGMDBGRjYwRkZGRkZGMDNGRkNECis6MTAwREQwMDAwMEZGNjBGRkZGRkYxM0ZGMDBGRjc4RkZGRkZGMTNGRjFGCis6MTAwREUwMDAwMEZGNzhGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMDNGRjJGCis6MTAwREYwMDAwMEZGNjBGRkZGRkYxM0ZGMDBGRjc4RkZGRkZGMTNGRkZGCis6MTAwRTAwMDAwMEZGNzhGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMDNGRjBFCis6MTAwRTEwMDAwMEZGNjBGRkZGRkYxM0ZGMDBGRjc4RkZGRkZGMTNGRkRFCis6MTAwRTIwMDAwMEZGNzhGRkZGRkYwM0ZGOEJGRjgzRkZGRkZGRTFGRjYyCis6MTAwRTMwMDA4QkZGODNGRkZGRkZGMEZGMDBGRjc4RkZGRkZGMTNGRjMzCis6MTAwRTQwMDAwMEZGNzhGRkZGRkYwM0ZGOEJGRjlCRkZGRkZGQTBGRjZCCis6MTAwRTUwMDA4QkZGODdGRkZGRkY5MEZGN0VGRjM4RkZGRkZGMDBGRjQ0Cis6MTAwRTYwMDA0MEZGMzRGRkZGRkYwOEZGMDBGRjM4RkZGRkZGMDhGRkQwCis6MTAwRTcwMDAwMEZGM0NGRkZGRkY1NUZGMURGRjE0RkZGRkZGM0VGRjdDCis6MTAwRTgwMDAwMEZGNjBGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMTNGRjk2Cis6MTAwRTkwMDAwMEZGNThGRkZGRkYxM0ZGMDBGRjU4RkZGRkZGMDNGRjk2Cis6MTAwRUEwMDAwMEZGNjBGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMTNGRjc2Cis6MTAwRUIwMDAwMEZGNThGRkZGRkYxM0ZGMDBGRjU4RkZGRkZGMDNGRjc2Cis6MTAwRUMwMDAwMEZGNjBGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMTNGRjU2Cis6MTAwRUQwMDAwMEZGNThGRkZGRkYxM0ZGMDBGRjU4RkZGRkZGMDNGRjU2Cis6MTAwRUUwMDAwMEZGNjBGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMDNGRjQ2Cis6MTAwRUYwMDA4QkZGOTdGRkZGRkY5MEZGMDBGRjBBRkZGRkZGMEZGRjMxCis6MTAwRjAwMDA4QkZGODdGRkZGRkY2MUZGMDBGRjM0RkZGRkZGODlGRkJCCis6MTAwRjEwMDAwMEZGMzRGRkZGRkYyNkZGMDBGRjYwRkZGRkZGMDZGRjFCCis6MTAwRjIwMDA4M0ZGOTNGRkZGRkZEMEZGMDBGRjYwRkZGRkZGMDZGRjdGCis6MTAwRjMwMDA4M0ZGOTNGRkZGRkZFMEZGOEJGRjgzRkZGRkZGNTFGRjY2Cis6MTAwRjQwMDA3OUZGMjJGRkZGRkYwRkZGNzRGRjE4RkZGRkZGQjRGRkMxCis6MTAwRjUwMDAzOEZGMjJGRkZGRkYwRkZGMUVGRjE0RkZGRkZGRDVGRjJCCis6MTAwRjYwMDA4QkZGODNGRkZGRkY1MEZGNzhGRjIyRkZGRkZGMEZGRjg0Cis6MTAwRjcwMDAwMEZGNjBGRkZGRkYwN0ZGMDRGRjBERkZGRkZGMzBGRkQzCis6MTAwRjgwMDAwMEZGNjBGRkZGRkYwN0ZGODNGRjkzRkZGRkZGRjBGRkZFCis6MTAwRjkwMDAwMEZGNjBGRkZGRkYwN0ZGMDhGRjBERkZGRkZGMzBGRkFGCis6MTAwRkEwMDAwMEZGNjBGRkZGRkYwN0ZGODZGRjkzRkZGRkZGNDBGRjhCCis6MTAwRkIwMDAwMEZGNDBGRkZGRkYwMUZGOEJGRjkzRkZGRkZGNTFGRjhCCis6MTAwRkMwMDAwMEZGMzRGRkZGRkY0NkZGMDBGRjA5RkZGRkZGMDZGRkEyCis6MTAwRkQwMDA4QkZGOTdGRkZGRkY2MUZGODNGRjhCRkZGRkZGRDBGRkJBCis6MTAwRkUwMDA4M0ZGOEJGRkZGRkZFMUZGODdGRjM3RkZGRkZGMDFGRjVECis6MTAwRkYwMDA2RUZGMUNGRkZGRkZCRkZGODdGRjM3RkZGRkZGMDBGRkY0Cis6MTAxMDAwMDA5MkZGMzdGRkZGRkYwMUZGN0ZGRjM4RkZGRkZGMDBGRjY5Cis6MTAxMDEwMDAyM0ZGMUNGRkZGRkZGRkZGN0VGRjM4RkZGRkZGMDBGRkU2Cis6MTAxMDIwMDA4M0ZGODdGRkZGRkZGMUZGODZGRjhCRkZGRkZGNDFGRjdECis6MTAxMDMwMDA2Q0ZGMUNGRkZGRkYyRkZGMDBGRjBBRkZGRkZGMEZGRkVBCis6MTAxMDQwMDA4REZGOEZGRkZGRkZDNUZGMjBGRjE0RkZGRkZGQUVGRkU3Cis6MTAxMDUwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjBBRkZGRkZGMEZGRjgxCis6MTAxMDYwMDA4QkZGODNGRkZGRkY4NEZGMDBGRjIzRkZGRkZGMEZGRkM2Cis6MTAxMDcwMDA4QkZGOTNGRkZGRkY4QUZGNjRGRjFDRkZGRkZGRTBGRjcyCis6MTAxMDgwMDA3RUZGMzhGRkZGRkYwMEZGMDBGRjM4RkZGRkZGMDhGRjc0Cis6MTAxMDkwMDAwMEZGM0NGRkZGRkZFNUZGMjFGRjE0RkZGRkZGNUVGRkE2Cis6MTAxMEEwMDAwMEZGNDBGRkZGRkYwMEZGMDBGRjU4RkZGRkZGMDNGRkFGCis6MTAxMEIwMDAwMEZGMEFGRkZGRkYwRkZGMDhGRjQwRkZGRkZGMTBGRkM5Cis6MTAxMEMwMDA0N0ZGOTBGRkZGRkYyMEZGMDBGRjA0RkZGRkZGMUNGRjEzCis6MTAxMEQwMDAwMEZGMDRGRkZGRkYxQ0ZGMDBGRjA0RkZGRkZGMUNGRkRBCis6MTAxMEUwMDAwMEZGMDRGRkZGRkYxQ0ZGMDBGRjA0RkZGRkZGMTBGRkQ2Cis6MTAxMEYwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRkQyCis6MTAxMTAwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRkMxCis6MTAxMTEwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRkIxCis6MTAxMTIwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRkExCis6MTAxMTMwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjkxCis6MTAxMTQwMDAwMEZGMDRGRkZGRkYxMEZGMDJGRjQwRkZGRkZGNDBGRjEzCis6MTAxMTUwMDAxMUZGOTBGRkZGRkYyMEZGNzhGRjQyRkZGRkZGNTBGRkNFCis6MTAxMTYwMDA0OEZGOTBGRkZGRkZBMEZGMDBGRjAwRkZGRkZGMDBGRjExCis6MTAxMTcwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjc5Cis6MTAxMTgwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjY5Cis6MTAxMTkwMDBCMEZGNDBGRkZGRkYwMEZGNDdGRjkwRkZGRkZGNTBGRjQyCis6MTAxMUEwMDAwMEZGNDBGRkZGRkYwMEZGOERGRjkzRkZGRkZGNDBGRkE5Cis6MTAxMUIwMDA4REZGOTNGRkZGRkY1MEZGMDBGRjQwRkZGRkZGMDFGRjg4Cis6MTAxMUMwMDA4QkZGOTNGRkZGRkY1MUZGMDBGRjQwRkZGRkZGMDBGRjdBCis6MTAxMUQwMDA0NkZGOTBGRkZGRkY3MEZGOERGRjgzRkZGRkZGRDBGRkYzCis6MTAxMUUwMDA3OEZGMjJGRkZGRkYwRkZGMENGRjE4RkZGRkZGOTBGRkFDCis6MTAxMUYwMDAwQ0ZGMThGRkZGRkY2RkZGMjBGRjBDRkZGRkZGMDBGRjNBCis6MTAxMjAwMDAwMEZGMzRGRkZGRkYwOUZGMDBGRjM0RkZGRkZGMDhGRjZGCis6MTAxMjEwMDAwMEZGMzhGRkZGRkYwOEZGMDBGRjM4RkZGRkZGMDlGRjU3Cis6MTAxMjIwMDAwMEZGMzhGRkZGRkYwNkZGMDBGRjM0RkZGRkZGMjZGRjMwCis6MTAxMjMwMDA5OEZGQ0NGRkZGRkYzN0ZGMDBGRjNDRkZGRkZGQTVGRjNDCis6MTAxMjQwMDAyNEZGMTRGRkZGRkZGRUZGMDBGRjYwRkZGRkZGNzNGRjlGCis6MTAxMjUwMDAwOEZGMERGRkZGRkYxNEZGOThGRjIwRkZGRkZGMEZGRkE4Cis6MTAxMjYwMDAwMEZGNTBGRkZGRkZDNkZGNjlGRkNDRkZGRkZGMzdGRjA2Cis6MTAxMjcwMDAwMEZGMDVGRkZGRkYwMEZGMDBGRjU4RkZGRkZGQzZGRjU1Cis6MTAxMjgwMDA5OEZGMjBGRkZGRkYwRkZGMDBGRjYwRkZGRkZGNzJGRkNGCis6MTAxMjkwMDAwOEZGMERGRkZGRkYxNEZGMDBGRjUwRkZGRkZGQzZGRjE5Cis6MTAxMkEwMDA2OUZGQ0NGRkZGRkYzN0ZGMDBGRjA1RkZGRkZGMDBGRkQ3Cis6MTAxMkIwMDAwMEZGNThGRkZGRkZDNkZGOThGRjIwRkZGRkZGMEZGRjUzCis6MTAxMkMwMDAwMEZGNjBGRkZGRkY3M0ZGMDhGRjBERkZGRkZGMTRGRjJDCis6MTAxMkQwMDAwMEZGNTBGRkZGRkZDNkZGNjlGRjIwRkZGRkZGMEZGRjZBCis6MTAxMkUwMDAwMEZGMDVGRkZGRkYwMEZGMDBGRjU4RkZGRkZGQzZGRkU1Cis6MTAxMkYwMDAzMEZGMENGRkZGRkYwMEZGMDBGRjBBRkZGRkZGMEZGRkEzCis6MTAxMzAwMDAwMEZGMENGRkZGRkYzMEZGNDdGRjgwRkZGRkZGNThGRjhDCis6MTAxMzEwMDAxMEZGMEZGRkZGRkYwMUZGNjZGRjIzRkZGRkZGMEZGRjFGCis6MTAxMzIwMDAyNkZGMThGRkZGRkY5NEZGMDBGRjQ4RkZGRkZGMDBGRkFECis6MTAxMzMwMDA4QkZGOTNGRkZGRkY0MEZGODBGRjQwRkZGRkZGMDBGRjk5Cis6MTAxMzQwMDA0OUZGOTBGRkZGRkY0MEZGMTZGRjBGRkZGRkZGMDJGRjY3Cis6MTAxMzUwMDA2NkZGMjNGRkZGRkYwRkZGMzhGRjE4RkZGRkZGQjRGRkZCCis6MTAxMzYwMDAwRkZGNDBGRkZGRkZGNEZGNDdGRjgwRkZGRkZGMEFGRjczCis6MTAxMzcwMDA4MkZGMjNGRkZGRkYwRkZGOERGRjkzRkZGRkZGN0FGRjI5Cis6MTAxMzgwMDA3QUZGMjZGRkZGRkYwRkZGMTBGRjI3RkZGRkZGMEZGRjcyCis6MTAxMzkwMDAzOEZGMThGRkZGRkZCNEZGMjdGRjE4RkZGRkZGRDJGRjQyCis6MTAxM0EwMDAwMEZGNDhGRkZGRkYwMEZGOEJGRjkzRkZGRkZGMzBGRkIxCis6MTAxM0IwMDA4REZGODNGRkZGRkY3MEZGNDdGRjkwRkZGRkZGMDBGRkUwCis6MTAxM0MwMDAwMEZGNDhGRkZGRkYwNEZGQTBGRjIzRkZGRkZGMEZGRjA5Cis6MTAxM0QwMDA0NkZGOTBGRkZGRkY2QUZGMDBGRjBDRkZGRkZGMjBGRkFCCis6MTAxM0UwMDAwMEZGMEFGRkZGRkYxRkZGMTBGRjI3RkZGRkZGMEZGRjk4Cis6MTAxM0YwMDAyOUZGMThGRkZGRkY5MkZGNDZGRjgwRkZGRkZGMDBGRjVFCis6MTAxNDAwMDA4QkZGOTNGRkZGRkYyMEZGOERGRjgzRkZGRkZGNzBGRjI4Cis6MTAxNDEwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkIzCis6MTAxNDIwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkI0Cis6MTAxNDMwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjA0RkZGRkZGMUNGRjZBCis6MTAxNDQwMDAwMEZGMDRGRkZGRkYxQ0ZGMDBGRjA0RkZGRkZGMUNGRjY2Cis6MTAxNDUwMDAwMEZGMDRGRkZGRkYxQ0ZGMDBGRjA0RkZGRkZGMTBGRjYyCis6MTAxNDYwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjVFCis6MTAxNDcwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjRFCis6MTAxNDgwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjNFCis6MTAxNDkwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjJFCis6MTAxNEEwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMTBGRjFFCis6MTAxNEIwMDAwMEZGMDRGRkZGRkYxMEZGMDBGRjA0RkZGRkZGMDNGRjFCCis6MTAxNEMwMDAwREZGMThGRkZGRkYwRkZGMTBGRjI3RkZGRkZGMEZGRkFDCis6MTAxNEQwMDAzMUZGMThGRkZGRkYxMkZGMzBGRjBDRkZGRkZGMDBGRjdGCis6MTAxNEUwMDAwOEZGMENGRkZGRkYwMEZGRkZGRjRGRkZGRkZGODlGRjFCCis6MTAxNEYwMDA5MEZGMzdGRkZGRkYwMEZGMDJGRjM0RkZGRkZGMDhGRkYxCis6MTAxNTAwMDAwMEZGMzRGRkZGRkYzNEZGMDBGRjM0RkZGRkZGNTVGRkY0Cis6MTAxNTEwMDA0NkZGODBGRkZGRkYwOEZGMDBGRjBFRkZGRkZGMEZGRkVBCis6MTAxNTIwMDAwMEZGMERGRkZGRkY0RUZGQTdGRjIzRkZGRkZGMEZGRjkxCis6MTAxNTMwMDAwMEZGNjhGRkZGRkZBM0ZGMDBGRjBERkZGRkZGNEFGRjUzCis6MTAxNTQwMDA0NkZGODBGRkZGRkYxOEZGMDBGRjBFRkZGRkZGMEZGRkFBCis6MTAxNTUwMDAwMEZGMERGRkZGRkY1RUZGQUZGRjIzRkZGRkZGMEZGRjQ5Cis6MTAxNTYwMDAwMEZGNjhGRkZGRkZBMEZGMDBGRjBERkZGRkZGNUFGRjE2Cis6MTAxNTcwMDA0NkZGODBGRkZGRkY0OEZGMTBGRjBGRkZGRkZGRkVGRjRBCis6MTAxNTgwMDA4N0ZGOTNGRkZGRkZGRUZGMDBGRjBERkZGRkZGMkVGRjEyCis6MTAxNTkwMDAwMkZGNDBGRkZGRkYwNkZGRTBGRjIwRkZGRkZGMEZGRkZFCis6MTAxNUEwMDAwMEZGNDBGRkZGRkYwMUZGNjNGRjIyRkZGRkZGMEZGRjcwCis6MTAxNUIwMDAwMEZGMERGRkZGRkY0QUZGNDlGRjZBRkZGRkZGQTNGRjg4Cis6MTAxNUMwMDAwMEZGMERGRkZGRkY1QUZGMDBGRjY4RkZGRkZGQTBGRkI2Cis6MTAxNUQwMDAwMEZGMERGRkZGRkY1QUZGNjNGRjIyRkZGRkZGMEZGRjFBCis6MTAxNUUwMDAwMEZGMERGRkZGRkY0QUZGNDlGRjZBRkZGRkZGQTNGRjU4Cis6MTAxNUYwMDAwMEZGMERGRkZGRkY1QUZGMDBGRjY4RkZGRkZGQTBGRjg2Cis6MTAxNjAwMDA2M0ZGMjJGRkZGRkYwRkZGMDBGRjBERkZGRkZGNEFGRkY5Cis6MTAxNjEwMDA0OUZGNkFGRkZGRkZBM0ZGMDBGRjBERkZGRkZGNUFGRjE3Cis6MTAxNjIwMDAwMEZGNjhGRkZGRkZBMEZGNjNGRjIyRkZGRkZGMEZGRjI4Cis6MTAxNjMwMDAwMEZGMERGRkZGRkY0QUZGNDlGRjZBRkZGRkZGQTNGRjA3Cis6MTAxNjQwMDAwMEZGMERGRkZGRkY1QUZGMDBGRjY4RkZGRkZGQTBGRjM1Cis6MTAxNjUwMDA2M0ZGMjJGRkZGRkYwRkZGMDBGRjBERkZGRkZGNEFGRkE5Cis6MTAxNjYwMDA0OUZGNkFGRkZGRkZBM0ZGMDBGRjBERkZGRkZGNUFGRkM3Cis6MTAxNjcwMDAwMEZGNjhGRkZGRkZBMEZGNjNGRjIyRkZGRkZGMEZGRkQ4Cis6MTAxNjgwMDAwMEZGMERGRkZGRkY0QUZGNDlGRjZBRkZGRkZGQTNGRkI3Cis6MTAxNjkwMDAwMEZGMERGRkZGRkY1QUZGMDBGRjY4RkZGRkZGQTBGRkU1Cis6MTAxNkEwMDA2M0ZGMjJGRkZGRkYwRkZGMDBGRjBERkZGRkZGNEFGRjU5Cis6MTAxNkIwMDA0OUZGNkFGRkZGRkZBM0ZGMDBGRjBERkZGRkZGNUFGRjc3Cis6MTAxNkMwMDAwMEZGNjhGRkZGRkZBMUZGNDZGRjgwRkZGRkZGMjhGRjJECis6MTAxNkQwMDAwMEZGMEVGRkZGRkYwRkZGMDBGRjBERkZGRkZGNEVGRjlDCis6MTAxNkUwMDBBN0ZGMjNGRkZGRkYwRkZGMDBGRjY4RkZGRkZGQTNGRjIwCis6MTAxNkYwMDAwMEZGMERGRkZGRkY0QUZGNDZGRjgwRkZGRkZGMzhGRjlGCis6MTAxNzAwMDAwMEZGMEVGRkZGRkYwRkZGMDBGRjBERkZGRkZGNUVGRjVCCis6MTAxNzEwMDBBRkZGMjNGRkZGRkYwRkZGMDBGRjY4RkZGRkZGQTBGRkVBCis6MTAxNzIwMDAwMEZGMERGRkZGRkY1QUZGNjNGRjIyRkZGRkZGMEZGRkM4Cis6MTAxNzMwMDAwMEZGMERGRkZGRkY0QUZGNDlGRjZBRkZGRkZGQTNGRjA2Cis6MTAxNzQwMDAwMEZGMERGRkZGRkY1QUZGMDBGRjY4RkZGRkZGQTBGRjM0Cis6MTAxNzUwMDA2M0ZGMjJGRkZGRkYwRkZGMDBGRjBERkZGRkZGNEFGRkE4Cis6MTAxNzYwMDA0OUZGNkFGRkZGRkZBM0ZGMDBGRjBERkZGRkZGNUFGRkM2Cis6MTAxNzcwMDAwMEZGNjhGRkZGRkZBMEZGNjNGRjIyRkZGRkZGMEZGRkQ3Cis6MTAxNzgwMDAwMEZGMERGRkZGRkY0QUZGNDlGRjZBRkZGRkZGQTNGRkI2Cis6MTAxNzkwMDAwMEZGMERGRkZGRkY1QUZGMDBGRjY4RkZGRkZGQTBGRkU0Cis6MTAxN0EwMDA2M0ZGMjJGRkZGRkYwRkZGMDBGRjBERkZGRkZGNEFGRjU4Cis6MTAxN0IwMDA0OUZGNkFGRkZGRkZBM0ZGMDBGRjBERkZGRkZGNUFGRjc2Cis6MTAxN0MwMDAwMEZGNjhGRkZGRkZBMEZGNjNGRjIyRkZGRkZGMEZGRjg3Cis6MTAxN0QwMDAwMEZGMERGRkZGRkY0QUZGNDlGRjZBRkZGRkZGQTNGRjY2Cis6MTAxN0UwMDAwMEZGMERGRkZGRkY1QUZGMDBGRjY4RkZGRkZGQTBGRjk0Cis6MTAxN0YwMDA2M0ZGMjJGRkZGRkYwRkZGMDBGRjBERkZGRkZGNEFGRjA4Cis6MTAxODAwMDA0OUZGNkFGRkZGRkZBM0ZGMDBGRjBERkZGRkZGNUFGRjI1Cis6MTAxODEwMDAwMEZGNjhGRkZGRkZBMEZGNjNGRjIyRkZGRkZGMEZGRjM2Cis6MTAxODIwMDAwMEZGMERGRkZGRkY0QUZGNDlGRjZBRkZGRkZGQTNGRjE1Cis6MTAxODMwMDAwMEZGMERGRkZGRkY1QUZGMDBGRjY4RkZGRkZGQTNGRjQwCis6MTAxODQwMDBGRkZGNEZGRkZGRkZGMEZGODZGRjkzRkZGRkZGNTBGRkZCCis6MTAxODUwMDA4REZGODNGRkZGRkY3MEZGNDdGRjkwRkZGRkZGMDBGRjNCCis6MTAxODYwMDAwMEZGNDhGRkZGRkYwNEZGQTBGRjIzRkZGRkZGMEZGRjY0Cis6MTAxODcwMDA0NkZGOTBGRkZGRkY2QUZGMDBGRjBDRkZGRkZGMjBGRjA2Cis6MTAxODgwMDAwMEZGMEFGRkZGRkYxRkZGMTBGRjI3RkZGRkZGMEZGRkYzCis6MTAxODkwMDAzMkZGMThGRkZGRkY0MkZGOEJGRjgzRkZGRkZGRTRGRkQ0Cis6MTAxOEEwMDA4QkZGODNGRkZGRkZGNUZGNDZGRjkwRkZGRkZGNDRGRjI1Cis6MTAxOEIwMDAwOEZGMjJGRkZGRkYwRkZGRkZGRjRGRkZGRkZGODlGRjIyCis6MTAxOEMwMDAwMEZGMERGRkZGRkY4QUZGMDBGRjBFRkZGRkZGMEZGRjZFCis6MTAxOEQwMDAwMEZGMERGRkZGRkY0RUZGQTdGRjIzRkZGRkZGMEZGRkRFCis6MTAxOEUwMDA0NkZGOTBGRkZGRkY1QUZGOERGRjgzRkZGRkZGNzBGRjUyCis6MTAxOEYwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkNGCis6MTAxOTAwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkNGCis6MTAxOTEwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjdDCis6MTAxOTIwMDAxMEZGMjdGRkZGRkYwRkZGMzVGRjE4RkZGRkZGRDJGRjVDCis6MTAxOTMwMDAwMEZGNENGRkZGRkYwMEZGMDBGRjkzRkZGRkZGMDBGRkQyCis6MTAxOTQwMDAwQkZGNDBGRkZGRkY4MEZGMTFGRjkwRkZGRkZGRjBGRjQ1Cis6MTAxOTUwMDAwMEZGNDBGRkZGRkYxMEZGMTFGRjkwRkZGRkZGRTBGRkMwCis6MTAxOTYwMDA0NkZGODBGRkZGRkYwQUZGN0FGRjI2RkZGRkZGMEZGRjAyCis6MTAxOTcwMDAzNUZGMUNGRkZGRkYyNEZGMTBGRjI3RkZGRkZGMEZGRkI2Cis6MTAxOTgwMDAzM0ZGMThGRkZGRkZDNUZGMDBGRjQwRkZGRkZGQzBGRjUxCis6MTAxOTkwMDAxMUZGOTBGRkZGRkY2MEZGOERGRjkzRkZGRkZGRDBGRjYwCis6MTAxOUEwMDAwMEZGNDhGRkZGRkYwMEZGOERGRjgzRkZGRkZGNzBGRjc5Cis6MTAxOUIwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRjBFCis6MTAxOUMwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRjBGCis6MTAxOUQwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRkJDCis6MTAxOUUwMDAxMEZGMjdGRkZGRkYwRkZGMzRGRjE4RkZGRkZGODVGRkVBCis6MTAxOUYwMDAwMEZGNDBGRkZGRkY0MEZGMTFGRjkwRkZGRkZGNjBGRjcwCis6MTAxQTAwMDA4REZGOTNGRkZGRkZEMEZGOERGRjgzRkZGRkZGNzBGRjcwCis6MTAxQTEwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkFECis6MTAxQTIwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkFFCis6MTAxQTMwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjVCCis6MTAxQTQwMDAwMEZGNDBGRkZGRkYwMEZGMTFGRjkwRkZGRkZGNjBGRjVGCis6MTAxQTUwMDA4REZGOTNGRkZGRkZEMEZGOERGRjgzRkZGRkZGNzBGRjIwCis6MTAxQTYwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRjVECis6MTAxQTcwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRjVFCis6MTAxQTgwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjBCCis6MTAxQTkwMDAwMEZGNDhGRkZGRkYwMEZGOERGRjkzRkZGRkZGODBGRjY4Cis6MTAxQUEwMDAwMEZGNDhGRkZGRkYwMEZGMDBGRjkzRkZGRkZGMDBGRjY1Cis6MTAxQUIwMDAwREZGNDBGRkZGRkZGMEZGMTFGRjkwRkZGRkZGRjBGRjYyCis6MTAxQUMwMDAwMEZGNDBGRkZGRkYxMEZGMTFGRjkwRkZGRkZGRTBGRjRGCis6MTAxQUQwMDBGRkZGNDBGRkZGRkZGMEZGOTBGRjI3RkZGRkZGMEZGRjFCCis6MTAxQUUwMDAwMEZGMEFGRkZGRkYwRkZGMTBGRjI3RkZGRkZGMEZGRkExCis6MTAxQUYwMDAzN0ZGMThGRkZGRkY0MkZGNDZGRjgwRkZGRkZGMDBGRjk5Cis6MTAxQjAwMDA4OUZGOTNGRkZGRkZBMEZGNDZGRjgwRkZGRkZGMTBGRjRECis6MTAxQjEwMDA4OUZGOTNGRkZGRkZCMEZGNDZGRjgwRkZGRkZGMjBGRjFECis6MTAxQjIwMDA4OUZGOTNGRkZGRkZDMEZGNDZGRjgwRkZGRkZGMzBGRkVECis6MTAxQjMwMDA4OUZGOTNGRkZGRkZEMEZGNDZGRjgwRkZGRkZGNDBGRkJECis6MTAxQjQwMDA4OUZGOTNGRkZGRkZFMEZGNDZGRjgwRkZGRkZGNTBGRjhECis6MTAxQjUwMDA4OUZGOTNGRkZGRkZGMEZGMDBGRjQwRkZGRkZGMTBGRjMzCis6MTAxQjYwMDA4NkZGOTNGRkZGRkY2MEZGOERGRjgzRkZGRkZGNzBGRjg2Cis6MTAxQjcwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRjRDCis6MTAxQjgwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRjRECis6MTAxQjkwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRkZBCis6MTAxQkEwMDAxMEZGMjdGRkZGRkYwRkZGMzlGRjE4RkZGRkZGMjJGRjg2Cis6MTAxQkIwMDA0NkZGODBGRkZGRkYwMEZGOERGRjkzRkZGRkZGMjBGRjI5Cis6MTAxQkMwMDA0NkZGODBGRkZGRkYxMEZGOERGRjkzRkZGRkZGMzBGRkY5Cis6MTAxQkQwMDA0NkZGODBGRkZGRkYyMEZGNzhGRjIyRkZGRkZGMEZGRjgwCis6MTAxQkUwMDAzOEZGMUNGRkZGRkY4NEZGMDBGRjQwRkZGRkZGMDBGRkU3Cis6MTAxQkYwMDA0NkZGOTBGRkZGRkYyMEZGMDBGRjQ4RkZGRkZGMDBGRkIxCis6MTAxQzAwMDA4REZGOTNGRkZGRkY0MEZGOERGRjgzRkZGRkZGNzBGRkZFCis6MTAxQzEwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkFCCis6MTAxQzIwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkFDCis6MTAxQzMwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjU5Cis6MTAxQzQwMDAwMEZGNDhGRkZGRkYwMEZGOERGRjkzRkZGRkZGNTBGRkU2Cis6MTAxQzUwMDAwMEZGMEFGRkZGRkYwRkZGMDBGRjBDRkZGRkZGMjBGRjQ5Cis6MTAxQzYwMDAwMEZGMEFGRkZGRkYxRkZGMDBGRjBDRkZGRkZGMzBGRjE5Cis6MTAxQzcwMDAwMEZGNDhGRkZGRkYwMEZGOEJGRjkzRkZGRkZGNTBGRkI4Cis6MTAxQzgwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjA5Cis6MTAxQzkwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGRjRGRjhCCis6MTAxQ0EwMDBFMEZGMjJGRkZGRkYwRkZGNDFGRjE4RkZGRkZGMzBGRkE0Cis6MTAxQ0IwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGRTRGRjdCCis6MTAxQ0MwMDBFMEZGMjJGRkZGRkYwRkZGNDJGRjE4RkZGRkZGNDBGRjczCis6MTAxQ0QwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGRDRGRjZCCis6MTAxQ0UwMDBFMEZGMjJGRkZGRkYwRkZGNDdGRjE4RkZGRkZGQTBGRkVFCis6MTAxQ0YwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGQzRGRjVCCis6MTAxRDAwMDBFMEZGMjJGRkZGRkYwRkZGNDZGRjE4RkZGRkZGRDBGRjlFCis6MTAxRDEwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGQjRGRjRBCis6MTAxRDIwMDBFMEZGMjJGRkZGRkYwRkZGNDhGRjE4RkZGRkZGRTBGRjZDCis6MTAxRDMwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGQTRGRjNBCis6MTAxRDQwMDBFMEZGMjJGRkZGRkYwRkZGNEFGRjE4RkZGRkZGNjBGRkNBCis6MTAxRDUwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGOTRGRjJBCis6MTAxRDYwMDBFMEZGMjJGRkZGRkYwRkZGNENGRjE4RkZGRkZGMDBGRjA4Cis6MTAxRDcwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGODRGRjFBCis6MTAxRDgwMDBFMEZGMjJGRkZGRkYwRkZGNERGRjE4RkZGRkZGRTBGRjA3Cis6MTAxRDkwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGNzRGRjBBCis6MTAxREEwMDBFMEZGMjJGRkZGRkYwRkZGNEZGRjE4RkZGRkZGMjBGRkE1Cis6MTAxREIwMDA4REZGODNGRkZGRkY3MEZGMEZGRjQwRkZGRkZGNjRGRkZBCis6MTAxREMwMDBFMEZGMjJGRkZGRkYwRkZGNEZGRjE4RkZGRkZGRjBGRkI1Cis6MTAxREQwMDA4REZGODNGRkZGRkY3MEZGMEVGRjQwRkZGRkZGRjRGRjRCCis6MTAxREUwMDBFMEZGMjJGRkZGRkYwRkZGNDRGRjE4RkZGRkZGNDBGRjUwCis6MTAxREYwMDA4REZGODNGRkZGRkY3MEZGMEVGRjQwRkZGRkZGRTRGRjNCCis6MTAxRTAwMDBFMEZGMjJGRkZGRkYwRkZGNDVGRjE4RkZGRkZGNTBGRjFFCis6MTAxRTEwMDA4REZGODNGRkZGRkY3MEZGMEFGRjQwRkZGRkZGMDRGRkZFCis6MTAxRTIwMDBFMEZGMjJGRkZGRkYwRkZGM0RGRjE4RkZGRkZGRDBGRjg2Cis6MTAxRTMwMDA4REZGODNGRkZGRkY3MEZGMEFGRjQwRkZGRkZGMTRGRkNFCis6MTAxRTQwMDBFMEZGMjJGRkZGRkYwRkZGM0ZGRjE4RkZGRkZGMTBGRjI0Cis6MTAxRTUwMDA4REZGODNGRkZGRkY3MEZGMEFGRjQwRkZGRkZGMjRGRjlFCis6MTAxRTYwMDBFMEZGMjJGRkZGRkYwRkZGM0ZGRjE4RkZGRkZGODBGRjk0Cis6MTAxRTcwMDA4REZGODNGRkZGRkY3MEZGMEFGRjQwRkZGRkZGMzRGRjZFCis6MTAxRTgwMDBFMEZGMjJGRkZGRkYwRkZGM0ZGRjE4RkZGRkZGRjBGRjA0Cis6MTAxRTkwMDA4REZGODNGRkZGRkY3MEZGMEFGRjQwRkZGRkZGNDRGRjNFCis6MTAxRUEwMDBFMEZGMjJGRkZGRkYwRkZGNDBGRjE4RkZGRkZGNjBGRjczCis6MTAxRUIwMDA4REZGODNGRkZGRkY3MEZGNDdGRjkwRkZGRkZGMDBGRkQ1Cis6MTAxRUMwMDAwMEZGNDhGRkZGRkYwNEZGQTBGRjIzRkZGRkZGMEZGRkZFCis6MTAxRUQwMDA0NkZGOTBGRkZGRkY2QUZGMDBGRjBDRkZGRkZGMjBGRkEwCis6MTAxRUUwMDAwMEZGMEFGRkZGRkYxRkZGOERGRjgzRkZGRkZGNzBGRjUzCis6MTAxRUYwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkM5Cis6MTAxRjAwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkM5Cis6MTAxRjEwMDAwMEZGMENGRkZGRkYwOEZGMDBGRjQwRkZGRkZGMDBGRjc3Cis6MTAxRjIwMDBGRkZGOTNGRkZGRkZGMEZGMDBGRjQwRkZGRkZGMDBGRkY5Cis6MTAxRjMwMDA0NEZGOTBGRkZGRkY2MEZGMDBGRjAwRkZGRkZGMDBGRjc3Cis6MTAxRjQwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjlCCis6MTAxRjUwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjhCCis6MTAxRjYwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjdCCis6MTAxRjcwMDAwMEZGMDBGRkZGRkYwMEZGMjFGRjQwRkZGRkZGODBGRjhBCis6MTAxRjgwMDBGRkZGOTNGRkZGRkZGMEZGOERGRjgzRkZGRkZGNzBGRjU5Cis6MTAxRjkwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRjI4Cis6MTAxRkEwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRjI5Cis6MTAxRkIwMDAyNUZGNDBGRkZGRkY4MEZGRkZGRjkzRkZGRkZGRjBGRkM0Cis6MTAxRkMwMDA4REZGODNGRkZGRkY3MEZGNDdGRjkwRkZGRkZGMDBGRkM0Cis6MTAxRkQwMDAwMEZGNDhGRkZGRkYwNEZGQTBGRjIzRkZGRkZGMEZGRkVECis6MTAxRkUwMDA0NkZGOTBGRkZGRkY2QUZGRTlGRjQxRkZGRkZGODBGRjExCis6MTAxRkYwMDBGRkZGOTNGRkZGRkZGMEZGOERGRjgzRkZGRkZGNzBGRkU5Cis6MTAyMDAwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkI3Cis6MTAyMDEwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkI4Cis6MTAyMDIwMDBFREZGNDFGRkZGRkY4MEZGRkZGRjkzRkZGRkZGRjBGRjhBCis6MTAyMDMwMDA4REZGODNGRkZGRkY3MEZGNDdGRjkwRkZGRkZGMDBGRjUzCis6MTAyMDQwMDAwMEZGNDhGRkZGRkYwNEZGQTBGRjIzRkZGRkZGMEZGRjdDCis6MTAyMDUwMDA0NkZGOTBGRkZGRkY2QUZGMDBGRjQwRkZGRkZGMDBGRjBBCis6MTAyMDYwMDA0NEZGOTBGRkZGRkY2MEZGMDBGRjAwRkZGRkZGMDBGRjQ2Cis6MTAyMDcwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjZBCis6MTAyMDgwMDAwMEZGMDBGRkZGRkYwMEZGRjFGRjQxRkZGRkZGODBGRkE4Cis6MTAyMDkwMDBGRkZGOTNGRkZGRkZGMEZGNDZGRjg0RkZGRkZGMDBGRkZFCis6MTAyMEEwMDAwMEZGMzRGRkZGRkYwOEZGMDBGRjYwRkZGRkZGMDNGRjlCCis6MTAyMEIwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjJBCis6MTAyMEMwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjFBCis6MTAyMEQwMDA0NkZGOTBGRkZGRkY2MEZGRjdGRjRGRkZGRkZGRjRGRjlBCis6MTAyMEUwMDA0NkZGOTBGRkZGRkY3NEZGOERGRjgzRkZGRkZGNzBGRjMwCis6MTAyMEYwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkM3Cis6MTAyMTAwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkM3Cis6MTAyMTEwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjc0Cis6MTAyMTIwMDA0NkZGODRGRkZGRkYwMEZGMDBGRjM0RkZGRkZGMDhGRkIzCis6MTAyMTMwMDAwMEZGMzRGRkZGRkYwNkZGMDBGRjAwRkZGRkZGMDBGRjZGCis6MTAyMTQwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjk5Cis6MTAyMTUwMDAwMEZGMDBGRkZGRkYwMEZGNDZGRjgwRkZGRkZGMTBGRkIzCis6MTAyMTYwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjc5Cis6MTAyMTcwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjY5Cis6MTAyMTgwMDAwMEZGNjhGRkZGRkYwMkZGMDBGRjAwRkZGRkZGMDBGRkVGCis6MTAyMTkwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjQ5Cis6MTAyMUEwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjYwRkZGRkZGMjJGRkI3Cis6MTAyMUIwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjI5Cis6MTAyMUMwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjE5Cis6MTAyMUQwMDA0NkZGOTBGRkZGRkY2MkZGRjdGRjRGRkZGRkZGRjRGRjk3Cis6MTAyMUUwMDA0NkZGOTBGRkZGRkY3NEZGOERGRjgzRkZGRkZGNzBGRjJGCis6MTAyMUYwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkM2Cis6MTAyMjAwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkM2Cis6MTAyMjEwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjczCis6MTAyMjIwMDA0NkZGODhGRkZGRkYwMEZGMDBGRjM4RkZGRkZGMDhGRkFBCis6MTAyMjMwMDAwMEZGNTBGRkZGRkYwM0ZGMDBGRjAwRkZGRkZGMDBGRjU1Cis6MTAyMjQwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjk4Cis6MTAyMjUwMDAwMEZGMDBGRkZGRkYwMEZGNDZGRjkwRkZGRkZGNjBGRjUyCis6MTAyMjYwMDBGN0ZGNEZGRkZGRkZGNEZGNDZGRjkwRkZGRkZGNzRGRkY0Cis6MTAyMjcwMDA4REZGODNGRkZGRkY3MEZGNDdGRjkwRkZGRkZGMDBGRjExCis6MTAyMjgwMDAwMEZGNDhGRkZGRkYwNEZGQTBGRjIzRkZGRkZGMEZGRjNBCis6MTAyMjkwMDA0NkZGOTBGRkZGRkY2QUZGMDBGRjBDRkZGRkZGMjBGRkRDCis6MTAyMkEwMDAwMEZGMEFGRkZGRkYxRkZGNDZGRjg4RkZGRkZGMDBGRjQxCis6MTAyMkIwMDAwMEZGMzhGRkZGRkYwOEZGMDBGRjM4RkZGRkZGMDRGRkFDCis6MTAyMkMwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjE4Cis6MTAyMkQwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjA4Cis6MTAyMkUwMDA0NkZGODBGRkZGRkYxMEZGMDBGRjU4RkZGRkZGMDNGRkM3Cis6MTAyMkYwMDAwMEZGNTBGRkZGRkYyM0ZGMDBGRjAwRkZGRkZGMDBGRjc1Cis6MTAyMzAwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkQ3Cis6MTAyMzEwMDAwMEZGMDBGRkZGRkYwMEZGNDZGRjkwRkZGRkZGNjJGRjhGCis6MTAyMzIwMDBGN0ZGNEZGRkZGRkZGNEZGNDZGRjkwRkZGRkZGNzRGRjMzCis6MTAyMzMwMDA4REZGODNGRkZGRkY3MEZGNDdGRjkwRkZGRkZGMDBGRjUwCis6MTAyMzQwMDAwMEZGNDhGRkZGRkYwNEZGQTBGRjIzRkZGRkZGMEZGRjc5Cis6MTAyMzUwMDA0NkZGOTBGRkZGRkY2QUZGMDBGRjBDRkZGRkZGMjBGRjFCCis6MTAyMzYwMDAwMEZGMEFGRkZGRkYxRkZGNDZGRjgwRkZGRkZGMDBGRjg4Cis6MTAyMzcwMDBGRkZGOTNGRkZGRkZFMEZGRkZGRjgzRkZGRkZGRTJGRjkxCis6MTAyMzgwMDA0NkZGOTBGRkZGRkY2MkZGRjdGRjRGRkZGRkZGRjRGRkU1Cis6MTAyMzkwMDA0NkZGOTBGRkZGRkY3NEZGOERGRjgzRkZGRkZGNzBGRjdECis6MTAyM0EwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRjE0Cis6MTAyM0IwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRjE1Cis6MTAyM0MwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRkMyCis6MTAyM0QwMDAwM0ZGMERGRkZGRkYwRkZGMDBGRjAwRkZGRkZGMDBGRkU4Cis6MTAyM0UwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkY3Cis6MTAyM0YwMDAwMEZGMDBGRkZGRkYwMEZGNDZGRjkwRkZGRkZGNjBGRkIxCis6MTAyNDAwMDAwQ0ZGMERGRkZGRkZGMEZGMDBGRjAwRkZGRkZGMDBGRkNECis6MTAyNDEwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkM2Cis6MTAyNDIwMDAwMEZGMDBGRkZGRkYwMEZGRjdGRjRGRkZGRkZGRjRGRjdDCis6MTAyNDMwMDA0NkZGOTBGRkZGRkY3NEZGOERGRjgzRkZGRkZGNzBGRkRDCis6MTAyNDQwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRjczCis6MTAyNDUwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRjc0Cis6MTAyNDYwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjIxCis6MTAyNDcwMDA0NkZGODBGRkZGRkYwMkZGMDBGRjAwRkZGRkZGMDBGRjlFCis6MTAyNDgwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjU2Cis6MTAyNDkwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjQ2Cis6MTAyNEEwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjM2Cis6MTAyNEIwMDAwMEZGMDBGRkZGRkYwMEZGNDZGRjgwRkZGRkZGMTNGRjRECis6MTAyNEMwMDAwMEZGNDBGRkZGRkYwMEZGMTFGRjkwRkZGRkZGNjBGRkQ1Cis6MTAyNEQwMDA4REZGOTNGRkZGRkZEMEZGMTFGRjkwRkZGRkZGRjJGRjgzCis6MTAyNEUwMDAxMUZGOTBGRkZGRkZFM0ZGRjdGRjRGRkZGRkZGRjRGRjM4Cis6MTAyNEYwMDA0NkZGOTBGRkZGRkY3NEZGOERGRjgzRkZGRkZGNzBGRjFDCis6MTAyNTAwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkIyCis6MTAyNTEwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkIzCis6MTAyNTIwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjYwCis6MTAyNTMwMDA0NkZGODRGRkZGRkYwMEZGMDBGRjM0RkZGRkZGMDhGRjlGCis6MTAyNTQwMDAwMEZGMzRGRkZGRkYwNkZGMDBGRjAwRkZGRkZGMDBGRjVCCis6MTAyNTUwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjg1Cis6MTAyNTYwMDAwMEZGMDBGRkZGRkYwMEZGNDZGRjgwRkZGRkZGMTBGRjlGCis6MTAyNTcwMDBGRkZGOTNGRkZGRkZFMEZGMDBGRjYwRkZGRkZGMjJGRjcxCis6MTAyNTgwMDA2N0ZGNDBGRkZGRkY0MEZGRkZGRjkzRkZGRkZGRTBGRkZDCis6MTAyNTkwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjQ1Cis6MTAyNUEwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjM1Cis6MTAyNUIwMDA0NkZGOTBGRkZGRkY2MkZGRjdGRjRGRkZGRkZGRjRGRkIzCis6MTAyNUMwMDA0NkZGOTBGRkZGRkY3NEZGOERGRjgzRkZGRkZGNzBGRjRCCis6MTAyNUQwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkUyCis6MTAyNUUwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkUzCis6MTAyNUYwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjkwCis6MTAyNjAwMDA0NkZGODRGRkZGRkYwMEZGMDBGRjM0RkZGRkZGMDhGRkNFCis6MTAyNjEwMDAwMEZGMzRGRkZGRkYwNkZGMDBGRjAwRkZGRkZGMDBGRjhBCis6MTAyNjIwMDAwMEZGMDBGRkZGRkYwMEZGNDZGRjgwRkZGRkZGMTBGRkRFCis6MTAyNjMwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkE0Cis6MTAyNjQwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjk0Cis6MTAyNjUwMDA0NkZGODBGRkZGRkYyM0ZGRkZGRjkzRkZGRkZGRTBGRjI5Cis6MTAyNjYwMDAwMEZGNjhGRkZGRkYzMkZGMDBGRjYwRkZGRkZGNzJGRjA4Cis6MTAyNjcwMDA2N0ZGNDBGRkZGRkY0MEZGRkZGRjkzRkZGRkZGRTBGRjBCCis6MTAyNjgwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjU0Cis6MTAyNjkwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRjQ0Cis6MTAyNkEwMDA0NkZGOTBGRkZGRkY2N0ZGRjdGRjRGRkZGRkZGRjRGRkJECis6MTAyNkIwMDA0NkZGOTBGRkZGRkY3NEZGOERGRjgzRkZGRkZGNzBGRjVBCis6MTAyNkMwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRkYxCis6MTAyNkQwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRkYyCis6MTAyNkUwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjlGCis6MTAyNkYwMDA0NkZGODBGRkZGRkYwNUZGMDNGRjBERkZGRkZGMEZGRkZBCis6MTAyNzAwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkQzCis6MTAyNzEwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkMzCis6MTAyNzIwMDAwQ0ZGMERGRkZGRkZGNUZGMDBGRjAwRkZGRkZGMDBGRkE1Cis6MTAyNzMwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkEzCis6MTAyNzQwMDAwMEZGMDBGRkZGRkYwMEZGRjdGRjRGRkZGRkZGRjRGRjU5Cis6MTAyNzUwMDA0NkZGOTBGRkZGRkY3NEZGOERGRjgzRkZGRkZGNzBGRkI5Cis6MTAyNzYwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRjUwCis6MTAyNzcwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRjUxCis6MTAyNzgwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRkZFCis6MTAyNzkwMDA0NkZGODBGRkZGRkYwMEZGOERGRjkzRkZGRkZGQzBGRjlECis6MTAyN0EwMDA4REZGODNGRkZGRkZDN0ZGNDZGRjkwRkZGRkZGNjdGRjFGCis6MTAyN0IwMDBGN0ZGNEZGRkZGRkZGNEZGNDZGRjkwRkZGRkZGNzRGRjlGCis6MTAyN0MwMDA4REZGODNGRkZGRkY3MEZGNDdGRjkwRkZGRkZGMDBGRkJDCis6MTAyN0QwMDAwMEZGNDhGRkZGRkYwNEZGQTBGRjIzRkZGRkZGMEZGRkU1Cis6MTAyN0UwMDA0NkZGOTBGRkZGRkY2QUZGMDBGRjBDRkZGRkZGMjBGRjg3Cis6MTAyN0YwMDAwMEZGMEFGRkZGRkYxRkZGNDZGRjgwRkZGRkZGMDBGRkY0Cis6MTAyODAwMDA4REZGOTNGRkZGRkZFMEZGOERGRjgzRkZGRkZGRTdGRkRCCis6MTAyODEwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkMyCis6MTAyODIwMDAwMEZGMDBGRkZGRkYwMEZGMDBGRjAwRkZGRkZGMDBGRkIyCis6MTAyODMwMDA0NkZGOTBGRkZGRkY2N0ZGRjdGRjRGRkZGRkZGRjRGRjJCCis6MTAyODQwMDA0NkZGOTBGRkZGRkY3NEZGOERGRjgzRkZGRkZGNzBGRkM4Cis6MTAyODUwMDA0N0ZGOTBGRkZGRkYwMEZGMDBGRjQ4RkZGRkZGMDRGRjVGCis6MTAyODYwMDBBMEZGMjNGRkZGRkYwRkZGNDZGRjkwRkZGRkZGNkFGRjYwCis6MTAyODcwMDAwMEZGMENGRkZGRkYyMEZGMDBGRjBBRkZGRkZGMUZGRjBECis6MTAyODgwMDA4REZGODNGRkZGRkZEMEZGMDBGRjQwRkZGRkZGMjRGRjBFCis6MTAyODkwMDBBMEZGMjNGRkZGRkYwRkZGMTFGRjkwRkZGRkZGNkFGRjY1Cis6MTAyOEEwMDAwMEZGNDBGRkZGRkYxNEZGMThGRjIzRkZGRkZGMEZGRjk0Cis6MTAyOEIwMDA1MUZGMTRGRkZGRkY4MUZGOTBGRjgwRkZGRkZGNjBGRkNDCis6MTAyOEMwMDA4MEZGMjNGRkZGRkYwRkZGOERGRjgzRkZGRkZGRDBGRjgwCis6MTAyOEQwMDAwMEZGNDBGRkZGRkYxNEZGQTBGRjIzRkZGRkZGMEZGRkRDCis6MTAyOEUwMDAxMUZGOTBGRkZGRkY2QUZGMzBGRjBDRkZGRkZGMDBGRkFCCis6MTAyOEYwMDAwMEZGNDBGRkZGRkYxNkZGMTBGRjQwRkZGRkZGMDdGRjM1Cis6MTAyOTAwMDA5MEZGMzRGRkZGRkY3MUZGMDBGRjM0RkZGRkZGMDlGRjVGCis6MTAyOTEwMDAwRkZGNDBGRkZGRkZGNUZGMDBGRjYwRkZGRkZGMDdGRjE2Cis6MTAyOTIwMDA4OEZGNjNGRkZGRkYyN0ZGRThGRjYwRkZGRkZGMDdGRjUwCis6MTAyOTMwMDA2MkZGNjFGRkZGRkYyN0ZGODhGRjJCRkZGRkZGOEJGRjc5Cis6MTAyOTQwMDBFOEZGNjBGRkZGRkYwN0ZGNjJGRjYxRkZGRkZGMTdGRjY4Cis6MTAyOTUwMDA4OEZGMkZGRkZGRkZGQkZGODlGRjIzRkZGRkZGMEZGRjE0Cis6MTAyOTYwMDA5OEZGMjBGRkZGRkYwRkZGRUFGRjIwRkZGRkZGMEZGRjkxCis6MTAyOTcwMDAwMEZGMERGRkZGRkZBQkZGMDBGRjBERkZGRkZGQjhGRkU0Cis6MTAyOTgwMDAwMEZGMERGRkZGRkZDRkZGNjJGRjIxRkZGRkZGMEZGRkUzCis6MTAyOTkwMDAxMEZGMjJGRkZGRkYwRkZGNjJGRjIxRkZGRkZGMEZGRjZFCis6MTAyOUEwMDAwMEZGNDBGRkZGRkYyNEZGOTBGRjgwRkZGRkZGNjBGRjVECis6MTAyOUIwMDA4MEZGMjNGRkZGRkYwRkZGNTFGRjE4RkZGRkZGMDBGRjA2Cis6MTAyOUMwMDA4QkZGOTNGRkZGRkZFQkZGOEJGRjkzRkZGRkZGRkNGRkVFCis6MTAyOUQwMDAwMEZGMEFGRkZGRkYwRkZGNTFGRjFDRkZGRkZGMEZGRjZDCis6MTAyOUUwMDA4REZGOTNGRkZGRkZBQ0ZGODJGRjNDRkZGRkZGNDVGRjIyCis6MTAyOUYwMDA1NEZGMTRGRkZGRkYyRUZGRkZGRjNGRkZGRkZGRjVGRjE4Cis6MTAyQTAwMDA1NEZGMTRGRkZGRkYxRUZGMDBGRjAwRkZGRkZGMDBGRjRBCis6MTAyQTEwMDAwMEZGMDBGRkZGRkYwMEZGNTFGRjFDRkZGRkZGMEZGRjQ0Cis6MTAyQTIwMDAwMEZGMERGRkZGRkYwQ0ZGOERGRjgzRkZGRkZGQTRGRkUzCis6MTAyQTMwMDBFMEZGMjJGRkZGRkYwRkZGNTNGRjE4RkZGRkZGQjNGRjcxCis6MTAyQTQwMDA4REZGODNGRkZGRkZEMEZGMDBGRjQwRkZGRkZGMjRGRjRDCis6MTAyQTUwMDBBMEZGMjNGRkZGRkYwRkZGMDBGRjBERkZGRkZGQkFGRkU3Cis6MTAyQTYwMDA4QkZGODNGRkZGRkZGNUZGMTFGRjkwRkZGRkZGNkJGRjYxCis6MTAyQTcwMDAwMEZGNDBGRkZGRkYxNEZGMThGRjIzRkZGRkZGMEZGRkMyCis6MTAyQTgwMDA1NUZGMTRGRkZGRkYyMUZGOTBGRjgwRkZGRkZGNjBGRjU2Cis6MTAyQTkwMDA4MEZGMjNGRkZGRkYwRkZGMDBGRjQwRkZGRkZGMjBGRjJFCis6MTAyQUEwMDAwMEZGNDBGRkZGRkYwMUZGOEJGRjgzRkZGRkZGRTRGRkZECis6MTAyQUIwMDA4QkZGODNGRkZGRkZGNUZGMDhGRjBDRkZGRkZGMDBGRjA5Cis6MTAyQUMwMDA2MEZGMjJGRkZGRkYwRkZGNDlGRjJBRkZGRkZGRUFGRjIyCis6MTAyQUQwMDAwMEZGMERGRkZGRkY0RUZGOEJGRjkzRkZGRkZGRUVGRjk5Cis6MTAyQUUwMDAwMEZGMERGRkZGRkY1QUZGOEJGRjkzRkZGRkZGRkFGRjcxCis6MTAyQUYwMDA4REZGODNGRkZGRkYyMEZGOERGRjgzRkZGRkZGMzFGRjZGCis6MTAyQjAwMDBFMEZGMjJGRkZGRkYwRkZGQzlGRjJBRkZGRkZGRUFGRkUxCis6MTAyQjEwMDA1NEZGMThGRkZGRkZENUZGMDBGRjBERkZGRkZGNEVGRjIzCis6MTAyQjIwMDAwMEZGMERGRkZGRkY1QUZGODJGRjRGRkZGRkZGRjBGRjg3Cis6MTAyQjMwMDBGRkZGNEZGRkZGRkZGMUZGRTBGRjIyRkZGRkZGMEZGRjRGCis6MTAyQjQwMDBDOUZGMkFGRkZGRkZFQUZGNTZGRjE4RkZGRkZGQjRGRjkwCis6MTAyQjUwMDA1NEZGMThGRkZGRkZERkZGMDBGRjQwRkZGRkZGMjBGRkQ0Cis6MTAyQjYwMDA0N0ZGOTBGRkZGRkYyMEZGMENGRjBDRkZGRkZGMDBGRjYwCis6MTAyQjcwMDAwMkZGNDBGRkZGRkY2MEZGMTFGRjkwRkZGRkZGMjBGRkZDCis6MTAyQjgwMDAxNkZGMThGRkZGRkY0RkZGOERGRjgzRkZGRkZGRDBGRkYyCis6MTAyQjkwMDAwMEZGNDBGRkZGRkYyNEZGQTBGRjIzRkZGRkZGMEZGRjA5Cis6MTAyQkEwMDAxMUZGOTBGRkZGRkY2QUZGMDBGRjQwRkZGRkZGMTRGRkQwCis6MTAyQkIwMDAxOEZGMjNGRkZGRkYwRkZGNTdGRjE0RkZGRkZGOTFGRkQ5Cis6MTAyQkMwMDA5MEZGODBGRkZGRkY2MEZGODBGRjIzRkZGRkZGMEZGRkVECis6MTAyQkQwMDA4REZGODNGRkZGRkZEMEZGMDBGRjQwRkZGRkZGMTRGRkNCCis6MTAyQkUwMDBBMEZGMjNGRkZGRkYwRkZGMTFGRjkwRkZGRkZGNkFGRjEyCis6MTAyQkYwMDAzMEZGMENGRkZGRkYwMEZGMDBGRjQwRkZGRkZGMTZGRjRECis6MTAyQzAwMDAxMEZGNDBGRkZGRkYwN0ZGOTBGRjM0RkZGRkZGNzFGRjQyCis6MTAyQzEwMDAwMEZGMzRGRkZGRkYwOUZGMEZGRjQwRkZGRkZGRjVGRjNECis6MTAyQzIwMDAwMEZGNjBGRkZGRkYwN0ZGODhGRjYzRkZGRkZGMjdGRjM1Cis6MTAyQzMwMDBFOEZGNjBGRkZGRkYwN0ZGNjJGRjYxRkZGRkZGMjdGRjY1Cis6MTAyQzQwMDA4OEZGMkJGRkZGRkY4QkZGRThGRjYwRkZGRkZGMDdGRjAxCis6MTAyQzUwMDA2MkZGNjFGRkZGRkYxN0ZGODhGRjJGRkZGRkZGRkJGRkYyCis6MTAyQzYwMDA4OUZGMjNGRkZGRkYwRkZGOThGRjIwRkZGRkZGMEZGRkVDCis6MTAyQzcwMDBFQUZGMjBGRkZGRkYwRkZGMDBGRjBERkZGRkZGQUJGRjhECis6MTAyQzgwMDAwMEZGMERGRkZGRkZCOEZGMDBGRjBERkZGRkZGQ0ZGRkFECis6MTAyQzkwMDA2MkZGMjFGRkZGRkYwRkZGMTBGRjIyRkZGRkZGMEZGRjZCCis6MTAyQ0EwMDA2MkZGMjFGRkZGRkYwRkZGMDBGRjQwRkZGRkZGMjRGRjM4Cis6MTAyQ0IwMDA5MEZGODBGRkZGRkY2MEZGODBGRjIzRkZGRkZGMEZGRkZDCis6MTAyQ0MwMDA1N0ZGMThGRkZGRkYxMEZGOEJGRjkzRkZGRkZGRUJGRjg2Cis6MTAyQ0QwMDA4QkZGOTNGRkZGRkZGQ0ZGNUNGRjFDRkZGRkZGM0ZGRjJECis6MTAyQ0UwMDAwMEZGMEFGRkZGRkYwRkZGNTdGRjFDRkZGRkZGMUZGRjQzCis6MTAyQ0YwMDA4REZGOTNGRkZGRkZBQ0ZGODJGRjNDRkZGRkZGNDVGRjBGCis6MTAyRDAwMDA1QUZGMTRGRkZGRkY0RUZGRkZGRjNGRkZGRkZGRjVGRkRFCis6MTAyRDEwMDA1QUZGMTRGRkZGRkYzRUZGMDBGRjAwRkZGRkZGMDBGRjExCis6MTAyRDIwMDAwMEZGMDBGRkZGRkYwMEZGNTdGRjFDRkZGRkZGMUZGRjFCCis6MTAyRDMwMDAwMEZGMERGRkZGRkYwQ0ZGOERGRjgzRkZGRkZGQTRGRkQwCis6MTAyRDQwMDBFMEZGMjJGRkZGRkYwRkZGNTlGRjE4RkZGRkZGRDNGRjM4Cis6MTAyRDUwMDA1Q0ZGMUNGRkZGRkYzRkZGOERGRjgzRkZGRkZGRDBGRkU2Cis6MTAyRDYwMDAwMEZGNDBGRkZGRkYyNEZGQTBGRjIzRkZGRkZGMEZGRjM3Cis6MTAyRDcwMDAwMEZGMERGRkZGRkZCQUZGOEJGRjgzRkZGRkZGRjVGRjkzCis6MTAyRDgwMDA1Q0ZGMUNGRkZGRkYzRkZGMTFGRjkwRkZGRkZGNkJGRjhBCis6MTAyRDkwMDAwMEZGNDBGRkZGRkYxNEZGMThGRjIzRkZGRkZGMEZGRjlGCis6MTAyREEwMDA1QkZGMTRGRkZGRkY2MUZGOTBGRjgwRkZGRkZGNjBGRkVECis6MTAyREIwMDA4MEZGMjNGRkZGRkYwRkZGMDBGRjQwRkZGRkZGMjBGRjBCCis6MTAyREMwMDAwMEZGNDBGRkZGRkYwMUZGOEJGRjgzRkZGRkZGRTRGRkRBCis6MTAyREQwMDA4QkZGODNGRkZGRkZGNUZGMDhGRjBDRkZGRkZGMDBGRkU2Cis6MTAyREUwMDA2MEZGMjJGRkZGRkYwRkZGNDlGRjJBRkZGRkZGRUFGRkZGCis6MTAyREYwMDAwMEZGMERGRkZGRkY0RUZGOEJGRjkzRkZGRkZGRUVGRjc2Cis6MTAyRTAwMDA4QkZGOTNGRkZGRkZGQUZGNUVGRjFDRkZGRkZGMEZGRjJCCis6MTAyRTEwMDA1QkZGMThGRkZGRkYwRkZGOEJGRjgzRkZGRkZGMjBGRjBDCis6MTAyRTIwMDA3OEZGMjJGRkZGRkYwRkZGMERGRjE4RkZGRkZGMDVGRkQ5Cis6MTAyRTMwMDAwMEZGMEFGRkZGRkYwRkZGMDhGRjBDRkZGRkZGMDBGRjZGCis6MTAyRTQwMDAwMEZGNDBGRkZGRkYxNEZGMDBGRjQwRkZGRkZGMDVGRkYzCis6MTAyRTUwMDA4QkZGODNGRkZGRkZFMEZGOEJGRjgzRkZGRkZGRjFGRjhGCis6MTAyRTYwMDA2MEZGMjJGRkZGRkYwRkZGNDlGRjJBRkZGRkZGRUFGRjdFCis6MTAyRTcwMDA4QkZGOTNGRkZGRkZGQUZGOEJGRjkzRkZGRkZGRUVGRjM4Cis6MTAyRTgwMDAwQ0ZGMENGRkZGRkYwMEZGMDBGRjBBRkZGRkZGMEZGRjFCCis6MTAyRTkwMDAwOEZGMENGRkZGRkYwMEZGMDBGRjQwRkZGRkZGMTRGRkQ0Cis6MTAyRUEwMDAwMEZGNDBGRkZGRkYwNUZGOEJGRjgzRkZGRkZGRTBGRkY5Cis6MTAyRUIwMDA4QkZGODNGRkZGRkZGMUZGNjBGRjIyRkZGRkZGMEZGRjhDCis6MTAyRUMwMDA0OUZGMkFGRkZGRkZFQUZGOEJGRjkzRkZGRkZGRkFGRjk3Cis6MTAyRUQwMDA4QkZGOTNGRkZGRkZFRUZGMENGRjBDRkZGRkZGMDBGRkQ4Cis6MTAyRUUwMDA4REZGODNGRkZGRkY0MEZGNzhGRjIyRkZGRkZGMEZGRkYzCis6MTAyRUYwMDA1RUZGMUNGRkZGRkYwNEZGMDBGRjBBRkZGRkZGMEZGRjQ1Cis6MTAyRjAwMDAwOEZGMENGRkZGRkYwMEZGOERGRjgzRkZGRkZGNTBGRjU3Cis6MTAyRjEwMDA3OEZGMjJGRkZGRkYwRkZGNUZGRjFDRkZGRkZGNTRGRjQzCis6MTAyRjIwMDAwRkZGNDBGRkZGRkZGNUZGOTBGRjgwRkZGRkZGQThGRkFGCis6MTAyRjMwMDAxMEZGMEZGRkZGRkYwOEZGOTBGRjgwRkZGRkZGOTBGRkQ0Cis6MTAyRjQwMDA4OEZGMjdGRkZGRkYwRkZGQjZGRjI3RkZGRkZGMEZGRkUxCis6MTAyRjUwMDA4QkZGODNGRkZGRkZGQUZGRjJGRjIyRkZGRkZGMEZGRjUwCis6MTAyRjYwMDAwMEZGMERGRkZGRkYwQUZGMDBGRjQwRkZGRkZGMTRGRjAwCis6MTAyRjcwMDBFMkZGMjJGRkZGRkYwRkZGNzRGRjE4RkZGRkZGRTJGRkRBCis6MTAyRjgwMDAzOEZGMjNGRkZGRkYwRkZGMDBGRjQwRkZGRkZGMjRGRjdECis6MTAyRjkwMDBFMkZGMjJGRkZGRkYwRkZGNzRGRjE4RkZGRkZGRTJGRkJBCis6MTAyRkEwMDAwMEZGMEFGRkZGRkYwRkZGMEZGRjQwRkZGRkZGRjVGRkNFCis6MTAyRkIwMDA5MEZGODBGRkZGRkY4MEZGOEJGRjgzRkZGRkZGRTJGRjlCCis6MTAyRkMwMDA4OEZGMjdGRkZGRkYwRkZGOThGRjIwRkZGRkZGMEZGRjg2Cis6MTAyRkQwMDAxMEZGNDBGRkZGRkYwN0ZGRThGRjIwRkZGRkZGMEZGRjhECis6MTAyRkUwMDAwMEZGMERGRkZGRkZBQ0ZGRjJGRjIyRkZGRkZGMEZGRjBGCis6MTAyRkYwMDAwMEZGMERGRkZGRkYwQUZGMDFGRjQwRkZGRkZGMDRGRjdGCis6MTAzMDAwMDBFMkZGMjJGRkZGRkYwRkZGNzRGRjE4RkZGRkZGRTJGRjQ5Cis6MTAzMDEwMDAzOEZGMjNGRkZGRkYwRkZGMDJGRjQwRkZGRkZGMDRGRjBBCis6MTAzMDIwMDBFMkZGMjJGRkZGRkYwRkZGNzRGRjE4RkZGRkZGRTJGRjI5Cis6MTAzMDMwMDAwMEZGMEFGRkZGRkYwRkZGMDBGRjM0RkZGRkZGMDhGRjQ1Cis6MTAzMDQwMDAwMEZGMzRGRkZGRkZENEZGMDBGRjM0RkZGRkZGODVGRkM5Cis6MTAzMDUwMDBGRkZGNEZGRkZGRkY4OUZGMDBGRjA5RkZGRkZGMDFGRjk5Cis6MTAzMDYwMDA4OUZGODNGRkZGRkZCOEZGMDBGRjBFRkZGRkZGMEZGRjg5Cis6MTAzMDcwMDAwMEZGMERGRkZGRkY0RUZGQTdGRjIzRkZGRkZGMEZGRjI2Cis6MTAzMDgwMDAwMEZGNjhGRkZGRkZBM0ZGODlGRjgzRkZGRkZGQThGRjhCCis6MTAzMDkwMDAwMEZGMEVGRkZGRkYwRkZGMDBGRjBERkZGRkZGNEVGRkMyCis6MTAzMEEwMDBBN0ZGMjNGRkZGRkYwRkZGMDBGRjY4RkZGRkZGQTNGRjQ2Cis6MTAzMEIwMDAwMEZGMDlGRkZGRkYwM0ZGOEJGRjgzRkZGRkZGQjBGRjUwCis6MTAzMEMwMDAwMEZGNjhGRkZGRkYwMEZGMDBGRjBBRkZGRkZGMEZGRjg5Cis6MTAzMEQwMDAwMkZGMzVGRkZGRkYwMEZGMDBGRjM0RkZGRkZGMDhGRjg3Cis6MTAzMEUwMDAwMEZGMzRGRkZGRkYyNkZGODlGRjgzRkZGRkZGRDhGRkFDCis6MTAzMEYwMDAwMEZGMEVGRkZGRkYwRkZGMDBGRjBERkZGRkZGNEVGRjYyCis6MTAzMTAwMDBBN0ZGMjNGRkZGRkYwRkZGMDBGRjY4RkZGRkZGQTNGRkU1Cis6MTAzMTEwMDA4OUZGODNGRkZGRkZDOEZGMDBGRjBFRkZGRkZGMEZGRkM4Cis6MTAzMTIwMDAwMEZGMERGRkZGRkY0RUZGQTdGRjIzRkZGRkZGMEZGRjc1Cis6MTAzMTMwMDAwMEZGNjhGRkZGRkZBM0ZGMDBGRjA5RkZGRkZGMDNGRjgyCis6MTAzMTQwMDA4QkZGODNGRkZGRkZEMEZGMDBGRjY4RkZGRkZGMDJGRjQxCis6MTAzMTUwMDAwMUZGNDBGRkZGRkY4MEZGMDBGRjY4RkZGRkZGMDJGRjRFCis6MTAzMTYwMDAwMEZGNDBGRkZGRkYyMEZGMDBGRjY4RkZGRkZGMDNGRjlFCis6MTAzMTcwMDAwMEZGMEFGRkZGRkYwRkZGMDBGRjQwRkZGRkZGMTBGRkYwCis6MTAzMTgwMDA4QkZGOTNGRkZGRkY0MEZGMzBGRjQwRkZGRkZGMDBGRjdCCis6MTAzMTkwMDA0OUZGOTBGRkZGRkY0MEZGMDBGRjBBRkZGRkZGMEZGRjA3Cis6MTAzMUEwMDAwMEZGNDBGRkZGRkY2MEZGMDBGRjkxRkZGRkZGRjBGRjA4Cis6MTAzMUIwMDAwMEZGMEFGRkZGRkYwRkZGMDFGRjQyRkZGRkZGODBGRjNECis6MTAzMUMwMDAwMEZGOTFGRkZGRkY3MEZGMDdGRjQyRkZGRkZGODBGRjNGCis6MTAzMUQwMDAwM0ZGOTFGRkZGRkY3MEZGMDJGRjQyRkZGRkZGMDBGRkIxCis6MTAzMUUwMDAwMEZGOTFGRkZGRkZGMEZGMDhGRjQyRkZGRkZGMDBGRjFFCis6MTAzMUYwMDAwM0ZGOTFGRkZGRkZGMEZGMDBGRjQwRkZGRkZGMjBGRkY1Cis6MTAzMjAwMDAwMUZGOTFGRkZGRkY3MEZGMDBGRjQwRkZGRkZGMjBGRjY2Cis6MTAzMjEwMDAwNEZGOTFGRkZGRkY3MEZGMDBGRjBBRkZGRkZGMEZGRjlBCis6MTAzMjIwMDAwNEZGNDJGRkZGRkYwMEZGNDlGRjkwRkZGRkZGMjBGRjY5Cis6MTAzMjMwMDA2MkZGMUNGRkZGRkZGRkZGMDBGRjBBRkZGRkZGMEZGRjAyCis6MTAzMjQwMDAwMEZGNDBGRkZGRkYyMEZGMDBGRjkxRkZGRkZGRjBGRkE3Cis6MTAzMjUwMDAwMUZGNDJGRkZGRkYwMEZGNDlGRjkwRkZGRkZGMjBGRjNDCis6MTAzMjYwMDA2MkZGMUNGRkZGRkZGRkZGMDBGRjBBRkZGRkZGMEZGRkQyCis6MTAzMjcwMDAwMEZGNDBGRkZGRkY0MEZGOEJGRjkzRkZGRkZGODBGRjNBCis6MTAzMjgwMDAwNUZGMzVGRkZGRkYwMEZGOTJGRjNCRkZGRkZGMDBGRjQxCis6MTAzMjkwMDAwMEZGMzRGRkZGRkYwOEZGMDBGRjM4RkZGRkZGMDhGRkJDCis6MTAzMkEwMDAwMEZGM0NGRkZGRkY2NUZGNjVGRjE0RkZGRkZGOUVGRjcwCis6MTAzMkIwMDAwMEZGNjBGRkZGRkYwM0ZGMDBGRjYwRkZGRkZGMTNGRjQyCis6MTAzMkMwMDAwMEZGNzhGRkZGRkYxM0ZGMDBGRjc4RkZGRkZGMDNGRjAyCis6MTAzMkQwMDAwMUZGNDJGRkZGRkYwMEZGNDlGRjkwRkZGRkZGMjBGRkJDCis6MTAzMkUwMDA2MkZGMUNGRkZGRkZGRkZGMDVGRjgxRkZGRkZGQzBGRjI1Cis6MTAzMkYwMDA3OEZGMjJGRkZGRkYwRkZGMjFGRjE4RkZGRkZGNzFGRjg1Cis6MTAzMzAwMDAwMEZGMEFGRkZGRkYwRkZGNDlGRjgwRkZGRkZGNDhGRjlECis6MTAzMzEwMDAxMEZGMEZGRkZGRkYwM0ZGNjZGRjIzRkZGRkZGMEZGRkZECis6MTAzMzIwMDA3NEZGMThGRkZGRkY1NEZGODZGRjgzRkZGRkZGQzBGRkZFCis6MTAzMzMwMDA0OUZGOTBGRkZGRkYyMEZGNjJGRjFDRkZGRkZGRkZGRjIxCis6MTAzMzQwMDA4NkZGODNGRkZGRkY4MEZGMDFGRjQwRkZGRkZGMDRGRkI5Cis6MTAzMzUwMDBFMEZGMjJGRkZGRkYwRkZGODZGRjkzRkZGRkZGOEFGRkMzCis6MTAzMzYwMDA2N0ZGMUNGRkZGRkYwMEZGODZGRjg3RkZGRkZGRDBGRjA3Cis6MTAzMzcwMDA3NUZGMUNGRkZGRkYxRkZGMDBGRjBBRkZGRkZGMEZGRjhFCis6MTAzMzgwMDAwMEZGNDhGRkZGRkYwMEZGODJGRjkzRkZGRkZGNDBGRkFBCis6MTAzMzkwMDAwMEZGMEFGRkZGRkYwRkZGMDhGRjBDRkZGRkZGMDBGRjBBCis6MTAzM0EwMDA4NkZGOEJGRkZGRkZCMEZGMDBGRjM4RkZGRkZGMDhGRjI2Cis6MTAzM0IwMDAwMEZGMzhGRkZGRkZGNEZGRkZGRjRGRkZGRkZGODlGRjE0Cis6MTAzM0MwMDA4REZGODNGRkZGRkY2MEZGODlGRjgzRkZGRkZGNDRGRjQ3Cis6MTAzM0QwMDAwMEZGNDBGRkZGRkYwMUZGODlGRjgzRkZGRkZGNTVGRjU1Cis6MTAzM0UwMDA2MEZGMjZGRkZGRkYwRkZGNDlGRjIyRkZGRkZGMEZGRkQ4Cis6MTAzM0YwMDAwMEZGNzhGRkZGRkZBM0ZGMTBGRjIyRkZGRkZGMEZGRjdCCis6MTAzNDAwMDAwMEZGNzhGRkZGRkZBMEZGOERGRjgzRkZGRkZGNjBGRjNFCis6MTAzNDEwMDA4OUZGODNGRkZGRkYyNEZGMDBGRjQwRkZGRkZGMDFGRjQ1Cis6MTAzNDIwMDA4OUZGODNGRkZGRkYzNUZGNjBGRjI2RkZGRkZGMEZGRkQwCis6MTAzNDMwMDA0OUZGMjJGRkZGRkYwRkZGMDBGRjc4RkZGRkZGQTNGRjAxCis6MTAzNDQwMDAxMEZGMjJGRkZGRkYwRkZGMDBGRjc4RkZGRkZGQTNGRjJBCis6MTAzNDUwMDA4REZGODNGRkZGRkY2MEZGMjBGRjQwRkZGRkZGMDRGRkEyCis6MTAzNDYwMDA2MEZGMjJGRkZGRkYwRkZGOERGRjkzRkZGRkZGNkFGRjRCCis6MTAzNDcwMDAwQ0ZGMENGRkZGRkYwMEZGMDBGRjBBRkZGRkZGMEZGRjI1Cis6MTAzNDgwMDAwOEZGMENGRkZGRkYwMEZGODZGRjg3RkZGRkZGQjBGRjc1Cis6MTAzNDkwMDAwMEZGMzRGRkZGRkYwOEZGMDFGRjM0RkZGRkZGMDRGRkMxCis6MTAzNEEwMDAwMEZGMzRGRkZGRkYzNUZGRkZGRjRGRkZGRkZGODlGRkU2Cis6MTAzNEIwMDAwMEZGMDlGRkZGRkYwMUZGODdGRjhCRkZGRkZGRTBGRjFBCis6MTAzNEMwMDAwMEZGMzhGRkZGRkY4OEZGMDBGRjcwRkZGRkZGMDNGRkQzCis6MTAzNEQwMDAwMEZGNjhGRkZGRkYwMEZGMDBGRjcwRkZGRkZGMDNGRjFCCis6MTAzNEUwMDAwMEZGNjhGRkZGRkYwM0ZGODdGRjlCRkZGRkZGRTBGRjc5Cis6MTAzNEYwMDAwQ0ZGMENGRkZGRkYwMEZGMDBGRjBBRkZGRkZGMEZGRkE1Cis6MTAzNTAwMDAwMUZGM0NGRkZGRkYwNUZGNkFGRjE0RkZGRkZGOUVGRjY3Cis6MTAzNTEwMDA2N0ZGMUNGRkZGRkYzRkZGNjlGRjFDRkZGRkZGMEZGRjVGCis6MTAzNTIwMDA2NkZGMUNGRkZGRkYxRkZGMzhGRjIyRkZGRkZGMEZGRjlCCis6MTAzNTMwMDA2QUZGMTRGRkZGRkY4NUZGOEJGRjgzRkZGRkZGNDBGRjQ0Cis6MTAzNTQwMDA3OEZGMjJGRkZGRkYwRkZGMDBGRjAwRkZGRkZGMDBGRkRDCis6MTAzNTUwMDAwMEZGMEFGRkZGRkYwRkZGODJGRjgzRkZGRkZGNDBGRjE3Cis6MTAzNTYwMDA3OEZGMjJGRkZGRkYwRkZGNkFGRjFDRkZGRkZGRjRGRjQyCis6MTAzNTcwMDAwMEZGMEFGRkZGRkYwRkZGMDBGRjQwRkZGRkZGMTBGRkVDCis6MTAzNTgwMDA0N0ZGOTBGRkZGRkYyMEZGODdGRjgzRkZGRkZGRjBGRjU0Cis6MTAzNTkwMDA4NkZGOTNGRkZGRkY4MEZGMDBGRjQwRkZGRkZGMDBGRjVDCis6MTAzNUEwMDA4REZGOTNGRkZGRkY2MEZGODJGRjkzRkZGRkZGNDBGRjUwCis6MTAzNUIwMDA4NkZGODdGRkZGRkY5MEZGMDJGRjM0RkZGRkZGMDhGRjNBCis6MTAzNUMwMDAwMEZGNjBGRkZGRkYwM0ZGODlGRjkzRkZGRkZGMjBGRjY2Cis6MTAzNUQwMDAwMEZGNjBGRkZGRkYwM0ZGODlGRjkzRkZGRkZGMzBGRjQ2Cis6MTAzNUUwMDAwMEZGNjBGRkZGRkYwM0ZGODlGRjkzRkZGRkZGNDBGRjI2Cis6MTAzNUYwMDAwMEZGNjBGRkZGRkYwM0ZGODlGRjkzRkZGRkZGNTBGRjA2Cis6MTAzNjAwMDA4NkZGOTdGRkZGRkY5MEZGMDBGRjBBRkZGRkZGMEZGRkZFCis6MTAzNjEwMDAwMEZGMzRGRkZGRkY2NEZGMDBGRjM0RkZGRkZGMzVGRkIzCis6MTAzNjIwMDAwMUZGMzRGRkZGRkY5NkZGMDBGRjM4RkZGRkZGMzRGRjZECis6MTAzNjMwMDAwMEZGMzhGRkZGRkY2NUZGMDFGRjM4RkZGRkZGOTZGRjI4Cis6MTAzNjQwMDAwMEZGMzhGRkZGRkYwOEZGMDJGRjM0RkZGRkZGNDlGRkM1Cis6MTAzNjUwMDAwMkZGMzhGRkZGRkY0OUZGMTBGRjQwRkZGRkZGMDZGRjlCCis6MTAzNjYwMDAxMEZGNDBGRkZGRkYwMkZGMzBGRjBDRkZGRkZGMDBGRkQ2Cis6MTAzNjcwMDAwMEZGM0NGRkZGRkYyNUZGNkRGRjE0RkZGRkZGQkVGRkI0Cis6MTAzNjgwMDA5OEZGNTBGRkZGRkY3M0ZGODhGRjUwRkZGRkZGNzNGRjlFCis6MTAzNjkwMDA4M0ZGNjhGRkZGRkZDNUZGODhGRjY4RkZGRkZGQzRGRkQwCis6MTAzNkEwMDA4M0ZGNjhGRkZGRkZDNUZGMDBGRjY4RkZGRkZGQzZGRjQ2Cis6MTAzNkIwMDA5OEZGNTBGRkZGRkY3M0ZGODhGRjUwRkZGRkZGNzNGRjZFCis6MTAzNkMwMDA4M0ZGNzhGRkZGRkZDNEZGODhGRjc4RkZGRkZGQzVGRjgwCis6MTAzNkQwMDA4M0ZGNzhGRkZGRkZDNEZGMDBGRjc4RkZGRkZGQzZGRkY3Cis6MTAzNkUwMDA5OEZGNTBGRkZGRkY3M0ZGODhGRjUwRkZGRkZGNzNGRjNFCis6MTAzNkYwMDA4M0ZGNjhGRkZGRkZDNUZGODhGRjY4RkZGRkZGQzRGRjcwCis6MTAzNzAwMDA4M0ZGNjhGRkZGRkZDNUZGMDBGRjY4RkZGRkZGQzZGRkU1Cis6MTAzNzEwMDAwMEZGM0NGRkZGRkYyNUZGNkVGRjE0RkZGRkZGOEVGRjQyCis6MTAzNzIwMDA5OEZGNTBGRkZGRkY3M0ZGODhGRjUwRkZGRkZGNzNGRkZECis6MTAzNzMwMDA4M0ZGNzhGRkZGRkZDNEZGODhGRjc4RkZGRkZGQzRGRjEwCis6MTAzNzQwMDAwMEZGNzhGRkZGRkZDNEZGMjBGRjBDRkZGRkZGMDBGRjFCCis6MTAzNzUwMDAwMEZGMEFGRkZGRkYwRkZGMDBGRjM0RkZGRkZGRTlGRjNECis6MTAzNzYwMDAwMUZGMzhGRkZGRkYyOEZGMDFGRjM4RkZGRkZGMjlGRkEwCis6MTAzNzcwMDAwMEZGMzhGRkZGRkY2NkZGMDBGRjM4RkZGRkZGMzRGRjQ5Cis6MTAzNzgwMDAwMEZGMzhGRkZGRkY3NUZGMTBGRjQwRkZGRkZGMDZGRjQwCis6MTAzNzkwMDAwMEZGNDFGRkZGRkYwN0ZGMzBGRjBDRkZGRkZGMDBGRkFGCis6MTAzN0EwMDA5OEZGNzBGRkZGRkYyMEZGMDBGRjNDRkZGRkZGMjVGRjlBCis6MTAzN0IwMDA3MEZGMTRGRkZGRkYyRUZGODBGRjcwRkZGRkZGNDJGRjJGCis6MTAzN0MwMDA2M0ZGNzJGRkZGRkYyMEZGODBGRjY4RkZGRkZGQTdGRjdGCis6MTAzN0QwMDAwMEZGNzBGRkZGRkY0MUZGNjNGRjcyRkZGRkZGMjRGRjQ5Cis6MTAzN0UwMDA4MEZGNjhGRkZGRkZBN0ZGMDBGRjcwRkZGRkZGNDZGRjlFCis6MTAzN0YwMDA2M0ZGNzJGRkZGRkYyNEZGODBGRjY4RkZGRkZGQTdGRjRCCis6MTAzODAwMDAwMEZGNzBGRkZGRkY0NUZGNjNGRjcyRkZGRkZGMjBGRjE4Cis6MTAzODEwMDAwMEZGNjhGRkZGRkZBN0ZGODBGRjcwRkZGRkZGNDJGRjcxCis6MTAzODIwMDA2M0ZGNzJGRkZGRkYyMEZGODBGRjcwRkZGRkZGNDFGRjdDCis6MTAzODMwMDA2M0ZGNkFGRkZGRkZBN0ZGMDBGRjcwRkZGRkZGMjRGRjhBCis6MTAzODQwMDA4MEZGNjhGRkZGRkZBN0ZGMDBGRjcwRkZGRkZGNDRGRjNGCis6MTAzODUwMDA2M0ZGNzJGRkZGRkYyNEZGODBGRjY4RkZGRkZGQTdGRkVBCis6MTAzODYwMDBGMEZGNDBGRkZGRkYwNUZGMDBGRjRGRkZGRkZGMDRGRkRBCis6MTAzODcwMDAwMEZGMERGRkZGRkYwQkZGODBGRjI3RkZGRkZGMEZGRjg0Cis6MTAzODgwMDA4OEZGMjNGRkZGRkYwRkZGRUFGRjIwRkZGRkZGMEZGRjZGCis6MTAzODkwMDA3NEZGMjJGRkZGRkYwRkZGMDBGRjY4RkZGRkZGQTdGRjdFCis6MTAzOEEwMDAwMEZGNzBGRkZGRkYyNEZGODBGRjcwRkZGRkZGNDRGRjVBCis6MTAzOEIwMDA2M0ZGNzJGRkZGRkYyNEZGODBGRjY4RkZGRkZGQTdGRjhBCis6MTAzOEMwMDAwMEZGNEZGRkZGRkYwNEZGMDBGRjBERkZGRkZGMEJGRjk3Cis6MTAzOEQwMDA4MEZGMjdGRkZGRkYwRkZGODhGRjIzRkZGRkZGMEZGRjgyCis6MTAzOEUwMDBFQUZGMjBGRkZGRkYwRkZGNzRGRjIyRkZGRkZGMEZGRjI0Cis6MTAzOEYwMDAwMEZGNjhGRkZGRkZBN0ZGMDBGRjBBRkZGRkZGMEZGRkFBCis6MTAzOTAwMDAzOEZGMjJGRkZGRkYwRkZGNzJGRjE0RkZGRkZGMzVGRjlECis6MTAzOTEwMDA4QkZGODNGRkZGRkYzMEZGNzhGRjIyRkZGRkZGMEZGRkNBCis6MTAzOTIwMDAwMEZGMEFGRkZGRkYwRkZGMEVGRjQwRkZGRkZGMDBGRjNBCis6MTAzOTMwMDAxMEZGOTBGRkZGRkYxMEZGMDhGRjQwRkZGRkZGMDBGRjk5Cis6MTAzOTQwMDAxMEZGOTBGRkZGRkY5MEZGMDJGRjQwRkZGRkZGNDBGRkNGCis6MTAzOTUwMDAxMUZGOTBGRkZGRkYyMEZGMDBGRjQwRkZGRkZGMDBGRjcwCis6MTAzOTYwMDAxMEZGOTBGRkZGRkZCMEZGQjBGRjQwRkZGRkZGMDBGRjIxCis6MTAzOTcwMDA0N0ZGOTBGRkZGRkY1MEZGMzBGRjQwRkZGRkZGMDBGRkJBCis6MTAzOTgwMDA0N0ZGOTBGRkZGRkY0MEZGNzhGRjQyRkZGRkZGNTBGRjIwCis6MTAzOTkwMDA0OEZGOTBGRkZGRkZBMEZGNDBGRjQwRkZGRkZGMDBGRjM5Cis6MTAzOUEwMDA0OUZGOTBGRkZGRkY3MEZGMThGRjQwRkZGRkZGMDBGRjgwCis6MTAzOUIwMDA0N0ZGOTBGRkZGRkY3MEZGMThGRjQwRkZGRkZGMTBGRjYyCis6MTAzOUMwMDA0N0ZGOTBGRkZGRkY3MEZGMThGRjQwRkZGRkZGMDBGRjYyCis6MTAzOUQwMDA0N0ZGOTBGRkZGRkY3MEZGMDBGRjQwRkZGRkZGMDBGRjZBCis6MTAzOUUwMDAxMUZGOTBGRkZGRkY2MEZGOERGRjkzRkZGRkZGRDBGRkYwCis6MTAzOUYwMDAwQkZGNDBGRkZGRkY4MEZGMTFGRjkwRkZGRkZGRjBGRjc1Cis6MTAzQTAwMDAwMEZGNDBGRkZGRkYxMEZGMTFGRjkwRkZGRkZGRTBGRkVGCis6MTAzQTEwMDAwMEZGNDhGRkZGRkYwMEZGMDBGRjkzRkZGRkZGMDBGRkQ1Cis6MTAzQTIwMDAwMEZGMEFGRkZGRkYwRkZGMDhGRjQwRkZGRkZGMDBGRjNGCis6MTAzQTMwMDA0N0ZGOTBGRkZGRkYyMEZGMjJGRjE4RkZGRkZGOUZGRkMwCis6MTAzQTQwMDAwMEZGNDhGRkZGRkYxMEZGODZGRjkzRkZGRkZGNzBGRjlGCis6MTAzQTUwMDAyMkZGMThGRkZGRkY5RkZGMDBGRjQ4RkZGRkZGMDBGRjRGCis6MTAzQTYwMDA4NkZGOTNGRkZGRkY3MEZGMjJGRjE4RkZGRkZGOUZGRkZFCis6MTAzQTcwMDAwMEZGNDhGRkZGRkYyMEZGODZGRjkzRkZGRkZGNzBGRjVGCis6MTAzQTgwMDAyMkZGMThGRkZGRkY5RkZGMDBGRjM0RkZGRkZGNDhGRkVCCis6MTAzQTkwMDAwMEZGNjBGRkZGRkYwM0ZGODZGRjkzRkZGRkZGQjBGRjA0Cis6MTAzQUEwMDAwMEZGNjBGRkZGRkYwM0ZGODZGRjkzRkZGRkZGQzBGRkU0Cis6MTAzQUIwMDA4NkZGOTdGRkZGRkZEMEZGMDBGRjBBRkZGRkZGMEZGRjBBCis6MTAzQUMwMDA4MEZGMzdGRkZGRkYwMkZGODRGRjNCRkZGRkZGMDJGRjg2Cis6MTAzQUQwMDAwMEZGNjBGRkZGRkYwQkZGMENGRjBERkZGRkZGOTBGRkRDCis6MTAzQUUwMDAwMEZGNzBGRkZGRkYwQkZGMENGRjBERkZGRkZGQjBGRjlDCis6MTAzQUYwMDA4OEZGMzdGRkZGRkYwM0ZGOENGRjNCRkZGRkZGMDNGRjQ0Cis6MTAzQjAwMDAwMEZGNDBGRkZGRkYwMUZGOEJGRjkzRkZGRkZGNTFGRjBGCis6MTAzQjEwMDA4MkZGNDNGRkZGRkY4MEZGOEJGRjkzRkZGRkZGNjBGRkVDCis6MTAzQjIwMDAwMEZGMzRGRkZGRkY4OUZGMDBGRjQwRkZGRkZGMDBGRkEyCis6MTAzQjMwMDAwQ0ZGMERGRkZGRkY4MEZGMENGRjBERkZGRkZGQTBGRjNECis6MTAzQjQwMDAwMEZGMEFGRkZGRkYwRkZGODBGRjM3RkZGRkZGMDBGRkFGCis6MTAzQjUwMDAwMEZGMzRGRkZGRkYwOEZGMDJGRjNDRkZGRkZGNDVGRkIwCis6MTAzQjYwMDA3NkZGMTRGRkZGRkZERUZGMDBGRkEwRkZGRkZGMDNGRjU0Cis6MTAzQjcwMDA4NEZGMzdGRkZGRkYwMEZGMDBGRjM0RkZGRkZGMDhGRjU4Cis6MTAzQjgwMDAwMkZGM0NGRkZGRkY0NUZGNzdGRjE0RkZGRkZGMkVGRjAzCis6MTAzQjkwMDAwMEZGQTBGRkZGRkYwM0ZGN0VGRjM4RkZGRkZGMDBGRkQ2Cis6MTAzQkEwMDAwMEZGMzhGRkZGRkYwOEZGMDBGRjNDRkZGRkZGRTVGRkJFCis6MTAzQkIwMDA3N0ZGMTRGRkZGRkY4RUZGMDBGRjQwRkZGRkZGMDBGRkI2Cis6MTAzQkMwMDAwMEZGNThGRkZGRkYwM0ZGMDBGRjBBRkZGRkZGMEZGRjhCCis6MTAzQkQwMDA2NEZGMUNGRkZGRkY0RkZGMzhGRjIyRkZGRkZGMEZGRkI3Cis6MTAzQkUwMDA3N0ZGMTRGRkZGRkZFNUZGOEJGRjgzRkZGRkZGNDBGRjIxCis6MTAzQkYwMDA3OEZGMjJGRkZGRkYwRkZGNjRGRjFDRkZGRkZGOEZGRjE3Cis6MTAzQzAwMDAzOEZGMjJGRkZGRkYwRkZGNzhGRjE0RkZGRkZGMzVGRjk0Cis6MTAzQzEwMDA4QkZGODNGRkZGRkY0MEZGNzhGRjIyRkZGRkZGMEZGRkI3Cis6MTAzQzIwMDAwMEZGMEFGRkZGRkYwRkZGMDBGRjM0RkZGRkZGMDlGRjQ4Cis6MTAzQzMwMDAwMEZGMzRGRkZGRkY4NUZGMDBGRjM0RkZGRkZGNTZGRjRCCis6MTAzQzQwMDAwMEZGMDlGRkZGRkYwNkZGMjBGRjQwRkZGRkZGMDBGRjBGCis6MTAzQzUwMDAwMUZGNDBGRkZGRkZDMUZGMDBGRjQwRkZGRkZGNDRGRkU4Cis6MTAzQzYwMDAwMEZGNjhGRkZGRkYwNUZGMDBGRjY4RkZGRkZGMTVGRjc0Cis6MTAzQzcwMDAwMEZGNjhGRkZGRkYwNUZGMDBGRjY4RkZGRkZGNDVGRjM0Cis6MTAzQzgwMDAwMEZGMEFGRkZGRkYwRkZGODZGRjg3RkZGRkZGRjBGRjI4Cis6MTAzQzkwMDA4NkZGOEJGRkZGRkZFMEZGMDBGRjM0RkZGRkZGQzhGRjQxCis6MTAzQ0EwMDAwMEZGMzhGRkZGRkZDOEZGMDBGRjYwRkZGRkZGMDNGRkJCCis6MTAzQ0IwMDAwMEZGNjBGRkZGRkYxM0ZGMDBGRjc4RkZGRkZGMTNGRjEwCis6MTAzQ0MwMDAwMEZGNzhGRkZGRkYwM0ZGODZGRjk3RkZGRkZGRjBGRjc2Cis6MTAzQ0QwMDA4NkZGOUJGRkZGRkZFMEZGMDVGRjgxRkZGRkZGQzBGRkE3Cis6MTAzQ0UwMDA3OEZGMjJGRkZGRkYwRkZGMjFGRjE4RkZGRkZGNzFGRjhCCis6MTAzQ0YwMDAwMEZGMEFGRkZGRkYwRkZGN0ZGRjM4RkZGRkZGMDFGRkZECis6MTAzRDAwMDAwMEZGMzhGRkZGRkYwOUZGMDBGRjM4RkZGRkZGMDZGRjNFCis6MTAzRDEwMDA3RUZGNDBGRkZGRkYwMEZGMDBGRjQwRkZGRkZGQjFGRkZFCis6MTAzRDIwMDAwOEZGMENGRkZGRkYwMEZGMDBGRjNDRkZGRkZGQzVGRjg4Cis6MTAzRDMwMDA3QUZGMTRGRkZGRkZCRUZGMDBGRjUwRkZGRkZGNDZGRkFCCis6MTAzRDQwMDBFMUZGMjJGRkZGRkYwRkZGN0FGRjFDRkZGRkZGRTBGRkY1Cis6MTAzRDUwMDA2MEZGMjJGRkZGRkYwRkZGMDBGRjU4RkZGRkZGQTdGRkRECis6MTAzRDYwMDAwQ0ZGMENGRkZGRkYwMEZGMDBGRjBBRkZGRkZGMEZGRjJDCis6MTAzRDcwMDAwMEZGNDBGRkZGRkZDNEZGMDBGRjBBRkZGRkZGMEZGRjMwCis6MTAzRDgwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjQzCis6MDQzRDkwMDBGRkZGRkZGRjMzCis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvc2IxNi9hbGF3X21haW4uY3NwLmloZXggYi9maXJtd2FyZS9zYjE2L2FsYXdfbWFpbi5jc3AuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDUwMjcwCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvc2IxNi9hbGF3X21haW4uY3NwLmloZXgKQEAgLTAsMCArMSw4NyBAQAorOjEwMDAwMDAwMDAxMDAwNDQwODAwMDA0NDAwQjEwMDQ0MDA2MTAwNDRCNgorOjEwMDAxMDAwMDg1MDAwNDQwREYyNjFBODQ0MDQwNDE5MDAwMDQwNDU1MgorOjEwMDAyMDAwNDA0OTM5QUM1NTU1NzE4QjUwMDU2MzgwMDAwMDA2Mzk0NQorOjEwMDAzMDAwRkYyRTIxNDlGRjBGRDQ0OTIwMDEwOTBFMjAwMDcxOEJBQQorOjEwMDA0MDAwQTgwMUE4ODA4ODAxQTg4MEE4MDAwMDgwRDIwMDcxOEIzOAorOjEwMDA1MDAwODgwMEE4ODBBODA0QjM4MDIwMDdCMzgwODgwM0IxODBGQgorOjEwMDA2MDAwQzAwMDA5NUNDMjAxMDA4MkExMDA3MThCQ0QwMDA0MTk5RgorOjEwMDA3MDAwMjEyMDcxOEJDRjAwMDQxOTAwMDBCMTgwQzIwMDA0MTk0NworOjEwMDA4MDAwMDA0MDAwMTQwODQwMDQyNDAwMDAzNDQ5MEM0MDAwNDQ5RgorOjEwMDA5MDAwNDQwNDA0MzkwMDAwNDA0NTMyMDAwOTVDMDAwMDBDMzk3QQorOjEwMDBBMDAwMDAwMDQwNDU0MDQwMDlFRkZGMjAwOUNGMDAwNDYzQTE1NAorOjEwMDBCMDAwNTAwMzMzODAwMDA0QTM4MDAwRkZDMjhCMDBEMDA0NTQ5RgorOjEwMDBDMDAwMDRFMDAwQzQyMDAzODBDMDMwMDAwMDg4MDAwMDdBMEFFOQorOjEwMDBEMDAwRDAwMTAwODIwMDYwMDA0NEMwMDAwMDk5MDA2MDAwNDQyQworOjEwMDBFMDAwMDBGRkMyOEIyMDAwMDA4MDAwMEQ0MjhCMDgzMjAwQzQ0QworOjEwMDBGMDAwMDAwRTQyOEIwMEEyMDBDNDAwMUU0MjhCMENCMjAwQzQ1MgorOjEwMDEwMDAwMDA4RTQyOEIwMDYyMDBDNDAwOUU0MjhCMDg1MjAwQzRFNQorOjEwMDExMDAwMDBCRTQyOEIwODUyMDBDNDAwMDQ0MjhCMDQ3MjAwQzQyQgorOjEwMDEyMDAwMDAyNDQyOEIwMEQyMDBDNDAwNTU0MjhCMDA2MDAwQzQwMgorOjEwMDEzMDAwMDAwMDQwNDUyMDAxNzk4MDAwMzA0MjhCMDg4MjAwQzRENQorOjEwMDE0MDAwMDAwMDQwNDUwMDAwNzE4QjQwMDEwMDgwMDA2MDAwNDRDOQorOjEwMDE1MDAwRkYwMEUyQUIwMEIyMDBDNDBGRjJBOEE4MjAwMEIxODhGMworOjEwMDE2MDAwMDAwMDQxMDI0REYyMDAzOUMwMDEwMDgyMDA2MDAwNDRFRAorOjEwMDE3MDAwMERGMkEzQTg0REYyMDAzOTAwNjAwMDQ0RkYwMEUyQUI4RAorOjEwMDE4MDAwMjAwMDAwODgwMDAwNjEwMjRERjIwNDE5MDA2MDAwNDQ2NAorOjEwMDE5MDAwRkYwMEUyQUJBMDAwMDA4ODAwMDA2MTEwNERGMjA0MTlERQorOjEwMDFBMDAwMDA2MDAwNDRGRjIwRTJBQjYwMDAwMDg4MDAwMDcxQzBFNgorOjEwMDFCMDAwNERGMjA0MTkwMDYwMDA0NDAwMDA3OTgwMDBFMjAwODRFMAorOjEwMDFDMDAwMDMwMzA0NDkwNEMyMDA1NDAwNjAwNDY0MDA2MDAwNDQ1NgorOjEwMDFEMDAwMDAwMDYzODAwMDAwMDYxOTAzMDAwNDQ5MDA2MDAwNDQyOQorOjEwMDFFMDAwMjAwMTYzODAwMDAwMDYxOTAwMjBFMjhCMENGMjAwODRERAorOjEwMDFGMDAwQkUwMDUxOEJDMDIwMDAzOTA4MDEwMDQ0RUMwMDUxOEIzNworOjEwMDIwMDAwQzAyMDAwMzkwMDAyRTI4QjA0MjEwMDg0M0YwMDUxOEJBMgorOjEwMDIxMDAwQzIyMDAwMzkwMDExMDA0NDNEMDA1MThCQzIyMDAwMzkzQQorOjEwMDIyMDAwRTUwMDcxOEJDRDAwMDAzOTAwMDBCMTgwQzkyMDA0MTlCMAorOjEwMDIzMDAwQ0IyMDA0MTlDMTIwMDQxOUMzMjAwNDE5MTAwMDcxOEJBQworOjEwMDI0MDAwQzcyMDA0MTlERTAwNTE4QkNGMDAwMDM5MDAwMUIxODBCNgorOjEwMDI1MDAwQzQyMDA0MTlDNjIwMDQxOUM4MjAwNDE5Q0EyMDA0MTk4RQorOjEwMDI2MDAwMjAwMDcxOEJDQzIwMDQxOTAzMDAwNDQ5MDA2MDAwNDQ3NQorOjEwMDI3MDAwMDkwNDYxQThDMTAwMDQxOTBCMDQ2MUE4Q0EwMDA0MTk4QgorOjEwMDI4MDAwMDQ2MDAwRDQwRDAwNjEwQTkwNDAwOThGMDAwMTAwNDUxMAorOjEwMDI5MDAwMEYwMDYxMEEwMDQwMDk4RjAwMDEwMDQ1ODIwMDA5MkUwRAorOjEwMDJBMDAwODA0MDA5Q0YwMjAwNjEyMjQzMjU2MTIyNDAzMzAwODA1MworOjEwMDJCMDAwMDg0ODAwNDQyMEIxNDk1QzkyMDAwOTRFMDIwMzA5MkUwRgorOjEwMDJDMDAwMDAwMEEzMDJDMDAwNzFDMDIwMDBFQjgwMDAwNEMyOEJCQworOjEwMDJEMDAwMjAwNDYxODAwMDA0N0EwMkMwMDAwMDgyMENDMzA4NDkzNworOjEwMDJFMDAwQjAwMUYzODAwMDAwMTAzOTIwMDAwQzg5MEM4ODA4NDkwNworOjEwMDJGMDAwMDMwMEE4MTgwMDAwMTAzOUJERkY2MjhCMjAwMTAwODBBOAorOjEwMDMwMDAwMDAwMDYzQ0IwMDAwN0EwMjQwMDAwMTVCMjAwMDAwODAwNworOjEwMDMxMDAwMDAwMDRBQ0IyMDAwMTM4MDIwMDA3QTgwRTAyMTAwQzAzQQorOjEwMDMyMDAwMDgwMDA4NDkxMDQxMDk4RUFFQUU2MjhCMDAwNDYxMjJCQworOjEwMDMzMDAwMDAwMzAwNDUyMjAxMzM4MDIwMDFBMzAyMDAwMDdBODBERgorOjEwMDM0MDAwQzAwMDAwODIwNzIwNDAwQTA4QTMwMDg0NDAyMTAwODBFQQorOjEwMDM1MDAwNDAwNTkzMTBDNzIwMDAzOTAwMDA0MDQ1MDcyMDQwMEE5RgorOjEwMDM2MDAwMEM5MzAwODQwODAwMDA4MjBDMjQ2MTUwNDAwMTAwODAzRQorOjEwMDM3MDAwQzcyMDAwMzkwMDAwNDA0NTAwMDQ2MzgwMDAwMDA2MzlCMgorOjEwMDM4MDAwNDIwMTA5MEUwMjIwNjEwQTAwMDEwMDQ1MEMyMDYwMEFBQQorOjEwMDM5MDAwMDBDMzAwODQwMDA0QjE4MDAwMDAwNjM5MEM2MTA0RDQ1RAorOjEwMDNBMDAwMDAyNDcxQzAyMDMzMzNDMEUwMDFBMzgyMjIwMzdBMDIwQgorOjEwMDNCMDAwQzMwMUEzODIyMDAxMzM4MDAwMDA3QTgwQzIwMUIzNTBDMAorOjEwMDNDMDAwQ0MyMDAwMzkwMDAwNzE4MDAwMDgwMDQ0MEMyMDYwMEEzNQorOjEwMDNEMDAwMDBGMzAwODQwMDA0QjE4MDAwMDAwNjM5MEM2MTA0RDRFRAorOjEwMDNFMDAwMDAwMDcxQzAwMDAwOTMxMENDMjAwMDM5MDAwODAwNDRDOAorOjEwMDNGMDAwQ0MyMDAwMzkwMDIwMDBDMDAwMzA3MUMwMDAwODAwNDQ0QgorOjEwMDQwMDAwMjAwMTAwODBBRUFFNjI4QjIwMDEzMzgwMDAwMDgzODAyQgorOjEwMDQxMDAwMjAwMDdBODAyMEExNDk1QzgyMDAwOTZFODA0QTA5OEUwMgorOjEwMDQyMDAwRTAwMUIzODIyMDA0QTM4MDAwMDA3QUNCMjgwNEVBMTAwNAorOjEwMDQzMDAwMEMwNDdBMTA3MDAwQzA4QjAwMDAxMDM5OTAwMzAwODAwQgorOjEwMDQ0MDAwNDAwMDIxNUI5MDAwNjE4MDBDOEEwODQ5MDAwMDFDMTk2MworOjEwMDQ1MDAwNDAwMDA4NUIwODAwMDg0OTIwMDIwMDgwMDMwMEE4MTgzQgorOjEwMDQ2MDAwMDAwMDE0MTk0MDAwMjFDQjAwMDA0MTAyMDAwMEVCODA4NQorOjEwMDQ3MDAwRjIwMTAwODI0MDIxMzMwMjA4MjA2MTBBQzQwMDA0MTlGRAorOjEwMDQ4MDAwQzcwMDAwOTkwMjAwNjEwQTBDMEEwNDE0MDEwMDYxMEEwNQorOjEwMDQ5MDAwMDMwMDQ4MEEwMDU4MDQ1NEMzMDAwNDE5MEM1ODAwNDRDRgorOjEwMDRBMDAwMDgwMEM4MEEwQzU4MDQ1NEM4MDAwNDE5MEEwMDYxMEE1QworOjEwMDRCMDAwMDkwMDQ4MEEwMEM4MDQ1NEM5MDAwNDE5MENDODAwNDRDMworOjEwMDRDMDAwMEIwMEM4MEEwQ0M4MDQ1NENCMDAwNDE5MDQwMDYxMEFDQworOjEwMDREMDAwMDYwMDQ4MEEwMEQ4MDQ1NEM2MDAwNDE5MENEODAwNDQ4OQorOjEwMDRFMDAwMDUwMEM4MEEwQ0Q4MDQ1NEM1MDAwNDE5MDcwMDYxMEFBNQorOjEwMDRGMDAwMEMwMDQ4MEEwMDBBMDQ1NENDMDAwNDE5MEMwQTAwNDRGOQorOjEwMDUwMDAwMEUwMEM4MEEwQzBBMDQ1NENFMDAwNDE5MDAwMDQwNDUyRAorOjA4MDUxMDAwMjAxMDcxOEIwODQyMDYwMDY3Cis6MDAwMDAwMDFGRgorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTQgQ3JlYXRpdmUgVGVjaG5vbG9neSBMdGQuCisgKiAgTWljcm9jb2RlIGZpbGVzIGZvciBTQjE2IEFkdmFuY2VkIFNpZ25hbCBQcm9jZXNzb3IKKyAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvc2IxNi9pbWFfYWRwY21fY2FwdHVyZS5jc3AuaWhleCBiL2Zpcm13YXJlL3NiMTYvaW1hX2FkcGNtX2NhcHR1cmUuY3NwLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE1MGE1OAotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3NiMTYvaW1hX2FkcGNtX2NhcHR1cmUuY3NwLmloZXgKQEAgLTAsMCArMSwxMjEgQEAKKzoxMDAwMDAwMDAwMTAwMDQ0MDgwMDAwNDQwMDcwMDA0NDA4RDAwMDQ0ODAKKzoxMDAwMTAwMDAwRjAwMDQ0MERGMjYxQTg0NDA0MDQxOTAwMDA0MDQ1QkEKKzoxMDAwMjAwMDAwMDQ2MzgwMDAwMDA2MzlGRjJFMjE0OUZGMENENDQ5RUIKKzoxMDAwMzAwMDQwNDkzOUFDNTU1NTcxOEI1MDAxQjE4MDAwMDA3MThCMkUKKzoxMDAwNDAwMEMyMzAwNDE5QzBBMDA0MTlDMkEwMDQxOTg5MDA3MThCMjAKKzoxMDAwNTAwMEM4MzAwNDE5NzEwMDcxOEJDRDAwMDQxOUNGMDAwNDE5NDgKKzoxMDAwNjAwMDgwMDA3MThCQ0IyMDA0MTkyMDAwNzE4QkM0MjAwNDE5RUYKKzoxMDAwNzAwMDQ3MDA1MThCQzAyMDAwMzkwMDAwNjM4MEMxQTAwNDE5RTMKKzoxMDAwODAwMDkzMDAwMTRGQ0QzMDAwMDlDRjMwMDAwOTBDNDAwMDE0MUYKKzoxMDAwOTAwMDAwNjAwMDE0MDAwNDYxQTgwMjA0NjFBODBDNjAwNDI0M0MKKzoxMDAwQTAwMDAwMDAzNDQ5MDg1MDAwNDQ0NDA0MDQzOTAwMDA0MDQ1MkQKKzoxMDAwQjAwMDA4MzA2MTBBMDVCMEU4MTgwQ0MwMDQ1NEM4MzAwNDE5QUYKKzoxMDAwQzAwMDA5MDQwMEE4MEIwNDAwQTgwMDAwNDA0NTA5MDQ2MUE4MjkKKzoxMDAwRDAwMEMxMDAwNDE5MEIwNDYxQThDQTAwMDQxOTBEMDA2MTBBQ0IKKzoxMDAwRTAwMDAwMDEwMDQ1MEYwMDYxMEEwMDQwMDk4RjAwMDEwMDQ1MzIKKzoxMDAwRjAwMDQwNDAwOUVGRkYyMDA5Q0YwMDA0NjNBMTUwMDMzMzgwODMKKzoxMDAxMDAwMDAwMDRBMzgwMDBGRkMyOEIwQzEyMDQ1NDA4MTIwMEM0MjgKKzoxMDAxMTAwMDIwMDM4MEMwMzAwMDAwODgwMDAwN0EwQUQwMDEwMDgyRUQKKzoxMDAxMjAwMDA0NTAwMDQ0QzAwMDAwOTkwNDUwMDA0NDAwRkZDMjhCRkEKKzoxMDAxMzAwMDIwMDAwMDgwMDAwRDQyOEIwNDQyMDBDNDAwMEU0MjhCNjAKKzoxMDAxNDAwMDA4NTIwMEM0MDAxRTQyOEIwMEUyMDBDNDAwOEU0MjhCQTUKKzoxMDAxNTAwMDA4RDIwMEM0MDA5RTQyOEIwNEYyMDBDNDAwQkU0MjhCNTEKKzoxMDAxNjAwMDA0RjIwMEM0MDAwNDQyOEIwNDExMDBDNDAwMjQ0MjhCM0EKKzoxMDAxNzAwMDBDNjEwMEM0MDA1NTQyOEIwNDUwMDBDNDAwM0Y0MjhCMDgKKzoxMDAxODAwMDBDMDEwMEM0MDAwMDQwNDUyMDAxNzk4MDAwMzA0MjhCMDIKKzoxMDAxOTAwMDA0NjIwMEM0MDAwMDQwNDUwMDAwNzE4QjQwMDEwMDgwRjMKKzoxMDAxQTAwMDA0NTAwMDQ0RkYwMEUyQUIwOEMyMDBDNDBGRjJBOEE4NEMKKzoxMDAxQjAwMDIwMDBCMTg4MDAwMDQxMDI0REYyMDAzOUMwMDEwMDgyRTgKKzoxMDAxQzAwMDA0NTAwMDQ0MERGMkEzQTg0REYyMDAzOTA0NTAwMDQ0M0QKKzoxMDAxRDAwMEZGMDBFMkFCMjAwMDAwODgwMDAwNjEwMjRERjIwNDE5MkMKKzoxMDAxRTAwMDA0NTAwMDQ0RkYwMEUyQUJBMDAwMDA4ODAwMDA2MTEwNTIKKzoxMDAxRjAwMDRERjIwNDE5MDQ1MDAwNDRGRjIwRTJBQjYwMDAwMDg4NzcKKzoxMDAyMDAwMDAwMDA3MUMwNERGMjA0MTkwNDUwMDA0NDAwMDA3QTBBNDUKKzoxMDAyMTAwMDIwMDFGMDgwMDFBMDQxMEEwMDExMDBDNDIwMDFGMDgwRkIKKzoxMDAyMjAwMEMxMzAwNDE5MDQ1MDAwNDQwMDAwNzk4MDBDNDEwMDg0NUUKKzoxMDAyMzAwMDg5MDA3MThCQzgzMDA0MTk5NzAwNzE4QkNEMDAwMDM5OEIKKzoxMDAyNDAwMDAwMDFCMTgwODAwMDA0MTk4MjAwMDQxOUMxMjAwNDE5NDIKKzoxMDAyNTAwMEMzMjAwNDE5QzIzMDA0MTlDRDEwMDQxOUNGMTAwNDE5OTkKKzoxMDAyNjAwMEIwMDA3MThCODQwMDA0MTk4NjAwMDQxOTgwMDA3MThCMjIKKzoxMDAyNzAwMENCMjAwNDE5OTMwMDAxNEZDRDMwMDAwOUNGMzAwMDA5ODUKKzoxMDAyODAwMDAzMDIwNDQ5MDg0MTAwMTQwNDUwMDA0NDAwMDA2MzgwNDQKKzoxMDAyOTAwMDAwMDAwNjE5MDMwMDA0NDkwNDUwMDA0NDIwMDE2MzgwNTMKKzoxMDAyQTAwMDAwMDAwNjE5MDAyMEUyOEIwMEMxMDA4NDQ3MDA1MThCM0EKKzoxMDAyQjAwMEMwMjAwMDM5MDAwMDYzODBDMUEwMDQxOTAwRTEwMDQ0OUYKKzoxMDAyQzAwMEJEMDA1MThCQzAyMDAwMzkwMDAwQjE4MEMxQTAwNDE5Q0QKKzoxMDAyRDAwMDAzMDAwNDQ5MDQ1MDAwNDQwMDIwNjEwQTAwMDEwMDQ1NjUKKzoxMDAyRTAwMDAyMzA2MTBBMEM4MzAwQzQwQzc4MDg0NDA0NUEwODQ0QTQKKzoxMDAyRjAwMEIyMDAwOTRGMTA0MjA5OEUwNUIwRTAxODA0MjMwMDg0QjMKKzoxMDAzMDAwMDBDMDEwMDExMDgwNTYxMTAwMDQ5MDg0NDAwNDgwODQ0MjgKKzoxMDAzMTAwMEIyMDAwOTRGODAwMDcxOEJDMDAwMDA4MjBDMDEzMzEwQzUKKzoxMDAzMjAwMDI4MDFBMzEwMDAwMTdBODA4QzAxMDA4MDAyMzA2MTBBNEMKKzoxMDAzMzAwMDIwMDAwNDE5MEM4MzAwQzQwNUIwQzgxODA4NDMwMEM0ODkKKzoxMDAzNDAwMDAxMzBDODBBMEMzODAwQzQwODg4MDA0NDBDNzgwODQ0RkUKKzoxMDAzNTAwMDA0NUEwODQ0MDAwMEEzMTg4MDAwMDQxOTBCMDQ2MUE4ODMKKzoxMDAzNjAwMEMzMjAwMDM5QzMzMDA0MTkwRjEwNjEwQUNBMzAwNDE5QzAKKzoxMDAzNzAwMDA5MDQ0MUE4RTEyMDAwMzlEMTAwMDk0RjAwMDQ2MTAyQkQKKzoxMDAzODAwMDA4NjMwMDQ0MDMzMDQxMEEyMDAwMDAzOUEzMDAwOTRGRUMKKzoxMDAzOTAwMDAwMDQ2MTAyMDA0ODA4NDQwODg4MDA0NDAyMzA2MTBBRjEKKzoxMDAzQTAwMDAwMDgwMEM0MEM3ODA4NDQwNDVBMDg0NEIyMDAwOTBGM0QKKzoxMDAzQjAwMDEwNDAwOThFMDAwMDY4NUIyMDA0QjE4MDAyMDA2MTVCODAKKzoxMDAzQzAwMDg4MDM3QTgwQUMwMTAwODAwNUIwRTAxODAwRDMwMDg0NzcKKzoxMDAzRDAwMDAwNDkwODQ0MDA0ODA4NDRCMjAwMDkwRjgwMDA3MThCQUUKKzoxMDAzRTAwMEMwMDAwMDgyMDIzMDYxMEEwMDA4MDBDNDA1QjBDODE4Q0QKKzoxMDAzRjAwMDBDMTgwMEM0MDEzMEM4MEEwQzM4MDBDNDA4ODgwMDQ0MzYKKzoxMDA0MDAwMDBDNzgwODQ0MDAwMDYxMTgyMDA1QjE4MDAwMDA2OENCMUEKKzoxMDA0MTAwMDgwMDAwNDE5MEQxMDYxMEFDMzMwMDQxOTBCMDQ0MUE4QUYKKzoxMDA0MjAwMDA5MDQ0MUE4RTEyMDAwMzkwODM4MDA0NDAzMzA0MTBBOUEKKzoxMDA0MzAwMDIwMDRCMTgwMDA0ODA4NDQwODg4MDA0NDAwMDBCMTgwQ0UKKzoxMDA0NDAwMEMyMzAwNDE5MENCODAwRDQwRjMwNjEwQTBEMzBDODBBNEMKKzoxMDA0NTAwMDBDQjgwMEM0OTMwMDAxNEZFNzAwMDE2RjBGMzA2MTBBMzAKKzoxMDA0NjAwMDIwMDAwMDg4MDIwMDYxMDI0MTA0MDQxOTAyMDQ2MTAyQjQKKzoxMDA0NzAwMDQzMDQwNDM5Q0YzMDAwMDkyMDAwMDk0OTAwNTkwMDQ0RTEKKzoxMDA0ODAwMDkzMDAwMTRGRTcwMDAxNkYwRDMwNjEwQTIwMDA2MTg4ODEKKzoxMDA0OTAwMEMyMDAwMDgyQzIwMzAwODJDRDMwMDAwOTIwMDAwOTQ5NTkKKzoxMDA0QTAwMDBGMzA2MTBBMEQzMEM4MEEwQzU4MDA4NDAyMzA2MTBBMEUKKzoxMDA0QjAwMDA1QjBBODE4QzIzMDA0MTkwMDAwMDA0NjkwNDAwOThGMEEKKzoxMDA0QzAwMDEyMDQwOTZFMDMwMDA5MEUwMDAxNzE4MjIwMDEwMDgwRjAKKzoxMDA0RDAwMDAwMDA2MUNCODAwNEIxODAwMDAxRTA2MDBDRDgwNDE0RkUKKzoxMDA0RTAwMDAwMDFFQjgwNDAwMDUyMUI4MDAwNzk4MEMwMDE3MUMyODYKKzoxMDA0RjAwMDIwMDBDMDgwMDgwQTA0NTRDMDA0QTg4MjgwMDA3MjFCMzcKKzoxMDA1MDAwMDgwMDAwMDgwMDAwMUYwODAyMDAwQzA4MDBDMkEwNDU0OEMKKzoxMDA1MTAwMEMwMDRBODgyMTAwMDcyMUI4MDAwMDA4MDAwMDFGMDgwREYKKzoxMDA1MjAwMDIwMDBDMDgwMDgzQTA0NTRDMDA0QTg4MjIwMDA3MjFCMzYKKzoxMDA1MzAwMDgwMDAwMDgwQzAwM0YwODIyMDAwQTA4MDAwMDEwMDExMzQKKzoxMDA1NDAwMDQwMDBDMjhCMDBBQTAwQzQwMDAwRTk4MDA1QjBBODE4RDIKKzoxMDA1NTAwMDAwMDFBODIyRDAwMTAwODJGMDAwRTIxQjA2MjBBODBBQjgKKzoxMDA1NjAwMDJEMTA2MTBBRDEwMDA5MkUwMDAxQTgwMjBFMTBDODBBNDAKKzoxMDA1NzAwMDBDQkEwNDE0MEUxMDYxMEEwNDRBMDA0NDBDMTBDODBBOTQKKzoxMDA1ODAwMDA0NEEwNDU0MEMxMDYxMEFEMDAxMDA4MjAwMTBBODE4MUIKKzoxMDA1OTAwMEEwMDAwMDg4MDAwMTcxODIwMzAwMDkwRTlBMDEwMDYwMkEKKzoxMDA1QTAwMDMyMDAwOTJFMDAwMDAwNDYwMDAxNzE4MjIwMDEwMDgwMDcKKzoxMDA1QjAwMDAwMDA2MUNCODAyNEIxQzAwMDMxRTA2MDBDQ0EwNDE0OUIKKzoxMDA1QzAwMDAwMDFFQjgwNDAwMDUyMUI4MDAwNzk4MEMwMDE3MUMyQTUKKzoxMDA1RDAwMDIwMDBDMDgwMDhEQTA0NTRDMDA0QTg4MjgwMDA3MjFCODYKKzoxMDA1RTAwMDgwMDAwMDgwMDAwMUYwODAyMDAwQzA4MDBDRkEwNDU0REMKKzoxMDA1RjAwMEMwMDRBODgyMTAwMDcyMUI4MDAwMDA4MDAwMDFGMDgwRkYKKzoxMDA2MDAwMDIwMDBDMDgwMDgyOTA0NTRDMDA0QTg4MjIwMDA3MjFCNjYKKzoxMDA2MTAwMDgwMDAwMDgwQzAwM0YwODIyMDAwQTA4MDAwMDEwMDExNTMKKzoxMDA2MjAwMDQwMDBDMjhCMDAzOTAwQzQwMDAwRTk4MDA1QjBBODE4NjIKKzoxMDA2MzAwMDAwMDFBODIyRDAwMTAwODJCMDAwRTIxQjA2MjBBODBBMTcKKzoxMDA2NDAwMDJGMTA2MTBBRjEwMDA5MkUwMDAxQTgwMjBFMTBDODBBM0QKKzoxMDA2NTAwMDBDQTkwNDE0MEUxMDYxMEEwNDk5MDA0NDBDMTBDODBBNzUKKzoxMDA2NjAwMDA0OTkwNDU0MEMxMDYxMEFEMDAxMDA4MjAwMTBBODE4RUIKKzoxMDA2NzAwMEEwMDAwMDg4MDAwMTcxODI5RjAxMDA2MDAwMDAwMDQ2MTgKKzoxMDA2ODAwMDAwMDAzMzgwMDAwMDgzODAyMDAwN0E4MDIwMDczMzgwQzAKKzoxMDA2OTAwMDAwMDA4MzgwMjAwNDdBODAyMDAxMDA4MDAwMDAwMDQ2NTIKKzoxMDA2QTAwMDAyMDA2MTBBMDQxQjA0MTQwMTAwNjEwQTAzMDA0ODBBRTUKKzoxMDA2QjAwMDBDNzkwNDU0QzMwMDA0MTkwNEM5MDA0NDA4MDBDODBBOTIKKzoxMDA2QzAwMDA0QzkwNDU0QzgwMDA0MTkwQTAwNjEwQTA5MDA0ODBBNTAKKzoxMDA2RDAwMDBDRTkwNDU0QzkwMDA0MTkwNEQ5MDA0NDBCMDBDODBBRTkKKzoxMDA2RTAwMDA0RDkwNDU0Q0IwMDA0MTkwNDAwNjEwQTA2MDA0ODBBMjYKKzoxMDA2RjAwMDBDRjkwNDU0QzYwMDA0MTkwNDBCMDA0NDA1MDBDODBBOTAKKzoxMDA3MDAwMDA0MEIwNDU0QzUwMDA0MTkwNzAwNjEwQTBDMDA0ODBBRDAKKzoxMDA3MTAwMDBDMkIwNDU0Q0MwMDA0MTkwNDFCMDA0NDBFMDBDODBBMUUKKzoxMDA3MjAwMDA0MUIwNDU0Q0UwMDA0MTkwMDAwNDA0NTkyMjA3MThCMzQKKzowNDA3MzAwMEE2QzUxMTAwNDkKKzowMDAwMDAwMUZGCisvKgorICogIENvcHlyaWdodCAoYykgMTk5NCBDcmVhdGl2ZSBUZWNobm9sb2d5IEx0ZC4KKyAqICBNaWNyb2NvZGUgZmlsZXMgZm9yIFNCMTYgQWR2YW5jZWQgU2lnbmFsIFByb2Nlc3NvcgorICovCmRpZmYgLS1naXQgYS9maXJtd2FyZS9zYjE2L2ltYV9hZHBjbV9pbml0LmNzcC5paGV4IGIvZmlybXdhcmUvc2IxNi9pbWFfYWRwY21faW5pdC5jc3AuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODk5YTllCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvc2IxNi9pbWFfYWRwY21faW5pdC5jc3AuaWhleApAQCAtMCwwICsxLDcwIEBACis6MTAwMDAwMDAwMDEwMDA0NDAwMDA0MDQ1MDAwMDQwNDUwMDAwNDA0NTBECis6MTAwMDEwMDAwMDAwNDA0NUFBQUE3MThCNDQwNDA0MTkwMDAwNDA0NTIxCis6MTAwMDIwMDBGRjZFMjE0OUZGMEZENDQ5NDA0OTM5QUM1NTU1NzE4QkJBCis6MTAwMDMwMDA1MDA1QjE4MDYyMDAxOTBFMjEwMDcxOEI4ODAwMDA4MDhDCis6MTAwMDQwMDBCMDAwNzE4Qjg4MDAwMDgwNDAwMDcxOEI4ODAwMDA4MEI4Cis6MTAwMDUwMDA2MDAwNzE4Qjg4MDAwMDgwNTAwMDcxOEI4ODAwMDA4MEU4Cis6MTAwMDYwMDA3MDAwNzE4Qjg4MDAwMDgwQzAwMDcxOEI4ODAwMDA4MDU4Cis6MTAwMDcwMDBFMDAwNzE4Qjg4MDAwMDgwRDAwMDcxOEI4ODAwMDA4MEM4Cis6MTAwMDgwMDAwMjAwNzE4Qjg4MDAwMDgwMjIwMDcxOEI4ODAwMDA4MDQ0Cis6MTAwMDkwMDAzMjAwNzE4Qjg4MDAwMDgwQTIwMDcxOEI4ODAwMDA4MDg0Cis6MTAwMEEwMDBCMjAwNzE4Qjg4MDAwMDgwNjIwMDcxOEI4ODAwMDA4MDM0Cis6MTAwMEIwMDBDMjAwNzE4Qjg4MDAwMDgwRjIwMDcxOEI4ODAwMDA4MDg0Cis6MTAwMEMwMDAxMTAwNzE4Qjg4MDAwMDgwQTEwMDcxOEI4ODAwMDA4MDc2Cis6MTAwMEQwMDA2MTAwNzE4Qjg4MDAwMDgwRTEwMDcxOEI4ODAwMDA4MEQ2Cis6MTAwMEUwMDAxMzAwNzE4Qjg4MDAwMDgwQjMwMDcxOEI4ODAwMDA4MDQyCis6MTAwMEYwMDBDMzAwNzE4Qjg4MDAwMDgwMTgwMDcxOEI4ODAwMDA4MDFECis6MTAwMTAwMDA2ODAwNzE4Qjg4MDAwMDgwMEEwMDcxOEI4ODAwMDA4MDc1Cis6MTAwMTEwMDA0QTAwNzE4Qjg4MDAwMDgwMjkwMDcxOEI4ODAwMDA4MDY0Cis6MTAwMTIwMDA3OTAwNzE4Qjg4MDAwMDgwOUIwMDcxOEI4ODAwMDA4MEIzCis6MTAwMTMwMDAxNDAwNzE4Qjg4MDAwMDgwRjQwMDcxOEI4ODAwMDA4MEFGCis6MTAwMTQwMDBFNjAwNzE4Qjg4MDAwMDgwRTUwMDcxOEI4ODAwMDA4MERDCis6MTAwMTUwMDBENzAwNzE4Qjg4MDAwMDgwMkUwMDcxOEI4ODAwMDA4MDkyCis6MTAwMTYwMDA5RDAwNzE4Qjg4MDAwMDgwRUYwMDcxOEI4ODAwMDA4MEZCCis6MTAwMTcwMDBCMjIwNzE4Qjg4MDAwMDgwMzMyMDcxOEI4ODAwMDA4MDUyCis6MTAwMTgwMDAyQTIwNzE4Qjg4MDAwMDgwM0IyMDcxOEI4ODAwMDA4MEMyCis6MTAwMTkwMDA0NjIwNzE4Qjg4MDAwMDgwMkMyMDcxOEI4ODAwMDA4MEE1Cis6MTAwMUEwMDBERDIwNzE4Qjg4MDAwMDgwMDExMDcxOEI4ODAwMDA4MDM5Cis6MTAwMUIwMDA5QTEwNzE4Qjg4MDAwMDgwMTYxMDcxOEI4ODAwMDA4MDY3Cis6MTAwMUMwMDA4RTEwNzE4Qjg4MDAwMDgwQzIzMDcxOEI4ODAwMDA4MDk3Cis6MTAwMUQwMDBDOTMwNzE4Qjg4MDAwMDgwM0MzMDcxOEI4ODAwMDA4MEIyCis6MTAwMUUwMDA4MTgwNzE4Qjg4MDAwMDgwRDQ4MDcxOEI4ODAwMDA4MEIyCis6MTAwMUYwMDAxMEEwNzE4Qjg4MDAwMDgwMzRBMDcxOEI4ODAwMDA4MDczCis6MTAwMjAwMDAwMjkwNzE4Qjg4MDAwMDgwNzU5MDcxOEI4ODAwMDA4MDRGCis6MTAwMjEwMDA5QUIwNzE4Qjg4MDAwMDgwMTI0MDcxOEI4ODAwMDA4MDNBCis6MTAwMjIwMDAwRDQwNzE4Qjg4MDAwMDgwM0M2MDcxOEI4ODAwMDA4MERECis6MTAwMjMwMDBFNzUwNzE4Qjg4MDAwMDgwMEU3MDcxOEI4ODAwMDA4MDAxCis6MTAwMjQwMDBGRkMwNzE4Qjg4MDAwMDgwQzhEMDcxOEI4ODAwMDA4MDRGCis6MTAwMjUwMDA1N0YwNzE4Qjg4MDAwMDgwQzgyMjcxOEI4ODAwMDA4MDY1Cis6MTAwMjYwMDBCMDMyNzE4Qjg4MDAwMDgwREQ4MjcxOEI4ODAwMDA4MDQ1Cis6MTAwMjcwMDA5MEIyNzE4Qjg4MDAwMDgwOEE2MjcxOEI4ODAwMDA4MDQ4Cis6MTAwMjgwMDBDRTcyNzE4Qjg4MDAwMDgwQTVEMjcxOEI4ODAwMDA4MEFGCis6MTAwMjkwMDA5NzIxNzE4Qjg4MDAwMDgwQTJBMTcxOEI4ODAwMDA4MDVCCis6MTAwMkEwMDA1QzQxNzE4Qjg4MDAwMDgwRkVDMTcxOEI4ODAwMDA4MEVBCis6MTAwMkIwMDA3QTIzNzE4Qjg4MDAwMDgwNzg5MzcxOEI4ODAwMDA4MDhFCis6MTAwMkMwMDA2NzczNzE4Qjg4MDAwMDgwMTcyODcxOEI4ODAwMDA4MDBECis6MTAwMkQwMDA4ODQ4NzE4Qjg4MDAwMDgwREJGODcxOEI4ODAwMDA4MDczCis6MTAwMkUwMDAyQkJBNzE4Qjg4MDAwMDgwRjEwOTcxOEI4ODAwMDA4MDI3Cis6MTAwMkYwMDBEQzY5NzE4Qjg4MDAwMDgwMTk4QjcxOEI4ODAwMDA4MDBECis6MTAwMzAwMDBGRkZCNzE4Qjg4MDAwMDgwMjAwMDcxOEI4ODAwMDA4MENCCis6MTAwMzEwMDA1MjAwNzE4QkMyMDAwMDgyRkZGRjcxOEJDMjAwMDA4MjBECis6MTAwMzIwMDBDMjAwMDA4MkMyMDAwMDgyQzIwMDAwODIxMDAwNzE4QkY1Cis6MTAwMzMwMDBDMjAwMDA4MjgwMDA3MThCQzIwMDAwODI5MDAwNzE4QjJECis6MTAwMzQwMDBDMjAwMDA4MjQwMDA3MThCQzIwMDAwODJGRkZGNzE4QkVGCis6MTAwMzUwMDBDMjAwMDA4MkMyMDAwMDgyQzIwMDAwODJDMjAwMDA4MjhECis6MTAwMzYwMDAxMDAwNzE4QkMyMDAwMDgyODAwMDcxOEJDMjAwMDA4MjdECis6MTAwMzcwMDA5MDAwNzE4QkMyMDAwMDgyNDAwMDcxOEJDMjAwMDA4MjJECis6MTAwMzgwMDBGRkZCNzE4QkMyMDAwMDgyMDAwNDcxOEJDMjAwMDA4MkVGCis6MTAwMzkwMDA0QTAwNzE4QkMyMDAwMDgyMDAwMDcxOEJDMjAwMDA4MjkzCis6MTAwM0EwMDAwMDAwNzE4QkMyMDAwMDgyQzIwMDAwODJDMjMwMDQxOUJBCis6MTAwM0IwMDAxMDAwMDk0RkMyMDEwMDgyQzIwMTAwODJDMjAxMDA4MjA2Cis6MTAwM0MwMDBDMjAxMDA4MkMyMDEwMDgyQzIwMTAwODJDMjAxMDA4MjE5Cis6MTAwM0QwMDBDMjAxMDA4MkMyMDEwMDgyQzIwMTAwODJDMjAxMDA4MjA5Cis6MTAwM0UwMDBDMjAxMDA4MkMyMDEwMDgyMDAxMDcxOEJDMTMwMDQxOTY5Cis6MTAwM0YwMDA5MzAwMDE0RkNEMzAwMDA5Q0YzMDAwMDkwMDAwMzQ0OThGCis6MDgwNDAwMDAwMDA4MDA0NEM4NTQxMTAwN0IKKzowMDAwMDAwMUZGCisvKgorICogIENvcHlyaWdodCAoYykgMTk5NCBDcmVhdGl2ZSBUZWNobm9sb2d5IEx0ZC4KKyAqICBNaWNyb2NvZGUgZmlsZXMgZm9yIFNCMTYgQWR2YW5jZWQgU2lnbmFsIFByb2Nlc3NvcgorICovCmRpZmYgLS1naXQgYS9maXJtd2FyZS9zYjE2L2ltYV9hZHBjbV9wbGF5YmFjay5jc3AuaWhleCBiL2Zpcm13YXJlL3NiMTYvaW1hX2FkcGNtX3BsYXliYWNrLmNzcC5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwOWYxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9zYjE2L2ltYV9hZHBjbV9wbGF5YmFjay5jc3AuaWhleApAQCAtMCwwICsxLDEyMiBAQAorOjEwMDAwMDAwMDAxMDAwNDQwODAwMDA0NDBDNTAwMDQ0MDA3MDAwNDRGQworOjEwMDAxMDAwMDQ3MDAwNDQwREYyNjFBODQ0MDQwNDE5MDAwMDQwNDUzNgorOjEwMDAyMDAwMDAwNDYzODAwMDAwMDYzOUZGMkUyMTQ5RkYwREQ0NDlFQQorOjEwMDAzMDAwNDA0OTM5QUM1NTU1NzE4QjUwMDFCMTgwMDAwMUIxODBGOAorOjEwMDA0MDAwQzkyMDA0MTk1MTAwNzE4QkNEMDAwNDE5RTQyMDcxOEI3MworOjEwMDA1MDAwQ0YwMDA0MTk4MDAwNzE4QkNCMjAwNDE5MTAwMDcxOEIyNAorOjEwMDA2MDAwQzQyMDA0MTk2NTAwNTE4QkMyMjAwMDM5MDAwMEIxODAwMgorOjEwMDA3MDAwQzIzMDA0MTkwMDAwNjM4MEMxQTAwNDE5OTMwMDAxNEYyRAorOjEwMDA4MDAwQ0QzMDAwMDlDRjMwMDAwOTA0NDAwMDE0MEM0MDAwMTRBQQorOjEwMDA5MDAwMDAwNDYxQTgwMjA0NjFBODA0NjAwNDI0MDAwMDM0NDkzQgorOjEwMDBBMDAwMDA1MDAwNDQ0NDA0MDQzOTAwMDA0MDQ1MDAwMDQwNDUyRAorOjEwMDBCMDAwMEYwMDYxMEEwMDAxMDA0NTQwNDAwOUVGRkYyMDA5Q0YxMQorOjEwMDBDMDAwMDAwNDYzQTE1MDAzMzM4MDAwMDRBMzgwMDBGRkMyOEJBRgorOjEwMDBEMDAwMDhGMDA0NTQwQ0QwMDBDNDIwMDM4MEMwMzAwMDAwODgxNQorOjEwMDBFMDAwMDAwMDdBMEFEMDAxMDA4MjA4NTAwMDQ0QzAwMDAwOTk0NAorOjEwMDBGMDAwMDg1MDAwNDQwMEZGQzI4QjIwMDAwMDgwMDAwRDQyOEI5RQorOjEwMDEwMDAwMDBBMjAwQzQwMDBFNDI4QjBDOTIwMEM0MDAxRTQyOEI2MQorOjEwMDExMDAwMDQ2MjAwQzQwMDhFNDI4QjBDNTIwMEM0MDA5RTQyOEJDRAorOjEwMDEyMDAwMDBDMjAwQzQwMEJFNDI4QjAwQzIwMEM0MDAwNDQyOEI2NworOjEwMDEzMDAwMDBGMjAwQzQwMDI0NDI4QjAwOTEwMEM0MDA1NTQyOEJBMQorOjEwMDE0MDAwMDg1MDAwQzQwMDNGNDI4QjA4RTIwMEM0MDAwMDQwNDU1NAorOjEwMDE1MDAwMjAwMTc5ODAwMDMwNDI4QjAwOTIwMEM0MDAwMDQwNDVBRAorOjEwMDE2MDAwMDAwMDcxOEI0MDAxMDA4MDA4NTAwMDQ0RkYwMEUyQUJBQQorOjEwMDE3MDAwMEM0MjAwQzQwRkYyQThBODIwMDBCMTg4MDAwMDQxMDI4MAorOjEwMDE4MDAwNERGMjAwMzlDMDAxMDA4MjA4NTAwMDQ0MERGMkEzQThDRQorOjEwMDE5MDAwNERGMjAwMzkwODUwMDA0NEZGMDBFMkFCMjAwMDAwODgxNworOjEwMDFBMDAwMDAwMDYxMDI0REYyMDQxOTA4NTAwMDQ0RkYwMEUyQUI2OAorOjEwMDFCMDAwQTAwMDAwODgwMDAwNjExMDRERjIwNDE5MDg1MDAwNDRBRQorOjEwMDFDMDAwRkYyMEUyQUI2MDAwMDA4ODAwMDA3MUMwNERGMjA0MTkwRQorOjEwMDFEMDAwMDg1MDAwNDQwMDAwN0EwQTIwMDFGMDgwMDFBMDQxMEE4MgorOjEwMDFFMDAwMDREMjAwQzQyMDAxRjA4MEMxMzAwNDE5MDg1MDAwNDQzQQorOjEwMDFGMDAwMDAwMDc5ODAwMEExMDA4NEI1MDA1MThCQ0YwMDAwMzk0OAorOjEwMDIwMDAwMDAwMUIxODA4ODAwMDQxOThBMDAwNDE5QzgyMDA0MTk2QgorOjEwMDIxMDAwQ0EyMDA0MTlDMjMwMDQxOUNEMTAwNDE5Q0YxMDA0MTlEMgorOjEwMDIyMDAwQjAwMDcxOEI4QzAwMDQxOThFMDAwNDE5MTAwMDcxOEJDMgorOjEwMDIzMDAwQzQyMDA0MTk5MzAwMDE0RkNEMzAwMDA5Q0YzMDAwMDlDQworOjEwMDI0MDAwMDMwMzA0NDkwNDgxMDA1NDA4NTAwNDY0MDg1MDAwNDQyNgorOjEwMDI1MDAwMDAwMDYzODAwMDAwMDYxOTAzMDAwNDQ5MDg1MDAwNDRCMAorOjEwMDI2MDAwMjAwMTYzODAwMDAwMDYxOTAwMDJFMjhCMDg0MTAwODQyRgorOjEwMDI3MDAwNjUwMDUxOEJDMjIwMDAzOTAwMDA2MzgwQzFBMDA0MTlDMQorOjEwMDI4MDAwMDg2MTAwNDQyRDAwNTE4QkMyMjAwMDM5MDAwMEIxODA2QworOjEwMDI5MDAwQzFBMDA0MTkwMzAwMDQ0OTA4NTAwMDQ0MDIyMDYxMEE2NworOjEwMDJBMDAwMDAwMTAwNDUwMjMwNjEwQTA0MDMwMEM0MDVCMEM4MTgwQgorOjEwMDJCMDAwMDQ3MTAwQzQwMDEzMDA0NDAwNzkwODQ0MDAwNDc5ODBFQworOjEwMDJDMDAwMDA0OTAwQzRDQTIwMDQxOTRBMDQwNDE5RkYwMEUyOEI0MworOjEwMDJEMDAwMENGOTA4NDRDRjEwMDQxOTBDMkIwODQ0OEUwMDA0MTlBMworOjEwMDJFMDAwMDMzMDYxMEFDODIwMDAzOTQ4MDQwMDM5MEEzMDYxMEEyNQorOjEwMDJGMDAwMENGOTA4NDRDRDEwMDQxOTBDMkIwODQ0OEMwMDA0MTk4NworOjEwMDMwMDAwMENEOTA4NDQwQzVBMDA0NDAwNzkwODQ0MDAwNDc5ODA1MAorOjEwMDMxMDAwMDA0OTAwQzRDMzMwMDQxOUNBMzAwMDk5MENEOTA4NDRGQworOjEwMDMyMDAwNDIwQTA5MEUwMDAxMzMxMThDMDFBMzgwMDAwMTdBMTBFQQorOjEwMDMzMDAwODAwNUIxODAwNUIwRTAxODAwOTMwMDg0MDA3OTA4NDQ3RQorOjEwMDM0MDAwMDAwNDc5ODAwMDQ5MDBDNDBDMUIwODQ0ODgwMDA0MTk4QgorOjEwMDM1MDAwOEEwMDAwOTkwQ0Q5MDg0NDQyMEEwOTBFODAwMDcxOEI2QQorOjEwMDM2MDAwQzAwNEIxODIxMDAwRTAwQjAwNDMwMDg0MDIzMDYxMEEzNworOjEwMDM3MDAwMDEzMEM4MEEwMDQzMDA4NDAwMDBCMTgwQzIzMDA0MTk3MworOjEwMDM4MDAwMENBODAwNDQwMjMwNjEwQTAwRDMwMEM0MDVCMEM4MThBQworOjEwMDM5MDAwMDQ2MzAwQzQwOEYzMDA0NDAwNzkwODQ0MDAwNDc5ODAzMQorOjEwMDNBMDAwMDA0OTAwQzQyMDAwMDQxOUZGMDBFMjhCMENGOTA4NDQ0NgorOjEwMDNCMDAwQ0QxMDA0MTlDRjEwMDQxOTBDMkIwODQ0OEMwMDA0MTkxQgorOjEwMDNDMDAwOEUwMDA0MTkwMzMwNjEwQUM4MjAwMDM5Q0EyMDAwMzlBMAorOjEwMDNEMDAwNDgwNDAwMzk0QTA0MDAzOTBDRDkwODQ0MEM1QTAwNDQzNgorOjEwMDNFMDAwMDA3OTA4NDQwMDA0Nzk4MDAwNDkwMEM0QzMzMDA0MTkyRQorOjEwMDNGMDAwMENEOTA4NDQ0MjBBMDkwRTA1QjBFMDE4MDAxODAwODQyMAorOjEwMDQwMDAwMDA3OTA4NDQwMDA0Nzk4MDAwNDkwMEM0MEMxQjA4NDRBQQorOjEwMDQxMDAwODAwMTAwODAwQ0Q5MDg0NDQyMEEwOTBFODAwMDcxOEJDQgorOjEwMDQyMDAwQzAwNEIxODIxMDAwRTAwQjAwODgwMDg0MDIzMDYxMEEzMQorOjEwMDQzMDAwMDEzMEM4MEEwMDg4MDA4NDAwMDBCMTgwQzIzMDA0MTk2RAorOjEwMDQ0MDAwMDAwMTAwMTEwMDBGRTI4QjAwMDA0MUNCOEMwMDAwODAwNgorOjEwMDQ1MDAwMDAwMDQ4Q0IyMDAwN0E4MDgwMDEwMDgwODIwQzA5NkU2OQorOjEwMDQ2MDAwMDMwODA5MEU4MDQwMDlDRjAwMDE3MUMyMDAwOEMyMUJCOQorOjEwMDQ3MDAwMDRCODAwQzQyMDA1QTg4MDIwMDFGMDgwMDAwMUMyMUI0MAorOjEwMDQ4MDAwMDQ0ODAwQzQyMDA1QTg4MDIwMDFGMDgwMDAwMkMyMUI5RgorOjEwMDQ5MDAwMDQ2ODAwQzQyMDA1QTg4MDIwMDFGMDgwMjAwM0E4ODAwMworOjEwMDRBMDAwMDAwMTAwMTEwMDA0QzI4QjA4NzgwMEM0MDAwMEU5ODAzQworOjEwMDRCMDAwMDVCMEE4MTgwMDAwNEFDQjIwMDBBODIyRDAwMTAwODI3NQorOjEwMDRDMDAwNDAwMTAwODBDNDAwMDQxOUIwMDBFMjhCMDYyMEE4MEE5NQorOjEwMDREMDAwMkQxMDYxMEFEMTA4MDkyRTAwMDFBODAyMENGOTA4NDQ2OAorOjEwMDRFMDAwQ0QxMDA0MTkwQzJCMDg0NDAzMDgwOTBFOUEyNUIxNjA5RAorOjEwMDRGMDAwQTIwRTA5NkUwMzAwMDkwRjAwMDE3MTgyMjAwMTAwODAyNQorOjEwMDUwMDAwMDAwMDYxQ0I4MDAxMDA4MDAzMDAwOTBGMDAwMTcxQzI2RgorOjEwMDUxMDAwMDAwOEMyMUIwQzJBMDBDNDIwMDVBODgwMjAwMUYwODAxRQorOjEwMDUyMDAwMDAwMUMyMUIwQzFBMDBDNDIwMDVBODgwMjAwMUYwODAyNQorOjEwMDUzMDAwMDAwMkMyMUIwQzNBMDBDNDIwMDVBODgwMjAwMUYwODBGNAorOjEwMDU0MDAwMjAwM0E4ODAwMDAxMDAxMTAwMDRDMjhCMDRBQTAwQzQ4QgorOjEwMDU1MDAwMDAwMEU5ODAwNUIwQTgxODAwMDA0QUNCMjAwMEE4MjJCRQorOjEwMDU2MDAwRDAwMTAwODI0MDAxMDA4MEM3MDAwNDE5QjAwMEUyOEI3NgorOjEwMDU3MDAwMDYyMEE4MEEyRjEwNjEwQUYxMDgwOTJFMDAwMUE4MDIxRQorOjEwMDU4MDAwMENGOTA4NDRDRjEwMDQxOTBDMkIwODQ0OUYzNUIxNjBCNgorOjEwMDU5MDAwMDMwODA5MEUwMDAxNzE4MjIwMDEwMDgwMDAwMDYxQ0I3OAorOjEwMDVBMDAwODAwMTAwODBFNDIwNzE4QjAwMDEwMDQ1OTA0MDA5OEY5QworOjEwMDVCMDAwMDAwNTYzODAwMDAwMDYzOTA4MTkwNEQ0OTMwMDAxNEYzOAorOjEwMDVDMDAwRTcwMDAxNkYwRDMwNjEwQTIwMDQ2MUE4QzIwMDAwODJCQgorOjEwMDVEMDAwMDIwNDYxQThDMjAwMDA4MkNEMzAwMDA5MDIwMDAwMDJCRQorOjEwMDVFMDAwMDIwMDAwMDJDMDgwMDAwOTIwMDAwOTQ5MEYzMDYxMEFBMgorOjEwMDVGMDAwMEQzMEM4MEEwMDI5MDBDNDAwODBDODBBMDAyOTAwQzRDMAorOjEwMDYwMDAwMDAwNEIxODAwMDAwMDYzOUM5MjAwNDM5MDAzOTAwNDREMworOjEwMDYxMDAwMDAwNDYzODAwMDAwMDYzOTAwMDRCMTgwQzkyMDA0Mzk1OQorOjEwMDYyMDAwMDAzOTAwNDQwOTIwMjMwQTAwMDAwNjE5QzkyMDA0MTlEMgorOjEwMDYzMDAwMDAwMDQwNDUwMjAwNjEwQTBDQjkwNDE0MDQwMDYxMEE3QworOjEwMDY0MDAwMDYwMDQ4MEEwMEE5MDQ1NEM2MDAwNDE5MENBOTAwNDQ3NQorOjEwMDY1MDAwMDUwMEM4MEEwQ0E5MDQ1NEM1MDAwNDE5MDcwMDYxMEE2MgorOjEwMDY2MDAwMEMwMDQ4MEEwMEI5MDQ1NENDMDAwNDE5MENCOTAwNDQyOQorOjEwMDY3MDAwMEUwMEM4MEEwQ0I5MDQ1NENFMDAwNDE5MEM1QTAwNDRFOAorOjEwMDY4MDAwODIwRDA5MkU4MDQwMDlDRjAwREY3MThCODAwMTAwODAzMAorOjEwMDY5MDAwMDJDMTAwMjIwM0MxMDAyMjAwMDE2NTgwRDIwNTY1ODJFQgorOjEwMDZBMDAwNDAyMTAwODBEMzAzMDA4MjQwMzMwMDgwMEM1QTAwNDQ3NAorOjEwMDZCMDAwMEYzMDYxMEEwRDMwQzgwQTA4RDkwMEM0OTMwMDAxNEZGOQorOjEwMDZDMDAwRTcwMDAxNkYwRjMwNjEwQTIwMDAwMDg4MDIwMDYxMDIxQworOjEwMDZEMDAwMDIwMDAwMDNDRjMwMDAwOTIwMDAwOTQ5MDAwNDYzODBCNAorOjEwMDZFMDAwMDREOTAwNDQwMDA0QjE4MDAwMDAwMDQ2MDIzMDYxMEFEMQorOjEwMDZGMDAwMDVCMEE4MThDMjMwMDQxOTAwMDAwMDQ2MEUxMEM4MEE0MAorOjEwMDcwMDAwMEMwQjA0MTQwRTEwNjEwQTA0MkIwMDQ0MEMxMEM4MEFEMAorOjEwMDcxMDAwMDQyQjA0NTQwQzEwNjEwQTAwMDAwMDQ2MDAxMEE4MThCNQorOjEwMDcyMDAwQTAwMDAwODgwMDAxNzE4MjAwMDAwMDQ2MDAwNDMzODBCMAorOjEwMDczMDAwMDAwMDgzODAyMDA0N0E4MDIwMDEzMzgwMDAwMDgzODBDMQorOjEwMDc0MDAwMjAwMDdBODAyMDAzMDA4MDAwMDAwMDQ2MTZDRTExMDBCMQorOjAwMDAwMDAxRkYKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAxOTk0IENyZWF0aXZlIFRlY2hub2xvZ3kgTHRkLgorICogIE1pY3JvY29kZSBmaWxlcyBmb3IgU0IxNiBBZHZhbmNlZCBTaWduYWwgUHJvY2Vzc29yCisgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3NiMTYvbXVsYXdfbWFpbi5jc3AuaWhleCBiL2Zpcm13YXJlL3NiMTYvbXVsYXdfbWFpbi5jc3AuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjRiNTY1Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvc2IxNi9tdWxhd19tYWluLmNzcC5paGV4CkBAIC0wLDAgKzEsODQgQEAKKzoxMDAwMDAwMDAwMTAwMDQ0MDgwMDAwNDQwMEIxMDA0NDAwNjEwMDQ0QjYKKzoxMDAwMTAwMDA4NTAwMDQ0MERGMjYxQTg0NDA0MDQxOTAwMDA0MDQ1NTIKKzoxMDAwMjAwMDQwNDkzOUFDNTU1NTcxOEI1MDA1NjM4MDAwMDAwNjM5NDUKKzoxMDAwMzAwMEZGMkUyMTQ5RkYwRkQ0NDkyMDAxMDkwRTIwMDA3MThCQUEKKzoxMDAwNDAwMEE4MDFBODgwODgwMUE4ODBBODAwMDA4MEQyMDA3MThCMzgKKzoxMDAwNTAwMDg4MDBBODgwQTgwNEIzODAyMDA3QjM4MDg4MDNCMTgwRkIKKzoxMDAwNjAwMEMwMDAwOTVDQzIwMTAwODJBMTAwNzE4QkNEMDAwNDE5OUYKKzoxMDAwNzAwMEEyMjA3MThCQ0YwMDA0MTkwMDAwQjE4MEMyMDAwNDE5QzYKKzoxMDAwODAwMDAwNDAwMDE0MDg0MDA0MjQwMDAwMzQ0OTBDNDAwMDQ0OUYKKzoxMDAwOTAwMDQ0MDQwNDM5MDAwMDQwNDUzMjAwMDk1QzAwMDAwQzM5N0EKKzoxMDAwQTAwMDAwMDA0MDQ1NDA0MDA5RUZGRjIwMDlDRjAwMDQ2M0ExNTQKKzoxMDAwQjAwMDUwMDMzMzgwMDAwNEEzODAwMEZGQzI4QjAwRDAwNDU0OUYKKzoxMDAwQzAwMDA0RTAwMEM0MjAwMzgwQzAzMDAwMDA4ODAwMDA3QTBBRTkKKzoxMDAwRDAwMEQwMDEwMDgyMDA2MDAwNDRDMDAwMDA5OTAwNjAwMDQ0MkMKKzoxMDAwRTAwMDAwRkZDMjhCMjAwMDAwODAwMDBENDI4QjA4MzIwMEM0NEMKKzoxMDAwRjAwMDAwMEU0MjhCMDBBMjAwQzQwMDFFNDI4QjBDQjIwMEM0NTIKKzoxMDAxMDAwMDAwOEU0MjhCMDA2MjAwQzQwMDlFNDI4QjA4NTIwMEM0RTUKKzoxMDAxMTAwMDAwQkU0MjhCMDg1MjAwQzQwMDA0NDI4QjA0NzIwMEM0MkIKKzoxMDAxMjAwMDAwMjQ0MjhCMDBEMjAwQzQwMDU1NDI4QjAwNjAwMEM0MDIKKzoxMDAxMzAwMDAwMDA0MDQ1MjAwMTc5ODAwMDMwNDI4QjA4ODIwMEM0RDUKKzoxMDAxNDAwMDAwMDA0MDQ1MDAwMDcxOEI0MDAxMDA4MDAwNjAwMDQ0QzkKKzoxMDAxNTAwMEZGMDBFMkFCMDBCMjAwQzQwRkYyQThBODIwMDBCMTg4RjMKKzoxMDAxNjAwMDAwMDA0MTAyNERGMjAwMzlDMDAxMDA4MjAwNjAwMDQ0RUQKKzoxMDAxNzAwMDBERjJBM0E4NERGMjAwMzkwMDYwMDA0NEZGMDBFMkFCOEQKKzoxMDAxODAwMDIwMDAwMDg4MDAwMDYxMDI0REYyMDQxOTAwNjAwMDQ0NjQKKzoxMDAxOTAwMEZGMDBFMkFCQTAwMDAwODgwMDAwNjExMDRERjIwNDE5REUKKzoxMDAxQTAwMDAwNjAwMDQ0RkYyMEUyQUI2MDAwMDA4ODAwMDA3MUMwRTYKKzoxMDAxQjAwMDRERjIwNDE5MDA2MDAwNDQwMDAwNzk4MDAwRTIwMDg0RTAKKzoxMDAxQzAwMDAzMDMwNDQ5MDhDMjAwNTQwMDYwMDQ2NDAwNjAwMDQ0NTIKKzoxMDAxRDAwMDAwMDA2MzgwMDAwMDA2MTkwMzAwMDQ0OTAwNjAwMDQ0MjkKKzoxMDAxRTAwMDIwMDE2MzgwMDAwMDA2MTkwMDIwRTI4QjBDRjIwMDg0REQKKzoxMDAxRjAwMDNFMDA1MThCQzAyMDAwMzkwODAxMDA0NDZDMDA1MThCMzcKKzoxMDAyMDAwMEMwMjAwMDM5MDAwMkUyOEIwNDIxMDA4NEZEMDA1MThCRTQKKzoxMDAyMTAwMEMyMjAwMDM5MDAxMTAwNDRGRTAwNTE4QkMyMjAwMDM5NzkKKzoxMDAyMjAwMEU1MDA3MThCQ0QwMDAwMzkwMDAwQjE4MEM5MjAwNDE5QjAKKzoxMDAyMzAwMENCMjAwNDE5QzEyMDA0MTlDMzIwMDQxOTEwMDA3MThCQUMKKzoxMDAyNDAwMEM3MjAwNDE5NUUwMDcxOEJDRjAwMDAzOTAwMDBCMTgwMTcKKzoxMDAyNTAwMEM0MjAwNDE5QzYyMDA0MTlDODIwMDQxOUNBMjAwNDE5OEUKKzoxMDAyNjAwMDIwMDA3MThCQ0MyMDA0MTkwMzAwMDQ0OTAwNjAwMDQ0NzUKKzoxMDAyNzAwMDA5MDQ2MUE4QzEwMDA0MTkwQjA0NjFBOENBMDAwNDE5OEIKKzoxMDAyODAwMDA0NjAwMEQ0MEQwMDYxMEE5MDQwMDk4RjAwMDEwMDQ1MTAKKzoxMDAyOTAwMDBGMDA2MTBBMDA0MDA5OEYwMDAxMDA0NTgyMDAwOTJFMEQKKzoxMDAyQTAwMDgwNDAwOUNGMDIwMDYxMjI0MzI1NjEyMjQwMzMwMDgwNTMKKzoxMDAyQjAwMDA4QTgwMDQ0MjAzMTQ5NUM5MjAwMDk0RTAyMDMwOTJFMkYKKzoxMDAyQzAwMDAwMDBBMzAyQzAwMDcxQzAyMDAwRUI4MDAwMDRDMjhCQkMKKzoxMDAyRDAwMDIwMDQ2MTgwMDAwNDdBMDJDQjAwQTg1OEIwMDVGMzgwQTYKKzoxMDAyRTAwMDIwMDRBODEwMDAwMDEwMzlCMDAwRTA4QjIwMDEwMDgwMkQKKzoxMDAyRjAwMDAwMDA2M0NCMDAwMDdBMDI0MDAwMDE1QjIwMDAwMDgwMTgKKzoxMDAzMDAwMDAwMDA0QUNCMjAwMDEzODAyMDAwN0E4MEUwMjEwMEMwNEEKKzoxMDAzMTAwMDA4MDAwODQ5MTA0MTA5OEVGRkZGNjI4QjAwMDQ2MTIyMkEKKzoxMDAzMjAwMDAwMDMwMDQ1MjIwMTMzODAyMDAxQTMwMjAwMDA3QTgwRUYKKzoxMDAzMzAwMEMwMDAwMDgyMDcyMDQwMEEwODgzMDA4NDQwMjEwMDgwMUEKKzoxMDAzNDAwMDQwMDU5MzEwQzcyMDAwMzkwMDAwNDA0NTA3MjA0MDBBQUYKKzoxMDAzNTAwMDBDQTMwMDg0MDgwMDAwODIwQzI0NjE1MDQwMDEwMDgwM0UKKzoxMDAzNjAwMEM3MjAwMDM5MDAwMDQwNDUwMDA0NjM4MDAwMDAwNjM5QzIKKzoxMDAzNzAwMDQyMDEwOTBFMDIyMDYxMEEwMDAxMDA0NTBDMjA2MDBBQkEKKzoxMDAzODAwMDAwNzMwMDg0MDAwNEIxODAwMDAwMDYzOTBDNjEwNEQ0QkQKKzoxMDAzOTAwMDAwMjQ3MUMwMjAzMzMzQzBFMDAxQTM4MjIyMDM3QTAyMUIKKzoxMDAzQTAwMEMzMDFBMzgyMjAwMTMzODAwMDAwN0E4MEMyMDFCMzUwRDAKKzoxMDAzQjAwMENDMjAwMDM5MDAwMDcxODAwMEYzMDA0NDBDMjA2MDBBNUEKKzoxMDAzQzAwMDAwRDMwMDg0MDAwNEIxODAwMDAwMDYzOTBDNjEwNEQ0MUQKKzoxMDAzRDAwMDAwMDBCMzEwQ0MyMDAwMzkwMDAwNzFDMDAwRjMwMDQ0Q0QKKzoxMDAzRTAwMENDMjAwMDM5MDAyMDcxQzAwMDMwNzFDMDAwRjMwMDQ0RkYKKzoxMDAzRjAwMDIwMDEwMDgwRkZGRjYyOEIyMDAxMzM4MDAwMDA4MzgwOUEKKzoxMDA0MDAwMDIwMDA3QTgwMjBFMTA5NUM4MjAwMDkyRjgwNEEwOThFNTEKKzoxMDA0MTAwMEUwMDFCMzgyMjAwNEEzODAwMDAwN0FDQjAzMDBBODE4NzcKKzoxMDA0MjAwMDAwMDAxMDM5MDgwNEVBMTAwODA0N0ExMDIwMDAwMDgwNDcKKzoxMDA0MzAwMDQwMDAyMUNCMEMwMEU4MTAwMDAwNDEwMjBDMDBFQjEwNDIKKzoxMDA0NDAwMEYyMDEwMDgyNDAyMTMzMDIwODIwNjEwQUM0MDAwNDE5MkQKKzoxMDA0NTAwMEM3MDAwMDk5MDIwMDYxMEEwQ0U4MDQxNDAxMDA2MTBBNTcKKzoxMDA0NjAwMDAzMDA0ODBBMDBCODA0NTRDMzAwMDQxOTBDQjgwMDQ0M0YKKzoxMDA0NzAwMDA4MDBDODBBMENCODA0NTRDODAwMDQxOTBBMDA2MTBBMkMKKzoxMDA0ODAwMDA5MDA0ODBBMDA2ODA0NTRDOTAwMDQxOTBDNjgwMDQ0QjMKKzoxMDA0OTAwMDBCMDBDODBBMEM2ODA0NTRDQjAwMDQxOTA0MDA2MTBBNUMKKzoxMDA0QTAwMDA2MDA0ODBBMDA3ODA0NTRDNjAwMDQxOTBDNzgwMDQ0NzkKKzoxMDA0QjAwMDA1MDBDODBBMEM3ODA0NTRDNTAwMDQxOTA3MDA2MTBBMzUKKzoxMDA0QzAwMDBDMDA0ODBBMDBFODA0NTRDQzAwMDQxOTBDRTgwMDQ0NkQKKzoxMDA0RDAwMDBFMDBDODBBMENFODA0NTRDRTAwMDQxOTAwMDA0MDQ1ODAKKzowODA0RTAwMDIwMTA3MThCMDkzRjA3MDA5OQorOjAwMDAwMDAxRkYKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAxOTk0IENyZWF0aXZlIFRlY2hub2xvZ3kgTHRkLgorICogIE1pY3JvY29kZSBmaWxlcyBmb3IgU0IxNiBBZHZhbmNlZCBTaWduYWwgUHJvY2Vzc29yCisgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3RpXzM0MTAuZncuaWhleCBiL2Zpcm13YXJlL3RpXzM0MTAuZncuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjJjMDQyCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvdGlfMzQxMC5mdy5paGV4CkBAIC0wLDAgKzEsODYyIEBACis6MTAwMDAwMDBDMjM1MDAwMjAwMUUwMjFBREJGRkZGRkZGRkZGMDIzMkIzCis6MTAwMDEwMDBDQkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDIzM0VECis6MTAwMDIwMDA3Njc1ODFDRTkwRkRFODg1ODNBMDEyMzRFQUVDNEQ2MEIwCis6MTAwMDMwMDA2QTc4QUI4MDAzNzYwMDE4Qjg5Q0ZBNzg3RjgwMDM3NkU0Cis6MTAwMDQwMDAwMDE4Qjg2NUZBNzgyMDgwMDM3NjAwMThCODIwRkE5MDc2Cis6MTAwMDUwMDBGREREQUU4M0FGODI5MEZCRjgxMjAwQTE2MDA1RTRGMEY1Cis6MTAwMDYwMDBBMzgwRjY5MEZERThBODgyOTBGREU4QTk4MkU4QzM5OUY0Cis6MTAwMDcwMDA1MDA1NzYwMDA4ODBGNjkwMDBGRjEyMDBBQTkwMDEwMzU4Cis6MTAwMDgwMDAxMjAwQUE5MDAxMDcxMjAwQUE5MDAxMEIxMjAwQzg5MDVBCis6MTAwMDkwMDAwMTExMTIwMEM4OTAwMTE3MTIwMEM4NzVEMDAwMTIzMzY4Cis6MTAwMEEwMDBDODAyMDExREVGNjU4MjcwMDNFRTY1ODMyMkU0OTNGOEI4Cis6MTAwMEIwMDA3NDAxOTNGOTc0MDI5M0ZFNzQwMzkzRjU4MjhFODNFOEJFCis6MTAwMEMwMDA2OTcwMDEyMkU0OTNGNkEzMDg4MEY0RTQ5M0ZDNzQwMUMwCis6MTAwMEQwMDA5M0ZENzQwMjkzRkU3NDAzOTNGRjc0MDQ5M0Y4NzQwNTA0Cis6MTAwMEUwMDA5M0Y1ODI4ODgzMTIwMEExNzAwMTIyRTQ5M0EzQTg4MzcwCis6MTAwMEYwMDBBOTgyOEM4MzhEODJGMEEzQUM4M0FEODI4ODgzODk4MkIwCis6MTAwMTAwMDA4MEUzMjEyMTA0OTI4MDgwMDQ5MkFDQUUwNDkyRkRFODQ5Cis6MTAwMTEwMDAwNDk0MDQ5NEZCRjMwNDk5MDQ5NEZCRjMwNEY5MDRGOUE0Cis6MTAwMTIwMDA4MEZFRDBGMDMwRjAwOTIwRjMwM0Y2ODAxMEY3ODAwRDQ4Cis6MTAwMTMwMDAzMEYxMDkyMEYzMDNGMjgwMDRGMzgwMDFGMDIwRjQwNDhECis6MTAwMTQwMDBGQ0QwRTBDQzIyQ0NDMEUwMTIwMTVBMDIwMTRCQkMwMDMyCis6MTAwMTUwMDAwNUQwRjBBQ0YwMjJDMzEzRENGQzAyMDEyMUJGMDAwOTgyCis6MTAwMTYwMDBFRDI1ODI3NUYwMDFGOEU2MjJCRjAxMEZFRDI1ODJGNTNECis6MTAwMTcwMDA4MkVFMzU4M0Y1ODM3NUYwMDRFMDIyRUQyNTgyNzVGMDdCCis6MTAwMTgwMDAwMkY4RTIyMkQwODNEMDgyRjVGMEMzRTQ5M0EzQzVGMDU1Cis6MTAwMTkwMDA5NUYwQzBFMEMzRDBGMEU0OTNBMzk1RjA0MDEyQTNBMzgwCis6MTAwMUEwMDBDM0U1RjAzMzUwMDIwNTgzMjU4MkY1ODI1MDAyMDU4M0IyCis6MTAwMUIwMDA3NDAxOTNDMEUwRTQ5M0MwRTAyMkQwODNEMDgyRjVGMEQ0Cis6MTAwMUMwMDBFNDkzNzAwOTc0MDE5MzcwMDRBM0EzODAwQzc0MDI5M0U4Cis6MTAwMUQwMDA2NUYwNjAwNUEzQTNBMzgwRTc3NDAxOTNDMEUwRTQ5M0Y2Cis6MTAwMUUwMDBDMEUwMjIxMjAyNUIwMjAxRjIxMjAyQUYwMjAxRjIxMjFGCis6MTAwMUYwMDAwMkQzMDIwMUYyMzBFMDA3MjBFMzAyRTYyMkU3MjIzMEQ4Cis6MTAwMjAwMDBFMTA3MjBFMzAyRTIyMkUzMjIzMEUyMDJFMDIyRTQ5MzZCCis6MTAwMjEwMDAyMjEyMDJEMzAyMDIxQTEyMDJBRjAyMDIxQUFCRjAxMjI5Cis6MTAwMjIwMDAwMjI0Q0JDNUYwQ0IyMjMwRTAxMDIwRTMwNkU2RjVGMDQ3Cis6MTAwMjMwMDAwOEU2MjJFN0Y1RjAwOUU3MTkyMjMwRTExMDIwRTMwNjhECis6MTAwMjQwMDBFMkY1RjAwOEUyMjJFM0Y1RjAwOUUzMTkyMjMwRTIwNkQ0Cis6MTAwMjUwMDBFMEY1RjBBM0UwMjJFNDkzRjVGMDc0MDE5MzIyQkIwMEYzCis6MTAwMjYwMDAwMzc0MDkyMkJCMDEwNzg5ODI4QTgzNzQwNDIyQkIwMkJBCis6MTAwMjcwMDAwNzg5ODI4QTgzNzQxMDIyNzQwQTIyMDIwMjdCQkIwMERGCis6MTAwMjgwMDAwN0U5MjU4MkY4NzQwMTIyQkIwMTBERTkyNTgyRjU4Mjc4Cis6MTAwMjkwMDBFQTM1ODNGNTgzNzQwNDIyQkIwMjBERTkyNTgyRjU4MkQ5Cis6MTAwMkEwMDBFQTM1ODNGNTgzNzQxMDIyRTkyNTgyRjg3NDAyMjIwMjZDCis6MTAwMkIwMDAwMkFGQkYwMDA1RURGODc0MDEyMkJGMDEwNzhEODI4RUU5Cis6MTAwMkMwMDA4Mzc0MDQyMkJGMDIwNzhEODI4RTgzNzQxMDIyRURGODlFCis6MTAwMkQwMDA3NDAyMjIwMjAyRDNCRjAwMDdFRDI1ODJGODc0MDEyMkM2Cis6MTAwMkUwMDBCRjAxMERFRDI1ODJGNTgyRUUzNTgzRjU4Mzc0MDQyMjdFCis6MTAwMkYwMDBCRjAyMERFRDI1ODJGNTgyRUUzNTgzRjU4Mzc0MTAyMjYxCis6MTAwMzAwMDBFRDI1ODJGODc0MDIyMjAyMDMwN0MwRTAxMjAyNUIwMkFDCis6MTAwMzEwMDAwMzFGQzBFMDEyMDJBRjAyMDMxRkMwRTAxMjAyRDMwMkFCCis6MTAwMzIwMDAwMzFGMzBFMDBCMjBFMzA0RDBFMEY2MjJEMEUwRjcyMkY4Cis6MTAwMzMwMDAzMEUxMEIyMEUzMDREMEUwRjIyMkQwRTBGMzIyRDBFMDYxCis6MTAwMzQwMDBGMDIyQzlDREM5Q0FDRUNBQ0JDRkNCMTIwMzUyRURGOTI4Cis6MTAwMzUwMDBFRUZBRUZGQjIyQkIwMDJGQkYwMDBBRkFFREY4RTdGNjNBCis6MTAwMzYwMDAwODA5REFGQTIyQkYwMTEyOEQ4MjhFODNGODAyMDM2RjI4Cis6MTAwMzcwMDAwOUEzRTdGMEQ4RkEyMjAyMDM3QUZBRURGOEU3RjIwOEM3Cis6MTAwMzgwMDAwOURBRkEyMjAyMDM4NEJCMDE0REJGMDAxNDg5ODI4QTc0Cis6MTAwMzkwMDA4M0Y5RURGODAyMDM5NjA4QTNFMEY2RDlGQTIyMDIwM0U2Cis6MTAwM0EwMDBBN0JGMDEyMjhEODI4RTgzRkIwOEM5QzU4MkM5Q0FDNTM5Cis6MTAwM0IwMDA4M0NBRTBBM0M5QzU4MkM5Q0FDNTgzQ0FGMEEzREJFQTYwCis6MTAwM0MwMDBEOEU4MjIwMjAzQ0E4RDgyOEU4M0Y5RURGOEUwRjIwOEE0Cis6MTAwM0QwMDBBM0Q5RkEyMjAyMDNENEJCMDI0REJGMDAxMjg5ODI4QTNDCis6MTAwM0UwMDA4M0Y5RURGODAyMDNFNjA4QTNFNDkzRjZEOUY5MjJCRkY2Cis6MTAwM0YwMDAwMTIzOEQ4MjhFODNGQjA4QzlDNTgyQzlDQUM1ODNDQTAxCis6MTAwNDAwMDBFNDkzQTNDOUM1ODJDOUNBQzU4M0NBRjBBM0RCRTlEOEVFCis6MTAwNDEwMDBFNzIyMDIwNDE5ODk4MjhBODNGOUVERjhFNDkzRjIwODRECis6MTAwNDIwMDBBM0Q5RjkyMjAyMDQyQUJGMDAwREZBRURGOEUzRjYwODc5Cis6MTAwNDMwMDAwOURBRkEyMjAyMDQzNEJGMDExMjhEODI4RTgzRjgwMjk3Cis6MTAwNDQwMDAwNDQxMDlBM0UzRjBEOEZBMjIwMjA0NENGQUVERjhFM0UwCis6MTAwNDUwMDBGMjA4MDlEQUZBMjIwMjA0NTZFNkZCMDhFNkZBMDhFNjkwCis6MTAwNDYwMDBGOTA0RjYxODcwMDEwNjIyRTZGRjA4RTZGRTA4RTZGRDJDCis6MTAwNDcwMDAyMkVGRjBBM0VFRjBBM0VERjAyMkVCRjBBM0VBRjBBMzVECis6MTAwNDgwMDBFOUYwMjJFMEZGQTNFMEZFQTNFMEZEMjJFMEZCQTNFMDExCis6MTAwNDkwMDBGQUEzRTBGOTIyMDAwMDAwMDAwMDAwMDAwNEY5MDA2MTY2Cis6MTAwNEEwMDAwNTY4MDAyNjA1OEYwMDMzMEEwMDAwNjEwQTZDMDA2NkFCCis6MTAwNEIwMDAxNTFEMDA2MTBDRjAwMDYxMDlBMDAwNjEwOUQ3MDA2MTAxCis6MTAwNEMwMDAwREI3MDA2MTBCRTgwMDYxMEExMzAwNjEwQTQ4MDA2MTgyCis6MTAwNEQwMDAxNzE1MDAzMzE3MjgwMDM0MURGNjAwNDMxRUExMDA0NEYxCis6MTAwNEUwMDAyMDBFMDA0NDFGRkMwMDQ3MUVDODAwNDcxRjZEMDA0RDMyCis6MTAwNEYwMDAxRkJFMDA0RjFFRUEwMDU4MzI1NjAwNjE3Q0NDN0RGRkMzCis6MTAwNTAwMDAxMjFDQTcyMjkwRkZGQ0UwMjBFNzJEQzJBRkFFNTlBRjJFCis6MTAwNTEwMDA1ODc1NUEyMEU1NUExNEM1NUE2MDE5RTRGRTdGMDVFRTU1Cis6MTAwNTIwMDA0RkNFMjRGRkNFQ0YzNEZGQ0Y2MDA3RTQ5MEZGOTJGMDkwCis6MTAwNTMwMDA4MEVEODBFMDhFNTk4RjU4MjIxMjA1MDE3RDA3N0NCNzJGCis6MTAwNTQwMDAxMjMyNzI3RDBGN0M2RTEyMzI4Qzc4OUQ3QTA2RTRGNjQwCis6MTAwNTUwMDAwOERBRkM3QTA2MTIwNUM0N0MwMzEyMEU0QzEyMjE0QUZBCis6MTAwNTYwMDBFNEZFRkY3QzBGMTIzMUZCRDJBODIyMTIzMEU2RTQ5MEE5Cis6MTAwNTcwMDBGQzM4RjA5MEZGRjBFMDMwRTQwODc0MDE5MEZDMzlGMEIyCis6MTAwNTgwMDA4MDA1RTQ5MEZDMzlGMDdEMEE3QzAwMTIyNTI2MTIzMUFBCis6MTAwNTkwMDA2OTIyMTIzMEU2OTBGQzM5RTAxNDcwMEU5MEZGRjBFMDEyCis6MTAwNUEwMDA0NDEwRjA3QzAwMTIyNUJGODAxOTkwRkMzOUUwNzAwRUQ5Cis6MTAwNUIwMDA5MEZGRjBFMDU0RUZGMDdDMDAxMjI1QkY4MDA1N0MxNzFGCis6MTAwNUMwMDAxMjI1QkYxMjMxNjkyMjkwRkZGMEUwNTRBQkYwOTBGRjhBCis6MTAwNUQwMDBGMEUwNDQyMEYwMjI4QzM3OEQzNjc4ODJFREY2MDhFQzdFCis6MTAwNUUwMDBGNkVERkVFQ0ZEN0YwMTkwMDAwNTEyMDFFQzc4ODBGNjNGCis6MTAwNUYwMDA3ODgyRTZGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwMDAwNDRDCis6MTAwNjAwMDAxMjAxRUM1NDBGRkM3RDgwMTIxNzQ2Nzg4MEU2NzAwREM1Cis6MTAwNjEwMDBBRDNBQUUzOUFGMzhFNDEyMDMwRjdDMDgyMjkwRkZGMEY4Cis6MTAwNjIwMDBFMDU0RkVGMDkwRkZGMEUwNTRGREYwODAxRTc4ODJFNjhBCis6MTAwNjMwMDBGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwMDAwODEyMDIwRUM1Cis6MTAwNjQwMDAyNUUwNDQwMTkwRkZGM0YwMDIwNkQwNzg4MkU2RkQwODMxCis6MTAwNjUwMDBFNkZDRURGRUVDRkQ3RjAxOTAwMDA2MTIwMjBFNTRGRTVBCis6MTAwNjYwMDA5MEZGRjNGMDgwMkI3ODgyRTZGRDA4RTZGQ0VERkVFQ0NGCis6MTAwNjcwMDBGRDdGMDE5MDAwMDgxMjAyMEVGQUVCOTBGRkYxRjAxMkRDCis6MTAwNjgwMDAwOEJGNDAwREFEM0FBRTM5QUYzOEU0MTIwMzBGN0MxODA1Cis6MTAwNjkwMDAyMjc4ODJFNkZEMDhFNkZDRURGRUVDRkQ3RjAxOTAwMDhECis6MTAwNkEwMDAwODEyMDIwRTkwRkZGMUYwMTIwOEJGNDAwREFEM0FBRUY1Cis6MTAwNkIwMDAzOUFGMzhFNDEyMDMwRjdDMTgyMjc4ODJFNkZEMDhFNjkxCis6MTAwNkMwMDBGQ0VERkVFQ0ZEN0YwMTkwMDAwNjEyMDIwRTQ0MDE5MDRECis6MTAwNkQwMDBGRkYzRjA3ODgzRTYyNDAzRjYxOEU2MzQwMEY2Nzg4MDFBCis6MTAwNkUwMDBFNjI0RkU1MDA5OTBGRkYwRTA1NEZERjA4MDA3OTBGRkYzCis6MTAwNkYwMDBGMEUwNDQwMkYwRTQ5MEZGRjFGMDc4ODE3NjAwNzg4MDM5Cis6MTAwNzAwMDBFNjI0RkZGQ0U0MzRGRkZENzg4MUU2N0YwMEZFRUNEM0I1Cis6MTAwNzEwMDA5RUVGNjQ4MENENjQ4MDlENDAyRjEyMDhBNDQwMEY3ODI2Cis6MTAwNzIwMDA4MUU2QUQzQUFFMzlBRjM4MTIwMzBGN0MxODIyOTBGRjQ0Cis6MTAwNzMwMDBGMkUwRkM3ODgyODY4MzA4ODY4MkVDRjA3ODgxMDZBMzVBCis6MTAwNzQwMDA3ODgyQTY4MzA4QTY4MjgwQjUxMjA4QTQ0MDBGNzg4MTFCCis6MTAwNzUwMDBFNkFEM0FBRTM5QUYzODEyMDMwRjdDMTgyMjkwRkZGMkEzCis6MTAwNzYwMDBFMEZDNzg4Mjg2ODMwODg2ODJFQ0YwNzg4MEU2QUQzQUY5Cis6MTAwNzcwMDBBRTM5QUYzODEyMDMwRjdDMDAyMjhDMzc4RDM2Nzg4MjY5Cis6MTAwNzgwMDBFREY2MDhFQ0Y2RURGRUVDRkQ3RjAxOTAwMDA1MTIwMUEwCis6MTAwNzkwMDBFQzc4ODFGNjc4ODJFNkZEMDhFNkZDRURGRUVDRkQ3RjY0Cis6MTAwN0EwMDAwMTkwMDAwNDEyMDFFQzU0MEZGQzdEODExMjE3NDY3ODcxCis6MTAwN0IwMDA4MUU2NzAwMzdDMDgyMjkwRkZGMEUwNTRGRUYwOTBGRjg5Cis6MTAwN0MwMDBGMEUwNTRGREYwODAxQjc4ODJFNkZEMDhFNkZDRURGRUNCCis6MTAwN0QwMDBFQ0ZEN0YwMTkwMDAwODEyMDIwRTI1RTA5MEZGRjNGMDdGCis6MTAwN0UwMDA4MDVCNzg4MkU2RkQwOEU2RkNFREZFRUNGRDdGMDE5MDgzCis6MTAwN0YwMDAwMDA2MTIwMjBFNTRGRTkwRkZGM0YwODAyMTc4ODJFNjhDCis6MTAwODAwMDBGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwMDAwODEyMDIwRUYzCis6MTAwODEwMDBGQUVCOTBGRkYxRjAxMjA4QkY0MDAzN0MxODIyNzg4MkI3Cis6MTAwODIwMDBFNkZEMDhFNkZDRURGRUVDRkQ3RjAxOTAwMDA4MTIwMkZCCis6MTAwODMwMDAwRTkwRkZGMUYwMTIwOEJGNDAwMzdDMTgyMjc4ODNFNjg3Cis6MTAwODQwMDAyNDBBRjYxOEU2MzQwMEY2Nzg4MDc2MDA3ODgxRTYyNEVCCis6MTAwODUwMDBGRkZDRTQzNEZGRkQ3ODgwRTY3RjAwRkVFQ0QzOUVFRkUyCis6MTAwODYwMDA2NDgwQ0Q2NDgwOUQ0MDIxNzg4Mjg2ODMwODg2ODJFMDAyCis6MTAwODcwMDA5MEZGRjFGMDEyMDhCRjQwMDM3QzE4MjI3ODgwMDY3OEMwCis6MTAwODgwMDA4MzA2RTYxODcwMDEwNjgwQzM5MEZGRjBFMDQ0MDFGMDkzCis6MTAwODkwMDA3ODgyODY4MzA4ODY4MkUwOTBGRkYxRjAxMjA4QkY0MERDCis6MTAwOEEwMDAwMzdDMTgyMjdDMDAyMjkwRkZGMEUwMjBFNzEyOTBGRkVBCis6MTAwOEIwMDBGMEUwMzBFNTA5OTBGRkYwRTA0NDIwRjBDMzIyODBFNzRCCis6MTAwOEMwMDBEMzIyOTBGRkYwRTAyMEUzMTI5MEZGRjBFMDMwRTUwOTQyCis6MTAwOEQwMDA5MEZGRjBFMDQ0MjBGMEMzMjI4MEU3RDMyMjhDNDI4REM5Cis6MTAwOEUwMDA0MTdDMDBFRDU0RjBGREVDNzAwM0VENjQzMDcwMDU3NTUzCis6MTAwOEYwMDAzRTAzODAwMzc1M0UwNEFDM0UxMjBGNjk3NTgzMDA4NThDCis6MTAwOTAwMDA4MzQwRTU0MTU0MEZGNTNGRTU0MDcwMDRFNTNGNjQwMzQzCis6MTAwOTEwMDA3MDM1RTUzRTI0RkQ3NUYwMEFBNDI0MDJGNTgyRTQzNDI2Cis6MTAwOTIwMDBGQ0Y1ODNFMDMwRTYwNTEyMTA0QjgwMTlFNTNFMjQ5RDZFCis6MTAwOTMwMDBGOEM2NTRGQkY2NzhBOUU2MjQwNUY1ODIxOEU2MzQwMERCCis6MTAwOTQwMDBGNTgzNzQwRkYwODA1OUU1NDA3MDA0RTUzRjY0MDQ3MDRFCis6MTAwOTUwMDA0OEU1M0UyNEZENzVGMDBBQTQyNDAyRjU4MkU0MzRGQzQ3Cis6MTAwOTYwMDBGNTgzRTAzMEU1MDdBQzQyQUQ0MTEyMUMzQ0U1NDIzMDc2Cis6MTAwOTcwMDBFMjE1NzhBREU2MzBFMDBGNzhBREU2MzBFMTA5RTRGRjRFCis6MTAwOTgwMDAwNEZFN0MwNDEyMzFGQjc4QTlFNjI0MDZGNTgyMThFNjAxCis6MTAwOTkwMDAzNDAwRjU4Mzc0MEZGMDgwMDdFNEZDN0RFRTEyMUMzQ0ZDCis6MTAwOUEwMDBDMjAzMjIxMjMwRTYxMjBGNjk3OEE5RTYyNDA2RjU4MjA2Cis6MTAwOUIwMDAxOEU2MzQwMEY1ODNFMDkwRkMzOEYwNzhBOUU2MjQwNUM5Cis6MTAwOUMwMDBGNTgyMThFNjM0MDBGNTgzRTA5MEZDMzlGMEMyMDM3RDJGCis6MTAwOUQwMDAwMjdDMDAxMjI1MjYxMjMxNjkyMjEyMzBFNjc4OTVFQzRECis6MTAwOUUwMDBGNkVDMjQ5REY4RTYzMEUxMDc3QzEzMTIyNUJGODAwRjVBCis6MTAwOUYwMDA5MEZDMzlFMEZENzg5NUU2RkMxMjEzQzgxMjI1QkYxMjcxCis6MTAwQTAwMDAzMTY5MjIxMjMwRTY3ODk1RUNGNjdEMDAxMjBGMDkxMjVBCis6MTAwQTEwMDAyNUJGMTIzMTY5MjIxMjMwRTY3ODk1RUNGNkVDMjQ5RDYwCis6MTAwQTIwMDBGOEU2MzBFMjA3N0MxMzEyMjVCRjgwMUI3ODk1RTYyNDk4Cis6MTAwQTMwMDA5REY4RTYyMEUxMDc3QzEyMTIyNUJGODAwQTc4OTVFNjMyCis6MTAwQTQwMDBGQzEyMTNFQzEyMjVCRjEyMzE2OTIyMTIzMEU2Nzg5NUEwCis6MTAwQTUwMDBFQ0Y2RUMyNDlERjhFNjIwRTIwNzdDMTExMjI1QkY4MDFECis6MTAwQTYwMDAwQTc4OTVFNkZDMTIxNEVEMTIyNUJGMTIzMTY5MjIxMkE0Cis6MTAwQTcwMDAzMEU2Nzg5NUVDRjYxMjBGNjk3OEE5RTYyNDA5RjU4MjNDCis6MTAwQTgwMDAxOEU2MzQwMEY1ODNFMDkwRkMzRkYwNzhBOUU2MjQwQUVDCis6MTAwQTkwMDBGNTgyMThFNjM0MDBGNTgzRTA5MEZDNDBGMDc4QTlFNjkyCis6MTAwQUEwMDAyNDAzRjU4MjE4RTYzNDAwRjU4M0UwRkM3OEE5RTYyNEY3Cis6MTAwQUIwMDAwNEY1ODIxOEU2MzQwMEY1ODNFMEY1NjI3OEE5RTYyNEFGCis6MTAwQUMwMDAwMkY1ODIxOEU2MzQwMEY1ODNFMEY1NjM4QzYxRTRFQzBFCis6MTAwQUQwMDAzMzMzNTQwMTc4OTVGNjYwMDhFNTYyMzBFMTAzNzg5NTg4Cis6MTAwQUUwMDAwNjc4OTVFNjkwRkM0MUYwNzhBN0U2MjQwMkY1ODIxODk2Cis6MTAwQUYwMDBFNjM0MDBGNTgzRTBGREEzRTA1NDBDRkNFRDU0RTY4Q0Y1Cis6MTAwQjAwMDA2NUY1NjRFNTYxMzBFNTAzNDM2NTAxRTU2MjIwRTUwRUM2Cis6MTAwQjEwMDBFNTYxNTQ3RjcwMDhFNTYxMjBFNzAzNDM2NTAyRTU2MTA0Cis6MTAwQjIwMDAzMEUzMDM0MzY1MTBFNTYxMzBFMjAzNDM2NTIwRTU2MThFCis6MTAwQjMwMDA1NDAzNjAwMzQzNjU0MEU1NjEzMEUxMDM0MzY1ODBFNUFDCis6MTAwQjQwMDA2MTMwRTQwMzQzNjQwMUU1NjEzMEU2MDM0MzY0MDhFNTkyCis6MTAwQjUwMDA2MjIwRTQwRUU1NjE1NDdGNzAwOEU1NjEyMEU3MDM0M0ZECis6MTAwQjYwMDA2NDEwNTM2NUZCNTM2NDc5QUQ2NEU1NjU5MEZDM0FDRDQwCis6MTAwQjcwMDBGMEEzQ0RGMEU1NjMzMEUzMERFNTYzNTQzMEM0NTQwRkNBCis6MTAwQjgwMDA5MEZDM0RGMDgwMDVFNDkwRkMzREYwRTU2MzU0MDM5MDVCCis6MTAwQjkwMDBGQzNDRjBFNTYzNTQwNEMzMTM5MEZDM0VGMDkwRkMzQzM1Cis6MTAwQkEwMDBFMDcwMEU3RDM1N0VGQzdGMDE3NDAxOTAwMDA5MTIwMTFBCis6MTAwQkIwMDA0Mjc4QTlFNjI0MDhGNTgyMThFNjM0MDBGNTgzRTA3QzQzCis6MTAwQkMwMDAwMEZENzhBOUU2MjQwN0Y1ODIxOEU2MzQwMEY1ODNFMEY1Cis6MTAwQkQwMDA3RjAwNENGRUVGNEQ5MEZDMzhGMEEzQ0VGMENFQzIwMzY4Cis6MTAwQkUwMDA3RDBBN0MwMDEyMjUyNjEyMzE2OTIyMTIzMEU2Nzg5NUEyCis6MTAwQkYwMDBFQ0Y2Nzg5QTc2MDEwODc2RkMwODc2Mzg3ODk3NzYwQ0M5Cis6MTAwQzAwMDA3ODlBMTIwNDY1MTIwMjE0Nzg5OENCRjZDQjA4RjY3RjE2Cis6MTAwQzEwMDAwMEVGMjRFQTQwMUZFNEVGMjVFMDkwMzUyQ0ZEOTNDRDUyCis6MTAwQzIwMDAwNDkzNzg5OTY2NzAwM0VEMTg2NjcwMDY3ODk3NzYwMERECis6MTAwQzMwMDA4MDAzMEY4MERDNzg5NkVGRjY3ODlBMTIwNDY1OTAwMEI2Cis6MTAwQzQwMDAwMjEyMDIwRTc4OThDQkY2Q0IwOEY2NTQwNENCNTQ4NkU5Cis6MTAwQzUwMDA0QjYwMDQ3ODk3NzYwQjc4OTlFNjMwRTMxMzc4OUExMjE0Cis6MTAwQzYwMDAwNDY1OTAwMDA1MTIwMUVDMjRGQjUwMDQ3ODk3NzYwRDgyCis6MTAwQzcwMDA3ODk5RTY1NEMwN0QwMDY0QzA0RDcwMDQ3ODk3NzYwQjc3Cis6MTAwQzgwMDA3ODlBMTIwNDY1OTAwMDA0MTIwMUVDMjRGQzUwMDQ3ODU4Cis6MTAwQzkwMDA5Nzc2MEY3ODlBMTIwNDY1OTAwMDA2MTIwMUVDMjRGREY1Cis6MTAwQ0EwMDA1MDA0Nzg5Nzc2MEU3ODlBMTIwNDY1OTAwMDA5MTIwMTI0Cis6MTAwQ0IwMDBFQzI0RkQ1MDA0Nzg5Nzc2MEE3ODk3RTY3MDJBNzg5NUE4Cis6MTAwQ0MwMDBFNkZDMTIwRjY5Nzg5QTEyMDQ2NTc4QTdFNkY5NzhBNjBGCis6MTAwQ0QwMDBFNkZBN0IwMTc0MEE3ODAwMTIwMzNGQzIwMzc4OTVFNkI2Cis6MTAwQ0UwMDBGQzEyMTEwNzc4OTdFQ0Y2Nzg5N0U2RkMxMjI1QkYxMkY0Cis6MTAwQ0YwMDAzMTY5MjIxMjMwRTY3ODk1RUNGNjEyMEY2OTc4OTVFNkE0Cis6MTAwRDAwMDAyNEZENzVGMDBBQTQyNDE0RjU4MkU0MzRGQ0Y1ODNBQ0M4Cis6MTAwRDEwMDA4MkFEODM3OEE2ODY4MzA4ODY4MkVDRjlFREZBN0IwQTk5Cis6MTAwRDIwMDA3ODAxMTIwM0E3QzIwMzc4OTVFNkZDMTIxMTA3MTIzMTZECis6MTAwRDMwMDA2OTIyOEQyQjhDMkFFRDYwNDA3NTI3MDE3NTI5NDg3NTM1Cis6MTAwRDQwMDAyOEZGRTUyQTI0RkRGQ0U0MzRGRkZERUM3QzAzMjVFMENDCis6MTAwRDUwMDBDRDMzQ0REQ0Y5RkNFNTI5MkNGNTI5RTUyODNERjUyODM2Cis6MTAwRDYwMDBBRDI5QUUyOEFGMjc3NDgwOTAwMDA2MTIwMzE3NzQ4MDU3Cis6MTAwRDcwMDA5MDAwMDIxMjAzMTcxMjBGQjdFNTJCMTQ2MDNCNzUyNzgyCis6MTAwRDgwMDAwMTc1MjkwODc1MjhGRkU1MkEyNEZERkNFNDM0RkZGREUwCis6MTAwRDkwMDBFQzdDMDMyNUUwQ0QzM0NERENGOUZDRTUyOTJDRjUyOUVECis6MTAwREEwMDBFNTI4M0RGNTI4QUQyOUFFMjhBRjI3RTQ5MDAwMDYxMkNFCis6MTAwREIwMDAwMzE3RTQ5MDAwMDIxMjAzMTcyMjEyMzBFNjc4OTVFQzM0Cis6MTAwREMwMDBGNkVDMjQ5REY4RTYzMEUyMDk3ODk1RTZGQzEyMTRFRDg1Cis6MTAwREQwMDBEMjAwNzg5NUU2RkMxMjBGNjk3ODk2NzYwMDkwRkMzOTdGCis6MTAwREUwMDBFMDMwRTcwNDc4OTY3NjAxNzg5NkU2RkQ3ODk1RTZGQ0EzCis6MTAwREYwMDAxMjBEMkZDMjAzMzAwMDA3Nzg5NUU2RkMxMjEzRUM3QzJECis6MTAwRTAwMDAwMDEyMjVCRjEyMzE2OTIyNzhBOUU2MjQwNEY1ODIxODYwCis6MTAwRTEwMDBFNjM0MDBGNTgzRTA0NDAxRjA3OEE5RTYyNDA0RjU4Mjg1Cis6MTAwRTIwMDAxOEU2MzQwMEY1ODNFMDMwRTAwMjgwRUQ3OEE5RTYyNDhFCis6MTAwRTMwMDAwQkY1ODIxOEU2MzQwMEY1ODNFMDU0RjhGMDc4QTlFNjYzCis6MTAwRTQwMDAyNDAyRjU4MjE4RTYzNDAwRjU4M0UwNDQ4MEYwMjJDMkUzCis6MTAwRTUwMDAwMzhDNTgxMjBGNjk3OEE2ODY4MzA4ODY4Mjc5NUQ3QTlBCis6MTAwRTYwMDAzNTdCMEE3ODAxMTIwM0Y1MTIwRTA1QUM1ODdEMDIxMjhCCis6MTAwRTcwMDAwRDJGQzIwM0FDNTgxMjExMDcyMjhENTM4RTUyOEY1MTgxCis6MTAwRTgwMDA4QzUwMTIwRjY5NzU0RjAwNzhBOUU2MjQwNUY1ODIxODc5Cis6MTAwRTkwMDBFNjM0MDBGNTgzRTAyMEU0MUZFNTRGMjRGNjQwMTkwNTExCis6MTAwRUEwMDA0RkMyMDM3QzE4MTIzMkE5OTBGRjkzRTA0NDAxRjBCMkM0Cis6MTAwRUIwMDBCM0FDNTAxMjBGNjk4MEQwNzhBOUU2MjQwNUY1ODIxOEVBCis6MTAwRUMwMDBFNjM0MDBGNTgzRTAyMEU0MDVDMjAzN0MwMjIyNzhBOTIxCis6MTAwRUQwMDBFNjI0MDVGNTgyMThFNjM0MDBGNTgzRTA1NDBGNjAxNjI5Cis6MTAwRUUwMDA3OEE5RTYyNDA1RjU4MjE4RTYzNDAwRjU4M0UwNTQwRjZFCis6MTAwRUYwMDBGMEMyMDM3QzAxMjI3OEE4ODY4MzA4ODY4MkUwQUQ1Mzg1Cis6MTAwRjAwMDBBRTUyQUY1MTEyMDMwRkMyMDM3QzAwMjI4RDMxOEMzMEUwCis6MTAwRjEwMDAxMjE0RURFNTMxNjAwRkU1MzBCNDAzMEE3QzAxMTIyNEIwCis6MTAwRjIwMDBFRTdDODExMjI0RUVBQzMwMTIwRjY5RTUzMTYwMUE3ODQ0Cis6MTAwRjMwMDBBQTg2ODMwODg2ODJFMDU0RTdGMEEzQTNBM0EzRTA1NDIzCis6MTAwRjQwMDBFN0YwQUMzMDdEMDIxMjBEMkY3OEE2ODY4MzA4ODY4MkVBCis6MTAwRjUwMDA3OTY3N0EzNTdCMEE3ODAxMTIwM0Y1QzIwM0U1MzAyNEZDCis6MTAwRjYwMDA5REY4QzY1NEZERjZBQzMwMTIxMTA3MjI4QzI2MzAwM0QyCis6MTAwRjcwMDAwNTEyMzI0ODgwRjg3QzBBMTIzMTVCRDIwM0U1MjYyNDQwCis6MTAwRjgwMDBGRDc4QTNGNjcwMDc3OEFBNzZGRjA4NzZFMDc4QTNFNkU2Cis6MTAwRjkwMDA3NUYwMTBBNEFERjBGQzI0QTA3OEE5RjZFRDM0RkYxODhDCis6MTAwRkEwMDBGNjc4QTNFNjc1RjAwQUE0MjQwMEZDRTQzNEZDRkQ3ODhFCis6MTAwRkIwMDBBNkVERjYwOEVDRjYxMjMxRjQyMjc4QTlFNjI0MDJGNTQzCis6MTAwRkMwMDA4MjE4RTYzNDAwRjU4M0UwMzBFNzIyNzhBOUU2MjQwMkFGCis6MTAwRkQwMDBGNTgyMThFNjM0MDBGNTgzRTA1NDdGRjA3OEE5RTYyNDIyCis6MTAwRkUwMDAwMkY1ODIxOEU2MzQwMEY1ODNFMDQ0ODBGMDIyNzhBQTA2Cis6MTAwRkYwMDA4NjgzMDg4NjgyRTA1NDdGRjBBRDgzRTU4MjI0MDRGQzdBCis6MTAxMDAwMDBFNDNEOEM4MkY1ODNFMDU0N0ZGMDc4QTlFNjI0MEJGNTZCCis6MTAxMDEwMDA4MjE4RTYzNDAwRjU4M0UwNTRGOEYwNzhBQkU2MjQwMTVBCis6MTAxMDIwMDBGNTgyMThFNjM0MDBGNTgzRTA0NDAzRjA3OEFCRTYyNDVCCis6MTAxMDMwMDAwNUY1ODIxOEU2MzQwMEY1ODNFMDQ0MDNGMDc4QTlFNjZDCis6MTAxMDQwMDAyNDA1RjU4MjE4RTYzNDAwRjU4Mzc0MEZGMDIyNzhBQTlGCis6MTAxMDUwMDA4NjgzMDg4NjgyRTA1NDNGRjBBRDgzRTU4MjI0MDRGQzU5Cis6MTAxMDYwMDBFNDNEOEM4MkY1ODNFMDU0M0ZGMDc4QTNFNjI0QTRGOEI1Cis6MTAxMDcwMDBFNkZDNzhBQkU2MjQwMUY1ODIxOEU2MzQwMEY1ODNFQzUzCis6MTAxMDgwMDBGMDc4QTNFNjI0QTRGOEU2RkM3OEFCRTYyNDA1RjU4MjI0Cis6MTAxMDkwMDAxOEU2MzQwMEY1ODNFQ0YwNzhBOUU2MjQwQkY1ODIxODA1Cis6MTAxMEEwMDBFNjM0MDBGNTgzRTA1NEZCNDQwMkY1MjY3OEE3RTYyNEY1Cis6MTAxMEIwMDAwMkY1ODIxOEU2MzQwMEY1ODNFMDMwRTUwMzQzMjYwMUFCCis6MTAxMEMwMDA3OEE5RTYyNDA1RjU4MjE4RTYzNDAwRjU4M0UwMzBFMERGCis6MTAxMEQwMDAwMzEyMEZCN0U1MjZGQzc4QTlFNjI0MEJGNTgyMThFNjgzCis6MTAxMEUwMDAzNDAwRjU4M0VDRjA3OEE5RTYyNDA1RjU4MjE4RTYzNDlGCis6MTAxMEYwMDAwMEY1ODM3NDBGRjA3OEFBODY4MzA4ODY4MkUwNDQ4MDI2Cis6MTAxMTAwMDBGMEEzQTNBM0EzRTA0NDgwRjAyMjhDMkExMjBGNjk3OEY1Cis6MTAxMTEwMDBBN0U2MjQwOEY1ODIxOEU2MzQwMEY1ODNFMEZDNzhBOUY4Cis6MTAxMTIwMDBFNjI0MEFGNTgyMThFNjM0MDBGNTgzRUNGMDc4QTdFNkE5Cis6MTAxMTMwMDAyNDA3RjU4MjE4RTYzNDAwRjU4M0UwRkM3OEE5RTYyNDVDCis6MTAxMTQwMDAwOUY1ODIxOEU2MzQwMEY1ODNFQ0YwNzhBNjg2ODMwODZBCis6MTAxMTUwMDA4NjgyRTBGREEzRTBGQ0VERkU3OEE5RTYyNDA4RjU4Mjk2Cis6MTAxMTYwMDAxOEU2MzQwMEY1ODNFRUYwRUNGRTc4QTlFNjI0MDdGNUU2Cis6MTAxMTcwMDA4MjE4RTYzNDAwRjU4M0VFRjA4QzI5OEQyOEMzRUM5NEI4Cis6MTAxMTgwMDAwNUVEOTQwQzQwMDU3NTI3N0M4MDMzRDNFNTI5OTQwMTQ3Cis6MTAxMTkwMDBFNTI4OTQwMzQwMDU3NTI3M0M4MDIzRDNFNTI5OTQ4MUY1Cis6MTAxMUEwMDBFNTI4OTQwMTQwMDU3NTI3MTg4MDEzRDNFNTI5OTQ2MDNDCis6MTAxMUIwMDBFNTI4OTQwMDQwMDU3NTI3MEM4MDAzNzUyNzA4QUYyN0E0Cis6MTAxMUMwMDBFNEVGNTQ3QzQ0ODNGRjhGMjdFNTI3RkM3OEFCRTYyNENCCis6MTAxMUQwMDAwMUY1ODIxOEU2MzQwMEY1ODNFQ0YwRTUyN0ZDNzhBQkU2Cis6MTAxMUUwMDBFNjI0MDVGNTgyMThFNjM0MDBGNTgzRUNGMEU1MjdGQ0VCCis6MTAxMUYwMDA3OEEzRTYyNEE0RjhFQ0Y2NzhBOUU2MjQwMkY1ODIxODkwCis6MTAxMjAwMDBFNjM0MDBGNTgzRTBGNTI3NzhBN0U2MjQwMkY1ODIxODk2Cis6MTAxMjEwMDBFNjM0MDBGNTgzQTNFMDMwRTMxNzUzMjdDNzc4QTdFNjQ5Cis6MTAxMjIwMDAyNDA1RjU4MjE4RTYzNDAwRjU4M0UwOTAzNTU4OTM0MkEyCis6MTAxMjMwMDAyNzUzMjdGQjc4QTdFNjI0MDZGNTgyMThFNjM0MDBGNTQ1Cis6MTAxMjQwMDA4M0UwNjAwMzQzMjcwNDUzMjdGQzc4QTdFNjI0MDRGNUQyCis6MTAxMjUwMDA4MjE4RTYzNDAwRjU4M0UwNDIyNzQzMjc4MEU1MjdGQzI3Cis6MTAxMjYwMDA3OEE5RTYyNDAyRjU4MjE4RTYzNDAwRjU4M0VDRjA3OERDCis6MTAxMjcwMDBBOUU2MjQwNEY1ODIxOEU2MzQwMEY1ODNFMEY1Mjc3ODIyCis6MTAxMjgwMDBBN0U2MjQwMkY1ODIxOEU2MzQwMEY1ODNBM0UwMzBFMUY2Cis6MTAxMjkwMDAwNTUzMjdERjgwMDM0MzI3MjA3OEE3RTYyNDAyRjU4MjQxCis6MTAxMkEwMDAxOEU2MzQwMEY1ODNFMDMwRTQwNTUzMjdFRjgwMDM0MzZDCis6MTAxMkIwMDAyNzEwNzhBN0U2MjQwOUY1ODIxOEU2MzQwMEY1ODNFMEM0Cis6MTAxMkMwMDBCNDAyMDM0MzI3MDJFNTI3RkM3OEE5RTYyNDA0RjU4MjRCCis6MTAxMkQwMDAxOEU2MzQwMEY1ODNFQ0YwNzhBOUU2MjQwM0Y1ODIxOENCCis6MTAxMkUwMDBFNjM0MDBGNTgzRTBGNTI3NzhBN0U2MjQwOUY1ODIxOEFGCis6MTAxMkYwMDBFNjM0MDBGNTgzRTA3MDA1NTMyNzdGODAwMzQzMjc4MEExCis6MTAxMzAwMDA3OEE3RTYyNDAyRjU4MjE4RTYzNDAwRjU4M0EzRTAzMERFCis6MTAxMzEwMDBFMDA1NDMyNzIwODAwMzUzMjdERjc4QTdFNjI0MDJGNTYyCis6MTAxMzIwMDA4MjE4RTYzNDAwRjU4M0UwMzBFMzA1NDMyNzQwODAwMzZDCis6MTAxMzMwMDA1MzI3QkY3OEE3RTYyNDAyRjU4MjE4RTYzNDAwRjU4MzI4Cis6MTAxMzQwMDBFMDMwRTAwNTQzMjcxMDgwMDM1MzI3RUY3OEE3RTYyNDE5Cis6MTAxMzUwMDAwMkY1ODIxOEU2MzQwMEY1ODNBM0UwMzBFNDA1NDMyNzY0Cis6MTAxMzYwMDAwODgwMDM1MzI3Rjc3OEE3RTYyNDAyRjU4MjE4RTYzNEFECis6MTAxMzcwMDAwMEY1ODNBM0UwMzBFNTA1NDMyNzA0ODAwMzUzMjdGQkYyCis6MTAxMzgwMDA3OEE3RTYyNDAyRjU4MjE4RTYzNDAwRjU4M0EzRTAzMDVFCis6MTAxMzkwMDBFNjA1NDMyNzAxODAwMzUzMjdGRTc4QTdFNjI0MDJGNURDCis6MTAxM0EwMDA4MjE4RTYzNDAwRjU4M0EzRTAzMEU3MDU0MzI3MDI4MDg2Cis6MTAxM0IwMDAwMzUzMjdGREU1MjdGQzc4QTlFNjI0MDNGNTgyMThFNjA4Cis6MTAxM0MwMDAzNDAwRjU4M0VDRjBDMjAzN0MwMDIyOEQyNzhDMjZFRERGCis6MTAxM0QwMDA1NDAzMTQ2MDAzN0MxMDIyRTUyNzU0N0MyNEZDNDAwMzUyCis6MTAxM0UwMDA3QzBCMjJFNTI2MjQ5REY4QzY0NDAyRjY3QzAwMjI4QzY0Cis6MTAxM0YwMDAzMDEyMEY2OUU1MzAyNDlERjhFNjIwRTI0RkFDMzA3REQ1Cis6MTAxNDAwMDAwMjEyMEQyRkU1MzAyNEZFNDQyOEZDNzhBQTg2ODMwOEJBCis6MTAxNDEwMDA4NjgyRUNGMEFGODNFNTgyMjQwNEZFRTQzRkZGRUM4RThECis6MTAxNDIwMDA4MjhGODNGMDdDMDM4QzJDRTUyQ0ZDNzhBQkU2MjQwMUM2Cis6MTAxNDMwMDBGNTgyMThFNjM0MDBGNTgzRUNGMEU1MkNGQzc4QUJFNjk5Cis6MTAxNDQwMDAyNDA1RjU4MjE4RTYzNDAwRjU4M0VDRjA3NTJEMDE3NTVFCis6MTAxNDUwMDAyRjQ4NzUyRUZGRTUzMDI0RkRGQ0U0MzRGRkZERUM3Q0M1Cis6MTAxNDYwMDAwMzI1RTBDRDMzQ0REQ0Y5RkNFNTJGMkNGNTJGRTUyRTVGCis6MTAxNDcwMDAzREY1MkU3OEFCRTYyNDA0RjU4MjE4RTYzNDAwRjU4M0JBCis6MTAxNDgwMDBFMDU0RTdGNTJDQUQyRkFFMkVBRjJERTQ5MDAwMDIxMjA0Cis6MTAxNDkwMDAwMzE3RTQ5MDAwMDYxMjAzMTcxMjAxRTYzMEU1MDM0MzM4Cis6MTAxNEEwMDAyQzEwRTUyQ0ZDNzhBQkU2MjQwNEY1ODIxOEU2MzQwMDE5Cis6MTAxNEIwMDBGNTgzRUNGMDEyMTA0Qjc4QTlFNjI0MDZGNTgyMThFNkM1Cis6MTAxNEMwMDAzNDAwRjU4M0UwQzIwM0ZDRTUzMDI0OURGOEM2NDQwNEYzCis6MTAxNEQwMDBGNjhDMkNFNTMwNTQwRkM0NTRGMDdFMDBGRkVFRUY0NDQwCis6MTAxNEUwMDAwNDdEMDBGRkVDNEVGQ0VENEZGRDEyMUNBNzdDMDAyMjlBCis6MTAxNEYwMDA4QzJGMTIwRjY5MTIwRkVCNzhBQTg2ODMwODg2ODJFMDgwCis6MTAxNTAwMDA1NDA4RjBBM0EzQTNBM0UwNTQwOEYwQUMyRjdEMDIxMjZCCis6MTAxNTEwMDAwRDJGQzIwM0U1MkYyNDlERjhDNjU0RkJGNjdDMDAyMjU0Cis6MTAxNTIwMDAxMjMwRTY3ODk2RUNGNkVDMjQ5REY4RTYzMEUxMEE3RDgwCis6MTAxNTMwMDAwMDdDMTMxMjI1MjYxMjMxNjk3ODk2RTYyNDlERjhDNkEwCis6MTAxNTQwMDA0NDAxRjY3ODk2RTZGQzEyMEY2OTc4OTZFNjI0RkQ3NTVDCis6MTAxNTUwMDBGMDBBQTQyNDE0RjU4MkU0MzRGQ0Y1ODM3OEE2RTZGQUI0Cis6MTAxNTYwMDAwOEU2Rjk3QjBBNzgwMTEyMDNBNzc4QTY4NjgzMDg4NjI1Cis6MTAxNTcwMDA4Mjc5Njc3QTM1N0IwQTc4MDExMjAzRjUxMjBGQjdDMkI4Cis6MTAxNTgwMDAwMzc4OTZFNkZDMTIxMTA3Nzg5NUVDRjZFQzYwMEE3RDdDCis6MTAxNTkwMDAwMDdDMDgxMjI1MjYxMjMxNjk3ODk2RTZGQzEyMEY2OTQ0Cis6MTAxNUEwMDA3OEE5RTYyNDA0RjU4MjE4RTYzNDAwRjU4M0UwNDQxMEI3Cis6MTAxNUIwMDA1NERGRkM3OEE5RTYyNDA0RjU4MjE4RTYzNDAwRjU4M0FDCis6MTAxNUMwMDBFQ0YwNzg5NUVDRjZDMjAzN0NDODEyMzJBOTc4OTZFNjY2Cis6MTAxNUQwMDBGQzEyMEY2OTc4QTlFNjI0MDRGNTgyMThFNjM0MDBGNUI4Cis6MTAxNUUwMDA4M0UwNTRFRkYwQzIwMzdDQzgxMjMyQTk3ODk2RTZGQzdGCis6MTAxNUYwMDAxMjBGNjk3OEE5RTYyNDA0RjU4MjE4RTYzNDAwRjU4MzExCis6MTAxNjAwMDBFMDQ0MTBGMEMyMDM3Q0M4MTIzMkE5Nzg5NkU2RkMxMkJFCis6MTAxNjEwMDAwRjY5NzhBOUU2MjQwNEY1ODIxOEU2MzQwMEY1ODNFMDIyCis6MTAxNjIwMDA0NDIwRjBDMjAzN0NGMDEyMzJBOTc4OTZFNkZDMTIwRjM3Cis6MTAxNjMwMDA2OTc4QTlFNjI0MDVGNTgyMThFNjM0MDBGNTgzRTAzMEUwCis6MTAxNjQwMDBFNDE1QzIwMzc4OTZFNjQ0MTA3RjAwRkU3QzA3MTIzMTUxCis6MTAxNjUwMDBGQjEyMzE2OTAyMTcxNDc4QTlFNjI0MDRGNTgyMThFNjEyCis6MTAxNjYwMDAzNDAwRjU4M0UwNTRDRkYwQzIwMzdDQzgxMjMyQTk3ODZECis6MTAxNjcwMDA5NkU2RkMxMjBGNjk3OEE5RTYyNDA0RjU4MjE4RTYzNDkwCis6MTAxNjgwMDAwMEY1ODNFMDQ0MzBGMEMyMDM3Q0YwMTIzMkE5Nzg5NjcyCis6MTAxNjkwMDBFNkZDMTIwRjY5NzhBOUU2MjQwNUY1ODIxOEU2MzQwMDA1Cis6MTAxNkEwMDBGNTgzRTAzMEU0MTRDMjAzNzg5NkU2NDQxMDdGMDBGRTMwCis6MTAxNkIwMDA3QzA3MTIzMUZCMTIzMTY5ODA1RDc4QTlFNjI0MDRGNUJDCis6MTAxNkMwMDA4MjE4RTYzNDAwRjU4M0UwNTRFRkYwNzhBOUU2MjQwNEFDCis6MTAxNkQwMDBGNTgyMThFNjM0MDBGNTgzRTA1NERGRjA3ODk2RTYyNENFCis6MTAxNkUwMDBGRDc1RjAwQUE0MjQxNEY1ODJFNDM0RkNGNTgzQUM4MjgxCis6MTAxNkYwMDBBRDgzNzhBNjg2ODMwODg2ODJFQ0Y5RURGQTdCMEE3OEJBCis6MTAxNzAwMDAwMTEyMDNBN0MyMDM3ODk2RTZGQzEyMTEwNzdEMDA3QzQ0Cis6MTAxNzEwMDAwQjEyMjUyNjEyMzE2OTIyMTIzMEU2RTQ5MEZDMzlGMEQyCis6MTAxNzIwMDA3RDAyN0MwMDEyMjUyNjEyMzE2OTIyMTIzMEU2N0MwMEVGCis6MTAxNzMwMDAxMjI1QkYxMjMxNjkyMjc0M0M5MEZCRTBGMDc0M0U5MDk4Cis6MTAxNzQwMDBGQkUwRjBFNDkwRkMyOEYwMjI4RDM1OEMzNEVDQjQwMTAxCis6MTAxNzUwMDAwMjgwMDNEMzQwMDI4MDI4QjQwMjAyODAwM0QzNDAwOEYxCis6MTAxNzYwMDBBODM1QzYyNUUwRjY4MDE4QjQwNDAyODAwM0QzNDAwQUU5Cis6MTAxNzcwMDBBODM1QzYyNUUwMjVFMEY2ODAwNkE4MzU3NjAwODAwMDZECis6MTAxNzgwMDAyMjhDM0M4RDNCRURGRUVDRkQ3RjAxNzU2NjA2NzU2Nzk2Cis6MTAxNzkwMDAwMDkwRkMyOTEyMDQ2RTEyMDFFNkI0ODAwMjgwMDZEMzg4Cis6MTAxN0EwMDA1MDAzMDIxODQ3OTBGQzI5MTIwNDgwOTAwMDAzMTIwMTk0Cis6MTAxN0IwMDBFQzU0RjBCNDMwMDI4MDAzRDM0MDVGOTBGQzI5MTIwNDUzCis6MTAxN0MwMDA4MDkwMDAwODEyMDIwRUZBRkRFQkZFN0YwMTkwRkMyQ0M3Cis6MTAxN0QwMDAxMjA0NkVFRUNEOTAzNTcxRkNFNDkzRkY3NDAxOTNGRTFDCis6MTAxN0UwMDBGOUVGRkE3QjAxRUFGRkU5RkVFQ0MzOUVFRDlGNDAyNThECis6MTAxN0YwMDA5MDM1NzNFNDkzRkQ3NDAxOTNGQ0VERkVFQ0ZEN0YwMUU1Cis6MTAxODAwMDBFRUNERkM5MEZDMkVFMEQzOUM5MEZDMkRFMDlENTAwNThECis6MTAxODEwMDA3NTY2ODA4MDMzMTIxOTY1ODAyRUI0NjAwMjgwMDNEMzEwCis6MTAxODIwMDA0MDBCQUMzQ0FEM0IxMjA3Nzc4QzY2ODAxQkI0MTAwM0I5Cis6MTAxODMwMDBCMzQwMTBDM0I0MjAwM0IzNDAwOUMzQjQ0MDAyODAwM0QzCis6MTAxODQwMDBEMzQwMDA3NTY2ODE4MDAwODA3NUI0ODEwMjgwMDNEMzI3Cis6MTAxODUwMDA0MDZCOTBGQzI5MTIwNDgwOTAwMDAzMTIwMUVDNTRGMEJDCis6MTAxODYwMDBCNDMwMDI4MDAzRDM0MDFEOTBGQzI5MTIwNDgwOTAwMDA0Cis6MTAxODcwMDAwODEyMDIwRUZBRkRFQkZFN0YwMTkwRkMyRjEyMDQ2RTlGCis6MTAxODgwMDAxMjE4Q0Y4MDM2QjQ2MDAyODAwM0QzNDAxMzc1M0E2N0Q0Cis6MTAxODkwMDBFNEY1MzlGNTM4QUMzQ0FEM0IxMjA1RDM4QzY2ODAxQkMyCis6MTAxOEEwMDBCNDEwMDNCMzQwMTBDM0I0MjAwM0IzNDAwOUMzQjQ0MDIxCis6MTAxOEIwMDAwMjgwMDNEMzQwMDA3NTY2ODE4MDAwODAwMjgwMDBFNUNECis6MTAxOEMwMDA2NkZDOTBGQzI5MTIwNDgwRUM5MDAwMDIxMjAzMTdBQzE1Cis6MTAxOEQwMDA2NzIyOTBGQzI5MTIwNDgwOTAwMDA0MTIwMUVDNjAwNDNECis6MTAxOEUwMDA3NDAxODAwMUU0QTJFMDkyMDE5MEZDMjkxMjA0ODBFREQxCis6MTAxOEYwMDAyNDAzRkQ1MDAxMEU5MEZDMkMxMjA0NkU5MEZDMjkxMjYyCis6MTAxOTAwMDAwNDgwOTAwMDA1MTIwMUVDRjU2NzkwMDAwNDEyMDFFQ0QwCis6MTAxOTEwMDA1NDBGRkM3RDY3MTIxNzQ2RTU2NzcwMDQ3NTY2MDgyMjUwCis6MTAxOTIwMDA3NTY2MDA3ODg0NzYwMDc4ODRFNkMzOTU2NzUwMzg5MEIxCis6MTAxOTMwMDBGQzJGMTIwNDgwMTIwMUU2RkM5MEZDMkMxMjA0ODBFQ0I3Cis6MTAxOTQwMDAxMjAzMEYzMDAxMEU5MEZDMzFFMDA0RjA5MEZDMzA3MDc3Cis6MTAxOTUwMDAwM0UwMDRGMDc4ODQwNjkwRkMyRUUwMDRGMDkwRkMyRDY3Cis6MTAxOTYwMDA3MDAzRTAwNEYwODBDMDIyOTBGQzJBRTBGREEzRTBGQ0JDCis6MTAxOTcwMDBFREZFRUNGRDdGMDFFRDI0MEFGRDUwMDEwRTkwRkMzMkRFCis6MTAxOTgwMDAxMjA0NkU5MEZDMjkxMjA0ODA5MDAwMDQxMjAxRUM1NEExCis6MTAxOTkwMDAwRkI0MDEwMjgwMDNEMzQwMTc5MEZDMzIxMjA0ODAwRDczCis6MTAxOUEwMDBFRDcwMDEwRTkwRkMyRjEyMDQ2RTc4ODg3NjAxODA0RTQ3Cis6MTAxOUIwMDBCNDAyMDI4MDAzRDM0MDE5OTBGQzMyMTIwNDgwRUQyNDVCCis6MTAxOUMwMDAwMkZENTAwMTBFOTBGQzJGMTIwNDZFNzg4ODc2MDI4MDgyCis6MTAxOUQwMDAyREI0MDQwMjgwMDNEMzQwMTk5MEZDMzIxMjA0ODBFRDMwCis6MTAxOUUwMDAyNDA0RkQ1MDAxMEU5MEZDMkYxMjA0NkU3ODg4NzYwNEJBCis6MTAxOUYwMDA4MDBDQjQwMDAyODAwM0QzNDAwMDc1NjYwODIyOTBGQzdFCis6MTAxQTAwMDAyOTEyMDQ4MDkwMDAwNTEyMDFFQ0Y1Njc3ODg1NzYwMEI0Cis6MTAxQTEwMDA3ODg1RTZDMzk1Njc0MDAzMDIxQUNENzg4Njc2MDA3ODBDCis6MTAxQTIwMDA4NkU2QzM3ODg4OTY1MDc2OTBGQzJDMTIwNDgwMTIwMUNBCis6MTAxQTMwMDBFNkZDOTBGQzMyMTIwNDg5MTIwMUUwRjQ1Q0ZDMTIwMTE1Cis6MTAxQTQwMDBFMEY4OTBGQzJGMTIwNDgwRThDMEUwMTIwMUU2QzhEMDU0Cis6MTAxQTUwMDBFMEM4NTg0Q0ZDOTBGQzJDMTIwNDgwRUMxMjAzMEY3ODY4Cis6MTAxQTYwMDA4N0VDRjY5MEZDMzFFMDA0RjA5MEZDMzA3MDAzRTAwNDY5Cis6MTAxQTcwMDBGMDA5RTk3MDAxMEE5MEZDMzIxMjA0Nzc5MEZDMjkxMkY3Cis6MTAxQTgwMDAwNDgwOTAwMDA0MTIwMUVDMzBFNDBFOTBGQzJFRTAwNDdGCis6MTAxQTkwMDBGMDkwRkMyRDcwMDNFMDA0RjA3ODg2MDY4MDgxNzg4ODUxCis6MTAxQUEwMDBFNkZERTRGRUZGRUVDREZDOTBGQzMxRTAyQ0YwOTBGQzc2Cis6MTAxQUIwMDAzMEUwM0RGMDc4ODhFNkZERTRGRUZGRUVDREZDOTBGQ0UyCis6MTAxQUMwMDAzNEUwMkNGMDkwRkMzM0UwM0RGMDc4ODUwNjAyMUEwREVFCis6MTAxQUQwMDA3NTY2MDAyMkU1M0QwNTNEMDQ3MDAyQjJCMDIyQzBFMDBCCis6MTAxQUUwMDBDMEYwQzA4MkMwODNDMEQwRThDMEUwRTlDMEUwRUFDMDc2Cis6MTAxQUYwMDBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGQzBFMDQ1Cis6MTAxQjAwMDA5MEZGOTJFMDEyMDFCNzFCMjkzMDFCMjkzMjFCMzgzODk1Cis6MTAxQjEwMDAxQjRBM0ExQjVDM0UxQjc0NDQxQjY4NDYxQjgwNTAxQkNGCis6MTAxQjIwMDBDMjUyMUJBMTU0MUJFMzU2MDAwMDFDMDQ5MEZGOTJFMDFDCis6MTAxQjMwMDA3RjAwRkU3QzAxMTIzMUZCMDIxQzE0RTRGRjA0RkU3Q0RBCis6MTAxQjQwMDAwMzEyMzFGQjc0MjA5MEZGRkVGMDAyMUMxNEU0RkYwNDJBCis6MTAxQjUwMDBGRTdDMDIxMjMxRkI3NDQwOTBGRkZFRjAwMjFDMTRFNDg0Cis6MTAxQjYwMDBGRjA0RkU3QzA0MTIzMUZCMDIxQzE0RTRGRjA0RkU3QzIzCis6MTAxQjcwMDAwNTEyMzFGQjAyMUMxNEU0RkYwNEZFN0MwNjEyMzFGQjRCCis6MTAxQjgwMDAwMjFDMTQ5MEZGQTVFMDdEMDA5MEZCRjhDREYwQTNDREUyCis6MTAxQjkwMDBGMDkwRkJGOUUwRkNGNTgzOTBGQkY4RTA0NDMzRkQxMjk0Cis6MTAxQkEwMDAxQ0E3ODA3MzkwRkZCNUUwN0QwMDkwRkJGQUNERjBBM0Y5Cis6MTAxQkIwMDBDREYwOTBGQkZCRTBGQ0Y1ODM5MEZCRkFFMDQ0NDNGREE1Cis6MTAxQkMwMDAxMjFDQTc4MDUyOTBGRkE2RTA3RDAwOTBGQkZDQ0RGMDk4Cis6MTAxQkQwMDBBM0NERjA5MEZCRkRFMEZDRjU4MzkwRkJGQ0UwNDQzNEVBCis6MTAxQkUwMDBGRDEyMUNBNzgwMzE5MEZGQjZFMDdEMDA5MEZCRkVDRDdBCis6MTAxQkYwMDBGMEEzQ0RGMDkwRkJGRkUwRkNGNTgzOTBGQkZFRTA0NDBBCis6MTAxQzAwMDA0NEZEMTIxQ0E3ODAxMDkwRkY5MkUwN0QwMEZDRUQ0NDgzCis6MTAxQzEwMDBBQUZEMTIxQ0E3ODAwMEU0OTBGRjkyRjBEMEUwRkZEMDU0Cis6MTAxQzIwMDBFMEZFRDBFMEZERDBFMEZDRDBFMEZCRDBFMEZBRDBFMDc4Cis6MTAxQzMwMDBGOUQwRTBGOEQwRDBEMDgzRDA4MkQwRjBEMEUwMzIwNTE3Cis6MTAxQzQwMDA4MTA1ODEwNTgxMDU4MUE4ODExODE4MThFREY2MDhFQzM5Cis6MTAxQzUwMDBGNjkwRkY1QUUwMjBFNzAyODBGNzkwRkY1OUUwN0QwMDAwCis6MTAxQzYwMDBBODgxMThDREY2Q0QwOEY2N0QwM0E4ODFFNjE4RkNFNjFDCis6MTAxQzcwMDBDQzI1RTBDQzMzQ0NEREY5Q0NGNkNDMDhGNkE4ODExODI1Cis6MTAxQzgwMDBFNjQ0RjhGNkE4ODExODE4MThFNkZEMDhFNkZDQTg4MUQ1Cis6MTAxQzkwMDAxODg2ODMwODg2ODJFREYwQTNFQ0YwNzQwMjkwRkY1QTU4Cis6MTAxQ0EwMDBGMDE1ODExNTgxMTU4MTE1ODEyMkU1ODEyNDA1RjU4MUM1Cis6MTAxQ0IwMDBFNEE4ODExOEY2QTg4MTE4MTgxODE4RURGNjA4RUNGNkIzCis6MTAxQ0MwMDA5MEZCRjVFMDI0Rjg1MDAzMDIxREM4RTRBODgxMTgxODIxCis6MTAxQ0QwMDBGNkE4ODExOEU2RkVBODgxMTgxODE4MThFNkZEMDhFNjhGCis6MTAxQ0UwMDBGQzdGMDBFRjI0Rjg0MDRERTRFRjI1RTAyNDdERjU4MkYxCis6MTAxQ0YwMDBFNDM0RkNGNTgzRTBGQkEzRTA2QzcwMDNGQUVCNkQ3MDU5Cis6MTAxRDAwMDAwOTc0MDFBODgxMTgxOEY2ODAyQkU0RUYyNUUwMjQ3REUyCis6MTAxRDEwMDBGNTgyRTQzNEZDRjU4MzdBMDBFMDU0RjBDQ0Y4Q0NDREM1Cis6MTAxRDIwMDBGOUNERkI3ODAwRTk1NEYwRjlFQTY4NzAwMkVCNjk3MENDCis6MTAxRDMwMDAwMTBFMEY4MEFFQTg4MTE4RUVGNkE4ODExODE4MTgxOEE5Cis6MTAxRDQwMDBFREY2MDhFQ0Y2QTg4MUVGRjZBODgxMTgxOEU2NzA3OTkwCis6MTAxRDUwMDBBODgxMThFNjI0Rjc0MDcxQTg4MTE4MTgxODE4RTY1NENECis6MTAxRDYwMDAwRkE4ODFGNjY0MDQ2MDE3QTg4MUU2NjQwMzYwMTBBOEQ4Cis6MTAxRDcwMDA4MTE4MTgxODE4RTZGRDA4RTZGQzEyMUMzQzgwNEE3QzA1Cis6MTAxRDgwMDAwQTEyMzE1QkE4ODExODE4MTgxOEU2RkQwOEU2RkM5MEM1Cis6MTAxRDkwMDBGQkY0RTAyNUUwMjQ3REY1ODJFNDM0RkNGNTgzRURGMEVFCis6MTAxREEwMDBBM0VDRjA5MEZCRjRFMEZGRTRFRjA0NTQwN0ZGOTBGQjlBCis6MTAxREIwMDBGNEYwOTBGQkY1RTAwNEYwMTIzMUY0OTBGQkY2RTA3MEUzCis6MTAxREMwMDAwOEU0RkVGRjdDMEYxMjMxRkI4MDI3OTBGQkY3RTAwNDU0Cis6MTAxREQwMDBGMDU0M0Y3MDFEOTBGQkY3RTA0NEZFN0QwMEZDOTBGQjRCCis6MTAxREUwMDBGNEUwMjVFMDI0N0RGNTgyRTQzNEZDRjU4M0VERjBBM0Y2Cis6MTAxREYwMDBFQ0YwRTU4MTI0RkJGNTgxMjI3ODhCNzYwMDc4OEM3NkY3Cis6MTAxRTAwMDAwMDc0MDE5MEZCRjZGMDEyMzBFNjkwRkJGNUUwNjA1N0FECis6MTAxRTEwMDA3QzBBMTIzMTVCOTBGQkYzRTAyNUUwMjQ3REY1ODJFNDNGCis6MTAxRTIwMDAzNEZDRjU4M0UwRkRBM0UwRkM5MEZCRjNFMDI1RTAyNDI3Cis6MTAxRTMwMDA3REY1ODJFNDM0RkNGNTgzRTRGMEEzRjA5MEZCRjNFMDVECis6MTAxRTQwMDBGRkU0RUYwNDU0MDdGRjkwRkJGM0YwOTBGQkY1RTAxNDgwCis6MTAxRTUwMDBGMDc4ODlFREY2MDhFQ0Y2MTIzMUY0Nzg4OUU2RkQwOEExCis6MTAxRTYwMDBFNkZDMTIwOERBODBBMzEyMzI0ODkwRkY5M0UwNDQwMUE2Cis6MTAxRTcwMDBGMEIyQjM3ODhCMDZCNjAwMTE3ODhCNzYwMDc4OENFNkRBCis6MTAxRTgwMDBGNDA0MDRBMkUwOTJCNDc4OENGNjAyMUUwN0U0OTBGQkZFCis6MTAxRTkwMDBGNkYwOTBGQkY1RTA3RDAwRkNFRDQ0Q0ZGRDEyMUMzQzFDCis6MTAxRUEwMDAxMjMxNjkyMjEyMzBFNkU1NzA2NDQ5NDU2RjYwMTU5MDgxCis6MTAxRUIwMDBGRjgzRTA1NDBGN0QwMEQzOTU3MEVEOTU2RjUwMDUxMkIwCis6MTAxRUMwMDAyRjJGODAwMzEyMkZGRjEyMzE2OTIyMTIzMEU2RTU3MEE2Cis6MTAxRUQwMDA2NDQ5NDU2RjYwMDUxMjMwMzk4MDBFOTBGRjgwRTA0NDAwCis6MTAxRUUwMDAwOEYwOTBGRjgzRTA1NDdGRjAxMjMxNjkyMjEyMzBFNjRGCis6MTAxRUYwMDA4QzU0RUM1NEYwQjQxMDE1NzU2QTM1NzU2OUZDNzU2ODJFCis6MTAxRjAwMDAwMUU1NkEyNDAzRjU2QUU1NjkzNDAwRjU2OUU0RjU1N0VCCis6MTAxRjEwMDBGNTU2RTU1NkMzOTQwMTUwMjdFNTU0NTQwRkZDQUQ2QUJECis6MTAxRjIwMDBBRTY5QUY2ODEyMEU3NzhDNTVFQzYwMDI4MDEyMDU2QUJDCis6MTAxRjMwMDBFNTZBNzAwMjA1NjkwNTU3RTU1NzcwMDIwNTU2ODBEMkJCCis6MTAxRjQwMDBFNTU0NTQwRjI0OURGOEM2NTRGRUY2RTU1NDU0MEY3RjEzCis6MTAxRjUwMDAwMEZFN0MxMjEyMzFGQkU1NTUxNDcwMDk3RDAwN0MwOUVFCis6MTAxRjYwMDAxMjI1MjY4MDA3QUQ1NzdDMDAxMjI1MjYxMjMxNjkyMkUyCis6MTAxRjcwMDAxMjMwRTY5MEZGRkNFMDQ0MDJGMDkwRkYwMEUwMzBFNzEyCis6MTAxRjgwMDAxMzkwRkY4M0UwNDQ4MEYwNDM2RDgwOTBGRkZDRTA0NEI5Cis6MTAxRjkwMDAwMUYwODAxMTkwRkY4MkUwNDQwOEYwNTM2RDdGOTBGRkM0Cis6MTAxRkEwMDBGQ0UwNTRGRUYwOTBGRjgxRTA0NDgwRjAxMjI1RDk5MENGCis6MTAxRkIwMDBGRkZFRTA0NDA1RjA5MEZGRkNFMDU0RkRGMDEyMzE2OUIzCis6MTAxRkMwMDAyMjEyMzBFNjdDMDExMjMyQTk3OEFERTY0NDAyRjY3NEEyCis6MTAxRkQwMDBGRUZDMDRGRDEyMUNBNzkwRkY1QUUwMzBFNzAyODBGN0Q4Cis6MTAxRkUwMDBFNEY1NEU3NTREMTBBQzRFQUQ0REU1NEUxNTRFNzAwMkZDCis6MTAxRkYwMDAxNTRERUM0RDYwMDI4MEVFNDM4NzAxMTIzMTY5MjIxMkNCCis6MTAyMDAwMDAzMEU2N0MwMjEyMzE3NTc4QURFNjU0RkRGNjEyMzE2OTg2Cis6MTAyMDEwMDAyMjEyMzBFNjc4QURFNjMwRTAyQzc4QURFNjMwRTEyNkVECis6MTAyMDIwMDA3OEFERTZGQ0Y1ODMxOEU2NDRGMEZEMTIxQzNDOTBGRjA5Cis6MTAyMDMwMDBGQ0UwNDQyMEYwN0MwMjEyMzJBOTc4QURFNjU0RkRGNkIzCis6MTAyMDQwMDA3NDFBOTBGRkZFRjA3OEFERTZGQ0Y1ODMxOEU2NDRGMUQzCis6MTAyMDUwMDBGRDEyMUMzQzEyMzE2OTIyNzU2RDAwOTBGRkZGRTA2MDlCCis6MTAyMDYwMDAwMzQzNkQwMTc1NkUwMEU0RjU2Q0Y1NkJFNEY1NkY3NTc3Cis6MTAyMDcwMDA3MDQ5NzQ4NDkwRkY4MkYwNzQ4NDkwRkY4MEYwNzQ4MEMzCis6MTAyMDgwMDA5MEZGNThGMDc0ODA5MEZGNUFGMEFENDZBRjQ1N0UwMDQ3Cis6MTAyMDkwMDBFRTI0RkU1MDAzMDIyMTI0RTRFRTc1RjAwN0E0MjQ3RjExCis6MTAyMEEwMDBGNTgyRTQzNEY4RjU4M0UwRkZFNEVGNTQ4MEZERTRFRkRCCis6MTAyMEIwMDA1NDBGMTRGRkVENjAzOEU0RUY3NUYwMDhBNDI0NDhGNUUwCis6MTAyMEMwMDA4MkU0MzRGRkY1ODM3NDkwRjBFNEVGNzVGMDA4QTQyNDAzCis6MTAyMEQwMDA0QUY1ODJFNDM0RkZGNTgzNzQ4MEYwRTRFRjc1RjAwODhDCis6MTAyMEUwMDBBNDI0NEVGNTgyRTQzNEZGRjU4Mzc0ODBGMDgwMzRFNDU4Cis6MTAyMEYwMDBFRjc1RjAwOEE0MjQwOEY1ODJFNDM0RkZGNTgzNzQ5MEFBCis6MTAyMTAwMDBGMEU0RUY3NUYwMDhBNDI0MEFGNTgyRTQzNEZGRjU4M0M3Cis6MTAyMTEwMDBFNEYwRTRFRjc1RjAwOEE0MjQwRUY1ODJFNDM0RkZGNTUyCis6MTAyMTIwMDA4M0U0RjAwRTAyMjA4RDhENDY4RTQ0OEY0NTc0N0Y5MDlGCis6MTAyMTMwMDBGRkZERjA3NDkwOTBGRkZDRjAyMjhDNThFQzI0RjY1MEQ4Cis6MTAyMTQwMDAwNkU1NTgyNDM3RkMyMkU1NTgyNDMwRkMyMjEyMjUyM0NBCis6MTAyMTUwMDBFQzcwMDMwMjIyNUU3NTVDMDNBRTVCN0YwMEU1NUMxNUVDCis6MTAyMTYwMDA1QzY0ODAyNDdGNTAzNUVGMjQwMEY1ODJFNDM0RkJGNTc1Cis6MTAyMTcwMDA4M0UwRkUyNEZFNTAxRUVGN0QwMEZDRTRGQjc0NzRDMzdDCis6MTAyMTgwMDA5Q0ZBRUI5REZCRUU3RDAwRkNFQUMzOUNFRDY0ODBDQkVBCis6MTAyMTkwMDA2NDgwOUI1MDAyODAwNUVGMkVGRjgwQzE4RTVCOEY1QUJBCis6MTAyMUEwMDBFNTVDNjQ4MDI0N0Y1MDAzMDIyMjVFRTU1QTI0OEU1MDUxCis6MTAyMUIwMDAwMzAyMjI1RTg1NUE1RDc1NUIwMEFFNUFBRjVCOTAzNUI3Cis6MTAyMUMwMDA5Q0U0OTNGNTVDRTU1QzE1NUM2NDgwMjQ3RjUwMThFRTFDCis6MTAyMUQwMDAyNDAwRjU4MkU0MzRGQkY1ODNFMEZDRUY5MDM1OUM5MzFBCis6MTAyMUUwMDA2QzcwMDQwRTBGODBERThFNUE4RjVCRTU1QzY0ODAyNDc5Cis6MTAyMUYwMDA3RjQwNkU3NTVFMDE3NTYwRTg3NTVGRkZFNTVEMjQwMkU2Cis6MTAyMjAwMDBGNTVBNzU1QzA3RTU1QzMzNDA1N0FENjBBRTVGQUY1RTc1Cis6MTAyMjEwMDBFNTVDRjU4MjMzOTVFMEY1ODMxMjAxRUNDNDU0MEZGQ0M0Cis6MTAyMjIwMDAxMjIxMzdFNTVBMjQwMEY1ODJFNDM0RkJGNTgzRUNGMDAzCis6MTAyMjMwMDAwNTVBMDU1QUFENjBBRTVGQUY1RUU1NUNGNTgyMzM5NTM5Cis6MTAyMjQwMDBFMEY1ODMxMjAxRUM1NDBGRkMxMjIxMzdFNTVBMjQwMDBCCis6MTAyMjUwMDBGNTgyRTQzNEZCRjU4M0VDRjAwNTVBMDU1QTE1NUM4MEYxCis6MTAyMjYwMDBBNDc0MDI5MEY4NTFGMDkwRjg2Qjc5NzU3QTM1N0IyNzU5Cis6MTAyMjcwMDA3ODAxMTIwM0Y1NzU2QTM1NzU2OUZDNzU2ODAxRTQ5MDlCCis6MTAyMjgwMDBGRjgzRjA3NDgwOTBGRjgxRjA3NTU5MDJFNTU5NzVGMDc1Cis6MTAyMjkwMDAwN0E0MjQ3RkY1ODJFNDM0RjhGNTgzRTA3ODhGRjZGQzE4Cis6MTAyMkEwMDA1NDBGMTRGQzc4OEZFQ0Y2RTU1OTc1RjAwN0E0MjQ4MURGCis6MTAyMkIwMDBGNTgyRTQzNEY4RjU4M0UwNzg5Mjc2RkQwODc2RThGQzYwCis6MTAyMkMwMDA3ODhGRTY3NUYwMDhBNDI0NDhGNTgyRTQzNEZGRjU4MzlFCis6MTAyMkQwMDBFNEYwNzg4RkU2NzVGMDA4QTQyNDRGRjU4MkU0MzRGRjJCCis6MTAyMkUwMDBGNTgzRUNGMDc4OTJFNkZGMDhFNjdFMDNDRkMzMTNDRkM4Cis6MTAyMkYwMDAxM0RFRjlGRTc4OEZFNjc1RjAwOEE0MjQ0OUY1ODJFNDMwCis6MTAyMzAwMDAzNEZGRjU4M0VFRjA3ODhGRTY3NUYwMDhBNDI0NEFGNUUzCis6MTAyMzEwMDA4MkU0MzRGRkY1ODM3NDgwRjA3ODkwRUNGNjdEMDA3OEU5Cis6MTAyMzIwMDA5M0U2MkNGNjE4RTYzREY2Nzg5MkU2RkQwOEU2N0MwMzg3Cis6MTAyMzMwMDBDREMzMTNDRDEzRENGOUZDNzg4RkU2NzVGMDA4QTQyNDI3Cis6MTAyMzQwMDA0REY1ODJFNDM0RkZGNTgzRUNGMDc4OEZFNjc1RjAwODA0Cis6MTAyMzUwMDBBNDI0NEVGNTgyRTQzNEZGRjU4M0U0RjA3ODkyRTZGREEwCis6MTAyMzYwMDAwOEU2RkM3ODhGRTZGRjdFMDBFRTI0RkU1MDAzMDIyNDkwCis6MTAyMzcwMDBEREU0RUU3NUYwMDdBNDI0N0ZGNTgyRTQzNEY4RjU4M0ZDCis6MTAyMzgwMDBFMEZGRTRFRjU0ODBGQUU0RUY1NDBGMTRGRkU0RUU3NTNECis6MTAyMzkwMDBGMDA3QTQyNDgxRjU4MkU0MzRGOEY1ODNFMDc4OTBGNjIwCis6MTAyM0EwMDBFNEVFMTMxMzU0ODAyNEYwRjhFNDM0RkRGOUU4RkNFOTdBCis6MTAyM0IwMDBGRDhBNUFFQTcwMDMwMjI0NEFFNEVGNzVGMDA4QTQyNDY3Cis6MTAyM0MwMDA0OEY1ODJFNDM0RkZGNTgzRTRGMDc4OTBFNkZBRTRFRjMwCis6MTAyM0QwMDA3NUYwMDhBNDI0NEZGNTgyRTQzNEZGRjU4M0VBRjBFREFDCis6MTAyM0UwMDBGQkVDN0EwM0NCQzMxM0NCMTNEQUY5RkFFNEVGNzVGMDA1Cis6MTAyM0YwMDAwOEE0MjQ0OUY1ODJFNDM0RkZGNTgzRUFGMDc4OTBFNkY2Cis6MTAyNDAwMDA3QjAwRkFFQzJBRkNFRDNCRkRGQkVDN0EwM0NCQzMxMzFCCis6MTAyNDEwMDBDQjEzREFGOUZBRTRFRjc1RjAwOEE0MjQ0REY1ODJFNDYxCis6MTAyNDIwMDAzNEZGRjU4M0VBRjBFNEVGNzVGMDA4QTQyNDRBRjU4MjVFCis6MTAyNDMwMDBFNDM0RkZGNTgzNzQ4MEYwRTRFRjc1RjAwOEE0MjQ0RUQzCis6MTAyNDQwMDBGNTgyRTQzNEZGRjU4Mzc0ODBGMDAyMjREOUU0RUY3NTVCCis6MTAyNDUwMDBGMDA4QTQyNDA4RjU4MkU0MzRGRkY1ODNFNEYwNzg5MEQyCis6MTAyNDYwMDBFNkZBRTRFRjc1RjAwOEE0MjQwRkY1ODJFNDM0RkZGNUYyCis6MTAyNDcwMDA4M0VBRjBFREZCRUM3QTAzQ0JDMzEzQ0IxM0RBRjlGQTYyCis6MTAyNDgwMDBFNEVGNzVGMDA4QTQyNDA5RjU4MkU0MzRGRkY1ODNFQTRCCis6MTAyNDkwMDBGMDc4OTBFNjdCMDBGQUVDMkFGQ0VEM0JGREZCRUM3QTUxCis6MTAyNEEwMDAwM0NCQzMxM0NCMTNEQUY5RkFFNEVGNzVGMDA4QTQyNEQ1Cis6MTAyNEIwMDAwREY1ODJFNDM0RkZGNTgzRUFGMEU0RUY3NUYwMDhBNDRCCis6MTAyNEMwMDAyNDBBRjU4MkU0MzRGRkY1ODNFNEYwRTRFRjc1RjAwOEM0Cis6MTAyNEQwMDBBNDI0MEVGNTgyRTQzNEZGRjU4M0U0RjAwRTAyMjM2NkIzCis6MTAyNEUwMDA4RTU5Nzg5MkVERjYwOEVDRjY3ODhGRUZGNjEyMjA1NUJCCis6MTAyNEYwMDAyMjhDMjZFQzMwRTcxOEU1MjY1NDBGMTQ3NUYwMDhBNDVBCis6MTAyNTAwMDAyNDQ4RjU4MkU0MzRGRkY1ODNFMDU0REZGMDgwMTZFNURCCis6MTAyNTEwMDAyNjU0MEYxNDc1RjAwOEE0MjQwOEY1ODJFNDM0RkZGNTVFCis6MTAyNTIwMDA4M0UwNTRERkYwMjI3QzAwMjJFQzkwRkMzN0YwOEMyNDE2Cis6MTAyNTMwMDBFRDI0MDNGNTI1N0QwMEQzOTU3MkVEOTU3MTQwMDM4NTVCCis6MTAyNTQwMDA3MjI1RTUyNTI0Qjc1MDA5NzUyNTAzNzQwMjkwRkMzN0UwCis6MTAyNTUwMDBGMEFDMjUxMjMwMjQyMkU0RjU2Q0Y1NkIxMjI1NUQyMkQ3Cis6MTAyNTYwMDA5MEZDMzVFMDY1NzM2MDBFNzQwNDkwRkMzN0YwRTRGNTgwCis6MTAyNTcwMDA2Qjc1NkMwMzgwNDY3RDczRTRGRUZGNzkzNTdBRkM3QkQ2Cis6MTAyNTgwMDAwMTc0MDU3ODAwMTIwMzNGRTU2QzI0MDNGNTZDRTU2QkRDCis6MTAyNTkwMDAzNDAwRjU2QkU1NkNEMzk1NzJFNTZCOTU3MTQwMDY4NTVCCis6MTAyNUEwMDA3MjZDODU3MTZCRDNFNTZDOTQ0OEU1NkI5NDAwNDAwQ0JDCis6MTAyNUIwMDA3NDAyOTBGQzM3RjBFNEY1NkI3NTZDMDNBQzZDMTIzMDcwCis6MTAyNUMwMDAyNDIyRUM5MEZDMzdGMEU0RjU2Q0Y1NkI4QzMyRUM2MDc3Cis6MTAyNUQwMDAwNTEyMzAxNTgwMDU3QzAwMTIzMDI0MjI5MEZGOTNFMDE0Cis6MTAyNUUwMDA0NDAxRjBCMkIzOTBGRjA0RTBGNTRBOTBGRjA2RTBGRDJECis6MTAyNUYwMDBBM0UwRUQ3RDAwRkM3RDAwRkM5MEZGMDZFMEZGQTNFMDgyCis6MTAyNjAwMDA3RTAwRkZFNEZFRUM0RUZDRUQ0RkZEQzNFQzk0NDhFRDg0Cis6MTAyNjEwMDA5NDAwNTAyMjkwRkYwNkUwRkRBM0UwRUQ3RDAwRkM3RERDCis6MTAyNjIwMDAwMEZDOTBGRjA2RTBGRkEzRTA3RTAwRkZFNEZFRUM0RTFFCis6MTAyNjMwMDBGQ0VENEZGRDgwMDRFNEZEN0M0ODhDNzI4RDcxOTBGRkIxCis6MTAyNjQwMDAwMkUwRkRBM0UwRUQ3RDAwRkM3RDAwRkM5MEZGMDJFMEQ4Cis6MTAyNjUwMDBGRkEzRTA3RTAwRkZFNEZFRUM0RUY1NENFRDRGRjU0QkEyCis6MTAyNjYwMDA3NTZBMzU3NTY5RkM3NTY4MDE3RDM1N0VGQzdGMDE3OTc5Cis6MTAyNjcwMDA3M0U0RkFGQjc0MDU3ODAwMTIwMzNGNzU0OTAwRTU0OURECis6MTAyNjgwMDAyNEZFNDAxOUFENkFBRTY5QUY2OEU0MTIwMzBGMDU0OTM0Cis6MTAyNjkwMDAwREVENzAwMTBFOEQ2QThFNjk4RjY4ODBFMTc1NkEzNTY3Cis6MTAyNkEwMDA3NTY5RkM3NTY4MDE5MEZGMDBFMDU0NjBCNDAwMDI4MDE5Cis6MTAyNkIwMDAwNkQzNTAwMzAyMkM2REU1NEE1NDBGRjU0OUU1NEE1NDAwCis6MTAyNkMwMDA4MEEyRTA5MjAyOTBGRjAxRTAxMjAxODEwMDBCMkM2OEQxCis6MTAyNkQwMDAyNkU1MjgwMzJDNjgyOTBGMkM2ODI5RjIyQTI2MkI4RDQxCis6MTAyNkUwMDAyQjkwMkJEMDJDMTEyQzNGRTU2RDMwRTcwRUU1NEM0NTlGCis6MTAyNkYwMDA0QjcwMDhFNTcyNjQwMjQ1NzE2MDAzMDIyQzZBOTBGRjFBCis6MTAyNzAwMDAwMEUwNTQxRkI0MDAwMjgwMDNEMzQwMjlFNTRBNjAwMzZGCis6MTAyNzEwMDAwMjI4MDBBRDZBQUU2OUFGNjg3NDAxMTIwMzBGNzhBRDhDCis6MTAyNzIwMDBFNjMwRTAwQkFENkFBRTY5QUY2ODc0MDIxMjAzMEY3QzRECis6MTAyNzMwMDAwMjEyMzAyNDIyQjQwMTAyODAwM0QzNDAxQkU1NkQyMDM1Cis6MTAyNzQwMDBFMTA3RTU0QTYwMDMwMjI4MDBFNTRBMjRGRTUwMDMwMjNGCis6MTAyNzUwMDAyODAwN0MwMjEyMzAyNDIyQjQwMjAyODAwNkQzNTAwM0U3Cis6MTAyNzYwMDAwMjI3RkVFNTZEMjBFMTBERTU0QTYwMDlFNTRBNjQ4MDM3Cis6MTAyNzcwMDA2MDAzMDIyODAwQUM0QTEyMzBBQjQwMDMwMjI4MDBFNTk3Cis6MTAyNzgwMDA0OTcwMjUzMDAyMTE5MEZGODBFMDU0MDhBRDZBQUU2OUFGCis6MTAyNzkwMDBBRjY4MTIwMzBGODAwRjkwRkY4MkUwNTQwOEFENkFBRTVECis6MTAyN0EwMDA2OUFGNjgxMjAzMEY4MDNEMTU0OTMwMDIxREU1NDk3NTc4Cis6MTAyN0IwMDBGMDA4QTQyNDQ4RjU4MkU0MzRGRkY1ODNFMDU0MDhBRDIyCis6MTAyN0MwMDA2QUFFNjlBRjY4MTIwMzBGODAxQkU1NDk3NUYwMDhBNDczCis6MTAyN0QwMDAyNDA4RjU4MkU0MzRGRkY1ODNFMDU0MDhBRDZBQUU2OTVECis6MTAyN0UwMDBBRjY4MTIwMzBGQUQ2QUFFNjlBRjY4MTIwMUU2NjAwQjA1Cis6MTAyN0YwMDBBRDZBQUU2OUFGNjg3NDAxMTIwMzBGN0MwMjEyMzAyNDE3Cis6MTAyODAwMDAyMjgwMDAwMjJDNkFFNTZEMjBFNzA2RTU3MjQ1NzE2MEMyCis6MTAyODEwMDAwMzAyMkM2QTkwRkYwMEUwNTQxRkI0MDAwMjgwMDNEMzJGCis6MTAyODIwMDA0MDFBRTU0QzE0NDU0QjcwMDRFNTRBNjAwMzAyMjkwQzNDCis6MTAyODMwMDA3OEFERTY1NEZFRjY3QzAwMTIzMDI0MjJCNDAxMDI4MDBBCis6MTAyODQwMDAwM0QzNDAyQUU1NkQyMEUxMDhFNTZEMjBFMDAzMDIyOTZECis6MTAyODUwMDAwQ0U1NkQzMEUwMDRFNTRBNzAwQkU1NkQzMEUxMDlFNTBCCis6MTAyODYwMDA0QTI0RkU1MDAzMDIyOTBDN0MwMDEyMzAyNDIyQjQwMkI4Cis6MTAyODcwMDAwMjgwMDZEMzUwMDMwMjI5MEFFNTRDNDU0QjYwMDMwMjRGCis6MTAyODgwMDAyOTBDQUM0QTEyMzBBQjQwMDMwMjI5MENFNTZEMjBFMTYzCis6MTAyODkwMDAwN0U1NkQyMEUwMDI4MDc3RTU2RDMwRTAwNkU1NDk2MEYwCis6MTAyOEEwMDAwMjgwNkNFNTQ5NzAwRjkwRkY4MkUwNTRGN0YwOTBGRkQyCis6MTAyOEIwMDA4MEUwNTRGN0YwMjJFNTQ5QjQwMTAyODAwM0QzNDAwOUQ3Cis6MTAyOEMwMDA3RDAxN0MwMzEyMEYwOTgwMTFCNDAyMDI4MDAzRDM0MDAyCis6MTAyOEQwMDAwOTdEMDE3QzA0MTIwRjA5ODAwMDE1NDkzMDAyMTVFNUJECis6MTAyOEUwMDA0OTc1RjAwOEE0MjQ0OEY1ODJFNDM0RkZGNTgzRTA1NEU4Cis6MTAyOEYwMDBGN0YwODAxM0U1NDk3NUYwMDhBNDI0MDhGNTgyRTQzNDY0Cis6MTAyOTAwMDBGRkY1ODNFMDU0RjdGMDdDMDAxMjMwMjQyMjgwMDAwMkFGCis6MTAyOTEwMDAyQzZBRTU2RDIwRTcwNkU1NzI0NTcxNjAwMzAyMkM2QUJBCis6MTAyOTIwMDA5MEZGMDBFMDU0MUZCNDAwMDI4MDAzRDM0MDFBRTU0QzJFCis6MTAyOTMwMDAxNDQ1NEI3MDA0RTU0QTYwMDMwMjI5RUY3OEFERTY0NDg0Cis6MTAyOTQwMDAwMUY2N0MwMDEyMzAyNDIyQjQwMTAyODAwM0QzNDAyOTE2Cis6MTAyOTUwMDBFNTZEMjBFMTA4RTU2RDIwRTAwMzAyMjlFRkU1NkQzMDJCCis6MTAyOTYwMDBFMDA0RTU0OTcwMEJFNTZEMzBFMTA4RTU0OTI0RkU1MENGCis6MTAyOTcwMDAwMjgwN0Y3QzAwMTIzMDI0MjJCNDAyMDI4MDAzRDM0MDA0Cis6MTAyOTgwMDA2RkU1NEM0NTRCNjAwMjgwNjlBQzRBMTIzMEFCNDAwMkE3Cis6MTAyOTkwMDA4MDYwRTU2RDIwRTEwN0U1NkQyMEUwMDI4MDU0RTU0OUE3Cis6MTAyOUEwMDA3MDE0MzAwMjA5OTBGRjgwRTA0NDA4RjA4MDA3OTBGRjI3Cis6MTAyOUIwMDA4MkUwNDQwOEYwMjJFNTZEMzBFMTMzMTU0OTMwMDIxNTFDCis6MTAyOUMwMDBFNTQ5NzVGMDA4QTQyNDQ4RjU4MkU0MzRGRkY1ODNFMDc2Cis6MTAyOUQwMDA0NDA4RjA4MDEzRTU0OTc1RjAwOEE0MjQwOEY1ODJFNDYyCis6MTAyOUUwMDAzNEZGRjU4M0UwNDQwOEYwN0MwMDEyMzAyNDIyODAwMjlBCis6MTAyOUYwMDA4MDAwMDIyQzZBRTU2RDIwRTcxMkU1NzI0NTcxNzAwQ0NCCis6MTAyQTAwMDBFNTRBNzAwODkwRkYwMEUwNTQxRjYwMDMwMjJDNkFFNTVECis6MTAyQTEwMDA0QzkwRkZGRkYwOTBGRkZGRTA2MDA1NDM2RDAxODAwM0U1Cis6MTAyQTIwMDA1MzZERkU3QzAwMTIzMDI0MjJFNTZEMzBFNzBFRTU3MjE2Cis6MTAyQTMwMDA0NTcxNjAwODkwRkYwMEUwNTQxRjYwMDMwMjJDNkFBREVFCis6MTAyQTQwMDA0QkU1NENFRDdEMDBGQzdEMDBGQ0JEMDAwMjgwMDMwMkU3Cis6MTAyQTUwMDAyQjg4QjQwMTAyODAwM0QzNDAzMkU1NEE3MDA1RTU0QzZGCis6MTAyQTYwMDBGQzYwMDMwMjJCOEE3NTZBNDA3NTY5Rjg3NTY4MDFEM0FBCis6MTAyQTcwMDBFNTcyOTQxMkU1NzE5NDAwNDAwNkU0RkQ3QzEyODAwNDM2Cis6MTAyQTgwMDBBQzcyQUQ3MThDNzA4RDZGMTIzMDM5MjJCNDAyMDI4MDNECis6MTAyQTkwMDAwM0QzNDA1OUU1NEE2MDAzMDIyQjhBRTU0Q0ZDNzAyN0JBCis6MTAyQUEwMDA3NTZBNTI3NTY5Rjg3NTY4MDFEM0U1NzI5NDE5RTU3MTE0Cis6MTAyQUIwMDA5NDAwNDAwNkU0RkQ3QzE5ODAwNEFDNzJBRDcxOEM3MDBBCis6MTAyQUMwMDA4RDZGMTIzMDM5ODAyNTc1NkE2Qjc1NjlGODc1NjgwMUVDCis6MTAyQUQwMDBEM0U1NzI5NDI3RTU3MTk0MDA0MDA2RTRGRDdDMjc4MERECis6MTAyQUUwMDAwNEFDNzJBRDcxOEM3MDhENkYxMjMwMzkyMkI0MDMwMjU4Cis6MTAyQUYwMDA4MDA2RDM1MDAzMDIyQjg4RTU0Q0Y1NDk3MDBGOTBGRkY4Cis6MTAyQjAwMDAwNEUwRkRBM0UwNEQ2MDAzMDIyQjhBODAxODkwRkIwMkQ1Cis6MTAyQjEwMDBFMEZEQTNFMEZDOTBGRjA1RTA2QzcwMDc5MEZGMDRFMDhGCis6MTAyQjIwMDA2RDYwMDI4MDY4RTRGNTcwRjU2RjdGMDBFNTQ5MTRDNUJCCis6MTAyQjMwMDA0OTYwMEZFRjI0MDBGNTgyRTQzNEZCRjU4M0UwMkZGRkJBCis6MTAyQjQwMDA4MEVBOEY0QUU1NEEyNDAwRjU4MkU0MzRGQkY1ODNFMDBECis6MTAyQjUwMDA3RDAwRDM5NTcyRUQ5NTcxNDAwNkFDNzJBRDcxODAwRjFBCis6MTAyQjYwMDBFNTRBMjQwMEY1ODJFNDM0RkJGNTgzRTA3RDAwRkM4QzJCCis6MTAyQjcwMDA3MDhENkZFNTRBMjQwMEZDRTQzNEZCRkRGRUVDRkQ3RjI0Cis6MTAyQjgwMDAwMThENkE4RTY5OEY2ODEyMzAzOTIyODAwMDAyMkM2QUFBCis6MTAyQjkwMDAwMjJDNkFFNTZEMzBFNzE5RTU3MjE0NDU3MTcwMTJFNTkzCis6MTAyQkEwMDA0QTcwMEVFNTRDNDU0QjcwMDg5MEZGMDBFMDU0MUY2MEUyCis6MTAyQkIwMDAwMzAyMkM2QUU1NkQyMEUwMDhFNTZEMjBFMTAzMDIyQzlDCis6MTAyQkMwMDA2QTc1NkE2RUU0RjU2OUY1NjhFNEY1NkYwNEY1NzAxMkVDCis6MTAyQkQwMDAzMDM5MjJFNTZEMjBFNzEyRTU3MjQ1NzE3MDBDRTU0QTQ3Cis6MTAyQkUwMDA3MDA4OTBGRjAwRTA1NDFGNjAwMzAyMkM2QUU1NkQyMDFFCis6MTAyQkYwMDBFMDA3RTU2RDIwRTEwMjgwNzQ4NTRDNkVFNTZFNzAwODlCCis6MTAyQzAwMDA0MzZEMDE1MzZERkQ4MDA2NTM2REZFNDM2RDAyN0MwMEU0Cis6MTAyQzEwMDAxMjMwMjQyMkU1NkQzMEU3MUFFNTcyMTQ0NTcxNzAxMzA1Cis6MTAyQzIwMDBFNTRBNzAwRkU1NEM0NTRCNzAwOTkwRkYwMEUwNTQxRkRBCis6MTAyQzMwMDAxNDYwMDI4MDM4RTU2RDIwRTEwMjgwMzE3QzAxMTIzMEExCis6MTAyQzQwMDAyNDIyRTU2RDIwRTcxNUU1NzI0NTcxNzAwRkU1NEM0NUNFCis6MTAyQzUwMDA0QjcwMDk5MEZGMDBFMDU0MUYxNDYwMDI4MDBGRTU2RDc3Cis6MTAyQzYwMDAyMEUxMDI4MDA4N0MwMDEyMzAyNDIyODAwMDAyMkYyQkY5Cis6MTAyQzcwMDBCNDQwMDI4MDA2RDM1MDAzMDIyRjIxOTBGRjAxRTA5MDYwCis6MTAyQzgwMDBGQzM1RjBFNTRBOTBGQzM2RjBFNDkwRkMzN0YwRTU2QTVDCis6MTAyQzkwMDAyNDAzRjU2QUU1NjkzNDAwRjU2OUFENEJFNTRDODU2QUI2Cis6MTAyQ0EwMDA4Mjg1Njk4M0NERjBBM0NERjA5MEZGMDFFMDEyMDFCN0RBCis6MTAyQ0IwMDAyQ0Q4MDEyQ0ZFMDIyRDI4MDMyRDUyMDQyREEwMDUyRDA5Cis6MTAyQ0MwMDBERDA2MkUwMzA3MkUyOTA4MkU1NTA5MkU3QjBCMkVBMTdCCis6MTAyQ0QwMDAwQzJFQjA4MDJFQjA4MTAwMDAyRjBFRTU2RDIwRTcwNjhGCis6MTAyQ0UwMDA3QzA1MTIyNUJGMjI3RDI0N0UzNTdGMDI3OTM4N0FGQzRGCis6MTAyQ0YwMDA3QjAxNzQwODc4MDAxMjAzM0Y3RDA4N0MwMDEyMjUyNkIyCis6MTAyRDAwMDAyMkU1NkQyMEU3MDY3QzA1MTIyNUJGMjJFNTRBQjQwM0MzCis6MTAyRDEwMDAwMDQwMTBCNDA1MDA1MDBCRTU0QTdGMDBGRTdDMTAxMjA1Cis6MTAyRDIwMDAzMUZCMjI3RDAwN0MwNzEyMjUyNjIyRTU2RDIwRTcwNjc3Cis6MTAyRDMwMDA3QzA1MTIyNUJGMjJFNTRBQjQwMzAwNDAxMEI0MDUwMDBCCis6MTAyRDQwMDA1MDBCRTU0QTdGMDBGRTdDMTExMjMxRkIyMjdEMDA3Qzk2Cis6MTAyRDUwMDAwNzEyMjUyNjIyRTU2RDIwRTcwNjdDMDUxMjI1QkYyMkY1Cis6MTAyRDYwMDBFNTRBQjQwNTAyODAwM0QzNDAwQUU0RkYwNEZFN0MwQTZFCis6MTAyRDcwMDAxMjMxRkIyMkI0MDEwMjgwMDNEMzQwMEFFNEZGMDRGRUI3Cis6MTAyRDgwMDA3QzA4MTIzMUZCMjJCNDAzMDA0MDEwQjQwNTAwNTAwQjQ0Cis6MTAyRDkwMDBFNTRBN0YwMEZFN0MxMzEyMzFGQjIyN0QwMDdDMDcxMjg2Cis6MTAyREEwMDAyNTI2MjJFNTZEMjBFNzM0RDNFNTcyOTQ0OEU1NzE5NDM5Cis6MTAyREIwMDAwMDUwMDZFNTcyNDU3MTcwMDY3QzAyMTIyNUJGMjJFNUJGCis6MTAyREMwMDA0QUI0MDEwM0IzNDAwQkMzQjQwMzAwNDAwOUI0MDYwMDg2Cis6MTAyREQwMDA1MDA0MTIzMEQxMjI3QzA3MTIyNUJGMjIxMjI1NUQyMjE5Cis6MTAyREUwMDBFNTZEMjBFNzFERTU0QUI0MDMwMDQwMTBCNDA1MDA1MDJFCis6MTAyREYwMDAwQkU1NEE3RjAwRkU3QzE2MTIzMUZCMjI3QzA3MTIyNTcwCis6MTAyRTAwMDBCRjIyMTIyNTVEMjJFNTZEMjBFNzFERTU0QUI0MDMwMENGCis6MTAyRTEwMDA0MDEwQjQwNTAwNTAwQkU1NEE3RjAwRkU3QzE5MTIzMUNBCis6MTAyRTIwMDBGQjIyN0MwNzEyMjVCRjIyMTIyNTVEMjJFNTZEMjBFN0RCCis6MTAyRTMwMDAyMzc0ODE5MEZGOTNGMEU1NEFCNDAzMDA0MDEwQjQwNTc5Cis6MTAyRTQwMDAwMDUwMEJFNTRBN0YwMEZFN0MxNzEyMzFGQjIyN0MwNzA1Cis6MTAyRTUwMDAxMjI1QkYyMjEyMjU1RDIyRTU2RDIwRTcxREU1NEFCNDRCCis6MTAyRTYwMDAwMzAwNDAxMEI0MDUwMDUwMEJFNTRBN0YwMEZFN0MxOEJCCis6MTAyRTcwMDAxMjMxRkIyMjdDMDcxMjI1QkYyMjEyMjU1RDIyRTU2RDRGCis6MTAyRTgwMDAyMEU3MURFNTRBQjQwMzAwNDAxMEI0MDUwMDUwMEJFNUVGCis6MTAyRTkwMDA0QTdGMDBGRTdDMTUxMjMxRkIyMjdDMDcxMjI1QkYyMkRGCis6MTAyRUEwMDAxMjI1NUQyMkU1NkQyMEU3MDY3QzA3MTIyNUJGMjIxMjYwCis6MTAyRUIwMDAyNTVEMjJFNTZEMzBFNzIwOTBGRjAwRTA1NDFGNzAxMDgzCis6MTAyRUMwMDA5MEZGMDFFMEI0ODAwNTEyMjU1NDgwMDMxMjI1NUQyMjk1Cis6MTAyRUQwMDA3RDAwN0MwNTEyMjUyNjIyOTBGRjAwRTA1NDFGNjAwNjJECis6MTAyRUUwMDA3QzA1MTIyNUJGMjJEM0U1NzI5NDQ4RTU3MTk0MDA1MDA5Cis6MTAyRUYwMDAwQkMzRTU3Mjk0MDdFNTcxOTQwMDUwMDY3QzAzMTIyNTFDCis6MTAyRjAwMDBCRjIyRTU0QUI0MDUwNDEyMzBEMTIyN0MwNzEyMjVCRjQ2Cis6MTAyRjEwMDAyMkU1NkQzMEU3MDg3RDAwN0MwNTEyMjUyNjIyN0MwNTIwCis6MTAyRjIwMDAxMjI1QkYyMkI0MjAwMjgwMDNEMzQwMDA4MDAwMTIyRjVDCis6MTAyRjMwMDBGRjIyNzU0MzAwOTBGRjgzRTA1NDBGRDM5NTQzNDAyNDU0Cis6MTAyRjQwMDBFNTQzMjRGMEY1ODJFNDM0RkVGNTgzRTBBRDZBQUU2OTMyCis6MTAyRjUwMDBBRjY4MTIwMzBGMDU0MzBERUQ3MDAxMEU4RDZBOEU2OTg3Cis6MTAyRjYwMDA4RjY4ODBEMUU1NDM3RDAwRkNDM0U1NzA5Q0Y1NzBFNTdBCis6MTAyRjcwMDA2RjlERjU2RkU1NzA0NTZGNjAwNkU0OTBGRjgzRjAyMjZBCis6MTAyRjgwMDA5MEZGODJFMDQ0MDhGMEU0RjU2Rjc1NzA0OTkwRkMzNURECis6MTAyRjkwMDBFMEI0MDUwMjgwMDNEMzQwNDA5MEZDMzZFMEY1NDNCNDMyCis6MTAyRkEwMDAwNTAyODAwM0QzNDAwQUU0RkYwNEZFN0MwQjEyMzFGQkQwCis6MTAyRkIwMDAyMkI0MDEwMjgwMDNEMzQwMEFFNEZGMDRGRTdDMDkxMjFDCis6MTAyRkMwMDAzMUZCMjJCNDAzMDA0MDEwQjQwNTAwNTAwQkU1NDM3RkYxCis6MTAyRkQwMDAwMEZFN0MxNDEyMzFGQjIyMjJCNDgwMDA0MDIzQjQ4MjE0Cis6MTAyRkUwMDAwMDUwMUU3QzM1N0RGQzEyMTc3RTdEMDA4QzZDOEQ2QjM1Cis6MTAyRkYwMDA5MEZDMzdFMDYwMDUxMjJGRkY4MDA1N0MwMDEyMzAyNDIyCis6MTAzMDAwMDAyMjIyOTBGRjgzRTA1NDdGRjA5MEZGODJFMDQ0MDhGMDlBCis6MTAzMDEwMDA5MEZGODBFMDQ0MDhGMDIyOTBGRjgyRTA0NDA4RjA5MEE2Cis6MTAzMDIwMDBGRjgwRTA0NDA4RjAyMjhDMjM3RDAwOEM3MDhENkY3NTRBCis6MTAzMDMwMDA2QTM1NzU2OUZDNzU2ODAxMTIzMDM5MjI5MEZGODNFMEFBCis6MTAzMDQwMDA1NDdGRjBFNTcwNjQ0OTQ1NkY3MDAxMjJDM0U1NzA5NEM4Cis6MTAzMDUwMDAwOEU1NkY5NDAwNDAxNTc1MjEwOEU1MjE3RDAwRkNDMzRCCis6MTAzMDYwMDBFNTcwOUNGNTcwRTU2RjlERjU2RjgwMDk4NTcwMjFFNDMyCis6MTAzMDcwMDBGNTZGNzU3MDQ5NzUyMjAwRTUyMkMzOTUyMTUwMjZBRDg0Cis6MTAzMDgwMDA2QUFFNjlBRjY4MTIwMUU2RkNFNTIyMjRGOEY1ODJFNDM1Cis6MTAzMDkwMDAzNEZFRjU4M0VDRjAwNTIyMERFRDcwMDEwRThENkE4RTg1Cis6MTAzMEEwMDA2OThGNjg4MEQzRTUyMTU0N0Y5MEZGODFGMDIyOEM0ODlFCis6MTAzMEIwMDA3RjAwRUYyNEZENDAxOUU0RUY3NUYwMDdBNDI0N0ZGNUFECis6MTAzMEMwMDA4MkU0MzRGOEY1ODNFMDY1NDg3MDAyRDMyMjBGODBFMjkxCis6MTAzMEQwMDA4RjQ3QzMyMjg1NzI3MDg1NzE2RjkwRkY4MkUwNTRGNzJECis6MTAzMEUwMDBGMDkwRkY4M0UwNTQ3RkYwMjJDMDAwQzAwMUMwMDJDMDE2Cis6MTAzMEYwMDAwNkMwMDdFNTc4MjQwOEY4ODYwNjUzMDY3RjdDRkYxMjkxCis6MTAzMTAwMDAzMTVCN0MwMDdEMDBFNTdCNjA0NkZGOTBGRDk1RTA1NERGCis6MTAzMTEwMDA3RjZFNzAwRkMwODNDMDgyQTNFMEZEQTNFMEZDQTMxNTA3Cis6MTAzMTIwMDA3QjgwMDdBM0EzQTNERkU2ODAyNkRGMDZEMDgyRDA4M0JGCis6MTAzMTMwMDA4MDFFRTBGOEEzRTBGOUEzRTBGQUQwODJEMDgzRThGMEEzCis6MTAzMTQwMDBBM0U5RjBBM0VBRjBBM0MwODNDMDgyQTNBM0EzODBEQTFCCis6MTAzMTUwMDAxMjMxRjREMDA3RDAwNkQwMDJEMDAxRDAwMDIyODVBOEM5Cis6MTAzMTYwMDA3QTc1QTg4OEVDNzAwMjdDM0Y4Qzc5MjJFNTc4MjQwODc3Cis6MTAzMTcwMDBGODc2MDAxMjMyNDg4MEZCQzAwMEMwMDFDMDAyQzAwNkQxCis6MTAzMTgwMDBDMDA3QUUwNDdDRkYxMjMxNUJFNTdCNjA0MkZGOTBGRDFGCis6MTAzMTkwMDA5NUUwNTQ3RjZFNzAwQkMwODNDMDgyQTNBM0EzMTU3QjAwCis6MTAzMUEwMDA4MDA3QTNBM0EzREZFQTgwMjZERjA2RDA4MkQwODM4MDM2Cis6MTAzMUIwMDBEOEUwRjhBM0UwRjlBM0UwRkFEMDgyRDA4M0U4RjBBMzQ2Cis6MTAzMUMwMDBFOUYwQTNFQUYwQTNDMDgzQzA4MkEzQTNBMzgwREE3OEM2Cis6MTAzMUQwMDAwODA4NzkxODA5N0MwMUU2NTQ3RjZFNzAwNjc2MDA3NzNFCis6MTAzMUUwMDAwMDgwMDYwODA5MENCQzA4RUUxMjMxRjREMDA3RDAwNkE2Cis6MTAzMUYwMDBEMDAyRDAwMUQwMDAyMjc1NzkwMDg1N0FBODIyQzBGMEQzCis6MTAzMjAwMDBDMDgyQzA4M0MzRTU3QjI0RTg1MDA1MTIzMjQ4ODBGNEI1Cis6MTAzMjEwMDBFQzYwMzE5MDM1MjNFNDkzQzM5QzQwMjhDMDA0N0NGRkNDCis6MTAzMjIwMDAxMjMxNUJEMDA0NDMwNDgwRTU3Qjc1RjAwM0E0MjQ5NTQwCis6MTAzMjMwMDBGNTgyRTQzNEZERjU4M0VDRjBFRkEzRjBFRUEzRjAwNUE2Cis6MTAzMjQwMDA3QjEyMzFGNEQwODNEMDgyRDBGMDIyQzAwNDdDMjBEMjEzCis6MTAzMjUwMDA4Q0QyOERENTA0RkREMDA0MjI3NUE4MDA3NTg4MDA3NTI4Cis6MTAzMjYwMDBCODAwNzVGMDAwNzVEMDAwRTRGODkwMDAwMEY2MDhCOERBCis6MTAzMjcwMDAwMEZCMDIwMDAwQzNFRDk0MDI1MDA0N0QwMzdDRThFQ0U3Cis6MTAzMjgwMDBGNEZDRURGNEZEMENCQzAwMDEwRDhDN0Y4RDdFMjJDMzlGCis6MTAzMjkwMDBFQzk0QkNFRDk0MDI1MDA0N0QwNzdDRDBFQ0Y0RkNFRDgyCis6MTAzMkEwMDBGNEZEMENCQzAwMDEwRDhDN0Q4RDdDMjJFQzcwMDEyMkE0Cis6MTAzMkIwMDBDMDAwRTU3ODI0MThGOEE2MDRFNTc4MjQwOEY4QzY1NDc4Cis6MTAzMkMwMDA3RkY2RTYzMEU3MDNEMDAwMjIxMjMyNDg4MEY0QzI4QzQ5Cis6MTAzMkQwMDA4NTdDOEM4NTdEOEFEMjhDQzBFMEMwRDBDMEYwQzA4MjU1Cis6MTAzMkUwMDBDMDgzQzAwMEMwMDFDMDAyQzAwM0MwMDRDMDA1QzAwNjQ2Cis6MTAzMkYwMDBDMDA3MTIxQUQxRTU3ODI0MDhGOEU2NjAyNEU1NzgyNDlFCis6MTAzMzAwMDAxMEY4QTY4MUU1Nzg3NUYwMjFBNDI0OERGNTgyRTQzNEM3Cis6MTAzMzEwMDBGQ0Y1ODM3OEFFRTU4MTA0QzM5OEY5RTZGMDA4QTNEOUZCCis6MTAzMzIwMDBGQTc0MDgyNTc4RjgwNTc4MDhFNjU0ODA3MDBDRTU3ODdBCis6MTAzMzMwMDBCNDA3RjM3ODA4NzU3ODAwODBFRkU1NzgyNDEwRjg4NkY0Cis6MTAzMzQwMDA4MUU1Nzg3NUYwMjFBNDI0OERGNTgyRTQzNEZDRjU4M0MxCis6MTAzMzUwMDA3OEFFRTU4MTA0QzM5OEY5RTBGNjA4QTNEOUZBRDAwNzVFCis6MTAzMzYwMDBEMDA2RDAwNUQwMDREMDAzRDAwMkQwMDFEMDAwRDA4MzQ1Cis6MTAzMzcwMDBEMDgyRDBGMEQwRDBEMEUwMzJDMEUwQzBEMEMwMDBDMDA5Cis6MTAzMzgwMDAwMUMwMDJDMjhFODU3RThEODU3RjhCRDI4RTc4MTk3OUExCis6MTAzMzkwMDAwOTdBMDdFNzcwMDRBNjAwODAwQkU2NjAwODE2RTY3MDVECis6MTAzM0EwMDAwNEU3NDQ4MEY3MDgwOURBRUFFNTc5NjAxMzE0RjU3OTRGCis6MTAzM0IwMDA3MDBFRTU3ODI0MDhGODc2MDAxMjMxRjREMjhDRDI4REE0Cis6MTAzM0MwMDBEMDAyRDAwMUQwMDBEMEQwRDBFMDMyNzU4MUFENzQyQUM3Cis6MTAzM0QwMDA5MEZGOTNGMDc1N0YzMDc1N0VGODc1N0Q2MDc1N0NGMDk5Cis6MTAzM0UwMDAxMjA1MzYxMjM0N0MxMjE3MzQ5MEZGOTNFMDQ0MDFGMDNBCis6MTAzM0YwMDBCMkIzMTIzNEE2MTIzMjU2ODBEQTIyQzAwMDdDMDFFQzNECis6MTAzNDAwMDAyNDA4RjhFNjYwMDkwQ0JDMDhGNTEyMzI0ODgwRUVEMEJBCis6MTAzNDEwMDAwMDIyQzBGMEMwODJDMDgzQzAwMEMwMDZDMDA3RUQyNEY3Cis6MTAzNDIwMDAxMEY4NzZCQ0VENzVGMDIxQTQyNDhERjU4MkU0MzRGQzBGCis6MTAzNDMwMDBGNTgzQzA4MkMwODNBM0EzRTQ3ODBERjBBM0Q4RkNFQzhECis6MTAzNDQwMDA1NDdGNzVGMDAyQTQyNEVGRjU4MkU1RjAzNDM0RjU4MzVGCis6MTAzNDUwMDBFNDkzRkU3NDAxOTNGNTgyOEU4M0U0OTNGRTc0MDE5M0VBCis6MTAzNDYwMDBGRkQwODNEMDgyRUZGMEEzRUVGMEVEMjQwOEY4RUM0NDE3Cis6MTAzNDcwMDA4MEY2RDAwN0QwMDZEMDAwRDA4M0QwODJEMEYwMjI3NTVECis6MTAzNDgwMDA3ODAwNzU3QjAwN0EwODc5MTg3ODA4NzYwMDc3MDAwODRDCis6MTAzNDkwMDAwOURBRjhFNDc4MDg3NDgwNDQ3RkY2NzQwMTQ0MTBGNTgyCis6MTAzNEEwMDA4OTc1QjgwOEQyQUJEMkE5MjI3NTgxQUREMjhFRDI4Q0UzCis6MTAzNEIwMDBEMkFGRTU3QjYwMzJGRjkwRkQ5NUUwNTQ4MDYwMjQ3OEM4Cis6MTAzNEMwMDAwODc5MDhFMDU0N0ZGQTdCMDBFNjU0N0ZCNTAyMDI3QjVFCis6MTAzNEQwMDBGRjA4RDlGNUVCNzAwQ0VBRjAxMjMzRjhBRDA0QUMwMjNBCis6MTAzNEUwMDAxMjM0MEZBM0EzQTNERkQyMTIzMjQ4ODBDNTdDMDE3RDIyCis6MTAzNEYwMDAwMDIyMDRGNTA0RTkwNEVEMDRFMTA0REQwNEQ5MDRFNTQ3Cis6MTAzNTAwMDAwNEYxMDQ5RDA0QTEwNENEMDREMTA0OTkwNDk5MDQ5OTAzCis6MTAzNTEwMDAwNEQ1MDRCNTA0QUQwNEIxMDRBOTA0QzEwNEJEMDRCOUMzCis6MTAzNTIwMDAwNEM1MDRDOTA0QTUxOTAxMDMwMDIyMDA0ODAyMDA0ODhCCis6MTAzNTMwMDAwRTMwMTQyMEM4MUFEMDE4MEEwQzA1MDYwMjAzMDEwMjI2Cis6MTAzNTQwMDAwMDAxQ0UwMTgxMDEwMDAwQzAwMDgwMDA2MDAwMzAwMDU5Cis6MTAzNTUwMDAxODAwMTAwMDA4MDAwNDAwMDIwMDAxMDAwODE4MzgyOEI0Cis6MTAzNTYwMDAwQzA1MTAwQTAyMDAwMDAwMDAwMDAzMDExMDBBMDIwMDBFCis6MTAzNTcwMDAwMDAwMDAwMEZCRTBGQkYyMDkwMjI3MDAwMTAyMDBBMEFFCis6MTAzNTgwMDAzMjA5MDQwMDAwMDNGRjAwMDAwMDA3MDU4MTAyNDAwMDJCCis6MTAzNTkwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTgzMDMwMjAwMDEyMjI1Cis6MTAzNUEwMDAwMzU0MDA1NTAwNTMwMDQyMDAzMzAwMzQwMDMxMDAzMDEyCis6MTAzNUIwMDAwMDIwMDAyMDAwMjAwMDIwMDAyMDAwMjAwMDIwMDAyMDBCCis6MDUzNUMwMDAwMDAwMDAwMDAwMDYKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS90aV81MDUyLmZ3LmloZXggYi9maXJtd2FyZS90aV81MDUyLmZ3LmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUyOWUwNwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3RpXzUwNTIuZncuaWhleApAQCAtMCwwICsxLDg2MiBAQAorOjEwMDAwMDAwQzEzNTAwMDIwMDFFMDIxQjMyRkZGRkZGRkZGRjAyMzI1QworOjEwMDAxMDAwNkFGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjAyMzM0RQorOjEwMDAyMDAwMTU3NTgxQzg5MEZFRjA4NTgzQTAxMjM0N0RFQzRENjA3QgorOjEwMDAzMDAwNkE3OEE1ODAwMzc2MDAxOEI4OTZGQTc4Nzk4MDAzNzZGNgorOjEwMDA0MDAwMDAxOEI4NUZGQTc4MjA4MDAzNzYwMDE4QjgyMEZBOTA3QworOjEwMDA1MDAwRkVFNUFFODNBRjgyOTBGRDAwMTIwMEExNjAwNUU0RjBFMgorOjEwMDA2MDAwQTM4MEY2OTBGRUYwQTg4MjkwRkVGMEE5ODJFOEMzOTlFMgorOjEwMDA3MDAwNTAwNTc2MDAwODgwRjY5MDAwRkYxMjAwQUE5MDAxMDM1OAorOjEwMDA4MDAwMTIwMEFBOTAwMTA3MTIwMEFBOTAwMTBCMTIwMEM4OTA1QQorOjEwMDA5MDAwMDExMTEyMDBDODkwMDExNzEyMDBDODc1RDAwMDEyMzM2OAorOjEwMDBBMDAwNjcwMjAxMURFRjY1ODI3MDAzRUU2NTgzMjJFNDkzRjgxOQorOjEwMDBCMDAwNzQwMTkzRjk3NDAyOTNGRTc0MDM5M0Y1ODI4RTgzRThCRQorOjEwMDBDMDAwNjk3MDAxMjJFNDkzRjZBMzA4ODBGNEU0OTNGQzc0MDFDMAorOjEwMDBEMDAwOTNGRDc0MDI5M0ZFNzQwMzkzRkY3NDA0OTNGODc0MDUwNAorOjEwMDBFMDAwOTNGNTgyODg4MzEyMDBBMTcwMDEyMkU0OTNBM0E4ODM3MAorOjEwMDBGMDAwQTk4MjhDODM4RDgyRjBBM0FDODNBRDgyODg4Mzg5ODJCMAorOjEwMDEwMDAwODBFMzIxMjEwNDkyN0E3QTA0OTJBNkE4MDQ5MkZFRjA1OAorOjEwMDExMDAwMDQ5NDA0OTRGQkZCMDQ5OTA0OTRGQkZCMDRGOTA0Rjk5NAorOjEwMDEyMDAwODBGRUQwRjAzMEYwMDkyMEYzMDNGNjgwMTBGNzgwMEQ0OAorOjEwMDEzMDAwMzBGMTA5MjBGMzAzRjI4MDA0RjM4MDAxRjAyMEY0MDQ4RAorOjEwMDE0MDAwRkNEMEUwQ0MyMkNDQzBFMDEyMDE1QTAyMDE0QkJDMDAzMgorOjEwMDE1MDAwMDVEMEYwQUNGMDIyQzMxM0RDRkMwMjAxMjFCRjAwMDk4MgorOjEwMDE2MDAwRUQyNTgyNzVGMDAxRjhFNjIyQkYwMTBGRUQyNTgyRjUzRAorOjEwMDE3MDAwODJFRTM1ODNGNTgzNzVGMDA0RTAyMkVEMjU4Mjc1RjA3QgorOjEwMDE4MDAwMDJGOEUyMjJEMDgzRDA4MkY1RjBDM0U0OTNBM0M1RjA1NQorOjEwMDE5MDAwOTVGMEMwRTBDM0QwRjBFNDkzQTM5NUYwNDAxMkEzQTM4MAorOjEwMDFBMDAwQzNFNUYwMzM1MDAyMDU4MzI1ODJGNTgyNTAwMjA1ODNCMgorOjEwMDFCMDAwNzQwMTkzQzBFMEU0OTNDMEUwMjJEMDgzRDA4MkY1RjBENAorOjEwMDFDMDAwRTQ5MzcwMDk3NDAxOTM3MDA0QTNBMzgwMEM3NDAyOTNFOAorOjEwMDFEMDAwNjVGMDYwMDVBM0EzQTM4MEU3NzQwMTkzQzBFMEU0OTNGNgorOjEwMDFFMDAwQzBFMDIyMTIwMjVCMDIwMUYyMTIwMkFGMDIwMUYyMTIxRgorOjEwMDFGMDAwMDJEMzAyMDFGMjMwRTAwNzIwRTMwMkU2MjJFNzIyMzBEOAorOjEwMDIwMDAwRTEwNzIwRTMwMkUyMjJFMzIyMzBFMjAyRTAyMkU0OTM2QgorOjEwMDIxMDAwMjIxMjAyRDMwMjAyMUExMjAyQUYwMjAyMUFBQkYwMTIyOQorOjEwMDIyMDAwMDIyNENCQzVGMENCMjIzMEUwMTAyMEUzMDZFNkY1RjA0NworOjEwMDIzMDAwMDhFNjIyRTdGNUYwMDlFNzE5MjIzMEUxMTAyMEUzMDY4RAorOjEwMDI0MDAwRTJGNUYwMDhFMjIyRTNGNUYwMDlFMzE5MjIzMEUyMDZENAorOjEwMDI1MDAwRTBGNUYwQTNFMDIyRTQ5M0Y1RjA3NDAxOTMyMkJCMDBGMworOjEwMDI2MDAwMDM3NDA5MjJCQjAxMDc4OTgyOEE4Mzc0MDQyMkJCMDJCQQorOjEwMDI3MDAwMDc4OTgyOEE4Mzc0MTAyMjc0MEEyMjAyMDI3QkJCMDBERgorOjEwMDI4MDAwMDdFOTI1ODJGODc0MDEyMkJCMDEwREU5MjU4MkY1ODI3OAorOjEwMDI5MDAwRUEzNTgzRjU4Mzc0MDQyMkJCMDIwREU5MjU4MkY1ODJEOQorOjEwMDJBMDAwRUEzNTgzRjU4Mzc0MTAyMkU5MjU4MkY4NzQwMjIyMDI2QworOjEwMDJCMDAwMDJBRkJGMDAwNUVERjg3NDAxMjJCRjAxMDc4RDgyOEVFOQorOjEwMDJDMDAwODM3NDA0MjJCRjAyMDc4RDgyOEU4Mzc0MTAyMkVERjg5RQorOjEwMDJEMDAwNzQwMjIyMDIwMkQzQkYwMDA3RUQyNTgyRjg3NDAxMjJDNgorOjEwMDJFMDAwQkYwMTBERUQyNTgyRjU4MkVFMzU4M0Y1ODM3NDA0MjI3RQorOjEwMDJGMDAwQkYwMjBERUQyNTgyRjU4MkVFMzU4M0Y1ODM3NDEwMjI2MQorOjEwMDMwMDAwRUQyNTgyRjg3NDAyMjIwMjAzMDdDMEUwMTIwMjVCMDJBQworOjEwMDMxMDAwMDMxRkMwRTAxMjAyQUYwMjAzMUZDMEUwMTIwMkQzMDJBQgorOjEwMDMyMDAwMDMxRjMwRTAwQjIwRTMwNEQwRTBGNjIyRDBFMEY3MjJGOAorOjEwMDMzMDAwMzBFMTBCMjBFMzA0RDBFMEYyMjJEMEUwRjMyMkQwRTA2MQorOjEwMDM0MDAwRjAyMkM5Q0RDOUNBQ0VDQUNCQ0ZDQjEyMDM1MkVERjkyOAorOjEwMDM1MDAwRUVGQUVGRkIyMkJCMDAyRkJGMDAwQUZBRURGOEU3RjYzQQorOjEwMDM2MDAwMDgwOURBRkEyMkJGMDExMjhEODI4RTgzRjgwMjAzNkYyOAorOjEwMDM3MDAwMDlBM0U3RjBEOEZBMjIwMjAzN0FGQUVERjhFN0YyMDhDNworOjEwMDM4MDAwMDlEQUZBMjIwMjAzODRCQjAxNERCRjAwMTQ4OTgyOEE3NAorOjEwMDM5MDAwODNGOUVERjgwMjAzOTYwOEEzRTBGNkQ5RkEyMjAyMDNFNgorOjEwMDNBMDAwQTdCRjAxMjI4RDgyOEU4M0ZCMDhDOUM1ODJDOUNBQzUzOQorOjEwMDNCMDAwODNDQUUwQTNDOUM1ODJDOUNBQzU4M0NBRjBBM0RCRUE2MAorOjEwMDNDMDAwRDhFODIyMDIwM0NBOEQ4MjhFODNGOUVERjhFMEYyMDhBNAorOjEwMDNEMDAwQTNEOUZBMjIwMjAzRDRCQjAyNERCRjAwMTI4OTgyOEEzQworOjEwMDNFMDAwODNGOUVERjgwMjAzRTYwOEEzRTQ5M0Y2RDlGOTIyQkZGNgorOjEwMDNGMDAwMDEyMzhEODI4RTgzRkIwOEM5QzU4MkM5Q0FDNTgzQ0EwMQorOjEwMDQwMDAwRTQ5M0EzQzlDNTgyQzlDQUM1ODNDQUYwQTNEQkU5RDhFRQorOjEwMDQxMDAwRTcyMjAyMDQxOTg5ODI4QTgzRjlFREY4RTQ5M0YyMDg0RAorOjEwMDQyMDAwQTNEOUY5MjIwMjA0MkFCRjAwMERGQUVERjhFM0Y2MDg3OQorOjEwMDQzMDAwMDlEQUZBMjIwMjA0MzRCRjAxMTI4RDgyOEU4M0Y4MDI5NworOjEwMDQ0MDAwMDQ0MTA5QTNFM0YwRDhGQTIyMDIwNDRDRkFFREY4RTNFMAorOjEwMDQ1MDAwRjIwODA5REFGQTIyMDIwNDU2RTZGQjA4RTZGQTA4RTY5MAorOjEwMDQ2MDAwRjkwNEY2MTg3MDAxMDYyMkU2RkYwOEU2RkUwOEU2RkQyQworOjEwMDQ3MDAwMjJFRkYwQTNFRUYwQTNFREYwMjJFQkYwQTNFQUYwQTM1RAorOjEwMDQ4MDAwRTlGMDIyRTBGRkEzRTBGRUEzRTBGRDIyRTBGQkEzRTAxMQorOjEwMDQ5MDAwRkFBM0UwRjkyMjAwMDAwMDAwMDAwMDAwMDRGOTAwNUI2QworOjEwMDRBMDAwMDU3MzAwMjYwNTlBMDAzMzBBMEIwMDVCMEE3NzAwNjA4QgorOjEwMDRCMDAwMTU1MjAwNUIwQ0ZCMDA1QjA5QUIwMDVCMDlFMjAwNUJDMworOjEwMDRDMDAwMERDMjAwNUIwQkYzMDA1QjBBMUUwMDVCMEE1MzAwNUI2RQorOjEwMDREMDAwMTc0QTAwMzMxNzYwMDAzNDFFNEQwMDQzMUVGMDAwNDRERAorOjEwMDRFMDAwMjA1RDAwNDQyMDRCMDA0NzFGMTcwMDQ3MUZCQzAwNERGNAorOjEwMDRGMDAwMjAwRDAwNEYxRjM5MDA1ODMxRjUwMDVCN0NDQzdERkY4QgorOjEwMDUwMDAwMTIxQ0ZFMjI3NDkwOTBGRjkxRjA5MEZGRkNFMDIwRTcxNworOjEwMDUxMDAwMkRDMkFGQUU1OUFGNTg3NTVBMjBFNTVBMTRDNTVBNjA2RQorOjEwMDUyMDAwMTlFNEZFN0YwNUVFNEZDRTI0RkZDRUNGMzRGRkNGNjAxRgorOjEwMDUzMDAwMDdFNDkwRkY5MkYwODBFRDgwRTA4RTU5OEY1ODIyMTJGMAorOjEwMDU0MDAwMDUwMTdEMDc3Q0I3MTIzMjExN0QwRjdDNkUxMjMyMkJCNAorOjEwMDU1MDAwNzg5NzdBMDZFNEY2MDhEQUZDN0EwNjEyMDVDRjdDMDM2RgorOjEwMDU2MDAwMTIwRTU3N0MwNDEyMEU1NzEyMjE4QkU0RkVGRjdDMEZGMworOjEwMDU3MDAwMTIzMTlBRDJBODIyMTIzMDg1RTQ5MEZENDBGMDkwRkYwQgorOjEwMDU4MDAwRjBFMDMwRTQwODc0MDE5MEZENDFGMDgwMDVFNDkwRkQ1NgorOjEwMDU5MDAwNDFGMDdEMEE3QzAwMTIyNEIxMTIzMTA4MjIxMjMwODUwQworOjEwMDVBMDAwOTBGRDQxRTAxNDcwMEU5MEZGRjBFMDQ0MTBGMDdDMDBFQworOjEwMDVCMDAwMTIyNTRBODAxOTkwRkQ0MUUwNzAwRTkwRkZGMEUwNTQ0MgorOjEwMDVDMDAwRUZGMDdDMDAxMjI1NEE4MDA1N0MxNzEyMjU0QTEyMzE3MworOjEwMDVEMDAwMDgyMjkwRkZGMEUwNTRBQkYwOTBGRkYwRTA0NDIwRjBGMAorOjEwMDVFMDAwMjI4QzM3OEQzNjc4N0NFREY2MDhFQ0Y2RURGRUVDRkRDRQorOjEwMDVGMDAwN0YwMTkwMDAwNTEyMDFFQzc4N0FGNjc4N0NFNkZEMDgyMAorOjEwMDYwMDAwRTZGQ0VERkVFQ0ZEN0YwMTkwMDAwNDEyMDFFQzU0MEZCRQorOjEwMDYxMDAwRkM3RDdBMTIxNzlENzg3QUU2NzAwREFEM0FBRTM5QUY0RgorOjEwMDYyMDAwMzhFNDEyMDMwRjdDMDgyMjkwRkZGMEUwNTRGRUYwOTBCMworOjEwMDYzMDAwRkZGMEUwNTRGREYwODAxRTc4N0NFNkZEMDhFNkZDRUQ1RQorOjEwMDY0MDAwRkVFQ0ZEN0YwMTkwMDAwODEyMDIwRTI1RTA0NDAxOTBBRgorOjEwMDY1MDAwRkZGM0YwMDIwNkRCNzg3Q0U2RkQwOEU2RkNFREZFRUMzRAorOjEwMDY2MDAwRkQ3RjAxOTAwMDA2MTIwMjBFNTRGRTkwRkZGM0YwODAxMQorOjEwMDY3MDAwMkI3ODdDRTZGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwMDBBQQorOjEwMDY4MDAwMDgxMjAyMEVGQUVCOTBGRkYxRjAxMjA4Q0E0MDBEQUQwRAorOjEwMDY5MDAwM0FBRTM5QUYzOEU0MTIwMzBGN0MxODIyNzg3Q0U2RkRCRAorOjEwMDZBMDAwMDhFNkZDRURGRUVDRkQ3RjAxOTAwMDA4MTIwMjBFOTBDMgorOjEwMDZCMDAwRkZGMUYwMTIwOENBNDAwREFEM0FBRTM5QUYzOEU0MTI3RQorOjEwMDZDMDAwMDMwRjdDMTgyMjc4N0NFNkZEMDhFNkZDRURGRUVDRkRDRAorOjEwMDZEMDAwN0YwMTkwMDAwNjEyMDIwRTQ0MDE5MEZGRjNGMDc4N0QzNgorOjEwMDZFMDAwRTYyNDAzRjYxOEU2MzQwMEY2Nzg3QUU2MjRGRTUwMDk4QworOjEwMDZGMDAwOTBGRkYwRTA1NEZERjA4MDA3OTBGRkYwRTA0NDAyRjAzRQorOjEwMDcwMDAwRTQ5MEZGRjFGMDc4N0I3NjAwNzg3QUU2MjRGRkZDRTQ1MQorOjEwMDcxMDAwMzRGRkZENzg3QkU2N0YwMEZFRUNEMzlFRUY2NDgwQ0Q1NgorOjEwMDcyMDAwNjQ4MDlENDAyRjEyMDhBRjQwMEY3ODdCRTZBRDNBQUU1MworOjEwMDczMDAwMzlBRjM4MTIwMzBGN0MxODIyOTBGRkYyRTBGQzc4N0M2RQorOjEwMDc0MDAwODY4MzA4ODY4MkVDRjA3ODdCMDZBMzc4N0NBNjgzMDhGMworOjEwMDc1MDAwQTY4MjgwQjUxMjA4QUY0MDBGNzg3QkU2QUQzQUFFMzk3RAorOjEwMDc2MDAwQUYzODEyMDMwRjdDMTgyMjkwRkZGMkUwRkM3ODdDODZGMQorOjEwMDc3MDAwODMwODg2ODJFQ0YwNzg3QUU2QUQzQUFFMzlBRjM4MTI2QgorOjEwMDc4MDAwMDMwRjdDMDAyMjhDMzc4RDM2Nzg3Q0VERjYwOEVDRjY3MgorOjEwMDc5MDAwRURGRUVDRkQ3RjAxOTAwMDA1MTIwMUVDNzg3QkY2NzgxMAorOjEwMDdBMDAwN0NFNkZEMDhFNkZDRURGRUVDRkQ3RjAxOTAwMDA0MTIwNgorOjEwMDdCMDAwMDFFQzU0MEZGQzdEN0IxMjE3OUQ3ODdCRTY3MDAzN0M2NworOjEwMDdDMDAwMDgyMjkwRkZGMEUwNTRGRUYwOTBGRkYwRTA1NEZERjBCRQorOjEwMDdEMDAwODAxQjc4N0NFNkZEMDhFNkZDRURGRUVDRkQ3RjAxOTBEOQorOjEwMDdFMDAwMDAwODEyMDIwRTI1RTA5MEZGRjNGMDgwNUI3ODdDRTZCMworOjEwMDdGMDAwRkQwOEU2RkNFREZFRUNGRDdGMDE5MDAwMDYxMjAyMEUwNgorOjEwMDgwMDAwNTRGRTkwRkZGM0YwODAyMTc4N0NFNkZEMDhFNkZDRURENQorOjEwMDgxMDAwRkVFQ0ZEN0YwMTkwMDAwODEyMDIwRUZBRUI5MEZGRjE1MgorOjEwMDgyMDAwRjAxMjA4Q0E0MDAzN0MxODIyNzg3Q0U2RkQwOEU2RkMzQQorOjEwMDgzMDAwRURGRUVDRkQ3RjAxOTAwMDA4MTIwMjBFOTBGRkYxRjAzQQorOjEwMDg0MDAwMTIwOENBNDAwMzdDMTgyMjc4N0RFNjI0MEFGNjE4RTZDRQorOjEwMDg1MDAwMzQwMEY2Nzg3QTc2MDA3ODdCRTYyNEZGRkNFNDM0RkZGNworOjEwMDg2MDAwRkQ3ODdBRTY3RjAwRkVFQ0QzOUVFRjY0ODBDRDY0ODA1NQorOjEwMDg3MDAwOUQ0MDIxNzg3Qzg2ODMwODg2ODJFMDkwRkZGMUYwMTIwQgorOjEwMDg4MDAwMDhDQTQwMDM3QzE4MjI3ODdBMDY3ODdEMDZFNjE4NzAzQworOjEwMDg5MDAwMDEwNjgwQzM5MEZGRjBFMDQ0MDFGMDc4N0M4NjgzMDg3NQorOjEwMDhBMDAwODY4MkUwOTBGRkYxRjAxMjA4Q0E0MDAzN0MxODIyN0M5NworOjEwMDhCMDAwMDAyMjkwRkZGMEUwMjBFNzEyOTBGRkYwRTAzMEU1MDkyMQorOjEwMDhDMDAwOTBGRkYwRTA0NDIwRjBDMzIyODBFN0QzMjI5MEZGRjBCNQorOjEwMDhEMDAwRTAyMEUzMTI5MEZGRjBFMDMwRTUwOTkwRkZGMEUwNDQwMworOjEwMDhFMDAwMjBGMEMzMjI4MEU3RDMyMjhDNDI4RDQxN0MwMEVENTQ1RQorOjEwMDhGMDAwRjBGREVDNzAwM0VENjQzMDcwMDU3NTNFMDM4MDAzNzUwOAorOjEwMDkwMDAwM0UwNEFDM0UxMjBGN0M3NTgzMDA4NTgzNDBFNTQxNTQ2NAorOjEwMDkxMDAwMEZGNTNGRTU0MDcwMDRFNTNGNjQwMzcwMzVFNTNFMjQ4NAorOjEwMDkyMDAwRkQ3NUYwMEFBNDI0MEFGNTgyRTQzNEZERjU4M0UwMzA3NQorOjEwMDkzMDAwRTYwNTEyMTA2NzgwMTlFNTNFMjQ5N0Y4QzY1NEZCRjZDOQorOjEwMDk0MDAwNzhBM0U2MjQwNUY1ODIxOEU2MzQwMEY1ODM3NDBGRjBFOQorOjEwMDk1MDAwODA1OUU1NDA3MDA0RTUzRjY0MDQ3MDQ4RTUzRTI0RkQ5RAorOjEwMDk2MDAwNzVGMDBBQTQyNDBBRjU4MkU0MzRGREY1ODNFMDMwRTU0RAorOjEwMDk3MDAwMDdBQzQyQUQ0MTEyMUM5M0U1NDIzMEUyMTU3OEE3RTY4MAorOjEwMDk4MDAwMzBFMDBGNzhBN0U2MzBFMTA5RTRGRjA0RkU3QzA0MTJCMgorOjEwMDk5MDAwMzE5QTc4QTNFNjI0MDZGNTgyMThFNjM0MDBGNTgzNzRDQworOjEwMDlBMDAwMEZGMDgwMDdFNEZDN0RFRTEyMUM5M0MyMDMyMjEyMzA4QworOjEwMDlCMDAwODUxMjBGN0M3OEEzRTYyNDA2RjU4MjE4RTYzNDAwRjU0QworOjEwMDlDMDAwODNFMDkwRkQ0MEYwNzhBM0U2MjQwNUY1ODIxOEU2MzQzNAorOjEwMDlEMDAwMDBGNTgzRTA5MEZENDFGMEMyMDM3RDAyN0MwMDEyMjQwQgorOjEwMDlFMDAwQjExMjMxMDgyMjEyMzA4NTc4OEZFQ0Y2RUMyNDk3Rjg5QQorOjEwMDlGMDAwRTYzMEUxMDc3QzEzMTIyNTRBODAwRjkwRkQ0MUUwRkRBRgorOjEwMEEwMDAwNzg4RkU2RkMxMjEzRkQxMjI1NEExMjMxMDgyMjEyMzBBQgorOjEwMEExMDAwODU3ODhGRUNGNjdEMDAxMjBGMEIxMjI1NEExMjMxMDhGMworOjEwMEEyMDAwMjIxMjMwODU3ODhGRUNGNkVDMjQ5N0Y4RTYzMEUyMDc1NgorOjEwMEEzMDAwN0MxMzEyMjU0QTgwMUI3ODhGRTYyNDk3RjhFNjIwRTE4NAorOjEwMEE0MDAwMDc3QzEyMTIyNTRBODAwQTc4OEZFNkZDMTIxNDIxMTJDNAorOjEwMEE1MDAwMjU0QTEyMzEwODIyMTIzMDg1Nzg4RkVDRjZFQzI0OTc2MworOjEwMEE2MDAwRjhFNjIwRTIwNzdDMTExMjI1NEE4MDBBNzg4RkU2RkMxRQorOjEwMEE3MDAwMTIxNTIyMTIyNTRBMTIzMTA4MjIxMjMwODU3ODhGRUM4NQorOjEwMEE4MDAwRjYxMjBGN0M3OEEzRTYyNDA5RjU4MjE4RTYzNDAwRjUwNworOjEwMEE5MDAwODNFMDkwRkQ0N0YwNzhBM0U2MjQwQUY1ODIxOEU2MzQ1NworOjEwMEFBMDAwMDBGNTgzRTA5MEZENDhGMDc4QTNFNjI0MDNGNTgyMTg3MgorOjEwMEFCMDAwRTYzNDAwRjU4M0UwRkM3OEEzRTYyNDA0RjU4MjE4RTYyQQorOjEwMEFDMDAwMzQwMEY1ODNFMEY1NUM3OEEzRTYyNDAyRjU4MjE4RTZBRAorOjEwMEFEMDAwMzQwMEY1ODNFMEY1NUQ4QzVCRTRFQzMzMzM1NDAxNzg0RQorOjEwMEFFMDAwOEZGNjYwMDhFNTVDMzBFMTAzNzg4RjA2Nzg4RkU2OTAzQQorOjEwMEFGMDAwRkQ0OUYwNzhBMUU2MjQwMkY1ODIxOEU2MzQwMEY1ODM3QQorOjEwMEIwMDAwRTBGREEzRTA1NDBDRkNFRDU0RTY4QzVGRjU1RUU1NUI4NAorOjEwMEIxMDAwMzBFNTAzNDM1RjAxRTU1QzIwRTUwRUU1NUI1NDdGNzA0MworOjEwMEIyMDAwMDhFNTVCMjBFNzAzNDM1RjAyRTU1QjMwRTMwMzQzNUZENworOjEwMEIzMDAwMTBFNTVCMzBFMjAzNDM1RjIwRTU1QjU0MDM2MDAzNDM1MQorOjEwMEI0MDAwNUY0MEU1NUIzMEUxMDM0MzVGODBFNTVCMzBFNDAzNDNGNgorOjEwMEI1MDAwNUUwMUU1NUIzMEU2MDM0MzVFMDhFNTVDMjBFNDBFRTVGQworOjEwMEI2MDAwNUI1NDdGNzAwOEU1NUIyMEU3MDM0MzVFMTA1MzVGRkIzNworOjEwMEI3MDAwNTM1RUY5QUQ1RUU1NUY5MEZENDJDREYwQTNDREYwRTVBQgorOjEwMEI4MDAwNUQzMEUzMERFNTVENTQzMEM0NTQwRjkwRkQ0NUYwODBCOQorOjEwMEI5MDAwMDVFNDkwRkQ0NUYwRTU1RDU0MDM5MEZENDRGMEU1NUQwRQorOjEwMEJBMDAwNTQwNEMzMTM5MEZENDZGMDkwRkQ0NEUwNzAwRTdEM0Q2QgorOjEwMEJCMDAwN0VGRDdGMDE3NDAxOTAwMDA5MTIwMTQyNzhBM0U2MjRCMgorOjEwMEJDMDAwMDhGNTgyMThFNjM0MDBGNTgzRTA3QzAwRkQ3OEEzRTZBMgorOjEwMEJEMDAwMjQwN0Y1ODIxOEU2MzQwMEY1ODNFMDdGMDA0Q0ZFRUYzMQorOjEwMEJFMDAwNEQ5MEZENDBGMEEzQ0VGMENFQzIwMzdEMEE3QzAwMTJGMgorOjEwMEJGMDAwMjRCMTEyMzEwODIyMTIzMDg1Nzg4RkVDRjY3ODk0NzY4MQorOjEwMEMwMDAwMDEwODc2RkQwODc2NDA3ODkxNzYwQzc4OTQxMjA0NjU5OAorOjEwMEMxMDAwMTIwMjE0Nzg5MkNCRjZDQjA4RjY3RjAwRUYyNEVCNDA1QgorOjEwMEMyMDAwMUZFNEVGMjVFMDkwMzRCRkZEOTNDRDA0OTM3ODkzNjZFNQorOjEwMEMzMDAwNzAwM0VEMTg2NjcwMDY3ODkxNzYwMDgwMDMwRjgwRENGMworOjEwMEM0MDAwNzg5MEVGRjY3ODk0MTIwNDY1OTAwMDAyMTIwMjBFNzgwNAorOjEwMEM1MDAwOTJDQkY2Q0IwOEY2NTQwNENCNTQwNjRCNjAwNDc4OTE0MworOjEwMEM2MDAwNzYwQjc4OTNFNjMwRTMxMzc4OTQxMjA0NjU5MDAwMDVEMAorOjEwMEM3MDAwMTIwMUVDMjRGQjUwMDQ3ODkxNzYwRDc4OTNFNjU0QzA3MQorOjEwMEM4MDAwN0QwMDY0QzA0RDcwMDQ3ODkxNzYwQjc4OTQxMjA0NjVGMQorOjEwMEM5MDAwOTAwMDA0MTIwMUVDMjRGQzUwMDQ3ODkxNzYwRjc4OTRCMworOjEwMENBMDAwMTIwNDY1OTAwMDA2MTIwMUVDMjRGRDUwMDQ3ODkxNzY0MAorOjEwMENCMDAwMEU3ODk0MTIwNDY1OTAwMDA5MTIwMUVDMjRGRDUwMDQ5MgorOjEwMENDMDAwNzg5MTc2MEE3ODkxRTY3MDJBNzg4RkU2RkMxMjBGN0M4QworOjEwMENEMDAwNzg5NDEyMDQ2NTc4QTFFNkY5NzhBMEU2RkE3QjAxNzRBRAorOjEwMENFMDAwMEE3ODAwMTIwMzNGQzIwMzc4OEZFNkZDMTIxMTIzNzhDMgorOjEwMENGMDAwOTFFQ0Y2Nzg5MUU2RkMxMjI1NEExMjMxMDgyMjEyMzA2NgorOjEwMEQwMDAwODU3ODhGRUNGNjEyMEY3Qzc4OEZFNjI0RkQ3NUYwMEE1QgorOjEwMEQxMDAwQTQyNDFDRjU4MkU0MzRGREY1ODNBQzgyQUQ4Mzc4QTA3NQorOjEwMEQyMDAwODY4MzA4ODY4MkVDRjlFREZBN0IwQTc4MDExMjAzQTcyNAorOjEwMEQzMDAwQzIwMzc4OEZFNkZDMTIxMTIzMTIzMTA4MjI4RDJCOEMwRQorOjEwMEQ0MDAwMkFFRDYwNDA3NTI3MDE3NTI5NDg3NTI4RkZFNTJBMjQ5QQorOjEwMEQ1MDAwRkRGQ0U0MzRGRkZERUM3QzAzMjVFMENEMzNDRERDRjk3NAorOjEwMEQ2MDAwRkNFNTI5MkNGNTI5RTUyODNERjUyOEFEMjlBRTI4QUY2RAorOjEwMEQ3MDAwMjc3NDgwOTAwMDA2MTIwMzE3NzQ4MDkwMDAwMjEyMDNGQgorOjEwMEQ4MDAwMTcxMjBGRDNFNTJCMTQ2MDNCNzUyNzAxNzUyOTA4NzVFMQorOjEwMEQ5MDAwMjhGRkU1MkEyNEZERkNFNDM0RkZGREVDN0MwMzI1RTA3QworOjEwMERBMDAwQ0QzM0NERENGOUZDRTUyOTJDRjUyOUU1MjgzREY1MjhFNgorOjEwMERCMDAwQUQyOUFFMjhBRjI3RTQ5MDAwMDYxMjAzMTdFNDkwMDA5NworOjEwMERDMDAwMDIxMjAzMTcyMjEyMzA4NTc4OEZFQ0Y2RUMyNDk3Rjg4NAorOjEwMEREMDAwRTYzMEUyMDk3ODhGRTZGQzEyMTUyMkQyMDA3ODhGRTYyMQorOjEwMERFMDAwRkMxMjBGN0M3ODkwNzYwMDkwRkQ0MUUwMzBFNzA0NzhBQgorOjEwMERGMDAwOTA3NjAxNzg5MEU2RkQ3ODhGRTZGQzEyMEQzQUMyMDNGQQorOjEwMEUwMDAwMzAwMDA3Nzg4RkU2RkMxMjE0MjE3QzAwMTIyNTRBMTI2QworOjEwMEUxMDAwMzEwODIyNzhBM0U2MjQwNEY1ODIxOEU2MzQwMEY1ODMyRAorOjEwMEUyMDAwRTA0NDAxRjA3OEEzRTYyNDA0RjU4MjE4RTYzNDAwRjVFNgorOjEwMEUzMDAwODNFMDMwRTAwMjgwRUQ3OEEzRTYyNDBCRjU4MjE4RTYyQgorOjEwMEU0MDAwMzQwMEY1ODNFMDU0RjhGMDc4QTNFNjI0MDJGNTgyMTgyNAorOjEwMEU1MDAwRTYzNDAwRjU4M0UwNDQ4MEYwMjJDMjAzOEM1ODEyMEY4MAorOjEwMEU2MDAwN0M3OEEwODY4MzA4ODY4Mjc5RUU3QTM0N0IwQTc4MDFDMgorOjEwMEU3MDAwMTIwM0Y1MTIwRTEwQUM1ODdEMDIxMjBEM0FDMjAzQUNFQgorOjEwMEU4MDAwNTgxMjExMjMyMjhENTM4RTUyOEY1MThDNTAxMjBGN0M4OQorOjEwMEU5MDAwNzU0RjAwNzhBM0U2MjQwNUY1ODIxOEU2MzQwMEY1ODM0MworOjEwMEVBMDAwRTAyMEU0MTZFNTRGMjRGNjQwMTAwNTRGQzIwMzdDMThGRAorOjEwMEVCMDAwMTIzMjQ4QUM1MDEyMEY3QzgwRDk3OEEzRTYyNDA1RjU5NQorOjEwMEVDMDAwODIxOEU2MzQwMEY1ODNFMDIwRTQwNUMyMDM3QzAyMjJBOAorOjEwMEVEMDAwNzhBM0U2MjQwNUY1ODIxOEU2MzQwMEY1ODNFMDU0MEY4NAorOjEwMEVFMDAwNjAxNjc4QTNFNjI0MDVGNTgyMThFNjM0MDBGNTgzRTA2MQorOjEwMEVGMDAwNTQwRkYwQzIwMzdDMDEyMjc4QTI4NjgzMDg4NjgyRTAyOAorOjEwMEYwMDAwQUQ1M0FFNTJBRjUxMTIwMzBGQzIwMzdDMDAyMjhEMzE5QworOjEwMEYxMDAwOEMzMDEyMTUyMkU1MzE2MDIwRTUzMEI0MDMwQzdDMDFFMQorOjEwMEYyMDAwMTIyNDdDN0M4MTEyMjQ3QzgwMEZFNTMwQjQwNDBBN0M3RQorOjEwMEYzMDAwMDIxMjI0N0M3QzgyMTIyNDdDQUMzMDEyMEY3Q0U1MzFCRQorOjEwMEY0MDAwNjAxQTc4QTQ4NjgzMDg4NjgyRTA1NEU3RjBBM0EzQTNGRQorOjEwMEY1MDAwQTNFMDU0RTdGMEFDMzA3RDAyMTIwRDNBNzhBMDg2ODMwRQorOjEwMEY2MDAwMDg4NjgyNzlGODdBMzQ3QjBBNzgwMTEyMDNGNUMyMDM4NQorOjEwMEY3MDAwRTUzMDI0OTdGOEM2NTRGREY2QUMzMDEyMTEyMzIyOENDQworOjEwMEY4MDAwMjYzMDAzMDUxMjMxRTc4MEY4N0MwQTEyMzBGQUQyMDNDQQorOjEwMEY5MDAwRTUyNjI0RkQ3ODlERjY3MDA5NzhBNDc2RkYwODc2RTBCMgorOjEwMEZBMDAwODAwNzc4QTQ3NkZGMDg3NkUyNzg5REU2NzVGMDEwQTRCNQorOjEwMEZCMDAwQURGMEZDMjRBMDc4QTNGNkVEMzRGRjE4RjY3ODlERTY5QQorOjEwMEZDMDAwNzVGMDBBQTQyNDA4RkNFNDM0RkRGRDc4QTBFREY2MDhEMQorOjEwMEZEMDAwRUNGNjEyMzE5MzIyNzhBM0U2MjQwMkY1ODIxOEU2MzQ2NworOjEwMEZFMDAwMDBGNTgzRTAzMEU3MjI3OEEzRTYyNDAyRjU4MjE4RTZENAorOjEwMEZGMDAwMzQwMEY1ODNFMDU0N0ZGMDc4QTNFNjI0MDJGNTgyMThFQworOjEwMTAwMDAwRTYzNDAwRjU4M0UwNDQ4MEYwMjI3OEE0ODY4MzA4ODZFNQorOjEwMTAxMDAwODJFMDU0N0ZGMEFEODNFNTgyMjQwNEZDRTQzRDhDODJDMQorOjEwMTAyMDAwRjU4M0UwNTQ3RkYwNzhBM0U2MjQwQkY1ODIxOEU2MzRDQworOjEwMTAzMDAwMDBGNTgzRTA1NEY4RjA3OEE1RTYyNDAxRjU4MjE4RTY3RgorOjEwMTA0MDAwMzQwMEY1ODNFMDQ0MDNGMDc4QTVFNjI0MDVGNTgyMTgyMgorOjEwMTA1MDAwRTYzNDAwRjU4M0UwNDQwM0YwNzhBM0U2MjQwNUY1ODI0NgorOjEwMTA2MDAwMThFNjM0MDBGNTgzNzQwRkYwMjI3OEE0ODY4MzA4ODY4RQorOjEwMTA3MDAwODJFMDU0M0ZGMEFEODNFNTgyMjQwNEZDRTQzRDhDODJBMQorOjEwMTA4MDAwRjU4M0UwNTQzRkYwNzg5REU2MjQ5RUY4RTZGQzc4QTVEMQorOjEwMTA5MDAwRTYyNDAxRjU4MjE4RTYzNDAwRjU4M0VDRjA3ODlERTY0RAorOjEwMTBBMDAwMjQ5RUY4RTZGQzc4QTVFNjI0MDVGNTgyMThFNjM0MDBDRgorOjEwMTBCMDAwRjU4M0VDRjA3OEEzRTYyNDBCRjU4MjE4RTYzNDAwRjUwRQorOjEwMTBDMDAwODNFMDU0RkI0NDAyRjUyNjc4QTFFNjI0MDJGNTgyMTg1OQorOjEwMTBEMDAwRTYzNDAwRjU4M0UwMzBFNTAzNDMyNjAxNzhBM0U2MjRGNworOjEwMTBFMDAwMDVGNTgyMThFNjM0MDBGNTgzRTAzMEUwMDMxMjBGRDNGMworOjEwMTBGMDAwRTUyNkZDNzhBM0U2MjQwQkY1ODIxOEU2MzQwMEY1ODM5OAorOjEwMTEwMDAwRUNGMDc4QTNFNjI0MDVGNTgyMThFNjM0MDBGNTgzNzQ0NAorOjEwMTExMDAwMEZGMDc4QTQ4NjgzMDg4NjgyRTA0NDgwRjBBM0EzQTMxRQorOjEwMTEyMDAwQTNFMDQ0ODBGMDIyOEMyQTEyMEY3Qzc4QTFFNjI0MDhFOAorOjEwMTEzMDAwRjU4MjE4RTYzNDAwRjU4M0UwRkM3OEEzRTYyNDBBRjU4RQorOjEwMTE0MDAwODIxOEU2MzQwMEY1ODNFQ0YwNzhBMUU2MjQwN0Y1ODJGNgorOjEwMTE1MDAwMThFNjM0MDBGNTgzRTBGQzc4QTNFNjI0MDlGNTgyMTg0QworOjEwMTE2MDAwRTYzNDAwRjU4M0VDRjA3OEEwODY4MzA4ODY4MkUwRkQwMworOjEwMTE3MDAwQTNFMEZDRURGRTc4QTNFNjI0MDhGNTgyMThFNjM0MDAyRgorOjEwMTE4MDAwRjU4M0VFRjBFQ0ZFNzhBM0U2MjQwN0Y1ODIxOEU2MzQ0QQorOjEwMTE5MDAwMDBGNTgzRUVGMDhDMjk4RDI4QzNFQzk0MDJFRDk0MDZDMworOjEwMTFBMDAwNDAwNTc1Mjc3QzgwMzNEM0U1Mjk5NDgxRTUyODk0MDE5NworOjEwMTFCMDAwNDAwNTc1MjczQzgwMjNEM0U1Mjk5NEMwRTUyODk0MDA5OQorOjEwMTFDMDAwNDAwNTc1MjcxODgwMTNEM0U1Mjk5NDMwRTUyODk0MDA0RAorOjEwMTFEMDAwNDAwNTc1MjcwQzgwMDM3NTI3MDhBRjI3RTRFRjU0N0M4MgorOjEwMTFFMDAwNDQ4M0ZGOEYyN0U1MjdGQzc4QTVFNjI0MDFGNTgyMThDNAorOjEwMTFGMDAwRTYzNDAwRjU4M0VDRjBFNTI3RkM3OEE1RTYyNDA1RjU1OAorOjEwMTIwMDAwODIxOEU2MzQwMEY1ODNFQ0YwRTUyN0ZDNzg5REU2MjRBRgorOjEwMTIxMDAwOUVGOEVDRjY3OEEzRTYyNDAyRjU4MjE4RTYzNDAwRjU5MQorOjEwMTIyMDAwODNFMEY1Mjc3OEExRTYyNDAyRjU4MjE4RTYzNDAwRjU3QworOjEwMTIzMDAwODNBM0UwMzBFMzE3NTMyN0M3NzhBMUU2MjQwNUY1ODI5RQorOjEwMTI0MDAwMThFNjM0MDBGNTgzRTA5MDM0RTk5MzQyMjc3OEExRTY2QworOjEwMTI1MDAwMjQwMkY1ODIxOEU2MzQwMEY1ODNFMDMwRTcwNTQzMjdFMQorOjEwMTI2MDAwNDA4MDAzNTMyN0JGNTMyN0ZCNzhBMUU2MjQwNkY1ODI2RAorOjEwMTI3MDAwMThFNjM0MDBGNTgzRTA2MDAzNDMyNzA0NTMyN0ZDNzgyNQorOjEwMTI4MDAwQTFFNjI0MDRGNTgyMThFNjM0MDBGNTgzRTA0MjI3NDMwMgorOjEwMTI5MDAwMjc4MEU1MjdGQzc4QTNFNjI0MDJGNTgyMThFNjM0MDBDRgorOjEwMTJBMDAwRjU4M0VDRjA3OEEzRTYyNDA0RjU4MjE4RTYzNDAwRjUyMworOjEwMTJCMDAwODNFMEY1Mjc3OEExRTYyNDAyRjU4MjE4RTYzNDAwRjVFQworOjEwMTJDMDAwODNBM0UwMzBFMTA1NTMyN0RGODAwMzQzMjcyMDc4QTE4MworOjEwMTJEMDAwRTYyNDAyRjU4MjE4RTYzNDAwRjU4M0UwMzBFNDA1NTM5NQorOjEwMTJFMDAwMjdFRjgwMDM0MzI3MTA3OEExRTYyNDA5RjU4MjE4RTY0QQorOjEwMTJGMDAwMzQwMEY1ODNFMEI0MDIwMzQzMjcwMkU1MjdGQzc4QTMxQQorOjEwMTMwMDAwRTYyNDA0RjU4MjE4RTYzNDAwRjU4M0VDRjA3OEEzRTZEMQorOjEwMTMxMDAwMjQwM0Y1ODIxOEU2MzQwMEY1ODNFMEY1Mjc3OEExRTY4QQorOjEwMTMyMDAwMjQwOUY1ODIxOEU2MzQwMEY1ODNFMDcwMDU1MzI3N0YyMQorOjEwMTMzMDAwODAwMzQzMjc4MDc4QTFFNjI0MDJGNTgyMThFNjM0MDA3MgorOjEwMTM0MDAwRjU4M0EzRTAzMEUwMDU0MzI3MjA4MDAzNTMyN0RGNzhBRgorOjEwMTM1MDAwQTFFNjI0MDJGNTgyMThFNjM0MDBGNTgzRTAzMEUzMDVDNworOjEwMTM2MDAwNDMyNzQwODAwMzUzMjdCRjc4QTFFNjI0MDJGNTgyMTg2MworOjEwMTM3MDAwRTYzNDAwRjU4M0UwMzBFMDA1NDMyNzEwODAwMzUzMjc2RgorOjEwMTM4MDAwRUY3OEExRTYyNDAyRjU4MjE4RTYzNDAwRjU4M0EzRTBBNQorOjEwMTM5MDAwMzBFNDA1NDMyNzA4ODAwMzUzMjdGNzc4QTFFNjI0MDJBOQorOjEwMTNBMDAwRjU4MjE4RTYzNDAwRjU4M0EzRTAzMEU1MDU0MzI3MDQxMQorOjEwMTNCMDAwODAwMzUzMjdGQjc4QTFFNjI0MDJGNTgyMThFNjM0MDA2NworOjEwMTNDMDAwRjU4M0EzRTAzMEU2MDU0MzI3MDE4MDAzNTMyN0ZFNzgyOQorOjEwMTNEMDAwQTFFNjI0MDJGNTgyMThFNjM0MDBGNTgzQTNFMDMwRTdBNQorOjEwMTNFMDAwMDU0MzI3MDI4MDAzNTMyN0ZERTUyN0ZDNzhBM0U2MjQ2NQorOjEwMTNGMDAwMDNGNTgyMThFNjM0MDBGNTgzRUNGMEMyMDM3QzAwMjI4QQorOjEwMTQwMDAwOEQyNzhDMjZFRDU0MDMxNDYwMDM3QzEwMjJFNTI3NTRBRAorOjEwMTQxMDAwN0MyNEZDNDAwMzdDMEIyMkU1MjYyNDk3RjhDNjQ0MDI3QQorOjEwMTQyMDAwRjY3QzAwMjI4QzMwMTIwRjdDRTUzMDI0OTdGOEU2MjAwMQorOjEwMTQzMDAwRTI0RkFDMzA3RDAyMTIwRDNBRTUzMDI0RkU0NDI4RkMyOAorOjEwMTQ0MDAwNzhBNDg2ODMwODg2ODJFQ0YwQUY4M0U1ODIyNDA0RkVDQworOjEwMTQ1MDAwRTQzRkZGRUM4RTgyOEY4M0YwN0MwMzhDMkNFNTJDRkMyOAorOjEwMTQ2MDAwNzhBNUU2MjQwMUY1ODIxOEU2MzQwMEY1ODNFQ0YwRTU3MgorOjEwMTQ3MDAwMkNGQzc4QTVFNjI0MDVGNTgyMThFNjM0MDBGNTgzRUMwQgorOjEwMTQ4MDAwRjA3NTJEMDE3NTJGNDg3NTJFRkZFNTMwMjRGREZDRTQyNQorOjEwMTQ5MDAwMzRGRkZERUM3QzAzMjVFMENEMzNDRERDRjlGQ0U1MkZGQQorOjEwMTRBMDAwMkNGNTJGRTUyRTNERjUyRTc4QTVFNjI0MDRGNTgyMThCRgorOjEwMTRCMDAwRTYzNDAwRjU4M0UwNTRFN0Y1MkNBRDJGQUUyRUFGMkRDQQorOjEwMTRDMDAwRTQ5MDAwMDIxMjAzMTdFNDkwMDAwNjEyMDMxNzEyMDFDMQorOjEwMTREMDAwRTYzMEU1MDM0MzJDMTBFNTJDRkM3OEE1RTYyNDA0RjU2MgorOjEwMTRFMDAwODIxOEU2MzQwMEY1ODNFQ0YwMTIxMDY3NzhBM0U2MjQ0NgorOjEwMTRGMDAwMDZGNTgyMThFNjM0MDBGNTgzRTBDMjAzRkNFNTMwMjRFQgorOjEwMTUwMDAwOTdGOEM2NDQwNEY2OEMyQ0U1MzA1NDBGQzQ1NEYwN0U5MgorOjEwMTUxMDAwMDBGRkVFRUY0NDA0N0QwMEZGRUM0RUZDRUQ0RkZEMTJBQQorOjEwMTUyMDAwMUNGRTdDMDAyMjhDMkYxMjBGN0MxMjEwMDc3OEE0ODZFMAorOjEwMTUzMDAwODMwODg2ODJFMDU0MDhGMEEzQTNBM0EzRTA1NDA4RjAzNAorOjEwMTU0MDAwQUMyRjdEMDIxMjBEM0FDMjAzRTUyRjI0OTdGOEM2NTQ0MgorOjEwMTU1MDAwRkJGNjdDMDAyMjEyMzA4NTc4OTBFQ0Y2RUMyNDk3RjhBQworOjEwMTU2MDAwRTYzMEUxMEE3RDAwN0MxMzEyMjRCMTEyMzEwODc4OTAzNAorOjEwMTU3MDAwRTYyNDk3RjhDNjQ0MDFGNjc4OTBFNkZDMTIwRjdDNzhEMgorOjEwMTU4MDAwOTBFNjI0RkQ3NUYwMEFBNDI0MUNGNTgyRTQzNEZERjVGMAorOjEwMTU5MDAwODM3OEEwRTZGQTA4RTZGOTdCMEE3ODAxMTIwM0E3NzhCNworOjEwMTVBMDAwQTA4NjgzMDg4NjgyNzlGODdBMzQ3QjBBNzgwMTEyMDM1MAorOjEwMTVCMDAwRjUxMjBGRDNDMjAzNzg5MEU2RkMxMjExMjM3ODhGRUM1QQorOjEwMTVDMDAwRjZFQzYwMEE3RDAwN0MwODEyMjRCMTEyMzEwODc4OTA5NAorOjEwMTVEMDAwRTZGQzEyMEY3Qzc4QTNFNjI0MDRGNTgyMThFNjM0MDBCQQorOjEwMTVFMDAwRjU4M0UwNDQxMDU0REZGQzc4QTNFNjI0MDRGNTgyMTg2OAorOjEwMTVGMDAwRTYzNDAwRjU4M0VDRjA3ODhGRUNGNkMyMDM3Q0M4MTI3OQorOjEwMTYwMDAwMzI0ODc4OTBFNkZDMTIwRjdDNzhBM0U2MjQwNEY1ODIzOQorOjEwMTYxMDAwMThFNjM0MDBGNTgzRTA1NEVGRjBDMjAzN0NDODEyMzJDMAorOjEwMTYyMDAwNDg3ODkwRTZGQzEyMEY3Qzc4QTNFNjI0MDRGNTgyMTgzMworOjEwMTYzMDAwRTYzNDAwRjU4M0UwNDQxMEYwQzIwMzdDQzgxMjMyNDg1RgorOjEwMTY0MDAwNzg5MEU2RkMxMjBGN0M3OEEzRTYyNDA0RjU4MjE4RTY3NQorOjEwMTY1MDAwMzQwMEY1ODNFMDQ0MjBGMEMyMDM3Q0YwMTIzMjQ4Nzg3NQorOjEwMTY2MDAwOTBFNkZDMTIwRjdDNzhBM0U2MjQwNUY1ODIxOEU2MzQ5OAorOjEwMTY3MDAwMDBGNTgzRTAzMEU0MTVDMjAzNzg5MEU2NDQxMDdGMDA2MworOjEwMTY4MDAwRkU3QzA3MTIzMTlBMTIzMTA4MDIxNzQ5NzhBM0U2MjQyQQorOjEwMTY5MDAwMDRGNTgyMThFNjM0MDBGNTgzRTA1NENGRjBDMjAzN0NGMQorOjEwMTZBMDAwQzgxMjMyNDg3ODkwRTZGQzEyMEY3Qzc4QTNFNjI0MDQzNgorOjEwMTZCMDAwRjU4MjE4RTYzNDAwRjU4M0UwNDQzMEYwQzIwMzdDRjA5NAorOjEwMTZDMDAwMTIzMjQ4Nzg5MEU2RkMxMjBGN0M3OEEzRTYyNDA1RjVFOAorOjEwMTZEMDAwODIxOEU2MzQwMEY1ODNFMDMwRTQxNEMyMDM3ODkwRTYyMworOjEwMTZFMDAwNDQxMDdGMDBGRTdDMDcxMjMxOUExMjMxMDg4MDVENzgyOQorOjEwMTZGMDAwQTNFNjI0MDRGNTgyMThFNjM0MDBGNTgzRTA1NEVGRjAwNQorOjEwMTcwMDAwNzhBM0U2MjQwNEY1ODIxOEU2MzQwMEY1ODNFMDU0REY3QworOjEwMTcxMDAwRjA3ODkwRTYyNEZENzVGMDBBQTQyNDFDRjU4MkU0MzRFOAorOjEwMTcyMDAwRkRGNTgzQUM4MkFEODM3OEEwODY4MzA4ODY4MkVDRjlEMAorOjEwMTczMDAwRURGQTdCMEE3ODAxMTIwM0E3QzIwMzc4OTBFNkZDMTI0NworOjEwMTc0MDAwMTEyMzdEMDA3QzBCMTIyNEIxMTIzMTA4MjIxMjMwODU0NgorOjEwMTc1MDAwOTBGRjkxRTA5MEZENDFGMDdEMDI3QzAwMTIyNEIxMTJENworOjEwMTc2MDAwMzEwODIyMTIzMDg1OTBGRDQwRTBGNEZDOTBGRjkxRTBCQQorOjEwMTc3MDAwNUNGNTMzOTBGRDQxRTBGQzkwRkQ0MEUwNUM0MjMzRTVEOAorOjEwMTc4MDAwMzM5MEZGOTFGMDdDMDAxMjI1NEExMjMxMDgyMjc0M0NGQworOjEwMTc5MDAwOTBGQkU4RjA3NDNFOTBGQkU4RjBFNDkwRkQzMEYwMjIxRQorOjEwMTdBMDAwOEQzNThDMzRFQ0I0MDEwMjgwMDNEMzQwMDI4MDI4QjQyMAorOjEwMTdCMDAwMDIwMjgwMDNEMzQwMDhBODM1QzYyNUUwRjY4MDE4QjQ5RAorOjEwMTdDMDAwMDQwMjgwMDNEMzQwMEFBODM1QzYyNUUwMjVFMEY2ODA1MAorOjEwMTdEMDAwMDZBODM1NzYwMDgwMDAyMjhDM0M4RDNCRURGRUVDRkRBQQorOjEwMTdFMDAwN0YwMTc1NjAwNjc1NjEwMDkwRkQzMTEyMDQ2RTEyMDE3MworOjEwMTdGMDAwRTZCNDgwMDI4MDA2RDM1MDAzMDIxODlFOTBGRDMxMTI5OQorOjEwMTgwMDAwMDQ4MDkwMDAwMzEyMDFFQzU0RjBCNDMwMDI4MDAzRDM0MgorOjEwMTgxMDAwNDA1RjkwRkQzMTEyMDQ4MDkwMDAwODEyMDIwRUZBRkQyNAorOjEwMTgyMDAwRUJGRTdGMDE5MEZEMzQxMjA0NkVFRUNEOTAzNTAyRkM4QworOjEwMTgzMDAwRTQ5M0ZGNzQwMTkzRkVGOUVGRkE3QjAxRUFGRkU5RkVGRQorOjEwMTg0MDAwRUNDMzlFRUQ5RjQwMjU5MDM1MDRFNDkzRkQ3NDAxOTMxNQorOjEwMTg1MDAwRkNFREZFRUNGRDdGMDFFRUNERkM5MEZEMzZFMEQzOUM2RgorOjEwMTg2MDAwOTBGRDM1RTA5RDUwMDU3NTYwODA4MDMzMTIxOUJDODA3NQorOjEwMTg3MDAwMkVCNDYwMDI4MDAzRDM0MDBCQUMzQ0FEM0IxMjA3ODIxOAorOjEwMTg4MDAwOEM2MDgwMUJCNDEwMDNCMzQwMTBDM0I0MjAwM0IzNDA3QQorOjEwMTg5MDAwMDlDM0I0NDAwMjgwMDNEMzQwMDA3NTYwODE4MDAwODA5QQorOjEwMThBMDAwNzVCNDgxMDI4MDAzRDM0MDZCOTBGRDMxMTIwNDgwOTBBNworOjEwMThCMDAwMDAwMzEyMDFFQzU0RjBCNDMwMDI4MDAzRDM0MDFEOTBCOQorOjEwMThDMDAwRkQzMTEyMDQ4MDkwMDAwODEyMDIwRUZBRkRFQkZFN0YzQgorOjEwMThEMDAwMDE5MEZEMzcxMjA0NkUxMjE5MjY4MDM2QjQ2MDAyODAyMgorOjEwMThFMDAwMDNEMzQwMTM3NTNBNjFFNEY1MzlGNTM4QUMzQ0FEM0JCMAorOjEwMThGMDAwMTIwNURFOEM2MDgwMUJCNDEwMDNCMzQwMTBDM0I0MjAwQgorOjEwMTkwMDAwMDNCMzQwMDlDM0I0NDAwMjgwMDNEMzQwMDA3NTYwODEzMworOjEwMTkxMDAwODAwMDgwMDI4MDAwRTU2MEZDOTBGRDMxMTIwNDgwRUNDNAorOjEwMTkyMDAwOTAwMDAyMTIwMzE3QUM2MTIyOTBGRDMxMTIwNDgwOTBFNgorOjEwMTkzMDAwMDAwNDEyMDFFQzYwMDQ3NDAxODAwMUU0QTJFMDkyMDE1MQorOjEwMTk0MDAwOTBGRDMxMTIwNDgwRUQyNDAzRkQ1MDAxMEU5MEZEMzQxMgorOjEwMTk1MDAwMTIwNDZFOTBGRDMxMTIwNDgwOTAwMDA1MTIwMUVDRjUyNgorOjEwMTk2MDAwNjE5MDAwMDQxMjAxRUM1NDBGRkM3RDYxMTIxNzlERTU5QgorOjEwMTk3MDAwNjE3MDA0NzU2MDA4MjI3NTYwMDA3ODdFNzYwMDc4N0U1QworOjEwMTk4MDAwRTZDMzk1NjE1MDM4OTBGRDM3MTIwNDgwMTIwMUU2RkNFMQorOjEwMTk5MDAwOTBGRDM0MTIwNDgwRUMxMjAzMEYzMDAxMEU5MEZEMzlEQgorOjEwMTlBMDAwRTAwNEYwOTBGRDM4NzAwM0UwMDRGMDc4N0UwNjkwRkRDRQorOjEwMTlCMDAwMzZFMDA0RjA5MEZEMzU3MDAzRTAwNEYwODBDMDIyOTAyMgorOjEwMTlDMDAwRkQzMkUwRkRBM0UwRkNFREZFRUNGRDdGMDFFRDI0MEExRAorOjEwMTlEMDAwRkQ1MDAxMEU5MEZEM0ExMjA0NkU5MEZEMzExMjA0ODAwQworOjEwMTlFMDAwOTAwMDA0MTIwMUVDNTQwRkI0MDEwMjgwMDNEMzQwMTc5RAorOjEwMTlGMDAwOTBGRDNBMTIwNDgwMERFRDcwMDEwRTkwRkQzNzEyMDQzNworOjEwMUEwMDAwNkU3ODgyNzYwMTgwNEVCNDAyMDI4MDAzRDM0MDE5OTAzMgorOjEwMUExMDAwRkQzQTEyMDQ4MEVEMjQwMkZENTAwMTBFOTBGRDM3MTJCNAorOjEwMUEyMDAwMDQ2RTc4ODI3NjAyODAyREI0MDQwMjgwMDNEMzQwMTlCQworOjEwMUEzMDAwOTBGRDNBMTIwNDgwRUQyNDA0RkQ1MDAxMEU5MEZEMzcxNAorOjEwMUE0MDAwMTIwNDZFNzg4Mjc2MDQ4MDBDQjQwMDAyODAwM0QzNDBDNgorOjEwMUE1MDAwMDA3NTYwMDgyMjkwRkQzMTEyMDQ4MDkwMDAwNTEyMDE4QgorOjEwMUE2MDAwRUNGNTYxNzg3Rjc2MDA3ODdGRTZDMzk1NjE0MDAzMDJFQworOjEwMUE3MDAwMUIyNDc4ODA3NjAwNzg4MEU2QzM3ODgyOTY1MDc2OTAzMgorOjEwMUE4MDAwRkQzNDEyMDQ4MDEyMDFFNkZDOTBGRDNBMTIwNDg5MTIyMgorOjEwMUE5MDAwMDFFMEY0NUNGQzEyMDFFMEY4OTBGRDM3MTIwNDgwRThFQworOjEwMUFBMDAwQzBFMDEyMDFFNkM4RDBFMEM4NTg0Q0ZDOTBGRDM0MTJFQQorOjEwMUFCMDAwMDQ4MEVDMTIwMzBGNzg4MUVDRjY5MEZEMzlFMDA0RjAxRAorOjEwMUFDMDAwOTBGRDM4NzAwM0UwMDRGMDA5RTk3MDAxMEE5MEZEM0FENgorOjEwMUFEMDAwMTIwNDc3OTBGRDMxMTIwNDgwOTAwMDA0MTIwMUVDMzA2MgorOjEwMUFFMDAwRTQwRTkwRkQzNkUwMDRGMDkwRkQzNTcwMDNFMDA0RjA2NAorOjEwMUFGMDAwNzg4MDA2ODA4MTc4ODJFNkZERTRGRUZGRUVDREZDOTBFMgorOjEwMUIwMDAwRkQzOUUwMkNGMDkwRkQzOEUwM0RGMDc4ODJFNkZERTQxMAorOjEwMUIxMDAwRkVGRkVFQ0RGQzkwRkQzQ0UwMkNGMDkwRkQzQkUwM0Q2NworOjEwMUIyMDAwRjA3ODdGMDYwMjFBNjQ3NTYwMDAyMkU1M0QwNTNEMDRFOQorOjEwMUIzMDAwNzAwMkIyQjAyMkMwRTBDMEYwQzA4MkMwODNDMEQwRTg2MgorOjEwMUI0MDAwQzBFMEU5QzBFMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzAxRQorOjEwMUI1MDAwRTBFRUMwRTBFRkMwRTA5MEZGOTJFMDEyMDFCNzFCODAyMgorOjEwMUI2MDAwMzAxQjgwMzIxQjhGMzgxQkExM0ExQkIzM0UxQkNCNDQ2QQorOjEwMUI3MDAwMUJCRjQ2MUJENzUwMUMxOTUyMUJGODU0MUMzQTU2MDA2OQorOjEwMUI4MDAwMDAxQzVCOTBGRjkyRTA3RjAwRkU3QzAxMTIzMTlBMDIwNAorOjEwMUI5MDAwMUM2QkU0RkYwNEZFN0MwMzEyMzE5QTc0MjA5MEZGRkU1QworOjEwMUJBMDAwRjAwMjFDNkJFNEZGMDRGRTdDMDIxMjMxOUE3NDQwOTAzOAorOjEwMUJCMDAwRkZGRUYwMDIxQzZCRTRGRjA0RkU3QzA0MTIzMTlBMDI2QgorOjEwMUJDMDAwMUM2QkU0RkYwNEZFN0MwNTEyMzE5QTAyMUM2QkU0RkZERgorOjEwMUJEMDAwMDRGRTdDMDYxMjMxOUEwMjFDNkI5MEZGQTVFMDdEMDA4QQorOjEwMUJFMDAwOTBGRDAwQ0RGMEEzQ0RGMDkwRkQwMUUwRkNGNTgzOTBEOQorOjEwMUJGMDAwRkQwMEUwNDQzM0ZEMTIxQ0ZFODA3MzkwRkZCNUUwN0RENAorOjEwMUMwMDAwMDA5MEZEMDJDREYwQTNDREYwOTBGRDAzRTBGQ0Y1ODM0NAorOjEwMUMxMDAwOTBGRDAyRTA0NDQzRkQxMjFDRkU4MDUyOTBGRkE2RTBCRQorOjEwMUMyMDAwN0QwMDkwRkQwNENERjBBM0NERjA5MEZEMDVFMEZDRjUyNgorOjEwMUMzMDAwODM5MEZEMDRFMDQ0MzRGRDEyMUNGRTgwMzE5MEZGQjYxOQorOjEwMUM0MDAwRTA3RDAwOTBGRDA2Q0RGMEEzQ0RGMDkwRkQwN0UwRkMxNworOjEwMUM1MDAwRjU4MzkwRkQwNkUwNDQ0NEZEMTIxQ0ZFODAxMDkwRkZDOQorOjEwMUM2MDAwOTJFMDdEMDBGQ0VENDRBQUZEMTIxQ0ZFODAwMEU0OTA5MQorOjEwMUM3MDAwRkY5MkYwRDBFMEZGRDBFMEZFRDBFMEZERDBFMEZDRDA1RAorOjEwMUM4MDAwRTBGQkQwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMDgzRDBCQgorOjEwMUM5MDAwODJEMEYwRDBFMDMyMDU4MTA1ODEwNTgxMDU4MUE4ODFERgorOjEwMUNBMDAwMTgxODE4RURGNjA4RUNGNjkwRkY2QUUwMjBFNzAyODBCRAorOjEwMUNCMDAwRjc5MEZGNjlFMDdEMDBBODgxMThDREY2Q0QwOEY2N0Q4QworOjEwMUNDMDAwMDNBODgxRTYxOEZDRTZDQzI1RTBDQzMzQ0NEREY5Q0NDQQorOjEwMUNEMDAwRjZDQzA4RjZBODgxMThFNjQ0RjhGNkE4ODExODE4MTg3QQorOjEwMUNFMDAwRTZGRDA4RTZGQ0E4ODExODg2ODMwODg2ODJFREYwQTM0RAorOjEwMUNGMDAwRUNGMDc0MDI5MEZGNkFGMDE1ODExNTgxMTU4MTE1ODE1MQorOjEwMUQwMDAwMjJFNTgxMjQwNUY1ODFFNEE4ODExOEY2QTg4MTE4MTgzOAorOjEwMUQxMDAwMTgxOEVERjYwOEVDRjY5MEZCRkRFMDI0Rjg1MDAzMDJFRAorOjEwMUQyMDAwMUUxRkU0QTg4MTE4MThGNkE4ODExOEU2RkVBODgxMThERAorOjEwMUQzMDAwMTgxODE4RTZGRDA4RTZGQzdGMDBFRjI0Rjg0MDRERTQ5MworOjEwMUQ0MDAwRUYyNUUwMjQ4NUY1ODJFNDM0RkRGNTgzRTBGQkEzRTA5NAorOjEwMUQ1MDAwNkM3MDAzRkFFQjZENzAwOTc0MDFBODgxMTgxOEY2ODA5NQorOjEwMUQ2MDAwMkJFNEVGMjVFMDI0ODVGNTgyRTQzNEZERjU4MzdBMDA0OQorOjEwMUQ3MDAwRTA1NEYwQ0NGOENDQ0RGOUNERkI3ODAwRTk1NEYwRjk4MworOjEwMUQ4MDAwRUE2ODcwMDJFQjY5NzAwMTBFMEY4MEFFQTg4MTE4RUU1MAorOjEwMUQ5MDAwRjZBODgxMTgxODE4MThFREY2MDhFQ0Y2QTg4MUVGRjZFOQorOjEwMURBMDAwQTg4MTE4MThFNjcwNzlBODgxMThFNjI0Rjc0MDcxQTg3MAorOjEwMURCMDAwODExODE4MTgxOEU2NTQwRkE4ODFGNjY0MDQ2MDE3QTg1MworOjEwMURDMDAwODFFNjY0MDM2MDEwQTg4MTE4MTgxODE4RTZGRDA4RTY3QgorOjEwMUREMDAwRkMxMjFDOTM4MDRBN0MwQTEyMzBGQUE4ODExODE4MTg0OQorOjEwMURFMDAwMThFNkZEMDhFNkZDOTBGQkZDRTAyNUUwMjQ4NUY1ODI4MgorOjEwMURGMDAwRTQzNEZERjU4M0VERjBBM0VDRjA5MEZCRkNFMEZGRTRCMAorOjEwMUUwMDAwRUYwNDU0MDdGRjkwRkJGQ0YwOTBGQkZERTAwNEYwMTJBMAorOjEwMUUxMDAwMzE5MzkwRkJGRUUwNzAwOEU0RkVGRjdDMEYxMjMxOUFENAorOjEwMUUyMDAwODAyNzkwRkJGRkUwMDRGMDU0M0Y3MDFEOTBGQkZGRTAyMworOjEwMUUzMDAwNDRGRTdEMDBGQzkwRkJGQ0UwMjVFMDI0ODVGNTgyRTQ3NworOjEwMUU0MDAwMzRGREY1ODNFREYwQTNFQ0YwRTU4MTI0RkJGNTgxMjI3MAorOjEwMUU1MDAwNzg4NTc2MDA3ODg2NzYwMDc0MDE5MEZCRkVGMDEyMzA2QgorOjEwMUU2MDAwODU5MEZCRkRFMDYwNTk3QzBBMTIzMEZBOTBGQkZCRTBBNAorOjEwMUU3MDAwMjVFMDI0ODVGNTgyRTQzNEZERjU4M0UwRkRBM0UwRkM1NAorOjEwMUU4MDAwOTBGQkZCRTAyNUUwMjQ4NUY1ODJFNDM0RkRGNTgzRTQ1NgorOjEwMUU5MDAwRjBBM0YwOTBGQkZCRTBGRkU0RUYwNDU0MDdGRjkwRkI5RQorOjEwMUVBMDAwRkJGMDkwRkJGREUwMTRGMDc4ODNFREY2MDhFQ0Y2MTIwMQorOjEwMUVCMDAwMzE5M0IyQjM3ODgzRTZGRDA4RTZGQzEyMDhFNTgwQTExMQorOjEwMUVDMDAwMTIzMUU3Nzg4NTA2QjYwMDExNzg4NTc2MDA3ODg2RTZDNworOjEwMUVEMDAwRjQwNDA0QTJFMDkyQjQ3ODg2RjY4MDg1RTQ5MEZCRkVEOAorOjEwMUVFMDAwRjA5MEZCRkRFMDdEMDBGQ0VENDRDRkZEMTIxQzkzMTI1MQorOjEwMUVGMDAwMzEwODIyMTIzMDg1RTU2QTY0NDk0NTY5NjAxNTkwRkYxMgorOjEwMUYwMDAwODNFMDU0MEY3RDAwRDM5NTZBRUQ5NTY5NTAwNTEyMkUzQworOjEwMUYxMDAwQ0U4MDAzMTIyRjlFMTIzMTA4MjIxMjMwODVFNTZBNjRBQQorOjEwMUYyMDAwNDk0NTY5NjAwNTEyMkZEODgwMEU5MEZGODBFMDQ0MDg3MworOjEwMUYzMDAwRjA5MEZGODNFMDU0N0ZGMDEyMzEwODIyMTIzMDg1OEMzQworOjEwMUY0MDAwNTRFQzU0RjBCNDEwMTU3NTY0M0Q3NTYzRkQ3NTYyMDE3MQorOjEwMUY1MDAwRTU2NDI0MDNGNTY0RTU2MzM0MDBGNTYzRTRGNTU3RjVCRgorOjEwMUY2MDAwNTZFNTU2QzM5NDAxNTAyN0U1NTQ1NDBGRkNBRDY0QUVCQQorOjEwMUY3MDAwNjNBRjYyMTIwRTgyOEM1NUVDNjAwMjgwMTIwNTY0RTUzQworOjEwMUY4MDAwNjQ3MDAyMDU2MzA1NTdFNTU3NzAwMjA1NTY4MEQyRTU3NworOjEwMUY5MDAwNTQ1NDBGMjQ5N0Y4QzY1NEZFRjZFNTU0NTQwRjdGMDBBRQorOjEwMUZBMDAwRkU3QzEyMTIzMTlBRTU1NTE0NzAwOTdEMDA3QzA5MTJFRAorOjEwMUZCMDAwMjRCMTgwMDdBRDU3N0MwMDEyMjRCMTEyMzEwODIyMTJERgorOjEwMUZDMDAwMzA4NTkwRkZGQ0UwNDQwMkYwOTBGRjAwRTAzMEU3MTMyMgorOjEwMUZEMDAwOTBGRjgzRTA0NDgwRjA0MzY3ODA5MEZGRkNFMDQ0MDE4MQorOjEwMUZFMDAwRjA4MDExOTBGRjgyRTA0NDA4RjA1MzY3N0Y5MEZGRkM3RgorOjEwMUZGMDAwRTA1NEZFRjA5MEZGODFFMDQ0ODBGMDEyMjU2NDkwRkZGMQorOjEwMjAwMDAwRkVFMDQ0MDVGMDkwRkZGQ0UwNTRGREYwMTIzMTA4MjJBMAorOjEwMjAxMDAwMTIzMDg1N0MwMTEyMzI0ODc4QTdFNjQ0MDJGNjc0RkUzRAorOjEwMjAyMDAwRkMwNEZEMTIxQ0ZFOTBGRjZBRTAzMEU3MDI4MEY3RTQzQQorOjEwMjAzMDAwRjU0RTc1NEQxMEFDNEVBRDRERTU0RTE1NEU3MDAyMTU3QQorOjEwMjA0MDAwNERFQzRENjAwMjgwRUU0Mzg3MDExMjMxMDgyMjEyMzBDMAorOjEwMjA1MDAwODU3QzAyMTIzMTE0NzhBN0U2NTRGREY2MTIzMTA4MjI2RAorOjEwMjA2MDAwMTIzMDg1NzhBN0U2MzBFMDJDNzhBN0U2MzBFMTI2NzhCNAorOjEwMjA3MDAwQTdFNkZDRjU4MzE4RTY0NEYwRkQxMjFDOTM5MEZGRkNFNAorOjEwMjA4MDAwRTA0NDIwRjA3QzAyMTIzMjQ4NzhBN0U2NTRGREY2NzQ1MgorOjEwMjA5MDAwMUE5MEZGRkVGMDc4QTdFNkZDRjU4MzE4RTY0NEYxRkQwMAorOjEwMjBBMDAwMTIxQzkzMTIzMTA4MjI3NTY3MDA3NTY4MDBFNEY1NjYwQQorOjEwMjBCMDAwRjU2NUU0RjU2OTc1NkE0OTc0ODQ5MEZGODJGMDc0ODQ2QgorOjEwMjBDMDAwOTBGRjgwRjA3NDgwOTBGRjY4RjA3NDgwOTBGRjZBRjA1OQorOjEwMjBEMDAwQUQ0NkFGNDU3RTAwRUUyNEZDNTAwMzAyMjE2QUU0RUVEQgorOjEwMjBFMDAwNzVGMDA3QTQyNDNGRjU4MkU0MzRGQ0Y1ODNFMEZGRTRCNworOjEwMjBGMDAwRUY1NDgwRkRFNEVGNTQwRjE0RkZFRDYwMzhFNEVGNzUwQQorOjEwMjEwMDAwRjAwOEE0MjQ0OEY1ODJFNDM0RkZGNTgzNzQ5MEYwRTRFOQorOjEwMjExMDAwRUY3NUYwMDhBNDI0NEFGNTgyRTQzNEZGRjU4Mzc0ODA1NworOjEwMjEyMDAwRjBFNEVGNzVGMDA4QTQyNDRFRjU4MkU0MzRGRkY1ODM2MworOjEwMjEzMDAwNzQ4MEYwODAzNEU0RUY3NUYwMDhBNDI0MDhGNTgyRTQ5QworOjEwMjE0MDAwMzRGRkY1ODM3NDkwRjBFNEVGNzVGMDA4QTQyNDBBRjVFOQorOjEwMjE1MDAwODJFNDM0RkZGNTgzRTRGMEU0RUY3NUYwMDhBNDI0MEU4NAorOjEwMjE2MDAwRjU4MkU0MzRGRkY1ODNFNEYwMEUwMjIwRDM4RDQ2OEUzMQorOjEwMjE3MDAwNDQ4RjQ1NzQ3RjkwRkZGREYwNzQ5MDkwRkZGQ0YwOTBDOQorOjEwMjE4MDAwRkMxOUUwMzBFNjA3OTBGRkZDRTA0NDA0RjAyMjkwRkNFQworOjEwMjE5MDAwMERFMDE0NzAwNDkwRkMwQ0UwNzAzOTkwRkMwMDc5MDY5RQorOjEwMjFBMDAwN0EzNTdCMTI3ODAxMTIwM0Y1N0YwMEVGMzM0MDE1RUY4QgorOjEwMjFCMDAwOTAzNTREOTNGQ0VGMjQ4MEY1ODJFNDM0RkNGNTgzRUNGQworOjEwMjFDMDAwRjAwRjgwRTc4RjU5OTBGQzJCNzkxODdBMzU3QjM1NzhBMgorOjEwMjFEMDAwMDExMjAzRjVFNDkwRkZGRkYwNzQ1MTkwRkZGQUYwNzRFMAorOjEwMjFFMDAwMDQ5MEZGRkJGMDc0NTM5MEZGRjhGMDc0NTE5MEZGRjlFNgorOjEwMjFGMDAwRjA3NDU1OTBGRkY3RjA3NDkzOTBGRkY2RjA3NDMyOTBGRQorOjEwMjIwMDAwRkZGNUYwNzU2NDNENzU2M0ZENzU2MjAxRTQ5MEZGODMzMQorOjEwMjIxMDAwRjA3NDgwOTBGRjgxRjA3NTU4MDRFNTU4NzVGMDA3QTRCQworOjEwMjIyMDAwMjQzRkY1ODJFNDM0RkNGNTgzRTA3ODg5RjZGQzU0MEYxMgorOjEwMjIzMDAwMTRGQzc4ODlFQ0Y2RTU1ODc1RjAwN0E0MjQ0MUY1ODI4MgorOjEwMjI0MDAwRTQzNEZDRjU4M0UwNzg4Qzc2RjgwODc2MDBGQzc4ODkzNQorOjEwMjI1MDAwRTY3NUYwMDhBNDI0NDhGNTgyRTQzNEZGRjU4M0U0RjA0MQorOjEwMjI2MDAwNzg4OUU2NzVGMDA4QTQyNDRGRjU4MkU0MzRGRkY1ODNGRAorOjEwMjI3MDAwRUNGMDc4OENFNkZGMDhFNjdFMDNDRkMzMTNDRjEzREVDNQorOjEwMjI4MDAwRjlGRTc4ODlFNjc1RjAwOEE0MjQ0OUY1ODJFNDM0RkY2NAorOjEwMjI5MDAwRjU4M0VFRjA3ODg5RTY3NUYwMDhBNDI0NEFGNTgyRTQyNworOjEwMjJBMDAwMzRGRkY1ODM3NDgwRjA3ODhBRUNGNjdEMDA3ODhERTY1MworOjEwMjJCMDAwMkNGNjE4RTYzREY2Nzg4Q0U2RkQwOEU2N0MwM0NEQzNFNworOjEwMjJDMDAwMTNDRDEzRENGOUZDNzg4OUU2NzVGMDA4QTQyNDRERjVFQworOjEwMjJEMDAwODJFNDM0RkZGNTgzRUNGMDc4ODlFNjc1RjAwOEE0MjRGNQorOjEwMjJFMDAwNEVGNTgyRTQzNEZGRjU4M0U0RjA3ODhDRTZGRDA4RTZGMQorOjEwMjJGMDAwRkM3ODg5RTZGRjdFMDBFRTI0RkM1MDAzMDIyNDZCRTRBOAorOjEwMjMwMDAwRUU3NUYwMDdBNDI0M0ZGNTgyRTQzNEZDRjU4M0UwRkY4QQorOjEwMjMxMDAwRTRFRjU0ODBGQUU0RUY1NDBGMTRGRkU0RUU3NUYwMDc5NQorOjEwMjMyMDAwQTQyNDQxRjU4MkU0MzRGQ0Y1ODNFMDc4OEFGNkVFNzU2NgorOjEwMjMzMDAwRjA4MEE0MjQwOEY4RTVGMDM0RjhGOUU4RkNFOUZEOEExNworOjEwMjM0MDAwNTlFQTcwMDMwMjIzRDhFNEVGNzVGMDA4QTQyNDQ4RjU5NQorOjEwMjM1MDAwODJFNDM0RkZGNTgzRTRGMDc4OEFFNkZBRTRFRjc1RjA3RQorOjEwMjM2MDAwMDhBNDI0NEZGNTgyRTQzNEZGRjU4M0VBRjBFREZCRUM5QQorOjEwMjM3MDAwN0EwM0NCQzMxM0NCMTNEQUY5RkFFNEVGNzVGMDA4QTRCMAorOjEwMjM4MDAwMjQ0OUY1ODJFNDM0RkZGNTgzRUFGMDc4OEFFNjdCMDA5RAorOjEwMjM5MDAwRkFFQzJBRkNFRDNCRkRGQkVDN0EwM0NCQzMxM0NCMTMyOQorOjEwMjNBMDAwREFGOUZBRTRFRjc1RjAwOEE0MjQ0REY1ODJFNDM0RkY3RAorOjEwMjNCMDAwRjU4M0VBRjBFNEVGNzVGMDA4QTQyNDRBRjU4MkU0MzRFQQorOjEwMjNDMDAwRkZGNTgzNzQ4MEYwRTRFRjc1RjAwOEE0MjQ0RUY1ODJFNQorOjEwMjNEMDAwRTQzNEZGRjU4Mzc0ODBGMDAyMjQ2N0U0RUY3NUYwMDhCRAorOjEwMjNFMDAwQTQyNDA4RjU4MkU0MzRGRkY1ODNFNEYwNzg4QUU2RkE2MQorOjEwMjNGMDAwRTRFRjc1RjAwOEE0MjQwRkY1ODJFNDM0RkZGNTgzRUFENgorOjEwMjQwMDAwRjBFREZCRUM3QTAzQ0JDMzEzQ0IxM0RBRjlGQUU0RUY2QworOjEwMjQxMDAwNzVGMDA4QTQyNDA5RjU4MkU0MzRGRkY1ODNFQUYwNzgyNgorOjEwMjQyMDAwOEFFNjdCMDBGQUVDMkFGQ0VEM0JGREZCRUM3QTAzQ0I2MQorOjEwMjQzMDAwQzMxM0NCMTNEQUY5RkFFNEVGNzVGMDA4QTQyNDBERjUxMQorOjEwMjQ0MDAwODJFNDM0RkZGNTgzRUFGMEU0RUY3NUYwMDhBNDI0MEE4RgorOjEwMjQ1MDAwRjU4MkU0MzRGRkY1ODNFNEYwRTRFRjc1RjAwOEE0MjQ5QQorOjEwMjQ2MDAwMEVGNTgyRTQzNEZGRjU4M0U0RjAwRTAyMjJGNDhFNTg3OAorOjEwMjQ3MDAwNzg4Q0VERjYwOEVDRjY3ODg5RUZGNjEyMjBBNDIyOEMyMQorOjEwMjQ4MDAwMjZFQzMwRTcxOEU1MjY1NDBGMTQ3NUYwMDhBNDI0NDgwQworOjEwMjQ5MDAwRjU4MkU0MzRGRkY1ODNFMDU0REZGMDgwMTZFNTI2NTQzRQorOjEwMjRBMDAwMEYxNDc1RjAwOEE0MjQwOEY1ODJFNDM0RkZGNTgzRTBFNgorOjEwMjRCMDAwNTRERkYwMjJFQzkwRkQzRkYwOEMyNEVEMjQwM0Y1MjU1MQorOjEwMjRDMDAwN0QwMEQzOTU2Q0VEOTU2QjQwMDM4NTZDMjVFNTI1MjQ0NworOjEwMjREMDAwQjc1MDA5NzUyNTAzNzQwMjkwRkQzRkYwQUMyNTEyMkYwQgorOjEwMjRFMDAwQzMyMkU0RjU2NkY1NjUxMjI0RTgyMjkwRkQzREUwNjUxRgorOjEwMjRGMDAwNkQ2MDBFNzQwNDkwRkQzRkYwRTRGNTY1NzU2NjAzODAzMQorOjEwMjUwMDAwNDY3RDZERTRGRUZGNzkzRDdBRkQ3QjAxNzQwNTc4MDAyMAorOjEwMjUxMDAwMTIwMzNGRTU2NjI0MDNGNTY2RTU2NTM0MDBGNTY1RTVERAorOjEwMjUyMDAwNjZEMzk1NkNFNTY1OTU2QjQwMDY4NTZDNjY4NTZCNjUzNQorOjEwMjUzMDAwRDNFNTY2OTQ0OEU1NjU5NDAwNDAwQzc0MDI5MEZEM0YzNQorOjEwMjU0MDAwRjBFNEY1NjU3NTY2MDNBQzY2MTIyRkMzMjJFQzkwRkRDRQorOjEwMjU1MDAwM0ZGMEU0RjU2NkY1NjU4QzMyRUM2MDA1MTIyRkI0ODAyRgorOjEwMjU2MDAwMDU3QzAwMTIyRkMzMjI5MEZGMDRFMEY1NEE5MEZGMDY3RAorOjEwMjU3MDAwRTBGREEzRTBFRDdEMDBGQzdEMDBGQzkwRkYwNkUwRkZBOAorOjEwMjU4MDAwQTNFMDdFMDBGRkU0RkVFQzRFRkNFRDRGRkRDM0VDOTRCNworOjEwMjU5MDAwNDhFRDk0MDA1MDIyOTBGRjA2RTBGREEzRTBFRDdEMDBBMQorOjEwMjVBMDAwRkM3RDAwRkM5MEZGMDZFMEZGQTNFMDdFMDBGRkU0RkU2MAorOjEwMjVCMDAwRUM0RUZDRUQ0RkZEODAwNEU0RkQ3QzQ4OEM2QzhENkI5MworOjEwMjVDMDAwOTBGRjAyRTBGREEzRTBFRDdEMDBGQzdEMDBGQzkwRkZBQworOjEwMjVEMDAwMDJFMEZGQTNFMDdFMDBGRkU0RkVFQzRFRjU0Q0VENEY4MQorOjEwMjVFMDAwRjU0Qjc1NjQzRDc1NjNGRDc1NjIwMTdEM0Q3RUZEN0YzNAorOjEwMjVGMDAwMDE3OTZERTRGQUZCNzQwNTc4MDAxMjAzM0Y3NTQ5MDAxOAorOjEwMjYwMDAwRTU0OTI0RkU0MDE5QUQ2NEFFNjNBRjYyRTQxMjAzMEZFNgorOjEwMjYxMDAwMDU0OTBERUQ3MDAxMEU4RDY0OEU2MzhGNjI4MEUxNzU0QQorOjEwMjYyMDAwNjQzRDc1NjNGRDc1NjIwMTkwRkYwMEUwNTQ2MEI0MDA4NQorOjEwMjYzMDAwMDI4MDA2RDM1MDAzMDIyQzEyRTU0QTU0MEZGNTQ5RTVGNworOjEwMjY0MDAwNEE1NDgwQTJFMDkyMDI5MEZGMDFFMDEyMDE4MTAwMEI0NworOjEwMjY1MDAwMkMwRDI2NjcyNzg1MkMwRDI4OTEyQzBEMjk3NDI5QTg2RgorOjEwMjY2MDAwMkIwRjJCMTIyQjUyMkJCNjJCRTRFNTY3MzBFNzBFRTUzMAorOjEwMjY3MDAwNEM0NTRCNzAwOEU1NkM2NDAyNDU2QjYwMDMwMjJDMEZGRgorOjEwMjY4MDAwOTBGRjAwRTA1NDFGQjQwMDAyODAwM0QzNDAyOUU1NEFDNAorOjEwMjY5MDAwNjAwMzAyMjc4MkFENjRBRTYzQUY2Mjc0MDExMjAzMEY2MAorOjEwMjZBMDAwNzhBN0U2MzBFMDBCQUQ2NEFFNjNBRjYyNzQwMjEyMDM0QworOjEwMjZCMDAwMEY3QzAyMTIyRkMzMjJCNDAxMDI4MDAzRDM0MDFCRTUxQQorOjEwMjZDMDAwNjcyMEUxMDdFNTRBNjAwMzAyMjc4MkU1NEEyNEZFNTBCRAorOjEwMjZEMDAwMDMwMjI3ODI3QzAyMTIyRkMzMjJCNDAyMDI4MDA2RDM5NworOjEwMjZFMDAwNTAwMzAyMjc4MEU1NjcyMEUxMERFNTRBNjAwOUU1NEFDRAorOjEwMjZGMDAwNjQ4MDYwMDMwMjI3ODJBQzRBMTIzMDRBNDAwMzAyMjdGQQorOjEwMjcwMDAwODJFNTQ5NzAyNTMwMDIxMTkwRkY4MEUwNTQwOEFENjRFNQorOjEwMjcxMDAwQUU2M0FGNjIxMjAzMEY4MDBGOTBGRjgyRTA1NDA4QURFQQorOjEwMjcyMDAwNjRBRTYzQUY2MjEyMDMwRjgwM0QxNTQ5MzAwMjFERTVCMAorOjEwMjczMDAwNDk3NUYwMDhBNDI0NDhGNTgyRTQzNEZGRjU4M0UwNTQ5OQorOjEwMjc0MDAwMDhBRDY0QUU2M0FGNjIxMjAzMEY4MDFCRTU0OTc1RjBGQworOjEwMjc1MDAwMDhBNDI0MDhGNTgyRTQzNEZGRjU4M0UwNTQwOEFENjQ0RQorOjEwMjc2MDAwQUU2M0FGNjIxMjAzMEZBRDY0QUU2M0FGNjIxMjAxRTZGNworOjEwMjc3MDAwNjAwQkFENjRBRTYzQUY2Mjc0MDExMjAzMEY3QzAyMTI5MgorOjEwMjc4MDAwMkZDMzIyODAwMDAyMkMwRkU1NjcyMEU3MDZFNTZDNDU4OQorOjEwMjc5MDAwNkI2MDAzMDIyQzBGOTBGRjAwRTA1NDFGQjQwMDAyODAxNgorOjEwMjdBMDAwMDNEMzQwMUFFNTRDMTQ0NTRCNzAwNEU1NEE2MDAzMDIxQworOjEwMjdCMDAwMjg4RTc4QTdFNjU0RkVGNjdDMDAxMjJGQzMyMkI0MDFCRgorOjEwMjdDMDAwMDI4MDAzRDM0MDJBRTU2NzIwRTEwOEU1NjcyMEUwMDNBMworOjEwMjdEMDAwMDIyODhFRTU2NzMwRTAwNEU1NEE3MDBCRTU2NzMwRTFEQQorOjEwMjdFMDAwMDlFNTRBMjRGRTUwMDMwMjI4OEU3QzAwMTIyRkMzMjJFMgorOjEwMjdGMDAwQjQwMjAyODAwNkQzNTAwMzAyMjg4Q0U1NEM0NTRCNjA5RQorOjEwMjgwMDAwMDMwMjI4OEVBQzRBMTIzMDRBNDAwMzAyMjg4RUU1Njc0NAorOjEwMjgxMDAwMjBFMTA3RTU2NzIwRTAwMjgwNzdFNTY3MzBFMDA2RTUyNAorOjEwMjgyMDAwNDk2MDAyODA2Q0U1NDk3MDBGOTBGRjgyRTA1NEY3RjAzOAorOjEwMjgzMDAwOTBGRjgwRTA1NEY3RjAyMkU1NDlCNDAxMDI4MDAzRDMxMQorOjEwMjg0MDAwNDAwOTdEMDE3QzAzMTIwRjBCODAxMUI0MDIwMjgwMDM0QQorOjEwMjg1MDAwRDM0MDA5N0QwMTdDMDQxMjBGMEI4MDAwMTU0OTMwMDIyMgorOjEwMjg2MDAwMTVFNTQ5NzVGMDA4QTQyNDQ4RjU4MkU0MzRGRkY1ODNBMgorOjEwMjg3MDAwRTA1NEY3RjA4MDEzRTU0OTc1RjAwOEE0MjQwOEY1ODJDOAorOjEwMjg4MDAwRTQzNEZGRjU4M0UwNTRGN0YwN0MwMDEyMkZDMzIyODA3QworOjEwMjg5MDAwMDAwMjJDMEZFNTY3MjBFNzA2RTU2QzQ1NkI2MDAzMDIzQworOjEwMjhBMDAwMkMwRjkwRkYwMEUwNTQxRkI0MDAwMjgwMDNEMzQwMUFBNQorOjEwMjhCMDAwRTU0QzE0NDU0QjcwMDRFNTRBNjAwMzAyMjk3MTc4QTc4MgorOjEwMjhDMDAwRTY0NDAxRjY3QzAwMTIyRkMzMjJCNDAxMDI4MDAzRDMzOAorOjEwMjhEMDAwNDAyOUU1NjcyMEUxMDhFNTY3MjBFMDAzMDIyOTcxRTU2QQorOjEwMjhFMDAwNjczMEUwMDRFNTQ5NzAwQkU1NjczMEUxMDhFNTQ5MjQwRAorOjEwMjhGMDAwRkU1MDAyODA3RjdDMDAxMjJGQzMyMkI0MDIwMjgwMDNBQworOjEwMjkwMDAwRDM0MDZGRTU0QzQ1NEI2MDAyODA2OUFDNEExMjMwNEFCNworOjEwMjkxMDAwNDAwMjgwNjBFNTY3MjBFMTA3RTU2NzIwRTAwMjgwNTQxRgorOjEwMjkyMDAwRTU0OTcwMTQzMDAyMDk5MEZGODBFMDQ0MDhGMDgwMDcwOAorOjEwMjkzMDAwOTBGRjgyRTA0NDA4RjAyMkU1NjczMEUxMzMxNTQ5MzAyQQorOjEwMjk0MDAwMDIxNUU1NDk3NUYwMDhBNDI0NDhGNTgyRTQzNEZGRjU0MgorOjEwMjk1MDAwODNFMDQ0MDhGMDgwMTNFNTQ5NzVGMDA4QTQyNDA4RjVFNQorOjEwMjk2MDAwODJFNDM0RkZGNTgzRTA0NDA4RjA3QzAwMTIyRkMzMjI5OAorOjEwMjk3MDAwODAwMjgwMDAwMjJDMEZFNTY3MjBFNzEyRTU2QzQ1NkJCMgorOjEwMjk4MDAwNzAwQ0U1NEE3MDA4OTBGRjAwRTA1NDFGNjAwMzAyMkNCMQorOjEwMjk5MDAwMEZFNTRDOTBGRkZGRjA5MEZGRkZFMDYwMDU0MzY3MDFGQgorOjEwMjlBMDAwODAwMzUzNjdGRTdDMDAxMjJGQzMyMkU1NjczMEU3MEVEOQorOjEwMjlCMDAwRTU2QzQ1NkI2MDA4OTBGRjAwRTA1NDFGNjAwMzAyMkMzQgorOjEwMjlDMDAwMEZBRDRCRTU0Q0VEN0QwMEZDN0QwMEZDQkQwMDAyODBCMQorOjEwMjlEMDAwMDMwMjJCMEFCNDAxMDI4MDAzRDM0MDMyRTU0QTcwMDU5QQorOjEwMjlFMDAwRTU0Q0ZDNjAwMzAyMkIwQzc1NjQwMDc1NjNGQzc1NjI5QQorOjEwMjlGMDAwMDFEM0U1NkM5NDEyRTU2Qjk0MDA0MDA2RTRGRDdDMTI3MworOjEwMkEwMDAwODAwNEFDNkNBRDZCOEM2QThENjkxMjJGRDgyMkI0MDIzNQorOjEwMkExMDAwMDI4MDAzRDM0MDU5RTU0QTYwMDMwMjJCMENFNTRDRkNDRAorOjEwMkEyMDAwNzAyNzc1NjQxMjc1NjNGQzc1NjIwMUQzRTU2Qzk0MTlBNworOjEwMkEzMDAwRTU2Qjk0MDA0MDA2RTRGRDdDMTk4MDA0QUM2Q0FENkI0MgorOjEwMkE0MDAwOEM2QThENjkxMjJGRDg4MDI1NzU2NDJCNzU2M0ZDNzU4RgorOjEwMkE1MDAwNjIwMUQzRTU2Qzk0MzVFNTZCOTQwMDQwMDZFNEZEN0M5RgorOjEwMkE2MDAwMzU4MDA0QUM2Q0FENkI4QzZBOEQ2OTEyMkZEODIyQjRBMgorOjEwMkE3MDAwMDMwMjgwMDZEMzUwMDMwMjJCMEFFNTRDRjU0OTcwMEY4MAorOjEwMkE4MDAwOTBGRjA0RTBGREEzRTA0RDYwMDMwMjJCMEM4MDE4OTA0MgorOjEwMkE5MDAwRkM4MkUwRkRBM0UwRkM5MEZGMDVFMDZDNzAwNzkwRkY3NgorOjEwMkFBMDAwMDRFMDZENjAwMjgwNjhFNEY1NkFGNTY5N0YwMEU1NDkzRAorOjEwMkFCMDAwMTRDNTQ5NjAwRkVGMjQ4MEY1ODJFNDM0RkNGNTgzRTAwRgorOjEwMkFDMDAwMkZGRjgwRUE4RjRBRTU0QTI0ODBGNTgyRTQzNEZDRjU0MgorOjEwMkFEMDAwODNFMDdEMDBEMzk1NkNFRDk1NkI0MDA2QUM2Q0FENkJERgorOjEwMkFFMDAwODAwRkU1NEEyNDgwRjU4MkU0MzRGQ0Y1ODNFMDdEMDAyNAorOjEwMkFGMDAwRkM4QzZBOEQ2OUU1NEEyNDgwRkNFNDM0RkNGREZFRUMyNAorOjEwMkIwMDAwRkQ3RjAxOEQ2NDhFNjM4RjYyMTIyRkQ4MjI4MDAwMDJCOAorOjEwMkIxMDAwMkMwRjAyMkMwRkU1NjczMEU3MTlFNTZDMTQ0NTZCNzAzQworOjEwMkIyMDAwMTJFNTRBNzAwRUU1NEM0NTRCNzAwODkwRkYwMEUwNTRFQQorOjEwMkIzMDAwMUY2MDAzMDIyQzBGRTU2NzIwRTAwOEU1NjcyMEUxMDMzMgorOjEwMkI0MDAwMDIyQzBGNzU2NDY4RTRGNTYzRjU2MkU0RjU2OTA0RjUzOQorOjEwMkI1MDAwNkExMjJGRDgyMkU1NjcyMEU3MjdFNTZDNDU2QjcwMjFDNAorOjEwMkI2MDAwRTU0QTcwMURFNTRDNjQwMjQ1NEI2MDBERTU0QzE0NDU4QgorOjEwMkI3MDAwNEI2MDA2RTU0QzQ1NEI3MDA4OTBGRjAwRTA1NDFGNjAyOQorOjEwMkI4MDAwMDMwMjJDMEZFNTY3MjBFMDA4RTU2NzIwRTEwMzAyMkMzMworOjEwMkI5MDAwMEY4NTRDNjhFNTY4NzAwODQzNjcwMTUzNjdGRDgwMTMzMworOjEwMkJBMDAwRTU2ODY0MDI2MDA3RTU2ODE0NjAwMjgwNjU1MzY3RkVBQgorOjEwMkJCMDAwNDM2NzAyN0MwMDEyMkZDMzIyRTU2NzMwRTcxQUU1NkNGOQorOjEwMkJDMDAwMTQ0NTZCNzAxM0U1NEE3MDBGRTU0QzQ1NEI3MDA5OTA0NgorOjEwMkJEMDAwRkYwMEUwNTQxRjE0NjAwMjgwMzhFNTY3MjBFMTAyODBBNgorOjEwMkJFMDAwMzE3QzAxMTIyRkMzMjJFNTY3MjBFNzE1RTU2QzQ1NkJBOAorOjEwMkJGMDAwNzAwRkU1NEM0NTRCNzAwOTkwRkYwMEUwNTQxRjE0NjBDNgorOjEwMkMwMDAwMDI4MDBGRTU2NzIwRTEwMjgwMDg3QzAwMTIyRkMzMjJCQQorOjEwMkMxMDAwODAwMDAyMkVDQUI0NDAwMjgwMDZEMzUwMDMwMjJFQzBBOAorOjEwMkMyMDAwOTBGRjAxRTA5MEZEM0RGMEU1NEE5MEZEM0VGMEU0OTAxQworOjEwMkMzMDAwRkQzRkYwRTU2NDI0MDNGNTY0RTU2MzM0MDBGNTYzQUQxRQorOjEwMkM0MDAwNEJFNTRDODU2NDgyODU2MzgzQ0RGMEEzQ0RGMDkwRkY4NgorOjEwMkM1MDAwMDFFMDEyMDFCNzJDN0QwMTJDQTMwMjJDQ0QwMzJDRjcyRgorOjEwMkM2MDAwMDQyRDQ1MDUyRDgyMDYyREE4MDcyRENFMDgyREY0MDkyQgorOjEwMkM3MDAwMkUxQTBCMkU0MDBDMkU0RjgwMkU0RjgxMDAwMDJFQURCMQorOjEwMkM4MDAwRTU2NzIwRTcwNjdDMDUxMjI1NEEyMjdEQjc3RTM0N0Y2MgorOjEwMkM5MDAwMDI3OTQwN0FGRDdCMDE3NDA4NzgwMDEyMDMzRjdEMDhCOQorOjEwMkNBMDAwN0MwMDEyMjRCMTIyRTU2NzIwRTcwNjdDMDUxMjI1NEE0NAorOjEwMkNCMDAwMjJFNTRBQjQwMzAwNDAxMEI0MDUwMDUwMEJFNTRBN0ZGQQorOjEwMkNDMDAwMDBGRTdDMTAxMjMxOUEyMjdEMDA3QzA3MTIyNEIxMjI3MgorOjEwMkNEMDAwRTU2NzIwRTcwNjdDMDUxMjI1NEEyMkU1NEFCNDAzMDA5MQorOjEwMkNFMDAwNDAxMEI0MDUwMDUwMEJFNTRBN0YwMEZFN0MxMTEyMzEwNAorOjEwMkNGMDAwOUEyMjdEMDA3QzA3MTIyNEIxMjJFNTY3MjBFNzA2N0MzQQorOjEwMkQwMDAwMDUxMjI1NEEyMkU1NEFCNDA1MDI4MDAzRDM0MDBBRTRBRAorOjEwMkQxMDAwRkYwNEZFN0MwQTEyMzE5QTIyQjQwMTAyODAwM0QzNDBFMAorOjEwMkQyMDAwMEFFNEZGMDRGRTdDMDgxMjMxOUEyMkI0MDMwMDQwMTAyQQorOjEwMkQzMDAwQjQwNTAwNTAwQkU1NEE3RjAwRkU3QzEzMTIzMTlBMjI0NQorOjEwMkQ0MDAwN0QwMDdDMDcxMjI0QjEyMkU1NjcyMEU3MzREM0U1NkNDRgorOjEwMkQ1MDAwOTQ0OEU1NkI5NDAwNTAwNkU1NkM0NTZCNzAwNjdDMDI2OAorOjEwMkQ2MDAwMTIyNTRBMjJFNTRBQjQwMTAzQjM0MDBCQzNCNDAzMDA2MQorOjEwMkQ3MDAwNDAwOUI0MDYwMDUwMDQxMjMwNzAyMjdDMDcxMjI1NEEyNAorOjEwMkQ4MDAwMjIxMjI0RTgyMkU1NjcyMEU3MURFNTRBQjQwMzAwNDA0QgorOjEwMkQ5MDAwMTBCNDA1MDA1MDBCRTU0QTdGMDBGRTdDMTYxMjMxOUFGNAorOjEwMkRBMDAwMjI3QzA3MTIyNTRBMjIxMjI0RTgyMkU1NjcyMEU3MUQyQgorOjEwMkRCMDAwRTU0QUI0MDMwMDQwMTBCNDA1MDA1MDBCRTU0QTdGMDAxQgorOjEwMkRDMDAwRkU3QzE5MTIzMTlBMjI3QzA3MTIyNTRBMjIxMjI0RTgyRAorOjEwMkREMDAwMjJFNTY3MjBFNzFERTU0QUI0MDMwMDQwMTBCNDA1MDA3MgorOjEwMkRFMDAwNTAwQkU1NEE3RjAwRkU3QzE3MTIzMTlBMjI3QzA3MTJCNQorOjEwMkRGMDAwMjU0QTIyMTIyNEU4MjJFNTY3MjBFNzFERTU0QUI0MDNBQworOjEwMkUwMDAwMDA0MDEwQjQwNTAwNTAwQkU1NEE3RjAwRkU3QzE4MTIwQworOjEwMkUxMDAwMzE5QTIyN0MwNzEyMjU0QTIyMTIyNEU4MjJFNTY3MjBGMworOjEwMkUyMDAwRTcxREU1NEFCNDAzMDA0MDEwQjQwNTAwNTAwQkU1NEEyNQorOjEwMkUzMDAwN0YwMEZFN0MxNTEyMzE5QTIyN0MwNzEyMjU0QTIyMTI0RAorOjEwMkU0MDAwMjRFODIyRTU2NzIwRTcwNjdDMDcxMjI1NEEyMjEyMjQ5RgorOjEwMkU1MDAwRTgyMkU1NjczMEU3MjA5MEZGMDBFMDU0MUY3MDEwOTBGMworOjEwMkU2MDAwRkYwMUUwQjQ4MDA1MTIyNERGODAwMzEyMjRFODIyN0RGNAorOjEwMkU3MDAwMDA3QzA1MTIyNEIxMjI5MEZGMDBFMDU0MUY2MDA2N0MwNAorOjEwMkU4MDAwMDUxMjI1NEEyMkQzRTU2Qzk0NDhFNTZCOTQwMDUwMEI1QgorOjEwMkU5MDAwQzNFNTZDOTQwN0U1NkI5NDAwNTAwNjdDMDMxMjI1NEE0OQorOjEwMkVBMDAwMjJFNTRBQjQwNTA0MTIzMDcwMjI3QzA3MTIyNTRBMjIxQQorOjEwMkVCMDAwRTU2NzMwRTcwODdEMDA3QzA1MTIyNEIxMjI3QzA1MTIwRAorOjEwMkVDMDAwMjU0QTIyQjQyMDAyODAwM0QzNDAwMDgwMDAxMjJGOUVBNgorOjEwMkVEMDAwMjI3NTQzMDA5MEZGODNFMDU0MEZEMzk1NDM0MDI0RTVDRgorOjEwMkVFMDAwNDMyNEYwRjU4MkU0MzRGRUY1ODNFMEFENjRBRTYzQUZENQorOjEwMkVGMDAwNjIxMjAzMEYwNTQzMERFRDcwMDEwRThENjQ4RTYzOEYxQQorOjEwMkYwMDAwNjI4MEQxRTU0MzdEMDBGQ0MzRTU2QTlDRjU2QUU1NjkxMgorOjEwMkYxMDAwOURGNTY5RTU2QTQ1Njk2MDA2RTQ5MEZGODNGMDIyOTBCQgorOjEwMkYyMDAwRkY4MkUwNDQwOEYwRTRGNTY5NzU2QTQ5OTBGRDNERTBGMAorOjEwMkYzMDAwQjQwNTAyODAwM0QzNDA0MDkwRkQzRUUwRjU0M0I0MDU2NAorOjEwMkY0MDAwMDI4MDAzRDM0MDBBRTRGRjA0RkU3QzBCMTIzMTlBMjI3NAorOjEwMkY1MDAwQjQwMTAyODAwM0QzNDAwQUU0RkYwNEZFN0MwOTEyMzE2RAorOjEwMkY2MDAwOUEyMkI0MDMwMDQwMTBCNDA1MDA1MDBCRTU0MzdGMDBFMworOjEwMkY3MDAwRkU3QzE0MTIzMTlBMjIyMkI0ODAwMDQwMjNCNDgyMDBENQorOjEwMkY4MDAwNTAxRTdDM0Q3REZEMTIxN0Q1N0QwMDhDNjY4RDY1OTBCMQorOjEwMkY5MDAwRkQzRkUwNjAwNTEyMkY5RTgwMDU3QzAwMTIyRkMzMjJBQQorOjEwMkZBMDAwMjI5MEZGODNFMDU0N0ZGMDkwRkY4MkUwNDQwOEYwOTA4RAorOjEwMkZCMDAwRkY4MEUwNDQwOEYwMjI5MEZGODJFMDQ0MDhGMDkwRkY5OAorOjEwMkZDMDAwODBFMDQ0MDhGMDIyOEMyMzdEMDA4QzZBOEQ2OTc1NjQ1MgorOjEwMkZEMDAwM0Q3NTYzRkQ3NTYyMDExMjJGRDgyMjkwRkY4M0UwNTQ4NgorOjEwMkZFMDAwN0ZGMEU1NkE2NDQ5NDU2OTcwMDEyMkMzRTU2QTk0MDg4NworOjEwMkZGMDAwRTU2OTk0MDA0MDE1NzUyMTA4RTUyMTdEMDBGQ0MzRTVENQorOjEwMzAwMDAwNkE5Q0Y1NkFFNTY5OURGNTY5ODAwOTg1NkEyMUU0RjVBMAorOjEwMzAxMDAwNjk3NTZBNDk3NTIyMDBFNTIyQzM5NTIxNTAyNkFENjQ4MQorOjEwMzAyMDAwQUU2M0FGNjIxMjAxRTZGQ0U1MjIyNEY4RjU4MkU0MzRENworOjEwMzAzMDAwRkVGNTgzRUNGMDA1MjIwREVENzAwMTBFOEQ2NDhFNjNCQworOjEwMzA0MDAwOEY2MjgwRDNFNTIxNTQ3RjkwRkY4MUYwMjI4QzQ4N0ZFRQorOjEwMzA1MDAwMDBFRjI0RkI0MDE5RTRFRjc1RjAwN0E0MjQzRkY1ODI0QworOjEwMzA2MDAwRTQzNEZDRjU4M0UwNjU0ODcwMDJEMzIyMEY4MEUyOEZFMAorOjEwMzA3MDAwNDdDMzIyODU2QzZBODU2QjY5OTBGRjgyRTA1NEY3RjA0NAorOjEwMzA4MDAwOTBGRjgzRTA1NDdGRjAyMkMwMDBDMDAxQzAwMkMwMDY2MAorOjEwMzA5MDAwQzAwN0U1NzIyNDA4Rjg4NjA2NTMwNjdGN0NGRjEyMzBDRAorOjEwMzBBMDAwRkE3QzAwN0QwMEU1NzU2MDQ2RkY5MEZFOURFMDU0N0Y1MAorOjEwMzBCMDAwNkU3MDBGQzA4M0MwODJBM0UwRkRBM0UwRkNBMzE1NzU3MgorOjEwMzBDMDAwODAwN0EzQTNBM0RGRTY4MDI2REYwNkQwODJEMDgzODAxQgorOjEwMzBEMDAwMUVFMEY4QTNFMEY5QTNFMEZBRDA4MkQwODNFOEYwQTNFMQorOjEwMzBFMDAwRTlGMEEzRUFGMEEzQzA4M0MwODJBM0EzQTM4MERBMTIwRAorOjEwMzBGMDAwMzE5M0QwMDdEMDA2RDAwMkQwMDFEMDAwMjI4NUE4NzQyOQorOjEwMzEwMDAwNzVBODg4RUM3MDAyN0MzRjhDNzMyMkU1NzIyNDA4Rjg2NQorOjEwMzExMDAwNzYwMDEyMzFFNzgwRkJDMDAwQzAwMUMwMDJDMDA2QzBDQgorOjEwMzEyMDAwMDdBRTA0N0NGRjEyMzBGQUU1NzU2MDQyRkY5MEZFOUQwOQorOjEwMzEzMDAwRTA1NDdGNkU3MDBCQzA4M0MwODJBM0EzQTMxNTc1ODA3QgorOjEwMzE0MDAwMDdBM0EzQTNERkVBODAyNkRGMDZEMDgyRDA4MzgwRDgzRQorOjEwMzE1MDAwRTBGOEEzRTBGOUEzRTBGQUQwODJEMDgzRThGMEEzRTk5NQorOjEwMzE2MDAwRjBBM0VBRjBBM0MwODNDMDgyQTNBM0EzODBEQTc4MDgwNworOjEwMzE3MDAwMDg3OTE4MDk3QzAxRTY1NDdGNkU3MDA2NzYwMDc3MDBBNgorOjEwMzE4MDAwODAwNjA4MDkwQ0JDMDhFRTEyMzE5M0QwMDdEMDA2RDA5NworOjEwMzE5MDAwMDJEMDAxRDAwMDIyNzU3MzAwODU3NEE4MjJDMEYwQzA0RgorOjEwMzFBMDAwODJDMDgzQzNFNTc1MjRFODUwMDUxMjMxRTc4MEY0RUM1MgorOjEwMzFCMDAwNjAzMTkwMzRCNkU0OTNDMzlDNDAyOEMwMDQ3Q0ZGMTI3NQorOjEwMzFDMDAwMzBGQUQwMDQ0MzA0ODBFNTc1NzVGMDAzQTQyNDlERjUxRQorOjEwMzFEMDAwODJFNDM0RkVGNTgzRUNGMEVGQTNGMEVFQTNGMDA1NzU4NgorOjEwMzFFMDAwMTIzMTkzRDA4M0QwODJEMEYwMjJDMDA0N0MyMEQyOENDNAorOjEwMzFGMDAwRDI4REQ1MDRGREQwMDQyMjc1QTgwMDc1ODgwMDc1Qjg1RAorOjEwMzIwMDAwMDA3NUYwMDA3NUQwMDBFNEY4OTAwMDAwRjYwOEI4MDBGMgorOjEwMzIxMDAwRkIwMjAwMDBDM0VEOTQwMjUwMDQ3RDAzN0NFOEVDRjQ1MworOjEwMzIyMDAwRkNFREY0RkQwQ0JDMDAwMTBEOEM3OThENzgyMkMzRUMxMworOjEwMzIzMDAwOTRCQ0VEOTQwMjUwMDQ3RDA3N0NEMEVDRjRGQ0VERjREQQorOjEwMzI0MDAwRkQwQ0JDMDAwMTBEOEM3NzhENzYyMkVDNzAwMTIyQzA0NAorOjEwMzI1MDAwMDBFNTcyMjQxOEY4QTYwNEU1NzIyNDA4RjhDNjU0N0YyNQorOjEwMzI2MDAwRjZFNjMwRTcwM0QwMDAyMjEyMzFFNzgwRjRDMjhDODUwNQorOjEwMzI3MDAwNzY4Qzg1Nzc4QUQyOENDMEUwQzBEMEMwRjBDMDgyQzA4NgorOjEwMzI4MDAwODNDMDAwQzAwMUMwMDJDMDAzQzAwNEMwMDVDMDA2QzBBNgorOjEwMzI5MDAwMDcxMjFCMjhFNTcyMjQwOEY4RTY2MDI0RTU3MjI0MTA2MgorOjEwMzJBMDAwRjhBNjgxRTU3Mjc1RjAyMUE0MjQ5NUY1ODJFNDM0RkQzOQorOjEwMzJCMDAwRjU4Mzc4QThFNTgxMDRDMzk4RjlFNkYwMDhBM0Q5RkE2NAorOjEwMzJDMDAwNzQwODI1NzJGODA1NzIwOEU2NTQ4MDcwMENFNTcyQjQzMworOjEwMzJEMDAwMDdGMzc4MDg3NTcyMDA4MEVGRTU3MjI0MTBGODg2ODE5NAorOjEwMzJFMDAwRTU3Mjc1RjAyMUE0MjQ5NUY1ODJFNDM0RkRGNTgzNzgyOAorOjEwMzJGMDAwQThFNTgxMDRDMzk4RjlFMEY2MDhBM0Q5RkFEMDA3RDA2RAorOjEwMzMwMDAwMDZEMDA1RDAwNEQwMDNEMDAyRDAwMUQwMDBEMDgzRDBBNQorOjEwMzMxMDAwODJEMEYwRDBEMEQwRTAzMkMwRTBDMEQwQzAwMEMwMDEzOAorOjEwMzMyMDAwQzAwMkMyOEU4NTc4OEQ4NTc5OEJEMjhFNzgxOTc5MDkwNQorOjEwMzMzMDAwN0EwN0U3NzAwNEE2MDA4MDBCRTY2MDA4MTZFNjcwMDRDMgorOjEwMzM0MDAwRTc0NDgwRjcwODA5REFFQUU1NzM2MDEzMTRGNTczNzA0RgorOjEwMzM1MDAwMEVFNTcyMjQwOEY4NzYwMDEyMzE5M0QyOENEMjhERDAwQgorOjEwMzM2MDAwMDJEMDAxRDAwMEQwRDBEMEUwMzI3NTgxQTc3NTkwMDA5NgorOjEwMzM3MDAwNzU3OTMwNzU3OEY4NzU3NzYwNzU3NkYwMTIwNTNDMTJCRQorOjEwMzM4MDAwMzQwRjEyMTc4QjEyMzQzOTEyMzFGNTgwRTMyMkMwMDA0QQorOjEwMzM5MDAwN0MwMUVDMjQwOEY4RTY2MDA5MENCQzA4RjUxMjMxRTc2MgorOjEwMzNBMDAwODBFRUQwMDAyMkMwRjBDMDgyQzA4M0MwMDBDMDA2QzA0MgorOjEwMzNCMDAwMDdFRDI0MTBGODc2QjZFRDc1RjAyMUE0MjQ5NUY1ODI3QQorOjEwMzNDMDAwRTQzNEZERjU4M0MwODJDMDgzQTNBM0U0NzgwREYwQTNBOQorOjEwMzNEMDAwRDhGQ0VDNTQ3Rjc1RjAwMkE0MjQ4MkY1ODJFNUYwMzQyOQorOjEwMzNFMDAwMzRGNTgzRTQ5M0ZFNzQwMTkzRjU4MjhFODNFNDkzRkVCNworOjEwMzNGMDAwNzQwMTkzRkZEMDgzRDA4MkVGRjBBM0VFRjBFRDI0MDhBOAorOjEwMzQwMDAwRjhFQzQ0ODBGNkQwMDdEMDA2RDAwMEQwODNEMDgyRDAyQworOjEwMzQxMDAwRjAyMjc1NzIwMDc1NzUwMDdBMDg3OTE4NzgwODc2MDBDMAorOjEwMzQyMDAwNzcwMDA4MDlEQUY4RTQ3ODA4NzQ4MDQ0N0ZGNjc0MDFCQworOjEwMzQzMDAwNDQxMEY1ODk3NUI4MDhEMkFCRDJBOTIyNzU4MUE3RDJGQworOjEwMzQ0MDAwOEVEMjhDRDJBRkU1NzU2MDMyRkY5MEZFOURFMDU0ODA0NQorOjEwMzQ1MDAwNjAyNDc4MDg3OTA4RTA1NDdGRkE3QjAwRTY1NDdGQjU1MQorOjEwMzQ2MDAwMDIwMjdCRkYwOEQ5RjVFQjcwMENFQUYwMTIzMzhCQUQ0QQorOjEwMzQ3MDAwMDRBQzAyMTIzM0EyQTNBM0EzREZEMjEyMzFFNzgwQzVBQQorOjEwMzQ4MDAwN0MwMTdEMDAyMjA0RjUwNEU5MDRFRDA0RTEwNEREMDQ3RgorOjEwMzQ5MDAwRDkwNEU1MDRGMTA0OUQwNEExMDRDRDA0RDEwNDk5MDRFOAorOjEwMzRBMDAwOTkwNDk5MDRENTA0QjUwNEFEMDRCMTA0QTkwNEMxMDQ3OAorOjEwMzRCMDAwQkQwNEI5MDRDNTA0QzkwNEE1MTkwMTAzMDAyMjAwNDhDQworOjEwMzRDMDAwMDIwMDI0MEYxODBBMTA2NDBENjgwQzA1MDYwMjAzMDE5RgorOjEwMzREMDAwMDE4MTAxMDAwMEU3MDBDMDAwODAwMDYwMDA0MDAwMzA3MgorOjEwMzRFMDAwMDAxODAwMEMwMDA4MDAwNDAwMDIwMDAxMDAwODE4Mzg1MQorOjEwMzRGMDAwMjgwNjAyMTAwQTAyMDAwMDAwMDAwMDAxODExMDBBMDJFMgorOjEwMzUwMDAwMDAwMDAwMDAwMEZCRThGQkZBMTIwMTEwMDFGRjAwMDBDMAorOjEwMzUxMDAwMDg1MTA0NUY1MDE2MDEwMTAyMDAwMjA5MDIzNTAwMDE0MgorOjEwMzUyMDAwMDIwMEUwMDAwOTA0MDAwMDA1RkYwMDAwMDAwNzA1ODExQgorOjEwMzUzMDAwMDI0MDAwMDAwNzA1MDEwMjQwMDAwMDA3MDU4MjAyNDAyQQorOjEwMzU0MDAwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTg1MDMwMjAwMDE5NAorOjEwMzU1MDAwMDQwMzA5MDQyNDAzNTQwMDY1MDA3ODAwNjEwMDczMDAyQgorOjEwMzU2MDAwMjAwMDQ5MDA2RTAwNzMwMDc0MDA3MjAwNzUwMDZEMDA0OQorOjEwMzU3MDAwNjUwMDZFMDA3NDAwNzMwMDJBMDM1NDAwNTUwMDUzMDA2OAorOjEwMzU4MDAwNDIwMDM1MDAzMDAwMzUwMDMyMDAyMDAwNTMwMDY1MDA1NQorOjEwMzU5MDAwNzIwMDY5MDA2MTAwNkMwMDIwMDA1MDAwNkYwMDcyMDAzMgorOjEwMzVBMDAwNzQwMDIyMDM1NDAwNTUwMDUzMDA0MjAwMzUwMDMwMDBERgorOjEwMzVCMDAwMzUwMDMyMDAyMDAwMjAwMDIwMDAyMDAwMjAwMDIwMDBFNAorOjA0MzVDMDAwMjAwMDIwMDBDNworOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3RyX3NtY3RyLmJpbi5paGV4IGIvZmlybXdhcmUvdHJfc21jdHIuYmluLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc5NzQ1MQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3RyX3NtY3RyLmJpbi5paGV4CkBAIC0wLDAgKzEsNDc3IEBACis6MTAwMDAwMDBCQzFEMTIzQjYzQjRFOTAwMDAxRjAwMDEwMTAwMDIwNUEyCis6MTAwMDEwMDAwMTAwMDYwMzAxMDAwNDA5MDEwMDBBMDcwMTAwMDgwQkEyCis6MTAwMDIwMDAwMTAwMEMwMDAwMDAwMDBGMDEwMDEwMEQwMTAwMEUxMzc0Cis6MTAwMDMwMDAwMTAwMTQxMTAxMDAxMjAwMDAwNTAwMTUwMTAwMTYxOTNECis6MTAwMDQwMDAwMTAwMUExNzAxMDAxODAwMDAwRTAwMDAwMDAxMDAwMDU2Cis6MTAwMDUwMDAwMDA0MDAxQjAxMDAxQzAwMDAwNzAwMDAwMDBGMDAwMDRFCis6MTAwMDYwMDAwMDBCMDAxRDAxMDAxRTAwMDAwODAwMDAwMDAyMDAwMDNGCis6MTAwMDcwMDAwMDBDMDAwMDAwMDYwMDAwMDAwRDAwMDAwMDAzMDAwMDVFCis6MTAwMDgwMDAwMDBBMDAwMDAwMDkwMDA0NzhDNkJDMDE5NDA0OTM4MEIzCis6MTAwMDkwMDBDODQwNjJFOURBMUMyQzE1NTU1NTU1NTU1NTU1NTU1ODJCCis6MTAwMEEwMDAwQkU5RTVENTk1QzE5RDc3Q0VCQkEwNkUxQzA1RjY3NzEzCis6MTAwMEIwMDBDNjAyRkE5NjcwRTgxREMwMTcwRTAyRkE1ODdEQzA1RjlFCis6MTAwMEMwMDA3MkNFRUNBNEMzODQ5MDdBMzBDRDhENzkxOUU3NkMyNDdDCis6MTAwMEQwMDAyNzlDMDgzOTA3MzhBODRBNENFQTREOTg5QjI0NENDMDA1Cis6MTAwMEUwMDAyNkQzRTc1NDVBNERGMjRDMEMxMzIzNDk5MDMyNkVBNDk4Cis6MTAwMEYwMDBERjkzNzExMzc3MjZFMTI2RjgyNjBDNEMxMjI2MDgwOUE3Cis6MTAwMTAwMDA4MjgyNjBBOTMwNzkzNkIwQjJBOEE3NzI2NDhGOUIzMzFGCis6MTAwMTEwMDAzM0Y5QjgzOUQ1MTE3M0FBNzUyNjVEMjY1MTkzMkE0OTRBCis6MTAwMTIwMDA5NEM5OTU4OUJDNERDODlCODA5QkEwOTkwNjRDODYyNjk2Cis6MTAwMTMwMDA1ODlCQTQ5Qjk5Mzc2MjZDNjc5QjMzMzBCRjM2NjY2MUNFCis6MTAwMTQwMDBCRjM2RUNDNUJENjY4MjVBNTAzMUQ1OUQ5ODE4MjkzQzAyCis6MTAwMTUwMDA5ODg2NEMxNzI2M0UyQ0I4NjkzQjQ5MkVCNDA4NDMxQUEyCis6MTAwMTYwMDBBNEY5QjM1MUYxMTBGMzQzQ0QwODZGNjM3OUIzMzMwRUEzCis6MTAwMTcwMDAxMzk4NDk5ODA0REE3Q0UwNTI3OTMxMEM5ODJFNERBQ0YyCis6MTAwMTgwMDAyQzg0MTRFRTRDRkU2NzVFRTQ5QTc1MjlEN0E5MzUzQUEzCis6MTAwMTkwMDA5NDVCRDU5QjU4QjRBRjc1NjZBRjE0QTlFRjQwOTUyNTE1Cis6MTAwMUEwMDAwOEI5QUQ0MkZDRDhEOThDMzMwRTEzOTg2NjFFNDVBQzA1Cis6MTAwMUIwMDBCMDBDNDJEM0NDQTYxMjYyREVCNEIxODA0OTdEQTJERTdGCis6MTAwMUMwMDBCNDE4QzAyNDg0RTY1NEY1ODM0NjAxNjgxQTYzMENDNjRCCis6MTAwMUQwMDAxMjY0RkE0QzM1MUMyQzBFQUFBQUFBQUFBQUFBQUFBQTg4Cis6MTAwMUUwMDBBQUFBQUFBQUFBQURENzAyNzBFMDRDRjNBMUMxRDVDMEIxCis6MTAwMUYwMDAzQ0I5NjkzOTYwNEU1ODc3MDI2NzkzM0M5OUU0Q0YzODJGCis6MTAwMjAwMDAxQzk3MkU0MDFCOTAzMTQ2QTM1RTBFODgzNDZBMzVFMDYxCis6MTAwMjEwMDBFOEFBMzUxQUE5RjUxNTQ2QTNFQTdENEFBMzUxQUE5RjczCis6MTAwMjIwMDA3MDU0QTY1NzJFQjRDREM4QTMwQ0MxREFDNkUxQ0I3QTYwCis6MTAwMjMwMDBENDFDNjhGRkNGNTVBOEMwMkQ4NTExMTc0NDJBMzAwQjU4Cis6MTAwMjQwMDA0QTg4QzI0REI1MjBENTI2MDE2OTUxNjk1MjE5NTI2MEJDCis6MTAwMjUwMDAxNjk1MTY4Mjk2NTQ5ODA1QTU0NUYzREQ2QUY5MjgxODc3Cis6MTAwMjYwMDBFRjAwMzAzMDUxNEU0NDVEMTJEMTQzRTYxMjZGOUVCQTFBCis6MTAwMjcwMDBDQ0RGMjUwMzFERTAwNjA2MEEzMENDQTlFQjJEMDA4NjU1Cis6MTAwMjgwMDBBNjEyNjU0RjU2RDY2NTQ5NUYzREU4MzdDOTQwQzc3ODI1Cis6MTAwMjkwMDAwMTgxODI4QzMzMTg0OTgwQUU0MEM1MTgwNTlDNkQxOEM5Cis6MTAwMkEwMDA2NjBFRjNBMEM2MTI2MkRFRjUwNEI0QUM2QkM2MTk5MUZCCis6MTAwMkIwMDA3MzA1NDgyRTcyOTQ4MDczQTFDODQ3MzY2NjY0MkYzNjQyCis6MTAwMkMwMDA2NjY0MDc5OTAyOTE4RTcyRDEwRjlEMDYzMTczQTBDM0E3Cis6MTAwMkQwMDA1MTZBMUEyMEJGM0EwQzJDNzM4NzQzNUU2MDAyMjNGQ0RDCis6MTAwMkUwMDBFMEQ2MzVFRjlFRjVFRjkyODE4RUYwMDMwMzA1MTg2Njk4Cis6MTAwMkYwMDA0NUNDMEI0ODJFNzAwQTQwMzlEMEU0MjM5QjMzMzIxNzhCCis6MTAwMzAwMDA5QjMzMzIwM0NDODU0OEM3MzgxNEE1Q0UyOTdFRDI4MEQyCis6MTAwMzEwMDBBMUE4QjQ0ODg4MkZDRTgzMEIxQ0UxRDBENzk4MDQ4OEJECis6MTAwMzIwMDA4N0NFOTYzMTczQTU4RkYzODM1OEQ3QkU3QjgyQUY5MjY5Cis6MTAwMzMwMDA4MThFRjAwMzAzMDUxODY2NDVDQzE1MjBCOUM4MjkwMDQ1Cis6MTAwMzQwMDBFNzQzOTA4RTZDQ0NDODVFNkNDQ0M4MEYzMjA1MjMxQzgyCis6MTAwMzUwMDBFNDUwRDQ1QTE3ODgyRkNFODMxMEY5RDAyMzE3M0EwNENCCis6MTAwMzYwMDAzNUU2MDAyMjE2MzlDM0EzRkNFMEQ2MzVFMEJGRjQxODA5Cis6MTAwMzcwMDBGMjJENEQ0MzUxNkU1QTIyMUYzMEQ0MTdFNzQxOTE3MzJECis6MTAwMzgwMDAwNTQ4MkU3NzY5MDBFNzQzOTA4RTZDQ0NDODVFNkNDQzM0Cis6MTAwMzkwMDBDODBGMzIwNTIzMUNFRjRDNEUwNjA0Qzk5RTBCRkY0MUNCCis6MTAwM0EwMDA4RjIyRDRENDM1MTZFNUEyMjFGMzVBODJGQ0U4MzIyRUVFCis6MTAwM0IwMDA2MEE5MDVDRTEzNDgwNzNBMUM4NDczNjY2NjQyRjM2NjRCCis6MTAwM0MwMDA2NjQwNzk5MDI5MThFNzBBOTg5QzBBOUVCNTEyNUM3Q0QxCis6MTAwM0QwMDBDMzMxOEI5ODJBN0NEM0VEMzhFOUQzNEU3NEVENDk5RTE2Cis6MTAwM0UwMDAwQkZGNDE4RjIyRDRENDM1MTZFNUEyMkRFQjQ1MzM4Rjc4Cis6MTAwM0YwMDBGQ0Y3QTA1RjI1MDMxREU0MEUwNjBBMzBDQzBDRjNFQkRFCis6MTAwNDAwMDA0MERFNjFBODcwOTIwQTAwRTEyNDFFMDBFMTI0MUUwMDczCis6MTAwNDEwMDBFMTI0MUUwMEUxMjQxRTAwRTEyNDFFMDEwRjk4MkEwQjk2Cis6MTAwNDIwMDBGM0EwQzhCOUEyQTQxNzNBNjkwMEU3NDM5MDhFNzU0OEIzCis6MTAwNDMwMDA1RTcwNjkwMUU2MDA1MjMxQ0MxODE0QTVDQzA5ODI5NDkzCis6MTAwNDQwMDA3MzBDQTA5MUY1MjVDQzA3MDY4NDg0OUYzMEEyQTQ3RDZGCis6MTAwNDUwMDA1MDc1QTY2NTAxNEE4RUI0Q0NDNDM1NTQ3NTY2QTQ5NzEwCis6MTAwNDYwMDA3QTg5NTA1MzEzODAxOUUzNDk1QzZEQ0VBOTQwMzUwNjUzCis6MTAwNDcwMDA3OEQyNTcwNkYxQjMyQThEOTcyMzYyOTI1RDY5OTkxQzUxCis6MTAwNDgwMDA2QTM2RTZDRDQ2MTI2RjlFRTFBQkU0QTMwQ0MwREVBQzRCCis6MTAwNDkwMDBENDBEMjgxQkQwMTJBNTAwRjg0QkFEMzMyODA2QTBERUUyCis6MTAwNEEwMDAxNDk3M0E4OTVEQzAwREUzMDY5MDkyNUQ2OTk4NjZCOTJDCis6MTAwNEIwMDAxOTk1RTRBOENGOUQzMzE4NDlCRTdCODZBRjkyOEMzMzQzCis6MTAwNEMwMDAyNDE0MENGNDgzMjQyMUMyNzBCRkY0MThGMjJENEQ0MzgwCis6MTAwNEQwMDA1MTZFNUEyMjFGMzJBODJGQ0U4MzIyRTYwNUE0MTczQTY2Cis6MTAwNEUwMDA2OTAwRTc0MzkwOEU3NTQ4NUU3MDY5MDFFNjQyQTQ2MzM3Cis6MTAwNEYwMDA5ODAyMjk0QjlBMjk3OEU5NDA1MzEzODE4MTMyNjc4MjA3Cis6MTAwNTAwMDBGRkQwNjNDOEI1MzUwRDQ1QUU1MDA4N0NFMEQwNUY5RDg3Cis6MTAwNTEwMDAwNjQ1Q0MwMUE0MTczQTY5MDBFNzQzOTA4RTc1NDg1RTAyCis6MTAwNTIwMDA3MDY5MDFFNjU5QTQ2Mzk4MUM1Mjk3M0IzMDUyOEU3RDQ2Cis6MTAwNTMwMDAyQTA5MUY1MUVCQTRBNDBBQjk5NDg3QUVDNTMxMzgwMjI5Cis6MTAwNTQwMDBGRkQwNjNDOEI1MzUwRDQ1QUU1MDA4N0NFQTIwQkYzQUYwCis6MTAwNTUwMDAwQzhCOUExNjkwNUNFOUE0MDM5RDBFNDIzOUQ1MjE3OTQzCis6MTAwNTYwMDA5NTQ4MEYzMDBBOTE4RTYwRUIyOTczMDAwOTU0MDRDQTM0Cis6MTAwNTcwMDA4MjY1NTI2NUU0Q0EyMjY1NzI2NTA5MzJFMDk5NzI0QzVGCis6MTAwNTgwMDBDNEUwMEJGRjQxOEYyMkQ0RDQzNTE2Qjk0MDIxRjM4QTQxCis6MTAwNTkwMDA4MkZDRTgzMjJFNjBBOTA1Q0U5QTQwMzlEMEU0MjM5RDMyCis6MTAwNUEwMDA1MjE3OTk1NDYxOTkwMUU2NDBBNDYzOTgwNEIxODQ5ODY0Cis6MTAwNUIwMDAxOEVGMkQwMzA1MzEzODAyRkZEMDYzQzhCNTM1MEQ0NTVFCis6MTAwNUMwMDBCOTY4ODg3Q0UwNTA1RjlEMDY0NUNDODE0ODJFNzEzNDI3Cis6MTAwNUQwMDA4RjQ4MDE0ODE1MjEwNTIxRTkwQTUyMDNDRTVBNDYzOUIwCis6MTAwNUUwMDBDRjQ3OEU2MEFCMUFGMzUzNDNFQjM1MjRCODFCMzAwNzZCCis6MTAwNUYwMDAwOThBNzQyRjdFNDE3NDFFMUQwRDg3NDY0OUQ1OTVEMUY5Cis6MTAwNjAwMDBENUQ1QkJBOTRFODI5RDA1M0EwQTc0MTRFODI5RDA0MjdCCis6MTAwNjEwMDA3NDVCQ0U1MEM0MDc0NUJDRTIwQzQwNzQ1QkNFODMwNENGCis6MTAwNjIwMDBGOTk1NEQxMzYzNUU2RjMxM0JBMDhCQTJDNTM5OEQ3ODcwCis6MTAwNjMwMDAzQTIyQTAwMDZCQzFEMTU0NjAxNkQ5OTFBMkU3NDM4QzM1Cis6MTAwNjQwMDAyNERDMUNFMDUxMTczOTZCM0JDQzRCNDIyRTZCNTBCRjY2Cis6MTAwNjUwMDAzNjM2NjU0RjdBMTg1NTI1Nzg5ODIzRTc1MDNFRjM4MTUyCis6MTAwNjYwMDA0QzAyNkQzRTcxNTNBRjc4QTlENEE2MjlCMUJDRDk5OTdCCis6MTAwNjcwMDBCMjhFNjI4RjIyMkU3NTE2QjBCMkFCMjMyODE2NTQ1MjVBCis6MTAwNjgwMDAzMUJDRDk5OUIyOEU2NjE5MDIyRTc1MTY1MDJDQTlDOEE0Cis6MTAwNjkwMDBDNkY1MjBEM0U0N0Y0RjlDMEFENjE2N0Y5MEVFNENFQjM0Cis6MTAwNkEwMDBDRkUyODhCQTJGNDI4NkFFQkRFNUE3NTI5RjkzNjM3OTA5Cis6MTAwNkIwMDBFQjMzMDhGOTk0NTI0N0NEOTkyNTZGM0EwQzEzRTY1NTYwCis6MTAwNkMwMDAzNDRDNUE0REI1MjM5NUE1NDgxMTVBMEE0Mzk1QUMyQzg0Cis6MTAwNkQwMDBCQTI0MDU0OUIxQkNDQUE3NzI2QzZCQzVCREU4MzE2OUMzCis6MTAwNkUwMDA1MjVEMDYxMjY1M0VCMTUwNEM3RDRGQUMwQTMwMEIzNjYwCis6MTAwNkYwMDA2NDExNzM4QTgzOEU3NTEyOUY3QkQyOTk1OEVFODIyRTc1Cis6MTAwNzAwMDA3N0EwRTM5RDVENEZCQzJBNTMyOTUzREU5MzI0QkFCM0VGCis6MTAwNzEwMDAzNkFBNEFDNjc5RDRCOURFNjI1QTExNzM1MDUwQkYzNzJGCis6MTAwNzIwMDAzNjZGMTMyM0JBMEMyNENFQkRFMkE3NTJCMjhFNkI2MDkzCis6MTAwNzMwMDA2MjJFNzUxMzMwQUNBMDU5Q0E2NDYzNzlCMzMzNjUxQzVCCis6MTAwNzQwMDBDQzMyMDQ1Q0VBMkNBMDU5REYyMzFCRDQ4MzUyNDdERDUyCis6MTAwNzUwMDA3OTk2RDQ5RUIzNTI0QkEyNUExQThENUQ3QjgyQTc1MkQyCis6MTAwNzYwMDBCMjhFNjYxOTAyMkU3NTE2NTAyQzhDMzIxRDdCOEVBNzA4Cis6MTAwNzcwMDA1MkIxQkNEOTk5OTgwNERBN0NFMkFDRkU2NjE5MDIyRTFCCis6MTAwNzgwMDA2NTUwQkYzMzY2NjRGRTc0MTg4NjRDMTcyNkQ2MTY1MjIxCis6MTAwNzkwMDAzOTE4REU3QUNDQzIzRTY1MTQ5MUYzNjY0OTA4NkU4MzNGCis6MTAwN0EwMDAwOTMzQUYzMUVEMEQ5RDA2MTI2MjJBMzE4RDZERTc0MTlGCis6MTAwN0IwMDA4MjdDQ0FBNjg5ODcwOTJFMjlCMUFGMTAzOUQ2NjQ5N0UxCis6MTAwN0MwMDAzMDFENDI3NTkzNDQwMjhDMjREMjdBQjM1MEY2ODkwNUM5Cis6MTAwN0QwMDA0MzVFNjE5OEMwMkM5MjI1M0M4QjI0ODk0OTA1NDlFN0VBCis6MTAwN0UwMDAwQ0I5ODQ5OEI3QUQzMzQ0QUU1QTUxODY2MDlGMzhBOThFCis6MTAwN0YwMDBBMjZDNkJDNDhFRjQ1RTQ5NDYxMjYyREVCNENEMjE1Q0ZECis6MTAwODAwMDBCNEEzMENDMTNFNzIyOUEyNkM2QkM2MTI2MjQ3RjBFODE5Cis6MTAwODEwMDBDMzMyMDQzNTQwOTJBNDgyODgxMDkyN0NDQkQ0MkZBNDlBCis6MTAwODIwMDAwMjExODQ5OEI3QUQzMzQ0QUU1QTUxODY2MDlGMzhBOUZGCis6MTAwODMwMDBBMjZDNkJDNDhFRjQ1RTQ5NDQwODQ5M0U2NUVBMTdEMjQ3Cis6MTAwODQwMDAwMTA4QzI0QzVCRDY5OUE0MkI5Njk0NjE5ODI3Q0U0NTlCCis6MTAwODUwMDAzNDREOEQ3ODgxMDkyN0NDQkQxMjI4NkM1OEFGQjZGMzgyCis6MTAwODYwMDBBMEMxM0U2NTUzNDREOEQ3OTI4RTdENEJDMkZBNjEyNjEzCis6MTAwODcwMDAwNjNBQjM2QjAzMDU0OUU3MENCOTZGNUE2Njk1NUNCNDQ5Cis6MTAwODgwMDBBMzBDQzEzRTcwMjlBMjZFQTRERjkzNzExMzc3MjZFMUY5Cis6MTAwODkwMDAyNkY4MjZDNkJDOTQ3M0Y5MkYwQkU5ODQ5ODE4RUFDQzg1Cis6MTAwOEEwMDBFQzBDMTUyNzlDMzJGRjNENTZBRjkyOEI3QUQzMzVENTkxCis6MTAwOEIwMDBDQjRBMzBDQzEzRTcwMjlBMjZDNkJDOTQ3MzQxOTc5MTc5Cis6MTAwOEMwMDBGNDgzQ0UwNDIwNjI4QjA1MTY0OThDMjRDMEM3NTY5MDUxCis6MTAwOEQwMDBDMEMxNTI3OUMzMkU1QkQ1QTY3MkQyOTRGQUFENThDODY2Cis6MTAwOEUwMDBGQTlGNTRCMzMyNEJCOTU0QTY1MTg2NkI3OUQwNjA5RkFFCis6MTAwOEYwMDAzMjA1MzQ0RDhEN0E0RDFFN0FCMzUxMDBBOTNENTlBODY5Cis6MTAwOTAwMDA3QjQ0ODJBMUFGNEE4RDUyQTk1MjQxNDk0RjNBMkU0MEIxCis6MTAwOTEwMDBBNDk5NTBCRTkwMDg1Mjc5QzMyRTYxMjYyREVCNENEMDdECis6MTAwOTIwMDAxNUNCNEEzMENDMTNFNzAyOUEyNkM2QkM0OEZFMUQyNURCCis6MTAwOTMwMDA0NkE5NTRBOTIwQTRBNzlEMTcyMDUyNENBODVGNDgwNDlCCis6MTAwOTQwMDAyMzA5MzE2RjVBNjY4MEFFNUE1MTg2NjA5RjM4MTREMUEwCis6MTAwOTUwMDAzNjM1RTRBNzlEMTcyMDUyNENBMjQ1MEQ4QjE1RjQ5MTE2Cis6MTAwOTYwMDBERThCQzkyOEMyNEM1QkQ2OTlBOTVDQjRBMzBDRDZGMzI0Cis6MTAwOTcwMDBBMEMxM0U2NDBBNjg5QjFBRjE2RDRDQUE5MkUwMzY5NEJECis6MTAwOTgwMDA3MDlCMjk3ODEzQUVCM0FBODVENDQzNzUwOTNBQzlFQjk1Cis6MTAwOTkwMDAzNTI0QjgxQjMyOEUxMzQ4N0U0RUZENDBGRDQwRkQ0MDhECis6MTAwOUEwMDBGRDQwRkQ0MEZDMTNGNDIxRjkxNzQ1OEEzMDBCMzM1RkZECis6MTAwOUIwMDA4M0EyMkEzMDBCMzM1RjgzQTJBOEMwMkRCMzIwNzA5MjhDCis6MTAwOUMwMDAxMzlBREU3NDE4MjdDQ0FBNjg5QjFBRjcwNzQ1NTE4MDQyCis6MTAwOUQwMDA1QjY2NDcwNzM4QTgyM0U3NTExMTNGRTBFODg1NDYwMUU5Cis6MTAwOUUwMDA2RDk5MDYxMjY1NEY3QTIwMjRCQUIzMzIxNTI1N0JBRDc2Cis6MTAwOUYwMDAzMzc4QUUwRTczRDA0N0NFQTczMENDNDRGRjgzQTJBODg1Cis6MTAwQTAwMDBDMDJDRDk5MUMxRDExNTE4MDU5QjMyMDhCQTJDNTE4MDQwCis6MTAwQTEwMDA1OUIzMjA3MDkyRTI5ODg5RkRCQ0VFMTg5MEZDOEJBMjJECis6MTAwQTIwMDBDNTJCMEQ3ODNBMjJBNTYxQUYwNzQ1NTE4MDVCNjY0NDFFCis6MTAwQTMwMDA5RUIzNTI0QjgzQURDNzA5QkUxRjlGNzQ2NTVEMEExN0Y1Cis6MTAwQTQwMDA3Q0FCQTBDMjRDMzg0OTEyMkUzODQ5MDdBMzBDQzEzRURBCis6MTAwQTUwMDA2NTUzNDREOEQ3QURFNzAwMzI0QjlCMzMzNDRBMDMwMDhCCis6MTAwQTYwMDA5RDI1Q0U4MzI0QjgxOTk5OEMwMjEyNEJBMTk5RDhDMDI4Cis6MTAwQTcwMDAyNzQ5NzNDRkY5M0NGNDdDRTc5ODA0RTkyRTdGMzlFM0VBCis6MTAwQTgwMDA0RjQ2NTNDMDYwMTNBNEI5RTUzQzAzREU4RjlDRjMwMENFCis6MTAwQTkwMDA5QzZGQ0YzRTg1RjlBMzM2MDIxRTYwMzg5MjNFNjMxQUUyCis6MTAwQUEwMDAxMDlGQ0YxODEwOTJCQ0QwQTQwQ0RDQzAwRjlDOTczNEMwCis6MTAwQUIwMDA2MkI2RTdGM0YzQTVDRjE4NDIzNDFDQzJDQUZBOEU2OEI3Cis6MTAwQUMwMDA1MjA2QUYzQ0EzMERCRjlFNTBFMUQxNzNDQUUwM0FGQzgxCis6MTAwQUQwMDBDMTA5MUExRTZBNUM1QjhFNjM0RTc3NzNDQzYxNjdERDU5Cis6MTAwQUUwMDBFNjZDNDhEMUYzMUIyNDY5NTEwOEQ0NDIxQkY0NjdEMTRBCis6MTAwQUYwMDA4MDRFMkZEMDhDRDgzMDA5QzIxRTgwMUM0NjAxM0E0NzQ4Cis6MTAwQjAwMDBEMDMxQTEwNjAxM0E3RjQ2MzAyMTE4MDRFOTVFODQyOURDCis6MTAwQjEwMDAwMEMwMjdDREQwMDA3Qzk4MDRGOTJFODQ2MjhDMDI3RDIxCis6MTAwQjIwMDBCQTNFN0U0QzAyN0QyRThDNjEwODMwMDlGNDFEMDE2NUIxCis6MTAwQjMwMDA3MzAwOUY1MUQwODUyMDE4MDRGQUJEMTk0NjE4QzAyN0FDCis6MTAwQjQwMDBERkQxOTQzODRDMDI3RDE3NDY1NzAxMzAwOUY1RkEwMTgwCis6MTAwQjUwMDAwOTA2MDEzRTg3QTE0Qjg4QzAyN0RDNzQwRDM5RDMwMEZDCis6MTAwQjYwMDA5RjczRDAzMEIzOTgwNEZCQkQwNkM0ODMwMDlGNDdEMDY5Cis6MTAwQjcwMDAzNjQ4Q0MwMjcxQkYzRjlBMTdFNjNGMDgyMUU2OTJBNDlGCis6MTAwQjgwMDA4RjlBMTAzMUE3RjMxMEIxODRBRjNBQUNEQ0Y3NzNGMjRGCis6MTAwQjkwMDA1Q0M2MkFEQjlFN0U3RTk3MzEwODYzRDA3MzdCNDNBOEI4Cis6MTAwQkEwMDBFNjNEMzRFQUYzRTMxNUJGOUYxODVGNDVDRkU4OUY1RjRBCis6MTAwQkIwMDA5QTVCMDNEMEYzRDNDRTM3MUNEMDBGQkI5RTY4NzgzQjMzCis6MTAwQkMwMDBCQ0NBMzFFOEY5QTIwMjEyQTI3MzUxMDg2RkQxRjM0NkYwCis6MTAwQkQwMDAwMTM4QkY0MEZDMjMwMDlDMjFFODQ5NTE4MDRFOTFGNDJDCis6MTAwQkUwMDAyMTAzMTk4MDRFOUZEMDIxNjMwNjAxM0E1NjhDMDI3NDZFCis6MTAwQkYwMDBGRTc1NDk1RTYzRDM0QTU0NDIzNTEzQTdEMTgwNEU5NUEyCis6MTAwQzAwMDBFODFFOUE0QzAyN0NERDFCQjlFNjAxM0U0QkEwNjJBM0I0Cis6MTAwQzEwMDAwMDlGNkU4Q0ZDRjMwMDlGNEJBMDQyMThDQzAyN0QwNzE2Cis6MTAwQzIwMDA0M0RBMTMwMDlGNTFEMDNEMzQ5ODA0RkFCRDFDNjI4QzA2Cis6MTAwQzMwMDAwMjdERkQxQzYxNzMwMDlGNDVEMUY0NEU2MDEzRUJGNEZGCis6MTAwQzQwMDAyNUIwMzMwMDlGNDNEMUE3OUMxODA0RkI4RTg0MDNFOTkxCis6MTAwQzUwMDA4MDRGQjlFODQzQzEzMDA5Rjc3QTBBMzE5ODA0RkEzRTY3Cis6MTAwQzYwMDA4NDQwNDE4MDRFODJFNzQxODcwOTIzMDQyMzAwOUQwNThCCis6MTAwQzcwMDBDRTk2MUMyNDhDMTA4QzAyNzQxNzNBMDQzODQ5MTgyMTIzCis6MTAwQzgwMDAxODA0RTgyRTc0NTBFMTI0NjA4NDYwMTNBMEI5RDQxMUQ0Cis6MTAwQzkwMDBDMjQ4QzEwOEMwMjc0MTczQTgyMzg0OTE4MjExODA0RUE1Cis6MTAwQ0EwMDA4MkU3NTI4RTEyNDYwODQ2MDEzQTBCOUQ0MDFDMjQ4QzY2Cis6MTAwQ0IwMDAxMDhDMDI3NDE3M0EwOTBFMTI0NjA4NDYwMTNBMEI5ODM2Cis6MTAwQ0MwMDA2QTFDMjRCMEUxMTgwNEU4MkU2QjUwRTEyNTg3MDhDMEE3Cis6MTAwQ0QwMDAyNzQxNzMwNTQzODQ5NjFDMjMwMDlEMDVDQ0FBMUMyNDQwCis6MTAwQ0UwMDBCMEUxMTgwNEU4MkU3MDY4NzA5MkMzODQ2MDEzRTU0NDg0Cis6MTAwQ0YwMDBGOTQwOUQwNUNFNUExQzI0QjBFMTE4MDRGOUQxM0U3MDhDCis6MTAwRDAwMDAyN0NGMTNFNTQ0MkNBMDQyQ0I4OUYyMjEzQTBCOUMwQTUxCis6MTAwRDEwMDAxQzI0QjBFMTE4MDRGOUQxMEIzODEwQjNDNDIxMzkzNkMyCis6MTAwRDIwMDA1QzQyQzg4NDJCNzlEMDYxQzI3NDE1MjRCQUQzMzFFNUYyCis6MTAwRDMwMDA1OTA4MjkwOEUwNjY2MzQyOTUxMjgxMDAyOTBCQzE1MUM4Cis6MTAwRDQwMDAyNEI4MTk5OTkwMjI5MEI0MThBMDkxNDEwMTQxNDE0MUQxCis6MTAwRDUwMDA1MjgzQ0E0MDI4NjgyOTA4QkExNjEwOUM5OTBCNTY5NEU5Cis6MTAwRDYwMDA5MDUyMTU3NEMwMjcxQTJBRDI5MDI1RDMwMDlEMjhBQjIzCis6MTAwRDcwMDA0QTQyMTc0QzAyNzBENDg0MkU5ODA0RTEyQTQyMTc0QzQwCis6MTAwRDgwMDAwMjcwODI5MDRCQTYwMTM4NTE0ODQyRTk4MDRFMTVBNDZBCis6MTAwRDkwMDAyMTc0QzAyNzBGQTQxMkU5ODA0RTgyQUM4MEFDQTBBQ0I1Cis6MTAwREEwMDBBOTU5RTU2NDQ1NjVDQUM4NEFDRTBBQ0U0QUNFOTU5MThFCis6MTAwREIwMDA5NTk0OTU5MzI5MjVDMENDQ0M4OEE0OTc1NjM2NjQ3MjE3Cis6MTAwREMwMDA5MDU0OEE5QzQ1MDhCOUI3NjYxMjkzMDlDOUIyNzQ4RUNCCis6MTAwREQwMDBCQTYwMTNFNTM0OEVCQTYwMTNFNDc0OEVCQTYwMTNFNTFBCis6MTAwREUwMDA2OTFENzRDMDI3Q0EyOTFENzRDMDI3Q0VEMjI1RDMwMDFGCis6MTAwREYwMDA5RjM4QTQ0QkE2MDEzRTVFOTEyRTk4MDRGOTE1MjI1RDAyCis6MTAwRTAwMDAzMDA5RjNFOTEyRTk4MDRGOTA1MjI1RDMwMDlEQzU0ODdGCis6MTAwRTEwMDAyNUQzMDA5QzQ1Q0VDRDA5QzlCMjFBNDRCQTYwMTNFNzY4Cis6MTAwRTIwMDAzNDg5NzRDMDI3MUMyN0I3OUM4MEMyRDc3NjU5OUI5M0ZFCis6MTAwRTMwMDAwQzY0QzMxRDFCRjQ0NTRCQzdDNjNBMzdFODgxNEJDNzRBCis6MTAwRTQwMDBDNjNBMzdFODkxNEJDN0M2MzI2MThFQjNCQ0MzNEEyMjVCCis6MTAwRTUwMDBFNkI1MjQ5NzcxQzk4N0I0MzFBRTczQTJDRjM5RDI1RDlDCis6MTAwRTYwMDAwNDQ0NDJDMEQ2REU3MTA2MTZCQkRCQ0U4MzBDNjRDM0RECis6MTAwRTcwMDAxRDMxMTMwNEY5OTU0RDEzMzI5MzYzNUU2NjE0Q0MyOTJBCis6MTAwRTgwMDAyQTUzMzBBNjYxNENDMjk5ODUzQTcyQ0NDMjk5ODUwNjI0Cis6MTAwRTkwMDAxQkIzMEE2NjE0MTQyNDk5ODUzMzBBMDhCMTg2NjE0QzgxCis6MTAwRUEwMDBDMjg0MjE2ODczM0IzMEE2NjE0MTRFQTU5ODUzMzBBQzkzCis6MTAwRUIwMDA1OTc2NjE0Q0MyQjA4REQ2NjE0Q0MyQjAyQ0Y2NjE0Q0YzCis6MTAwRUMwMDBDMkIxOENBNTk4NTMzMEFDMEYyNENDMjk5ODU2MEYyODZBCis6MTAwRUQwMDA2NjE1OTIxQTE5ODUzMzBBQ0E4NTBDQzI5OTg1NjVDM0FECis6MTAwRUUwMDBEOTg1MzMwQUNFNzA4NjYxNENDMkIzOTc3MTBDOTkzQjk5Cis6MTAwRUYwMDBDQzgzNTgwQkVBNzc5RDA2NEFCRTA0NzQ2MEUwRDE0RTVECis6MTAwRjAwMDAzODRDM0VFRTNFRUUzRUVFM0VFRTMwQkJDQUUxMUY3NzgxCis6MTAwRjEwMDAxRjc3MUY3NzFGNzcyNzcwOEZCQjgwMEUxMUY3NzFGNzMwCis6MTAwRjIwMDA3QzZGM0NCMzM2MDJGQjhERTY1NTcwN0YyRDI0Njk1NUVFCis6MTAwRjMwMDA0RjU4QTkyMzFGNTRGNzhBOTUyNTJCNzUwQ0NDQUM1NjE2Cis6MTAwRjQwMDA1MUNDNTFFNDQ1Q0VBMjEyMzlDMEEwQUY1NjZBNDk3RkI4Cis6MTAwRjUwMDAwMjhDMDlGODBCRUJBRjU2NzY2NzUyQjI4RTY5QTcxMTc3Cis6MTAwRjYwMDA3M0E4QjFCQ0NBQTBBOTM2NTAyQzk4RTcwQUY1NjZBNEFDCis6MTAwRjcwMDA5N0UyNUEzMDI3QkFGNzgzNEVBNTMzMEE2NjE1OERFNkY1Cis6MTAwRjgwMDA1NTM5RDJBN0FDNTQ2MDE2NzAxQjcyOEU2MjhGMjIyRTE4Cis6MTAwRjkwMDA3NTE2MDJGQjhERTYwQTk1M0Q2MkEzMDBCNzAxQjU1M0I1Cis6MTAwRkEwMDBERTJBNTQ5NEFERDQzMzMyQjE1OTQ3MzE0NzkxMTczQUMwCis6MTAwRkIwMDA4ODQ4RTcwMkIwMTdEQzY3OUQ0QjhERTc1MkFBN0JENEM3Cis6MTAwRkMwMDBBQTkyQkRENjk5QkM1NjAyRkI4Q0YzNjY2NkM2RjM2NjQwCis6MTAwRkQwMDA2NjYyOTkyQUY4MTg2ODcwQjA4QTBENTU1NTU1NTU1MkIxCis6MTAwRkUwMDAzMkUxNDA1QzM4MEJFQTlCODcwMTdEQzA1RjcwMTdEQzAzCis6MTAwRkYwMDAwNUY1REM5QjAxN0Q2MTREODBCRUE3Nzk4MkEyMUY1MDYzCis6MTAxMDAwMDAxNTJBOEY4QjFDRTVBNTEzODQ1OEU3MDI5MTU0MDUwMjFECis6MTAxMDEwMDA0QkJEMjIxQTk0N0Y5QzFBQzA1RjQyMUEyMUQxODA1OTdECis6MTAxMDIwMDBDMDZEMUMyQzBBODM1NTU1NTU1NTU1NTU1NTU1NTU1NTZDCis6MTAxMDMwMDA1NTU0MUNCODVDNkUxNzlDMkYzODVFNzBFN0I4NUU3MDE0Cis6MTAxMDQwMDBCQ0UxNzlDMkYzODVFNzBCQ0UxNzlDMjk5QzI5OUMyOTJBCis6MTAxMDUwMDA5QzIzMEY1ODE0RUUzNTc3MjYyMTkzMDVDOUIwMTdEMjdCCis6MTAxMDYwMDAxRDE4OEEyMTkzMDVDOUIwMTdEMTg3QUMwQTc0MEZBRTM5Cis6MTAxMDcwMDBGNTVBODJBM0U0M0EzMTE0QkJENzU5OTk3NEEyMTkzMEI2Cis6MTAxMDgwMDA1QzlCMDE3RDE4N0FDMEE3NDBGODQzRDQ2Mzg5MjVEMEMyCis6MTAxMDkwMDAxMEQ2MUM2QTEwRjU1NTg5MjVEMTUxNjYxRjUxRjU5MTVFCis6MTAxMEEwMDA0OTJFODkxNTk4NkFBM0UwOEE5NDY1NjQwRTEzMTczODRGCis6MTAxMEIwMDBBODg2NEMxNzI2QzA1RjQ2MUVCMDI4NjMxRjA4N0E4QzhFCis6MTAxMEMwMDA3MTI0QkEwMjFBRDAwRDQyMUVBQUIxMjRCQTJBMkQzMUI3Cis6MTAxMEQwMDBGNTFGNTg3NDkyRTg4NzVBNjM1MkRFRjQ1MTY5NEEzRTBDCis6MTAxMEUwMDAwOTY5NDY1MEYwRTEzMTczMDU0NUJENTk4RDhCNEE3QzQ1Cis6MTAxMEYwMDBEM0VEMzhFOUQzNEU3NEVENDQzMjYwQjkzNjAyRkE1QjcxCis6MTAxMTAwMDBERThBMkQyOUQwRTEyMUY1QTM5MjIxRjIxOTMwNUM5QkQyCis6MTAxMTEwMDAwMTdEMjFGNUEwQzYwMTY3MDFCNDQ1Q0VBNTEyMzlENEUxCis6MTAxMTIwMDAxQzA1RjQ0MEExQzJDMzUwNkFBQUFBQUFBQUFBQUFBQUU0Cis6MTAxMTMwMDBBQUFBQUFBQUFBQUE4MUFGODY5RjE5MUJFNzgxRjM2NTZBCis6MTAxMTQwMDBGMjgwQkU3MDE3REZERjM4MEJFQjBEQzM4MEJFQTcwRjM4Cis6MTAxMTUwMDA5NTRGNUE5NEMwMkNEOEIxQTdDRTVBMTE3M0E4M0FDMjUxCis6MTAxMTYwMDBDQ0I2MzAxN0RDNkYzNUE5ODA0REE3Q0UyQTE4NzlDNUNCCis6MTAxMTcwMDA0OURFNjFBODIyRTc1MDMzRjk5ODY0MDhCOTk1NDJGQzJBCis6MTAxMTgwMDBDQ0Q5OTUzRDYyQTI0OEQ0NDhFNzAyODhCOUMxQTBFMzEyCis6MTAxMTkwMDA5RDRFNjJFNkNDQzY2QkNFODMxMEM5ODJFNERBQzJDODJCCis6MTAxMUEwMDAxRUMzQjkzNjAyRkFBOUVCNEUzMDMwRkEwREYwQTlFQkE2Cis6MTAxMUIwMDA0MEI5MEZBQTdBRDJDMkM4RkFBN0FENDEwQTQ3RDUzREI1Cis6MTAxMUMwMDA2OEFDRjFGNTRGNUE5NzU0N0Q0RkE4QUE1NTFGMTE3MzdCCis6MTAxMUQwMDA1QUIwMTdERTVENTlBOTI1RDA1NTJBNDZCQ0I4MjJBRUIzCis6MTAxMUUwMDA0NTI5M0UxNEZBRTE5OTk0Q0E0QUJFM0RENjk5OTI1RENBCis6MTAxMUYwMDAxNTE3QzhEN0RDMTUxNzhBNDAxRjBBOUVBQ0M5NjU0OTY4Cis6MTAxMjAwMDA1QzFEMTA2ODRBM0U1QkRFODMxNjk1ODBCRTkxNzQ1ODYzCis6MTAxMjEwMDBBNDAwN0MzOEU3NTYzMDE3REY3NUE2NjQ5NzQ1MjA5REZCCis6MTAxMjIwMDAwMzVGNzA1NDVFMjkxREYwQTlFQUNDODY1NDk1QzFEMUE0Cis6MTAxMjMwMDAwNjgzMEZBQTdCRDA2NTQ5NDVCREU5NjJEMjkxREYwNEUwCis6MTAxMjQwMDA1RDE2MjkxQzdENEZBQzFBNDcxQUE5RjU2NzY2NTMyODBECis6MTAxMjUwMDBCN0JEMkM1QTUyM0JFM0RENTlBOTI1RDFBOEFDMDg2Qjg4Cis6MTAxMjYwMDBFRTA4QUJDNTIwMkY4NTRGNTY2Njc1NDk1QzFDMTgxRENFCis6MTAxMjcwMDA4MUMyNjQwNUYwODBCRTM1NUNEMDE3QzI1NUYwOTU3QzA0Cis6MTAxMjgwMDAyNTVGMDgwQkUxMDE3QzdCQUIzNTI0QkExMDU1OTMxQTFFCis6MTAxMjkwMDBGQjgyMkFGMTQ4RDdDMkE3QUIzMUIyQTRBQzYzOUQ0QTA2Cis6MTAxMkEwMDA4RDdDN0JBQjM1MjRCQTEwNTQzMDhEN0RDMTE1NzhBQzY0Cis6MTAxMkIwMDA2RjVBOTQ2MDFBRTM3OUQ0QUE0Rjg1NEY1NjY2RDU0OTgwCis6MTAxMkMwMDA1OEM3M0E5NTQ5RjA0NUQxNjI5NDg2QkMxRDEzRDI5MDE3Cis6MTAxMkQwMDBGRkNGN0E4M0YyNTAzMURFMDA2MDYwQTExNzM1QTg1RjNFCis6MTAxMkUwMDA5QjFCMzcwNzQ0MUEzMDBCMzgwREJDMUNFMEQwNDdDRThGCis6MTAxMkYwMDBBMEFBN0FBMTk4NkE5Mjk1M0Q2ODMxODA1QjgwREFBOUFDCis6MTAxMzAwMDBFRjQxOTUyNTE2RjdBNThCNEFDNjc5QjMzMzYwMkZBQTBFCis6MTAxMzEwMDA5RUIxNTE4MDU5OUVDQUE3QUMwQTMwMEI2N0IyQURENUI5Cis6MTAxMzIwMDBEQTkyNUQxN0EzMDBCMzJEOTU2RTA4QTk1OEExMTczQTVDCis6MTAxMzMwMDA4QjAxN0Q1NEY3OEU5NTI1MDgxQ0UwNTYwMkZCQzFEMTI4Cis6MTAxMzQwMDAxNTE4MDU5MjZCM0MxRDEyMjhDMDJDQTU2QzExNzAxNzQ2Cis6MTAxMzUwMDBCMjM4NEQ4MEJFRTAyRkI0RUM0QUVEQjM5RTAyRkI4MDY0Cis6MTAxMzYwMDBCRUUwMkZCMTM5OTMzRTZERTcxMDYwOUYzMkE5QTI2Q0E5Cis6MTAxMzcwMDAwNUY0NDBFNjBBOTUzRDZBMjMwMEIzODBEQUE3RDYyQTMxCis6MTAxMzgwMDAwMzBENzAxN0QyMkU3NjI5NEZCQzU0QTY1MTZGN0E1ODkwCis6MTAxMzkwMDBCNEFDMDVGNDhCQTJGNDBFMzUwRDQ5MkVCNENDMThBNUNGCis6MTAxM0EwMDBDOEY4NEE5NzIzRTEwNTJFNDdDMjhBNUM4Rjg1Njk3Mjg3Cis6MTAxM0IwMDAzRTFGNEFDMzU1MUY1NjQzMzI4Q0EzNUU2MEE4NDVDRURDCis6MTAxM0MwMDAwRDYwMkZBMzg0OUREOEYwMTdEMjJFMEUxQjIzODREODM2Cis6MTAxM0QwMDAwQkVCODlGMzgwQkVFMDJGQkIzOTg1REYyMjAzRTcwMUU5Cis6MTAxM0UwMDA3REMwNUY3MDE3RDExNzM4MTQ1QkQ2QTI3NDBENEI3QThECis6MTAxM0YwMDBCMzMxOTY5NDZCQ0MzNTIzRDc0OTQ4MTU3MzI5MEY1RENCCis6MTAxNDAwMDA4QUMwNUY0RDc5ODQzNTgwQkU4ODFDQzM1MjlGNTk2ODVECis6MTAxNDEwMDBDMDJDRTAzNkFBN0JDRDRBOTJCRUYzODE0QTdENUI1OTRGCis6MTAxNDIwMDA5NENBMUMyNEVFQzc4MEJFODgxQ0MzNTI5RjU5NjhDMDUyCis6MTAxNDMwMDAyQ0UwMzZBQTdCQ0Q0QTkyQkVGMzgxNDM4NDlDN0IzODU0Cis6MTAxNDQwMDAwQkVCQUY3MEQ0RUE1MzAwOUI0RjlDNTQzMEYzOEE5NDVCCis6MTAxNDUwMDBGQUI2QjMyOTk0MjJFNjFBODVGOUIwNTk5M0Y5RDJDNEExCis6MTAxNDYwMDAzMjYwQjkzNkIwQjM5MEQ5NzcyNjFDMjcyMkU4OTZCNEZCCis6MTAxNDcwMDAyM0VBOUVCNTExODA1OTY1ODYyMDczOTY4RDc5QUQ1ODAzCis6MTAxNDgwMDAwQkU5MTc0NDhBNEEwN0Q3N0E4MkExOTBGQUVGMDE1NEYwCis6MTAxNDkwMDBCQTUwRDQ1OTFFMkNFOUYzOEE5OTg1NkIwQjIzMTU5NzAyCis6MTAxNEEwMDA3MjYxMTczMEQ0MkM3Mzg3NDhBQTAyODEyNURFOTEwRDEyCis6MTAxNEIwMDA0QUMwNUY3RUQyODBBNTNFQjJEMEM4NkI4MEJFODgxQzc5Cis6MTAxNEMwMDBFQTA5MTc0NDFBMzcxQTkxNzQ1OEEzNzFBRjA3NDQ1NEE0Cis6MTAxNEQwMDA2RTM1RTBFOEFBNjQwRjkwRkFEMDYzMDBCMzgwREEyQzhFCis6MTAxNEUwMDA3Mzg3NDhBQTAyODEyNURFOTEwRDRBQzA1RjQ4QkEyNzVBCis6MTAxNEYwMDBBMzAwQjcwMUI3NEY5Q0I0NkJDQzM1MTZGNTY2NjMyRENFCis6MTAxNTAwMDAyOTFFQkE0QTQwQUI5OTQ4N0FFQzUwOEI5QzA4MjJGQ0MxCis6MTAxNTEwMDBGOUIyNTUzRDYyQTkyMzUxMjM5QzBBM0M3MzBENDQ1Q0VBCis6MTAxNTIwMDBFMTUwNzFDRUExMUZFNzE1NkIwQjI1RUQwQjkzNjAyRkRBCis6MTAxNTMwMDBBQTlFQUMzNjY1NDk1RjdBMjA1MDA4N0ZFRjM5MTQ0OTdFCis6MTAxNTQwMDAwMTExODEwNDYwNDBDQzU5QzBBRDIzRUI0MUIwODFGMjYwCis6MTAxNTUwMDAzQTQxQUE1MDQzRTRENDg2NTRBMDg3QzE1MkNBOTMwMUE5Cis6MTAxNTYwMDAzMjU0OUQyNDAyMDAwMDUyQUYxNjQ2QTc5MTY3MDhCNDdBCis6MTAxNTcwMDAwNDUxRjE2NTE5QjQ2RTJEQzBBRDQ5MDA5MjU3MUI3NDJBCis6MTAxNTgwMDA0NTVGMjM1MUI3NDQwQTEwMDZBMzZFOEI2QjA4MUYxOUUxCis6MTAxNTkwMDBEMUU2ODA4MjgwNTQwNDJBNDU5MUE5RTQ1OUMyMkQwMUU0Cis6MTAxNUEwMDAxNDA0NTBEM0ZDNTU4NDYxRDk4MDUxMkZFMjFGNDY1RjRCCis6MTAxNUIwMDA0MEUwMjAxNTRBQkM1OTFBOUU0NTlDMjJEMDExNDhDQkM4Cis6MTAxNUMwMDBFODE0MDgwMTU0MTVFMkM4RDRGMjJDRTExNjgwOEE0NkNBCis6MTAxNUQwMDA1RjUyN0NEOUE4Rjg4OEQwNUEzQ0QyNUM1QjgwREFBN0VECis6MTAxNUUwMDBENjVBMDg4NkE0NUQxN0EwQzM1MjJFODhBODIyMUY1MzdFCis6MTAxNUYwMDBFQURBQ0NBNjUwRTEyNzc2M0MwNUY1NEZBQjZCMzI5OTgxCis6MTAxNjAwMDA0Mzg0OUM3QjM4MEJFOTI3QUNENDkyRTAwRURBMzg0RDRBCis6MTAxNjEwMDA4MEJFRTY3RDUwQkE1MUFFNjZFRkJDREM3Qjg3MUUwMjExCis6MTAxNjIwMDBGQTkzRTZDRDQ3QzQ0M0NEMEYzNDlEQTMwMEIwNTUwMUQ2Cis6MTAxNjMwMDBBRTAzODQwNENFMDFEMEUxNzAwMjgwMEU4OUU5MjIxRjNFCis6MTAxNjQwMDBFMEU4OTZCMDExRjRDMkNFMDM2QTQ0MkRDMDZENDgwNTlGCis6MTAxNjUwMDBCODBEQTMwMEI3NzZENURFQjE1MERDN0Q3N0JDNTRCQUE3Cis6MTAxNjYwMDA1MjdGNTgxNDM0MEY5QUYzODE1ODBCRUFFRjU4MTQ2MEU0Cis6MTAxNjcwMDAxNkE1NkMyRUY3ODE0QkE1NkY3RDVERUVCNTJFOTU4MDdFCis6MTAxNjgwMDBCRUYwNzNCRDA0N0NFQUZFRUI0Q0RFMjk1M0RENkE1NEU4Cis6MTAxNjkwMDA5NEE5RUEwQThDMDJENjRDM0MwNUY0MDBFQUNENTZBRjc4Cis6MTAxNkEwMDBDMDQ3RDI5QzhEMjlDQUUwMkZBRUJENzU5OTlENEFGOURECis6MTAxNkIwMDBFRjUxN0M5NDBDNzc4MDE4MTgyOTJBRjhFMEU4QUEzMEJBCis6MTAxNkMwMDAwQjJBOTg3QzFEMTE1MTgwNTk1NEMzNTFGNTFCMzMyNEFBCis6MTAxNkQwMDBCQjgyQTUxOTVDMUQxMDI4QzAyQzlBQzdDMUQxMjI4Q0QxCis6MTAxNkUwMDAwMkM5OTQ2NDVDMENENjhFMTM2MDJGQjgwQkVBMzBFMzA5Cis6MTAxNkYwMDBDMDVGNDhEQzc4MEJFODAwRTNDMDVGNkMzOEQ1MkUzNTVFCis6MTAxNzAwMDA0RjVBOEE2MUFBOUY1NjFCMzI5OTQ2NDJDODAxMEM0NTFFCis6MTAxNzEwMDBDRUE1MTdFNkM2Q0VBOUVCMTUxNjQ2QTI0NzM4MTQ0MzQ4Cis6MTAxNzIwMDAyNjIyRTczRDYwMkZBQTlFQjUxMkUwN0YwMTdERTNFNzA4Cis6MTAxNzMwMDAwMjkzRjk5NTQ0NUNFNUEwRTM5RDRBN0Y5QzU0QTlFQjk0Cis6MTAxNzQwMDA1MTA1NDZCOUZDQzAxQjIyMkU2NDU0MkZDRDQ2Q0NBN0IwCis6MTAxNzUwMDBENTg2Q0NBNjUwNTVDNjQ1Q0U1QTBFMzlENEE3RjlDNTY0Cis6MTAxNzYwMDA0QTlFQjUxMTgwNTlDMDZEQ0ZFNjAwRDkxMTczMjJBMUYwCis6MTAxNzcwMDA3RTZBMzY2NTNFQUMzNjY1MzJCMDE3REQzRTcyRDI3OTkwCis6MTAxNzgwMDAzMTBDOTgyRTRDMjA3MzJBOEZGMzhBQURFNzQxODI3QzZFCis6MTAxNzkwMDBDQUE2ODlCNTg1OUZCMEYwMTdENTFGNTQ1NDI1MUFBODNECis6MTAxN0EwMDBGRjJBOTQ2NTExRDc0OTQ0RDVDQ0EwNTVEOEFFMEU4OEYwCis6MTAxN0IwMDAxNDYwMTY0RDYzMjJFMDcyODYzODREODBCRUUwMkZCODZCCis6MTAxN0MwMDAwQkVFMDJGQjgxMzhGMDE3RDdENzFFMDJGQUZBRTNDMEZFCis6MTAxN0QwMDA1RjRDODU5MDAyMThDODVCODBEQTMwMEI3MDFCNEMyMjdFCis6MTAxN0UwMDBEMzRDMzMwMzhDMkU0QzQzMjZEMEY1NjM2NkQwOTVBNzlCCis6MTAxN0YwMDBDRTQ1MzMwQUQ2MTY0MjM4NkVFNENFQkQ1OTJDRDJBQjU0Cis6MTAxODAwMDBCQTk0OURFNjFBQjAxN0Q1NEY1QThCMDkxQTg4QjlDNUY0Cis6MTAxODEwMDA0MjQ3MzBENDMyMTY3Mjg4NjVCRDU5OTkyNUE1NjAyRjhDCis6MTAxODIwMDBCODYwRjMwOEI3NEExQThGQUIwRDk5NDY1MUFGMzhBODg0Cis6MTAxODMwMDA4RTkwNjUxMzUyMThBMDU0QjE0MjJFNjFBODQ4RTcyRDJFCis6MTAxODQwMDAxNkY3QTgwNUE1NjAyRkE0NzVEMjUxMzU3MzI4MTU3NjEzCis6MTAxODUwMDAyQjgzQTIwNTE4MDU5MzU4QzhCODA2Mjg2Mzg0RDgwQkIzCis6MTAxODYwMDBFRTAyRkI4MEJFRTAyRkEwNDNBNzAxN0Q0Q0UzQzA1RkVBCis6MTAxODcwMDA3MDE3REMwNUY0NjQyREMwNkQxODA1QjgwREE1QkQ2QUEwCis6MTAxODgwMDAyMzg2QUE5RUI1MTFBNDZBQTNFQThBOEQyM0UxMTczODlDCis6MTAxODkwMDAzNDY5NzE5ODQ1QTY5ODZBM0VBQzM2NjUxOTQ2QkNFMjMzCis6MTAxOEEwMDBBMjNBNDE5NDRENDg2MjgxNTJDNTE2RjdBODhCNEE1NDFBCis6MTAxOEIwMDBGNUE4OEMwMkRDMDZEMTAzOUNCNEE5RUUwQTk1MjUyQTcyCis6MTAxOEMwMDA3QUFENDYwMTY3MDFCNUQ3QUMwQTMwMEI2QzQ5MzVFNkY1Cis6MTAxOEQwMDBCNTY3RjMwMDZDODhCOTkxNTBCRjMxMUIzMkE3Qjg2ODY3Cis6MTAxOEUwMDA5NTI1N0JBRDMzNzhBN0NEM0VEMzhFOUQzNEU3NEVENDdFCis6MTAxOEYwMDAyMkU3MDY4NDhFNjBBOEZGMzhBQjgzOUMyQTA4RjlENEJGCis6MTAxOTAwMDAyMDYzQkMxQTA2MEFDMDVGNDY0MkRDMDZEMTgwNUI4MEI5Cis6MTAxOTEwMDBEQTIyRTYxQTg0OEU3MkQxNkY1QTgwODcxQUFBN0FENDk0Cis6MTAxOTIwMDA0OEM4RDU0N0Q1MTUyMzIzRTExNzM4MzQ4Q0JBNEI3QkVCCis6MTAxOTMwMDBENDAyRDI4QzIyREMwNkQ1MUY1NjFCMzI4Q0EzNUU3MURBCis6MTAxOTQwMDA1MTFEMjBDQTI2QTQzMTQwQTk2MkIwMTdERjlFRjRCNzBBCis6MTAxOTUwMDBDOTQwQzc3ODAxODE4MkI4MzgzOTQ5MUMyNkMwNUY3MEY4Cis6MTAxOTYwMDAxN0Q0QUJFMTJBRjg0QUJFMTJBRjhGOTc0RkNCQTcwMTJECis6MTAxOTcwMDA3RERBODBBQTkxNjQ3RjRBODFENTIyQzhGRTgyODAyNUMzCis6MTAxOTgwMDA0OEIyM0VCQkRDMzUyRTk0MDdFODhBOUMwM0UyNEJBNUE3Cis6MTAxOTkwMDA3N0FCQjMzMkU5NEJCRDU5ODY4NDk3N0EwNEJBNTNFMUU5Cis6MTAxOUEwMDAzMkVGNTBENEU2MzU1M0VCMDI5Q0M3RDc3QUIzMzBEMjJFCis6MTAxOUIwMDA1REVBMDJFOTQ0NUQxNjI4QzAyQ0UwMzY5MTc0NDU1OTcxCis6MTAxOUMwMDAxOEQ1NEZBQzBBQzQzNTMwOEIzODY5MkJCRDU5OTg2OThFCis6MTAxOUQwMDAyRUY1MTJFOTU4Njc0QUVGNTBENThFM0UxQ0E0QjBDRUMyCis6MTAxOUUwMDA5MzIxNkUxQTQ4MUZBMjJBQzMwRDU3N0FCMzBEMDkyRUYwCis6MTAxOUYwMDBGNDQzNUQyODhCODMyMDkyMzg0RDgwQkVFMDJGQUMxN0Q2Cis6MTAxQTAwMDA0OUIzQTU4MkU5M0VFOTM2NzRFMDJGQTZDRTlDMDVGNEUxCis6MTAxQTEwMDBDMjJDOEM1MjU3N0FENDhENDhGQUVGNTBENUFFMzU1MzNDCis6MTAxQTIwMDBFQjAyODYyMUFBRUY1NjY2MUE0QkJENDRCQTUwQzRFOUIwCis6MTAxQTMwMDA1M0VCMDI4NjgxRjVERUExQTg2MjFGNURGRUEyNUQyOTNGCis6MTAxQTQwMDA3N0E4NkE2MThENDBGRDExNTMwQzZBQTdENjA1MzBDNzhGCis6MTAxQTUwMDBENzdGQTk1NzRBNURFQjQ4MUIwQzdDOEI5RDhBNTNFRkJGCis6MTAxQTYwMDA2Njk0Q0E1NEY1QTBDNjAxNkUwMzZBOUY1Njc2NjUzMjI1Cis6MTAxQTcwMDA4QjdCRDJDNUE1NjAyRkFBN0Q2NUEzMDBCNzAxQjRDODMyCis6MTAxQTgwMDA1QTA3OEZFRDAxRDUyNzkxNjcwMUI0OEI5QzU0MUM3M0M1Cis6MTAxQTkwMDBBODg0NUNDMTUwQkYzNjU2NjBBQjhDOEI5QzU0MUM3M0MxCis6MTAxQUEwMDBBODg0NUNDMTUwQkYzNjU2NkMwNUY1NTNENkEyMzAwQkU2Cis6MTAxQUIwMDAyOTVCMTlGQ0Y2OTQ0NUNGMTUwQkYzM0NCMzJBN0FDNTg0Cis6MTAxQUMwMDA0NjAxNjQ4QTMxMjM5QzBBNURFQTM0MzMyRTk1QzdDRUUxCis6MTAxQUQwMDAyQTRGRTY1MDIwQjkzMTBDOUJFRjM5MTQ0NUNFNDUwNzBCCis6MTAxQUUwMDAxQ0VBNDY4N0FCMUIzNjg0QTc1RUFDOTY2NzUyQjAxN0RDCis6MTAxQUYwMDBEQ0ZFN0I0QTIyRTc4QTg1Rjk5RTU5OTc3QThEMENDQkNBCis6MTAxQjAwMDBBNTI3RjNBMDQ0MzI2MEI5MzdERTcyMjg4QjlDOEEwRTc5Cis6MTAxQjEwMDAzOUQ0OEMwNUY3RTdCODJBRjkyODE4RUYwMDMwMzA1Nzg4Cis6MTAxQjIwMDAwNzQ0MEE1MDhGRjA3MzkxNDExRjNBOTA0NUMwQkIxODhCCis6MTAxQjMwMDBFMTM2MDJGQkZCOUUwMkZBRUVFN0Y1Q0YwMTdEMTA1Qzc5Cis6MTAxQjQwMDBGMDE3RDEwNUNGMDE3RDUzRUIyRDE4MDVCODBEQTY0MjM2Cis6MTAxQjUwMDBEQzA2RDMxNzM1QTg4QjlDMEEwRTM5RDQwQ0ZFN0I0QUMxCis6MTAxQjYwMDAyMkU2NTUwQkYzMzFCMzYwMkZCQzdDRTJBNEZFNjU1MTM1Cis6MTAxQjcwMDAxNzM4MTQxQzczQTgxOUZDRjY5NDQ1Q0NBQTE3RTY2MzExCis6MTAxQjgwMDA2NjBBQjhDQzg1QTE1OEY2QTIzNTQ4NDg3RjRBODk5NTlGCis6MTAxQjkwMDAyMTIxRkQwNTAyNTQ5RTQ1OTEwRTNDMDVGNTA3NDA1NTU3Cis6MTAxQkEwMDA0ODUyM0U4NkEwNzU0ODUyM0VCNTAwNEE5QzAwNkJDNzFECis6MTAxQkIwMDBDRTQ1MjdGMzJBODQzNzM1REVBMEFCMjMxQUFFRjU4MzUyCis6MTAxQkMwMDA1OTE4RDc0M0RFMkFEMDk0RUJERTA1M0E5NTlGQ0NDMzUzCis6MTAxQkQwMDAyMDQ1Q0NBQTE3RTY2NkNDNDMyNjRGRTc0MTIyMkU3MDVCCis6MTAxQkUwMDA2ODM4RTc1M0UwMkZBQkJDMTJEMkU5NTgwQkVBQTdBRDM3Cis6MTAxQkYwMDA0NUExMUZDMDVGNzgzOUM4QTA4RjlENDgxQzI0RUVDNzNGCis6MTAxQzAwMDA4MEJFQkFGNTZENjY0OTc3MEQ0RUE1MzAwOUI0RjlDNUE5Cis6MTAxQzEwMDA0MzBGMzhBOTNGOUQwMkZCQ0U0NTExNzM5MTQxQzczQTRFCis6MTAxQzIwMDA5MTlGQ0Y2OTQ0NUNGMTUwQkYzM0NCMzJBN0FDNTQ5MDQ1Cis6MTAxQzMwMDA4RDQ0OEU3MDI5NzdBOEQwQ0NCQTU2QjBCMjlEOEM4NkQwCis6MTAxQzQwMDA0QzE3MjY3NzI2MUMyNzFDMjQ5RTIzNjFCRThFMTI0RjFDCis6MTAxQzUwMDAxMTg3MUNFQTVDMDVGNUQ3Qjg2QTc1Mjk3N0FCMEQ5OTMxCis6MTAxQzYwMDA3NEE1NEY3MkEwQUE0QUM2RjM2NjY2QzYzOTgyQUY3NURDCis6MTAxQzcwMDBBNjZGMTQ2QkNFMDU3MDczOTY4MjNFNzUyOEUxM0FBNzY1Cis6MTAxQzgwMDBBRDQ0NjAxNjUyQjYxRDdBQjZCMzI0QkI4NkE3NTI5OEVGCis6MTAxQzkwMDAwNERBN0NFMkExODc5QzU1Rjc5Q0I1QUMyQzk1MzNCOTRFCis6MTAxQ0EwMDAzMTA1RDk1M0Q2QTIzMDBCMjk1QjAyMkU2MTVBMTdFNkIzCis6MTAxQ0IwMDA5Q0IzMkE3QUM1NDAyMUE4OTFDRTA1MjdGM0E1ODg2NDU0Cis6MTAxQ0MwMDBDMTcyNjU0RjU4MTQwQzhEN0VGMzgxNDQ1Q0VGNDFDNzlGCis6MTAxQ0QwMDAzQUJFMDJGQUE5RUFDRUNDQTkyOTUzRDZBMjQ2NDdERERDCis6MTAxQ0UwMDA3QUMwQTMwMDg2RTI5QjI5Nzg4QjgxMDk5ODcwOUIyOTkyCis6MTAxQ0YwMDA3OTVERDk3MkVEOTRCQ0I5NzYxMzNCMkE1REIyOTc5NUE0Cis6MTAxRDAwMDAyRUQ5NEJDQTdENUI1OTk0Q0ExQzI0RUVDNzk0QkNDMDIzCis6MTAxRDEwMDAyNkQzRTcxNTBDM0NFMkFDRkU3QjRBMjJFNzhBODVGOTI0Cis6MTAxRDIwMDA5RTU5OTc3QThEMENDQkE1MjdGM0EwNDE3MjYyMTkzNzgzCis6MTAxRDMwMDBERTcwMjg4QjlDOEEwRTM5RDQ4RDBGNTYzNjZEMDk0RTc1Cis6MTAxRDQwMDBCRDU5MkNDRUE1NkIwQjIyRDk5REM5QjI5N0JFRjM4MThDCis6MTAxRDUwMDA0QTdENjVBMzAwOTM4RjY3Mjk3OEMyNERDMUQxMDY4MjYxCis6MTAxRDYwMDAzMUFGMDczODM0MTFGM0E4MkE5RUE4NjYxQUE0QTU0RkVDCis6MTAxRDcwMDA1QTBDMTE4RkFBN0JEMDY1NDk0NUJERTk2MkQyQjE5RTRDCis6MTAxRDgwMDA2Q0NDQzYxOTg3MDlDMzhFNzU0MTFGM0FBNTEzRDU1NTZBCis6MTAxRDkwMDA1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NUYzCis6MTAxREEwMDA1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NUUzCis6MEUxREIwMDA1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NUFDQzkwQzgKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS90dHVzYi1idWRnZXQvZHNwYm9vdGNvZGUuYmluLmloZXggYi9maXJtd2FyZS90dHVzYi1idWRnZXQvZHNwYm9vdGNvZGUuYmluLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRiMjI0NwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3R0dXNiLWJ1ZGdldC9kc3Bib290Y29kZS5iaW4uaWhleApAQCAtMCwwICsxLDgyMCBAQAorOjEwMDAwMDAwMDhBQTAwMTgwMDAzMDgwMDAwMTAwMDAwMDE4MDE4NUYxMworOjEwMDAxMDAwMDAwMDAxODA3NzE4MkFFQjZCRjgwMDE4MDNGRjY4RjhERQorOjEwMDAyMDAwMDAxOEZGRkVGN0I4RjdCRUY2QjlGNEEwRjZCN0Y2QjVCQworOjEwMDAzMDAwRjZCNkYwMjAxOURGRjEwMDAwMDFGODREMDFBQkY2Qjg3QgorOjEwMDA0MDAwRjAyMDE5REZGMDczMDFBNTdFRjgwMDEyRjAwMDAwMDEyNgorOjEwMDA1MDAwNDdGODAwMTE3RTkyMDBGODAwMTFGMDAwMDAwMTdFRjhEMAorOjEwMDA2MDAwMDAxMUYwMDAwMDAxNkM4OTAxOUFGN0I4RUVGQ0YwMjA1NQorOjEwMDA3MDAwRkZGRkYxMDAwMDAxRjg0RDAxQkZGMjczMDFCOTRFMDIxQworOjEwMDA4MDAwRjQ5NUY1RTM1NjAyN0UwMDExMDBGQTRDMDFCNzZCMDNCQworOjEwMDA5MDAwMDAwMUY2QjhFRTA0RjA3NDBEQTdGMDc0MDFDNTRBMTEyMgorOjEwMDBBMDAwNEExNjcyMTEyQUU2MTBGODAwMTFGQTQ1MDFEQkY0OTVBMAorOjEwMDBCMDAwRUVGRjQ4MTFGMDAwMkFDNjg4MTZGNDk1RjQ5NTEwRUU2QworOjEwMDBDMDAwRkZGRkY0RTM2Q0U5RkZGRjAxRDUxMEY4MkFFN0Y4NDVEQworOjEwMDBEMDAwMDFFMjEwRjgyQUU3RjRFM0YwNzQwMUZGRUUwMThBMTY1QQorOjEwMDBFMDAwOEExMUZDMDBGN0I4RTkyMDRBMTEwOUY4MkFFNkY4NEUwRgorOjEwMDBGMDAwMDFGM0YyNzMwMUZERjQ5NUU4MDE3MjExMkFFNjQ5MTE0QQorOjEwMDEwMDAwODBFMTJBQzZGMzAwMDAwMUU4MDA4MUY4MkFFNjhBMTE5RQorOjEwMDExMDAwRkMwMEY0OTVGMDczMDIwMDEwRjgyQTBGRkMwMDRBMTE1RAorOjEwMDEyMDAwRjA3NDAyMDI4MEY4MkExMDczMDgwMDA5NDBGODJBMTVCQQorOjEwMDEzMDAwODJGODAwMTFGNDk1NzcxMDAzRThGNUE5RjgzMDAyMjE1MAorOjEwMDE0MDAwNzFGODJBMTAyQTE1NTZGODJBMENGMEUzNEVGODJBMTZGMAorOjEwMDE1MDAwRTgwMDRFRjgyQTBDOEExMUZDMDA0QTA2NEEwNzRBMUQ5QworOjEwMDE2MDAwNjhGODAwMDc3RDNGNjlGODAwMDc0MDAwNjhGODAwMUQ0NworOjEwMDE3MDAwRkZGQzZCRjgyQTBGMDAwMThBMUQ4QTA3OEEwNkY0RUI0MAorOjEwMDE4MDAwRUVGRDc2RjgyQTBGMDAwMDc2MDAwMDAwRkI4MDE5NEM4NworOjEwMDE5MDAwRjQ5NUU4MDA4MEY4MkExMUY5ODAxOTA3ODBGODJBMEVGMgorOjEwMDFBMDAwRjk4MDE2NjY3NjAwMkExMjEwRjgyQTExRjk4MDE4RTNGMQorOjEwMDFCMDAwMTBGODJBMEVGOTgwMTY2NjEwRjgyQTBFRjk4MDE2ODdCNAorOjEwMDFDMDAwRUUwM0ZDMDA0QTExRjZCOEY0OTVGMDIwODAwMDExRjgxNworOjEwMDFEMDAwMkE1QUY4NEQwMjkzMTFGODJBOUZGODRDMDI3Qzc3MTJBNAorOjEwMDFFMDAwMkEzOTQ5MTIwMUY4MkE5Rjg5MTFGNDk1RjQ5NTcxODFGMQorOjEwMDFGMDAwMDAxMTZDRTFGRkFCMDI5MzZCRjgyQTlGMDAwMUU5MDU0NworOjEwMDIwMDAwMDFFMjAwMDM4MUY4MkFBMEYwNzMwMjk1NzIxMTJBOUY3RgorOjEwMDIxMDAwRjQ5NTEwRTEyQTM5NkJGODJBOUYwMDAxMTFGODJBOUYwMgorOjEwMDIyMDAwMDlGODJBQTBGODRDMDI5Mzc2RjgyQTVBMDAwMDc2RjhDQQorOjEwMDIzMDAwMkE5RjAwMDA3NkY4MkFBMDAwMDA4ODExRjQ5NTQ4MTE0MgorOjEwMDI0MDAwOEExMUZDMDA0QTExRUVGRTEwRjgyQTVBRjg0NDAyQjI1NAorOjEwMDI1MDAwNzZGODJBNUEwMDAxRjA3NDAyNTg4ODExRjQ5NTc3MTA0NAorOjEwMDI2MDAwODAwMEY0QTlGODMwMDJCMjQ4MTFGMDMwMDBGRjgwMDA5RAorOjEwMDI3MDAwMTBGODJBNUJGOTgwMThENkVFMDI4QTExRkMwMEY0OTU3QQorOjEwMDI4MDAwNEEwODRBMDk0QTBBNEEwQjRBMEM0QTBENEExMDRBMTFCRQorOjEwMDI5MDAwNEExMjRBMTM0QTE0NEExNTRBMTY0QTE3NEExNzRBMTk2MworOjEwMDJBMDAwNEEwRTRBMDY0QTA3NEExQTRBMUQ0QTFCNEExQzY4Rjg1RgorOjEwMDJCMDAwMDAwNzdEM0Y2OUY4MDAwNzQwMDA2OEY4MDAxREZGRkM1QgorOjEwMDJDMDAwNDgxODY4RjgwMDE4RkZGRUY0OTVGNDk1NEEwOEVFRkQwQQorOjEwMDJEMDAwRjA3NDAyNTg4ODExRjQ5NTc3MTA4MDAwRjRBOUY4MzA3MgorOjEwMDJFMDAwMDJFRjQ4MTFGMDMwMDBGRjgwMDAxMEY4MkE1QkY5ODAxRgorOjEwMDJGMDAwMThENkVFMDM4QTE4RjQ5NThBMUM4QTFCOEExRDhBMUE1RQorOjEwMDMwMDAwOEEwNzhBMDY4QTBFOEExOThBMTc4QTE3OEExNjhBMTUxMAorOjEwMDMxMDAwOEExNDhBMTM4QTEyOEExMThBMTA4QTBEOEEwQzhBMEIwRgorOjEwMDMyMDAwOEEwQThBMDk4QTA4RjRFQjRBMTE3NzExMkEzOTc2ODFGOAorOjEwMDMzMDAwMDA1NTc3MTIyQTE4MTBFMjAwMDE4MEUxMDAwMTEwRTI1NgorOjEwMDM0MDAwMDAwMjgwRTEwMDAyNzZFMTAwMDMwMDAwNzZFMTAwMDQ5MworOjEwMDM1MDAwMDBBQUYwNzQwMjk4OEExMUZDMDA0QTExODgxMUY0OTVFMQorOjEwMDM2MDAwRjQ5NTEwODE2RkY4MkE5RTBDODhFOEZGMThFMTAwMDFDRgorOjEwMDM3MDAwMUFGODJBOUVGMDMwMUZGRjgwRjgyQTlFOEExMUZDMDA4RQorOjEwMDM4MDAwNEExMTc3MTEyQTM5NzY4MTAwNTU3NzEyMkExODExRTIxRAorOjEwMDM5MDAwMDAwMTgxRTEwMDAxMTFFMjAwMDI4MUUxMDAwMjc2RTE0OQorOjEwMDNBMDAwMDAwMzAwMDI0ODA4NkZFMTAwMDQwQzk4RjAzMDAwRkZFMQorOjEwMDNCMDAwODBFMTAwMDU3NkUxMDAwNjAwQUFGMDc0MDI5ODhBMTEzNworOjEwMDNDMDAwRkMwMDRBMTE3NzExMkEzOTc2ODEwMDU1NzcxMjJBMThENAorOjEwMDNEMDAwMTBFMjAwMDE4MEUxMDAwMTEwRTIwMDAyODBFMTAwMDI3MQorOjEwMDNFMDAwNzZFMTAwMDMwMDA0NDgxMUYwMDAwMDA0ODgxMkY0OTUzRgorOjEwMDNGMDAwNzcxMzJBNzZFOTAwRTU5OEYzMDAwMDAxRjZCODQ4MEI3OAorOjEwMDQwMDAwMDhGODJBM0NGODQzMDM3MTc2ODIwMEFBRjA3NDAyOTgzNworOjEwMDQxMDAwOEExMUZDMDA0QTExRUVGMDg4MTFGNDk1RjQ5NTcxODE2RgorOjEwMDQyMDAwMDAxNDcxRTEwMDAxMDAxNTQ5MTFGMzAwMDAwMjg5MTE2NworOjEwMDQzMDAwRTc4MjZERUEwMDA0RTc4MzZERUIwMDBBNzcxQTAwMDU5NgorOjEwMDQ0MDAwRjA3MjAzQUExMTgxRjJFODgwODJFOUZGMTlFMTAwMDE0QworOjEwMDQ1MDAwRjFBMDgxOTIxMUUxMDAwQ0YyRTg4MDgzRTlGRjE5RTEzQgorOjEwMDQ2MDAwMDAwREYxQTA4MTkzNkRFOTAwMDI0ODE4NDkxODcwMDA1MQorOjEwMDQ3MDAwMDAxNUYwMDAwMDA0RjMwMDAwMEE4MDAxODEwMkYyNzQwQworOjEwMDQ4MDAwMEU1NEY0OTU0ODE0RUUxMDhBMTFGQzAwNEExMUYwNzREMQorOjEwMDQ5MDAwMEM1RTgwRjgyQTVDNzcxMjJBMzk3NjgyMDA1NTc3MTEzMworOjEwMDRBMDAwMkExODEwRTEwMDAxODBFMjAwMDExMEUxMDAwMjgwRTI2MAorOjEwMDRCMDAwMDAwMjc2RTIwMDAzMDAxQ0Y2Qjg1NkY4MkExNkYwRjBBNworOjEwMDRDMDAwRjBGODgwRTIwMDA3NTZGODJBMTZGMUYwRThGRkYyODAxMworOjEwMDREMDAwODBFMjAwMDY1NkY4MkExNkYxRjhFOEZGRjI4MDgwRTI4MgorOjEwMDRFMDAwMDAwNTU3RjgyQTE2RThGRkYyODA4MEUyMDAwNDU2Rjg2QgorOjEwMDRGMDAwMjc2Q0YwRjBGMEY4ODBFMjAwMEI1NkY4Mjc2Q0YxRjA3MgorOjEwMDUwMDAwRThGRkYyODA4MEUyMDAwQTU2RjgyNzZDRjFGOEU4RkY3NQorOjEwMDUxMDAwRjI4MDgwRTIwMDA5RThGRjU3RjgyNzZDRjI4MDgwRTI2MQorOjEwMDUyMDAwMDAwODU2RjgyNzZBRjBGMEYwRjg4MEUyMDAwRjU2Rjg1RAorOjEwMDUzMDAwMjc2QUYxRjBFOEZGRjI4MDgwRTIwMDBFNTZGODI3NkFBMQorOjEwMDU0MDAwRjFGOEU4RkZGMjgwODBFMjAwMEQ1N0Y4Mjc2QUU4RkYzMworOjEwMDU1MDAwRjI4MDgwRTIwMDBDNzZFMjAwMTMwMDAwNzZFMjAwMTJFNgorOjEwMDU2MDAwMDAwMDZGRjgyQTVDMEM1ODgwRTIwMDExRThGRjE4RjhEMAorOjEwMDU3MDAwMkE1QzgwRTIwMDEwNzZFMjAwMTcwMDAwNzZFMjAwMTZBNgorOjEwMDU4MDAwMDAwMDZGRjgyQTlFMEM1ODgwRTIwMDE1RThGRjE4Rjg2QQorOjEwMDU5MDAwMkE5RTgwRTIwMDE0NzZFMjAwMUIwMDAwNzZFMjAwMUEzOAorOjEwMDVBMDAwMDAwMDc2RTIwMDE5MDAwMDcwRTIwMDE4Mjc2RTc2RTI4MworOjEwMDVCMDAwMDAxRjAwMDA3NkUyMDAxRTAwMDA3NkUyMDAxRDAwMDAzMQorOjEwMDVDMDAwNzZFMjAwMUMwMDAwNzZFMjAwMjAwMEFBRjA3NDAyOTg5NworOjEwMDVEMDAwOEExMUZDMDA0QTExRUVGRTEwRjgyQTM4Rjg0NTA0RURBNQorOjEwMDVFMDAwNzcxMjJBMTgxMEUyMDAwMjg4MTFGNDk1NzcxMDAwMDg5QgorOjEwMDVGMDAwNkRFOUZGREZGNkE5RjgyMDA0NzVGMDczMDQ3REYwMTBCMworOjEwMDYwMDAwMDAyMUYwMDAxQTgzNDgwODdFRjgwMDA4RjRFMkYwNzQzNAorOjEwMDYxMDAwMDMwQUYwNzMwNEVBNDgxMkYyNzQwMzIzRjAwMDAwMDRBMgorOjEwMDYyMDAwRjI3NDAzMzZGNDk1RTgwMEYwNzMwNEVBNzcxMTJBMTg5RgorOjEwMDYzMDAwRThGRjZGRTEwMDA0MEQ0ODE4RTEwMDA1RjI3NDA5Njk1NAorOjEwMDY0MDAwRjQ5NUYyQTBGMDc0MDMzNkYwNzMwNEVBNzcxMTJBMThENworOjEwMDY1MDAwRThGRjZGRTEwMDA0MEQ0ODE4RTEwMDA1RjI3NDA5NDE1QworOjEwMDY2MDAwRjQ5NUYyQTBGMDc0MDMzNkYwNzMwNEVBRjA3NDAzNTdDMworOjEwMDY3MDAwRjA3MzA0RUExMEY4MkExQ0YwNzQxMkE0RjI3NDAzMzYyMgorOjEwMDY4MDAwRjQ5NUU4MDBGMDczMDRFQTQ4MTJGMjc0MDM4MEYwMDA3NQorOjEwMDY5MDAwMDAwNEYyNzQwMzM2RjQ5NUU4MDBGMDczMDRFQTEwRjhFRAorOjEwMDZBMDAwMkExQ0YwNzQxMkM1RjI3NDAzMzZGNDk1RTgwMEYwNzM1NgorOjEwMDZCMDAwMDRFQTc3MTEyQTE4RThGRjZGRTEwMDA2MEQ0ODE4RTFGNworOjEwMDZDMDAwMDAwNzcxRTEwMDA1MDAxMkYyQTA3MDAwMDAxMjgwMDEyNQorOjEwMDZEMDAwMTBFMTAwMDRGMDc0MEU3QUYyNzQwMzM2RjQ5NUU4MDAyOQorOjEwMDZFMDAwRjA3MzA0RUFGMDc0MDNCQzc2RjgyQTM4MDAwMEVFMDJENgorOjEwMDZGMDAwOEExMUZDMDA0QTExNzcxMTJBMzk3NjgxMDA1NTc3MTI0OAorOjEwMDcwMDAwMkExODEwRTIwMDAxODBFMTAwMDExMEUyMDAwMjgwRTFGRAorOjEwMDcxMDAwMDAwMjc2RTEwMDAzMDAwOTQ4MTFGMDAwMDAwNDg4MTI4RAorOjEwMDcyMDAwRjQ5NTc3MTMyQTg2RTkwMEU1OThGMzAwMDAwMUY2QjhGRQorOjEwMDczMDAwNDgwQjA4RjgyQTNDRjg0MzA1MEE3NjgyMDBBQUYwNzRCMAorOjEwMDc0MDAwMDI5ODhBMTFGQzAwNEExMTc3MTEyQTM5NzY4MTAwNTVFNgorOjEwMDc1MDAwNzcxMzJBMTgxMEUzMDAwMTgwRTEwMDAxMTBFMzAwMDI4MgorOjEwMDc2MDAwODBFMTAwMDIxM0UzMDAwMzgxRTEwMDAzNDgxMTc3MTFFNworOjEwMDc3MDAwMDAwMEY4NEQwNTQ0RjAwMDAwMDQ4ODEyNDgxM0YwMDAxMgorOjEwMDc4MDAwMDAwNDg4MTNGNDk1RjQ5NUU1OTg2RDkxRjZCODQ4MTEzNgorOjEwMDc5MDAwMDhGODJBM0NGODQzMDUzQUYwMjAyQTM5NDkxMUY1MDBCNworOjEwMDdBMDAwODkxMUY0OTVGNDk1NzZFMTAwMDQwMEFBRjA3NDAyOTg5QQorOjEwMDdCMDAwOEExMUZDMDA0QTExNzcxMTJBMzk3NjgxMDA1NTc3MTI4NworOjEwMDdDMDAwMkExODEwRTIwMDAxODBFMTAwMDExMEUyMDAwMjgwRTEzRAorOjEwMDdEMDAwMDAwMjc2RTEwMDAzMDAwQzQ4MTFGMDAwMDAwNDg4MTJDQQorOjEwMDdFMDAwRjQ5NTc3MTMyQTdBRTkwMEU1OThGMzAwMDAwMUY2Qjg0QQorOjEwMDdGMDAwNDgwQjA4RjgyQTNDRjg0MzA1NkE3NjgyMDBBQUYwNzQ5MAorOjEwMDgwMDAwMDI5ODhBMTFGQzAwNEExMTc3MTEyQTM5NzY4MTAwNTUyNQorOjEwMDgxMDAwNzcxMjJBMTgxMEUyMDAwMTgwRTEwMDAxMTBFMjAwMDJDNAorOjEwMDgyMDAwODBFMTAwMDI3NkUxMDAwMzAwMTk0ODExRjAwMDAwMDRBNQorOjEwMDgzMDAwODgxMkY0OTU3NzEzMkE1REU5MDBFNTk4RjMwMDAwMDEyQQorOjEwMDg0MDAwRjZCODQ4MEIwOEY4MkEzQ0Y4NDMwNTkzNzY4MjAwQUFDQworOjEwMDg1MDAwRjA3NDAyOTg4QTExRkMwMDRBMTE4ODExMTBGODJBMzhBNQorOjEwMDg2MDAwRjg0NDA1RTMxMEY4MkFBMUY4NDQwNUJBNkNFMUZGNTZGNAorOjEwMDg3MDAwMDVFMzcyMTIyQUExRjQ5NTcwRTIyQTE4MDAxMTZCRjhCMAorOjEwMDg4MDAwMkFBMTAwMDFGMDczMDVFMzcyMTIyQUExRjQ5NTcwRTIyNworOjEwMDg5MDAwMkExODAwMTExMEY4MkFBMUYwMDAwMDAxODgxMkY0OTUxRQorOjEwMDhBMDAwRjQ5NTZFRTJGRkZDMDVEMTczMTIyQUExNDgxMUYwMDAwNQorOjEwMDhCMDAwMDAwNTgwRjgyQUEyMTBGODJBQTEwOEY4MkFBMkY4NDQxNAorOjEwMDhDMDAwMDVFMzZDRTFGRkFCMDVERDc2RjgyQTM4MDAwMTc2RjgyOAorOjEwMDhEMDAwMkFBMTAwMDA3NkY4MkFBMjAwMDA4QTExRkMwMEY0OTVGMworOjEwMDhFMDAwNEEwODRBMDk0QTBBNEEwQjRBMEM0QTBENEExMDRBMTE1OAorOjEwMDhGMDAwNEExMjRBMTM0QTE0NEExNTRBMTY0QTE3NEExNzRBMTlGRAorOjEwMDkwMDAwNEEwRTRBMDY0QTA3NEExQTRBMUQ0QTFCNEExQzY4RjhGOAorOjEwMDkxMDAwMDAwNzdEM0Y2OUY4MDAwNzQwMDA2OEY4MDAxREZGRkNGNAorOjEwMDkyMDAwNDgxODY4RjgwMDE4RkZGRUY0OTVGNDk1NEEwOEVFRkZBMQorOjEwMDkzMDAwMTBGODJBNUJGOTgwMTgwNEYwNzQwNUEyRUUwMThBMThGOQorOjEwMDk0MDAwRjQ5NThBMUM4QTFCOEExRDhBMUE4QTA3OEEwNjhBMEVDRgorOjEwMDk1MDAwOEExOThBMTc4QTE3OEExNjhBMTU4QTE0OEExMzhBMTI5QworOjEwMDk2MDAwOEExMThBMTA4QTBEOEEwQzhBMEI4QTBBOEEwOThBMDhENworOjEwMDk3MDAwRjRFQkVFRkQ3NkY4MkEzODAwMDA3NkY4MkE1QTAwMDBFQgorOjEwMDk4MDAwRTgwMTRFMDBGQjgwMTdENkY0OTVFODAxODBGODJBNUI1OQorOjEwMDk5MDAwNzYwMDJBOEZGOTgwMTZBQTEwRjgyQTVCRjk4MDE3NUM3NgorOjEwMDlBMDAwMTBGODJBNUJGOTgwMTc2RkZCODAxNjY2RjQ5NUU4MUEzOQorOjEwMDlCMDAwRkI4MDE2ODdGNDk1RTgxQUZCODAxNjY2RjQ5NUU4MUIxMQorOjEwMDlDMDAwRkI4MDE2ODdGNDk1RTgxQkVFMDNGQzAwNEExMUY0OTVCMgorOjEwMDlEMDAwMTMwMjg4MTFFODAwRjg0RDA2NkFGMzEwMDAwMTg5MUEyNQorOjEwMDlFMDAwRjQ5NUYwNzIwNjY5MUM5MThBMTFGQzAwNEExMTg4MTE3NQorOjEwMDlGMDAwMTIwMzExMDJGODQ1MDY3OUYwMTAwMDAxODgxQUY0OTVFNworOjEwMEEwMDAwRjA3MjA2Nzg4MTkxOEExMUZDMDA0QTExRjQ5NTcxMDIwNgorOjEwMEExMDAwMDAxMTExMDM2MUY4MDAxMTAwMDFGODMwMDY5MUY2QjhEOQorOjEwMEEyMDAwNkZGODAwMTEwQzFGODgxMUYzRThFOEZGMTg4MUYxQTA5RQorOjEwMEEzMDAwODE4MUYwNzMwNjlERjZCODZGRjgwMDExMEMxRjg4MTFDNAorOjEwMEE0MDAwRjMzMDAwRkZGMDIwRkYwMDE4ODFGMUEwODE4MThBMTFBRQorOjEwMEE1MDAwRkMwMDRBMTFGNDk1MTEwMjYxRjgwMDBCMDAwMUY4MjAyNgorOjEwMEE2MDAwMDZCMTQ5MEJGNjFGODgxMUY0OTVGNDk1MTA4MUYyNzNDNQorOjEwMEE3MDAwMDZCOEYwMzAwMEZGNDkwQkY2MUY4ODExRjQ5NUY0OTU4NQorOjEwMEE4MDAwMTI4MUY0Nzg4QTExRkMwMDRBMTFGNDk1NzEwMjAwMTI2NworOjEwMEE5MDAwMTMwMzg4MTFFODAwRjg0RDA2Q0NGMzEwMDAwMTg5MUEwMQorOjEwMEFBMDAwRjQ5NUYwNzIwNkNCMTE5MkYyQzA4MTkxOEExMUZDMDA4QworOjEwMEFCMDAwODgxMjEyMDI3MTAxMDAxM0Y4NDUwNkRCRjAxMDAwMDFFNAorOjEwMEFDMDAwODgxQUY0OTVGMDcyMDZEQUU1OThGQzAwNEExMUVFRkVGOQorOjEwMEFEMDAwODgxMTExMDQxMDA2NzEwNTAwMTI2MUY4MDAxMjAwMDE1RQorOjEwMEFFMDAwRjgyMDA2RUFGMDAwMDAwMUY2QjhGMDAwMDAwMTZGRjgwNworOjEwMEFGMDAwMDAxMjBGMUY0ODA4ODEwMEY0N0Y4MDAxRjI3NDA2QkFDQgorOjEwMEIwMDAwRjQ5NTQ4MTFFRTAyOEExMUZDMDA0QTExRUVGRTg4MTI5QgorOjEwMEIxMDAwMTEwNDEwMDY3MTA1MDAxMzYxRjgwMDEzMDAwMUY4MjA5QworOjEwMEIyMDAwMDcwOUYwMDAwMDAxRjAwMDAwMDE4ODExRjZCODZGRjgyNQorOjEwMEIzMDAwMDAxMzBGMUY4MTAwNDgxMUY0N0Y4MDAxRjI3NDA2Q0U2QworOjEwMEI0MDAwRjQ5NTQ4MTI0ODExRjAzMEZGRkVFRTAyOEExMUZDMDBDNQorOjEwMEI1MDAwNEExMTRBMTY0QTE3RUVGQ0Y0OTU4MDAyNzEwODAwMTZGNQorOjEwMEI2MDAwMTAwOTcxMEIwMDE3ODAwMzcxMEEwMDExNDgxN0Y4NDUyRQorOjEwMEI3MDAwMDczRjcwMDAwMDExMTAwM0YwNzQwNjlGODAwMTcwMDBBMQorOjEwMEI4MDAwMDAxNjEwMDJGMDc0MDY3QjZEOTE2RDk2NkNFRkZGRkZGRQorOjEwMEI5MDAwMDcyRkVFMDQ4QTE3OEExNjhBMTFGQzAwNEExMUVFRkUwRQorOjEwMEJBMDAwMTBGODJBRTgwOEY4MkFFOUY4NDUwNzY0NzYwMDAwMDFGOQorOjEwMEJCMDAwNjJGODJBRTkwMDVFRjI3NDEyMEJGMDAwMzA0MDcyMTEwNAorOjEwMEJDMDAwMkFFOTc3MTAwMDBGRjVBOUY4MjAwNzYxNkJGODJBRTlFOAorOjEwMEJEMDAwMDAwMUYwNzMwNzY0NzZGODJBRTkwMDAwRUUwMjhBMTEzQQorOjEwMEJFMDAwRkMwMDRBMTE4ODExRTgwMDc1RjgwMDA4MDAwOEU4MDBDOAorOjEwMEJGMDAwNzVGODAwMDgwMDA5RjZCOEY0OTVGMDIwRkMzRjc1Rjg4OAorOjEwMEMwMDAwMDAwODAwMERGMDIwMEMzMDc1RjgwMDA4MDAwQzc2Rjg5NAorOjEwMEMxMDAwMkFFODAwMDA3NkY4MkFFOTAwMDA2QzgxMDc5Mjc2Rjg0RAorOjEwMEMyMDAwMkFFQTAwMDBGQjgwMTY3NkY0OTVFODEwRTgwMDc1RjhEMworOjEwMEMzMDAwMDAwODAwMDBGMDczMDdBODc2RjgyQUVBMDAwMUZCODA5QworOjEwMEM0MDAwMTY2NkY0OTVFODEwRkI4MDE2ODdGNDk1RTgxMEU4MDAyNgorOjEwMEM1MDAwNzVGODAwMDgwMDAwRjZCOEY0OTVGMDIwRkZGRjc1Rjg2RAorOjEwMEM2MDAwMDAwODAwMDA4QTExRkMwMEY0OTU0QTA4NEEwOTRBMEE2MworOjEwMEM3MDAwNEEwNjRBMDc0QTFENjhGODAwMDc3RDNGNjlGODAwMDdFMQorOjEwMEM4MDAwNDAwMDY4RjgwMDFERkZGQzEwRjgyQUVBRjg0NTA3RTE2QgorOjEwMEM5MDAwMTBGODJBRThGMDAwMDAwMUYwMzAwMDBGODBGODJBRTg5MAorOjEwMENBMDAwMTBGODJBRThGODQ0MDdENkY2QjhGNDk1RjAyMEZDM0Y4RgorOjEwMENCMDAwNzVGODAwMDgwMDBERjAyMDBDMzA3NUY4MDAwODAwMENFNQorOjEwMENDMDAwRTgwMDc1RjgwMDA4MDAwMEY2QjhGNDk1RjAyMEZGRkY4MgorOjEwMENEMDAwNzVGODAwMDgwMDAwOEExRDhBMDc4QTA2OEEwQThBMDlCMAorOjEwMENFMDAwOEEwOEY0RUJFRUZGRjI3NDA3NjdGNDk1RTgwMUVFMDE3MQorOjEwMENGMDAwRkMwMDRBMDc0QTFENjhGODAwMDc3RDNGNjlGODAwMDdCNQorOjEwMEQwMDAwNDAwMDY4RjgwMDFERkZGQzhBMUQ4QTA3RjRFQjRBMTFCOQorOjEwMEQxMDAwNzcxMTAwMjg3NjgxMjQwMEU4MDA3NUY4MDAwODAwMDFBQQorOjEwMEQyMDAwRjI3NDA3NjdGNDk1RTgwMDc3MTEwMDFENjg4MTAwN0Y3MQorOjEwMEQzMDAwRjZCOEY0OTVGMDIwRkY4MDc3MTEwMDFERjAzMDAxMDAyNworOjEwMEQ0MDAwMUE4MTgwODFGMDc0MEEzM0YwNzQxMUFDRjk4MDEzMjU5NAorOjEwMEQ1MDAwRjk4MDE2NTNGOTgwMTc4MkYwNzQwNjJGRjk4MDE0QjJDNworOjEwMEQ2MDAwRjk4MDE5MTBGMDc0MERFM0YwNzQwN0U4RjA3NDAyMzY5RQorOjEwMEQ3MDAwOEExMUZDMDA0QTExNjBGODI3N0JGRkZGRjgzMDA4MzkyMAorOjEwMEQ4MDAwNzFGODI3N0IyNzc5NjBGODI3NzlGRkZGRjgzMDA4QjJFMAorOjEwMEQ5MDAwMTBGODI5ODYwOEY4Mjc3OUYwMzA3RkZGODgxMUY0OTUzQworOjEwMERBMDAwNzcxMDQwMDBGNkE5RjgzMDA4NTgxMEY4Mjc3OTA4RjhBRAorOjEwMERCMDAwMjc3QUYwMzA3RkZGODgxMUY0OTU3NzEwNDAwMEY2QTk2QworOjEwMERDMDAwRjgyMDA4NjM3NkY4Mjc3OUZGRkY3NkY4Mjc3QkZGRkY4NgorOjEwMEREMDAwRjdCOEYyNzMwOEQ5RjAyMEZGRkZGNkI4NTZGODI3NzQ3OQorOjEwMERFMDAwRjBGOTg4MTE1NkY4Mjc3MkYwRjk4ODEyRjQ5NUY0OTUwNQorOjEwMERGMDAwRTcyMEY0QTlGODMwMDg4RkYxMjAyNzdDNDgxMUY2MDA4RAorOjEwMEUwMDAwODgxM0Y0OTVGNDk1MTA4MzA4RjgyNzc5RjAzMDdGRkY2NAorOjEwMEUxMDAwODgxM0Y0OTU3NzEwNDAwMEY1QUJGODMwMDg4RjZEOTE4QQorOjEwMEUyMDAwNDgxMUYwMzAwMUZGODgxMUY0OTVFNzIwRjdBOUY4MzA1OAorOjEwMEUzMDAwMDg3NDZEODk0ODExRjAzMDAxRkZGMEU3RjQ5NTQ4MDgxNworOjEwMEU0MDAwNEVGODI3NzQ0ODA4RjFGOTg5MTFGNDk1RjQ5NTcxRTE4OQorOjEwMEU1MDAwMjc3QzI3N0E2MEY4Mjc3QkZGRkZGODMwMDhBQjQ4MDgyQgorOjEwMEU2MDAwNEVGODI3NzI3NkY4Mjc3QkZGRkY3NkY4Mjc3OUZGRkY4OQorOjEwMEU3MDAwRjI3MzA4RDlGNDk1RTgwMDQ0RjgyNzczNDBGODI3NzUxMQorOjEwMEU4MDAwODJGODAwMTFGNDk1NzcxMDgwMDBGNkE5RjgyMDA4RDhCMAorOjEwMEU5MDAwRjZCODEwRjgyNzczRjAwMDgwMDA0ODA4NEVGODI3NzQ2MQorOjEwMEVBMDAwNDgwOEYwRjk4ODExRjQ5NUY0OTU3MUUxMjc3QzI3N0FDOAorOjEwMEVCMDAwRjdCODU3RjgyNzc0RjA2MkZGRkZGMDQwRkY4MEYyODAyOAorOjEwMEVDMDAwNEVGODI3NzRFODAwOEExMUZDMDA0QTExNEExNkVFRkIxRQorOjEwMEVEMDAwMTFGODI3NzEwOUY4Mjc3Mzg5MTE4ODEwRjQ5NUY0OTU5MgorOjEwMEVFMDAwRjZBOUY4MjAwOEVERjI3MzA5MEVGNDk1RTgwMEY2MjA1MworOjEwMEVGMDAwNzYwMDAwNDFGMDc0MTJFRTg4MTZGNDk1RjdCODZEOTZGRQorOjEwMEYwMDAwMTBGODAwMTZGODQ3MDkwQUU3NjE3NjAwMDAwMDc2MDEzQworOjEwMEYxMDAwMDA4MDc2MDIwMEZGNzYwMzAwMDBGMjc0MENCOUY0OTVBRAorOjEwMEYyMDAwRTgwMDZDRTlGRkZGMDhGQjczMTYwMDBFRjA2NjAwNDE1NQorOjEwMEYzMDAwRUUwNThBMTY4QTExRkMwMDRBMTFGNDk1NzEwMjAwMTMxRAorOjEwMEY0MDAwRjZCODc3MTE3RkZGNTdGODI3NzI0ODExRjI4MEYwMDA0QQorOjEwMEY1MDAwODAwMDg4MTFGNjQwRjBFMEYxRjFFODAxRjI4MDgwRjhCRAorOjEwMEY2MDAwMjc3ODc3MTI4MDAwNTdGODI3NzI0ODEyRjI4MDg4MTI4QgorOjEwMEY3MDAwRjQ5NUY0OTU2QzgyMDkzOEU4MDA3NUY4MDAwODAwMDFEMgorOjEwMEY4MDAwRjA3MzA5M0RGMDIwODAwMTc1RjgwMDA4MDAwMTcwODFDMAorOjEwMEY5MDAwMDAxMzhBMTFGQzAwNEExMUYwMzA3RkZGMTFGODI5ODZGNgorOjEwMEZBMDAwRjUyMEYzMzA3RkZGODkxMUY0OTU3NzEwNDAwMEY2QTkwMgorOjEwMEZCMDAwRjgyMDA5NTRGMjczMDk2N0Y0OTVFODAyNkZGODI3N0E2QworOjEwMEZDMDAwMEQyMEYzMzA3RkZGODkxMUY0OTU3NzEwNDAwMEY2QTlDQQorOjEwMEZEMDAwRjgyMDA5NjRGMjczMDk2N0Y0OTVFODAxODBGODI3N0IyQgorOjEwMEZFMDAwRTgwMDhBMTFGQzAwNEExMTExRjgyOTg2RjUyMEYzMzAzNworOjEwMEZGMDAwN0ZGRjg5MTFGNDk1NzcxMDQwMDBGNkE5RjgyMDA5N0E0RgorOjEwMTAwMDAwRjI3MzA5OERGNDk1RTgwMjZGRjgyNzdBMEQyMEYzMzAxQQorOjEwMTAxMDAwN0ZGRjg5MTFGNDk1NzcxMDQwMDBGNkE5RjgyMDA5OEExRQorOjEwMTAyMDAwRjI3MzA5OERGNDk1RTgwMTgwRjgyNzc5RTgwMDhBMTFCOAorOjEwMTAzMDAwRkMwMDRBMTFGNDk1NzEwMjAwMTI4ODExRjZCODU3RjhCNQorOjEwMTA0MDAwMjc3MkYwMjA3RkZGRjI4MEYwMDA4MDAwODA4MTU3Rjg0NworOjEwMTA1MDAwMjc3MkU4MDFGM0YxRjI4MDgwRjgyNzc4NzcxMTgwMDA5OQorOjEwMTA2MDAwNDgxMTU3RjgyNzcyRjI4MDg4MTFGNDk1RjQ5NTZDODEzNQorOjEwMTA3MDAwMDlCNUU4MDA3NUY4MDAwODAwMDFGMDczMDlCQUYwMjAxRQorOjEwMTA4MDAwODAwMTc1RjgwMDA4MDAwMTQ1RjgyNzcxNDNGODI3NzNCRgorOjEwMTA5MDAwODNGODAwMTFGNDk1RTcyMEY2QTlGODMwMDlDOUYyNzMzNgorOjEwMTBBMDAwMDlFNDc3MTIwMDAwNTdGODI3NzJGMDIwN0ZGRkYyODBFMgorOjEwMTBCMDAwNDkxMkY1MDBGMzAwODAwMDYxRjgwMDBCODAwMEY4MzA2MQorOjEwMTBDMDAwMDlEQ0YxMjA4MDAwRjUyMDg5MTJGNDk1NDgxMjZGRjhCMAorOjEwMTBEMDAwMjc3MzBEMDBGNDk1NDkwQjRGRjgyNzcyOEExMUZFMDAxMworOjEwMTBFMDAwNDgxMkY0OTU0QTExNEExNjRBMTdFRUZDRjQ5NTcxMDgxNQorOjEwMTBGMDAwMDAxNjg4MTdGMDc0MDgzMDQ4MTg3MDAwMDAxNkYyNzQ1MworOjEwMTEwMDAwMDk4RkYwMDAwMDAyODgxMUY0OTVGNDk1NkM4MTBBMEFBOQorOjEwMTExMDAwRjI3NDA4REJGNDk1NDgxNjQ4MTg3MDAwMDAxNkYyNzQ1MworOjEwMTEyMDAwMDk4RkYwMDAwMDAyODgxMTEwMDI3MDAxMDAxMTgwMDA4OAorOjEwMTEzMDAwRjI3NDA2Q0VGNDk1NDgxNzQ5MTE0ODE3RjYwMDg4MTczRgorOjEwMTE0MDAwRTc2MEY1QTlGODIwMEEyRDQ4MTZGNjIwODgxMTQ4MThGRQorOjEwMTE1MDAwNzAwMDAwMTFGMjc0MDk4RkYwMDAwMDAyODgxMTcwMDExNAorOjEwMTE2MDAwMDAxMTEwMDI4MDAwRjI3NDA2Q0VGNDk1NDgxN0VFMDRDOAorOjEwMTE3MDAwNDgxNjhBMTc4QTE2OEExMUZDMDBFRUZERTgwMDRFRjgyMAorOjEwMTE4MDAwMjc3MEU4MDA0RUY4Mjc3MkU4MDA0RUY4Mjc3NEU4MDA1MAorOjEwMTE5MDAwNEVGODI3NzY3NkY4Mjc3OUZGRkY3NkY4Mjc3QTAwMDA1MQorOjEwMTFBMDAwNzZGODI3N0JGRkZGNzZGODI3NzgwMDAwRTgwMDc1RjhDRgorOjEwMTFCMDAwMDAwODAwMDE3NjAwMDAwMDc2MDEwMjAwRjI3NDEyRENFMworOjEwMTFDMDAwRjAyMDI3N0NFRTAzRkMwMDRBMTFFRUZDRjQ5NTRFMDA2MworOjEwMTFEMDAwNzcxMjdGRkZGNkI4NDkxMkYxODBGMzAwODAwMDg5MTI4MAorOjEwMTFFMDAwRjBFMEYxRjE0RjAyRTkwMUY0OTU0ODBCRjU0MDU2MDJBOQorOjEwMTFGMDAwRjE4MDgxRjgyNzc4NzcxMTgwMDA1NjAwNDkxMUYxODAzRAorOjEwMTIwMDAwODkxMUY0OTVGNDk1NkM4MTBBODFFODAwNzVGODAwMDg1RAorOjEwMTIxMDAwMDAwMUYwNzMwQTg2RjAyMDgwMDE3NUY4MDAwODAwMDFEMworOjEwMTIyMDAwMTA4MkVFMDQ4QTExRkMwMDRBMTFFRUZFRjQ5NTRFMDA4NQorOjEwMTIzMDAwNzcxMTdGRkZGNkI4NDkxMUYxODBGMzAwODAwMDg5MTEyMgorOjEwMTI0MDAwRjBFMEYxRjFFODAxRjI4MDgwRjgyNzc4NTYwMEYxMjAxMworOjEwMTI1MDAwODAwMEYxODBGNDk1NDkwQkY4NEQwQUFCRjAyMDgwMDEzNQorOjEwMTI2MDAwNzVGODAwMDgwMDAxRjA3MzBBQUZFODAwNzVGODAwMDg4RgorOjEwMTI3MDAwMDAwMUVFMDI0ODExOEExMUZDMDA0QTExODgxMjEzMDI4MworOjEwMTI4MDAwNzcxMTAwMDBGODREMEFDQkYzMTAwMDAxODkxQUY0OTU4QworOjEwMTI5MDAwRjA3MjBBQ0E0ODExMUNGODI5N0U4ODExMTFGODI5N0VCQgorOjEwMTJBMDAwRjIwMDAwMDE4MEY4Mjk3RTgxOTI0ODExOEExMUZDMDAyOQorOjEwMTJCMDAwNEExMUY0OTU3MTAyMDAxMTg4MTJGNkI4RjAyMDdGRkZGMAorOjEwMTJDMDAwNTdGODI3NzBGMjgwRjAwMDgwMDA4MDgyNTdGODI3NzA2RQorOjEwMTJEMDAwRTgwMUYzRjFGMjgwODBGODI3Nzg3NzEyODAwMDQ4MTI1NQorOjEwMTJFMDAwNTdGODI3NzBGMjgwODgxMkY0OTVGNDk1NkM4MjBBRjQwRQorOjEwMTJGMDAwRTgwMDc1RjgwMDA4MDAwMUYwNzMwQUY5RjAyMDgwMDE5OQorOjEwMTMwMDAwNzVGODAwMDgwMDAxNDVGODI3NzVFNzEwNDNGODI3NzFDNAorOjEwMTMxMDAwODNGODAwMTI2REU4MDAwNDZEOEFGNkFBRjgzMDBCMEExMworOjEwMTMyMDAwRjI3MzBCMjU3NzExMDAwMDU3RjgyNzcwRjAyMDdGRkYyQworOjEwMTMzMDAwRjI4MDQ5MTFGNTAwRjMwMDgwMDA2MUY4MDAwQjgwMDA5NQorOjEwMTM0MDAwRjgzMDBCMURGMTIwODAwMEY1MjA4OTExRjQ5NTQ4MTEyQgorOjEwMTM1MDAwNkZGODI3NzEwRDAwRjQ5NTQ5MEI0RkY4Mjc3MDQ4MTE2RAorOjEwMTM2MDAwOEExMUZDMDA0QTExNEExNjRBMTdFRUYwODgxNzEwMTcyNgorOjEwMTM3MDAwODAwNTEwMTY4MDA2MTAxNTgwMDc3MTE0MDAxMTEwMDVFNQorOjEwMTM4MDAwRjAzMDAwMDE4ODEwMTAwNkYwMzAwMDAxODAwODQ5MTE4QgorOjEwMTM5MDAwMTAwNUY2MDE4MDA5MTAwNjYxRjgwMDA4MDAwMUY4MjAyOAorOjEwMTNBMDAwMEI0QjEwMDlGMDAwMDAwMTgwMDk3MTA4MDAxMkY0QUEyQgorOjEwMTNCMDAwRjgzMDBCNTQxMDA5RjAwMDAwMDE4MDA5MTIwOTQ5MTE5RQorOjEwMTNDMDAwRjQ3RjgwMDlGNjIwODAwQTU2RjgyNzcwNEUwQzEwMDkyOQorOjEwMTNEMDAwODAwMDQ4MThGMjc0MEFDRUYwMDAwMDA0ODgxNkY0OTVENAorOjEwMTNFMDAwRjQ5NTZDODYwQjZERjI3MzBDNTlGNDk1RTgwMEY2QjgyMQorOjEwMTNGMDAwRjQ5NTU2MENGMEY5ODgxMkY0OTVGNDk1NzBFMjI3N0M3OAorOjEwMTQwMDAwMjk4NkU4MDA4MDBFNDgxMUY4NDUwQkNDNzcxMDAwMDFDMgorOjEwMTQxMDAwRjRBOUY4MzAwQjg5NkNFMUZGRkQwQjhCMTBFNzAwMDI5QgorOjEwMTQyMDAwODAwRUYwNzMwQjhCMTA4NzgwMEVFNzEwRjVBRUY4MjA1RQorOjEwMTQzMDAwMEJCMjcwMDAwMDE3NzAwMTAwMTYxMDA0RjA3NDA2Q0U5NQorOjEwMTQ0MDAwNDgxNzQ5MTZGNjAwODgxNzQ4MTFGNjIwODgxMTEwMDkyOAorOjEwMTQ1MDAwRjYyMDgwMDA0ODE4RjI3NDBBQ0VGMDAwMDAwNDg4MTZDNgorOjEwMTQ2MDAwMTAwNDcwMDAwMDE3NzAwMTAwMTFGMDc0MDZDRTQ4MTFDRQorOjEwMTQ3MDAwMDAwNDgwMDRGMDczMEJCQzcwMDAwMDE3NzAwMTAwMTFCMQorOjEwMTQ4MDAwMTAwNEYwNzQwNkNFNDgxMTAwMDQ4MDA0NDkxMTQ4MTY3NworOjEwMTQ5MDAwRjYyMDg4MTZGNDk1RjQ5NTZDODYwQkNDMTAwQTgwMDAyMworOjEwMTRBMDAwNDgxOEYyNzQwQUNFRjAwMDAwMDQ4ODE2MTIwQUY4NDVCMworOjEwMTRCMDAwMEMzMzcxMEEwMDEwRjRBRUY4MzAwQzFDNDgxNkYwRTE0MQorOjEwMTRDMDAwODgxMTEyMDhGODQ1MEJEQjZEODkxMjA3Rjg0NTBCRTkwNgorOjEwMTREMDAwMTAwNzgwMDA3MDAyMDAxMTEwMDY4MDAxMTAwNEYwNzRFMworOjEwMTRFMDAwMDZEQ0YwNzMwQkVGNDgxMTZGMDAwQzlGMTAwNEYwNzREMgorOjEwMTRGMDAwMEFCMzExMEVGMUMwODEwRTEwMDY0OTExRjYwMDgwMDZFNAorOjEwMTUwMDAwMTAwNUY2MjA4ODExRjAwMDAwMDE0ODA4NkYwMDBDOUZCQworOjEwMTUxMDAwNDgxOEYyNzQwQUNFRjAwMDAwMDQxMjA3Rjg0NTBDMTFDNgorOjEwMTUyMDAwMTAwNzgwMDA3MDAyMDAxMTEwMDY4MDAxMTAwNEYwNzQ5MgorOjEwMTUzMDAwMDZEQ0YwNzMwQzE3NDgxMTZGMDAwQzlGMTAwNEYwNzQ1OAorOjEwMTU0MDAwMEFCMzExMEVGMUMwODEwRUYwNzMwQzMzMTIwN0Y4NDU4NworOjEwMTU1MDAwMEMyQTEwMDc4MDAwMTAwNjgwMDExMDA1ODAwMjEwMDQ3QworOjEwMTU2MDAwRjA3NDA2RENGMDczMEMzMDEyMDU2RjAwMEM5RjEwMDQ1MQorOjEwMTU3MDAwRjA3NDBBQjMxMTBFRjFDMDgxMEU3NjAwMDAwMTQ4MTgxNAorOjEwMTU4MDAwRjI3NDBBQ0VGMDAwMDAwNDcxMDQwMDExNzA4MTI5ODYwMworOjEwMTU5MDAwMTAwRTFDRjgyOTg2ODAwRTc2MDAwMDAxNDgxOEYyNzQ5RgorOjEwMTVBMDAwMEFDRUYwMDAwMDA0MTAwRTcxMDQwMDExODA4MTEwRjhDMgorOjEwMTVCMDAwMjk4NkYwMDAwMDAxRjAzMDdGRkY4MEY4Mjk4NjEwMDlBRAorOjEwMTVDMDAwRjAwMDAwMDI4MDA5RUUxMDhBMTc4QTE2OEExMUZDMDBDQQorOjEwMTVEMDAwMTBGODI3NzUwOEY4Mjc3MUYwMTAwMDAxNDgwOEZDMDA4MgorOjEwMTVFMDAwNEExMTRBMTZFRUZGRjQ5NTcxMDQwMDE2RjAwMDAwMDE0RQorOjEwMTVGMDAwNDgwODRFRjgyOTdDNkRFRUZGRkQ0ODE2Rjg0NTBDOTkxOQorOjEwMTYwMDAwNTZGODI5N0NGMDc0MEE1QTg4MTExMEY4Mjk3REYwMDBFOAorOjEwMTYxMDAwMDAwMTQ4MDg0RUY4Mjk3QzEwRjgyOTgyRjAwMDAwMDFFQQorOjEwMTYyMDAwODgxMEY0OTVGNDk1RjRBOUZBMzAwQzk2ODBGODI5ODI4NAorOjEwMTYzMDAwNTZGODI5ODBGMDAwMDAwMTRFRjgyOTgwNzMxMTI5ODJBNAorOjEwMTY0MDAwNkNFRUZGRkYwQzc2RUUwMThBMTY4QTExRkMwMDRBMTEzRgorOjEwMTY1MDAwNzZGODI5ODQwMDAwNzZGODI5ODUwMDAxRTgwMDRFRjgyNAorOjEwMTY2MDAwMkEwQzc2RjgyOTg2MDAwMDc2RjgyOTg3MDAwMDc3MTE4MQorOjEwMTY3MDAwMjk4ODc2ODFBQUFBNzZFMTAwMDFBQUFBNzZFMTAwMDI2OQorOjEwMTY4MDAwMDAwMDhBMTFGQzAwNEExMUVFRkNGNDk1NzEwNjAwMTQ2QQorOjEwMTY5MDAwNzEwNzAwMTM3MTA4MDAxMjcxMDkwMDE1NzcxMDAwRkYxRgorOjEwMTZBMDAwRjRBQUY4MzAwRDQ0NDkxMzUzRjgyQTBDNEZGODJBMENDOQorOjEwMTZCMDAwNzMxMjAwMEVGMTY2MDAwRDg5MTFGNDk1NzcxMDAwMDE4OAorOjEwMTZDMDAwNzFFMTI0MDAwMDExRjRBOUY4MzAwRDE3NzcxMDAwMDIyMQorOjEwMTZEMDAwRjRBOUY4MzAwQ0VDNzcxMTI5OEE3NjgxMDAwMEU4MDAzMworOjEwMTZFMDAwNzcxNDAwMDA3NzEzMDAwMEYwNzMwRDQ4NkM4MzBDRkEzOAorOjEwMTZGMDAwNzcxMTI5OEE0ODEyRjBFOEYwNDA4MDAwODA4MUU4MDBFNAorOjEwMTcwMDAwNzcxNDAwMDBGMDczMEQ0ODQ5MTNGMzQwODAwMDgxRjgwRQorOjEwMTcxMDAwMjk4QTYxRjgwMDE1MDAwMUY4MjAwRDA3NjlGODI5OEE2NworOjEwMTcyMDAwNDAwMDYxRjgwMDE0MDAwMUY4MjAwRDBGNjlGODI5OEFDMworOjEwMTczMDAwMjAwMDc3MTEyOThBNDkxMkYzRTgxQjgxODE4MUYwNzMxNworOjEwMTc0MDAwMEQ0ODExRjgyOTg0Rjg0QzBEMzc3NzExMjk4ODc2ODFENgorOjEwMTc1MDAwQUFBQTExRjgyOTg1RjMxMDAwMDFGMzQwQUEwMDgxRTEzQgorOjEwMTc2MDAwMDAwMTc2MDAwMDAyODAwMTcwMDIwMDE0NzAwMzAwMTM3MworOjEwMTc3MDAwRjI3NDBCMjhGNDk1NDgxMTcxRjgyOTg1Mjk4NEYwNzNDNworOjEwMTc4MDAwMEQ3Mzc2MDAwMDAwODAwMTc2MDIwMDAwNzAwMzAwMTNFNAorOjEwMTc5MDAwRjI3NDBCMjhGNDk1RTgwMEYwNzMwRDczNzcxMTI5OEEyMQorOjEwMTdBMDAwNzA4MTAwMTMxMUY4Mjk4NEY4NEMwRDY4NzcxMTI5ODg4RAorOjEwMTdCMDAwNzY4MUFBQUExMUY4Mjk4NUYzMTAwMDAxRjM0MEFBMDA0NgorOjEwMTdDMDAwODFFMTAwMDE3NjAwMDAwMzgwMDE3MDAyMDAxNDcwMDNDMworOjEwMTdEMDAwMDAxM0YyNzQwQjI4RjQ5NTQ4MTE3MUY4Mjk4NTI5ODRCNworOjEwMTdFMDAwRjA3MzBENzM3NjAwMDAwMTgwMDE3MDAyMDAxNDcwMDMyNQorOjEwMTdGMDAwMDAxM0YyNzQwQjI4RjQ5NTQ4MTE2QkY4Mjk4NEZGRkY0RAorOjEwMTgwMDAwRUUwNDhBMTFGQzAwNEExMUY1NDBGNDk1NDgwQkY0Nzg3NworOjEwMTgxMDAwODgxMUY0OTVGNDk1NkNFMUZGQjkwRDg4RjI3MzBEQTU2QworOjEwMTgyMDAwRjQ5NUU4NjBGMjAwMDAwNjYxRjgwMDExMDAyMEY4MzAzRAorOjEwMTgzMDAwMEQ5ODYxRjgwMDBCMDAwMUY4MjAwREEzRjIwMDAwMDdERAorOjEwMTg0MDAwRjA3MzBEQTM2MUY4MDAwQjAwMDFGODIwMERBMUYyNzNGNQorOjEwMTg1MDAwMERBM0YwMDAwMDAxRjAwMDAwMDI0ODA4RjQ3RjhBMTE5NworOjEwMTg2MDAwRkMwMEVFRkZGMDc0MDdGREYwNzQwNzQ0RjA3NDBEQjQ1MworOjEwMTg3MDAwRjA3NDAyMDVGMDc0MDQ2MEYwNzMwREFBRUVGRDEwRjgyOAorOjEwMTg4MDAwMkFBM0Y4NDQwRENCMTBGODJBQTRGODQ1MERENzc2MDAwQQorOjEwMTg5MDAwMDIwMEYyNzQwOUU4RjAyMDIyMDA3NkY4MkFBNDAwMDA4MQorOjEwMThBMDAwNzZGODJBQTcwMDAwRjA3MzBERDc3NjAwMDIwMEYyNzRENAorOjEwMThCMDAwMDlFOEYwMjAyMDAwNzZGODJBQTMwMDAwNzZGODJBQTc4RAorOjEwMThDMDAwMDAwMUYwNzQwQzVFRjBFMEYwMTAzQTk4Rjg0NzBERTE3QQorOjEwMThEMDAwNzZGODI3NkUwMDAwRUUwM0ZDMDA0QTExRUVGRTc3MTE0OQorOjEwMThFMDAwMjAwMDc2MDBBQUFBNzYwMTAyMDBGMjc0MDY2Q0Y0OTUzNAorOjEwMThGMDAwNDgxMTc2MDA1NTU1NzYwMTAyMDA0ODExRjI3NDA2NkNDNQorOjEwMTkwMDAwRjAwMDAyMDA3NkY4MkFBMzAwMDA3NkY4MkFBNDAwMDA2RQorOjEwMTkxMDAwRTgwMDRFMDBGQjgwMTUzRUY0OTVFODA0ODBGODJBQTUwNworOjEwMTkyMDAwNzYwMDJBQThGOTgwMTQ4Nzc2MDAyQUFERkI4MDEzNjIxRQorOjEwMTkzMDAwRjQ5NUU4MDIxMEY4MkFBNUY5ODAxNDYzRkI4MDE2NjY3NgorOjEwMTk0MDAwRjQ5NUU4MUNGQjgwMTY4N0Y0OTVFODFDRTgwMTRFMDAyRQorOjEwMTk1MDAwRkI4MDE3RDZGNDk1RTgwMDgwRjgyQUE2NzYwMDJBQjcwRgorOjEwMTk2MDAwRjk4MDE2QUExMEY4MkFBNkY5ODAxNzVDMTBGODJBQTZBMgorOjEwMTk3MDAwRjk4MDE3NkZFRTAyOEExMUZDMDBGNDk1NEEwODRBMDlCMworOjEwMTk4MDAwNEEwQTRBMDc0QTFENjhGODAwMDc3RDNGNjlGODAwMDdDMAorOjEwMTk5MDAwNDAwMDY4RjgwMDFERkZGQzEwRjgyQUE3Rjg0NDBFNEIyMQorOjEwMTlBMDAwNzZGODJBQTMwMDAxRjA3MzBFNEU3NkY4MkFBNDAwMDFGRgorOjEwMTlCMDAwOEExRDhBMDc4QTBBOEEwOThBMDhGNEVCNEExMTRBMTY5QworOjEwMTlDMDAwNEExN0VFRkU4ODBFNzEwODAwMTY3MTA2MDAxNzExMDdGRgorOjEwMTlEMDAwRjA2NjAwMERGMDAwMjVBMDg4MTE3NjAxMDAwNjgxMDA1OAorOjEwMTlFMDAwRjI3NDA2Q0VGMDAwMDAwMTc2MDEwMDA2NzAwMDAwMTZDOQorOjEwMTlGMDAwNDgxMUYyNzQwNkNFRjAwMDAwMDc3MDgxMDAxN0VFMDI2NQorOjEwMUEwMDAwOEExNzhBMTY4QTExRkMwMDRBMTE4ODBFNzEwMjAwMTI4OAorOjEwMUExMDAwMTEwM0YwNjYwMDBERjAwMDI0MDA4ODExRjQ5NTcwODEyOAorOjEwMUEyMDAwMDAxMjZFRTJGRkZFMEU4REY0OTVFODAwRTgwMTgwRTEwMQorOjEwMUEzMDAwMDAwMjc2RTEwMDAzMDBGRjc2RTEwMDA0MDAwMDc2RTE5OQorOjEwMUE0MDAwMDAwQjAwMDA3NkUxMDAwQzAwMDA4MUUxMDAwMThBMTEyQQorOjEwMUE1MDAwRkMwMDRBMTFFRUZDODgwRUY0OTVGMTY2MDAwREYzMDBDRgorOjEwMUE2MDAwMjQwMDg5MTFGNDk1RjQ5NTc2RTEwMDBDMDAwMDc2RTFFQworOjEwMUE3MDAwMDAwQjAwMDA3NkUxMDAwMjAwMDE3NjAwMDAwMDc2MDExNAorOjEwMUE4MDAwMDAwMDgwMDI3NjAzMDAwMEYyNzQwQ0I5RjQ5NUU4MDBCRgorOjEwMUE5MDAwRUUwNDhBMTFGQzAwNEExMTg4MTlGNDk1NzMxOTAwMEU5RQorOjEwMUFBMDAwRjE2NjAwMERGMjAwMjQwMDc3MTUyNUEwNzcxNDAwMDBFMAorOjEwMUFCMDAwNzcxQTAwMUZGMDcyMEYxNEY2Qjg0OTE5MDk4NUY4NEMwRgorOjEwMUFDMDAwMEYxM0YxMDAwMDA1ODkxMTQ5MTVGMzAwMDAwMTg5MTM3NgorOjEwMUFEMDAwNDkxNUYzMDAwMDA3ODkxMjExOTMxRDkxMTk5Mjg5MTA3RAorOjEwMUFFMDAwRjQ5NUY0OTU2QzgwMEYxMzExOTMxRDkxMTk5Mjg5MTA0MAorOjEwMUFGMDAwRjQ5NUY0OTU2QzgwMEYxMzExOTMxRDkxMTk5Mjg5MTAzMAorOjEwMUIwMDAwRjQ5NUY0OTU2QzgwMEYxMzExOTMxRDkxMTk5Mjg5MTAxRgorOjEwMUIxMDAwRjQ5NUY0OTU2QzgwMEYxMzExOTMxRDkxMTk5Mjg5MTAwRgorOjEwMUIyMDAwRjQ5NUY0OTU2QzgwMEYxMzExOTMxRDkxMTk5Mjg5MTFGRQorOjEwMUIzMDAwRjQ5NUY0OTU2QzgxMEYxMzZEOTQ2REVEMDAwRDQ4MTRDMAorOjEwMUI0MDAwOEExMUZDMDA0QTExNEExNjRBMTdFRUY4ODgxNzEwMEQ0MAorOjEwMUI1MDAwODAwNDEwMEM4MDA1NzEwRTAwMTY3MzE3MDAwRUYwNjZERAorOjEwMUI2MDAwMDAwREYwMDAyNDAwODgxMTEwRjgyNzYzRjg0NTBGMzJBQgorOjEwMUI3MDAwRjI3NDBFOUZGNDk1NDgxNzEwRjgyNzYwRjg0NDBGM0Q1MworOjEwMUI4MDAwNjBFMTAwMDIwMDAxRjgyMDBGNkRGMDczMTEzMzEwMDRDMgorOjEwMUI5MDAwODAwMDEwMDVGMDc0MDY5RjExMDRGMzAwMDAwMTgxMDQxOQorOjEwMUJBMDAwNkQ4RTc3MTAwMDAxNzFFMTAwMDIwMDEyRjRBQUY4MzA4NgorOjEwMUJCMDAwMEY2Mjc3MTAwMDAyRjRBQUY4MzAwRjZENDVFMTAwMEJCOAorOjEwMUJDMDAwODgxMDQzRTEwMDBDODNGODAwMTJGNDk1RjQ5NUY0QUExMAorOjEwMUJEMDAwRjgzMDBGNkRGMDczMEY5NkY1MDA4MTA0NDkxNkY1MjA2QgorOjEwMUJFMDAwODkxNjc2RTEwMDBDMDAwMDc2RTEwMDA0MDAwMDQ4MTYzQQorOjEwMUJGMDAwRjg0NTExMzNGN0I4NzFFMTAwMDIwMDEyMTBGODAwMTIzNQorOjEwMUMwMDAwRjAxMDAwMDNGODQ2MEY4QzEwRjgwMDEyRjAxMDAwMDNEQgorOjEwMUMxMDAwRjg0NTEwMTY3NzEwMDAwMUY0QUFGODMwMEY5Qzc3MTBFMQorOjEwMUMyMDAwMDAwMkY0QUFGODMwMEZBOEYwNzMwRjk2NzcxMDAwMDRBMgorOjEwMUMzMDAwRjRBQUY4MzAxMEI3NzcxMDAwMDVGNEFBRjgzMDEwQkNGOQorOjEwMUM0MDAwRjI3NDBFOUZGNDk1NDgxN0YwNzMxMTMxNzZFMTAwMEM5MQorOjEwMUM1MDAwMDAwMDc2RTEwMDBCMDAwMDc2RTEwMDA0MDAwMDc2RTE3MAorOjEwMUM2MDAwMDAwMjAwMDIxMUUxMDAwQ0U4MDNGNjIwODkxMkY0OTU0RAorOjEwMUM3MDAwNzcxMDAwMDNGNUFBRjgzMDBGQjY2QkY4Mjc2RjAwMDE1NAorOjEwMUM4MDAwODgxMEY0OTVGNDk1RjVBRUY4MjAwRkJENDgxNjgwMDYzRgorOjEwMUM5MDAwODgxM0Y0OTU3NzEwMDAwM0Y2QUJGODIwMEZDODZCRjhBMworOjEwMUNBMDAwMjc2RjAwMDExMjA2Rjg0NTEwMDAxMEUxMDAwNDgwMDBDMworOjEwMUNCMDAwMTAwNTgwMDExMDA0ODAwMjEwMDY4MDAzNDgxMUYyNzRBMAorOjEwMUNDMDAwMDcxRUYwMDAwMDA1MTAwNjAwRTEwMDA0ODBFMTAwMDQ5QQorOjEwMUNEMDAwMTAwNjAwRTEwMDBDODBFMTAwMEM4ODEyMTEwNjEwMDRDRgorOjEwMUNFMDAwRjYwMDgwMDQ0ODE2RjYyMDg4MTY4OTEzRjQ5NTc3MTBCQworOjEwMUNGMDAwMDAwM0Y2QUJGODIwMEZGNTZCRjgyNzZGMDAwMTc3MTBBMworOjEwMUQwMDAwMDAwQzcxRTEwMDA0MDAxM0Y2QUJGODIwMTAwMDZCRjgzMgorOjEwMUQxMDAwMjc2RjAwMDE2Q0UyRkZGRDExMzFGNkI4NkZFMTAwMDU5RAorOjEwMUQyMDAwMEM0ODZGRTEwMDA2MEMxOEYwMzAwRkZGRjAwMDAwMDNDNAorOjEwMUQzMDAwODBFMTAwMEI3NkUxMDAwMjAwMDM0ODE2Rjg0NTExMzNGQworOjEwMUQ0MDAwNzFFMTAwMEMwMDEyMTBFMTAwMEI0OTEyRjYyMDg4MTMxQgorOjEwMUQ1MDAwRTgwQ0Y2MjA4ODEwRjQ5NUY0OTVGNUFCRjgyMDEwMjdFMAorOjEwMUQ2MDAwNDgxMzgwMDY4ODEwRjQ5NUY0OTVGNUFFRjgyMDEwMzBFRAorOjEwMUQ3MDAwNzAwNjAwMTYxMjA2Rjg0NTEwNUYxMEUxMDAwNDgwMDA5RQorOjEwMUQ4MDAwMTAwNTgwMDExMDA0ODAwMjEwMDY4MDAzNDgxMUYyNzRDRgorOjEwMUQ5MDAwMDcxRUYwMDAwMDA1MTAwNjAwRTEwMDA0ODBFMTAwMDRDOQorOjEwMURBMDAwMTAwNjAwRTEwMDBDODBFMTAwMEM4ODEyMTEwNjEwMDRGRQorOjEwMURCMDAwRjYwMDgwMDQ0ODE2RjYyMDg4MTZGNDk1NzcxMDAwMEM3QgorOjEwMURDMDAwNzFFMTAwMDQwMDEzRjZBQkY4MjAxMDVGNkJGODI3NkY4OQorOjEwMUREMDAwMDAwMTc3MTAwMDBDRjZBQUY4MjAxMDZCRjI3NDBFOUYyOQorOjEwMURFMDAwRjQ5NTQ4MTc3MUUxMDAwQzAwMTI3NzEwMDAwQ0Y0QUE2QQorOjEwMURGMDAwRjgzMDEwN0M3NzEwMDAwQzcxRTEwMDBCMDAxM0Y2QUI4QgorOjEwMUUwMDAwRjgzMDEwQjRFNzMwRjdBQUY4MzAxMEI0RjI3NDBFQzEwRAorOjEwMUUxMDAwRjQ5NTQ4MTc4ODEyRjQ5NUY0OTU2QzgyMTA4RDc2RTE0QworOjEwMUUyMDAwMDAwNDAwMDA3NkUxMDAwMjAwMDVGMDczMTBCNDc2RTFEMgorOjEwMUUzMDAwMDAwMjAwMDQ3NzEwMDAwQzcxRTEwMDBCMDAxMkY1QUFGQgorOjEwMUU0MDAwRjgyMDEwOUFGMDczMTA5Qzc3MTIwMDBDNzYwMDAwMDBCNgorOjEwMUU1MDAwNzAwMTAwMTI3MDAyMDAxNzc2MDMwMDAxNDgxMUYyNzQzRAorOjEwMUU2MDAwMENCOUYwMDAwMDA1NzZFMTAwMDQwMDAwNzcxMDAwMENDQQorOjEwMUU3MDAwNzFFMTAwMEIwMDEyRjZBQUY4MjAxMTFDNDgxNkY4NDU3MworOjEwMUU4MDAwMTEzMzYwRTEwMDAyMDAwNUY4MjAxMERGMTBFMTAwMEJDMworOjEwMUU5MDAwMDhFMTAwMEMxMUUxMDAwNEY4NEQxMEM3NkJGODI3NkY0MgorOjEwMUVBMDAwMDAwMTg4MTBGNDk1RjQ5NUY1QUVGODIwMTBDRjQ4MTY4RgorOjEwMUVCMDAwRjQ5NTQ4MDhGODQ1MTExNjZGRTEwMDBDMEQwMDgxRTExQQorOjEwMUVDMDAwMDAwQzExMDRGNTAwODEwNDQ5MTZGNTIwODkxNkYwNzMwMQorOjEwMUVEMDAwMTEwRTEwRTEwMDBCNzFFMTAwMEMwMDEyODgxMEY0OTU1NgorOjEwMUVFMDAwRjQ5NUY2QUFGODMwMTExNjQ5MTJGNjIwODgxMEY0OTVFOAorOjEwMUVGMDAwRjQ5NUY1QUVGODIwMTBGMzQ4MTY4MDA2NDgwOEY4NDUyQQorOjEwMUYwMDAwMTExNjEwMDQ3MDAyMDAxNzgwMDA3NjAzMDAwMDEwMDZGRQorOjEwMUYxMDAwODAwMTEwMDVGMDc0MENCOTEwMDYwMEUxMDAwQzgwRTE5RQorOjEwMUYyMDAwMDAwQzExMDYxMDA0RjYwMDgwMDQ0ODE2RjYyMDg4MTZFRQorOjEwMUYzMDAwMTBFMTAwMEMwOEUxMDAwQkY4NDUxMTFDRjA3MzExMzFBMQorOjEwMUY0MDAwRjI3NDBFOUZGNDk1NDgxN0YwNzMxMTMzNzZFMTAwMEM4QworOjEwMUY1MDAwMDAwMDc2RTEwMDBCMDAwMDc2RTEwMDAyMDAwMTEwMDRCMQorOjEwMUY2MDAwODAwMDEwMDVGMDc0MDY5Rjg4MTJGNDk1NzcxMDAwRkYyQQorOjEwMUY3MDAwRjRBQUY4MzAxMTMzNkM4NjBGNzBFRTA4OEExNzhBMTZBRgorOjEwMUY4MDAwOEExMUZDMDA0QTExRUVGQ0Y0OTU3MTA2MDAxMjg4MTFDQQorOjEwMUY5MDAwNzMxMjAwMEVGMTY2MDAwREYzMDAyNDAwODkxNDEzODEwMgorOjEwMUZBMDAwRjc3QUYzMzAwMDAxODFGODI3NjAxM0UxMDAwMUY3N0MzNAorOjEwMUZCMDAwRjMzMDAwMDM4MUY4Mjc2MUU5MEYxOUUxMDAwMTgxRjg4RQorOjEwMUZDMDAwMjc2MjcxRTQwMDAzMDAxM0Y2Qjg0OTEzRjMwMDAwMDExRgorOjEwMUZEMDAwRjMzMDAwMEY0OTBCMDlGODI3NjJGODREMTE3NTc3MTA5RgorOjEwMUZFMDAwMDBGRkY0QUJGODMwMTE3NTU3RjgyNzZDRjMwMDAwMDFDRgorOjEwMUZGMDAwNEZGODI3NkM3NkY4Mjc2MzAwMDFGMDczMTE3ODc2RjhCNAorOjEwMjAwMDAwMjc2MzAwMDA3MEU0MDAwMzI3NjI3NkY4Mjc2NDAwMDA2RAorOjEwMjAxMDAwMTFGODI3NjE2MUY4MDAwQjAwMDJGODIwMTE4REU5MDEyOQorOjEwMjAyMDAwNkZFMTAwMDIwRjE4ODFGODI3NjQxMUY4Mjc2MTYxRjg0OQorOjEwMjAzMDAwMDAwQjAwMDFGODIwMTFBOTEwRjgyNzY0RjEwMDAwMDQzQQorOjEwMjA0MDAwODkxM0U5QjhGNTIwODFGODI3NjU2MDg0MDAwMkY4MjAzQgorOjEwMjA1MDAwMTFBOTcwMDAwMDExNzAwMTAwMTM3MDAyMjc2NUYyNzQ1RAorOjEwMjA2MDAwMEYxOEY0OTU0ODEyRUUwNDhBMTFGQzAwNEExMTRBMTYyMgorOjEwMjA3MDAwNEExN0VFRkNFODAwNEVGODI3NjZFODAwNEVGODI3Njg5RAorOjEwMjA4MDAwRTgwMDRFRjgyNzZDRTgwMDRFRjgyNzZBNzcxMjI3NDBFMAorOjEwMjA5MDAwNzcxMTI0MDA3NzFBMDAxRkYwNzIxMURCNzA5MjAwMTE4MworOjEwMjBBMDAwNzZFMTAwMDFGRkZGNzY4MTAwMDA3NkUxMDAwMjAwMDA4QQorOjEwMjBCMDAwNzZFMTAwMDMwMEZGNzZFMTAwMEMwMDAwNzZFMTAwMEIwMgorOjEwMjBDMDAwMDAwMDc2RTEwMDA0MDAwMDZERTkwMDBERjAyMDI1QTA3RAorOjEwMjBEMDAwRjEwMDAwMDc4OTExRjEwMDAwMDE4MTAyODgxNkY0OTVEMgorOjEwMjBFMDAwNzcxNzAwMjA3Njg2MDBGRjc2MDAwMDAwNzYwMTAwMDY1NAorOjEwMjBGMDAwMTAwMkYwNzQwNjZDNzYwMDAwMDA3NjAxMDAwNkYyNzQ5RgorOjEwMjEwMDAwMDY2Q0Y0OTU0ODExMTAwMkYwMDAwMDBEODAwMjZERTk5NAorOjEwMjExMDAwMDAwRDZERUUwMDBENkNFRkZGRkYxMUU4RjA3NDBDOURFQgorOjEwMjEyMDAwRUUwNDhBMTc4QTE2OEExMUZDMDA0QTExNEExNjRBMTdDOQorOjEwMjEzMDAwRUVGQTg4MTExMDBBNDkxMUY4NEQxMjlGNDgwOEY4NDUyNworOjEwMjE0MDAwMTI5RjgwMDQxMjgxRjU3ODg5MTJGNDk1RjQ5NTZDRTI1RgorOjEwMjE1MDAwRkZCOTEyOEE2MUY4MDAwODAwODBGODMwMTI4QTEzRTE5MgorOjEwMjE2MDAwMDAwMUYwRThGNzc4RjFBMEYyMzAxRkZGODgxN0Y0OTUyRQorOjEwMjE3MDAwNzcxMjI0MDA3NzE2MDAwMDc3MTMwMDIwRjZCODQ4MTc2RQorOjEwMjE4MDAwMDhFMjAwMDFGODQ1MTI0MjZERUEwMDBENkQ5NjZDRUIxNQorOjEwMjE5MDAwRkZGRjEyMzRGMDczMTI5MDU2RjgyNzZBRjAwMDAwMDEyNgorOjEwMjFBMDAwNEVGODI3NkE2MDgyMDAwMUY4MzAxMjU0NzAwMDAwMTY2MQorOjEwMjFCMDAwRjI3NDExMzhGNDk1NDgxMUYwNzMxMjkwNzAwMDAwMTYwMworOjEwMjFDMDAwRjI3NDExMzhGNDk1NDgxMTcyMTAyQTlFRjQ5NUY0QUYwOAorOjEwMjFEMDAwRjgzMDEyNkU3NjAwMDAwMDc2MDEwMEJDNzAwMjAwMTYyNgorOjEwMjFFMDAwNzYwMzAwMDBGMjc0MENCOUY0OTU0ODExRjA3MzEyOTA2NAorOjEwMjFGMDAwMTBGODI3NkVGODQ0MTI5MDc2MDAwMDAwNzYwMTAwQkNCQgorOjEwMjIwMDAwNzAwMjAwMTY3NjAzMDAwMEYyNzQwQ0I5RjQ5NTQ4MTFDMAorOjEwMjIxMDAwRjA3NDBDNUVGMEUwRjAxMDEzODhGODQyMTI5MDc2RjgzQgorOjEwMjIyMDAwMjc2RTAwMDFGMDczMTI5MDU2RjgyNzY2RjAwMDAwMDE0NworOjEwMjIzMDAwNEVGODI3NjY2REU5MDA1RTU2RjgyNzY4RjAwMDAwMDE0OQorOjEwMjI0MDAwNEVGODI3Njg3MTA0MDAxMjZFRUFGRkZGMTIxODcwMDQzRQorOjEwMjI1MDAwMDAxMkVFMDY4QTE3OEExNjhBMTFGQzAwNEExMUVFRkU1OQorOjEwMjI2MDAwODgwRUY0OTVGMDY2MDAwREYwMDAyNUEwODgxMUY0OTUxNQorOjEwMjI3MDAwRjQ5NTc2ODEwMEZGNzYwMDAwMDA3NjAxMDAwNkYyNzQ4NgorOjEwMjI4MDAwMDY2Q0YwMDAwMDAxNzYwMDAwMDA3NjAxMDAwNjQ4MTE5RgorOjEwMjI5MDAwRjI3NDA2NkNGMDAwMDAwN0VFMDI4QTExRkMwMDRBMTE4RAorOjEwMjJBMDAwODgwRUY0OTVGMDY2MDAwREYwMDAyNDAwODgxMUY0OTU3NgorOjEwMjJCMDAwRjQ5NTc2RTEwMDAxRkZGRjc2ODEwMDAwNzZFMTAwMDJFRgorOjEwMjJDMDAwMDAwMDc2RTEwMDAzMDBGRjhBMTFGQzAwNEExMUY0OTUzQQorOjEwMjJEMDAwMTMwMzg4MTFGQTREMTJFQzcxMDIwMDEyRjMxMDAwMDE4MQorOjEwMjJFMDAwODkxQUY0OTVGMDcyMTJFQjcwOTEwMDEyOEExMUZDMDBCOQorOjEwMjJGMDAwRjQ5NTRBMEI0QTBDNEEwREY3QjhFRUZFMTBGODAwMDhBOAorOjEwMjMwMDAwMTEwNkYxQzA4MzAwRjQ4NTExMDZGNzg1ODEwNkY2Qjg0MQorOjEwMjMxMDAwRUMwRjFFMDY2MTAwODAwMEY4MjAxMzA1RjQ4NEVFMDIyNQorOjEwMjMyMDAwOEEwRDhBMEM4QTBCRkMwMEY0OTU0QTBCNEEwQzRBMEQ2NAorOjEwMjMzMDAwRUVGRUY3Qjg4MDAwMTBGODAwMDhGNDg1MTEwNkY3ODU2NgorOjEwMjM0MDAwODEwNkY2QjhFQzBGMUUwNkYwRjA2MTAwODAwMEY4MjA2MAorOjEwMjM1MDAwMTMyMEY0ODRFRTAyOEEwRDhBMEM4QTBCRkMwMDRBMTFDOQorOjEwMjM2MDAwNzcxMTAwN0I3NjgxMkVFQzc3MTEwMDdCRUVGRjcxODE3NworOjEwMjM3MDAwMDAxMUVFMDE3NkUxMDAwMTAwMDA3NkUxMDAwNDAwMDBBQQorOjEwMjM4MDAwNzZFMTAwMDYwMDAwNzZFMTAwNjIwMDAwNzZFMTAwNzY2QQorOjEwMjM5MDAwMDAwMDc2RTEwMDkyMDAwMDc2RTEwMDk0MDAwMDc2RTExMgorOjEwMjNBMDAwMDBCMDAwMDA3NkUxMDBCMzAwMDA3NkUxMDBCRTAwMDA1RQorOjEwMjNCMDAwNzZFMTAwQkYwMDAwNzZFMTAwQzEwMDAwNzZFMTAwQzNENQorOjEwMjNDMDAwMDAwMDc2RTEwMEM1MDAwMDc2RTEwMEM3MDAwMDc2ODFEQworOjEwMjNEMDAwMDAwMDhBMTFGNDk1RjRFNDRBMTE0QTE2NEExN0VFRkZGOAorOjEwMjNFMDAwRjQ5NTcxMDYwMDE2RkI4MDE2QTI4ODE3RjQ5NUY3QjhDRAorOjEwMjNGMDAwMTBGODAwMTdGMDEwMDAwMkZBNDYxMzg4NzcxMTAwMDA1OQorOjEwMjQwMDAwMTBGODAwMTdGMDEwMDAwMkY4NDUxM0Y5MTBGODAwMTc0MworOjEwMjQxMDAwRjg0NTE0MzkxMEY4MDAxN0YwMTAwMDAxRjg0NTE0MUZBMgorOjEwMjQyMDAwRjA3MzE0NTIxMEY4MDAxN0YwMTAwMDAzRjg0NTEzRDM5RQorOjEwMjQzMDAwMTBGODAwMTdGMDEwMDAwNkY4NDQxNDUyNzcxMjAwN0JEMQorOjEwMjQ0MDAwNzE4MjAwMTQ2MUU0MDAwNzAwNDBGODMwMTQ1MjQ5MTQwRQorOjEwMjQ1MDAwNDgxN0Y2MDA4ODEyRjQ5NTc3MTMwMDU1NzcxMTAwNTc0NgorOjEwMjQ2MDAwNkRFQTAwM0JFNTAxMTBFNjAwMDY4MDgxNDgxNDAwRjhBMworOjEwMjQ3MDAwMDAxNzg4MTJGNDk1NzcxMTAwNTUxMEUyMDA0MDgwODExMgorOjEwMjQ4MDAwNzcxMTAwNTcxMEU2MDAwNzgwODE3NzExMDA1NTEwRTJBMAorOjEwMjQ5MDAwMDA0NTgwODExMEU2MDAwODc3MTEwMDU3ODA4MTc3MTE5MAorOjEwMjRBMDAwMDA1NTEwRTIwMDRBODA4MTc3MTEwMDU3MTBFNjAwMDlCQworOjEwMjRCMDAwODA4MUYyNzMxNDUyNzcxMTAzQzA3NzEyMDA3QjEwODI2RgorOjEwMjRDMDAwRjAwMDAwMDc4ODEzRjQ5NUY0OTU5NjFCRjgzMDE0NTIyOQorOjEwMjREMDAwMTBFMzAwMzU3NzEyMDA1NTgwODI3NzEyMDA1NzEwRTYxRQorOjEwMjRFMDAwMDAwNDgwODI3NzEyMDA1NTEwRTMwMDM3ODA4Mjc3MTI1MworOjEwMjRGMDAwMDA1NzEwRTYwMDA1ODA4MjQ4MTFGMDQwMDAxMEYyNzM4QQorOjEwMjUwMDAwMTQ1MEYwNDAwMDIwNzcxMjAwN0IxMDgyRjAwMDAwMDc4QQorOjEwMjUxMDAwODgxMkY0OTVGNDk1OTYwREY4MzAxNDUyMTBFMjAwMzRCOAorOjEwMjUyMDAwNzcxMzAwNTU4MDgzNzcxMzAwNTcxMEU2MDAwMjgwODNFRAorOjEwMjUzMDAwMTBFMjAwMzY3NzEyMDA1NTgwODI3NzEyMDA1NzEwRTZCRAorOjEwMjU0MDAwMDAwMzgwODI0ODExRjA0MDAwMDRGMjczMTQ1MEYwNDAwMAorOjEwMjU1MDAwMDAwODc3MTIwMDdCMTA4MkYwMDAwMDA3ODgxMkY0OTVDMworOjEwMjU2MDAwRjQ5NTk2MEVGODMwMTQ1MjEwRTIwMDMzNzcxMjAwNTVBRAorOjEwMjU3MDAwODA4Mjc3MTIwMDU3MTBFNjAwMDE4MDgyNDgxMUYyNzNDMgorOjEwMjU4MDAwMTQ1MEYwNDAwMDAyNzcxMjAwN0IxMDgyRjAwMDAwMDcyOAorOjEwMjU5MDAwODgxMkY0OTVGNDk1OTYwRkY4MzAxNDUyMTBFMjAwMzIzOAorOjEwMjVBMDAwNzcxMjAwNTU3NzEzMDA1NzgwODI0ODExRTc2MkYwNDA5OAorOjEwMjVCMDAwMDAwMUU1MDE4ODExRjQ5NTc3MTIwMDdCNDgxMTcxODJDMgorOjEwMjVDMDAwMDAxMjFBRTIwMDA3ODBFMjAwMDdGOTgwMTY5QUVFMDE3NQorOjEwMjVEMDAwOEExNzQ4MTE4QTE2OEExMUY0RTQ0QTExODgxMTc3MEU3NQorOjEwMjVFMDAwMDAwNTc3MTIwMDU1RTgwNEY2QjgyOEUxMDAwMkVFRkY3NgorOjEwMjVGMDAwODA4Mjc3MTIwMDU3RjAyMDgwMDBFRTAxMUE4Mjc3MTI1NQorOjEwMjYwMDAwMDA1NzgwODJFODAxMzJFMTAwMDJGNTgyNzcxMTAwNTQyMAorOjEwMjYxMDAwRjY5MzE4ODE3NzExMDA1NEYyQTA4MDgxOEExMUY0OTUwNQorOjEwMjYyMDAwRjRFNDRBMTE0QTE2RjQ5NTcxMDQwMDExRkI4MDE2QTJENQorOjEwMjYzMDAwODgxNkY0OTU3NzEyMDA1NTEwRTYwMDAzODA4Mjc3MTIxMQorOjEwMjY0MDAwMDA1NjEwRTEwMDAyNzcxMzAwNTY4MDgyNzcxMjAwNTY4MAorOjEwMjY1MDAwMTBFMTAwMDM4MDgyMTBFMTAwMDQ3NzEyMDA1NjgwODJBRQorOjEwMjY2MDAwNzcxMjAwNTYxMEUxMDAwMTgwODJFNzEyRTUwMUY5ODAzRgorOjEwMjY3MDAwMTY5QThBMTY4QTExRjRFNDRBMTE0QTE2NEExN0VFRjk5NAorOjEwMjY4MDAwNzcxMTAwN0I3NjAwMDAxNjc2MDEwMDE3NzYwMjAwMUE5QgorOjEwMjY5MDAwNzYwMzAwMUI3NjA0MDAxQzc2MDUwMDFENzE4MTAwMTc2RgorOjEwMjZBMDAwNzFFNzAwMDYwMDExMTA4MUY4NDQxNERGRjk4MDE2NTMxOQorOjEwMjZCMDAwRjZCOEZCODAxNTg1RjAyMEZGRkZGNkI4RkI4MDE2MDgwMgorOjEwMjZDMDAwRjAyMEZGRkY3NzExMDA3QjcxODEwMDE3NzZFNzAwMDY4RAorOjEwMjZEMDAwMDAwMTQ4MTc3NzE2MDAwMDc3MTAwMDA0NzcxNTAwMDNGMworOjEwMjZFMDAwNzcxNDAwMDI3NzEzMDAwMUYwMDAwMDM5NzZFNzAwMDg0NAorOjEwMjZGMDAwMDAxRjc2RTcwMDA3MDAwMDg4MEU3NzFBMDAwNTQ4MTdDQworOjEwMjcwMDAwRjAwMDAwMDk4ODEyNDgxODg4MTlFODAwRjA3MjE1MkNBQQorOjEwMjcxMDAwNzMxOTAwMTE3NjgyMDAwMDExOTE3MzExMDAxOTcwRTI5MworOjEwMjcyMDAwMDAwMzAwMTY3MEUyMDAwNDAwMTM3MEUyMDAwNTAwMTRCQworOjEwMjczMDAwODFFMjAwMDE3MEUyMDAwNjAwMTU3MEUyMDAwNzAwMTA1RgorOjEwMjc0MDAwODBFMjAwMDI3MzBFMDAxMUYxMDAwMDFFNkRFRTAwMDUyNAorOjEwMjc1MDAwNkRFQjAwMDU2REVDMDAwNTZERUQwMDA1NkRFODAwMDUwNQorOjEwMjc2MDAwRjAwMDAwMDE4MTkxNkRFQTAwMDg3MzExMDAwRUVFMDc4MAorOjEwMjc3MDAwNzZFNzAwNDEwMDI0NzZFNzAwNDYwMDI1NzZFNzAwNEIyNworOjEwMjc4MDAwMDAyNjc2RTcwMDUwMDAyNzhBMTc4QTE2OEExMUY0RTQ5QgorOjEwMjc5MDAwNEExMTRBMTZFRUZFODgxMTU2MDY0RTAwRjk4MDE2QTIxRQorOjEwMjdBMDAwRjdCODEwRjgwMDExRjAxMEZGRkZGQTQ1MTU2MDc3MTYyMgorOjEwMjdCMDAwRkZGRjc3MTIwMDdCNDkxMTEwODJGNjAzRjAwMDAwMDkzOQorOjEwMjdDMDAwODgxMUY0OTVGNDk1MTA4MUY4NDQxNTcxRjI3MzE1NzEyMAorOjEwMjdEMDAwRjQ5NUU3MTY3NzExMDA3QjEwODFGMDAwMDAwOTg4MTE0RAorOjEwMjdFMDAwRjQ5NTc3MTIwMDA2MTA4MUY4NDUxNTVDNkVFQUZGRkYzQworOjEwMjdGMDAwMTU2OTZERTkwMDA4NzY4NjAwMDFFOTAxNTYwMEYxODA0RgorOjEwMjgwMDAwMTBGODAwMEJGODQ1MTU3RUZCODAxNTg1RjQ5NTQ4MTZFOQorOjEwMjgxMDAwRjk4MDE2OUFFRTAyNDgxNjhBMTY4QTExRjRFNDRBMTFEMworOjEwMjgyMDAwRUVGRkZCODAxNkEyODgxMUY0OTU3NzEwRkZGRkY0QTk0NAorOjEwMjgzMDAwRjgzMDE1QzQxMEUxMDAwMzc3MTIwMDU1ODA4Mjc3MTIzQQorOjEwMjg0MDAwMDA1Njc2ODIwMDAwNzcxMjAwNTY3NjgyMDAwMDc3MTJEQQorOjEwMjg1MDAwMDA1Njc2ODIwMDAwNzcxMjAwNTY3NjgyMDAwMDc3MTJDQQorOjEwMjg2MDAwMDA1Njc2ODIwMDAwMTBFMTAwMDJGMDAwMDAwODMyRjgwNQorOjEwMjg3MDAwMDAwODc3MTIwMDU0RTgwMUY0ODJGNDkzMTg4Mjc3MTI2QQorOjEwMjg4MDAwMDA1NEYwNDAwMDAwODA4MjEwRTEwMDAxRjk4MDE2NzZDQgorOjEwMjg5MDAwMTBFMTAwMDFGOTgwMTY2NkYwNzMxNjAzNzcxMTAwN0JEMgorOjEwMjhBMDAwNzE4MTAwMTE3MUUxMDAwNzAwMTI3NjgyMDAwMDEwRTFEMQorOjEwMjhCMDAwMDAwOUY5ODAxNTg1NzcxMTAwN0I3MTgxMDAxMTEwRTEwNQorOjEwMjhDMDAwMDAwOUZCODAxNTg1RjAwMDAwMDg3NzExMDA3QjcxODFGRAorOjEwMjhEMDAwMDAxMTEwRTEwMDA5RkI4MDE1ODVGMDAwMDAxMDc3MTE1MAorOjEwMjhFMDAwMDA3QjcxODEwMDExMTBFMTAwMDlGQjgwMTU4NUYwMDA2QgorOjEwMjhGMDAwMDAxODc3MTEwMDdCNzE4MTAwMTExMEUxMDAwOUZCODA0NQorOjEwMjkwMDAwMTU4NUYwMDAwMDIwNzcxMTAwN0I3MTgxMDAxMTEwRTEyNgorOjEwMjkxMDAwMDAwOUZCODAxNTg1RjAwMDAwMjhGOTgwMTY5QUVFMDE2OQorOjEwMjkyMDAwOEExMUY0RTQ0QTExRUVGRkZCODAxNkEyODgxMUY0OTU5NworOjEwMjkzMDAwNzcxMEZGRkZGNEE5RjgzMDE2NDE3NzExMDA1NTc2ODEyMgorOjEwMjk0MDAwMDAxRTc3MTEwMDU2NzY4MTAwMDA3NzExMDA1Njc2ODFCRgorOjEwMjk1MDAwMDAwMDc3MTEwMDU2NzY4MTAwMDA3NzExMDA1Njc2ODFDRAorOjEwMjk2MDAwMDAwMDc3MTEwMDU2NzY4MTAwMDA3NzExMDA1Njc2ODFCRAorOjEwMjk3MDAwMDAwMDc3MTEwMDU2NzY4MTAwMDA3NzExMDA1Njc2ODFBRAorOjEwMjk4MDAwMDAwMDc3MTEwMDU2NzY4MTAwMDA3NzExMDA1NkYyNzMyRgorOjEwMjk5MDAwMTY0RTc2ODEwMDAwNzcxMTAwN0I3MTgxMDAxMTcxRTE4NAorOjEwMjlBMDAwMDAwNzAwMTI3NjgyMDAwMDEwRTEwMDM5Rjk4MDE2MDg1NQorOjEwMjlCMDAwRjk4MDE2OUFFRTAxOEExMUY0RTQ0QTExNzcxMTAwN0IyRQorOjEwMjlDMDAwMTA4MUYwMDAwMDA0ODgxMUY0OTVGNDk1MTA4MUZBNDQwOAorOjEwMjlEMDAwMTY2M0Y0OTVFRUZGNzY4MTAwMDFFRTAxOEExMUY0RTRBRQorOjEwMjlFMDAwRjAxMDAwMTA0QTExMzJGODAwMDhFRUZGNzcxMTAwMDFENAorOjEwMjlGMDAwRTgwMUVFMDFGNDgyMUE4MTgwODE4QTExRjQ5NUY0RTRGMQorOjEwMkEwMDAwRjAxMDAwMTA0QTExMzJGODAwMDhFRUZGRTgwMTc3MTFDQgorOjEwMkExMDAwMDAwMEY0ODJFRTAxRjQ5MzE4ODE4MDgxOEExMUY0OTUwQworOjEwMkEyMDAwRjRFNDRBMTFGMDEwMDAxMDc3MTEwMDAwMzJGODAwMDhBOQorOjEwMkEzMDAwRUVGRjExODFFODAxRUUwMTc3MTEwMDAwRjQ4MkYyQTBBRgorOjEwMkE0MDAwODA4MThBMTFGNDk1RjRFNEYyNzMxNjlFRjZCQkY0OTUzNgorOjEwMkE1MDAwRjQ5NUY0OTVGNDk1RjRFNEYyNzMxNkE2RjdCQkY0OTVBNworOjEwMkE2MDAwRjQ5NUY0OTVGNDk1RjRFNDRBMTE0QTE2RjQ5NTcxMDQzQQorOjEwMkE3MDAwMDAxNkZCODAxNkEyODgxMUY0OTU3MUUxMDAwNTAwMTI4MgorOjEwMkE4MDAwNzY4MjAwMEUxMEU2MDAwRTcxRTEwMDA2MDAxMjgwODJEMAorOjEwMkE5MDAwNzFFMTAwMDUwMDEyNzY4MjAwMEQ3MUUxMDAwNjAwMTI1RQorOjEwMkFBMDAwMTBFNjAwMEQ4MDgyNzFFMTAwMDUwMDEyNzY4MjAwMENCNAorOjEwMkFCMDAwMTBFNjAwMEM3MUUxMDAwNjAwMTI4MDgyNzFFMTAwMDU1MQorOjEwMkFDMDAwMDAxMjc2ODIwMDBCMTBFNjAwMEI3MUUxMDAwNjAwMTI4NgorOjEwMkFEMDAwODA4MjcxRTEwMDA1MDAxMjc2ODIwMDBBNzFFMTAwMDYzMQorOjEwMkFFMDAwMDAxMjEwRTYwMDBBODA4MjcxRTEwMDA1MDAxMjc2ODI3MQorOjEwMkFGMDAwMDAwOTEwRTYwMDA5NzFFMTAwMDYwMDEyODA4MjcxRTExMAorOjEwMkIwMDAwMDAwNTAwMTI3NjgyMDAwODcxRTEwMDA2MDAxMjEwRTY0RQorOjEwMkIxMDAwMDAwODgwODI3MUUxMDAwNTAwMTI3NjgyMDAwNzEwRTY0RAorOjEwMkIyMDAwMDAwNzcxRTEwMDA2MDAxMjgwODI3MUUxMDAwNTAwMTJDOQorOjEwMkIzMDAwNzY4MjAwMDY3MUUxMDAwNjAwMTIxMEU2MDAwNjgwODIyRgorOjEwMkI0MDAwNzFFMTAwMDUwMDEyNzY4MjAwMDU3MUUxMDAwNjAwMTJCNQorOjEwMkI1MDAwMTBFNjAwMDU4MDgyNzFFMTAwMDUwMDEyNzY4MjAwMDQxMworOjEwMkI2MDAwNzFFMTAwMDYwMDEyMTBFNjAwMDQ4MDgyNzFFMTAwMDVBOAorOjEwMkI3MDAwMDAxMjc2ODIwMDAzNzFFMTAwMDYwMDEyMTBFNjAwMDNFNQorOjEwMkI4MDAwODA4MjcxRTEwMDA1MDAxMjc2ODIwMDAyMTBFNjAwMDJFOAorOjEwMkI5MDAwNzFFMTAwMDYwMDEyODA4MjcxRTEwMDA1MDAxMjc2ODI2OAorOjEwMkJBMDAwMDAwMTEwRTYwMDAxNzFFMTAwMDYwMDEyODA4MjcxRTE2RgorOjEwMkJCMDAwMDAwNTAwMTI3NjgyMDAwMDcxRTEwMDA2MDAxM0U3NjI1MgorOjEwMkJDMDAwRTUwMUY5ODAxNjlBOEExNjhBMTFGNEU0NEExMTg4MTFFRgorOjEwMkJEMDAwRjQ5NUY0OTU3MUUxMDAwNTAwMTJFRUZGNzY4MjAwMDA5NQorOjEwMkJFMDAwRUUwMTcxRTEwMDA2MDAxMTY5ODEwMDAxOEExMUY0OTU3RQorOjEwMkJGMDAwRjRFNDRBMTE4ODExRjQ5NUY0OTU3MUUxMDAwNTAwMTI4RQorOjEwMkMwMDAwRUVGRjc2ODIwMDAxRUUwMTcxRTEwMDA2MDAxMTY5ODE5QworOjEwMkMxMDAwMDAwMThBMTFGNDk1RjRFNDRBMTE3NzExMDA3QjEwODFDOAorOjEwMkMyMDAwRjAwMDAwOTQ4ODExRjQ5NUY0OTUxMDgxRkE0NDE3OUNGMworOjEwMkMzMDAwRjQ5NUVFRkZGOTgwMTY1Mzc3MTEwMDdCMTA4MUYwMDBCOAorOjEwMkM0MDAwMDA5NDg4MTFGNDk1RjQ5NTc2ODEwMDAxRUUwMTc2RTEwNworOjEwMkM1MDAwMDAwMTAwMDA3NkUxMDAwMjAwMjE3NkUxMDAwMzAwMjA3RgorOjEwMkM2MDAwNzZFMTAwMDQwMDIzNzZFMTAwMDUwMDIyNzZFMTAwMDYwQgorOjEwMkM3MDAwMDAzODc2RTEwMDA3MDAzOTc2RTEwMDA4MDAxNTc2RTFCQQorOjEwMkM4MDAwMDAwOTAwMTQ3NkUxMDAwQTAwMDA3NkUxMDAwQjAwNDEyMworOjEwMkM5MDAwNzZFMTAwMEMwMDQwNzZFMTAwMEQwMDQzNzZFMTAwMEU4NQorOjEwMkNBMDAwMDA0Mjc2RTEwMDBGMDA0ODc2RTEwMDEwMDA0OTc2RTEyRAorOjEwMkNCMDAwMDAxMTAwMUI3NkUxMDAxMjAwMUE4QTExRjQ5NUY0RTQ2OQorOjEwMkNDMDAwNEExMUVFRkQ4ODExNTYwNjRFMDBGOTgwMTZBMjc3MTJDMQorOjEwMkNEMDAwMDA3Qjc3MEUwMDA5MTA4MjI4RjgwMDExRjAwMDAwOTVBMworOjEwMkNFMDAwODgxMUY0OTVGNDk1MTA4MUY4NDUxN0YwRjI3MzE3RkRFQgorOjEwMkNGMDAwNzcxMUZGRkY3NjgxMDAwMUU5MDE1NjAwRjE4MDEwRjg5RAorOjEwMkQwMDAwMDAwQkY4NDUxN0ZERkI4MDE4MTBGNDk1NDgxMUY5ODA2OQorOjEwMkQxMDAwMTY5QUVFMDM0ODExOEExMUY0OTVGNEU0NEExMTg4MTFDOQorOjEwMkQyMDAwRjQ5NUVFRkY3MUUxMDAwMTAwMTFFRTAxMTA4MThBMTFBRQorOjEwMkQzMDAwRjQ5NUY0RTQ0QTExRUVGRkZCODAxNkEyODgxMUY0OTU5NQorOjEwMkQ0MDAwNzcxMEZGRkZGNEE5RjgzMDE4QzM3MUUxMDAwNTAwMTJGNQorOjEwMkQ1MDAwNzY4MjAwMDA3MUUxMDAwNjAwMTI3NjgyMDAwMDcxRTFDNworOjEwMkQ2MDAwMDAwNTAwMTI3NjgyMDAwMTcxRTEwMDA2MDAxMjc2ODJGMQorOjEwMkQ3MDAwMDAwMDcxRTEwMDA1MDAxMjc2ODIwMDAyNzFFMTAwMDY5OAorOjEwMkQ4MDAwMDAxMjc2ODIwMDAwNzFFMTAwMDUwMDEyNzY4MjAwMDNENQorOjEwMkQ5MDAwNzFFMTAwMDYwMDEyNzY4MjAwMDA3MUUxMDAwNTAwMTI2OAorOjEwMkRBMDAwNzY4MjAwMDQ3MUUxMDAwNjAwMTI3NjgyMDAwMDcxRTE3MworOjEwMkRCMDAwMDAwNTAwMTI3NjgyMDAwNTcxRTEwMDA2MDAxMjc2ODI5RAorOjEwMkRDMDAwMDAwMDcxRTEwMDA1MDAxMjc2ODIwMDA2NzFFMTAwMDY0NAorOjEwMkREMDAwMDAxMjc2ODIwMDAxNzFFMTAwMDUwMDEyNzY4MjAwMDc4MAorOjEwMkRFMDAwNzFFMTAwMDYwMDEyNzY4MjIwMDA3MUUxMDAwNTAwMTJGOAorOjEwMkRGMDAwNzY4MjAwMDg3MUUxMDAwNjAwMTI3NjgyMDAwMDcxRTExRgorOjEwMkUwMDAwMDAwNTAwMTI3NjgyMDAwOTcxRTEwMDA2MDAxMjc2ODI0OAorOjEwMkUxMDAwMDAwMDcxRTEwMDA1MDAxMjc2ODIwMDBBNzFFMTAwMDZFRgorOjEwMkUyMDAwMDAxMjc2ODIwMDAwNzFFMTAwMDUwMDEyNzY4MjAwMEIyQworOjEwMkUzMDAwNzFFMTAwMDYwMDEyNzY4MjAwMDA3MUUxMDAwNTAwMTJDNworOjEwMkU0MDAwNzY4MjAwMEM3MUUxMDAwNjAwMTI3NjgyMDAwMDcxRTFDQQorOjEwMkU1MDAwMDAwNTAwMTI3NjgyMDAwRDcxRTEwMDA2MDAxMjc2ODJGNAorOjEwMkU2MDAwMDAwMDcxRTEwMDA1MDAxMjc2ODIwMDBFNzFFMTAwMDY5QgorOjEwMkU3MDAwMDAxMjc2ODIwMDAwMTBFMTAwMDdGOTgwMTY3NjEwRTE1QQorOjEwMkU4MDAwMDAwOEY5ODAxNjc2MTBFMTAwMDdGOTgwMTY2NjEwRTE1NworOjEwMkU5MDAwMDAwOEY5ODAxNjY2RjA3MzE4RDE3NzExMDA3QjEwODE1NQorOjEwMkVBMDAwRkI4MDE4MTBGMDAwMDA5NTc3MTEwMDdCMTA4MUZCODBFQgorOjEwMkVCMDAwMTgxMEYwMDAwMDlFRjk4MDE2OUFFRTAxOEExMUY0RTREMQorOjEwMkVDMDAwNEExMTg4MTFFRUZGRjQ5NTEwMDQ3MUUxMDAwMzAwMTExRQorOjEwMkVEMDAwRUUwMTgwODE4QTExRjQ5NUY0RTQ0QTExNEExNkY0OTVDMgorOjEwMkVFMDAwNzEwNDAwMTZGQjgwMTZBMjg4MTFGNDk1NzFFMTAwMDJBRQorOjEwMkVGMDAwMDAxMjc2ODIwMDEwMTBFNjAwMDE3MUUxMDAwMzAwMTI1QQorOjEwMkYwMDAwODA4MjcxRTEwMDA0MDAxMjEwRTYwMDAyODA4MkU3NjIxNAorOjEwMkYxMDAwNzFFMTAwMDIwMDEzRTUwMUY5ODAxNjlBOEExNjhBMTEwMAorOjEwMkYyMDAwRjRFNDRBMTE4ODExRUVGRkVFMDExMEUxMDAwMThBMTE2QworOjEwMkYzMDAwRjQ5NUY0RTQ0QTExNzcxMTAwN0IxMDgxRjAwMDAwQjM5RQorOjEwMkY0MDAwODgxMUY0OTVGNDk1MTA4MUZBNDQxOTJBRjQ5NUVFRkY0RQorOjEwMkY1MDAwRjk4MDE2NTM3NzExMDA3QjEwODFGMDAwMDBCMzg4MTFCRgorOjEwMkY2MDAwRjQ5NUY0OTU3NjgxMDAwMUVFMDE3NkUxMDAwMTAwMDAxMAorOjEwMkY3MDAwNzZFMTAwMDIwMDEzNzZFMTAwMDMwMDI2NzZFMTAwMDQwQQorOjEwMkY4MDAwMDAyNTc2RTEwMDA1MDAyNDc2RTEwMDA2MDAwMDc2RTFFOAorOjEwMkY5MDAwMDAwNzAwMTc3NkUxMDAwODAwMzI3NkUxMDAwOTAwMzFGMQorOjEwMkZBMDAwNzZFMTAwMEEwMDMwOEExMUY0OTVGNEU0NEExMTRBMTZEOQorOjEwMkZCMDAwNEExN0VFRkZGNDk1NzEwNjAwMTdGQjgwMTZBMjg4MTFFMAorOjEwMkZDMDAwRjQ5NUY3QjgxMEY4MDAxMUYwMTBGRkZGRkE0NTE5NzNFNworOjEwMkZEMDAwNzcxNkZGRkY3NzEyMDA3Qjc3MEUwMDA1MTA4MjI4RjgyNgorOjEwMkZFMDAwMDAxMUYwMDAwMEI0ODgxMUY0OTVGNDk1MTA4MUY4NDRCNAorOjEwMkZGMDAwMTk4NEYyNzMxOTg0RjQ5NUU3MTY3NzExMDA3QjEwODExOAorOjEwMzAwMDAwRjAwMDAwQjQ4ODExRjQ5NTc3MTIwMDAyMTA4MUY4NDVBMQorOjEwMzAxMDAwMTk2RjZFRUFGRkZGMTk3QzZERTkwMDA1NjFGODAwMTc3MgorOjEwMzAyMDAwMDAwMUZBMjAxOThGNzY4NjAwMDFGQjgwMTk5N0Y0OTUyQworOjEwMzAzMDAwNDgxNkY5ODAxNjlBRUUwMThBMTc0ODE2OEExNjhBMTFFMAorOjEwMzA0MDAwRjRFNDRBMTFFRUZGRkI4MDE2QTI4ODExRjQ5NTc3MTA4NAorOjEwMzA1MDAwRkZGRkY0QTlGODMwMTlDQzcxRTEwMDAyMDAxMjY5ODI3NworOjEwMzA2MDAwMDAxMDcxRTEwMDAyMDAxMjY4ODJGN0ZGNzFFMTAwMDJCNgorOjEwMzA3MDAwMDAxMjY4ODJGQkZGNzFFMTAwMDIwMDEyNjg4MkZGRjAxQgorOjEwMzA4MDAwNzFFMTAwMDMwMDEyNzY4MkZGRkY3MUUxMDAwNDAwMTI3QgorOjEwMzA5MDAwNzY4MkZGRkY3MUUxMDAwMjAwMTI2OTgyMDAyMDcxRTE3NworOjEwMzBBMDAwMDAwMjAwMTFGMjczMTlEQTY4ODFGRkVGNzcxMTAwN0JEQgorOjEwMzBCMDAwMTA4MUZCODAxOTk3RjAwMDAwQjQ3NzExMDA3QjEwODExQworOjEwMzBDMDAwRkI4MDE5OTdGMDAwMDBCOUY5ODAxNjlBRUUwMThBMTE3OQorOjEwMzBEMDAwRjRFNDAwQTQwMDAwMTlERjAwMDEyQUU2MDAwMDAwMDE2QQorOjEwMzBFMDAwMkFFNzAwMDAwMDAzMkExMjBDMDFDMzRGMDAwMDAwMDE3MAorOjEwMzBGMDAwMkExNTAwMDAwMDAyMkExNjAwMDAwMDAwMDAxOTJBNURBRgorOjEwMzEwMDAwMDA0MzAwNkYwMDcwMDA3OTAwNzIwMDY5MDA2NzAwNjg3QQorOjEwMzExMDAwMDA3NDAwMjAwMDU0MDA2NTAwNjMwMDY4MDA2RTAwNkZCQQorOjEwMzEyMDAwMDA1NDAwNzIwMDY1MDA2RTAwNjQwMDIwMDA0MTAwNDdGQQorOjEwMzEzMDAwMDAwMDAwMDQyQTc2MDAzMDAwMkUwMDMwMDAwMDAwMEM1MQorOjEwMzE0MDAwMkE3QTAwNDYwMDY1MDA2MjAwMjAwMDMyMDAzNzAwMjAyNQorOjEwMzE1MDAwMDAzMjAwMzAwMDMwMDAzMTAwMDAwMDA5MkE4NjAwMzFDMgorOjEwMzE2MDAwMDAzNDAwM0EwMDMzMDAzNTAwM0EwMDMzMDAzMzAwMDBFOQorOjEwMzE3MDAwMDAwRjJBOEYwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDE4NQorOjEwMzE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwMzE5MDAwMDAwMDAwMDEyQTlFMDAwMDAwMDEyQTlGMDAwMDAwMDE5QgorOjEwMzFBMDAwMkFBMDAwMDAwMDAxMkFBMTAwMDAwMDAxMkFBMjAwMDBCQworOjEwMzFCMDAwMDAwMTI5N0UwMDAwMDAwMjI5ODAwMDAwMDAwMDAwMDFCQgorOjEwMzFDMDAwMjk4MkZGRkYwMDAxMkFBNzAwMDAwMDA1MkFBODcxNDFGQgorOjEwMzFEMDAwMjAwMDIwMDAwMDIzMDQwMDAwMEEyQUFEMDAwMDAwMDBBNworOjEwMzFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwMzFGMDAwMDAwRjJBQjcwMDAwMDAwMDAwMDAwMDQwMDBBMDgyNDAzRAorOjEwMzIwMDAwMDAwODMwN0YwMDgwMDE4MDAwMDAwMDAwMDAwMDAwMDAwNgorOjEwMzIxMDAwMDAwMDAwMDEyNzZFMDAwMDAwMDEyNzZGMDAwMDAwMDA4MQorOjEwMzIyMDAwMDAwOTAwMDAxQTgzMDRFODA0Q0YwNEM1MDRCQTA0QjBGRQorOjEwMzIzMDAwMDRBQzA0OUMwNDhDMDQ4MTAwNzgwMDAwMDEwMEYyNzM0QgorOjEwMzI0MDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzNBNAorOjEwMzI1MDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzM5NAorOjEwMzI2MDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzM4NAorOjEwMzI3MDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzM3NAorOjEwMzI4MDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzM2NAorOjEwMzI5MDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzM1NAorOjEwMzJBMDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzM0NAorOjEwMzJCMDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzMzNAorOjEwMzJDMDAwMDdBQUY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzM2OQorOjEwMzJEMDAwMDdFRkY0OTVGNDk1RjI3MzAyMjNGNDk1RjQ5NUYyNzNFNQorOjEwMzJFMDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzMwNAorOjEwMzJGMDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzNGNAorOjEwMzMwMDAwMDdFRkY0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NUYyNzNFMworOjEwMzMxMDAwMDVFNUY0OTVGNDk1RjI3MzAyQjVGNDk1RjQ5NUYyNzMxRQorOjEwMzMyMDAwMEUzM0Y0OTVGNDk1RjI3MzA3RUZGNDk1RjQ5NTAwMDBERAorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3ZpY2FtL2Zpcm13YXJlLkgxNiBiL2Zpcm13YXJlL3ZpY2FtL2Zpcm13YXJlLkgxNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWMwY2JhCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvdmljYW0vZmlybXdhcmUuSDE2CkBAIC0wLDAgKzEsNyBAQAorOjAwMjYwMDAwMDBCNkMzMUYwMDAyNjRFNzY3RkRGRjBFQzBFNzA5REUwMDhFMDBDMDA5NDAwM0MwMTc0NDAzNEJBRkMwMDcwMDAwNEJBRjk3Q0YwMDAwMUQKKzowMDBBMDAwMDAwQjZDMzAzMDAwMzY0MTgwMDAwMDBGQgorOjAwMDgwMDAwMDBCNkMzMDEwMDA2NjQwMDAwMTQKKzowNjk2MDAwMDAwQjZDMzhGMDYwMjY0RTcwNzAwMDAwOEMwRTcwNzAwMDAzRUMwRTcwNzU0MDFBQTAwRTcwN0M4MDVCNjAwRTcwNzQyMDFEMjAwRTcwNzdDMDAxNjAwRTcwNzU2MDAxODAwRTcwNzA2MDA5MkMwRTcwNzAwMDAxRUMwRTcwN0ZGRkYyMkMwRTcwNzA0MDAyNEMwRTcwN0VDMjcyOEMwRTcwNzE2MDE4RTAwRTc4NzAxMDAwRUMwOTdDRkQ3MDkwMEMwRTc3NzAxMDA5MkMwMDlDMUU3MDlGRTA1MjQwMUU3MDkwNDA2MjYwMUU3MDcwNzAwOTJDMEU3MDUwMEMwQzBERjk3Q0YxNzAwNTcwMDE3MDJENzA5MDBDMEU3NzcwMTAwOTJDMDBBQzFFNzU3RkZGRkZBMDUwREMwRTc1NzAwMDBGQTA1MEZDMDlGQUZDNjAwRTcwNTAwQzBDODA1QzEwNUMwMDVDMERGOTdDRjI3REFGQTA1RUYwNzAxMDAwQjA2NzNDRjlGQUY3ODAxOUZBRjFBMDM2RUNGRTcwOUZDMDUyNDAxRTcwOTAyMDYyNjAxRTcwNzA3MDA5MkMwRTcwOUZDMDVGRTA1RTcwOTAyMDYwNDA2RTcwOTAwMDZGQzA1RTcwOUZFMDUwMDA2MjdEQUZBMDVFNzU3MDEwMEZBMDUwMkNBMDRDMDk3Q0Y5RkFGNjYwNTk3Q0ZFNzA3NDAwMDAyMDZDODA5RkMwNTlGQUZEQTAyOTdDRkNGMTcwMjAwRUY1NzgxMDAwOTA2OUZBMEI2MDFFRjU3ODAwMDA5MDY5RkEwNDAwMkVGNTcwMTAwMEIwNjlGQTA0NjAzRTcwNzAxMDAwQUMwNDZBRjQ3QUY5RkFGNDAwMkU3MDcyRTAwMEFDMEVGODc4MDAwMDkwNjk3Q0YwMDBFMDEwMEMwNTc1MTAwOUZDMDlFMDJDMDU3NTAwMDIwQzBDMDU3NTUwMDEyQzBDMDU3NTYwMDlGQzA3MjAyOUZDRkQ2MDJDMTBCMDgwNjAxRDA2RjkwMDgwNkMwMDcwODAwQzEwQjA4MDY5RkFGMjgwNTk3Q0YyRjBFMDIwMDA4MDZDMDA3MDgwMEMxMEIwODA2OUZBRjI4MDU5RkNGRDYwMjJGMEUwMjAwMDkwNkVGODc4MDAwMDkwNjlGQ0ZENjAyRUY2NzdGRkYwOTA2RTc2N0ZGRkQyMkMwRTc2N0VGRkYyNEMwRTc4NzEwMDAyOEMwOUZBRkI4MDVFNzg3RTAyMTI0QzA5RkFGQTgwNUU3ODcwODAwMjRDMEU3NjdERkZGMjRDMEM4MDcwQTAwQzAwNzAwMDBDMTA3MDEwMDlGQUYyODA1OUZBRkI4MDVDMDA3OUUwMDlGQUY0NDA1RTc2N0ZGRkUyNEMwQzAwOTIwQzBFNzg3MDAwMTI0QzBDMDc3MDAwMjBGQzFFNzY3RjdGRjI0QzBFNzY3RjdGRjI0QzBFNzg3MDgwMDI0QzAwOERBNUVDMUVGMDc4MDAwMDkwNjk3Q0ZFRjA3MDEwMDBBMDY5N0NGRUYwNzAwMDAwQjA2RUYwNzAwMDAwQTA2RUY2NzdGRkYwOTA2RUYwNzAwMDAwRDA2RTc2N0VGRkYyOEMwRTc2NzE3RDgyNEMwRTcwNzAwMDAxRUMwRTcwN0ZGRkYyMkMwOTdDRkM4MDcwRTA2OUZBRkRBMDJFNzA3MDAwMEYyMDVFNzA3MTAwMEY2MDVFNzA3MEUwNkY0MDVFNzA3RDYwMkY4MDVDODA3RjIwNUMxMDcwMDgwNTBBRjk3Q0YyRjBDMDIwMDA3MDYyRjBDMDQwMDA2MDZFNzA3MDAwMEYyMDVFNzA3MTAwMEY2MDVFNzA3RTIwNUY0MDVFNzA3Q0UwMkY4MDVDODA3RjIwNUMxMDcwMDgwNTFBRjk3Q0Y5RkFGNjYwNDlGQUYxQTAzNTlBRjk3Q0ZDMDA3MEUwMEMxMEIwQzA2NDFEMTlGQUYyODA1QzAwNzNDMDA5RkFGNDQwNTY4MDBDMDA3M0IwMDlGQUY0NDA1NkYwMDBDMDY2ODAwRTAwNzA0MDFFODBCMEEwNkU4MDcwMDAwRTAwNzAwMDJFMDA3RUMwMUUwMDdGQ0ZGOTdDRkU3MDdGRkZGRkEwNUVGMDcwMDAwMEIwNkU3MDcwRTA2MjQwMUU3MDcwRTA2RkUwNUU3MDc0MDAwMjYwMUU3MDc0MDAwMDQwNkU3MDcwNzAwOTJDMDk3Q0ZFRjA3MDIwMDBCMDY5RkFGNzgwMUVGNzc4MDAwMDcwNjlGQzAxNDA0RUY3NzAxMDAwNzA2MzdDMEVGNzcwMTAwMEQwNjBGQzFFRjA3MDEwMDBEMDZDMDA3MDIwMEMxMDczMDAwOUZBRjI4MDVDMDA3MDEwMEMxMDcwMjAwOUZBRjI4MDVDODA3RkY0RjlGQUZBODA1QzAwNzM4MDA5RkFGNDQwNUMxNzcwMzAwMDJDMTA4REE3NUMxQzE3NzAxMDAwQUMxQzAwNzAxMDBDMTA3MDIwMDlGQUYyODA1RUYwNzAxMDAwNjA2MkNDRkMwMDcwMTAwQzEwNzA0MDA5RkFGMjgwNUVGMDcwMDAwMDYwNjIyQ0ZFRjA3MDAwMDBEMDZFRjU3MDEwMDA2MDYxQkMwQzAwNzAxMDBDMTA3MDEwMDlGQUYyODA1QzAwNzAyMDBDMTA3MzAwMDlGQUYyODA1QzgwN0ZGNEY5RkFGQTgwNUMwMDczODAwOUZBRjQ0MDVDMTY3MDMwMEMxNTcwMzAwMDJDMDA4REE3M0MxQzAwNzAyMDBDMTA3MTIwMEVGNTcwMDAwMDYwNjAyQzBDMTA3MjMwMDlGQUYyODA1QzAwNzE0MDBDMTBCRUEwNTlGQUYyODA1QzAwNzNFMDA5RkFGMEEwNUU3MDlFNDA1RkEwNTI3RDhGQTA1RTcwNzBFMDZGQzA1RTcwNzRFMDYwMDA2RTcwNzQwMDAwMjA2OUZBRjY2MDU5RkFGQzYwMDk3Q0ZDMTBCRTIwNTQxRDAwMUQyQzExNzIzMDA5RkFGREMwNEMwMDcwNDAwQzEwQkUzMDU5RkFGMjgwNUMwMDcwNjAwQzEwOUU2MDU5RkFGMjgwNUMwMDcwNzAwQzEwOUU2MDVDMUQxOUZBRjI4MDVDMDA3MEIwMEMxMDlFODA1OUZBRjI4MDVDMDA3MEMwMEMxMDlFODA1QzFEMTlGQUYyODA1QzAwNzBEMDBDMTA3MDkwMDlGQUYyODA1QzAwNzAzMDBDMTA3MzIwMDlGQUYyODA1QzAwNzBGMDBDMTA3MDAwMDlGQUYyODA1OTdDRkU3NjdGRkQ5MjRDMEM4MDcwQTAwNDAwMEMwNjcwMDAyMjc4MDI0QzBFNzg3MDAwNDI0QzBFNzY3RkZGOTI0QzAwMUQyMDhEQTcyQzFFNzg3MDAyMDI0QzA5N0NGMjcwMDFFQzBFNzg3RkYwMDIyQzBFNzY3N0ZGRjI0QzBFNzg3ODAwMDI0QzBFNzg3ODAwMDI0QzA5N0NGOUZBRjBBMDU2NzAwMUVDMEU3NjdCRkZGMjRDMEU3ODc0MDAwMjRDMEU3ODc0MDAwMjRDMDk3Q0Y5RkFGMEEwNUU3NjcwMEZGMjJDMEU3NjdGRkZFMjRDMEU3NjdGRkZFMjRDMEMxMDkyMEMwRTc4NzAwMDEyNEMwOTdDRkMwMDc0MDAwQzgwOUZDMDVFNzY3MDBGRjIyQzBFNzY3RkZGRTI0QzBFNzY3QkZGRjI0QzBFNzY3QkZGRjI0QzAwMERBRTgwOTIwQzBFNzg3NDAwMDI0QzBFNzg3NDAwMDI0QzAwMERBRTgwOTIwQzA2REMxRTc4NzAwMDEyNEMwOTdDRkU3MDczMjAwMTJDMEU3NzcwMDgwMTJDMDdDQzA5N0NGRTcwNzIwNEUxMkMwRTc3NzAwODAxMkMwN0NDMDk3Q0YwOTAyMTkwMDAxMDEwMDgwOTYwOTA0MDAwMDAxMDAwMDAwMDAwNzA1ODEwMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTEKKzowMTM2MDAwMDAwQjZDMzJGMDEwMzY0MEUwMDE0MDAxQTAwMjAwMDI2MDA0QTAwNjQwMDZBMDA5MjAwOUEwMEEwMDBCMjAwQjgwMEJFMDBDMjAwQzgwMENFMDBEQzAwREEwMEUyMDBFMDAwRTgwMEU2MDBFRTAwRUMwMEYyMDBGODAwMDIwMTBBMDEwRTAxMTIwMTFFMDEyMjAxMjgwMTJDMDEzMjAxMzYwMTQ0MDE1MDAxNUUwMTcyMDE3NjAxN0EwMTgwMDE4ODAxOEMwMTk0MDE5QzAxQTAwMUE0MDFBQTAxQjAwMUI0MDFCQTAxRDAwMURBMDFGNjAxRkEwMTAyMDIzNDAyM0MwMjQ0MDI0QTAyNTAwMjU2MDI3NDAyNzgwMjdFMDI4NDAyOEEwMjg4MDI5MDAyOEUwMjk0MDJBMjAyQTgwMkFFMDJCNDAyQkEwMkI4MDJDMDAyQkUwMkM0MDJEMDAyRDQwMkUwMDJFNjAyRUUwMkY4MDJGQzAyMDYwMzFFMDMyNDAzMjgwMzMwMDMyRTAzM0MwMzRBMDM0RTAzNTQwMzU4MDM1RTAzNjYwMzZFMDM3QTAzODYwMzhFMDM5NjAzQjIwM0I4MDNDNjAzQ0MwM0Q0MDNEQTAzRTgwM0Y0MDNGQzAzMDQwNDIwMDQyQTA0MzIwNDM2MDQzRTA0NDQwNDQyMDQ0ODA0NEUwNDRDMDQ1NDA0NTIwNDVBMDQ1RTA0NjIwNDY4MDQ3NDA0N0MwNDgwMDQ4ODA0OEMwNDk0MDQ5QTA0QTIwNEE2MDRBRTA0QjQwNEMwMDRDQzA0RDgwNDJBMDU0NjA1NkMwNTAwMDA1RQorOjAwMDgwMDAwMDBCNkMzMDEwMDA2NjQwMDAwMTQKKzowMDAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3doaXRlaGVhdC5IRVggYi9maXJtd2FyZS93aGl0ZWhlYXQuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYWU2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS93aGl0ZWhlYXQuSEVYCkBAIC0wLDAgKzEsMTA5NyBAQAorOjAzMDAwMDAwMDI5N0UzODEKKzowMzAwMDMwMDAyMTMxMkQzCis6MDMwMDBCMDAwMjBCQjUzMAorOjAzMDAzMzAwMDIwODFDQTQKKzowMzAwNDMwMDAyMEEwMEFFCis6MDMwMDVCMDAwMjgzM0JFMgorOjEwMDM3MDAwOTA3RkU5RTA3MDAzMDIwNDczMTQ3MDAzMDIwNEU3MjQyMQorOjEwMDM4MDAwRkU3MDAzMDIwNTRGMjRGQjcwMDMwMjA0NjQxNDcwMDMyMworOjEwMDM5MDAwMDIwNDUyMTQ3MDAzMDIwNDNBMTQ3MDAzMDIwNDQ5MjQ0NAorOjEwMDNBMDAwMDU2MDAzMDIwNTlFOTA3RkVCRTAyNEZFNjAxNjE0NjA1QQorOjEwMDNCMDAwMzYyNDAyNzA3Qjc0MTI5MDdGRDRGMDc0MDA5MDdGRDU0NQorOjEwMDNDMDAwRjAwMjA1QTU5MDdGRUFFMEZGMTIwQTk5RUE0OTYwMEQ2NAorOjEwMDNEMDAwRUE5MDdGRDRGMEU5OTA3RkQ1RjAwMjA1QTU5MDdGQjQzNAorOjEwMDNFMDAwRTA0NDAxRjAwMjA1QTU5MDdGRUFFMEZGMTIwQTU4RUExNgorOjEwMDNGMDAwNDk2MDMzMTJBMjNCRjU0RTkwN0ZFRUUwRkZFNTRFRDMwRAorOjEwMDQwMDAwOUY0MDAzRTBGNTRFRTU0RUQzOTQ0MDQwMDM3NTRFNDBDNworOjEwMDQxMDAwQUUwMkFGMDE3QzdGN0QwMEFCNEUxMjkxMzc5MDdGQjU2RAorOjEwMDQyMDAwRTU0RUYwMDIwNUE1OTA3RkI0RTA0NDAxRjAwMjA1QTU3OQorOjEwMDQzMDAwOTA3RkI0RTA0NDAxRjAwMjA1QTU5MDdGMDBFNTIxRjAzMworOjEwMDQ0MDAwOTA3RkI1NzQwMUYwMDIwNUE1OTA3RkVBRTBGNTIxMDJFNgorOjEwMDQ1MDAwMDVBNTkwN0ZFQUUwRjUzNUQyMDI0Mzg4MTBEMkVCRDJCMQorOjEwMDQ2MDAwQTgwMjA1QTU5MDdGMDBFNTM1RjA5MDdGQjU3NDAxRjBGNgorOjEwMDQ3MDAwMDIwNUE1OTA3RkU4RTAyNDdGNjAyNDE0NjAzMTI0MDIwNworOjEwMDQ4MDAwNzA1QkEyMDBFNDMzRkYyNUUwRkZBMjA1RTQzMzRGOTA0OAorOjEwMDQ5MDAwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwNUE1RTRCQworOjEwMDRBMDAwOTA3RjAwRjBBM0YwOTA3RkI1NzQwMkYwMDIwNUE1OTA1NAorOjEwMDRCMDAwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjU3NQorOjEwMDRDMDAwRTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0MDE5MDdGMDBBQQorOjEwMDREMDAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA1QTU5MDdGQjQxQworOjEwMDRFMDAwRTA0NDAxRjAwMjA1QTU5MDdGRThFMDI0RkU2MDFEMjRCMQorOjEwMDRGMDAwMDI2MDAzMDIwNUE1OTA3RkVBRTBCNDAxMDVDMjAwMDI5NAorOjEwMDUwMDAwMDVBNTkwN0ZCNEUwNDQwMUYwMDIwNUE1OTA3RkVBRTBFNAorOjEwMDUxMDAwNzAzNDkwN0ZFQ0UwRkY1NDA3RkVGNTRFRUYzMEU3MDNCOAorOjEwMDUyMDAwNDM0RTEwOTA3RkQ3RTU0RUYwRTU0RTQ0MjBGMEVGRjRCNworOjEwMDUzMDAwNTQ4MEZEQzQ1NDBGMkUyNUUwMjRCNEY1ODJFNDM0N0ZBQQorOjEwMDU0MDAwRjU4M0U0RjA4MDVGOTA3RkI0RTA0NDAxRjA4MDU2OTA0MgorOjEwMDU1MDAwN0ZFOEUwMjRGRTYwMTgyNDAyNzA0QTkwN0ZFQUUwQjQ0RAorOjEwMDU2MDAwMDEwNEQyMDA4MDNGOTA3RkI0RTA0NDAxRjA4MDM2OTBENworOjEwMDU3MDAwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZEOQorOjEwMDU4MDAwRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM5RgorOjEwMDU5MDAwNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZGOAorOjBDMDVBMDAwQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwQUQKKzowMTA1QUMwMDIyMkMKKzoxMDA1QUQwMDc1NEFGRjc1NDlGRjc1NDgwRjc1NDcwMEQyMDNDMjA2OUUKKzoxMDA1QkQwMEMyMDJDMjAwQzIwNUMyMDE5MDAzMDA3NDE5RjBFNDkwOUEKKzoxMDA1Q0QwMDAxQkNGMEMyMDQ5MDAxQzBGMEEzRjBDMkFGQzJBODEyRUEKKzoxMDA1REQwMDBDMjJFNDkwMDJBRkYwOTAwMUJERjA5MDAxMDBGMEEzNjkKKzoxMDA1RUQwMEYwQTNGMEEzRjBBM0YwQTM3NDEwRjBBMzc0MDFGMEEzOTMKKzoxMDA1RkQwMDc0MDhGMDdFMDE3RjAwMTIxOUMxNzU0QzEyNzU0RDBBRjkKKzoxMDA2MEQwMDkwMDEwQkUwRkYwNTRERTU0REFDNEM3MDAyMDU0QzE0MEYKKzoxMDA2MUQwMEY1ODI4QzgzRUZGMDkwMDEwQ0UwNDQ4MEZGMDU0REU1RjEKKzoxMDA2MkQwMDREQUM0QzcwMDIwNTRDMTRGNTgyOEM4M0VGRjA5MDAxQUIKKzoxMDA2M0QwMDBERTBGRjA1NERFNTREQUM0QzcwMDIwNTRDMTRGNTgyRjcKKzoxMDA2NEQwMDhDODNFRkYwOTAwMTBFRTBGRjA1NERFNTREQUM0QzcwNDUKKzoxMDA2NUQwMDAyMDU0QzE0RjU4MjhDODNFRkYwOTAxMjBBRTQ5M0ZGOUYKKzoxMDA2NkQwMDc0MDE5MzkwMDExQ0NGRjBBM0VGRjA5MDAxMUNFMEZGRkIKKzoxMDA2N0QwMEEzRTBGRUVGNkVGRjkwMDExQ0YwQTNFMDZGRkZGMDkwODIKKzoxMDA2OEQwMDAxMUNFMDZGRjBFMEZFQTNFMEZGRTRGQ0ZENzU1MjEwRUQKKzoxMDA2OUQwMDc1NTMwMjc1NTQxMjc1NTVBQzEyOTQyNjc1NEMxMjc1MUUKKzoxMDA2QUQwMDREQjI5MDAxMERFMEZGMDU0REU1NERBQzRDNzAwMjA1Q0UKKzoxMDA2QkQwMDRDMTRGNTgyOEM4M0VGRjA5MDAxMEVFMEZGMDU0REU1QjMKKzoxMDA2Q0QwMDREQUM0QzcwMDIwNTRDMTRGNTgyOEM4M0VGRjA5MDdGOEQKKzoxMDA2REQwMDkyRTBGRkM0NTQwRjI0NDFGRjA1NERFNTREQUM0QzcwMjUKKzoxMDA2RUQwMDAyMDU0QzE0RjU4MjhDODNFRkYwMDU0REU1NERBRTRDQjMKKzoxMDA2RkQwMDcwMDIwNTRDMTRGNTgyOEU4M0U0RjA3NTgyMTA3NTgzQkIKKzoxMDA3MEQwMDAxRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjkwMDExODEyQzEKKzoxMDA3MUQwMEEzRUU3RTAxN0YxODEyODZCRTkwMDExOEUwRkNBM0UwQzcKKzoxMDA3MkQwMEZEQTNFMEZFQTNFMEZGNzU1MjBBNzU1MzA2NzU1NDEyNDIKKzoxMDA3M0QwMDc1NTVCODEyOTQyNkQyRTg0M0Q4MjA5MDdGQUI3NEZGM0MKKzoxMDA3NEQwMEYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUVFMDQ0MjUKKzoxMDA3NUQwMDFGRjBEMkFGMjAwMTJFMjAwMTJCQTIwMzkyMDcxMjA5MDgKKzoxMDA3NkQwMEM1NzU0NjUwNzU0NTZENzU0NDMzNzU0MzAwMjAwMUU0REMKKzoxMDA3N0QwMDdGRkY3RUZGN0RGRjdDRkY3ODQzMTJBM0Q3RUM0RDRFQUMKKzoxMDA3OEQwMDRGNjBEMTgwRTgzMDAxMDUxMjAzNzBDMjAxMzAwNjBBQjYKKzoxMDA3OUQwMDEyMDlGQjUwMDMxMjBBRThDMjA2MTI5NjVFOTAwMUJEQzMKKzoxMDA3QUQwMEUwNjAwQzEyOTIwMUU0OTAwMUJERjA5MDdGRDNGMDkwQzcKKzoxMDA3QkQwMDAyQUZFMEI0MEYwMzEyOTlCOTEyQTA5NUU0RkY3NDAxRDIKKzoxMDA3Q0QwMEE4MDcwODgwMDJDMzMzRDhGQ0ZFOTAwMUJDRTA1RTYwMzAKKzoxMDA3REQwMDE0NzQyODJGRjhFNkQzOTQwQTQwMDQ3RTAxODAwMjdFMUIKKzoxMDA3RUQwMDAwOEU0QjgwMDM3NTRCMDE3NDY4MkZGNTgyRTQzNDIwMjUKKzoxMDA3RkQwMEY1ODNFNTRCRjAwRkJGMDRDNUU1MkNEMzk0MEE0MDA0RjcKKzowRTA4MEQwMDdGMDE4MDAyN0YwMDkwMjA2Q0VGRjAwMjA3OTJDNgorOjAxMDgxQjAwMjJCQQorOjA0MDgxQzAwNTNEOEVGMzI4QworOjEwMDgyMDAwRTUzM0MzOTQwMTQwMEU5MDdGOTNFMDQ0MzBGMDkwN0YxNQorOjEwMDgzMDAwOTVFMDQ0QzBGMDdGRjQ3RTAxMTIwOUFFOTA3Rjk2RTAwRgorOjEwMDg0MDAwNTRGRUYwN0YwQTdFMDAxMjA5QUU5MDdGOTZFMDQ0MDhDNQorOjEwMDg1MDAwRjA3RjA1N0UwMDEyMDlBRTkwN0Y5NkUwNTRGQkYwN0Y5QQorOjEwMDg2MDAwMDU3RTAwMTIwOUFFRTUzM0MzOTQwMTUwMEU3RjAyN0Q3MAorOjEwMDg3MDAwRkYxMjgyRUE3RjA1N0UwMDEyMDlBRTkwN0Y5NkUwNDQ2NworOjEwMDg4MDAwMDJGMEUwNTQ3RkYwN0YwNTdFMDAxMjA5QUU5MDdGOTY2MworOjEwMDg5MDAwRTA0NDQwRjA3RjA1N0UwMDEyMDlBRTkwN0Y5NkUwNTQ2MAorOjEwMDhBMDAwQkZGMDdGMzI3RTAwMTIwOUFFOTA3Rjk2RTA0NDQwRjBBOAorOjA4MDhCMDAwN0YzMjdFMDAxMjA5QUUyMjI2Cis6MTAwOEI4MDA5MDdGOTZFMDU0RkRGMEUwNDQ4MEYwN0YwQTdFMDAxMkJECis6MTAwOEM4MDAwOUFFRTUzM0MzOTQwMTUwMEU3RjAyRTRGRDEyODJFQUJCCis6MTAwOEQ4MDA3RjA1N0UwMDEyMDlBRTkwN0Y5NkUwNTRCRkYwN0YwNTM5Cis6MTAwOEU4MDA3RTAwMTIwOUFFOTA3Rjk2RTA0NDA0RjA3RjA1N0UwMEZBCis6MTAwOEY4MDAxMjA5QUU5MDdGOTZFMDU0RjdGMDdGMDU3RTAwMTIwOTRBCis6MTAwOTA4MDBBRTkwN0Y5NkUwNDQwMUYwN0YwNTdFMDAxMjA5QUVFNUM3Cis6MTAwOTE4MDAzM0MzOTQwMTQwMEU5MDdGOTNFMDU0Q0ZGMDkwN0Y5NUJECis6MDgwOTI4MDBFMDU0M0ZGMDEyMEIwMDIyMjUKKzoxMDA5MzAwMDkwMEFGNEU0OTM3MDc2OTA3RjkzNzQzMEYwOTA3Rjk0RjMKKzoxMDA5NDAwMDc0M0NGMDkwN0Y5NTc0QzZGMDdGMEE3RTAwMTIwOUFFNjkKKzoxMDA5NTAwMEU0OTA3RjlDRjA5MDdGOTY3NDA4RjA5MDdGOUM3NENGMTkKKzoxMDA5NjAwMEYwN0YwQTdFMDAxMjA5QUU5MDIwNzBFMEZGQzQ1NDBGQTEKKzoxMDA5NzAwMEY1MzNDMzk0MDE1MDA3OTA3Rjk2RTA0NDgwRjBFNDkwRjMKKzoxMDA5ODAwMDdGOTdGMDkwN0Y5RDc0MDJGMEU1MzNDMzk0MDE0MDBCOTQKKzoxMDA5OTAwMEU0OTA3Rjk4RjA5MDdGOUU3NEMwRjA5MDdGRTI3NDEyOTQKKzowRTA5QTAwMEYwMTIwODIwNzU4MkY0NzU4MzBBNzRGRkYwMjJBRAorOjEwMDlBRTAwOEU1RDhGNUVFNTVFMTU1RUFFNUQ3MDAyMTU1RDRFNjAwRQorOjA3MDlCRTAwMDUxMjA5RUE4MEVFMjI5OAorOjEwMDlDNTAwOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwMDcwNEUwNDRBMworOjEwMDlENTAwMDJGMDdGRDA3RTA3MTIwOUFFOTA3RkQ2RTA1NEY3RjA4MworOjA1MDlFNTAwRTA0NDA0RjAyMkQzCis6MTAwOUVBMDA3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIwCis6MDEwOUZBMDAyMkRBCis6MDUwOUZCMDAxMjA4QjhEMzIyMzAKKzoxMDBBMDAwMDAyMEM0RTAwMDIwQzgxMDAwMjBDNjYwMDAyMENDMDAwQjkKKzoxMDBBMTAwMDAyMENBQTAwMDIwQUVEMDAwMjBBRUUwMDAyMEFFRjAwMzAKKzoxMDBBMjAwMDAyMENEQjAwMDIwRENCMDAwMjBEMTcwMDAyMEUyQjAwQTIKKzoxMDBBMzAwMDAyMEQ1MzAwMDIwRThCMDAwMjBEOEYwMDAyMEVFQjAwMjAKKzoxMDBBNDAwMDAyMEFGMDAwMDIwQUYyMDAwMjBBRjEwMDAyMEFGMzAwQjAKKzowODBBNTAwMDAyMEY0QjAwMDIwRjYxMDBEMAorOjAyMEE1ODAwOEY0RkJFCis6MTAwQTVBMDBFNEY1NTA3NTUxRkY3NTUyMTI3NTUzNkFBQjUxQUE1MjlCCis6MTAwQTZBMDBBOTUzOTAwMDAxMTJBMjU0QjQwMzFEQUY1MDA1NTBFRkQwCis6MTAwQTdBMDBCNTRGMDEyMjEyQTIzQjdFMDAyOUZGRUUzQUE5MDc3NTYzCis6MEUwQThBMDA1MUZGRjU1Mjg5NTM4MEQ0N0IwMDdBMDA3OTAwMjkKKzowMTBBOTgwMDIyM0IKKzoxMDBBOTkwMEU0RkU3NTUxRkY3NTUyMTI3NTUzMTJBQjUxQUE1MkE5NTIKKzoxMDBBQTkwMDUzOTAwMDAxMTJBMjU0NjQwMjcwMkRBRDA2MEVFREI1RUIKKzoxMDBBQjkwMDA3MDEyMjkwMDAwMjEyQTJBRDg1RjA0RkY1NTA2MjRGNTYKKzoxMDBBQzkwMEU1NEY2MjUwRTU1MDYyNEYyOUZERTU0RjNBQTkwNTc1OUEKKzowRTBBRDkwMDUxRkZGNTUyODk1MzgwQzM3QjAwN0EwMDc5MDBFQgorOjAxMEFFNzAwMjJFQworOjA1MEFFODAwMTIwODIwRDMyMkRBCis6MDEwQUVEMDAzMkQ2Cis6MDEwQUVFMDAzMkQ1Cis6MDEwQUVGMDAzMkQ0Cis6MDEwQUYwMDAzMkQzCis6MDEwQUYxMDAzMkQyCis6MDEwQUYyMDAzMkQxCis6MDEwQUYzMDAzMkQwCis6MDMwQUY0MDAwMDA0MDdGNAorOjA5MEIwMDAwOTA3RkQ2RTA0NDgwRjA4MDc0N0YKKzoxMDBCN0QwMDQzODcwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyN0IKKzoxMDBCOEQwMDUzOEVGN0U1ODk1NEYxNDQwMUY1ODk3NThDQjFEMkE5REQKKzoxMDBCOUQwMDc1OTg0MDc1Q0JGRjc1Q0FGMzc1QzgzNEU0RkY3RjA1QjIKKzowNzBCQUQwMDc4MjhFNEY2MDhERkZDRTQKKzowMTBCQjQwMDIyMUUKKzoxMDBCQjUwMEMwRTBDMDgzQzA4MkMwRDA3NUQwMDBDMDAwQzAwNkMwRjAKKzowMTBCQzUwMDA3MjgKKzoxMDBCQzYwMDMwMDQxNjc1OENGODc1OEEzMDdGMkZBRTA3MUZFRTYwREQKKzoxMDBCRDYwMDNDOTAyMDAwNzQ1NUYwODBGMjc1OENCMTdGMjhFRkQzREQKKzoxMDBCRTYwMDk0MkM1MDA5QTgwN0U2NjAwMTE2MEY4MEYxOTAwMzAwQzcKKzoxMDBCRjYwMEUwNjAwMjE0RjA5MDAxQzBFMDcwMDJBM0UwNjAwRTkwODUKKzowRDBDMDYwMDAxQzFFMDI0RkZGMDkwMDFDMEUwMzRGRkYwRDgKKzowRjBDMTMwMEQwMDdEMDA2RDAwMEQwRDBEMDgyRDA4M0QwRTAzMjJFCis6MTAwQzIyMDBEMjAwNzU4RTEwMTIwOTMwRTUzM0MzOTQwMTQwMDg5MDRBCis6MTAwQzMyMDA3RjkyNzQwMkYwODAwNUU0OTA3RjkyRjAxMjgwMDAxMjlECis6MEMwQzQyMDAwRjdEMTI5NEY3MTIxQjBDMTIwQjhEMjI3OAorOjEwMEM0RTAwQzBFMEMwODNDMDgyRDIwMTUzOTFFRjkwN0ZBQjc0MDE5QworOjA4MEM1RTAwRjBEMDgyRDA4M0QwRTAzMjE3Cis6MTAwQzY2MDBDMEUwQzA4M0MwODI5MDdGQzRFNEYwNTM5MUVGOTA3RkQwCis6MEIwQzc2MDBBQjc0MDRGMEQwODJEMDgzRDBFMDMyRDkKKzoxMDBDODEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDJGMDkwQkIKKzoxMDBDOTEwMDdGRDhFMDcwMEQ5MDdGRDlFMDcwMDdFNTJDNzAwMzc1NjcKKzowOTBDQTEwMDJDMTREMDgyRDA4M0QwRTAzMjgzCis6MTAwQ0FBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDEwRjBEMDQ0Cis6MDYwQ0JBMDA4MkQwODNEMEUwMzI3RAorOjEwMENDMDAwQzBFMEMwODNDMDgyMzAwMjAyRDIwNjUzOTFFRjkwN0YxMQorOjBCMENEMDAwQUI3NDA4RjBEMDgyRDA4M0QwRTAzMjdCCis6MTAwQ0RCMDBDMEUwQzA4M0MwODJDMEQwNzVEMDEwNTM5MUVGOTA3RjFECis6MTAwQ0VCMDBBOTc0MDJGMEU1MzQzMEUwMTNFNTMyMzBFMDA3OTAyMEQwCis6MTAwQ0ZCMDAwNEUwNDQwMUYwOTAyMDAxRTA0NDAxRjBFNTJDNzAwMzg2Cis6MEMwRDBCMDA3NTJDMTREMEQwRDA4MkQwODNEMEUwMzIwMAorOjEwMEQxNzAwQzBFMEMwODNDMDgyQzBEMDc1RDAxMDUzOTFFRjkwN0ZFMAorOjEwMEQyNzAwQTk3NDA0RjBFNTM0MzBFMTEzRTUzMjMwRTEwNzkwMjA4RgorOjEwMEQzNzAwMENFMDQ0MDFGMDkwMjAwOUUwNDQwMUYwRTUyQzcwMDMzOQorOjBDMEQ0NzAwNzUyQzE0RDBEMEQwODJEMDgzRDBFMDMyQzQKKzoxMDBENTMwMEMwRTBDMDgzQzA4MkMwRDA3NUQwMTA1MzkxRUY5MDdGQTQKKzoxMDBENjMwMEE5NzQwOEYwRTUzNDMwRTIxM0U1MzIzMEUyMDc5MDIwNEQKKzoxMDBENzMwMDE0RTA0NDAxRjA5MDIwMTFFMDQ0MDFGMEU1MkM3MDAzRUQKKzowQzBEODMwMDc1MkMxNEQwRDBEMDgyRDA4M0QwRTAzMjg4Cis6MTAwRDhGMDBDMEUwQzA4M0MwODJDMEQwNzVEMDEwNTM5MUVGOTA3RjY4Cis6MTAwRDlGMDBBOTc0MTBGMEU1MzQzMEUzMTNFNTMyMzBFMzA3OTAyMDA3Cis6MTAwREFGMDAxQ0UwNDQwMUYwOTAyMDE5RTA0NDAxRjBFNTJDNzAwM0ExCis6MEMwREJGMDA3NTJDMTREMEQwRDA4MkQwODNEMEUwMzI0QworOjEwMERDQjAwQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwQzA2OQorOjEwMEREQjAwRDA3NUQwMTA1MzkxRUY5MDdGQUE3NDAyRjBFNTM0MjBCOAorOjEwMERFQjAwRTAwNjkwN0ZDN0YwODAyMkU1MzEzMEUwMEE5MDdGQzdBNAorOjEwMERGQjAwRTA5MDAyRjhGMDgwMTNFNTIyMzBFMDA3OTAyMDA0RTA0OQorOjEwMEUwQjAwNDQwMkYwOTAyMDAxRTA0NDAyRjBFNTJDNzAwMzc1MkNCNQorOjEwMEUxQjAwMTREMEQwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI4RAorOjEwMEUyQjAwQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwQzAwOAorOjEwMEUzQjAwRDA3NUQwMTA1MzkxRUY5MDdGQUE3NDA0RjBFNTM0MjA1NQorOjEwMEU0QjAwRTEwNjkwN0ZDOUYwODAyMkU1MzEzMEUxMEE5MDdGQzkzRAorOjEwMEU1QjAwRTA5MDAyRjlGMDgwMTNFNTIyMzBFMTA3OTAyMDBDRTBERQorOjEwMEU2QjAwNDQwMkYwOTAyMDA5RTA0NDAyRjBFNTJDNzAwMzc1MkM0RAorOjEwMEU3QjAwMTREMEQwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzIyRAorOjEwMEU4QjAwQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwQzBBOAorOjEwMEU5QjAwRDA3NUQwMTA1MzkxRUY5MDdGQUE3NDA4RjBFNTM0MjBGMQorOjEwMEVBQjAwRTIwNjkwN0ZDQkYwODAyMkU1MzEzMEUyMEE5MDdGQ0JENworOjEwMEVCQjAwRTA5MDAyRkFGMDgwMTNFNTIyMzBFMjA3OTAyMDE0RTA3NAorOjEwMEVDQjAwNDQwMkYwOTAyMDExRTA0NDAyRjBFNTJDNzAwMzc1MkNFNQorOjEwMEVEQjAwMTREMEQwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDRAorOjEwMEVFQjAwQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwQzA0OAorOjEwMEVGQjAwRDA3NUQwMTA1MzkxRUY5MDdGQUE3NDEwRjBFNTM0MjA4OQorOjEwMEYwQjAwRTMwNjkwN0ZDREYwODAyMkU1MzEzMEUzMEE5MDdGQ0Q3MAorOjEwMEYxQjAwRTA5MDAyRkJGMDgwMTNFNTIyMzBFMzA3OTAyMDFDRTAwOQorOjEwMEYyQjAwNDQwMkYwOTAyMDE5RTA0NDAyRjBFNTJDNzAwMzc1MkM3QworOjEwMEYzQjAwMTREMEQwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI2QworOjEwMEY0QjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5NzQ4MEYwRDAzMgorOjA2MEY1QjAwODJEMDgzRDBFMDMyRDkKKzoxMDBGNjEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQTc0ODBGMDkwNUIKKzowQzBGNzEwMDAxQkQ3NEZGRjBEMDgyRDA4M0QwRTAzMkNDCis6MTAwRjdEMDA5MDAxMjAxMkEzRkEwMDAwMjU4MDkwMDEyNDc0MDhGMDNFCis6MTAwRjhEMDBBMzc0MDFGMEEzNzQ2RUYwQTNGMEEzNzQxM0YwQTM3NDEzCis6MTAwRjlEMDAxMUYwRTRBM0YwQTNGMDkwMDExRUYwOTAwMTFFRTBGRjBDCis6MTAwRkFEMDAwNEEzRjBFRjc1RjAwREE0MjQwMUY5NzQwMzM1RjBBODM2Cis6MTAwRkJEMDAwMUZDN0QwMTdCMDE3QTAxNzkxRjdFMDA3RjBEMTJBMjVDCis6MTAwRkNEMDAxMjdFMDE3RjFGMTI4N0E2OTAwMTFFRTAwNEYwRTBDMzgwCis6MTAwRkREMDA5NDA0NDBDN0U0RjUyNzkwMDExRUYwOTAwMTFFRTBGRjM4Cis6MTAwRkVEMDBDMzk0MDQ1MDFBNzRGODJGRjU4MkU0MzQwMkY1ODNFNEE3Cis6MTAwRkZEMDBGMDc0MjMyRkY4RTRGNjkwMDExRUUwMDRGMDgwRENFNDk5Cis6MTAxMDBEMDBGNTM0RTVDMDYwMkY5MDAxMUU3NDAxRjA5MDAxMUVFMEQzCis6MTAxMDFEMDBGRkQzOTQwNDUwMUZFRjE0RkY3NDAxQTgwNzA4ODAwMjNBCis6MTAxMDJEMDBDMzMzRDhGQzQyMzQ3RTAxN0YxRTEyODQ0MTkwMDExRUQxCis6MTAxMDNEMDBFMDA0RjA4MEQ3RTRGNTNFRjUyMkY1MzFGNTMyOTAwMTZDCis6MTAxMDREMDAxRUYwOTAwMTFFRTBGRjc1RjAwOEE0MjQwNkY1ODJFNDYxCis6MTAxMDVEMDAzNDIwRjU4M0UwNTRGMEZFNzRDNTJGRjU4MkU0MzQwMTlECis6MTAxMDZEMDBGNTgzRUVGMDc0M0EyRkY4QTYwNjc0MzYyRkY4RTRGNkYxCis6MTAxMDdEMDA3NDJEMkZGOEU0RjY3NEZDMkZGNTgyRTQzNDAyRjU4MzE5Cis6MTAxMDhEMDBFNEYwOTAwMTFFRTAwNEYwRTBCNDA0QjY5MDIwNjBFMEJFCis6MDQxMDlEMDA1NDBGRjU0RUE5Cis6MTAxMEExMDA3MDAzMDIxMTI2RTQ5MDAxMUVGMDkwMDExRUUwRkZDM0JGCis6MTAxMEIxMDA5NDA0NTBFNDc0MDFBODA3MDg4MDAyQzMzM0Q4RkM1NTk2Cis6MTAxMEMxMDA0RTYwNUE5MDAxMUVFMEZFNzVGMDA4QTQyNDAyRjU4MkRDCis6MTAxMEQxMDBFNDM0MjBGNTgzRTBGRkVFNzVGMDA4QTQyNDA1RjU4MkUxCis6MTAxMEUxMDBFNDM0MjBGNTgzRTBFRTc1RjAwOEE0MjQwNkY1ODJFNEVCCis6MTAxMEYxMDAzNDIwRjU4M0UwRkZBRjA2RUU3NUYwMERBNDI0MDJGNTcwCis6MTAxMTAxMDA4MkU0MzQwM0Y1ODNFMEZDQTNFMEZEQTNFMEZFQTNFMDY5Cis6MTAxMTExMDBGNTY2OEU2NThENjQ4QzYzN0QwNjEyODNERjkwMDExRUZBCis6MDYxMTIxMDBFMDA0RjA4MDg1MjJDRAorOjAyMTEyNzAwQUMwNzEzCis6MTAxMTI5MDA5MDdGQTVFMDQ0ODBGMEVDMjVFMDQ0NDE5MDdGQTZGMDUzCis6MTAxMTM5MDA3QjNDQUYwMzFCRUY3MDE2OTA3RkE1RTA0NDQwRjA5MDE1Cis6MTAxMTQ5MDA3RkE2RTBGRDdEMzJBRjA1MURFRjYwRDQ4MEY4OTA3RjZBCis6MTAxMTU5MDBBNUUwRkQzMEUwREMyMEUxMDlFMDQ0NDBGMDdFRkY3RkJFCis6MTAxMTY5MDBGOTIyRUQzMEUyMEM5MDdGQTVFMDQ0NDBGMDdFRkY3RjRDCis6MTAxMTc5MDBGQTIyOTA3RkE1RTA0NDIwRjA5MDdGQTZFMEZEN0IxRTM3Cis6MTAxMTg5MDBBRjAzMUJFRjcwMTY5MDdGQTVFMDQ0NDBGMDkwN0ZBNjU3Cis6MTAxMTk5MDBFMEZEN0QzMkFGMDUxREVGNjA4NjgwRjg5MDdGQTVFMDA4Cis6MTAxMUE5MDBGRDIwRTBEQzdCM0NBRjAzMUJFRjcwMTk5MDdGQTVFMENECis6MTAxMUI5MDA0NDQwRjA5MDdGQTZFMEZEN0QzMkFGMDUxREVGNzAwMzNFCis6MTAxMUM5MDAwMjExMjk4MEY1OTA3RkE1RTBGRDMwRTBEOTMwRTIwOUQwCis6MTAxMUQ5MDBFMDQ0NDBGMDdFRkY3RkZBMjJDMkFGOTA3RkE1RTA0NDUxCis6MEMxMUU5MDA0MEYwOTA3RkE2RTBGREQyQUZGRjdFMDAzQQorOjAxMTFGNTAwMjJENworOjEwMTIwMDAwMTIwMTAwMDFGRkZGRkY0MDEwMDcwMTgwNDIwMDAxMDJCMAorOjEwMTIxMDAwMDMwMTA5MDI1ODAwMDEwMTA0ODAzQzA5MDQwMDAwMEE4RQorOjEwMTIyMDAwRkZGRkZGMDUwNzA1ODEwMjQwMDAwMDA3MDUwMTAyNDA5RQorOjEwMTIzMDAwMDAwMDA3MDU4MjAyNDAwMDAwMDcwNTAyMDI0MDAwMDA4RQorOjEwMTI0MDAwMDcwNTgzMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDU3MAorOjEwMTI1MDAwODQwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTg3MDJFMQorOjEwMTI2MDAwNDAwMDAwMDcwNTA3MDI0MDAwMDAwNDAzMDkwNDI0MDNBRQorOjEwMTI3MDAwNDMwMDZGMDA2RTAwNkUwMDY1MDA2MzAwNzQwMDIwMDA4NAorOjEwMTI4MDAwNTQwMDY1MDA2MzAwNjgwMDIwMDA0OTAwNkUwMDYzMDBBMAorOjEwMTI5MDAwMkUwMDE4MDM1NzAwNjgwMDY5MDA3NDAwNjUwMDQ4MDBCQworOjEwMTJBMDAwNDUwMDQxMDA1NDAwMkQwMDM0MDAxQTAzNTgwMDU4MDAzNgorOjEwMTJCMDAwMkQwMDU4MDA1ODAwMkQwMDU4MDA1ODAwNTgwMDU4MDBDNAorOjEwMTJDMDAwNTgwMDU4MDAyQTAzNDMwMDZGMDA2RTAwNjYwMDY5MDA1MgorOjEwMTJEMDAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwNkYwMDZFMDBBNQorOjEwMTJFMDAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIyMDM0MgorOjEwMTJGMDAwNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNjEwMDYzMDBDMgorOjEwMTMwMDAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDBFMQorOjAyMTMxMDAwMDAwMERCCis6MTAxMzEyMDBDMEUwQzBGMEMwODNDMDgyQzA4NUMwODRDMDg2QzBEMDk3Cis6MTAxMzIyMDA3NTg2MDA3NUQwMTg5MDIwNjBFMDU0MEZGNUYwNzAxMUFBCis6MTAxMzMyMDBEMEQwRDA4NkQwODREMDg1RDA4MkQwODNEMEYwRDBFMEY3Cis6MTAxMzQyMDAzMjc1ODYwMDEwRjAwQjEwRjExMjEwRjIxOTEwRjMyMDEyCis6MTAxMzUyMDA4MEQ0RTUyODcwMDM3NTI4MTQwMjEzN0NFNTI5NzAwM0Y0Cis6MTAxMzYyMDA3NTI5MTQwMjE1MERFNTJBNzAwMzc1MkExNDAyMTY5RUJBCis6MTAxMzcyMDBFNTJCNzAwMzc1MkIxNDAyMTgyRjkwMjAwMkUwNTQzRkM2Cis6MTAxMzgyMDAyMEUyM0EyMEUxMEIyMEU0MEIyMEU1MTQ2MDA5MDIxMzZECis6MTAxMzkyMDA0MzAyMTQ2NTAyMTM0MzQzODIwNEUwRjUzQTAyMTM0MzA1Cis6MTAxM0EyMDA0MzgyMDRFMDQzMkQwMTAyMTM0MzUzODJGODQzODIwNTMyCis6MTAxM0IyMDBFMDQyMzY1MzgyRkJFMDU0RkJGMDAyMTM0MzMwRTEwMjc5Cis6MTAxM0MyMDA4MEU4RjU4NUU1MzIzMEUwMEE1MzgyRjg0MzgyMDRFMDkyCis6MTAxM0QyMDA1NEZFRjBFNTg1MjBFMzU2OTAyMDUwNzQwMEYwOTAyMEYyCis6MTAxM0UyMDA1ODc0MDFGMDkwN0ZFMkUwNDQ0MEYwOTA3RkUzMDU4NjdDCis6MTAxM0YyMDA5MDdFODAwNTg2RTU4NUYwQTNFNTg0RjAwNTg2OTA3RkUyCis6MTAxNDAyMDBFNUU1M0ZGRDAzMDMwM0ZFRjBGMEYwRjBGMEYwRjBGMDRECis6MTAxNDEyMDBERUY2OTA3RkUyRTA1NEJGRjA5MDIwNTg3NDAwRjA5MDI2Cis6MTAxNDIyMDA3RkI3RURGMDkwMjAwMUUwNTRGRUYwMDIxMzQzN0Y0MEJECis6MTAxNDMyMDA5MDdFODAwNTg2OTAyMDAwRTU4NEZFMjQwNUZEOEQ4NDQzCis6MTAxNDQyMDBFMDhFODQzMEUwMDlFMDA1ODZGMEEzMDU4NkRGRUYwNTMzCis6MTAxNDUyMDA4NkMzNzQ0MDlGOTA3RkI3RjAwNTg2QTNFMDU0RkVGMEU4Cis6MTAxNDYyMDAwMjEzNDM1MzJERkFFNTIzNjAwODc1MjMwMEQyRTdGRUU5Cis6MTAxNDcyMDA4MDBBOTA3RkM3RTBGRTcwMDMwMjE0RkY5MDIwNTA3NDMwCis6MTAxNDgyMDAwMEYwOTAyMDU4NzQwMUYwOTA3RkUyRTA0NDQwRjA5MDI4Cis6MTAxNDkyMDA3RkUzMDU4NjkwN0U0MDA1ODZFNTg1RjBBM0U1ODRGMDJFCis6MTAxNEEyMDAwNTg2OTA3RkU1RUUzMEU3MDgwNTg2RTAyNDM4RjAwNUYyCis6MTAxNEIyMDA4NkVFNTQ3RkZFNTQwN0ZCRUU1NDc4NjAzMDAzMDMwMzNDCis6MTAxNEMyMDAzMEUzMDQ3NDA3N0IwOEZERkNFMEUwRTBFMEUwRTBFMEVDCis6MTAxNEQyMDBFMERERjZFQkZFNjAxOUVDNjQwNzcwMTE4QjIzOTA3RjYwCis6MTAxNEUyMDBFMkUwNTRCRkYwOTAyMDU4NzQwMEYwODAxQkUwREVGRDczCis6MTAxNEYyMDA5MDdGRTJFMDU0QkZGMDkwMjA1ODc0MDBGMDkwMjAwMUY5Cis6MTAxNTAyMDBFMDU0RkRGMDkwN0ZDN0YwMDIxMzQzOTAyMDBBRTA1NEFDCis6MTAxNTEyMDAzRjIwRTIzQTIwRTEwQjIwRTQwQjIwRTUxNDYwMDkwMkFGCis6MTAxNTIyMDAxMzQzMDIxNUY2MDIxMzQzNDM4MjA0RTBGNTNCMDIxMzEwCis6MTAxNTMyMDA0MzQzODIwNEUwNDMyRTAxMDIxMzQzNTM4MkY4NDM4MjYxCis6MTAxNTQyMDAwNUUwNDIzNzUzODJGQkUwNTRGQkYwMDIxMzQzMzBFMUUzCis6MTAxNTUyMDAwMjgwRThGNTg1RTUzMjMwRTEwQTUzODJGODQzODIwNERECis6MTAxNTYyMDBFMDU0RkVGMEU1ODUyMEUzNTY5MDIwNTA3NDAxRjA5MDlGCis6MTAxNTcyMDAyMDU4NzQwMUYwOTA3RkUyRTA0NDQwRjA5MDdGRTMwNTUwCis6MTAxNTgyMDA4NjkwN0UwMDA1ODZFNTg1RjBBM0U1ODRGMDA1ODY5MEM5Cis6MTAxNTkyMDA3RkU1RTU0MEZEMDMwMzAzRkVGMEYwRjBGMEYwRjBGMDJDCis6MTAxNUEyMDBGMERFRjY5MDdGRTJFMDU0QkZGMDkwMjA1ODc0MDBGMDM1Cis6MTAxNUIyMDA5MDdGQjlFREYwOTAyMDA5RTA1NEZFRjAwMjEzNDM3RkQyCis6MTAxNUMyMDA0MDkwN0UwMDA1ODY5MDIwMDhFNTg0RkUyNDA1RkQ4RDZFCis6MTAxNUQyMDA4NEUwOEU4NDMwRTAwOUUwMDU4NkYwQTMwNTg2REZFRjIzCis6MTAxNUUyMDAwNTg2QzM3NDQwOUY5MDdGQjlGMDA1ODZBM0UwNTRGRTQwCis6MTAxNUYyMDBGMDAyMTM0MzUzMkVGQUU1MjQ2MDA4NzUyNDAwRDJFNzYzCis6MTAxNjAyMDBGRTgwMEE5MDdGQzlFMEZFNzAwMzAyMTY5MDkwMjA1MDdGCis6MTAxNjEyMDA3NDAxRjA5MDIwNTg3NDAxRjA5MDdGRTJFMDQ0NDBGMEIxCis6MTAxNjIyMDA5MDdGRTMwNTg2OTA3REMwMDU4NkU1ODVGMEEzRTU4NDdECis6MTAxNjMyMDBGMDA1ODY5MDdGRTVFRTMwRTcwODA1ODZFMDI0MzhGMDc1Cis6MTAxNjQyMDAwNTg2RUU1NDdGRkU1NDA3RkJFRTU0Nzg2MDMwMDMwM0E4Cis6MTAxNjUyMDAwMzMwRTMwNDc0MDc3QjA4RkRGQ0UwRTBFMEUwRTBFMDM3Cis6MTAxNjYyMDBFMEUwRERGNkVCRkU2MDE5RUM2NDA3NzAxMThCMjQ5MDZDCis6MTAxNjcyMDA3RkUyRTA1NEJGRjA5MDIwNTg3NDAwRjA4MDFCRTBERTVGCis6MEUxNjgyMDBGRDkwN0ZFMkUwNTRCRkYwOTAyMDU4NzQwMEYwMUQKKzoxMDE2OTAwMDkwMjAwOUUwNTRGREYwOTA3RkM5RjAwMjEzNDM5MDIwQTAKKzoxMDE2QTAwMDEyRTA1NDNGMjBFMjNBMjBFMTBCMjBFNDBCMjBFNTE0NDUKKzoxMDE2QjAwMDYwMDkwMjEzNDMwMjE3ODcwMjEzNDM0MzgyMDRFMEY1RDMKKzoxMDE2QzAwMDNDMDIxMzQzNDM4MjA0RTA0MzJGMDEwMjEzNDM1MzgyM0QKKzoxMDE2RDAwMEY4NDM4MjA1RTA0MjM4NTM4MkZCRTA1NEZCRjAwMjEzRUEKKzoxMDE2RTAwMDQzMzBFMTAyODBFOEY1ODVFNTMyMzBFMjBBNTM4MkY4QzIKKzoxMDE2RjAwMDQzODIwNEUwNTRGRUYwRTU4NTIwRTM1NjkwMjA1MDc0QzgKKzoxMDE3MDAwMDAyRjA5MDIwNTg3NDAxRjA5MDdGRTJFMDQ0NDBGMDkwQTUKKzoxMDE3MTAwMDdGRTMwNTg2OTA3RDgwMDU4NkU1ODVGMEEzRTU4NEYwNkUKKzoxMDE3MjAwMDA1ODY5MDdGRTVFNTQxRkQwMzAzMDNGRUYwRjBGMEYwNTAKKzoxMDE3MzAwMEYwRjBGMEYwREVGNjkwN0ZFMkUwNTRCRkYwOTAyMDU4MzkKKzoxMDE3NDAwMDc0MDBGMDkwN0ZCQkVERjA5MDIwMTFFMDU0RkVGMDAyQTkKKzoxMDE3NTAwMDEzNDM3RjQwOTA3RDgwMDU4NjkwMjAxMEU1ODRGRTI0MTEKKzoxMDE3NjAwMDA1RkQ4RDg0RTA4RTg0MzBFMDA5RTAwNTg2RjBBMzA1NTgKKzoxMDE3NzAwMDg2REZFRjA1ODZDMzc0NDA5RjkwN0ZCQkYwMDU4NkEzOEMKKzoxMDE3ODAwMEUwNTRGRUYwMDIxMzQzNTMyRkZBRTUyNTYwMDg3NTI1NTcKKzoxMDE3OTAwMDAwRDJFN0ZFODAwQTkwN0ZDQkUwRkU3MDAzMDIxODIxQTIKKzoxMDE3QTAwMDkwMjA1MDc0MDJGMDkwMjA1ODc0MDFGMDkwN0ZFMkUwOTUKKzoxMDE3QjAwMDQ0NDBGMDkwN0ZFMzA1ODY5MDdENDAwNTg2RTU4NUYwMDYKKzoxMDE3QzAwMEEzRTU4NEYwMDU4NjkwN0ZFNUVFMzBFNzA4MDU4NkUwMjYKKzoxMDE3RDAwMDI0MzhGMDA1ODZFRTU0N0ZGRTU0MDdGQkVFNTQ3ODYwMDMKKzoxMDE3RTAwMDMwMDMwMzAzMzBFMzA0NzQwNzdCMDhGREZDRTBFMEUwMTIKKzoxMDE3RjAwMEUwRTBFMEUwRTBEREY2RUJGRTYwMTlFQzY0MDc3MDExN0MKKzoxMDE4MDAwMDhCMjU5MDdGRTJFMDU0QkZGMDkwMjA1ODc0MDBGMDgwNjgKKzoxMDE4MTAwMDFCRTBERUZEOTA3RkUyRTA1NEJGRjA5MDIwNTg3NDAwQTIKKzoxMDE4MjAwMEYwOTAyMDExRTA1NEZERjA5MDdGQ0JGMDAyMTM0MzkwMzQKKzoxMDE4MzAwMDIwMUFFMDU0M0YyMEUyM0EyMEUxMEIyMEU0MEIyMEU1OUYKKzoxMDE4NDAwMDE0NjAwOTAyMTM0MzAyMTkxODAyMTM0MzQzODIwNEUwOEYKKzoxMDE4NTAwMEY1M0QwMjEzNDM0MzgyMDRFMDQzMzAwMTAyMTM0MzUzMzYKKzoxMDE4NjAwMDgyRjg0MzgyMDVFMDQyMzk1MzgyRkJFMDU0RkJGMDAyRTgKKzoxMDE4NzAwMDEzNDMzMEUxMDI4MEU4RjU4NUU1MzIzMEUzMEE1MzgyMTQKKzoxMDE4ODAwMEY4NDM4MjA0RTA1NEZFRjBFNTg1MjBFMzU2OTAyMDUwQjIKKzoxMDE4OTAwMDc0MDNGMDkwMjA1ODc0MDFGMDkwN0ZFMkUwNDQ0MEYwMkYKKzoxMDE4QTAwMDkwN0ZFMzA1ODY5MDdEMDAwNTg2RTU4NUYwQTNFNTg0QkQKKzoxMDE4QjAwMEYwMDU4NjkwN0ZFNUU1NDJGRDAzMDMwM0ZFRjBGMEYwQkUKKzoxMDE4QzAwMEYwRjBGMEYwRjBERUY2OTA3RkUyRTA1NEJGRjA5MDIwMTAKKzoxMDE4RDAwMDU4NzQwMEYwOTA3RkJERURGMDkwMjAxOUUwNTRGRUYwQjgKKzoxMDE4RTAwMDAyMTM0MzdGNDA5MDdEMDAwNTg2OTAyMDE4RTU4NEZFMUEKKzoxMDE4RjAwMDI0MDVGRDhEODRFMDhFODQzMEUwMDlFMDA1ODZGMEEzQTgKKzoxMDE5MDAwMDA1ODZERkVGMDU4NkMzNzQ0MDlGOTA3RkJERjAwNTg2OTYKKzoxMDE5MTAwMEEzRTA1NEZFRjAwMjEzNDM1MzMwRkFFNTI2NjAwODc1NDUKKzoxMDE5MjAwMDI2MDBEMkU3RkU4MDBBOTA3RkNERTBGRTcwMDMwMjE5MDgKKzoxMDE5MzAwMEIyOTAyMDUwNzQwM0YwOTAyMDU4NzQwMUYwOTA3RkUyMzAKKzoxMDE5NDAwMEUwNDQ0MEYwOTA3RkUzMDU4NjkwN0NDMDA1ODZFNTg1MDUKKzoxMDE5NTAwMEYwQTNFNTg0RjAwNTg2OTA3RkU1RUUzMEU3MDgwNTg2ODQKKzoxMDE5NjAwMEUwMjQzOEYwMDU4NkVFNTQ3RkZFNTQwN0ZCRUU1NDc4RjEKKzoxMDE5NzAwMDYwMzAwMzAzMDMzMEUzMDQ3NDA3N0IwOEZERkNFMEUwMDAKKzoxMDE5ODAwMEUwRTBFMEUwRTBFMERERjZFQkZFNjAxOUVDNjQwNzcwMUIKKzoxMDE5OTAwMDExOEIyNjkwN0ZFMkUwNTRCRkYwOTAyMDU4NzQwMEYwNDUKKzoxMDE5QTAwMDgwMUJFMERFRkQ5MDdGRTJFMDU0QkZGMDkwMjA1ODc0OTEKKzoxMDE5QjAwMDAwRjA5MDIwMTlFMDU0RkRGMDkwN0ZDREYwMDIxMzQzMjkKKzowMTE5QzAwMDMyRjQKKzowNDE5QzEwMEFEMDdBQzA2QkMKKzoxMDE5QzUwMDc5MDZFRDI0MDRGNTgyRTQzQ0Y1ODNFMEZBQTNFMEZCMTcKKzoxMDE5RDUwMDRBNzAwMzAyMUIwOUU5QjQwNzAwNDAwMzAyMUFEQjkwQjEKKzoxMDE5RTUwMDE5RUJGODI4Mjg3MzAyMUFCOTAyMUE3MTAyMUE1QTAyNTkKKzoxMDE5RjUwMDFBNDAwMjFBMkYwMjFBMUEwMjFBMDA5MDdGQTVFMDQ0MTMKKzoxMDFBMDUwMDgwRjA4RDgyOEM4M0EzRTBGRjI1RTA0NEEwOTA3RkE2MjMKKzoxMDFBMTUwMEYwMTkwMjFBREIxOThEODI4QzgzRTBDMzk0MjA0MDBBRTkKKzoxMDFBMjUwMEEzQTNFMDkwN0ZBNkYwMDIxQURCOEQ4MjhDODNBM0EzOEIKKzoxMDFBMzUwMEUwQTNFMDkwN0ZBNkYwMTkwMjFBREI5MDdGQTVFMDQ0QjEKKzoxMDFBNDUwMDgwRjA4RDgyOEM4M0EzRTBGRjI1RTA0NEExOTA3RkE2RTIKKzoxMDFBNTUwMEYwMTkwMjFBREJFQjY0MDE0QTcwMDg5MDdGQTVFMDQ0OTcKKzoxMDFBNjUwMDIwRjAxOTkwN0ZBNkUwRjU1OTE5ODA2QUVEMjQwNEY1NTgKKzoxMDFBNzUwMDgyRTQzQ0Y1ODNFMEZFQTNFMDY0MDI0RTcwMDg5MDdGQUIKKzoxMDFBODUwMEE1RTA0NDIwRjAxOTkwN0ZBNkUwRkZFRDI0MDZGNTgyM0QKKzoxMDFBOTUwMEU0M0NGNTgzRTQ3NUYwMDExMkEyOTc4NUYwODJGNTgzQTUKKzoxMDFBQTUwMEVGRjBFRDI0MDRGNTgyRTQzQ0Y1ODM3NEZGRjVGMDEyQzQKKzoxMDFBQjUwMEEyODE4MDIyOTA3RkE1RTA0NDQwRjA5MDdGQTZFMEZGQzAKKzoxMDFBQzUwMEVEMjQwNkY1ODJFNDNDRjU4M0UwRkFBM0UwRjU4MjhBOEQKKzoxMDFBRDUwMDgzRUZGMDdGMDgyMjkwN0ZBNUUwRjU1OTMwRTBGNzMwREQKKzoxMDFBRTUwMEUyMDdFMDQ0NDBGMDdGMDYyMkU5RDM5NDAyNTAwMzAyNjYKKzoxMDFBRjUwMDE5QzdFNTU5MzBFMTAzMDIxOUM3OTA3RkE1RTA0NDQwQjUKKzowNjFCMDUwMEYwN0YwNzIyN0YwOEJCCis6MDExQjBCMDAyMkI3Cis6MTAxQjBDMDBFNTMzQzM5NDAxNTAxQzdGMDU3RTAwMTIwOUFFN0YwMkExCis6MTAxQjFDMDA3REZGMTI4MkVBN0YwNTdFMDAxMjA5QUU3RjAzN0RGRkY2Cis6MDQxQjJDMDAxMjgyRUEyMjE1Cis6MTA4MDAwMDA3QkZGN0ExMjc5MUI5MDAwMDQxMkEyNTRGRDhCNTA3NUVECis6MTA4MDEwMDA1MTEyNzU1MjI0RTQ5MDdGRTFGMDkwN0ZFMEYwRjU0RTJDCis6MTA4MDIwMDBGNTRGOTAwMkFFRjA5MDdGREZGMDkwN0ZERUYwOTA3RjEyCis6MTA4MDMwMDBBOTc0RkZGMDkwN0ZBQUYwRTRGQ0VDMjVFMDI0QjRGNUVECis6MTA4MDQwMDA4MkU0MzQ3RkY1ODNFNEYwMENCQzEwRUVFNDkwN0ZERDM1Cis6MTA4MDUwMDBGMEFGMDUxREVGNzAwMzAyODFDNkFCNTBBQTUxQTk1MkMzCis6MTA4MDYwMDA5MDAwMDExMkEyNTQ2NDA1NjAwMzAyODFCNTkwMDAwM0UwCis6MTA4MDcwMDAxMkEyNTQ2NDAxNjAwMzAyODEzQzkwMDAwMjEyQTI1NEQ3Cis6MTA4MDgwMDBGRjU0N0ZGQ0QzOTQwNzUwMDMwMjgxMTZFQ0MzOTQxMDc1Cis6MTA4MDkwMDA0MDAzMDI4MTE2RUYzMEU3NDJFNTRGQUU0RTc4MDJDRTQ0Cis6MTA4MEEwMDBDMzEzQ0UxM0Q4RjlGRjc0RjAyQ0Y1ODJFNDM0N0ZGNUI2Cis6MTA4MEIwMDA4M0VGRjA5MDdGRTBFMEZGRUMyNEY4RkU3NDAxQTgwNjY3Cis6MTA4MEMwMDAwODgwMDJDMzMzRDhGQzRGOTA3RkUwRjA5MDAyQUVFMDBFCis6MTA4MEQwMDAwNEYwOTA3RkRERTA0NDgwRjA4MDNFRTU0RkFFNEU3OEM2Cis6MTA4MEUwMDAwMkNFQzMxM0NFMTNEOEY5RkY3NEU4MkNGNTgyRTQzNDIyCis6MTA4MEYwMDA3RkY1ODNFRkYwOTA3RkUxRTBGRkVDMjRGOEZFNzQwMTYwCis6MTA4MTAwMDBBODA2MDg4MDAyQzMzM0Q4RkM0RjkwN0ZFMUYwOTAwMkFDCis6MTA4MTEwMDBBRUUwMDRGMDgwMDM3RkZGMjI5MDAwMDQxMkEyNTQyNUY5Cis6MTA4MTIwMDA0RkY1NEZFNDM1NEVGNTRFOTAwMDA1MTJBMjU0RkVFNDkzCis6MTA4MTMwMDAyNTRGRjU0RkVFMzU0RUY1NEUwMjgxQjhBQjUwQUE1MUEyCis6MTA4MTQwMDBBOTUyOTAwMDAzMTJBMjU0RkY2NDAyNjAwNUVGNjQwMzc5Cis6MTA4MTUwMDA3MDYwOTAwMDAyMTJBMjU0RkY1NDdGRkNEMzk0MDc1MDI5Cis6MTA4MTYwMDA0RUVGMzBFNzFFOTA3RkRFRTBGRjc0MDFBODA0MDg4MDI4Cis6MTA4MTcwMDAwMkMzMzNEOEZDRkU0RjkwN0ZERUYwOTA3RkFDRTA0RTIwCis6MTA4MTgwMDBGMDgwMzU5MDdGREZFMEZGNzQwMUE4MDQwODgwMDJDMzBGCis6MTA4MTkwMDAzM0Q4RkNGRTRGOTA3RkRGRjA5MDdGQURFMDRFRjBFQ0U3Cis6MTA4MUEwMDAyNUUwMjRDNUY1ODJFNDM0N0ZGNTgzRUNGMDgwMDk3Rjc3Cis6MTA4MUIwMDBGRjIyN0ZGRjIyN0ZGRjIyNzQwNzI1NTJGNTUyRTQzNTBDCis6MTA4MUMwMDA1MUY1NTEwMjgwNTEyMDAzMEQ5MDAyQUVFMDYwMDc5MEZFCis6MDg4MUQwMDA3RkFFRTA0NDAyRjA3RjAwRTUKKzowMTgxRDgwMDIyODQKKzowNDgxRDkwMDhFNTk4RjVBRDIKKzoxMDgxREQwMDc1NUIwM0U1NUEyNDA0RjU4MkU0MzU1OUY1ODNFMEZFMTkKKzoxMDgxRUQwMEEzRTA0RTcwMDMwMjgyRTdFNTVCNjA0RTE0NjAzODE0MjUKKzoxMDgxRkQwMDYwMjAxNDYwMDMwMjgyOEI5MDdGQTVFMDQ0ODBGMDg1OUYKKzoxMDgyMEQwMDVBODI4NTU5ODNBM0UwRkYyNUUwNDRBMDkwN0ZBNkYwMTQKKzoxMDgyMUQwMDgwNkM4NTVBODI4NTU5ODNFMEMzOTQyMDQwMDlBM0EzQkQKKzoxMDgyMkQwMEUwOTA3RkE2RjA4MDU3MTU1Qjg1NUE4Mjg1NTk4M0EzMTAKKzoxMDgyM0QwMEEzRTBBM0UwOTA3RkE2RjA4MDQ0RTU1QTI0MDZGNTgyRTIKKzoxMDgyNEQwMEU0MzU1OUY1ODNFNDc1RjAwMTEyQTI5Nzg1RjA4MkY1QjYKKzoxMDgyNUQwMDgzRTA5MDdGQTZGMDkwN0ZBNUUwNDQ0MEYwRTU1QTI0OUUKKzoxMDgyNkQwMDA0RjU4MkU0MzU1OUY1ODM3NEZGRjVGMDEyQTI4MTg1OEEKKzoxMDgyN0QwMDVBODI4NTU5ODNBM0EzRTQ3NUYwMDExMkEyODE5MDdGRTAKKzoxMDgyOEQwMEE1RTBGNTVDMzBFMEY3MzBFMjA3RTA0NDQwRjA3RjA2MTIKKzoxMDgyOUQwMDIyRTU1QzIwRTEwQTkwN0ZBNUUwNDQ0MEYwN0YwNzIyQjMKKzoxMDgyQUQwMEU1NUI3MDMxN0YwMTdFMDAxMjA5QUU5MDdGQTVFMDQ0NDEKKzoxMDgyQkQwMDgwRjA4NTVBODI4NTU5ODNBM0UwRkYyNUUwNDRBMDkwODQKKzoxMDgyQ0QwMDdGQTZGMDkwN0ZBNUUwRjU1QzMwRTBGNzMwRTFENTc1NDUKKzowQzgyREQwMDVCMDMwMjgxRTAxNTVCMDI4MUUwN0YwODdBCis6MDE4MkU5MDAyMjcyCis6MDI4MkVBMDBBRTA3REQKKzoxMDgyRUMwMDdDMDJFQzE0NjAxNTE0NzAxRTkwN0ZBNUUwNDQ4MEYwQTUKKzoxMDgyRkMwMEVFMjVFMDQ0NDA5MDdGQTZGMDgwMEM5MDdGQTZFREYwMzgKKzoxMDgzMEMwMDkwN0ZBNUUwNDQ0MEYwOTA3RkE1RTBGQjMwRTBGOEJDMDYKKzoxMDgzMUMwMDAyMEEyMEUxMDdFMDQ0NDBGMDdGMDcyMkVCMzBFMjBBM0EKKzowRTgzMkMwMDkwN0ZBNUUwNDQ0MEYwN0YwNjIyRENCNjdGMDg3QgorOjAxODMzQTAwMjIyMAorOjEwODMzQjAwQzBFMEMwODNDMDgyQzJBOTkwMDMwMDc0MTlGMEQyQTkxNworOjBGODM0QjAwNTM5MTdGOTAwMUM0RTRGMEQwODJEMDgzRDBFMDMyMTAKKzoxMDgzNUEwMEVGNzVGMDA4QTQyNDAwRjU4MkU0MzQyMEFCODJGQUY1MjQKKzoxMDgzNkEwMDgzQTNFNEYwOEI4MjhBODNBM0EzQTNFMEY1NjE3NEJGOUQKKzoxMDgzN0EwMEYwOEI4MjhBODNBM0EzRTA0NDEwRjA4QjgyOEE4M0EzQzIKKzoxMDgzOEEwMEEzQTNFNEYwOEI4MjhBODNBM0YwRjlFRDYwMUQ3NDAxNDQKKzoxMDgzOUEwMDdFMDBBODA3MDg4MDA1QzMzM0NFMzNDRUQ4RjlGRkU0QTAKKzoxMDgzQUEwMEVGNTUzMTYwMDQ3OTA5ODAwMjc5MEQ4QjgyOEE4M0EzQTMKKzoxMDgzQkEwMEEzQTM3NEJGRjA4QjgyOEE4M0EzQTNFMDU0RUZGMDhCNEMKKzoxMDgzQ0EwMDgyOEE4M0EzQTNBM0U1NjFGMEFFMDJBRjAzOEY4MjhFRjQKKzowNDgzREEwMDgzQTNFOUYwQTAKKzowMTgzREUwMDIyN0MKKzowNDgzREYwMDhGNjE4RDYyQkIKKzoxMDgzRTMwMEU0RjU2Nzc0M0YyRkY4NzYwODdGODA3RTI1N0QwMDdDNTcKKzoxMDgzRjMwMDAwQUI2NkFBNjVBOTY0QTg2M0QzMTJBM0IzNDAyNjdGMjIKKzoxMDg0MDMwMDAwN0U5NjdEMDA3QzAwQTg2M0QzMTJBM0IzNTAwQzc1NDUKKzoxMDg0MTMwMDY3NDA3NDNGMjU2MUY4NzYxMDgwMEE3NTY3ODA3NDNGNjIKKzoxMDg0MjMwMDI1NjFGODc2MzhFNTY3NDU2MjQ0MDFGRkU1NjE3NUYwM0IKKzowRDg0MzMwMDA4QTQyNDAyRjU4MkU0MzQyMEY1ODNFRkYwNjQKKzowMTg0NDAwMDIyMTkKKzoxMDg0NDEwMDhGODI4RTgzRTAxNEY1NTdDMzk0MDQ0MDAzN0ZGRjIyOEIKKzoxMDg0NTEwMEU1NTc3NUYwMDhBNDI0MDBGNTgyRTQzNDIwQUY4MkY1RDUKKzoxMDg0NjEwMDU4OEY1OUU1NTcyNUUwMjRDNkY1ODJFNDM0N0ZGNTgzMUEKKzoxMDg0NzEwMEUwMjBFMTBGRTU1NzI1RTAyNEM3RjU4MkU0MzQ3RkY1REMKKzoxMDg0ODEwMDgzRTRGMDc0MjMyNTU3RjhFNEY2RTU1OTI0MDRGNTgyRDIKKzoxMDg0OTEwMEU0MzU1OEY1ODNFMDQ0MDNGMEU1NTc3NUYwMERBNDI0NjUKKzoxMDg0QTEwMDAyRjU4MkU0MzQwM0Y1ODNFMEZDQTNFMEZEQTNFMEZFRTIKKzoxMDg0QjEwMEEzRTBGNTY2OEU2NThENjQ4QzYzN0QwNkFGNTcxMjgzRUMKKzoxMDg0QzEwMERGQUY1NzdEMDExMjgzNUE4NTU5ODI4NTU4ODNBM0EzNTMKKzoxMDg0RDEwMEUwMjBFMDQzRTBGRkU1NTkyNDA1RjU4MkU0MzU1OEY1NTUKKzoxMDg0RTEwMDgzRTBFNTU5MjQwNkY1ODJFNDM1NThGNTgzRTBGRkU1OUMKKzoxMDg0RjEwMDU3NzVGMDBEQTQyNDAyRjU4MkU0MzQwM0Y1ODNFMEZDMDIKKzoxMDg1MDEwMEEzRTBGREEzRTBGRUEzRTBGNTY2OEU2NThENjQ4QzYzQjgKKzoxMDg1MTEwMDdEMDZBRjU3MTI4M0RGNzRGODI1NTdGNTgyRTQzNDAyRTQKKzoxMDg1MjEwMEY1ODNFNEYwRTU1NzI1RTBGRkMzNzQwQzlGNzVGMDQwMzcKKzoxMDg1MzEwMEE0MjQ0MEY1ODJFNUYwMzQ3QkFGODJGRUU1NTcyNUUwQzcKKzoxMDg1NDEwMDI0RUZGNTgyRTQzNDAyRjU4M0VFRjBBM0VGRjBBRjU3QTgKKzowRjg1NTEwMDc0MDFBODA3MDg4MDAyQzMzM0Q4RkM0MjM0N0YwMEFFCis6MDE4NTYwMDAyMkY4Cis6MTA4NTYxMDA4RjgyOEU4M0UwMTRGNTU3QzM5NDA0NDAwMzdGRkYyMjZBCis6MTA4NTcxMDBBRjU3RTRGRDEyODM1QTc0RjgyNTU3RjU4MkU0MzQwMkFCCis6MTA4NTgxMDBGNTgzRTRGMEU1NTc3NUYwMDhBNDI0MDBGNTgyRTQzNDlFCis6MTA4NTkxMDAyMEFGODJGNTU5OEY1QUY1ODNFNTgyMjQwNEY1ODJFNEYwCis6MTA4NUExMDAzNTgzRjU4M0UwNTRGQ0YwRTU1Nzc1RjAwREE0MjQwQ0Y4Cis6MTA4NUIxMDBGNTgyRTQzNDAzRjU4M0U0RjBFNTU3NzVGMDBEQTQyNDY2Cis6MTA4NUMxMDAwMkY1ODJFNDM0MDNGNTgzRTBGQ0EzRTBGREEzRTBGRUMxCis6MTA4NUQxMDBBM0UwRjU2NjhFNjU4RDY0OEM2MzdEMDZBRjU3MTI4M0NCCis6MTA4NUUxMDBERkU1NUEyNDA1RjU4MkU0MzU1OUY1ODNFMDMwRTAwOUU5Cis6MTA4NUYxMDA4NTVBODI4NTU5ODNFMEY1NThBRjU3NzQwMUE4MDcwODU5Cis6MTA4NjAxMDA4MDAyQzMzM0Q4RkNGNDUyMzRFNTU3MjVFMDI0QzZGNTgzCis6MTA4NjExMDA4MkU0MzQ3RkY1ODNFMDIwRTEwRkU1NTcyNUUwMjRDN0FDCis6MEI4NjIxMDBGNTgyRTQzNDdGRjU4M0U0RjA3RjAwNzUKKzowMTg2MkMwMDIyMkIKKzowNDg2MkQwMDhFNTc4RjU4N0QKKzoxMDg2MzEwMDhGODI4RTgzRTAxNEY1NTlDMzk0MDQ0MDAzN0ZGRjIyOTcKKzoxMDg2NDEwMEU1NTk3NUYwMDhBNDI0MDFGNTgyRTQzNDIwRjU4M0UwQUUKKzoxMDg2NTEwMDU0MDM3MDY2ODU1ODgyODU1NzgzQTNFMDMwRTAyOEU1OEUKKzoxMDg2NjEwMDU5NzVGMDBEQTQyNDAyRjU4MkU0MzQwM0Y1ODNFMEZDOEUKKzoxMDg2NzEwMEEzRTBGREEzRTBGRUEzRTBGNTY2OEU2NThENjQ4QzYzNDcKKzoxMDg2ODEwMDdEMDJBRjU5MTI4M0RGODU1ODgyODU1NzgzQTNFMDMwN0QKKzoxMDg2OTEwMEUxMjhFNTU5NzVGMDBEQTQyNDAyRjU4MkU0MzQwM0Y1Q0YKKzoxMDg2QTEwMDgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGNTY2OEU2NThEMEIKKzowQzg2QjEwMDY0OEM2MzdEMDRBRjU5MTI4M0RGN0YwMEVFCis6MDE4NkJEMDAyMjlBCis6MTA4NkJFMDA4RjgyOEU4M0MwODNDMDgyRTBGREEzQTNBM0UwRkNFRDc2Cis6MTA4NkNFMDA2Q0QwODJEMDgzRjA4RjgyOEU4M0EzQTNBM0MwODNDMDhECis6MTA4NkRFMDA4MkUwRkQ4RjgyOEU4M0UwRkNFRDZDRDA4MkQwODNGMDQxCis6MTA4NkVFMDA4RjgyOEU4M0MwODNDMDgyQTNBM0EzRTBGREVDNkREMEU2Cis6MTA4NkZFMDA4MkQwODNGMDhGODI4RTgzQTNDMDgzQzA4MkUwRkQ4RkYxCis6MTA4NzBFMDA4MjhFODNBM0EzRTBGQ0VENkNEMDgyRDA4M0YwOEY4MkE3Cis6MTA4NzFFMDA4RTgzQTNBM0MwODNDMDgyRTBGRDhGODI4RTgzQTNFMEVECis6MTA4NzJFMDBGQ0VENkNEMDgyRDA4M0YwOEY4MjhFODNBM0MwODNDMDg5Cis6MTA4NzNFMDA4MkUwRkQ4RjgyOEU4M0EzQTNFMEZGRUQ2RkQwODJEMDA3Cis6MDM4NzRFMDA4M0YwMjI5MworOjA0ODc1MTAwQUQwN0FDMDZCRQorOjEwODc1NTAwNzkwRDhEODI4QzgzRTAxNEZFQzM5NDA0NDAwMzdGRkY2MgorOjEwODc2NTAwMjI4QzU3OEQ1OEVFNzVGMDBEQTQyNDAxRjU4MkU0MzQ2MgorOjEwODc3NTAwMDNBRjgyRkVBRDAxMTlFRDYwMjQwRkVGQUMwNjcwMDE2OQorOjEwODc4NTAwMEUxNEY1ODI4QzgzRTBGRDA1NThFNTU4QUE1NzcwMDI1MgorOjEwODc5NTAwMDU1NzE0RjU4MjhBODNFMDZENjBEOTdGMDEyMjdGMDAzOQorOjAxODdBNTAwMjJCMQorOjA0ODdBNjAwOEU1NzhGNTgwMworOjEwODdBQTAwOEY4MjhFODNFMDE0RjU1RUMzOTQwNDQwMDM3RkZGMjIxOAorOjEwODdCQTAwRTU1RTc1RjAwOEE0MjQwMEY1ODJFNDM0MjBBRjgyRjU2MgorOjEwODdDQTAwNUY4RjYwODU1ODgyODU1NzgzQTNFMEZDQTNFMEZEQTNGMQorOjEwODdEQTAwRTBGRUEzRTBGRjdCMDg3QTAwNzkwMDc4MDBEMzEyQTNCOQorOjEwODdFQTAwQjM0MDEwODU1ODgyODU1NzgzQTMxMkEzRkEwMDAwMDA2QworOjEwODdGQTAwMDg4MDJFODU1ODgyODU1NzgzQTNFMEZDQTNFMEZEQTM1OQorOjEwODgwQTAwRTBGRUEzRTBGRjdCMDA3QTA4NzkwNzc4MDBDMzEyQTM5MQorOjEwODgxQTAwQjM1MDBFODU1ODgyODU1NzgzQTMxMkEzRkEwMDA3MDgxRQorOjEwODgyQTAwMDA4NTU4ODI4NTU3ODNBM0UwRjhBM0UwRjlBM0UwRkEwQworOjEwODgzQTAwQTNFMEZCN0YwMDdFNTA3RDQ2N0MwMDEyQTMyMThGNUM2MworOjEwODg0QTAwOEU1QjhENUE4QzU5N0IwQTdBMDA3OTAwNzgwMDEyQTNDNAorOjEwODg1QTAwMjFBRjAzOEY1REFGNUNBRTVCQUQ1QUFDNTk3QjBBN0EzMAorOjEwODg2QTAwMDA3OTAwNzgwMDEyQTMyMThGNUM4RTVCOEQ1QThDNTk5NworOjEwODg3QTAwRTU1REMzOTQwNTQwMTVFNTVDMjQwMUY1NUNFNDM1NUJEMAorOjEwODg4QTAwRjU1QkU0MzU1QUY1NUFFNDM1NTlGNTU5ODU2MDgyODUyMAorOjEwODg5QTAwNUY4M0EzRTRGMDg1NjA4Mjg1NUY4M0EzQTNBM0UwNDQ5QQorOjEwODhBQTAwODBGMDg1NjA4Mjg1NUY4M0U1NUNGMEFGNUNBRTVCQUQ4RQorOjEwODhCQTAwNUFBQzU5NzgwODEyQTNDNDg1NjA4Mjg1NUY4M0EzRUZGNgorOjEwODhDQTAwRjA4NTYwODI4NTVGODNBM0EzQTNFMDU0N0ZGMEU0RjU3QgorOjEwODhEQTAwNURFNTU4MjQwQkY1ODJFNDM1NTdGNTgzRTBGRjMwRTA3NworOjEwODhFQTAwMjM1NDAxRjBFNTYwMjQwNEY1ODJFNDM1NUZGNTgzRTA2MgorOjEwODhGQTAwNTRGREYwQUY1RTc0MDFBODA3MDg4MDAyQzMzM0Q4RkNBOAorOjEwODkwQTAwNDIyMjgwMzY3NDAxN0UwMEE4NUUwODgwMDVDMzMzQ0VGOQorOjEwODkxQTAwMzNDRUQ4RjlGRkU0RUY1NTIyNjAxRkU1NjAyNDA0RjU1MQorOjEwODkyQTAwODJFNDM1NUZGNTgzRTA0NDAyRjBBRjVFNzQwMUE4MDc4NAorOjEwODkzQTAwMDg4MDAyQzMzM0Q4RkNGNDUyMjJFNTU4MjQwOEY1ODI5MQorOjEwODk0QTAwRTQzNTU3RjU4M0UwRkZCNDYyMDU0MzVEMEE4MDFBRUYwOAorOjEwODk1QTAwQjQ3MjA1NDM1RDA4ODAxMUVGQjQ3NDA1NDM1RDAyODA2QgorOjEwODk2QTAwMDhFRjY0NkU2MDAzN0ZGRjIyRTU1ODI0MEJGNTgyRTQ2QQorOjEwODk3QTAwMzU1N0Y1ODNFMEZGMzBFMzAzNDM1RDgwRUYzMEU3MTJCQworOjEwODk4QTAwNDM1RDQwRTU2MDI0MDRGNTgyRTQzNTVGRjU4M0UwNDQwNQorOjEwODk5QTAwMDJGMEU1NTgyNDBCRjU4MkU0MzU1N0Y1ODNFMDMwRTExRgorOjEwODlBQTAwMjBBRjVFNzQwMUE4MDcwODgwMDJDMzMzRDhGQzQyMzJBNAorOjEwODlCQTAwRTU2MDI0MDRGNTgyRTQzNTVGRjU4M0UwNDQwMUYwODA0NAorOjEwODlDQTAwMTBBRjVFNzQwMUE4MDcwODgwMDJDMzMzRDhGQ0Y0NTJDMgorOjEwODlEQTAwMzJFNTU4MjQwQkY1ODJFNDM1NTdGNTgzRTBGRjMwRTQ5RAorOjEwODlFQTAwMTFBRTVFNzQwMUE4MDYwODgwMDJDMzMzRDhGQzQyMzE3NgorOjEwODlGQTAwODAxMEFFNUU3NDAxQTgwNjA4ODAwMkMzMzNEOEZDRjQ2NgorOjEwOEEwQTAwNTIzMUVGMjBFMTAzMzBFNDAzRTRGNTVEODU2MDgyODVBRAorOjEwOEExQTAwNUY4M0EzQTNBMzc0QkZGMDg1NjA4Mjg1NUY4M0EzQTM0QQorOjEwOEEyQTAwRTRGMEU1NURGMEU1NTgyNDBBRjU4MkU0MzU1N0Y1ODM2QworOjEwOEEzQTAwRTBGRkU1NjAyNDA0RjU4MkU0MzU1RkY1ODNFRkYwRTVCNQorOjEwOEE0QTAwNTgyNDBBRjU4MkU0MzU1N0Y1ODNFMEZGRTU2MDI0MDVFQQorOjEwOEE1QTAwRjU4MkU0MzU1RkY1ODNFRkYwRTU1ODI0MDlGNTgyRTQwMQorOjEwOEE2QTAwMzU1N0Y1ODNFMEZGRTU2MDI0MDZGNTgyRTQzNTVGRjVDNgorOjEwOEE3QTAwODNFRkYwRTU1ODI0MDlGNTgyRTQzNTU3RjU4M0UwRkZFMgorOjEwOEE4QTAwRTU2MDI0MDdGNTgyRTQzNTVGRjU4M0VGRjA4NTYwODJCRgorOjEwOEE5QTAwODU1RjgzQTNBM0EzRTRGMDg1NjA4Mjg1NUY4M0EzQTM5NAorOjEwOEFBQTAwRjA4NTU4ODI4NTU3ODNBM0UwRkNBM0UwRkRBM0UwRkU4RQorOjEwOEFCQTAwQTNFMEY1NjY4RTY1OEQ2NDhDNjM3RDA2QUY1RTEyODNENgorOjEwOEFDQTAwREY3NTVEMDhFNTU4MjQwQ0Y1ODJFNDM1NTdGNTgzRTAzNworOjEwOEFEQTAwNjAwMzQzNUQxMEU1NjAyNDA0RjU4MkU0MzU1RkY1ODNBNQorOjEwOEFFQTAwRTA1NDAzNDU1REYwRTU1ODI0MDVGNTgyRTQzNTU3RjU3MQorOjEwOEFGQTAwODNFMEZFQzM5NDA1NDAwNkVFRDM5NDA4NDAwMzdGRkY0QgorOjEwOEIwQTAwMjJFNTU4MjQwNkY1ODJFNDM1NTdGNTgzRTBGREMzOTQzRgorOjEwOEIxQTAwMDE0MDA2RUREMzk0MDI0MDAzN0ZGRjIyRUQxNEZGMjVBNgorOjEwOEIyQTAwRTAyNUUwRkZFRTI0RkI0RkY1NURFNTU4MjQwN0Y1ODJDQQorOjEwOEIzQTAwRTQzNTU3RjU4M0UwMjREMDYwMTgxNDYwMUEyNEMzNjAyMgorOjEwOEI0QTAwMUUxNDYwMDkyNDBBNzAxNDQzNUQxODgwMTI0MzVEMDhEQworOjEwOEI1QTAwODAwRDQzNUQzODgwMDg0MzVEMjg4MDAzN0ZGRjIyODVBRQorOjEwOEI2QTAwNjA4Mjg1NUY4M0EzQTNBM0U1NURGMDc0MDE3RTAwQThGQworOjEwOEI3QTAwNUUwODgwMDVDMzMzQ0UzM0NFRDhGOUZGRTRFRjU1MzQwRgorOjEwOEI4QTAwNjAwN0FGNUU3RDAxMTI4MzVBQUE1N0E5NTg3QjAxQzBCQworOjEwOEI5QTAwMDNDMDAxRTU1RTc1RjAwREE0MjQwMUY5NzQwMzM1RjBGNAorOjEwOEJBQTAwQTgwMUZDQUQwM0QwMDFEMDAzN0UwMDdGMEQxMkEyMTJGMgorOjAyOEJCQTAwN0YwMDNBCis6MDE4QkJDMDAyMjk2Cis6MTA4QkJEMDA4RjgyOEU4M0UwMTRGRUMzOTQwNDQwMDM3RkZGMjJFRTY4Cis6MTA4QkNEMDA3NUYwMDhBNDI0MDBGNTgyRTQzNDIwQUQ4MkZDOTAwMUY4Cis6MTA4QkREMDAyQzc0MDhGMEVFMDRBM0YwRTRBM0YwOEQ4MjhDODNFNUYxCis6MTA4QkVEMDA4MjI0MDZGNTgyRTQzNTgzRjU4M0UwOTAwMTJGRjA4RDI0Cis6MTA4QkZEMDA4MjhDODNFNTgyMjQwNUY1ODJFNDM1ODNGNTgzRTA1NDg4Cis6MTA4QzBEMDAxRTkwMDEzMEYwNzQyRDJFRjhFNkEzRjBBRjA2NzQwMTFFCis6MTA4QzFEMDBBODA3MDg4MDAyQzMzM0Q4RkNGNTU3RTUzM0MzOTQwMTg4Cis6MTA4QzJEMDA0MDBEOTAyMDc4RTA1NDBGNzU1ODAwRjU1OTgwMDk3RjVDCis6MTA4QzNEMDAwMjEyMTEyNzhFNTg4RjU5QzNFNTU4NjQ4MDk0ODA0MEQ1Cis6MTA4QzREMDBEQUU1NTc1NTU5OTAwMTMyRjA3RTAxN0YyQzdEMDcxMkUwCis6MDQ4QzVEMDA5MTZBN0YwMDk5Cis6MDE4QzYxMDAyMkYwCis6MTA4QzYyMDA4RjgyOEU4M0UwMTRGRUMzOTQwNDQwMDM3RkZGMjJFRUMyCis6MTA4QzcyMDA3NUYwMDhBNDI0MDBGNTgyRTQzNDIwQUY4MkZFOTAwMTRFCis6MTA4QzgyMDAzMzc0MEFGMDhGODI4RTgzRTU4MjI0MDRGNTgyRTQzNTAwCis6MTA4QzkyMDA4M0Y1ODNFMDkwMDEzNEYwN0UwMTdGMzM3RDAyMTI5MUVGCis6MDM4Q0EyMDA2QTdGMDBFNgorOjAxOENBNTAwMjJBQworOjA0OENBNjAwOEU1NzhGNThGRQorOjEwOENBQTAwOEY4MjhFODNFMDE0RkVDMzk0MDQ0MDAzN0ZGRjIyRUU3QQorOjEwOENCQTAwNzVGMDA4QTQyNDAwRjU4MkU0MzQyMEFEODJGQzg1NThCRQorOjEwOENDQTAwODI4NTU3ODNBM0UwNjAwRkVEMjQwNEY1ODJFNDNDRjUyNgorOjEwOENEQTAwODNFMDQ0MDJGMDgwNDNFRTc1RjAwREE0MjQwQ0Y1ODI4MworOjEwOENFQTAwRTQzNDAzRjU4M0UwMzBFMDIwRUUyNUUwMjRDNkY1ODI4MworOjEwOENGQTAwRTQzNDdGRjU4M0UwMzBFMUYwN0Y2MEVEMjQwNUY1ODIwRQorOjEwOEQwQTAwRTQzQ0Y1ODNFMDVGQjUwN0YyQUUwNEFGMDVFRjI0MDQ1NworOjBDOEQxQTAwRjU4MkU0M0VGNTgzRTA1NEZERjA3RjAwOUMKKzowMThEMjYwMDIyMkEKKzowNDhEMjcwMEFEMDdBQzA2RTIKKzoxMDhEMkIwMDhEODI4QzgzRTAxNEZFQzM5NDA0NDAwMzdGRkYyMkVFRkMKKzoxMDhEM0IwMDc1RjAwOEE0MjQwMEY1ODJFNDM0MjBBRjgyRkU4RDgyMDYKKzoxMDhENEIwMDhDODNBM0UwNjAwRkVGMjQwNEY1ODJFNDNFRjU4M0UwMEYKKzoxMDhENUIwMDQ0MDFGMDgwMERFRjI0MDRGNTgyRTQzRUY1ODNFMDU0RUEKKzowNDhENkIwMEZFRjA3RjAwOTcKKzowMThENkYwMDIyRTEKKzowNDhENzAwMEFEMDdBQzA2OTkKKzoxMDhENzQwMDhEODI4QzgzRTAxNEZFQzM5NDA0NDAwMzdGRkYyMkVFQjMKKzoxMDhEODQwMDc1RjAwOEE0MjQwMEY1ODJFNDM0MjBBRjgyRkU4RDgyQkQKKzoxMDhEOTQwMDhDODNBM0UwNjAwRDhGODI4RTgzQTNBM0EzRTA0NDQwNjEKKzoxMDhEQTQwMEYwODAwQjhGODI4RTgzQTNBM0EzRTA1NEJGRjA3RjAwRDcKKzowMThEQjQwMDIyOUMKKzoxMDhEQjUwMDhGODI4RTgzRTAxNEZFQzM5NDA0NDAwMzdGRkYyMkFGQUQKKzoxMDhEQzUwMDA2NzQwMUE4MDcwODgwMDJDMzMzRDhGQzQyM0U3RjAwMjEKKzowMThERDUwMDIyN0IKKzowNDhERDYwMDhFNTc4RjU4Q0QKKzoxMDhEREEwMDhGODI4RTgzQTNFMEY1NUM4RjgyOEU4M0UwRjU1OUQzNzAKKzoxMDhERUEwMDk0MDQ0MDAzN0ZGRjIyRTU1OTI0RkU2MDE2MTQ2MDFGOTUKKzoxMDhERkEwMDE0NjAyODI0MDM3MDJFN0U3RTdGODA3NTVBN0U3NTVCRjAKKzoxMDhFMEEwMDgwODAyMjdFN0U3RjAwNzU1QTdFNzU1QjAwODAxNjdFOEEKKzoxMDhFMUEwMDdEN0Y4MDc1NUE3RDc1NUI4MDgwMEE3RTdEN0YwMDc1QjcKKzoxMDhFMkEwMDVBN0Q3NTVCMDBFNTVDNzAxQjg1NUI4Mjg1NUE4Mzc0OEQKKzoxMDhFM0EwMEZGRjBFNTU5MjVFMDI0QjVGNTgyRTQzNDdGRjU4Mzc0MjMKKzoxMDhFNEEwMDAxRjA4MDQ4RTU1ODI0MDJGRkU0MzU1N0ZFRTU1QzYwRUUKKzoxMDhFNUEwMDIzMEZFRkFDMDY3MDAxMEUxNEY1ODI4QzgzRTBGRDA1M0EKKzoxMDhFNkEwMDVCRTU1QkFBNUE3MDAyMDU1QTE0RjU4MjhBODNFREYwMTMKKzoxMDhFN0EwMDE1NUM4MEQ5ODU1ODgyODU1NzgzQTNFMEZGRTU1OTI1N0IKKzowRThFOEEwMEUwMjRCNUY1ODJFNDM0N0ZGNTgzRUZGMDdGMDAzRAorOjAxOEU5ODAwMjJCNworOjEwOEU5OTAwRUYyNDA1RjU1OEU0M0VGNTU3OTAwMTM1NzQwN0YwOTAzNQorOjEwOEVBOTAwMDE3QTc0MDFGMEEzNzQzNkYwODU1ODgyODU1NzgzQTMzQgorOjEwOEVCOTAwQTNBM0UwRkVBM0UwOEU1OUY1NUE4NTU4ODI4NTU3ODMwRQorOjEwOEVDOTAwRTAyNDlFNjA2MTI0Rjk2MDBFMjRGMTcwMDMwMjhGN0ExOAorOjEwOEVEOTAwMjQxNDYwMDMwMjhGQzg4NTU4ODI4NTU3ODNBM0UwRkU1NgorOjEwOEVFOTAwQTNFMEZGQzNFNDlGRjU1Qzc0MDE5RUY1NUJEM0U1NUNFOQorOjEwOEVGOTAwOTQzRkU1NUI5NDAwNDAwNjc1NUIwMDc1NUMzRkQzRTVFNAorOjEwOEYwOTAwNUE5NTVDRTU1OTk1NUI1MDAzMDI4RkNCQUU1QkFGNUMxQworOjEwOEYxOTAwODU1ODgyODU1NzgzQTNBM0EzRUVGMEZFQTNFRkYwOEVCNQorOjEwOEYyOTAwNTlGNTVBMDI4RkNCODU1ODgyODU1NzgzQTNFMEZFQTM1MgorOjEwOEYzOTAwRTBGRkMzNzQzMDlGRjU1Q0U0OUVGNTVCRDNFNTVDOTQ3OAorOjEwOEY0OTAwMTBFNTVCOTQwMDQwMDY3NTVCMDA3NTVDMTBEM0U1NUEyQgorOjEwOEY1OTAwOTU1Q0U1NTk5NTVCNDA2QUFFNUJBRjVDODU1ODgyODU0NworOjEwOEY2OTAwNTc4M0EzQTNBM0VFRjBGRUEzRUZGMDhFNTlGNTVBODAyMQorOjEwOEY3OTAwNTE4NTU4ODI4NTU3ODNBM0UwRkVBM0UwRkZDM0U0OUY5MAorOjEwOEY4OTAwRjU1Q0U0OUVGNTVCNDU1QzYwMEJEM0U1NUM5NDNGRTVERAorOjEwOEY5OTAwNUI5NDAwNDAwNjc1NUIwMDc1NUMzRkQzRTU1QTk1NUNCMAorOjEwOEZBOTAwRTU1OTk1NUI0MDFDQUU1QkFGNUM4NTU4ODI4NTU3ODM1QworOjEwOEZCOTAwQTNBM0EzRUVGMEZFQTNFRkYwOEU1OUY1NUE4MDAzN0YyOQorOjEwOEZDOTAwMDEyMjg1NTg4Mjg1NTc4M0UwMjQ5RTcwMDMwMjkwOEI4NQorOjEwOEZEOTAwMjRGOTYwNTgyNEYxNzAwMzAyOTBEQjI0MTQ2MDAzMDIyMQorOjEwOEZFOTAwOTExRjg1NTg4Mjg1NTc4M0EzRTBGRUEzRTBGRkQzOTRBMAorOjEwOEZGOTAwRkZFRTk0MDA0MDAzMDI5MTFGOTAwMTc1RUZGMEU1NUFDRQorOjEwOTAwOTAwMTU1QUFFNTk3MDAyMTU1OTRFNzAwMzAyOTExRjkwMDFGRAorOjEwOTAxOTAwNzVFMEZGMDRGMEE4MDdFNkZGOTAwMTdBRTQ3NUYwMDExNgorOjEwOTAyOTAwMTJBMjk3ODVGMDgyRjU4M0VGRjA4MEQyODU1ODgyODU2OAorOjEwOTAzOTAwNTc4M0EzRTBGRUEzRTBGRkMzOTQ4MEVFOTQwMDUwMDM5RQorOjEwOTA0OTAwMDI5MTFGRDNFRjk0RkZFRTk0MDA0MDAzMDI5MTFGOTAwOQorOjEwOTA1OTAwMDE3NkVGRjBFNTVBMTU1QUFFNTk3MDAyMTU1OTRFNzA1RQorOjEwOTA2OTAwMDMwMjkxMUY5MDAxNzZFMEZGMDRGMEE4MDdFNkZGOTA0NAorOjEwOTA3OTAwMDE3QUU0NzVGMDAxMTJBMjk3ODVGMDgyRjU4M0VGRjA4OQorOjEwOTA4OTAwODBEMjg1NTg4Mjg1NTc4M0EzRTBGRUEzRTBGRkMzOTQ2RAorOjEwOTA5OTAwMjBFRTk0MDA1MDAzMDI5MTFGRDNFRjk0MkZFRTk0MDAxOQorOjEwOTBBOTAwNTA3NDkwMDE3N0VGRjBFNTVBMTU1QUFFNTk3MDAyMTVEMAorOjEwOTBCOTAwNTk0RTYwNjI5MDAxNzdFMEZGMDRGMEE4MDdFNkZGOTAzRgorOjEwOTBDOTAwMDE3QUU0NzVGMDAxMTJBMjk3ODVGMDgyRjU4M0VGRjAzOQorOjEwOTBEOTAwODBENTg1NTg4Mjg1NTc4M0EzRTBGRkEzRTA5MDAxNzg2NgorOjEwOTBFOTAwQ0ZGMEEzRUZGMEU1NUExNTVBQUU1OTcwMDIxNTU5NEU1MworOjEwOTBGOTAwNjAyNDkwMDE3OEU0NzVGMDAxMTJBMjk3ODVGMDgyRjU1OQorOjEwOTEwOTAwODNFMEZGOTAwMTdBRTQ3NUYwMDExMkEyOTc4NUYwODI1RAorOjEwOTExOTAwRjU4M0VGRjA4MENGN0UwMTdGMzU4NTU4ODI4NTU3ODNBRgorOjBEOTEyOTAwQTNBM0EzRTBBM0UwMDRGRDEyOTE2QTdGMDA2MAorOjAxOTEzNjAwMjIxNgorOjEwOTEzNzAwOEU2MjhGNjM4QzY0OEQ2NUFGMDMxQkVGNjAyNDA1NjNCQworOjEwOTE0NzAwRTU2M0FFNjI3MDAyMDU2MjE0RjU4MjhFODNFMEZGMDU2NworOjEwOTE1NzAwNjVFNTY1QUM2NDcwMDIwNTY0MTRGNTgyOEM4M0VGRjBGNQorOjAzOTE2NzAwODBENjIyOEQKKzowNjkxNkEwMDhENURBQjA3QUEwNkIzCis6MTA5MTcwMDA3NTYxNDA3NTYwMEQ3NTVGMDM3NTVFMDA5MDdGQzJFMDlDCis6MTA5MTgwMDAyMEUxRjlBRjYxQUU2MEFENUZBQzVFRUM0RDRFNEY3MDZCCis6MTA5MTkwMDAwODkwN0ZDMjc0MDJGMDgwRDc5MDdGQzJFMDIwRTExNjcxCis6MTA5MUEwMDBBRjAzQUUwMjdDN0I3RDgwQUI1RDEyOTEzNzkwN0ZDM0I1Cis6MDg5MUIwMDBFNTVERjA3RjAxMjI3RjAwNjQKKzowMTkxQjgwMDIyOTQKKzoxMDkxQjkwMDkwMDE4NDc0MEJGMEEzRTUzM0YwOTAwQUY1RTQ5MzkwRTEKKzoxMDkxQzkwMDAxODZGMDkwMEFGNkU0OTM5MDAxODdGMEU0OTAwMTdDMUYKKzoxMDkxRDkwMEYwQTNGMEEzRjBBM0YwQTNGMEEzNzQxMEYwQTM3NDAxMUIKKzoxMDkxRTkwMEYwQTM3NDg4RjA3RTAxN0Y3QzEyMTlDMTdFMDE3Rjg0MEYKKzowNzkxRjkwMDdEMTQxMjkxNkE3RjAwNTIKKzowMTkyMDAwMDIyNEIKKzoxMDkyMDEwMDdFN0I3RjQwNzU0RTdCNzU0RjQwOTA3RkQzRTBGRjg1MUQKKzoxMDkyMTEwMDRFNTE4NTRGNTJFNTUyMjQwMUY1NTZFNDM1NTFGNTU1MkQKKzoxMDkyMjEwMEU0RjU1MDg1NTI4Mjg1NTE4M0UwRkUxNEI0MEMwMDUwNjAKKzoxMDkyMzEwMDVCOTA5MjM5RjgyODI4NzMwMjkyNUQwMjkyNUQwMjkyNDYKKzoxMDkyNDEwMDY3MDI5MjcxMDI5MjcxMDI5MjcxMDI5Mjg1MDI5MjVEOUQKKzoxMDkyNTEwMDAyOTI3QjAyOTI1RDAyOTI4RDAyOTI1REVGNjQwMjYwNDYKKzoxMDkyNjEwMDJCNzU1MEZGODAyNkVGNjQwRTYwMjE3NTUwRkY4MDFDMjYKKzoxMDkyNzEwMEVGNjQwMzYwMTc3NTUwRkY4MDEyRUY2NDAzNjAwRDc1OTIKKzoxMDkyODEwMDUwRkY4MDA4RUY2NDA2NjAwMzc1NTBGRkU1NTA2MDE1REMKKzoxMDkyOTEwMDkwMDE5ODc0MTFGMEEzRUVGMDdFMDE3Rjk4N0QwMjEyODcKKzoxMDkyQTEwMDkxNkFBRjUwMjJFNEY1NTA4NTUyODI4NTUxODNFMDE0RDIKKzoxMDkyQjEwMEI0MEYwMDQwMDMwMjkzQ0Y5MDkyQzBGODI4Mjg3MzAyQTQKKzoxMDkyQzEwMDkyRUQwMjkyRjkwMjkzMDUwMjkzNTMwMjkzNUUwMjkzODcKKzoxMDkyRDEwMDY5MDI5Mzc0MDI5MzdGMDI5MzhBMDI5Mzk1MDI5M0EwODkKKzoxMDkyRTEwMDAyOTNBNzAyOTNDRjAyOTNCMjAyOTNCREFGNTZBRTU1M0MKKzoxMDkyRjEwMDEyODQ0MThGNTAwMjkzRDJBRjU2QUU1NTEyODU2MThGQzEKKzoxMDkzMDEwMDUwMDI5M0QyODU1NTUzODU1NjU0RTU1NDI0MDFGRkU0MDgKKzoxMDkzMTEwMDM1NTNGRTEyODZCRUFGNTRBRTUzMTI4NzUxOEY1MEVGQjQKKzoxMDkzMjEwMDY0MDE2MDAzMDI5M0QyQUY1NEFFNTMxMjg3QTY4RjUwRUIKKzoxMDkzMzEwMEU1NTA3MDAzMDI5M0QyODU1NDgyODU1MzgzRTA3NUYwMjIKKzoxMDkzNDEwMDBEQTQyNEY0RjU4MkU0MzQwMkFGODJGRTEyODdBNjAyNTIKKzoxMDkzNTEwMDkzRDJBRjU2QUU1NTEyOENBNjhGNTA4MDc0QUY1NkFFRDUKKzoxMDkzNjEwMDU1MTI4RDI3OEY1MDgwNjlBRjU2QUU1NTEyOEQ3MDhGNzMKKzoxMDkzNzEwMDUwODA1RUFGNEZBRTRFMTI4RTk5OEY1MDgwNTNBRjU2RDQKKzoxMDkzODEwMEFFNTUxMjhCQkQ4RjUwODA0OEFGNTZBRTU1MTI4NjJEMEIKKzoxMDkzOTEwMDhGNTA4MDNEQUY1NkFFNTUxMjhDNjI4RjUwODAzMjEyODUKKzoxMDkzQTEwMDkxQjk4RjUwODAyQkFGNTZBRTU1MTI4REI1OEY1MDgwMkQKKzoxMDkzQjEwMDIwQUY1NkFFNTUxMjhERDY4RjUwODAxNUFGNEZBRTRFQTEKKzoxMDkzQzEwMDdDMDI3REFGN0I0MDEyOTEzN0U0RjU1MDgwMDM3NTUwRUMKKzoxMDkzRDEwMEZGRTU1MDYwMUQ5MDAxOTg3NDExRjA4NTUyODI4NTUxMEUKKzoxMDkzRTEwMDgzRTA5MDAxOTlGMDdFMDE3Rjk4N0QwMjEyOTE2QUFGMkUKKzoxMDkzRjEwMDUwMjI4NTUyODI4NTUxODNFMEZGMTQyNEZBNTAwNDI0QkYKKzoxMDk0MDEwMEZFNzAxRjkwMDE5ODc0MTBGMEEzRUZGMDg1NTY4Mjg1Q0QKKzoxMDk0MTEwMDU1ODNFMDkwMDE5QUYwN0UwMTdGOTg3RDAzMTI5MTZBNTUKKzowNDk0MjEwMDhGNTBBRjUwNjkKKzowMTk0MjUwMDIyMjQKKzowODk0MjYwMDhGNTE4RTUwOEQ0RjhDNEVDQQorOjEwOTQyRTAwNzU1ODAxNzU1OTlDRTRGNTU3QUY1MzE1NTNFRjcwMDNGQQorOjEwOTQzRTAwMDI5NEM0QUY1MkU0RkNGREZFRjhGOUZBQUIwN0FGNTE0QgorOjEwOTQ0RTAwQUU1MEFENEZBQzRFMTJBMzIxQUYwMzhGNTZBRjUxQUVGRgorOjEwOTQ1RTAwNTBBRDRGQUM0RUMwMDRDMDA1QzAwNkMwMDdBRjUyRTRCRAorOjEwOTQ2RTAwRkNGREZFRjhGOUZBQUIwN0QwMDdEMDA2RDAwNUQwMDQwNAorOjEwOTQ3RTAwMTJBMzIxOEY1MThFNTA4RDRGOEM0RUU1NTYyNDMwRjUxMAorOjEwOTQ4RTAwNTZEMzk0Mzk0MDA2NzQwNzI1NTZGNTU2MDU1OUU1NTlCNQorOjEwOTQ5RTAwQUU1ODcwMDIwNTU4MTRGNTgyOEU4M0U0RjAwNTU5RTUzNgorOjEwOTRBRTAwNTlBRTU4NzAwMjA1NTgxNEY1ODI4RTgzRTU1NkYwMDVCNAorOjEwOTRCRTAwNTcwNTU3MDI5NDM3RTU1OTE1NTk3MDAyMTU1OEFGNTc4RAorOjEwOTRDRTAwMTU1N0VGNjAyM0U1NTkxNTU5QUU1ODcwMDIxNTU4RjUyQQorOjEwOTRERTAwODI4RTgzRTBGRjA1NTVFNTU1QUM1NDcwMDIwNTU0MTQ5OQorOjA4OTRFRTAwRjU4MjhDODNFRkYwODBENkJCCis6MDE5NEY2MDAyMjUzCis6MTA5NEY3MDBFNDkwMDFDOUYwN0UwMTdGQ0E5MDAxQkVFRUYwQTNFRkIwCis6MEE5NTA3MDBGMDkwMDFDMkVFRjBBM0VGRjAyMjk1Cis6MTA5NTExMDBBQTA3QTkwNTkwMDFDOUUwQzM5NDQwNTA2MUFDMDI3NDQ3Cis6MTA5NTIxMDAwMTdFMDBBODA0MDg4MDA1QzMzM0NFMzNDRUQ4RjlGRkVECis6MTA5NTMxMDBFNEVGNTUzNDYwNDVFQTA0RkY5MDAxQzJFMEZDQTNFMDhBCis6MTA5NTQxMDBGREY1ODI4QzgzRUZGMEEzRTlGMDhEODI4QzgzQTNBM0Q4Cis6MTA5NTUxMDBFQkYwOTAwMUMyRTQ3NUYwMDMxMkEyODFGQ0QzRTVGMEI3Cis6MTA5NTYxMDA5NDg3RUM5NDAyNDAwQTkwMDFDMjc0MDFGMEEzNzRDQTdBCis6MTA5NTcxMDBGMEMyQUY5MDAxQzlFMDA0RjBEMkFGN0YwMTIyN0YwMEI5Cis6MDE5NTgxMDAyMkM3Cis6MTA5NTgyMDA5MDAxQzlFMEQzOTQwMDQwNTU5MDAxQkVFMEZDQTNFMEY1Cis6MTA5NTkyMDBBQTA0Rjk3QjAxQzAwM0MwMDJDMDAxQUEwNkE5MDdBODU4Cis6MTA5NUEyMDAwMUFDMDJBRDAzRDAwMUQwMDJEMDAzN0UwMDdGMDMxMkQyCis6MTA5NUIyMDBBMjEyOTAwMUJFRTQ3NUYwMDMxMkEyODFGQ0QzRTVGMDgxCis6MTA5NUMyMDA5NDg3RUM5NDAyNDAwQTkwMDFCRTc0MDFGMEEzNzRDQTFECis6MTA5NUQyMDBGMEMyQUY5MDAxQzlFMDE0RjBEMkFGN0YwMTIyN0YwMDQ4Cis6MDE5NUUyMDAyMjY2Cis6MTA5NUUzMDA5MDdGQzJFMDIwRTE3MzdFN0I3RjgwNzU1MzdCNzU1NDRGCis6MTA5NUYzMDA4MEU1NTQyNDAxRkZFNDM1NTNBOTA3N0IwMThCNTVGNTFFCis6MTA5NjAzMDA1Njg5NTdGRTEyOTU4MkVGNjA1MEFCNTVBQTU2QTk1NzVCCis6MTA5NjEzMDAxMkEyM0IxNEZGOTAwMDAxMTJBMjU0QjQwMjE2QzJBRjZGCis6MTA5NjIzMDBFRjc1RjAwOEE0MjQwMUY1ODJFNDM0MjBGNTgzRTA0NEM3Cis6MTA5NjMzMDAwNEYwRDJBRjc0MDE3RTAwQTgwNzA4ODAwNUMzMzNDRUJGCis6MTA5NjQzMDAzM0NFRDhGOUZGRTRFRjU1MzQ2MDBGODU1NDgyODU1MzQ4Cis6MEE5NjUzMDA4Mzc0MERGMDkwN0ZDMzc0MDRGMERGCis6MDE5NjVEMDAyMkVBCis6MTA5NjVFMDAxMjk1RTNFNEY1NEU3NDNBMjU0RUY4RTY1NEYwRjU0RkM0Cis6MTA5NjZFMDA3NEM1MjU0RUY1ODJFNDM0MDFGNTgzRTA2NTRGRkZDNEUxCis6MTA5NjdFMDA1NDBGRjU1MDYwMjI3NEM1MjU0RUY1ODJFNDM0MDFGNTgxCis6MTA5NjhFMDA4M0U1NEZGMEFGNEU3RDAxRTU0RjQ1NTBGQjEyOTUxMTJFCis6MTA5NjlFMDBFRjcwMDUxMjk1RTM4MEVDMDU0RUU1NEVDMzk0MDQ0MDQxCis6MTA5NkFFMDBCNTEyOTVFM0U1M0U2MDQ4RTRGNTRFQUY0RTc0MDFBODYxCis6MTA5NkJFMDAwNzA4ODAwMkMzMzNEOEZDRjU0RjU1M0U2MDI5RTU0RUFFCis6MTA5NkNFMDA3NUYwMDhBNDI0MDVGNTgyRTQzNDIwRjU4M0UwMzBFNjM1Cis6MTA5NkRFMDAxNkFGNEU3RDA0N0I4MDEyOTUxMUVGNzAwNTEyOTVFMzQ3Cis6MTA5NkVFMDA4MEVGRTU0RkY0NTIzRTA1NEVFNTRFQzM5NDA0NDBCQjY5Cis6MTA5NkZFMDA5MDAzMDBFMDYwMDMwMjk3REY3NDE5RjBFNTMzQzM5NDIyCis6MTA5NzBFMDAwMTQwMEQ5MDIwNzhFMDU0MEY3NTUxMDBGNTUyODAwOUZDCis6MTA5NzFFMDA3RjAyMTIxMTI3OEU1MThGNTJDM0U1NTE2NDgwOTQ4MEJGCis6MTA5NzJFMDA0MERBOTAwMUJDRTA2NTUyRjA2MDM3RTRGNTRFQUY0RTgyCis6MTA5NzNFMDA3NDAxQTgwNzA4ODAwMkMzMzNEOEZDRjU0RjkwMDFCQzEyCis6MTA5NzRFMDBFMDU1NEY2MDE0QUY0RTdEMDhFNTRGNTU1MkZCMTI5NTE0Cis6MTA5NzVFMDAxMUVGNzAwNTEyOTVFMzgwRUMwNTRFRTU0RUMzOTQwNEFGCis6MTA5NzZFMDA0MENDOTAwMUJDRTU1MkYwRTRGNTRFQzJBRjc0MzYyNTA0Cis6MTA5NzdFMDA0RUY4RTZGNTRGRTRGNkQyQUY1MzRGMUVFNTRGNjAxMUFCCis6MTA5NzhFMDBBRjRFN0QwMkFCNEYxMjk1MTFFRjcwMDUxMjk1RTM4MDJGCis6MTA5NzlFMDBFRjc0MkQyNTRFRjhFNkY1NEY3NEZDMjU0RUY1ODJFNDU4Cis6MTA5N0FFMDAzNDAyRjU4M0UwNjU0RjYwMTFBRjRFN0QwNEFCNEYxMjZFCis6MTA5N0JFMDA5NTExRUY3MDA1MTI5NUUzODBFRjc0RkMyNTRFRjU4MjNFCis6MTA5N0NFMDBFNDM0MDJGNTgzRTU0RkYwMDU0RUU1NEVDMzk0MDQ0MEI0Cis6MDQ5N0RFMDA5QTEyOTVFMzYzCis6MDE5N0UyMDAyMjY0Cis6MEM5N0UzMDA3ODdGRTRGNkQ4RkQ3NTgxNjcwMjk4MkFCMworOjEwOTdFRjAwMDIwNUFERTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjJERQorOjEwOTdGRjAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzM3QgorOjEwOTgwRjAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REY0OQorOjEwOTgxRjAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwOTg2RkU0N0VEMgorOjEwOTgyRjAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTMzRQorOjEwOTgzRjAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTMwNQorOjEwOTg0RjAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0EzMAorOjEwOTg1RjAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkVFOAorOjEwOTg2RjAwNjAyNDAyOEEwMTAyMDQwODEwMjA0MDgwODE4Mjg0ODhDQgorOjEwOTg3RjAwOTBBMEMwQzFDMkM0QzhEMEUwRTFFMkU0RThGMEYxRjJDOAorOjA4OTg4RjAwRjRGOEY5RkFGQ0ZERkVGRkZDCis6MDE5ODk3MDAwMEQwCis6MDg5ODk4MDA4QjU5OEE1QTg5NUI4RDVDMzMKKzoxMDk4QTAwMEU0RjU1REY1NUVBRjVDMTU1Q0VGNjAzNkFCNTkwNTVCQ0EKKzoxMDk4QjAwMEU1NUJBQTVBNzAwMjA1NUExNEY5MTJBMjNCRkZFNTVENTYKKzoxMDk4QzAwMEU1NUU2RjI1RTBGRkU0MzNGRTc0OTUyRkY1ODJFRTM0RkMKKzoxMDk4RDAwMDlFRjU4M0U1NURGRkU0OTNGNTVENzQwMTkzNkZGNTVFOUUKKzowNjk4RTAwMDgwQzNBRTVEQUY1RTI3Cis6MDE5OEU2MDAyMjVGCis6MEI5OEU3MDBDMEUwQzA4M0MwODJDMEQwNzVEMDE4NjQKKzoxMDk4RjIwMDkwMjA2MEUwNTQwRkZFMzBFMDA1OTAyMDAyRTBGRkVFODEKKzoxMDk5MDIwMDMwRTEwNTkwMjAwQUUwRkZFRTMwRTIwNTkwMjAxMkUwRkYKKzoxMDk5MTIwMEZGRUUzMEUzMDU5MDIwMUFFMEZGOTAwMUM0RTBCNTFFOEYKKzowQTk5MjIwMDA0RTRGMDgwMDU5MDAxQzRFRUYwQUIKKzowOTk5MkMwMEQwRDBEMDgyRDA4M0QwRTAzMjBCCis6MDI5OTM1MDBBOTAzODQKKzoxMDk5MzcwMEVGNzVGMDA4QTQyNDAwRjU4MkU0MzQyMEFCODJGQUU1NDEKKzoxMDk5NDcwMDVDNDU1REY1NUVFOTYwMTQ4QTgzRTU4MjI0MDRGNTgyNEYKKzoxMDk5NTcwMEU0MzU4M0Y1ODNFMDRERjBFNEZFODAxM0VCMjQwNEY1NTIKKzoxMDk5NjcwMDgyRTQzQUY1ODNFMEZGRURGNEZDRUY1Q0YwQUU1RUVCRUEKKzoxMDk5NzcwMDI0MDZGNTgyRTQzQUY1ODNFMDU1NUVGQ0I1MDYwM0FGQUQKKzoxMDk5ODcwMDA1MjJFNTVDNUNGRUU1NUQ1Q0ZERTk2MDE2RUU3MDA0QjIKKzoxMDk5OTcwMDdGMDE4MDAyN0YwMEFFMDdFRDcwMDQ3RjAxODAwMjdGQTgKKzoxMDk5QTcwMDAwQUQwN0VFNjAwM0FGNUMyMkVENjAwM0FGNUQyMjdGODEKKzowMTk5QjcwMDAwQUYKKzowMTk5QjgwMDIyOEMKKzoxMDk5QjkwMDc1NTUwMjc1NTZCMDkwMDMzNTc0MEZGMDg1NTY4Mjg1M0EKKzoxMDk5QzkwMDU1ODNBM0UwRkY5MDAzMzdGMDg1NTY4Mjg1NTU4M0UwRTAKKzoxMDk5RDkwMDkwMDMzNkYwOTAwMzM4NzRGRkYwNzU1NzAzNzU1ODM5QzIKKzoxMDk5RTkwMEVGMTRCNDBCMDA0MDAzMDI5RTVEOTA5OUZBRjgyODI4MDEKKzoxMDk5RjkwMDczMDI5QTFCMDI5QUJBMDI5QkJGMDI5QkRFMDI5QkRFOEMKKzoxMDlBMDkwMDAyOUM5NDAyOUNDRjAyOUNGNDAyOURCMjAyOURFMjAyNDgKKzoxMDlBMTkwMDlFMEVFNEY1NEVFNTRFNzVGMDA4QTQyNDAwRjU4MkU0QTcKKzoxMDlBMjkwMDM0MjBBRjgyRjU1MzhGNTRFNEZGRTRGRUVGNjAxMDc0RTUKKzoxMDlBMzkwMDhBMkVGNTgyRTQzNDAyRjU4M0UwRjRGNTRGODAwRDc0NDMKKzoxMDlBNDkwMDhBMkVGNTgyRTQzNDAyRjU4M0UwRjU0RkU1NTQyNDA3QzQKKzoxMDlBNTkwMEY1ODJFNDM1NTNGNTgzRTU0RkYwRTBGNTUwNjU0RjYwNDUKKzoxMDlBNjkwMDM4RTQ5MDAzMzhGMEU1NEUwNEZEMDU1OEU1NThBQTU3NDcKKzoxMDlBNzkwMDcwMDIwNTU3MTRGNTgyOEE4M0VERjAwNTU4RTU1OEFDNTQKKzoxMDlBODkwMDU3NzAwMjA1NTcxNEY1ODI4QzgzRTU0RkYwODU1ODgyOEIKKzoxMDlBOTkwMDg1NTc4M0U1NTBGMDAyOUU2MzBFQkUyNDhGMEZFRjY0NTUKKzoxMDlBQTkwMDAyNzA4NzA1NEVFNTRFNjQwNDYwMDMwMjlBMUUwMjlFMDkKKzoxMDlBQjkwMDYzRTRGNTRFQUY0RUU0RkQxMjgzNUEwNTRFRTU0RUQzRUQKKzoxMDlBQzkwMDk0MDM0MEYwOTAwMDA0NzQ5OEYwQTM3NEU3RjBFNEY1NkYKKzoxMDlBRDkwMDUwN0UyMDdGMDA3NTUzMjA3NTU0MDBGNTRFQUY0RTc0QUIKKzoxMDlBRTkwMDAxQTgwNzA4ODAwMkMzMzNEOEZDRjU0RjkwMDFDNEYwRTAKKzoxMDlBRjkwMDkwMDFDMEU0RjBBMzc0MEFGMDg1NTQ4Mjg1NTM4M0EzQ0UKKzoxMDlCMDkwMDc0MDJGMDkwMDFDNEUwQjU0RjM0OTAwMUMwRTA3MDAyRDYKKzoxMDlCMTkwMEEzRTA3MEVGOTAwMzM4RjBFNTRFMDRGRjA1NThFNTU4Q0YKKzoxMDlCMjkwMEFDNTc3MDAyMDU1NzE0RjU4MjhDODNFRkYwODU1ODgyODMKKzoxMDlCMzkwMDg1NTc4Mzc0RkZGMEU0OTAwMUM0RjA3NTUwRkY5MDAxREMKKzoxMDlCNDkwMEM0RTBGRjYwMzdFNDkwMDMzOEYwRTU0RTA0RkUwNTU4QTEKKzoxMDlCNTkwMEU1NThBQzU3NzAwMjA1NTcxNEY1ODI4QzgzRUVGMDA1NzEKKzoxMDlCNjkwMDU4RTU1OEFDNTc3MDAyMDU1NzE0RjU4MjhDODNFRkYwMEQKKzoxMDlCNzkwMDg1NTg4Mjg1NTc4M0U1NEZGMDc1NTBGRkU1NTA3MDE2N0IKKzoxMDlCODkwMDc0MDgyNTU0RjU1NEU0MzU1M0Y1NTMwNTRFRTU0RTY0RjAKKzoxMDlCOTkwMDA0NjAwMzAyOUFFNkU0RjU0RUFGNEU3RDAxMTI4MzVBNDIKKzoxMDlCQTkwMDA1NEVFNTRFRDM5NDAzNDBGMDkwMDAwNDc0MTNGMEEzREUKKzoxMDlCQjkwMDc0MTJGMDAyOUU2Mzg1NTY4Mjg1NTU4M0UwMTRGRjc0MDIKKzoxMDlCQzkwMDAxQTgwNzA4ODAwMkMzMzNEOEZDOTAwMkY3RjA5MDAxN0UKKzoxMDlCRDkwMEM0RjAwMjlFNjM5MDAxQzA3NDAzRjBBMzc0RThGMEU0M0EKKzoxMDlCRTkwMEY1NTA5MDAyRjdFMEZGOTAwMUM0RTBCNTA3MTk5MDAxMjQKKzoxMDlCRjkwMEMwRTA3MDAyQTNFMDcwRUE5MDAzMzhGMDg1NTg4Mjg1Q0UKKzoxMDlDMDkwMDU3ODM3NEZGRjBGNTUwRTU1MDYwMDMwMjlFNjM5MDAxOUQKKzoxMDlDMTkwMEMwRjBBMzc0OTZGMDkwMDFDMEUwNzAwMkEzRTA3MEY2NjIKKzoxMDlDMjkwMEU1MzNDMzk0MDE0MDBEOTAyMDc4RTA1NDBGNzU1MTAwM0QKKzoxMDlDMzkwMEY1NTI4MDA5N0YwMjEyMTEyNzhFNTE4RjUyQzNFNTUxQzcKKzoxMDlDNDkwMDY0ODA5NDgwNDBEQUU1NTI1NDBGRjU1MDkwMDJGN0UwQjEKKzoxMDlDNTkwMDU1NTA3MDA0N0YwMTgwMDI3RjAwOEY0Rjg1NTY4Mjg1QTEKKzoxMDlDNjkwMDU1ODNBM0UwQjQwNTBDRTU0RjcwMDQ3RjAxODAwMjdGQTIKKzoxMDlDNzkwMDAwOEY0RkU1NEY3MDAzMDI5RTYzRTQ5MDAzMzhGMDg1MkYKKzoxMDlDODkwMDU4ODI4NTU3ODNFNTUwRjAwMjlFNjNFNEZGRkQxMjgzRjUKKzoxMDlDOTkwMDVBN0UyMDdGMDA3NTUzMjA3NTU0MDA4NTU0ODI4NTUzNjAKKzoxMDlDQTkwMDgzQTNBM0EzRTA0NDgwRjA4NTU0ODI4NTUzODM3NDAxODAKKzoxMDlDQjkwMEYwQTNFNEYwODU1NDgyODU1MzgzQTNBM0EzRTA1NDdGRTIKKzoxMDlDQzkwMEYwRDIwNDAyOUU2M0MyMDQ3RTIwN0YwMDc1NTMyMDc1ODIKKzoxMDlDRDkwMDU0MDBFNTU0MjQwNUY1ODJFNDM1NTNGNTgzRTAzMEU2NzQKKzoxMDlDRTkwMEYxRTRGRjdEMDExMjgzNUEwMjlFNjNFNEY1NTBGNTRFQkIKKzoxMDlDRjkwMEFGNEVFNEZEMTI4MzVBRTU0RTc1RjAwOEE0MjQwMEY1MzEKKzoxMDlEMDkwMDgyRTQzNDIwQUY4MkY1NTM4RjU0RjU4M0U1ODIyNDA0MkQKKzoxMDlEMTkwMEY1ODJFNDM1ODNGNTgzRTA1NEZDRjBBRjRFN0QwMTdCOTkKKzoxMDlEMjkwMDAxNzU1QzgwNzU1RDQwMTI5OTM1OEY1MEU1NTA3MDExNTEKKzoxMDlEMzkwMEFGNEU3RDAyN0IwMTc1NUMxMDc1NUQyMDEyOTkzNThGRTAKKzoxMDlENDkwMDUwRTU1MDcwMTBBRjRFN0QwMUZCNzU1QzgwNzU1RDQwMkMKKzoxMDlENTkwMDEyOTkzNThGNTBFNTUwNzAxMEFGNEU3RDAyRkI3NTVDM0UKKzoxMDlENjkwMDEwNzU1RDIwMTI5OTM1OEY1MEFGNEU3RDAxMTI4MzVBQkYKKzoxMDlENzkwMEU1NTA2MDI2RTQ5MDAzMzhGMEU1NEUwNEZGMDU1OEU1MDgKKzoxMDlEODkwMDU4QUM1NzcwMDIwNTU3MTRGNTgyOEM4M0VGRjA4NTU4NEIKKzoxMDlEOTkwMDgyODU1NzgzRTU1MEYwMDI5RTYzMDU0RUU1NEVEMzk0QzQKKzoxMDlEQTkwMDAzNTAwMzAyOUNGOTAyOUU2M0U0OTAwMzU5RjBBM0YwNjcKKzoxMDlEQjkwMEEzRjBBM0YwQTNGMEEzNzQxMEYwQTM3NDlFRjBBMzc0MEUKKzoxMDlEQzkwMDg1RjA3RTAzN0Y1OTEyODFEOUVGNjQwODcwMDMwMjlFRTIKKzoxMDlERDkwMDYzRTQ5MDAzMzhGMDAyOUU2M0U0OTAwMzU5RjBBM0YwMjIKKzoxMDlERTkwMEEzRjBBM0YwQTNGMEEzNzQxMEYwQTNFNTU3RjBBM0U1NDMKKzoxMDlERjkwMDU4RjA3RTAzN0Y1OTEyMTlDMUVGNjQwODYwNUNFNDkwNDIKKzoxMDlFMDkwMDAzMzhGMDgwNTVFNTU2MjQwMkZGRTQzNTU1RkFBOTA3RDEKKzoxMDlFMTkwMDdCMDE3RDEwMTI5ODk4RUY0RTcwMzI5MDAzNTlGMEEzOTAKKzoxMDlFMjkwMEYwQTNGMEEzRjBBM0YwQTM3NDEwRjBFNTU2MjQwMjkwNzgKKzoxMDlFMzkwMDAzNjBGMEU0MzU1NTkwMDM1RkYwN0UwMzdGNTkxMjgxOEEKKzoxMDlFNDkwMEQ5RUY2NDA4NjAxNEU0OTAwMzM4RjA4MDBERTQ5MDAzQkUKKzoxMDlFNTkwMDM4RjA4MDA2OTAwMzM4NzQwMUYwOTAwMUMwRTRGMEEzNTMKKzoxMDlFNjkwMDc0MEFGMDkwMDFDMEUwNzAwMkEzRTA3MEY2N0UwMzdGRUYKKzowQjlFNzkwMDM1N0QyNDEyOTE2QUU0OTAwMkFGRjBFNgorOjAxOUU4NDAwMjJCQgorOjEwOUU4NTAwRkZGRUZDRjhGMEUwQzA4MDAwMDEwMzA3MEYxRjNGN0ZENQorOjEwOUU5NTAwMDAwMEMwQzFDMTgxMDE0MEMzMDEwM0MwMDI4MEMyNDFBRAorOjEwOUVBNTAwQzYwMTA2QzAwNzgwQzc0MTA1MDBDNUMxQzQ4MTA0NDA3RAorOjEwOUVCNTAwQ0MwMTBDQzAwRDgwQ0Q0MTBGMDBDRkMxQ0U4MTBFNDAyRAorOjEwOUVDNTAwMEEwMENBQzFDQjgxMEI0MEM5MDEwOUMwMDg4MEM4NDEzRAorOjEwOUVENTAwRDgwMTE4QzAxOTgwRDk0MTFCMDBEQkMxREE4MTFBNDBBRAorOjEwOUVFNTAwMUUwMERFQzFERjgxMUY0MEREMDExREMwMUM4MERDNDE3RAorOjEwOUVGNTAwMTQwMEQ0QzFENTgxMTU0MEQ3MDExN0MwMTY4MEQ2NDFBRAorOjEwOUYwNTAwRDIwMTEyQzAxMzgwRDM0MTExMDBEMUMxRDA4MTEwNDBCQworOjEwOUYxNTAwRjAwMTMwQzAzMTgwRjE0MTMzMDBGM0MxRjI4MTMyNDBBQworOjEwOUYyNTAwMzYwMEY2QzFGNzgxMzc0MEY1MDEzNUMwMzQ4MEY0NDE3QworOjEwOUYzNTAwM0MwMEZDQzFGRDgxM0Q0MEZGMDEzRkMwM0U4MEZFNDEyQworOjEwOUY0NTAwRkEwMTNBQzAzQjgwRkI0MTM5MDBGOUMxRjg4MTM4NDAzQworOjEwOUY1NTAwMjgwMEU4QzFFOTgxMjk0MEVCMDEyQkMwMkE4MEVBNDFBQworOjEwOUY2NTAwRUUwMTJFQzAyRjgwRUY0MTJEMDBFREMxRUM4MTJDNDA3QworOjEwOUY3NTAwRTQwMTI0QzAyNTgwRTU0MTI3MDBFN0MxRTY4MTI2NDBBQworOjEwOUY4NTAwMjIwMEUyQzFFMzgxMjM0MEUxMDEyMUMwMjA4MEUwNDFCQworOjEwOUY5NTAwQTAwMTYwQzA2MTgwQTE0MTYzMDBBM0MxQTI4MTYyNDBBQworOjEwOUZBNTAwNjYwMEE2QzFBNzgxNjc0MEE1MDE2NUMwNjQ4MEE0NDE3QworOjEwOUZCNTAwNkMwMEFDQzFBRDgxNkQ0MEFGMDE2RkMwNkU4MEFFNDEyQworOjEwOUZDNTAwQUEwMTZBQzA2QjgwQUI0MTY5MDBBOUMxQTg4MTY4NDAzQworOjEwOUZENTAwNzgwMEI4QzFCOTgxNzk0MEJCMDE3QkMwN0E4MEJBNDFBQworOjEwOUZFNTAwQkUwMTdFQzA3RjgwQkY0MTdEMDBCREMxQkM4MTdDNDA3QworOjEwOUZGNTAwQjQwMTc0QzA3NTgwQjU0MTc3MDBCN0MxQjY4MTc2NDBBQworOjEwQTAwNTAwNzIwMEIyQzFCMzgxNzM0MEIxMDE3MUMwNzA4MEIwNDFCQgorOjEwQTAxNTAwNTAwMDkwQzE5MTgxNTE0MDkzMDE1M0MwNTI4MDkyNDFBQgorOjEwQTAyNTAwOTYwMTU2QzA1NzgwOTc0MTU1MDA5NUMxOTQ4MTU0NDA3QgorOjEwQTAzNTAwOUMwMTVDQzA1RDgwOUQ0MTVGMDA5RkMxOUU4MTVFNDAyQgorOjEwQTA0NTAwNUEwMDlBQzE5QjgxNUI0MDk5MDE1OUMwNTg4MDk4NDEzQgorOjEwQTA1NTAwODgwMTQ4QzA0OTgwODk0MTRCMDA4QkMxOEE4MTRBNDBBQgorOjEwQTA2NTAwNEUwMDhFQzE4RjgxNEY0MDhEMDE0REMwNEM4MDhDNDE3QgorOjEwQTA3NTAwNDQwMDg0QzE4NTgxNDU0MDg3MDE0N0MwNDY4MDg2NDFBQgorOjEwQTA4NTAwODIwMTQyQzA0MzgwODM0MTQxMDA4MUMxODA4MTQwNDBCQgorOjEwQTA5NTAwRTRGRjc0RjgyRkY1ODJFNDM0MDJGNTgzRTA3MDAzMDJERgorOjEwQTBBNTAwQTEzODc0M0EyRkY4RTYyMEU1MDMwMkExMzhFRjc1RjBFMAorOjEwQTBCNTAwMDhBNDI0MDBGNTgyRTQzNDIwQUQ4MkZDRjU4M0U1ODIxMgorOjEwQTBDNTAwMjQwNUY1ODJFNDM1ODNGNTgzRTA1NDYwNjQ2MDcwNjNBQworOjEwQTBENTAwRUYyNUUwMjRFRkY1ODJFNDM0MDJGNTgzRTQ3NUYwMDEyMQorOjEwQTBFNTAwMTJBMjk3ODVGMDgyRjU4M0UwOEQ4MjhDODNGMDc0Rjg1NworOjEwQTBGNTAwMkZGNTgyRTQzNDAyRjU4M0UwMTRGMDcwMzZFRjI1RTBBNQorOjEwQTEwNTAwMjRDN0Y1ODJFNDM0N0ZGNTgzRTRGMEVGMjVFMEZFQzM1MAorOjEwQTExNTAwNzQwQzlFNzVGMDQwQTQyNDQwRjU4MkU1RjAzNDdCQURDNworOjEwQTEyNTAwODJGQ0VGMjVFMDI0RUZGNTgyRTQzNDAyRjU4M0VDRjBDMAorOjBDQTEzNTAwQTNFREYwMEZFRjY0MDQ2MDAzMDJBMDk3OUMKKzowMUExNDEwMDIyRkIKKzoxMEExNDIwMEU3MDlGNjA4REZGQTgwNDZFNzA5RjIwOERGRkE4MDNFRkYKKzoxMEExNTIwMDg4ODI4QzgzRTcwOUYwQTNERkZBODAzMkUzMDlGNjA4RUMKKzoxMEExNjIwMERGRkE4MDc4RTMwOUYyMDhERkZBODA3MDg4ODI4QzgzNTQKKzoxMEExNzIwMEUzMDlGMEEzREZGQTgwNjQ4OTgyOEE4M0UwQTNGNjA4MDgKKzoxMEExODIwMERGRkE4MDU4ODk4MjhBODNFMEEzRjIwOERGRkE4MDRDRTIKKzoxMEExOTIwMDgwRDI4MEZBODBDNjgwRDQ4MDY5ODBGMjgwMzM4MDEwQjkKKzoxMEExQTIwMDgwQTY4MEVBODA5QTgwQTg4MERBODBFMjgwQ0E4MDMzMjIKKzoxMEExQjIwMDg5ODI4QTgzRUNGQUU0OTNBM0M4QzU4MkM4Q0NDNTgzOUEKKzoxMEExQzIwMENDRjBBM0M4QzU4MkM4Q0NDNTgzQ0NERkU5REVFNzgwNkEKKzoxMEExRDIwMDBEODk4MjhBODNFNDkzQTNGNjA4REZGOUVDRkFBOUYwRTkKKzoxMEExRTIwMEVERkIyMjg5ODI4QTgzRUNGQUUwQTNDOEM1ODJDOENDM0YKKzoxMEExRjIwMEM1ODNDQ0YwQTNDOEM1ODJDOENDQzU4M0NDREZFQURFNTgKKzoxMEEyMDIwMEU4ODBEQjg5ODI4QTgzRTQ5M0EzRjIwOERGRjk4MENDQjkKKzoxMEEyMTIwMDg4RjBFRDI0MDJCNDA0MDA1MEMyRjU4MkVCMjQwMkI0QUIKKzoxMEEyMjIwMDA0MDA1MEI4MjMyMzQ1ODJGNTgyRUY0RTYwQUVFRjYwMDIKKzowOUEyMzIwMDAxMEVFNTgyMjM5MEExOTI3MzU0Cis6MTBBMjNCMDBCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMjIxCis6MDlBMjRCMDBFMzIyODk4MjhBODNFNDkzMjI1NAorOjEwQTI1NDAwQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTBCRgorOjEwQTI2NDAwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjIwOQorOjBEQTI3NDAwRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjIyMworOjEwQTI4MTAwQzVGMEY4QTNFMDI4RjBDNUYwRjhFNTgyMTU4MjcwMDI2OAorOjA2QTI5MTAwMTU4M0UwMzhGMDIyMDUKKzoxMEEyOTcwMEEzRjhFMEM1RjAyNUYwRjBFNTgyMTU4MjcwMDIxNTgzN0EKKzowNkEyQTcwMEUwQzgzOEYwRTgyMkQ3Cis6MTBBMkFEMDBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMEVGCis6MTBBMkJEMDBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRUNDCis6MTBBMkNEMDAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyRTU4MzJBRjU4MzEyCis6MDhBMkREMDBFOTkzRjVGMEEzRTk5MzIyRDcKKzoxMEEyRTUwMDc1RjAwODc1ODIwMEVGMkZGRkVFMzNGRUNEMzNDRENDMzAKKzoxMEEyRjUwMDMzQ0NDNTgyMzNDNTgyOUJFRDlBRUM5OUU1ODI5ODQwQjMKKzoxMEEzMDUwMDBDRjU4MkVFOUJGRUVEOUFGREVDOTlGQzBGRDVGMEQ2OEYKKzoxMEEzMTUwMEU0Q0VGQkU0Q0RGQUU0Q0NGOUE4ODIyMkI4MDBDMUI5QjkKKzoxMEEzMjUwMDAwNTlCQTAwMkRFQzhCRjA4NENGQ0VDREZDRTVGMENCRjcKKzoxMEEzMzUwMEY5NzgxOEVGMkZGRkVFMzNGRUVEMzNGREVDMzNGQ0VCMzAKKzoxMEEzNDUwMDMzRkIxMEQ3MDM5OTQwMDRFQjk5RkIwRkQ4RTVFNEY5RUIKKzoxMEEzNTUwMEZBMjI3ODE4RUYyRkZGRUUzM0ZFRUQzM0ZERUMzM0ZDRDgKKzoxMEEzNjUwMEM5MzNDOTEwRDcwNTlCRTk5QTQwMDdFQzlCRkNFOTlBQ0MKKzoxMEEzNzUwMEY5MEZEOEUwRTRDOUZBRTRDQ0ZCMjI3NUYwMTBFRjJGMTEKKzoxMEEzODUwMEZGRUUzM0ZFRUQzM0ZEQ0MzM0NDQzgzM0M4MTBENzA3MTEKKzoxMEEzOTUwMDlCRUM5QUU4OTk0MDBBRUQ5QkZERUM5QUZDRTg5OUY4NEMKKzowRUEzQTUwMDBGRDVGMERBRTRDREZCRTRDQ0ZBRTRDOEY5MjJERgorOjEwQTNCMzAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjAwMAorOjAxQTNDMzAwMjI3NworOjEwQTNDNDAwRTg2MDBGRUNDMzEzRkNFRDEzRkRFRTEzRkVFRjEzRkY3NworOjAzQTNENDAwRDhGMTIyOUIKKzoxMEEzRDcwMDA4MDgwOEU2Q0YyRkY2MThFNkNFM0VGNjE4RTZDRDNEN0MKKzowN0EzRTcwMEY2MThFNkNDM0NGNjIyNUIKKzowQ0EzRUUwMEVDRjBBM0VERjBBM0VFRjBBM0VGRjAyMkUyCis6MTBBM0ZBMDBBODgyODU4M0YwRDA4M0QwODIxMkE0MTExMkE0MTExMkVDCis6MTBBNDBBMDBBNDExMTJBNDExRTQ3M0U0OTNBM0M1ODNDNUYwQzU4MzEwCis6MTBBNDFBMDBDOEM1ODJDOEYwQTNDNTgzQzVGMEM1ODNDOEM1ODJDOEFDCis6MDFBNDJBMDAyMjBGCis6MDAwMDAwMDFGRgorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICAgICB3aGl0ZWhlYXQuaCAgLS0gIENvbm5lY3RUZWNoIFdoaXRlSEVBVCBGaXJtd2FyZS4KKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwMC0yMDAyICBDb25uZWN0VGVjaCBJbmMgKGh0dHA6Ly93d3cuY29ubmVjdHRlY2guY29tLykKKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICAgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICAgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogICAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICAgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICAgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisgKgorICogKDEwLzA5LzIwMDIpIFN0dWFydCBNYWNEb25hbGQKKyAqCUZpcm13YXJlIDQuMDYKKyAqCisgKiAoMDQvMDkvMjAwMCkgZ2toCisgKglVcGRhdGVkIHRoZSBmaXJtd2FyZSB3aXRoIHRoZSBsYXRlc3QgcHJvdmlkZWQgYnkgQ29ubmVjdFRlY2guCisgKgorICogKDAxLzE2LzIwMDApIGdraAorICoJRml4ZWQgbXkgaW50ZWwgaGV4IHByb2Nlc3NpbmcgdG9vbCwgc28gbm93IHRoZSBmaXJtd2FyZSBhY3R1YWxseQorICoJbWF0Y2hlcyB0aGUgb3JpZ2luYWwgZmlsZSAodGhpcyB3YXMgY2F1c2luZyBhIGZldyBwcm9ibGVtcy4uLikKKyAqCisgKiAoMDEvMTUvMjAwMCkgZ2toCisgKglBZGRlZCBkZWJ1ZyBsb2FkZXIgZmlybXdhcmUgaWYgREVCVUcgaXMgI2RlZmluZWQ6CisgKgkJUG9ydCAxIExFRCBmbGFzaGVzIHdoZW4gdGhlIHZlbmRfYXggcHJvZ3JhbSBpcyBydW5uaW5nCisgKgkJUG9ydCAyIExFRCBmbGFzaGVzIHdoZW4gYW55IFNFVFVQIGNvbW1hbmQgYXJyaXZlcworICoJCVBvcnQgMyBMRUQgZmxhc2hlcyB3aGVuIGFueSB2YWxpZCBWRU5ET1IgcmVxdWVzdCBvY2N1cnMKKyAqCQlQb3J0IDQgTEVEIGZsYXNoZXMgd2hlbiB0aGUgRVhURVJOQUwgUkFNIERPV05MT0FEIHJlcXVlc3Qgb2NjdXJzCisgKgorICogdmVyc2lvbiAxLjAgKDAxLzA5LzIwMDApIGdraAorICoJT3JpZ2luYWwgZmlybXdhcmUgZnJvbSBDb25uZWN0VGVjaCBtYXNzYWdlZCBhIGxpdHRsZSB0byBiZSBwcm9ncmFtCisgKglyZWFkYWJsZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgd2hpdGVoZWF0X0RBVEUgIjIwMDAwMTA2IgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvd2hpdGVoZWF0X2xvYWRlci5IRVggYi9maXJtd2FyZS93aGl0ZWhlYXRfbG9hZGVyLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjY2M2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvd2hpdGVoZWF0X2xvYWRlci5IRVgKQEAgLTAsMCArMSwzMTQgQEAKKzowMzAwMDAwMDAyMDk4RDY1Cis6MDMwMDMzMDAwMjA4RkJDNQorOjAzMDA0MzAwMDIwQjAwQUQKKzowMzAwNEIwMDAyMDVBQTAxCis6MTAwMTAwMDA5MDdGQTVFMDU0MTBGRkM0NTQwRjQ0NTBGNTBGMTNFNDQyCis6MTAwMTEwMDAzM0Y1MTE5MDdGRTlFMDI0NUVCNDA3MDA0MDAzMDIwMzQ5Cis6MTAwMTIwMDA3ODkwMDEyOEY4MjgyODczMDIwMUJDMDIwMUJDMDIwMTYyCis6MTAwMTMwMDA5MTAyMDEzRDAyMDE1MzAyMDE2RjAyMDE5QTkwN0YwMDdBCis6MTAwMTQwMDBFNTExRjA5MDdGQjU3NDAxRjA5MDdGQjRFMDQ0MDJGMEM3Cis6MTAwMTUwMDAwMjAzNzg5MDdGOTJFMEZGQzQ1NDBGOTA3RjAwRjA5MEVDCis6MTAwMTYwMDA3RkI1NzQwMUYwOTA3RkI0RTA0NDAyRjAwMjAzNzgxMjhFCis6MTAwMTcwMDAwQTg5NTAwN0U0OTA3RjAwRjA4MDA2OTA3RjAwNzQwRjlBCis6MTAwMTgwMDBGMDkwN0ZCNTc0MDFGMDkwN0ZCNEUwNDQwMkYwMDIwMzc4Cis6MTAwMTkwMDA3ODkwN0ZFQUUwRjUwRjAyMDM3ODkwN0YwMDc0MDdGMDEzCis6MTAwMUEwMDA5MDdGQjU3NDAxRjA5MDdGQjRFMDQ0MDJGMDdGRTg3RTY4Cis6MTAwMUIwMDAwMzEyMEQ5NEQyMDYxMjBDQ0MwMjAzNzg5MDdGRUFFMDcxCis6MTAwMUMwMDA3NTI4MDBGNTI5QTNFMEZFRTRFRTQyMjg5MDdGRUVFMERBCis6MTAwMUQwMDA3NTJBMDBGNTJCQTNFMEZFRTRFRTQyMkE5MDdGRThFMENBCis6MTAwMUUwMDA2NEMwNjAwMzAyMDJDOUU1MkI0NTJBNzAwMzAyMDM3ODRDCis6MTAwMUYwMDBDM0U1MkI5NDQwRTUyQTk0MDA1MDA4ODUyQTJDODUyQkQyCis6MTAwMjAwMDAyRDgwMDY3NTJDMDA3NTJENDA5MDdGRTlFMDY0QTM3MDY5Cis6MTAwMjEwMDAzNEY1MzBGNTMxQzNFNTMxOTUyREU1MzA5NTJDNTA1QzQyCis6MTAwMjIwMDBFNTI5MjUzMUY1ODJFNTMwMzUyOEY1ODNFMEZGNzQwMEI2Cis6MTAwMjMwMDAyNTMxRjU4MkU0MzQ3RkY1ODNFRkYwMDUzMUU1MzE3MDQ3Cis6MTAwMjQwMDAwMjA1MzA4MEQwRTRGNTMwRjUzMUMzRTUzMTk1MkRFNTc4Cis6MTAwMjUwMDAzMDk1MkM1MDE4NzQwMDI1MzFGNTgyRTQzNDdGRjU4M0Y1Cis6MTAwMjYwMDA3NENERjAwNTMxRTUzMTcwMDIwNTMwODBEREFGMjlBRTg3Cis6MTAwMjcwMDAyOEFEMkQ3QTdGNzkwMDdCMDAxMjBCRjQ5MDdGQjVFNUQ1Cis6MTAwMjgwMDAyREYwRTUyRDI1MjlGNTI5RTUyQzM1MjhGNTI4QzNFNUEwCis6MTAwMjkwMDAyQjk1MkRGNTJCRTUyQTk1MkNGNTJBOTA3RjkyRTBGRkUyCis6MTAwMkEwMDBDNDU0MEY3NTJFMDBGNTJGRDM5NDAwRTUyRTk0MDA1MDAyCis6MTAwMkIwMDAwQzkwN0ZCNEUwMjBFMTAzMDIwMUU3ODBGNDkwN0ZCNDZBCis6MTAwMkMwMDBFMDIwRTIwMzAyMDFFNzgwRjQ5MDdGRThFMDY0NDA2MDEwCis6MTAwMkQwMDAwMzAyMDM3OEU1MkI0NTJBNzAwMzAyMDM3OEU0OTA3RjNDCis6MTAwMkUwMDBDNUYwOTA3RjkyRTBGRkM0NTQwRjc1MkUwMEY1MkZEMzE4Cis6MTAwMkYwMDA5NDAwRTUyRTk0MDA1MDA5OTA3RkM0RTAzMEUxMDk4MDFECis6MTAwMzAwMDBGNzkwN0ZCNEUwMjBFM0Y5OTA3RkM1RTA3NTJDMDBGNTBECis6MTAwMzEwMDAyRDkwN0ZFOUUwNjRBMzcwMzRGNTMwRjUzMUMzRTUzMTA5Cis6MTAwMzIwMDA5NTJERTUzMDk1MkM1MDM0NzRDMDI1MzFGNTgyRTQzNDk4Cis6MDEwMzMwMDA3RTRFCis6MTAwMzMxMDBGNTgzRTBGRkU1MjkyNTMxRjU4MkU1MzAzNTI4RjU4M0EwCis6MTAwMzQxMDBFRkYwMDUzMUU1MzE3MDAyMDUzMDgwRDBBRjI5QUUyOERDCis6MTAwMzUxMDBBRDJEN0E3RTc5QzA3QkMwMTIwQzNGRTUyRDI1MjlGNUE0Cis6MTAwMzYxMDAyOUU1MkMzNTI4RjUyOEMzRTUyQjk1MkRGNTJCRTUyQTE0Cis6MDkwMzcxMDA5NTJDRjUyQTAyMDJENEMzMjJFNgorOjEwMDM3QTAwOTA3RkU5RTA3MDAzMDIwNDUyMTQ3MDAzMDIwNENFMjQ1MQorOjEwMDM4QTAwRkU3MDAzMDIwNTQyMjRGQjcwMDMwMjA0NEMxNDcwMDMzRQorOjEwMDM5QTAwMDIwNDQ2MTQ3MDAzMDIwNDNBMTQ3MDAzMDIwNDQwMjQ0RgorOjEwMDNBQTAwMDU2MDAzMDIwNTk2MTIwRTQ0NDAwMzAyMDVBMjkwN0ZERgorOjEwMDNCQTAwRUJFMDI0RkU2MDE2MTQ2MDQwMjQwMjcwNjk3NDExOTAwOAorOjEwMDNDQTAwN0ZENEYwNzQwMDkwN0ZENUYwMDIwNUEyOTA3RkVBRTAxNgorOjEwMDNEQTAwRkYxMjBCNTg4QjI1OEEyNjg5MjdFQTQ5NjAxMUFFMDIzQgorOjEwMDNFQTAwRUU5MDdGRDRGMEFGMDFFRjkwN0ZENUYwMDIwNUEyOTA5NgorOjEwMDNGQTAwN0ZCNEUwNDQwMUYwMDIwNUEyOTA3RkVBRTBGRjEyMDgxMAorOjEwMDQwQTAwQkE4QjI1OEEyNjg5MjdFQTQ5NjAxMUFFMDJFRTkwN0ZDNworOjEwMDQxQTAwRDRGMEFGMDFFRjkwN0ZENUYwMDIwNUEyOTA3RkI0RTA0RgorOjEwMDQyQTAwNDQwMUYwMDIwNUEyOTA3RkI0RTA0NDAxRjAwMjA1QTI2MworOjEwMDQzQTAwMTIwRTFGMDIwNUEyMTIwRTJEMDIwNUEyMTIwQUY3MDJCRgorOjEwMDQ0QTAwMDVBMjEyMEUxMTAyMDVBMjEyMEU0NjQwMDMwMjA1QTJDRgorOjEwMDQ1QTAwOTA3RkU4RTAyNDdGNjAyNDE0NjAzMTI0MDI3MDVCQTI1QworOjEwMDQ2QTAwMDBFNDMzRkYyNUUwRkZBMjAyRTQzMzRGOTA3RjAwRjA1RgorOjEwMDQ3QTAwRTRBM0YwOTA3RkI1NzQwMkYwMDIwNUEyRTQ5MDdGMDAzNQorOjEwMDQ4QTAwRjBBM0YwOTA3RkI1NzQwMkYwMDIwNUEyOTA3RkVDRTAzMQorOjEwMDQ5QTAwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjQxRQorOjEwMDRBQTAwRjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTMwNQorOjEwMDRCQTAwRjA5MDdGQjU3NDAyRjAwMjA1QTI5MDdGQjRFMDQ0MDE4NworOjEwMDRDQTAwRjAwMjA1QTIxMjBFNDg0MDAzMDIwNUEyOTA3RkU4RTA1RQorOjEwMDREQTAwMjRGRTYwMUQyNDAyNjAwMzAyMDVBMjkwN0ZFQUUwQjRCNAorOjEwMDRFQTAwMDEwNUMyMDAwMjA1QTI5MDdGQjRFMDQ0MDFGMDAyMDVCMgorOjEwMDRGQTAwQTI5MDdGRUFFMDcwMzg5MDdGRUNFMEY0NTQ4MEZGQzQ2OQorOjEwMDUwQTAwNTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0YyQQorOjEwMDUxQTAwRjU4M0U0RjA5MDdGRUNFMDU0ODBGRjEzMTMxMzU0MUYyQgorOjEwMDUyQTAwRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDY5OTBENQorOjEwMDUzQTAwN0ZCNEUwNDQwMUYwODA2MDEyMEU0QTUwNUI5MDdGRTg3RAorOjEwMDU0QTAwRTAyNEZFNjAxODI0MDI3MDRGOTA3RkVBRTBCNDAxMDRCMAorOjEwMDU1QTAwRDIwMDgwNDQ5MDdGQjRFMDQ0MDFGMDgwM0I5MDdGRUE2RgorOjEwMDU2QTAwRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA2OQorOjEwMDU3QTAwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDEwRgorOjEwMDU4QTAwRjA4MDE1OTA3RkI0RTA0NDAxRjA4MDBDMTIwMTAwNTAxNQorOjEwMDU5QTAwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjI3NworOjEwMDVBQTAwQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwQzA5MgorOjEwMDVCQTAwRDBDMDAwQzAwMUMwMDJDMDAzQzAwNkMwMDc5MDdGQTUxQQorOjEwMDVDQTAwRTAzMEUyMDY3NTBEMDYwMjA2NzY5MDdGQTVFMDIwRTE4RQorOjEwMDVEQTAwMENFNTBENjQwMjYwMDY3NTBEMDcwMjA2NzZBRjBERUY5NQorOjEwMDVFQTAwMjRGRTYwNDgxNDYwMkMyNEZFNjA3NzI0MDQ2MDAzMDIxMQorOjEwMDVGQTAwMDY3NkFCMDlBQTBBQTkwQkFGMEMwNTBDOEY4Mjc1ODM4NAorOjEwMDYwQTAwMDAxMjA4MjI5MDdGQTZGMEU1MEM2NTA4NzA1RTc1MEQ1MQorOjEwMDYxQTAwMDU4MDU5OTA3RkE2RTBBQjA5QUEwQUE5MEJBRTBDOEVGOQorOjEwMDYyQTAwODI3NTgzMDAxMjA4NEY3NTBEMDI4MDQwRTUwODI0RkU4QQorOjEwMDYzQTAwQjUwQzA3OTA3RkE1RTA0NDIwRjBFNTA4MTRCNTBDMEEzNAorOjEwMDY0QTAwOTA3RkE1RTA0NDQwRjBFNEY1MEQ5MDdGQTZFMEFCMDk2OQorOjEwMDY1QTAwQUEwQUE5MEJBRTBDOEU4Mjc1ODMwMDEyMDg0RjA1MENFQworOjEwMDY2QTAwODAwQTkwN0ZBNUUwNDQ0MEYwRTRGNTBENTM5MURGRDA3NQorOjEwMDY3QTAwMDdEMDA2RDAwM0QwMDJEMDAxRDAwMEQwRDBEMDg2RDA4NworOjBBMDY4QTAwODREMDg1RDA4MkQwODNEMEUwMzIwNgorOjEwMDY5NDAwOEMzMzhEMzQ5MDdGOTVFMDQ0QzBGMEU0RjUzNUY1MzYyNQorOjEwMDZBNDAwQzNFNTM2OTUzNEU1MzU5NTMzNTA2OUVGMjUzNkY1ODI0MworOjEwMDZCNDAwRTUzNTNFRjU4Mzc0RkZGMEY0NjAwMkMzMjJFRjI1MzY3RQorOjEwMDZDNDAwRjU4MkU1MzUzRUY1ODNFNEYwNjAwMkMzMjJFRjI1MzY3QQorOjEwMDZENDAwRjU4MkU1MzUzRUY1ODM3NEFBRjA2NEFBNjAwMkMzMjI2QworOjEwMDZFNDAwRUYyNTM2RjU4MkU1MzUzRUY1ODM3NDU1RjA2NDU1NjBBMworOjEwMDZGNDAwMDJDMzIyQUQzNkU1MzYyRkY1ODJFNTM1M0VGNTgzRURBRQorOjEwMDcwNDAwRjBGQ0FDMDVFRDZDNjAwMkMzMjIwNTM2RTUzNjcwMDJFMAorOjEwMDcxNDAwMDUzNTgwOENFNEY1MzVGNTM2QzNFNTM2OTUzNEU1MzU5NQorOjEwMDcyNDAwOTUzMzUwMjdFRjI1MzZGNTgyRTUzNTNFRjU4M0UwNjVCMAorOjEwMDczNDAwMzY2MDAyQzMyMkVGMjUzNkY1ODJFNTM1M0VGNTgzRTRDMworOjBEMDc0NDAwRjAwNTM2RTUzNjcwMDIwNTM1ODBDRUQzMjI3MworOjEwMDc1MTAwQzIwNEQyMDVDMjAzQzIwMEMyMDJDMjAxMTIwRTNERDJCRQorOjEwMDc2MTAwRTg0M0Q4MjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0Y5MQorOjEwMDc3MTAwQUFGMDUzOTFFRjkwN0Y5NUUwNDRDMEYwOTA3RjkzNzQ3RAorOjEwMDc4MTAwMzBGMDEyMEExOTkwN0ZBRkUwNDQwMUYwOTA3RkFFRTBBMworOjEwMDc5MTAwNDQwREYwRDJBRjEyMEUzNTIwMDE0Mjc1MjQwMDc1MjNBRAorOjEwMDdBMTAwMDA3NTIyMDA3NTIxMDA3RjQ4N0U5MjdEMDA3QzAwQUJBMAorOjEwMDdCMTAwMjRBQTIzQTkyMkE4MjFDMzEyMDhBOTUwREIyMDAxRDgwOQorOjEwMDdDMTAwN0EwMDc5MDA3ODAwRTUyNDI0MDFGNTI0RUEzNTIzRjUzRgorOjEwMDdEMTAwMjNFOTM1MjJGNTIyRTgzNTIxRjUyMTgwQ0EzMDAxMDVDQQorOjEwMDdFMTAwMTIwMzdBQzIwMTMwMDQxQTEyMEU0MDUwMTMxMjA5MDA4QQorOjEwMDdGMTAwMzAwMDA3OTA3RkQ2RTAzMEU3RjMxMjBENEExMjBFNDIyNworOjA4MDgwMTAwQzIwMzEyMDhGRjgwRDYyMjk5Cis6MTAwODA5MDBCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkVECis6MDkwODE5MDBFMzIyODk4MjhBODNFNDkzMjIyMAorOjEwMDgyMjAwQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTA4QgorOjEwMDgzMjAwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJENQorOjBEMDg0MjAwRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJFRgorOjEwMDg0RjAwRjhCQjAxMERFNTgyMjlGNTgyRTU4MzNBRjU4M0U4RjBERgorOjEwMDg1RjAwMjI1MDA2RTkyNTgyQzhGNjIyQkJGRTA1RTkyNTgyQzg4QgorOjAyMDg2RjAwRjIyMjczCis6MTAwODcxMDBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMEM1Cis6MTAwODgxMDBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRUEyCis6MTAwODkxMDAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyRTU4MzJBRjU4M0U4Cis6MDgwOEExMDBFOTkzRjVGMEEzRTk5MzIyQUQKKzoxMDA4QTkwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwQTUKKzowMTA4QjkwMDIyMUMKKzowMjA4QkEwMDhGMjg4NQorOjEwMDhCQzAwRTRGNTI5NzUyQUZGNzUyQjExNzUyQzMyQUIyQUFBMkI1RQorOjEwMDhDQzAwQTkyQzkwMDAwMTEyMDgyMkI0MDMxREFGMjkwNTI5RUZCMQorOjEwMDhEQzAwQjUyODAxMjIxMjA4MDk3RTAwMjlGRkVFM0FBOTA3NzVGNgorOjBFMDhFQzAwMkFGRkY1MkI4OTJDODBENDdCMDA3QTAwNzkwMDNFCis6MDEwOEZBMDAyMkRCCis6MDQwOEZCMDA1M0Q4RUYzMkFECis6MDEwOEZGMDAyMkQ2Cis6MDkwOTAwMDA5MDdGRDZFMDQ0ODBGMDgwNzQ4MQorOjEwMDk3RDAwNDM4NzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjI3RAorOjBDMDk4RDAwNzg3RkU0RjZEOEZENzU4MTM5MDIwOUQ0QUEKKzoxMDA5OTkwMDAyMDc1MUU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMUMKKzoxMDA5QTkwMDA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzNUYKKzoxMDA5QjkwMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGMkUKKzoxMDA5QzkwMEU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDBERUNFNDdFQzUKKzoxMDA5RDkwMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzMjMKKzoxMDA5RTkwMEEzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRUEKKzoxMDA5RjkwMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBMTUKKzoxMDBBMDkwMEYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFQ0MKKzoxMDBBMTkwMEU0OTA3RjlDRjA3RjBBRkUxMjBEOTQ5MDdGOTY3NDg5NzIKKzoxMDBBMjkwMEYwOTA3RjlDNzRDRkYwN0ZGNDdFMDExMjBEOTQ5MDdGM0IKKzoxMDBBMzkwMDk2RTA1NEZFRjA3RjBBN0UwMDEyMEQ5NDdGMDU3RTAwMzkKKzoxMDBBNDkwMDEyMEQ5NDkwN0Y5NkUwNDQwMkYwRTA1NDdGRjA3RjA1MDgKKzoxMDBBNTkwMDdFMDAxMjBEOTQ5MDdGOTZFMDQ0NDBGMDdGMDU3RTAwNjEKKzoxMDBBNjkwMDEyMEQ5NDkwN0Y5NkUwNTRCRkYwN0YzMjdFMDAxMjBERjQKKzoxMDBBNzkwMDk0OTA3Rjk2RTA0NDQwRjA3RjMyN0UwMDEyMEQ5NDIyREMKKzoxMDBBODkwMDc1MzIwMUU1MzI2MDFCN0YwMTEyMERENzdGMDA3RTBFQTIKKzoxMDBBOTkwMDdEMDA3QzAxMTIwNjk0RTQzM0Y1MzI3MDA1N0YwRjEyNTQKKzoxMDBBQTkwMDBERDdFNTMyNjAxQjdGMDIxMjBERDc3RjAwN0U4MDdENTYKKzoxMDBBQjkwMDAwN0M4MDEyMDY5NEU0MzNGNTMyNzAwNTdGMEYxMjBEMjUKKzoxMDBBQzkwMEQ3RTUzMjYwMUI3RjAzMTIwREQ3N0YwMDdFMjA3RDQwNjIKKzoxMDBBRDkwMDdDNUIxMjA2OTRFNDMzRjUzMjcwMDU3RjBGMTIwREQ3NTMKKzowRTBBRTkwMEU1MzI2MDA1RTRGRjEyMEREN0U1MzIyNEZGMjI0RQorOjA4MEFGNzAwOTA3RkVBRTBGNTEwRDMyMjI0Cis6MDEwQUZGMDAzMkM0Cis6MTAwQjAwMDAwMjBENjQwMDAyMERBQjAwMDIwRDJGMDAwMjBEN0MwMEVGCis6MTAwQjEwMDAwMjBEQzEwMDAyMEFGRjAwMDIwRTRDMDAwMjBFNEQwMDQxCis6MTAwQjIwMDAwMjBFNEUwMDAyMEU0RjAwMDIwRTUwMDAwMjBFNTEwMDQ3Cis6MTAwQjMwMDAwMjBFNTIwMDAyMEU1MzAwMDIwRTU0MDAwMjBFNTUwMDI3Cis6MTAwQjQwMDAwMjBFNTYwMDAyMEU1NzAwMDIwRTU4MDAwMjBFNTkwMDA3Cis6MDgwQjUwMDAwMjBFNUEwMDAyMEU1QjAwQzgKKzoxMDBCNTgwMEU0RkU3NTJBRkY3NTJCMTE3NTJDMTJBQjJBQUEyQkE5NTYKKzoxMDBCNjgwMDJDOTAwMDAxMTIwODIyNjQwMjcwMkRBRDA2MEVFREI1MUUKKzoxMDBCNzgwMDA3MDEyMjkwMDAwMjEyMDg3MTg1RjAyOEY1Mjk2MjI4RTEKKzoxMDBCODgwMEU1Mjg2MjI5RTUyOTYyMjgyOUZERTUyODNBQTkwNTc1OUQKKzowRTBCOTgwMDJBRkZGNTJCODkyQzgwQzM3QjAwN0EwMDc5MDBBMAorOjAxMEJBNjAwMjIyQworOjEwMEJBNzAwQUIwN0FBMDZBQzA1RTRGREU1MTE2MDExRUFGRkFFMDU0NworOjEwMEJCNzAwMERFRTI0MTBGNTgyRTQzNDBGRjU4M0VGRjBFQkFFMDU2QworOjEwMEJDNzAwMEQ3NDEwMkVGNTgyRTQzNDBGRjU4M0VCRjBBRjA1MERBRAorOjEwMEJENzAwNzQxMDJGRjU4MkU0MzQwRkY1ODNFQ0YwQUYwRjdBMEYyMgorOjBEMEJFNzAwN0IxMDEyMEQxMDdGMEE3RTAwMTIwRDk0MjI2QgorOjEwMEJGNDAwOEUzMjhGMzM4RDM0OEEzNThCMzZFNEZERjUzN0U1MTEyQgorOjEwMEMwNDAwNjAxMkU1MzJGRkFFMDUwREVFMjQxM0Y1ODJFNDM0MEZENQorOjEwMEMxNDAwRjU4M0VGRjBFNTMzQUUwNTBENzQxMzJFRjU4MkU0MzQ1RAorOjEwMEMyNDAwMEZGNTgzRTUzM0YwQUYwRjdBMEY3QjEzMTIwRDEwQUY3RQorOjBCMEMzNDAwMEZBRDM0QUIzNkFBMzUxMjBDRjEyMkQ0Cis6MTAwQzNGMDA4RTMyOEYzMzhEMzQ4QTM1OEIzNkU0RjUzN0U1MzdDM0YzCis6MTAwQzRGMDA5NTM0NTAyMDA1MzNFNTMzQUUzMjcwMDIwNTMyMTRGRjcwCis6MTAwQzVGMDBFNTM2MjUzN0Y1ODJFNDM1MzVGNTgzRTBGRDEyMEJBNzMwCis6MDUwQzZGMDAwNTM3ODBEOTIyQzkKKzoxMDBDNzQwMEE5MDdFNTBENzAyNTkwN0ZBNUUwNDQ4MEYwRTkyNUUwMDMKKzoxMDBDODQwMDQ0MDE5MDdGQTZGMDhEMDhBRjAzQTkwNzc1MDkwMThBNzYKKzowRDBDOTQwMDBBODkwQkU0RjUwQzc1MEQwM0QzMjJDMzIyNzEKKzoxMDBDQTEwMEE5MDdFNTBENzAyMzkwN0ZBNUUwNDQ4MEYwRTkyNUUwRDgKKzoxMDBDQjEwMDkwN0ZBNkYwOEQwOEFGMDNBOTA3NzUwOTAxOEEwQTg5RkIKKzowQjBDQzEwMDBCRTRGNTBDNzUwRDAxRDMyMkMzMjJEQgorOjEwMENDQzAwOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwMDYwNEUwNDQ5QQorOjEwMENEQzAwMDJGMDdGRDA3RTA3MTIwRDk0OTA3RkQ2RTA1NEY3RjA4RgorOjA1MENFQzAwRTA0NDA0RjAyMkM5Cis6MTAwQ0YxMDAxMjBDNzRFNTBEMjRGQTYwMTAxNDYwMDcyNDA3NzBGM0Q4Cis6MEYwRDAxMDA3RjA4MjJFNEY1MEQ3RjA3MjJFNEY1MEQ3RjA2MjIxRgorOjEwMEQxMDAwMTIwQ0ExRTUwRDI0RkE2MDEwMTQ2MDA3MjQwNzcwRjM4QgorOjBGMEQyMDAwN0YwODIyRTRGNTBEN0YwNzIyRTRGNTBEN0YwNjIyMDAKKzoxMDBEMkYwMEMwRTBDMDgzQzA4MjkwN0ZDNEU0RjA1MzkxRUY5MDdGMDYKKzowQjBEM0YwMEFCNzQwNEYwRDA4MkQwODNEMEUwMzIwRgorOjEwMEQ0QTAwOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMTQ3RTAwMTI3MworOjBBMEQ1QTAwMEQ5NDkwN0ZENkUwNTRGRUYwMjJDNQorOjEwMEQ2NDAwQzBFMEMwODNDMDgyRDIwMTUzOTFFRjkwN0ZBQjc0MDE4NQorOjA4MEQ3NDAwRjBEMDgyRDA4M0QwRTAzMjAwCis6MTAwRDdDMDBDMEUwQzA4M0MwODJEMjAzNTM5MUVGOTA3RkFCNzQwODY0Cis6MDgwRDhDMDBGMEQwODJEMDgzRDBFMDMyRTgKKzoxMDBEOTQwMDhFMzg4RjM5RTUzOTE1MzlBRTM4NzAwMjE1Mzg0RTYwMDIKKzowNzBEQTQwMDA1MTIwRTAwODBFRTIyOTMKKzoxMDBEQUIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDJGMEQwNTAKKzowNjBEQkIwMDgyRDA4M0QwRTAzMjdCCis6MTAwREMxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDEwRjBEMDJDCis6MDYwREQxMDA4MkQwODNEMEUwMzI2NQorOjEwMERENzAwQUUwNzdGMjE3RDAxNzQwMDJFRjU4MkU0MzQwRkFCODJDQworOjA1MERFNzAwRkExMjBEMTAyMkJDCis6MTAwREVDMDA1MDBGMDBDMEY5QTRCMDk5OTI4MkY4ODA5ODg4ODNDNkZECis6MDMwREZDMDBBMTg2OEUzRgorOjAxMERGRjAwMDBGMworOjEwMEUwMDAwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkwNQorOjAxMEUxMDAwMjJCRgorOjBFMEUxMTAwOTA3RjAwRTUxMEYwOTA3RkI1NzQwMUYwRDMyMkMxCis6MEUwRTFGMDA5MDdGMDBFNTBFRjA5MDdGQjU3NDAxRjBEMzIyQjUKKzowODBFMkQwMDkwN0ZFQUUwRjUwRUQzMjJFQworOjA4MEUzNTAwRTRGNTBERDJFOUQyQUYyMjcxCis6MDMwRTNEMDBEMjAwMjJCRQorOjAyMEU0MDAwRDMyMkJCCis6MDIwRTQyMDBEMzIyQjkKKzowMjBFNDQwMEQzMjJCNworOjAyMEU0NjAwRDMyMkI1Cis6MDIwRTQ4MDBEMzIyQjMKKzowMjBFNEEwMEQzMjJCMQorOjAxMEU0QzAwMzI3MworOjAxMEU0RDAwMzI3MgorOjAxMEU0RTAwMzI3MQorOjAxMEU0RjAwMzI3MAorOjAxMEU1MDAwMzI2RgorOjAxMEU1MTAwMzI2RQorOjAxMEU1MjAwMzI2RAorOjAxMEU1MzAwMzI2QworOjAxMEU1NDAwMzI2QgorOjAxMEU1NTAwMzI2QQorOjAxMEU1NjAwMzI2OQorOjAxMEU1NzAwMzI2OAorOjAxMEU1ODAwMzI2NworOjAxMEU1OTAwMzI2NgorOjAxMEU1QTAwMzI2NQorOjAxMEU1QjAwMzI2NAorOjEwMTEwMDAwMTIwMTAwMDEwMDAwMDA0MDQ3MDUxMDI3MDEwMDAxMDIwNAorOjEwMTExMDAwMDAwMTA5MDIyMDAwMDEwMTAzQTAwMDA5MDQwMDAwMDJFRgorOjEwMTEyMDAwRkYwMDAwMDQwNzA1ODIwMjQwMDAwMDA3MDUwMjAyNDA5QworOjEwMTEzMDAwMDAwMDA0MDMwOTA0MjYwMzQxMDA2RTAwNjMwMDY4MDBGOAorOjEwMTE0MDAwNkYwMDcyMDAyMDAwNDMwMDY4MDA2OTAwNzAwMDczMDBBNworOjEwMTE1MDAwMkMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMjgwMzQ2MDA4QQorOjEwMTE2MDAwNjkwMDcyMDA2RDAwNzcwMDYxMDA3MjAwNjUwMDIwMDA2OAorOjEwMTE3MDAwNDYwMDcyMDA2MTAwNkQwMDY1MDA1NzAwNkYwMDcyMDA0QworOjEwMTE4MDAwNkIwMDczMDAyQTAzNDMwMDZGMDA2RTAwNjYwMDY5MDA2NQorOjEwMTE5MDAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwNkYwMDZFMDBFNgorOjEwMTFBMDAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIyMDM4MworOjEwMTFCMDAwNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNjEwMDYzMDAwMworOjEwMTFDMDAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMworOjAyMTFEMDAwMDAwMDFECis6MDAwMDAwMDFGRgorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICAgICB3aGl0ZWhlYXQuaCAgLS0gIENvbm5lY3RUZWNoIFdoaXRlSEVBVCBGaXJtd2FyZS4KKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwMC0yMDAyICBDb25uZWN0VGVjaCBJbmMgKGh0dHA6Ly93d3cuY29ubmVjdHRlY2guY29tLykKKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICAgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICAgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogICAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICAgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICAgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisgKgorICogKDEwLzA5LzIwMDIpIFN0dWFydCBNYWNEb25hbGQKKyAqCUZpcm13YXJlIDQuMDYKKyAqCisgKiAoMDQvMDkvMjAwMCkgZ2toCisgKglVcGRhdGVkIHRoZSBmaXJtd2FyZSB3aXRoIHRoZSBsYXRlc3QgcHJvdmlkZWQgYnkgQ29ubmVjdFRlY2guCisgKgorICogKDAxLzE2LzIwMDApIGdraAorICoJRml4ZWQgbXkgaW50ZWwgaGV4IHByb2Nlc3NpbmcgdG9vbCwgc28gbm93IHRoZSBmaXJtd2FyZSBhY3R1YWxseQorICoJbWF0Y2hlcyB0aGUgb3JpZ2luYWwgZmlsZSAodGhpcyB3YXMgY2F1c2luZyBhIGZldyBwcm9ibGVtcy4uLikKKyAqCisgKiAoMDEvMTUvMjAwMCkgZ2toCisgKglBZGRlZCBkZWJ1ZyBsb2FkZXIgZmlybXdhcmUgaWYgREVCVUcgaXMgI2RlZmluZWQ6CisgKgkJUG9ydCAxIExFRCBmbGFzaGVzIHdoZW4gdGhlIHZlbmRfYXggcHJvZ3JhbSBpcyBydW5uaW5nCisgKgkJUG9ydCAyIExFRCBmbGFzaGVzIHdoZW4gYW55IFNFVFVQIGNvbW1hbmQgYXJyaXZlcworICoJCVBvcnQgMyBMRUQgZmxhc2hlcyB3aGVuIGFueSB2YWxpZCBWRU5ET1IgcmVxdWVzdCBvY2N1cnMKKyAqCQlQb3J0IDQgTEVEIGZsYXNoZXMgd2hlbiB0aGUgRVhURVJOQUwgUkFNIERPV05MT0FEIHJlcXVlc3Qgb2NjdXJzCisgKgorICogdmVyc2lvbiAxLjAgKDAxLzA5LzIwMDApIGdraAorICoJT3JpZ2luYWwgZmlybXdhcmUgZnJvbSBDb25uZWN0VGVjaCBtYXNzYWdlZCBhIGxpdHRsZSB0byBiZSBwcm9ncmFtCisgKglyZWFkYWJsZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgd2hpdGVoZWF0X0RBVEUgIjIwMDAwMTA2IgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvd2hpdGVoZWF0X2xvYWRlcl9kZWJ1Zy5IRVggYi9maXJtd2FyZS93aGl0ZWhlYXRfbG9hZGVyX2RlYnVnLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjMzZDU4Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvd2hpdGVoZWF0X2xvYWRlcl9kZWJ1Zy5IRVgKQEAgLTAsMCArMSw0MDMgQEAKKzoxMDAwMDAwMDAwMDAwMDAwMDMwMjA5OEQwMDAwMDAzMzAzMDIwRTcwOUYKKzoxMDAwMTAwMDAwMDAwMDQzMDMwMjBCMDAwMDAwMDA0QjAzMDIwNUIzODUKKzoxMDAwMjAwMDAwMDAwMTAwMTA5MDdGQTVFMDU0MTBGRkM0NTQwRjQ0NUQKKzoxMDAwMzAwMDUwRjUwRjEzRTQwMDAxMTAwMDAwMDExMDEwMzNGNTExMEEKKzoxMDAwNDAwMDkwN0ZFOUUwMjQ1RUI0MDcwMDQwMDMwMjAzMDAwMTIwMzIKKzoxMDAwNTAwMDAwMDAwMTIwMTA3QzkwMDEyOEY4MjgyODczMDIwMUJDQzAKKzoxMDAwNjAwMDAyMDFCQzAyMDEwMDAxMzAwMDAwMDEzMDEwOTEwMjAxQzgKKzoxMDAwNzAwMDNEMDIwMTUzMDIwMTZGMDIwMTlBOTA3RjAwMDAwMTQwOEUKKzoxMDAwODAwMDAwMDAwMTQwMTBFNTExRjA5MDdGQjU3NDAxRjA5MDdGMDEKKzoxMDAwOTAwMEI0RTA0NDAyRjAwMDAxNTAwMDAwMDE1MDEwMDIwMzdDNjMKKzoxMDAwQTAwMDkwN0Y5MkUwRkZDNDU0MEY5MDdGMDBGMDkwMDAwMTYwQjkKKzoxMDAwQjAwMDAwMDAwMTYwMTA3RkI1NzQwMUYwOTA3RkI0RTA0NDAyNEQKKzoxMDAwQzAwMEYwMDIwMzdDMTIwMDAxNzAwMDAwMDE3MDEwMEE4OTUwRDgKKzoxMDAwRDAwMDA3RTQ5MDdGMDBGMDgwMDY5MDdGMDA3NDBGMDAwMTgwOUQKKzoxMDAwRTAwMDAwMDAwMTgwMTBGMDkwN0ZCNTc0MDFGMDkwN0ZCNEUwQzMKKzoxMDAwRjAwMDQ0MDJGMDAyMDMwMDAxOTAwMDAwMDE5MDEwN0M5MDdGMDgKKzoxMDAxMDAwMEVBRTBGNTBGMDIwMzdDOTA3RjAwNzQwN0YwMDAwMUEwODUKKzoxMDAxMTAwMDAwMDAwMUEwMTA5MDdGQjU3NDAxRjA5MDdGQjRFMDQ0MUUKKzoxMDAxMjAwMDAyRjA3RkU4N0UwMDAxQjAwMDAwMDFCMDEwMDMxMjBENjQKKzoxMDAxMzAwMEQ1RDIwNjEyMEQwRDAyMDM3QzkwN0ZFQUUwMDAwMUMwQ0IKKzoxMDAxNDAwMDAwMDAwMUMwMTA3NTI5MDBGNTJBQTNFMEZFRTRFRTQyOEMKKzoxMDAxNTAwMDI5OTA3RkVFRTAwMDAxRDAwMDAwMDFEMDEwNzUyQjAwNDcKKzoxMDAxNjAwMEY1MkNBM0UwRkVFNEVFNDIyQjkwN0ZFOEUwMDAwMUUwRjYKKzoxMDAxNzAwMDAwMDAwMUUwMTA2NEMwNjAwMzAyMDJDOUU1MkM0NTJCQjkKKzoxMDAxODAwMDcwMDMwMjAzN0MwMDAxRjAwMDAwMDFGMDEwQzNFNTJDQjUKKzoxMDAxOTAwMDk0NDBFNTJCOTQwMDUwMDg4NTJCMkQ4NTJDMDAwMjAwRkYKKzoxMDAxQTAwMDAwMDAwMjAwMTAyRTgwMDY3NTJEMDA3NTJFNDA5MDdGRjUKKzoxMDAxQjAwMEU5RTA2NEEzNzAwMDAyMTAwMDAwMDIxMDEwMzRGNTMxNzEKKzoxMDAxQzAwMEY1MzJDM0U1MzI5NTJFRTUzMTk1MkQ1MDVDMDAwMjIwQzUKKzoxMDAxRDAwMDAwMDAwMjIwMTBFNTJBMjUzMkY1ODJFNTMxMzUyOUY1QTcKKzoxMDAxRTAwMDgzRTBGRjc0MDAwMDAyMzAwMDAwMDIzMDEwMjUzMkY1NzkKKzoxMDAxRjAwMDgyRTQzNDdGRjU4M0VGRjAwNTMyRTUzMjcwMDAwMjQwOEYKKzoxMDAyMDAwMDAwMDAwMjQwMTAwMjA1MzE4MEQwRTRGNTMxRjUzMkMzMjAKKzoxMDAyMTAwMEU1MzI5NTJFRTUwMDAyNTAwMDAwMDI1MDEwMzE5NTJENzgKKzoxMDAyMjAwMDUwMTg3NDAwMjUzMkY1ODJFNDM0N0ZGNTgzMDAwMjYwQjMKKzoxMDAyMzAwMDAwMDAwMjYwMTA3NENERjAwNTMyRTUzMjcwMDIwNTMxMjUKKzoxMDAyNDAwMDgwRERBRjJBQUUwMDAyNzAwMDAwMDI3MDEwMjlBRDJFRDIKKzoxMDAyNTAwMDdBN0Y3OTAwN0IwMDEyMEJGNDkwN0ZCNUU1MDAwMjgwNzUKKzoxMDAyNjAwMDAwMDAwMjgwMTAyRUYwRTUyRTI1MkFGNTJBRTUyRDM1MTYKKzoxMDAyNzAwMDI5RjUyOUMzRTUwMDAyOTAwMDAwMDI5MDEwMkM5NTJFNkMKKzoxMDAyODAwMEY1MkNFNTJCOTUyREY1MkI5MDdGOTJFMEZGMDAwMkEwMzkKKzoxMDAyOTAwMDAwMDAwMkEwMTBDNDU0MEY3NTJGMDBGNTMwRDM5NDAwNTUKKzoxMDAyQTAwMEU1MkY5NDAwNTAwMDAyQjAwMDAwMDJCMDEwMEM5MDdGQzcKKzoxMDAyQjAwMEI0RTAyMEUxMDMwMjAxRTc4MEY0OTA3RkI0MDAwMkMwQzMKKzoxMDAyQzAwMDAwMDAwMkMwMTBFMDIwRTIwMzAyMDFFNzgwRjQ5MDdGMEEKKzoxMDAyRDAwMEU4RTA2NDQwNjAwMDAyRDAwMDAwMDJEMDEwMDMwMjAzOTYKKzoxMDAyRTAwMDdDRTUyQzQ1MkI3MDAzMDIwMzdDRTQ5MDdGMDAwMkUwNDgKKzoxMDAyRjAwMDAwMDAwMkUwMTBDNUYwOTA3RjkyRTBGRkM0NTQwRjc1M0IKKzoxMDAzMDAwMDJGMDBGNTMwRDMwMDAyRjAwMDAwMDJGMDEwOTQwMEU1NTkKKzoxMDAzMTAwMDJGOTQwMDUwMDk5MDdGQzRFMDMwRTEwOTgwMDAwMzAwNzEKKzoxMDAzMjAwMDAwMDAwMzAwMTBGNzkwN0ZCNEUwMjBFM0Y5OTA3RkM1NTAKKzoxMDAzMzAwMEUwNzUyRDAwRjUwMDAzMTAwMDAwMDMxMDEwMkU5MDdGRDMKKzoxMDAzNDAwMEU5RTA2NEEzNzAzODkwMjA2QkYwRjUzMUY1MDAwMzIwRUMKKzoxMDAzNTAwMDAwMDAwMzIwMTAzMkMzRTUzMjk1MkVFNTMxOTUyRDUwNzMKKzoxMDAzNjAwMDM0NzRDMDI1MzIwMDAzMzAwMDAwMDMzMDEwRjU4MkU0RkQKKzoxMDAzNzAwMDM0N0VGNTgzRTBGRkU1MkEyNTMyRjU4MkU1MDAwMzQwNkYKKzoxMDAzODAwMDAwMDAwMzQwMTAzMTM1MjlGNTgzRUZGMDA1MzJFNTMyRTYKKzoxMDAzOTAwMDcwMDIwNTMxODAwMDAzNTAwMDAwMDM1MDEwRDBBRjJBRDYKKzoxMDAzQTAwMEFFMjlBRDJFN0E3RTc5QzA3QkMwMTIwQzgwMDAwMzYwMkUKKzoxMDAzQjAwMDAwMDAwMzYwMTBFNTJFMjUyQUY1MkFFNTJEMzUyOUY1RTQKKzoxMDAzQzAwMDI5QzNFNTJDOTUwMDAzNzAwMDAwMDM3MDBEMkVGNTJDNTkKKzoxMDAzRDAwMEU1MkI5NTJERjUyQjAyMDJENEMzMDAwMDAwMDAwMzdEMTAKKzoxMDAzRTAwMDAxMjIwMDAwMDAwMDAzN0UxMDkwN0ZFOUUwNzAwMzAyMEMKKzoxMDAzRjAwMDA0NTYxNDcwMDMwMjA0RDIyNDAwMDM4RTAwMDAwMzhFRkUKKzoxMDA0MDAwMDEwRkU3MDAzMDIwNTQ2MjRGQjcwMDMwMjA0NTAxNDcwQjIKKzoxMDA0MTAwMDAzMDAwMzlFMDAwMDAzOUUxMDAyMDQ0QTE0NzAwMzAyQUUKKzoxMDA0MjAwMDA0M0UxNDcwMDMwMjA0NDQyNDAwMDNBRTAwMDAwM0FFMzMKKzoxMDA0MzAwMDEwMDU2MDAzMDIwNTlBMTIwRTdCNDAwMzAyMDVBQjkwODMKKzoxMDA0NDAwMDdGMDAwM0JFMDAwMDAzQkUxMEVCRTAyNEZFNjAxNjE0MjQKKzoxMDA0NTAwMDYwNDAyNDAyNzA2OTc0MTE5MDAwMDNDRTAwMDAwM0NFNDYKKzoxMDA0NjAwMDEwN0ZENEYwNzQwMDkwN0ZENUYwMDIwNUFCOTA3RkVBNDYKKzoxMDA0NzAwMEUwMDAwM0RFMDAwMDAzREUxMEZGMTIwQjU4OEIyNjhBMUIKKzoxMDA0ODAwMDI3ODkyOEVBNDk2MDExQUUwMjAwMDNFRTAwMDAwM0VFNUUKKzoxMDA0OTAwMDEwRUU5MDdGRDRGMEFGMDFFRjkwN0ZENUYwMDIwNUFCNjYKKzoxMDA0QTAwMDkwMDAwM0ZFMDAwMDAzRkUxMDdGQjRFMDQ0MDFGMDAyNjAKKzoxMDA0QjAwMDA1QUI5MDdGRUFFMEZGMTIwQzAwMDQwRTAwMDAwNDBFNzIKKzoxMDA0QzAwMDEwM0Y4QjI2OEEyNzg5MjhFQTQ5NjAxMUFFMDJFRTkwRjgKKzoxMDA0RDAwMDdGMDAwNDFFMDAwMDA0MUUxMEQ0RjBBRjAxRUY5MDdGRDcKKzoxMDA0RTAwMEQ1RjAwMjA1QUI5MDdGQjRFMDAwMDQyRTAwMDAwNDJFOEUKKzoxMDA0RjAwMDEwNDQwMUYwMDIwNUFCOTA3RkI0RTA0NDAxRjAwMjA1MjYKKzoxMDA1MDAwMEFCMDAwNDNFMDAwMDA0M0UxMDEyMEU1MjAyMDVBQjEyNzYKKzoxMDA1MTAwMDBFNjAwMjA1QUIxMjBBRjcwMjAwMDQ0RTAwMDAwNDRFMDIKKzoxMDA1MjAwMDEwMDVBQjEyMDhGMTAyMDVBQjEyMEU3RDQwMDMwMjA1NjcKKzoxMDA1MzAwMEFCMDAwNDVFMDAwMDA0NUUxMDkwN0ZFOEUwMjQ3RjYwNjIKKzoxMDA1NDAwMDI0MTQ2MDMxMjQwMjcwNUJBMjAwMDQ2RTAwMDAwNDZFNkIKKzoxMDA1NTAwMDEwMDBFNDMzRkYyNUUwRkZBMjAyRTQzMzRGOTA3RjAwNTgKKzoxMDA1NjAwMEYwMDAwNDdFMDAwMDA0N0UxMEU0QTNGMDkwN0ZCNTc0RDgKKzoxMDA1NzAwMDAyRjAwMjA1QUJFNDkwN0YwMDAwMDQ4RTAwMDAwNDhFQzAKKzoxMDA1ODAwMDEwRjBBM0YwOTA3RkI1NzQwMkYwMDIwNUFCOTA3RkVDMDEKKzoxMDA1OTAwMEUwMDAwNDlFMDAwMDA0OUUxMEY0NTQ4MEZGQzQ1NDBGMzkKKzoxMDA1QTAwMEZGRTA1NDA3MkYyNUUwMjRCNDAwMDRBRTAwMDAwNEFFQTEKKzoxMDA1QjAwMDEwRjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0OTEKKzoxMDA1QzAwMEEzMDAwNEJFMDAwMDA0QkUxMEYwOTA3RkI1NzQwMkYwREEKKzoxMDA1RDAwMDAyMDVBQjkwN0ZCNEUwNDQwMTAwMDRDRTAwMDAwNENFREQKKzoxMDA1RTAwMDEwRjAwMjA1QUIxMjBFN0Y0MDAzMDIwNUFCOTA3RkU4Q0UKKzoxMDA1RjAwMEUwMDAwNERFMDAwMDA0REUxMDI0RkU2MDFEMjQwMjYwMjIKKzoxMDA2MDAwMDAzMDIwNUFCOTA3RkVBRTBCNDAwMDRFRTAwMDAwNEVFQzQKKzoxMDA2MTAwMDEwMDEwNUMyMDAwMjA1QUI5MDdGQjRFMDQ0MDFGMDAyNzYKKzoxMDA2MjAwMDA1MDAwNEZFMDAwMDA0RkUxMEFCOTA3RkVBRTA3MDM4ODUKKzoxMDA2MzAwMDkwN0ZFQ0UwRjQ1NDgwRkZDNDAwMDUwRTAwMDAwNTBFMkUKKzoxMDA2NDAwMDEwNTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0NjIKKzoxMDA2NTAwMDdGMDAwNTFFMDAwMDA1MUUxMEY1ODNFNEYwOTA3RkVDN0UKKzoxMDA2NjAwMEUwNTQ4MEZGMTMxMzEzNTQxRjAwMDUyRTAwMDAwNTJFQzUKKzoxMDA2NzAwMDEwRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDZFMDkKKzoxMDA2ODAwMDkwMDAwNTNFMDAwMDA1M0UxMDdGQjRFMDQ0MDFGMDgwN0MKKzoxMDA2OTAwMDY1MTIwRTgxNTA2MDkwN0ZFODAwMDU0RTAwMDAwNTRFMDcKKzoxMDA2QTAwMDEwRTAyNEZFNjAxODI0MDI3MDU0OTA3RkVBRTBCNDAxNDgKKzoxMDA2QjAwMDA0MDAwNTVFMDAwMDA1NUUxMEQyMDA4MDQ5OTA3RkI0MDIKKzoxMDA2QzAwMEUwNDQwMUYwODA0MDkwN0ZFQTAwMDU2RTAwMDAwNTZFNzYKKzoxMDA2RDAwMDEwRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRDIKKzoxMDA2RTAwMEUwMDAwNTdFMDAwMDA1N0UxMDU0MDcyRjI1RTAyNEI0QUQKKzoxMDA2RjAwMEY1ODJFNDM0N0ZGNTgzNzQwMTAwMDU4RTAwMDAwNThFRDkKKzoxMDA3MDAwMDEwRjA4MDFBOTA3RkI0RTA0NDAxRjA4MDExRTQ5MDIwNTIKKzoxMDA3MTAwMDZBMDAwNTlFMDAwMDA1OUUxMEYwMTIwMTAwNTAwNzkwMkYKKzoxMDA3MjAwMDdGQjRFMDQ0MDFGMDkwN0ZCNDAwMDVBRTAwMDAwNUFFNTgKKzoxMDA3MzAwMDA0RTA0NDAyRjAwMDAwMDAwMDAwMDVCMjAxMjIwMDAwQzUKKzoxMDA3NDAwMDAwMDAwNUIzMTBDMEUwQzA4M0MwODJDMDg1QzA4NEMwNzMKKzoxMDA3NTAwMDg2NzU4NjAwQzAwMDA1QzMwMDAwMDVDMzEwRDBDMDAwMjgKKzoxMDA3NjAwMEMwMDFDMDAyQzAwM0MwMDZDMDA3OTA3RkE1MDAwNUQzMkEKKzoxMDA3NzAwMDAwMDAwNUQzMTBFMDMwRTIwNjc1MEQwNjAyMDY3RjkwRkEKKzoxMDA3ODAwMDdGQTVFMDIwRTEwMDA1RTMwMDAwMDVFMzEwMENFNTBEODYKKzoxMDA3OTAwMDY0MDI2MDA2NzUwRDA3MDIwNjdGQUYwREVGMDAwNUYzREEKKzoxMDA3QTAwMDAwMDAwNUYzMTAyNEZFNjA0ODE0NjAyQzI0RkU2MDc3REUKKzoxMDA3QjAwMDI0MDQ2MDAzMDIwMDA2MDMwMDAwMDYwMzEwMDY3RkFCNUEKKzoxMDA3QzAwMDA5QUEwQUE5MEJBRjBDMDUwQzhGODI3NTgzMDAwNjEzQ0EKKzoxMDA3RDAwMDAwMDAwNjEzMTAwMDEyMDc4NTkwN0ZBNkYwRTUwQzY1NTcKKzoxMDA3RTAwMDA4NzA1RTc1MEQwMDA2MjMwMDAwMDYyMzEwMDU4MDU5NzEKKzoxMDA3RjAwMDkwN0ZBNkUwQUIwOUFBMEFBOTBCQUUwQzhFMDAwNjMzQzcKKzoxMDA4MDAwMDAwMDAwNjMzMTA4Mjc1ODMwMDEyMDdCMjc1MEQwMjgwNTYKKzoxMDA4MTAwMDQwRTUwODI0RkUwMDA2NDMwMDAwMDY0MzEwQjUwQzA3MUYKKzoxMDA4MjAwMDkwN0ZBNUUwNDQyMEYwRTUwODE0QjUwQzBBMDAwNjUzQkIKKzoxMDA4MzAwMDAwMDAwNjUzMTA5MDdGQTVFMDQ0NDBGMEU0RjUwRDkwRDEKKzoxMDA4NDAwMDdGQTZFMEFCMDkwMDA2NjMwMDAwMDY2MzEwQUEwQUE5QjAKKzoxMDA4NTAwMDBCQUUwQzhFODI3NTgzMDAxMjA3QjIwNTBDMDAwNjczNzYKKzoxMDA4NjAwMDAwMDAwNjczMTA4MDBBOTA3RkE1RTA0NDQwRjBFNEY1OTQKKzoxMDA4NzAwMDBENTM5MURGRDAwMDA2ODMwMDAwMDY4MzEwMDdEMDA2RDkKKzoxMDA4ODAwMEQwMDNEMDAyRDAwMUQwMDBEMEQwRDA4NkQwMDAwNjkzQzMKKzoxMDA4OTAwMDAwMDAwNjkzMEE4NEQwODVEMDgyRDA4M0QwRTAzMjAwNTUKKzoxMDA4QTAwMDAwMDAwNjlEMTBDMjA0RDIwNUU0RjUyNUMyMDNDMjAwNzMKKzoxMDA4QjAwMEMyMDJDMjAxMTIwMDA2QUQwMDAwMDZBRDEwMEU3NEQyRDUKKzoxMDA4QzAwMEU4NDNEODIwOTA3RkFCNzRGRkYwOTA3RkE5MDAwNkJENkQKKzoxMDA4RDAwMDAwMDAwNkJEMTBGMDkwN0ZBQUYwNTM5MUVGOTA3Rjk1MzUKKzoxMDA4RTAwMEUwNDRDMEYwOTAwMDA2Q0QwMDAwMDZDRDEwN0Y5Mzc0NjgKKzoxMDA4RjAwMDMwRjAxMjBBMTk3NTI0NDg3NTIzOTI3NTIyMDAwNkREMUUKKzoxMDA5MDAwMDAwMDAwNkREMTAwMDc1MjEwMEU0RkZGRTdFMDU5MDIwNEEKKzoxMDA5MTAwMDY4NzQwMUYwQTMwMDA2RUQwMDAwMDZFRDEwREVGQzdFMTkKKzoxMDA5MjAwMDAwN0YwNTkwN0ZBRkUwNDQwMUYwOTA3RkFFMDAwNkZEQjAKKzoxMDA5MzAwMDAwMDAwNkZEMTBFMDQ0MERGMEQyQUYxMjBFNjgzMDAxNDkKKzoxMDA5NDAwMDBBRTQ5MDIwNjkwMDA3MEQwMDAwMDcwRDEwRjAxMjAzNjMKKzoxMDA5NTAwMDdFQzIwMTMwMDQxQTEyMEU3NzUwMTMxMjA5MDAwNzFEQ0YKKzoxMDA5NjAwMDAwMDAwNzFEMTAwMDMwMDAwNzkwN0ZENkUwMzBFN0YzNEQKKzoxMDA5NzAwMDEyMEQ4QjEyMEUwMDA3MkQwMDAwMDcyRDEwNzlDMjAzRjcKKzoxMDA5ODAwMDdGRkY3RUZGN0RGRjdDRkY3ODIxMTIwODFEMDAwNzNENjEKKzoxMDA5OTAwMDAwMDAwNzNEMTA3QjAwN0EwMDc5MDA3ODAwQzMxMjA4NDAKKzoxMDA5QTAwMDBDNzAxQjc1MjQwMDA3NEQwMDAwMDc0RDEwNDg3NTIzN0YKKzoxMDA5QjAwMDkyRjUyMkY1MjE2MzI1RkY5MDIwNjhFNTI1MDAwNzVENkIKKzoxMDA5QzAwMDAwMDAwNzVEMEVGMEEzNzQwMUYwQTNGMEEzRjAxMjA4N0QKKzoxMDA5RDAwMEZGODA5QjAwMDAwMDA3NkIwMTIyMDAwMDAwMDAwNzZDRjUKKzoxMDA5RTAwMDEwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDcKKzoxMDA5RjAwMDAyMDAwNzdDMDAwMDA3N0MwOUUzMjI4OTgyOEE4M0U0RTUKKzoxMDBBMDAwMDkzMjIwMDAwMDAwMDA3ODUxMEJCMDEwQ0U1ODIyOUY1NDgKKzoxMDBBMTAwMDgyRTU4MzNBRjU4M0UwMjI1MDAwMDc5NTAwMDAwNzk1QjAKKzoxMDBBMjAwMDEwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyRjcKKzoxMDBBMzAwMDIyMDAwN0E1MDAwMDA3QTUwREU1ODIyOUY1ODJFNTgzQzAKKzoxMDBBNDAwMDNBRjU4M0U0OTMyMjAwMDAwMDAwMDdCMjEwRjhCQjAxREUKKzoxMDBBNTAwMDBERTU4MjI5RjU4MkU1ODMzQUY1ODNFOEYwMDAwN0MyQzcKKzoxMDBBNjAwMDAwMDAwN0MyMTAyMjUwMDZFOTI1ODJDOEY2MjJCQkZFMEMKKzoxMDBBNzAwMDA1RTkyNTgyQzgwMDA3RDIwMDAwMDdEMjAyRjIyMjAwNTEKKzoxMDBBODAwMDAwMDAwN0Q0MTBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBMDYKKzoxMDBBOTAwMEY1ODNFMEY1RjAwMDA3RTQwMDAwMDdFNDEwQTNFMDIyOEUKKzoxMDBBQTAwMDUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFMDAwN0Y0MkIKKzoxMDBBQjAwMDAwMDAwN0Y0MTAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyQzYKKzoxMDBBQzAwMEU1ODMyQUY1ODMwMDA4MDQwMDAwMDgwNDA4RTk5M0Y1OEIKKzoxMDBBRDAwMEYwQTNFOTkzMjIwMDAwMDAwMDAwMDgwQzEwRUI5RkY1NDIKKzoxMDBBRTAwMEYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwMDAwODFDQzcKKzoxMDBBRjAwMDAwMDAwODFDMDEyMjAwMDAwMDAwMDgxRDEwMDgwODA4NjIKKzoxMDBCMDAwMEU2MkZGRkY2MThFNjNFRkVGNjE4RTYzREZEMDAwODJEM0UKKzoxMDBCMTAwMDAwMDAwODJEMDdGNjE4RTYzQ0ZDRjYyMjAwMDAwODM0MTkKKzoxMDBCMjAwMDA0OEMzNDhEMzUwMDAwMDAwMDAwMDgzODEwOTA3Rjk1NEIKKzoxMDBCMzAwMEUwNDRDMEYwRTRGNTM2RjUzN0MzRTUzNzk1MDAwODQ4RTIKKzoxMDBCNDAwMDAwMDAwODQ4MTAzNUU1MzY5NTM0NTA2OUVGMjUzN0Y1MzMKKzoxMDBCNTAwMDgyRTUzNjNFRjUwMDA4NTgwMDAwMDg1ODEwODM3NEZGRkYKKzoxMDBCNjAwMEYwRjQ2MDAyQzMyMkVGMjUzN0Y1ODJFNTM2MDAwODY4MEQKKzoxMDBCNzAwMDAwMDAwODY4MTAzRUY1ODNFNEYwNjAwMkMzMjJFRjI1MTAKKzoxMDBCODAwMDM3RjU4MkU1MzYwMDA4NzgwMDAwMDg3ODEwM0VGNTgzRDYKKzoxMDBCOTAwMDc0QUFGMDY0QUE2MDAyQzMyMkVGMjUzN0Y1MDAwODg4MjIKKzoxMDBCQTAwMDAwMDAwODg4MTA4MkU1MzYzRUY1ODM3NDU1RjA2NDU1RTAKKzoxMDBCQjAwMDYwMDJDMzIyQUQwMDA4OTgwMDAwMDg5ODEwMzdFNTM3OUUKKzoxMDBCQzAwMDJGRjU4MkU1MzYzRUY1ODNFREYwRkNBQzA1MDAwOEE4NzQKKzoxMDBCRDAwMDAwMDAwOEE4MTBFRDZDNjAwMkMzMjIwNTM3RTUzNzcwRUQKKzoxMDBCRTAwMDAyMDUzNjgwOEMwMDA4QjgwMDAwMDhCODEwRTRGNTM2MUQKKzoxMDBCRjAwMEY1MzdDM0U1Mzc5NTM1RTUzNjk1MzQ1MDI3MDAwOEM4RjUKKzoxMDBDMDAwMDAwMDAwOEM4MTBFRjI1MzdGNTgyRTUzNjNFRjU4M0UwOTEKKzoxMDBDMTAwMDY1Mzc2MDAyQzMwMDA4RDgwMDAwMDhEODEwMjJFRjI1MEQKKzoxMDBDMjAwMDM3RjU4MkU1MzYzRUY1ODNFNEYwMDUzN0U1MDAwOEU4NjAKKzoxMDBDMzAwMDAwMDAwOEU4MDgzNzcwMDIwNTM2ODBDRUQzMDAwMDAwQjcKKzoxMDBDNDAwMDAwMDAwOEYwMDEyMjAwMDAwMDAwMDhGMTBFOTA3RjAwNzMKKzoxMDBDNTAwMEU1MTBGMDkwN0ZCNTc0MDFGMEQzMjIwMDAwMDAwOEZGOEEKKzoxMDBDNjAwMDAxMjIwMDAwMDAwMDA5MDAwOTkwN0ZENkUwNDQ4MEYwRDYKKzoxMDBDNzAwMDgwNzQwMDAwMDAwMDA5N0QxMDQzODcwMTAwMDAwMDAwMUYKKzoxMDBDODAwMDAwMDAwMDAwMDAwMDAwMDAyMjAwMDk4RDAwMDAwOThEMTYKKzoxMDBDOTAwMDBDNzg3RkU0RjZEOEZENzU4MTNBMDIwOUQ0MDAwMDAwOTMKKzoxMDBDQTAwMDAwMDAwOTk5MTAwMjA2OURFNDkzQTNGOEU0OTNBMzQwODEKKzoxMDBDQjAwMDAzRjY4MDAxRjIwMDA5QTkwMDAwMDlBOTEwMDhERkY0NzkKKzoxMDBDQzAwMDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzMDAwOUI5NUUKKzoxMDBDRDAwMDAwMDAwOUI5MTBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2REUKKzoxMDBDRTAwMDgwMDE0NkY2REYwMDA5QzkwMDAwMDlDOTEwRTQ4MDBCNDUKKzoxMDBDRjAwMDAxMDIwNDA4MTAyMDQwODA5MDBFMkRFNDdFMDAwOUQ5RTYKKzoxMDBEMDAwMDAwMDAwOUQ5MTAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5RUUKKzoxMDBEMTAwMDU0MUZGRUU0OTMwMDA5RTkwMDAwMDlFOTEwQTM2MDAxRjMKKzoxMDBEMjAwMDBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzMDAwOUY5QjEKKzoxMDBEMzAwMDAwMDAwOUY5MTBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyNkMKKzoxMDBENDAwMEM4Q0FDNTgzQ0EwMDBBMDkwMDAwMEEwOTEwRjBBM0M4NkUKKzoxMDBENTAwMEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFMDAwQTE5QkEKKzoxMDBENjAwMDAwMDAwQTE5MTBFNDkwN0Y5Q0YwN0YwQUZFMTIwREQ1NTYKKzoxMDBENzAwMDkwN0Y5Njc0ODkwMDBBMjkwMDAwMEEyOTEwRjA5MDdGNUMKKzoxMDBEODAwMDlDNzRDRkYwN0ZGNDdFMDExMjBERDU5MDdGMDAwQTM5NUMKKzoxMDBEOTAwMDAwMDAwQTM5MTA5NkUwNTRGRUYwN0YwQTdFMDAxMjBEMjIKKzoxMDBEQTAwMEQ1N0YwNTdFMDAwMDBBNDkwMDAwMEE0OTEwMTIwREQ1QzIKKzoxMDBEQjAwMDkwN0Y5NkUwNDQwMkYwRTA1NDdGRjA3RjA1MDAwQTU5RUUKKzoxMDBEQzAwMDAwMDAwQTU5MTA3RTAwMTIwREQ1OTA3Rjk2RTA0NDQwMzUKKzoxMDBERDAwMEYwN0YwNTdFMDAwMDBBNjkwMDAwMEE2OTEwMTIwREQ1MzcKKzoxMDBERTAwMDkwN0Y5NkUwNTRCRkYwN0YzMjdFMDAxMjBEMDAwQTc5QUEKKzoxMDBERjAwMDAwMDAwQTc5MTBENTkwN0Y5NkUwNDQ0MEYwN0YzMjdFNjMKKzoxMDBFMDAwMDAwMTIwREQ1MjIwMDBBODkwMDAwMEE4OTEwNzUzMzAxRUQKKzoxMDBFMTAwMEU1MzM2MDFCN0YwMTEyMEUxODdGMDA3RTBFMDAwQTk5RDkKKzoxMDBFMjAwMDAwMDAwQTk5MTA3RDAwN0MwMTEyMDgzNEU0MzNGNTMzODgKKzoxMDBFMzAwMDcwMDU3RjBGMTIwMDBBQTkwMDAwMEFBOTEwMEUxOEU1MUMKKzoxMDBFNDAwMDMzNjAxQjdGMDIxMjBFMTg3RjAwN0U4MDdEMDAwQUI5N0UKKzoxMDBFNTAwMDAwMDAwQUI5MTAwMDdDODAxMjA4MzRFNDMzRjUzMzcwQzYKKzoxMDBFNjAwMDA1N0YwRjEyMEUwMDBBQzkwMDAwMEFDOTEwMThFNTMzRTkKKzoxMDBFNzAwMDYwMUI3RjAzMTIwRTE4N0YwMDdFMjA3RDQwMDAwQUQ5ODAKKzoxMDBFODAwMDAwMDAwQUQ5MTA3QzVCMTIwODM0RTQzM0Y1MzM3MDA1OTYKKzoxMDBFOTAwMDdGMEYxMjBFMTgwMDBBRTkwMDAwMEFFOTBERTUzMzYwMjEKKzoxMDBFQTAwMDA1RTRGRjEyMEUxOEU1MzMyNEZGMDAwMDAwMDAwQUY2RTcKKzoxMDBFQjAwMDAxMjIwMDAwMDAwMDBBRjcwODkwN0ZFQUUwRjUxMEQzNTUKKzoxMDBFQzAwMDIyMDAwMDAwMDAwMDBBRkYwMTMyMDAwMDAwMDAwQjAwQjkKKzoxMDBFRDAwMDEwMDIwREE1MDAwMjBERUMwMDAyMEQ3MDAwMDIwREJEMDgKKzoxMDBFRTAwMDAwMDAwQjEwMDAwMDBCMTAxMDAyMEUwMjAwMDIwQUZGOUYKKzoxMDBFRjAwMDAwMDIwRTgzMDAwMjBFODQwMDAwMEIyMDAwMDAwQjIwNzUKKzoxMDBGMDAwMDEwMDIwRTg1MDAwMjBFODYwMDAyMEU4NzAwMDIwRTg4NzcKKzoxMDBGMTAwMDAwMDAwQjMwMDAwMDBCMzAxMDAyMEU4OTAwMDIwRThBMTgKKzoxMDBGMjAwMDAwMDIwRThCMDAwMjBFOEMwMDAwMEI0MDAwMDAwQjQwRjQKKzoxMDBGMzAwMDEwMDIwRThEMDAwMjBFOEUwMDAyMEU4RjAwMDIwRTkwMjcKKzoxMDBGNDAwMDAwMDAwQjUwMDAwMDBCNTAwODAyMEU5MTAwMDIwRTkyQTAKKzoxMDBGNTAwMDAwMDAwMDAwMDAwMDBCNTgxMEU0RkU3NTJCRkY3NTJDRkMKKzoxMDBGNjAwMDExNzUyRDEyQUIyQkFBMkNBOTAwMEI2ODAwMDAwQjY4ODEKKzoxMDBGNzAwMDEwMkQ5MDAwMDExMjA3ODU2NDAyNzAyREFEMDYwRUVENTQKKzoxMDBGODAwMEI1MDAwQjc4MDAwMDBCNzgxMDA3MDEyMjkwMDAwMjEyQzgKKzoxMDBGOTAwMDA3RDQ4NUYwMjlGNTJBNjIyOTAwMEI4ODAwMDAwQjg4MDgKKzoxMDBGQTAwMDEwRTUyOTYyMkFFNTJBNjIyOTI5RkRFNTI5M0FBOTA1RTEKKzoxMDBGQjAwMDc1MDAwQjk4MDAwMDBCOTgwRTJCRkZGNTJDODkyRDgwRTcKKzoxMDBGQzAwMEMzN0IwMDdBMDA3OTAwMDAwMDAwMEJBNjAxMjIwMDAwMUMKKzoxMDBGRDAwMDAwMDAwQkE3MDZBQjA3QUEwNkFDMDUwMDAwMDAwQkFEOEUKKzoxMDBGRTAwMDEwRTRGREU1MTE2MDExRUFGRkFFMDUwREVFMjQxMEY1RTkKKzoxMDBGRjAwMDgyMDAwQkJEMDAwMDBCQkQxMEU0MzQwRkY1ODNFRkYwNTEKKzoxMDEwMDAwMEVCQUUwNTBENzQxMDJFRjU4MjAwMEJDRDAwMDAwQkNENUMKKzoxMDEwMTAwMDEwRTQzNDBGRjU4M0VCRjBBRjA1MEQ3NDEwMkZGNTgyNUIKKzoxMDEwMjAwMEU0MDAwQkREMDAwMDBCREQxMDM0MEZGNTgzRUNGMEFGQjYKKzoxMDEwMzAwMDBGN0EwRjdCMTAxMjBENTE3RjAwMEJFRDAwMDAwQkVEQUUKKzoxMDEwNDAwMDA2MEE3RTAwMTIwREQ1MDAwMDAwMEJGMzAxMjIwMDAwRkQKKzoxMDEwNTAwMDAwMDAwQkY0MEE4RTMzOEYzNDhEMzU4QTM2OEIzNzAwQkYKKzoxMDEwNjAwMDAwMDAwQkZFMTBFNEZERjUzOEU1MTE2MDEyRTUzM0ZGREEKKzoxMDEwNzAwMEFFMDUwREVFMjQwMDBDMEUwMDAwMEMwRTEwMTNGNTgyRDAKKzoxMDEwODAwMEU0MzQwRkY1ODNFRkYwRTUzNEFFMDUwRDc0MDAwQzFFNkIKKzoxMDEwOTAwMDAwMDAwQzFFMTAxMzJFRjU4MkU0MzQwRkY1ODNFNTM0QTYKKzoxMDEwQTAwMEYwQUYwRjdBMEYwMDBDMkUwMDAwMEMyRTEwN0IxMzEyRTUKKzoxMDEwQjAwMDBENTFBRjBGQUQzNUFCMzdBQTM2MTIwRDMyMDAwQzNFRDUKKzoxMDEwQzAwMDAwMDAwQzNFMDEyMjAwMDAwMDAwMEMzRjAyOEYyOTAwQUUKKzoxMDEwRDAwMDAwMDAwQzQxMTBFNEY1MkE3NTJCRkY3NTJDMTE3NTJEQkQKKzoxMDEwRTAwMDMyQUIyQkFBMkMwMDBDNTEwMDAwMEM1MTEwQTkyRDkwRjIKKzoxMDEwRjAwMDAwMDExMjA3ODVCNDAzMURBRjJBMDUyQUVGMDAwQzYxMTkKKzoxMDExMDAwMDAwMDAwQzYxMTBCNTI5MDEyMjEyMDc2QzdFMDAyOUZGMzYKKzoxMDExMTAwMEVFM0FBOTA3NzUwMDBDNzEwMDAwMEM3MTBFMkJGRkY1NUIKKzoxMDExMjAwMDJDODkyRDgwRDQ3QjAwN0EwMDc5MDAwMDAwMDAwQzdGOTAKKzoxMDExMzAwMDAxMjIwMDAwMDAwMDBDODAwQThFMzM4RjM0OEQzNThBMjYKKzoxMDExNDAwMDM2OEIzNzAwMDAwMDBDOEExMEU0RjUzOEU1MzhDMzk1N0IKKzoxMDExNTAwMDM1NTAyMDA1MzRFNTM0QUUzMzAwMEM5QTAwMDAwQzlBNkIKKzoxMDExNjAwMDEwNzAwMjA1MzMxNEZGRTUzNzI1MzhGNTgyRTQzNTM2NzMKKzoxMDExNzAwMEY1MDAwQ0FBMDAwMDBDQUEwQTgzRTBGRDEyMEJBNzA1REIKKzoxMDExODAwMDM4ODBEOTAwMDAwMDBDQjQwMTIyMDAwMDAwMDAwQ0I1MkEKKzoxMDExOTAwMDEwQTkwN0U1MEQ3MDI1OTA3RkE1RTA0NDgwRjBFOTI1QjIKKzoxMDExQTAwMEUwMDAwQ0M1MDAwMDBDQzUxMDQ0MDE5MDdGQTZGMDhEMzYKKzoxMDExQjAwMDA4QUYwM0E5MDc3NTA5MDE4QTAwMENENTAwMDAwQ0Q1RkEKKzoxMDExQzAwMDBEMEE4OTBCRTRGNTBDNzUwRDAzRDMyMkMzMjIwMDAwMzAKKzoxMDExRDAwMDAwMDAwQ0UyMTBBOTA3RTUwRDcwMjM5MDdGQTVFMDQ0MDQKKzoxMDExRTAwMDgwRjBFOTI1RTAwMDBDRjIwMDAwMENGMjEwOTA3RkE2RTAKKzoxMDExRjAwMEYwOEQwOEFGMDNBOTA3NzUwOTAxOEEwQTg5MDAwRDAyNUQKKzoxMDEyMDAwMDAwMDAwRDAyMEIwQkU0RjUwQzc1MEQwMUQzMjJDMzIyNzcKKzoxMDEyMTAwMDAwMDAwRDBEMTA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwODQKKzoxMDEyMjAwMDMwMDYwNEUwNDQwMDBEMUQwMDAwMEQxRDEwMDJGMDdGOEIKKzoxMDEyMzAwMEQwN0UwNzEyMERENTkwN0ZENkUwNTRGN0YwMDAwRDJEMkIKKzoxMDEyNDAwMDAwMDAwRDJEMDVFMDQ0MDRGMDIyMDAwMDAwMDAwRDMyRTYKKzoxMDEyNTAwMDEwMTIwQ0I1RTUwRDI0RkE2MDEwMTQ2MDA3MjQwNzcwMTUKKzoxMDEyNjAwMEYzMDAwRDQyMDAwMDBENDIwRjdGMDgyMkU0RjUwRDdGRDAKKzoxMDEyNzAwMDA3MjJFNEY1MEQ3RjA2MjIwMDAwMEQ1MTEwMTIwQ0UyNEEKKzoxMDEyODAwMEU1MEQyNEZBNjAxMDE0NjAwNzI0MDc3MEYzMDAwRDYxNjcKKzoxMDEyOTAwMDAwMDAwRDYxMEY3RjA4MjJFNEY1MEQ3RjA3MjJFNEY1QzEKKzoxMDEyQTAwMDBEN0YwNjIyMDAwMDBENzAxMEMwRTBDMDgzQzA4MjkwNDgKKzoxMDEyQjAwMDdGQzRFNEYwNTM5MUVGOTA3RjAwMEQ4MDAwMDAwRDgwMUIKKzoxMDEyQzAwMDBCQUI3NDA0RjBEMDgyRDA4M0QwRTAzMjAwMDAwRDhCRTEKKzoxMDEyRDAwMDEwOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMTQ3RTAwRUEKKzoxMDEyRTAwMDEyMDAwRDlCMDAwMDBEOUIwQTBERDU5MDdGRDZFMDU0OTcKKzoxMDEyRjAwMEZFRjAyMjAwMDAwMDBEQTUxMEMwRTBDMDgzQzA4MkQyMjUKKzoxMDEzMDAwMDAxNTM5MUVGOTA3RkFCNzQwMTAwMERCNTAwMDAwREI1NTYKKzoxMDEzMTAwMDA4RjBEMDgyRDA4M0QwRTAzMjAwMDAwMDAwMDAwREJEODQKKzoxMDEzMjAwMDEwQzBFMEMwODNDMDgyRDIwMzUzOTFFRjkwN0ZBQjc0QjIKKzoxMDEzMzAwMDA4MDAwRENEMDAwMDBEQ0QwOEYwRDA4MkQwODNEMEUwQTQKKzoxMDEzNDAwMDMyMDAwMDAwMDAwMDBERDUxMDhFMzk4RjNBRTUzQTE1QjUKKzoxMDEzNTAwMDNBQUUzOTcwMDIxNTM5NEU2MDAwMERFNTAwMDAwREU1MUEKKzoxMDEzNjAwMDA3MDUxMjBFNDE4MEVFMjIwMDAwMERFQzEwQzBFMEMwMTcKKzoxMDEzNzAwMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDJGMEQwMDAwREZDREMKKzoxMDEzODAwMDAwMDAwREZDMDY4MkQwODNEMEUwMzIwMDAwMDAwRTAyODcKKzoxMDEzOTAwMDEwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwMTcKKzoxMDEzQTAwMEQwMDAwRTEyMDAwMDBFMTIwNjgyRDA4M0QwRTAzMjAwNzAKKzoxMDEzQjAwMDAwMDAwRTE4MTBBRTA3N0YyMTdEMDE3NDAwMkVGNTgyMEIKKzoxMDEzQzAwMEU0MzQwRkFCODIwMDBFMjgwMDAwMEUyODA1RkExMjBEM0YKKzoxMDEzRDAwMDUxMjIwMDAwMDAwMDBFMkQxMDUwMEYwMEMwRjlBNEIwRTMKKzoxMDEzRTAwMDk5OTI4MkY4ODA5ODg4ODNDNjAwMEUzRDAwMDAwRTNERDkKKzoxMDEzRjAwMDAzQTE4NjhFMDAwMDBFNDAwMTAwMDAwMDAwMDAwRTQxOTcKKzoxMDE0MDAwMDEwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRTgKKzoxMDE0MTAwMEY5MDAwRTUxMDAwMDBFNTEwMTIyMDAwMDAwMDAwRTUyOTIKKzoxMDE0MjAwMDBFOTA3RjAwRTUwRUYwOTA3RkI1NzQwMUYwRDMyMjAwOUUKKzoxMDE0MzAwMDAwMDAwRTYwMDg5MDdGRUFFMEY1MEVEMzIyMDAwMDAwNjUKKzoxMDE0NDAwMDAwMDAwRTY4MDhFNEY1MEREMkU5RDJBRjIyMDAwMDAwREEKKzoxMDE0NTAwMDAwMDAwRTcwMDQ1M0Q4RUYzMjAwMDAwMDAwMDAwRTc0M0MKKzoxMDE0NjAwMDAzRDIwMDIyMDAwMDBFNzcwMkQzMjIwMDAwMDAwRTc5ODIKKzoxMDE0NzAwMDAyRDMyMjAwMDAwMDBFN0IwMkQzMjIwMDAwMDAwRTdENkEKKzoxMDE0ODAwMDAyRDMyMjAwMDAwMDBFN0YwMkQzMjIwMDAwMDAwRTgxNTIKKzoxMDE0OTAwMDAyRDMyMjAwMDAwMDBFODMwMTMyMDAwMDAwMDAwRTg0RkYKKzoxMDE0QTAwMDAxMzIwMDAwMDAwMDBFODUwMTMyMDAwMDAwMDAwRTg2QUYKKzoxMDE0QjAwMDAxMzIwMDAwMDAwMDBFODcwMTMyMDAwMDAwMDAwRTg4OUIKKzoxMDE0QzAwMDAxMzIwMDAwMDAwMDBFODkwMTMyMDAwMDAwMDAwRThBODcKKzoxMDE0RDAwMDAxMzIwMDAwMDAwMDBFOEIwMTMyMDAwMDAwMDAwRThDNzMKKzoxMDE0RTAwMDAxMzIwMDAwMDAwMDBFOEQwMTMyMDAwMDAwMDAwRThFNUYKKzoxMDE0RjAwMDAxMzIwMDAwMDAwMDBFOEYwMTMyMDAwMDAwMDAwRTkwNEIKKzoxMDE1MDAwMDAxMzIwMDAwMDAwMDBFOTEwMTMyMDAwMDAwMDAwRTkyMzYKKzoxMDE1MTAwMDAxMzIwMDAwMDAwMDExMDAxMDEyMDEwMDAxMDAwMDAwNjMKKzoxMDE1MjAwMDQwNDcwNTEwMjcwMTAwMDEwMjAwMTExMDAwMDAxMTEwQjIKKzoxMDE1MzAwMDEwMDAwMTA5MDIyMDAwMDEwMTAzQTAwMDA5MDQwMDAwQkQKKzoxMDE1NDAwMDAyMDAxMTIwMDAwMDExMjAxMEZGMDAwMDA0MDcwNTgyOTYKKzoxMDE1NTAwMDAyNDAwMDAwMDcwNTAyMDI0MDAwMTEzMDAwMDAxMTMwNzcKKzoxMDE1NjAwMDEwMDAwMDA0MDMwOTA0MjYwMzQxMDA2RTAwNjMwMDY4QjQKKzoxMDE1NzAwMDAwMDAxMTQwMDAwMDExNDAxMDZGMDA3MjAwMjAwMDQzNzUKKzoxMDE1ODAwMDAwNjgwMDY5MDA3MDAwNzMwMDAwMTE1MDAwMDAxMTUwRTUKKzoxMDE1OTAwMDEwMkMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMjgwMzQ2MzYKKzoxMDE1QTAwMDAwMDAxMTYwMDAwMDExNjAxMDY5MDA3MjAwNkQwMDc3OEEKKzoxMDE1QjAwMDAwNjEwMDcyMDA2NTAwMjAwMDAwMTE3MDAwMDAxMTcwRDEKKzoxMDE1QzAwMDEwNDYwMDcyMDA2MTAwNkQwMDY1MDA1NzAwNkYwMDcyRTgKKzoxMDE1RDAwMDAwMDAxMTgwMDAwMDExODAxMDZCMDA3MzAwMkEwMzQzOEIKKzoxMDE1RTAwMDAwNkYwMDZFMDA2NjAwNjkwMDAwMTE5MDAwMDAxMTkwMEQKKzoxMDE1RjAwMDEwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwNkYwMDZFNzIKKzoxMDE2MDAwMDAwMDAxMUEwMDAwMDExQTAxMDIwMDA1MzAwNzQwMDcyMEYKKzoxMDE2MTAwMDAwNjkwMDZFMDA2NzAwMjIwMzAwMTFCMDAwMDAxMUIwRTUKKzoxMDE2MjAwMDEwNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNjEwMDYzN0UKKzoxMDE2MzAwMDAwMDAxMUMwMDAwMDExQzAxMDY1MDAyMDAwNTMwMDc0QUMKKzoxMDE2NDAwMDAwNzIwMDY5MDA2RTAwNjcwMDAwMTFEMDAwMDAxMUQwMjgKKzowOTE2NTAwMDAyMDAwMDAwMDAwMDAwMDAwMDhGCis6MDAwMDAwMDFGRgorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICAgICB3aGl0ZWhlYXQuaCAgLS0gIENvbm5lY3RUZWNoIFdoaXRlSEVBVCBGaXJtd2FyZS4KKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwMC0yMDAyICBDb25uZWN0VGVjaCBJbmMgKGh0dHA6Ly93d3cuY29ubmVjdHRlY2guY29tLykKKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICAgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICAgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogICAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICAgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICAgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisgKgorICogKDEwLzA5LzIwMDIpIFN0dWFydCBNYWNEb25hbGQKKyAqCUZpcm13YXJlIDQuMDYKKyAqCisgKiAoMDQvMDkvMjAwMCkgZ2toCisgKglVcGRhdGVkIHRoZSBmaXJtd2FyZSB3aXRoIHRoZSBsYXRlc3QgcHJvdmlkZWQgYnkgQ29ubmVjdFRlY2guCisgKgorICogKDAxLzE2LzIwMDApIGdraAorICoJRml4ZWQgbXkgaW50ZWwgaGV4IHByb2Nlc3NpbmcgdG9vbCwgc28gbm93IHRoZSBmaXJtd2FyZSBhY3R1YWxseQorICoJbWF0Y2hlcyB0aGUgb3JpZ2luYWwgZmlsZSAodGhpcyB3YXMgY2F1c2luZyBhIGZldyBwcm9ibGVtcy4uLikKKyAqCisgKiAoMDEvMTUvMjAwMCkgZ2toCisgKglBZGRlZCBkZWJ1ZyBsb2FkZXIgZmlybXdhcmUgaWYgREVCVUcgaXMgI2RlZmluZWQ6CisgKgkJUG9ydCAxIExFRCBmbGFzaGVzIHdoZW4gdGhlIHZlbmRfYXggcHJvZ3JhbSBpcyBydW5uaW5nCisgKgkJUG9ydCAyIExFRCBmbGFzaGVzIHdoZW4gYW55IFNFVFVQIGNvbW1hbmQgYXJyaXZlcworICoJCVBvcnQgMyBMRUQgZmxhc2hlcyB3aGVuIGFueSB2YWxpZCBWRU5ET1IgcmVxdWVzdCBvY2N1cnMKKyAqCQlQb3J0IDQgTEVEIGZsYXNoZXMgd2hlbiB0aGUgRVhURVJOQUwgUkFNIERPV05MT0FEIHJlcXVlc3Qgb2NjdXJzCisgKgorICogdmVyc2lvbiAxLjAgKDAxLzA5LzIwMDApIGdraAorICoJT3JpZ2luYWwgZmlybXdhcmUgZnJvbSBDb25uZWN0VGVjaCBtYXNzYWdlZCBhIGxpdHRsZSB0byBiZSBwcm9ncmFtCisgKglyZWFkYWJsZS4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgd2hpdGVoZWF0X0RBVEUgIjIwMDAwMTA2IgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUveWFtYWhhL2RzMV9jdHJsLmZ3LmloZXggYi9maXJtd2FyZS95YW1haGEvZHMxX2N0cmwuZncuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTliMWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUveWFtYWhhL2RzMV9jdHJsLmZ3LmloZXgKQEAgLTAsMCArMSw3NjkgQEAKKzoxMDAwMDAwMDA3MDAwMDAwMDcwMDI0MDAwNzAwMEMwMDA3MDAxQzAwODgKKzoxMDAwMTAwMDA3MDAwNjAwMDIwMDcwMDAyMDAwMDAwMDQwMDAwMzAwRkUKKzoxMDAwMjAwMDA0NzEwMDAwODY0MjAwMDA0MDAwMDMwMDBEMEYwMDAwMzQKKzoxMDAwMzAwMDEwMDgwMDAwM0EwNDIwMDA4MjAyMDAwMDBEMDIwMDAwQjcKKzoxMDAwNDAwMDEwMDgwMDAwM0EwNDIwMDA4MjEyMDAwMDgyMEUyMDAwRjYKKzoxMDAwNTAwMDgyMUEwMDAwMEQyRDAzMDAxMDA4MDAwMDNBMDQxMDAwNjEKKzoxMDAwNjAwMDhERDMwMjAwMTAwODAwMDAzQTA0MTgwMDBEMDEwMDAwQjIKKzoxMDAwNzAwMDE1MDAwMjAwRkQwMDAwMDAyMDAwMDAwMDYwODgwMzAwNjEKKzoxMDAwODAwMDYwOTAwMzAwNjA4MDAzMDA0MDgwMDMwMDQwODAwMzAwMTQKKzoxMDAwOTAwMDQwODAwMzAwNDA4MDAxMDA3RDBBMDAwMDQwODAwMzAwOTIKKzoxMDAwQTAwMDQwODAwMzAwNDA4MDAxMDAwMjA0MjAwMDgyMDgwMDAwMUMKKzoxMDAwQjAwMDFBMDAwODAwMDQwOTAwMDA4NjU5MDEwMDA3MDAwMDAwMkEKKzoxMDAwQzAwMDA3MDAyNjAwMDcwMDAwMDAwNzAwMDAwMDA2OEEwMTAwNjQKKzoxMDAwRDAwMDA3MDAwMDAwOEQwQzAzMDAxMDA4MDAwMDNBMDQxODAwMEYKKzoxMDAwRTAwMDA3MDAyNjAwN0QwODAwMDA0MjgwMDEwMDBBMTYwMDAwN0IKKzoxMDAwRjAwMDA2QTIwNDAwMDcwMDAwMDA4RDIxMDAwMDEwMDgwMDAwODcKKzoxMDAxMDAwMDNBMDQwODAwMDZDMjIxMDAwNzAwMDAwMEZEMDcwMDAwQjUKKzoxMDAxMTAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2OTMwMjAwRTIKKzoxMDAxMjAwMDk1MDEwMDAwMDQwRDA5MDAwNzAwMDAwMDIwMDgwMDAwRjAKKzoxMDAxMzAwMEY1MDAwMDAwN0QwQjAwMDA2MEYwMDEwMEZEMDAwMDAwRjQKKzoxMDAxNDAwMDA2MjIwMzAwNDA4MDAxMDA3RDBBMDAwMDQyODAwMzAwNzcKKzoxMDAxNTAwMDRBODAxMzAwMEEwMDE4MDAyMDE4MDAwMDYwOTAwNTAwNzMKKzoxMDAxNjAwMDYwODgwNTAwNDA4MDAxMDBGRDAwMDAwMDQyODAwMTAwMjEKKzoxMDAxNzAwMDBBMDA3MDAwMTUwMTAwMDA0NDExMDcwMDg2MjMwMzAwRTcKKzoxMDAxODAwMDAwMDAwMzAwMjA3MDAwMDAwNjRBMDMwMDQwODAwMTAwQzgKKzoxMDAxOTAwMDhEMzQwMDAwMTAwODAwMDAzQTA0MDgwMDA2RUEyMTAwMkYKKzoxMDAxQTAwMDA3MDAwMDAwOEREMzAyMDAxMDA4MDAwMDNBMDQxODAwNzgKKzoxMDAxQjAwMDA2ODIwMTAwMDcwMDAwMDAwNzAwMjQwMDhEMEYwMDAwRTgKKzoxMDAxQzAwMDEwMDgwMDAwM0ExNjAwMDAwMjI0MDAwMDAyNUMwMDAwNDMKKzoxMDAxRDAwMEZEMjgwMDAwMjAwMDAwMDA0MDgwMDEwMDBEMDAwODAwMDQKKzoxMDAxRTAwMDE1MDgwMDAwODQwOTUxMDAwNzAwMDAwMDREMDAwMDAwQzAKKzoxMDAxRjAwMDVEMEUwMDAwMDIwRTAwMDA4RDQxMDAwMDEwMDgwMDAwOUUKKzoxMDAyMDAwMDNBMDQwODAwMDY4QTJDMDAwNzAwMDAwMDhEMDAwMDAwNTgKKzoxMDAyMTAwMDI0MDkwMDAwMDIwRjAwMDA4RDQ1MDAwMDEwMDgwMDAwQjYKKzoxMDAyMjAwMDNBMDQwODAwMDY4QTJDMDAwNzAwMDAwMDdEMzgwMDAwMTAKKzoxMDAyMzAwMDQyODAwMTAwMEEwMDA4MDAxNTEwMDAwMDg0MDkwMTAwMzYKKzoxMDAyNDAwMDg2ODMwMTAwMDcwMDAwMDAwNkFBMDEwMDA3MDAwMDAwRTUKKzoxMDAyNTAwMEZEMDgwMDAwNDI4MDAxMDAwQTAwMTgwMDA0MTkwMDAwOTcKKzoxMDAyNjAwMDg2ODAyMTAwMDcwMDI4MDAxMDE4MDAwMDNBMDQyODAwQUEKKzoxMDAyNzAwMDAyMEMyODAwMEQwMDAwMDAxMDA4MDAwMDNBMTQyODAwQUQKKzoxMDAyODAwMDhEODAwODAwMjAwODAwMDBGRDAyMDAwMDQwODAwMTAwNzEKKzoxMDAyOTAwMDA3MDAyMDAwMEQwMjAwMDAwNDk5MTgwMDA3MDAwMDAwNkMKKzoxMDAyQTAwMDJENDAwMDAwQkQwMDAwMDBGRDAyMDAwMDQyODAwMTAwNjIKKzoxMDAyQjAwMDBBMDAwODAwMDQwOTAwMDA4NjVBMDUwMDA3MDAwMDAwMzMKKzoxMDAyQzAwMDAwMDEwMDAwMjAwQTAwMDA3RDA0MDAwMDQwODAwMTAwQzEKKzoxMDAyRDAwMDQyODAwMTAwMEEwMDIwMDAxNTMwMDAwMDQ0MjEwMTAwODYKKzoxMDAyRTAwMDg2NDkwMzAwMDcwMDAwMDAwNDIxMDAwMDg2NDkwMzAwM0UKKzoxMDAyRjAwMDA3MDAwMDAwOEQwRjAwMDAxMDA4MDAwMDNBMEMyODAwRDUKKzoxMDAzMDAwMDQ0MzkwMjAwODZDOTA2MDAwNzAwMDAwMDEwMTgwMDAwRUEKKzoxMDAzMTAwMDNBMDQyODAwMEQ4MTA4MDAyMDA4MDAwMEZEMDIwMDAwQkEKKzoxMDAzMjAwMDQwODAwMTAwMDcwMDIwMDAxMDI4MDAwMDNBMDA3ODAwRkIKKzoxMDAzMzAwMDhENjgwMDAwMTAwODAwMDAzQTA0MDgwMDA2OEEyODAwQjIKKzoxMDAzNDAwMDA3MDAwMDAwMEQ0MDAwMDAxNTEwMDAwMDA0OTkxODAwN0YKKzoxMDAzNTAwMDA0MjkyOTAwMDQzOTM5MDAwNzAwMDAwMDA2MDIwNjAwQkMKKzoxMDAzNjAwMDA3MDAwMDAwRjUwNDAwMDA3RDAwMDAwMDIwMDAwMDAwRjAKKzoxMDAzNzAwMDhEMDAwMDAwNjAwODAxMDA0MDgwMDEwMDdEMDQwMDAwNDUKKzoxMDAzODAwMDQyODAwMzAwNEE4MDIxMDAwQTAwMTgwMDQ0MTkwMjAwM0MKKzoxMDAzOTAwMDg2NTgyMTAwMDcwMDAwMDA3NTQwMDAwMDA0RjE3MTAwM0MKKzoxMDAzQTAwMDA3MDAwMDAwNDIwMDAxMDAwQTAwMjgwMDA0MjkwMDAwQTQKKzoxMDAzQjAwMDg2MjAyMTAwMDcwMDAwMDAwRDNDMDAwMDA0QTkzMDAwNDkKKzoxMDAzQzAwMDA3MDAwMDAwN0QwNzAwMDA0MjgwMDEwMDBBMDAwODAwQ0QKKzoxMDAzRDAwMDA0MDkwMDAwODZEQTA3MDA3RDA1MDAwMDIwMjgwMDAwREYKKzoxMDAzRTAwMDYwQjAwMzAwMDZGMjA3MDA0MDgwMDEwMDIwMzAwMDAwRUEKKzoxMDAzRjAwMDYwQTgwMzAwNDA4MDAxMDBGRDAyMDAwMDQyODAwMTAwNkYKKzoxMDA0MDAwMDBBMDAwODAwMDQwOTAwMDA4NkZBMDcwMDA3MDAwMDAwM0YKKzoxMDA0MTAwMDdEMDUwMDAwNDI4MDAxMDAwQTA0MjgwMDhEMEUwMDAwQzYKKzoxMDA0MjAwMDEwMDgwMDAwM0EwQzI4MDAwRDAwMDAwMDEwMDgwMDAwMjEKKzoxMDA0MzAwMDNBMTQyODAwMEQwMDA5MDAyMDA4MDAwMEZEMDIwMDAwMDkKKzoxMDA0NDAwMDQwODAwMTAwMDcwMDIwMDBGRDNEMDAwMDIwMDAwMDAwNkEKKzoxMDA0NTAwMDQwODAwMTAwN0QxMDAwMDA4RDhEMDAwMDEwMDgwMDAwMUMKKzoxMDA0NjAwMDNBMDQwODAwMDY4QTI4MDAwNzAwMDAwMDE1MDgwMDAwNkEKKzoxMDA0NzAwMDFBMDAwODAwODQwOTAxMDA4NjUxMDkwMDdEMTMwMDAwNUMKKzoxMDA0ODAwMDAwMDUyMDAwMjAwRjI4MDA2MDhGMzMwMDYwOEYzQjAwQTQKKzoxMDA0OTAwMDYwOEY0MzAwNjA4RjRCMDA2MDhGNTMwMDYwOEY1QjAwNjQKKzoxMDA0QTAwMDYwOEEwMzAwNDA4MDAxMDBCRDdGMDAwMEM0M0QzODAwMjkKKzoxMDA0QjAwMDA3MDAwMDAwN0QxQTAwMDA3NTEzMDAwMDQyODAwMTAwNTMKKzoxMDA0QzAwMDRBMDAwOTAwMEEwMDEwMDAwNDhEMEIwMDA0OTUxMzAwNzcKKzoxMDA0RDAwMDA3MDAwMDAwMjAwODAwMDA2MDkwMDEwMDA0MTEwMDAwRTcKKzoxMDA0RTAwMDg2MjAyMTAwNDAwMDAxMDBGRDE3MDAwMDQyODAwMTAwMkQKKzoxMDA0RjAwMDBBMDAwODAwMDQwOTAwMDA4NjIyMjEwMDA3MDAwMDAwMEQKKzoxMDA1MDAwMDdEMTkwMDAwNDI4MDAzMDA0QTgwMDkwMDBBMDAxMDAwQTMKKzoxMDA1MTAwMDI0MDkwMDAwNjQxNjAwMDBGRDExMDAwMDQyODAwMzAwNjEKKzoxMDA1MjAwMDRBODAyQjAwNEE4MDE5MDA4RDAwMDAwMDQ0ODkyMTAwNzgKKzoxMDA1MzAwMDA3MDAwMDAwNDQyMjAwMDA4NkUxMEEwMDA3MDAwMDAwRDYKKzoxMDA1NDAwMDY0MUEwMDAwMjQyQTAwMDA3RDE5MDAwMDAyMDEwODAwM0UKKzoxMDA1NTAwMDIyMDExMDAwMjAwODAwMDA2MDkwMDMwMDQwODAwMTAwOEMKKzoxMDA1NjAwMEZEM0QwMDAwOEQwMDAwMDAyMDA4MDAwMDQwODAwMTAwREIKKzoxMDA1NzAwMDc1MTMwMDAwN0QxQTAwMDA0MjAwMDEwMDRBODAwOTAwNDYKKzoxMDA1ODAwMDBBMDAxMDAwMUQwMjAwMDBFNDg5MDEwMEU0OTIyOTAwMjUKKzoxMDA1OTAwMDQ0OTEzMDAwMDcwMDAwMDAwRDA2MDAwMDE1MEEwMDAwMUQKKzoxMDA1QTAwMDFEMEMwMDAwMjUxMDAwMDBFNEE5MDAwMEU0MkIwMTAwNTAKKzoxMDA1QjAwMDY0MDQwMDAwRTRCMzAxMDBFNDMyMDIwMDY0MDQwMDAwQkIKKzoxMDA1QzAwMDY0MDQwMDAwNjQwNDAwMDA2NDA0MDAwMDBEMDQwMDAwRTIKKzoxMDA1RDAwMEM0QjEwODAwMDcwMDAwMDAyMDA4MDAwMEY1MEIwMDAwNkYKKzoxMDA1RTAwMDQwMDAwMzAwN0QxOTAwMDA0MjgwMDMwMDRBODAwOTAwOUEKKzoxMDA1RjAwMDI0MEEwMDAwMEEwMDA4MDA2NDBFMDgwMDA3MDAwMDAwM0EKKzoxMDA2MDAwMDIyMDExMDAwMjAwODAwMDA2MDEwMDMwMDQwMDAwMTAwREIKKzoxMDA2MTAwMEFDNjQwMDAwN0QwMjAwMDAyMDAwMDAwMDQwODAwMTAwNkEKKzoxMDA2MjAwMDdEMTAwMDAwNDI4MDAxMDBGRDExMDAwMDRBODAzQjAwNjcKKzoxMDA2MzAwMDRBODAwOTAwMEEwMDIwMDA5NTAwMDAwMDQ0MTExQTAwQjkKKzoxMDA2NDAwMDQ0QTEwMDAwODYyMDBEMDAwRDA0MDAwMDg0QjkwMDAwQzQKKzoxMDA2NTAwMDg2MjEwRDAwRkQxODAwMDA0MjgwMDEwMEZEMTAwMDAwMDEKKzoxMDA2NjAwMDRBODAwOTAwMEEwMDI4MDA5NTAwMDAwMDI0MDkwMTAwQzIKKzoxMDA2NzAwMDY0MkEwMDAwODYxMTBEMDAwNzAwMDAwMDA0MjkwMDAwMTQKKzoxMDA2ODAwMDg2MjIwRDAwMDcwMDAwMDAwNjJBMEQwMDAyMDAwODAwNjcKKzoxMDA2OTAwMDhEMDAwMDAwN0QzODAwMDAyMDA4MDAwMDQwODAwMTAwMkYKKzoxMDA2QTAwMDdEMTIwMDAwNDI4MDAxMDAwQTAwMTAwMDA0MzkwMDAwQTEKKzoxMDA2QjAwMDg2RDEwRDAwMEQwODAwMDBCNUZGN0YwMDg0QjkwMDAwNTEKKzoxMDA2QzAwMDg2QTEwRDAwMjUwMDAwMDAwNjdBMEUwMDJEMDAwMDAwMTYKKzoxMDA2RDAwMDE1MDAwMDAwMkQwODAwMDA4REM3MDIwMDIwMDgwMDAwNTIKKzoxMDA2RTAwMDA2QzIwRTAwMEQwMDAwMDAzNTgwN0YwMDg0QjkwMDAwQjYKKzoxMDA2RjAwMDg2NzEwRTAwMjUwMDQwMDA4RDAwMDAwMDQ0MDkxMTAwQTUKKzoxMDA3MDAwMDA3MDAwMDAwOEQwMTAwMDAwNDk1MTAwMDA3MDAwMDAwQTQKKzoxMDA3MTAwMDY0OTEwMDAwMjQwNDAwMDAyNDA0MDAwMDI0MDQwMDAwNkMKKzoxMDA3MjAwMDAyMDExMDAwMDIwMDI4MDA4REM2MDIwMDIwMDgwMDAwMEYKKzoxMDA3MzAwMDA2QzIwRTAwOEQwMTAwMDAyRDA0MDAwMDhEMDAwMDAwOTcKKzoxMDA3NDAwMDA0OTUxMDAwMDcwMDAwMDAwRDAyMDAwMDg0OTExMDAwQzUKKzoxMDA3NTAwMDA3MDAwMDAwMERDNzAyMDAyMDA4MDAwMDhEMDAwMDAwMDcKKzoxMDA3NjAwMEZEMzgwMDAwNDA4MDAxMDBGRDNCMDAwMDIwMTAwMDAwMkIKKzoxMDA3NzAwMDYwQTgwMzAwMTUwODAwMDA4NDMxMzEwMDg0MjEyMTAwQTUKKzoxMDA3ODAwMDA3MDAwMDAwNjBCMDAzMDA2MEEwMDMwMDQwODAwMTAwOEIKKzoxMDA3OTAwMEZEMjIwMDAwOTUwMDAwMDAyNDA5MDEwMDI0MDQwMDAwNEYKKzoxMDA3QTAwMDI0MDQwMDAwNjQxMjAwMDAwMjAxMTAwMDIwMDgwMDAwNzAKKzoxMDA3QjAwMDYwOTAwMzAwNDA4MDAxMDAyNDE5MDAwMDhERkIwMDAwQzAKKzoxMDA3QzAwMDdEMzkwMDAwMjAwODAwMDA0MDgwMDUwMDQyODAwMzAwQzEKKzoxMDA3RDAwMDRBODQwOTAwMDYwNjAwMDAwQTA0MDgwMDI0MDQwMDAwRjgKKzoxMDA3RTAwMDI0MDQwMDAwN0QxMTAwMDA0MjgwMDEwMDBBMDAwODAwN0UKKzoxMDA3RjAwMDI0MEEwMDAwMDIwNTI4MDAwMjBDMjgwMDBEODAwOTAwRDAKKzoxMDA4MDAwMDIwMDgwMDAwRkQwMjAwMDA0MDgwMDEwMDA3MDAyMDAwRDkKKzoxMDA4MTAwMEZEMjIwMDAwNDI4MDAxMDAwQTAwMDgwMDk1MDAwMDAwNEYKKzoxMDA4MjAwMEM0MEQyODAwMjQxOTAxMDA3RDE5MDAwMDQyODAwMTAwMzgKKzoxMDA4MzAwMEZEMTEwMDAwNEE4MDA5MDAwQTAwMTAwMEI1MDAwMDAwMDgKKzoxMDA4NDAwMDQ0MzExMTAwMDQ4RDBBMDAwNzAwMDAwMDQ0MEEwODAwMkEKKzoxMDA4NTAwMDA0OTUxMjAwMDcwMDAwMDBGRDIzMDAwMDIwMTAwMDAwOTYKKzoxMDA4NjAwMDQwODAwMzAwNDQxMjEwMDAwNzAwMDAwMDIwMDgwMDAwMzAKKzoxMDA4NzAwMDYwOTAwMzAwNDA4MDAxMDBGRDAyMDAwMDQyODAwMTAwMDIKKzoxMDA4ODAwMDBBMDAwODAwMDQwOTAwMDA4NkZBMTAwMDA3MDAwMDAwQjIKKzoxMDA4OTAwMEZEM0IwMDAwMDAwMTAwMDAxMDBBMDAwMDdBODAwQjAwMDAKKzoxMDA4QTAwMDRBODAxMzAwODQwOTA5MDAwNzAwMDAwMDk1MDAwMDAwMzkKKzoxMDA4QjAwMDA0M0QwMTAwODY4MDExMDAwQTAwMTAwMDAyMDAxMDAwQjMKKzoxMDA4QzAwMDg0MDkwOTAwMDcwMDAwMDA0MjgwMDMwMDRBODAxMTAwRUIKKzoxMDA4RDAwMDA0MEQwOTAwMDcwMDAwMDAwQTAwMTAwMDg0MEQwOTAwNDMKKzoxMDA4RTAwMDA3MDAwMDAwN0QyNTAwMDAyMDA4MDAwMDQwODAwMTAwNzYKKzoxMDA4RjAwMDBEMDEwMDAwMTAwODAwMDAzQTE0MjgwMDdEMTIwMDAwQ0QKKzoxMDA5MDAwMDQyODAwMTAwMEEwMDIwMDA3RDE5MDAwMDQyODAwMTAwQTEKKzoxMDA5MTAwMDdEMTEwMDAwNEE4MDMxMDAwQTAwMTAwMDI0MzEwMDAwREYKKzoxMDA5MjAwMDBEMjgwMTAwN0QzOTAwMDAyMDA4MDAwMDQwODAwNTAwRUUKKzoxMDA5MzAwMDQyODAwMzAwNEE4NDA5MDAwNjA2MDAwMDBBMDQwODAwRjkKKzoxMDA5NDAwMDAyMDEzMDAwMjQzMTAwMDAyNDA0MDAwMDI0MDQwMDAwQ0YKKzoxMDA5NTAwMDI0MTIwMDAwMDIwNTI4MDA0QzFBMDAwMDg2MDExMzAwMzIKKzoxMDA5NjAwMDAyMDA3MDAwMkQwMDAwMDAwMDAwMDMwMDdEMzgwMDAwMzAKKzoxMDA5NzAwMDQyODAwMTAwMEEwMDEwMDAwNjJBMTMwMDI0MjEwMDAwMTIKKzoxMDA5ODAwMEFEMDAwMDAwMDIwMDEwMDAwRDAxMDAwMDI0MDkwMDAwNkQKKzoxMDA5OTAwMDI0NkIwMDAwOEQzNjAxMDA3RDM5MDAwMDIwMDgwMDAwMjYKKzoxMDA5QTAwMDQwODAwNTAwNDI4MDAzMDA0QTg0MDkwMDA2MDYwMDAwREEKKzoxMDA5QjAwMDBBMDQwODAwNjQzMjAwMDA4RDAwMDAwMDI0MEEwMDAwRDAKKzoxMDA5QzAwMDIwMTAwMDAwN0QyMjAwMDA0MDgwMDEwMDBEM0MwMTAwNEQKKzoxMDA5RDAwMDEwMDgwMDAwM0EwNDA4MDAwNkQyMjkwMDA3MDAwMDAwQjEKKzoxMDA5RTAwMDIwMjgwMDAwN0QyMDAwMDA0MDgwMDEwMDdEMTEwMDAwRDMKKzoxMDA5RjAwMDQyODAwMzAwNEE4MDEzMDAwQTgwMzMwMDdEMzgwMDAwRTMKKzoxMDBBMDAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2M0ExNjAwMkUKKzoxMDBBMTAwMDA3MDAwMDAwOEQwMDAwMDA2NDA5MDMwMDhENDcwMTAwRkQKKzoxMDBBMjAwMDdEMzkwMDAwMjAwODAwMDA0MDgwMDUwMDQyODAwMzAwNUUKKzoxMDBBMzAwMDRBODQwOTAwMDYwNjAwMDAwQTA0MDgwMDAyMDEzODAwODIKKzoxMDBBNDAwMDI0MDQwMDAwMjQwNDAwMDAyNDEyMDAwMEZEMDIwMDAwMjEKKzoxMDBBNTAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2QTIxNDAwNzgKKzoxMDBBNjAwMDA3MDAwMDAwMDIwNTI4MDA0QzFBMDAwMDg2MzkxNjAwMTUKKzoxMDBBNzAwMDA3MDAwMDAwNjQyMTAzMDAyQzYzMDAwMEZEM0QwMDAwMUUKKzoxMDBBODAwMDQyODAwMTAwMEEwMDA4MDA5NTAwMDAwMDA0MDkwOTAwRTYKKzoxMDBBOTAwMDA3MDAwMDAwMjAwODAwMDA0QzFBMDAwMDg2NjExNTAwQzUKKzoxMDBBQTAwMDQwODAwMTAwMDAwMDAzMDAwNjdBMTUwMDI0MjEwMDAwQTgKKzoxMDBBQjAwMDBEMDEwMDAwMjQwOTAwMDAyNDZCMDAwMDhENUIwMTAwODMKKzoxMDBBQzAwMDdEMzkwMDAwMjAwODAwMDA0MDgwMDUwMDQyODAwMzAwQkUKKzoxMDBBRDAwMDRBODQwOTAwMDYwNjAwMDAwQTA0MDgwMDY0M0EwMDAwN0YKKzoxMDBBRTAwMDk1MDAwMDAwMjQxMjAwMDBGRDAyMDAwMDQyODAwMTAwNzkKKzoxMDBBRjAwMDBBMDAwODAwMDQwOTAwMDA4NkRBMTUwMDA3MDAwMDAwNUIKKzoxMDBCMDAwMDhENjIwMTAwMTAwODAwMDAzQTA0MDgwMDA2RDIyOTAwOTYKKzoxMDBCMTAwMDA3MDAwMDAwMDZEMjE0MDAwNzAwMDAwMDIwNzAwMDAwNEIKKzoxMDBCMjAwMDBBMDEwODAwMkEwMTEwMDBGRDIwMDAwMDYwODgwMzAwNkYKKzoxMDBCMzAwMDYwOTAwMzAwNDA4MDAxMDA3RDIyMDAwMDQyODAwMTAwOUYKKzoxMDBCNDAwMEZEM0QwMDAwMEEwMDA4MDA0QTg0MzEwMDA0MDkwMDAwNEQKKzoxMDBCNTAwMDg2RDgxNjAwOEIwMDE4MDA4RDAwMDAwMDA0OTkxODAwM0MKKzoxMDBCNjAwMDJDMzEwMDAwMDZBQTE3MDAwNzAwMDAwMDRDMzIwMDAwREMKKzoxMDBCNzAwMDg2MzMxNzAwMDcwMDAwMDAwNDE5MDAwMDg2MzAxNzAwQjQKKzoxMDBCODAwMDA3MDAwMDAwOTUwMDAwMDA0NDkxMTkwMDJDMjIwMDAwOEQKKzoxMDBCOTAwMDI0MzEwMDAwNkM2MzAwMDAzRDBFMDAwMDc1MTMwMDAwNUUKKzoxMDBCQTAwMEZEMEIwMDAwNDIwMDAxMDA0QTgwMDkwMDBBMDAxMDAwMEQKKzoxMDBCQjAwMEVDOEEwMzAwRUM5MzAzMDA0QzIyMDAwMDg2QTkxNzAwODYKKzoxMDBCQzAwMDA3MDAwMDAwOEQwMDAwMDAwNDk5MTgwMDZDMjIwMDAwNEUKKzoxMDBCRDAwMDJDMzIwMDAwMEEwNTMwMDBBQjFEMzAwMDgzMjAwMDAwREQKKzoxMDBCRTAwMEZEMTgwMDAwNDI4MDAxMDAwQTAwMDgwMDI0ODkwMTAwNkQKKzoxMDBCRjAwMDAyMDUzMDAwODMxMDAwMDA3NTE4MDAwMDQyMDAwMTAwNUIKKzoxMDBDMDAwMDBBMDAxMDAwOEQwMDAwMDAyNDA5MDEwMDc1MTMwMDAwODcKKzoxMDBDMTAwMDQyMDUzMzAwQ0IwQzMzMDBDQjJDMzMwMENCMzQzMzAwRjQKKzoxMDBDMjAwMENCM0MzMzAwQ0I0NDMzMDBDQjRDMzMwMENCNTQzMzAwQUMKKzoxMDBDMzAwMDhCNUMzMDAwODM2MDAwMDBGNTAyMDAwMDQyMDAwMTAwODAKKzoxMDBDNDAwMDBBMDAwODAwMDQwOTAwMDA4NjdBMTgwMDA3MDAwMDAwNjYKKzoxMDBDNTAwMDJEMUUwMDAwRkQwNTAwMDA0MjgwMDEwMDBBMDAwODAwNzIKKzoxMDBDNjAwMDI0ODkwMjAwMDIwNTI4MDAwRDA2MDAwMDEwMDgwMDAwN0IKKzoxMDBDNzAwMDNBMEMyODAwOEQwMDAwMDAxMDA4MDAwMDNBMTQyODAwRUIKKzoxMDBDODAwMDhEODAwQTAwMjAwODAwMDBGNTAyMDAwMDQwMDAwMTAwRUQKKzoxMDBDOTAwMDA3MDAyMjAwNzUxMjAwMDA0MjAwMDMwMDRBMDAyMTAwRjQKKzoxMDBDQTAwMDhEMDAwMDAwNDQwOTFBMDAwNzAwMDAwMDBEOTgwMTAwQTMKKzoxMDBDQjAwMDEwMDgwMDAwM0EwNDA4MDAwNjIyMkIwMDA3MDAwMDAwN0MKKzoxMDBDQzAwMEY1MDEwMDAwNDIwMDAzMDA0QTAwMEQwMDBBMDAxMDAwNzgKKzoxMDBDRDAwMDQ0OTEwODAwMDcwMDAwMDAyMDA4MDAwMDQwMDAwMTAwQzcKKzoxMDBDRTAwMEY1MjUwMDAwNDQzMTBBMDAwNzAwMDAwMDIwMDgwMDAwM0MKKzoxMDBDRjAwMDYwMjgwMzAwNDAwMDAzMDA3RDIxMDAwMDQyODAwMzAwQzMKKzoxMDBEMDAwMDRBODAwQjAwMEEwMDEwMDAyMDA4MDAwMDYwMTAwMzAwNTkKKzoxMDBEMTAwMDQwMDAwMzAwOEQwMDAwMDAyNDAxMDAwMDJDMDEwMDAwQjEKKzoxMDBEMjAwMDY0MEUwMDAwNjQxQTAwMDA2QzYzMDAwMDBBMDEwODAwRjEKKzoxMDBEMzAwMDJBMDExMDAwMjAwODAwMDA2MDEwMDMwMDQwMDAwMzAwOUEKKzoxMDBENDAwMEZEMjAwMDAwNDI4MDAxMDAwQTAwMDgwMDdEMjIwMDAwMTIKKzoxMDBENTAwMDQyODAwMTAwMEEwMDEwMDAyMDA4MDAwMDYwMTAwMzAwMUIKKzoxMDBENjAwMDQwMDAwMzAwN0QxOTAwMDA0MjgwMDEwMDBBMDAwODAwRDUKKzoxMDBENzAwMEZEMjIwMDAwNDI4MDAzMDAwQTAwMTAwMDIwMDgwMDAwNEQKKzoxMDBEODAwMDYwMTAwMzAwNDAwMDAzMDAwNDBEMDkwMDA3MDAwMDAwOEMKKzoxMDBEOTAwMDIwMDgwMDAwNDAwMDAzMDA0MjgwMDMwMDRBODAwQjAwNEUKKzoxMDBEQTAwMDBBMDAxMDAwMjAwODAwMDA2MDEwMDMwMDQwMDAwMzAwNEIKKzoxMDBEQjAwMDQyODAwMzAwNEE4MDEzMDA0QTgwMTkwMDA0MEQxMTAwOEMKKzoxMDBEQzAwMDA0OEQxOTAwMDcwMDAwMDAwQTAwMDgwMDIwMTAwMDAwMzAKKzoxMDBERDAwMDYwMTgwMzAwNjAwODAzMDA0MDAwMDMwMDhEMDAwMDAwNUQKKzoxMDBERTAwMDQ0MDkwQjAwMDcwMDAwMDAyMDA4MDAwMDQwMDAwMTAwM0IKKzoxMDBERjAwMEY1MDUwMDAwNDIwMDAzMDAwQTAwMDgwMDIwMDgwMDAwN0EKKzoxMDBFMDAwMDQwMDAwMTAwRjUwMDAwMDA0MjAwMDEwMDBBMDAwODAwNTcKKzoxMDBFMTAwMDA0MDkwMDAwODY2MDFDMDA3NTFFMDAwMDQyMDAwMzAwRUIKKzoxMDBFMjAwMDRBMDQwMTAwMEEwQzAwMDAwNjcyMUMwMDA3MDAwMDAwQzIKKzoxMDBFMzAwMDAyMDQwMDAwMDIwQzAwMDA3RDE3MDAwMEY1MUEwMDAwRkIKKzoxMDBFNDAwMDQyODAwMTAwNEExNDAzMDA0QTFDMDMwMDRBMjQwMzAwQTQKKzoxMDBFNTAwMDRBMkMwMzAwNEEzNDAzMDA0QTNDMDMwMDRBNDQwMzAwN0UKKzoxMDBFNjAwMDBBNEMwMDAwM0QwNDAwMDBGNTEzMDAwMEZEMUEwMDAwQ0MKKzoxMDBFNzAwMDQyMDAwMzAwNEEwMDBCMDA0QTgwMUIwMDRBODAxMzAwMTYKKzoxMDBFODAwMDBBMDAyMDAwNDQ5MTA4MDA0NEExMTkwMEU0ODkwMzAwRUQKKzoxMDBFOTAwMEVDOTkwMzAwMDI1NTAwMDAwQTVEMDAwMDQyMDAwMzAwQzcKKzoxMDBFQTAwMDRBMDAwQjAwNEE4MDFCMDA0QTgwMTMwMDBBMDAyMDAwMDEKKzoxMDBFQjAwMDQ0OTEwODAwNDRBMTE5MDBFNDg5MDMwMEVDOTkwMzAwNUYKKzoxMDBFQzAwMDAyNjUwMDAwMEE2RDAwMDA0MjAwMDMwMDRBMDAwQjAwQUEKKzoxMDBFRDAwMDRBMDAxOTAwNEE4MDJCMDA0QTgwMTMwMDRBODAyMTAwRjIKKzoxMDBFRTAwMDBBMDAzMDAwNDQ5MTA4MDA0NEExMTkwMDQ0QjEyQTAwQ0UKKzoxMDBFRjAwMEU0ODkwMzAwRUM5OTAzMDAwMjc1MDAwMDBBN0QwMDAwRkMKKzoxMDBGMDAwMEU0QTkwMzAwMDIwNzAwMDA3RDEwMDAwMDE1MDQwMDAwQTIKKzoxMDBGMTAwMDQyODAwMTAwMEEwMDA4MDBFNDA5MDEwMDAyMEYwMDAwRkQKKzoxMDBGMjAwMEY1MkEwMDAwRkQxOTAwMDA0MjAwMDEwMDRBODAwOTAwNzYKKzoxMDBGMzAwMDBBMDAxMDAwMzQwOTAwMDA3NDE2MDAwMEY1MjkwMDAwQjIKKzoxMDBGNDAwMDQyMDAwMTAwMEEwMDEwMDA3QzkxMDAwMDc1MjAwMDAwQTIKKzoxMDBGNTAwMDQyMDAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2RDIxRTAwQjkKKzoxMDBGNjAwMEY1MjYwMDAwRjUyNzAwMDA0MjAwMDMwMDRBMDAwOTAwQjIKKzoxMDBGNzAwMDBBMDAxMDAwM0MwQTAwMDA3QzE2MDAwMDc1MUEwMDAwRjAKKzoxMDBGODAwMEZEMEIwMDAwNDIwMDAxMDA0QTgwNTEwMDBBMDA0ODAwQTkKKzoxMDBGOTAwMDA3MDAxNjAwNzUxMDAwMDA0MjAwMDEwMDBBMkMyODAwMEUKKzoxMDBGQTAwMDEyMUQyODAwMTIyNTI4MDAzMjFGMDAwMDA3MDAxRTAwMTUKKzoxMDBGQjAwMDA3MDAwRTAwNzUxOTAwMDA0MjAwMDEwMEY1MkQwMDAwMjkKKzoxMDBGQzAwMDRBMDAwRDAwMEEwMDEwMDA0NDkxMDAwMDg2QjIxRjAwODQKKzoxMDBGRDAwMDQyMDAwMTAwMEEzNDI4MDA1RDBFMDAwMDhEMDAwMDAwNzAKKzoxMDBGRTAwMDc1MDMwMDAwMjAwODAwMDA0MDAwMDEwMEY0RDIwNTAwNTUKKzoxMDBGRjAwMDA0RDE1NDAwNUM3MzAwMDA4NjUzMjAwMDA3MDAwMDAwRjkKKzoxMDEwMDAwMDA3MDAwQzAwMDcwMDA4MDAwNzAwMEEwMDBEMDQwMjAwOUEKKzoxMDEwMTAwMDEwMDgwMDAwM0EwNDA4MDAwNjIyMzMwMDA3MDAwMDAwMTAKKzoxMDEwMjAwMDA2NUEyMDAwMDcwMDAwMDAwNzAwMDgwMDc1MjIwMDAwOTMKKzoxMDEwMzAwMDQyMDAwMTAwMEEwMDIwMDAwNDIxMDAwMDg2MjAyMTAwNTcKKzoxMDEwNDAwMDJEMUUwMDAwRjUwMjAwMDA0MjAwMDEwMDBBMDAwODAwMDkKKzoxMDEwNTAwMDA0MDkwMDAwODY5MjIwMDAwNzAwMDAwMDEwMjAwMDAwMTQKKzoxMDEwNjAwMDNBMDQzMDAwN0QwNTAwMDBDMzgwMDEwMDBBMDAwODAwM0EKKzoxMDEwNzAwMDI0ODkwMjAwMDIwNTI4MDAwMjBDMjgwMDBEODEwQTAwQzQKKzoxMDEwODAwMDIwMDgwMDAwRjUwMjAwMDA0MDAwMDEwMDA3MDAyMjAwRDcKKzoxMDEwOTAwMEZEMDQwMDAwNDI4MDAxMDAwQTAwNzAwMDAwMDAwMzAwMEYKKzoxMDEwQTAwMDIwNzAwMDAwMDZGQTA2MDA0MDgwMDEwMDBEMTgwMjAwQzIKKzoxMDEwQjAwMDEwMDgwMDAwM0EwNDA4MDAwNjIyMkIwMDA3MDAwMDAwNzgKKzoxMDEwQzAwMEZEMDIwMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwM0YKKzoxMDEwRDAwMDg2OEEyMTAwMDcwMDAwMDAwNkYyMDEwMDA3MDAwMDAwRDgKKzoxMDEwRTAwMDc1MDgwMDAwRkQwOTAwMDAwRDAxMDAwMDA2MEEyMjAwM0QKKzoxMDEwRjAwMDk1MDIwMDAwNzUwQjAwMDA3RDA5MDAwMDBEMDAwMDAwNDYKKzoxMDExMDAwMDE1MDUwMDAwNDIwMDAxMDAwQTAwMTgwMDA0MTkwMDAwNDMKKzoxMDExMTAwMDg2NzgyODAwRjUwNjAwMDAyMDEwMDAwMDQwMDAwMTAwM0QKKzoxMDExMjAwMEY1MDQwMDAwMjAwODAwMDA0MDAwMDEwMDc1MDcwMDAwRTEKKzoxMDExMzAwMDQyMDAwMTAwNEE4MDA5MDAwQTAwMTAwMDI0MTEwMDAwNEEKKzoxMDExNDAwMDA0MDkwMDAwODZCQTIyMDAxNTA4MDAwMDAyMDEwODAwMDgKKzoxMDExNTAwMDA0MTIxMDAwMDZEQTIyMDA3NTA1MDAwMDA0MTIwODAwQ0YKKzoxMDExNjAwMDA3MDAwMDAwMDIwMTEwMDA3NTA1MDAwMDI1MDQwMDAwQzIKKzoxMDExNzAwMDI0MTEwMjAwMDIwMTEwMDAyMDA4MDAwMDYwMTAwMzAwOEEKKzoxMDExODAwMDQwMDAwMTAwMjQxOTAwMDA4Njc4MjgwMDhEMDAwMDAwMkUKKzoxMDExOTAwMDY0MDQwMDAwMDQ5RDAwMDA4Njg4MjcwMDAyMDExODAwRjYKKzoxMDExQTAwMDc1MDUwMDAwNDIwMDAxMDAwQTA0MjgwMDhEMDEwMDAwQkUKKzoxMDExQjAwMDI0MDkwMDAwMDIwRDI4MDAwRDAwMDAwMDI0MDkwMDAwOTEKKzoxMDExQzAwMDAyMTUyODAwMEQwMDEwMDAyMDA4MDAwMEY1MDIwMDAwQTQKKzoxMDExRDAwMDQwMDAwMTAwMDcwMDIwMDA3NTExMDAwMEZEMDIwMDAwMjIKKzoxMDExRTAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2QzIyMzAwQjIKKzoxMDExRjAwMDA3MDAwMDAwMDAwMTAwMDAyMDBCMDgwMDYwMEIxMzAwMzYKKzoxMDEyMDAwMDYwMEIxQjAwNjAwQTAzMDA0MDAwMDEwMDQyMDAwNTAwNjMKKzoxMDEyMTAwMDRBMDAzRDAwNEEwMDM1MDA0QTAwMkQwMDBBMDAyMDAwMjcKKzoxMDEyMjAwMEY1MDYwMDAwNDIwMDAxMDAwQTE0MjgwMEY1MDQwMDAwNDEKKzoxMDEyMzAwMDQyMDAwMTAwMEEwMDA4MDAxNTAzMDAwMDA0MEQwMTAwMkYKKzoxMDEyNDAwMDg2Q0EyNDAwMTU0MDAwMDA5NTAwMDAwMDA0MEQwMTAwMkUKKzoxMDEyNTAwMDg2QjgyNDAwMjIwMDEwMDAyQTAwMTAwMDA2RTIyNDAwQjQKKzoxMDEyNjAwMDA3MDAwMDAwMDQzMTMzMDAwNEE5MkEwMDA3MDAwMDAwMzEKKzoxMDEyNzAwMDI0MjEwMzAwMDIwNTI4MDAyNDExMDAwMDI0MDQwMDAwOUEKKzoxMDEyODAwMDI0MDQwMDAwMjQzMjAwMDAyQzI5MDAwMDZDNjMwMDAwQkMKKzoxMDEyOTAwMDg2RjMyNTAwMDcwMDAwMDA2NEIxMDIwMDY0MDQwMDAwMkEKKzoxMDEyQTAwMDY0MDQwMDAwOEQwMDAwMDA2NDBBMDAwMDAyMEQyODAwQTQKKzoxMDEyQjAwMDhEMDAxMDAwMjAwODAwMDBGNTAyMDAwMDQwMDAwMTAwMzEKKzoxMDEyQzAwMDA3MDAyMjAwOEQwMDAwMDAwNEI5MzgwMDA3MDAwMDAwNkMKKzoxMDEyRDAwMDZDMjkwMzAwMEEwMTMwMDBGNTAyMDAwMDQyMDAwMTAwMDEKKzoxMDEyRTAwMDBBMDAwODAwMDQwOTAwMDA4NkJBMjUwMDA3MDAwMDAwNzMKKzoxMDEyRjAwMDJDMzEwMjAwMEEwNTI4MDA4RDAwMDAwMDZDMDkwMTAwNTUKKzoxMDEzMDAwMDBBMEQyODAwMEQwMTEwMDAyMDA4MDAwMEY1MDIwMDAwNjEKKzoxMDEzMTAwMDQwMDAwMTAwMDcwMDIyMDAyNDExMDAwMDI0MDQwMDAwMDYKKzoxMDEzMjAwMDI0MDQwMDAwMjQzMjAwMDAwMjAxMzAwMDQ0MjkwMzAwOUMKKzoxMDEzMzAwMDg2N0EyNjAwMDcwMDAwMDAwMjAwMzAwMEY1MDQwMDAwNTUKKzoxMDEzNDAwMDQyMDAwMTAwMEEwMDA4MDAxNTAzMDAwMDA0MEQwMTAwMUUKKzoxMDEzNTAwMDg2QzAyNjAwMjQzMTAwMDA2NDA0MDAwMDAyMDEzMDAwMzEKKzoxMDEzNjAwMEY1MDIwMDAwNDIwMDAxMDAwQTAwMDgwMDA0MDkwMDAwMjQKKzoxMDEzNzAwMDg2Q0EyNjAwMDcwMDAwMDAyNDMxMDAwMDAyMDUzMDAwNjQKKzoxMDEzODAwMDI0MzkwMDAwODMwNTMwMDA4MzA4MDAwMEY1MDUwMDAwQzMKKzoxMDEzOTAwMDQyMDAwMTAwMEEwNDI4MDA4RDAwMDAwMDI0ODEwMDAwQTIKKzoxMDEzQTAwMDAyMEQyODAwOEQwMDAwMDAyNDgxMDAwMDAyMTUyODAwOTUKKzoxMDEzQjAwMDhEMDExMDAwMjAwODAwMDBGNTAyMDAwMDQwMDAwMTAwMkYKKzoxMDEzQzAwMDA3MDAyMjAwMjUxMDAwMDA3NTA1MDAwMDQyMDAwMzAwMDAKKzoxMDEzRDAwMDRBMDAwOTAwMEEwMDEwMDAwNDA5MEEwMDA0MTExMjAwNjIKKzoxMDEzRTAwMDA3MDAwMDAwMjAxMDAwMDA2MDA4MDUwMDQwMDAwNTAwMTQKKzoxMDEzRjAwMEZEMDYwMDAwNDI4MDAxMDA0QTAwMDkwMDBBMDAxMDAwQkEKKzoxMDE0MDAwMEE1MDAwMDAwMDQwOTBBMDAwNDExMTIwMDA3MDAwMDAwRjIKKzoxMDE0MTAwMDIwMDgwMDAwNjA5MDAxMDA0MDAwMDEwMEY1MDIwMDAwN0IKKzoxMDE0MjAwMDQyMDAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2NDIyODAwNkEKKzoxMDE0MzAwMDA3MDAwMDAwMDYwQTIzMDAwNzAwMDAwMDA2MDYwMDAwNUYKKzoxMDE0NDAwMDA3MDAwMDAwRjUwMjAwMDA0MjAwMDEwMDBBMDAwODAwNDkKKzoxMDE0NTAwMDA0MDkwMDAwODY5MjI4MDAwNzAwMDAwMDAwMDEwMDAwMzcKKzoxMDE0NjAwMDIwMEIwODAwNjA4QjEzMDA2MDhCMUIwMDYwOEIyMzAwMzcKKzoxMDE0NzAwMDYwOEIyQjAwNjA4QjMzMDA2MDhCM0IwMDYwOEI0MzAwRTQKKzoxMDE0ODAwMDYwOEI0QjAwNjA4QjUzMDA2MDhCNUIwMDYwOEI2MzAwNTQKKzoxMDE0OTAwMDYwOEI2QjAwNjA4QjczMDA2MDhCN0IwMDYwOEYwMzAwNDAKKzoxMDE0QTAwMDYwOEYwQjAwNjA4RjEzMDA2MDhGMUIwMDYwOEYyMzAwMjQKKzoxMDE0QjAwMDYwOEYyQjAwNjA4RjMzMDA2MDhGM0IwMDYwOEY0MzAwOTQKKzoxMDE0QzAwMDYwOEY0QjAwNjA4RjUzMDA2MDhGNUIwMDYwOEY2MzAwMDQKKzoxMDE0RDAwMDYwOEY2QjAwNjA4RjczMDA2MDhGN0IwMDYwOEEwMzAwRjkKKzoxMDE0RTAwMDA2MDYwMDAwNDA4MDAxMDA4RDAwMDAwMDY0MEEwMDAwMzQKKzoxMDE0RjAwMDAyMEQyODAwMjQwQTAwMDA3RDAyMDAwMDQyODAwMTAwNDUKKzoxMDE1MDAwMDBBMDAxMDAwMjQxMjAwMDBGRDAzMDAwMDQyODAwMTAwQzgKKzoxMDE1MTAwMDBBMDAwODAwMDQwOTAwMDA4NjgyMkEwMDA3MDAwMDAwNzMKKzoxMDE1MjAwMDhEMDEwMDAwMjQwQTAwMDA2NDA0MDAwMDY0MDQwMDAwMkYKKzoxMDE1MzAwMDAyMDEwODAwMjQwOTAwMDAyNDA0MDAwMDI0MDQwMDAwMjMKKzoxMDE1NDAwMDAyMDExMDAwMEQwMDAyMDA0NDkxMDAwMDg2RDkyQTAwMUIKKzoxMDE1NTAwMDA3MDAwMDAwRkQwMTAwMDA0MjgwMDEwMDBBMDAwODAwQjEKKzoxMDE1NjAwMDQ0MEEwMDAwODZCQjJBMDA0MjgwMDEwMDBEMDAwQTAwRTgKKzoxMDE1NzAwMDIwMDgwMDAwRkQwMjAwMDA0MDgwMDEwMDA3MDAyMDAwNUMKKzoxMDE1ODAwMDdEMDIwMDAwMjAxMDAwMDAwNjA2MDAwMDQwODAwMTAwREYKKzoxMDE1OTAwMEY1MDIwMDAwNDIwMDAxMDAwQTAwMDgwMDA0MDkwMDAwRjIKKzoxMDE1QTAwMDg2MkEyQjAwMDcwMDAwMDA3RDAzMDAwMDQyODAwMTAwMTYKKzoxMDE1QjAwMDBBMDAwODAwMDQwOTAwMDA4NjVBMkIwMDA3MDAwMDAwRkEKKzoxMDE1QzAwMDc1MDAwMDAwN0QyRTAwMDA0MjAwMDEwMDRBODAwQjAwRTMKKzoxMDE1RDAwMDIwMDAwMDAwMDQwOTAwMDA4NjA2MDAwMDQwMDAwMTAwMTEKKzoxMDE1RTAwMDRBODQzMTAwOEIwNDMwMDA4MzA4MDAwMDhEMDAwMDAwMjUKKzoxMDE1RjAwMDEwMDgwMDAwM0ExNDI4MDA4RDAwMDAwMDEwMDgwMDAwQjgKKzoxMDE2MDAwMDNBMEMyODAwNzUwNjAwMDA0MjAwMDEwMDBBMDAwODAwOUMKKzoxMDE2MTAwMDE1MzgwMDAwMjQwOTAxMDAwMjA1MjgwMDBEMDAwQjAwMDgKKzoxMDE2MjAwMDIwMDgwMDAwRjUwMjAwMDA0MDAwMDEwMDA2MDYwMDAwNEUKKzoxMDE2MzAwMDA3MDAyMjAwNjQwNDAwMDA2NDA0MDAwMDA2MDYwMDAwQTUKKzoxMDE2NDAwMDA3MDAwMDAwMzQwMTAwMDA4RDdGMDAwMDNDMDkwMDAwMEQKKzoxMDE2NTAwMDEyMUQyODAwMTIyNTI4MDAzMjFGMDAwMDA3MDAwRTAwNkUKKzoxMDE2NjAwMDBEMDEwMDAwN0QwMzAwMDAyMDA4MDAwMDQwODAwMTAwMDMKKzoxMDE2NzAwMEY0RDIwNTAwMDcwMDAwMDAwNzAwMDgwMDdEMDMwMDAwMDkKKzoxMDE2ODAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDg2MDIyRDAwQzMKKzoxMDE2OTAwMDA3MDAwMDAwMDYwNjAwMDAwNzAwMDAwMDA3MDAwMDAwMjkKKzoxMDE2QTAwMDEyMDAwMDAwMDcwMDEwMDAwNzAwMzIwMDA3MDA2MDAwNzEKKzoxMDE2QjAwMDgwMDAxMDAwMUEwMDQ4MDAwNDQ5MDAwMDg2NjEyRDAwRDcKKzoxMDE2QzAwMDA3MDAwMDAwMTAxMjAwMDAzQTAwNTgwMDQ1MDEwMDAwMTkKKzoxMDE2RDAwMDA0NUQ1QzAwMDcwMDAwMDA4MDAwMDAwMDFBMDA0ODAwNjQKKzoxMDE2RTAwMDA0NDkwMDAwODZCMTJEMDAwNzAwMDAwMDEwMTIwMDAwMjAKKzoxMDE2RjAwMDNBMDA1MDAwMDQ1OTAwMDA4NjA4MkUwMDQ1MDAwMDAwMDIKKzoxMDE3MDAwMEM1MDAwMDAwRjVGRjdGMDA3REZGN0YwMDI0RDUwNzAwQTYKKzoxMDE3MTAwMDI0NDIwMDAwMDIwMTUwMDAwMjA1MjAwMDgyMDAwMDAwNjcKKzoxMDE3MjAwMDFBMDA0MDAwMDQ0MTAwMDA4NjM5MkUwMDA3MDAwMDAwMjYKKzoxMDE3MzAwMDY1MzgwMDAwMUEwMDQwMDAyMDQwMDAwMDREMTAwMDAwRjUKKzoxMDE3NDAwMDg0QzEwNDAwODYxQjMwMDA0MDAwMDAwMDA3MDAwNDAwMzQKKzoxMDE3NTAwMDY1MDEwMDAwNDUwMTAwMDAyMDQwMDAwMDQwMDAwMDAwM0QKKzoxMDE3NjAwMDY1MDcwMDAwODAwMDA4MDAxQTAwNDAwMDA0NDEwMDAwRTYKKzoxMDE3NzAwMDg2QzkyRTAwMDcwMDAwMDAxMDEyMDAwMDNBMDA0MDAwNDkKKzoxMDE3ODAwMDA0NDEwMDAwODYyMjJGMDA0RDAwMDAwMENEMDAwMDAwMjMKKzoxMDE3OTAwMDEwNDgwMDAwM0EwNDIwMDA4MjA4MDAwMDFBMDA0MDAwQUYKKzoxMDE3QTAwMDA0NDEwMDAwODYzMTJGMDAwNzAwMDAwMDIwNDgwMDAwOUYKKzoxMDE3QjAwMDA0NTkwMDAwODYwODMwMDA0MDAwMDAwMEU1MDcwMDAwRTIKKzoxMDE3QzAwMDgwMDQyMDAwQTAxNjI4MDBFMDE2MzIwMEUwMTYzQTAwM0YKKzoxMDE3RDAwMEUwMTY0MjAwNjAxMjAyMDA0MDAwMDAwMDMyMDAwMDAwRUIKKzoxMDE3RTAwMDc1MDA0MDAwN0QwMDAwMDA3NEQ1MDcwMDEyMDUyMDAwNDAKKzoxMDE3RjAwMDgyMDAwMDAwMUEwMDQwMDAwNDQxMDAwMDg2RTEyRjAwMzIKKzoxMDE4MDAwMDA3MDAwMDAwMDY3MjAzMDAwNzAwNjQwMDA3MDAwNjAwREUKKzoxMDE4MTAwMEU1MDAwMDAwMjAwMDAwMDA0MDAwMDAwMDY1MEEwMDAwMTQKKzoxMDE4MjAwMDIwMDAwMDAwNDAwMDAyMDA0MDAwMDIwMDQwMDAwMDAwRDQKKzoxMDE4MzAwMDY1MDEwMDAwNDIwMDAwMDAwQTAwNzAwMDA0NzEwMDAwMTEKKzoxMDE4NDAwMDg2QTIzMDAwMDcwMDAwMDAwNjgyMDEwMDA3MDA2NDAwNDUKKzoxMDE4NTAwMDAwMDAwNTAwMjA3MDAwMDA0MDAwMDAwMDA2NzIwMzAwMzgKKzoxMDE4NjAwMDA3MDA2NDAwMDcwMDAwMDA2RDMwMDAwMDYwODgwMjAwN0YKKzoxMDE4NzAwMDYwOTAwMjAwMEEwMDA4MDA2MDg4MDIwMDQwODAwMDAwQkEKKzoxMDE4ODAwMDEyMDAxMDAwMEQxMDAwMDA4NDkxMDAwMDg2NDEzMTAwMEMKKzoxMDE4OTAwMDBEMEUwMDAwODQ5MTAwMDA4NjUxMzIwMDA3MDAwMDAwMDgKKzoxMDE4QTAwMDA3MDAzMDAwMjAxMDAwMDA2RDNCMDAwMDQwODAwMDAwNjkKKzoxMDE4QjAwMDgwMDAwMDAwMUEwMDA4MDAwNDA5MDAwMDg2NjEzMTAwNjEKKzoxMDE4QzAwMDA3MDAwMDAwMjAxMjAwMDBFRDBEMDAwMDQwODAwMDAwMjUKKzoxMDE4RDAwMDQyODAwMDAwMEEwMDEwMDAwRDAwNDAwMDQ0OTUxMDAwRjYKKzoxMDE4RTAwMDA3MDAwMDAwMjAxMDAwMDBFRDBEMDAwMDQwODAwMDAwMDcKKzoxMDE4RjAwMDQyODAwMDAwMEEwNDIwMDA4MjAwMDAwMDFBMDAwODAwNTQKKzoxMDE5MDAwMDA0MDkwMDAwODZGMTMxMDAwNzAwMDAwMDZEM0IwMDAwNzMKKzoxMDE5MTAwMDQyODAwMDAwMEEwMDA4MDAxNTBFMDAwMDg0MDkwMTAwNDIKKzoxMDE5MjAwMDg2OUIzMjAwMDcwMDYwMDAxQTAwMDgwMDE1MEMwMDAwQkEKKzoxMDE5MzAwMDg0MDkwMTAwODY4MzMyMDAyMDAwMDAwMDA3MDAxQTAwOUQKKzoxMDE5NDAwMEVEMDIwMDAwNDA4MDAwMDAwNzAwNjIwMDZEMzAwMDAwRTIKKzoxMDE5NTAwMDQyODAwMjAwNEE4MDBBMDAyMDA4MDAwMDRBODAwQTAwRjMKKzoxMDE5NjAwMDA2MDYwMDAwNEE4MDEwMDAwNzAwMDAwMDEyMjUyODAwMkIKKzoxMDE5NzAwMDMyMUYwMDAwRjREMjA1MDAwNEQxNTQwMDVDNzMwMDAwNTMKKzoxMDE5ODAwMDg2MDcwMDAwMDcwMDAwMDAwNzAwMEMwMDA3MDAwQTAwOUYKKzoxMDE5OTAwMDA3MDAxQzAwNjUzNDAwMDA0MDAwMDIwMDIwNDgwMDAwRTEKKzoxMDE5QTAwMDYwNTAwMjAwMEEwMDQwMDA2MDQwMDIwMDQwMDAwMDAwNTkKKzoxMDE5QjAwMDQ0NDk0NTAwMDcwMDAwMDAyMDQwMDAwMEU1M0EwMDAwQ0YKKzoxMDE5QzAwMDQwMDAwMDAwRTUyODAwMDA0MjAwMDAwMDBBMDA0ODAwMzYKKzoxMDE5RDAwMDA0NDkwMDAwODY2ODM4MDA2NTJDMDAwMDQyMDAwMDAwQzEKKzoxMDE5RTAwMDBBMDA0MDAwRDUwMDAwMDAwNDQxNDUwMDA3MDAwMDAwNDcKKzoxMDE5RjAwMDU1MDYwMDAwMDQ0NTA1MDA4NkYyMzQwMEQ1MDEwMDAwQkMKKzoxMDFBMDAwMDA0NDUwNTAwODZGMDM0MDA2NTJCMDAwMDQyMDAwMDAwMEMKKzoxMDFBMTAwMEU1M0EwMDAwNEEwMDUwMDAwQTAwNDAwMEQ0QzM0NTAwRTcKKzoxMDFBMjAwMDA3MDAwMDAwMDQ0NTQ1MDAwNzAwMDAwMENEMDAwMDAwNEQKKzoxMDFBMzAwMDQ0NDk0NDAwMDcwMDAwMDAwNDQ1NDUwMDA3MDAwMDAwMzkKKzoxMDFBNDAwMDREMDEwMDAwNDQ0OTU1MDAwNzAwMDAwMDQ0NTEwNDAwQzYKKzoxMDFBNTAwMDg2RTkzNDAwNjUyQzAwMDA0MjAwMDAwMDBBMDA0ODAwQkUKKzoxMDFBNjAwMDA0RDE0QzAwMDcwMDAwMDA0NEMxMDQwMDg2RjMzNDAwOTgKKzoxMDFBNzAwMDA3MDAwMDAwMDcwMDE2MDBFNTJDMDAwMDQyMDAwNDAwRUIKKzoxMDFBODAwMDBBMDA0MDAwMjA0MDAwMDA0MDAwMDAwMDY1MjkwMDAwREUKKzoxMDFBOTAwMDQyMDAwMDAwMEEwMDQwMDAwNDQxMDAwMDg2NjAzNTAwNUEKKzoxMDFBQTAwMDA3MDAwMDAwMDIyNDAwMDAwNkEyMzYwMDAyNUMwMDAwQ0QKKzoxMDFBQjAwMEU1MjUwMDAwNDIwMDAwMDAwQTAwNDAwMDc0NDIwMDAwREEKKzoxMDFBQzAwMEU1MkEwMDAwNDIwMDAwMDAwQTAwNDAwMDc0NDIwMDAwQzUKKzoxMDFBRDAwMDEyMDE1MDAwRTUyOTAwMDA0MjAwMDAwMDBBMDA0MDAwMDkKKzoxMDFBRTAwMDM0NDIwMDAwMDQ0MTQ1MDAwNzAwMDAwMDIwNDAwMDAwOEYKKzoxMDFBRjAwMDQwMDAwMDAwRTUzRTAwMDAyMDAwMDAwMDQwMDAwMDAwMjMKKzoxMDFCMDAwMEU1MkQwMDAwNTIwMTQwMDAwQTAwNTAwMDQ0NTEwNDAwM0QKKzoxMDFCMTAwMDg2NEEzNjAwQzUwMDAwMDBFNTNFMDAwMDIwNDAwMDAwNzcKKzoxMDFCMjAwMDQwMDAwMDAwRTUyQjAwMDA0MjAwMDAwMDBBMDA0MDAwRDkKKzoxMDFCMzAwMDU0NDI0MDAwMDcwMDAwMDBFNTJBMDAwMDIwNDAwMDAwNTkKKzoxMDFCNDAwMDQwMDAwMDAwMzIwMTUwMDAzNDAxMDQwMDc0NTYwMDAwQ0YKKzoxMDFCNTAwMEU1MjkwMDAwNDIwMDAyMDAwQTAwNDIwMDQyMDAwMDAwQTUKKzoxMDFCNjAwMDBBMDA1MDAwN0M0MTA1MDBFNTI4MDAwMDQyMDAwMDAwMEEKKzoxMDFCNzAwMDBBMDA0ODAwQzUwMDAwMDA0NEMxNEMwMDg2MTAzNzAwMzAKKzoxMDFCODAwMEU1MjYwMDAwRTUyNzAwMDA0MjAwMDIwMDRBMDA0MDAwNzAKKzoxMDFCOTAwMDBBMDA1MDAwM0M0MjAwMDA3QzU2MDAwMEU1MjgwMDAwOEUKKzoxMDFCQTAwMDIwNDgwMDAwNDAwMDAwMDAxMjFEMjgwMDEyMjUyODAwRDcKKzoxMDFCQjAwMDcyMUYwMDAwNjUyOTAwMDA0MjAwMDAwMDBBMDA0MDAwN0EKKzoxMDFCQzAwMDA0NDEwMDAwODZBQTM3MDAwNzAwMEUwMDA3MDAxNjAwMzcKKzoxMDFCRDAwMDA3MDAxRTAwRTUzRTAwMDA0MjAwMDAwMDBBMDA0MDAwMzEKKzoxMDFCRTAwMDA0NDEwMDAwODZFODM3MDA2NTJEMDAwMDQyMDAwMDAwMzcKKzoxMDFCRjAwMDBBMzQyODAwNjUzNDAwMDA0MjAwMDIwMDRBMDA0MjAwMTYKKzoxMDFDMDAwMDIwNDAwMDAwNEEwMDRBMDA0QTAwNTAwMEY0RDIwNTAwN0IKKzoxMDFDMTAwMDA0RDE1NDAwNUM3MzAwMDA4NjUxMzgwMDA3MDAwMDAwQjYKKzoxMDFDMjAwMDA2MDYwMDAwMDcwMDA4MDAwNzAwMEMwMDA3MDAwODAwNzcKKzoxMDFDMzAwMDA3MDAwQTAwRTUwMTAwMDA0NTAwMDIwMDIwNDAwMDAwMDYKKzoxMDFDNDAwMDYwMDAwMDAwNjUwMzAwMDA0MDAwMDAwMDY1MkUwMDAwRjkKKzoxMDFDNTAwMDIwMUEwMDAwNjAxQTBBMDA0MDAwMDAwMDY1MzQwMDAwRUQKKzoxMDFDNjAwMDQyMDAwMjAwNEEwMDQyMDAyMDQwMDAwMDRBMDA0QTAwQjAKKzoxMDFDNzAwMDA2MDYwMDAwNEEwMDUwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDFDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKKzoxMDFDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQKKzoxMDFDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzoxMDFDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDFDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDFDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDFDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDFDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKKzoxMDFEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDFEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDFEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMDFENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMDFENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzoxMDFENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzoxMDFENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzoxMDFEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKKzoxMDFEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKKzoxMDFEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzoxMDFEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoxMDFEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKKzoxMDFERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKKzoxMDFERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKKzoxMDFERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzoxMDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKKzoxMDFFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzIKKzoxMDFFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjIKKzoxMDFFMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzoxMDFFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKKzoxMDFFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKKzoxMDFFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzoxMDFFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzoxMDFFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKKzoxMDFFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKKzoxMDFFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKKzoxMDFFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzoxMDFFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIKKzoxMDFFRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIKKzoxMDFFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjIKKzoxMDFFRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTIKKzoxMDFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDEKKzoxMDFGMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzEKKzoxMDFGMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjEKKzoxMDFGMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTEKKzoxMDFGNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTEKKzoxMDFGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEKKzoxMDFGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzEKKzoxMDFGNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjEKKzoxMDFGODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTEKKzoxMDFGOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDEKKzoxMDFGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEKKzoxMDFGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjEKKzoxMDFGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTEKKzoxMDFGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKKzoxMDFGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjEKKzoxMDFGRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTEKKzoxMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAKKzoxMDIwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAKKzoxMDIwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKKzoxMDIwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKKzoxMDIwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAKKzoxMDIwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKKzoxMDIwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzAKKzoxMDIwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzoxMDIwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAKKzoxMDIwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAKKzoxMDIwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAKKzoxMDIwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKKzoxMDIwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAKKzoxMDIwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzoxMDIwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAKKzoxMDIwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTAKKzoxMDIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKKzoxMDIxMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkYKKzoxMDIxMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUYKKzoxMDIxMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUYKKzoxMDIxNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEYKKzoxMDIxNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0YKKzoxMDIxNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkYKKzoxMDIxNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKKzoxMDIxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKKzoxMDIxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKKzoxMDIxQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKKzoxMDIxQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKKzoxMDIxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKKzoxMDIxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKKzoxMDIxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDIxRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDIyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDIyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKKzoxMDIyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDIyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDIyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDIyNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKKzoxMDIyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKKzoxMDIyODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzoxMDIyOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKKzoxMDIyQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKKzoxMDIyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKKzoxMDIyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKKzoxMDIyRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKKzoxMDIyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKKzoxMDIyRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKKzoxMDIzMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDIzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDIzMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDIzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDIzNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDIzNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDIzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDIzODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDIzOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDIzQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDIzQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDIzQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDIzRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDIzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDIzRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzoxMDI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0MKKzoxMDI0MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkMKKzoxMDI0MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUMKKzoxMDI0MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUMKKzoxMDI0NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMKKzoxMDI0NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0MKKzoxMDI0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzoxMDI0NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUMKKzoxMDI0ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEMKKzoxMDI0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0MKKzoxMDI0QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzoxMDI0QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUMKKzoxMDI0QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMKKzoxMDI0RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkMKKzoxMDI0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzoxMDI0RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREMKKzoxMDI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0IKKzoxMDI1MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkIKKzoxMDI1MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUIKKzoxMDI1MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUIKKzoxMDI1NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEIKKzoxMDI1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0IKKzoxMDI1NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkIKKzoxMDI1NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUIKKzoxMDI1ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEIKKzoxMDI1OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0IKKzoxMDI1QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkIKKzoxMDI1QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUIKKzoxMDI1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIKKzoxMDI1RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkIKKzoxMDI1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUIKKzoxMDI1RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREIKKzoxMDI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0EKKzoxMDI2MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkEKKzoxMDI2MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUEKKzoxMDI2MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUEKKzoxMDI2NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEEKKzoxMDI2NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0EKKzoxMDI2NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkEKKzoxMDI2NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUEKKzoxMDI2ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEEKKzoxMDI2OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0EKKzoxMDI2QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkEKKzoxMDI2QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUEKKzoxMDI2QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEKKzoxMDI2RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkEKKzoxMDI2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUEKKzoxMDI2RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREEKKzoxMDI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzkKKzoxMDI3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjkKKzoxMDI3MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTkKKzoxMDI3MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTkKKzoxMDI3NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODkKKzoxMDI3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzkKKzoxMDI3NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjkKKzoxMDI3NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTkKKzoxMDI3ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDkKKzoxMDI3OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzkKKzoxMDI3QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjkKKzoxMDI3QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTkKKzoxMDI3QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkKKzoxMDI3RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjkKKzoxMDI3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTkKKzoxMDI3RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDkKKzoxMDI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzgKKzoxMDI4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjgKKzoxMDI4MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTgKKzoxMDI4MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTgKKzoxMDI4NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODgKKzoxMDI4NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzgKKzoxMDI4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjgKKzoxMDI4NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTgKKzoxMDI4ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDgKKzoxMDI4OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzgKKzoxMDI4QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgKKzoxMDI4QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTgKKzoxMDI4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgKKzoxMDI4RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjgKKzoxMDI4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTgKKzoxMDI4RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDgKKzoxMDI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzcKKzoxMDI5MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjcKKzoxMDI5MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTcKKzoxMDI5MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTcKKzoxMDI5NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODcKKzoxMDI5NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzcKKzoxMDI5NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjcKKzoxMDI5NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTcKKzoxMDI5ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDcKKzoxMDI5OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzcKKzoxMDI5QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcKKzoxMDI5QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTcKKzoxMDI5QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcKKzoxMDI5RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjcKKzoxMDI5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzoxMDI5RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDcKKzoxMDJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzYKKzoxMDJBMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjYKKzoxMDJBMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzoxMDJBMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTYKKzoxMDJBNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODYKKzoxMDJBNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzYKKzoxMDJBNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzoxMDJBNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTYKKzoxMDJBODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDYKKzoxMDJBOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzYKKzoxMDJBQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzoxMDJBQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTYKKzoxMDJBQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYKKzoxMDJBRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjYKKzoxMDJBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzoxMDJBRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDYKKzoxMDJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzUKKzoxMDJCMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjUKKzoxMDJCMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzoxMDJCMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUKKzoxMDJCNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODUKKzoxMDJCNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKKzoxMDJCNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzoxMDJCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTUKKzoxMDJCODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDUKKzoxMDJCOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzUKKzoxMDJCQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzoxMDJCQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTUKKzoxMDJCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUKKzoxMDJCRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjUKKzoxMDJCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzoxMDJCRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDUKKzoxMDJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzQKKzoxMDJDMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjQKKzoxMDJDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzoxMDJDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTQKKzoxMDJDNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQKKzoxMDJDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKKzoxMDJDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzoxMDJDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKKzoxMDJDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQKKzoxMDJDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzoxMDJDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDJDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDJDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDJDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDJDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDJDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDJEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDJEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMDJEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMDJENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzoxMDJENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzoxMDJENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzoxMDJENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKKzoxMDJEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKKzoxMDJEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzoxMDJEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoxMDJEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKKzoxMDJEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKKzoxMDJERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKKzoxMDJERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzoxMDJERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKKzoxMDJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzIKKzoxMDJFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjIKKzoxMDJFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzoxMDJFMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKKzoxMDJFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKKzoxMDJFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzoxMDJFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzoxMDJFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKKzoxMDJFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKKzoxMDJFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKKzoxMDJFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzoxMDJFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIKKzoxMDJFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIKKzoxMDJFRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjIKKzoxMDJFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTIKKzoxMDJFRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKKzoxMDJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzEKKzoxMDJGMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjEKKzoxMDJGMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTEKKzoxMDJGMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTEKKzoxMDJGNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEKKzoxMDJGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzEKKzoxMDJGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjEKKzoxMDJGNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTEKKzoxMDJGODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDEKKzoxMDJGOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEKKzoxMDJGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjEKKzoxMDJGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTEKKzoxMDJGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKKzoxMDJGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjEKKzoxMDJGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTEKKzoxMDJGRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDEKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS95YW1haGEvZHMxX2RzcC5mdy5paGV4IGIvZmlybXdhcmUveWFtYWhhL2RzMV9kc3AuZncuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2IwYmE0Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUveWFtYWhhL2RzMV9kc3AuZncuaWhleApAQCAtMCwwICsxLDkgQEAKKzoxMDAwMDAwMDgxMDAwMDAwQTQwMTAwMDAwQTAwMDAwMDJGMDAwMDAwOTEKKzoxMDAwMTAwMDUzMDIwODAwMTcwMzgwMDE3QjQwMDAwMDNGODQwMDAwNkEKKzoxMDAwMjAwMDNDNDgwMTAwM0M5NDAxMDAzQ0Q4MDUwMDNDMUMwMDAwMDkKKzoxMDAwMzAwMDdCQzAwMDAwM0YwQzA1MDAzQzUwMjEwMTAwMDAwMDAwODcKKzoxMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKKzoxMDAwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKKzoxMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAKKzoxMDAwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS95YW1haGEvZHMxZV9jdHJsLmZ3LmloZXggYi9maXJtd2FyZS95YW1haGEvZHMxZV9jdHJsLmZ3LmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk3ZjQyOQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3lhbWFoYS9kczFlX2N0cmwuZncuaWhleApAQCAtMCwwICsxLDc2OSBAQAorOjEwMDAwMDAwMDcwMDAwMDAwNzAwMjQwMDA3MDAwQzAwMDcwMDFDMDA4OAorOjEwMDAxMDAwMDcwMDA2MDAwMjAwNzAwMDIwMDAwMDAwNDAwMDAzMDBGRQorOjEwMDAyMDAwMDQ3MTAwMDA4NjQyMDAwMDQwMDAwMzAwMEQwRjAwMDAzNAorOjEwMDAzMDAwMTAwODAwMDAzQTA0MjAwMDgyMDIwMDAwMEQwMjAwMDBCNworOjEwMDA0MDAwMTAwODAwMDAzQTA0MjAwMDgyMTIwMDAwODIwRTIwMDBGNgorOjEwMDA1MDAwMEQ4MDAwMDAxMDA4MDAwMDNBMDQyMDAwODIxQTAwMDAwMQorOjEwMDA2MDAwMEQ0NjAzMDAxMDA4MDAwMDNBMDQxMDAwMERFQzAyMDBEOQorOjEwMDA3MDAwMTAwODAwMDAzQTA0MTgwMDBEMDEwMDAwMTUwMDAyMDBFRAorOjEwMDA4MDAwRkQwMDAwMDAyMDAwMDAwMDYwODgwMzAwNjA5MDAzMDA3NQorOjEwMDA5MDAwNjA4MDAzMDA0MDgwMDMwMDQwODAwMzAwNDA4MDAzMDAzNAorOjEwMDBBMDAwNDA4MDAxMDA3RDBBMDAwMDQwODAwMzAwNDA4MDAzMDA4MgorOjEwMDBCMDAwNDA4MDAxMDAwMjA0MjAwMDgyMDgwMDAwMUEwMDA4MDBBRAorOjEwMDBDMDAwMDQwOTAwMDA4NjcxMDEwMDA3MDAwMDAwMDcwMDI2MDBGNworOjEwMDBEMDAwMDcwMDQwMDAwNzAwMDAwMDhEMjUwMzAwMTAwODAwMDAwNQorOjEwMDBFMDAwM0EwNDE4MDAwNzAwMjYwMDAyNDQyODAwN0QwODAwMDA5QQorOjEwMDBGMDAwNDI4MDAxMDAwQTE2MDAwMDA2QTIwNTAwMDcwMDAwMDA2OQorOjEwMDEwMDAwMDcwMDQ0MDAwRDIzMDAwMDEwMDgwMDAwM0EwNDA4MDAxNgorOjEwMDExMDAwMDZGQTIyMDAwNzAwMDAwMEZEMDcwMDAwNDI4MDAxMDBFRgorOjEwMDEyMDAwMEEwMDA4MDAwNDA5MDAwMDg2QUIwMjAwOTUwMTAwMDBFNworOjEwMDEzMDAwMDQwRDA5MDAwNzAwMDAwMDIwMDgwMDAwRjUwMDAwMDA4MQorOjEwMDE0MDAwN0QwQjAwMDA2MEYwMDEwMEZEMDAwMDAwMDYzQTAzMDA5NgorOjEwMDE1MDAwNDA4MDAxMDA3RDBBMDAwMDQyODAwMzAwNEE4MDEzMDBCNQorOjEwMDE2MDAwMEEwMDE4MDAyMDE4MDAwMDYwOTAwNTAwNjA4ODA1MDA1MworOjEwMDE3MDAwNDA4MDAxMDBGRDAwMDAwMDQyODAwMTAwMEEwMDcwMDA4NAorOjEwMDE4MDAwMTUwMTAwMDA0NDExMDcwMDg2M0IwMzAwMDAwMDAzMDAzNgorOjEwMDE5MDAwMjA3MDAwMDAwNjYyMDMwMDQwODAwMTAwMEQzNjAwMDA2MAorOjEwMDFBMDAwMTAwODAwMDAzQTA0MDgwMDA2MjIyMzAwMDcwMDAwMDA5RgorOjEwMDFCMDAwMERFQzAyMDAxMDA4MDAwMDNBMDQxODAwMDY5QTAxMDAzNQorOjEwMDFDMDAwMDcwMDAwMDAwNzAwMjQwMDhEMEYwMDAwMTAwODAwMDA0OQorOjEwMDFEMDAwM0ExNjAwMDAwMjI0MDAwMDAyNUMwMDAwRkQyODAwMDAyNgorOjEwMDFFMDAwMjAwMDAwMDA0MDgwMDEwMDBEMDAwODAwMTUwODAwMDBGQworOjEwMDFGMDAwODQwOTUxMDAwNzAwMDAwMDREMDAwMDAwNUQwRTAwMDA2MgorOjEwMDIwMDAwMDIwRTAwMDAwRDQzMDAwMDEwMDgwMDAwM0EwNDA4MDAzMAorOjEwMDIxMDAwMDYxMjJFMDAwNzAwMDAwMDhEMDAwMDAwMjQwOTAwMDBENworOjEwMDIyMDAwMDIwRjAwMDAwRDQ3MDAwMDEwMDgwMDAwM0EwNDA4MDAwQgorOjEwMDIzMDAwMDYxMjJFMDAwNzAwMDAwMDgwMDQ0ODAwMTAxMjAwMDA4MworOjEwMDI0MDAwM0EwNDI4MDA4RDc3MDAwMDEwMDgwMDAwM0EwQzI4MDBCRQorOjEwMDI1MDAwOEQwNjAwMDAxMDA4MDAwMDNBMTQyODAwMDI0NDI4MDAwRgorOjEwMDI2MDAwOEQyNTAzMDAxMDA4MDAwMDNBMDQxODAwOERGRjA3MDBEOAorOjEwMDI3MDAwMjAwODAwMDBGRDAyMDAwMDQwODAwMTAwMDcwMDI2MDA2OQorOjEwMDI4MDAwMDcwMDIwMDBGRDAyMDAwMDQyODAwMTAwMEEwMDA4MDA3MworOjEwMDI5MDAwMDQwOTAwMDA4NjEyMDUwMDA3MDAwMDAwMDcwMDI0MDA4MgorOjEwMDJBMDAwMERFQzAyMDAxMDA4MDAwMDNBMDQxODAwN0QzODAwMDAzMAorOjEwMDJCMDAwNDI4MDAxMDAwQTAwMDgwMDE1MTAwMDAwODQwOTAxMDBCNgorOjEwMDJDMDAwODY5QjAxMDAwNzAwMDAwMDA2QjIwMTAwMDcwMDAwMDA0NQorOjEwMDJEMDAwRkQwODAwMDA0MjgwMDEwMDBBMDAxODAwMDQxOTAwMDAxNworOjEwMDJFMDAwODZCODIyMDAwNzAwMjgwMDEwMTgwMDAwM0EwNDI4MDBGMQorOjEwMDJGMDAwMDIwQzI4MDAwRDAwMDAwMDEwMDgwMDAwM0ExNDI4MDAyRAorOjEwMDMwMDAwOEQ4MDA4MDAyMDA4MDAwMEZEMDIwMDAwNDA4MDAxMDBGMAorOjEwMDMxMDAwMDcwMDIwMDAwRDAyMDAwMDA0OTkxODAwMDcwMDAwMDBFQgorOjEwMDMyMDAwMkQ0MDAwMDBCRDAwMDAwMEZEMDIwMDAwNDI4MDAxMDBFMQorOjEwMDMzMDAwMEEwMDA4MDAwNDA5MDAwMDg2NUEwNjAwMDcwMDAwMDBCMQorOjEwMDM0MDAwMDAwMTAwMDAyMDBBMDAwMDdEMDQwMDAwNDA4MDAxMDA0MAorOjEwMDM1MDAwNDI4MDAxMDAwQTAwMjAwMDE1MzAwMDAwNDQyMTAxMDAwNQorOjEwMDM2MDAwODY2MTAzMDAwNzAwMDAwMDA0MjEwMDAwODY2MTAzMDA4RAorOjEwMDM3MDAwMDcwMDAwMDA4RDBGMDAwMDEwMDgwMDAwM0EwQzI4MDA1NAorOjEwMDM4MDAwNDQzOTAyMDA4NkM5MDcwMDA3MDAwMDAwMTAxODAwMDA2OQorOjEwMDM5MDAwM0EwNDI4MDAwRDgxMDgwMDIwMDgwMDAwRkQwMjAwMDAzQQorOjEwMDNBMDAwNDA4MDAxMDAwNzAwMjAwMDEwMjgwMDAwM0EwMDc4MDA3QgorOjEwMDNCMDAwOEQ3ODAwMDAxMDA4MDAwMDNBMDQwODAwMDYxMjJBMDA5OAorOjEwMDNDMDAwMDcwMDAwMDAwRDQwMDAwMDE1MTAwMDAwMDQ5OTE4MDBGRgorOjEwMDNEMDAwMDQyOTI5MDAwNDM5MzkwMDA3MDAwMDAwMDYwMjA3MDAzQgorOjEwMDNFMDAwMDcwMDAwMDBGNTA0MDAwMDdEMDAwMDAwMjAwMDAwMDA3MAorOjEwMDNGMDAwOEQwMDAwMDA2MDA4MDEwMDQwODAwMTAwN0QwNDAwMDBDNQorOjEwMDQwMDAwNDI4MDAzMDA0QTgwMjEwMDBBMDAxODAwNDQxOTAyMDBCQgorOjEwMDQxMDAwODY5MDIyMDAwNzAwMDAwMDc1NDAwMDAwMDRGMTcxMDA4MgorOjEwMDQyMDAwMDcwMDAwMDA0MjAwMDEwMDBBMDAyODAwMDQyOTAwMDAyMworOjEwMDQzMDAwODY1ODIyMDAwNzAwMDAwMDBEM0MwMDAwMDRBOTMwMDA4RgorOjEwMDQ0MDAwMDcwMDAwMDA3RDA3MDAwMDQyODAwMTAwMEEwMDA4MDA0QworOjEwMDQ1MDAwMDQwOTAwMDA4NkRBMDgwMDdEMDUwMDAwMjAyODAwMDA1RAorOjEwMDQ2MDAwNjBCMDAzMDAwNkYyMDgwMDQwODAwMTAwMjAzMDAwMDA2OAorOjEwMDQ3MDAwNjBBODAzMDA0MDgwMDEwMEZEMDIwMDAwNDI4MDAxMDBFRQorOjEwMDQ4MDAwMEEwMDA4MDAwNDA5MDAwMDg2RkEwODAwMDcwMDAwMDBCRQorOjEwMDQ5MDAwN0QwNTAwMDA0MjgwMDEwMDBBMDQyODAwOEQwRTAwMDA0NgorOjEwMDRBMDAwMTAwODAwMDAzQTBDMjgwMDBEMDAwMDAwMTAwODAwMDBBMQorOjEwMDRCMDAwM0ExNDI4MDAwRDAwMDkwMDIwMDgwMDAwRkQwMjAwMDA4OQorOjEwMDRDMDAwNDA4MDAxMDAwNzAwMjAwMEZEM0QwMDAwMjAwMDAwMDBFQQorOjEwMDREMDAwNDA4MDAxMDA3RDEwMDAwMDhEOUQwMDAwMTAwODAwMDA4QworOjEwMDRFMDAwM0EwNDA4MDAwNjEyMkEwMDA3MDAwMDAwMTUwODAwMDA2MAorOjEwMDRGMDAwMUEwMDA4MDA4NDA5MDEwMDg2NTEwQTAwN0QxMzAwMDBEQgorOjEwMDUwMDAwMDAwNTIwMDAyMDBGMjgwMDYwOEYzMzAwNjA4RjNCMDAyMworOjEwMDUxMDAwNjA4RjQzMDA2MDhGNEIwMDYwOEY1MzAwNjA4RjVCMDBFMworOjEwMDUyMDAwNjA4QTAzMDA0MDgwMDEwMDdEMTAwMDAwNDI4MDAxMDBDRAorOjEwMDUzMDAwMEEwMDA4MDAxNTAyMDAwMDg0MDkwMTAwODY4MTNBMDBDMworOjEwMDU0MDAwMDcwMDAwMDBCRDdGMDAwMEM0M0QzODAwMDcwMDAwMDAyOAorOjEwMDU1MDAwN0QxQTAwMDA3NTEzMDAwMDQyODAwMTAwNEEwMDA5MDA2NgorOjEwMDU2MDAwMEEwMDEwMDAwNDhEMEIwMDA0OTUxMzAwMDcwMDAwMDAyMgorOjEwMDU3MDAwMjAwODAwMDA2MDkwMDEwMDA0MTEwMDAwODY1ODIyMDA0RAorOjEwMDU4MDAwNDAwMDAxMDBGRDE3MDAwMDQyODAwMTAwMEEwMDA4MDA0MQorOjEwMDU5MDAwMDQwOTAwMDA4NjVBMjIwMDA3MDAwMDAwN0QxOTAwMDBBRgorOjEwMDVBMDAwNDI4MDAzMDA0QTgwMDkwMDBBMDAxMDAwMjQwOTAwMDA2QworOjEwMDVCMDAwNjQxNjAwMDBGRDExMDAwMDQyODAwMzAwNEE4MDJCMDBGOQorOjEwMDVDMDAwNEE4MDE5MDA4RDAwMDAwMDQ0ODkyMTAwMDcwMDAwMDBDNgorOjEwMDVEMDAwNDQyMjAwMDA4NjE5MEMwMDA3MDAwMDAwNjQxQTAwMDA4NQorOjEwMDVFMDAwMjQyQTAwMDA3RDE5MDAwMDAyMDEwODAwMjIwMTEwMDBFOQorOjEwMDVGMDAwMjAwODAwMDA2MDkwMDMwMDQwODAwMTAwRkQzRDAwMDBFNQorOjEwMDYwMDAwOEQwMDAwMDAyMDA4MDAwMDQwODAwMTAwNzUxMzAwMDBFQworOjEwMDYxMDAwN0QxQTAwMDA0MjAwMDEwMDRBODAwOTAwMEEwMDEwMDAxMworOjEwMDYyMDAwMUQwMjAwMDBFNDg5MDEwMEU0OTIyOTAwNDQ5MTMwMDA5OQorOjEwMDYzMDAwMDcwMDAwMDAwRDA2MDAwMDE1MEEwMDAwMUQwQzAwMDA1OAorOjEwMDY0MDAwMjUxMDAwMDBFNEE5MDAwMEU0MkIwMTAwNjQwNDAwMDA3MAorOjEwMDY1MDAwRTRCMzAxMDBFNDMyMDIwMDY0MDQwMDAwNjQwNDAwMDAxQQorOjEwMDY2MDAwNjQwNDAwMDA2NDA0MDAwMDBEMDQwMDAwQzRCMTA4MDAyQworOjEwMDY3MDAwMDcwMDAwMDAyMDA4MDAwMEY1MEIwMDAwNDAwMDAzMDAwOAorOjEwMDY4MDAwN0QxOTAwMDA0MjgwMDMwMDRBODAwOTAwMjQwQTAwMDAwRQorOjEwMDY5MDAwMEEwMDA4MDA2NDBFMDgwMDA3MDAwMDAwMjIwMTEwMDA5NAorOjEwMDZBMDAwMjAwODAwMDA2MDEwMDMwMDQwMDAwMTAwQUM2NDAwMDA1RQorOjEwMDZCMDAwN0QwMjAwMDAyMDAwMDAwMDQwODAwMTAwN0QxMDAwMDA0RAorOjEwMDZDMDAwNDI4MDAxMDBGRDExMDAwMDRBODAzQjAwNEE4MDA5MDA4MQorOjEwMDZEMDAwMEEwMDIwMDA5NTAwMDAwMDQ0MTExQTAwNDRBMTAwMDAwNworOjEwMDZFMDAwODY1ODBFMDAwRDA0MDAwMDg0QjkwMDAwODY1OTBFMDBFMworOjEwMDZGMDAwRkQxODAwMDA0MjgwMDEwMEZEMTAwMDAwNEE4MDA5MDA0MgorOjEwMDcwMDAwMEEwMDI4MDA5NTAwMDAwMDI0MDkwMTAwNjQyQTAwMDA2NgorOjEwMDcxMDAwODY0OTBFMDAwNzAwMDAwMDA0MjkwMDAwODY1QTBFMDBEQQorOjEwMDcyMDAwMDcwMDAwMDAwNjYyMEUwMDAyMDAwODAwOEQwMDAwMDBCNQorOjEwMDczMDAwN0QzODAwMDAyMDA4MDAwMDQwODAwMTAwN0QxMjAwMDA4QworOjEwMDc0MDAwNDI4MDAxMDAwQTAwMTAwMDA0MzkwMDAwODYwOTBGMDBGMQorOjEwMDc1MDAwMEQwODAwMDBCNUZGN0YwMDg0QjkwMDAwODZEOTBFMDBBNworOjEwMDc2MDAwMjUwMDAwMDAwNkIyMEYwMDJEMDAwMDAwMTUwMDAwMDA1QgorOjEwMDc3MDAwMkQwODAwMDAwREUwMDIwMDIwMDgwMDAwMDZGQTBGMDAxRQorOjEwMDc4MDAwMEQwMDAwMDAzNTgwN0YwMDg0QjkwMDAwODZBOTBGMDBBRAorOjEwMDc5MDAwMjUwMDQwMDA4RDAwMDAwMDQ0MDkxMTAwMDcwMDAwMDAwMgorOjEwMDdBMDAwOEQwMTAwMDAwNDk1MTAwMDA3MDAwMDAwNjQ5MTAwMDAxNgorOjEwMDdCMDAwMjQwNDAwMDAyNDA0MDAwMDI0MDQwMDAwMDIwMTEwMDBBRQorOjEwMDdDMDAwMDIwMDI4MDAwRERGMDIwMDIwMDgwMDAwMDZGQTBGMDBEQQorOjEwMDdEMDAwOEQwMTAwMDAyRDA0MDAwMDhEMDAwMDAwMDQ5NTEwMDAyNAorOjEwMDdFMDAwMDcwMDAwMDAwRDAyMDAwMDg0OTExMDAwMDcwMDAwMDBDNworOjEwMDdGMDAwOERERjAyMDAyMDA4MDAwMDhEMDAwMDAwRkQzODAwMDBBMQorOjEwMDgwMDAwNDA4MDAxMDBGRDNCMDAwMDIwMTAwMDAwNjBBODAzMDBCNAorOjEwMDgxMDAwMTUwODAwMDA4NDMxMzEwMDg0MjEyMTAwMDcwMDAwMDAwOAorOjEwMDgyMDAwNjBCMDAzMDA2MEEwMDMwMDQwODAwMTAwRkQyMjAwMDBEMgorOjEwMDgzMDAwOTUwMDAwMDAyNDA5MDEwMDI0MDQwMDAwMjQwNDAwMDBBNQorOjEwMDg0MDAwNjQxMjAwMDAwMjAxMTAwMDIwMDgwMDAwNjA5MDAzMDAwNAorOjEwMDg1MDAwNDA4MDAxMDAyNDE5MDAwMDBEMEYwMTAwN0QzOTAwMDBDNworOjEwMDg2MDAwMjAwODAwMDA0MDgwMDUwMDQyODAwMzAwNEE4NDA5MDBGRgorOjEwMDg3MDAwMDYwNjAwMDAwQTA0MDgwMDI0MDQwMDAwMjQwNDAwMDAwNgorOjEwMDg4MDAwN0QxMTAwMDA0MjgwMDEwMDBBMDAwODAwMjQwQTAwMDBENworOjEwMDg5MDAwMDIwNTI4MDAwMjBDMjgwMDBEODAwOTAwMjAwODAwMDAzNQorOjEwMDhBMDAwRkQwMjAwMDA0MDgwMDEwMDA3MDAyMDAwRkQyMjAwMDA0MgorOjEwMDhCMDAwNDI4MDAxMDAwQTAwMDgwMDk1MDAwMDAwQzQwRDI4MDBENQorOjEwMDhDMDAwMjQxOTAxMDA3RDE5MDAwMDQyODAwMTAwRkQxMTAwMDA4MworOjEwMDhEMDAwNEE4MDA5MDAwQTAwMTAwMEI1MDAwMDAwNDQzMTExMDBGMAorOjEwMDhFMDAwMDQ4RDBBMDAwNzAwMDAwMDQ0MEEwODAwMDQ5NTEyMDA2NQorOjEwMDhGMDAwMDcwMDAwMDBGRDIzMDAwMDIwMTAwMDAwNDA4MDAzMDBERQorOjEwMDkwMDAwNDQxMjEwMDAwNzAwMDAwMDIwMDgwMDAwNjA5MDAzMDA1RgorOjEwMDkxMDAwNDA4MDAxMDBGRDAyMDAwMDQyODAwMTAwMEEwMDA4MDA0MgorOjEwMDkyMDAwMDQwOTAwMDA4NjMyMTIwMDA3MDAwMDAwRkQzQjAwMDBCMQorOjEwMDkzMDAwMDAwMTAwMDAxMDBBMDAwMDdBODAwQjAwNEE4MDEzMDBCQQorOjEwMDk0MDAwODQwOTA5MDAwNzAwMDAwMDk1MDAwMDAwMDQzRDAxMDAzMworOjEwMDk1MDAwODZCODEyMDAwQTAwMTAwMDAyMDAxMDAwODQwOTA5MDA4NQorOjEwMDk2MDAwMDcwMDAwMDA0MjgwMDMwMDRBODAxMTAwMDQwRDA5MDBDNgorOjEwMDk3MDAwMDcwMDAwMDAwQTAwMTAwMDg0MEQwOTAwMDcwMDAwMDBCNQorOjEwMDk4MDAwN0QyNTAwMDAyMDA4MDAwMDQwODAwMTAwMEQwMTAwMDBDRQorOjEwMDk5MDAwMTAwODAwMDAzQTE0MjgwMDdEMTIwMDAwNDI4MDAxMDA3NworOjEwMDlBMDAwMEEwMDIwMDA3RDE5MDAwMDQyODAwMTAwN0QxMTAwMDAzNgorOjEwMDlCMDAwNEE4MDMxMDAwQTAwMTAwMDI0MzEwMDAwOEQzQjAxMDAwNAorOjEwMDlDMDAwN0QzOTAwMDAyMDA4MDAwMDQwODAwNTAwNDI4MDAzMDBCRgorOjEwMDlEMDAwNEE4NDA5MDAwNjA2MDAwMDBBMDQwODAwMDIwMTMwMDBFQgorOjEwMDlFMDAwMjQzMTAwMDAyNDA0MDAwMDI0MDQwMDAwMjQxMjAwMDAyQworOjEwMDlGMDAwMDIwNTI4MDA0QzFBMDAwMDg2MzkxNDAwMDIwMDcwMDAxRAorOjEwMEEwMDAwMkQwMDAwMDAwMDAwMDMwMDdEMzgwMDAwNDI4MDAxMDAzRQorOjEwMEExMDAwMEEwMDEwMDAwNjYyMTQwMDI0MjEwMDAwQUQwMDAwMDA0RQorOjEwMEEyMDAwMDIwMDEwMDAwRDAxMDAwMDI0MDkwMDAwMjQ2QjAwMDBFQQorOjEwMEEzMDAwMEQ0QTAxMDA3RDM5MDAwMDIwMDgwMDAwNDA4MDA1MDBCQgorOjEwMEE0MDAwNDI4MDAzMDA0QTg0MDkwMDA2MDYwMDAwMEEwNDA4MDBFOAorOjEwMEE1MDAwNjQzMjAwMDA4RDAwMDAwMDI0MEEwMDAwMjAxMDAwMDAxNQorOjEwMEE2MDAwN0QyMjAwMDA0MDgwMDEwMDhENEYwMTAwMTAwODAwMDAzMQorOjEwMEE3MDAwM0EwNDA4MDAwNjVBMkIwMDA3MDAwMDAwMjAyODAwMDA1NgorOjEwMEE4MDAwN0QyMDAwMDA0MDgwMDEwMDdEMTEwMDAwNDI4MDAzMDBCNQorOjEwMEE5MDAwNEE4MDEzMDAwQTgwMzMwMDdEMzgwMDAwNDI4MDAxMDA0NAorOjEwMEFBMDAwMEEwMDA4MDAwNDA5MDAwMDg2NzIxNzAwMDcwMDAwMDAxMQorOjEwMEFCMDAwOEQwMDAwMDA2NDA5MDMwMDBENUIwMTAwN0QzOTAwMDAxQQorOjEwMEFDMDAwMjAwODAwMDA0MDgwMDUwMDQyODAwMzAwNEE4NDA5MDA5RAorOjEwMEFEMDAwMDYwNjAwMDAwQTA0MDgwMDAyMDEzODAwMjQwNDAwMDA5MQorOjEwMEFFMDAwMjQwNDAwMDAyNDEyMDAwMEZEMDIwMDAwNDI4MDAxMDBFNgorOjEwMEFGMDAwMEEwMDA4MDAwNDA5MDAwMDg2REExNTAwMDcwMDAwMDA1QgorOjEwMEIwMDAwMDIwNTI4MDA0QzFBMDAwMDg2NzExNzAwMDcwMDAwMDAzQgorOjEwMEIxMDAwNjQyMTAzMDAyQzYzMDAwMEZEM0QwMDAwNDI4MDAxMDBDMQorOjEwMEIyMDAwMEEwMDA4MDA5NTAwMDAwMDA0MDkwOTAwMDcwMDAwMDAwMQorOjEwMEIzMDAwMjAwODAwMDA0QzFBMDAwMDg2OTkxNjAwNDA4MDAxMDAzMQorOjEwMEI0MDAwMDAwMDAzMDAwNkIyMTYwMDI0MjEwMDAwMEQwMTAwMDA4MQorOjEwMEI1MDAwMjQwOTAwMDAyNDZCMDAwMDBENkYwMTAwN0QzOTAwMDBBNgorOjEwMEI2MDAwMjAwODAwMDA0MDgwMDUwMDQyODAwMzAwNEE4NDA5MDBGQworOjEwMEI3MDAwMDYwNjAwMDAwQTA0MDgwMDY0M0EwMDAwOTUwMDAwMDAyMAorOjEwMEI4MDAwMjQxMjAwMDBGRDAyMDAwMDQyODAwMTAwMEEwMDA4MDA1QgorOjEwMEI5MDAwMDQwOTAwMDA4NjEyMTcwMDA3MDAwMDAwMEQ3NjAxMDAwRQorOjEwMEJBMDAwMTAwODAwMDAzQTA0MDgwMDA2NUEyQjAwMDcwMDAwMDA1NQorOjEwMEJCMDAwMDYwQTE2MDAwNzAwMDAwMDIwNzAwMDAwMEEwMTA4MDA2NQorOjEwMEJDMDAwMkEwMTEwMDBGRDIwMDAwMDYwODgwMzAwNjA5MDAzMDBFRgorOjEwMEJEMDAwNDA4MDAxMDA3RDIyMDAwMDQyODAwMTAwRkQzRDAwMDBCOAorOjEwMEJFMDAwMEEwMDA4MDA0QTg0MzEwMDA0MDkwMDAwODYxMDE4MDAzOQorOjEwMEJGMDAwOEIwMDE4MDA4RDAwMDAwMDA0OTkxODAwMkMzMTAwMDBCMworOjEwMEMwMDAwMDZFMjE4MDAwNzAwMDAwMDRDMzIwMDAwODY2QjE4MDA1NgorOjEwMEMxMDAwMDcwMDAwMDAwNDE5MDAwMDg2NjgxODAwMDcwMDAwMDBBMworOjEwMEMyMDAwOTUwMDAwMDA0NDkxMTkwMDJDMjIwMDAwMjQzMTAwMDA5RQorOjEwMEMzMDAwNkM2MzAwMDAzRDBFMDAwMDc1MTMwMDAwRkQwQjAwMDAwQQorOjEwMEM0MDAwNDIwMDAxMDA0QTgwMDkwMDBBMDAxMDAwRUM4QTAzMDBGQgorOjEwMEM1MDAwRUM5MzAzMDA0QzIyMDAwMDg2RTExODAwMDcwMDAwMDAxRQorOjEwMEM2MDAwOEQwMDAwMDAwNDk5MTgwMDZDMjIwMDAwMkMzMjAwMDA1NgorOjEwMEM3MDAwMEEwNTMwMDBBQjFEMzAwMDgzMjAwMDAwRkQxODAwMDA4NQorOjEwMEM4MDAwNDI4MDAxMDAwQTAwMDgwMDI0ODkwMTAwMDIwNTMwMDBBQQorOjEwMEM5MDAwODMxMDAwMDA3NTE4MDAwMDQyMDAwMTAwMEEwMDEwMDBENworOjEwMENBMDAwOEQwMDAwMDAyNDA5MDEwMDc1MTMwMDAwNDIwNTMzMDA4NworOjEwMENCMDAwQ0IwQzMzMDBDQjJDMzMwMENCMzQzMzAwQ0IzQzMzMDA5NAorOjEwMENDMDAwQ0I0NDMzMDBDQjRDMzMwMENCNTQzMzAwOEI1QzMwMDAyRgorOjEwMENEMDAwODM2MDAwMDBGNTAyMDAwMDQyMDAwMTAwMEEwMDA4MDBFNQorOjEwMENFMDAwMDQwOTAwMDA4NkIyMTkwMDA3MDAwMDAwMkQxRTAwMDA1NAorOjEwMENGMDAwRkQwNTAwMDA0MjgwMDEwMDBBMDAwODAwMjQ4OTAyMDA2RQorOjEwMEQwMDAwMDIwNTI4MDAwRDA2MDAwMDEwMDgwMDAwM0EwQzI4MDAxQgorOjEwMEQxMDAwOEQwMDAwMDAxMDA4MDAwMDNBMTQyODAwOEQ4MDBBMDBBMQorOjEwMEQyMDAwMjAwODAwMDBGNTAyMDAwMDQwMDAwMTAwMDcwMDIyMDAzQQorOjEwMEQzMDAwNzUxMjAwMDA0MjAwMDMwMDRBMDAyMTAwOEQwMDAwMDBFRgorOjEwMEQ0MDAwNDQwOTFBMDAwNzAwMDAwMDhEQUIwMTAwMTAwODAwMDBFNAorOjEwMEQ1MDAwM0EwNDA4MDAwNkFBMkMwMDA3MDAwMDAwRjUwMTAwMDA3NAorOjEwMEQ2MDAwNDIwMDAzMDA0QTAwMEQwMDBBMDAxMDAwNDQ5MTA4MDBGMAorOjEwMEQ3MDAwMDcwMDAwMDAyMDA4MDAwMDQwMDAwMTAwRjUyNTAwMDBFOQorOjEwMEQ4MDAwNDQzMTBBMDAwNzAwMDAwMDIwMDgwMDAwNjAyODAzMDAyQQorOjEwMEQ5MDAwNDAwMDAzMDA3RDIxMDAwMDQyODAwMzAwNEE4MDBCMDBEOAorOjEwMERBMDAwMEEwMDEwMDAyMDA4MDAwMDYwMTAwMzAwNDAwMDAzMDA0QgorOjEwMERCMDAwOEQwMDAwMDAyNDAxMDAwMDJDMDEwMDAwNjQwRTAwMDBFMgorOjEwMERDMDAwNjQxQTAwMDA2QzYzMDAwMDBBMDEwODAwMkEwMTEwMDA4OAorOjEwMEREMDAwMjAwODAwMDA2MDEwMDMwMDQwMDAwMzAwRkQyMDAwMDAxOAorOjEwMERFMDAwNDI4MDAxMDAwQTAwMDgwMDdEMjIwMDAwNDI4MDAxMDBDQworOjEwMERGMDAwMEEwMDEwMDAyMDA4MDAwMDYwMTAwMzAwNDAwMDAzMDBGQgorOjEwMEUwMDAwN0QxOTAwMDA0MjgwMDEwMDBBMDAwODAwRkQyMjAwMDA1OAorOjEwMEUxMDAwNDI4MDAzMDAwQTAwMTAwMDIwMDgwMDAwNjAxMDAzMDA1OAorOjEwMEUyMDAwNDAwMDAzMDAwNDBEMDkwMDA3MDAwMDAwMjAwODAwMDAzNgorOjEwMEUzMDAwNDAwMDAzMDA0MjgwMDMwMDRBODAwQjAwMEEwMDEwMDBCQgorOjEwMEU0MDAwMjAwODAwMDA2MDEwMDMwMDQwMDAwMzAwNDI4MDAzMDBGRgorOjEwMEU1MDAwNEE4MDEzMDA0QTgwMTkwMDA0MEQxMTAwMDQ4RDE5MDAwNgorOjEwMEU2MDAwMDcwMDAwMDAwQTAwMDgwMDIwMTAwMDAwNjAxODAzMDBCRQorOjEwMEU3MDAwNjAwODAzMDA0MDAwMDMwMDhEMDAwMDAwNDQwOTBCMDBERgorOjEwMEU4MDAwMDcwMDAwMDAyMDA4MDAwMDQwMDAwMTAwRjUwNTAwMDBGOAorOjEwMEU5MDAwNDIwMDAzMDAwQTAwMDgwMDIwMDgwMDAwNDAwMDAxMDA5MgorOjEwMEVBMDAwRjUwMDAwMDA0MjAwMDEwMDBBMDAwODAwMDQwOTAwMDBFQgorOjEwMEVCMDAwODY5ODFEMDA3NTFFMDAwMDQyMDAwMzAwNEEwNDAxMDBEMAorOjEwMEVDMDAwMEEwQzAwMDAwNkFBMUQwMDA3MDAwMDAwMDIwNDAwMDAzMgorOjEwMEVEMDAwMDIwQzAwMDA3RDE3MDAwMEY1MUEwMDAwNDI4MDAxMDA5RQorOjEwMEVFMDAwNEExNDAzMDA0QTFDMDMwMDRBMjQwMzAwNEEyQzAzMDA0RQorOjEwMEVGMDAwNEEzNDAzMDA0QTNDMDMwMDRBNDQwMzAwMEE0QzAwMDAwMQorOjEwMEYwMDAwM0QwNDAwMDBGNTEzMDAwMEZEMUEwMDAwNDIwMDAzMDAzQworOjEwMEYxMDAwNEEwMDBCMDA0QTgwMUIwMDRBODAxMzAwMEEwMDIwMDA5MAorOjEwMEYyMDAwNDQ5MTA4MDA0NEExMTkwMEU0ODkwMzAwRUM5OTAzMDBFRQorOjEwMEYzMDAwMDI1NTAwMDAwQTVEMDAwMDQyMDAwMzAwNEEwMDBCMDA1OQorOjEwMEY0MDAwNEE4MDFCMDA0QTgwMTMwMDBBMDAyMDAwNDQ5MTA4MDBEOAorOjEwMEY1MDAwNDRBMTE5MDBFNDg5MDMwMEVDOTkwMzAwMDI2NTAwMDAzNAorOjEwMEY2MDAwMEE2RDAwMDA0MjAwMDMwMDRBMDAwQjAwNEEwMDE5MDAwRAorOjEwMEY3MDAwNEE4MDJCMDA0QTgwMTMwMDRBODAyMTAwMEEwMDMwMDA3QQorOjEwMEY4MDAwNDQ5MTA4MDA0NEExMTkwMDQ0QjEyQTAwRTQ4OTAzMDBGNworOjEwMEY5MDAwRUM5OTAzMDAwMjc1MDAwMDBBN0QwMDAwRTRBOTAzMDAzQgorOjEwMEZBMDAwMDIwNzAwMDA3RDEwMDAwMDE1MDQwMDAwNDI4MDAxMDBDRgorOjEwMEZCMDAwMEEwMDA4MDBFNDA5MDEwMDAyMEYwMDAwRjUyQTAwMDAwMQorOjEwMEZDMDAwRkQxOTAwMDA0MjAwMDEwMDRBODAwOTAwMEEwMDEwMDBEQgorOjEwMEZEMDAwMzQwOTAwMDA3NDE2MDAwMEY1MjkwMDAwNDIwMDAxMDBFOQorOjEwMEZFMDAwMEEwMDEwMDA3QzkxMDAwMDc1MjAwMDAwNDIwMDAxMDAwMgorOjEwMEZGMDAwMEEwMDA4MDAwNDA5MDAwMDg2MEEyMDAwRjUyNjAwMDAwNworOjEwMTAwMDAwRjUyNzAwMDA0MjAwMDMwMDRBMDAwOTAwMEEwMDEwMDAxMgorOjEwMTAxMDAwM0MwQTAwMDA3QzE2MDAwMDc1MUEwMDAwRkQwQjAwMDA2MQorOjEwMTAyMDAwNDIwMDAxMDA0QTgwNTEwMDBBMDA0ODAwMDcwMDE2MDBGMworOjEwMTAzMDAwNzUxMDAwMDA0MjAwMDEwMDBBMkMyODAwMTIxRDI4MDAzMworOjEwMTA0MDAwMTIyNTI4MDAzMjFGMDAwMDA3MDAxRTAwMDcwMDBFMDBCNgorOjEwMTA1MDAwNzUxOTAwMDA0MjAwMDEwMEY1MkQwMDAwNEEwMDBEMDA0NgorOjEwMTA2MDAwMEEwMDEwMDA0NDkxMDAwMDg2RUEyMDAwNDIwMDAxMDBCRQorOjEwMTA3MDAwMEEzNDI4MDA1RDBFMDAwMDhEMDAwMDAwNzUwMzAwMDA5QQorOjEwMTA4MDAwMjAwODAwMDA0MDAwMDEwMEY0RDIwNTAwMDREMTU0MDAwMworOjEwMTA5MDAwNUM3MzAwMDA4NjhCMjEwMDA3MDAwMDAwMDcwMDBDMDAzNQorOjEwMTBBMDAwMDcwMDA4MDAwNzAwMEEwMDhEMTcwMjAwMTAwODAwMDA2MgorOjEwMTBCMDAwM0EwNDA4MDAwNkIyMzQwMDA3MDAwMDAwMDY5MjIxMDAzRQorOjEwMTBDMDAwMDcwMDAwMDAwNzAwMDgwMDc1MjIwMDAwNDIwMDAxMDAzMAorOjEwMTBEMDAwMEEwMDIwMDAwNDIxMDAwMDg2NTgyMjAwMkQxRTAwMDA3NgorOjEwMTBFMDAwRjUwMjAwMDA0MjAwMDEwMDBBMDAwODAwMDQwOTAwMDBBNworOjEwMTBGMDAwODZDQTIxMDAwNzAwMDAwMDEwMjAwMDAwM0EwNDMwMDBEQQorOjEwMTEwMDAwN0QwNTAwMDBDMzgwMDEwMDBBMDAwODAwMjQ4OTAyMDA1OAorOjEwMTExMDAwMDIwNTI4MDAwMjBDMjgwMDBEODEwQTAwMjAwODAwMDBBQQorOjEwMTEyMDAwRjUwMjAwMDA0MDAwMDEwMDA3MDAyMjAwRkQwNDAwMDA1RAorOjEwMTEzMDAwNDI4MDAxMDAwQTAwNzAwMDAwMDAwMzAwMjA3MDAwMDBERgorOjEwMTE0MDAwMDZGQTA3MDA0MDgwMDEwMDhEMkIwMjAwMTAwODAwMDAwNQorOjEwMTE1MDAwM0EwNDA4MDAwNkFBMkMwMDA3MDAwMDAwRkQwMjAwMDA2NworOjEwMTE2MDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwODZDMjIyMDAzMworOjEwMTE3MDAwMDcwMDAwMDAwNjAyMDIwMDA3MDAwMDAwNzUwODAwMDBEQQorOjEwMTE4MDAwRkQwOTAwMDAwRDAxMDAwMDA2NDIyMzAwOTUwMjAwMDA0OQorOjEwMTE5MDAwNzUwQjAwMDA3RDA5MDAwMDBEMDAwMDAwMTUwNTAwMDAyMgorOjEwMTFBMDAwNDIwMDAxMDAwQTAwMTgwMDA0MTkwMDAwODYwMDJBMDAwRAorOjEwMTFCMDAwRjUwNjAwMDAyMDEwMDAwMDQwMDAwMTAwRjUwNDAwMDBDQQorOjEwMTFDMDAwMjAwODAwMDA0MDAwMDEwMDc1MDcwMDAwNDIwMDAxMDBGNworOjEwMTFEMDAwNEE4MDA5MDAwQTAwMTAwMDI0MTEwMDAwMDQwOTAwMDBFMAorOjEwMTFFMDAwODZGMjIzMDAxNTA4MDAwMDAyMDEwODAwMDQxMjEwMDAxNgorOjEwMTFGMDAwMDYxMjI0MDA3NTA1MDAwMDA0MTIwODAwMDcwMDAwMDAxNAorOjEwMTIwMDAwMDIwMTEwMDA3NTA1MDAwMDI1MDQwMDAwMjQxMTAyMDBGMQorOjEwMTIxMDAwMDIwMTEwMDAyMDA4MDAwMDYwMTAwMzAwNDAwMDAxMDBERgorOjEwMTIyMDAwMjQxOTAwMDA4NjAwMkEwMDhEMDAwMDAwNjQwNDAwMDBEQworOjEwMTIzMDAwMDQ5RDAwMDA4NjEwMjkwMDAyMDExODAwNzUwNTAwMDBCOQorOjEwMTI0MDAwNDIwMDAxMDAwQTA0MjgwMDhEMDEwMDAwMjQwOTAwMDA2QQorOjEwMTI1MDAwMDIwRDI4MDAwRDAwMDAwMDI0MDkwMDAwMDIxNTI4MDBERQorOjEwMTI2MDAwMEQwMDEwMDAyMDA4MDAwMEY1MDIwMDAwNDAwMDAxMDAwMQorOjEwMTI3MDAwMDcwMDIwMDA3NTExMDAwMEZEMDIwMDAwNDI4MDAxMDBGRgorOjEwMTI4MDAwMEEwMDA4MDAwNDA5MDAwMDg2RkEyNDAwMDcwMDAwMDA5NAorOjEwMTI5MDAwMDAwMTAwMDAyMDBCMDgwMDYwMEIxMzAwNjAwQjFCMDAxNgorOjEwMTJBMDAwNjAwQTAzMDA0MDAwMDEwMDQyMDAwNTAwNEEwMDNEMDBDMgorOjEwMTJCMDAwNEEwMDM1MDA0QTAwMkQwMDBBMDAyMDAwRjUwNjAwMDAxMworOjEwMTJDMDAwNDIwMDAxMDAwQTE0MjgwMEY1MDQwMDAwNDIwMDAxMDA1OQorOjEwMTJEMDAwMEEwMDA4MDAxNTAzMDAwMDA0MEQwMTAwODYwMjI2MDAyNAorOjEwMTJFMDAwMTU0MDAwMDA5NTAwMDAwMDA0MEQwMTAwODZGMDI1MDA2NworOjEwMTJGMDAwMjIwMDEwMDAyQTAwMTAwMDA2MUEyNjAwMDcwMDAwMDAzNQorOjEwMTMwMDAwMDQzMTMzMDAwNEE5MkEwMDA3MDAwMDAwMjQyMTAzMDA0RgorOjEwMTMxMDAwMDIwNTI4MDAwMjQ0MjgwMDI0MTEwMDAwMDIwMTQwMDBCOAorOjEwMTMyMDAwMjQwNDAwMDAyNDA0MDAwMDI0MzIwMDAwMkMyOTAwMDBDMgorOjEwMTMzMDAwNkM2MzAwMDA4NjczMjcwMDA3MDAwMDAwNjRCMTAyMDBBMAorOjEwMTM0MDAwNjQwNDAwMDA2NDA0MDAwMDhEMDAwMDAwNjQwQTAwMDBEMgorOjEwMTM1MDAwMDIwRDI4MDA4RDAwMTAwMDIwMDgwMDAwRjUwMjAwMDA5QQorOjEwMTM2MDAwNDAwMDAxMDAwNzAwMjIwMDhEMDAwMDAwMDRCOTM4MDA5MQorOjEwMTM3MDAwMDcwMDAwMDA2QzI5MDMwMDBBMDEzMDAwRjUwMjAwMDA5QworOjEwMTM4MDAwNDIwMDAxMDAwQTAwMDgwMDA0MDkwMDAwODYwMjI3MDA0QworOjEwMTM5MDAwMDcwMDAwMDAyQzIxMDAwMDBBMDUyODAwNkMzMTAwMDAyNQorOjEwMTNBMDAwNkMwNDAwMDA2QzA0MDAwMDBBNDUyODAwMjQxMTAwMDBCMQorOjEwMTNCMDAwNjQ2QjAwMDAwMjAxMTAwMDhEMDAwMDAwNkMwOTAxMDA0OAorOjEwMTNDMDAwMEEwRDI4MDAwRDAxMTAwMDIwMDgwMDAwRjUwMjAwMDBBMQorOjEwMTNEMDAwNDAwMDAxMDAwNzAwMjIwMDI0NDEwMDAwMjQwNDAwMDAxNgorOjEwMTNFMDAwMjQwNDAwMDAyNDMyMDAwMDAyMDEzMDAwNDQyOTAzMDBEQworOjEwMTNGMDAwODZGQTI3MDAwNzAwMDAwMDAyMDAzMDAwRjUwNDAwMDAxNAorOjEwMTQwMDAwNDIwMDAxMDAwQTAwMDgwMDE1MDMwMDAwMDQwRDAxMDA1RAorOjEwMTQxMDAwODY0MDI4MDAyNDMxMDAwMDY0MDQwMDAwMDIwMTMwMDBFRQorOjEwMTQyMDAwRjUwMjAwMDA0MjAwMDEwMDBBMDAwODAwMDQwOTAwMDA2MworOjEwMTQzMDAwODY0QTI4MDAwNzAwMDAwMDAyNDQyODAwMjQzMTAwMDBFQQorOjEwMTQ0MDAwMDIwNTMwMDAyNDM5MDAwMDgzMDUzMDAwODMwODAwMDBDNQorOjEwMTQ1MDAwRjUwNTAwMDA0MjAwMDEwMDBBMDQyODAwOEQwMDAwMDA4QworOjEwMTQ2MDAwMjQ4MTAwMDAwMjBEMjgwMDhEMDAwMDAwMjQ4MTAwMDA2RQorOjEwMTQ3MDAwMDIxNTI4MDA4RDAxMTAwMDIwMDgwMDAwRjUwMjAwMDA3MAorOjEwMTQ4MDAwNDAwMDAxMDAwNzAwMjIwMDI1MTAwMDAwNzUwNTAwMDA0MworOjEwMTQ5MDAwNDIwMDAzMDA0QTAwMDkwMDBBMDAxMDAwMDQwOTBBMDA4MworOjEwMTRBMDAwMDQxMTEyMDAwNzAwMDAwMDIwMTAwMDAwNjAwODA1MDA3MQorOjEwMTRCMDAwNDAwMDA1MDBGRDA2MDAwMDQyODAwMTAwNEEwMDA5MDBDRQorOjEwMTRDMDAwMEEwMDEwMDBBNTAwMDAwMDA0MDkwQTAwMDQxMTEyMDAxRgorOjEwMTREMDAwMDcwMDAwMDAyMDA4MDAwMDYwOTAwMTAwNDAwMDAxMDBBQgorOjEwMTRFMDAwRjUwMjAwMDA0MjAwMDEwMDBBMDAwODAwMDQwOTAwMDBBMworOjEwMTRGMDAwODZDQTI5MDAwNzAwMDAwMDA2NDIyNDAwMDcwMDAwMDBGOQorOjEwMTUwMDAwMDYwNjAwMDAwNzAwMDAwMEY1MDIwMDAwNDIwMDAxMDA4RQorOjEwMTUxMDAwMEEwMDA4MDAwNDA5MDAwMDg2MUEyQTAwMDcwMDAwMDBEQgorOjEwMTUyMDAwMDAwMTAwMDAyMDBCMDgwMDYwOEIxMzAwNjA4QjFCMDA4MworOjEwMTUzMDAwNjA4QjIzMDA2MDhCMkIwMDYwOEIzMzAwNjA4QjNCMDA0MworOjEwMTU0MDAwNjA4QjQzMDA2MDhCNEIwMDYwOEI1MzAwNjA4QjVCMDBCMworOjEwMTU1MDAwNjA4QjYzMDA2MDhCNkIwMDYwOEI3MzAwNjA4QjdCMDAyMworOjEwMTU2MDAwNjA4RjAzMDA2MDhGMEIwMDYwOEYxMzAwNjA4RjFCMDA4MworOjEwMTU3MDAwNjA4RjIzMDA2MDhGMkIwMDYwOEYzMzAwNjA4RjNCMDBGMworOjEwMTU4MDAwNjA4RjQzMDA2MDhGNEIwMDYwOEY1MzAwNjA4RjVCMDA2MworOjEwMTU5MDAwNjA4RjYzMDA2MDhGNkIwMDYwOEY3MzAwNjA4RjdCMDBEMworOjEwMTVBMDAwNjA4QTAzMDAwNjA2MDAwMDQwODAwMTAwOEQwMDAwMDBGNAorOjEwMTVCMDAwNjQwQTAwMDAwMjBEMjgwMDI0MEEwMDAwN0QwMjAwMDBEOQorOjEwMTVDMDAwNDI4MDAxMDAwQTAwMTAwMDI0MTIwMDAwRkQwMzAwMDAwOAorOjEwMTVEMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwODYwQTJDMDA2RAorOjEwMTVFMDAwMDcwMDAwMDA4RDAxMDAwMDI0MEEwMDAwNjQwNDAwMDBEMAorOjEwMTVGMDAwNjQwNDAwMDAwMjAxMDgwMDI0MDkwMDAwMjQwNDAwMDAyMworOjEwMTYwMDAwMjQwNDAwMDAwMjAxMTAwMDBEMDAwMjAwNDQ5MTAwMDBCQgorOjEwMTYxMDAwODY2MTJDMDAwNzAwMDAwMEZEMDEwMDAwNDI4MDAxMDBFRgorOjEwMTYyMDAwMEEwMDA4MDA0NDBBMDAwMDg2NDMyQzAwNDI4MDAxMDBBMgorOjEwMTYzMDAwMEQwMDBBMDAyMDA4MDAwMEZEMDIwMDAwNDA4MDAxMDBBQgorOjEwMTY0MDAwMDcwMDIwMDA3RDAyMDAwMDIwMTAwMDAwMDYwNjAwMDBCOAorOjEwMTY1MDAwNDA4MDAxMDBGNTAyMDAwMDQyMDAwMTAwMEEwMDA4MDA3RAorOjEwMTY2MDAwMDQwOTAwMDA4NkIyMkMwMDA3MDAwMDAwN0QwMzAwMDA4MgorOjEwMTY3MDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwODZFMjJDMDBGNAorOjEwMTY4MDAwMDcwMDAwMDA3NTAwMDAwMDdEMkUwMDAwNDIwMDAxMDBGMAorOjEwMTY5MDAwNEE4MDBCMDAyMDAwMDAwMDA0MDkwMDAwODYwNjAwMDBCQworOjEwMTZBMDAwNDAwMDAxMDA0QTg0MzEwMDhCMDQzMDAwODMwODAwMDBCMAorOjEwMTZCMDAwOEQwMDAwMDAxMDA4MDAwMDNBMTQyODAwOEQwMDAwMDA4MgorOjEwMTZDMDAwMTAwODAwMDAzQTBDMjgwMDc1MDYwMDAwNDIwMDAxMDBENgorOjEwMTZEMDAwMEEwMDA4MDAxNTM4MDAwMDI0MDkwMTAwMDIwNTI4MDA0RQorOjEwMTZFMDAwMEQwMDBCMDAyMDA4MDAwMEY1MDIwMDAwNDAwMDAxMDA4MgorOjEwMTZGMDAwMDYwNjAwMDAwNzAwMjIwMDY0MDQwMDAwNjQwNDAwMDBFNQorOjEwMTcwMDAwMDYwNjAwMDAwNzAwMDAwMDM0MDEwMDAwOEQ3RjAwMDA4NQorOjEwMTcxMDAwM0MwOTAwMDAxMjFEMjgwMDEyMjUyODAwMzIxRjAwMDA3RAorOjEwMTcyMDAwMDcwMDBFMDAwRDAxMDAwMDdEMDMwMDAwMjAwODAwMDBFRQorOjEwMTczMDAwNDA4MDAxMDBGNEQyMDUwMDA3MDAwMDAwMDcwMDA4MDAwNworOjEwMTc0MDAwN0QwMzAwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDAzNworOjEwMTc1MDAwODY4QTJFMDAwNzAwMDAwMDA2MDYwMDAwMDcwMDAwMDAzMQorOjEwMTc2MDAwMDcwMDAwMDAxMjAwMDAwMDA3MDAxMDAwMDcwMDMyMDAxMAorOjEwMTc3MDAwMDcwMDYwMDAwNzAwNDYwMDgwMDAxMDAwMUEwMDQ4MDBDMworOjEwMTc4MDAwMDQ0OTAwMDA4NkYxMkUwMDA3MDAwMDAwMTAxMjAwMDAzRQorOjEwMTc5MDAwM0EwMDU4MDA0NTAxMDAwMDA0NUQ1QzAwMDcwMDAwMDBBRAorOjEwMTdBMDAwODAwMDAwMDAxQTAwNDgwMDA0NDkwMDAwODY0MTJGMDAxNAorOjEwMTdCMDAwMDcwMDAwMDAxMDEyMDAwMDNBMDA1MDAwMDQ1OTAwMDAxOQorOjEwMTdDMDAwODY5ODJGMDA0NTAwMDAwMEM1MDAwMDAwRjVGRjdGMDA0RgorOjEwMTdEMDAwN0RGRjdGMDAyNEQ1MDcwMDI0NDIwMDAwMDIwMTUwMDA1NQorOjEwMTdFMDAwMDIwNTIwMDA4MjAwMDAwMDFBMDA0MDAwMDQ0MTAwMDBCMQorOjEwMTdGMDAwODZDOTJGMDAwNzAwMDAwMDY1MzgwMDAwMUEwMDQwMDA2RAorOjEwMTgwMDAwMjA0MDAwMDA0RDEwMDAwMDg0QzEwNDAwODZBQjMxMDA3MAorOjEwMTgxMDAwNDAwMDAwMDAwNzAwMDQwMDY1MDEwMDAwNDUwMTAwMDBEMQorOjEwMTgyMDAwMjA0MDAwMDA0MDAwMDAwMDY1MDcwMDAwODAwMDA4MDAyNAorOjEwMTgzMDAwMUEwMDQwMDAwNDQxMDAwMDg2NTkzMDAwMDcwMDAwMDBGMworOjEwMTg0MDAwMTAxMjAwMDAzQTAwNDAwMDA0NDEwMDAwODZCMjMwMDA0RgorOjEwMTg1MDAwNEQwMDAwMDBDRDAwMDAwMDEwNDgwMDAwM0EwNDIwMDBCOAorOjEwMTg2MDAwODIwODAwMDAxQTAwNDAwMDA0NDEwMDAwODZDMTMwMDBEOAorOjEwMTg3MDAwMDcwMDAwMDAyMDQ4MDAwMDA0NTkwMDAwODY5ODMxMDA0RAorOjEwMTg4MDAwNDAwMDAwMDBFNTA3MDAwMDgwMDQyMDAwQTAxNjI4MDBBQQorOjEwMTg5MDAwRTAxNjMyMDBFMDE2M0EwMEUwMTY0MjAwNjAxMjAyMDA0NAorOjEwMThBMDAwNDAwMDAwMDAzMjAwMDAwMDc1MDA0MDAwN0QwMDAwMDA5NAorOjEwMThCMDAwNzRENTA3MDAxMjA1MjAwMDgyMDAwMDAwMUEwMDQwMDBDNQorOjEwMThDMDAwMDQ0MTAwMDA4NjcxMzEwMDA3MDAwMDAwMDY4QTAzMDAxMQorOjEwMThEMDAwMDcwMDY0MDBFNTAwMDAwMDIwMDAwMDAwNDAwMDAwMDA1OAorOjEwMThFMDAwNjUwQTAwMDAyMDAwMDAwMDQwMDAwMjAwNDAwMDAyMDBFNQorOjEwMThGMDAwNDAwMDAwMDA2NTAxMDAwMDQyMDAwMDAwMEEwMDcwMDA4NgorOjEwMTkwMDAwMDQ3MTAwMDA4NjMyMzIwMDA3MDAwMDAwMDcwMDA2MDA2NAorOjEwMTkxMDAwMDY5QTAxMDAwNzAwNjQwMDAwMDAwNTAwMjA3MDAwMDAyNgorOjEwMTkyMDAwNDAwMDAwMDAwNjhBMDMwMDA3MDA2NDAwMDcwMDAwMDA3MgorOjEwMTkzMDAwNkQzMDAwMDA2MDg4MDIwMDYwOTAwMjAwMEEwMDA4MDAxQworOjEwMTk0MDAwNjA4ODAyMDA0MDgwMDAwMDEyMDAxMDAwMEQxMDAwMDBBRQorOjEwMTk1MDAwODQ5MTAwMDA4NkQxMzIwMDBEMEUwMDAwODQ5MTAwMDBCOQorOjEwMTk2MDAwODZFMTMzMDAwNzAwMDAwMDA3MDAzMDAwMjAxMDAwMDA2RgorOjEwMTk3MDAwNkQzQjAwMDA0MDgwMDAwMDgwMDAwMDAwMUEwMDA4MDA1RAorOjEwMTk4MDAwMDQwOTAwMDA4NkYxMzIwMDA3MDAwMDAwMjAxMjAwMDA2OAorOjEwMTk5MDAwRUQwRDAwMDA0MDgwMDAwMDQyODAwMDAwMEEwMDEwMDBCMQorOjEwMTlBMDAwMEQwMDQwMDA0NDk1MTAwMDA3MDAwMDAwMjAxMDAwMDBDQQorOjEwMTlCMDAwRUQwRDAwMDA0MDgwMDAwMDQyODAwMDAwMEEwNDIwMDA3RAorOjEwMTlDMDAwODIwMDAwMDAxQTAwMDgwMDA0MDkwMDAwODY4MTMzMDAyQworOjEwMTlEMDAwMDcwMDAwMDA2RDNCMDAwMDQyODAwMDAwMEEwMDA4MDA4NAorOjEwMTlFMDAwMTUwRTAwMDA4NDA5MDEwMDg2MkIzNDAwMDcwMDYwMDBGQQorOjEwMTlGMDAwMUEwMDA4MDAxNTBDMDAwMDg0MDkwMTAwODYxMzM0MDA0OQorOjEwMUEwMDAwMjAwMDAwMDAwNzAwMUEwMEVEMDIwMDAwNDA4MDAwMDBFNgorOjEwMUExMDAwMDcwMDYyMDA2RDMwMDAwMDQyODAwMjAwNEE4MDBBMDAyOAorOjEwMUEyMDAwMjAwODAwMDA0QTgwMEEwMDA2MDYwMDAwNEE4MDEwMDBENAorOjEwMUEzMDAwMDcwMDAwMDAxMjI1MjgwMDMyMUYwMDAwRjREMjA1MDAyNAorOjEwMUE0MDAwMDREMTU0MDA1QzczMDAwMDg2MDcwMDAwMDcwMDAwMDAwQQorOjEwMUE1MDAwMDcwMDBDMDAwNzAwMEEwMDA3MDAxQzAwNjUzNDAwMDBBNgorOjEwMUE2MDAwNDAwMDAyMDAyMDQ4MDAwMDYwNTAwMjAwMEEwMDQwMDBEMAorOjEwMUE3MDAwNjA0MDAyMDA0MDAwMDAwMDQ0NDk0NTAwMDcwMDAwMDBBQgorOjEwMUE4MDAwMjA0MDAwMDBFNTNBMDAwMDQwMDAwMDAwRTUyODAwMDA4QQorOjEwMUE5MDAwNDIwMDAwMDAwQTAwNDgwMDA0NDkwMDAwODZGODM5MDBBRQorOjEwMUFBMDAwNjUyQzAwMDA0MjAwMDAwMDBBMDA0MDAwRDUwMDAwMDA0NAorOjEwMUFCMDAwMDQ0MTQ1MDAwNzAwMDAwMDU1MDYwMDAwMDQ0NTA1MDBFQworOjEwMUFDMDAwODY4MjM2MDBENTAxMDAwMDA0NDUwNTAwODY4MDM2MDA3OAorOjEwMUFEMDAwNjUyQjAwMDA0MjAwMDAwMEU1M0EwMDAwNEEwMDUwMDA3QgorOjEwMUFFMDAwMEEwMDQwMDBENEMzNDUwMDA3MDAwMDAwMDQ0NTQ1MDAzQgorOjEwMUFGMDAwMDcwMDAwMDBDRDAwMDAwMDQ0NDk0NDAwMDcwMDAwMDAzQQorOjEwMUIwMDAwMDQ0NTQ1MDAwNzAwMDAwMDREMDEwMDAwNDQ0OTU1MDAxMAorOjEwMUIxMDAwMDcwMDAwMDA0NDUxMDQwMDg2NzkzNjAwNjUyQzAwMDA1RgorOjEwMUIyMDAwNDIwMDAwMDAwQTAwNDgwMDA0RDE0QzAwMDcwMDAwMDBGOQorOjEwMUIzMDAwNDRDMTA0MDA4NjgzMzYwMDA3MDAwMDAwMDcwMDE2MDAzOQorOjEwMUI0MDAwRTUyQzAwMDA0MjAwMDQwMDBBMDA0MDAwMjA0MDAwMDA5NAorOjEwMUI1MDAwNDAwMDAwMDA2NTI5MDAwMDQyMDAwMDAwMEEwMDQwMDAyQgorOjEwMUI2MDAwMDQ0MTAwMDA4NkYwMzYwMDA3MDAwMDAwMDIyNDAwMDA1NworOjEwMUI3MDAwMDYzMjM4MDAwMjVDMDAwMEU1MjUwMDAwNDIwMDAwMDA0QgorOjEwMUI4MDAwMEEwMDQwMDA3NDQyMDAwMEU1MkEwMDAwNDIwMDAwMDAwNAorOjEwMUI5MDAwMEEwMDQwMDA3NDQyMDAwMDEyMDE1MDAwRTUyOTAwMDBENAorOjEwMUJBMDAwNDIwMDAwMDAwQTAwNDAwMDM0NDIwMDAwMDQ0MTQ1MDBBOQorOjEwMUJCMDAwMDcwMDAwMDAyMDQwMDAwMDQwMDAwMDAwRTUzRTAwMDA1QgorOjEwMUJDMDAwMjAwMDAwMDA0MDAwMDAwMEU1MkQwMDAwNTIwMTQwMDAxMAorOjEwMUJEMDAwMEEwMDUwMDA0NDUxMDQwMDg2REEzNzAwQzUwMDAwMDBCNgorOjEwMUJFMDAwRTUzRTAwMDAyMDQwMDAwMDQwMDAwMDAwRTUyQjAwMDAyMgorOjEwMUJGMDAwNDIwMDAwMDAwQTAwNDAwMDU0NDI0MDAwMDcwMDAwMDA3QworOjEwMUMwMDAwRTUyQTAwMDAyMDQwMDAwMDQwMDAwMDAwMzIwMTUwMDBBMgorOjEwMUMxMDAwMzQwMTA0MDA3NDU2MDAwMEU1MjkwMDAwNDIwMDAyMDA2RgorOjEwMUMyMDAwMEEwMDQyMDA0MjAwMDAwMDBBMDA1MDAwN0M0MTA1MDAwQQorOjEwMUMzMDAwRTUyODAwMDA0MjAwMDAwMDBBMDA0ODAwQzUwMDAwMDAzRQorOjEwMUM0MDAwNDRDMTRDMDA4NkEwMzgwMEU1MjYwMDAwRTUyNzAwMDBDRQorOjEwMUM1MDAwNDIwMDAyMDA0QTAwNDAwMDBBMDA1MDAwM0M0MjAwMDBERQorOjEwMUM2MDAwN0M1NjAwMDBFNTI4MDAwMDIwNDgwMDAwNDAwMDAwMDBFRAorOjEwMUM3MDAwMTIxRDI4MDAxMjI1MjgwMDcyMUYwMDAwNjUyOTAwMDA4RgorOjEwMUM4MDAwNDIwMDAwMDAwQTAwNDAwMDA0NDEwMDAwODYzQTM5MDA4QQorOjEwMUM5MDAwMDcwMDBFMDAwNzAwMTYwMDA3MDAxRTAwRTUzRTAwMDBDQQorOjEwMUNBMDAwNDIwMDAwMDAwQTAwNDAwMDA0NDEwMDAwODY3ODM5MDAyQworOjEwMUNCMDAwNjUyRDAwMDA0MjAwMDAwMDBBMzQyODAwNjUzNDAwMDA1MQorOjEwMUNDMDAwNDIwMDAyMDA0QTAwNDIwMDIwNDAwMDAwNEEwMDRBMDA1MAorOjEwMUNEMDAwNEEwMDUwMDBGNEQyMDUwMDA0RDE1NDAwNUM3MzAwMDBBNworOjEwMUNFMDAwODZFMTM5MDAwNzAwMDAwMDA2MDYwMDAwMDcwMDA4MDAzMgorOjEwMUNGMDAwMDcwMDBDMDAwNzAwMDgwMDA3MDAwQTAwRTUwMTAwMDBDQgorOjEwMUQwMDAwNDUwMDAyMDAyMDQwMDAwMDYwMDAwMDAwNjUwMzAwMDA2NAorOjEwMUQxMDAwNDAwMDAwMDA2NTJFMDAwMDIwMUEwMDAwNjAxQTBBMDAzMgorOjEwMUQyMDAwNDAwMDAwMDA2NTM0MDAwMDQyMDAwMjAwNEEwMDQyMDAwQQorOjEwMUQzMDAwMjA0MDAwMDA0QTAwNEEwMDA2MDYwMDAwNEEwMDUwMDAwOQorOjEwMUQ0MDAwRkQxNzAwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA5RAorOjEwMUQ1MDAwODY1QTIyMDAwNzAwMDAwMDdEMTAwMDAwNDI4MDAxMDAyQQorOjEwMUQ2MDAwRkQxMTAwMDA0QTgwMzMwMDRBODAxOTAwMEEwMDIwMDA1QgorOjEwMUQ3MDAwOTUwMDAwMDA0NDExMkEwMDQ0QTEwMTAwODY5MDNCMDAxOAorOjEwMUQ4MDAwMEQwNDAwMDA4NEIxMDAwMDg2OTEzQjAwRkQxODAwMDBBNgorOjEwMUQ5MDAwNDI4MDAxMDBGRDEwMDAwMDRBODAwOTAwMEEwMDM4MDA1RQorOjEwMURBMDAwOTUwMDAwMDAyNDA5MDEwMDY0M0EwMDAwODY4MTNCMDA5MAorOjEwMURCMDAwMDcwMDAwMDAwNDM5MDAwMDg2OTIzQjAwMDcwMDAwMDA4NQorOjEwMURDMDAwMDY5QTNCMDAwRDAwMDAwMDhEMDAwMDAwMjAwODAwMDA3NgorOjEwMUREMDAwN0QzODAwMDA0MDgwMDEwMDAyMDA3MDAwN0QxMTAwMDA4RAorOjEwMURFMDAwNDI4MDAxMDA3RDE5MDAwMDRBODAyOTAwMEEwMDMwMDA2RAorOjEwMURGMDAwMDIwMDM4MDAyNDMxMDAwMDI0MDQwMDAwMjQwNDAwMDAwNAorOjEwMUUwMDAwMjQyQTAwMDAwMjA1MjgwMDhEMDYwMDAwMTAwODAwMDBBQQorOjEwMUUxMDAwM0ExNDI4MDAwRDc1MDAwMDI0QjEwMDAwNjQyMjAwMDA2RgorOjEwMUUyMDAwODYwMzNEMDAwMjQ0MjgwMDEwMDgwMDAwM0EwQzI4MDBGOAorOjEwMUUzMDAwMEQ4MDBCMDAyMDA4MDAwMEZEMDIwMDAwNDA4MDAxMDAyMgorOjEwMUU0MDAwMDcwMDIwMDA4RDc1MDAwMDI0QjEwMDAwMDIwMTEwMDA4MQorOjEwMUU1MDAwNDQyMTAxMDA4NjQ5M0UwMDEwMTgwMDAwM0EwMDEwMDA5RAorOjEwMUU2MDAwN0QzODAwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDBEQgorOjEwMUU3MDAwODY0ODNFMDAwMDAwMDMwMDA2NEEzRTAwQkQwMDAwMDAwOAorOjEwMUU4MDAwOEQwMDAwMDA2NDMxMDIwMDY0MEEwMDAwMDIwRDI4MDA4OQorOjEwMUU5MDAwOEQ4MDBCMDAyMDA4MDAwMEZEMDIwMDAwNDA4MDAxMDA0MgorOjEwMUVBMDAwMDcwMDIwMDA3RDM4MDAwMDQyODAwMTAwMEEwMDA4MDA4MQorOjEwMUVCMDAwMDQwOTAwMDA4NjMyM0UwMDAwMDAwMzAwRkQwMjAwMDAxRAorOjEwMUVDMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwODY4MjNEMDBFQgorOjEwMUVEMDAwMDcwMDAwMDAxMDI4MDAwMDNBMDQyODAwMEQ3NTAwMDBEQgorOjEwMUVFMDAwMjQwOTAzMDA2NDIyMDAwMDAyMEQyODAwNkMzMTAyMDA2NgorOjEwMUVGMDAwMEE0NTI4MDAwRDgxMEIwMDIwMDgwMDAwRkQwMjAwMDBBQgorOjEwMUYwMDAwNDA4MDAxMDAwNzAwMjAwMDhEMDAwMDAwMjQwQTAwMDAyRQorOjEwMUYxMDAwMDY0QTNFMDAwMjAxMTAwMDEwMTgwMDAwM0EwMDEwMDBBRQorOjEwMUYyMDAwQkQwMDAwMDAxMDM4MDAwMDNBMDQzMDAwN0QxODAwMDBBOQorOjEwMUYzMDAwNDI4MDAxMDBGRDE4MDAwMDRBODAwOTAwMEEwMDIwMDBDQworOjEwMUY0MDAwQUQwMDAwMDAyNDg5MDIwMDJDMjEwNzAwMTAxMDAwMDBDMQorOjEwMUY1MDAwODMwNTMwMDA4QjBEMzAwMEJCMTQzMDAwODMxQzMwMDAzMworOjEwMUY2MDAwODMyMDAwMDA3RDEzMDAwMDQyODAwMzAwNEE4NDMzMDA3OAorOjEwMUY3MDAwQ0JBQzMzMDBDQkI0MzMwMENCQkMzMzAwQ0JDNDMzMDA4OQorOjEwMUY4MDAwQ0JDQzMzMDBDQkQ0MzMwMDhCNUMzMDAwODM2MDAwMDBCQgorOjEwMUY5MDAwMEQxRTAwMDBGRDA1MDAwMDQyODAwMTAwMEEwMDIwMDAyNworOjEwMUZBMDAwMjQwOTAyMDA4RDA2MDAwMDZDQTkwMDAwOUQwMDAwMDBCRAorOjEwMUZCMDAwRkQwMjAwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA0MAorOjEwMUZDMDAwODY2QTNGMDAwNzAwMDAwMDAyMDUyODAwMEEwRDI4MDA2RAorOjEwMUZEMDAwMDI0NDI4MDAxMDE4MDAwMDNBMTQyODAwOEQwMDBDMDA1QworOjEwMUZFMDAwMjAwODAwMDBGRDAyMDAwMDQwODAwMTAwMDcwMDIyMDBFMAorOjEwMUZGMDAwMDQzOTAwMDA4NjU4MjIwMDBEMUUwMDAwN0QwNTAwMDBGNworOjEwMjAwMDAwNDI4MDAxMDAwQTAwMjAwMDI0MDkwMjAwQTUwMDAwMDAwRgorOjEwMjAxMDAwRkQwMjAwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDBERgorOjEwMjAyMDAwODYyQTQwMDAwNzAwMDAwMDAyMDUyODAwMDIwQzI4MDA1NAorOjEwMjAzMDAwMTAyMDAwMDAzQTE0MjgwMDBEMDEwQzAwMjAwODAwMDBCOAorOjEwMjA0MDAwRkQwMjAwMDA0MDgwMDEwMDA2NUEyMjAwMDcwMDIyMDAyNQorOjEwMjA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwMjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAorOjEwMjA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwMjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAorOjEwMjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwMjBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwMjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwMjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwMjBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwMjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAorOjEwMjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgorOjEwMjExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgorOjEwMjEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgorOjEwMjEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgorOjEwMjE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgorOjEwMjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgorOjEwMjE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwMjE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwMjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwMjE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwMjFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgorOjEwMjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwMjFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwMjFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwMjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwMjFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQorOjEwMjIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwMjI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwMjI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQorOjEwMjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQorOjEwMjI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwMjI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwMjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwMjJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwMjJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQorOjEwMjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwMjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwMjJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwMjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwMjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwMjM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAorOjEwMjM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwMjNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwMjNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwMjNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwMjNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwMjNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAorOjEwMjNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAorOjEwMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQworOjEwMjQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQworOjEwMjQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQworOjEwMjQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QworOjEwMjQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QworOjEwMjQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QworOjEwMjQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QworOjEwMjQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QworOjEwMjQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QworOjEwMjQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQworOjEwMjRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQworOjEwMjRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQworOjEwMjRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQworOjEwMjREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQworOjEwMjRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQworOjEwMjRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQworOjEwMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQgorOjEwMjUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQgorOjEwMjUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjEwMjUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QgorOjEwMjU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QgorOjEwMjU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QgorOjEwMjU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QgorOjEwMjU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QgorOjEwMjU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QgorOjEwMjU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQgorOjEwMjVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjEwMjVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQgorOjEwMjVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQgorOjEwMjVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQgorOjEwMjVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjEwMjVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQgorOjEwMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQQorOjEwMjYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQQorOjEwMjYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQQorOjEwMjYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QQorOjEwMjY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QQorOjEwMjY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QQorOjEwMjY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjEwMjY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QQorOjEwMjY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QQorOjEwMjY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQQorOjEwMjZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQQorOjEwMjZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQQorOjEwMjZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQQorOjEwMjZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQQorOjEwMjZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQQorOjEwMjZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQQorOjEwMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOQorOjEwMjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOQorOjEwMjcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOQorOjEwMjczMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OQorOjEwMjc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OQorOjEwMjc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OQorOjEwMjc2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OQorOjEwMjc3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OQorOjEwMjc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OQorOjEwMjc5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOQorOjEwMjdBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOQorOjEwMjdCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOQorOjEwMjdDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOQorOjEwMjdEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOQorOjEwMjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOQorOjEwMjdGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOQorOjEwMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOAorOjEwMjgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOAorOjEwMjgyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjEwMjgzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OAorOjEwMjg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OAorOjEwMjg1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OAorOjEwMjg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjEwMjg3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OAorOjEwMjg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OAorOjEwMjg5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOAorOjEwMjhBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjEwMjhCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOAorOjEwMjhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOAorOjEwMjhEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOAorOjEwMjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOAorOjEwMjhGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOAorOjEwMjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNworOjEwMjkxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNworOjEwMjkyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNworOjEwMjkzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NworOjEwMjk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NworOjEwMjk1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwMjk2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjEwMjk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NworOjEwMjk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NworOjEwMjk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNworOjEwMjlBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjEwMjlCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNworOjEwMjlDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNworOjEwMjlEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNworOjEwMjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjEwMjlGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENworOjEwMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNgorOjEwMkExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwMkEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjEwMkEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NgorOjEwMkE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NgorOjEwMkE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NgorOjEwMkE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjEwMkE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NgorOjEwMkE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NgorOjEwMkE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNgorOjEwMkFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjEwMkFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNgorOjEwMkFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNgorOjEwMkFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjEwMkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjEwMkFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENgorOjEwMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNQorOjEwMkIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNQorOjEwMkIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjEwMkIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQorOjEwMkI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQorOjEwMkI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwMkI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjEwMkI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQorOjEwMkI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQorOjEwMkI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQorOjEwMkJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjEwMkJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQorOjEwMkJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNQorOjEwMkJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQorOjEwMkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjEwMkJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENQorOjEwMkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAorOjEwMkMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAorOjEwMkMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjEwMkMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAorOjEwMkM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAorOjEwMkM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwMkM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjEwMkM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwMkM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NAorOjEwMkM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwMkNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwMkNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwMkNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwMkNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwMkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwMkNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwMkQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwMkQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwMkQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwMkQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwMkQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MworOjEwMkQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwMkQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwMkQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwMkQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwMkRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjEwMkRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwMkRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwMkREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwMkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjEwMkRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMgorOjEwMkUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMgorOjEwMkUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwMkUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwMkU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwMkU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwMkU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwMkU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwMkU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwMkU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjEwMkVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjEwMkVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMgorOjEwMkVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMgorOjEwMkVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMgorOjEwMkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMgorOjEwMkVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjEwMkYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwMkYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMQorOjEwMkYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwMkY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwMkY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwMkY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwMkY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwMkY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwMkY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwMkZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwMkZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwMkZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwMkZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwMkZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwMkZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMQorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2ZzLzlwL3Y5ZnNfdmZzLmggYi9mcy85cC92OWZzX3Zmcy5oCmluZGV4IGZkMDFkOTAuLjU3OTk3ZmEgMTAwNjQ0Ci0tLSBhL2ZzLzlwL3Y5ZnNfdmZzLmgKKysrIGIvZnMvOXAvdjlmc192ZnMuaApAQCAtNTEsNCArNTEsNCBAQAogaW50IHY5ZnNfZmlsZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKTsKIHZvaWQgdjlmc19pbm9kZTJzdGF0KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBwOV9zdGF0ICpzdGF0KTsKIHZvaWQgdjlmc19kZW50cnlfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICopOwotaW50IHY5ZnNfdWZsYWdzMm9tb2RlKGludCB1ZmxhZ3MpOworaW50IHY5ZnNfdWZsYWdzMm9tb2RlKGludCB1ZmxhZ3MsIGludCBleHRlbmRlZCk7CmRpZmYgLS1naXQgYS9mcy85cC92ZnNfZmlsZS5jIGIvZnMvOXAvdmZzX2ZpbGUuYwppbmRleCAwZDU1YWZmLi41Mjk0NGQyIDEwMDY0NAotLS0gYS9mcy85cC92ZnNfZmlsZS5jCisrKyBiL2ZzLzlwL3Zmc19maWxlLmMKQEAgLTU5LDcgKzU5LDcgQEAKIAogCVA5X0RQUklOVEsoUDlfREVCVUdfVkZTLCAiaW5vZGU6ICVwIGZpbGU6ICVwIFxuIiwgaW5vZGUsIGZpbGUpOwogCXY5c2VzID0gdjlmc19pbm9kZTJ2OXNlcyhpbm9kZSk7Ci0Jb21vZGUgPSB2OWZzX3VmbGFnczJvbW9kZShmaWxlLT5mX2ZsYWdzKTsKKwlvbW9kZSA9IHY5ZnNfdWZsYWdzMm9tb2RlKGZpbGUtPmZfZmxhZ3MsIHY5ZnNfZXh0ZW5kZWQodjlzZXMpKTsKIAlmaWQgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJaWYgKCFmaWQpIHsKIAkJZmlkID0gdjlmc19maWRfY2xvbmUoZmlsZS0+Zl9wYXRoLmRlbnRyeSk7CkBAIC03NSw2ICs3NSw4IEBACiAJCQlpbm9kZS0+aV9zaXplID0gMDsKIAkJCWlub2RlLT5pX2Jsb2NrcyA9IDA7CiAJCX0KKwkJaWYgKChmaWxlLT5mX2ZsYWdzICYgT19BUFBFTkQpICYmICghdjlmc19leHRlbmRlZCh2OXNlcykpKQorCQkJZ2VuZXJpY19maWxlX2xsc2VlayhmaWxlLCAwLCBTRUVLX0VORCk7CiAJfQogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gZmlkOwpkaWZmIC0tZ2l0IGEvZnMvOXAvdmZzX2lub2RlLmMgYi9mcy85cC92ZnNfaW5vZGUuYwppbmRleCA0MGZhODA3Li5jOTUyOTVjIDEwMDY0NAotLS0gYS9mcy85cC92ZnNfaW5vZGUuYworKysgYi9mcy85cC92ZnNfaW5vZGUuYwpAQCAtMTMyLDEwICsxMzIsMTAgQEAKIC8qKgogICogdjlmc191ZmxhZ3Myb21vZGUtIGNvbnZlcnQgcG9zaXggb3BlbiBmbGFncyB0byBwbGFuIDkgbW9kZSBiaXRzCiAgKiBAdWZsYWdzOiBmbGFncyB0byBjb252ZXJ0Ci0gKgorICogQGV4dGVuZGVkOiBpZiAudSBleHRlbnNpb25zIGFyZSBhY3RpdmUKICAqLwogCi1pbnQgdjlmc191ZmxhZ3Myb21vZGUoaW50IHVmbGFncykKK2ludCB2OWZzX3VmbGFnczJvbW9kZShpbnQgdWZsYWdzLCBpbnQgZXh0ZW5kZWQpCiB7CiAJaW50IHJldDsKIApAQCAtMTU1LDE0ICsxNTUsMTYgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKHVmbGFncyAmIE9fRVhDTCkKLQkJcmV0IHw9IFA5X09FWENMOwotCiAJaWYgKHVmbGFncyAmIE9fVFJVTkMpCiAJCXJldCB8PSBQOV9PVFJVTkM7CiAKLQlpZiAodWZsYWdzICYgT19BUFBFTkQpCi0JCXJldCB8PSBQOV9PQVBQRU5EOworCWlmIChleHRlbmRlZCkgeworCQlpZiAodWZsYWdzICYgT19FWENMKQorCQkJcmV0IHw9IFA5X09FWENMOworCisJCWlmICh1ZmxhZ3MgJiBPX0FQUEVORCkKKwkJCXJldCB8PSBQOV9PQVBQRU5EOworCX0KIAogCXJldHVybiByZXQ7CiB9CkBAIC01MDYsNyArNTA4LDcgQEAKIAkJZmxhZ3MgPSBPX1JEV1I7CiAKIAlmaWQgPSB2OWZzX2NyZWF0ZSh2OXNlcywgZGlyLCBkZW50cnksIE5VTEwsIHBlcm0sCi0JCQkJCQl2OWZzX3VmbGFnczJvbW9kZShmbGFncykpOworCQkJCXY5ZnNfdWZsYWdzMm9tb2RlKGZsYWdzLCB2OWZzX2V4dGVuZGVkKHY5c2VzKSkpOwogCWlmIChJU19FUlIoZmlkKSkgewogCQllcnIgPSBQVFJfRVJSKGZpZCk7CiAJCWZpZCA9IE5VTEw7CmRpZmYgLS1naXQgYS9mcy9LY29uZmlnIGIvZnMvS2NvbmZpZwppbmRleCBjZjEyYzQwLi4zMTNiMmUwIDEwMDY0NAotLS0gYS9mcy9LY29uZmlnCisrKyBiL2ZzL0tjb25maWcKQEAgLTgzMCw3ICs4MzAsNyBAQAogCSAgZnJvbSB0aGUgcHJvamVjdCB3ZWIgc2l0ZS4KIAogCSAgRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIDxmaWxlOkRvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbnRmcy50eHQ+Ci0JICBhbmQgPGh0dHA6Ly9saW51eC1udGZzLnNvdXJjZWZvcmdlLm5ldC8+LgorCSAgYW5kIDxodHRwOi8vd3d3LmxpbnV4LW50ZnMub3JnLz4uCiAKIAkgIFRvIGNvbXBpbGUgdGhpcyBmaWxlIHN5c3RlbSBzdXBwb3J0IGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKIAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBudGZzLgpAQCAtOTMwLDcgKzkzMCw3IEBACiAKIGNvbmZpZyBQUk9DX1ZNQ09SRQogICAgICAgICBib29sICIvcHJvYy92bWNvcmUgc3VwcG9ydCAoRVhQRVJJTUVOVEFMKSIKLSAgICAgICAgZGVwZW5kcyBvbiBQUk9DX0ZTICYmIEVYUEVSSU1FTlRBTCAmJiBDUkFTSF9EVU1QCisgICAgICAgIGRlcGVuZHMgb24gUFJPQ19GUyAmJiBDUkFTSF9EVU1QCiAJZGVmYXVsdCB5CiAgICAgICAgIGhlbHAKICAgICAgICAgRXhwb3J0cyB0aGUgZHVtcCBpbWFnZSBvZiBjcmFzaGVkIGtlcm5lbCBpbiBFTEYgZm9ybWF0LgpkaWZmIC0tZ2l0IGEvZnMvTWFrZWZpbGUgYi9mcy9NYWtlZmlsZQppbmRleCAxZTdhMTFiLi4yNzdiMDc5IDEwMDY0NAotLS0gYS9mcy9NYWtlZmlsZQorKysgYi9mcy9NYWtlZmlsZQpAQCAtMTksNiArMTksNyBAQAogb2JqLXkgKz0Jbm8tYmxvY2subwogZW5kaWYKIAorb2JqLSQoQ09ORklHX0JMS19ERVZfSU5URUdSSVRZKSArPSBiaW8taW50ZWdyaXR5Lm8KIG9iai0kKENPTkZJR19JTk9USUZZKQkJKz0gaW5vdGlmeS5vCiBvYmotJChDT05GSUdfSU5PVElGWV9VU0VSKQkrPSBpbm90aWZ5X3VzZXIubwogb2JqLSQoQ09ORklHX0VQT0xMKQkJKz0gZXZlbnRwb2xsLm8KZGlmZiAtLWdpdCBhL2ZzL2Jpby1pbnRlZ3JpdHkuYyBiL2ZzL2Jpby1pbnRlZ3JpdHkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2UyZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvZnMvYmlvLWludGVncml0eS5jCkBAIC0wLDAgKzEsNzE5IEBACisvKgorICogYmlvLWludGVncml0eS5jIC0gYmlvIGRhdGEgaW50ZWdyaXR5IGV4dGVuc2lvbnMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggT3JhY2xlIENvcnBvcmF0aW9uCisgKiBXcml0dGVuIGJ5OiBNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRlcnNlbkBvcmFjbGUuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24KKyAqIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LAorICogVVNBLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvbWVtcG9vbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Jpby5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorCitzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKmJpb19pbnRlZ3JpdHlfc2xhYiBfX3JlYWRfbW9zdGx5Oworc3RhdGljIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpraW50ZWdyaXR5ZF93cTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2FsbG9jX2Jpb3NldCAtIEFsbG9jYXRlIGludGVncml0eSBwYXlsb2FkIGFuZCBhdHRhY2ggaXQgdG8gYmlvCisgKiBAYmlvOgliaW8gdG8gYXR0YWNoIGludGVncml0eSBtZXRhZGF0YSB0bworICogQGdmcF9tYXNrOglNZW1vcnkgYWxsb2NhdGlvbiBtYXNrCisgKiBAbnJfdmVjczoJTnVtYmVyIG9mIGludGVncml0eSBtZXRhZGF0YSBzY2F0dGVyLWdhdGhlciBlbGVtZW50cworICogQGJzOgkJYmlvX3NldCB0byBhbGxvY2F0ZSBmcm9tCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgYSBiaW8gZm9yIGF0dGFjaGluZyBpbnRlZ3JpdHkKKyAqIG1ldGFkYXRhLiAgbnJfdmVjcyBzcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzIGNvbnRhaW5pbmcKKyAqIGludGVncml0eSBtZXRhZGF0YSB0aGF0IGNhbiBiZSBhdHRhY2hlZC4KKyAqLworc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlvX2ludGVncml0eV9hbGxvY19iaW9zZXQoc3RydWN0IGJpbyAqYmlvLAorCQkJCQkJCSBnZnBfdCBnZnBfbWFzaywKKwkJCQkJCQkgdW5zaWduZWQgaW50IG5yX3ZlY3MsCisJCQkJCQkJIHN0cnVjdCBiaW9fc2V0ICpicykKK3sKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaXA7CisJc3RydWN0IGJpb192ZWMgKml2OworCXVuc2lnbmVkIGxvbmcgaWR4OworCisJQlVHX09OKGJpbyA9PSBOVUxMKTsKKworCWJpcCA9IG1lbXBvb2xfYWxsb2MoYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCwgZ2ZwX21hc2spOworCWlmICh1bmxpa2VseShiaXAgPT0gTlVMTCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogY291bGQgbm90IGFsbG9jIGJpcFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwltZW1zZXQoYmlwLCAwLCBzaXplb2YoKmJpcCkpOworCisJaXYgPSBidmVjX2FsbG9jX2JzKGdmcF9tYXNrLCBucl92ZWNzLCAmaWR4LCBicyk7CisJaWYgKHVubGlrZWx5KGl2ID09IE5VTEwpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IGNvdWxkIG5vdCBhbGxvYyBiaXBfdmVjXG4iLCBfX2Z1bmNfXyk7CisJCW1lbXBvb2xfZnJlZShiaXAsIGJzLT5iaW9faW50ZWdyaXR5X3Bvb2wpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwliaXAtPmJpcF9wb29sID0gaWR4OworCWJpcC0+YmlwX3ZlYyA9IGl2OworCWJpcC0+YmlwX2JpbyA9IGJpbzsKKwliaW8tPmJpX2ludGVncml0eSA9IGJpcDsKKworCXJldHVybiBiaXA7Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfYWxsb2NfYmlvc2V0KTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2FsbG9jIC0gQWxsb2NhdGUgaW50ZWdyaXR5IHBheWxvYWQgYW5kIGF0dGFjaCBpdCB0byBiaW8KKyAqIEBiaW86CWJpbyB0byBhdHRhY2ggaW50ZWdyaXR5IG1ldGFkYXRhIHRvCisgKiBAZ2ZwX21hc2s6CU1lbW9yeSBhbGxvY2F0aW9uIG1hc2sKKyAqIEBucl92ZWNzOglOdW1iZXIgb2YgaW50ZWdyaXR5IG1ldGFkYXRhIHNjYXR0ZXItZ2F0aGVyIGVsZW1lbnRzCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgYSBiaW8gZm9yIGF0dGFjaGluZyBpbnRlZ3JpdHkKKyAqIG1ldGFkYXRhLiAgbnJfdmVjcyBzcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzIGNvbnRhaW5pbmcKKyAqIGludGVncml0eSBtZXRhZGF0YSB0aGF0IGNhbiBiZSBhdHRhY2hlZC4KKyAqLworc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlvX2ludGVncml0eV9hbGxvYyhzdHJ1Y3QgYmlvICpiaW8sCisJCQkJCQkgIGdmcF90IGdmcF9tYXNrLAorCQkJCQkJICB1bnNpZ25lZCBpbnQgbnJfdmVjcykKK3sKKwlyZXR1cm4gYmlvX2ludGVncml0eV9hbGxvY19iaW9zZXQoYmlvLCBnZnBfbWFzaywgbnJfdmVjcywgZnNfYmlvX3NldCk7Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfYWxsb2MpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfZnJlZSAtIEZyZWUgYmlvIGludGVncml0eSBwYXlsb2FkCisgKiBAYmlvOgliaW8gY29udGFpbmluZyBiaXAgdG8gYmUgZnJlZWQKKyAqIEBiczoJCWJpb19zZXQgdGhpcyBiaW8gd2FzIGFsbG9jYXRlZCBmcm9tCisgKgorICogRGVzY3JpcHRpb246IFVzZWQgdG8gZnJlZSB0aGUgaW50ZWdyaXR5IHBvcnRpb24gb2YgYSBiaW8uIFVzdWFsbHkKKyAqIGNhbGxlZCBmcm9tIGJpb19mcmVlKCkuCisgKi8KK3ZvaWQgYmlvX2ludGVncml0eV9mcmVlKHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IGJpb19zZXQgKmJzKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCisJQlVHX09OKGJpcCA9PSBOVUxMKTsKKworCS8qIEEgY2xvbmVkIGJpbyBkb2Vzbid0IG93biB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhICovCisJaWYgKCFiaW9fZmxhZ2dlZChiaW8sIEJJT19DTE9ORUQpICYmIGJpcC0+YmlwX2J1ZiAhPSBOVUxMKQorCQlrZnJlZShiaXAtPmJpcF9idWYpOworCisJbWVtcG9vbF9mcmVlKGJpcC0+YmlwX3ZlYywgYnMtPmJ2ZWNfcG9vbHNbYmlwLT5iaXBfcG9vbF0pOworCW1lbXBvb2xfZnJlZShiaXAsIGJzLT5iaW9faW50ZWdyaXR5X3Bvb2wpOworCisJYmlvLT5iaV9pbnRlZ3JpdHkgPSBOVUxMOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X2ZyZWUpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2UgLSBBdHRhY2ggaW50ZWdyaXR5IG1ldGFkYXRhCisgKiBAYmlvOgliaW8gdG8gdXBkYXRlCisgKiBAcGFnZToJcGFnZSBjb250YWluaW5nIGludGVncml0eSBtZXRhZGF0YQorICogQGxlbjoJbnVtYmVyIG9mIGJ5dGVzIG9mIGludGVncml0eSBtZXRhZGF0YSBpbiBwYWdlCisgKiBAb2Zmc2V0OglzdGFydCBvZmZzZXQgd2l0aGluIHBhZ2UKKyAqCisgKiBEZXNjcmlwdGlvbjogQXR0YWNoIGEgcGFnZSBjb250YWluaW5nIGludGVncml0eSBtZXRhZGF0YSB0byBiaW8uCisgKi8KK2ludCBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IHBhZ2UgKnBhZ2UsCisJCQkgICB1bnNpZ25lZCBpbnQgbGVuLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCXN0cnVjdCBiaW9fdmVjICppdjsKKworCWlmIChiaXAtPmJpcF92Y250ID49IGJ2ZWNfbnJfdmVjcyhiaXAtPmJpcF9wb29sKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBiaXBfdmVjIGZ1bGxcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaXYgPSBiaXBfdmVjX2lkeChiaXAsIGJpcC0+YmlwX3ZjbnQpOworCUJVR19PTihpdiA9PSBOVUxMKTsKKwlCVUdfT04oaXYtPmJ2X3BhZ2UgIT0gTlVMTCk7CisKKwlpdi0+YnZfcGFnZSA9IHBhZ2U7CisJaXYtPmJ2X2xlbiA9IGxlbjsKKwlpdi0+YnZfb2Zmc2V0ID0gb2Zmc2V0OworCWJpcC0+YmlwX3ZjbnQrKzsKKworCXJldHVybiBsZW47Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2UpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfZW5hYmxlZCAtIENoZWNrIHdoZXRoZXIgaW50ZWdyaXR5IGNhbiBiZSBwYXNzZWQKKyAqIEBiaW86CWJpbyB0byBjaGVjaworICoKKyAqIERlc2NyaXB0aW9uOiBEZXRlcm1pbmVzIHdoZXRoZXIgYmlvX2ludGVncml0eV9wcmVwKCkgY2FuIGJlIGNhbGxlZAorICogb24gdGhpcyBiaW8gb3Igbm90LgliaW8gZGF0YSBkaXJlY3Rpb24gYW5kIHRhcmdldCBkZXZpY2UgbXVzdCBiZQorICogc2V0IHByaW9yIHRvIGNhbGxpbmcuICBUaGUgZnVuY3Rpb25zIGhvbm9ycyB0aGUgd3JpdGVfZ2VuZXJhdGUgYW5kCisgKiByZWFkX3ZlcmlmeSBmbGFncyBpbiBzeXNmcy4KKyAqLworaW50IGJpb19pbnRlZ3JpdHlfZW5hYmxlZChzdHJ1Y3QgYmlvICpiaW8pCit7CisJLyogQWxyZWFkeSBwcm90ZWN0ZWQ/ICovCisJaWYgKGJpb19pbnRlZ3JpdHkoYmlvKSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gYmRldl9pbnRlZ3JpdHlfZW5hYmxlZChiaW8tPmJpX2JkZXYsIGJpb19kYXRhX2RpcihiaW8pKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9lbmFibGVkKTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2h3X3NlY3RvcnMgLSBDb252ZXJ0IDUxMmIgc2VjdG9ycyB0byBoYXJkd2FyZSBkaXR0bworICogQGJpOgkJYmxrX2ludGVncml0eSBwcm9maWxlIGZvciBkZXZpY2UKKyAqIEBzZWN0b3JzOglOdW1iZXIgb2YgNTEyIHNlY3RvcnMgdG8gY29udmVydAorICoKKyAqIERlc2NyaXB0aW9uOiBUaGUgYmxvY2sgbGF5ZXIgY2FsY3VsYXRlcyBldmVyeXRoaW5nIGluIDUxMiBieXRlCisgKiBzZWN0b3JzIGJ1dCBpbnRlZ3JpdHkgbWV0YWRhdGEgaXMgZG9uZSBpbiB0ZXJtcyBvZiB0aGUgaGFyZHdhcmUKKyAqIHNlY3RvciBzaXplIG9mIHRoZSBzdG9yYWdlIGRldmljZS4gIENvbnZlcnQgdGhlIGJsb2NrIGxheWVyIHNlY3RvcnMKKyAqIHRvIHBoeXNpY2FsIHNlY3RvcnMuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJpb19pbnRlZ3JpdHlfaHdfc2VjdG9ycyhzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksCisJCQkJCQkgICAgdW5zaWduZWQgaW50IHNlY3RvcnMpCit7CisJLyogQXQgdGhpcyBwb2ludCB0aGVyZSBhcmUgb25seSA1MTJiIG9yIDQwOTZiIERJRi9FUFAgZGV2aWNlcyAqLworCWlmIChiaS0+c2VjdG9yX3NpemUgPT0gNDA5NikKKwkJcmV0dXJuIHNlY3RvcnMgPj49IDM7CisKKwlyZXR1cm4gc2VjdG9yczsKK30KKworLyoqCisgKiBiaW9faW50ZWdyaXR5X3RhZ19zaXplIC0gUmV0cmlldmUgaW50ZWdyaXR5IHRhZyBzcGFjZQorICogQGJpbzoJYmlvIHRvIGluc3BlY3QKKyAqCisgKiBEZXNjcmlwdGlvbjogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGFnIGJ5dGVzIHRoYXQgY2FuIGJlCisgKiBhdHRhY2hlZCB0byB0aGlzIGJpby4gRmlsZXN5c3RlbXMgY2FuIHVzZSB0aGlzIHRvIGRldGVybWluZSBob3cKKyAqIG11Y2ggbWV0YWRhdGEgdG8gYXR0YWNoIHRvIGFuIEkvTy4KKyAqLwordW5zaWduZWQgaW50IGJpb19pbnRlZ3JpdHlfdGFnX3NpemUoc3RydWN0IGJpbyAqYmlvKQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiaW8tPmJpX2JkZXYpOworCisJQlVHX09OKGJpby0+Ymlfc2l6ZSA9PSAwKTsKKworCXJldHVybiBiaS0+dGFnX3NpemUgKiAoYmlvLT5iaV9zaXplIC8gYmktPnNlY3Rvcl9zaXplKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV90YWdfc2l6ZSk7CisKK2ludCBiaW9faW50ZWdyaXR5X3RhZyhzdHJ1Y3QgYmlvICpiaW8sIHZvaWQgKnRhZ19idWYsIHVuc2lnbmVkIGludCBsZW4sIGludCBzZXQpCit7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0gYmlvLT5iaV9pbnRlZ3JpdHk7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJdW5zaWduZWQgaW50IG5yX3NlY3RvcnM7CisKKwlCVUdfT04oYmlwLT5iaXBfYnVmID09IE5VTEwpOworCisJaWYgKGJpLT50YWdfc2l6ZSA9PSAwKQorCQlyZXR1cm4gLTE7CisKKwlucl9zZWN0b3JzID0gYmlvX2ludGVncml0eV9od19zZWN0b3JzKGJpLAorCQkJCQlESVZfUk9VTkRfVVAobGVuLCBiaS0+dGFnX3NpemUpKTsKKworCWlmIChucl9zZWN0b3JzICogYmktPnR1cGxlX3NpemUgPiBiaXAtPmJpcF9zaXplKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IHRhZyB0b28gYmlnIGZvciBiaW86ICV1ID4gJXVcbiIsCisJCSAgICAgICBfX2Z1bmNfXywgbnJfc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplLCBiaXAtPmJpcF9zaXplKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChzZXQpCisJCWJpLT5zZXRfdGFnX2ZuKGJpcC0+YmlwX2J1ZiwgdGFnX2J1ZiwgbnJfc2VjdG9ycyk7CisJZWxzZQorCQliaS0+Z2V0X3RhZ19mbihiaXAtPmJpcF9idWYsIHRhZ19idWYsIG5yX3NlY3RvcnMpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYmlvX2ludGVncml0eV9zZXRfdGFnIC0gQXR0YWNoIGEgdGFnIGJ1ZmZlciB0byBhIGJpbworICogQGJpbzoJYmlvIHRvIGF0dGFjaCBidWZmZXIgdG8KKyAqIEB0YWdfYnVmOglQb2ludGVyIHRvIGEgYnVmZmVyIGNvbnRhaW5pbmcgdGFnIGRhdGEKKyAqIEBsZW46CUxlbmd0aCBvZiB0aGUgaW5jbHVkZWQgYnVmZmVyCisgKgorICogRGVzY3JpcHRpb246IFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRhZyBhIGJpbyBieSBsZXZlcmFnaW5nIHRoZSBleHRyYQorICogc3BhY2UgcHJvdmlkZWQgYnkgZGV2aWNlcyBmb3JtYXR0ZWQgd2l0aCBpbnRlZ3JpdHkgcHJvdGVjdGlvbi4gIFRoZQorICogc2l6ZSBvZiB0aGUgaW50ZWdyaXR5IGJ1ZmZlciBtdXN0IGJlIDw9IHRvIHRoZSBzaXplIHJlcG9ydGVkIGJ5CisgKiBiaW9faW50ZWdyaXR5X3RhZ19zaXplKCkuCisgKi8KK2ludCBiaW9faW50ZWdyaXR5X3NldF90YWcoc3RydWN0IGJpbyAqYmlvLCB2b2lkICp0YWdfYnVmLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCUJVR19PTihiaW9fZGF0YV9kaXIoYmlvKSAhPSBXUklURSk7CisKKwlyZXR1cm4gYmlvX2ludGVncml0eV90YWcoYmlvLCB0YWdfYnVmLCBsZW4sIDEpOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X3NldF90YWcpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfZ2V0X3RhZyAtIFJldHJpZXZlIGEgdGFnIGJ1ZmZlciBmcm9tIGEgYmlvCisgKiBAYmlvOgliaW8gdG8gcmV0cmlldmUgYnVmZmVyIGZyb20KKyAqIEB0YWdfYnVmOglQb2ludGVyIHRvIGEgYnVmZmVyIGZvciB0aGUgdGFnIGRhdGEKKyAqIEBsZW46CUxlbmd0aCBvZiB0aGUgdGFyZ2V0IGJ1ZmZlcgorICoKKyAqIERlc2NyaXB0aW9uOiBVc2UgdGhpcyBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgdGFnIGJ1ZmZlciBmcm9tIGEKKyAqIGNvbXBsZXRlZCBJL08uIFRoZSBzaXplIG9mIHRoZSBpbnRlZ3JpdHkgYnVmZmVyIG11c3QgYmUgPD0gdG8gdGhlCisgKiBzaXplIHJlcG9ydGVkIGJ5IGJpb19pbnRlZ3JpdHlfdGFnX3NpemUoKS4KKyAqLworaW50IGJpb19pbnRlZ3JpdHlfZ2V0X3RhZyhzdHJ1Y3QgYmlvICpiaW8sIHZvaWQgKnRhZ19idWYsIHVuc2lnbmVkIGludCBsZW4pCit7CisJQlVHX09OKGJpb19kYXRhX2RpcihiaW8pICE9IFJFQUQpOworCisJcmV0dXJuIGJpb19pbnRlZ3JpdHlfdGFnKGJpbywgdGFnX2J1ZiwgbGVuLCAwKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9nZXRfdGFnKTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2dlbmVyYXRlIC0gR2VuZXJhdGUgaW50ZWdyaXR5IG1ldGFkYXRhIGZvciBhIGJpbworICogQGJpbzoJYmlvIHRvIGdlbmVyYXRlIGludGVncml0eSBtZXRhZGF0YSBmb3IKKyAqCisgKiBEZXNjcmlwdGlvbjogR2VuZXJhdGVzIGludGVncml0eSBtZXRhZGF0YSBmb3IgYSBiaW8gYnkgY2FsbGluZyB0aGUKKyAqIGJsb2NrIGRldmljZSdzIGdlbmVyYXRpb24gY2FsbGJhY2sgZnVuY3Rpb24uICBUaGUgYmlvIG11c3QgaGF2ZSBhCisgKiBiaXAgYXR0YWNoZWQgd2l0aCBlbm91Z2ggcm9vbSB0byBhY2NvbW1vZGF0ZSB0aGUgZ2VuZXJhdGVkCisgKiBpbnRlZ3JpdHkgbWV0YWRhdGEuCisgKi8KK3N0YXRpYyB2b2lkIGJpb19pbnRlZ3JpdHlfZ2VuZXJhdGUoc3RydWN0IGJpbyAqYmlvKQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiaW8tPmJpX2JkZXYpOworCXN0cnVjdCBibGtfaW50ZWdyaXR5X2V4Y2hnIGJpeDsKKwlzdHJ1Y3QgYmlvX3ZlYyAqYnY7CisJc2VjdG9yX3Qgc2VjdG9yID0gYmlvLT5iaV9zZWN0b3I7CisJdW5zaWduZWQgaW50IGksIHNlY3RvcnMsIHRvdGFsOworCXZvaWQgKnByb3RfYnVmID0gYmlvLT5iaV9pbnRlZ3JpdHktPmJpcF9idWY7CisKKwl0b3RhbCA9IDA7CisJYml4LmRpc2tfbmFtZSA9IGJpby0+YmlfYmRldi0+YmRfZGlzay0+ZGlza19uYW1lOworCWJpeC5zZWN0b3Jfc2l6ZSA9IGJpLT5zZWN0b3Jfc2l6ZTsKKworCWJpb19mb3JfZWFjaF9zZWdtZW50KGJ2LCBiaW8sIGkpIHsKKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhidi0+YnZfcGFnZSwgS01fVVNFUjApOworCQliaXguZGF0YV9idWYgPSBrYWRkciArIGJ2LT5idl9vZmZzZXQ7CisJCWJpeC5kYXRhX3NpemUgPSBidi0+YnZfbGVuOworCQliaXgucHJvdF9idWYgPSBwcm90X2J1ZjsKKwkJYml4LnNlY3RvciA9IHNlY3RvcjsKKworCQliaS0+Z2VuZXJhdGVfZm4oJmJpeCk7CisKKwkJc2VjdG9ycyA9IGJ2LT5idl9sZW4gLyBiaS0+c2VjdG9yX3NpemU7CisJCXNlY3RvciArPSBzZWN0b3JzOworCQlwcm90X2J1ZiArPSBzZWN0b3JzICogYmktPnR1cGxlX3NpemU7CisJCXRvdGFsICs9IHNlY3RvcnMgKiBiaS0+dHVwbGVfc2l6ZTsKKwkJQlVHX09OKHRvdGFsID4gYmlvLT5iaV9pbnRlZ3JpdHktPmJpcF9zaXplKTsKKworCQlrdW5tYXBfYXRvbWljKGthZGRyLCBLTV9VU0VSMCk7CisJfQorfQorCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfcHJlcCAtIFByZXBhcmUgYmlvIGZvciBpbnRlZ3JpdHkgSS9PCisgKiBAYmlvOgliaW8gdG8gcHJlcGFyZQorICoKKyAqIERlc2NyaXB0aW9uOiBBbGxvY2F0ZXMgYSBidWZmZXIgZm9yIGludGVncml0eSBtZXRhZGF0YSwgbWFwcyB0aGUKKyAqIHBhZ2VzIGFuZCBhdHRhY2hlcyB0aGVtIHRvIGEgYmlvLiAgVGhlIGJpbyBtdXN0IGhhdmUgZGF0YQorICogZGlyZWN0aW9uLCB0YXJnZXQgZGV2aWNlIGFuZCBzdGFydCBzZWN0b3Igc2V0IHByaW90IHRvIGNhbGxpbmcuICBJbgorICogdGhlIFdSSVRFIGNhc2UsIGludGVncml0eSBtZXRhZGF0YSB3aWxsIGJlIGdlbmVyYXRlZCB1c2luZyB0aGUKKyAqIGJsb2NrIGRldmljZSdzIGludGVncml0eSBmdW5jdGlvbi4gIEluIHRoZSBSRUFEIGNhc2UsIHRoZSBidWZmZXIKKyAqIHdpbGwgYmUgcHJlcGFyZWQgZm9yIERNQSBhbmQgYSBzdWl0YWJsZSBlbmRfaW8gaGFuZGxlciBzZXQgdXAuCisgKi8KK2ludCBiaW9faW50ZWdyaXR5X3ByZXAoc3RydWN0IGJpbyAqYmlvKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcDsKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmk7CisJc3RydWN0IHJlcXVlc3RfcXVldWUgKnE7CisJdm9pZCAqYnVmOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsKKwl1bnNpZ25lZCBpbnQgbGVuLCBucl9wYWdlczsKKwl1bnNpZ25lZCBpbnQgYnl0ZXMsIG9mZnNldCwgaTsKKwl1bnNpZ25lZCBpbnQgc2VjdG9yczsKKworCWJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJcSA9IGJkZXZfZ2V0X3F1ZXVlKGJpby0+YmlfYmRldik7CisJQlVHX09OKGJpID09IE5VTEwpOworCUJVR19PTihiaW9faW50ZWdyaXR5KGJpbykpOworCisJc2VjdG9ycyA9IGJpb19pbnRlZ3JpdHlfaHdfc2VjdG9ycyhiaSwgYmlvX3NlY3RvcnMoYmlvKSk7CisKKwkvKiBBbGxvY2F0ZSBrZXJuZWwgYnVmZmVyIGZvciBwcm90ZWN0aW9uIGRhdGEgKi8KKwlsZW4gPSBzZWN0b3JzICogYmxrX2ludGVncml0eV90dXBsZV9zaXplKGJpKTsKKwlidWYgPSBrbWFsbG9jKGxlbiwgR0ZQX05PSU8gfCBfX0dGUF9OT0ZBSUwgfCBxLT5ib3VuY2VfZ2ZwKTsKKwlpZiAodW5saWtlbHkoYnVmID09IE5VTEwpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiY291bGQgbm90IGFsbG9jYXRlIGludGVncml0eSBidWZmZXJcbiIpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwllbmQgPSAoKCh1bnNpZ25lZCBsb25nKSBidWYpICsgbGVuICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKKwlzdGFydCA9ICgodW5zaWduZWQgbG9uZykgYnVmKSA+PiBQQUdFX1NISUZUOworCW5yX3BhZ2VzID0gZW5kIC0gc3RhcnQ7CisKKwkvKiBBbGxvY2F0ZSBiaW8gaW50ZWdyaXR5IHBheWxvYWQgYW5kIGludGVncml0eSB2ZWN0b3JzICovCisJYmlwID0gYmlvX2ludGVncml0eV9hbGxvYyhiaW8sIEdGUF9OT0lPLCBucl9wYWdlcyk7CisJaWYgKHVubGlrZWx5KGJpcCA9PSBOVUxMKSkgeworCQlwcmludGsoS0VSTl9FUlIgImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGludGVncml0eSBiaW9zZXRcbiIpOworCQlrZnJlZShidWYpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwliaXAtPmJpcF9idWYgPSBidWY7CisJYmlwLT5iaXBfc2l6ZSA9IGxlbjsKKwliaXAtPmJpcF9zZWN0b3IgPSBiaW8tPmJpX3NlY3RvcjsKKworCS8qIE1hcCBpdCAqLworCW9mZnNldCA9IG9mZnNldF9pbl9wYWdlKGJ1Zik7CisJZm9yIChpID0gMCA7IGkgPCBucl9wYWdlcyA7IGkrKykgeworCQlpbnQgcmV0OworCQlieXRlcyA9IFBBR0VfU0laRSAtIG9mZnNldDsKKworCQlpZiAobGVuIDw9IDApCisJCQlicmVhazsKKworCQlpZiAoYnl0ZXMgPiBsZW4pCisJCQlieXRlcyA9IGxlbjsKKworCQlyZXQgPSBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKGJpbywgdmlydF90b19wYWdlKGJ1ZiksCisJCQkJCSAgICAgYnl0ZXMsIG9mZnNldCk7CisKKwkJaWYgKHJldCA9PSAwKQorCQkJcmV0dXJuIDA7CisKKwkJaWYgKHJldCA8IGJ5dGVzKQorCQkJYnJlYWs7CisKKwkJYnVmICs9IGJ5dGVzOworCQlsZW4gLT0gYnl0ZXM7CisJCW9mZnNldCA9IDA7CisJfQorCisJLyogSW5zdGFsbCBjdXN0b20gSS9PIGNvbXBsZXRpb24gaGFuZGxlciBpZiByZWFkIHZlcmlmeSBpcyBlbmFibGVkICovCisJaWYgKGJpb19kYXRhX2RpcihiaW8pID09IFJFQUQpIHsKKwkJYmlwLT5iaXBfZW5kX2lvID0gYmlvLT5iaV9lbmRfaW87CisJCWJpby0+YmlfZW5kX2lvID0gYmlvX2ludGVncml0eV9lbmRpbzsKKwl9CisKKwkvKiBBdXRvLWdlbmVyYXRlIGludGVncml0eSBtZXRhZGF0YSBpZiB0aGlzIGlzIGEgd3JpdGUgKi8KKwlpZiAoYmlvX2RhdGFfZGlyKGJpbykgPT0gV1JJVEUpCisJCWJpb19pbnRlZ3JpdHlfZ2VuZXJhdGUoYmlvKTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X3ByZXApOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfdmVyaWZ5IC0gVmVyaWZ5IGludGVncml0eSBtZXRhZGF0YSBmb3IgYSBiaW8KKyAqIEBiaW86CWJpbyB0byB2ZXJpZnkKKyAqCisgKiBEZXNjcmlwdGlvbjogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoZSBpbnRlZ3JpdHkgb2YgYQorICogYmlvLgkgVGhlIGRhdGEgaW4gdGhlIGJpbyBpb192ZWMgaXMgY29tcGFyZWQgdG8gdGhlIGludGVncml0eQorICogbWV0YWRhdGEgcmV0dXJuZWQgYnkgdGhlIEhCQS4KKyAqLworc3RhdGljIGludCBiaW9faW50ZWdyaXR5X3ZlcmlmeShzdHJ1Y3QgYmlvICpiaW8pCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJc3RydWN0IGJsa19pbnRlZ3JpdHlfZXhjaGcgYml4OworCXN0cnVjdCBiaW9fdmVjICpidjsKKwlzZWN0b3JfdCBzZWN0b3IgPSBiaW8tPmJpX2ludGVncml0eS0+YmlwX3NlY3RvcjsKKwl1bnNpZ25lZCBpbnQgaSwgc2VjdG9ycywgdG90YWwsIHJldDsKKwl2b2lkICpwcm90X2J1ZiA9IGJpby0+YmlfaW50ZWdyaXR5LT5iaXBfYnVmOworCisJcmV0ID0gdG90YWwgPSAwOworCWJpeC5kaXNrX25hbWUgPSBiaW8tPmJpX2JkZXYtPmJkX2Rpc2stPmRpc2tfbmFtZTsKKwliaXguc2VjdG9yX3NpemUgPSBiaS0+c2VjdG9yX3NpemU7CisKKwliaW9fZm9yX2VhY2hfc2VnbWVudChidiwgYmlvLCBpKSB7CisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMoYnYtPmJ2X3BhZ2UsIEtNX1VTRVIwKTsKKwkJYml4LmRhdGFfYnVmID0ga2FkZHIgKyBidi0+YnZfb2Zmc2V0OworCQliaXguZGF0YV9zaXplID0gYnYtPmJ2X2xlbjsKKwkJYml4LnByb3RfYnVmID0gcHJvdF9idWY7CisJCWJpeC5zZWN0b3IgPSBzZWN0b3I7CisKKwkJcmV0ID0gYmktPnZlcmlmeV9mbigmYml4KTsKKworCQlpZiAocmV0KSB7CisJCQlrdW5tYXBfYXRvbWljKGthZGRyLCBLTV9VU0VSMCk7CisJCQlicmVhazsKKwkJfQorCisJCXNlY3RvcnMgPSBidi0+YnZfbGVuIC8gYmktPnNlY3Rvcl9zaXplOworCQlzZWN0b3IgKz0gc2VjdG9yczsKKwkJcHJvdF9idWYgKz0gc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplOworCQl0b3RhbCArPSBzZWN0b3JzICogYmktPnR1cGxlX3NpemU7CisJCUJVR19PTih0b3RhbCA+IGJpby0+YmlfaW50ZWdyaXR5LT5iaXBfc2l6ZSk7CisKKwkJa3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qKgorICogYmlvX2ludGVncml0eV92ZXJpZnlfZm4gLSBJbnRlZ3JpdHkgSS9PIGNvbXBsZXRpb24gd29ya2VyCisgKiBAd29yazoJV29yayBzdHJ1Y3Qgc3RvcmVkIGluIGJpbyB0byBiZSB2ZXJpZmllZAorICoKKyAqIERlc2NyaXB0aW9uOiBUaGlzIHdvcmtxdWV1ZSBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gY29tcGxldGUgYSBSRUFECisgKiByZXF1ZXN0LiAgVGhlIGZ1bmN0aW9uIHZlcmlmaWVzIHRoZSB0cmFuc2ZlcnJlZCBpbnRlZ3JpdHkgbWV0YWRhdGEKKyAqIGFuZCB0aGVuIGNhbGxzIHRoZSBvcmlnaW5hbCBiaW8gZW5kX2lvIGZ1bmN0aW9uLgorICovCitzdGF0aWMgdm9pZCBiaW9faW50ZWdyaXR5X3ZlcmlmeV9mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQsIGJpcF93b3JrKTsKKwlzdHJ1Y3QgYmlvICpiaW8gPSBiaXAtPmJpcF9iaW87CisJaW50IGVycm9yID0gYmlwLT5iaXBfZXJyb3I7CisKKwlpZiAoYmlvX2ludGVncml0eV92ZXJpZnkoYmlvKSkgeworCQljbGVhcl9iaXQoQklPX1VQVE9EQVRFLCAmYmlvLT5iaV9mbGFncyk7CisJCWVycm9yID0gLUVJTzsKKwl9CisKKwkvKiBSZXN0b3JlIG9yaWdpbmFsIGJpbyBjb21wbGV0aW9uIGhhbmRsZXIgKi8KKwliaW8tPmJpX2VuZF9pbyA9IGJpcC0+YmlwX2VuZF9pbzsKKworCWlmIChiaW8tPmJpX2VuZF9pbykKKwkJYmlvLT5iaV9lbmRfaW8oYmlvLCBlcnJvcik7Cit9CisKKy8qKgorICogYmlvX2ludGVncml0eV9lbmRpbyAtIEludGVncml0eSBJL08gY29tcGxldGlvbiBmdW5jdGlvbgorICogQGJpbzoJUHJvdGVjdGVkIGJpbworICogQGVycm9yOglQb2ludGVyIHRvIGVycm5vCisgKgorICogRGVzY3JpcHRpb246IENvbXBsZXRpb24gZm9yIGludGVncml0eSBJL08KKyAqCisgKiBOb3JtYWxseSBJL08gY29tcGxldGlvbiBpcyBkb25lIGluIGludGVycnVwdCBjb250ZXh0LiAgSG93ZXZlciwKKyAqIHZlcmlmeWluZyBJL08gaW50ZWdyaXR5IGlzIGEgdGltZS1jb25zdW1pbmcgdGFzayB3aGljaCBtdXN0IGJlIHJ1bgorICogaW4gcHJvY2VzcyBjb250ZXh0LglUaGlzIGZ1bmN0aW9uIHBvc3Rwb25lcyBjb21wbGV0aW9uCisgKiBhY2NvcmRpbmdseS4KKyAqLwordm9pZCBiaW9faW50ZWdyaXR5X2VuZGlvKHN0cnVjdCBiaW8gKmJpbywgaW50IGVycm9yKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCisJQlVHX09OKGJpcC0+YmlwX2JpbyAhPSBiaW8pOworCisJYmlwLT5iaXBfZXJyb3IgPSBlcnJvcjsKKwlJTklUX1dPUksoJmJpcC0+YmlwX3dvcmssIGJpb19pbnRlZ3JpdHlfdmVyaWZ5X2ZuKTsKKwlxdWV1ZV93b3JrKGtpbnRlZ3JpdHlkX3dxLCAmYmlwLT5iaXBfd29yayk7Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfZW5kaW8pOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfbWFya19oZWFkIC0gQWR2YW5jZSBiaXBfdmVjIHNraXAgYnl0ZXMKKyAqIEBiaXA6CUludGVncml0eSB2ZWN0b3IgdG8gYWR2YW5jZQorICogQHNraXA6CU51bWJlciBvZiBieXRlcyB0byBhZHZhbmNlIGl0CisgKi8KK3ZvaWQgYmlvX2ludGVncml0eV9tYXJrX2hlYWQoc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwLAorCQkJICAgICB1bnNpZ25lZCBpbnQgc2tpcCkKK3sKKwlzdHJ1Y3QgYmlvX3ZlYyAqaXY7CisJdW5zaWduZWQgaW50IGk7CisKKwliaXBfZm9yX2VhY2hfdmVjKGl2LCBiaXAsIGkpIHsKKwkJaWYgKHNraXAgPT0gMCkgeworCQkJYmlwLT5iaXBfaWR4ID0gaTsKKwkJCXJldHVybjsKKwkJfSBlbHNlIGlmIChza2lwID49IGl2LT5idl9sZW4pIHsKKwkJCXNraXAgLT0gaXYtPmJ2X2xlbjsKKwkJfSBlbHNlIHsgLyogc2tpcCA8IGl2LT5idl9sZW4pICovCisJCQlpdi0+YnZfb2Zmc2V0ICs9IHNraXA7CisJCQlpdi0+YnZfbGVuIC09IHNraXA7CisJCQliaXAtPmJpcF9pZHggPSBpOworCQkJcmV0dXJuOworCQl9CisJfQorfQorCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfbWFya190YWlsIC0gVHJ1bmNhdGUgYmlwX3ZlYyB0byBiZSBsZW4gYnl0ZXMgbG9uZworICogQGJpcDoJSW50ZWdyaXR5IHZlY3RvciB0byB0cnVuY2F0ZQorICogQGxlbjoJTmV3IGxlbmd0aCBvZiBpbnRlZ3JpdHkgdmVjdG9yCisgKi8KK3ZvaWQgYmlvX2ludGVncml0eV9tYXJrX3RhaWwoc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwLAorCQkJICAgICB1bnNpZ25lZCBpbnQgbGVuKQoreworCXN0cnVjdCBiaW9fdmVjICppdjsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWJpcF9mb3JfZWFjaF92ZWMoaXYsIGJpcCwgaSkgeworCQlpZiAobGVuID09IDApIHsKKwkJCWJpcC0+YmlwX3ZjbnQgPSBpOworCQkJcmV0dXJuOworCQl9IGVsc2UgaWYgKGxlbiA+PSBpdi0+YnZfbGVuKSB7CisJCQlsZW4gLT0gaXYtPmJ2X2xlbjsKKwkJfSBlbHNlIHsgLyogbGVuIDwgaXYtPmJ2X2xlbikgKi8KKwkJCWl2LT5idl9sZW4gPSBsZW47CisJCQlsZW4gPSAwOworCQl9CisJfQorfQorCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfYWR2YW5jZSAtIEFkdmFuY2UgaW50ZWdyaXR5IHZlY3RvcgorICogQGJpbzoJYmlvIHdob3NlIGludGVncml0eSB2ZWN0b3IgdG8gdXBkYXRlCisgKiBAYnl0ZXNfZG9uZToJbnVtYmVyIG9mIGRhdGEgYnl0ZXMgdGhhdCBoYXZlIGJlZW4gY29tcGxldGVkCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBob3cgbWFueSBpbnRlZ3JpdHkgYnl0ZXMgdGhlCisgKiBudW1iZXIgb2YgY29tcGxldGVkIGRhdGEgYnl0ZXMgY29ycmVzcG9uZCB0byBhbmQgYWR2YW5jZXMgdGhlCisgKiBpbnRlZ3JpdHkgdmVjdG9yIGFjY29yZGluZ2x5LgorICovCit2b2lkIGJpb19pbnRlZ3JpdHlfYWR2YW5jZShzdHJ1Y3QgYmlvICpiaW8sIHVuc2lnbmVkIGludCBieXRlc19kb25lKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiaW8tPmJpX2JkZXYpOworCXVuc2lnbmVkIGludCBucl9zZWN0b3JzOworCisJQlVHX09OKGJpcCA9PSBOVUxMKTsKKwlCVUdfT04oYmkgPT0gTlVMTCk7CisKKwlucl9zZWN0b3JzID0gYmlvX2ludGVncml0eV9od19zZWN0b3JzKGJpLCBieXRlc19kb25lID4+IDkpOworCWJpb19pbnRlZ3JpdHlfbWFya19oZWFkKGJpcCwgbnJfc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9hZHZhbmNlKTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X3RyaW0gLSBUcmltIGludGVncml0eSB2ZWN0b3IKKyAqIEBiaW86CWJpbyB3aG9zZSBpbnRlZ3JpdHkgdmVjdG9yIHRvIHVwZGF0ZQorICogQG9mZnNldDoJb2Zmc2V0IHRvIGZpcnN0IGRhdGEgc2VjdG9yCisgKiBAc2VjdG9yczoJbnVtYmVyIG9mIGRhdGEgc2VjdG9ycworICoKKyAqIERlc2NyaXB0aW9uOiBVc2VkIHRvIHRyaW0gdGhlIGludGVncml0eSB2ZWN0b3IgaW4gYSBjbG9uZWQgYmlvLgorICogVGhlIGl2ZWMgd2lsbCBiZSBhZHZhbmNlZCBjb3JyZXNwb25kaW5nIHRvICdvZmZzZXQnIGRhdGEgc2VjdG9ycworICogYW5kIHRoZSBsZW5ndGggd2lsbCBiZSB0cnVuY2F0ZWQgY29ycmVzcG9uZGluZyB0byAnbGVuJyBkYXRhCisgKiBzZWN0b3JzLgorICovCit2b2lkIGJpb19pbnRlZ3JpdHlfdHJpbShzdHJ1Y3QgYmlvICpiaW8sIHVuc2lnbmVkIGludCBvZmZzZXQsCisJCQl1bnNpZ25lZCBpbnQgc2VjdG9ycykKK3sKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaXAgPSBiaW8tPmJpX2ludGVncml0eTsKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkgPSBiZGV2X2dldF9pbnRlZ3JpdHkoYmlvLT5iaV9iZGV2KTsKKwl1bnNpZ25lZCBpbnQgbnJfc2VjdG9yczsKKworCUJVR19PTihiaXAgPT0gTlVMTCk7CisJQlVHX09OKGJpID09IE5VTEwpOworCUJVR19PTighYmlvX2ZsYWdnZWQoYmlvLCBCSU9fQ0xPTkVEKSk7CisKKwlucl9zZWN0b3JzID0gYmlvX2ludGVncml0eV9od19zZWN0b3JzKGJpLCBzZWN0b3JzKTsKKwliaXAtPmJpcF9zZWN0b3IgPSBiaXAtPmJpcF9zZWN0b3IgKyBvZmZzZXQ7CisJYmlvX2ludGVncml0eV9tYXJrX2hlYWQoYmlwLCBvZmZzZXQgKiBiaS0+dHVwbGVfc2l6ZSk7CisJYmlvX2ludGVncml0eV9tYXJrX3RhaWwoYmlwLCBzZWN0b3JzICogYmktPnR1cGxlX3NpemUpOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X3RyaW0pOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfc3BsaXQgLSBTcGxpdCBpbnRlZ3JpdHkgbWV0YWRhdGEKKyAqIEBiaW86CVByb3RlY3RlZCBiaW8KKyAqIEBicDoJCVJlc3VsdGluZyBiaW9fcGFpcgorICogQHNlY3RvcnM6CU9mZnNldAorICoKKyAqIERlc2NyaXB0aW9uOiBTcGxpdHMgYW4gaW50ZWdyaXR5IHBhZ2UgaW50byBhIGJpb19wYWlyLgorICovCit2b2lkIGJpb19pbnRlZ3JpdHlfc3BsaXQoc3RydWN0IGJpbyAqYmlvLCBzdHJ1Y3QgYmlvX3BhaXIgKmJwLCBpbnQgc2VjdG9ycykKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmk7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0gYmlvLT5iaV9pbnRlZ3JpdHk7CisJdW5zaWduZWQgaW50IG5yX3NlY3RvcnM7CisKKwlpZiAoYmlvX2ludGVncml0eShiaW8pID09IDApCisJCXJldHVybjsKKworCWJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJQlVHX09OKGJpID09IE5VTEwpOworCUJVR19PTihiaXAtPmJpcF92Y250ICE9IDEpOworCisJbnJfc2VjdG9ycyA9IGJpb19pbnRlZ3JpdHlfaHdfc2VjdG9ycyhiaSwgc2VjdG9ycyk7CisKKwlicC0+YmlvMS5iaV9pbnRlZ3JpdHkgPSAmYnAtPmJpcDE7CisJYnAtPmJpbzIuYmlfaW50ZWdyaXR5ID0gJmJwLT5iaXAyOworCisJYnAtPml2MSA9IGJpcC0+YmlwX3ZlY1swXTsKKwlicC0+aXYyID0gYmlwLT5iaXBfdmVjWzBdOworCisJYnAtPmJpcDEuYmlwX3ZlYyA9ICZicC0+aXYxOworCWJwLT5iaXAyLmJpcF92ZWMgPSAmYnAtPml2MjsKKworCWJwLT5pdjEuYnZfbGVuID0gc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplOworCWJwLT5pdjIuYnZfb2Zmc2V0ICs9IHNlY3RvcnMgKiBiaS0+dHVwbGVfc2l6ZTsKKwlicC0+aXYyLmJ2X2xlbiAtPSBzZWN0b3JzICogYmktPnR1cGxlX3NpemU7CisKKwlicC0+YmlwMS5iaXBfc2VjdG9yID0gYmlvLT5iaV9pbnRlZ3JpdHktPmJpcF9zZWN0b3I7CisJYnAtPmJpcDIuYmlwX3NlY3RvciA9IGJpby0+YmlfaW50ZWdyaXR5LT5iaXBfc2VjdG9yICsgbnJfc2VjdG9yczsKKworCWJwLT5iaXAxLmJpcF92Y250ID0gYnAtPmJpcDIuYmlwX3ZjbnQgPSAxOworCWJwLT5iaXAxLmJpcF9pZHggPSBicC0+YmlwMi5iaXBfaWR4ID0gMDsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9zcGxpdCk7CisKKy8qKgorICogYmlvX2ludGVncml0eV9jbG9uZSAtIENhbGxiYWNrIGZvciBjbG9uaW5nIGJpb3Mgd2l0aCBpbnRlZ3JpdHkgbWV0YWRhdGEKKyAqIEBiaW86CU5ldyBiaW8KKyAqIEBiaW9fc3JjOglPcmlnaW5hbCBiaW8KKyAqIEBiczoJCWJpb19zZXQgdG8gYWxsb2NhdGUgYmlwIGZyb20KKyAqCisgKiBEZXNjcmlwdGlvbjoJQ2FsbGVkIHRvIGFsbG9jYXRlIGEgYmlwIHdoZW4gY2xvbmluZyBhIGJpbworICovCitpbnQgYmlvX2ludGVncml0eV9jbG9uZShzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBiaW8gKmJpb19zcmMsCisJCQlzdHJ1Y3QgYmlvX3NldCAqYnMpCit7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwX3NyYyA9IGJpb19zcmMtPmJpX2ludGVncml0eTsKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaXA7CisKKwlCVUdfT04oYmlwX3NyYyA9PSBOVUxMKTsKKworCWJpcCA9IGJpb19pbnRlZ3JpdHlfYWxsb2NfYmlvc2V0KGJpbywgR0ZQX05PSU8sIGJpcF9zcmMtPmJpcF92Y250LCBicyk7CisKKwlpZiAoYmlwID09IE5VTEwpCisJCXJldHVybiAtRUlPOworCisJbWVtY3B5KGJpcC0+YmlwX3ZlYywgYmlwX3NyYy0+YmlwX3ZlYywKKwkgICAgICAgYmlwX3NyYy0+YmlwX3ZjbnQgKiBzaXplb2Yoc3RydWN0IGJpb192ZWMpKTsKKworCWJpcC0+YmlwX3NlY3RvciA9IGJpcF9zcmMtPmJpcF9zZWN0b3I7CisJYmlwLT5iaXBfdmNudCA9IGJpcF9zcmMtPmJpcF92Y250OworCWJpcC0+YmlwX2lkeCA9IGJpcF9zcmMtPmJpcF9pZHg7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9jbG9uZSk7CisKK2ludCBiaW9zZXRfaW50ZWdyaXR5X2NyZWF0ZShzdHJ1Y3QgYmlvX3NldCAqYnMsIGludCBwb29sX3NpemUpCit7CisJYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCA9IG1lbXBvb2xfY3JlYXRlX3NsYWJfcG9vbChwb29sX3NpemUsCisJCQkJCQkJICBiaW9faW50ZWdyaXR5X3NsYWIpOworCWlmICghYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGJpb3NldF9pbnRlZ3JpdHlfY3JlYXRlKTsKKwordm9pZCBiaW9zZXRfaW50ZWdyaXR5X2ZyZWUoc3RydWN0IGJpb19zZXQgKmJzKQoreworCWlmIChicy0+YmlvX2ludGVncml0eV9wb29sKQorCQltZW1wb29sX2Rlc3Ryb3koYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCk7Cit9CitFWFBPUlRfU1lNQk9MKGJpb3NldF9pbnRlZ3JpdHlfZnJlZSk7CisKK3ZvaWQgX19pbml0IGJpb19pbnRlZ3JpdHlfaW5pdF9zbGFiKHZvaWQpCit7CisJYmlvX2ludGVncml0eV9zbGFiID0gS01FTV9DQUNIRShiaW9faW50ZWdyaXR5X3BheWxvYWQsCisJCQkJCVNMQUJfSFdDQUNIRV9BTElHTnxTTEFCX1BBTklDKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9pbml0X3NsYWIpOworCitzdGF0aWMgaW50IF9faW5pdCBpbnRlZ3JpdHlfaW5pdCh2b2lkKQoreworCWtpbnRlZ3JpdHlkX3dxID0gY3JlYXRlX3dvcmtxdWV1ZSgia2ludGVncml0eWQiKTsKKworCWlmICgha2ludGVncml0eWRfd3EpCisJCXBhbmljKCJGYWlsZWQgdG8gY3JlYXRlIGtpbnRlZ3JpdHlkXG4iKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKGludGVncml0eV9pbml0KTsKZGlmZiAtLWdpdCBhL2ZzL2Jpby5jIGIvZnMvYmlvLmMKaW5kZXggNzg1NjI1Ny4uODgzMjJiMCAxMDA2NDQKLS0tIGEvZnMvYmlvLmMKKysrIGIvZnMvYmlvLmMKQEAgLTI4LDI1ICsyOCwxMCBAQAogI2luY2x1ZGUgPGxpbnV4L2Jsa3RyYWNlX2FwaS5oPgogI2luY2x1ZGUgPHNjc2kvc2cuaD4JCS8qIGZvciBzdHJ1Y3Qgc2dfaW92ZWMgKi8KIAotI2RlZmluZSBCSU9fUE9PTF9TSVpFIDIKLQogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpiaW9fc2xhYiBfX3JlYWRfbW9zdGx5OwogCi0jZGVmaW5lIEJJT1ZFQ19OUl9QT09MUyA2Ci0KLS8qCi0gKiBhIHNtYWxsIG51bWJlciBvZiBlbnRyaWVzIGlzIGZpbmUsIG5vdCBnb2luZyB0byBiZSBwZXJmb3JtYW5jZSBjcml0aWNhbC4KLSAqIGJhc2ljYWxseSB3ZSBqdXN0IG5lZWQgdG8gc3Vydml2ZQotICovCi0jZGVmaW5lIEJJT19TUExJVF9FTlRSSUVTIDIKIG1lbXBvb2xfdCAqYmlvX3NwbGl0X3Bvb2wgX19yZWFkX21vc3RseTsKIAotc3RydWN0IGJpb3ZlY19zbGFiIHsKLQlpbnQgbnJfdmVjczsKLQljaGFyICpuYW1lOyAKLQlzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYjsKLX07Ci0KIC8qCiAgKiBpZiB5b3UgY2hhbmdlIHRoaXMgbGlzdCwgYWxzbyBjaGFuZ2UgYnZlY19hbGxvYyBvciB0aGluZ3Mgd2lsbAogICogYnJlYWsgYmFkbHkhIGNhbm5vdCBiZSBiaWdnZXIgdGhhbiB3aGF0IHlvdSBjYW4gZml0IGludG8gYW4KQEAgLTYwLDIzICs0NSwxNyBAQAogI3VuZGVmIEJWCiAKIC8qCi0gKiBiaW9fc2V0IGlzIHVzZWQgdG8gYWxsb3cgb3RoZXIgcG9ydGlvbnMgb2YgdGhlIElPIHN5c3RlbSB0bwotICogYWxsb2NhdGUgdGhlaXIgb3duIHByaXZhdGUgbWVtb3J5IHBvb2xzIGZvciBiaW8gYW5kIGlvdmVjIHN0cnVjdHVyZXMuCi0gKiBUaGVzZSBtZW1vcnkgcG9vbHMgaW4gdHVybiBhbGwgYWxsb2NhdGUgZnJvbSB0aGUgYmlvX3NsYWIKLSAqIGFuZCB0aGUgYnZlY19zbGFic1tdLgotICovCi1zdHJ1Y3QgYmlvX3NldCB7Ci0JbWVtcG9vbF90ICpiaW9fcG9vbDsKLQltZW1wb29sX3QgKmJ2ZWNfcG9vbHNbQklPVkVDX05SX1BPT0xTXTsKLX07Ci0KLS8qCiAgKiBmc19iaW9fc2V0IGlzIHRoZSBiaW9fc2V0IGNvbnRhaW5pbmcgYmlvIGFuZCBpb3ZlYyBtZW1vcnkgcG9vbHMgdXNlZCBieQogICogSU8gY29kZSB0aGF0IGRvZXMgbm90IG5lZWQgcHJpdmF0ZSBtZW1vcnkgcG9vbHMuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgYmlvX3NldCAqZnNfYmlvX3NldDsKK3N0cnVjdCBiaW9fc2V0ICpmc19iaW9fc2V0OwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBiaW9fdmVjICpidmVjX2FsbG9jX2JzKGdmcF90IGdmcF9tYXNrLCBpbnQgbnIsIHVuc2lnbmVkIGxvbmcgKmlkeCwgc3RydWN0IGJpb19zZXQgKmJzKQordW5zaWduZWQgaW50IGJ2ZWNfbnJfdmVjcyh1bnNpZ25lZCBzaG9ydCBpZHgpCit7CisJcmV0dXJuIGJ2ZWNfc2xhYnNbaWR4XS5ucl92ZWNzOworfQorCitzdHJ1Y3QgYmlvX3ZlYyAqYnZlY19hbGxvY19icyhnZnBfdCBnZnBfbWFzaywgaW50IG5yLCB1bnNpZ25lZCBsb25nICppZHgsIHN0cnVjdCBiaW9fc2V0ICpicykKIHsKIAlzdHJ1Y3QgYmlvX3ZlYyAqYnZsOwogCkBAIC0xMTcsNiArOTYsOSBAQAogCQltZW1wb29sX2ZyZWUoYmlvLT5iaV9pb192ZWMsIGJpb19zZXQtPmJ2ZWNfcG9vbHNbcG9vbF9pZHhdKTsKIAl9CiAKKwlpZiAoYmlvX2ludGVncml0eShiaW8pKQorCQliaW9faW50ZWdyaXR5X2ZyZWUoYmlvLCBiaW9fc2V0KTsKKwogCW1lbXBvb2xfZnJlZShiaW8sIGJpb19zZXQtPmJpb19wb29sKTsKIH0KIApAQCAtMjc1LDkgKzI1NywxOSBAQAogewogCXN0cnVjdCBiaW8gKmIgPSBiaW9fYWxsb2NfYmlvc2V0KGdmcF9tYXNrLCBiaW8tPmJpX21heF92ZWNzLCBmc19iaW9fc2V0KTsKIAotCWlmIChiKSB7Ci0JCWItPmJpX2Rlc3RydWN0b3IgPSBiaW9fZnNfZGVzdHJ1Y3RvcjsKLQkJX19iaW9fY2xvbmUoYiwgYmlvKTsKKwlpZiAoIWIpCisJCXJldHVybiBOVUxMOworCisJYi0+YmlfZGVzdHJ1Y3RvciA9IGJpb19mc19kZXN0cnVjdG9yOworCV9fYmlvX2Nsb25lKGIsIGJpbyk7CisKKwlpZiAoYmlvX2ludGVncml0eShiaW8pKSB7CisJCWludCByZXQ7CisKKwkJcmV0ID0gYmlvX2ludGVncml0eV9jbG9uZShiLCBiaW8sIGZzX2Jpb19zZXQpOworCisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIE5VTEw7CiAJfQogCiAJcmV0dXJuIGI7CkBAIC0zMzMsMTAgKzMyNSwxOSBAQAogCQlpZiAocGFnZSA9PSBwcmV2LT5idl9wYWdlICYmCiAJCSAgICBvZmZzZXQgPT0gcHJldi0+YnZfb2Zmc2V0ICsgcHJldi0+YnZfbGVuKSB7CiAJCQlwcmV2LT5idl9sZW4gKz0gbGVuOwotCQkJaWYgKHEtPm1lcmdlX2J2ZWNfZm4gJiYKLQkJCSAgICBxLT5tZXJnZV9idmVjX2ZuKHEsIGJpbywgcHJldikgPCBsZW4pIHsKLQkJCQlwcmV2LT5idl9sZW4gLT0gbGVuOwotCQkJCXJldHVybiAwOworCisJCQlpZiAocS0+bWVyZ2VfYnZlY19mbikgeworCQkJCXN0cnVjdCBidmVjX21lcmdlX2RhdGEgYnZtID0geworCQkJCQkuYmlfYmRldiA9IGJpby0+YmlfYmRldiwKKwkJCQkJLmJpX3NlY3RvciA9IGJpby0+Ymlfc2VjdG9yLAorCQkJCQkuYmlfc2l6ZSA9IGJpby0+Ymlfc2l6ZSwKKwkJCQkJLmJpX3J3ID0gYmlvLT5iaV9ydywKKwkJCQl9OworCisJCQkJaWYgKHEtPm1lcmdlX2J2ZWNfZm4ocSwgJmJ2bSwgcHJldikgPCBsZW4pIHsKKwkJCQkJcHJldi0+YnZfbGVuIC09IGxlbjsKKwkJCQkJcmV0dXJuIDA7CisJCQkJfQogCQkJfQogCiAJCQlnb3RvIGRvbmU7CkBAIC0zNzcsMTEgKzM3OCwxOCBAQAogCSAqIHF1ZXVlIHRvIGdldCBmdXJ0aGVyIGNvbnRyb2wKIAkgKi8KIAlpZiAocS0+bWVyZ2VfYnZlY19mbikgeworCQlzdHJ1Y3QgYnZlY19tZXJnZV9kYXRhIGJ2bSA9IHsKKwkJCS5iaV9iZGV2ID0gYmlvLT5iaV9iZGV2LAorCQkJLmJpX3NlY3RvciA9IGJpby0+Ymlfc2VjdG9yLAorCQkJLmJpX3NpemUgPSBiaW8tPmJpX3NpemUsCisJCQkuYmlfcncgPSBiaW8tPmJpX3J3LAorCQl9OworCiAJCS8qCiAJCSAqIG1lcmdlX2J2ZWNfZm4oKSByZXR1cm5zIG51bWJlciBvZiBieXRlcyBpdCBjYW4gYWNjZXB0CiAJCSAqIGF0IHRoaXMgb2Zmc2V0CiAJCSAqLwotCQlpZiAocS0+bWVyZ2VfYnZlY19mbihxLCBiaW8sIGJ2ZWMpIDwgbGVuKSB7CisJCWlmIChxLT5tZXJnZV9idmVjX2ZuKHEsICZidm0sIGJ2ZWMpIDwgbGVuKSB7CiAJCQlidmVjLT5idl9wYWdlID0gTlVMTDsKIAkJCWJ2ZWMtPmJ2X2xlbiA9IDA7CiAJCQlidmVjLT5idl9vZmZzZXQgPSAwOwpAQCAtMTI0OSw2ICsxMjU3LDkgQEAKIAlicC0+YmlvMS5iaV9wcml2YXRlID0gYmk7CiAJYnAtPmJpbzIuYmlfcHJpdmF0ZSA9IHBvb2w7CiAKKwlpZiAoYmlvX2ludGVncml0eShiaSkpCisJCWJpb19pbnRlZ3JpdHlfc3BsaXQoYmksIGJwLCBmaXJzdF9zZWN0b3JzKTsKKwogCXJldHVybiBicDsKIH0KIApAQCAtMTI5MCw2ICsxMzAxLDcgQEAKIAlpZiAoYnMtPmJpb19wb29sKQogCQltZW1wb29sX2Rlc3Ryb3koYnMtPmJpb19wb29sKTsKIAorCWJpb3NldF9pbnRlZ3JpdHlfZnJlZShicyk7CiAJYmlvdmVjX2ZyZWVfcG9vbHMoYnMpOwogCiAJa2ZyZWUoYnMpOwpAQCAtMTMwNiw2ICsxMzE4LDkgQEAKIAlpZiAoIWJzLT5iaW9fcG9vbCkKIAkJZ290byBiYWQ7CiAKKwlpZiAoYmlvc2V0X2ludGVncml0eV9jcmVhdGUoYnMsIGJpb19wb29sX3NpemUpKQorCQlnb3RvIGJhZDsKKwogCWlmICghYmlvdmVjX2NyZWF0ZV9wb29scyhicywgYnZlY19wb29sX3NpemUpKQogCQlyZXR1cm4gYnM7CiAKQEAgLTEzMzIsNiArMTM0Nyw3IEBACiB7CiAJYmlvX3NsYWIgPSBLTUVNX0NBQ0hFKGJpbywgU0xBQl9IV0NBQ0hFX0FMSUdOfFNMQUJfUEFOSUMpOwogCisJYmlvX2ludGVncml0eV9pbml0X3NsYWIoKTsKIAliaW92ZWNfaW5pdF9zbGFicygpOwogCiAJZnNfYmlvX3NldCA9IGJpb3NldF9jcmVhdGUoQklPX1BPT0xfU0laRSwgMik7CmRpZmYgLS1naXQgYS9mcy9ibG9ja19kZXYuYyBiL2ZzL2Jsb2NrX2Rldi5jCmluZGV4IDQ3MGMxMGMuLjEwZDhhMGEgMTAwNjQ0Ci0tLSBhL2ZzL2Jsb2NrX2Rldi5jCisrKyBiL2ZzL2Jsb2NrX2Rldi5jCkBAIC05MzEsOCArOTMxLDE2IEBACiAJc3RydWN0IGdlbmRpc2sgKmRpc2s7CiAJaW50IHJldDsKIAlpbnQgcGFydDsKKwlpbnQgcGVybSA9IDA7CiAKLQlyZXQgPSBkZXZjZ3JvdXBfaW5vZGVfcGVybWlzc2lvbihiZGV2LT5iZF9pbm9kZSwgZmlsZS0+Zl9tb2RlKTsKKwlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfUkVBRCkKKwkJcGVybSB8PSBNQVlfUkVBRDsKKwlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCisJCXBlcm0gfD0gTUFZX1dSSVRFOworCS8qCisJICogaG9va3M6IC9uLywgc2VlICJsYXllcmluZyB2aW9sYXRpb25zIi4KKwkgKi8KKwlyZXQgPSBkZXZjZ3JvdXBfaW5vZGVfcGVybWlzc2lvbihiZGV2LT5iZF9pbm9kZSwgcGVybSk7CiAJaWYgKHJldCAhPSAwKQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9mcy9idWZmZXIuYyBiL2ZzL2J1ZmZlci5jCmluZGV4IDVjMjNlZjUuLmQ0OGNhZWUgMTAwNjQ0Ci0tLSBhL2ZzL2J1ZmZlci5jCisrKyBiL2ZzL2J1ZmZlci5jCkBAIC04MjEsNyArODIxLDcgQEAKIAkJCQkgKiBjb250ZW50cyAtIGl0IGlzIGEgbm9vcCBpZiBJL08gaXMgc3RpbGwgaW4KIAkJCQkgKiBmbGlnaHQgb24gcG90ZW50aWFsbHkgb2xkZXIgY29udGVudHMuCiAJCQkJICovCi0JCQkJbGxfcndfYmxvY2soU1dSSVRFLCAxLCAmYmgpOworCQkJCWxsX3J3X2Jsb2NrKFNXUklURV9TWU5DLCAxLCAmYmgpOwogCQkJCWJyZWxzZShiaCk7CiAJCQkJc3Bpbl9sb2NrKGxvY2spOwogCQkJfQpAQCAtMTY5MSwxMSArMTY5MSwxMyBAQAogCQkJICovCiAJCQljbGVhcl9idWZmZXJfZGlydHkoYmgpOwogCQkJc2V0X2J1ZmZlcl91cHRvZGF0ZShiaCk7Ci0JCX0gZWxzZSBpZiAoIWJ1ZmZlcl9tYXBwZWQoYmgpICYmIGJ1ZmZlcl9kaXJ0eShiaCkpIHsKKwkJfSBlbHNlIGlmICgoIWJ1ZmZlcl9tYXBwZWQoYmgpIHx8IGJ1ZmZlcl9kZWxheShiaCkpICYmCisJCQkgICBidWZmZXJfZGlydHkoYmgpKSB7CiAJCQlXQVJOX09OKGJoLT5iX3NpemUgIT0gYmxvY2tzaXplKTsKIAkJCWVyciA9IGdldF9ibG9jayhpbm9kZSwgYmxvY2ssIGJoLCAxKTsKIAkJCWlmIChlcnIpCiAJCQkJZ290byByZWNvdmVyOworCQkJY2xlYXJfYnVmZmVyX2RlbGF5KGJoKTsKIAkJCWlmIChidWZmZXJfbmV3KGJoKSkgewogCQkJCS8qIGJsb2NrZGV2IG1hcHBpbmdzIG5ldmVyIGNvbWUgaGVyZSAqLwogCQkJCWNsZWFyX2J1ZmZlcl9uZXcoYmgpOwpAQCAtMTc3NCw3ICsxNzc2LDggQEAKIAliaCA9IGhlYWQ7CiAJLyogUmVjb3Zlcnk6IGxvY2sgYW5kIHN1Ym1pdCB0aGUgbWFwcGVkIGJ1ZmZlcnMgKi8KIAlkbyB7Ci0JCWlmIChidWZmZXJfbWFwcGVkKGJoKSAmJiBidWZmZXJfZGlydHkoYmgpKSB7CisJCWlmIChidWZmZXJfbWFwcGVkKGJoKSAmJiBidWZmZXJfZGlydHkoYmgpICYmCisJCSAgICAhYnVmZmVyX2RlbGF5KGJoKSkgewogCQkJbG9ja19idWZmZXIoYmgpOwogCQkJbWFya19idWZmZXJfYXN5bmNfd3JpdGUoYmgpOwogCQl9IGVsc2UgewpAQCAtMjA2MSw2ICsyMDY0LDcgQEAKIAkJCXN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJaW50IGlfc2l6ZV9jaGFuZ2VkID0gMDsKIAogCWNvcGllZCA9IGJsb2NrX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBwYWdlLCBmc2RhdGEpOwogCkBAIC0yMDczLDEyICsyMDc3LDIxIEBACiAJICovCiAJaWYgKHBvcytjb3BpZWQgPiBpbm9kZS0+aV9zaXplKSB7CiAJCWlfc2l6ZV93cml0ZShpbm9kZSwgcG9zK2NvcGllZCk7Ci0JCW1hcmtfaW5vZGVfZGlydHkoaW5vZGUpOworCQlpX3NpemVfY2hhbmdlZCA9IDE7CiAJfQogCiAJdW5sb2NrX3BhZ2UocGFnZSk7CiAJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwogCisJLyoKKwkgKiBEb24ndCBtYXJrIHRoZSBpbm9kZSBkaXJ0eSB1bmRlciBwYWdlIGxvY2suIEZpcnN0LCBpdCB1bm5lY2Vzc2FyaWx5CisJICogbWFrZXMgdGhlIGhvbGRpbmcgdGltZSBvZiBwYWdlIGxvY2sgbG9uZ2VyLiBTZWNvbmQsIGl0IGZvcmNlcyBsb2NrCisJICogb3JkZXJpbmcgb2YgcGFnZSBsb2NrIGFuZCB0cmFuc2FjdGlvbiBzdGFydCBmb3Igam91cm5hbGluZworCSAqIGZpbGVzeXN0ZW1zLgorCSAqLworCWlmIChpX3NpemVfY2hhbmdlZCkKKwkJbWFya19pbm9kZV9kaXJ0eShpbm9kZSk7CisKIAlyZXR1cm4gY29waWVkOwogfQogRVhQT1JUX1NZTUJPTChnZW5lcmljX3dyaXRlX2VuZCk7CkBAIC0yOTQwLDE2ICsyOTUzLDE5IEBACiAJZm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKIAkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IGJoc1tpXTsKIAotCQlpZiAocncgPT0gU1dSSVRFKQorCQlpZiAocncgPT0gU1dSSVRFIHx8IHJ3ID09IFNXUklURV9TWU5DKQogCQkJbG9ja19idWZmZXIoYmgpOwogCQllbHNlIGlmICh0ZXN0X3NldF9idWZmZXJfbG9ja2VkKGJoKSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChydyA9PSBXUklURSB8fCBydyA9PSBTV1JJVEUpIHsKKwkJaWYgKHJ3ID09IFdSSVRFIHx8IHJ3ID09IFNXUklURSB8fCBydyA9PSBTV1JJVEVfU1lOQykgewogCQkJaWYgKHRlc3RfY2xlYXJfYnVmZmVyX2RpcnR5KGJoKSkgewogCQkJCWJoLT5iX2VuZF9pbyA9IGVuZF9idWZmZXJfd3JpdGVfc3luYzsKIAkJCQlnZXRfYmgoYmgpOwotCQkJCXN1Ym1pdF9iaChXUklURSwgYmgpOworCQkJCWlmIChydyA9PSBTV1JJVEVfU1lOQykKKwkJCQkJc3VibWl0X2JoKFdSSVRFX1NZTkMsIGJoKTsKKwkJCQllbHNlCisJCQkJCXN1Ym1pdF9iaChXUklURSwgYmgpOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQl9IGVsc2UgewpAQCAtMjk3OCw3ICsyOTk0LDcgQEAKIAlpZiAodGVzdF9jbGVhcl9idWZmZXJfZGlydHkoYmgpKSB7CiAJCWdldF9iaChiaCk7CiAJCWJoLT5iX2VuZF9pbyA9IGVuZF9idWZmZXJfd3JpdGVfc3luYzsKLQkJcmV0ID0gc3VibWl0X2JoKFdSSVRFLCBiaCk7CisJCXJldCA9IHN1Ym1pdF9iaChXUklURV9TWU5DLCBiaCk7CiAJCXdhaXRfb25fYnVmZmVyKGJoKTsKIAkJaWYgKGJ1ZmZlcl9lb3Bub3RzdXBwKGJoKSkgewogCQkJY2xlYXJfYnVmZmVyX2VvcG5vdHN1cHAoYmgpOwpkaWZmIC0tZ2l0IGEvZnMvY2hhcl9kZXYuYyBiL2ZzL2NoYXJfZGV2LmMKaW5kZXggNjhlNTEwYi4uM2NiN2NkYSAxMDA2NDQKLS0tIGEvZnMvY2hhcl9kZXYuYworKysgYi9mcy9jaGFyX2Rldi5jCkBAIC0zNzMsNiArMzczLDggQEAKIAkJCXJldHVybiAtRU5YSU87CiAJCW5ldyA9IGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgY2Rldiwga29iaik7CiAJCXNwaW5fbG9jaygmY2Rldl9sb2NrKTsKKwkJLyogQ2hlY2sgaV9jZGV2IGFnYWluIGluIGNhc2Ugc29tZWJvZHkgYmVhdCB1cyB0byBpdCB3aGlsZQorCQkgICB3ZSBkcm9wcGVkIHRoZSBsb2NrLiAqLwogCQlwID0gaW5vZGUtPmlfY2RldjsKIAkJaWYgKCFwKSB7CiAJCQlpbm9kZS0+aV9jZGV2ID0gcCA9IG5ldzsKQEAgLTM5MiwxMSArMzk0LDggQEAKIAkJY2Rldl9wdXQocCk7CiAJCXJldHVybiAtRU5YSU87CiAJfQotCWlmIChmaWxwLT5mX29wLT5vcGVuKSB7Ci0JCWxvY2tfa2VybmVsKCk7CisJaWYgKGZpbHAtPmZfb3AtPm9wZW4pCiAJCXJldCA9IGZpbHAtPmZfb3AtPm9wZW4oaW5vZGUsZmlscCk7Ci0JCXVubG9ja19rZXJuZWwoKTsKLQl9CiAJaWYgKHJldCkKIAkJY2Rldl9wdXQocCk7CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc2FjbC5jIGIvZnMvY2lmcy9jaWZzYWNsLmMKaW5kZXggMzQ5MDJjZi4uMGU5ZmMyYiAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jaWZzYWNsLmMKKysrIGIvZnMvY2lmcy9jaWZzYWNsLmMKQEAgLTM0LDExICszNCwxMSBAQAogc3RhdGljIHN0cnVjdCBjaWZzX3drc2lkIHdrc2lkYXJyW05VTV9XS19TSURTXSA9IHsKIAl7ezEsIDAsIHswLCAwLCAwLCAwLCAwLCAwfSwgezAsIDAsIDAsIDAsIDB9IH0sICJudWxsIHVzZXIifSwKIAl7ezEsIDEsIHswLCAwLCAwLCAwLCAwLCAxfSwgezAsIDAsIDAsIDAsIDB9IH0sICJub2JvZHkifSwKLQl7ezEsIDEsIHswLCAwLCAwLCAwLCAwLCA1fSwge2NwdV90b19sZTMyKDExKSwgMCwgMCwgMCwgMH0gfSwgIm5ldC11c2VycyJ9LAotCXt7MSwgMSwgezAsIDAsIDAsIDAsIDAsIDV9LCB7Y3B1X3RvX2xlMzIoMTgpLCAwLCAwLCAwLCAwfSB9LCAic3lzIn0sCi0Je3sxLCAyLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtjcHVfdG9fbGUzMigzMiksIGNwdV90b19sZTMyKDU0NCksIDAsIDAsIDB9IH0sICJyb290In0sCi0Je3sxLCAyLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtjcHVfdG9fbGUzMigzMiksIGNwdV90b19sZTMyKDU0NSksIDAsIDAsIDB9IH0sICJ1c2VycyJ9LAotCXt7MSwgMiwgezAsIDAsIDAsIDAsIDAsIDV9LCB7Y3B1X3RvX2xlMzIoMzIpLCBjcHVfdG9fbGUzMig1NDYpLCAwLCAwLCAwfSB9LCAiZ3Vlc3QifSB9CisJe3sxLCAxLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtfX2NvbnN0YW50X2NwdV90b19sZTMyKDExKSwgMCwgMCwgMCwgMH0gfSwgIm5ldC11c2VycyJ9LAorCXt7MSwgMSwgezAsIDAsIDAsIDAsIDAsIDV9LCB7X19jb25zdGFudF9jcHVfdG9fbGUzMigxOCksIDAsIDAsIDAsIDB9IH0sICJzeXMifSwKKwl7ezEsIDIsIHswLCAwLCAwLCAwLCAwLCA1fSwge19fY29uc3RhbnRfY3B1X3RvX2xlMzIoMzIpLCBfX2NvbnN0YW50X2NwdV90b19sZTMyKDU0NCksIDAsIDAsIDB9IH0sICJyb290In0sCisJe3sxLCAyLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtfX2NvbnN0YW50X2NwdV90b19sZTMyKDMyKSwgX19jb25zdGFudF9jcHVfdG9fbGUzMig1NDUpLCAwLCAwLCAwfSB9LCAidXNlcnMifSwKKwl7ezEsIDIsIHswLCAwLCAwLCAwLCAwLCA1fSwge19fY29uc3RhbnRfY3B1X3RvX2xlMzIoMzIpLCBfX2NvbnN0YW50X2NwdV90b19sZTMyKDU0NiksIDAsIDAsIDB9IH0sICJndWVzdCJ9IH0KIDsKIAogCmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNmcy5jIGIvZnMvY2lmcy9jaWZzZnMuYwppbmRleCA4NmI0ZDVmLi4yMjg1N2M2IDEwMDY0NAotLS0gYS9mcy9jaWZzL2NpZnNmcy5jCisrKyBiL2ZzL2NpZnMvY2lmc2ZzLmMKQEAgLTYxMiw3ICs2MTIsNyBAQAogCQlpZiAocmV0dmFsIDwgMCkKIAkJCXJldHVybiAobG9mZl90KXJldHZhbDsKIAl9Ci0JcmV0dXJuIHJlbW90ZV9sbHNlZWsoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOworCXJldHVybiBnZW5lcmljX2ZpbGVfbGxzZWVrX3VubG9ja2VkKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKIH0KIAogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgY2lmc19mc190eXBlID0gewpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9pbm9kZS5jIGIvZnMvY2lmcy9pbm9kZS5jCmluZGV4IDcyMmJlNTQuLjJlOTA0YmQgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvaW5vZGUuYworKysgYi9mcy9jaWZzL2lub2RlLmMKQEAgLTIxOSwxNSArMjE5LDE1IEBACiAJcmMgPSBDSUZTU01CVW5peFFQYXRoSW5mbyh4aWQsIHBUY29uLCBmdWxsX3BhdGgsICZmaW5kX2RhdGEsCiAJCQkJICBjaWZzX3NiLT5sb2NhbF9ubHMsIGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKIAkJCQkJQ0lGU19NT1VOVF9NQVBfU1BFQ0lBTF9DSFIpOwotCWlmIChyYykgewotCQlpZiAocmMgPT0gLUVSRU1PVEUgJiYgIWlzX2Rmc19yZWZlcnJhbCkgewotCQkJaXNfZGZzX3JlZmVycmFsID0gdHJ1ZTsKLQkJCWNGWUkoREJHMiwgKCJERlMgcmVmIikpOwotCQkJLyogZm9yIERGUywgc2VydmVyIGRvZXMgbm90IGdpdmUgdXMgcmVhbCBpbm9kZSBkYXRhICovCi0JCQlmaWxsX2Zha2VfZmluZGRhdGF1bml4KCZmaW5kX2RhdGEsIHNiKTsKLQkJCXJjID0gMDsKLQkJfQotCX0KKwlpZiAocmMgPT0gLUVSRU1PVEUgJiYgIWlzX2Rmc19yZWZlcnJhbCkgeworCQlpc19kZnNfcmVmZXJyYWwgPSB0cnVlOworCQljRllJKERCRzIsICgiREZTIHJlZiIpKTsKKwkJLyogZm9yIERGUywgc2VydmVyIGRvZXMgbm90IGdpdmUgdXMgcmVhbCBpbm9kZSBkYXRhICovCisJCWZpbGxfZmFrZV9maW5kZGF0YXVuaXgoJmZpbmRfZGF0YSwgc2IpOworCQlyYyA9IDA7CisJfSBlbHNlIGlmIChyYykKKwkJZ290byBjZ2lpdV9leGl0OworCiAJbnVtX29mX2J5dGVzID0gbGU2NF90b19jcHUoZmluZF9kYXRhLk51bU9mQnl0ZXMpOwogCWVuZF9vZl9maWxlID0gbGU2NF90b19jcHUoZmluZF9kYXRhLkVuZE9mRmlsZSk7CiAKQEAgLTIzNiw3ICsyMzYsNyBAQAogCQkqcGlub2RlID0gbmV3X2lub2RlKHNiKTsKIAkJaWYgKCpwaW5vZGUgPT0gTlVMTCkgewogCQkJcmMgPSAtRU5PTUVNOwotCQlnb3RvIGNnaWl1X2V4aXQ7CisJCQlnb3RvIGNnaWl1X2V4aXQ7CiAJCX0KIAkJLyogSXMgYW4gaV9pbm8gb2YgemVybyBsZWdhbD8gKi8KIAkJLyogbm90ZSBpbm8gaW5jcmVtZW50ZWQgdG8gdW5pcXVlIG51bSBpbiBuZXdfaW5vZGUgKi8KZGlmZiAtLWdpdCBhL2ZzL2RjYWNoZS5jIGIvZnMvZGNhY2hlLmMKaW5kZXggM2VlNTg4ZDUuLjYwNjhjMjUgMTAwNjQ0Ci0tLSBhL2ZzL2RjYWNoZS5jCisrKyBiL2ZzL2RjYWNoZS5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSA8bGludXgvc3lzY2FsbHMuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZkdGFibGUuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Zzbm90aWZ5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgpAQCAtMTA2LDkgKzEwNywxMCBAQAogLyoKICAqIFJlbGVhc2UgdGhlIGRlbnRyeSdzIGlub2RlLCB1c2luZyB0aGUgZmlsZXN5c3RlbQogICogZF9pcHV0KCkgb3BlcmF0aW9uIGlmIGRlZmluZWQuCi0gKiBDYWxsZWQgd2l0aCBkY2FjaGVfbG9jayBhbmQgcGVyIGRlbnRyeSBsb2NrIGhlbGQsIGRyb3BzIGJvdGguCiAgKi8KIHN0YXRpYyB2b2lkIGRlbnRyeV9pcHV0KHN0cnVjdCBkZW50cnkgKiBkZW50cnkpCisJX19yZWxlYXNlcyhkZW50cnktPmRfbG9jaykKKwlfX3JlbGVhc2VzKGRjYWNoZV9sb2NrKQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7CiAJaWYgKGlub2RlKSB7CkBAIC0xMzIsMTIgKzEzNCwxMyBAQAogICogZF9raWxsIC0ga2lsbCBkZW50cnkgYW5kIHJldHVybiBwYXJlbnQKICAqIEBkZW50cnk6IGRlbnRyeSB0byBraWxsCiAgKgotICogQ2FsbGVkIHdpdGggZGNhY2hlX2xvY2sgYW5kIGRfbG9jaywgcmVsZWFzZXMgYm90aC4gIFRoZSBkZW50cnkgbXVzdAotICogYWxyZWFkeSBiZSB1bmhhc2hlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBMUlUuCisgKiBUaGUgZGVudHJ5IG11c3QgYWxyZWFkeSBiZSB1bmhhc2hlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBMUlUuCiAgKgogICogSWYgdGhpcyBpcyB0aGUgcm9vdCBvZiB0aGUgZGVudHJ5IHRyZWUsIHJldHVybiBOVUxMLgogICovCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqZF9raWxsKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKKwlfX3JlbGVhc2VzKGRlbnRyeS0+ZF9sb2NrKQorCV9fcmVsZWFzZXMoZGNhY2hlX2xvY2spCiB7CiAJc3RydWN0IGRlbnRyeSAqcGFyZW50OwogCkBAIC0zODMsMTEgKzM4NiwxMSBAQAogICogVHJ5IHRvIHBydW5lIGFuY2VzdG9ycyBhcyB3ZWxsLiAgVGhpcyBpcyBuZWNlc3NhcnkgdG8gcHJldmVudAogICogcXVhZHJhdGljIGJlaGF2aW9yIG9mIHNocmlua19kY2FjaGVfcGFyZW50KCksIGJ1dCBpcyBhbHNvIGV4cGVjdGVkCiAgKiB0byBiZSBiZW5lZmljaWFsIGluIHJlZHVjaW5nIGRlbnRyeSBjYWNoZSBmcmFnbWVudGF0aW9uLgotICoKLSAqIENhbGxlZCB3aXRoIGRjYWNoZV9sb2NrLCBkcm9wcyBpdCBhbmQgdGhlbiByZWdhaW5zLgotICogQ2FsbGVkIHdpdGggZGVudHJ5LT5kX2xvY2sgaGVsZCwgZHJvcHMgaXQuCiAgKi8KIHN0YXRpYyB2b2lkIHBydW5lX29uZV9kZW50cnkoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSkKKwlfX3JlbGVhc2VzKGRlbnRyeS0+ZF9sb2NrKQorCV9fcmVsZWFzZXMoZGNhY2hlX2xvY2spCisJX19hY3F1aXJlcyhkY2FjaGVfbG9jaykKIHsKIAlfX2RfZHJvcChkZW50cnkpOwogCWRlbnRyeSA9IGRfa2lsbChkZW50cnkpOwpAQCAtMTYwNCwxMCArMTYwNyw5IEBACiAgKgogICogTm90ZTogSWYgZXZlciB0aGUgbG9ja2luZyBpbiBsb2NrX3JlbmFtZSgpIGNoYW5nZXMsIHRoZW4gcGxlYXNlCiAgKiByZW1lbWJlciB0byB1cGRhdGUgdGhpcyB0b28uLi4KLSAqCi0gKiBPbiByZXR1cm4sIGRjYWNoZV9sb2NrIHdpbGwgaGF2ZSBiZWVuIHVubG9ja2VkLgogICovCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqX19kX3VuYWxpYXMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgZGVudHJ5ICphbGlhcykKKwlfX3JlbGVhc2VzKGRjYWNoZV9sb2NrKQogewogCXN0cnVjdCBtdXRleCAqbTEgPSBOVUxMLCAqbTIgPSBOVUxMOwogCXN0cnVjdCBkZW50cnkgKnJldDsKQEAgLTE3NDMsMTEgKzE3NDUsOSBAQAogc2hvdWxkbnRfYmVfaGFzaGVkOgogCXNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7CiAJQlVHKCk7Ci0JZ290byBzaG91bGRudF9iZV9oYXNoZWQ7CiB9CiAKLXN0YXRpYyBpbnQgcHJlcGVuZChjaGFyICoqYnVmZmVyLCBpbnQgKmJ1ZmxlbiwgY29uc3QgY2hhciAqc3RyLAotCQkJICBpbnQgbmFtZWxlbikKK3N0YXRpYyBpbnQgcHJlcGVuZChjaGFyICoqYnVmZmVyLCBpbnQgKmJ1ZmxlbiwgY29uc3QgY2hhciAqc3RyLCBpbnQgbmFtZWxlbikKIHsKIAkqYnVmbGVuIC09IG5hbWVsZW47CiAJaWYgKCpidWZsZW4gPCAwKQpAQCAtMTc1Nyw4ICsxNzU3LDEzIEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgcHJlcGVuZF9uYW1lKGNoYXIgKipidWZmZXIsIGludCAqYnVmbGVuLCBzdHJ1Y3QgcXN0ciAqbmFtZSkKK3sKKwlyZXR1cm4gcHJlcGVuZChidWZmZXIsIGJ1ZmxlbiwgbmFtZS0+bmFtZSwgbmFtZS0+bGVuKTsKK30KKwogLyoqCi0gKiBkX3BhdGggLSByZXR1cm4gdGhlIHBhdGggb2YgYSBkZW50cnkKKyAqIF9fZF9wYXRoIC0gcmV0dXJuIHRoZSBwYXRoIG9mIGEgZGVudHJ5CiAgKiBAcGF0aDogdGhlIGRlbnRyeS92ZnNtb3VudCB0byByZXBvcnQKICAqIEByb290OiByb290IHZmc21udC9kZW50cnkgKG1heSBiZSBtb2RpZmllZCBieSB0aGlzIGZ1bmN0aW9uKQogICogQGJ1ZmZlcjogYnVmZmVyIHRvIHJldHVybiB2YWx1ZSBpbgpAQCAtMTc3OSw5ICsxNzg0LDEwIEBACiB7CiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gcGF0aC0+ZGVudHJ5OwogCXN0cnVjdCB2ZnNtb3VudCAqdmZzbW50ID0gcGF0aC0+bW50OwotCWNoYXIgKiBlbmQgPSBidWZmZXIrYnVmbGVuOwotCWNoYXIgKiByZXR2YWw7CisJY2hhciAqZW5kID0gYnVmZmVyICsgYnVmbGVuOworCWNoYXIgKnJldHZhbDsKIAorCXNwaW5fbG9jaygmdmZzbW91bnRfbG9jayk7CiAJcHJlcGVuZCgmZW5kLCAmYnVmbGVuLCAiXDAiLCAxKTsKIAlpZiAoIUlTX1JPT1QoZGVudHJ5KSAmJiBkX3VuaGFzaGVkKGRlbnRyeSkgJiYKIAkJKHByZXBlbmQoJmVuZCwgJmJ1ZmxlbiwgIiAoZGVsZXRlZCkiLCAxMCkgIT0gMCkpCkBAIC0xODAwLDM4ICsxODA2LDM3IEBACiAJCQlicmVhazsKIAkJaWYgKGRlbnRyeSA9PSB2ZnNtbnQtPm1udF9yb290IHx8IElTX1JPT1QoZGVudHJ5KSkgewogCQkJLyogR2xvYmFsIHJvb3Q/ICovCi0JCQlzcGluX2xvY2soJnZmc21vdW50X2xvY2spOwogCQkJaWYgKHZmc21udC0+bW50X3BhcmVudCA9PSB2ZnNtbnQpIHsKLQkJCQlzcGluX3VubG9jaygmdmZzbW91bnRfbG9jayk7CiAJCQkJZ290byBnbG9iYWxfcm9vdDsKIAkJCX0KIAkJCWRlbnRyeSA9IHZmc21udC0+bW50X21vdW50cG9pbnQ7CiAJCQl2ZnNtbnQgPSB2ZnNtbnQtPm1udF9wYXJlbnQ7Ci0JCQlzcGluX3VubG9jaygmdmZzbW91bnRfbG9jayk7CiAJCQljb250aW51ZTsKIAkJfQogCQlwYXJlbnQgPSBkZW50cnktPmRfcGFyZW50OwogCQlwcmVmZXRjaChwYXJlbnQpOwotCQlpZiAoKHByZXBlbmQoJmVuZCwgJmJ1ZmxlbiwgZGVudHJ5LT5kX25hbWUubmFtZSwKLQkJCQlkZW50cnktPmRfbmFtZS5sZW4pICE9IDApIHx8CisJCWlmICgocHJlcGVuZF9uYW1lKCZlbmQsICZidWZsZW4sICZkZW50cnktPmRfbmFtZSkgIT0gMCkgfHwKIAkJICAgIChwcmVwZW5kKCZlbmQsICZidWZsZW4sICIvIiwgMSkgIT0gMCkpCiAJCQlnb3RvIEVsb25nOwogCQlyZXR2YWwgPSBlbmQ7CiAJCWRlbnRyeSA9IHBhcmVudDsKIAl9CiAKK291dDoKKwlzcGluX3VubG9jaygmdmZzbW91bnRfbG9jayk7CiAJcmV0dXJuIHJldHZhbDsKIAogZ2xvYmFsX3Jvb3Q6CiAJcmV0dmFsICs9IDE7CS8qIGhpdCB0aGUgc2xhc2ggKi8KLQlpZiAocHJlcGVuZCgmcmV0dmFsLCAmYnVmbGVuLCBkZW50cnktPmRfbmFtZS5uYW1lLAotCQkgICAgZGVudHJ5LT5kX25hbWUubGVuKSAhPSAwKQorCWlmIChwcmVwZW5kX25hbWUoJnJldHZhbCwgJmJ1ZmxlbiwgJmRlbnRyeS0+ZF9uYW1lKSAhPSAwKQogCQlnb3RvIEVsb25nOwogCXJvb3QtPm1udCA9IHZmc21udDsKIAlyb290LT5kZW50cnkgPSBkZW50cnk7Ci0JcmV0dXJuIHJldHZhbDsKKwlnb3RvIG91dDsKKwogRWxvbmc6Ci0JcmV0dXJuIEVSUl9QVFIoLUVOQU1FVE9PTE9ORyk7CisJcmV0dmFsID0gRVJSX1BUUigtRU5BTUVUT09MT05HKTsKKwlnb3RvIG91dDsKIH0KIAogLyoqCkBAIC0xODQ1LDkgKzE4NTAsOSBAQAogICoKICAqIFJldHVybnMgdGhlIGJ1ZmZlciBvciBhbiBlcnJvciBjb2RlIGlmIHRoZSBwYXRoIHdhcyB0b28gbG9uZy4KICAqCi0gKiAiYnVmbGVuIiBzaG91bGQgYmUgcG9zaXRpdmUuIENhbGxlciBob2xkcyB0aGUgZGNhY2hlX2xvY2suCisgKiAiYnVmbGVuIiBzaG91bGQgYmUgcG9zaXRpdmUuCiAgKi8KLWNoYXIgKmRfcGF0aChzdHJ1Y3QgcGF0aCAqcGF0aCwgY2hhciAqYnVmLCBpbnQgYnVmbGVuKQorY2hhciAqZF9wYXRoKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICpidWYsIGludCBidWZsZW4pCiB7CiAJY2hhciAqcmVzOwogCXN0cnVjdCBwYXRoIHJvb3Q7CkBAIC0xOTE1LDE2ICsxOTIwLDExIEBACiAJcmV0dmFsID0gZW5kLTE7CiAJKnJldHZhbCA9ICcvJzsKIAotCWZvciAoOzspIHsKLQkJc3RydWN0IGRlbnRyeSAqcGFyZW50OwotCQlpZiAoSVNfUk9PVChkZW50cnkpKQotCQkJYnJlYWs7CisJd2hpbGUgKCFJU19ST09UKGRlbnRyeSkpIHsKKwkJc3RydWN0IGRlbnRyeSAqcGFyZW50ID0gZGVudHJ5LT5kX3BhcmVudDsKIAotCQlwYXJlbnQgPSBkZW50cnktPmRfcGFyZW50OwogCQlwcmVmZXRjaChwYXJlbnQpOwotCi0JCWlmICgocHJlcGVuZCgmZW5kLCAmYnVmbGVuLCBkZW50cnktPmRfbmFtZS5uYW1lLAotCQkJCWRlbnRyeS0+ZF9uYW1lLmxlbikgIT0gMCkgfHwKKwkJaWYgKChwcmVwZW5kX25hbWUoJmVuZCwgJmJ1ZmxlbiwgJmRlbnRyeS0+ZF9uYW1lKSAhPSAwKSB8fAogCQkgICAgKHByZXBlbmQoJmVuZCwgJmJ1ZmxlbiwgIi8iLCAxKSAhPSAwKSkKIAkJCWdvdG8gRWxvbmc7CiAKQEAgLTE5NzUsNyArMTk3NSw3IEBACiAJZXJyb3IgPSAtRU5PRU5UOwogCS8qIEhhcyB0aGUgY3VycmVudCBkaXJlY3RvcnkgaGFzIGJlZW4gdW5saW5rZWQ/ICovCiAJc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7Ci0JaWYgKHB3ZC5kZW50cnktPmRfcGFyZW50ID09IHB3ZC5kZW50cnkgfHwgIWRfdW5oYXNoZWQocHdkLmRlbnRyeSkpIHsKKwlpZiAoSVNfUk9PVChwd2QuZGVudHJ5KSB8fCAhZF91bmhhc2hlZChwd2QuZGVudHJ5KSkgewogCQl1bnNpZ25lZCBsb25nIGxlbjsKIAkJc3RydWN0IHBhdGggdG1wID0gcm9vdDsKIAkJY2hhciAqIGN3ZDsKZGlmZiAtLWdpdCBhL2ZzL2RsbS91c2VyLmMgYi9mcy9kbG0vdXNlci5jCmluZGV4IGViYmNmMzguLmY5NzZmMzAgMTAwNjQ0Ci0tLSBhL2ZzL2RsbS91c2VyLmMKKysrIGIvZnMvZGxtL3VzZXIuYwpAQCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9zaWduYWwuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZGxtLmg+CiAjaW5jbHVkZSA8bGludXgvZGxtX2RldmljZS5oPgogCkBAIC02MTgsMTMgKzYxOSwxNyBAQAogCXN0cnVjdCBkbG1fdXNlcl9wcm9jICpwcm9jOwogCXN0cnVjdCBkbG1fbHMgKmxzOwogCisJbG9ja19rZXJuZWwoKTsKIAlscyA9IGRsbV9maW5kX2xvY2tzcGFjZV9kZXZpY2UoaW1pbm9yKGlub2RlKSk7Ci0JaWYgKCFscykKKwlpZiAoIWxzKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9FTlQ7CisJfQogCiAJcHJvYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkbG1fdXNlcl9wcm9jKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwcm9jKSB7CiAJCWRsbV9wdXRfbG9ja3NwYWNlKGxzKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKQEAgLTYzNiw2ICs2NDEsNyBAQAogCXNwaW5fbG9ja19pbml0KCZwcm9jLT5sb2Nrc19zcGluKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZwcm9jLT53YWl0KTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBwcm9jOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpAQCAtODcwLDYgKzg3Niw3IEBACiAKIHN0YXRpYyBpbnQgY3RsX2RldmljZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2ZzL2VjcnlwdGZzL2ZpbGUuYyBiL2ZzL2VjcnlwdGZzL2ZpbGUuYwppbmRleCAyMjU4YjhmLi4yNDc0OWJmIDEwMDY0NAotLS0gYS9mcy9lY3J5cHRmcy9maWxlLmMKKysrIGIvZnMvZWNyeXB0ZnMvZmlsZS5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wYXQuaD4KICNpbmNsdWRlIDxsaW51eC9mc19zdGFjay5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSAiZWNyeXB0ZnNfa2VybmVsLmgiCiAKIC8qKgpAQCAtMjc3LDkgKzI3OCwxMSBAQAogCWludCByYyA9IDA7CiAJc3RydWN0IGZpbGUgKmxvd2VyX2ZpbGUgPSBOVUxMOwogCisJbG9ja19rZXJuZWwoKTsKIAlsb3dlcl9maWxlID0gZWNyeXB0ZnNfZmlsZV90b19sb3dlcihmaWxlKTsKIAlpZiAobG93ZXJfZmlsZS0+Zl9vcCAmJiBsb3dlcl9maWxlLT5mX29wLT5mYXN5bmMpCiAJCXJjID0gbG93ZXJfZmlsZS0+Zl9vcC0+ZmFzeW5jKGZkLCBsb3dlcl9maWxlLCBmbGFnKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJjOwogfQogCmRpZmYgLS1naXQgYS9mcy9lY3J5cHRmcy9taXNjZGV2LmMgYi9mcy9lY3J5cHRmcy9taXNjZGV2LmMKaW5kZXggNTBjOTk0YS4uMDlhNDUyMiAxMDA2NDQKLS0tIGEvZnMvZWNyeXB0ZnMvbWlzY2Rldi5jCisrKyBiL2ZzL2VjcnlwdGZzL21pc2NkZXYuYwpAQCAtNTc1LDEzICs1NzUsMTEgQEAKIAlpbnQgcmM7CiAKIAlhdG9taWNfc2V0KCZlY3J5cHRmc19udW1fbWlzY2Rldl9vcGVucywgMCk7Ci0JbXV0ZXhfbG9jaygmZWNyeXB0ZnNfZGFlbW9uX2hhc2hfbXV4KTsKIAlyYyA9IG1pc2NfcmVnaXN0ZXIoJmVjcnlwdGZzX21pc2NkZXYpOwogCWlmIChyYykKIAkJcHJpbnRrKEtFUk5fRVJSICIlczogRmFpbGVkIHRvIHJlZ2lzdGVyIG1pc2NlbGxhbmVvdXMgZGV2aWNlICIKIAkJICAgICAgICJmb3IgY29tbXVuaWNhdGlvbnMgd2l0aCB1c2Vyc3BhY2UgZGFlbW9uczsgcmMgPSBbJWRdXG4iLAogCQkgICAgICAgX19mdW5jX18sIHJjKTsKLQltdXRleF91bmxvY2soJmVjcnlwdGZzX2RhZW1vbl9oYXNoX211eCk7CiAJcmV0dXJuIHJjOwogfQogCmRpZmYgLS1naXQgYS9mcy9leGVjLmMgYi9mcy9leGVjLmMKaW5kZXggZGE5NGE2Zi4uZmQ5MjM0MyAxMDA2NDQKLS0tIGEvZnMvZXhlYy5jCisrKyBiL2ZzL2V4ZWMuYwpAQCAtNjEwLDcgKzYxMCw3IEBACiAJYnBybS0+ZXhlYyAtPSBzdGFja19zaGlmdDsKIAogCWRvd25fd3JpdGUoJm1tLT5tbWFwX3NlbSk7Ci0Jdm1fZmxhZ3MgPSB2bWEtPnZtX2ZsYWdzOworCXZtX2ZsYWdzID0gVk1fU1RBQ0tfRkxBR1M7CiAKIAkvKgogCSAqIEFkanVzdCBzdGFjayBleGVjdXRlIHBlcm1pc3Npb25zOyBleHBsaWNpdGx5IGVuYWJsZSBmb3IKZGlmZiAtLWdpdCBhL2ZzL2V4dDMvc3VwZXIuYyBiL2ZzL2V4dDMvc3VwZXIuYwppbmRleCBmZTMxMTlhLi4yODQ1NDI1IDEwMDY0NAotLS0gYS9mcy9leHQzL3N1cGVyLmMKKysrIGIvZnMvZXh0My9zdXBlci5jCkBAIC0yODc1LDggKzI4NzUsMTAgQEAKIAkJYmxrKys7CiAJfQogb3V0OgotCWlmIChsZW4gPT0gdG93cml0ZSkKKwlpZiAobGVuID09IHRvd3JpdGUpIHsKKwkJbXV0ZXhfdW5sb2NrKCZpbm9kZS0+aV9tdXRleCk7CiAJCXJldHVybiBlcnI7CisJfQogCWlmIChpbm9kZS0+aV9zaXplIDwgb2ZmK2xlbi10b3dyaXRlKSB7CiAJCWlfc2l6ZV93cml0ZShpbm9kZSwgb2ZmK2xlbi10b3dyaXRlKTsKIAkJRVhUM19JKGlub2RlKS0+aV9kaXNrc2l6ZSA9IGlub2RlLT5pX3NpemU7CmRpZmYgLS1naXQgYS9mcy9leHQ0L2JhbGxvYy5jIGIvZnMvZXh0NC9iYWxsb2MuYwppbmRleCA5Y2M4MGI5Li40OTVhYjIxIDEwMDY0NAotLS0gYS9mcy9leHQ0L2JhbGxvYy5jCisrKyBiL2ZzL2V4dDQvYmFsbG9jLmMKQEAgLTQ3LDcgKzQ3LDcgQEAKIAkJCWV4dDRfZ3JvdXBfdCBibG9ja19ncm91cCkKIHsKIAlleHQ0X2dyb3VwX3QgYWN0dWFsX2dyb3VwOwotCWV4dDRfZ2V0X2dyb3VwX25vX2FuZF9vZmZzZXQoc2IsIGJsb2NrLCAmYWN0dWFsX2dyb3VwLCAwKTsKKwlleHQ0X2dldF9ncm91cF9ub19hbmRfb2Zmc2V0KHNiLCBibG9jaywgJmFjdHVhbF9ncm91cCwgTlVMTCk7CiAJaWYgKGFjdHVhbF9ncm91cCA9PSBibG9ja19ncm91cCkKIAkJcmV0dXJuIDE7CiAJcmV0dXJuIDA7CkBAIC0xMjEsMTIgKzEyMSw3IEBACiAJCQkJbGUxNl90b19jcHUoc2JpLT5zX2VzLT5zX3Jlc2VydmVkX2dkdF9ibG9ja3MpOwogCQl9CiAJfSBlbHNlIHsgLyogRm9yIE1FVEFfQkdfQkxPQ0tfR1JPVVBTICovCi0JCWludCBncm91cF9yZWwgPSAoYmxvY2tfZ3JvdXAgLQotCQkJCSBsZTMyX3RvX2NwdShzYmktPnNfZXMtPnNfZmlyc3RfbWV0YV9iZykpICUKLQkJCQlFWFQ0X0RFU0NfUEVSX0JMT0NLKHNiKTsKLQkJaWYgKGdyb3VwX3JlbCA9PSAwIHx8IGdyb3VwX3JlbCA9PSAxIHx8Ci0JCSAgICAoZ3JvdXBfcmVsID09IEVYVDRfREVTQ19QRVJfQkxPQ0soc2IpIC0gMSkpCi0JCQliaXRfbWF4ICs9IDE7CisJCWJpdF9tYXggKz0gZXh0NF9iZ19udW1fZ2RiKHNiLCBibG9ja19ncm91cCk7CiAJfQogCiAJaWYgKGJsb2NrX2dyb3VwID09IHNiaS0+c19ncm91cHNfY291bnQgLSAxKSB7CkBAIC0yOTUsNyArMjkwLDcgQEAKIAlyZXR1cm4gMDsKIH0KIC8qKgotICogcmVhZF9ibG9ja19iaXRtYXAoKQorICogZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcCgpCiAgKiBAc2I6CQkJc3VwZXIgYmxvY2sKICAqIEBibG9ja19ncm91cDoJZ2l2ZW4gYmxvY2sgZ3JvdXAKICAqCkBAIC0zMDUsNyArMzAwLDcgQEAKICAqIFJldHVybiBidWZmZXJfaGVhZCBvbiBzdWNjZXNzIG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLgogICovCiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKgotcmVhZF9ibG9ja19iaXRtYXAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgZXh0NF9ncm91cF90IGJsb2NrX2dyb3VwKQorZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBleHQ0X2dyb3VwX3QgYmxvY2tfZ3JvdXApCiB7CiAJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqIGRlc2M7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICogYmggPSBOVUxMOwpAQCAtNDA5LDggKzQwNCw3IEBACiAJCXByZXYgPSByc3Y7CiAJfQogCXByaW50aygiV2luZG93IG1hcCBjb21wbGV0ZS5cbiIpOwotCWlmIChiYWQpCi0JCUJVRygpOworCUJVR19PTihiYWQpOwogfQogI2RlZmluZSByc3Zfd2luZG93X2R1bXAocm9vdCwgdmVyYm9zZSkgXAogCV9fcnN2X3dpbmRvd19kdW1wKChyb290KSwgKHZlcmJvc2UpLCBfX2Z1bmNfXykKQEAgLTY5NCw3ICs2ODgsNyBAQAogCQljb3VudCAtPSBvdmVyZmxvdzsKIAl9CiAJYnJlbHNlKGJpdG1hcF9iaCk7Ci0JYml0bWFwX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGJsb2NrX2dyb3VwKTsKKwliaXRtYXBfYmggPSBleHQ0X3JlYWRfYmxvY2tfYml0bWFwKHNiLCBibG9ja19ncm91cCk7CiAJaWYgKCFiaXRtYXBfYmgpCiAJCWdvdG8gZXJyb3JfcmV0dXJuOwogCWRlc2MgPSBleHQ0X2dldF9ncm91cF9kZXNjIChzYiwgYmxvY2tfZ3JvdXAsICZnZF9iaCk7CkBAIC04MTAsNiArODA0LDEzIEBACiAJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBibG9ja19ncm91cCkpOwogCXBlcmNwdV9jb3VudGVyX2FkZCgmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwgY291bnQpOwogCisJaWYgKHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4KSB7CisJCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwgYmxvY2tfZ3JvdXApOworCQlzcGluX2xvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2Jsb2NrcyArPSBjb3VudDsKKwkJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJfQorCiAJLyogV2UgZGlydGllZCB0aGUgYml0bWFwIGJsb2NrICovCiAJQlVGRkVSX1RSQUNFKGJpdG1hcF9iaCwgImRpcnRpZWQgYml0bWFwIGJsb2NrIik7CiAJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgYml0bWFwX2JoKTsKQEAgLTE1OTgsMjMgKzE1OTksMzUgQEAKIAogLyoqCiAgKiBleHQ0X2hhc19mcmVlX2Jsb2NrcygpCi0gKiBAc2JpOgkJaW4tY29yZSBzdXBlciBibG9jayBzdHJ1Y3R1cmUuCisgKiBAc2JpOglpbi1jb3JlIHN1cGVyIGJsb2NrIHN0cnVjdHVyZS4KKyAqIEBuYmxvY2tzOgludW1iZXIgb2YgbmVlZWQgYmxvY2tzCiAgKgotICogQ2hlY2sgaWYgZmlsZXN5c3RlbSBoYXMgYXQgbGVhc3QgMSBmcmVlIGJsb2NrIGF2YWlsYWJsZSBmb3IgYWxsb2NhdGlvbi4KKyAqIENoZWNrIGlmIGZpbGVzeXN0ZW0gaGFzIGZyZWUgYmxvY2tzIGF2YWlsYWJsZSBmb3IgYWxsb2NhdGlvbi4KKyAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGJsb2NrcyBhdmFpYmxlIGZvciBhbGxvY2F0aW9uIGZvciB0aGlzIHJlcXVlc3QKKyAqIE9uIHN1Y2Nlc3MsIHJldHVybiBuYmxvY2tzCiAgKi8KLXN0YXRpYyBpbnQgZXh0NF9oYXNfZnJlZV9ibG9ja3Moc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpKQorZXh0NF9mc2Jsa190IGV4dDRfaGFzX2ZyZWVfYmxvY2tzKHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSwKKwkJCQkJCWV4dDRfZnNibGtfdCBuYmxvY2tzKQogewotCWV4dDRfZnNibGtfdCBmcmVlX2Jsb2Nrcywgcm9vdF9ibG9ja3M7CisJZXh0NF9mc2Jsa190IGZyZWVfYmxvY2tzOworCWV4dDRfZnNibGtfdCByb290X2Jsb2NrcyA9IDA7CiAKIAlmcmVlX2Jsb2NrcyA9IHBlcmNwdV9jb3VudGVyX3JlYWRfcG9zaXRpdmUoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIpOwotCXJvb3RfYmxvY2tzID0gZXh0NF9yX2Jsb2Nrc19jb3VudChzYmktPnNfZXMpOwotCWlmIChmcmVlX2Jsb2NrcyA8IHJvb3RfYmxvY2tzICsgMSAmJiAhY2FwYWJsZShDQVBfU1lTX1JFU09VUkNFKSAmJgorCisJaWYgKCFjYXBhYmxlKENBUF9TWVNfUkVTT1VSQ0UpICYmCiAJCXNiaS0+c19yZXN1aWQgIT0gY3VycmVudC0+ZnN1aWQgJiYKLQkJKHNiaS0+c19yZXNnaWQgPT0gMCB8fCAhaW5fZ3JvdXBfcCAoc2JpLT5zX3Jlc2dpZCkpKSB7Ci0JCXJldHVybiAwOwotCX0KLQlyZXR1cm4gMTsKLX0KKwkJKHNiaS0+c19yZXNnaWQgPT0gMCB8fCAhaW5fZ3JvdXBfcChzYmktPnNfcmVzZ2lkKSkpCisJCXJvb3RfYmxvY2tzID0gZXh0NF9yX2Jsb2Nrc19jb3VudChzYmktPnNfZXMpOworI2lmZGVmIENPTkZJR19TTVAKKwlpZiAoZnJlZV9ibG9ja3MgLSByb290X2Jsb2NrcyA8IEZCQ19CQVRDSCkKKwkJZnJlZV9ibG9ja3MgPQorCQkJcGVyY3B1X2NvdW50ZXJfc3VtX2FuZF9zZXQoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIpOworI2VuZGlmCisJaWYgKGZyZWVfYmxvY2tzIC0gcm9vdF9ibG9ja3MgPCBuYmxvY2tzKQorCQlyZXR1cm4gZnJlZV9ibG9ja3MgLSByb290X2Jsb2NrczsKKwlyZXR1cm4gbmJsb2NrczsKKyB9CisKIAogLyoqCiAgKiBleHQ0X3Nob3VsZF9yZXRyeV9hbGxvYygpCkBAIC0xNjMwLDcgKzE2NDMsNyBAQAogICovCiBpbnQgZXh0NF9zaG91bGRfcmV0cnlfYWxsb2Moc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50ICpyZXRyaWVzKQogewotCWlmICghZXh0NF9oYXNfZnJlZV9ibG9ja3MoRVhUNF9TQihzYikpIHx8ICgqcmV0cmllcykrKyA+IDMpCisJaWYgKCFleHQ0X2hhc19mcmVlX2Jsb2NrcyhFWFQ0X1NCKHNiKSwgMSkgfHwgKCpyZXRyaWVzKSsrID4gMykKIAkJcmV0dXJuIDA7CiAKIAlqYmRfZGVidWcoMSwgIiVzOiByZXRyeWluZyBvcGVyYXRpb24gYWZ0ZXIgRU5PU1BDXG4iLCBzYi0+c19pZCk7CkBAIC0xNjM5LDIwICsxNjUyLDI0IEBACiB9CiAKIC8qKgotICogZXh0NF9uZXdfYmxvY2tzX29sZCgpIC0tIGNvcmUgYmxvY2socykgYWxsb2NhdGlvbiBmdW5jdGlvbgorICogZXh0NF9vbGRfbmV3X2Jsb2NrcygpIC0tIGNvcmUgYmxvY2sgYml0bWFwIGJhc2VkIGJsb2NrIGFsbG9jYXRpb24gZnVuY3Rpb24KKyAqCiAgKiBAaGFuZGxlOgkJaGFuZGxlIHRvIHRoaXMgdHJhbnNhY3Rpb24KICAqIEBpbm9kZToJCWZpbGUgaW5vZGUKICAqIEBnb2FsOgkJZ2l2ZW4gdGFyZ2V0IGJsb2NrKGZpbGVzeXN0ZW0gd2lkZSkKICAqIEBjb3VudDoJCXRhcmdldCBudW1iZXIgb2YgYmxvY2tzIHRvIGFsbG9jYXRlCiAgKiBAZXJycDoJCWVycm9yIGNvZGUKICAqCi0gKiBleHQ0X25ld19ibG9ja3MgdXNlcyBhIGdvYWwgYmxvY2sgdG8gYXNzaXN0IGFsbG9jYXRpb24uICBJdCB0cmllcyB0bwotICogYWxsb2NhdGUgYmxvY2socykgZnJvbSB0aGUgYmxvY2sgZ3JvdXAgY29udGFpbnMgdGhlIGdvYWwgYmxvY2sgZmlyc3QuIElmIHRoYXQKLSAqIGZhaWxzLCBpdCB3aWxsIHRyeSB0byBhbGxvY2F0ZSBibG9jayhzKSBmcm9tIG90aGVyIGJsb2NrIGdyb3VwcyB3aXRob3V0Ci0gKiBhbnkgc3BlY2lmaWMgZ29hbCBibG9jay4KKyAqIGV4dDRfb2xkX25ld19ibG9ja3MgdXNlcyBhIGdvYWwgYmxvY2sgdG8gYXNzaXN0IGFsbG9jYXRpb24gYW5kIGxvb2sgdXAKKyAqIHRoZSBibG9jayBiaXRtYXAgZGlyZWN0bHkgdG8gZG8gYmxvY2sgYWxsb2NhdGlvbi4gIEl0IHRyaWVzIHRvCisgKiBhbGxvY2F0ZSBibG9jayhzKSBmcm9tIHRoZSBibG9jayBncm91cCBjb250YWlucyB0aGUgZ29hbCBibG9jayBmaXJzdC4gSWYKKyAqIHRoYXQgZmFpbHMsIGl0IHdpbGwgdHJ5IHRvIGFsbG9jYXRlIGJsb2NrKHMpIGZyb20gb3RoZXIgYmxvY2sgZ3JvdXBzCisgKiB3aXRob3V0IGFueSBzcGVjaWZpYyBnb2FsIGJsb2NrLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gLW8gbm9tYmFsbG9jIG1vdW50IG9wdGlvbiBpcyBlbmFibGVkCiAgKgogICovCi1leHQ0X2ZzYmxrX3QgZXh0NF9uZXdfYmxvY2tzX29sZChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorZXh0NF9mc2Jsa190IGV4dDRfb2xkX25ld19ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJCWV4dDRfZnNibGtfdCBnb2FsLCB1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwKQogewogCXN0cnVjdCBidWZmZXJfaGVhZCAqYml0bWFwX2JoID0gTlVMTDsKQEAgLTE2NzYsMTMgKzE2OTMsMjYgQEAKIAlleHQ0X2dyb3VwX3Qgbmdyb3VwczsKIAl1bnNpZ25lZCBsb25nIG51bSA9ICpjb3VudDsKIAotCSplcnJwID0gLUVOT1NQQzsKIAlzYiA9IGlub2RlLT5pX3NiOwogCWlmICghc2IpIHsKKwkJKmVycnAgPSAtRU5PREVWOwogCQlwcmludGsoImV4dDRfbmV3X2Jsb2NrOiBub25leGlzdGVudCBkZXZpY2UiKTsKIAkJcmV0dXJuIDA7CiAJfQogCisJc2JpID0gRVhUNF9TQihzYik7CisJaWYgKCFFWFQ0X0koaW5vZGUpLT5pX2RlbGFsbG9jX3Jlc2VydmVkX2ZsYWcpIHsKKwkJLyoKKwkJICogV2l0aCBkZWxhbGxvYyB3ZSBhbHJlYWR5IHJlc2VydmVkIHRoZSBibG9ja3MKKwkJICovCisJCSpjb3VudCA9IGV4dDRfaGFzX2ZyZWVfYmxvY2tzKHNiaSwgKmNvdW50KTsKKwl9CisJaWYgKCpjb3VudCA9PSAwKSB7CisJCSplcnJwID0gLUVOT1NQQzsKKwkJcmV0dXJuIDA7CS8qcmV0dXJuIHdpdGggRU5PU1BDIGVycm9yICovCisJfQorCW51bSA9ICpjb3VudDsKKwogCS8qCiAJICogQ2hlY2sgcXVvdGEgZm9yIGFsbG9jYXRpb24gb2YgdGhpcyBibG9jay4KIAkgKi8KQEAgLTE3MDYsMTEgKzE3MzYsNiBAQAogCWlmIChibG9ja19pICYmICgod2luZG93c3ogPSBibG9ja19pLT5yc3Zfd2luZG93X25vZGUucnN2X2dvYWxfc2l6ZSkgPiAwKSkKIAkJbXlfcnN2ID0gJmJsb2NrX2ktPnJzdl93aW5kb3dfbm9kZTsKIAotCWlmICghZXh0NF9oYXNfZnJlZV9ibG9ja3Moc2JpKSkgewotCQkqZXJycCA9IC1FTk9TUEM7Ci0JCWdvdG8gb3V0OwotCX0KLQogCS8qCiAJICogRmlyc3QsIHRlc3Qgd2hldGhlciB0aGUgZ29hbCBibG9jayBpcyBmcmVlLgogCSAqLwpAQCAtMTczNCw3ICsxNzU5LDcgQEAKIAkJbXlfcnN2ID0gTlVMTDsKIAogCWlmIChmcmVlX2Jsb2NrcyA+IDApIHsKLQkJYml0bWFwX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwX25vKTsKKwkJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXBfbm8pOwogCQlpZiAoIWJpdG1hcF9iaCkKIAkJCWdvdG8gaW9fZXJyb3I7CiAJCWdycF9hbGxvY19ibGsgPSBleHQ0X3RyeV90b19hbGxvY2F0ZV93aXRoX3JzdihzYiwgaGFuZGxlLApAQCAtMTc3MCw3ICsxNzk1LDcgQEAKIAkJCWNvbnRpbnVlOwogCiAJCWJyZWxzZShiaXRtYXBfYmgpOwotCQliaXRtYXBfYmggPSByZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXBfbm8pOworCQliaXRtYXBfYmggPSBleHQ0X3JlYWRfYmxvY2tfYml0bWFwKHNiLCBncm91cF9ubyk7CiAJCWlmICghYml0bWFwX2JoKQogCQkJZ290byBpb19lcnJvcjsKIAkJLyoKQEAgLTE4ODIsNyArMTkwNywxNSBAQAogCWxlMTZfYWRkX2NwdSgmZ2RwLT5iZ19mcmVlX2Jsb2Nrc19jb3VudCwgLW51bSk7CiAJZ2RwLT5iZ19jaGVja3N1bSA9IGV4dDRfZ3JvdXBfZGVzY19jc3VtKHNiaSwgZ3JvdXBfbm8sIGdkcCk7CiAJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBncm91cF9ubykpOwotCXBlcmNwdV9jb3VudGVyX3N1Yigmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwgbnVtKTsKKwlpZiAoIUVYVDRfSShpbm9kZSktPmlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZykKKwkJcGVyY3B1X2NvdW50ZXJfc3ViKCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyLCBudW0pOworCisJaWYgKHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4KSB7CisJCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwgZ3JvdXBfbm8pOworCQlzcGluX2xvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2Jsb2NrcyAtPSBudW07CisJCXNwaW5fdW5sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCX0KIAogCUJVRkZFUl9UUkFDRShnZHBfYmgsICJqb3VybmFsX2RpcnR5X21ldGFkYXRhIGZvciBncm91cCBkZXNjcmlwdG9yIik7CiAJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgZ2RwX2JoKTsKQEAgLTE5MTUsNDYgKzE5NDgsMTA0IEBACiAJcmV0dXJuIDA7CiB9CiAKLWV4dDRfZnNibGtfdCBleHQ0X25ld19ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAotCQlleHQ0X2ZzYmxrX3QgZ29hbCwgaW50ICplcnJwKQorI2RlZmluZSBFWFQ0X01FVEFfQkxPQ0sgMHgxCisKK3N0YXRpYyBleHQ0X2ZzYmxrX3QgZG9fYmxrX2FsbG9jKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJZXh0NF9sYmxrX3QgaWJsb2NrLCBleHQ0X2ZzYmxrX3QgZ29hbCwKKwkJCQl1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwLCBpbnQgZmxhZ3MpCiB7CiAJc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyOwogCWV4dDRfZnNibGtfdCByZXQ7CiAKIAlpZiAoIXRlc3Rfb3B0KGlub2RlLT5pX3NiLCBNQkFMTE9DKSkgewotCQl1bnNpZ25lZCBsb25nIGNvdW50ID0gMTsKLQkJcmV0ID0gZXh0NF9uZXdfYmxvY2tzX29sZChoYW5kbGUsIGlub2RlLCBnb2FsLCAmY291bnQsIGVycnApOwotCQlyZXR1cm4gcmV0OworCQlyZXR1cm4gZXh0NF9vbGRfbmV3X2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBnb2FsLCBjb3VudCwgZXJycCk7CiAJfQogCiAJbWVtc2V0KCZhciwgMCwgc2l6ZW9mKGFyKSk7Ci0JYXIuaW5vZGUgPSBpbm9kZTsKLQlhci5nb2FsID0gZ29hbDsKLQlhci5sZW4gPSAxOwotCXJldCA9IGV4dDRfbWJfbmV3X2Jsb2NrcyhoYW5kbGUsICZhciwgZXJycCk7Ci0JcmV0dXJuIHJldDsKLX0KKwkvKiBGaWxsIHdpdGggbmVpZ2hib3VyIGFsbG9jYXRlZCBibG9ja3MgKi8KIAotZXh0NF9mc2Jsa190IGV4dDRfbmV3X2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAotCQlleHQ0X2ZzYmxrX3QgZ29hbCwgdW5zaWduZWQgbG9uZyAqY291bnQsIGludCAqZXJycCkKLXsKLQlzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7Ci0JZXh0NF9mc2Jsa190IHJldDsKLQotCWlmICghdGVzdF9vcHQoaW5vZGUtPmlfc2IsIE1CQUxMT0MpKSB7Ci0JCXJldCA9IGV4dDRfbmV3X2Jsb2Nrc19vbGQoaGFuZGxlLCBpbm9kZSwgZ29hbCwgY291bnQsIGVycnApOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCW1lbXNldCgmYXIsIDAsIHNpemVvZihhcikpOwogCWFyLmlub2RlID0gaW5vZGU7CiAJYXIuZ29hbCA9IGdvYWw7CiAJYXIubGVuID0gKmNvdW50OworCWFyLmxvZ2ljYWwgPSBpYmxvY2s7CisKKwlpZiAoU19JU1JFRyhpbm9kZS0+aV9tb2RlKSAmJiAhKGZsYWdzICYgRVhUNF9NRVRBX0JMT0NLKSkKKwkJLyogZW5hYmxlIGluLWNvcmUgcHJlYWxsb2NhdGlvbiBmb3IgZGF0YSBibG9jayBhbGxvY2F0aW9uICovCisJCWFyLmZsYWdzID0gRVhUNF9NQl9ISU5UX0RBVEE7CisJZWxzZQorCQkvKiBkaXNhYmxlIGluLWNvcmUgcHJlYWxsb2NhdGlvbiBmb3Igbm9uLXJlZ3VsYXIgZmlsZXMgKi8KKwkJYXIuZmxhZ3MgPSAwOworCiAJcmV0ID0gZXh0NF9tYl9uZXdfYmxvY2tzKGhhbmRsZSwgJmFyLCBlcnJwKTsKIAkqY291bnQgPSBhci5sZW47CiAJcmV0dXJuIHJldDsKIH0KIAorLyoKKyAqIGV4dDRfbmV3X21ldGFfYmxvY2tzKCkgLS0gYWxsb2NhdGUgYmxvY2sgZm9yIG1ldGEgZGF0YSAoaW5kZXhpbmcpIGJsb2NrcworICoKKyAqIEBoYW5kbGU6ICAgICAgICAgICAgIGhhbmRsZSB0byB0aGlzIHRyYW5zYWN0aW9uCisgKiBAaW5vZGU6ICAgICAgICAgICAgICBmaWxlIGlub2RlCisgKiBAZ29hbDogICAgICAgICAgICAgICBnaXZlbiB0YXJnZXQgYmxvY2soZmlsZXN5c3RlbSB3aWRlKQorICogQGNvdW50OgkJdG90YWwgbnVtYmVyIG9mIGJsb2NrcyBuZWVkCisgKiBAZXJycDogICAgICAgICAgICAgICBlcnJvciBjb2RlCisgKgorICogUmV0dXJuIDFzdCBhbGxvY2F0ZWQgYmxvY2sgbnVtYmVyb24gc3VjY2VzcywgKmNvdW50IHN0b3JlcyB0b3RhbCBhY2NvdW50CisgKiBlcnJvciBzdG9yZXMgaW4gZXJycCBwb2ludGVyCisgKi8KK2V4dDRfZnNibGtfdCBleHQ0X25ld19tZXRhX2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQlleHQ0X2ZzYmxrX3QgZ29hbCwgdW5zaWduZWQgbG9uZyAqY291bnQsIGludCAqZXJycCkKK3sKKwlleHQ0X2ZzYmxrX3QgcmV0OworCXJldCA9IGRvX2Jsa19hbGxvYyhoYW5kbGUsIGlub2RlLCAwLCBnb2FsLAorCQkJCWNvdW50LCBlcnJwLCBFWFQ0X01FVEFfQkxPQ0spOworCS8qCisJICogQWNjb3VudCBmb3IgdGhlIGFsbG9jYXRlZCBtZXRhIGJsb2NrcworCSAqLworCWlmICghKCplcnJwKSkgeworCQlzcGluX2xvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7CisJCUVYVDRfSShpbm9kZSktPmlfYWxsb2NhdGVkX21ldGFfYmxvY2tzICs9ICpjb3VudDsKKwkJc3Bpbl91bmxvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7CisJfQorCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBleHQ0X25ld19tZXRhX2Jsb2NrKCkgLS0gYWxsb2NhdGUgYmxvY2sgZm9yIG1ldGEgZGF0YSAoaW5kZXhpbmcpIGJsb2NrcworICoKKyAqIEBoYW5kbGU6ICAgICAgICAgICAgIGhhbmRsZSB0byB0aGlzIHRyYW5zYWN0aW9uCisgKiBAaW5vZGU6ICAgICAgICAgICAgICBmaWxlIGlub2RlCisgKiBAZ29hbDogICAgICAgICAgICAgICBnaXZlbiB0YXJnZXQgYmxvY2soZmlsZXN5c3RlbSB3aWRlKQorICogQGVycnA6ICAgICAgICAgICAgICAgZXJyb3IgY29kZQorICoKKyAqIFJldHVybiBhbGxvY2F0ZWQgYmxvY2sgbnVtYmVyIG9uIHN1Y2Nlc3MKKyAqLworZXh0NF9mc2Jsa190IGV4dDRfbmV3X21ldGFfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKKwkJZXh0NF9mc2Jsa190IGdvYWwsIGludCAqZXJycCkKK3sKKwl1bnNpZ25lZCBsb25nIGNvdW50ID0gMTsKKwlyZXR1cm4gZXh0NF9uZXdfbWV0YV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgZ29hbCwgJmNvdW50LCBlcnJwKTsKK30KKworLyoKKyAqIGV4dDRfbmV3X2Jsb2NrcygpIC0tIGFsbG9jYXRlIGRhdGEgYmxvY2tzCisgKgorICogQGhhbmRsZTogICAgICAgICAgICAgaGFuZGxlIHRvIHRoaXMgdHJhbnNhY3Rpb24KKyAqIEBpbm9kZTogICAgICAgICAgICAgIGZpbGUgaW5vZGUKKyAqIEBnb2FsOiAgICAgICAgICAgICAgIGdpdmVuIHRhcmdldCBibG9jayhmaWxlc3lzdGVtIHdpZGUpCisgKiBAY291bnQ6CQl0b3RhbCBudW1iZXIgb2YgYmxvY2tzIG5lZWQKKyAqIEBlcnJwOiAgICAgICAgICAgICAgIGVycm9yIGNvZGUKKyAqCisgKiBSZXR1cm4gMXN0IGFsbG9jYXRlZCBibG9jayBudW1iZXJvbiBzdWNjZXNzLCAqY291bnQgc3RvcmVzIHRvdGFsIGFjY291bnQKKyAqIGVycm9yIHN0b3JlcyBpbiBlcnJwIHBvaW50ZXIKKyAqLworCitleHQ0X2ZzYmxrX3QgZXh0NF9uZXdfYmxvY2tzKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJZXh0NF9sYmxrX3QgaWJsb2NrLCBleHQ0X2ZzYmxrX3QgZ29hbCwKKwkJCQl1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwKQoreworCXJldHVybiBkb19ibGtfYWxsb2MoaGFuZGxlLCBpbm9kZSwgaWJsb2NrLCBnb2FsLCBjb3VudCwgZXJycCwgMCk7Cit9CiAKIC8qKgogICogZXh0NF9jb3VudF9mcmVlX2Jsb2NrcygpIC0tIGNvdW50IGZpbGVzeXN0ZW0gZnJlZSBibG9ja3MKQEAgLTE5ODYsNyArMjA3Nyw3IEBACiAJCQljb250aW51ZTsKIAkJZGVzY19jb3VudCArPSBsZTE2X3RvX2NwdShnZHAtPmJnX2ZyZWVfYmxvY2tzX2NvdW50KTsKIAkJYnJlbHNlKGJpdG1hcF9iaCk7Ci0JCWJpdG1hcF9iaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBpKTsKKwkJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgaSk7CiAJCWlmIChiaXRtYXBfYmggPT0gTlVMTCkKIAkJCWNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9mcy9leHQ0L2Rpci5jIGIvZnMvZXh0NC9kaXIuYwppbmRleCAyYmYwMzMxLi5kM2QyM2Q3IDEwMDY0NAotLS0gYS9mcy9leHQ0L2Rpci5jCisrKyBiL2ZzL2V4dDQvZGlyLmMKQEAgLTEyOSw3ICsxMjksOCBAQAogCQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoID0gTlVMTDsKIAogCQltYXBfYmguYl9zdGF0ZSA9IDA7Ci0JCWVyciA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKE5VTEwsIGlub2RlLCBibGssIDEsICZtYXBfYmgsIDAsIDApOworCQllcnIgPSBleHQ0X2dldF9ibG9ja3Nfd3JhcChOVUxMLCBpbm9kZSwgYmxrLCAxLCAmbWFwX2JoLAorCQkJCQkJMCwgMCwgMCk7CiAJCWlmIChlcnIgPiAwKSB7CiAJCQlwZ29mZl90IGluZGV4ID0gbWFwX2JoLmJfYmxvY2tuciA+PgogCQkJCQkoUEFHRV9DQUNIRV9TSElGVCAtIGlub2RlLT5pX2Jsa2JpdHMpOwpAQCAtMjcyLDcgKzI3Myw3IEBACiAKIAl3aGlsZSAobikgewogCQkvKiBEbyB0aGUgbm9kZSdzIGNoaWxkcmVuIGZpcnN0ICovCi0JCWlmICgobiktPnJiX2xlZnQpIHsKKwkJaWYgKG4tPnJiX2xlZnQpIHsKIAkJCW4gPSBuLT5yYl9sZWZ0OwogCQkJY29udGludWU7CiAJCX0KQEAgLTMwMSwyNCArMzAyLDE4IEBACiAJCQlwYXJlbnQtPnJiX3JpZ2h0ID0gTlVMTDsKIAkJbiA9IHBhcmVudDsKIAl9Ci0Jcm9vdC0+cmJfbm9kZSA9IE5VTEw7CiB9CiAKIAotc3RhdGljIHN0cnVjdCBkaXJfcHJpdmF0ZV9pbmZvICpjcmVhdGVfZGlyX2luZm8obG9mZl90IHBvcykKK3N0YXRpYyBzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyAqZXh0NF9odHJlZV9jcmVhdGVfZGlyX2luZm8obG9mZl90IHBvcykKIHsKIAlzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyAqcDsKIAotCXAgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyksIEdGUF9LRVJORUwpOworCXAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyksIEdGUF9LRVJORUwpOwogCWlmICghcCkKIAkJcmV0dXJuIE5VTEw7Ci0JcC0+cm9vdC5yYl9ub2RlID0gTlVMTDsKLQlwLT5jdXJyX25vZGUgPSBOVUxMOwotCXAtPmV4dHJhX2ZuYW1lID0gTlVMTDsKLQlwLT5sYXN0X3BvcyA9IDA7CiAJcC0+Y3Vycl9oYXNoID0gcG9zMm1hal9oYXNoKHBvcyk7CiAJcC0+Y3Vycl9taW5vcl9oYXNoID0gcG9zMm1pbl9oYXNoKHBvcyk7Ci0JcC0+bmV4dF9oYXNoID0gMDsKIAlyZXR1cm4gcDsKIH0KIApAQCAtNDMzLDcgKzQyOCw3IEBACiAJaW50CXJldDsKIAogCWlmICghaW5mbykgewotCQlpbmZvID0gY3JlYXRlX2Rpcl9pbmZvKGZpbHAtPmZfcG9zKTsKKwkJaW5mbyA9IGV4dDRfaHRyZWVfY3JlYXRlX2Rpcl9pbmZvKGZpbHAtPmZfcG9zKTsKIAkJaWYgKCFpbmZvKQogCQkJcmV0dXJuIC1FTk9NRU07CiAJCWZpbHAtPnByaXZhdGVfZGF0YSA9IGluZm87CmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dDQuaCBiL2ZzL2V4dDQvZXh0NC5oCmluZGV4IDgxNTgwODMuLjMwM2U0MWMgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0NC5oCisrKyBiL2ZzL2V4dDQvZXh0NC5oCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVkZSAiZXh0NF9pLmgiCiAKIC8qCi0gKiBUaGUgc2Vjb25kIGV4dGVuZGVkIGZpbGVzeXN0ZW0gY29uc3RhbnRzL3N0cnVjdHVyZXMKKyAqIFRoZSBmb3VydGggZXh0ZW5kZWQgZmlsZXN5c3RlbSBjb25zdGFudHMvc3RydWN0dXJlcwogICovCiAKIC8qCkBAIC00NSw3ICs0NSw3IEBACiAjZGVmaW5lIGV4dDRfZGVidWcoZiwgYS4uLikJCQkJCQlcCiAJZG8gewkJCQkJCQkJXAogCQlwcmludGsgKEtFUk5fREVCVUcgIkVYVDQtZnMgREVCVUcgKCVzLCAlZCk6ICVzOiIsCVwKLQkJCV9fRklMRV9fLCBfX0xJTkVfXywgX19GVU5DVElPTl9fKTsJCVwKKwkJCV9fRklMRV9fLCBfX0xJTkVfXywgX19mdW5jX18pOwkJCVwKIAkJcHJpbnRrIChLRVJOX0RFQlVHIGYsICMjIGEpOwkJCQlcCiAJfSB3aGlsZSAoMCkKICNlbHNlCkBAIC03NCw2ICs3NCw5IEBACiAjZGVmaW5lIEVYVDRfTUJfSElOVF9HT0FMX09OTFkJCTI1NgogLyogZ29hbCBpcyBtZWFuaW5nZnVsICovCiAjZGVmaW5lIEVYVDRfTUJfSElOVF9UUllfR09BTAkJNTEyCisvKiBibG9ja3MgYWxyZWFkeSBwcmUtcmVzZXJ2ZWQgYnkgZGVsYXllZCBhbGxvY2F0aW9uICovCisjZGVmaW5lIEVYVDRfTUJfREVMQUxMT0NfUkVTRVJWRUQgICAgICAxMDI0CisKIAogc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IHsKIAkvKiB0YXJnZXQgaW5vZGUgZm9yIGJsb2NrIHdlJ3JlIGFsbG9jYXRpbmcgKi8KQEAgLTE3MCw2ICsxNzMsMTUgQEAKIAlfX3UzMgliZ19yZXNlcnZlZDJbM107CiB9OwogCisvKgorICogU3RydWN0dXJlIG9mIGEgZmxleCBibG9jayBncm91cCBpbmZvCisgKi8KKworc3RydWN0IGZsZXhfZ3JvdXBzIHsKKwlfX3UzMiBmcmVlX2lub2RlczsKKwlfX3UzMiBmcmVlX2Jsb2NrczsKK307CisKICNkZWZpbmUgRVhUNF9CR19JTk9ERV9VTklOSVQJMHgwMDAxIC8qIElub2RlIHRhYmxlL2JpdG1hcCBub3QgaW4gdXNlICovCiAjZGVmaW5lIEVYVDRfQkdfQkxPQ0tfVU5JTklUCTB4MDAwMiAvKiBCbG9jayBiaXRtYXAgbm90IGluIHVzZSAqLwogI2RlZmluZSBFWFQ0X0JHX0lOT0RFX1pFUk9FRAkweDAwMDQgLyogT24tZGlzayBpdGFibGUgaW5pdGlhbGl6ZWQgdG8gemVybyAqLwpAQCAtNTI3LDYgKzUzOSw3IEBACiAjZGVmaW5lIEVYVDRfTU9VTlRfSk9VUk5BTF9BU1lOQ19DT01NSVQJMHgxMDAwMDAwIC8qIEpvdXJuYWwgQXN5bmMgQ29tbWl0ICovCiAjZGVmaW5lIEVYVDRfTU9VTlRfSV9WRVJTSU9OICAgICAgICAgICAgMHgyMDAwMDAwIC8qIGlfdmVyc2lvbiBzdXBwb3J0ICovCiAjZGVmaW5lIEVYVDRfTU9VTlRfTUJBTExPQwkJMHg0MDAwMDAwIC8qIEJ1ZGR5IGFsbG9jYXRpb24gc3VwcG9ydCAqLworI2RlZmluZSBFWFQ0X01PVU5UX0RFTEFMTE9DCQkweDgwMDAwMDAgLyogRGVsYWxsb2Mgc3VwcG9ydCAqLwogLyogQ29tcGF0aWJpbGl0eSwgZm9yIGhhdmluZyBib3RoIGV4dDJfZnMuaCBhbmQgZXh0NF9mcy5oIGluY2x1ZGVkIGF0IG9uY2UgKi8KICNpZm5kZWYgX0xJTlVYX0VYVDJfRlNfSAogI2RlZmluZSBjbGVhcl9vcHQobywgb3B0KQkJbyAmPSB+RVhUNF9NT1VOVF8jI29wdApAQCAtNjQ3LDcgKzY2MCwxMCBAQAogCV9fbGUxNiAgc19tbXBfaW50ZXJ2YWw7ICAgICAgICAgLyogIyBzZWNvbmRzIHRvIHdhaXQgaW4gTU1QIGNoZWNraW5nICovCiAJX19sZTY0ICBzX21tcF9ibG9jazsgICAgICAgICAgICAvKiBCbG9jayBmb3IgbXVsdGktbW91bnQgcHJvdGVjdGlvbiAqLwogCV9fbGUzMiAgc19yYWlkX3N0cmlwZV93aWR0aDsgICAgLyogYmxvY2tzIG9uIGFsbCBkYXRhIGRpc2tzIChOKnN0cmlkZSkqLwotCV9fdTMyICAgc19yZXNlcnZlZFsxNjNdOyAgICAgICAgLyogUGFkZGluZyB0byB0aGUgZW5kIG9mIHRoZSBibG9jayAqLworCV9fdTgJc19sb2dfZ3JvdXBzX3Blcl9mbGV4OyAgLyogRkxFWF9CRyBncm91cCBzaXplICovCisJX191OAlzX3Jlc2VydmVkX2NoYXJfcGFkMjsKKwlfX2xlMTYgIHNfcmVzZXJ2ZWRfcGFkOworCV9fdTMyICAgc19yZXNlcnZlZFsxNjJdOyAgICAgICAgLyogUGFkZGluZyB0byB0aGUgZW5kIG9mIHRoZSBibG9jayAqLwogfTsKIAogI2lmZGVmIF9fS0VSTkVMX18KQEAgLTk1OCwxMiArOTc0LDE3IEBACiBleHRlcm4gaW50IGV4dDRfYmdfaGFzX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGV4dDRfZ3JvdXBfdCBncm91cCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBleHQ0X2JnX251bV9nZGIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJCWV4dDRfZ3JvdXBfdCBncm91cCk7Ci1leHRlcm4gZXh0NF9mc2Jsa190IGV4dDRfbmV3X2Jsb2NrIChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X25ld19tZXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQlleHQ0X2ZzYmxrX3QgZ29hbCwgaW50ICplcnJwKTsKLWV4dGVybiBleHQ0X2ZzYmxrX3QgZXh0NF9uZXdfYmxvY2tzIChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X25ld19tZXRhX2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJZXh0NF9mc2Jsa190IGdvYWwsIHVuc2lnbmVkIGxvbmcgKmNvdW50LCBpbnQgKmVycnApOwotZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X25ld19ibG9ja3Nfb2xkKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCitleHRlcm4gZXh0NF9mc2Jsa190IGV4dDRfbmV3X2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJCQlleHQ0X2xibGtfdCBpYmxvY2ssIGV4dDRfZnNibGtfdCBnb2FsLAorCQkJCQl1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwKTsKK2V4dGVybiBleHQ0X2ZzYmxrX3QgZXh0NF9vbGRfbmV3X2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJZXh0NF9mc2Jsa190IGdvYWwsIHVuc2lnbmVkIGxvbmcgKmNvdW50LCBpbnQgKmVycnApOworZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X2hhc19mcmVlX2Jsb2NrcyhzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksCisJCQkJCQlleHQ0X2ZzYmxrX3QgbmJsb2Nrcyk7CiBleHRlcm4gdm9pZCBleHQ0X2ZyZWVfYmxvY2tzIChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJZXh0NF9mc2Jsa190IGJsb2NrLCB1bnNpZ25lZCBsb25nIGNvdW50LCBpbnQgbWV0YWRhdGEpOwogZXh0ZXJuIHZvaWQgZXh0NF9mcmVlX2Jsb2Nrc19zYiAoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKQEAgLTEwMTYsOSArMTAzNywxNCBAQAogZXh0ZXJuIHZvaWQgZXhpdF9leHQ0X21iYWxsb2Modm9pZCk7CiBleHRlcm4gdm9pZCBleHQ0X21iX2ZyZWVfYmxvY2tzKGhhbmRsZV90ICosIHN0cnVjdCBpbm9kZSAqLAogCQl1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBpbnQsIHVuc2lnbmVkIGxvbmcgKik7CitleHRlcm4gaW50IGV4dDRfbWJfYWRkX21vcmVfZ3JvdXBpbmZvKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCisJCWV4dDRfZ3JvdXBfdCBpLCBzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpkZXNjKTsKK2V4dGVybiB2b2lkIGV4dDRfbWJfdXBkYXRlX2dyb3VwX2luZm8oc3RydWN0IGV4dDRfZ3JvdXBfaW5mbyAqZ3JwLAorCQlleHQ0X2dycGJsa190IGFkZCk7CiAKIAogLyogaW5vZGUuYyAqLwordm9pZCBleHQ0X2RhX3JlbGVhc2Vfc3BhY2Uoc3RydWN0IGlub2RlICppbm9kZSwgaW50IHVzZWQsIGludCB0b19mcmVlKTsKIGludCBleHQ0X2ZvcmdldChoYW5kbGVfdCAqaGFuZGxlLCBpbnQgaXNfbWV0YWRhdGEsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCXN0cnVjdCBidWZmZXJfaGVhZCAqYmgsIGV4dDRfZnNibGtfdCBibG9ja25yKTsKIHN0cnVjdCBidWZmZXJfaGVhZCAqZXh0NF9nZXRibGsoaGFuZGxlX3QgKiwgc3RydWN0IGlub2RlICosCkBAIC0xMDMzLDE5ICsxMDU5LDIzIEBACiBleHRlcm4gc3RydWN0IGlub2RlICpleHQ0X2lnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICosIHVuc2lnbmVkIGxvbmcpOwogZXh0ZXJuIGludCAgZXh0NF93cml0ZV9pbm9kZSAoc3RydWN0IGlub2RlICosIGludCk7CiBleHRlcm4gaW50ICBleHQ0X3NldGF0dHIgKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICopOworZXh0ZXJuIGludCAgZXh0NF9nZXRhdHRyKHN0cnVjdCB2ZnNtb3VudCAqbW50LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCisJCQkJc3RydWN0IGtzdGF0ICpzdGF0KTsKIGV4dGVybiB2b2lkIGV4dDRfZGVsZXRlX2lub2RlIChzdHJ1Y3QgaW5vZGUgKik7CiBleHRlcm4gaW50ICBleHQ0X3N5bmNfaW5vZGUgKGhhbmRsZV90ICosIHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiB2b2lkIGV4dDRfZGlzY2FyZF9yZXNlcnZhdGlvbiAoc3RydWN0IGlub2RlICopOwogZXh0ZXJuIHZvaWQgZXh0NF9kaXJ0eV9pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CiBleHRlcm4gaW50IGV4dDRfY2hhbmdlX2lub2RlX2pvdXJuYWxfZmxhZyhzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKIGV4dGVybiBpbnQgZXh0NF9nZXRfaW5vZGVfbG9jKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZXh0NF9pbG9jICopOworZXh0ZXJuIGludCBleHQ0X2Nhbl90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGV4dGVybiB2b2lkIGV4dDRfdHJ1bmNhdGUgKHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiB2b2lkIGV4dDRfc2V0X2lub2RlX2ZsYWdzKHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiB2b2lkIGV4dDRfZ2V0X2lub2RlX2ZsYWdzKHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKik7CiBleHRlcm4gdm9pZCBleHQ0X3NldF9hb3BzKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogZXh0ZXJuIGludCBleHQ0X3dyaXRlcGFnZV90cmFuc19ibG9ja3Moc3RydWN0IGlub2RlICopOwotZXh0ZXJuIGludCBleHQ0X2Jsb2NrX3RydW5jYXRlX3BhZ2UoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsCitleHRlcm4gaW50IGV4dDRfYmxvY2tfdHJ1bmNhdGVfcGFnZShoYW5kbGVfdCAqaGFuZGxlLAogCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IGZyb20pOworZXh0ZXJuIGludCBleHQ0X3BhZ2VfbWt3cml0ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UpOwogCiAvKiBpb2N0bC5jICovCiBleHRlcm4gbG9uZyBleHQ0X2lvY3RsKHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CkBAIC0xMTU5LDEwICsxMTg5LDIxIEBACiB9CiAKIAorc3RhdGljIGlubGluZSBleHQ0X2dyb3VwX3QgZXh0NF9mbGV4X2dyb3VwKHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSwKKwkJCQkJICAgICBleHQ0X2dyb3VwX3QgYmxvY2tfZ3JvdXApCit7CisJcmV0dXJuIGJsb2NrX2dyb3VwID4+IHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4OworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBleHQ0X2ZsZXhfYmdfc2l6ZShzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkpCit7CisJcmV0dXJuIDEgPDwgc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXg7Cit9CisKICNkZWZpbmUgZXh0NF9zdGRfZXJyb3Ioc2IsIGVycm5vKQkJCQlcCiBkbyB7CQkJCQkJCQlcCiAJaWYgKChlcnJubykpCQkJCQkJXAotCQlfX2V4dDRfc3RkX2Vycm9yKChzYiksIF9fRlVOQ1RJT05fXywgKGVycm5vKSk7CVwKKwkJX19leHQ0X3N0ZF9lcnJvcigoc2IpLCBfX2Z1bmNfXywgKGVycm5vKSk7CVwKIH0gd2hpbGUgKDApCiAKIC8qCkBAIC0xMTkxLDcgKzEyMzIsNyBAQAogCQkJZXh0NF9sYmxrX3QgaWJsb2NrLAogCQkJdW5zaWduZWQgbG9uZyBtYXhfYmxvY2tzLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoX3Jlc3VsdCwKIAkJCWludCBjcmVhdGUsIGludCBleHRlbmRfZGlza3NpemUpOwotZXh0ZXJuIHZvaWQgZXh0NF9leHRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICosIHN0cnVjdCBwYWdlICopOworZXh0ZXJuIHZvaWQgZXh0NF9leHRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICopOwogZXh0ZXJuIHZvaWQgZXh0NF9leHRfaW5pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CiBleHRlcm4gdm9pZCBleHQ0X2V4dF9yZWxlYXNlKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIGV4dGVybiBsb25nIGV4dDRfZmFsbG9jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtb2RlLCBsb2ZmX3Qgb2Zmc2V0LApAQCAtMTE5OSw3ICsxMjQwLDcgQEAKIGV4dGVybiBpbnQgZXh0NF9nZXRfYmxvY2tzX3dyYXAoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJCXNlY3Rvcl90IGJsb2NrLCB1bnNpZ25lZCBsb25nIG1heF9ibG9ja3MsCiAJCQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBpbnQgY3JlYXRlLAotCQkJaW50IGV4dGVuZF9kaXNrc2l6ZSk7CisJCQlpbnQgZXh0ZW5kX2Rpc2tzaXplLCBpbnQgZmxhZyk7CiAjZW5kaWYJLyogX19LRVJORUxfXyAqLwogCiAjZW5kaWYJLyogX0VYVDRfSCAqLwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0X2V4dGVudHMuaCBiL2ZzL2V4dDQvZXh0NF9leHRlbnRzLmgKaW5kZXggNzUzMzNiNS4uNmMxNjZjMCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHQ0X2V4dGVudHMuaAorKysgYi9mcy9leHQ0L2V4dDRfZXh0ZW50cy5oCkBAIC0yMTIsNiArMjEyLDcgQEAKIAkJKGxlMTZfdG9fY3B1KGV4dC0+ZWVfbGVuKSAtIEVYVF9JTklUX01BWF9MRU4pKTsKIH0KIAorZXh0ZXJuIGludCBleHQ0X2V4dF9jYWxjX21ldGFkYXRhX2Ftb3VudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYmxvY2tzKTsKIGV4dGVybiBleHQ0X2ZzYmxrX3QgaWR4X3BibG9jayhzdHJ1Y3QgZXh0NF9leHRlbnRfaWR4ICopOwogZXh0ZXJuIHZvaWQgZXh0NF9leHRfc3RvcmVfcGJsb2NrKHN0cnVjdCBleHQ0X2V4dGVudCAqLCBleHQ0X2ZzYmxrX3QpOwogZXh0ZXJuIGludCBleHQ0X2V4dGVudF90cmVlX2luaXQoaGFuZGxlX3QgKiwgc3RydWN0IGlub2RlICopOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0X2kuaCBiL2ZzL2V4dDQvZXh0NF9pLmgKaW5kZXggMjZhNGFlMi4uZWY3NDA5ZiAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHQ0X2kuaAorKysgYi9mcy9leHQ0L2V4dDRfaS5oCkBAIC03OSw3ICs3OSw3IEBACiB9OwogCiAvKgotICogdGhpcmQgZXh0ZW5kZWQgZmlsZSBzeXN0ZW0gaW5vZGUgZGF0YSBpbiBtZW1vcnkKKyAqIGZvdXJ0aCBleHRlbmRlZCBmaWxlIHN5c3RlbSBpbm9kZSBkYXRhIGluIG1lbW9yeQogICovCiBzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvIHsKIAlfX2xlMzIJaV9kYXRhWzE1XTsJLyogdW5jb252ZXJ0ZWQgKi8KQEAgLTE1MCw2ICsxNTAsNyBAQAogCSAqLwogCXN0cnVjdCByd19zZW1hcGhvcmUgaV9kYXRhX3NlbTsKIAlzdHJ1Y3QgaW5vZGUgdmZzX2lub2RlOworCXN0cnVjdCBqYmQyX2lub2RlIGppbm9kZTsKIAogCXVuc2lnbmVkIGxvbmcgaV9leHRfZ2VuZXJhdGlvbjsKIAlzdHJ1Y3QgZXh0NF9leHRfY2FjaGUgaV9jYWNoZWRfZXh0ZW50OwpAQCAtMTYyLDYgKzE2MywxMyBAQAogCS8qIG1iYWxsb2MgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGlfcHJlYWxsb2NfbGlzdDsKIAlzcGlubG9ja190IGlfcHJlYWxsb2NfbG9jazsKKworCS8qIGFsbG9jYXRpb24gcmVzZXJ2YXRpb24gaW5mbyBmb3IgZGVsYWxsb2MgKi8KKwl1bnNpZ25lZCBsb25nIGlfcmVzZXJ2ZWRfZGF0YV9ibG9ja3M7CisJdW5zaWduZWQgbG9uZyBpX3Jlc2VydmVkX21ldGFfYmxvY2tzOworCXVuc2lnbmVkIGxvbmcgaV9hbGxvY2F0ZWRfbWV0YV9ibG9ja3M7CisJdW5zaWduZWQgc2hvcnQgaV9kZWxhbGxvY19yZXNlcnZlZF9mbGFnOworCXNwaW5sb2NrX3QgaV9ibG9ja19yZXNlcnZhdGlvbl9sb2NrOwogfTsKIAogI2VuZGlmCS8qIF9FWFQ0X0kgKi8KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NF9qYmQyLmggYi9mcy9leHQ0L2V4dDRfamJkMi5oCmluZGV4IDkyNTVhN2QyLi5lYjhiYzNhIDEwMDY0NAotLS0gYS9mcy9leHQ0L2V4dDRfamJkMi5oCisrKyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmgKQEAgLTE0MiwxOSArMTQyLDE3IEBACiAJCQkJaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCk7CiAKICNkZWZpbmUgZXh0NF9qb3VybmFsX2dldF91bmRvX2FjY2VzcyhoYW5kbGUsIGJoKSBcCi0JX19leHQ0X2pvdXJuYWxfZ2V0X3VuZG9fYWNjZXNzKF9fRlVOQ1RJT05fXywgKGhhbmRsZSksIChiaCkpCisJX19leHQ0X2pvdXJuYWxfZ2V0X3VuZG9fYWNjZXNzKF9fZnVuY19fLCAoaGFuZGxlKSwgKGJoKSkKICNkZWZpbmUgZXh0NF9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoaGFuZGxlLCBiaCkgXAotCV9fZXh0NF9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoX19GVU5DVElPTl9fLCAoaGFuZGxlKSwgKGJoKSkKKwlfX2V4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKF9fZnVuY19fLCAoaGFuZGxlKSwgKGJoKSkKICNkZWZpbmUgZXh0NF9qb3VybmFsX3Jldm9rZShoYW5kbGUsIGJsb2NrbnIsIGJoKSBcCi0JX19leHQ0X2pvdXJuYWxfcmV2b2tlKF9fRlVOQ1RJT05fXywgKGhhbmRsZSksIChibG9ja25yKSwgKGJoKSkKKwlfX2V4dDRfam91cm5hbF9yZXZva2UoX19mdW5jX18sIChoYW5kbGUpLCAoYmxvY2tuciksIChiaCkpCiAjZGVmaW5lIGV4dDRfam91cm5hbF9nZXRfY3JlYXRlX2FjY2VzcyhoYW5kbGUsIGJoKSBcCi0JX19leHQ0X2pvdXJuYWxfZ2V0X2NyZWF0ZV9hY2Nlc3MoX19GVU5DVElPTl9fLCAoaGFuZGxlKSwgKGJoKSkKKwlfX2V4dDRfam91cm5hbF9nZXRfY3JlYXRlX2FjY2VzcyhfX2Z1bmNfXywgKGhhbmRsZSksIChiaCkpCiAjZGVmaW5lIGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShoYW5kbGUsIGJoKSBcCi0JX19leHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoX19GVU5DVElPTl9fLCAoaGFuZGxlKSwgKGJoKSkKKwlfX2V4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShfX2Z1bmNfXywgKGhhbmRsZSksIChiaCkpCiAjZGVmaW5lIGV4dDRfam91cm5hbF9mb3JnZXQoaGFuZGxlLCBiaCkgXAotCV9fZXh0NF9qb3VybmFsX2ZvcmdldChfX0ZVTkNUSU9OX18sIChoYW5kbGUpLCAoYmgpKQotCi1pbnQgZXh0NF9qb3VybmFsX2RpcnR5X2RhdGEoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCk7CisJX19leHQ0X2pvdXJuYWxfZm9yZ2V0KF9fZnVuY19fLCAoaGFuZGxlKSwgKGJoKSkKIAogaGFuZGxlX3QgKmV4dDRfam91cm5hbF9zdGFydF9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbmJsb2Nrcyk7CiBpbnQgX19leHQ0X2pvdXJuYWxfc3RvcChjb25zdCBjaGFyICp3aGVyZSwgaGFuZGxlX3QgKmhhbmRsZSk7CkBAIC0xNjUsNyArMTYzLDcgQEAKIH0KIAogI2RlZmluZSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpIFwKLQlfX2V4dDRfam91cm5hbF9zdG9wKF9fRlVOQ1RJT05fXywgKGhhbmRsZSkpCisJX19leHQ0X2pvdXJuYWxfc3RvcChfX2Z1bmNfXywgKGhhbmRsZSkpCiAKIHN0YXRpYyBpbmxpbmUgaGFuZGxlX3QgKmV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSh2b2lkKQogewpAQCAtMTkyLDYgKzE5MCwxMSBAQAogCXJldHVybiBqYmQyX2pvdXJuYWxfZm9yY2VfY29tbWl0KGpvdXJuYWwpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBleHQ0X2piZDJfZmlsZV9pbm9kZShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworCXJldHVybiBqYmQyX2pvdXJuYWxfZmlsZV9pbm9kZShoYW5kbGUsICZFWFQ0X0koaW5vZGUpLT5qaW5vZGUpOworfQorCiAvKiBzdXBlci5jICovCiBpbnQgZXh0NF9mb3JjZV9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiAKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NF9zYi5oIGIvZnMvZXh0NC9leHQ0X3NiLmgKaW5kZXggNTgwMmU2OS4uNjMwMDIyNiAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHQ0X3NiLmgKKysrIGIvZnMvZXh0NC9leHQ0X3NiLmgKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9yYnRyZWUuaD4KIAogLyoKLSAqIHRoaXJkIGV4dGVuZGVkLWZzIHN1cGVyLWJsb2NrIGRhdGEgaW4gbWVtb3J5CisgKiBmb3VydGggZXh0ZW5kZWQtZnMgc3VwZXItYmxvY2sgZGF0YSBpbiBtZW1vcnkKICAqLwogc3RydWN0IGV4dDRfc2JfaW5mbyB7CiAJdW5zaWduZWQgbG9uZyBzX2Rlc2Nfc2l6ZTsJLyogU2l6ZSBvZiBhIGdyb3VwIGRlc2NyaXB0b3IgaW4gYnl0ZXMgKi8KQEAgLTE0Myw2ICsxNDMsOSBAQAogCiAJLyogbG9jYWxpdHkgZ3JvdXBzICovCiAJc3RydWN0IGV4dDRfbG9jYWxpdHlfZ3JvdXAgKnNfbG9jYWxpdHlfZ3JvdXBzOworCisJdW5zaWduZWQgaW50IHNfbG9nX2dyb3Vwc19wZXJfZmxleDsKKwlzdHJ1Y3QgZmxleF9ncm91cHMgKnNfZmxleF9ncm91cHM7CiB9OwogCiAjZW5kaWYJLyogX0VYVDRfU0IgKi8KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0ZW50cy5jIGIvZnMvZXh0NC9leHRlbnRzLmMKaW5kZXggNDc5MjljNC4uNDJjNGMwYyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHRlbnRzLmMKKysrIGIvZnMvZXh0NC9leHRlbnRzLmMKQEAgLTkyLDE3ICs5MiwxNiBAQAogCWl4LT5laV9sZWFmX2hpID0gY3B1X3RvX2xlMTYoKHVuc2lnbmVkIGxvbmcpICgocGIgPj4gMzEpID4+IDEpICYgMHhmZmZmKTsKIH0KIAotc3RhdGljIGhhbmRsZV90ICpleHQ0X2V4dF9qb3VybmFsX3Jlc3RhcnQoaGFuZGxlX3QgKmhhbmRsZSwgaW50IG5lZWRlZCkKK3N0YXRpYyBpbnQgZXh0NF9leHRfam91cm5hbF9yZXN0YXJ0KGhhbmRsZV90ICpoYW5kbGUsIGludCBuZWVkZWQpCiB7CiAJaW50IGVycjsKIAogCWlmIChoYW5kbGUtPmhfYnVmZmVyX2NyZWRpdHMgPiBuZWVkZWQpCi0JCXJldHVybiBoYW5kbGU7Ci0JaWYgKCFleHQ0X2pvdXJuYWxfZXh0ZW5kKGhhbmRsZSwgbmVlZGVkKSkKLQkJcmV0dXJuIGhhbmRsZTsKLQllcnIgPSBleHQ0X2pvdXJuYWxfcmVzdGFydChoYW5kbGUsIG5lZWRlZCk7Ci0KLQlyZXR1cm4gaGFuZGxlOworCQlyZXR1cm4gMDsKKwllcnIgPSBleHQ0X2pvdXJuYWxfZXh0ZW5kKGhhbmRsZSwgbmVlZGVkKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCXJldHVybiBleHQ0X2pvdXJuYWxfcmVzdGFydChoYW5kbGUsIG5lZWRlZCk7CiB9CiAKIC8qCkBAIC0xODAsMTUgKzE3OSwxOCBAQAogCXJldHVybiBiZ19zdGFydCArIGNvbG91ciArIGJsb2NrOwogfQogCisvKgorICogQWxsb2NhdGlvbiBmb3IgYSBtZXRhIGRhdGEgYmxvY2sKKyAqLwogc3RhdGljIGV4dDRfZnNibGtfdAotZXh0NF9leHRfbmV3X2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCitleHQ0X2V4dF9uZXdfbWV0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJc3RydWN0IGV4dDRfZXh0X3BhdGggKnBhdGgsCiAJCQlzdHJ1Y3QgZXh0NF9leHRlbnQgKmV4LCBpbnQgKmVycikKIHsKIAlleHQ0X2ZzYmxrX3QgZ29hbCwgbmV3YmxvY2s7CiAKIAlnb2FsID0gZXh0NF9leHRfZmluZF9nb2FsKGlub2RlLCBwYXRoLCBsZTMyX3RvX2NwdShleC0+ZWVfYmxvY2spKTsKLQluZXdibG9jayA9IGV4dDRfbmV3X2Jsb2NrKGhhbmRsZSwgaW5vZGUsIGdvYWwsIGVycik7CisJbmV3YmxvY2sgPSBleHQ0X25ld19tZXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsIGdvYWwsIGVycik7CiAJcmV0dXJuIG5ld2Jsb2NrOwogfQogCkBAIC0yNDYsNiArMjQ4LDM2IEBACiAJcmV0dXJuIHNpemU7CiB9CiAKKy8qCisgKiBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBtZXRhZGF0YSBibG9ja3MgbmVlZGVkCisgKiB0byBhbGxvY2F0ZSBAYmxvY2tzCisgKiBXb3JzZSBjYXNlIGlzIG9uZSBibG9jayBwZXIgZXh0ZW50CisgKi8KK2ludCBleHQ0X2V4dF9jYWxjX21ldGFkYXRhX2Ftb3VudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYmxvY2tzKQoreworCWludCBsY2FwLCBpY2FwLCByY2FwLCBsZWFmcywgaWR4cywgbnVtOworCWludCBuZXdleHRlbnRzID0gYmxvY2tzOworCisJcmNhcCA9IGV4dDRfZXh0X3NwYWNlX3Jvb3RfaWR4KGlub2RlKTsKKwlsY2FwID0gZXh0NF9leHRfc3BhY2VfYmxvY2soaW5vZGUpOworCWljYXAgPSBleHQ0X2V4dF9zcGFjZV9ibG9ja19pZHgoaW5vZGUpOworCisJLyogbnVtYmVyIG9mIG5ldyBsZWFmIGJsb2NrcyBuZWVkZWQgKi8KKwludW0gPSBsZWFmcyA9IChuZXdleHRlbnRzICsgbGNhcCAtIDEpIC8gbGNhcDsKKworCS8qCisJICogV29yc2UgY2FzZSwgd2UgbmVlZCBzZXBhcmF0ZSBpbmRleCBibG9jayhzKQorCSAqIHRvIGxpbmsgYWxsIG5ldyBsZWFmIGJsb2NrcworCSAqLworCWlkeHMgPSAobGVhZnMgKyBpY2FwIC0gMSkgLyBpY2FwOworCWRvIHsKKwkJbnVtICs9IGlkeHM7CisJCWlkeHMgPSAoaWR4cyArIGljYXAgLSAxKSAvIGljYXA7CisJfSB3aGlsZSAoaWR4cyA+IHJjYXApOworCisJcmV0dXJuIG51bTsKK30KKwogc3RhdGljIGludAogZXh0NF9leHRfbWF4X2VudHJpZXMoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGRlcHRoKQogewpAQCAtNTI0LDYgKzU1Niw3IEBACiAJCWFsbG9jID0gMTsKIAl9CiAJcGF0aFswXS5wX2hkciA9IGVoOworCXBhdGhbMF0ucF9iaCA9IE5VTEw7CiAKIAlpID0gZGVwdGg7CiAJLyogd2FsayB0aHJvdWdoIHRoZSB0cmVlICovCkBAIC01NTIsMTIgKzU4NSwxNCBAQAogCX0KIAogCXBhdGhbcHBvc10ucF9kZXB0aCA9IGk7Ci0JcGF0aFtwcG9zXS5wX2hkciA9IGVoOwogCXBhdGhbcHBvc10ucF9leHQgPSBOVUxMOwogCXBhdGhbcHBvc10ucF9pZHggPSBOVUxMOwogCiAJLyogZmluZCBleHRlbnQgKi8KIAlleHQ0X2V4dF9iaW5zZWFyY2goaW5vZGUsIHBhdGggKyBwcG9zLCBibG9jayk7CisJLyogaWYgbm90IGFuIGVtcHR5IGxlYWYgKi8KKwlpZiAocGF0aFtwcG9zXS5wX2V4dCkKKwkJcGF0aFtwcG9zXS5wX2Jsb2NrID0gZXh0X3BibG9jayhwYXRoW3Bwb3NdLnBfZXh0KTsKIAogCWV4dDRfZXh0X3Nob3dfcGF0aChpbm9kZSwgcGF0aCk7CiAKQEAgLTY4OCw3ICs3MjMsOCBAQAogCS8qIGFsbG9jYXRlIGFsbCBuZWVkZWQgYmxvY2tzICovCiAJZXh0X2RlYnVnKCJhbGxvY2F0ZSAlZCBibG9ja3MgZm9yIGluZGV4ZXMvbGVhZlxuIiwgZGVwdGggLSBhdCk7CiAJZm9yIChhID0gMDsgYSA8IGRlcHRoIC0gYXQ7IGErKykgewotCQluZXdibG9jayA9IGV4dDRfZXh0X25ld19ibG9jayhoYW5kbGUsIGlub2RlLCBwYXRoLCBuZXdleHQsICZlcnIpOworCQluZXdibG9jayA9IGV4dDRfZXh0X25ld19tZXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsIHBhdGgsCisJCQkJCQkgICBuZXdleHQsICZlcnIpOwogCQlpZiAobmV3YmxvY2sgPT0gMCkKIAkJCWdvdG8gY2xlYW51cDsKIAkJYWJsb2Nrc1thXSA9IG5ld2Jsb2NrOwpAQCAtODg0LDcgKzkyMCw3IEBACiAJZXh0NF9mc2Jsa190IG5ld2Jsb2NrOwogCWludCBlcnIgPSAwOwogCi0JbmV3YmxvY2sgPSBleHQ0X2V4dF9uZXdfYmxvY2soaGFuZGxlLCBpbm9kZSwgcGF0aCwgbmV3ZXh0LCAmZXJyKTsKKwluZXdibG9jayA9IGV4dDRfZXh0X25ld19tZXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsIHBhdGgsIG5ld2V4dCwgJmVycik7CiAJaWYgKG5ld2Jsb2NrID09IDApCiAJCXJldHVybiBlcnI7CiAKQEAgLTk4MSw2ICsxMDE3LDggQEAKIAkJLyogaWYgd2UgZm91bmQgaW5kZXggd2l0aCBmcmVlIGVudHJ5LCB0aGVuIHVzZSB0aGF0CiAJCSAqIGVudHJ5OiBjcmVhdGUgYWxsIG5lZWRlZCBzdWJ0cmVlIGFuZCBhZGQgbmV3IGxlYWYgKi8KIAkJZXJyID0gZXh0NF9leHRfc3BsaXQoaGFuZGxlLCBpbm9kZSwgcGF0aCwgbmV3ZXh0LCBpKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0OwogCiAJCS8qIHJlZmlsbCBwYXRoICovCiAJCWV4dDRfZXh0X2Ryb3BfcmVmcyhwYXRoKTsKQEAgLTE4ODMsMTEgKzE5MjEsOSBAQAogCQljcmVkaXRzICs9IDIgKiBFWFQ0X1FVT1RBX1RSQU5TX0JMT0NLUyhpbm9kZS0+aV9zYik7CiAjZW5kaWYKIAotCQloYW5kbGUgPSBleHQ0X2V4dF9qb3VybmFsX3Jlc3RhcnQoaGFuZGxlLCBjcmVkaXRzKTsKLQkJaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0JCQllcnIgPSBQVFJfRVJSKGhhbmRsZSk7CisJCWVyciA9IGV4dDRfZXh0X2pvdXJuYWxfcmVzdGFydChoYW5kbGUsIGNyZWRpdHMpOworCQlpZiAoZXJyKQogCQkJZ290byBvdXQ7Ci0JCX0KIAogCQllcnIgPSBleHQ0X2V4dF9nZXRfYWNjZXNzKGhhbmRsZSwgaW5vZGUsIHBhdGggKyBkZXB0aCk7CiAJCWlmIChlcnIpCkBAIC0yNTI5LDYgKzI1NjUsNyBAQAogCWludCBlcnIgPSAwLCBkZXB0aCwgcmV0OwogCXVuc2lnbmVkIGxvbmcgYWxsb2NhdGVkID0gMDsKIAlzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7CisJbG9mZl90IGRpc2tzaXplOwogCiAJX19jbGVhcl9iaXQoQkhfTmV3LCAmYmhfcmVzdWx0LT5iX3N0YXRlKTsKIAlleHRfZGVidWcoImJsb2NrcyAldS8lbHUgcmVxdWVzdGVkIGZvciBpbm9kZSAldVxuIiwKQEAgLTI2MTYsOCArMjY1Myw3IEBACiAJCQkJICovCiAJCQkJaWYgKGFsbG9jYXRlZCA+IG1heF9ibG9ja3MpCiAJCQkJCWFsbG9jYXRlZCA9IG1heF9ibG9ja3M7Ci0JCQkJLyogbWFyayB0aGUgYnVmZmVyIHVud3JpdHRlbiAqLwotCQkJCV9fc2V0X2JpdChCSF9VbndyaXR0ZW4sICZiaF9yZXN1bHQtPmJfc3RhdGUpOworCQkJCXNldF9idWZmZXJfdW53cml0dGVuKGJoX3Jlc3VsdCk7CiAJCQkJZ290byBvdXQyOwogCQkJfQogCkBAIC0yNzE2LDE0ICsyNzUyLDE5IEBACiAJCWdvdG8gb3V0MjsKIAl9CiAKLQlpZiAoZXh0ZW5kX2Rpc2tzaXplICYmIGlub2RlLT5pX3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKQotCQlFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplID0gaW5vZGUtPmlfc2l6ZTsKLQogCS8qIHByZXZpb3VzIHJvdXRpbmUgY291bGQgdXNlIGJsb2NrIHdlIGFsbG9jYXRlZCAqLwogCW5ld2Jsb2NrID0gZXh0X3BibG9jaygmbmV3ZXgpOwogCWFsbG9jYXRlZCA9IGV4dDRfZXh0X2dldF9hY3R1YWxfbGVuKCZuZXdleCk7CiBvdXRuZXc6Ci0JX19zZXRfYml0KEJIX05ldywgJmJoX3Jlc3VsdC0+Yl9zdGF0ZSk7CisJaWYgKGV4dGVuZF9kaXNrc2l6ZSkgeworCQlkaXNrc2l6ZSA9ICgobG9mZl90KSBpYmxvY2sgKyBhci5sZW4pIDw8IGlub2RlLT5pX2Jsa2JpdHM7CisJCWlmIChkaXNrc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkKKwkJCWRpc2tzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCQlpZiAoZGlza3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKQorCQkJRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSA9IGRpc2tzaXplOworCX0KKworCXNldF9idWZmZXJfbmV3KGJoX3Jlc3VsdCk7CiAKIAkvKiBDYWNoZSBvbmx5IHdoZW4gaXQgaXMgX25vdF8gYW4gdW5pbml0aWFsaXplZCBleHRlbnQgKi8KIAlpZiAoY3JlYXRlICE9IEVYVDRfQ1JFQVRFX1VOSU5JVElBTElaRURfRVhUKQpAQCAtMjczMyw3ICsyNzc0LDcgQEAKIAlpZiAoYWxsb2NhdGVkID4gbWF4X2Jsb2NrcykKIAkJYWxsb2NhdGVkID0gbWF4X2Jsb2NrczsKIAlleHQ0X2V4dF9zaG93X2xlYWYoaW5vZGUsIHBhdGgpOwotCV9fc2V0X2JpdChCSF9NYXBwZWQsICZiaF9yZXN1bHQtPmJfc3RhdGUpOworCXNldF9idWZmZXJfbWFwcGVkKGJoX3Jlc3VsdCk7CiAJYmhfcmVzdWx0LT5iX2JkZXYgPSBpbm9kZS0+aV9zYi0+c19iZGV2OwogCWJoX3Jlc3VsdC0+Yl9ibG9ja25yID0gbmV3YmxvY2s7CiBvdXQyOgpAQCAtMjc0NCw3ICsyNzg1LDcgQEAKIAlyZXR1cm4gZXJyID8gZXJyIDogYWxsb2NhdGVkOwogfQogCi12b2lkIGV4dDRfZXh0X3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKK3ZvaWQgZXh0NF9leHRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSkKIHsKIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGlub2RlLT5pX21hcHBpbmc7CiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGlub2RlLT5pX3NiOwpAQCAtMjc1NywxOCArMjc5OCwxNCBAQAogCSAqLwogCWVyciA9IGV4dDRfd3JpdGVwYWdlX3RyYW5zX2Jsb2Nrcyhpbm9kZSkgKyAzOwogCWhhbmRsZSA9IGV4dDRfam91cm5hbF9zdGFydChpbm9kZSwgZXJyKTsKLQlpZiAoSVNfRVJSKGhhbmRsZSkpIHsKLQkJaWYgKHBhZ2UpIHsKLQkJCWNsZWFyX2hpZ2hwYWdlKHBhZ2UpOwotCQkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7Ci0JCQl1bmxvY2tfcGFnZShwYWdlKTsKLQkJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKLQkJfQorCWlmIChJU19FUlIoaGFuZGxlKSkKIAkJcmV0dXJuOwotCX0KIAotCWlmIChwYWdlKQotCQlleHQ0X2Jsb2NrX3RydW5jYXRlX3BhZ2UoaGFuZGxlLCBwYWdlLCBtYXBwaW5nLCBpbm9kZS0+aV9zaXplKTsKKwlpZiAoaW5vZGUtPmlfc2l6ZSAmIChzYi0+c19ibG9ja3NpemUgLSAxKSkKKwkJZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZSwgbWFwcGluZywgaW5vZGUtPmlfc2l6ZSk7CisKKwlpZiAoZXh0NF9vcnBoYW5fYWRkKGhhbmRsZSwgaW5vZGUpKQorCQlnb3RvIG91dF9zdG9wOwogCiAJZG93bl93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CiAJZXh0NF9leHRfaW52YWxpZGF0ZV9jYWNoZShpbm9kZSk7CkBAIC0yNzgwLDggKzI4MTcsNiBAQAogCSAqIFByb2JhYmx5IHdlIG5lZWQgbm90IHNjYW4gYXQgYWxsLAogCSAqIGJlY2F1c2UgcGFnZSB0cnVuY2F0aW9uIGlzIGVub3VnaC4KIAkgKi8KLQlpZiAoZXh0NF9vcnBoYW5fYWRkKGhhbmRsZSwgaW5vZGUpKQotCQlnb3RvIG91dF9zdG9wOwogCiAJLyogd2UgaGF2ZSB0byBrbm93IHdoZXJlIHRvIHRydW5jYXRlIGZyb20gaW4gY3Jhc2ggY2FzZSAqLwogCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBpbm9kZS0+aV9zaXplOwpAQCAtMjc5OCw2ICsyODMzLDcgQEAKIAkJaGFuZGxlLT5oX3N5bmMgPSAxOwogCiBvdXRfc3RvcDoKKwl1cF93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CiAJLyoKIAkgKiBJZiB0aGlzIHdhcyBhIHNpbXBsZSBmdHJ1bmNhdGUoKSBhbmQgdGhlIGZpbGUgd2lsbCByZW1haW4gYWxpdmUsCiAJICogdGhlbiB3ZSBuZWVkIHRvIGNsZWFyIHVwIHRoZSBvcnBoYW4gcmVjb3JkIHdoaWNoIHdlIGNyZWF0ZWQgYWJvdmUuCkBAIC0yODA4LDcgKzI4NDQsNiBAQAogCWlmIChpbm9kZS0+aV9ubGluaykKIAkJZXh0NF9vcnBoYW5fZGVsKGhhbmRsZSwgaW5vZGUpOwogCi0JdXBfd3JpdGUoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOwogCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShpbm9kZSk7CiAJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgaW5vZGUpOwogCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CkBAIC0yOTExLDcgKzI5NDYsNyBAQAogCQl9CiAJCXJldCA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKGhhbmRsZSwgaW5vZGUsIGJsb2NrLAogCQkJCQkgIG1heF9ibG9ja3MsICZtYXBfYmgsCi0JCQkJCSAgRVhUNF9DUkVBVEVfVU5JTklUSUFMSVpFRF9FWFQsIDApOworCQkJCQkgIEVYVDRfQ1JFQVRFX1VOSU5JVElBTElaRURfRVhULCAwLCAwKTsKIAkJaWYgKHJldCA8PSAwKSB7CiAjaWZkZWYgRVhUNEZTX0RFQlVHCiAJCQlXQVJOX09OKHJldCA8PSAwKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZmlsZS5jIGIvZnMvZXh0NC9maWxlLmMKaW5kZXggNDE1OWJlNi4uNDMwZWI3OSAxMDA2NDQKLS0tIGEvZnMvZXh0NC9maWxlLmMKKysrIGIvZnMvZXh0NC9maWxlLmMKQEAgLTEyMyw2ICsxMjMsMjMgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGV4dDRfZmlsZV92bV9vcHMgPSB7CisJLmZhdWx0CQk9IGZpbGVtYXBfZmF1bHQsCisJLnBhZ2VfbWt3cml0ZSAgID0gZXh0NF9wYWdlX21rd3JpdGUsCit9OworCitzdGF0aWMgaW50IGV4dDRfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGZpbGUtPmZfbWFwcGluZzsKKworCWlmICghbWFwcGluZy0+YV9vcHMtPnJlYWRwYWdlKQorCQlyZXR1cm4gLUVOT0VYRUM7CisJZmlsZV9hY2Nlc3NlZChmaWxlKTsKKwl2bWEtPnZtX29wcyA9ICZleHQ0X2ZpbGVfdm1fb3BzOworCXZtYS0+dm1fZmxhZ3MgfD0gVk1fQ0FOX05PTkxJTkVBUjsKKwlyZXR1cm4gMDsKK30KKwogY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBleHQ0X2ZpbGVfb3BlcmF0aW9ucyA9IHsKIAkubGxzZWVrCQk9IGdlbmVyaWNfZmlsZV9sbHNlZWssCiAJLnJlYWQJCT0gZG9fc3luY19yZWFkLApAQCAtMTMzLDcgKzE1MCw3IEBACiAjaWZkZWYgQ09ORklHX0NPTVBBVAogCS5jb21wYXRfaW9jdGwJPSBleHQ0X2NvbXBhdF9pb2N0bCwKICNlbmRpZgotCS5tbWFwCQk9IGdlbmVyaWNfZmlsZV9tbWFwLAorCS5tbWFwCQk9IGV4dDRfZmlsZV9tbWFwLAogCS5vcGVuCQk9IGdlbmVyaWNfZmlsZV9vcGVuLAogCS5yZWxlYXNlCT0gZXh0NF9yZWxlYXNlX2ZpbGUsCiAJLmZzeW5jCQk9IGV4dDRfc3luY19maWxlLApAQCAtMTQ0LDYgKzE2MSw3IEBACiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBleHQ0X2ZpbGVfaW5vZGVfb3BlcmF0aW9ucyA9IHsKIAkudHJ1bmNhdGUJPSBleHQ0X3RydW5jYXRlLAogCS5zZXRhdHRyCT0gZXh0NF9zZXRhdHRyLAorCS5nZXRhdHRyCT0gZXh0NF9nZXRhdHRyLAogI2lmZGVmIENPTkZJR19FWFQ0REVWX0ZTX1hBVFRSCiAJLnNldHhhdHRyCT0gZ2VuZXJpY19zZXR4YXR0ciwKIAkuZ2V0eGF0dHIJPSBnZW5lcmljX2dldHhhdHRyLApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9mc3luYy5jIGIvZnMvZXh0NC9mc3luYy5jCmluZGV4IDFjOGJhNDguLmE0NWMzNzMgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZnN5bmMuYworKysgYi9mcy9leHQ0L2ZzeW5jLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5oPgogI2luY2x1ZGUgPGxpbnV4L2piZDIuaD4KKyNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KICNpbmNsdWRlICJleHQ0LmgiCiAjaW5jbHVkZSAiZXh0NF9qYmQyLmgiCiAKQEAgLTQ1LDYgKzQ2LDcgQEAKIGludCBleHQ0X3N5bmNfZmlsZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IGRhdGFzeW5jKQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7CisJam91cm5hbF90ICpqb3VybmFsID0gRVhUNF9TQihpbm9kZS0+aV9zYiktPnNfam91cm5hbDsKIAlpbnQgcmV0ID0gMDsKIAogCUpfQVNTRVJUKGV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpID09IE5VTEwpOwpAQCAtODUsNiArODcsOCBAQAogCQkJLm5yX3RvX3dyaXRlID0gMCwgLyogc3lzX2ZzeW5jIGRpZCB0aGlzICovCiAJCX07CiAJCXJldCA9IHN5bmNfaW5vZGUoaW5vZGUsICZ3YmMpOworCQlpZiAoam91cm5hbCAmJiAoam91cm5hbC0+al9mbGFncyAmIEpCRDJfQkFSUklFUikpCisJCQlibGtkZXZfaXNzdWVfZmx1c2goaW5vZGUtPmlfc2ItPnNfYmRldiwgTlVMTCk7CiAJfQogb3V0OgogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9mcy9leHQ0L2dyb3VwLmggYi9mcy9leHQ0L2dyb3VwLmgKaW5kZXggN2ViMDYwNC4uYzJjMGE4ZCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9ncm91cC5oCisrKyBiL2ZzL2V4dDQvZ3JvdXAuaApAQCAtMTMsNyArMTMsNyBAQAogCQkJCSAgIHN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKmdkcCk7CiBleHRlcm4gaW50IGV4dDRfZ3JvdXBfZGVzY19jc3VtX3ZlcmlmeShzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksIF9fdTMyIGdyb3VwLAogCQkJCSAgICAgICBzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpnZHApOwotc3RydWN0IGJ1ZmZlcl9oZWFkICpyZWFkX2Jsb2NrX2JpdG1hcChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAorc3RydWN0IGJ1ZmZlcl9oZWFkICpleHQ0X3JlYWRfYmxvY2tfYml0bWFwKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJCQkJICAgICAgZXh0NF9ncm91cF90IGJsb2NrX2dyb3VwKTsKIGV4dGVybiB1bnNpZ25lZCBleHQ0X2luaXRfYmxvY2tfYml0bWFwKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJCQkJICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsCmRpZmYgLS1naXQgYS9mcy9leHQ0L2lhbGxvYy5jIGIvZnMvZXh0NC9pYWxsb2MuYwppbmRleCBjNmVmYmFiMC4uYTkyZWIzMCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9pYWxsb2MuYworKysgYi9mcy9leHQ0L2lhbGxvYy5jCkBAIC0xNTcsNiArMTU3LDcgQEAKIAlzdHJ1Y3QgZXh0NF9zdXBlcl9ibG9jayAqIGVzOwogCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaTsKIAlpbnQgZmF0YWwgPSAwLCBlcnI7CisJZXh0NF9ncm91cF90IGZsZXhfZ3JvdXA7CiAKIAlpZiAoYXRvbWljX3JlYWQoJmlub2RlLT5pX2NvdW50KSA+IDEpIHsKIAkJcHJpbnRrICgiZXh0NF9mcmVlX2lub2RlOiBpbm9kZSBoYXMgY291bnQ9JWRcbiIsCkBAIC0yMzIsNiArMjMzLDEyIEBACiAJCQlpZiAoaXNfZGlyZWN0b3J5KQogCQkJCXBlcmNwdV9jb3VudGVyX2RlYygmc2JpLT5zX2RpcnNfY291bnRlcik7CiAKKwkJCWlmIChzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleCkgeworCQkJCWZsZXhfZ3JvdXAgPSBleHQ0X2ZsZXhfZ3JvdXAoc2JpLCBibG9ja19ncm91cCk7CisJCQkJc3Bpbl9sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCQkJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2lub2RlcysrOworCQkJCXNwaW5fdW5sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCQkJfQogCQl9CiAJCUJVRkZFUl9UUkFDRShiaDIsICJjYWxsIGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YSIpOwogCQllcnIgPSBleHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoaGFuZGxlLCBiaDIpOwpAQCAtMjg2LDYgKzI5Myw4MCBAQAogCXJldHVybiByZXQ7CiB9CiAKKyNkZWZpbmUgZnJlZV9ibG9ja19yYXRpbyAxMAorCitzdGF0aWMgaW50IGZpbmRfZ3JvdXBfZmxleChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgaW5vZGUgKnBhcmVudCwKKwkJCSAgIGV4dDRfZ3JvdXBfdCAqYmVzdF9ncm91cCkKK3sKKwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKKwlzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpkZXNjOworCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CisJc3RydWN0IGZsZXhfZ3JvdXBzICpmbGV4X2dyb3VwID0gc2JpLT5zX2ZsZXhfZ3JvdXBzOworCWV4dDRfZ3JvdXBfdCBwYXJlbnRfZ3JvdXAgPSBFWFQ0X0kocGFyZW50KS0+aV9ibG9ja19ncm91cDsKKwlleHQ0X2dyb3VwX3QgcGFyZW50X2ZiZ19ncm91cCA9IGV4dDRfZmxleF9ncm91cChzYmksIHBhcmVudF9ncm91cCk7CisJZXh0NF9ncm91cF90IG5ncm91cHMgPSBzYmktPnNfZ3JvdXBzX2NvdW50OworCWludCBmbGV4X3NpemUgPSBleHQ0X2ZsZXhfYmdfc2l6ZShzYmkpOworCWV4dDRfZ3JvdXBfdCBiZXN0X2ZsZXggPSBwYXJlbnRfZmJnX2dyb3VwOworCWludCBibG9ja3NfcGVyX2ZsZXggPSBzYmktPnNfYmxvY2tzX3Blcl9ncm91cCAqIGZsZXhfc2l6ZTsKKwlpbnQgZmxleGJnX2ZyZWVfYmxvY2tzOworCWludCBmbGV4X2ZyZWViX3JhdGlvOworCWV4dDRfZ3JvdXBfdCBuX2ZiZ19ncm91cHM7CisJZXh0NF9ncm91cF90IGk7CisKKwluX2ZiZ19ncm91cHMgPSAoc2JpLT5zX2dyb3Vwc19jb3VudCArIGZsZXhfc2l6ZSAtIDEpID4+CisJCXNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4OworCitmaW5kX2Nsb3NlX3RvX3BhcmVudDoKKwlmbGV4YmdfZnJlZV9ibG9ja3MgPSBmbGV4X2dyb3VwW2Jlc3RfZmxleF0uZnJlZV9ibG9ja3M7CisJZmxleF9mcmVlYl9yYXRpbyA9IGZsZXhiZ19mcmVlX2Jsb2NrcyAqIDEwMCAvIGJsb2Nrc19wZXJfZmxleDsKKwlpZiAoZmxleF9ncm91cFtiZXN0X2ZsZXhdLmZyZWVfaW5vZGVzICYmCisJICAgIGZsZXhfZnJlZWJfcmF0aW8gPiBmcmVlX2Jsb2NrX3JhdGlvKQorCQlnb3RvIGZvdW5kX2ZsZXhiZzsKKworCWlmIChiZXN0X2ZsZXggJiYgYmVzdF9mbGV4ID09IHBhcmVudF9mYmdfZ3JvdXApIHsKKwkJYmVzdF9mbGV4LS07CisJCWdvdG8gZmluZF9jbG9zZV90b19wYXJlbnQ7CisJfQorCisJZm9yIChpID0gMDsgaSA8IG5fZmJnX2dyb3VwczsgaSsrKSB7CisJCWlmIChpID09IHBhcmVudF9mYmdfZ3JvdXAgfHwgaSA9PSBwYXJlbnRfZmJnX2dyb3VwIC0gMSkKKwkJCWNvbnRpbnVlOworCisJCWZsZXhiZ19mcmVlX2Jsb2NrcyA9IGZsZXhfZ3JvdXBbaV0uZnJlZV9ibG9ja3M7CisJCWZsZXhfZnJlZWJfcmF0aW8gPSBmbGV4YmdfZnJlZV9ibG9ja3MgKiAxMDAgLyBibG9ja3NfcGVyX2ZsZXg7CisKKwkJaWYgKGZsZXhfZnJlZWJfcmF0aW8gPiBmcmVlX2Jsb2NrX3JhdGlvICYmCisJCSAgICBmbGV4X2dyb3VwW2ldLmZyZWVfaW5vZGVzKSB7CisJCQliZXN0X2ZsZXggPSBpOworCQkJZ290byBmb3VuZF9mbGV4Ymc7CisJCX0KKworCQlpZiAoYmVzdF9mbGV4IDwgMCB8fAorCQkgICAgKGZsZXhfZ3JvdXBbaV0uZnJlZV9ibG9ja3MgPgorCQkgICAgIGZsZXhfZ3JvdXBbYmVzdF9mbGV4XS5mcmVlX2Jsb2NrcyAmJgorCQkgICAgIGZsZXhfZ3JvdXBbaV0uZnJlZV9pbm9kZXMpKQorCQkJYmVzdF9mbGV4ID0gaTsKKwl9CisKKwlpZiAoIWZsZXhfZ3JvdXBbYmVzdF9mbGV4XS5mcmVlX2lub2RlcyB8fAorCSAgICAhZmxleF9ncm91cFtiZXN0X2ZsZXhdLmZyZWVfYmxvY2tzKQorCQlyZXR1cm4gLTE7CisKK2ZvdW5kX2ZsZXhiZzoKKwlmb3IgKGkgPSBiZXN0X2ZsZXggKiBmbGV4X3NpemU7IGkgPCBuZ3JvdXBzICYmCisJCSAgICAgaSA8IChiZXN0X2ZsZXggKyAxKSAqIGZsZXhfc2l6ZTsgaSsrKSB7CisJCWRlc2MgPSBleHQ0X2dldF9ncm91cF9kZXNjKHNiLCBpLCAmYmgpOworCQlpZiAobGUxNl90b19jcHUoZGVzYy0+YmdfZnJlZV9pbm9kZXNfY291bnQpKSB7CisJCQkqYmVzdF9ncm91cCA9IGk7CisJCQlnb3RvIG91dDsKKwkJfQorCX0KKworCXJldHVybiAtMTsKK291dDoKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIE9ybG92J3MgYWxsb2NhdG9yIGZvciBkaXJlY3Rvcmllcy4KICAqCkBAIC01MDEsNiArNTgyLDcgQEAKIAlzdHJ1Y3QgaW5vZGUgKnJldDsKIAlleHQ0X2dyb3VwX3QgaTsKIAlpbnQgZnJlZSA9IDA7CisJZXh0NF9ncm91cF90IGZsZXhfZ3JvdXA7CiAKIAkvKiBDYW5ub3QgY3JlYXRlIGZpbGVzIGluIGEgZGVsZXRlZCBkaXJlY3RvcnkgKi8KIAlpZiAoIWRpciB8fCAhZGlyLT5pX25saW5rKQpAQCAtNTE0LDYgKzU5NiwxMiBAQAogCiAJc2JpID0gRVhUNF9TQihzYik7CiAJZXMgPSBzYmktPnNfZXM7CisKKwlpZiAoc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXgpIHsKKwkJcmV0MiA9IGZpbmRfZ3JvdXBfZmxleChzYiwgZGlyLCAmZ3JvdXApOworCQlnb3RvIGdvdF9ncm91cDsKKwl9CisKIAlpZiAoU19JU0RJUihtb2RlKSkgewogCQlpZiAodGVzdF9vcHQgKHNiLCBPTERBTExPQykpCiAJCQlyZXQyID0gZmluZF9ncm91cF9kaXIoc2IsIGRpciwgJmdyb3VwKTsKQEAgLTUyMiw2ICs2MTAsNyBAQAogCX0gZWxzZQogCQlyZXQyID0gZmluZF9ncm91cF9vdGhlcihzYiwgZGlyLCAmZ3JvdXApOwogCitnb3RfZ3JvdXA6CiAJZXJyID0gLUVOT1NQQzsKIAlpZiAocmV0MiA9PSAtMSkKIAkJZ290byBvdXQ7CkBAIC02MDAsNyArNjg5LDcgQEAKIAkvKiBXZSBtYXkgaGF2ZSB0byBpbml0aWFsaXplIHRoZSBibG9jayBiaXRtYXAgaWYgaXQgaXNuJ3QgYWxyZWFkeSAqLwogCWlmIChFWFQ0X0hBU19ST19DT01QQVRfRkVBVFVSRShzYiwgRVhUNF9GRUFUVVJFX1JPX0NPTVBBVF9HRFRfQ1NVTSkgJiYKIAkgICAgZ2RwLT5iZ19mbGFncyAmIGNwdV90b19sZTE2KEVYVDRfQkdfQkxPQ0tfVU5JTklUKSkgewotCQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJsb2NrX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKKwkJc3RydWN0IGJ1ZmZlcl9oZWFkICpibG9ja19iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKIAogCQlCVUZGRVJfVFJBQ0UoYmxvY2tfYmgsICJnZXQgYmxvY2sgYml0bWFwIGFjY2VzcyIpOwogCQllcnIgPSBleHQ0X2pvdXJuYWxfZ2V0X3dyaXRlX2FjY2VzcyhoYW5kbGUsIGJsb2NrX2JoKTsKQEAgLTY3Niw2ICs3NjUsMTMgQEAKIAkJcGVyY3B1X2NvdW50ZXJfaW5jKCZzYmktPnNfZGlyc19jb3VudGVyKTsKIAlzYi0+c19kaXJ0ID0gMTsKIAorCWlmIChzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleCkgeworCQlmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwgZ3JvdXApOworCQlzcGluX2xvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2lub2Rlcy0tOworCQlzcGluX3VubG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwl9CisKIAlpbm9kZS0+aV91aWQgPSBjdXJyZW50LT5mc3VpZDsKIAlpZiAodGVzdF9vcHQgKHNiLCBHUlBJRCkpCiAJCWlub2RlLT5pX2dpZCA9IGRpci0+aV9naWQ7CkBAIC03NDAsMTQgKzgzNiwxMCBAQAogCQlnb3RvIGZhaWxfZnJlZV9kcm9wOwogCiAJaWYgKHRlc3Rfb3B0KHNiLCBFWFRFTlRTKSkgewotCQkvKiBzZXQgZXh0ZW50IGZsYWcgb25seSBmb3IgZGlyZXRvcnksIGZpbGUgYW5kIG5vcm1hbCBzeW1saW5rKi8KKwkJLyogc2V0IGV4dGVudCBmbGFnIG9ubHkgZm9yIGRpcmVjdG9yeSwgZmlsZSBhbmQgbm9ybWFsIHN5bWxpbmsqLwogCQlpZiAoU19JU0RJUihtb2RlKSB8fCBTX0lTUkVHKG1vZGUpIHx8IFNfSVNMTksobW9kZSkpIHsKIAkJCUVYVDRfSShpbm9kZSktPmlfZmxhZ3MgfD0gRVhUNF9FWFRFTlRTX0ZMOwogCQkJZXh0NF9leHRfdHJlZV9pbml0KGhhbmRsZSwgaW5vZGUpOwotCQkJZXJyID0gZXh0NF91cGRhdGVfaW5jb21wYXRfZmVhdHVyZShoYW5kbGUsIHNiLAotCQkJCQlFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfRVhURU5UUyk7Ci0JCQlpZiAoZXJyKQotCQkJCWdvdG8gZmFpbF9mcmVlX2Ryb3A7CiAJCX0KIAl9CiAKQEAgLTgxNyw2ICs5MDksMTQgQEAKIAlpZiAoSVNfRVJSKGlub2RlKSkKIAkJZ290byBpZ2V0X2ZhaWxlZDsKIAorCS8qCisJICogSWYgdGhlIG9ycGhhbnMgaGFzIGlfbmxpbmtzID4gMCB0aGVuIGl0IHNob3VsZCBiZSBhYmxlIHRvIGJlCisJICogdHJ1bmNhdGVkLCBvdGhlcndpc2UgaXQgd29uJ3QgYmUgcmVtb3ZlZCBmcm9tIHRoZSBvcnBoYW4gbGlzdAorCSAqIGR1cmluZyBwcm9jZXNzaW5nIGFuZCBhbiBpbmZpbml0ZSBsb29wIHdpbGwgcmVzdWx0LgorCSAqLworCWlmIChpbm9kZS0+aV9ubGluayAmJiAhZXh0NF9jYW5fdHJ1bmNhdGUoaW5vZGUpKQorCQlnb3RvIGJhZF9vcnBoYW47CisKIAlpZiAoTkVYVF9PUlBIQU4oaW5vZGUpID4gbWF4X2lubykKIAkJZ290byBiYWRfb3JwaGFuOwogCWJyZWxzZShiaXRtYXBfYmgpOwpAQCAtODM4LDYgKzkzOCw3IEBACiAJCXByaW50ayhLRVJOX05PVElDRSAiTkVYVF9PUlBIQU4oaW5vZGUpPSV1XG4iLAogCQkgICAgICAgTkVYVF9PUlBIQU4oaW5vZGUpKTsKIAkJcHJpbnRrKEtFUk5fTk9USUNFICJtYXhfaW5vPSVsdVxuIiwgbWF4X2lubyk7CisJCXByaW50ayhLRVJOX05PVElDRSAiaV9ubGluaz0ldVxuIiwgaW5vZGUtPmlfbmxpbmspOwogCQkvKiBBdm9pZCBmcmVlaW5nIGJsb2NrcyBpZiB3ZSBnb3QgYSBiYWQgZGVsZXRlZCBpbm9kZSAqLwogCQlpZiAoaW5vZGUtPmlfbmxpbmsgPT0gMCkKIAkJCWlub2RlLT5pX2Jsb2NrcyA9IDA7CmRpZmYgLS1naXQgYS9mcy9leHQ0L2lub2RlLmMgYi9mcy9leHQ0L2lub2RlLmMKaW5kZXggOGQ5NzA3Ny4uOGNhMjc2MyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9pbm9kZS5jCisrKyBiL2ZzL2V4dDQvaW5vZGUuYwpAQCAtMzIsMTIgKzMyLDIzIEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvYnVmZmVyX2hlYWQuaD4KICNpbmNsdWRlIDxsaW51eC93cml0ZWJhY2suaD4KKyNpbmNsdWRlIDxsaW51eC9wYWdldmVjLmg+CiAjaW5jbHVkZSA8bGludXgvbXBhZ2UuaD4KICNpbmNsdWRlIDxsaW51eC91aW8uaD4KICNpbmNsdWRlIDxsaW51eC9iaW8uaD4KICNpbmNsdWRlICJleHQ0X2piZDIuaCIKICNpbmNsdWRlICJ4YXR0ci5oIgogI2luY2x1ZGUgImFjbC5oIgorI2luY2x1ZGUgImV4dDRfZXh0ZW50cy5oIgorCitzdGF0aWMgaW5saW5lIGludCBleHQ0X2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwKKwkJCQkJICAgICAgbG9mZl90IG5ld19zaXplKQoreworCXJldHVybiBqYmQyX2pvdXJuYWxfYmVnaW5fb3JkZXJlZF90cnVuY2F0ZSgmRVhUNF9JKGlub2RlKS0+amlub2RlLAorCQkJCQkJICAgbmV3X3NpemUpOworfQorCitzdGF0aWMgdm9pZCBleHQ0X2ludmFsaWRhdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAKIC8qCiAgKiBUZXN0IHdoZXRoZXIgYW4gaW5vZGUgaXMgYSBmYXN0IHN5bWxpbmsuCkBAIC0xODEsNiArMTkyLDggQEAKIHsKIAloYW5kbGVfdCAqaGFuZGxlOwogCisJaWYgKGV4dDRfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpKQorCQlleHQ0X2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUoaW5vZGUsIDApOwogCXRydW5jYXRlX2lub2RlX3BhZ2VzKCZpbm9kZS0+aV9kYXRhLCAwKTsKIAogCWlmIChpc19iYWRfaW5vZGUoaW5vZGUpKQpAQCAtNTA4LDExICs1MjEsMTIgQEAKICAqCQlkaXJlY3QgYmxvY2tzCiAgKi8KIHN0YXRpYyBpbnQgZXh0NF9hbGxvY19ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJCWV4dDRfZnNibGtfdCBnb2FsLCBpbnQgaW5kaXJlY3RfYmxrcywgaW50IGJsa3MsCi0JCQlleHQ0X2ZzYmxrX3QgbmV3X2Jsb2Nrc1s0XSwgaW50ICplcnIpCisJCQkJZXh0NF9sYmxrX3QgaWJsb2NrLCBleHQ0X2ZzYmxrX3QgZ29hbCwKKwkJCQlpbnQgaW5kaXJlY3RfYmxrcywgaW50IGJsa3MsCisJCQkJZXh0NF9mc2Jsa190IG5ld19ibG9ja3NbNF0sIGludCAqZXJyKQogewogCWludCB0YXJnZXQsIGk7Ci0JdW5zaWduZWQgbG9uZyBjb3VudCA9IDA7CisJdW5zaWduZWQgbG9uZyBjb3VudCA9IDAsIGJsa19hbGxvY2F0ZWQgPSAwOwogCWludCBpbmRleCA9IDA7CiAJZXh0NF9mc2Jsa190IGN1cnJlbnRfYmxvY2sgPSAwOwogCWludCByZXQgPSAwOwpAQCAtNTI1LDEyICs1MzksMTMgQEAKIAkgKiB0aGUgZmlyc3QgZGlyZWN0IGJsb2NrIG9mIHRoaXMgYnJhbmNoLiAgVGhhdCdzIHRoZQogCSAqIG1pbmltdW0gbnVtYmVyIG9mIGJsb2NrcyBuZWVkIHRvIGFsbG9jYXRlKHJlcXVpcmVkKQogCSAqLwotCXRhcmdldCA9IGJsa3MgKyBpbmRpcmVjdF9ibGtzOwotCi0Jd2hpbGUgKDEpIHsKKwkvKiBmaXJzdCB3ZSB0cnkgdG8gYWxsb2NhdGUgdGhlIGluZGlyZWN0IGJsb2NrcyAqLworCXRhcmdldCA9IGluZGlyZWN0X2Jsa3M7CisJd2hpbGUgKHRhcmdldCA+IDApIHsKIAkJY291bnQgPSB0YXJnZXQ7CiAJCS8qIGFsbG9jYXRpbmcgYmxvY2tzIGZvciBpbmRpcmVjdCBibG9ja3MgYW5kIGRpcmVjdCBibG9ja3MgKi8KLQkJY3VycmVudF9ibG9jayA9IGV4dDRfbmV3X2Jsb2NrcyhoYW5kbGUsaW5vZGUsZ29hbCwmY291bnQsZXJyKTsKKwkJY3VycmVudF9ibG9jayA9IGV4dDRfbmV3X21ldGFfYmxvY2tzKGhhbmRsZSwgaW5vZGUsCisJCQkJCQkJZ29hbCwgJmNvdW50LCBlcnIpOwogCQlpZiAoKmVycikKIAkJCWdvdG8gZmFpbGVkX291dDsKIApAQCAtNTQwLDE2ICs1NTUsNDggQEAKIAkJCW5ld19ibG9ja3NbaW5kZXgrK10gPSBjdXJyZW50X2Jsb2NrKys7CiAJCQljb3VudC0tOwogCQl9Ci0KLQkJaWYgKGNvdW50ID4gMCkKKwkJaWYgKGNvdW50ID4gMCkgeworCQkJLyoKKwkJCSAqIHNhdmUgdGhlIG5ldyBibG9jayBudW1iZXIKKwkJCSAqIGZvciB0aGUgZmlyc3QgZGlyZWN0IGJsb2NrCisJCQkgKi8KKwkJCW5ld19ibG9ja3NbaW5kZXhdID0gY3VycmVudF9ibG9jazsKKwkJCXByaW50ayhLRVJOX0lORk8gIiVzIHJldHVybmVkIG1vcmUgYmxvY2tzIHRoYW4gIgorCQkJCQkJInJlcXVlc3RlZFxuIiwgX19mdW5jX18pOworCQkJV0FSTl9PTigxKTsKIAkJCWJyZWFrOworCQl9CiAJfQogCi0JLyogc2F2ZSB0aGUgbmV3IGJsb2NrIG51bWJlciBmb3IgdGhlIGZpcnN0IGRpcmVjdCBibG9jayAqLwotCW5ld19ibG9ja3NbaW5kZXhdID0gY3VycmVudF9ibG9jazsKLQorCXRhcmdldCA9IGJsa3MgLSBjb3VudCA7CisJYmxrX2FsbG9jYXRlZCA9IGNvdW50OworCWlmICghdGFyZ2V0KQorCQlnb3RvIGFsbG9jYXRlZDsKKwkvKiBOb3cgYWxsb2NhdGUgZGF0YSBibG9ja3MgKi8KKwljb3VudCA9IHRhcmdldDsKKwkvKiBhbGxvY2F0aW5nIGJsb2NrcyBmb3IgZGF0YSBibG9ja3MgKi8KKwljdXJyZW50X2Jsb2NrID0gZXh0NF9uZXdfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGlibG9jaywKKwkJCQkJCWdvYWwsICZjb3VudCwgZXJyKTsKKwlpZiAoKmVyciAmJiAodGFyZ2V0ID09IGJsa3MpKSB7CisJCS8qCisJCSAqIGlmIHRoZSBhbGxvY2F0aW9uIGZhaWxlZCBhbmQgd2UgZGlkbid0IGFsbG9jYXRlCisJCSAqIGFueSBibG9ja3MgYmVmb3JlCisJCSAqLworCQlnb3RvIGZhaWxlZF9vdXQ7CisJfQorCWlmICghKmVycikgeworCQlpZiAodGFyZ2V0ID09IGJsa3MpIHsKKwkJLyoKKwkJICogc2F2ZSB0aGUgbmV3IGJsb2NrIG51bWJlcgorCQkgKiBmb3IgdGhlIGZpcnN0IGRpcmVjdCBibG9jaworCQkgKi8KKwkJCW5ld19ibG9ja3NbaW5kZXhdID0gY3VycmVudF9ibG9jazsKKwkJfQorCQlibGtfYWxsb2NhdGVkICs9IGNvdW50OworCX0KK2FsbG9jYXRlZDoKIAkvKiB0b3RhbCBudW1iZXIgb2YgYmxvY2tzIGFsbG9jYXRlZCBmb3IgZGlyZWN0IGJsb2NrcyAqLwotCXJldCA9IGNvdW50OworCXJldCA9IGJsa19hbGxvY2F0ZWQ7CiAJKmVyciA9IDA7CiAJcmV0dXJuIHJldDsKIGZhaWxlZF9vdXQ6CkBAIC01ODQsOCArNjMxLDkgQEAKICAqCWFzIGRlc2NyaWJlZCBhYm92ZSBhbmQgcmV0dXJuIDAuCiAgKi8KIHN0YXRpYyBpbnQgZXh0NF9hbGxvY19icmFuY2goaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJCWludCBpbmRpcmVjdF9ibGtzLCBpbnQgKmJsa3MsIGV4dDRfZnNibGtfdCBnb2FsLAotCQkJZXh0NF9sYmxrX3QgKm9mZnNldHMsIEluZGlyZWN0ICpicmFuY2gpCisJCQkJZXh0NF9sYmxrX3QgaWJsb2NrLCBpbnQgaW5kaXJlY3RfYmxrcywKKwkJCQlpbnQgKmJsa3MsIGV4dDRfZnNibGtfdCBnb2FsLAorCQkJCWV4dDRfbGJsa190ICpvZmZzZXRzLCBJbmRpcmVjdCAqYnJhbmNoKQogewogCWludCBibG9ja3NpemUgPSBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemU7CiAJaW50IGksIG4gPSAwOwpAQCAtNTk1LDcgKzY0Myw3IEBACiAJZXh0NF9mc2Jsa190IG5ld19ibG9ja3NbNF07CiAJZXh0NF9mc2Jsa190IGN1cnJlbnRfYmxvY2s7CiAKLQludW0gPSBleHQ0X2FsbG9jX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBnb2FsLCBpbmRpcmVjdF9ibGtzLAorCW51bSA9IGV4dDRfYWxsb2NfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGlibG9jaywgZ29hbCwgaW5kaXJlY3RfYmxrcywKIAkJCQkqYmxrcywgbmV3X2Jsb2NrcywgJmVycik7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKQEAgLTc5OSw2ICs4NDcsNyBAQAogCXN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpID0gRVhUNF9JKGlub2RlKTsKIAlpbnQgY291bnQgPSAwOwogCWV4dDRfZnNibGtfdCBmaXJzdF9ibG9jayA9IDA7CisJbG9mZl90IGRpc2tzaXplOwogCiAKIAlKX0FTU0VSVCghKEVYVDRfSShpbm9kZSktPmlfZmxhZ3MgJiBFWFQ0X0VYVEVOVFNfRkwpKTsKQEAgLTg1NSw4ICs5MDQsOSBAQAogCS8qCiAJICogQmxvY2sgb3V0IGV4dDRfdHJ1bmNhdGUgd2hpbGUgd2UgYWx0ZXIgdGhlIHRyZWUKIAkgKi8KLQllcnIgPSBleHQ0X2FsbG9jX2JyYW5jaChoYW5kbGUsIGlub2RlLCBpbmRpcmVjdF9ibGtzLCAmY291bnQsIGdvYWwsCi0JCQkJb2Zmc2V0cyArIChwYXJ0aWFsIC0gY2hhaW4pLCBwYXJ0aWFsKTsKKwllcnIgPSBleHQ0X2FsbG9jX2JyYW5jaChoYW5kbGUsIGlub2RlLCBpYmxvY2ssIGluZGlyZWN0X2Jsa3MsCisJCQkJCSZjb3VudCwgZ29hbCwKKwkJCQkJb2Zmc2V0cyArIChwYXJ0aWFsIC0gY2hhaW4pLCBwYXJ0aWFsKTsKIAogCS8qCiAJICogVGhlIGV4dDRfc3BsaWNlX2JyYW5jaCBjYWxsIHdpbGwgZnJlZSBhbmQgZm9yZ2V0IGFueSBidWZmZXJzCkBAIC04NzMsOCArOTIzLDEzIEBACiAJICogcHJvdGVjdCBpdCBpZiB5b3UncmUgYWJvdXQgdG8gaW1wbGVtZW50IGNvbmN1cnJlbnQKIAkgKiBleHQ0X2dldF9ibG9jaygpIC1ienp6CiAJKi8KLQlpZiAoIWVyciAmJiBleHRlbmRfZGlza3NpemUgJiYgaW5vZGUtPmlfc2l6ZSA+IGVpLT5pX2Rpc2tzaXplKQotCQllaS0+aV9kaXNrc2l6ZSA9IGlub2RlLT5pX3NpemU7CisJaWYgKCFlcnIgJiYgZXh0ZW5kX2Rpc2tzaXplKSB7CisJCWRpc2tzaXplID0gKChsb2ZmX3QpIGlibG9jayArIGNvdW50KSA8PCBpbm9kZS0+aV9ibGtiaXRzOworCQlpZiAoZGlza3NpemUgPiBpX3NpemVfcmVhZChpbm9kZSkpCisJCQlkaXNrc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKKwkJaWYgKGRpc2tzaXplID4gZWktPmlfZGlza3NpemUpCisJCQllaS0+aV9kaXNrc2l6ZSA9IGRpc2tzaXplOworCX0KIAlpZiAoZXJyKQogCQlnb3RvIGNsZWFudXA7CiAKQEAgLTkzNCw3ICs5ODksNyBAQAogICovCiBpbnQgZXh0NF9nZXRfYmxvY2tzX3dyYXAoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgc2VjdG9yX3QgYmxvY2ssCiAJCQl1bnNpZ25lZCBsb25nIG1heF9ibG9ja3MsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsCi0JCQlpbnQgY3JlYXRlLCBpbnQgZXh0ZW5kX2Rpc2tzaXplKQorCQkJaW50IGNyZWF0ZSwgaW50IGV4dGVuZF9kaXNrc2l6ZSwgaW50IGZsYWcpCiB7CiAJaW50IHJldHZhbDsKIApAQCAtOTc1LDYgKzEwMzAsMTUgQEAKIAkgKiB3aXRoIGNyZWF0ZSA9PSAxIGZsYWcuCiAJICovCiAJZG93bl93cml0ZSgoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pKTsKKworCS8qCisJICogaWYgdGhlIGNhbGxlciBpcyBmcm9tIGRlbGF5ZWQgYWxsb2NhdGlvbiB3cml0ZW91dCBwYXRoCisJICogd2UgaGF2ZSBhbHJlYWR5IHJlc2VydmVkIGZzIGJsb2NrcyBmb3IgYWxsb2NhdGlvbgorCSAqIGxldCB0aGUgdW5kZXJseWluZyBnZXRfYmxvY2soKSBmdW5jdGlvbiBrbm93IHRvCisJICogYXZvaWQgZG91YmxlIGFjY291bnRpbmcKKwkgKi8KKwlpZiAoZmxhZykKKwkJRVhUNF9JKGlub2RlKS0+aV9kZWxhbGxvY19yZXNlcnZlZF9mbGFnID0gMTsKIAkvKgogCSAqIFdlIG5lZWQgdG8gY2hlY2sgZm9yIEVYVDQgaGVyZSBiZWNhdXNlIG1pZ3JhdGUKIAkgKiBjb3VsZCBoYXZlIGNoYW5nZWQgdGhlIGlub2RlIHR5cGUgaW4gYmV0d2VlbgpAQCAtOTk2LDYgKzEwNjAsMTggQEAKIAkJCQkJCQl+RVhUNF9FWFRfTUlHUkFURTsKIAkJfQogCX0KKworCWlmIChmbGFnKSB7CisJCUVYVDRfSShpbm9kZSktPmlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZyA9IDA7CisJCS8qCisJCSAqIFVwZGF0ZSByZXNlcnZlZCBibG9ja3MvbWV0YWRhdGEgYmxvY2tzCisJCSAqIGFmdGVyIHN1Y2Nlc3NmdWwgYmxvY2sgYWxsb2NhdGlvbgorCQkgKiB3aGljaCB3ZXJlIGRlZmVycmVkIHRpbGwgbm93CisJCSAqLworCQlpZiAoKHJldHZhbCA+IDApICYmIGJ1ZmZlcl9kZWxheShiaCkpCisJCQlleHQ0X2RhX3JlbGVhc2Vfc3BhY2UoaW5vZGUsIHJldHZhbCwgMCk7CisJfQorCiAJdXBfd3JpdGUoKCZFWFQ0X0koaW5vZGUpLT5pX2RhdGFfc2VtKSk7CiAJcmV0dXJuIHJldHZhbDsKIH0KQEAgLTEwMjEsNyArMTA5Nyw3IEBACiAJfQogCiAJcmV0ID0gZXh0NF9nZXRfYmxvY2tzX3dyYXAoaGFuZGxlLCBpbm9kZSwgaWJsb2NrLAotCQkJCQltYXhfYmxvY2tzLCBiaF9yZXN1bHQsIGNyZWF0ZSwgMCk7CisJCQkJCW1heF9ibG9ja3MsIGJoX3Jlc3VsdCwgY3JlYXRlLCAwLCAwKTsKIAlpZiAocmV0ID4gMCkgewogCQliaF9yZXN1bHQtPmJfc2l6ZSA9IChyZXQgPDwgaW5vZGUtPmlfYmxrYml0cyk7CiAJCXJldCA9IDA7CkBAIC0xMDQ3LDcgKzExMjMsNyBAQAogCWR1bW15LmJfYmxvY2tuciA9IC0xMDAwOwogCWJ1ZmZlcl90cmFjZV9pbml0KCZkdW1teS5iX2hpc3RvcnkpOwogCWVyciA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKGhhbmRsZSwgaW5vZGUsIGJsb2NrLCAxLAotCQkJCQkmZHVtbXksIGNyZWF0ZSwgMSk7CisJCQkJCSZkdW1teSwgY3JlYXRlLCAxLCAwKTsKIAkvKgogCSAqIGV4dDRfZ2V0X2Jsb2Nrc19oYW5kbGUoKSByZXR1cm5zIG51bWJlciBvZiBibG9ja3MKIAkgKiBtYXBwZWQuIDAgaW4gY2FzZSBvZiBhIEhPTEUuCkBAIC0xMjAzLDE5ICsxMjc5LDIwIEBACiAgCXRvID0gZnJvbSArIGxlbjsKIAogcmV0cnk6Ci0gCXBhZ2UgPSBfX2dyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRleCk7Ci0gCWlmICghcGFnZSkKLSAJCXJldHVybiAtRU5PTUVNOwotIAkqcGFnZXAgPSBwYWdlOwotCiAgIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIG5lZWRlZF9ibG9ja3MpOwogICAJaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0gCQl1bmxvY2tfcGFnZShwYWdlKTsKLSAJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKICAgCQlyZXQgPSBQVFJfRVJSKGhhbmRsZSk7CiAgIAkJZ290byBvdXQ7CiAJfQogCisJcGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4KTsKKwlpZiAoIXBhZ2UpIHsKKwkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQorCSpwYWdlcCA9IHBhZ2U7CisKIAlyZXQgPSBibG9ja193cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgZmxhZ3MsIHBhZ2VwLCBmc2RhdGEsCiAJCQkJCQkJZXh0NF9nZXRfYmxvY2spOwogCkBAIC0xMjI1LDggKzEzMDIsOCBAQAogCX0KIAogCWlmIChyZXQpIHsKLQkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKICAJCXVubG9ja19wYWdlKHBhZ2UpOworCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwogIAkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwogCX0KIApAQCAtMTIzNiwxNSArMTMxMyw2IEBACiAJcmV0dXJuIHJldDsKIH0KIAotaW50IGV4dDRfam91cm5hbF9kaXJ0eV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCi17Ci0JaW50IGVyciA9IGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhKGhhbmRsZSwgYmgpOwotCWlmIChlcnIpCi0JCWV4dDRfam91cm5hbF9hYm9ydF9oYW5kbGUoX19mdW5jX18sIF9fZnVuY19fLAotCQkJCQkJYmgsIGhhbmRsZSwgZXJyKTsKLQlyZXR1cm4gZXJyOwotfQotCiAvKiBGb3Igd3JpdGVfZW5kKCkgaW4gZGF0YT1qb3VybmFsIG1vZGUgKi8KIHN0YXRpYyBpbnQgd3JpdGVfZW5kX2ZuKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCiB7CkBAIC0xMjU1LDI5ICsxMzIzLDYgQEAKIH0KIAogLyoKLSAqIEdlbmVyaWMgd3JpdGVfZW5kIGhhbmRsZXIgZm9yIG9yZGVyZWQgYW5kIHdyaXRlYmFjayBleHQ0IGpvdXJuYWwgbW9kZXMuCi0gKiBXZSBjYW4ndCB1c2UgZ2VuZXJpY193cml0ZV9lbmQsIGJlY2F1c2UgdGhhdCB1bmxvY2tzIHRoZSBwYWdlIGFuZCB3ZSBuZWVkIHRvCi0gKiB1bmxvY2sgdGhlIHBhZ2UgYWZ0ZXIgZXh0NF9qb3VybmFsX3N0b3AsIGJ1dCBleHQ0X2pvdXJuYWxfc3RvcCBtdXN0IHJ1bgotICogYWZ0ZXIgYmxvY2tfd3JpdGVfZW5kLgotICovCi1zdGF0aWMgaW50IGV4dDRfZ2VuZXJpY193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsCi0JCQkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCi0JCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsCi0JCQkJc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkKLXsKLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9tYXBwaW5nLT5ob3N0OwotCi0JY29waWVkID0gYmxvY2tfd3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsIHBhZ2UsIGZzZGF0YSk7Ci0KLQlpZiAocG9zK2NvcGllZCA+IGlub2RlLT5pX3NpemUpIHsKLQkJaV9zaXplX3dyaXRlKGlub2RlLCBwb3MrY29waWVkKTsKLQkJbWFya19pbm9kZV9kaXJ0eShpbm9kZSk7Ci0JfQotCi0JcmV0dXJuIGNvcGllZDsKLX0KLQotLyoKICAqIFdlIG5lZWQgdG8gcGljayB1cCB0aGUgbmV3IGlub2RlIHNpemUgd2hpY2ggZ2VuZXJpY19jb21taXRfd3JpdGUgZ2F2ZSB1cwogICogYGZpbGUnIGNhbiBiZSBOVUxMIC0gZWcsIHdoZW4gY2FsbGVkIGZyb20gcGFnZV9zeW1saW5rKCkuCiAgKgpAQCAtMTI5MCwxNSArMTMzNSwxNCBAQAogCQkJCXN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpCiB7CiAJaGFuZGxlX3QgKmhhbmRsZSA9IGV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpOwotCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX21hcHBpbmctPmhvc3Q7CisJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CiAJdW5zaWduZWQgZnJvbSwgdG87CiAJaW50IHJldCA9IDAsIHJldDI7CiAKIAlmcm9tID0gcG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOwogCXRvID0gZnJvbSArIGxlbjsKIAotCXJldCA9IHdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZmZXJzKHBhZ2UpLAotCQlmcm9tLCB0bywgTlVMTCwgZXh0NF9qb3VybmFsX2RpcnR5X2RhdGEpOworCXJldCA9IGV4dDRfamJkMl9maWxlX2lub2RlKGhhbmRsZSwgaW5vZGUpOwogCiAJaWYgKHJldCA9PSAwKSB7CiAJCS8qCkBAIC0xMzExLDcgKzEzNTUsNyBAQAogCQluZXdfaV9zaXplID0gcG9zICsgY29waWVkOwogCQlpZiAobmV3X2lfc2l6ZSA+IEVYVDRfSShpbm9kZSktPmlfZGlza3NpemUpCiAJCQlFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplID0gbmV3X2lfc2l6ZTsKLQkJcmV0MiA9IGV4dDRfZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwKKwkJcmV0MiA9IGdlbmVyaWNfd3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsCiAJCQkJCQkJcGFnZSwgZnNkYXRhKTsKIAkJY29waWVkID0gcmV0MjsKIAkJaWYgKHJldDIgPCAwKQpAQCAtMTMyMCw4ICsxMzY0LDYgQEAKIAlyZXQyID0gZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKIAlpZiAoIXJldCkKIAkJcmV0ID0gcmV0MjsKLQl1bmxvY2tfcGFnZShwYWdlKTsKLQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAKIAlyZXR1cm4gcmV0ID8gcmV0IDogY29waWVkOwogfQpAQCAtMTMzMiw3ICsxMzc0LDcgQEAKIAkJCQlzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKQogewogCWhhbmRsZV90ICpoYW5kbGUgPSBleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKTsKLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9tYXBwaW5nLT5ob3N0OworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OwogCWludCByZXQgPSAwLCByZXQyOwogCWxvZmZfdCBuZXdfaV9zaXplOwogCkBAIC0xMzQwLDcgKzEzODIsNyBAQAogCWlmIChuZXdfaV9zaXplID4gRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSkKIAkJRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSA9IG5ld19pX3NpemU7CiAKLQlyZXQyID0gZXh0NF9nZW5lcmljX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLAorCXJldDIgPSBnZW5lcmljX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLAogCQkJCQkJCXBhZ2UsIGZzZGF0YSk7CiAJY29waWVkID0gcmV0MjsKIAlpZiAocmV0MiA8IDApCkBAIC0xMzQ5LDggKzEzOTEsNiBAQAogCXJldDIgPSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwogCWlmICghcmV0KQogCQlyZXQgPSByZXQyOwotCXVubG9ja19wYWdlKHBhZ2UpOwotCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKIAogCXJldHVybiByZXQgPyByZXQgOiBjb3BpZWQ7CiB9CkBAIC0xMzg5LDE0ICsxNDI5LDk2NSBAQAogCQkJcmV0ID0gcmV0MjsKIAl9CiAKKwl1bmxvY2tfcGFnZShwYWdlKTsKIAlyZXQyID0gZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKIAlpZiAoIXJldCkKIAkJcmV0ID0gcmV0MjsKLQl1bmxvY2tfcGFnZShwYWdlKTsKIAlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAKIAlyZXR1cm4gcmV0ID8gcmV0IDogY29waWVkOwogfQorLyoKKyAqIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIG1ldGFkYXRhIGJsb2NrcyBuZWVkIHRvIHJlc2VydmUKKyAqIHRvIGFsbG9jYXRlIEBibG9ja3MgZm9yIG5vbiBleHRlbnQgZmlsZSBiYXNlZCBmaWxlCisgKi8KK3N0YXRpYyBpbnQgZXh0NF9pbmRpcmVjdF9jYWxjX21ldGFkYXRhX2Ftb3VudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYmxvY2tzKQoreworCWludCBpY2FwID0gRVhUNF9BRERSX1BFUl9CTE9DSyhpbm9kZS0+aV9zYik7CisJaW50IGluZF9ibGtzLCBkaW5kX2Jsa3MsIHRpbmRfYmxrczsKKworCS8qIG51bWJlciBvZiBuZXcgaW5kaXJlY3QgYmxvY2tzIG5lZWRlZCAqLworCWluZF9ibGtzID0gKGJsb2NrcyArIGljYXAgLSAxKSAvIGljYXA7CisKKwlkaW5kX2Jsa3MgPSAoaW5kX2Jsa3MgKyBpY2FwIC0gMSkgLyBpY2FwOworCisJdGluZF9ibGtzID0gMTsKKworCXJldHVybiBpbmRfYmxrcyArIGRpbmRfYmxrcyArIHRpbmRfYmxrczsKK30KKworLyoKKyAqIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIG1ldGFkYXRhIGJsb2NrcyBuZWVkIHRvIHJlc2VydmUKKyAqIHRvIGFsbG9jYXRlIGdpdmVuIG51bWJlciBvZiBibG9ja3MKKyAqLworc3RhdGljIGludCBleHQ0X2NhbGNfbWV0YWRhdGFfYW1vdW50KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBibG9ja3MpCit7CisJaWYgKEVYVDRfSShpbm9kZSktPmlfZmxhZ3MgJiBFWFQ0X0VYVEVOVFNfRkwpCisJCXJldHVybiBleHQ0X2V4dF9jYWxjX21ldGFkYXRhX2Ftb3VudChpbm9kZSwgYmxvY2tzKTsKKworCXJldHVybiBleHQ0X2luZGlyZWN0X2NhbGNfbWV0YWRhdGFfYW1vdW50KGlub2RlLCBibG9ja3MpOworfQorCitzdGF0aWMgaW50IGV4dDRfZGFfcmVzZXJ2ZV9zcGFjZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbnJibG9ja3MpCit7CisgICAgICAgc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS0+aV9zYik7CisgICAgICAgdW5zaWduZWQgbG9uZyBtZF9uZWVkZWQsIG1kYmxvY2tzLCB0b3RhbCA9IDA7CisKKwkvKgorCSAqIHJlY2FsY3VsYXRlIHRoZSBhbW91bnQgb2YgbWV0YWRhdGEgYmxvY2tzIHRvIHJlc2VydmUKKwkgKiBpbiBvcmRlciB0byBhbGxvY2F0ZSBucmJsb2NrcworCSAqIHdvcnNlIGNhc2UgaXMgb25lIGV4dGVudCBwZXIgYmxvY2sKKwkgKi8KKwlzcGluX2xvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7CisJdG90YWwgPSBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzICsgbnJibG9ja3M7CisJbWRibG9ja3MgPSBleHQ0X2NhbGNfbWV0YWRhdGFfYW1vdW50KGlub2RlLCB0b3RhbCk7CisJQlVHX09OKG1kYmxvY2tzIDwgRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2Nrcyk7CisKKwltZF9uZWVkZWQgPSBtZGJsb2NrcyAtIEVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfbWV0YV9ibG9ja3M7CisJdG90YWwgPSBtZF9uZWVkZWQgKyBucmJsb2NrczsKKworCWlmIChleHQ0X2hhc19mcmVlX2Jsb2NrcyhzYmksIHRvdGFsKSA8IHRvdGFsKSB7CisJCXNwaW5fdW5sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCQlyZXR1cm4gLUVOT1NQQzsKKwl9CisKKwkvKiByZWR1Y2UgZnMgZnJlZSBibG9ja3MgY291bnRlciAqLworCXBlcmNwdV9jb3VudGVyX3N1Yigmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwgdG90YWwpOworCisJRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9kYXRhX2Jsb2NrcyArPSBucmJsb2NrczsKKwlFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX21ldGFfYmxvY2tzID0gbWRibG9ja3M7CisKKwlzcGluX3VubG9jaygmRVhUNF9JKGlub2RlKS0+aV9ibG9ja19yZXNlcnZhdGlvbl9sb2NrKTsKKwlyZXR1cm4gMDsgICAgICAgLyogc3VjY2VzcyAqLworfQorCit2b2lkIGV4dDRfZGFfcmVsZWFzZV9zcGFjZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgdXNlZCwgaW50IHRvX2ZyZWUpCit7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS0+aV9zYik7CisJaW50IHRvdGFsLCBtZGIsIG1kYl9mcmVlLCByZWxlYXNlOworCisJc3Bpbl9sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCS8qIHJlY2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgbWV0YWJsb2NrcyBzdGlsbCBuZWVkIHRvIGJlIHJlc2VydmVkICovCisJdG90YWwgPSBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzIC0gdXNlZCAtIHRvX2ZyZWU7CisJbWRiID0gZXh0NF9jYWxjX21ldGFkYXRhX2Ftb3VudChpbm9kZSwgdG90YWwpOworCisJLyogZmlndXJlIG91dCBob3cgbWFueSBtZXRhYmxvY2tzIHRvIHJlbGVhc2UgKi8KKwlCVUdfT04obWRiID4gRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2Nrcyk7CisJbWRiX2ZyZWUgPSBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX21ldGFfYmxvY2tzIC0gbWRiOworCisJLyogQWNjb3VudCBmb3IgYWxsb2NhdGVkIG1ldGFfYmxvY2tzICovCisJbWRiX2ZyZWUgLT0gRVhUNF9JKGlub2RlKS0+aV9hbGxvY2F0ZWRfbWV0YV9ibG9ja3M7CisKKwlyZWxlYXNlID0gdG9fZnJlZSArIG1kYl9mcmVlOworCisJLyogdXBkYXRlIGZzIGZyZWUgYmxvY2tzIGNvdW50ZXIgZm9yIHRydW5jYXRlIGNhc2UgKi8KKwlwZXJjcHVfY291bnRlcl9hZGQoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIsIHJlbGVhc2UpOworCisJLyogdXBkYXRlIHBlci1pbm9kZSByZXNlcnZhdGlvbnMgKi8KKwlCVUdfT04odXNlZCArIHRvX2ZyZWUgPiBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzKTsKKwlFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzIC09ICh1c2VkICsgdG9fZnJlZSk7CisKKwlCVUdfT04obWRiID4gRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2Nrcyk7CisJRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2NrcyA9IG1kYjsKKwlFWFQ0X0koaW5vZGUpLT5pX2FsbG9jYXRlZF9tZXRhX2Jsb2NrcyA9IDA7CisJc3Bpbl91bmxvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7Cit9CisKK3N0YXRpYyB2b2lkIGV4dDRfZGFfcGFnZV9yZWxlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBwYWdlICpwYWdlLAorCQkJCQkJdW5zaWduZWQgbG9uZyBvZmZzZXQpCit7CisJaW50IHRvX3JlbGVhc2UgPSAwOworCXN0cnVjdCBidWZmZXJfaGVhZCAqaGVhZCwgKmJoOworCXVuc2lnbmVkIGludCBjdXJyX29mZiA9IDA7CisKKwloZWFkID0gcGFnZV9idWZmZXJzKHBhZ2UpOworCWJoID0gaGVhZDsKKwlkbyB7CisJCXVuc2lnbmVkIGludCBuZXh0X29mZiA9IGN1cnJfb2ZmICsgYmgtPmJfc2l6ZTsKKworCQlpZiAoKG9mZnNldCA8PSBjdXJyX29mZikgJiYgKGJ1ZmZlcl9kZWxheShiaCkpKSB7CisJCQl0b19yZWxlYXNlKys7CisJCQljbGVhcl9idWZmZXJfZGVsYXkoYmgpOworCQl9CisJCWN1cnJfb2ZmID0gbmV4dF9vZmY7CisJfSB3aGlsZSAoKGJoID0gYmgtPmJfdGhpc19wYWdlKSAhPSBoZWFkKTsKKwlleHQ0X2RhX3JlbGVhc2Vfc3BhY2UocGFnZS0+bWFwcGluZy0+aG9zdCwgMCwgdG9fcmVsZWFzZSk7Cit9CisKKy8qCisgKiBEZWxheWVkIGFsbG9jYXRpb24gc3R1ZmYKKyAqLworCitzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSB7CisJc3RydWN0IGlub2RlICppbm9kZTsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgbGJoOwkJCS8qIGV4dGVudCBvZiBibG9ja3MgKi8KKwl1bnNpZ25lZCBsb25nIGZpcnN0X3BhZ2UsIG5leHRfcGFnZTsJLyogZXh0ZW50IG9mIHBhZ2VzICovCisJZ2V0X2Jsb2NrX3QgKmdldF9ibG9jazsKKwlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYzsKK307CisKKy8qCisgKiBtcGFnZV9kYV9zdWJtaXRfaW8gLSB3YWxrcyB0aHJvdWdoIGV4dGVudCBvZiBwYWdlcyBhbmQgdHJ5IHRvIHdyaXRlCisgKiB0aGVtIHdpdGggX19tcGFnZV93cml0ZXBhZ2UoKQorICoKKyAqIEBtcGQtPmlub2RlOiBpbm9kZQorICogQG1wZC0+Zmlyc3RfcGFnZTogZmlyc3QgcGFnZSBvZiB0aGUgZXh0ZW50CisgKiBAbXBkLT5uZXh0X3BhZ2U6IHBhZ2UgYWZ0ZXIgdGhlIGxhc3QgcGFnZSBvZiB0aGUgZXh0ZW50CisgKiBAbXBkLT5nZXRfYmxvY2s6IHRoZSBmaWxlc3lzdGVtJ3MgYmxvY2sgbWFwcGVyIGZ1bmN0aW9uCisgKgorICogQnkgdGhlIHRpbWUgbXBhZ2VfZGFfc3VibWl0X2lvKCkgaXMgY2FsbGVkIHdlIGV4cGVjdCBhbGwgYmxvY2tzCisgKiB0byBiZSBhbGxvY2F0ZWQuIHRoaXMgbWF5IGJlIHdyb25nIGlmIGFsbG9jYXRpb24gZmFpbGVkLgorICoKKyAqIEFzIHBhZ2VzIGFyZSBhbHJlYWR5IGxvY2tlZCBieSB3cml0ZV9jYWNoZV9wYWdlcygpLCB3ZSBjYW4ndCB1c2UgaXQKKyAqLworc3RhdGljIGludCBtcGFnZV9kYV9zdWJtaXRfaW8oc3RydWN0IG1wYWdlX2RhX2RhdGEgKm1wZCkKK3sKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IG1wZC0+aW5vZGUtPmlfbWFwcGluZzsKKwlzdHJ1Y3QgbXBhZ2VfZGF0YSBtcGRfcHAgPSB7CisJCS5iaW8gPSBOVUxMLAorCQkubGFzdF9ibG9ja19pbl9iaW8gPSAwLAorCQkuZ2V0X2Jsb2NrID0gbXBkLT5nZXRfYmxvY2ssCisJCS51c2Vfd3JpdGVwYWdlID0gMSwKKwl9OworCWludCByZXQgPSAwLCBlcnIsIG5yX3BhZ2VzLCBpOworCXVuc2lnbmVkIGxvbmcgaW5kZXgsIGVuZDsKKwlzdHJ1Y3QgcGFnZXZlYyBwdmVjOworCisJQlVHX09OKG1wZC0+bmV4dF9wYWdlIDw9IG1wZC0+Zmlyc3RfcGFnZSk7CisKKwlwYWdldmVjX2luaXQoJnB2ZWMsIDApOworCWluZGV4ID0gbXBkLT5maXJzdF9wYWdlOworCWVuZCA9IG1wZC0+bmV4dF9wYWdlIC0gMTsKKworCXdoaWxlIChpbmRleCA8PSBlbmQpIHsKKwkJLyogWFhYOiBvcHRpbWl6ZSB0YWlsICovCisJCW5yX3BhZ2VzID0gcGFnZXZlY19sb29rdXAoJnB2ZWMsIG1hcHBpbmcsIGluZGV4LCBQQUdFVkVDX1NJWkUpOworCQlpZiAobnJfcGFnZXMgPT0gMCkKKwkJCWJyZWFrOworCQlmb3IgKGkgPSAwOyBpIDwgbnJfcGFnZXM7IGkrKykgeworCQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBwdmVjLnBhZ2VzW2ldOworCisJCQlpbmRleCA9IHBhZ2UtPmluZGV4OworCQkJaWYgKGluZGV4ID4gZW5kKQorCQkJCWJyZWFrOworCQkJaW5kZXgrKzsKKworCQkJZXJyID0gX19tcGFnZV93cml0ZXBhZ2UocGFnZSwgbXBkLT53YmMsICZtcGRfcHApOworCisJCQkvKgorCQkJICogSW4gZXJyb3IgY2FzZSwgd2UgaGF2ZSB0byBjb250aW51ZSBiZWNhdXNlCisJCQkgKiByZW1haW5pbmcgcGFnZXMgYXJlIHN0aWxsIGxvY2tlZAorCQkJICogWFhYOiB1bmxvY2sgYW5kIHJlLWRpcnR5IHRoZW0/CisJCQkgKi8KKwkJCWlmIChyZXQgPT0gMCkKKwkJCQlyZXQgPSBlcnI7CisJCX0KKwkJcGFnZXZlY19yZWxlYXNlKCZwdmVjKTsKKwl9CisJaWYgKG1wZF9wcC5iaW8pCisJCW1wYWdlX2Jpb19zdWJtaXQoV1JJVEUsIG1wZF9wcC5iaW8pOworCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIG1wYWdlX3B1dF9ibnJfdG9fYmhzIC0gd2FsayBibG9ja3MgYW5kIGFzc2lnbiB0aGVtIGFjdHVhbCBudW1iZXJzCisgKgorICogQG1wZC0+aW5vZGUgLSBpbm9kZSB0byB3YWxrIHRocm91Z2gKKyAqIEBleGJoLT5iX2Jsb2NrbnIgLSBmaXJzdCBibG9jayBvbiBhIGRpc2sKKyAqIEBleGJoLT5iX3NpemUgLSBhbW91bnQgb2Ygc3BhY2UgaW4gYnl0ZXMKKyAqIEBsb2dpY2FsIC0gZmlyc3QgbG9naWNhbCBibG9jayB0byBzdGFydCBhc3NpZ25tZW50IHdpdGgKKyAqCisgKiB0aGUgZnVuY3Rpb24gZ29lcyB0aHJvdWdoIGFsbCBwYXNzZWQgc3BhY2UgYW5kIHB1dCBhY3R1YWwgZGlzaworICogYmxvY2sgbnVtYmVycyBpbnRvIGJ1ZmZlciBoZWFkcywgZHJvcHBpbmcgQkhfRGVsYXkKKyAqLworc3RhdGljIHZvaWQgbXBhZ2VfcHV0X2Jucl90b19iaHMoc3RydWN0IG1wYWdlX2RhX2RhdGEgKm1wZCwgc2VjdG9yX3QgbG9naWNhbCwKKwkJCQkgc3RydWN0IGJ1ZmZlcl9oZWFkICpleGJoKQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtcGQtPmlub2RlOworCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gaW5vZGUtPmlfbWFwcGluZzsKKwlpbnQgYmxvY2tzID0gZXhiaC0+Yl9zaXplID4+IGlub2RlLT5pX2Jsa2JpdHM7CisJc2VjdG9yX3QgcGJsb2NrID0gZXhiaC0+Yl9ibG9ja25yLCBjdXJfbG9naWNhbDsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmhlYWQsICpiaDsKKwl1bnNpZ25lZCBsb25nIGluZGV4LCBlbmQ7CisJc3RydWN0IHBhZ2V2ZWMgcHZlYzsKKwlpbnQgbnJfcGFnZXMsIGk7CisKKwlpbmRleCA9IGxvZ2ljYWwgPj4gKFBBR0VfQ0FDSEVfU0hJRlQgLSBpbm9kZS0+aV9ibGtiaXRzKTsKKwllbmQgPSAobG9naWNhbCArIGJsb2NrcyAtIDEpID4+IChQQUdFX0NBQ0hFX1NISUZUIC0gaW5vZGUtPmlfYmxrYml0cyk7CisJY3VyX2xvZ2ljYWwgPSBpbmRleCA8PCAoUEFHRV9DQUNIRV9TSElGVCAtIGlub2RlLT5pX2Jsa2JpdHMpOworCisJcGFnZXZlY19pbml0KCZwdmVjLCAwKTsKKworCXdoaWxlIChpbmRleCA8PSBlbmQpIHsKKwkJLyogWFhYOiBvcHRpbWl6ZSB0YWlsICovCisJCW5yX3BhZ2VzID0gcGFnZXZlY19sb29rdXAoJnB2ZWMsIG1hcHBpbmcsIGluZGV4LCBQQUdFVkVDX1NJWkUpOworCQlpZiAobnJfcGFnZXMgPT0gMCkKKwkJCWJyZWFrOworCQlmb3IgKGkgPSAwOyBpIDwgbnJfcGFnZXM7IGkrKykgeworCQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBwdmVjLnBhZ2VzW2ldOworCisJCQlpbmRleCA9IHBhZ2UtPmluZGV4OworCQkJaWYgKGluZGV4ID4gZW5kKQorCQkJCWJyZWFrOworCQkJaW5kZXgrKzsKKworCQkJQlVHX09OKCFQYWdlTG9ja2VkKHBhZ2UpKTsKKwkJCUJVR19PTihQYWdlV3JpdGViYWNrKHBhZ2UpKTsKKwkJCUJVR19PTighcGFnZV9oYXNfYnVmZmVycyhwYWdlKSk7CisKKwkJCWJoID0gcGFnZV9idWZmZXJzKHBhZ2UpOworCQkJaGVhZCA9IGJoOworCisJCQkvKiBza2lwIGJsb2NrcyBvdXQgb2YgdGhlIHJhbmdlICovCisJCQlkbyB7CisJCQkJaWYgKGN1cl9sb2dpY2FsID49IGxvZ2ljYWwpCisJCQkJCWJyZWFrOworCQkJCWN1cl9sb2dpY2FsKys7CisJCQl9IHdoaWxlICgoYmggPSBiaC0+Yl90aGlzX3BhZ2UpICE9IGhlYWQpOworCisJCQlkbyB7CisJCQkJaWYgKGN1cl9sb2dpY2FsID49IGxvZ2ljYWwgKyBibG9ja3MpCisJCQkJCWJyZWFrOworCQkJCWlmIChidWZmZXJfZGVsYXkoYmgpKSB7CisJCQkJCWJoLT5iX2Jsb2NrbnIgPSBwYmxvY2s7CisJCQkJCWNsZWFyX2J1ZmZlcl9kZWxheShiaCk7CisJCQkJfSBlbHNlIGlmIChidWZmZXJfbWFwcGVkKGJoKSkKKwkJCQkJQlVHX09OKGJoLT5iX2Jsb2NrbnIgIT0gcGJsb2NrKTsKKworCQkJCWN1cl9sb2dpY2FsKys7CisJCQkJcGJsb2NrKys7CisJCQl9IHdoaWxlICgoYmggPSBiaC0+Yl90aGlzX3BhZ2UpICE9IGhlYWQpOworCQl9CisJCXBhZ2V2ZWNfcmVsZWFzZSgmcHZlYyk7CisJfQorfQorCisKKy8qCisgKiBfX3VubWFwX3VuZGVybHlpbmdfYmxvY2tzIC0ganVzdCBhIGhlbHBlciBmdW5jdGlvbiB0byB1bm1hcAorICogc2V0IG9mIGJsb2NrcyBkZXNjcmliZWQgYnkgQGJoCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3VubWFwX3VuZGVybHlpbmdfYmxvY2tzKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJCSAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKK3sKKwlzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2ID0gaW5vZGUtPmlfc2ItPnNfYmRldjsKKwlpbnQgYmxvY2tzLCBpOworCisJYmxvY2tzID0gYmgtPmJfc2l6ZSA+PiBpbm9kZS0+aV9ibGtiaXRzOworCWZvciAoaSA9IDA7IGkgPCBibG9ja3M7IGkrKykKKwkJdW5tYXBfdW5kZXJseWluZ19tZXRhZGF0YShiZGV2LCBiaC0+Yl9ibG9ja25yICsgaSk7Cit9CisKKy8qCisgKiBtcGFnZV9kYV9tYXBfYmxvY2tzIC0gZ28gdGhyb3VnaCBnaXZlbiBzcGFjZQorICoKKyAqIEBtcGQtPmxiaCAtIGJoIGRlc2NyaWJpbmcgc3BhY2UKKyAqIEBtcGQtPmdldF9ibG9jayAtIHRoZSBmaWxlc3lzdGVtJ3MgYmxvY2sgbWFwcGVyIGZ1bmN0aW9uCisgKgorICogVGhlIGZ1bmN0aW9uIHNraXBzIHNwYWNlIHdlIGtub3cgaXMgYWxyZWFkeSBtYXBwZWQgdG8gZGlzayBibG9ja3MuCisgKgorICogVGhlIGZ1bmN0aW9uIGlnbm9yZXMgZXJyb3JzIC0+Z2V0X2Jsb2NrKCkgcmV0dXJucywgdGh1cyByZWFsCisgKiBlcnJvciBoYW5kbGluZyBpcyBwb3N0cG9uZWQgdG8gX19tcGFnZV93cml0ZXBhZ2UoKQorICovCitzdGF0aWMgdm9pZCBtcGFnZV9kYV9tYXBfYmxvY2tzKHN0cnVjdCBtcGFnZV9kYV9kYXRhICptcGQpCit7CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpsYmggPSAmbXBkLT5sYmg7CisJaW50IGVyciA9IDAsIHJlbWFpbiA9IGxiaC0+Yl9zaXplOworCXNlY3Rvcl90IG5leHQgPSBsYmgtPmJfYmxvY2tucjsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgbmV3OworCisJLyoKKwkgKiBXZSBjb25zaWRlciBvbmx5IG5vbi1tYXBwZWQgYW5kIG5vbi1hbGxvY2F0ZWQgYmxvY2tzCisJICovCisJaWYgKGJ1ZmZlcl9tYXBwZWQobGJoKSAmJiAhYnVmZmVyX2RlbGF5KGxiaCkpCisJCXJldHVybjsKKworCXdoaWxlIChyZW1haW4pIHsKKwkJbmV3LmJfc3RhdGUgPSBsYmgtPmJfc3RhdGU7CisJCW5ldy5iX2Jsb2NrbnIgPSAwOworCQluZXcuYl9zaXplID0gcmVtYWluOworCQllcnIgPSBtcGQtPmdldF9ibG9jayhtcGQtPmlub2RlLCBuZXh0LCAmbmV3LCAxKTsKKwkJaWYgKGVycikgeworCQkJLyoKKwkJCSAqIFJhdGhlciB0aGFuIGltcGxlbWVudCBvd24gZXJyb3IgaGFuZGxpbmcKKwkJCSAqIGhlcmUsIHdlIGp1c3QgbGVhdmUgcmVtYWluaW5nIGJsb2NrcworCQkJICogdW5hbGxvY2F0ZWQgYW5kIHRyeSBhZ2FpbiB3aXRoIC0+d3JpdGVwYWdlKCkKKwkJCSAqLworCQkJYnJlYWs7CisJCX0KKwkJQlVHX09OKG5ldy5iX3NpemUgPT0gMCk7CisKKwkJaWYgKGJ1ZmZlcl9uZXcoJm5ldykpCisJCQlfX3VubWFwX3VuZGVybHlpbmdfYmxvY2tzKG1wZC0+aW5vZGUsICZuZXcpOworCisJCS8qCisJCSAqIElmIGJsb2NrcyBhcmUgZGVsYXllZCBtYXJrZWQsIHdlIG5lZWQgdG8KKwkJICogcHV0IGFjdHVhbCBibG9ja25yIGFuZCBkcm9wIGRlbGF5ZWQgYml0CisJCSAqLworCQlpZiAoYnVmZmVyX2RlbGF5KGxiaCkpCisJCQltcGFnZV9wdXRfYm5yX3RvX2JocyhtcGQsIG5leHQsICZuZXcpOworCisJCS8qIGdvIGZvciB0aGUgcmVtYWluaW5nIGJsb2NrcyAqLworCQluZXh0ICs9IG5ldy5iX3NpemUgPj4gbXBkLT5pbm9kZS0+aV9ibGtiaXRzOworCQlyZW1haW4gLT0gbmV3LmJfc2l6ZTsKKwl9Cit9CisKKyNkZWZpbmUgQkhfRkxBR1MgKCgxIDw8IEJIX1VwdG9kYXRlKSB8ICgxIDw8IEJIX01hcHBlZCkgfCAoMSA8PCBCSF9EZWxheSkpCisKKy8qCisgKiBtcGFnZV9hZGRfYmhfdG9fZXh0ZW50IC0gdHJ5IHRvIGFkZCBvbmUgbW9yZSBibG9jayB0byBleHRlbnQgb2YgYmxvY2tzCisgKgorICogQG1wZC0+bGJoIC0gZXh0ZW50IG9mIGJsb2NrcworICogQGxvZ2ljYWwgLSBsb2dpY2FsIG51bWJlciBvZiB0aGUgYmxvY2sgaW4gdGhlIGZpbGUKKyAqIEBiaCAtIGJoIG9mIHRoZSBibG9jayAodXNlZCB0byBhY2Nlc3MgYmxvY2sncyBzdGF0ZSkKKyAqCisgKiB0aGUgZnVuY3Rpb24gaXMgdXNlZCB0byBjb2xsZWN0IGNvbnRpZy4gYmxvY2tzIGluIHNhbWUgc3RhdGUKKyAqLworc3RhdGljIHZvaWQgbXBhZ2VfYWRkX2JoX3RvX2V4dGVudChzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSAqbXBkLAorCQkJCSAgIHNlY3Rvcl90IGxvZ2ljYWwsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCit7CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpsYmggPSAmbXBkLT5sYmg7CisJc2VjdG9yX3QgbmV4dDsKKworCW5leHQgPSBsYmgtPmJfYmxvY2tuciArIChsYmgtPmJfc2l6ZSA+PiBtcGQtPmlub2RlLT5pX2Jsa2JpdHMpOworCisJLyoKKwkgKiBGaXJzdCBibG9jayBpbiB0aGUgZXh0ZW50CisJICovCisJaWYgKGxiaC0+Yl9zaXplID09IDApIHsKKwkJbGJoLT5iX2Jsb2NrbnIgPSBsb2dpY2FsOworCQlsYmgtPmJfc2l6ZSA9IGJoLT5iX3NpemU7CisJCWxiaC0+Yl9zdGF0ZSA9IGJoLT5iX3N0YXRlICYgQkhfRkxBR1M7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIENhbiB3ZSBtZXJnZSB0aGUgYmxvY2sgdG8gb3VyIGJpZyBleHRlbnQ/CisJICovCisJaWYgKGxvZ2ljYWwgPT0gbmV4dCAmJiAoYmgtPmJfc3RhdGUgJiBCSF9GTEFHUykgPT0gbGJoLT5iX3N0YXRlKSB7CisJCWxiaC0+Yl9zaXplICs9IGJoLT5iX3NpemU7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIFdlIGNvdWxkbid0IG1lcmdlIHRoZSBibG9jayB0byBvdXIgZXh0ZW50LCBzbyB3ZQorCSAqIG5lZWQgdG8gZmx1c2ggY3VycmVudCAgZXh0ZW50IGFuZCBzdGFydCBuZXcgb25lCisJICovCisJbXBhZ2VfZGFfbWFwX2Jsb2NrcyhtcGQpOworCisJLyoKKwkgKiBOb3cgc3RhcnQgYSBuZXcgZXh0ZW50CisJICovCisJbGJoLT5iX3NpemUgPSBiaC0+Yl9zaXplOworCWxiaC0+Yl9zdGF0ZSA9IGJoLT5iX3N0YXRlICYgQkhfRkxBR1M7CisJbGJoLT5iX2Jsb2NrbnIgPSBsb2dpY2FsOworfQorCisvKgorICogX19tcGFnZV9kYV93cml0ZXBhZ2UgLSBmaW5kcyBleHRlbnQgb2YgcGFnZXMgYW5kIGJsb2NrcworICoKKyAqIEBwYWdlOiBwYWdlIHRvIGNvbnNpZGVyCisgKiBAd2JjOiBub3QgdXNlZCwgd2UganVzdCBmb2xsb3cgcnVsZXMKKyAqIEBkYXRhOiBjb250ZXh0CisgKgorICogVGhlIGZ1bmN0aW9uIGZpbmRzIGV4dGVudHMgb2YgcGFnZXMgYW5kIHNjYW4gdGhlbSBmb3IgYWxsIGJsb2Nrcy4KKyAqLworc3RhdGljIGludCBfX21wYWdlX2RhX3dyaXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwKKwkJCQlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYywgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSAqbXBkID0gZGF0YTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbXBkLT5pbm9kZTsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCAqaGVhZCwgZmFrZTsKKwlzZWN0b3JfdCBsb2dpY2FsOworCisJLyoKKwkgKiBDYW4gd2UgbWVyZ2UgdGhpcyBwYWdlIHRvIGN1cnJlbnQgZXh0ZW50PworCSAqLworCWlmIChtcGQtPm5leHRfcGFnZSAhPSBwYWdlLT5pbmRleCkgeworCQkvKgorCQkgKiBOb3BlLCB3ZSBjYW4ndC4gU28sIHdlIG1hcCBub24tYWxsb2NhdGVkIGJsb2NrcworCQkgKiBhbmQgc3RhcnQgSU8gb24gdGhlbSB1c2luZyBfX21wYWdlX3dyaXRlcGFnZSgpCisJCSAqLworCQlpZiAobXBkLT5uZXh0X3BhZ2UgIT0gbXBkLT5maXJzdF9wYWdlKSB7CisJCQltcGFnZV9kYV9tYXBfYmxvY2tzKG1wZCk7CisJCQltcGFnZV9kYV9zdWJtaXRfaW8obXBkKTsKKwkJfQorCisJCS8qCisJCSAqIFN0YXJ0IG5leHQgZXh0ZW50IG9mIHBhZ2VzIC4uLgorCQkgKi8KKwkJbXBkLT5maXJzdF9wYWdlID0gcGFnZS0+aW5kZXg7CisKKwkJLyoKKwkJICogLi4uIGFuZCBibG9ja3MKKwkJICovCisJCW1wZC0+bGJoLmJfc2l6ZSA9IDA7CisJCW1wZC0+bGJoLmJfc3RhdGUgPSAwOworCQltcGQtPmxiaC5iX2Jsb2NrbnIgPSAwOworCX0KKworCW1wZC0+bmV4dF9wYWdlID0gcGFnZS0+aW5kZXggKyAxOworCWxvZ2ljYWwgPSAoc2VjdG9yX3QpIHBhZ2UtPmluZGV4IDw8CisJCSAgKFBBR0VfQ0FDSEVfU0hJRlQgLSBpbm9kZS0+aV9ibGtiaXRzKTsKKworCWlmICghcGFnZV9oYXNfYnVmZmVycyhwYWdlKSkgeworCQkvKgorCQkgKiBUaGVyZSBpcyBubyBhdHRhY2hlZCBidWZmZXIgaGVhZHMgeWV0IChtbWFwPykKKwkJICogd2UgdHJlYXQgdGhlIHBhZ2UgYXNmdWxsIG9mIGRpcnR5IGJsb2NrcworCQkgKi8KKwkJYmggPSAmZmFrZTsKKwkJYmgtPmJfc2l6ZSA9IFBBR0VfQ0FDSEVfU0laRTsKKwkJYmgtPmJfc3RhdGUgPSAwOworCQlzZXRfYnVmZmVyX2RpcnR5KGJoKTsKKwkJc2V0X2J1ZmZlcl91cHRvZGF0ZShiaCk7CisJCW1wYWdlX2FkZF9iaF90b19leHRlbnQobXBkLCBsb2dpY2FsLCBiaCk7CisJfSBlbHNlIHsKKwkJLyoKKwkJICogUGFnZSB3aXRoIHJlZ3VsYXIgYnVmZmVyIGhlYWRzLCBqdXN0IGFkZCBhbGwgZGlydHkgb25lcworCQkgKi8KKwkJaGVhZCA9IHBhZ2VfYnVmZmVycyhwYWdlKTsKKwkJYmggPSBoZWFkOworCQlkbyB7CisJCQlCVUdfT04oYnVmZmVyX2xvY2tlZChiaCkpOworCQkJaWYgKGJ1ZmZlcl9kaXJ0eShiaCkpCisJCQkJbXBhZ2VfYWRkX2JoX3RvX2V4dGVudChtcGQsIGxvZ2ljYWwsIGJoKTsKKwkJCWxvZ2ljYWwrKzsKKwkJfSB3aGlsZSAoKGJoID0gYmgtPmJfdGhpc19wYWdlKSAhPSBoZWFkKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIG1wYWdlX2RhX3dyaXRlcGFnZXMgLSB3YWxrIHRoZSBsaXN0IG9mIGRpcnR5IHBhZ2VzIG9mIHRoZSBnaXZlbgorICogYWRkcmVzcyBzcGFjZSwgYWxsb2NhdGVzIG5vbi1hbGxvY2F0ZWQgYmxvY2tzLCBtYXBzIG5ld2x5LWFsbG9jYXRlZAorICogYmxvY2tzIHRvIGV4aXN0aW5nIGJocyBhbmQgaXNzdWUgSU8gdGhlbQorICoKKyAqIEBtYXBwaW5nOiBhZGRyZXNzIHNwYWNlIHN0cnVjdHVyZSB0byB3cml0ZQorICogQHdiYzogc3VidHJhY3QgdGhlIG51bWJlciBvZiB3cml0dGVuIHBhZ2VzIGZyb20gKkB3YmMtPm5yX3RvX3dyaXRlCisgKiBAZ2V0X2Jsb2NrOiB0aGUgZmlsZXN5c3RlbSdzIGJsb2NrIG1hcHBlciBmdW5jdGlvbi4KKyAqCisgKiBUaGlzIGlzIGEgbGlicmFyeSBmdW5jdGlvbiwgd2hpY2ggaW1wbGVtZW50cyB0aGUgd3JpdGVwYWdlcygpCisgKiBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbi4KKyAqCisgKiBJbiBvcmRlciB0byBhdm9pZCBkdXBsaWNhdGlvbiBvZiBsb2dpYyB0aGF0IGRlYWxzIHdpdGggcGFydGlhbCBwYWdlcywKKyAqIG11bHRpcGxlIGJpbyBwZXIgcGFnZSwgZXRjLCB3ZSBmaW5kIG5vbi1hbGxvY2F0ZWQgYmxvY2tzLCBhbGxvY2F0ZQorICogdGhlbSB3aXRoIG1pbmltYWwgY2FsbHMgdG8gLT5nZXRfYmxvY2soKSBhbmQgcmUtdXNlIF9fbXBhZ2Vfd3JpdGVwYWdlKCkKKyAqCisgKiBJdCdzIGltcG9ydGFudCB0aGF0IHdlIGNhbGwgX19tcGFnZV93cml0ZXBhZ2UoKSBvbmx5IG9uY2UgZm9yIGVhY2gKKyAqIGludm9sdmVkIHBhZ2UsIG90aGVyd2lzZSB3ZSdkIGhhdmUgdG8gaW1wbGVtZW50IG1vcmUgY29tcGxpY2F0ZWQgbG9naWMKKyAqIHRvIGRlYWwgd2l0aCBwYWdlcyB3L28gUEdfbG9jayBvciB3LyBQR193cml0ZWJhY2sgYW5kIHNvIG9uLgorICoKKyAqIFNlZSBjb21tZW50cyB0byBtcGFnZV93cml0ZXBhZ2VzKCkKKyAqLworc3RhdGljIGludCBtcGFnZV9kYV93cml0ZXBhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAorCQkJICAgICAgIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjLAorCQkJICAgICAgIGdldF9ibG9ja190IGdldF9ibG9jaykKK3sKKwlzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSBtcGQ7CisJaW50IHJldDsKKworCWlmICghZ2V0X2Jsb2NrKQorCQlyZXR1cm4gZ2VuZXJpY193cml0ZXBhZ2VzKG1hcHBpbmcsIHdiYyk7CisKKwltcGQud2JjID0gd2JjOworCW1wZC5pbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJbXBkLmxiaC5iX3NpemUgPSAwOworCW1wZC5sYmguYl9zdGF0ZSA9IDA7CisJbXBkLmxiaC5iX2Jsb2NrbnIgPSAwOworCW1wZC5maXJzdF9wYWdlID0gMDsKKwltcGQubmV4dF9wYWdlID0gMDsKKwltcGQuZ2V0X2Jsb2NrID0gZ2V0X2Jsb2NrOworCisJcmV0ID0gd3JpdGVfY2FjaGVfcGFnZXMobWFwcGluZywgd2JjLCBfX21wYWdlX2RhX3dyaXRlcGFnZSwgJm1wZCk7CisKKwkvKgorCSAqIEhhbmRsZSBsYXN0IGV4dGVudCBvZiBwYWdlcworCSAqLworCWlmIChtcGQubmV4dF9wYWdlICE9IG1wZC5maXJzdF9wYWdlKSB7CisJCW1wYWdlX2RhX21hcF9ibG9ja3MoJm1wZCk7CisJCW1wYWdlX2RhX3N1Ym1pdF9pbygmbXBkKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogdGhpcyBpcyBhIHNwZWNpYWwgY2FsbGJhY2sgZm9yIC0+d3JpdGVfYmVnaW4oKSBvbmx5CisgKiBpdCdzIGludGVudGlvbiBpcyB0byByZXR1cm4gbWFwcGVkIGJsb2NrIG9yIHJlc2VydmUgc3BhY2UKKyAqLworc3RhdGljIGludCBleHQ0X2RhX2dldF9ibG9ja19wcmVwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHNlY3Rvcl90IGlibG9jaywKKwkJCQkgIHN0cnVjdCBidWZmZXJfaGVhZCAqYmhfcmVzdWx0LCBpbnQgY3JlYXRlKQoreworCWludCByZXQgPSAwOworCisJQlVHX09OKGNyZWF0ZSA9PSAwKTsKKwlCVUdfT04oYmhfcmVzdWx0LT5iX3NpemUgIT0gaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplKTsKKworCS8qCisJICogZmlyc3QsIHdlIG5lZWQgdG8ga25vdyB3aGV0aGVyIHRoZSBibG9jayBpcyBhbGxvY2F0ZWQgYWxyZWFkeQorCSAqIHByZWFsbG9jYXRlZCBibG9ja3MgYXJlIHVubWFwcGVkIGJ1dCBzaG91bGQgdHJlYXRlZAorCSAqIHRoZSBzYW1lIGFzIGFsbG9jYXRlZCBibG9ja3MuCisJICovCisJcmV0ID0gZXh0NF9nZXRfYmxvY2tzX3dyYXAoTlVMTCwgaW5vZGUsIGlibG9jaywgMSwgIGJoX3Jlc3VsdCwgMCwgMCwgMCk7CisJaWYgKChyZXQgPT0gMCkgJiYgIWJ1ZmZlcl9kZWxheShiaF9yZXN1bHQpKSB7CisJCS8qIHRoZSBibG9jayBpc24ndCAocHJlKWFsbG9jYXRlZCB5ZXQsIGxldCdzIHJlc2VydmUgc3BhY2UgKi8KKwkJLyoKKwkJICogWFhYOiBfX2Jsb2NrX3ByZXBhcmVfd3JpdGUoKSB1bm1hcHMgcGFzc2VkIGJsb2NrLAorCQkgKiBpcyBpdCBPSz8KKwkJICovCisJCXJldCA9IGV4dDRfZGFfcmVzZXJ2ZV9zcGFjZShpbm9kZSwgMSk7CisJCWlmIChyZXQpCisJCQkvKiBub3QgZW5vdWdoIHNwYWNlIHRvIHJlc2VydmUgKi8KKwkJCXJldHVybiByZXQ7CisKKwkJbWFwX2JoKGJoX3Jlc3VsdCwgaW5vZGUtPmlfc2IsIDApOworCQlzZXRfYnVmZmVyX25ldyhiaF9yZXN1bHQpOworCQlzZXRfYnVmZmVyX2RlbGF5KGJoX3Jlc3VsdCk7CisJfSBlbHNlIGlmIChyZXQgPiAwKSB7CisJCWJoX3Jlc3VsdC0+Yl9zaXplID0gKHJldCA8PCBpbm9kZS0+aV9ibGtiaXRzKTsKKwkJcmV0ID0gMDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorI2RlZmluZQkJRVhUNF9ERUxBTExPQ19SU1ZFRAkxCitzdGF0aWMgaW50IGV4dDRfZGFfZ2V0X2Jsb2NrX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHNlY3Rvcl90IGlibG9jaywKKwkJCQkgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoX3Jlc3VsdCwgaW50IGNyZWF0ZSkKK3sKKwlpbnQgcmV0OworCXVuc2lnbmVkIG1heF9ibG9ja3MgPSBiaF9yZXN1bHQtPmJfc2l6ZSA+PiBpbm9kZS0+aV9ibGtiaXRzOworCWxvZmZfdCBkaXNrc2l6ZSA9IEVYVDRfSShpbm9kZSktPmlfZGlza3NpemU7CisJaGFuZGxlX3QgKmhhbmRsZSA9IE5VTEw7CisKKwloYW5kbGUgPSBleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKTsKKwlpZiAoIWhhbmRsZSkgeworCQlyZXQgPSBleHQ0X2dldF9ibG9ja3Nfd3JhcChoYW5kbGUsIGlub2RlLCBpYmxvY2ssIG1heF9ibG9ja3MsCisJCQkJICAgYmhfcmVzdWx0LCAwLCAwLCAwKTsKKwkJQlVHX09OKCFyZXQpOworCX0gZWxzZSB7CisJCXJldCA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKGhhbmRsZSwgaW5vZGUsIGlibG9jaywgbWF4X2Jsb2NrcywKKwkJCQkgICBiaF9yZXN1bHQsIGNyZWF0ZSwgMCwgRVhUNF9ERUxBTExPQ19SU1ZFRCk7CisJfQorCisJaWYgKHJldCA+IDApIHsKKwkJYmhfcmVzdWx0LT5iX3NpemUgPSAocmV0IDw8IGlub2RlLT5pX2Jsa2JpdHMpOworCisJCS8qCisJCSAqIFVwZGF0ZSBvbi1kaXNrIHNpemUgYWxvbmcgd2l0aCBibG9jayBhbGxvY2F0aW9uCisJCSAqIHdlIGRvbid0IHVzZSAnZXh0ZW5kX2Rpc2tzaXplJyBhcyBzaXplIG1heSBjaGFuZ2UKKwkJICogd2l0aGluIGFscmVhZHkgYWxsb2NhdGVkIGJsb2NrIC1ienp6CisJCSAqLworCQlkaXNrc2l6ZSA9ICgobG9mZl90KSBpYmxvY2sgKyByZXQpIDw8IGlub2RlLT5pX2Jsa2JpdHM7CisJCWlmIChkaXNrc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkKKwkJCWRpc2tzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCQlpZiAoZGlza3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKSB7CisJCQkvKgorCQkJICogWFhYOiByZXBsYWNlIHdpdGggc3BpbmxvY2sgaWYgc2VlbiBjb250ZW5kZWQgLWJ6enoKKwkJCSAqLworCQkJZG93bl93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CisJCQlpZiAoZGlza3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKQorCQkJCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBkaXNrc2l6ZTsKKwkJCXVwX3dyaXRlKCZFWFQ0X0koaW5vZGUpLT5pX2RhdGFfc2VtKTsKKworCQkJaWYgKEVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPT0gZGlza3NpemUpIHsKKwkJCQlyZXQgPSBleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KKwkJfQorCQlyZXQgPSAwOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGV4dDRfYmhfdW5tYXBwZWRfb3JfZGVsYXkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKK3sKKwkvKgorCSAqIHVubWFwcGVkIGJ1ZmZlciBpcyBwb3NzaWJsZSBmb3IgaG9sZXMuCisJICogZGVsYXkgYnVmZmVyIGlzIHBvc3NpYmxlIHdpdGggZGVsYXllZCBhbGxvY2F0aW9uCisJICovCisJcmV0dXJuICgoIWJ1ZmZlcl9tYXBwZWQoYmgpIHx8IGJ1ZmZlcl9kZWxheShiaCkpICYmIGJ1ZmZlcl9kaXJ0eShiaCkpOworfQorCitzdGF0aWMgaW50IGV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzZWN0b3JfdCBpYmxvY2ssCisJCQkJICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaF9yZXN1bHQsIGludCBjcmVhdGUpCit7CisJaW50IHJldCA9IDA7CisJdW5zaWduZWQgbWF4X2Jsb2NrcyA9IGJoX3Jlc3VsdC0+Yl9zaXplID4+IGlub2RlLT5pX2Jsa2JpdHM7CisKKwkvKgorCSAqIHdlIGRvbid0IHdhbnQgdG8gZG8gYmxvY2sgYWxsb2NhdGlvbiBpbiB3cml0ZXBhZ2UKKwkgKiBzbyBjYWxsIGdldF9ibG9ja193cmFwIHdpdGggY3JlYXRlID0gMAorCSAqLworCXJldCA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKE5VTEwsIGlub2RlLCBpYmxvY2ssIG1heF9ibG9ja3MsCisJCQkJICAgYmhfcmVzdWx0LCAwLCAwLCAwKTsKKwlpZiAocmV0ID4gMCkgeworCQliaF9yZXN1bHQtPmJfc2l6ZSA9IChyZXQgPDwgaW5vZGUtPmlfYmxrYml0cyk7CisJCXJldCA9IDA7CisJfQorCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBnZXQgY2FsbGVkIHZpIGV4dDRfZGFfd3JpdGVwYWdlcyBhZnRlciB0YWtpbmcgcGFnZSBsb2NrIChoYXZlIGpvdXJuYWwgaGFuZGxlKQorICogZ2V0IGNhbGxlZCB2aWEgam91cm5hbF9zdWJtaXRfaW5vZGVfZGF0YV9idWZmZXJzIChubyBqb3VybmFsIGhhbmRsZSkKKyAqIGdldCBjYWxsZWQgdmlhIHNocmlua19wYWdlX2xpc3QgdmlhIHBkZmx1c2ggKG5vIGpvdXJuYWwgaGFuZGxlKQorICogb3IgZ3JhYl9wYWdlX2NhY2hlIHdoZW4gZG9pbmcgd3JpdGVfYmVnaW4gKGhhdmUgam91cm5hbCBoYW5kbGUpCisgKi8KK3N0YXRpYyBpbnQgZXh0NF9kYV93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsCisJCQkJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCit7CisJaW50IHJldCA9IDA7CisJbG9mZl90IHNpemU7CisJdW5zaWduZWQgbG9uZyBsZW47CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpwYWdlX2J1ZnM7CisJc3RydWN0IGlub2RlICppbm9kZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7CisKKwlzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCWlmIChwYWdlLT5pbmRleCA9PSBzaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpCisJCWxlbiA9IHNpemUgJiB+UEFHRV9DQUNIRV9NQVNLOworCWVsc2UKKwkJbGVuID0gUEFHRV9DQUNIRV9TSVpFOworCisJaWYgKHBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsKKwkJcGFnZV9idWZzID0gcGFnZV9idWZmZXJzKHBhZ2UpOworCQlpZiAod2Fsa19wYWdlX2J1ZmZlcnMoTlVMTCwgcGFnZV9idWZzLCAwLCBsZW4sIE5VTEwsCisJCQkJCWV4dDRfYmhfdW5tYXBwZWRfb3JfZGVsYXkpKSB7CisJCQkvKgorCQkJICogV2UgZG9uJ3Qgd2FudCB0byBkbyAgYmxvY2sgYWxsb2NhdGlvbgorCQkJICogU28gcmVkaXJ0eSB0aGUgcGFnZSBhbmQgcmV0dXJuCisJCQkgKiBXZSBtYXkgcmVhY2ggaGVyZSB3aGVuIHdlIGRvIGEgam91cm5hbCBjb21taXQKKwkJCSAqIHZpYSBqb3VybmFsX3N1Ym1pdF9pbm9kZV9kYXRhX2J1ZmZlcnMuCisJCQkgKiBJZiB3ZSBkb24ndCBoYXZlIG1hcHBpbmcgYmxvY2sgd2UganVzdCBpZ25vcmUKKwkJCSAqIHRoZW0uIFdlIGNhbiBhbHNvIHJlYWNoIGhlcmUgdmlhIHNocmlua19wYWdlX2xpc3QKKwkJCSAqLworCQkJcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwkJCXVubG9ja19wYWdlKHBhZ2UpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9IGVsc2UgeworCQkvKgorCQkgKiBUaGUgdGVzdCBmb3IgcGFnZV9oYXNfYnVmZmVycygpIGlzIHN1YnRsZToKKwkJICogV2Uga25vdyB0aGUgcGFnZSBpcyBkaXJ0eSBidXQgaXQgbG9zdCBidWZmZXJzLiBUaGF0IG1lYW5zCisJCSAqIHRoYXQgYXQgc29tZSBtb21lbnQgaW4gdGltZSBhZnRlciB3cml0ZV9iZWdpbigpL3dyaXRlX2VuZCgpCisJCSAqIGhhcyBiZWVuIGNhbGxlZCBhbGwgYnVmZmVycyBoYXZlIGJlZW4gY2xlYW4gYW5kIHRodXMgdGhleQorCQkgKiBtdXN0IGhhdmUgYmVlbiB3cml0dGVuIGF0IGxlYXN0IG9uY2UuIFNvIHRoZXkgYXJlIGFsbAorCQkgKiBtYXBwZWQgYW5kIHdlIGNhbiBoYXBwaWx5IHByb2NlZWQgd2l0aCBtYXBwaW5nIHRoZW0KKwkJICogYW5kIHdyaXRpbmcgdGhlIHBhZ2UuCisJCSAqCisJCSAqIFRyeSB0byBpbml0aWFsaXplIHRoZSBidWZmZXJfaGVhZHMgYW5kIGNoZWNrIHdoZXRoZXIKKwkJICogYWxsIGFyZSBtYXBwZWQgYW5kIG5vbiBkZWxheS4gV2UgZG9uJ3Qgd2FudCB0bworCQkgKiBkbyBibG9jayBhbGxvY2F0aW9uIGhlcmUuCisJCSAqLworCQlyZXQgPSBibG9ja19wcmVwYXJlX3dyaXRlKHBhZ2UsIDAsIFBBR0VfQ0FDSEVfU0laRSwKKwkJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSk7CisJCWlmICghcmV0KSB7CisJCQlwYWdlX2J1ZnMgPSBwYWdlX2J1ZmZlcnMocGFnZSk7CisJCQkvKiBjaGVjayB3aGV0aGVyIGFsbCBhcmUgbWFwcGVkIGFuZCBub24gZGVsYXkgKi8KKwkJCWlmICh3YWxrX3BhZ2VfYnVmZmVycyhOVUxMLCBwYWdlX2J1ZnMsIDAsIGxlbiwgTlVMTCwKKwkJCQkJCWV4dDRfYmhfdW5tYXBwZWRfb3JfZGVsYXkpKSB7CisJCQkJcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwkJCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiBXZSBjYW4ndCBkbyBibG9jayBhbGxvY2F0aW9uIGhlcmUKKwkJCSAqIHNvIGp1c3QgcmVkaXR5IHRoZSBwYWdlIGFuZCB1bmxvY2sKKwkJCSAqIGFuZCByZXR1cm4KKwkJCSAqLworCQkJcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwkJCXVubG9ja19wYWdlKHBhZ2UpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9CisKKwlpZiAodGVzdF9vcHQoaW5vZGUtPmlfc2IsIE5PQkgpICYmIGV4dDRfc2hvdWxkX3dyaXRlYmFja19kYXRhKGlub2RlKSkKKwkJcmV0ID0gbm9iaF93cml0ZXBhZ2UocGFnZSwgZXh0NF9ub3JtYWxfZ2V0X2Jsb2NrX3dyaXRlLCB3YmMpOworCWVsc2UKKwkJcmV0ID0gYmxvY2tfd3JpdGVfZnVsbF9wYWdlKHBhZ2UsCisJCQkJCQlleHQ0X25vcm1hbF9nZXRfYmxvY2tfd3JpdGUsCisJCQkJCQl3YmMpOworCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEZvciBub3cganVzdCBmb2xsb3cgdGhlIERJTyB3YXkgdG8gZXN0aW1hdGUgdGhlIG1heCBjcmVkaXRzCisgKiBuZWVkZWQgdG8gd3JpdGUgb3V0IEVYVDRfTUFYX1dSSVRFQkFDS19QQUdFUy4KKyAqIHRvZG86IG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBtYXggY3JlZGl0cyBuZWVkIGZvcgorICogZXh0ZW50IGJhc2VkIGZpbGVzLCBjdXJyZW50bHkgdGhlIERJTyBjcmVkaXRzIGlzIGJhc2VkIG9uCisgKiBpbmRpcmVjdC1ibG9ja3MgbWFwcGluZyB3YXkuCisgKgorICogUHJvYmFibHkgc2hvdWxkIGhhdmUgYSBnZW5lcmljIHdheSB0byBjYWxjdWxhdGUgY3JlZGl0cworICogZm9yIERJTywgd3JpdGVwYWdlcywgYW5kIHRydW5jYXRlCisgKi8KKyNkZWZpbmUgRVhUNF9NQVhfV1JJVEVCQUNLX1BBR0VTICAgICAgRElPX01BWF9CTE9DS1MKKyNkZWZpbmUgRVhUNF9NQVhfV1JJVEVCQUNLX0NSRURJVFMgICAgRElPX0NSRURJVFMKKworc3RhdGljIGludCBleHQ0X2RhX3dyaXRlcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCisJCQkJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCit7CisJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJaGFuZGxlX3QgKmhhbmRsZSA9IE5VTEw7CisJaW50IG5lZWRlZF9ibG9ja3M7CisJaW50IHJldCA9IDA7CisJbG9uZyB0b193cml0ZTsKKwlsb2ZmX3QgcmFuZ2Vfc3RhcnQgPSAwOworCisJLyoKKwkgKiBObyBwYWdlcyB0byB3cml0ZT8gVGhpcyBpcyBtYWlubHkgYSBrbHVkZ2UgdG8gYXZvaWQgc3RhcnRpbmcKKwkgKiBhIHRyYW5zYWN0aW9uIGZvciBzcGVjaWFsIGlub2RlcyBsaWtlIGpvdXJuYWwgaW5vZGUgb24gbGFzdCBpcHV0KCkKKwkgKiBiZWNhdXNlIHRoYXQgY291bGQgdmlvbGF0ZSBsb2NrIG9yZGVyaW5nIG9uIHVtb3VudAorCSAqLworCWlmICghbWFwcGluZy0+bnJwYWdlcykKKwkJcmV0dXJuIDA7CisKKwkvKgorCSAqIEVzdGltYXRlIHRoZSB3b3JzZSBjYXNlIG5lZWRlZCBjcmVkaXRzIHRvIHdyaXRlIG91dAorCSAqIEVYVDRfTUFYX0JVRl9CTE9DS1MgcGFnZXMKKwkgKi8KKwluZWVkZWRfYmxvY2tzID0gRVhUNF9NQVhfV1JJVEVCQUNLX0NSRURJVFM7CisKKwl0b193cml0ZSA9IHdiYy0+bnJfdG9fd3JpdGU7CisJaWYgKCF3YmMtPnJhbmdlX2N5Y2xpYykgeworCQkvKgorCQkgKiBJZiByYW5nZV9jeWNsaWMgaXMgbm90IHNldCBmb3JjZSByYW5nZV9jb250CisJCSAqIGFuZCBzYXZlIHRoZSBvbGQgd3JpdGViYWNrX2luZGV4CisJCSAqLworCQl3YmMtPnJhbmdlX2NvbnQgPSAxOworCQlyYW5nZV9zdGFydCA9ICB3YmMtPnJhbmdlX3N0YXJ0OworCX0KKworCXdoaWxlICghcmV0ICYmIHRvX3dyaXRlKSB7CisJCS8qIHN0YXJ0IGEgbmV3IHRyYW5zYWN0aW9uKi8KKwkJaGFuZGxlID0gZXh0NF9qb3VybmFsX3N0YXJ0KGlub2RlLCBuZWVkZWRfYmxvY2tzKTsKKwkJaWYgKElTX0VSUihoYW5kbGUpKSB7CisJCQlyZXQgPSBQVFJfRVJSKGhhbmRsZSk7CisJCQlnb3RvIG91dF93cml0ZXBhZ2VzOworCQl9CisJCWlmIChleHQ0X3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkgeworCQkJLyoKKwkJCSAqIFdpdGggb3JkZXJlZCBtb2RlIHdlIG5lZWQgdG8gYWRkCisJCQkgKiB0aGUgaW5vZGUgdG8gdGhlIGpvdXJuYWwgaGFuZGxlCisJCQkgKiB3aGVuIHdlIGRvIGJsb2NrIGFsbG9jYXRpb24uCisJCQkgKi8KKwkJCXJldCA9IGV4dDRfamJkMl9maWxlX2lub2RlKGhhbmRsZSwgaW5vZGUpOworCQkJaWYgKHJldCkgeworCQkJCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CisJCQkJZ290byBvdXRfd3JpdGVwYWdlczsKKwkJCX0KKworCQl9CisJCS8qCisJCSAqIHNldCB0aGUgbWF4IGRpcnR5IHBhZ2VzIGNvdWxkIGJlIHdyaXRlIGF0IGEgdGltZQorCQkgKiB0byBmaXQgaW50byB0aGUgcmVzZXJ2ZWQgdHJhbnNhY3Rpb24gY3JlZGl0cworCQkgKi8KKwkJaWYgKHdiYy0+bnJfdG9fd3JpdGUgPiBFWFQ0X01BWF9XUklURUJBQ0tfUEFHRVMpCisJCQl3YmMtPm5yX3RvX3dyaXRlID0gRVhUNF9NQVhfV1JJVEVCQUNLX1BBR0VTOworCisJCXRvX3dyaXRlIC09IHdiYy0+bnJfdG9fd3JpdGU7CisJCXJldCA9IG1wYWdlX2RhX3dyaXRlcGFnZXMobWFwcGluZywgd2JjLAorCQkJCQkJZXh0NF9kYV9nZXRfYmxvY2tfd3JpdGUpOworCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOworCQlpZiAod2JjLT5ucl90b193cml0ZSkgeworCQkJLyoKKwkJCSAqIFRoZXJlIGlzIG5vIG1vcmUgd3JpdGVvdXQgbmVlZGVkCisJCQkgKiBvciB3ZSByZXF1ZXN0ZWQgZm9yIGEgbm9ibG9ja2luZyB3cml0ZW91dAorCQkJICogYW5kIHdlIGZvdW5kIHRoZSBkZXZpY2UgY29uZ2VzdGVkCisJCQkgKi8KKwkJCXRvX3dyaXRlICs9IHdiYy0+bnJfdG9fd3JpdGU7CisJCQlicmVhazsKKwkJfQorCQl3YmMtPm5yX3RvX3dyaXRlID0gdG9fd3JpdGU7CisJfQorCitvdXRfd3JpdGVwYWdlczoKKwl3YmMtPm5yX3RvX3dyaXRlID0gdG9fd3JpdGU7CisJaWYgKHJhbmdlX3N0YXJ0KQorCQl3YmMtPnJhbmdlX3N0YXJ0ID0gcmFuZ2Vfc3RhcnQ7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBleHQ0X2RhX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKKwkJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGZsYWdzLAorCQkJCXN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpCit7CisJaW50IHJldCwgcmV0cmllcyA9IDA7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJcGdvZmZfdCBpbmRleDsKKwl1bnNpZ25lZCBmcm9tLCB0bzsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsKKwloYW5kbGVfdCAqaGFuZGxlOworCisJaW5kZXggPSBwb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsKKwlmcm9tID0gcG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOworCXRvID0gZnJvbSArIGxlbjsKKworcmV0cnk6CisJLyoKKwkgKiBXaXRoIGRlbGF5ZWQgYWxsb2NhdGlvbiwgd2UgZG9uJ3QgbG9nIHRoZSBpX2Rpc2tzaXplIHVwZGF0ZQorCSAqIGlmIHRoZXJlIGlzIGRlbGF5ZWQgYmxvY2sgYWxsb2NhdGlvbi4gQnV0IHdlIHN0aWxsIG5lZWQKKwkgKiB0byBqb3VybmFsbGluZyB0aGUgaV9kaXNrc2l6ZSB1cGRhdGUgaWYgd3JpdGVzIHRvIHRoZSBlbmQKKwkgKiBvZiBmaWxlIHdoaWNoIGhhcyBhbiBhbHJlYWR5IG1hcHBlZCBidWZmZXIuCisJICovCisJaGFuZGxlID0gZXh0NF9qb3VybmFsX3N0YXJ0KGlub2RlLCAxKTsKKwlpZiAoSVNfRVJSKGhhbmRsZSkpIHsKKwkJcmV0ID0gUFRSX0VSUihoYW5kbGUpOworCQlnb3RvIG91dDsKKwl9CisKKwlwYWdlID0gX19ncmFiX2NhY2hlX3BhZ2UobWFwcGluZywgaW5kZXgpOworCWlmICghcGFnZSkKKwkJcmV0dXJuIC1FTk9NRU07CisJKnBhZ2VwID0gcGFnZTsKKworCXJldCA9IGJsb2NrX3dyaXRlX2JlZ2luKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBmbGFncywgcGFnZXAsIGZzZGF0YSwKKwkJCQkJCQlleHQ0X2RhX2dldF9ibG9ja19wcmVwKTsKKwlpZiAocmV0IDwgMCkgeworCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCX0KKworCWlmIChyZXQgPT0gLUVOT1NQQyAmJiBleHQ0X3Nob3VsZF9yZXRyeV9hbGxvYyhpbm9kZS0+aV9zYiwgJnJldHJpZXMpKQorCQlnb3RvIHJldHJ5Oworb3V0OgorCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBDaGVjayBpZiB3ZSBzaG91bGQgdXBkYXRlIGlfZGlza3NpemUKKyAqIHdoZW4gd3JpdGUgdG8gdGhlIGVuZCBvZiBmaWxlIGJ1dCBub3QgcmVxdWlyZSBibG9jayBhbGxvY2F0aW9uCisgKi8KK3N0YXRpYyBpbnQgZXh0NF9kYV9zaG91bGRfdXBkYXRlX2lfZGlza3NpemUoc3RydWN0IHBhZ2UgKnBhZ2UsCisJCQkJCSB1bnNpZ25lZCBsb25nIG9mZnNldCkKK3sKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OworCXVuc2lnbmVkIGludCBpZHg7CisJaW50IGk7CisKKwliaCA9IHBhZ2VfYnVmZmVycyhwYWdlKTsKKwlpZHggPSBvZmZzZXQgPj4gaW5vZGUtPmlfYmxrYml0czsKKworCWZvciAoaT0wOyBpIDwgaWR4OyBpKyspCisJCWJoID0gYmgtPmJfdGhpc19wYWdlOworCisJaWYgKCFidWZmZXJfbWFwcGVkKGJoKSB8fCAoYnVmZmVyX2RlbGF5KGJoKSkpCisJCXJldHVybiAwOworCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IGV4dDRfZGFfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLAorCQkJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAorCQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLAorCQkJCXN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpCit7CisJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJaW50IHJldCA9IDAsIHJldDI7CisJaGFuZGxlX3QgKmhhbmRsZSA9IGV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpOworCWxvZmZfdCBuZXdfaV9zaXplOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsKKworCXN0YXJ0ID0gcG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOworCWVuZCA9IHN0YXJ0ICsgY29waWVkIC0xOworCisJLyoKKwkgKiBnZW5lcmljX3dyaXRlX2VuZCgpIHdpbGwgcnVuIG1hcmtfaW5vZGVfZGlydHkoKSBpZiBpX3NpemUKKwkgKiBjaGFuZ2VzLiAgU28gbGV0J3MgcGlnZ3liYWNrIHRoZSBpX2Rpc2tzaXplIG1hcmtfaW5vZGVfZGlydHkKKwkgKiBpbnRvIHRoYXQuCisJICovCisKKwluZXdfaV9zaXplID0gcG9zICsgY29waWVkOworCWlmIChuZXdfaV9zaXplID4gRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSkgeworCQlpZiAoZXh0NF9kYV9zaG91bGRfdXBkYXRlX2lfZGlza3NpemUocGFnZSwgZW5kKSkgeworCQkJZG93bl93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CisJCQlpZiAobmV3X2lfc2l6ZSA+IEVYVDRfSShpbm9kZSktPmlfZGlza3NpemUpIHsKKwkJCQkvKgorCQkJCSAqIFVwZGF0aW5nIGlfZGlza3NpemUgd2hlbiBleHRlbmRpbmcgZmlsZQorCQkJCSAqIHdpdGhvdXQgbmVlZGluZyBibG9jayBhbGxvY2F0aW9uCisJCQkJICovCisJCQkJaWYgKGV4dDRfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpKQorCQkJCQlyZXQgPSBleHQ0X2piZDJfZmlsZV9pbm9kZShoYW5kbGUsCisJCQkJCQkJCSAgIGlub2RlKTsKKworCQkJCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBuZXdfaV9zaXplOworCQkJfQorCQkJdXBfd3JpdGUoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOworCQl9CisJfQorCXJldDIgPSBnZW5lcmljX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLAorCQkJCQkJCXBhZ2UsIGZzZGF0YSk7CisJY29waWVkID0gcmV0MjsKKwlpZiAocmV0MiA8IDApCisJCXJldCA9IHJldDI7CisJcmV0MiA9IGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CisJaWYgKCFyZXQpCisJCXJldCA9IHJldDI7CisKKwlyZXR1cm4gcmV0ID8gcmV0IDogY29waWVkOworfQorCitzdGF0aWMgdm9pZCBleHQ0X2RhX2ludmFsaWRhdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIG9mZnNldCkKK3sKKwkvKgorCSAqIERyb3AgcmVzZXJ2ZWQgYmxvY2tzCisJICovCisJQlVHX09OKCFQYWdlTG9ja2VkKHBhZ2UpKTsKKwlpZiAoIXBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpCisJCWdvdG8gb3V0OworCisJZXh0NF9kYV9wYWdlX3JlbGVhc2VfcmVzZXJ2YXRpb24ocGFnZSwgb2Zmc2V0KTsKKworb3V0OgorCWV4dDRfaW52YWxpZGF0ZXBhZ2UocGFnZSwgb2Zmc2V0KTsKKworCXJldHVybjsKK30KKwogCiAvKgogICogYm1hcCgpIGlzIHNwZWNpYWwuICBJdCBnZXRzIHVzZWQgYnkgYXBwbGljYXRpb25zIHN1Y2ggYXMgbGlsbyBhbmQgYnkKQEAgLTE0MTgsNiArMjQwOSwxNiBAQAogCWpvdXJuYWxfdCAqam91cm5hbDsKIAlpbnQgZXJyOwogCisJaWYgKG1hcHBpbmdfdGFnZ2VkKG1hcHBpbmcsIFBBR0VDQUNIRV9UQUdfRElSVFkpICYmCisJCQl0ZXN0X29wdChpbm9kZS0+aV9zYiwgREVMQUxMT0MpKSB7CisJCS8qCisJCSAqIFdpdGggZGVsYWxsb2Mgd2Ugd2FudCB0byBzeW5jIHRoZSBmaWxlCisJCSAqIHNvIHRoYXQgd2UgY2FuIG1ha2Ugc3VyZSB3ZSBhbGxvY2F0ZQorCQkgKiBibG9ja3MgZm9yIGZpbGUKKwkJICovCisJCWZpbGVtYXBfd3JpdGVfYW5kX3dhaXQobWFwcGluZyk7CisJfQorCiAJaWYgKEVYVDRfSShpbm9kZSktPmlfc3RhdGUgJiBFWFQ0X1NUQVRFX0pEQVRBKSB7CiAJCS8qCiAJCSAqIFRoaXMgaXMgYSBSRUFMTFkgaGVhdnl3ZWlnaHQgYXBwcm9hY2gsIGJ1dCB0aGUgdXNlIG9mCkBAIC0xNDYyLDIxICsyNDYzLDE3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgamJkMl9qb3VybmFsX2RpcnR5X2RhdGFfZm4oaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKLXsKLQlpZiAoYnVmZmVyX21hcHBlZChiaCkpCi0JCXJldHVybiBleHQ0X2pvdXJuYWxfZGlydHlfZGF0YShoYW5kbGUsIGJoKTsKLQlyZXR1cm4gMDsKLX0KLQogLyoKLSAqIE5vdGUgdGhhdCB3ZSBhbHdheXMgc3RhcnQgYSB0cmFuc2FjdGlvbiBldmVuIGlmIHdlJ3JlIG5vdCBqb3VybmFsbGluZwotICogZGF0YS4gIFRoaXMgaXMgdG8gcHJlc2VydmUgb3JkZXJpbmc6IGFueSBob2xlIGluc3RhbnRpYXRpb24gd2l0aGluCi0gKiBfX2Jsb2NrX3dyaXRlX2Z1bGxfcGFnZSAtPiBleHQ0X2dldF9ibG9jaygpIHNob3VsZCBiZSBqb3VybmFsbGVkCi0gKiBhbG9uZyB3aXRoIHRoZSBkYXRhIHNvIHdlIGRvbid0IGNyYXNoIGFuZCB0aGVuIGdldCBtZXRhZGF0YSB3aGljaAotICogcmVmZXJzIHRvIG9sZCBkYXRhLgorICogTm90ZSB0aGF0IHdlIGRvbid0IG5lZWQgdG8gc3RhcnQgYSB0cmFuc2FjdGlvbiB1bmxlc3Mgd2UncmUgam91cm5hbGluZyBkYXRhCisgKiBiZWNhdXNlIHdlIHNob3VsZCBoYXZlIGhvbGVzIGZpbGxlZCBmcm9tIGV4dDRfcGFnZV9ta3dyaXRlKCkuIFdlIGV2ZW4gZG9uJ3QKKyAqIG5lZWQgdG8gZmlsZSB0aGUgaW5vZGUgdG8gdGhlIHRyYW5zYWN0aW9uJ3MgbGlzdCBpbiBvcmRlcmVkIG1vZGUgYmVjYXVzZSBpZgorICogd2UgYXJlIHdyaXRpbmcgYmFjayBkYXRhIGFkZGVkIGJ5IHdyaXRlKCksIHRoZSBpbm9kZSBpcyBhbHJlYWR5IHRoZXJlIGFuZCBpZgorICogd2UgYXJlIHdyaXRpbmcgYmFjayBkYXRhIG1vZGlmaWVkIHZpYSBtbWFwKCksIG5vb25lIGd1YXJhbnRlZXMgaW4gd2hpY2gKKyAqIHRyYW5zYWN0aW9uIHRoZSBkYXRhIHdpbGwgaGl0IHRoZSBkaXNrLiBJbiBjYXNlIHdlIGFyZSBqb3VybmFsaW5nIGRhdGEsIHdlCisgKiBjYW5ub3Qgc3RhcnQgdHJhbnNhY3Rpb24gZGlyZWN0bHkgYmVjYXVzZSB0cmFuc2FjdGlvbiBzdGFydCByYW5rcyBhYm92ZSBwYWdlCisgKiBsb2NrIHNvIHdlIGhhdmUgdG8gZG8gc29tZSBtYWdpYy4KICAqCi0gKiBJbiBhbGwgam91cm5hbGxpbmcgbW9kZXMgYmxvY2tfd3JpdGVfZnVsbF9wYWdlKCkgd2lsbCBzdGFydCB0aGUgSS9PLgorICogSW4gYWxsIGpvdXJuYWxpbmcgbW9kZXMgYmxvY2tfd3JpdGVfZnVsbF9wYWdlKCkgd2lsbCBzdGFydCB0aGUgSS9PLgogICoKICAqIFByb2JsZW06CiAgKgpAQCAtMTUxOCwxMDUgKzI1MTUsMTAzIEBACiAgKiBkaXNhc3Ryb3VzLiAgQW55IHdyaXRlKCkgb3IgbWV0YWRhdGEgb3BlcmF0aW9uIHdpbGwgc3luYyB0aGUgZnMgZm9yCiAgKiB1cy4KICAqCi0gKiBBS1BNMjogaWYgYWxsIHRoZSBwYWdlJ3MgYnVmZmVycyBhcmUgbWFwcGVkIHRvIGRpc2sgYW5kICFkYXRhPWpvdXJuYWwsCi0gKiB3ZSBkb24ndCBuZWVkIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiBoZXJlLgogICovCi1zdGF0aWMgaW50IGV4dDRfb3JkZXJlZF93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsCitzdGF0aWMgaW50IF9fZXh0NF9ub3JtYWxfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAogCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OworCisJaWYgKHRlc3Rfb3B0KGlub2RlLT5pX3NiLCBOT0JIKSkKKwkJcmV0dXJuIG5vYmhfd3JpdGVwYWdlKHBhZ2UsCisJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSwgd2JjKTsKKwllbHNlCisJCXJldHVybiBibG9ja193cml0ZV9mdWxsX3BhZ2UocGFnZSwKKwkJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSwKKwkJCQkJCXdiYyk7Cit9CisKK3N0YXRpYyBpbnQgZXh0NF9ub3JtYWxfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAorCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OworCWxvZmZfdCBzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCWxvZmZfdCBsZW47CisKKwlKX0FTU0VSVChQYWdlTG9ja2VkKHBhZ2UpKTsKKwlpZiAocGFnZS0+aW5kZXggPT0gc2l6ZSA+PiBQQUdFX0NBQ0hFX1NISUZUKQorCQlsZW4gPSBzaXplICYgflBBR0VfQ0FDSEVfTUFTSzsKKwllbHNlCisJCWxlbiA9IFBBR0VfQ0FDSEVfU0laRTsKKworCWlmIChwYWdlX2hhc19idWZmZXJzKHBhZ2UpKSB7CisJCS8qIGlmIHBhZ2UgaGFzIGJ1ZmZlcnMgaXQgc2hvdWxkIGFsbCBiZSBtYXBwZWQKKwkJICogYW5kIGFsbG9jYXRlZC4gSWYgdGhlcmUgYXJlIG5vdCBidWZmZXJzIGF0dGFjaGVkCisJCSAqIHRvIHRoZSBwYWdlIHdlIGtub3cgdGhlIHBhZ2UgaXMgZGlydHkgYnV0IGl0IGxvc3QKKwkJICogYnVmZmVycy4gVGhhdCBtZWFucyB0aGF0IGF0IHNvbWUgbW9tZW50IGluIHRpbWUKKwkJICogYWZ0ZXIgd3JpdGVfYmVnaW4oKSAvIHdyaXRlX2VuZCgpIGhhcyBiZWVuIGNhbGxlZAorCQkgKiBhbGwgYnVmZmVycyBoYXZlIGJlZW4gY2xlYW4gYW5kIHRodXMgdGhleSBtdXN0IGhhdmUgYmVlbgorCQkgKiB3cml0dGVuIGF0IGxlYXN0IG9uY2UuIFNvIHRoZXkgYXJlIGFsbCBtYXBwZWQgYW5kIHdlIGNhbgorCQkgKiBoYXBwaWx5IHByb2NlZWQgd2l0aCBtYXBwaW5nIHRoZW0gYW5kIHdyaXRpbmcgdGhlIHBhZ2UuCisJCSAqLworCQlCVUdfT04od2Fsa19wYWdlX2J1ZmZlcnMoTlVMTCwgcGFnZV9idWZmZXJzKHBhZ2UpLCAwLCBsZW4sIE5VTEwsCisJCQkJCWV4dDRfYmhfdW5tYXBwZWRfb3JfZGVsYXkpKTsKKwl9CisKKwlpZiAoIWV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpKQorCQlyZXR1cm4gX19leHQ0X25vcm1hbF93cml0ZXBhZ2UocGFnZSwgd2JjKTsKKworCXJlZGlydHlfcGFnZV9mb3Jfd3JpdGVwYWdlKHdiYywgcGFnZSk7CisJdW5sb2NrX3BhZ2UocGFnZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19leHQ0X2pvdXJuYWxsZWRfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAorCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQoreworCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gcGFnZS0+bWFwcGluZzsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKnBhZ2VfYnVmczsKIAloYW5kbGVfdCAqaGFuZGxlID0gTlVMTDsKIAlpbnQgcmV0ID0gMDsKIAlpbnQgZXJyOwogCi0JSl9BU1NFUlQoUGFnZUxvY2tlZChwYWdlKSk7CisJcmV0ID0gYmxvY2tfcHJlcGFyZV93cml0ZShwYWdlLCAwLCBQQUdFX0NBQ0hFX1NJWkUsCisJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSk7CisJaWYgKHJldCAhPSAwKQorCQlnb3RvIG91dF91bmxvY2s7CiAKLQkvKgotCSAqIFdlIGdpdmUgdXAgaGVyZSBpZiB3ZSdyZSByZWVudGVyZWQsIGJlY2F1c2UgaXQgbWlnaHQgYmUgZm9yIGEKLQkgKiBkaWZmZXJlbnQgZmlsZXN5c3RlbS4KLQkgKi8KLQlpZiAoZXh0NF9qb3VybmFsX2N1cnJlbnRfaGFuZGxlKCkpCi0JCWdvdG8gb3V0X2ZhaWw7Ci0KLQloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIGV4dDRfd3JpdGVwYWdlX3RyYW5zX2Jsb2Nrcyhpbm9kZSkpOwotCi0JaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0JCXJldCA9IFBUUl9FUlIoaGFuZGxlKTsKLQkJZ290byBvdXRfZmFpbDsKLQl9Ci0KLQlpZiAoIXBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsKLQkJY3JlYXRlX2VtcHR5X2J1ZmZlcnMocGFnZSwgaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplLAotCQkJCSgxIDw8IEJIX0RpcnR5KXwoMSA8PCBCSF9VcHRvZGF0ZSkpOwotCX0KIAlwYWdlX2J1ZnMgPSBwYWdlX2J1ZmZlcnMocGFnZSk7Ci0Jd2Fsa19wYWdlX2J1ZmZlcnMoaGFuZGxlLCBwYWdlX2J1ZnMsIDAsCi0JCQlQQUdFX0NBQ0hFX1NJWkUsIE5VTEwsIGJnZXRfb25lKTsKLQotCXJldCA9IGJsb2NrX3dyaXRlX2Z1bGxfcGFnZShwYWdlLCBleHQ0X2dldF9ibG9jaywgd2JjKTsKLQotCS8qCi0JICogVGhlIHBhZ2UgY2FuIGJlY29tZSB1bmxvY2tlZCBhdCBhbnkgcG9pbnQgbm93LCBhbmQKLQkgKiB0cnVuY2F0ZSBjYW4gdGhlbiBjb21lIGluIGFuZCBjaGFuZ2UgdGhpbmdzLiAgU28gd2UKLQkgKiBjYW4ndCB0b3VjaCAqcGFnZSBmcm9tIG5vdyBvbi4gIEJ1dCAqcGFnZV9idWZzIGlzCi0JICogc2FmZSBkdWUgdG8gZWxldmF0ZWQgcmVmY291bnQuCi0JICovCi0KLQkvKgotCSAqIEFuZCBhdHRhY2ggdGhlbSB0byB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4gIEJ1dCBvbmx5IGlmCi0JICogYmxvY2tfd3JpdGVfZnVsbF9wYWdlKCkgc3VjY2VlZGVkLiAgT3RoZXJ3aXNlIHRoZXkgYXJlIHVubWFwcGVkLAotCSAqIGFuZCBnZW5lcmFsbHkganVuay4KLQkgKi8KLQlpZiAocmV0ID09IDApIHsKLQkJZXJyID0gd2Fsa19wYWdlX2J1ZmZlcnMoaGFuZGxlLCBwYWdlX2J1ZnMsIDAsIFBBR0VfQ0FDSEVfU0laRSwKLQkJCQkJTlVMTCwgamJkMl9qb3VybmFsX2RpcnR5X2RhdGFfZm4pOwotCQlpZiAoIXJldCkKLQkJCXJldCA9IGVycjsKLQl9Ci0Jd2Fsa19wYWdlX2J1ZmZlcnMoaGFuZGxlLCBwYWdlX2J1ZnMsIDAsCi0JCQlQQUdFX0NBQ0hFX1NJWkUsIE5VTEwsIGJwdXRfb25lKTsKLQllcnIgPSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwotCWlmICghcmV0KQotCQlyZXQgPSBlcnI7Ci0JcmV0dXJuIHJldDsKLQotb3V0X2ZhaWw6Ci0JcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwl3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmcywgMCwgUEFHRV9DQUNIRV9TSVpFLCBOVUxMLAorCQkJCQkJCQliZ2V0X29uZSk7CisJLyogQXMgc29vbiBhcyB3ZSB1bmxvY2sgdGhlIHBhZ2UsIGl0IGNhbiBnbyBhd2F5LCBidXQgd2UgaGF2ZQorCSAqIHJlZmVyZW5jZXMgdG8gYnVmZmVycyBzbyB3ZSBhcmUgc2FmZSAqLwogCXVubG9ja19wYWdlKHBhZ2UpOwotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgZXh0NF93cml0ZWJhY2tfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAotCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQotewotCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OwotCWhhbmRsZV90ICpoYW5kbGUgPSBOVUxMOwotCWludCByZXQgPSAwOwotCWludCBlcnI7Ci0KLQlpZiAoZXh0NF9qb3VybmFsX2N1cnJlbnRfaGFuZGxlKCkpCi0JCWdvdG8gb3V0X2ZhaWw7CiAKIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIGV4dDRfd3JpdGVwYWdlX3RyYW5zX2Jsb2Nrcyhpbm9kZSkpOwogCWlmIChJU19FUlIoaGFuZGxlKSkgewogCQlyZXQgPSBQVFJfRVJSKGhhbmRsZSk7Ci0JCWdvdG8gb3V0X2ZhaWw7CisJCWdvdG8gb3V0OwogCX0KIAotCWlmICh0ZXN0X29wdChpbm9kZS0+aV9zYiwgTk9CSCkgJiYgZXh0NF9zaG91bGRfd3JpdGViYWNrX2RhdGEoaW5vZGUpKQotCQlyZXQgPSBub2JoX3dyaXRlcGFnZShwYWdlLCBleHQ0X2dldF9ibG9jaywgd2JjKTsKLQllbHNlCi0JCXJldCA9IGJsb2NrX3dyaXRlX2Z1bGxfcGFnZShwYWdlLCBleHQ0X2dldF9ibG9jaywgd2JjKTsKKwlyZXQgPSB3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmcywgMCwKKwkJCVBBR0VfQ0FDSEVfU0laRSwgTlVMTCwgZG9fam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKTsKIAorCWVyciA9IHdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZzLCAwLAorCQkJCVBBR0VfQ0FDSEVfU0laRSwgTlVMTCwgd3JpdGVfZW5kX2ZuKTsKKwlpZiAocmV0ID09IDApCisJCXJldCA9IGVycjsKIAllcnIgPSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwogCWlmICghcmV0KQogCQlyZXQgPSBlcnI7Ci0JcmV0dXJuIHJldDsKIAotb3V0X2ZhaWw6Ci0JcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwl3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmcywgMCwKKwkJCQlQQUdFX0NBQ0hFX1NJWkUsIE5VTEwsIGJwdXRfb25lKTsKKwlFWFQ0X0koaW5vZGUpLT5pX3N0YXRlIHw9IEVYVDRfU1RBVEVfSkRBVEE7CisJZ290byBvdXQ7CisKK291dF91bmxvY2s6CiAJdW5sb2NrX3BhZ2UocGFnZSk7CitvdXQ6CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTYyNCw1OSArMjYxOSw1MyBAQAogCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OwotCWhhbmRsZV90ICpoYW5kbGUgPSBOVUxMOwotCWludCByZXQgPSAwOwotCWludCBlcnI7CisJbG9mZl90IHNpemUgPSBpX3NpemVfcmVhZChpbm9kZSk7CisJbG9mZl90IGxlbjsKKworCUpfQVNTRVJUKFBhZ2VMb2NrZWQocGFnZSkpOworCWlmIChwYWdlLT5pbmRleCA9PSBzaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpCisJCWxlbiA9IHNpemUgJiB+UEFHRV9DQUNIRV9NQVNLOworCWVsc2UKKwkJbGVuID0gUEFHRV9DQUNIRV9TSVpFOworCisJaWYgKHBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsKKwkJLyogaWYgcGFnZSBoYXMgYnVmZmVycyBpdCBzaG91bGQgYWxsIGJlIG1hcHBlZAorCQkgKiBhbmQgYWxsb2NhdGVkLiBJZiB0aGVyZSBhcmUgbm90IGJ1ZmZlcnMgYXR0YWNoZWQKKwkJICogdG8gdGhlIHBhZ2Ugd2Uga25vdyB0aGUgcGFnZSBpcyBkaXJ0eSBidXQgaXQgbG9zdAorCQkgKiBidWZmZXJzLiBUaGF0IG1lYW5zIHRoYXQgYXQgc29tZSBtb21lbnQgaW4gdGltZQorCQkgKiBhZnRlciB3cml0ZV9iZWdpbigpIC8gd3JpdGVfZW5kKCkgaGFzIGJlZW4gY2FsbGVkCisJCSAqIGFsbCBidWZmZXJzIGhhdmUgYmVlbiBjbGVhbiBhbmQgdGh1cyB0aGV5IG11c3QgaGF2ZSBiZWVuCisJCSAqIHdyaXR0ZW4gYXQgbGVhc3Qgb25jZS4gU28gdGhleSBhcmUgYWxsIG1hcHBlZCBhbmQgd2UgY2FuCisJCSAqIGhhcHBpbHkgcHJvY2VlZCB3aXRoIG1hcHBpbmcgdGhlbSBhbmQgd3JpdGluZyB0aGUgcGFnZS4KKwkJICovCisJCUJVR19PTih3YWxrX3BhZ2VfYnVmZmVycyhOVUxMLCBwYWdlX2J1ZmZlcnMocGFnZSksIDAsIGxlbiwgTlVMTCwKKwkJCQkJZXh0NF9iaF91bm1hcHBlZF9vcl9kZWxheSkpOworCX0KIAogCWlmIChleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKSkKIAkJZ290byBub193cml0ZTsKIAotCWhhbmRsZSA9IGV4dDRfam91cm5hbF9zdGFydChpbm9kZSwgZXh0NF93cml0ZXBhZ2VfdHJhbnNfYmxvY2tzKGlub2RlKSk7Ci0JaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0JCXJldCA9IFBUUl9FUlIoaGFuZGxlKTsKLQkJZ290byBub193cml0ZTsKLQl9Ci0KLQlpZiAoIXBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkgfHwgUGFnZUNoZWNrZWQocGFnZSkpIHsKKwlpZiAoUGFnZUNoZWNrZWQocGFnZSkpIHsKIAkJLyoKIAkJICogSXQncyBtbWFwcGVkIHBhZ2VjYWNoZS4gIEFkZCBidWZmZXJzIGFuZCBqb3VybmFsIGl0LiAgVGhlcmUKIAkJICogZG9lc24ndCBzZWVtIG11Y2ggcG9pbnQgaW4gcmVkaXJ0eWluZyB0aGUgcGFnZSBoZXJlLgogCQkgKi8KIAkJQ2xlYXJQYWdlQ2hlY2tlZChwYWdlKTsKLQkJcmV0ID0gYmxvY2tfcHJlcGFyZV93cml0ZShwYWdlLCAwLCBQQUdFX0NBQ0hFX1NJWkUsCi0JCQkJCWV4dDRfZ2V0X2Jsb2NrKTsKLQkJaWYgKHJldCAhPSAwKSB7Ci0JCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwotCQkJZ290byBvdXRfdW5sb2NrOwotCQl9Ci0JCXJldCA9IHdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZmZXJzKHBhZ2UpLCAwLAotCQkJUEFHRV9DQUNIRV9TSVpFLCBOVUxMLCBkb19qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MpOwotCi0JCWVyciA9IHdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZmZXJzKHBhZ2UpLCAwLAotCQkJCVBBR0VfQ0FDSEVfU0laRSwgTlVMTCwgd3JpdGVfZW5kX2ZuKTsKLQkJaWYgKHJldCA9PSAwKQotCQkJcmV0ID0gZXJyOwotCQlFWFQ0X0koaW5vZGUpLT5pX3N0YXRlIHw9IEVYVDRfU1RBVEVfSkRBVEE7Ci0JCXVubG9ja19wYWdlKHBhZ2UpOworCQlyZXR1cm4gX19leHQ0X2pvdXJuYWxsZWRfd3JpdGVwYWdlKHBhZ2UsIHdiYyk7CiAJfSBlbHNlIHsKIAkJLyoKIAkJICogSXQgbWF5IGJlIGEgcGFnZSBmdWxsIG9mIGNoZWNrcG9pbnQtbW9kZSBidWZmZXJzLiAgV2UgZG9uJ3QKIAkJICogcmVhbGx5IGtub3cgdW5sZXNzIHdlIGdvIHBva2UgYXJvdW5kIGluIHRoZSBidWZmZXJfaGVhZHMuCiAJCSAqIEJ1dCBibG9ja193cml0ZV9mdWxsX3BhZ2Ugd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAJCSAqLwotCQlyZXQgPSBibG9ja193cml0ZV9mdWxsX3BhZ2UocGFnZSwgZXh0NF9nZXRfYmxvY2ssIHdiYyk7CisJCXJldHVybiBibG9ja193cml0ZV9mdWxsX3BhZ2UocGFnZSwKKwkJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSwKKwkJCQkJCXdiYyk7CiAJfQotCWVyciA9IGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7Ci0JaWYgKCFyZXQpCi0JCXJldCA9IGVycjsKLW91dDoKLQlyZXR1cm4gcmV0OwotCiBub193cml0ZToKIAlyZWRpcnR5X3BhZ2VfZm9yX3dyaXRlcGFnZSh3YmMsIHBhZ2UpOwotb3V0X3VubG9jazoKIAl1bmxvY2tfcGFnZShwYWdlKTsKLQlnb3RvIG91dDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBleHQ0X3JlYWRwYWdlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKQEAgLTE4MTksNyArMjgwOCw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBleHQ0X29yZGVyZWRfYW9wcyA9IHsKIAkucmVhZHBhZ2UJPSBleHQ0X3JlYWRwYWdlLAogCS5yZWFkcGFnZXMJPSBleHQ0X3JlYWRwYWdlcywKLQkud3JpdGVwYWdlCT0gZXh0NF9vcmRlcmVkX3dyaXRlcGFnZSwKKwkud3JpdGVwYWdlCT0gZXh0NF9ub3JtYWxfd3JpdGVwYWdlLAogCS5zeW5jX3BhZ2UJPSBibG9ja19zeW5jX3BhZ2UsCiAJLndyaXRlX2JlZ2luCT0gZXh0NF93cml0ZV9iZWdpbiwKIAkud3JpdGVfZW5kCT0gZXh0NF9vcmRlcmVkX3dyaXRlX2VuZCwKQEAgLTE4MzMsNyArMjgyMiw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBleHQ0X3dyaXRlYmFja19hb3BzID0gewogCS5yZWFkcGFnZQk9IGV4dDRfcmVhZHBhZ2UsCiAJLnJlYWRwYWdlcwk9IGV4dDRfcmVhZHBhZ2VzLAotCS53cml0ZXBhZ2UJPSBleHQ0X3dyaXRlYmFja193cml0ZXBhZ2UsCisJLndyaXRlcGFnZQk9IGV4dDRfbm9ybWFsX3dyaXRlcGFnZSwKIAkuc3luY19wYWdlCT0gYmxvY2tfc3luY19wYWdlLAogCS53cml0ZV9iZWdpbgk9IGV4dDRfd3JpdGVfYmVnaW4sCiAJLndyaXRlX2VuZAk9IGV4dDRfd3JpdGViYWNrX3dyaXRlX2VuZCwKQEAgLTE4NTcsMTAgKzI4NDYsMzEgQEAKIAkucmVsZWFzZXBhZ2UJPSBleHQ0X3JlbGVhc2VwYWdlLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgZXh0NF9kYV9hb3BzID0geworCS5yZWFkcGFnZQk9IGV4dDRfcmVhZHBhZ2UsCisJLnJlYWRwYWdlcwk9IGV4dDRfcmVhZHBhZ2VzLAorCS53cml0ZXBhZ2UJPSBleHQ0X2RhX3dyaXRlcGFnZSwKKwkud3JpdGVwYWdlcwk9IGV4dDRfZGFfd3JpdGVwYWdlcywKKwkuc3luY19wYWdlCT0gYmxvY2tfc3luY19wYWdlLAorCS53cml0ZV9iZWdpbgk9IGV4dDRfZGFfd3JpdGVfYmVnaW4sCisJLndyaXRlX2VuZAk9IGV4dDRfZGFfd3JpdGVfZW5kLAorCS5ibWFwCQk9IGV4dDRfYm1hcCwKKwkuaW52YWxpZGF0ZXBhZ2UJPSBleHQ0X2RhX2ludmFsaWRhdGVwYWdlLAorCS5yZWxlYXNlcGFnZQk9IGV4dDRfcmVsZWFzZXBhZ2UsCisJLmRpcmVjdF9JTwk9IGV4dDRfZGlyZWN0X0lPLAorCS5taWdyYXRlcGFnZQk9IGJ1ZmZlcl9taWdyYXRlX3BhZ2UsCit9OworCiB2b2lkIGV4dDRfc2V0X2FvcHMoc3RydWN0IGlub2RlICppbm9kZSkKIHsKLQlpZiAoZXh0NF9zaG91bGRfb3JkZXJfZGF0YShpbm9kZSkpCisJaWYgKGV4dDRfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpICYmCisJCXRlc3Rfb3B0KGlub2RlLT5pX3NiLCBERUxBTExPQykpCisJCWlub2RlLT5pX21hcHBpbmctPmFfb3BzID0gJmV4dDRfZGFfYW9wczsKKwllbHNlIGlmIChleHQ0X3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkKIAkJaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZXh0NF9vcmRlcmVkX2FvcHM7CisJZWxzZSBpZiAoZXh0NF9zaG91bGRfd3JpdGViYWNrX2RhdGEoaW5vZGUpICYmCisJCSB0ZXN0X29wdChpbm9kZS0+aV9zYiwgREVMQUxMT0MpKQorCQlpbm9kZS0+aV9tYXBwaW5nLT5hX29wcyA9ICZleHQ0X2RhX2FvcHM7CiAJZWxzZSBpZiAoZXh0NF9zaG91bGRfd3JpdGViYWNrX2RhdGEoaW5vZGUpKQogCQlpbm9kZS0+aV9tYXBwaW5nLT5hX29wcyA9ICZleHQ0X3dyaXRlYmFja19hb3BzOwogCWVsc2UKQEAgLTE4NzMsNyArMjg4Myw3IEBACiAgKiBUaGlzIHJlcXVpcmVkIGR1cmluZyB0cnVuY2F0ZS4gV2UgbmVlZCB0byBwaHlzaWNhbGx5IHplcm8gdGhlIHRhaWwgZW5kCiAgKiBvZiB0aGF0IGJsb2NrIHNvIGl0IGRvZXNuJ3QgeWllbGQgb2xkIGRhdGEgaWYgdGhlIGZpbGUgaXMgbGF0ZXIgZ3Jvd24uCiAgKi8KLWludCBleHQ0X2Jsb2NrX3RydW5jYXRlX3BhZ2UoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsCitpbnQgZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZV90ICpoYW5kbGUsCiAJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgZnJvbSkKIHsKIAlleHQ0X2ZzYmxrX3QgaW5kZXggPSBmcm9tID4+IFBBR0VfQ0FDSEVfU0hJRlQ7CkBAIC0xODgyLDggKzI4OTIsMTMgQEAKIAlleHQ0X2xibGtfdCBpYmxvY2s7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAlpbnQgZXJyID0gMDsKIAorCXBhZ2UgPSBncmFiX2NhY2hlX3BhZ2UobWFwcGluZywgZnJvbSA+PiBQQUdFX0NBQ0hFX1NISUZUKTsKKwlpZiAoIXBhZ2UpCisJCXJldHVybiAtRUlOVkFMOworCiAJYmxvY2tzaXplID0gaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplOwogCWxlbmd0aCA9IGJsb2Nrc2l6ZSAtIChvZmZzZXQgJiAoYmxvY2tzaXplIC0gMSkpOwogCWlibG9jayA9IGluZGV4IDw8IChQQUdFX0NBQ0hFX1NISUZUIC0gaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplX2JpdHMpOwpAQCAtMTk1Niw3ICsyOTcxLDcgQEAKIAkJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgYmgpOwogCX0gZWxzZSB7CiAJCWlmIChleHQ0X3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkKLQkJCWVyciA9IGV4dDRfam91cm5hbF9kaXJ0eV9kYXRhKGhhbmRsZSwgYmgpOworCQkJZXJyID0gZXh0NF9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlLCBpbm9kZSk7CiAJCW1hcmtfYnVmZmVyX2RpcnR5KGJoKTsKIAl9CiAKQEAgLTIxNzksNyArMzE5NCwyMSBAQAogCiAJaWYgKHRoaXNfYmgpIHsKIAkJQlVGRkVSX1RSQUNFKHRoaXNfYmgsICJjYWxsIGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YSIpOwotCQlleHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoaGFuZGxlLCB0aGlzX2JoKTsKKworCQkvKgorCQkgKiBUaGUgYnVmZmVyIGhlYWQgc2hvdWxkIGhhdmUgYW4gYXR0YWNoZWQgam91cm5hbCBoZWFkIGF0IHRoaXMKKwkJICogcG9pbnQuIEhvd2V2ZXIsIGlmIHRoZSBkYXRhIGlzIGNvcnJ1cHRlZCBhbmQgYW4gaW5kaXJlY3QKKwkJICogYmxvY2sgcG9pbnRlZCB0byBpdHNlbGYsIGl0IHdvdWxkIGhhdmUgYmVlbiBkZXRhY2hlZCB3aGVuCisJCSAqIHRoZSBibG9jayB3YXMgY2xlYXJlZC4gQ2hlY2sgZm9yIHRoaXMgaW5zdGVhZCBvZiBPT1BTaW5nLgorCQkgKi8KKwkJaWYgKGJoMmpoKHRoaXNfYmgpKQorCQkJZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgdGhpc19iaCk7CisJCWVsc2UKKwkJCWV4dDRfZXJyb3IoaW5vZGUtPmlfc2IsIF9fZnVuY19fLAorCQkJCSAgICJjaXJjdWxhciBpbmRpcmVjdCBibG9jayBkZXRlY3RlZCwgIgorCQkJCSAgICJpbm9kZT0lbHUsIGJsb2NrPSVsbHUiLAorCQkJCSAgIGlub2RlLT5pX2lubywKKwkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSB0aGlzX2JoLT5iX2Jsb2NrbnIpOwogCX0KIH0KIApAQCAtMjMwNSw2ICszMzM0LDE5IEBACiAJfQogfQogCitpbnQgZXh0NF9jYW5fdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlpZiAoSVNfQVBQRU5EKGlub2RlKSB8fCBJU19JTU1VVEFCTEUoaW5vZGUpKQorCQlyZXR1cm4gMDsKKwlpZiAoU19JU1JFRyhpbm9kZS0+aV9tb2RlKSkKKwkJcmV0dXJuIDE7CisJaWYgKFNfSVNESVIoaW5vZGUtPmlfbW9kZSkpCisJCXJldHVybiAxOworCWlmIChTX0lTTE5LKGlub2RlLT5pX21vZGUpKQorCQlyZXR1cm4gIWV4dDRfaW5vZGVfaXNfZmFzdF9zeW1saW5rKGlub2RlKTsKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIGV4dDRfdHJ1bmNhdGUoKQogICoKQEAgLTIzNDcsNTEgKzMzODksMjUgQEAKIAlpbnQgbjsKIAlleHQ0X2xibGtfdCBsYXN0X2Jsb2NrOwogCXVuc2lnbmVkIGJsb2Nrc2l6ZSA9IGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZTsKLQlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAotCWlmICghKFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkgfHwgU19JU0RJUihpbm9kZS0+aV9tb2RlKSB8fAotCSAgICBTX0lTTE5LKGlub2RlLT5pX21vZGUpKSkKKwlpZiAoIWV4dDRfY2FuX3RydW5jYXRlKGlub2RlKSkKIAkJcmV0dXJuOwotCWlmIChleHQ0X2lub2RlX2lzX2Zhc3Rfc3ltbGluayhpbm9kZSkpCi0JCXJldHVybjsKLQlpZiAoSVNfQVBQRU5EKGlub2RlKSB8fCBJU19JTU1VVEFCTEUoaW5vZGUpKQotCQlyZXR1cm47Ci0KLQkvKgotCSAqIFdlIGhhdmUgdG8gbG9jayB0aGUgRU9GIHBhZ2UgaGVyZSwgYmVjYXVzZSBsb2NrX3BhZ2UoKSBuZXN0cwotCSAqIG91dHNpZGUgamJkMl9qb3VybmFsX3N0YXJ0KCkuCi0JICovCi0JaWYgKChpbm9kZS0+aV9zaXplICYgKGJsb2Nrc2l6ZSAtIDEpKSA9PSAwKSB7Ci0JCS8qIEJsb2NrIGJvdW5kYXJ5PyBOb3RoaW5nIHRvIGRvICovCi0JCXBhZ2UgPSBOVUxMOwotCX0gZWxzZSB7Ci0JCXBhZ2UgPSBncmFiX2NhY2hlX3BhZ2UobWFwcGluZywKLQkJCQlpbm9kZS0+aV9zaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpOwotCQlpZiAoIXBhZ2UpCi0JCQlyZXR1cm47Ci0JfQogCiAJaWYgKEVYVDRfSShpbm9kZSktPmlfZmxhZ3MgJiBFWFQ0X0VYVEVOVFNfRkwpIHsKLQkJZXh0NF9leHRfdHJ1bmNhdGUoaW5vZGUsIHBhZ2UpOworCQlleHQ0X2V4dF90cnVuY2F0ZShpbm9kZSk7CiAJCXJldHVybjsKIAl9CiAKIAloYW5kbGUgPSBzdGFydF90cmFuc2FjdGlvbihpbm9kZSk7Ci0JaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0JCWlmIChwYWdlKSB7Ci0JCQljbGVhcl9oaWdocGFnZShwYWdlKTsKLQkJCWZsdXNoX2RjYWNoZV9wYWdlKHBhZ2UpOwotCQkJdW5sb2NrX3BhZ2UocGFnZSk7Ci0JCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7Ci0JCX0KKwlpZiAoSVNfRVJSKGhhbmRsZSkpCiAJCXJldHVybjsJCS8qIEFLUE06IHJldHVybiB3aGF0PyAqLwotCX0KIAogCWxhc3RfYmxvY2sgPSAoaW5vZGUtPmlfc2l6ZSArIGJsb2Nrc2l6ZS0xKQogCQkJCQk+PiBFWFQ0X0JMT0NLX1NJWkVfQklUUyhpbm9kZS0+aV9zYik7CiAKLQlpZiAocGFnZSkKLQkJZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZSwgcGFnZSwgbWFwcGluZywgaW5vZGUtPmlfc2l6ZSk7CisJaWYgKGlub2RlLT5pX3NpemUgJiAoYmxvY2tzaXplIC0gMSkpCisJCWlmIChleHQ0X2Jsb2NrX3RydW5jYXRlX3BhZ2UoaGFuZGxlLCBtYXBwaW5nLCBpbm9kZS0+aV9zaXplKSkKKwkJCWdvdG8gb3V0X3N0b3A7CiAKIAluID0gZXh0NF9ibG9ja190b19wYXRoKGlub2RlLCBsYXN0X2Jsb2NrLCBvZmZzZXRzLCBOVUxMKTsKIAlpZiAobiA9PSAwKQpAQCAtMjQxMCw2ICszNDI2LDExIEBACiAJCWdvdG8gb3V0X3N0b3A7CiAKIAkvKgorCSAqIEZyb20gaGVyZSB3ZSBibG9jayBvdXQgYWxsIGV4dDRfZ2V0X2Jsb2NrKCkgY2FsbGVycyB3aG8gd2FudCB0bworCSAqIG1vZGlmeSB0aGUgYmxvY2sgYWxsb2NhdGlvbiB0cmVlLgorCSAqLworCWRvd25fd3JpdGUoJmVpLT5pX2RhdGFfc2VtKTsKKwkvKgogCSAqIFRoZSBvcnBoYW4gbGlzdCBlbnRyeSB3aWxsIG5vdyBwcm90ZWN0IHVzIGZyb20gYW55IGNyYXNoIHdoaWNoCiAJICogb2NjdXJzIGJlZm9yZSB0aGUgdHJ1bmNhdGUgY29tcGxldGVzLCBzbyBpdCBpcyBub3cgc2FmZSB0byBwcm9wYWdhdGUKIAkgKiB0aGUgbmV3LCBzaG9ydGVyIGlub2RlIHNpemUgKGhlbGQgZm9yIG5vdyBpbiBpX3NpemUpIGludG8gdGhlCkBAIC0yNDE4LDEyICszNDM5LDYgQEAKIAkgKi8KIAllaS0+aV9kaXNrc2l6ZSA9IGlub2RlLT5pX3NpemU7CiAKLQkvKgotCSAqIEZyb20gaGVyZSB3ZSBibG9jayBvdXQgYWxsIGV4dDRfZ2V0X2Jsb2NrKCkgY2FsbGVycyB3aG8gd2FudCB0bwotCSAqIG1vZGlmeSB0aGUgYmxvY2sgYWxsb2NhdGlvbiB0cmVlLgotCSAqLwotCWRvd25fd3JpdGUoJmVpLT5pX2RhdGFfc2VtKTsKLQogCWlmIChuID09IDEpIHsJCS8qIGRpcmVjdCBibG9ja3MgKi8KIAkJZXh0NF9mcmVlX2RhdGEoaGFuZGxlLCBpbm9kZSwgTlVMTCwgaV9kYXRhK29mZnNldHNbMF0sCiAJCQkgICAgICAgaV9kYXRhICsgRVhUNF9ORElSX0JMT0NLUyk7CkBAIC0zMTA3LDcgKzQxMjIsMTQgQEAKICAqIGJlIGZyZWVkLCBzbyB3ZSBoYXZlIGEgc3Ryb25nIGd1YXJhbnRlZSB0aGF0IG5vIGZ1dHVyZSBjb21taXQgd2lsbAogICogbGVhdmUgdGhlc2UgYmxvY2tzIHZpc2libGUgdG8gdGhlIHVzZXIuKQogICoKLSAqIENhbGxlZCB3aXRoIGlub2RlLT5zZW0gZG93bi4KKyAqIEFub3RoZXIgdGhpbmcgd2UgaGF2ZSB0byBhc3N1cmUgaXMgdGhhdCBpZiB3ZSBhcmUgaW4gb3JkZXJlZCBtb2RlCisgKiBhbmQgaW5vZGUgaXMgc3RpbGwgYXR0YWNoZWQgdG8gdGhlIGNvbW1pdHRpbmcgdHJhbnNhY3Rpb24sIHdlIG11c3QKKyAqIHdlIHN0YXJ0IHdyaXRlb3V0IG9mIGFsbCB0aGUgZGlydHkgcGFnZXMgd2hpY2ggYXJlIGJlaW5nIHRydW5jYXRlZC4KKyAqIFRoaXMgd2F5IHdlIGFyZSBzdXJlIHRoYXQgYWxsIHRoZSBkYXRhIHdyaXR0ZW4gaW4gdGhlIHByZXZpb3VzCisgKiB0cmFuc2FjdGlvbiBhcmUgYWxyZWFkeSBvbiBkaXNrICh0cnVuY2F0ZSB3YWl0cyBmb3IgcGFnZXMgdW5kZXIKKyAqIHdyaXRlYmFjaykuCisgKgorICogQ2FsbGVkIHdpdGggaW5vZGUtPmlfbXV0ZXggZG93bi4KICAqLwogaW50IGV4dDRfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAqYXR0cikKIHsKQEAgLTMxNzMsNiArNDE5NSwyMiBAQAogCQlpZiAoIWVycm9yKQogCQkJZXJyb3IgPSByYzsKIAkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKKworCQlpZiAoZXh0NF9zaG91bGRfb3JkZXJfZGF0YShpbm9kZSkpIHsKKwkJCWVycm9yID0gZXh0NF9iZWdpbl9vcmRlcmVkX3RydW5jYXRlKGlub2RlLAorCQkJCQkJCSAgICBhdHRyLT5pYV9zaXplKTsKKwkJCWlmIChlcnJvcikgeworCQkJCS8qIERvIGFzIG11Y2ggZXJyb3IgY2xlYW51cCBhcyBwb3NzaWJsZSAqLworCQkJCWhhbmRsZSA9IGV4dDRfam91cm5hbF9zdGFydChpbm9kZSwgMyk7CisJCQkJaWYgKElTX0VSUihoYW5kbGUpKSB7CisJCQkJCWV4dDRfb3JwaGFuX2RlbChOVUxMLCBpbm9kZSk7CisJCQkJCWdvdG8gZXJyX291dDsKKwkJCQl9CisJCQkJZXh0NF9vcnBoYW5fZGVsKGhhbmRsZSwgaW5vZGUpOworCQkJCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CisJCQkJZ290byBlcnJfb3V0OworCQkJfQorCQl9CiAJfQogCiAJcmMgPSBpbm9kZV9zZXRhdHRyKGlub2RlLCBhdHRyKTsKQEAgLTMxOTMsNiArNDIzMSwzMiBAQAogCXJldHVybiBlcnJvcjsKIH0KIAoraW50IGV4dDRfZ2V0YXR0cihzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkgc3RydWN0IGtzdGF0ICpzdGF0KQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CisJdW5zaWduZWQgbG9uZyBkZWxhbGxvY19ibG9ja3M7CisKKwlpbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKKwlnZW5lcmljX2ZpbGxhdHRyKGlub2RlLCBzdGF0KTsKKworCS8qCisJICogV2UgY2FuJ3QgdXBkYXRlIGlfYmxvY2tzIGlmIHRoZSBibG9jayBhbGxvY2F0aW9uIGlzIGRlbGF5ZWQKKwkgKiBvdGhlcndpc2UgaW4gdGhlIGNhc2Ugb2Ygc3lzdGVtIGNyYXNoIGJlZm9yZSB0aGUgcmVhbCBibG9jaworCSAqIGFsbG9jYXRpb24gaXMgZG9uZSwgd2Ugd2lsbCBoYXZlIGlfYmxvY2tzIGluY29uc2lzdGVudCB3aXRoCisJICogb24tZGlzayBmaWxlIGJsb2Nrcy4KKwkgKiBXZSBhbHdheXMga2VlcCBpX2Jsb2NrcyB1cGRhdGVkIHRvZ2V0aGVyIHdpdGggcmVhbAorCSAqIGFsbG9jYXRpb24uIEJ1dCB0byBub3QgY29uZnVzZSB3aXRoIHVzZXIsIHN0YXQKKwkgKiB3aWxsIHJldHVybiB0aGUgYmxvY2tzIHRoYXQgaW5jbHVkZSB0aGUgZGVsYXllZCBhbGxvY2F0aW9uCisJICogYmxvY2tzIGZvciB0aGlzIGZpbGUuCisJICovCisJc3Bpbl9sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCWRlbGFsbG9jX2Jsb2NrcyA9IEVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfZGF0YV9ibG9ja3M7CisJc3Bpbl91bmxvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7CisKKwlzdGF0LT5ibG9ja3MgKz0gKGRlbGFsbG9jX2Jsb2NrcyA8PCBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemVfYml0cyk+Pjk7CisJcmV0dXJuIDA7Cit9CiAKIC8qCiAgKiBIb3cgbWFueSBibG9ja3MgZG90aCBtYWtlIGEgd3JpdGVwYWdlKCk/CkBAIC0zNTA2LDMgKzQ1NzAsNjQgQEAKIAogCXJldHVybiBlcnI7CiB9CisKK3N0YXRpYyBpbnQgZXh0NF9iaF91bm1hcHBlZChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQoreworCXJldHVybiAhYnVmZmVyX21hcHBlZChiaCk7Cit9CisKK2ludCBleHQ0X3BhZ2VfbWt3cml0ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UpCit7CisJbG9mZl90IHNpemU7CisJdW5zaWduZWQgbG9uZyBsZW47CisJaW50IHJldCA9IC1FSU5WQUw7CisJc3RydWN0IGZpbGUgKmZpbGUgPSB2bWEtPnZtX2ZpbGU7CisJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBpbm9kZS0+aV9tYXBwaW5nOworCisJLyoKKwkgKiBHZXQgaV9hbGxvY19zZW0gdG8gc3RvcCB0cnVuY2F0ZXMgbWVzc2luZyB3aXRoIHRoZSBpbm9kZS4gV2UgY2Fubm90CisJICogZ2V0IGlfbXV0ZXggYmVjYXVzZSB3ZSBhcmUgYWxyZWFkeSBob2xkaW5nIG1tYXBfc2VtLgorCSAqLworCWRvd25fcmVhZCgmaW5vZGUtPmlfYWxsb2Nfc2VtKTsKKwlzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCWlmIChwYWdlLT5tYXBwaW5nICE9IG1hcHBpbmcgfHwgc2l6ZSA8PSBwYWdlX29mZnNldChwYWdlKQorCSAgICB8fCAhUGFnZVVwdG9kYXRlKHBhZ2UpKSB7CisJCS8qIHBhZ2UgZ290IHRydW5jYXRlZCBmcm9tIHVuZGVyIHVzPyAqLworCQlnb3RvIG91dF91bmxvY2s7CisJfQorCXJldCA9IDA7CisJaWYgKFBhZ2VNYXBwZWRUb0Rpc2socGFnZSkpCisJCWdvdG8gb3V0X3VubG9jazsKKworCWlmIChwYWdlLT5pbmRleCA9PSBzaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpCisJCWxlbiA9IHNpemUgJiB+UEFHRV9DQUNIRV9NQVNLOworCWVsc2UKKwkJbGVuID0gUEFHRV9DQUNIRV9TSVpFOworCisJaWYgKHBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsKKwkJLyogcmV0dXJuIGlmIHdlIGhhdmUgYWxsIHRoZSBidWZmZXJzIG1hcHBlZCAqLworCQlpZiAoIXdhbGtfcGFnZV9idWZmZXJzKE5VTEwsIHBhZ2VfYnVmZmVycyhwYWdlKSwgMCwgbGVuLCBOVUxMLAorCQkJCSAgICAgICBleHQ0X2JoX3VubWFwcGVkKSkKKwkJCWdvdG8gb3V0X3VubG9jazsKKwl9CisJLyoKKwkgKiBPSywgd2UgbmVlZCB0byBmaWxsIHRoZSBob2xlLi4uIERvIHdyaXRlX2JlZ2luIHdyaXRlX2VuZAorCSAqIHRvIGRvIGJsb2NrIGFsbG9jYXRpb24vcmVzZXJ2YXRpb24uV2UgYXJlIG5vdCBob2xkaW5nCisJICogaW5vZGUuaV9fbXV0ZXggaGVyZS4gVGhhdCBhbGxvdyAqIHBhcmFsbGVsIHdyaXRlX2JlZ2luLAorCSAqIHdyaXRlX2VuZCBjYWxsLiBsb2NrX3BhZ2UgcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nCisJICogb24gdGhlIHNhbWUgcGFnZSB0aG91Z2gKKwkgKi8KKwlyZXQgPSBtYXBwaW5nLT5hX29wcy0+d3JpdGVfYmVnaW4oZmlsZSwgbWFwcGluZywgcGFnZV9vZmZzZXQocGFnZSksCisJCQlsZW4sIEFPUF9GTEFHX1VOSU5URVJSVVBUSUJMRSwgJnBhZ2UsIE5VTEwpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIG91dF91bmxvY2s7CisJcmV0ID0gbWFwcGluZy0+YV9vcHMtPndyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwYWdlX29mZnNldChwYWdlKSwKKwkJCWxlbiwgbGVuLCBwYWdlLCBOVUxMKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfdW5sb2NrOworCXJldCA9IDA7CitvdXRfdW5sb2NrOgorCXVwX3JlYWQoJmlub2RlLT5pX2FsbG9jX3NlbSk7CisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvbWJhbGxvYy5jIGIvZnMvZXh0NC9tYmFsbG9jLmMKaW5kZXggYzk5MDBhYS4uOGQxNDFhMiAxMDA2NDQKLS0tIGEvZnMvZXh0NC9tYmFsbG9jLmMKKysrIGIvZnMvZXh0NC9tYmFsbG9jLmMKQEAgLTM4MSwyMiArMzgxLDI4IEBACiAKIHN0YXRpYyBpbmxpbmUgaW50IG1iX2ZpbmRfbmV4dF96ZXJvX2JpdCh2b2lkICphZGRyLCBpbnQgbWF4LCBpbnQgc3RhcnQpCiB7Ci0JaW50IGZpeCA9IDA7CisJaW50IGZpeCA9IDAsIHJldCwgdG1wbWF4OwogCWFkZHIgPSBtYl9jb3JyZWN0X2FkZHJfYW5kX2JpdCgmZml4LCBhZGRyKTsKLQltYXggKz0gZml4OworCXRtcG1heCA9IG1heCArIGZpeDsKIAlzdGFydCArPSBmaXg7CiAKLQlyZXR1cm4gZXh0NF9maW5kX25leHRfemVyb19iaXQoYWRkciwgbWF4LCBzdGFydCkgLSBmaXg7CisJcmV0ID0gZXh0NF9maW5kX25leHRfemVyb19iaXQoYWRkciwgdG1wbWF4LCBzdGFydCkgLSBmaXg7CisJaWYgKHJldCA+IG1heCkKKwkJcmV0dXJuIG1heDsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW5saW5lIGludCBtYl9maW5kX25leHRfYml0KHZvaWQgKmFkZHIsIGludCBtYXgsIGludCBzdGFydCkKIHsKLQlpbnQgZml4ID0gMDsKKwlpbnQgZml4ID0gMCwgcmV0LCB0bXBtYXg7CiAJYWRkciA9IG1iX2NvcnJlY3RfYWRkcl9hbmRfYml0KCZmaXgsIGFkZHIpOwotCW1heCArPSBmaXg7CisJdG1wbWF4ID0gbWF4ICsgZml4OwogCXN0YXJ0ICs9IGZpeDsKIAotCXJldHVybiBleHQ0X2ZpbmRfbmV4dF9iaXQoYWRkciwgbWF4LCBzdGFydCkgLSBmaXg7CisJcmV0ID0gZXh0NF9maW5kX25leHRfYml0KGFkZHIsIHRtcG1heCwgc3RhcnQpIC0gZml4OworCWlmIChyZXQgPiBtYXgpCisJCXJldHVybiBtYXg7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgKm1iX2ZpbmRfYnVkZHkoc3RydWN0IGV4dDRfYnVkZHkgKmU0YiwgaW50IG9yZGVyLCBpbnQgKm1heCkKQEAgLTgwMyw2ICs4MDksNyBAQAogCQlpZiAoIWJ1ZmZlcl91cHRvZGF0ZShiaFtpXSkpCiAJCQlnb3RvIG91dDsKIAorCWVyciA9IDA7CiAJZmlyc3RfYmxvY2sgPSBwYWdlLT5pbmRleCAqIGJsb2Nrc19wZXJfcGFnZTsKIAlmb3IgKGkgPSAwOyBpIDwgYmxvY2tzX3Blcl9wYWdlOyBpKyspIHsKIAkJaW50IGdyb3VwOwpAQCAtODgzLDYgKzg5MCw3IEBACiAJaW50IHBudW07CiAJaW50IHBvZmY7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CisJaW50IHJldDsKIAogCW1iX2RlYnVnKCJsb2FkIGdyb3VwICVsdVxuIiwgZ3JvdXApOwogCkBAIC05MTQsMTUgKzkyMiwyMSBAQAogCQlpZiAocGFnZSkgewogCQkJQlVHX09OKHBhZ2UtPm1hcHBpbmcgIT0gaW5vZGUtPmlfbWFwcGluZyk7CiAJCQlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSkgewotCQkJCWV4dDRfbWJfaW5pdF9jYWNoZShwYWdlLCBOVUxMKTsKKwkJCQlyZXQgPSBleHQ0X21iX2luaXRfY2FjaGUocGFnZSwgTlVMTCk7CisJCQkJaWYgKHJldCkgeworCQkJCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJCQkJZ290byBlcnI7CisJCQkJfQogCQkJCW1iX2NtcF9iaXRtYXBzKGU0YiwgcGFnZV9hZGRyZXNzKHBhZ2UpICsKIAkJCQkJICAgICAgIChwb2ZmICogc2ItPnNfYmxvY2tzaXplKSk7CiAJCQl9CiAJCQl1bmxvY2tfcGFnZShwYWdlKTsKIAkJfQogCX0KLQlpZiAocGFnZSA9PSBOVUxMIHx8ICFQYWdlVXB0b2RhdGUocGFnZSkpCisJaWYgKHBhZ2UgPT0gTlVMTCB8fCAhUGFnZVVwdG9kYXRlKHBhZ2UpKSB7CisJCXJldCA9IC1FSU87CiAJCWdvdG8gZXJyOworCX0KIAllNGItPmJkX2JpdG1hcF9wYWdlID0gcGFnZTsKIAllNGItPmJkX2JpdG1hcCA9IHBhZ2VfYWRkcmVzcyhwYWdlKSArIChwb2ZmICogc2ItPnNfYmxvY2tzaXplKTsKIAltYXJrX3BhZ2VfYWNjZXNzZWQocGFnZSk7CkBAIC05MzgsMTQgKzk1MiwyMCBAQAogCQlwYWdlID0gZmluZF9vcl9jcmVhdGVfcGFnZShpbm9kZS0+aV9tYXBwaW5nLCBwbnVtLCBHRlBfTk9GUyk7CiAJCWlmIChwYWdlKSB7CiAJCQlCVUdfT04ocGFnZS0+bWFwcGluZyAhPSBpbm9kZS0+aV9tYXBwaW5nKTsKLQkJCWlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKQotCQkJCWV4dDRfbWJfaW5pdF9jYWNoZShwYWdlLCBlNGItPmJkX2JpdG1hcCk7Ci0KKwkJCWlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKSB7CisJCQkJcmV0ID0gZXh0NF9tYl9pbml0X2NhY2hlKHBhZ2UsIGU0Yi0+YmRfYml0bWFwKTsKKwkJCQlpZiAocmV0KSB7CisJCQkJCXVubG9ja19wYWdlKHBhZ2UpOworCQkJCQlnb3RvIGVycjsKKwkJCQl9CisJCQl9CiAJCQl1bmxvY2tfcGFnZShwYWdlKTsKIAkJfQogCX0KLQlpZiAocGFnZSA9PSBOVUxMIHx8ICFQYWdlVXB0b2RhdGUocGFnZSkpCisJaWYgKHBhZ2UgPT0gTlVMTCB8fCAhUGFnZVVwdG9kYXRlKHBhZ2UpKSB7CisJCXJldCA9IC1FSU87CiAJCWdvdG8gZXJyOworCX0KIAllNGItPmJkX2J1ZGR5X3BhZ2UgPSBwYWdlOwogCWU0Yi0+YmRfYnVkZHkgPSBwYWdlX2FkZHJlc3MocGFnZSkgKyAocG9mZiAqIHNiLT5zX2Jsb2Nrc2l6ZSk7CiAJbWFya19wYWdlX2FjY2Vzc2VkKHBhZ2UpOwpAQCAtOTYyLDcgKzk4Miw3IEBACiAJCXBhZ2VfY2FjaGVfcmVsZWFzZShlNGItPmJkX2J1ZGR5X3BhZ2UpOwogCWU0Yi0+YmRfYnVkZHkgPSBOVUxMOwogCWU0Yi0+YmRfYml0bWFwID0gTlVMTDsKLQlyZXR1cm4gLUVJTzsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCBleHQ0X21iX3JlbGVhc2VfZGVzYyhzdHJ1Y3QgZXh0NF9idWRkeSAqZTRiKQpAQCAtMTAzMSw3ICsxMDUxLDcgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgbWJfZnJlZV9ibG9ja3Moc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGV4dDRfYnVkZHkgKmU0YiwKK3N0YXRpYyB2b2lkIG1iX2ZyZWVfYmxvY2tzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBleHQ0X2J1ZGR5ICplNGIsCiAJCQkgIGludCBmaXJzdCwgaW50IGNvdW50KQogewogCWludCBibG9jayA9IDA7CkBAIC0xMDcxLDExICsxMDkxLDEyIEBACiAJCQlibG9ja25yICs9IGJsb2NrOwogCQkJYmxvY2tuciArPQogCQkJICAgIGxlMzJfdG9fY3B1KEVYVDRfU0Ioc2IpLT5zX2VzLT5zX2ZpcnN0X2RhdGFfYmxvY2spOwotCisJCQlleHQ0X3VubG9ja19ncm91cChzYiwgZTRiLT5iZF9ncm91cCk7CiAJCQlleHQ0X2Vycm9yKHNiLCBfX2Z1bmNfXywgImRvdWJsZS1mcmVlIG9mIGlub2RlIgogCQkJCSAgICIgJWx1J3MgYmxvY2sgJWxsdShiaXQgJXUgaW4gZ3JvdXAgJWx1KVxuIiwKIAkJCQkgICBpbm9kZSA/IGlub2RlLT5pX2lubyA6IDAsIGJsb2NrbnIsIGJsb2NrLAogCQkJCSAgIGU0Yi0+YmRfZ3JvdXApOworCQkJZXh0NF9sb2NrX2dyb3VwKHNiLCBlNGItPmJkX2dyb3VwKTsKIAkJfQogCQltYl9jbGVhcl9iaXQoYmxvY2ssIEVYVDRfTUJfQklUTUFQKGU0YikpOwogCQllNGItPmJkX2luZm8tPmJiX2NvdW50ZXJzW29yZGVyXSsrOwpAQCAtMTExMyw4ICsxMTM0LDYgQEAKIAkJfSB3aGlsZSAoMSk7CiAJfQogCW1iX2NoZWNrX2J1ZGR5KGU0Yik7Ci0KLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBtYl9maW5kX2V4dGVudChzdHJ1Y3QgZXh0NF9idWRkeSAqZTRiLCBpbnQgb3JkZXIsIGludCBibG9jaywKQEAgLTE3MzAsMTAgKzE3NDksNiBAQAogCQlhYy0+YWNfZ19leC5mZV9zdGFydCA9IHNiaS0+c19tYl9sYXN0X3N0YXJ0OwogCQlzcGluX3VubG9jaygmc2JpLT5zX21kX2xvY2spOwogCX0KLQotCS8qIHNlYXJjaGluZyBmb3IgdGhlIHJpZ2h0IGdyb3VwIHN0YXJ0IGZyb20gdGhlIGdvYWwgdmFsdWUgc3BlY2lmaWVkICovCi0JZ3JvdXAgPSBhYy0+YWNfZ19leC5mZV9ncm91cDsKLQogCS8qIExldCdzIGp1c3Qgc2NhbiBncm91cHMgdG8gZmluZCBtb3JlLWxlc3Mgc3VpdGFibGUgYmxvY2tzICovCiAJY3IgPSBhYy0+YWNfMm9yZGVyID8gMCA6IDE7CiAJLyoKQEAgLTE3NDMsNiArMTc1OCwxMiBAQAogcmVwZWF0OgogCWZvciAoOyBjciA8IDQgJiYgYWMtPmFjX3N0YXR1cyA9PSBBQ19TVEFUVVNfQ09OVElOVUU7IGNyKyspIHsKIAkJYWMtPmFjX2NyaXRlcmlhID0gY3I7CisJCS8qCisJCSAqIHNlYXJjaGluZyBmb3IgdGhlIHJpZ2h0IGdyb3VwIHN0YXJ0CisJCSAqIGZyb20gdGhlIGdvYWwgdmFsdWUgc3BlY2lmaWVkCisJCSAqLworCQlncm91cCA9IGFjLT5hY19nX2V4LmZlX2dyb3VwOworCiAJCWZvciAoaSA9IDA7IGkgPCBFWFQ0X1NCKHNiKS0+c19ncm91cHNfY291bnQ7IGdyb3VwKyssIGkrKykgewogCQkJc3RydWN0IGV4dDRfZ3JvdXBfaW5mbyAqZ3JwOwogCQkJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYzsKQEAgLTE5NjMsNiArMTk4NCw4IEBACiAJaW50IHJjOwogCWludCBzaXplOwogCisJaWYgKHVubGlrZWx5KHNiaS0+c19tYl9oaXN0b3J5ID09IE5VTEwpKQorCQlyZXR1cm4gLUVOT01FTTsKIAlzID0ga21hbGxvYyhzaXplb2YoKnMpLCBHRlBfS0VSTkVMKTsKIAlpZiAocyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTIxNjUsOSArMjE4OCw3IEBACiAJc2JpLT5zX21iX2hpc3RvcnlfY3VyID0gMDsKIAlzcGluX2xvY2tfaW5pdCgmc2JpLT5zX21iX2hpc3RvcnlfbG9jayk7CiAJaSA9IHNiaS0+c19tYl9oaXN0b3J5X21heCAqIHNpemVvZihzdHJ1Y3QgZXh0NF9tYl9oaXN0b3J5KTsKLQlzYmktPnNfbWJfaGlzdG9yeSA9IGttYWxsb2MoaSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKGxpa2VseShzYmktPnNfbWJfaGlzdG9yeSAhPSBOVUxMKSkKLQkJbWVtc2V0KHNiaS0+c19tYl9oaXN0b3J5LCAwLCBpKTsKKwlzYmktPnNfbWJfaGlzdG9yeSA9IGt6YWxsb2MoaSwgR0ZQX0tFUk5FTCk7CiAJLyogaWYgd2UgY2FuJ3QgYWxsb2NhdGUgaGlzdG9yeSwgdGhlbiB3ZSBzaW1wbGUgd29uJ3QgdXNlIGl0ICovCiB9CiAKQEAgLTIyMTUsMjEgKzIyMzYsMTkyIEBACiAjZGVmaW5lIGV4dDRfbWJfaGlzdG9yeV9pbml0KHNiKQogI2VuZGlmCiAKKworLyogQ3JlYXRlIGFuZCBpbml0aWFsaXplIGV4dDRfZ3JvdXBfaW5mbyBkYXRhIGZvciB0aGUgZ2l2ZW4gZ3JvdXAuICovCitpbnQgZXh0NF9tYl9hZGRfZ3JvdXBpbmZvKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGV4dDRfZ3JvdXBfdCBncm91cCwKKwkJCSAgc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYykKK3sKKwlpbnQgaSwgbGVuOworCWludCBtZXRhbGVuID0gMDsKKwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKKwlzdHJ1Y3QgZXh0NF9ncm91cF9pbmZvICoqbWV0YV9ncm91cF9pbmZvOworCisJLyoKKwkgKiBGaXJzdCBjaGVjayBpZiB0aGlzIGdyb3VwIGlzIHRoZSBmaXJzdCBvZiBhIHJlc2VydmVkIGJsb2NrLgorCSAqIElmIGl0J3MgdHJ1ZSwgd2UgaGF2ZSB0byBhbGxvY2F0ZSBhIG5ldyB0YWJsZSBvZiBwb2ludGVycworCSAqIHRvIGV4dDRfZ3JvdXBfaW5mbyBzdHJ1Y3R1cmVzCisJICovCisJaWYgKGdyb3VwICUgRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgPT0gMCkgeworCQltZXRhbGVuID0gc2l6ZW9mKCptZXRhX2dyb3VwX2luZm8pIDw8CisJCQlFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpOworCQltZXRhX2dyb3VwX2luZm8gPSBrbWFsbG9jKG1ldGFsZW4sIEdGUF9LRVJORUwpOworCQlpZiAobWV0YV9ncm91cF9pbmZvID09IE5VTEwpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogY2FuJ3QgYWxsb2NhdGUgbWVtIGZvciBhICIKKwkJCSAgICAgICAiYnVkZHkgZ3JvdXBcbiIpOworCQkJZ290byBleGl0X21ldGFfZ3JvdXBfaW5mbzsKKwkJfQorCQlzYmktPnNfZ3JvdXBfaW5mb1tncm91cCA+PiBFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpXSA9CisJCQltZXRhX2dyb3VwX2luZm87CisJfQorCisJLyoKKwkgKiBjYWxjdWxhdGUgbmVlZGVkIHNpemUuIGlmIGNoYW5nZSBiYl9jb3VudGVycyBzaXplLAorCSAqIGRvbid0IGZvcmdldCBhYm91dCBleHQ0X21iX2dlbmVyYXRlX2J1ZGR5KCkKKwkgKi8KKwlsZW4gPSBvZmZzZXRvZih0eXBlb2YoKiptZXRhX2dyb3VwX2luZm8pLAorCQkgICAgICAgYmJfY291bnRlcnNbc2ItPnNfYmxvY2tzaXplX2JpdHMgKyAyXSk7CisKKwltZXRhX2dyb3VwX2luZm8gPQorCQlzYmktPnNfZ3JvdXBfaW5mb1tncm91cCA+PiBFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpXTsKKwlpID0gZ3JvdXAgJiAoRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgLSAxKTsKKworCW1ldGFfZ3JvdXBfaW5mb1tpXSA9IGt6YWxsb2MobGVuLCBHRlBfS0VSTkVMKTsKKwlpZiAobWV0YV9ncm91cF9pbmZvW2ldID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBjYW4ndCBhbGxvY2F0ZSBidWRkeSBtZW1cbiIpOworCQlnb3RvIGV4aXRfZ3JvdXBfaW5mbzsKKwl9CisJc2V0X2JpdChFWFQ0X0dST1VQX0lORk9fTkVFRF9JTklUX0JJVCwKKwkJJihtZXRhX2dyb3VwX2luZm9baV0tPmJiX3N0YXRlKSk7CisKKwkvKgorCSAqIGluaXRpYWxpemUgYmJfZnJlZSB0byBiZSBhYmxlIHRvIHNraXAKKwkgKiBlbXB0eSBncm91cHMgd2l0aG91dCBpbml0aWFsaXphdGlvbgorCSAqLworCWlmIChkZXNjLT5iZ19mbGFncyAmIGNwdV90b19sZTE2KEVYVDRfQkdfQkxPQ0tfVU5JTklUKSkgeworCQltZXRhX2dyb3VwX2luZm9baV0tPmJiX2ZyZWUgPQorCQkJZXh0NF9mcmVlX2Jsb2Nrc19hZnRlcl9pbml0KHNiLCBncm91cCwgZGVzYyk7CisJfSBlbHNlIHsKKwkJbWV0YV9ncm91cF9pbmZvW2ldLT5iYl9mcmVlID0KKwkJCWxlMTZfdG9fY3B1KGRlc2MtPmJnX2ZyZWVfYmxvY2tzX2NvdW50KTsKKwl9CisKKwlJTklUX0xJU1RfSEVBRCgmbWV0YV9ncm91cF9pbmZvW2ldLT5iYl9wcmVhbGxvY19saXN0KTsKKworI2lmZGVmIERPVUJMRV9DSEVDSworCXsKKwkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKKwkJbWV0YV9ncm91cF9pbmZvW2ldLT5iYl9iaXRtYXAgPQorCQkJa21hbGxvYyhzYi0+c19ibG9ja3NpemUsIEdGUF9LRVJORUwpOworCQlCVUdfT04obWV0YV9ncm91cF9pbmZvW2ldLT5iYl9iaXRtYXAgPT0gTlVMTCk7CisJCWJoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXApOworCQlCVUdfT04oYmggPT0gTlVMTCk7CisJCW1lbWNweShtZXRhX2dyb3VwX2luZm9baV0tPmJiX2JpdG1hcCwgYmgtPmJfZGF0YSwKKwkJCXNiLT5zX2Jsb2Nrc2l6ZSk7CisJCXB1dF9iaChiaCk7CisJfQorI2VuZGlmCisKKwlyZXR1cm4gMDsKKworZXhpdF9ncm91cF9pbmZvOgorCS8qIElmIGEgbWV0YV9ncm91cF9pbmZvIHRhYmxlIGhhcyBiZWVuIGFsbG9jYXRlZCwgcmVsZWFzZSBpdCBub3cgKi8KKwlpZiAoZ3JvdXAgJSBFWFQ0X0RFU0NfUEVSX0JMT0NLKHNiKSA9PSAwKQorCQlrZnJlZShzYmktPnNfZ3JvdXBfaW5mb1tncm91cCA+PiBFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpXSk7CitleGl0X21ldGFfZ3JvdXBfaW5mbzoKKwlyZXR1cm4gLUVOT01FTTsKK30gLyogZXh0NF9tYl9hZGRfZ3JvdXBpbmZvICovCisKKy8qCisgKiBBZGQgYSBncm91cCB0byB0aGUgZXhpc3RpbmcgZ3JvdXBzLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGZvciBvbmxpbmUgcmVzaXplCisgKi8KK2ludCBleHQ0X21iX2FkZF9tb3JlX2dyb3VwaW5mbyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBleHQ0X2dyb3VwX3QgZ3JvdXAsCisJCQkgICAgICAgc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYykKK3sKKwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gc2JpLT5zX2J1ZGR5X2NhY2hlOworCWludCBibG9ja3NfcGVyX3BhZ2U7CisJaW50IGJsb2NrOworCWludCBwbnVtOworCXN0cnVjdCBwYWdlICpwYWdlOworCWludCBlcnI7CisKKwkvKiBBZGQgZ3JvdXAgYmFzZWQgb24gZ3JvdXAgZGVzY3JpcHRvciovCisJZXJyID0gZXh0NF9tYl9hZGRfZ3JvdXBpbmZvKHNiLCBncm91cCwgZGVzYyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCS8qCisJICogQ2FjaGUgcGFnZXMgY29udGFpbmluZyBkeW5hbWljIG1iX2FsbG9jIGRhdGFzIChidWRkeSBhbmQgYml0bWFwCisJICogZGF0YXMpIGFyZSBzZXQgbm90IHVwIHRvIGRhdGUgc28gdGhhdCB0aGV5IHdpbGwgYmUgcmUtaW5pdGlsYWl6ZWQKKwkgKiBkdXJpbmcgdGhlIG5leHQgY2FsbCB0byBleHQ0X21iX2xvYWRfYnVkZHkKKwkgKi8KKworCS8qIFNldCBidWRkeSBwYWdlIGFzIG5vdCB1cCB0byBkYXRlICovCisJYmxvY2tzX3Blcl9wYWdlID0gUEFHRV9DQUNIRV9TSVpFIC8gc2ItPnNfYmxvY2tzaXplOworCWJsb2NrID0gZ3JvdXAgKiAyOworCXBudW0gPSBibG9jayAvIGJsb2Nrc19wZXJfcGFnZTsKKwlwYWdlID0gZmluZF9nZXRfcGFnZShpbm9kZS0+aV9tYXBwaW5nLCBwbnVtKTsKKwlpZiAocGFnZSAhPSBOVUxMKSB7CisJCUNsZWFyUGFnZVVwdG9kYXRlKHBhZ2UpOworCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CisJfQorCisJLyogU2V0IGJpdG1hcCBwYWdlIGFzIG5vdCB1cCB0byBkYXRlICovCisJYmxvY2srKzsKKwlwbnVtID0gYmxvY2sgLyBibG9ja3NfcGVyX3BhZ2U7CisJcGFnZSA9IGZpbmRfZ2V0X3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgcG51bSk7CisJaWYgKHBhZ2UgIT0gTlVMTCkgeworCQlDbGVhclBhZ2VVcHRvZGF0ZShwYWdlKTsKKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogVXBkYXRlIGFuIGV4aXN0aW5nIGdyb3VwLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGZvciBvbmxpbmUgcmVzaXplCisgKi8KK3ZvaWQgZXh0NF9tYl91cGRhdGVfZ3JvdXBfaW5mbyhzdHJ1Y3QgZXh0NF9ncm91cF9pbmZvICpncnAsIGV4dDRfZ3JwYmxrX3QgYWRkKQoreworCWdycC0+YmJfZnJlZSArPSBhZGQ7Cit9CisKIHN0YXRpYyBpbnQgZXh0NF9tYl9pbml0X2JhY2tlbmQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlleHQ0X2dyb3VwX3QgaTsKLQlpbnQgaiwgbGVuLCBtZXRhbGVuOworCWludCBtZXRhbGVuOwogCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IEVYVDRfU0Ioc2IpOwotCWludCBudW1fbWV0YV9ncm91cF9pbmZvcyA9Ci0JCShzYmktPnNfZ3JvdXBzX2NvdW50ICsgRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgLSAxKSA+PgotCQkJRVhUNF9ERVNDX1BFUl9CTE9DS19CSVRTKHNiKTsKKwlzdHJ1Y3QgZXh0NF9zdXBlcl9ibG9jayAqZXMgPSBzYmktPnNfZXM7CisJaW50IG51bV9tZXRhX2dyb3VwX2luZm9zOworCWludCBudW1fbWV0YV9ncm91cF9pbmZvc19tYXg7CisJaW50IGFycmF5X3NpemU7CiAJc3RydWN0IGV4dDRfZ3JvdXBfaW5mbyAqKm1ldGFfZ3JvdXBfaW5mbzsKKwlzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpkZXNjOwogCisJLyogVGhpcyBpcyB0aGUgbnVtYmVyIG9mIGJsb2NrcyB1c2VkIGJ5IEdEVCAqLworCW51bV9tZXRhX2dyb3VwX2luZm9zID0gKHNiaS0+c19ncm91cHNfY291bnQgKyBFWFQ0X0RFU0NfUEVSX0JMT0NLKHNiKSAtCisJCQkJMSkgPj4gRVhUNF9ERVNDX1BFUl9CTE9DS19CSVRTKHNiKTsKKworCS8qCisJICogVGhpcyBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIGJsb2NrcyB1c2VkIGJ5IEdEVCBpbmNsdWRpbmcKKwkgKiB0aGUgbnVtYmVyIG9mIHJlc2VydmVkIGJsb2NrcyBmb3IgR0RULgorCSAqIFRoZSBzX2dyb3VwX2luZm8gYXJyYXkgaXMgYWxsb2NhdGVkIHdpdGggdGhpcyB2YWx1ZQorCSAqIHRvIGFsbG93IGEgY2xlYW4gb25saW5lIHJlc2l6ZSB3aXRob3V0IGEgY29tcGxleAorCSAqIG1hbmlwdWxhdGlvbiBvZiBwb2ludGVyLgorCSAqIFRoZSBkcmF3YmFjayBpcyB0aGUgdW51c2VkIG1lbW9yeSB3aGVuIG5vIHJlc2l6ZQorCSAqIG9jY3VycyBidXQgaXQncyB2ZXJ5IGxvdyBpbiB0ZXJtcyBvZiBwYWdlcworCSAqIChzZWUgY29tbWVudHMgYmVsb3cpCisJICogTmVlZCB0byBoYW5kbGUgdGhpcyBwcm9wZXJseSB3aGVuIE1FVEFfQkcgcmVzaXppbmcgaXMgYWxsb3dlZAorCSAqLworCW51bV9tZXRhX2dyb3VwX2luZm9zX21heCA9IG51bV9tZXRhX2dyb3VwX2luZm9zICsKKwkJCQlsZTE2X3RvX2NwdShlcy0+c19yZXNlcnZlZF9nZHRfYmxvY2tzKTsKKworCS8qCisJICogYXJyYXlfc2l6ZSBpcyB0aGUgc2l6ZSBvZiBzX2dyb3VwX2luZm8gYXJyYXkuIFdlIHJvdW5kIGl0CisJICogdG8gdGhlIG5leHQgcG93ZXIgb2YgdHdvIGJlY2F1c2UgdGhpcyBhcHByb3hpbWF0aW9uIGlzIGRvbmUKKwkgKiBpbnRlcm5hbGx5IGJ5IGttYWxsb2Mgc28gd2UgY2FuIGhhdmUgc29tZSBtb3JlIG1lbW9yeQorCSAqIGZvciBmcmVlIGhlcmUgKGUuZy4gbWF5IGJlIHVzZWQgZm9yIE1FVEFfQkcgcmVzaXplKS4KKwkgKi8KKwlhcnJheV9zaXplID0gMTsKKwl3aGlsZSAoYXJyYXlfc2l6ZSA8IHNpemVvZigqc2JpLT5zX2dyb3VwX2luZm8pICoKKwkgICAgICAgbnVtX21ldGFfZ3JvdXBfaW5mb3NfbWF4KQorCQlhcnJheV9zaXplID0gYXJyYXlfc2l6ZSA8PCAxOwogCS8qIEFuIDhUQiBmaWxlc3lzdGVtIHdpdGggNjQtYml0IHBvaW50ZXJzIHJlcXVpcmVzIGEgNDA5NiBieXRlCiAJICoga21hbGxvYy4gQSAxMjhrYiBtYWxsb2Mgc2hvdWxkIHN1ZmZpY2UgZm9yIGEgMjU2VEIgZmlsZXN5c3RlbS4KIAkgKiBTbyBhIHR3byBsZXZlbCBzY2hlbWUgc3VmZmljZXMgZm9yIG5vdy4gKi8KLQlzYmktPnNfZ3JvdXBfaW5mbyA9IGttYWxsb2Moc2l6ZW9mKCpzYmktPnNfZ3JvdXBfaW5mbykgKgotCQkJCSAgICBudW1fbWV0YV9ncm91cF9pbmZvcywgR0ZQX0tFUk5FTCk7CisJc2JpLT5zX2dyb3VwX2luZm8gPSBrbWFsbG9jKGFycmF5X3NpemUsIEdGUF9LRVJORUwpOwogCWlmIChzYmktPnNfZ3JvdXBfaW5mbyA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogY2FuJ3QgYWxsb2NhdGUgYnVkZHkgbWV0YSBncm91cFxuIik7CiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMjI1Niw2MyArMjQ0OCwxNSBAQAogCQlzYmktPnNfZ3JvdXBfaW5mb1tpXSA9IG1ldGFfZ3JvdXBfaW5mbzsKIAl9CiAKLQkvKgotCSAqIGNhbGN1bGF0ZSBuZWVkZWQgc2l6ZS4gaWYgY2hhbmdlIGJiX2NvdW50ZXJzIHNpemUsCi0JICogZG9uJ3QgZm9yZ2V0IGFib3V0IGV4dDRfbWJfZ2VuZXJhdGVfYnVkZHkoKQotCSAqLwotCWxlbiA9IHNpemVvZihzdHJ1Y3QgZXh0NF9ncm91cF9pbmZvKTsKLQlsZW4gKz0gc2l6ZW9mKHVuc2lnbmVkIHNob3J0KSAqIChzYi0+c19ibG9ja3NpemVfYml0cyArIDIpOwogCWZvciAoaSA9IDA7IGkgPCBzYmktPnNfZ3JvdXBzX2NvdW50OyBpKyspIHsKLQkJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYzsKLQotCQltZXRhX2dyb3VwX2luZm8gPQotCQkJc2JpLT5zX2dyb3VwX2luZm9baSA+PiBFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpXTsKLQkJaiA9IGkgJiAoRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgLSAxKTsKLQotCQltZXRhX2dyb3VwX2luZm9bal0gPSBremFsbG9jKGxlbiwgR0ZQX0tFUk5FTCk7Ci0JCWlmIChtZXRhX2dyb3VwX2luZm9bal0gPT0gTlVMTCkgewotCQkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBjYW4ndCBhbGxvY2F0ZSBidWRkeSBtZW1cbiIpOwotCQkJZ290byBlcnJfZnJlZWJ1ZGR5OwotCQl9CiAJCWRlc2MgPSBleHQ0X2dldF9ncm91cF9kZXNjKHNiLCBpLCBOVUxMKTsKIAkJaWYgKGRlc2MgPT0gTlVMTCkgewogCQkJcHJpbnRrKEtFUk5fRVJSCiAJCQkJIkVYVDQtZnM6IGNhbid0IHJlYWQgZGVzY3JpcHRvciAlbHVcbiIsIGkpOwotCQkJaSsrOwogCQkJZ290byBlcnJfZnJlZWJ1ZGR5OwogCQl9Ci0JCW1lbXNldChtZXRhX2dyb3VwX2luZm9bal0sIDAsIGxlbik7Ci0JCXNldF9iaXQoRVhUNF9HUk9VUF9JTkZPX05FRURfSU5JVF9CSVQsCi0JCQkmKG1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfc3RhdGUpKTsKLQotCQkvKgotCQkgKiBpbml0aWFsaXplIGJiX2ZyZWUgdG8gYmUgYWJsZSB0byBza2lwCi0JCSAqIGVtcHR5IGdyb3VwcyB3aXRob3V0IGluaXRpYWxpemF0aW9uCi0JCSAqLwotCQlpZiAoZGVzYy0+YmdfZmxhZ3MgJiBjcHVfdG9fbGUxNihFWFQ0X0JHX0JMT0NLX1VOSU5JVCkpIHsKLQkJCW1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfZnJlZSA9Ci0JCQkJZXh0NF9mcmVlX2Jsb2Nrc19hZnRlcl9pbml0KHNiLCBpLCBkZXNjKTsKLQkJfSBlbHNlIHsKLQkJCW1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfZnJlZSA9Ci0JCQkJbGUxNl90b19jcHUoZGVzYy0+YmdfZnJlZV9ibG9ja3NfY291bnQpOwotCQl9Ci0KLQkJSU5JVF9MSVNUX0hFQUQoJm1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfcHJlYWxsb2NfbGlzdCk7Ci0KLSNpZmRlZiBET1VCTEVfQ0hFQ0sKLQkJewotCQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKLQkJCW1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfYml0bWFwID0KLQkJCQlrbWFsbG9jKHNiLT5zX2Jsb2Nrc2l6ZSwgR0ZQX0tFUk5FTCk7Ci0JCQlCVUdfT04obWV0YV9ncm91cF9pbmZvW2pdLT5iYl9iaXRtYXAgPT0gTlVMTCk7Ci0JCQliaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBpKTsKLQkJCUJVR19PTihiaCA9PSBOVUxMKTsKLQkJCW1lbWNweShtZXRhX2dyb3VwX2luZm9bal0tPmJiX2JpdG1hcCwgYmgtPmJfZGF0YSwKLQkJCQkJc2ItPnNfYmxvY2tzaXplKTsKLQkJCXB1dF9iaChiaCk7Ci0JCX0KLSNlbmRpZgotCisJCWlmIChleHQ0X21iX2FkZF9ncm91cGluZm8oc2IsIGksIGRlc2MpICE9IDApCisJCQlnb3RvIGVycl9mcmVlYnVkZHk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0yMzM2LDYgKzI0ODAsNyBAQAogCXVuc2lnbmVkIGk7CiAJdW5zaWduZWQgb2Zmc2V0OwogCXVuc2lnbmVkIG1heDsKKwlpbnQgcmV0OwogCiAJaWYgKCF0ZXN0X29wdChzYiwgTUJBTExPQykpCiAJCXJldHVybiAwOwpAQCAtMjM3MCwxMiArMjUxNSwxMiBAQAogCX0gd2hpbGUgKGkgPD0gc2ItPnNfYmxvY2tzaXplX2JpdHMgKyAxKTsKIAogCS8qIGluaXQgZmlsZSBmb3IgYnVkZHkgZGF0YSAqLwotCWkgPSBleHQ0X21iX2luaXRfYmFja2VuZChzYik7Ci0JaWYgKGkpIHsKKwlyZXQgPSBleHQ0X21iX2luaXRfYmFja2VuZChzYik7CisJaWYgKHJldCAhPSAwKSB7CiAJCWNsZWFyX29wdChzYmktPnNfbW91bnRfb3B0LCBNQkFMTE9DKTsKIAkJa2ZyZWUoc2JpLT5zX21iX29mZnNldHMpOwogCQlrZnJlZShzYmktPnNfbWJfbWF4cyk7Ci0JCXJldHVybiBpOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXNwaW5fbG9ja19pbml0KCZzYmktPnNfbWRfbG9jayk7CkBAIC0yNTQ4LDggKzI2OTMsNyBAQAogCQlleHQ0X2xvY2tfZ3JvdXAoc2IsIG1kLT5ncm91cCk7CiAJCWZvciAoaSA9IDA7IGkgPCBtZC0+bnVtOyBpKyspIHsKIAkJCW1iX2RlYnVnKCIgJXUiLCBtZC0+YmxvY2tzW2ldKTsKLQkJCWVyciA9IG1iX2ZyZWVfYmxvY2tzKE5VTEwsICZlNGIsIG1kLT5ibG9ja3NbaV0sIDEpOwotCQkJQlVHX09OKGVyciAhPSAwKTsKKwkJCW1iX2ZyZWVfYmxvY2tzKE5VTEwsICZlNGIsIG1kLT5ibG9ja3NbaV0sIDEpOwogCQl9CiAJCW1iX2RlYnVnKCJcbiIpOwogCQlleHQ0X3VubG9ja19ncm91cChzYiwgbWQtPmdyb3VwKTsKQEAgLTI1NzUsMjUgKzI3MTksMjQgQEAKIAogCiAKLSNkZWZpbmUgTUJfUFJPQ19WQUxVRV9SRUFEKG5hbWUpCQkJCVwKLXN0YXRpYyBpbnQgZXh0NF9tYl9yZWFkXyMjbmFtZShjaGFyICpwYWdlLCBjaGFyICoqc3RhcnQsCVwKLQkJb2ZmX3Qgb2ZmLCBpbnQgY291bnQsIGludCAqZW9mLCB2b2lkICpkYXRhKQlcCisjZGVmaW5lIE1CX1BST0NfRk9QUyhuYW1lKQkJCQkJXAorc3RhdGljIGludCBleHQ0X21iXyMjbmFtZSMjX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCVwKIHsJCQkJCQkJCVwKLQlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBkYXRhOwkJCVwKLQlpbnQgbGVuOwkJCQkJCVwKLQkqZW9mID0gMTsJCQkJCQlcCi0JaWYgKG9mZiAhPSAwKQkJCQkJCVwKLQkJcmV0dXJuIDA7CQkJCQlcCi0JbGVuID0gc3ByaW50ZihwYWdlLCAiJWxkXG4iLCBzYmktPnNfbWJfIyNuYW1lKTsJCVwKLQkqc3RhcnQgPSBwYWdlOwkJCQkJCVwKLQlyZXR1cm4gbGVuOwkJCQkJCVwKLX0KLQotI2RlZmluZSBNQl9QUk9DX1ZBTFVFX1dSSVRFKG5hbWUpCQkJCVwKLXN0YXRpYyBpbnQgZXh0NF9tYl93cml0ZV8jI25hbWUoc3RydWN0IGZpbGUgKmZpbGUsCQlcCi0JCWNvbnN0IGNoYXIgX191c2VyICpidWYsIHVuc2lnbmVkIGxvbmcgY250LCB2b2lkICpkYXRhKQlcCisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gbS0+cHJpdmF0ZTsJCQlcCisJCQkJCQkJCVwKKwlzZXFfcHJpbnRmKG0sICIlbGRcbiIsIHNiaS0+c19tYl8jI25hbWUpOwkJXAorCXJldHVybiAwOwkJCQkJCVwKK30JCQkJCQkJCVwKKwkJCQkJCQkJXAorc3RhdGljIGludCBleHQ0X21iXyMjbmFtZSMjX3Byb2Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcCiB7CQkJCQkJCQlcCi0Jc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gZGF0YTsJCQlcCisJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIGV4dDRfbWJfIyNuYW1lIyNfcHJvY19zaG93LCBQREUoaW5vZGUpLT5kYXRhKTtcCit9CQkJCQkJCQlcCisJCQkJCQkJCVwKK3N0YXRpYyBzc2l6ZV90IGV4dDRfbWJfIyNuYW1lIyNfcHJvY193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwJXAorCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCVwKK3sJCQkJCQkJCVwKKwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBQREUoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSktPmRhdGE7XAogCWNoYXIgc3RyWzMyXTsJCQkJCQlcCiAJbG9uZyB2YWx1ZTsJCQkJCQlcCiAJaWYgKGNudCA+PSBzaXplb2Yoc3RyKSkJCQkJCVwKQEAgLTI2MDUsMzEgKzI3NDgsMzIgQEAKIAkJcmV0dXJuIC1FUkFOR0U7CQkJCQlcCiAJc2JpLT5zX21iXyMjbmFtZSA9IHZhbHVlOwkJCQlcCiAJcmV0dXJuIGNudDsJCQkJCQlcCi19Cit9CQkJCQkJCQlcCisJCQkJCQkJCVwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGV4dDRfbWJfIyNuYW1lIyNfcHJvY19mb3BzID0gewlcCisJLm93bmVyCQk9IFRISVNfTU9EVUxFLAkJCQlcCisJLm9wZW4JCT0gZXh0NF9tYl8jI25hbWUjI19wcm9jX29wZW4sCQlcCisJLnJlYWQJCT0gc2VxX3JlYWQsCQkJCVwKKwkubGxzZWVrCQk9IHNlcV9sc2VlaywJCQkJXAorCS5yZWxlYXNlCT0gc2luZ2xlX3JlbGVhc2UsCQkJXAorCS53cml0ZQkJPSBleHQ0X21iXyMjbmFtZSMjX3Byb2Nfd3JpdGUsCQlcCit9OwogCi1NQl9QUk9DX1ZBTFVFX1JFQUQoc3RhdHMpOwotTUJfUFJPQ19WQUxVRV9XUklURShzdGF0cyk7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQobWF4X3RvX3NjYW4pOwotTUJfUFJPQ19WQUxVRV9XUklURShtYXhfdG9fc2Nhbik7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQobWluX3RvX3NjYW4pOwotTUJfUFJPQ19WQUxVRV9XUklURShtaW5fdG9fc2Nhbik7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQob3JkZXIyX3JlcXMpOwotTUJfUFJPQ19WQUxVRV9XUklURShvcmRlcjJfcmVxcyk7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQoc3RyZWFtX3JlcXVlc3QpOwotTUJfUFJPQ19WQUxVRV9XUklURShzdHJlYW1fcmVxdWVzdCk7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQoZ3JvdXBfcHJlYWxsb2MpOwotTUJfUFJPQ19WQUxVRV9XUklURShncm91cF9wcmVhbGxvYyk7CitNQl9QUk9DX0ZPUFMoc3RhdHMpOworTUJfUFJPQ19GT1BTKG1heF90b19zY2FuKTsKK01CX1BST0NfRk9QUyhtaW5fdG9fc2Nhbik7CitNQl9QUk9DX0ZPUFMob3JkZXIyX3JlcXMpOworTUJfUFJPQ19GT1BTKHN0cmVhbV9yZXF1ZXN0KTsKK01CX1BST0NfRk9QUyhncm91cF9wcmVhbGxvYyk7CiAKICNkZWZpbmUJTUJfUFJPQ19IQU5ETEVSKG5hbWUsIHZhcikJCQkJCVwKIGRvIHsJCQkJCQkJCQlcCi0JcHJvYyA9IGNyZWF0ZV9wcm9jX2VudHJ5KG5hbWUsIG1vZGUsIHNiaS0+c19tYl9wcm9jKTsJCVwKKwlwcm9jID0gcHJvY19jcmVhdGVfZGF0YShuYW1lLCBtb2RlLCBzYmktPnNfbWJfcHJvYywJCVwKKwkJCQkmZXh0NF9tYl8jI3ZhciMjX3Byb2NfZm9wcywgc2JpKTsJXAogCWlmIChwcm9jID09IE5VTEwpIHsJCQkJCQlcCiAJCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogY2FuJ3QgdG8gY3JlYXRlICVzXG4iLCBuYW1lKTsJXAogCQlnb3RvIGVycl9vdXQ7CQkJCQkJXAogCX0JCQkJCQkJCVwKLQlwcm9jLT5kYXRhID0gc2JpOwkJCQkJCVwKLQlwcm9jLT5yZWFkX3Byb2MgID0gZXh0NF9tYl9yZWFkXyMjdmFyIDsJCQkJXAotCXByb2MtPndyaXRlX3Byb2MgPSBleHQ0X21iX3dyaXRlXyMjdmFyOwkJCQlcCiB9IHdoaWxlICgwKQogCiBzdGF0aWMgaW50IGV4dDRfbWJfaW5pdF9wZXJfZGV2X3Byb2Moc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTI2MzksNiArMjc4MywxMCBAQAogCXN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqcHJvYzsKIAljaGFyIGRldm5hbWVbNjRdOwogCisJaWYgKHByb2Nfcm9vdF9leHQ0ID09IE5VTEwpIHsKKwkJc2JpLT5zX21iX3Byb2MgPSBOVUxMOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAJYmRldm5hbWUoc2ItPnNfYmRldiwgZGV2bmFtZSk7CiAJc2JpLT5zX21iX3Byb2MgPSBwcm9jX21rZGlyKGRldm5hbWUsIHByb2Nfcm9vdF9leHQ0KTsKIApAQCAtMjc0Nyw3ICsyODk1LDcgQEAKIAogCiAJZXJyID0gLUVJTzsKLQliaXRtYXBfYmggPSByZWFkX2Jsb2NrX2JpdG1hcChzYiwgYWMtPmFjX2JfZXguZmVfZ3JvdXApOworCWJpdG1hcF9iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGFjLT5hY19iX2V4LmZlX2dyb3VwKTsKIAlpZiAoIWJpdG1hcF9iaCkKIAkJZ290byBvdXRfZXJyOwogCkBAIC0yODE2LDcgKzI5NjQsMjMgQEAKIAlsZTE2X2FkZF9jcHUoJmdkcC0+YmdfZnJlZV9ibG9ja3NfY291bnQsIC1hYy0+YWNfYl9leC5mZV9sZW4pOwogCWdkcC0+YmdfY2hlY2tzdW0gPSBleHQ0X2dyb3VwX2Rlc2NfY3N1bShzYmksIGFjLT5hY19iX2V4LmZlX2dyb3VwLCBnZHApOwogCXNwaW5fdW5sb2NrKHNiX2JnbF9sb2NrKHNiaSwgYWMtPmFjX2JfZXguZmVfZ3JvdXApKTsKLQlwZXJjcHVfY291bnRlcl9zdWIoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIsIGFjLT5hY19iX2V4LmZlX2xlbik7CisKKwkvKgorCSAqIGZyZWUgYmxvY2tzIGFjY291bnQgaGFzIGFscmVhZHkgYmUgcmVkdWNlZC9yZXNlcnZlZAorCSAqIGF0IHdyaXRlX2JlZ2luKCkgdGltZSBmb3IgZGVsYXllZCBhbGxvY2F0aW9uCisJICogZG8gbm90IGRvdWJsZSBhY2NvdW50aW5nCisJICovCisJaWYgKCEoYWMtPmFjX2ZsYWdzICYgRVhUNF9NQl9ERUxBTExPQ19SRVNFUlZFRCkpCisJCXBlcmNwdV9jb3VudGVyX3N1Yigmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwKKwkJCQkJYWMtPmFjX2JfZXguZmVfbGVuKTsKKworCWlmIChzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleCkgeworCQlleHQ0X2dyb3VwX3QgZmxleF9ncm91cCA9IGV4dDRfZmxleF9ncm91cChzYmksCisJCQkJCQkJICBhYy0+YWNfYl9leC5mZV9ncm91cCk7CisJCXNwaW5fbG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwkJc2JpLT5zX2ZsZXhfZ3JvdXBzW2ZsZXhfZ3JvdXBdLmZyZWVfYmxvY2tzIC09IGFjLT5hY19iX2V4LmZlX2xlbjsKKwkJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJfQogCiAJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgYml0bWFwX2JoKTsKIAlpZiAoZXJyKQpAQCAtMzQ3Myw4ICszNjM3LDYgQEAKIAkJaWYgKGJpdCA+PSBlbmQpCiAJCQlicmVhazsKIAkJbmV4dCA9IG1iX2ZpbmRfbmV4dF9iaXQoYml0bWFwX2JoLT5iX2RhdGEsIGVuZCwgYml0KTsKLQkJaWYgKG5leHQgPiBlbmQpCi0JCQluZXh0ID0gZW5kOwogCQlzdGFydCA9IGdyb3VwICogRVhUNF9CTE9DS1NfUEVSX0dST1VQKHNiKSArIGJpdCArCiAJCQkJbGUzMl90b19jcHUoc2JpLT5zX2VzLT5zX2ZpcnN0X2RhdGFfYmxvY2spOwogCQltYl9kZWJ1ZygiICAgIGZyZWUgcHJlYWxsb2NhdGVkICV1LyV1IGluIGdyb3VwICV1XG4iLApAQCAtMzU2OSw3ICszNzMxLDcgQEAKIAlpZiAobGlzdF9lbXB0eSgmZ3JwLT5iYl9wcmVhbGxvY19saXN0KSkKIAkJcmV0dXJuIDA7CiAKLQliaXRtYXBfYmggPSByZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXApOworCWJpdG1hcF9iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKIAlpZiAoYml0bWFwX2JoID09IE5VTEwpIHsKIAkJLyogZXJyb3IgaGFuZGxpbmcgaGVyZSAqLwogCQlleHQ0X21iX3JlbGVhc2VfZGVzYygmZTRiKTsKQEAgLTM3NDMsNyArMzkwNSw3IEBACiAJCWVyciA9IGV4dDRfbWJfbG9hZF9idWRkeShzYiwgZ3JvdXAsICZlNGIpOwogCQlCVUdfT04oZXJyICE9IDApOyAvKiBlcnJvciBoYW5kbGluZyBoZXJlICovCiAKLQkJYml0bWFwX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKKwkJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXApOwogCQlpZiAoYml0bWFwX2JoID09IE5VTEwpIHsKIAkJCS8qIGVycm9yIGhhbmRsaW5nIGhlcmUgKi8KIAkJCWV4dDRfbWJfcmVsZWFzZV9kZXNjKCZlNGIpOwpAQCAtNDAxMSwxMCArNDE3MywyMSBAQAogCXNiaSA9IEVYVDRfU0Ioc2IpOwogCiAJaWYgKCF0ZXN0X29wdChzYiwgTUJBTExPQykpIHsKLQkJYmxvY2sgPSBleHQ0X25ld19ibG9ja3Nfb2xkKGhhbmRsZSwgYXItPmlub2RlLCBhci0+Z29hbCwKKwkJYmxvY2sgPSBleHQ0X29sZF9uZXdfYmxvY2tzKGhhbmRsZSwgYXItPmlub2RlLCBhci0+Z29hbCwKIAkJCQkJICAgICYoYXItPmxlbiksIGVycnApOwogCQlyZXR1cm4gYmxvY2s7CiAJfQorCWlmICghRVhUNF9JKGFyLT5pbm9kZSktPmlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZykgeworCQkvKgorCQkgKiBXaXRoIGRlbGFsbG9jIHdlIGFscmVhZHkgcmVzZXJ2ZWQgdGhlIGJsb2NrcworCQkgKi8KKwkJYXItPmxlbiA9IGV4dDRfaGFzX2ZyZWVfYmxvY2tzKHNiaSwgYXItPmxlbik7CisJfQorCisJaWYgKGFyLT5sZW4gPT0gMCkgeworCQkqZXJycCA9IC1FTk9TUEM7CisJCXJldHVybiAwOworCX0KIAogCXdoaWxlIChhci0+bGVuICYmIERRVU9UX0FMTE9DX0JMT0NLKGFyLT5pbm9kZSwgYXItPmxlbikpIHsKIAkJYXItPmZsYWdzIHw9IEVYVDRfTUJfSElOVF9OT1BSRUFMTE9DOwpAQCAtNDAyNiwxMCArNDE5OSwxNCBAQAogCX0KIAlpbnF1b3RhID0gYXItPmxlbjsKIAorCWlmIChFWFQ0X0koYXItPmlub2RlKS0+aV9kZWxhbGxvY19yZXNlcnZlZF9mbGFnKQorCQlhci0+ZmxhZ3MgfD0gRVhUNF9NQl9ERUxBTExPQ19SRVNFUlZFRDsKKwogCWFjID0ga21lbV9jYWNoZV9hbGxvYyhleHQ0X2FjX2NhY2hlcCwgR0ZQX05PRlMpOwogCWlmICghYWMpIHsKKwkJYXItPmxlbiA9IDA7CiAJCSplcnJwID0gLUVOT01FTTsKLQkJcmV0dXJuIDA7CisJCWdvdG8gb3V0MTsKIAl9CiAKIAlleHQ0X21iX3BvbGxfbmV3X3RyYW5zYWN0aW9uKHNiLCBoYW5kbGUpOwpAQCAtNDAzNywxMiArNDIxNCwxMSBAQAogCSplcnJwID0gZXh0NF9tYl9pbml0aWFsaXplX2NvbnRleHQoYWMsIGFyKTsKIAlpZiAoKmVycnApIHsKIAkJYXItPmxlbiA9IDA7Ci0JCWdvdG8gb3V0OworCQlnb3RvIG91dDI7CiAJfQogCiAJYWMtPmFjX29wID0gRVhUNF9NQl9ISVNUT1JZX1BSRUFMTE9DOwogCWlmICghZXh0NF9tYl91c2VfcHJlYWxsb2NhdGVkKGFjKSkgewotCiAJCWFjLT5hY19vcCA9IEVYVDRfTUJfSElTVE9SWV9BTExPQzsKIAkJZXh0NF9tYl9ub3JtYWxpemVfcmVxdWVzdChhYywgYXIpOwogcmVwZWF0OgpAQCAtNDA4NSwxMSArNDI2MSwxMiBAQAogCiAJZXh0NF9tYl9yZWxlYXNlX2NvbnRleHQoYWMpOwogCi1vdXQ6CitvdXQyOgorCWttZW1fY2FjaGVfZnJlZShleHQ0X2FjX2NhY2hlcCwgYWMpOworb3V0MToKIAlpZiAoYXItPmxlbiA8IGlucXVvdGEpCiAJCURRVU9UX0ZSRUVfQkxPQ0soYXItPmlub2RlLCBpbnF1b3RhIC0gYXItPmxlbik7CiAKLQlrbWVtX2NhY2hlX2ZyZWUoZXh0NF9hY19jYWNoZXAsIGFjKTsKIAlyZXR1cm4gYmxvY2s7CiB9CiBzdGF0aWMgdm9pZCBleHQ0X21iX3BvbGxfbmV3X3RyYW5zYWN0aW9uKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCkBAIC00MjQyLDcgKzQ0MTksNyBAQAogCQlvdmVyZmxvdyA9IGJpdCArIGNvdW50IC0gRVhUNF9CTE9DS1NfUEVSX0dST1VQKHNiKTsKIAkJY291bnQgLT0gb3ZlcmZsb3c7CiAJfQotCWJpdG1hcF9iaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBibG9ja19ncm91cCk7CisJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgYmxvY2tfZ3JvdXApOwogCWlmICghYml0bWFwX2JoKQogCQlnb3RvIGVycm9yX3JldHVybjsKIAlnZHAgPSBleHQ0X2dldF9ncm91cF9kZXNjKHNiLCBibG9ja19ncm91cCwgJmdkX2JoKTsKQEAgLTQzMDksMTAgKzQ0ODYsOSBAQAogCQlleHQ0X21iX2ZyZWVfbWV0YWRhdGEoaGFuZGxlLCAmZTRiLCBibG9ja19ncm91cCwgYml0LCBjb3VudCk7CiAJfSBlbHNlIHsKIAkJZXh0NF9sb2NrX2dyb3VwKHNiLCBibG9ja19ncm91cCk7Ci0JCWVyciA9IG1iX2ZyZWVfYmxvY2tzKGlub2RlLCAmZTRiLCBiaXQsIGNvdW50KTsKKwkJbWJfZnJlZV9ibG9ja3MoaW5vZGUsICZlNGIsIGJpdCwgY291bnQpOwogCQlleHQ0X21iX3JldHVybl90b19wcmVhbGxvY2F0aW9uKGlub2RlLCAmZTRiLCBibG9jaywgY291bnQpOwogCQlleHQ0X3VubG9ja19ncm91cChzYiwgYmxvY2tfZ3JvdXApOwotCQlCVUdfT04oZXJyICE9IDApOwogCX0KIAogCXNwaW5fbG9jayhzYl9iZ2xfbG9jayhzYmksIGJsb2NrX2dyb3VwKSk7CkBAIC00MzIxLDYgKzQ0OTcsMTMgQEAKIAlzcGluX3VubG9jayhzYl9iZ2xfbG9jayhzYmksIGJsb2NrX2dyb3VwKSk7CiAJcGVyY3B1X2NvdW50ZXJfYWRkKCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyLCBjb3VudCk7CiAKKwlpZiAoc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXgpIHsKKwkJZXh0NF9ncm91cF90IGZsZXhfZ3JvdXAgPSBleHQ0X2ZsZXhfZ3JvdXAoc2JpLCBibG9ja19ncm91cCk7CisJCXNwaW5fbG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwkJc2JpLT5zX2ZsZXhfZ3JvdXBzW2ZsZXhfZ3JvdXBdLmZyZWVfYmxvY2tzICs9IGNvdW50OworCQlzcGluX3VubG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwl9CisKIAlleHQ0X21iX3JlbGVhc2VfZGVzYygmZTRiKTsKIAogCSpmcmVlZCArPSBjb3VudDsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvbmFtZWkuYyBiL2ZzL2V4dDQvbmFtZWkuYwppbmRleCBhYjE2YmVhLi4zODdhZDk4IDEwMDY0NAotLS0gYS9mcy9leHQ0L25hbWVpLmMKKysrIGIvZnMvZXh0NC9uYW1laS5jCkBAIC0xODMsNiArMTgzLDE2IEBACiAJCQkgICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogCiAvKgorICogcCBpcyBhdCBsZWFzdCA2IGJ5dGVzIGJlZm9yZSB0aGUgZW5kIG9mIHBhZ2UKKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqCitleHQ0X25leHRfZW50cnkoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKnApCit7CisJcmV0dXJuIChzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKSgoY2hhciAqKXAgKworCQlleHQ0X3JlY19sZW5fZnJvbV9kaXNrKHAtPnJlY19sZW4pKTsKK30KKworLyoKICAqIEZ1dHVyZTogdXNlIGhpZ2ggZm91ciBiaXRzIG9mIGJsb2NrIGZvciBjb2FsZXNjZS1vbi1kZWxldGUgZmxhZ3MKICAqIE1hc2sgdGhlbSBvZmYgZm9yIG5vdy4KICAqLwpAQCAtMjMxLDEzICsyNDEsMTMgQEAKIHsKIAl1bnNpZ25lZCBlbnRyeV9zcGFjZSA9IGRpci0+aV9zYi0+c19ibG9ja3NpemUgLSBFWFQ0X0RJUl9SRUNfTEVOKDEpIC0KIAkJRVhUNF9ESVJfUkVDX0xFTigyKSAtIGluZm9zaXplOwotCXJldHVybiAwPyAyMDogZW50cnlfc3BhY2UgLyBzaXplb2Yoc3RydWN0IGR4X2VudHJ5KTsKKwlyZXR1cm4gZW50cnlfc3BhY2UgLyBzaXplb2Yoc3RydWN0IGR4X2VudHJ5KTsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBkeF9ub2RlX2xpbWl0IChzdHJ1Y3QgaW5vZGUgKmRpcikKIHsKIAl1bnNpZ25lZCBlbnRyeV9zcGFjZSA9IGRpci0+aV9zYi0+c19ibG9ja3NpemUgLSBFWFQ0X0RJUl9SRUNfTEVOKDApOwotCXJldHVybiAwPyAyMjogZW50cnlfc3BhY2UgLyBzaXplb2Yoc3RydWN0IGR4X2VudHJ5KTsKKwlyZXR1cm4gZW50cnlfc3BhY2UgLyBzaXplb2Yoc3RydWN0IGR4X2VudHJ5KTsKIH0KIAogLyoKQEAgLTU1NCwxNSArNTY0LDYgQEAKIAogCiAvKgotICogcCBpcyBhdCBsZWFzdCA2IGJ5dGVzIGJlZm9yZSB0aGUgZW5kIG9mIHBhZ2UKLSAqLwotc3RhdGljIGlubGluZSBzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqZXh0NF9uZXh0X2VudHJ5KHN0cnVjdCBleHQ0X2Rpcl9lbnRyeV8yICpwKQotewotCXJldHVybiAoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKikoKGNoYXIgKilwICsKLQkJZXh0NF9yZWNfbGVuX2Zyb21fZGlzayhwLT5yZWNfbGVuKSk7Ci19Ci0KLS8qCiAgKiBUaGlzIGZ1bmN0aW9uIGZpbGxzIGEgcmVkLWJsYWNrIHRyZWUgd2l0aCBpbmZvcm1hdGlvbiBmcm9tIGEKICAqIGRpcmVjdG9yeSBibG9jay4gIEl0IHJldHVybnMgdGhlIG51bWJlciBkaXJlY3RvcnkgZW50cmllcyBsb2FkZWQKICAqIGludG8gdGhlIHRyZWUuICBJZiB0aGVyZSBpcyBhbiBlcnJvciBpdCBpcyByZXR1cm5lZCBpbiBlcnIuCkBAIC05OTMsMTkgKzk5NCwyMSBAQAogCQlkZSA9IChzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKSBiaC0+Yl9kYXRhOwogCQl0b3AgPSAoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKikgKChjaGFyICopIGRlICsgc2ItPnNfYmxvY2tzaXplIC0KIAkJCQkgICAgICAgRVhUNF9ESVJfUkVDX0xFTigwKSk7Ci0JCWZvciAoOyBkZSA8IHRvcDsgZGUgPSBleHQ0X25leHRfZW50cnkoZGUpKQotCQlpZiAoZXh0NF9tYXRjaCAobmFtZWxlbiwgbmFtZSwgZGUpKSB7Ci0JCQlpZiAoIWV4dDRfY2hlY2tfZGlyX2VudHJ5KCJleHQ0X2ZpbmRfZW50cnkiLAotCQkJCQkJICBkaXIsIGRlLCBiaCwKLQkJCQkgIChibG9jazw8RVhUNF9CTE9DS19TSVpFX0JJVFMoc2IpKQotCQkJCQkgICsoKGNoYXIgKilkZSAtIGJoLT5iX2RhdGEpKSkgewotCQkJCWJyZWxzZSAoYmgpOworCQlmb3IgKDsgZGUgPCB0b3A7IGRlID0gZXh0NF9uZXh0X2VudHJ5KGRlKSkgeworCQkJaW50IG9mZiA9IChibG9jayA8PCBFWFQ0X0JMT0NLX1NJWkVfQklUUyhzYikpCisJCQkJICArICgoY2hhciAqKSBkZSAtIGJoLT5iX2RhdGEpOworCisJCQlpZiAoIWV4dDRfY2hlY2tfZGlyX2VudHJ5KF9fZnVuY19fLCBkaXIsIGRlLCBiaCwgb2ZmKSkgeworCQkJCWJyZWxzZShiaCk7CiAJCQkJKmVyciA9IEVSUl9CQURfRFhfRElSOwogCQkJCWdvdG8gZXJyb3V0OwogCQkJfQotCQkJKnJlc19kaXIgPSBkZTsKLQkJCWR4X3JlbGVhc2UgKGZyYW1lcyk7Ci0JCQlyZXR1cm4gYmg7CisKKwkJCWlmIChleHQ0X21hdGNoKG5hbWVsZW4sIG5hbWUsIGRlKSkgeworCQkJCSpyZXNfZGlyID0gZGU7CisJCQkJZHhfcmVsZWFzZShmcmFtZXMpOworCQkJCXJldHVybiBiaDsKKwkJCX0KIAkJfQogCQlicmVsc2UgKGJoKTsKIAkJLyogQ2hlY2sgdG8gc2VlIGlmIHdlIHNob3VsZCBjb250aW51ZSB0byBzZWFyY2ggKi8KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvcmVzaXplLmMgYi9mcy9leHQ0L3Jlc2l6ZS5jCmluZGV4IDlmZjdiMWMuLmYwMDBmYmUgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvcmVzaXplLmMKKysrIGIvZnMvZXh0NC9yZXNpemUuYwpAQCAtODY2LDYgKzg2NiwxNSBAQAogCWdkcC0+YmdfY2hlY2tzdW0gPSBleHQ0X2dyb3VwX2Rlc2NfY3N1bShzYmksIGlucHV0LT5ncm91cCwgZ2RwKTsKIAogCS8qCisJICogV2UgY2FuIGFsbG9jYXRlIG1lbW9yeSBmb3IgbWJfYWxsb2MgYmFzZWQgb24gdGhlIG5ldyBncm91cAorCSAqIGRlc2NyaXB0b3IKKwkgKi8KKwlpZiAodGVzdF9vcHQoc2IsIE1CQUxMT0MpKSB7CisJCWVyciA9IGV4dDRfbWJfYWRkX21vcmVfZ3JvdXBpbmZvKHNiLCBpbnB1dC0+Z3JvdXAsIGdkcCk7CisJCWlmIChlcnIpCisJCQlnb3RvIGV4aXRfam91cm5hbDsKKwl9CisJLyoKIAkgKiBNYWtlIHRoZSBuZXcgYmxvY2tzIGFuZCBpbm9kZXMgdmFsaWQgbmV4dC4gIFdlIGRvIHRoaXMgYmVmb3JlCiAJICogaW5jcmVhc2luZyB0aGUgZ3JvdXAgY291bnQgc28gdGhhdCBvbmNlIHRoZSBncm91cCBpcyBlbmFibGVkLAogCSAqIGFsbCBvZiBpdHMgYmxvY2tzIGFuZCBpbm9kZXMgYXJlIGFscmVhZHkgdmFsaWQuCkBAIC05NTcsNiArOTY2LDggQEAKIAloYW5kbGVfdCAqaGFuZGxlOwogCWludCBlcnI7CiAJdW5zaWduZWQgbG9uZyBmcmVlZF9ibG9ja3M7CisJZXh0NF9ncm91cF90IGdyb3VwOworCXN0cnVjdCBleHQ0X2dyb3VwX2luZm8gKmdycDsKIAogCS8qIFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgbG9ja2luZyB3cnQgb3RoZXIgcmVzaXplcnMganVzdAogCSAqIHlldDogd2UncmUgZ29pbmcgdG8gcmV2YWxpZGF0ZSBlcy0+c19ibG9ja3NfY291bnQgYWZ0ZXIKQEAgLTk4OCw3ICs5OTksNyBAQAogCX0KIAogCS8qIEhhbmRsZSB0aGUgcmVtYWluaW5nIGJsb2NrcyBpbiB0aGUgbGFzdCBncm91cCBvbmx5LiAqLwotCWV4dDRfZ2V0X2dyb3VwX25vX2FuZF9vZmZzZXQoc2IsIG9fYmxvY2tzX2NvdW50LCBOVUxMLCAmbGFzdCk7CisJZXh0NF9nZXRfZ3JvdXBfbm9fYW5kX29mZnNldChzYiwgb19ibG9ja3NfY291bnQsICZncm91cCwgJmxhc3QpOwogCiAJaWYgKGxhc3QgPT0gMCkgewogCQlleHQ0X3dhcm5pbmcoc2IsIF9fZnVuY19fLApAQCAtMTA2MCw2ICsxMDcxLDQ1IEBACiAJCSAgIG9fYmxvY2tzX2NvdW50ICsgYWRkKTsKIAlpZiAoKGVyciA9IGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSkpKQogCQlnb3RvIGV4aXRfcHV0OworCisJLyoKKwkgKiBNYXJrIG1iYWxsb2MgcGFnZXMgYXMgbm90IHVwIHRvIGRhdGUgc28gdGhhdCB0aGV5IHdpbGwgYmUgdXBkYXRlZAorCSAqIG5leHQgdGltZSB0aGV5IGFyZSBsb2FkZWQgYnkgZXh0NF9tYl9sb2FkX2J1ZGR5LgorCSAqLworCWlmICh0ZXN0X29wdChzYiwgTUJBTExPQykpIHsKKwkJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihzYik7CisJCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBzYmktPnNfYnVkZHlfY2FjaGU7CisJCWludCBibG9ja3NfcGVyX3BhZ2U7CisJCWludCBibG9jazsKKwkJaW50IHBudW07CisJCXN0cnVjdCBwYWdlICpwYWdlOworCisJCS8qIFNldCBidWRkeSBwYWdlIGFzIG5vdCB1cCB0byBkYXRlICovCisJCWJsb2Nrc19wZXJfcGFnZSA9IFBBR0VfQ0FDSEVfU0laRSAvIHNiLT5zX2Jsb2Nrc2l6ZTsKKwkJYmxvY2sgPSBncm91cCAqIDI7CisJCXBudW0gPSBibG9jayAvIGJsb2Nrc19wZXJfcGFnZTsKKwkJcGFnZSA9IGZpbmRfZ2V0X3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgcG51bSk7CisJCWlmIChwYWdlICE9IE5VTEwpIHsKKwkJCUNsZWFyUGFnZVVwdG9kYXRlKHBhZ2UpOworCQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCQl9CisKKwkJLyogU2V0IGJpdG1hcCBwYWdlIGFzIG5vdCB1cCB0byBkYXRlICovCisJCWJsb2NrKys7CisJCXBudW0gPSBibG9jayAvIGJsb2Nrc19wZXJfcGFnZTsKKwkJcGFnZSA9IGZpbmRfZ2V0X3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgcG51bSk7CisJCWlmIChwYWdlICE9IE5VTEwpIHsKKwkJCUNsZWFyUGFnZVVwdG9kYXRlKHBhZ2UpOworCQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCQl9CisKKwkJLyogR2V0IHRoZSBpbmZvIG9uIHRoZSBsYXN0IGdyb3VwICovCisJCWdycCA9IGV4dDRfZ2V0X2dyb3VwX2luZm8oc2IsIGdyb3VwKTsKKworCQkvKiBVcGRhdGUgZnJlZSBibG9ja3MgaW4gZ3JvdXAgaW5mbyAqLworCQlleHQ0X21iX3VwZGF0ZV9ncm91cF9pbmZvKGdycCwgYWRkKTsKKwl9CisKIAlpZiAodGVzdF9vcHQoc2IsIERFQlVHKSkKIAkJcHJpbnRrKEtFUk5fREVCVUcgIkVYVDQtZnM6IGV4dGVuZGVkIGdyb3VwIHRvICVsbHUgYmxvY2tzXG4iLAogCQkgICAgICAgZXh0NF9ibG9ja3NfY291bnQoZXMpKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvc3VwZXIuYyBiL2ZzL2V4dDQvc3VwZXIuYwppbmRleCBjYjk2ZjEyN2MuLjFjYjM3MWQgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvc3VwZXIuYworKysgYi9mcy9leHQ0L3N1cGVyLmMKQEAgLTUwNiw2ICs1MDYsNyBAQAogCWV4dDRfZXh0X3JlbGVhc2Uoc2IpOwogCWV4dDRfeGF0dHJfcHV0X3N1cGVyKHNiKTsKIAlqYmQyX2pvdXJuYWxfZGVzdHJveShzYmktPnNfam91cm5hbCk7CisJc2JpLT5zX2pvdXJuYWwgPSBOVUxMOwogCWlmICghKHNiLT5zX2ZsYWdzICYgTVNfUkRPTkxZKSkgewogCQlFWFQ0X0NMRUFSX0lOQ09NUEFUX0ZFQVRVUkUoc2IsIEVYVDRfRkVBVFVSRV9JTkNPTVBBVF9SRUNPVkVSKTsKIAkJZXMtPnNfc3RhdGUgPSBjcHVfdG9fbGUxNihzYmktPnNfbW91bnRfc3RhdGUpOwpAQCAtNTE3LDYgKzUxOCw3IEBACiAJZm9yIChpID0gMDsgaSA8IHNiaS0+c19nZGJfY291bnQ7IGkrKykKIAkJYnJlbHNlKHNiaS0+c19ncm91cF9kZXNjW2ldKTsKIAlrZnJlZShzYmktPnNfZ3JvdXBfZGVzYyk7CisJa2ZyZWUoc2JpLT5zX2ZsZXhfZ3JvdXBzKTsKIAlwZXJjcHVfY291bnRlcl9kZXN0cm95KCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyKTsKIAlwZXJjcHVfY291bnRlcl9kZXN0cm95KCZzYmktPnNfZnJlZWlub2Rlc19jb3VudGVyKTsKIAlwZXJjcHVfY291bnRlcl9kZXN0cm95KCZzYmktPnNfZGlyc19jb3VudGVyKTsKQEAgLTU3MSw2ICs1NzMsMTIgQEAKIAltZW1zZXQoJmVpLT5pX2NhY2hlZF9leHRlbnQsIDAsIHNpemVvZihzdHJ1Y3QgZXh0NF9leHRfY2FjaGUpKTsKIAlJTklUX0xJU1RfSEVBRCgmZWktPmlfcHJlYWxsb2NfbGlzdCk7CiAJc3Bpbl9sb2NrX2luaXQoJmVpLT5pX3ByZWFsbG9jX2xvY2spOworCWpiZDJfam91cm5hbF9pbml0X2piZF9pbm9kZSgmZWktPmppbm9kZSwgJmVpLT52ZnNfaW5vZGUpOworCWVpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzID0gMDsKKwllaS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2NrcyA9IDA7CisJZWktPmlfYWxsb2NhdGVkX21ldGFfYmxvY2tzID0gMDsKKwllaS0+aV9kZWxhbGxvY19yZXNlcnZlZF9mbGFnID0gMDsKKwlzcGluX2xvY2tfaW5pdCgmKGVpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spKTsKIAlyZXR1cm4gJmVpLT52ZnNfaW5vZGU7CiB9CiAKQEAgLTYzNSw2ICs2NDMsOCBAQAogCUVYVDRfSShpbm9kZSktPmlfYmxvY2tfYWxsb2NfaW5mbyA9IE5VTEw7CiAJaWYgKHVubGlrZWx5KHJzdikpCiAJCWtmcmVlKHJzdik7CisJamJkMl9qb3VybmFsX3JlbGVhc2VfamJkX2lub2RlKEVYVDRfU0IoaW5vZGUtPmlfc2IpLT5zX2pvdXJuYWwsCisJCQkJICAgICAgICZFWFQ0X0koaW5vZGUpLT5qaW5vZGUpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZXh0NF9zaG93X3F1b3RhX29wdGlvbnMoc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCkBAIC02NzEsNyArNjgxLDYgQEAKIAl1bnNpZ25lZCBsb25nIGRlZl9tb3VudF9vcHRzOwogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSB2ZnMtPm1udF9zYjsKIAlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKLQlqb3VybmFsX3QgKmpvdXJuYWwgPSBzYmktPnNfam91cm5hbDsKIAlzdHJ1Y3QgZXh0NF9zdXBlcl9ibG9jayAqZXMgPSBzYmktPnNfZXM7CiAKIAlkZWZfbW91bnRfb3B0cyA9IGxlMzJfdG9fY3B1KGVzLT5zX2RlZmF1bHRfbW91bnRfb3B0cyk7CkBAIC03NDcsNiArNzU2LDkgQEAKIAkJc2VxX3B1dHMoc2VxLCAiLG5vbWJhbGxvYyIpOwogCWlmICh0ZXN0X29wdChzYiwgSV9WRVJTSU9OKSkKIAkJc2VxX3B1dHMoc2VxLCAiLGlfdmVyc2lvbiIpOworCWlmICghdGVzdF9vcHQoc2IsIERFTEFMTE9DKSkKKwkJc2VxX3B1dHMoc2VxLCAiLG5vZGVsYWxsb2MiKTsKKwogCiAJaWYgKHNiaS0+c19zdHJpcGUpCiAJCXNlcV9wcmludGYoc2VxLCAiLHN0cmlwZT0lbHUiLCBzYmktPnNfc3RyaXBlKTsKQEAgLTg5NCw3ICs5MDYsNyBAQAogCU9wdF9qcWZtdF92ZnNvbGQsIE9wdF9qcWZtdF92ZnN2MCwgT3B0X3F1b3RhLCBPcHRfbm9xdW90YSwKIAlPcHRfaWdub3JlLCBPcHRfYmFycmllciwgT3B0X2VyciwgT3B0X3Jlc2l6ZSwgT3B0X3VzcnF1b3RhLAogCU9wdF9ncnBxdW90YSwgT3B0X2V4dGVudHMsIE9wdF9ub2V4dGVudHMsIE9wdF9pX3ZlcnNpb24sCi0JT3B0X21iYWxsb2MsIE9wdF9ub21iYWxsb2MsIE9wdF9zdHJpcGUsCisJT3B0X21iYWxsb2MsIE9wdF9ub21iYWxsb2MsIE9wdF9zdHJpcGUsIE9wdF9kZWxhbGxvYywgT3B0X25vZGVsYWxsb2MsCiB9OwogCiBzdGF0aWMgbWF0Y2hfdGFibGVfdCB0b2tlbnMgPSB7CkBAIC05NTMsNiArOTY1LDggQEAKIAl7T3B0X25vbWJhbGxvYywgIm5vbWJhbGxvYyJ9LAogCXtPcHRfc3RyaXBlLCAic3RyaXBlPSV1In0sCiAJe09wdF9yZXNpemUsICJyZXNpemUifSwKKwl7T3B0X2RlbGFsbG9jLCAiZGVsYWxsb2MifSwKKwl7T3B0X25vZGVsYWxsb2MsICJub2RlbGFsbG9jIn0sCiAJe09wdF9lcnIsIE5VTEx9LAogfTsKIApAQCAtOTkwLDYgKzEwMDQsNyBAQAogCWludCBxdHlwZSwgcWZtdDsKIAljaGFyICpxbmFtZTsKICNlbmRpZgorCWV4dDRfZnNibGtfdCBsYXN0X2Jsb2NrOwogCiAJaWYgKCFvcHRpb25zKQogCQlyZXR1cm4gMTsKQEAgLTEzMDksMTUgKzEzMjQsMzkgQEAKIAkJCWNsZWFyX29wdChzYmktPnNfbW91bnRfb3B0LCBOT0JIKTsKIAkJCWJyZWFrOwogCQljYXNlIE9wdF9leHRlbnRzOgorCQkJaWYgKCFFWFQ0X0hBU19JTkNPTVBBVF9GRUFUVVJFKHNiLAorCQkJCQlFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfRVhURU5UUykpIHsKKwkJCQlleHQ0X3dhcm5pbmcoc2IsIF9fZnVuY19fLAorCQkJCQkiZXh0ZW50cyBmZWF0dXJlIG5vdCBlbmFibGVkICIKKwkJCQkJIm9uIHRoaXMgZmlsZXN5c3RlbSwgdXNlIHR1bmUyZnNcbiIpOworCQkJCXJldHVybiAwOworCQkJfQogCQkJc2V0X29wdCAoc2JpLT5zX21vdW50X29wdCwgRVhURU5UUyk7CiAJCQlicmVhazsKIAkJY2FzZSBPcHRfbm9leHRlbnRzOgorCQkJLyoKKwkJCSAqIFdoZW4gZTJmc3Byb2dzIHN1cHBvcnQgcmVzaXppbmcgYW4gYWxyZWFkeSBleGlzdGluZworCQkJICogZXh0MyBmaWxlIHN5c3RlbSB0byBncmVhdGVyIHRoYW4gMioqMzIgd2UgbmVlZCB0bworCQkJICogYWRkIHN1cHBvcnQgdG8gYmxvY2sgYWxsb2NhdG9yIHRvIGhhbmRsZSBncm93aW5nCisJCQkgKiBhbHJlYWR5IGV4aXN0aW5nIGJsb2NrICBtYXBwZWQgaW5vZGUgc28gdGhhdCBibG9ja3MKKwkJCSAqIGFsbG9jYXRlZCBmb3IgdGhlbSBmYWxsIHdpdGhpbiAyKiozMgorCQkJICovCisJCQlsYXN0X2Jsb2NrID0gZXh0NF9ibG9ja3NfY291bnQoc2JpLT5zX2VzKSAtIDE7CisJCQlpZiAobGFzdF9ibG9jayAgPiAweGZmZmZmZmZmVUxMKSB7CisJCQkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBGaWxlc3lzdGVtIHRvbyAiCisJCQkJCQkibGFyZ2UgdG8gbW91bnQgd2l0aCAiCisJCQkJCQkiLW8gbm9leHRlbnRzIG9wdGlvbnNcbiIpOworCQkJCXJldHVybiAwOworCQkJfQogCQkJY2xlYXJfb3B0IChzYmktPnNfbW91bnRfb3B0LCBFWFRFTlRTKTsKIAkJCWJyZWFrOwogCQljYXNlIE9wdF9pX3ZlcnNpb246CiAJCQlzZXRfb3B0KHNiaS0+c19tb3VudF9vcHQsIElfVkVSU0lPTik7CiAJCQlzYi0+c19mbGFncyB8PSBNU19JX1ZFUlNJT047CiAJCQlicmVhazsKKwkJY2FzZSBPcHRfbm9kZWxhbGxvYzoKKwkJCWNsZWFyX29wdChzYmktPnNfbW91bnRfb3B0LCBERUxBTExPQyk7CisJCQlicmVhazsKIAkJY2FzZSBPcHRfbWJhbGxvYzoKIAkJCXNldF9vcHQoc2JpLT5zX21vdW50X29wdCwgTUJBTExPQyk7CiAJCQlicmVhazsKQEAgLTEzMzEsNiArMTM3MCw5IEBACiAJCQkJcmV0dXJuIDA7CiAJCQlzYmktPnNfc3RyaXBlID0gb3B0aW9uOwogCQkJYnJlYWs7CisJCWNhc2UgT3B0X2RlbGFsbG9jOgorCQkJc2V0X29wdChzYmktPnNfbW91bnRfb3B0LCBERUxBTExPQyk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXByaW50ayAoS0VSTl9FUlIKIAkJCQkiRVhUNC1mczogVW5yZWNvZ25pemVkIG1vdW50IG9wdGlvbiBcIiVzXCIgIgpAQCAtMTQ0Myw2ICsxNDg1LDU0IEBACiAJcmV0dXJuIHJlczsKIH0KIAorc3RhdGljIGludCBleHQ0X2ZpbGxfZmxleF9pbmZvKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihzYik7CisJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZ2RwID0gTlVMTDsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOworCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwX2NvdW50OworCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwOworCWludCBncm91cHNfcGVyX2ZsZXggPSAwOworCV9fdTY0IGJsb2NrX2JpdG1hcCA9IDA7CisJaW50IGk7CisKKwlpZiAoIXNiaS0+c19lcy0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4KSB7CisJCXNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4ID0gMDsKKwkJcmV0dXJuIDE7CisJfQorCisJc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXggPSBzYmktPnNfZXMtPnNfbG9nX2dyb3Vwc19wZXJfZmxleDsKKwlncm91cHNfcGVyX2ZsZXggPSAxIDw8IHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4OworCisJZmxleF9ncm91cF9jb3VudCA9IChzYmktPnNfZ3JvdXBzX2NvdW50ICsgZ3JvdXBzX3Blcl9mbGV4IC0gMSkgLworCQlncm91cHNfcGVyX2ZsZXg7CisJc2JpLT5zX2ZsZXhfZ3JvdXBzID0ga21hbGxvYyhmbGV4X2dyb3VwX2NvdW50ICoKKwkJCQkgICAgIHNpemVvZihzdHJ1Y3QgZmxleF9ncm91cHMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoc2JpLT5zX2ZsZXhfZ3JvdXBzID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBub3QgZW5vdWdoIG1lbW9yeVxuIik7CisJCWdvdG8gZmFpbGVkOworCX0KKwltZW1zZXQoc2JpLT5zX2ZsZXhfZ3JvdXBzLCAwLCBmbGV4X2dyb3VwX2NvdW50ICoKKwkgICAgICAgc2l6ZW9mKHN0cnVjdCBmbGV4X2dyb3VwcykpOworCisJZ2RwID0gZXh0NF9nZXRfZ3JvdXBfZGVzYyhzYiwgMSwgJmJoKTsKKwlibG9ja19iaXRtYXAgPSBleHQ0X2Jsb2NrX2JpdG1hcChzYiwgZ2RwKSAtIDE7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2JpLT5zX2dyb3Vwc19jb3VudDsgaSsrKSB7CisJCWdkcCA9IGV4dDRfZ2V0X2dyb3VwX2Rlc2Moc2IsIGksICZiaCk7CisKKwkJZmxleF9ncm91cCA9IGV4dDRfZmxleF9ncm91cChzYmksIGkpOworCQlzYmktPnNfZmxleF9ncm91cHNbZmxleF9ncm91cF0uZnJlZV9pbm9kZXMgKz0KKwkJCWxlMTZfdG9fY3B1KGdkcC0+YmdfZnJlZV9pbm9kZXNfY291bnQpOworCQlzYmktPnNfZmxleF9ncm91cHNbZmxleF9ncm91cF0uZnJlZV9ibG9ja3MgKz0KKwkJCWxlMTZfdG9fY3B1KGdkcC0+YmdfZnJlZV9ibG9ja3NfY291bnQpOworCX0KKworCXJldHVybiAxOworZmFpbGVkOgorCXJldHVybiAwOworfQorCiBfX2xlMTYgZXh0NF9ncm91cF9kZXNjX2NzdW0oc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLCBfX3UzMiBibG9ja19ncm91cCwKIAkJCSAgICBzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpnZHApCiB7CkBAIC0xODEwLDggKzE5MDAsOCBAQAogfQogCiBzdGF0aWMgaW50IGV4dDRfZmlsbF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKLQkJCQlfX3JlbGVhc2VzKGtlcm5lbF9zZW0pCi0JCQkJX19hY3F1aXJlcyhrZXJuZWxfc2VtKQorCQkJCV9fcmVsZWFzZXMoa2VybmVsX2xvY2spCisJCQkJX19hY3F1aXJlcyhrZXJuZWxfbG9jaykKIAogewogCXN0cnVjdCBidWZmZXJfaGVhZCAqIGJoOwpAQCAtMTg1MSwxMSArMTk0MSw2IEBACiAJCWdvdG8gb3V0X2ZhaWw7CiAJfQogCi0JaWYgKCFzYl9zZXRfYmxvY2tzaXplKHNiLCBibG9ja3NpemUpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogYmFkIGJsb2Nrc2l6ZSAlZC5cbiIsIGJsb2Nrc2l6ZSk7Ci0JCWdvdG8gb3V0X2ZhaWw7Ci0JfQotCiAJLyoKIAkgKiBUaGUgZXh0NCBzdXBlcmJsb2NrIHdpbGwgbm90IGJlIGJ1ZmZlciBhbGlnbmVkIGZvciBvdGhlciB0aGFuIDFrQgogCSAqIGJsb2NrIHNpemVzLiAgV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIG9mZnNldCBmcm9tIGJ1ZmZlciBzdGFydC4KQEAgLTE5MTksMTUgKzIwMDQsMjggQEAKIAogCS8qCiAJICogdHVybiBvbiBleHRlbnRzIGZlYXR1cmUgYnkgZGVmYXVsdCBpbiBleHQ0IGZpbGVzeXN0ZW0KLQkgKiBVc2VyIC1vIG5vZXh0ZW50cyB0byB0dXJuIGl0IG9mZgorCSAqIG9ubHkgaWYgZmVhdHVyZSBmbGFnIGFscmVhZHkgc2V0IGJ5IG1rZnMgb3IgdHVuZTJmcy4KKwkgKiBVc2UgLW8gbm9leHRlbnRzIHRvIHR1cm4gaXQgb2ZmCiAJICovCi0Jc2V0X29wdChzYmktPnNfbW91bnRfb3B0LCBFWFRFTlRTKTsKKwlpZiAoRVhUNF9IQVNfSU5DT01QQVRfRkVBVFVSRShzYiwgRVhUNF9GRUFUVVJFX0lOQ09NUEFUX0VYVEVOVFMpKQorCQlzZXRfb3B0KHNiaS0+c19tb3VudF9vcHQsIEVYVEVOVFMpOworCWVsc2UKKwkJZXh0NF93YXJuaW5nKHNiLCBfX2Z1bmNfXywKKwkJCSJleHRlbnRzIGZlYXR1cmUgbm90IGVuYWJsZWQgb24gdGhpcyBmaWxlc3lzdGVtLCAiCisJCQkidXNlIHR1bmUyZnMuXG4iKTsKIAkvKgotCSAqIHR1cm4gb24gbWJhbGxvYyBmZWF0dXJlIGJ5IGRlZmF1bHQgaW4gZXh0NCBmaWxlc3lzdGVtCi0JICogVXNlciAtbyBub21iYWxsb2MgdG8gdHVybiBpdCBvZmYKKwkgKiB0dXJuIG9uIG1iYWxsb2MgY29kZSBieSBkZWZhdWx0IGluIGV4dDQgZmlsZXN5c3RlbQorCSAqIFVzZSAtbyBub21iYWxsb2MgdG8gdHVybiBpdCBvZmYKIAkgKi8KIAlzZXRfb3B0KHNiaS0+c19tb3VudF9vcHQsIE1CQUxMT0MpOwogCisJLyoKKwkgKiBlbmFibGUgZGVsYXllZCBhbGxvY2F0aW9uIGJ5IGRlZmF1bHQKKwkgKiBVc2UgLW8gbm9kZWxhbGxvYyB0byB0dXJuIGl0IG9mZgorCSAqLworCXNldF9vcHQoc2JpLT5zX21vdW50X29wdCwgREVMQUxMT0MpOworCisKIAlpZiAoIXBhcnNlX29wdGlvbnMgKChjaGFyICopIGRhdGEsIHNiLCAmam91cm5hbF9pbnVtLCAmam91cm5hbF9kZXZudW0sCiAJCQkgICAgTlVMTCwgMCkpCiAJCWdvdG8gZmFpbGVkX21vdW50OwpAQCAtMjEzOCw2ICsyMjM2LDE0IEBACiAJCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogZ3JvdXAgZGVzY3JpcHRvcnMgY29ycnVwdGVkIVxuIik7CiAJCWdvdG8gZmFpbGVkX21vdW50MjsKIAl9CisJaWYgKEVYVDRfSEFTX0lOQ09NUEFUX0ZFQVRVUkUoc2IsIEVYVDRfRkVBVFVSRV9JTkNPTVBBVF9GTEVYX0JHKSkKKwkJaWYgKCFleHQ0X2ZpbGxfZmxleF9pbmZvKHNiKSkgeworCQkJcHJpbnRrKEtFUk5fRVJSCisJCQkgICAgICAgIkVYVDQtZnM6IHVuYWJsZSB0byBpbml0aWFsaXplICIKKwkJCSAgICAgICAiZmxleF9iZyBtZXRhIGluZm8hXG4iKTsKKwkJCWdvdG8gZmFpbGVkX21vdW50MjsKKwkJfQorCiAJc2JpLT5zX2dkYl9jb3VudCA9IGRiX2NvdW50OwogCWdldF9yYW5kb21fYnl0ZXMoJnNiaS0+c19uZXh0X2dlbmVyYXRpb24sIHNpemVvZih1MzIpKTsKIAlzcGluX2xvY2tfaW5pdCgmc2JpLT5zX25leHRfZ2VuX2xvY2spOwpAQCAtMjM1OCw2ICsyNDY0LDEzIEBACiAJCXRlc3Rfb3B0KHNiLERBVEFfRkxBR1MpID09IEVYVDRfTU9VTlRfT1JERVJFRF9EQVRBID8gIm9yZGVyZWQiOgogCQkid3JpdGViYWNrIik7CiAKKwlpZiAodGVzdF9vcHQoc2IsIERBVEFfRkxBR1MpID09IEVYVDRfTU9VTlRfSk9VUk5BTF9EQVRBKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIkVYVDQtZnM6IElnbm9yaW5nIGRlbGFsbG9jIG9wdGlvbiAtICIKKwkJCQkicmVxdWVzdGVkIGRhdGEgam91cm5hbGluZyBtb2RlXG4iKTsKKwkJY2xlYXJfb3B0KHNiaS0+c19tb3VudF9vcHQsIERFTEFMTE9DKTsKKwl9IGVsc2UgaWYgKHRlc3Rfb3B0KHNiLCBERUxBTExPQykpCisJCXByaW50ayhLRVJOX0lORk8gIkVYVDQtZnM6IGRlbGF5ZWQgYWxsb2NhdGlvbiBlbmFibGVkXG4iKTsKKwogCWV4dDRfZXh0X2luaXQoc2IpOwogCWV4dDRfbWJfaW5pdChzYiwgbmVlZHNfcmVjb3ZlcnkpOwogCkBAIC0yMzcyLDYgKzI0ODUsNyBAQAogCiBmYWlsZWRfbW91bnQ0OgogCWpiZDJfam91cm5hbF9kZXN0cm95KHNiaS0+c19qb3VybmFsKTsKKwlzYmktPnNfam91cm5hbCA9IE5VTEw7CiBmYWlsZWRfbW91bnQzOgogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIpOwogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19mcmVlaW5vZGVzX2NvdW50ZXIpOwpAQCAtMzMyNSw3ICszNDM5LDcgQEAKIAkJCWVyciA9IGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShoYW5kbGUsIGJoKTsKIAkJZWxzZSB7CiAJCQkvKiBBbHdheXMgZG8gYXQgbGVhc3Qgb3JkZXJlZCB3cml0ZXMgZm9yIHF1b3RhcyAqLwotCQkJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X2RhdGEoaGFuZGxlLCBiaCk7CisJCQllcnIgPSBleHQ0X2piZDJfZmlsZV9pbm9kZShoYW5kbGUsIGlub2RlKTsKIAkJCW1hcmtfYnVmZmVyX2RpcnR5KGJoKTsKIAkJfQogCQlicmVsc2UoYmgpOwpAQCAtMzMzNyw4ICszNDUxLDEwIEBACiAJCWJsaysrOwogCX0KIG91dDoKLQlpZiAobGVuID09IHRvd3JpdGUpCisJaWYgKGxlbiA9PSB0b3dyaXRlKSB7CisJCW11dGV4X3VubG9jaygmaW5vZGUtPmlfbXV0ZXgpOwogCQlyZXR1cm4gZXJyOworCX0KIAlpZiAoaW5vZGUtPmlfc2l6ZSA8IG9mZitsZW4tdG93cml0ZSkgewogCQlpX3NpemVfd3JpdGUoaW5vZGUsIG9mZitsZW4tdG93cml0ZSk7CiAJCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBpbm9kZS0+aV9zaXplOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC94YXR0ci5jIGIvZnMvZXh0NC94YXR0ci5jCmluZGV4IGZmMDg2MzMuLjkzYzVmZGMgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQveGF0dHIuYworKysgYi9mcy9leHQ0L3hhdHRyLmMKQEAgLTgxMCw3ICs4MTAsNyBAQAogCQkJLyogV2UgbmVlZCB0byBhbGxvY2F0ZSBhIG5ldyBibG9jayAqLwogCQkJZXh0NF9mc2Jsa190IGdvYWwgPSBleHQ0X2dyb3VwX2ZpcnN0X2Jsb2NrX25vKHNiLAogCQkJCQkJRVhUNF9JKGlub2RlKS0+aV9ibG9ja19ncm91cCk7Ci0JCQlleHQ0X2ZzYmxrX3QgYmxvY2sgPSBleHQ0X25ld19ibG9jayhoYW5kbGUsIGlub2RlLAorCQkJZXh0NF9mc2Jsa190IGJsb2NrID0gZXh0NF9uZXdfbWV0YV9ibG9jayhoYW5kbGUsIGlub2RlLAogCQkJCQkJCWdvYWwsICZlcnJvcik7CiAJCQlpZiAoZXJyb3IpCiAJCQkJZ290byBjbGVhbnVwOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC94YXR0cl90cnVzdGVkLmMgYi9mcy9leHQ0L3hhdHRyX3RydXN0ZWQuYwppbmRleCBmZmYzMzM4Li5hYzFhNTJjIDEwMDY0NAotLS0gYS9mcy9leHQ0L3hhdHRyX3RydXN0ZWQuYworKysgYi9mcy9leHQ0L3hhdHRyX3RydXN0ZWQuYwpAQCAtMTMsMTMgKzEzLDExIEBACiAjaW5jbHVkZSAiZXh0NC5oIgogI2luY2x1ZGUgInhhdHRyLmgiCiAKLSNkZWZpbmUgWEFUVFJfVFJVU1RFRF9QUkVGSVggInRydXN0ZWQuIgotCiBzdGF0aWMgc2l6ZV90CiBleHQ0X3hhdHRyX3RydXN0ZWRfbGlzdChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjaGFyICpsaXN0LCBzaXplX3QgbGlzdF9zaXplLAogCQkJY29uc3QgY2hhciAqbmFtZSwgc2l6ZV90IG5hbWVfbGVuKQogewotCWNvbnN0IHNpemVfdCBwcmVmaXhfbGVuID0gc2l6ZW9mKFhBVFRSX1RSVVNURURfUFJFRklYKS0xOworCWNvbnN0IHNpemVfdCBwcmVmaXhfbGVuID0gWEFUVFJfVFJVU1RFRF9QUkVGSVhfTEVOOwogCWNvbnN0IHNpemVfdCB0b3RhbF9sZW4gPSBwcmVmaXhfbGVuICsgbmFtZV9sZW4gKyAxOwogCiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC94YXR0cl91c2VyLmMgYi9mcy9leHQ0L3hhdHRyX3VzZXIuYwppbmRleCA2N2JlNzIzLi5kOTFhYTYxIDEwMDY0NAotLS0gYS9mcy9leHQ0L3hhdHRyX3VzZXIuYworKysgYi9mcy9leHQ0L3hhdHRyX3VzZXIuYwpAQCAtMTIsMTMgKzEyLDExIEBACiAjaW5jbHVkZSAiZXh0NC5oIgogI2luY2x1ZGUgInhhdHRyLmgiCiAKLSNkZWZpbmUgWEFUVFJfVVNFUl9QUkVGSVggInVzZXIuIgotCiBzdGF0aWMgc2l6ZV90CiBleHQ0X3hhdHRyX3VzZXJfbGlzdChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjaGFyICpsaXN0LCBzaXplX3QgbGlzdF9zaXplLAogCQkgICAgIGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBuYW1lX2xlbikKIHsKLQljb25zdCBzaXplX3QgcHJlZml4X2xlbiA9IHNpemVvZihYQVRUUl9VU0VSX1BSRUZJWCktMTsKKwljb25zdCBzaXplX3QgcHJlZml4X2xlbiA9IFhBVFRSX1VTRVJfUFJFRklYX0xFTjsKIAljb25zdCBzaXplX3QgdG90YWxfbGVuID0gcHJlZml4X2xlbiArIG5hbWVfbGVuICsgMTsKIAogCWlmICghdGVzdF9vcHQoaW5vZGUtPmlfc2IsIFhBVFRSX1VTRVIpKQpkaWZmIC0tZ2l0IGEvZnMvZmF0L2NhY2hlLmMgYi9mcy9mYXQvY2FjaGUuYwppbmRleCBmZGEyNTQ3OS4uM2E5ZWNhYzggMTAwNjQ0Ci0tLSBhL2ZzL2ZhdC9jYWNoZS5jCisrKyBiL2ZzL2ZhdC9jYWNoZS5jCkBAIC02MSw3ICs2MSw3IEBACiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZhdF9jYWNoZSAqZmF0X2NhY2hlX2FsbG9jKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7Ci0JcmV0dXJuIGttZW1fY2FjaGVfYWxsb2MoZmF0X2NhY2hlX2NhY2hlcCwgR0ZQX0tFUk5FTCk7CisJcmV0dXJuIGttZW1fY2FjaGVfYWxsb2MoZmF0X2NhY2hlX2NhY2hlcCwgR0ZQX05PRlMpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmF0X2NhY2hlX2ZyZWUoc3RydWN0IGZhdF9jYWNoZSAqY2FjaGUpCmRpZmYgLS1naXQgYS9mcy9mYXQvZGlyLmMgYi9mcy9mYXQvZGlyLmMKaW5kZXggNDg2NzI1ZS4uMzQ1NDFkMCAxMDA2NDQKLS0tIGEvZnMvZmF0L2Rpci5jCisrKyBiL2ZzL2ZhdC9kaXIuYwpAQCAtNDcyLDcgKzQ3Miw3IEBACiAJbG9mZl90IGNwb3M7CiAJaW50IHJldCA9IDA7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJY3BvcyA9IGZpbHAtPmZfcG9zOwogCS8qIEZha2UgLiBhbmQgLi4gZm9yIHRoZSByb290IGRpcmVjdG9yeS4gKi8KQEAgLTY1NCw3ICs2NTQsNyBAQAogCWlmICh1bmljb2RlKQogCQlfX3B1dG5hbWUodW5pY29kZSk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvZmF0L2ZpbGUuYyBiL2ZzL2ZhdC9maWxlLmMKaW5kZXggNzcxMzI2Yi4uYzY3MmRmNCAxMDA2NDQKLS0tIGEvZnMvZmF0L2ZpbGUuYworKysgYi9mcy9mYXQvZmlsZS5jCkBAIC0xMSw3ICsxMSw2IEBACiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvbXNkb3NfZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2J1ZmZlcl9oZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+CiAjaW5jbHVkZSA8bGludXgvYmFja2luZy1kZXYuaD4KQEAgLTI0Miw5ICsyNDEsNyBAQAogCiAJbnJfY2x1c3RlcnMgPSAoaW5vZGUtPmlfc2l6ZSArIChjbHVzdGVyX3NpemUgLSAxKSkgPj4gc2JpLT5jbHVzdGVyX2JpdHM7CiAKLQlsb2NrX2tlcm5lbCgpOwogCWZhdF9mcmVlKGlub2RlLCBucl9jbHVzdGVycyk7Ci0JdW5sb2NrX2tlcm5lbCgpOwogCWZhdF9mbHVzaF9pbm9kZXMoaW5vZGUtPmlfc2IsIGlub2RlLCBOVUxMKTsKIH0KIApAQCAtMzEwLDggKzMwNyw2IEBACiAJaW50IGVycm9yID0gMDsKIAl1bnNpZ25lZCBpbnQgaWFfdmFsaWQ7CiAKLQlsb2NrX2tlcm5lbCgpOwotCiAJLyoKIAkgKiBFeHBhbmQgdGhlIGZpbGUuIFNpbmNlIGlub2RlX3NldGF0dHIoKSB1cGRhdGVzIC0+aV9zaXplCiAJICogYmVmb3JlIGNhbGxpbmcgdGhlIC0+dHJ1bmNhdGUoKSwgYnV0IEZBVCBuZWVkcyB0byBmaWxsIHRoZQpAQCAtMzY2LDcgKzM2MSw2IEBACiAKIAllcnJvciA9IGlub2RlX3NldGF0dHIoaW5vZGUsIGF0dHIpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gZXJyb3I7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChmYXRfc2V0YXR0cik7CmRpZmYgLS1naXQgYS9mcy9mYXQvaW5vZGUuYyBiL2ZzL2ZhdC9pbm9kZS5jCmluZGV4IDRlMGEzZGQuLjQ2YTQ1MDggMTAwNjQ0Ci0tLSBhL2ZzL2ZhdC9pbm9kZS5jCisrKyBiL2ZzL2ZhdC9pbm9kZS5jCkBAIC00NDAsMTQgKzQ0MCwxMyBAQAogCiBzdGF0aWMgdm9pZCBmYXRfY2xlYXJfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKIHsKLQlzdHJ1Y3QgbXNkb3Nfc2JfaW5mbyAqc2JpID0gTVNET1NfU0IoaW5vZGUtPmlfc2IpOworCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBpbm9kZS0+aV9zYjsKKwlzdHJ1Y3QgbXNkb3Nfc2JfaW5mbyAqc2JpID0gTVNET1NfU0Ioc2IpOwogCi0JbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2soJnNiaS0+aW5vZGVfaGFzaF9sb2NrKTsKIAlmYXRfY2FjaGVfaW52YWxfaW5vZGUoaW5vZGUpOwogCWhsaXN0X2RlbF9pbml0KCZNU0RPU19JKGlub2RlKS0+aV9mYXRfaGFzaCk7CiAJc3Bpbl91bmxvY2soJnNiaS0+aW5vZGVfaGFzaF9sb2NrKTsKLQl1bmxvY2tfa2VybmVsKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGZhdF93cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQpAQCAtNDg1LDcgKzQ4NCw3IEBACiBzdGF0aWMgc3RydWN0IGlub2RlICpmYXRfYWxsb2NfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3QgbXNkb3NfaW5vZGVfaW5mbyAqZWk7Ci0JZWkgPSBrbWVtX2NhY2hlX2FsbG9jKGZhdF9pbm9kZV9jYWNoZXAsIEdGUF9LRVJORUwpOworCWVpID0ga21lbV9jYWNoZV9hbGxvYyhmYXRfaW5vZGVfY2FjaGVwLCBHRlBfTk9GUyk7CiAJaWYgKCFlaSkKIAkJcmV0dXJuIE5VTEw7CiAJcmV0dXJuICZlaS0+dmZzX2lub2RlOwpAQCAtNTY3LDcgKzU2Niw3IEBACiAJaWYgKGlub2RlLT5pX2lubyA9PSBNU0RPU19ST09UX0lOTyB8fCAhaV9wb3MpCiAJCXJldHVybiAwOwogCi0JbG9ja19rZXJuZWwoKTsKKwlsb2NrX3N1cGVyKHNiKTsKIAliaCA9IHNiX2JyZWFkKHNiLCBpX3BvcyA+PiBzYmktPmRpcl9wZXJfYmxvY2tfYml0cyk7CiAJaWYgKCFiaCkgewogCQlwcmludGsoS0VSTl9FUlIgIkZBVDogdW5hYmxlIHRvIHJlYWQgaW5vZGUgYmxvY2sgIgpAQCAtNTc5LDcgKzU3OCw3IEBACiAJaWYgKGlfcG9zICE9IE1TRE9TX0koaW5vZGUpLT5pX3BvcykgewogCQlzcGluX3VubG9jaygmc2JpLT5pbm9kZV9oYXNoX2xvY2spOwogCQlicmVsc2UoYmgpOwotCQl1bmxvY2tfa2VybmVsKCk7CisJCXVubG9ja19zdXBlcihzYik7CiAJCWdvdG8gcmV0cnk7CiAJfQogCkBAIC02MDYsNyArNjA1LDcgQEAKIAkJZXJyID0gc3luY19kaXJ0eV9idWZmZXIoYmgpOwogCWJyZWxzZShiaCk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtNzM2LDYgKzczNSw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpmYXRfZ2V0X3BhcmVudChzdHJ1Y3QgZGVudHJ5ICpjaGlsZCkKIHsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gY2hpbGQtPmRfc2I7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKIAlzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICpkZTsKIAlsb2ZmX3QgaV9wb3M7CkBAIC03NDMsMTQgKzc0MywxNCBAQAogCXN0cnVjdCBpbm9kZSAqaW5vZGU7CiAJaW50IGVycjsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAKIAllcnIgPSBmYXRfZ2V0X2RvdGRvdF9lbnRyeShjaGlsZC0+ZF9pbm9kZSwgJmJoLCAmZGUsICZpX3Bvcyk7CiAJaWYgKGVycikgewogCQlwYXJlbnQgPSBFUlJfUFRSKGVycik7CiAJCWdvdG8gb3V0OwogCX0KLQlpbm9kZSA9IGZhdF9idWlsZF9pbm9kZShjaGlsZC0+ZF9zYiwgZGUsIGlfcG9zKTsKKwlpbm9kZSA9IGZhdF9idWlsZF9pbm9kZShzYiwgZGUsIGlfcG9zKTsKIAlicmVsc2UoYmgpOwogCWlmIChJU19FUlIoaW5vZGUpKSB7CiAJCXBhcmVudCA9IEVSUl9DQVNUKGlub2RlKTsKQEAgLTc2Miw3ICs3NjIsNyBAQAogCQlwYXJlbnQgPSBFUlJfUFRSKC1FTk9NRU0pOwogCX0KIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAogCXJldHVybiBwYXJlbnQ7CiB9CkBAIC0xMTcyLDYgKzExNzIsMTIgQEAKIAlsb25nIGVycm9yOwogCWNoYXIgYnVmWzUwXTsKIAorCS8qCisJICogR0ZQX0tFUk5FTCBpcyBvayBoZXJlLCBiZWNhdXNlIHdoaWxlIHdlIGRvIGhvbGQgdGhlCisJICogc3VwZWJsb2NrIGxvY2ssIG1lbW9yeSBwcmVzc3VyZSBjYW4ndCBjYWxsIGJhY2sgaW50bworCSAqIHRoZSBmaWxlc3lzdGVtLCBzaW5jZSB3ZSdyZSBvbmx5IGp1c3QgYWJvdXQgdG8gbW91bnQKKwkgKiBpdCBhbmQgaGF2ZSBubyBpbm9kZXMgZXRjIGFjdGl2ZSEKKwkgKi8KIAlzYmkgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbXNkb3Nfc2JfaW5mbyksIEdGUF9LRVJORUwpOwogCWlmICghc2JpKQogCQlyZXR1cm4gLUVOT01FTTsKZGlmZiAtLWdpdCBhL2ZzL2ZjbnRsLmMgYi9mcy9mY250bC5jCmluZGV4IGJmZDc3NjUuLjMzMGE3ZDcgMTAwNjQ0Ci0tLSBhL2ZzL2ZjbnRsLmMKKysrIGIvZnMvZmNudGwuYwpAQCAtMTIsNyArMTIsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2ZkdGFibGUuaD4KICNpbmNsdWRlIDxsaW51eC9jYXBhYmlsaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvZG5vdGlmeS5oPgotI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CkBAIC0yMjcsNyArMjI2LDYgQEAKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAotCWxvY2tfa2VybmVsKCk7CiAJaWYgKChhcmcgXiBmaWxwLT5mX2ZsYWdzKSAmIEZBU1lOQykgewogCQlpZiAoZmlscC0+Zl9vcCAmJiBmaWxwLT5mX29wLT5mYXN5bmMpIHsKIAkJCWVycm9yID0gZmlscC0+Zl9vcC0+ZmFzeW5jKGZkLCBmaWxwLCAoYXJnICYgRkFTWU5DKSAhPSAwKTsKQEAgLTIzOCw3ICsyMzYsNiBAQAogCiAJZmlscC0+Zl9mbGFncyA9IChhcmcgJiBTRVRGTF9NQVNLKSB8IChmaWxwLT5mX2ZsYWdzICYgflNFVEZMX01BU0spOwogIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycm9yOwogfQogCmRpZmYgLS1naXQgYS9mcy9nZnMyL0tjb25maWcgYi9mcy9nZnMyL0tjb25maWcKaW5kZXggN2Y3OTQ3ZS4uYWIyZjU3ZSAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9LY29uZmlnCisrKyBiL2ZzL2dmczIvS2NvbmZpZwpAQCAtMTQsMjMgKzE0LDExIEBACiAJICBHRlMgaXMgcGVyZmVjdCBjb25zaXN0ZW5jeSAtLSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGZpbGVzeXN0ZW0gb24gb25lCiAJICBtYWNoaW5lIHNob3cgdXAgaW1tZWRpYXRlbHkgb24gYWxsIG90aGVyIG1hY2hpbmVzIGluIHRoZSBjbHVzdGVyLgogCi0JICBUbyB1c2UgdGhlIEdGUzIgZmlsZXN5c3RlbSwgeW91IHdpbGwgbmVlZCB0byBlbmFibGUgb25lIG9yIG1vcmUgb2YKLQkgIHRoZSBiZWxvdyBsb2NraW5nIG1vZHVsZXMuIERvY3VtZW50YXRpb24gYW5kIHV0aWxpdGllcyBmb3IgR0ZTMiBjYW4KKwkgIFRvIHVzZSB0aGUgR0ZTMiBmaWxlc3lzdGVtIGluIGEgY2x1c3RlciwgeW91IHdpbGwgbmVlZCB0byBlbmFibGUKKwkgIHRoZSBsb2NraW5nIG1vZHVsZSBiZWxvdy4gRG9jdW1lbnRhdGlvbiBhbmQgdXRpbGl0aWVzIGZvciBHRlMyIGNhbgogCSAgYmUgZm91bmQgaGVyZTogaHR0cDovL3NvdXJjZXMucmVkaGF0LmNvbS9jbHVzdGVyCiAKLWNvbmZpZyBHRlMyX0ZTX0xPQ0tJTkdfTk9MT0NLCi0JdHJpc3RhdGUgIkdGUzIgXCJub2xvY2tcIiBsb2NraW5nIG1vZHVsZSIKLQlkZXBlbmRzIG9uIEdGUzJfRlMKLQloZWxwCi0JICBTaW5nbGUgbm9kZSBsb2NraW5nIG1vZHVsZSBmb3IgR0ZTMi4KLQotCSAgVXNlIHRoaXMgbW9kdWxlIGlmIHlvdSB3YW50IHRvIHVzZSBHRlMyIG9uIGEgc2luZ2xlIG5vZGUgd2l0aG91dAotCSAgaXRzIGNsdXN0ZXJpbmcgZmVhdHVyZXMuIFlvdSBjYW4gc3RpbGwgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlCi0JICBsYXJnZSBmaWxlIHN1cHBvcnQsIGFuZCB1cGdyYWRlIHRvIHJ1bm5pbmcgYSBmdWxsIGNsdXN0ZXIgbGF0ZXIgb24KLQkgIGlmIHJlcXVpcmVkLgotCi0JICBJZiB5b3Ugd2lsbCBvbmx5IGJlIHVzaW5nIEdGUzIgaW4gY2x1c3RlciBtb2RlLCB5b3UgZG8gbm90IG5lZWQgdGhpcwotCSAgbW9kdWxlLgorCSAgVGhlICJub2xvY2siIGxvY2sgbW9kdWxlIGlzIG5vdyBidWlsdCBpbiB0byBHRlMyIGJ5IGRlZmF1bHQuCiAKIGNvbmZpZyBHRlMyX0ZTX0xPQ0tJTkdfRExNCiAJdHJpc3RhdGUgIkdGUzIgRExNIGxvY2tpbmcgbW9kdWxlIgpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9NYWtlZmlsZSBiL2ZzL2dmczIvTWFrZWZpbGUKaW5kZXggZTIzNTBkZi4uZWM2NTg1MSAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9NYWtlZmlsZQorKysgYi9mcy9nZnMyL01ha2VmaWxlCkBAIC01LDYgKzUsNSBAQAogCW9wc19mc3R5cGUubyBvcHNfaW5vZGUubyBvcHNfc3VwZXIubyBxdW90YS5vIFwKIAlyZWNvdmVyeS5vIHJncnAubyBzdXBlci5vIHN5cy5vIHRyYW5zLm8gdXRpbC5vCiAKLW9iai0kKENPTkZJR19HRlMyX0ZTX0xPQ0tJTkdfTk9MT0NLKSArPSBsb2NraW5nL25vbG9jay8KIG9iai0kKENPTkZJR19HRlMyX0ZTX0xPQ0tJTkdfRExNKSArPSBsb2NraW5nL2RsbS8KIApkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9nZnMyLmggYi9mcy9nZnMyL2dmczIuaAppbmRleCAzYmIxMWMwLi5lZjYwNmUzIDEwMDY0NAotLS0gYS9mcy9nZnMyL2dmczIuaAorKysgYi9mcy9nZnMyL2dmczIuaApAQCAtMTYsMTEgKzE2LDYgQEAKIH07CiAKIGVudW0gewotCU5PX1dBSVQgPSAwLAotCVdBSVQgPSAxLAotfTsKLQotZW51bSB7CiAJTk9fRk9SQ0UgPSAwLAogCUZPUkNFID0gMSwKIH07CmRpZmYgLS1naXQgYS9mcy9nZnMyL2dsb2NrLmMgYi9mcy9nZnMyL2dsb2NrLmMKaW5kZXggZDYzNmIzZS4uMTMzOTFlNSAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9nbG9jay5jCisrKyBiL2ZzL2dmczIvZ2xvY2suYwpAQCAtNDUsMjEgKzQ1LDE5IEBACiAgICAgICAgIHN0cnVjdCBobGlzdF9oZWFkIGhiX2xpc3Q7CiB9OwogCi1zdHJ1Y3QgZ2xvY2tfaXRlciB7Ci0JaW50IGhhc2g7ICAgICAgICAgICAgICAgICAgICAgLyogaGFzaCBidWNrZXQgaW5kZXggICAgICAgICAqLwotCXN0cnVjdCBnZnMyX3NiZCAqc2RwOyAgICAgICAgIC8qIGluY29yZSBzdXBlcmJsb2NrICAgICAgICAgKi8KLQlzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2w7ICAgICAgICAvKiBjdXJyZW50IGdsb2NrIHN0cnVjdCAgICAgICovCi0Jc3RydWN0IHNlcV9maWxlICpzZXE7ICAgICAgICAgLyogc2VxdWVuY2UgZmlsZSBmb3IgZGVidWdmcyAqLwotCWNoYXIgc3RyaW5nWzUxMl07ICAgICAgICAgICAgIC8qIHNjcmF0Y2ggc3BhY2UgICAgICAgICAgICAgKi8KK3N0cnVjdCBnZnMyX2dsb2NrX2l0ZXIgeworCWludCBoYXNoOwkJCS8qIGhhc2ggYnVja2V0IGluZGV4ICAgICAgICAgKi8KKwlzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcDsJCS8qIGluY29yZSBzdXBlcmJsb2NrICAgICAgICAgKi8KKwlzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2w7CQkvKiBjdXJyZW50IGdsb2NrIHN0cnVjdCAgICAgICovCisJY2hhciBzdHJpbmdbNTEyXTsJCS8qIHNjcmF0Y2ggc3BhY2UgICAgICAgICAgICAgKi8KIH07CiAKIHR5cGVkZWYgdm9pZCAoKmdsb2NrX2V4YW1pbmVyKSAoc3RydWN0IGdmczJfZ2xvY2sgKiBnbCk7CiAKIHN0YXRpYyBpbnQgZ2ZzMl9kdW1wX2xvY2tzdGF0ZShzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCk7Ci1zdGF0aWMgaW50IGR1bXBfZ2xvY2soc3RydWN0IGdsb2NrX2l0ZXIgKmdpLCBzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpOwotc3RhdGljIHZvaWQgZ2ZzMl9nbG9ja194bW90ZV90aChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpOwotc3RhdGljIHZvaWQgZ2ZzMl9nbG9ja19kcm9wX3RoKHN0cnVjdCBnZnMyX2dsb2NrICpnbCk7Ci1zdGF0aWMgdm9pZCBydW5fcXVldWUoc3RydWN0IGdmczJfZ2xvY2sgKmdsKTsKK3N0YXRpYyBpbnQgX19kdW1wX2dsb2NrKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBjb25zdCBzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpOworI2RlZmluZSBHTE9DS19CVUdfT04oZ2wseCkgZG8geyBpZiAodW5saWtlbHkoeCkpIHsgX19kdW1wX2dsb2NrKE5VTEwsIGdsKTsgQlVHKCk7IH0gfSB3aGlsZSgwKQorc3RhdGljIHZvaWQgZG9feG1vdGUoc3RydWN0IGdmczJfZ2xvY2sgKmdsLCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoLCB1bnNpZ25lZCBpbnQgdGFyZ2V0KTsKIAogc3RhdGljIERFQ0xBUkVfUldTRU0oZ2ZzMl91bW91bnRfZmx1c2hfc2VtKTsKIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpnZnMyX3Jvb3Q7CkBAIC0xMjMsMzMgKzEyMSw2IEBACiAjZW5kaWYKIAogLyoqCi0gKiByZWxheGVkX3N0YXRlX29rIC0gaXMgYSByZXF1ZXN0ZWQgbG9jayBjb21wYXRpYmxlIHdpdGggdGhlIGN1cnJlbnQgbG9jayBtb2RlPwotICogQGFjdHVhbDogdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGxvY2sKLSAqIEByZXF1ZXN0ZWQ6IHRoZSBsb2NrIHN0YXRlIHRoYXQgd2FzIHJlcXVlc3RlZCBieSB0aGUgY2FsbGVyCi0gKiBAZmxhZ3M6IHRoZSBtb2RpZmllciBmbGFncyBwYXNzZWQgaW4gYnkgdGhlIGNhbGxlcgotICoKLSAqIFJldHVybnM6IDEgaWYgdGhlIGxvY2tzIGFyZSBjb21wYXRpYmxlLCAwIG90aGVyd2lzZQotICovCi0KLXN0YXRpYyBpbmxpbmUgaW50IHJlbGF4ZWRfc3RhdGVfb2sodW5zaWduZWQgaW50IGFjdHVhbCwgdW5zaWduZWQgcmVxdWVzdGVkLAotCQkJCSAgIGludCBmbGFncykKLXsKLQlpZiAoYWN0dWFsID09IHJlcXVlc3RlZCkKLQkJcmV0dXJuIDE7Ci0KLQlpZiAoZmxhZ3MgJiBHTF9FWEFDVCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoYWN0dWFsID09IExNX1NUX0VYQ0xVU0lWRSAmJiByZXF1ZXN0ZWQgPT0gTE1fU1RfU0hBUkVEKQotCQlyZXR1cm4gMTsKLQotCWlmIChhY3R1YWwgIT0gTE1fU1RfVU5MT0NLRUQgJiYgKGZsYWdzICYgTE1fRkxBR19BTlkpKQotCQlyZXR1cm4gMTsKLQotCXJldHVybiAwOwotfQotCi0vKioKICAqIGdsX2hhc2goKSAtIFR1cm4gZ2xvY2sgbnVtYmVyIGludG8gaGFzaCBidWNrZXQgbnVtYmVyCiAgKiBAbG9jazogVGhlIGdsb2NrIG51bWJlcgogICoKQEAgLTE4Miw3ICsxNTMsNyBAQAogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gZ2wtPmdsX3NiZDsKIAlzdHJ1Y3QgaW5vZGUgKmFzcGFjZSA9IGdsLT5nbF9hc3BhY2U7CiAKLQlpZiAobGlrZWx5KCF0ZXN0X2JpdChTREZfU0hVVERPV04sICZzZHAtPnNkX2ZsYWdzKSkpCisJaWYgKHNkcC0+c2RfbG9ja3N0cnVjdC5sc19vcHMtPmxtX3B1dF9sb2NrKQogCQlzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9wdXRfbG9jayhnbC0+Z2xfbG9jayk7CiAKIAlpZiAoYXNwYWNlKQpAQCAtMjExLDE3ICsxODIsMTQgQEAKIGludCBnZnMyX2dsb2NrX3B1dChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpCiB7CiAJaW50IHJ2ID0gMDsKLQlzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCA9IGdsLT5nbF9zYmQ7CiAKIAl3cml0ZV9sb2NrKGdsX2xvY2tfYWRkcihnbC0+Z2xfaGFzaCkpOwogCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZnbC0+Z2xfcmVmKSkgewogCQlobGlzdF9kZWwoJmdsLT5nbF9saXN0KTsKIAkJd3JpdGVfdW5sb2NrKGdsX2xvY2tfYWRkcihnbC0+Z2xfaGFzaCkpOwotCQlnZnMyX2Fzc2VydChzZHAsIGdsLT5nbF9zdGF0ZSA9PSBMTV9TVF9VTkxPQ0tFRCk7Ci0JCWdmczJfYXNzZXJ0KHNkcCwgbGlzdF9lbXB0eSgmZ2wtPmdsX3JlY2xhaW0pKTsKLQkJZ2ZzMl9hc3NlcnQoc2RwLCBsaXN0X2VtcHR5KCZnbC0+Z2xfaG9sZGVycykpOwotCQlnZnMyX2Fzc2VydChzZHAsIGxpc3RfZW1wdHkoJmdsLT5nbF93YWl0ZXJzMSkpOwotCQlnZnMyX2Fzc2VydChzZHAsIGxpc3RfZW1wdHkoJmdsLT5nbF93YWl0ZXJzMykpOworCQlHTE9DS19CVUdfT04oZ2wsIGdsLT5nbF9zdGF0ZSAhPSBMTV9TVF9VTkxPQ0tFRCk7CisJCUdMT0NLX0JVR19PTihnbCwgIWxpc3RfZW1wdHkoJmdsLT5nbF9yZWNsYWltKSk7CisJCUdMT0NLX0JVR19PTihnbCwgIWxpc3RfZW1wdHkoJmdsLT5nbF9ob2xkZXJzKSk7CiAJCWdsb2NrX2ZyZWUoZ2wpOwogCQlydiA9IDE7CiAJCWdvdG8gb3V0OwpAQCAtMjgxLDIyICsyNDksNDAxIEBACiAJcmV0dXJuIGdsOwogfQogCi1zdGF0aWMgdm9pZCBnbG9ja193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQorLyoqCisgKiBtYXlfZ3JhbnQgLSBjaGVjayBpZiBpdHMgb2sgdG8gZ3JhbnQgYSBuZXcgbG9jaworICogQGdsOiBUaGUgZ2xvY2sKKyAqIEBnaDogVGhlIGxvY2sgcmVxdWVzdCB3aGljaCB3ZSB3aXNoIHRvIGdyYW50CisgKgorICogUmV0dXJuczogdHJ1ZSBpZiBpdHMgb2sgdG8gZ3JhbnQgdGhlIGxvY2sKKyAqLworCitzdGF0aWMgaW5saW5lIGludCBtYXlfZ3JhbnQoY29uc3Qgc3RydWN0IGdmczJfZ2xvY2sgKmdsLCBjb25zdCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKQogewotCXN0cnVjdCBnZnMyX2dsb2NrICpnbCA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZ2ZzMl9nbG9jaywgZ2xfd29yay53b3JrKTsKKwljb25zdCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoX2hlYWQgPSBsaXN0X2VudHJ5KGdsLT5nbF9ob2xkZXJzLm5leHQsIGNvbnN0IHN0cnVjdCBnZnMyX2hvbGRlciwgZ2hfbGlzdCk7CisJaWYgKChnaC0+Z2hfc3RhdGUgPT0gTE1fU1RfRVhDTFVTSVZFIHx8CisJICAgICBnaF9oZWFkLT5naF9zdGF0ZSA9PSBMTV9TVF9FWENMVVNJVkUpICYmIGdoICE9IGdoX2hlYWQpCisJCXJldHVybiAwOworCWlmIChnbC0+Z2xfc3RhdGUgPT0gZ2gtPmdoX3N0YXRlKQorCQlyZXR1cm4gMTsKKwlpZiAoZ2gtPmdoX2ZsYWdzICYgR0xfRVhBQ1QpCisJCXJldHVybiAwOworCWlmIChnbC0+Z2xfc3RhdGUgPT0gTE1fU1RfRVhDTFVTSVZFKSB7CisJCWlmIChnaC0+Z2hfc3RhdGUgPT0gTE1fU1RfU0hBUkVEICYmIGdoX2hlYWQtPmdoX3N0YXRlID09IExNX1NUX1NIQVJFRCkKKwkJCXJldHVybiAxOworCQlpZiAoZ2gtPmdoX3N0YXRlID09IExNX1NUX0RFRkVSUkVEICYmIGdoX2hlYWQtPmdoX3N0YXRlID09IExNX1NUX0RFRkVSUkVEKQorCQkJcmV0dXJuIDE7CisJfQorCWlmIChnbC0+Z2xfc3RhdGUgIT0gTE1fU1RfVU5MT0NLRUQgJiYgKGdoLT5naF9mbGFncyAmIExNX0ZMQUdfQU5ZKSkKKwkJcmV0dXJuIDE7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGdmczJfaG9sZGVyX3dha2Uoc3RydWN0IGdmczJfaG9sZGVyICpnaCkKK3sKKwljbGVhcl9iaXQoSElGX1dBSVQsICZnaC0+Z2hfaWZsYWdzKTsKKwlzbXBfbWJfX2FmdGVyX2NsZWFyX2JpdCgpOworCXdha2VfdXBfYml0KCZnaC0+Z2hfaWZsYWdzLCBISUZfV0FJVCk7Cit9CisKKy8qKgorICogZG9fcHJvbW90ZSAtIHByb21vdGUgYXMgbWFueSByZXF1ZXN0cyBhcyBwb3NzaWJsZSBvbiB0aGUgY3VycmVudCBxdWV1ZQorICogQGdsOiBUaGUgZ2xvY2sKKyAqIAorICogUmV0dXJuczogdHJ1ZSBpZiB0aGVyZSBpcyBhIGJsb2NrZWQgaG9sZGVyIGF0IHRoZSBoZWFkIG9mIHRoZSBsaXN0CisgKi8KKworc3RhdGljIGludCBkb19wcm9tb3RlKHN0cnVjdCBnZnMyX2dsb2NrICpnbCkKK3sKKwljb25zdCBzdHJ1Y3QgZ2ZzMl9nbG9ja19vcGVyYXRpb25zICpnbG9wcyA9IGdsLT5nbF9vcHM7CisJc3RydWN0IGdmczJfaG9sZGVyICpnaCwgKnRtcDsKKwlpbnQgcmV0OworCityZXN0YXJ0OgorCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShnaCwgdG1wLCAmZ2wtPmdsX2hvbGRlcnMsIGdoX2xpc3QpIHsKKwkJaWYgKHRlc3RfYml0KEhJRl9IT0xERVIsICZnaC0+Z2hfaWZsYWdzKSkKKwkJCWNvbnRpbnVlOworCQlpZiAobWF5X2dyYW50KGdsLCBnaCkpIHsKKwkJCWlmIChnaC0+Z2hfbGlzdC5wcmV2ID09ICZnbC0+Z2xfaG9sZGVycyAmJgorCQkJICAgIGdsb3BzLT5nb19sb2NrKSB7CisJCQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKKwkJCQkvKiBGSVhNRTogZWxpbWluYXRlIHRoaXMgZXZlbnR1YWxseSAqLworCQkJCXJldCA9IGdsb3BzLT5nb19sb2NrKGdoKTsKKwkJCQlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKKwkJCQlpZiAocmV0KSB7CisJCQkJCWdoLT5naF9lcnJvciA9IHJldDsKKwkJCQkJbGlzdF9kZWxfaW5pdCgmZ2gtPmdoX2xpc3QpOworCQkJCQlnZnMyX2hvbGRlcl93YWtlKGdoKTsKKwkJCQkJZ290byByZXN0YXJ0OworCQkJCX0KKwkJCQlzZXRfYml0KEhJRl9IT0xERVIsICZnaC0+Z2hfaWZsYWdzKTsKKwkJCQlnZnMyX2hvbGRlcl93YWtlKGdoKTsKKwkJCQlnb3RvIHJlc3RhcnQ7CisJCQl9CisJCQlzZXRfYml0KEhJRl9IT0xERVIsICZnaC0+Z2hfaWZsYWdzKTsKKwkJCWdmczJfaG9sZGVyX3dha2UoZ2gpOworCQkJY29udGludWU7CisJCX0KKwkJaWYgKGdoLT5naF9saXN0LnByZXYgPT0gJmdsLT5nbF9ob2xkZXJzKQorCQkJcmV0dXJuIDE7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBkb19lcnJvciAtIFNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcyBoYXBwZW5lZCBkdXJpbmcgYSBsb2NrIHJlcXVlc3QKKyAqCisgKi8KKworc3RhdGljIGlubGluZSB2b2lkIGRvX2Vycm9yKHN0cnVjdCBnZnMyX2dsb2NrICpnbCwgY29uc3QgaW50IHJldCkKK3sKKwlzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoLCAqdG1wOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGdoLCB0bXAsICZnbC0+Z2xfaG9sZGVycywgZ2hfbGlzdCkgeworCQlpZiAodGVzdF9iaXQoSElGX0hPTERFUiwgJmdoLT5naF9pZmxhZ3MpKQorCQkJY29udGludWU7CisJCWlmIChyZXQgJiBMTV9PVVRfRVJST1IpCisJCQlnaC0+Z2hfZXJyb3IgPSAtRUlPOworCQllbHNlIGlmIChnaC0+Z2hfZmxhZ3MgJiAoTE1fRkxBR19UUlkgfCBMTV9GTEFHX1RSWV8xQ0IpKQorCQkJZ2gtPmdoX2Vycm9yID0gR0xSX1RSWUZBSUxFRDsKKwkJZWxzZQorCQkJY29udGludWU7CisJCWxpc3RfZGVsX2luaXQoJmdoLT5naF9saXN0KTsKKwkJZ2ZzMl9ob2xkZXJfd2FrZShnaCk7CisJfQorfQorCisvKioKKyAqIGZpbmRfZmlyc3Rfd2FpdGVyIC0gZmluZCB0aGUgZmlyc3QgZ2ggdGhhdCdzIHdhaXRpbmcgZm9yIHRoZSBnbG9jaworICogQGdsOiB0aGUgZ2xvY2sKKyAqLworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBnZnMyX2hvbGRlciAqZmluZF9maXJzdF93YWl0ZXIoY29uc3Qgc3RydWN0IGdmczJfZ2xvY2sgKmdsKQoreworCXN0cnVjdCBnZnMyX2hvbGRlciAqZ2g7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGdoLCAmZ2wtPmdsX2hvbGRlcnMsIGdoX2xpc3QpIHsKKwkJaWYgKCF0ZXN0X2JpdChISUZfSE9MREVSLCAmZ2gtPmdoX2lmbGFncykpCisJCQlyZXR1cm4gZ2g7CisJfQorCXJldHVybiBOVUxMOworfQorCisvKioKKyAqIHN0YXRlX2NoYW5nZSAtIHJlY29yZCB0aGF0IHRoZSBnbG9jayBpcyBub3cgaW4gYSBkaWZmZXJlbnQgc3RhdGUKKyAqIEBnbDogdGhlIGdsb2NrCisgKiBAbmV3X3N0YXRlIHRoZSBuZXcgc3RhdGUKKyAqCisgKi8KKworc3RhdGljIHZvaWQgc3RhdGVfY2hhbmdlKHN0cnVjdCBnZnMyX2dsb2NrICpnbCwgdW5zaWduZWQgaW50IG5ld19zdGF0ZSkKK3sKKwlpbnQgaGVsZDEsIGhlbGQyOworCisJaGVsZDEgPSAoZ2wtPmdsX3N0YXRlICE9IExNX1NUX1VOTE9DS0VEKTsKKwloZWxkMiA9IChuZXdfc3RhdGUgIT0gTE1fU1RfVU5MT0NLRUQpOworCisJaWYgKGhlbGQxICE9IGhlbGQyKSB7CisJCWlmIChoZWxkMikKKwkJCWdmczJfZ2xvY2tfaG9sZChnbCk7CisJCWVsc2UKKwkJCWdmczJfZ2xvY2tfcHV0KGdsKTsKKwl9CisKKwlnbC0+Z2xfc3RhdGUgPSBuZXdfc3RhdGU7CisJZ2wtPmdsX3RjaGFuZ2UgPSBqaWZmaWVzOworfQorCitzdGF0aWMgdm9pZCBnZnMyX2RlbW90ZV93YWtlKHN0cnVjdCBnZnMyX2dsb2NrICpnbCkKK3sKKwlnbC0+Z2xfZGVtb3RlX3N0YXRlID0gTE1fU1RfRVhDTFVTSVZFOworCWNsZWFyX2JpdChHTEZfREVNT1RFLCAmZ2wtPmdsX2ZsYWdzKTsKKwlzbXBfbWJfX2FmdGVyX2NsZWFyX2JpdCgpOworCXdha2VfdXBfYml0KCZnbC0+Z2xfZmxhZ3MsIEdMRl9ERU1PVEUpOworfQorCisvKioKKyAqIGZpbmlzaF94bW90ZSAtIFRoZSBETE0gaGFzIHJlcGxpZWQgdG8gb25lIG9mIG91ciBsb2NrIHJlcXVlc3RzCisgKiBAZ2w6IFRoZSBnbG9jaworICogQHJldDogVGhlIHN0YXR1cyBmcm9tIHRoZSBETE0KKyAqCisgKi8KKworc3RhdGljIHZvaWQgZmluaXNoX3htb3RlKHN0cnVjdCBnZnMyX2dsb2NrICpnbCwgdW5zaWduZWQgaW50IHJldCkKK3sKKwljb25zdCBzdHJ1Y3QgZ2ZzMl9nbG9ja19vcGVyYXRpb25zICpnbG9wcyA9IGdsLT5nbF9vcHM7CisJc3RydWN0IGdmczJfaG9sZGVyICpnaDsKKwl1bnNpZ25lZCBzdGF0ZSA9IHJldCAmIExNX09VVF9TVF9NQVNLOwogCiAJc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0JaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChHTEZfUEVORElOR19ERU1PVEUsICZnbC0+Z2xfZmxhZ3MpKQotCQlzZXRfYml0KEdMRl9ERU1PVEUsICZnbC0+Z2xfZmxhZ3MpOwotCXJ1bl9xdWV1ZShnbCk7CisJc3RhdGVfY2hhbmdlKGdsLCBzdGF0ZSk7CisJZ2ggPSBmaW5kX2ZpcnN0X3dhaXRlcihnbCk7CisKKwkvKiBEZW1vdGUgdG8gVU4gcmVxdWVzdCBhcnJpdmVkIGR1cmluZyBkZW1vdGUgdG8gU0ggb3IgREYgKi8KKwlpZiAodGVzdF9iaXQoR0xGX0RFTU9URV9JTl9QUk9HUkVTUywgJmdsLT5nbF9mbGFncykgJiYKKwkgICAgc3RhdGUgIT0gTE1fU1RfVU5MT0NLRUQgJiYgZ2wtPmdsX2RlbW90ZV9zdGF0ZSA9PSBMTV9TVF9VTkxPQ0tFRCkKKwkJZ2wtPmdsX3RhcmdldCA9IExNX1NUX1VOTE9DS0VEOworCisJLyogQ2hlY2sgZm9yIHN0YXRlICE9IGludGVuZGVkIHN0YXRlICovCisJaWYgKHVubGlrZWx5KHN0YXRlICE9IGdsLT5nbF90YXJnZXQpKSB7CisJCWlmIChnaCAmJiAhdGVzdF9iaXQoR0xGX0RFTU9URV9JTl9QUk9HUkVTUywgJmdsLT5nbF9mbGFncykpIHsKKwkJCS8qIG1vdmUgdG8gYmFjayBvZiBxdWV1ZSBhbmQgdHJ5IG5leHQgZW50cnkgKi8KKwkJCWlmIChyZXQgJiBMTV9PVVRfQ0FOQ0VMRUQpIHsKKwkJCQlpZiAoKGdoLT5naF9mbGFncyAmIExNX0ZMQUdfUFJJT1JJVFkpID09IDApCisJCQkJCWxpc3RfbW92ZV90YWlsKCZnaC0+Z2hfbGlzdCwgJmdsLT5nbF9ob2xkZXJzKTsKKwkJCQlnaCA9IGZpbmRfZmlyc3Rfd2FpdGVyKGdsKTsKKwkJCQlnbC0+Z2xfdGFyZ2V0ID0gZ2gtPmdoX3N0YXRlOworCQkJCWdvdG8gcmV0cnk7CisJCQl9CisJCQkvKiBTb21lIGVycm9yIG9yIGZhaWxlZCAidHJ5IGxvY2siIC0gcmVwb3J0IGl0ICovCisJCQlpZiAoKHJldCAmIExNX09VVF9FUlJPUikgfHwKKwkJCSAgICAoZ2gtPmdoX2ZsYWdzICYgKExNX0ZMQUdfVFJZIHwgTE1fRkxBR19UUllfMUNCKSkpIHsKKwkJCQlnbC0+Z2xfdGFyZ2V0ID0gZ2wtPmdsX3N0YXRlOworCQkJCWRvX2Vycm9yKGdsLCByZXQpOworCQkJCWdvdG8gb3V0OworCQkJfQorCQl9CisJCXN3aXRjaChzdGF0ZSkgeworCQkvKiBVbmxvY2tlZCBkdWUgdG8gY29udmVyc2lvbiBkZWFkbG9jaywgdHJ5IGFnYWluICovCisJCWNhc2UgTE1fU1RfVU5MT0NLRUQ6CityZXRyeToKKwkJCWRvX3htb3RlKGdsLCBnaCwgZ2wtPmdsX3RhcmdldCk7CisJCQlicmVhazsKKwkJLyogQ29udmVyc2lvbiBmYWlscywgdW5sb2NrIGFuZCB0cnkgYWdhaW4gKi8KKwkJY2FzZSBMTV9TVF9TSEFSRUQ6CisJCWNhc2UgTE1fU1RfREVGRVJSRUQ6CisJCQlkb194bW90ZShnbCwgZ2gsIExNX1NUX1VOTE9DS0VEKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OiAvKiBFdmVyeXRoaW5nIGVsc2UgKi8KKwkJCXByaW50ayhLRVJOX0VSUiAiR0ZTMjogd2FudGVkICV1IGdvdCAldVxuIiwgZ2wtPmdsX3RhcmdldCwgc3RhdGUpOworCQkJR0xPQ0tfQlVHX09OKGdsLCAxKTsKKwkJfQorCQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOworCQlnZnMyX2dsb2NrX3B1dChnbCk7CisJCXJldHVybjsKKwl9CisKKwkvKiBGYXN0IHBhdGggLSB3ZSBnb3Qgd2hhdCB3ZSBhc2tlZCBmb3IgKi8KKwlpZiAodGVzdF9hbmRfY2xlYXJfYml0KEdMRl9ERU1PVEVfSU5fUFJPR1JFU1MsICZnbC0+Z2xfZmxhZ3MpKQorCQlnZnMyX2RlbW90ZV93YWtlKGdsKTsKKwlpZiAoc3RhdGUgIT0gTE1fU1RfVU5MT0NLRUQpIHsKKwkJaWYgKGdsb3BzLT5nb194bW90ZV9iaCkgeworCQkJaW50IHJ2OworCQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKKwkJCXJ2ID0gZ2xvcHMtPmdvX3htb3RlX2JoKGdsLCBnaCk7CisJCQlpZiAocnYgPT0gLUVBR0FJTikKKwkJCQlyZXR1cm47CisJCQlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKKwkJCWlmIChydikgeworCQkJCWRvX2Vycm9yKGdsLCBydik7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCX0KKwkJZG9fcHJvbW90ZShnbCk7CisJfQorb3V0OgorCWNsZWFyX2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncyk7CiAJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKIAlnZnMyX2dsb2NrX3B1dChnbCk7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZ2ZzMl9sbV9sb2NrKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCB2b2lkICpsb2NrLAorCQkJCSB1bnNpZ25lZCBpbnQgY3VyX3N0YXRlLCB1bnNpZ25lZCBpbnQgcmVxX3N0YXRlLAorCQkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJaW50IHJldCA9IExNX09VVF9FUlJPUjsKKworCWlmICghc2RwLT5zZF9sb2Nrc3RydWN0LmxzX29wcy0+bG1fbG9jaykKKwkJcmV0dXJuIHJlcV9zdGF0ZSA9PSBMTV9TVF9VTkxPQ0tFRCA/IDAgOiByZXFfc3RhdGU7CisKKwlpZiAobGlrZWx5KCF0ZXN0X2JpdChTREZfU0hVVERPV04sICZzZHAtPnNkX2ZsYWdzKSkpCisJCXJldCA9IHNkcC0+c2RfbG9ja3N0cnVjdC5sc19vcHMtPmxtX2xvY2sobG9jaywgY3VyX3N0YXRlLAorCQkJCQkJCSByZXFfc3RhdGUsIGZsYWdzKTsKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIGRvX3htb3RlIC0gQ2FsbHMgdGhlIERMTSB0byBjaGFuZ2UgdGhlIHN0YXRlIG9mIGEgbG9jaworICogQGdsOiBUaGUgbG9jayBzdGF0ZQorICogQGdoOiBUaGUgaG9sZGVyIChvbmx5IGZvciBwcm9tb3RlcykKKyAqIEB0YXJnZXQ6IFRoZSB0YXJnZXQgbG9jayBzdGF0ZQorICoKKyAqLworCitzdGF0aWMgdm9pZCBkb194bW90ZShzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gsIHVuc2lnbmVkIGludCB0YXJnZXQpCit7CisJY29uc3Qgc3RydWN0IGdmczJfZ2xvY2tfb3BlcmF0aW9ucyAqZ2xvcHMgPSBnbC0+Z2xfb3BzOworCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gZ2wtPmdsX3NiZDsKKwl1bnNpZ25lZCBpbnQgbGNrX2ZsYWdzID0gZ2ggPyBnaC0+Z2hfZmxhZ3MgOiAwOworCWludCByZXQ7CisKKwlsY2tfZmxhZ3MgJj0gKExNX0ZMQUdfVFJZIHwgTE1fRkxBR19UUllfMUNCIHwgTE1fRkxBR19OT0VYUCB8CisJCSAgICAgIExNX0ZMQUdfUFJJT1JJVFkpOworCUJVR19PTihnbC0+Z2xfc3RhdGUgPT0gdGFyZ2V0KTsKKwlCVUdfT04oZ2wtPmdsX3N0YXRlID09IGdsLT5nbF90YXJnZXQpOworCWlmICgodGFyZ2V0ID09IExNX1NUX1VOTE9DS0VEIHx8IHRhcmdldCA9PSBMTV9TVF9ERUZFUlJFRCkgJiYKKwkgICAgZ2xvcHMtPmdvX2ludmFsKSB7CisJCXNldF9iaXQoR0xGX0lOVkFMSURBVEVfSU5fUFJPR1JFU1MsICZnbC0+Z2xfZmxhZ3MpOworCQlkb19lcnJvcihnbCwgMCk7IC8qIEZhaWwgcXVldWVkIHRyeSBsb2NrcyAqLworCX0KKwlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOworCWlmIChnbG9wcy0+Z29feG1vdGVfdGgpCisJCWdsb3BzLT5nb194bW90ZV90aChnbCk7CisJaWYgKHRlc3RfYml0KEdMRl9JTlZBTElEQVRFX0lOX1BST0dSRVNTLCAmZ2wtPmdsX2ZsYWdzKSkKKwkJZ2xvcHMtPmdvX2ludmFsKGdsLCB0YXJnZXQgPT0gTE1fU1RfREVGRVJSRUQgPyAwIDogRElPX01FVEFEQVRBKTsKKwljbGVhcl9iaXQoR0xGX0lOVkFMSURBVEVfSU5fUFJPR1JFU1MsICZnbC0+Z2xfZmxhZ3MpOworCisJZ2ZzMl9nbG9ja19ob2xkKGdsKTsKKwlpZiAodGFyZ2V0ICE9IExNX1NUX1VOTE9DS0VEICYmIChnbC0+Z2xfc3RhdGUgPT0gTE1fU1RfU0hBUkVEIHx8CisJICAgIGdsLT5nbF9zdGF0ZSA9PSBMTV9TVF9ERUZFUlJFRCkgJiYKKwkgICAgIShsY2tfZmxhZ3MgJiAoTE1fRkxBR19UUlkgfCBMTV9GTEFHX1RSWV8xQ0IpKSkKKwkJbGNrX2ZsYWdzIHw9IExNX0ZMQUdfVFJZXzFDQjsKKwlyZXQgPSBnZnMyX2xtX2xvY2soc2RwLCBnbC0+Z2xfbG9jaywgZ2wtPmdsX3N0YXRlLCB0YXJnZXQsIGxja19mbGFncyk7CisKKwlpZiAoIShyZXQgJiBMTV9PVVRfQVNZTkMpKSB7CisJCWZpbmlzaF94bW90ZShnbCwgcmV0KTsKKwkJZ2ZzMl9nbG9ja19ob2xkKGdsKTsKKwkJaWYgKHF1ZXVlX2RlbGF5ZWRfd29yayhnbG9ja193b3JrcXVldWUsICZnbC0+Z2xfd29yaywgMCkgPT0gMCkKKwkJCWdmczJfZ2xvY2tfcHV0KGdsKTsKKwl9IGVsc2UgeworCQlHTE9DS19CVUdfT04oZ2wsIHJldCAhPSBMTV9PVVRfQVNZTkMpOworCX0KKwlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKK30KKworLyoqCisgKiBmaW5kX2ZpcnN0X2hvbGRlciAtIGZpbmQgdGhlIGZpcnN0ICJob2xkZXIiIGdoCisgKiBAZ2w6IHRoZSBnbG9jaworICovCisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGdmczJfaG9sZGVyICpmaW5kX2ZpcnN0X2hvbGRlcihjb25zdCBzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpCit7CisJc3RydWN0IGdmczJfaG9sZGVyICpnaDsKKworCWlmICghbGlzdF9lbXB0eSgmZ2wtPmdsX2hvbGRlcnMpKSB7CisJCWdoID0gbGlzdF9lbnRyeShnbC0+Z2xfaG9sZGVycy5uZXh0LCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIsIGdoX2xpc3QpOworCQlpZiAodGVzdF9iaXQoSElGX0hPTERFUiwgJmdoLT5naF9pZmxhZ3MpKQorCQkJcmV0dXJuIGdoOworCX0KKwlyZXR1cm4gTlVMTDsKK30KKworLyoqCisgKiBydW5fcXVldWUgLSBkbyBhbGwgb3V0c3RhbmRpbmcgdGFza3MgcmVsYXRlZCB0byBhIGdsb2NrCisgKiBAZ2w6IFRoZSBnbG9jayBpbiBxdWVzdGlvbgorICogQG5vbmJsb2NrOiBUcnVlIGlmIHdlIG11c3Qgbm90IGJsb2NrIGluIHJ1bl9xdWV1ZQorICoKKyAqLworCitzdGF0aWMgdm9pZCBydW5fcXVldWUoc3RydWN0IGdmczJfZ2xvY2sgKmdsLCBjb25zdCBpbnQgbm9uYmxvY2spCit7CisJc3RydWN0IGdmczJfaG9sZGVyICpnaCA9IE5VTEw7CisKKwlpZiAodGVzdF9hbmRfc2V0X2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncykpCisJCXJldHVybjsKKworCUdMT0NLX0JVR19PTihnbCwgdGVzdF9iaXQoR0xGX0RFTU9URV9JTl9QUk9HUkVTUywgJmdsLT5nbF9mbGFncykpOworCisJaWYgKHRlc3RfYml0KEdMRl9ERU1PVEUsICZnbC0+Z2xfZmxhZ3MpICYmCisJICAgIGdsLT5nbF9kZW1vdGVfc3RhdGUgIT0gZ2wtPmdsX3N0YXRlKSB7CisJCWlmIChmaW5kX2ZpcnN0X2hvbGRlcihnbCkpCisJCQlnb3RvIG91dDsKKwkJaWYgKG5vbmJsb2NrKQorCQkJZ290byBvdXRfc2NoZWQ7CisJCXNldF9iaXQoR0xGX0RFTU9URV9JTl9QUk9HUkVTUywgJmdsLT5nbF9mbGFncyk7CisJCUdMT0NLX0JVR19PTihnbCwgZ2wtPmdsX2RlbW90ZV9zdGF0ZSA9PSBMTV9TVF9FWENMVVNJVkUpOworCQlnbC0+Z2xfdGFyZ2V0ID0gZ2wtPmdsX2RlbW90ZV9zdGF0ZTsKKwl9IGVsc2UgeworCQlpZiAodGVzdF9iaXQoR0xGX0RFTU9URSwgJmdsLT5nbF9mbGFncykpCisJCQlnZnMyX2RlbW90ZV93YWtlKGdsKTsKKwkJaWYgKGRvX3Byb21vdGUoZ2wpID09IDApCisJCQlnb3RvIG91dDsKKwkJZ2ggPSBmaW5kX2ZpcnN0X3dhaXRlcihnbCk7CisJCWdsLT5nbF90YXJnZXQgPSBnaC0+Z2hfc3RhdGU7CisJCWlmICghKGdoLT5naF9mbGFncyAmIChMTV9GTEFHX1RSWSB8IExNX0ZMQUdfVFJZXzFDQikpKQorCQkJZG9fZXJyb3IoZ2wsIDApOyAvKiBGYWlsIHF1ZXVlZCB0cnkgbG9ja3MgKi8KKwl9CisJZG9feG1vdGUoZ2wsIGdoLCBnbC0+Z2xfdGFyZ2V0KTsKKwlyZXR1cm47CisKK291dF9zY2hlZDoKKwlnZnMyX2dsb2NrX2hvbGQoZ2wpOworCWlmIChxdWV1ZV9kZWxheWVkX3dvcmsoZ2xvY2tfd29ya3F1ZXVlLCAmZ2wtPmdsX3dvcmssIDApID09IDApCisJCWdmczJfZ2xvY2tfcHV0KGdsKTsKK291dDoKKwljbGVhcl9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBnbG9ja193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXVuc2lnbmVkIGxvbmcgZGVsYXkgPSAwOworCXN0cnVjdCBnZnMyX2dsb2NrICpnbCA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZ2ZzMl9nbG9jaywgZ2xfd29yay53b3JrKTsKKworCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoR0xGX1JFUExZX1BFTkRJTkcsICZnbC0+Z2xfZmxhZ3MpKQorCQlmaW5pc2hfeG1vdGUoZ2wsIGdsLT5nbF9yZXBseSk7CisJc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7CisJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChHTEZfUEVORElOR19ERU1PVEUsICZnbC0+Z2xfZmxhZ3MpICYmCisJICAgIGdsLT5nbF9zdGF0ZSAhPSBMTV9TVF9VTkxPQ0tFRCAmJgorCSAgICBnbC0+Z2xfZGVtb3RlX3N0YXRlICE9IExNX1NUX0VYQ0xVU0lWRSkgeworCQl1bnNpZ25lZCBsb25nIGhvbGR0aW1lLCBub3cgPSBqaWZmaWVzOworCQlob2xkdGltZSA9IGdsLT5nbF90Y2hhbmdlICsgZ2wtPmdsX29wcy0+Z29fbWluX2hvbGRfdGltZTsKKwkJaWYgKHRpbWVfYmVmb3JlKG5vdywgaG9sZHRpbWUpKQorCQkJZGVsYXkgPSBob2xkdGltZSAtIG5vdzsKKwkJc2V0X2JpdChkZWxheSA/IEdMRl9QRU5ESU5HX0RFTU9URSA6IEdMRl9ERU1PVEUsICZnbC0+Z2xfZmxhZ3MpOworCX0KKwlydW5fcXVldWUoZ2wsIDApOworCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7CisJaWYgKCFkZWxheSB8fAorCSAgICBxdWV1ZV9kZWxheWVkX3dvcmsoZ2xvY2tfd29ya3F1ZXVlLCAmZ2wtPmdsX3dvcmssIGRlbGF5KSA9PSAwKQorCQlnZnMyX2dsb2NrX3B1dChnbCk7Cit9CisKIHN0YXRpYyBpbnQgZ2ZzMl9sbV9nZXRfbG9jayhzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCwgc3RydWN0IGxtX2xvY2tuYW1lICpuYW1lLAogCQkgICAgIHZvaWQgKipsb2NrcCkKIHsKIAlpbnQgZXJyb3IgPSAtRUlPOworCWlmICghc2RwLT5zZF9sb2Nrc3RydWN0LmxzX29wcy0+bG1fZ2V0X2xvY2spCisJCXJldHVybiAwOwogCWlmIChsaWtlbHkoIXRlc3RfYml0KFNERl9TSFVURE9XTiwgJnNkcC0+c2RfZmxhZ3MpKSkKIAkJZXJyb3IgPSBzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9nZXRfbG9jaygKIAkJCQlzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfbG9ja3NwYWNlLCBuYW1lLCBsb2NrcCk7CkBAIC0zNDIsMTIgKzY4OSwxMCBAQAogCWdsLT5nbF9uYW1lID0gbmFtZTsKIAlhdG9taWNfc2V0KCZnbC0+Z2xfcmVmLCAxKTsKIAlnbC0+Z2xfc3RhdGUgPSBMTV9TVF9VTkxPQ0tFRDsKKwlnbC0+Z2xfdGFyZ2V0ID0gTE1fU1RfVU5MT0NLRUQ7CiAJZ2wtPmdsX2RlbW90ZV9zdGF0ZSA9IExNX1NUX0VYQ0xVU0lWRTsKIAlnbC0+Z2xfaGFzaCA9IGhhc2g7Ci0JZ2wtPmdsX293bmVyX3BpZCA9IE5VTEw7Ci0JZ2wtPmdsX2lwID0gMDsKIAlnbC0+Z2xfb3BzID0gZ2xvcHM7Ci0JZ2wtPmdsX3JlcV9naCA9IE5VTEw7CiAJZ2wtPmdsX3N0YW1wID0gamlmZmllczsKIAlnbC0+Z2xfdGNoYW5nZSA9IGppZmZpZXM7CiAJZ2wtPmdsX29iamVjdCA9IE5VTEw7CkBAIC00NDcsMTMgKzc5Miw2IEBACiAJZ2gtPmdoX2lwID0gMDsKIH0KIAotc3RhdGljIHZvaWQgZ2ZzMl9ob2xkZXJfd2FrZShzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKQotewotCWNsZWFyX2JpdChISUZfV0FJVCwgJmdoLT5naF9pZmxhZ3MpOwotCXNtcF9tYl9fYWZ0ZXJfY2xlYXJfYml0KCk7Ci0Jd2FrZV91cF9iaXQoJmdoLT5naF9pZmxhZ3MsIEhJRl9XQUlUKTsKLX0KLQogc3RhdGljIGludCBqdXN0X3NjaGVkdWxlKHZvaWQgKndvcmQpCiB7CiAgICAgICAgIHNjaGVkdWxlKCk7CkBAIC00NjYsMTQgKzgwNCw2IEBACiAJd2FpdF9vbl9iaXQoJmdoLT5naF9pZmxhZ3MsIEhJRl9XQUlULCBqdXN0X3NjaGVkdWxlLCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7CiB9CiAKLXN0YXRpYyB2b2lkIGdmczJfZGVtb3RlX3dha2Uoc3RydWN0IGdmczJfZ2xvY2sgKmdsKQotewotCWdsLT5nbF9kZW1vdGVfc3RhdGUgPSBMTV9TVF9FWENMVVNJVkU7Ci0gICAgICAgIGNsZWFyX2JpdChHTEZfREVNT1RFLCAmZ2wtPmdsX2ZsYWdzKTsKLSAgICAgICAgc21wX21iX19hZnRlcl9jbGVhcl9iaXQoKTsKLSAgICAgICAgd2FrZV91cF9iaXQoJmdsLT5nbF9mbGFncywgR0xGX0RFTU9URSk7Ci19Ci0KIHN0YXRpYyB2b2lkIHdhaXRfb25fZGVtb3RlKHN0cnVjdCBnZnMyX2dsb2NrICpnbCkKIHsKIAltaWdodF9zbGVlcCgpOwpAQCAtNDgxLDIxNyArODExLDYgQEAKIH0KIAogLyoqCi0gKiBycV9tdXRleCAtIHByb2Nlc3MgYSBtdXRleCByZXF1ZXN0IGluIHRoZSBxdWV1ZQotICogQGdoOiB0aGUgZ2xvY2sgaG9sZGVyCi0gKgotICogUmV0dXJuczogMSBpZiB0aGUgcXVldWUgaXMgYmxvY2tlZAotICovCi0KLXN0YXRpYyBpbnQgcnFfbXV0ZXgoc3RydWN0IGdmczJfaG9sZGVyICpnaCkKLXsKLQlzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wgPSBnaC0+Z2hfZ2w7Ci0KLQlsaXN0X2RlbF9pbml0KCZnaC0+Z2hfbGlzdCk7Ci0JLyogIGdoLT5naF9lcnJvciBuZXZlciBleGFtaW5lZC4gICovCi0Jc2V0X2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncyk7Ci0JY2xlYXJfYml0KEhJRl9XQUlULCAmZ2gtPmdoX2lmbGFncyk7Ci0Jc21wX21iKCk7Ci0Jd2FrZV91cF9iaXQoJmdoLT5naF9pZmxhZ3MsIEhJRl9XQUlUKTsKLQotCXJldHVybiAxOwotfQotCi0vKioKLSAqIHJxX3Byb21vdGUgLSBwcm9jZXNzIGEgcHJvbW90ZSByZXF1ZXN0IGluIHRoZSBxdWV1ZQotICogQGdoOiB0aGUgZ2xvY2sgaG9sZGVyCi0gKgotICogQWNxdWlyZSBhIG5ldyBpbnRlci1ub2RlIGxvY2ssIG9yIGNoYW5nZSBhIGxvY2sgc3RhdGUgdG8gbW9yZSByZXN0cmljdGl2ZS4KLSAqCi0gKiBSZXR1cm5zOiAxIGlmIHRoZSBxdWV1ZSBpcyBibG9ja2VkCi0gKi8KLQotc3RhdGljIGludCBycV9wcm9tb3RlKHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpCi17Ci0Jc3RydWN0IGdmczJfZ2xvY2sgKmdsID0gZ2gtPmdoX2dsOwotCi0JaWYgKCFyZWxheGVkX3N0YXRlX29rKGdsLT5nbF9zdGF0ZSwgZ2gtPmdoX3N0YXRlLCBnaC0+Z2hfZmxhZ3MpKSB7Ci0JCWlmIChsaXN0X2VtcHR5KCZnbC0+Z2xfaG9sZGVycykpIHsKLQkJCWdsLT5nbF9yZXFfZ2ggPSBnaDsKLQkJCXNldF9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpOwotCQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQkJCWdmczJfZ2xvY2tfeG1vdGVfdGgoZ2gtPmdoX2dsLCBnaCk7Ci0JCQlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKLQkJfQotCQlyZXR1cm4gMTsKLQl9Ci0KLQlpZiAobGlzdF9lbXB0eSgmZ2wtPmdsX2hvbGRlcnMpKSB7Ci0JCXNldF9iaXQoSElGX0ZJUlNULCAmZ2gtPmdoX2lmbGFncyk7Ci0JCXNldF9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpOwotCX0gZWxzZSB7Ci0JCXN0cnVjdCBnZnMyX2hvbGRlciAqbmV4dF9naDsKLQkJaWYgKGdoLT5naF9zdGF0ZSA9PSBMTV9TVF9FWENMVVNJVkUpCi0JCQlyZXR1cm4gMTsKLQkJbmV4dF9naCA9IGxpc3RfZW50cnkoZ2wtPmdsX2hvbGRlcnMubmV4dCwgc3RydWN0IGdmczJfaG9sZGVyLAotCQkJCSAgICAgZ2hfbGlzdCk7Ci0JCWlmIChuZXh0X2doLT5naF9zdGF0ZSA9PSBMTV9TVF9FWENMVVNJVkUpCi0JCQkgcmV0dXJuIDE7Ci0JfQotCi0JbGlzdF9tb3ZlX3RhaWwoJmdoLT5naF9saXN0LCAmZ2wtPmdsX2hvbGRlcnMpOwotCWdoLT5naF9lcnJvciA9IDA7Ci0Jc2V0X2JpdChISUZfSE9MREVSLCAmZ2gtPmdoX2lmbGFncyk7Ci0KLQlnZnMyX2hvbGRlcl93YWtlKGdoKTsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIHJxX2RlbW90ZSAtIHByb2Nlc3MgYSBkZW1vdGUgcmVxdWVzdCBpbiB0aGUgcXVldWUKLSAqIEBnaDogdGhlIGdsb2NrIGhvbGRlcgotICoKLSAqIFJldHVybnM6IDEgaWYgdGhlIHF1ZXVlIGlzIGJsb2NrZWQKLSAqLwotCi1zdGF0aWMgaW50IHJxX2RlbW90ZShzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpCi17Ci0JaWYgKCFsaXN0X2VtcHR5KCZnbC0+Z2xfaG9sZGVycykpCi0JCXJldHVybiAxOwotCi0JaWYgKGdsLT5nbF9zdGF0ZSA9PSBnbC0+Z2xfZGVtb3RlX3N0YXRlIHx8Ci0JICAgIGdsLT5nbF9zdGF0ZSA9PSBMTV9TVF9VTkxPQ0tFRCkgewotCQlnZnMyX2RlbW90ZV93YWtlKGdsKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0Jc2V0X2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncyk7Ci0Jc2V0X2JpdChHTEZfREVNT1RFX0lOX1BST0dSRVNTLCAmZ2wtPmdsX2ZsYWdzKTsKLQotCWlmIChnbC0+Z2xfZGVtb3RlX3N0YXRlID09IExNX1NUX1VOTE9DS0VEIHx8Ci0JICAgIGdsLT5nbF9zdGF0ZSAhPSBMTV9TVF9FWENMVVNJVkUpIHsKLQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQkJZ2ZzMl9nbG9ja19kcm9wX3RoKGdsKTsKLQl9IGVsc2UgewotCQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwotCQlnZnMyX2dsb2NrX3htb3RlX3RoKGdsLCBOVUxMKTsKLQl9Ci0KLQlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKLQljbGVhcl9iaXQoR0xGX0RFTU9URV9JTl9QUk9HUkVTUywgJmdsLT5nbF9mbGFncyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBydW5fcXVldWUgLSBwcm9jZXNzIGhvbGRlciBzdHJ1Y3R1cmVzIG9uIGEgZ2xvY2sKLSAqIEBnbDogdGhlIGdsb2NrCi0gKgotICovCi1zdGF0aWMgdm9pZCBydW5fcXVldWUoc3RydWN0IGdmczJfZ2xvY2sgKmdsKQotewotCXN0cnVjdCBnZnMyX2hvbGRlciAqZ2g7Ci0JaW50IGJsb2NrZWQgPSAxOwotCi0JZm9yICg7OykgewotCQlpZiAodGVzdF9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpKQotCQkJYnJlYWs7Ci0KLQkJaWYgKCFsaXN0X2VtcHR5KCZnbC0+Z2xfd2FpdGVyczEpKSB7Ci0JCQlnaCA9IGxpc3RfZW50cnkoZ2wtPmdsX3dhaXRlcnMxLm5leHQsCi0JCQkJCXN0cnVjdCBnZnMyX2hvbGRlciwgZ2hfbGlzdCk7Ci0JCQlibG9ja2VkID0gcnFfbXV0ZXgoZ2gpOwotCQl9IGVsc2UgaWYgKHRlc3RfYml0KEdMRl9ERU1PVEUsICZnbC0+Z2xfZmxhZ3MpKSB7Ci0JCQlibG9ja2VkID0gcnFfZGVtb3RlKGdsKTsKLQkJCWlmICh0ZXN0X2JpdChHTEZfV0FJVEVSUzIsICZnbC0+Z2xfZmxhZ3MpICYmCi0JCQkJICAgICAhYmxvY2tlZCkgewotCQkJCXNldF9iaXQoR0xGX0RFTU9URSwgJmdsLT5nbF9mbGFncyk7Ci0JCQkJZ2wtPmdsX2RlbW90ZV9zdGF0ZSA9IExNX1NUX1VOTE9DS0VEOwotCQkJfQotCQkJY2xlYXJfYml0KEdMRl9XQUlURVJTMiwgJmdsLT5nbF9mbGFncyk7Ci0JCX0gZWxzZSBpZiAoIWxpc3RfZW1wdHkoJmdsLT5nbF93YWl0ZXJzMykpIHsKLQkJCWdoID0gbGlzdF9lbnRyeShnbC0+Z2xfd2FpdGVyczMubmV4dCwKLQkJCQkJc3RydWN0IGdmczJfaG9sZGVyLCBnaF9saXN0KTsKLQkJCWJsb2NrZWQgPSBycV9wcm9tb3RlKGdoKTsKLQkJfSBlbHNlCi0JCQlicmVhazsKLQotCQlpZiAoYmxvY2tlZCkKLQkJCWJyZWFrOwotCX0KLX0KLQotLyoqCi0gKiBnZnMyX2dsbXV0ZXhfbG9jayAtIGFjcXVpcmUgYSBsb2NhbCBsb2NrIG9uIGEgZ2xvY2sKLSAqIEBnbDogdGhlIGdsb2NrCi0gKgotICogR2l2ZXMgY2FsbGVyIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gbWFuaXB1bGF0ZSBhIGdsb2NrIHN0cnVjdHVyZS4KLSAqLwotCi1zdGF0aWMgdm9pZCBnZnMyX2dsbXV0ZXhfbG9jayhzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpCi17Ci0Jc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0JaWYgKHRlc3RfYW5kX3NldF9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpKSB7Ci0JCXN0cnVjdCBnZnMyX2hvbGRlciBnaDsKLQotCQlnZnMyX2hvbGRlcl9pbml0KGdsLCAwLCAwLCAmZ2gpOwotCQlzZXRfYml0KEhJRl9XQUlULCAmZ2guZ2hfaWZsYWdzKTsKLQkJbGlzdF9hZGRfdGFpbCgmZ2guZ2hfbGlzdCwgJmdsLT5nbF93YWl0ZXJzMSk7Ci0JCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0JCXdhaXRfb25faG9sZGVyKCZnaCk7Ci0JCWdmczJfaG9sZGVyX3VuaW5pdCgmZ2gpOwotCX0gZWxzZSB7Ci0JCWdsLT5nbF9vd25lcl9waWQgPSBnZXRfcGlkKHRhc2tfcGlkKGN1cnJlbnQpKTsKLQkJZ2wtPmdsX2lwID0gKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApOwotCQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwotCX0KLX0KLQotLyoqCi0gKiBnZnMyX2dsbXV0ZXhfdHJ5bG9jayAtIHRyeSB0byBhY3F1aXJlIGEgbG9jYWwgbG9jayBvbiBhIGdsb2NrCi0gKiBAZ2w6IHRoZSBnbG9jawotICoKLSAqIFJldHVybnM6IDEgaWYgdGhlIGdsb2NrIGlzIGFjcXVpcmVkCi0gKi8KLQotc3RhdGljIGludCBnZnMyX2dsbXV0ZXhfdHJ5bG9jayhzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpCi17Ci0JaW50IGFjcXVpcmVkID0gMTsKLQotCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOwotCWlmICh0ZXN0X2FuZF9zZXRfYml0KEdMRl9MT0NLLCAmZ2wtPmdsX2ZsYWdzKSkgewotCQlhY3F1aXJlZCA9IDA7Ci0JfSBlbHNlIHsKLQkJZ2wtPmdsX293bmVyX3BpZCA9IGdldF9waWQodGFza19waWQoY3VycmVudCkpOwotCQlnbC0+Z2xfaXAgPSAodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCk7Ci0JfQotCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0KLQlyZXR1cm4gYWNxdWlyZWQ7Ci19Ci0KLS8qKgotICogZ2ZzMl9nbG11dGV4X3VubG9jayAtIHJlbGVhc2UgYSBsb2NhbCBsb2NrIG9uIGEgZ2xvY2sKLSAqIEBnbDogdGhlIGdsb2NrCi0gKgotICovCi0KLXN0YXRpYyB2b2lkIGdmczJfZ2xtdXRleF91bmxvY2soc3RydWN0IGdmczJfZ2xvY2sgKmdsKQotewotCXN0cnVjdCBwaWQgKnBpZDsKLQotCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOwotCWNsZWFyX2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncyk7Ci0JcGlkID0gZ2wtPmdsX293bmVyX3BpZDsKLQlnbC0+Z2xfb3duZXJfcGlkID0gTlVMTDsKLQlnbC0+Z2xfaXAgPSAwOwotCXJ1bl9xdWV1ZShnbCk7Ci0Jc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQotCXB1dF9waWQocGlkKTsKLX0KLQotLyoqCiAgKiBoYW5kbGVfY2FsbGJhY2sgLSBwcm9jZXNzIGEgZGVtb3RlIHJlcXVlc3QKICAqIEBnbDogdGhlIGdsb2NrCiAgKiBAc3RhdGU6IHRoZSBzdGF0ZSB0aGUgY2FsbGVyIHdhbnRzIHVzIHRvIGNoYW5nZSB0bwpAQCAtNzA1LDM5OCArODI0LDQ1IEBACiB7CiAJaW50IGJpdCA9IGRlbGF5ID8gR0xGX1BFTkRJTkdfREVNT1RFIDogR0xGX0RFTU9URTsKIAotCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOwogCXNldF9iaXQoYml0LCAmZ2wtPmdsX2ZsYWdzKTsKIAlpZiAoZ2wtPmdsX2RlbW90ZV9zdGF0ZSA9PSBMTV9TVF9FWENMVVNJVkUpIHsKIAkJZ2wtPmdsX2RlbW90ZV9zdGF0ZSA9IHN0YXRlOwogCQlnbC0+Z2xfZGVtb3RlX3RpbWUgPSBqaWZmaWVzOwogCQlpZiAocmVtb3RlICYmIGdsLT5nbF9vcHMtPmdvX3R5cGUgPT0gTE1fVFlQRV9JT1BFTiAmJgotCQkgICAgZ2wtPmdsX29iamVjdCkgeworCQkgICAgZ2wtPmdsX29iamVjdCkKIAkJCWdmczJfZ2xvY2tfc2NoZWR1bGVfZm9yX3JlY2xhaW0oZ2wpOwotCQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQkJCXJldHVybjsKLQkJfQogCX0gZWxzZSBpZiAoZ2wtPmdsX2RlbW90ZV9zdGF0ZSAhPSBMTV9TVF9VTkxPQ0tFRCAmJgogCQkJZ2wtPmdsX2RlbW90ZV9zdGF0ZSAhPSBzdGF0ZSkgewotCQlpZiAodGVzdF9iaXQoR0xGX0RFTU9URV9JTl9QUk9HUkVTUywgICZnbC0+Z2xfZmxhZ3MpKSAKLQkJCXNldF9iaXQoR0xGX1dBSVRFUlMyLCAmZ2wtPmdsX2ZsYWdzKTsKLQkJZWxzZSAKLQkJCWdsLT5nbF9kZW1vdGVfc3RhdGUgPSBMTV9TVF9VTkxPQ0tFRDsKKwkJZ2wtPmdsX2RlbW90ZV9zdGF0ZSA9IExNX1NUX1VOTE9DS0VEOwogCX0KLQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwogfQogCiAvKioKLSAqIHN0YXRlX2NoYW5nZSAtIHJlY29yZCB0aGF0IHRoZSBnbG9jayBpcyBub3cgaW4gYSBkaWZmZXJlbnQgc3RhdGUKLSAqIEBnbDogdGhlIGdsb2NrCi0gKiBAbmV3X3N0YXRlIHRoZSBuZXcgc3RhdGUKLSAqCi0gKi8KLQotc3RhdGljIHZvaWQgc3RhdGVfY2hhbmdlKHN0cnVjdCBnZnMyX2dsb2NrICpnbCwgdW5zaWduZWQgaW50IG5ld19zdGF0ZSkKLXsKLQlpbnQgaGVsZDEsIGhlbGQyOwotCi0JaGVsZDEgPSAoZ2wtPmdsX3N0YXRlICE9IExNX1NUX1VOTE9DS0VEKTsKLQloZWxkMiA9IChuZXdfc3RhdGUgIT0gTE1fU1RfVU5MT0NLRUQpOwotCi0JaWYgKGhlbGQxICE9IGhlbGQyKSB7Ci0JCWlmIChoZWxkMikKLQkJCWdmczJfZ2xvY2tfaG9sZChnbCk7Ci0JCWVsc2UKLQkJCWdmczJfZ2xvY2tfcHV0KGdsKTsKLQl9Ci0KLQlnbC0+Z2xfc3RhdGUgPSBuZXdfc3RhdGU7Ci0JZ2wtPmdsX3RjaGFuZ2UgPSBqaWZmaWVzOwotfQotCi0vKioKLSAqIGRyb3BfYmggLSBDYWxsZWQgYWZ0ZXIgYSBsb2NrIG1vZHVsZSB1bmxvY2sgY29tcGxldGVzCi0gKiBAZ2w6IHRoZSBnbG9jawotICogQHJldDogdGhlIHJldHVybiBzdGF0dXMKLSAqCi0gKiBEb2Vzbid0IHdha2UgdXAgdGhlIHByb2Nlc3Mgd2FpdGluZyBvbiB0aGUgc3RydWN0IGdmczJfaG9sZGVyIChpZiBhbnkpCi0gKiBEb2Vzbid0IGRyb3AgdGhlIHJlZmVyZW5jZSBvbiB0aGUgZ2xvY2sgdGhlIHRvcCBoYWxmIHRvb2sgb3V0Ci0gKgotICovCi0KLXN0YXRpYyB2b2lkIGRyb3BfYmgoc3RydWN0IGdmczJfZ2xvY2sgKmdsLCB1bnNpZ25lZCBpbnQgcmV0KQotewotCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gZ2wtPmdsX3NiZDsKLQlzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoID0gZ2wtPmdsX3JlcV9naDsKLQotCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCB0ZXN0X2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncykpOwotCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCBsaXN0X2VtcHR5KCZnbC0+Z2xfaG9sZGVycykpOwotCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCAhcmV0KTsKLQotCXN0YXRlX2NoYW5nZShnbCwgTE1fU1RfVU5MT0NLRUQpOwotCi0JaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChHTEZfQ09OVl9ERUFETEssICZnbC0+Z2xfZmxhZ3MpKSB7Ci0JCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOwotCQlnaC0+Z2hfZXJyb3IgPSAwOwotCQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwotCQlnZnMyX2dsb2NrX3htb3RlX3RoKGdsLCBnbC0+Z2xfcmVxX2doKTsKLQkJZ2ZzMl9nbG9ja19wdXQoZ2wpOwotCQlyZXR1cm47Ci0JfQotCi0Jc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0JZ2ZzMl9kZW1vdGVfd2FrZShnbCk7Ci0JY2xlYXJfYml0KEdMRl9MT0NLLCAmZ2wtPmdsX2ZsYWdzKTsKLQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwotCWdmczJfZ2xvY2tfcHV0KGdsKTsKLX0KLQotLyoqCi0gKiB4bW90ZV9iaCAtIENhbGxlZCBhZnRlciB0aGUgbG9jayBtb2R1bGUgaXMgZG9uZSBhY3F1aXJpbmcgYSBsb2NrCi0gKiBAZ2w6IFRoZSBnbG9jayBpbiBxdWVzdGlvbgotICogQHJldDogdGhlIGludCByZXR1cm5lZCBmcm9tIHRoZSBsb2NrIG1vZHVsZQotICoKLSAqLwotCi1zdGF0aWMgdm9pZCB4bW90ZV9iaChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIHVuc2lnbmVkIGludCByZXQpCi17Ci0Jc3RydWN0IGdmczJfc2JkICpzZHAgPSBnbC0+Z2xfc2JkOwotCWNvbnN0IHN0cnVjdCBnZnMyX2dsb2NrX29wZXJhdGlvbnMgKmdsb3BzID0gZ2wtPmdsX29wczsKLQlzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoID0gZ2wtPmdsX3JlcV9naDsKLQlpbnQgb3BfZG9uZSA9IDE7Ci0KLQlpZiAoIWdoICYmIChyZXQgJiBMTV9PVVRfU1RfTUFTSykgPT0gTE1fU1RfVU5MT0NLRUQpIHsKLQkJZHJvcF9iaChnbCwgcmV0KTsKLQkJcmV0dXJuOwotCX0KLQotCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCB0ZXN0X2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncykpOwotCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCBsaXN0X2VtcHR5KCZnbC0+Z2xfaG9sZGVycykpOwotCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCAhKHJldCAmIExNX09VVF9BU1lOQykpOwotCi0Jc3RhdGVfY2hhbmdlKGdsLCByZXQgJiBMTV9PVVRfU1RfTUFTSyk7Ci0KLQkvKiAgRGVhbCB3aXRoIGVhY2ggcG9zc2libGUgZXhpdCBjb25kaXRpb24gICovCi0KLQlpZiAoIWdoKSB7Ci0JCWdsLT5nbF9zdGFtcCA9IGppZmZpZXM7Ci0JCWlmIChyZXQgJiBMTV9PVVRfQ0FOQ0VMRUQpIHsKLQkJCW9wX2RvbmUgPSAwOwotCQl9IGVsc2UgewotCQkJc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0JCQlpZiAoZ2wtPmdsX3N0YXRlICE9IGdsLT5nbF9kZW1vdGVfc3RhdGUpIHsKLQkJCQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwotCQkJCWdmczJfZ2xvY2tfZHJvcF90aChnbCk7Ci0JCQkJZ2ZzMl9nbG9ja19wdXQoZ2wpOwotCQkJCXJldHVybjsKLQkJCX0KLQkJCWdmczJfZGVtb3RlX3dha2UoZ2wpOwotCQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQkJfQotCX0gZWxzZSB7Ci0JCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOwotCQlpZiAocmV0ICYgTE1fT1VUX0NPTlZfREVBRExLKSB7Ci0JCQlnaC0+Z2hfZXJyb3IgPSAwOwotCQkJc2V0X2JpdChHTEZfQ09OVl9ERUFETEssICZnbC0+Z2xfZmxhZ3MpOwotCQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQkJCWdmczJfZ2xvY2tfZHJvcF90aChnbCk7Ci0JCQlnZnMyX2dsb2NrX3B1dChnbCk7Ci0JCQlyZXR1cm47Ci0JCX0KLQkJbGlzdF9kZWxfaW5pdCgmZ2gtPmdoX2xpc3QpOwotCQlnaC0+Z2hfZXJyb3IgPSAtRUlPOwotCQlpZiAodW5saWtlbHkodGVzdF9iaXQoU0RGX1NIVVRET1dOLCAmc2RwLT5zZF9mbGFncykpKSAKLQkJCWdvdG8gb3V0OwotCQlnaC0+Z2hfZXJyb3IgPSBHTFJfQ0FOQ0VMRUQ7Ci0JCWlmIChyZXQgJiBMTV9PVVRfQ0FOQ0VMRUQpIAotCQkJZ290byBvdXQ7Ci0JCWlmIChyZWxheGVkX3N0YXRlX29rKGdsLT5nbF9zdGF0ZSwgZ2gtPmdoX3N0YXRlLCBnaC0+Z2hfZmxhZ3MpKSB7Ci0JCQlsaXN0X2FkZF90YWlsKCZnaC0+Z2hfbGlzdCwgJmdsLT5nbF9ob2xkZXJzKTsKLQkJCWdoLT5naF9lcnJvciA9IDA7Ci0JCQlzZXRfYml0KEhJRl9IT0xERVIsICZnaC0+Z2hfaWZsYWdzKTsKLQkJCXNldF9iaXQoSElGX0ZJUlNULCAmZ2gtPmdoX2lmbGFncyk7Ci0JCQlvcF9kb25lID0gMDsKLQkJCWdvdG8gb3V0OwotCQl9Ci0JCWdoLT5naF9lcnJvciA9IEdMUl9UUllGQUlMRUQ7Ci0JCWlmIChnaC0+Z2hfZmxhZ3MgJiAoTE1fRkxBR19UUlkgfCBMTV9GTEFHX1RSWV8xQ0IpKQotCQkJZ290byBvdXQ7Ci0JCWdoLT5naF9lcnJvciA9IC1FSU5WQUw7Ci0JCWlmIChnZnMyX2Fzc2VydF93aXRoZHJhdyhzZHAsIDApID09IC0xKQotCQkJZnNfZXJyKHNkcCwgInJldCA9IDB4JS44WFxuIiwgcmV0KTsKLW91dDoKLQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQl9Ci0KLQlpZiAoZ2xvcHMtPmdvX3htb3RlX2JoKQotCQlnbG9wcy0+Z29feG1vdGVfYmgoZ2wpOwotCi0JaWYgKG9wX2RvbmUpIHsKLQkJc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0JCWdsLT5nbF9yZXFfZ2ggPSBOVUxMOwotCQljbGVhcl9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpOwotCQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwotCX0KLQotCWdmczJfZ2xvY2tfcHV0KGdsKTsKLQotCWlmIChnaCkKLQkJZ2ZzMl9ob2xkZXJfd2FrZShnaCk7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgZ2ZzMl9sbV9sb2NrKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCB2b2lkICpsb2NrLAotCQkJCSB1bnNpZ25lZCBpbnQgY3VyX3N0YXRlLCB1bnNpZ25lZCBpbnQgcmVxX3N0YXRlLAotCQkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JaW50IHJldCA9IDA7Ci0JaWYgKGxpa2VseSghdGVzdF9iaXQoU0RGX1NIVVRET1dOLCAmc2RwLT5zZF9mbGFncykpKQotCQlyZXQgPSBzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9sb2NrKGxvY2ssIGN1cl9zdGF0ZSwKLQkJCQkJCQkgcmVxX3N0YXRlLCBmbGFncyk7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyoqCi0gKiBnZnMyX2dsb2NrX3htb3RlX3RoIC0gQ2FsbCBpbnRvIHRoZSBsb2NrIG1vZHVsZSB0byBhY3F1aXJlIG9yIGNoYW5nZSBhIGdsb2NrCi0gKiBAZ2w6IFRoZSBnbG9jayBpbiBxdWVzdGlvbgotICogQHN0YXRlOiB0aGUgcmVxdWVzdGVkIHN0YXRlCi0gKiBAZmxhZ3M6IG1vZGlmaWVyIGZsYWdzIHRvIHRoZSBsb2NrIGNhbGwKLSAqCi0gKi8KLQotc3RhdGljIHZvaWQgZ2ZzMl9nbG9ja194bW90ZV90aChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpCi17Ci0Jc3RydWN0IGdmczJfc2JkICpzZHAgPSBnbC0+Z2xfc2JkOwotCWludCBmbGFncyA9IGdoID8gZ2gtPmdoX2ZsYWdzIDogMDsKLQl1bnNpZ25lZCBzdGF0ZSA9IGdoID8gZ2gtPmdoX3N0YXRlIDogZ2wtPmdsX2RlbW90ZV9zdGF0ZTsKLQljb25zdCBzdHJ1Y3QgZ2ZzMl9nbG9ja19vcGVyYXRpb25zICpnbG9wcyA9IGdsLT5nbF9vcHM7Ci0JaW50IGxja19mbGFncyA9IGZsYWdzICYgKExNX0ZMQUdfVFJZIHwgTE1fRkxBR19UUllfMUNCIHwKLQkJCQkgTE1fRkxBR19OT0VYUCB8IExNX0ZMQUdfQU5ZIHwKLQkJCQkgTE1fRkxBR19QUklPUklUWSk7Ci0JdW5zaWduZWQgaW50IGxja19yZXQ7Ci0KLQlpZiAoZ2xvcHMtPmdvX3htb3RlX3RoKQotCQlnbG9wcy0+Z29feG1vdGVfdGgoZ2wpOwotCWlmIChzdGF0ZSA9PSBMTV9TVF9ERUZFUlJFRCAmJiBnbG9wcy0+Z29faW52YWwpCi0JCWdsb3BzLT5nb19pbnZhbChnbCwgRElPX01FVEFEQVRBKTsKLQotCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCB0ZXN0X2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncykpOwotCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCBsaXN0X2VtcHR5KCZnbC0+Z2xfaG9sZGVycykpOwotCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCBzdGF0ZSAhPSBMTV9TVF9VTkxPQ0tFRCk7Ci0JZ2ZzMl9hc3NlcnRfd2FybihzZHAsIHN0YXRlICE9IGdsLT5nbF9zdGF0ZSk7Ci0KLQlnZnMyX2dsb2NrX2hvbGQoZ2wpOwotCi0JbGNrX3JldCA9IGdmczJfbG1fbG9jayhzZHAsIGdsLT5nbF9sb2NrLCBnbC0+Z2xfc3RhdGUsIHN0YXRlLCBsY2tfZmxhZ3MpOwotCi0JaWYgKGdmczJfYXNzZXJ0X3dpdGhkcmF3KHNkcCwgIShsY2tfcmV0ICYgTE1fT1VUX0VSUk9SKSkpCi0JCXJldHVybjsKLQotCWlmIChsY2tfcmV0ICYgTE1fT1VUX0FTWU5DKQotCQlnZnMyX2Fzc2VydF93YXJuKHNkcCwgbGNrX3JldCA9PSBMTV9PVVRfQVNZTkMpOwotCWVsc2UKLQkJeG1vdGVfYmgoZ2wsIGxja19yZXQpOwotfQotCi1zdGF0aWMgdW5zaWduZWQgaW50IGdmczJfbG1fdW5sb2NrKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCB2b2lkICpsb2NrLAotCQkJCSAgIHVuc2lnbmVkIGludCBjdXJfc3RhdGUpCi17Ci0JaW50IHJldCA9IDA7Ci0JaWYgKGxpa2VseSghdGVzdF9iaXQoU0RGX1NIVVRET1dOLCAmc2RwLT5zZF9mbGFncykpKQotCQlyZXQgPSAgc2RwLT5zZF9sb2Nrc3RydWN0LmxzX29wcy0+bG1fdW5sb2NrKGxvY2ssIGN1cl9zdGF0ZSk7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyoqCi0gKiBnZnMyX2dsb2NrX2Ryb3BfdGggLSBjYWxsIGludG8gdGhlIGxvY2sgbW9kdWxlIHRvIHVubG9jayBhIGxvY2sKLSAqIEBnbDogdGhlIGdsb2NrCi0gKgotICovCi0KLXN0YXRpYyB2b2lkIGdmczJfZ2xvY2tfZHJvcF90aChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpCi17Ci0Jc3RydWN0IGdmczJfc2JkICpzZHAgPSBnbC0+Z2xfc2JkOwotCWNvbnN0IHN0cnVjdCBnZnMyX2dsb2NrX29wZXJhdGlvbnMgKmdsb3BzID0gZ2wtPmdsX29wczsKLQl1bnNpZ25lZCBpbnQgcmV0OwotCi0JaWYgKGdsb3BzLT5nb194bW90ZV90aCkKLQkJZ2xvcHMtPmdvX3htb3RlX3RoKGdsKTsKLQlpZiAoZ2xvcHMtPmdvX2ludmFsKQotCQlnbG9wcy0+Z29faW52YWwoZ2wsIERJT19NRVRBREFUQSk7Ci0KLQlnZnMyX2Fzc2VydF93YXJuKHNkcCwgdGVzdF9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpKTsKLQlnZnMyX2Fzc2VydF93YXJuKHNkcCwgbGlzdF9lbXB0eSgmZ2wtPmdsX2hvbGRlcnMpKTsKLQlnZnMyX2Fzc2VydF93YXJuKHNkcCwgZ2wtPmdsX3N0YXRlICE9IExNX1NUX1VOTE9DS0VEKTsKLQotCWdmczJfZ2xvY2tfaG9sZChnbCk7Ci0KLQlyZXQgPSBnZnMyX2xtX3VubG9jayhzZHAsIGdsLT5nbF9sb2NrLCBnbC0+Z2xfc3RhdGUpOwotCi0JaWYgKGdmczJfYXNzZXJ0X3dpdGhkcmF3KHNkcCwgIShyZXQgJiBMTV9PVVRfRVJST1IpKSkKLQkJcmV0dXJuOwotCi0JaWYgKCFyZXQpCi0JCWRyb3BfYmgoZ2wsIHJldCk7Ci0JZWxzZQotCQlnZnMyX2Fzc2VydF93YXJuKHNkcCwgcmV0ID09IExNX09VVF9BU1lOQyk7Ci19Ci0KLS8qKgotICogZG9fY2FuY2VscyAtIGNhbmNlbCByZXF1ZXN0cyBmb3IgbG9ja3Mgc3R1Y2sgd2FpdGluZyBvbiBhbiBleHBpcmUgZmxhZwotICogQGdoOiB0aGUgTE1fRkxBR19QUklPUklUWSBob2xkZXIgd2FpdGluZyB0byBhY3F1aXJlIHRoZSBsb2NrCi0gKgotICogRG9uJ3QgY2FuY2VsIEdMX05PQ0FOQ0VMIHJlcXVlc3RzLgotICovCi0KLXN0YXRpYyB2b2lkIGRvX2NhbmNlbHMoc3RydWN0IGdmczJfaG9sZGVyICpnaCkKLXsKLQlzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wgPSBnaC0+Z2hfZ2w7Ci0Jc3RydWN0IGdmczJfc2JkICpzZHAgPSBnbC0+Z2xfc2JkOwotCi0Jc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0KLQl3aGlsZSAoZ2wtPmdsX3JlcV9naCAhPSBnaCAmJgotCSAgICAgICAhdGVzdF9iaXQoSElGX0hPTERFUiwgJmdoLT5naF9pZmxhZ3MpICYmCi0JICAgICAgICFsaXN0X2VtcHR5KCZnaC0+Z2hfbGlzdCkpIHsKLQkJaWYgKCEoZ2wtPmdsX3JlcV9naCAmJiAoZ2wtPmdsX3JlcV9naC0+Z2hfZmxhZ3MgJiBHTF9OT0NBTkNFTCkpKSB7Ci0JCQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwotCQkJaWYgKGxpa2VseSghdGVzdF9iaXQoU0RGX1NIVVRET1dOLCAmc2RwLT5zZF9mbGFncykpKQotCQkJCXNkcC0+c2RfbG9ja3N0cnVjdC5sc19vcHMtPmxtX2NhbmNlbChnbC0+Z2xfbG9jayk7Ci0JCQltc2xlZXAoMTAwKTsKLQkJCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOwotCQl9IGVsc2UgewotCQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQkJCW1zbGVlcCgxMDApOwotCQkJc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0JCX0KLQl9Ci0KLQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwotfQotCi0vKioKLSAqIGdsb2NrX3dhaXRfaW50ZXJuYWwgLSB3YWl0IG9uIGEgZ2xvY2sgYWNxdWlzaXRpb24KKyAqIGdmczJfZ2xvY2tfd2FpdCAtIHdhaXQgb24gYSBnbG9jayBhY3F1aXNpdGlvbgogICogQGdoOiB0aGUgZ2xvY2sgaG9sZGVyCiAgKgogICogUmV0dXJuczogMCBvbiBzdWNjZXNzCiAgKi8KIAotc3RhdGljIGludCBnbG9ja193YWl0X2ludGVybmFsKHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpCitpbnQgZ2ZzMl9nbG9ja193YWl0KHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpCiB7Ci0Jc3RydWN0IGdmczJfZ2xvY2sgKmdsID0gZ2gtPmdoX2dsOwotCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gZ2wtPmdsX3NiZDsKLQljb25zdCBzdHJ1Y3QgZ2ZzMl9nbG9ja19vcGVyYXRpb25zICpnbG9wcyA9IGdsLT5nbF9vcHM7Ci0KLQlpZiAodGVzdF9iaXQoSElGX0FCT1JURUQsICZnaC0+Z2hfaWZsYWdzKSkKLQkJcmV0dXJuIC1FSU87Ci0KLQlpZiAoZ2gtPmdoX2ZsYWdzICYgKExNX0ZMQUdfVFJZIHwgTE1fRkxBR19UUllfMUNCKSkgewotCQlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKLQkJaWYgKGdsLT5nbF9yZXFfZ2ggIT0gZ2ggJiYKLQkJICAgICF0ZXN0X2JpdChISUZfSE9MREVSLCAmZ2gtPmdoX2lmbGFncykgJiYKLQkJICAgICFsaXN0X2VtcHR5KCZnaC0+Z2hfbGlzdCkpIHsKLQkJCWxpc3RfZGVsX2luaXQoJmdoLT5naF9saXN0KTsKLQkJCWdoLT5naF9lcnJvciA9IEdMUl9UUllGQUlMRUQ7Ci0JCQlydW5fcXVldWUoZ2wpOwotCQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQkJCXJldHVybiBnaC0+Z2hfZXJyb3I7Ci0JCX0KLQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQl9Ci0KLQlpZiAoZ2gtPmdoX2ZsYWdzICYgTE1fRkxBR19QUklPUklUWSkKLQkJZG9fY2FuY2VscyhnaCk7Ci0KIAl3YWl0X29uX2hvbGRlcihnaCk7Ci0JaWYgKGdoLT5naF9lcnJvcikKLQkJcmV0dXJuIGdoLT5naF9lcnJvcjsKLQotCWdmczJfYXNzZXJ0X3dpdGhkcmF3KHNkcCwgdGVzdF9iaXQoSElGX0hPTERFUiwgJmdoLT5naF9pZmxhZ3MpKTsKLQlnZnMyX2Fzc2VydF93aXRoZHJhdyhzZHAsIHJlbGF4ZWRfc3RhdGVfb2soZ2wtPmdsX3N0YXRlLCBnaC0+Z2hfc3RhdGUsCi0JCQkJCQkgICBnaC0+Z2hfZmxhZ3MpKTsKLQotCWlmICh0ZXN0X2JpdChISUZfRklSU1QsICZnaC0+Z2hfaWZsYWdzKSkgewotCQlnZnMyX2Fzc2VydF93YXJuKHNkcCwgdGVzdF9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpKTsKLQotCQlpZiAoZ2xvcHMtPmdvX2xvY2spIHsKLQkJCWdoLT5naF9lcnJvciA9IGdsb3BzLT5nb19sb2NrKGdoKTsKLQkJCWlmIChnaC0+Z2hfZXJyb3IpIHsKLQkJCQlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKLQkJCQlsaXN0X2RlbF9pbml0KCZnaC0+Z2hfbGlzdCk7Ci0JCQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQkJCX0KLQkJfQotCi0JCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOwotCQlnbC0+Z2xfcmVxX2doID0gTlVMTDsKLQkJY2xlYXJfYml0KEdMRl9MT0NLLCAmZ2wtPmdsX2ZsYWdzKTsKLQkJcnVuX3F1ZXVlKGdsKTsKLQkJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKLQl9Ci0KIAlyZXR1cm4gZ2gtPmdoX2Vycm9yOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBnZnMyX2hvbGRlciAqCi1maW5kX2hvbGRlcl9ieV9vd25lcihzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBzdHJ1Y3QgcGlkICpwaWQpCi17Ci0Jc3RydWN0IGdmczJfaG9sZGVyICpnaDsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnkoZ2gsIGhlYWQsIGdoX2xpc3QpIHsKLQkJaWYgKGdoLT5naF9vd25lcl9waWQgPT0gcGlkKQotCQkJcmV0dXJuIGdoOwotCX0KLQotCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgdm9pZCBwcmludF9kYmcoc3RydWN0IGdsb2NrX2l0ZXIgKmdpLCBjb25zdCBjaGFyICpmbXQsIC4uLikKK3ZvaWQgZ2ZzMl9wcmludF9kYmcoc3RydWN0IHNlcV9maWxlICpzZXEsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QgYXJnczsKIAogCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7Ci0JaWYgKGdpKSB7CisJaWYgKHNlcSkgeworCQlzdHJ1Y3QgZ2ZzMl9nbG9ja19pdGVyICpnaSA9IHNlcS0+cHJpdmF0ZTsKIAkJdnNwcmludGYoZ2ktPnN0cmluZywgZm10LCBhcmdzKTsKLQkJc2VxX3ByaW50ZihnaS0+c2VxLCBnaS0+c3RyaW5nKTsKLQl9Ci0JZWxzZQorCQlzZXFfcHJpbnRmKHNlcSwgZ2ktPnN0cmluZyk7CisJfSBlbHNlIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIgIik7CiAJCXZwcmludGsoZm10LCBhcmdzKTsKKwl9CiAJdmFfZW5kKGFyZ3MpOwogfQogCkBAIC0xMTA0LDUwICs4NzAsNzYgQEAKICAqIGFkZF90b19xdWV1ZSAtIEFkZCBhIGhvbGRlciB0byB0aGUgd2FpdCBxdWV1ZSAoYnV0IGxvb2sgZm9yIHJlY3Vyc2lvbikKICAqIEBnaDogdGhlIGhvbGRlciBzdHJ1Y3R1cmUgdG8gYWRkCiAgKgorICogRXZlbnR1YWxseSB3ZSBzaG91bGQgbW92ZSB0aGUgcmVjdXJzaXZlIGxvY2tpbmcgdHJhcCB0byBhCisgKiBkZWJ1Z2dpbmcgb3B0aW9uIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQuIFRoaXMgaXMgdGhlIGZhc3QKKyAqIHBhdGggYW5kIG5lZWRzIHRvIGhhdmUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpc3RyYWN0aW9ucy4KKyAqIAogICovCiAKLXN0YXRpYyB2b2lkIGFkZF90b19xdWV1ZShzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKQorc3RhdGljIGlubGluZSB2b2lkIGFkZF90b19xdWV1ZShzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKQogewogCXN0cnVjdCBnZnMyX2dsb2NrICpnbCA9IGdoLT5naF9nbDsKLQlzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmV4aXN0aW5nOworCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gZ2wtPmdsX3NiZDsKKwlzdHJ1Y3QgbGlzdF9oZWFkICppbnNlcnRfcHQgPSBOVUxMOworCXN0cnVjdCBnZnMyX2hvbGRlciAqZ2gyOworCWludCB0cnlfbG9jayA9IDA7CiAKIAlCVUdfT04oZ2gtPmdoX293bmVyX3BpZCA9PSBOVUxMKTsKIAlpZiAodGVzdF9hbmRfc2V0X2JpdChISUZfV0FJVCwgJmdoLT5naF9pZmxhZ3MpKQogCQlCVUcoKTsKIAotCWlmICghKGdoLT5naF9mbGFncyAmIEdMX0ZMT0NLKSkgewotCQlleGlzdGluZyA9IGZpbmRfaG9sZGVyX2J5X293bmVyKCZnbC0+Z2xfaG9sZGVycywgCi0JCQkJCQlnaC0+Z2hfb3duZXJfcGlkKTsKLQkJaWYgKGV4aXN0aW5nKSB7Ci0JCQlwcmludF9zeW1ib2woS0VSTl9XQVJOSU5HICJvcmlnaW5hbDogJXNcbiIsIAotCQkJCSAgICAgZXhpc3RpbmctPmdoX2lwKTsKLQkJCXByaW50ayhLRVJOX0lORk8gInBpZCA6ICVkXG4iLAotCQkJCQlwaWRfbnIoZXhpc3RpbmctPmdoX293bmVyX3BpZCkpOwotCQkJcHJpbnRrKEtFUk5fSU5GTyAibG9jayB0eXBlIDogJWQgbG9jayBzdGF0ZSA6ICVkXG4iLAotCQkJICAgICAgIGV4aXN0aW5nLT5naF9nbC0+Z2xfbmFtZS5sbl90eXBlLCAKLQkJCSAgICAgICBleGlzdGluZy0+Z2hfZ2wtPmdsX3N0YXRlKTsKLQkJCXByaW50X3N5bWJvbChLRVJOX1dBUk5JTkcgIm5ldzogJXNcbiIsIGdoLT5naF9pcCk7Ci0JCQlwcmludGsoS0VSTl9JTkZPICJwaWQgOiAlZFxuIiwKLQkJCQkJcGlkX25yKGdoLT5naF9vd25lcl9waWQpKTsKLQkJCXByaW50ayhLRVJOX0lORk8gImxvY2sgdHlwZSA6ICVkIGxvY2sgc3RhdGUgOiAlZFxuIiwKLQkJCSAgICAgICBnbC0+Z2xfbmFtZS5sbl90eXBlLCBnbC0+Z2xfc3RhdGUpOwotCQkJQlVHKCk7Ci0JCX0KLQkJCi0JCWV4aXN0aW5nID0gZmluZF9ob2xkZXJfYnlfb3duZXIoJmdsLT5nbF93YWl0ZXJzMywgCi0JCQkJCQlnaC0+Z2hfb3duZXJfcGlkKTsKLQkJaWYgKGV4aXN0aW5nKSB7Ci0JCQlwcmludF9zeW1ib2woS0VSTl9XQVJOSU5HICJvcmlnaW5hbDogJXNcbiIsIAotCQkJCSAgICAgZXhpc3RpbmctPmdoX2lwKTsKLQkJCXByaW50X3N5bWJvbChLRVJOX1dBUk5JTkcgIm5ldzogJXNcbiIsIGdoLT5naF9pcCk7Ci0JCQlCVUcoKTsKLQkJfQorCWlmIChnaC0+Z2hfZmxhZ3MgJiAoTE1fRkxBR19UUlkgfCBMTV9GTEFHX1RSWV8xQ0IpKSB7CisJCWlmICh0ZXN0X2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncykpCisJCQl0cnlfbG9jayA9IDE7CisJCWlmICh0ZXN0X2JpdChHTEZfSU5WQUxJREFURV9JTl9QUk9HUkVTUywgJmdsLT5nbF9mbGFncykpCisJCQlnb3RvIGZhaWw7CiAJfQogCi0JaWYgKGdoLT5naF9mbGFncyAmIExNX0ZMQUdfUFJJT1JJVFkpCi0JCWxpc3RfYWRkKCZnaC0+Z2hfbGlzdCwgJmdsLT5nbF93YWl0ZXJzMyk7Ci0JZWxzZQotCQlsaXN0X2FkZF90YWlsKCZnaC0+Z2hfbGlzdCwgJmdsLT5nbF93YWl0ZXJzMyk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShnaDIsICZnbC0+Z2xfaG9sZGVycywgZ2hfbGlzdCkgeworCQlpZiAodW5saWtlbHkoZ2gyLT5naF9vd25lcl9waWQgPT0gZ2gtPmdoX293bmVyX3BpZCAmJgorCQkgICAgKGdoLT5naF9nbC0+Z2xfb3BzLT5nb190eXBlICE9IExNX1RZUEVfRkxPQ0spKSkKKwkJCWdvdG8gdHJhcF9yZWN1cnNpdmU7CisJCWlmICh0cnlfbG9jayAmJgorCQkgICAgIShnaDItPmdoX2ZsYWdzICYgKExNX0ZMQUdfVFJZIHwgTE1fRkxBR19UUllfMUNCKSkgJiYKKwkJICAgICFtYXlfZ3JhbnQoZ2wsIGdoKSkgeworZmFpbDoKKwkJCWdoLT5naF9lcnJvciA9IEdMUl9UUllGQUlMRUQ7CisJCQlnZnMyX2hvbGRlcl93YWtlKGdoKTsKKwkJCXJldHVybjsKKwkJfQorCQlpZiAodGVzdF9iaXQoSElGX0hPTERFUiwgJmdoMi0+Z2hfaWZsYWdzKSkKKwkJCWNvbnRpbnVlOworCQlpZiAodW5saWtlbHkoKGdoLT5naF9mbGFncyAmIExNX0ZMQUdfUFJJT1JJVFkpICYmICFpbnNlcnRfcHQpKQorCQkJaW5zZXJ0X3B0ID0gJmdoMi0+Z2hfbGlzdDsKKwl9CisJaWYgKGxpa2VseShpbnNlcnRfcHQgPT0gTlVMTCkpIHsKKwkJbGlzdF9hZGRfdGFpbCgmZ2gtPmdoX2xpc3QsICZnbC0+Z2xfaG9sZGVycyk7CisJCWlmICh1bmxpa2VseShnaC0+Z2hfZmxhZ3MgJiBMTV9GTEFHX1BSSU9SSVRZKSkKKwkJCWdvdG8gZG9fY2FuY2VsOworCQlyZXR1cm47CisJfQorCWxpc3RfYWRkX3RhaWwoJmdoLT5naF9saXN0LCBpbnNlcnRfcHQpOworZG9fY2FuY2VsOgorCWdoID0gbGlzdF9lbnRyeShnbC0+Z2xfaG9sZGVycy5uZXh0LCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIsIGdoX2xpc3QpOworCWlmICghKGdoLT5naF9mbGFncyAmIExNX0ZMQUdfUFJJT1JJVFkpKSB7CisJCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7CisJCWlmIChzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9jYW5jZWwpCisJCQlzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9jYW5jZWwoZ2wtPmdsX2xvY2spOworCQlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKKwl9CisJcmV0dXJuOworCit0cmFwX3JlY3Vyc2l2ZToKKwlwcmludF9zeW1ib2woS0VSTl9FUlIgIm9yaWdpbmFsOiAlc1xuIiwgZ2gyLT5naF9pcCk7CisJcHJpbnRrKEtFUk5fRVJSICJwaWQ6ICVkXG4iLCBwaWRfbnIoZ2gyLT5naF9vd25lcl9waWQpKTsKKwlwcmludGsoS0VSTl9FUlIgImxvY2sgdHlwZTogJWQgcmVxIGxvY2sgc3RhdGUgOiAlZFxuIiwKKwkgICAgICAgZ2gyLT5naF9nbC0+Z2xfbmFtZS5sbl90eXBlLCBnaDItPmdoX3N0YXRlKTsKKwlwcmludF9zeW1ib2woS0VSTl9FUlIgIm5ldzogJXNcbiIsIGdoLT5naF9pcCk7CisJcHJpbnRrKEtFUk5fRVJSICJwaWQ6ICVkXG4iLCBwaWRfbnIoZ2gtPmdoX293bmVyX3BpZCkpOworCXByaW50ayhLRVJOX0VSUiAibG9jayB0eXBlOiAlZCByZXEgbG9jayBzdGF0ZSA6ICVkXG4iLAorCSAgICAgICBnaC0+Z2hfZ2wtPmdsX25hbWUubG5fdHlwZSwgZ2gtPmdoX3N0YXRlKTsKKwlfX2R1bXBfZ2xvY2soTlVMTCwgZ2wpOworCUJVRygpOwogfQogCiAvKioKQEAgLTExNjUsMjQgKzk1NywxNiBAQAogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gZ2wtPmdsX3NiZDsKIAlpbnQgZXJyb3IgPSAwOwogCi1yZXN0YXJ0OgotCWlmICh1bmxpa2VseSh0ZXN0X2JpdChTREZfU0hVVERPV04sICZzZHAtPnNkX2ZsYWdzKSkpIHsKLQkJc2V0X2JpdChISUZfQUJPUlRFRCwgJmdoLT5naF9pZmxhZ3MpOworCWlmICh1bmxpa2VseSh0ZXN0X2JpdChTREZfU0hVVERPV04sICZzZHAtPnNkX2ZsYWdzKSkpCiAJCXJldHVybiAtRUlPOwotCX0KIAogCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOwogCWFkZF90b19xdWV1ZShnaCk7Ci0JcnVuX3F1ZXVlKGdsKTsKKwlydW5fcXVldWUoZ2wsIDEpOwogCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7CiAKLQlpZiAoIShnaC0+Z2hfZmxhZ3MgJiBHTF9BU1lOQykpIHsKLQkJZXJyb3IgPSBnbG9ja193YWl0X2ludGVybmFsKGdoKTsKLQkJaWYgKGVycm9yID09IEdMUl9DQU5DRUxFRCkgewotCQkJbXNsZWVwKDEwMCk7Ci0JCQlnb3RvIHJlc3RhcnQ7Ci0JCX0KLQl9CisJaWYgKCEoZ2gtPmdoX2ZsYWdzICYgR0xfQVNZTkMpKQorCQllcnJvciA9IGdmczJfZ2xvY2tfd2FpdChnaCk7CiAKIAlyZXR1cm4gZXJyb3I7CiB9CkBAIC0xMTk2LDQ4ICs5ODAsNyBAQAogCiBpbnQgZ2ZzMl9nbG9ja19wb2xsKHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpCiB7Ci0Jc3RydWN0IGdmczJfZ2xvY2sgKmdsID0gZ2gtPmdoX2dsOwotCWludCByZWFkeSA9IDA7Ci0KLQlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKLQotCWlmICh0ZXN0X2JpdChISUZfSE9MREVSLCAmZ2gtPmdoX2lmbGFncykpCi0JCXJlYWR5ID0gMTsKLQllbHNlIGlmIChsaXN0X2VtcHR5KCZnaC0+Z2hfbGlzdCkpIHsKLQkJaWYgKGdoLT5naF9lcnJvciA9PSBHTFJfQ0FOQ0VMRUQpIHsKLQkJCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0JCQltc2xlZXAoMTAwKTsKLQkJCWlmIChnZnMyX2dsb2NrX25xKGdoKSkKLQkJCQlyZXR1cm4gMTsKLQkJCXJldHVybiAwOwotCQl9IGVsc2UKLQkJCXJlYWR5ID0gMTsKLQl9Ci0KLQlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwotCi0JcmV0dXJuIHJlYWR5OwotfQotCi0vKioKLSAqIGdmczJfZ2xvY2tfd2FpdCAtIHdhaXQgZm9yIGEgbG9jayBhY3F1aXNpdGlvbiB0aGF0IGVuZGVkIGluIGEgR0xSX0FTWU5DCi0gKiBAZ2g6IHRoZSBob2xkZXIgc3RydWN0dXJlCi0gKgotICogUmV0dXJuczogMCwgR0xSX1RSWUZBSUxFRCwgb3IgZXJybm8gb24gZmFpbHVyZQotICovCi0KLWludCBnZnMyX2dsb2NrX3dhaXQoc3RydWN0IGdmczJfaG9sZGVyICpnaCkKLXsKLQlpbnQgZXJyb3I7Ci0KLQllcnJvciA9IGdsb2NrX3dhaXRfaW50ZXJuYWwoZ2gpOwotCWlmIChlcnJvciA9PSBHTFJfQ0FOQ0VMRUQpIHsKLQkJbXNsZWVwKDEwMCk7Ci0JCWdoLT5naF9mbGFncyAmPSB+R0xfQVNZTkM7Ci0JCWVycm9yID0gZ2ZzMl9nbG9ja19ucShnaCk7Ci0JfQotCi0JcmV0dXJuIGVycm9yOworCXJldHVybiB0ZXN0X2JpdChISUZfV0FJVCwgJmdoLT5naF9pZmxhZ3MpID8gMCA6IDE7CiB9CiAKIC8qKgpAQCAtMTI1MSwyNiArOTk0LDMwIEBACiAJc3RydWN0IGdmczJfZ2xvY2sgKmdsID0gZ2gtPmdoX2dsOwogCWNvbnN0IHN0cnVjdCBnZnMyX2dsb2NrX29wZXJhdGlvbnMgKmdsb3BzID0gZ2wtPmdsX29wczsKIAl1bnNpZ25lZCBkZWxheSA9IDA7CisJaW50IGZhc3RfcGF0aCA9IDA7CiAKKwlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKIAlpZiAoZ2gtPmdoX2ZsYWdzICYgR0xfTk9DQUNIRSkKIAkJaGFuZGxlX2NhbGxiYWNrKGdsLCBMTV9TVF9VTkxPQ0tFRCwgMCwgMCk7CiAKLQlnZnMyX2dsbXV0ZXhfbG9jayhnbCk7Ci0KLQlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKIAlsaXN0X2RlbF9pbml0KCZnaC0+Z2hfbGlzdCk7Ci0KLQlpZiAobGlzdF9lbXB0eSgmZ2wtPmdsX2hvbGRlcnMpKSB7CisJaWYgKGZpbmRfZmlyc3RfaG9sZGVyKGdsKSA9PSBOVUxMKSB7CiAJCWlmIChnbG9wcy0+Z29fdW5sb2NrKSB7CisJCQlHTE9DS19CVUdfT04oZ2wsIHRlc3RfYW5kX3NldF9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpKTsKIAkJCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7CiAJCQlnbG9wcy0+Z29fdW5sb2NrKGdoKTsKIAkJCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOworCQkJY2xlYXJfYml0KEdMRl9MT0NLLCAmZ2wtPmdsX2ZsYWdzKTsKIAkJfQogCQlnbC0+Z2xfc3RhbXAgPSBqaWZmaWVzOworCQlpZiAobGlzdF9lbXB0eSgmZ2wtPmdsX2hvbGRlcnMpICYmCisJCSAgICAhdGVzdF9iaXQoR0xGX1BFTkRJTkdfREVNT1RFLCAmZ2wtPmdsX2ZsYWdzKSAmJgorCQkgICAgIXRlc3RfYml0KEdMRl9ERU1PVEUsICZnbC0+Z2xfZmxhZ3MpKQorCQkJZmFzdF9wYXRoID0gMTsKIAl9Ci0KLQljbGVhcl9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpOwogCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7CisJaWYgKGxpa2VseShmYXN0X3BhdGgpKQorCQlyZXR1cm47CiAKIAlnZnMyX2dsb2NrX2hvbGQoZ2wpOwogCWlmICh0ZXN0X2JpdChHTEZfUEVORElOR19ERU1PVEUsICZnbC0+Z2xfZmxhZ3MpICYmCkBAIC0xNDU0LDYgKzEyMDEsOCBAQAogc3RhdGljIGludCBnZnMyX2xtX2hvbGRfbHZiKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCB2b2lkICpsb2NrLCBjaGFyICoqbHZicCkKIHsKIAlpbnQgZXJyb3IgPSAtRUlPOworCWlmICghc2RwLT5zZF9sb2Nrc3RydWN0LmxzX29wcy0+bG1faG9sZF9sdmIpCisJCXJldHVybiAwOwogCWlmIChsaWtlbHkoIXRlc3RfYml0KFNERl9TSFVURE9XTiwgJnNkcC0+c2RfZmxhZ3MpKSkKIAkJZXJyb3IgPSBzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9ob2xkX2x2Yihsb2NrLCBsdmJwKTsKIAlyZXR1cm4gZXJyb3I7CkBAIC0xNDY5LDIwICsxMjE4LDE0IEBACiB7CiAJaW50IGVycm9yOwogCi0JZ2ZzMl9nbG11dGV4X2xvY2soZ2wpOwotCiAJaWYgKCFhdG9taWNfcmVhZCgmZ2wtPmdsX2x2Yl9jb3VudCkpIHsKIAkJZXJyb3IgPSBnZnMyX2xtX2hvbGRfbHZiKGdsLT5nbF9zYmQsIGdsLT5nbF9sb2NrLCAmZ2wtPmdsX2x2Yik7Ci0JCWlmIChlcnJvcikgewotCQkJZ2ZzMl9nbG11dGV4X3VubG9jayhnbCk7CisJCWlmIChlcnJvcikgCiAJCQlyZXR1cm4gZXJyb3I7Ci0JCX0KIAkJZ2ZzMl9nbG9ja19ob2xkKGdsKTsKIAl9CiAJYXRvbWljX2luYygmZ2wtPmdsX2x2Yl9jb3VudCk7CiAKLQlnZnMyX2dsbXV0ZXhfdW5sb2NrKGdsKTsKLQogCXJldHVybiAwOwogfQogCkBAIC0xNDk3LDE3ICsxMjQwLDEzIEBACiAJc3RydWN0IGdmczJfc2JkICpzZHAgPSBnbC0+Z2xfc2JkOwogCiAJZ2ZzMl9nbG9ja19ob2xkKGdsKTsKLQlnZnMyX2dsbXV0ZXhfbG9jayhnbCk7Ci0KIAlnZnMyX2Fzc2VydChnbC0+Z2xfc2JkLCBhdG9taWNfcmVhZCgmZ2wtPmdsX2x2Yl9jb3VudCkgPiAwKTsKIAlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmZ2wtPmdsX2x2Yl9jb3VudCkpIHsKLQkJaWYgKGxpa2VseSghdGVzdF9iaXQoU0RGX1NIVVRET1dOLCAmc2RwLT5zZF9mbGFncykpKQorCQlpZiAoc2RwLT5zZF9sb2Nrc3RydWN0LmxzX29wcy0+bG1fdW5ob2xkX2x2YikKIAkJCXNkcC0+c2RfbG9ja3N0cnVjdC5sc19vcHMtPmxtX3VuaG9sZF9sdmIoZ2wtPmdsX2xvY2ssIGdsLT5nbF9sdmIpOwogCQlnbC0+Z2xfbHZiID0gTlVMTDsKIAkJZ2ZzMl9nbG9ja19wdXQoZ2wpOwogCX0KLQotCWdmczJfZ2xtdXRleF91bmxvY2soZ2wpOwogCWdmczJfZ2xvY2tfcHV0KGdsKTsKIH0KIApAQCAtMTUyNyw3ICsxMjY2LDkgQEAKIAlpZiAodGltZV9iZWZvcmUobm93LCBob2xkdGltZSkpCiAJCWRlbGF5ID0gaG9sZHRpbWUgLSBub3c7CiAKKwlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKIAloYW5kbGVfY2FsbGJhY2soZ2wsIHN0YXRlLCAxLCBkZWxheSk7CisJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKIAlpZiAocXVldWVfZGVsYXllZF93b3JrKGdsb2NrX3dvcmtxdWV1ZSwgJmdsLT5nbF93b3JrLCBkZWxheSkgPT0gMCkKIAkJZ2ZzMl9nbG9ja19wdXQoZ2wpOwogfQpAQCAtMTU2OCw3ICsxMzA5LDggQEAKIAkJZ2wgPSBnZnMyX2dsb2NrX2ZpbmQoc2RwLCAmYXN5bmMtPmxjX25hbWUpOwogCQlpZiAoZ2ZzMl9hc3NlcnRfd2FybihzZHAsIGdsKSkKIAkJCXJldHVybjsKLQkJeG1vdGVfYmgoZ2wsIGFzeW5jLT5sY19yZXQpOworCQlnbC0+Z2xfcmVwbHkgPSBhc3luYy0+bGNfcmV0OworCQlzZXRfYml0KEdMRl9SRVBMWV9QRU5ESU5HLCAmZ2wtPmdsX2ZsYWdzKTsKIAkJaWYgKHF1ZXVlX2RlbGF5ZWRfd29yayhnbG9ja193b3JrcXVldWUsICZnbC0+Z2xfd29yaywgMCkgPT0gMCkKIAkJCWdmczJfZ2xvY2tfcHV0KGdsKTsKIAkJdXBfcmVhZCgmZ2ZzMl91bW91bnRfZmx1c2hfc2VtKTsKQEAgLTE1ODEsMTEgKzEzMjMsNiBAQAogCQkJd2FrZV91cF9wcm9jZXNzKHNkcC0+c2RfcmVjb3ZlcmRfcHJvY2Vzcyk7CiAJCXJldHVybjsKIAotCWNhc2UgTE1fQ0JfRFJPUExPQ0tTOgotCQlnZnMyX2dsX2hhc2hfY2xlYXIoc2RwLCBOT19XQUlUKTsKLQkJZ2ZzMl9xdW90YV9zY2FuKHNkcCk7Ci0JCXJldHVybjsKLQogCWRlZmF1bHQ6CiAJCWdmczJfYXNzZXJ0X3dhcm4oc2RwLCAwKTsKIAkJcmV0dXJuOwpAQCAtMTY0Niw2ICsxMzgzLDcgQEAKIHZvaWQgZ2ZzMl9yZWNsYWltX2dsb2NrKHN0cnVjdCBnZnMyX3NiZCAqc2RwKQogewogCXN0cnVjdCBnZnMyX2dsb2NrICpnbDsKKwlpbnQgZG9uZV9jYWxsYmFjayA9IDA7CiAKIAlzcGluX2xvY2soJnNkcC0+c2RfcmVjbGFpbV9sb2NrKTsKIAlpZiAobGlzdF9lbXB0eSgmc2RwLT5zZF9yZWNsYWltX2xpc3QpKSB7CkBAIC0xNjYwLDE0ICsxMzk4LDE2IEBACiAJYXRvbWljX2RlYygmc2RwLT5zZF9yZWNsYWltX2NvdW50KTsKIAlhdG9taWNfaW5jKCZzZHAtPnNkX3JlY2xhaW1lZCk7CiAKLQlpZiAoZ2ZzMl9nbG11dGV4X3RyeWxvY2soZ2wpKSB7Ci0JCWlmIChsaXN0X2VtcHR5KCZnbC0+Z2xfaG9sZGVycykgJiYKLQkJICAgIGdsLT5nbF9zdGF0ZSAhPSBMTV9TVF9VTkxPQ0tFRCAmJiBkZW1vdGVfb2soZ2wpKQotCQkJaGFuZGxlX2NhbGxiYWNrKGdsLCBMTV9TVF9VTkxPQ0tFRCwgMCwgMCk7Ci0JCWdmczJfZ2xtdXRleF91bmxvY2soZ2wpOworCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOworCWlmIChmaW5kX2ZpcnN0X2hvbGRlcihnbCkgPT0gTlVMTCAmJgorCSAgICBnbC0+Z2xfc3RhdGUgIT0gTE1fU1RfVU5MT0NLRUQgJiYgZGVtb3RlX29rKGdsKSkgeworCQloYW5kbGVfY2FsbGJhY2soZ2wsIExNX1NUX1VOTE9DS0VELCAwLCAwKTsKKwkJZG9uZV9jYWxsYmFjayA9IDE7CiAJfQotCi0JZ2ZzMl9nbG9ja19wdXQoZ2wpOworCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7CisJaWYgKCFkb25lX2NhbGxiYWNrIHx8CisJICAgIHF1ZXVlX2RlbGF5ZWRfd29yayhnbG9ja193b3JrcXVldWUsICZnbC0+Z2xfd29yaywgMCkgPT0gMCkKKwkJZ2ZzMl9nbG9ja19wdXQoZ2wpOwogfQogCiAvKioKQEAgLTE3MjQsMTggKzE0NjQsMTQgQEAKIHsKIAlpZiAoZ2wtPmdsX29wcyA9PSAmZ2ZzMl9pbm9kZV9nbG9wcyAmJiBnbC0+Z2xfb2JqZWN0KQogCQlyZXR1cm47CisJaWYgKHRlc3RfYml0KEdMRl9MT0NLLCAmZ2wtPmdsX2ZsYWdzKSkKKwkJcmV0dXJuOwogCi0JaWYgKGdmczJfZ2xtdXRleF90cnlsb2NrKGdsKSkgewotCQlpZiAobGlzdF9lbXB0eSgmZ2wtPmdsX2hvbGRlcnMpICYmCi0JCSAgICBnbC0+Z2xfc3RhdGUgIT0gTE1fU1RfVU5MT0NLRUQgJiYgZGVtb3RlX29rKGdsKSkKLQkJCWdvdG8gb3V0X3NjaGVkdWxlOwotCQlnZnMyX2dsbXV0ZXhfdW5sb2NrKGdsKTsKLQl9Ci0JcmV0dXJuOwotCi1vdXRfc2NoZWR1bGU6Ci0JZ2ZzMl9nbG11dGV4X3VubG9jayhnbCk7Ci0JZ2ZzMl9nbG9ja19zY2hlZHVsZV9mb3JfcmVjbGFpbShnbCk7CisJc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7CisJaWYgKGZpbmRfZmlyc3RfaG9sZGVyKGdsKSA9PSBOVUxMICYmCisJICAgIGdsLT5nbF9zdGF0ZSAhPSBMTV9TVF9VTkxPQ0tFRCAmJiBkZW1vdGVfb2soZ2wpKQorCQlnZnMyX2dsb2NrX3NjaGVkdWxlX2Zvcl9yZWNsYWltKGdsKTsKKwlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOwogfQogCiAvKioKQEAgLTE3NjAsMTIgKzE0OTYsMTMgQEAKIAkJc3Bpbl91bmxvY2soJnNkcC0+c2RfcmVjbGFpbV9sb2NrKTsKIAl9CiAKLQlpZiAoZ2ZzMl9nbG11dGV4X3RyeWxvY2soZ2wpKSB7Ci0JCWlmIChsaXN0X2VtcHR5KCZnbC0+Z2xfaG9sZGVycykgJiYKLQkJICAgIGdsLT5nbF9zdGF0ZSAhPSBMTV9TVF9VTkxPQ0tFRCkKLQkJCWhhbmRsZV9jYWxsYmFjayhnbCwgTE1fU1RfVU5MT0NLRUQsIDAsIDApOwotCQlnZnMyX2dsbXV0ZXhfdW5sb2NrKGdsKTsKLQl9CisJc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7CisJaWYgKGZpbmRfZmlyc3RfaG9sZGVyKGdsKSA9PSBOVUxMICYmIGdsLT5nbF9zdGF0ZSAhPSBMTV9TVF9VTkxPQ0tFRCkKKwkJaGFuZGxlX2NhbGxiYWNrKGdsLCBMTV9TVF9VTkxPQ0tFRCwgMCwgMCk7CisJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKKwlnZnMyX2dsb2NrX2hvbGQoZ2wpOworCWlmIChxdWV1ZV9kZWxheWVkX3dvcmsoZ2xvY2tfd29ya3F1ZXVlLCAmZ2wtPmdsX3dvcmssIDApID09IDApCisJCWdmczJfZ2xvY2tfcHV0KGdsKTsKIH0KIAogLyoqCkBAIC0xNzczLDExICsxNTEwLDEwIEBACiAgKiBAc2RwOiB0aGUgZmlsZXN5c3RlbQogICogQHdhaXQ6IHdhaXQgdW50aWwgaXQncyBhbGwgZ29uZQogICoKLSAqIENhbGxlZCB3aGVuIHVubW91bnRpbmcgdGhlIGZpbGVzeXN0ZW0sIG9yIHdoZW4gaW50ZXItbm9kZSBsb2NrIG1hbmFnZXIKLSAqIHJlcXVlc3RzIERST1BMT0NLUyBiZWNhdXNlIGl0IGlzIHJ1bm5pbmcgb3V0IG9mIGNhcGFjaXR5LgorICogQ2FsbGVkIHdoZW4gdW5tb3VudGluZyB0aGUgZmlsZXN5c3RlbS4KICAqLwogCi12b2lkIGdmczJfZ2xfaGFzaF9jbGVhcihzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCwgaW50IHdhaXQpCit2b2lkIGdmczJfZ2xfaGFzaF9jbGVhcihzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCkKIHsKIAl1bnNpZ25lZCBsb25nIHQ7CiAJdW5zaWduZWQgaW50IHg7CkBAIC0xNzkyLDcgKzE1MjgsNyBAQAogCQkJCWNvbnQgPSAxOwogCQl9CiAKLQkJaWYgKCF3YWl0IHx8ICFjb250KQorCQlpZiAoIWNvbnQpCiAJCQlicmVhazsKIAogCQlpZiAodGltZV9hZnRlcl9lcShqaWZmaWVzLApAQCAtMTgxMCwxODAgKzE1NDYsMTY0IEBACiAJfQogfQogCi0vKgotICogIERpYWdub3N0aWMgcm91dGluZXMgdG8gaGVscCBkZWJ1ZyBkaXN0cmlidXRlZCBkZWFkbG9jawotICovCi0KLXN0YXRpYyB2b2lkIGdmczJfcHJpbnRfc3ltYm9sKHN0cnVjdCBnbG9ja19pdGVyICpnaSwgY29uc3QgY2hhciAqZm10LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQorc3RhdGljIGNvbnN0IGNoYXIgKnN0YXRlMnN0cih1bnNpZ25lZCBzdGF0ZSkKIHsKLQljaGFyIGJ1ZmZlcltLU1lNX1NZTUJPTF9MRU5dOworCXN3aXRjaChzdGF0ZSkgeworCWNhc2UgTE1fU1RfVU5MT0NLRUQ6CisJCXJldHVybiAiVU4iOworCWNhc2UgTE1fU1RfU0hBUkVEOgorCQlyZXR1cm4gIlNIIjsKKwljYXNlIExNX1NUX0RFRkVSUkVEOgorCQlyZXR1cm4gIkRGIjsKKwljYXNlIExNX1NUX0VYQ0xVU0lWRToKKwkJcmV0dXJuICJFWCI7CisJfQorCXJldHVybiAiPz8iOworfQogCi0Jc3ByaW50X3N5bWJvbChidWZmZXIsIGFkZHJlc3MpOwotCXByaW50X2RiZyhnaSwgZm10LCBidWZmZXIpOworc3RhdGljIGNvbnN0IGNoYXIgKmhmbGFnczJzdHIoY2hhciAqYnVmLCB1bnNpZ25lZCBmbGFncywgdW5zaWduZWQgbG9uZyBpZmxhZ3MpCit7CisJY2hhciAqcCA9IGJ1ZjsKKwlpZiAoZmxhZ3MgJiBMTV9GTEFHX1RSWSkKKwkJKnArKyA9ICd0JzsKKwlpZiAoZmxhZ3MgJiBMTV9GTEFHX1RSWV8xQ0IpCisJCSpwKysgPSAnVCc7CisJaWYgKGZsYWdzICYgTE1fRkxBR19OT0VYUCkKKwkJKnArKyA9ICdlJzsKKwlpZiAoZmxhZ3MgJiBMTV9GTEFHX0FOWSkKKwkJKnArKyA9ICdhJzsKKwlpZiAoZmxhZ3MgJiBMTV9GTEFHX1BSSU9SSVRZKQorCQkqcCsrID0gJ3AnOworCWlmIChmbGFncyAmIEdMX0FTWU5DKQorCQkqcCsrID0gJ2EnOworCWlmIChmbGFncyAmIEdMX0VYQUNUKQorCQkqcCsrID0gJ0UnOworCWlmIChmbGFncyAmIEdMX0FUSU1FKQorCQkqcCsrID0gJ2EnOworCWlmIChmbGFncyAmIEdMX05PQ0FDSEUpCisJCSpwKysgPSAnYyc7CisJaWYgKHRlc3RfYml0KEhJRl9IT0xERVIsICZpZmxhZ3MpKQorCQkqcCsrID0gJ0gnOworCWlmICh0ZXN0X2JpdChISUZfV0FJVCwgJmlmbGFncykpCisJCSpwKysgPSAnVyc7CisJaWYgKHRlc3RfYml0KEhJRl9GSVJTVCwgJmlmbGFncykpCisJCSpwKysgPSAnRic7CisJKnAgPSAwOworCXJldHVybiBidWY7CiB9CiAKIC8qKgogICogZHVtcF9ob2xkZXIgLSBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBhIGdsb2NrIGhvbGRlcgotICogQHN0cjogYSBzdHJpbmcgbmFtaW5nIHRoZSB0eXBlIG9mIGhvbGRlcgorICogQHNlcTogdGhlIHNlcV9maWxlIHN0cnVjdAogICogQGdoOiB0aGUgZ2xvY2sgaG9sZGVyCiAgKgogICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCAtRU5PQlVGUyB3aGVuIHdlIHJ1biBvdXQgb2Ygc3BhY2UKICAqLwogCi1zdGF0aWMgaW50IGR1bXBfaG9sZGVyKHN0cnVjdCBnbG9ja19pdGVyICpnaSwgY2hhciAqc3RyLAotCQkgICAgICAgc3RydWN0IGdmczJfaG9sZGVyICpnaCkKK3N0YXRpYyBpbnQgZHVtcF9ob2xkZXIoc3RydWN0IHNlcV9maWxlICpzZXEsIGNvbnN0IHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpCiB7Ci0JdW5zaWduZWQgaW50IHg7Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICpnaF9vd25lcjsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKmdoX293bmVyID0gTlVMTDsKKwljaGFyIGJ1ZmZlcltLU1lNX1NZTUJPTF9MRU5dOworCWNoYXIgZmxhZ3NfYnVmWzMyXTsKIAotCXByaW50X2RiZyhnaSwgIiAgJXNcbiIsIHN0cik7Ci0JaWYgKGdoLT5naF9vd25lcl9waWQpIHsKLQkJcHJpbnRfZGJnKGdpLCAiICAgIG93bmVyID0gJWxkICIsCi0JCQkJKGxvbmcpcGlkX25yKGdoLT5naF9vd25lcl9waWQpKTsKKwlzcHJpbnRfc3ltYm9sKGJ1ZmZlciwgZ2gtPmdoX2lwKTsKKwlpZiAoZ2gtPmdoX293bmVyX3BpZCkKIAkJZ2hfb3duZXIgPSBwaWRfdGFzayhnaC0+Z2hfb3duZXJfcGlkLCBQSURUWVBFX1BJRCk7Ci0JCWlmIChnaF9vd25lcikKLQkJCXByaW50X2RiZyhnaSwgIiglcylcbiIsIGdoX293bmVyLT5jb21tKTsKLQkJZWxzZQotCQkJcHJpbnRfZGJnKGdpLCAiKGVuZGVkKVxuIik7Ci0JfSBlbHNlCi0JCXByaW50X2RiZyhnaSwgIiAgICBvd25lciA9IC0xXG4iKTsKLQlwcmludF9kYmcoZ2ksICIgICAgZ2hfc3RhdGUgPSAldVxuIiwgZ2gtPmdoX3N0YXRlKTsKLQlwcmludF9kYmcoZ2ksICIgICAgZ2hfZmxhZ3MgPSIpOwotCWZvciAoeCA9IDA7IHggPCAzMjsgeCsrKQotCQlpZiAoZ2gtPmdoX2ZsYWdzICYgKDEgPDwgeCkpCi0JCQlwcmludF9kYmcoZ2ksICIgJXUiLCB4KTsKLQlwcmludF9kYmcoZ2ksICIgXG4iKTsKLQlwcmludF9kYmcoZ2ksICIgICAgZXJyb3IgPSAlZFxuIiwgZ2gtPmdoX2Vycm9yKTsKLQlwcmludF9kYmcoZ2ksICIgICAgZ2hfaWZsYWdzID0iKTsKLQlmb3IgKHggPSAwOyB4IDwgMzI7IHgrKykKLQkJaWYgKHRlc3RfYml0KHgsICZnaC0+Z2hfaWZsYWdzKSkKLQkJCXByaW50X2RiZyhnaSwgIiAldSIsIHgpOwotCXByaW50X2RiZyhnaSwgIiBcbiIpOwotICAgICAgICBnZnMyX3ByaW50X3N5bWJvbChnaSwgIiAgICBpbml0aWFsaXplZCBhdDogJXNcbiIsIGdoLT5naF9pcCk7Ci0KKwlnZnMyX3ByaW50X2RiZyhzZXEsICIgSDogczolcyBmOiVzIGU6JWQgcDolbGQgWyVzXSAlc1xuIiwKKwkJICBzdGF0ZTJzdHIoZ2gtPmdoX3N0YXRlKSwKKwkJICBoZmxhZ3Myc3RyKGZsYWdzX2J1ZiwgZ2gtPmdoX2ZsYWdzLCBnaC0+Z2hfaWZsYWdzKSwKKwkJICBnaC0+Z2hfZXJyb3IsIAorCQkgIGdoLT5naF9vd25lcl9waWQgPyAobG9uZylwaWRfbnIoZ2gtPmdoX293bmVyX3BpZCkgOiAtMSwKKwkJICBnaF9vd25lciA/IGdoX293bmVyLT5jb21tIDogIihlbmRlZCkiLCBidWZmZXIpOwogCXJldHVybiAwOwogfQogCi0vKioKLSAqIGR1bXBfaW5vZGUgLSBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBhbiBpbm9kZQotICogQGlwOiB0aGUgaW5vZGUKLSAqCi0gKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIC1FTk9CVUZTIHdoZW4gd2UgcnVuIG91dCBvZiBzcGFjZQotICovCi0KLXN0YXRpYyBpbnQgZHVtcF9pbm9kZShzdHJ1Y3QgZ2xvY2tfaXRlciAqZ2ksIHN0cnVjdCBnZnMyX2lub2RlICppcCkKK3N0YXRpYyBjb25zdCBjaGFyICpnZmxhZ3Myc3RyKGNoYXIgKmJ1ZiwgY29uc3QgdW5zaWduZWQgbG9uZyAqZ2ZsYWdzKQogewotCXVuc2lnbmVkIGludCB4OwotCi0JcHJpbnRfZGJnKGdpLCAiICBJbm9kZTpcbiIpOwotCXByaW50X2RiZyhnaSwgIiAgICBudW0gPSAlbGx1LyVsbHVcbiIsCi0JCSAgKHVuc2lnbmVkIGxvbmcgbG9uZylpcC0+aV9ub19mb3JtYWxfaW5vLAotCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpaXAtPmlfbm9fYWRkcik7Ci0JcHJpbnRfZGJnKGdpLCAiICAgIHR5cGUgPSAldVxuIiwgSUYyRFQoaXAtPmlfaW5vZGUuaV9tb2RlKSk7Ci0JcHJpbnRfZGJnKGdpLCAiICAgIGlfZmxhZ3MgPSIpOwotCWZvciAoeCA9IDA7IHggPCAzMjsgeCsrKQotCQlpZiAodGVzdF9iaXQoeCwgJmlwLT5pX2ZsYWdzKSkKLQkJCXByaW50X2RiZyhnaSwgIiAldSIsIHgpOwotCXByaW50X2RiZyhnaSwgIiBcbiIpOwotCXJldHVybiAwOworCWNoYXIgKnAgPSBidWY7CisJaWYgKHRlc3RfYml0KEdMRl9MT0NLLCBnZmxhZ3MpKQorCQkqcCsrID0gJ2wnOworCWlmICh0ZXN0X2JpdChHTEZfU1RJQ0tZLCBnZmxhZ3MpKQorCQkqcCsrID0gJ3MnOworCWlmICh0ZXN0X2JpdChHTEZfREVNT1RFLCBnZmxhZ3MpKQorCQkqcCsrID0gJ0QnOworCWlmICh0ZXN0X2JpdChHTEZfUEVORElOR19ERU1PVEUsIGdmbGFncykpCisJCSpwKysgPSAnZCc7CisJaWYgKHRlc3RfYml0KEdMRl9ERU1PVEVfSU5fUFJPR1JFU1MsIGdmbGFncykpCisJCSpwKysgPSAncCc7CisJaWYgKHRlc3RfYml0KEdMRl9ESVJUWSwgZ2ZsYWdzKSkKKwkJKnArKyA9ICd5JzsKKwlpZiAodGVzdF9iaXQoR0xGX0xGTFVTSCwgZ2ZsYWdzKSkKKwkJKnArKyA9ICdmJzsKKwlpZiAodGVzdF9iaXQoR0xGX0lOVkFMSURBVEVfSU5fUFJPR1JFU1MsIGdmbGFncykpCisJCSpwKysgPSAnaSc7CisJaWYgKHRlc3RfYml0KEdMRl9SRVBMWV9QRU5ESU5HLCBnZmxhZ3MpKQorCQkqcCsrID0gJ3InOworCSpwID0gMDsKKwlyZXR1cm4gYnVmOwogfQogCiAvKioKLSAqIGR1bXBfZ2xvY2sgLSBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBhIGdsb2NrCisgKiBfX2R1bXBfZ2xvY2sgLSBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBhIGdsb2NrCisgKiBAc2VxOiBUaGUgc2VxX2ZpbGUgc3RydWN0CiAgKiBAZ2w6IHRoZSBnbG9jawotICogQGNvdW50OiB3aGVyZSB3ZSBhcmUgaW4gdGhlIGJ1ZmZlcgorICoKKyAqIFRoZSBmaWxlIGZvcm1hdCBpcyBhcyBmb2xsb3dzOgorICogT25lIGxpbmUgcGVyIG9iamVjdCwgY2FwaXRhbCBsZXR0ZXJzIGFyZSB1c2VkIHRvIGluZGljYXRlIG9iamVjdHMKKyAqIEcgPSBnbG9jaywgSSA9IElub2RlLCBSID0gcmdycCwgSCA9IGhvbGRlci4gR2xvY2tzIGFyZSBub3QgaW5kZW50ZWQsCisgKiBvdGhlciBvYmplY3RzIGFyZSBpbmRlbnRlZCBieSBhIHNpbmdsZSBzcGFjZSBhbmQgZm9sbG93IHRoZSBnbG9jayB0bworICogd2hpY2ggdGhleSBhcmUgcmVsYXRlZC4gRmllbGRzIGFyZSBpbmRpY2F0ZWQgYnkgbG93ZXIgY2FzZSBsZXR0ZXJzCisgKiBmb2xsb3dlZCBieSBhIGNvbG9uIGFuZCB0aGUgZmllbGQgdmFsdWUsIGV4Y2VwdCBmb3Igc3RyaW5ncyB3aGljaCBhcmUgaW4KKyAqIFtdIHNvIHRoYXQgaXRzIHBvc3NpYmxlIHRvIHNlZSBpZiB0aGV5IGFyZSBjb21wb3NlZCBvZiBzcGFjZXMgZm9yCisgKiBleGFtcGxlLiBUaGUgZmllbGQncyBhcmUgbiA9IG51bWJlciAoaWQgb2YgdGhlIG9iamVjdCksIGYgPSBmbGFncywKKyAqIHQgPSB0eXBlLCBzID0gc3RhdGUsIHIgPSByZWZjb3VudCwgZSA9IGVycm9yLCBwID0gcGlkLgogICoKICAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgLUVOT0JVRlMgd2hlbiB3ZSBydW4gb3V0IG9mIHNwYWNlCiAgKi8KIAotc3RhdGljIGludCBkdW1wX2dsb2NrKHN0cnVjdCBnbG9ja19pdGVyICpnaSwgc3RydWN0IGdmczJfZ2xvY2sgKmdsKQorc3RhdGljIGludCBfX2R1bXBfZ2xvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIGNvbnN0IHN0cnVjdCBnZnMyX2dsb2NrICpnbCkKIHsKLQlzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoOwotCXVuc2lnbmVkIGludCB4OwotCWludCBlcnJvciA9IC1FTk9CVUZTOwotCXN0cnVjdCB0YXNrX3N0cnVjdCAqZ2xfb3duZXI7CisJY29uc3Qgc3RydWN0IGdmczJfZ2xvY2tfb3BlcmF0aW9ucyAqZ2xvcHMgPSBnbC0+Z2xfb3BzOworCXVuc2lnbmVkIGxvbmcgbG9uZyBkdGltZTsKKwljb25zdCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoOworCWNoYXIgZ2ZsYWdzX2J1ZlszMl07CisJaW50IGVycm9yID0gMDsKIAotCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOworCWR0aW1lID0gamlmZmllcyAtIGdsLT5nbF9kZW1vdGVfdGltZTsKKwlkdGltZSAqPSAxMDAwMDAwL0haOyAvKiBkZW1vdGUgdGltZSBpbiB1U2VjICovCisJaWYgKCF0ZXN0X2JpdChHTEZfREVNT1RFLCAmZ2wtPmdsX2ZsYWdzKSkKKwkJZHRpbWUgPSAwOworCWdmczJfcHJpbnRfZGJnKHNlcSwgIkc6ICBzOiVzIG46JXUvJWxsdSBmOiVzIHQ6JXMgZDolcy8lbGx1IGw6JWQgYTolZCByOiVkXG4iLAorCQkgIHN0YXRlMnN0cihnbC0+Z2xfc3RhdGUpLAorCQkgIGdsLT5nbF9uYW1lLmxuX3R5cGUsCisJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZylnbC0+Z2xfbmFtZS5sbl9udW1iZXIsCisJCSAgZ2ZsYWdzMnN0cihnZmxhZ3NfYnVmLCAmZ2wtPmdsX2ZsYWdzKSwKKwkJICBzdGF0ZTJzdHIoZ2wtPmdsX3RhcmdldCksCisJCSAgc3RhdGUyc3RyKGdsLT5nbF9kZW1vdGVfc3RhdGUpLCBkdGltZSwKKwkJICBhdG9taWNfcmVhZCgmZ2wtPmdsX2x2Yl9jb3VudCksCisJCSAgYXRvbWljX3JlYWQoJmdsLT5nbF9haWxfY291bnQpLAorCQkgIGF0b21pY19yZWFkKCZnbC0+Z2xfcmVmKSk7CiAKLQlwcmludF9kYmcoZ2ksICJHbG9jayAweCVwICgldSwgMHglbGx4KVxuIiwgZ2wsIGdsLT5nbF9uYW1lLmxuX3R5cGUsCi0JCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpZ2wtPmdsX25hbWUubG5fbnVtYmVyKTsKLQlwcmludF9kYmcoZ2ksICIgIGdsX2ZsYWdzID0iKTsKLQlmb3IgKHggPSAwOyB4IDwgMzI7IHgrKykgewotCQlpZiAodGVzdF9iaXQoeCwgJmdsLT5nbF9mbGFncykpCi0JCQlwcmludF9kYmcoZ2ksICIgJXUiLCB4KTsKLQl9Ci0JaWYgKCF0ZXN0X2JpdChHTEZfTE9DSywgJmdsLT5nbF9mbGFncykpCi0JCXByaW50X2RiZyhnaSwgIiAodW5sb2NrZWQpIik7Ci0JcHJpbnRfZGJnKGdpLCAiIFxuIik7Ci0JcHJpbnRfZGJnKGdpLCAiICBnbF9yZWYgPSAlZFxuIiwgYXRvbWljX3JlYWQoJmdsLT5nbF9yZWYpKTsKLQlwcmludF9kYmcoZ2ksICIgIGdsX3N0YXRlID0gJXVcbiIsIGdsLT5nbF9zdGF0ZSk7Ci0JaWYgKGdsLT5nbF9vd25lcl9waWQpIHsKLQkJZ2xfb3duZXIgPSBwaWRfdGFzayhnbC0+Z2xfb3duZXJfcGlkLCBQSURUWVBFX1BJRCk7Ci0JCWlmIChnbF9vd25lcikKLQkJCXByaW50X2RiZyhnaSwgIiAgZ2xfb3duZXIgPSBwaWQgJWQgKCVzKVxuIiwKLQkJCQkgIHBpZF9ucihnbC0+Z2xfb3duZXJfcGlkKSwgZ2xfb3duZXItPmNvbW0pOwotCQllbHNlCi0JCQlwcmludF9kYmcoZ2ksICIgIGdsX293bmVyID0gJWQgKGVuZGVkKVxuIiwKLQkJCQkgIHBpZF9ucihnbC0+Z2xfb3duZXJfcGlkKSk7Ci0JfSBlbHNlCi0JCXByaW50X2RiZyhnaSwgIiAgZ2xfb3duZXIgPSAtMVxuIik7Ci0JcHJpbnRfZGJnKGdpLCAiICBnbF9pcCA9ICVsdVxuIiwgZ2wtPmdsX2lwKTsKLQlwcmludF9kYmcoZ2ksICIgIHJlcV9naCA9ICVzXG4iLCAoZ2wtPmdsX3JlcV9naCkgPyAieWVzIiA6ICJubyIpOwotCXByaW50X2RiZyhnaSwgIiAgbHZiX2NvdW50ID0gJWRcbiIsIGF0b21pY19yZWFkKCZnbC0+Z2xfbHZiX2NvdW50KSk7Ci0JcHJpbnRfZGJnKGdpLCAiICBvYmplY3QgPSAlc1xuIiwgKGdsLT5nbF9vYmplY3QpID8gInllcyIgOiAibm8iKTsKLQlwcmludF9kYmcoZ2ksICIgIHJlY2xhaW0gPSAlc1xuIiwKLQkJICAgKGxpc3RfZW1wdHkoJmdsLT5nbF9yZWNsYWltKSkgPyAibm8iIDogInllcyIpOwotCWlmIChnbC0+Z2xfYXNwYWNlKQotCQlwcmludF9kYmcoZ2ksICIgIGFzcGFjZSA9IDB4JXAgbnJwYWdlcyA9ICVsdVxuIiwgZ2wtPmdsX2FzcGFjZSwKLQkJCSAgIGdsLT5nbF9hc3BhY2UtPmlfbWFwcGluZy0+bnJwYWdlcyk7Ci0JZWxzZQotCQlwcmludF9kYmcoZ2ksICIgIGFzcGFjZSA9IG5vXG4iKTsKLQlwcmludF9kYmcoZ2ksICIgIGFpbCA9ICVkXG4iLCBhdG9taWNfcmVhZCgmZ2wtPmdsX2FpbF9jb3VudCkpOwotCWlmIChnbC0+Z2xfcmVxX2doKSB7Ci0JCWVycm9yID0gZHVtcF9ob2xkZXIoZ2ksICJSZXF1ZXN0IiwgZ2wtPmdsX3JlcV9naCk7Ci0JCWlmIChlcnJvcikKLQkJCWdvdG8gb3V0OwotCX0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGdoLCAmZ2wtPmdsX2hvbGRlcnMsIGdoX2xpc3QpIHsKLQkJZXJyb3IgPSBkdW1wX2hvbGRlcihnaSwgIkhvbGRlciIsIGdoKTsKKwkJZXJyb3IgPSBkdW1wX2hvbGRlcihzZXEsIGdoKTsKIAkJaWYgKGVycm9yKQogCQkJZ290byBvdXQ7CiAJfQotCWxpc3RfZm9yX2VhY2hfZW50cnkoZ2gsICZnbC0+Z2xfd2FpdGVyczEsIGdoX2xpc3QpIHsKLQkJZXJyb3IgPSBkdW1wX2hvbGRlcihnaSwgIldhaXRlcjEiLCBnaCk7Ci0JCWlmIChlcnJvcikKLQkJCWdvdG8gb3V0OwotCX0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGdoLCAmZ2wtPmdsX3dhaXRlcnMzLCBnaF9saXN0KSB7Ci0JCWVycm9yID0gZHVtcF9ob2xkZXIoZ2ksICJXYWl0ZXIzIiwgZ2gpOwotCQlpZiAoZXJyb3IpCi0JCQlnb3RvIG91dDsKLQl9Ci0JaWYgKHRlc3RfYml0KEdMRl9ERU1PVEUsICZnbC0+Z2xfZmxhZ3MpKSB7Ci0JCXByaW50X2RiZyhnaSwgIiAgRGVtb3Rpb24gcmVxIHRvIHN0YXRlICV1ICglbGx1IHVTIGFnbylcbiIsCi0JCQkgIGdsLT5nbF9kZW1vdGVfc3RhdGUsICh1bnNpZ25lZCBsb25nIGxvbmcpCi0JCQkgIChqaWZmaWVzIC0gZ2wtPmdsX2RlbW90ZV90aW1lKSooMTAwMDAwMC9IWikpOwotCX0KLQlpZiAoZ2wtPmdsX29wcyA9PSAmZ2ZzMl9pbm9kZV9nbG9wcyAmJiBnbC0+Z2xfb2JqZWN0KSB7Ci0JCWlmICghdGVzdF9iaXQoR0xGX0xPQ0ssICZnbC0+Z2xfZmxhZ3MpICYmCi0JCQlsaXN0X2VtcHR5KCZnbC0+Z2xfaG9sZGVycykpIHsKLQkJCWVycm9yID0gZHVtcF9pbm9kZShnaSwgZ2wtPmdsX29iamVjdCk7Ci0JCQlpZiAoZXJyb3IpCi0JCQkJZ290byBvdXQ7Ci0JCX0gZWxzZSB7Ci0JCQllcnJvciA9IC1FTk9CVUZTOwotCQkJcHJpbnRfZGJnKGdpLCAiICBJbm9kZTogYnVzeVxuIik7Ci0JCX0KLQl9Ci0KLQllcnJvciA9IDA7Ci0KKwlpZiAoZ2wtPmdsX3N0YXRlICE9IExNX1NUX1VOTE9DS0VEICYmIGdsb3BzLT5nb19kdW1wKQorCQllcnJvciA9IGdsb3BzLT5nb19kdW1wKHNlcSwgZ2wpOwogb3V0OgotCXNwaW5fdW5sb2NrKCZnbC0+Z2xfc3Bpbik7CiAJcmV0dXJuIGVycm9yOwogfQogCitzdGF0aWMgaW50IGR1bXBfZ2xvY2soc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCBnZnMyX2dsb2NrICpnbCkKK3sKKwlpbnQgcmV0OworCXNwaW5fbG9jaygmZ2wtPmdsX3NwaW4pOworCXJldCA9IF9fZHVtcF9nbG9jayhzZXEsIGdsKTsKKwlzcGluX3VubG9jaygmZ2wtPmdsX3NwaW4pOworCXJldHVybiByZXQ7Cit9CisKIC8qKgogICogZ2ZzMl9kdW1wX2xvY2tzdGF0ZSAtIHByaW50IG91dCB0aGUgY3VycmVudCBsb2Nrc3RhdGUKICAqIEBzZHA6IHRoZSBmaWxlc3lzdGVtCkBAIC0yMDg2LDcgKzE4MDYsNyBAQAogbW9kdWxlX3BhcmFtKHNjYW5kX3NlY3MsIHVpbnQsIFNfSVJVR098U19JV1VTUik7CiBNT0RVTEVfUEFSTV9ERVNDKHNjYW5kX3NlY3MsICJUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmV0d2VlbiBzY2FuZCBydW5zIik7CiAKLXN0YXRpYyBpbnQgZ2ZzMl9nbG9ja19pdGVyX25leHQoc3RydWN0IGdsb2NrX2l0ZXIgKmdpKQorc3RhdGljIGludCBnZnMyX2dsb2NrX2l0ZXJfbmV4dChzdHJ1Y3QgZ2ZzMl9nbG9ja19pdGVyICpnaSkKIHsKIAlzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2w7CiAKQEAgLTIxMDQsNyArMTgyNCw3IEBACiAJCWdmczJfZ2xvY2tfcHV0KGdsKTsKIAlpZiAoZ2wgJiYgZ2ktPmdsID09IE5VTEwpCiAJCWdpLT5oYXNoKys7Ci0Jd2hpbGUoZ2ktPmdsID09IE5VTEwpIHsKKwl3aGlsZSAoZ2ktPmdsID09IE5VTEwpIHsKIAkJaWYgKGdpLT5oYXNoID49IEdGUzJfR0xfSEFTSF9TSVpFKQogCQkJcmV0dXJuIDE7CiAJCXJlYWRfbG9jayhnbF9sb2NrX2FkZHIoZ2ktPmhhc2gpKTsKQEAgLTIxMjIsNTggKzE4NDIsMzQgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZ2ZzMl9nbG9ja19pdGVyX2ZyZWUoc3RydWN0IGdsb2NrX2l0ZXIgKmdpKQorc3RhdGljIHZvaWQgZ2ZzMl9nbG9ja19pdGVyX2ZyZWUoc3RydWN0IGdmczJfZ2xvY2tfaXRlciAqZ2kpCiB7CiAJaWYgKGdpLT5nbCkKIAkJZ2ZzMl9nbG9ja19wdXQoZ2ktPmdsKTsKLQlrZnJlZShnaSk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgZ2xvY2tfaXRlciAqZ2ZzMl9nbG9ja19pdGVyX2luaXQoc3RydWN0IGdmczJfc2JkICpzZHApCi17Ci0Jc3RydWN0IGdsb2NrX2l0ZXIgKmdpOwotCi0JZ2kgPSBrbWFsbG9jKHNpemVvZiAoKmdpKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFnaSkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlnaS0+c2RwID0gc2RwOwotCWdpLT5oYXNoID0gMDsKLQlnaS0+c2VxID0gTlVMTDsKIAlnaS0+Z2wgPSBOVUxMOwotCW1lbXNldChnaS0+c3RyaW5nLCAwLCBzaXplb2YoZ2ktPnN0cmluZykpOwotCi0JaWYgKGdmczJfZ2xvY2tfaXRlcl9uZXh0KGdpKSkgewotCQlnZnMyX2dsb2NrX2l0ZXJfZnJlZShnaSk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQotCXJldHVybiBnaTsKIH0KIAotc3RhdGljIHZvaWQgKmdmczJfZ2xvY2tfc2VxX3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgbG9mZl90ICpwb3MpCitzdGF0aWMgdm9pZCAqZ2ZzMl9nbG9ja19zZXFfc3RhcnQoc3RydWN0IHNlcV9maWxlICpzZXEsIGxvZmZfdCAqcG9zKQogewotCXN0cnVjdCBnbG9ja19pdGVyICpnaTsKKwlzdHJ1Y3QgZ2ZzMl9nbG9ja19pdGVyICpnaSA9IHNlcS0+cHJpdmF0ZTsKIAlsb2ZmX3QgbiA9ICpwb3M7CiAKLQlnaSA9IGdmczJfZ2xvY2tfaXRlcl9pbml0KGZpbGUtPnByaXZhdGUpOwotCWlmICghZ2kpCi0JCXJldHVybiBOVUxMOworCWdpLT5oYXNoID0gMDsKIAotCXdoaWxlKG4tLSkgeworCWRvIHsKIAkJaWYgKGdmczJfZ2xvY2tfaXRlcl9uZXh0KGdpKSkgewogCQkJZ2ZzMl9nbG9ja19pdGVyX2ZyZWUoZ2kpOwogCQkJcmV0dXJuIE5VTEw7CiAJCX0KLQl9CisJfSB3aGlsZSAobi0tKTsKIAotCXJldHVybiBnaTsKKwlyZXR1cm4gZ2ktPmdsOwogfQogCi1zdGF0aWMgdm9pZCAqZ2ZzMl9nbG9ja19zZXFfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKml0ZXJfcHRyLAorc3RhdGljIHZvaWQgKmdmczJfZ2xvY2tfc2VxX25leHQoc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKml0ZXJfcHRyLAogCQkJCSBsb2ZmX3QgKnBvcykKIHsKLQlzdHJ1Y3QgZ2xvY2tfaXRlciAqZ2kgPSBpdGVyX3B0cjsKKwlzdHJ1Y3QgZ2ZzMl9nbG9ja19pdGVyICpnaSA9IHNlcS0+cHJpdmF0ZTsKIAogCSgqcG9zKSsrOwogCkBAIC0yMTgyLDI0ICsxODc4LDE4IEBACiAJCXJldHVybiBOVUxMOwogCX0KIAotCXJldHVybiBnaTsKKwlyZXR1cm4gZ2ktPmdsOwogfQogCi1zdGF0aWMgdm9pZCBnZnMyX2dsb2NrX3NlcV9zdG9wKHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqaXRlcl9wdHIpCitzdGF0aWMgdm9pZCBnZnMyX2dsb2NrX3NlcV9zdG9wKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICppdGVyX3B0cikKIHsKLQlzdHJ1Y3QgZ2xvY2tfaXRlciAqZ2kgPSBpdGVyX3B0cjsKLQlpZiAoZ2kpCi0JCWdmczJfZ2xvY2tfaXRlcl9mcmVlKGdpKTsKKwlzdHJ1Y3QgZ2ZzMl9nbG9ja19pdGVyICpnaSA9IHNlcS0+cHJpdmF0ZTsKKwlnZnMyX2dsb2NrX2l0ZXJfZnJlZShnaSk7CiB9CiAKLXN0YXRpYyBpbnQgZ2ZzMl9nbG9ja19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKml0ZXJfcHRyKQorc3RhdGljIGludCBnZnMyX2dsb2NrX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICppdGVyX3B0cikKIHsKLQlzdHJ1Y3QgZ2xvY2tfaXRlciAqZ2kgPSBpdGVyX3B0cjsKLQotCWdpLT5zZXEgPSBmaWxlOwotCWR1bXBfZ2xvY2soZ2ksIGdpLT5nbCk7Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gZHVtcF9nbG9jayhzZXEsIGl0ZXJfcHRyKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyBnZnMyX2dsb2NrX3NlcV9vcHMgPSB7CkBAIC0yMjExLDE3ICsxOTAxLDE0IEBACiAKIHN0YXRpYyBpbnQgZ2ZzMl9kZWJ1Z2ZzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0Jc3RydWN0IHNlcV9maWxlICpzZXE7Ci0JaW50IHJldDsKLQotCXJldCA9IHNlcV9vcGVuKGZpbGUsICZnZnMyX2dsb2NrX3NlcV9vcHMpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlzZXEgPSBmaWxlLT5wcml2YXRlX2RhdGE7Ci0Jc2VxLT5wcml2YXRlID0gaW5vZGUtPmlfcHJpdmF0ZTsKLQotCXJldHVybiAwOworCWludCByZXQgPSBzZXFfb3Blbl9wcml2YXRlKGZpbGUsICZnZnMyX2dsb2NrX3NlcV9vcHMsCisJCQkJICAgc2l6ZW9mKHN0cnVjdCBnZnMyX2dsb2NrX2l0ZXIpKTsKKwlpZiAocmV0ID09IDApIHsKKwkJc3RydWN0IHNlcV9maWxlICpzZXEgPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJCXN0cnVjdCBnZnMyX2dsb2NrX2l0ZXIgKmdpID0gc2VxLT5wcml2YXRlOworCQlnaS0+c2RwID0gaW5vZGUtPmlfcHJpdmF0ZTsKKwl9CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZ2ZzMl9kZWJ1Z19mb3BzID0gewpAQCAtMjIyOSw3ICsxOTE2LDcgQEAKIAkub3BlbiAgICA9IGdmczJfZGVidWdmc19vcGVuLAogCS5yZWFkICAgID0gc2VxX3JlYWQsCiAJLmxsc2VlayAgPSBzZXFfbHNlZWssCi0JLnJlbGVhc2UgPSBzZXFfcmVsZWFzZQorCS5yZWxlYXNlID0gc2VxX3JlbGVhc2VfcHJpdmF0ZSwKIH07CiAKIGludCBnZnMyX2NyZWF0ZV9kZWJ1Z2ZzX2ZpbGUoc3RydWN0IGdmczJfc2JkICpzZHApCmRpZmYgLS1naXQgYS9mcy9nZnMyL2dsb2NrLmggYi9mcy9nZnMyL2dsb2NrLmgKaW5kZXggY2RhZDNlNi4uOTcxZDkyYSAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9nbG9jay5oCisrKyBiL2ZzL2dmczIvZ2xvY2suaApAQCAtMjYsMTEgKzI2LDggQEAKICNkZWZpbmUgR0xfU0tJUAkJCTB4MDAwMDAxMDAKICNkZWZpbmUgR0xfQVRJTUUJCTB4MDAwMDAyMDAKICNkZWZpbmUgR0xfTk9DQUNIRQkJMHgwMDAwMDQwMAotI2RlZmluZSBHTF9GTE9DSwkJMHgwMDAwMDgwMAotI2RlZmluZSBHTF9OT0NBTkNFTAkJMHgwMDAwMTAwMAogCiAjZGVmaW5lIEdMUl9UUllGQUlMRUQJCTEzCi0jZGVmaW5lIEdMUl9DQU5DRUxFRAkJMTQKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdmczJfZ2xvY2tfaXNfbG9ja2VkX2J5X21lKHN0cnVjdCBnZnMyX2dsb2NrICpnbCkKIHsKQEAgLTQxLDYgKzM4LDggQEAKIAlzcGluX2xvY2soJmdsLT5nbF9zcGluKTsKIAlwaWQgPSB0YXNrX3BpZChjdXJyZW50KTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGdoLCAmZ2wtPmdsX2hvbGRlcnMsIGdoX2xpc3QpIHsKKwkJaWYgKCF0ZXN0X2JpdChISUZfSE9MREVSLCAmZ2gtPmdoX2lmbGFncykpCisJCQlicmVhazsKIAkJaWYgKGdoLT5naF9vd25lcl9waWQgPT0gcGlkKQogCQkJZ290byBvdXQ7CiAJfQpAQCAtNzAsNyArNjksNyBAQAogewogCWludCByZXQ7CiAJc3Bpbl9sb2NrKCZnbC0+Z2xfc3Bpbik7Ci0JcmV0ID0gdGVzdF9iaXQoR0xGX0RFTU9URSwgJmdsLT5nbF9mbGFncykgfHwgIWxpc3RfZW1wdHkoJmdsLT5nbF93YWl0ZXJzMyk7CisJcmV0ID0gdGVzdF9iaXQoR0xGX0RFTU9URSwgJmdsLT5nbF9mbGFncyk7CiAJc3Bpbl91bmxvY2soJmdsLT5nbF9zcGluKTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtOTgsNiArOTcsNyBAQAogaW50IGdmczJfZ2xvY2tfbnFfbSh1bnNpZ25lZCBpbnQgbnVtX2doLCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdocyk7CiB2b2lkIGdmczJfZ2xvY2tfZHFfbSh1bnNpZ25lZCBpbnQgbnVtX2doLCBzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdocyk7CiB2b2lkIGdmczJfZ2xvY2tfZHFfdW5pbml0X20odW5zaWduZWQgaW50IG51bV9naCwgc3RydWN0IGdmczJfaG9sZGVyICpnaHMpOwordm9pZCBnZnMyX3ByaW50X2RiZyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgY29uc3QgY2hhciAqZm10LCAuLi4pOwogCiAvKioKICAqIGdmczJfZ2xvY2tfbnFfaW5pdCAtIGludGlhbGl6ZSBhIGhvbGRlciBhbmQgZW5xdWV1ZSBpdCBvbiBhIGdsb2NrCkBAIC0xMzAsMTAgKzEzMCw5IEBACiB2b2lkIGdmczJfbHZiX3VuaG9sZChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpOwogCiB2b2lkIGdmczJfZ2xvY2tfY2Iodm9pZCAqY2JfZGF0YSwgdW5zaWduZWQgaW50IHR5cGUsIHZvaWQgKmRhdGEpOwotCiB2b2lkIGdmczJfZ2xvY2tfc2NoZWR1bGVfZm9yX3JlY2xhaW0oc3RydWN0IGdmczJfZ2xvY2sgKmdsKTsKIHZvaWQgZ2ZzMl9yZWNsYWltX2dsb2NrKHN0cnVjdCBnZnMyX3NiZCAqc2RwKTsKLXZvaWQgZ2ZzMl9nbF9oYXNoX2NsZWFyKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCBpbnQgd2FpdCk7Cit2b2lkIGdmczJfZ2xfaGFzaF9jbGVhcihzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCk7CiAKIGludCBfX2luaXQgZ2ZzMl9nbG9ja19pbml0KHZvaWQpOwogdm9pZCBnZnMyX2dsb2NrX2V4aXQodm9pZCk7CmRpZmYgLS1naXQgYS9mcy9nZnMyL2dsb3BzLmMgYi9mcy9nZnMyL2dsb3BzLmMKaW5kZXggMDdkODRkMTYuLmM2YzMxOGMgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvZ2xvcHMuYworKysgYi9mcy9nZnMyL2dsb3BzLmMKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9idWZmZXJfaGVhZC5oPgogI2luY2x1ZGUgPGxpbnV4L2dmczJfb25kaXNrLmg+CiAjaW5jbHVkZSA8bGludXgvbG1faW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8bGludXgvYmlvLmg+CiAKICNpbmNsdWRlICJnZnMyLmgiCiAjaW5jbHVkZSAiaW5jb3JlLmgiCkBAIC0xNzIsMjYgKzE3Myw2IEBACiB9CiAKIC8qKgotICogaW5vZGVfZ29feG1vdGVfYmggLSBBZnRlciBwcm9tb3RpbmcvZGVtb3RpbmcgYSBnbG9jawotICogQGdsOiB0aGUgZ2xvY2sKLSAqCi0gKi8KLQotc3RhdGljIHZvaWQgaW5vZGVfZ29feG1vdGVfYmgoc3RydWN0IGdmczJfZ2xvY2sgKmdsKQotewotCXN0cnVjdCBnZnMyX2hvbGRlciAqZ2ggPSBnbC0+Z2xfcmVxX2doOwotCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7Ci0JaW50IGVycm9yOwotCi0JaWYgKGdsLT5nbF9zdGF0ZSAhPSBMTV9TVF9VTkxPQ0tFRCAmJgotCSAgICAoIWdoIHx8ICEoZ2gtPmdoX2ZsYWdzICYgR0xfU0tJUCkpKSB7Ci0JCWVycm9yID0gZ2ZzMl9tZXRhX3JlYWQoZ2wsIGdsLT5nbF9uYW1lLmxuX251bWJlciwgMCwgJmJoKTsKLQkJaWYgKCFlcnJvcikKLQkJCWJyZWxzZShiaCk7Ci0JfQotfQotCi0vKioKICAqIGlub2RlX2dvX2ludmFsIC0gcHJlcGFyZSBhIGlub2RlIGdsb2NrIHRvIGJlIHJlbGVhc2VkCiAgKiBAZ2w6IHRoZSBnbG9jawogICogQGZsYWdzOgpAQCAtMjY3LDYgKzI0OCwyNiBAQAogfQogCiAvKioKKyAqIGlub2RlX2dvX2R1bXAgLSBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBhbiBpbm9kZQorICogQHNlcTogVGhlIGl0ZXJhdG9yCisgKiBAaXA6IHRoZSBpbm9kZQorICoKKyAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgLUVOT0JVRlMgd2hlbiB3ZSBydW4gb3V0IG9mIHNwYWNlCisgKi8KKworc3RhdGljIGludCBpbm9kZV9nb19kdW1wKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBjb25zdCBzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpCit7CisJY29uc3Qgc3RydWN0IGdmczJfaW5vZGUgKmlwID0gZ2wtPmdsX29iamVjdDsKKwlpZiAoaXAgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisJZ2ZzMl9wcmludF9kYmcoc2VxLCAiIEk6IG46JWxsdS8lbGx1IHQ6JXUgZjoweCUwOGx4XG4iLAorCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpaXAtPmlfbm9fZm9ybWFsX2lubywKKwkJICAodW5zaWduZWQgbG9uZyBsb25nKWlwLT5pX25vX2FkZHIsCisJCSAgSUYyRFQoaXAtPmlfaW5vZGUuaV9tb2RlKSwgaXAtPmlfZmxhZ3MpOworCXJldHVybiAwOworfQorCisvKioKICAqIHJncnBfZ29fZGVtb3RlX29rIC0gQ2hlY2sgdG8gc2VlIGlmIGl0J3Mgb2sgdG8gdW5sb2NrIGEgUkcncyBnbG9jawogICogQGdsOiB0aGUgZ2xvY2sKICAqCkBAIC0zMDYsNiArMzA3LDIyIEBACiB9CiAKIC8qKgorICogcmdycF9nb19kdW1wIC0gcHJpbnQgb3V0IGFuIHJncnAKKyAqIEBzZXE6IFRoZSBpdGVyYXRvcgorICogQGdsOiBUaGUgZ2xvY2sgaW4gcXVlc3Rpb24KKyAqCisgKi8KKworc3RhdGljIGludCByZ3JwX2dvX2R1bXAoc3RydWN0IHNlcV9maWxlICpzZXEsIGNvbnN0IHN0cnVjdCBnZnMyX2dsb2NrICpnbCkKK3sKKwljb25zdCBzdHJ1Y3QgZ2ZzMl9yZ3JwZCAqcmdkID0gZ2wtPmdsX29iamVjdDsKKwlpZiAocmdkID09IE5VTEwpCisJCXJldHVybiAwOworCWdmczJfcHJpbnRfZGJnKHNlcSwgIiBSOiBuOiVsbHVcbiIsICh1bnNpZ25lZCBsb25nIGxvbmcpcmdkLT5yZF9hZGRyKTsKKwlyZXR1cm4gMDsKK30KKworLyoqCiAgKiB0cmFuc19nb19zeW5jIC0gcHJvbW90ZS9kZW1vdGUgdGhlIHRyYW5zYWN0aW9uIGdsb2NrCiAgKiBAZ2w6IHRoZSBnbG9jawogICogQHN0YXRlOiB0aGUgcmVxdWVzdGVkIHN0YXRlCkBAIC0zMzAsNyArMzQ3LDcgQEAKICAqCiAgKi8KIAotc3RhdGljIHZvaWQgdHJhbnNfZ29feG1vdGVfYmgoc3RydWN0IGdmczJfZ2xvY2sgKmdsKQorc3RhdGljIGludCB0cmFuc19nb194bW90ZV9iaChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpCiB7CiAJc3RydWN0IGdmczJfc2JkICpzZHAgPSBnbC0+Z2xfc2JkOwogCXN0cnVjdCBnZnMyX2lub2RlICppcCA9IEdGUzJfSShzZHAtPnNkX2pkZXNjLT5qZF9pbm9kZSk7CkBAIC0zMzgsOCArMzU1LDcgQEAKIAlzdHJ1Y3QgZ2ZzMl9sb2dfaGVhZGVyX2hvc3QgaGVhZDsKIAlpbnQgZXJyb3I7CiAKLQlpZiAoZ2wtPmdsX3N0YXRlICE9IExNX1NUX1VOTE9DS0VEICYmCi0JICAgIHRlc3RfYml0KFNERl9KT1VSTkFMX0xJVkUsICZzZHAtPnNkX2ZsYWdzKSkgeworCWlmICh0ZXN0X2JpdChTREZfSk9VUk5BTF9MSVZFLCAmc2RwLT5zZF9mbGFncykpIHsKIAkJal9nbC0+Z2xfb3BzLT5nb19pbnZhbChqX2dsLCBESU9fTUVUQURBVEEpOwogCiAJCWVycm9yID0gZ2ZzMl9maW5kX2poZWFkKHNkcC0+c2RfamRlc2MsICZoZWFkKTsKQEAgLTM1NCw2ICszNzAsNyBAQAogCQkJZ2ZzMl9sb2dfcG9pbnRlcnNfaW5pdChzZHAsIGhlYWQubGhfYmxrbm8pOwogCQl9CiAJfQorCXJldHVybiAwOwogfQogCiAvKioKQEAgLTM3NSwxMiArMzkyLDEyIEBACiAKIGNvbnN0IHN0cnVjdCBnZnMyX2dsb2NrX29wZXJhdGlvbnMgZ2ZzMl9pbm9kZV9nbG9wcyA9IHsKIAkuZ29feG1vdGVfdGggPSBpbm9kZV9nb19zeW5jLAotCS5nb194bW90ZV9iaCA9IGlub2RlX2dvX3htb3RlX2JoLAogCS5nb19pbnZhbCA9IGlub2RlX2dvX2ludmFsLAogCS5nb19kZW1vdGVfb2sgPSBpbm9kZV9nb19kZW1vdGVfb2ssCiAJLmdvX2xvY2sgPSBpbm9kZV9nb19sb2NrLAorCS5nb19kdW1wID0gaW5vZGVfZ29fZHVtcCwKIAkuZ29fdHlwZSA9IExNX1RZUEVfSU5PREUsCi0JLmdvX21pbl9ob2xkX3RpbWUgPSBIWiAvIDEwLAorCS5nb19taW5faG9sZF90aW1lID0gSFogLyA1LAogfTsKIAogY29uc3Qgc3RydWN0IGdmczJfZ2xvY2tfb3BlcmF0aW9ucyBnZnMyX3JncnBfZ2xvcHMgPSB7CkBAIC0zODksOCArNDA2LDkgQEAKIAkuZ29fZGVtb3RlX29rID0gcmdycF9nb19kZW1vdGVfb2ssCiAJLmdvX2xvY2sgPSByZ3JwX2dvX2xvY2ssCiAJLmdvX3VubG9jayA9IHJncnBfZ29fdW5sb2NrLAorCS5nb19kdW1wID0gcmdycF9nb19kdW1wLAogCS5nb190eXBlID0gTE1fVFlQRV9SR1JQLAotCS5nb19taW5faG9sZF90aW1lID0gSFogLyAxMCwKKwkuZ29fbWluX2hvbGRfdGltZSA9IEhaIC8gNSwKIH07CiAKIGNvbnN0IHN0cnVjdCBnZnMyX2dsb2NrX29wZXJhdGlvbnMgZ2ZzMl90cmFuc19nbG9wcyA9IHsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvaW5jb3JlLmggYi9mcy9nZnMyL2luY29yZS5oCmluZGV4IGVhYmU1ZWEuLjQ0ODY5N2EgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvaW5jb3JlLmgKKysrIGIvZnMvZ2ZzMi9pbmNvcmUuaApAQCAtNzcsNyArNzcsNiBAQAogc3RydWN0IGdmczJfcmdycGQgewogCXN0cnVjdCBsaXN0X2hlYWQgcmRfbGlzdDsJLyogTGluayB3aXRoIHN1cGVyYmxvY2sgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIHJkX2xpc3RfbXJ1OwotCXN0cnVjdCBsaXN0X2hlYWQgcmRfcmVjZW50OwkvKiBSZWNlbnRseSB1c2VkIHJncnBzICovCiAJc3RydWN0IGdmczJfZ2xvY2sgKnJkX2dsOwkvKiBHbG9jayBmb3IgdGhpcyByZ3JwICovCiAJdTY0IHJkX2FkZHI7CQkJLyogZ3JwIGJsb2NrIGRpc2sgYWRkcmVzcyAqLwogCXU2NCByZF9kYXRhMDsJCQkvKiBmaXJzdCBkYXRhIGxvY2F0aW9uICovCkBAIC0xMjgsMjAgKzEyNywyMCBAQAogCiBzdHJ1Y3QgZ2ZzMl9nbG9ja19vcGVyYXRpb25zIHsKIAl2b2lkICgqZ29feG1vdGVfdGgpIChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpOwotCXZvaWQgKCpnb194bW90ZV9iaCkgKHN0cnVjdCBnZnMyX2dsb2NrICpnbCk7CisJaW50ICgqZ29feG1vdGVfYmgpIChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIHN0cnVjdCBnZnMyX2hvbGRlciAqZ2gpOwogCXZvaWQgKCpnb19pbnZhbCkgKHN0cnVjdCBnZnMyX2dsb2NrICpnbCwgaW50IGZsYWdzKTsKIAlpbnQgKCpnb19kZW1vdGVfb2spIChzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wpOwogCWludCAoKmdvX2xvY2spIChzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKTsKIAl2b2lkICgqZ29fdW5sb2NrKSAoc3RydWN0IGdmczJfaG9sZGVyICpnaCk7CisJaW50ICgqZ29fZHVtcCkoc3RydWN0IHNlcV9maWxlICpzZXEsIGNvbnN0IHN0cnVjdCBnZnMyX2dsb2NrICpnbCk7CiAJY29uc3QgaW50IGdvX3R5cGU7CiAJY29uc3QgdW5zaWduZWQgbG9uZyBnb19taW5faG9sZF90aW1lOwogfTsKIAogZW51bSB7CiAJLyogU3RhdGVzICovCi0JSElGX0hPTERFUgkJPSA2LAorCUhJRl9IT0xERVIJCT0gNiwgIC8qIFNldCBmb3IgZ2ggdGhhdCAiaG9sZHMiIHRoZSBnbG9jayAqLwogCUhJRl9GSVJTVAkJPSA3LAotCUhJRl9BQk9SVEVECQk9IDksCiAJSElGX1dBSVQJCT0gMTAsCiB9OwogCkBAIC0xNTQsMjAgKzE1MywyMCBAQAogCXVuc2lnbmVkIGdoX2ZsYWdzOwogCiAJaW50IGdoX2Vycm9yOwotCXVuc2lnbmVkIGxvbmcgZ2hfaWZsYWdzOworCXVuc2lnbmVkIGxvbmcgZ2hfaWZsYWdzOyAvKiBISUZfLi4uICovCiAJdW5zaWduZWQgbG9uZyBnaF9pcDsKIH07CiAKIGVudW0gewotCUdMRl9MT0NLCQk9IDEsCi0JR0xGX1NUSUNLWQkJPSAyLAotCUdMRl9ERU1PVEUJCT0gMywKLQlHTEZfUEVORElOR19ERU1PVEUJPSA0LAotCUdMRl9ESVJUWQkJPSA1LAotCUdMRl9ERU1PVEVfSU5fUFJPR1JFU1MJPSA2LAotCUdMRl9MRkxVU0gJCT0gNywKLQlHTEZfV0FJVEVSUzIJCT0gOCwKLQlHTEZfQ09OVl9ERUFETEsJCT0gOSwKKwlHTEZfTE9DSwkJCT0gMSwKKwlHTEZfU1RJQ0tZCQkJPSAyLAorCUdMRl9ERU1PVEUJCQk9IDMsCisJR0xGX1BFTkRJTkdfREVNT1RFCQk9IDQsCisJR0xGX0RFTU9URV9JTl9QUk9HUkVTUwkJPSA1LAorCUdMRl9ESVJUWQkJCT0gNiwKKwlHTEZfTEZMVVNICQkJPSA3LAorCUdMRl9JTlZBTElEQVRFX0lOX1BST0dSRVNTCT0gOCwKKwlHTEZfUkVQTFlfUEVORElORwkJPSA5LAogfTsKIAogc3RydWN0IGdmczJfZ2xvY2sgewpAQCAtMTc5LDE5ICsxNzgsMTQgQEAKIAlzcGlubG9ja190IGdsX3NwaW47CiAKIAl1bnNpZ25lZCBpbnQgZ2xfc3RhdGU7CisJdW5zaWduZWQgaW50IGdsX3RhcmdldDsKKwl1bnNpZ25lZCBpbnQgZ2xfcmVwbHk7CiAJdW5zaWduZWQgaW50IGdsX2hhc2g7CiAJdW5zaWduZWQgaW50IGdsX2RlbW90ZV9zdGF0ZTsgLyogc3RhdGUgcmVxdWVzdGVkIGJ5IHJlbW90ZSBub2RlICovCiAJdW5zaWduZWQgbG9uZyBnbF9kZW1vdGVfdGltZTsgLyogdGltZSBvZiBmaXJzdCBkZW1vdGUgcmVxdWVzdCAqLwotCXN0cnVjdCBwaWQgKmdsX293bmVyX3BpZDsKLQl1bnNpZ25lZCBsb25nIGdsX2lwOwogCXN0cnVjdCBsaXN0X2hlYWQgZ2xfaG9sZGVyczsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGdsX3dhaXRlcnMxOwkvKiBISUZfTVVURVggKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIGdsX3dhaXRlcnMzOwkvKiBISUZfUFJPTU9URSAqLwogCiAJY29uc3Qgc3RydWN0IGdmczJfZ2xvY2tfb3BlcmF0aW9ucyAqZ2xfb3BzOwotCi0Jc3RydWN0IGdmczJfaG9sZGVyICpnbF9yZXFfZ2g7Ci0KIAl2b2lkICpnbF9sb2NrOwogCWNoYXIgKmdsX2x2YjsKIAlhdG9taWNfdCBnbF9sdmJfY291bnQ7CkBAIC00MjcsNyArNDIxLDYgQEAKIAl1bnNpZ25lZCBpbnQgZ3RfcXVvdGFfcXVhbnR1bTsgLyogU2VjcyBiZXR3ZWVuIHN5bmNzIHRvIHF1b3RhIGZpbGUgKi8KIAl1bnNpZ25lZCBpbnQgZ3RfYXRpbWVfcXVhbnR1bTsgLyogTWluIHNlY3MgYmV0d2VlbiBhdGltZSB1cGRhdGVzICovCiAJdW5zaWduZWQgaW50IGd0X25ld19maWxlc19qZGF0YTsKLQl1bnNpZ25lZCBpbnQgZ3RfbmV3X2ZpbGVzX2RpcmVjdGlvOwogCXVuc2lnbmVkIGludCBndF9tYXhfcmVhZGFoZWFkOyAvKiBNYXggYnl0ZXMgdG8gcmVhZC1haGVhZCBmcm9tIGRpc2sgKi8KIAl1bnNpZ25lZCBpbnQgZ3Rfc3RhbGxfc2VjczsgLyogRGV0ZWN0cyB0cm91YmxlISAqLwogCXVuc2lnbmVkIGludCBndF9jb21wbGFpbl9zZWNzOwpAQCAtNTM0LDcgKzUyNyw2IEBACiAJc3RydWN0IG11dGV4IHNkX3JpbmRleF9tdXRleDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHNkX3JpbmRleF9saXN0OwogCXN0cnVjdCBsaXN0X2hlYWQgc2RfcmluZGV4X21ydV9saXN0OwotCXN0cnVjdCBsaXN0X2hlYWQgc2RfcmluZGV4X3JlY2VudF9saXN0OwogCXN0cnVjdCBnZnMyX3JncnBkICpzZF9yaW5kZXhfZm9yd2FyZDsKIAl1bnNpZ25lZCBpbnQgc2RfcmdycHM7CiAKZGlmZiAtLWdpdCBhL2ZzL2dmczIvaW5vZGUuYyBiL2ZzL2dmczIvaW5vZGUuYwppbmRleCAwOTQ1M2QwLi42ZGEwYWIzNSAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9pbm9kZS5jCisrKyBiL2ZzL2dmczIvaW5vZGUuYwpAQCAtNTA0LDcgKzUwNCw3IEBACiAJfQogCiAJaWYgKCFpc19yb290KSB7Ci0JCWVycm9yID0gcGVybWlzc2lvbihkaXIsIE1BWV9FWEVDLCBOVUxMKTsKKwkJZXJyb3IgPSBnZnMyX3Blcm1pc3Npb24oZGlyLCBNQVlfRVhFQyk7CiAJCWlmIChlcnJvcikKIAkJCWdvdG8gb3V0OwogCX0KQEAgLTY2Nyw3ICs2NjcsNyBAQAogewogCWludCBlcnJvcjsKIAotCWVycm9yID0gcGVybWlzc2lvbigmZGlwLT5pX2lub2RlLCBNQVlfV1JJVEUgfCBNQVlfRVhFQywgTlVMTCk7CisJZXJyb3IgPSBnZnMyX3Blcm1pc3Npb24oJmRpcC0+aV9pbm9kZSwgTUFZX1dSSVRFIHwgTUFZX0VYRUMpOwogCWlmIChlcnJvcikKIAkJcmV0dXJuIGVycm9yOwogCkBAIC03ODksMTMgKzc4OSw4IEBACiAJCWlmICgoZGlwLT5pX2RpLmRpX2ZsYWdzICYgR0ZTMl9ESUZfSU5IRVJJVF9KREFUQSkgfHwKIAkJICAgIGdmczJfdHVuZV9nZXQoc2RwLCBndF9uZXdfZmlsZXNfamRhdGEpKQogCQkJZGktPmRpX2ZsYWdzIHw9IGNwdV90b19iZTMyKEdGUzJfRElGX0pEQVRBKTsKLQkJaWYgKChkaXAtPmlfZGkuZGlfZmxhZ3MgJiBHRlMyX0RJRl9JTkhFUklUX0RJUkVDVElPKSB8fAotCQkgICAgZ2ZzMl90dW5lX2dldChzZHAsIGd0X25ld19maWxlc19kaXJlY3RpbykpCi0JCQlkaS0+ZGlfZmxhZ3MgfD0gY3B1X3RvX2JlMzIoR0ZTMl9ESUZfRElSRUNUSU8pOwogCX0gZWxzZSBpZiAoU19JU0RJUihtb2RlKSkgewogCQlkaS0+ZGlfZmxhZ3MgfD0gY3B1X3RvX2JlMzIoZGlwLT5pX2RpLmRpX2ZsYWdzICYKLQkJCQkJICAgIEdGUzJfRElGX0lOSEVSSVRfRElSRUNUSU8pOwotCQlkaS0+ZGlfZmxhZ3MgfD0gY3B1X3RvX2JlMzIoZGlwLT5pX2RpLmRpX2ZsYWdzICYKIAkJCQkJICAgIEdGUzJfRElGX0lOSEVSSVRfSkRBVEEpOwogCX0KIApAQCAtMTEzNCw3ICsxMTI5LDcgQEAKIAlpZiAoSVNfQVBQRU5EKCZkaXAtPmlfaW5vZGUpKQogCQlyZXR1cm4gLUVQRVJNOwogCi0JZXJyb3IgPSBwZXJtaXNzaW9uKCZkaXAtPmlfaW5vZGUsIE1BWV9XUklURSB8IE1BWV9FWEVDLCBOVUxMKTsKKwllcnJvciA9IGdmczJfcGVybWlzc2lvbigmZGlwLT5pX2lub2RlLCBNQVlfV1JJVEUgfCBNQVlfRVhFQyk7CiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKZGlmZiAtLWdpdCBhL2ZzL2dmczIvaW5vZGUuaCBiL2ZzL2dmczIvaW5vZGUuaAppbmRleCA1ODBkYTQ1Li42MDc0YzI1IDEwMDY0NAotLS0gYS9mcy9nZnMyL2lub2RlLmgKKysrIGIvZnMvZ2ZzMi9pbm9kZS5oCkBAIC03Miw3ICs3Miw2IEBACiB9CiAKIAotdm9pZCBnZnMyX2lub2RlX2F0dHJfaW4oc3RydWN0IGdmczJfaW5vZGUgKmlwKTsKIHZvaWQgZ2ZzMl9zZXRfaW9wKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogc3RydWN0IGlub2RlICpnZnMyX2lub2RlX2xvb2t1cChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1bnNpZ25lZCB0eXBlLCAKIAkJCQl1NjQgbm9fYWRkciwgdTY0IG5vX2Zvcm1hbF9pbm8sCkBAIC05MSw2ICs5MCw3IEBACiAJCXN0cnVjdCBnZnMyX2lub2RlICppcCk7CiBpbnQgZ2ZzMl91bmxpbmtfb2soc3RydWN0IGdmczJfaW5vZGUgKmRpcCwgY29uc3Qgc3RydWN0IHFzdHIgKm5hbWUsCiAJCSAgIGNvbnN0IHN0cnVjdCBnZnMyX2lub2RlICppcCk7CitpbnQgZ2ZzMl9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKTsKIGludCBnZnMyX29rX3RvX21vdmUoc3RydWN0IGdmczJfaW5vZGUgKnRoaXMsIHN0cnVjdCBnZnMyX2lub2RlICp0byk7CiBpbnQgZ2ZzMl9yZWFkbGlua2koc3RydWN0IGdmczJfaW5vZGUgKmlwLCBjaGFyICoqYnVmLCB1bnNpZ25lZCBpbnQgKmxlbik7CiBpbnQgZ2ZzMl9nbG9ja19ucV9hdGltZShzdHJ1Y3QgZ2ZzMl9ob2xkZXIgKmdoKTsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvbG9ja2luZy5jIGIvZnMvZ2ZzMi9sb2NraW5nLmMKaW5kZXggNjYzZmVlNy4uNTIzMjQzYSAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9sb2NraW5nLmMKKysrIGIvZnMvZ2ZzMi9sb2NraW5nLmMKQEAgLTIzLDEyICsyMyw1NCBAQAogCWNvbnN0IHN0cnVjdCBsbV9sb2Nrb3BzICpsd19vcHM7CiB9OwogCitzdGF0aWMgaW50IG5vbG9ja19tb3VudChjaGFyICp0YWJsZV9uYW1lLCBjaGFyICpob3N0X2RhdGEsCisJCQlsbV9jYWxsYmFja190IGNiLCB2b2lkICpjYl9kYXRhLAorCQkJdW5zaWduZWQgaW50IG1pbl9sdmJfc2l6ZSwgaW50IGZsYWdzLAorCQkJc3RydWN0IGxtX2xvY2tzdHJ1Y3QgKmxvY2tzdHJ1Y3QsCisJCQlzdHJ1Y3Qga29iamVjdCAqZnNrb2JqKTsKKwogLyogTGlzdCBvZiByZWdpc3RlcmVkIGxvdy1sZXZlbCBsb2NraW5nIHByb3RvY29scy4gIEEgZmlsZSBzeXN0ZW0gc2VsZWN0cyBvbmUKICAgIG9mIHRoZW0gYnkgbmFtZSBhdCBtb3VudCB0aW1lLCBlLmcuIGxvY2tfbm9sb2NrLCBsb2NrX2RsbS4gKi8KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBsbV9sb2Nrb3BzIG5vbG9ja19vcHMgPSB7CisJLmxtX3Byb3RvX25hbWUgPSAibG9ja19ub2xvY2siLAorCS5sbV9tb3VudCA9IG5vbG9ja19tb3VudCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbG1oX3dyYXBwZXIgbm9sb2NrX3Byb3RvICA9IHsKKwkubHdfbGlzdCA9IExJU1RfSEVBRF9JTklUKG5vbG9ja19wcm90by5sd19saXN0KSwKKwkubHdfb3BzID0gJm5vbG9ja19vcHMsCit9OworCiBzdGF0aWMgTElTVF9IRUFEKGxtaF9saXN0KTsKIHN0YXRpYyBERUZJTkVfTVVURVgobG1oX2xvY2spOwogCitzdGF0aWMgaW50IG5vbG9ja19tb3VudChjaGFyICp0YWJsZV9uYW1lLCBjaGFyICpob3N0X2RhdGEsCisJCQlsbV9jYWxsYmFja190IGNiLCB2b2lkICpjYl9kYXRhLAorCQkJdW5zaWduZWQgaW50IG1pbl9sdmJfc2l6ZSwgaW50IGZsYWdzLAorCQkJc3RydWN0IGxtX2xvY2tzdHJ1Y3QgKmxvY2tzdHJ1Y3QsCisJCQlzdHJ1Y3Qga29iamVjdCAqZnNrb2JqKQoreworCWNoYXIgKmM7CisJdW5zaWduZWQgaW50IGppZDsKKworCWMgPSBzdHJzdHIoaG9zdF9kYXRhLCAiamlkPSIpOworCWlmICghYykKKwkJamlkID0gMDsKKwllbHNlIHsKKwkJYyArPSA0OworCQlzc2NhbmYoYywgIiV1IiwgJmppZCk7CisJfQorCisJbG9ja3N0cnVjdC0+bHNfamlkID0gamlkOworCWxvY2tzdHJ1Y3QtPmxzX2ZpcnN0ID0gMTsKKwlsb2Nrc3RydWN0LT5sc19sdmJfc2l6ZSA9IG1pbl9sdmJfc2l6ZTsKKwlsb2Nrc3RydWN0LT5sc19vcHMgPSAmbm9sb2NrX29wczsKKwlsb2Nrc3RydWN0LT5sc19mbGFncyA9IExNX0xTRkxBR19MT0NBTDsKKworCXJldHVybiAwOworfQorCiAvKioKICAqIGdmczJfcmVnaXN0ZXJfbG9ja3Byb3RvIC0gUmVnaXN0ZXIgYSBsb3ctbGV2ZWwgbG9ja2luZyBwcm90b2NvbAogICogQHByb3RvOiB0aGUgcHJvdG9jb2wgZGVmaW5pdGlvbgpAQCAtMTE2LDkgKzE1OCwxMyBAQAogCWludCB0cnkgPSAwOwogCWludCBlcnJvciwgZm91bmQ7CiAKKwogcmV0cnk6CiAJbXV0ZXhfbG9jaygmbG1oX2xvY2spOwogCisJaWYgKGxpc3RfZW1wdHkoJm5vbG9ja19wcm90by5sd19saXN0KSkKKwkJbGlzdF9hZGQoJm5vbG9ja19wcm90by5sd19saXN0LCAmbG1oX2xpc3QpOworCiAJZm91bmQgPSAwOwogCWxpc3RfZm9yX2VhY2hfZW50cnkobHcsICZsbWhfbGlzdCwgbHdfbGlzdCkgewogCQlpZiAoIXN0cmNtcChsdy0+bHdfb3BzLT5sbV9wcm90b19uYW1lLCBwcm90b19uYW1lKSkgewpAQCAtMTM5LDcgKzE4NSw4IEBACiAJCWdvdG8gb3V0OwogCX0KIAotCWlmICghdHJ5X21vZHVsZV9nZXQobHctPmx3X29wcy0+bG1fb3duZXIpKSB7CisJaWYgKGx3LT5sd19vcHMtPmxtX293bmVyICYmCisJICAgICF0cnlfbW9kdWxlX2dldChsdy0+bHdfb3BzLT5sbV9vd25lcikpIHsKIAkJdHJ5ID0gMDsKIAkJbXV0ZXhfdW5sb2NrKCZsbWhfbG9jayk7CiAJCW1zbGVlcCgxMDAwKTsKQEAgLTE1OCw3ICsyMDUsOCBAQAogdm9pZCBnZnMyX3VubW91bnRfbG9ja3Byb3RvKHN0cnVjdCBsbV9sb2Nrc3RydWN0ICpsb2Nrc3RydWN0KQogewogCW11dGV4X2xvY2soJmxtaF9sb2NrKTsKLQlsb2Nrc3RydWN0LT5sc19vcHMtPmxtX3VubW91bnQobG9ja3N0cnVjdC0+bHNfbG9ja3NwYWNlKTsKKwlpZiAobG9ja3N0cnVjdC0+bHNfb3BzLT5sbV91bm1vdW50KQorCQlsb2Nrc3RydWN0LT5sc19vcHMtPmxtX3VubW91bnQobG9ja3N0cnVjdC0+bHNfbG9ja3NwYWNlKTsKIAlpZiAobG9ja3N0cnVjdC0+bHNfb3BzLT5sbV9vd25lcikKIAkJbW9kdWxlX3B1dChsb2Nrc3RydWN0LT5sc19vcHMtPmxtX293bmVyKTsKIAltdXRleF91bmxvY2soJmxtaF9sb2NrKTsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvbG9ja2luZy9kbG0vbG9jay5jIGIvZnMvZ2ZzMi9sb2NraW5nL2RsbS9sb2NrLmMKaW5kZXggY2Y3ZWE4YS4uMjQ4MmM5MCAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9sb2NraW5nL2RsbS9sb2NrLmMKKysrIGIvZnMvZ2ZzMi9sb2NraW5nL2RsbS9sb2NrLmMKQEAgLTExLDI3ICsxMSwyODcgQEAKIAogc3RhdGljIGNoYXIganVua19sdmJbR0RMTV9MVkJfU0laRV07CiAKLXN0YXRpYyB2b2lkIHF1ZXVlX2NvbXBsZXRlKHN0cnVjdCBnZGxtX2xvY2sgKmxwKQorCisvKiBjb252ZXJ0IGRsbSBsb2NrLW1vZGUgdG8gZ2ZzIGxvY2stc3RhdGUgKi8KKworc3RhdGljIHMxNiBnZGxtX21ha2VfbG1zdGF0ZShzMTYgZGxtbW9kZSkKK3sKKwlzd2l0Y2ggKGRsbW1vZGUpIHsKKwljYXNlIERMTV9MT0NLX0lWOgorCWNhc2UgRExNX0xPQ0tfTkw6CisJCXJldHVybiBMTV9TVF9VTkxPQ0tFRDsKKwljYXNlIERMTV9MT0NLX0VYOgorCQlyZXR1cm4gTE1fU1RfRVhDTFVTSVZFOworCWNhc2UgRExNX0xPQ0tfQ1c6CisJCXJldHVybiBMTV9TVF9ERUZFUlJFRDsKKwljYXNlIERMTV9MT0NLX1BSOgorCQlyZXR1cm4gTE1fU1RfU0hBUkVEOworCX0KKwlnZGxtX2Fzc2VydCgwLCAidW5rbm93biBETE0gbW9kZSAlZCIsIGRsbW1vZGUpOworCXJldHVybiAtMTsKK30KKworLyogQSBsb2NrIHBsYWNlZCBvbiB0aGlzIHF1ZXVlIGlzIHJlLXN1Ym1pdHRlZCB0byBETE0gYXMgc29vbiBhcyB0aGUgbG9ja19kbG0KKyAgIHRocmVhZCBnZXRzIHRvIGl0LiAqLworCitzdGF0aWMgdm9pZCBxdWV1ZV9zdWJtaXQoc3RydWN0IGdkbG1fbG9jayAqbHApCiB7CiAJc3RydWN0IGdkbG1fbHMgKmxzID0gbHAtPmxzOwogCi0JY2xlYXJfYml0KExGTF9BQ1RJVkUsICZscC0+ZmxhZ3MpOwotCiAJc3Bpbl9sb2NrKCZscy0+YXN5bmNfbG9jayk7Ci0JbGlzdF9hZGRfdGFpbCgmbHAtPmNsaXN0LCAmbHMtPmNvbXBsZXRlKTsKKwlsaXN0X2FkZF90YWlsKCZscC0+ZGVsYXlfbGlzdCwgJmxzLT5zdWJtaXQpOwogCXNwaW5fdW5sb2NrKCZscy0+YXN5bmNfbG9jayk7CiAJd2FrZV91cCgmbHMtPnRocmVhZF93YWl0KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGdkbG1fYXN0KHZvaWQgKmFzdGFyZykKK3N0YXRpYyB2b2lkIHdha2VfdXBfYXN0KHN0cnVjdCBnZGxtX2xvY2sgKmxwKQogewotCXF1ZXVlX2NvbXBsZXRlKGFzdGFyZyk7CisJY2xlYXJfYml0KExGTF9BU1RfV0FJVCwgJmxwLT5mbGFncyk7CisJc21wX21iX19hZnRlcl9jbGVhcl9iaXQoKTsKKwl3YWtlX3VwX2JpdCgmbHAtPmZsYWdzLCBMRkxfQVNUX1dBSVQpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZ2RsbV9iYXN0KHZvaWQgKmFzdGFyZywgaW50IG1vZGUpCitzdGF0aWMgdm9pZCBnZGxtX2RlbGV0ZV9scChzdHJ1Y3QgZ2RsbV9sb2NrICpscCkKK3sKKwlzdHJ1Y3QgZ2RsbV9scyAqbHMgPSBscC0+bHM7CisKKwlzcGluX2xvY2soJmxzLT5hc3luY19sb2NrKTsKKwlpZiAoIWxpc3RfZW1wdHkoJmxwLT5kZWxheV9saXN0KSkKKwkJbGlzdF9kZWxfaW5pdCgmbHAtPmRlbGF5X2xpc3QpOworCWxzLT5hbGxfbG9ja3NfY291bnQtLTsKKwlzcGluX3VubG9jaygmbHMtPmFzeW5jX2xvY2spOworCisJa2ZyZWUobHApOworfQorCitzdGF0aWMgdm9pZCBnZGxtX3F1ZXVlX2RlbGF5ZWQoc3RydWN0IGdkbG1fbG9jayAqbHApCit7CisJc3RydWN0IGdkbG1fbHMgKmxzID0gbHAtPmxzOworCisJc3Bpbl9sb2NrKCZscy0+YXN5bmNfbG9jayk7CisJbGlzdF9hZGRfdGFpbCgmbHAtPmRlbGF5X2xpc3QsICZscy0+ZGVsYXllZCk7CisJc3Bpbl91bmxvY2soJmxzLT5hc3luY19sb2NrKTsKK30KKworc3RhdGljIHZvaWQgcHJvY2Vzc19jb21wbGV0ZShzdHJ1Y3QgZ2RsbV9sb2NrICpscCkKK3sKKwlzdHJ1Y3QgZ2RsbV9scyAqbHMgPSBscC0+bHM7CisJc3RydWN0IGxtX2FzeW5jX2NiIGFjYjsKKworCW1lbXNldCgmYWNiLCAwLCBzaXplb2YoYWNiKSk7CisKKwlpZiAobHAtPmxrc2Iuc2Jfc3RhdHVzID09IC1ETE1fRUNBTkNFTCkgeworCQlsb2dfaW5mbygiY29tcGxldGUgZGxtIGNhbmNlbCAleCwlbGx4IGZsYWdzICVseCIsCisJCSAJIGxwLT5sb2NrbmFtZS5sbl90eXBlLAorCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpbHAtPmxvY2tuYW1lLmxuX251bWJlciwKKwkJCSBscC0+ZmxhZ3MpOworCisJCWxwLT5yZXEgPSBscC0+Y3VyOworCQlhY2IubGNfcmV0IHw9IExNX09VVF9DQU5DRUxFRDsKKwkJaWYgKGxwLT5jdXIgPT0gRExNX0xPQ0tfSVYpCisJCQlscC0+bGtzYi5zYl9sa2lkID0gMDsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChMRkxfRExNX1VOTE9DSywgJmxwLT5mbGFncykpIHsKKwkJaWYgKGxwLT5sa3NiLnNiX3N0YXR1cyAhPSAtRExNX0VVTkxPQ0spIHsKKwkJCWxvZ19pbmZvKCJ1bmxvY2sgc2Jfc3RhdHVzICVkICV4LCVsbHggZmxhZ3MgJWx4IiwKKwkJCQkgbHAtPmxrc2Iuc2Jfc3RhdHVzLCBscC0+bG9ja25hbWUubG5fdHlwZSwKKwkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZylscC0+bG9ja25hbWUubG5fbnVtYmVyLAorCQkJCSBscC0+ZmxhZ3MpOworCQkJcmV0dXJuOworCQl9CisKKwkJbHAtPmN1ciA9IERMTV9MT0NLX0lWOworCQlscC0+cmVxID0gRExNX0xPQ0tfSVY7CisJCWxwLT5sa3NiLnNiX2xraWQgPSAwOworCisJCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTEZMX1VOTE9DS19ERUxFVEUsICZscC0+ZmxhZ3MpKSB7CisJCQlnZGxtX2RlbGV0ZV9scChscCk7CisJCQlyZXR1cm47CisJCX0KKwkJZ290byBvdXQ7CisJfQorCisJaWYgKGxwLT5sa3NiLnNiX2ZsYWdzICYgRExNX1NCRl9WQUxOT1RWQUxJRCkKKwkJbWVtc2V0KGxwLT5sa3NiLnNiX2x2YnB0ciwgMCwgR0RMTV9MVkJfU0laRSk7CisKKwlpZiAobHAtPmxrc2Iuc2JfZmxhZ3MgJiBETE1fU0JGX0FMVE1PREUpIHsKKwkJaWYgKGxwLT5yZXEgPT0gRExNX0xPQ0tfUFIpCisJCQlscC0+cmVxID0gRExNX0xPQ0tfQ1c7CisJCWVsc2UgaWYgKGxwLT5yZXEgPT0gRExNX0xPQ0tfQ1cpCisJCQlscC0+cmVxID0gRExNX0xPQ0tfUFI7CisJfQorCisJLyoKKwkgKiBBIGNhbmNlbGVkIGxvY2sgcmVxdWVzdC4gIFRoZSBsb2NrIHdhcyBqdXN0IHRha2VuIG9mZiB0aGUgZGVsYXllZAorCSAqIGxpc3QgYW5kIHdhcyBuZXZlciBldmVuIHN1Ym1pdHRlZCB0byBkbG0uCisJICovCisKKwlpZiAodGVzdF9hbmRfY2xlYXJfYml0KExGTF9DQU5DRUwsICZscC0+ZmxhZ3MpKSB7CisJCWxvZ19pbmZvKCJjb21wbGV0ZSBpbnRlcm5hbCBjYW5jZWwgJXgsJWxseCIsCisJCSAJIGxwLT5sb2NrbmFtZS5sbl90eXBlLAorCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpbHAtPmxvY2tuYW1lLmxuX251bWJlcik7CisJCWxwLT5yZXEgPSBscC0+Y3VyOworCQlhY2IubGNfcmV0IHw9IExNX09VVF9DQU5DRUxFRDsKKwkJZ290byBvdXQ7CisJfQorCisJLyoKKwkgKiBBbiBlcnJvciBvY2N1cmVkLgorCSAqLworCisJaWYgKGxwLT5sa3NiLnNiX3N0YXR1cykgeworCQkvKiBhICJub3JtYWwiIGVycm9yICovCisJCWlmICgobHAtPmxrc2Iuc2Jfc3RhdHVzID09IC1FQUdBSU4pICYmCisJCSAgICAobHAtPmxrZiAmIERMTV9MS0ZfTk9RVUVVRSkpIHsKKwkJCWxwLT5yZXEgPSBscC0+Y3VyOworCQkJaWYgKGxwLT5jdXIgPT0gRExNX0xPQ0tfSVYpCisJCQkJbHAtPmxrc2Iuc2JfbGtpZCA9IDA7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCS8qIHRoaXMgY291bGQgb25seSBoYXBwZW4gd2l0aCBjYW5jZWxzIEkgdGhpbmsgKi8KKwkJbG9nX2luZm8oImFzdCBzYl9zdGF0dXMgJWQgJXgsJWxseCBmbGFncyAlbHgiLAorCQkJIGxwLT5sa3NiLnNiX3N0YXR1cywgbHAtPmxvY2tuYW1lLmxuX3R5cGUsCisJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZylscC0+bG9ja25hbWUubG5fbnVtYmVyLAorCQkJIGxwLT5mbGFncyk7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIFRoaXMgaXMgYW4gQVNUIGZvciBhbiBFWC0+RVggY29udmVyc2lvbiBmb3Igc3luY19sdmIgZnJvbSBHRlMuCisJICovCisKKwlpZiAodGVzdF9hbmRfY2xlYXJfYml0KExGTF9TWU5DX0xWQiwgJmxwLT5mbGFncykpIHsKKwkJd2FrZV91cF9hc3QobHApOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBBIGxvY2sgaGFzIGJlZW4gZGVtb3RlZCB0byBOTCBiZWNhdXNlIGl0IGluaXRpYWxseSBjb21wbGV0ZWQgZHVyaW5nCisJICogQkxPQ0tfTE9DS1MuICBOb3cgaXQgbXVzdCBiZSByZXF1ZXN0ZWQgaW4gdGhlIG9yaWdpbmFsbHkgcmVxdWVzdGVkCisJICogbW9kZS4KKwkgKi8KKworCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTEZMX1JFUkVRVUVTVCwgJmxwLT5mbGFncykpIHsKKwkJZ2RsbV9hc3NlcnQobHAtPnJlcSA9PSBETE1fTE9DS19OTCwgIiV4LCVsbHgiLAorCQkJICAgIGxwLT5sb2NrbmFtZS5sbl90eXBlLAorCQkJICAgICh1bnNpZ25lZCBsb25nIGxvbmcpbHAtPmxvY2tuYW1lLmxuX251bWJlcik7CisJCWdkbG1fYXNzZXJ0KGxwLT5wcmV2X3JlcSA+IERMTV9MT0NLX05MLCAiJXgsJWxseCIsCisJCQkgICAgbHAtPmxvY2tuYW1lLmxuX3R5cGUsCisJCQkgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylscC0+bG9ja25hbWUubG5fbnVtYmVyKTsKKworCQlscC0+Y3VyID0gRExNX0xPQ0tfTkw7CisJCWxwLT5yZXEgPSBscC0+cHJldl9yZXE7CisJCWxwLT5wcmV2X3JlcSA9IERMTV9MT0NLX0lWOworCQlscC0+bGtmICY9IH5ETE1fTEtGX0NPTlZERUFETEs7CisKKwkJc2V0X2JpdChMRkxfTk9DQUNIRSwgJmxwLT5mbGFncyk7CisKKwkJaWYgKHRlc3RfYml0KERGTF9CTE9DS19MT0NLUywgJmxzLT5mbGFncykgJiYKKwkJICAgICF0ZXN0X2JpdChMRkxfTk9CTE9DSywgJmxwLT5mbGFncykpCisJCQlnZGxtX3F1ZXVlX2RlbGF5ZWQobHApOworCQllbHNlCisJCQlxdWV1ZV9zdWJtaXQobHApOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBBIHJlcXVlc3QgaXMgZ3JhbnRlZCBkdXJpbmcgZGxtIHJlY292ZXJ5LiAgSXQgbWF5IGJlIGdyYW50ZWQKKwkgKiBiZWNhdXNlIHRoZSBsb2NrcyBvZiBhIGZhaWxlZCBub2RlIHdlcmUgY2xlYXJlZC4gIEluIHRoYXQgY2FzZSwKKwkgKiB0aGVyZSBtYXkgYmUgaW5jb25zaXN0ZW50IGRhdGEgYmVuZWF0aCB0aGlzIGxvY2sgYW5kIHdlIG11c3Qgd2FpdAorCSAqIGZvciByZWNvdmVyeSB0byBjb21wbGV0ZSB0byB1c2UgaXQuICBXaGVuIGdmcyByZWNvdmVyeSBpcyBkb25lIHRoaXMKKwkgKiBncmFudGVkIGxvY2sgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gTkwgYW5kIHRoZW4gcmVhY3F1aXJlZCBpbiB0aGlzCisJICogZ3JhbnRlZCBzdGF0ZS4KKwkgKi8KKworCWlmICh0ZXN0X2JpdChERkxfQkxPQ0tfTE9DS1MsICZscy0+ZmxhZ3MpICYmCisJICAgICF0ZXN0X2JpdChMRkxfTk9CTE9DSywgJmxwLT5mbGFncykgJiYKKwkgICAgbHAtPnJlcSAhPSBETE1fTE9DS19OTCkgeworCisJCWxwLT5jdXIgPSBscC0+cmVxOworCQlscC0+cHJldl9yZXEgPSBscC0+cmVxOworCQlscC0+cmVxID0gRExNX0xPQ0tfTkw7CisJCWxwLT5sa2YgfD0gRExNX0xLRl9DT05WRVJUOworCQlscC0+bGtmICY9IH5ETE1fTEtGX0NPTlZERUFETEs7CisKKwkJbG9nX2RlYnVnKCJyZXJlcSAleCwlbGx4IGlkICV4ICVkLCVkIiwKKwkJCSAgbHAtPmxvY2tuYW1lLmxuX3R5cGUsCisJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpbHAtPmxvY2tuYW1lLmxuX251bWJlciwKKwkJCSAgbHAtPmxrc2Iuc2JfbGtpZCwgbHAtPmN1ciwgbHAtPnJlcSk7CisKKwkJc2V0X2JpdChMRkxfUkVSRVFVRVNULCAmbHAtPmZsYWdzKTsKKwkJcXVldWVfc3VibWl0KGxwKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogRExNIGRlbW90ZWQgdGhlIGxvY2sgdG8gTkwgYmVmb3JlIGl0IHdhcyBncmFudGVkIHNvIEdGUyBtdXN0IGJlCisJICogdG9sZCBpdCBjYW5ub3QgY2FjaGUgZGF0YSBmb3IgdGhpcyBsb2NrLgorCSAqLworCisJaWYgKGxwLT5sa3NiLnNiX2ZsYWdzICYgRExNX1NCRl9ERU1PVEVEKQorCQlzZXRfYml0KExGTF9OT0NBQ0hFLCAmbHAtPmZsYWdzKTsKKworb3V0OgorCS8qCisJICogVGhpcyBpcyBhbiBpbnRlcm5hbCBsb2NrX2RsbSBsb2NrCisJICovCisKKwlpZiAodGVzdF9iaXQoTEZMX0lOTE9DSywgJmxwLT5mbGFncykpIHsKKwkJY2xlYXJfYml0KExGTF9OT0JMT0NLLCAmbHAtPmZsYWdzKTsKKwkJbHAtPmN1ciA9IGxwLT5yZXE7CisJCXdha2VfdXBfYXN0KGxwKTsKKwkJcmV0dXJuOworCX0KKworCS8qCisJICogTm9ybWFsIGNvbXBsZXRpb24gb2YgYSBsb2NrIHJlcXVlc3QuICBUZWxsIEdGUyBpdCBub3cgaGFzIHRoZSBsb2NrLgorCSAqLworCisJY2xlYXJfYml0KExGTF9OT0JMT0NLLCAmbHAtPmZsYWdzKTsKKwlscC0+Y3VyID0gbHAtPnJlcTsKKworCWFjYi5sY19uYW1lID0gbHAtPmxvY2tuYW1lOworCWFjYi5sY19yZXQgfD0gZ2RsbV9tYWtlX2xtc3RhdGUobHAtPmN1cik7CisKKwlscy0+ZnNjYihscy0+c2RwLCBMTV9DQl9BU1lOQywgJmFjYik7Cit9CisKK3N0YXRpYyB2b2lkIGdkbG1fYXN0KHZvaWQgKmFzdGFyZykKIHsKIAlzdHJ1Y3QgZ2RsbV9sb2NrICpscCA9IGFzdGFyZzsKKwljbGVhcl9iaXQoTEZMX0FDVElWRSwgJmxwLT5mbGFncyk7CisJcHJvY2Vzc19jb21wbGV0ZShscCk7Cit9CisKK3N0YXRpYyB2b2lkIHByb2Nlc3NfYmxvY2tpbmcoc3RydWN0IGdkbG1fbG9jayAqbHAsIGludCBiYXN0X21vZGUpCit7CiAJc3RydWN0IGdkbG1fbHMgKmxzID0gbHAtPmxzOworCXVuc2lnbmVkIGludCBjYiA9IDA7CisKKwlzd2l0Y2ggKGdkbG1fbWFrZV9sbXN0YXRlKGJhc3RfbW9kZSkpIHsKKwljYXNlIExNX1NUX0VYQ0xVU0lWRToKKwkJY2IgPSBMTV9DQl9ORUVEX0U7CisJCWJyZWFrOworCWNhc2UgTE1fU1RfREVGRVJSRUQ6CisJCWNiID0gTE1fQ0JfTkVFRF9EOworCQlicmVhazsKKwljYXNlIExNX1NUX1NIQVJFRDoKKwkJY2IgPSBMTV9DQl9ORUVEX1M7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdkbG1fYXNzZXJ0KDAsICJ1bmtub3duIGJhc3QgbW9kZSAldSIsIGJhc3RfbW9kZSk7CisJfQorCisJbHMtPmZzY2IobHMtPnNkcCwgY2IsICZscC0+bG9ja25hbWUpOworfQorCisKK3N0YXRpYyB2b2lkIGdkbG1fYmFzdCh2b2lkICphc3RhcmcsIGludCBtb2RlKQoreworCXN0cnVjdCBnZGxtX2xvY2sgKmxwID0gYXN0YXJnOwogCiAJaWYgKCFtb2RlKSB7CiAJCXByaW50ayhLRVJOX0lORk8gImxvY2tfZGxtOiBiYXN0IG1vZGUgemVybyAleCwlbGx4XG4iLApAQCAtNDAsMjMgKzMwMCw3IEBACiAJCXJldHVybjsKIAl9CiAKLQlzcGluX2xvY2soJmxzLT5hc3luY19sb2NrKTsKLQlpZiAoIWxwLT5iYXN0X21vZGUpIHsKLQkJbGlzdF9hZGRfdGFpbCgmbHAtPmJsaXN0LCAmbHMtPmJsb2NraW5nKTsKLQkJbHAtPmJhc3RfbW9kZSA9IG1vZGU7Ci0JfSBlbHNlIGlmIChscC0+YmFzdF9tb2RlIDwgbW9kZSkKLQkJbHAtPmJhc3RfbW9kZSA9IG1vZGU7Ci0Jc3Bpbl91bmxvY2soJmxzLT5hc3luY19sb2NrKTsKLQl3YWtlX3VwKCZscy0+dGhyZWFkX3dhaXQpOwotfQotCi12b2lkIGdkbG1fcXVldWVfZGVsYXllZChzdHJ1Y3QgZ2RsbV9sb2NrICpscCkKLXsKLQlzdHJ1Y3QgZ2RsbV9scyAqbHMgPSBscC0+bHM7Ci0KLQlzcGluX2xvY2soJmxzLT5hc3luY19sb2NrKTsKLQlsaXN0X2FkZF90YWlsKCZscC0+ZGVsYXlfbGlzdCwgJmxzLT5kZWxheWVkKTsKLQlzcGluX3VubG9jaygmbHMtPmFzeW5jX2xvY2spOworCXByb2Nlc3NfYmxvY2tpbmcobHAsIG1vZGUpOwogfQogCiAvKiBjb252ZXJ0IGdmcyBsb2NrLXN0YXRlIHRvIGRsbSBsb2NrLW1vZGUgKi8KQEAgLTc3LDI0ICszMjEsNiBAQAogCXJldHVybiAtMTsKIH0KIAotLyogY29udmVydCBkbG0gbG9jay1tb2RlIHRvIGdmcyBsb2NrLXN0YXRlICovCi0KLXMxNiBnZGxtX21ha2VfbG1zdGF0ZShzMTYgZGxtbW9kZSkKLXsKLQlzd2l0Y2ggKGRsbW1vZGUpIHsKLQljYXNlIERMTV9MT0NLX0lWOgotCWNhc2UgRExNX0xPQ0tfTkw6Ci0JCXJldHVybiBMTV9TVF9VTkxPQ0tFRDsKLQljYXNlIERMTV9MT0NLX0VYOgotCQlyZXR1cm4gTE1fU1RfRVhDTFVTSVZFOwotCWNhc2UgRExNX0xPQ0tfQ1c6Ci0JCXJldHVybiBMTV9TVF9ERUZFUlJFRDsKLQljYXNlIERMTV9MT0NLX1BSOgotCQlyZXR1cm4gTE1fU1RfU0hBUkVEOwotCX0KLQlnZGxtX2Fzc2VydCgwLCAidW5rbm93biBETE0gbW9kZSAlZCIsIGRsbW1vZGUpOwotCXJldHVybiAtMTsKLX0KIAogLyogdmVyaWZ5IGFncmVlbWVudCB3aXRoIEdGUyBvbiB0aGUgY3VycmVudCBsb2NrIHN0YXRlLCBOQjogRExNX0xPQ0tfTkwgYW5kCiAgICBETE1fTE9DS19JViBhcmUgYm90aCBjb25zaWRlcmVkIExNX1NUX1VOTE9DS0VEIGJ5IEdGUy4gKi8KQEAgLTEzNCwxNCArMzYwLDYgQEAKIAogCWlmIChscC0+bGtzYi5zYl9sa2lkICE9IDApIHsKIAkJbGtmIHw9IERMTV9MS0ZfQ09OVkVSVDsKLQotCQkvKiBDb252ZXJzaW9uIGRlYWRsb2NrIGF2b2lkYW5jZSBieSBETE0gKi8KLQotCQlpZiAoIShscC0+bHMtPmZzZmxhZ3MgJiBMTV9NRkxBR19DT05WX05PRFJPUCkgJiYKLQkJICAgICF0ZXN0X2JpdChMRkxfRk9SQ0VfUFJPTU9URSwgJmxwLT5mbGFncykgJiYKLQkJICAgICEobGtmICYgRExNX0xLRl9OT1FVRVVFKSAmJgotCQkgICAgY3VyID4gRExNX0xPQ0tfTkwgJiYgcmVxID4gRExNX0xPQ0tfTkwgJiYgY3VyICE9IHJlcSkKLQkJCWxrZiB8PSBETE1fTEtGX0NPTlZERUFETEs7CiAJfQogCiAJaWYgKGxwLT5sdmIpCkBAIC0xNzMsMTQgKzM5MSw5IEBACiAJbWFrZV9zdHJuYW1lKG5hbWUsICZscC0+c3RybmFtZSk7CiAJbHAtPmxzID0gbHM7CiAJbHAtPmN1ciA9IERMTV9MT0NLX0lWOwotCWxwLT5sdmIgPSBOVUxMOwotCWxwLT5ob2xkX251bGwgPSBOVUxMOwotCUlOSVRfTElTVF9IRUFEKCZscC0+Y2xpc3QpOwotCUlOSVRfTElTVF9IRUFEKCZscC0+Ymxpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZscC0+ZGVsYXlfbGlzdCk7CiAKIAlzcGluX2xvY2soJmxzLT5hc3luY19sb2NrKTsKLQlsaXN0X2FkZCgmbHAtPmFsbF9saXN0LCAmbHMtPmFsbF9sb2Nrcyk7CiAJbHMtPmFsbF9sb2Nrc19jb3VudCsrOwogCXNwaW5fdW5sb2NrKCZscy0+YXN5bmNfbG9jayk7CiAKQEAgLTE4OCwyNiArNDAxLDYgQEAKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBnZGxtX2RlbGV0ZV9scChzdHJ1Y3QgZ2RsbV9sb2NrICpscCkKLXsKLQlzdHJ1Y3QgZ2RsbV9scyAqbHMgPSBscC0+bHM7Ci0KLQlzcGluX2xvY2soJmxzLT5hc3luY19sb2NrKTsKLQlpZiAoIWxpc3RfZW1wdHkoJmxwLT5jbGlzdCkpCi0JCWxpc3RfZGVsX2luaXQoJmxwLT5jbGlzdCk7Ci0JaWYgKCFsaXN0X2VtcHR5KCZscC0+Ymxpc3QpKQotCQlsaXN0X2RlbF9pbml0KCZscC0+Ymxpc3QpOwotCWlmICghbGlzdF9lbXB0eSgmbHAtPmRlbGF5X2xpc3QpKQotCQlsaXN0X2RlbF9pbml0KCZscC0+ZGVsYXlfbGlzdCk7Ci0JZ2RsbV9hc3NlcnQoIWxpc3RfZW1wdHkoJmxwLT5hbGxfbGlzdCksICIleCwlbGx4IiwgbHAtPmxvY2tuYW1lLmxuX3R5cGUsCi0JCSAgICAodW5zaWduZWQgbG9uZyBsb25nKWxwLT5sb2NrbmFtZS5sbl9udW1iZXIpOwotCWxpc3RfZGVsX2luaXQoJmxwLT5hbGxfbGlzdCk7Ci0JbHMtPmFsbF9sb2Nrc19jb3VudC0tOwotCXNwaW5fdW5sb2NrKCZscy0+YXN5bmNfbG9jayk7Ci0KLQlrZnJlZShscCk7Ci19Ci0KIGludCBnZGxtX2dldF9sb2NrKHZvaWQgKmxvY2tzcGFjZSwgc3RydWN0IGxtX2xvY2tuYW1lICpuYW1lLAogCQkgIHZvaWQgKipsb2NrcCkKIHsKQEAgLTI2MSw3ICs0NTQsNyBAQAogCiAJaWYgKChlcnJvciA9PSAtRUFHQUlOKSAmJiAobHAtPmxrZiAmIERMTV9MS0ZfTk9RVUVVRSkpIHsKIAkJbHAtPmxrc2Iuc2Jfc3RhdHVzID0gLUVBR0FJTjsKLQkJcXVldWVfY29tcGxldGUobHApOworCQlnZGxtX2FzdChscCk7CiAJCWVycm9yID0gMDsKIAl9CiAKQEAgLTMwOCw2ICs1MDEsMTIgQEAKIHsKIAlzdHJ1Y3QgZ2RsbV9sb2NrICpscCA9IGxvY2s7CiAKKwlpZiAocmVxX3N0YXRlID09IExNX1NUX1VOTE9DS0VEKQorCQlyZXR1cm4gZ2RsbV91bmxvY2sobG9jaywgY3VyX3N0YXRlKTsKKworCWlmIChyZXFfc3RhdGUgPT0gTE1fU1RfVU5MT0NLRUQpCisJCXJldHVybiBnZGxtX3VubG9jayhsb2NrLCBjdXJfc3RhdGUpOworCiAJY2xlYXJfYml0KExGTF9ETE1fQ0FOQ0VMLCAmbHAtPmZsYWdzKTsKIAlpZiAoZmxhZ3MgJiBMTV9GTEFHX05PRVhQKQogCQlzZXRfYml0KExGTF9OT0JMT0NLLCAmbHAtPmZsYWdzKTsKQEAgLTM1MSw3ICs1NTAsNyBAQAogCWlmIChkZWxheV9saXN0KSB7CiAJCXNldF9iaXQoTEZMX0NBTkNFTCwgJmxwLT5mbGFncyk7CiAJCXNldF9iaXQoTEZMX0FDVElWRSwgJmxwLT5mbGFncyk7Ci0JCXF1ZXVlX2NvbXBsZXRlKGxwKTsKKwkJZ2RsbV9hc3QobHApOwogCQlyZXR1cm47CiAJfQogCkBAIC01MDcsMjIgKzcwNiwzIEBACiAJd2FrZV91cCgmbHMtPnRocmVhZF93YWl0KTsKIH0KIAotaW50IGdkbG1fcmVsZWFzZV9hbGxfbG9ja3Moc3RydWN0IGdkbG1fbHMgKmxzKQotewotCXN0cnVjdCBnZGxtX2xvY2sgKmxwLCAqc2FmZTsKLQlpbnQgY291bnQgPSAwOwotCi0Jc3Bpbl9sb2NrKCZscy0+YXN5bmNfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGxwLCBzYWZlLCAmbHMtPmFsbF9sb2NrcywgYWxsX2xpc3QpIHsKLQkJbGlzdF9kZWxfaW5pdCgmbHAtPmFsbF9saXN0KTsKLQotCQlpZiAobHAtPmx2YiAmJiBscC0+bHZiICE9IGp1bmtfbHZiKQotCQkJa2ZyZWUobHAtPmx2Yik7Ci0JCWtmcmVlKGxwKTsKLQkJY291bnQrKzsKLQl9Ci0Jc3Bpbl91bmxvY2soJmxzLT5hc3luY19sb2NrKTsKLQotCXJldHVybiBjb3VudDsKLX0KLQpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9sb2NraW5nL2RsbS9sb2NrX2RsbS5oIGIvZnMvZ2ZzMi9sb2NraW5nL2RsbS9sb2NrX2RsbS5oCmluZGV4IGEyNDNjZjYuLjNjOThlN2MgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvbG9ja2luZy9kbG0vbG9ja19kbG0uaAorKysgYi9mcy9nZnMyL2xvY2tpbmcvZGxtL2xvY2tfZGxtLmgKQEAgLTcyLDE5ICs3MiwxMiBAQAogCWludAkJCXJlY292ZXJfamlkX2RvbmU7CiAJaW50CQkJcmVjb3Zlcl9qaWRfc3RhdHVzOwogCXNwaW5sb2NrX3QJCWFzeW5jX2xvY2s7Ci0Jc3RydWN0IGxpc3RfaGVhZAljb21wbGV0ZTsKLQlzdHJ1Y3QgbGlzdF9oZWFkCWJsb2NraW5nOwogCXN0cnVjdCBsaXN0X2hlYWQJZGVsYXllZDsKIAlzdHJ1Y3QgbGlzdF9oZWFkCXN1Ym1pdDsKLQlzdHJ1Y3QgbGlzdF9oZWFkCWFsbF9sb2NrczsKIAl1MzIJCWFsbF9sb2Nrc19jb3VudDsKIAl3YWl0X3F1ZXVlX2hlYWRfdAl3YWl0X2NvbnRyb2w7Ci0Jc3RydWN0IHRhc2tfc3RydWN0CSp0aHJlYWQxOwotCXN0cnVjdCB0YXNrX3N0cnVjdAkqdGhyZWFkMjsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRocmVhZDsKIAl3YWl0X3F1ZXVlX2hlYWRfdAl0aHJlYWRfd2FpdDsKLQl1bnNpZ25lZCBsb25nCQlkcm9wX3RpbWU7Ci0JaW50CQkJZHJvcF9sb2Nrc19jb3VudDsKLQlpbnQJCQlkcm9wX2xvY2tzX3BlcmlvZDsKIH07CiAKIGVudW0gewpAQCAtMTE3LDEyICsxMTAsNyBAQAogCXUzMgkJCWxrZjsJCS8qIGRsbSBmbGFncyBETE1fTEtGXyAqLwogCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwkJLyogbG9ja19kbG0gZmxhZ3MgTEZMXyAqLwogCi0JaW50CQkJYmFzdF9tb2RlOwkvKiBwcm90ZWN0ZWQgYnkgYXN5bmNfbG9jayAqLwotCi0Jc3RydWN0IGxpc3RfaGVhZAljbGlzdDsJCS8qIGNvbXBsZXRlICovCi0Jc3RydWN0IGxpc3RfaGVhZAlibGlzdDsJCS8qIGJsb2NraW5nICovCiAJc3RydWN0IGxpc3RfaGVhZAlkZWxheV9saXN0OwkvKiBkZWxheWVkICovCi0Jc3RydWN0IGxpc3RfaGVhZAlhbGxfbGlzdDsJLyogYWxsIGxvY2tzIGZvciB0aGUgZnMgKi8KIAlzdHJ1Y3QgZ2RsbV9sb2NrCSpob2xkX251bGw7CS8qIE5MIGxvY2sgZm9yIGhvbGRfbHZiICovCiB9OwogCkBAIC0xNTksMTEgKzE0Nyw3IEBACiAKIC8qIGxvY2suYyAqLwogCi1zMTYgZ2RsbV9tYWtlX2xtc3RhdGUoczE2KTsKLXZvaWQgZ2RsbV9xdWV1ZV9kZWxheWVkKHN0cnVjdCBnZGxtX2xvY2sgKik7CiB2b2lkIGdkbG1fc3VibWl0X2RlbGF5ZWQoc3RydWN0IGdkbG1fbHMgKik7Ci1pbnQgZ2RsbV9yZWxlYXNlX2FsbF9sb2NrcyhzdHJ1Y3QgZ2RsbV9scyAqKTsKLXZvaWQgZ2RsbV9kZWxldGVfbHAoc3RydWN0IGdkbG1fbG9jayAqKTsKIHVuc2lnbmVkIGludCBnZGxtX2RvX2xvY2soc3RydWN0IGdkbG1fbG9jayAqKTsKIAogaW50IGdkbG1fZ2V0X2xvY2sodm9pZCAqLCBzdHJ1Y3QgbG1fbG9ja25hbWUgKiwgdm9pZCAqKik7CmRpZmYgLS1naXQgYS9mcy9nZnMyL2xvY2tpbmcvZGxtL21vdW50LmMgYi9mcy9nZnMyL2xvY2tpbmcvZGxtL21vdW50LmMKaW5kZXggNDcwYmRmNi4uMDlkNzhjMiAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9sb2NraW5nL2RsbS9tb3VudC5jCisrKyBiL2ZzL2dmczIvbG9ja2luZy9kbG0vbW91bnQuYwpAQCAtMjIsMjIgKzIyLDE0IEBACiAJaWYgKCFscykKIAkJcmV0dXJuIE5VTEw7CiAKLQlscy0+ZHJvcF9sb2Nrc19jb3VudCA9IEdETE1fRFJPUF9DT1VOVDsKLQlscy0+ZHJvcF9sb2Nrc19wZXJpb2QgPSBHRExNX0RST1BfUEVSSU9EOwogCWxzLT5mc2NiID0gY2I7CiAJbHMtPnNkcCA9IHNkcDsKIAlscy0+ZnNmbGFncyA9IGZsYWdzOwogCXNwaW5fbG9ja19pbml0KCZscy0+YXN5bmNfbG9jayk7Ci0JSU5JVF9MSVNUX0hFQUQoJmxzLT5jb21wbGV0ZSk7Ci0JSU5JVF9MSVNUX0hFQUQoJmxzLT5ibG9ja2luZyk7CiAJSU5JVF9MSVNUX0hFQUQoJmxzLT5kZWxheWVkKTsKIAlJTklUX0xJU1RfSEVBRCgmbHMtPnN1Ym1pdCk7Ci0JSU5JVF9MSVNUX0hFQUQoJmxzLT5hbGxfbG9ja3MpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmxzLT50aHJlYWRfd2FpdCk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmbHMtPndhaXRfY29udHJvbCk7Ci0JbHMtPnRocmVhZDEgPSBOVUxMOwotCWxzLT50aHJlYWQyID0gTlVMTDsKLQlscy0+ZHJvcF90aW1lID0gamlmZmllczsKIAlscy0+amlkID0gLTE7CiAKIAlzdHJuY3B5KGJ1ZiwgdGFibGVfbmFtZSwgMjU2KTsKQEAgLTE4MCw3ICsxNzIsNiBAQAogc3RhdGljIHZvaWQgZ2RsbV91bm1vdW50KHZvaWQgKmxvY2tzcGFjZSkKIHsKIAlzdHJ1Y3QgZ2RsbV9scyAqbHMgPSBsb2Nrc3BhY2U7Ci0JaW50IHJ2OwogCiAJbG9nX2RlYnVnKCJ1bm1vdW50IGZsYWdzICVseCIsIGxzLT5mbGFncyk7CiAKQEAgLTE5NCw5ICsxODUsNyBAQAogCWdkbG1fa29iamVjdF9yZWxlYXNlKGxzKTsKIAlkbG1fcmVsZWFzZV9sb2Nrc3BhY2UobHMtPmRsbV9sb2Nrc3BhY2UsIDIpOwogCWdkbG1fcmVsZWFzZV90aHJlYWRzKGxzKTsKLQlydiA9IGdkbG1fcmVsZWFzZV9hbGxfbG9ja3MobHMpOwotCWlmIChydikKLQkJbG9nX2luZm8oImdkbG1fdW5tb3VudDogJWQgc3RyYXkgbG9ja3MgZnJlZWQiLCBydik7CisJQlVHX09OKGxzLT5hbGxfbG9ja3NfY291bnQpOwogb3V0OgogCWtmcmVlKGxzKTsKIH0KQEAgLTIzMiw3ICsyMjEsNiBAQAogCiAJZGxtX3JlbGVhc2VfbG9ja3NwYWNlKGxzLT5kbG1fbG9ja3NwYWNlLCAyKTsKIAlnZGxtX3JlbGVhc2VfdGhyZWFkcyhscyk7Ci0JZ2RsbV9yZWxlYXNlX2FsbF9sb2Nrcyhscyk7CiAJZ2RsbV9rb2JqZWN0X3JlbGVhc2UobHMpOwogfQogCmRpZmYgLS1naXQgYS9mcy9nZnMyL2xvY2tpbmcvZGxtL3N5c2ZzLmMgYi9mcy9nZnMyL2xvY2tpbmcvZGxtL3N5c2ZzLmMKaW5kZXggYTRmZjI3MS4uNGVjNTcxYyAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9sb2NraW5nL2RsbS9zeXNmcy5jCisrKyBiL2ZzL2dmczIvbG9ja2luZy9kbG0vc3lzZnMuYwpAQCAtMTE0LDE3ICsxMTQsNiBAQAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBscy0+cmVjb3Zlcl9qaWRfc3RhdHVzKTsKIH0KIAotc3RhdGljIHNzaXplX3QgZHJvcF9jb3VudF9zaG93KHN0cnVjdCBnZGxtX2xzICpscywgY2hhciAqYnVmKQotewotCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBscy0+ZHJvcF9sb2Nrc19jb3VudCk7Ci19Ci0KLXN0YXRpYyBzc2l6ZV90IGRyb3BfY291bnRfc3RvcmUoc3RydWN0IGdkbG1fbHMgKmxzLCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCi17Ci0JbHMtPmRyb3BfbG9ja3NfY291bnQgPSBzaW1wbGVfc3RydG9sKGJ1ZiwgTlVMTCwgMCk7Ci0JcmV0dXJuIGxlbjsKLX0KLQogc3RydWN0IGdkbG1fYXR0ciB7CiAJc3RydWN0IGF0dHJpYnV0ZSBhdHRyOwogCXNzaXplX3QgKCpzaG93KShzdHJ1Y3QgZ2RsbV9scyAqLCBjaGFyICopOwpAQCAtMTQ0LDcgKzEzMyw2IEBACiBHRExNX0FUVFIocmVjb3ZlciwgICAgICAgIDA2NDQsIHJlY292ZXJfc2hvdywgICAgICAgIHJlY292ZXJfc3RvcmUpOwogR0RMTV9BVFRSKHJlY292ZXJfZG9uZSwgICAwNDQ0LCByZWNvdmVyX2RvbmVfc2hvdywgICBOVUxMKTsKIEdETE1fQVRUUihyZWNvdmVyX3N0YXR1cywgMDQ0NCwgcmVjb3Zlcl9zdGF0dXNfc2hvdywgTlVMTCk7Ci1HRExNX0FUVFIoZHJvcF9jb3VudCwgICAgIDA2NDQsIGRyb3BfY291bnRfc2hvdywgICAgIGRyb3BfY291bnRfc3RvcmUpOwogCiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqZ2RsbV9hdHRyc1tdID0gewogCSZnZGxtX2F0dHJfcHJvdG9fbmFtZS5hdHRyLApAQCAtMTU3LDcgKzE0NSw2IEBACiAJJmdkbG1fYXR0cl9yZWNvdmVyLmF0dHIsCiAJJmdkbG1fYXR0cl9yZWNvdmVyX2RvbmUuYXR0ciwKIAkmZ2RsbV9hdHRyX3JlY292ZXJfc3RhdHVzLmF0dHIsCi0JJmdkbG1fYXR0cl9kcm9wX2NvdW50LmF0dHIsCiAJTlVMTCwKIH07CiAKZGlmZiAtLWdpdCBhL2ZzL2dmczIvbG9ja2luZy9kbG0vdGhyZWFkLmMgYi9mcy9nZnMyL2xvY2tpbmcvZGxtL3RocmVhZC5jCmluZGV4IGU1M2RiNmYuLjM4ODIzZWYgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvbG9ja2luZy9kbG0vdGhyZWFkLmMKKysrIGIvZnMvZ2ZzMi9sb2NraW5nL2RsbS90aHJlYWQuYwpAQCAtOSwzNjcgKzksNjAgQEAKIAogI2luY2x1ZGUgImxvY2tfZGxtLmgiCiAKLS8qIEEgbG9jayBwbGFjZWQgb24gdGhpcyBxdWV1ZSBpcyByZS1zdWJtaXR0ZWQgdG8gRExNIGFzIHNvb24gYXMgdGhlIGxvY2tfZGxtCi0gICB0aHJlYWQgZ2V0cyB0byBpdC4gKi8KLQotc3RhdGljIHZvaWQgcXVldWVfc3VibWl0KHN0cnVjdCBnZGxtX2xvY2sgKmxwKQotewotCXN0cnVjdCBnZGxtX2xzICpscyA9IGxwLT5sczsKLQotCXNwaW5fbG9jaygmbHMtPmFzeW5jX2xvY2spOwotCWxpc3RfYWRkX3RhaWwoJmxwLT5kZWxheV9saXN0LCAmbHMtPnN1Ym1pdCk7Ci0Jc3Bpbl91bmxvY2soJmxzLT5hc3luY19sb2NrKTsKLQl3YWtlX3VwKCZscy0+dGhyZWFkX3dhaXQpOwotfQotCi1zdGF0aWMgdm9pZCBwcm9jZXNzX2Jsb2NraW5nKHN0cnVjdCBnZGxtX2xvY2sgKmxwLCBpbnQgYmFzdF9tb2RlKQotewotCXN0cnVjdCBnZGxtX2xzICpscyA9IGxwLT5sczsKLQl1bnNpZ25lZCBpbnQgY2IgPSAwOwotCi0Jc3dpdGNoIChnZGxtX21ha2VfbG1zdGF0ZShiYXN0X21vZGUpKSB7Ci0JY2FzZSBMTV9TVF9FWENMVVNJVkU6Ci0JCWNiID0gTE1fQ0JfTkVFRF9FOwotCQlicmVhazsKLQljYXNlIExNX1NUX0RFRkVSUkVEOgotCQljYiA9IExNX0NCX05FRURfRDsKLQkJYnJlYWs7Ci0JY2FzZSBMTV9TVF9TSEFSRUQ6Ci0JCWNiID0gTE1fQ0JfTkVFRF9TOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlnZGxtX2Fzc2VydCgwLCAidW5rbm93biBiYXN0IG1vZGUgJXUiLCBscC0+YmFzdF9tb2RlKTsKLQl9Ci0KLQlscy0+ZnNjYihscy0+c2RwLCBjYiwgJmxwLT5sb2NrbmFtZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdha2VfdXBfYXN0KHN0cnVjdCBnZGxtX2xvY2sgKmxwKQotewotCWNsZWFyX2JpdChMRkxfQVNUX1dBSVQsICZscC0+ZmxhZ3MpOwotCXNtcF9tYl9fYWZ0ZXJfY2xlYXJfYml0KCk7Ci0Jd2FrZV91cF9iaXQoJmxwLT5mbGFncywgTEZMX0FTVF9XQUlUKTsKLX0KLQotc3RhdGljIHZvaWQgcHJvY2Vzc19jb21wbGV0ZShzdHJ1Y3QgZ2RsbV9sb2NrICpscCkKLXsKLQlzdHJ1Y3QgZ2RsbV9scyAqbHMgPSBscC0+bHM7Ci0Jc3RydWN0IGxtX2FzeW5jX2NiIGFjYjsKLQlzMTYgcHJldl9tb2RlID0gbHAtPmN1cjsKLQotCW1lbXNldCgmYWNiLCAwLCBzaXplb2YoYWNiKSk7Ci0KLQlpZiAobHAtPmxrc2Iuc2Jfc3RhdHVzID09IC1ETE1fRUNBTkNFTCkgewotCQlsb2dfaW5mbygiY29tcGxldGUgZGxtIGNhbmNlbCAleCwlbGx4IGZsYWdzICVseCIsCi0JCSAJIGxwLT5sb2NrbmFtZS5sbl90eXBlLAotCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpbHAtPmxvY2tuYW1lLmxuX251bWJlciwKLQkJCSBscC0+ZmxhZ3MpOwotCi0JCWxwLT5yZXEgPSBscC0+Y3VyOwotCQlhY2IubGNfcmV0IHw9IExNX09VVF9DQU5DRUxFRDsKLQkJaWYgKGxwLT5jdXIgPT0gRExNX0xPQ0tfSVYpCi0JCQlscC0+bGtzYi5zYl9sa2lkID0gMDsKLQkJZ290byBvdXQ7Ci0JfQotCi0JaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChMRkxfRExNX1VOTE9DSywgJmxwLT5mbGFncykpIHsKLQkJaWYgKGxwLT5sa3NiLnNiX3N0YXR1cyAhPSAtRExNX0VVTkxPQ0spIHsKLQkJCWxvZ19pbmZvKCJ1bmxvY2sgc2Jfc3RhdHVzICVkICV4LCVsbHggZmxhZ3MgJWx4IiwKLQkJCQkgbHAtPmxrc2Iuc2Jfc3RhdHVzLCBscC0+bG9ja25hbWUubG5fdHlwZSwKLQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZylscC0+bG9ja25hbWUubG5fbnVtYmVyLAotCQkJCSBscC0+ZmxhZ3MpOwotCQkJcmV0dXJuOwotCQl9Ci0KLQkJbHAtPmN1ciA9IERMTV9MT0NLX0lWOwotCQlscC0+cmVxID0gRExNX0xPQ0tfSVY7Ci0JCWxwLT5sa3NiLnNiX2xraWQgPSAwOwotCi0JCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTEZMX1VOTE9DS19ERUxFVEUsICZscC0+ZmxhZ3MpKSB7Ci0JCQlnZGxtX2RlbGV0ZV9scChscCk7Ci0JCQlyZXR1cm47Ci0JCX0KLQkJZ290byBvdXQ7Ci0JfQotCi0JaWYgKGxwLT5sa3NiLnNiX2ZsYWdzICYgRExNX1NCRl9WQUxOT1RWQUxJRCkKLQkJbWVtc2V0KGxwLT5sa3NiLnNiX2x2YnB0ciwgMCwgR0RMTV9MVkJfU0laRSk7Ci0KLQlpZiAobHAtPmxrc2Iuc2JfZmxhZ3MgJiBETE1fU0JGX0FMVE1PREUpIHsKLQkJaWYgKGxwLT5yZXEgPT0gRExNX0xPQ0tfUFIpCi0JCQlscC0+cmVxID0gRExNX0xPQ0tfQ1c7Ci0JCWVsc2UgaWYgKGxwLT5yZXEgPT0gRExNX0xPQ0tfQ1cpCi0JCQlscC0+cmVxID0gRExNX0xPQ0tfUFI7Ci0JfQotCi0JLyoKLQkgKiBBIGNhbmNlbGVkIGxvY2sgcmVxdWVzdC4gIFRoZSBsb2NrIHdhcyBqdXN0IHRha2VuIG9mZiB0aGUgZGVsYXllZAotCSAqIGxpc3QgYW5kIHdhcyBuZXZlciBldmVuIHN1Ym1pdHRlZCB0byBkbG0uCi0JICovCi0KLQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KExGTF9DQU5DRUwsICZscC0+ZmxhZ3MpKSB7Ci0JCWxvZ19pbmZvKCJjb21wbGV0ZSBpbnRlcm5hbCBjYW5jZWwgJXgsJWxseCIsCi0JCSAJIGxwLT5sb2NrbmFtZS5sbl90eXBlLAotCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpbHAtPmxvY2tuYW1lLmxuX251bWJlcik7Ci0JCWxwLT5yZXEgPSBscC0+Y3VyOwotCQlhY2IubGNfcmV0IHw9IExNX09VVF9DQU5DRUxFRDsKLQkJZ290byBvdXQ7Ci0JfQotCi0JLyoKLQkgKiBBbiBlcnJvciBvY2N1cmVkLgotCSAqLwotCi0JaWYgKGxwLT5sa3NiLnNiX3N0YXR1cykgewotCQkvKiBhICJub3JtYWwiIGVycm9yICovCi0JCWlmICgobHAtPmxrc2Iuc2Jfc3RhdHVzID09IC1FQUdBSU4pICYmCi0JCSAgICAobHAtPmxrZiAmIERMTV9MS0ZfTk9RVUVVRSkpIHsKLQkJCWxwLT5yZXEgPSBscC0+Y3VyOwotCQkJaWYgKGxwLT5jdXIgPT0gRExNX0xPQ0tfSVYpCi0JCQkJbHAtPmxrc2Iuc2JfbGtpZCA9IDA7Ci0JCQlnb3RvIG91dDsKLQkJfQotCi0JCS8qIHRoaXMgY291bGQgb25seSBoYXBwZW4gd2l0aCBjYW5jZWxzIEkgdGhpbmsgKi8KLQkJbG9nX2luZm8oImFzdCBzYl9zdGF0dXMgJWQgJXgsJWxseCBmbGFncyAlbHgiLAotCQkJIGxwLT5sa3NiLnNiX3N0YXR1cywgbHAtPmxvY2tuYW1lLmxuX3R5cGUsCi0JCQkgKHVuc2lnbmVkIGxvbmcgbG9uZylscC0+bG9ja25hbWUubG5fbnVtYmVyLAotCQkJIGxwLT5mbGFncyk7Ci0JCWlmIChscC0+bGtzYi5zYl9zdGF0dXMgPT0gLUVERUFETE9DSyAmJgotCQkgICAgbHAtPmxzLT5mc2ZsYWdzICYgTE1fTUZMQUdfQ09OVl9OT0RST1ApIHsKLQkJCWxwLT5yZXEgPSBscC0+Y3VyOwotCQkJYWNiLmxjX3JldCB8PSBMTV9PVVRfQ09OVl9ERUFETEs7Ci0JCQlpZiAobHAtPmN1ciA9PSBETE1fTE9DS19JVikKLQkJCQlscC0+bGtzYi5zYl9sa2lkID0gMDsKLQkJCWdvdG8gb3V0OwotCQl9IGVsc2UKLQkJCXJldHVybjsKLQl9Ci0KLQkvKgotCSAqIFRoaXMgaXMgYW4gQVNUIGZvciBhbiBFWC0+RVggY29udmVyc2lvbiBmb3Igc3luY19sdmIgZnJvbSBHRlMuCi0JICovCi0KLQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KExGTF9TWU5DX0xWQiwgJmxwLT5mbGFncykpIHsKLQkJd2FrZV91cF9hc3QobHApOwotCQlyZXR1cm47Ci0JfQotCi0JLyoKLQkgKiBBIGxvY2sgaGFzIGJlZW4gZGVtb3RlZCB0byBOTCBiZWNhdXNlIGl0IGluaXRpYWxseSBjb21wbGV0ZWQgZHVyaW5nCi0JICogQkxPQ0tfTE9DS1MuICBOb3cgaXQgbXVzdCBiZSByZXF1ZXN0ZWQgaW4gdGhlIG9yaWdpbmFsbHkgcmVxdWVzdGVkCi0JICogbW9kZS4KLQkgKi8KLQotCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTEZMX1JFUkVRVUVTVCwgJmxwLT5mbGFncykpIHsKLQkJZ2RsbV9hc3NlcnQobHAtPnJlcSA9PSBETE1fTE9DS19OTCwgIiV4LCVsbHgiLAotCQkJICAgIGxwLT5sb2NrbmFtZS5sbl90eXBlLAotCQkJICAgICh1bnNpZ25lZCBsb25nIGxvbmcpbHAtPmxvY2tuYW1lLmxuX251bWJlcik7Ci0JCWdkbG1fYXNzZXJ0KGxwLT5wcmV2X3JlcSA+IERMTV9MT0NLX05MLCAiJXgsJWxseCIsCi0JCQkgICAgbHAtPmxvY2tuYW1lLmxuX3R5cGUsCi0JCQkgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylscC0+bG9ja25hbWUubG5fbnVtYmVyKTsKLQotCQlscC0+Y3VyID0gRExNX0xPQ0tfTkw7Ci0JCWxwLT5yZXEgPSBscC0+cHJldl9yZXE7Ci0JCWxwLT5wcmV2X3JlcSA9IERMTV9MT0NLX0lWOwotCQlscC0+bGtmICY9IH5ETE1fTEtGX0NPTlZERUFETEs7Ci0KLQkJc2V0X2JpdChMRkxfTk9DQUNIRSwgJmxwLT5mbGFncyk7Ci0KLQkJaWYgKHRlc3RfYml0KERGTF9CTE9DS19MT0NLUywgJmxzLT5mbGFncykgJiYKLQkJICAgICF0ZXN0X2JpdChMRkxfTk9CTE9DSywgJmxwLT5mbGFncykpCi0JCQlnZGxtX3F1ZXVlX2RlbGF5ZWQobHApOwotCQllbHNlCi0JCQlxdWV1ZV9zdWJtaXQobHApOwotCQlyZXR1cm47Ci0JfQotCi0JLyoKLQkgKiBBIHJlcXVlc3QgaXMgZ3JhbnRlZCBkdXJpbmcgZGxtIHJlY292ZXJ5LiAgSXQgbWF5IGJlIGdyYW50ZWQKLQkgKiBiZWNhdXNlIHRoZSBsb2NrcyBvZiBhIGZhaWxlZCBub2RlIHdlcmUgY2xlYXJlZC4gIEluIHRoYXQgY2FzZSwKLQkgKiB0aGVyZSBtYXkgYmUgaW5jb25zaXN0ZW50IGRhdGEgYmVuZWF0aCB0aGlzIGxvY2sgYW5kIHdlIG11c3Qgd2FpdAotCSAqIGZvciByZWNvdmVyeSB0byBjb21wbGV0ZSB0byB1c2UgaXQuICBXaGVuIGdmcyByZWNvdmVyeSBpcyBkb25lIHRoaXMKLQkgKiBncmFudGVkIGxvY2sgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gTkwgYW5kIHRoZW4gcmVhY3F1aXJlZCBpbiB0aGlzCi0JICogZ3JhbnRlZCBzdGF0ZS4KLQkgKi8KLQotCWlmICh0ZXN0X2JpdChERkxfQkxPQ0tfTE9DS1MsICZscy0+ZmxhZ3MpICYmCi0JICAgICF0ZXN0X2JpdChMRkxfTk9CTE9DSywgJmxwLT5mbGFncykgJiYKLQkgICAgbHAtPnJlcSAhPSBETE1fTE9DS19OTCkgewotCi0JCWxwLT5jdXIgPSBscC0+cmVxOwotCQlscC0+cHJldl9yZXEgPSBscC0+cmVxOwotCQlscC0+cmVxID0gRExNX0xPQ0tfTkw7Ci0JCWxwLT5sa2YgfD0gRExNX0xLRl9DT05WRVJUOwotCQlscC0+bGtmICY9IH5ETE1fTEtGX0NPTlZERUFETEs7Ci0KLQkJbG9nX2RlYnVnKCJyZXJlcSAleCwlbGx4IGlkICV4ICVkLCVkIiwKLQkJCSAgbHAtPmxvY2tuYW1lLmxuX3R5cGUsCi0JCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpbHAtPmxvY2tuYW1lLmxuX251bWJlciwKLQkJCSAgbHAtPmxrc2Iuc2JfbGtpZCwgbHAtPmN1ciwgbHAtPnJlcSk7Ci0KLQkJc2V0X2JpdChMRkxfUkVSRVFVRVNULCAmbHAtPmZsYWdzKTsKLQkJcXVldWVfc3VibWl0KGxwKTsKLQkJcmV0dXJuOwotCX0KLQotCS8qCi0JICogRExNIGRlbW90ZWQgdGhlIGxvY2sgdG8gTkwgYmVmb3JlIGl0IHdhcyBncmFudGVkIHNvIEdGUyBtdXN0IGJlCi0JICogdG9sZCBpdCBjYW5ub3QgY2FjaGUgZGF0YSBmb3IgdGhpcyBsb2NrLgotCSAqLwotCi0JaWYgKGxwLT5sa3NiLnNiX2ZsYWdzICYgRExNX1NCRl9ERU1PVEVEKQotCQlzZXRfYml0KExGTF9OT0NBQ0hFLCAmbHAtPmZsYWdzKTsKLQotb3V0OgotCS8qCi0JICogVGhpcyBpcyBhbiBpbnRlcm5hbCBsb2NrX2RsbSBsb2NrCi0JICovCi0KLQlpZiAodGVzdF9iaXQoTEZMX0lOTE9DSywgJmxwLT5mbGFncykpIHsKLQkJY2xlYXJfYml0KExGTF9OT0JMT0NLLCAmbHAtPmZsYWdzKTsKLQkJbHAtPmN1ciA9IGxwLT5yZXE7Ci0JCXdha2VfdXBfYXN0KGxwKTsKLQkJcmV0dXJuOwotCX0KLQotCS8qCi0JICogTm9ybWFsIGNvbXBsZXRpb24gb2YgYSBsb2NrIHJlcXVlc3QuICBUZWxsIEdGUyBpdCBub3cgaGFzIHRoZSBsb2NrLgotCSAqLwotCi0JY2xlYXJfYml0KExGTF9OT0JMT0NLLCAmbHAtPmZsYWdzKTsKLQlscC0+Y3VyID0gbHAtPnJlcTsKLQotCWFjYi5sY19uYW1lID0gbHAtPmxvY2tuYW1lOwotCWFjYi5sY19yZXQgfD0gZ2RsbV9tYWtlX2xtc3RhdGUobHAtPmN1cik7Ci0KLQlpZiAoIXRlc3RfYW5kX2NsZWFyX2JpdChMRkxfTk9DQUNIRSwgJmxwLT5mbGFncykgJiYKLQkgICAgKGxwLT5jdXIgPiBETE1fTE9DS19OTCkgJiYgKHByZXZfbW9kZSA+IERMTV9MT0NLX05MKSkKLQkJYWNiLmxjX3JldCB8PSBMTV9PVVRfQ0FDSEVBQkxFOwotCi0JbHMtPmZzY2IobHMtPnNkcCwgTE1fQ0JfQVNZTkMsICZhY2IpOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBub193b3JrKHN0cnVjdCBnZGxtX2xzICpscywgaW50IGJsb2NraW5nKQorc3RhdGljIGlubGluZSBpbnQgbm9fd29yayhzdHJ1Y3QgZ2RsbV9scyAqbHMpCiB7CiAJaW50IHJldDsKIAogCXNwaW5fbG9jaygmbHMtPmFzeW5jX2xvY2spOwotCXJldCA9IGxpc3RfZW1wdHkoJmxzLT5jb21wbGV0ZSkgJiYgbGlzdF9lbXB0eSgmbHMtPnN1Ym1pdCk7Ci0JaWYgKHJldCAmJiBibG9ja2luZykKLQkJcmV0ID0gbGlzdF9lbXB0eSgmbHMtPmJsb2NraW5nKTsKKwlyZXQgPSBsaXN0X2VtcHR5KCZscy0+c3VibWl0KTsKIAlzcGluX3VubG9jaygmbHMtPmFzeW5jX2xvY2spOwogCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgY2hlY2tfZHJvcChzdHJ1Y3QgZ2RsbV9scyAqbHMpCi17Ci0JaWYgKCFscy0+ZHJvcF9sb2Nrc19jb3VudCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAodGltZV9hZnRlcihqaWZmaWVzLCBscy0+ZHJvcF90aW1lICsgbHMtPmRyb3BfbG9ja3NfcGVyaW9kICogSFopKSB7Ci0JCWxzLT5kcm9wX3RpbWUgPSBqaWZmaWVzOwotCQlpZiAobHMtPmFsbF9sb2Nrc19jb3VudCA+PSBscy0+ZHJvcF9sb2Nrc19jb3VudCkKLQkJCXJldHVybiAxOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBnZGxtX3RocmVhZCh2b2lkICpkYXRhLCBpbnQgYmxpc3QpCitzdGF0aWMgaW50IGdkbG1fdGhyZWFkKHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGdkbG1fbHMgKmxzID0gKHN0cnVjdCBnZGxtX2xzICopIGRhdGE7CiAJc3RydWN0IGdkbG1fbG9jayAqbHAgPSBOVUxMOwotCXVpbnQ4X3QgY29tcGxldGUsIGJsb2NraW5nLCBzdWJtaXQsIGRyb3A7Ci0KLQkvKiBPbmx5IHRocmVhZDEgaXMgYWxsb3dlZCB0byBkbyBibG9ja2luZyBjYWxsYmFja3Mgc2luY2UgZ2ZzCi0JICAgbWF5IHdhaXQgZm9yIGEgY29tcGxldGlvbiBjYWxsYmFjayB3aXRoaW4gYSBibG9ja2luZyBjYi4gKi8KIAogCXdoaWxlICgha3RocmVhZF9zaG91bGRfc3RvcCgpKSB7CiAJCXdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShscy0+dGhyZWFkX3dhaXQsCi0JCQkJIW5vX3dvcmsobHMsIGJsaXN0KSB8fCBrdGhyZWFkX3Nob3VsZF9zdG9wKCkpOwotCi0JCWNvbXBsZXRlID0gYmxvY2tpbmcgPSBzdWJtaXQgPSBkcm9wID0gMDsKKwkJCQkhbm9fd29yayhscykgfHwga3RocmVhZF9zaG91bGRfc3RvcCgpKTsKIAogCQlzcGluX2xvY2soJmxzLT5hc3luY19sb2NrKTsKIAotCQlpZiAoYmxpc3QgJiYgIWxpc3RfZW1wdHkoJmxzLT5ibG9ja2luZykpIHsKLQkJCWxwID0gbGlzdF9lbnRyeShscy0+YmxvY2tpbmcubmV4dCwgc3RydWN0IGdkbG1fbG9jaywKLQkJCQkJYmxpc3QpOwotCQkJbGlzdF9kZWxfaW5pdCgmbHAtPmJsaXN0KTsKLQkJCWJsb2NraW5nID0gbHAtPmJhc3RfbW9kZTsKLQkJCWxwLT5iYXN0X21vZGUgPSAwOwotCQl9IGVsc2UgaWYgKCFsaXN0X2VtcHR5KCZscy0+Y29tcGxldGUpKSB7Ci0JCQlscCA9IGxpc3RfZW50cnkobHMtPmNvbXBsZXRlLm5leHQsIHN0cnVjdCBnZGxtX2xvY2ssCi0JCQkJCWNsaXN0KTsKLQkJCWxpc3RfZGVsX2luaXQoJmxwLT5jbGlzdCk7Ci0JCQljb21wbGV0ZSA9IDE7Ci0JCX0gZWxzZSBpZiAoIWxpc3RfZW1wdHkoJmxzLT5zdWJtaXQpKSB7CisJCWlmICghbGlzdF9lbXB0eSgmbHMtPnN1Ym1pdCkpIHsKIAkJCWxwID0gbGlzdF9lbnRyeShscy0+c3VibWl0Lm5leHQsIHN0cnVjdCBnZGxtX2xvY2ssCiAJCQkJCWRlbGF5X2xpc3QpOwogCQkJbGlzdF9kZWxfaW5pdCgmbHAtPmRlbGF5X2xpc3QpOwotCQkJc3VibWl0ID0gMTsKLQkJfQotCi0JCWRyb3AgPSBjaGVja19kcm9wKGxzKTsKLQkJc3Bpbl91bmxvY2soJmxzLT5hc3luY19sb2NrKTsKLQotCQlpZiAoY29tcGxldGUpCi0JCQlwcm9jZXNzX2NvbXBsZXRlKGxwKTsKLQotCQllbHNlIGlmIChibG9ja2luZykKLQkJCXByb2Nlc3NfYmxvY2tpbmcobHAsIGJsb2NraW5nKTsKLQotCQllbHNlIGlmIChzdWJtaXQpCisJCQlzcGluX3VubG9jaygmbHMtPmFzeW5jX2xvY2spOwogCQkJZ2RsbV9kb19sb2NrKGxwKTsKLQotCQlpZiAoZHJvcCkKLQkJCWxzLT5mc2NiKGxzLT5zZHAsIExNX0NCX0RST1BMT0NLUywgTlVMTCk7Ci0KLQkJc2NoZWR1bGUoKTsKKwkJCXNwaW5fbG9jaygmbHMtPmFzeW5jX2xvY2spOworCQl9CisJCXNwaW5fdW5sb2NrKCZscy0+YXN5bmNfbG9jayk7CiAJfQogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZ2RsbV90aHJlYWQxKHZvaWQgKmRhdGEpCi17Ci0JcmV0dXJuIGdkbG1fdGhyZWFkKGRhdGEsIDEpOwotfQotCi1zdGF0aWMgaW50IGdkbG1fdGhyZWFkMih2b2lkICpkYXRhKQotewotCXJldHVybiBnZGxtX3RocmVhZChkYXRhLCAwKTsKLX0KLQogaW50IGdkbG1faW5pdF90aHJlYWRzKHN0cnVjdCBnZGxtX2xzICpscykKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CiAJaW50IGVycm9yOwogCi0JcCA9IGt0aHJlYWRfcnVuKGdkbG1fdGhyZWFkMSwgbHMsICJsb2NrX2RsbTEiKTsKKwlwID0ga3RocmVhZF9ydW4oZ2RsbV90aHJlYWQsIGxzLCAibG9ja19kbG0iKTsKIAllcnJvciA9IElTX0VSUihwKTsKIAlpZiAoZXJyb3IpIHsKLQkJbG9nX2Vycm9yKCJjYW4ndCBzdGFydCBsb2NrX2RsbTEgdGhyZWFkICVkIiwgZXJyb3IpOworCQlsb2dfZXJyb3IoImNhbid0IHN0YXJ0IGxvY2tfZGxtIHRocmVhZCAlZCIsIGVycm9yKTsKIAkJcmV0dXJuIGVycm9yOwogCX0KLQlscy0+dGhyZWFkMSA9IHA7Ci0KLQlwID0ga3RocmVhZF9ydW4oZ2RsbV90aHJlYWQyLCBscywgImxvY2tfZGxtMiIpOwotCWVycm9yID0gSVNfRVJSKHApOwotCWlmIChlcnJvcikgewotCQlsb2dfZXJyb3IoImNhbid0IHN0YXJ0IGxvY2tfZGxtMiB0aHJlYWQgJWQiLCBlcnJvcik7Ci0JCWt0aHJlYWRfc3RvcChscy0+dGhyZWFkMSk7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0JbHMtPnRocmVhZDIgPSBwOworCWxzLT50aHJlYWQgPSBwOwogCiAJcmV0dXJuIDA7CiB9CiAKIHZvaWQgZ2RsbV9yZWxlYXNlX3RocmVhZHMoc3RydWN0IGdkbG1fbHMgKmxzKQogewotCWt0aHJlYWRfc3RvcChscy0+dGhyZWFkMSk7Ci0Ja3RocmVhZF9zdG9wKGxzLT50aHJlYWQyKTsKKwlrdGhyZWFkX3N0b3AobHMtPnRocmVhZCk7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL2dmczIvbG9ja2luZy9ub2xvY2svTWFrZWZpbGUgYi9mcy9nZnMyL2xvY2tpbmcvbm9sb2NrL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNWU5NzMwLi4wMDAwMDAwCi0tLSBhL2ZzL2dmczIvbG9ja2luZy9ub2xvY2svTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLW9iai0kKENPTkZJR19HRlMyX0ZTX0xPQ0tJTkdfTk9MT0NLKSArPSBsb2NrX25vbG9jay5vCi1sb2NrX25vbG9jay15IDo9IG1haW4ubwotCmRpZmYgLS1naXQgYS9mcy9nZnMyL2xvY2tpbmcvbm9sb2NrL21haW4uYyBiL2ZzL2dmczIvbG9ja2luZy9ub2xvY2svbWFpbi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODRhNWVjLi4wMDAwMDAwCi0tLSBhL2ZzL2dmczIvbG9ja2luZy9ub2xvY2svbWFpbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMjM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFNpc3RpbmEgU29mdHdhcmUsIEluYy4gIDE5OTctMjAwMyBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUgUmVkIEhhdCwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGNvcHlyaWdodGVkIG1hdGVyaWFsIGlzIG1hZGUgYXZhaWxhYmxlIHRvIGFueW9uZSB3aXNoaW5nIHRvIHVzZSwKLSAqIG1vZGlmeSwgY29weSwgb3IgcmVkaXN0cmlidXRlIGl0IHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zCi0gKiBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9sbV9pbnRlcmZhY2UuaD4KLQotc3RydWN0IG5vbG9ja19sb2Nrc3BhY2UgewotCXVuc2lnbmVkIGludCBubF9sdmJfc2l6ZTsKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbG1fbG9ja29wcyBub2xvY2tfb3BzOwotCi1zdGF0aWMgaW50IG5vbG9ja19tb3VudChjaGFyICp0YWJsZV9uYW1lLCBjaGFyICpob3N0X2RhdGEsCi0JCQlsbV9jYWxsYmFja190IGNiLCB2b2lkICpjYl9kYXRhLAotCQkJdW5zaWduZWQgaW50IG1pbl9sdmJfc2l6ZSwgaW50IGZsYWdzLAotCQkJc3RydWN0IGxtX2xvY2tzdHJ1Y3QgKmxvY2tzdHJ1Y3QsCi0JCQlzdHJ1Y3Qga29iamVjdCAqZnNrb2JqKQotewotCWNoYXIgKmM7Ci0JdW5zaWduZWQgaW50IGppZDsKLQlzdHJ1Y3Qgbm9sb2NrX2xvY2tzcGFjZSAqbmw7Ci0KLQljID0gc3Ryc3RyKGhvc3RfZGF0YSwgImppZD0iKTsKLQlpZiAoIWMpCi0JCWppZCA9IDA7Ci0JZWxzZSB7Ci0JCWMgKz0gNDsKLQkJc3NjYW5mKGMsICIldSIsICZqaWQpOwotCX0KLQotCW5sID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG5vbG9ja19sb2Nrc3BhY2UpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW5sKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW5sLT5ubF9sdmJfc2l6ZSA9IG1pbl9sdmJfc2l6ZTsKLQotCWxvY2tzdHJ1Y3QtPmxzX2ppZCA9IGppZDsKLQlsb2Nrc3RydWN0LT5sc19maXJzdCA9IDE7Ci0JbG9ja3N0cnVjdC0+bHNfbHZiX3NpemUgPSBtaW5fbHZiX3NpemU7Ci0JbG9ja3N0cnVjdC0+bHNfbG9ja3NwYWNlID0gbmw7Ci0JbG9ja3N0cnVjdC0+bHNfb3BzID0gJm5vbG9ja19vcHM7Ci0JbG9ja3N0cnVjdC0+bHNfZmxhZ3MgPSBMTV9MU0ZMQUdfTE9DQUw7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgbm9sb2NrX290aGVyc19tYXlfbW91bnQodm9pZCAqbG9ja3NwYWNlKQotewotfQotCi1zdGF0aWMgdm9pZCBub2xvY2tfdW5tb3VudCh2b2lkICpsb2Nrc3BhY2UpCi17Ci0Jc3RydWN0IG5vbG9ja19sb2Nrc3BhY2UgKm5sID0gbG9ja3NwYWNlOwotCWtmcmVlKG5sKTsKLX0KLQotc3RhdGljIHZvaWQgbm9sb2NrX3dpdGhkcmF3KHZvaWQgKmxvY2tzcGFjZSkKLXsKLX0KLQotLyoqCi0gKiBub2xvY2tfZ2V0X2xvY2sgLSBnZXQgYSBsbV9sb2NrX3QgZ2l2ZW4gYSBkZXNjcmlwdG9uIG9mIHRoZSBsb2NrCi0gKiBAbG9ja3NwYWNlOiB0aGUgbG9ja3NwYWNlIHRoZSBsb2NrIGxpdmVzIGluCi0gKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIGxvY2sKLSAqIEBsb2NrcDogcmV0dXJuIHRoZSBsbV9sb2NrX3QgaGVyZQotICoKLSAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgLUVYWFggb24gZmFpbHVyZQotICovCi0KLXN0YXRpYyBpbnQgbm9sb2NrX2dldF9sb2NrKHZvaWQgKmxvY2tzcGFjZSwgc3RydWN0IGxtX2xvY2tuYW1lICpuYW1lLAotCQkJICAgdm9pZCAqKmxvY2twKQotewotCSpsb2NrcCA9IGxvY2tzcGFjZTsKLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBub2xvY2tfcHV0X2xvY2sgLSBnZXQgcmlkIG9mIGEgbG9jayBzdHJ1Y3R1cmUKLSAqIEBsb2NrOiB0aGUgbG9jayB0byB0aHJvdyBhd2F5Ci0gKgotICovCi0KLXN0YXRpYyB2b2lkIG5vbG9ja19wdXRfbG9jayh2b2lkICpsb2NrKQotewotfQotCi0vKioKLSAqIG5vbG9ja19sb2NrIC0gYWNxdWlyZSBhIGxvY2sKLSAqIEBsb2NrOiB0aGUgbG9jayB0byBtYW5pcHVsYXRlCi0gKiBAY3VyX3N0YXRlOiB0aGUgY3VycmVudCBzdGF0ZQotICogQHJlcV9zdGF0ZTogdGhlIHJlcXVlc3RlZCBzdGF0ZQotICogQGZsYWdzOiBtb2RpZmllciBmbGFncwotICoKLSAqIFJldHVybnM6IEEgYml0bWFwIG9mIExNX09VVF8qCi0gKi8KLQotc3RhdGljIHVuc2lnbmVkIGludCBub2xvY2tfbG9jayh2b2lkICpsb2NrLCB1bnNpZ25lZCBpbnQgY3VyX3N0YXRlLAotCQkJCXVuc2lnbmVkIGludCByZXFfc3RhdGUsIHVuc2lnbmVkIGludCBmbGFncykKLXsKLQlyZXR1cm4gcmVxX3N0YXRlIHwgTE1fT1VUX0NBQ0hFQUJMRTsKLX0KLQotLyoqCi0gKiBub2xvY2tfdW5sb2NrIC0gdW5sb2NrIGEgbG9jawotICogQGxvY2s6IHRoZSBsb2NrIHRvIG1hbmlwdWxhdGUKLSAqIEBjdXJfc3RhdGU6IHRoZSBjdXJyZW50IHN0YXRlCi0gKgotICogUmV0dXJuczogMAotICovCi0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgbm9sb2NrX3VubG9jayh2b2lkICpsb2NrLCB1bnNpZ25lZCBpbnQgY3VyX3N0YXRlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBub2xvY2tfY2FuY2VsKHZvaWQgKmxvY2spCi17Ci19Ci0KLS8qKgotICogbm9sb2NrX2hvbGRfbHZiIC0gaG9sZCBvbiB0byBhIGxvY2sgdmFsdWUgYmxvY2sKLSAqIEBsb2NrOiB0aGUgbG9jayB0aGUgTFZCIGlzIGFzc29jaWF0ZWQgd2l0aAotICogQGx2YnA6IHJldHVybiB0aGUgbG1fbHZiX3QgaGVyZQotICoKLSAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgLUVYWFggb24gZmFpbHVyZQotICovCi0KLXN0YXRpYyBpbnQgbm9sb2NrX2hvbGRfbHZiKHZvaWQgKmxvY2ssIGNoYXIgKipsdmJwKQotewotCXN0cnVjdCBub2xvY2tfbG9ja3NwYWNlICpubCA9IGxvY2s7Ci0JaW50IGVycm9yID0gMDsKLQotCSpsdmJwID0ga3phbGxvYyhubC0+bmxfbHZiX3NpemUsIEdGUF9OT0ZTKTsKLQlpZiAoISpsdmJwKQotCQllcnJvciA9IC1FTk9NRU07Ci0KLQlyZXR1cm4gZXJyb3I7Ci19Ci0KLS8qKgotICogbm9sb2NrX3VuaG9sZF9sdmIgLSByZWxlYXNlIGEgTFZCCi0gKiBAbG9jazogdGhlIGxvY2sgdGhlIExWQiBpcyBhc3NvY2lhdGVkIHdpdGgKLSAqIEBsdmI6IHRoZSBsb2NrIHZhbHVlIGJsb2NrCi0gKgotICovCi0KLXN0YXRpYyB2b2lkIG5vbG9ja191bmhvbGRfbHZiKHZvaWQgKmxvY2ssIGNoYXIgKmx2YikKLXsKLQlrZnJlZShsdmIpOwotfQotCi1zdGF0aWMgaW50IG5vbG9ja19wbG9ja19nZXQodm9pZCAqbG9ja3NwYWNlLCBzdHJ1Y3QgbG1fbG9ja25hbWUgKm5hbWUsCi0JCQkgICAgc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBmaWxlX2xvY2sgKmZsKQotewotCXBvc2l4X3Rlc3RfbG9jayhmaWxlLCBmbCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBub2xvY2tfcGxvY2sodm9pZCAqbG9ja3NwYWNlLCBzdHJ1Y3QgbG1fbG9ja25hbWUgKm5hbWUsCi0JCQlzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGNtZCwgc3RydWN0IGZpbGVfbG9jayAqZmwpCi17Ci0JaW50IGVycm9yOwotCWVycm9yID0gcG9zaXhfbG9ja19maWxlX3dhaXQoZmlsZSwgZmwpOwotCXJldHVybiBlcnJvcjsKLX0KLQotc3RhdGljIGludCBub2xvY2tfcHVubG9jayh2b2lkICpsb2Nrc3BhY2UsIHN0cnVjdCBsbV9sb2NrbmFtZSAqbmFtZSwKLQkJCSAgc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBmaWxlX2xvY2sgKmZsKQotewotCWludCBlcnJvcjsKLQllcnJvciA9IHBvc2l4X2xvY2tfZmlsZV93YWl0KGZpbGUsIGZsKTsKLQlyZXR1cm4gZXJyb3I7Ci19Ci0KLXN0YXRpYyB2b2lkIG5vbG9ja19yZWNvdmVyeV9kb25lKHZvaWQgKmxvY2tzcGFjZSwgdW5zaWduZWQgaW50IGppZCwKLQkJCQkgdW5zaWduZWQgaW50IG1lc3NhZ2UpCi17Ci19Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbG1fbG9ja29wcyBub2xvY2tfb3BzID0gewotCS5sbV9wcm90b19uYW1lID0gImxvY2tfbm9sb2NrIiwKLQkubG1fbW91bnQgPSBub2xvY2tfbW91bnQsCi0JLmxtX290aGVyc19tYXlfbW91bnQgPSBub2xvY2tfb3RoZXJzX21heV9tb3VudCwKLQkubG1fdW5tb3VudCA9IG5vbG9ja191bm1vdW50LAotCS5sbV93aXRoZHJhdyA9IG5vbG9ja193aXRoZHJhdywKLQkubG1fZ2V0X2xvY2sgPSBub2xvY2tfZ2V0X2xvY2ssCi0JLmxtX3B1dF9sb2NrID0gbm9sb2NrX3B1dF9sb2NrLAotCS5sbV9sb2NrID0gbm9sb2NrX2xvY2ssCi0JLmxtX3VubG9jayA9IG5vbG9ja191bmxvY2ssCi0JLmxtX2NhbmNlbCA9IG5vbG9ja19jYW5jZWwsCi0JLmxtX2hvbGRfbHZiID0gbm9sb2NrX2hvbGRfbHZiLAotCS5sbV91bmhvbGRfbHZiID0gbm9sb2NrX3VuaG9sZF9sdmIsCi0JLmxtX3Bsb2NrX2dldCA9IG5vbG9ja19wbG9ja19nZXQsCi0JLmxtX3Bsb2NrID0gbm9sb2NrX3Bsb2NrLAotCS5sbV9wdW5sb2NrID0gbm9sb2NrX3B1bmxvY2ssCi0JLmxtX3JlY292ZXJ5X2RvbmUgPSBub2xvY2tfcmVjb3ZlcnlfZG9uZSwKLQkubG1fb3duZXIgPSBUSElTX01PRFVMRSwKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGluaXRfbm9sb2NrKHZvaWQpCi17Ci0JaW50IGVycm9yOwotCi0JZXJyb3IgPSBnZnMyX3JlZ2lzdGVyX2xvY2twcm90bygmbm9sb2NrX29wcyk7Ci0JaWYgKGVycm9yKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcKLQkJICAgICAgICJsb2NrX25vbG9jazogY2FuJ3QgcmVnaXN0ZXIgcHJvdG9jb2w6ICVkXG4iLCBlcnJvcik7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0KLQlwcmludGsoS0VSTl9JTkZPCi0JICAgICAgICJMb2NrX05vbG9jayAoYnVpbHQgJXMgJXMpIGluc3RhbGxlZFxuIiwgX19EQVRFX18sIF9fVElNRV9fKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgX19leGl0IGV4aXRfbm9sb2NrKHZvaWQpCi17Ci0JZ2ZzMl91bnJlZ2lzdGVyX2xvY2twcm90bygmbm9sb2NrX29wcyk7Ci19Ci0KLW1vZHVsZV9pbml0KGluaXRfbm9sb2NrKTsKLW1vZHVsZV9leGl0KGV4aXRfbm9sb2NrKTsKLQotTU9EVUxFX0RFU0NSSVBUSU9OKCJHRlMgTm9sb2NrIExvY2tpbmcgTW9kdWxlIik7Ci1NT0RVTEVfQVVUSE9SKCJSZWQgSGF0LCBJbmMuIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KZGlmZiAtLWdpdCBhL2ZzL2dmczIvbG9nLmMgYi9mcy9nZnMyL2xvZy5jCmluZGV4IDU0ODI2NGIuLjZjNmFmOWYgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvbG9nLmMKKysrIGIvZnMvZ2ZzMi9sb2cuYwpAQCAtODcsNiArODcsOCBAQAogICovCiAKIHN0YXRpYyB2b2lkIGdmczJfYWlsMV9zdGFydF9vbmUoc3RydWN0IGdmczJfc2JkICpzZHAsIHN0cnVjdCBnZnMyX2FpbCAqYWkpCitfX3JlbGVhc2VzKCZzZHAtPnNkX2xvZ19sb2NrKQorX19hY3F1aXJlcygmc2RwLT5zZF9sb2dfbG9jaykKIHsKIAlzdHJ1Y3QgZ2ZzMl9idWZkYXRhICpiZCwgKnM7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvbG9nLmggYi9mcy9nZnMyL2xvZy5oCmluZGV4IDc3MTE1MjguLjdjNjQ1MTAgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvbG9nLmgKKysrIGIvZnMvZ2ZzMi9sb2cuaApAQCAtMjEsNiArMjEsNyBAQAogICovCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBnZnMyX2xvZ19sb2NrKHN0cnVjdCBnZnMyX3NiZCAqc2RwKQorX19hY3F1aXJlcygmc2RwLT5zZF9sb2dfbG9jaykKIHsKIAlzcGluX2xvY2soJnNkcC0+c2RfbG9nX2xvY2spOwogfQpAQCAtMzIsNiArMzMsNyBAQAogICovCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBnZnMyX2xvZ191bmxvY2soc3RydWN0IGdmczJfc2JkICpzZHApCitfX3JlbGVhc2VzKCZzZHAtPnNkX2xvZ19sb2NrKQogewogCXNwaW5fdW5sb2NrKCZzZHAtPnNkX2xvZ19sb2NrKTsKIH0KZGlmZiAtLWdpdCBhL2ZzL2dmczIvbWFpbi5jIGIvZnMvZ2ZzMi9tYWluLmMKaW5kZXggMDUzZTJlYi4uYmNjNjY4ZCAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9tYWluLmMKKysrIGIvZnMvZ2ZzMi9tYWluLmMKQEAgLTQwLDggKzQwLDYgQEAKIAlJTklUX0hMSVNUX05PREUoJmdsLT5nbF9saXN0KTsKIAlzcGluX2xvY2tfaW5pdCgmZ2wtPmdsX3NwaW4pOwogCUlOSVRfTElTVF9IRUFEKCZnbC0+Z2xfaG9sZGVycyk7Ci0JSU5JVF9MSVNUX0hFQUQoJmdsLT5nbF93YWl0ZXJzMSk7Ci0JSU5JVF9MSVNUX0hFQUQoJmdsLT5nbF93YWl0ZXJzMyk7CiAJZ2wtPmdsX2x2YiA9IE5VTEw7CiAJYXRvbWljX3NldCgmZ2wtPmdsX2x2Yl9jb3VudCwgMCk7CiAJSU5JVF9MSVNUX0hFQUQoJmdsLT5nbF9yZWNsYWltKTsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvbWV0YV9pby5jIGIvZnMvZ2ZzMi9tZXRhX2lvLmMKaW5kZXggNzhkNzVmOC4uMDk4NTM2MiAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9tZXRhX2lvLmMKKysrIGIvZnMvZ2ZzMi9tZXRhX2lvLmMKQEAgLTEyOSw3ICsxMjksNyBAQAogfQogCiAvKioKLSAqIGdldGJ1ZiAtIEdldCBhIGJ1ZmZlciB3aXRoIGEgZ2l2ZW4gYWRkcmVzcyBzcGFjZQorICogZ2ZzMl9nZXRidWYgLSBHZXQgYSBidWZmZXIgd2l0aCBhIGdpdmVuIGFkZHJlc3Mgc3BhY2UKICAqIEBnbDogdGhlIGdsb2NrCiAgKiBAYmxrbm86IHRoZSBibG9jayBudW1iZXIgKGZpbGVzeXN0ZW0gc2NvcGUpCiAgKiBAY3JlYXRlOiAxIGlmIHRoZSBidWZmZXIgc2hvdWxkIGJlIGNyZWF0ZWQKQEAgLTEzNyw3ICsxMzcsNyBAQAogICogUmV0dXJuczogdGhlIGJ1ZmZlcgogICovCiAKLXN0YXRpYyBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmdldGJ1ZihzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIHU2NCBibGtubywgaW50IGNyZWF0ZSkKK3N0cnVjdCBidWZmZXJfaGVhZCAqZ2ZzMl9nZXRidWYoc3RydWN0IGdmczJfZ2xvY2sgKmdsLCB1NjQgYmxrbm8sIGludCBjcmVhdGUpCiB7CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBnbC0+Z2xfYXNwYWNlLT5pX21hcHBpbmc7CiAJc3RydWN0IGdmczJfc2JkICpzZHAgPSBnbC0+Z2xfc2JkOwpAQCAtMjA1LDcgKzIwNSw3IEBACiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmdmczJfbWV0YV9uZXcoc3RydWN0IGdmczJfZ2xvY2sgKmdsLCB1NjQgYmxrbm8pCiB7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKLQliaCA9IGdldGJ1ZihnbCwgYmxrbm8sIENSRUFURSk7CisJYmggPSBnZnMyX2dldGJ1ZihnbCwgYmxrbm8sIENSRUFURSk7CiAJbWV0YV9wcmVwX25ldyhiaCk7CiAJcmV0dXJuIGJoOwogfQpAQCAtMjIzLDcgKzIyMyw3IEBACiBpbnQgZ2ZzMl9tZXRhX3JlYWQoc3RydWN0IGdmczJfZ2xvY2sgKmdsLCB1NjQgYmxrbm8sIGludCBmbGFncywKIAkJICAgc3RydWN0IGJ1ZmZlcl9oZWFkICoqYmhwKQogewotCSpiaHAgPSBnZXRidWYoZ2wsIGJsa25vLCBDUkVBVEUpOworCSpiaHAgPSBnZnMyX2dldGJ1ZihnbCwgYmxrbm8sIENSRUFURSk7CiAJaWYgKCFidWZmZXJfdXB0b2RhdGUoKmJocCkpIHsKIAkJbGxfcndfYmxvY2soUkVBRF9NRVRBLCAxLCBiaHApOwogCQlpZiAoZmxhZ3MgJiBESU9fV0FJVCkgewpAQCAtMzQ2LDcgKzM0Niw3IEBACiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKIAogCXdoaWxlIChibGVuKSB7Ci0JCWJoID0gZ2V0YnVmKGlwLT5pX2dsLCBic3RhcnQsIE5PX0NSRUFURSk7CisJCWJoID0gZ2ZzMl9nZXRidWYoaXAtPmlfZ2wsIGJzdGFydCwgTk9fQ1JFQVRFKTsKIAkJaWYgKGJoKSB7CiAJCQlsb2NrX2J1ZmZlcihiaCk7CiAJCQlnZnMyX2xvZ19sb2NrKHNkcCk7CkBAIC00MjEsNyArNDIxLDcgQEAKIAlpZiAoZXh0bGVuID4gbWF4X3JhKQogCQlleHRsZW4gPSBtYXhfcmE7CiAKLQlmaXJzdF9iaCA9IGdldGJ1ZihnbCwgZGJsb2NrLCBDUkVBVEUpOworCWZpcnN0X2JoID0gZ2ZzMl9nZXRidWYoZ2wsIGRibG9jaywgQ1JFQVRFKTsKIAogCWlmIChidWZmZXJfdXB0b2RhdGUoZmlyc3RfYmgpKQogCQlnb3RvIG91dDsKQEAgLTQzMiw3ICs0MzIsNyBAQAogCWV4dGxlbi0tOwogCiAJd2hpbGUgKGV4dGxlbikgewotCQliaCA9IGdldGJ1ZihnbCwgZGJsb2NrLCBDUkVBVEUpOworCQliaCA9IGdmczJfZ2V0YnVmKGdsLCBkYmxvY2ssIENSRUFURSk7CiAKIAkJaWYgKCFidWZmZXJfdXB0b2RhdGUoYmgpICYmICFidWZmZXJfbG9ja2VkKGJoKSkKIAkJCWxsX3J3X2Jsb2NrKFJFQURBLCAxLCAmYmgpOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9tZXRhX2lvLmggYi9mcy9nZnMyL21ldGFfaW8uaAppbmRleCA3M2UzYjFjLi5iMWE1ZjM2IDEwMDY0NAotLS0gYS9mcy9nZnMyL21ldGFfaW8uaAorKysgYi9mcy9nZnMyL21ldGFfaW8uaApAQCAtNDcsNiArNDcsNyBAQAogaW50IGdmczJfbWV0YV9yZWFkKHN0cnVjdCBnZnMyX2dsb2NrICpnbCwgdTY0IGJsa25vLAogCQkgICBpbnQgZmxhZ3MsIHN0cnVjdCBidWZmZXJfaGVhZCAqKmJocCk7CiBpbnQgZ2ZzMl9tZXRhX3dhaXQoc3RydWN0IGdmczJfc2JkICpzZHAsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpOworc3RydWN0IGJ1ZmZlcl9oZWFkICpnZnMyX2dldGJ1ZihzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIHU2NCBibGtubywgaW50IGNyZWF0ZSk7CiAKIHZvaWQgZ2ZzMl9hdHRhY2hfYnVmZGF0YShzdHJ1Y3QgZ2ZzMl9nbG9jayAqZ2wsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsCiAJCQkgaW50IG1ldGEpOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9vcHNfYWRkcmVzcy5jIGIvZnMvZ2ZzMi9vcHNfYWRkcmVzcy5jCmluZGV4IGY1NTM5NGUuLmU2NGExYjAgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvb3BzX2FkZHJlc3MuYworKysgYi9mcy9nZnMyL29wc19hZGRyZXNzLmMKQEAgLTQ5OSwzNCArNDk5LDM0IEBACiAgKiBAZmlsZTogVGhlIGZpbGUgdG8gcmVhZAogICogQHBhZ2U6IFRoZSBwYWdlIG9mIHRoZSBmaWxlCiAgKgotICogVGhpcyBkZWFscyB3aXRoIHRoZSBsb2NraW5nIHJlcXVpcmVkLiBXZSB1c2UgYSB0cnlsb2NrIGluIG9yZGVyIHRvCi0gKiBhdm9pZCB0aGUgcGFnZSBsb2NrIC8gZ2xvY2sgb3JkZXJpbmcgcHJvYmxlbXMgcmV0dXJuaW5nIEFPUF9UUlVOQ0FURURfUEFHRQotICogaW4gdGhlIGV2ZW50IHRoYXQgd2UgYXJlIHVuYWJsZSB0byBnZXQgdGhlIGxvY2suCisgKiBUaGlzIGRlYWxzIHdpdGggdGhlIGxvY2tpbmcgcmVxdWlyZWQuIFdlIGhhdmUgdG8gdW5sb2NrIGFuZAorICogcmVsb2NrIHRoZSBwYWdlIGluIG9yZGVyIHRvIGdldCB0aGUgbG9ja2luZyBpbiB0aGUgcmlnaHQKKyAqIG9yZGVyLgogICovCiAKIHN0YXRpYyBpbnQgZ2ZzMl9yZWFkcGFnZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UpCiB7Ci0Jc3RydWN0IGdmczJfaW5vZGUgKmlwID0gR0ZTMl9JKHBhZ2UtPm1hcHBpbmctPmhvc3QpOwotCXN0cnVjdCBnZnMyX2hvbGRlciAqZ2g7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBwYWdlLT5tYXBwaW5nOworCXN0cnVjdCBnZnMyX2lub2RlICppcCA9IEdGUzJfSShtYXBwaW5nLT5ob3N0KTsKKwlzdHJ1Y3QgZ2ZzMl9ob2xkZXIgZ2g7CiAJaW50IGVycm9yOwogCi0JZ2ggPSBnZnMyX2dsb2NrX2lzX2xvY2tlZF9ieV9tZShpcC0+aV9nbCk7Ci0JaWYgKCFnaCkgewotCQlnaCA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBnZnMyX2hvbGRlciksIEdGUF9OT0ZTKTsKLQkJaWYgKCFnaCkKLQkJCXJldHVybiAtRU5PQlVGUzsKLQkJZ2ZzMl9ob2xkZXJfaW5pdChpcC0+aV9nbCwgTE1fU1RfU0hBUkVELCBHTF9BVElNRSwgZ2gpOworCXVubG9ja19wYWdlKHBhZ2UpOworCWdmczJfaG9sZGVyX2luaXQoaXAtPmlfZ2wsIExNX1NUX1NIQVJFRCwgR0xfQVRJTUUsICZnaCk7CisJZXJyb3IgPSBnZnMyX2dsb2NrX25xX2F0aW1lKCZnaCk7CisJaWYgKHVubGlrZWx5KGVycm9yKSkKKwkJZ290byBvdXQ7CisJZXJyb3IgPSBBT1BfVFJVTkNBVEVEX1BBR0U7CisJbG9ja19wYWdlKHBhZ2UpOworCWlmIChwYWdlLT5tYXBwaW5nID09IG1hcHBpbmcgJiYgIVBhZ2VVcHRvZGF0ZShwYWdlKSkKKwkJZXJyb3IgPSBfX2dmczJfcmVhZHBhZ2UoZmlsZSwgcGFnZSk7CisJZWxzZQogCQl1bmxvY2tfcGFnZShwYWdlKTsKLQkJZXJyb3IgPSBnZnMyX2dsb2NrX25xX2F0aW1lKGdoKTsKLQkJaWYgKGxpa2VseShlcnJvciAhPSAwKSkKLQkJCWdvdG8gb3V0OwotCQlyZXR1cm4gQU9QX1RSVU5DQVRFRF9QQUdFOwotCX0KLQllcnJvciA9IF9fZ2ZzMl9yZWFkcGFnZShmaWxlLCBwYWdlKTsKLQlnZnMyX2dsb2NrX2RxKGdoKTsKKwlnZnMyX2dsb2NrX2RxKCZnaCk7CiBvdXQ6Ci0JZ2ZzMl9ob2xkZXJfdW5pbml0KGdoKTsKLQlrZnJlZShnaCk7CisJZ2ZzMl9ob2xkZXJfdW5pbml0KCZnaCk7CisJaWYgKGVycm9yICYmIGVycm9yICE9IEFPUF9UUlVOQ0FURURfUEFHRSkKKwkJbG9ja19wYWdlKHBhZ2UpOwogCXJldHVybiBlcnJvcjsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9vcHNfZmlsZS5jIGIvZnMvZ2ZzMi9vcHNfZmlsZS5jCmluZGV4IGUxYjdkNTIuLmU5YTM2NmQgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvb3BzX2ZpbGUuYworKysgYi9mcy9nZnMyL29wc19maWxlLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC91aW8uaD4KICNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9nZnMyX29uZGlzay5oPgogI2luY2x1ZGUgPGxpbnV4L2V4dDJfZnMuaD4KQEAgLTYyLDExICs2MywxMSBAQAogCQllcnJvciA9IGdmczJfZ2xvY2tfbnFfaW5pdChpcC0+aV9nbCwgTE1fU1RfU0hBUkVELCBMTV9GTEFHX0FOWSwKIAkJCQkJICAgJmlfZ2gpOwogCQlpZiAoIWVycm9yKSB7Ci0JCQllcnJvciA9IHJlbW90ZV9sbHNlZWsoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOworCQkJZXJyb3IgPSBnZW5lcmljX2ZpbGVfbGxzZWVrX3VubG9ja2VkKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKIAkJCWdmczJfZ2xvY2tfZHFfdW5pbml0KCZpX2doKTsKIAkJfQogCX0gZWxzZQotCQllcnJvciA9IHJlbW90ZV9sbHNlZWsoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOworCQllcnJvciA9IGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOwogCiAJcmV0dXJuIGVycm9yOwogfQpAQCAtMTMzLDcgKzEzNCw2IEBACiAJWzddID0gR0ZTMl9ESUZfTk9BVElNRSwKIAlbMTJdID0gR0ZTMl9ESUZfRVhIQVNILAogCVsxNF0gPSBHRlMyX0RJRl9JTkhFUklUX0pEQVRBLAotCVsyMF0gPSBHRlMyX0RJRl9JTkhFUklUX0RJUkVDVElPLAogfTsKIAogc3RhdGljIGNvbnN0IHUzMiBnZnMyX3RvX2ZzZmxhZ3NbMzJdID0gewpAQCAtMTQyLDcgKzE0Miw2IEBACiAJW2dmczJmbF9BcHBlbmRPbmx5XSA9IEZTX0FQUEVORF9GTCwKIAlbZ2ZzMmZsX05vQXRpbWVdID0gRlNfTk9BVElNRV9GTCwKIAlbZ2ZzMmZsX0V4SGFzaF0gPSBGU19JTkRFWF9GTCwKLQlbZ2ZzMmZsX0luaGVyaXREaXJlY3Rpb10gPSBGU19ESVJFQ1RJT19GTCwKIAlbZ2ZzMmZsX0luaGVyaXRKZGF0YV0gPSBGU19KT1VSTkFMX0RBVEFfRkwsCiB9OwogCkBAIC0xNjAsMTIgKzE1OSw4IEBACiAJCXJldHVybiBlcnJvcjsKIAogCWZzZmxhZ3MgPSBmc2ZsYWdzX2N2dChnZnMyX3RvX2ZzZmxhZ3MsIGlwLT5pX2RpLmRpX2ZsYWdzKTsKLQlpZiAoIVNfSVNESVIoaW5vZGUtPmlfbW9kZSkpIHsKLQkJaWYgKGlwLT5pX2RpLmRpX2ZsYWdzICYgR0ZTMl9ESUZfSkRBVEEpCi0JCQlmc2ZsYWdzIHw9IEZTX0pPVVJOQUxfREFUQV9GTDsKLQkJaWYgKGlwLT5pX2RpLmRpX2ZsYWdzICYgR0ZTMl9ESUZfRElSRUNUSU8pCi0JCQlmc2ZsYWdzIHw9IEZTX0RJUkVDVElPX0ZMOwotCX0KKwlpZiAoIVNfSVNESVIoaW5vZGUtPmlfbW9kZSkgJiYgaXAtPmlfZGkuZGlfZmxhZ3MgJiBHRlMyX0RJRl9KREFUQSkKKwkJZnNmbGFncyB8PSBGU19KT1VSTkFMX0RBVEFfRkw7CiAJaWYgKHB1dF91c2VyKGZzZmxhZ3MsIHB0cikpCiAJCWVycm9yID0gLUVGQVVMVDsKIApAQCAtMTk0LDEzICsxODksMTEgQEAKIAogLyogRmxhZ3MgdGhhdCBjYW4gYmUgc2V0IGJ5IHVzZXIgc3BhY2UgKi8KICNkZWZpbmUgR0ZTMl9GTEFHU19VU0VSX1NFVCAoR0ZTMl9ESUZfSkRBVEF8CQkJXAotCQkJICAgICBHRlMyX0RJRl9ESVJFQ1RJT3wJCQlcCiAJCQkgICAgIEdGUzJfRElGX0lNTVVUQUJMRXwJCVwKIAkJCSAgICAgR0ZTMl9ESUZfQVBQRU5ET05MWXwJCVwKIAkJCSAgICAgR0ZTMl9ESUZfTk9BVElNRXwJCQlcCiAJCQkgICAgIEdGUzJfRElGX1NZTkN8CQkJXAogCQkJICAgICBHRlMyX0RJRl9TWVNURU18CQkJXAotCQkJICAgICBHRlMyX0RJRl9JTkhFUklUX0RJUkVDVElPfAkJXAogCQkJICAgICBHRlMyX0RJRl9JTkhFUklUX0pEQVRBKQogCiAvKioKQEAgLTIyMCwxMCArMjEzLDE0IEBACiAJaW50IGVycm9yOwogCXUzMiBuZXdfZmxhZ3MsIGZsYWdzOwogCi0JZXJyb3IgPSBnZnMyX2dsb2NrX25xX2luaXQoaXAtPmlfZ2wsIExNX1NUX0VYQ0xVU0lWRSwgMCwgJmdoKTsKKwllcnJvciA9IG1udF93YW50X3dyaXRlKGZpbHAtPmZfcGF0aC5tbnQpOwogCWlmIChlcnJvcikKIAkJcmV0dXJuIGVycm9yOwogCisJZXJyb3IgPSBnZnMyX2dsb2NrX25xX2luaXQoaXAtPmlfZ2wsIExNX1NUX0VYQ0xVU0lWRSwgMCwgJmdoKTsKKwlpZiAoZXJyb3IpCisJCWdvdG8gb3V0X2Ryb3Bfd3JpdGU7CisKIAlmbGFncyA9IGlwLT5pX2RpLmRpX2ZsYWdzOwogCW5ld19mbGFncyA9IChmbGFncyAmIH5tYXNrKSB8IChyZXFmbGFncyAmIG1hc2spOwogCWlmICgobmV3X2ZsYWdzIF4gZmxhZ3MpID09IDApCkBAIC0yNDIsNyArMjM5LDcgQEAKIAkgICAgIWNhcGFibGUoQ0FQX0xJTlVYX0lNTVVUQUJMRSkpCiAJCWdvdG8gb3V0OwogCWlmICghSVNfSU1NVVRBQkxFKGlub2RlKSkgewotCQllcnJvciA9IHBlcm1pc3Npb24oaW5vZGUsIE1BWV9XUklURSwgTlVMTCk7CisJCWVycm9yID0gZ2ZzMl9wZXJtaXNzaW9uKGlub2RlLCBNQVlfV1JJVEUpOwogCQlpZiAoZXJyb3IpCiAJCQlnb3RvIG91dDsKIAl9CkBAIC0yNzIsNiArMjY5LDggQEAKIAlnZnMyX3RyYW5zX2VuZChzZHApOwogb3V0OgogCWdmczJfZ2xvY2tfZHFfdW5pbml0KCZnaCk7CitvdXRfZHJvcF93cml0ZToKKwltbnRfZHJvcF93cml0ZShmaWxwLT5mX3BhdGgubW50KTsKIAlyZXR1cm4gZXJyb3I7CiB9CiAKQEAgLTI4NSw4ICsyODQsNiBAQAogCWlmICghU19JU0RJUihpbm9kZS0+aV9tb2RlKSkgewogCQlpZiAoZ2ZzZmxhZ3MgJiBHRlMyX0RJRl9JTkhFUklUX0pEQVRBKQogCQkJZ2ZzZmxhZ3MgXj0gKEdGUzJfRElGX0pEQVRBIHwgR0ZTMl9ESUZfSU5IRVJJVF9KREFUQSk7Ci0JCWlmIChnZnNmbGFncyAmIEdGUzJfRElGX0lOSEVSSVRfRElSRUNUSU8pCi0JCQlnZnNmbGFncyBePSAoR0ZTMl9ESUZfRElSRUNUSU8gfCBHRlMyX0RJRl9JTkhFUklUX0RJUkVDVElPKTsKIAkJcmV0dXJuIGRvX2dmczJfc2V0X2ZsYWdzKGZpbHAsIGdmc2ZsYWdzLCB+MCk7CiAJfQogCXJldHVybiBkb19nZnMyX3NldF9mbGFncyhmaWxwLCBnZnNmbGFncywgfkdGUzJfRElGX0pEQVRBKTsKQEAgLTQ4NywxMSArNDg0LDYgQEAKIAkJCWdvdG8gZmFpbF9ndW5sb2NrOwogCQl9CiAKLQkJLyogTGlzdGVuIHRvIHRoZSBEaXJlY3QgSS9PIGZsYWcgKi8KLQotCQlpZiAoaXAtPmlfZGkuZGlfZmxhZ3MgJiBHRlMyX0RJRl9ESVJFQ1RJTykKLQkJCWZpbGUtPmZfZmxhZ3MgfD0gT19ESVJFQ1Q7Ci0KIAkJZ2ZzMl9nbG9ja19kcV91bmluaXQoJmlfZ2gpOwogCX0KIApAQCAtNjY5LDggKzY2MSw3IEBACiAJaW50IGVycm9yID0gMDsKIAogCXN0YXRlID0gKGZsLT5mbF90eXBlID09IEZfV1JMQ0spID8gTE1fU1RfRVhDTFVTSVZFIDogTE1fU1RfU0hBUkVEOwotCWZsYWdzID0gKElTX1NFVExLVyhjbWQpID8gMCA6IExNX0ZMQUdfVFJZKSB8IEdMX0VYQUNUIHwgR0xfTk9DQUNIRSAKLQkJfCBHTF9GTE9DSzsKKwlmbGFncyA9IChJU19TRVRMS1coY21kKSA/IDAgOiBMTV9GTEFHX1RSWSkgfCBHTF9FWEFDVCB8IEdMX05PQ0FDSEU7CiAKIAltdXRleF9sb2NrKCZmcC0+Zl9mbF9tdXRleCk7CiAKQEAgLTY4Myw5ICs2NzQsOCBAQAogCQlnZnMyX2dsb2NrX2RxX3dhaXQoZmxfZ2gpOwogCQlnZnMyX2hvbGRlcl9yZWluaXQoc3RhdGUsIGZsYWdzLCBmbF9naCk7CiAJfSBlbHNlIHsKLQkJZXJyb3IgPSBnZnMyX2dsb2NrX2dldChHRlMyX1NCKCZpcC0+aV9pbm9kZSksCi0JCQkJICAgICAgaXAtPmlfbm9fYWRkciwgJmdmczJfZmxvY2tfZ2xvcHMsCi0JCQkJICAgICAgQ1JFQVRFLCAmZ2wpOworCQllcnJvciA9IGdmczJfZ2xvY2tfZ2V0KEdGUzJfU0IoJmlwLT5pX2lub2RlKSwgaXAtPmlfbm9fYWRkciwKKwkJCQkgICAgICAgJmdmczJfZmxvY2tfZ2xvcHMsIENSRUFURSwgJmdsKTsKIAkJaWYgKGVycm9yKQogCQkJZ290byBvdXQ7CiAJCWdmczJfaG9sZGVyX2luaXQoZ2wsIHN0YXRlLCBmbGFncywgZmxfZ2gpOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9vcHNfZnN0eXBlLmMgYi9mcy9nZnMyL29wc19mc3R5cGUuYwppbmRleCBiMjAyOGM4Li5iNGQxZDY0IDEwMDY0NAotLS0gYS9mcy9nZnMyL29wc19mc3R5cGUuYworKysgYi9mcy9nZnMyL29wc19mc3R5cGUuYwpAQCAtNjQsNyArNjQsNiBAQAogCW11dGV4X2luaXQoJnNkcC0+c2RfcmluZGV4X211dGV4KTsKIAlJTklUX0xJU1RfSEVBRCgmc2RwLT5zZF9yaW5kZXhfbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJnNkcC0+c2RfcmluZGV4X21ydV9saXN0KTsKLQlJTklUX0xJU1RfSEVBRCgmc2RwLT5zZF9yaW5kZXhfcmVjZW50X2xpc3QpOwogCiAJSU5JVF9MSVNUX0hFQUQoJnNkcC0+c2RfamluZGV4X2xpc3QpOwogCXNwaW5fbG9ja19pbml0KCZzZHAtPnNkX2ppbmRleF9zcGluKTsKQEAgLTM2NCw2ICszNjMsOCBAQAogCiBzdGF0aWMgdm9pZCBnZnMyX2xtX290aGVyc19tYXlfbW91bnQoc3RydWN0IGdmczJfc2JkICpzZHApCiB7CisJaWYgKCFzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9vdGhlcnNfbWF5X21vdW50KQorCQlyZXR1cm47CiAJaWYgKGxpa2VseSghdGVzdF9iaXQoU0RGX1NIVVRET1dOLCAmc2RwLT5zZF9mbGFncykpKQogCQlzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9vdGhlcnNfbWF5X21vdW50KAogCQkJCQlzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfbG9ja3NwYWNlKTsKQEAgLTc0MSw4ICs3NDIsNyBAQAogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAoZ2ZzMl9hc3NlcnRfd2FybihzZHAsIHNkcC0+c2RfbG9ja3N0cnVjdC5sc19sb2Nrc3BhY2UpIHx8Ci0JICAgIGdmczJfYXNzZXJ0X3dhcm4oc2RwLCBzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzKSB8fAorCWlmIChnZnMyX2Fzc2VydF93YXJuKHNkcCwgc2RwLT5zZF9sb2Nrc3RydWN0LmxzX29wcykgfHwKIAkgICAgZ2ZzMl9hc3NlcnRfd2FybihzZHAsIHNkcC0+c2RfbG9ja3N0cnVjdC5sc19sdmJfc2l6ZSA+PQogCQkJCSAgR0ZTMl9NSU5fTFZCX1NJWkUpKSB7CiAJCWdmczJfdW5tb3VudF9sb2NrcHJvdG8oJnNkcC0+c2RfbG9ja3N0cnVjdCk7CkBAIC04NzMsNyArODczLDcgQEAKIGZhaWxfbG9ja2luZzoKIAlpbml0X2xvY2tpbmcoc2RwLCAmbW91bnRfZ2gsIFVORE8pOwogZmFpbF9sbToKLQlnZnMyX2dsX2hhc2hfY2xlYXIoc2RwLCBXQUlUKTsKKwlnZnMyX2dsX2hhc2hfY2xlYXIoc2RwKTsKIAlnZnMyX2xtX3VubW91bnQoc2RwKTsKIAl3aGlsZSAoaW52YWxpZGF0ZV9pbm9kZXMoc2IpKQogCQl5aWVsZCgpOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9vcHNfaW5vZGUuYyBiL2ZzL2dmczIvb3BzX2lub2RlLmMKaW5kZXggMjY4NmFkNC4uMWUyNTJkZiAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9vcHNfaW5vZGUuYworKysgYi9mcy9nZnMyL29wc19pbm9kZS5jCkBAIC0xNjMsNyArMTYzLDcgQEAKIAlpZiAoZXJyb3IpCiAJCWdvdG8gb3V0OwogCi0JZXJyb3IgPSBwZXJtaXNzaW9uKGRpciwgTUFZX1dSSVRFIHwgTUFZX0VYRUMsIE5VTEwpOworCWVycm9yID0gZ2ZzMl9wZXJtaXNzaW9uKGRpciwgTUFZX1dSSVRFIHwgTUFZX0VYRUMpOwogCWlmIChlcnJvcikKIAkJZ290byBvdXRfZ3VubG9jazsKIApAQCAtNjY5LDcgKzY2OSw3IEBACiAJCQl9CiAJCX0KIAl9IGVsc2UgewotCQllcnJvciA9IHBlcm1pc3Npb24obmRpciwgTUFZX1dSSVRFIHwgTUFZX0VYRUMsIE5VTEwpOworCQllcnJvciA9IGdmczJfcGVybWlzc2lvbihuZGlyLCBNQVlfV1JJVEUgfCBNQVlfRVhFQyk7CiAJCWlmIChlcnJvcikKIAkJCWdvdG8gb3V0X2d1bmxvY2s7CiAKQEAgLTcwNCw3ICs3MDQsNyBAQAogCS8qIENoZWNrIG91dCB0aGUgZGlyIHRvIGJlIHJlbmFtZWQgKi8KIAogCWlmIChkaXJfcmVuYW1lKSB7Ci0JCWVycm9yID0gcGVybWlzc2lvbihvZGVudHJ5LT5kX2lub2RlLCBNQVlfV1JJVEUsIE5VTEwpOworCQllcnJvciA9IGdmczJfcGVybWlzc2lvbihvZGVudHJ5LT5kX2lub2RlLCBNQVlfV1JJVEUpOwogCQlpZiAoZXJyb3IpCiAJCQlnb3RvIG91dF9ndW5sb2NrOwogCX0KQEAgLTg5MSw3ICs4OTEsNyBAQAogICogUmV0dXJuczogZXJybm8KICAqLwogCi1zdGF0aWMgaW50IGdmczJfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaywgc3RydWN0IG5hbWVpZGF0YSAqbmQpCitpbnQgZ2ZzMl9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQogewogCXN0cnVjdCBnZnMyX2lub2RlICppcCA9IEdGUzJfSShpbm9kZSk7CiAJc3RydWN0IGdmczJfaG9sZGVyIGlfZ2g7CkBAIC05MDUsMTMgKzkwNSwyMiBAQAogCQl1bmxvY2sgPSAxOwogCX0KIAotCWVycm9yID0gZ2VuZXJpY19wZXJtaXNzaW9uKGlub2RlLCBtYXNrLCBnZnMyX2NoZWNrX2FjbCk7CisJaWYgKChtYXNrICYgTUFZX1dSSVRFKSAmJiBJU19JTU1VVEFCTEUoaW5vZGUpKQorCQllcnJvciA9IC1FQUNDRVM7CisJZWxzZQorCQllcnJvciA9IGdlbmVyaWNfcGVybWlzc2lvbihpbm9kZSwgbWFzaywgZ2ZzMl9jaGVja19hY2wpOwogCWlmICh1bmxvY2spCiAJCWdmczJfZ2xvY2tfZHFfdW5pbml0KCZpX2doKTsKIAogCXJldHVybiBlcnJvcjsKIH0KIAorc3RhdGljIGludCBnZnMyX2lvcF9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrLAorCQkJICAgICAgIHN0cnVjdCBuYW1laWRhdGEgKm5kKQoreworCXJldHVybiBnZnMyX3Blcm1pc3Npb24oaW5vZGUsIG1hc2spOworfQorCiBzdGF0aWMgaW50IHNldGF0dHJfc2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaWF0dHIgKmF0dHIpCiB7CiAJc3RydWN0IGdmczJfaW5vZGUgKmlwID0gR0ZTMl9JKGlub2RlKTsKQEAgLTExNDEsNyArMTE1MCw3IEBACiB9CiAKIGNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIGdmczJfZmlsZV9pb3BzID0gewotCS5wZXJtaXNzaW9uID0gZ2ZzMl9wZXJtaXNzaW9uLAorCS5wZXJtaXNzaW9uID0gZ2ZzMl9pb3BfcGVybWlzc2lvbiwKIAkuc2V0YXR0ciA9IGdmczJfc2V0YXR0ciwKIAkuZ2V0YXR0ciA9IGdmczJfZ2V0YXR0ciwKIAkuc2V0eGF0dHIgPSBnZnMyX3NldHhhdHRyLApAQCAtMTE2MCw3ICsxMTY5LDcgQEAKIAkucm1kaXIgPSBnZnMyX3JtZGlyLAogCS5ta25vZCA9IGdmczJfbWtub2QsCiAJLnJlbmFtZSA9IGdmczJfcmVuYW1lLAotCS5wZXJtaXNzaW9uID0gZ2ZzMl9wZXJtaXNzaW9uLAorCS5wZXJtaXNzaW9uID0gZ2ZzMl9pb3BfcGVybWlzc2lvbiwKIAkuc2V0YXR0ciA9IGdmczJfc2V0YXR0ciwKIAkuZ2V0YXR0ciA9IGdmczJfZ2V0YXR0ciwKIAkuc2V0eGF0dHIgPSBnZnMyX3NldHhhdHRyLApAQCAtMTE3Miw3ICsxMTgxLDcgQEAKIGNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIGdmczJfc3ltbGlua19pb3BzID0gewogCS5yZWFkbGluayA9IGdmczJfcmVhZGxpbmssCiAJLmZvbGxvd19saW5rID0gZ2ZzMl9mb2xsb3dfbGluaywKLQkucGVybWlzc2lvbiA9IGdmczJfcGVybWlzc2lvbiwKKwkucGVybWlzc2lvbiA9IGdmczJfaW9wX3Blcm1pc3Npb24sCiAJLnNldGF0dHIgPSBnZnMyX3NldGF0dHIsCiAJLmdldGF0dHIgPSBnZnMyX2dldGF0dHIsCiAJLnNldHhhdHRyID0gZ2ZzMl9zZXR4YXR0ciwKZGlmZiAtLWdpdCBhL2ZzL2dmczIvb3BzX3N1cGVyLmMgYi9mcy9nZnMyL29wc19zdXBlci5jCmluZGV4IDBiN2NjOTIuLmY2NmVhMGYgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvb3BzX3N1cGVyLmMKKysrIGIvZnMvZ2ZzMi9vcHNfc3VwZXIuYwpAQCAtMTI2LDcgKzEyNiw3IEBACiAJZ2ZzMl9jbGVhcl9yZ3JwZChzZHApOwogCWdmczJfamluZGV4X2ZyZWUoc2RwKTsKIAkvKiAgVGFrZSBhcGFydCBnbG9jayBzdHJ1Y3R1cmVzIGFuZCBidWZmZXIgbGlzdHMgICovCi0JZ2ZzMl9nbF9oYXNoX2NsZWFyKHNkcCwgV0FJVCk7CisJZ2ZzMl9nbF9oYXNoX2NsZWFyKHNkcCk7CiAJLyogIFVubW91bnQgdGhlIGxvY2tpbmcgcHJvdG9jb2wgICovCiAJZ2ZzMl9sbV91bm1vdW50KHNkcCk7CiAKQEAgLTE1NSw3ICsxNTUsNyBAQAogc3RhdGljIGludCBnZnMyX3N5bmNfZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHdhaXQpCiB7CiAJc2ItPnNfZGlydCA9IDA7Ci0JaWYgKHdhaXQpCisJaWYgKHdhaXQgJiYgc2ItPnNfZnNfaW5mbykKIAkJZ2ZzMl9sb2dfZmx1c2goc2ItPnNfZnNfaW5mbywgTlVMTCk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9mcy9nZnMyL3F1b3RhLmMgYi9mcy9nZnMyL3F1b3RhLmMKaW5kZXggNTZhYWY5MS4uM2UwNzNmNSAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9xdW90YS5jCisrKyBiL2ZzL2dmczIvcXVvdGEuYwpAQCAtOTA0LDcgKzkwNCw3IEBACiAJCWRvX3N5bmMgPSAwOwogCWVsc2UgewogCQl2YWx1ZSAqPSBnZnMyX2ppbmRleF9zaXplKHNkcCkgKiBudW07Ci0JCWRvX2Rpdih2YWx1ZSwgZGVuKTsKKwkJdmFsdWUgPSBkaXZfczY0KHZhbHVlLCBkZW4pOwogCQl2YWx1ZSArPSAoczY0KWJlNjRfdG9fY3B1KHFkLT5xZF9xYi5xYl92YWx1ZSk7CiAJCWlmICh2YWx1ZSA8IChzNjQpYmU2NF90b19jcHUocWQtPnFkX3FiLnFiX2xpbWl0KSkKIAkJCWRvX3N5bmMgPSAwOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9yZWNvdmVyeS5jIGIvZnMvZ2ZzMi9yZWNvdmVyeS5jCmluZGV4IDI4ODhlNGIuLmQ1ZTkxZjQgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvcmVjb3ZlcnkuYworKysgYi9mcy9nZnMyL3JlY292ZXJ5LmMKQEAgLTQyOCw2ICs0MjgsOSBAQAogc3RhdGljIHZvaWQgZ2ZzMl9sbV9yZWNvdmVyeV9kb25lKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCB1bnNpZ25lZCBpbnQgamlkLAogCQkJCSAgdW5zaWduZWQgaW50IG1lc3NhZ2UpCiB7CisJaWYgKCFzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfb3BzLT5sbV9yZWNvdmVyeV9kb25lKQorCQlyZXR1cm47CisKIAlpZiAobGlrZWx5KCF0ZXN0X2JpdChTREZfU0hVVERPV04sICZzZHAtPnNkX2ZsYWdzKSkpCiAJCXNkcC0+c2RfbG9ja3N0cnVjdC5sc19vcHMtPmxtX3JlY292ZXJ5X2RvbmUoCiAJCQlzZHAtPnNkX2xvY2tzdHJ1Y3QubHNfbG9ja3NwYWNlLCBqaWQsIG1lc3NhZ2UpOwpAQCAtNTA1LDcgKzUwOCw3IEBACiAKIAkJZXJyb3IgPSBnZnMyX2dsb2NrX25xX2luaXQoc2RwLT5zZF90cmFuc19nbCwgTE1fU1RfU0hBUkVELAogCQkJCQkgICBMTV9GTEFHX05PRVhQIHwgTE1fRkxBR19QUklPUklUWSB8Ci0JCQkJCSAgIEdMX05PQ0FOQ0VMIHwgR0xfTk9DQUNIRSwgJnRfZ2gpOworCQkJCQkgICBHTF9OT0NBQ0hFLCAmdF9naCk7CiAJCWlmIChlcnJvcikKIAkJCWdvdG8gZmFpbF9ndW5sb2NrX2ppOwogCmRpZmYgLS1naXQgYS9mcy9nZnMyL3JncnAuYyBiL2ZzL2dmczIvcmdycC5jCmluZGV4IDM0MDE2MjguLjJkOTBmYjIgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvcmdycC5jCisrKyBiL2ZzL2dmczIvcmdycC5jCkBAIC0zNzEsMTEgKzM3MSw2IEBACiAKIAlzcGluX2xvY2soJnNkcC0+c2RfcmluZGV4X3NwaW4pOwogCXNkcC0+c2RfcmluZGV4X2ZvcndhcmQgPSBOVUxMOwotCWhlYWQgPSAmc2RwLT5zZF9yaW5kZXhfcmVjZW50X2xpc3Q7Ci0Jd2hpbGUgKCFsaXN0X2VtcHR5KGhlYWQpKSB7Ci0JCXJnZCA9IGxpc3RfZW50cnkoaGVhZC0+bmV4dCwgc3RydWN0IGdmczJfcmdycGQsIHJkX3JlY2VudCk7Ci0JCWxpc3RfZGVsKCZyZ2QtPnJkX3JlY2VudCk7Ci0JfQogCXNwaW5fdW5sb2NrKCZzZHAtPnNkX3JpbmRleF9zcGluKTsKIAogCWhlYWQgPSAmc2RwLT5zZF9yaW5kZXhfbGlzdDsKQEAgLTk0NSwxMDcgKzk0MCwzMCBAQAogfQogCiAvKioKLSAqIHJlY2VudF9yZ3JwX2ZpcnN0IC0gZ2V0IGZpcnN0IFJHIGZyb20gInJlY2VudCIgbGlzdAotICogQHNkcDogVGhlIEdGUzIgc3VwZXJibG9jawotICogQHJnbGFzdDogYWRkcmVzcyBvZiB0aGUgcmdycCB1c2VkIGxhc3QKLSAqCi0gKiBSZXR1cm5zOiBUaGUgZmlyc3QgcmdycCBpbiB0aGUgcmVjZW50IGxpc3QKLSAqLwotCi1zdGF0aWMgc3RydWN0IGdmczJfcmdycGQgKnJlY2VudF9yZ3JwX2ZpcnN0KHN0cnVjdCBnZnMyX3NiZCAqc2RwLAotCQkJCQkgICAgdTY0IHJnbGFzdCkKLXsKLQlzdHJ1Y3QgZ2ZzMl9yZ3JwZCAqcmdkOwotCi0Jc3Bpbl9sb2NrKCZzZHAtPnNkX3JpbmRleF9zcGluKTsKLQotCWlmIChyZ2xhc3QpIHsKLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZ2QsICZzZHAtPnNkX3JpbmRleF9yZWNlbnRfbGlzdCwgcmRfcmVjZW50KSB7Ci0JCQlpZiAocmdycF9jb250YWluc19ibG9jayhyZ2QsIHJnbGFzdCkpCi0JCQkJZ290byBvdXQ7Ci0JCX0KLQl9Ci0JcmdkID0gTlVMTDsKLQlpZiAoIWxpc3RfZW1wdHkoJnNkcC0+c2RfcmluZGV4X3JlY2VudF9saXN0KSkKLQkJcmdkID0gbGlzdF9lbnRyeShzZHAtPnNkX3JpbmRleF9yZWNlbnRfbGlzdC5uZXh0LAotCQkJCSBzdHJ1Y3QgZ2ZzMl9yZ3JwZCwgcmRfcmVjZW50KTsKLW91dDoKLQlzcGluX3VubG9jaygmc2RwLT5zZF9yaW5kZXhfc3Bpbik7Ci0JcmV0dXJuIHJnZDsKLX0KLQotLyoqCiAgKiByZWNlbnRfcmdycF9uZXh0IC0gZ2V0IG5leHQgUkcgZnJvbSAicmVjZW50IiBsaXN0CiAgKiBAY3VyX3JnZDogY3VycmVudCByZ3JwCi0gKiBAcmVtb3ZlOgogICoKICAqIFJldHVybnM6IFRoZSBuZXh0IHJncnAgaW4gdGhlIHJlY2VudCBsaXN0CiAgKi8KIAotc3RhdGljIHN0cnVjdCBnZnMyX3JncnBkICpyZWNlbnRfcmdycF9uZXh0KHN0cnVjdCBnZnMyX3JncnBkICpjdXJfcmdkLAotCQkJCQkgICBpbnQgcmVtb3ZlKQorc3RhdGljIHN0cnVjdCBnZnMyX3JncnBkICpyZWNlbnRfcmdycF9uZXh0KHN0cnVjdCBnZnMyX3JncnBkICpjdXJfcmdkKQogewogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gY3VyX3JnZC0+cmRfc2JkOwogCXN0cnVjdCBsaXN0X2hlYWQgKmhlYWQ7CiAJc3RydWN0IGdmczJfcmdycGQgKnJnZDsKIAogCXNwaW5fbG9jaygmc2RwLT5zZF9yaW5kZXhfc3Bpbik7Ci0KLQloZWFkID0gJnNkcC0+c2RfcmluZGV4X3JlY2VudF9saXN0OwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShyZ2QsIGhlYWQsIHJkX3JlY2VudCkgewotCQlpZiAocmdkID09IGN1cl9yZ2QpIHsKLQkJCWlmIChjdXJfcmdkLT5yZF9yZWNlbnQubmV4dCAhPSBoZWFkKQotCQkJCXJnZCA9IGxpc3RfZW50cnkoY3VyX3JnZC0+cmRfcmVjZW50Lm5leHQsCi0JCQkJCQkgc3RydWN0IGdmczJfcmdycGQsIHJkX3JlY2VudCk7Ci0JCQllbHNlCi0JCQkJcmdkID0gTlVMTDsKLQotCQkJaWYgKHJlbW92ZSkKLQkJCQlsaXN0X2RlbCgmY3VyX3JnZC0+cmRfcmVjZW50KTsKLQotCQkJZ290byBvdXQ7Ci0JCX0KKwloZWFkID0gJnNkcC0+c2RfcmluZGV4X21ydV9saXN0OworCWlmICh1bmxpa2VseShjdXJfcmdkLT5yZF9saXN0X21ydS5uZXh0ID09IGhlYWQpKSB7CisJCXNwaW5fdW5sb2NrKCZzZHAtPnNkX3JpbmRleF9zcGluKTsKKwkJcmV0dXJuIE5VTEw7CiAJfQotCi0JcmdkID0gTlVMTDsKLQlpZiAoIWxpc3RfZW1wdHkoaGVhZCkpCi0JCXJnZCA9IGxpc3RfZW50cnkoaGVhZC0+bmV4dCwgc3RydWN0IGdmczJfcmdycGQsIHJkX3JlY2VudCk7Ci0KLW91dDoKKwlyZ2QgPSBsaXN0X2VudHJ5KGN1cl9yZ2QtPnJkX2xpc3RfbXJ1Lm5leHQsIHN0cnVjdCBnZnMyX3JncnBkLCByZF9saXN0X21ydSk7CiAJc3Bpbl91bmxvY2soJnNkcC0+c2RfcmluZGV4X3NwaW4pOwogCXJldHVybiByZ2Q7CiB9CiAKIC8qKgotICogcmVjZW50X3JncnBfYWRkIC0gYWRkIGFuIFJHIHRvIHRhaWwgb2YgInJlY2VudCIgbGlzdAotICogQG5ld19yZ2Q6IFRoZSByZ3JwIHRvIGFkZAotICoKLSAqLwotCi1zdGF0aWMgdm9pZCByZWNlbnRfcmdycF9hZGQoc3RydWN0IGdmczJfcmdycGQgKm5ld19yZ2QpCi17Ci0Jc3RydWN0IGdmczJfc2JkICpzZHAgPSBuZXdfcmdkLT5yZF9zYmQ7Ci0Jc3RydWN0IGdmczJfcmdycGQgKnJnZDsKLQl1bnNpZ25lZCBpbnQgY291bnQgPSAwOwotCXVuc2lnbmVkIGludCBtYXggPSBzZHAtPnNkX3JncnBzIC8gZ2ZzMl9qaW5kZXhfc2l6ZShzZHApOwotCi0Jc3Bpbl9sb2NrKCZzZHAtPnNkX3JpbmRleF9zcGluKTsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnkocmdkLCAmc2RwLT5zZF9yaW5kZXhfcmVjZW50X2xpc3QsIHJkX3JlY2VudCkgewotCQlpZiAocmdkID09IG5ld19yZ2QpCi0JCQlnb3RvIG91dDsKLQotCQlpZiAoKytjb3VudCA+PSBtYXgpCi0JCQlnb3RvIG91dDsKLQl9Ci0JbGlzdF9hZGRfdGFpbCgmbmV3X3JnZC0+cmRfcmVjZW50LCAmc2RwLT5zZF9yaW5kZXhfcmVjZW50X2xpc3QpOwotCi1vdXQ6Ci0Jc3Bpbl91bmxvY2soJnNkcC0+c2RfcmluZGV4X3NwaW4pOwotfQotCi0vKioKICAqIGZvcndhcmRfcmdycF9nZXQgLSBnZXQgYW4gcmdycCB0byB0cnkgbmV4dCBmcm9tIGZ1bGwgbGlzdAogICogQHNkcDogVGhlIEdGUzIgc3VwZXJibG9jawogICoKQEAgLTExMTIsOSArMTAzMCw3IEBACiAJaW50IGxvb3BzID0gMDsKIAlpbnQgZXJyb3IsIHJnX2xvY2tlZDsKIAotCS8qIFRyeSByZWNlbnRseSBzdWNjZXNzZnVsIHJncnBzICovCi0KLQlyZ2QgPSByZWNlbnRfcmdycF9maXJzdChzZHAsIGlwLT5pX2dvYWwpOworCXJnZCA9IGdmczJfYmxrMnJncnBkKHNkcCwgaXAtPmlfZ29hbCk7CiAKIAl3aGlsZSAocmdkKSB7CiAJCXJnX2xvY2tlZCA9IDA7CkBAIC0xMTM2LDExICsxMDUyLDkgQEAKIAkJCQlnZnMyX2dsb2NrX2RxX3VuaW5pdCgmYWwtPmFsX3JnZF9naCk7CiAJCQlpZiAoaW5vZGUpCiAJCQkJcmV0dXJuIGlub2RlOwotCQkJcmdkID0gcmVjZW50X3JncnBfbmV4dChyZ2QsIDEpOwotCQkJYnJlYWs7Ci0KKwkJCS8qIGZhbGwgdGhyb3VnaCAqLwogCQljYXNlIEdMUl9UUllGQUlMRUQ6Ci0JCQlyZ2QgPSByZWNlbnRfcmdycF9uZXh0KHJnZCwgMCk7CisJCQlyZ2QgPSByZWNlbnRfcmdycF9uZXh0KHJnZCk7CiAJCQlicmVhazsKIAogCQlkZWZhdWx0OgpAQCAtMTE5OSw3ICsxMTEzLDkgQEAKIAogb3V0OgogCWlmIChiZWdpbikgewotCQlyZWNlbnRfcmdycF9hZGQocmdkKTsKKwkJc3Bpbl9sb2NrKCZzZHAtPnNkX3JpbmRleF9zcGluKTsKKwkJbGlzdF9tb3ZlKCZyZ2QtPnJkX2xpc3RfbXJ1LCAmc2RwLT5zZF9yaW5kZXhfbXJ1X2xpc3QpOworCQlzcGluX3VubG9jaygmc2RwLT5zZF9yaW5kZXhfc3Bpbik7CiAJCXJnZCA9IGdmczJfcmdycGRfZ2V0X25leHQocmdkKTsKIAkJaWYgKCFyZ2QpCiAJCQlyZ2QgPSBnZnMyX3JncnBkX2dldF9maXJzdChzZHApOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9zdXBlci5jIGIvZnMvZ2ZzMi9zdXBlci5jCmluZGV4IDdhZWFjYmMuLjYzYThhOTAgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvc3VwZXIuYworKysgYi9mcy9nZnMyL3N1cGVyLmMKQEAgLTY1LDcgKzY1LDYgQEAKIAlndC0+Z3RfcXVvdGFfcXVhbnR1bSA9IDYwOwogCWd0LT5ndF9hdGltZV9xdWFudHVtID0gMzYwMDsKIAlndC0+Z3RfbmV3X2ZpbGVzX2pkYXRhID0gMDsKLQlndC0+Z3RfbmV3X2ZpbGVzX2RpcmVjdGlvID0gMDsKIAlndC0+Z3RfbWF4X3JlYWRhaGVhZCA9IDEgPDwgMTg7CiAJZ3QtPmd0X3N0YWxsX3NlY3MgPSA2MDA7CiAJZ3QtPmd0X2NvbXBsYWluX3NlY3MgPSAxMDsKQEAgLTk0MSw4ICs5NDAsNyBAQAogCX0KIAogCWVycm9yID0gZ2ZzMl9nbG9ja19ucV9pbml0KHNkcC0+c2RfdHJhbnNfZ2wsIExNX1NUX0RFRkVSUkVELAotCQkJICAgICAgIExNX0ZMQUdfUFJJT1JJVFkgfCBHTF9OT0NBQ0hFLAotCQkJICAgICAgIHRfZ2gpOworCQkJCSAgIEdMX05PQ0FDSEUsIHRfZ2gpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShqZCwgJnNkcC0+c2RfamluZGV4X2xpc3QsIGpkX2xpc3QpIHsKIAkJZXJyb3IgPSBnZnMyX2pkZXNjX2NoZWNrKGpkKTsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvc3lzLmMgYi9mcy9nZnMyL3N5cy5jCmluZGV4IDlhYjlmYzguLjc0ODQ2NTUgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvc3lzLmMKKysrIGIvZnMvZ2ZzMi9zeXMuYwpAQCAtMTEwLDE4ICsxMTAsNiBAQAogCXJldHVybiBsZW47CiB9CiAKLXN0YXRpYyBzc2l6ZV90IHNocmlua19zdG9yZShzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQotewotCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKLQkJcmV0dXJuIC1FQUNDRVM7Ci0KLQlpZiAoc2ltcGxlX3N0cnRvbChidWYsIE5VTEwsIDApICE9IDEpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZ2ZzMl9nbF9oYXNoX2NsZWFyKHNkcCwgTk9fV0FJVCk7Ci0JcmV0dXJuIGxlbjsKLX0KLQogc3RhdGljIHNzaXplX3QgcXVvdGFfc3luY19zdG9yZShzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCwgY29uc3QgY2hhciAqYnVmLAogCQkJCXNpemVfdCBsZW4pCiB7CkBAIC0xNzUsNyArMTYzLDYgQEAKIEdGUzJfQVRUUihpZCwgICAgICAgICAgICAgICAgICAwNDQ0LCBpZF9zaG93LCAgICAgICBOVUxMKTsKIEdGUzJfQVRUUihmc25hbWUsICAgICAgICAgICAgICAwNDQ0LCBmc25hbWVfc2hvdywgICBOVUxMKTsKIEdGUzJfQVRUUihmcmVlemUsICAgICAgICAgICAgICAwNjQ0LCBmcmVlemVfc2hvdywgICBmcmVlemVfc3RvcmUpOwotR0ZTMl9BVFRSKHNocmluaywgICAgICAgICAgICAgIDAyMDAsIE5VTEwsICAgICAgICAgIHNocmlua19zdG9yZSk7CiBHRlMyX0FUVFIod2l0aGRyYXcsICAgICAgICAgICAgMDY0NCwgd2l0aGRyYXdfc2hvdywgd2l0aGRyYXdfc3RvcmUpOwogR0ZTMl9BVFRSKHN0YXRmc19zeW5jLCAgICAgICAgIDAyMDAsIE5VTEwsICAgICAgICAgIHN0YXRmc19zeW5jX3N0b3JlKTsKIEdGUzJfQVRUUihxdW90YV9zeW5jLCAgICAgICAgICAwMjAwLCBOVUxMLCAgICAgICAgICBxdW90YV9zeW5jX3N0b3JlKTsKQEAgLTE4Niw3ICsxNzMsNiBAQAogCSZnZnMyX2F0dHJfaWQuYXR0ciwKIAkmZ2ZzMl9hdHRyX2ZzbmFtZS5hdHRyLAogCSZnZnMyX2F0dHJfZnJlZXplLmF0dHIsCi0JJmdmczJfYXR0cl9zaHJpbmsuYXR0ciwKIAkmZ2ZzMl9hdHRyX3dpdGhkcmF3LmF0dHIsCiAJJmdmczJfYXR0cl9zdGF0ZnNfc3luYy5hdHRyLAogCSZnZnMyX2F0dHJfcXVvdGFfc3luYy5hdHRyLApAQCAtNDI2LDcgKzQxMiw2IEBACiBUVU5FX0FUVFIoY29tcGxhaW5fc2VjcywgMCk7CiBUVU5FX0FUVFIoc3RhdGZzX3Nsb3csIDApOwogVFVORV9BVFRSKG5ld19maWxlc19qZGF0YSwgMCk7Ci1UVU5FX0FUVFIobmV3X2ZpbGVzX2RpcmVjdGlvLCAwKTsKIFRVTkVfQVRUUihxdW90YV9zaW11bF9zeW5jLCAxKTsKIFRVTkVfQVRUUihxdW90YV9jYWNoZV9zZWNzLCAxKTsKIFRVTkVfQVRUUihzdGFsbF9zZWNzLCAxKTsKQEAgLTQ1NSw3ICs0NDAsNiBAQAogCSZ0dW5lX2F0dHJfcXVvdGFkX3NlY3MuYXR0ciwKIAkmdHVuZV9hdHRyX3F1b3RhX3NjYWxlLmF0dHIsCiAJJnR1bmVfYXR0cl9uZXdfZmlsZXNfamRhdGEuYXR0ciwKLQkmdHVuZV9hdHRyX25ld19maWxlc19kaXJlY3Rpby5hdHRyLAogCU5VTEwsCiB9OwogCmRpZmYgLS1naXQgYS9mcy9qYmQyL2NoZWNrcG9pbnQuYyBiL2ZzL2piZDIvY2hlY2twb2ludC5jCmluZGV4IDY5MTQ1OTguLjkxMzg5YzggMTAwNjQ0Ci0tLSBhL2ZzL2piZDIvY2hlY2twb2ludC5jCisrKyBiL2ZzL2piZDIvY2hlY2twb2ludC5jCkBAIC02ODgsNyArNjg4LDYgQEAKIAogCUpfQVNTRVJUKHRyYW5zYWN0aW9uLT50X3N0YXRlID09IFRfRklOSVNIRUQpOwogCUpfQVNTRVJUKHRyYW5zYWN0aW9uLT50X2J1ZmZlcnMgPT0gTlVMTCk7Ci0JSl9BU1NFUlQodHJhbnNhY3Rpb24tPnRfc3luY19kYXRhbGlzdCA9PSBOVUxMKTsKIAlKX0FTU0VSVCh0cmFuc2FjdGlvbi0+dF9mb3JnZXQgPT0gTlVMTCk7CiAJSl9BU1NFUlQodHJhbnNhY3Rpb24tPnRfaW9idWZfbGlzdCA9PSBOVUxMKTsKIAlKX0FTU0VSVCh0cmFuc2FjdGlvbi0+dF9zaGFkb3dfbGlzdCA9PSBOVUxMKTsKZGlmZiAtLWdpdCBhL2ZzL2piZDIvY29tbWl0LmMgYi9mcy9qYmQyL2NvbW1pdC5jCmluZGV4IGEyZWQ3MmYuLmY4YjNiZTggMTAwNjQ0Ci0tLSBhL2ZzL2piZDIvY29tbWl0LmMKKysrIGIvZnMvamJkMi9jb21taXQuYwpAQCAtMjIsNiArMjIsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAjaW5jbHVkZSA8bGludXgvY3JjMzIuaD4KKyNpbmNsdWRlIDxsaW51eC93cml0ZWJhY2suaD4KKyNpbmNsdWRlIDxsaW51eC9iYWNraW5nLWRldi5oPgogCiAvKgogICogRGVmYXVsdCBJTyBlbmQgaGFuZGxlciBmb3IgdGVtcG9yYXJ5IEJKX0lPIGJ1ZmZlcl9oZWFkcy4KQEAgLTM3LDggKzM5LDggQEAKIH0KIAogLyoKLSAqIFdoZW4gYW4gZXh0My1vcmRlcmVkIGZpbGUgaXMgdHJ1bmNhdGVkLCBpdCBpcyBwb3NzaWJsZSB0aGF0IG1hbnkgcGFnZXMgYXJlCi0gKiBub3Qgc3VjZXNzZnVsbHkgZnJlZWQsIGJlY2F1c2UgdGhleSBhcmUgYXR0YWNoZWQgdG8gYSBjb21taXR0aW5nIHRyYW5zYWN0aW9uLgorICogV2hlbiBhbiBleHQ0IGZpbGUgaXMgdHJ1bmNhdGVkLCBpdCBpcyBwb3NzaWJsZSB0aGF0IHNvbWUgcGFnZXMgYXJlIG5vdAorICogc3VjY2Vzc2Z1bGx5IGZyZWVkLCBiZWNhdXNlIHRoZXkgYXJlIGF0dGFjaGVkIHRvIGEgY29tbWl0dGluZyB0cmFuc2FjdGlvbi4KICAqIEFmdGVyIHRoZSB0cmFuc2FjdGlvbiBjb21taXRzLCB0aGVzZSBwYWdlcyBhcmUgbGVmdCBvbiB0aGUgTFJVLCB3aXRoIG5vCiAgKiAtPm1hcHBpbmcsIGFuZCB3aXRoIGF0dGFjaGVkIGJ1ZmZlcnMuICBUaGVzZSBwYWdlcyBhcmUgdHJpdmlhbGx5IHJlY2xhaW1hYmxlCiAgKiBieSB0aGUgVk0sIGJ1dCB0aGVpciBhcHBhcmVudCBhYnNlbmNlIHVwc2V0cyB0aGUgVk0gYWNjb3VudGluZywgYW5kIGl0IG1ha2VzCkBAIC04MCwyMSArODIsNiBAQAogfQogCiAvKgotICogVHJ5IHRvIGFjcXVpcmUgamJkX2xvY2tfYmhfc3RhdGUoKSBhZ2FpbnN0IHRoZSBidWZmZXIsIHdoZW4gal9saXN0X2xvY2sgaXMKLSAqIGhlbGQuICBGb3IgcmFua2luZyByZWFzb25zIHdlIG11c3QgdHJ5bG9jay4gIElmIHdlIGxvc2UsIHNjaGVkdWxlIGF3YXkgYW5kCi0gKiByZXR1cm4gMC4gIGpfbGlzdF9sb2NrIGlzIGRyb3BwZWQgaW4gdGhpcyBjYXNlLgotICovCi1zdGF0aWMgaW50IGludmVydGVkX2xvY2soam91cm5hbF90ICpqb3VybmFsLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQotewotCWlmICghamJkX3RyeWxvY2tfYmhfc3RhdGUoYmgpKSB7Ci0JCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCXNjaGVkdWxlKCk7Ci0JCXJldHVybiAwOwotCX0KLQlyZXR1cm4gMTsKLX0KLQotLyoKICAqIERvbmUgaXQgYWxsOiBub3cgc3VibWl0IHRoZSBjb21taXQgcmVjb3JkLiAgV2Ugc2hvdWxkIGhhdmUKICAqIGNsZWFuZWQgdXAgb3VyIHByZXZpb3VzIGJ1ZmZlcnMgYnkgbm93LCBzbyBpZiB3ZSBhcmUgaW4gYWJvcnQKICAqIG1vZGUgd2UgY2FuIG5vdyBqdXN0IHNraXAgdGhlIHJlc3Qgb2YgdGhlIGpvdXJuYWwgd3JpdGUKQEAgLTExMiw2ICs5OSw3IEBACiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKIAlpbnQgcmV0OwogCWludCBiYXJyaWVyX2RvbmUgPSAwOworCXN0cnVjdCB0aW1lc3BlYyBub3cgPSBjdXJyZW50X2tlcm5lbF90aW1lKCk7CiAKIAlpZiAoaXNfam91cm5hbF9hYm9ydGVkKGpvdXJuYWwpKQogCQlyZXR1cm4gMDsKQEAgLTEyNiw2ICsxMTQsOCBAQAogCXRtcC0+aF9tYWdpYyA9IGNwdV90b19iZTMyKEpCRDJfTUFHSUNfTlVNQkVSKTsKIAl0bXAtPmhfYmxvY2t0eXBlID0gY3B1X3RvX2JlMzIoSkJEMl9DT01NSVRfQkxPQ0spOwogCXRtcC0+aF9zZXF1ZW5jZSA9IGNwdV90b19iZTMyKGNvbW1pdF90cmFuc2FjdGlvbi0+dF90aWQpOworCXRtcC0+aF9jb21taXRfc2VjID0gY3B1X3RvX2JlNjQobm93LnR2X3NlYyk7CisJdG1wLT5oX2NvbW1pdF9uc2VjID0gY3B1X3RvX2JlMzIobm93LnR2X25zZWMpOwogCiAJaWYgKEpCRDJfSEFTX0NPTVBBVF9GRUFUVVJFKGpvdXJuYWwsCiAJCQkJICAgIEpCRDJfRkVBVFVSRV9DT01QQVRfQ0hFQ0tTVU0pKSB7CkBAIC0xOTcsMTU5ICsxODcsMTA0IEBACiB9CiAKIC8qCi0gKiBXYWl0IGZvciBhbGwgc3VibWl0dGVkIElPIHRvIGNvbXBsZXRlLgorICogd3JpdGUgdGhlIGZpbGVtYXAgZGF0YSB1c2luZyB3cml0ZXBhZ2UoKSBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMuCisgKiBXZSBkb24ndCBkbyBibG9jayBhbGxvY2F0aW9uIGhlcmUgZXZlbiBmb3IgZGVsYWxsb2MuIFdlIGRvbid0CisgKiB1c2Ugd3JpdGVwYWdlcygpIGJlY2F1c2Ugd2l0aCBkZWFseWVkIGFsbG9jYXRpb24gd2UgbWF5IGJlIGRvaW5nCisgKiBibG9jayBhbGxvY2F0aW9uIGluIHdyaXRlcGFnZXMoKS4KICAqLwotc3RhdGljIGludCBqb3VybmFsX3dhaXRfb25fbG9ja2VkX2xpc3Qoam91cm5hbF90ICpqb3VybmFsLAotCQkJCSAgICAgICB0cmFuc2FjdGlvbl90ICpjb21taXRfdHJhbnNhY3Rpb24pCitzdGF0aWMgaW50IGpvdXJuYWxfc3VibWl0X2lub2RlX2RhdGFfYnVmZmVycyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKIHsKLQlpbnQgcmV0ID0gMDsKLQlzdHJ1Y3Qgam91cm5hbF9oZWFkICpqaDsKKwlpbnQgcmV0OworCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCB3YmMgPSB7CisJCS5zeW5jX21vZGUgPSAgV0JfU1lOQ19BTEwsCisJCS5ucl90b193cml0ZSA9IG1hcHBpbmctPm5ycGFnZXMgKiAyLAorCQkucmFuZ2Vfc3RhcnQgPSAwLAorCQkucmFuZ2VfZW5kID0gaV9zaXplX3JlYWQobWFwcGluZy0+aG9zdCksCisJCS5mb3Jfd3JpdGVwYWdlcyA9IDEsCisJfTsKIAotCXdoaWxlIChjb21taXRfdHJhbnNhY3Rpb24tPnRfbG9ja2VkX2xpc3QpIHsKLQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKLQotCQlqaCA9IGNvbW1pdF90cmFuc2FjdGlvbi0+dF9sb2NrZWRfbGlzdC0+Yl90cHJldjsKLQkJYmggPSBqaDJiaChqaCk7Ci0JCWdldF9iaChiaCk7Ci0JCWlmIChidWZmZXJfbG9ja2VkKGJoKSkgewotCQkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJCXdhaXRfb25fYnVmZmVyKGJoKTsKLQkJCWlmICh1bmxpa2VseSghYnVmZmVyX3VwdG9kYXRlKGJoKSkpCi0JCQkJcmV0ID0gLUVJTzsKLQkJCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQl9Ci0JCWlmICghaW52ZXJ0ZWRfbG9jayhqb3VybmFsLCBiaCkpIHsKLQkJCXB1dF9iaChiaCk7Ci0JCQlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCWlmIChidWZmZXJfamJkKGJoKSAmJiBqaC0+Yl9qbGlzdCA9PSBCSl9Mb2NrZWQpIHsKLQkJCV9famJkMl9qb3VybmFsX3VuZmlsZV9idWZmZXIoamgpOwotCQkJamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JCQlqYmQyX2pvdXJuYWxfcmVtb3ZlX2pvdXJuYWxfaGVhZChiaCk7Ci0JCQlwdXRfYmgoYmgpOwotCQl9IGVsc2UgewotCQkJamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JCX0KLQkJcHV0X2JoKGJoKTsKLQkJY29uZF9yZXNjaGVkX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQl9CisJcmV0ID0gZ2VuZXJpY193cml0ZXBhZ2VzKG1hcHBpbmcsICZ3YmMpOwogCXJldHVybiByZXQ7Ci0gIH0KLQotc3RhdGljIHZvaWQgam91cm5hbF9kb19zdWJtaXRfZGF0YShzdHJ1Y3QgYnVmZmVyX2hlYWQgKip3YnVmLCBpbnQgYnVmcykKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBidWZzOyBpKyspIHsKLQkJd2J1ZltpXS0+Yl9lbmRfaW8gPSBlbmRfYnVmZmVyX3dyaXRlX3N5bmM7Ci0JCS8qIFdlIHVzZS11cCBvdXIgc2FmZXR5IHJlZmVyZW5jZSBpbiBzdWJtaXRfYmgoKSAqLwotCQlzdWJtaXRfYmgoV1JJVEUsIHdidWZbaV0pOwotCX0KIH0KIAogLyoKLSAqICBTdWJtaXQgYWxsIHRoZSBkYXRhIGJ1ZmZlcnMgdG8gZGlzaworICogU3VibWl0IGFsbCB0aGUgZGF0YSBidWZmZXJzIG9mIGlub2RlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdHJhbnNhY3Rpb24gdG8KKyAqIGRpc2suCisgKgorICogV2UgYXJlIGluIGEgY29tbWl0dGluZyB0cmFuc2FjdGlvbi4gVGhlcmVmb3JlIG5vIG5ldyBpbm9kZSBjYW4gYmUgYWRkZWQgdG8KKyAqIG91ciBpbm9kZSBsaXN0LiBXZSB1c2UgSklfQ09NTUlUX1JVTk5JTkcgZmxhZyB0byBwcm90ZWN0IGlub2RlIHdlIGN1cnJlbnRseQorICogb3BlcmF0ZSBvbiBmcm9tIGJlaW5nIHJlbGVhc2VkIHdoaWxlIHdlIHdyaXRlIG91dCBwYWdlcy4KICAqLwotc3RhdGljIHZvaWQgam91cm5hbF9zdWJtaXRfZGF0YV9idWZmZXJzKGpvdXJuYWxfdCAqam91cm5hbCwKLQkJCQl0cmFuc2FjdGlvbl90ICpjb21taXRfdHJhbnNhY3Rpb24pCitzdGF0aWMgaW50IGpvdXJuYWxfc3VibWl0X2RhdGFfYnVmZmVycyhqb3VybmFsX3QgKmpvdXJuYWwsCisJCXRyYW5zYWN0aW9uX3QgKmNvbW1pdF90cmFuc2FjdGlvbikKIHsKLQlzdHJ1Y3Qgam91cm5hbF9oZWFkICpqaDsKLQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOwotCWludCBsb2NrZWQ7Ci0JaW50IGJ1ZnMgPSAwOwotCXN0cnVjdCBidWZmZXJfaGVhZCAqKndidWYgPSBqb3VybmFsLT5qX3didWY7CisJc3RydWN0IGpiZDJfaW5vZGUgKmppbm9kZTsKKwlpbnQgZXJyLCByZXQgPSAwOworCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOwogCi0JLyoKLQkgKiBXaGVuZXZlciB3ZSB1bmxvY2sgdGhlIGpvdXJuYWwgYW5kIHNsZWVwLCB0aGluZ3MgY2FuIGdldCBhZGRlZAotCSAqIG9udG8gLT50X3N5bmNfZGF0YWxpc3QsIHNvIHdlIGhhdmUgdG8ga2VlcCBsb29waW5nIGJhY2sgdG8KLQkgKiB3cml0ZV9vdXRfZGF0YSB1bnRpbCB3ZSAqa25vdyogdGhhdCB0aGUgbGlzdCBpcyBlbXB0eS4KLQkgKgotCSAqIENsZWFudXAgYW55IGZsdXNoZWQgZGF0YSBidWZmZXJzIGZyb20gdGhlIGRhdGEgbGlzdC4gIEV2ZW4gaW4KLQkgKiBhYm9ydCBtb2RlLCB3ZSB3YW50IHRvIGZsdXNoIHRoaXMgb3V0IGFzIHNvb24gYXMgcG9zc2libGUuCi0JICovCi13cml0ZV9vdXRfZGF0YToKLQljb25kX3Jlc2NoZWQoKTsKIAlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQotCXdoaWxlIChjb21taXRfdHJhbnNhY3Rpb24tPnRfc3luY19kYXRhbGlzdCkgewotCQlqaCA9IGNvbW1pdF90cmFuc2FjdGlvbi0+dF9zeW5jX2RhdGFsaXN0OwotCQliaCA9IGpoMmJoKGpoKTsKLQkJbG9ja2VkID0gMDsKLQotCQkvKiBHZXQgcmVmZXJlbmNlIGp1c3QgdG8gbWFrZSBzdXJlIGJ1ZmZlciBkb2VzIG5vdCBkaXNhcHBlYXIKLQkJICogd2hlbiB3ZSBhcmUgZm9yY2VkIHRvIGRyb3AgdmFyaW91cyBsb2NrcyAqLwotCQlnZXRfYmgoYmgpOwotCQkvKiBJZiB0aGUgYnVmZmVyIGlzIGRpcnR5LCB3ZSBuZWVkIHRvIHN1Ym1pdCBJTyBhbmQgaGVuY2UKLQkJICogd2UgbmVlZCB0aGUgYnVmZmVyIGxvY2suIFdlIHRyeSB0byBsb2NrIHRoZSBidWZmZXIgd2l0aG91dAotCQkgKiBibG9ja2luZy4gSWYgd2UgZmFpbCwgd2UgbmVlZCB0byBkcm9wIGpfbGlzdF9sb2NrIGFuZCBkbwotCQkgKiBibG9ja2luZyBsb2NrX2J1ZmZlcigpLgorCWxpc3RfZm9yX2VhY2hfZW50cnkoamlub2RlLCAmY29tbWl0X3RyYW5zYWN0aW9uLT50X2lub2RlX2xpc3QsIGlfbGlzdCkgeworCQltYXBwaW5nID0gamlub2RlLT5pX3Zmc19pbm9kZS0+aV9tYXBwaW5nOworCQlqaW5vZGUtPmlfZmxhZ3MgfD0gSklfQ09NTUlUX1JVTk5JTkc7CisJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisJCS8qCisJCSAqIHN1Ym1pdCB0aGUgaW5vZGUgZGF0YSBidWZmZXJzLiBXZSB1c2Ugd3JpdGVwYWdlCisJCSAqIGluc3RlYWQgb2Ygd3JpdGVwYWdlcy4gQmVjYXVzZSB3cml0ZXBhZ2VzIGNhbiBkbworCQkgKiBibG9jayBhbGxvY2F0aW9uICB3aXRoIGRlbGFsbG9jLiBXZSBuZWVkIHRvIHdyaXRlCisJCSAqIG9ubHkgYWxsb2NhdGVkIGJsb2NrcyBoZXJlLgogCQkgKi8KLQkJaWYgKGJ1ZmZlcl9kaXJ0eShiaCkpIHsKLQkJCWlmICh0ZXN0X3NldF9idWZmZXJfbG9ja2VkKGJoKSkgewotCQkJCUJVRkZFUl9UUkFDRShiaCwgIm5lZWRzIGJsb2NraW5nIGxvY2siKTsKLQkJCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQkJCS8qIFdyaXRlIG91dCBhbGwgZGF0YSB0byBwcmV2ZW50IGRlYWRsb2NrcyAqLwotCQkJCWpvdXJuYWxfZG9fc3VibWl0X2RhdGEod2J1ZiwgYnVmcyk7Ci0JCQkJYnVmcyA9IDA7Ci0JCQkJbG9ja19idWZmZXIoYmgpOwotCQkJCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQkJfQotCQkJbG9ja2VkID0gMTsKLQkJfQotCQkvKiBXZSBoYXZlIHRvIGdldCBiaF9zdGF0ZSBsb2NrLiBBZ2FpbiBvdXQgb2Ygb3JkZXIsIHNpZ2guICovCi0JCWlmICghaW52ZXJ0ZWRfbG9jayhqb3VybmFsLCBiaCkpIHsKLQkJCWpiZF9sb2NrX2JoX3N0YXRlKGJoKTsKLQkJCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQl9Ci0JCS8qIFNvbWVvbmUgYWxyZWFkeSBjbGVhbmVkIHVwIHRoZSBidWZmZXI/ICovCi0JCWlmICghYnVmZmVyX2piZChiaCkKLQkJCXx8IGpoLT5iX3RyYW5zYWN0aW9uICE9IGNvbW1pdF90cmFuc2FjdGlvbgotCQkJfHwgamgtPmJfamxpc3QgIT0gQkpfU3luY0RhdGEpIHsKLQkJCWpiZF91bmxvY2tfYmhfc3RhdGUoYmgpOwotCQkJaWYgKGxvY2tlZCkKLQkJCQl1bmxvY2tfYnVmZmVyKGJoKTsKLQkJCUJVRkZFUl9UUkFDRShiaCwgImFscmVhZHkgY2xlYW5lZCB1cCIpOwotCQkJcHV0X2JoKGJoKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCWlmIChsb2NrZWQgJiYgdGVzdF9jbGVhcl9idWZmZXJfZGlydHkoYmgpKSB7Ci0JCQlCVUZGRVJfVFJBQ0UoYmgsICJuZWVkcyB3cml0ZW91dCwgYWRkaW5nIHRvIGFycmF5Iik7Ci0JCQl3YnVmW2J1ZnMrK10gPSBiaDsKLQkJCV9famJkMl9qb3VybmFsX2ZpbGVfYnVmZmVyKGpoLCBjb21taXRfdHJhbnNhY3Rpb24sCi0JCQkJCQlCSl9Mb2NrZWQpOwotCQkJamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JCQlpZiAoYnVmcyA9PSBqb3VybmFsLT5qX3didWZzaXplKSB7Ci0JCQkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJCQlqb3VybmFsX2RvX3N1Ym1pdF9kYXRhKHdidWYsIGJ1ZnMpOwotCQkJCWJ1ZnMgPSAwOwotCQkJCWdvdG8gd3JpdGVfb3V0X2RhdGE7Ci0JCQl9Ci0JCX0gZWxzZSBpZiAoIWxvY2tlZCAmJiBidWZmZXJfbG9ja2VkKGJoKSkgewotCQkJX19qYmQyX2pvdXJuYWxfZmlsZV9idWZmZXIoamgsIGNvbW1pdF90cmFuc2FjdGlvbiwKLQkJCQkJCUJKX0xvY2tlZCk7Ci0JCQlqYmRfdW5sb2NrX2JoX3N0YXRlKGJoKTsKLQkJCXB1dF9iaChiaCk7Ci0JCX0gZWxzZSB7Ci0JCQlCVUZGRVJfVFJBQ0UoYmgsICJ3cml0ZW91dCBjb21wbGV0ZTogdW5maWxlIik7Ci0JCQlfX2piZDJfam91cm5hbF91bmZpbGVfYnVmZmVyKGpoKTsKLQkJCWpiZF91bmxvY2tfYmhfc3RhdGUoYmgpOwotCQkJaWYgKGxvY2tlZCkKLQkJCQl1bmxvY2tfYnVmZmVyKGJoKTsKLQkJCWpiZDJfam91cm5hbF9yZW1vdmVfam91cm5hbF9oZWFkKGJoKTsKLQkJCS8qIE9uY2UgZm9yIG91ciBzYWZldHkgcmVmZXJlbmNlLCBvbmNlIGZvcgotCQkJICogamJkMl9qb3VybmFsX3JlbW92ZV9qb3VybmFsX2hlYWQoKSAqLwotCQkJcHV0X2JoKGJoKTsKLQkJCXB1dF9iaChiaCk7Ci0JCX0KKwkJZXJyID0gam91cm5hbF9zdWJtaXRfaW5vZGVfZGF0YV9idWZmZXJzKG1hcHBpbmcpOworCQlpZiAoIXJldCkKKwkJCXJldCA9IGVycjsKKwkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisJCUpfQVNTRVJUKGppbm9kZS0+aV90cmFuc2FjdGlvbiA9PSBjb21taXRfdHJhbnNhY3Rpb24pOworCQlqaW5vZGUtPmlfZmxhZ3MgJj0gfkpJX0NPTU1JVF9SVU5OSU5HOworCQl3YWtlX3VwX2JpdCgmamlub2RlLT5pX2ZsYWdzLCBfX0pJX0NPTU1JVF9SVU5OSU5HKTsKKwl9CisJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKKwlyZXR1cm4gcmV0OworfQogCi0JCWlmIChuZWVkX3Jlc2NoZWQoKSB8fCBzcGluX25lZWRicmVhaygmam91cm5hbC0+al9saXN0X2xvY2spKSB7Ci0JCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQkJZ290byB3cml0ZV9vdXRfZGF0YTsKKy8qCisgKiBXYWl0IGZvciBkYXRhIHN1Ym1pdHRlZCBmb3Igd3JpdGVvdXQsIHJlZmlsZSBpbm9kZXMgdG8gcHJvcGVyCisgKiB0cmFuc2FjdGlvbiBpZiBuZWVkZWQuCisgKgorICovCitzdGF0aWMgaW50IGpvdXJuYWxfZmluaXNoX2lub2RlX2RhdGFfYnVmZmVycyhqb3VybmFsX3QgKmpvdXJuYWwsCisJCXRyYW5zYWN0aW9uX3QgKmNvbW1pdF90cmFuc2FjdGlvbikKK3sKKwlzdHJ1Y3QgamJkMl9pbm9kZSAqamlub2RlLCAqbmV4dF9pOworCWludCBlcnIsIHJldCA9IDA7CisKKwkvKiBGb3IgbG9ja2luZywgc2VlIHRoZSBjb21tZW50IGluIGpvdXJuYWxfc3VibWl0X2RhdGFfYnVmZmVycygpICovCisJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShqaW5vZGUsICZjb21taXRfdHJhbnNhY3Rpb24tPnRfaW5vZGVfbGlzdCwgaV9saXN0KSB7CisJCWppbm9kZS0+aV9mbGFncyB8PSBKSV9DT01NSVRfUlVOTklORzsKKwkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKKwkJZXJyID0gZmlsZW1hcF9mZGF0YXdhaXQoamlub2RlLT5pX3Zmc19pbm9kZS0+aV9tYXBwaW5nKTsKKwkJaWYgKCFyZXQpCisJCQlyZXQgPSBlcnI7CisJCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCQlqaW5vZGUtPmlfZmxhZ3MgJj0gfkpJX0NPTU1JVF9SVU5OSU5HOworCQl3YWtlX3VwX2JpdCgmamlub2RlLT5pX2ZsYWdzLCBfX0pJX0NPTU1JVF9SVU5OSU5HKTsKKwl9CisKKwkvKiBOb3cgcmVmaWxlIGlub2RlIHRvIHByb3BlciBsaXN0cyAqLworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShqaW5vZGUsIG5leHRfaSwKKwkJCQkgJmNvbW1pdF90cmFuc2FjdGlvbi0+dF9pbm9kZV9saXN0LCBpX2xpc3QpIHsKKwkJbGlzdF9kZWwoJmppbm9kZS0+aV9saXN0KTsKKwkJaWYgKGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uKSB7CisJCQlqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPSBqaW5vZGUtPmlfbmV4dF90cmFuc2FjdGlvbjsKKwkJCWppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID0gTlVMTDsKKwkJCWxpc3RfYWRkKCZqaW5vZGUtPmlfbGlzdCwKKwkJCQkmamlub2RlLT5pX3RyYW5zYWN0aW9uLT50X2lub2RlX2xpc3QpOworCQl9IGVsc2UgeworCQkJamlub2RlLT5pX3RyYW5zYWN0aW9uID0gTlVMTDsKIAkJfQogCX0KIAlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCWpvdXJuYWxfZG9fc3VibWl0X2RhdGEod2J1ZiwgYnVmcyk7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgX191MzIgamJkMl9jaGVja3N1bV9kYXRhKF9fdTMyIGNyYzMyX3N1bSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKQEAgLTUyNCwyMSArNDU5LDcgQEAKIAkgKiBOb3cgc3RhcnQgZmx1c2hpbmcgdGhpbmdzIHRvIGRpc2ssIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhcgogCSAqIG9uIHRoZSB0cmFuc2FjdGlvbiBsaXN0cy4gIERhdGEgYmxvY2tzIGdvIGZpcnN0LgogCSAqLwotCWVyciA9IDA7Ci0Jam91cm5hbF9zdWJtaXRfZGF0YV9idWZmZXJzKGpvdXJuYWwsIGNvbW1pdF90cmFuc2FjdGlvbik7Ci0KLQkvKgotCSAqIFdhaXQgZm9yIGFsbCBwcmV2aW91c2x5IHN1Ym1pdHRlZCBJTyB0byBjb21wbGV0ZSBpZiBjb21taXQKLQkgKiByZWNvcmQgaXMgdG8gYmUgd3JpdHRlbiBzeW5jaHJvbm91c2x5LgotCSAqLwotCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCWlmICghSkJEMl9IQVNfSU5DT01QQVRfRkVBVFVSRShqb3VybmFsLAotCQlKQkQyX0ZFQVRVUkVfSU5DT01QQVRfQVNZTkNfQ09NTUlUKSkKLQkJZXJyID0gam91cm5hbF93YWl0X29uX2xvY2tlZF9saXN0KGpvdXJuYWwsCi0JCQkJCQljb21taXRfdHJhbnNhY3Rpb24pOwotCi0Jc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQorCWVyciA9IGpvdXJuYWxfc3VibWl0X2RhdGFfYnVmZmVycyhqb3VybmFsLCBjb21taXRfdHJhbnNhY3Rpb24pOwogCWlmIChlcnIpCiAJCWpiZDJfam91cm5hbF9hYm9ydChqb3VybmFsLCBlcnIpOwogCkBAIC01NDcsMTYgKzQ2OCw2IEBACiAJamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSAyXG4iKTsKIAogCS8qCi0JICogSWYgd2UgZm91bmQgYW55IGRpcnR5IG9yIGxvY2tlZCBidWZmZXJzLCB0aGVuIHdlIHNob3VsZCBoYXZlCi0JICogbG9vcGVkIGJhY2sgdXAgdG8gdGhlIHdyaXRlX291dF9kYXRhIGxhYmVsLiAgSWYgdGhlcmUgd2VyZW4ndAotCSAqIGFueSB0aGVuIGpvdXJuYWxfY2xlYW5fZGF0YV9saXN0IHNob3VsZCBoYXZlIHdpcGVkIHRoZSBsaXN0Ci0JICogY2xlYW4gYnkgbm93LCBzbyBjaGVjayB0aGF0IGl0IGlzIGluIGZhY3QgZW1wdHkuCi0JICovCi0JSl9BU1NFUlQgKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9zeW5jX2RhdGFsaXN0ID09IE5VTEwpOwotCi0JamJkX2RlYnVnICgzLCAiSkJEOiBjb21taXQgcGhhc2UgM1xuIik7Ci0KLQkvKgogCSAqIFdheSB0byBnbzogd2UgaGF2ZSBub3cgd3JpdHRlbiBvdXQgYWxsIG9mIHRoZSBkYXRhIGZvciBhCiAJICogdHJhbnNhY3Rpb24hICBOb3cgY29tZXMgdGhlIHRyaWNreSBwYXJ0OiB3ZSBuZWVkIHRvIHdyaXRlIG91dAogCSAqIG1ldGFkYXRhLiAgTG9vcCBvdmVyIHRoZSB0cmFuc2FjdGlvbidzIGVudGlyZSBidWZmZXIgbGlzdDoKQEAgLTU3NCw2ICs0ODUsNyBAQAogCUpfQVNTRVJUKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9ucl9idWZmZXJzIDw9CiAJCSBjb21taXRfdHJhbnNhY3Rpb24tPnRfb3V0c3RhbmRpbmdfY3JlZGl0cyk7CiAKKwllcnIgPSAwOwogCWRlc2NyaXB0b3IgPSBOVUxMOwogCWJ1ZnMgPSAwOwogCXdoaWxlIChjb21taXRfdHJhbnNhY3Rpb24tPnRfYnVmZmVycykgewpAQCAtNzQ4LDE1ICs2NjAsMTkgQEAKIAkJCQkJCSAmY2JoLCBjcmMzMl9zdW0pOwogCQlpZiAoZXJyKQogCQkJX19qYmQyX2pvdXJuYWxfYWJvcnRfaGFyZChqb3VybmFsKTsKLQotCQlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJZXJyID0gam91cm5hbF93YWl0X29uX2xvY2tlZF9saXN0KGpvdXJuYWwsCi0JCQkJCQljb21taXRfdHJhbnNhY3Rpb24pOwotCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQlpZiAoZXJyKQotCQkJX19qYmQyX2pvdXJuYWxfYWJvcnRfaGFyZChqb3VybmFsKTsKIAl9CiAKKwkvKgorCSAqIFRoaXMgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHdhaXQgZm9yIGRhdGEgYnVmZmVycyBib3RoIGZvciBBU1lOQworCSAqIGFuZCAhQVNZTkMgY29tbWl0LiBJZiBjb21taXQgaXMgQVNZTkMsIHdlIG5lZWQgdG8gd2FpdCBvbmx5IGFmdGVyCisJICogdGhlIGNvbW1pdCBibG9jayB3ZW50IHRvIGRpc2sgKHdoaWNoIGhhcHBlbnMgYWJvdmUpLiBJZiBjb21taXQgaXMKKwkgKiBTWU5DLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGRhdGEgYnVmZmVycyBiZWZvcmUgd2Ugc3RhcnQgd3JpdGluZworCSAqIGNvbW1pdCBibG9jaywgd2hpY2ggaGFwcGVucyBiZWxvdyBpbiBzdWNoIHNldHRpbmcuCisJICovCisJZXJyID0gam91cm5hbF9maW5pc2hfaW5vZGVfZGF0YV9idWZmZXJzKGpvdXJuYWwsIGNvbW1pdF90cmFuc2FjdGlvbik7CisJaWYgKGVycikKKwkJamJkMl9qb3VybmFsX2Fib3J0KGpvdXJuYWwsIGVycik7CisKIAkvKiBMbyBhbmQgYmVob2xkOiB3ZSBoYXZlIGp1c3QgbWFuYWdlZCB0byBzZW5kIGEgdHJhbnNhY3Rpb24gdG8KICAgICAgICAgICAgdGhlIGxvZy4gIEJlZm9yZSB3ZSBjYW4gY29tbWl0IGl0LCB3YWl0IGZvciB0aGUgSU8gc28gZmFyIHRvCiAgICAgICAgICAgIGNvbXBsZXRlLiAgQ29udHJvbCBidWZmZXJzIGJlaW5nIHdyaXR0ZW4gYXJlIG9uIHRoZQpAQCAtNzY4LDcgKzY4NCw3IEBACiAJICAgc28gd2UgaW5jdXIgbGVzcyBzY2hlZHVsaW5nIGxvYWQuCiAJKi8KIAotCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgNFxuIik7CisJamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSAzXG4iKTsKIAogCS8qCiAJICogYWtwbTogdGhlc2UgYXJlIEJKX0lPLCBhbmQgal9saXN0X2xvY2sgaXMgbm90IG5lZWRlZC4KQEAgLTgyNyw3ICs3NDMsNyBAQAogCiAJSl9BU1NFUlQgKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9zaGFkb3dfbGlzdCA9PSBOVUxMKTsKIAotCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgNVxuIik7CisJamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSA0XG4iKTsKIAogCS8qIEhlcmUgd2Ugd2FpdCBmb3IgdGhlIHJldm9rZSByZWNvcmQgYW5kIGRlc2NyaXB0b3IgcmVjb3JkIGJ1ZmZlcnMgKi8KICB3YWl0X2Zvcl9jdGxidWY6CkBAIC04NTQsNyArNzcwLDcgQEAKIAkJLyogQUtQTTogYmZvcmdldCBoZXJlICovCiAJfQogCi0JamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSA2XG4iKTsKKwlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDVcbiIpOwogCiAJaWYgKCFKQkQyX0hBU19JTkNPTVBBVF9GRUFUVVJFKGpvdXJuYWwsCiAJCUpCRDJfRkVBVFVSRV9JTkNPTVBBVF9BU1lOQ19DT01NSVQpKSB7CkBAIC04NzQsOSArNzkwLDkgQEAKICAgICAgICAgICAgdHJhbnNhY3Rpb24gY2FuIGJlIHJlbW92ZWQgZnJvbSBhbnkgY2hlY2twb2ludCBsaXN0IGl0IHdhcyBvbgogICAgICAgICAgICBiZWZvcmUuICovCiAKLQlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDdcbiIpOworCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgNlxuIik7CiAKLQlKX0FTU0VSVChjb21taXRfdHJhbnNhY3Rpb24tPnRfc3luY19kYXRhbGlzdCA9PSBOVUxMKTsKKwlKX0FTU0VSVChsaXN0X2VtcHR5KCZjb21taXRfdHJhbnNhY3Rpb24tPnRfaW5vZGVfbGlzdCkpOwogCUpfQVNTRVJUKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9idWZmZXJzID09IE5VTEwpOwogCUpfQVNTRVJUKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9jaGVja3BvaW50X2xpc3QgPT0gTlVMTCk7CiAJSl9BU1NFUlQoY29tbWl0X3RyYW5zYWN0aW9uLT50X2lvYnVmX2xpc3QgPT0gTlVMTCk7CkBAIC05OTcsNyArOTEzLDcgQEAKIAogCS8qIERvbmUgd2l0aCB0aGlzIHRyYW5zYWN0aW9uISAqLwogCi0JamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSA4XG4iKTsKKwlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDdcbiIpOwogCiAJSl9BU1NFUlQoY29tbWl0X3RyYW5zYWN0aW9uLT50X3N0YXRlID09IFRfQ09NTUlUKTsKIApkaWZmIC0tZ2l0IGEvZnMvamJkMi9qb3VybmFsLmMgYi9mcy9qYmQyL2pvdXJuYWwuYwppbmRleCAyZTI0NTY3Li5iMjZjNmQ5IDEwMDY0NAotLS0gYS9mcy9qYmQyL2pvdXJuYWwuYworKysgYi9mcy9qYmQyL2pvdXJuYWwuYwpAQCAtNTAsNyArNTAsNiBAQAogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfZ2V0X3dyaXRlX2FjY2Vzcyk7CiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9nZXRfY3JlYXRlX2FjY2Vzcyk7CiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9nZXRfdW5kb19hY2Nlc3MpOwotRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfZGlydHlfZGF0YSk7CiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9kaXJ0eV9tZXRhZGF0YSk7CiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9yZWxlYXNlX2J1ZmZlcik7CiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9mb3JnZXQpOwpAQCAtODIsNiArODEsMTAgQEAKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2ludmFsaWRhdGVwYWdlKTsKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX3RyeV90b19mcmVlX2J1ZmZlcnMpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfZm9yY2VfY29tbWl0KTsKK0VYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2ZpbGVfaW5vZGUpOworRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfaW5pdF9qYmRfaW5vZGUpOworRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfcmVsZWFzZV9qYmRfaW5vZGUpOworRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfYmVnaW5fb3JkZXJlZF90cnVuY2F0ZSk7CiAKIHN0YXRpYyBpbnQgam91cm5hbF9jb252ZXJ0X3N1cGVyYmxvY2tfdjEoam91cm5hbF90ICosIGpvdXJuYWxfc3VwZXJibG9ja190ICopOwogc3RhdGljIHZvaWQgX19qb3VybmFsX2Fib3J0X3NvZnQgKGpvdXJuYWxfdCAqam91cm5hbCwgaW50IGVycm5vKTsKQEAgLTIxOTUsNiArMjE5OCw1NCBAQAogfQogCiAvKgorICogSW5pdGlhbGl6ZSBqYmQgaW5vZGUgaGVhZAorICovCit2b2lkIGpiZDJfam91cm5hbF9pbml0X2piZF9pbm9kZShzdHJ1Y3QgamJkMl9pbm9kZSAqamlub2RlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworCWppbm9kZS0+aV90cmFuc2FjdGlvbiA9IE5VTEw7CisJamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24gPSBOVUxMOworCWppbm9kZS0+aV92ZnNfaW5vZGUgPSBpbm9kZTsKKwlqaW5vZGUtPmlfZmxhZ3MgPSAwOworCUlOSVRfTElTVF9IRUFEKCZqaW5vZGUtPmlfbGlzdCk7Cit9CisKKy8qCisgKiBGdW5jdGlvbiB0byBiZSBjYWxsZWQgYmVmb3JlIHdlIHN0YXJ0IHJlbW92aW5nIGlub2RlIGZyb20gbWVtb3J5IChpLmUuLAorICogY2xlYXJfaW5vZGUoKSBpcyBhIGZpbmUgcGxhY2UgdG8gYmUgY2FsbGVkIGZyb20pLiBJdCByZW1vdmVzIGlub2RlIGZyb20KKyAqIHRyYW5zYWN0aW9uJ3MgbGlzdHMuCisgKi8KK3ZvaWQgamJkMl9qb3VybmFsX3JlbGVhc2VfamJkX2lub2RlKGpvdXJuYWxfdCAqam91cm5hbCwKKwkJCQkgICAgc3RydWN0IGpiZDJfaW5vZGUgKmppbm9kZSkKK3sKKwlpbnQgd3JpdGVvdXQgPSAwOworCisJaWYgKCFqb3VybmFsKQorCQlyZXR1cm47CityZXN0YXJ0OgorCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCS8qIElzIGNvbW1pdCB3cml0aW5nIG91dCBpbm9kZSAtIHdlIGhhdmUgdG8gd2FpdCAqLworCWlmIChqaW5vZGUtPmlfZmxhZ3MgJiBKSV9DT01NSVRfUlVOTklORykgeworCQl3YWl0X3F1ZXVlX2hlYWRfdCAqd3E7CisJCURFRklORV9XQUlUX0JJVCh3YWl0LCAmamlub2RlLT5pX2ZsYWdzLCBfX0pJX0NPTU1JVF9SVU5OSU5HKTsKKwkJd3EgPSBiaXRfd2FpdHF1ZXVlKCZqaW5vZGUtPmlfZmxhZ3MsIF9fSklfQ09NTUlUX1JVTk5JTkcpOworCQlwcmVwYXJlX3RvX3dhaXQod3EsICZ3YWl0LndhaXQsIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKKwkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKKwkJc2NoZWR1bGUoKTsKKwkJZmluaXNoX3dhaXQod3EsICZ3YWl0LndhaXQpOworCQlnb3RvIHJlc3RhcnQ7CisJfQorCisJLyogRG8gd2UgbmVlZCB0byB3YWl0IGZvciBkYXRhIHdyaXRlYmFjaz8gKi8KKwlpZiAoam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uID09IGppbm9kZS0+aV90cmFuc2FjdGlvbikKKwkJd3JpdGVvdXQgPSAxOworCWlmIChqaW5vZGUtPmlfdHJhbnNhY3Rpb24pIHsKKwkJbGlzdF9kZWwoJmppbm9kZS0+aV9saXN0KTsKKwkJamlub2RlLT5pX3RyYW5zYWN0aW9uID0gTlVMTDsKKwl9CisJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKK30KKworLyoKICAqIGRlYnVnZnMgdHVuYWJsZXMKICAqLwogI2lmZGVmIENPTkZJR19KQkQyX0RFQlVHCmRpZmYgLS1naXQgYS9mcy9qYmQyL3RyYW5zYWN0aW9uLmMgYi9mcy9qYmQyL3RyYW5zYWN0aW9uLmMKaW5kZXggZDZlMDA2ZS4uNGY3Y2FkYiAxMDA2NDQKLS0tIGEvZnMvamJkMi90cmFuc2FjdGlvbi5jCisrKyBiL2ZzL2piZDIvdHJhbnNhY3Rpb24uYwpAQCAtNDEsNyArNDEsNiBAQAogICoJbmV3IHRyYW5zYWN0aW9uCWFuZCB3ZSBjYW4ndCBibG9jayB3aXRob3V0IHByb3RlY3RpbmcgYWdhaW5zdCBvdGhlcgogICoJcHJvY2Vzc2VzIHRyeWluZyB0byB0b3VjaCB0aGUgam91cm5hbCB3aGlsZSBpdCBpcyBpbiB0cmFuc2l0aW9uLgogICoKLSAqIENhbGxlZCB1bmRlciBqX3N0YXRlX2xvY2sKICAqLwogCiBzdGF0aWMgdHJhbnNhY3Rpb25fdCAqCkBAIC01Miw2ICs1MSw3IEBACiAJdHJhbnNhY3Rpb24tPnRfdGlkID0gam91cm5hbC0+al90cmFuc2FjdGlvbl9zZXF1ZW5jZSsrOwogCXRyYW5zYWN0aW9uLT50X2V4cGlyZXMgPSBqaWZmaWVzICsgam91cm5hbC0+al9jb21taXRfaW50ZXJ2YWw7CiAJc3Bpbl9sb2NrX2luaXQoJnRyYW5zYWN0aW9uLT50X2hhbmRsZV9sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmdHJhbnNhY3Rpb24tPnRfaW5vZGVfbGlzdCk7CiAKIAkvKiBTZXQgdXAgdGhlIGNvbW1pdCB0aW1lciBmb3IgdGhlIG5ldyB0cmFuc2FjdGlvbi4gKi8KIAlqb3VybmFsLT5qX2NvbW1pdF90aW1lci5leHBpcmVzID0gcm91bmRfamlmZmllcyh0cmFuc2FjdGlvbi0+dF9leHBpcmVzKTsKQEAgLTk0MywxODMgKzk0Myw2IEBACiB9CiAKIC8qKgotICogaW50IGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhKCkgLSAgbWFyayBhIGJ1ZmZlciBhcyBjb250YWluaW5nIGRpcnR5IGRhdGEgd2hpY2gKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkcyB0byBiZSBmbHVzaGVkIGJlZm9yZSB3ZSBjYW4gY29tbWl0IHRoZQotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgdHJhbnNhY3Rpb24uCi0gKiBAaGFuZGxlOiB0cmFuc2FjdGlvbgotICogQGJoOiBidWZmZXJoZWFkIHRvIG1hcmsKLSAqCi0gKiBUaGUgYnVmZmVyIGlzIHBsYWNlZCBvbiB0aGUgdHJhbnNhY3Rpb24ncyBkYXRhIGxpc3QgYW5kIGlzIG1hcmtlZCBhcwotICogYmVsb25naW5nIHRvIHRoZSB0cmFuc2FjdGlvbi4KLSAqCi0gKiBSZXR1cm5zIGVycm9yIG51bWJlciBvciAwIG9uIHN1Y2Nlc3MuCi0gKgotICogamJkMl9qb3VybmFsX2RpcnR5X2RhdGEoKSBjYW4gYmUgY2FsbGVkIHZpYSBwYWdlX2xhdW5kZXItPmV4dDNfd3JpdGVwYWdlCi0gKiBieSBrc3dhcGQuCi0gKi8KLWludCBqYmQyX2pvdXJuYWxfZGlydHlfZGF0YShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQotewotCWpvdXJuYWxfdCAqam91cm5hbCA9IGhhbmRsZS0+aF90cmFuc2FjdGlvbi0+dF9qb3VybmFsOwotCWludCBuZWVkX2JyZWxzZSA9IDA7Ci0Jc3RydWN0IGpvdXJuYWxfaGVhZCAqamg7Ci0KLQlpZiAoaXNfaGFuZGxlX2Fib3J0ZWQoaGFuZGxlKSkKLQkJcmV0dXJuIDA7Ci0KLQlqaCA9IGpiZDJfam91cm5hbF9hZGRfam91cm5hbF9oZWFkKGJoKTsKLQlKQlVGRkVSX1RSQUNFKGpoLCAiZW50cnkiKTsKLQotCS8qCi0JICogVGhlIGJ1ZmZlciBjb3VsZCAqYWxyZWFkeSogYmUgZGlydHkuICBXcml0ZW91dCBjYW4gc3RhcnQKLQkgKiBhdCBhbnkgdGltZS4KLQkgKi8KLQlqYmRfZGVidWcoNCwgImpoOiAlcCwgdGlkOiVkXG4iLCBqaCwgaGFuZGxlLT5oX3RyYW5zYWN0aW9uLT50X3RpZCk7Ci0KLQkvKgotCSAqIFdoYXQgaWYgdGhlIGJ1ZmZlciBpcyBhbHJlYWR5IHBhcnQgb2YgYSBydW5uaW5nIHRyYW5zYWN0aW9uPwotCSAqCi0JICogVGhlcmUgYXJlIHR3byBjYXNlczoKLQkgKiAxKSBJdCBpcyBwYXJ0IG9mIHRoZSBjdXJyZW50IHJ1bm5pbmcgdHJhbnNhY3Rpb24uICBSZWZpbGUgaXQsCi0JICogICAganVzdCBpbiBjYXNlIHdlIGhhdmUgYWxsb2NhdGVkIGl0IGFzIG1ldGFkYXRhLCBkZWFsbG9jYXRlZAotCSAqICAgIGl0LCB0aGVuIHJlYWxsb2NhdGVkIGl0IGFzIGRhdGEuCi0JICogMikgSXQgaXMgcGFydCBvZiB0aGUgcHJldmlvdXMsIHN0aWxsLWNvbW1pdHRpbmcgdHJhbnNhY3Rpb24uCi0JICogICAgSWYgYWxsIHdlIHdhbnQgdG8gZG8gaXMgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGJ1ZmZlciB3aWxsIGJlCi0JICogICAgd3JpdHRlbiB0byBkaXNrIGJlZm9yZSB0aGlzIG5ldyB0cmFuc2FjdGlvbiBjb21taXRzLCB0aGVuCi0JICogICAgYmVpbmcgc3VyZSB0aGF0IHRoZSAqcHJldmlvdXMqIHRyYW5zYWN0aW9uIGhhcyB0aGlzIHNhbWUKLQkgKiAgICBwcm9wZXJ0eSBpcyBzdWZmaWNpZW50IGZvciB1cyEgIEp1c3QgbGVhdmUgaXQgb24gaXRzIG9sZAotCSAqICAgIHRyYW5zYWN0aW9uLgotCSAqCi0JICogSW4gY2FzZSAoMiksIHRoZSBidWZmZXIgbXVzdCBub3QgYWxyZWFkeSBleGlzdCBhcyBtZXRhZGF0YQotCSAqIC0tLSB0aGF0IHdvdWxkIHZpb2xhdGUgd3JpdGUgb3JkZXJpbmcgKGEgdHJhbnNhY3Rpb24gaXMgZnJlZQotCSAqIHRvIHdyaXRlIGl0cyBkYXRhIGF0IGFueSBwb2ludCwgZXZlbiBiZWZvcmUgdGhlIHByZXZpb3VzCi0JICogY29tbWl0dGluZyB0cmFuc2FjdGlvbiBoYXMgY29tbWl0dGVkKS4gIFRoZSBjYWxsZXIgbXVzdAotCSAqIG5ldmVyLCBldmVyIGFsbG93IHRoaXMgdG8gaGFwcGVuOiB0aGVyZSdzIG5vdGhpbmcgd2UgY2FuIGRvCi0JICogYWJvdXQgaXQgaW4gdGhpcyBsYXllci4KLQkgKi8KLQlqYmRfbG9ja19iaF9zdGF0ZShiaCk7Ci0Jc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0KLQkvKiBOb3cgdGhhdCB3ZSBoYXZlIGJoX3N0YXRlIGxvY2tlZCwgYXJlIHdlIHJlYWxseSBzdGlsbCBtYXBwZWQ/ICovCi0JaWYgKCFidWZmZXJfbWFwcGVkKGJoKSkgewotCQlKQlVGRkVSX1RSQUNFKGpoLCAidW5tYXBwZWQgYnVmZmVyLCBiYWlsaW5nIG91dCIpOwotCQlnb3RvIG5vX2pvdXJuYWw7Ci0JfQotCi0JaWYgKGpoLT5iX3RyYW5zYWN0aW9uKSB7Ci0JCUpCVUZGRVJfVFJBQ0UoamgsICJoYXMgdHJhbnNhY3Rpb24iKTsKLQkJaWYgKGpoLT5iX3RyYW5zYWN0aW9uICE9IGhhbmRsZS0+aF90cmFuc2FjdGlvbikgewotCQkJSkJVRkZFUl9UUkFDRShqaCwgImJlbG9uZ3MgdG8gb2xkZXIgdHJhbnNhY3Rpb24iKTsKLQkJCUpfQVNTRVJUX0pIKGpoLCBqaC0+Yl90cmFuc2FjdGlvbiA9PQotCQkJCQlqb3VybmFsLT5qX2NvbW1pdHRpbmdfdHJhbnNhY3Rpb24pOwotCi0JCQkvKiBAQEAgSVMgVEhJUyBUUlVFICA/ICovCi0JCQkvKgotCQkJICogTm90IGFueSBtb3JlLiAgU2NlbmFyaW86IHNvbWVvbmUgZG9lcyBhIHdyaXRlKCkKLQkJCSAqIGluIGRhdGE9am91cm5hbCBtb2RlLiAgVGhlIGJ1ZmZlcidzIHRyYW5zYWN0aW9uIGhhcwotCQkJICogbW92ZWQgaW50byBjb21taXQuICBUaGVuIHNvbWVvbmUgZG9lcyBhbm90aGVyCi0JCQkgKiB3cml0ZSgpIHRvIHRoZSBmaWxlLiAgV2UgZG8gdGhlIGZyb3plbiBkYXRhIGNvcHlvdXQKLQkJCSAqIGFuZCBzZXQgYl9uZXh0X3RyYW5zYWN0aW9uIHRvIHBvaW50IHRvIGpfcnVubmluZ190LgotCQkJICogQW5kIHdoaWxlIHdlJ3JlIGluIHRoYXQgc3RhdGUsIHNvbWVvbmUgZG9lcyBhCi0JCQkgKiB3cml0ZXBhZ2UoKSBpbiBhbiBhdHRlbXB0IHRvIHBhZ2VvdXQgdGhlIHNhbWUgYXJlYQotCQkJICogb2YgdGhlIGZpbGUgdmlhIGEgc2hhcmVkIG1hcHBpbmcuICBBdCBwcmVzZW50IHRoYXQKLQkJCSAqIGNhbGxzIGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhKCksIGFuZCB3ZSBnZXQgcmlnaHQgaGVyZS4KLQkJCSAqIEl0IG1heSBiZSB0b28gbGF0ZSB0byBqb3VybmFsIHRoZSBkYXRhLiAgU2ltcGx5Ci0JCQkgKiBmYWxsaW5nIHRocm91Z2ggdG8gdGhlIG5leHQgdGVzdCB3aWxsIHN1ZmZpY2U6IHRoZQotCQkJICogZGF0YSB3aWxsIGJlIGRpcnR5IGFuZCB3aWwgYmUgY2hlY2twb2ludGVkLiAgVGhlCi0JCQkgKiBvcmRlcmluZyBjb21tZW50cyBpbiB0aGUgbmV4dCBjb21tZW50IGJsb2NrIHN0aWxsCi0JCQkgKiBhcHBseS4KLQkJCSAqLwotCQkJLy9KX0FTU0VSVF9KSChqaCwgamgtPmJfbmV4dF90cmFuc2FjdGlvbiA9PSBOVUxMKTsKLQotCQkJLyoKLQkJCSAqIElmIHdlJ3JlIGpvdXJuYWxsaW5nIGRhdGEsIGFuZCB0aGlzIGJ1ZmZlciB3YXMKLQkJCSAqIHN1YmplY3QgdG8gYSB3cml0ZSgpLCBpdCBjb3VsZCBiZSBtZXRhZGF0YSwgZm9yZ2V0Ci0JCQkgKiBvciBzaGFkb3cgYWdhaW5zdCB0aGUgY29tbWl0dGluZyB0cmFuc2FjdGlvbi4gIE5vdywKLQkJCSAqIHNvbWVvbmUgaGFzIGRpcnRpZWQgdGhlIHNhbWUgZGFybiBwYWdlIHZpYSBhIG1hcHBpbmcKLQkJCSAqIGFuZCBpdCBpcyBiZWluZyB3cml0ZXBhZ2UoKSdkLgotCQkJICogV2UgKmNvdWxkKiBqdXN0IHN0ZWFsIHRoZSBwYWdlIGZyb20gY29tbWl0LCB3aXRoIHNvbWUKLQkJCSAqIGZhbmN5IGxvY2tpbmcgdGhlcmUuICBJbnN0ZWFkLCB3ZSBqdXN0IHNraXAgaXQgLQotCQkJICogZG9uJ3QgdGllIHRoZSBwYWdlJ3MgYnVmZmVycyB0byB0aGUgbmV3IHRyYW5zYWN0aW9uCi0JCQkgKiBhdCBhbGwuCi0JCQkgKiBJbXBsaWNhdGlvbjogaWYgd2UgY3Jhc2ggYmVmb3JlIHRoZSB3cml0ZXBhZ2UoKSBkYXRhCi0JCQkgKiBpcyB3cml0dGVuIGludG8gdGhlIGZpbGVzeXN0ZW0sIHJlY292ZXJ5IHdpbGwgcmVwbGF5Ci0JCQkgKiB0aGUgd3JpdGUoKSBkYXRhLgotCQkJICovCi0JCQlpZiAoamgtPmJfamxpc3QgIT0gQkpfTm9uZSAmJgotCQkJCQlqaC0+Yl9qbGlzdCAhPSBCSl9TeW5jRGF0YSAmJgotCQkJCQlqaC0+Yl9qbGlzdCAhPSBCSl9Mb2NrZWQpIHsKLQkJCQlKQlVGRkVSX1RSQUNFKGpoLCAiTm90IHN0ZWFsaW5nIik7Ci0JCQkJZ290byBub19qb3VybmFsOwotCQkJfQotCi0JCQkvKgotCQkJICogVGhpcyBidWZmZXIgbWF5IGJlIHVuZGVyZ29pbmcgd3JpdGVvdXQgaW4gY29tbWl0LiAgV2UKLQkJCSAqIGNhbid0IHJldHVybiBmcm9tIGhlcmUgYW5kIGxldCB0aGUgY2FsbGVyIGRpcnR5IGl0Ci0JCQkgKiBhZ2FpbiBiZWNhdXNlIHRoYXQgY2FuIGNhdXNlIHRoZSB3cml0ZS1vdXQgbG9vcCBpbgotCQkJICogY29tbWl0IHRvIG5ldmVyIHRlcm1pbmF0ZS4KLQkJCSAqLwotCQkJaWYgKGJ1ZmZlcl9kaXJ0eShiaCkpIHsKLQkJCQlnZXRfYmgoYmgpOwotCQkJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQkJamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JCQkJbmVlZF9icmVsc2UgPSAxOwotCQkJCXN5bmNfZGlydHlfYnVmZmVyKGJoKTsKLQkJCQlqYmRfbG9ja19iaF9zdGF0ZShiaCk7Ci0JCQkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQkJLyogU2luY2Ugd2UgZHJvcHBlZCB0aGUgbG9jay4uLiAqLwotCQkJCWlmICghYnVmZmVyX21hcHBlZChiaCkpIHsKLQkJCQkJSkJVRkZFUl9UUkFDRShqaCwgImJ1ZmZlciBnb3QgdW5tYXBwZWQiKTsKLQkJCQkJZ290byBub19qb3VybmFsOwotCQkJCX0KLQkJCQkvKiBUaGUgYnVmZmVyIG1heSBiZWNvbWUgbG9ja2VkIGFnYWluIGF0IGFueQotCQkJCSAgIHRpbWUgaWYgaXQgaXMgcmVkaXJ0aWVkICovCi0JCQl9Ci0KLQkJCS8qIGpvdXJuYWxfY2xlYW5fZGF0YV9saXN0KCkgbWF5IGhhdmUgZ290IHRoZXJlIGZpcnN0ICovCi0JCQlpZiAoamgtPmJfdHJhbnNhY3Rpb24gIT0gTlVMTCkgewotCQkJCUpCVUZGRVJfVFJBQ0UoamgsICJ1bmZpbGUgZnJvbSBjb21taXQiKTsKLQkJCQlfX2piZDJfam91cm5hbF90ZW1wX3VubGlua19idWZmZXIoamgpOwotCQkJCS8qIEl0IHN0aWxsIHBvaW50cyB0byB0aGUgY29tbWl0dGluZwotCQkJCSAqIHRyYW5zYWN0aW9uOyBtb3ZlIGl0IHRvIHRoaXMgb25lIHNvCi0JCQkJICogdGhhdCB0aGUgcmVmaWxlIGFzc2VydCBjaGVja3MgYXJlCi0JCQkJICogaGFwcHkuICovCi0JCQkJamgtPmJfdHJhbnNhY3Rpb24gPSBoYW5kbGUtPmhfdHJhbnNhY3Rpb247Ci0JCQl9Ci0JCQkvKiBUaGUgYnVmZmVyIHdpbGwgYmUgcmVmaWxlZCBiZWxvdyAqLwotCi0JCX0KLQkJLyoKLQkJICogU3BlY2lhbCBjYXNlIC0tLSB0aGUgYnVmZmVyIG1pZ2h0IGFjdHVhbGx5IGhhdmUgYmVlbgotCQkgKiBhbGxvY2F0ZWQgYW5kIHRoZW4gaW1tZWRpYXRlbHkgZGVhbGxvY2F0ZWQgaW4gdGhlIHByZXZpb3VzLAotCQkgKiBjb21taXR0aW5nIHRyYW5zYWN0aW9uLCBzbyBtaWdodCBzdGlsbCBiZSBsZWZ0IG9uIHRoYXQKLQkJICogdHJhbnNhY3Rpb24ncyBtZXRhZGF0YSBsaXN0cy4KLQkJICovCi0JCWlmIChqaC0+Yl9qbGlzdCAhPSBCSl9TeW5jRGF0YSAmJiBqaC0+Yl9qbGlzdCAhPSBCSl9Mb2NrZWQpIHsKLQkJCUpCVUZGRVJfVFJBQ0UoamgsICJub3Qgb24gY29ycmVjdCBkYXRhIGxpc3Q6IHVuZmlsZSIpOwotCQkJSl9BU1NFUlRfSkgoamgsIGpoLT5iX2psaXN0ICE9IEJKX1NoYWRvdyk7Ci0JCQlfX2piZDJfam91cm5hbF90ZW1wX3VubGlua19idWZmZXIoamgpOwotCQkJamgtPmJfdHJhbnNhY3Rpb24gPSBoYW5kbGUtPmhfdHJhbnNhY3Rpb247Ci0JCQlKQlVGRkVSX1RSQUNFKGpoLCAiZmlsZSBhcyBkYXRhIik7Ci0JCQlfX2piZDJfam91cm5hbF9maWxlX2J1ZmZlcihqaCwgaGFuZGxlLT5oX3RyYW5zYWN0aW9uLAotCQkJCQkJQkpfU3luY0RhdGEpOwotCQl9Ci0JfSBlbHNlIHsKLQkJSkJVRkZFUl9UUkFDRShqaCwgIm5vdCBvbiBhIHRyYW5zYWN0aW9uIik7Ci0JCV9famJkMl9qb3VybmFsX2ZpbGVfYnVmZmVyKGpoLCBoYW5kbGUtPmhfdHJhbnNhY3Rpb24sIEJKX1N5bmNEYXRhKTsKLQl9Ci1ub19qb3VybmFsOgotCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JaWYgKG5lZWRfYnJlbHNlKSB7Ci0JCUJVRkZFUl9UUkFDRShiaCwgImJyZWxzZSIpOwotCQlfX2JyZWxzZShiaCk7Ci0JfQotCUpCVUZGRVJfVFJBQ0UoamgsICJleGl0Iik7Ci0JamJkMl9qb3VybmFsX3B1dF9qb3VybmFsX2hlYWQoamgpOwotCXJldHVybiAwOwotfQotCi0vKioKICAqIGludCBqYmQyX2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoKSAtICBtYXJrIGEgYnVmZmVyIGFzIGNvbnRhaW5pbmcgZGlydHkgbWV0YWRhdGEKICAqIEBoYW5kbGU6IHRyYW5zYWN0aW9uIHRvIGFkZCBidWZmZXIgdG8uCiAgKiBAYmg6IGJ1ZmZlciB0byBtYXJrCkBAIC0xNTQxLDEwICsxMzY0LDEwIEBACiAgKiBSZW1vdmUgYSBidWZmZXIgZnJvbSB0aGUgYXBwcm9wcmlhdGUgdHJhbnNhY3Rpb24gbGlzdC4KICAqCiAgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBjYW4gKmNoYW5nZSogdGhlIHZhbHVlIG9mCi0gKiBiaC0+Yl90cmFuc2FjdGlvbi0+dF9zeW5jX2RhdGFsaXN0LCB0X2J1ZmZlcnMsIHRfZm9yZ2V0LAotICogdF9pb2J1Zl9saXN0LCB0X3NoYWRvd19saXN0LCB0X2xvZ19saXN0IG9yIHRfcmVzZXJ2ZWRfbGlzdC4gIElmIHRoZSBjYWxsZXIKLSAqIGlzIGhvbGRpbmcgb250byBhIGNvcHkgb2Ygb25lIG9mIHRoZWUgcG9pbnRlcnMsIGl0IGNvdWxkIGdvIGJhZC4KLSAqIEdlbmVyYWxseSB0aGUgY2FsbGVyIG5lZWRzIHRvIHJlLXJlYWQgdGhlIHBvaW50ZXIgZnJvbSB0aGUgdHJhbnNhY3Rpb25fdC4KKyAqIGJoLT5iX3RyYW5zYWN0aW9uLT50X2J1ZmZlcnMsIHRfZm9yZ2V0LCB0X2lvYnVmX2xpc3QsIHRfc2hhZG93X2xpc3QsCisgKiB0X2xvZ19saXN0IG9yIHRfcmVzZXJ2ZWRfbGlzdC4gIElmIHRoZSBjYWxsZXIgaXMgaG9sZGluZyBvbnRvIGEgY29weSBvZiBvbmUKKyAqIG9mIHRoZXNlIHBvaW50ZXJzLCBpdCBjb3VsZCBnbyBiYWQuICBHZW5lcmFsbHkgdGhlIGNhbGxlciBuZWVkcyB0byByZS1yZWFkCisgKiB0aGUgcG9pbnRlciBmcm9tIHRoZSB0cmFuc2FjdGlvbl90LgogICoKICAqIENhbGxlZCB1bmRlciBqX2xpc3RfbG9jay4gIFRoZSBqb3VybmFsIG1heSBub3QgYmUgbG9ja2VkLgogICovCkBAIC0xNTY2LDkgKzEzODksNiBAQAogCXN3aXRjaCAoamgtPmJfamxpc3QpIHsKIAljYXNlIEJKX05vbmU6CiAJCXJldHVybjsKLQljYXNlIEJKX1N5bmNEYXRhOgotCQlsaXN0ID0gJnRyYW5zYWN0aW9uLT50X3N5bmNfZGF0YWxpc3Q7Ci0JCWJyZWFrOwogCWNhc2UgQkpfTWV0YWRhdGE6CiAJCXRyYW5zYWN0aW9uLT50X25yX2J1ZmZlcnMtLTsKIAkJSl9BU1NFUlRfSkgoamgsIHRyYW5zYWN0aW9uLT50X25yX2J1ZmZlcnMgPj0gMCk7CkBAIC0xNTg5LDkgKzE0MDksNiBAQAogCWNhc2UgQkpfUmVzZXJ2ZWQ6CiAJCWxpc3QgPSAmdHJhbnNhY3Rpb24tPnRfcmVzZXJ2ZWRfbGlzdDsKIAkJYnJlYWs7Ci0JY2FzZSBCSl9Mb2NrZWQ6Ci0JCWxpc3QgPSAmdHJhbnNhY3Rpb24tPnRfbG9ja2VkX2xpc3Q7Ci0JCWJyZWFrOwogCX0KIAogCV9fYmxpc3RfZGVsX2J1ZmZlcihsaXN0LCBqaCk7CkBAIC0xNjM0LDE1ICsxNDUxLDcgQEAKIAkJZ290byBvdXQ7CiAKIAlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQlpZiAoamgtPmJfdHJhbnNhY3Rpb24gIT0gTlVMTCAmJiBqaC0+Yl9jcF90cmFuc2FjdGlvbiA9PSBOVUxMKSB7Ci0JCWlmIChqaC0+Yl9qbGlzdCA9PSBCSl9TeW5jRGF0YSB8fCBqaC0+Yl9qbGlzdCA9PSBCSl9Mb2NrZWQpIHsKLQkJCS8qIEEgd3JpdHRlbi1iYWNrIG9yZGVyZWQgZGF0YSBidWZmZXIgKi8KLQkJCUpCVUZGRVJfVFJBQ0UoamgsICJyZWxlYXNlIGRhdGEiKTsKLQkJCV9famJkMl9qb3VybmFsX3VuZmlsZV9idWZmZXIoamgpOwotCQkJamJkMl9qb3VybmFsX3JlbW92ZV9qb3VybmFsX2hlYWQoYmgpOwotCQkJX19icmVsc2UoYmgpOwotCQl9Ci0JfSBlbHNlIGlmIChqaC0+Yl9jcF90cmFuc2FjdGlvbiAhPSBOVUxMICYmIGpoLT5iX3RyYW5zYWN0aW9uID09IE5VTEwpIHsKKwlpZiAoamgtPmJfY3BfdHJhbnNhY3Rpb24gIT0gTlVMTCAmJiBqaC0+Yl90cmFuc2FjdGlvbiA9PSBOVUxMKSB7CiAJCS8qIHdyaXR0ZW4tYmFjayBjaGVja3BvaW50ZWQgbWV0YWRhdGEgYnVmZmVyICovCiAJCWlmIChqaC0+Yl9qbGlzdCA9PSBCSl9Ob25lKSB7CiAJCQlKQlVGRkVSX1RSQUNFKGpoLCAicmVtb3ZlIGZyb20gY2hlY2twb2ludCBsaXN0Iik7CkBAIC0xNjU2LDEyICsxNDY1LDQzIEBACiAJcmV0dXJuOwogfQogCisvKgorICogamJkMl9qb3VybmFsX3RyeV90b19mcmVlX2J1ZmZlcnMoKSBjb3VsZCByYWNlIHdpdGgKKyAqIGpiZDJfam91cm5hbF9jb21taXRfdHJhbnNhY3Rpb24oKS4gVGhlIGxhdGVyIG1pZ2h0IHN0aWxsIGhvbGQgdGhlCisgKiByZWZlcmVuY2UgY291bnQgdG8gdGhlIGJ1ZmZlcnMgd2hlbiBpbnNwZWN0aW5nIHRoZW0gb24KKyAqIHRfc3luY2RhdGFfbGlzdCBvciB0X2xvY2tlZF9saXN0LgorICoKKyAqIGpiZDJfam91cm5hbF90cnlfdG9fZnJlZV9idWZmZXJzKCkgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8KKyAqIHdhaXQgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIHRvIGZpbmlzaCBzeW5jaW5nIGRhdGEgYnVmZmVycywgYmVmb3JlCisgKiB0cnkgdG8gZnJlZSB0aGF0IGJ1ZmZlci4KKyAqCisgKiBDYWxsZWQgd2l0aCBqb3VybmFsLT5qX3N0YXRlX2xvY2sgaG9sZC4KKyAqLworc3RhdGljIHZvaWQgamJkMl9qb3VybmFsX3dhaXRfZm9yX3RyYW5zYWN0aW9uX3N5bmNfZGF0YShqb3VybmFsX3QgKmpvdXJuYWwpCit7CisJdHJhbnNhY3Rpb25fdCAqdHJhbnNhY3Rpb247CisJdGlkX3QgdGlkOworCisJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOworCXRyYW5zYWN0aW9uID0gam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uOworCisJaWYgKCF0cmFuc2FjdGlvbikgeworCQlzcGluX3VubG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKKwkJcmV0dXJuOworCX0KKworCXRpZCA9IHRyYW5zYWN0aW9uLT50X3RpZDsKKwlzcGluX3VubG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKKwlqYmQyX2xvZ193YWl0X2NvbW1pdChqb3VybmFsLCB0aWQpOworfQogCiAvKioKICAqIGludCBqYmQyX2pvdXJuYWxfdHJ5X3RvX2ZyZWVfYnVmZmVycygpIC0gdHJ5IHRvIGZyZWUgcGFnZSBidWZmZXJzLgogICogQGpvdXJuYWw6IGpvdXJuYWwgZm9yIG9wZXJhdGlvbgogICogQHBhZ2U6IHRvIHRyeSBhbmQgZnJlZQotICogQHVudXNlZF9nZnBfbWFzazogdW51c2VkCisgKiBAZ2ZwX21hc2s6IHdlIHVzZSB0aGUgbWFzayB0byBkZXRlY3QgaG93IGhhcmQgc2hvdWxkIHdlIHRyeSB0byByZWxlYXNlCisgKiBidWZmZXJzLiBJZiBfX0dGUF9XQUlUIGFuZCBfX0dGUF9GUyBpcyBzZXQsIHdlIHdhaXQgZm9yIGNvbW1pdCBjb2RlIHRvCisgKiByZWxlYXNlIHRoZSBidWZmZXJzLgogICoKICAqCiAgKiBGb3IgYWxsIHRoZSBidWZmZXJzIG9uIHRoaXMgcGFnZSwKQEAgLTE2OTAsOSArMTUzMCwxMSBAQAogICogam91cm5hbF90cnlfdG9fZnJlZV9idWZmZXIoKSBpcyBjaGFuZ2luZyBpdHMgc3RhdGUuICBCdXQgdGhhdAogICogY2Fubm90IGhhcHBlbiBiZWNhdXNlIHdlIG5ldmVyIHJlYWxsb2NhdGUgZnJlZWQgZGF0YSBhcyBtZXRhZGF0YQogICogd2hpbGUgdGhlIGRhdGEgaXMgcGFydCBvZiBhIHRyYW5zYWN0aW9uLiAgWWVzPworICoKKyAqIFJldHVybiAwIG9uIGZhaWx1cmUsIDEgb24gc3VjY2VzcwogICovCiBpbnQgamJkMl9qb3VybmFsX3RyeV90b19mcmVlX2J1ZmZlcnMoam91cm5hbF90ICpqb3VybmFsLAotCQkJCXN0cnVjdCBwYWdlICpwYWdlLCBnZnBfdCB1bnVzZWRfZ2ZwX21hc2spCisJCQkJc3RydWN0IHBhZ2UgKnBhZ2UsIGdmcF90IGdmcF9tYXNrKQogewogCXN0cnVjdCBidWZmZXJfaGVhZCAqaGVhZDsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOwpAQCAtMTcwOCw3ICsxNTUwLDggQEAKIAkJLyoKIAkJICogV2UgdGFrZSBvdXIgb3duIHJlZiBhZ2FpbnN0IHRoZSBqb3VybmFsX2hlYWQgaGVyZSB0byBhdm9pZAogCQkgKiBoYXZpbmcgdG8gYWRkIHRvbnMgb2YgbG9ja2luZyBhcm91bmQgZWFjaCBpbnN0YW5jZSBvZgotCQkgKiBqYmQyX2pvdXJuYWxfcmVtb3ZlX2pvdXJuYWxfaGVhZCgpIGFuZCBqYmQyX2pvdXJuYWxfcHV0X2pvdXJuYWxfaGVhZCgpLgorCQkgKiBqYmQyX2pvdXJuYWxfcmVtb3ZlX2pvdXJuYWxfaGVhZCgpIGFuZAorCQkgKiBqYmQyX2pvdXJuYWxfcHV0X2pvdXJuYWxfaGVhZCgpLgogCQkgKi8KIAkJamggPSBqYmQyX2pvdXJuYWxfZ3JhYl9qb3VybmFsX2hlYWQoYmgpOwogCQlpZiAoIWpoKQpAQCAtMTcyMSw3ICsxNTY0LDI4IEBACiAJCWlmIChidWZmZXJfamJkKGJoKSkKIAkJCWdvdG8gYnVzeTsKIAl9IHdoaWxlICgoYmggPSBiaC0+Yl90aGlzX3BhZ2UpICE9IGhlYWQpOworCiAJcmV0ID0gdHJ5X3RvX2ZyZWVfYnVmZmVycyhwYWdlKTsKKworCS8qCisJICogVGhlcmUgYXJlIGEgbnVtYmVyIG9mIHBsYWNlcyB3aGVyZSBqYmQyX2pvdXJuYWxfdHJ5X3RvX2ZyZWVfYnVmZmVycygpCisJICogY291bGQgcmFjZSB3aXRoIGpiZDJfam91cm5hbF9jb21taXRfdHJhbnNhY3Rpb24oKSwgdGhlIGxhdGVyIHN0aWxsCisJICogaG9sZHMgdGhlIHJlZmVyZW5jZSB0byB0aGUgYnVmZmVycyB0byBmcmVlIHdoaWxlIHByb2Nlc3NpbmcgdGhlbS4KKwkgKiB0cnlfdG9fZnJlZV9idWZmZXJzKCkgZmFpbGVkIHRvIGZyZWUgdGhvc2UgYnVmZmVycy4gU29tZSBvZiB0aGUKKwkgKiBjYWxsZXIgb2YgcmVsZWFzZXBhZ2UoKSByZXF1ZXN0IHBhZ2UgYnVmZmVycyB0byBiZSBkcm9wcGVkLCBvdGhlcndpc2UKKwkgKiB0cmVhdCB0aGUgZmFpbC10by1mcmVlIGFzIGVycm9ycyAoc3VjaCBhcyBnZW5lcmljX2ZpbGVfZGlyZWN0X0lPKCkpCisJICoKKwkgKiBTbywgaWYgdGhlIGNhbGxlciBvZiB0cnlfdG9fcmVsZWFzZV9wYWdlKCkgd2FudHMgdGhlIHN5bmNocm9ub3VzCisJICogYmVoYXZpb3VyKGkuZSBtYWtlIHN1cmUgYnVmZmVycyBhcmUgZHJvcHBlZCB1cG9uIHJldHVybiksCisJICogbGV0J3Mgd2FpdCBmb3IgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gdG8gZmluaXNoIGZsdXNoIG9mCisJICogZGlydHkgZGF0YSBidWZmZXJzLCB0aGVuIHRyeSB0byBmcmVlIHRob3NlIGJ1ZmZlcnMgYWdhaW4sCisJICogd2l0aCB0aGUgam91cm5hbCBsb2NrZWQuCisJICovCisJaWYgKHJldCA9PSAwICYmIChnZnBfbWFzayAmIF9fR0ZQX1dBSVQpICYmIChnZnBfbWFzayAmIF9fR0ZQX0ZTKSkgeworCQlqYmQyX2pvdXJuYWxfd2FpdF9mb3JfdHJhbnNhY3Rpb25fc3luY19kYXRhKGpvdXJuYWwpOworCQlyZXQgPSB0cnlfdG9fZnJlZV9idWZmZXJzKHBhZ2UpOworCX0KKwogYnVzeToKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTgyMyw2ICsxNjg3LDcgQEAKIAlpZiAoIWJ1ZmZlcl9qYmQoYmgpKQogCQlnb3RvIHphcF9idWZmZXJfdW5sb2NrZWQ7CiAKKwkvKiBPSywgd2UgaGF2ZSBkYXRhIGJ1ZmZlciBpbiBqb3VybmFsZWQgbW9kZSAqLwogCXNwaW5fbG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKIAlqYmRfbG9ja19iaF9zdGF0ZShiaCk7CiAJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CkBAIC0xODg2LDE1ICsxNzUxLDYgQEAKIAkJfQogCX0gZWxzZSBpZiAodHJhbnNhY3Rpb24gPT0gam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uKSB7CiAJCUpCVUZGRVJfVFJBQ0UoamgsICJvbiBjb21taXR0aW5nIHRyYW5zYWN0aW9uIik7Ci0JCWlmIChqaC0+Yl9qbGlzdCA9PSBCSl9Mb2NrZWQpIHsKLQkJCS8qCi0JCQkgKiBUaGUgYnVmZmVyIGlzIG9uIHRoZSBjb21taXR0aW5nIHRyYW5zYWN0aW9uJ3MgbG9ja2VkCi0JCQkgKiBsaXN0LiAgV2UgaGF2ZSB0aGUgYnVmZmVyIGxvY2tlZCwgc28gSS9PIGhhcwotCQkJICogY29tcGxldGVkLiAgU28gd2UgY2FuIG5haWwgdGhlIGJ1ZmZlciBub3cuCi0JCQkgKi8KLQkJCW1heV9mcmVlID0gX19kaXNwb3NlX2J1ZmZlcihqaCwgdHJhbnNhY3Rpb24pOwotCQkJZ290byB6YXBfYnVmZmVyOwotCQl9CiAJCS8qCiAJCSAqIElmIGl0IGlzIGNvbW1pdHRpbmcsIHdlIHNpbXBseSBjYW5ub3QgdG91Y2ggaXQuICBXZQogCQkgKiBjYW4gcmVtb3ZlIGl0J3MgbmV4dF90cmFuc2FjdGlvbiBwb2ludGVyIGZyb20gdGhlCkBAIC0yMDI3LDkgKzE4ODMsNiBAQAogCQlKX0FTU0VSVF9KSChqaCwgIWpoLT5iX2NvbW1pdHRlZF9kYXRhKTsKIAkJSl9BU1NFUlRfSkgoamgsICFqaC0+Yl9mcm96ZW5fZGF0YSk7CiAJCXJldHVybjsKLQljYXNlIEJKX1N5bmNEYXRhOgotCQlsaXN0ID0gJnRyYW5zYWN0aW9uLT50X3N5bmNfZGF0YWxpc3Q7Ci0JCWJyZWFrOwogCWNhc2UgQkpfTWV0YWRhdGE6CiAJCXRyYW5zYWN0aW9uLT50X25yX2J1ZmZlcnMrKzsKIAkJbGlzdCA9ICZ0cmFuc2FjdGlvbi0+dF9idWZmZXJzOwpAQCAtMjA0OSw5ICsxOTAyLDYgQEAKIAljYXNlIEJKX1Jlc2VydmVkOgogCQlsaXN0ID0gJnRyYW5zYWN0aW9uLT50X3Jlc2VydmVkX2xpc3Q7CiAJCWJyZWFrOwotCWNhc2UgQkpfTG9ja2VkOgotCQlsaXN0ID0gICZ0cmFuc2FjdGlvbi0+dF9sb2NrZWRfbGlzdDsKLQkJYnJlYWs7CiAJfQogCiAJX19ibGlzdF9hZGRfYnVmZmVyKGxpc3QsIGpoKTsKQEAgLTIxNDEsMyArMTk5MSw4OCBAQAogCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CiAJX19icmVsc2UoYmgpOwogfQorCisvKgorICogRmlsZSBpbm9kZSBpbiB0aGUgaW5vZGUgbGlzdCBvZiB0aGUgaGFuZGxlJ3MgdHJhbnNhY3Rpb24KKyAqLworaW50IGpiZDJfam91cm5hbF9maWxlX2lub2RlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUpCit7CisJdHJhbnNhY3Rpb25fdCAqdHJhbnNhY3Rpb24gPSBoYW5kbGUtPmhfdHJhbnNhY3Rpb247CisJam91cm5hbF90ICpqb3VybmFsID0gdHJhbnNhY3Rpb24tPnRfam91cm5hbDsKKworCWlmIChpc19oYW5kbGVfYWJvcnRlZChoYW5kbGUpKQorCQlyZXR1cm4gLUVJTzsKKworCWpiZF9kZWJ1Zyg0LCAiQWRkaW5nIGlub2RlICVsdSwgdGlkOiVkXG4iLCBqaW5vZGUtPmlfdmZzX2lub2RlLT5pX2lubywKKwkJCXRyYW5zYWN0aW9uLT50X3RpZCk7CisKKwkvKgorCSAqIEZpcnN0IGNoZWNrIHdoZXRoZXIgaW5vZGUgaXNuJ3QgYWxyZWFkeSBvbiB0aGUgdHJhbnNhY3Rpb24ncworCSAqIGxpc3RzIHdpdGhvdXQgdGFraW5nIHRoZSBsb2NrLiBOb3RlIHRoYXQgdGhpcyBjaGVjayBpcyBzYWZlCisJICogd2l0aG91dCB0aGUgbG9jayBhcyB3ZSBjYW5ub3QgcmFjZSB3aXRoIHNvbWVib2R5IHJlbW92aW5nIGlub2RlCisJICogZnJvbSB0aGUgdHJhbnNhY3Rpb24uIFRoZSByZWFzb24gaXMgdGhhdCB3ZSByZW1vdmUgaW5vZGUgZnJvbSB0aGUKKwkgKiB0cmFuc2FjdGlvbiBvbmx5IGluIGpvdXJuYWxfcmVsZWFzZV9qYmRfaW5vZGUoKSBhbmQgd2hlbiB3ZSBjb21taXQKKwkgKiB0aGUgdHJhbnNhY3Rpb24uIFdlIGFyZSBndWFyZGVkIGZyb20gdGhlIGZpcnN0IGNhc2UgYnkgaG9sZGluZworCSAqIGEgcmVmZXJlbmNlIHRvIHRoZSBpbm9kZS4gV2UgYXJlIHNhZmUgYWdhaW5zdCB0aGUgc2Vjb25kIGNhc2UKKwkgKiBiZWNhdXNlIGlmIGppbm9kZS0+aV90cmFuc2FjdGlvbiA9PSB0cmFuc2FjdGlvbiwgY29tbWl0IGNvZGUKKwkgKiBjYW5ub3QgdG91Y2ggdGhlIHRyYW5zYWN0aW9uIGJlY2F1c2Ugd2UgaG9sZCByZWZlcmVuY2UgdG8gaXQsCisJICogYW5kIGlmIGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uLCBjb21taXQgY29kZQorCSAqIHdpbGwgb25seSBmaWxlIHRoZSBpbm9kZSB3aGVyZSB3ZSB3YW50IGl0LgorCSAqLworCWlmIChqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24gfHwKKwkgICAgamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24pCisJCXJldHVybiAwOworCisJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisKKwlpZiAoamlub2RlLT5pX3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uIHx8CisJICAgIGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uKQorCQlnb3RvIGRvbmU7CisKKwkvKiBPbiBzb21lIGRpZmZlcmVudCB0cmFuc2FjdGlvbidzIGxpc3QgLSBzaG91bGQgYmUKKwkgKiB0aGUgY29tbWl0dGluZyBvbmUgKi8KKwlpZiAoamlub2RlLT5pX3RyYW5zYWN0aW9uKSB7CisJCUpfQVNTRVJUKGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID09IE5VTEwpOworCQlKX0FTU0VSVChqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPT0KKwkJCQkJam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uKTsKKwkJamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjsKKwkJZ290byBkb25lOworCX0KKwkvKiBOb3Qgb24gYW55IHRyYW5zYWN0aW9uIGxpc3QuLi4gKi8KKwlKX0FTU0VSVCghamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24pOworCWppbm9kZS0+aV90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uOworCWxpc3RfYWRkKCZqaW5vZGUtPmlfbGlzdCwgJnRyYW5zYWN0aW9uLT50X2lub2RlX2xpc3QpOworZG9uZToKKwlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdoZW4gaW5vZGUgaXMgam91cm5hbGVkIGluIG9yZGVyZWQgbW9kZQorICogYmVmb3JlIHRydW5jYXRpb24gaGFwcGVucy4gSXQgc3RhcnRzIHdyaXRlb3V0IG9mIHRydW5jYXRlZCBwYXJ0IGluCisgKiBjYXNlIGl0IGlzIGluIHRoZSBjb21taXR0aW5nIHRyYW5zYWN0aW9uIHNvIHRoYXQgd2Ugc3RhbmQgdG8gb3JkZXJlZAorICogbW9kZSBjb25zaXN0ZW5jeSBndWFyYW50ZWVzLgorICovCitpbnQgamJkMl9qb3VybmFsX2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUoc3RydWN0IGpiZDJfaW5vZGUgKmlub2RlLAorCQkJCQlsb2ZmX3QgbmV3X3NpemUpCit7CisJam91cm5hbF90ICpqb3VybmFsOworCXRyYW5zYWN0aW9uX3QgKmNvbW1pdF90cmFuczsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghaW5vZGUtPmlfdHJhbnNhY3Rpb24gJiYgIWlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24pCisJCWdvdG8gb3V0OworCWpvdXJuYWwgPSBpbm9kZS0+aV90cmFuc2FjdGlvbi0+dF9qb3VybmFsOworCXNwaW5fbG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKKwljb21taXRfdHJhbnMgPSBqb3VybmFsLT5qX2NvbW1pdHRpbmdfdHJhbnNhY3Rpb247CisJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7CisJaWYgKGlub2RlLT5pX3RyYW5zYWN0aW9uID09IGNvbW1pdF90cmFucykgeworCQlyZXQgPSBmaWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2UoaW5vZGUtPmlfdmZzX2lub2RlLT5pX21hcHBpbmcsCisJCQluZXdfc2l6ZSwgTExPTkdfTUFYKTsKKwkJaWYgKHJldCkKKwkJCWpiZDJfam91cm5hbF9hYm9ydChqb3VybmFsLCByZXQpOworCX0KK291dDoKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvZnMvamZzL2pmc19kZWJ1Zy5jIGIvZnMvamZzL2pmc19kZWJ1Zy5jCmluZGV4IGJmNmFiMTkuLjZhNzNkZTg0IDEwMDY0NAotLS0gYS9mcy9qZnMvamZzX2RlYnVnLmMKKysrIGIvZnMvamZzL2pmc19kZWJ1Zy5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgImpmc19pbmNvcmUuaCIKICNpbmNsdWRlICJqZnNfZmlsc3lzLmgiCkBAIC0zMCwyOSArMzEsMTkgQEAKIAogc3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqYmFzZTsKICNpZmRlZiBDT05GSUdfSkZTX0RFQlVHCi1zdGF0aWMgaW50IGxvZ2xldmVsX3JlYWQoY2hhciAqcGFnZSwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmYsCi0JCQkgaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKK3N0YXRpYyBpbnQgamZzX2xvZ2xldmVsX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiB7Ci0JaW50IGxlbjsKLQotCWxlbiA9IHNwcmludGYocGFnZSwgIiVkXG4iLCBqZnNsb2dsZXZlbCk7Ci0KLQlsZW4gLT0gb2ZmOwotCSpzdGFydCA9IHBhZ2UgKyBvZmY7Ci0KLQlpZiAobGVuID4gY291bnQpCi0JCWxlbiA9IGNvdW50OwotCWVsc2UKLQkJKmVvZiA9IDE7Ci0KLQlpZiAobGVuIDwgMCkKLQkJbGVuID0gMDsKLQotCXJldHVybiBsZW47CisJc2VxX3ByaW50ZihtLCAiJWRcbiIsIGpmc2xvZ2xldmVsKTsKKwlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBsb2dsZXZlbF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwKLQkJCXVuc2lnbmVkIGxvbmcgY291bnQsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGpmc19sb2dsZXZlbF9wcm9jX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIGpmc19sb2dsZXZlbF9wcm9jX3Nob3csIE5VTEwpOworfQorCitzdGF0aWMgc3NpemVfdCBqZnNfbG9nbGV2ZWxfcHJvY193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCiB7CiAJY2hhciBjOwogCkBAIC02NSwyMiArNTYsMzAgQEAKIAlqZnNsb2dsZXZlbCA9IGMgLSAnMCc7CiAJcmV0dXJuIGNvdW50OwogfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBqZnNfbG9nbGV2ZWxfcHJvY19mb3BzID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkub3BlbgkJPSBqZnNfbG9nbGV2ZWxfcHJvY19vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS5sbHNlZWsJCT0gc2VxX2xzZWVrLAorCS5yZWxlYXNlCT0gc2luZ2xlX3JlbGVhc2UsCisJLndyaXRlCQk9IGpmc19sb2dsZXZlbF9wcm9jX3dyaXRlLAorfTsKICNlbmRpZgogCiBzdGF0aWMgc3RydWN0IHsKIAljb25zdCBjaGFyCSpuYW1lOwotCXJlYWRfcHJvY190CSpyZWFkX2ZuOwotCXdyaXRlX3Byb2NfdAkqd3JpdGVfZm47CisJY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqcHJvY19mb3BzOwogfSBFbnRyaWVzW10gPSB7CiAjaWZkZWYgQ09ORklHX0pGU19TVEFUSVNUSUNTCi0JeyAibG1zdGF0cyIsCWpmc19sbXN0YXRzX3JlYWQsIH0sCi0JeyAidHhzdGF0cyIsCWpmc190eHN0YXRzX3JlYWQsIH0sCi0JeyAieHRzdGF0IiwJamZzX3h0c3RhdF9yZWFkLCB9LAotCXsgIm1wc3RhdCIsCWpmc19tcHN0YXRfcmVhZCwgfSwKKwl7ICJsbXN0YXRzIiwJJmpmc19sbXN0YXRzX3Byb2NfZm9wcywgfSwKKwl7ICJ0eHN0YXRzIiwJJmpmc190eHN0YXRzX3Byb2NfZm9wcywgfSwKKwl7ICJ4dHN0YXQiLAkmamZzX3h0c3RhdF9wcm9jX2ZvcHMsIH0sCisJeyAibXBzdGF0IiwJJmpmc19tcHN0YXRfcHJvY19mb3BzLCB9LAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0pGU19ERUJVRwotCXsgIlR4QW5jaG9yIiwJamZzX3R4YW5jaG9yX3JlYWQsIH0sCi0JeyAibG9nbGV2ZWwiLAlsb2dsZXZlbF9yZWFkLCBsb2dsZXZlbF93cml0ZSB9CisJeyAiVHhBbmNob3IiLAkmamZzX3R4YW5jaG9yX3Byb2NfZm9wcywgfSwKKwl7ICJsb2dsZXZlbCIsCSZqZnNfbG9nbGV2ZWxfcHJvY19mb3BzIH0KICNlbmRpZgogfTsKICNkZWZpbmUgTlBST0NFTlQJQVJSQVlfU0laRShFbnRyaWVzKQpAQCAtOTMsMTMgKzkyLDggQEAKIAkJcmV0dXJuOwogCWJhc2UtPm93bmVyID0gVEhJU19NT0RVTEU7CiAKLQlmb3IgKGkgPSAwOyBpIDwgTlBST0NFTlQ7IGkrKykgewotCQlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnA7Ci0JCWlmICgocCA9IGNyZWF0ZV9wcm9jX2VudHJ5KEVudHJpZXNbaV0ubmFtZSwgMCwgYmFzZSkpKSB7Ci0JCQlwLT5yZWFkX3Byb2MgPSBFbnRyaWVzW2ldLnJlYWRfZm47Ci0JCQlwLT53cml0ZV9wcm9jID0gRW50cmllc1tpXS53cml0ZV9mbjsKLQkJfQotCX0KKwlmb3IgKGkgPSAwOyBpIDwgTlBST0NFTlQ7IGkrKykKKwkJcHJvY19jcmVhdGUoRW50cmllc1tpXS5uYW1lLCAwLCBiYXNlLCBFbnRyaWVzW2ldLnByb2NfZm9wcyk7CiB9CiAKIHZvaWQgamZzX3Byb2NfY2xlYW4odm9pZCkKZGlmZiAtLWdpdCBhL2ZzL2pmcy9qZnNfZGVidWcuaCBiL2ZzL2pmcy9qZnNfZGVidWcuaAppbmRleCAwNDRjMWU2Li5lYWZkMTMwIDEwMDY0NAotLS0gYS9mcy9qZnMvamZzX2RlYnVnLmgKKysrIGIvZnMvamZzL2pmc19kZWJ1Zy5oCkBAIC02Miw3ICs2Miw3IEBACiAKIGV4dGVybiBpbnQgamZzbG9nbGV2ZWw7CiAKLWV4dGVybiBpbnQgamZzX3R4YW5jaG9yX3JlYWQoY2hhciAqLCBjaGFyICoqLCBvZmZfdCwgaW50LCBpbnQgKiwgdm9pZCAqKTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGpmc190eGFuY2hvcl9wcm9jX2ZvcHM7CiAKIC8qIGluZm9ybWF0aW9uIG1lc3NhZ2U6IGUuZy4sIGNvbmZpZ3VyYXRpb24sIG1ham9yIGV2ZW50ICovCiAjZGVmaW5lIGpmc19pbmZvKGZtdCwgYXJnLi4uKSBkbyB7CQkJXApAQCAtMTA1LDEwICsxMDUsMTAgQEAKICAqCS0tLS0tLS0tLS0KICAqLwogI2lmZGVmCUNPTkZJR19KRlNfU1RBVElTVElDUwotZXh0ZXJuIGludCBqZnNfbG1zdGF0c19yZWFkKGNoYXIgKiwgY2hhciAqKiwgb2ZmX3QsIGludCwgaW50ICosIHZvaWQgKik7Ci1leHRlcm4gaW50IGpmc190eHN0YXRzX3JlYWQoY2hhciAqLCBjaGFyICoqLCBvZmZfdCwgaW50LCBpbnQgKiwgdm9pZCAqKTsKLWV4dGVybiBpbnQgamZzX21wc3RhdF9yZWFkKGNoYXIgKiwgY2hhciAqKiwgb2ZmX3QsIGludCwgaW50ICosIHZvaWQgKik7Ci1leHRlcm4gaW50IGpmc194dHN0YXRfcmVhZChjaGFyICosIGNoYXIgKiosIG9mZl90LCBpbnQsIGludCAqLCB2b2lkICopOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgamZzX2xtc3RhdHNfcHJvY19mb3BzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgamZzX3R4c3RhdHNfcHJvY19mb3BzOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgamZzX21wc3RhdF9wcm9jX2ZvcHM7CitleHRlcm4gY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBqZnNfeHRzdGF0X3Byb2NfZm9wczsKIAogI2RlZmluZQlJTkNSRU1FTlQoeCkJCSgoeCkrKykKICNkZWZpbmUJREVDUkVNRU5UKHgpCQkoKHgpLS0pCmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX2R0cmVlLmggYi9mcy9qZnMvamZzX2R0cmVlLmgKaW5kZXggY2RhYzJkNS4uMjU0NWJiMyAxMDA2NDQKLS0tIGEvZnMvamZzL2pmc19kdHJlZS5oCisrKyBiL2ZzL2pmcy9qZnNfZHRyZWUuaApAQCAtMjQzLDkgKzI0Myw2IEBACiAjZGVmaW5lIEpGU19SRU1PVkUgMwogI2RlZmluZSBKRlNfUkVOQU1FIDQKIAotI2RlZmluZSBESVJFTlRTSVoobmFtbGVuKSBcCi0gICAgKCAoc2l6ZW9mKHN0cnVjdCBkaXJlbnQpIC0gMiooSkZTX05BTUVfTUFYKzEpICsgMiooKG5hbWxlbikrMSkgKyAzKSAmfiAzICkKLQogLyoKICAqIE1heGltdW0gZmlsZSBvZmZzZXQgZm9yIGRpcmVjdG9yaWVzLgogICovCmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX2ltYXAuYyBiL2ZzL2pmcy9qZnNfaW1hcC5jCmluZGV4IDczNGVjOTEuLmQ2MzYzZDggMTAwNjQ0Ci0tLSBhL2ZzL2pmcy9qZnNfaW1hcC5jCisrKyBiL2ZzL2pmcy9qZnNfaW1hcC5jCkBAIC0xNTIwLDcgKzE1MjAsNyBAQAogCQkJCQlqZnNfZXJyb3IoaXAtPmlfc2IsCiAJCQkJCQkgICJkaUFsbG9jOiBjYW4ndCBmaW5kIGZyZWUgYml0ICIKIAkJCQkJCSAgImluIHdtYXAiKTsKLQkJCQkJcmV0dXJuIEVJTzsKKwkJCQkJcmV0dXJuIC1FSU87CiAJCQkJfQogCiAJCQkJLyogZGV0ZXJtaW5lIHRoZSBpbm9kZSBudW1iZXIgd2l0aGluIHRoZQpkaWZmIC0tZ2l0IGEvZnMvamZzL2pmc19sb2dtZ3IuYyBiL2ZzL2pmcy9qZnNfbG9nbWdyLmMKaW5kZXggMzI1YTk2Ny4uY2QyZWMyOSAxMDA2NDQKLS0tIGEvZnMvamZzL2pmc19sb2dtZ3IuYworKysgYi9mcy9qZnMvamZzX2xvZ21nci5jCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSA8bGludXgvZnJlZXplci5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgImpmc19pbmNvcmUuaCIKICNpbmNsdWRlICJqZnNfZmlsc3lzLmgiCiAjaW5jbHVkZSAiamZzX21ldGFwYWdlLmgiCkBAIC0yNTAzLDEzICsyNTA0LDkgQEAKIH0KIAogI2lmZGVmIENPTkZJR19KRlNfU1RBVElTVElDUwotaW50IGpmc19sbXN0YXRzX3JlYWQoY2hhciAqYnVmZmVyLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZnNldCwgaW50IGxlbmd0aCwKLQkJICAgICAgaW50ICplb2YsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGpmc19sbXN0YXRzX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiB7Ci0JaW50IGxlbiA9IDA7Ci0Jb2ZmX3QgYmVnaW47Ci0KLQlsZW4gKz0gc3ByaW50ZihidWZmZXIsCisJc2VxX3ByaW50ZihtLAogCQkgICAgICAgIkpGUyBMb2dtZ3Igc3RhdHNcbiIKIAkJICAgICAgICI9PT09PT09PT09PT09PT09XG4iCiAJCSAgICAgICAiY29tbWl0cyA9ICVkXG4iCkBAIC0yNTIyLDE5ICsyNTE5LDE5IEBACiAJCSAgICAgICBsbVN0YXQucGFnZWRvbmUsCiAJCSAgICAgICBsbVN0YXQuZnVsbF9wYWdlLAogCQkgICAgICAgbG1TdGF0LnBhcnRpYWxfcGFnZSk7Ci0KLQliZWdpbiA9IG9mZnNldDsKLQkqc3RhcnQgPSBidWZmZXIgKyBiZWdpbjsKLQlsZW4gLT0gYmVnaW47Ci0KLQlpZiAobGVuID4gbGVuZ3RoKQotCQlsZW4gPSBsZW5ndGg7Ci0JZWxzZQotCQkqZW9mID0gMTsKLQotCWlmIChsZW4gPCAwKQotCQlsZW4gPSAwOwotCi0JcmV0dXJuIGxlbjsKKwlyZXR1cm4gMDsKIH0KKworc3RhdGljIGludCBqZnNfbG1zdGF0c19wcm9jX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIGpmc19sbXN0YXRzX3Byb2Nfc2hvdywgTlVMTCk7Cit9CisKK2NvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgamZzX2xtc3RhdHNfcHJvY19mb3BzID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkub3BlbgkJPSBqZnNfbG1zdGF0c19wcm9jX29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLmxsc2VlawkJPSBzZXFfbHNlZWssCisJLnJlbGVhc2UJPSBzaW5nbGVfcmVsZWFzZSwKK307CiAjZW5kaWYgLyogQ09ORklHX0pGU19TVEFUSVNUSUNTICovCmRpZmYgLS1naXQgYS9mcy9qZnMvamZzX21ldGFwYWdlLmMgYi9mcy9qZnMvamZzX21ldGFwYWdlLmMKaW5kZXggZDFlNjRmMi4uODU0ZmYwZSAxMDA2NDQKLS0tIGEvZnMvamZzL2pmc19tZXRhcGFnZS5jCisrKyBiL2ZzL2pmcy9qZnNfbWV0YXBhZ2UuYwpAQCAtMTksMTAgKzE5LDEyIEBACiAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvYmlvLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2J1ZmZlcl9oZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvbWVtcG9vbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAjaW5jbHVkZSAiamZzX2luY29yZS5oIgogI2luY2x1ZGUgImpmc19zdXBlcmJsb2NrLmgiCiAjaW5jbHVkZSAiamZzX2ZpbHN5cy5oIgpAQCAtODA0LDEzICs4MDYsOSBAQAogfQogCiAjaWZkZWYgQ09ORklHX0pGU19TVEFUSVNUSUNTCi1pbnQgamZzX21wc3RhdF9yZWFkKGNoYXIgKmJ1ZmZlciwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsIGludCBsZW5ndGgsCi0JCSAgICBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKK3N0YXRpYyBpbnQgamZzX21wc3RhdF9wcm9jX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQogewotCWludCBsZW4gPSAwOwotCW9mZl90IGJlZ2luOwotCi0JbGVuICs9IHNwcmludGYoYnVmZmVyLAorCXNlcV9wcmludGYobSwKIAkJICAgICAgICJKRlMgTWV0YXBhZ2Ugc3RhdGlzdGljc1xuIgogCQkgICAgICAgIj09PT09PT09PT09PT09PT09PT09PT09XG4iCiAJCSAgICAgICAicGFnZSBhbGxvY2F0aW9ucyA9ICVkXG4iCkBAIC04MTksMTkgKzgxNywxOSBAQAogCQkgICAgICAgbXBTdGF0LnBhZ2VhbGxvYywKIAkJICAgICAgIG1wU3RhdC5wYWdlZnJlZSwKIAkJICAgICAgIG1wU3RhdC5sb2Nrd2FpdCk7Ci0KLQliZWdpbiA9IG9mZnNldDsKLQkqc3RhcnQgPSBidWZmZXIgKyBiZWdpbjsKLQlsZW4gLT0gYmVnaW47Ci0KLQlpZiAobGVuID4gbGVuZ3RoKQotCQlsZW4gPSBsZW5ndGg7Ci0JZWxzZQotCQkqZW9mID0gMTsKLQotCWlmIChsZW4gPCAwKQotCQlsZW4gPSAwOwotCi0JcmV0dXJuIGxlbjsKKwlyZXR1cm4gMDsKIH0KKworc3RhdGljIGludCBqZnNfbXBzdGF0X3Byb2Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgamZzX21wc3RhdF9wcm9jX3Nob3csIE5VTEwpOworfQorCitjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGpmc19tcHN0YXRfcHJvY19mb3BzID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkub3BlbgkJPSBqZnNfbXBzdGF0X3Byb2Nfb3BlbiwKKwkucmVhZAkJPSBzZXFfcmVhZCwKKwkubGxzZWVrCQk9IHNlcV9sc2VlaywKKwkucmVsZWFzZQk9IHNpbmdsZV9yZWxlYXNlLAorfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZnMvamZzL2pmc190eG5tZ3IuYyBiL2ZzL2pmcy9qZnNfdHhubWdyLmMKaW5kZXggZTdjNjBhZS4uZjI2ZTRkMCAxMDA2NDQKLS0tIGEvZnMvamZzL2pmc190eG5tZ3IuYworKysgYi9mcy9qZnMvamZzX3R4bm1nci5jCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlICJqZnNfaW5jb3JlLmgiCiAjaW5jbHVkZSAiamZzX2lub2RlLmgiCiAjaW5jbHVkZSAiamZzX2ZpbHN5cy5oIgpAQCAtMzAwOSwxMSArMzAxMCw4IEBACiB9CiAKICNpZiBkZWZpbmVkKENPTkZJR19QUk9DX0ZTKSAmJiBkZWZpbmVkKENPTkZJR19KRlNfREVCVUcpCi1pbnQgamZzX3R4YW5jaG9yX3JlYWQoY2hhciAqYnVmZmVyLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZnNldCwgaW50IGxlbmd0aCwKLQkJICAgICAgaW50ICplb2YsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGpmc190eGFuY2hvcl9wcm9jX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQogewotCWludCBsZW4gPSAwOwotCW9mZl90IGJlZ2luOwogCWNoYXIgKmZyZWV3YWl0OwogCWNoYXIgKmZyZWVsb2Nrd2FpdDsKIAljaGFyICpsb3dsb2Nrd2FpdDsKQEAgLTMwMjUsNyArMzAyMyw3IEBACiAJbG93bG9ja3dhaXQgPQogCSAgICB3YWl0cXVldWVfYWN0aXZlKCZUeEFuY2hvci5sb3dsb2Nrd2FpdCkgPyAiYWN0aXZlIiA6ICJlbXB0eSI7CiAKLQlsZW4gKz0gc3ByaW50ZihidWZmZXIsCisJc2VxX3ByaW50ZihtLAogCQkgICAgICAgIkpGUyBUeEFuY2hvclxuIgogCQkgICAgICAgIj09PT09PT09PT09PVxuIgogCQkgICAgICAgImZyZWV0aWQgPSAlZFxuIgpAQCAtMzA0NCwzMSArMzA0MiwyNyBAQAogCQkgICAgICAgVHhBbmNob3IudGxvY2tzSW5Vc2UsCiAJCSAgICAgICBqZnNfdGxvY2tzX2xvdywKIAkJICAgICAgIGxpc3RfZW1wdHkoJlR4QW5jaG9yLnVubG9ja19xdWV1ZSkgPyAiIiA6ICJub3QgIik7Ci0KLQliZWdpbiA9IG9mZnNldDsKLQkqc3RhcnQgPSBidWZmZXIgKyBiZWdpbjsKLQlsZW4gLT0gYmVnaW47Ci0KLQlpZiAobGVuID4gbGVuZ3RoKQotCQlsZW4gPSBsZW5ndGg7Ci0JZWxzZQotCQkqZW9mID0gMTsKLQotCWlmIChsZW4gPCAwKQotCQlsZW4gPSAwOwotCi0JcmV0dXJuIGxlbjsKKwlyZXR1cm4gMDsKIH0KKworc3RhdGljIGludCBqZnNfdHhhbmNob3JfcHJvY19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBqZnNfdHhhbmNob3JfcHJvY19zaG93LCBOVUxMKTsKK30KKworY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBqZnNfdHhhbmNob3JfcHJvY19mb3BzID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkub3BlbgkJPSBqZnNfdHhhbmNob3JfcHJvY19vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS5sbHNlZWsJCT0gc2VxX2xzZWVrLAorCS5yZWxlYXNlCT0gc2luZ2xlX3JlbGVhc2UsCit9OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19QUk9DX0ZTKSAmJiBkZWZpbmVkKENPTkZJR19KRlNfU1RBVElTVElDUykKLWludCBqZnNfdHhzdGF0c19yZWFkKGNoYXIgKmJ1ZmZlciwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsIGludCBsZW5ndGgsCi0JCSAgICAgaW50ICplb2YsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGpmc190eHN0YXRzX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiB7Ci0JaW50IGxlbiA9IDA7Ci0Jb2ZmX3QgYmVnaW47Ci0KLQlsZW4gKz0gc3ByaW50ZihidWZmZXIsCisJc2VxX3ByaW50ZihtLAogCQkgICAgICAgIkpGUyBUeFN0YXRzXG4iCiAJCSAgICAgICAiPT09PT09PT09PT1cbiIKIAkJICAgICAgICJjYWxscyB0byB0eEJlZ2luID0gJWRcbiIKQEAgLTMwODksMTkgKzMwODMsMTkgQEAKIAkJICAgICAgIFR4U3RhdC50eEJlZ2luQW5vbl9sb2Nrc2xvdywKIAkJICAgICAgIFR4U3RhdC50eExvY2tBbGxvYywKIAkJICAgICAgIFR4U3RhdC50eExvY2tBbGxvY19mcmVlbG9jayk7Ci0KLQliZWdpbiA9IG9mZnNldDsKLQkqc3RhcnQgPSBidWZmZXIgKyBiZWdpbjsKLQlsZW4gLT0gYmVnaW47Ci0KLQlpZiAobGVuID4gbGVuZ3RoKQotCQlsZW4gPSBsZW5ndGg7Ci0JZWxzZQotCQkqZW9mID0gMTsKLQotCWlmIChsZW4gPCAwKQotCQlsZW4gPSAwOwotCi0JcmV0dXJuIGxlbjsKKwlyZXR1cm4gMDsKIH0KKworc3RhdGljIGludCBqZnNfdHhzdGF0c19wcm9jX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIGpmc190eHN0YXRzX3Byb2Nfc2hvdywgTlVMTCk7Cit9CisKK2NvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgamZzX3R4c3RhdHNfcHJvY19mb3BzID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkub3BlbgkJPSBqZnNfdHhzdGF0c19wcm9jX29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLmxsc2VlawkJPSBzZXFfbHNlZWssCisJLnJlbGVhc2UJPSBzaW5nbGVfcmVsZWFzZSwKK307CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2ZzL2pmcy9qZnNfeHRyZWUuYyBiL2ZzL2pmcy9qZnNfeHRyZWUuYwppbmRleCA1YTYxZWJmLi5hZTNhY2FmIDEwMDY0NAotLS0gYS9mcy9qZnMvamZzX3h0cmVlLmMKKysrIGIvZnMvamZzL2pmc194dHJlZS5jCkBAIC0yMCw3ICsyMCw5IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcXVvdGFvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgImpmc19pbmNvcmUuaCIKICNpbmNsdWRlICJqZnNfZmlsc3lzLmgiCiAjaW5jbHVkZSAiamZzX21ldGFwYWdlLmgiCkBAIC00MTM0LDEzICs0MTM2LDkgQEAKIH0KIAogI2lmZGVmIENPTkZJR19KRlNfU1RBVElTVElDUwotaW50IGpmc194dHN0YXRfcmVhZChjaGFyICpidWZmZXIsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2Zmc2V0LCBpbnQgbGVuZ3RoLAotCQkgICAgaW50ICplb2YsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGpmc194dHN0YXRfcHJvY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKIHsKLQlpbnQgbGVuID0gMDsKLQlvZmZfdCBiZWdpbjsKLQotCWxlbiArPSBzcHJpbnRmKGJ1ZmZlciwKKwlzZXFfcHJpbnRmKG0sCiAJCSAgICAgICAiSkZTIFh0cmVlIHN0YXRpc3RpY3NcbiIKIAkJICAgICAgICI9PT09PT09PT09PT09PT09PT09PVxuIgogCQkgICAgICAgInNlYXJjaGVzID0gJWRcbiIKQEAgLTQxNDksMTkgKzQxNDcsMTkgQEAKIAkJICAgICAgIHh0U3RhdC5zZWFyY2gsCiAJCSAgICAgICB4dFN0YXQuZmFzdFNlYXJjaCwKIAkJICAgICAgIHh0U3RhdC5zcGxpdCk7Ci0KLQliZWdpbiA9IG9mZnNldDsKLQkqc3RhcnQgPSBidWZmZXIgKyBiZWdpbjsKLQlsZW4gLT0gYmVnaW47Ci0KLQlpZiAobGVuID4gbGVuZ3RoKQotCQlsZW4gPSBsZW5ndGg7Ci0JZWxzZQotCQkqZW9mID0gMTsKLQotCWlmIChsZW4gPCAwKQotCQlsZW4gPSAwOwotCi0JcmV0dXJuIGxlbjsKKwlyZXR1cm4gMDsKIH0KKworc3RhdGljIGludCBqZnNfeHRzdGF0X3Byb2Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgamZzX3h0c3RhdF9wcm9jX3Nob3csIE5VTEwpOworfQorCitjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGpmc194dHN0YXRfcHJvY19mb3BzID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkub3BlbgkJPSBqZnNfeHRzdGF0X3Byb2Nfb3BlbiwKKwkucmVhZAkJPSBzZXFfcmVhZCwKKwkubGxzZWVrCQk9IHNlcV9sc2VlaywKKwkucmVsZWFzZQk9IHNpbmdsZV9yZWxlYXNlLAorfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZnMvamZzL25hbWVpLmMgYi9mcy9qZnMvbmFtZWkuYwppbmRleCAwYmE2Nzc4Li4yYWJhODIzIDEwMDY0NAotLS0gYS9mcy9qZnMvbmFtZWkuYworKysgYi9mcy9qZnMvbmFtZWkuYwpAQCAtMTQ1NSw3ICsxNDU1LDcgQEAKIAkJZnJlZV9VQ1NuYW1lKCZrZXkpOwogCQlpZiAocmMgPT0gLUVOT0VOVCkgewogCQkJZF9hZGQoZGVudHJ5LCBOVUxMKTsKLQkJCXJldHVybiBFUlJfUFRSKDApOworCQkJcmV0dXJuIE5VTEw7CiAJCX0gZWxzZSBpZiAocmMpIHsKIAkJCWpmc19lcnIoImpmc19sb29rdXA6IGR0U2VhcmNoIHJldHVybmVkICVkIiwgcmMpOwogCQkJcmV0dXJuIEVSUl9QVFIocmMpOwpkaWZmIC0tZ2l0IGEvZnMvamZzL3N1cGVyLmMgYi9mcy9qZnMvc3VwZXIuYwppbmRleCA1MGVhNjU0Li4wMjg4ZTZkIDEwMDY0NAotLS0gYS9mcy9qZnMvc3VwZXIuYworKysgYi9mcy9qZnMvc3VwZXIuYwpAQCAtNDk5LDcgKzQ5OSw3IEBACiAJaW5vZGUgPSBqZnNfaWdldChzYiwgUk9PVF9JKTsKIAlpZiAoSVNfRVJSKGlub2RlKSkgewogCQlyZXQgPSBQVFJfRVJSKGlub2RlKTsKLQkJZ290byBvdXRfbm9fcm9vdDsKKwkJZ290byBvdXRfbm9fcnc7CiAJfQogCXNiLT5zX3Jvb3QgPSBkX2FsbG9jX3Jvb3QoaW5vZGUpOwogCWlmICghc2ItPnNfcm9vdCkKQEAgLTUyMSw5ICs1MjEsOCBAQAogCXJldHVybiAwOwogCiBvdXRfbm9fcm9vdDoKLQlqZnNfZXJyKCJqZnNfcmVhZF9zdXBlcjogZ2V0IHJvb3QgaW5vZGUgZmFpbGVkIik7Ci0JaWYgKGlub2RlKQotCQlpcHV0KGlub2RlKTsKKwlqZnNfZXJyKCJqZnNfcmVhZF9zdXBlcjogZ2V0IHJvb3QgZGVudHJ5IGZhaWxlZCIpOworCWlwdXQoaW5vZGUpOwogCiBvdXRfbm9fcnc6CiAJcmMgPSBqZnNfdW1vdW50KHNiKTsKZGlmZiAtLWdpdCBhL2ZzL2xpYmZzLmMgYi9mcy9saWJmcy5jCmluZGV4IDg5MmQ0MWMuLmJhZWI3MWUgMTAwNjQ0Ci0tLSBhL2ZzL2xpYmZzLmMKKysrIGIvZnMvbGliZnMuYwpAQCAtNTEyLDYgKzUxMiwyMCBAQAogCW1udHB1dChtbnQpOwogfQogCisvKioKKyAqIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyIC0gY29weSBkYXRhIGZyb20gdGhlIGJ1ZmZlciB0byB1c2VyIHNwYWNlCisgKiBAdG86IHRoZSB1c2VyIHNwYWNlIGJ1ZmZlciB0byByZWFkIHRvCisgKiBAY291bnQ6IHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyB0byByZWFkCisgKiBAcHBvczogdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGJ1ZmZlcgorICogQGZyb206IHRoZSBidWZmZXIgdG8gcmVhZCBmcm9tCisgKiBAYXZhaWxhYmxlOiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyCisgKgorICogVGhlIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKCkgZnVuY3Rpb24gcmVhZHMgdXAgdG8gQGNvdW50IGJ5dGVzIGZyb20gdGhlCisgKiBidWZmZXIgQGZyb20gYXQgb2Zmc2V0IEBwcG9zIGludG8gdGhlIHVzZXIgc3BhY2UgYWRkcmVzcyBzdGFydGluZyBhdCBAdG8uCisgKgorICogT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcyByZWFkIGlzIHJldHVybmVkIGFuZCB0aGUgb2Zmc2V0IEBwcG9zIGlzCisgKiBhZHZhbmNlZCBieSB0aGlzIG51bWJlciwgb3IgbmVnYXRpdmUgdmFsdWUgaXMgcmV0dXJuZWQgb24gZXJyb3IuCisgKiovCiBzc2l6ZV90IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHZvaWQgX191c2VyICp0bywgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MsCiAJCQkJY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IGF2YWlsYWJsZSkKIHsKQEAgLTUyOCw2ICs1NDIsMjAgQEAKIAlyZXR1cm4gY291bnQ7CiB9CiAKKy8qKgorICogbWVtb3J5X3JlYWRfZnJvbV9idWZmZXIgLSBjb3B5IGRhdGEgZnJvbSB0aGUgYnVmZmVyCisgKiBAdG86IHRoZSBrZXJuZWwgc3BhY2UgYnVmZmVyIHRvIHJlYWQgdG8KKyAqIEBjb3VudDogdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQKKyAqIEBwcG9zOiB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgYnVmZmVyCisgKiBAZnJvbTogdGhlIGJ1ZmZlciB0byByZWFkIGZyb20KKyAqIEBhdmFpbGFibGU6IHRoZSBzaXplIG9mIHRoZSBidWZmZXIKKyAqCisgKiBUaGUgbWVtb3J5X3JlYWRfZnJvbV9idWZmZXIoKSBmdW5jdGlvbiByZWFkcyB1cCB0byBAY291bnQgYnl0ZXMgZnJvbSB0aGUKKyAqIGJ1ZmZlciBAZnJvbSBhdCBvZmZzZXQgQHBwb3MgaW50byB0aGUga2VybmVsIHNwYWNlIGFkZHJlc3Mgc3RhcnRpbmcgYXQgQHRvLgorICoKKyAqIE9uIHN1Y2Nlc3MsIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBpcyByZXR1cm5lZCBhbmQgdGhlIG9mZnNldCBAcHBvcyBpcworICogYWR2YW5jZWQgYnkgdGhpcyBudW1iZXIsIG9yIG5lZ2F0aXZlIHZhbHVlIGlzIHJldHVybmVkIG9uIGVycm9yLgorICoqLwogc3NpemVfdCBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcih2b2lkICp0bywgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MsCiAJCQkJY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IGF2YWlsYWJsZSkKIHsKZGlmZiAtLWdpdCBhL2ZzL2xvY2tzLmMgYi9mcy9sb2Nrcy5jCmluZGV4IDExZGJmMDguLmRjZThjNzQ3IDEwMDY0NAotLS0gYS9mcy9sb2Nrcy5jCisrKyBiL2ZzL2xvY2tzLmMKQEAgLTU2MSw5ICs1NjEsNiBAQAogCS8qIGluc2VydCBpbnRvIGZpbGUncyBsaXN0ICovCiAJZmwtPmZsX25leHQgPSAqcG9zOwogCSpwb3MgPSBmbDsKLQotCWlmIChmbC0+Zmxfb3BzICYmIGZsLT5mbF9vcHMtPmZsX2luc2VydCkKLQkJZmwtPmZsX29wcy0+ZmxfaW5zZXJ0KGZsKTsKIH0KIAogLyoKQEAgLTU4Niw5ICs1ODMsNiBAQAogCQlmbC0+ZmxfZmFzeW5jID0gTlVMTDsKIAl9CiAKLQlpZiAoZmwtPmZsX29wcyAmJiBmbC0+Zmxfb3BzLT5mbF9yZW1vdmUpCi0JCWZsLT5mbF9vcHMtPmZsX3JlbW92ZShmbCk7Ci0KIAlpZiAoZmwtPmZsX25zcGlkKSB7CiAJCXB1dF9waWQoZmwtPmZsX25zcGlkKTsKIAkJZmwtPmZsX25zcGlkID0gTlVMTDsKZGlmZiAtLWdpdCBhL2ZzL21wYWdlLmMgYi9mcy9tcGFnZS5jCmluZGV4IDIzNWU0ZDMuLmRiY2M3YWYgMTAwNjQ0Ci0tLSBhL2ZzL21wYWdlLmMKKysrIGIvZnMvbXBhZ2UuYwpAQCAtODIsNyArODIsNyBAQAogCWJpb19wdXQoYmlvKTsKIH0KIAotc3RhdGljIHN0cnVjdCBiaW8gKm1wYWdlX2Jpb19zdWJtaXQoaW50IHJ3LCBzdHJ1Y3QgYmlvICpiaW8pCitzdHJ1Y3QgYmlvICptcGFnZV9iaW9fc3VibWl0KGludCBydywgc3RydWN0IGJpbyAqYmlvKQogewogCWJpby0+YmlfZW5kX2lvID0gbXBhZ2VfZW5kX2lvX3JlYWQ7CiAJaWYgKHJ3ID09IFdSSVRFKQpAQCAtOTAsNiArOTAsNyBAQAogCXN1Ym1pdF9iaW8ocncsIGJpbyk7CiAJcmV0dXJuIE5VTEw7CiB9CitFWFBPUlRfU1lNQk9MKG1wYWdlX2Jpb19zdWJtaXQpOwogCiBzdGF0aWMgc3RydWN0IGJpbyAqCiBtcGFnZV9hbGxvYyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LApAQCAtNDM1LDE1ICs0MzYsOSBAQAogICogd3JpdHRlbiwgc28gaXQgY2FuIGludGVsbGlnZW50bHkgYWxsb2NhdGUgYSBzdWl0YWJseS1zaXplZCBCSU8uICBGb3Igbm93LAogICoganVzdCBhbGxvY2F0ZSBmdWxsLXNpemUgKDE2LXBhZ2UpIEJJT3MuCiAgKi8KLXN0cnVjdCBtcGFnZV9kYXRhIHsKLQlzdHJ1Y3QgYmlvICpiaW87Ci0Jc2VjdG9yX3QgbGFzdF9ibG9ja19pbl9iaW87Ci0JZ2V0X2Jsb2NrX3QgKmdldF9ibG9jazsKLQl1bnNpZ25lZCB1c2Vfd3JpdGVwYWdlOwotfTsKIAotc3RhdGljIGludCBfX21wYWdlX3dyaXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMsCi0JCQkgICAgIHZvaWQgKmRhdGEpCitpbnQgX19tcGFnZV93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjLAorCQkgICAgICB2b2lkICpkYXRhKQogewogCXN0cnVjdCBtcGFnZV9kYXRhICptcGQgPSBkYXRhOwogCXN0cnVjdCBiaW8gKmJpbyA9IG1wZC0+YmlvOwpAQCAtNjUxLDYgKzY0Niw3IEBACiAJbXBkLT5iaW8gPSBiaW87CiAJcmV0dXJuIHJldDsKIH0KK0VYUE9SVF9TWU1CT0woX19tcGFnZV93cml0ZXBhZ2UpOwogCiAvKioKICAqIG1wYWdlX3dyaXRlcGFnZXMgLSB3YWxrIHRoZSBsaXN0IG9mIGRpcnR5IHBhZ2VzIG9mIHRoZSBnaXZlbiBhZGRyZXNzIHNwYWNlICYgd3JpdGVwYWdlKCkgYWxsIG9mIHRoZW0KZGlmZiAtLWdpdCBhL2ZzL21zZG9zL25hbWVpLmMgYi9mcy9tc2Rvcy9uYW1laS5jCmluZGV4IDA1ZmY0ZjEuLjFmN2YyOTUgMTAwNjQ0Ci0tLSBhL2ZzL21zZG9zL25hbWVpLmMKKysrIGIvZnMvbXNkb3MvbmFtZWkuYwpAQCAtMjE0LDcgKzIxNCw3IEBACiAKIAlkZW50cnktPmRfb3AgPSAmbXNkb3NfZGVudHJ5X29wZXJhdGlvbnM7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCXJlcyA9IG1zZG9zX2ZpbmQoZGlyLCBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnktPmRfbmFtZS5sZW4sICZzaW5mbyk7CiAJaWYgKHJlcyA9PSAtRU5PRU5UKQogCQlnb3RvIGFkZDsKQEAgLTIzMiw3ICsyMzIsNyBAQAogCWlmIChkZW50cnkpCiAJCWRlbnRyeS0+ZF9vcCA9ICZtc2Rvc19kZW50cnlfb3BlcmF0aW9uczsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAlpZiAoIXJlcykKIAkJcmV0dXJuIGRlbnRyeTsKIAlyZXR1cm4gRVJSX1BUUihyZXMpOwpAQCAtMjg2LDcgKzI4Niw3IEBACiAJdW5zaWduZWQgY2hhciBtc2Rvc19uYW1lW01TRE9TX05BTUVdOwogCWludCBlcnIsIGlzX2hpZDsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAKIAllcnIgPSBtc2Rvc19mb3JtYXRfbmFtZShkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnktPmRfbmFtZS5sZW4sCiAJCQkJbXNkb3NfbmFtZSwgJk1TRE9TX1NCKHNiKS0+b3B0aW9ucyk7CkBAIC0zMTUsNyArMzE1LDcgQEAKIAogCWRfaW5zdGFudGlhdGUoZGVudHJ5LCBpbm9kZSk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJaWYgKCFlcnIpCiAJCWVyciA9IGZhdF9mbHVzaF9pbm9kZXMoc2IsIGRpciwgaW5vZGUpOwogCXJldHVybiBlcnI7CkBAIC0zMjQsMTEgKzMyNCwxMiBAQAogLyoqKioqIFJlbW92ZSBhIGRpcmVjdG9yeSAqLwogc3RhdGljIGludCBtc2Rvc19ybWRpcihzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQogeworCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBkaXItPmlfc2I7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKIAlzdHJ1Y3QgZmF0X3Nsb3RfaW5mbyBzaW5mbzsKIAlpbnQgZXJyOwogCi0JbG9ja19rZXJuZWwoKTsKKwlsb2NrX3N1cGVyKHNiKTsKIAkvKgogCSAqIENoZWNrIHdoZXRoZXIgdGhlIGRpcmVjdG9yeSBpcyBub3QgaW4gdXNlLCB0aGVuIGNoZWNrCiAJICogd2hldGhlciBpdCBpcyBlbXB0eS4KQEAgLTM0OSw5ICszNTAsOSBAQAogCWlub2RlLT5pX2N0aW1lID0gQ1VSUkVOVF9USU1FX1NFQzsKIAlmYXRfZGV0YWNoKGlub2RlKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAlpZiAoIWVycikKLQkJZXJyID0gZmF0X2ZsdXNoX2lub2Rlcyhpbm9kZS0+aV9zYiwgZGlyLCBpbm9kZSk7CisJCWVyciA9IGZhdF9mbHVzaF9pbm9kZXMoc2IsIGRpciwgaW5vZGUpOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTM2Niw3ICszNjcsNyBAQAogCXN0cnVjdCB0aW1lc3BlYyB0czsKIAlpbnQgZXJyLCBpc19oaWQsIGNsdXN0ZXI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gbXNkb3NfZm9ybWF0X25hbWUoZGVudHJ5LT5kX25hbWUubmFtZSwgZGVudHJ5LT5kX25hbWUubGVuLAogCQkJCW1zZG9zX25hbWUsICZNU0RPU19TQihzYiktPm9wdGlvbnMpOwpAQCAtNDA0LDE0ICs0MDUsMTQgQEAKIAogCWRfaW5zdGFudGlhdGUoZGVudHJ5LCBpbm9kZSk7CiAKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAlmYXRfZmx1c2hfaW5vZGVzKHNiLCBkaXIsIGlub2RlKTsKIAlyZXR1cm4gMDsKIAogb3V0X2ZyZWU6CiAJZmF0X2ZyZWVfY2x1c3RlcnMoZGlyLCBjbHVzdGVyKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAlyZXR1cm4gZXJyOwogfQogCkBAIC00MTksMTAgKzQyMCwxMSBAQAogc3RhdGljIGludCBtc2Rvc191bmxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZGVudHJ5LT5kX2lub2RlOworCXN0cnVjdCBzdXBlcl9ibG9jayAqc2I9IGlub2RlLT5pX3NiOwogCXN0cnVjdCBmYXRfc2xvdF9pbmZvIHNpbmZvOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCWVyciA9IG1zZG9zX2ZpbmQoZGlyLCBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnktPmRfbmFtZS5sZW4sICZzaW5mbyk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CkBAIC00MzQsOSArNDM2LDkgQEAKIAlpbm9kZS0+aV9jdGltZSA9IENVUlJFTlRfVElNRV9TRUM7CiAJZmF0X2RldGFjaChpbm9kZSk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJaWYgKCFlcnIpCi0JCWVyciA9IGZhdF9mbHVzaF9pbm9kZXMoaW5vZGUtPmlfc2IsIGRpciwgaW5vZGUpOworCQllcnIgPSBmYXRfZmx1c2hfaW5vZGVzKHNiLCBkaXIsIGlub2RlKTsKIAogCXJldHVybiBlcnI7CiB9CkBAIC02MTgsMTAgKzYyMCwxMSBAQAogc3RhdGljIGludCBtc2Rvc19yZW5hbWUoc3RydWN0IGlub2RlICpvbGRfZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAogCQkJc3RydWN0IGlub2RlICpuZXdfZGlyLCBzdHJ1Y3QgZGVudHJ5ICpuZXdfZGVudHJ5KQogeworCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBvbGRfZGlyLT5pX3NiOwogCXVuc2lnbmVkIGNoYXIgb2xkX21zZG9zX25hbWVbTVNET1NfTkFNRV0sIG5ld19tc2Rvc19uYW1lW01TRE9TX05BTUVdOwogCWludCBlcnIsIGlzX2hpZDsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAKIAllcnIgPSBtc2Rvc19mb3JtYXRfbmFtZShvbGRfZGVudHJ5LT5kX25hbWUubmFtZSwKIAkJCQlvbGRfZGVudHJ5LT5kX25hbWUubGVuLCBvbGRfbXNkb3NfbmFtZSwKQEAgLTY0MCw5ICs2NDMsOSBAQAogCWVyciA9IGRvX21zZG9zX3JlbmFtZShvbGRfZGlyLCBvbGRfbXNkb3NfbmFtZSwgb2xkX2RlbnRyeSwKIAkJCSAgICAgIG5ld19kaXIsIG5ld19tc2Rvc19uYW1lLCBuZXdfZGVudHJ5LCBpc19oaWQpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCWlmICghZXJyKQotCQllcnIgPSBmYXRfZmx1c2hfaW5vZGVzKG9sZF9kaXItPmlfc2IsIG9sZF9kaXIsIG5ld19kaXIpOworCQllcnIgPSBmYXRfZmx1c2hfaW5vZGVzKHNiLCBvbGRfZGlyLCBuZXdfZGlyKTsKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9mcy9uYW1laS5jIGIvZnMvbmFtZWkuYwppbmRleCBjN2U0MzUzLi4wMWU2N2RkIDEwMDY0NAotLS0gYS9mcy9uYW1laS5jCisrKyBiL2ZzL25hbWVpLmMKQEAgLTU4MSwxNSArNTgxLDEzIEBACiAJaW50IHJlc3VsdDsKIAogCS8qIG1ha2Ugc3VyZSB0aGUgc3R1ZmYgd2Ugc2F2ZWQgZG9lc24ndCBnbyBhd2F5ICovCi0JZGdldChzYXZlLmRlbnRyeSk7Ci0JbW50Z2V0KHNhdmUubW50KTsKKwlwYXRoX2dldCgmc2F2ZSk7CiAKIAlyZXN1bHQgPSBfX2xpbmtfcGF0aF93YWxrKG5hbWUsIG5kKTsKIAlpZiAocmVzdWx0ID09IC1FU1RBTEUpIHsKIAkJLyogbmQtPnBhdGggaGFkIGJlZW4gZHJvcHBlZCAqLwogCQluZC0+cGF0aCA9IHNhdmU7Ci0JCWRnZXQobmQtPnBhdGguZGVudHJ5KTsKLQkJbW50Z2V0KG5kLT5wYXRoLm1udCk7CisJCXBhdGhfZ2V0KCZuZC0+cGF0aCk7CiAJCW5kLT5mbGFncyB8PSBMT09LVVBfUkVWQUw7CiAJCXJlc3VsdCA9IF9fbGlua19wYXRoX3dhbGsobmFtZSwgbmQpOwogCX0KQEAgLTEyMTYsOCArMTIxNCw5IEBACiAJbmQtPmZsYWdzID0gZmxhZ3M7CiAJbmQtPmRlcHRoID0gMDsKIAotCW5kLT5wYXRoLm1udCA9IG1udGdldChtbnQpOwotCW5kLT5wYXRoLmRlbnRyeSA9IGRnZXQoZGVudHJ5KTsKKwluZC0+cGF0aC5kZW50cnkgPSBkZW50cnk7CisJbmQtPnBhdGgubW50ID0gbW50OworCXBhdGhfZ2V0KCZuZC0+cGF0aCk7CiAKIAlyZXR2YWwgPSBwYXRoX3dhbGsobmFtZSwgbmQpOwogCWlmICh1bmxpa2VseSghcmV0dmFsICYmICFhdWRpdF9kdW1teV9jb250ZXh0KCkgJiYgbmQtPnBhdGguZGVudHJ5ICYmCkBAIC0yODU3LDE2ICsyODU2LDE3IEBACiB7CiAJc3RydWN0IG5hbWVpZGF0YSBuZDsKIAl2b2lkICpjb29raWU7CisJaW50IHJlczsKIAogCW5kLmRlcHRoID0gMDsKIAljb29raWUgPSBkZW50cnktPmRfaW5vZGUtPmlfb3AtPmZvbGxvd19saW5rKGRlbnRyeSwgJm5kKTsKLQlpZiAoIUlTX0VSUihjb29raWUpKSB7Ci0JCWludCByZXMgPSB2ZnNfcmVhZGxpbmsoZGVudHJ5LCBidWZmZXIsIGJ1ZmxlbiwgbmRfZ2V0X2xpbmsoJm5kKSk7Ci0JCWlmIChkZW50cnktPmRfaW5vZGUtPmlfb3AtPnB1dF9saW5rKQotCQkJZGVudHJ5LT5kX2lub2RlLT5pX29wLT5wdXRfbGluayhkZW50cnksICZuZCwgY29va2llKTsKLQkJY29va2llID0gRVJSX1BUUihyZXMpOwotCX0KLQlyZXR1cm4gUFRSX0VSUihjb29raWUpOworCWlmIChJU19FUlIoY29va2llKSkKKwkJcmV0dXJuIFBUUl9FUlIoY29va2llKTsKKworCXJlcyA9IHZmc19yZWFkbGluayhkZW50cnksIGJ1ZmZlciwgYnVmbGVuLCBuZF9nZXRfbGluaygmbmQpKTsKKwlpZiAoZGVudHJ5LT5kX2lub2RlLT5pX29wLT5wdXRfbGluaykKKwkJZGVudHJ5LT5kX2lub2RlLT5pX29wLT5wdXRfbGluayhkZW50cnksICZuZCwgY29va2llKTsKKwlyZXR1cm4gcmVzOwogfQogCiBpbnQgdmZzX2ZvbGxvd19saW5rKHN0cnVjdCBuYW1laWRhdGEgKm5kLCBjb25zdCBjaGFyICpsaW5rKQpkaWZmIC0tZ2l0IGEvZnMvbmFtZXNwYWNlLmMgYi9mcy9uYW1lc3BhY2UuYwppbmRleCA0ZmMzMDJjLi40ZjZmNzYzIDEwMDY0NAotLS0gYS9mcy9uYW1lc3BhY2UuYworKysgYi9mcy9uYW1lc3BhY2UuYwpAQCAtNzUwLDcgKzc1MCw3IEBACiAJY29uc3QgY2hhciAqc3RyOwogfTsKIAotc3RhdGljIHZvaWQgc2hvd19zYl9vcHRzKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3N0YXRpYyBpbnQgc2hvd19zYl9vcHRzKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IHByb2NfZnNfaW5mbyBmc19pbmZvW10gPSB7CiAJCXsgTVNfU1lOQ0hST05PVVMsICIsc3luYyIgfSwKQEAgLTc2NCw2ICs3NjQsOCBAQAogCQlpZiAoc2ItPnNfZmxhZ3MgJiBmc19pbmZvcC0+ZmxhZykKIAkJCXNlcV9wdXRzKG0sIGZzX2luZm9wLT5zdHIpOwogCX0KKworCXJldHVybiBzZWN1cml0eV9zYl9zaG93X29wdGlvbnMobSwgc2IpOwogfQogCiBzdGF0aWMgdm9pZCBzaG93X21udF9vcHRzKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHZmc21vdW50ICptbnQpCkBAIC04MDYsMTEgKzgwOCwxNCBAQAogCXNlcV9wdXRjKG0sICcgJyk7CiAJc2hvd190eXBlKG0sIG1udC0+bW50X3NiKTsKIAlzZXFfcHV0cyhtLCBfX21udF9pc19yZWFkb25seShtbnQpID8gIiBybyIgOiAiIHJ3Iik7Ci0Jc2hvd19zYl9vcHRzKG0sIG1udC0+bW50X3NiKTsKKwllcnIgPSBzaG93X3NiX29wdHMobSwgbW50LT5tbnRfc2IpOworCWlmIChlcnIpCisJCWdvdG8gb3V0OwogCXNob3dfbW50X29wdHMobSwgbW50KTsKIAlpZiAobW50LT5tbnRfc2ItPnNfb3AtPnNob3dfb3B0aW9ucykKIAkJZXJyID0gbW50LT5tbnRfc2ItPnNfb3AtPnNob3dfb3B0aW9ucyhtLCBtbnQpOwogCXNlcV9wdXRzKG0sICIgMCAwXG4iKTsKK291dDoKIAlyZXR1cm4gZXJyOwogfQogCkBAIC04NjUsMTAgKzg3MCwxMyBAQAogCXNlcV9wdXRjKG0sICcgJyk7CiAJbWFuZ2xlKG0sIG1udC0+bW50X2Rldm5hbWUgPyBtbnQtPm1udF9kZXZuYW1lIDogIm5vbmUiKTsKIAlzZXFfcHV0cyhtLCBzYi0+c19mbGFncyAmIE1TX1JET05MWSA/ICIgcm8iIDogIiBydyIpOwotCXNob3dfc2Jfb3B0cyhtLCBzYik7CisJZXJyID0gc2hvd19zYl9vcHRzKG0sIHNiKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dDsKIAlpZiAoc2ItPnNfb3AtPnNob3dfb3B0aW9ucykKIAkJZXJyID0gc2ItPnNfb3AtPnNob3dfb3B0aW9ucyhtLCBtbnQpOwogCXNlcV9wdXRjKG0sICdcbicpOworb3V0OgogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL25jcGZzL2ZpbGUuYyBiL2ZzL25jcGZzL2ZpbGUuYwppbmRleCAyYjE0NWRlLi42YTdkOTAxIDEwMDY0NAotLS0gYS9mcy9uY3Bmcy9maWxlLmMKKysrIGIvZnMvbmNwZnMvZmlsZS5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxsaW51eC9uY3BfZnMuaD4KICNpbmNsdWRlICJuY3BsaWJfa2VybmVsLmgiCkBAIC0yODEsOSArMjgyLDE4IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBsb2ZmX3QgbmNwX3JlbW90ZV9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCit7CisJbG9mZl90IHJldDsKKwlsb2NrX2tlcm5lbCgpOworCXJldCA9IGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OworfQorCiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5jcF9maWxlX29wZXJhdGlvbnMgPQogewotCS5sbHNlZWsJCT0gcmVtb3RlX2xsc2VlaywKKwkubGxzZWVrIAk9IG5jcF9yZW1vdGVfbGxzZWVrLAogCS5yZWFkCQk9IG5jcF9maWxlX3JlYWQsCiAJLndyaXRlCQk9IG5jcF9maWxlX3dyaXRlLAogCS5pb2N0bAkJPSBuY3BfaW9jdGwsCmRpZmYgLS1naXQgYS9mcy9uZnMvZGlyLmMgYi9mcy9uZnMvZGlyLmMKaW5kZXggNThkNDNkYS4uOTgyYTIwNiAxMDA2NDQKLS0tIGEvZnMvbmZzL2Rpci5jCisrKyBiL2ZzL25mcy9kaXIuYwpAQCAtMjA0LDcgKzIwNCw3IEBACiAJICogTm90ZTogYXNzdW1lcyB3ZSBoYXZlIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhpcyBtYXBwaW5nIGVpdGhlcgogCSAqCSB0aHJvdWdoIGlub2RlLT5pX211dGV4IG9yIHNvbWUgb3RoZXIgbWVjaGFuaXNtLgogCSAqLwotCWlmIChwYWdlLT5pbmRleCA9PSAwICYmIGludmFsaWRhdGVfaW5vZGVfcGFnZXMyX3JhbmdlKGlub2RlLT5pX21hcHBpbmcsIFBBR0VfQ0FDSEVfU0laRSwgLTEpIDwgMCkgeworCWlmIChpbnZhbGlkYXRlX2lub2RlX3BhZ2VzMl9yYW5nZShpbm9kZS0+aV9tYXBwaW5nLCBwYWdlLT5pbmRleCArIDEsIC0xKSA8IDApIHsKIAkJLyogU2hvdWxkIG5ldmVyIGhhcHBlbiAqLwogCQluZnNfemFwX21hcHBpbmcoaW5vZGUsIGlub2RlLT5pX21hcHBpbmcpOwogCX0KZGlmZiAtLWdpdCBhL2ZzL25mcy9maWxlLmMgYi9mcy9uZnMvZmlsZS5jCmluZGV4IGQ4NGEzZDguLjRlOThhNTYgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9maWxlLmMKKysrIGIvZnMvbmZzL2ZpbGUuYwpAQCAtMTcwLDYgKzE3MCw3IEBACiAKIHN0YXRpYyBsb2ZmX3QgbmZzX2ZpbGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxwLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQogeworCWxvZmZfdCBsb2ZmOwogCS8qIG9yaWdpbiA9PSBTRUVLX0VORCA9PiB3ZSBtdXN0IHJldmFsaWRhdGUgdGhlIGNhY2hlZCBmaWxlIGxlbmd0aCAqLwogCWlmIChvcmlnaW4gPT0gU0VFS19FTkQpIHsKIAkJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbHAtPmZfbWFwcGluZy0+aG9zdDsKQEAgLTE3Nyw3ICsxNzgsMTAgQEAKIAkJaWYgKHJldHZhbCA8IDApCiAJCQlyZXR1cm4gKGxvZmZfdClyZXR2YWw7CiAJfQotCXJldHVybiByZW1vdGVfbGxzZWVrKGZpbHAsIG9mZnNldCwgb3JpZ2luKTsKKwlsb2NrX2tlcm5lbCgpOwkvKiBCS0wgbmVlZGVkPyAqLworCWxvZmYgPSBnZW5lcmljX2ZpbGVfbGxzZWVrX3VubG9ja2VkKGZpbHAsIG9mZnNldCwgb3JpZ2luKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIGxvZmY7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9kbG0vZGxtbWFzdGVyLmMgYi9mcy9vY2ZzMi9kbG0vZGxtbWFzdGVyLmMKaW5kZXggZWZjMDE1Yy4uNDRmODdjYSAxMDA2NDQKLS0tIGEvZnMvb2NmczIvZGxtL2RsbW1hc3Rlci5jCisrKyBiL2ZzL29jZnMyL2RsbS9kbG1tYXN0ZXIuYwpAQCAtNjA2LDcgKzYwNiw5IEBACiAKIAlyZXMtPmxhc3RfdXNlZCA9IDA7CiAKKwlzcGluX2xvY2soJmRsbS0+c3BpbmxvY2spOwogCWxpc3RfYWRkX3RhaWwoJnJlcy0+dHJhY2tpbmcsICZkbG0tPnRyYWNraW5nX2xpc3QpOworCXNwaW5fdW5sb2NrKCZkbG0tPnNwaW5sb2NrKTsKIAogCW1lbXNldChyZXMtPmx2YiwgMCwgRExNX0xWQl9MRU4pOwogCW1lbXNldChyZXMtPnJlZm1hcCwgMCwgc2l6ZW9mKHJlcy0+cmVmbWFwKSk7CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9kbG1nbHVlLmMgYi9mcy9vY2ZzMi9kbG1nbHVlLmMKaW5kZXggMzk0ZDI1YS4uODBlMjBkOSAxMDA2NDQKLS0tIGEvZnMvb2NmczIvZGxtZ2x1ZS5jCisrKyBiL2ZzL29jZnMyL2RsbWdsdWUuYwpAQCAtMTU1NCw4ICsxNTU0LDggQEAKICAqLwogaW50IG9jZnMyX2ZpbGVfbG9jayhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGV4LCBpbnQgdHJ5bG9jaykKIHsKLQlpbnQgcmV0LCBsZXZlbCA9IGV4ID8gTEtNX0VYTU9ERSA6IExLTV9QUk1PREU7Ci0JdW5zaWduZWQgaW50IGxrbV9mbGFncyA9IHRyeWxvY2sgPyBMS01fTk9RVUVVRSA6IDA7CisJaW50IHJldCwgbGV2ZWwgPSBleCA/IERMTV9MT0NLX0VYIDogRExNX0xPQ0tfUFI7CisJdW5zaWduZWQgaW50IGxrbV9mbGFncyA9IHRyeWxvY2sgPyBETE1fTEtGX05PUVVFVUUgOiAwOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc3RydWN0IG9jZnMyX2ZpbGVfcHJpdmF0ZSAqZnAgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IG9jZnMyX2xvY2tfcmVzICpsb2NrcmVzID0gJmZwLT5mcF9mbG9jazsKQEAgLTE1ODIsNyArMTU4Miw3IEBACiAJCSAqIEdldCB0aGUgbG9jayBhdCBOTE1PREUgdG8gc3RhcnQgLSB0aGF0IHdheSB3ZQogCQkgKiBjYW4gY2FuY2VsIHRoZSB1cGNvbnZlcnQgcmVxdWVzdCBpZiBuZWVkIGJlLgogCQkgKi8KLQkJcmV0ID0gb2NmczJfbG9ja19jcmVhdGUob3NiLCBsb2NrcmVzLCBMS01fTkxNT0RFLCAwKTsKKwkJcmV0ID0gb2NmczJfbG9ja19jcmVhdGUob3NiLCBsb2NrcmVzLCBETE1fTE9DS19OTCwgMCk7CiAJCWlmIChyZXQgPCAwKSB7CiAJCQltbG9nX2Vycm5vKHJldCk7CiAJCQlnb3RvIG91dDsKQEAgLTE1OTcsNyArMTU5Nyw3IEBACiAJfQogCiAJbG9ja3Jlcy0+bF9hY3Rpb24gPSBPQ0ZTMl9BU1RfQ09OVkVSVDsKLQlsa21fZmxhZ3MgfD0gTEtNX0NPTlZFUlQ7CisJbGttX2ZsYWdzIHw9IERMTV9MS0ZfQ09OVkVSVDsKIAlsb2NrcmVzLT5sX3JlcXVlc3RlZCA9IGxldmVsOwogCWxvY2tyZXNfb3JfZmxhZ3MobG9ja3JlcywgT0NGUzJfTE9DS19CVVNZKTsKIApAQCAtMTY2NCw3ICsxNjY0LDcgQEAKIAlpZiAoIShsb2NrcmVzLT5sX2ZsYWdzICYgT0NGUzJfTE9DS19BVFRBQ0hFRCkpCiAJCXJldHVybjsKIAotCWlmIChsb2NrcmVzLT5sX2xldmVsID09IExLTV9OTE1PREUpCisJaWYgKGxvY2tyZXMtPmxfbGV2ZWwgPT0gRExNX0xPQ0tfTkwpCiAJCXJldHVybjsKIAogCW1sb2coMCwgIlVubG9jazogXCIlc1wiIGZsYWdzOiAweCVseCwgbGV2ZWw6ICVkLCBhY3Q6ICVkXG4iLApAQCAtMTY3OCwxMSArMTY3OCwxMSBAQAogCWxvY2tyZXNfb3JfZmxhZ3MobG9ja3JlcywgT0NGUzJfTE9DS19CTE9DS0VEKTsKIAlsb2NrcmVzLT5sX2Jsb2NraW5nID0gRExNX0xPQ0tfRVg7CiAKLQlnZW4gPSBvY2ZzMl9wcmVwYXJlX2Rvd25jb252ZXJ0KGxvY2tyZXMsIExLTV9OTE1PREUpOworCWdlbiA9IG9jZnMyX3ByZXBhcmVfZG93bmNvbnZlcnQobG9ja3JlcywgRExNX0xPQ0tfTkwpOwogCWxvY2tyZXNfYWRkX21hc2tfd2FpdGVyKGxvY2tyZXMsICZtdywgT0NGUzJfTE9DS19CVVNZLCAwKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZsb2NrcmVzLT5sX2xvY2ssIGZsYWdzKTsKIAotCXJldCA9IG9jZnMyX2Rvd25jb252ZXJ0X2xvY2sob3NiLCBsb2NrcmVzLCBMS01fTkxNT0RFLCAwLCBnZW4pOworCXJldCA9IG9jZnMyX2Rvd25jb252ZXJ0X2xvY2sob3NiLCBsb2NrcmVzLCBETE1fTE9DS19OTCwgMCwgZ2VuKTsKIAlpZiAocmV0KSB7CiAJCW1sb2dfZXJybm8ocmV0KTsKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvc3RhY2tfdXNlci5jIGIvZnMvb2NmczIvc3RhY2tfdXNlci5jCmluZGV4IGMwMjEyODAuLmJkN2UwZjMgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL3N0YWNrX3VzZXIuYworKysgYi9mcy9vY2ZzMi9zdGFja191c2VyLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIApAQCAtNjE5LDEwICs2MjAsMTIgQEAKIAkJcmV0dXJuIC1FTk9NRU07CiAJcC0+b3BfdGhpc19ub2RlID0gLTE7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJm9jZnMyX2NvbnRyb2xfbG9jayk7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gcDsKIAlsaXN0X2FkZCgmcC0+b3BfbGlzdCwgJm9jZnMyX2NvbnRyb2xfcHJpdmF0ZV9saXN0KTsKIAltdXRleF91bmxvY2soJm9jZnMyX2NvbnRyb2xfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9mcy9vcGVuLmMgYi9mcy9vcGVuLmMKaW5kZXggYTE0NTAwOC4uYTk5YWQwOSAxMDA2NDQKLS0tIGEvZnMvb3Blbi5jCisrKyBiL2ZzL29wZW4uYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+CiAjaW5jbHVkZSA8bGludXgvYmFja2luZy1kZXYuaD4KICNpbmNsdWRlIDxsaW51eC9jYXBhYmlsaXR5Lmg+CisjaW5jbHVkZSA8bGludXgvc2VjdXJlYml0cy5oPgogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KICNpbmNsdWRlIDxsaW51eC92ZnMuaD4KQEAgLTQyNSw3ICs0MjYsNyBAQAogewogCXN0cnVjdCBuYW1laWRhdGEgbmQ7CiAJaW50IG9sZF9mc3VpZCwgb2xkX2ZzZ2lkOwotCWtlcm5lbF9jYXBfdCBvbGRfY2FwOworCWtlcm5lbF9jYXBfdCB1bmluaXRpYWxpemVkX3ZhcihvbGRfY2FwKTsgIC8qICFTRUNVUkVfTk9fU0VUVUlEX0ZJWFVQICovCiAJaW50IHJlczsKIAogCWlmIChtb2RlICYgflNfSVJXWE8pCS8qIHdoZXJlJ3MgRl9PSywgWF9PSywgV19PSywgUl9PSz8gKi8KQEAgLTQzMywyMyArNDM0LDI3IEBACiAKIAlvbGRfZnN1aWQgPSBjdXJyZW50LT5mc3VpZDsKIAlvbGRfZnNnaWQgPSBjdXJyZW50LT5mc2dpZDsKLQlvbGRfY2FwID0gY3VycmVudC0+Y2FwX2VmZmVjdGl2ZTsKIAogCWN1cnJlbnQtPmZzdWlkID0gY3VycmVudC0+dWlkOwogCWN1cnJlbnQtPmZzZ2lkID0gY3VycmVudC0+Z2lkOwogCi0JLyoKLQkgKiBDbGVhciB0aGUgY2FwYWJpbGl0aWVzIGlmIHdlIHN3aXRjaCB0byBhIG5vbi1yb290IHVzZXIKLQkgKgotCSAqIEZJWE1FOiBUaGVyZSBpcyBhIHJhY2UgaGVyZSBhZ2FpbnN0IHN5c19jYXBzZXQuICBUaGUKLQkgKiBjYXBhYmlsaXRpZXMgY2FuIGNoYW5nZSB5ZXQgd2Ugd2lsbCByZXN0b3JlIHRoZSBvbGQKLQkgKiB2YWx1ZSBiZWxvdy4gIFdlIHNob3VsZCBob2xkIHRhc2tfY2FwYWJpbGl0aWVzX2xvY2ssCi0JICogYnV0IHdlIGNhbm5vdCBiZWNhdXNlIHVzZXJfcGF0aF93YWxrIGNhbiBzbGVlcC4KLQkgKi8KLQlpZiAoY3VycmVudC0+dWlkKQotCQljYXBfY2xlYXIoY3VycmVudC0+Y2FwX2VmZmVjdGl2ZSk7Ci0JZWxzZQotCQljdXJyZW50LT5jYXBfZWZmZWN0aXZlID0gY3VycmVudC0+Y2FwX3Blcm1pdHRlZDsKKwlpZiAoIWlzc2VjdXJlKFNFQ1VSRV9OT19TRVRVSURfRklYVVApKSB7CisJCS8qCisJCSAqIENsZWFyIHRoZSBjYXBhYmlsaXRpZXMgaWYgd2Ugc3dpdGNoIHRvIGEgbm9uLXJvb3QgdXNlcgorCQkgKi8KKyNpZm5kZWYgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTCisJCS8qCisJCSAqIEZJWE1FOiBUaGVyZSBpcyBhIHJhY2UgaGVyZSBhZ2FpbnN0IHN5c19jYXBzZXQuICBUaGUKKwkJICogY2FwYWJpbGl0aWVzIGNhbiBjaGFuZ2UgeWV0IHdlIHdpbGwgcmVzdG9yZSB0aGUgb2xkCisJCSAqIHZhbHVlIGJlbG93LiAgV2Ugc2hvdWxkIGhvbGQgdGFza19jYXBhYmlsaXRpZXNfbG9jaywKKwkJICogYnV0IHdlIGNhbm5vdCBiZWNhdXNlIHVzZXJfcGF0aF93YWxrIGNhbiBzbGVlcC4KKwkJICovCisjZW5kaWYgLyogbmRlZiBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgKi8KKwkJaWYgKGN1cnJlbnQtPnVpZCkKKwkJCW9sZF9jYXAgPSBjYXBfc2V0X2VmZmVjdGl2ZShfX2NhcF9lbXB0eV9zZXQpOworCQllbHNlCisJCQlvbGRfY2FwID0gY2FwX3NldF9lZmZlY3RpdmUoY3VycmVudC0+Y2FwX3Blcm1pdHRlZCk7CisJfQogCiAJcmVzID0gX191c2VyX3dhbGtfZmQoZGZkLCBmaWxlbmFtZSwgTE9PS1VQX0ZPTExPV3xMT09LVVBfQUNDRVNTLCAmbmQpOwogCWlmIChyZXMpCkBAIC00NzgsNyArNDgzLDkgQEAKIG91dDoKIAljdXJyZW50LT5mc3VpZCA9IG9sZF9mc3VpZDsKIAljdXJyZW50LT5mc2dpZCA9IG9sZF9mc2dpZDsKLQljdXJyZW50LT5jYXBfZWZmZWN0aXZlID0gb2xkX2NhcDsKKworCWlmICghaXNzZWN1cmUoU0VDVVJFX05PX1NFVFVJRF9GSVhVUCkpCisJCWNhcF9zZXRfZWZmZWN0aXZlKG9sZF9jYXApOwogCiAJcmV0dXJuIHJlczsKIH0KZGlmZiAtLWdpdCBhL2ZzL3BpcGUuYyBiL2ZzL3BpcGUuYwppbmRleCBlYzIyOGJjLi43MDBmNGUwIDEwMDY0NAotLS0gYS9mcy9waXBlLmMKKysrIGIvZnMvcGlwZS5jCkBAIC0xMDAzLDggKzEwMDMsNyBAQAogdm9pZCBmcmVlX3dyaXRlX3BpcGUoc3RydWN0IGZpbGUgKmYpCiB7CiAJZnJlZV9waXBlX2luZm8oZi0+Zl9kZW50cnktPmRfaW5vZGUpOwotCWRwdXQoZi0+Zl9wYXRoLmRlbnRyeSk7Ci0JbW50cHV0KGYtPmZfcGF0aC5tbnQpOworCXBhdGhfcHV0KCZmLT5mX3BhdGgpOwogCXB1dF9maWxwKGYpOwogfQogCkBAIC0xMDE1LDggKzEwMTQsOCBAQAogCQlyZXR1cm4gRVJSX1BUUigtRU5GSUxFKTsKIAogCS8qIEdyYWIgcGlwZSBmcm9tIHRoZSB3cml0ZXIgKi8KLQlmLT5mX3BhdGgubW50ID0gbW50Z2V0KHdyZi0+Zl9wYXRoLm1udCk7Ci0JZi0+Zl9wYXRoLmRlbnRyeSA9IGRnZXQod3JmLT5mX3BhdGguZGVudHJ5KTsKKwlmLT5mX3BhdGggPSB3cmYtPmZfcGF0aDsKKwlwYXRoX2dldCgmd3JmLT5mX3BhdGgpOwogCWYtPmZfbWFwcGluZyA9IHdyZi0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tYXBwaW5nOwogCiAJZi0+Zl9wb3MgPSAwOwpAQCAtMTA2OCw4ICsxMDY3LDcgQEAKICBlcnJfZmRyOgogCXB1dF91bnVzZWRfZmQoZmRyKTsKICBlcnJfcmVhZF9waXBlOgotCWRwdXQoZnItPmZfZGVudHJ5KTsKLQltbnRwdXQoZnItPmZfdmZzbW50KTsKKwlwYXRoX3B1dCgmZnItPmZfcGF0aCk7CiAJcHV0X2ZpbHAoZnIpOwogIGVycl93cml0ZV9waXBlOgogCWZyZWVfd3JpdGVfcGlwZShmdyk7CmRpZmYgLS1naXQgYS9mcy9wcm9jL2Jhc2UuYyBiL2ZzL3Byb2MvYmFzZS5jCmluZGV4IDNiNDU1MzcuLjU4YzNlNmEgMTAwNjQ0Ci0tLSBhL2ZzL3Byb2MvYmFzZS5jCisrKyBiL2ZzL3Byb2MvYmFzZS5jCkBAIC0yMzMsNyArMjMzLDcgQEAKIAkgKi8KIAlpZiAodGFzay0+cGFyZW50ID09IGN1cnJlbnQgJiYgKHRhc2stPnB0cmFjZSAmIFBUX1BUUkFDRUQpICYmCiAJICAgIHRhc2tfaXNfc3RvcHBlZF9vcl90cmFjZWQodGFzaykgJiYKLQkgICAgcHRyYWNlX21heV9hdHRhY2godGFzaykpCisJICAgIHB0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX0FUVEFDSCkpCiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTI1MSw3ICsyNTEsOCBAQAogCXRhc2tfbG9jayh0YXNrKTsKIAlpZiAodGFzay0+bW0gIT0gbW0pCiAJCWdvdG8gb3V0OwotCWlmICh0YXNrLT5tbSAhPSBjdXJyZW50LT5tbSAmJiBfX3B0cmFjZV9tYXlfYXR0YWNoKHRhc2spIDwgMCkKKwlpZiAodGFzay0+bW0gIT0gY3VycmVudC0+bW0gJiYKKwkgICAgX19wdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKSA8IDApCiAJCWdvdG8gb3V0OwogCXRhc2tfdW5sb2NrKHRhc2spOwogCXJldHVybiBtbTsKQEAgLTUxOCw3ICs1MTksNyBAQAogCSAqLwogCXRhc2sgPSBnZXRfcHJvY190YXNrKGlub2RlKTsKIAlpZiAodGFzaykgewotCQlhbGxvd2VkID0gcHRyYWNlX21heV9hdHRhY2godGFzayk7CisJCWFsbG93ZWQgPSBwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKTsKIAkJcHV0X3Rhc2tfc3RydWN0KHRhc2spOwogCX0KIAlyZXR1cm4gYWxsb3dlZDsKQEAgLTkwNCw3ICs5MDUsNyBAQAogCWlmICghdGFzaykKIAkJZ290byBvdXRfbm9fdGFzazsKIAotCWlmICghcHRyYWNlX21heV9hdHRhY2godGFzaykpCisJaWYgKCFwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKSkKIAkJZ290byBvdXQ7CiAKIAlyZXQgPSAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZnMvcHJvYy9wcm9jX21pc2MuYyBiL2ZzL3Byb2MvcHJvY19taXNjLmMKaW5kZXggN2UyNzdmMi4uYzY1MmQ0NiAxMDA2NDQKLS0tIGEvZnMvcHJvYy9wcm9jX21pc2MuYworKysgYi9mcy9wcm9jL3Byb2NfbWlzYy5jCkBAIC0xMjMsNiArMTIzLDExIEBACiAJcmV0dXJuIHByb2NfY2FsY19tZXRyaWNzKHBhZ2UsIHN0YXJ0LCBvZmYsIGNvdW50LCBlb2YsIGxlbik7CiB9CiAKK2ludCBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgYXJjaF9yZXBvcnRfbWVtaW5mbyhjaGFyICpwYWdlKQoreworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IG1lbWluZm9fcmVhZF9wcm9jKGNoYXIgKnBhZ2UsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2ZmLAogCQkJCSBpbnQgY291bnQsIGludCAqZW9mLCB2b2lkICpkYXRhKQogewpAQCAtMjIxLDYgKzIyNiw4IEBACiAKIAkJbGVuICs9IGh1Z2V0bGJfcmVwb3J0X21lbWluZm8ocGFnZSArIGxlbik7CiAKKwlsZW4gKz0gYXJjaF9yZXBvcnRfbWVtaW5mbyhwYWdlICsgbGVuKTsKKwogCXJldHVybiBwcm9jX2NhbGNfbWV0cmljcyhwYWdlLCBzdGFydCwgb2ZmLCBjb3VudCwgZW9mLCBsZW4pOwogI3VuZGVmIEsKIH0KQEAgLTQ3Miw2ICs0NzksMTMgQEAKIH07CiAjZW5kaWYKIAorI2lmbmRlZiBhcmNoX2lycV9zdGF0X2NwdQorI2RlZmluZSBhcmNoX2lycV9zdGF0X2NwdShjcHUpIDAKKyNlbmRpZgorI2lmbmRlZiBhcmNoX2lycV9zdGF0CisjZGVmaW5lIGFyY2hfaXJxX3N0YXQoKSAwCisjZW5kaWYKKwogc3RhdGljIGludCBzaG93X3N0YXQoc3RydWN0IHNlcV9maWxlICpwLCB2b2lkICp2KQogewogCWludCBpOwpAQCAtNTA5LDcgKzUyMyw5IEBACiAJCQlzdW0gKz0gdGVtcDsKIAkJCXBlcl9pcnFfc3VtW2pdICs9IHRlbXA7CiAJCX0KKwkJc3VtICs9IGFyY2hfaXJxX3N0YXRfY3B1KGkpOwogCX0KKwlzdW0gKz0gYXJjaF9pcnFfc3RhdCgpOwogCiAJc2VxX3ByaW50ZihwLCAiY3B1ICAlbGx1ICVsbHUgJWxsdSAlbGx1ICVsbHUgJWxsdSAlbGx1ICVsbHUgJWxsdVxuIiwKIAkJKHVuc2lnbmVkIGxvbmcgbG9uZyljcHV0aW1lNjRfdG9fY2xvY2tfdCh1c2VyKSwKZGlmZiAtLWdpdCBhL2ZzL3Byb2MvdGFza19tbXUuYyBiL2ZzL3Byb2MvdGFza19tbXUuYwppbmRleCBhYjhjY2M5Li4xNjRiZDlmIDEwMDY0NAotLS0gYS9mcy9wcm9jL3Rhc2tfbW11LmMKKysrIGIvZnMvcHJvYy90YXNrX21tdS5jCkBAIC0yMTAsNyArMjEwLDcgQEAKIAlkZXZfdCBkZXYgPSAwOwogCWludCBsZW47CiAKLQlpZiAobWFwc19wcm90ZWN0ICYmICFwdHJhY2VfbWF5X2F0dGFjaCh0YXNrKSkKKwlpZiAobWFwc19wcm90ZWN0ICYmICFwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKSkKIAkJcmV0dXJuIC1FQUNDRVM7CiAKIAlpZiAoZmlsZSkgewpAQCAtNDc2LDEwICs0NzYsMTAgQEAKIAkJcmV0dXJuIC1FU1JDSDsKIAltbSA9IGdldF90YXNrX21tKHRhc2spOwogCWlmIChtbSkgewotCQlzdGF0aWMgc3RydWN0IG1tX3dhbGsgY2xlYXJfcmVmc193YWxrOwotCQltZW1zZXQoJmNsZWFyX3JlZnNfd2FsaywgMCwgc2l6ZW9mKGNsZWFyX3JlZnNfd2FsaykpOwotCQljbGVhcl9yZWZzX3dhbGsucG1kX2VudHJ5ID0gY2xlYXJfcmVmc19wdGVfcmFuZ2U7Ci0JCWNsZWFyX3JlZnNfd2Fsay5tbSA9IG1tOworCQlzdHJ1Y3QgbW1fd2FsayBjbGVhcl9yZWZzX3dhbGsgPSB7CisJCQkucG1kX2VudHJ5ID0gY2xlYXJfcmVmc19wdGVfcmFuZ2UsCisJCQkubW0gPSBtbSwKKwkJfTsKIAkJZG93bl9yZWFkKCZtbS0+bW1hcF9zZW0pOwogCQlmb3IgKHZtYSA9IG1tLT5tbWFwOyB2bWE7IHZtYSA9IHZtYS0+dm1fbmV4dCkgewogCQkJY2xlYXJfcmVmc193YWxrLnByaXZhdGUgPSB2bWE7CkBAIC02MDIsMTEgKzYwMiw2IEBACiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHN0cnVjdCBtbV93YWxrIHBhZ2VtYXBfd2FsayA9IHsKLQkucG1kX2VudHJ5ID0gcGFnZW1hcF9wdGVfcmFuZ2UsCi0JLnB0ZV9ob2xlID0gcGFnZW1hcF9wdGVfaG9sZQotfTsKLQogLyoKICAqIC9wcm9jL3BpZC9wYWdlbWFwIC0gYW4gYXJyYXkgbWFwcGluZyB2aXJ0dWFsIHBhZ2VzIHRvIHBmbnMKICAqCkBAIC02NDEsMTIgKzYzNiwxNyBAQAogCXN0cnVjdCBwYWdlbWFwcmVhZCBwbTsKIAlpbnQgcGFnZWNvdW50OwogCWludCByZXQgPSAtRVNSQ0g7CisJc3RydWN0IG1tX3dhbGsgcGFnZW1hcF93YWxrOworCXVuc2lnbmVkIGxvbmcgc3JjOworCXVuc2lnbmVkIGxvbmcgc3ZwZm47CisJdW5zaWduZWQgbG9uZyBzdGFydF92YWRkcjsKKwl1bnNpZ25lZCBsb25nIGVuZF92YWRkcjsKIAogCWlmICghdGFzaykKIAkJZ290byBvdXQ7CiAKIAlyZXQgPSAtRUFDQ0VTOwotCWlmICghcHRyYWNlX21heV9hdHRhY2godGFzaykpCisJaWYgKCFwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKSkKIAkJZ290byBvdXRfdGFzazsKIAogCXJldCA9IC1FSU5WQUw7CkBAIC02NTksMTEgKzY1OSwxNSBAQAogCWlmICghbW0pCiAJCWdvdG8gb3V0X3Rhc2s7CiAKLQlyZXQgPSAtRU5PTUVNOworCiAJdWFkZHIgPSAodW5zaWduZWQgbG9uZylidWYgJiBQQUdFX01BU0s7CiAJdWVuZCA9ICh1bnNpZ25lZCBsb25nKShidWYgKyBjb3VudCk7CiAJcGFnZWNvdW50ID0gKFBBR0VfQUxJR04odWVuZCkgLSB1YWRkcikgLyBQQUdFX1NJWkU7Ci0JcGFnZXMgPSBrbWFsbG9jKHBhZ2Vjb3VudCAqIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSwgR0ZQX0tFUk5FTCk7CisJcmV0ID0gMDsKKwlpZiAocGFnZWNvdW50ID09IDApCisJCWdvdG8gb3V0X21tOworCXBhZ2VzID0ga2NhbGxvYyhwYWdlY291bnQsIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSwgR0ZQX0tFUk5FTCk7CisJcmV0ID0gLUVOT01FTTsKIAlpZiAoIXBhZ2VzKQogCQlnb3RvIG91dF9tbTsKIApAQCAtNjg0LDMzICs2ODgsMzMgQEAKIAlwbS5vdXQgPSAodTY0ICopYnVmOwogCXBtLmVuZCA9ICh1NjQgKikoYnVmICsgY291bnQpOwogCi0JaWYgKCFwdHJhY2VfbWF5X2F0dGFjaCh0YXNrKSkgewotCQlyZXQgPSAtRUlPOwotCX0gZWxzZSB7Ci0JCXVuc2lnbmVkIGxvbmcgc3JjID0gKnBwb3M7Ci0JCXVuc2lnbmVkIGxvbmcgc3ZwZm4gPSBzcmMgLyBQTV9FTlRSWV9CWVRFUzsKLQkJdW5zaWduZWQgbG9uZyBzdGFydF92YWRkciA9IHN2cGZuIDw8IFBBR0VfU0hJRlQ7Ci0JCXVuc2lnbmVkIGxvbmcgZW5kX3ZhZGRyID0gVEFTS19TSVpFX09GKHRhc2spOworCXBhZ2VtYXBfd2Fsay5wbWRfZW50cnkgPSBwYWdlbWFwX3B0ZV9yYW5nZTsKKwlwYWdlbWFwX3dhbGsucHRlX2hvbGUgPSBwYWdlbWFwX3B0ZV9ob2xlOworCXBhZ2VtYXBfd2Fsay5tbSA9IG1tOworCXBhZ2VtYXBfd2Fsay5wcml2YXRlID0gJnBtOwogCi0JCS8qIHdhdGNoIG91dCBmb3Igd3JhcGFyb3VuZCAqLwotCQlpZiAoc3ZwZm4gPiBUQVNLX1NJWkVfT0YodGFzaykgPj4gUEFHRV9TSElGVCkKLQkJCXN0YXJ0X3ZhZGRyID0gZW5kX3ZhZGRyOworCXNyYyA9ICpwcG9zOworCXN2cGZuID0gc3JjIC8gUE1fRU5UUllfQllURVM7CisJc3RhcnRfdmFkZHIgPSBzdnBmbiA8PCBQQUdFX1NISUZUOworCWVuZF92YWRkciA9IFRBU0tfU0laRV9PRih0YXNrKTsKIAotCQkvKgotCQkgKiBUaGUgb2RkcyBhcmUgdGhhdCB0aGlzIHdpbGwgc3RvcCB3YWxraW5nIHdheQotCQkgKiBiZWZvcmUgZW5kX3ZhZGRyLCBiZWNhdXNlIHRoZSBsZW5ndGggb2YgdGhlCi0JCSAqIHVzZXIgYnVmZmVyIGlzIHRyYWNrZWQgaW4gInBtIiwgYW5kIHRoZSB3YWxrCi0JCSAqIHdpbGwgc3RvcCB3aGVuIHdlIGhpdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCi0JCSAqLwotCQlyZXQgPSB3YWxrX3BhZ2VfcmFuZ2Uoc3RhcnRfdmFkZHIsIGVuZF92YWRkciwKLQkJCQkJJnBhZ2VtYXBfd2Fsayk7Ci0JCWlmIChyZXQgPT0gUE1fRU5EX09GX0JVRkZFUikKLQkJCXJldCA9IDA7Ci0JCS8qIGRvbid0IG5lZWQgbW1hcF9zZW0gZm9yIHRoZXNlLCBidXQgdGhpcyBsb29rcyBjbGVhbmVyICovCi0JCSpwcG9zICs9IChjaGFyICopcG0ub3V0IC0gYnVmOwotCQlpZiAoIXJldCkKLQkJCXJldCA9IChjaGFyICopcG0ub3V0IC0gYnVmOwotCX0KKwkvKiB3YXRjaCBvdXQgZm9yIHdyYXBhcm91bmQgKi8KKwlpZiAoc3ZwZm4gPiBUQVNLX1NJWkVfT0YodGFzaykgPj4gUEFHRV9TSElGVCkKKwkJc3RhcnRfdmFkZHIgPSBlbmRfdmFkZHI7CisKKwkvKgorCSAqIFRoZSBvZGRzIGFyZSB0aGF0IHRoaXMgd2lsbCBzdG9wIHdhbGtpbmcgd2F5CisJICogYmVmb3JlIGVuZF92YWRkciwgYmVjYXVzZSB0aGUgbGVuZ3RoIG9mIHRoZQorCSAqIHVzZXIgYnVmZmVyIGlzIHRyYWNrZWQgaW4gInBtIiwgYW5kIHRoZSB3YWxrCisJICogd2lsbCBzdG9wIHdoZW4gd2UgaGl0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KKwkgKi8KKwlyZXQgPSB3YWxrX3BhZ2VfcmFuZ2Uoc3RhcnRfdmFkZHIsIGVuZF92YWRkciwgJnBhZ2VtYXBfd2Fsayk7CisJaWYgKHJldCA9PSBQTV9FTkRfT0ZfQlVGRkVSKQorCQlyZXQgPSAwOworCS8qIGRvbid0IG5lZWQgbW1hcF9zZW0gZm9yIHRoZXNlLCBidXQgdGhpcyBsb29rcyBjbGVhbmVyICovCisJKnBwb3MgKz0gKGNoYXIgKilwbS5vdXQgLSBidWY7CisJaWYgKCFyZXQpCisJCXJldCA9IChjaGFyICopcG0ub3V0IC0gYnVmOwogCiBvdXRfcGFnZXM6CiAJZm9yICg7IHBhZ2Vjb3VudDsgcGFnZWNvdW50LS0pIHsKQEAgLTc0Myw3ICs3NDcsNyBAQAogCXN0cnVjdCBwcm9jX21hcHNfcHJpdmF0ZSAqcHJpdiA9IG0tPnByaXZhdGU7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrID0gcHJpdi0+dGFzazsKIAotCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYXR0YWNoKHRhc2spKQorCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX1JFQUQpKQogCQlyZXR1cm4gLUVBQ0NFUzsKIAogCXJldHVybiBzaG93X251bWFfbWFwKG0sIHYpOwpkaWZmIC0tZ2l0IGEvZnMvcHJvYy90YXNrX25vbW11LmMgYi9mcy9wcm9jL3Rhc2tfbm9tbXUuYwppbmRleCA0YjRmOWNjLi41ZDg0ZTcxIDEwMDY0NAotLS0gYS9mcy9wcm9jL3Rhc2tfbm9tbXUuYworKysgYi9mcy9wcm9jL3Rhc2tfbm9tbXUuYwpAQCAtMTEzLDcgKzExMyw3IEBACiAJc3RydWN0IHByb2NfbWFwc19wcml2YXRlICpwcml2ID0gbS0+cHJpdmF0ZTsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2sgPSBwcml2LT50YXNrOwogCi0JaWYgKG1hcHNfcHJvdGVjdCAmJiAhcHRyYWNlX21heV9hdHRhY2godGFzaykpCisJaWYgKG1hcHNfcHJvdGVjdCAmJiAhcHRyYWNlX21heV9hY2Nlc3ModGFzaywgUFRSQUNFX01PREVfUkVBRCkpCiAJCXJldHVybiAtRUFDQ0VTOwogCiAJcmV0dXJuIG5vbW11X3ZtYV9zaG93KG0sIHZtbC0+dm1hKTsKZGlmZiAtLWdpdCBhL2ZzL3JhbWZzL2ZpbGUtbW11LmMgYi9mcy9yYW1mcy9maWxlLW1tdS5jCmluZGV4IDk1OTBiOTAuLjc4ZjYxM2MgMTAwNjQ0Ci0tLSBhL2ZzL3JhbWZzL2ZpbGUtbW11LmMKKysrIGIvZnMvcmFtZnMvZmlsZS1tbXUuYwpAQCAtNDUsNiArNDUsNyBAQAogCS5tbWFwCQk9IGdlbmVyaWNfZmlsZV9tbWFwLAogCS5mc3luYwkJPSBzaW1wbGVfc3luY19maWxlLAogCS5zcGxpY2VfcmVhZAk9IGdlbmVyaWNfZmlsZV9zcGxpY2VfcmVhZCwKKwkuc3BsaWNlX3dyaXRlCT0gZ2VuZXJpY19maWxlX3NwbGljZV93cml0ZSwKIAkubGxzZWVrCQk9IGdlbmVyaWNfZmlsZV9sbHNlZWssCiB9OwogCmRpZmYgLS1naXQgYS9mcy9yYW1mcy9maWxlLW5vbW11LmMgYi9mcy9yYW1mcy9maWxlLW5vbW11LmMKaW5kZXggMDk4OWJjMi4uNTIzMTJlYyAxMDA2NDQKLS0tIGEvZnMvcmFtZnMvZmlsZS1ub21tdS5jCisrKyBiL2ZzL3JhbWZzL2ZpbGUtbm9tbXUuYwpAQCAtNDMsNiArNDMsNyBAQAogCS5haW9fd3JpdGUJCT0gZ2VuZXJpY19maWxlX2Fpb193cml0ZSwKIAkuZnN5bmMJCQk9IHNpbXBsZV9zeW5jX2ZpbGUsCiAJLnNwbGljZV9yZWFkCQk9IGdlbmVyaWNfZmlsZV9zcGxpY2VfcmVhZCwKKwkuc3BsaWNlX3dyaXRlCQk9IGdlbmVyaWNfZmlsZV9zcGxpY2Vfd3JpdGUsCiAJLmxsc2VlawkJCT0gZ2VuZXJpY19maWxlX2xsc2VlaywKIH07CiAKZGlmZiAtLWdpdCBhL2ZzL3JlYWRfd3JpdGUuYyBiL2ZzL3JlYWRfd3JpdGUuYwppbmRleCBmMGQxMjQwLi45YmE0OTVkIDEwMDY0NAotLS0gYS9mcy9yZWFkX3dyaXRlLmMKKysrIGIvZnMvcmVhZF93cml0ZS5jCkBAIC0zMSwxMiArMzEsMTIgQEAKIAogRVhQT1JUX1NZTUJPTChnZW5lcmljX3JvX2ZvcHMpOwogCi1sb2ZmX3QgZ2VuZXJpY19maWxlX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKK2xvZmZfdAorZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZChzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKIHsKIAlsb2ZmX3QgcmV0dmFsOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX21hcHBpbmctPmhvc3Q7CiAKLQltdXRleF9sb2NrKCZpbm9kZS0+aV9tdXRleCk7CiAJc3dpdGNoIChvcmlnaW4pIHsKIAkJY2FzZSBTRUVLX0VORDoKIAkJCW9mZnNldCArPSBpbm9kZS0+aV9zaXplOwpAQCAtNDYsNDIgKzQ2LDI2IEBACiAJfQogCXJldHZhbCA9IC1FSU5WQUw7CiAJaWYgKG9mZnNldD49MCAmJiBvZmZzZXQ8PWlub2RlLT5pX3NiLT5zX21heGJ5dGVzKSB7CisJCS8qIFNwZWNpYWwgbG9jayBuZWVkZWQgaGVyZT8gKi8KIAkJaWYgKG9mZnNldCAhPSBmaWxlLT5mX3BvcykgewogCQkJZmlsZS0+Zl9wb3MgPSBvZmZzZXQ7CiAJCQlmaWxlLT5mX3ZlcnNpb24gPSAwOwogCQl9CiAJCXJldHZhbCA9IG9mZnNldDsKIAl9Ci0JbXV0ZXhfdW5sb2NrKCZpbm9kZS0+aV9tdXRleCk7CiAJcmV0dXJuIHJldHZhbDsKIH0KK0VYUE9SVF9TWU1CT0woZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZCk7CiAKLUVYUE9SVF9TWU1CT0woZ2VuZXJpY19maWxlX2xsc2Vlayk7Ci0KLWxvZmZfdCByZW1vdGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQorbG9mZl90IGdlbmVyaWNfZmlsZV9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCiB7Ci0JbG9mZl90IHJldHZhbDsKLQotCWxvY2tfa2VybmVsKCk7Ci0Jc3dpdGNoIChvcmlnaW4pIHsKLQkJY2FzZSBTRUVLX0VORDoKLQkJCW9mZnNldCArPSBpX3NpemVfcmVhZChmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKTsKLQkJCWJyZWFrOwotCQljYXNlIFNFRUtfQ1VSOgotCQkJb2Zmc2V0ICs9IGZpbGUtPmZfcG9zOwotCX0KLQlyZXR2YWwgPSAtRUlOVkFMOwotCWlmIChvZmZzZXQ+PTAgJiYgb2Zmc2V0PD1maWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3NiLT5zX21heGJ5dGVzKSB7Ci0JCWlmIChvZmZzZXQgIT0gZmlsZS0+Zl9wb3MpIHsKLQkJCWZpbGUtPmZfcG9zID0gb2Zmc2V0OwotCQkJZmlsZS0+Zl92ZXJzaW9uID0gMDsKLQkJfQotCQlyZXR2YWwgPSBvZmZzZXQ7Ci0JfQotCXVubG9ja19rZXJuZWwoKTsKLQlyZXR1cm4gcmV0dmFsOworCWxvZmZfdCBuOworCW11dGV4X2xvY2soJmZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsKKwluID0gZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZChmaWxlLCBvZmZzZXQsIG9yaWdpbik7CisJbXV0ZXhfdW5sb2NrKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7CisJcmV0dXJuIG47CiB9Ci1FWFBPUlRfU1lNQk9MKHJlbW90ZV9sbHNlZWspOworRVhQT1JUX1NZTUJPTChnZW5lcmljX2ZpbGVfbGxzZWVrKTsKIAogbG9mZl90IG5vX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKIHsKZGlmZiAtLWdpdCBhL2ZzL3JlaXNlcmZzL2lub2RlLmMgYi9mcy9yZWlzZXJmcy9pbm9kZS5jCmluZGV4IDU3OTE3OTMuLjE5MjI2OTYgMTAwNjQ0Ci0tLSBhL2ZzL3JlaXNlcmZzL2lub2RlLmMKKysrIGIvZnMvcmVpc2VyZnMvaW5vZGUuYwpAQCAtNDUsNiArNDUsOCBAQAogCQkJZ290byBvdXQ7CiAJCXJlaXNlcmZzX3VwZGF0ZV9pbm9kZV90cmFuc2FjdGlvbihpbm9kZSk7CiAKKwkJcmVpc2VyZnNfZGlzY2FyZF9wcmVhbGxvYygmdGgsIGlub2RlKTsKKwogCQllcnIgPSByZWlzZXJmc19kZWxldGVfb2JqZWN0KCZ0aCwgaW5vZGUpOwogCiAJCS8qIERvIHF1b3RhIHVwZGF0ZSBpbnNpZGUgYSB0cmFuc2FjdGlvbiBmb3Igam91cm5hbGVkIHF1b3Rhcy4gV2UgbXVzdCBkbyB0aGF0CmRpZmYgLS1naXQgYS9mcy9yZWlzZXJmcy9zdXBlci5jIGIvZnMvcmVpc2VyZnMvc3VwZXIuYwppbmRleCBlZDQyNGQ3Li4xZDQwZjJiIDEwMDY0NAotLS0gYS9mcy9yZWlzZXJmcy9zdXBlci5jCisrKyBiL2ZzL3JlaXNlcmZzL3N1cGVyLmMKQEAgLTIxNjUsOCArMjE2NSwxMCBAQAogCQlibGsrKzsKIAl9CiBvdXQ6Ci0JaWYgKGxlbiA9PSB0b3dyaXRlKQorCWlmIChsZW4gPT0gdG93cml0ZSkgeworCQltdXRleF91bmxvY2soJmlub2RlLT5pX211dGV4KTsKIAkJcmV0dXJuIGVycjsKKwl9CiAJaWYgKGlub2RlLT5pX3NpemUgPCBvZmYgKyBsZW4gLSB0b3dyaXRlKQogCQlpX3NpemVfd3JpdGUoaW5vZGUsIG9mZiArIGxlbiAtIHRvd3JpdGUpOwogCWlub2RlLT5pX3ZlcnNpb24rKzsKZGlmZiAtLWdpdCBhL2ZzL3NtYmZzL2ZpbGUuYyBiL2ZzL3NtYmZzL2ZpbGUuYwppbmRleCBlZmJlMjlhLi4yMjk0NzgzIDEwMDY0NAotLS0gYS9mcy9zbWJmcy9maWxlLmMKKysrIGIvZnMvc21iZnMvZmlsZS5jCkBAIC00MjIsOSArNDIyLDE4IEBACiAJcmV0dXJuIGVycm9yOwogfQogCitzdGF0aWMgbG9mZl90IHNtYl9yZW1vdGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQoreworCWxvZmZfdCByZXQ7CisJbG9ja19rZXJuZWwoKTsKKwlyZXQgPSBnZW5lcmljX2ZpbGVfbGxzZWVrX3VubG9ja2VkKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKK30KKwogY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBzbWJfZmlsZV9vcGVyYXRpb25zID0KIHsKLQkubGxzZWVrCQk9IHJlbW90ZV9sbHNlZWssCisJLmxsc2VlayAJPSBzbWJfcmVtb3RlX2xsc2VlaywKIAkucmVhZAkJPSBkb19zeW5jX3JlYWQsCiAJLmFpb19yZWFkCT0gc21iX2ZpbGVfYWlvX3JlYWQsCiAJLndyaXRlCQk9IGRvX3N5bmNfd3JpdGUsCmRpZmYgLS1naXQgYS9mcy9zcGxpY2UuYyBiL2ZzL3NwbGljZS5jCmluZGV4IGFhNWY2ZjYuLjM5OTQ0MjEgMTAwNjQ0Ci0tLSBhL2ZzL3NwbGljZS5jCisrKyBiL2ZzL3NwbGljZS5jCkBAIC0zNzksMTMgKzM3OSwyMiBAQAogCQkJCWxvY2tfcGFnZShwYWdlKTsKIAogCQkJLyoKLQkJCSAqIHBhZ2Ugd2FzIHRydW5jYXRlZCwgc3RvcCBoZXJlLiBpZiB0aGlzIGlzbid0IHRoZQotCQkJICogZmlyc3QgcGFnZSwgd2UnbGwganVzdCBjb21wbGV0ZSB3aGF0IHdlIGFscmVhZHkKLQkJCSAqIGFkZGVkCisJCQkgKiBQYWdlIHdhcyB0cnVuY2F0ZWQsIG9yIGludmFsaWRhdGVkIGJ5IHRoZQorCQkJICogZmlsZXN5c3RlbS4gIFJlZG8gdGhlIGZpbmQvY3JlYXRlLCBidXQgdGhpcyB0aW1lIHRoZQorCQkJICogcGFnZSBpcyBrZXB0IGxvY2tlZCwgc28gdGhlcmUncyBubyBjaGFuY2Ugb2YgYW5vdGhlcgorCQkJICogcmFjZSB3aXRoIHRydW5jYXRlL2ludmFsaWRhdGUuCiAJCQkgKi8KIAkJCWlmICghcGFnZS0+bWFwcGluZykgewogCQkJCXVubG9ja19wYWdlKHBhZ2UpOwotCQkJCWJyZWFrOworCQkJCXBhZ2UgPSBmaW5kX29yX2NyZWF0ZV9wYWdlKG1hcHBpbmcsIGluZGV4LAorCQkJCQkJbWFwcGluZ19nZnBfbWFzayhtYXBwaW5nKSk7CisKKwkJCQlpZiAoIXBhZ2UpIHsKKwkJCQkJZXJyb3IgPSAtRU5PTUVNOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2VzW3BhZ2VfbnJdKTsKKwkJCQlwYWdlc1twYWdlX25yXSA9IHBhZ2U7CiAJCQl9CiAJCQkvKgogCQkJICogcGFnZSB3YXMgYWxyZWFkeSB1bmRlciBpbyBhbmQgaXMgbm93IGRvbmUsIGdyZWF0CmRpZmYgLS1naXQgYS9mcy91ZGYvc3VwZXIuYyBiL2ZzL3VkZi9zdXBlci5jCmluZGV4IDdhNWY2OWIuLjQ0Y2M3MDIgMTAwNjQ0Ci0tLSBhL2ZzL3VkZi9zdXBlci5jCisrKyBiL2ZzL3VkZi9zdXBlci5jCkBAIC02ODIsMzggKzY4MiwyNiBAQAogLyoKICAqIENoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYW4gYW5jaG9yIGJsb2NrIGluIHRoZSBnaXZlbiBibG9jawogICovCi1zdGF0aWMgaW50IHVkZl9jaGVja19hbmNob3JfYmxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc2VjdG9yX3QgYmxvY2ssCi0JCQkJCWJvb2wgdmFyY29udikKK3N0YXRpYyBpbnQgdWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzZWN0b3JfdCBibG9jaykKIHsKLQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoID0gTlVMTDsKLQl0YWcgKnQ7CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKIAl1aW50MTZfdCBpZGVudDsKLQl1aW50MzJfdCBsb2NhdGlvbjsKIAotCWlmICh2YXJjb252KSB7Ci0JCWlmICh1ZGZfZml4ZWRfdG9fdmFyaWFibGUoYmxvY2spID49Ci0JCSAgICBzYi0+c19iZGV2LT5iZF9pbm9kZS0+aV9zaXplID4+IHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzKQotCQkJcmV0dXJuIDA7Ci0JCWJoID0gc2JfYnJlYWQoc2IsIHVkZl9maXhlZF90b192YXJpYWJsZShibG9jaykpOwotCX0KLQllbHNlCi0JCWJoID0gc2JfYnJlYWQoc2IsIGJsb2NrKTsKKwlpZiAoVURGX1FVRVJZX0ZMQUcoc2IsIFVERl9GTEFHX1ZBUkNPTlYpICYmCisJICAgIHVkZl9maXhlZF90b192YXJpYWJsZShibG9jaykgPj0KKwkgICAgc2ItPnNfYmRldi0+YmRfaW5vZGUtPmlfc2l6ZSA+PiBzYi0+c19ibG9ja3NpemVfYml0cykKKwkJcmV0dXJuIDA7CiAKKwliaCA9IHVkZl9yZWFkX3RhZ2dlZChzYiwgYmxvY2ssIGJsb2NrLCAmaWRlbnQpOwogCWlmICghYmgpCiAJCXJldHVybiAwOwotCi0JdCA9ICh0YWcgKiliaC0+Yl9kYXRhOwotCWlkZW50ID0gbGUxNl90b19jcHUodC0+dGFnSWRlbnQpOwotCWxvY2F0aW9uID0gbGUzMl90b19jcHUodC0+dGFnTG9jYXRpb24pOwogCWJyZWxzZShiaCk7Ci0JaWYgKGlkZW50ICE9IFRBR19JREVOVF9BVkRQKQotCQlyZXR1cm4gMDsKLQlyZXR1cm4gbG9jYXRpb24gPT0gYmxvY2s7CisKKwlyZXR1cm4gaWRlbnQgPT0gVEFHX0lERU5UX0FWRFA7CiB9CiAKIC8qIFNlYXJjaCBmb3IgYW4gYW5jaG9yIHZvbHVtZSBkZXNjcmlwdG9yIHBvaW50ZXIgKi8KLXN0YXRpYyBzZWN0b3JfdCB1ZGZfc2Nhbl9hbmNob3JzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGJvb2wgdmFyY29udiwKLQkJCQkJc2VjdG9yX3QgbGFzdGJsb2NrKQorc3RhdGljIHNlY3Rvcl90IHVkZl9zY2FuX2FuY2hvcnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc2VjdG9yX3QgbGFzdGJsb2NrKQogewogCXNlY3Rvcl90IGxhc3RbNl07CiAJaW50IGk7CkBAIC03MzksNyArNzI3LDcgQEAKIAkJCQlzYi0+c19ibG9ja3NpemVfYml0cykKIAkJCWNvbnRpbnVlOwogCi0JCWlmICh1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHNiLCBsYXN0W2ldLCB2YXJjb252KSkgeworCQlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgbGFzdFtpXSkpIHsKIAkJCXNiaS0+c19hbmNob3JbMF0gPSBsYXN0W2ldOwogCQkJc2JpLT5zX2FuY2hvclsxXSA9IGxhc3RbaV0gLSAyNTY7CiAJCQlyZXR1cm4gbGFzdFtpXTsKQEAgLTc0OCwxNyArNzM2LDE3IEBACiAJCWlmIChsYXN0W2ldIDwgMjU2KQogCQkJY29udGludWU7CiAKLQkJaWYgKHVkZl9jaGVja19hbmNob3JfYmxvY2soc2IsIGxhc3RbaV0gLSAyNTYsIHZhcmNvbnYpKSB7CisJCWlmICh1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHNiLCBsYXN0W2ldIC0gMjU2KSkgewogCQkJc2JpLT5zX2FuY2hvclsxXSA9IGxhc3RbaV0gLSAyNTY7CiAJCQlyZXR1cm4gbGFzdFtpXTsKIAkJfQogCX0KIAotCWlmICh1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHNiLCBzYmktPnNfc2Vzc2lvbiArIDI1NiwgdmFyY29udikpIHsKKwlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgc2JpLT5zX3Nlc3Npb24gKyAyNTYpKSB7CiAJCXNiaS0+c19hbmNob3JbMF0gPSBzYmktPnNfc2Vzc2lvbiArIDI1NjsKIAkJcmV0dXJuIGxhc3RbMF07CiAJfQotCWlmICh1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHNiLCBzYmktPnNfc2Vzc2lvbiArIDUxMiwgdmFyY29udikpIHsKKwlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgc2JpLT5zX3Nlc3Npb24gKyA1MTIpKSB7CiAJCXNiaS0+c19hbmNob3JbMF0gPSBzYmktPnNfc2Vzc2lvbiArIDUxMjsKIAkJcmV0dXJuIGxhc3RbMF07CiAJfQpAQCAtNzgwLDIzICs3NjgsMjQgQEAKIAlpbnQgaTsKIAlzdHJ1Y3QgdWRmX3NiX2luZm8gKnNiaSA9IFVERl9TQihzYik7CiAKLQlsYXN0YmxvY2sgPSB1ZGZfc2Nhbl9hbmNob3JzKHNiLCAwLCBzYmktPnNfbGFzdF9ibG9jayk7CisJbGFzdGJsb2NrID0gdWRmX3NjYW5fYW5jaG9ycyhzYiwgc2JpLT5zX2xhc3RfYmxvY2spOwogCWlmIChsYXN0YmxvY2spCiAJCWdvdG8gY2hlY2tfYW5jaG9yOwogCiAJLyogTm8gYW5jaG9yIGZvdW5kPyBUcnkgVkFSQ09OViBjb252ZXJzaW9uIG9mIGJsb2NrIG51bWJlcnMgKi8KKwlVREZfU0VUX0ZMQUcoc2IsIFVERl9GTEFHX1ZBUkNPTlYpOwogCS8qIEZpcnN0bHksIHdlIHRyeSB0byBub3QgY29udmVydCBudW1iZXIgb2YgdGhlIGxhc3QgYmxvY2sgKi8KLQlsYXN0YmxvY2sgPSB1ZGZfc2Nhbl9hbmNob3JzKHNiLCAxLAorCWxhc3RibG9jayA9IHVkZl9zY2FuX2FuY2hvcnMoc2IsCiAJCQkJdWRmX3ZhcmlhYmxlX3RvX2ZpeGVkKHNiaS0+c19sYXN0X2Jsb2NrKSk7Ci0JaWYgKGxhc3RibG9jaykgewotCQlVREZfU0VUX0ZMQUcoc2IsIFVERl9GTEFHX1ZBUkNPTlYpOworCWlmIChsYXN0YmxvY2spCiAJCWdvdG8gY2hlY2tfYW5jaG9yOwotCX0KIAogCS8qIFNlY29uZGx5LCB3ZSB0cnkgd2l0aCBjb252ZXJ0ZWQgbnVtYmVyIG9mIHRoZSBsYXN0IGJsb2NrICovCi0JbGFzdGJsb2NrID0gdWRmX3NjYW5fYW5jaG9ycyhzYiwgMSwgc2JpLT5zX2xhc3RfYmxvY2spOwotCWlmIChsYXN0YmxvY2spCi0JCVVERl9TRVRfRkxBRyhzYiwgVURGX0ZMQUdfVkFSQ09OVik7CisJbGFzdGJsb2NrID0gdWRmX3NjYW5fYW5jaG9ycyhzYiwgc2JpLT5zX2xhc3RfYmxvY2spOworCWlmICghbGFzdGJsb2NrKSB7CisJCS8qIFZBUkNPTlYgZGlkbid0IGhlbHAuIENsZWFyIGl0LiAqLworCQlVREZfQ0xFQVJfRkxBRyhzYiwgVURGX0ZMQUdfVkFSQ09OVik7CisJfQogCiBjaGVja19hbmNob3I6CiAJLyoKZGlmZiAtLWdpdCBhL2ZzL3V0aW1lcy5jIGIvZnMvdXRpbWVzLmMKaW5kZXggYWYwNTlkNS4uYjZiNjY0ZSAxMDA2NDQKLS0tIGEvZnMvdXRpbWVzLmMKKysrIGIvZnMvdXRpbWVzLmMKQEAgLTQwLDE0ICs0MCw5IEBACiAKICNlbmRpZgogCi1zdGF0aWMgYm9vbCBuc2VjX3NwZWNpYWwobG9uZyBuc2VjKQotewotCXJldHVybiBuc2VjID09IFVUSU1FX09NSVQgfHwgbnNlYyA9PSBVVElNRV9OT1c7Ci19Ci0KIHN0YXRpYyBib29sIG5zZWNfdmFsaWQobG9uZyBuc2VjKQogewotCWlmIChuc2VjX3NwZWNpYWwobnNlYykpCisJaWYgKG5zZWMgPT0gVVRJTUVfT01JVCB8fCBuc2VjID09IFVUSU1FX05PVykKIAkJcmV0dXJuIHRydWU7CiAKIAlyZXR1cm4gbnNlYyA+PSAwICYmIG5zZWMgPD0gOTk5OTk5OTk5OwpAQCAtMTAyLDcgKzk3LDExIEBACiAJaWYgKGVycm9yKQogCQlnb3RvIGRwdXRfYW5kX291dDsKIAotCS8qIERvbid0IHdvcnJ5LCB0aGUgY2hlY2tzIGFyZSBkb25lIGluIGlub2RlX2NoYW5nZV9vaygpICovCisJaWYgKHRpbWVzICYmIHRpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfTk9XICYmCisJCSAgICAgdGltZXNbMV0udHZfbnNlYyA9PSBVVElNRV9OT1cpCisJCXRpbWVzID0gTlVMTDsKKworCS8qIEluIG1vc3QgY2FzZXMsIHRoZSBjaGVja3MgYXJlIGRvbmUgaW4gaW5vZGVfY2hhbmdlX29rKCkgKi8KIAluZXdhdHRycy5pYV92YWxpZCA9IEFUVFJfQ1RJTUUgfCBBVFRSX01USU1FIHwgQVRUUl9BVElNRTsKIAlpZiAodGltZXMpIHsKIAkJZXJyb3IgPSAtRVBFUk07CkBAIC0xMjQsMjggKzEyMywzNCBAQAogCQkJbmV3YXR0cnMuaWFfbXRpbWUudHZfbnNlYyA9IHRpbWVzWzFdLnR2X25zZWM7CiAJCQluZXdhdHRycy5pYV92YWxpZCB8PSBBVFRSX01USU1FX1NFVDsKIAkJfQotCX0KIAotCS8qCi0JICogSWYgdGltZXMgaXMgTlVMTCBvciBib3RoIHRpbWVzIGFyZSBlaXRoZXIgVVRJTUVfT01JVCBvcgotCSAqIFVUSU1FX05PVywgdGhlbiBuZWVkIHRvIGNoZWNrIHBlcm1pc3Npb25zLCBiZWNhdXNlCi0JICogaW5vZGVfY2hhbmdlX29rKCkgd29uJ3QgZG8gaXQuCi0JICovCi0JaWYgKCF0aW1lcyB8fCAobnNlY19zcGVjaWFsKHRpbWVzWzBdLnR2X25zZWMpICYmCi0JCSAgICAgICBuc2VjX3NwZWNpYWwodGltZXNbMV0udHZfbnNlYykpKSB7CisJCS8qCisJCSAqIEZvciB0aGUgVVRJTUVfT01JVC9VVElNRV9OT1cgYW5kIFVUSU1FX05PVy9VVElNRV9PTUlUCisJCSAqIGNhc2VzLCB3ZSBuZWVkIHRvIG1ha2UgYW4gZXh0cmEgY2hlY2sgdGhhdCBpcyBub3QgZG9uZSBieQorCQkgKiBpbm9kZV9jaGFuZ2Vfb2soKS4KKwkJICovCisJCWlmICgoKHRpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfTk9XICYmCisJCQkgICAgdGltZXNbMV0udHZfbnNlYyA9PSBVVElNRV9PTUlUKQorCQkgICAgIHx8CisJCSAgICAgKHRpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfT01JVCAmJgorCQkJICAgIHRpbWVzWzFdLnR2X25zZWMgPT0gVVRJTUVfTk9XKSkKKwkJICAgICYmICFpc19vd25lcl9vcl9jYXAoaW5vZGUpKQorCQkJZ290byBtbnRfZHJvcF93cml0ZV9hbmRfb3V0OworCX0gZWxzZSB7CisKKwkJLyoKKwkJICogSWYgdGltZXMgaXMgTlVMTCAob3IgYm90aCB0aW1lcyBhcmUgVVRJTUVfTk9XKSwKKwkJICogdGhlbiB3ZSBuZWVkIHRvIGNoZWNrIHBlcm1pc3Npb25zLCBiZWNhdXNlCisJCSAqIGlub2RlX2NoYW5nZV9vaygpIHdvbid0IGRvIGl0LgorCQkgKi8KIAkJZXJyb3IgPSAtRUFDQ0VTOwogICAgICAgICAgICAgICAgIGlmIChJU19JTU1VVEFCTEUoaW5vZGUpKQogCQkJZ290byBtbnRfZHJvcF93cml0ZV9hbmRfb3V0OwogCiAJCWlmICghaXNfb3duZXJfb3JfY2FwKGlub2RlKSkgewotCQkJaWYgKGYpIHsKLQkJCQlpZiAoIShmLT5mX21vZGUgJiBGTU9ERV9XUklURSkpCi0JCQkJCWdvdG8gbW50X2Ryb3Bfd3JpdGVfYW5kX291dDsKLQkJCX0gZWxzZSB7Ci0JCQkJZXJyb3IgPSB2ZnNfcGVybWlzc2lvbigmbmQsIE1BWV9XUklURSk7Ci0JCQkJaWYgKGVycm9yKQotCQkJCQlnb3RvIG1udF9kcm9wX3dyaXRlX2FuZF9vdXQ7Ci0JCQl9CisJCQllcnJvciA9IHBlcm1pc3Npb24oaW5vZGUsIE1BWV9XUklURSwgTlVMTCk7CisJCQlpZiAoZXJyb3IpCisJCQkJZ290byBtbnRfZHJvcF93cml0ZV9hbmRfb3V0OwogCQl9CiAJfQogCW11dGV4X2xvY2soJmlub2RlLT5pX211dGV4KTsKQEAgLTE2OSwxNCArMTc0LDYgQEAKIAlpZiAodXRpbWVzKSB7CiAJCWlmIChjb3B5X2Zyb21fdXNlcigmdHN0aW1lcywgdXRpbWVzLCBzaXplb2YodHN0aW1lcykpKQogCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCWlmICgodHN0aW1lc1swXS50dl9uc2VjID09IFVUSU1FX09NSVQgfHwKLQkJICAgICB0c3RpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfTk9XKSAmJgotCQkgICAgdHN0aW1lc1swXS50dl9zZWMgIT0gMCkKLQkJCXJldHVybiAtRUlOVkFMOwotCQlpZiAoKHRzdGltZXNbMV0udHZfbnNlYyA9PSBVVElNRV9PTUlUIHx8Ci0JCSAgICAgdHN0aW1lc1sxXS50dl9uc2VjID09IFVUSU1FX05PVykgJiYKLQkJICAgIHRzdGltZXNbMV0udHZfc2VjICE9IDApCi0JCQlyZXR1cm4gLUVJTlZBTDsKIAogCQkvKiBOb3RoaW5nIHRvIGRvLCB3ZSBtdXN0IG5vdCBldmVuIGNoZWNrIHRoZSBwYXRoLiAgKi8KIAkJaWYgKHRzdGltZXNbMF0udHZfbnNlYyA9PSBVVElNRV9PTUlUICYmCmRpZmYgLS1naXQgYS9mcy92ZmF0L25hbWVpLmMgYi9mcy92ZmF0L25hbWVpLmMKaW5kZXggYTM1MjI3Mi4uYjU0NmJhNiAxMDA2NDQKLS0tIGEvZnMvdmZhdC9uYW1laS5jCisrKyBiL2ZzL3ZmYXQvbmFtZWkuYwpAQCAtNjQ1LDcgKzY0NSw3IEBACiAJaWYgKGxlbiA9PSAwKQogCQlyZXR1cm4gLUVOT0VOVDsKIAotCXNsb3RzID0ga21hbGxvYyhzaXplb2YoKnNsb3RzKSAqIE1TRE9TX1NMT1RTLCBHRlBfS0VSTkVMKTsKKwlzbG90cyA9IGttYWxsb2Moc2l6ZW9mKCpzbG90cykgKiBNU0RPU19TTE9UUywgR0ZQX05PRlMpOwogCWlmIChzbG90cyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtNjg3LDcgKzY4Nyw3IEBACiAJc3RydWN0IGRlbnRyeSAqYWxpYXM7CiAJaW50IGVyciwgdGFibGU7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCXRhYmxlID0gKE1TRE9TX1NCKHNiKS0+b3B0aW9ucy5uYW1lX2NoZWNrID09ICdzJykgPyAyIDogMDsKIAlkZW50cnktPmRfb3AgPSAmdmZhdF9kZW50cnlfb3BzW3RhYmxlXTsKIApAQCAtNjk5LDcgKzY5OSw3IEBACiAJaW5vZGUgPSBmYXRfYnVpbGRfaW5vZGUoc2IsIHNpbmZvLmRlLCBzaW5mby5pX3Bvcyk7CiAJYnJlbHNlKHNpbmZvLmJoKTsKIAlpZiAoSVNfRVJSKGlub2RlKSkgewotCQl1bmxvY2tfa2VybmVsKCk7CisJCXVubG9ja19zdXBlcihzYik7CiAJCXJldHVybiBFUlJfQ0FTVChpbm9kZSk7CiAJfQogCWFsaWFzID0gZF9maW5kX2FsaWFzKGlub2RlKTsKQEAgLTcwOCwxMyArNzA4LDEzIEBACiAJCQlkcHV0KGFsaWFzKTsKIAkJZWxzZSB7CiAJCQlpcHV0KGlub2RlKTsKLQkJCXVubG9ja19rZXJuZWwoKTsKKwkJCXVubG9ja19zdXBlcihzYik7CiAJCQlyZXR1cm4gYWxpYXM7CiAJCX0KIAogCX0KIGVycm9yOgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCWRlbnRyeS0+ZF9vcCA9ICZ2ZmF0X2RlbnRyeV9vcHNbdGFibGVdOwogCWRlbnRyeS0+ZF90aW1lID0gZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZS0+aV92ZXJzaW9uOwogCWRlbnRyeSA9IGRfc3BsaWNlX2FsaWFzKGlub2RlLCBkZW50cnkpOwpAQCAtNzM0LDcgKzczNCw3IEBACiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJdHMgPSBDVVJSRU5UX1RJTUVfU0VDOwogCWVyciA9IHZmYXRfYWRkX2VudHJ5KGRpciwgJmRlbnRyeS0+ZF9uYW1lLCAwLCAwLCAmdHMsICZzaW5mbyk7CkBAIC03NTUsMTcgKzc1NSwxOCBAQAogCWRlbnRyeS0+ZF90aW1lID0gZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZS0+aV92ZXJzaW9uOwogCWRfaW5zdGFudGlhdGUoZGVudHJ5LCBpbm9kZSk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCB2ZmF0X3JtZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gZGlyLT5pX3NiOwogCXN0cnVjdCBmYXRfc2xvdF9pbmZvIHNpbmZvOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gZmF0X2Rpcl9lbXB0eShpbm9kZSk7CiAJaWYgKGVycikKQEAgLTc4Myw3ICs3ODQsNyBAQAogCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfYXRpbWUgPSBDVVJSRU5UX1RJTUVfU0VDOwogCWZhdF9kZXRhY2goaW5vZGUpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTc5MSwxMCArNzkyLDExIEBACiBzdGF0aWMgaW50IHZmYXRfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gZGlyLT5pX3NiOwogCXN0cnVjdCBmYXRfc2xvdF9pbmZvIHNpbmZvOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gdmZhdF9maW5kKGRpciwgJmRlbnRyeS0+ZF9uYW1lLCAmc2luZm8pOwogCWlmIChlcnIpCkBAIC04MDcsNyArODA5LDcgQEAKIAlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2F0aW1lID0gQ1VSUkVOVF9USU1FX1NFQzsKIAlmYXRfZGV0YWNoKGlub2RlKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAogCXJldHVybiBlcnI7CiB9CkBAIC04MjAsNyArODIyLDcgQEAKIAlzdHJ1Y3QgdGltZXNwZWMgdHM7CiAJaW50IGVyciwgY2x1c3RlcjsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAKIAl0cyA9IENVUlJFTlRfVElNRV9TRUM7CiAJY2x1c3RlciA9IGZhdF9hbGxvY19uZXdfZGlyKGRpciwgJnRzKTsKQEAgLTg0OSwxMyArODUxLDEzIEBACiAJZGVudHJ5LT5kX3RpbWUgPSBkZW50cnktPmRfcGFyZW50LT5kX2lub2RlLT5pX3ZlcnNpb247CiAJZF9pbnN0YW50aWF0ZShkZW50cnksIGlub2RlKTsKIAotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCXJldHVybiAwOwogCiBvdXRfZnJlZToKIAlmYXRfZnJlZV9jbHVzdGVycyhkaXIsIGNsdXN0ZXIpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTg2OSwxMSArODcxLDEyIEBACiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCWxvZmZfdCBkb3Rkb3RfaV9wb3MsIG5ld19pX3BvczsKIAlpbnQgZXJyLCBpc19kaXIsIHVwZGF0ZV9kb3Rkb3QsIGNvcnJ1cHQgPSAwOworCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBvbGRfZGlyLT5pX3NiOwogCiAJb2xkX3NpbmZvLmJoID0gc2luZm8uYmggPSBkb3Rkb3RfYmggPSBOVUxMOwogCW9sZF9pbm9kZSA9IG9sZF9kZW50cnktPmRfaW5vZGU7CiAJbmV3X2lub2RlID0gbmV3X2RlbnRyeS0+ZF9pbm9kZTsKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCWVyciA9IHZmYXRfZmluZChvbGRfZGlyLCAmb2xkX2RlbnRyeS0+ZF9uYW1lLCAmb2xkX3NpbmZvKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTk1MSw3ICs5NTQsNyBAQAogCWJyZWxzZShzaW5mby5iaCk7CiAJYnJlbHNlKGRvdGRvdF9iaCk7CiAJYnJlbHNlKG9sZF9zaW5mby5iaCk7Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAKIAlyZXR1cm4gZXJyOwogCmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX2xvZy5jIGIvZnMveGZzL3hmc19sb2cuYwppbmRleCBhZmFlZTMwLi5hZDNkMjZkIDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX2xvZy5jCisrKyBiL2ZzL3hmcy94ZnNfbG9nLmMKQEAgLTI0MjcsMTMgKzI0MjcsMjAgQEAKIAlpZiAoaWNsb2ctPmljX3NpemUgLSBpY2xvZy0+aWNfb2Zmc2V0IDwgMipzaXplb2YoeGxvZ19vcF9oZWFkZXJfdCkpIHsKIAkJeGxvZ19zdGF0ZV9zd2l0Y2hfaWNsb2dzKGxvZywgaWNsb2csIGljbG9nLT5pY19zaXplKTsKIAotCQkvKiBJZiBJJ20gdGhlIG9ubHkgb25lIHdyaXRpbmcgdG8gdGhpcyBpY2xvZywgc3luYyBpdCB0byBkaXNrICovCi0JCWlmIChhdG9taWNfcmVhZCgmaWNsb2ctPmljX3JlZmNudCkgPT0gMSkgeworCQkvKgorCQkgKiBJZiBJJ20gdGhlIG9ubHkgb25lIHdyaXRpbmcgdG8gdGhpcyBpY2xvZywgc3luYyBpdCB0byBkaXNrLgorCQkgKiBXZSBuZWVkIHRvIGRvIGFuIGF0b21pYyBjb21wYXJlIGFuZCBkZWNyZW1lbnQgaGVyZSB0byBhdm9pZAorCQkgKiByYWNpbmcgd2l0aCBjb25jdXJyZW50IGF0b21pY19kZWNfYW5kX2xvY2soKSBjYWxscyBpbgorCQkgKiB4bG9nX3N0YXRlX3JlbGVhc2VfaWNsb2coKSB3aGVuIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUKKwkJICogcmVmZXJlbmNlIHRvIHRoZSBpY2xvZy4KKwkJICovCisJCWlmICghYXRvbWljX2FkZF91bmxlc3MoJmljbG9nLT5pY19yZWZjbnQsIC0xLCAxKSkgeworCQkJLyogd2UgYXJlIHRoZSBvbmx5IG9uZSAqLwogCQkJc3Bpbl91bmxvY2soJmxvZy0+bF9pY2xvZ2xvY2spOwotCQkJaWYgKChlcnJvciA9IHhsb2dfc3RhdGVfcmVsZWFzZV9pY2xvZyhsb2csIGljbG9nKSkpCisJCQllcnJvciA9IHhsb2dfc3RhdGVfcmVsZWFzZV9pY2xvZyhsb2csIGljbG9nKTsKKwkJCWlmIChlcnJvcikKIAkJCQlyZXR1cm4gZXJyb3I7CiAJCX0gZWxzZSB7Ci0JCQlhdG9taWNfZGVjKCZpY2xvZy0+aWNfcmVmY250KTsKIAkJCXNwaW5fdW5sb2NrKCZsb2ctPmxfaWNsb2dsb2NrKTsKIAkJfQogCQlnb3RvIHJlc3RhcnQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL0tidWlsZCBiL2luY2x1ZGUvS2J1aWxkCmluZGV4IGI1MjI4ODcuLmJkY2ExNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvS2J1aWxkCisrKyBiL2luY2x1ZGUvS2J1aWxkCkBAIC00LDUgKzQsNiBAQAogaGVhZGVyLXkgKz0gbXRkLwogaGVhZGVyLXkgKz0gcmRtYS8KIGhlYWRlci15ICs9IHZpZGVvLworaGVhZGVyLXkgKz0gZHJtLwogCiBoZWFkZXIteSArPSBhc20tJChBUkNIKS8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MV9wbWMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MV9wbWMuaAppbmRleCBjMmIxM2MyLi4yMDAxZTgxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFfcG1jLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxX3BtYy5oCkBAIC0zOSwxMCArMzksMTQgQEAKICNkZWZpbmUJQVQ5MV9QTUNfUENTUgkJKEFUOTFfUE1DICsgMHgxOCkJLyogUGVyaXBoZXJhbCBDbG9jayBTdGF0dXMgUmVnaXN0ZXIgKi8KIAogI2RlZmluZQlBVDkxX0NLR1JfVUNLUgkJKEFUOTFfUE1DICsgMHgxQykJLyogVVRNSSBDbG9jayBSZWdpc3RlciBbU0FNOVJMLCBDQVA5XSAqLworI2RlZmluZQkJQVQ5MV9QTUNfVVBMTEVOCQkoMSAgIDw8IDE2KQkJLyogVVRNSSBQTEwgRW5hYmxlICovCisjZGVmaW5lCQlBVDkxX1BNQ19VUExMQ09VTlQJKDB4ZiA8PCAyMCkJCS8qIFVUTUkgUExMIFN0YXJ0LXVwIFRpbWUgKi8KKyNkZWZpbmUJCUFUOTFfUE1DX0JJQVNFTgkJKDEgICA8PCAyNCkJCS8qIFVUTUkgQklBUyBFbmFibGUgKi8KKyNkZWZpbmUJCUFUOTFfUE1DX0JJQVNDT1VOVAkoMHhmIDw8IDI4KQkJLyogVVRNSSBQTEwgU3RhcnQtdXAgVGltZSAqLwogCiAjZGVmaW5lCUFUOTFfQ0tHUl9NT1IJCShBVDkxX1BNQyArIDB4MjApCS8qIE1haW4gT3NjaWxsYXRvciBSZWdpc3RlciBbbm90IG9uIFNBTTlSTF0gKi8KICNkZWZpbmUJCUFUOTFfUE1DX01PU0NFTgkJKDEgICAgPDwgMCkJCS8qIE1haW4gT3NjaWxsYXRvciBFbmFibGUgKi8KLSNkZWZpbmUJCUFUOTFfUE1DX09TQ0JZUEFTUwkoMSAgICA8PCAxKQkJLyogT3NjaWxsYXRvciBCeXBhc3MgW0FUOTFTQU05MjZ4IG9ubHldICovCisjZGVmaW5lCQlBVDkxX1BNQ19PU0NCWVBBU1MJKDEgICAgPDwgMSkJCS8qIE9zY2lsbGF0b3IgQnlwYXNzIFtTQU05eCwgQ0FQOV0gKi8KICNkZWZpbmUJCUFUOTFfUE1DX09TQ09VTlQJKDB4ZmYgPDwgOCkJCS8qIE1haW4gT3NjaWxsYXRvciBTdGFydC11cCBUaW1lICovCiAKICNkZWZpbmUJQVQ5MV9DS0dSX01DRlIJCShBVDkxX1BNQyArIDB4MjQpCS8qIE1haW4gQ2xvY2sgRnJlcXVlbmN5IFJlZ2lzdGVyICovCkBAIC05Nyw2ICsxMDEsNyBAQAogI2RlZmluZQkJQVQ5MV9QTUNfTE9DS0EJCSgxIDw8ICAxKQkJLyogUExMQSBMb2NrICovCiAjZGVmaW5lCQlBVDkxX1BNQ19MT0NLQgkJKDEgPDwgIDIpCQkvKiBQTExCIExvY2sgKi8KICNkZWZpbmUJCUFUOTFfUE1DX01DS1JEWQkJKDEgPDwgIDMpCQkvKiBNYXN0ZXIgQ2xvY2sgKi8KKyNkZWZpbmUJCUFUOTFfUE1DX0xPQ0tVCQkoMSA8PCAgNikJCS8qIFVQTEwgTG9jayBbQVQ5MUNBUDkgb25seV0gKi8KICNkZWZpbmUJCUFUOTFfUE1DX1BDSzBSRFkJKDEgPDwgIDgpCQkvKiBQcm9ncmFtbWFibGUgQ2xvY2sgMCAqLwogI2RlZmluZQkJQVQ5MV9QTUNfUENLMVJEWQkoMSA8PCAgOSkJCS8qIFByb2dyYW1tYWJsZSBDbG9jayAxICovCiAjZGVmaW5lCQlBVDkxX1BNQ19QQ0syUkRZCSgxIDw8IDEwKQkJLyogUHJvZ3JhbW1hYmxlIENsb2NrIDIgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MWNhcDkuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MWNhcDkuaAppbmRleCBiYWM4M2FkLi42ZjE0ZDkwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFjYXA5LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxY2FwOS5oCkBAIC0xMTgsNyArMTE4LDcgQEAKICNkZWZpbmUgQVQ5MUNBUDlfUk9NX1NJWkUJKDMyICogU1pfMUspCS8qIEludGVybmFsIFJPTSBzaXplICgzMktiKSAqLwogCiAjZGVmaW5lIEFUOTFDQVA5X0xDRENfQkFTRQkweDAwNTAwMDAwCS8qIExDRCBDb250cm9sbGVyICovCi0jZGVmaW5lIEFUOTFDQVA5X1VEUEhTX0JBU0UJMHgwMDYwMDAwMAkvKiBVU0IgSGlnaCBTcGVlZCBEZXZpY2UgUG9ydCAqLworI2RlZmluZSBBVDkxQ0FQOV9VRFBIU19GSUZPCTB4MDA2MDAwMDAJLyogVVNCIEhpZ2ggU3BlZWQgRGV2aWNlIFBvcnQgKi8KICNkZWZpbmUgQVQ5MUNBUDlfVUhQX0JBU0UJMHgwMDcwMDAwMAkvKiBVU0IgSG9zdCBjb250cm9sbGVyICovCiAKICNkZWZpbmUgQ09ORklHX0RSQU1fQkFTRQlBVDkxX0NISVBTRUxFQ1RfNgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxY2FwOV9tYXRyaXguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MWNhcDlfbWF0cml4LmgKaW5kZXggYTY0MTY4Ni4uZGRiZDQ4NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxY2FwOV9tYXRyaXguaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFjYXA5X21hdHJpeC5oCkBAIC0xMDYsNiArMTA2LDExIEBACiAjZGVmaW5lIEFUOTFfTVBCUzBfU0ZSCQkoQVQ5MV9NQVRSSVggKyAweDExNCkJLyogTVBCbG9jayBTbGF2ZSAwIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXIgKi8KICNkZWZpbmUgQVQ5MV9NUEJTMV9TRlIJCShBVDkxX01BVFJJWCArIDB4MTFDKQkvKiBNUEJsb2NrIFNsYXZlIDEgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlciAqLwogCisjZGVmaW5lIEFUOTFfTUFUUklYX1VEUEhTCShBVDkxX01BVFJJWCArIDB4MTE4KQkvKiBVU0JIUyBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVyIFtBVDkxQ0FQOSBvbmx5XSAqLworI2RlZmluZQkJQVQ5MV9NQVRSSVhfU0VMRUNUX1VEUEhTCSgwIDw8IDMxKQkvKiBzZWxlY3QgSGlnaCBTcGVlZCBVRFAgKi8KKyNkZWZpbmUJCUFUOTFfTUFUUklYX1NFTEVDVF9VRFAJCSgxIDw8IDMxKQkvKiBzZWxlY3Qgc3RhbmRhcmQgVURQICovCisjZGVmaW5lCQlBVDkxX01BVFJJWF9VRFBIU19CWVBBU1NfTE9DSwkoMSA8PCAzMCkJLyogYnlwYXNzIGxvY2sgYml0ICovCisKICNkZWZpbmUgQVQ5MV9NQVRSSVhfRUJJQ1NBCShBVDkxX01BVFJJWCArIDB4MTIwKQkvKiBFQkkgQ2hpcCBTZWxlY3QgQXNzaWdubWVudCBSZWdpc3RlciAqLwogI2RlZmluZQkJQVQ5MV9NQVRSSVhfRUJJX0NTMUEJCSgxIDw8IDEpCS8qIENoaXAgU2VsZWN0IDEgQXNzaWdubWVudCAqLwogI2RlZmluZQkJCUFUOTFfTUFUUklYX0VCSV9DUzFBX1NNQwkJKDAgPDwgMSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MXNhbTkyNjAuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MXNhbTkyNjAuaAppbmRleCBjODkzNGZlLi44ODk4NzJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05MjYwLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxc2FtOTI2MC5oCkBAIC02LDYgKzYsOCBAQAogICogQ29tbW9uIGRlZmluaXRpb25zLgogICogQmFzZWQgb24gQVQ5MVNBTTkyNjAgZGF0YXNoZWV0IHJldmlzaW9uIEEgKFByZWxpbWluYXJ5KS4KICAqCisgKiBJbmNsdWRlcyBhbHNvIGRlZmluaXRpb25zIGZvciBBVDkxU0FNOVhFIGFuZCBBVDkxU0FNOUcgZmFtaWxpZXMKKyAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCkBAIC0xMjMsNSArMTI1LDE0IEBACiAjZGVmaW5lIEFUOTFTQU05WEVfRkxBU0hfQkFTRQkweDAwMjAwMDAwCS8qIEludGVybmFsIEZMQVNIIGJhc2UgYWRkcmVzcyAqLwogI2RlZmluZSBBVDkxU0FNOVhFX1NSQU1fQkFTRQkweDAwMzAwMDAwCS8qIEludGVybmFsIFNSQU0gYmFzZSBhZGRyZXNzICovCiAKKyNkZWZpbmUgQVQ5MVNBTTlHMjBfUk9NX0JBU0UJMHgwMDEwMDAwMAkvKiBJbnRlcm5hbCBST00gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIEFUOTFTQU05RzIwX1JPTV9TSVpFCVNaXzMySwkJLyogSW50ZXJuYWwgUk9NIHNpemUgKDMyS2IpICovCisKKyNkZWZpbmUgQVQ5MVNBTTlHMjBfU1JBTTBfQkFTRQkweDAwMjAwMDAwCS8qIEludGVybmFsIFNSQU0gMCBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQVQ5MVNBTTlHMjBfU1JBTTBfU0laRQlTWl8xNksJCS8qIEludGVybmFsIFNSQU0gMCBzaXplICgxNktiKSAqLworI2RlZmluZSBBVDkxU0FNOUcyMF9TUkFNMV9CQVNFCTB4MDAzMDAwMDAJLyogSW50ZXJuYWwgU1JBTSAxIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBBVDkxU0FNOUcyMF9TUkFNMV9TSVpFCVNaXzE2SwkJLyogSW50ZXJuYWwgU1JBTSAxIHNpemUgKDE2S2IpICovCisKKyNkZWZpbmUgQVQ5MVNBTTlHMjBfVUhQX0JBU0UJMHgwMDUwMDAwMAkvKiBVU0IgSG9zdCBjb250cm9sbGVyICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxc2FtOXJsLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05cmwuaAppbmRleCAxNmQyODMyLi42MjJlNTZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05cmwuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05cmwuaApAQCAtMTEwLDYgKzExMCw2IEBACiAjZGVmaW5lIEFUOTFTQU05UkxfUk9NX1NJWkUJKDIgKiBTWl8xNkspCS8qIEludGVybmFsIFJPTSBzaXplICgzMktiKSAqLwogCiAjZGVmaW5lIEFUOTFTQU05UkxfTENEQ19CQVNFCTB4MDA1MDAwMDAJLyogTENEIENvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQVQ5MVNBTTlSTF9VRFBIU19CQVNFCTB4MDA2MDAwMDAJLyogVVNCIERldmljZSBIUyBjb250cm9sbGVyICovCisjZGVmaW5lIEFUOTFTQU05UkxfVURQSFNfRklGTwkweDAwNjAwMDAwCS8qIFVTQiBEZXZpY2UgSFMgY29udHJvbGxlciAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYm9hcmQuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYm9hcmQuaAppbmRleCBkYzE4OWYwLi45NGRlNzg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2JvYXJkLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9ib2FyZC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvbGVkcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IvYXRtZWxfdXNiYV91ZGMuaD4KIAogIC8qIFVTQiBEZXZpY2UgKi8KIHN0cnVjdCBhdDkxX3VkY19kYXRhIHsKQEAgLTQ1LDYgKzQ2LDkgQEAKIH07CiBleHRlcm4gdm9pZCBfX2luaXQgYXQ5MV9hZGRfZGV2aWNlX3VkYyhzdHJ1Y3QgYXQ5MV91ZGNfZGF0YSAqZGF0YSk7CiAKKyAvKiBVU0IgSGlnaCBTcGVlZCBEZXZpY2UgKi8KK2V4dGVybiB2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKTsKKwogIC8qIENvbXBhY3QgRmxhc2ggKi8KIHN0cnVjdCBhdDkxX2NmX2RhdGEgewogCXU4CWlycV9waW47CQkvKiBJL08gSVJRICovCkBAIC03Myw3ICs3Nyw3IEBACiB9OwogZXh0ZXJuIHZvaWQgX19pbml0IGF0OTFfYWRkX2RldmljZV9ldGgoc3RydWN0IGF0OTFfZXRoX2RhdGEgKmRhdGEpOwogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MykgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxQ0FQOSkKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYzKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05RzIwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFDQVA5KQogI2RlZmluZSBldGhfcGxhdGZvcm1fZGF0YQlhdDkxX2V0aF9kYXRhCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9jcHUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvY3B1LmgKaW5kZXggNzE0NTE2Ni4uNTJkZjc5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9jcHUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2NwdS5oCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIEFSQ0hfSURfQVQ5MVNBTTkyNjAJMHgwMTk4MDNhMAogI2RlZmluZSBBUkNIX0lEX0FUOTFTQU05MjYxCTB4MDE5NzAzYTAKICNkZWZpbmUgQVJDSF9JRF9BVDkxU0FNOTI2MwkweDAxOTYwN2EwCisjZGVmaW5lIEFSQ0hfSURfQVQ5MVNBTTlHMjAJMHgwMTk5MDVhMAogI2RlZmluZSBBUkNIX0lEX0FUOTFTQU05Ukw2NAkweDAxOWIwM2EwCiAjZGVmaW5lIEFSQ0hfSURfQVQ5MUNBUDkJMHgwMzlBMDNBMAogCkBAIC02Myw2ICs2NCwxMiBAQAogI2RlZmluZSBjcHVfaXNfYXQ5MXNhbTkyNjAoKQkoMCkKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX0FSQ0hfQVQ5MVNBTTlHMjAKKyNkZWZpbmUgY3B1X2lzX2F0OTFzYW05ZzIwKCkJKGF0OTFfY3B1X2lkZW50aWZ5KCkgPT0gQVJDSF9JRF9BVDkxU0FNOUcyMCkKKyNlbHNlCisjZGVmaW5lIGNwdV9pc19hdDkxc2FtOWcyMCgpCSgwKQorI2VuZGlmCisKICNpZmRlZiBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MQogI2RlZmluZSBjcHVfaXNfYXQ5MXNhbTkyNjEoKQkoYXQ5MV9jcHVfaWRlbnRpZnkoKSA9PSBBUkNIX0lEX0FUOTFTQU05MjYxKQogI2Vsc2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaGFyZHdhcmUuaAppbmRleCAyYzgyNmQ4Mi4uMDE2YTNhMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaGFyZHdhcmUuaApAQCAtMTgsNyArMTgsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxUk05MjAwKQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFybTkyMDAuaD4KLSNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjApCisjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05RzIwKQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05MjYwLmg+CiAjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYxKQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05MjYxLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL3RpbWV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL3RpbWV4LmgKaW5kZXggZjE5MzNiMC4uMjk4ZDgzMTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvdGltZXguaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL3RpbWV4LmgKQEAgLTI3LDE0ICsyNywyOSBAQAogCiAjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJKEFUOTFfU0xPV19DTE9DSykKIAotI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSkKKyNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjApCisKKyNpZiBkZWZpbmVkKENPTkZJR19NQUNIX1VTQl9BOTI2MCkgfHwgZGVmaW5lZChDT05GSUdfTUFDSF9RSUxfQTkyNjApCisjZGVmaW5lIEFUOTFTQU05X01BU1RFUl9DTE9DSwk5MDAwMDAwMAorI2Vsc2UKKyNkZWZpbmUgQVQ5MVNBTTlfTUFTVEVSX0NMT0NLCTk5MzAwMDAwCisjZW5kaWYKKworI2RlZmluZSBDTE9DS19USUNLX1JBVEUJCShBVDkxU0FNOV9NQVNURVJfQ0xPQ0svMTYpCisKKyNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjEpCiAKICNkZWZpbmUgQVQ5MVNBTTlfTUFTVEVSX0NMT0NLCTk5MzAwMDAwCiAjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJKEFUOTFTQU05X01BU1RFUl9DTE9DSy8xNikKIAogI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MykKIAorI2lmIGRlZmluZWQoQ09ORklHX01BQ0hfVVNCX0E5MjYzKQorI2RlZmluZSBBVDkxU0FNOV9NQVNURVJfQ0xPQ0sJOTAwMDAwMDAKKyNlbHNlCiAjZGVmaW5lIEFUOTFTQU05X01BU1RFUl9DTE9DSwk5OTk1OTUwMAorI2VuZGlmCisKICNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoQVQ5MVNBTTlfTUFTVEVSX0NMT0NLLzE2KQogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05UkwpCkBAIC00Miw2ICs1NywxMSBAQAogI2RlZmluZSBBVDkxU0FNOV9NQVNURVJfQ0xPQ0sJMTAwMDAwMDAwCiAjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJKEFUOTFTQU05X01BU1RFUl9DTE9DSy8xNikKIAorI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOUcyMCkKKworI2RlZmluZSBBVDkxU0FNOV9NQVNURVJfQ0xPQ0sJMTMyMDk2MDAwCisjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJKEFUOTFTQU05X01BU1RFUl9DTE9DSy8xNikKKwogI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxQ0FQOSkKIAogI2RlZmluZSBBVDkxQ0FQOV9NQVNURVJfQ0xPQ0sJMTAwMDAwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L2hhcmR3YXJlLmgKaW5kZXggZGFhZDhlZS4uNzQ2MTBjMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvaGFyZHdhcmUuaApAQCAtMTQsNyArMTQsNiBAQAogCiAjaW5jbHVkZSA8YXNtL2FyY2gvbWVtb3J5Lmg+CiAKLSNpZmRlZiBDT05GSUdfQVJDSF9GT09UQlJJREdFCiAvKiAgIFZpcnR1YWwgICAgICBQaHlzaWNhbAlTaXplCiAgKiAweGZmODAwMDAwCTB4NDAwMDAwMDAJMU1CCVgtQnVzCiAgKiAweGZmMDAwMDAwCTB4N2MwMDAwMDAJMU1CCVBDSSBJL08gc3BhY2UKQEAgLTUwLDMxICs0OSw2IEBACiAjZGVmaW5lIFBDSU1FTV9TSVpFCQkweDAxMDAwMDAwCiAjZGVmaW5lIFBDSU1FTV9CQVNFCQkweGYwMDAwMDAwCiAKLSNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQ08yODUpCi0vKgotICogVGhpcyBpcyB0aGUgQ09FQlNBMjg1IGN1dC1kb3duIG1hcHBpbmcKLSAqLwotI2RlZmluZSBQQ0lNRU1fU0laRQkJMHg4MDAwMDAwMAotI2RlZmluZSBQQ0lNRU1fQkFTRQkJMHg4MDAwMDAwMAotCi0jZGVmaW5lIFdGTFVTSF9TSVpFCQkweDAxMDAwMDAwCi0jZGVmaW5lIFdGTFVTSF9CQVNFCQkweDdkMDAwMDAwCi0KLSNkZWZpbmUgQVJNQ1NSX1NJWkUJCTB4MDAxMDAwMDAKLSNkZWZpbmUgQVJNQ1NSX0JBU0UJCTB4N2NmMDAwMDAKLQotI2RlZmluZSBYQlVTX1NJWkUJCTB4MDAwMjAwMDAKLSNkZWZpbmUgWEJVU19CQVNFCQkweDdjZWUwMDAwCi0KLSNkZWZpbmUgUENJT19TSVpFCQkweDAwMDEwMDAwCi0jZGVmaW5lIFBDSU9fQkFTRQkJMHg3Y2VkMDAwMAotCi0jZWxzZQotCi0jZXJyb3IgIlVuZGVmaW5lZCBmb290YnJpZGdlIGFyY2hpdGVjdHVyZSIKLQotI2VuZGlmCi0KICNkZWZpbmUgWEJVU19MRURTCQkoKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoWEJVU19CQVNFICsgMHgxMjAwMCkpCiAjZGVmaW5lIFhCVVNfTEVEX0FNQkVSCQkoMSA8PCAwKQogI2RlZmluZSBYQlVTX0xFRF9HUkVFTgkJKDEgPDwgMSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvbWVtb3J5LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L21lbW9yeS5oCmluZGV4IGNiZDdhZTYuLjkwMTlhM2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvbWVtb3J5LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS9tZW1vcnkuaApAQCAtNDIsOCArNDIsNiBAQAogCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfRk9PVEJSSURHRSkKLQogLyogVGFzayBzaXplIGFuZCBwYWdlIG9mZnNldCBhdCAzR0IgKi8KICNkZWZpbmUgVEFTS19TSVpFCQlVTCgweGJmMDAwMDAwKQogI2RlZmluZSBQQUdFX09GRlNFVAkJVUwoMHhjMDAwMDAwMCkKQEAgLTUzLDIzICs1MSw2IEBACiAgKi8KICNkZWZpbmUgRkxVU0hfQkFTRQkJMHhmOTAwMDAwMAogCi0jZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0NPMjg1KQotCi0vKiBUYXNrIHNpemUgYW5kIHBhZ2Ugb2Zmc2V0IGF0IDEuNUdCICovCi0jZGVmaW5lIFRBU0tfU0laRQkJVUwoMHg1ZjAwMDAwMCkKLSNkZWZpbmUgUEFHRV9PRkZTRVQJCVVMKDB4NjAwMDAwMDApCi0KLS8qCi0gKiBDYWNoZSBmbHVzaGluZyBhcmVhLgotICovCi0jZGVmaW5lIEZMVVNIX0JBU0UJCTB4N2UwMDAwMDAKLQotI2Vsc2UKLQotI2Vycm9yICJVbmRlZmluZWQgZm9vdGJyaWRnZSBhcmNoaXRlY3R1cmUiCi0KLSNlbmRpZgotCiAvKgogICogUGh5c2ljYWwgRFJBTSBvZmZzZXQuCiAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvdm1hbGxvYy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS92bWFsbG9jLmgKaW5kZXggMDI1OTgyMC4uZTQ4N2Q3ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS92bWFsbG9jLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS92bWFsbG9jLmgKQEAgLTcsOCArNyw0IEBACiAgKi8KIAogCi0jaWZkZWYgQ09ORklHX0FSQ0hfRk9PVEJSSURHRQogI2RlZmluZSBWTUFMTE9DX0VORCAgICAgICAoUEFHRV9PRkZTRVQgKyAweDMwMDAwMDAwKQotI2Vsc2UKLSNkZWZpbmUgVk1BTExPQ19FTkQgICAgICAgKFBBR0VfT0ZGU0VUICsgMHgyMDAwMDAwMCkKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaGFyZHdhcmUuaAppbmRleCBhZGZmYjZhLi42NTQyY2E1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaGFyZHdhcmUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaGFyZHdhcmUuaApAQCAtNzMsMTQgKzczLDYgQEAKICAqLwogZXh0ZXJuIHZvaWQgaW14X2dwaW9fbW9kZSggaW50IGdwaW9fbW9kZSApOwogCi0vKiBnZXQgZnJlcXVlbmNpZXMgaW4gSHogKi8KLWV4dGVybiB1bnNpZ25lZCBpbnQgaW14X2dldF9zeXN0ZW1fY2xrKHZvaWQpOwotZXh0ZXJuIHVuc2lnbmVkIGludCBpbXhfZ2V0X21jdV9jbGsodm9pZCk7Ci1leHRlcm4gdW5zaWduZWQgaW50IGlteF9nZXRfcGVyY2xrMSh2b2lkKTsgLyogVUFSVFsxMl0sIFRpbWVyWzEyXSwgUFdNICovCi1leHRlcm4gdW5zaWduZWQgaW50IGlteF9nZXRfcGVyY2xrMih2b2lkKTsgLyogTENELCBTRCwgU1BJWzEyXSAgICAgICAgICovCi1leHRlcm4gdW5zaWduZWQgaW50IGlteF9nZXRfcGVyY2xrMyh2b2lkKTsgLyogU1NJICAgICAgICAgICAgICAgICAgICAgICovCi1leHRlcm4gdW5zaWduZWQgaW50IGlteF9nZXRfaGNsayh2b2lkKTsgICAgLyogU0RSQU0sIENTSSwgTWVtb3J5IFN0aWNrLCovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSTJDLCBETUEgICAgICAgICAgICAgICAgICovCiAjZW5kaWYKIAogI2RlZmluZSBNQVhJUlFOVU0gICAgICAgICAgICAgICAgICAgICAgIDYyCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LWRtYS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2lteC1kbWEuaAppbmRleCA1YjEwNjZkLi40NGQ4OWMzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LWRtYS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9pbXgtZG1hLmgKQEAgLTg4LDcgKzg4LDcgQEAKIAogdm9pZCBpbXhfZG1hX2ZyZWUoaW14X2RtYWNoX3QgZG1hX2NoKTsKIAotaW50IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKGlteF9kbWFjaF90ICpwZG1hX2NoLCBjb25zdCBjaGFyICpuYW1lLCBpbXhfZG1hX3ByaW8gcHJpbyk7CitpbXhfZG1hY2hfdCBpbXhfZG1hX3JlcXVlc3RfYnlfcHJpbyhjb25zdCBjaGFyICpuYW1lLCBpbXhfZG1hX3ByaW8gcHJpbyk7CiAKIAogI2VuZGlmCS8qIF9BU01fQVJDSF9JTVhfRE1BX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9pbXgtdWFydC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2lteC11YXJ0LmgKaW5kZXggM2E2ODVlMS4uZDU0ZWIxZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2lteC11YXJ0LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2lteC11YXJ0LmgKQEAgLTQsNiArNCw4IEBACiAjZGVmaW5lIElNWFVBUlRfSEFWRV9SVFNDVFMgKDE8PDApCiAKIHN0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgeworCWludCAoKmluaXQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOworCXZvaWQgKCpleGl0KShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKIAl1bnNpZ25lZCBpbnQgZmxhZ3M7CiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AxM3h4L2RtYS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW9wMTN4eC9kbWEuaAppbmRleCAyZTE1ZGE1My4uZDc5ODQ2ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW9wMTN4eC9kbWEuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AxM3h4L2RtYS5oCkBAIC0xLDMgKzEsMyBAQAogI2lmbmRlZiBfSU9QMTNYWF9ETUFfSAotI2RlZmluZSBfSU9QMTNYWF9ETUFfSF8KKyNkZWZpbmUgX0lPUDEzWFhfRE1BX0gKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW9wMzJ4L2dwaW8uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDMyeC9ncGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA4ZjRlYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDMyeC9ncGlvLmgKQEAgLTAsMCArMSw2IEBACisjaWZuZGVmIF9fQVNNX0FSQ0hfSU9QMzJYX0dQSU9fSAorI2RlZmluZSBfX0FTTV9BUkNIX0lPUDMyWF9HUElPX0gKKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9pb3AzeHgtZ3Bpby5oPgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDMzeC9ncGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AzM3gvZ3Bpby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkZDU1YmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AzM3gvZ3Bpby5oCkBAIC0wLDAgKzEsNiBAQAorI2lmbmRlZiBfX0FTTV9BUkNIX0lPUDMzWF9HUElPX0gKKyNkZWZpbmUgX19BU01fQVJDSF9JT1AzM1hfR1BJT19ICisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUvaW9wM3h4LWdwaW8uaD4KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvZnNnLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvZnNnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAxMDBjYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9mc2cuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtaXhwNHh4L2ZzZy5oCisgKgorICogRnJlZWNvbSBGU0ctMyBwbGF0Zm9ybSBzcGVjaWZpYyBkZWZpbml0aW9ucworICoKKyAqIEF1dGhvcjogUm9kIFdoaXRieSA8cm9kQHdoaXRieS5pZC5hdT4KKyAqIEF1dGhvcjogVG9tYXN6IENobWllbGV3c2tpIDxtYW5nb29Ad3BrZy5vcmc+CisgKiBNYWludGFpbmVyczogaHR0cDovL3d3dy5uc2x1Mi1saW51eC5vcmcKKyAqCisgKiBCYXNlZCBvbiBjb3lvdGUuaCBieQorICogQ29weXJpZ2h0IDIwMDQgKGMpIE1vbnRhVmlzdGEsIFNvZnR3YXJlLCBJbmMuCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyICB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0hBUkRXQVJFX0hfXworI2Vycm9yICJEbyBub3QgaW5jbHVkZSB0aGlzIGRpcmVjdGx5LCBpbnN0ZWFkICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4iCisjZW5kaWYKKworI2RlZmluZSBGU0dfU0RBX1BJTgkJMTIKKyNkZWZpbmUgRlNHX1NDTF9QSU4JCTEzCisKKy8qCisgKiBGU0cgUENJIElSUXMKKyAqLworI2RlZmluZSBGU0dfUENJX01BWF9ERVYJCTMKKyNkZWZpbmUgRlNHX1BDSV9JUlFfTElORVMJMworCisKKy8qIFBDSSBjb250cm9sbGVyIEdQSU8gdG8gSVJRIHBpbiBtYXBwaW5ncyAqLworI2RlZmluZSBGU0dfUENJX0lOVEFfUElOCTYKKyNkZWZpbmUgRlNHX1BDSV9JTlRCX1BJTgk3CisjZGVmaW5lIEZTR19QQ0lfSU5UQ19QSU4JNQorCisvKiBCdXR0b25zICovCisKKyNkZWZpbmUgRlNHX1NCX0dQSU8JCTQJLyogc3luYyBidXR0b24gKi8KKyNkZWZpbmUgRlNHX1JCX0dQSU8JCTkJLyogcmVzZXQgYnV0dG9uICovCisjZGVmaW5lIEZTR19VQl9HUElPCQkxMAkvKiB1c2IgYnV0dG9uICovCisKKy8qIExFRHMgKi8KKworI2RlZmluZSBGU0dfTEVEX1dMQU5fQklUCTAKKyNkZWZpbmUgRlNHX0xFRF9XQU5fQklUCQkxCisjZGVmaW5lIEZTR19MRURfU0FUQV9CSVQJMgorI2RlZmluZSBGU0dfTEVEX1VTQl9CSVQJCTQKKyNkZWZpbmUgRlNHX0xFRF9SSU5HX0JJVAk1CisjZGVmaW5lIEZTR19MRURfU1lOQ19CSVQJNwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaXhwNHh4L2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaGFyZHdhcmUuaAppbmRleCA3M2U4ZGMzLi5mYTcyM2E2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaGFyZHdhcmUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaGFyZHdhcmUuaApAQCAtNDUsNSArNDUsNiBAQAogI2luY2x1ZGUgIm5zbHUyLmgiCiAjaW5jbHVkZSAibmFzMTAwZC5oIgogI2luY2x1ZGUgImRzbWc2MDAuaCIKKyNpbmNsdWRlICJmc2cuaCIKIAogI2VuZGlmICAvKiBfQVNNX0FSQ0hfSEFSRFdBUkVfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaXhwNHh4L2lycXMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9pcnFzLmgKaW5kZXggMTE4MDE2MC4uNjc0YWY0YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaXhwNHh4L2lycXMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaXJxcy5oCkBAIC0xMjgsNCArMTI4LDExIEBACiAjZGVmaW5lICAgICAgICBJUlFfRFNNRzYwMF9QQ0lfSU5URSAgICBJUlFfSVhQNFhYX0dQSU83CiAjZGVmaW5lICAgICAgICBJUlFfRFNNRzYwMF9QQ0lfSU5URiAgICBJUlFfSVhQNFhYX0dQSU82CiAKKy8qCisgKiBGcmVlY29tIEZTRy0zIEJvYXJkIElSUXMKKyAqLworI2RlZmluZSAgICAgICAgSVJRX0ZTR19QQ0lfSU5UQSAgICAgICAgSVJRX0lYUDRYWF9HUElPNgorI2RlZmluZSAgICAgICAgSVJRX0ZTR19QQ0lfSU5UQiAgICAgICAgSVJRX0lYUDRYWF9HUElPNworI2RlZmluZSAgICAgICAgSVJRX0ZTR19QQ0lfSU5UQyAgICAgICAgSVJRX0lYUDRYWF9HUElPNQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2RlYnVnLW1hY3JvLlMgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9kZWJ1Zy1tYWNyby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1NWZiOGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9kZWJ1Zy1tYWNyby5TCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9kZWJ1Zy1tYWNyby5TCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxhc20vYXJjaC9raXJrd29vZC5oPgorCisJLm1hY3JvCWFkZHJ1YXJ0LHJ4CisJbXJjCXAxNSwgMCwgXHJ4LCBjMSwgYzAKKwl0c3QJXHJ4LCAjMQkJCQkJQCBNTVUgZW5hYmxlZD8KKwlsZHJlcQlccngsID1LSVJLV09PRF9SRUdTX1BIWVNfQkFTRQorCWxkcm5lCVxyeCwgPUtJUktXT09EX1JFR1NfVklSVF9CQVNFCisJb3JyCVxyeCwgXHJ4LCAjMHgwMDAxMjAwMAorCS5lbmRtCisKKyNkZWZpbmUgVUFSVF9TSElGVAkyCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlL2RlYnVnLTgyNTAuUz4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2RtYS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZG1hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBhOGMxNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2RtYS5oCkBAIC0wLDAgKzEgQEAKKy8qIGVtcHR5ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9lbnRyeS1tYWNyby5TIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZW50cnktbWFjcm8uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzZhNDNkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZW50cnktbWFjcm8uUwpAQCAtMCwwICsxLDQwIEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZW50cnktbWFjcm8uUworICoKKyAqIExvdy1sZXZlbCBJUlEgaGVscGVyIG1hY3JvcyBmb3IgTWFydmVsbCBLaXJrd29vZCBwbGF0Zm9ybXMKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8YXNtL2FyY2gva2lya3dvb2QuaD4KKworCS5tYWNybyAgZGlzYWJsZV9maXEKKwkuZW5kbQorCisJLm1hY3JvICBhcmNoX3JldF90b191c2VyLCB0bXAxLCB0bXAyCisJLmVuZG0KKworCS5tYWNybyAgZ2V0X2lycW5yX3ByZWFtYmxlLCBiYXNlLCB0bXAKKwlsZHIJXGJhc2UsID1JUlFfVklSVF9CQVNFCisJLmVuZG0KKworCS5tYWNybyAgZ2V0X2lycW5yX2FuZF9iYXNlLCBpcnFuciwgaXJxc3RhdCwgYmFzZSwgdG1wCisJQCBjaGVjayBsb3cgaW50ZXJydXB0cworCWxkcglcaXJxc3RhdCwgW1xiYXNlLCAjSVJRX0NBVVNFX0xPV19PRkZdCisJbGRyCVx0bXAsIFtcYmFzZSwgI0lSUV9NQVNLX0xPV19PRkZdCisJbW92CVxpcnFuciwgIzMxCisJYW5kcwlcaXJxc3RhdCwgXGlycXN0YXQsIFx0bXAKKwlibmUJMTAwMWYKKworCUAgaWYgbm8gbG93IGludGVycnVwdHMgc2V0LCBjaGVjayBoaWdoIGludGVycnVwdHMKKwlsZHIJXGlycXN0YXQsIFtcYmFzZSwgI0lSUV9DQVVTRV9ISUdIX09GRl0KKwlsZHIJXHRtcCwgW1xiYXNlLCAjSVJRX01BU0tfSElHSF9PRkZdCisJbW92CVxpcnFuciwgIzYzCisJYW5kcwlcaXJxc3RhdCwgXGlycXN0YXQsIFx0bXAKKworCUAgZmluZCBmaXJzdCBhY3RpdmUgaW50ZXJydXB0IHNvdXJjZQorMTAwMToJY2x6bmUJXGlycXN0YXQsIFxpcnFzdGF0CisJc3VibmUJXGlycW5yLCBcaXJxbnIsIFxpcnFzdGF0CisJLmVuZG0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9oYXJkd2FyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OTU3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9oYXJkd2FyZS5oCkBAIC0wLDAgKzEsMjEgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9oYXJkd2FyZS5oCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSAorI2RlZmluZSBfX0FTTV9BUkNIX0hBUkRXQVJFX0gKKworI2luY2x1ZGUgImtpcmt3b29kLmgiCisKKyNkZWZpbmUgcGNpYmlvc19hc3NpZ25fYWxsX2J1c3NlcygpCTEKKworI2RlZmluZSBQQ0lCSU9TX01JTl9JTwkJCTB4MDAwMDEwMDAKKyNkZWZpbmUgUENJQklPU19NSU5fTUVNCQkJMHgwMTAwMDAwMAorI2RlZmluZSBQQ0lNRU1fQkFTRQkJCUtJUktXT09EX1BDSUVfTUVNX1BIWVNfQkFTRSAvKiBtZW0gYmFzZSBmb3IgVkdBICovCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWY2ZTk1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaW8uaApAQCAtMCwwICsxLDI2IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaW8uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9JT19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSU9fSAorCisjaW5jbHVkZSAia2lya3dvb2QuaCIKKworI2RlZmluZSBJT19TUEFDRV9MSU1JVAkJMHhmZmZmZmZmZgorCitzdGF0aWMgaW5saW5lIHZvaWQgX19pb21lbSAqX19pbyh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJcmV0dXJuICh2b2lkIF9faW9tZW0gKikoKGFkZHIgLSBLSVJLV09PRF9QQ0lFX0lPX1BIWVNfQkFTRSkKKwkJCQkJKyBLSVJLV09PRF9QQ0lFX0lPX1ZJUlRfQkFTRSk7Cit9CisKKyNkZWZpbmUgX19pbyhhKQkJCV9faW8oYSkKKyNkZWZpbmUgX19tZW1fcGNpKGEpCQkoYSkKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2lycXMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2lycXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTdiNWRhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaXJxcy5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pcnFzLmgKKyAqCisgKiBJUlEgZGVmaW5pdGlvbnMgZm9yIE1hcnZlbGwgS2lya3dvb2QgU29DcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9JUlFTX0gKKyNkZWZpbmUgX19BU01fQVJDSF9JUlFTX0gKKworI2luY2x1ZGUgImtpcmt3b29kLmgiCS8qIG5lZWQgR1BJT19NQVggKi8KKworLyoKKyAqIExvdyBJbnRlcnJ1cHQgQ29udHJvbGxlcgorICovCisjZGVmaW5lIElSUV9LSVJLV09PRF9ISUdIX1NVTQkwCisjZGVmaW5lIElSUV9LSVJLV09PRF9CUklER0UJMQorI2RlZmluZSBJUlFfS0lSS1dPT0RfSE9TVDJDUFUJMgorI2RlZmluZSBJUlFfS0lSS1dPT0RfQ1BVMkhPU1QJMworI2RlZmluZSBJUlFfS0lSS1dPT0RfWE9SXzAwCTUKKyNkZWZpbmUgSVJRX0tJUktXT09EX1hPUl8wMQk2CisjZGVmaW5lIElSUV9LSVJLV09PRF9YT1JfMTAJNworI2RlZmluZSBJUlFfS0lSS1dPT0RfWE9SXzExCTgKKyNkZWZpbmUgSVJRX0tJUktXT09EX1BDSUUJOQorI2RlZmluZSBJUlFfS0lSS1dPT0RfR0UwMF9TVU0JMTEKKyNkZWZpbmUgSVJRX0tJUktXT09EX0dFMDFfU1VNCTE1CisjZGVmaW5lIElSUV9LSVJLV09PRF9VU0IJMTkKKyNkZWZpbmUgSVJRX0tJUktXT09EX1NBVEEJMjEKKyNkZWZpbmUgSVJRX0tJUktXT09EX0NSWVBUTwkyMgorI2RlZmluZSBJUlFfS0lSS1dPT0RfU1BJCTIzCisjZGVmaW5lIElSUV9LSVJLV09PRF9JMlMJMjQKKyNkZWZpbmUgSVJRX0tJUktXT09EX1RTXzAJMjYKKyNkZWZpbmUgSVJRX0tJUktXT09EX1NESU8JMjgKKyNkZWZpbmUgSVJRX0tJUktXT09EX1RXU0kJMjkKKyNkZWZpbmUgSVJRX0tJUktXT09EX0FWQgkzMAorI2RlZmluZSBJUlFfS0lSS1dPT0RfVERNSQkzMQorCisvKgorICogSGlnaCBJbnRlcnJ1cHQgQ29udHJvbGxlcgorICovCisjZGVmaW5lIElSUV9LSVJLV09PRF9VQVJUXzAJMzMKKyNkZWZpbmUgSVJRX0tJUktXT09EX1VBUlRfMQkzNAorI2RlZmluZSBJUlFfS0lSS1dPT0RfR1BJT19MT1dfMF83CTM1CisjZGVmaW5lIElSUV9LSVJLV09PRF9HUElPX0xPV184XzE1CTM2CisjZGVmaW5lIElSUV9LSVJLV09PRF9HUElPX0xPV18xNl8yMwkzNworI2RlZmluZSBJUlFfS0lSS1dPT0RfR1BJT19MT1dfMjRfMzEJMzgKKyNkZWZpbmUgSVJRX0tJUktXT09EX0dQSU9fSElHSF8wXzcJMzkKKyNkZWZpbmUgSVJRX0tJUktXT09EX0dQSU9fSElHSF84XzE1CTQwCisjZGVmaW5lIElSUV9LSVJLV09PRF9HUElPX0hJR0hfMTZfMjMJNDEKKworLyoKKyAqIEtJUktXT09EIEdlbmVyYWwgUHVycG9zZSBQaW5zCisgKi8KKyNkZWZpbmUgSVJRX0tJUktXT09EX0dQSU9fU1RBUlQJNjQKKyNkZWZpbmUgTlJfR1BJT19JUlFTCQlHUElPX01BWAorCisjZGVmaW5lIE5SX0lSUVMJCQkoSVJRX0tJUktXT09EX0dQSU9fU1RBUlQgKyBOUl9HUElPX0lSUVMpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9raXJrd29vZC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2Qva2lya3dvb2QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjMxYjMxNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2tpcmt3b29kLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9raXJrd29vZC5oCisgKgorICogR2VuZXJpYyBkZWZpbml0aW9ucyBmb3IgTWFydmVsbCBLaXJrd29vZCBTb0MgZmxhdm9yczoKKyAqICA4OEY2MTgwLCA4OEY2MTkyIGFuZCA4OEY2MjgxLgorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9LSVJLV09PRF9ICisjZGVmaW5lIF9fQVNNX0FSQ0hfS0lSS1dPT0RfSAorCisvKgorICogTWFydmVsbCBLaXJrd29vZCBhZGRyZXNzIG1hcHMuCisgKgorICogcGh5cworICogZTAwMDAwMDAJUENJZSBNZW1vcnkgc3BhY2UKKyAqIGYxMDAwMDAwCW9uLWNoaXAgcGVyaXBoZXJhbCByZWdpc3RlcnMKKyAqIGYyMDAwMDAwCVBDSWUgSS9PIHNwYWNlCisgKiBmMzAwMDAwMAlOQU5EIGNvbnRyb2xsZXIgYWRkcmVzcyB3aW5kb3cKKyAqCisgKiB2aXJ0CQlwaHlzCQlzaXplCisgKiBmZWUwMDAwMAlmMTAwMDAwMAkxTQlvbi1jaGlwIHBlcmlwaGVyYWwgcmVnaXN0ZXJzCisgKiBmZWYwMDAwMAlmMjAwMDAwMAkxTQlQQ0llIEkvTyBzcGFjZQorICovCisKKyNkZWZpbmUgS0lSS1dPT0RfTkFORF9NRU1fUEhZU19CQVNFCTB4ZjMwMDAwMDAKKyNkZWZpbmUgS0lSS1dPT0RfTkFORF9NRU1fU0laRQkJU1pfNjRLIC8qIDFLIGlzIHN1ZmZpY2llbnQsIGJ1dCA2NEsKKwkJCQkJCSogaXMgdGhlIG1pbmltYWwgd2luZG93IHNpemUKKwkJCQkJCSovCisKKyNkZWZpbmUgS0lSS1dPT0RfUENJRV9JT19QSFlTX0JBU0UJMHhmMjAwMDAwMAorI2RlZmluZSBLSVJLV09PRF9QQ0lFX0lPX1ZJUlRfQkFTRQkweGZlZjAwMDAwCisjZGVmaW5lIEtJUktXT09EX1BDSUVfSU9fQlVTX0JBU0UJMHgwMDAwMDAwMAorI2RlZmluZSBLSVJLV09PRF9QQ0lFX0lPX1NJWkUJCVNaXzFNCisKKyNkZWZpbmUgS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UJCTB4ZjEwMDAwMDAKKyNkZWZpbmUgS0lSS1dPT0RfUkVHU19WSVJUX0JBU0UJCTB4ZmVlMDAwMDAKKyNkZWZpbmUgS0lSS1dPT0RfUkVHU19TSVpFCQlTWl8xTQorCisjZGVmaW5lIEtJUktXT09EX1BDSUVfTUVNX1BIWVNfQkFTRQkweGUwMDAwMDAwCisjZGVmaW5lIEtJUktXT09EX1BDSUVfTUVNX1NJWkUJCVNaXzEyOE0KKworLyoKKyAqIE1CVVMgYnJpZGdlIHJlZ2lzdGVycy4KKyAqLworI2RlZmluZSBCUklER0VfVklSVF9CQVNFCShLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSB8IDB4MjAwMDApCisjZGVmaW5lICBDUFVfQ09OVFJPTAkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMDQpCisjZGVmaW5lICAgQ1BVX1JFU0VUCQkweDAwMDAwMDAyCisjZGVmaW5lICBSU1RPVVRuX01BU0sJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTA4KQorI2RlZmluZSAgIFNPRlRfUkVTRVRfT1VUX0VOCTB4MDAwMDAwMDQKKyNkZWZpbmUgIFNZU1RFTV9TT0ZUX1JFU0VUCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTBjKQorI2RlZmluZSAgIFNPRlRfUkVTRVQJCTB4MDAwMDAwMDEKKyNkZWZpbmUgIEJSSURHRV9DQVVTRQkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMTApCisjZGVmaW5lICBCUklER0VfTUFTSwkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMTQpCisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjAJMHgwMDAyCisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjEJMHgwMDA0CisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjFfQ0xSCSh+MHgwMDA0KQorI2RlZmluZSAgSVJRX1ZJUlRfQkFTRQkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAyMDApCisjZGVmaW5lICAgSVJRX0NBVVNFX0xPV19PRkYJMHgwMDAwCisjZGVmaW5lICAgSVJRX01BU0tfTE9XX09GRgkweDAwMDQKKyNkZWZpbmUgICBJUlFfQ0FVU0VfSElHSF9PRkYJMHgwMDEwCisjZGVmaW5lICAgSVJRX01BU0tfSElHSF9PRkYJMHgwMDE0CisjZGVmaW5lICBUSU1FUl9WSVJUX0JBU0UJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAzMDApCisjZGVmaW5lICBMMl9DT05GSUdfUkVHCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDEyOCkKKyNkZWZpbmUgICBMMl9XUklURVRIUk9VR0gJMHgwMDAwMDAxMAorCisvKgorICogUmVnaXN0ZXIgTWFwCisgKi8KKyNkZWZpbmUgRERSX1ZJUlRfQkFTRQkJKEtJUktXT09EX1JFR1NfVklSVF9CQVNFIHwgMHgwMDAwMCkKKyNkZWZpbmUgIEREUl9XSU5ET1dfQ1BVX0JBU0UJKEREUl9WSVJUX0JBU0UgfCAweDE1MDApCisKKyNkZWZpbmUgREVWX0JVU19QSFlTX0JBU0UJKEtJUktXT09EX1JFR1NfUEhZU19CQVNFIHwgMHgxMDAwMCkKKyNkZWZpbmUgREVWX0JVU19WSVJUX0JBU0UJKEtJUktXT09EX1JFR1NfVklSVF9CQVNFIHwgMHgxMDAwMCkKKyNkZWZpbmUgIFNBTVBMRV9BVF9SRVNFVAkoREVWX0JVU19WSVJUX0JBU0UgfCAweDAwMzApCisjZGVmaW5lICBERVZJQ0VfSUQJCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MDAzNCkKKyNkZWZpbmUgIFJUQ19QSFlTX0JBU0UJCShERVZfQlVTX1BIWVNfQkFTRSB8IDB4MDMwMCkKKyNkZWZpbmUgIFNQSV9QSFlTX0JBU0UJCShERVZfQlVTX1BIWVNfQkFTRSB8IDB4MDYwMCkKKyNkZWZpbmUgIFVBUlQwX1BIWVNfQkFTRQkoREVWX0JVU19QSFlTX0JBU0UgfCAweDIwMDApCisjZGVmaW5lICBVQVJUMF9WSVJUX0JBU0UJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgyMDAwKQorI2RlZmluZSAgVUFSVDFfUEhZU19CQVNFCShERVZfQlVTX1BIWVNfQkFTRSB8IDB4MjEwMCkKKyNkZWZpbmUgIFVBUlQxX1ZJUlRfQkFTRQkoREVWX0JVU19WSVJUX0JBU0UgfCAweDIxMDApCisKKyNkZWZpbmUgUENJRV9WSVJUX0JBU0UJCShLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSB8IDB4NDAwMDApCisKKyNkZWZpbmUgVVNCX1BIWVNfQkFTRQkJKEtJUktXT09EX1JFR1NfUEhZU19CQVNFIHwgMHg1MDAwMCkKKworI2RlZmluZSBHRTAwX1BIWVNfQkFTRQkJKEtJUktXT09EX1JFR1NfUEhZU19CQVNFIHwgMHg3MDAwMCkKKyNkZWZpbmUgR0UwMV9QSFlTX0JBU0UJCShLSVJLV09PRF9SRUdTX1BIWVNfQkFTRSB8IDB4NzQwMDApCisKKyNkZWZpbmUgU0FUQV9QSFlTX0JBU0UJCShLSVJLV09PRF9SRUdTX1BIWVNfQkFTRSB8IDB4ODAwMDApCisKKworI2RlZmluZSBHUElPX01BWAkJNTAKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL21lbW9yeS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvbWVtb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUxMDhmNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL21lbW9yeS5oCkBAIC0wLDAgKzEsMTQgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9tZW1vcnkuaAorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NRU1PUllfSAorI2RlZmluZSBfX0FTTV9BUkNIX01FTU9SWV9ICisKKyNkZWZpbmUgUEhZU19PRkZTRVQJCVVMKDB4MDAwMDAwMDApCisKKyNkZWZpbmUgX192aXJ0X3RvX2J1cyh4KQlfX3ZpcnRfdG9fcGh5cyh4KQorI2RlZmluZSBfX2J1c190b192aXJ0KHgpCV9fcGh5c190b192aXJ0KHgpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9zeXN0ZW0uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3N5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZGU3ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9zeXN0ZW0uaApAQCAtMCwwICsxLDM3IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2Qvc3lzdGVtLmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfU1lTVEVNX0gKKyNkZWZpbmUgX19BU01fQVJDSF9TWVNURU1fSAorCisjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9raXJrd29vZC5oPgorCitzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9pZGxlKHZvaWQpCit7CisJY3B1X2RvX2lkbGUoKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFyY2hfcmVzZXQoY2hhciBtb2RlKQoreworCS8qCisJICogRW5hYmxlIHNvZnQgcmVzZXQgdG8gYXNzZXJ0IFJTVE9VVG4uCisJICovCisJd3JpdGVsKFNPRlRfUkVTRVRfT1VUX0VOLCBSU1RPVVRuX01BU0spOworCisJLyoKKwkgKiBBc3NlcnQgc29mdCByZXNldC4KKwkgKi8KKwl3cml0ZWwoU09GVF9SRVNFVCwgU1lTVEVNX1NPRlRfUkVTRVQpOworCisJd2hpbGUgKDEpCisJCTsKK30KKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3RpbWV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC90aW1leC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMTIyZTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC90aW1leC5oCkBAIC0wLDAgKzEsMTEgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC90aW1leC5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2RlZmluZSBDTE9DS19USUNLX1JBVEUJCSgxMDAgKiBIWikKKworI2RlZmluZSBLSVJLV09PRF9UQ0xLCQkxNjY2NjY2NjcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3VuY29tcHJlc3MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3VuY29tcHJlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTA2MmI2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvdW5jb21wcmVzcy5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC91bmNvbXByZXNzLmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgvc2VyaWFsX3JlZy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisKKyNkZWZpbmUgU0VSSUFMX0JBU0UJKCh1bnNpZ25lZCBjaGFyICopVUFSVDBfUEhZU19CQVNFKQorCitzdGF0aWMgdm9pZCBwdXRjKGNvbnN0IGNoYXIgYykKK3sKKwl1bnNpZ25lZCBjaGFyICpiYXNlID0gU0VSSUFMX0JBU0U7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKGJhc2VbVUFSVF9MU1IgPDwgMl0gJiBVQVJUX0xTUl9USFJFKQorCQkJYnJlYWs7CisJCWJhcnJpZXIoKTsKKwl9CisKKwliYXNlW1VBUlRfVFggPDwgMl0gPSBjOworfQorCitzdGF0aWMgdm9pZCBmbHVzaCh2b2lkKQoreworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwl1bnNpZ25lZCBjaGFyIG1hc2s7CisJaW50IGk7CisKKwltYXNrID0gVUFSVF9MU1JfVEVNVCB8IFVBUlRfTFNSX1RIUkU7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKChiYXNlW1VBUlRfTFNSIDw8IDJdICYgbWFzaykgPT0gbWFzaykKKwkJCWJyZWFrOworCQliYXJyaWVyKCk7CisJfQorfQorCisvKgorICogbm90aGluZyB0byBkbworICovCisjZGVmaW5lIGFyY2hfZGVjb21wX3NldHVwKCkKKyNkZWZpbmUgYXJjaF9kZWNvbXBfd2RvZygpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC92bWFsbG9jLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC92bWFsbG9jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE4NTJjNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3ZtYWxsb2MuaApAQCAtMCwwICsxLDUgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC92bWFsbG9jLmgKKyAqLworCisjZGVmaW5lIFZNQUxMT0NfRU5ECTB4ZmU4MDAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZGVidWctbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZGVidWctbWFjcm8uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODU1MDJlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kZWJ1Zy1tYWNyby5TCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2RlYnVnLW1hY3JvLlMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGFzbS9hcmNoL2xva2kuaD4KKworCS5tYWNybwlhZGRydWFydCxyeAorCW1yYwlwMTUsIDAsIFxyeCwgYzEsIGMwCisJdHN0CVxyeCwgIzEJCQkJCUAgTU1VIGVuYWJsZWQ/CisJbGRyZXEJXHJ4LCA9TE9LSV9SRUdTX1BIWVNfQkFTRQorCWxkcm5lCVxyeCwgPUxPS0lfUkVHU19WSVJUX0JBU0UKKwlvcnIJXHJ4LCBccngsICMweDAwMDEyMDAwCisJLmVuZG0KKworI2RlZmluZSBVQVJUX1NISUZUCTIKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUvZGVidWctODI1MC5TPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kbWEuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZG1hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBhOGMxNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZG1hLmgKQEAgLTAsMCArMSBAQAorLyogZW1wdHkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZW50cnktbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZW50cnktbWFjcm8uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTMyNTdjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9lbnRyeS1tYWNyby5TCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2VudHJ5LW1hY3JvLlMKKyAqCisgKiBMb3ctbGV2ZWwgSVJRIGhlbHBlciBtYWNyb3MgZm9yIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIHBsYXRmb3JtcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxhc20vYXJjaC9sb2tpLmg+CisKKwkubWFjcm8gIGRpc2FibGVfZmlxCisJLmVuZG0KKworCS5tYWNybyAgYXJjaF9yZXRfdG9fdXNlciwgdG1wMSwgdG1wMgorCS5lbmRtCisKKwkubWFjcm8gIGdldF9pcnFucl9wcmVhbWJsZSwgYmFzZSwgdG1wCisJbGRyCVxiYXNlLCA9SVJRX1ZJUlRfQkFTRQorCS5lbmRtCisKKwkubWFjcm8gIGdldF9pcnFucl9hbmRfYmFzZSwgaXJxbnIsIGlycXN0YXQsIGJhc2UsIHRtcAorCWxkcglcaXJxc3RhdCwgW1xiYXNlLCAjSVJRX0NBVVNFX09GRl0KKwlsZHIJXHRtcCwgW1xiYXNlLCAjSVJRX01BU0tfT0ZGXQorCW1vdglcaXJxbnIsICMwCisJYW5kcwlcaXJxc3RhdCwgXGlycXN0YXQsIFx0bXAKKwljbHpuZQlcaXJxbnIsIFxpcnFzdGF0CisJcnNibmUJXGlycW5yLCBcaXJxbnIsICMzMQorCS5lbmRtCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2hhcmR3YXJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY1YjAxYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaGFyZHdhcmUuaApAQCAtMCwwICsxLDE1IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9oYXJkd2FyZS5oCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSAorI2RlZmluZSBfX0FTTV9BUkNIX0hBUkRXQVJFX0gKKworI2luY2x1ZGUgImxva2kuaCIKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaW8uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzQxOGE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pby5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2lvLmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSU9fSAorI2RlZmluZSBfX0FTTV9BUkNIX0lPX0gKKworI2luY2x1ZGUgImxva2kuaCIKKworI2RlZmluZSBJT19TUEFDRV9MSU1JVAkJMHhmZmZmZmZmZgorCitzdGF0aWMgaW5saW5lIHZvaWQgX19pb21lbSAqX19pbyh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJcmV0dXJuICh2b2lkIF9faW9tZW0gKikoKGFkZHIgLSBMT0tJX1BDSUUwX0lPX1BIWVNfQkFTRSkKKwkJCQkJKyBMT0tJX1BDSUUwX0lPX1ZJUlRfQkFTRSk7Cit9CisKKyNkZWZpbmUgX19pbyhhKQkJCV9faW8oYSkKKyNkZWZpbmUgX19tZW1fcGNpKGEpCQkoYSkKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaXJxcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pcnFzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U0OTcxNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaXJxcy5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2lycXMuaAorICoKKyAqIElSUSBkZWZpbml0aW9ucyBmb3IgTWFydmVsbCBMb2tpICg4OFJDODQ4MCkgU29DcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9JUlFTX0gKKyNkZWZpbmUgX19BU01fQVJDSF9JUlFTX0gKKworI2luY2x1ZGUgImxva2kuaCIJLyogbmVlZCBHUElPX01BWCAqLworCisvKgorICogSW50ZXJydXB0IENvbnRyb2xsZXIKKyAqLworI2RlZmluZSBJUlFfTE9LSV9QQ0lFX0FfQ1BVX0RSQkwJMAorI2RlZmluZSBJUlFfTE9LSV9DUFVfUENJRV9BX0RSQkwJMQorI2RlZmluZSBJUlFfTE9LSV9QQ0lFX0JfQ1BVX0RSQkwJMgorI2RlZmluZSBJUlFfTE9LSV9DUFVfUENJRV9CX0RSQkwJMworI2RlZmluZSBJUlFfTE9LSV9DT01fQV9FUlIJCTYKKyNkZWZpbmUgSVJRX0xPS0lfQ09NX0FfSU4JCTcKKyNkZWZpbmUgSVJRX0xPS0lfQ09NX0FfT1VUCQk4CisjZGVmaW5lIElSUV9MT0tJX0NPTV9CX0VSUgkJOQorI2RlZmluZSBJUlFfTE9LSV9DT01fQl9JTgkJMTAKKyNkZWZpbmUgSVJRX0xPS0lfQ09NX0JfT1VUCQkxMQorI2RlZmluZSBJUlFfTE9LSV9ETUFfQQkJCTEyCisjZGVmaW5lIElSUV9MT0tJX0RNQV9CCQkJMTMKKyNkZWZpbmUgSVJRX0xPS0lfU0FTX0EJCQkxNAorI2RlZmluZSBJUlFfTE9LSV9TQVNfQgkJCTE1CisjZGVmaW5lIElSUV9MT0tJX0REUgkJCTE2CisjZGVmaW5lIElSUV9MT0tJX1hPUgkJCTE3CisjZGVmaW5lIElSUV9MT0tJX0JSSURHRQkJCTE4CisjZGVmaW5lIElSUV9MT0tJX1BDSUVfQV9FUlIJCTIwCisjZGVmaW5lIElSUV9MT0tJX1BDSUVfQV9JTlQJCTIxCisjZGVmaW5lIElSUV9MT0tJX1BDSUVfQl9FUlIJCTIyCisjZGVmaW5lIElSUV9MT0tJX1BDSUVfQl9JTlQJCTIzCisjZGVmaW5lIElSUV9MT0tJX0dCRV9BX0lOVAkJMjQKKyNkZWZpbmUgSVJRX0xPS0lfR0JFX0JfSU5UCQkyNQorI2RlZmluZSBJUlFfTE9LSV9ERVZfRVJSCQkyNgorI2RlZmluZSBJUlFfTE9LSV9VQVJUMAkJCTI3CisjZGVmaW5lIElSUV9MT0tJX1VBUlQxCQkJMjgKKyNkZWZpbmUgSVJRX0xPS0lfVFdTSQkJCTI5CisjZGVmaW5lIElSUV9MT0tJX0dQSU9fMjNfMAkJMzAKKyNkZWZpbmUgSVJRX0xPS0lfR1BJT18yNV8yNAkJMzEKKworLyoKKyAqIExva2kgR2VuZXJhbCBQdXJwb3NlIFBpbnMKKyAqLworI2RlZmluZSBJUlFfTE9LSV9HUElPX1NUQVJUCTMyCisjZGVmaW5lIE5SX0dQSU9fSVJRUwkJR1BJT19NQVgKKworI2RlZmluZSBOUl9JUlFTCQkJKElSUV9MT0tJX0dQSU9fU1RBUlQgKyBOUl9HUElPX0lSUVMpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2xva2kuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvbG9raS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkZDA1ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2xva2kuaApAQCAtMCwwICsxLDk3IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9sb2tpLmgKKyAqCisgKiBHZW5lcmljIGRlZmluaXRpb25zIGZvciBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0MgZmxhdm9ycworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9MT0tJX0gKKyNkZWZpbmUgX19BU01fQVJDSF9MT0tJX0gKKworLyoKKyAqIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIGFkZHJlc3MgbWFwcy4KKyAqCisgKiBwaHlzCisgKiBkMDAwMDAwMAlvbi1jaGlwIHBlcmlwaGVyYWwgcmVnaXN0ZXJzCisgKiBlMDAwMDAwMAlQQ0llIDAgTWVtb3J5IHNwYWNlCisgKiBlODAwMDAwMAlQQ0llIDEgTWVtb3J5IHNwYWNlCisgKiBmMDAwMDAwMAlQQ0llIDAgSS9PIHNwYWNlCisgKiBmMDEwMDAwMAlQQ0llIDEgSS9PIHNwYWNlCisgKgorICogdmlydAkJcGh5cwkJc2l6ZQorICogZmVkMDAwMDAJZDAwMDAwMDAJMU0Jb24tY2hpcCBwZXJpcGhlcmFsIHJlZ2lzdGVycworICogZmVlMDAwMDAJZjAwMDAwMDAJNjRLCVBDSWUgMCBJL08gc3BhY2UKKyAqIGZlZjAwMDAwCWYwMTAwMDAwCTY0SwlQQ0llIDEgSS9PIHNwYWNlCisgKi8KKworI2RlZmluZSBMT0tJX1JFR1NfUEhZU19CQVNFCQkweGQwMDAwMDAwCisjZGVmaW5lIExPS0lfUkVHU19WSVJUX0JBU0UJCTB4ZmVkMDAwMDAKKyNkZWZpbmUgTE9LSV9SRUdTX1NJWkUJCQlTWl8xTQorCisjZGVmaW5lIExPS0lfUENJRTBfSU9fUEhZU19CQVNFCQkweGYwMDAwMDAwCisjZGVmaW5lIExPS0lfUENJRTBfSU9fVklSVF9CQVNFCQkweGZlZTAwMDAwCisjZGVmaW5lIExPS0lfUENJRTBfSU9fQlVTX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMF9JT19TSVpFCQlTWl82NEsKKworI2RlZmluZSBMT0tJX1BDSUUxX0lPX1BIWVNfQkFTRQkJMHhmMDEwMDAwMAorI2RlZmluZSBMT0tJX1BDSUUxX0lPX1ZJUlRfQkFTRQkJMHhmZWYwMDAwMAorI2RlZmluZSBMT0tJX1BDSUUxX0lPX0JVU19CQVNFCQkweDAwMDAwMDAwCisjZGVmaW5lIExPS0lfUENJRTFfSU9fU0laRQkJU1pfNjRLCisKKyNkZWZpbmUgTE9LSV9QQ0lFMF9NRU1fUEhZU19CQVNFCTB4ZTAwMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMF9NRU1fU0laRQkJU1pfMTI4TQorCisjZGVmaW5lIExPS0lfUENJRTFfTUVNX1BIWVNfQkFTRQkweGU4MDAwMDAwCisjZGVmaW5lIExPS0lfUENJRTFfTUVNX1NJWkUJCVNaXzEyOE0KKworLyoKKyAqIFJlZ2lzdGVyIE1hcAorICovCisjZGVmaW5lIERFVl9CVVNfUEhZU19CQVNFCShMT0tJX1JFR1NfUEhZU19CQVNFIHwgMHgxMDAwMCkKKyNkZWZpbmUgREVWX0JVU19WSVJUX0JBU0UJKExPS0lfUkVHU19WSVJUX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSAgVUFSVDBfUEhZU19CQVNFCShERVZfQlVTX1BIWVNfQkFTRSB8IDB4MjAwMCkKKyNkZWZpbmUgIFVBUlQwX1ZJUlRfQkFTRQkoREVWX0JVU19WSVJUX0JBU0UgfCAweDIwMDApCisjZGVmaW5lICBVQVJUMV9QSFlTX0JBU0UJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgyMTAwKQorI2RlZmluZSAgVUFSVDFfVklSVF9CQVNFCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MjEwMCkKKworI2RlZmluZSBCUklER0VfVklSVF9CQVNFCShMT0tJX1JFR1NfVklSVF9CQVNFIHwgMHgyMDAwMCkKKyNkZWZpbmUgIEJSSURHRV9SRUcoeCkJCShCUklER0VfVklSVF9CQVNFIHwgKHgpKQorI2RlZmluZSAgUlNUT1VUbl9NQVNLCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDEwOCkKKyNkZWZpbmUgICBTT0ZUX1JFU0VUX09VVF9FTgkweDAwMDAwMDA0CisjZGVmaW5lICBTWVNURU1fU09GVF9SRVNFVAkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDEwYykKKyNkZWZpbmUgICBTT0ZUX1JFU0VUCQkweDAwMDAwMDAxCisjZGVmaW5lICBCUklER0VfQ0FVU0UJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTEwKQorI2RlZmluZSAgQlJJREdFX01BU0sJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTE0KQorI2RlZmluZSAgIEJSSURHRV9JTlRfVElNRVIwCTB4MDAwMgorI2RlZmluZSAgIEJSSURHRV9JTlRfVElNRVIxCTB4MDAwNAorI2RlZmluZSAgIEJSSURHRV9JTlRfVElNRVIxX0NMUgkweDAwMDQKKyNkZWZpbmUgIElSUV9WSVJUX0JBU0UJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMjAwKQorI2RlZmluZSAgIElSUV9DQVVTRV9PRkYJCTB4MDAwMAorI2RlZmluZSAgIElSUV9NQVNLX09GRgkJMHgwMDA0CisjZGVmaW5lICBUSU1FUl9WSVJUX0JBU0UJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAzMDApCisKKyNkZWZpbmUgUENJRTBfVklSVF9CQVNFCQkoTE9LSV9SRUdTX1ZJUlRfQkFTRSB8IDB4MzAwMDApCisKKyNkZWZpbmUgUENJRTFfVklSVF9CQVNFCQkoTE9LSV9SRUdTX1ZJUlRfQkFTRSB8IDB4NDAwMDApCisKKyNkZWZpbmUgU0FTMF9QSFlTX0JBU0UJCShMT0tJX1JFR1NfUEhZU19CQVNFIHwgMHg4MDAwMCkKKworI2RlZmluZSBTQVMxX1BIWVNfQkFTRQkJKExPS0lfUkVHU19QSFlTX0JBU0UgfCAweDkwMDAwKQorCisjZGVmaW5lIEdFMF9QSFlTX0JBU0UJCShMT0tJX1JFR1NfUEhZU19CQVNFIHwgMHhhMDAwMCkKKyNkZWZpbmUgR0UwX1ZJUlRfQkFTRQkJKExPS0lfUkVHU19WSVJUX0JBU0UgfCAweGEwMDAwKQorCisjZGVmaW5lIEdFMV9QSFlTX0JBU0UJCShMT0tJX1JFR1NfUEhZU19CQVNFIHwgMHhiMDAwMCkKKyNkZWZpbmUgR0UxX1ZJUlRfQkFTRQkJKExPS0lfUkVHU19WSVJUX0JBU0UgfCAweGIwMDAwKQorCisjZGVmaW5lIEREUl9WSVJUX0JBU0UJCShMT0tJX1JFR1NfVklSVF9CQVNFIHwgMHhmMDAwMCkKKyNkZWZpbmUgRERSX1JFRyh4KQkJKEREUl9WSVJUX0JBU0UgfCAoeCkpCisKKworI2RlZmluZSBHUElPX01BWAkJOAorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9tZW1vcnkuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvbWVtb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM1MTAxZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvbWVtb3J5LmgKQEAgLTAsMCArMSwxNCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvbWVtb3J5LmgKKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTUVNT1JZX0gKKyNkZWZpbmUgX19BU01fQVJDSF9NRU1PUllfSAorCisjZGVmaW5lIFBIWVNfT0ZGU0VUCQlVTCgweDAwMDAwMDAwKQorCisjZGVmaW5lIF9fdmlydF90b19idXMoeCkJX192aXJ0X3RvX3BoeXMoeCkKKyNkZWZpbmUgX19idXNfdG9fdmlydCh4KQlfX3BoeXNfdG9fdmlydCh4KQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9zeXN0ZW0uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvc3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM1NjhhYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvc3lzdGVtLmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvc3lzdGVtLmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfU1lTVEVNX0gKKyNkZWZpbmUgX19BU01fQVJDSF9TWVNURU1fSAorCisjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9sb2tpLmg+CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX2lkbGUodm9pZCkKK3sKKwljcHVfZG9faWRsZSgpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9yZXNldChjaGFyIG1vZGUpCit7CisJLyoKKwkgKiBFbmFibGUgc29mdCByZXNldCB0byBhc3NlcnQgUlNUT1VUbi4KKwkgKi8KKwl3cml0ZWwoU09GVF9SRVNFVF9PVVRfRU4sIFJTVE9VVG5fTUFTSyk7CisKKwkvKgorCSAqIEFzc2VydCBzb2Z0IHJlc2V0LgorCSAqLworCXdyaXRlbChTT0ZUX1JFU0VULCBTWVNURU1fU09GVF9SRVNFVCk7CisKKwl3aGlsZSAoMSkKKwkJOworfQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS90aW1leC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS90aW1leC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MDAxNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3RpbWV4LmgKQEAgLTAsMCArMSwxMSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvdGltZXguaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoMTAwICogSFopCisKKyNkZWZpbmUgTE9LSV9UQ0xLCQkxODAwMDAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvdW5jb21wcmVzcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS91bmNvbXByZXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODlhMGNmOAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvdW5jb21wcmVzcy5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3VuY29tcHJlc3MuaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbG9raS5oPgorCisjZGVmaW5lIFNFUklBTF9CQVNFCSgodW5zaWduZWQgY2hhciAqKVVBUlQwX1BIWVNfQkFTRSkKKworc3RhdGljIHZvaWQgcHV0Yyhjb25zdCBjaGFyIGMpCit7CisJdW5zaWduZWQgY2hhciAqYmFzZSA9IFNFUklBTF9CQVNFOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IDB4MTAwMDsgaSsrKSB7CisJCWlmIChiYXNlW1VBUlRfTFNSIDw8IDJdICYgVUFSVF9MU1JfVEhSRSkKKwkJCWJyZWFrOworCQliYXJyaWVyKCk7CisJfQorCisJYmFzZVtVQVJUX1RYIDw8IDJdID0gYzsKK30KKworc3RhdGljIHZvaWQgZmx1c2godm9pZCkKK3sKKwl1bnNpZ25lZCBjaGFyICpiYXNlID0gU0VSSUFMX0JBU0U7CisJdW5zaWduZWQgY2hhciBtYXNrOworCWludCBpOworCisJbWFzayA9IFVBUlRfTFNSX1RFTVQgfCBVQVJUX0xTUl9USFJFOworCisJZm9yIChpID0gMDsgaSA8IDB4MTAwMDsgaSsrKSB7CisJCWlmICgoYmFzZVtVQVJUX0xTUiA8PCAyXSAmIG1hc2spID09IG1hc2spCisJCQlicmVhazsKKwkJYmFycmllcigpOworCX0KK30KKworLyoKKyAqIG5vdGhpbmcgdG8gZG8KKyAqLworI2RlZmluZSBhcmNoX2RlY29tcF9zZXR1cCgpCisjZGVmaW5lIGFyY2hfZGVjb21wX3dkb2coKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS92bWFsbG9jLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3ZtYWxsb2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWJlMDYyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS92bWFsbG9jLmgKQEAgLTAsMCArMSw1IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS92bWFsbG9jLmgKKyAqLworCisjZGVmaW5lIFZNQUxMT0NfRU5ECTB4ZmU4MDAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW1zbS9pcnFzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tc20vaXJxcy5oCmluZGV4IDU2NTQzMGMuLmU2MmExMDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW1zbS9pcnFzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL2lycXMuaApAQCAtMTUsNiArMTUsNyBAQAogICovCiAKICNpZm5kZWYgX19BU01fQVJDSF9NU01fSVJRU19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfTVNNX0lSUVNfSAogCiAvKiBNU00gQVJNMTEgSW50ZXJydXB0IE51bWJlcnMgKi8KIC8qIFNlZSA4MC1WRTExMy0xIEEsIHBwMjE5LTIyMSAgICAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW1zbS90aW1leC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL3RpbWV4LmgKaW5kZXggMTU0YjIzZi4uODcyNDQ4NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL3RpbWV4LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL3RpbWV4LmgKQEAgLTE0LDYgKzE0LDcgQEAKICAqLwogCiAjaWZuZGVmIF9fQVNNX0FSQ0hfTVNNX1RJTUVYX0gKKyNkZWZpbmUgX19BU01fQVJDSF9NU01fVElNRVhfSAogCiAjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJMTAwMDAwMAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2RlYnVnLW1hY3JvLlMgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2RlYnVnLW1hY3JvLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA1OTViZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZGVidWctbWFjcm8uUwpAQCAtMCwwICsxLDIwIEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9kZWJ1Zy1tYWNyby5TCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxhc20vYXJjaC9tdjc4eHgwLmg+CisKKwkubWFjcm8JYWRkcnVhcnQscngKKwltcmMJcDE1LCAwLCBccngsIGMxLCBjMAorCXRzdAlccngsICMxCQkJCQlAIE1NVSBlbmFibGVkPworCWxkcmVxCVxyeCwgPU1WNzhYWDBfUkVHU19QSFlTX0JBU0UKKwlsZHJuZQlccngsID1NVjc4WFgwX1JFR1NfVklSVF9CQVNFCisJb3JyCVxyeCwgXHJ4LCAjMHgwMDAxMjAwMAorCS5lbmRtCisKKyNkZWZpbmUgVUFSVF9TSElGVAkyCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlL2RlYnVnLTgyNTAuUz4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZG1hLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2RtYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwYThjMTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2RtYS5oCkBAIC0wLDAgKzEgQEAKKy8qIGVtcHR5ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2VudHJ5LW1hY3JvLlMgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2VudHJ5LW1hY3JvLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlhNjA2YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZW50cnktbWFjcm8uUwpAQCAtMCwwICsxLDM5IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9lbnRyeS1tYWNyby5TCisgKgorICogTG93LWxldmVsIElSUSBoZWxwZXIgbWFjcm9zIGZvciBNYXJ2ZWxsIE1WNzh4eDAgcGxhdGZvcm1zCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGFzbS9hcmNoL212Nzh4eDAuaD4KKworCS5tYWNybyAgZGlzYWJsZV9maXEKKwkuZW5kbQorCisJLm1hY3JvICBhcmNoX3JldF90b191c2VyLCB0bXAxLCB0bXAyCisJLmVuZG0KKworCS5tYWNybyAgZ2V0X2lycW5yX3ByZWFtYmxlLCBiYXNlLCB0bXAKKwlsZHIJXGJhc2UsID1JUlFfVklSVF9CQVNFCisJLmVuZG0KKworCS5tYWNybyAgZ2V0X2lycW5yX2FuZF9iYXNlLCBpcnFuciwgaXJxc3RhdCwgYmFzZSwgdG1wCisJQCBjaGVjayBsb3cgaW50ZXJydXB0cworCWxkcglcaXJxc3RhdCwgW1xiYXNlLCAjSVJRX0NBVVNFX0xPV19PRkZdCisJbGRyCVx0bXAsIFtcYmFzZSwgI0lSUV9NQVNLX0xPV19PRkZdCisJbW92CVxpcnFuciwgIzMxCisJYW5kcwlcaXJxc3RhdCwgXGlycXN0YXQsIFx0bXAKKworCUAgaWYgbm8gbG93IGludGVycnVwdHMgc2V0LCBjaGVjayBoaWdoIGludGVycnVwdHMKKwlsZHJlcQlcaXJxc3RhdCwgW1xiYXNlLCAjSVJRX0NBVVNFX0hJR0hfT0ZGXQorCWxkcmVxCVx0bXAsIFtcYmFzZSwgI0lSUV9NQVNLX0hJR0hfT0ZGXQorCW1vdmVxCVxpcnFuciwgIzYzCisJYW5kZXFzCVxpcnFzdGF0LCBcaXJxc3RhdCwgXHRtcAorCisJQCBmaW5kIGZpcnN0IGFjdGl2ZSBpbnRlcnJ1cHQgc291cmNlCisJY2x6bmUJXGlycXN0YXQsIFxpcnFzdGF0CisJc3VibmUJXGlycW5yLCBcaXJxbnIsIFxpcnFzdGF0CisJLmVuZG0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaGFyZHdhcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTE3OTI2MAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaGFyZHdhcmUuaApAQCAtMCwwICsxLDIxIEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9oYXJkd2FyZS5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0hBUkRXQVJFX0gKKyNkZWZpbmUgX19BU01fQVJDSF9IQVJEV0FSRV9ICisKKyNpbmNsdWRlICJtdjc4eHgwLmgiCisKKyNkZWZpbmUgcGNpYmlvc19hc3NpZ25fYWxsX2J1c3NlcygpCTEKKworI2RlZmluZSBQQ0lCSU9TX01JTl9JTwkJCTB4MDAwMDEwMDAKKyNkZWZpbmUgUENJQklPU19NSU5fTUVNCQkJMHgwMTAwMDAwMAorI2RlZmluZSBQQ0lNRU1fQkFTRQkJCU1WNzhYWDBfUENJRV9NRU1fUEhZU19CQVNFIC8qIG1lbSBiYXNlIGZvciBWR0EgKi8KKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaW8uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTVkNGM5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9pby5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2lvLmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSU9fSAorI2RlZmluZSBfX0FTTV9BUkNIX0lPX0gKKworI2luY2x1ZGUgIm12Nzh4eDAuaCIKKworI2RlZmluZSBJT19TUEFDRV9MSU1JVAkJMHhmZmZmZmZmZgorCitzdGF0aWMgaW5saW5lIHZvaWQgX19pb21lbSAqX19pbyh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJcmV0dXJuICh2b2lkIF9faW9tZW0gKikoKGFkZHIgLSBNVjc4WFgwX1BDSUVfSU9fUEhZU19CQVNFKDApKQorCQkJCQkrIE1WNzhYWDBfUENJRV9JT19WSVJUX0JBU0UoMCkpOworfQorCisjZGVmaW5lIF9faW8oYSkJCQlfX2lvKGEpCisjZGVmaW5lIF9fbWVtX3BjaShhKQkJKGEpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2lycXMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaXJxcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1OTMwNDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2lycXMuaApAQCAtMCwwICsxLDkxIEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9pcnFzLmgKKyAqCisgKiBJUlEgZGVmaW5pdGlvbnMgZm9yIE1hcnZlbGwgTVY3OHh4MCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0lSUVNfSAorI2RlZmluZSBfX0FTTV9BUkNIX0lSUVNfSAorCisjaW5jbHVkZSAibXY3OHh4MC5oIgkvKiBuZWVkIEdQSU9fTUFYICovCisKKy8qCisgKiBNVjc4eHgwIExvdyBJbnRlcnJ1cHQgQ29udHJvbGxlcgorICovCisjZGVmaW5lIElSUV9NVjc4WFgwX0VSUgkJMAorI2RlZmluZSBJUlFfTVY3OFhYMF9TUEkJCTEKKyNkZWZpbmUgSVJRX01WNzhYWDBfSTJDXzAJMgorI2RlZmluZSBJUlFfTVY3OFhYMF9JMkNfMQkzCisjZGVmaW5lIElSUV9NVjc4WFgwX0lETUFfMAk0CisjZGVmaW5lIElSUV9NVjc4WFgwX0lETUFfMQk1CisjZGVmaW5lIElSUV9NVjc4WFgwX0lETUFfMgk2CisjZGVmaW5lIElSUV9NVjc4WFgwX0lETUFfMwk3CisjZGVmaW5lIElSUV9NVjc4WFgwX1RJTUVSXzAJOAorI2RlZmluZSBJUlFfTVY3OFhYMF9USU1FUl8xCTkKKyNkZWZpbmUgSVJRX01WNzhYWDBfVElNRVJfMgkxMAorI2RlZmluZSBJUlFfTVY3OFhYMF9USU1FUl8zCTExCisjZGVmaW5lIElSUV9NVjc4WFgwX1VBUlRfMAkxMgorI2RlZmluZSBJUlFfTVY3OFhYMF9VQVJUXzEJMTMKKyNkZWZpbmUgSVJRX01WNzhYWDBfVUFSVF8yCTE0CisjZGVmaW5lIElSUV9NVjc4WFgwX1VBUlRfMwkxNQorI2RlZmluZSBJUlFfTVY3OFhYMF9VU0JfMAkxNgorI2RlZmluZSBJUlFfTVY3OFhYMF9VU0JfMQkxNworI2RlZmluZSBJUlFfTVY3OFhYMF9VU0JfMgkxOAorI2RlZmluZSBJUlFfTVY3OFhYMF9DUllQVE8JMTkKKyNkZWZpbmUgSVJRX01WNzhYWDBfU0RJT18wCTIwCisjZGVmaW5lIElSUV9NVjc4WFgwX1NESU9fMQkyMQorI2RlZmluZSBJUlFfTVY3OFhYMF9YT1JfMAkyMgorI2RlZmluZSBJUlFfTVY3OFhYMF9YT1JfMQkyMworI2RlZmluZSBJUlFfTVY3OFhYMF9JMlNfMAkyNAorI2RlZmluZSBJUlFfTVY3OFhYMF9JMlNfMQkyNQorI2RlZmluZSBJUlFfTVY3OFhYMF9TQVRBCTI2CisjZGVmaW5lIElSUV9NVjc4WFgwX1RETUkJMjcKKworLyoKKyAqIE1WNzh4eDAgSGlnaCBJbnRlcnJ1cHQgQ29udHJvbGxlcgorICovCisjZGVmaW5lIElSUV9NVjc4WFgwX1BDSUVfMDAJMzIKKyNkZWZpbmUgSVJRX01WNzhYWDBfUENJRV8wMQkzMworI2RlZmluZSBJUlFfTVY3OFhYMF9QQ0lFXzAyCTM0CisjZGVmaW5lIElSUV9NVjc4WFgwX1BDSUVfMDMJMzUKKyNkZWZpbmUgSVJRX01WNzhYWDBfUENJRV8xMAkzNgorI2RlZmluZSBJUlFfTVY3OFhYMF9QQ0lFXzExCTM3CisjZGVmaW5lIElSUV9NVjc4WFgwX1BDSUVfMTIJMzgKKyNkZWZpbmUgSVJRX01WNzhYWDBfUENJRV8xMwkzOQorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTAwX1NVTQk0MAorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTAwX1JYCTQxCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMDBfVFgJNDIKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UwMF9NSVNDCTQzCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMDFfU1VNCTQ0CisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMDFfUlgJNDUKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UwMV9UWAk0NgorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTAxX01JU0MJNDcKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UxMF9TVU0JNDgKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UxMF9SWAk0OQorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTEwX1RYCTUwCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMTBfTUlTQwk1MQorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTExX1NVTQk1MgorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTExX1JYCTUzCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMTFfVFgJNTQKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UxMV9NSVNDCTU1CisjZGVmaW5lIElSUV9NVjc4WFgwX0dQSU9fMF83CTU2CisjZGVmaW5lIElSUV9NVjc4WFgwX0dQSU9fOF8xNQk1NworI2RlZmluZSBJUlFfTVY3OFhYMF9HUElPXzE2XzIzCTU4CisjZGVmaW5lIElSUV9NVjc4WFgwX0dQSU9fMjRfMzEJNTkKKyNkZWZpbmUgSVJRX01WNzhYWDBfREJfSU4JNjAKKyNkZWZpbmUgSVJRX01WNzhYWDBfREJfT1VUCTYxCisKKy8qCisgKiBNVjc4WFgwIEdlbmVyYWwgUHVycG9zZSBQaW5zCisgKi8KKyNkZWZpbmUgSVJRX01WNzhYWDBfR1BJT19TVEFSVAk2NAorI2RlZmluZSBOUl9HUElPX0lSUVMJCUdQSU9fTUFYCisKKyNkZWZpbmUgTlJfSVJRUwkJCShJUlFfTVY3OFhYMF9HUElPX1NUQVJUICsgTlJfR1BJT19JUlFTKQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9tZW1vcnkuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvbWVtb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIxYTZiMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvbWVtb3J5LmgKQEAgLTAsMCArMSwxNCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvbWVtb3J5LmgKKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTUVNT1JZX0gKKyNkZWZpbmUgX19BU01fQVJDSF9NRU1PUllfSAorCisjZGVmaW5lIFBIWVNfT0ZGU0VUCQlVTCgweDAwMDAwMDAwKQorCisjZGVmaW5lIF9fdmlydF90b19idXMoeCkJX192aXJ0X3RvX3BoeXMoeCkKKyNkZWZpbmUgX19idXNfdG9fdmlydCh4KQlfX3BoeXNfdG9fdmlydCh4KQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9tdjc4eHgwLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL212Nzh4eDAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjVkODNjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9tdjc4eHgwLmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL212Nzh4eDAuaAorICoKKyAqIEdlbmVyaWMgZGVmaW5pdGlvbnMgZm9yIE1hcnZlbGwgTVY3OHh4MCBTb0MgZmxhdm9yczoKKyAqICBNVjc4MXgwIGFuZCBNVjc4MngwLgorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NVjc4WFgwX0gKKyNkZWZpbmUgX19BU01fQVJDSF9NVjc4WFgwX0gKKworLyoKKyAqIE1hcnZlbGwgTVY3OHh4MCBhZGRyZXNzIG1hcHMuCisgKgorICogcGh5cworICogYzAwMDAwMDAJUENJZSBNZW1vcnkgc3BhY2UKKyAqIGYwODAwMDAwCVBDSWUgIzAgSS9PIHNwYWNlCisgKiBmMDkwMDAwMAlQQ0llICMxIEkvTyBzcGFjZQorICogZjBhMDAwMDAJUENJZSAjMiBJL08gc3BhY2UKKyAqIGYwYjAwMDAwCVBDSWUgIzMgSS9PIHNwYWNlCisgKiBmMGMwMDAwMAlQQ0llICM0IEkvTyBzcGFjZQorICogZjBkMDAwMDAJUENJZSAjNSBJL08gc3BhY2UKKyAqIGYwZTAwMDAwCVBDSWUgIzYgSS9PIHNwYWNlCisgKiBmMGYwMDAwMAlQQ0llICM3IEkvTyBzcGFjZQorICogZjEwMDAwMDAJb24tY2hpcCBwZXJpcGhlcmFsIHJlZ2lzdGVycworICoKKyAqIHZpcnQJCXBoeXMJCXNpemUKKyAqIGZlNDAwMDAwCWYxMDJ4MDAwCTE2Swljb3JlLXNwZWNpZmljIHBlcmlwaGVyYWwgcmVnaXN0ZXJzCisgKiBmZTcwMDAwMAlmMDgwMDAwMAkxTQlQQ0llICMwIEkvTyBzcGFjZQorICogZmU4MDAwMDAJZjA5MDAwMDAJMU0JUENJZSAjMSBJL08gc3BhY2UKKyAqIGZlOTAwMDAwCWYwYTAwMDAwCTFNCVBDSWUgIzIgSS9PIHNwYWNlCisgKiBmZWEwMDAwMAlmMGIwMDAwMAkxTQlQQ0llICMzIEkvTyBzcGFjZQorICogZmViMDAwMDAJZjBjMDAwMDAJMU0JUENJZSAjNCBJL08gc3BhY2UKKyAqIGZlYzAwMDAwCWYwZDAwMDAwCTFNCVBDSWUgIzUgSS9PIHNwYWNlCisgKiBmZWQwMDAwMAlmMGUwMDAwMAkxTQlQQ0llICM2IEkvTyBzcGFjZQorICogZmVlMDAwMDAJZjBmMDAwMDAJMU0JUENJZSAjNyBJL08gc3BhY2UKKyAqIGZlZjAwMDAwCWYxMDAwMDAwCTFNCW9uLWNoaXAgcGVyaXBoZXJhbCByZWdpc3RlcnMKKyAqLworI2RlZmluZSBNVjc4WFgwX0NPUkUwX1JFR1NfUEhZU19CQVNFCTB4ZjEwMjAwMDAKKyNkZWZpbmUgTVY3OFhYMF9DT1JFMV9SRUdTX1BIWVNfQkFTRQkweGYxMDI0MDAwCisjZGVmaW5lIE1WNzhYWDBfQ09SRV9SRUdTX1ZJUlRfQkFTRQkweGZlNDAwMDAwCisjZGVmaW5lIE1WNzhYWDBfQ09SRV9SRUdTX1NJWkUJCVNaXzE2SworCisjZGVmaW5lIE1WNzhYWDBfUENJRV9JT19QSFlTX0JBU0UoaSkJKDB4ZjA4MDAwMDAgKyAoKGkpIDw8IDIwKSkKKyNkZWZpbmUgTVY3OFhYMF9QQ0lFX0lPX1ZJUlRfQkFTRShpKQkoMHhmZTcwMDAwMCArICgoaSkgPDwgMjApKQorI2RlZmluZSBNVjc4WFgwX1BDSUVfSU9fU0laRQkJU1pfMU0KKworI2RlZmluZSBNVjc4WFgwX1JFR1NfUEhZU19CQVNFCQkweGYxMDAwMDAwCisjZGVmaW5lIE1WNzhYWDBfUkVHU19WSVJUX0JBU0UJCTB4ZmVmMDAwMDAKKyNkZWZpbmUgTVY3OFhYMF9SRUdTX1NJWkUJCVNaXzFNCisKKyNkZWZpbmUgTVY3OFhYMF9QQ0lFX01FTV9QSFlTX0JBU0UJMHhjMDAwMDAwMAorI2RlZmluZSBNVjc4WFgwX1BDSUVfTUVNX1NJWkUJCTB4MzAwMDAwMDAKKworLyoKKyAqIENvcmUtc3BlY2lmaWMgcGVyaXBoZXJhbCByZWdpc3RlcnMuCisgKi8KKyNkZWZpbmUgQlJJREdFX1ZJUlRfQkFTRQkoTVY3OFhYMF9DT1JFX1JFR1NfVklSVF9CQVNFKQorI2RlZmluZSAgQ1BVX0NPTlRST0wJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTA0KQorI2RlZmluZSAgIEwyX1dSSVRFVEhST1VHSAkweDAwMDIwMDAwCisjZGVmaW5lICBSU1RPVVRuX01BU0sJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTA4KQorI2RlZmluZSAgIFNPRlRfUkVTRVRfT1VUX0VOCTB4MDAwMDAwMDQKKyNkZWZpbmUgIFNZU1RFTV9TT0ZUX1JFU0VUCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTBjKQorI2RlZmluZSAgIFNPRlRfUkVTRVQJCTB4MDAwMDAwMDEKKyNkZWZpbmUgIEJSSURHRV9DQVVTRQkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMTApCisjZGVmaW5lICBCUklER0VfTUFTSwkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMTQpCisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjAJMHgwMDAyCisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjEJMHgwMDA0CisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjFfQ0xSCSh+MHgwMDA0KQorI2RlZmluZSAgSVJRX1ZJUlRfQkFTRQkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAyMDApCisjZGVmaW5lICAgSVJRX0NBVVNFX0xPV19PRkYJMHgwMDA0CisjZGVmaW5lICAgSVJRX0NBVVNFX0hJR0hfT0ZGCTB4MDAwOAorI2RlZmluZSAgIElSUV9NQVNLX0xPV19PRkYJMHgwMDEwCisjZGVmaW5lICAgSVJRX01BU0tfSElHSF9PRkYJMHgwMDE0CisjZGVmaW5lICBUSU1FUl9WSVJUX0JBU0UJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAzMDApCisKKy8qCisgKiBSZWdpc3RlciBNYXAKKyAqLworI2RlZmluZSBERFJfVklSVF9CQVNFCQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4MDAwMDApCisjZGVmaW5lICBERFJfV0lORE9XX0NQVTBfQkFTRQkoRERSX1ZJUlRfQkFTRSB8IDB4MTUwMCkKKyNkZWZpbmUgIEREUl9XSU5ET1dfQ1BVMV9CQVNFCShERFJfVklSVF9CQVNFIHwgMHgxNzAwKQorCisjZGVmaW5lIERFVl9CVVNfUEhZU19CQVNFCShNVjc4WFgwX1JFR1NfUEhZU19CQVNFIHwgMHgxMDAwMCkKKyNkZWZpbmUgREVWX0JVU19WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSAgU0FNUExFX0FUX1JFU0VUX0xPVwkoREVWX0JVU19WSVJUX0JBU0UgfCAweDAwMzApCisjZGVmaW5lICBTQU1QTEVfQVRfUkVTRVRfSElHSAkoREVWX0JVU19WSVJUX0JBU0UgfCAweDAwMzQpCisjZGVmaW5lICBVQVJUMF9QSFlTX0JBU0UJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgyMDAwKQorI2RlZmluZSAgVUFSVDBfVklSVF9CQVNFCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MjAwMCkKKyNkZWZpbmUgIFVBUlQxX1BIWVNfQkFTRQkoREVWX0JVU19QSFlTX0JBU0UgfCAweDIxMDApCisjZGVmaW5lICBVQVJUMV9WSVJUX0JBU0UJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgyMTAwKQorI2RlZmluZSAgVUFSVDJfUEhZU19CQVNFCShERVZfQlVTX1BIWVNfQkFTRSB8IDB4MjIwMCkKKyNkZWZpbmUgIFVBUlQyX1ZJUlRfQkFTRQkoREVWX0JVU19WSVJUX0JBU0UgfCAweDIyMDApCisjZGVmaW5lICBVQVJUM19QSFlTX0JBU0UJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgyMzAwKQorI2RlZmluZSAgVUFSVDNfVklSVF9CQVNFCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MjMwMCkKKworI2RlZmluZSBHRTEwX1BIWVNfQkFTRQkJKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UgfCAweDMwMDAwKQorI2RlZmluZSBHRTExX1BIWVNfQkFTRQkJKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UgfCAweDM0MDAwKQorCisjZGVmaW5lIFBDSUUwMF9WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDQwMDAwKQorI2RlZmluZSBQQ0lFMDFfVklSVF9CQVNFCShNVjc4WFgwX1JFR1NfVklSVF9CQVNFIHwgMHg0NDAwMCkKKyNkZWZpbmUgUENJRTAyX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4NDgwMDApCisjZGVmaW5lIFBDSUUwM19WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDRjMDAwKQorCisjZGVmaW5lIFVTQjBfUEhZU19CQVNFCQkoTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSB8IDB4NTAwMDApCisjZGVmaW5lIFVTQjFfUEhZU19CQVNFCQkoTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSB8IDB4NTEwMDApCisjZGVmaW5lIFVTQjJfUEhZU19CQVNFCQkoTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSB8IDB4NTIwMDApCisKKyNkZWZpbmUgR0UwMF9QSFlTX0JBU0UJCShNVjc4WFgwX1JFR1NfUEhZU19CQVNFIHwgMHg3MDAwMCkKKyNkZWZpbmUgR0UwMV9QSFlTX0JBU0UJCShNVjc4WFgwX1JFR1NfUEhZU19CQVNFIHwgMHg3NDAwMCkKKworI2RlZmluZSBQQ0lFMTBfVklSVF9CQVNFCShNVjc4WFgwX1JFR1NfVklSVF9CQVNFIHwgMHg4MDAwMCkKKyNkZWZpbmUgUENJRTExX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4ODQwMDApCisjZGVmaW5lIFBDSUUxMl9WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDg4MDAwKQorI2RlZmluZSBQQ0lFMTNfVklSVF9CQVNFCShNVjc4WFgwX1JFR1NfVklSVF9CQVNFIHwgMHg4YzAwMCkKKworI2RlZmluZSBTQVRBX1BIWVNfQkFTRQkJKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UgfCAweGEwMDAwKQorCisKKyNkZWZpbmUgR1BJT19NQVgJCTMyCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9zeXN0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWI0N2QzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9zeXN0ZW0uaApAQCAtMCwwICsxLDM3IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9zeXN0ZW0uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9TWVNURU1fSAorI2RlZmluZSBfX0FTTV9BUkNIX1NZU1RFTV9ICisKKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL212Nzh4eDAuaD4KKworc3RhdGljIGlubGluZSB2b2lkIGFyY2hfaWRsZSh2b2lkKQoreworCWNwdV9kb19pZGxlKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX3Jlc2V0KGNoYXIgbW9kZSkKK3sKKwkvKgorCSAqIEVuYWJsZSBzb2Z0IHJlc2V0IHRvIGFzc2VydCBSU1RPVVRuLgorCSAqLworCXdyaXRlbChTT0ZUX1JFU0VUX09VVF9FTiwgUlNUT1VUbl9NQVNLKTsKKworCS8qCisJICogQXNzZXJ0IHNvZnQgcmVzZXQuCisJICovCisJd3JpdGVsKFNPRlRfUkVTRVQsIFNZU1RFTV9TT0ZUX1JFU0VUKTsKKworCXdoaWxlICgxKQorCQk7Cit9CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3RpbWV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3RpbWV4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg1NGIxYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdGltZXguaApAQCAtMCwwICsxLDkgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3RpbWV4LmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJKDEwMCAqIEhaKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC91bmNvbXByZXNzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3VuY29tcHJlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmZlMGEyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC91bmNvbXByZXNzLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdW5jb21wcmVzcy5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9yZWcuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tdjc4eHgwLmg+CisKKyNkZWZpbmUgU0VSSUFMX0JBU0UJKCh1bnNpZ25lZCBjaGFyICopVUFSVDBfUEhZU19CQVNFKQorCitzdGF0aWMgdm9pZCBwdXRjKGNvbnN0IGNoYXIgYykKK3sKKwl1bnNpZ25lZCBjaGFyICpiYXNlID0gU0VSSUFMX0JBU0U7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKGJhc2VbVUFSVF9MU1IgPDwgMl0gJiBVQVJUX0xTUl9USFJFKQorCQkJYnJlYWs7CisJCWJhcnJpZXIoKTsKKwl9CisKKwliYXNlW1VBUlRfVFggPDwgMl0gPSBjOworfQorCitzdGF0aWMgdm9pZCBmbHVzaCh2b2lkKQoreworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwl1bnNpZ25lZCBjaGFyIG1hc2s7CisJaW50IGk7CisKKwltYXNrID0gVUFSVF9MU1JfVEVNVCB8IFVBUlRfTFNSX1RIUkU7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKChiYXNlW1VBUlRfTFNSIDw8IDJdICYgbWFzaykgPT0gbWFzaykKKwkJCWJyZWFrOworCQliYXJyaWVyKCk7CisJfQorfQorCisvKgorICogbm90aGluZyB0byBkbworICovCisjZGVmaW5lIGFyY2hfZGVjb21wX3NldHVwKCkKKyNkZWZpbmUgYXJjaF9kZWNvbXBfd2RvZygpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3ZtYWxsb2MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdm1hbGxvYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYzUxMjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3ZtYWxsb2MuaApAQCAtMCwwICsxLDUgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3ZtYWxsb2MuaAorICovCisKKyNkZWZpbmUgVk1BTExPQ19FTkQJMHhmZTAwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MjdhZHMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDI3YWRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFlNjZkYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDI3YWRzLmgKQEAgLTAsMCArMSwzNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNS0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KKworLyoKKyAqIFRoZSBjb2RlIGNvbnRhaW5lZCBoZXJlaW4gaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogVmVyc2lvbiAyIG9yIGxhdGVyIGF0IHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgorICoKKyAqIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UuaHRtbAorICogaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2dwbC5odG1sCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19CT0FSRF9NWDI3QURTX0hfXworI2RlZmluZSBfX0FTTV9BUkNIX01YQ19CT0FSRF9NWDI3QURTX0hfXworCisvKiBleHRlcm5hbCBpbnRlcnJ1cHQgbXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgTVhDX0VYUF9JT19CQVNFCQkoTVhDX0dQSU9fQkFTRSArIE1YQ19NQVhfR1BJT19MSU5FUykKKworI2RlZmluZSBNWENfVklSVFVBTF9JTlRTX0JBU0UJKE1YQ19FWFBfSU9fQkFTRSArIE1YQ19NQVhfRVhQX0lPX0xJTkVTKQorI2RlZmluZSBNWENfU0RJTzFfQ0FSRF9JUlEJTVhDX1ZJUlRVQUxfSU5UU19CQVNFCisjZGVmaW5lIE1YQ19TRElPMl9DQVJEX0lSUQkoTVhDX1ZJUlRVQUxfSU5UU19CQVNFICsgMSkKKyNkZWZpbmUgTVhDX1NESU8zX0NBUkRfSVJRCShNWENfVklSVFVBTF9JTlRTX0JBU0UgKyAyKQorCisjZGVmaW5lIE1YQ19NQVhfQk9BUkRfSU5UUyAgICAgIChNWENfTUFYX0VYUF9JT19MSU5FUyArIFwKKwkJCQlNWENfTUFYX1ZJUlRVQUxfSU5UUykKKworLyoKKyAqIE1YQyBVQVJUIEVWQiBib2FyZCBsZXZlbCBjb25maWd1cmF0aW9ucworICovCisKKyNkZWZpbmUgTVhDX0xMX0VYVFVBUlRfUEFERFIJKENTNF9CQVNFX0FERFIgKyAweDIwMDAwKQorI2RlZmluZSBNWENfTExfRVhUVUFSVF9WQUREUgkoQ1M0X0JBU0VfQUREUl9WSVJUICsgMHgyMDAwMCkKKyNkZWZpbmUgTVhDX0xMX0VYVFVBUlRfMTZCSVRfQlVTCisKKyNkZWZpbmUgTVhDX0xMX1VBUlRfUEFERFIgICAgICAgVUFSVDFfQkFTRV9BRERSCisjZGVmaW5lIE1YQ19MTF9VQVJUX1ZBRERSICAgICAgIEFJUElfSU9fQUREUkVTUyhVQVJUMV9CQVNFX0FERFIpCisKKy8qCisgKiBAbmFtZSBNZW1vcnkgU2l6ZSBwYXJhbWV0ZXJzCisgKi8KKworLyoKKyAqIFNpemUgb2YgU0RSQU0gbWVtb3J5CisgKi8KKyNkZWZpbmUgU0RSQU1fTUVNX1NJWkUgICAgICAgICAgU1pfMTI4TQorCisvKgorICogUEJDIENvbnRyb2xsZXIgcGFyYW1ldGVycworICovCisKKy8qCisgKiBCYXNlIGFkZHJlc3Mgb2YgUEJDIGNvbnRyb2xsZXIsIENTNAorICovCisjZGVmaW5lIFBCQ19CQVNFX0FERFJFU1MgICAgICAgIDB4RUIwMDAwMDAKKyNkZWZpbmUgUEJDX1JFR19BRERSKG9mZnNldCkgICAgKFBCQ19CQVNFX0FERFJFU1MgKyAob2Zmc2V0KSkKKworLyoKKyAqIFBCQyBJbnRlcnVwdCBuYW1lIGRlZmluaXRpb25zCisgKi8KKyNkZWZpbmUgUEJDX0dQSU8xXzAgIDAKKyNkZWZpbmUgUEJDX0dQSU8xXzEgIDEKKyNkZWZpbmUgUEJDX0dQSU8xXzIgIDIKKyNkZWZpbmUgUEJDX0dQSU8xXzMgIDMKKyNkZWZpbmUgUEJDX0dQSU8xXzQgIDQKKyNkZWZpbmUgUEJDX0dQSU8xXzUgIDUKKworI2RlZmluZSBQQkNfSU5UUl9NQVhfTlVNIDYKKyNkZWZpbmUgUEJDX0lOVFJfU0hBUkVEX01BWF9OVU0gOAorCisvKiBXaGVuIHRoZSBQQkMgYWRkcmVzcyBjb25uZWN0aW9uIGlzIGZpeGVkIGluIGgvdywgZGVmaW5lZCBhcyAxICovCisjZGVmaW5lIFBCQ19BRERSX1NIICAgICAgICAgICAgIDAKKworLyogT2Zmc2V0cyBmb3IgdGhlIFBCQyBDb250cm9sbGVyIHJlZ2lzdGVyICovCisvKgorICogUEJDIEJvYXJkIHZlcnNpb24gcmVnaXN0ZXIgb2Zmc2V0CisgKi8KKyNkZWZpbmUgUEJDX1ZFUlNJT05fUkVHICAgICAgICAgUEJDX1JFR19BRERSKDB4MDAwMDAgPj4gUEJDX0FERFJfU0gpCisvKgorICogUEJDIEJvYXJkIGNvbnRyb2wgcmVnaXN0ZXIgMSBzZXQgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkwxX1NFVF9SRUcgICAgICBQQkNfUkVHX0FERFIoMHgwMDAwOCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAxIGNsZWFyIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgUEJDX0JDVFJMMV9DTEVBUl9SRUcgICAgUEJDX1JFR19BRERSKDB4MDAwMEMgPj4gUEJDX0FERFJfU0gpCisvKgorICogUEJDIEJvYXJkIGNvbnRyb2wgcmVnaXN0ZXIgMiBzZXQgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkwyX1NFVF9SRUcgICAgICBQQkNfUkVHX0FERFIoMHgwMDAxMCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAyIGNsZWFyIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgUEJDX0JDVFJMMl9DTEVBUl9SRUcgICAgUEJDX1JFR19BRERSKDB4MDAwMTQgPj4gUEJDX0FERFJfU0gpCisvKgorICogUEJDIEJvYXJkIGNvbnRyb2wgcmVnaXN0ZXIgMyBzZXQgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkwzX1NFVF9SRUcgICAgICBQQkNfUkVHX0FERFIoMHgwMDAxOCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAzIGNsZWFyIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgUEJDX0JDVFJMM19DTEVBUl9SRUcgICAgUEJDX1JFR19BRERSKDB4MDAwMUMgPj4gUEJDX0FERFJfU0gpCisvKgorICogUEJDIEJvYXJkIGNvbnRyb2wgcmVnaXN0ZXIgMyBzZXQgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkw0X1NFVF9SRUcgICAgICBQQkNfUkVHX0FERFIoMHgwMDAyMCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciA0IGNsZWFyIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgUEJDX0JDVFJMNF9DTEVBUl9SRUcgICAgUEJDX1JFR19BRERSKDB4MDAwMjQgPj4gUEJDX0FERFJfU0gpCisvKlBCQ19BRERSX1NICisgKiBQQkMgQm9hcmQgc3RhdHVzIHJlZ2lzdGVyIDEuCisgKi8KKyNkZWZpbmUgUEJDX0JTVEFUMV9SRUcgICAgICAgICAgUEJDX1JFR19BRERSKDB4MDAwMjggPj4gUEJDX0FERFJfU0gpCisvKgorICogUEJDIEJvYXJkIGludGVycnVwdCBzdGF0dXMgcmVnaXN0ZXIuCisgKi8KKyNkZWZpbmUgUEJDX0lOVFNUQVRVU19SRUcgICAgICAgUEJDX1JFR19BRERSKDB4MDAwMkMgPj4gUEJDX0FERFJfU0gpCisvKgorICogUEJDIEJvYXJkIGludGVycnVwdCBjdXJyZW50IHN0YXR1cyByZWdpc3Rlci4KKyAqLworI2RlZmluZSBQQkNfSU5UQ1VSUl9TVEFUVVNfUkVHICBQQkNfUkVHX0FERFIoMHgwMDAzNCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgSW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIgc2V0IGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgUEJDX0lOVE1BU0tfU0VUX1JFRyAgICAgUEJDX1JFR19BRERSKDB4MDAwMzggPj4gUEJDX0FERFJfU0gpCisvKgorICogUEJDIEludGVycnVwdCBtYXNrIHJlZ2lzdGVyIGNsZWFyIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgUEJDX0lOVE1BU0tfQ0xFQVJfUkVHICAgUEJDX1JFR19BRERSKDB4MDAwM0MgPj4gUEJDX0FERFJfU0gpCisvKgorICogRXh0ZXJuYWwgVUFSVCBBLgorICovCisjZGVmaW5lIFBCQ19TQzE2QzY1Ml9VQVJUQV9SRUcgIFBCQ19SRUdfQUREUigweDIwMDAwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFVBUlQgNCBFeHBhbmRpbmcgU2lnbmFsIFN0YXR1cy4KKyAqLworI2RlZmluZSBQQkNfVUFSVF9TVEFUVVNfUkVHICAgICBQQkNfUkVHX0FERFIoMHgyMjAwMCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBVQVJUIDQgRXhwYW5kaW5nIFNpZ25hbCBDb250cm9sIFNldC4KKyAqLworI2RlZmluZSBQQkNfVUNUUkxfU0VUX1JFRyAgICAgICBQQkNfUkVHX0FERFIoMHgyNDAwMCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBVQVJUIDQgRXhwYW5kaW5nIFNpZ25hbCBDb250cm9sIENsZWFyLgorICovCisjZGVmaW5lIFBCQ19VQ1RSTF9DTFJfUkVHICAgICAgIFBCQ19SRUdfQUREUigweDI2MDAwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIEV0aGVybmV0IENvbnRyb2xsZXIgSU8gYmFzZSBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19DUzg5MDBBX0lPQkFTRV9SRUcgIFBCQ19SRUdfQUREUigweDQwMDAwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIEV0aGVybmV0IENvbnRyb2xsZXIgTWVtb3J5IGJhc2UgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQ1M4OTAwQV9NRU1CQVNFX1JFRyBQQkNfUkVHX0FERFIoMHg0MjAwMCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBFdGhlcm5ldCBDb250cm9sbGVyIERNQSBiYXNlIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgUEJDX0NTODkwMEFfRE1BQkFTRV9SRUcgUEJDX1JFR19BRERSKDB4NDQwMDAgPj4gUEJDX0FERFJfU0gpCisKKy8qIFBCQyBCb2FyZCBWZXJzaW9uIFJlZ2lzdGVyIGJpdCBkZWZpbml0aW9uICovCisjZGVmaW5lIFBCQ19WRVJTSU9OX0FEUyAgICAgICAgIDB4ODAwMAkvKiBCaXQxNT0xIG1lYW5zIHZlcnNpb24gZm9yIGFkcyAqLworI2RlZmluZSBQQkNfVkVSU0lPTl9FVkJfUkVWQiAgICAweDQwMDAJLyogQklUMTQ9MSBtZWFucyB2ZXJzaW9uIGZvciBldmIgcmV2YiAqLworCisvKiBQQkMgQm9hcmQgQ29udHJvbCBSZWdpc3RlciAxIGJpdCBkZWZpbml0aW9ucyAqLworI2RlZmluZSBQQkNfQkNUUkwxX0VSU1QgICAgICAgICAweDAwMDEJLyogRXRoZXJuZXQgUmVzZXQgKi8KKyNkZWZpbmUgUEJDX0JDVFJMMV9VUlNUICAgICAgICAgMHgwMDAyCS8qIFJlc2V0IEV4dGVybmFsIFVBUlQgY29udHJvbGxlciAqLworI2RlZmluZSBQQkNfQkNUUkwxX0ZSU1QgICAgICAgICAweDAwMDQJLyogRkVDIFJlc2V0ICovCisjZGVmaW5lIFBCQ19CQ1RSTDFfRVNMRUVQICAgICAgIDB4MDAxMAkvKiBFbmFibGUgZXRoZXJuZXQgU2xlZXAgKi8KKyNkZWZpbmUgUEJDX0JDVFJMMV9MQ0RPTiAgICAgICAgMHgwODAwCS8qIEVuYWJsZSB0aGUgTENEICovCisKKy8qIFBCQyBCb2FyZCBDb250cm9sIFJlZ2lzdGVyIDIgYml0IGRlZmluaXRpb25zICovCisjZGVmaW5lIFBCQ19CQ1RSTDJfVkNDX0VOICAgICAgIDB4MDAwNAkvKiAgIEVuYWJsZSBWQ0MgKi8KKyNkZWZpbmUgUEJDX0JDVFJMMl9WUFBfRU4gICAgICAgMHgwMDA4CS8qICAgRW5hYmxlIFZwcCAqLworI2RlZmluZSBQQkNfQkNUUkwyX0FUQUZFQ19FTiAgICAwWDAwMTAKKyNkZWZpbmUgUEJDX0JDVFJMMl9BVEFGRUNfU0VMICAgMFgwMDIwCisjZGVmaW5lIFBCQ19CQ1RSTDJfQVRBX0VOICAgICAgIDBYMDA0MAorI2RlZmluZSBQQkNfQkNUUkwyX0lSREFfU0QgICAgICAwWDAwODAKKyNkZWZpbmUgUEJDX0JDVFJMMl9JUkRBX0VOICAgICAgMFgwMTAwCisjZGVmaW5lIFBCQ19CQ1RSTDJfQ0NUTDEwICAgICAgIDBYMDIwMAorI2RlZmluZSBQQkNfQkNUUkwyX0NDVEwxMSAgICAgICAwWDA0MDAKKworLyogUEJDIEJvYXJkIENvbnRyb2wgUmVnaXN0ZXIgMyBiaXQgZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgUEJDX0JDVFJMM19IU0hfRU4gICAgICAgMFgwMDIwCisjZGVmaW5lIFBCQ19CQ1RSTDNfRlNIX01PRCAgICAgIDBYMDA0MAorI2RlZmluZSBQQkNfQkNUUkwzX09UR19IU19FTiAgICAwWDAwODAKKyNkZWZpbmUgUEJDX0JDVFJMM19PVEdfVkJVU19FTiAgMFgwMTAwCisjZGVmaW5lIFBCQ19CQ1RSTDNfRlNIX1ZCVVNfRU4gIDBYMDIwMAorI2RlZmluZSBQQkNfQkNUUkwzX1VTQl9PVEdfT04gICAwWDA4MDAKKyNkZWZpbmUgUEJDX0JDVFJMM19VU0JfRlNIX09OICAgMFgxMDAwCisKKy8qIFBCQyBCb2FyZCBDb250cm9sIFJlZ2lzdGVyIDQgYml0IGRlZmluaXRpb25zICovCisjZGVmaW5lIFBCQ19CQ1RSTDRfUkVHRU5fU0VMICAgIDBYMDAwMQorI2RlZmluZSBQQkNfQkNUUkw0X1VTRVJfT0ZGICAgICAwWDAwMDIKKyNkZWZpbmUgUEJDX0JDVFJMNF9WSUJfRU4gICAgICAgMFgwMDA0CisjZGVmaW5lIFBCQ19CQ1RSTDRfUFdSR1QxX0VOICAgIDBYMDAwOAorI2RlZmluZSBQQkNfQkNUUkw0X1BXUkdUMl9FTiAgICAwWDAwMTAKKyNkZWZpbmUgUEJDX0JDVFJMNF9TVERCWV9QUkkgICAgMFgwMDIwCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisvKgorICogRW51bWVyYXRpb25zIGZvciBTRCBjYXJkcyBhbmQgbWVtb3J5IHN0aWNrIGNhcmQuIFRoaXMgY29ycmVzcG9uZHMgdG8KKyAqIHRoZSBjYXJkIEVOIGJpdHMgaW4gdGhlIElNUjogU0QxX0VOIHwgTVNfRU4gfCBTRDNfRU4gfCBTRDJfRU4uCisgKi8KK2VudW0gbXhjX2NhcmRfbm8geworCU1YQ19DQVJEX1NEMiA9IDAsCisJTVhDX0NBUkRfU0QzLAorCU1YQ19DQVJEX01TLAorCU1YQ19DQVJEX1NEMSwKKwlNWENfQ0FSRF9NSU4gPSBNWENfQ0FSRF9TRDIsCisJTVhDX0NBUkRfTUFYID0gTVhDX0NBUkRfU0QxLAorfTsKKyNlbmRpZgorCisjZGVmaW5lIE1YQ19DUExEX1ZFUl8xXzUwICAgICAgIDB4MDEKKworLyoKKyAqIFBCQyBCU1RBVCBSZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBQQkNfQlNUQVRfUFJJX0lOVCAgICAgICAwWDAwMDEKKyNkZWZpbmUgUEJDX0JTVEFUX1VTQl9CWVAgICAgICAgMFgwMDAyCisjZGVmaW5lIFBCQ19CU1RBVF9BVEFfSU9DUzE2ICAgIDBYMDAwNAorI2RlZmluZSBQQkNfQlNUQVRfQVRBX0NCTElEICAgICAwWDAwMDgKKyNkZWZpbmUgUEJDX0JTVEFUX0FUQV9EQVNQICAgICAgMFgwMDEwCisjZGVmaW5lIFBCQ19CU1RBVF9QV1JfUkRZICAgICAgIDBYMDAyMAorI2RlZmluZSBQQkNfQlNUQVRfU0QzX1dQICAgICAgICAwWDAxMDAKKyNkZWZpbmUgUEJDX0JTVEFUX1NEMl9XUCAgICAgICAgMFgwMjAwCisjZGVmaW5lIFBCQ19CU1RBVF9TRDFfV1AgICAgICAgIDBYMDQwMAorI2RlZmluZSBQQkNfQlNUQVRfU0QzX0RFVCAgICAgICAwWDA4MDAKKyNkZWZpbmUgUEJDX0JTVEFUX1NEMl9ERVQgICAgICAgMFgxMDAwCisjZGVmaW5lIFBCQ19CU1RBVF9TRDFfREVUICAgICAgIDBYMjAwMAorI2RlZmluZSBQQkNfQlNUQVRfTVNfREVUICAgICAgICAwWDQwMDAKKyNkZWZpbmUgUEJDX0JTVEFUX1NEM19ERVRfQklUICAgMTEKKyNkZWZpbmUgUEJDX0JTVEFUX1NEMl9ERVRfQklUICAgMTIKKyNkZWZpbmUgUEJDX0JTVEFUX1NEMV9ERVRfQklUICAgMTMKKyNkZWZpbmUgUEJDX0JTVEFUX01TX0RFVF9CSVQgICAgMTQKKyNkZWZpbmUgTVhDX0JTVEFUX0JJVChuKSAgICAgICAgKChuID09IE1YQ19DQVJEX1NEMikgPyBQQkNfQlNUQVRfU0QyX0RFVCA6IFwKKwkJCQkgKChuID09IE1YQ19DQVJEX1NEMykgPyBQQkNfQlNUQVRfU0QzX0RFVCA6IFwKKwkJCQkgKChuID09IE1YQ19DQVJEX1NEMSkgPyBQQkNfQlNUQVRfU0QxX0RFVCA6IFwKKwkJCQkgKChuID09IE1YQ19DQVJEX01TKSA/IFBCQ19CU1RBVF9NU19ERVQgOiBcCisJCQkJCTB4MCkpKSkKKworLyoKKyAqIFBCQyBVQVJUIENvbnRyb2wgUmVnaXN0ZXIgYml0IGRlZmluaXRpb25zCisgKi8KKyNkZWZpbmUgUEJDX1VDVFJMX0RDRV9EQ0QgICAgICAgMFgwMDAxCisjZGVmaW5lIFBCQ19VQ1RSTF9EQ0VfRFNSICAgICAgIDBYMDAwMgorI2RlZmluZSBQQkNfVUNUUkxfRENFX1JJICAgICAgICAwWDAwMDQKKyNkZWZpbmUgUEJDX1VDVFJMX0RURV9EVFIgICAgICAgMFgwMTAwCisKKy8qCisgKiBQQkMgVUFSVCBTdGF0dXMgUmVnaXN0ZXIgYml0IGRlZmluaXRpb25zCisgKi8KKyNkZWZpbmUgUEJDX1VTVEFUX0RURV9EQ0QgICAgICAgMFgwMDAxCisjZGVmaW5lIFBCQ19VU1RBVF9EVEVfRFNSICAgICAgIDBYMDAwMgorI2RlZmluZSBQQkNfVVNUQVRfRFRFX1JJICAgICAgICAwWDAwMDQKKyNkZWZpbmUgUEJDX1VTVEFUX0RDRV9EVFIgICAgICAgMFgwMTAwCisKKy8qCisgKiBQQkMgSW50ZXJ1cHQgbWFzayByZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBQQkNfSU5UUl9TRDNfUl9FTl9CSVQgICA0CisjZGVmaW5lIFBCQ19JTlRSX1NEMl9SX0VOX0JJVCAgIDAKKyNkZWZpbmUgUEJDX0lOVFJfU0QxX1JfRU5fQklUICAgNgorI2RlZmluZSBQQkNfSU5UUl9NU19SX0VOX0JJVCAgICA1CisjZGVmaW5lIFBCQ19JTlRSX1NEM19FTl9CSVQgICAgIDEzCisjZGVmaW5lIFBCQ19JTlRSX1NEMl9FTl9CSVQgICAgIDEyCisjZGVmaW5lIFBCQ19JTlRSX01TX0VOX0JJVCAgICAgIDE0CisjZGVmaW5lIFBCQ19JTlRSX1NEMV9FTl9CSVQgICAgIDE1CisKKyNkZWZpbmUgUEJDX0lOVFJfU0QyX1JfRU4gICAgICAgMHgwMDAxCisjZGVmaW5lIFBCQ19JTlRSX0xPV19CQVQgICAgICAgIDBYMDAwMgorI2RlZmluZSBQQkNfSU5UUl9PVEdfRlNPVkVSICAgICAwWDAwMDQKKyNkZWZpbmUgUEJDX0lOVFJfRlNIX09WRVIgICAgICAgMFgwMDA4CisjZGVmaW5lIFBCQ19JTlRSX1NEM19SX0VOICAgICAgIDB4MDAxMAorI2RlZmluZSBQQkNfSU5UUl9NU19SX0VOICAgICAgICAweDAwMjAKKyNkZWZpbmUgUEJDX0lOVFJfU0QxX1JfRU4gICAgICAgMHgwMDQwCisjZGVmaW5lIFBCQ19JTlRSX0ZFQ19JTlQgICAgICAgIDBYMDA4MAorI2RlZmluZSBQQkNfSU5UUl9FTkVUX0lOVCAgICAgICAwWDAxMDAKKyNkZWZpbmUgUEJDX0lOVFJfT1RHRlNfSU5UICAgICAgMFgwMjAwCisjZGVmaW5lIFBCQ19JTlRSX1hVQVJUX0lOVCAgICAgIDBYMDQwMAorI2RlZmluZSBQQkNfSU5UUl9DQ1RMMTIgICAgICAgICAwWDA4MDAKKyNkZWZpbmUgUEJDX0lOVFJfU0QyX0VOICAgICAgICAgMHgxMDAwCisjZGVmaW5lIFBCQ19JTlRSX1NEM19FTiAgICAgICAgIDB4MjAwMAorI2RlZmluZSBQQkNfSU5UUl9NU19FTiAgICAgICAgICAweDQwMDAKKyNkZWZpbmUgUEJDX0lOVFJfU0QxX0VOICAgICAgICAgMHg4MDAwCisKKworCisvKiBGb3IgaW50ZXJydXB0cyBsaWtlIHh1YXJ0LCBlbmV0IGV0YyAqLworI2RlZmluZSBFWFBJT19QQVJFTlRfSU5UICAgICAgICBJT01VWF9UT19JUlEoTVgyN19QSU5fVElOKQorI2RlZmluZSBNWENfTUFYX0VYUF9JT19MSU5FUyAgICAxNgorCisvKgorICogVGhpcyBjb3JyZXNwb25kcyB0byBQQkNfSU5UTUFTS19TRVRfUkVHIGF0IG9mZnNldCAweDM4LgorICoKKyAqLworI2RlZmluZSBFWFBJT19JTlRfTE9XX0JBVCAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgMSkKKyNkZWZpbmUgRVhQSU9fSU5UX09UR19GU19PVlIgICAgKE1YQ19FWFBfSU9fQkFTRSArIDIpCisjZGVmaW5lIEVYUElPX0lOVF9GU0hfT1ZSICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyAzKQorI2RlZmluZSBFWFBJT19JTlRfUkVTNCAgICAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgNCkKKyNkZWZpbmUgRVhQSU9fSU5UX1JFUzUgICAgICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDUpCisjZGVmaW5lIEVYUElPX0lOVF9SRVM2ICAgICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyA2KQorI2RlZmluZSBFWFBJT19JTlRfRkVDICAgICAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgNykKKyNkZWZpbmUgRVhQSU9fSU5UX0VORVRfSU5UICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDgpCisjZGVmaW5lIEVYUElPX0lOVF9PVEdfRlNfSU5UICAgIChNWENfRVhQX0lPX0JBU0UgKyA5KQorI2RlZmluZSBFWFBJT19JTlRfWFVBUlRfSU5UQSAgICAoTVhDX0VYUF9JT19CQVNFICsgMTApCisjZGVmaW5lIEVYUElPX0lOVF9DQ1RMMTJfSU5UICAgIChNWENfRVhQX0lPX0JBU0UgKyAxMSkKKyNkZWZpbmUgRVhQSU9fSU5UX1NEMl9FTiAgICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDEyKQorI2RlZmluZSBFWFBJT19JTlRfU0QzX0VOICAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgMTMpCisjZGVmaW5lIEVYUElPX0lOVF9NU19FTiAgICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyAxNCkKKyNkZWZpbmUgRVhQSU9fSU5UX1NEMV9FTiAgICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDE1KQorCisvKgorICogVGhpcyBpcyBTeXN0ZW0gSVJRIHVzZWQgYnkgQ1M4OTAwQSBmb3IgaW50ZXJydXB0IGdlbmVyYXRpb24KKyAqIHRha2VuIGZyb20gcGxhdGZvcm0uaAorICovCisjZGVmaW5lIENTODkwMEFJUlEgICAgICAgICAgICAgIEVYUElPX0lOVF9FTkVUX0lOVAorLyogVGhpcyBpcyBJL08gQmFzZSBhZGRyZXNzIHVzZWQgdG8gYWNjZXNzIHJlZ2lzdGVycyBvZiBDUzg5MDBBIG9uIE1YQyBBRFMgKi8KKyNkZWZpbmUgQ1M4OTAwQV9CQVNFX0FERFJFU1MgICAgKFBCQ19DUzg5MDBBX0lPQkFTRV9SRUcgKyAweDMwMCkKKworI2RlZmluZSBNWENfUE1JQ19JTlRfTElORSAgICAgICBJT01VWF9UT19JUlEoTVgyN19QSU5fVE9VVCkKKworLyoKKyogVGhpcyBpcyB1c2VkIHRvIGRldGVjdCBpZiB0aGUgQ1BMRCB2ZXJzaW9uIGlzIGZvciBteDI3IGV2YiBib2FyZCByZXYtYQorKi8KKyNkZWZpbmUgUEJDX0NQTERfVkVSU0lPTl9JU19SRVZBKCkgXAorCSgoX19yYXdfcmVhZHcoUEJDX1ZFUlNJT05fUkVHKSAmIFwKKwkoUEJDX1ZFUlNJT05fQURTIHwgUEJDX1ZFUlNJT05fRVZCX1JFVkIpKVwKKwk9PSAwKQorCisvKiBUaGlzIGlzIHVzZWQgdG8gYWN0aXZlIG9yIGluYWN0aXZlIGF0YSBzaWduYWwgaW4gQ1BMRCAuCisgKiAgSXQgaXMgZGVwZW5kZW50IHdpdGggaGFyZHdhcmUKKyAqLworI2RlZmluZSBQQkNfQVRBX1NJR05BTF9BQ1RJVkUoKSBcCisJX19yYXdfd3JpdGV3KCAgICAgICAgICAgXAorCQlQQkNfQkNUUkwyX0FUQUZFQ19FTnxQQkNfQkNUUkwyX0FUQUZFQ19TRUx8UEJDX0JDVFJMMl9BVEFfRU4sIFwKKwkJUEJDX0JDVFJMMl9DTEVBUl9SRUcpCisKKyNkZWZpbmUgUEJDX0FUQV9TSUdOQUxfSU5BQ1RJVkUoKSBcCisJX19yYXdfd3JpdGV3KCAgXAorCQlQQkNfQkNUUkwyX0FUQUZFQ19FTnxQQkNfQkNUUkwyX0FUQUZFQ19TRUx8UEJDX0JDVFJMMl9BVEFfRU4sIFwKKwkJUEJDX0JDVFJMMl9TRVRfUkVHKQorCisjZGVmaW5lIE1YQ19CRF9MRUQxICAgICAgICAgICAgICgxIDw8IDUpCisjZGVmaW5lIE1YQ19CRF9MRUQyICAgICAgICAgICAgICgxIDw8IDYpCisjZGVmaW5lIE1YQ19CRF9MRURfT04obGVkKSBcCisJX19yYXdfd3JpdGV3KGxlZCwgUEJDX0JDVFJMMV9TRVRfUkVHKQorI2RlZmluZSBNWENfQkRfTEVEX09GRihsZWQpIFwKKwlfX3Jhd193cml0ZXcobGVkLCBQQkNfQkNUUkwxX0NMRUFSX1JFRykKKworLyogdG8gZGV0ZXJtaW5lIHRoZSBjb3JyZWN0IGV4dGVybmFsIGNyeXN0YWwgcmVmZXJlbmNlICovCisjZGVmaW5lIENLSUhfMjdNSFpfQklUX1NFVCAgICAgICgxIDw8IDMpCisKKyNlbmRpZgkJCQkvKiBfX0FTTV9BUkNIX01YQ19CT0FSRF9NWDI3QURTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MzFhZHMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDMxYWRzLmgKaW5kZXggODU5MDEyNy4uMWJjNmZiMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MzFhZHMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtbXgzMWFkcy5oCkBAIC0xMDksNCArMTA5LDkgQEAKIAogI2RlZmluZSBNWENfTUFYX0VYUF9JT19MSU5FUwkxNgogCisvKiBtYW5kYXRvcnkgZm9yIENPTkZJR19MTF9ERUJVRyAqLworCisjZGVmaW5lIE1YQ19MTF9VQVJUX1BBRERSCVVBUlQxX0JBU0VfQUREUgorI2RlZmluZSBNWENfTExfVUFSVF9WQUREUglBSVBTMV9JT19BRERSRVNTKFVBUlQxX0JBU0VfQUREUikKKwogI2VuZGlmIC8qIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMzFBRFNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtbXgzMWxpdGUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDMxbGl0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ZTVjZjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtbXgzMWxpdGUuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IDIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCisvKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMzFMSVRFX0hfXworI2RlZmluZSBfX0FTTV9BUkNIX01YQ19CT0FSRF9NWDMxTElURV9IX18KKworI2RlZmluZSBNWENfTUFYX0VYUF9JT19MSU5FUwkxNgorCisKKy8qCisgKiBNZW1vcnkgU2l6ZSBwYXJhbWV0ZXJzCisgKi8KKworLyoKKyAqIFNpemUgb2YgU0RSQU0gbWVtb3J5CisgKi8KKyNkZWZpbmUgU0RSQU1fTUVNX1NJWkUJCVNaXzEyOE0KKy8qCisgKiBTaXplIG9mIE1CWCBidWZmZXIgbWVtb3J5CisgKi8KKyNkZWZpbmUgTVhDX01CWF9NRU1fU0laRQlTWl8xNk0KKy8qCisgKiBTaXplIG9mIG1lbW9yeSBhdmFpbGFibGUgdG8ga2VybmVsCisgKi8KKyNkZWZpbmUgTUVNX1NJWkUJCShTRFJBTV9NRU1fU0laRSAtIE1YQ19NQlhfTUVNX1NJWkUpCisKKyNkZWZpbmUgTVhDX0xMX1VBUlRfUEFERFIJVUFSVDFfQkFTRV9BRERSCisjZGVmaW5lIE1YQ19MTF9VQVJUX1ZBRERSCUFJUFMxX0lPX0FERFJFU1MoVUFSVDFfQkFTRV9BRERSKQorCisjZW5kaWYgLyogX19BU01fQVJDSF9NWENfQk9BUkRfTVgzMUFEU19IX18gKi8KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLXBjbTAzNy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLXBjbTAzNy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMjMyYmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtcGNtMDM3LmgKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggU2FzY2hhIEhhdWVyLCBQZW5ndXRyb25peAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX1BDTTAzN19IX18KKyNkZWZpbmUgX19BU01fQVJDSF9NWENfQk9BUkRfUENNMDM3X0hfXworCisvKiBtYW5kYXRvcnkgZm9yIENPTkZJR19MTF9ERUJVRyAqLworCisjZGVmaW5lIE1YQ19MTF9VQVJUX1BBRERSCVVBUlQxX0JBU0VfQUREUgorI2RlZmluZSBNWENfTExfVUFSVF9WQUREUglBSVBTMV9JT19BRERSRVNTKFVBUlQxX0JBU0VfQUREUikKKworI2VuZGlmIC8qIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX1BDTTAzN19IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1wY20wMzguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1wY20wMzguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTBjNjJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLXBjbTAzOC5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVlcmdlbiBCZWlzZXJ0IChrZXJuZWxAcGVuZ3V0cm9uaXguZGUpCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19CT0FSRF9QQ00wMzhfSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX1BDTTAzOF9IX18KKworLyogbWFuZGF0b3J5IGZvciBDT05GSUdfTExfREVCVUcgKi8KKworI2RlZmluZSBNWENfTExfVUFSVF9QQUREUglVQVJUMV9CQVNFX0FERFIKKyNkZWZpbmUgTVhDX0xMX1VBUlRfVkFERFIJKEFJUElfQkFTRV9BRERSX1ZJUlQgKyAweDBBMDAwKQorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworLyoKKyAqIFRoaXMgQ1BVIG1vZHVsZSBuZWVkcyBhIGJhc2Vib2FyZCB0byB3b3JrLiBBZnRlciBiYXNpYyBpbml0aWFsaXppbmcKKyAqIGl0cyBvd24gZGV2aWNlcywgaXQgY2FsbHMgYmFzZWJvYXJkJ3MgaW5pdCBmdW5jdGlvbi4KKyAqIFRPRE86IEFkZCB5b3VyIG93biBiYXNlYm9hcmQgaW5pdCBmdW5jdGlvbiBhbmQgY2FsbCBpdCBmcm9tCisgKiBpbnNpZGUgcGNtMDM4X2luaXQoKS4KKyAqCisgKiBUaGlzIGV4YW1wbGUgaGVyZSBpcyBmb3IgdGhlIGRldmVsb3BtZW50IGJvYXJkLiBSZWZlciBwY205NzAtYmFzZWJvYXJkLmMKKyAqLworCitleHRlcm4gdm9pZCBwY205NzBfYmFzZWJvYXJkX2luaXQodm9pZCk7CisKKyNlbmRpZgorCisjZW5kaWYgLyogX19BU01fQVJDSF9NWENfQk9BUkRfUENNMDM4X0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2Nsb2NrLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY2xvY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGNhYTJiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2Nsb2NrLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA1LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NWENfQ0xPQ0tfSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0NMT0NLX0hfXworCisjaWZuZGVmIF9fQVNTRU1CTFlfXworI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKworc3RydWN0IG1vZHVsZTsKKworc3RydWN0IGNsayB7CisJc3RydWN0IGxpc3RfaGVhZCBub2RlOworCXN0cnVjdCBtb2R1bGUgKm93bmVyOworCWNvbnN0IGNoYXIgKm5hbWU7CisJaW50IGlkOworCS8qIFNvdXJjZSBjbG9jayB0aGlzIGNsayBkZXBlbmRzIG9uICovCisJc3RydWN0IGNsayAqcGFyZW50OworCS8qIFNlY29uZGFyeSBjbG9jayB0byBlbmFibGUvZGlzYWJsZSB3aXRoIHRoaXMgY2xvY2sgKi8KKwlzdHJ1Y3QgY2xrICpzZWNvbmRhcnk7CisJLyogUmVmZXJlbmNlIGNvdW50IG9mIGNsb2NrIGVuYWJsZS9kaXNhYmxlICovCisJX19zOCB1c2Vjb3VudDsKKwkvKiBSZWdpc3RlciBiaXQgcG9zaXRpb24gZm9yIGNsb2NrJ3MgZW5hYmxlL2Rpc2FibGUgY29udHJvbC4gKi8KKwl1OCBlbmFibGVfc2hpZnQ7CisJLyogUmVnaXN0ZXIgYWRkcmVzcyBmb3IgY2xvY2sncyBlbmFibGUvZGlzYWJsZSBjb250cm9sLiAqLworCXUzMiBlbmFibGVfcmVnOworCXUzMiBmbGFnczsKKwkvKiBnZXQgdGhlIGN1cnJlbnQgY2xvY2sgcmF0ZSAoYWx3YXlzIGEgZnJlc2ggdmFsdWUpICovCisJdW5zaWduZWQgbG9uZyAoKmdldF9yYXRlKSAoc3RydWN0IGNsayAqKTsKKwkvKiBGdW5jdGlvbiBwdHIgdG8gc2V0IHRoZSBjbG9jayB0byBhIG5ldyByYXRlLiBUaGUgcmF0ZSBtdXN0IG1hdGNoIGEKKwkgICBzdXBwb3J0ZWQgcmF0ZSByZXR1cm5lZCBmcm9tIHJvdW5kX3JhdGUuIExlYXZlIGJsYW5rIGlmIGNsb2NrIGlzIG5vdAorCSAgIHByb2dyYW1tYWJsZSAqLworCWludCAoKnNldF9yYXRlKSAoc3RydWN0IGNsayAqLCB1bnNpZ25lZCBsb25nKTsKKwkvKiBGdW5jdGlvbiBwdHIgdG8gcm91bmQgdGhlIHJlcXVlc3RlZCBjbG9jayByYXRlIHRvIHRoZSBuZWFyZXN0CisJICAgc3VwcG9ydGVkIHJhdGUgdGhhdCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJlcXVlc3RlZCByYXRlLiAqLworCXVuc2lnbmVkIGxvbmcgKCpyb3VuZF9yYXRlKSAoc3RydWN0IGNsayAqLCB1bnNpZ25lZCBsb25nKTsKKwkvKiBGdW5jdGlvbiBwdHIgdG8gZW5hYmxlIHRoZSBjbG9jay4gTGVhdmUgYmxhbmsgaWYgY2xvY2sgY2FuIG5vdAorCSAgIGJlIGdhdGVkLiAqLworCWludCAoKmVuYWJsZSkgKHN0cnVjdCBjbGsgKik7CisJLyogRnVuY3Rpb24gcHRyIHRvIGRpc2FibGUgdGhlIGNsb2NrLiBMZWF2ZSBibGFuayBpZiBjbG9jayBjYW4gbm90CisJICAgYmUgZ2F0ZWQuICovCisJdm9pZCAoKmRpc2FibGUpIChzdHJ1Y3QgY2xrICopOworCS8qIEZ1bmN0aW9uIHB0ciB0byBzZXQgdGhlIHBhcmVudCBjbG9jayBvZiB0aGUgY2xvY2suICovCisJaW50ICgqc2V0X3BhcmVudCkgKHN0cnVjdCBjbGsgKiwgc3RydWN0IGNsayAqKTsKK307CisKK2ludCBjbGtfcmVnaXN0ZXIoc3RydWN0IGNsayAqY2xrKTsKK3ZvaWQgY2xrX3VucmVnaXN0ZXIoc3RydWN0IGNsayAqY2xrKTsKKworI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLworI2VuZGlmIC8qIF9fQVNNX0FSQ0hfTVhDX0NMT0NLX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2NvbW1vbi5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2NvbW1vbi5oCmluZGV4IDIzYjQzNTAuLmE2ZDJlMjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9jb21tb24uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY29tbW9uLmgKQEAgLTExLDEwICsxMSwxMCBAQAogI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19DT01NT05fSF9fCiAjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0NPTU1PTl9IX18KIAotc3RydWN0IHN5c190aW1lcjsKLQogZXh0ZXJuIHZvaWQgbXhjX21hcF9pbyh2b2lkKTsKIGV4dGVybiB2b2lkIG14Y19pbml0X2lycSh2b2lkKTsKLWV4dGVybiBzdHJ1Y3Qgc3lzX3RpbWVyIG14Y190aW1lcjsKK2V4dGVybiB2b2lkIG14Y190aW1lcl9pbml0KGNvbnN0IGNoYXIgKmNsa190aW1lcik7CitleHRlcm4gaW50IG14Y19jbG9ja3NfaW5pdCh1bnNpZ25lZCBsb25nIGZyZWYpOworZXh0ZXJuIGludCBteGNfcmVnaXN0ZXJfZ3Bpb3Modm9pZCk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2RlYnVnLW1hY3JvLlMgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZGVidWctbWFjcm8uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzUwODdmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2RlYnVnLW1hY3JvLlMKQEAgLTAsMCArMSw0OSBAQAorLyogbGludXgvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2RlYnVnLW1hY3JvLlMKKyAqCisgKiBEZWJ1Z2dpbmcgbWFjcm8gaW5jbHVkZSBoZWFkZXIKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAxOTk0LTE5OTkgUnVzc2VsbCBLaW5nCisgKiAgTW92ZWQgZnJvbSBsaW51eC9hcmNoL2FybS9rZXJuZWwvZGVidWcuUyBieSBCZW4gRG9va3MKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KKworI2lmZGVmIENPTkZJR19NQUNIX01YMzFBRFMKKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1teDMxYWRzLmg+CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfTUFDSF9QQ00wMzcKKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1wY20wMzcuaD4KKyNlbmRpZgorI2lmZGVmIENPTkZJR19NQUNIX01YMzFMSVRFCisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQtbXgzMWxpdGUuaD4KKyNlbmRpZgorI2lmZGVmIENPTkZJR19NQUNIX01YMjdBRFMKKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1teDI3YWRzLmg+CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfTUFDSF9QQ00wMzgKKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1wY20wMzguaD4KKyNlbmRpZgorCQkubWFjcm8JYWRkcnVhcnQscngKKwkJbXJjCXAxNSwgMCwgXHJ4LCBjMSwgYzAKKwkJdHN0CVxyeCwgIzEJCQlAIE1NVSBlbmFibGVkPworCQlsZHJlcQlccngsID1NWENfTExfVUFSVF9QQUREUglAIHBoeXNpY2FsCisJCWxkcm5lCVxyeCwgPU1YQ19MTF9VQVJUX1ZBRERSCUAgdmlydHVhbAorCQkuZW5kbQorCisJCS5tYWNybwlzZW5kdWFydCxyZCxyeAorCQlzdHIJXHJkLCBbXHJ4LCAjMHg0MF0JQCBUWERBVEEKKwkJLmVuZG0KKworCQkubWFjcm8Jd2FpdHVhcnQscmQscngKKwkJLmVuZG0KKworCQkubWFjcm8JYnVzeXVhcnQscmQscngKKzEwMDI6CQlsZHIJXHJkLCBbXHJ4LCAjMHg5OF0JQCBTUjIKKwkJdHN0CVxyZCwgIzEgPDwgMwkJQCBUWERDCisJCWJlcQkxMDAyYgkJCUAgd2FpdCB1bnRpbCB0cmFuc21pdCBkb25lCisJCS5lbmRtCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZ3Bpby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2dwaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzkzZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2dwaW8uaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IDIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19HUElPX0hfXworI2RlZmluZSBfX0FTTV9BUkNIX01YQ19HUElPX0hfXworCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvZ3Bpby5oPgorCisvKiB1c2UgZ3Bpb2xpYiBkaXNwYXRjaGVycyAqLworI2RlZmluZSBncGlvX2dldF92YWx1ZQkJX19ncGlvX2dldF92YWx1ZQorI2RlZmluZSBncGlvX3NldF92YWx1ZQkJX19ncGlvX3NldF92YWx1ZQorI2RlZmluZSBncGlvX2NhbnNsZWVwCQlfX2dwaW9fY2Fuc2xlZXAKKworI2RlZmluZSBncGlvX3RvX2lycShncGlvKQkoTVhDX01BWF9JTlRfTElORVMgKyAoZ3BpbykpCisjZGVmaW5lIGlycV90b19ncGlvKGlycSkJKChpcnEpIC0gTVhDX01BWF9JTlRfTElORVMpCisKK3N0cnVjdCBteGNfZ3Bpb19wb3J0IHsKKwl2b2lkIF9faW9tZW0gKmJhc2U7CisJaW50IGlycTsKKwlpbnQgdmlydHVhbF9pcnFfc3RhcnQ7CisJc3RydWN0IGdwaW9fY2hpcCBjaGlwOworfTsKKworaW50IG14Y19ncGlvX2luaXQoc3RydWN0IG14Y19ncGlvX3BvcnQqLCBpbnQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9oYXJkd2FyZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2hhcmR3YXJlLmgKaW5kZXggZTg3ZmYwNi4uMzdjZGRiYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2hhcmR3YXJlLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2hhcmR3YXJlLmgKQEAgLTEsMTEgKzEsMjAgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICovCi0KLS8qCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BICAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAogI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19IQVJEV0FSRV9IX18KQEAgLTE3LDE1ICsyNiwxMiBAQAogIyBpbmNsdWRlIDxhc20vYXJjaC9teDMxLmg+CiAjZW5kaWYKIAotI2luY2x1ZGUgPGFzbS9hcmNoL214Yy5oPgotCi0vKgotICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBCb2FyZCBzcGVjaWZpYyBkZWZpbmVzCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwotI2lmZGVmIENPTkZJR19NQUNIX01YMzFBRFMKLSMgaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQtbXgzMWFkcy5oPgorI2lmZGVmIENPTkZJR19BUkNIX01YMgorIyBpZmRlZiBDT05GSUdfTUFDSF9NWDI3CisjICBpbmNsdWRlIDxhc20vYXJjaC9teDI3Lmg+CisjIGVuZGlmCiAjZW5kaWYKIAorI2luY2x1ZGUgPGFzbS9hcmNoL214Yy5oPgorCiAjZW5kaWYgLyogX19BU01fQVJDSF9NWENfSEFSRFdBUkVfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaWltLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaWltLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE1YmZmYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9paW0uaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19JSU1fSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0lJTV9IX18KKworLyogUmVnaXN0ZXIgb2Zmc2V0cyAqLworI2RlZmluZSBNWENfSUlNU1RBVCAgICAgICAgICAgICAweDAwMDAKKyNkZWZpbmUgTVhDX0lJTVNUQVRNICAgICAgICAgICAgMHgwMDA0CisjZGVmaW5lIE1YQ19JSU1FUlIgICAgICAgICAgICAgIDB4MDAwOAorI2RlZmluZSBNWENfSUlNRU1BU0sgICAgICAgICAgICAweDAwMEMKKyNkZWZpbmUgTVhDX0lJTUZDVEwgICAgICAgICAgICAgMHgwMDEwCisjZGVmaW5lIE1YQ19JSU1VQSAgICAgICAgICAgICAgIDB4MDAxNAorI2RlZmluZSBNWENfSUlNTEEgICAgICAgICAgICAgICAweDAwMTgKKyNkZWZpbmUgTVhDX0lJTVNEQVQgICAgICAgICAgICAgMHgwMDFDCisjZGVmaW5lIE1YQ19JSU1QUkVWICAgICAgICAgICAgIDB4MDAyMAorI2RlZmluZSBNWENfSUlNU1JFViAgICAgICAgICAgICAweDAwMjQKKyNkZWZpbmUgTVhDX0lJTVBSR19QICAgICAgICAgICAgMHgwMDI4CisjZGVmaW5lIE1YQ19JSU1TQ1MwICAgICAgICAgICAgIDB4MDAyQworI2RlZmluZSBNWENfSUlNU0NTMSAgICAgICAgICAgICAweDAwMzAKKyNkZWZpbmUgTVhDX0lJTVNDUzIgICAgICAgICAgICAgMHgwMDM0CisjZGVmaW5lIE1YQ19JSU1TQ1MzICAgICAgICAgICAgIDB4MDAzOAorI2RlZmluZSBNWENfSUlNRkJBQzAgICAgICAgICAgICAweDA4MDAKKyNkZWZpbmUgTVhDX0lJTUpBQyAgICAgICAgICAgICAgMHgwODA0CisjZGVmaW5lIE1YQ19JSU1IV1YxICAgICAgICAgICAgIDB4MDgwOAorI2RlZmluZSBNWENfSUlNSFdWMiAgICAgICAgICAgICAweDA4MEMKKyNkZWZpbmUgTVhDX0lJTUhBQjAgICAgICAgICAgICAgMHgwODEwCisjZGVmaW5lIE1YQ19JSU1IQUIxICAgICAgICAgICAgIDB4MDgxNAorLyogRGVmaW5pdGlvbnMgZm9yIGkuTVgyNyBUTzIgKi8KKyNkZWZpbmUgTVhDX0lJTU1BQyAgICAgICAgICAgICAgMHgwODE0CisjZGVmaW5lIE1YQ19JSU1QUkVWX0ZVU0UgICAgICAgIDB4MDgxOAorI2RlZmluZSBNWENfSUlNU1JFVl9GVVNFICAgICAgICAweDA4MUMKKyNkZWZpbmUgTVhDX0lJTVNKQ19DSEFMTF8wICAgICAgMHgwODIwCisjZGVmaW5lIE1YQ19JSU1TSkNfQ0hBTExfNyAgICAgIDB4MDgzQworI2RlZmluZSBNWENfSUlNRkIwVUMxNyAgICAgICAgICAweDA4NDAKKyNkZWZpbmUgTVhDX0lJTUZCMFVDMjU1ICAgICAgICAgMHgwQkZDCisjZGVmaW5lIE1YQ19JSU1GQkFDMSAgICAgICAgICAgIDB4MEMwMAorLyogRGVmaW5pdGlvbnMgZm9yIGkuTVgyNyBUTzIgKi8KKyNkZWZpbmUgTVhDX0lJTVNVSUQgICAgICAgICAgICAgMHgwQzA0CisjZGVmaW5lIE1YQ19JSU1LRVkwICAgICAgICAgICAgIDB4MEMwNAorI2RlZmluZSBNWENfSUlNS0VZMjAgICAgICAgICAgICAweDBDNTQKKyNkZWZpbmUgTVhDX0lJTVNKQ19SRVNQXzAgICAgICAgMHgwQzU4CisjZGVmaW5lIE1YQ19JSU1TSkNfUkVTUF83ICAgICAgIDB4MEM3NAorI2RlZmluZSBNWENfSUlNRkIxVUMzMCAgICAgICAgICAweDBDNzgKKyNkZWZpbmUgTVhDX0lJTUZCMVVDMjU1ICAgICAgICAgMHgwRkZDCisKKy8qIEJpdCBkZWZpbml0aW9ucyAqLworCisjZGVmaW5lIE1YQ19JSU1IV1YxX1dMT0NLICAgICAgICAgICAgICAgKDB4MSA8PCA3KQorI2RlZmluZSBNWENfSUlNSFdWMV9NQ1VfRU5ESUFOICAgICAgICAgICgweDEgPDwgNikKKyNkZWZpbmUgTVhDX0lJTUhXVjFfRFNQX0VORElBTiAgICAgICAgICAoMHgxIDw8IDUpCisjZGVmaW5lIE1YQ19JSU1IV1YxX0JPT1RfSU5UICAgICAgICAgICAgKDB4MSA8PCA0KQorI2RlZmluZSBNWENfSUlNSFdWMV9TQ0NfRElTQUJMRSAgICAgICAgICgweDEgPDwgMykKKyNkZWZpbmUgTVhDX0lJTUhXVjFfSEFOVFJPX0RJU0FCTEUgICAgICAoMHgxIDw8IDIpCisjZGVmaW5lIE1YQ19JSU1IV1YxX01FTVNUSUNLX0RJUyAgICAgICAgKDB4MSA8PCAxKQorCisjZGVmaW5lIE1YQ19JSU1IV1YyX1dMT0NLICAgICAgICAgICAgICAgKDB4MSA8PCA3KQorI2RlZmluZSBNWENfSUlNSFdWMl9CUF9TRE1BICAgICAgICAgICAgICgweDEgPDwgNikKKyNkZWZpbmUgTVhDX0lJTUhXVjJfU0NNX0RDTSAgICAgICAgICAgICAoMHgxIDw8IDUpCisKKyNlbmRpZiAvKiBfX0FTTV9BUkNIX01YQ19JSU1fSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW14LXVhcnQuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pbXgtdWFydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZmI3MmM0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lteC11YXJ0LmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBieSBTYXNjaGEgSGF1ZXIgPGtlcm5lbEBwZW5ndXRyb25peC5kZT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEFTTUFSTV9BUkNIX1VBUlRfSAorI2RlZmluZSBBU01BUk1fQVJDSF9VQVJUX0gKKworI2RlZmluZSBJTVhVQVJUX0hBVkVfUlRTQ1RTICgxPDwwKQorCitzdHJ1Y3QgaW14dWFydF9wbGF0Zm9ybV9kYXRhIHsKKwlpbnQgKCppbml0KShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKKwlpbnQgKCpleGl0KShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7Cit9OworCitpbnQgX19pbml0IGlteF9pbml0X3VhcnQoaW50IHVhcnRfbm8sIHN0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgKnBkYXRhKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW9tdXgtbXgxLW14Mi5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lvbXV4LW14MS1teDIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzZkMzdiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lvbXV4LW14MS1teDIuaApAQCAtMCwwICsxLDM3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBieSBTYXNjaGEgSGF1ZXIgPGtlcm5lbEBwZW5ndXRyb25peC5kZT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9NWENfR1BJT19NWDFfTVgyX0gKKyNkZWZpbmUgX01YQ19HUElPX01YMV9NWDJfSAorCisjaW5jbHVkZSA8bGludXgvaW8uaD4KKworI2RlZmluZSBNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTAkwCisjZGVmaW5lIE1YQ19HUElPX0FMTE9DX01PREVfTk9fQUxMT0MJMQorI2RlZmluZSBNWENfR1BJT19BTExPQ19NT0RFX1RSWV9BTExPQwkyCisjZGVmaW5lIE1YQ19HUElPX0FMTE9DX01PREVfQUxMT0NfT05MWQk0CisjZGVmaW5lIE1YQ19HUElPX0FMTE9DX01PREVfUkVMRUFTRQk4CisKKy8qCisgKiAgR1BJTyBNb2R1bGUgYW5kIEkvTyBNdWx0aXBsZXhlcgorICogIHggPSAwLi4zIGZvciByZWdfQSwgcmVnX0IsIHJlZ19DLCByZWdfRAorICovCisjZGVmaW5lIFZBX0dQSU9fQkFTRQlJT19BRERSRVNTKEdQSU9fQkFTRV9BRERSKQorI2RlZmluZSBNWENfRERJUih4KSAgICAoMHgwMCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19PQ1IxKHgpICAgICgweDA0ICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX09DUjIoeCkgICAgKDB4MDggKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfSUNPTkZBMSh4KSAoMHgwYyArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19JQ09ORkEyKHgpICgweDEwICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0lDT05GQjEoeCkgKDB4MTQgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfSUNPTkZCMih4KSAoMHgxOCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19EUih4KSAgICAgICgweDFjICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0dJVVMoeCkgICAgKDB4MjAgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfU1NSKHgpICAgICAoMHgyNCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19JQ1IxKHgpICAgICgweDI4ICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0lDUjIoeCkgICAgKDB4MmMgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfSU1SKHgpICAgICAoMHgzMCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19JU1IoeCkgICAgICgweDM0ICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0dQUih4KSAgICAgKDB4MzggKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfU1dSKHgpICAgICAoMHgzYyArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19QVUVOKHgpICAgICgweDQwICsgKCh4KSA8PCA4KSkKKworI2lmZGVmIENPTkZJR19BUkNIX01YMQorIyBkZWZpbmUgR1BJT19QT1JUX01BWCAgMworI2VuZGlmCisjaWZkZWYgQ09ORklHX0FSQ0hfTVgyCisjIGRlZmluZSBHUElPX1BPUlRfTUFYICA1CisjZW5kaWYKKworI2lmbmRlZiBHUElPX1BPUlRfTUFYCisjIGVycm9yICJHUElPIGNvbmZpZyBwb3J0IGNvdW50IHVua25vd24hIgorI2VuZGlmCisKKyNkZWZpbmUgR1BJT19QSU5fTUFTSyAweDFmCisKKyNkZWZpbmUgR1BJT19QT1JUX1NISUZUIDUKKyNkZWZpbmUgR1BJT19QT1JUX01BU0sgKDB4NyA8PCBHUElPX1BPUlRfU0hJRlQpCisKKyNkZWZpbmUgR1BJT19QT1JUQSAoMCA8PCBHUElPX1BPUlRfU0hJRlQpCisjZGVmaW5lIEdQSU9fUE9SVEIgKDEgPDwgR1BJT19QT1JUX1NISUZUKQorI2RlZmluZSBHUElPX1BPUlRDICgyIDw8IEdQSU9fUE9SVF9TSElGVCkKKyNkZWZpbmUgR1BJT19QT1JURCAoMyA8PCBHUElPX1BPUlRfU0hJRlQpCisjZGVmaW5lIEdQSU9fUE9SVEUgKDQgPDwgR1BJT19QT1JUX1NISUZUKQorI2RlZmluZSBHUElPX1BPUlRGICg1IDw8IEdQSU9fUE9SVF9TSElGVCkKKworI2RlZmluZSBHUElPX09VVCAgICgxIDw8IDgpCisjZGVmaW5lIEdQSU9fSU4gICAgKDAgPDwgOCkKKyNkZWZpbmUgR1BJT19QVUVOICAoMSA8PCA5KQorCisjZGVmaW5lIEdQSU9fUEYgICAgKDEgPDwgMTApCisjZGVmaW5lIEdQSU9fQUYgICAgKDEgPDwgMTEpCisKKyNkZWZpbmUgR1BJT19PQ1JfU0hJRlQgMTIKKyNkZWZpbmUgR1BJT19PQ1JfTUFTSyAoMyA8PCBHUElPX09DUl9TSElGVCkKKyNkZWZpbmUgR1BJT19BSU4gICAoMCA8PCBHUElPX09DUl9TSElGVCkKKyNkZWZpbmUgR1BJT19CSU4gICAoMSA8PCBHUElPX09DUl9TSElGVCkKKyNkZWZpbmUgR1BJT19DSU4gICAoMiA8PCBHUElPX09DUl9TSElGVCkKKyNkZWZpbmUgR1BJT19HUElPICAoMyA8PCBHUElPX09DUl9TSElGVCkKKworI2RlZmluZSBHUElPX0FPVVRfU0hJRlQgMTQKKyNkZWZpbmUgR1BJT19BT1VUX01BU0sgKDMgPDwgR1BJT19BT1VUX1NISUZUKQorI2RlZmluZSBHUElPX0FPVVQgICAgICgwIDw8IEdQSU9fQU9VVF9TSElGVCkKKyNkZWZpbmUgR1BJT19BT1VUX0lTUiAoMSA8PCBHUElPX0FPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQU9VVF8wICAgKDIgPDwgR1BJT19BT1VUX1NISUZUKQorI2RlZmluZSBHUElPX0FPVVRfMSAgICgzIDw8IEdQSU9fQU9VVF9TSElGVCkKKworI2RlZmluZSBHUElPX0JPVVRfU0hJRlQgMTYKKyNkZWZpbmUgR1BJT19CT1VUX01BU0sgKDMgPDwgR1BJT19CT1VUX1NISUZUKQorI2RlZmluZSBHUElPX0JPVVQgICAgICAoMCA8PCBHUElPX0JPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQk9VVF9JU1IgICgxIDw8IEdQSU9fQk9VVF9TSElGVCkKKyNkZWZpbmUgR1BJT19CT1VUXzAgICAgKDIgPDwgR1BJT19CT1VUX1NISUZUKQorI2RlZmluZSBHUElPX0JPVVRfMSAgICAoMyA8PCBHUElPX0JPVVRfU0hJRlQpCisKK2V4dGVybiB2b2lkIG14Y19ncGlvX21vZGUoaW50IGdwaW9fbW9kZSk7CitleHRlcm4gaW50IG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMoY29uc3QgaW50ICpwaW5fbGlzdCwgdW5zaWduZWQgY291bnQsCisJCQkJCWludCBhbGxvY19tb2RlLCBjb25zdCBjaGFyICpsYWJlbCk7CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIGFzc2lnbmVtZW50cyBmb3IgR1BJTyBhbHRlcm5hdGUvcHJpbWFyeSBmdW5jdGlvbnMgKi8KKworLyogRklYTUU6IFRoaXMgbGlzdCBpcyBub3QgY29tcGxldGVkLiBUaGUgY29ycmVjdCBkaXJlY3Rpb25zIGFyZQorICogbWlzc2luZyBvbiBzb21lIChtYW55KSBwaW5zCisgKi8KKyNpZmRlZiBDT05GSUdfQVJDSF9NWDEKKyNkZWZpbmUgUEEwX0FJTl9TUEkyX0NMSyAgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IDApCisjZGVmaW5lIFBBMF9BRl9FVE1UUkFDRVNZTkMgIChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDApCisjZGVmaW5lIFBBMV9BT1VUX1NQSTJfUlhEICAgIChHUElPX0dJVVMgfCBHUElPX1BPUlRBIHwgR1BJT19JTiB8IDEpCisjZGVmaW5lIFBBMV9QRl9USU4gICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDEpCisjZGVmaW5lIFBBMl9QRl9QV00wICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMikKKyNkZWZpbmUgUEEzX1BGX0NTSV9NQ0xLICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMykKKyNkZWZpbmUgUEE0X1BGX0NTSV9EMCAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgNCkKKyNkZWZpbmUgUEE1X1BGX0NTSV9EMSAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgNSkKKyNkZWZpbmUgUEE2X1BGX0NTSV9EMiAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgNikKKyNkZWZpbmUgUEE3X1BGX0NTSV9EMyAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgNykKKyNkZWZpbmUgUEE4X1BGX0NTSV9ENCAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgOCkKKyNkZWZpbmUgUEE5X1BGX0NTSV9ENSAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgOSkKKyNkZWZpbmUgUEExMF9QRl9DU0lfRDYgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMTApCisjZGVmaW5lIFBBMTFfUEZfQ1NJX0Q3ICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDExKQorI2RlZmluZSBQQTEyX1BGX0NTSV9WU1lOQyAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAxMikKKyNkZWZpbmUgUEExM19QRl9DU0lfSFNZTkMgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMTMpCisjZGVmaW5lIFBBMTRfUEZfQ1NJX1BJWENMSyAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDE0KQorI2RlZmluZSBQQTE1X1BGX0kyQ19TREEgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE1KQorI2RlZmluZSBQQTE2X1BGX0kyQ19TQ0wgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE2KQorI2RlZmluZSBQQTE3X0FGX0VUTVRSQUNFUEtUNCAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAxNykKKyNkZWZpbmUgUEExN19BSU5fU1BJMl9TUyAgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IDE3KQorI2RlZmluZSBQQTE4X0FGX0VUTVRSQUNFUEtUNSAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAxOCkKKyNkZWZpbmUgUEExOV9BRl9FVE1UUkFDRVBLVDYgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMTkpCisjZGVmaW5lIFBBMjBfQUZfRVRNVFJBQ0VQS1Q3IChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDIwKQorI2RlZmluZSBQQTIxX1BGX0EwICAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAyMSkKKyNkZWZpbmUgUEEyMl9QRl9DUzQgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMjIpCisjZGVmaW5lIFBBMjNfUEZfQ1M1ICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDIzKQorI2RlZmluZSBQQTI0X1BGX0ExNiAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAyNCkKKyNkZWZpbmUgUEEyNF9BRl9FVE1UUkFDRVBLVDAgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMjQpCisjZGVmaW5lIFBBMjVfUEZfQTE3ICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDI1KQorI2RlZmluZSBQQTI1X0FGX0VUTVRSQUNFUEtUMSAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAyNSkKKyNkZWZpbmUgUEEyNl9QRl9BMTggICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMjYpCisjZGVmaW5lIFBBMjZfQUZfRVRNVFJBQ0VQS1QyIChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDI2KQorI2RlZmluZSBQQTI3X1BGX0ExOSAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAyNykKKyNkZWZpbmUgUEEyN19BRl9FVE1UUkFDRVBLVDMgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMjcpCisjZGVmaW5lIFBBMjhfUEZfQTIwICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDI4KQorI2RlZmluZSBQQTI4X0FGX0VUTVBJUEVTVEFUMCAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAyOCkKKyNkZWZpbmUgUEEyOV9QRl9BMjEgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMjkpCisjZGVmaW5lIFBBMjlfQUZfRVRNUElQRVNUQVQxIChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDI5KQorI2RlZmluZSBQQTMwX1BGX0EyMiAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAzMCkKKyNkZWZpbmUgUEEzMF9BRl9FVE1QSVBFU1RBVDIgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMzApCisjZGVmaW5lIFBBMzFfUEZfQTIzICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDMxKQorI2RlZmluZSBQQTMxX0FGX0VUTVRSQUNFQ0xLICAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAzMSkKKyNkZWZpbmUgUEI4X1BGX1NEX0RBVDAgICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgR1BJT19QVUVOIHwgOCkKKyNkZWZpbmUgUEI4X0FGX01TX1BJTyAgICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgOCkKKyNkZWZpbmUgUEI5X1BGX1NEX0RBVDEgICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgR1BJT19QVUVOICB8IDkpCisjZGVmaW5lIFBCOV9BRl9NU19QSTEgICAgICAgIChHUElPX1BPUlRCIHwgR1BJT19BRiB8IDkpCisjZGVmaW5lIFBCMTBfUEZfU0RfREFUMiAgICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IEdQSU9fUFVFTiAgfCAxMCkKKyNkZWZpbmUgUEIxMF9BRl9NU19TQ0xLSSAgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgMTApCisjZGVmaW5lIFBCMTFfUEZfU0RfREFUMyAgICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDExKQorI2RlZmluZSBQQjExX0FGX01TX1NESU8gICAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCAxMSkKKyNkZWZpbmUgUEIxMl9QRl9TRF9DTEsgICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMTIpCisjZGVmaW5lIFBCMTJfQUZfTVNfU0NMSzAgICAgIChHUElPX1BPUlRCIHwgR1BJT19BRiB8IDEyKQorI2RlZmluZSBQQjEzX1BGX1NEX0NNRCAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCBHUElPX1BVRU4gfCAxMykKKyNkZWZpbmUgUEIxM19BRl9NU19CUyAgICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgMTMpCisjZGVmaW5lIFBCMTRfQUZfU1NJX1JYRlMgICAgIChHUElPX1BPUlRCIHwgR1BJT19BRiB8IDE0KQorI2RlZmluZSBQQjE1X0FGX1NTSV9SWENMSyAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCAxNSkKKyNkZWZpbmUgUEIxNl9BRl9TU0lfUlhEQVQgICAgKEdQSU9fUE9SVEIgfCBHUElPX0lOIHwgR1BJT19BRiB8IDE2KQorI2RlZmluZSBQQjE3X0FGX1NTSV9UWERBVCAgICAoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDE3KQorI2RlZmluZSBQQjE4X0FGX1NTSV9UWEZTICAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCAxOCkKKyNkZWZpbmUgUEIxOV9BRl9TU0lfVFhDTEsgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgMTkpCisjZGVmaW5lIFBCMjBfUEZfVVNCRF9BRkUgICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDIwKQorI2RlZmluZSBQQjIxX1BGX1VTQkRfT0UgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCAyMSkKKyNkZWZpbmUgUEIyMl9QRlVTQkRfUkNWICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMjIpCisjZGVmaW5lIFBCMjNfUEZfVVNCRF9TVVNQTkQgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDIzKQorI2RlZmluZSBQQjI0X1BGX1VTQkRfVlAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCAyNCkKKyNkZWZpbmUgUEIyNV9QRl9VU0JEX1ZNICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMjUpCisjZGVmaW5lIFBCMjZfUEZfVVNCRF9WUE8gICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDI2KQorI2RlZmluZSBQQjI3X1BGX1VTQkRfVk1PICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCAyNykKKyNkZWZpbmUgUEIyOF9QRl9VQVJUMl9DVFMgICAgKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyOCkKKyNkZWZpbmUgUEIyOV9QRl9VQVJUMl9SVFMgICAgKEdQSU9fUE9SVEIgfCBHUElPX0lOIHwgR1BJT19QRiB8IDI5KQorI2RlZmluZSBQQjMwX1BGX1VBUlQyX1RYRCAgICAoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDMwKQorI2RlZmluZSBQQjMxX1BGX1VBUlQyX1JYRCAgICAoR1BJT19QT1JUQiB8IEdQSU9fSU4gfCBHUElPX1BGIHwgMzEpCisjZGVmaW5lIFBDM19QRl9TU0lfUlhGUyAgICAgIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDMpCisjZGVmaW5lIFBDNF9QRl9TU0lfUlhDTEsgICAgIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDQpCisjZGVmaW5lIFBDNV9QRl9TU0lfUlhEQVQgICAgIChHUElPX1BPUlRDIHwgR1BJT19JTiB8IEdQSU9fUEYgfCA1KQorI2RlZmluZSBQQzZfUEZfU1NJX1RYREFUICAgICAoR1BJT19QT1JUQyB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDYpCisjZGVmaW5lIFBDN19QRl9TU0lfVFhGUyAgICAgIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDcpCisjZGVmaW5lIFBDOF9QRl9TU0lfVFhDTEsgICAgIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDgpCisjZGVmaW5lIFBDOV9QRl9VQVJUMV9DVFMgICAgIChHUElPX1BPUlRDIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgOSkKKyNkZWZpbmUgUEMxMF9QRl9VQVJUMV9SVFMgICAgKEdQSU9fUE9SVEMgfCBHUElPX0lOIHwgR1BJT19QRiB8IDEwKQorI2RlZmluZSBQQzExX1BGX1VBUlQxX1RYRCAgICAoR1BJT19QT1JUQyB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDExKQorI2RlZmluZSBQQzEyX1BGX1VBUlQxX1JYRCAgICAoR1BJT19QT1JUQyB8IEdQSU9fSU4gfCBHUElPX1BGIHwgMTIpCisjZGVmaW5lIFBDMTNfUEZfU1BJMV9TUElfUkRZIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDEzKQorI2RlZmluZSBQQzE0X1BGX1NQSTFfU0NMSyAgICAoR1BJT19QT1JUQyB8IEdQSU9fUEYgfCAxNCkKKyNkZWZpbmUgUEMxNV9QRl9TUEkxX1NTICAgICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgMTUpCisjZGVmaW5lIFBDMTZfUEZfU1BJMV9NSVNPICAgIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDE2KQorI2RlZmluZSBQQzE3X1BGX1NQSTFfTU9TSSAgICAoR1BJT19QT1JUQyB8IEdQSU9fUEYgfCAxNykKKyNkZWZpbmUgUEMyNF9CSU5fVUFSVDNfUkkgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEMgfCBHUElPX09VVCB8IEdQSU9fQklOIHwgMjQpCisjZGVmaW5lIFBDMjVfQklOX1VBUlQzX0RTUiAgIChHUElPX0dJVVMgfCBHUElPX1BPUlRDIHwgR1BJT19PVVQgfCBHUElPX0JJTiB8IDI1KQorI2RlZmluZSBQQzI2X0FPVVRfVUFSVDNfRFRSICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQyB8IEdQSU9fSU4gfCAyNikKKyNkZWZpbmUgUEMyN19CSU5fVUFSVDNfRENEICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEMgfCBHUElPX09VVCB8IEdQSU9fQklOIHwgMjcpCisjZGVmaW5lIFBDMjhfQklOX1VBUlQzX0NUUyAgIChHUElPX0dJVVMgfCBHUElPX1BPUlRDIHwgR1BJT19PVVQgfCBHUElPX0JJTiB8IDI4KQorI2RlZmluZSBQQzI5X0FPVVRfVUFSVDNfUlRTICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQyB8IEdQSU9fSU4gfCAyOSkKKyNkZWZpbmUgUEMzMF9CSU5fVUFSVDNfVFggICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEMgfCBHUElPX0JJTiB8IDMwKQorI2RlZmluZSBQQzMxX0FPVVRfVUFSVDNfUlggICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQyB8IEdQSU9fSU4gfCAzMSkKKyNkZWZpbmUgUEQ2X1BGX0xTQ0xLICAgICAgICAgKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA2KQorI2RlZmluZSBQRDdfUEZfUkVWICAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fUEYgfCA3KQorI2RlZmluZSBQRDdfQUZfVUFSVDJfRFRSICAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX0FGIHwgNykKKyNkZWZpbmUgUEQ3X0FJTl9TUEkyX1NDTEsgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEQgfCBHUElPX0FJTiB8IDcpCisjZGVmaW5lIFBEOF9QRl9DTFMgICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19QRiB8IDgpCisjZGVmaW5lIFBEOF9BRl9VQVJUMl9EQ0QgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgOCkKKyNkZWZpbmUgUEQ4X0FJTl9TUEkyX1NTICAgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEQgfCBHUElPX0FJTiB8IDgpCisjZGVmaW5lIFBEOV9QRl9QUyAgICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19QRiB8IDkpCisjZGVmaW5lIFBEOV9BRl9VQVJUMl9SSSAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgOSkKKyNkZWZpbmUgUEQ5X0FPVVRfU1BJMl9SWEQgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgOSkKKyNkZWZpbmUgUEQxMF9QRl9TUExfU1BSICAgICAgKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMCkKKyNkZWZpbmUgUEQxMF9BRl9VQVJUMl9EU1IgICAgKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAxMCkKKyNkZWZpbmUgUEQxMF9BSU5fU1BJMl9UWEQgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IDEwKQorI2RlZmluZSBQRDExX1BGX0NPTlRSQVNUICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDExKQorI2RlZmluZSBQRDEyX1BGX0FDRF9PRSAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEyKQorI2RlZmluZSBQRDEzX1BGX0xQX0hTWU5DICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEzKQorI2RlZmluZSBQRDE0X1BGX0ZMTV9WU1lOQyAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE0KQorI2RlZmluZSBQRDE1X1BGX0xEMCAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE1KQorI2RlZmluZSBQRDE2X1BGX0xEMSAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE2KQorI2RlZmluZSBQRDE3X1BGX0xEMiAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE3KQorI2RlZmluZSBQRDE4X1BGX0xEMyAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE4KQorI2RlZmluZSBQRDE5X1BGX0xENCAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE5KQorI2RlZmluZSBQRDIwX1BGX0xENSAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDIwKQorI2RlZmluZSBQRDIxX1BGX0xENiAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDIxKQorI2RlZmluZSBQRDIyX1BGX0xENyAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDIyKQorI2RlZmluZSBQRDIzX1BGX0xEOCAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDIzKQorI2RlZmluZSBQRDI0X1BGX0xEOSAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI0KQorI2RlZmluZSBQRDI1X1BGX0xEMTAgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI1KQorI2RlZmluZSBQRDI2X1BGX0xEMTEgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI2KQorI2RlZmluZSBQRDI3X1BGX0xEMTIgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI3KQorI2RlZmluZSBQRDI4X1BGX0xEMTMgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI4KQorI2RlZmluZSBQRDI5X1BGX0xEMTQgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI5KQorI2RlZmluZSBQRDMwX1BGX0xEMTUgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDMwKQorI2RlZmluZSBQRDMxX1BGX1RNUjJPVVQgICAgICAoR1BJT19QT1JURCB8IEdQSU9fUEYgfCAzMSkKKyNkZWZpbmUgUEQzMV9CSU5fU1BJMl9UWEQgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEQgfCBHUElPX0JJTiB8IDMxKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDIKKyNkZWZpbmUgUEE1X1BGX0xTQ0xLCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDUpCisjZGVmaW5lIFBBNl9QRl9MRDAJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgNikKKyNkZWZpbmUgUEE3X1BGX0xEMQkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA3KQorI2RlZmluZSBQQThfUEZfTEQyCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDgpCisjZGVmaW5lIFBBOV9QRl9MRDMJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgOSkKKyNkZWZpbmUgUEExMF9QRl9MRDQJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTApCisjZGVmaW5lIFBBMTFfUEZfTEQ1CQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDExKQorI2RlZmluZSBQQTEyX1BGX0xENgkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMikKKyNkZWZpbmUgUEExM19QRl9MRDcJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTMpCisjZGVmaW5lIFBBMTRfUEZfTEQ4CQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE0KQorI2RlZmluZSBQQTE1X1BGX0xEOQkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxNSkKKyNkZWZpbmUgUEExNl9QRl9MRDEwCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE2KQorI2RlZmluZSBQQTE3X1BGX0xEMTEJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTcpCisjZGVmaW5lIFBBMThfUEZfTEQxMgkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxOCkKKyNkZWZpbmUgUEExOV9QRl9MRDEzCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE5KQorI2RlZmluZSBQQTIwX1BGX0xEMTQJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjApCisjZGVmaW5lIFBBMjFfUEZfTEQxNQkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyMSkKKyNkZWZpbmUgUEEyMl9QRl9MRDE2CQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDIyKQorI2RlZmluZSBQQTIzX1BGX0xEMTcJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjMpCisjZGVmaW5lIFBBMjRfUEZfUkVWCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI0KQorI2RlZmluZSBQQTI1X1BGX0NMUwkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyNSkKKyNkZWZpbmUgUEEyNl9QRl9QUwkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyNikKKyNkZWZpbmUgUEEyN19QRl9TUExfU1BSCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI3KQorI2RlZmluZSBQQTI4X1BGX0hTWU5DCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI4KQorI2RlZmluZSBQQTI5X1BGX1ZTWU5DCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI5KQorI2RlZmluZSBQQTMwX1BGX0NPTlRSQVNUCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMzApCisjZGVmaW5lIFBBMzFfUEZfT0VfQUNECQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDMxKQorI2RlZmluZSBQQjEwX1BGX0NTSV9EMAkJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMCkKKyNkZWZpbmUgUEIxMF9BRl9VQVJUNl9UWEQJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAxMCkKKyNkZWZpbmUgUEIxMV9QRl9DU0lfRDEJCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBCMTFfQUZfVUFSVDZfUlhECShHUElPX1BPUlRCIHwgR1BJT19JTiAgfCBHUElPX0FGIHwgMTEpCisjZGVmaW5lIFBCMTJfUEZfQ1NJX0QyCQkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEyKQorI2RlZmluZSBQQjEyX0FGX1VBUlQ2X0NUUwkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDEyKQorI2RlZmluZSBQQjEzX1BGX0NTSV9EMwkJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMykKKyNkZWZpbmUgUEIxM19BRl9VQVJUNl9SVFMJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAxMykKKyNkZWZpbmUgUEIxNF9QRl9DU0lfRDQJCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTQpCisjZGVmaW5lIFBCMTVfUEZfQ1NJX01DTEsJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxNSkKKyNkZWZpbmUgUEIxNl9QRl9DU0lfUElYQ0xLCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBCMTdfUEZfQ1NJX0Q1CQkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE3KQorI2RlZmluZSBQQjE4X1BGX0NTSV9ENgkJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxOCkKKyNkZWZpbmUgUEIxOF9BRl9VQVJUNV9UWEQJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAxOCkKKyNkZWZpbmUgUEIxOV9QRl9DU0lfRDcJCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTkpCisjZGVmaW5lIFBCMTlfQUZfVUFSVDVfUlhECShHUElPX1BPUlRCIHwgR1BJT19JTiAgfCBHUElPX0FGIHwgMTkpCisjZGVmaW5lIFBCMjBfUEZfQ1NJX1ZTWU5DCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjApCisjZGVmaW5lIFBCMjBfQUZfVUFSVDVfQ1RTCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMjApCisjZGVmaW5lIFBCMjFfUEZfQ1NJX0hTWU5DCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjEpCisjZGVmaW5lIFBCMjFfQUZfVUFSVDVfUlRTCShHUElPX1BPUlRCIHwgR1BJT19JTiAgfCBHUElPX0FGIHwgMjEpCisjZGVmaW5lIFBCMjZfQUZfVUFSVDRfUlRTCShHUElPX1BPUlRCIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjYpCisjZGVmaW5lIFBCMjhfQUZfVUFSVDRfVFhECShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMjgpCisjZGVmaW5lIFBCMjlfQUZfVUFSVDRfQ1RTCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMjkpCisjZGVmaW5lIFBCMzFfQUZfVUFSVDRfUlhECShHUElPX1BPUlRCIHwgR1BJT19JTiAgfCBHUElPX0FGIHwgMzEpCisjZGVmaW5lIFBDNV9QRl9JMkMyX1NEQQkJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCA1KQorI2RlZmluZSBQQzZfUEZfSTJDMl9TQ0wJCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgNikKKyNkZWZpbmUgUEMxNl9QRl9TU0k0X0ZTCQkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDE2KQorI2RlZmluZSBQQzE3X1BGX1NTSTRfUlhECShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMTcpCisjZGVmaW5lIFBDMThfUEZfU1NJNF9UWEQJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAxOCkKKyNkZWZpbmUgUEMxOV9QRl9TU0k0X0NMSwkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDE5KQorI2RlZmluZSBQQzIwX1BGX1NTSTFfRlMJCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjApCisjZGVmaW5lIFBDMjFfUEZfU1NJMV9SWEQJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyMSkKKyNkZWZpbmUgUEMyMl9QRl9TU0kxX1RYRAkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDIyKQorI2RlZmluZSBQQzIzX1BGX1NTSTFfQ0xLCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjMpCisjZGVmaW5lIFBDMjRfUEZfU1NJMl9GUwkJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyNCkKKyNkZWZpbmUgUEMyNV9QRl9TU0kyX1JYRAkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDI1KQorI2RlZmluZSBQQzI2X1BGX1NTSTJfVFhECShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjYpCisjZGVmaW5lIFBDMjdfUEZfU1NJMl9DTEsJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyNykKKyNkZWZpbmUgUEMyOF9QRl9TU0kzX0ZTCQkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDI4KQorI2RlZmluZSBQQzI5X1BGX1NTSTNfUlhECShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjkpCisjZGVmaW5lIFBDMzBfUEZfU1NJM19UWEQJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAzMCkKKyNkZWZpbmUgUEMzMV9QRl9TU0kzX0NMSwkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDMxKQorI2RlZmluZSBQRDBfQUlOX0ZFQ19UWEQwCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX0FJTiB8IDApCisjZGVmaW5lIFBEMV9BSU5fRkVDX1RYRDEJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUlOIHwgMSkKKyNkZWZpbmUgUEQyX0FJTl9GRUNfVFhEMgkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19BSU4gfCAyKQorI2RlZmluZSBQRDNfQUlOX0ZFQ19UWEQzCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX0FJTiB8IDMpCisjZGVmaW5lIFBENF9BT1VUX0ZFQ19SWF9FUgkoR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX0FPVVQgfCA0KQorI2RlZmluZSBQRDVfQU9VVF9GRUNfUlhEMQkoR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX0FPVVQgfCA1KQorI2RlZmluZSBQRDZfQU9VVF9GRUNfUlhEMgkoR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX0FPVVQgfCA2KQorI2RlZmluZSBQRDdfQU9VVF9GRUNfUlhEMwkoR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX0FPVVQgfCA3KQorI2RlZmluZSBQRDhfQUZfRkVDX01ESU8JCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQUYgfCA4KQorI2RlZmluZSBQRDlfQUlOX0ZFQ19NREMJCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX0FJTiB8IDkpCisjZGVmaW5lIFBEMTBfQU9VVF9GRUNfQ1JTCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDEwKQorI2RlZmluZSBQRDExX0FPVVRfRkVDX1RYX0NMSwkoR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX0FPVVQgfCAxMSkKKyNkZWZpbmUgUEQxMl9BT1VUX0ZFQ19SWEQwCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDEyKQorI2RlZmluZSBQRDEzX0FPVVRfRkVDX1JYX0RWCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDEzKQorI2RlZmluZSBQRDE0X0FPVVRfRkVDX0NMUgkoR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX0FPVVQgfCAxNCkKKyNkZWZpbmUgUEQxNV9BT1VUX0ZFQ19DT0wJKEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgR1BJT19BT1VUIHwgMTUpCisjZGVmaW5lIFBEMTZfQUlOX0ZFQ19UWF9FUgkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19BSU4gfCAxNikKKyNkZWZpbmUgUEQxN19QRl9JMkNfREFUQQkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE3KQorI2RlZmluZSBQRDE4X1BGX0kyQ19DTEsJCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTgpCisjZGVmaW5lIFBEMjVfUEZfQ1NQSTFfUkRZCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGICB8IDI1KQorI2RlZmluZSBQRDI2X1BGX0NTUEkxX1NTMgkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiAgfCAyNikKKyNkZWZpbmUgUEQyN19QRl9DU1BJMV9TUzEJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgIHwgMjcpCisjZGVmaW5lIFBEMjhfUEZfQ1NQSTFfU1MwCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGICB8IDI4KQorI2RlZmluZSBQRDI5X1BGX0NTUEkxX1NDTEsJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgIHwgMjkpCisjZGVmaW5lIFBEMzBfUEZfQ1NQSTFfTUlTTwkoR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX1BGICB8IDMwKQorI2RlZmluZSBQRDMxX1BGX0NTUEkxX01PU0kJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgIHwgMzEpCisjZGVmaW5lIFBGMjNfQUlOX0ZFQ19UWF9FTgkoR1BJT19QT1JURiB8IEdQSU9fT1VUIHwgR1BJT19BSU4gfCAyMykKKyNkZWZpbmUgUEUzX1BGX1VBUlQyX0NUUwkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDMpCisjZGVmaW5lIFBFNF9QRl9VQVJUMl9SVFMJKEdQSU9fUE9SVEUgfCBHUElPX0lOICB8IEdQSU9fUEYgfCA0KQorI2RlZmluZSBQRTZfUEZfVUFSVDJfVFhECShHUElPX1BPUlRFIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgNikKKyNkZWZpbmUgUEU3X1BGX1VBUlQyX1JYRAkoR1BJT19QT1JURSB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDcpCisjZGVmaW5lIFBFOF9QRl9VQVJUM19UWEQJKEdQSU9fUE9SVEUgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA4KQorI2RlZmluZSBQRTlfUEZfVUFSVDNfUlhECShHUElPX1BPUlRFIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgOSkKKyNkZWZpbmUgUEUxMF9QRl9VQVJUM19DVFMJKEdQSU9fUE9SVEUgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMCkKKyNkZWZpbmUgUEUxMV9QRl9VQVJUM19SVFMJKEdQSU9fUE9SVEUgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAxMSkKKyNkZWZpbmUgUEUxMl9QRl9VQVJUMV9UWEQJKEdQSU9fUE9SVEUgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMikKKyNkZWZpbmUgUEUxM19QRl9VQVJUMV9SWEQJKEdQSU9fUE9SVEUgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAxMykKKyNkZWZpbmUgUEUxNF9QRl9VQVJUMV9DVFMJKEdQSU9fUE9SVEUgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxNCkKKyNkZWZpbmUgUEUxNV9QRl9VQVJUMV9SVFMJKEdQSU9fUE9SVEUgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAxNSkKKyNkZWZpbmUgUEUxOF9BRl9DU1BJM19NSVNPCShHUElPX1BPUlRFIHwgR1BJT19JTiAgfCBHUElPX0FGIHwgMTgpCisjZGVmaW5lIFBFMjFfQUZfQ1NQSTNfU1MJKEdQSU9fUE9SVEUgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAyMSkKKyNkZWZpbmUgUEUyMl9BRl9DU1BJM19NT1NJCShHUElPX1BPUlRFIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMjIpCisjZGVmaW5lIFBFMjNfQUZfQ1NQSTNfU0NMSwkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDIzKQorI2VuZGlmCisKKy8qIGRlY29kZSBpcnEgbnVtYmVyIHRvIHVzZSB3aXRoIElNUih4KSwgSVNSKHgpIGFuZCBmcmllbmRzICovCisjZGVmaW5lIElSUV9UT19SRUcoaXJxKSAoKGlycSAtIE1YQ19NQVhfSU5UX0xJTkVTKSA+PiA1KQorCisjZGVmaW5lIElSUV9HUElPQSh4KSAgKE1YQ19NQVhfSU5UX0xJTkVTICsgeCkKKyNkZWZpbmUgSVJRX0dQSU9CKHgpICAoSVJRX0dQSU9BKDMyKSArIHgpCisjZGVmaW5lIElSUV9HUElPQyh4KSAgKElSUV9HUElPQigzMikgKyB4KQorI2RlZmluZSBJUlFfR1BJT0QoeCkgIChJUlFfR1BJT0MoMzIpICsgeCkKKworI2VuZGlmIC8qIF9NWENfR1BJT19NWDFfTVgyX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pb211eC1teDMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pb211eC1teDMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTA5ZTc2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lvbXV4LW14My5oCkBAIC0wLDAgKzEsNTAxIEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IGJ5IFNhc2NoYSBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4LmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX19NQUNIX01YMzFfSU9NVVhfSF9fCisjZGVmaW5lIF9fTUFDSF9NWDMxX0lPTVVYX0hfXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyoKKyAqIHZhcmlvdXMgSU9NVVggb3V0cHV0IGZ1bmN0aW9ucworICovCisKKyNkZWZpbmUJSU9NVVhfT0NPTkZJR19HUElPICgwIDw8IDQpCS8qIHVzZWQgYXMgR1BJTyAqLworI2RlZmluZQlJT01VWF9PQ09ORklHX0ZVTkMgKDEgPDwgNCkJLyogdXNlZCBhcyBmdW5jdGlvbiAqLworI2RlZmluZQlJT01VWF9PQ09ORklHX0FMVDEgKDIgPDwgNCkJLyogdXNlZCBhcyBhbHRlcm5hdGUgZnVuY3Rpb24gMSAqLworI2RlZmluZQlJT01VWF9PQ09ORklHX0FMVDIgKDMgPDwgNCkJLyogdXNlZCBhcyBhbHRlcm5hdGUgZnVuY3Rpb24gMiAqLworI2RlZmluZQlJT01VWF9PQ09ORklHX0FMVDMgKDQgPDwgNCkJLyogdXNlZCBhcyBhbHRlcm5hdGUgZnVuY3Rpb24gMyAqLworI2RlZmluZQlJT01VWF9PQ09ORklHX0FMVDQgKDUgPDwgNCkJLyogdXNlZCBhcyBhbHRlcm5hdGUgZnVuY3Rpb24gNCAqLworI2RlZmluZQlJT01VWF9PQ09ORklHX0FMVDUgKDYgPDwgNCkJLyogdXNlZCBhcyBhbHRlcm5hdGUgZnVuY3Rpb24gNSAqLworI2RlZmluZQlJT01VWF9PQ09ORklHX0FMVDYgKDcgPDwgNCkJLyogdXNlZCBhcyBhbHRlcm5hdGUgZnVuY3Rpb24gNiAqLworI2RlZmluZQlJT01VWF9JQ09ORklHX05PTkUgIDAJIAkvKiBub3QgY29uZmlndXJlZCBmb3IgaW5wdXQgKi8KKyNkZWZpbmUJSU9NVVhfSUNPTkZJR19HUElPICAxCQkvKiB1c2VkIGFzIEdQSU8gKi8KKyNkZWZpbmUJSU9NVVhfSUNPTkZJR19GVU5DICAyCQkvKiB1c2VkIGFzIGZ1bmN0aW9uICovCisjZGVmaW5lCUlPTVVYX0lDT05GSUdfQUxUMSAgNAkJLyogdXNlZCBhcyBhbHRlcm5hdGUgZnVuY3Rpb24gMSAqLworI2RlZmluZQlJT01VWF9JQ09ORklHX0FMVDIgIDgJCS8qIHVzZWQgYXMgYWx0ZXJuYXRlIGZ1bmN0aW9uIDIgKi8KKworI2RlZmluZSBJT01VWF9DT05GSUdfR1BJTyAoSU9NVVhfT0NPTkZJR19HUElPIHwgSU9NVVhfSUNPTkZJR19HUElPKQorI2RlZmluZSBJT01VWF9DT05GSUdfRlVOQyAoSU9NVVhfT0NPTkZJR19GVU5DIHwgSU9NVVhfSUNPTkZJR19GVU5DKQorI2RlZmluZSBJT01VWF9DT05GSUdfQUxUMSAoSU9NVVhfT0NPTkZJR19BTFQxIHwgSU9NVVhfSUNPTkZJR19BTFQxKQorI2RlZmluZSBJT01VWF9DT05GSUdfQUxUMiAoSU9NVVhfT0NPTkZJR19BTFQyIHwgSU9NVVhfSUNPTkZJR19BTFQyKQorCisvKgorICogdmFyaW91cyBJT01VWCBwYWQgZnVuY3Rpb25zCisgKi8KK2VudW0gaW9tdXhfcGFkX2NvbmZpZyB7CisJUEFEX0NUTF9OT0xPT1BCQUNLCT0gMHgwIDw8IDksCisJUEFEX0NUTF9MT09QQkFDSwk9IDB4MSA8PCA5LAorCVBBRF9DVExfUEtFX05PTkUJPSAweDAgPDwgOCwKKwlQQURfQ1RMX1BLRV9FTkFCTEUJPSAweDEgPDwgOCwKKwlQQURfQ1RMX1BVRV9LRUVQRVIJPSAweDAgPDwgNywKKwlQQURfQ1RMX1BVRV9QVUQJCT0gMHgxIDw8IDcsCisJUEFEX0NUTF8xMDBLX1BECQk9IDB4MCA8PCA1LAorCVBBRF9DVExfMTAwS19QVQkJPSAweDEgPDwgNSwKKwlQQURfQ1RMXzQ3S19QVQkJPSAweDIgPDwgNSwKKwlQQURfQ1RMXzIyS19QVQkJPSAweDMgPDwgNSwKKwlQQURfQ1RMX0hZU19DTU9TCT0gMHgwIDw8IDQsCisJUEFEX0NUTF9IWVNfU0NITUlUWgk9IDB4MSA8PCA0LAorCVBBRF9DVExfT0RFX0NNT1MJPSAweDAgPDwgMywKKwlQQURfQ1RMX09ERV9PcGVuRHJhaW4JPSAweDEgPDwgMywKKwlQQURfQ1RMX0RSVl9OT1JNQUwJPSAweDAgPDwgMSwKKwlQQURfQ1RMX0RSVl9ISUdICT0gMHgxIDw8IDEsCisJUEFEX0NUTF9EUlZfTUFYCQk9IDB4MiA8PCAxLAorCVBBRF9DVExfU1JFX1NMT1cJPSAweDAgPDwgMCwKKwlQQURfQ1RMX1NSRV9GQVNUCT0gMHgxIDw8IDAKK307CisKKy8qCisgKiB2YXJpb3VzIElPTVVYIGdlbmVyYWwgcHVycG9zZSBmdW5jdGlvbnMKKyAqLworZW51bSBpb211eF9ncF9mdW5jIHsKKwlNVVhfUEdQX0ZJUkkJCQk9IDEgPDwgMCwKKwlNVVhfRERSX01PREUJCQk9IDEgPDwgMSwKKwlNVVhfUEdQX0NTUElfQkIJCQk9IDEgPDwgMiwKKwlNVVhfUEdQX0FUQV8xCQkJPSAxIDw8IDMsCisJTVVYX1BHUF9BVEFfMgkJCT0gMSA8PCA0LAorCU1VWF9QR1BfQVRBXzMJCQk9IDEgPDwgNSwKKwlNVVhfUEdQX0FUQV80CQkJPSAxIDw8IDYsCisJTVVYX1BHUF9BVEFfNQkJCT0gMSA8PCA3LAorCU1VWF9QR1BfQVRBXzYJCQk9IDEgPDwgOCwKKwlNVVhfUEdQX0FUQV83CQkJPSAxIDw8IDksCisJTVVYX1BHUF9BVEFfOAkJCT0gMSA8PCAxMCwKKwlNVVhfUEdQX1VIMgkJCT0gMSA8PCAxMSwKKwlNVVhfU0RDVExfQ1NEMF9TRUwJCT0gMSA8PCAxMiwKKwlNVVhfU0RDVExfQ1NEMV9TRUwJCT0gMSA8PCAxMywKKwlNVVhfQ1NQSTFfVUFSVDMJCQk9IDEgPDwgMTQsCisJTVVYX0VYVERNQVJFUTJfTUJYX1NFTAkJPSAxIDw8IDE1LAorCU1VWF9UQU1QRVJfREVURUNUX0VOCQk9IDEgPDwgMTYsCisJTVVYX1BHUF9VU0JfNFdJUkUJCT0gMSA8PCAxNywKKwlNVVhfUEdCX1VTQl9DT01NT04JCT0gMSA8PCAxOCwKKwlNVVhfU0RIQ19NRU1TVElDSzEJCT0gMSA8PCAxOSwKKwlNVVhfU0RIQ19NRU1TVElDSzIJCT0gMSA8PCAyMCwKKwlNVVhfUEdQX1NQTExfQllQCQk9IDEgPDwgMjEsCisJTVVYX1BHUF9VUExMX0JZUAkJPSAxIDw8IDIyLAorCU1VWF9QR1BfTVNIQzFfQ0xLX1NFTAkJPSAxIDw8IDIzLAorCU1VWF9QR1BfTVNIQzJfQ0xLX1NFTAkJPSAxIDw8IDI0LAorCU1VWF9DU1BJM19VQVJUNV9TRUwJCT0gMSA8PCAyNSwKKwlNVVhfUEdQX0FUQV85CQkJPSAxIDw8IDI2LAorCU1VWF9QR1BfVVNCX1NVU1BFTkQJCT0gMSA8PCAyNywKKwlNVVhfUEdQX1VTQl9PVEdfTE9PUEJBQ0sJPSAxIDw8IDI4LAorCU1VWF9QR1BfVVNCX0hTMV9MT09QQkFDSwk9IDEgPDwgMjksCisJTVVYX1BHUF9VU0JfSFMyX0xPT1BCQUNLCT0gMSA8PCAzMCwKKwlNVVhfQ0xLT19ERFJfTU9ERQkJPSAxIDw8IDMxLAorfTsKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gZW5hYmxlcy9kaXNhYmxlcyB0aGUgZ2VuZXJhbCBwdXJwb3NlIGZ1bmN0aW9uIGZvciBhIHBhcnRpY3VsYXIKKyAqIHNpZ25hbC4KKyAqLwordm9pZCBpb211eF9jb25maWdfZ3ByKGVudW0gaW9tdXhfZ3BfZnVuYyAsIGJvb2wpOworCisvKgorICogc2V0IHRoZSBtb2RlIGZvciBhIElPTVVYIHBpbi4KKyAqLworaW50IG14Y19pb211eF9tb2RlKHVuc2lnbmVkIGludCk7CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGVuYWJsZXMvZGlzYWJsZXMgdGhlIGdlbmVyYWwgcHVycG9zZSBmdW5jdGlvbiBmb3IgYSBwYXJ0aWN1bGFyCisgKiBzaWduYWwuCisgKi8KK3ZvaWQgbXhjX2lvbXV4X3NldF9ncHIoZW51bSBpb211eF9ncF9mdW5jLCBib29sKTsKKworI2RlZmluZSBJT01VWF9QQUROVU1fTUFTSwkweDFmZgorI2RlZmluZSBJT01VWF9HUElPTlVNX1NISUZUCTkKKyNkZWZpbmUgSU9NVVhfR1BJT05VTV9NQVNLCSgweGZmIDw8IElPTVVYX0dQSU9OVU1fU0hJRlQpCisjZGVmaW5lIElPTVVYX01PREVfU0hJRlQJMTcKKyNkZWZpbmUgSU9NVVhfTU9ERV9NQVNLCSgweGZmIDw8IElPTVVYX01PREVfU0hJRlQpCisKKyNkZWZpbmUgSU9NVVhfUElOKGdwaW9udW0sIHBhZG51bSkgXAorCSgoKGdwaW9udW0gPDwgSU9NVVhfR1BJT05VTV9TSElGVCkgJiBJT01VWF9HUElPTlVNX01BU0spIHwgXAorCSAocGFkbnVtICYgSU9NVVhfUEFETlVNX01BU0spKQorCisjZGVmaW5lIElPTVVYX01PREUocGluLCBtb2RlKSAocGluIHwgbW9kZSA8PCBJT01VWF9NT0RFX1NISUZUKQorCisjZGVmaW5lIElPTVVYX1RPX0dQSU8oaW9tdXhfcGluKSBcCisJKChpb211eF9waW4gJiBJT01VWF9HUElPTlVNX01BU0spID4+IElPTVVYX0dQSU9OVU1fU0hJRlQpCisjZGVmaW5lIElPTVVYX1RPX0lSUShpb211eF9waW4pIFwKKwkoKChpb211eF9waW4gJiBJT01VWF9HUElPTlVNX01BU0spID4+IElPTVVYX0dQSU9OVU1fU0hJRlQpICsgXAorCU1YQ19HUElPX0lOVF9CQVNFKQorCisvKgorICogVGhpcyBlbnVtZXJhdGlvbiBpcyBjb25zdHJ1Y3RlZCBiYXNlZCBvbiB0aGUgU2VjdGlvbgorICogInN3X3BhZF9jdGwgJiBzd19tdXhfY3RsIGRldGFpbHMiIG9mIHRoZSBNWDMxIElDIFNwZWMuIEVhY2ggZW51bWVyYXRlZAorICogdmFsdWUgaXMgY29uc3RydWN0ZWQgYmFzZWQgb24gdGhlIHJ1bGVzIGRlc2NyaWJlZCBhYm92ZS4KKyAqLworCitlbnVtIGlvbXV4X3BpbnMgeworCU1YMzFfUElOX1RUTV9QQUQJPSBJT01VWF9QSU4oMHhmZiwgICAwKSwKKwlNWDMxX1BJTl9DU1BJM19TUElfUkRZCT0gSU9NVVhfUElOKDB4ZmYsICAgMSksCisJTVgzMV9QSU5fQ1NQSTNfU0NMSwk9IElPTVVYX1BJTigweGZmLCAgIDIpLAorCU1YMzFfUElOX0NTUEkzX01JU08JPSBJT01VWF9QSU4oMHhmZiwgICAzKSwKKwlNWDMxX1BJTl9DU1BJM19NT1NJCT0gSU9NVVhfUElOKDB4ZmYsICAgNCksCisJTVgzMV9QSU5fQ0xLU1MJCT0gSU9NVVhfUElOKDB4ZmYsICAgNSksCisJTVgzMV9QSU5fQ0VfQ09OVFJPTAk9IElPTVVYX1BJTigweGZmLCAgIDYpLAorCU1YMzFfUElOX0FUQV9SRVNFVF9CCT0gSU9NVVhfUElOKDk1LCAgICAgNyksCisJTVgzMV9QSU5fQVRBX0RNQUNLCT0gSU9NVVhfUElOKDk0LCAgICAgOCksCisJTVgzMV9QSU5fQVRBX0RJT1cJPSBJT01VWF9QSU4oOTMsICAgICA5KSwKKwlNWDMxX1BJTl9BVEFfRElPUgk9IElPTVVYX1BJTig5MiwgICAgMTApLAorCU1YMzFfUElOX0FUQV9DUzEJPSBJT01VWF9QSU4oOTEsICAgIDExKSwKKwlNWDMxX1BJTl9BVEFfQ1MwCT0gSU9NVVhfUElOKDkwLCAgICAxMiksCisJTVgzMV9QSU5fU0QxX0RBVEEzCT0gSU9NVVhfUElOKDYzLCAgICAxMyksCisJTVgzMV9QSU5fU0QxX0RBVEEyCT0gSU9NVVhfUElOKDYyLCAgICAxNCksCisJTVgzMV9QSU5fU0QxX0RBVEExCT0gSU9NVVhfUElOKDYxLCAgICAxNSksCisJTVgzMV9QSU5fU0QxX0RBVEEwCT0gSU9NVVhfUElOKDYwLCAgICAxNiksCisJTVgzMV9QSU5fU0QxX0NMSwk9IElPTVVYX1BJTig1OSwgICAgMTcpLAorCU1YMzFfUElOX1NEMV9DTUQJPSBJT01VWF9QSU4oNTgsICAgIDE4KSwKKwlNWDMxX1BJTl9EM19TUEwJCT0gSU9NVVhfUElOKDB4ZmYsICAxOSksCisJTVgzMV9QSU5fRDNfQ0xTCQk9IElPTVVYX1BJTigweGZmLCAgMjApLAorCU1YMzFfUElOX0QzX1JFVgkJPSBJT01VWF9QSU4oMHhmZiwgIDIxKSwKKwlNWDMxX1BJTl9DT05UUkFTVAk9IElPTVVYX1BJTigweGZmLCAgMjIpLAorCU1YMzFfUElOX1ZTWU5DMwkJPSBJT01VWF9QSU4oMHhmZiwgIDIzKSwKKwlNWDMxX1BJTl9SRUFECQk9IElPTVVYX1BJTigweGZmLCAgMjQpLAorCU1YMzFfUElOX1dSSVRFCQk9IElPTVVYX1BJTigweGZmLCAgMjUpLAorCU1YMzFfUElOX1BBUl9SUwkJPSBJT01VWF9QSU4oMHhmZiwgIDI2KSwKKwlNWDMxX1BJTl9TRVJfUlMJCT0gSU9NVVhfUElOKDg5LCAgICAyNyksCisJTVgzMV9QSU5fTENTMQkJPSBJT01VWF9QSU4oODgsICAgIDI4KSwKKwlNWDMxX1BJTl9MQ1MwCQk9IElPTVVYX1BJTig4NywgICAgMjkpLAorCU1YMzFfUElOX1NEX0RfQ0xLCT0gSU9NVVhfUElOKDg2LCAgICAzMCksCisJTVgzMV9QSU5fU0RfRF9JTwk9IElPTVVYX1BJTig4NSwgICAgMzEpLAorCU1YMzFfUElOX1NEX0RfSQkJPSBJT01VWF9QSU4oODQsICAgIDMyKSwKKwlNWDMxX1BJTl9EUkRZMAkJPSBJT01VWF9QSU4oMHhmZiwgIDMzKSwKKwlNWDMxX1BJTl9GUFNISUZUCT0gSU9NVVhfUElOKDB4ZmYsICAzNCksCisJTVgzMV9QSU5fSFNZTkMJCT0gSU9NVVhfUElOKDB4ZmYsICAzNSksCisJTVgzMV9QSU5fVlNZTkMwCQk9IElPTVVYX1BJTigweGZmLCAgMzYpLAorCU1YMzFfUElOX0xEMTcJCT0gSU9NVVhfUElOKDB4ZmYsICAzNyksCisJTVgzMV9QSU5fTEQxNgkJPSBJT01VWF9QSU4oMHhmZiwgIDM4KSwKKwlNWDMxX1BJTl9MRDE1CQk9IElPTVVYX1BJTigweGZmLCAgMzkpLAorCU1YMzFfUElOX0xEMTQJCT0gSU9NVVhfUElOKDB4ZmYsICA0MCksCisJTVgzMV9QSU5fTEQxMwkJPSBJT01VWF9QSU4oMHhmZiwgIDQxKSwKKwlNWDMxX1BJTl9MRDEyCQk9IElPTVVYX1BJTigweGZmLCAgNDIpLAorCU1YMzFfUElOX0xEMTEJCT0gSU9NVVhfUElOKDB4ZmYsICA0MyksCisJTVgzMV9QSU5fTEQxMAkJPSBJT01VWF9QSU4oMHhmZiwgIDQ0KSwKKwlNWDMxX1BJTl9MRDkJCT0gSU9NVVhfUElOKDB4ZmYsICA0NSksCisJTVgzMV9QSU5fTEQ4CQk9IElPTVVYX1BJTigweGZmLCAgNDYpLAorCU1YMzFfUElOX0xENwkJPSBJT01VWF9QSU4oMHhmZiwgIDQ3KSwKKwlNWDMxX1BJTl9MRDYJCT0gSU9NVVhfUElOKDB4ZmYsICA0OCksCisJTVgzMV9QSU5fTEQ1CQk9IElPTVVYX1BJTigweGZmLCAgNDkpLAorCU1YMzFfUElOX0xENAkJPSBJT01VWF9QSU4oMHhmZiwgIDUwKSwKKwlNWDMxX1BJTl9MRDMJCT0gSU9NVVhfUElOKDB4ZmYsICA1MSksCisJTVgzMV9QSU5fTEQyCQk9IElPTVVYX1BJTigweGZmLCAgNTIpLAorCU1YMzFfUElOX0xEMQkJPSBJT01VWF9QSU4oMHhmZiwgIDUzKSwKKwlNWDMxX1BJTl9MRDAJCT0gSU9NVVhfUElOKDB4ZmYsICA1NCksCisJTVgzMV9QSU5fVVNCSDJfREFUQTEJPSBJT01VWF9QSU4oMHhmZiwgIDU1KSwKKwlNWDMxX1BJTl9VU0JIMl9EQVRBMAk9IElPTVVYX1BJTigweGZmLCAgNTYpLAorCU1YMzFfUElOX1VTQkgyX05YVAk9IElPTVVYX1BJTigweGZmLCAgNTcpLAorCU1YMzFfUElOX1VTQkgyX1NUUAk9IElPTVVYX1BJTigweGZmLCAgNTgpLAorCU1YMzFfUElOX1VTQkgyX0RJUgk9IElPTVVYX1BJTigweGZmLCAgNTkpLAorCU1YMzFfUElOX1VTQkgyX0NMSwk9IElPTVVYX1BJTigweGZmLCAgNjApLAorCU1YMzFfUElOX1VTQk9UR19EQVRBNwk9IElPTVVYX1BJTigweGZmLCAgNjEpLAorCU1YMzFfUElOX1VTQk9UR19EQVRBNgk9IElPTVVYX1BJTigweGZmLCAgNjIpLAorCU1YMzFfUElOX1VTQk9UR19EQVRBNQk9IElPTVVYX1BJTigweGZmLCAgNjMpLAorCU1YMzFfUElOX1VTQk9UR19EQVRBNAk9IElPTVVYX1BJTigweGZmLCAgNjQpLAorCU1YMzFfUElOX1VTQk9UR19EQVRBMwk9IElPTVVYX1BJTigweGZmLCAgNjUpLAorCU1YMzFfUElOX1VTQk9UR19EQVRBMgk9IElPTVVYX1BJTigweGZmLCAgNjYpLAorCU1YMzFfUElOX1VTQk9UR19EQVRBMQk9IElPTVVYX1BJTigweGZmLCAgNjcpLAorCU1YMzFfUElOX1VTQk9UR19EQVRBMAk9IElPTVVYX1BJTigweGZmLCAgNjgpLAorCU1YMzFfUElOX1VTQk9UR19OWFQJPSBJT01VWF9QSU4oMHhmZiwgIDY5KSwKKwlNWDMxX1BJTl9VU0JPVEdfU1RQCT0gSU9NVVhfUElOKDB4ZmYsICA3MCksCisJTVgzMV9QSU5fVVNCT1RHX0RJUgk9IElPTVVYX1BJTigweGZmLCAgNzEpLAorCU1YMzFfUElOX1VTQk9UR19DTEsJPSBJT01VWF9QSU4oMHhmZiwgIDcyKSwKKwlNWDMxX1BJTl9VU0JfQllQCT0gSU9NVVhfUElOKDMxLCAgICA3MyksCisJTVgzMV9QSU5fVVNCX09DCQk9IElPTVVYX1BJTigzMCwgICAgNzQpLAorCU1YMzFfUElOX1VTQl9QV1IJPSBJT01VWF9QSU4oMjksICAgIDc1KSwKKwlNWDMxX1BJTl9TSkNfTU9ECT0gSU9NVVhfUElOKDB4ZmYsICA3NiksCisJTVgzMV9QSU5fREVfQgkJPSBJT01VWF9QSU4oMHhmZiwgIDc3KSwKKwlNWDMxX1BJTl9UUlNUQgkJPSBJT01VWF9QSU4oMHhmZiwgIDc4KSwKKwlNWDMxX1BJTl9URE8JCT0gSU9NVVhfUElOKDB4ZmYsICA3OSksCisJTVgzMV9QSU5fVERJCQk9IElPTVVYX1BJTigweGZmLCAgODApLAorCU1YMzFfUElOX1RNUwkJPSBJT01VWF9QSU4oMHhmZiwgIDgxKSwKKwlNWDMxX1BJTl9UQ0sJCT0gSU9NVVhfUElOKDB4ZmYsICA4MiksCisJTVgzMV9QSU5fUlRDSwkJPSBJT01VWF9QSU4oMHhmZiwgIDgzKSwKKwlNWDMxX1BJTl9LRVlfQ09MNwk9IElPTVVYX1BJTig1NywgICAgODQpLAorCU1YMzFfUElOX0tFWV9DT0w2CT0gSU9NVVhfUElOKDU2LCAgICA4NSksCisJTVgzMV9QSU5fS0VZX0NPTDUJPSBJT01VWF9QSU4oNTUsICAgIDg2KSwKKwlNWDMxX1BJTl9LRVlfQ09MNAk9IElPTVVYX1BJTig1NCwgICAgODcpLAorCU1YMzFfUElOX0tFWV9DT0wzCT0gSU9NVVhfUElOKDB4ZmYsICA4OCksCisJTVgzMV9QSU5fS0VZX0NPTDIJPSBJT01VWF9QSU4oMHhmZiwgIDg5KSwKKwlNWDMxX1BJTl9LRVlfQ09MMQk9IElPTVVYX1BJTigweGZmLCAgOTApLAorCU1YMzFfUElOX0tFWV9DT0wwCT0gSU9NVVhfUElOKDB4ZmYsICA5MSksCisJTVgzMV9QSU5fS0VZX1JPVzcJPSBJT01VWF9QSU4oNTMsICAgIDkyKSwKKwlNWDMxX1BJTl9LRVlfUk9XNgk9IElPTVVYX1BJTig1MiwgICAgOTMpLAorCU1YMzFfUElOX0tFWV9ST1c1CT0gSU9NVVhfUElOKDUxLCAgICA5NCksCisJTVgzMV9QSU5fS0VZX1JPVzQJPSBJT01VWF9QSU4oNTAsICAgIDk1KSwKKwlNWDMxX1BJTl9LRVlfUk9XMwk9IElPTVVYX1BJTigweGZmLCAgOTYpLAorCU1YMzFfUElOX0tFWV9ST1cyCT0gSU9NVVhfUElOKDB4ZmYsICA5NyksCisJTVgzMV9QSU5fS0VZX1JPVzEJPSBJT01VWF9QSU4oMHhmZiwgIDk4KSwKKwlNWDMxX1BJTl9LRVlfUk9XMAk9IElPTVVYX1BJTigweGZmLCAgOTkpLAorCU1YMzFfUElOX0JBVFRfTElORQk9IElPTVVYX1BJTig0OSwgICAxMDApLAorCU1YMzFfUElOX0NUUzIJCT0gSU9NVVhfUElOKDB4ZmYsIDEwMSksCisJTVgzMV9QSU5fUlRTMgkJPSBJT01VWF9QSU4oMHhmZiwgMTAyKSwKKwlNWDMxX1BJTl9UWEQyCQk9IElPTVVYX1BJTigyOCwgICAxMDMpLAorCU1YMzFfUElOX1JYRDIJCT0gSU9NVVhfUElOKDI3LCAgIDEwNCksCisJTVgzMV9QSU5fRFRSX0RDRTIJPSBJT01VWF9QSU4oNDgsICAgMTA1KSwKKwlNWDMxX1BJTl9EQ0RfRFRFMQk9IElPTVVYX1BJTig0NywgICAxMDYpLAorCU1YMzFfUElOX1JJX0RURTEJPSBJT01VWF9QSU4oNDYsICAgMTA3KSwKKwlNWDMxX1BJTl9EU1JfRFRFMQk9IElPTVVYX1BJTig0NSwgICAxMDgpLAorCU1YMzFfUElOX0RUUl9EVEUxCT0gSU9NVVhfUElOKDQ0LCAgIDEwOSksCisJTVgzMV9QSU5fRENEX0RDRTEJPSBJT01VWF9QSU4oNDMsICAgMTEwKSwKKwlNWDMxX1BJTl9SSV9EQ0UxCT0gSU9NVVhfUElOKDQyLCAgIDExMSksCisJTVgzMV9QSU5fRFNSX0RDRTEJPSBJT01VWF9QSU4oNDEsICAgMTEyKSwKKwlNWDMxX1BJTl9EVFJfRENFMQk9IElPTVVYX1BJTig0MCwgICAxMTMpLAorCU1YMzFfUElOX0NUUzEJCT0gSU9NVVhfUElOKDM5LCAgIDExNCksCisJTVgzMV9QSU5fUlRTMQkJPSBJT01VWF9QSU4oMzgsICAgMTE1KSwKKwlNWDMxX1BJTl9UWEQxCQk9IElPTVVYX1BJTigzNywgICAxMTYpLAorCU1YMzFfUElOX1JYRDEJCT0gSU9NVVhfUElOKDM2LCAgIDExNyksCisJTVgzMV9QSU5fQ1NQSTJfU1BJX1JEWQk9IElPTVVYX1BJTigweGZmLCAxMTgpLAorCU1YMzFfUElOX0NTUEkyX1NDTEsJPSBJT01VWF9QSU4oMHhmZiwgMTE5KSwKKwlNWDMxX1BJTl9DU1BJMl9TUzIJPSBJT01VWF9QSU4oMHhmZiwgMTIwKSwKKwlNWDMxX1BJTl9DU1BJMl9TUzEJPSBJT01VWF9QSU4oMHhmZiwgMTIxKSwKKwlNWDMxX1BJTl9DU1BJMl9TUzAJPSBJT01VWF9QSU4oMHhmZiwgMTIyKSwKKwlNWDMxX1BJTl9DU1BJMl9NSVNPCT0gSU9NVVhfUElOKDB4ZmYsIDEyMyksCisJTVgzMV9QSU5fQ1NQSTJfTU9TSQk9IElPTVVYX1BJTigweGZmLCAxMjQpLAorCU1YMzFfUElOX0NTUEkxX1NQSV9SRFkJPSBJT01VWF9QSU4oMHhmZiwgMTI1KSwKKwlNWDMxX1BJTl9DU1BJMV9TQ0xLCT0gSU9NVVhfUElOKDB4ZmYsIDEyNiksCisJTVgzMV9QSU5fQ1NQSTFfU1MyCT0gSU9NVVhfUElOKDB4ZmYsIDEyNyksCisJTVgzMV9QSU5fQ1NQSTFfU1MxCT0gSU9NVVhfUElOKDB4ZmYsIDEyOCksCisJTVgzMV9QSU5fQ1NQSTFfU1MwCT0gSU9NVVhfUElOKDB4ZmYsIDEyOSksCisJTVgzMV9QSU5fQ1NQSTFfTUlTTwk9IElPTVVYX1BJTigweGZmLCAxMzApLAorCU1YMzFfUElOX0NTUEkxX01PU0kJPSBJT01VWF9QSU4oMHhmZiwgMTMxKSwKKwlNWDMxX1BJTl9TRlM2CQk9IElPTVVYX1BJTigyNiwgICAxMzIpLAorCU1YMzFfUElOX1NDSzYJCT0gSU9NVVhfUElOKDI1LCAgIDEzMyksCisJTVgzMV9QSU5fU1JYRDYJCT0gSU9NVVhfUElOKDI0LCAgIDEzNCksCisJTVgzMV9QSU5fU1RYRDYJCT0gSU9NVVhfUElOKDIzLCAgIDEzNSksCisJTVgzMV9QSU5fU0ZTNQkJPSBJT01VWF9QSU4oMHhmZiwgMTM2KSwKKwlNWDMxX1BJTl9TQ0s1CQk9IElPTVVYX1BJTigweGZmLCAxMzcpLAorCU1YMzFfUElOX1NSWEQ1CQk9IElPTVVYX1BJTigyMiwgICAxMzgpLAorCU1YMzFfUElOX1NUWEQ1CQk9IElPTVVYX1BJTigyMSwgICAxMzkpLAorCU1YMzFfUElOX1NGUzQJCT0gSU9NVVhfUElOKDB4ZmYsIDE0MCksCisJTVgzMV9QSU5fU0NLNAkJPSBJT01VWF9QSU4oMHhmZiwgMTQxKSwKKwlNWDMxX1BJTl9TUlhENAkJPSBJT01VWF9QSU4oMjAsICAgMTQyKSwKKwlNWDMxX1BJTl9TVFhENAkJPSBJT01VWF9QSU4oMTksICAgMTQzKSwKKwlNWDMxX1BJTl9TRlMzCQk9IElPTVVYX1BJTigweGZmLCAxNDQpLAorCU1YMzFfUElOX1NDSzMJCT0gSU9NVVhfUElOKDB4ZmYsIDE0NSksCisJTVgzMV9QSU5fU1JYRDMJCT0gSU9NVVhfUElOKDE4LCAgIDE0NiksCisJTVgzMV9QSU5fU1RYRDMJCT0gSU9NVVhfUElOKDE3LCAgIDE0NyksCisJTVgzMV9QSU5fSTJDX0RBVAk9IElPTVVYX1BJTigweGZmLCAxNDgpLAorCU1YMzFfUElOX0kyQ19DTEsJPSBJT01VWF9QSU4oMHhmZiwgMTQ5KSwKKwlNWDMxX1BJTl9DU0lfUElYQ0xLCT0gSU9NVVhfUElOKDgzLCAgIDE1MCksCisJTVgzMV9QSU5fQ1NJX0hTWU5DCT0gSU9NVVhfUElOKDgyLCAgIDE1MSksCisJTVgzMV9QSU5fQ1NJX1ZTWU5DCT0gSU9NVVhfUElOKDgxLCAgIDE1MiksCisJTVgzMV9QSU5fQ1NJX01DTEsJPSBJT01VWF9QSU4oODAsICAgMTUzKSwKKwlNWDMxX1BJTl9DU0lfRDE1CT0gSU9NVVhfUElOKDc5LCAgIDE1NCksCisJTVgzMV9QSU5fQ1NJX0QxNAk9IElPTVVYX1BJTig3OCwgICAxNTUpLAorCU1YMzFfUElOX0NTSV9EMTMJPSBJT01VWF9QSU4oNzcsICAgMTU2KSwKKwlNWDMxX1BJTl9DU0lfRDEyCT0gSU9NVVhfUElOKDc2LCAgIDE1NyksCisJTVgzMV9QSU5fQ1NJX0QxMQk9IElPTVVYX1BJTig3NSwgICAxNTgpLAorCU1YMzFfUElOX0NTSV9EMTAJPSBJT01VWF9QSU4oNzQsICAgMTU5KSwKKwlNWDMxX1BJTl9DU0lfRDkJCT0gSU9NVVhfUElOKDczLCAgIDE2MCksCisJTVgzMV9QSU5fQ1NJX0Q4CQk9IElPTVVYX1BJTig3MiwgICAxNjEpLAorCU1YMzFfUElOX0NTSV9ENwkJPSBJT01VWF9QSU4oNzEsICAgMTYyKSwKKwlNWDMxX1BJTl9DU0lfRDYJCT0gSU9NVVhfUElOKDcwLCAgIDE2MyksCisJTVgzMV9QSU5fQ1NJX0Q1CQk9IElPTVVYX1BJTig2OSwgICAxNjQpLAorCU1YMzFfUElOX0NTSV9ENAkJPSBJT01VWF9QSU4oNjgsICAgMTY1KSwKKwlNWDMxX1BJTl9NX0dSQU5UCT0gSU9NVVhfUElOKDB4ZmYsIDE2NiksCisJTVgzMV9QSU5fTV9SRVFVRVNUCT0gSU9NVVhfUElOKDB4ZmYsIDE2NyksCisJTVgzMV9QSU5fUENfUE9FCQk9IElPTVVYX1BJTigweGZmLCAxNjgpLAorCU1YMzFfUElOX1BDX1JXX0IJPSBJT01VWF9QSU4oMHhmZiwgMTY5KSwKKwlNWDMxX1BJTl9JT0lTMTYJCT0gSU9NVVhfUElOKDB4ZmYsIDE3MCksCisJTVgzMV9QSU5fUENfUlNUCQk9IElPTVVYX1BJTigweGZmLCAxNzEpLAorCU1YMzFfUElOX1BDX0JWRDIJPSBJT01VWF9QSU4oMHhmZiwgMTcyKSwKKwlNWDMxX1BJTl9QQ19CVkQxCT0gSU9NVVhfUElOKDB4ZmYsIDE3MyksCisJTVgzMV9QSU5fUENfVlMyCQk9IElPTVVYX1BJTigweGZmLCAxNzQpLAorCU1YMzFfUElOX1BDX1ZTMQkJPSBJT01VWF9QSU4oMHhmZiwgMTc1KSwKKwlNWDMxX1BJTl9QQ19QV1JPTgk9IElPTVVYX1BJTigweGZmLCAxNzYpLAorCU1YMzFfUElOX1BDX1JFQURZCT0gSU9NVVhfUElOKDB4ZmYsIDE3NyksCisJTVgzMV9QSU5fUENfV0FJVF9CCT0gSU9NVVhfUElOKDB4ZmYsIDE3OCksCisJTVgzMV9QSU5fUENfQ0QyX0IJPSBJT01VWF9QSU4oMHhmZiwgMTc5KSwKKwlNWDMxX1BJTl9QQ19DRDFfQgk9IElPTVVYX1BJTigweGZmLCAxODApLAorCU1YMzFfUElOX0QwCQk9IElPTVVYX1BJTigweGZmLCAxODEpLAorCU1YMzFfUElOX0QxCQk9IElPTVVYX1BJTigweGZmLCAxODIpLAorCU1YMzFfUElOX0QyCQk9IElPTVVYX1BJTigweGZmLCAxODMpLAorCU1YMzFfUElOX0QzCQk9IElPTVVYX1BJTigweGZmLCAxODQpLAorCU1YMzFfUElOX0Q0CQk9IElPTVVYX1BJTigweGZmLCAxODUpLAorCU1YMzFfUElOX0Q1CQk9IElPTVVYX1BJTigweGZmLCAxODYpLAorCU1YMzFfUElOX0Q2CQk9IElPTVVYX1BJTigweGZmLCAxODcpLAorCU1YMzFfUElOX0Q3CQk9IElPTVVYX1BJTigweGZmLCAxODgpLAorCU1YMzFfUElOX0Q4CQk9IElPTVVYX1BJTigweGZmLCAxODkpLAorCU1YMzFfUElOX0Q5CQk9IElPTVVYX1BJTigweGZmLCAxOTApLAorCU1YMzFfUElOX0QxMAkJPSBJT01VWF9QSU4oMHhmZiwgMTkxKSwKKwlNWDMxX1BJTl9EMTEJCT0gSU9NVVhfUElOKDB4ZmYsIDE5MiksCisJTVgzMV9QSU5fRDEyCQk9IElPTVVYX1BJTigweGZmLCAxOTMpLAorCU1YMzFfUElOX0QxMwkJPSBJT01VWF9QSU4oMHhmZiwgMTk0KSwKKwlNWDMxX1BJTl9EMTQJCT0gSU9NVVhfUElOKDB4ZmYsIDE5NSksCisJTVgzMV9QSU5fRDE1CQk9IElPTVVYX1BJTigweGZmLCAxOTYpLAorCU1YMzFfUElOX05GUkIJCT0gSU9NVVhfUElOKDE2LCAgIDE5NyksCisJTVgzMV9QSU5fTkZDRV9CCQk9IElPTVVYX1BJTigxNSwgICAxOTgpLAorCU1YMzFfUElOX05GV1BfQgkJPSBJT01VWF9QSU4oMTQsICAgMTk5KSwKKwlNWDMxX1BJTl9ORkNMRQkJPSBJT01VWF9QSU4oMTMsICAgMjAwKSwKKwlNWDMxX1BJTl9ORkFMRQkJPSBJT01VWF9QSU4oMTIsICAgMjAxKSwKKwlNWDMxX1BJTl9ORlJFX0IJCT0gSU9NVVhfUElOKDExLCAgIDIwMiksCisJTVgzMV9QSU5fTkZXRV9CCQk9IElPTVVYX1BJTigxMCwgICAyMDMpLAorCU1YMzFfUElOX1NEUVMzCQk9IElPTVVYX1BJTigweGZmLCAyMDQpLAorCU1YMzFfUElOX1NEUVMyCQk9IElPTVVYX1BJTigweGZmLCAyMDUpLAorCU1YMzFfUElOX1NEUVMxCQk9IElPTVVYX1BJTigweGZmLCAyMDYpLAorCU1YMzFfUElOX1NEUVMwCQk9IElPTVVYX1BJTigweGZmLCAyMDcpLAorCU1YMzFfUElOX1NEQ0xLX0IJPSBJT01VWF9QSU4oMHhmZiwgMjA4KSwKKwlNWDMxX1BJTl9TRENMSwkJPSBJT01VWF9QSU4oMHhmZiwgMjA5KSwKKwlNWDMxX1BJTl9TRENLRTEJCT0gSU9NVVhfUElOKDB4ZmYsIDIxMCksCisJTVgzMV9QSU5fU0RDS0UwCQk9IElPTVVYX1BJTigweGZmLCAyMTEpLAorCU1YMzFfUElOX1NEV0UJCT0gSU9NVVhfUElOKDB4ZmYsIDIxMiksCisJTVgzMV9QSU5fQ0FTCQk9IElPTVVYX1BJTigweGZmLCAyMTMpLAorCU1YMzFfUElOX1JBUwkJPSBJT01VWF9QSU4oMHhmZiwgMjE0KSwKKwlNWDMxX1BJTl9SVwkJPSBJT01VWF9QSU4oMHhmZiwgMjE1KSwKKwlNWDMxX1BJTl9CQ0xLCQk9IElPTVVYX1BJTigweGZmLCAyMTYpLAorCU1YMzFfUElOX0xCQQkJPSBJT01VWF9QSU4oMHhmZiwgMjE3KSwKKwlNWDMxX1BJTl9FQ0IJCT0gSU9NVVhfUElOKDB4ZmYsIDIxOCksCisJTVgzMV9QSU5fQ1M1CQk9IElPTVVYX1BJTigweGZmLCAyMTkpLAorCU1YMzFfUElOX0NTNAkJPSBJT01VWF9QSU4oMHhmZiwgMjIwKSwKKwlNWDMxX1BJTl9DUzMJCT0gSU9NVVhfUElOKDB4ZmYsIDIyMSksCisJTVgzMV9QSU5fQ1MyCQk9IElPTVVYX1BJTigweGZmLCAyMjIpLAorCU1YMzFfUElOX0NTMQkJPSBJT01VWF9QSU4oMHhmZiwgMjIzKSwKKwlNWDMxX1BJTl9DUzAJCT0gSU9NVVhfUElOKDB4ZmYsIDIyNCksCisJTVgzMV9QSU5fT0UJCT0gSU9NVVhfUElOKDB4ZmYsIDIyNSksCisJTVgzMV9QSU5fRUIxCQk9IElPTVVYX1BJTigweGZmLCAyMjYpLAorCU1YMzFfUElOX0VCMAkJPSBJT01VWF9QSU4oMHhmZiwgMjI3KSwKKwlNWDMxX1BJTl9EUU0zCQk9IElPTVVYX1BJTigweGZmLCAyMjgpLAorCU1YMzFfUElOX0RRTTIJCT0gSU9NVVhfUElOKDB4ZmYsIDIyOSksCisJTVgzMV9QSU5fRFFNMQkJPSBJT01VWF9QSU4oMHhmZiwgMjMwKSwKKwlNWDMxX1BJTl9EUU0wCQk9IElPTVVYX1BJTigweGZmLCAyMzEpLAorCU1YMzFfUElOX1NEMzEJCT0gSU9NVVhfUElOKDB4ZmYsIDIzMiksCisJTVgzMV9QSU5fU0QzMAkJPSBJT01VWF9QSU4oMHhmZiwgMjMzKSwKKwlNWDMxX1BJTl9TRDI5CQk9IElPTVVYX1BJTigweGZmLCAyMzQpLAorCU1YMzFfUElOX1NEMjgJCT0gSU9NVVhfUElOKDB4ZmYsIDIzNSksCisJTVgzMV9QSU5fU0QyNwkJPSBJT01VWF9QSU4oMHhmZiwgMjM2KSwKKwlNWDMxX1BJTl9TRDI2CQk9IElPTVVYX1BJTigweGZmLCAyMzcpLAorCU1YMzFfUElOX1NEMjUJCT0gSU9NVVhfUElOKDB4ZmYsIDIzOCksCisJTVgzMV9QSU5fU0QyNAkJPSBJT01VWF9QSU4oMHhmZiwgMjM5KSwKKwlNWDMxX1BJTl9TRDIzCQk9IElPTVVYX1BJTigweGZmLCAyNDApLAorCU1YMzFfUElOX1NEMjIJCT0gSU9NVVhfUElOKDB4ZmYsIDI0MSksCisJTVgzMV9QSU5fU0QyMQkJPSBJT01VWF9QSU4oMHhmZiwgMjQyKSwKKwlNWDMxX1BJTl9TRDIwCQk9IElPTVVYX1BJTigweGZmLCAyNDMpLAorCU1YMzFfUElOX1NEMTkJCT0gSU9NVVhfUElOKDB4ZmYsIDI0NCksCisJTVgzMV9QSU5fU0QxOAkJPSBJT01VWF9QSU4oMHhmZiwgMjQ1KSwKKwlNWDMxX1BJTl9TRDE3CQk9IElPTVVYX1BJTigweGZmLCAyNDYpLAorCU1YMzFfUElOX1NEMTYJCT0gSU9NVVhfUElOKDB4ZmYsIDI0NyksCisJTVgzMV9QSU5fU0QxNQkJPSBJT01VWF9QSU4oMHhmZiwgMjQ4KSwKKwlNWDMxX1BJTl9TRDE0CQk9IElPTVVYX1BJTigweGZmLCAyNDkpLAorCU1YMzFfUElOX1NEMTMJCT0gSU9NVVhfUElOKDB4ZmYsIDI1MCksCisJTVgzMV9QSU5fU0QxMgkJPSBJT01VWF9QSU4oMHhmZiwgMjUxKSwKKwlNWDMxX1BJTl9TRDExCQk9IElPTVVYX1BJTigweGZmLCAyNTIpLAorCU1YMzFfUElOX1NEMTAJCT0gSU9NVVhfUElOKDB4ZmYsIDI1MyksCisJTVgzMV9QSU5fU0Q5CQk9IElPTVVYX1BJTigweGZmLCAyNTQpLAorCU1YMzFfUElOX1NEOAkJPSBJT01VWF9QSU4oMHhmZiwgMjU1KSwKKwlNWDMxX1BJTl9TRDcJCT0gSU9NVVhfUElOKDB4ZmYsIDI1NiksCisJTVgzMV9QSU5fU0Q2CQk9IElPTVVYX1BJTigweGZmLCAyNTcpLAorCU1YMzFfUElOX1NENQkJPSBJT01VWF9QSU4oMHhmZiwgMjU4KSwKKwlNWDMxX1BJTl9TRDQJCT0gSU9NVVhfUElOKDB4ZmYsIDI1OSksCisJTVgzMV9QSU5fU0QzCQk9IElPTVVYX1BJTigweGZmLCAyNjApLAorCU1YMzFfUElOX1NEMgkJPSBJT01VWF9QSU4oMHhmZiwgMjYxKSwKKwlNWDMxX1BJTl9TRDEJCT0gSU9NVVhfUElOKDB4ZmYsIDI2MiksCisJTVgzMV9QSU5fU0QwCQk9IElPTVVYX1BJTigweGZmLCAyNjMpLAorCU1YMzFfUElOX1NEQkEwCQk9IElPTVVYX1BJTigweGZmLCAyNjQpLAorCU1YMzFfUElOX1NEQkExCQk9IElPTVVYX1BJTigweGZmLCAyNjUpLAorCU1YMzFfUElOX0EyNQkJPSBJT01VWF9QSU4oMHhmZiwgMjY2KSwKKwlNWDMxX1BJTl9BMjQJCT0gSU9NVVhfUElOKDB4ZmYsIDI2NyksCisJTVgzMV9QSU5fQTIzCQk9IElPTVVYX1BJTigweGZmLCAyNjgpLAorCU1YMzFfUElOX0EyMgkJPSBJT01VWF9QSU4oMHhmZiwgMjY5KSwKKwlNWDMxX1BJTl9BMjEJCT0gSU9NVVhfUElOKDB4ZmYsIDI3MCksCisJTVgzMV9QSU5fQTIwCQk9IElPTVVYX1BJTigweGZmLCAyNzEpLAorCU1YMzFfUElOX0ExOQkJPSBJT01VWF9QSU4oMHhmZiwgMjcyKSwKKwlNWDMxX1BJTl9BMTgJCT0gSU9NVVhfUElOKDB4ZmYsIDI3MyksCisJTVgzMV9QSU5fQTE3CQk9IElPTVVYX1BJTigweGZmLCAyNzQpLAorCU1YMzFfUElOX0ExNgkJPSBJT01VWF9QSU4oMHhmZiwgMjc1KSwKKwlNWDMxX1BJTl9BMTQJCT0gSU9NVVhfUElOKDB4ZmYsIDI3NiksCisJTVgzMV9QSU5fQTE1CQk9IElPTVVYX1BJTigweGZmLCAyNzcpLAorCU1YMzFfUElOX0ExMwkJPSBJT01VWF9QSU4oMHhmZiwgMjc4KSwKKwlNWDMxX1BJTl9BMTIJCT0gSU9NVVhfUElOKDB4ZmYsIDI3OSksCisJTVgzMV9QSU5fQTExCQk9IElPTVVYX1BJTigweGZmLCAyODApLAorCU1YMzFfUElOX01BMTAJCT0gSU9NVVhfUElOKDB4ZmYsIDI4MSksCisJTVgzMV9QSU5fQTEwCQk9IElPTVVYX1BJTigweGZmLCAyODIpLAorCU1YMzFfUElOX0E5CQk9IElPTVVYX1BJTigweGZmLCAyODMpLAorCU1YMzFfUElOX0E4CQk9IElPTVVYX1BJTigweGZmLCAyODQpLAorCU1YMzFfUElOX0E3CQk9IElPTVVYX1BJTigweGZmLCAyODUpLAorCU1YMzFfUElOX0E2CQk9IElPTVVYX1BJTigweGZmLCAyODYpLAorCU1YMzFfUElOX0E1CQk9IElPTVVYX1BJTigweGZmLCAyODcpLAorCU1YMzFfUElOX0E0CQk9IElPTVVYX1BJTigweGZmLCAyODgpLAorCU1YMzFfUElOX0EzCQk9IElPTVVYX1BJTigweGZmLCAyODkpLAorCU1YMzFfUElOX0EyCQk9IElPTVVYX1BJTigweGZmLCAyOTApLAorCU1YMzFfUElOX0ExCQk9IElPTVVYX1BJTigweGZmLCAyOTEpLAorCU1YMzFfUElOX0EwCQk9IElPTVVYX1BJTigweGZmLCAyOTIpLAorCU1YMzFfUElOX1ZQRzEJCT0gSU9NVVhfUElOKDB4ZmYsIDI5MyksCisJTVgzMV9QSU5fVlBHMAkJPSBJT01VWF9QSU4oMHhmZiwgMjk0KSwKKwlNWDMxX1BJTl9EVkZTMQkJPSBJT01VWF9QSU4oMHhmZiwgMjk1KSwKKwlNWDMxX1BJTl9EVkZTMAkJPSBJT01VWF9QSU4oMHhmZiwgMjk2KSwKKwlNWDMxX1BJTl9WU1RCWQkJPSBJT01VWF9QSU4oMHhmZiwgMjk3KSwKKwlNWDMxX1BJTl9QT1dFUl9GQUlMCT0gSU9NVVhfUElOKDB4ZmYsIDI5OCksCisJTVgzMV9QSU5fQ0tJTAkJPSBJT01VWF9QSU4oMHhmZiwgMjk5KSwKKwlNWDMxX1BJTl9CT09UX01PREU0CT0gSU9NVVhfUElOKDB4ZmYsIDMwMCksCisJTVgzMV9QSU5fQk9PVF9NT0RFMwk9IElPTVVYX1BJTigweGZmLCAzMDEpLAorCU1YMzFfUElOX0JPT1RfTU9ERTIJPSBJT01VWF9QSU4oMHhmZiwgMzAyKSwKKwlNWDMxX1BJTl9CT09UX01PREUxCT0gSU9NVVhfUElOKDB4ZmYsIDMwMyksCisJTVgzMV9QSU5fQk9PVF9NT0RFMAk9IElPTVVYX1BJTigweGZmLCAzMDQpLAorCU1YMzFfUElOX0NMS08JCT0gSU9NVVhfUElOKDB4ZmYsIDMwNSksCisJTVgzMV9QSU5fUE9SX0IJCT0gSU9NVVhfUElOKDB4ZmYsIDMwNiksCisJTVgzMV9QSU5fUkVTRVRfSU5fQgk9IElPTVVYX1BJTigweGZmLCAzMDcpLAorCU1YMzFfUElOX0NLSUgJCT0gSU9NVVhfUElOKDB4ZmYsIDMwOCksCisJTVgzMV9QSU5fU0lNUEQwCQk9IElPTVVYX1BJTigzNSwgICAzMDkpLAorCU1YMzFfUElOX1NSWDAJCT0gSU9NVVhfUElOKDM0LCAgIDMxMCksCisJTVgzMV9QSU5fU1RYMAkJPSBJT01VWF9QSU4oMzMsICAgMzExKSwKKwlNWDMxX1BJTl9TVkVOMAkJPSBJT01VWF9QSU4oMzIsICAgMzEyKSwKKwlNWDMxX1BJTl9TUlNUMAkJPSBJT01VWF9QSU4oNjcsICAgMzEzKSwKKwlNWDMxX1BJTl9TQ0xLMAkJPSBJT01VWF9QSU4oNjYsICAgMzE0KSwKKwlNWDMxX1BJTl9HUElPM18xCT0gSU9NVVhfUElOKDY1LCAgIDMxNSksCisJTVgzMV9QSU5fR1BJTzNfMAk9IElPTVVYX1BJTig2NCwgICAzMTYpLAorCU1YMzFfUElOX0dQSU8xXzYJPSBJT01VWF9QSU4oIDYsICAgMzE3KSwKKwlNWDMxX1BJTl9HUElPMV81CT0gSU9NVVhfUElOKCA1LCAgIDMxOCksCisJTVgzMV9QSU5fR1BJTzFfNAk9IElPTVVYX1BJTiggNCwgICAzMTkpLAorCU1YMzFfUElOX0dQSU8xXzMJPSBJT01VWF9QSU4oIDMsICAgMzIwKSwKKwlNWDMxX1BJTl9HUElPMV8yCT0gSU9NVVhfUElOKCAyLCAgIDMyMSksCisJTVgzMV9QSU5fR1BJTzFfMQk9IElPTVVYX1BJTiggMSwgICAzMjIpLAorCU1YMzFfUElOX0dQSU8xXzAJPSBJT01VWF9QSU4oIDAsICAgMzIzKSwKKwlNWDMxX1BJTl9QV01PCQk9IElPTVVYX1BJTiggOSwgICAzMjQpLAorCU1YMzFfUElOX1dBVENIRE9HX1JTVAk9IElPTVVYX1BJTigweGZmLCAzMjUpLAorCU1YMzFfUElOX0NPTVBBUkUJPSBJT01VWF9QSU4oIDgsICAgMzI2KSwKKwlNWDMxX1BJTl9DQVBUVVJFCT0gSU9NVVhfUElOKCA3LCAgIDMyNyksCit9OworCisvKgorICogQ29udmVuaWVuY2UgdmFsdWVzIGZvciB1c2Ugd2l0aCBteGNfaW9tdXhfbW9kZSgpCisgKgorICogRm9ybWF0IGhlcmUgaXMgTVgzMV9QSU5fKHBpbiBuYW1lKV9fKGZ1bmN0aW9uKQorICovCisjZGVmaW5lIE1YMzFfUElOX0NTUEkzX01PU0lfX1JYRDMJSU9NVVhfTU9ERShNWDMxX1BJTl9DU1BJM19NT1NJLCBJT01VWF9DT05GSUdfQUxUMSkKKyNkZWZpbmUgTVgzMV9QSU5fQ1NQSTNfTUlTT19fVFhEMwlJT01VWF9NT0RFKE1YMzFfUElOX0NTUEkzX01JU08sIElPTVVYX0NPTkZJR19BTFQxKQorI2RlZmluZSBNWDMxX1BJTl9DVFMxX19DVFMxCQlJT01VWF9NT0RFKE1YMzFfUElOX0NUUzEsIElPTVVYX0NPTkZJR19GVU5DKQorI2RlZmluZSBNWDMxX1BJTl9SVFMxX19SVFMxCQlJT01VWF9NT0RFKE1YMzFfUElOX1JUUzEsIElPTVVYX0NPTkZJR19GVU5DKQorI2RlZmluZSBNWDMxX1BJTl9UWEQxX19UWEQxCQlJT01VWF9NT0RFKE1YMzFfUElOX1RYRDEsIElPTVVYX0NPTkZJR19GVU5DKQorI2RlZmluZSBNWDMxX1BJTl9SWEQxX19SWEQxCQlJT01VWF9NT0RFKE1YMzFfUElOX1JYRDEsIElPTVVYX0NPTkZJR19GVU5DKQorCisvKgorICogVGhpcyBmdW5jdGlvbiBjb25maWd1cmVzIHRoZSBwYWQgdmFsdWUgZm9yIGEgSU9NVVggcGluLgorICovCit2b2lkIG14Y19pb211eF9zZXRfcGFkKGVudW0gaW9tdXhfcGlucywgdTMyKTsKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pcnFzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaXJxcy5oCmluZGV4IGIyYzUyMDUuLmY0MTYxMzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pcnFzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lycXMuaApAQCAtMTMsMTcgKzEzLDQgQEAKIAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogCi0jZGVmaW5lIE1YQ19JUlFfVE9fRVhQSU8oaXJxKQkoKGlycSkgLSBNWENfRVhQX0lPX0JBU0UpCi0KLSNkZWZpbmUgTVhDX0lSUV9UT19HUElPKGlycSkJKChpcnEpIC0gTVhDX0dQSU9fSU5UX0JBU0UpCi0jZGVmaW5lIE1YQ19HUElPX1RPX0lSUSh4KQkoTVhDX0dQSU9fSU5UX0JBU0UgKyB4KQotCi0vKiBOdW1iZXIgb2Ygbm9ybWFsIGludGVycnVwdHMgKi8KLSNkZWZpbmUgTlJfSVJRUwkJKE1YQ19NQVhfSU5UX0xJTkVTICsgXAotCQkJTVhDX01BWF9HUElPX0xJTkVTICsgXAotCQkJTVhDX01BWF9WSVJUVUFMX0lOVFMpCi0KLS8qIE51bWJlciBvZiBmYXN0IGludGVycnVwdHMgKi8KLSNkZWZpbmUgTlJfRklRUwkJTVhDX01BWF9JTlRTCi0KICNlbmRpZiAvKiBfX0FTTV9BUkNIX01YQ19JUlFTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214MjcuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teDI3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEyZWNjMgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teDI3LmgKQEAgLTAsMCArMSwzMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX01YMjdfSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX01YMjdfSF9fCisKKyNpZm5kZWYgX19BU01fQVJDSF9NWENfSEFSRFdBUkVfSF9fCisjZXJyb3IgIkRvIG5vdCBpbmNsdWRlIGRpcmVjdGx5LiIKKyNlbmRpZgorCisvKiBJUkFNICovCisjZGVmaW5lIElSQU1fQkFTRV9BRERSICAgICAgICAgIDB4RkZGRjRDMDAJLyogaW50ZXJuYWwgcmFtICovCisKKy8qIFJlZ2lzdGVyIG9mZmVzdHMgKi8KKyNkZWZpbmUgQUlQSV9CQVNFX0FERFIgICAgICAgICAgMHgxMDAwMDAwMAorI2RlZmluZSBBSVBJX0JBU0VfQUREUl9WSVJUICAgICAweEY0MDAwMDAwCisjZGVmaW5lIEFJUElfU0laRSAgICAgICAgICAgICAgIFNaXzFNCisKKyNkZWZpbmUgRE1BX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwMTAwMCkKKyNkZWZpbmUgV0RPR19CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwMjAwMCkKKyNkZWZpbmUgR1BUMV9CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwMzAwMCkKKyNkZWZpbmUgR1BUMl9CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwNDAwMCkKKyNkZWZpbmUgR1BUM19CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwNTAwMCkKKyNkZWZpbmUgUFdNX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwNjAwMCkKKyNkZWZpbmUgUlRDX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwNzAwMCkKKyNkZWZpbmUgS1BQX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwODAwMCkKKyNkZWZpbmUgT1dJUkVfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwOTAwMCkKKyNkZWZpbmUgVUFSVDFfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwQTAwMCkKKyNkZWZpbmUgVUFSVDJfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwQjAwMCkKKyNkZWZpbmUgVUFSVDNfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwQzAwMCkKKyNkZWZpbmUgVUFSVDRfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwRDAwMCkKKyNkZWZpbmUgQ1NQSTFfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwRTAwMCkKKyNkZWZpbmUgQ1NQSTJfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgwRjAwMCkKKyNkZWZpbmUgU1NJMV9CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgxMDAwMCkKKyNkZWZpbmUgU1NJMl9CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgxMTAwMCkKKyNkZWZpbmUgSTJDX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgxMjAwMCkKKyNkZWZpbmUgU0RIQzFfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgxMzAwMCkKKyNkZWZpbmUgU0RIQzJfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgxNDAwMCkKKyNkZWZpbmUgR1BJT19CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgxNTAwMCkKKyNkZWZpbmUgQVVETVVYX0JBU0VfQUREUiAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgxNjAwMCkKKworI2RlZmluZSBDU1BJM19CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDE3MDAwKQorI2RlZmluZSBNU0hDX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDE4MDAwKQorI2RlZmluZSBHUFQ1X0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDE5MDAwKQorI2RlZmluZSBHUFQ0X0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDFBMDAwKQorI2RlZmluZSBVQVJUNV9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDFCMDAwKQorI2RlZmluZSBVQVJUNl9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDFDMDAwKQorI2RlZmluZSBJMkMyX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDFEMDAwKQorI2RlZmluZSBTREhDM19CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDFFMDAwKQorI2RlZmluZSBHUFQ2X0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDFGMDAwKQorCisjZGVmaW5lIExDRENfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MjEwMDApCisjZGVmaW5lIFNMQ0RDX0JBU0VfQUREUiAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MjIwMDApCisjZGVmaW5lIFZQVV9CQVNFX0FERFIgICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MjMwMDApCisjZGVmaW5lIFVTQk9UR19CQVNFX0FERFIgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MjQwMDApCisvKiBmb3IgbXgyNyovCisjZGVmaW5lIE9UR19CQVNFX0FERFIgICAgICAgICAgIFVTQk9UR19CQVNFX0FERFIKKyNkZWZpbmUgU0FIQVJBX0JBU0VfQUREUiAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyNTAwMCkKKyNkZWZpbmUgRU1NQV9CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyNjQwMCkKKyNkZWZpbmUgQ0NNX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyNzAwMCkKKyNkZWZpbmUgU1lTQ1RSTF9CQVNFX0FERFIgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyNzgwMCkKKyNkZWZpbmUgSUlNX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyODAwMCkKKworI2RlZmluZSBSVElDX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDJBMDAwKQorI2RlZmluZSBGRUNfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDJCMDAwKQorI2RlZmluZSBTQ0NfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDJDMDAwKQorI2RlZmluZSBFVEJfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDNCMDAwKQorI2RlZmluZSBFVEJfUkFNX0JBU0VfQUREUiAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDNDMDAwKQorCisjZGVmaW5lIEpBTV9CQVNFX0FERFIgICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4M0UwMDApCisjZGVmaW5lIE1BWF9CQVNFX0FERFIgICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4M0YwMDApCisKKy8qIFJPTVAgYW5kIEFWSUMgKi8KKyNkZWZpbmUgUk9NUF9CQVNFX0FERFIgICAgICAgICAgMHgxMDA0MTAwMAorCisjZGVmaW5lIEFWSUNfQkFTRV9BRERSICAgICAgICAgIDB4MTAwNDAwMDAKKworI2RlZmluZSBTQUhCMV9CQVNFX0FERFIgICAgICAgICAweDgwMDAwMDAwCisjZGVmaW5lIFNBSEIxX0JBU0VfQUREUl9WSVJUICAgIDB4RjQxMDAwMDAKKyNkZWZpbmUgU0FIQjFfU0laRSAgICAgICAgICAgICAgU1pfMU0KKworI2RlZmluZSBDU0lfQkFTRV9BRERSICAgICAgICAgICAoU0FIQjFfQkFTRV9BRERSICsgMHgwMDAwKQorI2RlZmluZSBBVEFfQkFTRV9BRERSICAgICAgICAgICAoU0FIQjFfQkFTRV9BRERSICsgMHgxMDAwKQorCisvKiBOQU5ELCBTRFJBTSwgV0VJTSwgTTNJRiwgRU1JIGNvbnRyb2xsZXJzICovCisjZGVmaW5lIFhfTUVNQ19CQVNFX0FERFIgICAgICAgIDB4RDgwMDAwMDAKKyNkZWZpbmUgWF9NRU1DX0JBU0VfQUREUl9WSVJUICAgMHhGNDIwMDAwMAorI2RlZmluZSBYX01FTUNfU0laRSAgICAgICAgICAgICBTWl8xTQorCisjZGVmaW5lIE5GQ19CQVNFX0FERFIgICAgICAgICAgIChYX01FTUNfQkFTRV9BRERSKQorI2RlZmluZSBTRFJBTUNfQkFTRV9BRERSICAgICAgICAoWF9NRU1DX0JBU0VfQUREUiArIDB4MTAwMCkKKyNkZWZpbmUgV0VJTV9CQVNFX0FERFIgICAgICAgICAgKFhfTUVNQ19CQVNFX0FERFIgKyAweDIwMDApCisjZGVmaW5lIE0zSUZfQkFTRV9BRERSICAgICAgICAgIChYX01FTUNfQkFTRV9BRERSICsgMHgzMDAwKQorI2RlZmluZSBQQ01DSUFfQ1RMX0JBU0VfQUREUiAgICAoWF9NRU1DX0JBU0VfQUREUiArIDB4NDAwMCkKKworLyogTWVtb3J5IHJlZ2lvbnMgYW5kIENTICovCisjZGVmaW5lIFNEUkFNX0JBU0VfQUREUgkJMHhBMDAwMDAwMAorI2RlZmluZSBDU0QxX0JBU0VfQUREUgkJMHhCMDAwMDAwMAorCisjZGVmaW5lIENTMF9CQVNFX0FERFIgICAgICAgICAgIDB4QzAwMDAwMDAKKyNkZWZpbmUgQ1MxX0JBU0VfQUREUiAgICAgICAgICAgMHhDODAwMDAwMAorI2RlZmluZSBDUzJfQkFTRV9BRERSICAgICAgICAgICAweEQwMDAwMDAwCisjZGVmaW5lIENTM19CQVNFX0FERFIgICAgICAgICAgIDB4RDIwMDAwMDAKKyNkZWZpbmUgQ1M0X0JBU0VfQUREUiAgICAgICAgICAgMHhENDAwMDAwMAorI2RlZmluZSBDUzVfQkFTRV9BRERSICAgICAgICAgICAweEQ2MDAwMDAwCisjZGVmaW5lIFBDTUNJQV9NRU1fQkFTRV9BRERSICAgIDB4REMwMDAwMDAKKworLyoKKyAqIFRoaXMgbWFjcm8gZGVmaW5lcyB0aGUgcGh5c2ljYWwgdG8gdmlydHVhbCBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCB0aGUKKyAqIHBlcmlwaGVyYWwgbW9kdWxlcy4gSXQgaXMgdXNlZCBieSBwYXNzaW5nIGluIHRoZSBwaHlzaWNhbCBhZGRyZXNzIGFzIHgKKyAqIGFuZCByZXR1cm5pbmcgdGhlIHZpcnR1YWwgYWRkcmVzcy4gSWYgdGhlIHBoeXNpY2FsIGFkZHJlc3MgaXMgbm90IG1hcHBlZCwKKyAqIGl0IHJldHVybnMgMHhERUFEQkVFRgorICovCisjZGVmaW5lIElPX0FERFJFU1MoeCkgICBcCisJKCgoeCA+PSBBSVBJX0JBU0VfQUREUikgJiYgKHggPCAoQUlQSV9CQVNFX0FERFIgKyBBSVBJX1NJWkUpKSkgPyBcCisJCUFJUElfSU9fQUREUkVTUyh4KSA6IFwKKwkoKHggPj0gU0FIQjFfQkFTRV9BRERSKSAmJiAoeCA8IChTQUhCMV9CQVNFX0FERFIgKyBTQUhCMV9TSVpFKSkpID8gXAorCQlTQUhCMV9JT19BRERSRVNTKHgpIDogXAorCSgoeCA+PSBYX01FTUNfQkFTRV9BRERSKSAmJiAoeCA8IChYX01FTUNfQkFTRV9BRERSICsgWF9NRU1DX1NJWkUpKSkgPyBcCisJCVhfTUVNQ19JT19BRERSRVNTKHgpIDogMHhERUFEQkVFRikKKworLyogZGVmaW5lIHRoZSBhZGRyZXNzIG1hcHBpbmcgbWFjcm9zOiBpbiBwaHlzaWNhbCBhZGRyZXNzIG9yZGVyICovCisjZGVmaW5lIEFJUElfSU9fQUREUkVTUyh4KSAgXAorCSgoKHgpIC0gQUlQSV9CQVNFX0FERFIpICsgQUlQSV9CQVNFX0FERFJfVklSVCkKKworI2RlZmluZSBBVklDX0lPX0FERFJFU1MoeCkJQUlQSV9JT19BRERSRVNTKHgpCisKKyNkZWZpbmUgU0FIQjFfSU9fQUREUkVTUyh4KSAgXAorCSgoKHgpIC0gU0FIQjFfQkFTRV9BRERSKSArIFNBSEIxX0JBU0VfQUREUl9WSVJUKQorCisjZGVmaW5lIENTNF9JT19BRERSRVNTKHgpICBcCisJKCgoeCkgLSBDUzRfQkFTRV9BRERSKSArIENTNF9CQVNFX0FERFJfVklSVCkKKworI2RlZmluZSBYX01FTUNfSU9fQUREUkVTUyh4KSAgXAorCSgoKHgpIC0gWF9NRU1DX0JBU0VfQUREUikgKyBYX01FTUNfQkFTRV9BRERSX1ZJUlQpCisKKyNkZWZpbmUgUENNQ0lBX0lPX0FERFJFU1MoeCkgXAorCSgoKHgpIC0gWF9NRU1DX0JBU0VfQUREUikgKyBYX01FTUNfQkFTRV9BRERSX1ZJUlQpCisKKy8qIGZpeGVkIGludGVycnB1dCBudW1iZXJzICovCisjZGVmaW5lIE1YQ19JTlRfQ0NNCQk2MworI2RlZmluZSBNWENfSU5UX0lJTQkJNjIKKyNkZWZpbmUgTVhDX0lOVF9MQ0RDCQk2MQorI2RlZmluZSBNWENfSU5UX1NMQ0RDCQk2MAorI2RlZmluZSBNWENfSU5UX1NBSEFSQQkJNTkKKyNkZWZpbmUgTVhDX0lOVF9TQ0NfU0NNCQk1OAorI2RlZmluZSBNWENfSU5UX1NDQ19TTU4JCTU3CisjZGVmaW5lIE1YQ19JTlRfVVNCMwkJNTYKKyNkZWZpbmUgTVhDX0lOVF9VU0IyCQk1NQorI2RlZmluZSBNWENfSU5UX1VTQjEJCTU0CisjZGVmaW5lIE1YQ19JTlRfVlBVCQk1MworI2RlZmluZSBNWENfSU5UX0VNTUFQUAkJNTIKKyNkZWZpbmUgTVhDX0lOVF9FTU1BUFJQCQk1MQorI2RlZmluZSBNWENfSU5UX0ZFQwkJNTAKKyNkZWZpbmUgTVhDX0lOVF9VQVJUNQkJNDkKKyNkZWZpbmUgTVhDX0lOVF9VQVJUNgkJNDgKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDE1CQk0NworI2RlZmluZSBNWENfSU5UX0RNQUNIMTQJCTQ2CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0gxMwkJNDUKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDEyCQk0NAorI2RlZmluZSBNWENfSU5UX0RNQUNIMTEJCTQzCisjZGVmaW5lIE1YQ19JTlRfRE1BQ0gxMAkJNDIKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDkJCTQxCisjZGVmaW5lIE1YQ19JTlRfRE1BQ0g4CQk0MAorI2RlZmluZSBNWENfSU5UX0RNQUNINwkJMzkKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDYJCTM4CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0g1CQkzNworI2RlZmluZSBNWENfSU5UX0RNQUNINAkJMzYKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDMJCTM1CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0gyCQkzNAorI2RlZmluZSBNWENfSU5UX0RNQUNIMQkJMzMKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDAJCTMyCisjZGVmaW5lIE1YQ19JTlRfQ1NJCQkzMQorI2RlZmluZSBNWENfSU5UX0FUQQkJMzAKKyNkZWZpbmUgTVhDX0lOVF9OQU5ERkMJCTI5CisjZGVmaW5lIE1YQ19JTlRfUENNQ0lBCQkyOAorI2RlZmluZSBNWENfSU5UX1dET0cJCTI3CisjZGVmaW5lIE1YQ19JTlRfR1BUMQkJMjYKKyNkZWZpbmUgTVhDX0lOVF9HUFQyCQkyNQorI2RlZmluZSBNWENfSU5UX0dQVDMJCTI0CisjZGVmaW5lIE1YQ19JTlRfR1BUCQlJTlRfR1BUMQorI2RlZmluZSBNWENfSU5UX1BXTQkJMjMKKyNkZWZpbmUgTVhDX0lOVF9SVEMJCTIyCisjZGVmaW5lIE1YQ19JTlRfS1BQCQkyMQorI2RlZmluZSBNWENfSU5UX1VBUlQxCQkyMAorI2RlZmluZSBNWENfSU5UX1VBUlQyCQkxOQorI2RlZmluZSBNWENfSU5UX1VBUlQzCQkxOAorI2RlZmluZSBNWENfSU5UX1VBUlQ0CQkxNworI2RlZmluZSBNWENfSU5UX0NTUEkxCQkxNgorI2RlZmluZSBNWENfSU5UX0NTUEkyCQkxNQorI2RlZmluZSBNWENfSU5UX1NTSTEJCTE0CisjZGVmaW5lIE1YQ19JTlRfU1NJMgkJMTMKKyNkZWZpbmUgTVhDX0lOVF9JMkMJCTEyCisjZGVmaW5lIE1YQ19JTlRfU0RIQzEJCTExCisjZGVmaW5lIE1YQ19JTlRfU0RIQzIJCTEwCisjZGVmaW5lIE1YQ19JTlRfU0RIQzMJCTkKKyNkZWZpbmUgTVhDX0lOVF9HUElPCQk4CisjZGVmaW5lIE1YQ19JTlRfU0RIQwkJNworI2RlZmluZSBNWENfSU5UX0NTUEkzCQk2CisjZGVmaW5lIE1YQ19JTlRfUlRJQwkJNQorI2RlZmluZSBNWENfSU5UX0dQVDQJCTQKKyNkZWZpbmUgTVhDX0lOVF9HUFQ1CQkzCisjZGVmaW5lIE1YQ19JTlRfR1BUNgkJMgorI2RlZmluZSBNWENfSU5UX0kyQzIJCTEKKworLyogZml4ZWQgRE1BIHJlcXVlc3QgbnVtYmVycyAqLworI2RlZmluZSBETUFfUkVRX05GQyAgICAgICAgICAgICAzNworI2RlZmluZSBETUFfUkVRX1NESEMzICAgICAgICAgICAzNgorI2RlZmluZSBETUFfUkVRX1VBUlQ2X1JYICAgICAgICAzNQorI2RlZmluZSBETUFfUkVRX1VBUlQ2X1RYICAgICAgICAzNAorI2RlZmluZSBETUFfUkVRX1VBUlQ1X1JYICAgICAgICAzMworI2RlZmluZSBETUFfUkVRX1VBUlQ1X1RYICAgICAgICAzMgorI2RlZmluZSBETUFfUkVRX0NTSV9SWCAgICAgICAgICAzMQorI2RlZmluZSBETUFfUkVRX0NTSV9TVEFUICAgICAgICAzMAorI2RlZmluZSBETUFfUkVRX0FUQV9SQ1YgICAgICAgICAyOQorI2RlZmluZSBETUFfUkVRX0FUQV9UWCAgICAgICAgICAyOAorI2RlZmluZSBETUFfUkVRX1VBUlQxX1RYICAgICAgICAyNworI2RlZmluZSBETUFfUkVRX1VBUlQxX1JYICAgICAgICAyNgorI2RlZmluZSBETUFfUkVRX1VBUlQyX1RYICAgICAgICAyNQorI2RlZmluZSBETUFfUkVRX1VBUlQyX1JYICAgICAgICAyNAorI2RlZmluZSBETUFfUkVRX1VBUlQzX1RYICAgICAgICAyMworI2RlZmluZSBETUFfUkVRX1VBUlQzX1JYICAgICAgICAyMgorI2RlZmluZSBETUFfUkVRX1VBUlQ0X1RYICAgICAgICAyMQorI2RlZmluZSBETUFfUkVRX1VBUlQ0X1JYICAgICAgICAyMAorI2RlZmluZSBETUFfUkVRX0NTUEkxX1RYICAgICAgICAxOQorI2RlZmluZSBETUFfUkVRX0NTUEkxX1JYICAgICAgICAxOAorI2RlZmluZSBETUFfUkVRX0NTUEkyX1RYICAgICAgICAxNworI2RlZmluZSBETUFfUkVRX0NTUEkyX1JYICAgICAgICAxNgorI2RlZmluZSBETUFfUkVRX1NTSTFfVFgxICAgICAgICAxNQorI2RlZmluZSBETUFfUkVRX1NTSTFfUlgxICAgICAgICAxNAorI2RlZmluZSBETUFfUkVRX1NTSTFfVFgwICAgICAgICAxMworI2RlZmluZSBETUFfUkVRX1NTSTFfUlgwICAgICAgICAxMgorI2RlZmluZSBETUFfUkVRX1NTSTJfVFgxICAgICAgICAxMQorI2RlZmluZSBETUFfUkVRX1NTSTJfUlgxICAgICAgICAxMAorI2RlZmluZSBETUFfUkVRX1NTSTJfVFgwICAgICAgICA5CisjZGVmaW5lIERNQV9SRVFfU1NJMl9SWDAgICAgICAgIDgKKyNkZWZpbmUgRE1BX1JFUV9TREhDMSAgICAgICAgICAgNworI2RlZmluZSBETUFfUkVRX1NESEMyICAgICAgICAgICA2CisjZGVmaW5lIERNQV9SRVFfTVNIQyAgICAgICAgICAgIDQKKyNkZWZpbmUgRE1BX1JFUV9FWFQgICAgICAgICAgICAgMworI2RlZmluZSBETUFfUkVRX0NTUEkzX1RYICAgICAgICAyCisjZGVmaW5lIERNQV9SRVFfQ1NQSTNfUlggICAgICAgIDEKKworLyogc2lsaWNvbiByZXZpc2lvbnMgc3BlY2lmaWMgdG8gaS5NWDI3ICovCisjZGVmaW5lIENISVBfUkVWXzFfMAkJMHgwMAorI2RlZmluZSBDSElQX1JFVl8yXzAJCTB4MDEKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KK2V4dGVybiBpbnQgbXgyN19yZXZpc2lvbih2b2lkKTsKKyNlbmRpZgorCisvKiBncGlvIGFuZCBncGlvIGJhc2VkIGludGVycnVwdCBoYW5kbGluZyAqLworI2RlZmluZSBHUElPX0RSCQkgCTB4MUMKKyNkZWZpbmUgR1BJT19HRElSCSAJMHgwMAorI2RlZmluZSBHUElPX1BTUgkgCTB4MjQKKyNkZWZpbmUgR1BJT19JQ1IxCSAJMHgyOAorI2RlZmluZSBHUElPX0lDUjIJIAkweDJDCisjZGVmaW5lIEdQSU9fSU1SCSAJMHgzMAorI2RlZmluZSBHUElPX0lTUgkgCTB4MzQKKyNkZWZpbmUgR1BJT19JTlRfTE9XX0xFVgkweDMKKyNkZWZpbmUgR1BJT19JTlRfSElHSF9MRVYJMHgyCisjZGVmaW5lIEdQSU9fSU5UX1JJU0VfRURHRSAJMHgwCisjZGVmaW5lIEdQSU9fSU5UX0ZBTExfRURHRQkweDEKKyNkZWZpbmUgR1BJT19JTlRfTk9ORQkJMHg0CisKKy8qIE1hbmRhdG9yeSBkZWZpbmVzIHVzZWQgZ2xvYmFsbHkgKi8KKworLyogdGhpcyBpcyBhbiBpLk1YMjcgQ1BVICovCisjZGVmaW5lIGNwdV9pc19teDI3KCkJCSgxKQorCisvKiB0aGlzIENQVSBzdXBwb3J0cyB1cCB0byAxOTIgR1BJT3MgKGRvbid0IGZvcmdldCB0aGUgYmFzZWJvYXJkISkgKi8KKyNkZWZpbmUgQVJDSF9OUl9HUElPUwkJKDE5MiArIDE2KQorCisvKiBPUyBjbG9jayB0aWNrIHJhdGUgKi8KKyNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFICAgICAgICAgMTMzMDAwMDAKKworLyogU3RhcnQgb2YgUkFNICovCisjZGVmaW5lIFBIWVNfT0ZGU0VUCQlTRFJBTV9CQVNFX0FERFIKKworLyogbWF4IGludGVycnVwdCBsaW5lcyBjb3VudCAqLworI2RlZmluZSBOUl9JUlFTCQkJMjU2CisKKy8qIGNvdW50IG9mIGludGVybmFsIGludGVycnVwdCBzb3VyY2VzICovCisjZGVmaW5lIE1YQ19NQVhfSU5UX0xJTkVTCTY0CisKKyNlbmRpZiAvKiBfX0FTTV9BUkNIX01YQ19NWDI3X0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214MzEuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teDMxLmgKaW5kZXggMzZhMWFmNC4uYTczNzNlNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214MzEuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXgzMS5oCkBAIC0zMjAsNiArMzIwLDggQEAKICNkZWZpbmUgTVhDX01BWF9HUElPX0xJTkVTICAgICAgKEdQSU9fTlVNX1BJTiAqIEdQSU9fUE9SVF9OVU0pCiAjZGVmaW5lIE1YQ19NQVhfVklSVFVBTF9JTlRTCTE2CiAKKyNkZWZpbmUgTlJfSVJRUyAoTVhDX01BWF9JTlRfTElORVMgKyBNWENfTUFYX0dQSU9fTElORVMgKyBNWENfTUFYX1ZJUlRVQUxfSU5UUykKKwogLyohCiAgKiBOdW1iZXIgb2YgR1BJTyBwb3J0IGFzIGRlZmluZWQgaW4gdGhlIElDIFNwZWMKICAqLwpAQCAtMzQ3LDYgKzM0OSwyNSBAQAogI2RlZmluZSBTWVNURU1fUkVWX01JTgkJQ0hJUF9SRVZfMV8wCiAjZGVmaW5lIFNZU1RFTV9SRVZfTlVNCQkzCiAKKy8qIGdwaW8gYW5kIGdwaW8gYmFzZWQgaW50ZXJydXB0IGhhbmRsaW5nICovCisjZGVmaW5lIEdQSU9fRFIJCSAJMHgwMAorI2RlZmluZSBHUElPX0dESVIJIAkweDA0CisjZGVmaW5lIEdQSU9fUFNSCSAJMHgwOAorI2RlZmluZSBHUElPX0lDUjEJIAkweDBDCisjZGVmaW5lIEdQSU9fSUNSMgkgCTB4MTAKKyNkZWZpbmUgR1BJT19JTVIJIAkweDE0CisjZGVmaW5lIEdQSU9fSVNSCSAJMHgxOAorI2RlZmluZSBHUElPX0lOVF9MT1dfTEVWCTB4MAorI2RlZmluZSBHUElPX0lOVF9ISUdIX0xFVgkweDEKKyNkZWZpbmUgR1BJT19JTlRfUklTRV9FREdFCTB4MgorI2RlZmluZSBHUElPX0lOVF9GQUxMX0VER0UJMHgzCisjZGVmaW5lIEdQSU9fSU5UX05PTkUJCTB4NAorCisvKiBNYW5kYXRvcnkgZGVmaW5lcyB1c2VkIGdsb2JhbGx5ICovCisKKy8qIHRoaXMgQ1BVIHN1cHBvcnRzIHVwIHRvIDk2IEdQSU9zICovCisjZGVmaW5lIEFSQ0hfTlJfR1BJT1MJCTk2CisKICNpZiAhZGVmaW5lZChfX0FTU0VNQkxZX18pICYmICFkZWZpbmVkKF9fTVhDX0JPT1RfVU5DT01QUkVTUykKIAogLyogdGhpcyBpcyBhIGkuTVgzMSBDUFUgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teGMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teGMuaAppbmRleCAxNDZkM2Y2Li4zMzJlZGE0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXhjLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214Yy5oCkBAIC0xLDExICsxLDIwIEBACiAvKgogICogQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICovCi0KLS8qCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEp1ZXJnZW4gQmVpc2VydCAoa2VybmVsQHBlbmd1dHJvbml4LmRlKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKICNpZm5kZWYgX19BU01fQVJDSF9NWENfSF9fCkBAIC0yMCwxMzMgKzI5LDggQEAKICMgZGVmaW5lIGNwdV9pc19teDMxKCkgKDApCiAjZW5kaWYKIAotLyoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogR1BUICBSZWdpc3RlciBkZWZpbml0aW9ucyAgICAgICAgICAgICAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqLwotI2RlZmluZSBNWENfR1BUX0dQVENSCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSICsgMHgwMCkKLSNkZWZpbmUgTVhDX0dQVF9HUFRQUgkJSU9fQUREUkVTUyhHUFQxX0JBU0VfQUREUiArIDB4MDQpCi0jZGVmaW5lIE1YQ19HUFRfR1BUU1IJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDA4KQotI2RlZmluZSBNWENfR1BUX0dQVElSCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSICsgMHgwQykKLSNkZWZpbmUgTVhDX0dQVF9HUFRPQ1IxCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSICsgMHgxMCkKLSNkZWZpbmUgTVhDX0dQVF9HUFRPQ1IyCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSICsgMHgxNCkKLSNkZWZpbmUgTVhDX0dQVF9HUFRPQ1IzCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSICsgMHgxOCkKLSNkZWZpbmUgTVhDX0dQVF9HUFRJQ1IxCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSICsgMHgxQykKLSNkZWZpbmUgTVhDX0dQVF9HUFRJQ1IyCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSICsgMHgyMCkKLSNkZWZpbmUgTVhDX0dQVF9HUFRDTlQJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDI0KQotCi0vKiBHUFQgQ29udHJvbCByZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgR1BUQ1JfRk8zCQkJKDEgPDwgMzEpCi0jZGVmaW5lIEdQVENSX0ZPMgkJCSgxIDw8IDMwKQotI2RlZmluZSBHUFRDUl9GTzEJCQkoMSA8PCAyOSkKLQotI2RlZmluZSBHUFRDUl9PTTNfU0hJRlQJCQkyNgotI2RlZmluZSBHUFRDUl9PTTNfTUFTSwkJCSg3IDw8IEdQVENSX09NM19TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00zX0RJU0NPTk5FQ1RFRAkJKDAgPDwgR1BUQ1JfT00zX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTNfVE9HR0xFCQkoMSA8PCBHUFRDUl9PTTNfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NM19DTEVBUgkJCSgyIDw8IEdQVENSX09NM19TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00zX1NFVAkJCSgzIDw8IEdQVENSX09NM19TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00zX0dFTkVSQVRFX0xPVwkJKDcgPDwgR1BUQ1JfT00zX1NISUZUKQotCi0jZGVmaW5lIEdQVENSX09NMl9TSElGVAkJCTIzCi0jZGVmaW5lIEdQVENSX09NMl9NQVNLCQkJKDcgPDwgR1BUQ1JfT00yX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTJfRElTQ09OTkVDVEVECQkoMCA8PCBHUFRDUl9PTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMl9UT0dHTEUJCSgxIDw8IEdQVENSX09NMl9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00yX0NMRUFSCQkJKDIgPDwgR1BUQ1JfT00yX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTJfU0VUCQkJKDMgPDwgR1BUQ1JfT00yX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTJfR0VORVJBVEVfTE9XCQkoNyA8PCBHUFRDUl9PTTJfU0hJRlQpCi0KLSNkZWZpbmUgR1BUQ1JfT00xX1NISUZUCQkJMjAKLSNkZWZpbmUgR1BUQ1JfT00xX01BU0sJCQkoNyA8PCBHUFRDUl9PTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMV9ESVNDT05ORUNURUQJCSgwIDw8IEdQVENSX09NMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00xX1RPR0dMRQkJKDEgPDwgR1BUQ1JfT00xX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTFfQ0xFQVIJCQkoMiA8PCBHUFRDUl9PTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMV9TRVQJCQkoMyA8PCBHUFRDUl9PTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMV9HRU5FUkFURV9MT1cJCSg3IDw8IEdQVENSX09NMV9TSElGVCkKLQotI2RlZmluZSBHUFRDUl9JTTJfU0hJRlQJCQkxOAotI2RlZmluZSBHUFRDUl9JTTJfTUFTSwkJCSgzIDw8IEdQVENSX0lNMl9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfSU0yX0NBUFRVUkVfRElTQUJMRQkoMCA8PCBHUFRDUl9JTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0lNMl9DQVBUVVJFX1JJU0lORwkoMSA8PCBHUFRDUl9JTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0lNMl9DQVBUVVJFX0ZBTExJTkcJKDIgPDwgR1BUQ1JfSU0yX1NISUZUKQotI2RlZmluZSBHUFRDUl9JTTJfQ0FQVFVSRV9CT1RICQkoMyA8PCBHUFRDUl9JTTJfU0hJRlQpCi0KLSNkZWZpbmUgR1BUQ1JfSU0xX1NISUZUCQkJMTYKLSNkZWZpbmUgR1BUQ1JfSU0xX01BU0sJCQkoMyA8PCBHUFRDUl9JTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0lNMV9DQVBUVVJFX0RJU0FCTEUJKDAgPDwgR1BUQ1JfSU0xX1NISUZUKQotI2RlZmluZSBHUFRDUl9JTTFfQ0FQVFVSRV9SSVNJTkcJKDEgPDwgR1BUQ1JfSU0xX1NISUZUKQotI2RlZmluZSBHUFRDUl9JTTFfQ0FQVFVSRV9GQUxMSU5HCSgyIDw8IEdQVENSX0lNMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfSU0xX0NBUFRVUkVfQk9USAkJKDMgPDwgR1BUQ1JfSU0xX1NISUZUKQotCi0jZGVmaW5lIEdQVENSX1NXUgkJCSgxIDw8IDE1KQotI2RlZmluZSBHUFRDUl9GUlIJCQkoMSA8PCA5KQotCi0jZGVmaW5lIEdQVENSX0NMS1NSQ19TSElGVAkJNgotI2RlZmluZSBHUFRDUl9DTEtTUkNfTUFTSwkJKDcgPDwgR1BUQ1JfQ0xLU1JDX1NISUZUKQotI2RlZmluZSBHUFRDUl9DTEtTUkNfTk9DTE9DSwkJKDAgPDwgR1BUQ1JfQ0xLU1JDX1NISUZUKQotI2RlZmluZSBHUFRDUl9DTEtTUkNfSElHSEZSRVEJCSgyIDw8IEdQVENSX0NMS1NSQ19TSElGVCkKLSNkZWZpbmUgR1BUQ1JfQ0xLU1JDX0NMS0lOCQkoMyA8PCBHUFRDUl9DTEtTUkNfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0NMS1NSQ19DTEszMksJCSg3IDw8IEdQVENSX0NMS1NSQ19TSElGVCkKLQotI2RlZmluZSBHUFRDUl9TVE9QRU4JCQkoMSA8PCA1KQotI2RlZmluZSBHUFRDUl9ET1pFTgkJCSgxIDw8IDQpCi0jZGVmaW5lIEdQVENSX1dBSVRFTgkJCSgxIDw8IDMpCi0jZGVmaW5lIEdQVENSX0RCR0VOCQkJKDEgPDwgMikKLQotI2RlZmluZSBHUFRDUl9FTk1PRAkJCSgxIDw8IDEpCi0jZGVmaW5lIEdQVENSX0VOQUJMRQkJCSgxIDw8IDApCi0KLSNkZWZpbmUgR1BUU1JfT0YxCQkJKDEgPDwgMCkKLSNkZWZpbmUgR1BUU1JfT0YyCQkJKDEgPDwgMSkKLSNkZWZpbmUgR1BUU1JfT0YzCQkJKDEgPDwgMikKLSNkZWZpbmUgR1BUU1JfSUYxCQkJKDEgPDwgMykKLSNkZWZpbmUgR1BUU1JfSUYyCQkJKDEgPDwgNCkKLSNkZWZpbmUgR1BUU1JfUk9WCQkJKDEgPDwgNSkKLQotI2RlZmluZSBHUFRJUl9PRjFJRQkJCUdQVFNSX09GMQotI2RlZmluZSBHUFRJUl9PRjJJRQkJCUdQVFNSX09GMgotI2RlZmluZSBHUFRJUl9PRjNJRQkJCUdQVFNSX09GMwotI2RlZmluZSBHUFRJUl9JRjFJRQkJCUdQVFNSX0lGMQotI2RlZmluZSBHUFRJUl9JRjJJRQkJCUdQVFNSX0lGMgotI2RlZmluZSBHUFRJUl9ST1ZJRQkJCUdQVFNSX1JPVgotCi0vKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBBVklDIFJlZ2lzdGVycyAgICAgICAgICAgICAgICAgICAgICAgICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0jZGVmaW5lIEFWSUNfQkFTRQkJSU9fQUREUkVTUyhBVklDX0JBU0VfQUREUikKLSNkZWZpbmUgQVZJQ19JTlRDTlRMCQkoQVZJQ19CQVNFICsgMHgwMCkJLyogaW50IGNvbnRyb2wgcmVnICovCi0jZGVmaW5lIEFWSUNfTklNQVNLCQkoQVZJQ19CQVNFICsgMHgwNCkJLyogaW50IG1hc2sgcmVnICovCi0jZGVmaW5lIEFWSUNfSU5URU5OVU0JCShBVklDX0JBU0UgKyAweDA4KQkvKiBpbnQgZW5hYmxlIG51bWJlciByZWcgKi8KLSNkZWZpbmUgQVZJQ19JTlRESVNOVU0JCShBVklDX0JBU0UgKyAweDBDKQkvKiBpbnQgZGlzYWJsZSBudW1iZXIgcmVnICovCi0jZGVmaW5lIEFWSUNfSU5URU5BQkxFSAkJKEFWSUNfQkFTRSArIDB4MTApCS8qIGludCBlbmFibGUgcmVnIGhpZ2ggKi8KLSNkZWZpbmUgQVZJQ19JTlRFTkFCTEVMCQkoQVZJQ19CQVNFICsgMHgxNCkJLyogaW50IGVuYWJsZSByZWcgbG93ICovCi0jZGVmaW5lIEFWSUNfSU5UVFlQRUgJCShBVklDX0JBU0UgKyAweDE4KQkvKiBpbnQgdHlwZSByZWcgaGlnaCAqLwotI2RlZmluZSBBVklDX0lOVFRZUEVMCQkoQVZJQ19CQVNFICsgMHgxQykJLyogaW50IHR5cGUgcmVnIGxvdyAqLwotI2RlZmluZSBBVklDX05JUFJJT1JJVFk3CShBVklDX0JBU0UgKyAweDIwKQkvKiBub3JtIGludCBwcmlvcml0eSBsdmw3ICovCi0jZGVmaW5lIEFWSUNfTklQUklPUklUWTYJKEFWSUNfQkFTRSArIDB4MjQpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDYgKi8KLSNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZNQkoQVZJQ19CQVNFICsgMHgyOCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsNSAqLwotI2RlZmluZSBBVklDX05JUFJJT1JJVFk0CShBVklDX0JBU0UgKyAweDJDKQkvKiBub3JtIGludCBwcmlvcml0eSBsdmw0ICovCi0jZGVmaW5lIEFWSUNfTklQUklPUklUWTMJKEFWSUNfQkFTRSArIDB4MzApCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDMgKi8KLSNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZMgkoQVZJQ19CQVNFICsgMHgzNCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsMiAqLwotI2RlZmluZSBBVklDX05JUFJJT1JJVFkxCShBVklDX0JBU0UgKyAweDM4KQkvKiBub3JtIGludCBwcmlvcml0eSBsdmwxICovCi0jZGVmaW5lIEFWSUNfTklQUklPUklUWTAJKEFWSUNfQkFTRSArIDB4M0MpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDAgKi8KLSNkZWZpbmUgQVZJQ19OSVZFQ1NSCQkoQVZJQ19CQVNFICsgMHg0MCkJLyogbm9ybSBpbnQgdmVjdG9yL3N0YXR1cyAqLwotI2RlZmluZSBBVklDX0ZJVkVDU1IJCShBVklDX0JBU0UgKyAweDQ0KQkvKiBmYXN0IGludCB2ZWN0b3Ivc3RhdHVzICovCi0jZGVmaW5lIEFWSUNfSU5UU1JDSAkJKEFWSUNfQkFTRSArIDB4NDgpCS8qIGludCBzb3VyY2UgcmVnIGhpZ2ggKi8KLSNkZWZpbmUgQVZJQ19JTlRTUkNMCQkoQVZJQ19CQVNFICsgMHg0QykJLyogaW50IHNvdXJjZSByZWcgbG93ICovCi0jZGVmaW5lIEFWSUNfSU5URlJDSAkJKEFWSUNfQkFTRSArIDB4NTApCS8qIGludCBmb3JjZSByZWcgaGlnaCAqLwotI2RlZmluZSBBVklDX0lOVEZSQ0wJCShBVklDX0JBU0UgKyAweDU0KQkvKiBpbnQgZm9yY2UgcmVnIGxvdyAqLwotI2RlZmluZSBBVklDX05JUE5ESAkJKEFWSUNfQkFTRSArIDB4NTgpCS8qIG5vcm0gaW50IHBlbmRpbmcgaGlnaCAqLwotI2RlZmluZSBBVklDX05JUE5ETAkJKEFWSUNfQkFTRSArIDB4NUMpCS8qIG5vcm0gaW50IHBlbmRpbmcgbG93ICovCi0jZGVmaW5lIEFWSUNfRklQTkRICQkoQVZJQ19CQVNFICsgMHg2MCkJLyogZmFzdCBpbnQgcGVuZGluZyBoaWdoICovCi0jZGVmaW5lIEFWSUNfRklQTkRMCQkoQVZJQ19CQVNFICsgMHg2NCkJLyogZmFzdCBpbnQgcGVuZGluZyBsb3cgKi8KLQotI2RlZmluZSBTWVNURU1fUFJFVl9SRUcJCUlPX0FERFJFU1MoSUlNX0JBU0VfQUREUiArIDB4MjApCi0jZGVmaW5lIFNZU1RFTV9TUkVWX1JFRwkJSU9fQUREUkVTUyhJSU1fQkFTRV9BRERSICsgMHgyNCkKLSNkZWZpbmUgSUlNX1BST0RfUkVWX1NICQkzCi0jZGVmaW5lIElJTV9QUk9EX1JFVl9MRU4JNQorI2lmbmRlZiBDT05GSUdfTUFDSF9NWDI3CisjIGRlZmluZSBjcHVfaXNfbXgyNygpICgwKQorI2VuZGlmCiAKICNlbmRpZiAvKiAgX19BU01fQVJDSF9NWENfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXhjX3RpbWVyLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXhjX3RpbWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNiMTFmNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teGNfdGltZXIuaApAQCAtMCwwICsxLDE1OCBAQAorLyoKKyAqIG14Y190aW1lci5oCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEp1ZXJnZW4gQmVpc2VydCAoa2VybmVsQHBlbmd1dHJvbml4LmRlKQorICoKKyAqIFBsYXRmb3JtIGluZGVwZW5kZW50IChpLk1YMSwgaS5NWDIsIGkuTVgzKSBkZWZpbml0aW9uIGZvciB0aW1lciBoYW5kbGluZy4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX1BMQVRfTVhDX1RJTUVSX0gKKyNkZWZpbmUgX19QTEFUX01YQ19USU1FUl9ICisKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKworI2lmZGVmIENPTkZJR19BUkNIX0lNWAorI2RlZmluZSBUSU1FUl9CQVNFCQlJT19BRERSRVNTKFRJTTFfQkFTRV9BRERSKQorI2RlZmluZSBUSU1FUl9JTlRFUlJVUFQJCVRJTTFfSU5UCisKKyNkZWZpbmUgVENUTF9WQUwJCVRDVExfQ0xLX1BDTEsxCisjZGVmaW5lIFRDVExfSVJRRU4JCSgxPDw0KQorI2RlZmluZSBUQ1RMX0ZSUgkJKDE8PDgpCisjZGVmaW5lIFRDVExfQ0xLX1BDTEsxCQkoMTw8MSkKKyNkZWZpbmUgVENUTF9DTEtfUENMSzFfNAkoMjw8MSkKKyNkZWZpbmUgVENUTF9DTEtfVElOCQkoMzw8MSkKKyNkZWZpbmUgVENUTF9DTEtfMzIJCSg0PDwxKQorCisjZGVmaW5lIE1YQ19UQ1RMICAgMHgwMAorI2RlZmluZSBNWENfVFBSRVIgIDB4MDQKKyNkZWZpbmUgTVhDX1RDTVAgICAweDA4CisjZGVmaW5lIE1YQ19UQ1IgICAgMHgwYworI2RlZmluZSBNWENfVENOICAgIDB4MTAKKyNkZWZpbmUgTVhDX1RTVEFUICAweDE0CisjZGVmaW5lIFRTVEFUX0NBUFQJCSgxPDwxKQorI2RlZmluZSBUU1RBVF9DT01QCQkoMTw8MCkKKworc3RhdGljIGlubGluZSB2b2lkIGdwdF9pcnFfZGlzYWJsZSh2b2lkKQoreworCXVuc2lnbmVkIGludCB0bXA7CisKKwl0bXAgPSBfX3Jhd19yZWFkbChUSU1FUl9CQVNFICsgTVhDX1RDVEwpOworCV9fcmF3X3dyaXRlbCh0bXAgJiB+VENUTF9JUlFFTiwgVElNRVJfQkFTRSArIE1YQ19UQ1RMKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdwdF9pcnFfZW5hYmxlKHZvaWQpCit7CisJX19yYXdfd3JpdGVsKF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVENUTCkgfCBUQ1RMX0lSUUVOLAorCQkJCVRJTUVSX0JBU0UgKyBNWENfVENUTCk7Cit9CisKK3N0YXRpYyB2b2lkIGdwdF9pcnFfYWNrbm93bGVkZ2Uodm9pZCkKK3sKKwlfX3Jhd193cml0ZWwoMCwgVElNRVJfQkFTRSArIE1YQ19UU1RBVCk7Cit9CisjZW5kaWYgLyogQ09ORklHX0FSQ0hfSU1YICovCisKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDIKKyNkZWZpbmUgVElNRVJfQkFTRQkJSU9fQUREUkVTUyhHUFQxX0JBU0VfQUREUikKKyNkZWZpbmUgVElNRVJfSU5URVJSVVBUCQlNWENfSU5UX0dQVDEKKworI2RlZmluZSBNWENfVENUTCAgIDB4MDAKKyNkZWZpbmUgVENUTF9WQUwJCVRDVExfQ0xLX1BDTEsxCisjZGVmaW5lIFRDVExfQ0xLX1BDTEsxCQkoMTw8MSkKKyNkZWZpbmUgVENUTF9DTEtfUENMSzFfNAkoMjw8MSkKKyNkZWZpbmUgVENUTF9JUlFFTgkJKDE8PDQpCisjZGVmaW5lIFRDVExfRlJSCQkoMTw8OCkKKyNkZWZpbmUgTVhDX1RQUkVSICAweDA0CisjZGVmaW5lIE1YQ19UQ01QICAgMHgwOAorI2RlZmluZSBNWENfVENSICAgIDB4MGMKKyNkZWZpbmUgTVhDX1RDTiAgICAweDEwCisjZGVmaW5lIE1YQ19UU1RBVCAgMHgxNAorI2RlZmluZSBUU1RBVF9DQVBUCQkoMTw8MSkKKyNkZWZpbmUgVFNUQVRfQ09NUAkJKDE8PDApCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBncHRfaXJxX2Rpc2FibGUodm9pZCkKK3sKKwl1bnNpZ25lZCBpbnQgdG1wOworCisJdG1wID0gX19yYXdfcmVhZGwoVElNRVJfQkFTRSArIE1YQ19UQ1RMKTsKKwlfX3Jhd193cml0ZWwodG1wICYgflRDVExfSVJRRU4sIFRJTUVSX0JBU0UgKyBNWENfVENUTCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBncHRfaXJxX2VuYWJsZSh2b2lkKQoreworCV9fcmF3X3dyaXRlbChfX3Jhd19yZWFkbChUSU1FUl9CQVNFICsgTVhDX1RDVEwpIHwgVENUTF9JUlFFTiwKKwkJCQlUSU1FUl9CQVNFICsgTVhDX1RDVEwpOworfQorCitzdGF0aWMgdm9pZCBncHRfaXJxX2Fja25vd2xlZGdlKHZvaWQpCit7CisJX19yYXdfd3JpdGVsKFRTVEFUX0NBUFQgfCBUU1RBVF9DT01QLCBUSU1FUl9CQVNFICsgTVhDX1RTVEFUKTsKK30KKyNlbmRpZiAvKiBDT05GSUdfQVJDSF9NWDIgKi8KKworI2lmZGVmIENPTkZJR19BUkNIX01YMworI2RlZmluZSBUSU1FUl9CQVNFCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSKQorI2RlZmluZSBUSU1FUl9JTlRFUlJVUFQJCU1YQ19JTlRfR1BUCisKKyNkZWZpbmUgTVhDX1RDVEwgICAweDAwCisjZGVmaW5lIFRDVExfVkFMCQkoVENUTF9DTEtfSVBHIHwgVENUTF9XQUlURU4pCisjZGVmaW5lIFRDVExfQ0xLX0lQRwkJKDE8PDYpCisjZGVmaW5lIFRDVExfRlJSCQkoMTw8OSkKKyNkZWZpbmUgVENUTF9XQUlURU4JCSgxPDwzKQorCisjZGVmaW5lIE1YQ19UUFJFUiAgMHgwNAorI2RlZmluZSBNWENfVFNUQVQgIDB4MDgKKyNkZWZpbmUgVFNUQVRfT0YxCQkoMTw8MCkKKyNkZWZpbmUgVFNUQVRfT0YyCQkoMTw8MSkKKyNkZWZpbmUgVFNUQVRfT0YzCQkoMTw8MikKKyNkZWZpbmUgVFNUQVRfSUYxCQkoMTw8MykKKyNkZWZpbmUgVFNUQVRfSUYyCQkoMTw8NCkKKyNkZWZpbmUgVFNUQVRfUk9WCQkoMTw8NSkKKyNkZWZpbmUgTVhDX0lSICAgICAweDBjCisjZGVmaW5lIE1YQ19UQ01QICAgMHgxMAorI2RlZmluZSBNWENfVENNUDIgIDB4MTQKKyNkZWZpbmUgTVhDX1RDTVAzICAweDE4CisjZGVmaW5lIE1YQ19UQ1IgICAgMHgxYworI2RlZmluZSBNWENfVENOICAgIDB4MjQKKworc3RhdGljIGlubGluZSB2b2lkIGdwdF9pcnFfZGlzYWJsZSh2b2lkKQoreworCV9fcmF3X3dyaXRlbCgwLCBUSU1FUl9CQVNFICsgTVhDX0lSKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdwdF9pcnFfZW5hYmxlKHZvaWQpCit7CisJX19yYXdfd3JpdGVsKDE8PDAsIFRJTUVSX0JBU0UgKyBNWENfSVIpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3B0X2lycV9hY2tub3dsZWRnZSh2b2lkKQoreworCV9fcmF3X3dyaXRlbChUU1RBVF9PRjEsIFRJTUVSX0JBU0UgKyBNWENfVFNUQVQpOworfQorI2VuZGlmIC8qIENPTkZJR19BUkNIX01YMyAqLworCisjZGVmaW5lIFRDVExfU1dSCQkoMTw8MTUpCisjZGVmaW5lIFRDVExfQ0MJCQkoMTw8MTApCisjZGVmaW5lIFRDVExfT00JCQkoMTw8OSkKKyNkZWZpbmUgVENUTF9DQVBfUklTCQkoMTw8NikKKyNkZWZpbmUgVENUTF9DQVBfRkFMCQkoMjw8NikKKyNkZWZpbmUgVENUTF9DQVBfUklTX0ZBTAkoMzw8NikKKyNkZWZpbmUgVENUTF9DQVBfRU5BCQkoMTw8NSkKKyNkZWZpbmUgVENUTF9URU4JCSgxPDwwKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW5zOXh4eC9oYXJkd2FyZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbnM5eHh4L2hhcmR3YXJlLmgKaW5kZXggMGI3YjM0Ni4uMGRjYTExYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbnM5eHh4L2hhcmR3YXJlLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbnM5eHh4L2hhcmR3YXJlLmgKQEAgLTY2LDEzICs2NiwxMyBAQAogCSBfX1JFR0dFVCh2YXIsIHJlZyAjIyBfICMjIGZpZWxkKSAvIF9fUkVHU0hJRlQocmVnICMjIF8gIyMgZmllbGQpCiAKICMgIGRlZmluZSBSRUdHRVRJTV9JRFgodmFyLCByZWcsIGZpZWxkLCBpZHgpCQkJCVwKLQkgX19SRUdHRVQodmFyLCByZWcgIyMgXyAjIyBmaWVsZCgoaWR4KSkpIC8gCQkJXAorCSBfX1JFR0dFVCh2YXIsIHJlZyAjIyBfICMjIGZpZWxkKChpZHgpKSkgLwkJCVwKIAkgX19SRUdTSElGVChyZWcgIyMgXyAjIyBmaWVsZCgoaWR4KSkpCiAKICNlbHNlCiAKICMgIGRlZmluZSBfX1JFRyh4KQlpb19wMnYoeCkKLSMgIGRlZmluZSBfX1JFRzIoeCwgeSkJaW9fcDJ2KCh4KSArICh5KSkKKyMgIGRlZmluZSBfX1JFRzIoeCwgeSkJaW9fcDJ2KCh4KSArIDQgKiAoeSkpCiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLTI0MzBzZHAuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtMjQzMHNkcC5oCmluZGV4IGU5YzY1Y2UuLmM3ZGI5MDAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtMjQzMHNkcC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtMjQzMHNkcC5oCkBAIC0zNiw5ICszNiw0IEBACiAKICNkZWZpbmUgVFdMNDAzMF9JUlFOVU0JCQlJTlRfMjRYWF9TWVNfTklSUQogCi0vKiBUV0w0MDMwIFByaW1hcnkgSW50ZXJydXB0IEhhbmRsZXIgKFBJSCkgaW50ZXJydXB0cyAqLwotI2RlZmluZSBJSF9UV0w0MDMwX0JBU0UJCQlJSF9CT0FSRF9CQVNFCi0jZGVmaW5lIElIX1RXTDQwMzBfRU5ECQkJKElIX1RXTDQwMzBfQkFTRSs4KQotI2RlZmluZSBOUl9JUlFTCQkJCShJSF9UV0w0MDMwX0VORCkKLQogI2VuZGlmIC8qIF9fQVNNX0FSQ0hfT01BUF8yNDMwU0RQX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtaDMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtaDMuaAppbmRleCAwZjY0MDQ0Li5jNWQwZjMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLWgzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1oMy5oCkBAIC0zMCwxMiArMzAsNiBAQAogLyogSW4gT01BUDE3MTAgSDMgdGhlIEV0aGVybmV0IGlzIGRpcmVjdGx5IGNvbm5lY3RlZCB0byBDUzEgKi8KICNkZWZpbmUgT01BUDE3MTBfRVRIUl9TVEFSVAkJMHgwNDAwMDMwMAogCi0jZGVmaW5lIE1BWElSUU5VTQkJCShJSF9CT0FSRF9CQVNFKQotI2RlZmluZSBNQVhGSVFOVU0JCQlNQVhJUlFOVU0KLSNkZWZpbmUgTUFYU1dJTlVNCQkJTUFYSVJRTlVNCi0KLSNkZWZpbmUgTlJfSVJRUwkJCQkoTUFYSVJRTlVNICsgMSkKLQogZXh0ZXJuIHZvaWQgaDNfbW1jX2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBoM19tbWNfc2xvdF9jb3Zlcl9oYW5kbGVyKHZvaWQgKmFyZywgaW50IHN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1pbm5vdmF0b3IuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtaW5ub3ZhdG9yLmgKaW5kZXggNTZkMmM5OC4uOWNhMDNkZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1pbm5vdmF0b3IuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLWlubm92YXRvci5oCkBAIC0zNiw5ICszNiw2IEBACiAjZGVmaW5lIE9NQVAxNTEwUDFfRU1JRlNfUFJJX1ZBTFVFCQkweDAwCiAjZGVmaW5lIE9NQVAxNTEwUDFfRU1JRkZfUFJJX1ZBTFVFCQkweDAwCiAKLSNkZWZpbmUgTlJfRlBHQV9JUlFTCQkyNAotI2RlZmluZSBOUl9JUlFTICAgICAgICAgICAgICAgICAoSUhfQk9BUkRfQkFTRSArIE5SX0ZQR0FfSVJRUykKLQogI2lmbmRlZiBfX0FTU0VNQkxZX18KIHZvaWQgZnBnYV93cml0ZSh1bnNpZ25lZCBjaGFyIHZhbCwgaW50IHJlZyk7CiB1bnNpZ25lZCBjaGFyIGZwZ2FfcmVhZChpbnQgcmVnKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtcGVyc2V1czIuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtcGVyc2V1czIuaAppbmRleCBlYjc0NDIwLi5kNzQyOWNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLXBlcnNldXMyLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1wZXJzZXVzMi5oCkBAIC0zNiwxMCArMzYsNCBAQAogI2RlZmluZSBPTUFQX1NEUkFNX0RFVklDRQkJRDI1Nk1fMVgxNl80QgogI2VuZGlmCiAKLSNkZWZpbmUgTUFYSVJRTlVNCQlJSF9CT0FSRF9CQVNFCi0jZGVmaW5lIE1BWEZJUU5VTQkJTUFYSVJRTlVNCi0jZGVmaW5lIE1BWFNXSU5VTQkJTUFYSVJRTlVNCi0KLSNkZWZpbmUgTlJfSVJRUwkJCShNQVhJUlFOVU0gKyAxKQotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY2xvY2suaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY2xvY2suaAppbmRleCAxMmE1ZTRkLi40YzdiMzUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2Nsb2NrLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jbG9jay5oCkBAIC0zMywxMiArMzMsMjQgQEAKIAl2b2lkIF9faW9tZW0JCSptdWx0X2RpdjFfcmVnOwogCXUzMgkJCW11bHRfbWFzazsKIAl1MzIJCQlkaXYxX21hc2s7CisJdTE2CQkJbGFzdF9yb3VuZGVkX207CisJdTgJCQlsYXN0X3JvdW5kZWRfbjsKKwl1bnNpZ25lZCBsb25nCQlsYXN0X3JvdW5kZWRfcmF0ZTsKKwl1bnNpZ25lZCBpbnQJCXJhdGVfdG9sZXJhbmNlOworCXUxNgkJCW1heF9tdWx0aXBsaWVyOworCXU4CQkJbWF4X2RpdmlkZXI7CisJdTMyCQkJbWF4X3RvbGVyYW5jZTsKICMgIGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDMpCisJdTgJCQltb2RlczsKIAl2b2lkIF9faW9tZW0JCSpjb250cm9sX3JlZzsKIAl1MzIJCQllbmFibGVfbWFzazsKIAl1OAkJCWF1dG9fcmVjYWxfYml0OwogCXU4CQkJcmVjYWxfZW5fYml0OwogCXU4CQkJcmVjYWxfc3RfYml0OworCXZvaWQgX19pb21lbQkJKmF1dG9pZGxlX3JlZzsKKwl1MzIJCQlhdXRvaWRsZV9tYXNrOworCXZvaWQgX19pb21lbQkJKmlkbGVzdF9yZWc7CisJdTgJCQlpZGxlc3RfYml0OwogIyAgZW5kaWYKIH07CiAKQEAgLTY2LDExICs3OCwxNCBAQAogCXZvaWQgX19pb21lbQkJKmNsa3NlbF9yZWc7CiAJdTMyCQkJY2xrc2VsX21hc2s7CiAJY29uc3Qgc3RydWN0IGNsa3NlbAkqY2xrc2VsOwotCWNvbnN0IHN0cnVjdCBkcGxsX2RhdGEJKmRwbGxfZGF0YTsKKwlzdHJ1Y3QgZHBsbF9kYXRhCSpkcGxsX2RhdGE7CiAjZWxzZQogCV9fdTgJCQlyYXRlX29mZnNldDsKIAlfX3U4CQkJc3JjX29mZnNldDsKICNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX1BNX0RFQlVHKSAmJiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKKwlzdHJ1Y3QgZGVudHJ5CQkqZGVudDsJLyogRm9yIHZpc2libGUgdHJlZSBoaWVyYXJjaHkgKi8KKyNlbmRpZgogfTsKIAogc3RydWN0IGNwdWZyZXFfZnJlcXVlbmN5X3RhYmxlOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jb21tb24uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY29tbW9uLmgKaW5kZXggMzZhM2I2Mi4uOGFjMDMwNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jb21tb24uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbW1vbi5oCkBAIC00Nyw4ICs0NywyMyBAQAogfQogI2VuZGlmCiAKKy8qIElPIGJhc2VzIGZvciB2YXJpb3VzIE9NQVAgcHJvY2Vzc29ycyAqLworc3RydWN0IG9tYXBfZ2xvYmFscyB7CisJdm9pZCBfX2lvbWVtCSp0YXA7CQkvKiBDb250cm9sIG1vZHVsZSBJRCBjb2RlICovCisJdm9pZCBfX2lvbWVtCSpzZHJjOwkJLyogU0RSQU0gQ29udHJvbGxlciAqLworCXZvaWQgX19pb21lbQkqc21zOwkJLyogU0RSQU0gTWVtb3J5IFNjaGVkdWxlciAqLworCXZvaWQgX19pb21lbQkqY3RybDsJCS8qIFN5c3RlbSBDb250cm9sIE1vZHVsZSAqLworCXZvaWQgX19pb21lbQkqcHJtOwkJLyogUG93ZXIgYW5kIFJlc2V0IE1hbmFnZW1lbnQgKi8KKwl2b2lkIF9faW9tZW0JKmNtOwkJLyogQ2xvY2sgTWFuYWdlbWVudCAqLworfTsKKwogdm9pZCBvbWFwMl9zZXRfZ2xvYmFsc18yNDJ4KHZvaWQpOwogdm9pZCBvbWFwMl9zZXRfZ2xvYmFsc18yNDN4KHZvaWQpOwogdm9pZCBvbWFwMl9zZXRfZ2xvYmFsc18zNDN4KHZvaWQpOwogCisvKiBUaGVzZSBnZXQgY2FsbGVkIGZyb20gb21hcDJfc2V0X2dsb2JhbHNfeHh4eCgpLCBkbyBub3QgY2FsbCB0aGVzZSAqLwordm9pZCBvbWFwMl9zZXRfZ2xvYmFsc19tZW1vcnkoc3RydWN0IG9tYXBfZ2xvYmFscyAqKTsKK3ZvaWQgb21hcDJfc2V0X2dsb2JhbHNfY29udHJvbChzdHJ1Y3Qgb21hcF9nbG9iYWxzICopOwordm9pZCBvbWFwMl9zZXRfZ2xvYmFsc19wcmNtKHN0cnVjdCBvbWFwX2dsb2JhbHMgKik7CisKICNlbmRpZiAvKiBfX0FSQ0hfQVJNX01BQ0hfT01BUF9DT01NT05fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jb250cm9sLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbnRyb2wuaAppbmRleCA1OWMwNjg2Li45ODc1NTNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbnRyb2wuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbnRyb2wuaApAQCAtMTY3LDggKzE2Nyw3IEBACiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMikgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKLWV4dGVybiB2b2lkIG9tYXBfY3RybF9iYXNlX3NldCh1MzIgYmFzZSk7Ci1leHRlcm4gdTMyIG9tYXBfY3RybF9iYXNlX2dldCh2b2lkKTsKK2V4dGVybiB2b2lkIF9faW9tZW0gKm9tYXBfY3RybF9iYXNlX2dldCh2b2lkKTsKIGV4dGVybiB1OCBvbWFwX2N0cmxfcmVhZGIodTE2IG9mZnNldCk7CiBleHRlcm4gdTE2IG9tYXBfY3RybF9yZWFkdyh1MTYgb2Zmc2V0KTsKIGV4dGVybiB1MzIgb21hcF9jdHJsX3JlYWRsKHUxNiBvZmZzZXQpOwpAQCAtMTc2LDcgKzE3NSw2IEBACiBleHRlcm4gdm9pZCBvbWFwX2N0cmxfd3JpdGV3KHUxNiB2YWwsIHUxNiBvZmZzZXQpOwogZXh0ZXJuIHZvaWQgb21hcF9jdHJsX3dyaXRlbCh1MzIgdmFsLCB1MTYgb2Zmc2V0KTsKICNlbHNlCi0jZGVmaW5lIG9tYXBfY3RybF9iYXNlX3NldCh4KQkJV0FSTl9PTigxKQogI2RlZmluZSBvbWFwX2N0cmxfYmFzZV9nZXQoKQkJMAogI2RlZmluZSBvbWFwX2N0cmxfcmVhZGIoeCkJCTAKICNkZWZpbmUgb21hcF9jdHJsX3JlYWR3KHgpCQkwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NwdS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jcHUuaAppbmRleCBlOGE0Y2Y1Li41MmRiMDlmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NwdS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY3B1LmgKQEAgLTMsNyArMyw3IEBACiAgKgogICogT01BUCBjcHUgdHlwZSBkZXRlY3Rpb24KICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgTm9raWEgQ29ycG9yYXRpb24KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbgogICoKICAqIFdyaXR0ZW4gYnkgVG9ueSBMaW5kZ3JlbiA8dG9ueS5saW5kZ3JlbkBub2tpYS5jb20+CiAgKgpAQCAtMjYsNiArMjYsMTIgQEAKICNpZm5kZWYgX19BU01fQVJDSF9PTUFQX0NQVV9ICiAjZGVmaW5lIF9fQVNNX0FSQ0hfT01BUF9DUFVfSAogCitzdHJ1Y3Qgb21hcF9jaGlwX2lkIHsKKwl1OCBvYzsKK307CisKKyNkZWZpbmUgT01BUF9DSElQX0lOSVQoeCkJeyAub2MgPSB4IH0KKwogZXh0ZXJuIHVuc2lnbmVkIGludCBzeXN0ZW1fcmV2OwogCiAjZGVmaW5lIG9tYXAyX2NwdV9yZXYoKQkJKChzeXN0ZW1fcmV2ID4+IDEyKSAmIDB4MGYpCkBAIC0zNDUsNiArMzUxLDMzIEBACiAjZGVmaW5lIE9NQVAyNDMwX1JFVl9FUzFfMAkweDI0MzAwMDAwCiAjZGVmaW5lIE9NQVAzNDMwX1JFVl9FUzFfMAkweDM0MzAwMDAwCiAjZGVmaW5lIE9NQVAzNDMwX1JFVl9FUzJfMAkweDM0MzAxMDAwCisjZGVmaW5lIE9NQVAzNDMwX1JFVl9FUzJfMQkweDM0MzAyMDAwCisjZGVmaW5lIE9NQVAzNDMwX1JFVl9FUzJfMgkweDM0MzAzMDAwCisKKy8qCisgKiBvbWFwX2NoaXAgYml0cworICoKKyAqIENISVBfSVNfT01BUHsyNDIwLDI0MzAsMzQzMH0gaW5kaWNhdGUgdGhhdCBhIHBhcnRpY3VsYXIgc3RydWN0dXJlIGlzCisgKiB2YWxpZCBvbiBhbGwgY2hpcHMgb2YgdGhhdCB0eXBlLiAgQ0hJUF9JU19PTUFQMzQzMEVTezEsMn0gaW5kaWNhdGVzCisgKiBzb21ldGhpbmcgdGhhdCBpcyBvbmx5IHZhbGlkIG9uIHRoYXQgcGFydGljdWxhciBFUyByZXZpc2lvbi4KKyAqCisgKiBUaGVzZSBiaXRzIG1heSBiZSBPUmVkIHRvZ2V0aGVyIHRvIGluZGljYXRlIHN0cnVjdHVyZXMgdGhhdCBhcmUKKyAqIGF2YWlsYWJsZSBvbiBtdWx0aXBsZSBjaGlwIHR5cGVzLgorICoKKyAqIFRvIHRlc3Qgd2hldGhlciBhIHBhcnRpY3VsYXIgc3RydWN0dXJlIG1hdGNoZXMgdGhlIGN1cnJlbnQgT01BUCBjaGlwIHR5cGUsCisgKiB1c2Ugb21hcF9jaGlwX2lzKCkuCisgKgorICovCisjZGVmaW5lIENISVBfSVNfT01BUDI0MjAgICAgICAgKDEgPDwgMCkKKyNkZWZpbmUgQ0hJUF9JU19PTUFQMjQzMCAgICAgICAoMSA8PCAxKQorI2RlZmluZSBDSElQX0lTX09NQVAzNDMwICAgICAgICgxIDw8IDIpCisjZGVmaW5lIENISVBfSVNfT01BUDM0MzBFUzEgICAgKDEgPDwgMykKKyNkZWZpbmUgQ0hJUF9JU19PTUFQMzQzMEVTMiAgICAoMSA8PCA0KQorCisjZGVmaW5lIENISVBfSVNfT01BUDI0WFggICAgICAgKENISVBfSVNfT01BUDI0MjAgfCBDSElQX0lTX09NQVAyNDMwKQorCitpbnQgb21hcF9jaGlwX2lzKHN0cnVjdCBvbWFwX2NoaXBfaWQgb2NpKTsKKwogCiAvKgogICogTWFjcm8gdG8gZGV0ZWN0IGRldmljZSB0eXBlIGkuZS4gRU1VL0hTL1RTVC9HUC9CQUQKQEAgLTM2Miw2ICszOTUsOCBAQAogI2RlZmluZSBpc19kZXZpY2VfdHlwZV9ncCgpCShnZXRfZGV2aWNlX3R5cGUoKSA9PSBERVZJQ0VfVFlQRV9HUCkKICNkZWZpbmUgaXNfZGV2aWNlX3R5cGVfYmFkKCkJKGdldF9kZXZpY2VfdHlwZSgpID09IERFVklDRV9UWVBFX0JBRCkKIAotI2VuZGlmCit2b2lkIG9tYXAyX2NoZWNrX3JldmlzaW9uKHZvaWQpOworCisjZW5kaWYgICAgLyogZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMikgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2RtYS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9kbWEuaAppbmRleCAyNGFjZjA5Li5mNGRjYjk1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2RtYS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG1hLmgKQEAgLTIyLDEwOCArMjIsMTI4IEBACiAjZGVmaW5lIF9fQVNNX0FSQ0hfRE1BX0gKIAogLyogSGFyZHdhcmUgcmVnaXN0ZXJzIGZvciBvbWFwMSAqLwotI2RlZmluZSBPTUFQX0RNQV9CQVNFCQkJKDB4ZmZmZWQ4MDApCi0jZGVmaW5lIE9NQVBfRE1BX0dDUgkJCShPTUFQX0RNQV9CQVNFICsgMHg0MDApCi0jZGVmaW5lIE9NQVBfRE1BX0dTQ1IJCQkoT01BUF9ETUFfQkFTRSArIDB4NDA0KQotI2RlZmluZSBPTUFQX0RNQV9HUlNUCQkJKE9NQVBfRE1BX0JBU0UgKyAweDQwOCkKLSNkZWZpbmUgT01BUF9ETUFfSFdfSUQJCQkoT01BUF9ETUFfQkFTRSArIDB4NDQyKQotI2RlZmluZSBPTUFQX0RNQV9QQ0gyX0lECQkoT01BUF9ETUFfQkFTRSArIDB4NDQ0KQotI2RlZmluZSBPTUFQX0RNQV9QQ0gwX0lECQkoT01BUF9ETUFfQkFTRSArIDB4NDQ2KQotI2RlZmluZSBPTUFQX0RNQV9QQ0gxX0lECQkoT01BUF9ETUFfQkFTRSArIDB4NDQ4KQotI2RlZmluZSBPTUFQX0RNQV9QQ0hHX0lECQkoT01BUF9ETUFfQkFTRSArIDB4NDRhKQotI2RlZmluZSBPTUFQX0RNQV9QQ0hEX0lECQkoT01BUF9ETUFfQkFTRSArIDB4NDRjKQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzBfVQkJKE9NQVBfRE1BX0JBU0UgKyAweDQ0ZSkKLSNkZWZpbmUgT01BUF9ETUFfQ0FQU18wX0wJCShPTUFQX0RNQV9CQVNFICsgMHg0NTApCi0jZGVmaW5lIE9NQVBfRE1BX0NBUFNfMV9VCQkoT01BUF9ETUFfQkFTRSArIDB4NDUyKQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzFfTAkJKE9NQVBfRE1BX0JBU0UgKyAweDQ1NCkKLSNkZWZpbmUgT01BUF9ETUFfQ0FQU18yCQkJKE9NQVBfRE1BX0JBU0UgKyAweDQ1NikKLSNkZWZpbmUgT01BUF9ETUFfQ0FQU18zCQkJKE9NQVBfRE1BX0JBU0UgKyAweDQ1OCkKLSNkZWZpbmUgT01BUF9ETUFfQ0FQU180CQkJKE9NQVBfRE1BX0JBU0UgKyAweDQ1YSkKLSNkZWZpbmUgT01BUF9ETUFfUENIMl9TUgkJKE9NQVBfRE1BX0JBU0UgKyAweDQ2MCkKLSNkZWZpbmUgT01BUF9ETUFfUENIMF9TUgkJKE9NQVBfRE1BX0JBU0UgKyAweDQ4MCkKLSNkZWZpbmUgT01BUF9ETUFfUENIMV9TUgkJKE9NQVBfRE1BX0JBU0UgKyAweDQ4MikKLSNkZWZpbmUgT01BUF9ETUFfUENIRF9TUgkJKE9NQVBfRE1BX0JBU0UgKyAweDRjMCkKKyNkZWZpbmUgT01BUDFfRE1BX0JBU0UJCQkoMHhmZmZlZDgwMCkKIAotLyogSGFyZHdhcmUgcmVnaXN0ZXJzIGZvciBvbWFwMiAqLwotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDMpCi0jZGVmaW5lIE9NQVBfRE1BNF9CQVNFCQkJKEw0XzM0WFhfQkFTRSArIDB4NTYwMDApCi0jZWxzZQkvKiBDT05GSUdfQVJDSF9PTUFQMiAqLwotI2RlZmluZSBPTUFQX0RNQTRfQkFTRQkJCShMNF8yNFhYX0JBU0UgKyAweDU2MDAwKQotI2VuZGlmCisjZGVmaW5lIE9NQVAxX0RNQV9HQ1IJCQkweDQwMAorI2RlZmluZSBPTUFQMV9ETUFfR1NDUgkJCTB4NDA0CisjZGVmaW5lIE9NQVAxX0RNQV9HUlNUCQkJMHg0MDgKKyNkZWZpbmUgT01BUDFfRE1BX0hXX0lECQkJMHg0NDIKKyNkZWZpbmUgT01BUDFfRE1BX1BDSDJfSUQJCTB4NDQ0CisjZGVmaW5lIE9NQVAxX0RNQV9QQ0gwX0lECQkweDQ0NgorI2RlZmluZSBPTUFQMV9ETUFfUENIMV9JRAkJMHg0NDgKKyNkZWZpbmUgT01BUDFfRE1BX1BDSEdfSUQJCTB4NDRhCisjZGVmaW5lIE9NQVAxX0RNQV9QQ0hEX0lECQkweDQ0YworI2RlZmluZSBPTUFQMV9ETUFfQ0FQU18wX1UJCTB4NDRlCisjZGVmaW5lIE9NQVAxX0RNQV9DQVBTXzBfTAkJMHg0NTAKKyNkZWZpbmUgT01BUDFfRE1BX0NBUFNfMV9VCQkweDQ1MgorI2RlZmluZSBPTUFQMV9ETUFfQ0FQU18xX0wJCTB4NDU0CisjZGVmaW5lIE9NQVAxX0RNQV9DQVBTXzIJCTB4NDU2CisjZGVmaW5lIE9NQVAxX0RNQV9DQVBTXzMJCTB4NDU4CisjZGVmaW5lIE9NQVAxX0RNQV9DQVBTXzQJCTB4NDVhCisjZGVmaW5lIE9NQVAxX0RNQV9QQ0gyX1NSCQkweDQ2MAorI2RlZmluZSBPTUFQMV9ETUFfUENIMF9TUgkJMHg0ODAKKyNkZWZpbmUgT01BUDFfRE1BX1BDSDFfU1IJCTB4NDgyCisjZGVmaW5lIE9NQVAxX0RNQV9QQ0hEX1NSCQkweDRjMAogCi0jZGVmaW5lIE9NQVBfRE1BNF9SRVZJU0lPTgkJKE9NQVBfRE1BNF9CQVNFICsgMHgwMCkKLSNkZWZpbmUgT01BUF9ETUE0X0dDUl9SRUcJCShPTUFQX0RNQTRfQkFTRSArIDB4NzgpCi0jZGVmaW5lIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDAJCShPTUFQX0RNQTRfQkFTRSArIDB4MDgpCi0jZGVmaW5lIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDEJCShPTUFQX0RNQTRfQkFTRSArIDB4MGMpCi0jZGVmaW5lIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDIJCShPTUFQX0RNQTRfQkFTRSArIDB4MTApCi0jZGVmaW5lIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDMJCShPTUFQX0RNQTRfQkFTRSArIDB4MTQpCi0jZGVmaW5lIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDAJCShPTUFQX0RNQTRfQkFTRSArIDB4MTgpCi0jZGVmaW5lIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDEJCShPTUFQX0RNQTRfQkFTRSArIDB4MWMpCi0jZGVmaW5lIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDIJCShPTUFQX0RNQTRfQkFTRSArIDB4MjApCi0jZGVmaW5lIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDMJCShPTUFQX0RNQTRfQkFTRSArIDB4MjQpCi0jZGVmaW5lIE9NQVBfRE1BNF9TWVNTVEFUVVMJCShPTUFQX0RNQTRfQkFTRSArIDB4MjgpCi0jZGVmaW5lIE9NQVBfRE1BNF9PQ1BfU1lTQ09ORklHCQkoT01BUF9ETUE0X0JBU0UgKyAweDJjKQotI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18wCQkoT01BUF9ETUE0X0JBU0UgKyAweDY0KQotI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18yCQkoT01BUF9ETUE0X0JBU0UgKyAweDZjKQotI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18zCQkoT01BUF9ETUE0X0JBU0UgKyAweDcwKQotI2RlZmluZSBPTUFQX0RNQTRfQ0FQU180CQkoT01BUF9ETUE0X0JBU0UgKyAweDc0KQorLyogSGFyZHdhcmUgcmVnaXN0ZXJzIGZvciBvbWFwMiBhbmQgb21hcDMgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BNF9CQVNFCQkoTDRfMjRYWF9CQVNFICsgMHg1NjAwMCkKKyNkZWZpbmUgT01BUDM0WFhfRE1BNF9CQVNFCQkoTDRfMzRYWF9CQVNFICsgMHg1NjAwMCkKIAotI2lmZGVmIENPTkZJR19BUkNIX09NQVAxCisjZGVmaW5lIE9NQVBfRE1BNF9SRVZJU0lPTgkJMHgwMAorI2RlZmluZSBPTUFQX0RNQTRfR0NSCQkJMHg3OAorI2RlZmluZSBPTUFQX0RNQTRfSVJRU1RBVFVTX0wwCQkweDA4CisjZGVmaW5lIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDEJCTB4MGMKKyNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMgkJMHgxMAorI2RlZmluZSBPTUFQX0RNQTRfSVJRU1RBVFVTX0wzCQkweDE0CisjZGVmaW5lIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDAJCTB4MTgKKyNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMQkJMHgxYworI2RlZmluZSBPTUFQX0RNQTRfSVJRRU5BQkxFX0wyCQkweDIwCisjZGVmaW5lIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDMJCTB4MjQKKyNkZWZpbmUgT01BUF9ETUE0X1NZU1NUQVRVUwkJMHgyOAorI2RlZmluZSBPTUFQX0RNQTRfT0NQX1NZU0NPTkZJRwkJMHgyYworI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18wCQkweDY0CisjZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzIJCTB4NmMKKyNkZWZpbmUgT01BUF9ETUE0X0NBUFNfMwkJMHg3MAorI2RlZmluZSBPTUFQX0RNQTRfQ0FQU180CQkweDc0CiAKLSNkZWZpbmUgT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVAkxNworI2RlZmluZSBPTUFQMV9MT0dJQ0FMX0RNQV9DSF9DT1VOVAkxNworI2RlZmluZSBPTUFQX0RNQTRfTE9HSUNBTF9ETUFfQ0hfQ09VTlQJMzIJLyogUkVWSVNJVDogSXMgdGhpcyAzMiArIDI/ICovCiAKIC8qIENvbW1vbiBjaGFubmVsIHNwZWNpZmljIHJlZ2lzdGVycyBmb3Igb21hcDEgKi8KLSNkZWZpbmUgT01BUF9ETUFfQ1NEUF9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDAwKQotI2RlZmluZSBPTUFQX0RNQV9DQ1JfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgwMikKLSNkZWZpbmUgT01BUF9ETUFfQ0lDUl9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDA0KQotI2RlZmluZSBPTUFQX0RNQV9DU1JfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgwNikKLSNkZWZpbmUgT01BUF9ETUFfQ0VOX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MTApCi0jZGVmaW5lIE9NQVBfRE1BX0NGTl9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDEyKQotI2RlZmluZSBPTUFQX0RNQV9DU0ZJX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MTQpCi0jZGVmaW5lIE9NQVBfRE1BX0NTRUlfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgxNikKLSNkZWZpbmUgT01BUF9ETUFfQ1NBQ19SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDE4KQotI2RlZmluZSBPTUFQX0RNQV9DREFDX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MWEpCi0jZGVmaW5lIE9NQVBfRE1BX0NERUlfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgxYykKLSNkZWZpbmUgT01BUF9ETUFfQ0RGSV9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDFlKQotI2RlZmluZSBPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKG4pCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDI4KQotCi0jZWxzZQotCi0jZGVmaW5lIE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQJMzIJLyogUkVWSVNJVDogSXMgdGhpcyAzMiArIDI/ICovCisjZGVmaW5lIE9NQVAxX0RNQV9DSF9CQVNFKG4pCQkoMHg0MCAqIChuKSArIDB4MDApCisjZGVmaW5lIE9NQVAxX0RNQV9DU0RQKG4pCQkoMHg0MCAqIChuKSArIDB4MDApCisjZGVmaW5lIE9NQVAxX0RNQV9DQ1IobikJCSgweDQwICogKG4pICsgMHgwMikKKyNkZWZpbmUgT01BUDFfRE1BX0NJQ1IobikJCSgweDQwICogKG4pICsgMHgwNCkKKyNkZWZpbmUgT01BUDFfRE1BX0NTUihuKQkJKDB4NDAgKiAobikgKyAweDA2KQorI2RlZmluZSBPTUFQMV9ETUFfQ0VOKG4pCQkoMHg0MCAqIChuKSArIDB4MTApCisjZGVmaW5lIE9NQVAxX0RNQV9DRk4obikJCSgweDQwICogKG4pICsgMHgxMikKKyNkZWZpbmUgT01BUDFfRE1BX0NTRkkobikJCSgweDQwICogKG4pICsgMHgxNCkKKyNkZWZpbmUgT01BUDFfRE1BX0NTRUkobikJCSgweDQwICogKG4pICsgMHgxNikKKyNkZWZpbmUgT01BUDFfRE1BX0NQQyhuKQkJKDB4NDAgKiAobikgKyAweDE4KQkvKiAxNXh4IG9ubHkgKi8KKyNkZWZpbmUgT01BUDFfRE1BX0NTQUMobikJCSgweDQwICogKG4pICsgMHgxOCkKKyNkZWZpbmUgT01BUDFfRE1BX0NEQUMobikJCSgweDQwICogKG4pICsgMHgxYSkKKyNkZWZpbmUgT01BUDFfRE1BX0NERUkobikJCSgweDQwICogKG4pICsgMHgxYykKKyNkZWZpbmUgT01BUDFfRE1BX0NERkkobikJCSgweDQwICogKG4pICsgMHgxZSkKKyNkZWZpbmUgT01BUDFfRE1BX0NMTktfQ1RSTChuKQkJKDB4NDAgKiAobikgKyAweDI4KQogCiAvKiBDb21tb24gY2hhbm5lbCBzcGVjaWZpYyByZWdpc3RlcnMgZm9yIG9tYXAyICovCi0jZGVmaW5lIE9NQVBfRE1BX0NDUl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHg4MCkKLSNkZWZpbmUgT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhuKQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4ODQpCi0jZGVmaW5lIE9NQVBfRE1BX0NJQ1JfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4ODgpCi0jZGVmaW5lIE9NQVBfRE1BX0NTUl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHg4YykKLSNkZWZpbmUgT01BUF9ETUFfQ1NEUF9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHg5MCkKLSNkZWZpbmUgT01BUF9ETUFfQ0VOX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweDk0KQotI2RlZmluZSBPTUFQX0RNQV9DRk5fUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4OTgpCi0jZGVmaW5lIE9NQVBfRE1BX0NTRUlfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YTQpCi0jZGVmaW5lIE9NQVBfRE1BX0NTRklfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YTgpCi0jZGVmaW5lIE9NQVBfRE1BX0NERUlfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YWMpCi0jZGVmaW5lIE9NQVBfRE1BX0NERklfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YjApCi0jZGVmaW5lIE9NQVBfRE1BX0NTQUNfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YjQpCi0jZGVmaW5lIE9NQVBfRE1BX0NEQUNfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YjgpCi0KLSNlbmRpZgorI2RlZmluZSBPTUFQX0RNQTRfQ0hfQkFTRShuKQkJKDB4NjAgKiAobikgKyAweDgwKQorI2RlZmluZSBPTUFQX0RNQTRfQ0NSKG4pCQkoMHg2MCAqIChuKSArIDB4ODApCisjZGVmaW5lIE9NQVBfRE1BNF9DTE5LX0NUUkwobikJCSgweDYwICogKG4pICsgMHg4NCkKKyNkZWZpbmUgT01BUF9ETUE0X0NJQ1IobikJCSgweDYwICogKG4pICsgMHg4OCkKKyNkZWZpbmUgT01BUF9ETUE0X0NTUihuKQkJKDB4NjAgKiAobikgKyAweDhjKQorI2RlZmluZSBPTUFQX0RNQTRfQ1NEUChuKQkJKDB4NjAgKiAobikgKyAweDkwKQorI2RlZmluZSBPTUFQX0RNQTRfQ0VOKG4pCQkoMHg2MCAqIChuKSArIDB4OTQpCisjZGVmaW5lIE9NQVBfRE1BNF9DRk4obikJCSgweDYwICogKG4pICsgMHg5OCkKKyNkZWZpbmUgT01BUF9ETUE0X0NTRUkobikJCSgweDYwICogKG4pICsgMHhhNCkKKyNkZWZpbmUgT01BUF9ETUE0X0NTRkkobikJCSgweDYwICogKG4pICsgMHhhOCkKKyNkZWZpbmUgT01BUF9ETUE0X0NERUkobikJCSgweDYwICogKG4pICsgMHhhYykKKyNkZWZpbmUgT01BUF9ETUE0X0NERkkobikJCSgweDYwICogKG4pICsgMHhiMCkKKyNkZWZpbmUgT01BUF9ETUE0X0NTQUMobikJCSgweDYwICogKG4pICsgMHhiNCkKKyNkZWZpbmUgT01BUF9ETUE0X0NEQUMobikJCSgweDYwICogKG4pICsgMHhiOCkKIAogLyogQ2hhbm5lbCBzcGVjaWZpYyByZWdpc3RlcnMgb25seSBvbiBvbWFwMSAqLwotI2RlZmluZSBPTUFQMV9ETUFfQ1NTQV9MX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MDgpCi0jZGVmaW5lIE9NQVAxX0RNQV9DU1NBX1VfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgwYSkKLSNkZWZpbmUgT01BUDFfRE1BX0NEU0FfTF9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDBjKQotI2RlZmluZSBPTUFQMV9ETUFfQ0RTQV9VX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MGUpCi0jZGVmaW5lIE9NQVAxX0RNQV9DT0xPUl9MX1JFRyhuKQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgyMCkKLSNkZWZpbmUgT01BUDFfRE1BX0NDUjJfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgyNCkKLSNkZWZpbmUgT01BUDFfRE1BX0NPTE9SX1VfUkVHKG4pCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDIyKQotI2RlZmluZSBPTUFQMV9ETUFfTENIX0NUUkxfUkVHKG4pCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDJhKQorI2RlZmluZSBPTUFQMV9ETUFfQ1NTQV9MKG4pCQkoMHg0MCAqIChuKSArIDB4MDgpCisjZGVmaW5lIE9NQVAxX0RNQV9DU1NBX1UobikJCSgweDQwICogKG4pICsgMHgwYSkKKyNkZWZpbmUgT01BUDFfRE1BX0NEU0FfTChuKQkJKDB4NDAgKiAobikgKyAweDBjKQorI2RlZmluZSBPTUFQMV9ETUFfQ0RTQV9VKG4pCQkoMHg0MCAqIChuKSArIDB4MGUpCisjZGVmaW5lIE9NQVAxX0RNQV9DT0xPUl9MKG4pCQkoMHg0MCAqIChuKSArIDB4MjApCisjZGVmaW5lIE9NQVAxX0RNQV9DT0xPUl9VKG4pCQkoMHg0MCAqIChuKSArIDB4MjIpCisjZGVmaW5lIE9NQVAxX0RNQV9DQ1IyKG4pCQkoMHg0MCAqIChuKSArIDB4MjQpCisjZGVmaW5lIE9NQVAxX0RNQV9MQ0hfQ1RSTChuKQkJKDB4NDAgKiAobikgKyAweDJhKQkvKiBub3Qgb24gMTV4eCAqLworI2RlZmluZSBPTUFQMV9ETUFfQ0NFTihuKQkJMAorI2RlZmluZSBPTUFQMV9ETUFfQ0NGTihuKQkJMAogCiAvKiBDaGFubmVsIHNwZWNpZmljIHJlZ2lzdGVycyBvbmx5IG9uIG9tYXAyICovCi0jZGVmaW5lIE9NQVAyX0RNQV9DU1NBX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweDljKQotI2RlZmluZSBPTUFQMl9ETUFfQ0RTQV9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhhMCkKLSNkZWZpbmUgT01BUDJfRE1BX0NDRU5fUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YmMpCi0jZGVmaW5lIE9NQVAyX0RNQV9DQ0ZOX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweGMwKQotI2RlZmluZSBPTUFQMl9ETUFfQ09MT1JfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YzQpCisjZGVmaW5lIE9NQVBfRE1BNF9DU1NBKG4pCQkoMHg2MCAqIChuKSArIDB4OWMpCisjZGVmaW5lIE9NQVBfRE1BNF9DRFNBKG4pCQkoMHg2MCAqIChuKSArIDB4YTApCisjZGVmaW5lIE9NQVBfRE1BNF9DQ0VOKG4pCQkoMHg2MCAqIChuKSArIDB4YmMpCisjZGVmaW5lIE9NQVBfRE1BNF9DQ0ZOKG4pCQkoMHg2MCAqIChuKSArIDB4YzApCisjZGVmaW5lIE9NQVBfRE1BNF9DT0xPUihuKQkJKDB4NjAgKiAobikgKyAweGM0KQorCisvKiBEdW1teSBkZWZpbmVzIHRvIGtlZXAgbXVsdGktb21hcCBjb21waWxlcyBoYXBweSAqLworI2RlZmluZSBPTUFQMV9ETUFfUkVWSVNJT04JCTAKKyNkZWZpbmUgT01BUDFfRE1BX0lSUVNUQVRVU19MMAkJMAorI2RlZmluZSBPTUFQMV9ETUFfSVJRRU5BQkxFX0wwCQkwCisjZGVmaW5lIE9NQVAxX0RNQV9PQ1BfU1lTQ09ORklHCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9IV19JRAkJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NBUFNfMF9MCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzBfVQkJMAorI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18xX0wJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NBUFNfMV9VCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9HU0NSCQkJMAorI2RlZmluZSBPTUFQX0RNQTRfQ1BDKG4pCQkwCisKKyNkZWZpbmUgT01BUF9ETUE0X0xDSF9DVFJMKG4pCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DT0xPUl9MKG4pCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DT0xPUl9VKG4pCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DQ1IyKG4pCQkwCisjZGVmaW5lIE9NQVAxX0RNQV9DU1NBKG4pCQkwCisjZGVmaW5lIE9NQVAxX0RNQV9DRFNBKG4pCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DU1NBX0wobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NTU0FfVShuKQkJMAorI2RlZmluZSBPTUFQX0RNQTRfQ0RTQV9MKG4pCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DRFNBX1UobikJCTAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIApAQCAtMTk2LDYzICsyMTYsOTggQEAKICNkZWZpbmUgT01BUDI0WFhfRE1BX0dQTUMJCTQJLyogU19ETUFfMyAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfR0ZYCQk1CS8qIFNfRE1BXzQgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0RTUwkJNgkvKiBTX0RNQV81ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9WTFlOUV9UWAkJNwkvKiBTX0RNQV82ICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9WTFlOUV9UWAkJNwkvKiBTX0RNQV82ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9FWFRfRE1BUkVRMgk3CS8qIFNfRE1BXzYgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0NXVAkJOAkvKiBTX0RNQV83ICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9BRVNfVFgJCTkJLyogU19ETUFfOCAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfQUVTX1JYCQkxMAkvKiBTX0RNQV85ICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9ERVNfVFgJCTExCS8qIFNfRE1BXzEwICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9ERVNfUlgJCTEyCS8qIFNfRE1BXzExICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9TSEExTUQ1X1JYCQkxMwkvKiBTX0RNQV8xMiAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRVhUX0RNQVJFUTIJMTQJLyogU19ETUFfMTMgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VYVF9ETUFSRVEzCTE1CS8qIFNfRE1BXzE0ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FWFRfRE1BUkVRNAkxNgkvKiBTX0RNQV8xNSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRUFDX0FDX1JECQkxNwkvKiBTX0RNQV8xNiAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRUFDX0FDX1dSCQkxOAkvKiBTX0RNQV8xNyAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRUFDX01EX1VMX1JECTE5CS8qIFNfRE1BXzE4ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfTURfVUxfV1IJMjAJLyogU19ETUFfMTkgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VBQ19NRF9ETF9SRAkyMQkvKiBTX0RNQV8yMCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRUFDX01EX0RMX1dSCTIyCS8qIFNfRE1BXzIxICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfQlRfVUxfUkQJMjMJLyogU19ETUFfMjIgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VBQ19CVF9VTF9XUgkyNAkvKiBTX0RNQV8yMyAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRUFDX0JUX0RMX1JECTI1CS8qIFNfRE1BXzI0ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfQlRfRExfV1IJMjYJLyogU19ETUFfMjUgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX1NIQTJNRDVfUlgJCTEzCS8qIFNfRE1BXzEyICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FWFRfRE1BUkVRMgkxNAkvKiBTX0RNQV8xMyAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRVhUX0RNQVJFUTMJMTUJLyogU19ETUFfMTQgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VYVF9ETUFSRVE0CTE2CS8qIFNfRE1BXzE1ICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FQUNfQUNfUkQJCTE3CS8qIFNfRE1BXzE2ICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FQUNfQUNfV1IJCTE4CS8qIFNfRE1BXzE3ICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FQUNfTURfVUxfUkQJMTkJLyogU19ETUFfMTggKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19NRF9VTF9XUgkyMAkvKiBTX0RNQV8xOSAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRUFDX01EX0RMX1JECTIxCS8qIFNfRE1BXzIwICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FQUNfTURfRExfV1IJMjIJLyogU19ETUFfMjEgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19CVF9VTF9SRAkyMwkvKiBTX0RNQV8yMiAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRUFDX0JUX1VMX1dSCTI0CS8qIFNfRE1BXzIzICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FQUNfQlRfRExfUkQJMjUJLyogU19ETUFfMjQgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19CVF9ETF9XUgkyNgkvKiBTX0RNQV8yNSAqLworI2RlZmluZSBPTUFQMjQzWF9ETUFfRVhUX0RNQVJFUTMJMTQJLyogU19ETUFfMTMgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTNfVFgwCQkxNQkvKiBTX0RNQV8xNCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJM19SWDAJCTE2CS8qIFNfRE1BXzE1ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDNfVFgJCTE3CS8qIFNfRE1BXzE2ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDNfUlgJCTE4CS8qIFNfRE1BXzE3ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDRfVFgJCTE5CS8qIFNfRE1BXzE4ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDRfUlgJCTIwCS8qIFNfRE1BXzE5ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDVfVFgJCTIxCS8qIFNfRE1BXzIwICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDVfUlgJCTIyCS8qIFNfRE1BXzIxICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkzX1RYMQkJMjMJLyogU19ETUFfMjIgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTNfUlgxCQkyNAkvKiBTX0RNQV8yMyAqLworI2RlZmluZSBPTUFQMjQzWF9ETUFfRVhUX0RNQVJFUTQJMjUJLyogU19ETUFfMjQgKi8KKyNkZWZpbmUgT01BUDI0M1hfRE1BX0VYVF9ETUFSRVE1CTI2CS8qIFNfRE1BXzI1ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9JMkMzX1RYCQkyNQkvKiBTX0RNQV8yNCAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfSTJDM19SWAkJMjYJLyogU19ETUFfMjUgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0kyQzFfVFgJCTI3CS8qIFNfRE1BXzI2ICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9JMkMxX1JYCQkyOAkvKiBTX0RNQV8yNyAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfSTJDMl9UWAkJMjkJLyogU19ETUFfMjggKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0kyQzJfUlgJCTMwCS8qIFNfRE1BXzI5ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDFfVFgJCTMxCS8qIFNETUFfMzAgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQMV9SWAkJMzIJLyogU0RNQV8zMSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfTUNCU1AyX1RYCQkzMwkvKiBTRE1BXzMyICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDJfUlgJCTM0CS8qIFNETUFfMzMgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfVFgwCQkzNQkvKiBTRE1BXzM0ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1JYMAkJMzYJLyogU0RNQV8zNSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9UWDEJCTM3CS8qIFNETUFfMzYgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgxCQkzOAkvKiBTRE1BXzM3ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1RYMgkJMzkJLyogU0RNQV8zOCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9SWDIJCTQwCS8qIFNETUFfMzkgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfVFgzCQk0MQkvKiBTRE1BXzQwICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1JYMwkJNDIJLyogU0RNQV80MSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMl9UWDAJCTQzCS8qIFNETUFfNDIgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTJfUlgwCQk0NAkvKiBTRE1BXzQzICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkyX1RYMQkJNDUJLyogU0RNQV80NCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMl9SWDEJCTQ2CS8qIFNETUFfNDUgKi8KLQotI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDFfVFgJCTQ5CS8qIFNETUFfNDggKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQxX1JYCQk1MAkvKiBTRE1BXzQ5ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUMl9UWAkJNTEJLyogU0RNQV81MCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDJfUlgJCTUyCS8qIFNETUFfNTEgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQzX1RYCQk1MwkvKiBTRE1BXzUyICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUM19SWAkJNTQJLyogU0RNQV81MyAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfVFgwCTU1CS8qIFNETUFfNTQgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1JYMAk1NgkvKiBTRE1BXzU1ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19UWDEJNTcJLyogU0RNQV81NiAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfUlgxCTU4CS8qIFNETUFfNTcgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1RYMgk1OQkvKiBTRE1BXzU4ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19SWDIJNjAJLyogU0RNQV81OSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfTU1DMV9UWAkJNjEJLyogU0RNQV82MCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfTU1DMV9SWAkJNjIJLyogU0RNQV82MSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfTVMJCQk2MwkvKiBTRE1BXzYyICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FWFRfRE1BUkVRNQk2NAkvKiBTX0RNQV82MyAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTUNCU1AxX1RYCQkzMQkvKiBTX0RNQV8zMCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTUNCU1AxX1JYCQkzMgkvKiBTX0RNQV8zMSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTUNCU1AyX1RYCQkzMwkvKiBTX0RNQV8zMiAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTUNCU1AyX1JYCQkzNAkvKiBTX0RNQV8zMyAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9UWDAJCTM1CS8qIFNfRE1BXzM0ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1JYMAkJMzYJLyogU19ETUFfMzUgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfVFgxCQkzNwkvKiBTX0RNQV8zNiAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9SWDEJCTM4CS8qIFNfRE1BXzM3ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1RYMgkJMzkJLyogU19ETUFfMzggKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgyCQk0MAkvKiBTX0RNQV8zOSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9UWDMJCTQxCS8qIFNfRE1BXzQwICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1JYMwkJNDIJLyogU19ETUFfNDEgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTJfVFgwCQk0MwkvKiBTX0RNQV80MiAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMl9SWDAJCTQ0CS8qIFNfRE1BXzQzICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkyX1RYMQkJNDUJLyogU19ETUFfNDQgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTJfUlgxCQk0NgkvKiBTX0RNQV80NSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTU1DMl9UWAkJNDcJLyogU19ETUFfNDYgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01NQzJfUlgJCTQ4CS8qIFNfRE1BXzQ3ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUMV9UWAkJNDkJLyogU19ETUFfNDggKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQxX1JYCQk1MAkvKiBTX0RNQV80OSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDJfVFgJCTUxCS8qIFNfRE1BXzUwICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUMl9SWAkJNTIJLyogU19ETUFfNTEgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQzX1RYCQk1MwkvKiBTX0RNQV81MiAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDNfUlgJCTU0CS8qIFNfRE1BXzUzICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19UWDAJNTUJLyogU19ETUFfNTQgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1JYMAk1NgkvKiBTX0RNQV81NSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfVFgxCTU3CS8qIFNfRE1BXzU2ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19SWDEJNTgJLyogU19ETUFfNTcgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1RYMgk1OQkvKiBTX0RNQV81OCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfUlgyCTYwCS8qIFNfRE1BXzU5ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NTUMxX1RYCQk2MQkvKiBTX0RNQV82MCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTU1DMV9SWAkJNjIJLyogU19ETUFfNjEgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01TCQkJNjMJLyogU19ETUFfNjIgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VYVF9ETUFSRVE1CTY0CS8qIFNfRE1BXzYzICovCisjZGVmaW5lIE9NQVAyNDNYX0RNQV9FWFRfRE1BUkVRNgk2NAkvKiBTX0RNQV82MyAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfRVhUX0RNQVJFUTMJNjQJLyogU19ETUFfNjMgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX0FFUzJfVFgJCTY1CS8qIFNfRE1BXzY0ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9BRVMyX1JYCQk2NgkvKiBTX0RNQV82NSAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfREVTMl9UWAkJNjcJLyogU19ETUFfNjYgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX0RFUzJfUlgJCTY4CS8qIFNfRE1BXzY3ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9TSEExTUQ1X1JYCQk2OQkvKiBTX0RNQV82OCAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfU1BJNF9UWDAJCTcwCS8qIFNfRE1BXzY5ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9TUEk0X1JYMAkJNzEJLyogU19ETUFfNzAgKi8KKyNkZWZpbmUgT01BUDM0WFhfRFNTX0RNQTAJCTcyCS8qIFNfRE1BXzcxICovCisjZGVmaW5lIE9NQVAzNFhYX0RTU19ETUExCQk3MwkvKiBTX0RNQV83MiAqLworI2RlZmluZSBPTUFQMzRYWF9EU1NfRE1BMgkJNzQJLyogU19ETUFfNzMgKi8KKyNkZWZpbmUgT01BUDM0WFhfRFNTX0RNQTMJCTc1CS8qIFNfRE1BXzc0ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9NTUMzX1RYCQk3NwkvKiBTX0RNQV83NiAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfTU1DM19SWAkJNzgJLyogU19ETUFfNzcgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX1VTSU1fVFgJCTc5CS8qIFNfRE1BXzc4ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9VU0lNX1JYCQk4MAkvKiBTX0RNQV83OSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCkBAIC0zNTgsNiArNDEzLDExIEBACiAJT01BUF9ETUFfREFUQV9CVVJTVF8xNiwKIH07CiAKK2VudW0gZW5kX3R5cGUgeworCU9NQVBfRE1BX0xJVFRMRV9FTkRJQU4gPSAwLAorCU9NQVBfRE1BX0JJR19FTkRJQU4KK307CisKIGVudW0gb21hcF9kbWFfY29sb3JfbW9kZSB7CiAJT01BUF9ETUFfQ09MT1JfRElTID0gMCwKIAlPTUFQX0RNQV9DT05TVEFOVF9GSUxMLApAQCAtMzcwLDI0ICs0MzAsMzQgQEAKIAlPTUFQX0RNQV9XUklURV9MQVNUX05PTl9QT1NURUQKIH07CiAKK2VudW0gb21hcF9kbWFfY2hhbm5lbF9tb2RlIHsKKwlPTUFQX0RNQV9MQ0hfMkQgPSAwLAorCU9NQVBfRE1BX0xDSF9HLAorCU9NQVBfRE1BX0xDSF9QLAorCU9NQVBfRE1BX0xDSF9QRAorfTsKKwogc3RydWN0IG9tYXBfZG1hX2NoYW5uZWxfcGFyYW1zIHsKIAlpbnQgZGF0YV90eXBlOwkJLyogZGF0YSB0eXBlIDgsMTYsMzIgKi8KIAlpbnQgZWxlbV9jb3VudDsJCS8qIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIGZyYW1lICovCiAJaW50IGZyYW1lX2NvdW50OwkvKiBudW1iZXIgb2YgZnJhbWVzIGluIGEgZWxlbWVudCAqLwogCiAJaW50IHNyY19wb3J0OwkJLyogT25seSBvbiBPTUFQMSBSRVZJU0lUOiBJcyB0aGlzIG5lZWRlZD8gKi8KLQlpbnQgc3JjX2Ftb2RlOwkJLyogY29uc3RhbnQgLCBwb3N0IGluY3JlbWVudCwgaW5kZXhlZCAsIGRvdWJsZSBpbmRleGVkICovCisJaW50IHNyY19hbW9kZTsJCS8qIGNvbnN0YW50LCBwb3N0IGluY3JlbWVudCwgaW5kZXhlZCwKKwkJCQkJZG91YmxlIGluZGV4ZWQgKi8KIAl1bnNpZ25lZCBsb25nIHNyY19zdGFydDsJLyogc291cmNlIGFkZHJlc3MgOiBwaHlzaWNhbCAqLwogCWludCBzcmNfZWk7CQkvKiBzb3VyY2UgZWxlbWVudCBpbmRleCAqLwogCWludCBzcmNfZmk7CQkvKiBzb3VyY2UgZnJhbWUgaW5kZXggKi8KIAogCWludCBkc3RfcG9ydDsJCS8qIE9ubHkgb24gT01BUDEgUkVWSVNJVDogSXMgdGhpcyBuZWVkZWQ/ICovCi0JaW50IGRzdF9hbW9kZTsJCS8qIGNvbnN0YW50ICwgcG9zdCBpbmNyZW1lbnQsIGluZGV4ZWQgLCBkb3VibGUgaW5kZXhlZCAqLworCWludCBkc3RfYW1vZGU7CQkvKiBjb25zdGFudCwgcG9zdCBpbmNyZW1lbnQsIGluZGV4ZWQsCisJCQkJCWRvdWJsZSBpbmRleGVkICovCiAJdW5zaWduZWQgbG9uZyBkc3Rfc3RhcnQ7CS8qIHNvdXJjZSBhZGRyZXNzIDogcGh5c2ljYWwgKi8KIAlpbnQgZHN0X2VpOwkJLyogc291cmNlIGVsZW1lbnQgaW5kZXggKi8KIAlpbnQgZHN0X2ZpOwkJLyogc291cmNlIGZyYW1lIGluZGV4ICovCiAKLQlpbnQgdHJpZ2dlcjsJCS8qIHRyaWdnZXIgYXR0YWNoZWQgaWYgdGhlIGNoYW5uZWwgaXMgc3luY2hyb25pemVkICovCisJaW50IHRyaWdnZXI7CQkvKiB0cmlnZ2VyIGF0dGFjaGVkIGlmIHRoZSBjaGFubmVsIGlzCisJCQkJCXN5bmNocm9uaXplZCAqLwogCWludCBzeW5jX21vZGU7CQkvKiBzeWNuIG9uIGVsZW1lbnQsIGZyYW1lICwgYmxvY2sgb3IgcGFja2V0ICovCiAJaW50IHNyY19vcl9kc3Rfc3luY2g7CS8qIHNvdXJjZSBzeW5jaCgxKSBvciBkZXN0aW5hdGlvbiBzeW5jaCgwKSAqLwogCkBAIC00MDQsOCArNDc0LDggQEAKIAogZXh0ZXJuIHZvaWQgb21hcF9zZXRfZG1hX3ByaW9yaXR5KGludCBsY2gsIGludCBkc3RfcG9ydCwgaW50IHByaW9yaXR5KTsKIGV4dGVybiBpbnQgb21hcF9yZXF1ZXN0X2RtYShpbnQgZGV2X2lkLCBjb25zdCBjaGFyICpkZXZfbmFtZSwKLQkJCSAgICB2b2lkICgqIGNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKSwKLQkJCSAgICB2b2lkICpkYXRhLCBpbnQgKmRtYV9jaCk7CisJCQl2b2lkICgqY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAorCQkJdm9pZCAqZGF0YSwgaW50ICpkbWFfY2gpOwogZXh0ZXJuIHZvaWQgb21hcF9lbmFibGVfZG1hX2lycShpbnQgY2gsIHUxNiBpcnFfYml0cyk7CiBleHRlcm4gdm9pZCBvbWFwX2Rpc2FibGVfZG1hX2lycShpbnQgY2gsIHUxNiBpcnFfYml0cyk7CiBleHRlcm4gdm9pZCBvbWFwX2ZyZWVfZG1hKGludCBjaCk7CkBAIC00MTgsNiArNDg4LDcgQEAKIGV4dGVybiB2b2lkIG9tYXBfc2V0X2RtYV9jb2xvcl9tb2RlKGludCBsY2gsIGVudW0gb21hcF9kbWFfY29sb3JfbW9kZSBtb2RlLAogCQkJCSAgICB1MzIgY29sb3IpOwogZXh0ZXJuIHZvaWQgb21hcF9zZXRfZG1hX3dyaXRlX21vZGUoaW50IGxjaCwgZW51bSBvbWFwX2RtYV93cml0ZV9tb2RlIG1vZGUpOworZXh0ZXJuIHZvaWQgb21hcF9zZXRfZG1hX2NoYW5uZWxfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX2NoYW5uZWxfbW9kZSBtb2RlKTsKIAogZXh0ZXJuIHZvaWQgb21hcF9zZXRfZG1hX3NyY19wYXJhbXMoaW50IGxjaCwgaW50IHNyY19wb3J0LCBpbnQgc3JjX2Ftb2RlLAogCQkJCSAgICB1bnNpZ25lZCBsb25nIHNyY19zdGFydCwKQEAgLTQzNiwyMyArNTA3LDI2IEBACiAJCQkJCSBlbnVtIG9tYXBfZG1hX2J1cnN0X21vZGUgYnVyc3RfbW9kZSk7CiAKIGV4dGVybiB2b2lkIG9tYXBfc2V0X2RtYV9wYXJhbXMoaW50IGxjaCwKLQkJCQlzdHJ1Y3Qgb21hcF9kbWFfY2hhbm5lbF9wYXJhbXMgKiBwYXJhbXMpOworCQkJCXN0cnVjdCBvbWFwX2RtYV9jaGFubmVsX3BhcmFtcyAqcGFyYW1zKTsKIAotZXh0ZXJuIHZvaWQgb21hcF9kbWFfbGlua19sY2ggKGludCBsY2hfaGVhZCwgaW50IGxjaF9xdWV1ZSk7Ci1leHRlcm4gdm9pZCBvbWFwX2RtYV91bmxpbmtfbGNoIChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpOworZXh0ZXJuIHZvaWQgb21hcF9kbWFfbGlua19sY2goaW50IGxjaF9oZWFkLCBpbnQgbGNoX3F1ZXVlKTsKK2V4dGVybiB2b2lkIG9tYXBfZG1hX3VubGlua19sY2goaW50IGxjaF9oZWFkLCBpbnQgbGNoX3F1ZXVlKTsKIAogZXh0ZXJuIGludCBvbWFwX3NldF9kbWFfY2FsbGJhY2soaW50IGxjaCwKLQkJCXZvaWQgKCogY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAorCQkJdm9pZCAoKmNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKSwKIAkJCXZvaWQgKmRhdGEpOwogZXh0ZXJuIGRtYV9hZGRyX3Qgb21hcF9nZXRfZG1hX3NyY19wb3MoaW50IGxjaCk7CiBleHRlcm4gZG1hX2FkZHJfdCBvbWFwX2dldF9kbWFfZHN0X3BvcyhpbnQgbGNoKTsKLWV4dGVybiBpbnQgb21hcF9nZXRfZG1hX3NyY19hZGRyX2NvdW50ZXIoaW50IGxjaCk7CiBleHRlcm4gdm9pZCBvbWFwX2NsZWFyX2RtYShpbnQgbGNoKTsKK2V4dGVybiBpbnQgb21hcF9nZXRfZG1hX2FjdGl2ZV9zdGF0dXMoaW50IGxjaCk7CiBleHRlcm4gaW50IG9tYXBfZG1hX3J1bm5pbmcodm9pZCk7CiBleHRlcm4gdm9pZCBvbWFwX2RtYV9zZXRfZ2xvYmFsX3BhcmFtcyhpbnQgYXJiX3JhdGUsIGludCBtYXhfZmlmb19kZXB0aCwKIAkJCQkgICAgICAgaW50IHRwYXJhbXMpOwogZXh0ZXJuIGludCBvbWFwX2RtYV9zZXRfcHJpb19sY2goaW50IGxjaCwgdW5zaWduZWQgY2hhciByZWFkX3ByaW8sCiAJCQkJIHVuc2lnbmVkIGNoYXIgd3JpdGVfcHJpbyk7CitleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfZHN0X2VuZGlhbl90eXBlKGludCBsY2gsIGVudW0gZW5kX3R5cGUgZXR5cGUpOworZXh0ZXJuIHZvaWQgb21hcF9zZXRfZG1hX3NyY19lbmRpYW5fdHlwZShpbnQgbGNoLCBlbnVtIGVuZF90eXBlIGV0eXBlKTsKK2V4dGVybiBpbnQgb21hcF9nZXRfZG1hX2luZGV4KGludCBsY2gsIGludCAqZWksIGludCAqZmkpOwogCiAvKiBDaGFpbmluZyBBUElzICovCiAjaWZuZGVmIENPTkZJR19BUkNIX09NQVAxCkBAIC00NzgsNyArNTUyLDcgQEAKICNlbmRpZgogCiAvKiBMQ0QgRE1BIGZ1bmN0aW9ucyAqLwotZXh0ZXJuIGludCBvbWFwX3JlcXVlc3RfbGNkX2RtYSh2b2lkICgqIGNhbGxiYWNrKSh1MTYgc3RhdHVzLCB2b2lkICpkYXRhKSwKK2V4dGVybiBpbnQgb21hcF9yZXF1ZXN0X2xjZF9kbWEodm9pZCAoKmNhbGxiYWNrKSh1MTYgc3RhdHVzLCB2b2lkICpkYXRhKSwKIAkJCQl2b2lkICpkYXRhKTsKIGV4dGVybiB2b2lkIG9tYXBfZnJlZV9sY2RfZG1hKHZvaWQpOwogZXh0ZXJuIHZvaWQgb21hcF9zZXR1cF9sY2RfZG1hKHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9kbXRpbWVyLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2RtdGltZXIuaAppbmRleCBmZWZiMjc2Li4wMmIyOWU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2RtdGltZXIuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2RtdGltZXIuaApAQCAtNjYsNiArNjYsNyBAQAogCiB2b2lkIG9tYXBfZG1fdGltZXJfc2V0X3NvdXJjZShzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBzb3VyY2UpOwogdm9pZCBvbWFwX2RtX3RpbWVyX3NldF9sb2FkKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IGF1dG9yZWxvYWQsIHVuc2lnbmVkIGludCB2YWx1ZSk7Cit2b2lkIG9tYXBfZG1fdGltZXJfc2V0X2xvYWRfc3RhcnQoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCBpbnQgYXV0b3JlbG9hZCwgdW5zaWduZWQgaW50IHZhbHVlKTsKIHZvaWQgb21hcF9kbV90aW1lcl9zZXRfbWF0Y2goc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCBpbnQgZW5hYmxlLCB1bnNpZ25lZCBpbnQgbWF0Y2gpOwogdm9pZCBvbWFwX2RtX3RpbWVyX3NldF9wd20oc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCBpbnQgZGVmX29uLCBpbnQgdG9nZ2xlLCBpbnQgdHJpZ2dlcik7CiB2b2lkIG9tYXBfZG1fdGltZXJfc2V0X3ByZXNjYWxlcihzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBwcmVzY2FsZXIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9mcGdhLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2ZwZ2EuaAppbmRleCA2YTg4M2UwLi5mNDIwODgxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2ZwZ2EuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2ZwZ2EuaApAQCAtMTY5LDMwICsxNjksMjkgQEAKICNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0EJCShJSF9HUElPX0JBU0UgKyAxMykKIAogLyogSVJRIE51bWJlcnMgZm9yIGludGVycnVwdHMgbXV4ZWQgdGhyb3VnaCB0aGUgRlBHQSAqLwotI2RlZmluZSBPTUFQMTUxMF9JSF9GUEdBX0JBU0UJCUlIX0JPQVJEX0JBU0UKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfQVROCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMCkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfQUNLCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMSkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0EyCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMikKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0EzCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMykKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E0CQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgNCkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E1CQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgNSkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E2CQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgNikKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E3CQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgNykKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E4CQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgOCkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E5CQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgOSkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0ExMAkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDEwKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTExCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTEpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMTIJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxMikKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0VUSEVSCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTMpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBVUFSVDEJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxNCkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FVQVJUMgkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDE1KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9UUwkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDE2KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTE3CQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTcpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX0NBTQkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDE4KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9SVENfQQkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDE5KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9SVENfQgkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDIwKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9DRAkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDIxKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTIyCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMjIpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMjMJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAyMykKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfQVROCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMCkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfQUNLCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMSkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0EyCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMikKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0EzCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMykKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E0CQkoT01BUF9GUEdBX0lSUV9CQVNFICsgNCkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E1CQkoT01BUF9GUEdBX0lSUV9CQVNFICsgNSkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E2CQkoT01BUF9GUEdBX0lSUV9CQVNFICsgNikKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E3CQkoT01BUF9GUEdBX0lSUV9CQVNFICsgNykKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E4CQkoT01BUF9GUEdBX0lSUV9CQVNFICsgOCkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0E5CQkoT01BUF9GUEdBX0lSUV9CQVNFICsgOSkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0ExMAkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDEwKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTExCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTEpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMTIJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxMikKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0VUSEVSCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTMpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBVUFSVDEJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxNCkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FVQVJUMgkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDE1KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9UUwkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDE2KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTE3CQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTcpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX0NBTQkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDE4KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9SVENfQQkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDE5KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9SVENfQgkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDIwKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9DRAkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDIxKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTIyCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMjIpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMjMJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAyMykKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2hhcmR3YXJlLmgKaW5kZXggOTFkODViMy4uNDVmZGZjYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvaGFyZHdhcmUuaApAQCAtMjg0LDYgKzI4NCw3IEBACiAjaW5jbHVkZSAib21hcDE1MTAuaCIKICNpbmNsdWRlICJvbWFwMjR4eC5oIgogI2luY2x1ZGUgIm9tYXAxNnh4LmgiCisjaW5jbHVkZSAib21hcDM0eHguaCIKIAogI2lmbmRlZiBfX0FTU0VNQkxFUl9fCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvaW8uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvaW8uaAppbmRleCAxNjA1NzhlLi4wYjEzNTU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2lvLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pby5oCkBAIC02MCw2ICs2MCw3IEBACiAjZGVmaW5lIElPX1NJWkUJCTB4NDAwMDAKICNkZWZpbmUgSU9fVklSVAkJKElPX1BIWVMgLSBJT19PRkZTRVQpCiAjZGVmaW5lIElPX0FERFJFU1MocGEpCSgocGEpIC0gSU9fT0ZGU0VUKQorI2RlZmluZSBPTUFQMV9JT19BRERSRVNTKHBhKQkoKHBhKSAtIElPX09GRlNFVCkKICNkZWZpbmUgaW9fcDJ2KHBhKQkoKHBhKSAtIElPX09GRlNFVCkKICNkZWZpbmUgaW9fdjJwKHZhKQkoKHZhKSArIElPX09GRlNFVCkKIApAQCAtOTEsNiArOTIsNyBAQAogCiAjZGVmaW5lIElPX09GRlNFVAkweDkwMDAwMDAwCiAjZGVmaW5lIElPX0FERFJFU1MocGEpCSgocGEpICsgSU9fT0ZGU0VUKQkvKiBXb3JrcyBmb3IgTDMgYW5kIEw0ICovCisjZGVmaW5lIE9NQVAyX0lPX0FERFJFU1MocGEpCSgocGEpICsgSU9fT0ZGU0VUKQkvKiBXb3JrcyBmb3IgTDMgYW5kIEw0ICovCiAjZGVmaW5lIGlvX3AydihwYSkJKChwYSkgKyBJT19PRkZTRVQpCS8qIFdvcmtzIGZvciBMMyBhbmQgTDQgKi8KICNkZWZpbmUgaW9fdjJwKHZhKQkoKHZhKSAtIElPX09GRlNFVCkJLyogV29ya3MgZm9yIEwzIGFuZCBMNCAqLwogCkBAIC0xNDgsNiArMTUwLDcgQEAKIAogI2RlZmluZSBJT19PRkZTRVQJCTB4OTAwMDAwMDAKICNkZWZpbmUgSU9fQUREUkVTUyhwYSkJCSgocGEpICsgSU9fT0ZGU0VUKS8qIFdvcmtzIGZvciBMMyBhbmQgTDQgKi8KKyNkZWZpbmUgT01BUDJfSU9fQUREUkVTUyhwYSkJKChwYSkgKyBJT19PRkZTRVQpLyogV29ya3MgZm9yIEwzIGFuZCBMNCAqLwogI2RlZmluZSBpb19wMnYocGEpCQkoKHBhKSArIElPX09GRlNFVCkvKiBXb3JrcyBmb3IgTDMgYW5kIEw0ICovCiAjZGVmaW5lIGlvX3YycCh2YSkJCSgodmEpIC0gSU9fT0ZGU0VUKS8qIFdvcmtzIGZvciBMMyBhbmQgTDQgKi8KIApAQCAtMTgzLDM1ICsxODYsMTIgQEAKICNkZWZpbmUgb21hcF93cml0ZXcodixhKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKUlPX0FERFJFU1MoYSkgPSAodikpCiAjZGVmaW5lIG9tYXBfd3JpdGVsKHYsYSkJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICAgKilJT19BRERSRVNTKGEpID0gKHYpKQogCi0vKiAxNiBiaXQgdXNlcyBMRFJIL1NUUkgsIGJhc2UgKy8tIG9mZnNldF84ICovCi10eXBlZGVmIHN0cnVjdCB7IHZvbGF0aWxlIHUxNiBvZmZzZXRbMjU2XTsgfSBfX3JlZ2Jhc2UxNjsKLSNkZWZpbmUgX19SRUdWMTYodmFkZHIpCQkoKF9fcmVnYmFzZTE2ICopKCh2YWRkcikmfjB4ZmYpKSBcCi0JCQkJCS0+b2Zmc2V0WygodmFkZHIpJjB4ZmYpPj4xXQotI2RlZmluZSBfX1JFRzE2KHBhZGRyKSAgICAgICAgICBfX1JFR1YxNihpb19wMnYocGFkZHIpKQotCi0vKiA4LzMyIGJpdCB1c2VzIExEUi9TVFIsIGJhc2UgKy8tIG9mZnNldF8xMiAqLwotdHlwZWRlZiBzdHJ1Y3QgeyB2b2xhdGlsZSB1OCBvZmZzZXRbNDA5Nl07IH0gX19yZWdiYXNlODsKLSNkZWZpbmUgX19SRUdWOCh2YWRkcikJCSgoX19yZWdiYXNlOCAgKikoKHZhZGRyKSZ+NDA5NSkpIFwKLQkJCQkJLT5vZmZzZXRbKCh2YWRkcikmNDA5NSk+PjBdCi0jZGVmaW5lIF9fUkVHOChwYWRkcikJCV9fUkVHVjgoaW9fcDJ2KHBhZGRyKSkKLQotdHlwZWRlZiBzdHJ1Y3QgeyB2b2xhdGlsZSB1MzIgb2Zmc2V0WzQwOTZdOyB9IF9fcmVnYmFzZTMyOwotI2RlZmluZSBfX1JFR1YzMih2YWRkcikJCSgoX19yZWdiYXNlMzIgKikoKHZhZGRyKSZ+NDA5NSkpIFwKLQkJCQkJLT5vZmZzZXRbKCh2YWRkcikmNDA5NSk+PjJdCi0jZGVmaW5lIF9fUkVHMzIocGFkZHIpCQlfX1JFR1YzMihpb19wMnYocGFkZHIpKQotCiBleHRlcm4gdm9pZCBvbWFwMV9tYXBfY29tbW9uX2lvKHZvaWQpOwogZXh0ZXJuIHZvaWQgb21hcDFfaW5pdF9jb21tb25faHcodm9pZCk7CiAKIGV4dGVybiB2b2lkIG9tYXAyX21hcF9jb21tb25faW8odm9pZCk7CiBleHRlcm4gdm9pZCBvbWFwMl9pbml0X2NvbW1vbl9odyh2b2lkKTsKIAotI2Vsc2UKLQotI2RlZmluZSBfX1JFRzgocGFkZHIpCQlpb19wMnYocGFkZHIpCi0jZGVmaW5lIF9fUkVHMTYocGFkZHIpCQlpb19wMnYocGFkZHIpCi0jZGVmaW5lIF9fUkVHMzIocGFkZHIpCQlpb19wMnYocGFkZHIpCi0KICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvaXJxcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pcnFzLmgKaW5kZXggODc5NzM2NS4uNzQ2NGM2OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pcnFzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pcnFzLmgKQEAgLTI4NSw3ICsyODUsNDEgQEAKICNkZWZpbmUgT01BUF9NQVhfR1BJT19MSU5FUwkxOTIKICNkZWZpbmUgSUhfR1BJT19CQVNFCQkoMTI4ICsgSUgyX0JBU0UpCiAjZGVmaW5lIElIX01QVUlPX0JBU0UJCShPTUFQX01BWF9HUElPX0xJTkVTICsgSUhfR1BJT19CQVNFKQotI2RlZmluZSBJSF9CT0FSRF9CQVNFCQkoMTYgKyBJSF9NUFVJT19CQVNFKQorI2RlZmluZSBPTUFQX0lSUV9FTkQJCShJSF9NUFVJT19CQVNFICsgMTYpCisKKy8qIEV4dGVybmFsIEZQR0EgaGFuZGxlcyBpbnRlcnJ1cHRzIG9uIElubm92YXRvciBib2FyZHMgKi8KKyNkZWZpbmUJT01BUF9GUEdBX0lSUV9CQVNFCShPTUFQX0lSUV9FTkQpCisjaWZkZWYJQ09ORklHX01BQ0hfT01BUF9JTk5PVkFUT1IKKyNkZWZpbmUgT01BUF9GUEdBX05SX0lSUVMJMjQKKyNlbHNlCisjZGVmaW5lIE9NQVBfRlBHQV9OUl9JUlFTCTAKKyNlbmRpZgorI2RlZmluZSBPTUFQX0ZQR0FfSVJRX0VORAkoT01BUF9GUEdBX0lSUV9CQVNFICsgT01BUF9GUEdBX05SX0lSUVMpCisKKy8qIEV4dGVybmFsIFRXTDQwMzAgY2FuIGhhbmRsZSBpbnRlcnJ1cHRzIG9uIDI0MzAgYW5kIDM0eHggYm9hcmRzICovCisjZGVmaW5lCVRXTDQwMzBfSVJRX0JBU0UJKE9NQVBfRlBHQV9JUlFfRU5EKQorI2lmZGVmCUNPTkZJR19UV0w0MDMwX0NPUkUKKyNkZWZpbmUJVFdMNDAzMF9CQVNFX05SX0lSUVMJOAorI2RlZmluZQlUV0w0MDMwX1BXUl9OUl9JUlFTCTgKKyNlbHNlCisjZGVmaW5lCVRXTDQwMzBfQkFTRV9OUl9JUlFTCTAKKyNkZWZpbmUJVFdMNDAzMF9QV1JfTlJfSVJRUwkwCisjZW5kaWYKKyNkZWZpbmUgVFdMNDAzMF9JUlFfRU5ECQkoVFdMNDAzMF9JUlFfQkFTRSArIFRXTDQwMzBfQkFTRV9OUl9JUlFTKQorI2RlZmluZSBUV0w0MDMwX1BXUl9JUlFfQkFTRQlUV0w0MDMwX0lSUV9FTkQKKyNkZWZpbmUJVFdMNDAzMF9QV1JfSVJRX0VORAkoVFdMNDAzMF9QV1JfSVJRX0JBU0UgKyBUV0w0MDMwX1BXUl9OUl9JUlFTKQorCisvKiBFeHRlcm5hbCBUV0w0MDMwIGdwaW8gaW50ZXJydXB0cyBhcmUgb3B0aW9uYWwgKi8KKyNkZWZpbmUgVFdMNDAzMF9HUElPX0lSUV9CQVNFCVRXTDQwMzBfUFdSX0lSUV9FTkQKKyNpZmRlZglDT05GSUdfVFdMNDAzMF9HUElPCisjZGVmaW5lIFRXTDQwMzBfR1BJT19OUl9JUlFTCTE4CisjZWxzZQorI2RlZmluZQlUV0w0MDMwX0dQSU9fTlJfSVJRUwkwCisjZW5kaWYKKyNkZWZpbmUgVFdMNDAzMF9HUElPX0lSUV9FTkQJKFRXTDQwMzBfR1BJT19JUlFfQkFTRSArIFRXTDQwMzBfR1BJT19OUl9JUlFTKQorCisvKiBUb3RhbCBudW1iZXIgb2YgaW50ZXJydXB0cyBkZXBlbmRzIG9uIHRoZSBlbmFibGVkIGJsb2NrcyBhYm92ZSAqLworI2RlZmluZSBOUl9JUlFTCQkJVFdMNDAzMF9HUElPX0lSUV9FTkQKIAogI2RlZmluZSBPTUFQX0lSUV9CSVQoaXJxKQkoMSA8PCAoKGlycSkgJSAzMikpCiAKQEAgLTI5MywxNCArMzI3LDYgQEAKIGV4dGVybiB2b2lkIG9tYXBfaW5pdF9pcnEodm9pZCk7CiAjZW5kaWYKIAotLyoKLSAqIFRoZSBkZWZpbml0aW9uIG9mIE5SX0lSUVMgaXMgaW4gYm9hcmQtc3BlY2lmaWMgaGVhZGVyIGZpbGUsIHdoaWNoIGlzCi0gKiBpbmNsdWRlZCB2aWEgaGFyZHdhcmUuaAotICovCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAKLSNpZm5kZWYgTlJfSVJRUwotI2RlZmluZSBOUl9JUlFTICAgICAgICAgICAgICAgICBJSF9CT0FSRF9CQVNFCi0jZW5kaWYKLQogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL21jYnNwLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL21jYnNwLmgKaW5kZXggYzdhMGNjMS4uMjZjNzhmNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9tY2JzcC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvbWNic3AuaApAQCAtMjQsNyArMjQsMTEgQEAKICNpZm5kZWYgX19BU01fQVJDSF9PTUFQX01DQlNQX0gKICNkZWZpbmUgX19BU01fQVJDSF9PTUFQX01DQlNQX0gKIAorI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2suaD4KIAogI2RlZmluZSBPTUFQNzMwX01DQlNQMV9CQVNFCTB4ZmZmYjEwMDAKICNkZWZpbmUgT01BUDczMF9NQ0JTUDJfQkFTRQkweGZmZmIxODAwCkBAIC00MCw2ICs0NCw5IEBACiAjZGVmaW5lIE9NQVAyNFhYX01DQlNQMV9CQVNFCTB4NDgwNzQwMDAKICNkZWZpbmUgT01BUDI0WFhfTUNCU1AyX0JBU0UJMHg0ODA3NjAwMAogCisjZGVmaW5lIE9NQVAzNFhYX01DQlNQMV9CQVNFCTB4NDgwNzQwMDAKKyNkZWZpbmUgT01BUDM0WFhfTUNCU1AyX0JBU0UJMHg0OTAyMjAwMAorCiAjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMTVYWCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMTZYWCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQNzMwKQogCiAjZGVmaW5lIE9NQVBfTUNCU1BfUkVHX0RSUjIJMHgwMApAQCAtNzQsNyArODEsOCBAQAogI2RlZmluZSBPTUFQX01DQlNQX1JFR19YQ0VSRwkweDNBCiAjZGVmaW5lIE9NQVBfTUNCU1BfUkVHX1hDRVJICTB4M0MKIAotI2RlZmluZSBPTUFQX01BWF9NQ0JTUF9DT1VOVCAzCisjZGVmaW5lIE9NQVBfTUFYX01DQlNQX0NPVU5UCTMKKyNkZWZpbmUgTUFYX01DQlNQX0NMT0NLUwkzCiAKICNkZWZpbmUgQVVESU9fTUNCU1BfREFUQVdSSVRFCShPTUFQMTUxMF9NQ0JTUDFfQkFTRSArIE9NQVBfTUNCU1BfUkVHX0RYUjEpCiAjZGVmaW5lIEFVRElPX01DQlNQX0RBVEFSRUFECShPTUFQMTUxMF9NQ0JTUDFfQkFTRSArIE9NQVBfTUNCU1BfUkVHX0RSUjEpCkBAIC0xMTcsNyArMTI1LDggQEAKICNkZWZpbmUgT01BUF9NQ0JTUF9SRUdfWENFUkcJMHg3NAogI2RlZmluZSBPTUFQX01DQlNQX1JFR19YQ0VSSAkweDc4CiAKLSNkZWZpbmUgT01BUF9NQVhfTUNCU1BfQ09VTlQgMgorI2RlZmluZSBPTUFQX01BWF9NQ0JTUF9DT1VOVAkyCisjZGVmaW5lIE1BWF9NQ0JTUF9DTE9DS1MJMgogCiAjZGVmaW5lIEFVRElPX01DQlNQX0RBVEFXUklURQkoT01BUDI0WFhfTUNCU1AyX0JBU0UgKyBPTUFQX01DQlNQX1JFR19EWFIxKQogI2RlZmluZSBBVURJT19NQ0JTUF9EQVRBUkVBRAkoT01BUDI0WFhfTUNCU1AyX0JBU0UgKyBPTUFQX01DQlNQX1JFR19EUlIxKQpAQCAtMjk4LDYgKzMwNyw1NSBAQAogCW9tYXBfbWNic3Bfd29yZF9sZW5ndGgJCXdvcmRfbGVuZ3RoOwogfTsKIAorLyogUGxhdGZvcm0gc3BlY2lmaWMgY29uZmlndXJhdGlvbiAqLworc3RydWN0IG9tYXBfbWNic3Bfb3BzIHsKKwl2b2lkICgqcmVxdWVzdCkodW5zaWduZWQgaW50KTsKKwl2b2lkICgqZnJlZSkodW5zaWduZWQgaW50KTsKKwlpbnQgKCpjaGVjaykodW5zaWduZWQgaW50KTsKK307CisKK3N0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgeworCXUzMiB2aXJ0X2Jhc2U7CisJdTggZG1hX3J4X3N5bmMsIGRtYV90eF9zeW5jOworCXUxNiByeF9pcnEsIHR4X2lycTsKKwlzdHJ1Y3Qgb21hcF9tY2JzcF9vcHMgKm9wczsKKwljaGFyIGNvbnN0ICpjbGtfbmFtZTsKK307CisKK3N0cnVjdCBvbWFwX21jYnNwIHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJdTMyIGlvX2Jhc2U7CisJdTggaWQ7CisJdTggZnJlZTsKKwlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHJ4X3dvcmRfbGVuZ3RoOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggdHhfd29yZF9sZW5ndGg7CisKKwlvbWFwX21jYnNwX2lvX3R5cGVfdCBpb190eXBlOyAvKiBJUlEgb3IgcG9sbCAqLworCS8qIElSUSBiYXNlZCBUWC9SWCAqLworCWludCByeF9pcnE7CisJaW50IHR4X2lycTsKKworCS8qIERNQSBzdHVmZiAqLworCXU4IGRtYV9yeF9zeW5jOworCXNob3J0IGRtYV9yeF9sY2g7CisJdTggZG1hX3R4X3N5bmM7CisJc2hvcnQgZG1hX3R4X2xjaDsKKworCS8qIENvbXBsZXRpb24gcXVldWVzICovCisJc3RydWN0IGNvbXBsZXRpb24gdHhfaXJxX2NvbXBsZXRpb247CisJc3RydWN0IGNvbXBsZXRpb24gcnhfaXJxX2NvbXBsZXRpb247CisJc3RydWN0IGNvbXBsZXRpb24gdHhfZG1hX2NvbXBsZXRpb247CisJc3RydWN0IGNvbXBsZXRpb24gcnhfZG1hX2NvbXBsZXRpb247CisKKwkvKiBQcm90ZWN0IHRoZSBmaWVsZCAuZnJlZSwgd2hpbGUgY2hlY2tpbmcgaWYgdGhlIG1jYnNwIGlzIGluIHVzZSAqLworCXNwaW5sb2NrX3QgbG9jazsKKwlzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhICpwZGF0YTsKKwlzdHJ1Y3QgY2xrICpjbGs7Cit9OworCitpbnQgb21hcF9tY2JzcF9pbml0KHZvaWQpOwordm9pZCBvbWFwX21jYnNwX3JlZ2lzdGVyX2JvYXJkX2NmZyhzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhICpjb25maWcsCisJCQkJCWludCBzaXplKTsKIHZvaWQgb21hcF9tY2JzcF9jb25maWcodW5zaWduZWQgaW50IGlkLCBjb25zdCBzdHJ1Y3Qgb21hcF9tY2JzcF9yZWdfY2ZnICogY29uZmlnKTsKIGludCBvbWFwX21jYnNwX3JlcXVlc3QodW5zaWduZWQgaW50IGlkKTsKIHZvaWQgb21hcF9tY2JzcF9mcmVlKHVuc2lnbmVkIGludCBpZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL29tYXAzNHh4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL29tYXAzNHh4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWEzMGM2ZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvb21hcDM0eHguaApAQCAtMCwwICsxLDcyIEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9vbWFwMzR4eC5oCisgKgorICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBwcm9jZXNzb3Igc3BlY2lmaWMgZGVmaW5pdGlvbnMgb2YgdGhlIFRJIE9NQVAzNFhYLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBUZXhhcyBJbnN0cnVtZW50cy4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBOb2tpYSBDb3Jwb3JhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX09NQVAzNFhYX0gKKyNkZWZpbmUgX19BU01fQVJDSF9PTUFQMzRYWF9ICisKKy8qCisgKiBQbGVhc2UgcGxhY2Ugb25seSBiYXNlIGRlZmluZXMgaGVyZSBhbmQgcHV0IHRoZSByZXN0IGluIGRldmljZQorICogc3BlY2lmaWMgaGVhZGVycy4KKyAqLworCisjZGVmaW5lIEw0XzM0WFhfQkFTRQkJMHg0ODAwMDAwMAorI2RlZmluZSBMNF9XS18zNFhYX0JBU0UJCTB4NDgzMDAwMDAKKyNkZWZpbmUgTDRfV0tfT01BUF9CQVNFCQlMNF9XS18zNFhYX0JBU0UKKyNkZWZpbmUgTDRfUEVSXzM0WFhfQkFTRQkweDQ5MDAwMDAwCisjZGVmaW5lIEw0X1BFUl9PTUFQX0JBU0UJTDRfUEVSXzM0WFhfQkFTRQorI2RlZmluZSBMNF9FTVVfMzRYWF9CQVNFCTB4NTQwMDAwMDAKKyNkZWZpbmUgTDRfRU1VX0JBU0UJCUw0X0VNVV8zNFhYX0JBU0UKKyNkZWZpbmUgTDNfMzRYWF9CQVNFCQkweDY4MDAwMDAwCisjZGVmaW5lIEwzX09NQVBfQkFTRQkJTDNfMzRYWF9CQVNFCisKKyNkZWZpbmUgT01BUDM0MzBfMzJLU1lOQ1RfQkFTRQkweDQ4MzIwMDAwCisjZGVmaW5lIE9NQVAzNDMwX0NNX0JBU0UJMHg0ODAwNDgwMAorI2RlZmluZSBPTUFQMzQzMF9QUk1fQkFTRQkweDQ4MzA2ODAwCisjZGVmaW5lIE9NQVAzNDNYX1NNU19CQVNFCTB4NkMwMDAwMDAKKyNkZWZpbmUgT01BUDM0M1hfU0RSQ19CQVNFCTB4NkQwMDAwMDAKKyNkZWZpbmUgT01BUDM0WFhfR1BNQ19CQVNFCTB4NkUwMDAwMDAKKyNkZWZpbmUgT01BUDM0M1hfU0NNX0JBU0UJMHg0ODAwMjAwMAorI2RlZmluZSBPTUFQMzQzWF9DVFJMX0JBU0UJT01BUDM0M1hfU0NNX0JBU0UKKworI2RlZmluZSBPTUFQMzRYWF9JQ19CQVNFCTB4NDgyMDAwMDAKKyNkZWZpbmUgT01BUDM0WFhfSVZBX0lOVENfQkFTRQkweDQwMDAwMDAwCisjZGVmaW5lIE9NQVAzNFhYX0hTVVNCX09UR19CQVNFCShMNF8zNFhYX0JBU0UgKyAweEFCMDAwKQorI2RlZmluZSBPTUFQMzRYWF9IU1VTQl9IT1NUX0JBU0UJKEw0XzM0WFhfQkFTRSArIDB4NjQwMDApCisjZGVmaW5lIE9NQVAzNFhYX1VTQlRMTF9CQVNFCShMNF8zNFhYX0JBU0UgKyAweDYyMDAwKQorCisKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzNDMwKQorCisjZGVmaW5lIE9NQVAyXzMyS1NZTkNUX0JBU0UJCU9NQVAzNDMwXzMyS1NZTkNUX0JBU0UKKyNkZWZpbmUgT01BUDJfQ01fQkFTRQkJCU9NQVAzNDMwX0NNX0JBU0UKKyNkZWZpbmUgT01BUDJfUFJNX0JBU0UJCQlPTUFQMzQzMF9QUk1fQkFTRQorI2RlZmluZSBPTUFQMl9WQV9JQ19CQVNFCQlJT19BRERSRVNTKE9NQVAzNFhYX0lDX0JBU0UpCisKKyNlbmRpZgorCisjZGVmaW5lIE9NQVAzNFhYX0RTUF9CQVNFCTB4NTgwMDAwMDAKKyNkZWZpbmUgT01BUDM0WFhfRFNQX01FTV9CQVNFCShPTUFQMzRYWF9EU1BfQkFTRSArIDB4MCkKKyNkZWZpbmUgT01BUDM0WFhfRFNQX0lQSV9CQVNFCShPTUFQMzRYWF9EU1BfQkFTRSArIDB4MTAwMDAwMCkKKyNkZWZpbmUgT01BUDM0WFhfRFNQX01NVV9CQVNFCShPTUFQMzRYWF9EU1BfQkFTRSArIDB4MjAwMDAwMCkKKyNlbmRpZiAvKiBfX0FTTV9BUkNIX09NQVAzNFhYX0ggKi8KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9zcmFtLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3NyYW0uaAppbmRleCBiYjliYjNmLi5iZTU5ZjRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3NyYW0uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3NyYW0uaApAQCAtMTEsNiArMTEsNyBAQAogI2lmbmRlZiBfX0FSQ0hfQVJNX09NQVBfU1JBTV9ICiAjZGVmaW5lIF9fQVJDSF9BUk1fT01BUF9TUkFNX0gKIAorZXh0ZXJuIGludCBfX2luaXQgb21hcF9zcmFtX2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCAqIG9tYXBfc3JhbV9wdXNoKHZvaWQgKiBzdGFydCwgdW5zaWduZWQgbG9uZyBzaXplKTsKIGV4dGVybiB2b2lkIG9tYXBfc3JhbV9yZXByb2dyYW1fY2xvY2sodTMyIGRwbGxjdGwsIHUzMiBja2N0bCk7CiAKQEAgLTIxLDE3ICsyMiwzNSBAQAogZXh0ZXJuIHUzMiBvbWFwMl9zZXRfcHJjbSh1MzIgZHBsbF9jdHJsX3ZhbCwgdTMyIHNkcmNfcmZyX3ZhbCwgaW50IGJ5cGFzcyk7CiAKIC8qIERvIG5vdCB1c2UgdGhlc2UgKi8KLWV4dGVybiB2b2lkIHNyYW1fcmVwcm9ncmFtX2Nsb2NrKHUzMiBja2N0bCwgdTMyIGRwbGxjdGwpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc3JhbV9yZXByb2dyYW1fY2xvY2tfc3o7CitleHRlcm4gdm9pZCBvbWFwMV9zcmFtX3JlcHJvZ3JhbV9jbG9jayh1MzIgY2tjdGwsIHUzMiBkcGxsY3RsKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAxX3NyYW1fcmVwcm9ncmFtX2Nsb2NrX3N6OwogCi1leHRlcm4gdm9pZCBzcmFtX2Rkcl9pbml0KHUzMiAqc2xvd19kbGxfY3RybCwgdTMyIGZhc3RfZGxsX2N0cmwsCi0JCQkgIHUzMiBiYXNlX2NzLCB1MzIgZm9yY2VfdW5sb2NrKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIHNyYW1fZGRyX2luaXRfc3o7CitleHRlcm4gdm9pZCBvbWFwMjR4eF9zcmFtX3JlcHJvZ3JhbV9jbG9jayh1MzIgY2tjdGwsIHUzMiBkcGxsY3RsKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyNHh4X3NyYW1fcmVwcm9ncmFtX2Nsb2NrX3N6OwogCi1leHRlcm4gdTMyIHNyYW1fc2V0X3ByY20odTMyIGRwbGxfY3RybF92YWwsIHUzMiBzZHJjX3Jmcl92YWwsIGludCBieXBhc3MpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc3JhbV9zZXRfcHJjbV9zejsKK2V4dGVybiB2b2lkIG9tYXAyNDJ4X3NyYW1fZGRyX2luaXQodTMyICpzbG93X2RsbF9jdHJsLCB1MzIgZmFzdF9kbGxfY3RybCwKKwkJCQkJCXUzMiBiYXNlX2NzLCB1MzIgZm9yY2VfdW5sb2NrKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyNDJ4X3NyYW1fZGRyX2luaXRfc3o7CiAKLWV4dGVybiB2b2lkIHNyYW1fcmVwcm9ncmFtX3NkcmModTMyIHBlcmZfbGV2ZWwsIHUzMiBkbGxfdmFsLCB1MzIgbWVtX3R5cGUpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc3JhbV9yZXByb2dyYW1fc2RyY19zejsKK2V4dGVybiB1MzIgb21hcDI0Mnhfc3JhbV9zZXRfcHJjbSh1MzIgZHBsbF9jdHJsX3ZhbCwgdTMyIHNkcmNfcmZyX3ZhbCwKKwkJCQkJCWludCBieXBhc3MpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0Mnhfc3JhbV9zZXRfcHJjbV9zejsKKworZXh0ZXJuIHZvaWQgb21hcDI0Mnhfc3JhbV9yZXByb2dyYW1fc2RyYyh1MzIgcGVyZl9sZXZlbCwgdTMyIGRsbF92YWwsCisJCQkJCQl1MzIgbWVtX3R5cGUpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0Mnhfc3JhbV9yZXByb2dyYW1fc2RyY19zejsKKworCitleHRlcm4gdm9pZCBvbWFwMjQzeF9zcmFtX2Rkcl9pbml0KHUzMiAqc2xvd19kbGxfY3RybCwgdTMyIGZhc3RfZGxsX2N0cmwsCisJCQkJCQl1MzIgYmFzZV9jcywgdTMyIGZvcmNlX3VubG9jayk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMjQzeF9zcmFtX2Rkcl9pbml0X3N6OworCitleHRlcm4gdTMyIG9tYXAyNDN4X3NyYW1fc2V0X3ByY20odTMyIGRwbGxfY3RybF92YWwsIHUzMiBzZHJjX3Jmcl92YWwsCisJCQkJCQlpbnQgYnlwYXNzKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyNDN4X3NyYW1fc2V0X3ByY21fc3o7CisKK2V4dGVybiB2b2lkIG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmModTMyIHBlcmZfbGV2ZWwsIHUzMiBkbGxfdmFsLAorCQkJCQkJdTMyIG1lbV90eXBlKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmNfc3o7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC90Yy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC90Yy5oCmluZGV4IDhkZWQyMTguLjY1YTljODIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvdGMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3RjLmgKQEAgLTc1LDE2ICs3NSwxNCBAQAogI2lmbmRlZglfX0FTU0VNQkxFUl9fCiAKIC8qIEVNSUYgU2xvdyBJbnRlcmZhY2UgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZQlPTUFQX0VNSUZTX0NPTkZJR19SRUcJX19SRUczMihFTUlGU19DT05GSUcpCi0KICNkZWZpbmUgT01BUF9FTUlGU19DT05GSUdfRlIJCSgxIDw8IDQpCiAjZGVmaW5lIE9NQVBfRU1JRlNfQ09ORklHX1BERQkJKDEgPDwgMykKICNkZWZpbmUgT01BUF9FTUlGU19DT05GSUdfUFdEX0VOCSgxIDw8IDIpCiAjZGVmaW5lIE9NQVBfRU1JRlNfQ09ORklHX0JNCQkoMSA8PCAxKQogI2RlZmluZSBPTUFQX0VNSUZTX0NPTkZJR19XUAkJKDEgPDwgMCkKIAotI2RlZmluZSBFTUlGU19DQ1MobikJCV9fUkVHMzIoRU1JRlNfQ1MwX0NPTkZJRyArICg0ICogKG4pKSkKLSNkZWZpbmUgRU1JRlNfQUNTKG4pCQlfX1JFRzMyKEVNSUZTX0FDUzAgKyAoNCAqIChuKSkpCisjZGVmaW5lIEVNSUZTX0NDUyhuKQkJKEVNSUZTX0NTMF9DT05GSUcgKyAoNCAqIChuKSkpCisjZGVmaW5lIEVNSUZTX0FDUyhuKQkJKEVNSUZTX0FDUzAgKyAoNCAqIChuKSkpCiAKIC8qIEFsbW9zdCBhbGwgZG9jdW1lbnRhdGlvbiBmb3IgY2hpcCBhbmQgYm9hcmQgbWVtb3J5IG1hcHMgYXNzdW1lcwogICogQk0gaXMgY2xlYXIuICBNb3N0IGRldmVsIGJvYXJkcyBoYXZlIGEgc3dpdGNoIHRvIGNvbnRyb2wgYm9vdGluZwpAQCAtOTMsMTMgKzkxLDEzIEBACiAgKi8KIHN0YXRpYyBpbmxpbmUgdTMyIG9tYXBfY3MwX3BoeXModm9pZCkKIHsKLQlyZXR1cm4gKE9NQVBfRU1JRlNfQ09ORklHX1JFRyAmIE9NQVBfRU1JRlNfQ09ORklHX0JNKQorCXJldHVybiAob21hcF9yZWFkbChFTUlGU19DT05GSUcpICYgT01BUF9FTUlGU19DT05GSUdfQk0pCiAJCQk/ICBPTUFQX0NTM19QSFlTIDogMDsKIH0KIAogc3RhdGljIGlubGluZSB1MzIgb21hcF9jczNfcGh5cyh2b2lkKQogewotCXJldHVybiAoT01BUF9FTUlGU19DT05GSUdfUkVHICYgT01BUF9FTUlGU19DT05GSUdfQk0pCisJcmV0dXJuIChvbWFwX3JlYWRsKEVNSUZTX0NPTkZJRykgJiBPTUFQX0VNSUZTX0NPTkZJR19CTSkKIAkJCT8gMCA6IE9NQVBfQ1MzX1BIWVM7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvdXNiLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3VzYi5oCmluZGV4IDIxNDdkMTguLmRkZjE4NjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvdXNiLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC91c2IuaApAQCAtMzQsMTEgKzM0LDggQEAKIC8qCiAgKiBPVEcgYW5kIHRyYW5zY2VpdmVyIHJlZ2lzdGVycywgZm9yIE9NQVBzIHN0YXJ0aW5nIHdpdGggQVJNOTI2CiAgKi8KLSNkZWZpbmUgT1RHX1JFRzMyKG9mZnNldCkJCV9fUkVHMzIoT1RHX0JBU0UgKyAob2Zmc2V0KSkKLSNkZWZpbmUgT1RHX1JFRzE2KG9mZnNldCkJCV9fUkVHMTYoT1RHX0JBU0UgKyAob2Zmc2V0KSkKLQotI2RlZmluZSBPVEdfUkVWX1JFRwkJCU9UR19SRUczMigweDAwKQotI2RlZmluZSBPVEdfU1lTQ09OXzFfUkVHCQlPVEdfUkVHMzIoMHgwNCkKKyNkZWZpbmUgT1RHX1JFVgkJCQkoT1RHX0JBU0UgKyAweDAwKQorI2RlZmluZSBPVEdfU1lTQ09OXzEJCQkoT1RHX0JBU0UgKyAweDA0KQogIwlkZWZpbmUJIFVTQjJfVFJYX01PREUodykJKCgodyk+PjI0KSYweDA3KQogIwlkZWZpbmUJIFVTQjFfVFJYX01PREUodykJKCgodyk+PjIwKSYweDA3KQogIwlkZWZpbmUJIFVTQjBfVFJYX01PREUodykJKCgodyk+PjE2KSYweDA3KQpAQCAtNDcsNyArNDQsNyBAQAogIwlkZWZpbmUJIERFVl9JRExFX0VOCQkoMSA8PCAxMykKICMJZGVmaW5lCSBPVEdfUkVTRVRfRE9ORQkJKDEgPDwgMikKICMJZGVmaW5lCSBPVEdfU09GVF9SRVNFVAkJKDEgPDwgMSkKLSNkZWZpbmUgT1RHX1NZU0NPTl8yX1JFRwkJT1RHX1JFRzMyKDB4MDgpCisjZGVmaW5lIE9UR19TWVNDT05fMgkJCShPVEdfQkFTRSArIDB4MDgpCiAjCWRlZmluZQkgT1RHX0VOCQkJKDEgPDwgMzEpCiAjCWRlZmluZQkgVVNCWF9TWU5DSFJPCQkoMSA8PCAzMCkKICMJZGVmaW5lCSBPVEdfTVNUMTYJCSgxIDw8IDI5KQpAQCAtNjUsNyArNjIsNyBAQAogIwlkZWZpbmUJIEhNQ19UTExTUEVFRAkJKDEgPDwgNykKICMJZGVmaW5lCSBITUNfVExMQVRUQUNICQkoMSA8PCA2KQogIwlkZWZpbmUJIE9UR19ITUModykJCSgoKHcpPj4wKSYweDNmKQotI2RlZmluZSBPVEdfQ1RSTF9SRUcJCQlPVEdfUkVHMzIoMHgwYykKKyNkZWZpbmUgT1RHX0NUUkwJCQkoT1RHX0JBU0UgKyAweDBjKQogIwlkZWZpbmUJIE9UR19VU0IyX0VOCQkoMSA8PCAyOSkKICMJZGVmaW5lCSBPVEdfVVNCMl9EUAkJKDEgPDwgMjgpCiAjCWRlZmluZQkgT1RHX1VTQjJfRE0JCSgxIDw8IDI3KQpAQCAtOTIsNyArODksNyBAQAogIwlkZWZpbmUJIE9UR19QRF9WQlVTCQkoMSA8PCAyKQogIwlkZWZpbmUJIE9UR19QVV9WQlVTCQkoMSA8PCAxKQogIwlkZWZpbmUJIE9UR19QVV9JRAkJKDEgPDwgMCkKLSNkZWZpbmUgT1RHX0lSUV9FTl9SRUcJCQlPVEdfUkVHMTYoMHgxMCkKKyNkZWZpbmUgT1RHX0lSUV9FTgkJCShPVEdfQkFTRSArIDB4MTApCS8qIDE2LWJpdCAqLwogIwlkZWZpbmUJIERSSVZFUl9TV0lUQ0gJCSgxIDw8IDE1KQogIwlkZWZpbmUJIEFfVkJVU19FUlIJCSgxIDw8IDEzKQogIwlkZWZpbmUJIEFfUkVRX1RNUk9VVAkJKDEgPDwgMTIpCkBAIC0xMDIsOSArOTksOSBAQAogIwlkZWZpbmUJIEJfU1JQX0RPTkUJCSgxIDw8IDgpCiAjCWRlZmluZQkgQl9TUlBfU1RBUlRFRAkJKDEgPDwgNykKICMJZGVmaW5lCSBPUFJUX0NIRwkJKDEgPDwgMCkKLSNkZWZpbmUgT1RHX0lSUV9TUkNfUkVHCQkJT1RHX1JFRzE2KDB4MTQpCisjZGVmaW5lIE9UR19JUlFfU1JDCQkJKE9UR19CQVNFICsgMHgxNCkJLyogMTYtYml0ICovCiAJLy8gc2FtZSBiaXRzIGFzIGluIElSUV9FTgotI2RlZmluZSBPVEdfT1VUQ1RSTF9SRUcJCQlPVEdfUkVHMTYoMHgxOCkKKyNkZWZpbmUgT1RHX09VVENUUkwJCQkoT1RHX0JBU0UgKyAweDE4KQkvKiAxNi1iaXQgKi8KICMJZGVmaW5lCSBPVEdWUEQJCQkoMSA8PCAxNCkKICMJZGVmaW5lCSBPVEdWUFUJCQkoMSA8PCAxMykKICMJZGVmaW5lCSBPVEdQVUlECQkoMSA8PCAxMikKQEAgLTExNywxMyArMTE0LDEzIEBACiAjCWRlZmluZQkgVVNCMFZEUgkJKDEgPDwgMikKICMJZGVmaW5lCSBVU0IwUERFTgkJKDEgPDwgMSkKICMJZGVmaW5lCSBVU0IwUFVFTgkJKDEgPDwgMCkKLSNkZWZpbmUgT1RHX1RFU1RfUkVHCQkJT1RHX1JFRzE2KDB4MjApCi0jZGVmaW5lIE9UR19WRU5ET1JfQ09ERV9SRUcJCU9UR19SRUczMigweGZjKQorI2RlZmluZSBPVEdfVEVTVAkJCShPVEdfQkFTRSArIDB4MjApCS8qIDE2LWJpdCAqLworI2RlZmluZSBPVEdfVkVORE9SX0NPREUJCQkoT1RHX0JBU0UgKyAweGZjKQkvKiAxNi1iaXQgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogLyogT01BUDEgKi8KLSNkZWZpbmUJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHCV9fUkVHMzIoMHhmZmZlMTAwMCArIDB4MDA2NCkKKyNkZWZpbmUJVVNCX1RSQU5TQ0VJVkVSX0NUUkwJCSgweGZmZmUxMDAwICsgMHgwMDY0KQogIwlkZWZpbmUJQ09ORl9VU0IyX1VOSV9SCQkoMSA8PCA4KQogIwlkZWZpbmUJQ09ORl9VU0IxX1VOSV9SCQkoMSA8PCA3KQogIwlkZWZpbmUJQ09ORl9VU0JfUE9SVDBfUih4KQkoKCh4KT4+NCkmMHg3KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC9pby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC9pby5oCmluZGV4IDUwZjhjODguLjU5ZjFiYzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L2lvLmgKQEAgLTE0LDcgKzE0LDYgQEAKICNpbmNsdWRlICJvcmlvbjV4LmgiCiAKICNkZWZpbmUgSU9fU1BBQ0VfTElNSVQJCTB4ZmZmZmZmZmYKLSNkZWZpbmUgSU9fU1BBQ0VfUkVNQVAJCU9SSU9ONVhfUENJX1NZU19JT19CQVNFCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICoKIF9fYXJjaF9pb3JlbWFwKHVuc2lnbmVkIGxvbmcgcGFkZHIsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBpbnQgbXR5cGUpCkBAIC01MywxNSArNTIsMTIgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogSGVscGVycyB0byBhY2Nlc3MgT3Jpb24gcmVnaXN0ZXJzCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgb3Jpb241eF9yZWFkKHIpCQlfX3Jhd19yZWFkbChyKQotI2RlZmluZSBvcmlvbjV4X3dyaXRlKHIsIHZhbCkJX19yYXdfd3JpdGVsKHZhbCwgcikKLQogLyoKICAqIFRoZXNlIGFyZSBub3QgcHJlZW1wdC1zYWZlLiAgTG9ja3MsIGlmIG5lZWRlZCwgbXVzdCBiZSB0YWtlbgogICogY2FyZSBvZiBieSB0aGUgY2FsbGVyLgogICovCi0jZGVmaW5lIG9yaW9uNXhfc2V0Yml0cyhyLCBtYXNrKQlvcmlvbjV4X3dyaXRlKChyKSwgb3Jpb241eF9yZWFkKHIpIHwgKG1hc2spKQotI2RlZmluZSBvcmlvbjV4X2NscmJpdHMociwgbWFzaykJb3Jpb241eF93cml0ZSgociksIG9yaW9uNXhfcmVhZChyKSAmIH4obWFzaykpCisjZGVmaW5lIG9yaW9uNXhfc2V0Yml0cyhyLCBtYXNrKQl3cml0ZWwocmVhZGwocikgfCAobWFzayksIChyKSkKKyNkZWZpbmUgb3Jpb241eF9jbHJiaXRzKHIsIG1hc2spCXdyaXRlbChyZWFkbChyKSAmIH4obWFzayksIChyKSkKIAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvb3Jpb241eC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC9vcmlvbjV4LmgKaW5kZXggMjA2ZGRkNy4uMTAyNTdmNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC9vcmlvbjV4LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC9vcmlvbjV4LmgKQEAgLTIsNyArMiw3IEBACiAgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L29yaW9uNXguaAogICoKICAqIEdlbmVyaWMgZGVmaW5pdGlvbnMgb2YgT3Jpb24gU29DIGZsYXZvcnM6Ci0gKiAgT3Jpb24tMSwgT3Jpb24tTkFTLCBPcmlvbi1Wb0lQLCBhbmQgT3Jpb24tMi4KKyAqICBPcmlvbi0xLCBPcmlvbi1Wb0lQLCBPcmlvbi1OQVMsIGFuZCBPcmlvbi0yLgogICoKICAqIE1haW50YWluZXI6IFR6YWNoaSBQZXJlbHN0ZWluIDx0emFjaGlAbWFydmVsbC5jb20+CiAgKgpAQCAtNjMsOSArNjMsMTEgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBTdXBwb3J0ZWQgRGV2aWNlcyAmIFJldmlzaW9ucwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIE9yaW9uLTEgKDg4RjUxODEpICovCisvKiBPcmlvbi0xICg4OEY1MTgxKSBhbmQgT3Jpb24tVm9JUCAoODhGNTE4MUwpICovCiAjZGVmaW5lIE1WODhGNTE4MV9ERVZfSUQJMHg1MTgxCiAjZGVmaW5lIE1WODhGNTE4MV9SRVZfQjEJMworI2RlZmluZSBNVjg4RjUxODFMX1JFVl9BMAk4CisjZGVmaW5lIE1WODhGNTE4MUxfUkVWX0ExCTkKIC8qIE9yaW9uLU5BUyAoODhGNTE4MikgKi8KICNkZWZpbmUgTVY4OEY1MTgyX0RFVl9JRAkweDUxODIKICNkZWZpbmUgTVY4OEY1MTgyX1JFVl9BMgkyCkBAIC0xNTIsNiArMTU0LDcgQEAKICNkZWZpbmUgQlJJREdFX01BU0sJCU9SSU9ONVhfQlJJREdFX1JFRygweDExNCkKICNkZWZpbmUgIEJSSURHRV9JTlRfVElNRVIwCTB4MDAwMgogI2RlZmluZSAgQlJJREdFX0lOVF9USU1FUjEJMHgwMDA0CisjZGVmaW5lICBCUklER0VfSU5UX1RJTUVSMV9DTFIJKH4weDAwMDQpCiAjZGVmaW5lIE1BSU5fSVJRX0NBVVNFCQlPUklPTjVYX0JSSURHRV9SRUcoMHgyMDApCiAjZGVmaW5lIE1BSU5fSVJRX01BU0sJCU9SSU9ONVhfQlJJREdFX1JFRygweDIwNCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC91bmNvbXByZXNzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L3VuY29tcHJlc3MuaAppbmRleCA1YzEzZDRmLi43NTQ4Y2VkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L3VuY29tcHJlc3MuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L3VuY29tcHJlc3MuaApAQCAtOCwyMyArOCwzOCBAQAogICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgogCi0jZGVmaW5lIE1WX1VBUlRfVEhSCSgodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShVQVJUMF9QSFlTX0JBU0UgKyAweDApKQotI2RlZmluZSBNVl9VQVJUX0xTUiAJKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKFVBUlQwX1BIWVNfQkFTRSArIDB4MTQpKQotCi0jZGVmaW5lIExTUl9USFJFCTB4MjAKKyNkZWZpbmUgU0VSSUFMX0JBU0UJKCh1bnNpZ25lZCBjaGFyICopVUFSVDBfUEhZU19CQVNFKQogCiBzdGF0aWMgdm9pZCBwdXRjKGNvbnN0IGNoYXIgYykKIHsKLQlpbnQgaiA9IDB4MTAwMDsKLQl3aGlsZSAoLS1qICYmICEoKk1WX1VBUlRfTFNSICYgTFNSX1RIUkUpKQorCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCAweDEwMDA7IGkrKykgeworCQlpZiAoYmFzZVtVQVJUX0xTUiA8PCAyXSAmIFVBUlRfTFNSX1RIUkUpCisJCQlicmVhazsKIAkJYmFycmllcigpOwotCSpNVl9VQVJUX1RIUiA9IGM7CisJfQorCisJYmFzZVtVQVJUX1RYIDw8IDJdID0gYzsKIH0KIAogc3RhdGljIHZvaWQgZmx1c2godm9pZCkKIHsKKwl1bnNpZ25lZCBjaGFyICpiYXNlID0gU0VSSUFMX0JBU0U7CisJdW5zaWduZWQgY2hhciBtYXNrOworCWludCBpOworCisJbWFzayA9IFVBUlRfTFNSX1RFTVQgfCBVQVJUX0xTUl9USFJFOworCisJZm9yIChpID0gMDsgaSA8IDB4MTAwMDsgaSsrKSB7CisJCWlmICgoYmFzZVtVQVJUX0xTUiA8PCAyXSAmIG1hc2spID09IG1hc2spCisJCQlicmVhazsKKwkJYmFycmllcigpOworCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9hdWRpby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2F1ZGlvLmgKaW5kZXggNTJiYmUzYi4uZjgyZjk2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2F1ZGlvLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2F1ZGlvLmgKQEAgLTEyLDQgKzEyLDYgQEAKIAl2b2lkICpwcml2OwogfSBweGEyeHhfYXVkaW9fb3BzX3Q7CiAKK2V4dGVybiB2b2lkIHB4YV9zZXRfYWM5N19pbmZvKHB4YTJ4eF9hdWRpb19vcHNfdCAqb3BzKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9oYXJkd2FyZS5oCmluZGV4IGUyNTU1OGYuLmQ5YWY2ZGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9oYXJkd2FyZS5oCkBAIC0xOTIsMTUgKzE5Miw2IEBACiBleHRlcm4gdm9pZCBweGFfZ3Bpb19zZXRfdmFsdWUodW5zaWduZWQgZ3BpbywgaW50IHZhbHVlKTsKIAogLyoKLSAqIFJvdXRpbmUgdG8gZW5hYmxlIG9yIGRpc2FibGUgQ0tFTgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgX19kZXByZWNhdGVkIHB4YV9zZXRfY2tlbihpbnQgY2xvY2ssIGludCBlbmFibGUpCi17Ci0JZXh0ZXJuIHZvaWQgX19weGFfc2V0X2NrZW4oaW50IGNsb2NrLCBpbnQgZW5hYmxlKTsKLQlfX3B4YV9zZXRfY2tlbihjbG9jaywgZW5hYmxlKTsKLX0KLQotLyoKICAqIHJldHVybiBjdXJyZW50IG1lbW9yeSBhbmQgTENEIGNsb2NrIGZyZXF1ZW5jeSBpbiB1bml0cyBvZiAxMGtIegogICovCiBleHRlcm4gdW5zaWduZWQgaW50IGdldF9tZW1jbGtfZnJlcXVlbmN5XzEwa2h6KHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2lyZGEuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9pcmRhLmgKaW5kZXggOTlmNGY0Mi4uMGE1MGMzYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2lyZGEuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvaXJkYS5oCkBAIC0xNiw0ICsxNiw4IEBACiAKIGV4dGVybiB2b2lkIHB4YV9zZXRfZmljcF9pbmZvKHN0cnVjdCBweGFmaWNwX3BsYXRmb3JtX2RhdGEgKmluZm8pOwogCisjaWYgZGVmaW5lZChDT05GSUdfUFhBMjV4KSB8fCBkZWZpbmVkKENPTkZJR19QWEEyN3gpCit2b2lkIHB4YTJ4eF90cmFuc2NlaXZlcl9tb2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IG1vZGUpOworI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YS1yZWdzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaAppbmRleCA0YjJlYTFlLi5kY2U5MzA4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaApAQCAtNjAwLDQxOCArNjAwLDYgQEAKIAogCiAvKgotICogVVNCIERldmljZSBDb250cm9sbGVyCi0gKiBQWEEyNXggYW5kIFBYQTI3eCBVU0IgZGV2aWNlIGNvbnRyb2xsZXIgcmVnaXN0ZXJzIGFyZSBkaWZmZXJlbnQuCi0gKi8KLSNpZiBkZWZpbmVkKENPTkZJR19QWEEyNXgpCi0KLSNkZWZpbmUgVURDX1JFUzEJX19SRUcoMHg0MDYwMDAwNCkgIC8qIFVEQyBVbmRvY3VtZW50ZWQgLSBSZXNlcnZlZDEgKi8KLSNkZWZpbmUgVURDX1JFUzIJX19SRUcoMHg0MDYwMDAwOCkgIC8qIFVEQyBVbmRvY3VtZW50ZWQgLSBSZXNlcnZlZDIgKi8KLSNkZWZpbmUgVURDX1JFUzMJX19SRUcoMHg0MDYwMDAwQykgIC8qIFVEQyBVbmRvY3VtZW50ZWQgLSBSZXNlcnZlZDMgKi8KLQotI2RlZmluZSBVRENDUgkJX19SRUcoMHg0MDYwMDAwMCkgIC8qIFVEQyBDb250cm9sIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ0NSX1VERQkoMSA8PCAwKQkvKiBVREMgZW5hYmxlICovCi0jZGVmaW5lIFVEQ0NSX1VEQQkoMSA8PCAxKQkvKiBVREMgYWN0aXZlICovCi0jZGVmaW5lIFVEQ0NSX1JTTQkoMSA8PCAyKQkvKiBEZXZpY2UgcmVzdW1lICovCi0jZGVmaW5lIFVEQ0NSX1JFU0lSCSgxIDw8IDMpCS8qIFJlc3VtZSBpbnRlcnJ1cHQgcmVxdWVzdCAqLwotI2RlZmluZSBVRENDUl9TVVNJUgkoMSA8PCA0KQkvKiBTdXNwZW5kIGludGVycnVwdCByZXF1ZXN0ICovCi0jZGVmaW5lIFVEQ0NSX1NSTQkoMSA8PCA1KQkvKiBTdXNwZW5kL3Jlc3VtZSBpbnRlcnJ1cHQgbWFzayAqLwotI2RlZmluZSBVRENDUl9SU1RJUgkoMSA8PCA2KQkvKiBSZXNldCBpbnRlcnJ1cHQgcmVxdWVzdCAqLwotI2RlZmluZSBVRENDUl9SRU0JKDEgPDwgNykJLyogUmVzZXQgaW50ZXJydXB0IG1hc2sgKi8KLQotI2RlZmluZSBVRENDUzAJCV9fUkVHKDB4NDA2MDAwMTApICAvKiBVREMgRW5kcG9pbnQgMCBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzBfT1BSCSgxIDw8IDApCS8qIE9VVCBwYWNrZXQgcmVhZHkgKi8KLSNkZWZpbmUgVURDQ1MwX0lQUgkoMSA8PCAxKQkvKiBJTiBwYWNrZXQgcmVhZHkgKi8KLSNkZWZpbmUgVURDQ1MwX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUeCBGSUZPICovCi0jZGVmaW5lIFVEQ0NTMF9EUldGCSgxIDw8IDMpCS8qIERldmljZSByZW1vdGUgd2FrZXVwIGZlYXR1cmUgKi8KLSNkZWZpbmUgVURDQ1MwX1NTVAkoMSA8PCA0KQkvKiBTZW50IHN0YWxsICovCi0jZGVmaW5lIFVEQ0NTMF9GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1MwX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gbm8gZW1wdHkgKi8KLSNkZWZpbmUgVURDQ1MwX1NBCSgxIDw8IDcpCS8qIFNldHVwIGFjdGl2ZSAqLwotCi0vKiBCdWxrIElOIC0gRW5kcG9pbnQgMSw2LDExICovCi0jZGVmaW5lIFVEQ0NTMQkJX19SRUcoMHg0MDYwMDAxNCkgIC8qIFVEQyBFbmRwb2ludCAxIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1M2CQlfX1JFRygweDQwNjAwMDI4KSAgLyogVURDIEVuZHBvaW50IDYgKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzExCQlfX1JFRygweDQwNjAwMDNDKSAgLyogVURDIEVuZHBvaW50IDExIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLQotI2RlZmluZSBVRENDU19CSV9URlMJKDEgPDwgMCkJLyogVHJhbnNtaXQgRklGTyBzZXJ2aWNlICovCi0jZGVmaW5lIFVEQ0NTX0JJX1RQQwkoMSA8PCAxKQkvKiBUcmFuc21pdCBwYWNrZXQgY29tcGxldGUgKi8KLSNkZWZpbmUgVURDQ1NfQklfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFR4IEZJRk8gKi8KLSNkZWZpbmUgVURDQ1NfQklfVFVSCSgxIDw8IDMpCS8qIFRyYW5zbWl0IEZJRk8gdW5kZXJydW4gKi8KLSNkZWZpbmUgVURDQ1NfQklfU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NfQklfRlNUCSgxIDw8IDUpCS8qIEZvcmNlIHN0YWxsICovCi0jZGVmaW5lIFVEQ0NTX0JJX1RTUAkoMSA8PCA3KQkvKiBUcmFuc21pdCBzaG9ydCBwYWNrZXQgKi8KLQotLyogQnVsayBPVVQgLSBFbmRwb2ludCAyLDcsMTIgKi8KLSNkZWZpbmUgVURDQ1MyCQlfX1JFRygweDQwNjAwMDE4KSAgLyogVURDIEVuZHBvaW50IDIgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1M3CQlfX1JFRygweDQwNjAwMDJDKSAgLyogVURDIEVuZHBvaW50IDcgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1MxMgkJX19SRUcoMHg0MDYwMDA0MCkgIC8qIFVEQyBFbmRwb2ludCAxMiAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFVEQ0NTX0JPX1JGUwkoMSA8PCAwKQkvKiBSZWNlaXZlIEZJRk8gc2VydmljZSAqLwotI2RlZmluZSBVRENDU19CT19SUEMJKDEgPDwgMSkJLyogUmVjZWl2ZSBwYWNrZXQgY29tcGxldGUgKi8KLSNkZWZpbmUgVURDQ1NfQk9fRE1FCSgxIDw8IDMpCS8qIERNQSBlbmFibGUgKi8KLSNkZWZpbmUgVURDQ1NfQk9fU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NfQk9fRlNUCSgxIDw8IDUpCS8qIEZvcmNlIHN0YWxsICovCi0jZGVmaW5lIFVEQ0NTX0JPX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gbm90IGVtcHR5ICovCi0jZGVmaW5lIFVEQ0NTX0JPX1JTUAkoMSA8PCA3KQkvKiBSZWNlaXZlIHNob3J0IHBhY2tldCAqLwotCi0vKiBJc29jaHJvbm91cyBJTiAtIEVuZHBvaW50IDMsOCwxMyAqLwotI2RlZmluZSBVRENDUzMJCV9fUkVHKDB4NDA2MDAwMUMpICAvKiBVREMgRW5kcG9pbnQgMyAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ0NTOAkJX19SRUcoMHg0MDYwMDAzMCkgIC8qIFVEQyBFbmRwb2ludCA4IChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1MxMwkJX19SRUcoMHg0MDYwMDA0NCkgIC8qIFVEQyBFbmRwb2ludCAxMyAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0KLSNkZWZpbmUgVURDQ1NfSUlfVEZTCSgxIDw8IDApCS8qIFRyYW5zbWl0IEZJRk8gc2VydmljZSAqLwotI2RlZmluZSBVRENDU19JSV9UUEMJKDEgPDwgMSkJLyogVHJhbnNtaXQgcGFja2V0IGNvbXBsZXRlICovCi0jZGVmaW5lIFVEQ0NTX0lJX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUeCBGSUZPICovCi0jZGVmaW5lIFVEQ0NTX0lJX1RVUgkoMSA8PCAzKQkvKiBUcmFuc21pdCBGSUZPIHVuZGVycnVuICovCi0jZGVmaW5lIFVEQ0NTX0lJX1RTUAkoMSA8PCA3KQkvKiBUcmFuc21pdCBzaG9ydCBwYWNrZXQgKi8KLQotLyogSXNvY2hyb25vdXMgT1VUIC0gRW5kcG9pbnQgNCw5LDE0ICovCi0jZGVmaW5lIFVEQ0NTNAkJX19SRUcoMHg0MDYwMDAyMCkgIC8qIFVEQyBFbmRwb2ludCA0IChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ0NTOQkJX19SRUcoMHg0MDYwMDAzNCkgIC8qIFVEQyBFbmRwb2ludCA5IChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ0NTMTQJCV9fUkVHKDB4NDA2MDAwNDgpICAvKiBVREMgRW5kcG9pbnQgMTQgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLQotI2RlZmluZSBVRENDU19JT19SRlMJKDEgPDwgMCkJLyogUmVjZWl2ZSBGSUZPIHNlcnZpY2UgKi8KLSNkZWZpbmUgVURDQ1NfSU9fUlBDCSgxIDw8IDEpCS8qIFJlY2VpdmUgcGFja2V0IGNvbXBsZXRlICovCi0jZGVmaW5lIFVEQ0NTX0lPX1JPRgkoMSA8PCAyKQkvKiBSZWNlaXZlIG92ZXJmbG93ICovCi0jZGVmaW5lIFVEQ0NTX0lPX0RNRQkoMSA8PCAzKQkvKiBETUEgZW5hYmxlICovCi0jZGVmaW5lIFVEQ0NTX0lPX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gbm90IGVtcHR5ICovCi0jZGVmaW5lIFVEQ0NTX0lPX1JTUAkoMSA8PCA3KQkvKiBSZWNlaXZlIHNob3J0IHBhY2tldCAqLwotCi0vKiBJbnRlcnJ1cHQgSU4gLSBFbmRwb2ludCA1LDEwLDE1ICovCi0jZGVmaW5lIFVEQ0NTNQkJX19SRUcoMHg0MDYwMDAyNCkgIC8qIFVEQyBFbmRwb2ludCA1IChJbnRlcnJ1cHQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ0NTMTAJCV9fUkVHKDB4NDA2MDAwMzgpICAvKiBVREMgRW5kcG9pbnQgMTAgKEludGVycnVwdCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1MxNQkJX19SRUcoMHg0MDYwMDA0QykgIC8qIFVEQyBFbmRwb2ludCAxNSAoSW50ZXJydXB0KSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFVEQ0NTX0lOVF9URlMJKDEgPDwgMCkJLyogVHJhbnNtaXQgRklGTyBzZXJ2aWNlICovCi0jZGVmaW5lIFVEQ0NTX0lOVF9UUEMJKDEgPDwgMSkJLyogVHJhbnNtaXQgcGFja2V0IGNvbXBsZXRlICovCi0jZGVmaW5lIFVEQ0NTX0lOVF9GVEYJKDEgPDwgMikJLyogRmx1c2ggVHggRklGTyAqLwotI2RlZmluZSBVRENDU19JTlRfVFVSCSgxIDw8IDMpCS8qIFRyYW5zbWl0IEZJRk8gdW5kZXJydW4gKi8KLSNkZWZpbmUgVURDQ1NfSU5UX1NTVAkoMSA8PCA0KQkvKiBTZW50IHN0YWxsICovCi0jZGVmaW5lIFVEQ0NTX0lOVF9GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NfSU5UX1RTUAkoMSA8PCA3KQkvKiBUcmFuc21pdCBzaG9ydCBwYWNrZXQgKi8KLQotI2RlZmluZSBVRk5SSAkJX19SRUcoMHg0MDYwMDA2MCkgIC8qIFVEQyBGcmFtZSBOdW1iZXIgUmVnaXN0ZXIgSGlnaCAqLwotI2RlZmluZSBVRk5STAkJX19SRUcoMHg0MDYwMDA2NCkgIC8qIFVEQyBGcmFtZSBOdW1iZXIgUmVnaXN0ZXIgTG93ICovCi0jZGVmaW5lIFVCQ1IyCQlfX1JFRygweDQwNjAwMDY4KSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDIgKi8KLSNkZWZpbmUgVUJDUjQJCV9fUkVHKDB4NDA2MDAwNmMpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgNCAqLwotI2RlZmluZSBVQkNSNwkJX19SRUcoMHg0MDYwMDA3MCkgIC8qIFVEQyBCeXRlIENvdW50IFJlZyA3ICovCi0jZGVmaW5lIFVCQ1I5CQlfX1JFRygweDQwNjAwMDc0KSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDkgKi8KLSNkZWZpbmUgVUJDUjEyCQlfX1JFRygweDQwNjAwMDc4KSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDEyICovCi0jZGVmaW5lIFVCQ1IxNAkJX19SRUcoMHg0MDYwMDA3YykgIC8qIFVEQyBCeXRlIENvdW50IFJlZyAxNCAqLwotI2RlZmluZSBVRERSMAkJX19SRUcoMHg0MDYwMDA4MCkgIC8qIFVEQyBFbmRwb2ludCAwIERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjEJCV9fUkVHKDB4NDA2MDAxMDApICAvKiBVREMgRW5kcG9pbnQgMSBEYXRhIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVERFIyCQlfX1JFRygweDQwNjAwMTgwKSAgLyogVURDIEVuZHBvaW50IDIgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMwkJX19SRUcoMHg0MDYwMDIwMCkgIC8qIFVEQyBFbmRwb2ludCAzIERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjQJCV9fUkVHKDB4NDA2MDA0MDApICAvKiBVREMgRW5kcG9pbnQgNCBEYXRhIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVERFI1CQlfX1JFRygweDQwNjAwMEEwKSAgLyogVURDIEVuZHBvaW50IDUgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSNgkJX19SRUcoMHg0MDYwMDYwMCkgIC8qIFVEQyBFbmRwb2ludCA2IERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjcJCV9fUkVHKDB4NDA2MDA2ODApICAvKiBVREMgRW5kcG9pbnQgNyBEYXRhIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVERFI4CQlfX1JFRygweDQwNjAwNzAwKSAgLyogVURDIEVuZHBvaW50IDggRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSOQkJX19SRUcoMHg0MDYwMDkwMCkgIC8qIFVEQyBFbmRwb2ludCA5IERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjEwCQlfX1JFRygweDQwNjAwMEMwKSAgLyogVURDIEVuZHBvaW50IDEwIERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjExCQlfX1JFRygweDQwNjAwQjAwKSAgLyogVURDIEVuZHBvaW50IDExIERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjEyCQlfX1JFRygweDQwNjAwQjgwKSAgLyogVURDIEVuZHBvaW50IDEyIERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjEzCQlfX1JFRygweDQwNjAwQzAwKSAgLyogVURDIEVuZHBvaW50IDEzIERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjE0CQlfX1JFRygweDQwNjAwRTAwKSAgLyogVURDIEVuZHBvaW50IDE0IERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjE1CQlfX1JFRygweDQwNjAwMEUwKSAgLyogVURDIEVuZHBvaW50IDE1IERhdGEgUmVnaXN0ZXIgKi8KLQotI2RlZmluZSBVSUNSMAkJX19SRUcoMHg0MDYwMDA1MCkgIC8qIFVEQyBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlciAwICovCi0KLSNkZWZpbmUgVUlDUjBfSU0wCSgxIDw8IDApCS8qIEludGVycnVwdCBtYXNrIGVwIDAgKi8KLSNkZWZpbmUgVUlDUjBfSU0xCSgxIDw8IDEpCS8qIEludGVycnVwdCBtYXNrIGVwIDEgKi8KLSNkZWZpbmUgVUlDUjBfSU0yCSgxIDw8IDIpCS8qIEludGVycnVwdCBtYXNrIGVwIDIgKi8KLSNkZWZpbmUgVUlDUjBfSU0zCSgxIDw8IDMpCS8qIEludGVycnVwdCBtYXNrIGVwIDMgKi8KLSNkZWZpbmUgVUlDUjBfSU00CSgxIDw8IDQpCS8qIEludGVycnVwdCBtYXNrIGVwIDQgKi8KLSNkZWZpbmUgVUlDUjBfSU01CSgxIDw8IDUpCS8qIEludGVycnVwdCBtYXNrIGVwIDUgKi8KLSNkZWZpbmUgVUlDUjBfSU02CSgxIDw8IDYpCS8qIEludGVycnVwdCBtYXNrIGVwIDYgKi8KLSNkZWZpbmUgVUlDUjBfSU03CSgxIDw8IDcpCS8qIEludGVycnVwdCBtYXNrIGVwIDcgKi8KLQotI2RlZmluZSBVSUNSMQkJX19SRUcoMHg0MDYwMDA1NCkgIC8qIFVEQyBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlciAxICovCi0KLSNkZWZpbmUgVUlDUjFfSU04CSgxIDw8IDApCS8qIEludGVycnVwdCBtYXNrIGVwIDggKi8KLSNkZWZpbmUgVUlDUjFfSU05CSgxIDw8IDEpCS8qIEludGVycnVwdCBtYXNrIGVwIDkgKi8KLSNkZWZpbmUgVUlDUjFfSU0xMAkoMSA8PCAyKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxMCAqLwotI2RlZmluZSBVSUNSMV9JTTExCSgxIDw8IDMpCS8qIEludGVycnVwdCBtYXNrIGVwIDExICovCi0jZGVmaW5lIFVJQ1IxX0lNMTIJKDEgPDwgNCkJLyogSW50ZXJydXB0IG1hc2sgZXAgMTIgKi8KLSNkZWZpbmUgVUlDUjFfSU0xMwkoMSA8PCA1KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxMyAqLwotI2RlZmluZSBVSUNSMV9JTTE0CSgxIDw8IDYpCS8qIEludGVycnVwdCBtYXNrIGVwIDE0ICovCi0jZGVmaW5lIFVJQ1IxX0lNMTUJKDEgPDwgNykJLyogSW50ZXJydXB0IG1hc2sgZXAgMTUgKi8KLQotI2RlZmluZSBVU0lSMAkJX19SRUcoMHg0MDYwMDA1OCkgIC8qIFVEQyBTdGF0dXMgSW50ZXJydXB0IFJlZ2lzdGVyIDAgKi8KLQotI2RlZmluZSBVU0lSMF9JUjAJKDEgPDwgMCkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMCAqLwotI2RlZmluZSBVU0lSMF9JUjEJKDEgPDwgMSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMSAqLwotI2RlZmluZSBVU0lSMF9JUjIJKDEgPDwgMikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMiAqLwotI2RlZmluZSBVU0lSMF9JUjMJKDEgPDwgMykJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMyAqLwotI2RlZmluZSBVU0lSMF9JUjQJKDEgPDwgNCkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNCAqLwotI2RlZmluZSBVU0lSMF9JUjUJKDEgPDwgNSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNSAqLwotI2RlZmluZSBVU0lSMF9JUjYJKDEgPDwgNikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNiAqLwotI2RlZmluZSBVU0lSMF9JUjcJKDEgPDwgNykJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNyAqLwotCi0jZGVmaW5lIFVTSVIxCQlfX1JFRygweDQwNjAwMDVDKSAgLyogVURDIFN0YXR1cyBJbnRlcnJ1cHQgUmVnaXN0ZXIgMSAqLwotCi0jZGVmaW5lIFVTSVIxX0lSOAkoMSA8PCAwKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA4ICovCi0jZGVmaW5lIFVTSVIxX0lSOQkoMSA8PCAxKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA5ICovCi0jZGVmaW5lIFVTSVIxX0lSMTAJKDEgPDwgMikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTAgKi8KLSNkZWZpbmUgVVNJUjFfSVIxMQkoMSA8PCAzKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxMSAqLwotI2RlZmluZSBVU0lSMV9JUjEyCSgxIDw8IDQpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDEyICovCi0jZGVmaW5lIFVTSVIxX0lSMTMJKDEgPDwgNSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTMgKi8KLSNkZWZpbmUgVVNJUjFfSVIxNAkoMSA8PCA2KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxNCAqLwotI2RlZmluZSBVU0lSMV9JUjE1CSgxIDw8IDcpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDE1ICovCi0KLSNlbGlmIGRlZmluZWQoQ09ORklHX1BYQTI3eCkKLQotI2RlZmluZSBVRENDUiAgICAgICAgICAgX19SRUcoMHg0MDYwMDAwMCkgLyogVURDIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1JfT0VOCSgxIDw8IDMxKQkvKiBPbi10aGUtR28gRW5hYmxlICovCi0jZGVmaW5lIFVEQ0NSX0FBTFRITlAJKDEgPDwgMzApCS8qIEEtZGV2aWNlIEFsdGVybmF0ZSBIb3N0IE5lZ290aWF0aW9uCi0JCQkJCSAgIFByb3RvY29sIFBvcnQgU3VwcG9ydCAqLwotI2RlZmluZSBVRENDUl9BSE5QCSgxIDw8IDI5KQkvKiBBLWRldmljZSBIb3N0IE5lZ290aWF0aW9uIFByb3RvY29sCi0JCQkJCSAgIFN1cHBvcnQgKi8KLSNkZWZpbmUgVURDQ1JfQkhOUAkoMSA8PCAyOCkJLyogQi1kZXZpY2UgSG9zdCBOZWdvdGlhdGlvbiBQcm90b2NvbAotCQkJCQkgICBFbmFibGUgKi8KLSNkZWZpbmUgVURDQ1JfRFdSRQkoMSA8PCAxNikJLyogRGV2aWNlIFJlbW90ZSBXYWtlLXVwIEVuYWJsZSAqLwotI2RlZmluZSBVRENDUl9BQ04JKDB4MDMgPDwgMTEpCS8qIEFjdGl2ZSBVREMgY29uZmlndXJhdGlvbiBOdW1iZXIgKi8KLSNkZWZpbmUgVURDQ1JfQUNOX1MJMTEKLSNkZWZpbmUgVURDQ1JfQUlOCSgweDA3IDw8IDgpCS8qIEFjdGl2ZSBVREMgaW50ZXJmYWNlIE51bWJlciAqLwotI2RlZmluZSBVRENDUl9BSU5fUwk4Ci0jZGVmaW5lIFVEQ0NSX0FBSVNOCSgweDA3IDw8IDUpCS8qIEFjdGl2ZSBVREMgQWx0ZXJuYXRlIEludGVyZmFjZQotCQkJCQkgICBTZXR0aW5nIE51bWJlciAqLwotI2RlZmluZSBVRENDUl9BQUlTTl9TCTUKLSNkZWZpbmUgVURDQ1JfU01BQwkoMSA8PCA0KQkvKiBTd2l0Y2ggRW5kcG9pbnQgTWVtb3J5IHRvIEFjdGl2ZQotCQkJCQkgICBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIFVEQ0NSX0VNQ0UJKDEgPDwgMykJLyogRW5kcG9pbnQgTWVtb3J5IENvbmZpZ3VyYXRpb24KLQkJCQkJICAgRXJyb3IgKi8KLSNkZWZpbmUgVURDQ1JfVURSCSgxIDw8IDIpCS8qIFVEQyBSZXN1bWUgKi8KLSNkZWZpbmUgVURDQ1JfVURBCSgxIDw8IDEpCS8qIFVEQyBBY3RpdmUgKi8KLSNkZWZpbmUgVURDQ1JfVURFCSgxIDw8IDApCS8qIFVEQyBFbmFibGUgKi8KLQotI2RlZmluZSBVRENJQ1IwICAgICAgICAgX19SRUcoMHg0MDYwMDAwNCkgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyMCAqLwotI2RlZmluZSBVRENJQ1IxICAgICAgICAgX19SRUcoMHg0MDYwMDAwOCkgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyMSAqLwotI2RlZmluZSBVRENJQ1JfRklGT0VSUgkoMSA8PCAxKQkvKiBGSUZPIEVycm9yIGludGVycnVwdCBmb3IgRVAgKi8KLSNkZWZpbmUgVURDSUNSX1BLVENPTVBMICgxIDw8IDApCS8qIFBhY2tldCBDb21wbGV0ZSBpbnRlcnJ1cHQgZm9yIEVQICovCi0KLSNkZWZpbmUgVURDX0lOVF9GSUZPRVJST1IgICgweDIpCi0jZGVmaW5lIFVEQ19JTlRfUEFDS0VUQ01QICAoMHgxKQotCi0jZGVmaW5lIFVEQ0lDUl9JTlQobixpbnRyKSAoKChpbnRyKSAmIDB4MDMpIDw8ICgoKG4pICYgMHgwRikgKiAyKSkKLSNkZWZpbmUgVURDSUNSMV9JRUNDCSgxIDw8IDMxKQkvKiBJbnRFbiAtIENvbmZpZ3VyYXRpb24gQ2hhbmdlICovCi0jZGVmaW5lIFVEQ0lDUjFfSUVTT0YJKDEgPDwgMzApCS8qIEludEVuIC0gU3RhcnQgb2YgRnJhbWUgKi8KLSNkZWZpbmUgVURDSUNSMV9JRVJVCSgxIDw8IDI5KQkvKiBJbnRFbiAtIFJlc3VtZSAqLwotI2RlZmluZSBVRENJQ1IxX0lFU1UJKDEgPDwgMjgpCS8qIEludEVuIC0gU3VzcGVuZCAqLwotI2RlZmluZSBVRENJQ1IxX0lFUlMJKDEgPDwgMjcpCS8qIEludEVuIC0gUmVzZXQgKi8KLQotI2RlZmluZSBVRENJU1IwICAgICAgICAgX19SRUcoMHg0MDYwMDAwQykgLyogVURDIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgMCAqLwotI2RlZmluZSBVRENJU1IxICAgICAgICAgX19SRUcoMHg0MDYwMDAxMCkgLyogVURDIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgMSAqLwotI2RlZmluZSBVRENJU1JfSU5UKG4saW50cikgKCgoaW50cikgJiAweDAzKSA8PCAoKChuKSAmIDB4MEYpICogMikpCi0jZGVmaW5lIFVEQ0lTUjFfSVJDQwkoMSA8PCAzMSkJLyogSW50UmVxIC0gQ29uZmlndXJhdGlvbiBDaGFuZ2UgKi8KLSNkZWZpbmUgVURDSVNSMV9JUlNPRgkoMSA8PCAzMCkJLyogSW50UmVxIC0gU3RhcnQgb2YgRnJhbWUgKi8KLSNkZWZpbmUgVURDSVNSMV9JUlJVCSgxIDw8IDI5KQkvKiBJbnRSZXEgLSBSZXN1bWUgKi8KLSNkZWZpbmUgVURDSVNSMV9JUlNVCSgxIDw8IDI4KQkvKiBJbnRSZXEgLSBTdXNwZW5kICovCi0jZGVmaW5lIFVEQ0lTUjFfSVJSUwkoMSA8PCAyNykJLyogSW50UmVxIC0gUmVzZXQgKi8KLQotI2RlZmluZSBVRENGTlIgICAgICAgICAgX19SRUcoMHg0MDYwMDAxNCkgLyogVURDIEZyYW1lIE51bWJlciBSZWdpc3RlciAqLwotI2RlZmluZSBVRENPVEdJQ1IJX19SRUcoMHg0MDYwMDAxOCkgLyogVURDIE9uLVRoZS1HbyBpbnRlcnJ1cHQgY29udHJvbCAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVTRgkoMSA8PCAyNCkJLyogT1RHIFNFVF9GRUFUVVJFIGNvbW1hbmQgcmVjdmQgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFWFIJKDEgPDwgMTcpCS8qIEV4dHJhIFRyYW5zY2lldmVyIEludGVycnVwdAotCQkJCQkgICBSaXNpbmcgRWRnZSBJbnRlcnJ1cHQgRW5hYmxlICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRVhGCSgxIDw8IDE2KQkvKiBFeHRyYSBUcmFuc2NpZXZlciBJbnRlcnJ1cHQKLQkJCQkJICAgRmFsbGluZyBFZGdlIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFVlY0MFIgKDEgPDwgOSkJLyogT1RHIFZidXMgVmFsaWQgNC4wViBSaXNpbmcgRWRnZQotCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRVZWNDBGICgxIDw8IDgpCS8qIE9URyBWYnVzIFZhbGlkIDQuMFYgRmFsbGluZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFVlY0NFIgKDEgPDwgNykJLyogT1RHIFZidXMgVmFsaWQgNC40ViBSaXNpbmcgRWRnZQotCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRVZWNDRGICgxIDw8IDYpCS8qIE9URyBWYnVzIFZhbGlkIDQuNFYgRmFsbGluZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFU1ZSCSgxIDw8IDUpCS8qIE9URyBTZXNzaW9uIFZhbGlkIFJpc2luZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFU1ZGCSgxIDw8IDQpCS8qIE9URyBTZXNzaW9uIFZhbGlkIEZhbGxpbmcgRWRnZQotCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRVNEUgkoMSA8PCAzKQkvKiBPVEcgQS1EZXZpY2UgU1JQIERldGVjdCBSaXNpbmcKLQkJCQkJICAgRWRnZSBJbnRlcnJ1cHQgRW5hYmxlICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRVNERgkoMSA8PCAyKQkvKiBPVEcgQS1EZXZpY2UgU1JQIERldGVjdCBGYWxsaW5nCi0JCQkJCSAgIEVkZ2UgSW50ZXJydXB0IEVuYWJsZSAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVJRFIJKDEgPDwgMSkJLyogT1RHIElEIENoYW5nZSBSaXNpbmcgRWRnZQotCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRUlERgkoMSA8PCAwKQkvKiBPVEcgSUQgQ2hhbmdlIEZhbGxpbmcgRWRnZQotCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCi0KLSNkZWZpbmUgVVAyT0NSCQkgIF9fUkVHKDB4NDA2MDAwMjApICAvKiBVU0IgUG9ydCAyIE91dHB1dCBDb250cm9sIHJlZ2lzdGVyICovCi0KLSNkZWZpbmUgVVAyT0NSX0NQVkVOCSgxIDw8IDApCS8qIENoYXJnZSBQdW1wIFZidXMgRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9DUFZQRQkoMSA8PCAxKQkvKiBDaGFyZ2UgUHVtcCBWYnVzIFB1bHNlIEVuYWJsZSAqLwotI2RlZmluZSBVUDJPQ1JfRFBQREUJKDEgPDwgMikJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgRCsgUHVsbCBEb3duIEVuYWJsZSAqLwotI2RlZmluZSBVUDJPQ1JfRE1QREUJKDEgPDwgMykJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgRC0gUHVsbCBEb3duIEVuYWJsZSAqLwotI2RlZmluZSBVUDJPQ1JfRFBQVUUJKDEgPDwgNCkJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgRCsgUHVsbCBVcCBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0RNUFVFCSgxIDw8IDUpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQtIFB1bGwgVXAgRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9EUFBVQkUJKDEgPDwgNikJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgRCsgUHVsbCBVcCBCeXBhc3MgRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9ETVBVQkUJKDEgPDwgNykJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgRC0gUHVsbCBVcCBCeXBhc3MgRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9FWFNQCQkoMSA8PCA4KQkvKiBFeHRlcm5hbCBUcmFuc2NlaXZlciBTcGVlZCBDb250cm9sICovCi0jZGVmaW5lIFVQMk9DUl9FWFNVUwkoMSA8PCA5KQkvKiBFeHRlcm5hbCBUcmFuc2NlaXZlciBTcGVlZCBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0lET04JCSgxIDw8IDEwKQkvKiBPVEcgSUQgUmVhZCBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0hYUwkJKDEgPDwgMTYpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIE91dHB1dCBTZWxlY3QgKi8KLSNkZWZpbmUgVVAyT0NSX0hYT0UJCSgxIDw8IDE3KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBPdXRwdXQgRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9TRU9TCQkoMSA8PCAyNCkJLyogU2luZ2xlLUVuZGVkIE91dHB1dCBTZWxlY3QgKi8KLQotI2RlZmluZSBVRENDU04oeCkJX19SRUcyKDB4NDA2MDAxMDAsICh4KSA8PCAyKQotI2RlZmluZSBVRENDU1IwICAgICAgICAgX19SRUcoMHg0MDYwMDEwMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgMCAqLwotI2RlZmluZSBVRENDU1IwX1NBCSgxIDw8IDcpCS8qIFNldHVwIEFjdGl2ZSAqLwotI2RlZmluZSBVRENDU1IwX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gTm90IEVtcHR5ICovCi0jZGVmaW5lIFVEQ0NTUjBfRlNUCSgxIDw8IDUpCS8qIEZvcmNlIFN0YWxsICovCi0jZGVmaW5lIFVEQ0NTUjBfU1NUCSgxIDw8IDQpCS8qIFNlbnQgU3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NSMF9ETUUJKDEgPDwgMykJLyogRE1BIEVuYWJsZSAqLwotI2RlZmluZSBVRENDU1IwX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUcmFuc21pdCBGSUZPICovCi0jZGVmaW5lIFVEQ0NTUjBfSVBSCSgxIDw8IDEpCS8qIElOIFBhY2tldCBSZWFkeSAqLwotI2RlZmluZSBVRENDU1IwX09QQwkoMSA8PCAwKQkvKiBPVVQgUGFja2V0IENvbXBsZXRlICovCi0KLSNkZWZpbmUgVURDQ1NSQSAgICAgICAgIF9fUkVHKDB4NDA2MDAxMDQpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEEgKi8KLSNkZWZpbmUgVURDQ1NSQiAgICAgICAgIF9fUkVHKDB4NDA2MDAxMDgpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEIgKi8KLSNkZWZpbmUgVURDQ1NSQyAgICAgICAgIF9fUkVHKDB4NDA2MDAxMEMpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEMgKi8KLSNkZWZpbmUgVURDQ1NSRCAgICAgICAgIF9fUkVHKDB4NDA2MDAxMTApIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEQgKi8KLSNkZWZpbmUgVURDQ1NSRSAgICAgICAgIF9fUkVHKDB4NDA2MDAxMTQpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEUgKi8KLSNkZWZpbmUgVURDQ1NSRiAgICAgICAgIF9fUkVHKDB4NDA2MDAxMTgpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEYgKi8KLSNkZWZpbmUgVURDQ1NSRyAgICAgICAgIF9fUkVHKDB4NDA2MDAxMUMpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEcgKi8KLSNkZWZpbmUgVURDQ1NSSCAgICAgICAgIF9fUkVHKDB4NDA2MDAxMjApIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEggKi8KLSNkZWZpbmUgVURDQ1NSSSAgICAgICAgIF9fUkVHKDB4NDA2MDAxMjQpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEkgKi8KLSNkZWZpbmUgVURDQ1NSSiAgICAgICAgIF9fUkVHKDB4NDA2MDAxMjgpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEogKi8KLSNkZWZpbmUgVURDQ1NSSyAgICAgICAgIF9fUkVHKDB4NDA2MDAxMkMpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEsgKi8KLSNkZWZpbmUgVURDQ1NSTCAgICAgICAgIF9fUkVHKDB4NDA2MDAxMzApIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IEwgKi8KLSNkZWZpbmUgVURDQ1NSTSAgICAgICAgIF9fUkVHKDB4NDA2MDAxMzQpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IE0gKi8KLSNkZWZpbmUgVURDQ1NSTiAgICAgICAgIF9fUkVHKDB4NDA2MDAxMzgpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IE4gKi8KLSNkZWZpbmUgVURDQ1NSUCAgICAgICAgIF9fUkVHKDB4NDA2MDAxM0MpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IFAgKi8KLSNkZWZpbmUgVURDQ1NSUSAgICAgICAgIF9fUkVHKDB4NDA2MDAxNDApIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IFEgKi8KLSNkZWZpbmUgVURDQ1NSUiAgICAgICAgIF9fUkVHKDB4NDA2MDAxNDQpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IFIgKi8KLSNkZWZpbmUgVURDQ1NSUyAgICAgICAgIF9fUkVHKDB4NDA2MDAxNDgpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IFMgKi8KLSNkZWZpbmUgVURDQ1NSVCAgICAgICAgIF9fUkVHKDB4NDA2MDAxNEMpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IFQgKi8KLSNkZWZpbmUgVURDQ1NSVSAgICAgICAgIF9fUkVHKDB4NDA2MDAxNTApIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IFUgKi8KLSNkZWZpbmUgVURDQ1NSViAgICAgICAgIF9fUkVHKDB4NDA2MDAxNTQpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IFYgKi8KLSNkZWZpbmUgVURDQ1NSVyAgICAgICAgIF9fUkVHKDB4NDA2MDAxNTgpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IFcgKi8KLSNkZWZpbmUgVURDQ1NSWCAgICAgICAgIF9fUkVHKDB4NDA2MDAxNUMpIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IFggKi8KLQotI2RlZmluZSBVRENDU1JfRFBFCSgxIDw8IDkpCS8qIERhdGEgUGFja2V0IEVycm9yICovCi0jZGVmaW5lIFVEQ0NTUl9GRUYJKDEgPDwgOCkJLyogRmx1c2ggRW5kcG9pbnQgRklGTyAqLwotI2RlZmluZSBVRENDU1JfU1AJKDEgPDwgNykJLyogU2hvcnQgUGFja2V0IENvbnRyb2wvU3RhdHVzICovCi0jZGVmaW5lIFVEQ0NTUl9CTkUJKDEgPDwgNikJLyogQnVmZmVyIE5vdCBFbXB0eSAoSU4gZW5kcG9pbnRzKSAqLwotI2RlZmluZSBVRENDU1JfQk5GCSgxIDw8IDYpCS8qIEJ1ZmZlciBOb3QgRnVsbCAoT1VUIGVuZHBvaW50cykgKi8KLSNkZWZpbmUgVURDQ1NSX0ZTVAkoMSA8PCA1KQkvKiBGb3JjZSBTVEFMTCAqLwotI2RlZmluZSBVRENDU1JfU1NUCSgxIDw8IDQpCS8qIFNlbnQgU1RBTEwgKi8KLSNkZWZpbmUgVURDQ1NSX0RNRQkoMSA8PCAzKQkvKiBETUEgRW5hYmxlICovCi0jZGVmaW5lIFVEQ0NTUl9UUk4JKDEgPDwgMikJLyogVHgvUnggTkFLICovCi0jZGVmaW5lIFVEQ0NTUl9QQwkoMSA8PCAxKQkvKiBQYWNrZXQgQ29tcGxldGUgKi8KLSNkZWZpbmUgVURDQ1NSX0ZTCSgxIDw8IDApCS8qIEZJRk8gbmVlZHMgc2VydmljZSAqLwotCi0jZGVmaW5lIFVEQ0JDTih4KQlfX1JFRzIoMHg0MDYwMDIwMCwgKHgpPDwyKQotI2RlZmluZSBVRENCQ1IwICAgICAgICAgX19SRUcoMHg0MDYwMDIwMCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQMCAqLwotI2RlZmluZSBVRENCQ1JBICAgICAgICAgX19SRUcoMHg0MDYwMDIwNCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQQSAqLwotI2RlZmluZSBVRENCQ1JCICAgICAgICAgX19SRUcoMHg0MDYwMDIwOCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQQiAqLwotI2RlZmluZSBVRENCQ1JDICAgICAgICAgX19SRUcoMHg0MDYwMDIwQykgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQQyAqLwotI2RlZmluZSBVRENCQ1JEICAgICAgICAgX19SRUcoMHg0MDYwMDIxMCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQRCAqLwotI2RlZmluZSBVRENCQ1JFICAgICAgICAgX19SRUcoMHg0MDYwMDIxNCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQRSAqLwotI2RlZmluZSBVRENCQ1JGICAgICAgICAgX19SRUcoMHg0MDYwMDIxOCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQRiAqLwotI2RlZmluZSBVRENCQ1JHICAgICAgICAgX19SRUcoMHg0MDYwMDIxQykgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQRyAqLwotI2RlZmluZSBVRENCQ1JIICAgICAgICAgX19SRUcoMHg0MDYwMDIyMCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQSCAqLwotI2RlZmluZSBVRENCQ1JJICAgICAgICAgX19SRUcoMHg0MDYwMDIyNCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQSSAqLwotI2RlZmluZSBVRENCQ1JKICAgICAgICAgX19SRUcoMHg0MDYwMDIyOCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQSiAqLwotI2RlZmluZSBVRENCQ1JLICAgICAgICAgX19SRUcoMHg0MDYwMDIyQykgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQSyAqLwotI2RlZmluZSBVRENCQ1JMICAgICAgICAgX19SRUcoMHg0MDYwMDIzMCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQTCAqLwotI2RlZmluZSBVRENCQ1JNICAgICAgICAgX19SRUcoMHg0MDYwMDIzNCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQTSAqLwotI2RlZmluZSBVRENCQ1JOICAgICAgICAgX19SRUcoMHg0MDYwMDIzOCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQTiAqLwotI2RlZmluZSBVRENCQ1JQICAgICAgICAgX19SRUcoMHg0MDYwMDIzQykgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQUCAqLwotI2RlZmluZSBVRENCQ1JRICAgICAgICAgX19SRUcoMHg0MDYwMDI0MCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQUSAqLwotI2RlZmluZSBVRENCQ1JSICAgICAgICAgX19SRUcoMHg0MDYwMDI0NCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQUiAqLwotI2RlZmluZSBVRENCQ1JTICAgICAgICAgX19SRUcoMHg0MDYwMDI0OCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQUyAqLwotI2RlZmluZSBVRENCQ1JUICAgICAgICAgX19SRUcoMHg0MDYwMDI0QykgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQVCAqLwotI2RlZmluZSBVRENCQ1JVICAgICAgICAgX19SRUcoMHg0MDYwMDI1MCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQVSAqLwotI2RlZmluZSBVRENCQ1JWICAgICAgICAgX19SRUcoMHg0MDYwMDI1NCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQViAqLwotI2RlZmluZSBVRENCQ1JXICAgICAgICAgX19SRUcoMHg0MDYwMDI1OCkgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQVyAqLwotI2RlZmluZSBVRENCQ1JYICAgICAgICAgX19SRUcoMHg0MDYwMDI1QykgLyogQnl0ZSBDb3VudCBSZWdpc3RlciAtIEVQWCAqLwotCi0jZGVmaW5lIFVEQ0ROKHgpCV9fUkVHMigweDQwNjAwMzAwLCAoeCk8PDIpCi0jZGVmaW5lIFBIWVNfVURDRE4oeCkJKDB4NDA2MDAzMDAgKyAoKHgpPDwyKSkKLSNkZWZpbmUgUFVEQ0ROKHgpCSh2b2xhdGlsZSB1MzIgKikoaW9fcDJ2KFBIWVNfVURDRE4oKHgpKSkpCi0jZGVmaW5lIFVEQ0RSMCAgICAgICAgICBfX1JFRygweDQwNjAwMzAwKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVAwICovCi0jZGVmaW5lIFVEQ0RSQSAgICAgICAgICBfX1JFRygweDQwNjAwMzA0KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBBICovCi0jZGVmaW5lIFVEQ0RSQiAgICAgICAgICBfX1JFRygweDQwNjAwMzA4KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBCICovCi0jZGVmaW5lIFVEQ0RSQyAgICAgICAgICBfX1JFRygweDQwNjAwMzBDKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBDICovCi0jZGVmaW5lIFVEQ0RSRCAgICAgICAgICBfX1JFRygweDQwNjAwMzEwKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBEICovCi0jZGVmaW5lIFVEQ0RSRSAgICAgICAgICBfX1JFRygweDQwNjAwMzE0KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBFICovCi0jZGVmaW5lIFVEQ0RSRiAgICAgICAgICBfX1JFRygweDQwNjAwMzE4KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBGICovCi0jZGVmaW5lIFVEQ0RSRyAgICAgICAgICBfX1JFRygweDQwNjAwMzFDKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBHICovCi0jZGVmaW5lIFVEQ0RSSCAgICAgICAgICBfX1JFRygweDQwNjAwMzIwKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBIICovCi0jZGVmaW5lIFVEQ0RSSSAgICAgICAgICBfX1JFRygweDQwNjAwMzI0KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBJICovCi0jZGVmaW5lIFVEQ0RSSiAgICAgICAgICBfX1JFRygweDQwNjAwMzI4KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBKICovCi0jZGVmaW5lIFVEQ0RSSyAgICAgICAgICBfX1JFRygweDQwNjAwMzJDKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBLICovCi0jZGVmaW5lIFVEQ0RSTCAgICAgICAgICBfX1JFRygweDQwNjAwMzMwKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBMICovCi0jZGVmaW5lIFVEQ0RSTSAgICAgICAgICBfX1JFRygweDQwNjAwMzM0KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBNICovCi0jZGVmaW5lIFVEQ0RSTiAgICAgICAgICBfX1JFRygweDQwNjAwMzM4KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBOICovCi0jZGVmaW5lIFVEQ0RSUCAgICAgICAgICBfX1JFRygweDQwNjAwMzNDKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBQICovCi0jZGVmaW5lIFVEQ0RSUSAgICAgICAgICBfX1JFRygweDQwNjAwMzQwKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBRICovCi0jZGVmaW5lIFVEQ0RSUiAgICAgICAgICBfX1JFRygweDQwNjAwMzQ0KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBSICovCi0jZGVmaW5lIFVEQ0RSUyAgICAgICAgICBfX1JFRygweDQwNjAwMzQ4KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBTICovCi0jZGVmaW5lIFVEQ0RSVCAgICAgICAgICBfX1JFRygweDQwNjAwMzRDKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBUICovCi0jZGVmaW5lIFVEQ0RSVSAgICAgICAgICBfX1JFRygweDQwNjAwMzUwKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBVICovCi0jZGVmaW5lIFVEQ0RSViAgICAgICAgICBfX1JFRygweDQwNjAwMzU0KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBWICovCi0jZGVmaW5lIFVEQ0RSVyAgICAgICAgICBfX1JFRygweDQwNjAwMzU4KSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBXICovCi0jZGVmaW5lIFVEQ0RSWCAgICAgICAgICBfX1JFRygweDQwNjAwMzVDKSAvKiBEYXRhIFJlZ2lzdGVyIC0gRVBYICovCi0KLSNkZWZpbmUgVURDQ04oeCkgICAgICAgX19SRUcyKDB4NDA2MDA0MDAsICh4KTw8MikKLSNkZWZpbmUgVURDQ1JBICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MDQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBBICovCi0jZGVmaW5lIFVEQ0NSQiAgICAgICAgICBfX1JFRygweDQwNjAwNDA4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQQiAqLwotI2RlZmluZSBVRENDUkMgICAgICAgICAgX19SRUcoMHg0MDYwMDQwQykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEMgKi8KLSNkZWZpbmUgVURDQ1JEICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MTApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBEICovCi0jZGVmaW5lIFVEQ0NSRSAgICAgICAgICBfX1JFRygweDQwNjAwNDE0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQRSAqLwotI2RlZmluZSBVRENDUkYgICAgICAgICAgX19SRUcoMHg0MDYwMDQxOCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEYgKi8KLSNkZWZpbmUgVURDQ1JHICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MUMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBHICovCi0jZGVmaW5lIFVEQ0NSSCAgICAgICAgICBfX1JFRygweDQwNjAwNDIwKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQSCAqLwotI2RlZmluZSBVRENDUkkgICAgICAgICAgX19SRUcoMHg0MDYwMDQyNCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEkgKi8KLSNkZWZpbmUgVURDQ1JKICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MjgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBKICovCi0jZGVmaW5lIFVEQ0NSSyAgICAgICAgICBfX1JFRygweDQwNjAwNDJDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQSyAqLwotI2RlZmluZSBVRENDUkwgICAgICAgICAgX19SRUcoMHg0MDYwMDQzMCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEwgKi8KLSNkZWZpbmUgVURDQ1JNICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MzQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBNICovCi0jZGVmaW5lIFVEQ0NSTiAgICAgICAgICBfX1JFRygweDQwNjAwNDM4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQTiAqLwotI2RlZmluZSBVRENDUlAgICAgICAgICAgX19SRUcoMHg0MDYwMDQzQykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFAgKi8KLSNkZWZpbmUgVURDQ1JRICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NDApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBRICovCi0jZGVmaW5lIFVEQ0NSUiAgICAgICAgICBfX1JFRygweDQwNjAwNDQ0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQUiAqLwotI2RlZmluZSBVRENDUlMgICAgICAgICAgX19SRUcoMHg0MDYwMDQ0OCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFMgKi8KLSNkZWZpbmUgVURDQ1JUICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NEMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBUICovCi0jZGVmaW5lIFVEQ0NSVSAgICAgICAgICBfX1JFRygweDQwNjAwNDUwKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQVSAqLwotI2RlZmluZSBVRENDUlYgICAgICAgICAgX19SRUcoMHg0MDYwMDQ1NCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFYgKi8KLSNkZWZpbmUgVURDQ1JXICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NTgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBXICovCi0jZGVmaW5lIFVEQ0NSWCAgICAgICAgICBfX1JFRygweDQwNjAwNDVDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQWCAqLwotCi0jZGVmaW5lIFVEQ0NPTlJfQ04JKDB4MDMgPDwgMjUpCS8qIENvbmZpZ3VyYXRpb24gTnVtYmVyICovCi0jZGVmaW5lIFVEQ0NPTlJfQ05fUwkoMjUpCi0jZGVmaW5lIFVEQ0NPTlJfSU4JKDB4MDcgPDwgMjIpCS8qIEludGVyZmFjZSBOdW1iZXIgKi8KLSNkZWZpbmUgVURDQ09OUl9JTl9TCSgyMikKLSNkZWZpbmUgVURDQ09OUl9BSVNOCSgweDA3IDw8IDE5KQkvKiBBbHRlcm5hdGUgSW50ZXJmYWNlIE51bWJlciAqLwotI2RlZmluZSBVRENDT05SX0FJU05fUwkoMTkpCi0jZGVmaW5lIFVEQ0NPTlJfRU4JKDB4MGYgPDwgMTUpCS8qIEVuZHBvaW50IE51bWJlciAqLwotI2RlZmluZSBVRENDT05SX0VOX1MJKDE1KQotI2RlZmluZSBVRENDT05SX0VUCSgweDAzIDw8IDEzKQkvKiBFbmRwb2ludCBUeXBlOiAqLwotI2RlZmluZSBVRENDT05SX0VUX1MJKDEzKQotI2RlZmluZSBVRENDT05SX0VUX0lOVAkoMHgwMyA8PCAxMykJLyogICBJbnRlcnJ1cHQgKi8KLSNkZWZpbmUgVURDQ09OUl9FVF9CVUxLCSgweDAyIDw8IDEzKQkvKiAgIEJ1bGsgKi8KLSNkZWZpbmUgVURDQ09OUl9FVF9JU08JKDB4MDEgPDwgMTMpCS8qICAgSXNvY2hyb25vdXMgKi8KLSNkZWZpbmUgVURDQ09OUl9FVF9OVQkoMHgwMCA8PCAxMykJLyogICBOb3QgdXNlZCAqLwotI2RlZmluZSBVRENDT05SX0VECSgxIDw8IDEyKQkvKiBFbmRwb2ludCBEaXJlY3Rpb24gKi8KLSNkZWZpbmUgVURDQ09OUl9NUFMJKDB4M2ZmIDw8IDIpCS8qIE1heGltdW0gUGFja2V0IFNpemUgKi8KLSNkZWZpbmUgVURDQ09OUl9NUFNfUwkoMikKLSNkZWZpbmUgVURDQ09OUl9ERQkoMSA8PCAxKQkvKiBEb3VibGUgQnVmZmVyaW5nIEVuYWJsZSAqLwotI2RlZmluZSBVRENDT05SX0VFCSgxIDw8IDApCS8qIEVuZHBvaW50IEVuYWJsZSAqLwotCi0KLSNkZWZpbmUgVURDX0lOVF9GSUZPRVJST1IgICgweDIpCi0jZGVmaW5lIFVEQ19JTlRfUEFDS0VUQ01QICAoMHgxKQotCi0jZGVmaW5lIFVEQ19GTlJfTUFTSyAgICAgKDB4N2ZmKQotCi0jZGVmaW5lIFVEQ0NTUl9XUl9NQVNLICAgKFVEQ0NTUl9ETUV8VURDQ1NSX0ZTVCkKLSNkZWZpbmUgVURDX0JDUl9NQVNLICAgICgweDNmZikKLSNlbmRpZgotCi0vKgogICogRmFzdCBJbmZyYXJlZCBDb21tdW5pY2F0aW9uIFBvcnQKICAqLwogCkBAIC0xMjM3LDEyMCArODI1LDkgQEAKICNlbmRpZgogCiAvKgotICogUG93ZXIgTWFuYWdlcgorICogUG93ZXIgTWFuYWdlciAtIHNlZSBweGEyeHgtcmVncy5oCiAgKi8KIAotI2RlZmluZSBQTUNSCQlfX1JFRygweDQwRjAwMDAwKSAgLyogUG93ZXIgTWFuYWdlciBDb250cm9sIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBTU1IJCV9fUkVHKDB4NDBGMDAwMDQpICAvKiBQb3dlciBNYW5hZ2VyIFNsZWVwIFN0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBQU1BSCQlfX1JFRygweDQwRjAwMDA4KSAgLyogUG93ZXIgTWFuYWdlciBTY3JhdGNoIFBhZCBSZWdpc3RlciAqLwotI2RlZmluZSBQV0VSCQlfX1JFRygweDQwRjAwMDBDKSAgLyogUG93ZXIgTWFuYWdlciBXYWtlLXVwIEVuYWJsZSBSZWdpc3RlciAqLwotI2RlZmluZSBQUkVSCQlfX1JFRygweDQwRjAwMDEwKSAgLyogUG93ZXIgTWFuYWdlciBHUElPIFJpc2luZy1FZGdlIERldGVjdCBFbmFibGUgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgUEZFUgkJX19SRUcoMHg0MEYwMDAxNCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBGYWxsaW5nLUVkZ2UgRGV0ZWN0IEVuYWJsZSBSZWdpc3RlciAqLwotI2RlZmluZSBQRURSCQlfX1JFRygweDQwRjAwMDE4KSAgLyogUG93ZXIgTWFuYWdlciBHUElPIEVkZ2UgRGV0ZWN0IFN0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBQQ0ZSCQlfX1JFRygweDQwRjAwMDFDKSAgLyogUG93ZXIgTWFuYWdlciBHZW5lcmFsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KLSNkZWZpbmUgUEdTUjAJCV9fUkVHKDB4NDBGMDAwMjApICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gU2xlZXAgU3RhdGUgUmVnaXN0ZXIgZm9yIEdQWzMxLTBdICovCi0jZGVmaW5lIFBHU1IxCQlfX1JFRygweDQwRjAwMDI0KSAgLyogUG93ZXIgTWFuYWdlciBHUElPIFNsZWVwIFN0YXRlIFJlZ2lzdGVyIGZvciBHUFs2My0zMl0gKi8KLSNkZWZpbmUgUEdTUjIJCV9fUkVHKDB4NDBGMDAwMjgpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gU2xlZXAgU3RhdGUgUmVnaXN0ZXIgZm9yIEdQWzg0LTY0XSAqLwotI2RlZmluZSBQR1NSMwkJX19SRUcoMHg0MEYwMDAyQykgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBTbGVlcCBTdGF0ZSBSZWdpc3RlciBmb3IgR1BbMTE4LTk2XSAqLwotI2RlZmluZSBSQ1NSCQlfX1JFRygweDQwRjAwMDMwKSAgLyogUmVzZXQgQ29udHJvbGxlciBTdGF0dXMgUmVnaXN0ZXIgKi8KLQotI2RlZmluZSBQU0xSCQlfX1JFRygweDQwRjAwMDM0KQkvKiBQb3dlciBNYW5hZ2VyIFNsZWVwIENvbmZpZyBSZWdpc3RlciAqLwotI2RlZmluZSBQU1RSCQlfX1JFRygweDQwRjAwMDM4KQkvKlBvd2VyIE1hbmFnZXIgU3RhbmRieSBDb25maWcgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgUFNOUgkJX19SRUcoMHg0MEYwMDAzQykJLypQb3dlciBNYW5hZ2VyIFNlbnNlIENvbmZpZyBSZWdpc3RlciAqLwotI2RlZmluZSBQVkNSCQlfX1JFRygweDQwRjAwMDQwKQkvKlBvd2VyIE1hbmFnZXIgVm9sdGFnZUNvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgUEtXUgkJX19SRUcoMHg0MEYwMDA1MCkJLyogUG93ZXIgTWFuYWdlciBLQiBXYWtlLXVwIEVuYWJsZSBSZWcgKi8KLSNkZWZpbmUgUEtTUgkJX19SRUcoMHg0MEYwMDA1NCkJLyogUG93ZXIgTWFuYWdlciBLQiBMZXZlbC1EZXRlY3QgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgUENNRCh4KQlfX1JFRzIoMHg0MEYwMDA4MCwgKHgpPDwyKQotI2RlZmluZSBQQ01EMAlfX1JFRygweDQwRjAwMDgwICsgMCAqIDQpCi0jZGVmaW5lIFBDTUQxCV9fUkVHKDB4NDBGMDAwODAgKyAxICogNCkKLSNkZWZpbmUgUENNRDIJX19SRUcoMHg0MEYwMDA4MCArIDIgKiA0KQotI2RlZmluZSBQQ01EMwlfX1JFRygweDQwRjAwMDgwICsgMyAqIDQpCi0jZGVmaW5lIFBDTUQ0CV9fUkVHKDB4NDBGMDAwODAgKyA0ICogNCkKLSNkZWZpbmUgUENNRDUJX19SRUcoMHg0MEYwMDA4MCArIDUgKiA0KQotI2RlZmluZSBQQ01ENglfX1JFRygweDQwRjAwMDgwICsgNiAqIDQpCi0jZGVmaW5lIFBDTUQ3CV9fUkVHKDB4NDBGMDAwODAgKyA3ICogNCkKLSNkZWZpbmUgUENNRDgJX19SRUcoMHg0MEYwMDA4MCArIDggKiA0KQotI2RlZmluZSBQQ01EOQlfX1JFRygweDQwRjAwMDgwICsgOSAqIDQpCi0jZGVmaW5lIFBDTUQxMAlfX1JFRygweDQwRjAwMDgwICsgMTAgKiA0KQotI2RlZmluZSBQQ01EMTEJX19SRUcoMHg0MEYwMDA4MCArIDExICogNCkKLSNkZWZpbmUgUENNRDEyCV9fUkVHKDB4NDBGMDAwODAgKyAxMiAqIDQpCi0jZGVmaW5lIFBDTUQxMwlfX1JFRygweDQwRjAwMDgwICsgMTMgKiA0KQotI2RlZmluZSBQQ01EMTQJX19SRUcoMHg0MEYwMDA4MCArIDE0ICogNCkKLSNkZWZpbmUgUENNRDE1CV9fUkVHKDB4NDBGMDAwODAgKyAxNSAqIDQpCi0jZGVmaW5lIFBDTUQxNglfX1JFRygweDQwRjAwMDgwICsgMTYgKiA0KQotI2RlZmluZSBQQ01EMTcJX19SRUcoMHg0MEYwMDA4MCArIDE3ICogNCkKLSNkZWZpbmUgUENNRDE4CV9fUkVHKDB4NDBGMDAwODAgKyAxOCAqIDQpCi0jZGVmaW5lIFBDTUQxOQlfX1JFRygweDQwRjAwMDgwICsgMTkgKiA0KQotI2RlZmluZSBQQ01EMjAJX19SRUcoMHg0MEYwMDA4MCArIDIwICogNCkKLSNkZWZpbmUgUENNRDIxCV9fUkVHKDB4NDBGMDAwODAgKyAyMSAqIDQpCi0jZGVmaW5lIFBDTUQyMglfX1JFRygweDQwRjAwMDgwICsgMjIgKiA0KQotI2RlZmluZSBQQ01EMjMJX19SRUcoMHg0MEYwMDA4MCArIDIzICogNCkKLSNkZWZpbmUgUENNRDI0CV9fUkVHKDB4NDBGMDAwODAgKyAyNCAqIDQpCi0jZGVmaW5lIFBDTUQyNQlfX1JFRygweDQwRjAwMDgwICsgMjUgKiA0KQotI2RlZmluZSBQQ01EMjYJX19SRUcoMHg0MEYwMDA4MCArIDI2ICogNCkKLSNkZWZpbmUgUENNRDI3CV9fUkVHKDB4NDBGMDAwODAgKyAyNyAqIDQpCi0jZGVmaW5lIFBDTUQyOAlfX1JFRygweDQwRjAwMDgwICsgMjggKiA0KQotI2RlZmluZSBQQ01EMjkJX19SRUcoMHg0MEYwMDA4MCArIDI5ICogNCkKLSNkZWZpbmUgUENNRDMwCV9fUkVHKDB4NDBGMDAwODAgKyAzMCAqIDQpCi0jZGVmaW5lIFBDTUQzMQlfX1JFRygweDQwRjAwMDgwICsgMzEgKiA0KQotCi0jZGVmaW5lIFBDTURfTUJDCSgxPDwxMikKLSNkZWZpbmUgUENNRF9EQ0UJKDE8PDExKQotI2RlZmluZSBQQ01EX0xDCSgxPDwxMCkKLS8qIEZJWE1FOiAgUENNRF9TUUMgbmVlZCBiZSBjaGVja2VkLiAgICovCi0jZGVmaW5lIFBDTURfU1FDCSgzPDw4KQkvKiBjdXJyZW50bHkgb25seSBiaXQgOCBpcyBjaGFuZ2VhYmxlLAotCQkJCSAgIGJpdCA5IHNob3VsZCBiZSAwIGFsbCBkYXkuICovCi0jZGVmaW5lIFBWQ1JfVkNTQQkoMHgxPDwxNCkKLSNkZWZpbmUgUFZDUl9Db21tYW5kRGVsYXkgKDB4ZjgwKQotI2RlZmluZSBQQ0ZSX1BJMkNfRU4JKDB4MSA8PCA2KQotCi0jZGVmaW5lIFBTU1JfT1RHUEgJKDEgPDwgNikJLyogT1RHIFBlcmlwaGVyYWwgY29udHJvbCBIb2xkICovCi0jZGVmaW5lIFBTU1JfUkRICSgxIDw8IDUpCS8qIFJlYWQgRGlzYWJsZSBIb2xkICovCi0jZGVmaW5lIFBTU1JfUEgJCSgxIDw8IDQpCS8qIFBlcmlwaGVyYWwgQ29udHJvbCBIb2xkICovCi0jZGVmaW5lIFBTU1JfU1RTCSgxIDw8IDMpCS8qIFN0YW5kYnkgTW9kZSBTdGF0dXMgKi8KLSNkZWZpbmUgUFNTUl9WRlMJKDEgPDwgMikJLyogVkREIEZhdWx0IFN0YXR1cyAqLwotI2RlZmluZSBQU1NSX0JGUwkoMSA8PCAxKQkvKiBCYXR0ZXJ5IEZhdWx0IFN0YXR1cyAqLwotI2RlZmluZSBQU1NSX1NTUwkoMSA8PCAwKQkvKiBTb2Z0d2FyZSBTbGVlcCBTdGF0dXMgKi8KLQotI2RlZmluZSBQU0xSX1NMX1JPRAkoMSA8PCAyMCkJLyogU2xlZXAtTW9kZS9EZXBwLVNsZWVwIE1vZGUgblJFU0VUX09VVCBEaXNhYmxlICovCi0KLSNkZWZpbmUgUENGUl9STwkJKDEgPDwgMTUpCS8qIFJESCBPdmVycmlkZSAqLwotI2RlZmluZSBQQ0ZSX1BPCQkoMSA8PCAxNCkJLyogUEggT3ZlcnJpZGUgKi8KLSNkZWZpbmUgUENGUl9HUFJPRAkoMSA8PCAxMikJLyogR1BJTyBuUkVTRVRfT1VUIERpc2FibGUgKi8KLSNkZWZpbmUgUENGUl9MMV9FTgkoMSA8PCAxMSkJLyogU2xlZXAgTW9kZSBMMSBjb252ZXJ0ZXIgRW5hYmxlICovCi0jZGVmaW5lIFBDRlJfRlZDCSgxIDw8IDEwKQkvKiBGcmVxdWVuY3kvVm9sdGFnZSBDaGFuZ2UgKi8KLSNkZWZpbmUgUENGUl9EQ19FTgkoMSA8PCA3KQkvKiBTbGVlcC9kZWVwLXNsZWVwIERDLURDIENvbnZlcnRlciBFbmFibGUgKi8KLSNkZWZpbmUgUENGUl9QSTJDRU4JKDEgPDwgNikJLyogRW5hYmxlIFBJMkMgY29udHJvbGxlciAqLwotI2RlZmluZSBQQ0ZSX0dQUl9FTgkoMSA8PCA0KQkvKiBuUkVTRVRfR1BJTyBQaW4gRW5hYmxlICovCi0jZGVmaW5lIFBDRlJfRFMJCSgxIDw8IDMpCS8qIERlZXAgU2xlZXAgTW9kZSAqLwotI2RlZmluZSBQQ0ZSX0ZTCQkoMSA8PCAyKQkvKiBGbG9hdCBTdGF0aWMgQ2hpcCBTZWxlY3RzICovCi0jZGVmaW5lIFBDRlJfRlAJCSgxIDw8IDEpCS8qIEZsb2F0IFBDTUNJQSBjb250cm9scyAqLwotI2RlZmluZSBQQ0ZSX09QREUJKDEgPDwgMCkJLyogMy42ODY0IE1IeiBvc2NpbGxhdG9yIHBvd2VyLWRvd24gZW5hYmxlICovCi0KLSNkZWZpbmUgUkNTUl9HUFIJKDEgPDwgMykJLyogR1BJTyBSZXNldCAqLwotI2RlZmluZSBSQ1NSX1NNUgkoMSA8PCAyKQkvKiBTbGVlcCBNb2RlICovCi0jZGVmaW5lIFJDU1JfV0RSCSgxIDw8IDEpCS8qIFdhdGNoZG9nIFJlc2V0ICovCi0jZGVmaW5lIFJDU1JfSFdSCSgxIDw8IDApCS8qIEhhcmR3YXJlIFJlc2V0ICovCi0KLSNkZWZpbmUgUFdFUl9HUElPKE5iKQkoMSA8PCBOYikJLyogR1BJTyBbMC4uMTVdIHdha2UtdXAgZW5hYmxlICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8wCVBXRVJfR1BJTyAoMCkJLyogR1BJTyAgWzBdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8xCVBXRVJfR1BJTyAoMSkJLyogR1BJTyAgWzFdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8yCVBXRVJfR1BJTyAoMikJLyogR1BJTyAgWzJdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8zCVBXRVJfR1BJTyAoMykJLyogR1BJTyAgWzNdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU80CVBXRVJfR1BJTyAoNCkJLyogR1BJTyAgWzRdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU81CVBXRVJfR1BJTyAoNSkJLyogR1BJTyAgWzVdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU82CVBXRVJfR1BJTyAoNikJLyogR1BJTyAgWzZdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU83CVBXRVJfR1BJTyAoNykJLyogR1BJTyAgWzddIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU84CVBXRVJfR1BJTyAoOCkJLyogR1BJTyAgWzhdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU85CVBXRVJfR1BJTyAoOSkJLyogR1BJTyAgWzldIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8xMAlQV0VSX0dQSU8gKDEwKQkvKiBHUElPIFsxMF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzExCVBXRVJfR1BJTyAoMTEpCS8qIEdQSU8gWzExXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KLSNkZWZpbmUgUFdFUl9HUElPMTIJUFdFUl9HUElPICgxMikJLyogR1BJTyBbMTJdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8xMwlQV0VSX0dQSU8gKDEzKQkvKiBHUElPIFsxM10gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzE0CVBXRVJfR1BJTyAoMTQpCS8qIEdQSU8gWzE0XSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KLSNkZWZpbmUgUFdFUl9HUElPMTUJUFdFUl9HUElPICgxNSkJLyogR1BJTyBbMTVdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX1JUQwkweDgwMDAwMDAwCS8qIFJUQyBhbGFybSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KLQogLyoKICAqIFNTUCBTZXJpYWwgUG9ydCBSZWdpc3RlcnMgLSBzZWUgaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3JlZ3Mtc3NwLmgKICAqLwpAQCAtMTM2MCw1MiArODM3LDkgQEAKICAqLwogCiAvKgotICogQ29yZSBDbG9jaworICogQ29yZSBDbG9jayAtIHNlZSBpbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LXJlZ3MuaAogICovCiAKLSNkZWZpbmUgQ0NDUgkJX19SRUcoMHg0MTMwMDAwMCkgIC8qIENvcmUgQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBDS0VOCQlfX1JFRygweDQxMzAwMDA0KSAgLyogQ2xvY2sgRW5hYmxlIFJlZ2lzdGVyICovCi0jZGVmaW5lIE9TQ0MJCV9fUkVHKDB4NDEzMDAwMDgpICAvKiBPc2NpbGxhdG9yIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KLSNkZWZpbmUgQ0NTUgkJX19SRUcoMHg0MTMwMDAwQykgIC8qIENvcmUgQ2xvY2sgU3RhdHVzIFJlZ2lzdGVyICovCi0KLSNkZWZpbmUgQ0NDUl9OX01BU0sJMHgwMzgwCQkvKiBSdW4gTW9kZSBGcmVxdWVuY3kgdG8gVHVyYm8gTW9kZSBGcmVxdWVuY3kgTXVsdGlwbGllciAqLwotI2RlZmluZSBDQ0NSX01fTUFTSwkweDAwNjAJCS8qIE1lbW9yeSBGcmVxdWVuY3kgdG8gUnVuIE1vZGUgRnJlcXVlbmN5IE11bHRpcGxpZXIgKi8KLSNkZWZpbmUgQ0NDUl9MX01BU0sJMHgwMDFmCQkvKiBDcnlzdGFsIEZyZXF1ZW5jeSB0byBNZW1vcnkgRnJlcXVlbmN5IE11bHRpcGxpZXIgKi8KLQotI2RlZmluZSBDS0VOX0FDOTdDT05GICAgKDMxKSAgICAvKiBBQzk3IENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAqLwotI2RlZmluZSBDS0VOX0NBTUVSQQkoMjQpCS8qIENhbWVyYSBJbnRlcmZhY2UgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fU1NQMQkoMjMpCS8qIFNTUDEgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9NRU1DCSgyMikJLyogTWVtb3J5IENvbnRyb2xsZXIgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fTUVNU1RLCSgyMSkJLyogTWVtb3J5IFN0aWNrIEhvc3QgQ29udHJvbGxlciAqLwotI2RlZmluZSBDS0VOX0lNCQkoMjApCS8qIEludGVybmFsIE1lbW9yeSBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9LRVlQQUQJKDE5KQkvKiBLZXlwYWQgSW50ZXJmYWNlIENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX1VTSU0JKDE4KQkvKiBVU0lNIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fTVNMCSgxNykJLyogTVNMIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fTENECSgxNikJLyogTENEIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fUFdSSTJDCSgxNSkJLyogUFdSIEkyQyBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0kyQwkoMTQpCS8qIEkyQyBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0ZJQ1AJKDEzKQkvKiBGSUNQIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fTU1DCSgxMikJLyogTU1DIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fVVNCCSgxMSkJLyogVVNCIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fQVNTUAkoMTApCS8qIEFTU1AgKFNTUDMpIENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX1VTQkhPU1QJKDEwKQkvKiBVU0IgSG9zdCBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX09TVElNRVIJKDkpCS8qIE9TIFRpbWVyIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fTlNTUAkoOSkJLyogTlNTUCAoU1NQMikgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fSTJTCSg4KQkvKiBJMlMgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9CVFVBUlQJKDcpCS8qIEJUVUFSVCBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0ZGVUFSVAkoNikJLyogRkZVQVJUIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fU1RVQVJUCSg1KQkvKiBTVFVBUlQgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9IV1VBUlQJKDQpCS8qIEhXVUFSVCBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX1NTUDMJKDQpCS8qIFNTUDMgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9TU1AJKDMpCS8qIFNTUCBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX1NTUDIJKDMpCS8qIFNTUDIgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9BQzk3CSgyKQkvKiBBQzk3IFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fUFdNMQkoMSkJLyogUFdNMSBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9QV00wCSgwKQkvKiBQV00wIENsb2NrIEVuYWJsZSAqLwotCi0jZGVmaW5lIE9TQ0NfT09OCSgxIDw8IDEpCS8qIDMyLjc2OGtIeiBPT04gKHdyaXRlLW9uY2Ugb25seSBiaXQpICovCi0jZGVmaW5lIE9TQ0NfT09LCSgxIDw8IDApCS8qIDMyLjc2OGtIeiBPT0sgKHJlYWQtb25seSBiaXQpICovCi0KICNpZmRlZiBDT05GSUdfUFhBMjd4CiAKIC8qIENhbWVyYSBJbnRlcmZhY2UgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyNXgtdWRjLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMjV4LXVkYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MDMwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMjV4LXVkYy5oCkBAIC0wLDAgKzEsMTYzIEBACisjaWZuZGVmIF9BU01fQVJDSF9QWEEyNVhfVURDX0gKKyNkZWZpbmUgX0FTTV9BUkNIX1BYQTI1WF9VRENfSAorCisjaWZkZWYgX0FTTV9BUkNIX1BYQTI3WF9VRENfSAorI2Vycm9yIFlvdSBjYW4ndCBpbmNsdWRlIGJvdGggUFhBMjV4IGFuZCBQWEEyN3ggVURDIHN1cHBvcnQKKyNlbmRpZgorCisjZGVmaW5lIFVEQ19SRVMxCV9fUkVHKDB4NDA2MDAwMDQpICAvKiBVREMgVW5kb2N1bWVudGVkIC0gUmVzZXJ2ZWQxICovCisjZGVmaW5lIFVEQ19SRVMyCV9fUkVHKDB4NDA2MDAwMDgpICAvKiBVREMgVW5kb2N1bWVudGVkIC0gUmVzZXJ2ZWQyICovCisjZGVmaW5lIFVEQ19SRVMzCV9fUkVHKDB4NDA2MDAwMEMpICAvKiBVREMgVW5kb2N1bWVudGVkIC0gUmVzZXJ2ZWQzICovCisKKyNkZWZpbmUgVURDQ1IJCV9fUkVHKDB4NDA2MDAwMDApICAvKiBVREMgQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBVRENDUl9VREUJKDEgPDwgMCkJLyogVURDIGVuYWJsZSAqLworI2RlZmluZSBVRENDUl9VREEJKDEgPDwgMSkJLyogVURDIGFjdGl2ZSAqLworI2RlZmluZSBVRENDUl9SU00JKDEgPDwgMikJLyogRGV2aWNlIHJlc3VtZSAqLworI2RlZmluZSBVRENDUl9SRVNJUgkoMSA8PCAzKQkvKiBSZXN1bWUgaW50ZXJydXB0IHJlcXVlc3QgKi8KKyNkZWZpbmUgVURDQ1JfU1VTSVIJKDEgPDwgNCkJLyogU3VzcGVuZCBpbnRlcnJ1cHQgcmVxdWVzdCAqLworI2RlZmluZSBVRENDUl9TUk0JKDEgPDwgNSkJLyogU3VzcGVuZC9yZXN1bWUgaW50ZXJydXB0IG1hc2sgKi8KKyNkZWZpbmUgVURDQ1JfUlNUSVIJKDEgPDwgNikJLyogUmVzZXQgaW50ZXJydXB0IHJlcXVlc3QgKi8KKyNkZWZpbmUgVURDQ1JfUkVNCSgxIDw8IDcpCS8qIFJlc2V0IGludGVycnVwdCBtYXNrICovCisKKyNkZWZpbmUgVURDQ1MwCQlfX1JFRygweDQwNjAwMDEwKSAgLyogVURDIEVuZHBvaW50IDAgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1MwX09QUgkoMSA8PCAwKQkvKiBPVVQgcGFja2V0IHJlYWR5ICovCisjZGVmaW5lIFVEQ0NTMF9JUFIJKDEgPDwgMSkJLyogSU4gcGFja2V0IHJlYWR5ICovCisjZGVmaW5lIFVEQ0NTMF9GVEYJKDEgPDwgMikJLyogRmx1c2ggVHggRklGTyAqLworI2RlZmluZSBVRENDUzBfRFJXRgkoMSA8PCAzKQkvKiBEZXZpY2UgcmVtb3RlIHdha2V1cCBmZWF0dXJlICovCisjZGVmaW5lIFVEQ0NTMF9TU1QJKDEgPDwgNCkJLyogU2VudCBzdGFsbCAqLworI2RlZmluZSBVRENDUzBfRlNUCSgxIDw8IDUpCS8qIEZvcmNlIHN0YWxsICovCisjZGVmaW5lIFVEQ0NTMF9STkUJKDEgPDwgNikJLyogUmVjZWl2ZSBGSUZPIG5vIGVtcHR5ICovCisjZGVmaW5lIFVEQ0NTMF9TQQkoMSA8PCA3KQkvKiBTZXR1cCBhY3RpdmUgKi8KKworLyogQnVsayBJTiAtIEVuZHBvaW50IDEsNiwxMSAqLworI2RlZmluZSBVRENDUzEJCV9fUkVHKDB4NDA2MDAwMTQpICAvKiBVREMgRW5kcG9pbnQgMSAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTNgkJX19SRUcoMHg0MDYwMDAyOCkgIC8qIFVEQyBFbmRwb2ludCA2IChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1MxMQkJX19SRUcoMHg0MDYwMDAzQykgIC8qIFVEQyBFbmRwb2ludCAxMSAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisKKyNkZWZpbmUgVURDQ1NfQklfVEZTCSgxIDw8IDApCS8qIFRyYW5zbWl0IEZJRk8gc2VydmljZSAqLworI2RlZmluZSBVRENDU19CSV9UUEMJKDEgPDwgMSkJLyogVHJhbnNtaXQgcGFja2V0IGNvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTX0JJX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUeCBGSUZPICovCisjZGVmaW5lIFVEQ0NTX0JJX1RVUgkoMSA8PCAzKQkvKiBUcmFuc21pdCBGSUZPIHVuZGVycnVuICovCisjZGVmaW5lIFVEQ0NTX0JJX1NTVAkoMSA8PCA0KQkvKiBTZW50IHN0YWxsICovCisjZGVmaW5lIFVEQ0NTX0JJX0ZTVAkoMSA8PCA1KQkvKiBGb3JjZSBzdGFsbCAqLworI2RlZmluZSBVRENDU19CSV9UU1AJKDEgPDwgNykJLyogVHJhbnNtaXQgc2hvcnQgcGFja2V0ICovCisKKy8qIEJ1bGsgT1VUIC0gRW5kcG9pbnQgMiw3LDEyICovCisjZGVmaW5lIFVEQ0NTMgkJX19SRUcoMHg0MDYwMDAxOCkgIC8qIFVEQyBFbmRwb2ludCAyIChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTNwkJX19SRUcoMHg0MDYwMDAyQykgIC8qIFVEQyBFbmRwb2ludCA3IChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTMTIJCV9fUkVHKDB4NDA2MDAwNDApICAvKiBVREMgRW5kcG9pbnQgMTIgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBVRENDU19CT19SRlMJKDEgPDwgMCkJLyogUmVjZWl2ZSBGSUZPIHNlcnZpY2UgKi8KKyNkZWZpbmUgVURDQ1NfQk9fUlBDCSgxIDw8IDEpCS8qIFJlY2VpdmUgcGFja2V0IGNvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTX0JPX0RNRQkoMSA8PCAzKQkvKiBETUEgZW5hYmxlICovCisjZGVmaW5lIFVEQ0NTX0JPX1NTVAkoMSA8PCA0KQkvKiBTZW50IHN0YWxsICovCisjZGVmaW5lIFVEQ0NTX0JPX0ZTVAkoMSA8PCA1KQkvKiBGb3JjZSBzdGFsbCAqLworI2RlZmluZSBVRENDU19CT19STkUJKDEgPDwgNikJLyogUmVjZWl2ZSBGSUZPIG5vdCBlbXB0eSAqLworI2RlZmluZSBVRENDU19CT19SU1AJKDEgPDwgNykJLyogUmVjZWl2ZSBzaG9ydCBwYWNrZXQgKi8KKworLyogSXNvY2hyb25vdXMgSU4gLSBFbmRwb2ludCAzLDgsMTMgKi8KKyNkZWZpbmUgVURDQ1MzCQlfX1JFRygweDQwNjAwMDFDKSAgLyogVURDIEVuZHBvaW50IDMgKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBVRENDUzgJCV9fUkVHKDB4NDA2MDAwMzApICAvKiBVREMgRW5kcG9pbnQgOCAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTMTMJCV9fUkVHKDB4NDA2MDAwNDQpICAvKiBVREMgRW5kcG9pbnQgMTMgKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworCisjZGVmaW5lIFVEQ0NTX0lJX1RGUwkoMSA8PCAwKQkvKiBUcmFuc21pdCBGSUZPIHNlcnZpY2UgKi8KKyNkZWZpbmUgVURDQ1NfSUlfVFBDCSgxIDw8IDEpCS8qIFRyYW5zbWl0IHBhY2tldCBjb21wbGV0ZSAqLworI2RlZmluZSBVRENDU19JSV9GVEYJKDEgPDwgMikJLyogRmx1c2ggVHggRklGTyAqLworI2RlZmluZSBVRENDU19JSV9UVVIJKDEgPDwgMykJLyogVHJhbnNtaXQgRklGTyB1bmRlcnJ1biAqLworI2RlZmluZSBVRENDU19JSV9UU1AJKDEgPDwgNykJLyogVHJhbnNtaXQgc2hvcnQgcGFja2V0ICovCisKKy8qIElzb2Nocm9ub3VzIE9VVCAtIEVuZHBvaW50IDQsOSwxNCAqLworI2RlZmluZSBVRENDUzQJCV9fUkVHKDB4NDA2MDAwMjApICAvKiBVREMgRW5kcG9pbnQgNCAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBVRENDUzkJCV9fUkVHKDB4NDA2MDAwMzQpICAvKiBVREMgRW5kcG9pbnQgOSAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBVRENDUzE0CQlfX1JFRygweDQwNjAwMDQ4KSAgLyogVURDIEVuZHBvaW50IDE0IChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisKKyNkZWZpbmUgVURDQ1NfSU9fUkZTCSgxIDw8IDApCS8qIFJlY2VpdmUgRklGTyBzZXJ2aWNlICovCisjZGVmaW5lIFVEQ0NTX0lPX1JQQwkoMSA8PCAxKQkvKiBSZWNlaXZlIHBhY2tldCBjb21wbGV0ZSAqLworI2RlZmluZSBVRENDU19JT19ST0YJKDEgPDwgMikJLyogUmVjZWl2ZSBvdmVyZmxvdyAqLworI2RlZmluZSBVRENDU19JT19ETUUJKDEgPDwgMykJLyogRE1BIGVuYWJsZSAqLworI2RlZmluZSBVRENDU19JT19STkUJKDEgPDwgNikJLyogUmVjZWl2ZSBGSUZPIG5vdCBlbXB0eSAqLworI2RlZmluZSBVRENDU19JT19SU1AJKDEgPDwgNykJLyogUmVjZWl2ZSBzaG9ydCBwYWNrZXQgKi8KKworLyogSW50ZXJydXB0IElOIC0gRW5kcG9pbnQgNSwxMCwxNSAqLworI2RlZmluZSBVRENDUzUJCV9fUkVHKDB4NDA2MDAwMjQpICAvKiBVREMgRW5kcG9pbnQgNSAoSW50ZXJydXB0KSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBVRENDUzEwCQlfX1JFRygweDQwNjAwMDM4KSAgLyogVURDIEVuZHBvaW50IDEwIChJbnRlcnJ1cHQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTMTUJCV9fUkVHKDB4NDA2MDAwNEMpICAvKiBVREMgRW5kcG9pbnQgMTUgKEludGVycnVwdCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBVRENDU19JTlRfVEZTCSgxIDw8IDApCS8qIFRyYW5zbWl0IEZJRk8gc2VydmljZSAqLworI2RlZmluZSBVRENDU19JTlRfVFBDCSgxIDw8IDEpCS8qIFRyYW5zbWl0IHBhY2tldCBjb21wbGV0ZSAqLworI2RlZmluZSBVRENDU19JTlRfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFR4IEZJRk8gKi8KKyNkZWZpbmUgVURDQ1NfSU5UX1RVUgkoMSA8PCAzKQkvKiBUcmFuc21pdCBGSUZPIHVuZGVycnVuICovCisjZGVmaW5lIFVEQ0NTX0lOVF9TU1QJKDEgPDwgNCkJLyogU2VudCBzdGFsbCAqLworI2RlZmluZSBVRENDU19JTlRfRlNUCSgxIDw8IDUpCS8qIEZvcmNlIHN0YWxsICovCisjZGVmaW5lIFVEQ0NTX0lOVF9UU1AJKDEgPDwgNykJLyogVHJhbnNtaXQgc2hvcnQgcGFja2V0ICovCisKKyNkZWZpbmUgVUZOUkgJCV9fUkVHKDB4NDA2MDAwNjApICAvKiBVREMgRnJhbWUgTnVtYmVyIFJlZ2lzdGVyIEhpZ2ggKi8KKyNkZWZpbmUgVUZOUkwJCV9fUkVHKDB4NDA2MDAwNjQpICAvKiBVREMgRnJhbWUgTnVtYmVyIFJlZ2lzdGVyIExvdyAqLworI2RlZmluZSBVQkNSMgkJX19SRUcoMHg0MDYwMDA2OCkgIC8qIFVEQyBCeXRlIENvdW50IFJlZyAyICovCisjZGVmaW5lIFVCQ1I0CQlfX1JFRygweDQwNjAwMDZjKSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDQgKi8KKyNkZWZpbmUgVUJDUjcJCV9fUkVHKDB4NDA2MDAwNzApICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgNyAqLworI2RlZmluZSBVQkNSOQkJX19SRUcoMHg0MDYwMDA3NCkgIC8qIFVEQyBCeXRlIENvdW50IFJlZyA5ICovCisjZGVmaW5lIFVCQ1IxMgkJX19SRUcoMHg0MDYwMDA3OCkgIC8qIFVEQyBCeXRlIENvdW50IFJlZyAxMiAqLworI2RlZmluZSBVQkNSMTQJCV9fUkVHKDB4NDA2MDAwN2MpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgMTQgKi8KKyNkZWZpbmUgVUREUjAJCV9fUkVHKDB4NDA2MDAwODApICAvKiBVREMgRW5kcG9pbnQgMCBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFIxCQlfX1JFRygweDQwNjAwMTAwKSAgLyogVURDIEVuZHBvaW50IDEgRGF0YSBSZWdpc3RlciAqLworI2RlZmluZSBVRERSMgkJX19SRUcoMHg0MDYwMDE4MCkgIC8qIFVEQyBFbmRwb2ludCAyIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjMJCV9fUkVHKDB4NDA2MDAyMDApICAvKiBVREMgRW5kcG9pbnQgMyBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFI0CQlfX1JFRygweDQwNjAwNDAwKSAgLyogVURDIEVuZHBvaW50IDQgRGF0YSBSZWdpc3RlciAqLworI2RlZmluZSBVRERSNQkJX19SRUcoMHg0MDYwMDBBMCkgIC8qIFVEQyBFbmRwb2ludCA1IERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjYJCV9fUkVHKDB4NDA2MDA2MDApICAvKiBVREMgRW5kcG9pbnQgNiBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFI3CQlfX1JFRygweDQwNjAwNjgwKSAgLyogVURDIEVuZHBvaW50IDcgRGF0YSBSZWdpc3RlciAqLworI2RlZmluZSBVRERSOAkJX19SRUcoMHg0MDYwMDcwMCkgIC8qIFVEQyBFbmRwb2ludCA4IERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjkJCV9fUkVHKDB4NDA2MDA5MDApICAvKiBVREMgRW5kcG9pbnQgOSBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFIxMAkJX19SRUcoMHg0MDYwMDBDMCkgIC8qIFVEQyBFbmRwb2ludCAxMCBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFIxMQkJX19SRUcoMHg0MDYwMEIwMCkgIC8qIFVEQyBFbmRwb2ludCAxMSBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFIxMgkJX19SRUcoMHg0MDYwMEI4MCkgIC8qIFVEQyBFbmRwb2ludCAxMiBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFIxMwkJX19SRUcoMHg0MDYwMEMwMCkgIC8qIFVEQyBFbmRwb2ludCAxMyBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFIxNAkJX19SRUcoMHg0MDYwMEUwMCkgIC8qIFVEQyBFbmRwb2ludCAxNCBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFIxNQkJX19SRUcoMHg0MDYwMDBFMCkgIC8qIFVEQyBFbmRwb2ludCAxNSBEYXRhIFJlZ2lzdGVyICovCisKKyNkZWZpbmUgVUlDUjAJCV9fUkVHKDB4NDA2MDAwNTApICAvKiBVREMgSW50ZXJydXB0IENvbnRyb2wgUmVnaXN0ZXIgMCAqLworCisjZGVmaW5lIFVJQ1IwX0lNMAkoMSA8PCAwKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAwICovCisjZGVmaW5lIFVJQ1IwX0lNMQkoMSA8PCAxKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxICovCisjZGVmaW5lIFVJQ1IwX0lNMgkoMSA8PCAyKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAyICovCisjZGVmaW5lIFVJQ1IwX0lNMwkoMSA8PCAzKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAzICovCisjZGVmaW5lIFVJQ1IwX0lNNAkoMSA8PCA0KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCA0ICovCisjZGVmaW5lIFVJQ1IwX0lNNQkoMSA8PCA1KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCA1ICovCisjZGVmaW5lIFVJQ1IwX0lNNgkoMSA8PCA2KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCA2ICovCisjZGVmaW5lIFVJQ1IwX0lNNwkoMSA8PCA3KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCA3ICovCisKKyNkZWZpbmUgVUlDUjEJCV9fUkVHKDB4NDA2MDAwNTQpICAvKiBVREMgSW50ZXJydXB0IENvbnRyb2wgUmVnaXN0ZXIgMSAqLworCisjZGVmaW5lIFVJQ1IxX0lNOAkoMSA8PCAwKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCA4ICovCisjZGVmaW5lIFVJQ1IxX0lNOQkoMSA8PCAxKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCA5ICovCisjZGVmaW5lIFVJQ1IxX0lNMTAJKDEgPDwgMikJLyogSW50ZXJydXB0IG1hc2sgZXAgMTAgKi8KKyNkZWZpbmUgVUlDUjFfSU0xMQkoMSA8PCAzKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxMSAqLworI2RlZmluZSBVSUNSMV9JTTEyCSgxIDw8IDQpCS8qIEludGVycnVwdCBtYXNrIGVwIDEyICovCisjZGVmaW5lIFVJQ1IxX0lNMTMJKDEgPDwgNSkJLyogSW50ZXJydXB0IG1hc2sgZXAgMTMgKi8KKyNkZWZpbmUgVUlDUjFfSU0xNAkoMSA8PCA2KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxNCAqLworI2RlZmluZSBVSUNSMV9JTTE1CSgxIDw8IDcpCS8qIEludGVycnVwdCBtYXNrIGVwIDE1ICovCisKKyNkZWZpbmUgVVNJUjAJCV9fUkVHKDB4NDA2MDAwNTgpICAvKiBVREMgU3RhdHVzIEludGVycnVwdCBSZWdpc3RlciAwICovCisKKyNkZWZpbmUgVVNJUjBfSVIwCSgxIDw8IDApCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDAgKi8KKyNkZWZpbmUgVVNJUjBfSVIxCSgxIDw8IDEpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDEgKi8KKyNkZWZpbmUgVVNJUjBfSVIyCSgxIDw8IDIpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDIgKi8KKyNkZWZpbmUgVVNJUjBfSVIzCSgxIDw8IDMpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDMgKi8KKyNkZWZpbmUgVVNJUjBfSVI0CSgxIDw8IDQpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDQgKi8KKyNkZWZpbmUgVVNJUjBfSVI1CSgxIDw8IDUpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDUgKi8KKyNkZWZpbmUgVVNJUjBfSVI2CSgxIDw8IDYpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDYgKi8KKyNkZWZpbmUgVVNJUjBfSVI3CSgxIDw8IDcpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDcgKi8KKworI2RlZmluZSBVU0lSMQkJX19SRUcoMHg0MDYwMDA1QykgIC8qIFVEQyBTdGF0dXMgSW50ZXJydXB0IFJlZ2lzdGVyIDEgKi8KKworI2RlZmluZSBVU0lSMV9JUjgJKDEgPDwgMCkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgOCAqLworI2RlZmluZSBVU0lSMV9JUjkJKDEgPDwgMSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgOSAqLworI2RlZmluZSBVU0lSMV9JUjEwCSgxIDw8IDIpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDEwICovCisjZGVmaW5lIFVTSVIxX0lSMTEJKDEgPDwgMykJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTEgKi8KKyNkZWZpbmUgVVNJUjFfSVIxMgkoMSA8PCA0KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxMiAqLworI2RlZmluZSBVU0lSMV9JUjEzCSgxIDw8IDUpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDEzICovCisjZGVmaW5lIFVTSVIxX0lSMTQJKDEgPDwgNikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTQgKi8KKyNkZWZpbmUgVVNJUjFfSVIxNQkoMSA8PCA3KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxNSAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyN3gtdWRjLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMjd4LXVkYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjMWNmN2QwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTI3eC11ZGMuaApAQCAtMCwwICsxLDI1NyBAQAorI2lmbmRlZiBfQVNNX0FSQ0hfUFhBMjdYX1VEQ19ICisjZGVmaW5lIF9BU01fQVJDSF9QWEEyN1hfVURDX0gKKworI2lmZGVmIF9BU01fQVJDSF9QWEEyNVhfVURDX0gKKyNlcnJvciBZb3UgY2Fubm90IGluY2x1ZGUgYm90aCBQWEEyNXggYW5kIFBYQTI3eCBVREMgc3VwcG9ydAorI2VuZGlmCisKKyNkZWZpbmUgVURDQ1IgICAgICAgICAgIF9fUkVHKDB4NDA2MDAwMDApIC8qIFVEQyBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NSX09FTgkoMSA8PCAzMSkJLyogT24tdGhlLUdvIEVuYWJsZSAqLworI2RlZmluZSBVRENDUl9BQUxUSE5QCSgxIDw8IDMwKQkvKiBBLWRldmljZSBBbHRlcm5hdGUgSG9zdCBOZWdvdGlhdGlvbgorCQkJCQkgICBQcm90b2NvbCBQb3J0IFN1cHBvcnQgKi8KKyNkZWZpbmUgVURDQ1JfQUhOUAkoMSA8PCAyOSkJLyogQS1kZXZpY2UgSG9zdCBOZWdvdGlhdGlvbiBQcm90b2NvbAorCQkJCQkgICBTdXBwb3J0ICovCisjZGVmaW5lIFVEQ0NSX0JITlAJKDEgPDwgMjgpCS8qIEItZGV2aWNlIEhvc3QgTmVnb3RpYXRpb24gUHJvdG9jb2wKKwkJCQkJICAgRW5hYmxlICovCisjZGVmaW5lIFVEQ0NSX0RXUkUJKDEgPDwgMTYpCS8qIERldmljZSBSZW1vdGUgV2FrZS11cCBFbmFibGUgKi8KKyNkZWZpbmUgVURDQ1JfQUNOCSgweDAzIDw8IDExKQkvKiBBY3RpdmUgVURDIGNvbmZpZ3VyYXRpb24gTnVtYmVyICovCisjZGVmaW5lIFVEQ0NSX0FDTl9TCTExCisjZGVmaW5lIFVEQ0NSX0FJTgkoMHgwNyA8PCA4KQkvKiBBY3RpdmUgVURDIGludGVyZmFjZSBOdW1iZXIgKi8KKyNkZWZpbmUgVURDQ1JfQUlOX1MJOAorI2RlZmluZSBVRENDUl9BQUlTTgkoMHgwNyA8PCA1KQkvKiBBY3RpdmUgVURDIEFsdGVybmF0ZSBJbnRlcmZhY2UKKwkJCQkJICAgU2V0dGluZyBOdW1iZXIgKi8KKyNkZWZpbmUgVURDQ1JfQUFJU05fUwk1CisjZGVmaW5lIFVEQ0NSX1NNQUMJKDEgPDwgNCkJLyogU3dpdGNoIEVuZHBvaW50IE1lbW9yeSB0byBBY3RpdmUKKwkJCQkJICAgQ29uZmlndXJhdGlvbiAqLworI2RlZmluZSBVRENDUl9FTUNFCSgxIDw8IDMpCS8qIEVuZHBvaW50IE1lbW9yeSBDb25maWd1cmF0aW9uCisJCQkJCSAgIEVycm9yICovCisjZGVmaW5lIFVEQ0NSX1VEUgkoMSA8PCAyKQkvKiBVREMgUmVzdW1lICovCisjZGVmaW5lIFVEQ0NSX1VEQQkoMSA8PCAxKQkvKiBVREMgQWN0aXZlICovCisjZGVmaW5lIFVEQ0NSX1VERQkoMSA8PCAwKQkvKiBVREMgRW5hYmxlICovCisKKyNkZWZpbmUgVURDSUNSMCAgICAgICAgIF9fUkVHKDB4NDA2MDAwMDQpIC8qIFVEQyBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlcjAgKi8KKyNkZWZpbmUgVURDSUNSMSAgICAgICAgIF9fUkVHKDB4NDA2MDAwMDgpIC8qIFVEQyBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlcjEgKi8KKyNkZWZpbmUgVURDSUNSX0ZJRk9FUlIJKDEgPDwgMSkJLyogRklGTyBFcnJvciBpbnRlcnJ1cHQgZm9yIEVQICovCisjZGVmaW5lIFVEQ0lDUl9QS1RDT01QTCAoMSA8PCAwKQkvKiBQYWNrZXQgQ29tcGxldGUgaW50ZXJydXB0IGZvciBFUCAqLworCisjZGVmaW5lIFVEQ19JTlRfRklGT0VSUk9SICAoMHgyKQorI2RlZmluZSBVRENfSU5UX1BBQ0tFVENNUCAgKDB4MSkKKworI2RlZmluZSBVRENJQ1JfSU5UKG4saW50cikgKCgoaW50cikgJiAweDAzKSA8PCAoKChuKSAmIDB4MEYpICogMikpCisjZGVmaW5lIFVEQ0lDUjFfSUVDQwkoMSA8PCAzMSkJLyogSW50RW4gLSBDb25maWd1cmF0aW9uIENoYW5nZSAqLworI2RlZmluZSBVRENJQ1IxX0lFU09GCSgxIDw8IDMwKQkvKiBJbnRFbiAtIFN0YXJ0IG9mIEZyYW1lICovCisjZGVmaW5lIFVEQ0lDUjFfSUVSVQkoMSA8PCAyOSkJLyogSW50RW4gLSBSZXN1bWUgKi8KKyNkZWZpbmUgVURDSUNSMV9JRVNVCSgxIDw8IDI4KQkvKiBJbnRFbiAtIFN1c3BlbmQgKi8KKyNkZWZpbmUgVURDSUNSMV9JRVJTCSgxIDw8IDI3KQkvKiBJbnRFbiAtIFJlc2V0ICovCisKKyNkZWZpbmUgVURDSVNSMCAgICAgICAgIF9fUkVHKDB4NDA2MDAwMEMpIC8qIFVEQyBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyIDAgKi8KKyNkZWZpbmUgVURDSVNSMSAgICAgICAgIF9fUkVHKDB4NDA2MDAwMTApIC8qIFVEQyBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyIDEgKi8KKyNkZWZpbmUgVURDSVNSX0lOVChuLGludHIpICgoKGludHIpICYgMHgwMykgPDwgKCgobikgJiAweDBGKSAqIDIpKQorI2RlZmluZSBVRENJU1IxX0lSQ0MJKDEgPDwgMzEpCS8qIEludFJlcSAtIENvbmZpZ3VyYXRpb24gQ2hhbmdlICovCisjZGVmaW5lIFVEQ0lTUjFfSVJTT0YJKDEgPDwgMzApCS8qIEludFJlcSAtIFN0YXJ0IG9mIEZyYW1lICovCisjZGVmaW5lIFVEQ0lTUjFfSVJSVQkoMSA8PCAyOSkJLyogSW50UmVxIC0gUmVzdW1lICovCisjZGVmaW5lIFVEQ0lTUjFfSVJTVQkoMSA8PCAyOCkJLyogSW50UmVxIC0gU3VzcGVuZCAqLworI2RlZmluZSBVRENJU1IxX0lSUlMJKDEgPDwgMjcpCS8qIEludFJlcSAtIFJlc2V0ICovCisKKyNkZWZpbmUgVURDRk5SICAgICAgICAgIF9fUkVHKDB4NDA2MDAwMTQpIC8qIFVEQyBGcmFtZSBOdW1iZXIgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDT1RHSUNSCV9fUkVHKDB4NDA2MDAwMTgpIC8qIFVEQyBPbi1UaGUtR28gaW50ZXJydXB0IGNvbnRyb2wgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFU0YJKDEgPDwgMjQpCS8qIE9URyBTRVRfRkVBVFVSRSBjb21tYW5kIHJlY3ZkICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVhSCSgxIDw8IDE3KQkvKiBFeHRyYSBUcmFuc2NpZXZlciBJbnRlcnJ1cHQKKwkJCQkJICAgUmlzaW5nIEVkZ2UgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVYRgkoMSA8PCAxNikJLyogRXh0cmEgVHJhbnNjaWV2ZXIgSW50ZXJydXB0CisJCQkJCSAgIEZhbGxpbmcgRWRnZSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVZWNDBSICgxIDw8IDkpCS8qIE9URyBWYnVzIFZhbGlkIDQuMFYgUmlzaW5nIEVkZ2UKKwkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVWVjQwRiAoMSA8PCA4KQkvKiBPVEcgVmJ1cyBWYWxpZCA0LjBWIEZhbGxpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVZWNDRSICgxIDw8IDcpCS8qIE9URyBWYnVzIFZhbGlkIDQuNFYgUmlzaW5nIEVkZ2UKKwkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVWVjQ0RiAoMSA8PCA2KQkvKiBPVEcgVmJ1cyBWYWxpZCA0LjRWIEZhbGxpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVNWUgkoMSA8PCA1KQkvKiBPVEcgU2Vzc2lvbiBWYWxpZCBSaXNpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVNWRgkoMSA8PCA0KQkvKiBPVEcgU2Vzc2lvbiBWYWxpZCBGYWxsaW5nIEVkZ2UKKwkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVTRFIJKDEgPDwgMykJLyogT1RHIEEtRGV2aWNlIFNSUCBEZXRlY3QgUmlzaW5nCisJCQkJCSAgIEVkZ2UgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVTREYJKDEgPDwgMikJLyogT1RHIEEtRGV2aWNlIFNSUCBEZXRlY3QgRmFsbGluZworCQkJCQkgICBFZGdlIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFSURSCSgxIDw8IDEpCS8qIE9URyBJRCBDaGFuZ2UgUmlzaW5nIEVkZ2UKKwkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVJREYJKDEgPDwgMCkJLyogT1RHIElEIENoYW5nZSBGYWxsaW5nIEVkZ2UKKwkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLworCisjZGVmaW5lIFVQMk9DUgkJICBfX1JFRygweDQwNjAwMDIwKSAgLyogVVNCIFBvcnQgMiBPdXRwdXQgQ29udHJvbCByZWdpc3RlciAqLworI2RlZmluZSBVUDNPQ1IJCSAgX19SRUcoMHg0MDYwMDAyNCkgIC8qIFVTQiBQb3J0IDIgT3V0cHV0IENvbnRyb2wgcmVnaXN0ZXIgKi8KKworI2RlZmluZSBVUDJPQ1JfQ1BWRU4JKDEgPDwgMCkJLyogQ2hhcmdlIFB1bXAgVmJ1cyBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0NQVlBFCSgxIDw8IDEpCS8qIENoYXJnZSBQdW1wIFZidXMgUHVsc2UgRW5hYmxlICovCisjZGVmaW5lIFVQMk9DUl9EUFBERQkoMSA8PCAyKQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBEKyBQdWxsIERvd24gRW5hYmxlICovCisjZGVmaW5lIFVQMk9DUl9ETVBERQkoMSA8PCAzKQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBELSBQdWxsIERvd24gRW5hYmxlICovCisjZGVmaW5lIFVQMk9DUl9EUFBVRQkoMSA8PCA0KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBEKyBQdWxsIFVwIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfRE1QVUUJKDEgPDwgNSkJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgRC0gUHVsbCBVcCBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0RQUFVCRQkoMSA8PCA2KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBEKyBQdWxsIFVwIEJ5cGFzcyBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0RNUFVCRQkoMSA8PCA3KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBELSBQdWxsIFVwIEJ5cGFzcyBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0VYU1AJCSgxIDw8IDgpCS8qIEV4dGVybmFsIFRyYW5zY2VpdmVyIFNwZWVkIENvbnRyb2wgKi8KKyNkZWZpbmUgVVAyT0NSX0VYU1VTCSgxIDw8IDkpCS8qIEV4dGVybmFsIFRyYW5zY2VpdmVyIFNwZWVkIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfSURPTgkJKDEgPDwgMTApCS8qIE9URyBJRCBSZWFkIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfSFhTCQkoMSA8PCAxNikJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgT3V0cHV0IFNlbGVjdCAqLworI2RlZmluZSBVUDJPQ1JfSFhPRQkJKDEgPDwgMTcpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIE91dHB1dCBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX1NFT1MJCSgxIDw8IDI0KQkvKiBTaW5nbGUtRW5kZWQgT3V0cHV0IFNlbGVjdCAqLworCisjZGVmaW5lIFVEQ0NTTih4KQlfX1JFRzIoMHg0MDYwMDEwMCwgKHgpIDw8IDIpCisjZGVmaW5lIFVEQ0NTUjAgICAgICAgICBfX1JFRygweDQwNjAwMTAwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCAwICovCisjZGVmaW5lIFVEQ0NTUjBfU0EJKDEgPDwgNykJLyogU2V0dXAgQWN0aXZlICovCisjZGVmaW5lIFVEQ0NTUjBfUk5FCSgxIDw8IDYpCS8qIFJlY2VpdmUgRklGTyBOb3QgRW1wdHkgKi8KKyNkZWZpbmUgVURDQ1NSMF9GU1QJKDEgPDwgNSkJLyogRm9yY2UgU3RhbGwgKi8KKyNkZWZpbmUgVURDQ1NSMF9TU1QJKDEgPDwgNCkJLyogU2VudCBTdGFsbCAqLworI2RlZmluZSBVRENDU1IwX0RNRQkoMSA8PCAzKQkvKiBETUEgRW5hYmxlICovCisjZGVmaW5lIFVEQ0NTUjBfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFRyYW5zbWl0IEZJRk8gKi8KKyNkZWZpbmUgVURDQ1NSMF9JUFIJKDEgPDwgMSkJLyogSU4gUGFja2V0IFJlYWR5ICovCisjZGVmaW5lIFVEQ0NTUjBfT1BDCSgxIDw8IDApCS8qIE9VVCBQYWNrZXQgQ29tcGxldGUgKi8KKworI2RlZmluZSBVRENDU1JBICAgICAgICAgX19SRUcoMHg0MDYwMDEwNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgQSAqLworI2RlZmluZSBVRENDU1JCICAgICAgICAgX19SRUcoMHg0MDYwMDEwOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgQiAqLworI2RlZmluZSBVRENDU1JDICAgICAgICAgX19SRUcoMHg0MDYwMDEwQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgQyAqLworI2RlZmluZSBVRENDU1JEICAgICAgICAgX19SRUcoMHg0MDYwMDExMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRCAqLworI2RlZmluZSBVRENDU1JFICAgICAgICAgX19SRUcoMHg0MDYwMDExNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRSAqLworI2RlZmluZSBVRENDU1JGICAgICAgICAgX19SRUcoMHg0MDYwMDExOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRiAqLworI2RlZmluZSBVRENDU1JHICAgICAgICAgX19SRUcoMHg0MDYwMDExQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRyAqLworI2RlZmluZSBVRENDU1JIICAgICAgICAgX19SRUcoMHg0MDYwMDEyMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSCAqLworI2RlZmluZSBVRENDU1JJICAgICAgICAgX19SRUcoMHg0MDYwMDEyNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSSAqLworI2RlZmluZSBVRENDU1JKICAgICAgICAgX19SRUcoMHg0MDYwMDEyOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSiAqLworI2RlZmluZSBVRENDU1JLICAgICAgICAgX19SRUcoMHg0MDYwMDEyQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSyAqLworI2RlZmluZSBVRENDU1JMICAgICAgICAgX19SRUcoMHg0MDYwMDEzMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgTCAqLworI2RlZmluZSBVRENDU1JNICAgICAgICAgX19SRUcoMHg0MDYwMDEzNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgTSAqLworI2RlZmluZSBVRENDU1JOICAgICAgICAgX19SRUcoMHg0MDYwMDEzOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgTiAqLworI2RlZmluZSBVRENDU1JQICAgICAgICAgX19SRUcoMHg0MDYwMDEzQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUCAqLworI2RlZmluZSBVRENDU1JRICAgICAgICAgX19SRUcoMHg0MDYwMDE0MCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUSAqLworI2RlZmluZSBVRENDU1JSICAgICAgICAgX19SRUcoMHg0MDYwMDE0NCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUiAqLworI2RlZmluZSBVRENDU1JTICAgICAgICAgX19SRUcoMHg0MDYwMDE0OCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUyAqLworI2RlZmluZSBVRENDU1JUICAgICAgICAgX19SRUcoMHg0MDYwMDE0QykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgVCAqLworI2RlZmluZSBVRENDU1JVICAgICAgICAgX19SRUcoMHg0MDYwMDE1MCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgVSAqLworI2RlZmluZSBVRENDU1JWICAgICAgICAgX19SRUcoMHg0MDYwMDE1NCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgViAqLworI2RlZmluZSBVRENDU1JXICAgICAgICAgX19SRUcoMHg0MDYwMDE1OCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgVyAqLworI2RlZmluZSBVRENDU1JYICAgICAgICAgX19SRUcoMHg0MDYwMDE1QykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgWCAqLworCisjZGVmaW5lIFVEQ0NTUl9EUEUJKDEgPDwgOSkJLyogRGF0YSBQYWNrZXQgRXJyb3IgKi8KKyNkZWZpbmUgVURDQ1NSX0ZFRgkoMSA8PCA4KQkvKiBGbHVzaCBFbmRwb2ludCBGSUZPICovCisjZGVmaW5lIFVEQ0NTUl9TUAkoMSA8PCA3KQkvKiBTaG9ydCBQYWNrZXQgQ29udHJvbC9TdGF0dXMgKi8KKyNkZWZpbmUgVURDQ1NSX0JORQkoMSA8PCA2KQkvKiBCdWZmZXIgTm90IEVtcHR5IChJTiBlbmRwb2ludHMpICovCisjZGVmaW5lIFVEQ0NTUl9CTkYJKDEgPDwgNikJLyogQnVmZmVyIE5vdCBGdWxsIChPVVQgZW5kcG9pbnRzKSAqLworI2RlZmluZSBVRENDU1JfRlNUCSgxIDw8IDUpCS8qIEZvcmNlIFNUQUxMICovCisjZGVmaW5lIFVEQ0NTUl9TU1QJKDEgPDwgNCkJLyogU2VudCBTVEFMTCAqLworI2RlZmluZSBVRENDU1JfRE1FCSgxIDw8IDMpCS8qIERNQSBFbmFibGUgKi8KKyNkZWZpbmUgVURDQ1NSX1RSTgkoMSA8PCAyKQkvKiBUeC9SeCBOQUsgKi8KKyNkZWZpbmUgVURDQ1NSX1BDCSgxIDw8IDEpCS8qIFBhY2tldCBDb21wbGV0ZSAqLworI2RlZmluZSBVRENDU1JfRlMJKDEgPDwgMCkJLyogRklGTyBuZWVkcyBzZXJ2aWNlICovCisKKyNkZWZpbmUgVURDQkNOKHgpCV9fUkVHMigweDQwNjAwMjAwLCAoeCk8PDIpCisjZGVmaW5lIFVEQ0JDUjAgICAgICAgICBfX1JFRygweDQwNjAwMjAwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVAwICovCisjZGVmaW5lIFVEQ0JDUkEgICAgICAgICBfX1JFRygweDQwNjAwMjA0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBBICovCisjZGVmaW5lIFVEQ0JDUkIgICAgICAgICBfX1JFRygweDQwNjAwMjA4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBCICovCisjZGVmaW5lIFVEQ0JDUkMgICAgICAgICBfX1JFRygweDQwNjAwMjBDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBDICovCisjZGVmaW5lIFVEQ0JDUkQgICAgICAgICBfX1JFRygweDQwNjAwMjEwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBEICovCisjZGVmaW5lIFVEQ0JDUkUgICAgICAgICBfX1JFRygweDQwNjAwMjE0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBFICovCisjZGVmaW5lIFVEQ0JDUkYgICAgICAgICBfX1JFRygweDQwNjAwMjE4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBGICovCisjZGVmaW5lIFVEQ0JDUkcgICAgICAgICBfX1JFRygweDQwNjAwMjFDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBHICovCisjZGVmaW5lIFVEQ0JDUkggICAgICAgICBfX1JFRygweDQwNjAwMjIwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBIICovCisjZGVmaW5lIFVEQ0JDUkkgICAgICAgICBfX1JFRygweDQwNjAwMjI0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBJICovCisjZGVmaW5lIFVEQ0JDUkogICAgICAgICBfX1JFRygweDQwNjAwMjI4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBKICovCisjZGVmaW5lIFVEQ0JDUksgICAgICAgICBfX1JFRygweDQwNjAwMjJDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBLICovCisjZGVmaW5lIFVEQ0JDUkwgICAgICAgICBfX1JFRygweDQwNjAwMjMwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBMICovCisjZGVmaW5lIFVEQ0JDUk0gICAgICAgICBfX1JFRygweDQwNjAwMjM0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBNICovCisjZGVmaW5lIFVEQ0JDUk4gICAgICAgICBfX1JFRygweDQwNjAwMjM4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBOICovCisjZGVmaW5lIFVEQ0JDUlAgICAgICAgICBfX1JFRygweDQwNjAwMjNDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBQICovCisjZGVmaW5lIFVEQ0JDUlEgICAgICAgICBfX1JFRygweDQwNjAwMjQwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBRICovCisjZGVmaW5lIFVEQ0JDUlIgICAgICAgICBfX1JFRygweDQwNjAwMjQ0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBSICovCisjZGVmaW5lIFVEQ0JDUlMgICAgICAgICBfX1JFRygweDQwNjAwMjQ4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBTICovCisjZGVmaW5lIFVEQ0JDUlQgICAgICAgICBfX1JFRygweDQwNjAwMjRDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBUICovCisjZGVmaW5lIFVEQ0JDUlUgICAgICAgICBfX1JFRygweDQwNjAwMjUwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBVICovCisjZGVmaW5lIFVEQ0JDUlYgICAgICAgICBfX1JFRygweDQwNjAwMjU0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBWICovCisjZGVmaW5lIFVEQ0JDUlcgICAgICAgICBfX1JFRygweDQwNjAwMjU4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBXICovCisjZGVmaW5lIFVEQ0JDUlggICAgICAgICBfX1JFRygweDQwNjAwMjVDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBYICovCisKKyNkZWZpbmUgVURDRE4oeCkJX19SRUcyKDB4NDA2MDAzMDAsICh4KTw8MikKKyNkZWZpbmUgUEhZU19VRENETih4KQkoMHg0MDYwMDMwMCArICgoeCk8PDIpKQorI2RlZmluZSBQVURDRE4oeCkJKHZvbGF0aWxlIHUzMiAqKShpb19wMnYoUEhZU19VRENETigoeCkpKSkKKyNkZWZpbmUgVURDRFIwICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMDApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUDAgKi8KKyNkZWZpbmUgVURDRFJBICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMDQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEEgKi8KKyNkZWZpbmUgVURDRFJCICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMDgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEIgKi8KKyNkZWZpbmUgVURDRFJDICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMEMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEMgKi8KKyNkZWZpbmUgVURDRFJEICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMTApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEQgKi8KKyNkZWZpbmUgVURDRFJFICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMTQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEUgKi8KKyNkZWZpbmUgVURDRFJGICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMTgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEYgKi8KKyNkZWZpbmUgVURDRFJHICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMUMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEcgKi8KKyNkZWZpbmUgVURDRFJIICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMjApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEggKi8KKyNkZWZpbmUgVURDRFJJICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMjQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEkgKi8KKyNkZWZpbmUgVURDRFJKICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMjgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEogKi8KKyNkZWZpbmUgVURDRFJLICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMkMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEsgKi8KKyNkZWZpbmUgVURDRFJMICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMzApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEwgKi8KKyNkZWZpbmUgVURDRFJNICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMzQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUE0gKi8KKyNkZWZpbmUgVURDRFJOICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMzgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUE4gKi8KKyNkZWZpbmUgVURDRFJQICAgICAgICAgIF9fUkVHKDB4NDA2MDAzM0MpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFAgKi8KKyNkZWZpbmUgVURDRFJRICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNDApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFEgKi8KKyNkZWZpbmUgVURDRFJSICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNDQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFIgKi8KKyNkZWZpbmUgVURDRFJTICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNDgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFMgKi8KKyNkZWZpbmUgVURDRFJUICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNEMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFQgKi8KKyNkZWZpbmUgVURDRFJVICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNTApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFUgKi8KKyNkZWZpbmUgVURDRFJWICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNTQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFYgKi8KKyNkZWZpbmUgVURDRFJXICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNTgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFcgKi8KKyNkZWZpbmUgVURDRFJYICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNUMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFggKi8KKworI2RlZmluZSBVRENDTih4KSAgICAgICBfX1JFRzIoMHg0MDYwMDQwMCwgKHgpPDwyKQorI2RlZmluZSBVRENDUkEgICAgICAgICAgX19SRUcoMHg0MDYwMDQwNCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEEgKi8KKyNkZWZpbmUgVURDQ1JCICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MDgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBCICovCisjZGVmaW5lIFVEQ0NSQyAgICAgICAgICBfX1JFRygweDQwNjAwNDBDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQQyAqLworI2RlZmluZSBVRENDUkQgICAgICAgICAgX19SRUcoMHg0MDYwMDQxMCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEQgKi8KKyNkZWZpbmUgVURDQ1JFICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MTQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBFICovCisjZGVmaW5lIFVEQ0NSRiAgICAgICAgICBfX1JFRygweDQwNjAwNDE4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQRiAqLworI2RlZmluZSBVRENDUkcgICAgICAgICAgX19SRUcoMHg0MDYwMDQxQykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEcgKi8KKyNkZWZpbmUgVURDQ1JIICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MjApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBIICovCisjZGVmaW5lIFVEQ0NSSSAgICAgICAgICBfX1JFRygweDQwNjAwNDI0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQSSAqLworI2RlZmluZSBVRENDUkogICAgICAgICAgX19SRUcoMHg0MDYwMDQyOCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEogKi8KKyNkZWZpbmUgVURDQ1JLICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MkMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBLICovCisjZGVmaW5lIFVEQ0NSTCAgICAgICAgICBfX1JFRygweDQwNjAwNDMwKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQTCAqLworI2RlZmluZSBVRENDUk0gICAgICAgICAgX19SRUcoMHg0MDYwMDQzNCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUE0gKi8KKyNkZWZpbmUgVURDQ1JOICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MzgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBOICovCisjZGVmaW5lIFVEQ0NSUCAgICAgICAgICBfX1JFRygweDQwNjAwNDNDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQUCAqLworI2RlZmluZSBVRENDUlEgICAgICAgICAgX19SRUcoMHg0MDYwMDQ0MCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFEgKi8KKyNkZWZpbmUgVURDQ1JSICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NDQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBSICovCisjZGVmaW5lIFVEQ0NSUyAgICAgICAgICBfX1JFRygweDQwNjAwNDQ4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQUyAqLworI2RlZmluZSBVRENDUlQgICAgICAgICAgX19SRUcoMHg0MDYwMDQ0QykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFQgKi8KKyNkZWZpbmUgVURDQ1JVICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NTApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBVICovCisjZGVmaW5lIFVEQ0NSViAgICAgICAgICBfX1JFRygweDQwNjAwNDU0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQViAqLworI2RlZmluZSBVRENDUlcgICAgICAgICAgX19SRUcoMHg0MDYwMDQ1OCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFcgKi8KKyNkZWZpbmUgVURDQ1JYICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NUMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBYICovCisKKyNkZWZpbmUgVURDQ09OUl9DTgkoMHgwMyA8PCAyNSkJLyogQ29uZmlndXJhdGlvbiBOdW1iZXIgKi8KKyNkZWZpbmUgVURDQ09OUl9DTl9TCSgyNSkKKyNkZWZpbmUgVURDQ09OUl9JTgkoMHgwNyA8PCAyMikJLyogSW50ZXJmYWNlIE51bWJlciAqLworI2RlZmluZSBVRENDT05SX0lOX1MJKDIyKQorI2RlZmluZSBVRENDT05SX0FJU04JKDB4MDcgPDwgMTkpCS8qIEFsdGVybmF0ZSBJbnRlcmZhY2UgTnVtYmVyICovCisjZGVmaW5lIFVEQ0NPTlJfQUlTTl9TCSgxOSkKKyNkZWZpbmUgVURDQ09OUl9FTgkoMHgwZiA8PCAxNSkJLyogRW5kcG9pbnQgTnVtYmVyICovCisjZGVmaW5lIFVEQ0NPTlJfRU5fUwkoMTUpCisjZGVmaW5lIFVEQ0NPTlJfRVQJKDB4MDMgPDwgMTMpCS8qIEVuZHBvaW50IFR5cGU6ICovCisjZGVmaW5lIFVEQ0NPTlJfRVRfUwkoMTMpCisjZGVmaW5lIFVEQ0NPTlJfRVRfSU5UCSgweDAzIDw8IDEzKQkvKiAgIEludGVycnVwdCAqLworI2RlZmluZSBVRENDT05SX0VUX0JVTEsJKDB4MDIgPDwgMTMpCS8qICAgQnVsayAqLworI2RlZmluZSBVRENDT05SX0VUX0lTTwkoMHgwMSA8PCAxMykJLyogICBJc29jaHJvbm91cyAqLworI2RlZmluZSBVRENDT05SX0VUX05VCSgweDAwIDw8IDEzKQkvKiAgIE5vdCB1c2VkICovCisjZGVmaW5lIFVEQ0NPTlJfRUQJKDEgPDwgMTIpCS8qIEVuZHBvaW50IERpcmVjdGlvbiAqLworI2RlZmluZSBVRENDT05SX01QUwkoMHgzZmYgPDwgMikJLyogTWF4aW11bSBQYWNrZXQgU2l6ZSAqLworI2RlZmluZSBVRENDT05SX01QU19TCSgyKQorI2RlZmluZSBVRENDT05SX0RFCSgxIDw8IDEpCS8qIERvdWJsZSBCdWZmZXJpbmcgRW5hYmxlICovCisjZGVmaW5lIFVEQ0NPTlJfRUUJKDEgPDwgMCkJLyogRW5kcG9pbnQgRW5hYmxlICovCisKKworI2RlZmluZSBVRENfSU5UX0ZJRk9FUlJPUiAgKDB4MikKKyNkZWZpbmUgVURDX0lOVF9QQUNLRVRDTVAgICgweDEpCisKKyNkZWZpbmUgVURDX0ZOUl9NQVNLICAgICAoMHg3ZmYpCisKKyNkZWZpbmUgVURDQ1NSX1dSX01BU0sgICAoVURDQ1NSX0RNRXxVRENDU1JfRlNUKQorI2RlZmluZSBVRENfQkNSX01BU0sgICAgKDB4M2ZmKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyeHgtZ3Bpby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTJ4eC1ncGlvLmgKaW5kZXggYjgxY2Q2My4uNmVmMWRkMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTJ4eC1ncGlvLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTJ4eC1ncGlvLmgKQEAgLTEsNiArMSw4IEBACiAjaWZuZGVmIF9fQVNNX0FSQ0hfUFhBMlhYX0dQSU9fSAogI2RlZmluZSBfX0FTTV9BUkNIX1BYQTJYWF9HUElPX0gKIAorI3dhcm5pbmcgUGxlYXNlIHVzZSBtZnAtcHhhMls1N114LmggaW5zdGVhZCBvZiBweGEyeHgtZ3Bpby5oCisKIC8qIEdQSU8gYWx0ZXJuYXRlIGZ1bmN0aW9uIGFzc2lnbm1lbnRzICovCiAKICNkZWZpbmUgR1BJTzFfUlNUCQkxCS8qIHJlc2V0ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LXJlZ3MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyeHgtcmVncy5oCmluZGV4IDk1NTNiNTQuLjczZTBhMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyeHgtcmVncy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyeHgtcmVncy5oCkBAIC04MSw0ICs4MSwxNjYgQEAKIAogI2VuZGlmCiAKKworLyoKKyAqIFBvd2VyIE1hbmFnZXIKKyAqLworCisjZGVmaW5lIFBNQ1IJCV9fUkVHKDB4NDBGMDAwMDApICAvKiBQb3dlciBNYW5hZ2VyIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUFNTUgkJX19SRUcoMHg0MEYwMDAwNCkgIC8qIFBvd2VyIE1hbmFnZXIgU2xlZXAgU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFBTUFIJCV9fUkVHKDB4NDBGMDAwMDgpICAvKiBQb3dlciBNYW5hZ2VyIFNjcmF0Y2ggUGFkIFJlZ2lzdGVyICovCisjZGVmaW5lIFBXRVIJCV9fUkVHKDB4NDBGMDAwMEMpICAvKiBQb3dlciBNYW5hZ2VyIFdha2UtdXAgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFBSRVIJCV9fUkVHKDB4NDBGMDAwMTApICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gUmlzaW5nLUVkZ2UgRGV0ZWN0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBQRkVSCQlfX1JFRygweDQwRjAwMDE0KSAgLyogUG93ZXIgTWFuYWdlciBHUElPIEZhbGxpbmctRWRnZSBEZXRlY3QgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFBFRFIJCV9fUkVHKDB4NDBGMDAwMTgpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gRWRnZSBEZXRlY3QgU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFBDRlIJCV9fUkVHKDB4NDBGMDAwMUMpICAvKiBQb3dlciBNYW5hZ2VyIEdlbmVyYWwgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLworI2RlZmluZSBQR1NSMAkJX19SRUcoMHg0MEYwMDAyMCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBTbGVlcCBTdGF0ZSBSZWdpc3RlciBmb3IgR1BbMzEtMF0gKi8KKyNkZWZpbmUgUEdTUjEJCV9fUkVHKDB4NDBGMDAwMjQpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gU2xlZXAgU3RhdGUgUmVnaXN0ZXIgZm9yIEdQWzYzLTMyXSAqLworI2RlZmluZSBQR1NSMgkJX19SRUcoMHg0MEYwMDAyOCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBTbGVlcCBTdGF0ZSBSZWdpc3RlciBmb3IgR1BbODQtNjRdICovCisjZGVmaW5lIFBHU1IzCQlfX1JFRygweDQwRjAwMDJDKSAgLyogUG93ZXIgTWFuYWdlciBHUElPIFNsZWVwIFN0YXRlIFJlZ2lzdGVyIGZvciBHUFsxMTgtOTZdICovCisjZGVmaW5lIFJDU1IJCV9fUkVHKDB4NDBGMDAwMzApICAvKiBSZXNldCBDb250cm9sbGVyIFN0YXR1cyBSZWdpc3RlciAqLworCisjZGVmaW5lIFBTTFIJCV9fUkVHKDB4NDBGMDAwMzQpCS8qIFBvd2VyIE1hbmFnZXIgU2xlZXAgQ29uZmlnIFJlZ2lzdGVyICovCisjZGVmaW5lIFBTVFIJCV9fUkVHKDB4NDBGMDAwMzgpCS8qIFBvd2VyIE1hbmFnZXIgU3RhbmRieSBDb25maWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUFNOUgkJX19SRUcoMHg0MEYwMDAzQykJLyogUG93ZXIgTWFuYWdlciBTZW5zZSBDb25maWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUFZDUgkJX19SRUcoMHg0MEYwMDA0MCkJLyogUG93ZXIgTWFuYWdlciBWb2x0YWdlQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBQS1dSCQlfX1JFRygweDQwRjAwMDUwKQkvKiBQb3dlciBNYW5hZ2VyIEtCIFdha2UtdXAgRW5hYmxlIFJlZyAqLworI2RlZmluZSBQS1NSCQlfX1JFRygweDQwRjAwMDU0KQkvKiBQb3dlciBNYW5hZ2VyIEtCIExldmVsLURldGVjdCBSZWdpc3RlciAqLworI2RlZmluZSBQQ01EKHgpCV9fUkVHMigweDQwRjAwMDgwLCAoeCk8PDIpCisjZGVmaW5lIFBDTUQwCV9fUkVHKDB4NDBGMDAwODAgKyAwICogNCkKKyNkZWZpbmUgUENNRDEJX19SRUcoMHg0MEYwMDA4MCArIDEgKiA0KQorI2RlZmluZSBQQ01EMglfX1JFRygweDQwRjAwMDgwICsgMiAqIDQpCisjZGVmaW5lIFBDTUQzCV9fUkVHKDB4NDBGMDAwODAgKyAzICogNCkKKyNkZWZpbmUgUENNRDQJX19SRUcoMHg0MEYwMDA4MCArIDQgKiA0KQorI2RlZmluZSBQQ01ENQlfX1JFRygweDQwRjAwMDgwICsgNSAqIDQpCisjZGVmaW5lIFBDTUQ2CV9fUkVHKDB4NDBGMDAwODAgKyA2ICogNCkKKyNkZWZpbmUgUENNRDcJX19SRUcoMHg0MEYwMDA4MCArIDcgKiA0KQorI2RlZmluZSBQQ01EOAlfX1JFRygweDQwRjAwMDgwICsgOCAqIDQpCisjZGVmaW5lIFBDTUQ5CV9fUkVHKDB4NDBGMDAwODAgKyA5ICogNCkKKyNkZWZpbmUgUENNRDEwCV9fUkVHKDB4NDBGMDAwODAgKyAxMCAqIDQpCisjZGVmaW5lIFBDTUQxMQlfX1JFRygweDQwRjAwMDgwICsgMTEgKiA0KQorI2RlZmluZSBQQ01EMTIJX19SRUcoMHg0MEYwMDA4MCArIDEyICogNCkKKyNkZWZpbmUgUENNRDEzCV9fUkVHKDB4NDBGMDAwODAgKyAxMyAqIDQpCisjZGVmaW5lIFBDTUQxNAlfX1JFRygweDQwRjAwMDgwICsgMTQgKiA0KQorI2RlZmluZSBQQ01EMTUJX19SRUcoMHg0MEYwMDA4MCArIDE1ICogNCkKKyNkZWZpbmUgUENNRDE2CV9fUkVHKDB4NDBGMDAwODAgKyAxNiAqIDQpCisjZGVmaW5lIFBDTUQxNwlfX1JFRygweDQwRjAwMDgwICsgMTcgKiA0KQorI2RlZmluZSBQQ01EMTgJX19SRUcoMHg0MEYwMDA4MCArIDE4ICogNCkKKyNkZWZpbmUgUENNRDE5CV9fUkVHKDB4NDBGMDAwODAgKyAxOSAqIDQpCisjZGVmaW5lIFBDTUQyMAlfX1JFRygweDQwRjAwMDgwICsgMjAgKiA0KQorI2RlZmluZSBQQ01EMjEJX19SRUcoMHg0MEYwMDA4MCArIDIxICogNCkKKyNkZWZpbmUgUENNRDIyCV9fUkVHKDB4NDBGMDAwODAgKyAyMiAqIDQpCisjZGVmaW5lIFBDTUQyMwlfX1JFRygweDQwRjAwMDgwICsgMjMgKiA0KQorI2RlZmluZSBQQ01EMjQJX19SRUcoMHg0MEYwMDA4MCArIDI0ICogNCkKKyNkZWZpbmUgUENNRDI1CV9fUkVHKDB4NDBGMDAwODAgKyAyNSAqIDQpCisjZGVmaW5lIFBDTUQyNglfX1JFRygweDQwRjAwMDgwICsgMjYgKiA0KQorI2RlZmluZSBQQ01EMjcJX19SRUcoMHg0MEYwMDA4MCArIDI3ICogNCkKKyNkZWZpbmUgUENNRDI4CV9fUkVHKDB4NDBGMDAwODAgKyAyOCAqIDQpCisjZGVmaW5lIFBDTUQyOQlfX1JFRygweDQwRjAwMDgwICsgMjkgKiA0KQorI2RlZmluZSBQQ01EMzAJX19SRUcoMHg0MEYwMDA4MCArIDMwICogNCkKKyNkZWZpbmUgUENNRDMxCV9fUkVHKDB4NDBGMDAwODAgKyAzMSAqIDQpCisKKyNkZWZpbmUgUENNRF9NQkMJKDE8PDEyKQorI2RlZmluZSBQQ01EX0RDRQkoMTw8MTEpCisjZGVmaW5lIFBDTURfTEMJKDE8PDEwKQorLyogRklYTUU6ICBQQ01EX1NRQyBuZWVkIGJlIGNoZWNrZWQuICAgKi8KKyNkZWZpbmUgUENNRF9TUUMJKDM8PDgpCS8qIGN1cnJlbnRseSBvbmx5IGJpdCA4IGlzIGNoYW5nZWFibGUsCisJCQkJICAgYml0IDkgc2hvdWxkIGJlIDAgYWxsIGRheS4gKi8KKyNkZWZpbmUgUFZDUl9WQ1NBCSgweDE8PDE0KQorI2RlZmluZSBQVkNSX0NvbW1hbmREZWxheSAoMHhmODApCisjZGVmaW5lIFBDRlJfUEkyQ19FTgkoMHgxIDw8IDYpCisKKyNkZWZpbmUgUFNTUl9PVEdQSAkoMSA8PCA2KQkvKiBPVEcgUGVyaXBoZXJhbCBjb250cm9sIEhvbGQgKi8KKyNkZWZpbmUgUFNTUl9SREgJKDEgPDwgNSkJLyogUmVhZCBEaXNhYmxlIEhvbGQgKi8KKyNkZWZpbmUgUFNTUl9QSAkJKDEgPDwgNCkJLyogUGVyaXBoZXJhbCBDb250cm9sIEhvbGQgKi8KKyNkZWZpbmUgUFNTUl9TVFMJKDEgPDwgMykJLyogU3RhbmRieSBNb2RlIFN0YXR1cyAqLworI2RlZmluZSBQU1NSX1ZGUwkoMSA8PCAyKQkvKiBWREQgRmF1bHQgU3RhdHVzICovCisjZGVmaW5lIFBTU1JfQkZTCSgxIDw8IDEpCS8qIEJhdHRlcnkgRmF1bHQgU3RhdHVzICovCisjZGVmaW5lIFBTU1JfU1NTCSgxIDw8IDApCS8qIFNvZnR3YXJlIFNsZWVwIFN0YXR1cyAqLworCisjZGVmaW5lIFBTTFJfU0xfUk9ECSgxIDw8IDIwKQkvKiBTbGVlcC1Nb2RlL0RlcHAtU2xlZXAgTW9kZSBuUkVTRVRfT1VUIERpc2FibGUgKi8KKworI2RlZmluZSBQQ0ZSX1JPCQkoMSA8PCAxNSkJLyogUkRIIE92ZXJyaWRlICovCisjZGVmaW5lIFBDRlJfUE8JCSgxIDw8IDE0KQkvKiBQSCBPdmVycmlkZSAqLworI2RlZmluZSBQQ0ZSX0dQUk9ECSgxIDw8IDEyKQkvKiBHUElPIG5SRVNFVF9PVVQgRGlzYWJsZSAqLworI2RlZmluZSBQQ0ZSX0wxX0VOCSgxIDw8IDExKQkvKiBTbGVlcCBNb2RlIEwxIGNvbnZlcnRlciBFbmFibGUgKi8KKyNkZWZpbmUgUENGUl9GVkMJKDEgPDwgMTApCS8qIEZyZXF1ZW5jeS9Wb2x0YWdlIENoYW5nZSAqLworI2RlZmluZSBQQ0ZSX0RDX0VOCSgxIDw8IDcpCS8qIFNsZWVwL2RlZXAtc2xlZXAgREMtREMgQ29udmVydGVyIEVuYWJsZSAqLworI2RlZmluZSBQQ0ZSX1BJMkNFTgkoMSA8PCA2KQkvKiBFbmFibGUgUEkyQyBjb250cm9sbGVyICovCisjZGVmaW5lIFBDRlJfR1BSX0VOCSgxIDw8IDQpCS8qIG5SRVNFVF9HUElPIFBpbiBFbmFibGUgKi8KKyNkZWZpbmUgUENGUl9EUwkJKDEgPDwgMykJLyogRGVlcCBTbGVlcCBNb2RlICovCisjZGVmaW5lIFBDRlJfRlMJCSgxIDw8IDIpCS8qIEZsb2F0IFN0YXRpYyBDaGlwIFNlbGVjdHMgKi8KKyNkZWZpbmUgUENGUl9GUAkJKDEgPDwgMSkJLyogRmxvYXQgUENNQ0lBIGNvbnRyb2xzICovCisjZGVmaW5lIFBDRlJfT1BERQkoMSA8PCAwKQkvKiAzLjY4NjQgTUh6IG9zY2lsbGF0b3IgcG93ZXItZG93biBlbmFibGUgKi8KKworI2RlZmluZSBSQ1NSX0dQUgkoMSA8PCAzKQkvKiBHUElPIFJlc2V0ICovCisjZGVmaW5lIFJDU1JfU01SCSgxIDw8IDIpCS8qIFNsZWVwIE1vZGUgKi8KKyNkZWZpbmUgUkNTUl9XRFIJKDEgPDwgMSkJLyogV2F0Y2hkb2cgUmVzZXQgKi8KKyNkZWZpbmUgUkNTUl9IV1IJKDEgPDwgMCkJLyogSGFyZHdhcmUgUmVzZXQgKi8KKworI2RlZmluZSBQV0VSX0dQSU8oTmIpCSgxIDw8IE5iKQkvKiBHUElPIFswLi4xNV0gd2FrZS11cCBlbmFibGUgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzAJUFdFUl9HUElPICgwKQkvKiBHUElPICBbMF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzEJUFdFUl9HUElPICgxKQkvKiBHUElPICBbMV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzIJUFdFUl9HUElPICgyKQkvKiBHUElPICBbMl0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzMJUFdFUl9HUElPICgzKQkvKiBHUElPICBbM10gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzQJUFdFUl9HUElPICg0KQkvKiBHUElPICBbNF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzUJUFdFUl9HUElPICg1KQkvKiBHUElPICBbNV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzYJUFdFUl9HUElPICg2KQkvKiBHUElPICBbNl0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzcJUFdFUl9HUElPICg3KQkvKiBHUElPICBbN10gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzgJUFdFUl9HUElPICg4KQkvKiBHUElPICBbOF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzkJUFdFUl9HUElPICg5KQkvKiBHUElPICBbOV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzEwCVBXRVJfR1BJTyAoMTApCS8qIEdQSU8gWzEwXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMTEJUFdFUl9HUElPICgxMSkJLyogR1BJTyBbMTFdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8xMglQV0VSX0dQSU8gKDEyKQkvKiBHUElPIFsxMl0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzEzCVBXRVJfR1BJTyAoMTMpCS8qIEdQSU8gWzEzXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMTQJUFdFUl9HUElPICgxNCkJLyogR1BJTyBbMTRdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8xNQlQV0VSX0dQSU8gKDE1KQkvKiBHUElPIFsxNV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfUlRDCTB4ODAwMDAwMDAJLyogUlRDIGFsYXJtIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworCisvKgorICogUFhBMnh4IHNwZWNpZmljIENvcmUgY2xvY2sgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBDQ0NSCQlfX1JFRygweDQxMzAwMDAwKSAgLyogQ29yZSBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCisjZGVmaW5lIENDU1IJCV9fUkVHKDB4NDEzMDAwMEMpICAvKiBDb3JlIENsb2NrIFN0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBDS0VOCQlfX1JFRygweDQxMzAwMDA0KSAgLyogQ2xvY2sgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIE9TQ0MJCV9fUkVHKDB4NDEzMDAwMDgpICAvKiBPc2NpbGxhdG9yIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KKworI2RlZmluZSBDQ0NSX05fTUFTSwkweDAzODAJLyogUnVuIE1vZGUgRnJlcXVlbmN5IHRvIFR1cmJvIE1vZGUgRnJlcXVlbmN5IE11bHRpcGxpZXIgKi8KKyNkZWZpbmUgQ0NDUl9NX01BU0sJMHgwMDYwCS8qIE1lbW9yeSBGcmVxdWVuY3kgdG8gUnVuIE1vZGUgRnJlcXVlbmN5IE11bHRpcGxpZXIgKi8KKyNkZWZpbmUgQ0NDUl9MX01BU0sJMHgwMDFmCS8qIENyeXN0YWwgRnJlcXVlbmN5IHRvIE1lbW9yeSBGcmVxdWVuY3kgTXVsdGlwbGllciAqLworCisjZGVmaW5lIENLRU5fQUM5N0NPTkYgICAoMzEpICAgIC8qIEFDOTcgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICovCisjZGVmaW5lIENLRU5fQ0FNRVJBCSgyNCkJLyogQ2FtZXJhIEludGVyZmFjZSBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9TU1AxCSgyMykJLyogU1NQMSBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX01FTUMJKDIyKQkvKiBNZW1vcnkgQ29udHJvbGxlciBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9NRU1TVEsJKDIxKQkvKiBNZW1vcnkgU3RpY2sgSG9zdCBDb250cm9sbGVyICovCisjZGVmaW5lIENLRU5fSU0JCSgyMCkJLyogSW50ZXJuYWwgTWVtb3J5IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0tFWVBBRAkoMTkpCS8qIEtleXBhZCBJbnRlcmZhY2UgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fVVNJTQkoMTgpCS8qIFVTSU0gVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9NU0wJKDE3KQkvKiBNU0wgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9MQ0QJKDE2KQkvKiBMQ0QgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9QV1JJMkMJKDE1KQkvKiBQV1IgSTJDIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fSTJDCSgxNCkJLyogSTJDIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fRklDUAkoMTMpCS8qIEZJQ1AgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9NTUMJKDEyKQkvKiBNTUMgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9VU0IJKDExKQkvKiBVU0IgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9BU1NQCSgxMCkJLyogQVNTUCAoU1NQMykgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fVVNCSE9TVAkoMTApCS8qIFVTQiBIb3N0IFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fT1NUSU1FUgkoOSkJLyogT1MgVGltZXIgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9OU1NQCSg5KQkvKiBOU1NQIChTU1AyKSBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9JMlMJKDgpCS8qIEkyUyBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0JUVUFSVAkoNykJLyogQlRVQVJUIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fRkZVQVJUCSg2KQkvKiBGRlVBUlQgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9TVFVBUlQJKDUpCS8qIFNUVUFSVCBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0hXVUFSVAkoNCkJLyogSFdVQVJUIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fU1NQMwkoNCkJLyogU1NQMyBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1NTUAkoMykJLyogU1NQIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fU1NQMgkoMykJLyogU1NQMiBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0FDOTcJKDIpCS8qIEFDOTcgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9QV00xCSgxKQkvKiBQV00xIENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1BXTTAJKDApCS8qIFBXTTAgQ2xvY2sgRW5hYmxlICovCisKKyNkZWZpbmUgT1NDQ19PT04JKDEgPDwgMSkJLyogMzIuNzY4a0h6IE9PTiAod3JpdGUtb25jZSBvbmx5IGJpdCkgKi8KKyNkZWZpbmUgT1NDQ19PT0sJKDEgPDwgMCkJLyogMzIuNzY4a0h6IE9PSyAocmVhZC1vbmx5IGJpdCkgKi8KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvc3lzdGVtLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvc3lzdGVtLmgKaW5kZXggOWFhNmMyZS4uYmE3ZTEzMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3N5c3RlbS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9zeXN0ZW0uaApAQCAtMTIsNiArMTIsNyBAQAogCiAjaW5jbHVkZSA8YXNtL3Byb2MtZm5zLmg+CiAjaW5jbHVkZSAiaGFyZHdhcmUuaCIKKyNpbmNsdWRlICJweGEyeHgtcmVncy5oIgogI2luY2x1ZGUgInB4YS1yZWdzLmgiCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX2lkbGUodm9pZCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS96eWxvbml0ZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3p5bG9uaXRlLmgKaW5kZXggNDg4MWI4MC4uZGU1NzdkZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3p5bG9uaXRlLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3p5bG9uaXRlLmgKQEAgLTE1LDcgKzE1LDYgQEAKIAogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9tbWNfc2xvdCB6eWxvbml0ZV9tbWNfc2xvdFtdOwogCi1leHRlcm4gaW50IGdwaW9fYmFja2xpZ2h0OwogZXh0ZXJuIGludCBncGlvX2V0aF9pcnE7CiAKIGV4dGVybiBpbnQgd205NzEzX2lycTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXJwYy9pby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcnBjL2lvLmgKaW5kZXggYjRkYTA4ZC4uNmJkMjI5NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcnBjL2lvLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcnBjL2lvLmgKQEAgLTEyNiw3ICsxMjYsNyBAQAogCXJldHVybiAodW5zaWduZWQgc3opdmFsdWU7CQkJCQkJXAogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgX19pb21lbSAqX19pb2FkZHIodW5zaWduZWQgaW50IHBvcnQpCitzdGF0aWMgaW5saW5lIHZvaWQgX19pb21lbSAqX19kZXByZWNhdGVkIF9faW9hZGRyKHVuc2lnbmVkIGludCBwb3J0KQogewogCXZvaWQgX19pb21lbSAqcmV0OwogCWlmIChfX1BPUlRfUENJTyhwb3J0KSkKQEAgLTIzMiw4ICsyMzIsNyBAQAogCXJlc3VsdDsJCQkJCQkJCQlcCiB9KQogCi0jZGVmaW5lIF9faW9hZGRyYyhwb3J0KQkJXAotCSgoX19QT1JUX1BDSU8ocG9ydCkgPyBQQ0lPX0JBU0UgOiBJT19CQVNFKSArICgocG9ydCkgPDwgMikpCisjZGVmaW5lIF9faW9hZGRyYyhwb3J0KQkJX19pb2FkZHIocG9ydCkKIAogI2RlZmluZSBpbmIocCkJIAkoX19idWlsdGluX2NvbnN0YW50X3AoKHApKSA/IF9faW5iYyhwKSAgICA6IF9faW5iKHApKQogI2RlZmluZSBpbncocCkJIAkoX19idWlsdGluX2NvbnN0YW50X3AoKHApKSA/IF9faW53YyhwKSAgICA6IF9faW53KHApKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9ncGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL2dwaW8uaAppbmRleCA3NTgzODk1Li4xOGUxMGQyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL2dwaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL2dwaW8uaApAQCAtMSw2OCArMSwxOCBAQAotLyoKLSAqIGxpbnV4L2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvZ3Bpby5oCisvKiBsaW51eC9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL2dwaW8uaAogICoKLSAqIFMzQzI0MTAgR1BJTyB3cmFwcGVycyBmb3IgYXJjaC1uZXV0cmFsIEdQSU8gY2FsbHMKKyAqIENvcHlyaWdodCAoYykgMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CiAgKgotICogV3JpdHRlbiBieSBQaGlsaXBwIFphYmVsIDxwaGlsaXBwLnphYmVsQGdtYWlsLmNvbT4KKyAqIFMzQzI0MTAgLSBHUElPIGxpYiBzdXBwb3J0CiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQotICoKLSAqLworICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KIAotI2lmbmRlZiBfX0FTTV9BUkNIX1MzQzI0MTBfR1BJT19ICi0jZGVmaW5lIF9fQVNNX0FSQ0hfUzNDMjQxMF9HUElPX0gKKyNkZWZpbmUgZ3Bpb19nZXRfdmFsdWUJX19ncGlvX2dldF92YWx1ZQorI2RlZmluZSBncGlvX3NldF92YWx1ZQlfX2dwaW9fc2V0X3ZhbHVlCisjZGVmaW5lIGdwaW9fY2Fuc2xlZXAJX19ncGlvX2NhbnNsZWVwCiAKLSNpbmNsdWRlIDxhc20vaXJxLmg+Ci0jaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGdwaW9fcmVxdWVzdCh1bnNpZ25lZCBncGlvLCBjb25zdCBjaGFyICpsYWJlbCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGdwaW9fZnJlZSh1bnNpZ25lZCBncGlvKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZ3Bpb19kaXJlY3Rpb25faW5wdXQodW5zaWduZWQgZ3BpbykKLXsKLQlzM2MyNDEwX2dwaW9fY2ZncGluKGdwaW8sIFMzQzI0MTBfR1BJT19JTlBVVCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGdwaW9fZGlyZWN0aW9uX291dHB1dCh1bnNpZ25lZCBncGlvLCBpbnQgdmFsdWUpCi17Ci0JczNjMjQxMF9ncGlvX2NmZ3BpbihncGlvLCBTM0MyNDEwX0dQSU9fT1VUUFVUKTsKLQkvKiBSRVZJU0lUIGNhbiB3ZSB3cml0ZSB0aGUgdmFsdWUgZmlyc3QsIHRvIGF2b2lkIGdsaXRjaGluZz8gKi8KLQlzM2MyNDEwX2dwaW9fc2V0cGluKGdwaW8sIHZhbHVlKTsKLQlyZXR1cm4gMDsKLX0KLQotI2RlZmluZSBncGlvX2dldF92YWx1ZShncGlvKQkJczNjMjQxMF9ncGlvX2dldHBpbihncGlvKQotI2RlZmluZSBncGlvX3NldF92YWx1ZShncGlvLHZhbHVlKQlzM2MyNDEwX2dwaW9fc2V0cGluKGdwaW8sIHZhbHVlKQotCi0jaW5jbHVkZSA8YXNtLWdlbmVyaWMvZ3Bpby5oPgkJCS8qIGNhbnNsZWVwIHdyYXBwZXJzICovCi0KLSNpZmRlZiBDT05GSUdfQ1BVX1MzQzI0MDAKLSNkZWZpbmUgZ3Bpb190b19pcnEoZ3BpbykJCXMzYzI0MDBfZ3Bpb19nZXRpcnEoZ3BpbykKLSNlbHNlCi0jZGVmaW5lIGdwaW9fdG9faXJxKGdwaW8pCQlzM2MyNDEwX2dwaW9fZ2V0aXJxKGdwaW8pCi0jZW5kaWYKLQotLyogRklYTUUgaW1wbGVtZW50IGlycV90b19ncGlvKCkgKi8KLQotI2VuZGlmCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvZ3Bpby5oPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9yZWdzLWNsb2NrLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL3JlZ3MtY2xvY2suaAppbmRleCBlY2FlOWU3Li4zNzY2MTM1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL3JlZ3MtY2xvY2suaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL3JlZ3MtY2xvY2suaApAQCAtMTg5LDYgKzE4OSw4IEBACiAjZGVmaW5lIFMzQzI0MTJfQ0xLU1JDX0kyU0NMS19NUExMCQkoMTw8OSkKICNkZWZpbmUgUzNDMjQxMl9DTEtTUkNfVVNCQ0xLX0hDTEsJCSgxPDwxMCkKICNkZWZpbmUgUzNDMjQxMl9DTEtTUkNfQ0FNQ0xLX0hDTEsJCSgxPDwxMSkKKyNkZWZpbmUgUzNDMjQxMl9DTEtTUkNfVVJFRkNMS19FWFRDTEsJKDE8PDEyKQorI2RlZmluZSBTM0MyNDEyX0NMS1NSQ19FUkVGQ0xLX0VYVENMSwkoMTw8MTQpCiAKICNlbmRpZiAvKiBDT05GSUdfQ1BVX1MzQzI0MTIgfCBDT05GSUdfQ1BVX1MzQzI0MTMgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2Fzc2VtYmxlci5oIGIvaW5jbHVkZS9hc20tYXJtL2Fzc2VtYmxlci5oCmluZGV4IGZjZTgzMjguLjkxMTM5M2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hc3NlbWJsZXIuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXNzZW1ibGVyLmgKQEAgLTU2LDYgKzU2LDIxIEBACiAjZW5kaWYKIAogLyoKKyAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIGNvZGUgdG8gY2FjaGVsaW5lIGFsaWduIHRoZSBkZXN0aW5hdGlvbgorICogcG9pbnRlciB3aGVuIGJ1bGsgd3JpdGluZyB0byBtZW1vcnkuICBFeHBlcmltZW50cyBvbiBTdHJvbmdBUk0gYW5kCisgKiBYU2NhbGUgZGlkbid0IHNob3cgdGhpcyBhIHdvcnRod2hpbGUgdGhpbmcgdG8gZG8gd2hlbiB0aGUgY2FjaGUgaXMgbm90CisgKiBzZXQgdG8gd3JpdGUtYWxsb2NhdGUgKHRoaXMgd291bGQgbmVlZCBmdXJ0aGVyIHRlc3Rpbmcgb24gWFNjYWxlIHdoZW4gV0EKKyAqIGlzIHVzZWQpLgorICoKKyAqIE9uIEZlcm9jZW9uIHRoZXJlIGlzIG11Y2ggdG8gZ2FpbiBob3dldmVyLCByZWdhcmRsZXNzIG9mIGNhY2hlIG1vZGUuCisgKi8KKyNpZmRlZiBDT05GSUdfQ1BVX0ZFUk9DRU9OCisjZGVmaW5lIENBTEdOKGNvZGUuLi4pIGNvZGUKKyNlbHNlCisjZGVmaW5lIENBTEdOKGNvZGUuLi4pCisjZW5kaWYKKworLyoKICAqIEVuYWJsZSBhbmQgZGlzYWJsZSBpbnRlcnJ1cHRzCiAgKi8KICNpZiBfX0xJTlVYX0FSTV9BUkNIX18gPj0gNgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2NhY2hlZmx1c2guaCBiL2luY2x1ZGUvYXNtLWFybS9jYWNoZWZsdXNoLmgKaW5kZXggNzU5YTk3Yi4uNzBiMGZlNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2NhY2hlZmx1c2guaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vY2FjaGVmbHVzaC5oCkBAIC05NSwxMSArOTUsNyBAQAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DUFVfRkVST0NFT04pCi0jIGlmZGVmIF9DQUNIRQotIyAgZGVmaW5lIE1VTFRJX0NBQ0hFIDEKLSMgZWxzZQotIyAgZGVmaW5lIF9DQUNIRSBmZXJvY2VvbgotIyBlbmRpZgorIyBkZWZpbmUgTVVMVElfQ0FDSEUgMQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19DUFVfVjYpCkBAIC00MTAsNiArNDA2LDEzIEBACiAKIGV4dGVybiB2b2lkIF9fZmx1c2hfZGNhY2hlX3BhZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHN0cnVjdCBwYWdlICpwYWdlKTsKIAorc3RhdGljIGlubGluZSB2b2lkIF9fZmx1c2hfaWNhY2hlX2FsbCh2b2lkKQoreworCWFzbSgibWNyCXAxNSwgMCwgJTAsIGM3LCBjNSwgMAlAIGludmFsaWRhdGUgSS1jYWNoZVxuIgorCSAgICA6CisJICAgIDogInIiICgwKSk7Cit9CisKICNkZWZpbmUgQVJDSF9IQVNfRkxVU0hfQU5PTl9QQUdFCiBzdGF0aWMgaW5saW5lIHZvaWQgZmx1c2hfYW5vbl9wYWdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJIHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIHZtYWRkcikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9keW50aWNrLmggYi9pbmNsdWRlL2FzbS1hcm0vZHludGljay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWZhYjJkLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLWFybS9keW50aWNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLSNpZm5kZWYgX0FTTUFSTV9EWU5USUNLX0gKLSNkZWZpbmUgX0FTTUFSTV9EWU5USUNLX0gKLQotI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KLQotI2VuZGlmIC8qIF9BU01BUk1fRFlOVElDS19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vZWNhcmQuaCBiL2luY2x1ZGUvYXNtLWFybS9lY2FyZC5oCmluZGV4IDY4NGZlMDYuLjVlMjI4ODEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9lY2FyZC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9lY2FyZC5oCkBAIC04NSwxOSArODUsNiBAQAogCiAjZGVmaW5lIE1BWF9FQ0FSRFMJOQogCi10eXBlZGVmIGVudW0gewkJCQkvKiBDYXJkcyBhZGRyZXNzIHNwYWNlCQkqLwotCUVDQVJEX0lPQywKLQlFQ0FSRF9NRU1DLAotCUVDQVJEX0VBU0kKLX0gY2FyZF90eXBlX3Q7Ci0KLXR5cGVkZWYgZW51bSB7CQkJCS8qIFNwZWVkIGZvciBFQ0FSRF9JT0Mgc3BhY2UJKi8KLQlFQ0FSRF9TTE9XCSA9IDAsCi0JRUNBUkRfTUVESVVNCSA9IDEsCi0JRUNBUkRfRkFTVAkgPSAyLAotCUVDQVJEX1NZTkMJID0gMwotfSBjYXJkX3NwZWVkX3Q7Ci0KIHN0cnVjdCBlY2FyZF9pZCB7CQkJLyogQ2FyZCBJRCBzdHJ1Y3R1cmUJCSovCiAJdW5zaWduZWQgc2hvcnQJbWFudWZhY3R1cmVyOwogCXVuc2lnbmVkIHNob3J0CXByb2R1Y3Q7CkBAIC0xOTAsMTYgKzE3Nyw2IEBACiB9OwogCiAvKgotICogZWNhcmRfY2xhaW06IGNsYWltIGFuIGV4cGFuc2lvbiBjYXJkIGVudHJ5Ci0gKi8KLSNkZWZpbmUgZWNhcmRfY2xhaW0oZWMpICgoZWMpLT5jbGFpbWVkID0gMSkKLQotLyoKLSAqIGVjYXJkX3JlbGVhc2U6IHJlbGVhc2UgYW4gZXhwYW5zaW9uIGNhcmQgZW50cnkKLSAqLwotI2RlZmluZSBlY2FyZF9yZWxlYXNlKGVjKSAoKGVjKS0+Y2xhaW1lZCA9IDApCi0KLS8qCiAgKiBSZWFkIGEgY2h1bmsgZnJvbSBhbiBleHBhbnNpb24gY2FyZAogICogY2QgOiB3aGVyZSB0byBwdXQgcmVhZCBkYXRhCiAgKiBlYyA6IGV4cGFuc2lvbiBjYXJkIGluZm8gc3RydWN0CkBAIC0yMDksMTggKzE4Niw2IEBACiBleHRlcm4gaW50IGVjYXJkX3JlYWRjaHVuayAoc3RydWN0IGluX2NodW5rX2RpciAqY2QsIHN0cnVjdCBleHBhbnNpb25fY2FyZCAqZWMsIGludCBpZCwgaW50IG51bSk7CiAKIC8qCi0gKiBPYnRhaW4gdGhlIGFkZHJlc3Mgb2YgYSBjYXJkLiAgVGhpcyByZXR1cm5zIHRoZSAib2xkIHN0eWxlIiBhZGRyZXNzCi0gKiBhbmQgc2hvdWxkIG5vIGxvbmdlciBiZSB1c2VkLgotICovCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBfX2RlcHJlY2F0ZWQKLWVjYXJkX2FkZHJlc3Moc3RydWN0IGV4cGFuc2lvbl9jYXJkICplYywgY2FyZF90eXBlX3QgdHlwZSwgY2FyZF9zcGVlZF90IHNwZWVkKQotewotCWV4dGVybiB1bnNpZ25lZCBpbnQgX19lY2FyZF9hZGRyZXNzKHN0cnVjdCBleHBhbnNpb25fY2FyZCAqLAotCQkJCQkgICAgY2FyZF90eXBlX3QsIGNhcmRfc3BlZWRfdCk7Ci0JcmV0dXJuIF9fZWNhcmRfYWRkcmVzcyhlYywgdHlwZSwgc3BlZWQpOwotfQotCi0vKgogICogUmVxdWVzdCBhbmQgcmVsZWFzZSBlY2FyZCByZXNvdXJjZXMKICAqLwogZXh0ZXJuIGludCBlY2FyZF9yZXF1ZXN0X3Jlc291cmNlcyhzdHJ1Y3QgZXhwYW5zaW9uX2NhcmQgKmVjKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9mdHJhY2UuaCBiL2luY2x1ZGUvYXNtLWFybS9mdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODRlZjlhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2Z0cmFjZS5oCkBAIC0wLDAgKzEsMTQgQEAKKyNpZm5kZWYgX0FTTV9BUk1fRlRSQUNFCisjZGVmaW5lIF9BU01fQVJNX0ZUUkFDRQorCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorI2RlZmluZSBNQ09VTlRfQUREUgkJKChsb25nKShtY291bnQpKQorI2RlZmluZSBNQ09VTlRfSU5TTl9TSVpFCTQgLyogc2l6ZW9mIG1jb3VudCBjYWxsICovCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCitleHRlcm4gdm9pZCBtY291bnQodm9pZCk7CisjZW5kaWYKKworI2VuZGlmCisKKyNlbmRpZiAvKiBfQVNNX0FSTV9GVFJBQ0UgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9oYXJkd2FyZS9pb3AzeHgtZ3Bpby5oIGIvaW5jbHVkZS9hc20tYXJtL2hhcmR3YXJlL2lvcDN4eC1ncGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM5MzMxZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9oYXJkd2FyZS9pb3AzeHgtZ3Bpby5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBsaW51eC9pbmNsdWRlL2FzbS1hcm0vaGFyZHdhcmUvaW9wM3h4LWdwaW8uaAorICoKKyAqIElPUDN4eCBHUElPIHdyYXBwZXJzCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IEFybmF1ZCBQYXRhcmQgPGFybmF1ZC5wYXRhcmRAcnRwLW5ldC5vcmc+CisgKiBCYXNlZCBvbiBJWFA0WFggZ3Bpby5oIGZpbGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCisgKgorICovCisKKyNpZm5kZWYgX19BU01fQVJNX0hBUkRXQVJFX0lPUDNYWF9HUElPX0gKKyNkZWZpbmUgX19BU01fQVJNX0hBUkRXQVJFX0lPUDNYWF9HUElPX0gKKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS1nZW5lcmljL2dwaW8uaD4KKworI2RlZmluZSBJT1AzWFhfTl9HUElPUwk4CisKK3N0YXRpYyBpbmxpbmUgaW50IGdwaW9fZ2V0X3ZhbHVlKHVuc2lnbmVkIGdwaW8pCit7CisJaWYgKGdwaW8gPiBJT1AzWFhfTl9HUElPUykKKwkJcmV0dXJuIF9fZ3Bpb19nZXRfdmFsdWUoZ3Bpbyk7CisKKwlyZXR1cm4gZ3Bpb19saW5lX2dldChncGlvKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdwaW9fc2V0X3ZhbHVlKHVuc2lnbmVkIGdwaW8sIGludCB2YWx1ZSkKK3sKKwlpZiAoZ3BpbyA+IElPUDNYWF9OX0dQSU9TKSB7CisJCV9fZ3Bpb19zZXRfdmFsdWUoZ3BpbywgdmFsdWUpOworCQlyZXR1cm47CisJfQorCWdwaW9fbGluZV9zZXQoZ3BpbywgdmFsdWUpOworfQorCitzdGF0aWMgaW5saW5lIGludCBncGlvX2NhbnNsZWVwKHVuc2lnbmVkIGdwaW8pCit7CisJaWYgKGdwaW8gPCBJT1AzWFhfTl9HUElPUykKKwkJcmV0dXJuIDA7CisJZWxzZQorCQlyZXR1cm4gX19ncGlvX2NhbnNsZWVwKGdwaW8pOworfQorCisvKgorICogVGhlIEdQSU9zIGFyZSBub3QgZ2VuZXJhdGluZyBhbnkgaW50ZXJydXB0CisgKiBOb3RlIDogbWFudWFscyBhcmUgbm90IGNsZWFyIGFib3V0IHRoaXMKKyAqLworc3RhdGljIGlubGluZSBpbnQgZ3Bpb190b19pcnEoaW50IGdwaW8pCit7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGlycV90b19ncGlvKGludCBncGlvKQoreworCXJldHVybiAtRUlOVkFMOworfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2h3X2lycS5oIGIvaW5jbHVkZS9hc20tYXJtL2h3X2lycS5oCmluZGV4IDk4ZDU5NGEuLmYxYTA4YTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9od19pcnEuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vaHdfaXJxLmgKQEAgLTYsMTUgKzYsNCBAQAogCiAjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CiAKLSNpZiBkZWZpbmVkKENPTkZJR19OT19JRExFX0haKQotIyBpbmNsdWRlIDxhc20vZHludGljay5oPgotIyBkZWZpbmUgaGFuZGxlX2R5bmFtaWNfdGljayhhY3Rpb24pCQkJCQlcCi0JaWYgKCEoYWN0aW9uLT5mbGFncyAmIElSUUZfVElNRVIpICYmIHN5c3RlbV90aW1lci0+ZHluX3RpY2spIHsJXAotCQl3cml0ZV9zZXFsb2NrKCZ4dGltZV9sb2NrKTsJCQkJXAotCQlpZiAoc3lzdGVtX3RpbWVyLT5keW5fdGljay0+c3RhdGUgJiBEWU5fVElDS19FTkFCTEVEKQlcCi0JCQlzeXN0ZW1fdGltZXItPmR5bl90aWNrLT5oYW5kbGVyKGlycSwgTlVMTCk7CVwKLQkJd3JpdGVfc2VxdW5sb2NrKCZ4dGltZV9sb2NrKTsJCQkJXAotCX0KLSNlbmRpZgotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9rZXhlYy5oIGIvaW5jbHVkZS9hc20tYXJtL2tleGVjLmgKaW5kZXggNDdmZTM0ZC4uYzg5ODZiYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2tleGVjLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2tleGVjLmgKQEAgLTE0LDggKzE0LDYgQEAKIAogI2RlZmluZSBLRVhFQ19BUkNIIEtFWEVDX0FSQ0hfQVJNCiAKLSNkZWZpbmUgS0VYRUNfQk9PVF9QQVJBTVNfU0laRSAxNTM2Ci0KICNkZWZpbmUgS0VYRUNfQVJNX0FUQUdTX09GRlNFVCAgMHgxMDAwCiAjZGVmaW5lIEtFWEVDX0FSTV9aSU1BR0VfT0ZGU0VUIDB4ODAwMAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0va3Byb2Jlcy5oIGIvaW5jbHVkZS9hc20tYXJtL2twcm9iZXMuaAppbmRleCBjMDQyMTk0Li5iMWEzNzg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0va3Byb2Jlcy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9rcHJvYmVzLmgKQEAgLTU5LDYgKzU5LDcgQEAKIH07CiAKIHZvaWQgYXJjaF9yZW1vdmVfa3Byb2JlKHN0cnVjdCBrcHJvYmUgKik7Cit2b2lkIGtyZXRwcm9iZV90cmFtcG9saW5lKHZvaWQpOwogCiBpbnQga3Byb2JlX3RyYXBfaGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgaW50IGluc3RyKTsKIGludCBrcHJvYmVfZmF1bHRfaGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgaW50IGZzcik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vbWFjaC90aW1lLmggYi9pbmNsdWRlL2FzbS1hcm0vbWFjaC90aW1lLmgKaW5kZXggNWRjMzU3MC4uMmZkMzZlYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL21hY2gvdGltZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9tYWNoL3RpbWUuaApAQCAtNDEsMzAgKzQxLDggQEAKICNpZm5kZWYgQ09ORklHX0dFTkVSSUNfVElNRQogCXVuc2lnbmVkIGxvbmcJCSgqb2Zmc2V0KSh2b2lkKTsKICNlbmRpZgotCi0jaWZkZWYgQ09ORklHX05PX0lETEVfSFoKLQlzdHJ1Y3QgZHluX3RpY2tfdGltZXIJKmR5bl90aWNrOwotI2VuZGlmCiB9OwogCi0jaWZkZWYgQ09ORklHX05PX0lETEVfSFoKLQotI2RlZmluZSBEWU5fVElDS19FTkFCTEVECSgxIDw8IDEpCi0KLXN0cnVjdCBkeW5fdGlja190aW1lciB7Ci0Jc3BpbmxvY2tfdAlsb2NrOwotCXVuc2lnbmVkIGludAlzdGF0ZTsJCQkvKiBDdXJyZW50IHN0YXRlICovCi0JaW50CQkoKmVuYWJsZSkodm9pZCk7CS8qIEVuYWJsZXMgZHluYW1pYyB0aWNrICovCi0JaW50CQkoKmRpc2FibGUpKHZvaWQpOwkvKiBEaXNhYmxlcyBkeW5hbWljIHRpY2sgKi8KLQl2b2lkCQkoKnJlcHJvZ3JhbSkodW5zaWduZWQgbG9uZyk7IC8qIFJlcHJvZ3JhbXMgdGhlIHRpbWVyICovCi0JaW50CQkoKmhhbmRsZXIpKGludCwgdm9pZCAqKTsKLX07Ci0KLXZvaWQgdGltZXJfZHluX3JlcHJvZ3JhbSh2b2lkKTsKLSNlbHNlCi0jZGVmaW5lIHRpbWVyX2R5bl9yZXByb2dyYW0oKQlkbyB7IH0gd2hpbGUgKDApCi0jZW5kaWYKLQogZXh0ZXJuIHN0cnVjdCBzeXNfdGltZXIgKnN5c3RlbV90aW1lcjsKIGV4dGVybiB2b2lkIHRpbWVyX3RpY2sodm9pZCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9tbXVfY29udGV4dC5oIGIvaW5jbHVkZS9hc20tYXJtL21tdV9jb250ZXh0LmgKaW5kZXggNjkxM2QwMi4uOTFiOWRmZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL21tdV9jb250ZXh0LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL21tdV9jb250ZXh0LmgKQEAgLTk3LDYgKzk3LDExIEBACiAjaWZkZWYgQ09ORklHX01NVQogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKKyNpZmRlZiBDT05GSUdfU01QCisJLyogY2hlY2sgZm9yIHBvc3NpYmxlIHRocmVhZCBtaWdyYXRpb24gKi8KKwlpZiAoIWNwdXNfZW1wdHkobmV4dC0+Y3B1X3ZtX21hc2spICYmICFjcHVfaXNzZXQoY3B1LCBuZXh0LT5jcHVfdm1fbWFzaykpCisJCV9fZmx1c2hfaWNhY2hlX2FsbCgpOworI2VuZGlmCiAJaWYgKCFjcHVfdGVzdF9hbmRfc2V0KGNwdSwgbmV4dC0+Y3B1X3ZtX21hc2spIHx8IHByZXYgIT0gbmV4dCkgewogCQljaGVja19jb250ZXh0KG5leHQpOwogCQljcHVfc3dpdGNoX21tKG5leHQtPnBnZCwgbmV4dCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9jYWNoZS1mZXJvY2Vvbi1sMi5oIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vY2FjaGUtZmVyb2Nlb24tbDIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTRlMDE2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vY2FjaGUtZmVyb2Nlb24tbDIuaApAQCAtMCwwICsxLDExIEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vY2FjaGUtZmVyb2Nlb24tbDIuaAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBNYXJ2ZWxsIFNlbWljb25kdWN0b3IKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKK2V4dGVybiB2b2lkIF9faW5pdCBmZXJvY2Vvbl9sMl9pbml0KGludCBsMl93dF9vdmVycmlkZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9vcmlvbl9uYW5kLmggYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9vcmlvbl9uYW5kLmgKaW5kZXggZmZkMzg1Mi4uYWQ0Y2U5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vb3Jpb25fbmFuZC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaApAQCAtMTgsNiArMTgsNyBAQAogCXU4IGFsZTsJCS8qIGFkZHJlc3MgbGluZSBudW1iZXIgY29ubmVjdGVkIHRvIEFMRSAqLwogCXU4IGNsZTsJCS8qIGFkZHJlc3MgbGluZSBudW1iZXIgY29ubmVjdGVkIHRvIENMRSAqLwogCXU4IHdpZHRoOwkvKiBidXN3aWR0aCAqLworCXU4IGNoaXBfZGVsYXk7CiB9OwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL3BjaWUuaCBiL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL3BjaWUuaAppbmRleCA2NDM0YWM2Li5lNjFiN2JkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9wY2llLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vcGNpZS5oCkBAIC0xNCw2ICsxNCw3IEBACiB1MzIgb3Jpb25fcGNpZV9kZXZfaWQodm9pZCBfX2lvbWVtICpiYXNlKTsKIHUzMiBvcmlvbl9wY2llX3Jldih2b2lkIF9faW9tZW0gKmJhc2UpOwogaW50IG9yaW9uX3BjaWVfbGlua191cCh2b2lkIF9faW9tZW0gKmJhc2UpOworaW50IG9yaW9uX3BjaWVfeDRfbW9kZSh2b2lkIF9faW9tZW0gKmJhc2UpOwogaW50IG9yaW9uX3BjaWVfZ2V0X2xvY2FsX2J1c19ucih2b2lkIF9faW9tZW0gKmJhc2UpOwogdm9pZCBvcmlvbl9wY2llX3NldF9sb2NhbF9idXNfbnIodm9pZCBfX2lvbWVtICpiYXNlLCBpbnQgbnIpOwogdm9pZCBvcmlvbl9wY2llX3NldHVwKHZvaWQgX19pb21lbSAqYmFzZSwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LXMzYy9yZWdzLXRpbWVyLmggYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1zM2MvcmVncy10aW1lci5oCmluZGV4IDhiMGQ1OTQuLmI1YmM2OTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LXMzYy9yZWdzLXRpbWVyLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjL3JlZ3MtdGltZXIuaApAQCAtNjUsNiArNjUsMTUgQEAKICNkZWZpbmUgUzNDMjQxMF9UQ0ZHMV9NVVgwX1RDTEswICAoNDw8MCkKICNkZWZpbmUgUzNDMjQxMF9UQ0ZHMV9NVVgwX01BU0sJICAoMTU8PDApCiAKKyNkZWZpbmUgUzNDMjQxMF9UQ0ZHMV9NVVhfRElWMgkgICgwPDwwKQorI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWF9ESVY0CSAgKDE8PDApCisjZGVmaW5lIFMzQzI0MTBfVENGRzFfTVVYX0RJVjgJICAoMjw8MCkKKyNkZWZpbmUgUzNDMjQxMF9UQ0ZHMV9NVVhfRElWMTYgICAoMzw8MCkKKyNkZWZpbmUgUzNDMjQxMF9UQ0ZHMV9NVVhfVENMSyAgICAoNDw8MCkKKyNkZWZpbmUgUzNDMjQxMF9UQ0ZHMV9NVVhfTUFTSwkgICgxNTw8MCkKKworI2RlZmluZSBTM0MyNDEwX1RDRkcxX1NISUZUKHgpCSAgKCh4KSAqIDQpCisKIC8qIGZvciBlYWNoIHRpbWVyLCB3ZSBoYXZlIGFuIGNvdW50IGJ1ZmZlciwgYW4gY29tcGFyZSBidWZmZXIgYW5kCiAgKiBhbiBvYnNlcnZhdGlvbiBidWZmZXIKICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vcGxhdC1zM2MyNHh4L2RldnMuaCBiL2luY2x1ZGUvYXNtLWFybS9wbGF0LXMzYzI0eHgvZGV2cy5oCmluZGV4IGY5ZDZmMDMuLmJhZGFhYzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LXMzYzI0eHgvZGV2cy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9wbGF0LXMzYzI0eHgvZGV2cy5oCkBAIC0yMSw2ICsyMSw4IEBACiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSAqczNjMjR4eF91YXJ0X2RldnNbXTsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpzM2MyNHh4X3VhcnRfc3JjW107CiAKK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXJbXTsKKwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV91c2I7CiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX2xjZDsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2Vfd2R0OwpAQCAtMzYsMTEgKzM4LDYgQEAKIAogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV9uYW5kOwogCi1leHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyMDsKLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXIxOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcjI7Ci1leHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyMzsKLQogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV91c2JnYWRnZXQ7CiAKIC8qIHMzYzI0NDAgc3BlY2lmaWMgZGV2aWNlcyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3J0Yy5oIGIvaW5jbHVkZS9hc20tYXJtL3J0Yy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTVjOTIzLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLWFybS9ydGMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiAgbGludXgvaW5jbHVkZS9hc20tYXJtL3J0Yy5oCi0gKgotICogIENvcHlyaWdodCAoQykgMjAwMyBEZWVwIEJsdWUgU29sdXRpb25zIEx0ZC4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0jaWZuZGVmIEFTTUFSTV9SVENfSAotI2RlZmluZSBBU01BUk1fUlRDX0gKLQotc3RydWN0IG1vZHVsZTsKLQotc3RydWN0IHJ0Y19vcHMgewotCXN0cnVjdCBtb2R1bGUJKm93bmVyOwotCWludAkJKCpvcGVuKSh2b2lkKTsKLQl2b2lkCQkoKnJlbGVhc2UpKHZvaWQpOwotCWludAkJKCppb2N0bCkodW5zaWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKLQotCWludAkJKCpyZWFkX3RpbWUpKHN0cnVjdCBydGNfdGltZSAqKTsKLQlpbnQJCSgqc2V0X3RpbWUpKHN0cnVjdCBydGNfdGltZSAqKTsKLQlpbnQJCSgqcmVhZF9hbGFybSkoc3RydWN0IHJ0Y193a2Fscm0gKik7Ci0JaW50CQkoKnNldF9hbGFybSkoc3RydWN0IHJ0Y193a2Fscm0gKik7Ci0JaW50CQkoKnByb2MpKGNoYXIgKmJ1Zik7Ci19OwotCi12b2lkIHJ0Y19uZXh0X2FsYXJtX3RpbWUoc3RydWN0IHJ0Y190aW1lICosIHN0cnVjdCBydGNfdGltZSAqLCBzdHJ1Y3QgcnRjX3RpbWUgKik7Ci12b2lkIHJ0Y191cGRhdGUodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7Ci1pbnQgcmVnaXN0ZXJfcnRjKHN0cnVjdCBydGNfb3BzICopOwotdm9pZCB1bnJlZ2lzdGVyX3J0YyhzdHJ1Y3QgcnRjX29wcyAqKTsKLQotc3RhdGljIGlubGluZSBpbnQgcnRjX3BlcmlvZGljX2FsYXJtKHN0cnVjdCBydGNfdGltZSAqdG0pCi17Ci0JcmV0dXJuICAodG0tPnRtX3llYXIgPT0gLTEpIHx8Ci0JCSgodW5zaWduZWQpdG0tPnRtX21vbiA+PSAxMikgfHwKLQkJKCh1bnNpZ25lZCkodG0tPnRtX21kYXkgLSAxKSA+PSAzMSkgfHwKLQkJKCh1bnNpZ25lZCl0bS0+dG1faG91ciA+IDIzKSB8fAotCQkoKHVuc2lnbmVkKXRtLT50bV9taW4gPiA1OSkgfHwKLQkJKCh1bnNpZ25lZCl0bS0+dG1fc2VjID4gNTkpOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS90bGJmbHVzaC5oIGIvaW5jbHVkZS9hc20tYXJtL3RsYmZsdXNoLmgKaW5kZXggOGM2YmMxYi4uOTA5NjU2YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL3RsYmZsdXNoLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL3RsYmZsdXNoLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNkZWZpbmUgVExCX1Y2X0RfQVNJRAkoMSA8PCAxNykKICNkZWZpbmUgVExCX1Y2X0lfQVNJRAkoMSA8PCAxOCkKIAorI2RlZmluZSBUTEJfTDJDTEVBTl9GUgkoMSA8PCAyOSkJCS8qIEZlcm9jZW9uICovCiAjZGVmaW5lIFRMQl9EQ0xFQU4JKDEgPDwgMzApCiAjZGVmaW5lIFRMQl9XQgkJKDEgPDwgMzEpCiAKQEAgLTUxLDYgKzUyLDcgQEAKICAqCSAgdjQgICAgLSBBUk12NCB3aXRob3V0IHdyaXRlIGJ1ZmZlcgogICoJICB2NHdiICAtIEFSTXY0IHdpdGggd3JpdGUgYnVmZmVyIHdpdGhvdXQgSSBUTEIgZmx1c2ggZW50cnkgaW5zdHJ1Y3Rpb24KICAqCSAgdjR3YmkgLSBBUk12NCB3aXRoIHdyaXRlIGJ1ZmZlciB3aXRoIEkgVExCIGZsdXNoIGVudHJ5IGluc3RydWN0aW9uCisgKgkgIGZyICAgIC0gRmVyb2Nlb24gKHY0d2JpIHdpdGggbm9uLW91dGVyLWNhY2hlYWJsZSBwYWdlIHRhYmxlIHdhbGtzKQogICoJICB2NndiaSAtIEFSTXY2IHdpdGggd3JpdGUgYnVmZmVyIHdpdGggSSBUTEIgZmx1c2ggZW50cnkgaW5zdHJ1Y3Rpb24KICAqLwogI3VuZGVmIF9UTEIKQEAgLTEwMyw2ICsxMDUsMjMgQEAKICMgZGVmaW5lIHY0d2JpX2Fsd2F5c19mbGFncwkoLTFVTCkKICNlbmRpZgogCisjZGVmaW5lIGZyX3RsYl9mbGFncwkoVExCX1dCIHwgVExCX0RDTEVBTiB8IFRMQl9MMkNMRUFOX0ZSIHwgXAorCQkJIFRMQl9WNF9JX0ZVTEwgfCBUTEJfVjRfRF9GVUxMIHwgXAorCQkJIFRMQl9WNF9JX1BBR0UgfCBUTEJfVjRfRF9QQUdFKQorCisjaWZkZWYgQ09ORklHX0NQVV9UTEJfRkVST0NFT04KKyMgZGVmaW5lIGZyX3Bvc3NpYmxlX2ZsYWdzCWZyX3RsYl9mbGFncworIyBkZWZpbmUgZnJfYWx3YXlzX2ZsYWdzCWZyX3RsYl9mbGFncworIyBpZmRlZiBfVExCCisjICBkZWZpbmUgTVVMVElfVExCIDEKKyMgZWxzZQorIyAgZGVmaW5lIF9UTEIgdjR3YmkKKyMgZW5kaWYKKyNlbHNlCisjIGRlZmluZSBmcl9wb3NzaWJsZV9mbGFncwkwCisjIGRlZmluZSBmcl9hbHdheXNfZmxhZ3MJKC0xVUwpCisjZW5kaWYKKwogI2RlZmluZSB2NHdiX3RsYl9mbGFncwkoVExCX1dCIHwgVExCX0RDTEVBTiB8IFwKIAkJCSBUTEJfVjRfSV9GVUxMIHwgVExCX1Y0X0RfRlVMTCB8IFwKIAkJCSBUTEJfVjRfRF9QQUdFKQpAQCAtMjQ1LDEyICsyNjQsMTQgQEAKICNkZWZpbmUgcG9zc2libGVfdGxiX2ZsYWdzCSh2M19wb3NzaWJsZV9mbGFncyB8IFwKIAkJCQkgdjRfcG9zc2libGVfZmxhZ3MgfCBcCiAJCQkJIHY0d2JpX3Bvc3NpYmxlX2ZsYWdzIHwgXAorCQkJCSBmcl9wb3NzaWJsZV9mbGFncyB8IFwKIAkJCQkgdjR3Yl9wb3NzaWJsZV9mbGFncyB8IFwKIAkJCQkgdjZ3YmlfcG9zc2libGVfZmxhZ3MpCiAKICNkZWZpbmUgYWx3YXlzX3RsYl9mbGFncwkodjNfYWx3YXlzX2ZsYWdzICYgXAogCQkJCSB2NF9hbHdheXNfZmxhZ3MgJiBcCiAJCQkJIHY0d2JpX2Fsd2F5c19mbGFncyAmIFwKKwkJCQkgZnJfYWx3YXlzX2ZsYWdzICYgXAogCQkJCSB2NHdiX2Fsd2F5c19mbGFncyAmIFwKIAkJCQkgdjZ3YmlfYWx3YXlzX2ZsYWdzKQogCkBAIC00MTcsNiArNDM4LDExIEBACiAJaWYgKHRsYl9mbGFnKFRMQl9EQ0xFQU4pKQogCQlhc20oIm1jcglwMTUsIDAsICUwLCBjNywgYzEwLCAxCUAgZmx1c2hfcG1kIgogCQkJOiA6ICJyIiAocG1kKSA6ICJjYyIpOworCisJaWYgKHRsYl9mbGFnKFRMQl9MMkNMRUFOX0ZSKSkKKwkJYXNtKCJtY3IJcDE1LCAxLCAlMCwgYzE1LCBjOSwgMSAgQCBMMiBmbHVzaF9wbWQiCisJCQk6IDogInIiIChwbWQpIDogImNjIik7CisKIAlpZiAodGxiX2ZsYWcoVExCX1dCKSkKIAkJZHNiKCk7CiB9CkBAIC00MjgsNiArNDU0LDEwIEBACiAJaWYgKHRsYl9mbGFnKFRMQl9EQ0xFQU4pKQogCQlhc20oIm1jcglwMTUsIDAsICUwLCBjNywgYzEwLCAxCUAgZmx1c2hfcG1kIgogCQkJOiA6ICJyIiAocG1kKSA6ICJjYyIpOworCisJaWYgKHRsYl9mbGFnKFRMQl9MMkNMRUFOX0ZSKSkKKwkJYXNtKCJtY3IJcDE1LCAxLCAlMCwgYzE1LCBjOSwgMSAgQCBMMiBmbHVzaF9wbWQiCisJCQk6IDogInIiIChwbWQpIDogImNjIik7CiB9CiAKICN1bmRlZiB0bGJfZmxhZwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvYm9hcmQuaCBiL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL2JvYXJkLmgKaW5kZXggYTRlMmQyOC4uYjRjZGRmYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvYm9hcmQuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9ib2FyZC5oCkBAIC04LDYgKzgsMTIgQEAKIAogI2RlZmluZSBHUElPX1BJTl9OT05FCSgtMSkKIAorLyoKKyAqIENsb2NrIHJhdGVzIGZvciB2YXJpb3VzIG9uLWJvYXJkIG9zY2lsbGF0b3JzLiBUaGUgbnVtYmVyIG9mIGVudHJpZXMKKyAqIGluIHRoaXMgYXJyYXkgaXMgY2hpcC1kZXBlbmRlbnQuCisgKi8KK2V4dGVybiB1bnNpZ25lZCBsb25nIGF0MzJfYm9hcmRfb3NjX3JhdGVzW107CisgIAogLyogQWRkIGJhc2ljIGRldmljZXM6IHN5c3RlbSBtYW5hZ2VyLCBpbnRlcnJ1cHQgY29udHJvbGxlciwgcG9ydG11eGVzLCBldGMuICovCiB2b2lkIGF0MzJfYWRkX3N5c3RlbV9kZXZpY2VzKHZvaWQpOwogCkBAIC0zNiw3ICs0Miw4IEBACiBzdHJ1Y3QgYXRtZWxfbGNkZmJfaW5mbzsKIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKgogYXQzMl9hZGRfZGV2aWNlX2xjZGModW5zaWduZWQgaW50IGlkLCBzdHJ1Y3QgYXRtZWxfbGNkZmJfaW5mbyAqZGF0YSwKLQkJICAgICB1bnNpZ25lZCBsb25nIGZibWVtX3N0YXJ0LCB1bnNpZ25lZCBsb25nIGZibWVtX2xlbik7CisJCSAgICAgdW5zaWduZWQgbG9uZyBmYm1lbV9zdGFydCwgdW5zaWduZWQgbG9uZyBmYm1lbV9sZW4sCisJCSAgICAgdW5zaWduZWQgaW50IHBpbl9jb25maWcpOwogCiBzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhOwogc3RydWN0IHBsYXRmb3JtX2RldmljZSAqCkBAIC03Myw2ICs4MCw3IEBACiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphdDMyX2FkZF9kZXZpY2VfbWNpKHVuc2lnbmVkIGludCBpZCk7CiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphdDMyX2FkZF9kZXZpY2VfYWM5N2ModW5zaWduZWQgaW50IGlkKTsKIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmF0MzJfYWRkX2RldmljZV9hYmRhYyh1bnNpZ25lZCBpbnQgaWQpOworc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYXQzMl9hZGRfZGV2aWNlX3BzaWYodW5zaWduZWQgaW50IGlkKTsKIAogc3RydWN0IGNmX3BsYXRmb3JtX2RhdGEgewogCWludAlkZXRlY3RfcGluOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvaW5pdC5oIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvaW5pdC5oCmluZGV4IDVlNzVkODUuLmJjNDBlM2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL2luaXQuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9pbml0LmgKQEAgLTEzLDEwICsxMyw2IEBACiB2b2lkIHNldHVwX3BsYXRmb3JtKHZvaWQpOwogdm9pZCBzZXR1cF9ib2FyZCh2b2lkKTsKIAotLyogQ2FsbGVkIGJ5IHNldHVwX3BsYXRmb3JtICovCi12b2lkIGF0MzJfY2xvY2tfaW5pdCh2b2lkKTsKLXZvaWQgYXQzMl9wb3J0bXV4X2luaXQodm9pZCk7Ci0KIHZvaWQgYXQzMl9zZXR1cF9zZXJpYWxfY29uc29sZSh1bnNpZ25lZCBpbnQgdXNhcnRfaWQpOwogCiAjZW5kaWYgLyogX19BU01fQVZSMzJfQVQzMkFQX0lOSVRfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9wbS5oIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvcG0uaAppbmRleCAzNTZlNDMwLi45NzliMzU1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9wbS5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL3BtLmgKQEAgLTE5LDYgKzE5LDcgQEAKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIGV4dGVybiB2b2lkIGNwdV9lbnRlcl9pZGxlKHZvaWQpOworZXh0ZXJuIHZvaWQgY3B1X2VudGVyX3N0YW5kYnkodW5zaWduZWQgbG9uZyBzZHJhbWNfYmFzZSk7CiAKIGV4dGVybiBib29sIGRpc2FibGVfaWRsZV9zbGVlcDsKIApAQCAtNDMsNiArNDQsOCBAQAogCWVsc2UKIAkJY3B1X2VudGVyX2lkbGUoKTsKIH0KKwordm9pZCBpbnRjX3NldF9zdXNwZW5kX2hhbmRsZXIodW5zaWduZWQgbG9uZyBvZmZzZXQpOwogI2VuZGlmCiAKICNlbmRpZiAvKiBfX0FTTV9BVlIzMl9BUkNIX1BNX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL3NyYW0uaCBiL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL3NyYW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODM4ZGFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvc3JhbS5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBTaW1wbGUgU1JBTSBhbGxvY2F0b3IKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXRtZWwgQ29ycG9yYXRpb24KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisjaWZuZGVmIF9fQVNNX0FWUjMyX0FSQ0hfU1JBTV9ICisjZGVmaW5lIF9fQVNNX0FWUjMyX0FSQ0hfU1JBTV9ICisKKyNpbmNsdWRlIDxsaW51eC9nZW5hbGxvYy5oPgorCitleHRlcm4gc3RydWN0IGdlbl9wb29sICpzcmFtX3Bvb2w7CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBzcmFtX2FsbG9jKHNpemVfdCBsZW4pCit7CisJaWYgKCFzcmFtX3Bvb2wpCisJCXJldHVybiAwVUw7CisKKwlyZXR1cm4gZ2VuX3Bvb2xfYWxsb2Moc3JhbV9wb29sLCBsZW4pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc3JhbV9mcmVlKHVuc2lnbmVkIGxvbmcgYWRkciwgc2l6ZV90IGxlbikKK3sKKwlyZXR1cm4gZ2VuX3Bvb2xfZnJlZShzcmFtX3Bvb2wsIGFkZHIsIGxlbik7Cit9CisKKyNlbmRpZiAvKiBfX0FTTV9BVlIzMl9BUkNIX1NSQU1fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvbW11X2NvbnRleHQuaCBiL2luY2x1ZGUvYXNtLWF2cjMyL21tdV9jb250ZXh0LmgKaW5kZXggYzM3YzM5MS4uMjdmZjIzNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvbW11X2NvbnRleHQuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9tbXVfY29udGV4dC5oCkBAIC0xMyw3ICsxMyw2IEBACiAjZGVmaW5lIF9fQVNNX0FWUjMyX01NVV9DT05URVhUX0gKIAogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgotI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3JlZy5oPgogI2luY2x1ZGUgPGFzbS1nZW5lcmljL21tX2hvb2tzLmg+CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL3BjaS5oIGIvaW5jbHVkZS9hc20tYXZyMzIvcGNpLmgKaW5kZXggMGY1ZjEzNC4uYTMyYTAyMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvcGNpLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvcGNpLmgKQEAgLTUsNCArNSw2IEBACiAKICNkZWZpbmUgUENJX0RNQV9CVVNfSVNfUEhZUwkoMSkKIAorI2luY2x1ZGUgPGFzbS1nZW5lcmljL3BjaS1kbWEtY29tcGF0Lmg+CisKICNlbmRpZiAvKiBfX0FTTV9BVlIzMl9QQ0lfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi9wZ2FsbG9jLmggYi9pbmNsdWRlL2FzbS1hdnIzMi9wZ2FsbG9jLmgKaW5kZXggNTFmYzFmNi4uNjQwODIxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvcGdhbGxvYy5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL3BnYWxsb2MuaApAQCAtOCw2NSArOCw3OSBAQAogI2lmbmRlZiBfX0FTTV9BVlIzMl9QR0FMTE9DX0gKICNkZWZpbmUgX19BU01fQVZSMzJfUEdBTExPQ19ICiAKLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0jaW5jbHVkZSA8bGludXgvdGhyZWFkcy5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3F1aWNrbGlzdC5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KIAotI2RlZmluZSBwbWRfcG9wdWxhdGVfa2VybmVsKG1tLCBwbWQsIHB0ZSkgXAotCXNldF9wbWQocG1kLCBfX3BtZChfUEFHRV9UQUJMRSArIF9fcGEocHRlKSkpCisjZGVmaW5lIFFVSUNLX1BHRAkwCS8qIFByZXNlcnZlIGtlcm5lbCBtYXBwaW5ncyBvdmVyIGZyZWUgKi8KKyNkZWZpbmUgUVVJQ0tfUFQJMQkvKiBaZXJvIG9uIGZyZWUgKi8KIAotc3RhdGljIF9faW5saW5lX18gdm9pZCBwbWRfcG9wdWxhdGUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBtZF90ICpwbWQsCitzdGF0aWMgaW5saW5lIHZvaWQgcG1kX3BvcHVsYXRlX2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQkgICAgICAgcG1kX3QgKnBtZCwgcHRlX3QgKnB0ZSkKK3sKKwlzZXRfcG1kKHBtZCwgX19wbWQoKHVuc2lnbmVkIGxvbmcpcHRlKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwbWRfcG9wdWxhdGUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBtZF90ICpwbWQsCiAJCQkJICAgIHBndGFibGVfdCBwdGUpCiB7Ci0Jc2V0X3BtZChwbWQsIF9fcG1kKF9QQUdFX1RBQkxFICsgcGFnZV90b19waHlzKHB0ZSkpKTsKKwlzZXRfcG1kKHBtZCwgX19wbWQoKHVuc2lnbmVkIGxvbmcpcGFnZV9hZGRyZXNzKHB0ZSkpKTsKIH0KICNkZWZpbmUgcG1kX3BndGFibGUocG1kKSBwbWRfcGFnZShwbWQpCiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBwZ2RfY3Rvcih2b2lkICp4KQoreworCXBnZF90ICpwZ2QgPSB4OworCisJbWVtY3B5KHBnZCArIFVTRVJfUFRSU19QRVJfUEdELAorCQlzd2FwcGVyX3BnX2RpciArIFVTRVJfUFRSU19QRVJfUEdELAorCQkoUFRSU19QRVJfUEdEIC0gVVNFUl9QVFJTX1BFUl9QR0QpICogc2l6ZW9mKHBnZF90KSk7Cit9CisKIC8qCiAgKiBBbGxvY2F0ZSBhbmQgZnJlZSBwYWdlIHRhYmxlcwogICovCi1zdGF0aWMgX19pbmxpbmVfXyBwZ2RfdCAqcGdkX2FsbG9jKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQorc3RhdGljIGlubGluZSBwZ2RfdCAqcGdkX2FsbG9jKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogewotCXJldHVybiBrY2FsbG9jKFVTRVJfUFRSU19QRVJfUEdELCBzaXplb2YocGdkX3QpLCBHRlBfS0VSTkVMKTsKKwlyZXR1cm4gcXVpY2tsaXN0X2FsbG9jKFFVSUNLX1BHRCwgR0ZQX0tFUk5FTCB8IF9fR0ZQX1JFUEVBVCwgcGdkX2N0b3IpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcGdkX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCiB7Ci0Ja2ZyZWUocGdkKTsKKwlxdWlja2xpc3RfZnJlZShRVUlDS19QR0QsIE5VTEwsIHBnZCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgKnB0ZV9hbGxvY19vbmVfa2VybmVsKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJCQkgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKLQlwdGVfdCAqcHRlOwotCi0JcHRlID0gKHB0ZV90ICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBfX0dGUF9SRVBFQVQpOwotCi0JcmV0dXJuIHB0ZTsKKwlyZXR1cm4gcXVpY2tsaXN0X2FsbG9jKFFVSUNLX1BULCBHRlBfS0VSTkVMIHwgX19HRlBfUkVQRUFULCBOVUxMKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKK3N0YXRpYyBpbmxpbmUgcGd0YWJsZV90IHB0ZV9hbGxvY19vbmUoc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQkJCSB1bnNpZ25lZCBsb25nIGFkZHJlc3MpCiB7Ci0Jc3RydWN0IHBhZ2UgKnB0ZTsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwl2b2lkICpwZzsKIAotCXB0ZSA9IGFsbG9jX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1JFUEVBVCB8IF9fR0ZQX1pFUk8pOwotCWlmICghcHRlKQorCXBnID0gcXVpY2tsaXN0X2FsbG9jKFFVSUNLX1BULCBHRlBfS0VSTkVMIHwgX19HRlBfUkVQRUFULCBOVUxMKTsKKwlpZiAoIXBnKQogCQlyZXR1cm4gTlVMTDsKLQlwZ3RhYmxlX3BhZ2VfY3RvcihwdGUpOwotCXJldHVybiBwdGU7CisKKwlwYWdlID0gdmlydF90b19wYWdlKHBnKTsKKwlwZ3RhYmxlX3BhZ2VfY3RvcihwYWdlKTsKKworCXJldHVybiBwYWdlOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcHRlX2ZyZWVfa2VybmVsKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwdGVfdCAqcHRlKQogewotCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwdGUpOworCXF1aWNrbGlzdF9mcmVlKFFVSUNLX1BULCBOVUxMLCBwdGUpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcHRlX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBndGFibGVfdCBwdGUpCiB7CiAJcGd0YWJsZV9wYWdlX2R0b3IocHRlKTsKLQlfX2ZyZWVfcGFnZShwdGUpOworCXF1aWNrbGlzdF9mcmVlX3BhZ2UoUVVJQ0tfUFQsIE5VTEwsIHB0ZSk7CiB9CiAKICNkZWZpbmUgX19wdGVfZnJlZV90bGIodGxiLHB0ZSkJCQkJXApAQCAtNzUsNiArODksMTAgQEAKIAl0bGJfcmVtb3ZlX3BhZ2UoKHRsYiksIHB0ZSk7CQkJXAogfSB3aGlsZSAoMCkKIAotI2RlZmluZSBjaGVja19wZ3RfY2FjaGUoKSBkbyB7IH0gd2hpbGUoMCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19wZ3RfY2FjaGUodm9pZCkKK3sKKwlxdWlja2xpc3RfdHJpbShRVUlDS19QR0QsIE5VTEwsIDI1LCAxNik7CisJcXVpY2tsaXN0X3RyaW0oUVVJQ0tfUFQsIE5VTEwsIDI1LCAxNik7Cit9CiAKICNlbmRpZiAvKiBfX0FTTV9BVlIzMl9QR0FMTE9DX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLWF2cjMyL3BndGFibGUuaAppbmRleCBjMGU1ZTI5Li5mZWNkZGExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9wZ3RhYmxlLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvcGd0YWJsZS5oCkBAIC0xMjksMTMgKzEyOSw2IEBACiAKICNkZWZpbmUgX1BBR0VfRkxBR1NfQ0FDSEVfTUFTSwkoX1BBR0VfQ0FDSEFCTEUgfCBfUEFHRV9CVUZGRVIgfCBfUEFHRV9XVCkKIAotLyogVE9ETzogQ2hlY2sgZm9yIHNhbmVuZXNzICovCi0vKiBVc2VyLW1vZGUgcGFnZSB0YWJsZSBmbGFncyAodG8gYmUgc2V0IGluIGEgcGdkIG9yIHBtZCBlbnRyeSkgKi8KLSNkZWZpbmUgX1BBR0VfVEFCTEUJCShfUEFHRV9QUkVTRU5UIHwgX1BBR0VfVFlQRV9TTUFMTCB8IF9QQUdFX1JXIFwKLQkJCQkgfCBfUEFHRV9VU0VSIHwgX1BBR0VfQUNDRVNTRUQgfCBfUEFHRV9ESVJUWSkKLS8qIEtlcm5lbC1tb2RlIHBhZ2UgdGFibGUgZmxhZ3MgKi8KLSNkZWZpbmUgX0tFUk5QR19UQUJMRQkJKF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9UWVBFX1NNQUxMIHwgX1BBR0VfUlcgXAotCQkJCSB8IF9QQUdFX0FDQ0VTU0VEIHwgX1BBR0VfRElSVFkpCiAvKiBGbGFncyB0aGF0IG1heSBiZSBtb2RpZmllZCBieSBzb2Z0d2FyZSAqLwogI2RlZmluZSBfUEFHRV9DSEdfTUFTSwkJKFBURV9NQVNLIHwgX1BBR0VfQUNDRVNTRUQgfCBfUEFHRV9ESVJUWSBcCiAJCQkJIHwgX1BBR0VfRkxBR1NfQ0FDSEVfTUFTSykKQEAgLTI2MiwxMCArMjU1LDE0IEBACiB9CiAKICNkZWZpbmUgcG1kX25vbmUoeCkJKCFwbWRfdmFsKHgpKQotI2RlZmluZSBwbWRfcHJlc2VudCh4KQkocG1kX3ZhbCh4KSAmIF9QQUdFX1BSRVNFTlQpCi0jZGVmaW5lIHBtZF9jbGVhcih4cCkJZG8geyBzZXRfcG1kKHhwLCBfX3BtZCgwKSk7IH0gd2hpbGUgKDApCi0jZGVmaW5lCXBtZF9iYWQoeCkJKChwbWRfdmFsKHgpICYgKH5QQUdFX01BU0sgJiB+X1BBR0VfVVNFUikpCVwKLQkJCSAhPSBfS0VSTlBHX1RBQkxFKQorI2RlZmluZSBwbWRfcHJlc2VudCh4KQkocG1kX3ZhbCh4KSkKKworc3RhdGljIGlubGluZSB2b2lkIHBtZF9jbGVhcihwbWRfdCAqcG1kcCkKK3sKKwlzZXRfcG1kKHBtZHAsIF9fcG1kKDApKTsKK30KKworI2RlZmluZQlwbWRfYmFkKHgpCShwbWRfdmFsKHgpICYgflBBR0VfTUFTSykKIAogLyoKICAqIFBlcm1hbmVudCBhZGRyZXNzIG9mIGEgcGFnZS4gV2UgZG9uJ3Qgc3VwcG9ydCBoaWdobWVtLCBzbyB0aGlzIGlzCkBAIC0zMDMsMTkgKzMwMCwxNiBAQAogCiAjZGVmaW5lIHBhZ2VfcHRlKHBhZ2UpCXBhZ2VfcHRlX3Byb3QocGFnZSwgX19wZ3Byb3QoMCkpCiAKLSNkZWZpbmUgcG1kX3BhZ2VfdmFkZHIocG1kKQkJCQkJXAotCSgodW5zaWduZWQgbG9uZykgX192YShwbWRfdmFsKHBtZCkgJiBQQUdFX01BU0spKQotCi0jZGVmaW5lIHBtZF9wYWdlKHBtZCkJKHBoeXNfdG9fcGFnZShwbWRfdmFsKHBtZCkpKQorI2RlZmluZSBwbWRfcGFnZV92YWRkcihwbWQpCXBtZF92YWwocG1kKQorI2RlZmluZSBwbWRfcGFnZShwbWQpCQkodmlydF90b19wYWdlKHBtZF92YWwocG1kKSkpCiAKIC8qIHRvIGZpbmQgYW4gZW50cnkgaW4gYSBwYWdlLXRhYmxlLWRpcmVjdG9yeS4gKi8KLSNkZWZpbmUgcGdkX2luZGV4KGFkZHJlc3MpICgoKGFkZHJlc3MpID4+IFBHRElSX1NISUZUKSAmIChQVFJTX1BFUl9QR0QtMSkpCi0jZGVmaW5lIHBnZF9vZmZzZXQobW0sIGFkZHJlc3MpICgobW0pLT5wZ2QrcGdkX2luZGV4KGFkZHJlc3MpKQotI2RlZmluZSBwZ2Rfb2Zmc2V0X2N1cnJlbnQoYWRkcmVzcykJCQkJXAotCSgocGdkX3QgKilfX21mc3IoU1lTUkVHX1BUQlIpICsgcGdkX2luZGV4KGFkZHJlc3MpKQorI2RlZmluZSBwZ2RfaW5kZXgoYWRkcmVzcykJKCgoYWRkcmVzcykgPj4gUEdESVJfU0hJRlQpCVwKKwkJCQkgJiAoUFRSU19QRVJfUEdEIC0gMSkpCisjZGVmaW5lIHBnZF9vZmZzZXQobW0sIGFkZHJlc3MpCSgobW0pLT5wZ2QgKyBwZ2RfaW5kZXgoYWRkcmVzcykpCiAKIC8qIHRvIGZpbmQgYW4gZW50cnkgaW4gYSBrZXJuZWwgcGFnZS10YWJsZS1kaXJlY3RvcnkgKi8KLSNkZWZpbmUgcGdkX29mZnNldF9rKGFkZHJlc3MpIHBnZF9vZmZzZXQoJmluaXRfbW0sIGFkZHJlc3MpCisjZGVmaW5lIHBnZF9vZmZzZXRfayhhZGRyZXNzKQlwZ2Rfb2Zmc2V0KCZpbml0X21tLCBhZGRyZXNzKQogCiAvKiBGaW5kIGFuIGVudHJ5IGluIHRoZSB0aGlyZC1sZXZlbCBwYWdlIHRhYmxlLi4gKi8KICNkZWZpbmUgcHRlX2luZGV4KGFkZHJlc3MpCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL3NldHVwLmggYi9pbmNsdWRlL2FzbS1hdnIzMi9zZXR1cC5oCmluZGV4IGVhMzA3MGYuLmZmNWI3Y2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL3NldHVwLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvc2V0dXAuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2IEF0bWVsIENvcnBvcmF0aW9uCiAgKgogICogQmFzZWQgb24gbGludXgvaW5jbHVkZS9hc20tYXJtL3NldHVwLmgKLSAqICAgQ29weXJpZ2h0IChDKSAxOTk3LTE5OTkgUnVzc2VsIEtpbmcKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk3LTE5OTkgUnVzc2VsbCBLaW5nCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi90aHJlYWRfaW5mby5oIGIvaW5jbHVkZS9hc20tYXZyMzIvdGhyZWFkX2luZm8uaAppbmRleCAwNzA0OWY2Li5kZjY4NjMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi90aHJlYWRfaW5mby5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL3RocmVhZF9pbmZvLmgKQEAgLTg4LDYgKzg4LDcgQEAKICNkZWZpbmUgVElGX01FTURJRQkJNgogI2RlZmluZSBUSUZfUkVTVE9SRV9TSUdNQVNLCTcJLyogcmVzdG9yZSBzaWduYWwgbWFzayBpbiBkb19zaWduYWwgKi8KICNkZWZpbmUgVElGX0NQVV9HT0lOR19UT19TTEVFUAk4CS8qIENQVSBpcyBlbnRlcmluZyBzbGVlcCAwIG1vZGUgKi8KKyNkZWZpbmUgVElGX0ZSRUVaRQkJMjkKICNkZWZpbmUgVElGX0RFQlVHCQkzMAkvKiBkZWJ1Z2dpbmcgZW5hYmxlZCAqLwogI2RlZmluZSBUSUZfVVNFUlNQQUNFCQkzMSAgICAgIC8qIHRydWUgaWYgRlMgc2V0cyB1c2Vyc3BhY2UgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvdGxiZmx1c2guaCBiL2luY2x1ZGUvYXNtLWF2cjMyL3RsYmZsdXNoLmgKaW5kZXggNWJjN2M4OC4uYmY5MGE3OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvdGxiZmx1c2guaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi90bGJmbHVzaC5oCkBAIC0yNiw3ICsyNiw2IEBACiBleHRlcm4gdm9pZCBmbHVzaF90bGJfcmFuZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJCQkgICAgdW5zaWduZWQgbG9uZyBlbmQpOwogZXh0ZXJuIHZvaWQgZmx1c2hfdGxiX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgcGFnZSk7Ci1leHRlcm4gdm9pZCBfX2ZsdXNoX3RsYl9wYWdlKHVuc2lnbmVkIGxvbmcgYXNpZCwgdW5zaWduZWQgbG9uZyBwYWdlKTsKIAogZXh0ZXJuIHZvaWQgZmx1c2hfdGxiX2tlcm5lbF9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWZydi9zeXN0ZW0uaCBiL2luY2x1ZGUvYXNtLWZydi9zeXN0ZW0uaAppbmRleCBkM2ExMmE5Li43NzQyZWMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1mcnYvc3lzdGVtLmgKKysrIGIvaW5jbHVkZS9hc20tZnJ2L3N5c3RlbS5oCkBAIC04Nyw3ICs4Nyw3IEBACiB9IHdoaWxlKDApCiAKICNkZWZpbmUgaXJxc19kaXNhYmxlZCgpIFwKLQkoe3Vuc2lnbmVkIGxvbmcgZmxhZ3M7IGxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOyBmbGFnczsgfSkKKwkoe3Vuc2lnbmVkIGxvbmcgZmxhZ3M7IGxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOyAhIWZsYWdzOyB9KQogCiAjZGVmaW5lCWxvY2FsX2lycV9zYXZlKGZsYWdzKQkJCVwKIGRvIHsJCQkJCQlcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZC5hc20gYi9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZC5hc20KaW5kZXggOTJhNmQ5MS4uN2NkMjViOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQuYXNtCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkLmFzbQpAQCAtMSw2ICsxLDYgQEAKIGhlYWRlci15ICArPSBrdm0uaAogCi1pZmVxICgkKHdpbGRjYXJkIGluY2x1ZGUvYXNtLSQoU1JDQVJDSCkvYS5vdXQuaCksaW5jbHVkZS9hc20tJChTUkNBUkNIKS9hLm91dC5oKQoraWZuZXEgKCQod2lsZGNhcmQgJChzcmN0cmVlKS9pbmNsdWRlL2FzbS0kKFNSQ0FSQ0gpL2Eub3V0LmgpLCkKIHVuaWZkZWYteSArPSBhLm91dC5oCiBlbmRpZgogdW5pZmRlZi15ICs9IGF1eHZlYy5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy5oIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMuaAppbmRleCA4NWZkMGFhLi40ZWMwYTI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLmgKQEAgLTIsNyArMiw3IEBACiAjZGVmaW5lIF9BU01fR0VORVJJQ19BVE9NSUNfSAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNSBTaWxpY29uIEdyYXBoaWNzLCBJbmMuCi0gKglDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4KKyAqCUNocmlzdG9waCBMYW1ldGVyCiAgKgogICogQWxsb3dzIHRvIHByb3ZpZGUgYXJjaCBpbmRlcGVuZGVudCBhdG9taWMgZGVmaW5pdGlvbnMgd2l0aG91dCB0aGUgbmVlZCB0bwogICogZWRpdCBhbGwgYXJjaCBzcGVjaWZpYyBhdG9taWMuaCBmaWxlcy4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLmgKaW5kZXggNDRlZjMyOS4uNGZjZTNkYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLmgKKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLmgKQEAgLTE5Nyw2ICsxOTcsNjMgQEAKIH0KICNlbmRpZiAvKiBDT05GSUdfTU1VICovCiAKK3N0YXRpYyBpbmxpbmUgcHRlX3QgX19wdGVwX21vZGlmeV9wcm90X3N0YXJ0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJICAgICBwdGVfdCAqcHRlcCkKK3sKKwkvKgorCSAqIEdldCB0aGUgY3VycmVudCBwdGUgc3RhdGUsIGJ1dCB6ZXJvIGl0IG91dCB0byBtYWtlIGl0CisJICogbm9uLXByZXNlbnQsIHByZXZlbnRpbmcgdGhlIGhhcmR3YXJlIGZyb20gYXN5bmNocm9ub3VzbHkKKwkgKiB1cGRhdGluZyBpdC4KKwkgKi8KKwlyZXR1cm4gcHRlcF9nZXRfYW5kX2NsZWFyKG1tLCBhZGRyLCBwdGVwKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIF9fcHRlcF9tb2RpZnlfcHJvdF9jb21taXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sCisJCQkJCSAgICAgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkJCQkgICAgIHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUpCit7CisJLyoKKwkgKiBUaGUgcHRlIGlzIG5vbi1wcmVzZW50LCBzbyB0aGVyZSdzIG5vIGhhcmR3YXJlIHN0YXRlIHRvCisJICogcHJlc2VydmUuCisJICovCisJc2V0X3B0ZV9hdChtbSwgYWRkciwgcHRlcCwgcHRlKTsKK30KKworI2lmbmRlZiBfX0hBVkVfQVJDSF9QVEVQX01PRElGWV9QUk9UX1RSQU5TQUNUSU9OCisvKgorICogU3RhcnQgYSBwdGUgcHJvdGVjdGlvbiByZWFkLW1vZGlmeS13cml0ZSB0cmFuc2FjdGlvbiwgd2hpY2gKKyAqIHByb3RlY3RzIGFnYWluc3QgYXN5bmNocm9ub3VzIGhhcmR3YXJlIG1vZGlmaWNhdGlvbnMgdG8gdGhlIHB0ZS4KKyAqIFRoZSBpbnRlbnRpb24gaXMgbm90IHRvIHByZXZlbnQgdGhlIGhhcmR3YXJlIGZyb20gbWFraW5nIHB0ZQorICogdXBkYXRlcywgYnV0IHRvIHByZXZlbnQgYW55IHVwZGF0ZXMgaXQgbWF5IG1ha2UgZnJvbSBiZWluZyBsb3N0LgorICoKKyAqIFRoaXMgZG9lcyBub3QgcHJvdGVjdCBhZ2FpbnN0IG90aGVyIHNvZnR3YXJlIG1vZGlmaWNhdGlvbnMgb2YgdGhlCisgKiBwdGU7IHRoZSBhcHByb3ByaWF0ZSBwdGUgbG9jayBtdXN0IGJlIGhlbGQgb3ZlciB0aGUgdHJhbnNhdGlvbi4KKyAqCisgKiBOb3RlIHRoYXQgdGhpcyBpbnRlcmZhY2UgaXMgaW50ZW5kZWQgdG8gYmUgYmF0Y2hhYmxlLCBtZWFuaW5nIHRoYXQKKyAqIHB0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0IG1heSBub3QgYWN0dWFsbHkgdXBkYXRlIHRoZSBwdGUsIGJ1dCBtZXJlbHkKKyAqIHF1ZXVlIHRoZSB1cGRhdGUgdG8gYmUgZG9uZSBhdCBzb21lIGxhdGVyIHRpbWUuICBUaGUgdXBkYXRlIG11c3QgYmUKKyAqIGFjdHVhbGx5IGNvbW1pdHRlZCBiZWZvcmUgdGhlIHB0ZSBsb2NrIGlzIHJlbGVhc2VkLCBob3dldmVyLgorICovCitzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQoc3RydWN0IG1tX3N0cnVjdCAqbW0sCisJCQkJCSAgIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJICAgcHRlX3QgKnB0ZXApCit7CisJcmV0dXJuIF9fcHRlcF9tb2RpZnlfcHJvdF9zdGFydChtbSwgYWRkciwgcHRlcCk7Cit9CisKKy8qCisgKiBDb21taXQgYW4gdXBkYXRlIHRvIGEgcHRlLCBsZWF2aW5nIGFueSBoYXJkd2FyZS1jb250cm9sbGVkIGJpdHMgaW4KKyAqIHRoZSBQVEUgdW5tb2RpZmllZC4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHB0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCQkgICB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJCSAgIHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUpCit7CisJX19wdGVwX21vZGlmeV9wcm90X2NvbW1pdChtbSwgYWRkciwgcHRlcCwgcHRlKTsKK30KKyNlbmRpZiAvKiBfX0hBVkVfQVJDSF9QVEVQX01PRElGWV9QUk9UX1RSQU5TQUNUSU9OICovCisKIC8qCiAgKiBBIGZhY2lsaXR5IHRvIHByb3ZpZGUgbGF6eSBNTVUgYmF0Y2hpbmcuICBUaGlzIGFsbG93cyBQVEUgdXBkYXRlcyBhbmQKICAqIHBhZ2UgaW52YWxpZGF0aW9ucyB0byBiZSBkZWxheWVkIHVudGlsIGEgY2FsbCB0byBsZWF2ZSBsYXp5IE1NVSBtb2RlCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL3RvcG9sb2d5LmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL3RvcG9sb2d5LmgKaW5kZXggYTZhZWE3OS4uNTRiYmY2ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy90b3BvbG9neS5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdG9wb2xvZ3kuaApAQCAtNjAsNyArNjAsOCBAQAogI2lmbmRlZiBub2RlX3RvX2NwdW1hc2tfcHRyCiAKICNkZWZpbmUJbm9kZV90b19jcHVtYXNrX3B0cih2LCBub2RlKSAJCQkJCVwKLQkJY3B1bWFza190IF8jI3YgPSBub2RlX3RvX2NwdW1hc2sobm9kZSksICp2ID0gJl8jI3YKKwkJY3B1bWFza190IF8jI3YgPSBub2RlX3RvX2NwdW1hc2sobm9kZSk7CQkJXAorCQljb25zdCBjcHVtYXNrX3QgKnYgPSAmXyMjdgogCiAjZGVmaW5lIG5vZGVfdG9fY3B1bWFza19wdHJfbmV4dCh2LCBub2RlKQkJCQlcCiAJCQkgIF8jI3YgPSBub2RlX3RvX2NwdW1hc2sobm9kZSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaAppbmRleCBmMDU0Nzc4Li5iMjA0MDk0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL3ZtbGludXgubGRzLmgKKysrIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy92bWxpbnV4Lmxkcy5oCkBAIC02Nyw2ICs2Nyw4IEBACiAJCSooLnJvZGF0YTEpCQkJCQkJXAogCX0JCQkJCQkJCVwKIAkJCQkJCQkJCVwKKwlCVUdfVEFCTEUJCQkJCQkJXAorCQkJCQkJCQkJXAogCS8qIFBDSSBxdWlya3MgKi8JCQkJCQlcCiAJLnBjaV9maXh1cCAgICAgICAgOiBBVChBRERSKC5wY2lfZml4dXApIC0gTE9BRF9PRkZTRVQpIHsJXAogCQlWTUxJTlVYX1NZTUJPTChfX3N0YXJ0X3BjaV9maXh1cHNfZWFybHkpID0gLjsJCVwKQEAgLTg2LDYgKzg4LDEzIEBACiAJCVZNTElOVVhfU1lNQk9MKF9fZW5kX3BjaV9maXh1cHNfcmVzdW1lKSA9IC47CQlcCiAJfQkJCQkJCQkJXAogCQkJCQkJCQkJXAorCS8qIEJ1aWx0LWluIGZpcm13YXJlIGJsb2JzICovCQkJCQlcCisJLmJ1aWx0aW5fZncgICAgICAgIDogQVQoQUREUiguYnVpbHRpbl9mdykgLSBMT0FEX09GRlNFVCkgewlcCisJCVZNTElOVVhfU1lNQk9MKF9fc3RhcnRfYnVpbHRpbl9mdykgPSAuOwkJCVwKKwkJKiguYnVpbHRpbl9mdykJCQkJCQlcCisJCVZNTElOVVhfU1lNQk9MKF9fZW5kX2J1aWx0aW5fZncpID0gLjsJCQlcCisJfQkJCQkJCQkJXAorCQkJCQkJCQkJXAogCS8qIFJhcGlkSU8gcm91dGUgb3BzICovCQkJCQkJXAogCS5yaW9fcm91dGUgICAgICAgIDogQVQoQUREUigucmlvX3JvdXRlKSAtIExPQURfT0ZGU0VUKSB7CVwKIAkJVk1MSU5VWF9TWU1CT0woX19zdGFydF9yaW9fcm91dGVfb3BzKSA9IC47CQlcCkBAIC05Myw2ICsxMDIsOCBAQAogCQlWTUxJTlVYX1NZTUJPTChfX2VuZF9yaW9fcm91dGVfb3BzKSA9IC47CQlcCiAJfQkJCQkJCQkJXAogCQkJCQkJCQkJXAorCVRSQUNFREFUQQkJCQkJCQlcCisJCQkJCQkJCQlcCiAJLyogS2VybmVsIHN5bWJvbCB0YWJsZTogTm9ybWFsIHN5bWJvbHMgKi8JCQlcCiAJX19rc3ltdGFiICAgICAgICAgOiBBVChBRERSKF9fa3N5bXRhYikgLSBMT0FEX09GRlNFVCkgewkJXAogCQlWTUxJTlVYX1NZTUJPTChfX3N0YXJ0X19fa3N5bXRhYikgPSAuOwkJCVwKQEAgLTMxMCw2ICszMjEsNyBAQAogCQkuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CQlcCiAJCS5jb21tZW50IDAgOiB7ICooLmNvbW1lbnQpIH0KIAorI2lmZGVmIENPTkZJR19HRU5FUklDX0JVRwogI2RlZmluZSBCVUdfVEFCTEUJCQkJCQkJXAogCS4gPSBBTElHTig4KTsJCQkJCQkJXAogCV9fYnVnX3RhYmxlIDogQVQoQUREUihfX2J1Z190YWJsZSkgLSBMT0FEX09GRlNFVCkgewkJXApAQCAtMzE3LDYgKzMyOSwyMSBAQAogCQkqKF9fYnVnX3RhYmxlKQkJCQkJCVwKIAkJX19zdG9wX19fYnVnX3RhYmxlID0gLjsJCQkJCVwKIAl9CisjZWxzZQorI2RlZmluZSBCVUdfVEFCTEUKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1BNX1RSQUNFCisjZGVmaW5lIFRSQUNFREFUQQkJCQkJCQlcCisJLiA9IEFMSUdOKDQpOwkJCQkJCQlcCisJLnRyYWNlZGF0YSA6IEFUKEFERFIoLnRyYWNlZGF0YSkgLSBMT0FEX09GRlNFVCkgewkJXAorCSAgCV9fdHJhY2VkYXRhX3N0YXJ0ID0gLjsJCQkJCVwKKwkJKigudHJhY2VkYXRhKQkJCQkJCVwKKwkgIAlfX3RyYWNlZGF0YV9lbmQgPSAuOwkJCQkJXAorCX0KKyNlbHNlCisjZGVmaW5lIFRSQUNFREFUQQorI2VuZGlmCiAKICNkZWZpbmUgTk9URVMJCQkJCQkJCVwKIAkubm90ZXMgOiBBVChBRERSKC5ub3RlcykgLSBMT0FEX09GRlNFVCkgewkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvYXRvbWljLmggYi9pbmNsdWRlL2FzbS1taXBzL2F0b21pYy5oCmluZGV4IGE3OThkNjIuLjEyMzJiZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvYXRvbWljLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9hdG9taWMuaApAQCAtMjgzLDEwICsyODMsMTAgQEAKIAkJIgliZXF6CSUwLCAyZgkJCQkJXG4iCiAJCSIJIHN1YnUJJTAsICUxLCAlMwkJCQlcbiIKIAkJIgkuc2V0CXJlb3JkZXIJCQkJCVxuIgotCQkiMToJCQkJCQkJXG4iCiAJCSIJLnN1YnNlY3Rpb24gMgkJCQkJXG4iCiAJCSIyOgliCTFiCQkJCQlcbiIKIAkJIgkucHJldmlvdXMJCQkJCVxuIgorCQkiMToJCQkJCQkJXG4iCiAJCSIJLnNldAltaXBzMAkJCQkJXG4iCiAJCTogIj0mciIgKHJlc3VsdCksICI9JnIiICh0ZW1wKSwgIj1tIiAodi0+Y291bnRlcikKIAkJOiAiSXIiIChpKSwgIm0iICh2LT5jb3VudGVyKQpAQCAtNjY0LDEwICs2NjQsMTAgQEAKIAkJIgliZXF6CSUwLCAyZgkJCQkJXG4iCiAJCSIJIGRzdWJ1CSUwLCAlMSwgJTMJCQkJXG4iCiAJCSIJLnNldAlyZW9yZGVyCQkJCQlcbiIKLQkJIjE6CQkJCQkJCVxuIgogCQkiCS5zdWJzZWN0aW9uIDIJCQkJCVxuIgogCQkiMjoJYgkxYgkJCQkJXG4iCiAJCSIJLnByZXZpb3VzCQkJCQlcbiIKKwkJIjE6CQkJCQkJCVxuIgogCQkiCS5zZXQJbWlwczAJCQkJCVxuIgogCQk6ICI9JnIiIChyZXN1bHQpLCAiPSZyIiAodGVtcCksICI9bSIgKHYtPmNvdW50ZXIpCiAJCTogIklyIiAoaSksICJtIiAodi0+Y291bnRlcikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvbWFjaC1hdTF4MDAvYXUxeHh4X3BzYy5oIGIvaW5jbHVkZS9hc20tbWlwcy9tYWNoLWF1MXgwMC9hdTF4eHhfcHNjLmgKaW5kZXggZGFlNGVjYS4uODkyYjdmMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbWlwcy9tYWNoLWF1MXgwMC9hdTF4eHhfcHNjLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9tYWNoLWF1MXgwMC9hdTF4eHhfcHNjLmgKQEAgLTIwNCw2ICsyMDQsMTQgQEAKIAl1MzIJcHNjX2kyc3VkZjsKIH0gcHNjX2kyc190OwogCisjZGVmaW5lIFBTQ19JMlNDRkdfT0ZGU0VUCTB4MDgKKyNkZWZpbmUgUFNDX0kyU01BU0tfT0ZGU0VUCTB4MEMKKyNkZWZpbmUgUFNDX0kyU1BDUl9PRkZTRVQJMHgxMAorI2RlZmluZSBQU0NfSTJTU1RBVF9PRkZTRVQJMHgxNAorI2RlZmluZSBQU0NfSTJTRVZFTlRfT0ZGU0VUCTB4MTgKKyNkZWZpbmUgUFNDX0kyU1JYVFhfT0ZGU0VUCTB4MUMKKyNkZWZpbmUgUFNDX0kyU1VERl9PRkZTRVQJMHgyMAorCiAvKiBJMlMgQ29uZmlnIFJlZ2lzdGVyLiAqLwogI2RlZmluZSBQU0NfSTJTQ0ZHX1JUX01BU0sJKDMgPDwgMzApCiAjZGVmaW5lIFBTQ19JMlNDRkdfUlRfRklGTzEJKDAgPDwgMzApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wb3dlcnBjL0tidWlsZCBiL2luY2x1ZGUvYXNtLXBvd2VycGMvS2J1aWxkCmluZGV4IDczODE5MTYuLmJjYTM1MmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBvd2VycGMvS2J1aWxkCisrKyBiL2luY2x1ZGUvYXNtLXBvd2VycGMvS2J1aWxkCkBAIC0xLDYgKzEsNSBAQAogaW5jbHVkZSBpbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZC5hc20KIAotaGVhZGVyLXkgKz0gYS5vdXQuaAogaGVhZGVyLXkgKz0gYXV4dmVjLmgKIGhlYWRlci15ICs9IGlvY3Rscy5oCiBoZWFkZXIteSArPSBtbWFuLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBvd2VycGMvZnRyYWNlLmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2Z0cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlOTIxMzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2Z0cmFjZS5oCkBAIC0wLDAgKzEsMTQgQEAKKyNpZm5kZWYgX0FTTV9QT1dFUlBDX0ZUUkFDRQorI2RlZmluZSBfQVNNX1BPV0VSUENfRlRSQUNFCisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjZGVmaW5lIE1DT1VOVF9BRERSCQkoKGxvbmcpKF9tY291bnQpKQorI2RlZmluZSBNQ09VTlRfSU5TTl9TSVpFCTQgLyogc2l6ZW9mIG1jb3VudCBjYWxsICovCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCitleHRlcm4gdm9pZCBfbWNvdW50KHZvaWQpOworI2VuZGlmCisKKyNlbmRpZgorCisjZW5kaWYgLyogX0FTTV9QT1dFUlBDX0ZUUkFDRSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9odWdldGxiLmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2h1Z2V0bGIuaAppbmRleCA2NDljNmMzLi5iZTMyZmYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wb3dlcnBjL2h1Z2V0bGIuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2h1Z2V0bGIuaApAQCAtNDksMTIgKzQ5LDYgQEAKIAlyZXR1cm4gcHRlX3dycHJvdGVjdChwdGUpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgaHVnZV9wdGVwX3NldF93cnByb3RlY3Qoc3RydWN0IG1tX3N0cnVjdCAqbW0sCi0JCQkJCSAgIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXApCi17Ci0JcHRlcF9zZXRfd3Jwcm90ZWN0KG1tLCBhZGRyLCBwdGVwKTsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgaHVnZV9wdGVwX3NldF9hY2Nlc3NfZmxhZ3Moc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkJCSAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqcHRlcCwKIAkJCQkJICAgICBwdGVfdCBwdGUsIGludCBkaXJ0eSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBvd2VycGMvaHdfaXJxLmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2h3X2lycS5oCmluZGV4IGFkOGM5ZjcuLmY3NWE1ZmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBvd2VycGMvaHdfaXJxLmgKKysrIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9od19pcnEuaApAQCAtNTksNiArNTksMTEgQEAKIAkJZ2V0X3BhY2EoKS0+aGFyZF9lbmFibGVkID0gMDsJXAogCX0gd2hpbGUoMCkKIAorc3RhdGljIGlubGluZSBpbnQgaXJxc19kaXNhYmxlZF9mbGFncyh1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCXJldHVybiBmbGFncyA9PSAwOworfQorCiAjZWxzZQogCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PS0UpCkBAIC0xMTMsNiArMTE4LDExIEBACiAjZGVmaW5lIGhhcmRfaXJxX2VuYWJsZSgpCWxvY2FsX2lycV9lbmFibGUoKQogI2RlZmluZSBoYXJkX2lycV9kaXNhYmxlKCkJbG9jYWxfaXJxX2Rpc2FibGUoKQogCitzdGF0aWMgaW5saW5lIGludCBpcnFzX2Rpc2FibGVkX2ZsYWdzKHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJcmV0dXJuIChmbGFncyAmIE1TUl9FRSkgPT0gMDsKK30KKwogI2VuZGlmIC8qIENPTkZJR19QUEM2NCAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9wZ3RhYmxlLXBwYzY0LmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3BndGFibGUtcHBjNjQuaAppbmRleCBjYzZhNDNiLi43Njg2NTY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wb3dlcnBjL3BndGFibGUtcHBjNjQuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3BndGFibGUtcHBjNjQuaApAQCAtMzE0LDYgKzMxNCwxNiBAQAogCW9sZCA9IHB0ZV91cGRhdGUobW0sIGFkZHIsIHB0ZXAsIF9QQUdFX1JXLCAwKTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIGh1Z2VfcHRlcF9zZXRfd3Jwcm90ZWN0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCQkgICB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKQoreworCXVuc2lnbmVkIGxvbmcgb2xkOworCisJaWYgKChwdGVfdmFsKCpwdGVwKSAmIF9QQUdFX1JXKSA9PSAwKQorCQlyZXR1cm47CisJb2xkID0gcHRlX3VwZGF0ZShtbSwgYWRkciwgcHRlcCwgX1BBR0VfUlcsIDEpOworfQorCiAvKgogICogV2UgY3VycmVudGx5IHJlbW92ZSBlbnRyaWVzIGZyb20gdGhlIGhhc2h0YWJsZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIKICAqIHRoZSBlbnRyeSB3YXMgeW91bmcgb3IgZGlydHkuIFRoZSBnZW5lcmljIHJvdXRpbmVzIG9ubHkgZmx1c2ggaWYgdGhlCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL0tidWlsZCBiL2luY2x1ZGUvYXNtLXMzOTAvS2J1aWxkCmluZGV4IDEzYzk4MDUuLjA5ZjMxMjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvS2J1aWxkCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvS2J1aWxkCkBAIC04LDYgKzgsOSBAQAogaGVhZGVyLXkgKz0gdnRvYy5oCiBoZWFkZXIteSArPSB6Y3J5cHQuaAogaGVhZGVyLXkgKz0ga3ZtLmgKK2hlYWRlci15ICs9IHNjaGlkLmgKK2hlYWRlci15ICs9IGNoc2MuaAogCiB1bmlmZGVmLXkgKz0gY21iLmgKIHVuaWZkZWYteSArPSBkZWJ1Zy5oCit1bmlmZGVmLXkgKz0gY2hwaWQuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC9haXJxLmggYi9pbmNsdWRlL2FzbS1zMzkwL2FpcnEuaAppbmRleCA0MWQwMjhjLi4xYWM4MGQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2FpcnEuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL2FpcnEuaApAQCAtMTMsNyArMTMsNyBAQAogCiB0eXBlZGVmIHZvaWQgKCphZGFwdGVyX2ludF9oYW5kbGVyX3QpKHZvaWQgKiwgdm9pZCAqKTsKIAotdm9pZCAqczM5MF9yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdChhZGFwdGVyX2ludF9oYW5kbGVyX3QsIHZvaWQgKik7Ci12b2lkIHMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCh2b2lkICopOwordm9pZCAqczM5MF9yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdChhZGFwdGVyX2ludF9oYW5kbGVyX3QsIHZvaWQgKiwgdTgpOwordm9pZCBzMzkwX3VucmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQodm9pZCAqLCB1OCk7CiAKICNlbmRpZiAvKiBfQVNNX1MzOTBfQUlSUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2Njd2Rldi5oIGIvaW5jbHVkZS9hc20tczM5MC9jY3dkZXYuaAppbmRleCAwNjZhYTcwLi5iYTAwN2Q4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2Njd2Rldi5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvY2N3ZGV2LmgKQEAgLTEyLDYgKzEyLDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9mY3guaD4KIAogLyogc3RydWN0cyBmcm9tIGFzbS9jaW8uaCAqLwogc3RydWN0IGlyYjsKQEAgLTE1Nyw2ICsxNTgsMTcgQEAKIGV4dGVybiBpbnQgY2N3X2RldmljZV9yZXN1bWUoc3RydWN0IGNjd19kZXZpY2UgKik7CiBleHRlcm4gaW50IGNjd19kZXZpY2VfaGFsdChzdHJ1Y3QgY2N3X2RldmljZSAqLCB1bnNpZ25lZCBsb25nKTsKIGV4dGVybiBpbnQgY2N3X2RldmljZV9jbGVhcihzdHJ1Y3QgY2N3X2RldmljZSAqLCB1bnNpZ25lZCBsb25nKTsKK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0X2tleShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IHRjdyAqdGN3LAorCQkJICAgIHVuc2lnbmVkIGxvbmcgaW50cGFybSwgdTggbHBtLCB1OCBrZXkpOworaW50IGNjd19kZXZpY2VfdG1fc3RhcnRfa2V5KHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCB0Y3cgKiwKKwkJCSAgICB1bnNpZ25lZCBsb25nLCB1OCwgdTgpOworaW50IGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dF9rZXkoc3RydWN0IGNjd19kZXZpY2UgKiwgc3RydWN0IHRjdyAqLAorCQkJICAgIHVuc2lnbmVkIGxvbmcsIHU4LCB1OCwgaW50KTsKK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0KHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCB0Y3cgKiwKKwkJCSAgICB1bnNpZ25lZCBsb25nLCB1OCk7CitpbnQgY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0KHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCB0Y3cgKiwKKwkJCSAgICB1bnNpZ25lZCBsb25nLCB1OCwgaW50KTsKK2ludCBjY3dfZGV2aWNlX3RtX2ludHJnKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KTsKIAogZXh0ZXJuIGludCBjY3dfZGV2aWNlX3NldF9vbmxpbmUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpOwogZXh0ZXJuIGludCBjY3dfZGV2aWNlX3NldF9vZmZsaW5lKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvY2hwaWQuaCBiL2luY2x1ZGUvYXNtLXMzOTAvY2hwaWQuaAppbmRleCBiMjAzMzM2Li42MDY4NDRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2NocGlkLmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC9jaHBpZC5oCkBAIC0xMCw3ICsxMCw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KLSNpbmNsdWRlIDxhc20vY2lvLmg+CiAKICNkZWZpbmUgX19NQVhfQ0hQSUQgMjU1CiAKQEAgLTQxLDYgKzQwLDkgQEAKIAl9CiB9CiAKKyNpZmRlZiBfX0tFUk5FTF9fCisjaW5jbHVkZSA8YXNtL2Npby5oPgorCiBzdGF0aWMgaW5saW5lIGludCBjaHBfaWRfaXNfdmFsaWQoc3RydWN0IGNocF9pZCAqY2hwaWQpCiB7CiAJcmV0dXJuIChjaHBpZC0+Y3NzaWQgPD0gX19NQVhfQ1NTSUQpOwpAQCAtNDksNSArNTEsNiBAQAogCiAjZGVmaW5lIGNocF9pZF9mb3JfZWFjaChjKSBcCiAJZm9yIChjaHBfaWRfaW5pdChjKTsgY2hwX2lkX2lzX3ZhbGlkKGMpOyBjaHBfaWRfbmV4dChjKSkKKyNlbmRpZiAvKiBfX0tFUk5FTCAqLwogCiAjZW5kaWYgLyogX0FTTV9TMzkwX0NIUElEX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvY2hzYy5oIGIvaW5jbHVkZS9hc20tczM5MC9jaHNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM4ZDBjZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvY2hzYy5oCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogaW9jdGwgaW50ZXJmYWNlIGZvciAvZGV2L2Noc2MKKyAqCisgKiBDb3B5cmlnaHQgMjAwOCBJQk0gQ29ycC4KKyAqIEF1dGhvcihzKTogQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgorICovCisKKyNpZm5kZWYgX0FTTV9DSFNDX0gKKyNkZWZpbmUgX0FTTV9DSFNDX0gKKworI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgorCitzdHJ1Y3QgY2hzY19hc3luY19oZWFkZXIgeworCV9fdTE2IGxlbmd0aDsKKwlfX3UxNiBjb2RlOworCV9fdTMyIGNtZF9kZXBlbmRlbmQ7CisJX191MzIga2V5IDogNDsKKwlfX3UzMiA6IDI4OworCXN0cnVjdCBzdWJjaGFubmVsX2lkIHNpZDsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCitzdHJ1Y3QgY2hzY19hc3luY19hcmVhIHsKKwlzdHJ1Y3QgY2hzY19hc3luY19oZWFkZXIgaGVhZGVyOworCV9fdTggZGF0YVtQQUdFX1NJWkUgLSAxNiAvKiBzaXplIG9mIGNoc2NfYXN5bmNfaGVhZGVyICovXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisKK3N0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCB7CisJX191MTYgbGVuZ3RoOworCV9fdTE2IGNvZGU7CisJX191MzIgcGFybXM7CisJX191OCBkYXRhW1BBR0VfU0laRSAtIDhdOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKK3N0cnVjdCBjaHNjX2NocF9jZCB7CisJc3RydWN0IGNocF9pZCBjaHBpZDsKKwlpbnQgbTsKKwlpbnQgZm10OworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBjcGNiOworfTsKKworc3RydWN0IGNoc2NfY3VfY2QgeworCV9fdTE2IGN1bjsKKwlfX3U4IGNzc2lkOworCWludCBtOworCWludCBmbXQ7CisJc3RydWN0IGNoc2NfcmVzcG9uc2Vfc3RydWN0IGN1Y2I7Cit9OworCitzdHJ1Y3QgY2hzY19zY2hfY3VkIHsKKwlzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZDsKKwlpbnQgZm10OworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBzY3ViOworfTsKKworc3RydWN0IGNvbmZfaWQgeworCWludCBtOworCV9fdTggY3NzaWQ7CisJX191OCBzc2lkOworfTsKKworc3RydWN0IGNoc2NfY29uZl9pbmZvIHsKKwlzdHJ1Y3QgY29uZl9pZCBpZDsKKwlpbnQgZm10OworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBzY2lkOworfTsKKworc3RydWN0IGNjbF9wYXJtX2NocGlkIHsKKwlpbnQgbTsKKwlzdHJ1Y3QgY2hwX2lkIGNocDsKK307CisKK3N0cnVjdCBjY2xfcGFybV9jc3NpZHMgeworCV9fdTggZl9jc3NpZDsKKwlfX3U4IGxfY3NzaWQ7Cit9OworCitzdHJ1Y3QgY2hzY19jb21wX2xpc3QgeworCXN0cnVjdCB7CisJCWVudW0geworCQkJQ0NMX0NVX09OX0NIUCA9IDEsCisJCQlDQ0xfQ0hQX1RZUEVfQ0FQID0gMiwKKwkJCUNDTF9DU1NfSU1HID0gNCwKKwkJCUNDTF9DU1NfSU1HX0NPTkZfQ0hBUiA9IDUsCisJCQlDQ0xfSU9QX0NIUCA9IDYsCisJCX0gY3R5cGU7CisJCWludCBmbXQ7CisJCXN0cnVjdCBjY2xfcGFybV9jaHBpZCBjaHBpZDsKKwkJc3RydWN0IGNjbF9wYXJtX2Nzc2lkcyBjc3NpZHM7CisJfSByZXE7CisJc3RydWN0IGNoc2NfcmVzcG9uc2Vfc3RydWN0IHNjY2w7Cit9OworCitzdHJ1Y3QgY2hzY19kY2FsIHsKKwlzdHJ1Y3QgeworCQllbnVtIHsKKwkJCURDQUxfQ1NTX0lJRF9QTiA9IDQsCisJCX0gYXR5cGU7CisJCV9fdTMyIGxpc3RfcGFybVsyXTsKKwkJaW50IGZtdDsKKwl9IHJlcTsKKwlzdHJ1Y3QgY2hzY19yZXNwb25zZV9zdHJ1Y3Qgc2RjYWw7Cit9OworCitzdHJ1Y3QgY2hzY19jcGRfaW5mbyB7CisJc3RydWN0IGNocF9pZCBjaHBpZDsKKwlpbnQgbTsKKwlpbnQgZm10OworCWludCByZm10OworCWludCBjOworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBjaHBkYjsKK307CisKKyNkZWZpbmUgQ0hTQ19JT0NUTF9NQUdJQyAnYycKKworI2RlZmluZSBDSFNDX1NUQVJUIF9JT1dSKENIU0NfSU9DVExfTUFHSUMsIDB4ODEsIHN0cnVjdCBjaHNjX2FzeW5jX2FyZWEpCisjZGVmaW5lIENIU0NfSU5GT19DSEFOTkVMX1BBVEggX0lPV1IoQ0hTQ19JT0NUTF9NQUdJQywgMHg4MiwgXAorCQkJCSAgICBzdHJ1Y3QgY2hzY19jaHBfY2QpCisjZGVmaW5lIENIU0NfSU5GT19DVSBfSU9XUihDSFNDX0lPQ1RMX01BR0lDLCAweDgzLCBzdHJ1Y3QgY2hzY19jdV9jZCkKKyNkZWZpbmUgQ0hTQ19JTkZPX1NDSF9DVSBfSU9XUihDSFNDX0lPQ1RMX01BR0lDLCAweDg0LCBzdHJ1Y3QgY2hzY19zY2hfY3VkKQorI2RlZmluZSBDSFNDX0lORk9fQ0kgX0lPV1IoQ0hTQ19JT0NUTF9NQUdJQywgMHg4NSwgc3RydWN0IGNoc2NfY29uZl9pbmZvKQorI2RlZmluZSBDSFNDX0lORk9fQ0NMIF9JT1dSKENIU0NfSU9DVExfTUFHSUMsIDB4ODYsIHN0cnVjdCBjaHNjX2NvbXBfbGlzdCkKKyNkZWZpbmUgQ0hTQ19JTkZPX0NQRCBfSU9XUihDSFNDX0lPQ1RMX01BR0lDLCAweDg3LCBzdHJ1Y3QgY2hzY19jcGRfaW5mbykKKyNkZWZpbmUgQ0hTQ19JTkZPX0RDQUwgX0lPV1IoQ0hTQ19JT0NUTF9NQUdJQywgMHg4OCwgc3RydWN0IGNoc2NfZGNhbCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2Npby5oIGIvaW5jbHVkZS9hc20tczM5MC9jaW8uaAppbmRleCAwODE4ZWNkLi42ZGNjYjA3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2Npby5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvY2lvLmgKQEAgLTE2LDcgKzE2LDcgQEAKICNkZWZpbmUgX19NQVhfQ1NTSUQgMAogCiAvKioKLSAqIHN0cnVjdCBzY3N3IC0gc3ViY2hhbm5lbCBzdGF0dXMgd29yZAorICogc3RydWN0IGNtZF9zY3N3IC0gY29tbWFuZC1tb2RlIHN1YmNoYW5uZWwgc3RhdHVzIHdvcmQKICAqIEBrZXk6IHN1YmNoYW5uZWwga2V5CiAgKiBAc2N0bDogc3VzcGVuZCBjb250cm9sCiAgKiBAZXN3ZjogZXN3IGZvcm1hdApAQCAtMzgsNyArMzgsNyBAQAogICogQGNzdGF0OiBzdWJjaGFubmVsIHN0YXR1cwogICogQGNvdW50OiByZXNpZHVhbCBjb3VudAogICovCi1zdHJ1Y3Qgc2NzdyB7CitzdHJ1Y3QgY21kX3Njc3cgewogCV9fdTMyIGtleSAgOiA0OwogCV9fdTMyIHNjdGwgOiAxOwogCV9fdTMyIGVzd2YgOiAxOwpAQCAtNjEsNiArNjEsMTE0IEBACiAJX191MzIgY291bnQgOiAxNjsKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCisvKioKKyAqIHN0cnVjdCB0bV9zY3N3IC0gdHJhbnNwb3J0LW1vZGUgc3ViY2hhbm5lbCBzdGF0dXMgd29yZAorICogQGtleTogc3ViY2hhbm5lbCBrZXkKKyAqIEBlc3dmOiBlc3cgZm9ybWF0CisgKiBAY2M6IGRlZmVycmVkIGNvbmRpdGlvbiBjb2RlCisgKiBAZm10OiBmb3JtYXQKKyAqIEB4OiBJUkItZm9ybWF0IGNvbnRyb2wKKyAqIEBxOiBpbnRlcnJvZ2F0ZS1jb21wbGV0ZQorICogQGVjdGw6IGV4dGVuZGVkIGNvbnRyb2wKKyAqIEBwbm86IHBhdGggbm90IG9wZXJhdGlvbmFsCisgKiBAZmN0bDogZnVuY3Rpb24gY29udHJvbAorICogQGFjdGw6IGFjdGl2aXR5IGNvbnRyb2wKKyAqIEBzdGN0bDogc3RhdHVzIGNvbnRyb2wKKyAqIEB0Y3c6IFRDVyBhZGRyZXNzCisgKiBAZHN0YXQ6IGRldmljZSBzdGF0dXMKKyAqIEBjc3RhdDogc3ViY2hhbm5lbCBzdGF0dXMKKyAqIEBmY3hzOiBGQ1ggc3RhdHVzCisgKiBAc2NoeHM6IHN1YmNoYW5uZWwtZXh0ZW5kZWQgc3RhdHVzCisgKi8KK3N0cnVjdCB0bV9zY3N3IHsKKwl1MzIga2V5OjQ7CisJdTMyIDoxOworCXUzMiBlc3dmOjE7CisJdTMyIGNjOjI7CisJdTMyIGZtdDozOworCXUzMiB4OjE7CisJdTMyIHE6MTsKKwl1MzIgOjE7CisJdTMyIGVjdGw6MTsKKwl1MzIgcG5vOjE7CisJdTMyIDoxOworCXUzMiBmY3RsOjM7CisJdTMyIGFjdGw6NzsKKwl1MzIgc3RjdGw6NTsKKwl1MzIgdGN3OworCXUzMiBkc3RhdDo4OworCXUzMiBjc3RhdDo4OworCXUzMiBmY3hzOjg7CisJdTMyIHNjaHhzOjg7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworLyoqCisgKiB1bmlvbiBzY3N3IC0gc3ViY2hhbm5lbCBzdGF0dXMgd29yZAorICogQGNtZDogY29tbWFuZC1tb2RlIFNDU1cKKyAqIEB0bTogdHJhbnNwb3J0LW1vZGUgU0NTVworICovCit1bmlvbiBzY3N3IHsKKwlzdHJ1Y3QgY21kX3Njc3cgY21kOworCXN0cnVjdCB0bV9zY3N3IHRtOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKK2ludCBzY3N3X2lzX3RtKHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfa2V5KHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X2NjKHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X3Bubyh1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X2ZjdGwodW5pb24gc2NzdyAqc2Nzdyk7Cit1MzIgc2Nzd19hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfc3RjdGwodW5pb24gc2NzdyAqc2Nzdyk7Cit1MzIgc2Nzd19kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfa2V5KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX2NjKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX3Bubyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX2ZjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2tleSh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9zY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2Vzd2YodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfY2ModW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZm10KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3BmY2godW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfaXNpYyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9hbGNjKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3NzaSh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF96Y2ModW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9wbm8odW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3N0Y3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2RzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3NvbGljaXRlZCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2tleSh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2Vzd2YodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9jYyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2ZtdCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3godW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9xKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3Bubyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2ZjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfdmFsaWRfZmN4cyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3NjaHhzKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpOworCiAjZGVmaW5lIFNDU1dfRkNUTF9DTEVBUl9GVU5DCSAweDEKICNkZWZpbmUgU0NTV19GQ1RMX0hBTFRfRlVOQwkgMHgyCiAjZGVmaW5lIFNDU1dfRkNUTF9TVEFSVF9GVU5DCSAweDQKQEAgLTMwMyw3ICs0MTEsNyBAQAogICogaWYgYXBwbGljYWJsZSkuCiAgKi8KIHN0cnVjdCBpcmIgewotCXN0cnVjdCBzY3N3IHNjc3c7CisJdW5pb24gc2NzdyBzY3N3OwogCXVuaW9uIHsKIAkJc3RydWN0IGVzdzAgZXN3MDsKIAkJc3RydWN0IGVzdzEgZXN3MTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvZWxmLmggYi9pbmNsdWRlL2FzbS1zMzkwL2VsZi5oCmluZGV4IGIzYWMyNjIuLjNjYWQ1NjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvZWxmLmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC9lbGYuaApAQCAtMTEzLDYgKzExMyw5IEBACiB0eXBlZGVmIHMzOTBfZnBfcmVncyBlbGZfZnByZWdzZXRfdDsKIHR5cGVkZWYgczM5MF9yZWdzIGVsZl9ncmVnc2V0X3Q7CiAKK3R5cGVkZWYgczM5MF9mcF9yZWdzIGNvbXBhdF9lbGZfZnByZWdzZXRfdDsKK3R5cGVkZWYgczM5MF9jb21wYXRfcmVncyBjb21wYXRfZWxmX2dyZWdzZXRfdDsKKwogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CS8qIGZvciB0YXNrX3N0cnVjdCAqLwogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4JCS8qIGZvciBzYXZlX2FjY2Vzc19yZWdzICovCiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CkBAIC0xMjMsNiArMTI2LDEwIEBACiAjZGVmaW5lIGVsZl9jaGVja19hcmNoKHgpIFwKIAkoKCh4KS0+ZV9tYWNoaW5lID09IEVNX1MzOTAgfHwgKHgpLT5lX21hY2hpbmUgPT0gRU1fUzM5MF9PTEQpIFwKICAgICAgICAgICYmICh4KS0+ZV9pZGVudFtFSV9DTEFTU10gPT0gRUxGX0NMQVNTKSAKKyNkZWZpbmUgY29tcGF0X2VsZl9jaGVja19hcmNoKHgpIFwKKwkoKCh4KS0+ZV9tYWNoaW5lID09IEVNX1MzOTAgfHwgKHgpLT5lX21hY2hpbmUgPT0gRU1fUzM5MF9PTEQpIFwKKwkgJiYgKHgpLT5lX2lkZW50W0VJX0NMQVNTXSA9PSBFTEZfQ0xBU1MpCisjZGVmaW5lIGNvbXBhdF9zdGFydF90aHJlYWQJc3RhcnRfdGhyZWFkMzEKIAogLyogRm9yIFNWUjQvUzM5MCB0aGUgZnVuY3Rpb24gcG9pbnRlciB0byBiZSByZWdpc3RlcmVkIHdpdGggYGF0ZXhpdGAgaXMKICAgIHBhc3NlZCBpbiBSMTQuICovCkBAIC0xMzEsNiArMTM4LDcgQEAKIAkJX3ItPmdwcnNbMTRdID0gMDsgXAogCX0gd2hpbGUgKDApCiAKKyNkZWZpbmUgQ09SRV9EVU1QX1VTRV9SRUdTRVQKICNkZWZpbmUgVVNFX0VMRl9DT1JFX0RVTVAKICNkZWZpbmUgRUxGX0VYRUNfUEFHRVNJWkUJNDA5NgogCkBAIC0xNDAsNDQgKzE0OCw2IEBACiAgICB0aGF0IGl0IHdpbGwgImV4ZWMiLCBhbmQgdGhhdCB0aGVyZSBpcyBzdWZmaWNpZW50IHJvb20gZm9yIHRoZSBicmsuICAqLwogI2RlZmluZSBFTEZfRVRfRFlOX0JBU0UJCShTVEFDS19UT1AgLyAzICogMikKIAotLyogV293LCB0aGUgIm1haW4iIGFyY2ggbmVlZHMgYXJjaCBkZXBlbmRlbnQgZnVuY3Rpb25zIHRvby4uIDopICovCi0KLS8qIHJlZ3MgaXMgc3RydWN0IHB0X3JlZ3MsIHByX3JlZyBpcyBlbGZfZ3JlZ3NldF90ICh3aGljaCBpcwotICAgbm93IHN0cnVjdF91c2VyX3JlZ3MsIHRoZXkgYXJlIGRpZmZlcmVudCkgKi8KLQotc3RhdGljIGlubGluZSBpbnQgZHVtcF9yZWdzKHN0cnVjdCBwdF9yZWdzICpwdHJlZ3MsIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0JbWVtY3B5KCZyZWdzLT5wc3csICZwdHJlZ3MtPnBzdywgc2l6ZW9mKHJlZ3MtPnBzdykrc2l6ZW9mKHJlZ3MtPmdwcnMpKTsKLQlzYXZlX2FjY2Vzc19yZWdzKHJlZ3MtPmFjcnMpOwotCXJlZ3MtPm9yaWdfZ3ByMiA9IHB0cmVncy0+b3JpZ19ncHIyOwotCXJldHVybiAxOwotfQotCi0jZGVmaW5lIEVMRl9DT1JFX0NPUFlfUkVHUyhwcl9yZWcsIHJlZ3MpIGR1bXBfcmVncyhyZWdzLCAmcHJfcmVnKTsKLQotc3RhdGljIGlubGluZSBpbnQgZHVtcF90YXNrX3JlZ3Moc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0Jc3RydWN0IHB0X3JlZ3MgKnB0cmVncyA9IHRhc2tfcHRfcmVncyh0c2spOwotCW1lbWNweSgmcmVncy0+cHN3LCAmcHRyZWdzLT5wc3csIHNpemVvZihyZWdzLT5wc3cpK3NpemVvZihyZWdzLT5ncHJzKSk7Ci0JbWVtY3B5KHJlZ3MtPmFjcnMsIHRzay0+dGhyZWFkLmFjcnMsIHNpemVvZihyZWdzLT5hY3JzKSk7Ci0JcmVncy0+b3JpZ19ncHIyID0gcHRyZWdzLT5vcmlnX2dwcjI7Ci0JcmV0dXJuIDE7Ci19Ci0KLSNkZWZpbmUgRUxGX0NPUkVfQ09QWV9UQVNLX1JFR1ModHNrLCByZWdzKSBkdW1wX3Rhc2tfcmVncyh0c2ssIHJlZ3MpCi0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bXBfdGFza19mcHUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGVsZl9mcHJlZ3NldF90ICpmcHJlZ3MpCi17Ci0JaWYgKHRzayA9PSBjdXJyZW50KQotCQlzYXZlX2ZwX3JlZ3MoZnByZWdzKTsKLQllbHNlCi0JCW1lbWNweShmcHJlZ3MsICZ0c2stPnRocmVhZC5mcF9yZWdzLCBzaXplb2YoZWxmX2ZwcmVnc2V0X3QpKTsKLQlyZXR1cm4gMTsKLX0KLQotI2RlZmluZSBFTEZfQ09SRV9DT1BZX0ZQUkVHUyh0c2ssIGZwcmVncykgZHVtcF90YXNrX2ZwdSh0c2ssIGZwcmVncykKLQotCiAvKiBUaGlzIHlpZWxkcyBhIG1hc2sgdGhhdCB1c2VyIHByb2dyYW1zIGNhbiB1c2UgdG8gZmlndXJlIG91dCB3aGF0CiAgICBpbnN0cnVjdGlvbiBzZXQgdGhpcyBDUFUgc3VwcG9ydHMuICovCiAKQEAgLTIwNCw3ICsxNzQsMTAgQEAKIAkJc2V0X3BlcnNvbmFsaXR5KFBFUl9TVlI0KTsJCVwKIAllbHNlIGlmIChjdXJyZW50LT5wZXJzb25hbGl0eSAhPSBQRVJfTElOVVgzMikJXAogCQlzZXRfcGVyc29uYWxpdHkoUEVSX0xJTlVYKTsJCVwKLQljbGVhcl90aHJlYWRfZmxhZyhUSUZfMzFCSVQpOwkJCVwKKwlpZiAoKGV4KS5lX2lkZW50W0VJX0NMQVNTXSA9PSBFTEZDTEFTUzMyKQlcCisJCXNldF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpOwkJXAorCWVsc2UJCQkJCQlcCisJCWNsZWFyX3RocmVhZF9mbGFnKFRJRl8zMUJJVCk7CQlcCiB9IHdoaWxlICgwKQogI2VuZGlmIC8qIF9fczM5MHhfXyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2V0ci5oIGIvaW5jbHVkZS9hc20tczM5MC9ldHIuaAppbmRleCBiNDk4ZjE5Li44MGVmNThjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2V0ci5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvZXRyLmgKQEAgLTEyMiw3ICsxMjIsNyBAQAogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkLGFsaWduZWQoOCkpKTsKIAogLyogRVRSIGludGVycnVwdGlvbiBwYXJhbWV0ZXIgKi8KLXN0cnVjdCBldHJfaW50ZXJydXB0aW9uX3BhcmFtZXRlciB7CitzdHJ1Y3QgZXRyX2lycV9wYXJtIHsKIAl1bnNpZ25lZCBpbnQgX3BhZDAJOiA4OwogCXVuc2lnbmVkIGludCBwYzAJOiAxOwkvKiBwb3J0IDAgc3RhdGUgY2hhbmdlICovCiAJdW5zaWduZWQgaW50IHBjMQk6IDE7CS8qIHBvcnQgMSBzdGF0ZSBjaGFuZ2UgKi8KQEAgLTIxMyw3ICsyMTMsNDYgQEAKICNkZWZpbmUgRVRSX1BURkZfU0dTCTB4NDMJLyogc2V0IGdyb3NzIHN0ZWVyaW5nIHJhdGUgKi8KIAogLyogRnVuY3Rpb25zIG5lZWRlZCBieSB0aGUgbWFjaGluZSBjaGVjayBoYW5kbGVyICovCi1leHRlcm4gdm9pZCBldHJfc3dpdGNoX3RvX2xvY2FsKHZvaWQpOwotZXh0ZXJuIHZvaWQgZXRyX3N5bmNfY2hlY2sodm9pZCk7Cit2b2lkIGV0cl9zd2l0Y2hfdG9fbG9jYWwodm9pZCk7Cit2b2lkIGV0cl9zeW5jX2NoZWNrKHZvaWQpOworCisvKiBTVFAgaW50ZXJydXB0aW9uIHBhcmFtZXRlciAqLworc3RydWN0IHN0cF9pcnFfcGFybSB7CisJdW5zaWduZWQgaW50IF9wYWQwCTogMTQ7CisJdW5zaWduZWQgaW50IHRzYwk6IDE7CS8qIFRpbWluZyBzdGF0dXMgY2hhbmdlICovCisJdW5zaWduZWQgaW50IGxhYwk6IDE7CS8qIExpbmsgYXZhaWxhYmlsaXR5IGNoYW5nZSAqLworCXVuc2lnbmVkIGludCB0Y3BjCTogMTsJLyogVGltZSBjb250cm9sIHBhcmFtZXRlciBjaGFuZ2UgKi8KKwl1bnNpZ25lZCBpbnQgX3BhZDIJOiAxNTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisjZGVmaW5lIFNUUF9PUF9TWU5DCTEKKyNkZWZpbmUgU1RQX09QX0NUUkwJMworCitzdHJ1Y3Qgc3RwX3NzdHBpIHsKKwl1bnNpZ25lZCBpbnQgcnN2ZDA7CisJdW5zaWduZWQgaW50IHJzdmQxIDogODsKKwl1bnNpZ25lZCBpbnQgc3RyYXR1bSA6IDg7CisJdW5zaWduZWQgaW50IHZiaXRzIDogMTY7CisJdW5zaWduZWQgaW50IGxlYXBzIDogMTY7CisJdW5zaWduZWQgaW50IHRtZCA6IDQ7CisJdW5zaWduZWQgaW50IGN0biA6IDQ7CisJdW5zaWduZWQgaW50IHJzdmQyIDogMzsKKwl1bnNpZ25lZCBpbnQgYyA6IDE7CisJdW5zaWduZWQgaW50IHRzdCA6IDQ7CisJdW5zaWduZWQgaW50IHR6byA6IDE2OworCXVuc2lnbmVkIGludCBkc3RvIDogMTY7CisJdW5zaWduZWQgaW50IGN0cmwgOiAxNjsKKwl1bnNpZ25lZCBpbnQgcnN2ZDMgOiAxNjsKKwl1bnNpZ25lZCBpbnQgdHRvOworCXVuc2lnbmVkIGludCByc3ZkNDsKKwl1bnNpZ25lZCBpbnQgY3RuaWRbM107CisJdW5zaWduZWQgaW50IHJzdmQ1OworCXVuc2lnbmVkIGludCB0b2RvZmZbNF07CisJdW5zaWduZWQgaW50IHJzdmQ2WzQ4XTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisvKiBGdW5jdGlvbnMgbmVlZGVkIGJ5IHRoZSBtYWNoaW5lIGNoZWNrIGhhbmRsZXIgKi8KK3ZvaWQgc3RwX3N5bmNfY2hlY2sodm9pZCk7Cit2b2lkIHN0cF9pc2xhbmRfY2hlY2sodm9pZCk7CiAKICNlbmRpZiAvKiBfX1MzOTBfRVRSX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvZmN4LmggYi9pbmNsdWRlL2FzbS1zMzkwL2ZjeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZTFmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL2ZjeC5oCkBAIC0wLDAgKzEsMzExIEBACisvKgorICogIEZ1bmN0aW9ucyBmb3IgYXNzZW1ibGluZyBmY3ggZW5hYmxlZCBJL08gY29udHJvbCBibG9ja3MuCisgKgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA4CisgKiAgICBBdXRob3Iocyk6IFBldGVyIE9iZXJwYXJsZWl0ZXIgPHBldGVyLm9iZXJwYXJsZWl0ZXJAZGUuaWJtLmNvbT4KKyAqLworCisjaWZuZGVmIF9BU01fUzM5MF9GQ1hfSAorI2RlZmluZSBfQVNNX1MzOTBfRkNYX0ggX0FTTV9TMzkwX0ZDWF9ICisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjZGVmaW5lIFRDV19GT1JNQVRfREVGQVVMVAkJMAorI2RlZmluZSBUQ1dfVElEQVdfRk9STUFUX0RFRkFVTFQJMAorI2RlZmluZSBUQ1dfRkxBR1NfSU5QVVRfVElEQQkJMSA8PCAoMjMgLSA1KQorI2RlZmluZSBUQ1dfRkxBR1NfVENDQl9USURBCQkxIDw8ICgyMyAtIDYpCisjZGVmaW5lIFRDV19GTEFHU19PVVRQVVRfVElEQQkJMSA8PCAoMjMgLSA3KQorI2RlZmluZSBUQ1dfRkxBR1NfVElEQVdfRk9STUFUKHgpCSgoeCkgJiAzKSA8PCAoMjMgLSA5KQorI2RlZmluZSBUQ1dfRkxBR1NfR0VUX1RJREFXX0ZPUk1BVCh4KQkoKCh4KSA+PiAoMjMgLSA5KSkgJiAzKQorCisvKioKKyAqIHN0cnVjdCB0Y3cgLSBUcmFuc3BvcnQgQ29udHJvbCBXb3JkIChUQ1cpCisgKiBAZm9ybWF0OiBUQ1cgZm9ybWF0CisgKiBAZmxhZ3M6IFRDVyBmbGFncworICogQHRjY2JsOiBUcmFuc3BvcnQtQ29tbWFuZC1Db250cm9sLUJsb2NrIExlbmd0aAorICogQHI6IFJlYWQgT3BlcmF0aW9ucworICogQHc6IFdyaXRlIE9wZXJhdGlvbnMKKyAqIEBvdXRwdXQ6IE91dHB1dC1EYXRhIEFkZHJlc3MKKyAqIEBpbnB1dDogSW5wdXQtRGF0YSBBZGRyZXNzCisgKiBAdHNiOiBUcmFuc3BvcnQtU3RhdHVzLUJsb2NrIEFkZHJlc3MKKyAqIEB0Y2NiOiBUcmFuc3BvcnQtQ29tbWFuZC1Db250cm9sLUJsb2NrIEFkZHJlc3MKKyAqIEBvdXRwdXRfY291bnQ6IE91dHB1dCBDb3VudAorICogQGlucHV0X2NvdW50OiBJbnB1dCBDb3VudAorICogQGludHJnOiBJbnRlcnJvZ2F0ZSBUQ1cgQWRkcmVzcworICovCitzdHJ1Y3QgdGN3IHsKKwl1MzIgZm9ybWF0OjI7CisJdTMyIDo2OworCXUzMiBmbGFnczoyNDsKKwl1MzIgOjg7CisJdTMyIHRjY2JsOjY7CisJdTMyIHI6MTsKKwl1MzIgdzoxOworCXUzMiA6MTY7CisJdTY0IG91dHB1dDsKKwl1NjQgaW5wdXQ7CisJdTY0IHRzYjsKKwl1NjQgdGNjYjsKKwl1MzIgb3V0cHV0X2NvdW50OworCXUzMiBpbnB1dF9jb3VudDsKKwl1MzIgOjMyOworCXUzMiA6MzI7CisJdTMyIDozMjsKKwl1MzIgaW50cmc7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoNjQpKSk7CisKKyNkZWZpbmUgVElEQVdfRkxBR1NfTEFTVAkJMSA8PCAoNyAtIDApCisjZGVmaW5lIFRJREFXX0ZMQUdTX1NLSVAJCTEgPDwgKDcgLSAxKQorI2RlZmluZSBUSURBV19GTEFHU19EQVRBX0lOVAkJMSA8PCAoNyAtIDIpCisjZGVmaW5lIFRJREFXX0ZMQUdTX1RUSUMJCTEgPDwgKDcgLSAzKQorI2RlZmluZSBUSURBV19GTEFHU19JTlNFUlRfQ0JDCQkxIDw8ICg3IC0gNCkKKworLyoqCisgKiBzdHJ1Y3QgdGlkYXcgLSBUcmFuc3BvcnQtSW5kaXJlY3QtQWRkcmVzc2luZyBXb3JkIChUSURBVykKKyAqIEBmbGFnczogVElEQVcgZmxhZ3MuIENhbiBiZSBhbiBhcml0aG1ldGljIE9SIG9mIHRoZSBmb2xsb3dpbmcgY29uc3RhbnRzOgorICogJVRJREFXX0ZMQUdTX0xBU1QsICVUSURBV19GTEFHU19TS0lQLCAlVElEQVdfRkxBR1NfREFUQV9JTlQsCisgKiAlVElEQVdfRkxBR1NfVFRJQywgJVRJREFXX0ZMQUdTX0lOU0VSVF9DQkMKKyAqIEBjb3VudDogQ291bnQKKyAqIEBhZGRyOiBBZGRyZXNzCisgKi8KK3N0cnVjdCB0aWRhdyB7CisJdTMyIGZsYWdzOjg7CisJdTMyIDoyNDsKKwl1MzIgY291bnQ7CisJdTY0IGFkZHI7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoMTYpKSk7CisKKy8qKgorICogc3RydWN0IHRzYV9pb3N0YXQgLSBJL08tU3RhdHVzIFRyYW5zcG9ydC1TdGF0dXMgQXJlYSAoSU8tU3RhdCBUU0EpCisgKiBAZGV2X3RpbWU6IERldmljZSBUaW1lCisgKiBAZGVmX3RpbWU6IERlZmVyIFRpbWUKKyAqIEBxdWV1ZV90aW1lOiBRdWV1ZSBUaW1lCisgKiBAZGV2X2J1c3lfdGltZTogRGV2aWNlLUJ1c3kgVGltZQorICogQGRldl9hY3RfdGltZTogRGV2aWNlLUFjdGl2ZS1Pbmx5IFRpbWUKKyAqIEBzZW5zZTogU2Vuc2UgRGF0YSAoaWYgcHJlc2VudCkKKyAqLworc3RydWN0IHRzYV9pb3N0YXQgeworCXUzMiBkZXZfdGltZTsKKwl1MzIgZGVmX3RpbWU7CisJdTMyIHF1ZXVlX3RpbWU7CisJdTMyIGRldl9idXN5X3RpbWU7CisJdTMyIGRldl9hY3RfdGltZTsKKwl1OCBzZW5zZVszMl07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworLyoqCisgKiBzdHJ1Y3QgdHNhX2RkcGNzIC0gRGV2aWNlLURldGVjdGVkLVByb2dyYW0tQ2hlY2sgVHJhbnNwb3J0LVN0YXR1cyBBcmVhIChERFBDIFRTQSkKKyAqIEByYzogUmVhc29uIENvZGUKKyAqIEByY3E6IFJlYXNvbiBDb2RlIFF1YWxpZmllcgorICogQHNlbnNlOiBTZW5zZSBEYXRhIChpZiBwcmVzZW50KQorICovCitzdHJ1Y3QgdHNhX2RkcGMgeworCXUzMiA6MjQ7CisJdTMyIHJjOjg7CisJdTggcmNxWzE2XTsKKwl1OCBzZW5zZVszMl07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworI2RlZmluZSBUU0FfSU5UUkdfRkxBR1NfQ1VfU1RBVEVfVkFMSUQJCTEgPDwgKDcgLSAwKQorI2RlZmluZSBUU0FfSU5UUkdfRkxBR1NfREVWX1NUQVRFX1ZBTElECQkxIDw8ICg3IC0gMSkKKyNkZWZpbmUgVFNBX0lOVFJHX0ZMQUdTX09QX1NUQVRFX1ZBTElECQkxIDw8ICg3IC0gMikKKworLyoqCisgKiBzdHJ1Y3QgdHNhX2ludHJnIC0gSW50ZXJyb2dhdGUgVHJhbnNwb3J0LVN0YXR1cyBBcmVhIChJbnRyZy4gVFNBKQorICogQGZvcm1hdDogRm9ybWF0CisgKiBAZmxhZ3M6IEZsYWdzLiBDYW4gYmUgYW4gYXJpdGhtZXRpYyBPUiBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW50czoKKyAqICVUU0FfSU5UUkdfRkxBR1NfQ1VfU1RBVEVfVkFMSUQsICVUU0FfSU5UUkdfRkxBR1NfREVWX1NUQVRFX1ZBTElELAorICogJVRTQV9JTlRSR19GTEFHU19PUF9TVEFURV9WQUxJRAorICogQGN1X3N0YXRlOiBDb250cm9sZS1Vbml0IFN0YXRlCisgKiBAZGV2X3N0YXRlOiBEZXZpY2UgU3RhdGUKKyAqIEBvcF9zdGF0ZTogT3BlcmF0aW9uIFN0YXRlCisgKiBAc2RfaW5mbzogU3RhdGUtRGVwZW5kZW50IEluZm9ybWF0aW9uCisgKiBAZGxfaWQ6IERldmljZS1MZXZlbCBJZGVudGlmaWVyCisgKiBAZGRfZGF0YTogRGV2aWNlLURlcGVuZGVudCBEYXRhCisgKi8KK3N0cnVjdCB0c2FfaW50cmcgeworCXUzMiBmb3JtYXQ6ODsKKwl1MzIgZmxhZ3M6ODsKKwl1MzIgY3Vfc3RhdGU6ODsKKwl1MzIgZGV2X3N0YXRlOjg7CisJdTMyIG9wX3N0YXRlOjg7CisJdTMyIDoyNDsKKwl1OCBzZF9pbmZvWzEyXTsKKwl1MzIgZGxfaWQ7CisJdTggZGRfZGF0YVsyOF07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworI2RlZmluZSBUU0JfRk9STUFUX05PTkUJCTAKKyNkZWZpbmUgVFNCX0ZPUk1BVF9JT1NUQVQJMQorI2RlZmluZSBUU0JfRk9STUFUX0REUEMJCTIKKyNkZWZpbmUgVFNCX0ZPUk1BVF9JTlRSRwkzCisKKyNkZWZpbmUgVFNCX0ZMQUdTX0RDV19PRkZTRVRfVkFMSUQJMSA8PCAoNyAtIDApCisjZGVmaW5lIFRTQl9GTEFHU19DT1VOVF9WQUxJRAkJMSA8PCAoNyAtIDEpCisjZGVmaW5lIFRTQl9GTEFHU19DQUNIRV9NSVNTCQkxIDw8ICg3IC0gMikKKyNkZWZpbmUgVFNCX0ZMQUdTX1RJTUVfVkFMSUQJCTEgPDwgKDcgLSAzKQorI2RlZmluZSBUU0JfRkxBR1NfRk9STUFUKHgpCQkoKHgpICYgNykKKyNkZWZpbmUgVFNCX0ZPUk1BVCh0KQkJCSgodCktPmZsYWdzICYgNykKKworLyoqCisgKiBzdHJ1Y3QgdHNiIC0gVHJhbnNwb3J0LVN0YXR1cyBCbG9jayAoVFNCKQorICogQGxlbmd0aDogTGVuZ3RoCisgKiBAZmxhZ3M6IEZsYWdzLiBDYW4gYmUgYW4gYXJpdGhtZXRpYyBPUiBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW50czoKKyAqICVUU0JfRkxBR1NfRENXX09GRlNFVF9WQUxJRCwgJVRTQl9GTEFHU19DT1VOVF9WQUxJRCwgJVRTQl9GTEFHU19DQUNIRV9NSVNTLAorICogJVRTQl9GTEFHU19USU1FX1ZBTElECisgKiBAZGN3X29mZnNldDogRENXIE9mZnNldAorICogQGNvdW50OiBDb3VudAorICogQHRzYTogVHJhbnNwb3J0LVN0YXR1cy1BcmVhCisgKi8KK3N0cnVjdCB0c2IgeworCXUzMiBsZW5ndGg6ODsKKwl1MzIgZmxhZ3M6ODsKKwl1MzIgZGN3X29mZnNldDoxNjsKKwl1MzIgY291bnQ7CisJdTMyIDozMjsKKwl1bmlvbiB7CisJCXN0cnVjdCB0c2FfaW9zdGF0IGlvc3RhdDsKKwkJc3RydWN0IHRzYV9kZHBjIGRkcGM7CisJCXN0cnVjdCB0c2FfaW50cmcgaW50cmc7CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgdHNhOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGlnbmVkKDgpKSk7CisKKyNkZWZpbmUgRENXX0lOVFJHX0ZPUk1BVF9ERUZBVUxUCTAKKworI2RlZmluZSBEQ1dfSU5UUkdfUkNfVU5TUEVDSUZJRUQJMAorI2RlZmluZSBEQ1dfSU5UUkdfUkNfVElNRU9VVAkJMQorCisjZGVmaW5lIERDV19JTlRSR19SQ1FfVU5TUEVDSUZJRUQJMAorI2RlZmluZSBEQ1dfSU5UUkdfUkNRX1BSSU1BUlkJCTEKKyNkZWZpbmUgRENXX0lOVFJHX1JDUV9TRUNPTkRBUlkJCTIKKworI2RlZmluZSBEQ1dfSU5UUkdfRkxBR1NfTVBNCQkxIDwgKDcgLSAwKQorI2RlZmluZSBEQ1dfSU5UUkdfRkxBR1NfUFBSCQkxIDwgKDcgLSAxKQorI2RlZmluZSBEQ1dfSU5UUkdfRkxBR1NfQ1JJVAkJMSA8ICg3IC0gMikKKworLyoqCisgKiBzdHJ1Y3QgZGN3X2ludHJnX2RhdGEgLSBJbnRlcnJvZ2F0ZSBEQ1cgZGF0YQorICogQGZvcm1hdDogRm9ybWF0LiBTaG91bGQgYmUgJURDV19JTlRSR19GT1JNQVRfREVGQVVMVAorICogQHJjOiBSZWFzb24gQ29kZS4gQ2FuIGJlIG9uZSBvZiAlRENXX0lOVFJHX1JDX1VOU1BFQ0lGSUVELAorICogJURDV19JTlRSR19SQ19USU1FT1VUCisgKiBAcmNxOiBSZWFzb24gQ29kZSBRdWFsaWZpZXI6IENhbiBiZSBvbmUgb2YgJURDV19JTlRSR19SQ1FfVU5TUEVDSUZJRUQsCisgKiAlRENXX0lOVFJHX1JDUV9QUklNQVJZLCAlRENXX0lOVFJHX1JDUV9TRUNPTkRBUlkKKyAqIEBscG06IExvZ2ljYWwtUGF0aCBNYXNrCisgKiBAcGFtOiBQYXRoLUF2YWlsYWJsZSBNYXNrCisgKiBAcGltOiBQYXRoLUluc3RhbGxlZCBNYXNrCisgKiBAdGltZW91dDogVGltZW91dAorICogQGZsYWdzOiBGbGFncy4gQ2FuIGJlIGFuIGFyaXRobWV0aWMgT1Igb2YgJURDV19JTlRSR19GTEFHU19NUE0sCisgKiAlRENXX0lOVFJHX0ZMQUdTX1BQUiwgJURDV19JTlRSR19GTEFHU19DUklUCisgKiBAdGltZTogVGltZQorICogQHByb2dfaWQ6IFByb2dyYW0gSWRlbnRpZmllcgorICogQHByb2dfZGF0YTogUHJvZ3JhbS1EZXBlbmRlbnQgRGF0YQorICovCitzdHJ1Y3QgZGN3X2ludHJnX2RhdGEgeworCXUzMiBmb3JtYXQ6ODsKKwl1MzIgcmM6ODsKKwl1MzIgcmNxOjg7CisJdTMyIGxwbTo4OworCXUzMiBwYW06ODsKKwl1MzIgcGltOjg7CisJdTMyIHRpbWVvdXQ6MTY7CisJdTMyIGZsYWdzOjg7CisJdTMyIDoyNDsKKwl1MzIgOjMyOworCXU2NCB0aW1lOworCXU2NCBwcm9nX2lkOworCXU4ICBwcm9nX2RhdGFbMF07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworI2RlZmluZSBEQ1dfRkxBR1NfQ0MJCTEgPDwgKDcgLSAxKQorCisjZGVmaW5lIERDV19DTURfV1JJVEUJCTB4MDEKKyNkZWZpbmUgRENXX0NNRF9SRUFECQkweDAyCisjZGVmaW5lIERDV19DTURfQ09OVFJPTAkJMHgwMworI2RlZmluZSBEQ1dfQ01EX1NFTlNFCQkweDA0CisjZGVmaW5lIERDV19DTURfU0VOU0VfSUQJMHhlNAorI2RlZmluZSBEQ1dfQ01EX0lOVFJHCQkweDQwCisKKy8qKgorICogc3RydWN0IGRjdyAtIERldmljZS1Db21tYW5kIFdvcmQgKERDVykKKyAqIEBjbWQ6IENvbW1hbmQgQ29kZS4gQ2FuIGJlIG9uZSBvZiAlRENXX0NNRF9XUklURSwgJURDV19DTURfUkVBRCwKKyAqICVEQ1dfQ01EX0NPTlRST0wsICVEQ1dfQ01EX1NFTlNFLCAlRENXX0NNRF9TRU5TRV9JRCwgJURDV19DTURfSU5UUkcKKyAqIEBmbGFnczogRmxhZ3MuIENhbiBiZSBhbiBhcml0aG1ldGljIE9SIG9mICVEQ1dfRkxBR1NfQ0MKKyAqIEBjZF9jb3VudDogQ29udHJvbC1EYXRhIENvdW50CisgKiBAY291bnQ6IENvdW50CisgKiBAY2Q6IENvbnRyb2wgRGF0YQorICovCitzdHJ1Y3QgZGN3IHsKKwl1MzIgY21kOjg7CisJdTMyIGZsYWdzOjg7CisJdTMyIDo4OworCXUzMiBjZF9jb3VudDo4OworCXUzMiBjb3VudDsKKwl1OCBjZFswXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisjZGVmaW5lIFRDQ0JfRk9STUFUX0RFRkFVTFQJMHg3ZgorI2RlZmluZSBUQ0NCX01BWF9EQ1cJCTMwCisjZGVmaW5lIFRDQ0JfTUFYX1NJWkUJCShzaXplb2Yoc3RydWN0IHRjY2JfdGNhaCkgKyBcCisJCQkJIFRDQ0JfTUFYX0RDVyAqIHNpemVvZihzdHJ1Y3QgZGN3KSArIFwKKwkJCQkgc2l6ZW9mKHN0cnVjdCB0Y2NiX3RjYXQpKQorI2RlZmluZSBUQ0NCX1NBQ19ERUZBVUxUCTB4ZjkwMQorI2RlZmluZSBUQ0NCX1NBQ19JTlRSRwkJMHhmOTAyCisKKy8qKgorICogc3RydWN0IHRjY2JfdGNhaCAtIFRyYW5zcG9ydC1Db21tYW5kLUFyZWEgSGVhZGVyIChUQ0FIKQorICogQGZvcm1hdDogRm9ybWF0LiBTaG91bGQgYmUgJVRDQ0JfRk9STUFUX0RFRkFVTFQKKyAqIEB0Y2FsOiBUcmFuc3BvcnQtQ29tbWFuZC1BcmVhIExlbmd0aAorICogQHNhYzogU2VydmljZS1BY3Rpb24gQ29kZS4gQ2FuIGJlIG9uZSBvZiAlVENDQl9TQUNfREVGQVVMVCwgJVRDQ0JfU0FDX0lOVFJHCisgKiBAcHJpbzogUHJpb3JpdHkKKyAqLworc3RydWN0IHRjY2JfdGNhaCB7CisJdTMyIGZvcm1hdDo4OworCXUzMiA6MjQ7CisJdTMyIDoyNDsKKwl1MzIgdGNhbDo4OworCXUzMiBzYWM6MTY7CisJdTMyIDo4OworCXUzMiBwcmlvOjg7CisJdTMyIDozMjsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisvKioKKyAqIHN0cnVjdCB0Y2NiX3RjYXQgLSBUcmFuc3BvcnQtQ29tbWFuZC1BcmVhIFRyYWlsZXIgKFRDQVQpCisgKiBAY291bnQ6IFRyYW5zcG9ydCBDb3VudAorICovCitzdHJ1Y3QgdGNjYl90Y2F0IHsKKwl1MzIgOjMyOworCXUzMiBjb3VudDsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisvKioKKyAqIHN0cnVjdCB0Y2NiIC0gKHBhcnRpYWwpIFRyYW5zcG9ydC1Db21tYW5kLUNvbnRyb2wgQmxvY2sgKFRDQ0IpCisgKiBAdGNhaDogVENBSAorICogQHRjYTogVHJhbnNwb3J0LUNvbW1hbmQgQXJlYQorICovCitzdHJ1Y3QgdGNjYiB7CisJc3RydWN0IHRjY2JfdGNhaCB0Y2FoOworCXU4IHRjYVswXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCwgYWxpZ25lZCg4KSkpOworCitzdHJ1Y3QgdGN3ICp0Y3dfZ2V0X2ludHJnKHN0cnVjdCB0Y3cgKnRjdyk7Cit2b2lkICp0Y3dfZ2V0X2RhdGEoc3RydWN0IHRjdyAqdGN3KTsKK3N0cnVjdCB0Y2NiICp0Y3dfZ2V0X3RjY2Ioc3RydWN0IHRjdyAqdGN3KTsKK3N0cnVjdCB0c2IgKnRjd19nZXRfdHNiKHN0cnVjdCB0Y3cgKnRjdyk7CisKK3ZvaWQgdGN3X2luaXQoc3RydWN0IHRjdyAqdGN3LCBpbnQgciwgaW50IHcpOwordm9pZCB0Y3dfZmluYWxpemUoc3RydWN0IHRjdyAqdGN3LCBpbnQgbnVtX3RpZGF3cyk7CisKK3ZvaWQgdGN3X3NldF9pbnRyZyhzdHJ1Y3QgdGN3ICp0Y3csIHN0cnVjdCB0Y3cgKmludHJnX3Rjdyk7Cit2b2lkIHRjd19zZXRfZGF0YShzdHJ1Y3QgdGN3ICp0Y3csIHZvaWQgKmRhdGEsIGludCB1c2VfdGlkYWwpOwordm9pZCB0Y3dfc2V0X3RjY2Ioc3RydWN0IHRjdyAqdGN3LCBzdHJ1Y3QgdGNjYiAqdGNjYik7Cit2b2lkIHRjd19zZXRfdHNiKHN0cnVjdCB0Y3cgKnRjdywgc3RydWN0IHRzYiAqdHNiKTsKKwordm9pZCB0Y2NiX2luaXQoc3RydWN0IHRjY2IgKnRjY2IsIHNpemVfdCB0Y2NiX3NpemUsIHUzMiBzYWMpOwordm9pZCB0c2JfaW5pdChzdHJ1Y3QgdHNiICp0c2IpOworc3RydWN0IGRjdyAqdGNjYl9hZGRfZGN3KHN0cnVjdCB0Y2NiICp0Y2NiLCBzaXplX3QgdGNjYl9zaXplLCB1OCBjbWQsIHU4IGZsYWdzLAorCQkJIHZvaWQgKmNkLCB1OCBjZF9jb3VudCwgdTMyIGNvdW50KTsKK3N0cnVjdCB0aWRhdyAqdGN3X2FkZF90aWRhdyhzdHJ1Y3QgdGN3ICp0Y3csIGludCBudW1fdGlkYXdzLCB1OCBmbGFncywKKwkJCSAgICB2b2lkICphZGRyLCB1MzIgY291bnQpOworCisjZW5kaWYgLyogX0FTTV9TMzkwX0ZDWF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2lwbC5oIGIvaW5jbHVkZS9hc20tczM5MC9pcGwuaAppbmRleCBjMWIyZTUwLi5lYWNhNmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2lwbC5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvaXBsLmgKQEAgLTU2LDE1ICs1NiwxOSBAQAogCXU4ICBzY3BfZGF0YVtdOwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAorI2RlZmluZSBESUFHMzA4X1ZNUEFSTV9TSVpFCTY0CisKIHN0cnVjdCBpcGxfYmxvY2tfY2N3IHsKLQl1OCAgbG9hZF9wYXJhbVs4XTsKKwl1OCAgbG9hZF9wYXJtWzhdOwogCXU4ICByZXNlcnZlZDFbODRdOwogCXU4ICByZXNlcnZlZDJbMl07CiAJdTE2IGRldm5vOwogCXU4ICB2bV9mbGFnczsKIAl1OCAgcmVzZXJ2ZWQzWzNdOwogCXUzMiB2bV9wYXJtX2xlbjsKLQl1OCAgcmVzZXJ2ZWQ0WzgwXTsKKwl1OCAgbnNzX25hbWVbOF07CisJdTggIHZtX3Bhcm1bRElBRzMwOF9WTVBBUk1fU0laRV07CisJdTggIHJlc2VydmVkNFs4XTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrIHsKQEAgLTczLDcgKzc3LDcgQEAKIAkJc3RydWN0IGlwbF9ibG9ja19mY3AgZmNwOwogCQlzdHJ1Y3QgaXBsX2Jsb2NrX2NjdyBjY3c7CiAJfSBpcGxfaW5mbzsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCxhbGlnbmVkKDQwOTYpKSk7CiAKIC8qCiAgKiBJUEwgdmFsaWRpdHkgZmxhZ3MKQEAgLTg2LDYgKzkwLDggQEAKIGV4dGVybiB2b2lkIGRvX2hhbHQodm9pZCk7CiBleHRlcm4gdm9pZCBkb19wb2ZmKHZvaWQpOwogZXh0ZXJuIHZvaWQgaXBsX3NhdmVfcGFyYW1ldGVycyh2b2lkKTsKK2V4dGVybiB2b2lkIGlwbF91cGRhdGVfcGFyYW1ldGVycyh2b2lkKTsKK2V4dGVybiB2b2lkIGdldF9pcGxfdm1wYXJtKGNoYXIgKik7CiAKIGVudW0gewogCUlQTF9ERVZOT19WQUxJRAkJPSAxLApAQCAtMTQ3LDYgKzE1MywxMSBAQAogCURJQUczMDhfRkxBR1NfTFBfVkFMSUQJPSAweDgwLAogfTsKIAorZW51bSBkaWFnMzA4X3ZtX2ZsYWdzIHsKKwlESUFHMzA4X1ZNX0ZMQUdTX05TU19WQUxJRAk9IDB4ODAsCisJRElBRzMwOF9WTV9GTEFHU19WUF9WQUxJRAk9IDB4NDAsCit9OworCiBlbnVtIGRpYWczMDhfcmMgewogCURJQUczMDhfUkNfT0sJPSAxLAogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvaXNjLmggYi9pbmNsdWRlL2FzbS1zMzkwL2lzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YmI4OTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL2lzYy5oCkBAIC0wLDAgKzEsMjUgQEAKKyNpZm5kZWYgX0FTTV9TMzkwX0lTQ19ICisjZGVmaW5lIF9BU01fUzM5MF9JU0NfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyoKKyAqIEkvTyBpbnRlcnJ1cHRpb24gc3ViY2xhc3NlcyB1c2VkIGJ5IGRyaXZlcnMuCisgKiBQbGVhc2UgYWRkIGFsbCB1c2VkIGlzY3MgaGVyZSBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGRpc3RyaWJ1dGUKKyAqIGlzYyB1c2FnZSBiZXR3ZWVuIGRyaXZlcnMuCisgKiBSZW1pbmRlcjogMCBpcyBoaWdoZXN0IHByaW9yaXR5LCA3IGxvd2VzdC4KKyAqLworI2RlZmluZSBNQVhfSVNDIDcKKworLyogUmVndWxhciBJL08gaW50ZXJydXB0cy4gKi8KKyNkZWZpbmUgSU9fU0NIX0lTQyAzCQkJLyogcmVndWxhciBJL08gc3ViY2hhbm5lbHMgKi8KKyNkZWZpbmUgQ09OU09MRV9JU0MgMQkJCS8qIGNvbnNvbGUgSS9PIHN1YmNoYW5uZWwgKi8KKyNkZWZpbmUgQ0hTQ19TQ0hfSVNDIDcJCQkvKiBDSFNDIHN1YmNoYW5uZWxzICovCisvKiBBZGFwdGVyIGludGVycnVwdHMuICovCisjZGVmaW5lIFFESU9fQUlSUV9JU0MgSU9fU0NIX0lTQwkvKiBJL08gc3ViY2hhbm5lbCBpbiBxZGlvIG1vZGUgKi8KKworLyogRnVuY3Rpb25zIGZvciByZWdpc3RyYXRpb24gb2YgSS9PIGludGVycnVwdGlvbiBzdWJjbGFzc2VzICovCit2b2lkIGlzY19yZWdpc3Rlcih1bnNpZ25lZCBpbnQgaXNjKTsKK3ZvaWQgaXNjX3VucmVnaXN0ZXIodW5zaWduZWQgaW50IGlzYyk7CisKKyNlbmRpZiAvKiBfQVNNX1MzOTBfSVNDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvaXRjdy5oIGIvaW5jbHVkZS9hc20tczM5MC9pdGN3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTliYzVjMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvaXRjdy5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiAgRnVuY3Rpb25zIGZvciBpbmNyZW1lbnRhbCBjb25zdHJ1Y3Rpb24gb2YgZmN4IGVuYWJsZWQgSS9PIGNvbnRyb2wgYmxvY2tzLgorICoKKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwOAorICogICAgQXV0aG9yKHMpOiBQZXRlciBPYmVycGFybGVpdGVyIDxwZXRlci5vYmVycGFybGVpdGVyQGRlLmlibS5jb20+CisgKi8KKworI2lmbmRlZiBfQVNNX1MzOTBfSVRDV19ICisjZGVmaW5lIF9BU01fUzM5MF9JVENXX0ggX0FTTV9TMzkwX0lUQ1dfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZmN4Lmg+CisKKyNkZWZpbmUgSVRDV19PUF9SRUFECTAKKyNkZWZpbmUgSVRDV19PUF9XUklURQkxCisKK3N0cnVjdCBpdGN3OworCitzdHJ1Y3QgdGN3ICppdGN3X2dldF90Y3coc3RydWN0IGl0Y3cgKml0Y3cpOworc2l6ZV90IGl0Y3dfY2FsY19zaXplKGludCBpbnRyZywgaW50IG1heF90aWRhd3MsIGludCBpbnRyZ19tYXhfdGlkYXdzKTsKK3N0cnVjdCBpdGN3ICppdGN3X2luaXQodm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSwgaW50IG9wLCBpbnQgaW50cmcsCisJCSAgICAgICBpbnQgbWF4X3RpZGF3cywgaW50IGludHJnX21heF90aWRhd3MpOworc3RydWN0IGRjdyAqaXRjd19hZGRfZGN3KHN0cnVjdCBpdGN3ICppdGN3LCB1OCBjbWQsIHU4IGZsYWdzLCB2b2lkICpjZCwKKwkJCSB1OCBjZF9jb3VudCwgdTMyIGNvdW50KTsKK3N0cnVjdCB0aWRhdyAqaXRjd19hZGRfdGlkYXcoc3RydWN0IGl0Y3cgKml0Y3csIHU4IGZsYWdzLCB2b2lkICphZGRyLAorCQkJICAgICB1MzIgY291bnQpOwordm9pZCBpdGN3X3NldF9kYXRhKHN0cnVjdCBpdGN3ICppdGN3LCB2b2lkICphZGRyLCBpbnQgdXNlX3RpZGFsKTsKK3ZvaWQgaXRjd19maW5hbGl6ZShzdHJ1Y3QgaXRjdyAqaXRjdyk7CisKKyNlbmRpZiAvKiBfQVNNX1MzOTBfSVRDV19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLXMzOTAvcGd0YWJsZS5oCmluZGV4IGM3ZjRmOGUuLjBiZGI3MDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvcGd0YWJsZS5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvcGd0YWJsZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAgKiB0aGUgUzM5MCBwYWdlIHRhYmxlIHRyZWUuCiAgKi8KICNpZm5kZWYgX19BU1NFTUJMWV9fCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9tbV90eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9iaXRvcHMuaD4KICNpbmNsdWRlIDxhc20vYnVnLmg+CkBAIC0yMjMsNiArMjI0LDkgQEAKICNkZWZpbmUgX1BBR0VfU1BFQ0lBTAkweDAwNAkJLyogU1cgYXNzb2NpYXRlZCB3aXRoIHNwZWNpYWwgcGFnZSAqLwogI2RlZmluZSBfX0hBVkVfQVJDSF9QVEVfU1BFQ0lBTAogCisvKiBTZXQgb2YgYml0cyBub3QgY2hhbmdlZCBpbiBwdGVfbW9kaWZ5ICovCisjZGVmaW5lIF9QQUdFX0NIR19NQVNLCShQQUdFX01BU0sgfCBfUEFHRV9TUEVDSUFMKQorCiAvKiBTaXggZGlmZmVyZW50IHR5cGVzIG9mIHBhZ2VzLiAqLwogI2RlZmluZSBfUEFHRV9UWVBFX0VNUFRZCTB4NDAwCiAjZGVmaW5lIF9QQUdFX1RZUEVfTk9ORQkJMHg0MDEKQEAgLTY4MSw3ICs2ODUsNyBAQAogICovCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9tb2RpZnkocHRlX3QgcHRlLCBwZ3Byb3RfdCBuZXdwcm90KQogewotCXB0ZV92YWwocHRlKSAmPSBQQUdFX01BU0s7CisJcHRlX3ZhbChwdGUpICY9IF9QQUdFX0NIR19NQVNLOwogCXB0ZV92YWwocHRlKSB8PSBwZ3Byb3RfdmFsKG5ld3Byb3QpOwogCXJldHVybiBwdGU7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3Byb2Nlc3Nvci5oIGIvaW5jbHVkZS9hc20tczM5MC9wcm9jZXNzb3IuaAppbmRleCBhMDBmNzlkLi40YWY4MGFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3Byb2Nlc3Nvci5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvcHJvY2Vzc29yLmgKQEAgLTE0MywxMSArMTQzLDE5IEBACiAvKgogICogRG8gbmVjZXNzYXJ5IHNldHVwIHRvIHN0YXJ0IHVwIGEgbmV3IHRocmVhZC4KICAqLwotI2RlZmluZSBzdGFydF90aHJlYWQocmVncywgbmV3X3BzdywgbmV3X3N0YWNrcCkgZG8geyAgICAgICAgICAgIFwKKyNkZWZpbmUgc3RhcnRfdGhyZWFkKHJlZ3MsIG5ld19wc3csIG5ld19zdGFja3ApIGRvIHsJCVwKIAlzZXRfZnMoVVNFUl9EUyk7CQkJCQlcCiAJcmVncy0+cHN3Lm1hc2sJPSBwc3dfdXNlcl9iaXRzOwkJCVwKLSAgICAgICAgcmVncy0+cHN3LmFkZHIgID0gbmV3X3BzdyB8IFBTV19BRERSX0FNT0RFOyAgICAgICAgICAgICBcCi0gICAgICAgIHJlZ3MtPmdwcnNbMTVdICA9IG5ld19zdGFja3AgOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXJlZ3MtPnBzdy5hZGRyCT0gbmV3X3BzdyB8IFBTV19BRERSX0FNT0RFOwkJXAorCXJlZ3MtPmdwcnNbMTVdCT0gbmV3X3N0YWNrcDsJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBzdGFydF90aHJlYWQzMShyZWdzLCBuZXdfcHN3LCBuZXdfc3RhY2twKSBkbyB7CQlcCisJc2V0X2ZzKFVTRVJfRFMpOwkJCQkJXAorCXJlZ3MtPnBzdy5tYXNrCT0gcHN3X3VzZXIzMl9iaXRzOwkJCVwKKwlyZWdzLT5wc3cuYWRkcgk9IG5ld19wc3cgfCBQU1dfQUREUl9BTU9ERTsJCVwKKwlyZWdzLT5ncHJzWzE1XQk9IG5ld19zdGFja3A7CQkJCVwKKwljcnN0X3RhYmxlX2Rvd25ncmFkZShjdXJyZW50LT5tbSwgMVVMIDw8IDMxKTsJCVwKIH0gd2hpbGUgKDApCiAKIC8qIEZvcndhcmQgZGVjbGFyYXRpb24sIGEgc3RyYW5nZSBDIHRoaW5nICovCkBAIC0zMjgsMTYgKzMzNiw2IEBACiBleHRlcm4gdm9pZCAoKnMzOTBfYmFzZV9wZ21faGFuZGxlcl9mbikodm9pZCk7CiBleHRlcm4gdm9pZCAoKnMzOTBfYmFzZV9leHRfaGFuZGxlcl9mbikodm9pZCk7CiAKLS8qCi0gKiBDUFUgaWRsZSBub3RpZmllciBjaGFpbi4KLSAqLwotI2RlZmluZSBTMzkwX0NQVV9JRExFCQkwCi0jZGVmaW5lIFMzOTBfQ1BVX05PVF9JRExFCTEKLQotc3RydWN0IG5vdGlmaWVyX2Jsb2NrOwotaW50IHJlZ2lzdGVyX2lkbGVfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7Ci1pbnQgdW5yZWdpc3Rlcl9pZGxlX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpOwotCiAjZGVmaW5lIEFSQ0hfTE9XX0FERFJFU1NfTElNSVQJMHg3ZmZmZmZmZlVMCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC9wdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXMzOTAvcHRyYWNlLmgKaW5kZXggZDdkNGUyZS4uYWYyYzlhYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tczM5MC9wdHJhY2UuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL3B0cmFjZS5oCkBAIC0yMTUsNiArMjE1LDEyIEBACiAgICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkcjsKIH0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQoOCkpKSBwc3dfdDsKIAordHlwZWRlZiBzdHJ1Y3QKK3sKKwlfX3UzMgltYXNrOworCV9fdTMyCWFkZHI7Cit9IF9fYXR0cmlidXRlX18gKChhbGlnbmVkKDgpKSkgcHN3X2NvbXBhdF90OworCiAjaWZuZGVmIF9fczM5MHhfXwogCiAjZGVmaW5lIFBTV19NQVNLX1BFUgkJMHg0MDAwMDAwMFVMCkBAIC0yOTIsNiArMjk4LDE1IEBACiAJdW5zaWduZWQgbG9uZyBvcmlnX2dwcjI7CiB9IHMzOTBfcmVnczsKIAordHlwZWRlZiBzdHJ1Y3QKK3sKKwlwc3dfY29tcGF0X3QJcHN3OworCV9fdTMyCQlncHJzW05VTV9HUFJTXTsKKwlfX3UzMgkJYWNyc1tOVU1fQUNSU107CisJX191MzIJCW9yaWdfZ3ByMjsKK30gczM5MF9jb21wYXRfcmVnczsKKworCiAjaWZkZWYgX19LRVJORUxfXwogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3NjaGlkLmggYi9pbmNsdWRlL2FzbS1zMzkwL3NjaGlkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAxN2ZmYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc2NoaWQuaApAQCAtMCwwICsxLDI4IEBACisjaWZuZGVmIEFTTV9TQ0hJRF9ICisjZGVmaW5lIEFTTV9TQ0hJRF9ICisKK3N0cnVjdCBzdWJjaGFubmVsX2lkIHsKKwlfX3UzMiBjc3NpZCA6IDg7CisJX191MzIgOiA0OworCV9fdTMyIG0gOiAxOworCV9fdTMyIHNzaWQgOiAyOworCV9fdTMyIG9uZSA6IDE7CisJX191MzIgc2NoX25vIDogMTY7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoNCkpKTsKKworCisvKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHNhbmUgc3RhdGUgb2YgcHJlLWFsbG9jYXRlZCBzdWJjaGFubmVsX2lkLiAqLworc3RhdGljIGlubGluZSB2b2lkCitpbml0X3N1YmNoYW5uZWxfaWQoc3RydWN0IHN1YmNoYW5uZWxfaWQgKnNjaGlkKQoreworCW1lbXNldChzY2hpZCwgMCwgc2l6ZW9mKHN0cnVjdCBzdWJjaGFubmVsX2lkKSk7CisJc2NoaWQtPm9uZSA9IDE7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitzY2hpZF9lcXVhbChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQxLCBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQyKQoreworCXJldHVybiAhbWVtY21wKHNjaGlkMSwgc2NoaWQyLCBzaXplb2Yoc3RydWN0IHN1YmNoYW5uZWxfaWQpKTsKK30KKworI2VuZGlmIC8qIEFTTV9TQ0hJRF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3NjbHAuaCBiL2luY2x1ZGUvYXNtLXMzOTAvc2NscC5oCmluZGV4IGI1ZjI4NDMuLmZlZDdiZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvc2NscC5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc2NscC5oCkBAIC00NSw5ICs0NSw5IEBACiBpbnQgc2NscF9nZXRfY3B1X2luZm8oc3RydWN0IHNjbHBfY3B1X2luZm8gKmluZm8pOwogaW50IHNjbHBfY3B1X2NvbmZpZ3VyZSh1OCBjcHUpOwogaW50IHNjbHBfY3B1X2RlY29uZmlndXJlKHU4IGNwdSk7Ci12b2lkIHNjbHBfcmVhZF9pbmZvX2Vhcmx5KHZvaWQpOwogdm9pZCBzY2xwX2ZhY2lsaXRpZXNfZGV0ZWN0KHZvaWQpOwotdW5zaWduZWQgbG9uZyBsb25nIHNjbHBfbWVtb3J5X2RldGVjdCh2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbG9uZyBzY2xwX2dldF9ybm1heCh2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbG9uZyBzY2xwX2dldF9yem0odm9pZCk7CiBpbnQgc2NscF9zZGlhc19ibGtfY291bnQodm9pZCk7CiBpbnQgc2NscF9zZGlhc19jb3B5KHZvaWQgKmRlc3QsIGludCBibGtfbnVtLCBpbnQgbnJfYmxrcyk7CiBpbnQgc2NscF9jaHBfY29uZmlndXJlKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC9zZXR1cC5oIGIvaW5jbHVkZS9hc20tczM5MC9zZXR1cC5oCmluZGV4IGJhNjk2NzQuLmYwOWVlM2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvc2V0dXAuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL3NldHVwLmgKQEAgLTgsMTQgKzgsMTYgQEAKICNpZm5kZWYgX0FTTV9TMzkwX1NFVFVQX0gKICNkZWZpbmUgX0FTTV9TMzkwX1NFVFVQX0gKIAotI2RlZmluZSBDT01NQU5EX0xJTkVfU0laRSAJODk2CisjZGVmaW5lIENPTU1BTkRfTElORV9TSVpFCTEwMjQKKworI2RlZmluZSBBUkNIX0NPTU1BTkRfTElORV9TSVpFCTg5NgogCiAjaWZkZWYgX19LRVJORUxfXwogCiAjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CiAKICNkZWZpbmUgUEFSTUFSRUEJCTB4MTA0MDAKLSNkZWZpbmUgTUVNT1JZX0NIVU5LUwkJMTYJLyogbWF4IDB4N2ZmZiAqLworI2RlZmluZSBNRU1PUllfQ0hVTktTCQkyNTYKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIApAQCAtMzYsMTIgKzM4LDE0IEBACiBzdHJ1Y3QgbWVtX2NodW5rIHsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJdW5zaWduZWQgbG9uZyBzaXplOwotCXVuc2lnbmVkIGxvbmcgdHlwZTsKKwlpbnQgdHlwZTsKIH07CiAKIGV4dGVybiBzdHJ1Y3QgbWVtX2NodW5rIG1lbW9yeV9jaHVua1tdOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcmVhbF9tZW1vcnlfc2l6ZTsKIAordm9pZCBkZXRlY3RfbWVtb3J5X2xheW91dChzdHJ1Y3QgbWVtX2NodW5rIGNodW5rW10pOworCiAjaWZkZWYgQ09ORklHX1MzOTBfU1dJVENIX0FNT0RFCiBleHRlcm4gdW5zaWduZWQgaW50IHN3aXRjaF9hbW9kZTsKICNlbHNlCkBAIC02MSw3ICs2NSw2IEBACiAKICNkZWZpbmUgTUFDSElORV9GTEFHX1ZNCQkoMVVMIDw8IDApCiAjZGVmaW5lIE1BQ0hJTkVfRkxBR19JRUVFCSgxVUwgPDwgMSkKLSNkZWZpbmUgTUFDSElORV9GTEFHX1AzOTAJKDFVTCA8PCAyKQogI2RlZmluZSBNQUNISU5FX0ZMQUdfQ1NQCSgxVUwgPDwgMykKICNkZWZpbmUgTUFDSElORV9GTEFHX01WUEcJKDFVTCA8PCA0KQogI2RlZmluZSBNQUNISU5FX0ZMQUdfRElBRzQ0CSgxVUwgPDwgNSkKQEAgLTk3LDcgKzEwMCw2IEBACiAjZGVmaW5lIE1BQ0hJTkVfSEFTX1BGTUYJKG1hY2hpbmVfZmxhZ3MgJiBNQUNISU5FX0ZMQUdfUEZNRikKICNlbmRpZiAvKiBfX3MzOTB4X18gKi8KIAotI2RlZmluZSBNQUNISU5FX0hBU19TQ0xQCSghTUFDSElORV9JU19QMzkwKQogI2RlZmluZSBaRkNQRFVNUF9IU0FfU0laRQkoMzJVTDw8MjApCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3NwYXJzZW1lbS5oIGIvaW5jbHVkZS9hc20tczM5MC9zcGFyc2VtZW0uaAppbmRleCAwNmRmZGFiLi41NDVkMjE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3NwYXJzZW1lbS5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc3BhcnNlbWVtLmgKQEAgLTEsMTUgKzEsMTUgQEAKICNpZm5kZWYgX0FTTV9TMzkwX1NQQVJTRU1FTV9ICiAjZGVmaW5lIF9BU01fUzM5MF9TUEFSU0VNRU1fSAogCi0jZGVmaW5lIFNFQ1RJT05fU0laRV9CSVRTCTI1Ci0KICNpZmRlZiBDT05GSUdfNjRCSVQKIAorI2RlZmluZSBTRUNUSU9OX1NJWkVfQklUUwkyOAogI2RlZmluZSBNQVhfUEhZU0FERFJfQklUUwk0MgogI2RlZmluZSBNQVhfUEhZU01FTV9CSVRTCTQyCiAKICNlbHNlCiAKKyNkZWZpbmUgU0VDVElPTl9TSVpFX0JJVFMJMjUKICNkZWZpbmUgTUFYX1BIWVNBRERSX0JJVFMJMzEKICNkZWZpbmUgTUFYX1BIWVNNRU1fQklUUwkzMQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3RpbWVyLmggYi9pbmNsdWRlL2FzbS1zMzkwL3RpbWVyLmgKaW5kZXggYWRiMzQ4Ni4uZDk4ZDc5ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tczM5MC90aW1lci5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvdGltZXIuaApAQCAtNDgsNiArNDgsMTggQEAKIGV4dGVybiB2b2lkIGluaXRfY3B1X3Z0aW1lcih2b2lkKTsKIGV4dGVybiB2b2lkIHZ0aW1lX2luaXQodm9pZCk7CiAKKyNpZmRlZiBDT05GSUdfVklSVF9USU1FUgorCitleHRlcm4gdm9pZCB2dGltZV9zdGFydF9jcHVfdGltZXIodm9pZCk7CitleHRlcm4gdm9pZCB2dGltZV9zdG9wX2NwdV90aW1lcih2b2lkKTsKKworI2Vsc2UKKworc3RhdGljIGlubGluZSB2b2lkIHZ0aW1lX3N0YXJ0X2NwdV90aW1lcih2b2lkKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCB2dGltZV9zdG9wX2NwdV90aW1lcih2b2lkKSB7IH0KKworI2VuZGlmIC8qIENPTkZJR19WSVJUX1RJTUVSICovCisKICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCiAKICNlbmRpZiAvKiBfQVNNX1MzOTBfVElNRVJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC96Y3J5cHQuaCBiL2luY2x1ZGUvYXNtLXMzOTAvemNyeXB0LmgKaW5kZXggZjIyOGYxYi4uMDBkM2JiZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tczM5MC96Y3J5cHQuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL3pjcnlwdC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNkZWZpbmUgWkNSWVBUX1ZFUlNJT04gMgogI2RlZmluZSBaQ1JZUFRfUkVMRUFTRSAxCi0jZGVmaW5lIFpDUllQVF9WQVJJQU5UIDAKKyNkZWZpbmUgWkNSWVBUX1ZBUklBTlQgMQogCiAjaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tc3BhcmM2NC9mdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXNwYXJjNjQvZnRyYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI3NzE2YwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXNwYXJjNjQvZnRyYWNlLmgKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfQVNNX1NQQVJDNjRfRlRSQUNFCisjZGVmaW5lIF9BU01fU1BBUkM2NF9GVFJBQ0UKKworI2lmZGVmIENPTkZJR19NQ09VTlQKKyNkZWZpbmUgTUNPVU5UX0FERFIJCSgobG9uZykoX21jb3VudCkpCisjZGVmaW5lIE1DT1VOVF9JTlNOX1NJWkUJNCAvKiBzaXplb2YgbWNvdW50IGNhbGwgKi8KKworI2lmbmRlZiBfX0FTU0VNQkxZX18KK2V4dGVybiB2b2lkIF9tY291bnQodm9pZCk7CisjZW5kaWYKKworI2VuZGlmCisKKyNlbmRpZiAvKiBfQVNNX1NQQVJDNjRfRlRSQUNFICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYWNwaS5oIGIvaW5jbHVkZS9hc20teDg2L2FjcGkuaAppbmRleCAxNDQxMWM5Li42MzVkNzY0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYWNwaS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9hY3BpLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxhc20vbnVtYS5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vbW11Lmg+CisjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgogCiAjZGVmaW5lIENPTVBJTEVSX0RFUEVOREVOVF9JTlQ2NCAgIGxvbmcgbG9uZwogI2RlZmluZSBDT01QSUxFUl9ERVBFTkRFTlRfVUlOVDY0ICB1bnNpZ25lZCBsb25nIGxvbmcKQEAgLTE2MCw5ICsxNjEsNyBAQAogI2lmZGVmIENPTkZJR19BQ1BJX05VTUEKIGV4dGVybiBpbnQgYWNwaV9udW1hOwogZXh0ZXJuIGludCBhY3BpX3NjYW5fbm9kZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwotI2lmZGVmIENPTkZJR19YODZfNjQKLSMgZGVmaW5lIE5SX05PREVfTUVNQkxLUyAoTUFYX05VTU5PREVTKjIpCi0jZW5kaWYKKyNkZWZpbmUgTlJfTk9ERV9NRU1CTEtTIChNQVhfTlVNTk9ERVMqMikKIGV4dGVybiB2b2lkIGFjcGlfZmFrZV9ub2Rlcyhjb25zdCBzdHJ1Y3QgYm9vdG5vZGUgKmZha2Vfbm9kZXMsCiAJCQkJICAgaW50IG51bV9ub2Rlcyk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmggYi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaAppbmRleCAxZjZhOWNhLi5mNmFhMThlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaApAQCAtNzIsNiArNzIsOCBAQAogc3RhdGljIGlubGluZSB2b2lkIGFsdGVybmF0aXZlc19zbXBfc3dpdGNoKGludCBzbXApIHt9CiAjZW5kaWYJLyogQ09ORklHX1NNUCAqLwogCitjb25zdCB1bnNpZ25lZCBjaGFyICpjb25zdCAqZmluZF9ub3BfdGFibGUodm9pZCk7CisKIC8qCiAgKiBBbHRlcm5hdGl2ZSBpbnN0cnVjdGlvbnMgZm9yIGRpZmZlcmVudCBDUFUgdHlwZXMgb3IgY2FwYWJpbGl0aWVzLgogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9hbWRfaW9tbXUuaCBiL2luY2x1ZGUvYXNtLXg4Ni9hbWRfaW9tbXUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGExMjA0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20teDg2L2FtZF9pb21tdS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBBdXRob3I6IEpvZXJnIFJvZWRlbCA8am9lcmcucm9lZGVsQGFtZC5jb20+CisgKiAgICAgICAgIExlbyBEdXJhbiA8bGVvLmR1cmFuQGFtZC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZAorICogYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2lmbmRlZiBfQVNNX1g4Nl9BTURfSU9NTVVfSAorI2RlZmluZSBfQVNNX1g4Nl9BTURfSU9NTVVfSAorCisjaWZkZWYgQ09ORklHX0FNRF9JT01NVQorZXh0ZXJuIGludCBhbWRfaW9tbXVfaW5pdCh2b2lkKTsKK2V4dGVybiBpbnQgYW1kX2lvbW11X2luaXRfZG1hX29wcyh2b2lkKTsKK2V4dGVybiB2b2lkIGFtZF9pb21tdV9kZXRlY3Qodm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgYW1kX2lvbW11X2luaXQodm9pZCkgeyByZXR1cm4gLUVOT0RFVjsgfQorc3RhdGljIGlubGluZSB2b2lkIGFtZF9pb21tdV9kZXRlY3Qodm9pZCkgeyB9CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYW1kX2lvbW11X3R5cGVzLmggYi9pbmNsdWRlL2FzbS14ODYvYW1kX2lvbW11X3R5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JmY2I0NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9hbWRfaW9tbXVfdHlwZXMuaApAQCAtMCwwICsxLDI0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEF1dGhvcjogSm9lcmcgUm9lZGVsIDxqb2VyZy5yb2VkZWxAYW1kLmNvbT4KKyAqICAgICAgICAgTGVvIER1cmFuIDxsZW8uZHVyYW5AYW1kLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaWZuZGVmIF9fQU1EX0lPTU1VX1RZUEVTX0hfXworI2RlZmluZSBfX0FNRF9JT01NVV9UWVBFU19IX18KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisKKy8qCisgKiBzb21lIHNpemUgY2FsY3VsYXRpb24gY29uc3RhbnRzCisgKi8KKyNkZWZpbmUgREVWX1RBQkxFX0VOVFJZX1NJWkUJCTI1NgorI2RlZmluZSBBTElBU19UQUJMRV9FTlRSWV9TSVpFCQkyCisjZGVmaW5lIFJMT09LVVBfVEFCTEVfRU5UUllfU0laRQkoc2l6ZW9mKHZvaWQgKikpCisKKy8qIGhlbHBlciBtYWNyb3MgKi8KKyNkZWZpbmUgTE9XX1UzMih4KSAoKHgpICYgKCgxVUxMIDw8IDMyKS0xKSkKKyNkZWZpbmUgSElHSF9VMzIoeCkgKExPV19VMzIoKHgpID4+IDMyKSkKKworLyogTGVuZ3RoIG9mIHRoZSBNTUlPIHJlZ2lvbiBmb3IgdGhlIEFNRCBJT01NVSAqLworI2RlZmluZSBNTUlPX1JFR0lPTl9MRU5HVEggICAgICAgMHg0MDAwCisKKy8qIENhcGFiaWxpdHkgb2Zmc2V0cyB1c2VkIGJ5IHRoZSBkcml2ZXIgKi8KKyNkZWZpbmUgTU1JT19DQVBfSERSX09GRlNFVAkweDAwCisjZGVmaW5lIE1NSU9fUkFOR0VfT0ZGU0VUCTB4MGMKKworLyogTWFza3MsIHNoaWZ0cyBhbmQgbWFjcm9zIHRvIHBhcnNlIHRoZSBkZXZpY2UgcmFuZ2UgY2FwYWJpbGl0eSAqLworI2RlZmluZSBNTUlPX1JBTkdFX0xEX01BU0sJMHhmZjAwMDAwMAorI2RlZmluZSBNTUlPX1JBTkdFX0ZEX01BU0sJMHgwMGZmMDAwMAorI2RlZmluZSBNTUlPX1JBTkdFX0JVU19NQVNLCTB4MDAwMGZmMDAKKyNkZWZpbmUgTU1JT19SQU5HRV9MRF9TSElGVAkyNAorI2RlZmluZSBNTUlPX1JBTkdFX0ZEX1NISUZUCTE2CisjZGVmaW5lIE1NSU9fUkFOR0VfQlVTX1NISUZUCTgKKyNkZWZpbmUgTU1JT19HRVRfTEQoeCkgICgoKHgpICYgTU1JT19SQU5HRV9MRF9NQVNLKSA+PiBNTUlPX1JBTkdFX0xEX1NISUZUKQorI2RlZmluZSBNTUlPX0dFVF9GRCh4KSAgKCgoeCkgJiBNTUlPX1JBTkdFX0ZEX01BU0spID4+IE1NSU9fUkFOR0VfRkRfU0hJRlQpCisjZGVmaW5lIE1NSU9fR0VUX0JVUyh4KSAoKCh4KSAmIE1NSU9fUkFOR0VfQlVTX01BU0spID4+IE1NSU9fUkFOR0VfQlVTX1NISUZUKQorCisvKiBGbGFnIG1hc2tzIGZvciB0aGUgQU1EIElPTU1VIGV4Y2x1c2lvbiByYW5nZSAqLworI2RlZmluZSBNTUlPX0VYQ0xfRU5BQkxFX01BU0sgMHgwMVVMTAorI2RlZmluZSBNTUlPX0VYQ0xfQUxMT1dfTUFTSyAgMHgwMlVMTAorCisvKiBVc2VkIG9mZnNldHMgaW50byB0aGUgTU1JTyBzcGFjZSAqLworI2RlZmluZSBNTUlPX0RFVl9UQUJMRV9PRkZTRVQgICAweDAwMDAKKyNkZWZpbmUgTU1JT19DTURfQlVGX09GRlNFVCAgICAgMHgwMDA4CisjZGVmaW5lIE1NSU9fRVZUX0JVRl9PRkZTRVQgICAgIDB4MDAxMAorI2RlZmluZSBNTUlPX0NPTlRST0xfT0ZGU0VUICAgICAweDAwMTgKKyNkZWZpbmUgTU1JT19FWENMX0JBU0VfT0ZGU0VUICAgMHgwMDIwCisjZGVmaW5lIE1NSU9fRVhDTF9MSU1JVF9PRkZTRVQgIDB4MDAyOAorI2RlZmluZSBNTUlPX0NNRF9IRUFEX09GRlNFVAkweDIwMDAKKyNkZWZpbmUgTU1JT19DTURfVEFJTF9PRkZTRVQJMHgyMDA4CisjZGVmaW5lIE1NSU9fRVZUX0hFQURfT0ZGU0VUCTB4MjAxMAorI2RlZmluZSBNTUlPX0VWVF9UQUlMX09GRlNFVAkweDIwMTgKKyNkZWZpbmUgTU1JT19TVEFUVVNfT0ZGU0VUCTB4MjAyMAorCisvKiBmZWF0dXJlIGNvbnRyb2wgYml0cyAqLworI2RlZmluZSBDT05UUk9MX0lPTU1VX0VOICAgICAgICAweDAwVUxMCisjZGVmaW5lIENPTlRST0xfSFRfVFVOX0VOICAgICAgIDB4MDFVTEwKKyNkZWZpbmUgQ09OVFJPTF9FVlRfTE9HX0VOICAgICAgMHgwMlVMTAorI2RlZmluZSBDT05UUk9MX0VWVF9JTlRfRU4gICAgICAweDAzVUxMCisjZGVmaW5lIENPTlRST0xfQ09NV0FJVF9FTiAgICAgIDB4MDRVTEwKKyNkZWZpbmUgQ09OVFJPTF9QQVNTUFdfRU4gICAgICAgMHgwOFVMTAorI2RlZmluZSBDT05UUk9MX1JFU1BBU1NQV19FTiAgICAweDA5VUxMCisjZGVmaW5lIENPTlRST0xfQ09IRVJFTlRfRU4gICAgIDB4MGFVTEwKKyNkZWZpbmUgQ09OVFJPTF9JU09DX0VOICAgICAgICAgMHgwYlVMTAorI2RlZmluZSBDT05UUk9MX0NNREJVRl9FTiAgICAgICAweDBjVUxMCisjZGVmaW5lIENPTlRST0xfUFBGTE9HX0VOICAgICAgIDB4MGRVTEwKKyNkZWZpbmUgQ09OVFJPTF9QUEZJTlRfRU4gICAgICAgMHgwZVVMTAorCisvKiBjb21tYW5kIHNwZWNpZmljIGRlZmluZXMgKi8KKyNkZWZpbmUgQ01EX0NPTVBMX1dBSVQgICAgICAgICAgMHgwMQorI2RlZmluZSBDTURfSU5WX0RFVl9FTlRSWSAgICAgICAweDAyCisjZGVmaW5lIENNRF9JTlZfSU9NTVVfUEFHRVMgICAgIDB4MDMKKworI2RlZmluZSBDTURfQ09NUExfV0FJVF9TVE9SRV9NQVNLCTB4MDEKKyNkZWZpbmUgQ01EX0lOVl9JT01NVV9QQUdFU19TSVpFX01BU0sJMHgwMQorI2RlZmluZSBDTURfSU5WX0lPTU1VX1BBR0VTX1BERV9NQVNLCTB4MDIKKworI2RlZmluZSBDTURfSU5WX0lPTU1VX0FMTF9QQUdFU19BRERSRVNTCTB4N2ZmZmZmZmZmZmZmZmZmZlVMTAorCisvKiBtYWNyb3MgYW5kIGRlZmluaXRpb25zIGZvciBkZXZpY2UgdGFibGUgZW50cmllcyAqLworI2RlZmluZSBERVZfRU5UUllfVkFMSUQgICAgICAgICAweDAwCisjZGVmaW5lIERFVl9FTlRSWV9UUkFOU0xBVElPTiAgIDB4MDEKKyNkZWZpbmUgREVWX0VOVFJZX0lSICAgICAgICAgICAgMHgzZAorI2RlZmluZSBERVZfRU5UUllfSVcgICAgICAgICAgICAweDNlCisjZGVmaW5lIERFVl9FTlRSWV9FWCAgICAgICAgICAgIDB4NjcKKyNkZWZpbmUgREVWX0VOVFJZX1NZU01HVDEgICAgICAgMHg2OAorI2RlZmluZSBERVZfRU5UUllfU1lTTUdUMiAgICAgICAweDY5CisjZGVmaW5lIERFVl9FTlRSWV9JTklUX1BBU1MgICAgIDB4YjgKKyNkZWZpbmUgREVWX0VOVFJZX0VJTlRfUEFTUyAgICAgMHhiOQorI2RlZmluZSBERVZfRU5UUllfTk1JX1BBU1MgICAgICAweGJhCisjZGVmaW5lIERFVl9FTlRSWV9MSU5UMF9QQVNTICAgIDB4YmUKKyNkZWZpbmUgREVWX0VOVFJZX0xJTlQxX1BBU1MgICAgMHhiZgorCisvKiBjb25zdGFudHMgdG8gY29uZmlndXJlIHRoZSBjb21tYW5kIGJ1ZmZlciAqLworI2RlZmluZSBDTURfQlVGRkVSX1NJWkUgICAgODE5MgorI2RlZmluZSBDTURfQlVGRkVSX0VOVFJJRVMgNTEyCisjZGVmaW5lIE1NSU9fQ01EX1NJWkVfU0hJRlQgNTYKKyNkZWZpbmUgTU1JT19DTURfU0laRV81MTIgKDB4OVVMTCA8PCBNTUlPX0NNRF9TSVpFX1NISUZUKQorCisjZGVmaW5lIFBBR0VfTU9ERV8xX0xFVkVMIDB4MDEKKyNkZWZpbmUgUEFHRV9NT0RFXzJfTEVWRUwgMHgwMgorI2RlZmluZSBQQUdFX01PREVfM19MRVZFTCAweDAzCisKKyNkZWZpbmUgSU9NTVVfUERFX05MXzAgICAweDAwMFVMTAorI2RlZmluZSBJT01NVV9QREVfTkxfMSAgIDB4MjAwVUxMCisjZGVmaW5lIElPTU1VX1BERV9OTF8yICAgMHg0MDBVTEwKKyNkZWZpbmUgSU9NTVVfUERFX05MXzMgICAweDYwMFVMTAorCisjZGVmaW5lIElPTU1VX1BURV9MMl9JTkRFWChhZGRyZXNzKSAoKChhZGRyZXNzKSA+PiAzMCkgJiAweDFmZlVMTCkKKyNkZWZpbmUgSU9NTVVfUFRFX0wxX0lOREVYKGFkZHJlc3MpICgoKGFkZHJlc3MpID4+IDIxKSAmIDB4MWZmVUxMKQorI2RlZmluZSBJT01NVV9QVEVfTDBfSU5ERVgoYWRkcmVzcykgKCgoYWRkcmVzcykgPj4gMTIpICYgMHgxZmZVTEwpCisKKyNkZWZpbmUgSU9NTVVfTUFQX1NJWkVfTDEgKDFVTEwgPDwgMjEpCisjZGVmaW5lIElPTU1VX01BUF9TSVpFX0wyICgxVUxMIDw8IDMwKQorI2RlZmluZSBJT01NVV9NQVBfU0laRV9MMyAoMVVMTCA8PCAzOSkKKworI2RlZmluZSBJT01NVV9QVEVfUCAgKDFVTEwgPDwgMCkKKyNkZWZpbmUgSU9NTVVfUFRFX1UgICgxVUxMIDw8IDU5KQorI2RlZmluZSBJT01NVV9QVEVfRkMgKDFVTEwgPDwgNjApCisjZGVmaW5lIElPTU1VX1BURV9JUiAoMVVMTCA8PCA2MSkKKyNkZWZpbmUgSU9NTVVfUFRFX0lXICgxVUxMIDw8IDYyKQorCisjZGVmaW5lIElPTU1VX0wxX1BERShhZGRyZXNzKSBcCisJKChhZGRyZXNzKSB8IElPTU1VX1BERV9OTF8xIHwgSU9NTVVfUFRFX1AgfCBJT01NVV9QVEVfSVIgfCBJT01NVV9QVEVfSVcpCisjZGVmaW5lIElPTU1VX0wyX1BERShhZGRyZXNzKSBcCisJKChhZGRyZXNzKSB8IElPTU1VX1BERV9OTF8yIHwgSU9NTVVfUFRFX1AgfCBJT01NVV9QVEVfSVIgfCBJT01NVV9QVEVfSVcpCisKKyNkZWZpbmUgSU9NTVVfUEFHRV9NQVNLICgoKDFVTEwgPDwgNTIpIC0gMSkgJiB+MHhmZmZVTEwpCisjZGVmaW5lIElPTU1VX1BURV9QUkVTRU5UKHB0ZSkgKChwdGUpICYgSU9NTVVfUFRFX1ApCisjZGVmaW5lIElPTU1VX1BURV9QQUdFKHB0ZSkgKHBoeXNfdG9fdmlydCgocHRlKSAmIElPTU1VX1BBR0VfTUFTSykpCisjZGVmaW5lIElPTU1VX1BURV9NT0RFKHB0ZSkgKCgocHRlKSA+PiA5KSAmIDB4MDcpCisKKyNkZWZpbmUgSU9NTVVfUFJPVF9NQVNLIDB4MDMKKyNkZWZpbmUgSU9NTVVfUFJPVF9JUiAweDAxCisjZGVmaW5lIElPTU1VX1BST1RfSVcgMHgwMgorCisvKiBJT01NVSBjYXBhYmlsaXRpZXMgKi8KKyNkZWZpbmUgSU9NTVVfQ0FQX0lPVExCICAgMjQKKyNkZWZpbmUgSU9NTVVfQ0FQX05QQ0FDSEUgMjYKKworI2RlZmluZSBNQVhfRE9NQUlOX0lEIDY1NTM2CisKK3N0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiB7CisJc3BpbmxvY2tfdCBsb2NrOworCXUxNiBpZDsKKwlpbnQgbW9kZTsKKwl1NjQgKnB0X3Jvb3Q7CisJdm9pZCAqcHJpdjsKK307CisKK3N0cnVjdCBkbWFfb3BzX2RvbWFpbiB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiBkb21haW47CisJdW5zaWduZWQgbG9uZyBhcGVydHVyZV9zaXplOworCXVuc2lnbmVkIGxvbmcgbmV4dF9iaXQ7CisJdW5zaWduZWQgbG9uZyAqYml0bWFwOworCXU2NCAqKnB0ZV9wYWdlczsKK307CisKK3N0cnVjdCBhbWRfaW9tbXUgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKwlzcGlubG9ja190IGxvY2s7CisKKwl1MTYgZGV2aWQ7CisJdTE2IGNhcF9wdHI7CisKKwl1NjQgbW1pb19waHlzOworCXU4ICptbWlvX2Jhc2U7CisJdTMyIGNhcDsKKwl1MTYgZmlyc3RfZGV2aWNlOworCXUxNiBsYXN0X2RldmljZTsKKwl1NjQgZXhjbHVzaW9uX3N0YXJ0OworCXU2NCBleGNsdXNpb25fbGVuZ3RoOworCisJdTggKmNtZF9idWY7CisJdTMyIGNtZF9idWZfc2l6ZTsKKworCWludCBuZWVkX3N5bmM7CisKKwlzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRlZmF1bHRfZG9tOworfTsKKworZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgYW1kX2lvbW11X2xpc3Q7CisKK3N0cnVjdCBkZXZfdGFibGVfZW50cnkgeworCXUzMiBkYXRhWzhdOworfTsKKworc3RydWN0IHVuaXR5X21hcF9lbnRyeSB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXUxNiBkZXZpZF9zdGFydDsKKwl1MTYgZGV2aWRfZW5kOworCXU2NCBhZGRyZXNzX3N0YXJ0OworCXU2NCBhZGRyZXNzX2VuZDsKKwlpbnQgcHJvdDsKK307CisKK2V4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGFtZF9pb21tdV91bml0eV9tYXA7CisKKy8qIGRhdGEgc3RydWN0dXJlcyBmb3IgZGV2aWNlIGhhbmRsaW5nICovCitleHRlcm4gc3RydWN0IGRldl90YWJsZV9lbnRyeSAqYW1kX2lvbW11X2Rldl90YWJsZTsKK2V4dGVybiB1MTYgKmFtZF9pb21tdV9hbGlhc190YWJsZTsKK2V4dGVybiBzdHJ1Y3QgYW1kX2lvbW11ICoqYW1kX2lvbW11X3Jsb29rdXBfdGFibGU7CisKK2V4dGVybiB1bnNpZ25lZCBhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXI7CisKK2V4dGVybiB1MTYgYW1kX2lvbW11X2xhc3RfYmRmOworCisvKiBkYXRhIHN0cnVjdHVyZXMgZm9yIHByb3RlY3Rpb24gZG9tYWluIGhhbmRsaW5nICovCitleHRlcm4gc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICoqYW1kX2lvbW11X3BkX3RhYmxlOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKmFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXA7CisKK2V4dGVybiBpbnQgYW1kX2lvbW11X2lzb2xhdGU7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwcmludF9kZXZpZCh1MTYgZGV2aWQsIGludCBubCkKK3sKKwlpbnQgYnVzID0gZGV2aWQgPj4gODsKKwlpbnQgZGV2ID0gZGV2aWQgPj4gMyAmIDB4MWY7CisJaW50IGZuICA9IGRldmlkICYgMHgwNzsKKworCXByaW50aygiJTAyeDolMDJ4LiV4IiwgYnVzLCBkZXYsIGZuKTsKKwlpZiAobmwpCisJCXByaW50aygiXG4iKTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYXBpYy5oIGIvaW5jbHVkZS9hc20teDg2L2FwaWMuaAppbmRleCBiZTk2MzlhLi40ZTJjMWU1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYXBpYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9hcGljLmgKQEAgLTM2LDE1ICszNiwxMSBAQAogI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwogCiBleHRlcm4gaW50IGFwaWNfdmVyYm9zaXR5OwotZXh0ZXJuIGludCB0aW1lcl9vdmVyXzgyNTQ7CiBleHRlcm4gaW50IGxvY2FsX2FwaWNfdGltZXJfYzJfb2s7Ci1leHRlcm4gaW50IGxvY2FsX2FwaWNfdGltZXJfZGlzYWJsZWQ7CiAKLWV4dGVybiBpbnQgYXBpY19ydW5zX21haW5fdGltZXI7CiBleHRlcm4gaW50IGlvYXBpY19mb3JjZTsKLWV4dGVybiBpbnQgZGlzYWJsZV9hcGljOwotZXh0ZXJuIGludCBkaXNhYmxlX2FwaWNfdGltZXI7CiAKK2V4dGVybiBpbnQgZGlzYWJsZV9hcGljOwogLyoKICAqIEJhc2ljIGZ1bmN0aW9ucyBhY2Nlc3NpbmcgQVBJQ3MuCiAgKi8KQEAgLTEyNSwxNiArMTIxLDIyIEBACiAgKi8KICNpZmRlZiBDT05GSUdfWDg2XzY0CiBleHRlcm4gdm9pZCBlYXJseV9pbml0X2xhcGljX21hcHBpbmcodm9pZCk7CitleHRlcm4gaW50IGFwaWNfaXNfY2x1c3RlcmVkX2JveCh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBhcGljX2lzX2NsdXN0ZXJlZF9ib3godm9pZCkKK3sKKwlyZXR1cm4gMDsKK30KICNlbmRpZgogCiBleHRlcm4gdTggc2V0dXBfQVBJQ19laWx2dF9tY2UodTggdmVjdG9yLCB1OCBtc2dfdHlwZSwgdTggbWFzayk7CiBleHRlcm4gdTggc2V0dXBfQVBJQ19laWx2dF9pYnModTggdmVjdG9yLCB1OCBtc2dfdHlwZSwgdTggbWFzayk7CiAKLWV4dGVybiBpbnQgYXBpY19pc19jbHVzdGVyZWRfYm94KHZvaWQpOwogCiAjZWxzZSAvKiAhQ09ORklHX1g4Nl9MT0NBTF9BUElDICovCiBzdGF0aWMgaW5saW5lIHZvaWQgbGFwaWNfc2h1dGRvd24odm9pZCkgeyB9CiAjZGVmaW5lIGxvY2FsX2FwaWNfdGltZXJfYzJfb2sJCTEKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0X2FwaWNfbWFwcGluZ3Modm9pZCkgeyB9CiAKICNlbmRpZiAvKiAhQ09ORklHX1g4Nl9MT0NBTF9BUElDICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9hc20uaCBiL2luY2x1ZGUvYXNtLXg4Ni9hc20uaAppbmRleCA5MGRlYzBjLi45NzIyMDMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYXNtLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2FzbS5oCkBAIC0xLDM3ICsxLDQwIEBACiAjaWZuZGVmIF9BU01fWDg2X0FTTV9ICiAjZGVmaW5lIF9BU01fWDg2X0FTTV9ICiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0vKiAzMiBiaXRzICovCi0KLSMgZGVmaW5lIF9BU01fUFRSCSIgLmxvbmcgIgotIyBkZWZpbmUgX0FTTV9BTElHTgkiIC5iYWxpZ24gNCAiCi0jIGRlZmluZSBfQVNNX01PVl9VTAkiIG1vdmwgIgotCi0jIGRlZmluZSBfQVNNX0lOQwkiIGluY2wgIgotIyBkZWZpbmUgX0FTTV9ERUMJIiBkZWNsICIKLSMgZGVmaW5lIF9BU01fQURECSIgYWRkbCAiCi0jIGRlZmluZSBfQVNNX1NVQgkiIHN1YmwgIgotIyBkZWZpbmUgX0FTTV9YQURECSIgeGFkZGwgIgotCisjaWZkZWYgX19BU1NFTUJMWV9fCisjIGRlZmluZSBfX0FTTV9GT1JNKHgpCXgKKyMgZGVmaW5lIF9fQVNNX0VYX1NFQwkuc2VjdGlvbiBfX2V4X3RhYmxlCiAjZWxzZQotLyogNjQgYml0cyAqLworIyBkZWZpbmUgX19BU01fRk9STSh4KQkiICIgI3ggIiAiCisjIGRlZmluZSBfX0FTTV9FWF9TRUMJIiAuc2VjdGlvbiBfX2V4X3RhYmxlLFwiYVwiXG4iCisjZW5kaWYKIAotIyBkZWZpbmUgX0FTTV9QVFIJIiAucXVhZCAiCi0jIGRlZmluZSBfQVNNX0FMSUdOCSIgLmJhbGlnbiA4ICIKLSMgZGVmaW5lIF9BU01fTU9WX1VMCSIgbW92cSAiCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorIyBkZWZpbmUgX19BU01fU0VMKGEsYikgX19BU01fRk9STShhKQorI2Vsc2UKKyMgZGVmaW5lIF9fQVNNX1NFTChhLGIpIF9fQVNNX0ZPUk0oYikKKyNlbmRpZgogCi0jIGRlZmluZSBfQVNNX0lOQwkiIGluY3EgIgotIyBkZWZpbmUgX0FTTV9ERUMJIiBkZWNxICIKLSMgZGVmaW5lIF9BU01fQURECSIgYWRkcSAiCi0jIGRlZmluZSBfQVNNX1NVQgkiIHN1YnEgIgotIyBkZWZpbmUgX0FTTV9YQURECSIgeGFkZHEgIgorI2RlZmluZSBfX0FTTV9TSVpFKGluc3QpCV9fQVNNX1NFTChpbnN0IyNsLCBpbnN0IyNxKQorI2RlZmluZSBfX0FTTV9SRUcocmVnKQkJX19BU01fU0VMKGUjI3JlZywgciMjcmVnKQogCi0jZW5kaWYgLyogQ09ORklHX1g4Nl8zMiAqLworI2RlZmluZSBfQVNNX1BUUglfX0FTTV9TRUwoLmxvbmcsIC5xdWFkKQorI2RlZmluZSBfQVNNX0FMSUdOCV9fQVNNX1NFTCguYmFsaWduIDQsIC5iYWxpZ24gOCkKKyNkZWZpbmUgX0FTTV9NT1ZfVUwJX19BU01fU0laRShtb3YpCisKKyNkZWZpbmUgX0FTTV9JTkMJX19BU01fU0laRShpbmMpCisjZGVmaW5lIF9BU01fREVDCV9fQVNNX1NJWkUoZGVjKQorI2RlZmluZSBfQVNNX0FERAlfX0FTTV9TSVpFKGFkZCkKKyNkZWZpbmUgX0FTTV9TVUIJX19BU01fU0laRShzdWIpCisjZGVmaW5lIF9BU01fWEFERAlfX0FTTV9TSVpFKHhhZGQpCisjZGVmaW5lIF9BU01fQVgJCV9fQVNNX1JFRyhheCkKKyNkZWZpbmUgX0FTTV9CWAkJX19BU01fUkVHKGJ4KQorI2RlZmluZSBfQVNNX0NYCQlfX0FTTV9SRUcoY3gpCisjZGVmaW5lIF9BU01fRFgJCV9fQVNNX1JFRyhkeCkKIAogLyogRXhjZXB0aW9uIHRhYmxlIGVudHJ5ICovCiAjIGRlZmluZSBfQVNNX0VYVEFCTEUoZnJvbSx0bykgXAotCSIgLnNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIiBcCisJX19BU01fRVhfU0VDCVwKIAlfQVNNX0FMSUdOICJcbiIgXAogCV9BU01fUFRSICNmcm9tICIsIiAjdG8gIlxuIiBcCiAJIiAucHJldmlvdXNcbiIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9hdG9taWNfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9hdG9taWNfNjQuaAppbmRleCAzZTBjZDdkLi5hMDA5NTE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYXRvbWljXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2F0b21pY182NC5oCkBAIC0xMSwxMiArMTEsNiBAQAogICogcmVzb3VyY2UgY291bnRpbmcgZXRjLi4KICAqLwogCi0jaWZkZWYgQ09ORklHX1NNUAotI2RlZmluZSBMT0NLICJsb2NrIDsgIgotI2Vsc2UKLSNkZWZpbmUgTE9DSyAiIgotI2VuZGlmCi0KIC8qCiAgKiBNYWtlIHN1cmUgZ2NjIGRvZXNuJ3QgdHJ5IHRvIGJlIGNsZXZlciBhbmQgbW92ZSB0aGluZ3MgYXJvdW5kCiAgKiBvbiB1cy4gV2UgbmVlZCB0byB1c2UgX2V4YWN0bHlfIHRoZSBhZGRyZXNzIHRoZSB1c2VyIGdhdmUgdXMsCkBAIC00MzEsNiArNDI1LDMyIEBACiAJcmV0dXJuIGMgIT0gKHUpOwogfQogCisvKioKKyAqIGF0b21pY19pbmNfc2hvcnQgLSBpbmNyZW1lbnQgb2YgYSBzaG9ydCBpbnRlZ2VyCisgKiBAdjogcG9pbnRlciB0byB0eXBlIGludAorICoKKyAqIEF0b21pY2FsbHkgYWRkcyAxIHRvIEB2CisgKiBSZXR1cm5zIHRoZSBuZXcgdmFsdWUgb2YgQHUKKyAqLworc3RhdGljIGlubGluZSBzaG9ydCBpbnQgYXRvbWljX2luY19zaG9ydChzaG9ydCBpbnQgKnYpCit7CisJYXNtKExPQ0tfUFJFRklYICJhZGR3ICQxLCAlMCIgOiAiK20iICgqdikpOworCXJldHVybiAqdjsKK30KKworLyoqCisgKiBhdG9taWNfb3JfbG9uZyAtIE9SIG9mIHR3byBsb25nIGludGVnZXJzCisgKiBAdjE6IHBvaW50ZXIgdG8gdHlwZSB1bnNpZ25lZCBsb25nCisgKiBAdjI6IHBvaW50ZXIgdG8gdHlwZSB1bnNpZ25lZCBsb25nCisgKgorICogQXRvbWljYWxseSBPUnMgQHYxIGFuZCBAdjIKKyAqIFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgT1IKKyAqLworc3RhdGljIGlubGluZSB2b2lkIGF0b21pY19vcl9sb25nKHVuc2lnbmVkIGxvbmcgKnYxLCB1bnNpZ25lZCBsb25nIHYyKQoreworCWFzbShMT0NLX1BSRUZJWCAib3JxICUxLCAlMCIgOiAiK20iICgqdjEpIDogInIiICh2MikpOworfQorCiAjZGVmaW5lIGF0b21pYzY0X2luY19ub3RfemVybyh2KSBhdG9taWM2NF9hZGRfdW5sZXNzKCh2KSwgMSwgMCkKIAogLyogVGhlc2UgYXJlIHg4Ni1zcGVjaWZpYywgdXNlZCBieSBzb21lIGhlYWRlciBmaWxlcyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2Jpb3NfZWJkYS5oIGIvaW5jbHVkZS9hc20teDg2L2Jpb3NfZWJkYS5oCmluZGV4IGI0YTQ2YjcuLjAwMzNlNTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9iaW9zX2ViZGEuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvYmlvc19lYmRhLmgKQEAgLTE0LDQgKzE0LDYgQEAKIAlyZXR1cm4gYWRkcmVzczsJLyogMCBtZWFucyBub25lICovCiB9CiAKK3ZvaWQgcmVzZXJ2ZV9lYmRhX3JlZ2lvbih2b2lkKTsKKwogI2VuZGlmIC8qIF9NQUNIX0JJT1NfRUJEQV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYml0b3BzLmggYi9pbmNsdWRlL2FzbS14ODYvYml0b3BzLmgKaW5kZXggZWU0YjNlYS4uOTZiMTgyOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2JpdG9wcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9iaXRvcHMuaApAQCAtMjMsMTEgKzIzLDIxIEBACiAjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgMSkKIC8qIFRlY2huaWNhbGx5IHdyb25nLCBidXQgdGhpcyBhdm9pZHMgY29tcGlsYXRpb24gZXJyb3JzIG9uIHNvbWUgZ2NjCiAgICB2ZXJzaW9ucy4gKi8KLSNkZWZpbmUgQUREUiAiPW0iICgqKHZvbGF0aWxlIGxvbmcgKikgYWRkcikKKyNkZWZpbmUgQklUT1BfQUREUih4KSAiPW0iICgqKHZvbGF0aWxlIGxvbmcgKikgKHgpKQogI2Vsc2UKLSNkZWZpbmUgQUREUiAiK20iICgqKHZvbGF0aWxlIGxvbmcgKikgYWRkcikKKyNkZWZpbmUgQklUT1BfQUREUih4KSAiK20iICgqKHZvbGF0aWxlIGxvbmcgKikgKHgpKQogI2VuZGlmCiAKKyNkZWZpbmUgQUREUgkJCQlCSVRPUF9BRERSKGFkZHIpCisKKy8qCisgKiBXZSBkbyB0aGUgbG9ja2VkIG9wcyB0aGF0IGRvbid0IHJldHVybiB0aGUgb2xkIHZhbHVlIGFzCisgKiBhIG1hc2sgb3BlcmF0aW9uIG9uIGEgYnl0ZS4KKyAqLworI2RlZmluZSBJU19JTU1FRElBVEUobnIpCQkoX19idWlsdGluX2NvbnN0YW50X3AobnIpKQorI2RlZmluZSBDT05TVF9NQVNLX0FERFIobnIsIGFkZHIpCUJJVE9QX0FERFIoKHZvaWQgKikoYWRkcikgKyAoKG5yKT4+MykpCisjZGVmaW5lIENPTlNUX01BU0sobnIpCQkJKDEgPDwgKChucikgJiA3KSkKKwogLyoqCiAgKiBzZXRfYml0IC0gQXRvbWljYWxseSBzZXQgYSBiaXQgaW4gbWVtb3J5CiAgKiBAbnI6IHRoZSBiaXQgdG8gc2V0CkBAIC00Myw5ICs1MywxNyBAQAogICogTm90ZSB0aGF0IEBuciBtYXkgYmUgYWxtb3N0IGFyYml0cmFyaWx5IGxhcmdlOyB0aGlzIGZ1bmN0aW9uIGlzIG5vdAogICogcmVzdHJpY3RlZCB0byBhY3Rpbmcgb24gYSBzaW5nbGUtd29yZCBxdWFudGl0eS4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIHNldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSB2b2lkIHNldF9iaXQodW5zaWduZWQgaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewotCWFzbSB2b2xhdGlsZShMT0NLX1BSRUZJWCAiYnRzICUxLCUwIiA6IEFERFIgOiAiSXIiIChucikgOiAibWVtb3J5Iik7CisJaWYgKElTX0lNTUVESUFURShucikpIHsKKwkJYXNtIHZvbGF0aWxlKExPQ0tfUFJFRklYICJvcmIgJTEsJTAiCisJCQk6IENPTlNUX01BU0tfQUREUihuciwgYWRkcikKKwkJCTogImlxIiAoKHU4KUNPTlNUX01BU0sobnIpKQorCQkJOiAibWVtb3J5Iik7CisJfSBlbHNlIHsKKwkJYXNtIHZvbGF0aWxlKExPQ0tfUFJFRklYICJidHMgJTEsJTAiCisJCQk6IEJJVE9QX0FERFIoYWRkcikgOiAiSXIiIChucikgOiAibWVtb3J5Iik7CisJfQogfQogCiAvKioKQEAgLTU3LDcgKzc1LDcgQEAKICAqIElmIGl0J3MgY2FsbGVkIG9uIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgc2ltdWx0YW5lb3VzbHksIHRoZSBlZmZlY3QKICAqIG1heSBiZSB0aGF0IG9ubHkgb25lIG9wZXJhdGlvbiBzdWNjZWVkcy4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIF9fc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgX19zZXRfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlhc20gdm9sYXRpbGUoImJ0cyAlMSwlMCIgOiBBRERSIDogIklyIiAobnIpIDogIm1lbW9yeSIpOwogfQpAQCAtNzIsOSArOTAsMTcgQEAKICAqIHlvdSBzaG91bGQgY2FsbCBzbXBfbWJfX2JlZm9yZV9jbGVhcl9iaXQoKSBhbmQvb3Igc21wX21iX19hZnRlcl9jbGVhcl9iaXQoKQogICogaW4gb3JkZXIgdG8gZW5zdXJlIGNoYW5nZXMgYXJlIHZpc2libGUgb24gb3RoZXIgcHJvY2Vzc29ycy4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKLQlhc20gdm9sYXRpbGUoTE9DS19QUkVGSVggImJ0ciAlMSwlMCIgOiBBRERSIDogIklyIiAobnIpKTsKKwlpZiAoSVNfSU1NRURJQVRFKG5yKSkgeworCQlhc20gdm9sYXRpbGUoTE9DS19QUkVGSVggImFuZGIgJTEsJTAiCisJCQk6IENPTlNUX01BU0tfQUREUihuciwgYWRkcikKKwkJCTogImlxIiAoKHU4KX5DT05TVF9NQVNLKG5yKSkpOworCX0gZWxzZSB7CisJCWFzbSB2b2xhdGlsZShMT0NLX1BSRUZJWCAiYnRyICUxLCUwIgorCQkJOiBCSVRPUF9BRERSKGFkZHIpCisJCQk6ICJJciIgKG5yKSk7CisJfQogfQogCiAvKgpAQCAtODUsMTMgKzExMSwxMyBAQAogICogY2xlYXJfYml0KCkgaXMgYXRvbWljIGFuZCBpbXBsaWVzIHJlbGVhc2Ugc2VtYW50aWNzIGJlZm9yZSB0aGUgbWVtb3J5CiAgKiBvcGVyYXRpb24uIEl0IGNhbiBiZSB1c2VkIGZvciBhbiB1bmxvY2suCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9iaXRfdW5sb2NrKHVuc2lnbmVkIG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2JpdF91bmxvY2sodW5zaWduZWQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJYmFycmllcigpOwogCWNsZWFyX2JpdChuciwgYWRkcik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2NsZWFyX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgX19jbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWFzbSB2b2xhdGlsZSgiYnRyICUxLCUwIiA6IEFERFIgOiAiSXIiIChucikpOwogfQpAQCAtMTA4LDcgKzEzNCw3IEBACiAgKiBObyBtZW1vcnkgYmFycmllciBpcyByZXF1aXJlZCBoZXJlLCBiZWNhdXNlIHg4NiBjYW5ub3QgcmVvcmRlciBzdG9yZXMgcGFzdAogICogb2xkZXIgbG9hZHMuIFNhbWUgcHJpbmNpcGxlIGFzIHNwaW5fdW5sb2NrLgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgX19jbGVhcl9iaXRfdW5sb2NrKHVuc2lnbmVkIG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSB2b2lkIF9fY2xlYXJfYml0X3VubG9jayh1bnNpZ25lZCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAliYXJyaWVyKCk7CiAJX19jbGVhcl9iaXQobnIsIGFkZHIpOwpAQCAtMTI2LDcgKzE1Miw3IEBACiAgKiBJZiBpdCdzIGNhbGxlZCBvbiB0aGUgc2FtZSByZWdpb24gb2YgbWVtb3J5IHNpbXVsdGFuZW91c2x5LCB0aGUgZWZmZWN0CiAgKiBtYXkgYmUgdGhhdCBvbmx5IG9uZSBvcGVyYXRpb24gc3VjY2VlZHMuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2NoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSB2b2lkIF9fY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJYXNtIHZvbGF0aWxlKCJidGMgJTEsJTAiIDogQUREUiA6ICJJciIgKG5yKSk7CiB9CkBAIC0xNDAsNyArMTY2LDcgQEAKICAqIE5vdGUgdGhhdCBAbnIgbWF5IGJlIGFsbW9zdCBhcmJpdHJhcmlseSBsYXJnZTsgdGhpcyBmdW5jdGlvbiBpcyBub3QKICAqIHJlc3RyaWN0ZWQgdG8gYWN0aW5nIG9uIGEgc2luZ2xlLXdvcmQgcXVhbnRpdHkuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBjaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBjaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlhc20gdm9sYXRpbGUoTE9DS19QUkVGSVggImJ0YyAlMSwlMCIgOiBBRERSIDogIklyIiAobnIpKTsKIH0KQEAgLTE1Myw3ICsxNzksNyBAQAogICogVGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLgogICogSXQgYWxzbyBpbXBsaWVzIGEgbWVtb3J5IGJhcnJpZXIuCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX3NldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJaW50IG9sZGJpdDsKIApAQCAtMTcwLDcgKzE5Niw3IEBACiAgKgogICogVGhpcyBpcyB0aGUgc2FtZSBhcyB0ZXN0X2FuZF9zZXRfYml0IG9uIHg4Ni4KICAqLwotc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfc2V0X2JpdF9sb2NrKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX3NldF9iaXRfbG9jayhpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQobnIsIGFkZHIpOwogfQpAQCAtMTg0LDcgKzIxMCw3IEBACiAgKiBJZiB0d28gZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRpb24gcmFjZSwgb25lIGNhbiBhcHBlYXIgdG8gc3VjY2VlZAogICogYnV0IGFjdHVhbGx5IGZhaWwuICBZb3UgbXVzdCBwcm90ZWN0IG11bHRpcGxlIGFjY2Vzc2VzIHdpdGggYSBsb2NrLgogICovCi1zdGF0aWMgaW5saW5lIGludCBfX3Rlc3RfYW5kX3NldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgX190ZXN0X2FuZF9zZXRfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlpbnQgb2xkYml0OwogCkBAIC0yMDMsNyArMjI5LDcgQEAKICAqIFRoaXMgb3BlcmF0aW9uIGlzIGF0b21pYyBhbmQgY2Fubm90IGJlIHJlb3JkZXJlZC4KICAqIEl0IGFsc28gaW1wbGllcyBhIG1lbW9yeSBiYXJyaWVyLgogICovCi1zdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9jbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlpbnQgb2xkYml0OwogCkBAIC0yMjMsNyArMjQ5LDcgQEAKICAqIElmIHR3byBleGFtcGxlcyBvZiB0aGlzIG9wZXJhdGlvbiByYWNlLCBvbmUgY2FuIGFwcGVhciB0byBzdWNjZWVkCiAgKiBidXQgYWN0dWFsbHkgZmFpbC4gIFlvdSBtdXN0IHByb3RlY3QgbXVsdGlwbGUgYWNjZXNzZXMgd2l0aCBhIGxvY2suCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IF9fdGVzdF9hbmRfY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgaW50IF9fdGVzdF9hbmRfY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlpbnQgb2xkYml0OwogCkBAIC0yMzUsNyArMjYxLDcgQEAKIH0KIAogLyogV0FSTklORzogbm9uIGF0b21pYyBhbmQgaXQgY2FuIGJlIHJlb3JkZXJlZCEgKi8KLXN0YXRpYyBpbmxpbmUgaW50IF9fdGVzdF9hbmRfY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCBfX3Rlc3RfYW5kX2NoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWludCBvbGRiaXQ7CiAKQEAgLTI1NSw3ICsyODEsNyBAQAogICogVGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLgogICogSXQgYWxzbyBpbXBsaWVzIGEgbWVtb3J5IGJhcnJpZXIuCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX2NoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJaW50IG9sZGJpdDsKIApAQCAtMjY2LDEzICsyOTIsMTMgQEAKIAlyZXR1cm4gb2xkYml0OwogfQogCi1zdGF0aWMgaW5saW5lIGludCBjb25zdGFudF90ZXN0X2JpdChpbnQgbnIsIGNvbnN0IHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCBjb25zdGFudF90ZXN0X2JpdChpbnQgbnIsIGNvbnN0IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJcmV0dXJuICgoMVVMIDw8IChuciAlIEJJVFNfUEVSX0xPTkcpKSAmCiAJCSgoKHVuc2lnbmVkIGxvbmcgKilhZGRyKVtuciAvIEJJVFNfUEVSX0xPTkddKSkgIT0gMDsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgdmFyaWFibGVfdGVzdF9iaXQoaW50IG5yLCB2b2xhdGlsZSBjb25zdCB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgdmFyaWFibGVfdGVzdF9iaXQoaW50IG5yLCB2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWludCBvbGRiaXQ7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9ib290cGFyYW0uaCBiL2luY2x1ZGUvYXNtLXg4Ni9ib290cGFyYW0uaAppbmRleCBmNjJmNDczLi5hZTIyYmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYm9vdHBhcmFtLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2Jvb3RwYXJhbS5oCkBAIC0xMSw2ICsxMSw3IEBACiAKIC8qIHNldHVwIGRhdGEgdHlwZXMgKi8KICNkZWZpbmUgU0VUVVBfTk9ORQkJCTAKKyNkZWZpbmUgU0VUVVBfRTgyMF9FWFQJCQkxCiAKIC8qIGV4dGVuc2libGUgc2V0dXAgZGF0YSBsaXN0IG5vZGUgKi8KIHN0cnVjdCBzZXR1cF9kYXRhIHsKQEAgLTQwLDYgKzQxLDcgQEAKIAlfX3U4CXR5cGVfb2ZfbG9hZGVyOwogCV9fdTgJbG9hZGZsYWdzOwogI2RlZmluZSBMT0FERURfSElHSAkoMTw8MCkKKyNkZWZpbmUgUVVJRVRfRkxBRwkoMTw8NSkKICNkZWZpbmUgS0VFUF9TRUdNRU5UUwkoMTw8NikKICNkZWZpbmUgQ0FOX1VTRV9IRUFQCSgxPDw3KQogCV9fdTE2CXNldHVwX21vdmVfc2l6ZTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9jbXB4Y2hnXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvY21weGNoZ182NC5oCmluZGV4IGQ5YjI2YjkuLjE3NDYzY2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9jbXB4Y2hnXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2NtcHhjaGdfNjQuaApAQCAtOTMsNiArOTMsMzkgQEAKIAlyZXR1cm4gb2xkOwogfQogCisvKgorICogQWx3YXlzIHVzZSBsb2NrZWQgb3BlcmF0aW9ucyB3aGVuIHRvdWNoaW5nIG1lbW9yeSBzaGFyZWQgd2l0aCBhCisgKiBoeXBlcnZpc29yLCBzaW5jZSB0aGUgc3lzdGVtIG1heSBiZSBTTVAgZXZlbiBpZiB0aGUgZ3Vlc3Qga2VybmVsCisgKiBpc24ndC4KKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIF9fc3luY19jbXB4Y2hnKHZvbGF0aWxlIHZvaWQgKnB0ciwKKwkJCQkJICAgdW5zaWduZWQgbG9uZyBvbGQsCisJCQkJCSAgIHVuc2lnbmVkIGxvbmcgbmV3LCBpbnQgc2l6ZSkKK3sKKwl1bnNpZ25lZCBsb25nIHByZXY7CisJc3dpdGNoIChzaXplKSB7CisJY2FzZSAxOgorCQlhc20gdm9sYXRpbGUoImxvY2s7IGNtcHhjaGdiICViMSwlMiIKKwkJCSAgICAgOiAiPWEiKHByZXYpCisJCQkgICAgIDogInEiKG5ldyksICJtIigqX194ZyhwdHIpKSwgIjAiKG9sZCkKKwkJCSAgICAgOiAibWVtb3J5Iik7CisJCXJldHVybiBwcmV2OworCWNhc2UgMjoKKwkJYXNtIHZvbGF0aWxlKCJsb2NrOyBjbXB4Y2hndyAldzEsJTIiCisJCQkgICAgIDogIj1hIihwcmV2KQorCQkJICAgICA6ICJyIihuZXcpLCAibSIoKl9feGcocHRyKSksICIwIihvbGQpCisJCQkgICAgIDogIm1lbW9yeSIpOworCQlyZXR1cm4gcHJldjsKKwljYXNlIDQ6CisJCWFzbSB2b2xhdGlsZSgibG9jazsgY21weGNoZ2wgJTEsJTIiCisJCQkgICAgIDogIj1hIihwcmV2KQorCQkJICAgICA6ICJyIihuZXcpLCAibSIoKl9feGcocHRyKSksICIwIihvbGQpCisJCQkgICAgIDogIm1lbW9yeSIpOworCQlyZXR1cm4gcHJldjsKKwl9CisJcmV0dXJuIG9sZDsKK30KKwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIF9fY21weGNoZ19sb2NhbCh2b2xhdGlsZSB2b2lkICpwdHIsCiAJCQkJCSAgICB1bnNpZ25lZCBsb25nIG9sZCwKIAkJCQkJICAgIHVuc2lnbmVkIGxvbmcgbmV3LCBpbnQgc2l6ZSkKQEAgLTEzOSw2ICsxNzIsMTAgQEAKIAkoKF9fdHlwZW9mX18oKihwdHIpKSlfX2NtcHhjaGdfbG9jYWwoKHB0ciksICh1bnNpZ25lZCBsb25nKShvKSwJXAogCQkJCQkgICAgICh1bnNpZ25lZCBsb25nKShuKSwJXAogCQkJCQkgICAgIHNpemVvZigqKHB0cikpKSkKKyNkZWZpbmUgc3luY19jbXB4Y2hnKHB0ciwgbywgbikJCQkJCQlcCisJKChfX3R5cGVvZl9fKCoocHRyKSkpX19zeW5jX2NtcHhjaGcoKHB0ciksICh1bnNpZ25lZCBsb25nKShvKSwJXAorCQkJCQkgICAgKHVuc2lnbmVkIGxvbmcpKG4pLAkJXAorCQkJCQkgICAgc2l6ZW9mKCoocHRyKSkpKQogI2RlZmluZSBjbXB4Y2hnNjRfbG9jYWwocHRyLCBvLCBuKQkJCQkJXAogKHsJCQkJCQkJCQlcCiAJQlVJTERfQlVHX09OKHNpemVvZigqKHB0cikpICE9IDgpOwkJCQlcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oIGIvaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaAppbmRleCAwZDYwOWM4Li43NWVmOTU5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmgKQEAgLTc0LDggKzc0LDggQEAKICNkZWZpbmUgWDg2X0ZFQVRVUkVfQVJDSF9QRVJGTU9OICgzKjMyKzExKSAvKiBJbnRlbCBBcmNoaXRlY3R1cmFsIFBlcmZNb24gKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfUEVCUwkoMyozMisxMikgIC8qIFByZWNpc2UtRXZlbnQgQmFzZWQgU2FtcGxpbmcgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfQlRTCQkoMyozMisxMykgIC8qIEJyYW5jaCBUcmFjZSBTdG9yZSAqLwotLyogMTQgZnJlZSAqLwotLyogMTUgZnJlZSAqLworI2RlZmluZSBYODZfRkVBVFVSRV9TWVNDQUxMMzIJKDMqMzIrMTQpICAvKiBzeXNjYWxsIGluIGlhMzIgdXNlcnNwYWNlICovCisjZGVmaW5lIFg4Nl9GRUFUVVJFX1NZU0VOVEVSMzIJKDMqMzIrMTUpICAvKiBzeXNlbnRlciBpbiBpYTMyIHVzZXJzcGFjZSAqLwogI2RlZmluZSBYODZfRkVBVFVSRV9SRVBfR09PRAkoMyozMisxNikgLyogcmVwIG1pY3JvY29kZSB3b3JrcyB3ZWxsIG9uIHRoaXMgQ1BVICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX01GRU5DRV9SRFRTQyAoMyozMisxNykgLyogTWZlbmNlIHN5bmNocm9uaXplcyBSRFRTQyAqLwogI2RlZmluZSBYODZfRkVBVFVSRV9MRkVOQ0VfUkRUU0MgKDMqMzIrMTgpIC8qIExmZW5jZSBzeW5jaHJvbml6ZXMgUkRUU0MgKi8KQEAgLTEwNiw2ICsxMDYsNyBAQAogLyogTW9yZSBleHRlbmRlZCBBTUQgZmxhZ3M6IENQVUlEIGxldmVsIDB4ODAwMDAwMDEsIGVjeCwgd29yZCA2ICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX0xBSEZfTE0JKDYqMzIrIDApIC8qIExBSEYvU0FIRiBpbiBsb25nIG1vZGUgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfQ01QX0xFR0FDWQkoNiozMisgMSkgLyogSWYgeWVzIEh5cGVyVGhyZWFkaW5nIG5vdCB2YWxpZCAqLworI2RlZmluZSBYODZfRkVBVFVSRV9JQlMJCSg2KjMyKyAxMCkgLyogSW5zdHJ1Y3Rpb24gQmFzZWQgU2FtcGxpbmcgKi8KIAogLyoKICAqIEF1eGlsaWFyeSBmbGFnczogTGludXggZGVmaW5lZCAtIEZvciBmZWF0dXJlcyBzY2F0dGVyZWQgaW4gdmFyaW91cwpAQCAtMTQyLDExICsxNDMsMTEgQEAKICNkZWZpbmUgY2xlYXJfY3B1X2NhcChjLCBiaXQpCWNsZWFyX2JpdChiaXQsICh1bnNpZ25lZCBsb25nICopKChjKS0+eDg2X2NhcGFiaWxpdHkpKQogI2RlZmluZSBzZXR1cF9jbGVhcl9jcHVfY2FwKGJpdCkgZG8geyBcCiAJY2xlYXJfY3B1X2NhcCgmYm9vdF9jcHVfZGF0YSwgYml0KTsJXAotCXNldF9iaXQoYml0LCBjbGVhcmVkX2NwdV9jYXBzKTsgCVwKKwlzZXRfYml0KGJpdCwgKHVuc2lnbmVkIGxvbmcgKiljbGVhcmVkX2NwdV9jYXBzKTsgXAogfSB3aGlsZSAoMCkKICNkZWZpbmUgc2V0dXBfZm9yY2VfY3B1X2NhcChiaXQpIGRvIHsgXAogCXNldF9jcHVfY2FwKCZib290X2NwdV9kYXRhLCBiaXQpOwlcCi0JY2xlYXJfYml0KGJpdCwgY2xlYXJlZF9jcHVfY2Fwcyk7IAlcCisJY2xlYXJfYml0KGJpdCwgKHVuc2lnbmVkIGxvbmcgKiljbGVhcmVkX2NwdV9jYXBzKTsgCVwKIH0gd2hpbGUgKDApCiAKICNkZWZpbmUgY3B1X2hhc19mcHUJCWJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9GUFUpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oIGIvaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaAppbmRleCBkMjUyNmQzLi43NTE1YzE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKQEAgLTEsNSArMSwzOSBAQAorI2lmbmRlZiBfWDg2X0NVUlJFTlRfSAorI2RlZmluZSBfWDg2X0NVUlJFTlRfSAorCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgotIyBpbmNsdWRlICJjdXJyZW50XzMyLmgiCi0jZWxzZQotIyBpbmNsdWRlICJjdXJyZW50XzY0LmgiCi0jZW5kaWYKKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorI2luY2x1ZGUgPGFzbS9wZXJjcHUuaD4KKworc3RydWN0IHRhc2tfc3RydWN0OworCitERUNMQVJFX1BFUl9DUFUoc3RydWN0IHRhc2tfc3RydWN0ICosIGN1cnJlbnRfdGFzayk7CitzdGF0aWMgX19hbHdheXNfaW5saW5lIHN0cnVjdCB0YXNrX3N0cnVjdCAqZ2V0X2N1cnJlbnQodm9pZCkKK3sKKwlyZXR1cm4geDg2X3JlYWRfcGVyY3B1KGN1cnJlbnRfdGFzayk7Cit9CisKKyNlbHNlIC8qIFg4Nl8zMiAqLworCisjaWZuZGVmIF9fQVNTRU1CTFlfXworI2luY2x1ZGUgPGFzbS9wZGEuaD4KKworc3RydWN0IHRhc2tfc3RydWN0OworCitzdGF0aWMgX19hbHdheXNfaW5saW5lIHN0cnVjdCB0YXNrX3N0cnVjdCAqZ2V0X2N1cnJlbnQodm9pZCkKK3sKKwlyZXR1cm4gcmVhZF9wZGEocGN1cnJlbnQpOworfQorCisjZWxzZSAvKiBfX0FTU0VNQkxZX18gKi8KKworI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgorI2RlZmluZSBHRVRfQ1VSUkVOVChyZWcpIG1vdnEgJWdzOihwZGFfcGN1cnJlbnQpLHJlZworCisjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCisKKyNlbmRpZiAvKiBYODZfMzIgKi8KKworI2RlZmluZSBjdXJyZW50IGdldF9jdXJyZW50KCkKKworI2VuZGlmIC8qIFg4Nl9DVVJSRU5UX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50XzMyLmggYi9pbmNsdWRlL2FzbS14ODYvY3VycmVudF8zMi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWY5YmRiLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50XzMyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0jaWZuZGVmIF9JMzg2X0NVUlJFTlRfSAotI2RlZmluZSBfSTM4Nl9DVVJSRU5UX0gKLQotI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+Ci0jaW5jbHVkZSA8YXNtL3BlcmNwdS5oPgotCi1zdHJ1Y3QgdGFza19zdHJ1Y3Q7Ci0KLURFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgY3VycmVudF90YXNrKTsKLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgc3RydWN0IHRhc2tfc3RydWN0ICpnZXRfY3VycmVudCh2b2lkKQotewotCXJldHVybiB4ODZfcmVhZF9wZXJjcHUoY3VycmVudF90YXNrKTsKLX0KLQotI2RlZmluZSBjdXJyZW50IGdldF9jdXJyZW50KCkKLQotI2VuZGlmIC8qICEoX0kzODZfQ1VSUkVOVF9IKSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2N1cnJlbnRfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50XzY0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkMzY4ZWQuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2N1cnJlbnRfNjQuaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLSNpZm5kZWYgX1g4Nl82NF9DVVJSRU5UX0gKLSNkZWZpbmUgX1g4Nl82NF9DVVJSRU5UX0gKLQotI2lmICFkZWZpbmVkKF9fQVNTRU1CTFlfXykKLXN0cnVjdCB0YXNrX3N0cnVjdDsKLQotI2luY2x1ZGUgPGFzbS9wZGEuaD4KLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmdldF9jdXJyZW50KHZvaWQpCi17Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICp0ID0gcmVhZF9wZGEocGN1cnJlbnQpOwotCXJldHVybiB0OwotfQotCi0jZGVmaW5lIGN1cnJlbnQgZ2V0X2N1cnJlbnQoKQotCi0jZWxzZQotCi0jaWZuZGVmIEFTTV9PRkZTRVRfSAotI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgotI2VuZGlmCi0KLSNkZWZpbmUgR0VUX0NVUlJFTlQocmVnKSBtb3ZxICVnczoocGRhX3BjdXJyZW50KSxyZWcKLQotI2VuZGlmCi0KLSNlbmRpZiAvKiAhKF9YODZfNjRfQ1VSUkVOVF9IKSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2Rlc2MuaCBiL2luY2x1ZGUvYXNtLXg4Ni9kZXNjLmgKaW5kZXggMjY4YTAxMi4uYTQ0YzRkYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2Rlc2MuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZGVzYy5oCkBAIC0yOSwxMSArMjksMTcgQEAKIGV4dGVybiBzdHJ1Y3QgZGVzY19wdHIgaWR0X2Rlc2NyOwogZXh0ZXJuIGdhdGVfZGVzYyBpZHRfdGFibGVbXTsKIAorc3RydWN0IGdkdF9wYWdlIHsKKwlzdHJ1Y3QgZGVzY19zdHJ1Y3QgZ2R0W0dEVF9FTlRSSUVTXTsKK30gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChQQUdFX1NJWkUpKSk7CitERUNMQVJFX1BFUl9DUFUoc3RydWN0IGdkdF9wYWdlLCBnZHRfcGFnZSk7CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRlc2Nfc3RydWN0ICpnZXRfY3B1X2dkdF90YWJsZSh1bnNpZ25lZCBpbnQgY3B1KQoreworCXJldHVybiBwZXJfY3B1KGdkdF9wYWdlLCBjcHUpLmdkdDsKK30KKwogI2lmZGVmIENPTkZJR19YODZfNjQKLWV4dGVybiBzdHJ1Y3QgZGVzY19zdHJ1Y3QgY3B1X2dkdF90YWJsZVtHRFRfRU5UUklFU107Ci1leHRlcm4gc3RydWN0IGRlc2NfcHRyIGNwdV9nZHRfZGVzY3JbXTsKLS8qIHRoZSBjcHUgZ2R0IGFjY2Vzc29yICovCi0jZGVmaW5lIGdldF9jcHVfZ2R0X3RhYmxlKHgpICgoc3RydWN0IGRlc2Nfc3RydWN0ICopY3B1X2dkdF9kZXNjclt4XS5hZGRyZXNzKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcGFja19nYXRlKGdhdGVfZGVzYyAqZ2F0ZSwgdW5zaWduZWQgdHlwZSwgdW5zaWduZWQgbG9uZyBmdW5jLAogCQkJICAgICB1bnNpZ25lZCBkcGwsIHVuc2lnbmVkIGlzdCwgdW5zaWduZWQgc2VnKQpAQCAtNTEsMTYgKzU3LDYgQEAKIH0KIAogI2Vsc2UKLXN0cnVjdCBnZHRfcGFnZSB7Ci0Jc3RydWN0IGRlc2Nfc3RydWN0IGdkdFtHRFRfRU5UUklFU107Ci19IF9fYXR0cmlidXRlX18oKGFsaWduZWQoUEFHRV9TSVpFKSkpOwotREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCBnZHRfcGFnZSwgZ2R0X3BhZ2UpOwotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBkZXNjX3N0cnVjdCAqZ2V0X2NwdV9nZHRfdGFibGUodW5zaWduZWQgaW50IGNwdSkKLXsKLQlyZXR1cm4gcGVyX2NwdShnZHRfcGFnZSwgY3B1KS5nZHQ7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCBwYWNrX2dhdGUoZ2F0ZV9kZXNjICpnYXRlLCB1bnNpZ25lZCBjaGFyIHR5cGUsCiAJCQkgICAgIHVuc2lnbmVkIGxvbmcgYmFzZSwgdW5zaWduZWQgZHBsLCB1bnNpZ25lZCBmbGFncywKIAkJCSAgICAgdW5zaWduZWQgc2hvcnQgc2VnKQpAQCAtMTkyLDggKzE4OCw4IEBACiAJCXVuc2lnbmVkIGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAkJbGR0X2Rlc2MgbGR0OwogCi0JCXNldF90c3NsZHRfZGVzY3JpcHRvcigmbGR0LCAodW5zaWduZWQgbG9uZylhZGRyLAotCQkJCSAgICAgIERFU0NfTERULCBlbnRyaWVzICogc2l6ZW9mKGxkdCkgLSAxKTsKKwkJc2V0X3Rzc2xkdF9kZXNjcmlwdG9yKCZsZHQsICh1bnNpZ25lZCBsb25nKWFkZHIsIERFU0NfTERULAorCQkJCSAgICAgIGVudHJpZXMgKiBMRFRfRU5UUllfU0laRSAtIDEpOwogCQl3cml0ZV9nZHRfZW50cnkoZ2V0X2NwdV9nZHRfdGFibGUoY3B1KSwgR0RUX0VOVFJZX0xEVCwKIAkJCQkmbGR0LCBERVNDX0xEVCk7CiAJCWFzbSB2b2xhdGlsZSgibGxkdCAldzAiOjoicSIgKEdEVF9FTlRSWV9MRFQqOCkpOwpAQCAtMzExLDYgKzMwNywyOCBAQAogCV9zZXRfZ2F0ZShuLCBHQVRFX0lOVEVSUlVQVCwgYWRkciwgMCwgMCwgX19LRVJORUxfQ1MpOwogfQogCisjZGVmaW5lIFNZU19WRUNUT1JfRlJFRQkJMAorI2RlZmluZSBTWVNfVkVDVE9SX0FMTE9DRUQJMQorCitleHRlcm4gaW50IGZpcnN0X3N5c3RlbV92ZWN0b3I7CitleHRlcm4gY2hhciBzeXN0ZW1fdmVjdG9yc1tdOworCitzdGF0aWMgaW5saW5lIHZvaWQgYWxsb2Nfc3lzdGVtX3ZlY3RvcihpbnQgdmVjdG9yKQoreworCWlmIChzeXN0ZW1fdmVjdG9yc1t2ZWN0b3JdID09IFNZU19WRUNUT1JfRlJFRSkgeworCQlzeXN0ZW1fdmVjdG9yc1t2ZWN0b3JdID0gU1lTX1ZFQ1RPUl9BTExPQ0VEOworCQlpZiAoZmlyc3Rfc3lzdGVtX3ZlY3RvciA+IHZlY3RvcikKKwkJCWZpcnN0X3N5c3RlbV92ZWN0b3IgPSB2ZWN0b3I7CisJfSBlbHNlCisJCUJVRygpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWxsb2NfaW50cl9nYXRlKHVuc2lnbmVkIGludCBuLCB2b2lkICphZGRyKQoreworCWFsbG9jX3N5c3RlbV92ZWN0b3Iobik7CisJc2V0X2ludHJfZ2F0ZShuLCBhZGRyKTsKK30KKwogLyoKICAqIFRoaXMgcm91dGluZSBzZXRzIHVwIGFuIGludGVycnVwdCBnYXRlIGF0IGRpcmVjdG9yeSBwcml2aWxlZ2UgbGV2ZWwgMy4KICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2Rlc2NfZGVmcy5oIGIvaW5jbHVkZS9hc20teDg2L2Rlc2NfZGVmcy5oCmluZGV4IGVjY2I0ZWEuLmY3YmFjZjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9kZXNjX2RlZnMuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZGVzY19kZWZzLmgKQEAgLTc1LDEwICs3NSwxNCBAQAogdHlwZWRlZiBzdHJ1Y3QgZ2F0ZV9zdHJ1Y3Q2NCBnYXRlX2Rlc2M7CiB0eXBlZGVmIHN0cnVjdCBsZHR0c3NfZGVzYzY0IGxkdF9kZXNjOwogdHlwZWRlZiBzdHJ1Y3QgbGR0dHNzX2Rlc2M2NCB0c3NfZGVzYzsKKyNkZWZpbmUgZ2F0ZV9vZmZzZXQoZykgKChnKS5vZmZzZXRfbG93IHwgKCh1bnNpZ25lZCBsb25nKShnKS5vZmZzZXRfbWlkZGxlIDw8IDE2KSB8ICgodW5zaWduZWQgbG9uZykoZykub2Zmc2V0X2hpZ2ggPDwgMzIpKQorI2RlZmluZSBnYXRlX3NlZ21lbnQoZykgKChnKS5zZWdtZW50KQogI2Vsc2UKIHR5cGVkZWYgc3RydWN0IGRlc2Nfc3RydWN0IGdhdGVfZGVzYzsKIHR5cGVkZWYgc3RydWN0IGRlc2Nfc3RydWN0IGxkdF9kZXNjOwogdHlwZWRlZiBzdHJ1Y3QgZGVzY19zdHJ1Y3QgdHNzX2Rlc2M7CisjZGVmaW5lIGdhdGVfb2Zmc2V0KGcpCQkoKChnKS5iICYgMHhmZmZmMDAwMCkgfCAoKGcpLmEgJiAweDAwMDBmZmZmKSkKKyNkZWZpbmUgZ2F0ZV9zZWdtZW50KGcpCQkoKGcpLmEgPj4gMTYpCiAjZW5kaWYKIAogc3RydWN0IGRlc2NfcHRyIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9kbWkuaCBiL2luY2x1ZGUvYXNtLXg4Ni9kbWkuaAppbmRleCA0ZWRmNzUxLi41OGE4NjU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZG1pLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2RtaS5oCkBAIC0zLDEyICszLDYgQEAKIAogI2luY2x1ZGUgPGFzbS9pby5oPgogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCi0jZGVmaW5lIGRtaV9hbGxvYyBhbGxvY19ib290bWVtCi0KLSNlbHNlIC8qIENPTkZJR19YODZfMzIgKi8KLQogI2RlZmluZSBETUlfTUFYX0RBVEEgMjA0OAogCiBleHRlcm4gaW50IGRtaV9hbGxvY19pbmRleDsKQEAgLTI1LDggKzE5LDYgQEAKIAlyZXR1cm4gZG1pX2FsbG9jX2RhdGEgKyBpZHg7CiB9CiAKLSNlbmRpZgotCiAvKiBVc2UgZWFybHkgSU8gbWFwcGluZ3MgZm9yIERNSSBiZWNhdXNlIGl0J3MgaW5pdGlhbGl6ZWQgZWFybHkgKi8KICNkZWZpbmUgZG1pX2lvcmVtYXAgZWFybHlfaW9yZW1hcAogI2RlZmluZSBkbWlfaW91bm1hcCBlYXJseV9pb3VubWFwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZHdhcmYyLmggYi9pbmNsdWRlL2FzbS14ODYvZHdhcmYyLmgKaW5kZXggYjNjYmIwYy4uNzM4YmI5ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2R3YXJmMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjIuaApAQCAtMSw1ICsxLDYxIEBACi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotIyBpbmNsdWRlICJkd2FyZjJfMzIuaCIKKyNpZm5kZWYgX0RXQVJGMl9ICisjZGVmaW5lIF9EV0FSRjJfSAorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworI3dhcm5pbmcgImFzbS9kd2FyZjIuaCBzaG91bGQgYmUgb25seSBpbmNsdWRlZCBpbiBwdXJlIGFzc2VtYmx5IGZpbGVzIgorI2VuZGlmCisKKy8qCisgICBNYWNyb3MgZm9yIGR3YXJmMiBDRkkgdW53aW5kIHRhYmxlIGVudHJpZXMuCisgICBTZWUgImFzLmluZm8iIGZvciBkZXRhaWxzIG9uIHRoZXNlIHBzZXVkbyBvcHMuIFVuZm9ydHVuYXRlbHkKKyAgIHRoZXkgYXJlIG9ubHkgc3VwcG9ydGVkIGluIHZlcnkgbmV3IGJpbnV0aWxzLCBzbyBkZWZpbmUgdGhlbQorICAgYXdheSBmb3Igb2xkZXIgdmVyc2lvbi4KKyAqLworCisjaWZkZWYgQ09ORklHX0FTX0NGSQorCisjZGVmaW5lIENGSV9TVEFSVFBST0MgLmNmaV9zdGFydHByb2MKKyNkZWZpbmUgQ0ZJX0VORFBST0MgLmNmaV9lbmRwcm9jCisjZGVmaW5lIENGSV9ERUZfQ0ZBIC5jZmlfZGVmX2NmYQorI2RlZmluZSBDRklfREVGX0NGQV9SRUdJU1RFUiAuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIKKyNkZWZpbmUgQ0ZJX0RFRl9DRkFfT0ZGU0VUIC5jZmlfZGVmX2NmYV9vZmZzZXQKKyNkZWZpbmUgQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQKKyNkZWZpbmUgQ0ZJX09GRlNFVCAuY2ZpX29mZnNldAorI2RlZmluZSBDRklfUkVMX09GRlNFVCAuY2ZpX3JlbF9vZmZzZXQKKyNkZWZpbmUgQ0ZJX1JFR0lTVEVSIC5jZmlfcmVnaXN0ZXIKKyNkZWZpbmUgQ0ZJX1JFU1RPUkUgLmNmaV9yZXN0b3JlCisjZGVmaW5lIENGSV9SRU1FTUJFUl9TVEFURSAuY2ZpX3JlbWVtYmVyX3N0YXRlCisjZGVmaW5lIENGSV9SRVNUT1JFX1NUQVRFIC5jZmlfcmVzdG9yZV9zdGF0ZQorI2RlZmluZSBDRklfVU5ERUZJTkVEIC5jZmlfdW5kZWZpbmVkCisKKyNpZmRlZiBDT05GSUdfQVNfQ0ZJX1NJR05BTF9GUkFNRQorI2RlZmluZSBDRklfU0lHTkFMX0ZSQU1FIC5jZmlfc2lnbmFsX2ZyYW1lCiAjZWxzZQotIyBpbmNsdWRlICJkd2FyZjJfNjQuaCIKKyNkZWZpbmUgQ0ZJX1NJR05BTF9GUkFNRQorI2VuZGlmCisKKyNlbHNlCisKKy8qIER1ZSB0byB0aGUgc3RydWN0dXJlIG9mIHByZS1leGlzaXRpbmcgY29kZSwgZG9uJ3QgdXNlIGFzc2VtYmxlciBsaW5lCisgICBjb21tZW50IGNoYXJhY3RlciAjIHRvIGlnbm9yZSB0aGUgYXJndW1lbnRzLiBJbnN0ZWFkLCB1c2UgYSBkdW1teSBtYWNyby4gKi8KKy5tYWNybyBjZmlfaWdub3JlIGE9MCwgYj0wLCBjPTAsIGQ9MAorLmVuZG0KKworI2RlZmluZSBDRklfU1RBUlRQUk9DCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX0VORFBST0MJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfREVGX0NGQQljZmlfaWdub3JlCisjZGVmaW5lIENGSV9ERUZfQ0ZBX1JFR0lTVEVSCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX0RFRl9DRkFfT0ZGU0VUCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX09GRlNFVAljZmlfaWdub3JlCisjZGVmaW5lIENGSV9SRUxfT0ZGU0VUCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX1JFR0lTVEVSCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX1JFU1RPUkUJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfUkVNRU1CRVJfU1RBVEUgY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfUkVTVE9SRV9TVEFURSBjZmlfaWdub3JlCisjZGVmaW5lIENGSV9VTkRFRklORUQgY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfU0lHTkFMX0ZSQU1FIGNmaV9pZ25vcmUKKworI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2R3YXJmMl8zMi5oIGIvaW5jbHVkZS9hc20teDg2L2R3YXJmMl8zMi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDY2Mzk4Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjJfMzIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLSNpZm5kZWYgX0RXQVJGMl9ICi0jZGVmaW5lIF9EV0FSRjJfSAotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotI3dhcm5pbmcgImFzbS9kd2FyZjIuaCBzaG91bGQgYmUgb25seSBpbmNsdWRlZCBpbiBwdXJlIGFzc2VtYmx5IGZpbGVzIgotI2VuZGlmCi0KLS8qCi0gICBNYWNyb3MgZm9yIGR3YXJmMiBDRkkgdW53aW5kIHRhYmxlIGVudHJpZXMuCi0gICBTZWUgImFzLmluZm8iIGZvciBkZXRhaWxzIG9uIHRoZXNlIHBzZXVkbyBvcHMuIFVuZm9ydHVuYXRlbHkKLSAgIHRoZXkgYXJlIG9ubHkgc3VwcG9ydGVkIGluIHZlcnkgbmV3IGJpbnV0aWxzLCBzbyBkZWZpbmUgdGhlbQotICAgYXdheSBmb3Igb2xkZXIgdmVyc2lvbi4KLSAqLwotCi0jaWZkZWYgQ09ORklHX1VOV0lORF9JTkZPCi0KLSNkZWZpbmUgQ0ZJX1NUQVJUUFJPQyAuY2ZpX3N0YXJ0cHJvYwotI2RlZmluZSBDRklfRU5EUFJPQyAuY2ZpX2VuZHByb2MKLSNkZWZpbmUgQ0ZJX0RFRl9DRkEgLmNmaV9kZWZfY2ZhCi0jZGVmaW5lIENGSV9ERUZfQ0ZBX1JFR0lTVEVSIC5jZmlfZGVmX2NmYV9yZWdpc3RlcgotI2RlZmluZSBDRklfREVGX0NGQV9PRkZTRVQgLmNmaV9kZWZfY2ZhX29mZnNldAotI2RlZmluZSBDRklfQURKVVNUX0NGQV9PRkZTRVQgLmNmaV9hZGp1c3RfY2ZhX29mZnNldAotI2RlZmluZSBDRklfT0ZGU0VUIC5jZmlfb2Zmc2V0Ci0jZGVmaW5lIENGSV9SRUxfT0ZGU0VUIC5jZmlfcmVsX29mZnNldAotI2RlZmluZSBDRklfUkVHSVNURVIgLmNmaV9yZWdpc3RlcgotI2RlZmluZSBDRklfUkVTVE9SRSAuY2ZpX3Jlc3RvcmUKLSNkZWZpbmUgQ0ZJX1JFTUVNQkVSX1NUQVRFIC5jZmlfcmVtZW1iZXJfc3RhdGUKLSNkZWZpbmUgQ0ZJX1JFU1RPUkVfU1RBVEUgLmNmaV9yZXN0b3JlX3N0YXRlCi0jZGVmaW5lIENGSV9VTkRFRklORUQgLmNmaV91bmRlZmluZWQKLQotI2lmZGVmIENPTkZJR19BU19DRklfU0lHTkFMX0ZSQU1FCi0jZGVmaW5lIENGSV9TSUdOQUxfRlJBTUUgLmNmaV9zaWduYWxfZnJhbWUKLSNlbHNlCi0jZGVmaW5lIENGSV9TSUdOQUxfRlJBTUUKLSNlbmRpZgotCi0jZWxzZQotCi0vKiBEdWUgdG8gdGhlIHN0cnVjdHVyZSBvZiBwcmUtZXhpc2l0aW5nIGNvZGUsIGRvbid0IHVzZSBhc3NlbWJsZXIgbGluZQotICAgY29tbWVudCBjaGFyYWN0ZXIgIyB0byBpZ25vcmUgdGhlIGFyZ3VtZW50cy4gSW5zdGVhZCwgdXNlIGEgZHVtbXkgbWFjcm8uICovCi0ubWFjcm8gaWdub3JlIGE9MCwgYj0wLCBjPTAsIGQ9MAotLmVuZG0KLQotI2RlZmluZSBDRklfU1RBUlRQUk9DCWlnbm9yZQotI2RlZmluZSBDRklfRU5EUFJPQwlpZ25vcmUKLSNkZWZpbmUgQ0ZJX0RFRl9DRkEJaWdub3JlCi0jZGVmaW5lIENGSV9ERUZfQ0ZBX1JFR0lTVEVSCWlnbm9yZQotI2RlZmluZSBDRklfREVGX0NGQV9PRkZTRVQJaWdub3JlCi0jZGVmaW5lIENGSV9BREpVU1RfQ0ZBX09GRlNFVAlpZ25vcmUKLSNkZWZpbmUgQ0ZJX09GRlNFVAlpZ25vcmUKLSNkZWZpbmUgQ0ZJX1JFTF9PRkZTRVQJaWdub3JlCi0jZGVmaW5lIENGSV9SRUdJU1RFUglpZ25vcmUKLSNkZWZpbmUgQ0ZJX1JFU1RPUkUJaWdub3JlCi0jZGVmaW5lIENGSV9SRU1FTUJFUl9TVEFURSBpZ25vcmUKLSNkZWZpbmUgQ0ZJX1JFU1RPUkVfU1RBVEUgaWdub3JlCi0jZGVmaW5lIENGSV9VTkRFRklORUQgaWdub3JlCi0jZGVmaW5lIENGSV9TSUdOQUxfRlJBTUUgaWdub3JlCi0KLSNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjJfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjJfNjQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk1MDUxOS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZHdhcmYyXzY0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0jaWZuZGVmIF9EV0FSRjJfSAotI2RlZmluZSBfRFdBUkYyX0ggMQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotI3dhcm5pbmcgImFzbS9kd2FyZjIuaCBzaG91bGQgYmUgb25seSBpbmNsdWRlZCBpbiBwdXJlIGFzc2VtYmx5IGZpbGVzIgotI2VuZGlmCi0KLS8qCi0gICBNYWNyb3MgZm9yIGR3YXJmMiBDRkkgdW53aW5kIHRhYmxlIGVudHJpZXMuCi0gICBTZWUgImFzLmluZm8iIGZvciBkZXRhaWxzIG9uIHRoZXNlIHBzZXVkbyBvcHMuIFVuZm9ydHVuYXRlbHkKLSAgIHRoZXkgYXJlIG9ubHkgc3VwcG9ydGVkIGluIHZlcnkgbmV3IGJpbnV0aWxzLCBzbyBkZWZpbmUgdGhlbQotICAgYXdheSBmb3Igb2xkZXIgdmVyc2lvbi4KLSAqLwotCi0jaWZkZWYgQ09ORklHX0FTX0NGSQotCi0jZGVmaW5lIENGSV9TVEFSVFBST0MgLmNmaV9zdGFydHByb2MKLSNkZWZpbmUgQ0ZJX0VORFBST0MgLmNmaV9lbmRwcm9jCi0jZGVmaW5lIENGSV9ERUZfQ0ZBIC5jZmlfZGVmX2NmYQotI2RlZmluZSBDRklfREVGX0NGQV9SRUdJU1RFUiAuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIKLSNkZWZpbmUgQ0ZJX0RFRl9DRkFfT0ZGU0VUIC5jZmlfZGVmX2NmYV9vZmZzZXQKLSNkZWZpbmUgQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQKLSNkZWZpbmUgQ0ZJX09GRlNFVCAuY2ZpX29mZnNldAotI2RlZmluZSBDRklfUkVMX09GRlNFVCAuY2ZpX3JlbF9vZmZzZXQKLSNkZWZpbmUgQ0ZJX1JFR0lTVEVSIC5jZmlfcmVnaXN0ZXIKLSNkZWZpbmUgQ0ZJX1JFU1RPUkUgLmNmaV9yZXN0b3JlCi0jZGVmaW5lIENGSV9SRU1FTUJFUl9TVEFURSAuY2ZpX3JlbWVtYmVyX3N0YXRlCi0jZGVmaW5lIENGSV9SRVNUT1JFX1NUQVRFIC5jZmlfcmVzdG9yZV9zdGF0ZQotI2RlZmluZSBDRklfVU5ERUZJTkVEIC5jZmlfdW5kZWZpbmVkCi0jaWZkZWYgQ09ORklHX0FTX0NGSV9TSUdOQUxfRlJBTUUKLSNkZWZpbmUgQ0ZJX1NJR05BTF9GUkFNRSAuY2ZpX3NpZ25hbF9mcmFtZQotI2Vsc2UKLSNkZWZpbmUgQ0ZJX1NJR05BTF9GUkFNRQotI2VuZGlmCi0KLSNlbHNlCi0KLS8qIHVzZSBhc3NlbWJsZXIgbGluZSBjb21tZW50IGNoYXJhY3RlciAjIHRvIGlnbm9yZSB0aGUgYXJndW1lbnRzLiAqLwotI2RlZmluZSBDRklfU1RBUlRQUk9DCSMKLSNkZWZpbmUgQ0ZJX0VORFBST0MJIwotI2RlZmluZSBDRklfREVGX0NGQQkjCi0jZGVmaW5lIENGSV9ERUZfQ0ZBX1JFR0lTVEVSCSMKLSNkZWZpbmUgQ0ZJX0RFRl9DRkFfT0ZGU0VUCSMKLSNkZWZpbmUgQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUCSMKLSNkZWZpbmUgQ0ZJX09GRlNFVAkjCi0jZGVmaW5lIENGSV9SRUxfT0ZGU0VUCSMKLSNkZWZpbmUgQ0ZJX1JFR0lTVEVSCSMKLSNkZWZpbmUgQ0ZJX1JFU1RPUkUJIwotI2RlZmluZSBDRklfUkVNRU1CRVJfU1RBVEUJIwotI2RlZmluZSBDRklfUkVTVE9SRV9TVEFURQkjCi0jZGVmaW5lIENGSV9VTkRFRklORUQJIwotI2RlZmluZSBDRklfU0lHTkFMX0ZSQU1FCSMKLQotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2U4MjAuaCBiL2luY2x1ZGUvYXNtLXg4Ni9lODIwLmgKaW5kZXggNzAwNDI1MS4uMzNlNzkzZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2U4MjAuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZTgyMC5oCkBAIC0yLDYgKzIsNDEgQEAKICNkZWZpbmUgX19BU01fRTgyMF9ICiAjZGVmaW5lIEU4MjBNQVAJMHgyZDAJCS8qIG91ciBtYXAgKi8KICNkZWZpbmUgRTgyME1BWAkxMjgJCS8qIG51bWJlciBvZiBlbnRyaWVzIGluIEU4MjBNQVAgKi8KKworLyoKKyAqIExlZ2FjeSBFODIwIEJJT1MgbGltaXRzIHVzIHRvIDEyOCAoRTgyME1BWCkgbm9kZXMgZHVlIHRvIHRoZQorICogY29uc3RyYWluZWQgc3BhY2UgaW4gdGhlIHplcm9wYWdlLiAgSWYgd2UgaGF2ZSBtb3JlIG5vZGVzIHRoYW4KKyAqIHRoYXQsIGFuZCBpZiB3ZSd2ZSBib290ZWQgb2ZmIEVGSSBmaXJtd2FyZSwgdGhlbiB0aGUgRUZJIHRhYmxlcworICogcGFzc2VkIHVzIGZyb20gdGhlIEVGSSBmaXJtd2FyZSBjYW4gbGlzdCBtb3JlIG5vZGVzLiAgU2l6ZSBvdXIKKyAqIGludGVybmFsIG1lbW9yeSBtYXAgdGFibGVzIHRvIGhhdmUgcm9vbSBmb3IgdGhlc2UgYWRkaXRpb25hbAorICogbm9kZXMsIGJhc2VkIG9uIHVwIHRvIHRocmVlIGVudHJpZXMgcGVyIG5vZGUgZm9yIHdoaWNoIHRoZQorICoga2VybmVsIHdhcyBidWlsdDogTUFYX05VTU5PREVTID09ICgxIDw8IENPTkZJR19OT0RFU19TSElGVCksCisgKiBwbHVzIEU4MjBNQVgsIGFsbG93aW5nIHNwYWNlIGZvciB0aGUgcG9zc2libGUgZHVwbGljYXRlIEU4MjAKKyAqIGVudHJpZXMgdGhhdCBtaWdodCBuZWVkIHJvb20gaW4gdGhlIHNhbWUgYXJyYXlzLCBwcmlvciB0byB0aGUKKyAqIGNhbGwgdG8gc2FuaXRpemVfZTgyMF9tYXAoKSB0byByZW1vdmUgZHVwbGljYXRlcy4gIFRoZSBhbGxvd2FuY2UKKyAqIG9mIHRocmVlIG1lbW9yeSBtYXAgZW50cmllcyBwZXIgbm9kZSBpcyAiZW5vdWdoIiBlbnRyaWVzIGZvcgorICogdGhlIGluaXRpYWwgaGFyZHdhcmUgcGxhdGZvcm0gbW90aXZhdGluZyB0aGlzIG1lY2hhbmlzbSB0byBtYWtlCisgKiB1c2Ugb2YgYWRkaXRpb25hbCBFRkkgbWFwIGVudHJpZXMuICBGdXR1cmUgcGxhdGZvcm1zIG1heSB3YW50CisgKiB0byBhbGxvdyBtb3JlIHRoYW4gdGhyZWUgZW50cmllcyBwZXIgbm9kZSBvciBvdGhlcndpc2UgcmVmaW5lCisgKiB0aGlzIHNpemUuCisgKi8KKworLyoKKyAqIE9kZDogJ21ha2UgaGVhZGVyc19jaGVjaycgY29tcGxhaW5zIGFib3V0IG51bWEuaCBpZiBJIHRyeQorICogdG8gY29sbGFwc2UgdGhlIG5leHQgdHdvICNpZmRlZiBsaW5lcyB0byBhIHNpbmdsZSBsaW5lOgorICoJI2lmIGRlZmluZWQoX19LRVJORUxfXykgJiYgZGVmaW5lZChDT05GSUdfRUZJKQorICovCisjaWZkZWYgX19LRVJORUxfXworI2lmZGVmIENPTkZJR19FRkkKKyNpbmNsdWRlIDxsaW51eC9udW1hLmg+CisjZGVmaW5lIEU4MjBfWF9NQVggKEU4MjBNQVggKyAzICogTUFYX05VTU5PREVTKQorI2Vsc2UJLyogISBDT05GSUdfRUZJICovCisjZGVmaW5lIEU4MjBfWF9NQVggRTgyME1BWAorI2VuZGlmCisjZWxzZQkvKiAhIF9fS0VSTkVMX18gKi8KKyNkZWZpbmUgRTgyMF9YX01BWCBFODIwTUFYCisjZW5kaWYKKwogI2RlZmluZSBFODIwTlIJMHgxZTgJCS8qICMgZW50cmllcyBpbiBFODIwTUFQICovCiAKICNkZWZpbmUgRTgyMF9SQU0JMQpAQCAtOSw2ICs0NCw5IEBACiAjZGVmaW5lIEU4MjBfQUNQSQkzCiAjZGVmaW5lIEU4MjBfTlZTCTQKIAorLyogcmVzZXJ2ZWQgUkFNIHVzZWQgYnkga2VybmVsIGl0c2VsZiAqLworI2RlZmluZSBFODIwX1JFU0VSVkVEX0tFUk4gICAgICAgIDEyOAorCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogc3RydWN0IGU4MjBlbnRyeSB7CiAJX191NjQgYWRkcjsJLyogc3RhcnQgb2YgbWVtb3J5IHNlZ21lbnQgKi8KQEAgLTE4LDIyICs1Niw3OSBAQAogCiBzdHJ1Y3QgZTgyMG1hcCB7CiAJX191MzIgbnJfbWFwOwotCXN0cnVjdCBlODIwZW50cnkgbWFwW0U4MjBNQVhdOworCXN0cnVjdCBlODIwZW50cnkgbWFwW0U4MjBfWF9NQVhdOwogfTsKKworLyogc2VlIGNvbW1lbnQgaW4gYXJjaC94ODYva2VybmVsL2U4MjAuYyAqLworZXh0ZXJuIHN0cnVjdCBlODIwbWFwIGU4MjA7CitleHRlcm4gc3RydWN0IGU4MjBtYXAgZTgyMF9zYXZlZDsKKworZXh0ZXJuIGludCBlODIwX2FueV9tYXBwZWQodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCB0eXBlKTsKK2V4dGVybiBpbnQgZTgyMF9hbGxfbWFwcGVkKHU2NCBzdGFydCwgdTY0IGVuZCwgdW5zaWduZWQgdHlwZSk7CitleHRlcm4gdm9pZCBlODIwX2FkZF9yZWdpb24odTY0IHN0YXJ0LCB1NjQgc2l6ZSwgaW50IHR5cGUpOworZXh0ZXJuIHZvaWQgZTgyMF9wcmludF9tYXAoY2hhciAqd2hvKTsKK2V4dGVybiBpbnQKK3Nhbml0aXplX2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGludCBtYXhfbnJfbWFwLCBpbnQgKnBucl9tYXApOworZXh0ZXJuIHU2NCBlODIwX3VwZGF0ZV9yYW5nZSh1NjQgc3RhcnQsIHU2NCBzaXplLCB1bnNpZ25lZCBvbGRfdHlwZSwKKwkJCSAgICAgICB1bnNpZ25lZCBuZXdfdHlwZSk7CitleHRlcm4gdTY0IGU4MjBfcmVtb3ZlX3JhbmdlKHU2NCBzdGFydCwgdTY0IHNpemUsIHVuc2lnbmVkIG9sZF90eXBlLAorCQkJICAgICBpbnQgY2hlY2t0eXBlKTsKK2V4dGVybiB2b2lkIHVwZGF0ZV9lODIwKHZvaWQpOworZXh0ZXJuIHZvaWQgZTgyMF9zZXR1cF9nYXAodm9pZCk7CitleHRlcm4gaW50IGU4MjBfc2VhcmNoX2dhcCh1bnNpZ25lZCBsb25nICpnYXBzdGFydCwgdW5zaWduZWQgbG9uZyAqZ2Fwc2l6ZSwKKwkJCXVuc2lnbmVkIGxvbmcgc3RhcnRfYWRkciwgdW5zaWduZWQgbG9uZyBsb25nIGVuZF9hZGRyKTsKK3N0cnVjdCBzZXR1cF9kYXRhOworZXh0ZXJuIHZvaWQgcGFyc2VfZTgyMF9leHQoc3RydWN0IHNldHVwX2RhdGEgKmRhdGEsIHVuc2lnbmVkIGxvbmcgcGFfZGF0YSk7CisKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpIHx8IFwKKwkoZGVmaW5lZChDT05GSUdfWDg2XzMyKSAmJiBkZWZpbmVkKENPTkZJR19ISUJFUk5BVElPTikpCitleHRlcm4gdm9pZCBlODIwX21hcmtfbm9zYXZlX3JlZ2lvbnModW5zaWduZWQgbG9uZyBsaW1pdF9wZm4pOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBlODIwX21hcmtfbm9zYXZlX3JlZ2lvbnModW5zaWduZWQgbG9uZyBsaW1pdF9wZm4pCit7Cit9CisjZW5kaWYKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZW5kX3VzZXJfcGZuOworCitleHRlcm4gdTY0IGZpbmRfZTgyMF9hcmVhKHU2NCBzdGFydCwgdTY0IGVuZCwgdTY0IHNpemUsIHU2NCBhbGlnbik7CitleHRlcm4gdTY0IGZpbmRfZTgyMF9hcmVhX3NpemUodTY0IHN0YXJ0LCB1NjQgKnNpemVwLCB1NjQgYWxpZ24pOworZXh0ZXJuIHZvaWQgcmVzZXJ2ZV9lYXJseSh1NjQgc3RhcnQsIHU2NCBlbmQsIGNoYXIgKm5hbWUpOworZXh0ZXJuIHZvaWQgcmVzZXJ2ZV9lYXJseV9vdmVybGFwX29rKHU2NCBzdGFydCwgdTY0IGVuZCwgY2hhciAqbmFtZSk7CitleHRlcm4gdm9pZCBmcmVlX2Vhcmx5KHU2NCBzdGFydCwgdTY0IGVuZCk7CitleHRlcm4gdm9pZCBlYXJseV9yZXNfdG9fYm9vdG1lbSh1NjQgc3RhcnQsIHU2NCBlbmQpOworZXh0ZXJuIHU2NCBlYXJseV9yZXNlcnZlX2U4MjAodTY0IHN0YXJ0dCwgdTY0IHNpemV0LCB1NjQgYWxpZ24pOworCitleHRlcm4gdW5zaWduZWQgbG9uZyBlODIwX2VuZF9vZl9yYW1fcGZuKHZvaWQpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZTgyMF9lbmRfb2ZfbG93X3JhbV9wZm4odm9pZCk7CitleHRlcm4gaW50IGU4MjBfZmluZF9hY3RpdmVfcmVnaW9uKGNvbnN0IHN0cnVjdCBlODIwZW50cnkgKmVpLAorCQkJCSAgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJICB1bnNpZ25lZCBsb25nIGxhc3RfcGZuLAorCQkJCSAgdW5zaWduZWQgbG9uZyAqZWlfc3RhcnRwZm4sCisJCQkJICB1bnNpZ25lZCBsb25nICplaV9lbmRwZm4pOworZXh0ZXJuIHZvaWQgZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7CitleHRlcm4gdTY0IGU4MjBfaG9sZV9zaXplKHU2NCBzdGFydCwgdTY0IGVuZCk7CitleHRlcm4gdm9pZCBmaW5pc2hfZTgyMF9wYXJzaW5nKHZvaWQpOworZXh0ZXJuIHZvaWQgZTgyMF9yZXNlcnZlX3Jlc291cmNlcyh2b2lkKTsKK2V4dGVybiB2b2lkIHNldHVwX21lbW9yeV9tYXAodm9pZCk7CitleHRlcm4gY2hhciAqZGVmYXVsdF9tYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCh2b2lkKTsKK2V4dGVybiBjaGFyICptYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCh2b2lkKTsKK2V4dGVybiBjaGFyICptZW1vcnlfc2V0dXAodm9pZCk7CisKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KIAogI2RlZmluZSBJU0FfU1RBUlRfQUREUkVTUwkweGEwMDAwCiAjZGVmaW5lIElTQV9FTkRfQUREUkVTUwkJMHgxMDAwMDAKKyNkZWZpbmUgaXNfSVNBX3JhbmdlKHMsIGUpICgocykgPj0gSVNBX1NUQVJUX0FERFJFU1MgJiYgKGUpIDwgSVNBX0VORF9BRERSRVNTKQogCiAjZGVmaW5lIEJJT1NfQkVHSU4JCTB4MDAwYTAwMDAKICNkZWZpbmUgQklPU19FTkQJCTB4MDAxMDAwMDAKIAogI2lmZGVmIF9fS0VSTkVMX18KLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0jIGluY2x1ZGUgImU4MjBfMzIuaCIKLSNlbHNlCi0jIGluY2x1ZGUgImU4MjBfNjQuaCIKLSNlbmRpZgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorCisjZGVmaW5lIEhJR0hfTUVNT1JZCSgxMDI0KjEwMjQpCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwogCiAjZW5kaWYgIC8qIF9fQVNNX0U4MjBfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2U4MjBfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9lODIwXzMyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5ZjdjNmUuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2U4MjBfMzIuaAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucyBmb3IgdGhlIGludCAxNSwgYXg9ZTgyMCBtZW1vcnkgbWFwCi0gKiBzY2hlbWUuCi0gKgotICogSW4gYSBudXRzaGVsbCwgYXJjaC9pMzg2L2Jvb3Qvc2V0dXAuUyBwb3B1bGF0ZXMgYSBzY3JhdGNoIHRhYmxlCi0gKiBpbiB0aGUgZW1wdHlfemVyb19ibG9jayB0aGF0IGNvbnRhaW5zIGEgbGlzdCBvZiB1c2FibGUgYWRkcmVzcy9zaXplCi0gKiBkdXBsZXMuICAgSW4gYXJjaC9pMzg2L2tlcm5lbC9zZXR1cC5jLCB0aGlzIGluZm9ybWF0aW9uIGlzCi0gKiB0cmFuc2ZlcnJlZCBpbnRvIHRoZSBlODIwbWFwLCBhbmQgaW4gYXJjaC9pMzg2L21tL2luaXQuYywgdGhhdAotICogbmV3IGluZm9ybWF0aW9uIGlzIHVzZWQgdG8gbWFyayBwYWdlcyByZXNlcnZlZCBvciBub3QuCi0gKgotICovCi0jaWZuZGVmIF9fRTgyMF9IRUFERVIKLSNkZWZpbmUgX19FODIwX0hFQURFUgotCi0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0KLSNkZWZpbmUgSElHSF9NRU1PUlkJKDEwMjQqMTAyNCkKLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLQotZXh0ZXJuIHN0cnVjdCBlODIwbWFwIGU4MjA7Ci1leHRlcm4gdm9pZCB1cGRhdGVfZTgyMCh2b2lkKTsKLQotZXh0ZXJuIGludCBlODIwX2FsbF9tYXBwZWQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgICB1bnNpZ25lZCB0eXBlKTsKLWV4dGVybiBpbnQgZTgyMF9hbnlfbWFwcGVkKHU2NCBzdGFydCwgdTY0IGVuZCwgdW5zaWduZWQgdHlwZSk7Ci1leHRlcm4gdm9pZCBwcm9wYWdhdGVfZTgyMF9tYXAodm9pZCk7Ci1leHRlcm4gdm9pZCByZWdpc3Rlcl9ib290bWVtX2xvd19wYWdlcyh1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuKTsKLWV4dGVybiB2b2lkIGFkZF9tZW1vcnlfcmVnaW9uKHVuc2lnbmVkIGxvbmcgbG9uZyBzdGFydCwKLQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBpbnQgdHlwZSk7Ci1leHRlcm4gdm9pZCB1cGRhdGVfbWVtb3J5X3JhbmdlKHU2NCBzdGFydCwgdTY0IHNpemUsIHVuc2lnbmVkIG9sZF90eXBlLAotCQkJCXVuc2lnbmVkIG5ld190eXBlKTsKLWV4dGVybiB2b2lkIGU4MjBfcmVnaXN0ZXJfbWVtb3J5KHZvaWQpOwotZXh0ZXJuIHZvaWQgbGltaXRfcmVnaW9ucyh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7Ci1leHRlcm4gdm9pZCBwcmludF9tZW1vcnlfbWFwKGNoYXIgKndobyk7Ci1leHRlcm4gdm9pZCBpbml0X2lvbWVtX3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKmNvZGVfcmVzb3VyY2UsCi0JCQkJIHN0cnVjdCByZXNvdXJjZSAqZGF0YV9yZXNvdXJjZSwKLQkJCQkgc3RydWN0IHJlc291cmNlICpic3NfcmVzb3VyY2UpOwotCi0jaWYgZGVmaW5lZChDT05GSUdfUE0pICYmIGRlZmluZWQoQ09ORklHX0hJQkVSTkFUSU9OKQotZXh0ZXJuIHZvaWQgZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKHZvaWQpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9pZCBlODIwX21hcmtfbm9zYXZlX3JlZ2lvbnModm9pZCkKLXsKLX0KLSNlbmRpZgotCi0KLSNlbmRpZi8qIV9fQVNTRU1CTFlfXyovCi0jZW5kaWYvKl9fRTgyMF9IRUFERVIqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2U4MjBfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9lODIwXzY0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxYzRkNjguLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2U4MjBfNjQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucyBmb3IgdGhlIGludCAxNSwgYXg9ZTgyMCBtZW1vcnkgbWFwCi0gKiBzY2hlbWUuCi0gKgotICogSW4gYSBudXRzaGVsbCwgc2V0dXAuUyBwb3B1bGF0ZXMgYSBzY3JhdGNoIHRhYmxlIGluIHRoZQotICogZW1wdHlfemVyb19ibG9jayB0aGF0IGNvbnRhaW5zIGEgbGlzdCBvZiB1c2FibGUgYWRkcmVzcy9zaXplCi0gKiBkdXBsZXMuICBzZXR1cC5jLCB0aGlzIGluZm9ybWF0aW9uIGlzIHRyYW5zZmVycmVkIGludG8gdGhlIGU4MjBtYXAsCi0gKiBhbmQgaW4gaW5pdC5jL251bWEuYywgdGhhdCBuZXcgaW5mb3JtYXRpb24gaXMgdXNlZCB0byBtYXJrIHBhZ2VzCi0gKiByZXNlcnZlZCBvciBub3QuCi0gKi8KLSNpZm5kZWYgX19FODIwX0hFQURFUgotI2RlZmluZSBfX0U4MjBfSEVBREVSCi0KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLWV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfZTgyMF9hcmVhKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJCSAgICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgYWxpZ24pOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9lODIwX2FyZWFfc2l6ZSh1bnNpZ25lZCBsb25nIHN0YXJ0LAotCQkJCQkgdW5zaWduZWQgbG9uZyAqc2l6ZXAsCi0JCQkJCSB1bnNpZ25lZCBsb25nIGFsaWduKTsKLWV4dGVybiB2b2lkIGFkZF9tZW1vcnlfcmVnaW9uKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCSAgICAgIGludCB0eXBlKTsKLWV4dGVybiB2b2lkIHVwZGF0ZV9tZW1vcnlfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgc2l6ZSwgdW5zaWduZWQgb2xkX3R5cGUsCi0JCQkJdW5zaWduZWQgbmV3X3R5cGUpOwotZXh0ZXJuIHZvaWQgc2V0dXBfbWVtb3J5X3JlZ2lvbih2b2lkKTsKLWV4dGVybiB2b2lkIGNvbnRpZ19lODIwX3NldHVwKHZvaWQpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZTgyMF9lbmRfb2ZfcmFtKHZvaWQpOwotZXh0ZXJuIHZvaWQgZTgyMF9yZXNlcnZlX3Jlc291cmNlcyh2b2lkKTsKLWV4dGVybiB2b2lkIGU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyh2b2lkKTsKLWV4dGVybiBpbnQgZTgyMF9hbnlfbWFwcGVkKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJICAgdW5zaWduZWQgdHlwZSk7Ci1leHRlcm4gaW50IGU4MjBfYWxsX21hcHBlZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgIHVuc2lnbmVkIHR5cGUpOwotZXh0ZXJuIGludCBlODIwX2FueV9ub25fcmVzZXJ2ZWQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwotZXh0ZXJuIGludCBpc19tZW1vcnlfYW55X3ZhbGlkKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKLWV4dGVybiBpbnQgZTgyMF9hbGxfbm9uX3Jlc2VydmVkKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKLWV4dGVybiBpbnQgaXNfbWVtb3J5X2FsbF92YWxpZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBlODIwX2hvbGVfc2l6ZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7Ci0KLWV4dGVybiB2b2lkIGU4MjBfc2V0dXBfZ2FwKHZvaWQpOwotZXh0ZXJuIHZvaWQgZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKLQkJCQkJIHVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7Ci0KLWV4dGVybiB2b2lkIGZpbmlzaF9lODIwX3BhcnNpbmcodm9pZCk7Ci0KLWV4dGVybiBzdHJ1Y3QgZTgyMG1hcCBlODIwOwotZXh0ZXJuIHZvaWQgdXBkYXRlX2U4MjAodm9pZCk7Ci0KLWV4dGVybiB2b2lkIHJlc2VydmVfZWFybHkodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsIGNoYXIgKm5hbWUpOwotZXh0ZXJuIHZvaWQgZnJlZV9lYXJseSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7Ci1leHRlcm4gdm9pZCBlYXJseV9yZXNfdG9fYm9vdG1lbSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7Ci0KLSNlbmRpZi8qIV9fQVNTRU1CTFlfXyovCi0KLSNlbmRpZi8qX19FODIwX0hFQURFUiovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZWZpLmggYi9pbmNsdWRlL2FzbS14ODYvZWZpLmgKaW5kZXggZDUzMDA0Yi4uN2VkMmJkNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2VmaS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9lZmkuaApAQCAtOTAsNyArOTAsNyBAQAogCiAjZW5kaWYgLyogQ09ORklHX1g4Nl8zMiAqLwogCi1leHRlcm4gdm9pZCBlZmlfcmVzZXJ2ZV9ib290bWVtKHZvaWQpOworZXh0ZXJuIHZvaWQgZWZpX3Jlc2VydmVfZWFybHkodm9pZCk7CiBleHRlcm4gdm9pZCBlZmlfY2FsbF9waHlzX3ByZWxvZyh2b2lkKTsKIGV4dGVybiB2b2lkIGVmaV9jYWxsX3BoeXNfZXBpbG9nKHZvaWQpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZWxmLmggYi9pbmNsdWRlL2FzbS14ODYvZWxmLmgKaW5kZXggOGYyMzJkYy4uN2JlNDczMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2VsZi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9lbGYuaApAQCAtODMsOSArODMsOSBAQAogCSgoKHgpLT5lX21hY2hpbmUgPT0gRU1fMzg2KSB8fCAoKHgpLT5lX21hY2hpbmUgPT0gRU1fNDg2KSkKIAogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAKICNpZmRlZiBDT05GSUdfWDg2XzMyCi0jaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgkJLyogZm9yIHNhdmVzZWdtZW50ICovCiAjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KIAogI2RlZmluZSBlbGZfY2hlY2tfYXJjaCh4KQllbGZfY2hlY2tfYXJjaF9pYTMyKHgpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZml4bWFwLmggYi9pbmNsdWRlL2FzbS14ODYvZml4bWFwLmgKaW5kZXggNWJkMjA2OS4uNDRkNGY4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2ZpeG1hcC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXAuaApAQCAtNyw3ICs3LDYyIEBACiAjIGluY2x1ZGUgImZpeG1hcF82NC5oIgogI2VuZGlmCiAKK2V4dGVybiBpbnQgZml4bWFwc19zZXQ7CisKK3ZvaWQgX19uYXRpdmVfc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsIHB0ZV90IHB0ZSk7Cit2b2lkIG5hdGl2ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwKKwkJICAgICAgIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgZmxhZ3MpOworCisjaWZuZGVmIENPTkZJR19QQVJBVklSVAorc3RhdGljIGlubGluZSB2b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsCisJCQkJdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncykKK3sKKwluYXRpdmVfc2V0X2ZpeG1hcChpZHgsIHBoeXMsIGZsYWdzKTsKK30KKyNlbmRpZgorCisjZGVmaW5lIHNldF9maXhtYXAoaWR4LCBwaHlzKQkJCQlcCisJX19zZXRfZml4bWFwKGlkeCwgcGh5cywgUEFHRV9LRVJORUwpCisKKy8qCisgKiBTb21lIGhhcmR3YXJlIHdhbnRzIHRvIGdldCBmaXhtYXBwZWQgd2l0aG91dCBjYWNoaW5nLgorICovCisjZGVmaW5lIHNldF9maXhtYXBfbm9jYWNoZShpZHgsIHBoeXMpCQkJXAorCV9fc2V0X2ZpeG1hcChpZHgsIHBoeXMsIFBBR0VfS0VSTkVMX05PQ0FDSEUpCisKICNkZWZpbmUgY2xlYXJfZml4bWFwKGlkeCkJCQlcCiAJX19zZXRfZml4bWFwKGlkeCwgMCwgX19wZ3Byb3QoMCkpCiAKKyNkZWZpbmUgX19maXhfdG9fdmlydCh4KQkoRklYQUREUl9UT1AgLSAoKHgpIDw8IFBBR0VfU0hJRlQpKQorI2RlZmluZSBfX3ZpcnRfdG9fZml4KHgpCSgoRklYQUREUl9UT1AgLSAoKHgpJlBBR0VfTUFTSykpID4+IFBBR0VfU0hJRlQpCisKK2V4dGVybiB2b2lkIF9fdGhpc19maXhtYXBfZG9lc19ub3RfZXhpc3Qodm9pZCk7CisKKy8qCisgKiAnaW5kZXggdG8gYWRkcmVzcycgdHJhbnNsYXRpb24uIElmIGFueW9uZSB0cmllcyB0byB1c2UgdGhlIGlkeAorICogZGlyZWN0bHkgd2l0aG91dCB0cmFuc2xhdGlvbiwgd2UgY2F0Y2ggdGhlIGJ1ZyB3aXRoIGEgTlVMTC1kZWZlcmVuY2UKKyAqIGtlcm5lbCBvb3BzLiBJbGxlZ2FsIHJhbmdlcyBvZiBpbmNvbWluZyBpbmRpY2VzIGFyZSBjYXVnaHQgdG9vLgorICovCitzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGxvbmcgZml4X3RvX3ZpcnQoY29uc3QgdW5zaWduZWQgaW50IGlkeCkKK3sKKwkvKgorCSAqIHRoaXMgYnJhbmNoIGdldHMgY29tcGxldGVseSBlbGltaW5hdGVkIGFmdGVyIGlubGluaW5nLAorCSAqIGV4Y2VwdCB3aGVuIHNvbWVvbmUgdHJpZXMgdG8gdXNlIGZpeGFkZHIgaW5kaWNlcyBpbiBhbgorCSAqIGlsbGVnYWwgd2F5LiAoc3VjaCBhcyBtaXhpbmcgdXAgYWRkcmVzcyB0eXBlcyBvciB1c2luZworCSAqIG91dC1vZi1yYW5nZSBpbmRpY2VzKS4KKwkgKgorCSAqIElmIGl0IGRvZXNuJ3QgZ2V0IHJlbW92ZWQsIHRoZSBsaW5rZXIgd2lsbCBjb21wbGFpbgorCSAqIGxvdWRseSB3aXRoIGEgcmVhc29uYWJseSBjbGVhciBlcnJvciBtZXNzYWdlLi4KKwkgKi8KKwlpZiAoaWR4ID49IF9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcykKKwkJX190aGlzX2ZpeG1hcF9kb2VzX25vdF9leGlzdCgpOworCisJcmV0dXJuIF9fZml4X3RvX3ZpcnQoaWR4KTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHZpcnRfdG9fZml4KGNvbnN0IHVuc2lnbmVkIGxvbmcgdmFkZHIpCit7CisJQlVHX09OKHZhZGRyID49IEZJWEFERFJfVE9QIHx8IHZhZGRyIDwgRklYQUREUl9TVEFSVCk7CisJcmV0dXJuIF9fdmlydF90b19maXgodmFkZHIpOworfQogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZml4bWFwXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvZml4bWFwXzMyLmgKaW5kZXggNGI5NjE0OC4uYWFlMmYwNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2ZpeG1hcF8zMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXBfMzIuaApAQCAtNzksMTAgKzc5LDYgQEAKIAlGSVhfS01BUF9CRUdJTiwJLyogcmVzZXJ2ZWQgcHRlJ3MgZm9yIHRlbXBvcmFyeSBrZXJuZWwgbWFwcGluZ3MgKi8KIAlGSVhfS01BUF9FTkQgPSBGSVhfS01BUF9CRUdJTisoS01fVFlQRV9OUipOUl9DUFVTKS0xLAogI2VuZGlmCi0jaWZkZWYgQ09ORklHX0FDUEkKLQlGSVhfQUNQSV9CRUdJTiwKLQlGSVhfQUNQSV9FTkQgPSBGSVhfQUNQSV9CRUdJTiArIEZJWF9BQ1BJX1BBR0VTIC0gMSwKLSNlbmRpZgogI2lmZGVmIENPTkZJR19QQ0lfTU1DT05GSUcKIAlGSVhfUENJRV9NQ0ZHLAogI2VuZGlmCkBAIC0xMDMsMjMgKzk5LDE4IEBACiAJCQkoX19lbmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJlc3NlcyAmIDUxMSksCiAJRklYX0JUTUFQX0JFR0lOID0gRklYX0JUTUFQX0VORCArIE5SX0ZJWF9CVE1BUFMqRklYX0JUTUFQU19ORVNUSU5HIC0gMSwKIAlGSVhfV1BfVEVTVCwKKyNpZmRlZiBDT05GSUdfQUNQSQorCUZJWF9BQ1BJX0JFR0lOLAorCUZJWF9BQ1BJX0VORCA9IEZJWF9BQ1BJX0JFR0lOICsgRklYX0FDUElfUEFHRVMgLSAxLAorI2VuZGlmCiAjaWZkZWYgQ09ORklHX1BST1ZJREVfT0hDSTEzOTRfRE1BX0lOSVQKIAlGSVhfT0hDSTEzOTRfQkFTRSwKICNlbmRpZgogCV9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcwogfTsKIAotZXh0ZXJuIHZvaWQgX19zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwKLQkJCSB1bnNpZ25lZCBsb25nIHBoeXMsIHBncHJvdF90IGZsYWdzKTsKIGV4dGVybiB2b2lkIHJlc2VydmVfdG9wX2FkZHJlc3ModW5zaWduZWQgbG9uZyByZXNlcnZlKTsKIAotI2RlZmluZSBzZXRfZml4bWFwKGlkeCwgcGh5cykJCQkJXAotCV9fc2V0X2ZpeG1hcChpZHgsIHBoeXMsIFBBR0VfS0VSTkVMKQotLyoKLSAqIFNvbWUgaGFyZHdhcmUgd2FudHMgdG8gZ2V0IGZpeG1hcHBlZCB3aXRob3V0IGNhY2hpbmcuCi0gKi8KLSNkZWZpbmUgc2V0X2ZpeG1hcF9ub2NhY2hlKGlkeCwgcGh5cykJCQlcCi0JX19zZXRfZml4bWFwKGlkeCwgcGh5cywgUEFHRV9LRVJORUxfTk9DQUNIRSkKIAogI2RlZmluZSBGSVhBRERSX1RPUAkoKHVuc2lnbmVkIGxvbmcpX19GSVhBRERSX1RPUCkKIApAQCAtMTI4LDM4ICsxMTksNSBAQAogI2RlZmluZSBGSVhBRERSX1NUQVJUCQkoRklYQUREUl9UT1AgLSBfX0ZJWEFERFJfU0laRSkKICNkZWZpbmUgRklYQUREUl9CT09UX1NUQVJUCShGSVhBRERSX1RPUCAtIF9fRklYQUREUl9CT09UX1NJWkUpCiAKLSNkZWZpbmUgX19maXhfdG9fdmlydCh4KQkoRklYQUREUl9UT1AgLSAoKHgpIDw8IFBBR0VfU0hJRlQpKQotI2RlZmluZSBfX3ZpcnRfdG9fZml4KHgpCSgoRklYQUREUl9UT1AgLSAoKHgpJlBBR0VfTUFTSykpID4+IFBBR0VfU0hJRlQpCi0KLWV4dGVybiB2b2lkIF9fdGhpc19maXhtYXBfZG9lc19ub3RfZXhpc3Qodm9pZCk7Ci0KLS8qCi0gKiAnaW5kZXggdG8gYWRkcmVzcycgdHJhbnNsYXRpb24uIElmIGFueW9uZSB0cmllcyB0byB1c2UgdGhlIGlkeAotICogZGlyZWN0bHkgd2l0aG91dCB0cmFubGF0aW9uLCB3ZSBjYXRjaCB0aGUgYnVnIHdpdGggYSBOVUxMLWRlZmVyZW5jZQotICoga2VybmVsIG9vcHMuIElsbGVnYWwgcmFuZ2VzIG9mIGluY29taW5nIGluZGljZXMgYXJlIGNhdWdodCB0b28uCi0gKi8KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgbG9uZyBmaXhfdG9fdmlydChjb25zdCB1bnNpZ25lZCBpbnQgaWR4KQotewotCS8qCi0JICogdGhpcyBicmFuY2ggZ2V0cyBjb21wbGV0ZWx5IGVsaW1pbmF0ZWQgYWZ0ZXIgaW5saW5pbmcsCi0JICogZXhjZXB0IHdoZW4gc29tZW9uZSB0cmllcyB0byB1c2UgZml4YWRkciBpbmRpY2VzIGluIGFuCi0JICogaWxsZWdhbCB3YXkuIChzdWNoIGFzIG1peGluZyB1cCBhZGRyZXNzIHR5cGVzIG9yIHVzaW5nCi0JICogb3V0LW9mLXJhbmdlIGluZGljZXMpLgotCSAqCi0JICogSWYgaXQgZG9lc24ndCBnZXQgcmVtb3ZlZCwgdGhlIGxpbmtlciB3aWxsIGNvbXBsYWluCi0JICogbG91ZGx5IHdpdGggYSByZWFzb25hYmx5IGNsZWFyIGVycm9yIG1lc3NhZ2UuLgotCSAqLwotCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKQotCQlfX3RoaXNfZml4bWFwX2RvZXNfbm90X2V4aXN0KCk7Ci0KLQlyZXR1cm4gX19maXhfdG9fdmlydChpZHgpOwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdmlydF90b19maXgoY29uc3QgdW5zaWduZWQgbG9uZyB2YWRkcikKLXsKLQlCVUdfT04odmFkZHIgPj0gRklYQUREUl9UT1AgfHwgdmFkZHIgPCBGSVhBRERSX1NUQVJUKTsKLQlyZXR1cm4gX192aXJ0X3RvX2ZpeCh2YWRkcik7Ci19Ci0KICNlbmRpZiAvKiAhX19BU1NFTUJMWV9fICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXBfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXBfNjQuaAppbmRleCAzNTVkMjZhLi4wMGYzZDc0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZml4bWFwXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2ZpeG1hcF82NC5oCkBAIC0xMiw2ICsxMiw3IEBACiAjZGVmaW5lIF9BU01fRklYTUFQXzY0X0gKIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGFzbS9hY3BpLmg+CiAjaW5jbHVkZSA8YXNtL2FwaWNkZWYuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS92c3lzY2FsbC5oPgpAQCAtMzksMzAgKzQwLDM4IEBACiAJVlNZU0NBTExfSFBFVCwKIAlGSVhfREJHUF9CQVNFLAogCUZJWF9FQVJMWUNPTl9NRU1fQkFTRSwKLQlGSVhfSFBFVF9CQVNFLAogCUZJWF9BUElDX0JBU0UsCS8qIGxvY2FsIChDUFUpIEFQSUMpIC0tIHJlcXVpcmVkIGZvciBTTVAgb3Igbm90ICovCiAJRklYX0lPX0FQSUNfQkFTRV8wLAogCUZJWF9JT19BUElDX0JBU0VfRU5EID0gRklYX0lPX0FQSUNfQkFTRV8wICsgTUFYX0lPX0FQSUNTIC0gMSwKIAlGSVhfRUZJX0lPX01BUF9MQVNUX1BBR0UsCiAJRklYX0VGSV9JT19NQVBfRklSU1RfUEFHRSA9IEZJWF9FRklfSU9fTUFQX0xBU1RfUEFHRQogCQkJCSAgKyBNQVhfRUZJX0lPX1BBR0VTIC0gMSwKKyNpZmRlZiBDT05GSUdfUEFSQVZJUlQKKwlGSVhfUEFSQVZJUlRfQk9PVE1BUCwKKyNlbmRpZgorI2lmZGVmIENPTkZJR19BQ1BJCisJRklYX0FDUElfQkVHSU4sCisJRklYX0FDUElfRU5EID0gRklYX0FDUElfQkVHSU4gKyBGSVhfQUNQSV9QQUdFUyAtIDEsCisjZW5kaWYKICNpZmRlZiBDT05GSUdfUFJPVklERV9PSENJMTM5NF9ETUFfSU5JVAogCUZJWF9PSENJMTM5NF9CQVNFLAogI2VuZGlmCisJX19lbmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJlc3NlcywKKwkvKgorCSAqIDI1NiB0ZW1wb3JhcnkgYm9vdC10aW1lIG1hcHBpbmdzLCB1c2VkIGJ5IGVhcmx5X2lvcmVtYXAoKSwKKwkgKiBiZWZvcmUgaW9yZW1hcCgpIGlzIGZ1bmN0aW9uYWwuCisJICoKKwkgKiBXZSByb3VuZCBpdCB1cCB0byB0aGUgbmV4dCA1MTIgcGFnZXMgYm91bmRhcnkgc28gdGhhdCB3ZQorCSAqIGNhbiBoYXZlIGEgc2luZ2xlIHBnZCBlbnRyeSBhbmQgYSBzaW5nbGUgcHRlIHRhYmxlOgorCSAqLworI2RlZmluZSBOUl9GSVhfQlRNQVBTCQk2NAorI2RlZmluZSBGSVhfQlRNQVBTX05FU1RJTkcJNAorCUZJWF9CVE1BUF9FTkQgPSBfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzICsgNTEyIC0KKwkJCShfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzICYgNTExKSwKKwlGSVhfQlRNQVBfQkVHSU4gPSBGSVhfQlRNQVBfRU5EICsgTlJfRklYX0JUTUFQUypGSVhfQlRNQVBTX05FU1RJTkcgLSAxLAogCV9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcwogfTsKIAotZXh0ZXJuIHZvaWQgX19zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwKLQkJCSB1bnNpZ25lZCBsb25nIHBoeXMsIHBncHJvdF90IGZsYWdzKTsKLQotI2RlZmluZSBzZXRfZml4bWFwKGlkeCwgcGh5cykJCQlcCi0JX19zZXRfZml4bWFwKGlkeCwgcGh5cywgUEFHRV9LRVJORUwpCi0vKgotICogU29tZSBoYXJkd2FyZSB3YW50cyB0byBnZXQgZml4bWFwcGVkIHdpdGhvdXQgY2FjaGluZy4KLSAqLwotI2RlZmluZSBzZXRfZml4bWFwX25vY2FjaGUoaWR4LCBwaHlzKQkJCVwKLQlfX3NldF9maXhtYXAoaWR4LCBwaHlzLCBQQUdFX0tFUk5FTF9OT0NBQ0hFKQotCiAjZGVmaW5lIEZJWEFERFJfVE9QCShWU1lTQ0FMTF9FTkQtUEFHRV9TSVpFKQogI2RlZmluZSBGSVhBRERSX1NJWkUJKF9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcyA8PCBQQUdFX1NISUZUKQogI2RlZmluZSBGSVhBRERSX1NUQVJUCShGSVhBRERSX1RPUCAtIEZJWEFERFJfU0laRSkKQEAgLTcxLDMwICs4MCw0IEBACiAjZGVmaW5lIEZJWEFERFJfVVNFUl9TVEFSVAkoKHVuc2lnbmVkIGxvbmcpVlNZU0NBTEwzMl9WU1lTQ0FMTCkKICNkZWZpbmUgRklYQUREUl9VU0VSX0VORAkoRklYQUREUl9VU0VSX1NUQVJUICsgUEFHRV9TSVpFKQogCi0jZGVmaW5lIF9fZml4X3RvX3ZpcnQoeCkJKEZJWEFERFJfVE9QIC0gKCh4KSA8PCBQQUdFX1NISUZUKSkKLQotZXh0ZXJuIHZvaWQgX190aGlzX2ZpeG1hcF9kb2VzX25vdF9leGlzdCh2b2lkKTsKLQotLyoKLSAqICdpbmRleCB0byBhZGRyZXNzJyB0cmFuc2xhdGlvbi4gSWYgYW55b25lIHRyaWVzIHRvIHVzZSB0aGUgaWR4Ci0gKiBkaXJlY3RseSB3aXRob3V0IHRyYW5zbGF0aW9uLCB3ZSBjYXRjaCB0aGUgYnVnIHdpdGggYSBOVUxMLWRlZmVyZW5jZQotICoga2VybmVsIG9vcHMuIElsbGVnYWwgcmFuZ2VzIG9mIGluY29taW5nIGluZGljZXMgYXJlIGNhdWdodCB0b28uCi0gKi8KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgbG9uZyBmaXhfdG9fdmlydChjb25zdCB1bnNpZ25lZCBpbnQgaWR4KQotewotCS8qCi0JICogdGhpcyBicmFuY2ggZ2V0cyBjb21wbGV0ZWx5IGVsaW1pbmF0ZWQgYWZ0ZXIgaW5saW5pbmcsCi0JICogZXhjZXB0IHdoZW4gc29tZW9uZSB0cmllcyB0byB1c2UgZml4YWRkciBpbmRpY2VzIGluIGFuCi0JICogaWxsZWdhbCB3YXkuIChzdWNoIGFzIG1peGluZyB1cCBhZGRyZXNzIHR5cGVzIG9yIHVzaW5nCi0JICogb3V0LW9mLXJhbmdlIGluZGljZXMpLgotCSAqCi0JICogSWYgaXQgZG9lc24ndCBnZXQgcmVtb3ZlZCwgdGhlIGxpbmtlciB3aWxsIGNvbXBsYWluCi0JICogbG91ZGx5IHdpdGggYSByZWFzb25hYmx5IGNsZWFyIGVycm9yIG1lc3NhZ2UuLgotCSAqLwotCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKQotCQlfX3RoaXNfZml4bWFwX2RvZXNfbm90X2V4aXN0KCk7Ci0KLQlyZXR1cm4gX19maXhfdG9fdmlydChpZHgpOwotfQotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9mdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni9mdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTg0NDQxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20teDg2L2Z0cmFjZS5oCkBAIC0wLDAgKzEsMTQgQEAKKyNpZm5kZWYgX0FTTV9YODZfRlRSQUNFCisjZGVmaW5lIF9BU01fU1BBUkM2NF9GVFJBQ0UKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKyNkZWZpbmUgTUNPVU5UX0FERFIJCSgobG9uZykobWNvdW50KSkKKyNkZWZpbmUgTUNPVU5UX0lOU05fU0laRQk1IC8qIHNpemVvZiBtY291bnQgY2FsbCAqLworCisjaWZuZGVmIF9fQVNTRU1CTFlfXworZXh0ZXJuIHZvaWQgbWNvdW50KHZvaWQpOworI2VuZGlmCisKKyNlbmRpZiAvKiBDT05GSUdfRlRSQUNFICovCisKKyNlbmRpZiAvKiBfQVNNX1g4Nl9GVFJBQ0UgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9nYXJ0LmggYi9pbmNsdWRlL2FzbS14ODYvZ2FydC5oCmluZGV4IDkwOTU4ZWQuLjMzYjlhZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9nYXJ0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2dhcnQuaApAQCAtMSwzNCArMSw3MiBAQAotI2lmbmRlZiBfQVNNX1g4NjY0X0lPTU1VX0gKLSNkZWZpbmUgX0FTTV9YODY2NF9JT01NVV9IIDEKKyNpZm5kZWYgX0FTTV9YODY2NF9HQVJUX0gKKyNkZWZpbmUgX0FTTV9YODY2NF9HQVJUX0ggMQogCi1leHRlcm4gdm9pZCBwY2lfaW9tbXVfc2h1dGRvd24odm9pZCk7Ci1leHRlcm4gdm9pZCBub19pb21tdV9pbml0KHZvaWQpOwotZXh0ZXJuIGludCBmb3JjZV9pb21tdSwgbm9faW9tbXU7Ci1leHRlcm4gaW50IGlvbW11X2RldGVjdGVkOwotI2lmZGVmIENPTkZJR19HQVJUX0lPTU1VCi1leHRlcm4gdm9pZCBnYXJ0X2lvbW11X2luaXQodm9pZCk7Ci1leHRlcm4gdm9pZCBnYXJ0X2lvbW11X3NodXRkb3duKHZvaWQpOwotZXh0ZXJuIHZvaWQgX19pbml0IGdhcnRfcGFyc2Vfb3B0aW9ucyhjaGFyICopOwotZXh0ZXJuIHZvaWQgZWFybHlfZ2FydF9pb21tdV9jaGVjayh2b2lkKTsKLWV4dGVybiB2b2lkIGdhcnRfaW9tbXVfaG9sZV9pbml0KHZvaWQpOworI2luY2x1ZGUgPGFzbS9lODIwLmg+CisjaW5jbHVkZSA8YXNtL2lvbW11Lmg+CisKK2V4dGVybiB2b2lkIHNldF91cF9nYXJ0X3Jlc3VtZSh1MzIsIHUzMik7CisKIGV4dGVybiBpbnQgZmFsbGJhY2tfYXBlcl9vcmRlcjsKIGV4dGVybiBpbnQgZmFsbGJhY2tfYXBlcl9mb3JjZTsKLWV4dGVybiBpbnQgZ2FydF9pb21tdV9hcGVydHVyZTsKLWV4dGVybiBpbnQgZ2FydF9pb21tdV9hcGVydHVyZV9hbGxvd2VkOwotZXh0ZXJuIGludCBnYXJ0X2lvbW11X2FwZXJ0dXJlX2Rpc2FibGVkOwogZXh0ZXJuIGludCBmaXhfYXBlcnR1cmU7Ci0jZWxzZQotI2RlZmluZSBnYXJ0X2lvbW11X2FwZXJ0dXJlIDAKLSNkZWZpbmUgZ2FydF9pb21tdV9hcGVydHVyZV9hbGxvd2VkIDAKIAotc3RhdGljIGlubGluZSB2b2lkIGVhcmx5X2dhcnRfaW9tbXVfY2hlY2sodm9pZCkKKy8qIFBURSBiaXRzLiAqLworI2RlZmluZSBHUFRFX1ZBTElECTEKKyNkZWZpbmUgR1BURV9DT0hFUkVOVAkyCisKKy8qIEFwZXJ0dXJlIGNvbnRyb2wgcmVnaXN0ZXIgYml0cy4gKi8KKyNkZWZpbmUgR0FSVEVOCQkoMTw8MCkKKyNkZWZpbmUgRElTR0FSVENQVQkoMTw8NCkKKyNkZWZpbmUgRElTR0FSVElPCSgxPDw1KQorCisvKiBHQVJUIGNhY2hlIGNvbnRyb2wgcmVnaXN0ZXIgYml0cy4gKi8KKyNkZWZpbmUgSU5WR0FSVAkJKDE8PDApCisjZGVmaW5lIEdBUlRQVEVFUlIJKDE8PDEpCisKKy8qIEs4IE9uLWNwdSBHQVJUIHJlZ2lzdGVycyAqLworI2RlZmluZSBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwJMHg5MAorI2RlZmluZSBBTUQ2NF9HQVJUQVBFUlRVUkVCQVNFCTB4OTQKKyNkZWZpbmUgQU1ENjRfR0FSVFRBQkxFQkFTRQkweDk4CisjZGVmaW5lIEFNRDY0X0dBUlRDQUNIRUNUTAkweDljCisjZGVmaW5lIEFNRDY0X0dBUlRFTgkJKDE8PDApCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBlbmFibGVfZ2FydF90cmFuc2xhdGlvbihzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1NjQgYWRkcikKIHsKKwl1MzIgdG1wLCBjdGw7CisKKyAgICAgICAgLyogYWRkcmVzcyBvZiB0aGUgbWFwcGluZ3MgdGFibGUgKi8KKyAgICAgICAgYWRkciA+Pj0gMTI7CisgICAgICAgIHRtcCA9ICh1MzIpIGFkZHI8PDQ7CisgICAgICAgIHRtcCAmPSB+MHhmOworICAgICAgICBwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVFRBQkxFQkFTRSwgdG1wKTsKKworICAgICAgICAvKiBFbmFibGUgR0FSVCB0cmFuc2xhdGlvbiBmb3IgdGhpcyBoYW1tZXIuICovCisgICAgICAgIHBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJmN0bCk7CisgICAgICAgIGN0bCB8PSBHQVJURU47CisgICAgICAgIGN0bCAmPSB+KERJU0dBUlRDUFUgfCBESVNHQVJUSU8pOworICAgICAgICBwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCBjdGwpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZ2FydF9pb21tdV9zaHV0ZG93bih2b2lkKQorc3RhdGljIGlubGluZSBpbnQgYXBlcnR1cmVfdmFsaWQodTY0IGFwZXJfYmFzZSwgdTMyIGFwZXJfc2l6ZSwgdTMyIG1pbl9zaXplKQogewotfQorCWlmICghYXBlcl9iYXNlKQorCQlyZXR1cm4gMDsKIAotI2VuZGlmCisJaWYgKGFwZXJfYmFzZSArIGFwZXJfc2l6ZSA+IDB4MTAwMDAwMDAwVUxMKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQXBlcnR1cmUgYmV5b25kIDRHQi4gSWdub3JpbmcuXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmIChlODIwX2FueV9tYXBwZWQoYXBlcl9iYXNlLCBhcGVyX2Jhc2UgKyBhcGVyX3NpemUsIEU4MjBfUkFNKSkgeworCQlwcmludGsoS0VSTl9FUlIgIkFwZXJ0dXJlIHBvaW50aW5nIHRvIGU4MjAgUkFNLiBJZ25vcmluZy5cbiIpOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKGFwZXJfc2l6ZSA8IG1pbl9zaXplKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQXBlcnR1cmUgdG9vIHNtYWxsICglZCBNQikgdGhhbiAoJWQgTUIpXG4iLAorCQkJCSBhcGVyX3NpemU+PjIwLCBtaW5fc2l6ZT4+MjApOworCQlyZXR1cm4gMDsKKwl9CisKKwlyZXR1cm4gMTsKK30KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZ2VuYXBpY182NC5oIGIvaW5jbHVkZS9hc20teDg2L2dlbmFwaWNfNjQuaAppbmRleCAxZGU5MzFiLi4wZjg1MDQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZ2VuYXBpY182NC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9nZW5hcGljXzY0LmgKQEAgLTQ0LDQgKzQ0LDYgQEAKIGV4dGVybiB2b2lkIHV2X2NwdV9pbml0KHZvaWQpOwogZXh0ZXJuIGludCB1dl93YWtldXBfc2Vjb25kYXJ5KGludCBwaHlzX2FwaWNpZCwgdW5zaWduZWQgaW50IHN0YXJ0X3JpcCk7CiAKK2V4dGVybiB2b2lkIHNldHVwX2FwaWNfcm91dGluZyh2b2lkKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaGFyZGlycS5oIGIvaW5jbHVkZS9hc20teDg2L2hhcmRpcnEuaAppbmRleCAzMTQ0MzRkLi4wMDA3ODdkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaGFyZGlycS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9oYXJkaXJxLmgKQEAgLTMsMyArMyw5IEBACiAjZWxzZQogIyBpbmNsdWRlICJoYXJkaXJxXzY0LmgiCiAjZW5kaWYKKworZXh0ZXJuIHU2NCBhcmNoX2lycV9zdGF0X2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKKyNkZWZpbmUgYXJjaF9pcnFfc3RhdF9jcHUJYXJjaF9pcnFfc3RhdF9jcHUKKworZXh0ZXJuIHU2NCBhcmNoX2lycV9zdGF0KHZvaWQpOworI2RlZmluZSBhcmNoX2lycV9zdGF0CQlhcmNoX2lycV9zdGF0CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaGlnaG1lbS5oIGIvaW5jbHVkZS9hc20teDg2L2hpZ2htZW0uaAppbmRleCBlMTUzZjNiLi40NTE0YjE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaGlnaG1lbS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9oaWdobWVtLmgKQEAgLTc0LDYgKzc0LDkgQEAKIAogI2RlZmluZSBmbHVzaF9jYWNoZV9rbWFwcygpCWRvIHsgfSB3aGlsZSAoMCkKIAorZXh0ZXJuIHZvaWQgYWRkX2hpZ2hwYWdlc193aXRoX2FjdGl2ZV9yZWdpb25zKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQl1bnNpZ25lZCBsb25nIGVuZF9wZm4pOworCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwogCiAjZW5kaWYgLyogX0FTTV9ISUdITUVNX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9ocGV0LmggYi9pbmNsdWRlL2FzbS14ODYvaHBldC5oCmluZGV4IDZhOWI0YWMuLjgyZjFhYzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9ocGV0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2hwZXQuaApAQCAtODYsOCArODYsOCBAQAogI2Vsc2UgLyogQ09ORklHX0hQRVRfVElNRVIgKi8KIAogc3RhdGljIGlubGluZSBpbnQgaHBldF9lbmFibGUodm9pZCkgeyByZXR1cm4gMDsgfQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGhwZXRfcmVhZGwodW5zaWduZWQgbG9uZyBhKSB7IHJldHVybiAwOyB9CiBzdGF0aWMgaW5saW5lIGludCBpc19ocGV0X2VuYWJsZWQodm9pZCkgeyByZXR1cm4gMDsgfQorI2RlZmluZSBocGV0X3JlYWRsKGEpIDAKIAogI2VuZGlmCiAjZW5kaWYgLyogQVNNX1g4Nl9IUEVUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9od19pcnEuaCBiL2luY2x1ZGUvYXNtLXg4Ni9od19pcnEuaAppbmRleCBiZjAyNTM5Li43N2JhNTFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaHdfaXJxLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2h3X2lycS5oCkBAIC0xLDUgKzEsMTA3IEBACisjaWZuZGVmIF9BU01fSFdfSVJRX0gKKyNkZWZpbmUgX0FTTV9IV19JUlFfSAorCisvKgorICogKEMpIDE5OTIsIDE5OTMgTGludXMgVG9ydmFsZHMsIChDKSAxOTk3IEluZ28gTW9sbmFyCisgKgorICogbW92ZWQgc29tZSBvZiB0aGUgb2xkIGFyY2gvaTM4Ni9rZXJuZWwvaXJxLmggdG8gaGVyZS4gVlkKKyAqCisgKiBJUlEvSVBJIGNoYW5nZXMgdGFrZW4gZnJvbSB3b3JrIGJ5IFRob21hcyBSYWRrZQorICogPHRvbXNvZnRAaW5mb3JtYXRpay50dS1jaGVtbml0ei5kZT4KKyAqCisgKiBoYWNrZWQgYnkgQW5kaSBLbGVlbiBmb3IgeDg2LTY0LgorICogdW5pZmllZCBieSB0Z2x4CisgKi8KKworI2luY2x1ZGUgPGFzbS9pcnFfdmVjdG9ycy5oPgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgvcHJvZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorCisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGFzbS9pcnEuaD4KKyNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KKworI2RlZmluZSBwbGF0Zm9ybV9sZWdhY3lfaXJxKGlycSkJKChpcnEpIDwgMTYpCisKKy8qIEludGVycnVwdCBoYW5kbGVycyByZWdpc3RlcmVkIGR1cmluZyBpbml0X0lSUSAqLworZXh0ZXJuIHZvaWQgYXBpY190aW1lcl9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gdm9pZCBlcnJvcl9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gdm9pZCBzcHVyaW91c19pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gdm9pZCB0aGVybWFsX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIHJlc2NoZWR1bGVfaW50ZXJydXB0KHZvaWQpOworCitleHRlcm4gdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0MCh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0MSh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Mih2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Myh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0NCh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0NSh2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Nih2b2lkKTsKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Nyh2b2lkKTsKKworZXh0ZXJuIHZvaWQgaXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gdm9pZCB0aHJlc2hvbGRfaW50ZXJydXB0KHZvaWQpOworCitleHRlcm4gdm9pZCBjYWxsX2Z1bmN0aW9uX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIGNhbGxfZnVuY3Rpb25fc2luZ2xlX2ludGVycnVwdCh2b2lkKTsKKworLyogUElDIHNwZWNpZmljIGZ1bmN0aW9ucyAqLworZXh0ZXJuIHZvaWQgZGlzYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSk7CitleHRlcm4gdm9pZCBlbmFibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpOworZXh0ZXJuIGludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSk7CitleHRlcm4gdm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKK2V4dGVybiB2b2lkIGluaXRfODI1OUEoaW50IGFlb2kpOworCisvKiBJT0FQSUMgKi8KKyNkZWZpbmUgSU9fQVBJQ19JUlEoeCkgKCgoeCkgPj0gMTYpIHx8ICgoMTw8KHgpKSAmIGlvX2FwaWNfaXJxcykpCitleHRlcm4gdW5zaWduZWQgbG9uZyBpb19hcGljX2lycXM7CisKK2V4dGVybiB2b2lkIGluaXRfVklTV1NfQVBJQ19pcnFzKHZvaWQpOworZXh0ZXJuIHZvaWQgc2V0dXBfSU9fQVBJQyh2b2lkKTsKK2V4dGVybiB2b2lkIGRpc2FibGVfSU9fQVBJQyh2b2lkKTsKK2V4dGVybiB2b2lkIHByaW50X0lPX0FQSUModm9pZCk7CitleHRlcm4gaW50IElPX0FQSUNfZ2V0X1BDSV9pcnFfdmVjdG9yKGludCBidXMsIGludCBzbG90LCBpbnQgZm4pOworZXh0ZXJuIHZvaWQgc2V0dXBfaW9hcGljX2Rlc3Qodm9pZCk7CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CitleHRlcm4gdm9pZCBlbmFibGVfSU9fQVBJQyh2b2lkKTsKKyNlbmRpZgorCisvKiBJUEkgZnVuY3Rpb25zICovCitleHRlcm4gdm9pZCBzZW5kX0lQSV9zZWxmKGludCB2ZWN0b3IpOworZXh0ZXJuIHZvaWQgc2VuZF9JUEkoaW50IGRlc3QsIGludCB2ZWN0b3IpOworCisvKiBTdGF0aXN0aWNzICovCitleHRlcm4gYXRvbWljX3QgaXJxX2Vycl9jb3VudDsKK2V4dGVybiBhdG9taWNfdCBpcnFfbWlzX2NvdW50OworCisvKiBFSVNBICovCitleHRlcm4gdm9pZCBlaXNhX3NldF9sZXZlbF9pcnEodW5zaWduZWQgaW50IGlycSk7CisKKy8qIFZveWFnZXIgZnVuY3Rpb25zICovCitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHZpY19jcGlfaW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCB2aWNfc3lzX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgdmljX2Ntbl9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY190aW1lcl9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY19pbnZhbGlkYXRlX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgcWljX3Jlc2NoZWR1bGVfaW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfZW5hYmxlX2lycV9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY19jYWxsX2Z1bmN0aW9uX2ludGVycnVwdCh2b2lkKTsKKwogI2lmZGVmIENPTkZJR19YODZfMzIKLSMgaW5jbHVkZSAiaHdfaXJxXzMyLmgiCitleHRlcm4gdm9pZCAoKmNvbnN0IGludGVycnVwdFtOUl9JUlFTXSkodm9pZCk7CiAjZWxzZQotIyBpbmNsdWRlICJod19pcnFfNjQuaCIKK3R5cGVkZWYgaW50IHZlY3Rvcl9pcnFfdFtOUl9WRUNUT1JTXTsKK0RFQ0xBUkVfUEVSX0NQVSh2ZWN0b3JfaXJxX3QsIHZlY3Rvcl9pcnEpOworZXh0ZXJuIHNwaW5sb2NrX3QgdmVjdG9yX2xvY2s7CisjZW5kaWYKK2V4dGVybiB2b2lkIHNldHVwX3ZlY3Rvcl9pcnEoaW50IGNwdSk7CisKKyNlbmRpZiAvKiAhQVNTRU1CTFlfICovCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2h3X2lycV8zMi5oIGIvaW5jbHVkZS9hc20teDg2L2h3X2lycV8zMi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODdiMTMyLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9od19pcnFfMzIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLSNpZm5kZWYgX0FTTV9IV19JUlFfSAotI2RlZmluZSBfQVNNX0hXX0lSUV9ICi0KLS8qCi0gKglsaW51eC9pbmNsdWRlL2FzbS9od19pcnEuaAotICoKLSAqCShDKSAxOTkyLCAxOTkzIExpbnVzIFRvcnZhbGRzLCAoQykgMTk5NyBJbmdvIE1vbG5hcgotICoKLSAqCW1vdmVkIHNvbWUgb2YgdGhlIG9sZCBhcmNoL2kzODYva2VybmVsL2lycS5oIHRvIGhlcmUuIFZZCi0gKgotICoJSVJRL0lQSSBjaGFuZ2VzIHRha2VuIGZyb20gd29yayBieSBUaG9tYXMgUmFka2UKLSAqCTx0b21zb2Z0QGluZm9ybWF0aWsudHUtY2hlbW5pdHouZGU+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3Byb2ZpbGUuaD4KLSNpbmNsdWRlIDxhc20vYXRvbWljLmg+Ci0jaW5jbHVkZSA8YXNtL2lycS5oPgotI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgotCi0jZGVmaW5lIE5NSV9WRUNUT1IJCTB4MDIKLQotLyoKLSAqIFZhcmlvdXMgbG93LWxldmVsIGlycSBkZXRhaWxzIG5lZWRlZCBieSBpcnEuYywgcHJvY2Vzcy5jLAotICogdGltZS5jLCBpb19hcGljLmMgYW5kIHNtcC5jCi0gKgotICogSW50ZXJydXB0IGVudHJ5L2V4aXQgY29kZSBhdCBib3RoIEMgYW5kIGFzc2VtYmx5IGxldmVsCi0gKi8KLQotZXh0ZXJuIHZvaWQgKCpjb25zdCBpbnRlcnJ1cHRbTlJfSVJRU10pKHZvaWQpOwotCi0jaWZkZWYgQ09ORklHX1NNUAotdm9pZCByZXNjaGVkdWxlX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIGNhbGxfZnVuY3Rpb25faW50ZXJydXB0KHZvaWQpOwotdm9pZCBjYWxsX2Z1bmN0aW9uX3NpbmdsZV9pbnRlcnJ1cHQodm9pZCk7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotdm9pZCBhcGljX3RpbWVyX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgZXJyb3JfaW50ZXJydXB0KHZvaWQpOwotdm9pZCBzcHVyaW91c19pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIHRoZXJtYWxfaW50ZXJydXB0KHZvaWQpOwotI2RlZmluZSBwbGF0Zm9ybV9sZWdhY3lfaXJxKGlycSkJKChpcnEpIDwgMTYpCi0jZW5kaWYKLQotdm9pZCBkaXNhYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKLXZvaWQgZW5hYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKLWludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSk7Ci12b2lkIG1ha2VfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpOwotdm9pZCBpbml0XzgyNTlBKGludCBhZW9pKTsKLXZvaWQgc2VuZF9JUElfc2VsZihpbnQgdmVjdG9yKTsKLXZvaWQgaW5pdF9WSVNXU19BUElDX2lycXModm9pZCk7Ci12b2lkIHNldHVwX0lPX0FQSUModm9pZCk7Ci12b2lkIGRpc2FibGVfSU9fQVBJQyh2b2lkKTsKLXZvaWQgcHJpbnRfSU9fQVBJQyh2b2lkKTsKLWludCBJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3RvcihpbnQgYnVzLCBpbnQgc2xvdCwgaW50IGZuKTsKLXZvaWQgc2VuZF9JUEkoaW50IGRlc3QsIGludCB2ZWN0b3IpOwotdm9pZCBzZXR1cF9pb2FwaWNfZGVzdCh2b2lkKTsKLQotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOwotCi1leHRlcm4gYXRvbWljX3QgaXJxX2Vycl9jb3VudDsKLWV4dGVybiBhdG9taWNfdCBpcnFfbWlzX2NvdW50OwotCi0jZGVmaW5lIElPX0FQSUNfSVJRKHgpICgoKHgpID49IDE2KSB8fCAoKDE8PCh4KSkgJiBpb19hcGljX2lycXMpKQotCi0jZW5kaWYgLyogX0FTTV9IV19JUlFfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2h3X2lycV82NC5oIGIvaW5jbHVkZS9hc20teDg2L2h3X2lycV82NC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTY1NzgxLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9od19pcnFfNjQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE3NSArMCwwIEBACi0jaWZuZGVmIF9BU01fSFdfSVJRX0gKLSNkZWZpbmUgX0FTTV9IV19JUlFfSAotCi0vKgotICoJbGludXgvaW5jbHVkZS9hc20vaHdfaXJxLmgKLSAqCi0gKgkoQykgMTk5MiwgMTk5MyBMaW51cyBUb3J2YWxkcywgKEMpIDE5OTcgSW5nbyBNb2xuYXIKLSAqCi0gKgltb3ZlZCBzb21lIG9mIHRoZSBvbGQgYXJjaC9pMzg2L2tlcm5lbC9pcnEuaCB0byBoZXJlLiBWWQotICoKLSAqCUlSUS9JUEkgY2hhbmdlcyB0YWtlbiBmcm9tIHdvcmsgYnkgVGhvbWFzIFJhZGtlCi0gKgk8dG9tc29mdEBpbmZvcm1hdGlrLnR1LWNoZW1uaXR6LmRlPgotICoKLSAqCWhhY2tlZCBieSBBbmRpIEtsZWVuIGZvciB4ODYtNjQuCi0gKi8KLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLSNpbmNsdWRlIDxhc20vYXRvbWljLmg+Ci0jaW5jbHVkZSA8YXNtL2lycS5oPgotI2luY2x1ZGUgPGxpbnV4L3Byb2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zbXAuaD4KLSNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KLSNlbmRpZgotCi0jZGVmaW5lIE5NSV9WRUNUT1IJCTB4MDIKLS8qCi0gKiBJRFQgdmVjdG9ycyB1c2FibGUgZm9yIGV4dGVybmFsIGludGVycnVwdCBzb3VyY2VzIHN0YXJ0Ci0gKiBhdCAweDIwOgotICovCi0jZGVmaW5lIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgkweDIwCi0KLSNkZWZpbmUgSUEzMl9TWVNDQUxMX1ZFQ1RPUgkweDgwCi0KLQotLyogUmVzZXJ2ZSB0aGUgbG93ZXN0IHVzYWJsZSBwcmlvcml0eSBsZXZlbCAweDIwIC0gMHgyZiBmb3IgdHJpZ2dlcmluZwotICogY2xlYW51cCBhZnRlciBpcnEgbWlncmF0aW9uLgotICovCi0jZGVmaW5lIElSUV9NT1ZFX0NMRUFOVVBfVkVDVE9SCUZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgotCi0vKgotICogVmVjdG9ycyAweDMwLTB4M2YgYXJlIHVzZWQgZm9yIElTQSBpbnRlcnJ1cHRzLgotICovCi0jZGVmaW5lIElSUTBfVkVDVE9SCQkoRklSU1RfRVhURVJOQUxfVkVDVE9SICsgMHgxMCkKLSNkZWZpbmUgSVJRMV9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDEpCi0jZGVmaW5lIElSUTJfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAyKQotI2RlZmluZSBJUlEzX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMykKLSNkZWZpbmUgSVJRNF9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDQpCi0jZGVmaW5lIElSUTVfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA1KQotI2RlZmluZSBJUlE2X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgNikKLSNkZWZpbmUgSVJRN19WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDcpCi0jZGVmaW5lIElSUThfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA4KQotI2RlZmluZSBJUlE5X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgOSkKLSNkZWZpbmUgSVJRMTBfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxMCkKLSNkZWZpbmUgSVJRMTFfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxMSkKLSNkZWZpbmUgSVJRMTJfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxMikKLSNkZWZpbmUgSVJRMTNfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxMykKLSNkZWZpbmUgSVJRMTRfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxNCkKLSNkZWZpbmUgSVJRMTVfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxNSkKLQotLyoKLSAqIFNwZWNpYWwgSVJRIHZlY3RvcnMgdXNlZCBieSB0aGUgU01QIGFyY2hpdGVjdHVyZSwgMHhmMC0weGZmCi0gKgotICogIHNvbWUgb2YgdGhlIGZvbGxvd2luZyB2ZWN0b3JzIGFyZSAncmFyZScsIHRoZXkgYXJlIG1lcmdlZAotICogIGludG8gYSBzaW5nbGUgdmVjdG9yIChDQUxMX0ZVTkNUSU9OX1ZFQ1RPUikgdG8gc2F2ZSB2ZWN0b3Igc3BhY2UuCi0gKiAgVExCLCByZXNjaGVkdWxlIGFuZCBsb2NhbCBBUElDIHZlY3RvcnMgYXJlIHBlcmZvcm1hbmNlLWNyaXRpY2FsLgotICovCi0jZGVmaW5lIFNQVVJJT1VTX0FQSUNfVkVDVE9SCTB4ZmYKLSNkZWZpbmUgRVJST1JfQVBJQ19WRUNUT1IJMHhmZQotI2RlZmluZSBSRVNDSEVEVUxFX1ZFQ1RPUgkweGZkCi0jZGVmaW5lIENBTExfRlVOQ1RJT05fVkVDVE9SCTB4ZmMKLSNkZWZpbmUJQ0FMTF9GVU5DVElPTl9TSU5HTEVfVkVDVE9SCTB4ZmIKLS8qIGZiIGZyZWUgLSBwbGVhc2UgZG9uJ3QgcmVhZGQgS0RCIGhlcmUgYmVjYXVzZSBpdCdzIHVzZWxlc3MKLSAgIChoaW50IC0gdGhpbmsgd2hhdCBhIE5NSSBiaXQgZG9lcyB0byBhIHZlY3RvcikgKi8KLSNkZWZpbmUgVEhFUk1BTF9BUElDX1ZFQ1RPUgkweGZhCi0jZGVmaW5lIFRIUkVTSE9MRF9BUElDX1ZFQ1RPUiAgIDB4ZjkKLS8qIGY4IGZyZWUgKi8KLSNkZWZpbmUgSU5WQUxJREFURV9UTEJfVkVDVE9SX0VORAkweGY3Ci0jZGVmaW5lIElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVAkweGYwCS8qIGYwLWY3IHVzZWQgZm9yIFRMQiBmbHVzaCAqLwotCi0jZGVmaW5lIE5VTV9JTlZBTElEQVRFX1RMQl9WRUNUT1JTCTgKLQotLyoKLSAqIExvY2FsIEFQSUMgdGltZXIgSVJRIHZlY3RvciBpcyBvbiBhIGRpZmZlcmVudCBwcmlvcml0eSBsZXZlbCwKLSAqIHRvIHdvcmsgYXJvdW5kIHRoZSAnbG9zdCBsb2NhbCBpbnRlcnJ1cHQgaWYgbW9yZSB0aGFuIDIgSVJRCi0gKiBzb3VyY2VzIHBlciBsZXZlbCcgZXJyYXRhLgotICovCi0jZGVmaW5lIExPQ0FMX1RJTUVSX1ZFQ1RPUgkweGVmCi0KLS8qCi0gKiBGaXJzdCBBUElDIHZlY3RvciBhdmFpbGFibGUgdG8gZHJpdmVyczogKHZlY3RvcnMgMHgzMC0weGVlKQotICogd2Ugc3RhcnQgYXQgMHg0MSB0byBzcHJlYWQgb3V0IHZlY3RvcnMgZXZlbmx5IGJldHdlZW4gcHJpb3JpdHkKLSAqIGxldmVscy4gKDB4ODAgaXMgdGhlIHN5c2NhbGwgdmVjdG9yKQotICovCi0jZGVmaW5lIEZJUlNUX0RFVklDRV9WRUNUT1IJKElSUTE1X1ZFQ1RPUiArIDIpCi0jZGVmaW5lIEZJUlNUX1NZU1RFTV9WRUNUT1IJMHhlZiAgIC8qIGR1cGxpY2F0ZWQgaW4gaXJxLmggKi8KLQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotCi0vKiBJbnRlcnJ1cHQgaGFuZGxlcnMgcmVnaXN0ZXJlZCBkdXJpbmcgaW5pdF9JUlEgKi8KLXZvaWQgYXBpY190aW1lcl9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIHNwdXJpb3VzX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgZXJyb3JfaW50ZXJydXB0KHZvaWQpOwotdm9pZCByZXNjaGVkdWxlX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIGNhbGxfZnVuY3Rpb25fc2luZ2xlX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgaXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIGludmFsaWRhdGVfaW50ZXJydXB0MCh2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQxKHZvaWQpOwotdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdDIodm9pZCk7Ci12b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Myh2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ0KHZvaWQpOwotdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdDUodm9pZCk7Ci12b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Nih2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ3KHZvaWQpOwotdm9pZCB0aGVybWFsX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgdGhyZXNob2xkX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgaTgyNTRfdGltZXJfcmVzdW1lKHZvaWQpOwotCi10eXBlZGVmIGludCB2ZWN0b3JfaXJxX3RbTlJfVkVDVE9SU107Ci1ERUNMQVJFX1BFUl9DUFUodmVjdG9yX2lycV90LCB2ZWN0b3JfaXJxKTsKLWV4dGVybiB2b2lkIF9fc2V0dXBfdmVjdG9yX2lycShpbnQgY3B1KTsKLWV4dGVybiBzcGlubG9ja190IHZlY3Rvcl9sb2NrOwotCi0vKgotICogVmFyaW91cyBsb3ctbGV2ZWwgaXJxIGRldGFpbHMgbmVlZGVkIGJ5IGlycS5jLCBwcm9jZXNzLmMsCi0gKiB0aW1lLmMsIGlvX2FwaWMuYyBhbmQgc21wLmMKLSAqCi0gKiBJbnRlcnJ1cHQgZW50cnkvZXhpdCBjb2RlIGF0IGJvdGggQyBhbmQgYXNzZW1ibHkgbGV2ZWwKLSAqLwotCi1leHRlcm4gdm9pZCBkaXNhYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKLWV4dGVybiB2b2lkIGVuYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSk7Ci1leHRlcm4gaW50IGk4MjU5QV9pcnFfcGVuZGluZyh1bnNpZ25lZCBpbnQgaXJxKTsKLWV4dGVybiB2b2lkIG1ha2VfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpOwotZXh0ZXJuIHZvaWQgaW5pdF84MjU5QShpbnQgYWVvaSk7Ci1leHRlcm4gdm9pZCBzZW5kX0lQSV9zZWxmKGludCB2ZWN0b3IpOwotZXh0ZXJuIHZvaWQgaW5pdF9WSVNXU19BUElDX2lycXModm9pZCk7Ci1leHRlcm4gdm9pZCBzZXR1cF9JT19BUElDKHZvaWQpOwotZXh0ZXJuIHZvaWQgZW5hYmxlX0lPX0FQSUModm9pZCk7Ci1leHRlcm4gdm9pZCBkaXNhYmxlX0lPX0FQSUModm9pZCk7Ci1leHRlcm4gdm9pZCBwcmludF9JT19BUElDKHZvaWQpOwotZXh0ZXJuIGludCBJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3RvcihpbnQgYnVzLCBpbnQgc2xvdCwgaW50IGZuKTsKLWV4dGVybiB2b2lkIHNlbmRfSVBJKGludCBkZXN0LCBpbnQgdmVjdG9yKTsKLWV4dGVybiB2b2lkIHNldHVwX2lvYXBpY19kZXN0KHZvaWQpOwotZXh0ZXJuIHZvaWQgbmF0aXZlX2luaXRfSVJRKHZvaWQpOwotCi1leHRlcm4gdW5zaWduZWQgbG9uZyBpb19hcGljX2lycXM7Ci0KLWV4dGVybiBhdG9taWNfdCBpcnFfZXJyX2NvdW50OwotZXh0ZXJuIGF0b21pY190IGlycV9taXNfY291bnQ7Ci0KLSNkZWZpbmUgSU9fQVBJQ19JUlEoeCkgKCgoeCkgPj0gMTYpIHx8ICgoMTw8KHgpKSAmIGlvX2FwaWNfaXJxcykpCi0KLSNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0KLSNkZWZpbmUgSVJRX05BTUUyKG5yKSBuciMjX2ludGVycnVwdCh2b2lkKQotI2RlZmluZSBJUlFfTkFNRShucikgSVJRX05BTUUyKElSUSMjbnIpCi0KLS8qCi0gKglTTVAgaGFzIGEgZmV3IHNwZWNpYWwgaW50ZXJydXB0cyBmb3IgSVBJIG1lc3NhZ2VzCi0gKi8KLQotI2RlZmluZSBCVUlMRF9JUlEobnIpCQkJCVwKLQlhc21saW5rYWdlIHZvaWQgSVJRX05BTUUobnIpOwkJXAotCWFzbSgiXG4ucDJhbGlnblxuIgkJCVwKLQkgICAgIklSUSIgI25yICJfaW50ZXJydXB0OlxuXHQiCQlcCi0JICAgICJwdXNoICR+KCIgI25yICIpIDsgIgkJXAotCSAgICAiam1wIGNvbW1vbl9pbnRlcnJ1cHQiKTsKLQotI2RlZmluZSBwbGF0Zm9ybV9sZWdhY3lfaXJxKGlycSkJKChpcnEpIDwgMTYpCi0KLSNlbmRpZgotCi0jZW5kaWYgLyogX0FTTV9IV19JUlFfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2k4MjU5LmggYi9pbmNsdWRlL2FzbS14ODYvaTgyNTkuaAppbmRleCA0NWQ0ZGYzLi4yZjk4ZGY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaTgyNTkuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvaTgyNTkuaApAQCAtNTUsNCArNTUsNiBAQAogCXVkZWxheSgyKTsKIH0KIAorZXh0ZXJuIHN0cnVjdCBpcnFfY2hpcCBpODI1OUFfY2hpcDsKKwogI2VuZGlmCS8qIF9fQVNNX0k4MjU5X0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2lvLmggYi9pbmNsdWRlL2FzbS14ODYvaW8uaAppbmRleCBkNWIxMWY2Li5iZjVkNjI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaW8uaAorKysgYi9pbmNsdWRlL2FzbS14ODYvaW8uaApAQCAtMyw2ICszLDc2IEBACiAKICNkZWZpbmUgQVJDSF9IQVNfSU9SRU1BUF9XQwogCisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKworLyoKKyAqIGVhcmx5X2lvcmVtYXAoKSBhbmQgZWFybHlfaW91bm1hcCgpIGFyZSBmb3IgdGVtcG9yYXJ5IGVhcmx5IGJvb3QtdGltZQorICogbWFwcGluZ3MsIGJlZm9yZSB0aGUgcmVhbCBpb3JlbWFwKCkgaXMgZnVuY3Rpb25hbC4KKyAqIEEgYm9vdC10aW1lIG1hcHBpbmcgaXMgY3VycmVudGx5IGxpbWl0ZWQgdG8gYXQgbW9zdCAxNiBwYWdlcy4KKyAqLworI2lmbmRlZiBfX0FTU0VNQkxZX18KK2V4dGVybiB2b2lkIGVhcmx5X2lvcmVtYXBfaW5pdCh2b2lkKTsKK2V4dGVybiB2b2lkIGVhcmx5X2lvcmVtYXBfY2xlYXIodm9pZCk7CitleHRlcm4gdm9pZCBlYXJseV9pb3JlbWFwX3Jlc2V0KHZvaWQpOworZXh0ZXJuIHZvaWQgKmVhcmx5X2lvcmVtYXAodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CitleHRlcm4gdm9pZCBlYXJseV9pb3VubWFwKHZvaWQgKmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CitleHRlcm4gdm9pZCBfX2lvbWVtICpmaXhfaW9yZW1hcCh1bnNpZ25lZCBpZHgsIHVuc2lnbmVkIGxvbmcgcGh5cyk7CisjZW5kaWYKKworI2RlZmluZSBidWlsZF9tbWlvX3JlYWQobmFtZSwgc2l6ZSwgdHlwZSwgcmVnLCBiYXJyaWVyKSBcCitzdGF0aWMgaW5saW5lIHR5cGUgbmFtZShjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpIFwKK3sgdHlwZSByZXQ7IGFzbSB2b2xhdGlsZSgibW92IiBzaXplICIgJTEsJTAiOiI9IiByZWcgKHJldCkgXAorOiJtIiAoKih2b2xhdGlsZSB0eXBlIF9fZm9yY2UgKilhZGRyKSBiYXJyaWVyKTsgcmV0dXJuIHJldDsgfQorCisjZGVmaW5lIGJ1aWxkX21taW9fd3JpdGUobmFtZSwgc2l6ZSwgdHlwZSwgcmVnLCBiYXJyaWVyKSBcCitzdGF0aWMgaW5saW5lIHZvaWQgbmFtZSh0eXBlIHZhbCwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKSBcCit7IGFzbSB2b2xhdGlsZSgibW92IiBzaXplICIgJTAsJTEiOiA6cmVnICh2YWwpLCBcCisibSIgKCoodm9sYXRpbGUgdHlwZSBfX2ZvcmNlICopYWRkcikgYmFycmllcik7IH0KKworYnVpbGRfbW1pb19yZWFkKHJlYWRiLCAiYiIsIHVuc2lnbmVkIGNoYXIsICJxIiwgOiJtZW1vcnkiKQorYnVpbGRfbW1pb19yZWFkKHJlYWR3LCAidyIsIHVuc2lnbmVkIHNob3J0LCAiciIsIDoibWVtb3J5IikKK2J1aWxkX21taW9fcmVhZChyZWFkbCwgImwiLCB1bnNpZ25lZCBpbnQsICJyIiwgOiJtZW1vcnkiKQorCitidWlsZF9tbWlvX3JlYWQoX19yZWFkYiwgImIiLCB1bnNpZ25lZCBjaGFyLCAicSIsICkKK2J1aWxkX21taW9fcmVhZChfX3JlYWR3LCAidyIsIHVuc2lnbmVkIHNob3J0LCAiciIsICkKK2J1aWxkX21taW9fcmVhZChfX3JlYWRsLCAibCIsIHVuc2lnbmVkIGludCwgInIiLCApCisKK2J1aWxkX21taW9fd3JpdGUod3JpdGViLCAiYiIsIHVuc2lnbmVkIGNoYXIsICJxIiwgOiJtZW1vcnkiKQorYnVpbGRfbW1pb193cml0ZSh3cml0ZXcsICJ3IiwgdW5zaWduZWQgc2hvcnQsICJyIiwgOiJtZW1vcnkiKQorYnVpbGRfbW1pb193cml0ZSh3cml0ZWwsICJsIiwgdW5zaWduZWQgaW50LCAiciIsIDoibWVtb3J5IikKKworYnVpbGRfbW1pb193cml0ZShfX3dyaXRlYiwgImIiLCB1bnNpZ25lZCBjaGFyLCAicSIsICkKK2J1aWxkX21taW9fd3JpdGUoX193cml0ZXcsICJ3IiwgdW5zaWduZWQgc2hvcnQsICJyIiwgKQorYnVpbGRfbW1pb193cml0ZShfX3dyaXRlbCwgImwiLCB1bnNpZ25lZCBpbnQsICJyIiwgKQorCisjZGVmaW5lIHJlYWRiX3JlbGF4ZWQoYSkgX19yZWFkYihhKQorI2RlZmluZSByZWFkd19yZWxheGVkKGEpIF9fcmVhZHcoYSkKKyNkZWZpbmUgcmVhZGxfcmVsYXhlZChhKSBfX3JlYWRsKGEpCisjZGVmaW5lIF9fcmF3X3JlYWRiIF9fcmVhZGIKKyNkZWZpbmUgX19yYXdfcmVhZHcgX19yZWFkdworI2RlZmluZSBfX3Jhd19yZWFkbCBfX3JlYWRsCisKKyNkZWZpbmUgX19yYXdfd3JpdGViIF9fd3JpdGViCisjZGVmaW5lIF9fcmF3X3dyaXRldyBfX3dyaXRldworI2RlZmluZSBfX3Jhd193cml0ZWwgX193cml0ZWwKKworI2RlZmluZSBtbWlvd2IoKSBiYXJyaWVyKCkKKworI2lmZGVmIENPTkZJR19YODZfNjQKK2J1aWxkX21taW9fcmVhZChyZWFkcSwgInEiLCB1bnNpZ25lZCBsb25nLCAiciIsIDoibWVtb3J5IikKK2J1aWxkX21taW9fcmVhZChfX3JlYWRxLCAicSIsIHVuc2lnbmVkIGxvbmcsICJyIiwgKQorYnVpbGRfbW1pb193cml0ZSh3cml0ZXEsICJxIiwgdW5zaWduZWQgbG9uZywgInIiLCA6Im1lbW9yeSIpCitidWlsZF9tbWlvX3dyaXRlKF9fd3JpdGVxLCAicSIsIHVuc2lnbmVkIGxvbmcsICJyIiwgKQorCisjZGVmaW5lIHJlYWRxX3JlbGF4ZWQoYSkgX19yZWFkcShhKQorI2RlZmluZSBfX3Jhd19yZWFkcSBfX3JlYWRxCisjZGVmaW5lIF9fcmF3X3dyaXRlcSB3cml0ZXEKKworLyogTGV0IHBlb3BsZSBrbm93IHdlIGhhdmUgdGhlbSAqLworI2RlZmluZSByZWFkcSByZWFkcQorI2RlZmluZSB3cml0ZXEgd3JpdGVxCisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19YODZfMzIKICMgaW5jbHVkZSAiaW9fMzIuaCIKICNlbHNlCkBAIC0xNiw0ICs4NiwxNyBAQAogCQkJCXVuc2lnbmVkIGxvbmcgcHJvdF92YWwpOwogZXh0ZXJuIHZvaWQgX19pb21lbSAqaW9yZW1hcF93Yyh1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKTsKIAorLyoKKyAqIGVhcmx5X2lvcmVtYXAoKSBhbmQgZWFybHlfaW91bm1hcCgpIGFyZSBmb3IgdGVtcG9yYXJ5IGVhcmx5IGJvb3QtdGltZQorICogbWFwcGluZ3MsIGJlZm9yZSB0aGUgcmVhbCBpb3JlbWFwKCkgaXMgZnVuY3Rpb25hbC4KKyAqIEEgYm9vdC10aW1lIG1hcHBpbmcgaXMgY3VycmVudGx5IGxpbWl0ZWQgdG8gYXQgbW9zdCAxNiBwYWdlcy4KKyAqLworZXh0ZXJuIHZvaWQgZWFybHlfaW9yZW1hcF9pbml0KHZvaWQpOworZXh0ZXJuIHZvaWQgZWFybHlfaW9yZW1hcF9jbGVhcih2b2lkKTsKK2V4dGVybiB2b2lkIGVhcmx5X2lvcmVtYXBfcmVzZXQodm9pZCk7CitleHRlcm4gdm9pZCAqZWFybHlfaW9yZW1hcCh1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiB2b2lkIGVhcmx5X2lvdW5tYXAodm9pZCAqYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiB2b2lkIF9faW9tZW0gKmZpeF9pb3JlbWFwKHVuc2lnbmVkIGlkeCwgdW5zaWduZWQgbG9uZyBwaHlzKTsKKworCiAjZW5kaWYgLyogX0FTTV9YODZfSU9fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2lvXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvaW9fMzIuaAppbmRleCAwNDllODFlLi40ZGY0NGVkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaW9fMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvaW9fMzIuaApAQCAtMTIyLDE4ICsxMjIsNiBAQAogZXh0ZXJuIHZvaWQgaW91bm1hcCh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpOwogCiAvKgotICogZWFybHlfaW9yZW1hcCgpIGFuZCBlYXJseV9pb3VubWFwKCkgYXJlIGZvciB0ZW1wb3JhcnkgZWFybHkgYm9vdC10aW1lCi0gKiBtYXBwaW5ncywgYmVmb3JlIHRoZSByZWFsIGlvcmVtYXAoKSBpcyBmdW5jdGlvbmFsLgotICogQSBib290LXRpbWUgbWFwcGluZyBpcyBjdXJyZW50bHkgbGltaXRlZCB0byBhdCBtb3N0IDE2IHBhZ2VzLgotICovCi1leHRlcm4gdm9pZCBlYXJseV9pb3JlbWFwX2luaXQodm9pZCk7Ci1leHRlcm4gdm9pZCBlYXJseV9pb3JlbWFwX2NsZWFyKHZvaWQpOwotZXh0ZXJuIHZvaWQgZWFybHlfaW9yZW1hcF9yZXNldCh2b2lkKTsKLWV4dGVybiB2b2lkICplYXJseV9pb3JlbWFwKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUpOwotZXh0ZXJuIHZvaWQgZWFybHlfaW91bm1hcCh2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpOwotZXh0ZXJuIHZvaWQgX19pb21lbSAqZml4X2lvcmVtYXAodW5zaWduZWQgaWR4LCB1bnNpZ25lZCBsb25nIHBoeXMpOwotCi0vKgogICogSVNBIEkvTyBidXMgbWVtb3J5IGFkZHJlc3NlcyBhcmUgMToxIHdpdGggdGhlIHBoeXNpY2FsIGFkZHJlc3MuCiAgKi8KICNkZWZpbmUgaXNhX3ZpcnRfdG9fYnVzIHZpcnRfdG9fcGh5cwpAQCAtMTQ5LDU1ICsxMzcsNiBAQAogI2RlZmluZSB2aXJ0X3RvX2J1cyB2aXJ0X3RvX3BoeXMKICNkZWZpbmUgYnVzX3RvX3ZpcnQgcGh5c190b192aXJ0CiAKLS8qCi0gKiByZWFkWC93cml0ZVgoKSBhcmUgdXNlZCB0byBhY2Nlc3MgbWVtb3J5IG1hcHBlZCBkZXZpY2VzLiBPbiBzb21lCi0gKiBhcmNoaXRlY3R1cmVzIHRoZSBtZW1vcnkgbWFwcGVkIElPIHN0dWZmIG5lZWRzIHRvIGJlIGFjY2Vzc2VkCi0gKiBkaWZmZXJlbnRseS4gT24gdGhlIHg4NiBhcmNoaXRlY3R1cmUsIHdlIGp1c3QgcmVhZC93cml0ZSB0aGUKLSAqIG1lbW9yeSBsb2NhdGlvbiBkaXJlY3RseS4KLSAqLwotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgcmVhZGIoY29uc3Qgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCXJldHVybiAqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgX19mb3JjZSAqKWFkZHI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgc2hvcnQgcmVhZHcoY29uc3Qgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCXJldHVybiAqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0IF9fZm9yY2UgKilhZGRyOwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCByZWFkbChjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICoodm9sYXRpbGUgdW5zaWduZWQgaW50IF9fZm9yY2UgKikgYWRkcjsKLX0KLQotI2RlZmluZSByZWFkYl9yZWxheGVkKGFkZHIpIHJlYWRiKGFkZHIpCi0jZGVmaW5lIHJlYWR3X3JlbGF4ZWQoYWRkcikgcmVhZHcoYWRkcikKLSNkZWZpbmUgcmVhZGxfcmVsYXhlZChhZGRyKSByZWFkbChhZGRyKQotI2RlZmluZSBfX3Jhd19yZWFkYiByZWFkYgotI2RlZmluZSBfX3Jhd19yZWFkdyByZWFkdwotI2RlZmluZSBfX3Jhd19yZWFkbCByZWFkbAotCi1zdGF0aWMgaW5saW5lIHZvaWQgd3JpdGViKHVuc2lnbmVkIGNoYXIgYiwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCSoodm9sYXRpbGUgdW5zaWduZWQgY2hhciBfX2ZvcmNlICopYWRkciA9IGI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZXcodW5zaWduZWQgc2hvcnQgYiwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCSoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgX19mb3JjZSAqKWFkZHIgPSBiOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVsKHVuc2lnbmVkIGludCBiLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgX19mb3JjZSAqKWFkZHIgPSBiOwotfQotI2RlZmluZSBfX3Jhd193cml0ZWIgd3JpdGViCi0jZGVmaW5lIF9fcmF3X3dyaXRldyB3cml0ZXcKLSNkZWZpbmUgX19yYXdfd3JpdGVsIHdyaXRlbAotCi0jZGVmaW5lIG1taW93YigpCi0KIHN0YXRpYyBpbmxpbmUgdm9pZAogbWVtc2V0X2lvKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgY2hhciB2YWwsIGludCBjb3VudCkKIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pb182NC5oIGIvaW5jbHVkZS9hc20teDg2L2lvXzY0LmgKaW5kZXggMDkzMGJlZC4uZGRkODA1OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2lvXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2lvXzY0LmgKQEAgLTIwNCw3NyArMjA0LDYgQEAKICNkZWZpbmUgdmlydF90b19idXMgdmlydF90b19waHlzCiAjZGVmaW5lIGJ1c190b192aXJ0IHBoeXNfdG9fdmlydAogCi0vKgotICogcmVhZFgvd3JpdGVYKCkgYXJlIHVzZWQgdG8gYWNjZXNzIG1lbW9yeSBtYXBwZWQgZGV2aWNlcy4gT24gc29tZQotICogYXJjaGl0ZWN0dXJlcyB0aGUgbWVtb3J5IG1hcHBlZCBJTyBzdHVmZiBuZWVkcyB0byBiZSBhY2Nlc3NlZAotICogZGlmZmVyZW50bHkuIE9uIHRoZSB4ODYgYXJjaGl0ZWN0dXJlLCB3ZSBqdXN0IHJlYWQvd3JpdGUgdGhlCi0gKiBtZW1vcnkgbG9jYXRpb24gZGlyZWN0bHkuCi0gKi8KLQotc3RhdGljIGlubGluZSBfX3U4IF9fcmVhZGIoY29uc3Qgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCXJldHVybiAqKF9fZm9yY2Ugdm9sYXRpbGUgX191OCAqKWFkZHI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgX191MTYgX19yZWFkdyhjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICooX19mb3JjZSB2b2xhdGlsZSBfX3UxNiAqKWFkZHI7Ci19Ci0KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgX191MzIgX19yZWFkbChjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICooX19mb3JjZSB2b2xhdGlsZSBfX3UzMiAqKWFkZHI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgX191NjQgX19yZWFkcShjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICooX19mb3JjZSB2b2xhdGlsZSBfX3U2NCAqKWFkZHI7Ci19Ci0KLSNkZWZpbmUgcmVhZGIoeCkgX19yZWFkYih4KQotI2RlZmluZSByZWFkdyh4KSBfX3JlYWR3KHgpCi0jZGVmaW5lIHJlYWRsKHgpIF9fcmVhZGwoeCkKLSNkZWZpbmUgcmVhZHEoeCkgX19yZWFkcSh4KQotI2RlZmluZSByZWFkYl9yZWxheGVkKGEpIHJlYWRiKGEpCi0jZGVmaW5lIHJlYWR3X3JlbGF4ZWQoYSkgcmVhZHcoYSkKLSNkZWZpbmUgcmVhZGxfcmVsYXhlZChhKSByZWFkbChhKQotI2RlZmluZSByZWFkcV9yZWxheGVkKGEpIHJlYWRxKGEpCi0jZGVmaW5lIF9fcmF3X3JlYWRiIHJlYWRiCi0jZGVmaW5lIF9fcmF3X3JlYWR3IHJlYWR3Ci0jZGVmaW5lIF9fcmF3X3JlYWRsIHJlYWRsCi0jZGVmaW5lIF9fcmF3X3JlYWRxIHJlYWRxCi0KLSNkZWZpbmUgbW1pb3diKCkKLQotc3RhdGljIGlubGluZSB2b2lkIF9fd3JpdGVsKF9fdTMyIGIsIHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQkqKF9fZm9yY2Ugdm9sYXRpbGUgX191MzIgKilhZGRyID0gYjsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIF9fd3JpdGVxKF9fdTY0IGIsIHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQkqKF9fZm9yY2Ugdm9sYXRpbGUgX191NjQgKilhZGRyID0gYjsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIF9fd3JpdGViKF9fdTggYiwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCSooX19mb3JjZSB2b2xhdGlsZSBfX3U4ICopYWRkciA9IGI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBfX3dyaXRldyhfX3UxNiBiLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JKihfX2ZvcmNlIHZvbGF0aWxlIF9fdTE2ICopYWRkciA9IGI7Ci19Ci0KLSNkZWZpbmUgd3JpdGVxKHZhbCwgYWRkcikgX193cml0ZXEoKHZhbCksIChhZGRyKSkKLSNkZWZpbmUgd3JpdGVsKHZhbCwgYWRkcikgX193cml0ZWwoKHZhbCksIChhZGRyKSkKLSNkZWZpbmUgd3JpdGV3KHZhbCwgYWRkcikgX193cml0ZXcoKHZhbCksIChhZGRyKSkKLSNkZWZpbmUgd3JpdGViKHZhbCwgYWRkcikgX193cml0ZWIoKHZhbCksIChhZGRyKSkKLSNkZWZpbmUgX19yYXdfd3JpdGViIHdyaXRlYgotI2RlZmluZSBfX3Jhd193cml0ZXcgd3JpdGV3Ci0jZGVmaW5lIF9fcmF3X3dyaXRlbCB3cml0ZWwKLSNkZWZpbmUgX19yYXdfd3JpdGVxIHdyaXRlcQotCiB2b2lkIF9fbWVtY3B5X2Zyb21pbyh2b2lkICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkKTsKIHZvaWQgX19tZW1jcHlfdG9pbyh1bnNpZ25lZCBsb25nLCBjb25zdCB2b2lkICosIHVuc2lnbmVkKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2lvX2FwaWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pb19hcGljLmgKaW5kZXggZDU5M2UxNC4uMTRmODJiYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2lvX2FwaWMuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvaW9fYXBpYy5oCkBAIC0xMSw2ICsxMSwxNSBAQAogICogQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwIEluZ28gTW9sbmFyCiAgKi8KIAorLyogSS9PIFVuaXQgUmVkaXJlY3Rpb24gVGFibGUgKi8KKyNkZWZpbmUgSU9fQVBJQ19SRURJUl9WRUNUT1JfTUFTSwkweDAwMEZGCisjZGVmaW5lIElPX0FQSUNfUkVESVJfREVTVF9MT0dJQ0FMCTB4MDA4MDAKKyNkZWZpbmUgSU9fQVBJQ19SRURJUl9ERVNUX1BIWVNJQ0FMCTB4MDAwMDAKKyNkZWZpbmUgSU9fQVBJQ19SRURJUl9TRU5EX1BFTkRJTkcJKDEgPDwgMTIpCisjZGVmaW5lIElPX0FQSUNfUkVESVJfUkVNT1RFX0lSUgkoMSA8PCAxNCkKKyNkZWZpbmUgSU9fQVBJQ19SRURJUl9MRVZFTF9UUklHR0VSCSgxIDw8IDE1KQorI2RlZmluZSBJT19BUElDX1JFRElSX01BU0tFRAkJKDEgPDwgMTYpCisKIC8qCiAgKiBUaGUgc3RydWN0dXJlIG9mIHRoZSBJTy1BUElDOgogICovCkBAIC0xMTIsMjEgKzEyMSwzMiBAQAogCiAjZGVmaW5lIE1QX01BWF9JT0FQSUNfUElOIDEyNwogCi1zdHJ1Y3QgbXBfaW9hcGljX3JvdXRpbmcgewotCWludCBhcGljX2lkOwotCWludCBnc2lfYmFzZTsKLQlpbnQgZ3NpX2VuZDsKLQlERUNMQVJFX0JJVE1BUChwaW5fcHJvZ3JhbW1lZCwgTVBfTUFYX0lPQVBJQ19QSU4gKyAxKTsKK3N0cnVjdCBtcF9jb25maWdfaW9hcGljIHsKKwl1bnNpZ25lZCBsb25nIG1wX2FwaWNhZGRyOworCXVuc2lnbmVkIGludCBtcF9hcGljaWQ7CisJdW5zaWduZWQgY2hhciBtcF90eXBlOworCXVuc2lnbmVkIGNoYXIgbXBfYXBpY3ZlcjsKKwl1bnNpZ25lZCBjaGFyIG1wX2ZsYWdzOworfTsKKworc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgeworCXVuc2lnbmVkIGludCBtcF9kc3RhcGljOworCXVuc2lnbmVkIGNoYXIgbXBfdHlwZTsKKwl1bnNpZ25lZCBjaGFyIG1wX2lycXR5cGU7CisJdW5zaWduZWQgc2hvcnQgbXBfaXJxZmxhZzsKKwl1bnNpZ25lZCBjaGFyIG1wX3NyY2J1czsKKwl1bnNpZ25lZCBjaGFyIG1wX3NyY2J1c2lycTsKKwl1bnNpZ25lZCBjaGFyIG1wX2RzdGlycTsKIH07CiAKIC8qIEkvTyBBUElDIGVudHJpZXMgKi8KLWV4dGVybiBzdHJ1Y3QgbXBjX2NvbmZpZ19pb2FwaWMgbXBfaW9hcGljc1tNQVhfSU9fQVBJQ1NdOworZXh0ZXJuIHN0cnVjdCBtcF9jb25maWdfaW9hcGljIG1wX2lvYXBpY3NbTUFYX0lPX0FQSUNTXTsKIAogLyogIyBvZiBNUCBJUlEgc291cmNlIGVudHJpZXMgKi8KIGV4dGVybiBpbnQgbXBfaXJxX2VudHJpZXM7CiAKIC8qIE1QIElSUSBzb3VyY2UgZW50cmllcyAqLwotZXh0ZXJuIHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyBtcF9pcnFzW01BWF9JUlFfU09VUkNFU107CitleHRlcm4gc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgbXBfaXJxc1tNQVhfSVJRX1NPVVJDRVNdOwogCiAvKiBub24tMCBpZiBkZWZhdWx0ICh0YWJsZS1sZXNzKSBNUCBjb25maWd1cmF0aW9uICovCiBleHRlcm4gaW50IG1wY19kZWZhdWx0X3R5cGU7CkBAIC0xMzcsNiArMTU3LDkgQEAKIC8qIDEgaWYgIm5vYXBpYyIgYm9vdCBvcHRpb24gcGFzc2VkICovCiBleHRlcm4gaW50IHNraXBfaW9hcGljX3NldHVwOwogCisvKiAxIGlmIHRoZSB0aW1lciBJUlEgdXNlcyB0aGUgJzgyNTlBIFZpcnR1YWwgV2lyZScgbW9kZSAqLworZXh0ZXJuIGludCB0aW1lcl90aHJvdWdoXzgyNTk7CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBkaXNhYmxlX2lvYXBpY19zZXR1cCh2b2lkKQogewogCXNraXBfaW9hcGljX3NldHVwID0gMTsKQEAgLTE2Miw2ICsxODUsOCBAQAogCiAjZWxzZSAgLyogIUNPTkZJR19YODZfSU9fQVBJQyAqLwogI2RlZmluZSBpb19hcGljX2Fzc2lnbl9wY2lfaXJxcyAwCitzdGF0aWMgY29uc3QgaW50IHRpbWVyX3Rocm91Z2hfODI1OSA9IDA7CitzdGF0aWMgaW5saW5lIHZvaWQgaW9hcGljX2luaXRfbWFwcGluZ3Modm9pZCkgeyB9CiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oCmluZGV4IDA3ODYyZmQuLjA2OGM5YTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oCkBAIC0xLDI5ICsxLDM0IEBACi0jaWZuZGVmIF9BU01fWDg2NjRfR0FSVF9ICi0jZGVmaW5lIF9BU01fWDg2NjRfR0FSVF9IIDEKKyNpZm5kZWYgX0FTTV9YODY2NF9JT01NVV9ICisjZGVmaW5lIF9BU01fWDg2NjRfSU9NTVVfSCAxCiAKIGV4dGVybiB2b2lkIHBjaV9pb21tdV9zaHV0ZG93bih2b2lkKTsKIGV4dGVybiB2b2lkIG5vX2lvbW11X2luaXQodm9pZCk7CiBleHRlcm4gaW50IGZvcmNlX2lvbW11LCBub19pb21tdTsKIGV4dGVybiBpbnQgaW9tbXVfZGV0ZWN0ZWQ7Ci0jaWZkZWYgQ09ORklHX0lPTU1VCisKKyNpZmRlZiBDT05GSUdfR0FSVF9JT01NVQorZXh0ZXJuIGludCBnYXJ0X2lvbW11X2FwZXJ0dXJlOworZXh0ZXJuIGludCBnYXJ0X2lvbW11X2FwZXJ0dXJlX2FsbG93ZWQ7CitleHRlcm4gaW50IGdhcnRfaW9tbXVfYXBlcnR1cmVfZGlzYWJsZWQ7CisKK2V4dGVybiB2b2lkIGVhcmx5X2dhcnRfaW9tbXVfY2hlY2sodm9pZCk7CiBleHRlcm4gdm9pZCBnYXJ0X2lvbW11X2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBnYXJ0X2lvbW11X3NodXRkb3duKHZvaWQpOwogZXh0ZXJuIHZvaWQgX19pbml0IGdhcnRfcGFyc2Vfb3B0aW9ucyhjaGFyICopOwotZXh0ZXJuIHZvaWQgaW9tbXVfaG9sZV9pbml0KHZvaWQpOwotZXh0ZXJuIGludCBmYWxsYmFja19hcGVyX29yZGVyOwotZXh0ZXJuIGludCBmYWxsYmFja19hcGVyX2ZvcmNlOwotZXh0ZXJuIGludCBpb21tdV9hcGVydHVyZTsKLWV4dGVybiBpbnQgaW9tbXVfYXBlcnR1cmVfYWxsb3dlZDsKLWV4dGVybiBpbnQgaW9tbXVfYXBlcnR1cmVfZGlzYWJsZWQ7Ci1leHRlcm4gaW50IGZpeF9hcGVydHVyZTsKK2V4dGVybiB2b2lkIGdhcnRfaW9tbXVfaG9sZV9pbml0KHZvaWQpOworCiAjZWxzZQotI2RlZmluZSBpb21tdV9hcGVydHVyZSAwCi0jZGVmaW5lIGlvbW11X2FwZXJ0dXJlX2FsbG93ZWQgMAorI2RlZmluZSBnYXJ0X2lvbW11X2FwZXJ0dXJlICAgICAgICAgICAgMAorI2RlZmluZSBnYXJ0X2lvbW11X2FwZXJ0dXJlX2FsbG93ZWQgICAgMAorI2RlZmluZSBnYXJ0X2lvbW11X2FwZXJ0dXJlX2Rpc2FibGVkICAgMQorCitzdGF0aWMgaW5saW5lIHZvaWQgZWFybHlfZ2FydF9pb21tdV9jaGVjayh2b2lkKQoreworfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZ2FydF9pb21tdV9zaHV0ZG93bih2b2lkKQogewogfQotCiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaXBpLmggYi9pbmNsdWRlL2FzbS14ODYvaXBpLmgKaW5kZXggZWNjODBmMy4uMTk2ZDYzYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2lwaS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pcGkuaApAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2h3X2lycS5oPgogI2luY2x1ZGUgPGFzbS9hcGljLmg+CisjaW5jbHVkZSA8YXNtL3NtcC5oPgogCiAvKgogICogdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgZGVhbCB3aXRoIHNlbmRpbmcgSVBJcyBiZXR3ZWVuIENQVXMuCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaXJxLmggYi9pbmNsdWRlL2FzbS14ODYvaXJxLmgKaW5kZXggN2JhOTA1NC4uMWEyOTI1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2lycS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pcnEuaApAQCAtMSw1ICsxLDUwIEBACi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotIyBpbmNsdWRlICJpcnFfMzIuaCIKLSNlbHNlCi0jIGluY2x1ZGUgImlycV82NC5oIgorI2lmbmRlZiBfQVNNX0lSUV9ICisjZGVmaW5lIF9BU01fSVJRX0gKKy8qCisgKgkoQykgMTk5MiwgMTk5MyBMaW51cyBUb3J2YWxkcywgKEMpIDE5OTcgSW5nbyBNb2xuYXIKKyAqCisgKglJUlEvSVBJIGNoYW5nZXMgdGFrZW4gZnJvbSB3b3JrIGJ5IFRob21hcyBSYWRrZQorICoJPHRvbXNvZnRAaW5mb3JtYXRpay50dS1jaGVtbml0ei5kZT4KKyAqLworCisjaW5jbHVkZSA8YXNtL2FwaWNkZWYuaD4KKyNpbmNsdWRlIDxhc20vaXJxX3ZlY3RvcnMuaD4KKworc3RhdGljIGlubGluZSBpbnQgaXJxX2Nhbm9uaWNhbGl6ZShpbnQgaXJxKQoreworCXJldHVybiAoKGlycSA9PSAyKSA/IDkgOiBpcnEpOworfQorCisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCisjIGRlZmluZSBBUkNIX0hBU19OTUlfV0FUQ0hET0cKICNlbmRpZgorCisjaWZkZWYgQ09ORklHXzRLU1RBQ0tTCisgIGV4dGVybiB2b2lkIGlycV9jdHhfaW5pdChpbnQgY3B1KTsKKyAgZXh0ZXJuIHZvaWQgaXJxX2N0eF9leGl0KGludCBjcHUpOworIyBkZWZpbmUgX19BUkNIX0hBU19ET19TT0ZUSVJRCisjZWxzZQorIyBkZWZpbmUgaXJxX2N0eF9pbml0KGNwdSkgZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgaXJxX2N0eF9leGl0KGNwdSkgZG8geyB9IHdoaWxlICgwKQorIyBpZmRlZiBDT05GSUdfWDg2XzY0CisjICBkZWZpbmUgX19BUkNIX0hBU19ET19TT0ZUSVJRCisjIGVuZGlmCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19JUlFCQUxBTkNFCitleHRlcm4gaW50IGlycWJhbGFuY2VfZGlzYWJsZShjaGFyICpzdHIpOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKKyNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+CitleHRlcm4gdm9pZCBmaXh1cF9pcnFzKGNwdW1hc2tfdCBtYXApOworI2VuZGlmCisKK2V4dGVybiB1bnNpZ25lZCBpbnQgZG9fSVJRKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK2V4dGVybiB2b2lkIGluaXRfSVJRKHZvaWQpOworZXh0ZXJuIHZvaWQgbmF0aXZlX2luaXRfSVJRKHZvaWQpOworCisvKiBJbnRlcnJ1cHQgdmVjdG9yIG1hbmFnZW1lbnQgKi8KK2V4dGVybiBERUNMQVJFX0JJVE1BUCh1c2VkX3ZlY3RvcnMsIE5SX1ZFQ1RPUlMpOworCisjZW5kaWYgLyogX0FTTV9JUlFfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2lycV8zMi5oIGIvaW5jbHVkZS9hc20teDg2L2lycV8zMi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjc5ZjMxLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pcnFfMzIuaAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLSNpZm5kZWYgX0FTTV9JUlFfSAotI2RlZmluZSBfQVNNX0lSUV9ICi0KLS8qCi0gKglsaW51eC9pbmNsdWRlL2FzbS9pcnEuaAotICoKLSAqCShDKSAxOTkyLCAxOTkzIExpbnVzIFRvcnZhbGRzLCAoQykgMTk5NyBJbmdvIE1vbG5hcgotICoKLSAqCUlSUS9JUEkgY2hhbmdlcyB0YWtlbiBmcm9tIHdvcmsgYnkgVGhvbWFzIFJhZGtlCi0gKgk8dG9tc29mdEBpbmZvcm1hdGlrLnR1LWNoZW1uaXR6LmRlPgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotLyogaW5jbHVkZSBjb21lcyBmcm9tIG1hY2hpbmUgc3BlY2lmaWMgZGlyZWN0b3J5ICovCi0jaW5jbHVkZSAiaXJxX3ZlY3RvcnMuaCIKLSNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4KLQotc3RhdGljIGlubGluZSBpbnQgaXJxX2Nhbm9uaWNhbGl6ZShpbnQgaXJxKQotewotCXJldHVybiAoKGlycSA9PSAyKSA/IDkgOiBpcnEpOwotfQotCi0jaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCi0jIGRlZmluZSBBUkNIX0hBU19OTUlfV0FUQ0hET0cJCS8qIFNlZSBpbmNsdWRlL2xpbnV4L25taS5oICovCi0jZW5kaWYKLQotI2lmZGVmIENPTkZJR180S1NUQUNLUwotICBleHRlcm4gdm9pZCBpcnFfY3R4X2luaXQoaW50IGNwdSk7Ci0gIGV4dGVybiB2b2lkIGlycV9jdHhfZXhpdChpbnQgY3B1KTsKLSMgZGVmaW5lIF9fQVJDSF9IQVNfRE9fU09GVElSUQotI2Vsc2UKLSMgZGVmaW5lIGlycV9jdHhfaW5pdChjcHUpIGRvIHsgfSB3aGlsZSAoMCkKLSMgZGVmaW5lIGlycV9jdHhfZXhpdChjcHUpIGRvIHsgfSB3aGlsZSAoMCkKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0lSUUJBTEFOQ0UKLWV4dGVybiBpbnQgaXJxYmFsYW5jZV9kaXNhYmxlKGNoYXIgKnN0cik7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQotZXh0ZXJuIHZvaWQgZml4dXBfaXJxcyhjcHVtYXNrX3QgbWFwKTsKLSNlbmRpZgotCi11bnNpZ25lZCBpbnQgZG9fSVJRKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKLXZvaWQgaW5pdF9JUlEodm9pZCk7Ci12b2lkIF9faW5pdCBuYXRpdmVfaW5pdF9JUlEodm9pZCk7Ci0KLS8qIEludGVycnVwdCB2ZWN0b3IgbWFuYWdlbWVudCAqLwotZXh0ZXJuIERFQ0xBUkVfQklUTUFQKHVzZWRfdmVjdG9ycywgTlJfVkVDVE9SUyk7Ci0KLSNlbmRpZiAvKiBfQVNNX0lSUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaXJxXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvaXJxXzY0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4M2QzNWEuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2lycV82NC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotI2lmbmRlZiBfQVNNX0lSUV9ICi0jZGVmaW5lIF9BU01fSVJRX0gKLQotLyoKLSAqCWxpbnV4L2luY2x1ZGUvYXNtL2lycS5oCi0gKgotICoJKEMpIDE5OTIsIDE5OTMgTGludXMgVG9ydmFsZHMsIChDKSAxOTk3IEluZ28gTW9sbmFyCi0gKgotICoJSVJRL0lQSSBjaGFuZ2VzIHRha2VuIGZyb20gd29yayBieSBUaG9tYXMgUmFka2UKLSAqCTx0b21zb2Z0QGluZm9ybWF0aWsudHUtY2hlbW5pdHouZGU+Ci0gKi8KLQotI2RlZmluZSBUSU1FUl9JUlEgMAotCi0vKgotICogMTYgODI1OUEgSVJRJ3MsIDIwOCBwb3RlbnRpYWwgQVBJQyBpbnRlcnJ1cHQgc291cmNlcy4KLSAqIFJpZ2h0IG5vdyB0aGUgQVBJQyBpcyBtb3N0bHkgb25seSB1c2VkIGZvciBTTVAuCi0gKiAyNTYgdmVjdG9ycyBpcyBhbiBhcmNoaXRlY3R1cmFsIGxpbWl0LiAod2UgY2FuIGhhdmUKLSAqIG1vcmUgdGhhbiAyNTYgZGV2aWNlcyB0aGVvcmV0aWNhbGx5LCBidXQgdGhleSB3aWxsCi0gKiBoYXZlIHRvIHVzZSBzaGFyZWQgaW50ZXJydXB0cykKLSAqIFNpbmNlIHZlY3RvcnMgMHgwMC0weDFmIGFyZSB1c2VkL3Jlc2VydmVkIGZvciB0aGUgQ1BVLAotICogdGhlIHVzYWJsZSB2ZWN0b3Igc3BhY2UgaXMgMHgyMC0weGZmICgyMjQgdmVjdG9ycykKLSAqLwotCi0vKgotICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHZlY3RvcnMgc3VwcG9ydGVkIGJ5IHg4Nl82NCBwcm9jZXNzb3JzCi0gKiBpcyBsaW1pdGVkIHRvIDI1Ni4gRm9yIHByb2Nlc3NvcnMgb3RoZXIgdGhhbiB4ODZfNjQsIE5SX1ZFQ1RPUlMKLSAqIHNob3VsZCBiZSBjaGFuZ2VkIGFjY29yZGluZ2x5LgotICovCi0jZGVmaW5lIE5SX1ZFQ1RPUlMgMjU2Ci0KLSNkZWZpbmUgRklSU1RfU1lTVEVNX1ZFQ1RPUgkweGVmICAgLyogZHVwbGljYXRlZCBpbiBod19pcnEuaCAqLwotCi0jZGVmaW5lIE5SX0lSUVMgKE5SX1ZFQ1RPUlMgKyAoMzIgKiBOUl9DUFVTKSkKLSNkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMgTlJfSVJRUwotCi1zdGF0aWMgaW5saW5lIGludCBpcnFfY2Fub25pY2FsaXplKGludCBpcnEpCi17Ci0JcmV0dXJuICgoaXJxID09IDIpID8gOSA6IGlycSk7Ci19Ci0KLSNkZWZpbmUgQVJDSF9IQVNfTk1JX1dBVENIRE9HCQkvKiBTZWUgaW5jbHVkZS9saW51eC9ubWkuaCAqLwotCi0jaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCi0jaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgotZXh0ZXJuIHZvaWQgZml4dXBfaXJxcyhjcHVtYXNrX3QgbWFwKTsKLSNlbmRpZgotCi0jZGVmaW5lIF9fQVJDSF9IQVNfRE9fU09GVElSUSAxCi0KLSNlbmRpZiAvKiBfQVNNX0lSUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaXJxX3ZlY3RvcnMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFfdmVjdG9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwYjFkMWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS14ODYvaXJxX3ZlY3RvcnMuaApAQCAtMCwwICsxLDE3MyBAQAorI2lmbmRlZiBfQVNNX0lSUV9WRUNUT1JTX0gKKyNkZWZpbmUgX0FTTV9JUlFfVkVDVE9SU19ICisKKyNpbmNsdWRlIDxsaW51eC90aHJlYWRzLmg+CisKKyNkZWZpbmUgTk1JX1ZFQ1RPUgkJMHgwMgorCisvKgorICogSURUIHZlY3RvcnMgdXNhYmxlIGZvciBleHRlcm5hbCBpbnRlcnJ1cHQgc291cmNlcyBzdGFydAorICogYXQgMHgyMDoKKyAqLworI2RlZmluZSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IJMHgyMAorCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorIyBkZWZpbmUgU1lTQ0FMTF9WRUNUT1IJCTB4ODAKKyNlbHNlCisjIGRlZmluZSBJQTMyX1NZU0NBTExfVkVDVE9SCTB4ODAKKyNlbmRpZgorCisvKgorICogUmVzZXJ2ZSB0aGUgbG93ZXN0IHVzYWJsZSBwcmlvcml0eSBsZXZlbCAweDIwIC0gMHgyZiBmb3IgdHJpZ2dlcmluZworICogY2xlYW51cCBhZnRlciBpcnEgbWlncmF0aW9uIG9uIDY0IGJpdC4KKyAqLworI2RlZmluZSBJUlFfTU9WRV9DTEVBTlVQX1ZFQ1RPUglGSVJTVF9FWFRFUk5BTF9WRUNUT1IKKworLyoKKyAqIFZlY3RvcnMgMHgyMC0weDJmIGFyZSB1c2VkIGZvciBJU0EgaW50ZXJydXB0cyBvbiAzMiBiaXQuCisgKiBWZWN0b3JzIDB4MzAtMHgzZiBhcmUgdXNlZCBmb3IgSVNBIGludGVycnVwdHMgb24gNjQgYml0LgorICovCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorI2RlZmluZSBJUlEwX1ZFQ1RPUgkJKEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUikKKyNlbHNlCisjZGVmaW5lIElSUTBfVkVDVE9SCQkoRklSU1RfRVhURVJOQUxfVkVDVE9SICsgMHgxMCkKKyNlbmRpZgorI2RlZmluZSBJUlExX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMSkKKyNkZWZpbmUgSVJRMl9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDIpCisjZGVmaW5lIElSUTNfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAzKQorI2RlZmluZSBJUlE0X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgNCkKKyNkZWZpbmUgSVJRNV9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDUpCisjZGVmaW5lIElSUTZfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA2KQorI2RlZmluZSBJUlE3X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgNykKKyNkZWZpbmUgSVJROF9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDgpCisjZGVmaW5lIElSUTlfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA5KQorI2RlZmluZSBJUlExMF9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDEwKQorI2RlZmluZSBJUlExMV9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDExKQorI2RlZmluZSBJUlExMl9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDEyKQorI2RlZmluZSBJUlExM19WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDEzKQorI2RlZmluZSBJUlExNF9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDE0KQorI2RlZmluZSBJUlExNV9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDE1KQorCisvKgorICogU3BlY2lhbCBJUlEgdmVjdG9ycyB1c2VkIGJ5IHRoZSBTTVAgYXJjaGl0ZWN0dXJlLCAweGYwLTB4ZmYKKyAqCisgKiAgc29tZSBvZiB0aGUgZm9sbG93aW5nIHZlY3RvcnMgYXJlICdyYXJlJywgdGhleSBhcmUgbWVyZ2VkCisgKiAgaW50byBhIHNpbmdsZSB2ZWN0b3IgKENBTExfRlVOQ1RJT05fVkVDVE9SKSB0byBzYXZlIHZlY3RvciBzcGFjZS4KKyAqICBUTEIsIHJlc2NoZWR1bGUgYW5kIGxvY2FsIEFQSUMgdmVjdG9ycyBhcmUgcGVyZm9ybWFuY2UtY3JpdGljYWwuCisgKgorICogIFZlY3RvcnMgMHhmMC0weGZhIGFyZSBmcmVlIChyZXNlcnZlZCBmb3IgZnV0dXJlIExpbnV4IHVzZSkuCisgKi8KKyNpZmRlZiBDT05GSUdfWDg2XzMyCisKKyMgZGVmaW5lIFNQVVJJT1VTX0FQSUNfVkVDVE9SCQkweGZmCisjIGRlZmluZSBFUlJPUl9BUElDX1ZFQ1RPUgkJMHhmZQorIyBkZWZpbmUgSU5WQUxJREFURV9UTEJfVkVDVE9SCQkweGZkCisjIGRlZmluZSBSRVNDSEVEVUxFX1ZFQ1RPUgkJMHhmYworIyBkZWZpbmUgQ0FMTF9GVU5DVElPTl9WRUNUT1IJCTB4ZmIKKyMgZGVmaW5lIENBTExfRlVOQ1RJT05fU0lOR0xFX1ZFQ1RPUgkweGZhCisjIGRlZmluZSBUSEVSTUFMX0FQSUNfVkVDVE9SCQkweGYwCisKKyNlbHNlCisKKyNkZWZpbmUgU1BVUklPVVNfQVBJQ19WRUNUT1IJCTB4ZmYKKyNkZWZpbmUgRVJST1JfQVBJQ19WRUNUT1IJCTB4ZmUKKyNkZWZpbmUgUkVTQ0hFRFVMRV9WRUNUT1IJCTB4ZmQKKyNkZWZpbmUgQ0FMTF9GVU5DVElPTl9WRUNUT1IJCTB4ZmMKKyNkZWZpbmUgQ0FMTF9GVU5DVElPTl9TSU5HTEVfVkVDVE9SCTB4ZmIKKyNkZWZpbmUgVEhFUk1BTF9BUElDX1ZFQ1RPUgkJMHhmYQorI2RlZmluZSBUSFJFU0hPTERfQVBJQ19WRUNUT1IJCTB4ZjkKKyNkZWZpbmUgSU5WQUxJREFURV9UTEJfVkVDVE9SX0VORAkweGY3CisjZGVmaW5lIElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVAkweGYwCS8qIGYwLWY3IHVzZWQgZm9yIFRMQiBmbHVzaCAqLworCisjZGVmaW5lIE5VTV9JTlZBTElEQVRFX1RMQl9WRUNUT1JTCTgKKworI2VuZGlmCisKKy8qCisgKiBMb2NhbCBBUElDIHRpbWVyIElSUSB2ZWN0b3IgaXMgb24gYSBkaWZmZXJlbnQgcHJpb3JpdHkgbGV2ZWwsCisgKiB0byB3b3JrIGFyb3VuZCB0aGUgJ2xvc3QgbG9jYWwgaW50ZXJydXB0IGlmIG1vcmUgdGhhbiAyIElSUQorICogc291cmNlcyBwZXIgbGV2ZWwnIGVycmF0YS4KKyAqLworI2RlZmluZSBMT0NBTF9USU1FUl9WRUNUT1IJMHhlZgorCisvKgorICogRmlyc3QgQVBJQyB2ZWN0b3IgYXZhaWxhYmxlIHRvIGRyaXZlcnM6ICh2ZWN0b3JzIDB4MzAtMHhlZSkgd2UKKyAqIHN0YXJ0IGF0IDB4MzEoMHg0MSkgdG8gc3ByZWFkIG91dCB2ZWN0b3JzIGV2ZW5seSBiZXR3ZWVuIHByaW9yaXR5CisgKiBsZXZlbHMuICgweDgwIGlzIHRoZSBzeXNjYWxsIHZlY3RvcikKKyAqLworI2lmZGVmIENPTkZJR19YODZfMzIKKyMgZGVmaW5lIEZJUlNUX0RFVklDRV9WRUNUT1IJMHgzMQorI2Vsc2UKKyMgZGVmaW5lIEZJUlNUX0RFVklDRV9WRUNUT1IJKElSUTE1X1ZFQ1RPUiArIDIpCisjZW5kaWYKKworI2RlZmluZSBOUl9WRUNUT1JTCQkyNTYKKworI2RlZmluZSBGUFVfSVJRCQkJMTMKKworI2RlZmluZQlGSVJTVF9WTTg2X0lSUQkJMworI2RlZmluZSBMQVNUX1ZNODZfSVJRCQkxNQorI2RlZmluZSBpbnZhbGlkX3ZtODZfaXJxKGlycSkJKChpcnEpIDwgMyB8fCAoaXJxKSA+IDE1KQorCisjaWYgIWRlZmluZWQoQ09ORklHX1g4Nl9WT1lBR0VSKQorCisjIGlmIGRlZmluZWQoQ09ORklHX1g4Nl9JT19BUElDKSB8fCBkZWZpbmVkKENPTkZJR19QQVJBVklSVCkgfHwgZGVmaW5lZChDT05GSUdfWDg2X1ZJU1dTKQorCisjICBkZWZpbmUgTlJfSVJRUwkJMjI0CisKKyMgIGlmICgyMjQgPj0gMzIgKiBOUl9DUFVTKQorIyAgIGRlZmluZSBOUl9JUlFfVkVDVE9SUwlOUl9JUlFTCisjICBlbHNlCisjICAgZGVmaW5lIE5SX0lSUV9WRUNUT1JTCSgzMiAqIE5SX0NQVVMpCisjICBlbmRpZgorCisjIGVsc2UgLyogSU9fQVBJQyB8fCBQQVJBVklSVCAqLworCisjICBkZWZpbmUgTlJfSVJRUwkJMTYKKyMgIGRlZmluZSBOUl9JUlFfVkVDVE9SUwlOUl9JUlFTCisKKyMgZW5kaWYKKworI2Vsc2UgLyogIVZJU1dTICYmICFWT1lBR0VSICovCisKKyMgZGVmaW5lIE5SX0lSUVMJCTIyNAorIyBkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMJCU5SX0lSUVMKKworI2VuZGlmIC8qIFZJU1dTICovCisKKy8qIFZveWFnZXIgc3BlY2lmaWMgZGVmaW5lcyAqLworLyogVGhlc2UgZGVmaW5lIHRoZSBDUElzIHdlIHVzZSBpbiBsaW51eCAqLworI2RlZmluZSBWSUNfQ1BJX0xFVkVMMAkJCTAKKyNkZWZpbmUgVklDX0NQSV9MRVZFTDEJCQkxCisvKiBub3cgdGhlIGZha2UgQ1BJcyAqLworI2RlZmluZSBWSUNfVElNRVJfQ1BJCQkJMgorI2RlZmluZSBWSUNfSU5WQUxJREFURV9DUEkJCTMKKyNkZWZpbmUgVklDX1JFU0NIRURVTEVfQ1BJCQk0CisjZGVmaW5lIFZJQ19FTkFCTEVfSVJRX0NQSQkJNQorI2RlZmluZSBWSUNfQ0FMTF9GVU5DVElPTl9DUEkJCTYKKyNkZWZpbmUgVklDX0NBTExfRlVOQ1RJT05fU0lOR0xFX0NQSQk3CisKKy8qIE5vdyB0aGUgUUlDIENQSXM6ICBTaW5jZSB3ZSBkb24ndCBuZWVkIHRoZSB0d28gaW5pdGlhbCBsZXZlbHMsCisgKiB0aGVzZSBhcmUgMiBsZXNzIHRoYW4gdGhlIFZJQyBDUElzICovCisjZGVmaW5lIFFJQ19DUElfT0ZGU0VUCQkJMQorI2RlZmluZSBRSUNfVElNRVJfQ1BJCQkJKFZJQ19USU1FUl9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKKyNkZWZpbmUgUUlDX0lOVkFMSURBVEVfQ1BJCQkoVklDX0lOVkFMSURBVEVfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCisjZGVmaW5lIFFJQ19SRVNDSEVEVUxFX0NQSQkJKFZJQ19SRVNDSEVEVUxFX0NQSSAtIFFJQ19DUElfT0ZGU0VUKQorI2RlZmluZSBRSUNfRU5BQkxFX0lSUV9DUEkJCShWSUNfRU5BQkxFX0lSUV9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKKyNkZWZpbmUgUUlDX0NBTExfRlVOQ1RJT05fQ1BJCQkoVklDX0NBTExfRlVOQ1RJT05fQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCisjZGVmaW5lIFFJQ19DQUxMX0ZVTkNUSU9OX1NJTkdMRV9DUEkJKFZJQ19DQUxMX0ZVTkNUSU9OX1NJTkdMRV9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKKworI2RlZmluZSBWSUNfU1RBUlRfRkFLRV9DUEkJCVZJQ19USU1FUl9DUEkKKyNkZWZpbmUgVklDX0VORF9GQUtFX0NQSQkJVklDX0NBTExfRlVOQ1RJT05fU0lOR0xFX0NQSQorCisvKiB0aGlzIGlzIHRoZSBTWVNfSU5UIENQSS4gKi8KKyNkZWZpbmUgVklDX1NZU19JTlQJCQk4CisjZGVmaW5lIFZJQ19DTU5fSU5UCQkJMTUKKworLyogVGhpcyBpcyB0aGUgYm9vdCBDUEkgZm9yIGFsdGVybmF0ZSBwcm9jZXNzb3JzLiAgSXQgZ2V0cyBvdmVyd3JpdHRlbgorICogYnkgdGhlIGFib3ZlIG9uY2UgdGhlIHN5c3RlbSBoYXMgYWN0aXZhdGVkIGFsbCBhdmFpbGFibGUgcHJvY2Vzc29ycyAqLworI2RlZmluZSBWSUNfQ1BVX0JPT1RfQ1BJCQlWSUNfQ1BJX0xFVkVMMAorI2RlZmluZSBWSUNfQ1BVX0JPT1RfRVJSQVRBX0NQSQkJKFZJQ19DUElfTEVWRUwwICsgOCkKKworCisjZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaXJxZmxhZ3MuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFmbGFncy5oCmluZGV4IGMyNDI1MjcuLjQyNGFjYjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pcnFmbGFncy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFmbGFncy5oCkBAIC0xMTEsMTQgKzExMSwzNSBAQAogI2RlZmluZSBESVNBQkxFX0lOVEVSUlVQVFMoeCkJY2xpCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0CisjZGVmaW5lIFNXQVBHUwlzd2FwZ3MKKy8qCisgKiBDdXJyZW50bHkgcGFyYXZpcnQgY2FuJ3QgaGFuZGxlIHN3YXBncyBuaWNlbHkgd2hlbiB3ZQorICogZG9uJ3QgaGF2ZSBhIHN0YWNrIHdlIGNhbiByZWx5IG9uIChzdWNoIGFzIGEgdXNlciBzcGFjZQorICogc3RhY2spLiAgU28gd2UgZWl0aGVyIGZpbmQgYSB3YXkgYXJvdW5kIHRoZXNlIG9yIGp1c3QgZmF1bHQKKyAqIGFuZCBlbXVsYXRlIGlmIGEgZ3Vlc3QgdHJpZXMgdG8gY2FsbCBzd2FwZ3MgZGlyZWN0bHkuCisgKgorICogRWl0aGVyIHdheSwgdGhpcyBpcyBhIGdvb2Qgd2F5IHRvIGRvY3VtZW50IHRoYXQgd2UgZG9uJ3QKKyAqIGhhdmUgYSByZWxpYWJsZSBzdGFjay4geDg2XzY0IG9ubHkuCisgKi8KKyNkZWZpbmUgU1dBUEdTX1VOU0FGRV9TVEFDSwlzd2FwZ3MKKworI2RlZmluZSBQQVJBVklSVF9BREpVU1RfRVhDRVBUSU9OX0ZSQU1FCS8qICAqLworCiAjZGVmaW5lIElOVEVSUlVQVF9SRVRVUk4JaXJldHEKLSNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTQ0FMTF9SRVQJCQlcCi0JCQltb3ZxCSVnczpwZGFfb2xkcnNwLCAlcnNwOwlcCi0JCQlzd2FwZ3M7CQkJCVwKLQkJCXN5c3JldHE7CisjZGVmaW5lIFVTRVJHU19TWVNSRVQ2NAkJCQlcCisJc3dhcGdzOwkJCQkJXAorCXN5c3JldHE7CisjZGVmaW5lIFVTRVJHU19TWVNSRVQzMgkJCQlcCisJc3dhcGdzOwkJCQkJXAorCXN5c3JldGwKKyNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTRVhJVDMyCQlcCisJc3dhcGdzOwkJCQkJXAorCXN0aTsJCQkJCVwKKwlzeXNleGl0CisKICNlbHNlCiAjZGVmaW5lIElOVEVSUlVQVF9SRVRVUk4JCWlyZXQKLSNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTQ0FMTF9SRVQJc3RpOyBzeXNleGl0CisjZGVmaW5lIEVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQJc3RpOyBzeXNleGl0CiAjZGVmaW5lIEdFVF9DUjBfSU5UT19FQVgJCW1vdmwgJWNyMCwgJWVheAogI2VuZGlmCiAKQEAgLTE2OSwxOCArMTkwLDYgQEAKICNlbHNlCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0Ci0vKgotICogQ3VycmVudGx5IHBhcmF2aXJ0IGNhbid0IGhhbmRsZSBzd2FwZ3MgbmljZWx5IHdoZW4gd2UKLSAqIGRvbid0IGhhdmUgYSBzdGFjayB3ZSBjYW4gcmVseSBvbiAoc3VjaCBhcyBhIHVzZXIgc3BhY2UKLSAqIHN0YWNrKS4gIFNvIHdlIGVpdGhlciBmaW5kIGEgd2F5IGFyb3VuZCB0aGVzZSBvciBqdXN0IGZhdWx0Ci0gKiBhbmQgZW11bGF0ZSBpZiBhIGd1ZXN0IHRyaWVzIHRvIGNhbGwgc3dhcGdzIGRpcmVjdGx5LgotICoKLSAqIEVpdGhlciB3YXksIHRoaXMgaXMgYSBnb29kIHdheSB0byBkb2N1bWVudCB0aGF0IHdlIGRvbid0Ci0gKiBoYXZlIGEgcmVsaWFibGUgc3RhY2suIHg4Nl82NCBvbmx5LgotICovCi0jZGVmaW5lIFNXQVBHU19VTlNBRkVfU1RBQ0sJc3dhcGdzCi0jZGVmaW5lIEFSQ0hfVFJBQ0VfSVJRU19PTgkJY2FsbCB0cmFjZV9oYXJkaXJxc19vbl90aHVuawotI2RlZmluZSBBUkNIX1RSQUNFX0lSUVNfT0ZGCQljYWxsIHRyYWNlX2hhcmRpcnFzX29mZl90aHVuawogI2RlZmluZSBBUkNIX0xPQ0tERVBfU1lTX0VYSVQJCWNhbGwgbG9ja2RlcF9zeXNfZXhpdF90aHVuawogI2RlZmluZSBBUkNIX0xPQ0tERVBfU1lTX0VYSVRfSVJRCVwKIAlUUkFDRV9JUlFTX09OOyBcCkBAIC0xOTIsMjQgKzIwMSw2IEBACiAJVFJBQ0VfSVJRU19PRkY7CiAKICNlbHNlCi0jZGVmaW5lIEFSQ0hfVFJBQ0VfSVJRU19PTgkJCVwKLQlwdXNobCAlZWF4OwkJCQlcCi0JcHVzaGwgJWVjeDsJCQkJXAotCXB1c2hsICVlZHg7CQkJCVwKLQljYWxsIHRyYWNlX2hhcmRpcnFzX29uOwkJCVwKLQlwb3BsICVlZHg7CQkJCVwKLQlwb3BsICVlY3g7CQkJCVwKLQlwb3BsICVlYXg7Ci0KLSNkZWZpbmUgQVJDSF9UUkFDRV9JUlFTX09GRgkJCVwKLQlwdXNobCAlZWF4OwkJCQlcCi0JcHVzaGwgJWVjeDsJCQkJXAotCXB1c2hsICVlZHg7CQkJCVwKLQljYWxsIHRyYWNlX2hhcmRpcnFzX29mZjsJCVwKLQlwb3BsICVlZHg7CQkJCVwKLQlwb3BsICVlY3g7CQkJCVwKLQlwb3BsICVlYXg7Ci0KICNkZWZpbmUgQVJDSF9MT0NLREVQX1NZU19FWElUCQkJXAogCXB1c2hsICVlYXg7CQkJCVwKIAlwdXNobCAlZWN4OwkJCQlcCkBAIC0yMjMsOCArMjE0LDggQEAKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0jICBkZWZpbmUgVFJBQ0VfSVJRU19PTgkJQVJDSF9UUkFDRV9JUlFTX09OCi0jICBkZWZpbmUgVFJBQ0VfSVJRU19PRkYJQVJDSF9UUkFDRV9JUlFTX09GRgorIyAgZGVmaW5lIFRSQUNFX0lSUVNfT04JCWNhbGwgdHJhY2VfaGFyZGlycXNfb25fdGh1bms7CisjICBkZWZpbmUgVFJBQ0VfSVJRU19PRkYJY2FsbCB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bms7CiAjZWxzZQogIyAgZGVmaW5lIFRSQUNFX0lSUVNfT04KICMgIGRlZmluZSBUUkFDRV9JUlFTX09GRgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2t2bV9wYXJhLmggYi9pbmNsdWRlL2FzbS14ODYva3ZtX3BhcmEuaAppbmRleCBiZmQ5OTAwLi43NmYzOTIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYva3ZtX3BhcmEuaAorKysgYi9pbmNsdWRlL2FzbS14ODYva3ZtX3BhcmEuaApAQCAtNzEsNyArNzEsOCBAQAogCWxvbmcgcmV0OwogCWFzbSB2b2xhdGlsZShLVk1fSFlQRVJDQUxMCiAJCSAgICAgOiAiPWEiKHJldCkKLQkJICAgICA6ICJhIihucikpOworCQkgICAgIDogImEiKG5yKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTgwLDcgKzgxLDggQEAKIAlsb25nIHJldDsKIAlhc20gdm9sYXRpbGUoS1ZNX0hZUEVSQ0FMTAogCQkgICAgIDogIj1hIihyZXQpCi0JCSAgICAgOiAiYSIobnIpLCAiYiIocDEpKTsKKwkJICAgICA6ICJhIihuciksICJiIihwMSkKKwkJICAgICA6ICJtZW1vcnkiKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC05MCw3ICs5Miw4IEBACiAJbG9uZyByZXQ7CiAJYXNtIHZvbGF0aWxlKEtWTV9IWVBFUkNBTEwKIAkJICAgICA6ICI9YSIocmV0KQotCQkgICAgIDogImEiKG5yKSwgImIiKHAxKSwgImMiKHAyKSk7CisJCSAgICAgOiAiYSIobnIpLCAiYiIocDEpLCAiYyIocDIpCisJCSAgICAgOiAibWVtb3J5Iik7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTAwLDcgKzEwMyw4IEBACiAJbG9uZyByZXQ7CiAJYXNtIHZvbGF0aWxlKEtWTV9IWVBFUkNBTEwKIAkJICAgICA6ICI9YSIocmV0KQotCQkgICAgIDogImEiKG5yKSwgImIiKHAxKSwgImMiKHAyKSwgImQiKHAzKSk7CisJCSAgICAgOiAiYSIobnIpLCAiYiIocDEpLCAiYyIocDIpLCAiZCIocDMpCisJCSAgICAgOiAibWVtb3J5Iik7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTExLDcgKzExNSw4IEBACiAJbG9uZyByZXQ7CiAJYXNtIHZvbGF0aWxlKEtWTV9IWVBFUkNBTEwKIAkJICAgICA6ICI9YSIocmV0KQotCQkgICAgIDogImEiKG5yKSwgImIiKHAxKSwgImMiKHAyKSwgImQiKHAzKSwgIlMiKHA0KSk7CisJCSAgICAgOiAiYSIobnIpLCAiYiIocDEpLCAiYyIocDIpLCAiZCIocDMpLCAiUyIocDQpCisJCSAgICAgOiAibWVtb3J5Iik7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtYmlnc21wL21hY2hfYXBpYy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtYmlnc21wL21hY2hfYXBpYy5oCmluZGV4IDgzMjc5MDcuLjAxN2M4YzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcC9tYWNoX2FwaWMuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1iaWdzbXAvbWFjaF9hcGljLmgKQEAgLTgxLDcgKzgxLDcgQEAKIAogc3RhdGljIGlubGluZSBpbnQgYXBpY2lkX3RvX25vZGUoaW50IGxvZ2ljYWxfYXBpY2lkKQogewotCXJldHVybiAoMCk7CisJcmV0dXJuIGFwaWNpZF8yX25vZGVbaGFyZF9zbXBfcHJvY2Vzc29yX2lkKCldOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBjcHVfcHJlc2VudF90b19hcGljaWQoaW50IG1wc19jcHUpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1iaWdzbXAvbWFjaF9tcHNwZWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcC9tYWNoX21wc3BlYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjVkYWRjLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcC9tYWNoX21wc3BlYy5oCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0jaWZuZGVmIF9fQVNNX01BQ0hfTVBTUEVDX0gKLSNkZWZpbmUgX19BU01fTUFDSF9NUFNQRUNfSAotCi0jZGVmaW5lIE1BWF9JUlFfU09VUkNFUyAyNTYKLQotI2RlZmluZSBNQVhfTVBfQlVTU0VTIDMyCi0KLSNlbmRpZiAvKiBfX0FTTV9NQUNIX01QU1BFQ19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L2lycV92ZWN0b3JzLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L2lycV92ZWN0b3JzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkN2Q0OTUuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9ycy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiAjZGVmaW5lcyBmb3IgYWxsIG9mIHRoZSBpbnRlcnJ1cHQgdmVjdG9yCi0gKiBudW1iZXJzIHVzZWQgYnkgdGhpcyBhcmNoaXRlY3R1cmUuCi0gKgotICogSW4gYWRkaXRpb24sIHRoZXJlIGFyZSBzb21lIHN0YW5kYXJkIGRlZmluZXM6Ci0gKgotICoJRklSU1RfRVhURVJOQUxfVkVDVE9SOgotICoJCVRoZSBmaXJzdCBmcmVlIHBsYWNlIGZvciBleHRlcm5hbCBpbnRlcnJ1cHRzCi0gKgotICoJU1lTQ0FMTF9WRUNUT1I6Ci0gKgkJVGhlIElSUSB2ZWN0b3IgYSBzeXNjYWxsIG1ha2VzIHRoZSB1c2VyIHRvIGtlcm5lbCB0cmFuc2l0aW9uCi0gKgkJdW5kZXIuCi0gKgotICoJVElNRVJfSVJROgotICoJCVRoZSBJUlEgbnVtYmVyIHRoZSB0aW1lciBpbnRlcnJ1cHQgY29tZXMgaW4gYXQuCi0gKgotICoJTlJfSVJRUzoKLSAqCQlUaGUgdG90YWwgbnVtYmVyIG9mIGludGVycnVwdCB2ZWN0b3JzIChpbmNsdWRpbmcgYWxsIHRoZQotICoJCWFyY2hpdGVjdHVyZSBzcGVjaWZpYyBpbnRlcnJ1cHRzKSBuZWVkZWQuCi0gKgotICovCQkJCi0jaWZuZGVmIF9BU01fSVJRX1ZFQ1RPUlNfSAotI2RlZmluZSBfQVNNX0lSUV9WRUNUT1JTX0gKLQotLyoKLSAqIElEVCB2ZWN0b3JzIHVzYWJsZSBmb3IgZXh0ZXJuYWwgaW50ZXJydXB0IHNvdXJjZXMgc3RhcnQKLSAqIGF0IDB4MjA6Ci0gKi8KLSNkZWZpbmUgRklSU1RfRVhURVJOQUxfVkVDVE9SCTB4MjAKLQotI2RlZmluZSBTWVNDQUxMX1ZFQ1RPUgkJMHg4MAotCi0vKgotICogVmVjdG9ycyAweDIwLTB4MmYgYXJlIHVzZWQgZm9yIElTQSBpbnRlcnJ1cHRzLgotICovCi0KLS8qCi0gKiBTcGVjaWFsIElSUSB2ZWN0b3JzIHVzZWQgYnkgdGhlIFNNUCBhcmNoaXRlY3R1cmUsIDB4ZjAtMHhmZgotICoKLSAqICBzb21lIG9mIHRoZSBmb2xsb3dpbmcgdmVjdG9ycyBhcmUgJ3JhcmUnLCB0aGV5IGFyZSBtZXJnZWQKLSAqICBpbnRvIGEgc2luZ2xlIHZlY3RvciAoQ0FMTF9GVU5DVElPTl9WRUNUT1IpIHRvIHNhdmUgdmVjdG9yIHNwYWNlLgotICogIFRMQiwgcmVzY2hlZHVsZSBhbmQgbG9jYWwgQVBJQyB2ZWN0b3JzIGFyZSBwZXJmb3JtYW5jZS1jcml0aWNhbC4KLSAqCi0gKiAgVmVjdG9ycyAweGYwLTB4ZmEgYXJlIGZyZWUgKHJlc2VydmVkIGZvciBmdXR1cmUgTGludXggdXNlKS4KLSAqLwotI2RlZmluZSBTUFVSSU9VU19BUElDX1ZFQ1RPUgkweGZmCi0jZGVmaW5lIEVSUk9SX0FQSUNfVkVDVE9SCTB4ZmUKLSNkZWZpbmUgSU5WQUxJREFURV9UTEJfVkVDVE9SCTB4ZmQKLSNkZWZpbmUgUkVTQ0hFRFVMRV9WRUNUT1IJMHhmYwotI2RlZmluZSBDQUxMX0ZVTkNUSU9OX1ZFQ1RPUgkweGZiCi0jZGVmaW5lIENBTExfRlVOQ1RJT05fU0lOR0xFX1ZFQ1RPUgkweGZhCi0KLSNkZWZpbmUgVEhFUk1BTF9BUElDX1ZFQ1RPUgkweGYwCi0vKgotICogTG9jYWwgQVBJQyB0aW1lciBJUlEgdmVjdG9yIGlzIG9uIGEgZGlmZmVyZW50IHByaW9yaXR5IGxldmVsLAotICogdG8gd29yayBhcm91bmQgdGhlICdsb3N0IGxvY2FsIGludGVycnVwdCBpZiBtb3JlIHRoYW4gMiBJUlEKLSAqIHNvdXJjZXMgcGVyIGxldmVsJyBlcnJhdGEuCi0gKi8KLSNkZWZpbmUgTE9DQUxfVElNRVJfVkVDVE9SCTB4ZWYKLQotLyoKLSAqIEZpcnN0IEFQSUMgdmVjdG9yIGF2YWlsYWJsZSB0byBkcml2ZXJzOiAodmVjdG9ycyAweDMwLTB4ZWUpCi0gKiB3ZSBzdGFydCBhdCAweDMxIHRvIHNwcmVhZCBvdXQgdmVjdG9ycyBldmVubHkgYmV0d2VlbiBwcmlvcml0eQotICogbGV2ZWxzLiAoMHg4MCBpcyB0aGUgc3lzY2FsbCB2ZWN0b3IpCi0gKi8KLSNkZWZpbmUgRklSU1RfREVWSUNFX1ZFQ1RPUgkweDMxCi0jZGVmaW5lIEZJUlNUX1NZU1RFTV9WRUNUT1IJMHhlZgotCi0jZGVmaW5lIFRJTUVSX0lSUSAwCi0KLS8qCi0gKiAxNiA4MjU5QSBJUlEncywgMjA4IHBvdGVudGlhbCBBUElDIGludGVycnVwdCBzb3VyY2VzLgotICogUmlnaHQgbm93IHRoZSBBUElDIGlzIG1vc3RseSBvbmx5IHVzZWQgZm9yIFNNUC4KLSAqIDI1NiB2ZWN0b3JzIGlzIGFuIGFyY2hpdGVjdHVyYWwgbGltaXQuICh3ZSBjYW4gaGF2ZQotICogbW9yZSB0aGFuIDI1NiBkZXZpY2VzIHRoZW9yZXRpY2FsbHksIGJ1dCB0aGV5IHdpbGwKLSAqIGhhdmUgdG8gdXNlIHNoYXJlZCBpbnRlcnJ1cHRzKQotICogU2luY2UgdmVjdG9ycyAweDAwLTB4MWYgYXJlIHVzZWQvcmVzZXJ2ZWQgZm9yIHRoZSBDUFUsCi0gKiB0aGUgdXNhYmxlIHZlY3RvciBzcGFjZSBpcyAweDIwLTB4ZmYgKDIyNCB2ZWN0b3JzKQotICovCi0KLS8qCi0gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdmVjdG9ycyBzdXBwb3J0ZWQgYnkgaTM4NiBwcm9jZXNzb3JzCi0gKiBpcyBsaW1pdGVkIHRvIDI1Ni4gRm9yIHByb2Nlc3NvcnMgb3RoZXIgdGhhbiBpMzg2LCBOUl9WRUNUT1JTCi0gKiBzaG91bGQgYmUgY2hhbmdlZCBhY2NvcmRpbmdseS4KLSAqLwotI2RlZmluZSBOUl9WRUNUT1JTIDI1NgotCi0jaW5jbHVkZSAiaXJxX3ZlY3RvcnNfbGltaXRzLmgiCi0KLSNkZWZpbmUgRlBVX0lSUQkJCTEzCi0KLSNkZWZpbmUJRklSU1RfVk04Nl9JUlEJCTMKLSNkZWZpbmUgTEFTVF9WTTg2X0lSUQkJMTUKLSNkZWZpbmUgaW52YWxpZF92bTg2X2lycShpcnEpCSgoaXJxKSA8IDMgfHwgKGlycSkgPiAxNSkKLQotCi0jZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L2lycV92ZWN0b3JzX2xpbWl0cy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9yc19saW1pdHMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTkwYzdhNi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L2lycV92ZWN0b3JzX2xpbWl0cy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotI2lmbmRlZiBfQVNNX0lSUV9WRUNUT1JTX0xJTUlUU19ICi0jZGVmaW5lIF9BU01fSVJRX1ZFQ1RPUlNfTElNSVRTX0gKLQotI2lmIGRlZmluZWQoQ09ORklHX1g4Nl9JT19BUElDKSB8fCBkZWZpbmVkKENPTkZJR19QQVJBVklSVCkKLSNkZWZpbmUgTlJfSVJRUyAyMjQKLSMgaWYgKDIyNCA+PSAzMiAqIE5SX0NQVVMpCi0jIGRlZmluZSBOUl9JUlFfVkVDVE9SUyBOUl9JUlFTCi0jIGVsc2UKLSMgZGVmaW5lIE5SX0lSUV9WRUNUT1JTICgzMiAqIE5SX0NQVVMpCi0jIGVuZGlmCi0jZWxzZQotI2RlZmluZSBOUl9JUlFTIDE2Ci0jZGVmaW5lIE5SX0lSUV9WRUNUT1JTIE5SX0lSUVMKLSNlbmRpZgotCi0jZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19MSU1JVFNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9tYWNoX2FwaWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvbWFjaF9hcGljLmgKaW5kZXggMjEwMDNiNS4uMGIyY2RlNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9tYWNoX2FwaWMuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L21hY2hfYXBpYy5oCkBAIC03Nyw3ICs3NywxMSBAQAogCiBzdGF0aWMgaW5saW5lIGludCBhcGljaWRfdG9fbm9kZShpbnQgbG9naWNhbF9hcGljaWQpCiB7CisjaWZkZWYgQ09ORklHX1NNUAorCXJldHVybiBhcGljaWRfMl9ub2RlW2hhcmRfc21wX3Byb2Nlc3Nvcl9pZCgpXTsKKyNlbHNlCiAJcmV0dXJuIDA7CisjZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L3NldHVwX2FyY2guaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc2V0dXBfYXJjaC5oCmluZGV4IDYwNWUzY2MuLjM4ODQ2MjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc2V0dXBfYXJjaC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc2V0dXBfYXJjaC5oCkBAIC0xLDcgKzEsMyBAQAogLyogSG9vayB0byBjYWxsIEJJT1MgaW5pdGlhbGlzYXRpb24gZnVuY3Rpb24gKi8KIAogLyogbm8gYWN0aW9uIGZvciBnZW5lcmljICovCi0KLSNpZm5kZWYgQVJDSF9TRVRVUAotI2RlZmluZSBBUkNIX1NFVFVQCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc21wYm9vdF9ob29rcy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9zbXBib290X2hvb2tzLmgKaW5kZXggNTZkMGUxZi4uNTZkMDAxYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9zbXBib290X2hvb2tzLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9zbXBib290X2hvb2tzLmgKQEAgLTMsNyArMyw5IEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X2NsZWFyX2lvX2FwaWNfaXJxcyh2b2lkKQogeworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCWlvX2FwaWNfaXJxcyA9IDA7CisjZW5kaWYKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHNtcGJvb3Rfc2V0dXBfd2FybV9yZXNldF92ZWN0b3IodW5zaWduZWQgbG9uZyBzdGFydF9laXApCkBAIC0zNSwxNyArMzcsMjMgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCBzbXBib290X3NldHVwX2lvX2FwaWModm9pZCkKIHsKKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIAkvKgogCSAqIEhlcmUgd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGVyZSBpcyBhbiBJTy1BUElDIGluIHRoZSBzeXN0ZW0uIExldCdzCiAJICogZ28gYW5kIHNldCBpdCB1cDoKIAkgKi8KIAlpZiAoIXNraXBfaW9hcGljX3NldHVwICYmIG5yX2lvYXBpY3MpCiAJCXNldHVwX0lPX0FQSUMoKTsKLQllbHNlCisJZWxzZSB7CiAJCW5yX2lvYXBpY3MgPSAwOworCQlsb2NhbGlzZV9ubWlfd2F0Y2hkb2coKTsKKwl9CisjZW5kaWYKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHNtcGJvb3RfY2xlYXJfaW9fYXBpYyh2b2lkKQogeworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCW5yX2lvYXBpY3MgPSAwOworI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1lczcwMDAvbWFjaF9tcHNwZWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWVzNzAwMC9tYWNoX21wc3BlYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWY1MDM5Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWVzNzAwMC9tYWNoX21wc3BlYy5oCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0jaWZuZGVmIF9fQVNNX01BQ0hfTVBTUEVDX0gKLSNkZWZpbmUgX19BU01fTUFDSF9NUFNQRUNfSAotCi0jZGVmaW5lIE1BWF9JUlFfU09VUkNFUyAyNTYKLQotI2RlZmluZSBNQVhfTVBfQlVTU0VTIDI1NgotCi0jZW5kaWYgLyogX19BU01fTUFDSF9NUFNQRUNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZ2VuZXJpYy9tYWNoX21wcGFyc2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWdlbmVyaWMvbWFjaF9tcHBhcnNlLmgKaW5kZXggMGQwYjViYS4uNTg2Y2FkYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtZ2VuZXJpYy9tYWNoX21wcGFyc2UuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1nZW5lcmljL21hY2hfbXBwYXJzZS5oCkBAIC0xLDcgKzEsMTAgQEAKICNpZm5kZWYgX01BQ0hfTVBQQVJTRV9ICiAjZGVmaW5lIF9NQUNIX01QUEFSU0VfSCAxCiAKLWludCBtcHNfb2VtX2NoZWNrKHN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYywgY2hhciAqb2VtLCBjaGFyICpwcm9kdWN0aWQpOyAKLWludCBhY3BpX21hZHRfb2VtX2NoZWNrKGNoYXIgKm9lbV9pZCwgY2hhciAqb2VtX3RhYmxlX2lkKTsgCisKK2V4dGVybiBpbnQgbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKKwkJCSBjaGFyICpwcm9kdWN0aWQpOworCitleHRlcm4gaW50IGFjcGlfbWFkdF9vZW1fY2hlY2soY2hhciAqb2VtX2lkLCBjaGFyICpvZW1fdGFibGVfaWQpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfYXBpYy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEvbWFjaF9hcGljLmgKaW5kZXggNzVhNTZlNS4uZDgwMjQ2NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEvbWFjaF9hcGljLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEvbWFjaF9hcGljLmgKQEAgLTIwLDggKzIwLDE0IEBACiAjZGVmaW5lIElOVF9ERUxJVkVSWV9NT0RFIGRlc3RfTG93ZXN0UHJpbwogI2RlZmluZSBJTlRfREVTVF9NT0RFIDAgICAgIC8qIHBoeXNpY2FsIGRlbGl2ZXJ5IG9uIExPQ0FMIHF1YWQgKi8KICAKLSNkZWZpbmUgY2hlY2tfYXBpY2lkX3VzZWQoYml0bWFwLCBhcGljaWQpIHBoeXNpZF9pc3NldChhcGljaWQsIGJpdG1hcCkKLSNkZWZpbmUgY2hlY2tfYXBpY2lkX3ByZXNlbnQoYml0KSBwaHlzaWRfaXNzZXQoYml0LCBwaHlzX2NwdV9wcmVzZW50X21hcCkKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBjaGVja19hcGljaWRfdXNlZChwaHlzaWRfbWFza190IGJpdG1hcCwgaW50IGFwaWNpZCkKK3sKKwlyZXR1cm4gcGh5c2lkX2lzc2V0KGFwaWNpZCwgYml0bWFwKTsKK30KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBjaGVja19hcGljaWRfcHJlc2VudChpbnQgYml0KQoreworCXJldHVybiBwaHlzaWRfaXNzZXQoYml0LCBwaHlzX2NwdV9wcmVzZW50X21hcCk7Cit9CiAjZGVmaW5lIGFwaWNpZF9jbHVzdGVyKGFwaWNpZCkgKGFwaWNpZCAmIDB4RjApCiAKIHN0YXRpYyBpbmxpbmUgaW50IGFwaWNfaWRfcmVnaXN0ZXJlZCh2b2lkKQpAQCAtNzcsMTEgKzgzLDYgQEAKIAkJcmV0dXJuIEJBRF9BUElDSUQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IGdlbmVyYXRlX2xvZ2ljYWxfYXBpY2lkKGludCBxdWFkLCBpbnQgcGh5c19hcGljaWQpCi17Ci0JcmV0dXJuIChxdWFkIDw8IDQpICsgKHBoeXNfYXBpY2lkID8gcGh5c19hcGljaWQgPDwgMSA6IDEpOwotfQotCiBzdGF0aWMgaW5saW5lIGludCBhcGljaWRfdG9fbm9kZShpbnQgbG9naWNhbF9hcGljaWQpIAogewogCXJldHVybiBsb2dpY2FsX2FwaWNpZCA+PiA0OwpAQCAtOTUsMzAgKzk2LDYgQEAKIAlyZXR1cm4gcGh5c2lkX21hc2tfb2ZfcGh5c2lkKGNwdSArIDQqbm9kZSk7CiB9CiAKLXN0cnVjdCBtcGNfY29uZmlnX3RyYW5zbGF0aW9uIHsKLQl1bnNpZ25lZCBjaGFyIG1wY190eXBlOwotCXVuc2lnbmVkIGNoYXIgdHJhbnNfbGVuOwotCXVuc2lnbmVkIGNoYXIgdHJhbnNfdHlwZTsKLQl1bnNpZ25lZCBjaGFyIHRyYW5zX3F1YWQ7Ci0JdW5zaWduZWQgY2hhciB0cmFuc19nbG9iYWw7Ci0JdW5zaWduZWQgY2hhciB0cmFuc19sb2NhbDsKLQl1bnNpZ25lZCBzaG9ydCB0cmFuc19yZXNlcnZlZDsKLX07Ci0KLXN0YXRpYyBpbmxpbmUgaW50IG1wY19hcGljX2lkKHN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciAqbSwgCi0JCQlzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb25fcmVjb3JkKQotewotCWludCBxdWFkID0gdHJhbnNsYXRpb25fcmVjb3JkLT50cmFuc19xdWFkOwotCWludCBsb2dpY2FsX2FwaWNpZCA9IGdlbmVyYXRlX2xvZ2ljYWxfYXBpY2lkKHF1YWQsIG0tPm1wY19hcGljaWQpOwotCi0JcHJpbnRrKCJQcm9jZXNzb3IgIyVkICV1OiV1IEFQSUMgdmVyc2lvbiAlZCAocXVhZCAlZCwgYXBpYyAlZClcbiIsCi0JICAgICAgIG0tPm1wY19hcGljaWQsCi0JICAgICAgIChtLT5tcGNfY3B1ZmVhdHVyZSAmIENQVV9GQU1JTFlfTUFTSykgPj4gOCwKLQkgICAgICAgKG0tPm1wY19jcHVmZWF0dXJlICYgQ1BVX01PREVMX01BU0spID4+IDQsCi0JICAgICAgIG0tPm1wY19hcGljdmVyLCBxdWFkLCBsb2dpY2FsX2FwaWNpZCk7Ci0JcmV0dXJuIGxvZ2ljYWxfYXBpY2lkOwotfQotCiBleHRlcm4gdm9pZCAqeHF1YWRfcG9ydGlvOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfcG9ydGlvX3JlbWFwKHZvaWQpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wcGFyc2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfbXBwYXJzZS5oCmluZGV4IDQ1OWIxMjQuLjYyNmFlZjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfbXBwYXJzZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfbXBwYXJzZS5oCkBAIC0xLDE0ICsxLDcgQEAKICNpZm5kZWYgX19BU01fTUFDSF9NUFBBUlNFX0gKICNkZWZpbmUgX19BU01fTUFDSF9NUFBBUlNFX0gKIAotZXh0ZXJuIHZvaWQgbXBjX29lbV9idXNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKm0sIGNoYXIgKm5hbWUsCi0JCQkgICAgIHN0cnVjdCBtcGNfY29uZmlnX3RyYW5zbGF0aW9uICp0cmFuc2xhdGlvbik7Ci1leHRlcm4gdm9pZCBtcGNfb2VtX3BjaV9idXMoc3RydWN0IG1wY19jb25maWdfYnVzICptLAotCXN0cnVjdCBtcGNfY29uZmlnX3RyYW5zbGF0aW9uICp0cmFuc2xhdGlvbik7Ci0KLS8qIEhvb2sgZnJvbSBnZW5lcmljIEFDUEkgdGFibGVzLmMgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBhY3BpX21hZHRfb2VtX2NoZWNrKGNoYXIgKm9lbV9pZCwgY2hhciAqb2VtX3RhYmxlX2lkKQotewotfQorZXh0ZXJuIHZvaWQgbnVtYXFfbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKKwkJCQljaGFyICpwcm9kdWN0aWQpOwogCiAjZW5kaWYgLyogX19BU01fTUFDSF9NUFBBUlNFX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfbXBzcGVjLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wc3BlYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmZiMDk4Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfbXBzcGVjLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLSNpZm5kZWYgX19BU01fTUFDSF9NUFNQRUNfSAotI2RlZmluZSBfX0FTTV9NQUNIX01QU1BFQ19ICi0KLSNkZWZpbmUgTUFYX0lSUV9TT1VSQ0VTIDUxMgotCi0jZGVmaW5lIE1BWF9NUF9CVVNTRVMgMzIKLQotI2VuZGlmIC8qIF9fQVNNX01BQ0hfTVBTUEVDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXN1bW1pdC9tYWNoX21wc3BlYy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtc3VtbWl0L21hY2hfbXBzcGVjLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNzY1NTIuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtc3VtbWl0L21hY2hfbXBzcGVjLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLSNpZm5kZWYgX19BU01fTUFDSF9NUFNQRUNfSAotI2RlZmluZSBfX0FTTV9NQUNIX01QU1BFQ19ICi0KLSNkZWZpbmUgTUFYX0lSUV9TT1VSQ0VTIDI1NgotCi0vKiBNYXhpbXVtIDI1NiBQQ0kgYnVzc2VzLCBwbHVzIDEgSVNBIGJ1cyBpbiBlYWNoIG9mIDQgY2FiaW5ldHMuICovCi0jZGVmaW5lIE1BWF9NUF9CVVNTRVMgMjYwCi0KLSNlbmRpZiAvKiBfX0FTTV9NQUNIX01QU1BFQ19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9pcnFfdmVjdG9ycy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvaXJxX3ZlY3RvcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2I1NzJkOC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9pcnFfdmVjdG9ycy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotI2lmbmRlZiBfQVNNX0lSUV9WRUNUT1JTX0gKLSNkZWZpbmUgX0FTTV9JUlFfVkVDVE9SU19ICi0KLS8qCi0gKiBJRFQgdmVjdG9ycyB1c2FibGUgZm9yIGV4dGVybmFsIGludGVycnVwdCBzb3VyY2VzIHN0YXJ0Ci0gKiBhdCAweDIwOgotICovCi0jZGVmaW5lIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgkweDIwCi0KLSNkZWZpbmUgU1lTQ0FMTF9WRUNUT1IJCTB4ODAKLQotLyoKLSAqIFZlY3RvcnMgMHgyMC0weDJmIGFyZSB1c2VkIGZvciBJU0EgaW50ZXJydXB0cy4KLSAqLwotCi0vKgotICogU3BlY2lhbCBJUlEgdmVjdG9ycyB1c2VkIGJ5IHRoZSBTTVAgYXJjaGl0ZWN0dXJlLCAweGYwLTB4ZmYKLSAqCi0gKiAgc29tZSBvZiB0aGUgZm9sbG93aW5nIHZlY3RvcnMgYXJlICdyYXJlJywgdGhleSBhcmUgbWVyZ2VkCi0gKiAgaW50byBhIHNpbmdsZSB2ZWN0b3IgKENBTExfRlVOQ1RJT05fVkVDVE9SKSB0byBzYXZlIHZlY3RvciBzcGFjZS4KLSAqICBUTEIsIHJlc2NoZWR1bGUgYW5kIGxvY2FsIEFQSUMgdmVjdG9ycyBhcmUgcGVyZm9ybWFuY2UtY3JpdGljYWwuCi0gKgotICogIFZlY3RvcnMgMHhmMC0weGZhIGFyZSBmcmVlIChyZXNlcnZlZCBmb3IgZnV0dXJlIExpbnV4IHVzZSkuCi0gKi8KLSNkZWZpbmUgU1BVUklPVVNfQVBJQ19WRUNUT1IJMHhmZgotI2RlZmluZSBFUlJPUl9BUElDX1ZFQ1RPUgkweGZlCi0jZGVmaW5lIElOVkFMSURBVEVfVExCX1ZFQ1RPUgkweGZkCi0jZGVmaW5lIFJFU0NIRURVTEVfVkVDVE9SCTB4ZmMKLSNkZWZpbmUgQ0FMTF9GVU5DVElPTl9WRUNUT1IJMHhmYgotCi0jZGVmaW5lIFRIRVJNQUxfQVBJQ19WRUNUT1IJMHhmMAotLyoKLSAqIExvY2FsIEFQSUMgdGltZXIgSVJRIHZlY3RvciBpcyBvbiBhIGRpZmZlcmVudCBwcmlvcml0eSBsZXZlbCwKLSAqIHRvIHdvcmsgYXJvdW5kIHRoZSAnbG9zdCBsb2NhbCBpbnRlcnJ1cHQgaWYgbW9yZSB0aGFuIDIgSVJRCi0gKiBzb3VyY2VzIHBlciBsZXZlbCcgZXJyYXRhLgotICovCi0jZGVmaW5lIExPQ0FMX1RJTUVSX1ZFQ1RPUgkweGVmCi0KLS8qCi0gKiBGaXJzdCBBUElDIHZlY3RvciBhdmFpbGFibGUgdG8gZHJpdmVyczogKHZlY3RvcnMgMHgzMC0weGVlKQotICogd2Ugc3RhcnQgYXQgMHgzMSB0byBzcHJlYWQgb3V0IHZlY3RvcnMgZXZlbmx5IGJldHdlZW4gcHJpb3JpdHkKLSAqIGxldmVscy4gKDB4ODAgaXMgdGhlIHN5c2NhbGwgdmVjdG9yKQotICovCi0jZGVmaW5lIEZJUlNUX0RFVklDRV9WRUNUT1IJMHgzMQotI2RlZmluZSBGSVJTVF9TWVNURU1fVkVDVE9SCTB4ZWYKLQotI2RlZmluZSBUSU1FUl9JUlEgMAotCi0vKgotICogSVJRIGRlZmluaXRpb25zCi0gKi8KLSNkZWZpbmUgTlJfVkVDVE9SUyAyNTYKLSNkZWZpbmUgTlJfSVJRUyAyMjQKLSNkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMgTlJfSVJRUwotCi0jZGVmaW5lIEZQVV9JUlEJCQkxMwotCi0jZGVmaW5lCUZJUlNUX1ZNODZfSVJRCQkzCi0jZGVmaW5lIExBU1RfVk04Nl9JUlEJCTE1Ci0jZGVmaW5lIGludmFsaWRfdm04Nl9pcnEoaXJxKQkoKGlycSkgPCAzIHx8IChpcnEpID4gMTUpCi0KLSNlbmRpZiAvKiBfQVNNX0lSUV9WRUNUT1JTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpYy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbWFjaF9hcGljLmgKaW5kZXggYTllZjMzYS4uNjk0M2U3YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbWFjaF9hcGljLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbWFjaF9hcGljLmgKQEAgLTEsMTAzICsxIEBACi0jaWZuZGVmIF9fQVNNX01BQ0hfQVBJQ19ICi0jZGVmaW5lIF9fQVNNX01BQ0hfQVBJQ19ICi0KLSNpbmNsdWRlIDxtYWNoX2FwaWNkZWYuaD4KLSNpbmNsdWRlIDxhc20vc21wLmg+Ci0KLSNkZWZpbmUgQVBJQ19ERlJfVkFMVUUJKEFQSUNfREZSX0ZMQVQpCi0KLSNkZWZpbmUgbm9fYmFsYW5jZV9pcnEgKDApCi0jZGVmaW5lIGVzcl9kaXNhYmxlICgwKQotCi0jZGVmaW5lIElOVF9ERUxJVkVSWV9NT0RFIGRlc3RfTG93ZXN0UHJpbwotI2RlZmluZSBJTlRfREVTVF9NT0RFIDEgICAgIC8qIGxvZ2ljYWwgZGVsaXZlcnkgYnJvYWRjYXN0IHRvIGFsbCBwcm9jcyAqLwotCi0jaWZkZWYgQ09ORklHX1NNUAotICNkZWZpbmUgVEFSR0VUX0NQVVMgY3B1X29ubGluZV9tYXAKLSNlbHNlCi0gI2RlZmluZSBUQVJHRVRfQ1BVUyBjcHVtYXNrX29mX2NwdSgwKQotI2VuZGlmCi0KLSNkZWZpbmUgY2hlY2tfYXBpY2lkX3VzZWQoYml0bWFwLCBhcGljaWQpCXBoeXNpZF9pc3NldChhcGljaWQsIGJpdG1hcCkKLSNkZWZpbmUgY2hlY2tfYXBpY2lkX3ByZXNlbnQoYml0KQkJcGh5c2lkX2lzc2V0KGJpdCwgcGh5c19jcHVfcHJlc2VudF9tYXApCi0KLXN0YXRpYyBpbmxpbmUgaW50IGFwaWNfaWRfcmVnaXN0ZXJlZCh2b2lkKQotewotCXJldHVybiBwaHlzaWRfaXNzZXQoR0VUX0FQSUNfSUQocmVhZF9hcGljX2lkKCkpLCBwaHlzX2NwdV9wcmVzZW50X21hcCk7Ci19Ci0KLS8qCi0gKiBTZXQgdXAgdGhlIGxvZ2ljYWwgZGVzdGluYXRpb24gSUQuCi0gKgotICogSW50ZWwgcmVjb21tZW5kcyB0byBzZXQgREZSLCBMRFIgYW5kIFRQUiBiZWZvcmUgZW5hYmxpbmcKLSAqIGFuIEFQSUMuICBTZWUgZS5nLiAiQVAtMzg4IDgyNDg5RFggVXNlcidzIE1hbnVhbCIgKEludGVsCi0gKiBkb2N1bWVudCBudW1iZXIgMjkyMTE2KS4gIFNvIGhlcmUgaXQgZ29lcy4uLgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9hcGljX2xkcih2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgdmFsOwotCi0JYXBpY193cml0ZV9hcm91bmQoQVBJQ19ERlIsIEFQSUNfREZSX1ZBTFVFKTsKLQl2YWwgPSBhcGljX3JlYWQoQVBJQ19MRFIpICYgfkFQSUNfTERSX01BU0s7Ci0JdmFsIHw9IFNFVF9BUElDX0xPR0lDQUxfSUQoMVVMIDw8IHNtcF9wcm9jZXNzb3JfaWQoKSk7Ci0JYXBpY193cml0ZV9hcm91bmQoQVBJQ19MRFIsIHZhbCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzdW1taXRfY2hlY2soY2hhciAqb2VtLCBjaGFyICpwcm9kdWN0aWQpIAotewotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfYXBpY19yb3V0aW5nKHZvaWQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGFwaWNpZF90b19ub2RlKGludCBsb2dpY2FsX2FwaWNpZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotLyogTWFwcGluZyBmcm9tIGNwdSBudW1iZXIgdG8gbG9naWNhbCBhcGljaWQgKi8KLXN0YXRpYyBpbmxpbmUgaW50IGNwdV90b19sb2dpY2FsX2FwaWNpZChpbnQgY3B1KQotewotCXJldHVybiAxIDw8IGNwdTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgY3B1X3ByZXNlbnRfdG9fYXBpY2lkKGludCBtcHNfY3B1KQotewotCWlmIChtcHNfY3B1IDwgZ2V0X3BoeXNpY2FsX2Jyb2FkY2FzdCgpKQotCQlyZXR1cm4gbXBzX2NwdTsKLQllbHNlCi0JCXJldHVybiBCQURfQVBJQ0lEOwotfQotCi1zdGF0aWMgaW5saW5lIHBoeXNpZF9tYXNrX3QgYXBpY2lkX3RvX2NwdV9wcmVzZW50KGludCBhcGljaWQpCi17Ci0JcmV0dXJuIHBoeXNpZF9tYXNrX29mX3BoeXNpZChhcGljaWQpOwotfQotCi0jZGVmaW5lIFdBS0VfU0VDT05EQVJZX1ZJQV9JTklUCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9wb3J0aW9fcmVtYXAodm9pZCkKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGVuYWJsZV9hcGljX21vZGUodm9pZCkKLXsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgY2hlY2tfcGh5c19hcGljaWRfcHJlc2VudChpbnQgYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKQotewotCXJldHVybiBwaHlzaWRfaXNzZXQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkLCBwaHlzX2NwdV9wcmVzZW50X21hcCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNwdV9tYXNrX3RvX2FwaWNpZChjcHVtYXNrX3QgY3B1bWFzaykKLXsKLQlyZXR1cm4gY3B1c19hZGRyKGNwdW1hc2spWzBdOwotfQotCi1zdGF0aWMgaW5saW5lIHUzMiBwaHlzX3BrZ19pZCh1MzIgY3B1aWRfYXBpYywgaW50IGluZGV4X21zYikKLXsKLQlyZXR1cm4gY3B1aWRfYXBpYyA+PiBpbmRleF9tc2I7Ci19Ci0KLSNlbmRpZiAvKiBfX0FTTV9NQUNIX0FQSUNfSCAqLworI2luY2x1ZGUgIi4uL21hY2gtZGVmYXVsdC9tYWNoX2FwaWMuaCIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpY2RlZi5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbWFjaF9hcGljZGVmLmgKaW5kZXggODI2Y2ZhOS4uNDI3MTFkMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbWFjaF9hcGljZGVmLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbWFjaF9hcGljZGVmLmgKQEAgLTEsMTIgKzEgQEAKLSNpZm5kZWYgX19BU01fTUFDSF9BUElDREVGX0gKLSNkZWZpbmUgX19BU01fTUFDSF9BUElDREVGX0gKLQotI2RlZmluZSAgICAgICAgIEFQSUNfSURfTUFTSyAgICAgICAgICAgICgweEY8PDI0KQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGdldF9hcGljX2lkKHVuc2lnbmVkIGxvbmcgeCkKLXsKLQkgICAgICAgIHJldHVybiAoKCh4KT4+MjQpJjB4Rik7Ci19Ci0jZGVmaW5lICAgICAgICAgR0VUX0FQSUNfSUQoeCkgIGdldF9hcGljX2lkKHgpCi0KLSNlbmRpZgorI2luY2x1ZGUgIi4uL21hY2gtZGVmYXVsdC9tYWNoX2FwaWNkZWYuaCIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL3NldHVwX2FyY2guaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL3NldHVwX2FyY2guaAppbmRleCAzM2Y3MDBlLi5mYTQ3NjZjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9zZXR1cF9hcmNoLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3Mvc2V0dXBfYXJjaC5oCkBAIC0xLDggKzEgQEAKLS8qIEhvb2sgdG8gY2FsbCBCSU9TIGluaXRpYWxpc2F0aW9uIGZ1bmN0aW9uICovCi0KLWV4dGVybiB1bnNpZ25lZCBsb25nIHNnaXZ3ZmJfbWVtX3BoeXM7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9zaXplOwotCi0vKiBubyBhY3Rpb24gZm9yIHZpc3dzICovCi0KLSNkZWZpbmUgQVJDSF9TRVRVUAorI2luY2x1ZGUgIi4uL21hY2gtZGVmYXVsdC9zZXR1cF9hcmNoLmgiCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9zbXBib290X2hvb2tzLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9zbXBib290X2hvb2tzLmgKaW5kZXggYzliODNlMy4uZTQ0MzNjYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3Mvc21wYm9vdF9ob29rcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL3NtcGJvb3RfaG9va3MuaApAQCAtMSwyOCArMSBAQAotc3RhdGljIGlubGluZSB2b2lkIHNtcGJvb3Rfc2V0dXBfd2FybV9yZXNldF92ZWN0b3IodW5zaWduZWQgbG9uZyBzdGFydF9laXApCi17Ci0JQ01PU19XUklURSgweGEsIDB4Zik7Ci0JbG9jYWxfZmx1c2hfdGxiKCk7Ci0JRHByaW50aygiMS5cbiIpOwotCSooKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopIFRSQU1QT0xJTkVfSElHSCkgPSBzdGFydF9laXAgPj4gNDsKLQlEcHJpbnRrKCIyLlxuIik7Ci0JKigodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikgVFJBTVBPTElORV9MT1cpID0gc3RhcnRfZWlwICYgMHhmOwotCURwcmludGsoIjMuXG4iKTsKLX0KLQotLyogZm9yIHZpc3dzIGRvIG5vdGhpbmcgZm9yIGFueSBvZiB0aGVzZSAqLwotCi1zdGF0aWMgaW5saW5lIHZvaWQgc21wYm9vdF9jbGVhcl9pb19hcGljX2lycXModm9pZCkKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHNtcGJvb3RfcmVzdG9yZV93YXJtX3Jlc2V0X3ZlY3Rvcih2b2lkKQotewotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgc21wYm9vdF9zZXR1cF9pb19hcGljKHZvaWQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X2NsZWFyX2lvX2FwaWModm9pZCkKLXsKLX0KKyNpbmNsdWRlICIuLi9tYWNoLWRlZmF1bHQvc21wYm9vdF9ob29rcy5oIgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtdm95YWdlci9pcnFfdmVjdG9ycy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtdm95YWdlci9pcnFfdmVjdG9ycy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGE1N2FkLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZveWFnZXIvaXJxX3ZlY3RvcnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLS8qIC0qLSBtb2RlOiBjOyBjLWJhc2ljLW9mZnNldDogOCAtKi0gKi8KLQotLyogQ29weXJpZ2h0IChDKSAyMDAyCi0gKgotICogQXV0aG9yOiBKYW1lcy5Cb3R0b21sZXlASGFuc2VuUGFydG5lcnNoaXAuY29tCi0gKgotICogbGludXgvYXJjaC9pMzg2L3ZveWFnZXIvaXJxX3ZlY3RvcnMuaAotICoKLSAqIFRoaXMgZmlsZSBwcm92aWRlcyBkZWZpbml0aW9ucyBmb3IgdGhlIFZJQyBhbmQgUUlDIENQSXMKLSAqLwotCi0jaWZuZGVmIF9BU01fSVJRX1ZFQ1RPUlNfSAotI2RlZmluZSBfQVNNX0lSUV9WRUNUT1JTX0gKLQotLyoKLSAqIElEVCB2ZWN0b3JzIHVzYWJsZSBmb3IgZXh0ZXJuYWwgaW50ZXJydXB0IHNvdXJjZXMgc3RhcnQKLSAqIGF0IDB4MjA6Ci0gKi8KLSNkZWZpbmUgRklSU1RfRVhURVJOQUxfVkVDVE9SCTB4MjAKLQotI2RlZmluZSBTWVNDQUxMX1ZFQ1RPUgkJMHg4MAotCi0vKgotICogVmVjdG9ycyAweDIwLTB4MmYgYXJlIHVzZWQgZm9yIElTQSBpbnRlcnJ1cHRzLgotICovCi0KLS8qIFRoZXNlIGRlZmluZSB0aGUgQ1BJcyB3ZSB1c2UgaW4gbGludXggKi8KLSNkZWZpbmUgVklDX0NQSV9MRVZFTDAJCQkwCi0jZGVmaW5lIFZJQ19DUElfTEVWRUwxCQkJMQotLyogbm93IHRoZSBmYWtlIENQSXMgKi8KLSNkZWZpbmUgVklDX1RJTUVSX0NQSQkJCTIKLSNkZWZpbmUgVklDX0lOVkFMSURBVEVfQ1BJCQkzCi0jZGVmaW5lIFZJQ19SRVNDSEVEVUxFX0NQSQkJNAotI2RlZmluZSBWSUNfRU5BQkxFX0lSUV9DUEkJCTUKLSNkZWZpbmUgVklDX0NBTExfRlVOQ1RJT05fQ1BJCQk2Ci0jZGVmaW5lIFZJQ19DQUxMX0ZVTkNUSU9OX1NJTkdMRV9DUEkJNwotCi0vKiBOb3cgdGhlIFFJQyBDUElzOiAgU2luY2Ugd2UgZG9uJ3QgbmVlZCB0aGUgdHdvIGluaXRpYWwgbGV2ZWxzLAotICogdGhlc2UgYXJlIDIgbGVzcyB0aGFuIHRoZSBWSUMgQ1BJcyAqLwotI2RlZmluZSBRSUNfQ1BJX09GRlNFVAkJCTEKLSNkZWZpbmUgUUlDX1RJTUVSX0NQSQkJCShWSUNfVElNRVJfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCi0jZGVmaW5lIFFJQ19JTlZBTElEQVRFX0NQSQkJKFZJQ19JTlZBTElEQVRFX0NQSSAtIFFJQ19DUElfT0ZGU0VUKQotI2RlZmluZSBRSUNfUkVTQ0hFRFVMRV9DUEkJCShWSUNfUkVTQ0hFRFVMRV9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKLSNkZWZpbmUgUUlDX0VOQUJMRV9JUlFfQ1BJCQkoVklDX0VOQUJMRV9JUlFfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCi0jZGVmaW5lIFFJQ19DQUxMX0ZVTkNUSU9OX0NQSQkJKFZJQ19DQUxMX0ZVTkNUSU9OX0NQSSAtIFFJQ19DUElfT0ZGU0VUKQotI2RlZmluZSBRSUNfQ0FMTF9GVU5DVElPTl9TSU5HTEVfQ1BJCShWSUNfQ0FMTF9GVU5DVElPTl9TSU5HTEVfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCi0KLSNkZWZpbmUgVklDX1NUQVJUX0ZBS0VfQ1BJCQlWSUNfVElNRVJfQ1BJCi0jZGVmaW5lIFZJQ19FTkRfRkFLRV9DUEkJCVZJQ19DQUxMX0ZVTkNUSU9OX1NJTkdMRV9DUEkKLQotLyogdGhpcyBpcyB0aGUgU1lTX0lOVCBDUEkuICovCi0jZGVmaW5lIFZJQ19TWVNfSU5UCQkJOAotI2RlZmluZSBWSUNfQ01OX0lOVAkJCTE1Ci0KLS8qIFRoaXMgaXMgdGhlIGJvb3QgQ1BJIGZvciBhbHRlcm5hdGUgcHJvY2Vzc29ycy4gIEl0IGdldHMgb3ZlcndyaXR0ZW4KLSAqIGJ5IHRoZSBhYm92ZSBvbmNlIHRoZSBzeXN0ZW0gaGFzIGFjdGl2YXRlZCBhbGwgYXZhaWxhYmxlIHByb2Nlc3NvcnMgKi8KLSNkZWZpbmUgVklDX0NQVV9CT09UX0NQSQkJVklDX0NQSV9MRVZFTDAKLSNkZWZpbmUgVklDX0NQVV9CT09UX0VSUkFUQV9DUEkJCShWSUNfQ1BJX0xFVkVMMCArIDgpCi0KLSNkZWZpbmUgTlJfVkVDVE9SUyAyNTYKLSNkZWZpbmUgTlJfSVJRUyAyMjQKLSNkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMgTlJfSVJRUwotCi0jZGVmaW5lIEZQVV9JUlEJCQkJMTMKLQotI2RlZmluZQlGSVJTVF9WTTg2X0lSUQkJMwotI2RlZmluZSBMQVNUX1ZNODZfSVJRCQkxNQotI2RlZmluZSBpbnZhbGlkX3ZtODZfaXJxKGlycSkJKChpcnEpIDwgMyB8fCAoaXJxKSA+IDE1KQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCB2aWNfY3BpX2ludGVycnVwdCh2b2lkKTsKLWV4dGVybiBhc21saW5rYWdlIHZvaWQgdmljX3N5c19pbnRlcnJ1cHQodm9pZCk7Ci1leHRlcm4gYXNtbGlua2FnZSB2b2lkIHZpY19jbW5faW50ZXJydXB0KHZvaWQpOwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfdGltZXJfaW50ZXJydXB0KHZvaWQpOwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfaW52YWxpZGF0ZV9pbnRlcnJ1cHQodm9pZCk7Ci1leHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY19yZXNjaGVkdWxlX2ludGVycnVwdCh2b2lkKTsKLWV4dGVybiBhc21saW5rYWdlIHZvaWQgcWljX2VuYWJsZV9pcnFfaW50ZXJydXB0KHZvaWQpOwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQodm9pZCk7Ci0jZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwotCi0jZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbW1jb25maWcuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tbWNvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YmVkYTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS14ODYvbW1jb25maWcuaApAQCAtMCwwICsxLDEyIEBACisjaWZuZGVmIF9BU01fTU1DT05GSUdfSAorI2RlZmluZSBfQVNNX01NQ09ORklHX0gKKworI2lmZGVmIENPTkZJR19QQ0lfTU1DT05GSUcKK2V4dGVybiB2b2lkIF9fY3B1aW5pdCBmYW0xMGhfY2hlY2tfZW5hYmxlX21tY2ZnKHZvaWQpOworZXh0ZXJuIHZvaWQgX19pbml0IGNoZWNrX2VuYWJsZV9hbWRfbW1jb25mX2RtaSh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgZmFtMTBoX2NoZWNrX2VuYWJsZV9tbWNmZyh2b2lkKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19lbmFibGVfYW1kX21tY29uZl9kbWkodm9pZCkgeyB9CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbW11X2NvbnRleHQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dC5oCmluZGV4IDY1OTg0NTAuLmZhYzU3MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dC5oCkBAIC0xLDUgKzEsMzcgQEAKKyNpZm5kZWYgX19BU01fWDg2X01NVV9DT05URVhUX0gKKyNkZWZpbmUgX19BU01fWDg2X01NVV9DT05URVhUX0gKKworI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CisjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL3BhcmF2aXJ0Lmg+CisjaWZuZGVmIENPTkZJR19QQVJBVklSVAorI2luY2x1ZGUgPGFzbS1nZW5lcmljL21tX2hvb2tzLmg+CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXJhdmlydF9hY3RpdmF0ZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LAorCQkJCQlzdHJ1Y3QgbW1fc3RydWN0ICpuZXh0KQoreworfQorI2VuZGlmCS8qICFDT05GSUdfUEFSQVZJUlQgKi8KKworLyoKKyAqIFVzZWQgZm9yIExEVCBjb3B5L2Rlc3RydWN0aW9uLgorICovCitpbnQgaW5pdF9uZXdfY29udGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwordm9pZCBkZXN0cm95X2NvbnRleHQoc3RydWN0IG1tX3N0cnVjdCAqbW0pOworCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogIyBpbmNsdWRlICJtbXVfY29udGV4dF8zMi5oIgogI2Vsc2UKICMgaW5jbHVkZSAibW11X2NvbnRleHRfNjQuaCIKICNlbmRpZgorCisjZGVmaW5lIGFjdGl2YXRlX21tKHByZXYsIG5leHQpCQkJXAorZG8gewkJCQkJCVwKKwlwYXJhdmlydF9hY3RpdmF0ZV9tbSgocHJldiksIChuZXh0KSk7CVwKKwlzd2l0Y2hfbW0oKHByZXYpLCAobmV4dCksIE5VTEwpOwlcCit9IHdoaWxlICgwKTsKKworCisjZW5kaWYgLyogX19BU01fWDg2X01NVV9DT05URVhUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dF8zMi5oIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzMyLmgKaW5kZXggOTc1NmFlMC4uODI0ZmM1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzMyLmgKQEAgLTEsMjggKzEsNiBAQAogI2lmbmRlZiBfX0kzODZfU0NIRURfSAogI2RlZmluZSBfX0kzODZfU0NIRURfSAogCi0jaW5jbHVkZSA8YXNtL2Rlc2MuaD4KLSNpbmNsdWRlIDxhc20vYXRvbWljLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KLSNpbmNsdWRlIDxhc20vdGxiZmx1c2guaD4KLSNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KLSNpZm5kZWYgQ09ORklHX1BBUkFWSVJUCi0jaW5jbHVkZSA8YXNtLWdlbmVyaWMvbW1faG9va3MuaD4KLQotc3RhdGljIGlubGluZSB2b2lkIHBhcmF2aXJ0X2FjdGl2YXRlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKnByZXYsCi0JCQkJCXN0cnVjdCBtbV9zdHJ1Y3QgKm5leHQpCi17Ci19Ci0jZW5kaWYJLyogIUNPTkZJR19QQVJBVklSVCAqLwotCi0KLS8qCi0gKiBVc2VkIGZvciBMRFQgY29weS9kZXN0cnVjdGlvbi4KLSAqLwotaW50IGluaXRfbmV3X2NvbnRleHQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKLXZvaWQgZGVzdHJveV9jb250ZXh0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKLQotCiBzdGF0aWMgaW5saW5lIHZvaWQgZW50ZXJfbGF6eV90bGIoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQogewogI2lmZGVmIENPTkZJR19TTVAKQEAgLTc1LDEwICs1Myw0IEBACiAjZGVmaW5lIGRlYWN0aXZhdGVfbW0odHNrLCBtbSkJCQlcCiAJYXNtKCJtb3ZsICUwLCUlZ3MiOiA6InIiICgwKSk7CiAKLSNkZWZpbmUgYWN0aXZhdGVfbW0ocHJldiwgbmV4dCkJCQlcCi1kbyB7CQkJCQkJXAotCXBhcmF2aXJ0X2FjdGl2YXRlX21tKChwcmV2KSwgKG5leHQpKTsJXAotCXN3aXRjaF9tbSgocHJldiksIChuZXh0KSwgTlVMTCk7CVwKLX0gd2hpbGUgKDApOwotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dF82NC5oIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzY0LmgKaW5kZXggY2E0NGM3MS4uYzcwMDA2MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzY0LmgKQEAgLTEsMjEgKzEsNyBAQAogI2lmbmRlZiBfX1g4Nl82NF9NTVVfQ09OVEVYVF9ICiAjZGVmaW5lIF9fWDg2XzY0X01NVV9DT05URVhUX0gKIAotI2luY2x1ZGUgPGFzbS9kZXNjLmg+Ci0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL3BkYS5oPgotI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Ci0jaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+Ci0jaWZuZGVmIENPTkZJR19QQVJBVklSVAotI2luY2x1ZGUgPGFzbS1nZW5lcmljL21tX2hvb2tzLmg+Ci0jZW5kaWYKLQotLyoKLSAqIHBvc3NpYmx5IGRvIHRoZSBMRFQgdW5sb2FkIGhlcmU/Ci0gKi8KLWludCBpbml0X25ld19jb250ZXh0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSk7Ci12b2lkIGRlc3Ryb3lfY29udGV4dChzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBlbnRlcl9sYXp5X3RsYihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiB7CkBAIC02NSw4ICs1MSw0IEBACiAJYXNtIHZvbGF0aWxlKCJtb3ZsICUwLCUlZnMiOjoiciIoMCkpOwlcCiB9IHdoaWxlICgwKQogCi0jZGVmaW5lIGFjdGl2YXRlX21tKHByZXYsIG5leHQpCQkJXAotCXN3aXRjaF9tbSgocHJldiksIChuZXh0KSwgTlVMTCkKLQotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tbXpvbmVfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tbXpvbmVfMzIuaAppbmRleCBjYjJjYWQwLi5iMjI5OGEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbW16b25lXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21tem9uZV8zMi5oCkBAIC0xMiwxMSArMTIsOSBAQAogZXh0ZXJuIHN0cnVjdCBwZ2xpc3RfZGF0YSAqbm9kZV9kYXRhW107CiAjZGVmaW5lIE5PREVfREFUQShuaWQpCShub2RlX2RhdGFbbmlkXSkKIAotI2lmZGVmIENPTkZJR19YODZfTlVNQVEKLQkjaW5jbHVkZSA8YXNtL251bWFxLmg+Ci0jZWxpZiBkZWZpbmVkKENPTkZJR19BQ1BJX1NSQVQpLyogc3VtbWl0IG9yIGdlbmVyaWMgYXJjaCAqLwotCSNpbmNsdWRlIDxhc20vc3JhdC5oPgotI2VuZGlmCisjaW5jbHVkZSA8YXNtL251bWFxLmg+CisvKiBzdW1taXQgb3IgZ2VuZXJpYyBhcmNoICovCisjaW5jbHVkZSA8YXNtL3NyYXQuaD4KIAogZXh0ZXJuIGludCBnZXRfbWVtY2ZnX251bWFfZmxhdCh2b2lkKTsKIC8qCkBAIC0yNiwyOCArMjQsMjAgQEAKICAqLwogc3RhdGljIGlubGluZSB2b2lkIGdldF9tZW1jZmdfbnVtYSh2b2lkKQogewotI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwogCWlmIChnZXRfbWVtY2ZnX251bWFxKCkpCiAJCXJldHVybjsKLSNlbGlmIGRlZmluZWQoQ09ORklHX0FDUElfU1JBVCkKIAlpZiAoZ2V0X21lbWNmZ19mcm9tX3NyYXQoKSkKIAkJcmV0dXJuOwotI2VuZGlmCi0KIAlnZXRfbWVtY2ZnX251bWFfZmxhdCgpOwogfQogCiBleHRlcm4gaW50IGVhcmx5X3Bmbl90b19uaWQodW5zaWduZWQgbG9uZyBwZm4pOwotZXh0ZXJuIHZvaWQgbnVtYV9rdmFfcmVzZXJ2ZSh2b2lkKTsKIAogI2Vsc2UgLyogIUNPTkZJR19OVU1BICovCiAKICNkZWZpbmUgZ2V0X21lbWNmZ19udW1hIGdldF9tZW1jZmdfbnVtYV9mbGF0Ci0jZGVmaW5lIGdldF96aG9sZXNfc2l6ZShuKSAoMCkKIAotc3RhdGljIGlubGluZSB2b2lkIG51bWFfa3ZhX3Jlc2VydmUodm9pZCkKLXsKLX0KICNlbmRpZiAvKiBDT05GSUdfTlVNQSAqLwogCiAjaWZkZWYgQ09ORklHX0RJU0NPTlRJR01FTQpAQCAtNTUsMTQgKzQ1LDE0IEBACiAvKgogICogZ2VuZXJpYyBub2RlIG1lbW9yeSBzdXBwb3J0LCB0aGUgZm9sbG93aW5nIGFzc3VtcHRpb25zIGFwcGx5OgogICoKLSAqIDEpIG1lbW9yeSBjb21lcyBpbiAyNTZNYiBjb250aWdpb3VzIGNodW5rcyB3aGljaCBhcmUgZWl0aGVyIHByZXNlbnQgb3Igbm90CisgKiAxKSBtZW1vcnkgY29tZXMgaW4gNjRNYiBjb250aWdpb3VzIGNodW5rcyB3aGljaCBhcmUgZWl0aGVyIHByZXNlbnQgb3Igbm90CiAgKiAyKSB3ZSB3aWxsIG5vdCBoYXZlIG1vcmUgdGhhbiA2NEdiIGluIHRvdGFsCiAgKgogICogZm9yIG5vdyBhc3N1bWUgdGhhdCA2NEdiIGlzIG1heCBhbW91bnQgb2YgUkFNIGZvciB3aG9sZSBzeXN0ZW0KICAqICAgIDY0R2IgLyA0MDk2Ynl0ZXMvcGFnZSA9IDE2Nzc3MjE2IHBhZ2VzCiAgKi8KICNkZWZpbmUgTUFYX05SX1BBR0VTIDE2Nzc3MjE2Ci0jZGVmaW5lIE1BWF9FTEVNRU5UUyAyNTYKKyNkZWZpbmUgTUFYX0VMRU1FTlRTIDEwMjQKICNkZWZpbmUgUEFHRVNfUEVSX0VMRU1FTlQgKE1BWF9OUl9QQUdFUy9NQVhfRUxFTUVOVFMpCiAKIGV4dGVybiBzOCBwaHlzbm9kZV9tYXBbXTsKQEAgLTg3LDkgKzc3LDYgQEAKIAlfX3BnZGF0LT5ub2RlX3N0YXJ0X3BmbiArIF9fcGdkYXQtPm5vZGVfc3Bhbm5lZF9wYWdlczsJCVwKIH0pCiAKLSNpZmRlZiBDT05GSUdfWDg2X05VTUFRICAgICAgICAgICAgLyogd2UgaGF2ZSBjb250aWd1b3VzIG1lbW9yeSBvbiBOVU1BLVEgKi8KLSNkZWZpbmUgcGZuX3ZhbGlkKHBmbikgICAgICAgICAgKChwZm4pIDwgbnVtX3BoeXNwYWdlcykKLSNlbHNlCiBzdGF0aWMgaW5saW5lIGludCBwZm5fdmFsaWQoaW50IHBmbikKIHsKIAlpbnQgbmlkID0gcGZuX3RvX25pZChwZm4pOwpAQCAtOTgsNyArODUsNiBAQAogCQlyZXR1cm4gKHBmbiA8IG5vZGVfZW5kX3BmbihuaWQpKTsKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDT05GSUdfWDg2X05VTUFRICovCiAKICNlbmRpZiAvKiBDT05GSUdfRElTQ09OVElHTUVNICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tcHNwZWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tcHNwZWMuaAppbmRleCA1N2E5OTFiLi5iNjk5NWU1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbXBzcGVjLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21wc3BlYy5oCkBAIC0xMyw2ICsxMywxMiBAQAogZXh0ZXJuIHU4IGFwaWNpZF8yX25vZGVbXTsKIGV4dGVybiBpbnQgcGljX21vZGU7CiAKKyNpZmRlZiBDT05GSUdfWDg2X05VTUFRCitleHRlcm4gaW50IG1wX2J1c19pZF90b19ub2RlW01BWF9NUF9CVVNTRVNdOworZXh0ZXJuIGludCBtcF9idXNfaWRfdG9fbG9jYWxbTUFYX01QX0JVU1NFU107CitleHRlcm4gaW50IHF1YWRfbG9jYWxfdG9fbXBfYnVzX2lkIFtOUl9DUFVTLzRdWzRdOworI2VuZGlmCisKICNkZWZpbmUgTUFYX0FQSUNJRCAyNTYKIAogI2Vsc2UKQEAgLTIxLDI2ICsyNywzMCBAQAogLyogRWFjaCBQQ0kgc2xvdCBtYXkgYmUgYSBjb21ibyBjYXJkIHdpdGggaXRzIG93biBidXMuICA0IElSUSBwaW5zIHBlciBzbG90LiAqLwogI2RlZmluZSBNQVhfSVJRX1NPVVJDRVMgKE1BWF9NUF9CVVNTRVMgKiA0KQogCisjZW5kaWYKKwogZXh0ZXJuIHZvaWQgZWFybHlfZmluZF9zbXBfY29uZmlnKHZvaWQpOwogZXh0ZXJuIHZvaWQgZWFybHlfZ2V0X3NtcF9jb25maWcodm9pZCk7CiAKLSNlbmRpZgotCiAjaWYgZGVmaW5lZChDT05GSUdfTUNBKSB8fCBkZWZpbmVkKENPTkZJR19FSVNBKQogZXh0ZXJuIGludCBtcF9idXNfaWRfdG9fdHlwZVtNQVhfTVBfQlVTU0VTXTsKICNlbmRpZgogCiBleHRlcm4gREVDTEFSRV9CSVRNQVAobXBfYnVzX25vdF9wY2ksIE1BWF9NUF9CVVNTRVMpOwogCi1leHRlcm4gaW50IG1wX2J1c19pZF90b19wY2lfYnVzW01BWF9NUF9CVVNTRVNdOwotCiBleHRlcm4gdW5zaWduZWQgaW50IGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZDsKK2V4dGVybiB1bnNpZ25lZCBpbnQgbWF4X3BoeXNpY2FsX2FwaWNpZDsKIGV4dGVybiBpbnQgc21wX2ZvdW5kX2NvbmZpZzsKIGV4dGVybiBpbnQgbXBjX2RlZmF1bHRfdHlwZTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG1wX2xhcGljX2FkZHI7CiAKIGV4dGVybiB2b2lkIGZpbmRfc21wX2NvbmZpZyh2b2lkKTsKIGV4dGVybiB2b2lkIGdldF9zbXBfY29uZmlnKHZvaWQpOworI2lmZGVmIENPTkZJR19YODZfTVBQQVJTRQorZXh0ZXJuIHZvaWQgZWFybHlfcmVzZXJ2ZV9lODIwX21wY19uZXcodm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGVhcmx5X3Jlc2VydmVfZTgyMF9tcGNfbmV3KHZvaWQpIHsgfQorI2VuZGlmCiAKIHZvaWQgX19jcHVpbml0IGdlbmVyaWNfcHJvY2Vzc29yX2luZm8oaW50IGFwaWNpZCwgaW50IHZlcnNpb24pOwogI2lmZGVmIENPTkZJR19BQ1BJCkBAIC00OSw2ICs1OSwxNyBAQAogCQkJCSAgIHUzMiBnc2kpOwogZXh0ZXJuIHZvaWQgbXBfY29uZmlnX2FjcGlfbGVnYWN5X2lycXModm9pZCk7CiBleHRlcm4gaW50IG1wX3JlZ2lzdGVyX2dzaSh1MzIgZ3NpLCBpbnQgZWRnZV9sZXZlbCwgaW50IGFjdGl2ZV9oaWdoX2xvdyk7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCitleHRlcm4gaW50IG1wX2NvbmZpZ19hY3BpX2dzaSh1bnNpZ25lZCBjaGFyIG51bWJlciwgdW5zaWduZWQgaW50IGRldmZuLCB1OCBwaW4sCisJCQkJdTMyIGdzaSwgaW50IHRyaWdnZXJpbmcsIGludCBwb2xhcml0eSk7CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQKK21wX2NvbmZpZ19hY3BpX2dzaSh1bnNpZ25lZCBjaGFyIG51bWJlciwgdW5zaWduZWQgaW50IGRldmZuLCB1OCBwaW4sCisJCSAgIHUzMiBnc2ksIGludCB0cmlnZ2VyaW5nLCBpbnQgcG9sYXJpdHkpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKICNlbmRpZiAvKiBDT05GSUdfQUNQSSAqLwogCiAjZGVmaW5lIFBIWVNJRF9BUlJBWV9TSVpFCUJJVFNfVE9fTE9OR1MoTUFYX0FQSUNTKQpAQCAtMTAxLDYgKzEyMiw3IEBACiAJCV9fcGh5c2lkX21hc2s7CQkJCQkJXAogCX0pCiAKKy8qIE5vdGU6IHdpbGwgY3JlYXRlIHZlcnkgbGFyZ2Ugc3RhY2sgZnJhbWVzIGlmIHBoeXNpZF9tYXNrX3QgaXMgYmlnICovCiAjZGVmaW5lIHBoeXNpZF9tYXNrX29mX3BoeXNpZChwaHlzaWQpCQkJCQlcCiAJKHsJCQkJCQkJCVwKIAkJcGh5c2lkX21hc2tfdCBfX3BoeXNpZF9tYXNrID0gUEhZU0lEX01BU0tfTk9ORTsJCVwKQEAgLTEwOCw2ICsxMzAsMTIgQEAKIAkJX19waHlzaWRfbWFzazsJCQkJCQlcCiAJfSkKIAorc3RhdGljIGlubGluZSB2b2lkIHBoeXNpZF9zZXRfbWFza19vZl9waHlzaWQoaW50IHBoeXNpZCwgcGh5c2lkX21hc2tfdCAqbWFwKQoreworCXBoeXNpZHNfY2xlYXIoKm1hcCk7CisJcGh5c2lkX3NldChwaHlzaWQsICptYXApOworfQorCiAjZGVmaW5lIFBIWVNJRF9NQVNLX0FMTAkJeyB7WzAgLi4uIFBIWVNJRF9BUlJBWV9TSVpFLTFdID0gfjBVTH0gfQogI2RlZmluZSBQSFlTSURfTUFTS19OT05FCXsge1swIC4uLiBQSFlTSURfQVJSQVlfU0laRS0xXSA9IDBVTH0gfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbXBzcGVjX2RlZi5oIGIvaW5jbHVkZS9hc20teDg2L21wc3BlY19kZWYuaAppbmRleCBkYzZlZjg1Li4zOGQxZTczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbXBzcGVjX2RlZi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tcHNwZWNfZGVmLmgKQEAgLTE3LDEwICsxNywxMSBAQAogIyBkZWZpbmUgTUFYX01QQ19FTlRSWSAxMDI0CiAjIGRlZmluZSBNQVhfQVBJQ1MgICAgICAyNTYKICNlbHNlCi0vKgotICogQSBtYXhpbXVtIG9mIDI1NSBBUElDcyB3aXRoIHRoZSBjdXJyZW50IEFQSUMgSUQgYXJjaGl0ZWN0dXJlLgotICovCi0jIGRlZmluZSBNQVhfQVBJQ1MgMjU1CisjIGlmIE5SX0NQVVMgPD0gMjU1CisjICBkZWZpbmUgTUFYX0FQSUNTICAgICAyNTUKKyMgZWxzZQorIyAgZGVmaW5lIE1BWF9BUElDUyAgIDMyNzY4CisjIGVuZGlmCiAjZW5kaWYKIAogc3RydWN0IGludGVsX21wX2Zsb2F0aW5nIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaCBiL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaAppbmRleCAwOTQxM2FkLi40NGJjZTc3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbXNyLWluZGV4LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21zci1pbmRleC5oCkBAIC0xMTEsNyArMTExLDkgQEAKICNkZWZpbmUgTVNSX0s4X1RPUF9NRU0yCQkJMHhjMDAxMDAxZAogI2RlZmluZSBNU1JfSzhfU1lTQ0ZHCQkJMHhjMDAxMDAxMAogI2RlZmluZSBNU1JfSzhfSFdDUgkJCTB4YzAwMTAwMTUKLSNkZWZpbmUgTVNSX0s4X0VOQUJMRV9DMUUJCTB4YzAwMTAwNTUKKyNkZWZpbmUgTVNSX0s4X0lOVF9QRU5ESU5HX01TRwkJMHhjMDAxMDA1NQorLyogQzFFIGFjdGl2ZSBiaXRzIGluIGludCBwZW5kaW5nIG1lc3NhZ2UgKi8KKyNkZWZpbmUgSzhfSU5UUF9DMUVfQUNUSVZFX01BU0sJCTB4MTgwMDAwMDAKICNkZWZpbmUgTVNSX0s4X1RTRUdfQUREUgkJMHhjMDAxMDExMgogI2RlZmluZSBLOF9NVFJSRklYUkFOR0VfRFJBTV9FTkFCTEUJMHgwMDA0MDAwMCAvKiBNdHJyRml4RHJhbUVuIGJpdCAgICAqLwogI2RlZmluZSBLOF9NVFJSRklYUkFOR0VfRFJBTV9NT0RJRlkJMHgwMDA4MDAwMCAvKiBNdHJyRml4RHJhbU1vZEVuIGJpdCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21zci5oIGIvaW5jbHVkZS9hc20teDg2L21zci5oCmluZGV4IDM3MDc2NTAuLmNhMTEwZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tc3IuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbXNyLmgKQEAgLTE4LDcgKzE4LDcgQEAKIAl1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKIAlhc20gdm9sYXRpbGUoIi5ieXRlIDB4MGYsMHgwMSwweGY5IgogCQkgICAgIDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCksICI9YyIgKCphdXgpKTsKLQlyZXR1cm4gbG93IHwgKCh1NjQpaGlnaCA+PiAzMik7CisJcmV0dXJuIGxvdyB8ICgodTY0KWhpZ2ggPDwgMzIpOwogfQogCiAvKgpAQCAtNjYsNyArNjYsNyBAQAogc3RhdGljIGlubGluZSB2b2lkIG5hdGl2ZV93cml0ZV9tc3IodW5zaWduZWQgaW50IG1zciwKIAkJCQkgICAgdW5zaWduZWQgbG93LCB1bnNpZ25lZCBoaWdoKQogewotCWFzbSB2b2xhdGlsZSgid3Jtc3IiIDogOiAiYyIgKG1zciksICJhIihsb3cpLCAiZCIgKGhpZ2gpKTsKKwlhc20gdm9sYXRpbGUoIndybXNyIiA6IDogImMiIChtc3IpLCAiYSIobG93KSwgImQiIChoaWdoKSA6ICJtZW1vcnkiKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgbmF0aXZlX3dyaXRlX21zcl9zYWZlKHVuc2lnbmVkIGludCBtc3IsCkBAIC04MSw3ICs4MSw4IEBACiAJCSAgICAgX0FTTV9FWFRBQkxFKDJiLCAzYikKIAkJICAgICA6ICI9YSIgKGVycikKIAkJICAgICA6ICJjIiAobXNyKSwgIjAiIChsb3cpLCAiZCIgKGhpZ2gpLAotCQkgICAgICJpIiAoLUVGQVVMVCkpOworCQkgICAgICAgImkiICgtRUZBVUxUKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9ubWkuaCBiL2luY2x1ZGUvYXNtLXg4Ni9ubWkuaAppbmRleCAxZTM2MzAyLi4yMWY4ZDAyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbm1pLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L25taS5oCkBAIC0xNSwzOCArMTUsMTMgQEAKICAqLwogaW50IGRvX25taV9jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSk7CiAKLSNpZmRlZiBDT05GSUdfUE0KLQotLyoqIFJlcGxhY2UgdGhlIFBNIGNhbGxiYWNrIHJvdXRpbmUgZm9yIE5NSS4gKi8KLXN0cnVjdCBwbV9kZXYgKnNldF9ubWlfcG1fY2FsbGJhY2socG1fY2FsbGJhY2sgY2FsbGJhY2spOwotCi0vKiogVW5zZXQgdGhlIFBNIGNhbGxiYWNrIHJvdXRpbmUgYmFjayB0byB0aGUgZGVmYXVsdC4gKi8KLXZvaWQgdW5zZXRfbm1pX3BtX2NhbGxiYWNrKHN0cnVjdCBwbV9kZXYgKmRldik7Ci0KLSNlbHNlCi0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IHBtX2RldiAqc2V0X25taV9wbV9jYWxsYmFjayhwbV9jYWxsYmFjayBjYWxsYmFjaykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHVuc2V0X25taV9wbV9jYWxsYmFjayhzdHJ1Y3QgcG1fZGV2ICpkZXYpCi17Ci19Ci0KLSNlbmRpZiAvKiBDT05GSUdfUE0gKi8KLQogI2lmZGVmIENPTkZJR19YODZfNjQKIGV4dGVybiB2b2lkIGRlZmF1bHRfZG9fbm1pKHN0cnVjdCBwdF9yZWdzICopOwotZXh0ZXJuIHZvaWQgZGllX25taShjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgZG9fcGFuaWMpOwotZXh0ZXJuIHZvaWQgbm1pX3dhdGNoZG9nX2RlZmF1bHQodm9pZCk7Ci0jZWxzZQotI2RlZmluZSBubWlfd2F0Y2hkb2dfZGVmYXVsdCgpIGRvIHt9IHdoaWxlICgwKQogI2VuZGlmCiAKK2V4dGVybiB2b2lkIGRpZV9ubWkoY2hhciAqc3RyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGRvX3BhbmljKTsKIGV4dGVybiBpbnQgY2hlY2tfbm1pX3dhdGNoZG9nKHZvaWQpOwogZXh0ZXJuIGludCBubWlfd2F0Y2hkb2dfZW5hYmxlZDsKLWV4dGVybiBpbnQgdW5rbm93bl9ubWlfcGFuaWM7CiBleHRlcm4gaW50IGF2YWlsX3RvX3Jlc3J2X3BlcmZjdHJfbm1pX2JpdCh1bnNpZ25lZCBpbnQpOwogZXh0ZXJuIGludCBhdmFpbF90b19yZXNydl9wZXJmY3RyX25taSh1bnNpZ25lZCBpbnQpOwogZXh0ZXJuIGludCByZXNlcnZlX3BlcmZjdHJfbm1pKHVuc2lnbmVkIGludCk7CkBAIC02MiwxMiArMzcsMTAgQEAKIAogZXh0ZXJuIGF0b21pY190IG5taV9hY3RpdmU7CiBleHRlcm4gdW5zaWduZWQgaW50IG5taV93YXRjaGRvZzsKLSNkZWZpbmUgTk1JX0RJU0FCTEVEICAgIC0xCiAjZGVmaW5lIE5NSV9OT05FCTAKICNkZWZpbmUgTk1JX0lPX0FQSUMJMQogI2RlZmluZSBOTUlfTE9DQUxfQVBJQwkyCiAjZGVmaW5lIE5NSV9JTlZBTElECTMKLSNkZWZpbmUgTk1JX0RFRkFVTFQJTk1JX0RJU0FCTEVECiAKIHN0cnVjdCBjdGxfdGFibGU7CiBzdHJ1Y3QgZmlsZTsKQEAgLTc4LDYgKzUxLDI0IEBACiB2b2lkIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSh2b2lkKTsKICNkZWZpbmUgdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSgpIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSgpCiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBsb2NhbGlzZV9ubWlfd2F0Y2hkb2codm9pZCkKK3sKKwlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQorCQlubWlfd2F0Y2hkb2cgPSBOTUlfTE9DQUxfQVBJQzsKK30KKworLyogY2hlY2sgaWYgbm1pX3dhdGNoZG9nIGlzIGFjdGl2ZSAoaWUgd2FzIHNwZWNpZmllZCBhdCBib290KSAqLworc3RhdGljIGlubGluZSBpbnQgbm1pX3dhdGNoZG9nX2FjdGl2ZSh2b2lkKQoreworCS8qCisJICogYWN0dWFsbHkgaXQgc2hvdWxkIGJlOgorCSAqIAlyZXR1cm4gKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQyB8fAorCSAqIAkJbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQorCSAqIGJ1dCBzaW5jZSB0aGV5IGFyZSBwb3dlciBvZiB0d28gd2UgY291bGQgdXNlIGEKKwkgKiBjaGVhcGVyIHdheSAtLWN2ZworCSAqLworCXJldHVybiBubWlfd2F0Y2hkb2cgJiAweDM7Cit9CiAjZW5kaWYKIAogdm9pZCBsYXBpY193YXRjaGRvZ19zdG9wKHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L251bWFfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9udW1hXzMyLmgKaW5kZXggMDNkMGY3YS4uMjIwZDdiNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L251bWFfMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbnVtYV8zMi5oCkBAIC0yLDE0ICsyLDEwIEBACiAjZGVmaW5lIF9BU01fWDg2XzMyX05VTUFfSCAxCiAKIGV4dGVybiBpbnQgcHhtX3RvX25pZChpbnQgcHhtKTsKK2V4dGVybiB2b2lkIG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KTsKIAogI2lmZGVmIENPTkZJR19OVU1BCi1leHRlcm4gdm9pZCBfX2luaXQgcmVtYXBfbnVtYV9rdmEodm9pZCk7Ci1leHRlcm4gdm9pZCBzZXRfaGlnaG1lbV9wYWdlc19pbml0KGludCk7Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHJlbWFwX251bWFfa3ZhKHZvaWQpCi17Ci19CitleHRlcm4gdm9pZCBzZXRfaGlnaG1lbV9wYWdlc19pbml0KHZvaWQpOwogI2VuZGlmCiAKICNlbmRpZiAvKiBfQVNNX1g4Nl8zMl9OVU1BX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9udW1hXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvbnVtYV82NC5oCmluZGV4IDIyZTg3YzkuLjM4MzAwOTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9udW1hXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L251bWFfNjQuaApAQCAtMTQsMzIgKzE0LDMwIEBACiAKICNkZWZpbmUgWk9ORV9BTElHTiAoMVVMIDw8IChNQVhfT1JERVIrUEFHRV9TSElGVCkpCiAKLWV4dGVybiB2b2lkIG51bWFfYWRkX2NwdShpbnQgY3B1KTsKIGV4dGVybiB2b2lkIG51bWFfaW5pdF9hcnJheSh2b2lkKTsKIGV4dGVybiBpbnQgbnVtYV9vZmY7CiAKLWV4dGVybiB2b2lkIG51bWFfc2V0X25vZGUoaW50IGNwdSwgaW50IG5vZGUpOwogZXh0ZXJuIHZvaWQgc3JhdF9yZXNlcnZlX2FkZF9hcmVhKGludCBub2RlaWQpOwogZXh0ZXJuIGludCBob3RhZGRfcGVyY2VudDsKIAogZXh0ZXJuIHMxNiBhcGljaWRfdG9fbm9kZVtNQVhfTE9DQUxfQVBJQ107CiAKLWV4dGVybiB2b2lkIG51bWFfaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnVtYV9mcmVlX2FsbF9ib290bWVtKHZvaWQpOwogZXh0ZXJuIHZvaWQgc2V0dXBfbm9kZV9ib290bWVtKGludCBub2RlaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBlbmQpOwogCiAjaWZkZWYgQ09ORklHX05VTUEKIGV4dGVybiB2b2lkIF9faW5pdCBpbml0X2NwdV90b19ub2RlKHZvaWQpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfbm9kZV9jcHVtYXNrKGludCBjcHUpCi17Ci0JY2xlYXJfYml0KGNwdSwgKHVuc2lnbmVkIGxvbmcgKikmbm9kZV90b19jcHVtYXNrX21hcFtjcHVfdG9fbm9kZShjcHUpXSk7Ci19Ci0KK2V4dGVybiB2b2lkIF9fY3B1aW5pdCBudW1hX3NldF9ub2RlKGludCBjcHUsIGludCBub2RlKTsKK2V4dGVybiB2b2lkIF9fY3B1aW5pdCBudW1hX2NsZWFyX25vZGUoaW50IGNwdSk7CitleHRlcm4gdm9pZCBfX2NwdWluaXQgbnVtYV9hZGRfY3B1KGludCBjcHUpOworZXh0ZXJuIHZvaWQgX19jcHVpbml0IG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KTsKICNlbHNlCi0jZGVmaW5lIGluaXRfY3B1X3RvX25vZGUoKSBkbyB7fSB3aGlsZSAoMCkKLSNkZWZpbmUgY2xlYXJfbm9kZV9jcHVtYXNrKGNwdSkgZG8ge30gd2hpbGUgKDApCitzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9jcHVfdG9fbm9kZSh2b2lkKQkJeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgbnVtYV9zZXRfbm9kZShpbnQgY3B1LCBpbnQgbm9kZSkJeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgbnVtYV9jbGVhcl9ub2RlKGludCBjcHUpCQl7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBudW1hX2FkZF9jcHUoaW50IGNwdSwgaW50IG5vZGUpCXsgfQorc3RhdGljIGlubGluZSB2b2lkIG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KQkJeyB9CiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbnVtYXEuaCBiL2luY2x1ZGUvYXNtLXg4Ni9udW1hcS5oCmluZGV4IDk0Yjg2YzMuLjM0YjkyZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9udW1hcS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9udW1hcS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZmRlZiBDT05GSUdfWDg2X05VTUFRCiAKK2V4dGVybiBpbnQgZm91bmRfbnVtYXE7CiBleHRlcm4gaW50IGdldF9tZW1jZmdfbnVtYXEodm9pZCk7CiAKIC8qCkBAIC0xNTYsOSArMTU3LDEyIEBACiAJc3RydWN0CQllYWNocXVhZG1lbSBlcVtNQVhfTlVNTk9ERVNdOwkvKiBpbmRleGVkIGJ5IHF1YWQgaWQgKi8KIH07CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqZ2V0X3pob2xlc19zaXplKGludCBuaWQpCit2b2lkIG51bWFxX3RzY19kaXNhYmxlKHZvaWQpOworCisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgZ2V0X21lbWNmZ19udW1hcSh2b2lkKQogewotCXJldHVybiBOVUxMOworCXJldHVybiAwOwogfQogI2VuZGlmIC8qIENPTkZJR19YODZfTlVNQVEgKi8KICNlbmRpZiAvKiBOVU1BUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcGFnZS5oIGIvaW5jbHVkZS9hc20teDg2L3BhZ2UuaAppbmRleCBkYzkzNmRkLi4yOGQ3YjQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKQEAgLTUxLDkgKzUxLDE3IEBACiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKK3R5cGVkZWYgc3RydWN0IHsgcGdkdmFsX3QgcGdkOyB9IHBnZF90OwordHlwZWRlZiBzdHJ1Y3QgeyBwZ3Byb3R2YWxfdCBwZ3Byb3Q7IH0gcGdwcm90X3Q7CisKIGV4dGVybiBpbnQgcGFnZV9pc19yYW0odW5zaWduZWQgbG9uZyBwYWdlbnIpOwogZXh0ZXJuIGludCBkZXZtZW1faXNfYWxsb3dlZCh1bnNpZ25lZCBsb25nIHBhZ2Vucik7CitleHRlcm4gdm9pZCBtYXBfZGV2bWVtKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIHNpemUsCisJCSAgICAgICBwZ3Byb3RfdCB2bWFfcHJvdCk7CitleHRlcm4gdm9pZCB1bm1hcF9kZXZtZW0odW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCSBwZ3Byb3RfdCB2bWFfcHJvdCk7CiAKK2V4dGVybiB1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuX21hcHBlZDsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG1heF9wZm5fbWFwcGVkOwogCiBzdHJ1Y3QgcGFnZTsKQEAgLTc0LDkgKzgyLDYgQEAKIAlhbGxvY19wYWdlX3ZtYShHRlBfSElHSFVTRVIgfCBfX0dGUF9aRVJPIHwgbW92YWJsZWZsYWdzLCB2bWEsIHZhZGRyKQogI2RlZmluZSBfX0hBVkVfQVJDSF9BTExPQ19aRVJPRURfVVNFUl9ISUdIUEFHRQogCi10eXBlZGVmIHN0cnVjdCB7IHBnZHZhbF90IHBnZDsgfSBwZ2RfdDsKLXR5cGVkZWYgc3RydWN0IHsgcGdwcm90dmFsX3QgcGdwcm90OyB9IHBncHJvdF90OwotCiBzdGF0aWMgaW5saW5lIHBnZF90IG5hdGl2ZV9tYWtlX3BnZChwZ2R2YWxfdCB2YWwpCiB7CiAJcmV0dXJuIChwZ2RfdCkgeyB2YWwgfTsKQEAgLTE2MCw2ICsxNjUsNyBAQAogI2VuZGlmCiAKICNkZWZpbmUgcHRlX3ZhbCh4KQluYXRpdmVfcHRlX3ZhbCh4KQorI2RlZmluZSBwdGVfZmxhZ3MoeCkJbmF0aXZlX3B0ZV92YWwoeCkKICNkZWZpbmUgX19wdGUoeCkJbmF0aXZlX21ha2VfcHRlKHgpCiAKICNlbmRpZgkvKiBDT05GSUdfUEFSQVZJUlQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wYWdlXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvcGFnZV8zMi5oCmluZGV4IGNjZjBiYTMuLmFiODUyODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wYWdlXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BhZ2VfMzIuaApAQCAtMTMsNiArMTMsMTQgQEAKICAqLwogI2RlZmluZSBfX1BBR0VfT0ZGU0VUCQlfQUMoQ09ORklHX1BBR0VfT0ZGU0VULCBVTCkKIAorI2lmZGVmIENPTkZJR180S1NUQUNLUworI2RlZmluZSBUSFJFQURfT1JERVIJMAorI2Vsc2UKKyNkZWZpbmUgVEhSRUFEX09SREVSCTEKKyNlbmRpZgorI2RlZmluZSBUSFJFQURfU0laRSAJKFBBR0VfU0laRSA8PCBUSFJFQURfT1JERVIpCisKKwogI2lmZGVmIENPTkZJR19YODZfUEFFCiAvKiA0ND0zMisxMiwgdGhlIGxpbWl0IHdlIGNhbiBmaXQgaW50byBhbiB1bnNpZ25lZCBsb25nIHBmbiAqLwogI2RlZmluZSBfX1BIWVNJQ0FMX01BU0tfU0hJRlQJNDQKQEAgLTg0LDYgKzkyLDEzIEBACiAjZGVmaW5lIFZNQUxMT0NfUkVTRVJWRQkJKCh1bnNpZ25lZCBsb25nKV9fVk1BTExPQ19SRVNFUlZFKQogI2RlZmluZSBNQVhNRU0JCQkoLV9fUEFHRV9PRkZTRVQgLSBfX1ZNQUxMT0NfUkVTRVJWRSkKIAorZXh0ZXJuIHZvaWQgZmluZF9sb3dfcGZuX3JhbmdlKHZvaWQpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5pdF9tZW1vcnlfbWFwcGluZyh1bnNpZ25lZCBsb25nIHN0YXJ0LAorCQkJCQkgdW5zaWduZWQgbG9uZyBlbmQpOworZXh0ZXJuIHZvaWQgaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOworZXh0ZXJuIHZvaWQgc2V0dXBfYm9vdG1lbV9hbGxvY2F0b3Iodm9pZCk7CisKKwogI2lmZGVmIENPTkZJR19YODZfVVNFXzNETk9XCiAjaW5jbHVkZSA8YXNtL21teC5oPgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcGFnZV82NC5oIGIvaW5jbHVkZS9hc20teDg2L3BhZ2VfNjQuaAppbmRleCA2ZWE3Mjg1Li5jNjkxNmM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGFnZV82NC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wYWdlXzY0LmgKQEAgLTI2LDcgKzI2LDEzIEBACiAjZGVmaW5lIFBVRF9QQUdFX1NJWkUJCShfQUMoMSwgVUwpIDw8IFBVRF9TSElGVCkKICNkZWZpbmUgUFVEX1BBR0VfTUFTSwkJKH4oUFVEX1BBR0VfU0laRS0xKSkKIAotI2RlZmluZSBfX1BBR0VfT0ZGU0VUICAgICAgICAgICBfQUMoMHhmZmZmODEwMDAwMDAwMDAwLCBVTCkKKy8qCisgKiBTZXQgX19QQUdFX09GRlNFVCB0byB0aGUgbW9zdCBuZWdhdGl2ZSBwb3NzaWJsZSBhZGRyZXNzICsKKyAqIFBHRElSX1NJWkUqMTYgKHBnZCBzbG90IDI3MikuICBUaGUgZ2FwIGlzIHRvIGFsbG93IGEgc3BhY2UgZm9yIGEKKyAqIGh5cGVydmlzb3IgdG8gZml0LiAgQ2hvb3NpbmcgMTYgc2xvdHMgaGVyZSBpcyBhcmJpdHJhcnksIGJ1dCBpdCdzCisgKiB3aGF0IFhlbiByZXF1aXJlcy4KKyAqLworI2RlZmluZSBfX1BBR0VfT0ZGU0VUICAgICAgICAgICBfQUMoMHhmZmZmODgwMDAwMDAwMDAwLCBVTCkKIAogI2RlZmluZSBfX1BIWVNJQ0FMX1NUQVJUCUNPTkZJR19QSFlTSUNBTF9TVEFSVAogI2RlZmluZSBfX0tFUk5FTF9BTElHTgkJMHgyMDAwMDAKQEAgLTU4LDcgKzY0LDggQEAKIHZvaWQgY2xlYXJfcGFnZSh2b2lkICpwYWdlKTsKIHZvaWQgY29weV9wYWdlKHZvaWQgKnRvLCB2b2lkICpmcm9tKTsKIAotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZW5kX3BmbjsKKy8qIGR1cGxpY2F0ZWQgdG8gdGhlIG9uZSBpbiBib290bWVtLmggKi8KK2V4dGVybiB1bnNpZ25lZCBsb25nIG1heF9wZm47CiBleHRlcm4gdW5zaWduZWQgbG9uZyBwaHlzX2Jhc2U7CiAKIGV4dGVybiB1bnNpZ25lZCBsb25nIF9fcGh5c19hZGRyKHVuc2lnbmVkIGxvbmcpOwpAQCAtODMsMTAgKzkwLDE1IEBACiBleHRlcm4gdW5zaWduZWQgbG9uZyBpbml0X21lbW9yeV9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJCQkJCSB1bnNpZ25lZCBsb25nIGVuZCk7CiAKK2V4dGVybiB2b2lkIGluaXRtZW1faW5pdCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKKworZXh0ZXJuIHZvaWQgaW5pdF9leHRyYV9tYXBwaW5nX3VjKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiB2b2lkIGluaXRfZXh0cmFfbWFwcGluZ193Yih1bnNpZ25lZCBsb25nIHBoeXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CisKICNlbmRpZgkvKiAhX19BU1NFTUJMWV9fICovCiAKICNpZmRlZiBDT05GSUdfRkxBVE1FTQotI2RlZmluZSBwZm5fdmFsaWQocGZuKSAgICAgICAgICAoKHBmbikgPCBlbmRfcGZuKQorI2RlZmluZSBwZm5fdmFsaWQocGZuKSAgICAgICAgICAoKHBmbikgPCBtYXhfcGZuKQogI2VuZGlmCiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BhcmF2aXJ0LmggYi9pbmNsdWRlL2FzbS14ODYvcGFyYXZpcnQuaAppbmRleCAwZjEzYjk0Li5lZjVlOGVjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGFyYXZpcnQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGFyYXZpcnQuaApAQCAtODQsNyArODQsNyBAQAogCWludCAoKnNldF93YWxsY2xvY2spKHVuc2lnbmVkIGxvbmcpOwogCiAJdW5zaWduZWQgbG9uZyBsb25nICgqc2NoZWRfY2xvY2spKHZvaWQpOwotCXVuc2lnbmVkIGxvbmcgKCpnZXRfY3B1X2toeikodm9pZCk7CisJdW5zaWduZWQgbG9uZyAoKmdldF90c2Nfa2h6KSh2b2lkKTsKIH07CiAKIHN0cnVjdCBwdl9jcHVfb3BzIHsKQEAgLTExNSw2ICsxMTUsOSBAQAogCXZvaWQgKCpzZXRfbGR0KShjb25zdCB2b2lkICpkZXNjLCB1bnNpZ25lZCBlbnRyaWVzKTsKIAl1bnNpZ25lZCBsb25nICgqc3RvcmVfdHIpKHZvaWQpOwogCXZvaWQgKCpsb2FkX3Rscykoc3RydWN0IHRocmVhZF9zdHJ1Y3QgKnQsIHVuc2lnbmVkIGludCBjcHUpOworI2lmZGVmIENPTkZJR19YODZfNjQKKwl2b2lkICgqbG9hZF9nc19pbmRleCkodW5zaWduZWQgaW50IGlkeCk7CisjZW5kaWYKIAl2b2lkICgqd3JpdGVfbGR0X2VudHJ5KShzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmxkdCwgaW50IGVudHJ5bnVtLAogCQkJCWNvbnN0IHZvaWQgKmRlc2MpOwogCXZvaWQgKCp3cml0ZV9nZHRfZW50cnkpKHN0cnVjdCBkZXNjX3N0cnVjdCAqLApAQCAtMTQxLDggKzE0NCwzMiBAQAogCXU2NCAoKnJlYWRfcG1jKShpbnQgY291bnRlcik7CiAJdW5zaWduZWQgbG9uZyBsb25nICgqcmVhZF90c2NwKSh1bnNpZ25lZCBpbnQgKmF1eCk7CiAKLQkvKiBUaGVzZSB0d28gYXJlIGptcCB0bywgbm90IGFjdHVhbGx5IGNhbGxlZC4gKi8KLQl2b2lkICgqaXJxX2VuYWJsZV9zeXNjYWxsX3JldCkodm9pZCk7CisJLyoKKwkgKiBBdG9taWNhbGx5IGVuYWJsZSBpbnRlcnJ1cHRzIGFuZCByZXR1cm4gdG8gdXNlcnNwYWNlLiAgVGhpcworCSAqIGlzIG9ubHkgZXZlciB1c2VkIHRvIHJldHVybiB0byAzMi1iaXQgcHJvY2Vzc2VzOyBpbiBhCisJICogNjQtYml0IGtlcm5lbCwgaXQncyB1c2VkIGZvciAzMi1vbi02NCBjb21wYXQgcHJvY2Vzc2VzLCBidXQKKwkgKiBuZXZlciBuYXRpdmUgNjQtYml0IHByb2Nlc3Nlcy4gIChKdW1wLCBub3QgY2FsbC4pCisJICovCisJdm9pZCAoKmlycV9lbmFibGVfc3lzZXhpdCkodm9pZCk7CisKKwkvKgorCSAqIFN3aXRjaCB0byB1c2VybW9kZSBncyBhbmQgcmV0dXJuIHRvIDY0LWJpdCB1c2VybW9kZSB1c2luZworCSAqIHN5c3JldC4gIE9ubHkgdXNlZCBpbiA2NC1iaXQga2VybmVscyB0byByZXR1cm4gdG8gNjQtYml0CisJICogcHJvY2Vzc2VzLiAgVXNlcm1vZGUgcmVnaXN0ZXIgc3RhdGUsIGluY2x1ZGluZyAlcnNwLCBtdXN0CisJICogYWxyZWFkeSBiZSByZXN0b3JlZC4KKwkgKi8KKwl2b2lkICgqdXNlcmdzX3N5c3JldDY0KSh2b2lkKTsKKworCS8qCisJICogU3dpdGNoIHRvIHVzZXJtb2RlIGdzIGFuZCByZXR1cm4gdG8gMzItYml0IHVzZXJtb2RlIHVzaW5nCisJICogc3lzcmV0LiAgVXNlZCB0byByZXR1cm4gdG8gMzItb24tNjQgY29tcGF0IHByb2Nlc3Nlcy4KKwkgKiBPdGhlciB1c2VybW9kZSByZWdpc3RlciBzdGF0ZSwgaW5jbHVkaW5nICVlc3AsIG11c3QgYWxyZWFkeQorCSAqIGJlIHJlc3RvcmVkLgorCSAqLworCXZvaWQgKCp1c2VyZ3Nfc3lzcmV0MzIpKHZvaWQpOworCisJLyogTm9ybWFsIGlyZXQuICBKdW1wIHRvIHRoaXMgd2l0aCB0aGUgc3RhbmRhcmQgaXJldCBzdGFjaworCSAgIGZyYW1lIHNldCB1cC4gKi8KIAl2b2lkICgqaXJldCkodm9pZCk7CiAKIAl2b2lkICgqc3dhcGdzKSh2b2lkKTsKQEAgLTE2NSw2ICsxOTIsMTAgQEAKIAl2b2lkICgqaXJxX2VuYWJsZSkodm9pZCk7CiAJdm9pZCAoKnNhZmVfaGFsdCkodm9pZCk7CiAJdm9pZCAoKmhhbHQpKHZvaWQpOworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCXZvaWQgKCphZGp1c3RfZXhjZXB0aW9uX2ZyYW1lKSh2b2lkKTsKKyNlbmRpZgogfTsKIAogc3RydWN0IHB2X2FwaWNfb3BzIHsKQEAgLTIxOSw3ICsyNTAsMTQgQEAKIAl2b2lkICgqZmx1c2hfdGxiX290aGVycykoY29uc3QgY3B1bWFza190ICpjcHVzLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCQkgdW5zaWduZWQgbG9uZyB2YSk7CiAKLQkvKiBIb29rcyBmb3IgYWxsb2NhdGluZy9yZWxlYXNpbmcgcGFnZXRhYmxlIHBhZ2VzICovCisJLyogSG9va3MgZm9yIGFsbG9jYXRpbmcgYW5kIGZyZWVpbmcgYSBwYWdldGFibGUgdG9wLWxldmVsICovCisJaW50ICAoKnBnZF9hbGxvYykoc3RydWN0IG1tX3N0cnVjdCAqbW0pOworCXZvaWQgKCpwZ2RfZnJlZSkoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpOworCisJLyoKKwkgKiBIb29rcyBmb3IgYWxsb2NhdGluZy9yZWxlYXNpbmcgcGFnZXRhYmxlIHBhZ2VzIHdoZW4gdGhleSdyZQorCSAqIGF0dGFjaGVkIHRvIGEgcGFnZXRhYmxlCisJICovCiAJdm9pZCAoKmFsbG9jX3B0ZSkoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHUzMiBwZm4pOwogCXZvaWQgKCphbGxvY19wbWQpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1MzIgcGZuKTsKIAl2b2lkICgqYWxsb2NfcG1kX2Nsb25lKSh1MzIgcGZuLCB1MzIgY2xvbmVwZm4sIHUzMiBzdGFydCwgdTMyIGNvdW50KTsKQEAgLTIzOCw3ICsyNzYsMTMgQEAKIAl2b2lkICgqcHRlX3VwZGF0ZV9kZWZlcikoc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQkJIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXApOwogCisJcHRlX3QgKCpwdGVwX21vZGlmeV9wcm90X3N0YXJ0KShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkJCQlwdGVfdCAqcHRlcCk7CisJdm9pZCAoKnB0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0KShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkJCQlwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKTsKKwogCXB0ZXZhbF90ICgqcHRlX3ZhbCkocHRlX3QpOworCXB0ZXZhbF90ICgqcHRlX2ZsYWdzKShwdGVfdCk7CiAJcHRlX3QgKCptYWtlX3B0ZSkocHRldmFsX3QgcHRlKTsKIAogCXBnZHZhbF90ICgqcGdkX3ZhbCkocGdkX3QpOwpAQCAtMjczLDYgKzMxNywxMyBAQAogI2VuZGlmCiAKIAlzdHJ1Y3QgcHZfbGF6eV9vcHMgbGF6eV9tb2RlOworCisJLyogZG9tMCBvcHMgKi8KKworCS8qIFNvbWV0aW1lcyB0aGUgcGh5c2ljYWwgYWRkcmVzcyBpcyBhIHBmbiwgYW5kIHNvbWV0aW1lcyBpdHMKKwkgICBhbiBtZm4uICBXZSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaCBmcm9tIHRoZSBpbmRleC4gKi8KKwl2b2lkICgqc2V0X2ZpeG1hcCkodW5zaWduZWQgLyogZW51bSBmaXhlZF9hZGRyZXNzZXMgKi8gaWR4LAorCQkJICAgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncyk7CiB9OwogCiAvKiBUaGlzIGNvbnRhaW5zIGFsbCB0aGUgcGFyYXZpcnQgc3RydWN0dXJlczogd2UgZ2V0IGEgY29udmVuaWVudApAQCAtNDM5LDEwICs0OTAsMTcgQEAKICNkZWZpbmUgVkVYVFJBX0NMT0JCRVJTCSAsICJyYXgiLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX1BBUkFWSVJUX0RFQlVHCisjZGVmaW5lIFBWT1BfVEVTVF9OVUxMKG9wKQlCVUdfT04ob3AgPT0gTlVMTCkKKyNlbHNlCisjZGVmaW5lIFBWT1BfVEVTVF9OVUxMKG9wKQkoKHZvaWQpb3ApCisjZW5kaWYKKwogI2RlZmluZSBfX1BWT1BfQ0FMTChyZXR0eXBlLCBvcCwgcHJlLCBwb3N0LCAuLi4pCQkJXAogCSh7CQkJCQkJCQlcCiAJCXJldHR5cGUgX19yZXQ7CQkJCQkJXAogCQlQVk9QX0NBTExfQVJHUzsJCQkJCVwKKwkJUFZPUF9URVNUX05VTEwob3ApOwkJCQkJXAogCQkvKiBUaGlzIGlzIDMyLWJpdCBzcGVjaWZpYywgYnV0IGlzIG9rYXkgaW4gNjQtYml0ICovCVwKIAkJLyogc2luY2UgdGhpcyBjb25kaXRpb24gd2lsbCBuZXZlciBob2xkICovCQlcCiAJCWlmIChzaXplb2YocmV0dHlwZSkgPiBzaXplb2YodW5zaWduZWQgbG9uZykpIHsJCVwKQEAgLTQ3MSw2ICs1MjksNyBAQAogI2RlZmluZSBfX1BWT1BfVkNBTEwob3AsIHByZSwgcG9zdCwgLi4uKQkJCQlcCiAJKHsJCQkJCQkJCVwKIAkJUFZPUF9WQ0FMTF9BUkdTOwkJCQkJXAorCQlQVk9QX1RFU1RfTlVMTChvcCk7CQkJCQlcCiAJCWFzbSB2b2xhdGlsZShwcmUJCQkJCVwKIAkJCSAgICAgcGFyYXZpcnRfYWx0KFBBUkFWSVJUX0NBTEwpCQlcCiAJCQkgICAgIHBvc3QJCQkJCVwKQEAgLTcyMCw3ICs3NzksNyBAQAogewogCXJldHVybiBQVk9QX0NBTEwwKHVuc2lnbmVkIGxvbmcgbG9uZywgcHZfdGltZV9vcHMuc2NoZWRfY2xvY2spOwogfQotI2RlZmluZSBjYWxjdWxhdGVfY3B1X2toeigpIChwdl90aW1lX29wcy5nZXRfY3B1X2toeigpKQorI2RlZmluZSBjYWxpYnJhdGVfdHNjKCkgKHB2X3RpbWVfb3BzLmdldF90c2Nfa2h6KCkpCiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBsb25nIHBhcmF2aXJ0X3JlYWRfcG1jKGludCBjb3VudGVyKQogewpAQCAtNzg5LDYgKzg0OCwxMyBAQAogCVBWT1BfVkNBTEwyKHB2X2NwdV9vcHMubG9hZF90bHMsIHQsIGNwdSk7CiB9CiAKKyNpZmRlZiBDT05GSUdfWDg2XzY0CitzdGF0aWMgaW5saW5lIHZvaWQgbG9hZF9nc19pbmRleCh1bnNpZ25lZCBpbnQgZ3MpCit7CisJUFZPUF9WQ0FMTDEocHZfY3B1X29wcy5sb2FkX2dzX2luZGV4LCBncyk7Cit9CisjZW5kaWYKKwogc3RhdGljIGlubGluZSB2b2lkIHdyaXRlX2xkdF9lbnRyeShzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmR0LCBpbnQgZW50cnksCiAJCQkJICAgY29uc3Qgdm9pZCAqZGVzYykKIHsKQEAgLTkxMiw2ICs5NzgsMTYgQEAKIAlQVk9QX1ZDQUxMMyhwdl9tbXVfb3BzLmZsdXNoX3RsYl9vdGhlcnMsICZjcHVtYXNrLCBtbSwgdmEpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBwYXJhdmlydF9wZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCit7CisJcmV0dXJuIFBWT1BfQ0FMTDEoaW50LCBwdl9tbXVfb3BzLnBnZF9hbGxvYywgbW0pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcGFyYXZpcnRfcGdkX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCit7CisJUFZPUF9WQ0FMTDIocHZfbW11X29wcy5wZ2RfZnJlZSwgbW0sIHBnZCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXJhdmlydF9hbGxvY19wdGUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIHBmbikKIHsKIAlQVk9QX1ZDQUxMMihwdl9tbXVfb3BzLmFsbG9jX3B0ZSwgbW0sIHBmbik7CkBAIC05OTYsNiArMTA3MiwyMCBAQAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgcHRldmFsX3QgcHRlX2ZsYWdzKHB0ZV90IHB0ZSkKK3sKKwlwdGV2YWxfdCByZXQ7CisKKwlpZiAoc2l6ZW9mKHB0ZXZhbF90KSA+IHNpemVvZihsb25nKSkKKwkJcmV0ID0gUFZPUF9DQUxMMihwdGV2YWxfdCwgcHZfbW11X29wcy5wdGVfZmxhZ3MsCisJCQkJIHB0ZS5wdGUsICh1NjQpcHRlLnB0ZSA+PiAzMik7CisJZWxzZQorCQlyZXQgPSBQVk9QX0NBTEwxKHB0ZXZhbF90LCBwdl9tbXVfb3BzLnB0ZV9mbGFncywKKwkJCQkgcHRlLnB0ZSk7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW5saW5lIHBnZF90IF9fcGdkKHBnZHZhbF90IHZhbCkKIHsKIAlwZ2R2YWxfdCByZXQ7CkBAIC0xMDI0LDYgKzExMTQsMjkgQEAKIAlyZXR1cm4gcmV0OwogfQogCisjZGVmaW5lICBfX0hBVkVfQVJDSF9QVEVQX01PRElGWV9QUk9UX1RSQU5TQUNUSU9OCitzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJICAgcHRlX3QgKnB0ZXApCit7CisJcHRldmFsX3QgcmV0OworCisJcmV0ID0gUFZPUF9DQUxMMyhwdGV2YWxfdCwgcHZfbW11X29wcy5wdGVwX21vZGlmeV9wcm90X3N0YXJ0LAorCQkJIG1tLCBhZGRyLCBwdGVwKTsKKworCXJldHVybiAocHRlX3QpIHsgLnB0ZSA9IHJldCB9OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcHRlcF9tb2RpZnlfcHJvdF9jb21taXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJICAgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZSkKK3sKKwlpZiAoc2l6ZW9mKHB0ZXZhbF90KSA+IHNpemVvZihsb25nKSkKKwkJLyogNSBhcmcgd29yZHMgKi8KKwkJcHZfbW11X29wcy5wdGVwX21vZGlmeV9wcm90X2NvbW1pdChtbSwgYWRkciwgcHRlcCwgcHRlKTsKKwllbHNlCisJCVBWT1BfVkNBTEw0KHB2X21tdV9vcHMucHRlcF9tb2RpZnlfcHJvdF9jb21taXQsCisJCQkgICAgbW0sIGFkZHIsIHB0ZXAsIHB0ZS5wdGUpOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3B0ZShwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKQogewogCWlmIChzaXplb2YocHRldmFsX3QpID4gc2l6ZW9mKGxvbmcpKQpAQCAtMTI1Miw2ICsxMzY1LDEyIEBACiAJfQogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgX19zZXRfZml4bWFwKHVuc2lnbmVkIC8qIGVudW0gZml4ZWRfYWRkcmVzc2VzICovIGlkeCwKKwkJCQl1bnNpZ25lZCBsb25nIHBoeXMsIHBncHJvdF90IGZsYWdzKQoreworCXB2X21tdV9vcHMuc2V0X2ZpeG1hcChpZHgsIHBoeXMsIGZsYWdzKTsKK30KKwogdm9pZCBfcGFyYXZpcnRfbm9wKHZvaWQpOwogI2RlZmluZSBwYXJhdmlydF9ub3AJKCh2b2lkICopX3BhcmF2aXJ0X25vcCkKIApAQCAtMTM3NCw1NCArMTQ5Myw4NiBAQAogI2RlZmluZSBQVl9SRVNUT1JFX1JFR1MgcG9wcSAlcmR4OyBwb3BxICVyY3g7IHBvcHEgJXJkaTsgcG9wcSAlcmF4CiAjZGVmaW5lIFBBUkFfUEFUQ0goc3RydWN0LCBvZmYpICAgICAgICAoKFBBUkFWSVJUX1BBVENIXyMjc3RydWN0ICsgKG9mZikpIC8gOCkKICNkZWZpbmUgUEFSQV9TSVRFKHB0eXBlLCBjbG9iYmVycywgb3BzKSBfUFZTSVRFKHB0eXBlLCBjbG9iYmVycywgb3BzLCAucXVhZCwgOCkKKyNkZWZpbmUgUEFSQV9JTkRJUkVDVChhZGRyKQkqYWRkciglcmlwKQogI2Vsc2UKICNkZWZpbmUgUFZfU0FWRV9SRUdTICAgcHVzaGwgJWVheDsgcHVzaGwgJWVkaTsgcHVzaGwgJWVjeDsgcHVzaGwgJWVkeAogI2RlZmluZSBQVl9SRVNUT1JFX1JFR1MgcG9wbCAlZWR4OyBwb3BsICVlY3g7IHBvcGwgJWVkaTsgcG9wbCAlZWF4CiAjZGVmaW5lIFBBUkFfUEFUQ0goc3RydWN0LCBvZmYpICAgICAgICAoKFBBUkFWSVJUX1BBVENIXyMjc3RydWN0ICsgKG9mZikpIC8gNCkKICNkZWZpbmUgUEFSQV9TSVRFKHB0eXBlLCBjbG9iYmVycywgb3BzKSBfUFZTSVRFKHB0eXBlLCBjbG9iYmVycywgb3BzLCAubG9uZywgNCkKKyNkZWZpbmUgUEFSQV9JTkRJUkVDVChhZGRyKQkqJWNzOmFkZHIKICNlbmRpZgogCiAjZGVmaW5lIElOVEVSUlVQVF9SRVRVUk4JCQkJCQlcCiAJUEFSQV9TSVRFKFBBUkFfUEFUQ0gocHZfY3B1X29wcywgUFZfQ1BVX2lyZXQpLCBDTEJSX05PTkUsCVwKLQkJICBqbXAgKiVjczpwdl9jcHVfb3BzK1BWX0NQVV9pcmV0KQorCQkgIGptcCBQQVJBX0lORElSRUNUKHB2X2NwdV9vcHMrUFZfQ1BVX2lyZXQpKQogCiAjZGVmaW5lIERJU0FCTEVfSU5URVJSVVBUUyhjbG9iYmVycykJCQkJCVwKIAlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9pcnFfb3BzLCBQVl9JUlFfaXJxX2Rpc2FibGUpLCBjbG9iYmVycywgXAotCQkgIFBWX1NBVkVfUkVHUzsJCQlcCi0JCSAgY2FsbCAqJWNzOnB2X2lycV9vcHMrUFZfSVJRX2lycV9kaXNhYmxlOwkJXAorCQkgIFBWX1NBVkVfUkVHUzsJCQkJCQlcCisJCSAgY2FsbCBQQVJBX0lORElSRUNUKHB2X2lycV9vcHMrUFZfSVJRX2lycV9kaXNhYmxlKTsJXAogCQkgIFBWX1JFU1RPUkVfUkVHUzspCQkJXAogCiAjZGVmaW5lIEVOQUJMRV9JTlRFUlJVUFRTKGNsb2JiZXJzKQkJCQkJXAogCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2lycV9vcHMsIFBWX0lSUV9pcnFfZW5hYmxlKSwgY2xvYmJlcnMsCVwKLQkJICBQVl9TQVZFX1JFR1M7CQkJXAotCQkgIGNhbGwgKiVjczpwdl9pcnFfb3BzK1BWX0lSUV9pcnFfZW5hYmxlOwkJXAorCQkgIFBWX1NBVkVfUkVHUzsJCQkJCQlcCisJCSAgY2FsbCBQQVJBX0lORElSRUNUKHB2X2lycV9vcHMrUFZfSVJRX2lycV9lbmFibGUpOwlcCiAJCSAgUFZfUkVTVE9SRV9SRUdTOykKIAotI2RlZmluZSBFTkFCTEVfSU5URVJSVVBUU19TWVNDQUxMX1JFVAkJCQkJXAotCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV9pcnFfZW5hYmxlX3N5c2NhbGxfcmV0KSxcCisjZGVmaW5lIFVTRVJHU19TWVNSRVQzMgkJCQkJCQlcCisJUEFSQV9TSVRFKFBBUkFfUEFUQ0gocHZfY3B1X29wcywgUFZfQ1BVX3VzZXJnc19zeXNyZXQzMiksCVwKIAkJICBDTEJSX05PTkUsCQkJCQkJXAotCQkgIGptcCAqJWNzOnB2X2NwdV9vcHMrUFZfQ1BVX2lycV9lbmFibGVfc3lzY2FsbF9yZXQpCi0KKwkJICBqbXAgUEFSQV9JTkRJUkVDVChwdl9jcHVfb3BzK1BWX0NQVV91c2VyZ3Nfc3lzcmV0MzIpKQogCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgotI2RlZmluZSBHRVRfQ1IwX0lOVE9fRUFYCQkJXAotCXB1c2ggJWVjeDsgcHVzaCAlZWR4OwkJCVwKLQljYWxsICpwdl9jcHVfb3BzK1BWX0NQVV9yZWFkX2NyMDsJXAorI2RlZmluZSBHRVRfQ1IwX0lOVE9fRUFYCQkJCVwKKwlwdXNoICVlY3g7IHB1c2ggJWVkeDsJCQkJXAorCWNhbGwgUEFSQV9JTkRJUkVDVChwdl9jcHVfb3BzK1BWX0NQVV9yZWFkX2NyMCk7CVwKIAlwb3AgJWVkeDsgcG9wICVlY3gKLSNlbHNlCisKKyNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTRVhJVAkJCQkJXAorCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV9pcnFfZW5hYmxlX3N5c2V4aXQpLAlcCisJCSAgQ0xCUl9OT05FLAkJCQkJCVwKKwkJICBqbXAgUEFSQV9JTkRJUkVDVChwdl9jcHVfb3BzK1BWX0NQVV9pcnFfZW5hYmxlX3N5c2V4aXQpKQorCisKKyNlbHNlCS8qICFDT05GSUdfWDg2XzMyICovCisKKy8qCisgKiBJZiBzd2FwZ3MgaXMgdXNlZCB3aGlsZSB0aGUgdXNlcnNwYWNlIHN0YWNrIGlzIHN0aWxsIGN1cnJlbnQsCisgKiB0aGVyZSdzIG5vIHdheSB0byBjYWxsIGEgcHZvcC4gIFRoZSBQViByZXBsYWNlbWVudCAqbXVzdCogYmUKKyAqIGlubGluZWQsIG9yIHRoZSBzd2FwZ3MgaW5zdHJ1Y3Rpb24gbXVzdCBiZSB0cmFwcGVkIGFuZCBlbXVsYXRlZC4KKyAqLworI2RlZmluZSBTV0FQR1NfVU5TQUZFX1NUQUNLCQkJCQkJXAorCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV9zd2FwZ3MpLCBDTEJSX05PTkUsCVwKKwkJICBzd2FwZ3MpCisKICNkZWZpbmUgU1dBUEdTCQkJCQkJCQlcCiAJUEFSQV9TSVRFKFBBUkFfUEFUQ0gocHZfY3B1X29wcywgUFZfQ1BVX3N3YXBncyksIENMQlJfTk9ORSwJXAogCQkgIFBWX1NBVkVfUkVHUzsJCQkJCQlcCi0JCSAgY2FsbCAqcHZfY3B1X29wcytQVl9DUFVfc3dhcGdzOwkJCVwKKwkJICBjYWxsIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfc3dhcGdzKTsJCVwKIAkJICBQVl9SRVNUT1JFX1JFR1MJCQkJCVwKIAkJICkKIAotI2RlZmluZSBHRVRfQ1IyX0lOVE9fUkNYCQkJXAotCWNhbGwgKnB2X21tdV9vcHMrUFZfTU1VX3JlYWRfY3IyOwlcCi0JbW92cSAlcmF4LCAlcmN4OwkJCVwKKyNkZWZpbmUgR0VUX0NSMl9JTlRPX1JDWAkJCQlcCisJY2FsbCBQQVJBX0lORElSRUNUKHB2X21tdV9vcHMrUFZfTU1VX3JlYWRfY3IyKTsJXAorCW1vdnEgJXJheCwgJXJjeDsJCQkJXAogCXhvcnEgJXJheCwgJXJheDsKIAotI2VuZGlmCisjZGVmaW5lIFBBUkFWSVJUX0FESlVTVF9FWENFUFRJT05fRlJBTUUJCQkJCVwKKwlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9pcnFfb3BzLCBQVl9JUlFfYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSksIFwKKwkJICBDTEJSX05PTkUsCQkJCQkJXAorCQkgIGNhbGwgUEFSQV9JTkRJUkVDVChwdl9pcnFfb3BzK1BWX0lSUV9hZGp1c3RfZXhjZXB0aW9uX2ZyYW1lKSkKKworI2RlZmluZSBVU0VSR1NfU1lTUkVUNjQJCQkJCQkJXAorCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV91c2VyZ3Nfc3lzcmV0NjQpLAlcCisJCSAgQ0xCUl9OT05FLAkJCQkJCVwKKwkJICBqbXAgUEFSQV9JTkRJUkVDVChwdl9jcHVfb3BzK1BWX0NQVV91c2VyZ3Nfc3lzcmV0NjQpKQorCisjZGVmaW5lIEVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQzMgkJCQkJXAorCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV9pcnFfZW5hYmxlX3N5c2V4aXQpLAlcCisJCSAgQ0xCUl9OT05FLAkJCQkJCVwKKwkJICBqbXAgUEFSQV9JTkRJUkVDVChwdl9jcHVfb3BzK1BWX0NQVV9pcnFfZW5hYmxlX3N5c2V4aXQpKQorI2VuZGlmCS8qIENPTkZJR19YODZfMzIgKi8KIAogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwogI2VuZGlmIC8qIENPTkZJR19QQVJBVklSVCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BhdC5oIGIvaW5jbHVkZS9hc20teDg2L3BhdC5oCmluZGV4IDg4ZjYwY2MuLjdlZGM0NzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wYXQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGF0LmgKQEAgLTEsMTQgKzEsMTMgQEAKLQogI2lmbmRlZiBfQVNNX1BBVF9ICi0jZGVmaW5lIF9BU01fUEFUX0ggMQorI2RlZmluZSBfQVNNX1BBVF9ICiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCiAjaWZkZWYgQ09ORklHX1g4Nl9QQVQKLWV4dGVybiBpbnQgcGF0X3djX2VuYWJsZWQ7CitleHRlcm4gaW50IHBhdF9lbmFibGVkOwogZXh0ZXJuIHZvaWQgdmFsaWRhdGVfcGF0X3N1cHBvcnQoc3RydWN0IGNwdWluZm9feDg2ICpjKTsKICNlbHNlCi1zdGF0aWMgY29uc3QgaW50IHBhdF93Y19lbmFibGVkID0gMDsKK3N0YXRpYyBjb25zdCBpbnQgcGF0X2VuYWJsZWQ7CiBzdGF0aWMgaW5saW5lIHZvaWQgdmFsaWRhdGVfcGF0X3N1cHBvcnQoc3RydWN0IGNwdWluZm9feDg2ICpjKSB7IH0KICNlbmRpZgogCkBAIC0yMSw0ICsyMCwzIEBACiBleHRlcm4gdm9pZCBwYXRfZGlzYWJsZShjaGFyICpyZWFzb24pOwogCiAjZW5kaWYKLQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BjaS5oIGIvaW5jbHVkZS9hc20teDg2L3BjaS5oCmluZGV4IDMwYmJkZTAuLjJkYjE0Y2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wY2kuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGNpLmgKQEAgLTE4LDYgKzE4LDggQEAKICNlbmRpZgogfTsKIAorZXh0ZXJuIGludCBwY2lfcm91dGVpcnE7CisKIC8qIHNjYW4gYSBidXMgYWZ0ZXIgYWxsb2NhdGluZyBhIHBjaV9zeXNkYXRhIGZvciBpdCAqLwogZXh0ZXJuIHN0cnVjdCBwY2lfYnVzICpwY2lfc2Nhbl9idXNfb25fbm9kZShpbnQgYnVzbm8sIHN0cnVjdCBwY2lfb3BzICpvcHMsCiAJCQkJCSAgICBpbnQgbm9kZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcGNpXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvcGNpXzMyLmgKaW5kZXggOGM0YzNhMC4uYTUwZDQ2OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3BjaV8zMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wY2lfMzIuaApAQCAtMTgsMTIgKzE4LDE0IEBACiAjZGVmaW5lIFBDSV9ETUFfQlVTX0lTX1BIWVMJKDEpCiAKIC8qIHBjaV91bm1hcF97cGFnZSxzaW5nbGV9IGlzIGEgbm9wIHNvLi4uICovCi0jZGVmaW5lIERFQ0xBUkVfUENJX1VOTUFQX0FERFIoQUREUl9OQU1FKQotI2RlZmluZSBERUNMQVJFX1BDSV9VTk1BUF9MRU4oTEVOX05BTUUpCi0jZGVmaW5lIHBjaV91bm1hcF9hZGRyKFBUUiwgQUREUl9OQU1FKQkJKDApCi0jZGVmaW5lIHBjaV91bm1hcF9hZGRyX3NldChQVFIsIEFERFJfTkFNRSwgVkFMKQlkbyB7IH0gd2hpbGUgKDApCi0jZGVmaW5lIHBjaV91bm1hcF9sZW4oUFRSLCBMRU5fTkFNRSkJCSgwKQotI2RlZmluZSBwY2lfdW5tYXBfbGVuX3NldChQVFIsIExFTl9OQU1FLCBWQUwpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgREVDTEFSRV9QQ0lfVU5NQVBfQUREUihBRERSX05BTUUpCWRtYV9hZGRyX3QgQUREUl9OQU1FWzBdOworI2RlZmluZSBERUNMQVJFX1BDSV9VTk1BUF9MRU4oTEVOX05BTUUpCXVuc2lnbmVkIExFTl9OQU1FWzBdOworI2RlZmluZSBwY2lfdW5tYXBfYWRkcihQVFIsIEFERFJfTkFNRSkJc2l6ZW9mKChQVFIpLT5BRERSX05BTUUpCisjZGVmaW5lIHBjaV91bm1hcF9hZGRyX3NldChQVFIsIEFERFJfTkFNRSwgVkFMKSBcCisJZG8geyBicmVhazsgfSB3aGlsZSAocGNpX3VubWFwX2FkZHIoUFRSLCBBRERSX05BTUUpKQorI2RlZmluZSBwY2lfdW5tYXBfbGVuKFBUUiwgTEVOX05BTUUpCQlzaXplb2YoKFBUUiktPkxFTl9OQU1FKQorI2RlZmluZSBwY2lfdW5tYXBfbGVuX3NldChQVFIsIExFTl9OQU1FLCBWQUwpIFwKKwlkbyB7IGJyZWFrOyB9IHdoaWxlIChwY2lfdW5tYXBfbGVuKFBUUiwgTEVOX05BTUUpKQogCiAKICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcGRhLmggYi9pbmNsdWRlL2FzbS14ODYvcGRhLmgKaW5kZXggMTAxZmI5ZS4uYjM0ZTlhNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3BkYS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wZGEuaApAQCAtMjIsNiArMjIsOCBAQAogCQkJCQkgICBvZmZzZXQgNDAhISEgKi8KICNlbmRpZgogCWNoYXIgKmlycXN0YWNrcHRyOworCXNob3J0IG5vZGVudW1iZXI7CQkvKiBudW1iZXIgb2YgY3VycmVudCBub2RlICgzMmsgbWF4KSAqLworCXNob3J0IGluX2Jvb3RtZW07CQkvKiBwZGEgbGl2ZXMgaW4gYm9vdG1lbSAqLwogCXVuc2lnbmVkIGludCBfX3NvZnRpcnFfcGVuZGluZzsKIAl1bnNpZ25lZCBpbnQgX19ubWlfY291bnQ7CS8qIG51bWJlciBvZiBOTUkgb24gdGhpcyBDUFVzICovCiAJc2hvcnQgbW11X3N0YXRlOwpAQCAtMzcsOCArMzksNyBAQAogCXVuc2lnbmVkIGlycV9zcHVyaW91c19jb3VudDsKIH0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsKIAotZXh0ZXJuIHN0cnVjdCB4ODY2NF9wZGEgKl9jcHVfcGRhW107Ci1leHRlcm4gc3RydWN0IHg4NjY0X3BkYSBib290X2NwdV9wZGFbXTsKK2V4dGVybiBzdHJ1Y3QgeDg2NjRfcGRhICoqX2NwdV9wZGE7CiBleHRlcm4gdm9pZCBwZGFfaW5pdChpbnQpOwogCiAjZGVmaW5lIGNwdV9wZGEoaSkgKF9jcHVfcGRhW2ldKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BlcmNwdS5oIGIvaW5jbHVkZS9hc20teDg2L3BlcmNwdS5oCmluZGV4IDczNmZjM2IuLjkxMmEzYTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZXJjcHUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGVyY3B1LmgKQEAgLTE0Myw0ICsxNDMsNTAgQEAKICNkZWZpbmUgeDg2X29yX3BlcmNwdSh2YXIsIHZhbCkgcGVyY3B1X3RvX29wKCJvciIsIHBlcl9jcHVfXyMjdmFyLCB2YWwpCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwogI2VuZGlmIC8qICFDT05GSUdfWDg2XzY0ICovCisKKyNpZmRlZiBDT05GSUdfU01QCisKKy8qCisgKiBEZWZpbmUgdGhlICJFQVJMWV9QRVJfQ1BVIiBtYWNyb3MuICBUaGVzZSBhcmUgdXNlZCBmb3Igc29tZSBwZXJfY3B1CisgKiB2YXJpYWJsZXMgdGhhdCBhcmUgaW5pdGlhbGl6ZWQgYW5kIGFjY2Vzc2VkIGJlZm9yZSB0aGVyZSBhcmUgcGVyX2NwdQorICogYXJlYXMgYWxsb2NhdGVkLgorICovCisKKyNkZWZpbmUJREVGSU5FX0VBUkxZX1BFUl9DUFUoX3R5cGUsIF9uYW1lLCBfaW5pdHZhbHVlKQkJCVwKKwlERUZJTkVfUEVSX0NQVShfdHlwZSwgX25hbWUpID0gX2luaXR2YWx1ZTsJCQlcCisJX190eXBlb2ZfXyhfdHlwZSkgX25hbWUjI19lYXJseV9tYXBbTlJfQ1BVU10gX19pbml0ZGF0YSA9CVwKKwkJCQl7IFswIC4uLiBOUl9DUFVTLTFdID0gX2luaXR2YWx1ZSB9OwlcCisJX190eXBlb2ZfXyhfdHlwZSkgKl9uYW1lIyNfZWFybHlfcHRyID0gX25hbWUjI19lYXJseV9tYXAKKworI2RlZmluZSBFWFBPUlRfRUFSTFlfUEVSX0NQVV9TWU1CT0woX25hbWUpCQkJXAorCUVYUE9SVF9QRVJfQ1BVX1NZTUJPTChfbmFtZSkKKworI2RlZmluZSBERUNMQVJFX0VBUkxZX1BFUl9DUFUoX3R5cGUsIF9uYW1lKQkJCVwKKwlERUNMQVJFX1BFUl9DUFUoX3R5cGUsIF9uYW1lKTsJCQkJXAorCWV4dGVybiBfX3R5cGVvZl9fKF90eXBlKSAqX25hbWUjI19lYXJseV9wdHI7CQlcCisJZXh0ZXJuIF9fdHlwZW9mX18oX3R5cGUpICBfbmFtZSMjX2Vhcmx5X21hcFtdCisKKyNkZWZpbmUJZWFybHlfcGVyX2NwdV9wdHIoX25hbWUpIChfbmFtZSMjX2Vhcmx5X3B0cikKKyNkZWZpbmUJZWFybHlfcGVyX2NwdV9tYXAoX25hbWUsIF9pZHgpIChfbmFtZSMjX2Vhcmx5X21hcFtfaWR4XSkKKyNkZWZpbmUJZWFybHlfcGVyX2NwdShfbmFtZSwgX2NwdSkgCQkJCVwKKwkoZWFybHlfcGVyX2NwdV9wdHIoX25hbWUpID8JCQkJXAorCQllYXJseV9wZXJfY3B1X3B0cihfbmFtZSlbX2NwdV0gOgkJXAorCQlwZXJfY3B1KF9uYW1lLCBfY3B1KSkKKworI2Vsc2UJLyogIUNPTkZJR19TTVAgKi8KKyNkZWZpbmUJREVGSU5FX0VBUkxZX1BFUl9DUFUoX3R5cGUsIF9uYW1lLCBfaW5pdHZhbHVlKQkJXAorCURFRklORV9QRVJfQ1BVKF90eXBlLCBfbmFtZSkgPSBfaW5pdHZhbHVlCisKKyNkZWZpbmUgRVhQT1JUX0VBUkxZX1BFUl9DUFVfU1lNQk9MKF9uYW1lKQkJCVwKKwlFWFBPUlRfUEVSX0NQVV9TWU1CT0woX25hbWUpCisKKyNkZWZpbmUgREVDTEFSRV9FQVJMWV9QRVJfQ1BVKF90eXBlLCBfbmFtZSkJCQlcCisJREVDTEFSRV9QRVJfQ1BVKF90eXBlLCBfbmFtZSkKKworI2RlZmluZQllYXJseV9wZXJfY3B1KF9uYW1lLCBfY3B1KSBwZXJfY3B1KF9uYW1lLCBfY3B1KQorI2RlZmluZQllYXJseV9wZXJfY3B1X3B0cihfbmFtZSkgTlVMTAorLyogbm8gZWFybHlfcGVyX2NwdV9tYXAoKSAqLworCisjZW5kaWYJLyogIUNPTkZJR19TTVAgKi8KKwogI2VuZGlmIC8qIF9BU01fWDg2X1BFUkNQVV9IXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BnYWxsb2MuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wZ2FsbG9jLmgKaW5kZXggOTFlNDY0MS4uZDYzZWE0MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3BnYWxsb2MuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGdhbGxvYy5oCkBAIC01LDkgKzUsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgkJLyogZm9yIHN0cnVjdCBwYWdlICovCiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgogCitzdGF0aWMgaW5saW5lIGludCAgX19wYXJhdmlydF9wZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pIHsgcmV0dXJuIDA7IH0KKwogI2lmZGVmIENPTkZJR19QQVJBVklSVAogI2luY2x1ZGUgPGFzbS9wYXJhdmlydC5oPgogI2Vsc2UKKyNkZWZpbmUgcGFyYXZpcnRfcGdkX2FsbG9jKG1tKQlfX3BhcmF2aXJ0X3BnZF9hbGxvYyhtbSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXJhdmlydF9wZ2RfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCkge30KIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXJhdmlydF9hbGxvY19wdGUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgcGZuKQl7fQogc3RhdGljIGlubGluZSB2b2lkIHBhcmF2aXJ0X2FsbG9jX3BtZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBwZm4pCXt9CiBzdGF0aWMgaW5saW5lIHZvaWQgcGFyYXZpcnRfYWxsb2NfcG1kX2Nsb25lKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIGNsb25lcGZuLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlLmgKaW5kZXggOTdjMjcxYi4uNDljYmQ3NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3BndGFibGUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZS5oCkBAIC0yMCwzMCArMjAsMjUgQEAKICNkZWZpbmUgX1BBR0VfQklUX1BBVF9MQVJHRQkxMgkvKiBPbiAyTUIgb3IgMUdCIHBhZ2VzICovCiAjZGVmaW5lIF9QQUdFX0JJVF9OWCAgICAgICAgICAgNjMgICAgICAgLyogTm8gZXhlY3V0ZTogb25seSB2YWxpZCBhZnRlciBjcHVpZCBjaGVjayAqLwogCi0vKgotICogTm90ZTogd2UgdXNlIF9BQygxLCBMKSBpbnN0ZWFkIG9mIF9BQygxLCBVTCkgc28gdGhhdCB3ZSBnZXQgYQotICogc2lnbi1leHRlbmRlZCB2YWx1ZSBvbiAzMi1iaXQgd2l0aCBhbGwgMSdzIGluIHRoZSB1cHBlciB3b3JkLAotICogd2hpY2ggcHJlc2VydmVzIHRoZSB1cHBlciBwdGUgdmFsdWVzIG9uIDY0LWJpdCBwdGVzOgotICovCi0jZGVmaW5lIF9QQUdFX1BSRVNFTlQJKF9BQygxLCBMKTw8X1BBR0VfQklUX1BSRVNFTlQpCi0jZGVmaW5lIF9QQUdFX1JXCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9SVykKLSNkZWZpbmUgX1BBR0VfVVNFUgkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfVVNFUikKLSNkZWZpbmUgX1BBR0VfUFdUCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9QV1QpCi0jZGVmaW5lIF9QQUdFX1BDRAkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfUENEKQotI2RlZmluZSBfUEFHRV9BQ0NFU1NFRAkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfQUNDRVNTRUQpCi0jZGVmaW5lIF9QQUdFX0RJUlRZCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9ESVJUWSkKLSNkZWZpbmUgX1BBR0VfUFNFCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9QU0UpCS8qIDJNQiBwYWdlICovCi0jZGVmaW5lIF9QQUdFX0dMT0JBTAkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfR0xPQkFMKQkvKiBHbG9iYWwgVExCIGVudHJ5ICovCi0jZGVmaW5lIF9QQUdFX1VOVVNFRDEJKF9BQygxLCBMKTw8X1BBR0VfQklUX1VOVVNFRDEpCi0jZGVmaW5lIF9QQUdFX1VOVVNFRDIJKF9BQygxLCBMKTw8X1BBR0VfQklUX1VOVVNFRDIpCi0jZGVmaW5lIF9QQUdFX1VOVVNFRDMJKF9BQygxLCBMKTw8X1BBR0VfQklUX1VOVVNFRDMpCi0jZGVmaW5lIF9QQUdFX1BBVAkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfUEFUKQotI2RlZmluZSBfUEFHRV9QQVRfTEFSR0UgKF9BQygxLCBMKTw8X1BBR0VfQklUX1BBVF9MQVJHRSkKKyNkZWZpbmUgX1BBR0VfUFJFU0VOVAkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfUFJFU0VOVCkKKyNkZWZpbmUgX1BBR0VfUlcJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1JXKQorI2RlZmluZSBfUEFHRV9VU0VSCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9VU0VSKQorI2RlZmluZSBfUEFHRV9QV1QJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1BXVCkKKyNkZWZpbmUgX1BBR0VfUENECShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9QQ0QpCisjZGVmaW5lIF9QQUdFX0FDQ0VTU0VECShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9BQ0NFU1NFRCkKKyNkZWZpbmUgX1BBR0VfRElSVFkJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX0RJUlRZKQorI2RlZmluZSBfUEFHRV9QU0UJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1BTRSkKKyNkZWZpbmUgX1BBR0VfR0xPQkFMCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9HTE9CQUwpCisjZGVmaW5lIF9QQUdFX1VOVVNFRDEJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1VOVVNFRDEpCisjZGVmaW5lIF9QQUdFX1VOVVNFRDIJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1VOVVNFRDIpCisjZGVmaW5lIF9QQUdFX1VOVVNFRDMJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1VOVVNFRDMpCisjZGVmaW5lIF9QQUdFX1BBVAkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfUEFUKQorI2RlZmluZSBfUEFHRV9QQVRfTEFSR0UgKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1BBVF9MQVJHRSkKIAogI2lmIGRlZmluZWQoQ09ORklHX1g4Nl82NCkgfHwgZGVmaW5lZChDT05GSUdfWDg2X1BBRSkKLSNkZWZpbmUgX1BBR0VfTlgJKF9BQygxLCBVTEwpIDw8IF9QQUdFX0JJVF9OWCkKKyNkZWZpbmUgX1BBR0VfTlgJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX05YKQogI2Vsc2UKLSNkZWZpbmUgX1BBR0VfTlgJMAorI2RlZmluZSBfUEFHRV9OWAkoX0FUKHB0ZXZhbF90LCAwKSkKICNlbmRpZgogCiAvKiBJZiBfUEFHRV9QUkVTRU5UIGlzIGNsZWFyLCB3ZSB1c2UgdGhlc2U6ICovCkBAIC04MywxOSArNzgsOSBAQAogI2RlZmluZSBQQUdFX1JFQURPTkxZX0VYRUMJX19wZ3Byb3QoX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1VTRVIgfAlcCiAJCQkJCSBfUEFHRV9BQ0NFU1NFRCkKIAotI2lmZGVmIENPTkZJR19YODZfMzIKLSNkZWZpbmUgX1BBR0VfS0VSTkVMX0VYRUMgXAotCShfUEFHRV9QUkVTRU5UIHwgX1BBR0VfUlcgfCBfUEFHRV9ESVJUWSB8IF9QQUdFX0FDQ0VTU0VEKQotI2RlZmluZSBfUEFHRV9LRVJORUwgKF9QQUdFX0tFUk5FTF9FWEVDIHwgX1BBR0VfTlgpCi0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi1leHRlcm4gcHRldmFsX3QgX19QQUdFX0tFUk5FTCwgX19QQUdFX0tFUk5FTF9FWEVDOwotI2VuZGlmCS8qIF9fQVNTRU1CTFlfXyAqLwotI2Vsc2UKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9FWEVDCQkJCQkJXAotCShfUEFHRV9QUkVTRU5UIHwgX1BBR0VfUlcgfCBfUEFHRV9ESVJUWSB8IF9QQUdFX0FDQ0VTU0VEKQorCShfUEFHRV9QUkVTRU5UIHwgX1BBR0VfUlcgfCBfUEFHRV9ESVJUWSB8IF9QQUdFX0FDQ0VTU0VEIHwgX1BBR0VfR0xPQkFMKQogI2RlZmluZSBfX1BBR0VfS0VSTkVMCQkoX19QQUdFX0tFUk5FTF9FWEVDIHwgX1BBR0VfTlgpCi0jZW5kaWYKIAogI2RlZmluZSBfX1BBR0VfS0VSTkVMX1JPCQkoX19QQUdFX0tFUk5FTCAmIH5fUEFHRV9SVykKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9SWAkJKF9fUEFHRV9LRVJORUxfRVhFQyAmIH5fUEFHRV9SVykKQEAgLTEwNiwyNiArOTEsMjIgQEAKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9WU1lTQ0FMTAkJKF9fUEFHRV9LRVJORUxfUlggfCBfUEFHRV9VU0VSKQogI2RlZmluZSBfX1BBR0VfS0VSTkVMX1ZTWVNDQUxMX05PQ0FDSEUJKF9fUEFHRV9LRVJORUxfVlNZU0NBTEwgfCBfUEFHRV9QQ0QgfCBfUEFHRV9QV1QpCiAjZGVmaW5lIF9fUEFHRV9LRVJORUxfTEFSR0UJCShfX1BBR0VfS0VSTkVMIHwgX1BBR0VfUFNFKQorI2RlZmluZSBfX1BBR0VfS0VSTkVMX0xBUkdFX05PQ0FDSEUJKF9fUEFHRV9LRVJORUwgfCBfUEFHRV9DQUNIRV9VQyB8IF9QQUdFX1BTRSkKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9MQVJHRV9FWEVDCShfX1BBR0VfS0VSTkVMX0VYRUMgfCBfUEFHRV9QU0UpCiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0jIGRlZmluZSBNQUtFX0dMT0JBTCh4KQkJCV9fcGdwcm90KCh4KSkKLSNlbHNlCi0jIGRlZmluZSBNQUtFX0dMT0JBTCh4KQkJCV9fcGdwcm90KCh4KSB8IF9QQUdFX0dMT0JBTCkKLSNlbmRpZgotCi0jZGVmaW5lIFBBR0VfS0VSTkVMCQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTCkKLSNkZWZpbmUgUEFHRV9LRVJORUxfUk8JCQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX1JPKQotI2RlZmluZSBQQUdFX0tFUk5FTF9FWEVDCQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX0VYRUMpCi0jZGVmaW5lIFBBR0VfS0VSTkVMX1JYCQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9SWCkKLSNkZWZpbmUgUEFHRV9LRVJORUxfV0MJCQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX1dDKQotI2RlZmluZSBQQUdFX0tFUk5FTF9OT0NBQ0hFCQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX05PQ0FDSEUpCi0jZGVmaW5lIFBBR0VfS0VSTkVMX1VDX01JTlVTCQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX1VDX01JTlVTKQotI2RlZmluZSBQQUdFX0tFUk5FTF9FWEVDX05PQ0FDSEUJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9FWEVDX05PQ0FDSEUpCi0jZGVmaW5lIFBBR0VfS0VSTkVMX0xBUkdFCQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX0xBUkdFKQotI2RlZmluZSBQQUdFX0tFUk5FTF9MQVJHRV9FWEVDCQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX0xBUkdFX0VYRUMpCi0jZGVmaW5lIFBBR0VfS0VSTkVMX1ZTWVNDQUxMCQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX1ZTWVNDQUxMKQotI2RlZmluZSBQQUdFX0tFUk5FTF9WU1lTQ0FMTF9OT0NBQ0hFCU1BS0VfR0xPQkFMKF9fUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRSkKKyNkZWZpbmUgUEFHRV9LRVJORUwJCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMKQorI2RlZmluZSBQQUdFX0tFUk5FTF9STwkJCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfUk8pCisjZGVmaW5lIFBBR0VfS0VSTkVMX0VYRUMJCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfRVhFQykKKyNkZWZpbmUgUEFHRV9LRVJORUxfUlgJCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1JYKQorI2RlZmluZSBQQUdFX0tFUk5FTF9XQwkJCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfV0MpCisjZGVmaW5lIFBBR0VfS0VSTkVMX05PQ0FDSEUJCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfTk9DQUNIRSkKKyNkZWZpbmUgUEFHRV9LRVJORUxfVUNfTUlOVVMJCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfVUNfTUlOVVMpCisjZGVmaW5lIFBBR0VfS0VSTkVMX0VYRUNfTk9DQUNIRQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX0VYRUNfTk9DQUNIRSkKKyNkZWZpbmUgUEFHRV9LRVJORUxfTEFSR0UJCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfTEFSR0UpCisjZGVmaW5lIFBBR0VfS0VSTkVMX0xBUkdFX05PQ0FDSEUJX19wZ3Byb3QoX19QQUdFX0tFUk5FTF9MQVJHRV9OT0NBQ0hFKQorI2RlZmluZSBQQUdFX0tFUk5FTF9MQVJHRV9FWEVDCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX0xBUkdFX0VYRUMpCisjZGVmaW5lIFBBR0VfS0VSTkVMX1ZTWVNDQUxMCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1ZTWVNDQUxMKQorI2RlZmluZSBQQUdFX0tFUk5FTF9WU1lTQ0FMTF9OT0NBQ0hFCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRSkKIAogLyogICAgICAgICB4d3IgKi8KICNkZWZpbmUgX19QMDAwCVBBR0VfTk9ORQpAQCAtMTY0LDM3ICsxNDUsMzcgQEAKICAqLwogc3RhdGljIGlubGluZSBpbnQgcHRlX2RpcnR5KHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gcHRlX3ZhbChwdGUpICYgX1BBR0VfRElSVFk7CisJcmV0dXJuIHB0ZV9mbGFncyhwdGUpICYgX1BBR0VfRElSVFk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV95b3VuZyhwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIHB0ZV92YWwocHRlKSAmIF9QQUdFX0FDQ0VTU0VEOworCXJldHVybiBwdGVfZmxhZ3MocHRlKSAmIF9QQUdFX0FDQ0VTU0VEOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwdGVfd3JpdGUocHRlX3QgcHRlKQogewotCXJldHVybiBwdGVfdmFsKHB0ZSkgJiBfUEFHRV9SVzsKKwlyZXR1cm4gcHRlX2ZsYWdzKHB0ZSkgJiBfUEFHRV9SVzsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgcHRlX2ZpbGUocHRlX3QgcHRlKQogewotCXJldHVybiBwdGVfdmFsKHB0ZSkgJiBfUEFHRV9GSUxFOworCXJldHVybiBwdGVfZmxhZ3MocHRlKSAmIF9QQUdFX0ZJTEU7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV9odWdlKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gcHRlX3ZhbChwdGUpICYgX1BBR0VfUFNFOworCXJldHVybiBwdGVfZmxhZ3MocHRlKSAmIF9QQUdFX1BTRTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgcHRlX2dsb2JhbChwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIHB0ZV92YWwocHRlKSAmIF9QQUdFX0dMT0JBTDsKKwlyZXR1cm4gcHRlX2ZsYWdzKHB0ZSkgJiBfUEFHRV9HTE9CQUw7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV9leGVjKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gIShwdGVfdmFsKHB0ZSkgJiBfUEFHRV9OWCk7CisJcmV0dXJuICEocHRlX2ZsYWdzKHB0ZSkgJiBfUEFHRV9OWCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV9zcGVjaWFsKHB0ZV90IHB0ZSkKQEAgLTIxMCwyMiArMTkxLDIyIEBACiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21rY2xlYW4ocHRlX3QgcHRlKQogewotCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+KHB0ZXZhbF90KV9QQUdFX0RJUlRZKTsKKwlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfl9QQUdFX0RJUlRZKTsKIH0KIAogc3RhdGljIGlubGluZSBwdGVfdCBwdGVfbWtvbGQocHRlX3QgcHRlKQogewotCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+KHB0ZXZhbF90KV9QQUdFX0FDQ0VTU0VEKTsKKwlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfl9QQUdFX0FDQ0VTU0VEKTsKIH0KIAogc3RhdGljIGlubGluZSBwdGVfdCBwdGVfd3Jwcm90ZWN0KHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfihwdGV2YWxfdClfUEFHRV9SVyk7CisJcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH5fUEFHRV9SVyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21rZXhlYyhwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH4ocHRldmFsX3QpX1BBR0VfTlgpOworCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+X1BBR0VfTlgpOwogfQogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta2RpcnR5KHB0ZV90IHB0ZSkKQEAgLTI1MCw3ICsyMzEsNyBAQAogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9jbHJodWdlKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfihwdGV2YWxfdClfUEFHRV9QU0UpOworCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+X1BBR0VfUFNFKTsKIH0KIAogc3RhdGljIGlubGluZSBwdGVfdCBwdGVfbWtnbG9iYWwocHRlX3QgcHRlKQpAQCAtMjYwLDcgKzI0MSw3IEBACiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX2Nscmdsb2JhbChwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH4ocHRldmFsX3QpX1BBR0VfR0xPQkFMKTsKKwlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfl9QQUdFX0dMT0JBTCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21rc3BlY2lhbChwdGVfdCBwdGUpCkBAIC0zMDUsNyArMjg2LDcgQEAKIAlyZXR1cm4gX19wZ3Byb3QocHJlc2VydmViaXRzIHwgYWRkYml0cyk7CiB9CiAKLSNkZWZpbmUgcHRlX3BncHJvdCh4KSBfX3BncHJvdChwdGVfdmFsKHgpICYgflBURV9NQVNLKQorI2RlZmluZSBwdGVfcGdwcm90KHgpIF9fcGdwcm90KHB0ZV9mbGFncyh4KSAmIH5QVEVfTUFTSykKIAogI2RlZmluZSBjYW5vbl9wZ3Byb3QocCkgX19wZ3Byb3QocGdwcm90X3ZhbChwKSAmIF9fc3VwcG9ydGVkX3B0ZV9tYXNrKQogCkBAIC0zMTgsNiArMjk5LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgcGdwcm90X3QgKnZtYV9wcm90KTsKICNlbmRpZgogCisvKiBJbnN0YWxsIGEgcHRlIGZvciBhIHBhcnRpY3VsYXIgdmFkZHIgaW4ga2VybmVsIHNwYWNlLiAqLwordm9pZCBzZXRfcHRlX3ZhZGRyKHVuc2lnbmVkIGxvbmcgdmFkZHIsIHB0ZV90IHB0ZSk7CisKICNpZmRlZiBDT05GSUdfUEFSQVZJUlQKICNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KICNlbHNlICAvKiAhQ09ORklHX1BBUkFWSVJUICovCkBAIC0zNTksNiArMzQzLDI2IEBACiAjIGluY2x1ZGUgInBndGFibGVfNjQuaCIKICNlbmRpZgogCisvKgorICogdGhlIHBnZCBwYWdlIGNhbiBiZSB0aG91Z2h0IG9mIGFuIGFycmF5IGxpa2UgdGhpczogcGdkX3RbUFRSU19QRVJfUEdEXQorICoKKyAqIHRoaXMgbWFjcm8gcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGVudHJ5IGluIHRoZSBwZ2QgcGFnZSB3aGljaCB3b3VsZAorICogY29udHJvbCB0aGUgZ2l2ZW4gdmlydHVhbCBhZGRyZXNzCisgKi8KKyNkZWZpbmUgcGdkX2luZGV4KGFkZHJlc3MpICgoKGFkZHJlc3MpID4+IFBHRElSX1NISUZUKSAmIChQVFJTX1BFUl9QR0QgLSAxKSkKKworLyoKKyAqIHBnZF9vZmZzZXQoKSByZXR1cm5zIGEgKHBnZF90ICopCisgKiBwZ2RfaW5kZXgoKSBpcyB1c2VkIGdldCB0aGUgb2Zmc2V0IGludG8gdGhlIHBnZCBwYWdlJ3MgYXJyYXkgb2YgcGdkX3QnczsKKyAqLworI2RlZmluZSBwZ2Rfb2Zmc2V0KG1tLCBhZGRyZXNzKSAoKG1tKS0+cGdkICsgcGdkX2luZGV4KChhZGRyZXNzKSkpCisvKgorICogYSBzaG9ydGN1dCB3aGljaCBpbXBsaWVzIHRoZSB1c2Ugb2YgdGhlIGtlcm5lbCdzIHBnZCwgaW5zdGVhZAorICogb2YgYSBwcm9jZXNzJ3MKKyAqLworI2RlZmluZSBwZ2Rfb2Zmc2V0X2soYWRkcmVzcykgcGdkX29mZnNldCgmaW5pdF9tbSwgKGFkZHJlc3MpKQorCisKICNkZWZpbmUgS0VSTkVMX1BHRF9CT1VOREFSWQlwZ2RfaW5kZXgoUEFHRV9PRkZTRVQpCiAjZGVmaW5lIEtFUk5FTF9QR0RfUFRSUwkJKFBUUlNfUEVSX1BHRCAtIEtFUk5FTF9QR0RfQk9VTkRBUlkpCiAKQEAgLTM2OSw4ICszNzMsMTUgQEAKIAlQR19MRVZFTF80SywKIAlQR19MRVZFTF8yTSwKIAlQR19MRVZFTF8xRywKKwlQR19MRVZFTF9OVU0KIH07CiAKKyNpZmRlZiBDT05GSUdfUFJPQ19GUworZXh0ZXJuIHZvaWQgdXBkYXRlX3BhZ2VfY291bnQoaW50IGxldmVsLCB1bnNpZ25lZCBsb25nIHBhZ2VzKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlX3BhZ2VfY291bnQoaW50IGxldmVsLCB1bnNpZ25lZCBsb25nIHBhZ2VzKSB7IH0KKyNlbmRpZgorCiAvKgogICogSGVscGVyIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUga2VybmVsIHBhZ2V0YWJsZSBlbnRyeSBjb250cm9sbGluZwogICogdGhlIHZpcnR1YWwgYWRkcmVzcyAnYWRkcmVzcycuIE5VTEwgbWVhbnMgbm8gcGFnZXRhYmxlIGVudHJ5IHByZXNlbnQuCkBAIC00MjAsNiArNDMxLDggQEAKICAqIHJhY2Ugd2l0aCBvdGhlciBDUFUncyB0aGF0IG1pZ2h0IGJlIHVwZGF0aW5nIHRoZSBkaXJ0eQogICogYml0IGF0IHRoZSBzYW1lIHRpbWUuCiAgKi8KK3N0cnVjdCB2bV9hcmVhX3N0cnVjdDsKKwogI2RlZmluZSAgX19IQVZFX0FSQ0hfUFRFUF9TRVRfQUNDRVNTX0ZMQUdTCiBleHRlcm4gaW50IHB0ZXBfc2V0X2FjY2Vzc19mbGFncyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCQkgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCBwdGVfdCAqcHRlcCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZV8zMi5oCmluZGV4IDMyY2EwMzEuLmVjODcxYzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BndGFibGVfMzIuaApAQCAtMTEzLDI2ICsxMTMsNiBAQAogICovCiAjZGVmaW5lIG1rX3B0ZShwYWdlLCBwZ3Byb3QpCXBmbl9wdGUocGFnZV90b19wZm4ocGFnZSksIChwZ3Byb3QpKQogCi0vKgotICogdGhlIHBnZCBwYWdlIGNhbiBiZSB0aG91Z2h0IG9mIGFuIGFycmF5IGxpa2UgdGhpczogcGdkX3RbUFRSU19QRVJfUEdEXQotICoKLSAqIHRoaXMgbWFjcm8gcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGVudHJ5IGluIHRoZSBwZ2QgcGFnZSB3aGljaCB3b3VsZAotICogY29udHJvbCB0aGUgZ2l2ZW4gdmlydHVhbCBhZGRyZXNzCi0gKi8KLSNkZWZpbmUgcGdkX2luZGV4KGFkZHJlc3MpICgoKGFkZHJlc3MpID4+IFBHRElSX1NISUZUKSAmIChQVFJTX1BFUl9QR0QgLSAxKSkKLSNkZWZpbmUgcGdkX2luZGV4X2soYWRkcikgcGdkX2luZGV4KChhZGRyKSkKLQotLyoKLSAqIHBnZF9vZmZzZXQoKSByZXR1cm5zIGEgKHBnZF90ICopCi0gKiBwZ2RfaW5kZXgoKSBpcyB1c2VkIGdldCB0aGUgb2Zmc2V0IGludG8gdGhlIHBnZCBwYWdlJ3MgYXJyYXkgb2YgcGdkX3QnczsKLSAqLwotI2RlZmluZSBwZ2Rfb2Zmc2V0KG1tLCBhZGRyZXNzKSAoKG1tKS0+cGdkICsgcGdkX2luZGV4KChhZGRyZXNzKSkpCi0KLS8qCi0gKiBhIHNob3J0Y3V0IHdoaWNoIGltcGxpZXMgdGhlIHVzZSBvZiB0aGUga2VybmVsJ3MgcGdkLCBpbnN0ZWFkCi0gKiBvZiBhIHByb2Nlc3MncwotICovCi0jZGVmaW5lIHBnZF9vZmZzZXRfayhhZGRyZXNzKSBwZ2Rfb2Zmc2V0KCZpbml0X21tLCAoYWRkcmVzcykpCiAKIHN0YXRpYyBpbmxpbmUgaW50IHB1ZF9sYXJnZShwdWRfdCBwdWQpIHsgcmV0dXJuIDA7IH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BndGFibGVfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlXzY0LmgKaW5kZXggMWNjNTBkMi4uZmE3MjA4YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3BndGFibGVfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZV82NC5oCkBAIC03MCw2ICs3MCw5IEBACiAKIHN0cnVjdCBtbV9zdHJ1Y3Q7CiAKK3ZvaWQgc2V0X3B0ZV92YWRkcl9wdWQocHVkX3QgKnB1ZF9wYWdlLCB1bnNpZ25lZCBsb25nIHZhZGRyLCBwdGVfdCBuZXdfcHRlKTsKKworCiBzdGF0aWMgaW5saW5lIHZvaWQgbmF0aXZlX3B0ZV9jbGVhcihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQkJCSAgICBwdGVfdCAqcHRlcCkKIHsKQEAgLTE5MCwxMiArMTkzLDkgQEAKICNkZWZpbmUgcGdkX3BhZ2VfdmFkZHIocGdkKQkJCQkJCVwKIAkoKHVuc2lnbmVkIGxvbmcpX192YSgodW5zaWduZWQgbG9uZylwZ2RfdmFsKChwZ2QpKSAmIFBURV9NQVNLKSkKICNkZWZpbmUgcGdkX3BhZ2UocGdkKQkJKHBmbl90b19wYWdlKHBnZF92YWwoKHBnZCkpID4+IFBBR0VfU0hJRlQpKQotI2RlZmluZSBwZ2RfaW5kZXgoYWRkcmVzcykgKCgoYWRkcmVzcykgPj4gUEdESVJfU0hJRlQpICYgKFBUUlNfUEVSX1BHRCAtIDEpKQotI2RlZmluZSBwZ2Rfb2Zmc2V0KG1tLCBhZGRyZXNzKQkoKG1tKS0+cGdkICsgcGdkX2luZGV4KChhZGRyZXNzKSkpCi0jZGVmaW5lIHBnZF9vZmZzZXRfayhhZGRyZXNzKSAoaW5pdF9sZXZlbDRfcGd0ICsgcGdkX2luZGV4KChhZGRyZXNzKSkpCiAjZGVmaW5lIHBnZF9wcmVzZW50KHBnZCkgKHBnZF92YWwocGdkKSAmIF9QQUdFX1BSRVNFTlQpCiBzdGF0aWMgaW5saW5lIGludCBwZ2RfbGFyZ2UocGdkX3QgcGdkKSB7IHJldHVybiAwOyB9Ci0jZGVmaW5lIG1rX2tlcm5lbF9wZ2QoYWRkcmVzcykgKChwZ2RfdCl7IChhZGRyZXNzKSB8IF9LRVJOUEdfVEFCTEUgfSkKKyNkZWZpbmUgbWtfa2VybmVsX3BnZChhZGRyZXNzKSBfX3BnZCgoYWRkcmVzcykgfCBfS0VSTlBHX1RBQkxFKQogCiAvKiBQVUQgLSBMZXZlbDMgYWNjZXNzICovCiAvKiB0byBmaW5kIGFuIGVudHJ5IGluIGEgcGFnZS10YWJsZS1kaXJlY3RvcnkuICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLWZsYWdzLmggYi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLWZsYWdzLmgKaW5kZXggMTk5Y2FiMS4uMDkyYjM5YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci1mbGFncy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3ItZmxhZ3MuaApAQCAtODgsNCArODgsMTAgQEAKICNkZWZpbmUgQ1g4Nl9BUlJfQkFTRQkweGM0CiAjZGVmaW5lIENYODZfUkNSX0JBU0UJMHhkYwogCisjaWZkZWYgQ09ORklHX1ZNODYKKyNkZWZpbmUgWDg2X1ZNX01BU0sJWDg2X0VGTEFHU19WTQorI2Vsc2UKKyNkZWZpbmUgWDg2X1ZNX01BU0sJMCAvKiBObyBWTTg2IHN1cHBvcnQgKi8KKyNlbmRpZgorCiAjZW5kaWYJLyogX19BU01fSTM4Nl9QUk9DRVNTT1JfRkxBR1NfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oIGIvaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCmluZGV4IDU1OTEwNTIuLjdmNzM4MjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgKQEAgLTE1Myw3ICsxNTMsNyBAQAogCiBleHRlcm4gdm9pZCBjcHVfZGV0ZWN0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYyk7CiAKLWV4dGVybiB2b2lkIGlkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKik7CitleHRlcm4gdm9pZCBlYXJseV9jcHVfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIGlkZW50aWZ5X2Jvb3RfY3B1KHZvaWQpOwogZXh0ZXJuIHZvaWQgaWRlbnRpZnlfc2Vjb25kYXJ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKik7CiBleHRlcm4gdm9pZCBwcmludF9jcHVfaW5mbyhzdHJ1Y3QgY3B1aW5mb194ODYgKik7CkBAIC0yNjMsMTUgKzI2MywxMSBAQAogCXN0cnVjdCB0aHJlYWRfc3RydWN0CSppb19iaXRtYXBfb3duZXI7CiAKIAkvKgotCSAqIFBhZCB0aGUgVFNTIHRvIGJlIGNhY2hlbGluZS1hbGlnbmVkIChzaXplIGlzIDB4MTAwKToKLQkgKi8KLQl1bnNpZ25lZCBsb25nCQlfX2NhY2hlbGluZV9maWxsZXJbMzVdOwotCS8qCiAJICogLi4gYW5kIHRoZW4gYW5vdGhlciAweDEwMCBieXRlcyBmb3IgdGhlIGVtZXJnZW5jeSBrZXJuZWwgc3RhY2s6CiAJICovCiAJdW5zaWduZWQgbG9uZwkJc3RhY2tbNjRdOwogCi19IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworfSBfX19fY2FjaGVsaW5lX2FsaWduZWQ7CiAKIERFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgdHNzX3N0cnVjdCwgaW5pdF90c3MpOwogCkBAIC01MzUsNyArNTMxLDYgQEAKIH0KIAogI2RlZmluZSBzZXRfaW9wbF9tYXNrIG5hdGl2ZV9zZXRfaW9wbF9tYXNrCi0jZGVmaW5lIFNXQVBHUwlzd2FwZ3MKICNlbmRpZiAvKiBDT05GSUdfUEFSQVZJUlQgKi8KIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wcm90by5oIGIvaW5jbHVkZS9hc20teDg2L3Byb3RvLmgKaW5kZXggNmM4YjQxYi4uM2RkNDU4YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3Byb3RvLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3Byb3RvLmgKQEAgLTE0LDggKzE0LDYgQEAKIGV4dGVybiB2b2lkIGlhMzJfY3N0YXJfdGFyZ2V0KHZvaWQpOwogZXh0ZXJuIHZvaWQgaWEzMl9zeXNlbnRlcl90YXJnZXQodm9pZCk7CiAKLWV4dGVybiB2b2lkIHJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbGVuKTsKLQogZXh0ZXJuIHZvaWQgc3lzY2FsbDMyX2NwdV9pbml0KHZvaWQpOwogCiBleHRlcm4gdm9pZCBjaGVja19lZmVyKHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3B0cmFjZS5oIGIvaW5jbHVkZS9hc20teDg2L3B0cmFjZS5oCmluZGV4IDlmOTIyYjAuLjhhNzFkYjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wdHJhY2UuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcHRyYWNlLmgKQEAgLTMsNyArMywxMiBAQAogCiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4JLyogRm9yIF9fdXNlciAqLwogI2luY2x1ZGUgPGFzbS9wdHJhY2UtYWJpLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgogCisjaWZkZWYgX19LRVJORUxfXworI2luY2x1ZGUgPGFzbS9kcy5oPgkJLyogdGhlIERTIEJUUyBzdHJ1Y3QgaXMgdXNlZCBmb3IgcHRyYWNlIHRvbyAqLworI2luY2x1ZGUgPGFzbS9zZWdtZW50Lmg+CisjZW5kaWYKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIApAQCAtNTUsOSArNjAsNiBAQAogCXVuc2lnbmVkIGxvbmcgc3M7CiB9OwogCi0jaW5jbHVkZSA8YXNtL3ZtODYuaD4KLSNpbmNsdWRlIDxhc20vc2VnbWVudC5oPgotCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwogCiAjZWxzZSAvKiBfX2kzODZfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3JlYm9vdC5oIGIvaW5jbHVkZS9hc20teDg2L3JlYm9vdC5oCmluZGV4IGU2Mzc0MWYuLjIwNmYzNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9yZWJvb3QuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcmVib290LmgKQEAgLTE0LDggKzE0LDggQEAKIAogZXh0ZXJuIHN0cnVjdCBtYWNoaW5lX29wcyBtYWNoaW5lX29wczsKIAotdm9pZCBtYWNoaW5lX3JlYWxfcmVzdGFydCh1bnNpZ25lZCBjaGFyICpjb2RlLCBpbnQgbGVuZ3RoKTsKIHZvaWQgbmF0aXZlX21hY2hpbmVfY3Jhc2hfc2h1dGRvd24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwogdm9pZCBuYXRpdmVfbWFjaGluZV9zaHV0ZG93bih2b2lkKTsKK3ZvaWQgbWFjaGluZV9yZWFsX3Jlc3RhcnQoY29uc3QgdW5zaWduZWQgY2hhciAqY29kZSwgaW50IGxlbmd0aCk7CiAKICNlbmRpZgkvKiBfQVNNX1JFQk9PVF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcmVxdWlyZWQtZmVhdHVyZXMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9yZXF1aXJlZC1mZWF0dXJlcy5oCmluZGV4IDc0MDBkM2EuLmFkZWM4ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9yZXF1aXJlZC1mZWF0dXJlcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9yZXF1aXJlZC1mZWF0dXJlcy5oCkBAIC0xOSw5ICsxOSwxMyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfWDg2X1BBRSkgfHwgZGVmaW5lZChDT05GSUdfWDg2XzY0KQogIyBkZWZpbmUgTkVFRF9QQUUJKDE8PChYODZfRkVBVFVSRV9QQUUgJiAzMSkpCi0jIGRlZmluZSBORUVEX0NYOAkoMTw8KFg4Nl9GRUFUVVJFX0NYOCAmIDMxKSkKICNlbHNlCiAjIGRlZmluZSBORUVEX1BBRQkwCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19YODZfQ01QWENIRzY0CisjIGRlZmluZSBORUVEX0NYOAkoMTw8KFg4Nl9GRUFUVVJFX0NYOCAmIDMxKSkKKyNlbHNlCiAjIGRlZmluZSBORUVEX0NYOAkwCiAjZW5kaWYKIApAQCAtMzgsNyArNDIsNyBAQAogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0Ci0jZGVmaW5lIE5FRURfUFNFCSgxPDwoWDg2X0ZFQVRVUkVfUFNFICYgMzEpKQorI2RlZmluZSBORUVEX1BTRQkwCiAjZGVmaW5lIE5FRURfTVNSCSgxPDwoWDg2X0ZFQVRVUkVfTVNSICYgMzEpKQogI2RlZmluZSBORUVEX1BHRQkoMTw8KFg4Nl9GRUFUVVJFX1BHRSAmIDMxKSkKICNkZWZpbmUgTkVFRF9GWFNSCSgxPDwoWDg2X0ZFQVRVUkVfRlhTUiAmIDMxKSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9yZXN1bWUtdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni9yZXN1bWUtdHJhY2UuaAppbmRleCAyNTU3NTE0Li44ZDlmMGI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcmVzdW1lLXRyYWNlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3Jlc3VtZS10cmFjZS5oCkBAIC02LDcgKzYsNyBAQAogI2RlZmluZSBUUkFDRV9SRVNVTUUodXNlcikJCQkJCVwKIGRvIHsJCQkJCQkJCVwKIAlpZiAocG1fdHJhY2VfZW5hYmxlZCkgewkJCQkJXAotCQl2b2lkICp0cmFjZWRhdGE7CQkJCVwKKwkJY29uc3Qgdm9pZCAqdHJhY2VkYXRhOwkJCQlcCiAJCWFzbSB2b2xhdGlsZShfQVNNX01PVl9VTCAiICQxZiwlMFxuIgkJXAogCQkJICAgICAiLnNlY3Rpb24gLnRyYWNlZGF0YSxcImFcIlxuIglcCiAJCQkgICAgICIxOlx0LndvcmQgJWMxXG5cdCIJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvc2VjY29tcF8zMi5oCmluZGV4IDE4ZGExOWUuLjM2ZTcxYzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NlY2NvbXBfMzIuaApAQCAtMSw0ICsxLDUgQEAKICNpZm5kZWYgX0FTTV9TRUNDT01QX0gKKyNkZWZpbmUgX0FTTV9TRUNDT01QX0gKIAogI2luY2x1ZGUgPGxpbnV4L3RocmVhZF9pbmZvLmg+CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvc2VjY29tcF82NC5oCmluZGV4IDU1M2FmNjUuLjc2Y2ZlNjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NlY2NvbXBfNjQuaApAQCAtMSw0ICsxLDUgQEAKICNpZm5kZWYgX0FTTV9TRUNDT01QX0gKKyNkZWZpbmUgX0FTTV9TRUNDT01QX0gKIAogI2luY2x1ZGUgPGxpbnV4L3RocmVhZF9pbmZvLmg+CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zZWdtZW50LmggYi9pbmNsdWRlL2FzbS14ODYvc2VnbWVudC5oCmluZGV4IGVkNTEzMWQuLmRmYzg2MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZWdtZW50LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NlZ21lbnQuaApAQCAtNjEsMTggKzYxLDE0IEBACiAjZGVmaW5lIEdEVF9FTlRSWV9UTFNfTUFYIAkoR0RUX0VOVFJZX1RMU19NSU4gKyBHRFRfRU5UUllfVExTX0VOVFJJRVMgLSAxKQogCiAjZGVmaW5lIEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfQ1MJMTQKLSNkZWZpbmUgX19VU0VSX0NTIChHRFRfRU5UUllfREVGQVVMVF9VU0VSX0NTICogOCArIDMpCiAKICNkZWZpbmUgR0RUX0VOVFJZX0RFRkFVTFRfVVNFUl9EUwkxNQotI2RlZmluZSBfX1VTRVJfRFMgKEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfRFMgKiA4ICsgMykKIAogI2RlZmluZSBHRFRfRU5UUllfS0VSTkVMX0JBU0UJMTIKIAogI2RlZmluZSBHRFRfRU5UUllfS0VSTkVMX0NTCQkoR0RUX0VOVFJZX0tFUk5FTF9CQVNFICsgMCkKLSNkZWZpbmUgX19LRVJORUxfQ1MgKEdEVF9FTlRSWV9LRVJORUxfQ1MgKiA4KQogCiAjZGVmaW5lIEdEVF9FTlRSWV9LRVJORUxfRFMJCShHRFRfRU5UUllfS0VSTkVMX0JBU0UgKyAxKQotI2RlZmluZSBfX0tFUk5FTF9EUyAoR0RUX0VOVFJZX0tFUk5FTF9EUyAqIDgpCiAKICNkZWZpbmUgR0RUX0VOVFJZX1RTUwkJCShHRFRfRU5UUllfS0VSTkVMX0JBU0UgKyA0KQogI2RlZmluZSBHRFRfRU5UUllfTERUCQkJKEdEVF9FTlRSWV9LRVJORUxfQkFTRSArIDUpCkBAIC0xMzksMTAgKzEzNSwxMSBAQAogI2Vsc2UKICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KIAotI2RlZmluZSBfX0tFUk5FTF9DUwkweDEwCi0jZGVmaW5lIF9fS0VSTkVMX0RTCTB4MTgKKyNkZWZpbmUgR0RUX0VOVFJZX0tFUk5FTDMyX0NTIDEKKyNkZWZpbmUgR0RUX0VOVFJZX0tFUk5FTF9DUyAyCisjZGVmaW5lIEdEVF9FTlRSWV9LRVJORUxfRFMgMwogCi0jZGVmaW5lIF9fS0VSTkVMMzJfQ1MgICAweDA4CisjZGVmaW5lIF9fS0VSTkVMMzJfQ1MgICAoR0RUX0VOVFJZX0tFUk5FTDMyX0NTICogOCkKIAogLyoKICAqIHdlIGNhbm5vdCB1c2UgdGhlIHNhbWUgY29kZSBzZWdtZW50IGRlc2NyaXB0b3IgZm9yIHVzZXIgYW5kIGtlcm5lbApAQCAtMTUwLDEwICsxNDcsMTAgQEAKICAqIFRoZSBzZWdtZW50IG9mZnNldCBuZWVkcyB0byBjb250YWluIGEgUlBMLiBHcnIuIC1BSwogICogR0RUIGxheW91dCB0byBnZXQgNjRiaXQgc3lzY2FsbCByaWdodCAoc3lzcmV0IGhhcmRjb2RlcyBnZHQgb2Zmc2V0cykKICAqLwotCi0jZGVmaW5lIF9fVVNFUjMyX0NTICAgMHgyMyAgIC8qIDQqOCszICovCi0jZGVmaW5lIF9fVVNFUl9EUyAgICAgMHgyYiAgIC8qIDUqOCszICovCi0jZGVmaW5lIF9fVVNFUl9DUyAgICAgMHgzMyAgIC8qIDYqOCszICovCisjZGVmaW5lIEdEVF9FTlRSWV9ERUZBVUxUX1VTRVIzMl9DUyA0CisjZGVmaW5lIEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfRFMgNQorI2RlZmluZSBHRFRfRU5UUllfREVGQVVMVF9VU0VSX0NTIDYKKyNkZWZpbmUgX19VU0VSMzJfQ1MgICAoR0RUX0VOVFJZX0RFRkFVTFRfVVNFUjMyX0NTICogOCArIDMpCiAjZGVmaW5lIF9fVVNFUjMyX0RTCV9fVVNFUl9EUwogCiAjZGVmaW5lIEdEVF9FTlRSWV9UU1MgOAkvKiBuZWVkcyB0d28gZW50cmllcyAqLwpAQCAtMTc1LDYgKzE3MiwxMCBAQAogCiAjZW5kaWYKIAorI2RlZmluZSBfX0tFUk5FTF9DUwkoR0RUX0VOVFJZX0tFUk5FTF9DUyAqIDgpCisjZGVmaW5lIF9fS0VSTkVMX0RTCShHRFRfRU5UUllfS0VSTkVMX0RTICogOCkKKyNkZWZpbmUgX19VU0VSX0RTICAgICAoR0RUX0VOVFJZX0RFRkFVTFRfVVNFUl9EUyogOCArIDMpCisjZGVmaW5lIF9fVVNFUl9DUyAgICAgKEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfQ1MqIDggKyAzKQogI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKICNkZWZpbmUgZ2V0X2tlcm5lbF9ycGwoKSAgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvc2V0dXAuaCBiL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCmluZGV4IGZhNjc2M2EuLjkwYWIyMjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCkBAIC04LDcgKzgsMjUgQEAKIC8qIEludGVycnVwdCBjb250cm9sIGZvciB2U01Qb3dlcmVkIHg4Nl82NCBzeXN0ZW1zICovCiB2b2lkIHZzbXBfaW5pdCh2b2lkKTsKIAotY2hhciAqbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCk7CisjaWZkZWYgQ09ORklHX1g4Nl9WSVNXUworZXh0ZXJuIHZvaWQgdmlzd3NfZWFybHlfZGV0ZWN0KHZvaWQpOworZXh0ZXJuIGludCBpc192aXN3c19ib3godm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIHZpc3dzX2Vhcmx5X2RldGVjdCh2b2lkKSB7IH0KK3N0YXRpYyBpbmxpbmUgaW50IGlzX3Zpc3dzX2JveCh2b2lkKSB7IHJldHVybiAwOyB9CisjZW5kaWYKKworLyoKKyAqIEFueSBzZXR1cCBxdWlya3MgdG8gYmUgcGVyZm9ybWVkPworICovCitleHRlcm4gaW50ICgqYXJjaF90aW1lX2luaXRfcXVpcmspKHZvaWQpOworZXh0ZXJuIGludCAoKmFyY2hfcHJlX2ludHJfaW5pdF9xdWlyaykodm9pZCk7CitleHRlcm4gaW50ICgqYXJjaF9pbnRyX2luaXRfcXVpcmspKHZvaWQpOworZXh0ZXJuIGludCAoKmFyY2hfdHJhcF9pbml0X3F1aXJrKSh2b2lkKTsKK2V4dGVybiBjaGFyICogKCphcmNoX21lbW9yeV9zZXR1cF9xdWlyaykodm9pZCk7CitleHRlcm4gaW50ICgqbWFjaF9nZXRfc21wX2NvbmZpZ19xdWlyaykodW5zaWduZWQgaW50IGVhcmx5KTsKK2V4dGVybiBpbnQgKCptYWNoX2ZpbmRfc21wX2NvbmZpZ19xdWlyaykodW5zaWduZWQgaW50IHJlc2VydmUpOworCiAjaWZuZGVmIENPTkZJR19QQVJBVklSVAogI2RlZmluZSBwYXJhdmlydF9wb3N0X2FsbG9jYXRvcl9pbml0KCkJZG8ge30gd2hpbGUgKDApCiAjZW5kaWYKQEAgLTQzLDI2ICs2MSwyMyBAQAogICovCiBleHRlcm4gc3RydWN0IGJvb3RfcGFyYW1zIGJvb3RfcGFyYW1zOwogCi0jaWZkZWYgX19pMzg2X18KIC8qCiAgKiBEbyBOT1QgRVZFUiBsb29rIGF0IHRoZSBCSU9TIG1lbW9yeSBzaXplIGxvY2F0aW9uLgogICogSXQgZG9lcyBub3Qgd29yayBvbiBtYW55IG1hY2hpbmVzLgogICovCiAjZGVmaW5lIExPV01FTVNJWkUoKQkoMHg5ZjAwMCkKIAotc3RydWN0IGU4MjBlbnRyeTsKKyNpZmRlZiBfX2kzODZfXwogCi1jaGFyICogX19pbml0IG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpOwotY2hhciAqbWVtb3J5X3NldHVwKHZvaWQpOwordm9pZCBfX2luaXQgaTM4Nl9zdGFydF9rZXJuZWwodm9pZCk7CitleHRlcm4gdm9pZCBwcm9iZV9yb21zKHZvaWQpOwogCi1pbnQgX19pbml0IGNvcHlfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgaW50IG5yX21hcCk7Ci1pbnQgX19pbml0IHNhbml0aXplX2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGNoYXIgKnBucl9tYXApOwotdm9pZCBfX2luaXQgYWRkX21lbW9yeV9yZWdpb24odW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIGludCB0eXBlKTsKLQorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5pdF9wZ190YWJsZXNfc3RhcnQ7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBpbml0X3BnX3RhYmxlc19lbmQ7CiAKLQorI2Vsc2UKK3ZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9rZXJuZWwoY2hhciAqcmVhbF9tb2RlKTsKK3ZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9yZXNlcnZhdGlvbnMoY2hhciAqcmVhbF9tb2RlX2RhdGEpOwogCiAjZW5kaWYgLyogX19pMzg2X18gKi8KICNlbmRpZiAvKiBfU0VUVVAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zbXAuaCBiL2luY2x1ZGUvYXNtLXg4Ni9zbXAuaAppbmRleCBlM2MyNDgwLi5jMjc4NGIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvc21wLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NtcC5oCkBAIC0yOSwyMSArMjksMTIgQEAKIGV4dGVybiB1bnNpZ25lZCBpbnQgbnVtX3Byb2Nlc3NvcnM7CiBleHRlcm4gY3B1bWFza190IGNwdV9pbml0aWFsaXplZDsKIAotI2lmZGVmIENPTkZJR19TTVAKLWV4dGVybiB1MTYgeDg2X2NwdV90b19hcGljaWRfaW5pdFtdOwotZXh0ZXJuIHUxNiB4ODZfYmlvc19jcHVfYXBpY2lkX2luaXRbXTsKLWV4dGVybiB2b2lkICp4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHI7Ci1leHRlcm4gdm9pZCAqeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7Ci0jZWxzZQotI2RlZmluZSB4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHIgTlVMTAotI2RlZmluZSB4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0ciBOVUxMCi0jZW5kaWYKLQogREVDTEFSRV9QRVJfQ1BVKGNwdW1hc2tfdCwgY3B1X3NpYmxpbmdfbWFwKTsKIERFQ0xBUkVfUEVSX0NQVShjcHVtYXNrX3QsIGNwdV9jb3JlX21hcCk7CiBERUNMQVJFX1BFUl9DUFUodTE2LCBjcHVfbGxjX2lkKTsKLURFQ0xBUkVfUEVSX0NQVSh1MTYsIHg4Nl9jcHVfdG9fYXBpY2lkKTsKLURFQ0xBUkVfUEVSX0NQVSh1MTYsIHg4Nl9iaW9zX2NwdV9hcGljaWQpOworCitERUNMQVJFX0VBUkxZX1BFUl9DUFUodTE2LCB4ODZfY3B1X3RvX2FwaWNpZCk7CitERUNMQVJFX0VBUkxZX1BFUl9DUFUodTE2LCB4ODZfYmlvc19jcHVfYXBpY2lkKTsKIAogLyogU3RhdGljIHN0YXRlIGluIGhlYWQuUyB1c2VkIHRvIHNldCB1cCBhIENQVSAqLwogZXh0ZXJuIHN0cnVjdCB7CkBAIC0xMjMsOCArMTE0LDYgQEAKIGV4dGVybiBpbnQgX19jcHVfZGlzYWJsZSh2b2lkKTsKIGV4dGVybiB2b2lkIF9fY3B1X2RpZSh1bnNpZ25lZCBpbnQgY3B1KTsKIAotZXh0ZXJuIHZvaWQgcHJlZmlsbF9wb3NzaWJsZV9tYXAodm9pZCk7Ci0KIHZvaWQgc21wX3N0b3JlX2NwdV9pbmZvKGludCBpZCk7CiAjZGVmaW5lIGNwdV9waHlzaWNhbF9pZChjcHUpCXBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSkKIApAQCAtMTM1LDYgKzEyNCwxNCBAQAogfQogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAorI2lmIGRlZmluZWQoQ09ORklHX1NNUCkgJiYgZGVmaW5lZChDT05GSUdfSE9UUExVR19DUFUpCitleHRlcm4gdm9pZCBwcmVmaWxsX3Bvc3NpYmxlX21hcCh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgcHJlZmlsbF9wb3NzaWJsZV9tYXAodm9pZCkKK3sKK30KKyNlbmRpZgorCiBleHRlcm4gdW5zaWduZWQgZGlzYWJsZWRfY3B1cyBfX2NwdWluaXRkYXRhOwogCiAjaWZkZWYgQ09ORklHX1g4Nl8zMl9TTVAKQEAgLTIwMiwxMCArMTk5LDggQEAKICNlbmRpZiAvKiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMgKi8KIAogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQotZXh0ZXJuIHZvaWQgY3B1X2V4aXRfY2xlYXIodm9pZCk7CiBleHRlcm4gdm9pZCBjcHVfdW5pbml0KHZvaWQpOwogI2VuZGlmCiAKLWV4dGVybiB2b2lkIHNtcF9hbGxvY19tZW1vcnkodm9pZCk7CiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zcmF0LmggYi9pbmNsdWRlL2FzbS14ODYvc3JhdC5oCmluZGV4IGY0YmJhMTMuLjc3NGM5MTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zcmF0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NyYXQuaApAQCAtMjcsMTEgKzI3LDEzIEBACiAjaWZuZGVmIF9BU01fU1JBVF9IXwogI2RlZmluZSBfQVNNX1NSQVRfSF8KIAotI2lmbmRlZiBDT05GSUdfQUNQSV9TUkFUCi0jZXJyb3IgQ09ORklHX0FDUElfU1JBVCBub3QgZGVmaW5lZCwgYW5kIHNyYXQuaCBoZWFkZXIgaGFzIGJlZW4gaW5jbHVkZWQKLSNlbmRpZgotCisjaWZkZWYgQ09ORklHX0FDUElfTlVNQQogZXh0ZXJuIGludCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nICpnZXRfemhvbGVzX3NpemUoaW50KTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKQoreworCXJldHVybiAwOworfQorI2VuZGlmCiAKICNlbmRpZiAvKiBfQVNNX1NSQVRfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zdHJpbmdfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9zdHJpbmdfMzIuaAppbmRleCBiNDkzNjlhLi4xOTM1NzhjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvc3RyaW5nXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3N0cmluZ18zMi5oCkBAIC0yOSw4MSArMjksMTE2IEBACiAjZGVmaW5lIF9fSEFWRV9BUkNIX1NUUkxFTgogZXh0ZXJuIHNpemVfdCBzdHJsZW4oY29uc3QgY2hhciAqcyk7CiAKLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fbWVtY3B5KHZvaWQgKiB0bywgY29uc3Qgdm9pZCAqIGZyb20sIHNpemVfdCBuKQorc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkICpfX21lbWNweSh2b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IG4pCiB7Ci1pbnQgZDAsIGQxLCBkMjsKLV9fYXNtX18gX192b2xhdGlsZV9fKAotCSJyZXAgOyBtb3ZzbFxuXHQiCi0JIm1vdmwgJTQsJSVlY3hcblx0IgotCSJhbmRsICQzLCUlZWN4XG5cdCIKLQkianogMWZcblx0IgotCSJyZXAgOyBtb3ZzYlxuXHQiCi0JIjE6IgotCTogIj0mYyIgKGQwKSwgIj0mRCIgKGQxKSwgIj0mUyIgKGQyKQotCTogIjAiIChuLzQpLCAiZyIgKG4pLCAiMSIgKChsb25nKSB0byksICIyIiAoKGxvbmcpIGZyb20pCi0JOiAibWVtb3J5Iik7Ci1yZXR1cm4gKHRvKTsKKwlpbnQgZDAsIGQxLCBkMjsKKwlhc20gdm9sYXRpbGUoInJlcCA7IG1vdnNsXG5cdCIKKwkJICAgICAibW92bCAlNCwlJWVjeFxuXHQiCisJCSAgICAgImFuZGwgJDMsJSVlY3hcblx0IgorCQkgICAgICJqeiAxZlxuXHQiCisJCSAgICAgInJlcCA7IG1vdnNiXG5cdCIKKwkJICAgICAiMToiCisJCSAgICAgOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEpLCAiPSZTIiAoZDIpCisJCSAgICAgOiAiMCIgKG4gLyA0KSwgImciIChuKSwgIjEiICgobG9uZyl0byksICIyIiAoKGxvbmcpZnJvbSkKKwkJICAgICA6ICJtZW1vcnkiKTsKKwlyZXR1cm4gdG87CiB9CiAKIC8qCiAgKiBUaGlzIGxvb2tzIHVnbHksIGJ1dCB0aGUgY29tcGlsZXIgY2FuIG9wdGltaXplIGl0IHRvdGFsbHksCiAgKiBhcyB0aGUgY291bnQgaXMgY29uc3RhbnQuCiAgKi8KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fY29uc3RhbnRfbWVtY3B5KHZvaWQgKiB0bywgY29uc3Qgdm9pZCAqIGZyb20sIHNpemVfdCBuKQorc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkICpfX2NvbnN0YW50X21lbWNweSh2b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSwKKwkJCQkJICAgICAgIHNpemVfdCBuKQogewogCWxvbmcgZXNpLCBlZGk7Ci0JaWYgKCFuKSByZXR1cm4gdG87Ci0jaWYgMQkvKiB3YW50IHRvIGRvIHNtYWxsIGNvcGllcyB3aXRoIG5vbi1zdHJpbmcgb3BzPyAqLworCWlmICghbikKKwkJcmV0dXJuIHRvOworCiAJc3dpdGNoIChuKSB7Ci0JCWNhc2UgMTogKihjaGFyKil0byA9ICooY2hhciopZnJvbTsgcmV0dXJuIHRvOwotCQljYXNlIDI6ICooc2hvcnQqKXRvID0gKihzaG9ydCopZnJvbTsgcmV0dXJuIHRvOwotCQljYXNlIDQ6ICooaW50Kil0byA9ICooaW50Kilmcm9tOyByZXR1cm4gdG87Ci0jaWYgMQkvKiBpbmNsdWRpbmcgdGhvc2UgZG9hYmxlIHdpdGggdHdvIG1vdmVzPyAqLwotCQljYXNlIDM6ICooc2hvcnQqKXRvID0gKihzaG9ydCopZnJvbTsKLQkJCSooKGNoYXIqKXRvKzIpID0gKigoY2hhciopZnJvbSsyKTsgcmV0dXJuIHRvOwotCQljYXNlIDU6ICooaW50Kil0byA9ICooaW50Kilmcm9tOwotCQkJKigoY2hhciopdG8rNCkgPSAqKChjaGFyKilmcm9tKzQpOyByZXR1cm4gdG87Ci0JCWNhc2UgNjogKihpbnQqKXRvID0gKihpbnQqKWZyb207Ci0JCQkqKChzaG9ydCopdG8rMikgPSAqKChzaG9ydCopZnJvbSsyKTsgcmV0dXJuIHRvOwotCQljYXNlIDg6ICooaW50Kil0byA9ICooaW50Kilmcm9tOwotCQkJKigoaW50Kil0bysxKSA9ICooKGludCopZnJvbSsxKTsgcmV0dXJuIHRvOwotI2VuZGlmCisJY2FzZSAxOgorCQkqKGNoYXIgKil0byA9ICooY2hhciAqKWZyb207CisJCXJldHVybiB0bzsKKwljYXNlIDI6CisJCSooc2hvcnQgKil0byA9ICooc2hvcnQgKilmcm9tOworCQlyZXR1cm4gdG87CisJY2FzZSA0OgorCQkqKGludCAqKXRvID0gKihpbnQgKilmcm9tOworCQlyZXR1cm4gdG87CisKKwljYXNlIDM6CisJCSooc2hvcnQgKil0byA9ICooc2hvcnQgKilmcm9tOworCQkqKChjaGFyICopdG8gKyAyKSA9ICooKGNoYXIgKilmcm9tICsgMik7CisJCXJldHVybiB0bzsKKwljYXNlIDU6CisJCSooaW50ICopdG8gPSAqKGludCAqKWZyb207CisJCSooKGNoYXIgKil0byArIDQpID0gKigoY2hhciAqKWZyb20gKyA0KTsKKwkJcmV0dXJuIHRvOworCWNhc2UgNjoKKwkJKihpbnQgKil0byA9ICooaW50ICopZnJvbTsKKwkJKigoc2hvcnQgKil0byArIDIpID0gKigoc2hvcnQgKilmcm9tICsgMik7CisJCXJldHVybiB0bzsKKwljYXNlIDg6CisJCSooaW50ICopdG8gPSAqKGludCAqKWZyb207CisJCSooKGludCAqKXRvICsgMSkgPSAqKChpbnQgKilmcm9tICsgMSk7CisJCXJldHVybiB0bzsKIAl9Ci0jZW5kaWYKLQllc2kgPSAobG9uZykgZnJvbTsKLQllZGkgPSAobG9uZykgdG87Ci0JaWYgKG4gPj0gNSo0KSB7CisKKwllc2kgPSAobG9uZylmcm9tOworCWVkaSA9IChsb25nKXRvOworCWlmIChuID49IDUgKiA0KSB7CiAJCS8qIGxhcmdlIGJsb2NrOiB1c2UgcmVwIHByZWZpeCAqLwogCQlpbnQgZWN4OwotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygKLQkJCSJyZXAgOyBtb3ZzbCIKLQkJCTogIj0mYyIgKGVjeCksICI9JkQiIChlZGkpLCAiPSZTIiAoZXNpKQotCQkJOiAiMCIgKG4vNCksICIxIiAoZWRpKSwiMiIgKGVzaSkKLQkJCTogIm1lbW9yeSIKKwkJYXNtIHZvbGF0aWxlKCJyZXAgOyBtb3ZzbCIKKwkJCSAgICAgOiAiPSZjIiAoZWN4KSwgIj0mRCIgKGVkaSksICI9JlMiIChlc2kpCisJCQkgICAgIDogIjAiIChuIC8gNCksICIxIiAoZWRpKSwgIjIiIChlc2kpCisJCQkgICAgIDogIm1lbW9yeSIKIAkJKTsKIAl9IGVsc2UgewogCQkvKiBzbWFsbCBibG9jazogZG9uJ3QgY2xvYmJlciBlY3ggKyBzbWFsbGVyIGNvZGUgKi8KLQkJaWYgKG4gPj0gNCo0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJaWYgKG4gPj0gMyo0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJaWYgKG4gPj0gMio0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJaWYgKG4gPj0gMSo0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKKwkJaWYgKG4gPj0gNCAqIDQpCisJCQlhc20gdm9sYXRpbGUoIm1vdnNsIgorCQkJCSAgICAgOiAiPSZEIihlZGkpLCAiPSZTIihlc2kpCisJCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJCSAgICAgOiAibWVtb3J5Iik7CisJCWlmIChuID49IDMgKiA0KQorCQkJYXNtIHZvbGF0aWxlKCJtb3ZzbCIKKwkJCQkgICAgIDogIj0mRCIoZWRpKSwgIj0mUyIoZXNpKQorCQkJCSAgICAgOiAiMCIoZWRpKSwgIjEiKGVzaSkKKwkJCQkgICAgIDogIm1lbW9yeSIpOworCQlpZiAobiA+PSAyICogNCkKKwkJCWFzbSB2b2xhdGlsZSgibW92c2wiCisJCQkJICAgICA6ICI9JkQiKGVkaSksICI9JlMiKGVzaSkKKwkJCQkgICAgIDogIjAiKGVkaSksICIxIihlc2kpCisJCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJaWYgKG4gPj0gMSAqIDQpCisJCQlhc20gdm9sYXRpbGUoIm1vdnNsIgorCQkJCSAgICAgOiAiPSZEIihlZGkpLCAiPSZTIihlc2kpCisJCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJCSAgICAgOiAibWVtb3J5Iik7CiAJfQogCXN3aXRjaCAobiAlIDQpIHsKIAkJLyogdGFpbCAqLwotCQljYXNlIDA6IHJldHVybiB0bzsKLQkJY2FzZSAxOiBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2IiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJCXJldHVybiB0bzsKLQkJY2FzZSAyOiBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c3ciCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJCXJldHVybiB0bzsKLQkJZGVmYXVsdDogX19hc21fXyBfX3ZvbGF0aWxlX18oIm1vdnN3XG5cdG1vdnNiIgotCQkJOiI9JkQiKGVkaSksIj0mUyIoZXNpKToiMCIoZWRpKSwiMSIoZXNpKToibWVtb3J5Iik7Ci0JCQlyZXR1cm4gdG87CisJY2FzZSAwOgorCQlyZXR1cm4gdG87CisJY2FzZSAxOgorCQlhc20gdm9sYXRpbGUoIm1vdnNiIgorCQkJICAgICA6ICI9JkQiKGVkaSksICI9JlMiKGVzaSkKKwkJCSAgICAgOiAiMCIoZWRpKSwgIjEiKGVzaSkKKwkJCSAgICAgOiAibWVtb3J5Iik7CisJCXJldHVybiB0bzsKKwljYXNlIDI6CisJCWFzbSB2b2xhdGlsZSgibW92c3ciCisJCQkgICAgIDogIj0mRCIoZWRpKSwgIj0mUyIoZXNpKQorCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJcmV0dXJuIHRvOworCWRlZmF1bHQ6CisJCWFzbSB2b2xhdGlsZSgibW92c3dcblx0bW92c2IiCisJCQkgICAgIDogIj0mRCIoZWRpKSwgIj0mUyIoZXNpKQorCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJcmV0dXJuIHRvOwogCX0KIH0KIApAQCAtMTE3LDg3ICsxNTIsODYgQEAKICAqCVRoaXMgQ1BVIGZhdm91cnMgM0ROb3cgc3Ryb25nbHkgKGVnIEFNRCBBdGhsb24pCiAgKi8KIAotc3RhdGljIGlubGluZSB2b2lkICogX19jb25zdGFudF9tZW1jcHkzZCh2b2lkICogdG8sIGNvbnN0IHZvaWQgKiBmcm9tLCBzaXplX3QgbGVuKQorc3RhdGljIGlubGluZSB2b2lkICpfX2NvbnN0YW50X21lbWNweTNkKHZvaWQgKnRvLCBjb25zdCB2b2lkICpmcm9tLCBzaXplX3QgbGVuKQogewogCWlmIChsZW4gPCA1MTIpCiAJCXJldHVybiBfX2NvbnN0YW50X21lbWNweSh0bywgZnJvbSwgbGVuKTsKIAlyZXR1cm4gX21teF9tZW1jcHkodG8sIGZyb20sIGxlbik7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgKl9fbWVtY3B5M2Qodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBsZW4pCitzdGF0aWMgaW5saW5lIHZvaWQgKl9fbWVtY3B5M2Qodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBsZW4pCiB7CiAJaWYgKGxlbiA8IDUxMikKIAkJcmV0dXJuIF9fbWVtY3B5KHRvLCBmcm9tLCBsZW4pOwogCXJldHVybiBfbW14X21lbWNweSh0bywgZnJvbSwgbGVuKTsKIH0KIAotI2RlZmluZSBtZW1jcHkodCwgZiwgbikgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pID8gXAotIF9fY29uc3RhbnRfbWVtY3B5M2QoKHQpLChmKSwobikpIDogXAotIF9fbWVtY3B5M2QoKHQpLChmKSwobikpKQorI2RlZmluZSBtZW1jcHkodCwgZiwgbikJCQkJXAorCShfX2J1aWx0aW5fY29uc3RhbnRfcCgobikpCQlcCisJID8gX19jb25zdGFudF9tZW1jcHkzZCgodCksIChmKSwgKG4pKQlcCisJIDogX19tZW1jcHkzZCgodCksIChmKSwgKG4pKSkKIAogI2Vsc2UKIAogLyoKICAqCU5vIDNEIE5vdyEKICAqLwotIAotI2RlZmluZSBtZW1jcHkodCwgZiwgbikgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pID8gXAotIF9fY29uc3RhbnRfbWVtY3B5KCh0KSwoZiksKG4pKSA6IFwKLSBfX21lbWNweSgodCksKGYpLChuKSkpCisKKyNkZWZpbmUgbWVtY3B5KHQsIGYsIG4pCQkJCVwKKwkoX19idWlsdGluX2NvbnN0YW50X3AoKG4pKQkJXAorCSA/IF9fY29uc3RhbnRfbWVtY3B5KCh0KSwgKGYpLCAobikpCVwKKwkgOiBfX21lbWNweSgodCksIChmKSwgKG4pKSkKIAogI2VuZGlmCiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNTU9WRQotdm9pZCAqbWVtbW92ZSh2b2lkICogZGVzdCxjb25zdCB2b2lkICogc3JjLCBzaXplX3Qgbik7Cit2b2lkICptZW1tb3ZlKHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IG4pOwogCiAjZGVmaW5lIG1lbWNtcCBfX2J1aWx0aW5fbWVtY21wCiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNQ0hSCi1leHRlcm4gdm9pZCAqbWVtY2hyKGNvbnN0IHZvaWQgKiBjcyxpbnQgYyxzaXplX3QgY291bnQpOworZXh0ZXJuIHZvaWQgKm1lbWNocihjb25zdCB2b2lkICpjcywgaW50IGMsIHNpemVfdCBjb3VudCk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCAqIF9fbWVtc2V0X2dlbmVyaWModm9pZCAqIHMsIGNoYXIgYyxzaXplX3QgY291bnQpCitzdGF0aWMgaW5saW5lIHZvaWQgKl9fbWVtc2V0X2dlbmVyaWModm9pZCAqcywgY2hhciBjLCBzaXplX3QgY291bnQpCiB7Ci1pbnQgZDAsIGQxOwotX19hc21fXyBfX3ZvbGF0aWxlX18oCi0JInJlcFxuXHQiCi0JInN0b3NiIgotCTogIj0mYyIgKGQwKSwgIj0mRCIgKGQxKQotCToiYSIgKGMpLCIxIiAocyksIjAiIChjb3VudCkKLQk6Im1lbW9yeSIpOwotcmV0dXJuIHM7CisJaW50IGQwLCBkMTsKKwlhc20gdm9sYXRpbGUoInJlcFxuXHQiCisJCSAgICAgInN0b3NiIgorCQkgICAgIDogIj0mYyIgKGQwKSwgIj0mRCIgKGQxKQorCQkgICAgIDogImEiIChjKSwgIjEiIChzKSwgIjAiIChjb3VudCkKKwkJICAgICA6ICJtZW1vcnkiKTsKKwlyZXR1cm4gczsKIH0KIAogLyogd2UgbWlnaHQgd2FudCB0byB3cml0ZSBvcHRpbWl6ZWQgdmVyc2lvbnMgb2YgdGhlc2UgbGF0ZXIgKi8KLSNkZWZpbmUgX19jb25zdGFudF9jb3VudF9tZW1zZXQocyxjLGNvdW50KSBfX21lbXNldF9nZW5lcmljKChzKSwoYyksKGNvdW50KSkKKyNkZWZpbmUgX19jb25zdGFudF9jb3VudF9tZW1zZXQocywgYywgY291bnQpIF9fbWVtc2V0X2dlbmVyaWMoKHMpLCAoYyksIChjb3VudCkpCiAKIC8qCi0gKiBtZW1zZXQoeCwwLHkpIGlzIGEgcmVhc29uYWJseSBjb21tb24gdGhpbmcgdG8gZG8sIHNvIHdlIHdhbnQgdG8gZmlsbAorICogbWVtc2V0KHgsIDAsIHkpIGlzIGEgcmVhc29uYWJseSBjb21tb24gdGhpbmcgdG8gZG8sIHNvIHdlIHdhbnQgdG8gZmlsbAogICogdGhpbmdzIDMyIGJpdHMgYXQgYSB0aW1lIGV2ZW4gd2hlbiB3ZSBkb24ndCBrbm93IHRoZSBzaXplIG9mIHRoZQogICogYXJlYSBhdCBjb21waWxlLXRpbWUuLgogICovCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgKiBfX2NvbnN0YW50X2NfbWVtc2V0KHZvaWQgKiBzLCB1bnNpZ25lZCBsb25nIGMsIHNpemVfdCBjb3VudCkKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK3ZvaWQgKl9fY29uc3RhbnRfY19tZW1zZXQodm9pZCAqcywgdW5zaWduZWQgbG9uZyBjLCBzaXplX3QgY291bnQpCiB7Ci1pbnQgZDAsIGQxOwotX19hc21fXyBfX3ZvbGF0aWxlX18oCi0JInJlcCA7IHN0b3NsXG5cdCIKLQkidGVzdGIgJDIsJWIzXG5cdCIKLQkiamUgMWZcblx0IgotCSJzdG9zd1xuIgotCSIxOlx0dGVzdGIgJDEsJWIzXG5cdCIKLQkiamUgMmZcblx0IgotCSJzdG9zYlxuIgotCSIyOiIKLQk6Ij0mYyIgKGQwKSwgIj0mRCIgKGQxKQotCToiYSIgKGMpLCAicSIgKGNvdW50KSwgIjAiIChjb3VudC80KSwgIjEiICgobG9uZykgcykKLQk6Im1lbW9yeSIpOwotcmV0dXJuIChzKTsJCisJaW50IGQwLCBkMTsKKwlhc20gdm9sYXRpbGUoInJlcCA7IHN0b3NsXG5cdCIKKwkJICAgICAidGVzdGIgJDIsJWIzXG5cdCIKKwkJICAgICAiamUgMWZcblx0IgorCQkgICAgICJzdG9zd1xuIgorCQkgICAgICIxOlx0dGVzdGIgJDEsJWIzXG5cdCIKKwkJICAgICAiamUgMmZcblx0IgorCQkgICAgICJzdG9zYlxuIgorCQkgICAgICIyOiIKKwkJICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkKKwkJICAgICA6ICJhIiAoYyksICJxIiAoY291bnQpLCAiMCIgKGNvdW50LzQpLCAiMSIgKChsb25nKXMpCisJCSAgICAgOiAibWVtb3J5Iik7CisJcmV0dXJuIHM7CiB9CiAKIC8qIEFkZGVkIGJ5IEdlcnRqYW4gdmFuIFdpbmdlcmRlIHRvIG1ha2UgbWluaXggYW5kIHN5c3YgbW9kdWxlIHdvcmsgKi8KICNkZWZpbmUgX19IQVZFX0FSQ0hfU1RSTkxFTgotZXh0ZXJuIHNpemVfdCBzdHJubGVuKGNvbnN0IGNoYXIgKiBzLCBzaXplX3QgY291bnQpOworZXh0ZXJuIHNpemVfdCBzdHJubGVuKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCk7CiAvKiBlbmQgb2YgYWRkaXRpb25hbCBzdHVmZiAqLwogCiAjZGVmaW5lIF9fSEFWRV9BUkNIX1NUUlNUUgpAQCAtMjA3LDY2ICsyNDEsODUgQEAKICAqIFRoaXMgbG9va3MgaG9ycmlibHkgdWdseSwgYnV0IHRoZSBjb21waWxlciBjYW4gb3B0aW1pemUgaXQgdG90YWxseSwKICAqIGFzIHdlIGJ5IG5vdyBrbm93IHRoYXQgYm90aCBwYXR0ZXJuIGFuZCBjb3VudCBpcyBjb25zdGFudC4uCiAgKi8KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fY29uc3RhbnRfY19hbmRfY291bnRfbWVtc2V0KHZvaWQgKiBzLCB1bnNpZ25lZCBsb25nIHBhdHRlcm4sIHNpemVfdCBjb3VudCkKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK3ZvaWQgKl9fY29uc3RhbnRfY19hbmRfY291bnRfbWVtc2V0KHZvaWQgKnMsIHVuc2lnbmVkIGxvbmcgcGF0dGVybiwKKwkJCQkgICAgc2l6ZV90IGNvdW50KQogewogCXN3aXRjaCAoY291bnQpIHsKKwljYXNlIDA6CisJCXJldHVybiBzOworCWNhc2UgMToKKwkJKih1bnNpZ25lZCBjaGFyICopcyA9IHBhdHRlcm4gJiAweGZmOworCQlyZXR1cm4gczsKKwljYXNlIDI6CisJCSoodW5zaWduZWQgc2hvcnQgKilzID0gcGF0dGVybiAmIDB4ZmZmZjsKKwkJcmV0dXJuIHM7CisJY2FzZSAzOgorCQkqKHVuc2lnbmVkIHNob3J0ICopcyA9IHBhdHRlcm4gJiAweGZmZmY7CisJCSooKHVuc2lnbmVkIGNoYXIgKilzICsgMikgPSBwYXR0ZXJuICYgMHhmZjsKKwkJcmV0dXJuIHM7CisJY2FzZSA0OgorCQkqKHVuc2lnbmVkIGxvbmcgKilzID0gcGF0dGVybjsKKwkJcmV0dXJuIHM7CisJfQorCisjZGVmaW5lIENPTU1PTih4KQkJCQkJCQlcCisJYXNtIHZvbGF0aWxlKCJyZXAgOyBzdG9zbCIJCQkJCVwKKwkJICAgICB4CQkJCQkJCVwKKwkJICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkJCQkJXAorCQkgICAgIDogImEiIChlYXgpLCAiMCIgKGNvdW50LzQpLCAiMSIgKChsb25nKXMpCVwKKwkJICAgICA6ICJtZW1vcnkiKQorCisJeworCQlpbnQgZDAsIGQxOworI2lmIF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPT0gMAorCQkvKiBXb3JrYXJvdW5kIGZvciBicm9rZW4gZ2NjIDQuMCAqLworCQlyZWdpc3RlciB1bnNpZ25lZCBsb25nIGVheCBhc20oIiVlYXgiKSA9IHBhdHRlcm47CisjZWxzZQorCQl1bnNpZ25lZCBsb25nIGVheCA9IHBhdHRlcm47CisjZW5kaWYKKworCQlzd2l0Y2ggKGNvdW50ICUgNCkgewogCQljYXNlIDA6CisJCQlDT01NT04oIiIpOwogCQkJcmV0dXJuIHM7CiAJCWNhc2UgMToKLQkJCSoodW5zaWduZWQgY2hhciAqKXMgPSBwYXR0ZXJuICYgMHhmZjsKKwkJCUNPTU1PTigiXG5cdHN0b3NiIik7CiAJCQlyZXR1cm4gczsKIAkJY2FzZSAyOgotCQkJKih1bnNpZ25lZCBzaG9ydCAqKXMgPSBwYXR0ZXJuICYgMHhmZmZmOworCQkJQ09NTU9OKCJcblx0c3Rvc3ciKTsKIAkJCXJldHVybiBzOwotCQljYXNlIDM6Ci0JCQkqKHVuc2lnbmVkIHNob3J0ICopcyA9IHBhdHRlcm4gJiAweGZmZmY7Ci0JCQkqKDIrKHVuc2lnbmVkIGNoYXIgKilzKSA9IHBhdHRlcm4gJiAweGZmOworCQlkZWZhdWx0OgorCQkJQ09NTU9OKCJcblx0c3Rvc3dcblx0c3Rvc2IiKTsKIAkJCXJldHVybiBzOwotCQljYXNlIDQ6Ci0JCQkqKHVuc2lnbmVkIGxvbmcgKilzID0gcGF0dGVybjsKLQkJCXJldHVybiBzOworCQl9CiAJfQotI2RlZmluZSBDT01NT04oeCkgXAotX19hc21fXyAgX192b2xhdGlsZV9fKCBcCi0JInJlcCA7IHN0b3NsIiBcCi0JeCBcCi0JOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEpIFwKLQk6ICJhIiAocGF0dGVybiksIjAiIChjb3VudC80KSwiMSIgKChsb25nKSBzKSBcCi0JOiAibWVtb3J5IikKLXsKLQlpbnQgZDAsIGQxOwotCXN3aXRjaCAoY291bnQgJSA0KSB7Ci0JCWNhc2UgMDogQ09NTU9OKCIiKTsgcmV0dXJuIHM7Ci0JCWNhc2UgMTogQ09NTU9OKCJcblx0c3Rvc2IiKTsgcmV0dXJuIHM7Ci0JCWNhc2UgMjogQ09NTU9OKCJcblx0c3Rvc3ciKTsgcmV0dXJuIHM7Ci0JCWRlZmF1bHQ6IENPTU1PTigiXG5cdHN0b3N3XG5cdHN0b3NiIik7IHJldHVybiBzOwotCX0KLX0KLSAgCisKICN1bmRlZiBDT01NT04KIH0KIAotI2RlZmluZSBfX2NvbnN0YW50X2NfeF9tZW1zZXQocywgYywgY291bnQpIFwKLShfX2J1aWx0aW5fY29uc3RhbnRfcChjb3VudCkgPyBcCi0gX19jb25zdGFudF9jX2FuZF9jb3VudF9tZW1zZXQoKHMpLChjKSwoY291bnQpKSA6IFwKLSBfX2NvbnN0YW50X2NfbWVtc2V0KChzKSwoYyksKGNvdW50KSkpCisjZGVmaW5lIF9fY29uc3RhbnRfY194X21lbXNldChzLCBjLCBjb3VudCkJCQlcCisJKF9fYnVpbHRpbl9jb25zdGFudF9wKGNvdW50KQkJCQlcCisJID8gX19jb25zdGFudF9jX2FuZF9jb3VudF9tZW1zZXQoKHMpLCAoYyksIChjb3VudCkpCVwKKwkgOiBfX2NvbnN0YW50X2NfbWVtc2V0KChzKSwgKGMpLCAoY291bnQpKSkKIAotI2RlZmluZSBfX21lbXNldChzLCBjLCBjb3VudCkgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKGNvdW50KSA/IFwKLSBfX2NvbnN0YW50X2NvdW50X21lbXNldCgocyksKGMpLChjb3VudCkpIDogXAotIF9fbWVtc2V0X2dlbmVyaWMoKHMpLChjKSwoY291bnQpKSkKKyNkZWZpbmUgX19tZW1zZXQocywgYywgY291bnQpCQkJCVwKKwkoX19idWlsdGluX2NvbnN0YW50X3AoY291bnQpCQkJXAorCSA/IF9fY29uc3RhbnRfY291bnRfbWVtc2V0KChzKSwgKGMpLCAoY291bnQpKQlcCisJIDogX19tZW1zZXRfZ2VuZXJpYygocyksIChjKSwgKGNvdW50KSkpCiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNU0VUCi0jZGVmaW5lIG1lbXNldChzLCBjLCBjb3VudCkgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKGMpID8gXAotIF9fY29uc3RhbnRfY194X21lbXNldCgocyksKDB4MDEwMTAxMDFVTCoodW5zaWduZWQgY2hhcikoYykpLChjb3VudCkpIDogXAotIF9fbWVtc2V0KChzKSwoYyksKGNvdW50KSkpCisjZGVmaW5lIG1lbXNldChzLCBjLCBjb3VudCkJCQkJCQlcCisJKF9fYnVpbHRpbl9jb25zdGFudF9wKGMpCQkJCQlcCisJID8gX19jb25zdGFudF9jX3hfbWVtc2V0KChzKSwgKDB4MDEwMTAxMDFVTCAqICh1bnNpZ25lZCBjaGFyKShjKSksIFwKKwkJCQkgKGNvdW50KSkJCQkJXAorCSA6IF9fbWVtc2V0KChzKSwgKGMpLCAoY291bnQpKSkKIAogLyoKICAqIGZpbmQgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYnl0ZSAnYycsIG9yIDEgcGFzdCB0aGUgYXJlYSBpZiBub25lCiAgKi8KICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNU0NBTgotZXh0ZXJuIHZvaWQgKm1lbXNjYW4odm9pZCAqIGFkZHIsIGludCBjLCBzaXplX3Qgc2l6ZSk7CitleHRlcm4gdm9pZCAqbWVtc2Nhbih2b2lkICphZGRyLCBpbnQgYywgc2l6ZV90IHNpemUpOwogCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvc3VzcGVuZF8zMi5oIGIvaW5jbHVkZS9hc20teDg2L3N1c3BlbmRfMzIuaAppbmRleCAyNGUxYzA4Li44Njc1YzY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvc3VzcGVuZF8zMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9zdXNwZW5kXzMyLmgKQEAgLTMsNiArMyw5IEBACiAgKiBCYXNlZCBvbiBjb2RlCiAgKiBDb3B5cmlnaHQgMjAwMSBQYXRyaWNrIE1vY2hlbCA8bW9jaGVsQG9zZGwub3JnPgogICovCisjaWZuZGVmIF9fQVNNX1g4Nl8zMl9TVVNQRU5EX0gKKyNkZWZpbmUgX19BU01fWDg2XzMyX1NVU1BFTkRfSAorCiAjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KICNpbmNsdWRlIDxhc20vaTM4Ny5oPgogCkBAIC00NCwzICs0Nyw1IEBACiAvKiByb3V0aW5lcyBmb3Igc2F2aW5nL3Jlc3RvcmluZyBrZXJuZWwgc3RhdGUgKi8KIGV4dGVybiBpbnQgYWNwaV9zYXZlX3N0YXRlX21lbSh2b2lkKTsKICNlbmRpZgorCisjZW5kaWYgLyogX19BU01fWDg2XzMyX1NVU1BFTkRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3N5c3RlbS5oIGIvaW5jbHVkZS9hc20teDg2L3N5c3RlbS5oCmluZGV4IGEyZjA0Y2QuLjk4M2NlMzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zeXN0ZW0uaAorKysgYi9pbmNsdWRlL2FzbS14ODYvc3lzdGVtLmgKQEAgLTEzNiw3ICsxMzYsNyBAQAogI2RlZmluZSBzZXRfYmFzZShsZHQsIGJhc2UpIF9zZXRfYmFzZSgoKGNoYXIgKikmKGxkdCkpICwgKGJhc2UpKQogI2RlZmluZSBzZXRfbGltaXQobGR0LCBsaW1pdCkgX3NldF9saW1pdCgoKGNoYXIgKikmKGxkdCkpICwgKChsaW1pdCktMSkpCiAKLWV4dGVybiB2b2lkIGxvYWRfZ3NfaW5kZXgodW5zaWduZWQpOworZXh0ZXJuIHZvaWQgbmF0aXZlX2xvYWRfZ3NfaW5kZXgodW5zaWduZWQpOwogCiAvKgogICogTG9hZCBhIHNlZ21lbnQuIEZhbGwgYmFjayBvbiBsb2FkaW5nIHRoZSB6ZXJvCkBAIC0xNTMsMTQgKzE1MywxNCBAQAogCQkgICAgICJqbXAgMmJcbiIJCQlcCiAJCSAgICAgIi5wcmV2aW91c1xuIgkJXAogCQkgICAgIF9BU01fRVhUQUJMRSgxYiwzYikJXAotCQkgICAgIDogOiJyIiAodmFsdWUpLCAiciIgKDApKQorCQkgICAgIDogOiJyIiAodmFsdWUpLCAiciIgKDApIDogIm1lbW9yeSIpCiAKIAogLyoKICAqIFNhdmUgYSBzZWdtZW50IHJlZ2lzdGVyIGF3YXkKICAqLwogI2RlZmluZSBzYXZlc2VnbWVudChzZWcsIHZhbHVlKQkJCQlcCi0JYXNtIHZvbGF0aWxlKCJtb3YgJSUiICNzZWcgIiwlMCI6Ij1ybSIgKHZhbHVlKSkKKwlhc20oIm1vdiAlJSIgI3NlZyAiLCUwIjoiPXIiICh2YWx1ZSkgOiA6ICJtZW1vcnkiKQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X2xpbWl0KHVuc2lnbmVkIGxvbmcgc2VnbWVudCkKIHsKQEAgLTI4Miw2ICsyODIsNyBAQAogI2lmZGVmIENPTkZJR19YODZfNjQKICNkZWZpbmUgcmVhZF9jcjgoKQkobmF0aXZlX3JlYWRfY3I4KCkpCiAjZGVmaW5lIHdyaXRlX2NyOCh4KQkobmF0aXZlX3dyaXRlX2NyOCh4KSkKKyNkZWZpbmUgbG9hZF9nc19pbmRleCAgIG5hdGl2ZV9sb2FkX2dzX2luZGV4CiAjZW5kaWYKIAogLyogQ2xlYXIgdGhlICdUUycgYml0ICovCkBAIC0yODksNyArMjkwLDcgQEAKIAogI2VuZGlmLyogQ09ORklHX1BBUkFWSVJUICovCiAKLSNkZWZpbmUgc3R0cygpIHdyaXRlX2NyMCg4IHwgcmVhZF9jcjAoKSkKKyNkZWZpbmUgc3R0cygpIHdyaXRlX2NyMChyZWFkX2NyMCgpIHwgWDg2X0NSMF9UUykKIAogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIApAQCAtMzAzLDcgKzMwNCw2IEBACiB2b2lkIGRpc2FibGVfaGx0KHZvaWQpOwogdm9pZCBlbmFibGVfaGx0KHZvaWQpOwogCi1leHRlcm4gaW50IGVzNzAwMF9wbGF0Owogdm9pZCBjcHVfaWRsZV93YWl0KHZvaWQpOwogCiBleHRlcm4gdW5zaWduZWQgbG9uZyBhcmNoX2FsaWduX3N0YWNrKHVuc2lnbmVkIGxvbmcgc3ApOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RocmVhZF9pbmZvLmggYi9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm8uaAppbmRleCA3NzI0NGYxLi44OTUzMzlkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm8uaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm8uaApAQCAtMSw5ICsxLDI1MyBAQAorLyogdGhyZWFkX2luZm8uaDogbG93LWxldmVsIHRocmVhZCBpbmZvcm1hdGlvbgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMiAgRGF2aWQgSG93ZWxscyAoZGhvd2VsbHNAcmVkaGF0LmNvbSkKKyAqIC0gSW5jb3Jwb3JhdGluZyBzdWdnZXN0aW9ucyBtYWRlIGJ5IExpbnVzIFRvcnZhbGRzIGFuZCBEYXZlIE1pbGxlcgorICovCisKICNpZm5kZWYgX0FTTV9YODZfVEhSRUFEX0lORk9fSAorI2RlZmluZSBfQVNNX1g4Nl9USFJFQURfSU5GT19ICisKKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CisKKy8qCisgKiBsb3cgbGV2ZWwgdGFzayBkYXRhIHRoYXQgZW50cnkuUyBuZWVkcyBpbW1lZGlhdGUgYWNjZXNzIHRvCisgKiAtIHRoaXMgc3RydWN0IHNob3VsZCBmaXQgZW50aXJlbHkgaW5zaWRlIG9mIG9uZSBjYWNoZSBsaW5lCisgKiAtIHRoaXMgc3RydWN0IHNoYXJlcyB0aGUgc3VwZXJ2aXNvciBzdGFjayBwYWdlcworICovCisjaWZuZGVmIF9fQVNTRU1CTFlfXworc3RydWN0IHRhc2tfc3RydWN0Oworc3RydWN0IGV4ZWNfZG9tYWluOworI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKworc3RydWN0IHRocmVhZF9pbmZvIHsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRhc2s7CQkvKiBtYWluIHRhc2sgc3RydWN0dXJlICovCisJc3RydWN0IGV4ZWNfZG9tYWluCSpleGVjX2RvbWFpbjsJLyogZXhlY3V0aW9uIGRvbWFpbiAqLworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwkJLyogbG93IGxldmVsIGZsYWdzICovCisJX191MzIJCQlzdGF0dXM7CQkvKiB0aHJlYWQgc3luY2hyb25vdXMgZmxhZ3MgKi8KKwlfX3UzMgkJCWNwdTsJCS8qIGN1cnJlbnQgQ1BVICovCisJaW50CQkJcHJlZW1wdF9jb3VudDsJLyogMCA9PiBwcmVlbXB0YWJsZSwKKwkJCQkJCSAgIDwwID0+IEJVRyAqLworCW1tX3NlZ21lbnRfdAkJYWRkcl9saW1pdDsKKwlzdHJ1Y3QgcmVzdGFydF9ibG9jayAgICByZXN0YXJ0X2Jsb2NrOworCXZvaWQgX191c2VyCQkqc3lzZW50ZXJfcmV0dXJuOwogI2lmZGVmIENPTkZJR19YODZfMzIKLSMgaW5jbHVkZSAidGhyZWFkX2luZm9fMzIuaCIKLSNlbHNlCi0jIGluY2x1ZGUgInRocmVhZF9pbmZvXzY0LmgiCisJdW5zaWduZWQgbG9uZyAgICAgICAgICAgcHJldmlvdXNfZXNwOyAgIC8qIEVTUCBvZiB0aGUgcHJldmlvdXMgc3RhY2sgaW4KKwkJCQkJCSAgIGNhc2Ugb2YgbmVzdGVkIChJUlEpIHN0YWNrcworCQkJCQkJKi8KKwlfX3U4CQkJc3VwZXJ2aXNvcl9zdGFja1swXTsKICNlbmRpZgorfTsKKworI2RlZmluZSBJTklUX1RIUkVBRF9JTkZPKHRzaykJCQlcCit7CQkJCQkJXAorCS50YXNrCQk9ICZ0c2ssCQkJXAorCS5leGVjX2RvbWFpbgk9ICZkZWZhdWx0X2V4ZWNfZG9tYWluLAlcCisJLmZsYWdzCQk9IDAsCQkJXAorCS5jcHUJCT0gMCwJCQlcCisJLnByZWVtcHRfY291bnQJPSAxLAkJCVwKKwkuYWRkcl9saW1pdAk9IEtFUk5FTF9EUywJCVwKKwkucmVzdGFydF9ibG9jayA9IHsJCQlcCisJCS5mbiA9IGRvX25vX3Jlc3RhcnRfc3lzY2FsbCwJXAorCX0sCQkJCQlcCit9CisKKyNkZWZpbmUgaW5pdF90aHJlYWRfaW5mbwkoaW5pdF90aHJlYWRfdW5pb24udGhyZWFkX2luZm8pCisjZGVmaW5lIGluaXRfc3RhY2sJCShpbml0X3RocmVhZF91bmlvbi5zdGFjaykKKworI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLworCisjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CisKKyNlbmRpZgorCisvKgorICogdGhyZWFkIGluZm9ybWF0aW9uIGZsYWdzCisgKiAtIHRoZXNlIGFyZSBwcm9jZXNzIHN0YXRlIGZsYWdzIHRoYXQgdmFyaW91cyBhc3NlbWJseSBmaWxlcworICogICBtYXkgbmVlZCB0byBhY2Nlc3MKKyAqIC0gcGVuZGluZyB3b3JrLXRvLWJlLWRvbmUgZmxhZ3MgYXJlIGluIExTVworICogLSBvdGhlciBmbGFncyBpbiBNU1cKKyAqIFdhcm5pbmc6IGxheW91dCBvZiBMU1cgaXMgaGFyZGNvZGVkIGluIGVudHJ5LlMKKyAqLworI2RlZmluZSBUSUZfU1lTQ0FMTF9UUkFDRQkwCS8qIHN5c2NhbGwgdHJhY2UgYWN0aXZlICovCisjZGVmaW5lIFRJRl9TSUdQRU5ESU5HCQkyCS8qIHNpZ25hbCBwZW5kaW5nICovCisjZGVmaW5lIFRJRl9ORUVEX1JFU0NIRUQJMwkvKiByZXNjaGVkdWxpbmcgbmVjZXNzYXJ5ICovCisjZGVmaW5lIFRJRl9TSU5HTEVTVEVQCQk0CS8qIHJlZW5hYmxlIHNpbmdsZXN0ZXAgb24gdXNlciByZXR1cm4qLworI2RlZmluZSBUSUZfSVJFVAkJNQkvKiBmb3JjZSBJUkVUICovCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorI2RlZmluZSBUSUZfU1lTQ0FMTF9FTVUJCTYJLyogc3lzY2FsbCBlbXVsYXRpb24gYWN0aXZlICovCisjZW5kaWYKKyNkZWZpbmUgVElGX1NZU0NBTExfQVVESVQJNwkvKiBzeXNjYWxsIGF1ZGl0aW5nIGFjdGl2ZSAqLworI2RlZmluZSBUSUZfU0VDQ09NUAkJOAkvKiBzZWN1cmUgY29tcHV0aW5nICovCisjZGVmaW5lIFRJRl9NQ0VfTk9USUZZCQkxMAkvKiBub3RpZnkgdXNlcnNwYWNlIG9mIGFuIE1DRSAqLworI2RlZmluZSBUSUZfSFJUSUNLX1JFU0NIRUQJMTEJLyogcmVwcm9ncmFtIGhydGljayB0aW1lciAqLworI2RlZmluZSBUSUZfTk9UU0MJCTE2CS8qIFRTQyBpcyBub3QgYWNjZXNzaWJsZSBpbiB1c2VybGFuZCAqLworI2RlZmluZSBUSUZfSUEzMgkJMTcJLyogMzJiaXQgcHJvY2VzcyAqLworI2RlZmluZSBUSUZfRk9SSwkJMTgJLyogcmV0X2Zyb21fZm9yayAqLworI2RlZmluZSBUSUZfQUJJX1BFTkRJTkcJCTE5CisjZGVmaW5lIFRJRl9NRU1ESUUJCTIwCisjZGVmaW5lIFRJRl9ERUJVRwkJMjEJLyogdXNlcyBkZWJ1ZyByZWdpc3RlcnMgKi8KKyNkZWZpbmUgVElGX0lPX0JJVE1BUAkJMjIJLyogdXNlcyBJL08gYml0bWFwICovCisjZGVmaW5lIFRJRl9GUkVFWkUJCTIzCS8qIGlzIGZyZWV6aW5nIGZvciBzdXNwZW5kICovCisjZGVmaW5lIFRJRl9GT1JDRURfVEYJCTI0CS8qIHRydWUgaWYgVEYgaW4gZWZsYWdzIGFydGlmaWNpYWxseSAqLworI2RlZmluZSBUSUZfREVCVUdDVExNU1IJCTI1CS8qIHVzZXMgdGhyZWFkX3N0cnVjdC5kZWJ1Z2N0bG1zciAqLworI2RlZmluZSBUSUZfRFNfQVJFQV9NU1IJCTI2ICAgICAgLyogdXNlcyB0aHJlYWRfc3RydWN0LmRzX2FyZWFfbXNyICovCisjZGVmaW5lIFRJRl9CVFNfVFJBQ0VfVFMJMjcgICAgICAvKiByZWNvcmQgc2NoZWR1bGluZyBldmVudCB0aW1lc3RhbXBzICovCisKKyNkZWZpbmUgX1RJRl9TWVNDQUxMX1RSQUNFCSgxIDw8IFRJRl9TWVNDQUxMX1RSQUNFKQorI2RlZmluZSBfVElGX1NJR1BFTkRJTkcJCSgxIDw8IFRJRl9TSUdQRU5ESU5HKQorI2RlZmluZSBfVElGX1NJTkdMRVNURVAJCSgxIDw8IFRJRl9TSU5HTEVTVEVQKQorI2RlZmluZSBfVElGX05FRURfUkVTQ0hFRAkoMSA8PCBUSUZfTkVFRF9SRVNDSEVEKQorI2RlZmluZSBfVElGX0lSRVQJCSgxIDw8IFRJRl9JUkVUKQorI2lmZGVmIENPTkZJR19YODZfMzIKKyNkZWZpbmUgX1RJRl9TWVNDQUxMX0VNVQkoMSA8PCBUSUZfU1lTQ0FMTF9FTVUpCisjZWxzZQorI2RlZmluZSBfVElGX1NZU0NBTExfRU1VCTAKKyNlbmRpZgorI2RlZmluZSBfVElGX1NZU0NBTExfQVVESVQJKDEgPDwgVElGX1NZU0NBTExfQVVESVQpCisjZGVmaW5lIF9USUZfU0VDQ09NUAkJKDEgPDwgVElGX1NFQ0NPTVApCisjZGVmaW5lIF9USUZfTUNFX05PVElGWQkJKDEgPDwgVElGX01DRV9OT1RJRlkpCisjZGVmaW5lIF9USUZfSFJUSUNLX1JFU0NIRUQJKDEgPDwgVElGX0hSVElDS19SRVNDSEVEKQorI2RlZmluZSBfVElGX05PVFNDCQkoMSA8PCBUSUZfTk9UU0MpCisjZGVmaW5lIF9USUZfSUEzMgkJKDEgPDwgVElGX0lBMzIpCisjZGVmaW5lIF9USUZfRk9SSwkJKDEgPDwgVElGX0ZPUkspCisjZGVmaW5lIF9USUZfQUJJX1BFTkRJTkcJKDEgPDwgVElGX0FCSV9QRU5ESU5HKQorI2RlZmluZSBfVElGX0RFQlVHCQkoMSA8PCBUSUZfREVCVUcpCisjZGVmaW5lIF9USUZfSU9fQklUTUFQCQkoMSA8PCBUSUZfSU9fQklUTUFQKQorI2RlZmluZSBfVElGX0ZSRUVaRQkJKDEgPDwgVElGX0ZSRUVaRSkKKyNkZWZpbmUgX1RJRl9GT1JDRURfVEYJCSgxIDw8IFRJRl9GT1JDRURfVEYpCisjZGVmaW5lIF9USUZfREVCVUdDVExNU1IJKDEgPDwgVElGX0RFQlVHQ1RMTVNSKQorI2RlZmluZSBfVElGX0RTX0FSRUFfTVNSCSgxIDw8IFRJRl9EU19BUkVBX01TUikKKyNkZWZpbmUgX1RJRl9CVFNfVFJBQ0VfVFMJKDEgPDwgVElGX0JUU19UUkFDRV9UUykKKworLyogd29yayB0byBkbyBvbiBpbnRlcnJ1cHQvZXhjZXB0aW9uIHJldHVybiAqLworI2RlZmluZSBfVElGX1dPUktfTUFTSwkJCQkJCQlcCisJKDB4MDAwMEZGRkYgJgkJCQkJCQlcCisJIH4oX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NJTkdMRVNURVB8CVwKKwkgX1RJRl9TRUNDT01QfF9USUZfU1lTQ0FMTF9FTVUpKQorCisvKiB3b3JrIHRvIGRvIG9uIGFueSByZXR1cm4gdG8gdXNlciBzcGFjZSAqLworI2RlZmluZSBfVElGX0FMTFdPUktfTUFTSyAoMHgwMDAwRkZGRiAmIH5fVElGX1NFQ0NPTVApCisKKy8qIE9ubHkgdXNlZCBmb3IgNjQgYml0ICovCisjZGVmaW5lIF9USUZfRE9fTk9USUZZX01BU0sJCQkJCQlcCisJKF9USUZfU0lHUEVORElOR3xfVElGX1NJTkdMRVNURVB8X1RJRl9NQ0VfTk9USUZZfF9USUZfSFJUSUNLX1JFU0NIRUQpCisKKy8qIGZsYWdzIHRvIGNoZWNrIGluIF9fc3dpdGNoX3RvKCkgKi8KKyNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXCQkJCQkJCVwKKwkoX1RJRl9JT19CSVRNQVB8X1RJRl9ERUJVR0NUTE1TUnxfVElGX0RTX0FSRUFfTVNSfF9USUZfQlRTX1RSQUNFX1RTfCBcCisJCQkJCQkJCV9USUZfTk9UU0MpCisKKyNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXX1BSRVYgX1RJRl9XT1JLX0NUWFNXCisjZGVmaW5lIF9USUZfV09SS19DVFhTV19ORVhUIChfVElGX1dPUktfQ1RYU1d8X1RJRl9ERUJVRykKKworI2RlZmluZSBQUkVFTVBUX0FDVElWRQkJMHgxMDAwMDAwMAorCisvKiB0aHJlYWQgaW5mb3JtYXRpb24gYWxsb2NhdGlvbiAqLworI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS19VU0FHRQorI2RlZmluZSBUSFJFQURfRkxBR1MgKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKQorI2Vsc2UKKyNkZWZpbmUgVEhSRUFEX0ZMQUdTIEdGUF9LRVJORUwKKyNlbmRpZgorCisjZGVmaW5lIGFsbG9jX3RocmVhZF9pbmZvKHRzaykJCQkJCQlcCisJKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilfX2dldF9mcmVlX3BhZ2VzKFRIUkVBRF9GTEFHUywgVEhSRUFEX09SREVSKSkKKworI2lmZGVmIENPTkZJR19YODZfMzIKKworI2RlZmluZSBTVEFDS19XQVJOCShUSFJFQURfU0laRS84KQorLyoKKyAqIG1hY3Jvcy9mdW5jdGlvbnMgZm9yIGdhaW5pbmcgYWNjZXNzIHRvIHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0dXJlCisgKgorICogcHJlZW1wdF9jb3VudCBuZWVkcyB0byBiZSAxIGluaXRpYWxseSwgdW50aWwgdGhlIHNjaGVkdWxlciBpcyBmdW5jdGlvbmFsLgorICovCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCisKKy8qIGhvdyB0byBnZXQgdGhlIGN1cnJlbnQgc3RhY2sgcG9pbnRlciBmcm9tIEMgKi8KK3JlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyIGFzbSgiZXNwIikgX191c2VkOworCisvKiBob3cgdG8gZ2V0IHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0IGZyb20gQyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgdGhyZWFkX2luZm8gKmN1cnJlbnRfdGhyZWFkX2luZm8odm9pZCkKK3sKKwlyZXR1cm4gKHN0cnVjdCB0aHJlYWRfaW5mbyAqKQorCQkoY3VycmVudF9zdGFja19wb2ludGVyICYgfihUSFJFQURfU0laRSAtIDEpKTsKK30KKworI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLworCisvKiBob3cgdG8gZ2V0IHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0IGZyb20gQVNNICovCisjZGVmaW5lIEdFVF9USFJFQURfSU5GTyhyZWcpCSBcCisJbW92bCAkLVRIUkVBRF9TSVpFLCByZWc7IFwKKwlhbmRsICVlc3AsIHJlZworCisvKiB1c2UgdGhpcyBvbmUgaWYgcmVnIGFscmVhZHkgY29udGFpbnMgJWVzcCAqLworI2RlZmluZSBHRVRfVEhSRUFEX0lORk9fV0lUSF9FU1AocmVnKSBcCisJYW5kbCAkLVRIUkVBRF9TSVpFLCByZWcKKworI2VuZGlmCisKKyNlbHNlIC8qIFg4Nl8zMiAqLworCisjaW5jbHVkZSA8YXNtL3BkYS5oPgorCisvKgorICogbWFjcm9zL2Z1bmN0aW9ucyBmb3IgZ2FpbmluZyBhY2Nlc3MgdG8gdGhlIHRocmVhZCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUKKyAqIHByZWVtcHRfY291bnQgbmVlZHMgdG8gYmUgMSBpbml0aWFsbHksIHVudGlsIHRoZSBzY2hlZHVsZXIgaXMgZnVuY3Rpb25hbC4KKyAqLworI2lmbmRlZiBfX0FTU0VNQkxZX18KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRocmVhZF9pbmZvICpjdXJyZW50X3RocmVhZF9pbmZvKHZvaWQpCit7CisJc3RydWN0IHRocmVhZF9pbmZvICp0aTsKKwl0aSA9ICh2b2lkICopKHJlYWRfcGRhKGtlcm5lbHN0YWNrKSArIFBEQV9TVEFDS09GRlNFVCAtIFRIUkVBRF9TSVpFKTsKKwlyZXR1cm4gdGk7Cit9CisKKy8qIGRvIG5vdCB1c2UgaW4gaW50ZXJydXB0IGNvbnRleHQgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRocmVhZF9pbmZvICpzdGFja190aHJlYWRfaW5mbyh2b2lkKQoreworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGk7CisJYXNtKCJhbmRxICUlcnNwLCUwOyAiIDogIj1yIiAodGkpIDogIjAiICh+KFRIUkVBRF9TSVpFIC0gMSkpKTsKKwlyZXR1cm4gdGk7Cit9CisKKyNlbHNlIC8qICFfX0FTU0VNQkxZX18gKi8KKworLyogaG93IHRvIGdldCB0aGUgdGhyZWFkIGluZm9ybWF0aW9uIHN0cnVjdCBmcm9tIEFTTSAqLworI2RlZmluZSBHRVRfVEhSRUFEX0lORk8ocmVnKSBcCisJbW92cSAlZ3M6cGRhX2tlcm5lbHN0YWNrLHJlZyA7IFwKKwlzdWJxICQoVEhSRUFEX1NJWkUtUERBX1NUQUNLT0ZGU0VUKSxyZWcKKworI2VuZGlmCisKKyNlbmRpZiAvKiAhWDg2XzMyICovCisKKy8qCisgKiBUaHJlYWQtc3luY2hyb25vdXMgc3RhdHVzLgorICoKKyAqIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gdGhlIGZsYWdzIGluIHRoYXQgbm9ib2R5IGVsc2UKKyAqIGV2ZXIgdG91Y2hlcyBvdXIgdGhyZWFkLXN5bmNocm9ub3VzIHN0YXR1cywgc28gd2UgZG9uJ3QKKyAqIGhhdmUgdG8gd29ycnkgYWJvdXQgYXRvbWljIGFjY2Vzc2VzLgorICovCisjZGVmaW5lIFRTX1VTRURGUFUJCTB4MDAwMQkvKiBGUFUgd2FzIHVzZWQgYnkgdGhpcyB0YXNrCisJCQkJCSAgIHRoaXMgcXVhbnR1bSAoU01QKSAqLworI2RlZmluZSBUU19DT01QQVQJCTB4MDAwMgkvKiAzMmJpdCBzeXNjYWxsIGFjdGl2ZSAoNjRCSVQpKi8KKyNkZWZpbmUgVFNfUE9MTElORwkJMHgwMDA0CS8qIHRydWUgaWYgaW4gaWRsZSBsb29wCisJCQkJCSAgIGFuZCBub3Qgc2xlZXBpbmcgKi8KKyNkZWZpbmUgVFNfUkVTVE9SRV9TSUdNQVNLCTB4MDAwOAkvKiByZXN0b3JlIHNpZ25hbCBtYXNrIGluIGRvX3NpZ25hbCgpICovCisKKyNkZWZpbmUgdHNrX2lzX3BvbGxpbmcodCkgKHRhc2tfdGhyZWFkX2luZm8odCktPnN0YXR1cyAmIFRTX1BPTExJTkcpCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisjZGVmaW5lIEhBVkVfU0VUX1JFU1RPUkVfU0lHTUFTSwkxCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Jlc3RvcmVfc2lnbWFzayh2b2lkKQoreworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7CisJdGktPnN0YXR1cyB8PSBUU19SRVNUT1JFX1NJR01BU0s7CisJc2V0X2JpdChUSUZfU0lHUEVORElORywgKHVuc2lnbmVkIGxvbmcgKikmdGktPmZsYWdzKTsKK30KKyNlbmRpZgkvKiAhX19BU1NFTUJMWV9fICovCiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiBleHRlcm4gdm9pZCBhcmNoX3Rhc2tfY2FjaGVfaW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni90aHJlYWRfaW5mb18zMi5oIGIvaW5jbHVkZS9hc20teDg2L3RocmVhZF9pbmZvXzMyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2MzM4ODIuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L3RocmVhZF9pbmZvXzMyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMDUgKzAsMCBAQAotLyogdGhyZWFkX2luZm8uaDogaTM4NiBsb3ctbGV2ZWwgdGhyZWFkIGluZm9ybWF0aW9uCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAyICBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRoYXQuY29tKQotICogLSBJbmNvcnBvcmF0aW5nIHN1Z2dlc3Rpb25zIG1hZGUgYnkgTGludXMgVG9ydmFsZHMgYW5kIERhdmUgTWlsbGVyCi0gKi8KLQotI2lmbmRlZiBfQVNNX1RIUkVBRF9JTkZPX0gKLSNkZWZpbmUgX0FTTV9USFJFQURfSU5GT19ICi0KLSNpZmRlZiBfX0tFUk5FTF9fCi0KLSNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgotI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2VuZGlmCi0KLS8qCi0gKiBsb3cgbGV2ZWwgdGFzayBkYXRhIHRoYXQgZW50cnkuUyBuZWVkcyBpbW1lZGlhdGUgYWNjZXNzIHRvCi0gKiAtIHRoaXMgc3RydWN0IHNob3VsZCBmaXQgZW50aXJlbHkgaW5zaWRlIG9mIG9uZSBjYWNoZSBsaW5lCi0gKiAtIHRoaXMgc3RydWN0IHNoYXJlcyB0aGUgc3VwZXJ2aXNvciBzdGFjayBwYWdlcwotICogLSBpZiB0aGUgY29udGVudHMgb2YgdGhpcyBzdHJ1Y3R1cmUgYXJlIGNoYW5nZWQsCi0gKiAgIHRoZSBhc3NlbWJseSBjb25zdGFudHMgbXVzdCBhbHNvIGJlIGNoYW5nZWQKLSAqLwotI2lmbmRlZiBfX0FTU0VNQkxZX18KLQotc3RydWN0IHRocmVhZF9pbmZvIHsKLQlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRhc2s7CQkvKiBtYWluIHRhc2sgc3RydWN0dXJlICovCi0Jc3RydWN0IGV4ZWNfZG9tYWluCSpleGVjX2RvbWFpbjsJLyogZXhlY3V0aW9uIGRvbWFpbiAqLwotCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwkJLyogbG93IGxldmVsIGZsYWdzICovCi0JdW5zaWduZWQgbG9uZwkJc3RhdHVzOwkJLyogdGhyZWFkLXN5bmNocm9ub3VzIGZsYWdzICovCi0JX191MzIJCQljcHU7CQkvKiBjdXJyZW50IENQVSAqLwotCWludAkJCXByZWVtcHRfY291bnQ7CS8qIDAgPT4gcHJlZW1wdGFibGUsCi0JCQkJCQkgICA8MCA9PiBCVUcgKi8KLQltbV9zZWdtZW50X3QJCWFkZHJfbGltaXQ7CS8qIHRocmVhZCBhZGRyZXNzIHNwYWNlOgotCQkJCQkJICAgMC0weEJGRkZGRkZGIHVzZXItdGhyZWFkCi0JCQkJCQkgICAwLTB4RkZGRkZGRkYga2VybmVsLXRocmVhZAotCQkJCQkJKi8KLQl2b2lkCQkJKnN5c2VudGVyX3JldHVybjsKLQlzdHJ1Y3QgcmVzdGFydF9ibG9jayAgICByZXN0YXJ0X2Jsb2NrOwotCXVuc2lnbmVkIGxvbmcgICAgICAgICAgIHByZXZpb3VzX2VzcDsgICAvKiBFU1Agb2YgdGhlIHByZXZpb3VzIHN0YWNrIGluCi0JCQkJCQkgICBjYXNlIG9mIG5lc3RlZCAoSVJRKSBzdGFja3MKLQkJCQkJCSovCi0JX191OAkJCXN1cGVydmlzb3Jfc3RhY2tbMF07Ci19OwotCi0jZWxzZSAvKiAhX19BU1NFTUJMWV9fICovCi0KLSNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KLQotI2VuZGlmCi0KLSNkZWZpbmUgUFJFRU1QVF9BQ1RJVkUJCTB4MTAwMDAwMDAKLSNpZmRlZiBDT05GSUdfNEtTVEFDS1MKLSNkZWZpbmUgVEhSRUFEX1NJWkUgICAgICAgICAgICAoNDA5NikKLSNlbHNlCi0jZGVmaW5lIFRIUkVBRF9TSVpFCQkoODE5MikKLSNlbmRpZgotCi0jZGVmaW5lIFNUQUNLX1dBUk4gICAgICAgICAgICAgKFRIUkVBRF9TSVpFLzgpCi0vKgotICogbWFjcm9zL2Z1bmN0aW9ucyBmb3IgZ2FpbmluZyBhY2Nlc3MgdG8gdGhlIHRocmVhZCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUKLSAqCi0gKiBwcmVlbXB0X2NvdW50IG5lZWRzIHRvIGJlIDEgaW5pdGlhbGx5LCB1bnRpbCB0aGUgc2NoZWR1bGVyIGlzIGZ1bmN0aW9uYWwuCi0gKi8KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0KLSNkZWZpbmUgSU5JVF9USFJFQURfSU5GTyh0c2spCQkJXAotewkJCQkJCVwKLQkudGFzawkJPSAmdHNrLAkJCVwKLQkuZXhlY19kb21haW4JPSAmZGVmYXVsdF9leGVjX2RvbWFpbiwJXAotCS5mbGFncwkJPSAwLAkJCVwKLQkuY3B1CQk9IDAsCQkJXAotCS5wcmVlbXB0X2NvdW50CT0gMSwJCQlcCi0JLmFkZHJfbGltaXQJPSBLRVJORUxfRFMsCQlcCi0JLnJlc3RhcnRfYmxvY2sgPSB7CQkJXAotCQkuZm4gPSBkb19ub19yZXN0YXJ0X3N5c2NhbGwsCVwKLQl9LAkJCQkJXAotfQotCi0jZGVmaW5lIGluaXRfdGhyZWFkX2luZm8JKGluaXRfdGhyZWFkX3VuaW9uLnRocmVhZF9pbmZvKQotI2RlZmluZSBpbml0X3N0YWNrCQkoaW5pdF90aHJlYWRfdW5pb24uc3RhY2spCi0KLQotLyogaG93IHRvIGdldCB0aGUgY3VycmVudCBzdGFjayBwb2ludGVyIGZyb20gQyAqLwotcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBjdXJyZW50X3N0YWNrX3BvaW50ZXIgYXNtKCJlc3AiKSBfX3VzZWQ7Ci0KLS8qIGhvdyB0byBnZXQgdGhlIHRocmVhZCBpbmZvcm1hdGlvbiBzdHJ1Y3QgZnJvbSBDICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqY3VycmVudF90aHJlYWRfaW5mbyh2b2lkKQotewotCXJldHVybiAoc3RydWN0IHRocmVhZF9pbmZvICopCi0JCShjdXJyZW50X3N0YWNrX3BvaW50ZXIgJiB+KFRIUkVBRF9TSVpFIC0gMSkpOwotfQotCi0vKiB0aHJlYWQgaW5mb3JtYXRpb24gYWxsb2NhdGlvbiAqLwotI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS19VU0FHRQotI2RlZmluZSBhbGxvY190aHJlYWRfaW5mbyh0c2spICgoc3RydWN0IHRocmVhZF9pbmZvICopCQkJXAotCV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8sIGdldF9vcmRlcihUSFJFQURfU0laRSkpKQotI2Vsc2UKLSNkZWZpbmUgYWxsb2NfdGhyZWFkX2luZm8odHNrKSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKQkJCVwKLQlfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwsIGdldF9vcmRlcihUSFJFQURfU0laRSkpKQotI2VuZGlmCi0KLSNlbHNlIC8qICFfX0FTU0VNQkxZX18gKi8KLQotLyogaG93IHRvIGdldCB0aGUgdGhyZWFkIGluZm9ybWF0aW9uIHN0cnVjdCBmcm9tIEFTTSAqLwotI2RlZmluZSBHRVRfVEhSRUFEX0lORk8ocmVnKQkgXAotCW1vdmwgJC1USFJFQURfU0laRSwgcmVnOyBcCi0JYW5kbCAlZXNwLCByZWcKLQotLyogdXNlIHRoaXMgb25lIGlmIHJlZyBhbHJlYWR5IGNvbnRhaW5zICVlc3AgKi8KLSNkZWZpbmUgR0VUX1RIUkVBRF9JTkZPX1dJVEhfRVNQKHJlZykgXAotCWFuZGwgJC1USFJFQURfU0laRSwgcmVnCi0KLSNlbmRpZgotCi0vKgotICogdGhyZWFkIGluZm9ybWF0aW9uIGZsYWdzCi0gKiAtIHRoZXNlIGFyZSBwcm9jZXNzIHN0YXRlIGZsYWdzIHRoYXQgdmFyaW91cwotICogICBhc3NlbWJseSBmaWxlcyBtYXkgbmVlZCB0byBhY2Nlc3MKLSAqIC0gcGVuZGluZyB3b3JrLXRvLWJlLWRvbmUgZmxhZ3MgYXJlIGluIExTVwotICogLSBvdGhlciBmbGFncyBpbiBNU1cKLSAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9UUkFDRQkwCS8qIHN5c2NhbGwgdHJhY2UgYWN0aXZlICovCi0jZGVmaW5lIFRJRl9TSUdQRU5ESU5HCQkxCS8qIHNpZ25hbCBwZW5kaW5nICovCi0jZGVmaW5lIFRJRl9ORUVEX1JFU0NIRUQJMgkvKiByZXNjaGVkdWxpbmcgbmVjZXNzYXJ5ICovCi0jZGVmaW5lIFRJRl9TSU5HTEVTVEVQCQkzCS8qIHJlc3RvcmUgc2luZ2xlc3RlcCBvbiByZXR1cm4gdG8KLQkJCQkJICAgdXNlciBtb2RlICovCi0jZGVmaW5lIFRJRl9JUkVUCQk0CS8qIHJldHVybiB3aXRoIGlyZXQgKi8KLSNkZWZpbmUgVElGX1NZU0NBTExfRU1VCQk1CS8qIHN5c2NhbGwgZW11bGF0aW9uIGFjdGl2ZSAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9BVURJVAk2CS8qIHN5c2NhbGwgYXVkaXRpbmcgYWN0aXZlICovCi0jZGVmaW5lIFRJRl9TRUNDT01QCQk3CS8qIHNlY3VyZSBjb21wdXRpbmcgKi8KLSNkZWZpbmUgVElGX0hSVElDS19SRVNDSEVECTkJLyogcmVwcm9ncmFtIGhydGljayB0aW1lciAqLwotI2RlZmluZSBUSUZfTUVNRElFCQkxNgotI2RlZmluZSBUSUZfREVCVUcJCTE3CS8qIHVzZXMgZGVidWcgcmVnaXN0ZXJzICovCi0jZGVmaW5lIFRJRl9JT19CSVRNQVAJCTE4CS8qIHVzZXMgSS9PIGJpdG1hcCAqLwotI2RlZmluZSBUSUZfRlJFRVpFCQkxOQkvKiBpcyBmcmVlemluZyBmb3Igc3VzcGVuZCAqLwotI2RlZmluZSBUSUZfTk9UU0MJCTIwCS8qIFRTQyBpcyBub3QgYWNjZXNzaWJsZSBpbiB1c2VybGFuZCAqLwotI2RlZmluZSBUSUZfRk9SQ0VEX1RGCQkyMQkvKiB0cnVlIGlmIFRGIGluIGVmbGFncyBhcnRpZmljaWFsbHkgKi8KLSNkZWZpbmUgVElGX0RFQlVHQ1RMTVNSCQkyMgkvKiB1c2VzIHRocmVhZF9zdHJ1Y3QuZGVidWdjdGxtc3IgKi8KLSNkZWZpbmUgVElGX0RTX0FSRUFfTVNSIAkyMyAgICAgIC8qIHVzZXMgdGhyZWFkX3N0cnVjdC5kc19hcmVhX21zciAqLwotI2RlZmluZSBUSUZfQlRTX1RSQUNFX1RTICAgICAgICAyNCAgICAgIC8qIHJlY29yZCBzY2hlZHVsaW5nIGV2ZW50IHRpbWVzdGFtcHMgKi8KLQotI2RlZmluZSBfVElGX1NZU0NBTExfVFJBQ0UJKDEgPDwgVElGX1NZU0NBTExfVFJBQ0UpCi0jZGVmaW5lIF9USUZfU0lHUEVORElORwkJKDEgPDwgVElGX1NJR1BFTkRJTkcpCi0jZGVmaW5lIF9USUZfTkVFRF9SRVNDSEVECSgxIDw8IFRJRl9ORUVEX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfU0lOR0xFU1RFUAkJKDEgPDwgVElGX1NJTkdMRVNURVApCi0jZGVmaW5lIF9USUZfSVJFVAkJKDEgPDwgVElGX0lSRVQpCi0jZGVmaW5lIF9USUZfU1lTQ0FMTF9FTVUJKDEgPDwgVElGX1NZU0NBTExfRU1VKQotI2RlZmluZSBfVElGX1NZU0NBTExfQVVESVQJKDEgPDwgVElGX1NZU0NBTExfQVVESVQpCi0jZGVmaW5lIF9USUZfU0VDQ09NUAkJKDEgPDwgVElGX1NFQ0NPTVApCi0jZGVmaW5lIF9USUZfSFJUSUNLX1JFU0NIRUQJKDEgPDwgVElGX0hSVElDS19SRVNDSEVEKQotI2RlZmluZSBfVElGX0RFQlVHCQkoMSA8PCBUSUZfREVCVUcpCi0jZGVmaW5lIF9USUZfSU9fQklUTUFQCQkoMSA8PCBUSUZfSU9fQklUTUFQKQotI2RlZmluZSBfVElGX0ZSRUVaRQkJKDEgPDwgVElGX0ZSRUVaRSkKLSNkZWZpbmUgX1RJRl9OT1RTQwkJKDEgPDwgVElGX05PVFNDKQotI2RlZmluZSBfVElGX0ZPUkNFRF9URgkJKDEgPDwgVElGX0ZPUkNFRF9URikKLSNkZWZpbmUgX1RJRl9ERUJVR0NUTE1TUgkoMSA8PCBUSUZfREVCVUdDVExNU1IpCi0jZGVmaW5lIF9USUZfRFNfQVJFQV9NU1IJKDEgPDwgVElGX0RTX0FSRUFfTVNSKQotI2RlZmluZSBfVElGX0JUU19UUkFDRV9UUwkoMSA8PCBUSUZfQlRTX1RSQUNFX1RTKQotCi0vKiB3b3JrIHRvIGRvIG9uIGludGVycnVwdC9leGNlcHRpb24gcmV0dXJuICovCi0jZGVmaW5lIF9USUZfV09SS19NQVNLCQkJCQkJCVwKLQkoMHgwMDAwRkZGRiAmIH4oX1RJRl9TWVNDQUxMX1RSQUNFIHwgX1RJRl9TWVNDQUxMX0FVRElUIHwJXAotCQkJX1RJRl9TRUNDT01QIHwgX1RJRl9TWVNDQUxMX0VNVSkpCi0vKiB3b3JrIHRvIGRvIG9uIGFueSByZXR1cm4gdG8gdS1zcGFjZSAqLwotI2RlZmluZSBfVElGX0FMTFdPUktfTUFTSwkoMHgwMDAwRkZGRiAmIH5fVElGX1NFQ0NPTVApCi0KLS8qIGZsYWdzIHRvIGNoZWNrIGluIF9fc3dpdGNoX3RvKCkgKi8KLSNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXCQkJCQkJXAotCShfVElGX0lPX0JJVE1BUCB8IF9USUZfTk9UU0MgfCBfVElGX0RFQlVHQ1RMTVNSIHwJXAotCSBfVElGX0RTX0FSRUFfTVNSIHwgX1RJRl9CVFNfVFJBQ0VfVFMpCi0jZGVmaW5lIF9USUZfV09SS19DVFhTV19QUkVWIF9USUZfV09SS19DVFhTVwotI2RlZmluZSBfVElGX1dPUktfQ1RYU1dfTkVYVCAoX1RJRl9XT1JLX0NUWFNXIHwgX1RJRl9ERUJVRykKLQotCi0vKgotICogVGhyZWFkLXN5bmNocm9ub3VzIHN0YXR1cy4KLSAqCi0gKiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmbGFncyBpbiB0aGF0IG5vYm9keSBlbHNlCi0gKiBldmVyIHRvdWNoZXMgb3VyIHRocmVhZC1zeW5jaHJvbm91cyBzdGF0dXMsIHNvIHdlIGRvbid0Ci0gKiBoYXZlIHRvIHdvcnJ5IGFib3V0IGF0b21pYyBhY2Nlc3Nlcy4KLSAqLwotI2RlZmluZSBUU19VU0VERlBVCQkweDAwMDEJLyogRlBVIHdhcyB1c2VkIGJ5IHRoaXMgdGFzawotCQkJCQkgICB0aGlzIHF1YW50dW0gKFNNUCkgKi8KLSNkZWZpbmUgVFNfUE9MTElORwkJMHgwMDAyCS8qIFRydWUgaWYgaW4gaWRsZSBsb29wCi0JCQkJCSAgIGFuZCBub3Qgc2xlZXBpbmcgKi8KLSNkZWZpbmUgVFNfUkVTVE9SRV9TSUdNQVNLCTB4MDAwNAkvKiByZXN0b3JlIHNpZ25hbCBtYXNrIGluIGRvX3NpZ25hbCgpICovCi0KLSNkZWZpbmUgdHNrX2lzX3BvbGxpbmcodCkgKHRhc2tfdGhyZWFkX2luZm8odCktPnN0YXR1cyAmIFRTX1BPTExJTkcpCi0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jZGVmaW5lIEhBVkVfU0VUX1JFU1RPUkVfU0lHTUFTSwkxCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Jlc3RvcmVfc2lnbWFzayh2b2lkKQotewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7Ci0JdGktPnN0YXR1cyB8PSBUU19SRVNUT1JFX1NJR01BU0s7Ci0Jc2V0X2JpdChUSUZfU0lHUEVORElORywgJnRpLT5mbGFncyk7Ci19Ci0jZW5kaWYJLyogIV9fQVNTRU1CTFlfXyAqLwotCi0jZW5kaWYgLyogX19LRVJORUxfXyAqLwotCi0jZW5kaWYgLyogX0FTTV9USFJFQURfSU5GT19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm9fNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni90aHJlYWRfaW5mb182NC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjY5ZjcwLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni90aHJlYWRfaW5mb182NC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTk1ICswLDAgQEAKLS8qIHRocmVhZF9pbmZvLmg6IHg4Nl82NCBsb3ctbGV2ZWwgdGhyZWFkIGluZm9ybWF0aW9uCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAyICBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRoYXQuY29tKQotICogLSBJbmNvcnBvcmF0aW5nIHN1Z2dlc3Rpb25zIG1hZGUgYnkgTGludXMgVG9ydmFsZHMgYW5kIERhdmUgTWlsbGVyCi0gKi8KLQotI2lmbmRlZiBfQVNNX1RIUkVBRF9JTkZPX0gKLSNkZWZpbmUgX0FTTV9USFJFQURfSU5GT19ICi0KLSNpZmRlZiBfX0tFUk5FTF9fCi0KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS90eXBlcy5oPgotI2luY2x1ZGUgPGFzbS9wZGEuaD4KLQotLyoKLSAqIGxvdyBsZXZlbCB0YXNrIGRhdGEgdGhhdCBlbnRyeS5TIG5lZWRzIGltbWVkaWF0ZSBhY2Nlc3MgdG8KLSAqIC0gdGhpcyBzdHJ1Y3Qgc2hvdWxkIGZpdCBlbnRpcmVseSBpbnNpZGUgb2Ygb25lIGNhY2hlIGxpbmUKLSAqIC0gdGhpcyBzdHJ1Y3Qgc2hhcmVzIHRoZSBzdXBlcnZpc29yIHN0YWNrIHBhZ2VzCi0gKi8KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi1zdHJ1Y3QgdGFza19zdHJ1Y3Q7Ci1zdHJ1Y3QgZXhlY19kb21haW47Ci0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotCi1zdHJ1Y3QgdGhyZWFkX2luZm8gewotCXN0cnVjdCB0YXNrX3N0cnVjdAkqdGFzazsJCS8qIG1haW4gdGFzayBzdHJ1Y3R1cmUgKi8KLQlzdHJ1Y3QgZXhlY19kb21haW4JKmV4ZWNfZG9tYWluOwkvKiBleGVjdXRpb24gZG9tYWluICovCi0JX191MzIJCQlmbGFnczsJCS8qIGxvdyBsZXZlbCBmbGFncyAqLwotCV9fdTMyCQkJc3RhdHVzOwkJLyogdGhyZWFkIHN5bmNocm9ub3VzIGZsYWdzICovCi0JX191MzIJCQljcHU7CQkvKiBjdXJyZW50IENQVSAqLwotCWludCAJCQlwcmVlbXB0X2NvdW50OwkvKiAwID0+IHByZWVtcHRhYmxlLAotCQkJCQkJICAgPDAgPT4gQlVHICovCi0JbW1fc2VnbWVudF90CQlhZGRyX2xpbWl0OwotCXN0cnVjdCByZXN0YXJ0X2Jsb2NrICAgIHJlc3RhcnRfYmxvY2s7Ci0jaWZkZWYgQ09ORklHX0lBMzJfRU1VTEFUSU9OCi0Jdm9pZCBfX3VzZXIJCSpzeXNlbnRlcl9yZXR1cm47Ci0jZW5kaWYKLX07Ci0jZW5kaWYKLQotLyoKLSAqIG1hY3Jvcy9mdW5jdGlvbnMgZm9yIGdhaW5pbmcgYWNjZXNzIHRvIHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0dXJlCi0gKiBwcmVlbXB0X2NvdW50IG5lZWRzIHRvIGJlIDEgaW5pdGlhbGx5LCB1bnRpbCB0aGUgc2NoZWR1bGVyIGlzIGZ1bmN0aW9uYWwuCi0gKi8KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jZGVmaW5lIElOSVRfVEhSRUFEX0lORk8odHNrKQkJCVwKLXsJCQkJCQlcCi0JLnRhc2sJICAgICAgID0gJnRzaywJCQlcCi0JLmV4ZWNfZG9tYWluICAgPSAmZGVmYXVsdF9leGVjX2RvbWFpbiwJXAotCS5mbGFncwkgICAgICAgPSAwLAkJCVwKLQkuY3B1CSAgICAgICA9IDAsCQkJXAotCS5wcmVlbXB0X2NvdW50ID0gMSwJCQlcCi0JLmFkZHJfbGltaXQgICAgID0gS0VSTkVMX0RTLAkJXAotCS5yZXN0YXJ0X2Jsb2NrID0gewkJCVwKLQkJLmZuID0gZG9fbm9fcmVzdGFydF9zeXNjYWxsLAlcCi0JfSwJCQkJCVwKLX0KLQotI2RlZmluZSBpbml0X3RocmVhZF9pbmZvCShpbml0X3RocmVhZF91bmlvbi50aHJlYWRfaW5mbykKLSNkZWZpbmUgaW5pdF9zdGFjawkJKGluaXRfdGhyZWFkX3VuaW9uLnN0YWNrKQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqY3VycmVudF90aHJlYWRfaW5mbyh2b2lkKQotewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGk7Ci0JdGkgPSAodm9pZCAqKShyZWFkX3BkYShrZXJuZWxzdGFjaykgKyBQREFfU1RBQ0tPRkZTRVQgLSBUSFJFQURfU0laRSk7Ci0JcmV0dXJuIHRpOwotfQotCi0vKiBkbyBub3QgdXNlIGluIGludGVycnVwdCBjb250ZXh0ICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqc3RhY2tfdGhyZWFkX2luZm8odm9pZCkKLXsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpOwotCWFzbSgiYW5kcSAlJXJzcCwlMDsgIiA6ICI9ciIgKHRpKSA6ICIwIiAofihUSFJFQURfU0laRSAtIDEpKSk7Ci0JcmV0dXJuIHRpOwotfQotCi0vKiB0aHJlYWQgaW5mb3JtYXRpb24gYWxsb2NhdGlvbiAqLwotI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS19VU0FHRQotI2RlZmluZSBUSFJFQURfRkxBR1MgKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKQotI2Vsc2UKLSNkZWZpbmUgVEhSRUFEX0ZMQUdTIEdGUF9LRVJORUwKLSNlbmRpZgotCi0jZGVmaW5lIGFsbG9jX3RocmVhZF9pbmZvKHRzaykJCQkJCQlcCi0JKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilfX2dldF9mcmVlX3BhZ2VzKFRIUkVBRF9GTEFHUywgVEhSRUFEX09SREVSKSkKLQotI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLwotCi0vKiBob3cgdG8gZ2V0IHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0IGZyb20gQVNNICovCi0jZGVmaW5lIEdFVF9USFJFQURfSU5GTyhyZWcpIFwKLQltb3ZxICVnczpwZGFfa2VybmVsc3RhY2sscmVnIDsgXAotCXN1YnEgJChUSFJFQURfU0laRS1QREFfU1RBQ0tPRkZTRVQpLHJlZwotCi0jZW5kaWYKLQotLyoKLSAqIHRocmVhZCBpbmZvcm1hdGlvbiBmbGFncwotICogLSB0aGVzZSBhcmUgcHJvY2VzcyBzdGF0ZSBmbGFncyB0aGF0IHZhcmlvdXMgYXNzZW1ibHkgZmlsZXMKLSAqICAgbWF5IG5lZWQgdG8gYWNjZXNzCi0gKiAtIHBlbmRpbmcgd29yay10by1iZS1kb25lIGZsYWdzIGFyZSBpbiBMU1cKLSAqIC0gb3RoZXIgZmxhZ3MgaW4gTVNXCi0gKiBXYXJuaW5nOiBsYXlvdXQgb2YgTFNXIGlzIGhhcmRjb2RlZCBpbiBlbnRyeS5TCi0gKi8KLSNkZWZpbmUgVElGX1NZU0NBTExfVFJBQ0UJMAkvKiBzeXNjYWxsIHRyYWNlIGFjdGl2ZSAqLwotI2RlZmluZSBUSUZfU0lHUEVORElORwkJMgkvKiBzaWduYWwgcGVuZGluZyAqLwotI2RlZmluZSBUSUZfTkVFRF9SRVNDSEVECTMJLyogcmVzY2hlZHVsaW5nIG5lY2Vzc2FyeSAqLwotI2RlZmluZSBUSUZfU0lOR0xFU1RFUAkJNAkvKiByZWVuYWJsZSBzaW5nbGVzdGVwIG9uIHVzZXIgcmV0dXJuKi8KLSNkZWZpbmUgVElGX0lSRVQJCTUJLyogZm9yY2UgSVJFVCAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9BVURJVAk3CS8qIHN5c2NhbGwgYXVkaXRpbmcgYWN0aXZlICovCi0jZGVmaW5lIFRJRl9TRUNDT01QCQk4CS8qIHNlY3VyZSBjb21wdXRpbmcgKi8KLSNkZWZpbmUgVElGX01DRV9OT1RJRlkJCTEwCS8qIG5vdGlmeSB1c2Vyc3BhY2Ugb2YgYW4gTUNFICovCi0jZGVmaW5lIFRJRl9IUlRJQ0tfUkVTQ0hFRAkxMQkvKiByZXByb2dyYW0gaHJ0aWNrIHRpbWVyICovCi0vKiAxNiBmcmVlICovCi0jZGVmaW5lIFRJRl9JQTMyCQkxNwkvKiAzMmJpdCBwcm9jZXNzICovCi0jZGVmaW5lIFRJRl9GT1JLCQkxOAkvKiByZXRfZnJvbV9mb3JrICovCi0jZGVmaW5lIFRJRl9BQklfUEVORElORwkJMTkKLSNkZWZpbmUgVElGX01FTURJRQkJMjAKLSNkZWZpbmUgVElGX0RFQlVHCQkyMQkvKiB1c2VzIGRlYnVnIHJlZ2lzdGVycyAqLwotI2RlZmluZSBUSUZfSU9fQklUTUFQCQkyMgkvKiB1c2VzIEkvTyBiaXRtYXAgKi8KLSNkZWZpbmUgVElGX0ZSRUVaRQkJMjMJLyogaXMgZnJlZXppbmcgZm9yIHN1c3BlbmQgKi8KLSNkZWZpbmUgVElGX0ZPUkNFRF9URgkJMjQJLyogdHJ1ZSBpZiBURiBpbiBlZmxhZ3MgYXJ0aWZpY2lhbGx5ICovCi0jZGVmaW5lIFRJRl9ERUJVR0NUTE1TUgkJMjUJLyogdXNlcyB0aHJlYWRfc3RydWN0LmRlYnVnY3RsbXNyICovCi0jZGVmaW5lIFRJRl9EU19BUkVBX01TUgkJMjYgICAgICAvKiB1c2VzIHRocmVhZF9zdHJ1Y3QuZHNfYXJlYV9tc3IgKi8KLSNkZWZpbmUgVElGX0JUU19UUkFDRV9UUwkyNyAgICAgIC8qIHJlY29yZCBzY2hlZHVsaW5nIGV2ZW50IHRpbWVzdGFtcHMgKi8KLSNkZWZpbmUgVElGX05PVFNDCQkyOAkvKiBUU0MgaXMgbm90IGFjY2Vzc2libGUgaW4gdXNlcmxhbmQgKi8KLQotI2RlZmluZSBfVElGX1NZU0NBTExfVFJBQ0UJKDEgPDwgVElGX1NZU0NBTExfVFJBQ0UpCi0jZGVmaW5lIF9USUZfU0lHUEVORElORwkJKDEgPDwgVElGX1NJR1BFTkRJTkcpCi0jZGVmaW5lIF9USUZfU0lOR0xFU1RFUAkJKDEgPDwgVElGX1NJTkdMRVNURVApCi0jZGVmaW5lIF9USUZfTkVFRF9SRVNDSEVECSgxIDw8IFRJRl9ORUVEX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfSVJFVAkJKDEgPDwgVElGX0lSRVQpCi0jZGVmaW5lIF9USUZfU1lTQ0FMTF9BVURJVAkoMSA8PCBUSUZfU1lTQ0FMTF9BVURJVCkKLSNkZWZpbmUgX1RJRl9TRUNDT01QCQkoMSA8PCBUSUZfU0VDQ09NUCkKLSNkZWZpbmUgX1RJRl9NQ0VfTk9USUZZCQkoMSA8PCBUSUZfTUNFX05PVElGWSkKLSNkZWZpbmUgX1RJRl9IUlRJQ0tfUkVTQ0hFRAkoMSA8PCBUSUZfSFJUSUNLX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfSUEzMgkJKDEgPDwgVElGX0lBMzIpCi0jZGVmaW5lIF9USUZfRk9SSwkJKDEgPDwgVElGX0ZPUkspCi0jZGVmaW5lIF9USUZfQUJJX1BFTkRJTkcJKDEgPDwgVElGX0FCSV9QRU5ESU5HKQotI2RlZmluZSBfVElGX0RFQlVHCQkoMSA8PCBUSUZfREVCVUcpCi0jZGVmaW5lIF9USUZfSU9fQklUTUFQCQkoMSA8PCBUSUZfSU9fQklUTUFQKQotI2RlZmluZSBfVElGX0ZSRUVaRQkJKDEgPDwgVElGX0ZSRUVaRSkKLSNkZWZpbmUgX1RJRl9GT1JDRURfVEYJCSgxIDw8IFRJRl9GT1JDRURfVEYpCi0jZGVmaW5lIF9USUZfREVCVUdDVExNU1IJKDEgPDwgVElGX0RFQlVHQ1RMTVNSKQotI2RlZmluZSBfVElGX0RTX0FSRUFfTVNSCSgxIDw8IFRJRl9EU19BUkVBX01TUikKLSNkZWZpbmUgX1RJRl9CVFNfVFJBQ0VfVFMJKDEgPDwgVElGX0JUU19UUkFDRV9UUykKLSNkZWZpbmUgX1RJRl9OT1RTQwkJKDEgPDwgVElGX05PVFNDKQotCi0vKiB3b3JrIHRvIGRvIG9uIGludGVycnVwdC9leGNlcHRpb24gcmV0dXJuICovCi0jZGVmaW5lIF9USUZfV09SS19NQVNLCQkJCQkJCVwKLQkoMHgwMDAwRkZGRiAmCQkJCQkJCVwKLQkgfihfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0lOR0xFU1RFUHxfVElGX1NFQ0NPTVApKQotLyogd29yayB0byBkbyBvbiBhbnkgcmV0dXJuIHRvIHVzZXIgc3BhY2UgKi8KLSNkZWZpbmUgX1RJRl9BTExXT1JLX01BU0sgKDB4MDAwMEZGRkYgJiB+X1RJRl9TRUNDT01QKQotCi0jZGVmaW5lIF9USUZfRE9fTk9USUZZX01BU0sJCQkJCQlcCi0JKF9USUZfU0lHUEVORElOR3xfVElGX1NJTkdMRVNURVB8X1RJRl9NQ0VfTk9USUZZfF9USUZfSFJUSUNLX1JFU0NIRUQpCi0KLS8qIGZsYWdzIHRvIGNoZWNrIGluIF9fc3dpdGNoX3RvKCkgKi8KLSNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXCQkJCQkJCVwKLQkoX1RJRl9JT19CSVRNQVB8X1RJRl9ERUJVR0NUTE1TUnxfVElGX0RTX0FSRUFfTVNSfF9USUZfQlRTX1RSQUNFX1RTfF9USUZfTk9UU0MpCi0jZGVmaW5lIF9USUZfV09SS19DVFhTV19QUkVWIF9USUZfV09SS19DVFhTVwotI2RlZmluZSBfVElGX1dPUktfQ1RYU1dfTkVYVCAoX1RJRl9XT1JLX0NUWFNXfF9USUZfREVCVUcpCi0KLSNkZWZpbmUgUFJFRU1QVF9BQ1RJVkUgICAgIDB4MTAwMDAwMDAKLQotLyoKLSAqIFRocmVhZC1zeW5jaHJvbm91cyBzdGF0dXMuCi0gKgotICogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZmxhZ3MgaW4gdGhhdCBub2JvZHkgZWxzZQotICogZXZlciB0b3VjaGVzIG91ciB0aHJlYWQtc3luY2hyb25vdXMgc3RhdHVzLCBzbyB3ZSBkb24ndAotICogaGF2ZSB0byB3b3JyeSBhYm91dCBhdG9taWMgYWNjZXNzZXMuCi0gKi8KLSNkZWZpbmUgVFNfVVNFREZQVQkJMHgwMDAxCS8qIEZQVSB3YXMgdXNlZCBieSB0aGlzIHRhc2sKLQkJCQkJICAgdGhpcyBxdWFudHVtIChTTVApICovCi0jZGVmaW5lIFRTX0NPTVBBVAkJMHgwMDAyCS8qIDMyYml0IHN5c2NhbGwgYWN0aXZlICovCi0jZGVmaW5lIFRTX1BPTExJTkcJCTB4MDAwNAkvKiB0cnVlIGlmIGluIGlkbGUgbG9vcAotCQkJCQkgICBhbmQgbm90IHNsZWVwaW5nICovCi0jZGVmaW5lIFRTX1JFU1RPUkVfU0lHTUFTSwkweDAwMDgJLyogcmVzdG9yZSBzaWduYWwgbWFzayBpbiBkb19zaWduYWwoKSAqLwotCi0jZGVmaW5lIHRza19pc19wb2xsaW5nKHQpICh0YXNrX3RocmVhZF9pbmZvKHQpLT5zdGF0dXMgJiBUU19QT0xMSU5HKQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotI2RlZmluZSBIQVZFX1NFVF9SRVNUT1JFX1NJR01BU0sJMQotc3RhdGljIGlubGluZSB2b2lkIHNldF9yZXN0b3JlX3NpZ21hc2sodm9pZCkKLXsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJlYWRfaW5mbygpOwotCXRpLT5zdGF0dXMgfD0gVFNfUkVTVE9SRV9TSUdNQVNLOwotCXNldF9iaXQoVElGX1NJR1BFTkRJTkcsICZ0aS0+ZmxhZ3MpOwotfQotI2VuZGlmCS8qICFfX0FTU0VNQkxZX18gKi8KLQotI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KLQotI2VuZGlmIC8qIF9BU01fVEhSRUFEX0lORk9fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RpbWUuaCBiL2luY2x1ZGUvYXNtLXg4Ni90aW1lLmgKaW5kZXggYmNlNzJkNy4uYTE3ZmE0NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3RpbWUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGltZS5oCkBAIC01Niw0ICs1Niw2IEBACiAKICNlbmRpZiAvKiBDT05GSUdfUEFSQVZJUlQgKi8KIAorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19pbml0IGNhbGlicmF0ZV9jcHUodm9pZCk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RpbWVyLmggYi9pbmNsdWRlL2FzbS14ODYvdGltZXIuaAppbmRleCA0ZjZmY2IwLi5mYjJhNGRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdGltZXIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGltZXIuaApAQCAtNywxNCArNywxNCBAQAogI2RlZmluZSBUSUNLX1NJWkUgKHRpY2tfbnNlYyAvIDEwMDApCiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBuYXRpdmVfc2NoZWRfY2xvY2sodm9pZCk7Ci11bnNpZ25lZCBsb25nIG5hdGl2ZV9jYWxjdWxhdGVfY3B1X2toeih2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbmF0aXZlX2NhbGlicmF0ZV90c2Modm9pZCk7CiAKIGV4dGVybiBpbnQgdGltZXJfYWNrOwogZXh0ZXJuIGludCBub190aW1lcl9jaGVjazsKIGV4dGVybiBpbnQgcmVjYWxpYnJhdGVfY3B1X2toeih2b2lkKTsKIAogI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKLSNkZWZpbmUgY2FsY3VsYXRlX2NwdV9raHooKSBuYXRpdmVfY2FsY3VsYXRlX2NwdV9raHooKQorI2RlZmluZSBjYWxpYnJhdGVfdHNjKCkgbmF0aXZlX2NhbGlicmF0ZV90c2MoKQogI2VuZGlmCiAKIC8qIEFjY2VsZXJhdG9ycyBmb3Igc2NoZWRfY2xvY2soKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RvcG9sb2d5LmggYi9pbmNsdWRlL2FzbS14ODYvdG9wb2xvZ3kuaAppbmRleCBkY2YzZjgxLi45MGFjNzcxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdG9wb2xvZ3kuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdG9wb2xvZ3kuaApAQCAtMzUsNzkgKzM1LDkzIEBACiAjIGVuZGlmCiAjZW5kaWYKIAorLyogTm9kZSBub3QgcHJlc2VudCAqLworI2RlZmluZSBOVU1BX05PX05PREUJKC0xKQorCiAjaWZkZWYgQ09ORklHX05VTUEKICNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+CiAjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgogCi0vKiBNYXBwaW5ncyBiZXR3ZWVuIGxvZ2ljYWwgY3B1IG51bWJlciBhbmQgbm9kZSBudW1iZXIgKi8KICNpZmRlZiBDT05GSUdfWDg2XzMyCi1leHRlcm4gaW50IGNwdV90b19ub2RlX21hcFtdOwotI2Vsc2UKLS8qIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgY3VycmVudCBOb2RlLiAqLwotI2RlZmluZSBudW1hX25vZGVfaWQoKQkJKGVhcmx5X2NwdV90b19ub2RlKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpKQotI2VuZGlmCiAKLURFQ0xBUkVfUEVSX0NQVShpbnQsIHg4Nl9jcHVfdG9fbm9kZV9tYXApOwotCi0jaWZkZWYgQ09ORklHX1NNUAotZXh0ZXJuIGludCB4ODZfY3B1X3RvX25vZGVfbWFwX2luaXRbXTsKLWV4dGVybiB2b2lkICp4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0cjsKLSNlbHNlCi0jZGVmaW5lIHg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyIE5VTEwKLSNlbmRpZgotCisvKiBNYXBwaW5ncyBiZXR3ZWVuIG5vZGUgbnVtYmVyIGFuZCBjcHVzIG9uIHRoYXQgbm9kZS4gKi8KIGV4dGVybiBjcHVtYXNrX3Qgbm9kZV90b19jcHVtYXNrX21hcFtdOwogCi0jZGVmaW5lIE5VTUFfTk9fTk9ERQkoLTEpCisvKiBNYXBwaW5ncyBiZXR3ZWVuIGxvZ2ljYWwgY3B1IG51bWJlciBhbmQgbm9kZSBudW1iZXIgKi8KK2V4dGVybiBpbnQgY3B1X3RvX25vZGVfbWFwW107CiAKIC8qIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgbm9kZSBjb250YWluaW5nIENQVSAnY3B1JyAqLwotI2lmZGVmIENPTkZJR19YODZfMzIKLSNkZWZpbmUgZWFybHlfY3B1X3RvX25vZGUoY3B1KQljcHVfdG9fbm9kZShjcHUpCiBzdGF0aWMgaW5saW5lIGludCBjcHVfdG9fbm9kZShpbnQgY3B1KQogewogCXJldHVybiBjcHVfdG9fbm9kZV9tYXBbY3B1XTsKIH0KKyNkZWZpbmUgZWFybHlfY3B1X3RvX25vZGUoY3B1KQljcHVfdG9fbm9kZShjcHUpCisKKy8qIFJldHVybnMgYSBiaXRtYXNrIG9mIENQVXMgb24gTm9kZSAnbm9kZScuCisgKgorICogU2lkZSBub3RlOiB0aGlzIGZ1bmN0aW9uIGNyZWF0ZXMgdGhlIHJldHVybmVkIGNwdW1hc2sgb24gdGhlIHN0YWNrCisgKiBzbyB3aXRoIGEgaGlnaCBOUl9DUFVTIGNvdW50LCBleGNlc3NpdmUgc3RhY2sgc3BhY2UgaXMgdXNlZC4gIFRoZQorICogbm9kZV90b19jcHVtYXNrX3B0ciBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCB3aGVuZXZlciBwb3NzaWJsZS4KKyAqLworc3RhdGljIGlubGluZSBjcHVtYXNrX3Qgbm9kZV90b19jcHVtYXNrKGludCBub2RlKQoreworCXJldHVybiBub2RlX3RvX2NwdW1hc2tfbWFwW25vZGVdOworfQogCiAjZWxzZSAvKiBDT05GSUdfWDg2XzY0ICovCiAKLSNpZmRlZiBDT05GSUdfU01QCi1zdGF0aWMgaW5saW5lIGludCBlYXJseV9jcHVfdG9fbm9kZShpbnQgY3B1KQotewotCWludCAqY3B1X3RvX25vZGVfbWFwID0geDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHI7CisvKiBNYXBwaW5ncyBiZXR3ZWVuIG5vZGUgbnVtYmVyIGFuZCBjcHVzIG9uIHRoYXQgbm9kZS4gKi8KK2V4dGVybiBjcHVtYXNrX3QgKm5vZGVfdG9fY3B1bWFza19tYXA7CiAKLQlpZiAoY3B1X3RvX25vZGVfbWFwKQotCQlyZXR1cm4gY3B1X3RvX25vZGVfbWFwW2NwdV07Ci0JZWxzZSBpZiAocGVyX2NwdV9vZmZzZXQoY3B1KSkKLQkJcmV0dXJuIHBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KTsKLQllbHNlCi0JCXJldHVybiBOVU1BX05PX05PREU7Ci19Ci0jZWxzZQotI2RlZmluZQllYXJseV9jcHVfdG9fbm9kZShjcHUpCWNwdV90b19ub2RlKGNwdSkKLSNlbmRpZgorLyogTWFwcGluZ3MgYmV0d2VlbiBsb2dpY2FsIGNwdSBudW1iZXIgYW5kIG5vZGUgbnVtYmVyICovCitERUNMQVJFX0VBUkxZX1BFUl9DUFUoaW50LCB4ODZfY3B1X3RvX25vZGVfbWFwKTsKIAorLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRoZSBjdXJyZW50IE5vZGUuICovCisjZGVmaW5lIG51bWFfbm9kZV9pZCgpCQlyZWFkX3BkYShub2RlbnVtYmVyKQorCisjaWZkZWYgQ09ORklHX0RFQlVHX1BFUl9DUFVfTUFQUworZXh0ZXJuIGludCBjcHVfdG9fbm9kZShpbnQgY3B1KTsKK2V4dGVybiBpbnQgZWFybHlfY3B1X3RvX25vZGUoaW50IGNwdSk7CitleHRlcm4gY29uc3QgY3B1bWFza190ICpfbm9kZV90b19jcHVtYXNrX3B0cihpbnQgbm9kZSk7CitleHRlcm4gY3B1bWFza190IG5vZGVfdG9fY3B1bWFzayhpbnQgbm9kZSk7CisKKyNlbHNlCS8qICFDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTICovCisKKy8qIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgbm9kZSBjb250YWluaW5nIENQVSAnY3B1JyAqLwogc3RhdGljIGlubGluZSBpbnQgY3B1X3RvX25vZGUoaW50IGNwdSkKIHsKLSNpZmRlZiBDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTCi0JaWYgKHg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyKSB7Ci0JCXByaW50aygiS0VSTl9OT1RJQ0UgY3B1X3RvX25vZGUoJWQpOiB1c2FnZSB0b28gZWFybHkhXG4iLAotCQkgICAgICAgKGludCljcHUpOwotCQlkdW1wX3N0YWNrKCk7Ci0JCXJldHVybiAoKGludCAqKXg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyKVtjcHVdOwotCX0KLSNlbmRpZgogCXJldHVybiBwZXJfY3B1KHg4Nl9jcHVfdG9fbm9kZV9tYXAsIGNwdSk7CiB9CiAKLSNpZmRlZglDT05GSUdfTlVNQQorLyogU2FtZSBmdW5jdGlvbiBidXQgdXNlZCBpZiBjYWxsZWQgYmVmb3JlIHBlcl9jcHUgYXJlYXMgYXJlIHNldHVwICovCitzdGF0aWMgaW5saW5lIGludCBlYXJseV9jcHVfdG9fbm9kZShpbnQgY3B1KQoreworCWlmIChlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKSkKKwkJcmV0dXJuIGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fbm9kZV9tYXApW2NwdV07CisKKwlyZXR1cm4gcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpOworfQogCiAvKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgY3B1bWFzayBvZiBDUFVzIG9uIE5vZGUgJ25vZGUnLiAqLworc3RhdGljIGlubGluZSBjb25zdCBjcHVtYXNrX3QgKl9ub2RlX3RvX2NwdW1hc2tfcHRyKGludCBub2RlKQoreworCXJldHVybiAmbm9kZV90b19jcHVtYXNrX21hcFtub2RlXTsKK30KKworLyogUmV0dXJucyBhIGJpdG1hc2sgb2YgQ1BVcyBvbiBOb2RlICdub2RlJy4gKi8KK3N0YXRpYyBpbmxpbmUgY3B1bWFza190IG5vZGVfdG9fY3B1bWFzayhpbnQgbm9kZSkKK3sKKwlyZXR1cm4gbm9kZV90b19jcHVtYXNrX21hcFtub2RlXTsKK30KKworI2VuZGlmIC8qICFDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTICovCisKKy8qIFJlcGxhY2UgZGVmYXVsdCBub2RlX3RvX2NwdW1hc2tfcHRyIHdpdGggb3B0aW1pemVkIHZlcnNpb24gKi8KICNkZWZpbmUgbm9kZV90b19jcHVtYXNrX3B0cih2LCBub2RlKQkJXAotCQljcHVtYXNrX3QgKnYgPSAmKG5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV0pCisJCWNvbnN0IGNwdW1hc2tfdCAqdiA9IF9ub2RlX3RvX2NwdW1hc2tfcHRyKG5vZGUpCiAKICNkZWZpbmUgbm9kZV90b19jcHVtYXNrX3B0cl9uZXh0KHYsIG5vZGUpCVwKLQkJCSAgIHYgPSAmKG5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV0pCi0jZW5kaWYKKwkJCSAgIHYgPSBfbm9kZV90b19jcHVtYXNrX3B0cihub2RlKQogCiAjZW5kaWYgLyogQ09ORklHX1g4Nl82NCAqLwogCkBAIC0xMTcsMjAgKzEzMSw2IEBACiAgKi8KICNkZWZpbmUgcGFyZW50X25vZGUobm9kZSkgKG5vZGUpCiAKLS8qIFJldHVybnMgYSBiaXRtYXNrIG9mIENQVXMgb24gTm9kZSAnbm9kZScuICovCi1zdGF0aWMgaW5saW5lIGNwdW1hc2tfdCBub2RlX3RvX2NwdW1hc2soaW50IG5vZGUpCi17Ci0JcmV0dXJuIG5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV07Ci19Ci0KLS8qIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgZmlyc3QgQ1BVIG9uIE5vZGUgJ25vZGUnLiAqLwotc3RhdGljIGlubGluZSBpbnQgbm9kZV90b19maXJzdF9jcHUoaW50IG5vZGUpCi17Ci0JY3B1bWFza190IG1hc2sgPSBub2RlX3RvX2NwdW1hc2sobm9kZSk7Ci0KLQlyZXR1cm4gZmlyc3RfY3B1KG1hc2spOwotfQotCiAjZGVmaW5lIHBjaWJ1c190b19ub2RlKGJ1cykgX19wY2lidXNfdG9fbm9kZShidXMpCiAjZGVmaW5lIHBjaWJ1c190b19jcHVtYXNrKGJ1cykgX19wY2lidXNfdG9fY3B1bWFzayhidXMpCiAKQEAgLTE4MCwxMiArMTgwLDQ0IEBACiAjZGVmaW5lIG5vZGVfZGlzdGFuY2UoYSwgYikgX19ub2RlX2Rpc3RhbmNlKGEsIGIpCiAjZW5kaWYKIAotI2Vsc2UgLyogQ09ORklHX05VTUEgKi8KKyNlbHNlIC8qICFDT05GSUdfTlVNQSAqLwogCisjZGVmaW5lIG51bWFfbm9kZV9pZCgpCQkwCisjZGVmaW5lCWNwdV90b19ub2RlKGNwdSkJMAorI2RlZmluZQllYXJseV9jcHVfdG9fbm9kZShjcHUpCTAKKworc3RhdGljIGlubGluZSBjb25zdCBjcHVtYXNrX3QgKl9ub2RlX3RvX2NwdW1hc2tfcHRyKGludCBub2RlKQoreworCXJldHVybiAmY3B1X29ubGluZV9tYXA7Cit9CitzdGF0aWMgaW5saW5lIGNwdW1hc2tfdCBub2RlX3RvX2NwdW1hc2soaW50IG5vZGUpCit7CisJcmV0dXJuIGNwdV9vbmxpbmVfbWFwOworfQorc3RhdGljIGlubGluZSBpbnQgbm9kZV90b19maXJzdF9jcHUoaW50IG5vZGUpCit7CisJcmV0dXJuIGZpcnN0X2NwdShjcHVfb25saW5lX21hcCk7Cit9CisKKy8qIFJlcGxhY2UgZGVmYXVsdCBub2RlX3RvX2NwdW1hc2tfcHRyIHdpdGggb3B0aW1pemVkIHZlcnNpb24gKi8KKyNkZWZpbmUgbm9kZV90b19jcHVtYXNrX3B0cih2LCBub2RlKQkJXAorCQljb25zdCBjcHVtYXNrX3QgKnYgPSBfbm9kZV90b19jcHVtYXNrX3B0cihub2RlKQorCisjZGVmaW5lIG5vZGVfdG9fY3B1bWFza19wdHJfbmV4dCh2LCBub2RlKQlcCisJCQkgICB2ID0gX25vZGVfdG9fY3B1bWFza19wdHIobm9kZSkKICNlbmRpZgogCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvdG9wb2xvZ3kuaD4KIAorI2lmZGVmIENPTkZJR19OVU1BCisvKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIGZpcnN0IENQVSBvbiBOb2RlICdub2RlJy4gKi8KK3N0YXRpYyBpbmxpbmUgaW50IG5vZGVfdG9fZmlyc3RfY3B1KGludCBub2RlKQoreworCW5vZGVfdG9fY3B1bWFza19wdHIobWFzaywgbm9kZSk7CisJcmV0dXJuIGZpcnN0X2NwdSgqbWFzayk7Cit9CisjZW5kaWYKKwogZXh0ZXJuIGNwdW1hc2tfdCBjcHVfY29yZWdyb3VwX21hcChpbnQgY3B1KTsKIAogI2lmZGVmIEVOQUJMRV9UT1BPX0RFRklORVMKQEAgLTE5Myw2ICsyMjUsOSBAQAogI2RlZmluZSB0b3BvbG9neV9jb3JlX2lkKGNwdSkJCQkoY3B1X2RhdGEoY3B1KS5jcHVfY29yZV9pZCkKICNkZWZpbmUgdG9wb2xvZ3lfY29yZV9zaWJsaW5ncyhjcHUpCQkocGVyX2NwdShjcHVfY29yZV9tYXAsIGNwdSkpCiAjZGVmaW5lIHRvcG9sb2d5X3RocmVhZF9zaWJsaW5ncyhjcHUpCQkocGVyX2NwdShjcHVfc2libGluZ19tYXAsIGNwdSkpCisKKy8qIGluZGljYXRlcyB0aGF0IHBvaW50ZXJzIHRvIHRoZSB0b3BvbG9neSBjcHVtYXNrX3QgbWFwcyBhcmUgdmFsaWQgKi8KKyNkZWZpbmUgYXJjaF9wcm92aWRlc190b3BvbG9neV9wb2ludGVycwkJeWVzCiAjZW5kaWYKIAogc3RhdGljIGlubGluZSB2b2lkIGFyY2hfZml4X3BoeXNfcGFja2FnZV9pZChpbnQgbnVtLCB1MzIgc2xvdCkKQEAgLTIyMCw0ICsyNTUsNCBAQAogfQogI2VuZGlmCiAKLSNlbmRpZgorI2VuZGlmIC8qIF9BU01fWDg2X1RPUE9MT0dZX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni90c2MuaCBiL2luY2x1ZGUvYXNtLXg4Ni90c2MuaAppbmRleCA1NDg4NzNhLi5jYjZmNmVlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdHNjLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3RzYy5oCkBAIC00OCw3ICs0OCw2IEBACiBleHRlcm4gdm9pZCB0c2NfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIG1hcmtfdHNjX3Vuc3RhYmxlKGNoYXIgKnJlYXNvbik7CiBleHRlcm4gaW50IHVuc3luY2hyb25pemVkX3RzYyh2b2lkKTsKLWV4dGVybiB2b2lkIGluaXRfdHNjX2Nsb2Nrc291cmNlKHZvaWQpOwogaW50IGNoZWNrX3RzY191bnN0YWJsZSh2b2lkKTsKIAogLyoKQEAgLTU4LDcgKzU3LDYgQEAKIGV4dGVybiB2b2lkIGNoZWNrX3RzY19zeW5jX3NvdXJjZShpbnQgY3B1KTsKIGV4dGVybiB2b2lkIGNoZWNrX3RzY19zeW5jX3RhcmdldCh2b2lkKTsKIAotZXh0ZXJuIHZvaWQgdHNjX2NhbGlicmF0ZSh2b2lkKTsKIGV4dGVybiBpbnQgbm90c2Nfc2V0dXAoY2hhciAqKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzcy5oIGIvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3MuaAppbmRleCA5ZmVmZDI5Li5mNmZhNGQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzLmgKQEAgLTEsNSArMSw0NTMgQEAKKyNpZm5kZWYgX0FTTV9VQUNDRVNfSF8KKyNkZWZpbmUgX0FTTV9VQUNDRVNfSF8KKy8qCisgKiBVc2VyIHNwYWNlIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zCisgKi8KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisjaW5jbHVkZSA8bGludXgvdGhyZWFkX2luZm8uaD4KKyNpbmNsdWRlIDxsaW51eC9wcmVmZXRjaC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGFzbS9hc20uaD4KKyNpbmNsdWRlIDxhc20vcGFnZS5oPgorCisjZGVmaW5lIFZFUklGWV9SRUFEIDAKKyNkZWZpbmUgVkVSSUZZX1dSSVRFIDEKKworLyoKKyAqIFRoZSBmcyB2YWx1ZSBkZXRlcm1pbmVzIHdoZXRoZXIgYXJndW1lbnQgdmFsaWRpdHkgY2hlY2tpbmcgc2hvdWxkIGJlCisgKiBwZXJmb3JtZWQgb3Igbm90LiAgSWYgZ2V0X2ZzKCkgPT0gVVNFUl9EUywgY2hlY2tpbmcgaXMgcGVyZm9ybWVkLCB3aXRoCisgKiBnZXRfZnMoKSA9PSBLRVJORUxfRFMsIGNoZWNraW5nIGlzIGJ5cGFzc2VkLgorICoKKyAqIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIHRoZXNlIG1hY3JvcyBhcmUgZ3Jvc3NseSBtaXNuYW1lZC4KKyAqLworCisjZGVmaW5lIE1BS0VfTU1fU0VHKHMpCSgobW1fc2VnbWVudF90KSB7IChzKSB9KQorCisjZGVmaW5lIEtFUk5FTF9EUwlNQUtFX01NX1NFRygtMVVMKQorI2RlZmluZSBVU0VSX0RTCQlNQUtFX01NX1NFRyhQQUdFX09GRlNFVCkKKworI2RlZmluZSBnZXRfZHMoKQkoS0VSTkVMX0RTKQorI2RlZmluZSBnZXRfZnMoKQkoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0KQorI2RlZmluZSBzZXRfZnMoeCkJKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdCA9ICh4KSkKKworI2RlZmluZSBzZWdtZW50X2VxKGEsIGIpCSgoYSkuc2VnID09IChiKS5zZWcpCisKKyNkZWZpbmUgX19hZGRyX29rKGFkZHIpCQkJCQlcCisJKCh1bnNpZ25lZCBsb25nIF9fZm9yY2UpKGFkZHIpIDwJCVwKKwkgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKQorCisvKgorICogVGVzdCB3aGV0aGVyIGEgYmxvY2sgb2YgbWVtb3J5IGlzIGEgdmFsaWQgdXNlciBzcGFjZSBhZGRyZXNzLgorICogUmV0dXJucyAwIGlmIHRoZSByYW5nZSBpcyB2YWxpZCwgbm9uemVybyBvdGhlcndpc2UuCisgKgorICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBmb2xsb3dpbmcgdGVzdDoKKyAqICh1MzMpYWRkciArICh1MzMpc2l6ZSA+PSAodTMzKWN1cnJlbnQtPmFkZHJfbGltaXQuc2VnICh1NjUgZm9yIHg4Nl82NCkKKyAqCisgKiBUaGlzIG5lZWRzIDMzLWJpdCAoNjUtYml0IGZvciB4ODZfNjQpIGFyaXRobWV0aWMuIFdlIGhhdmUgYSBjYXJyeS4uLgorICovCisKKyNkZWZpbmUgX19yYW5nZV9ub3Rfb2soYWRkciwgc2l6ZSkJCQkJCVwKKyh7CQkJCQkJCQkJXAorCXVuc2lnbmVkIGxvbmcgZmxhZywgcm9rc3VtOwkJCQkJXAorCV9fY2hrX3VzZXJfcHRyKGFkZHIpOwkJCQkJCVwKKwlhc20oImFkZCAlMywlMSA7IHNiYiAlMCwlMCA7IGNtcCAlMSwlNCA7IHNiYiAkMCwlMCIJCVwKKwkgICAgOiAiPSZyIiAoZmxhZyksICI9ciIgKHJva3N1bSkJCQkJXAorCSAgICA6ICIxIiAoYWRkciksICJnIiAoKGxvbmcpKHNpemUpKSwJCQkJXAorCSAgICAgICJybSIgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKTsJCVwKKwlmbGFnOwkJCQkJCQkJXAorfSkKKworLyoqCisgKiBhY2Nlc3Nfb2s6IC0gQ2hlY2tzIGlmIGEgdXNlciBzcGFjZSBwb2ludGVyIGlzIHZhbGlkCisgKiBAdHlwZTogVHlwZSBvZiBhY2Nlc3M6ICVWRVJJRllfUkVBRCBvciAlVkVSSUZZX1dSSVRFLiAgTm90ZSB0aGF0CisgKiAgICAgICAgJVZFUklGWV9XUklURSBpcyBhIHN1cGVyc2V0IG9mICVWRVJJRllfUkVBRCAtIGlmIGl0IGlzIHNhZmUKKyAqICAgICAgICB0byB3cml0ZSB0byBhIGJsb2NrLCBpdCBpcyBhbHdheXMgc2FmZSB0byByZWFkIGZyb20gaXQuCisgKiBAYWRkcjogVXNlciBzcGFjZSBwb2ludGVyIHRvIHN0YXJ0IG9mIGJsb2NrIHRvIGNoZWNrCisgKiBAc2l6ZTogU2l6ZSBvZiBibG9jayB0byBjaGVjaworICoKKyAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCisgKgorICogQ2hlY2tzIGlmIGEgcG9pbnRlciB0byBhIGJsb2NrIG9mIG1lbW9yeSBpbiB1c2VyIHNwYWNlIGlzIHZhbGlkLgorICoKKyAqIFJldHVybnMgdHJ1ZSAobm9uemVybykgaWYgdGhlIG1lbW9yeSBibG9jayBtYXkgYmUgdmFsaWQsIGZhbHNlICh6ZXJvKQorICogaWYgaXQgaXMgZGVmaW5pdGVseSBpbnZhbGlkLgorICoKKyAqIE5vdGUgdGhhdCwgZGVwZW5kaW5nIG9uIGFyY2hpdGVjdHVyZSwgdGhpcyBmdW5jdGlvbiBwcm9iYWJseSBqdXN0CisgKiBjaGVja3MgdGhhdCB0aGUgcG9pbnRlciBpcyBpbiB0aGUgdXNlciBzcGFjZSByYW5nZSAtIGFmdGVyIGNhbGxpbmcKKyAqIHRoaXMgZnVuY3Rpb24sIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIG1heSBzdGlsbCByZXR1cm4gLUVGQVVMVC4KKyAqLworI2RlZmluZSBhY2Nlc3Nfb2sodHlwZSwgYWRkciwgc2l6ZSkgKGxpa2VseShfX3JhbmdlX25vdF9vayhhZGRyLCBzaXplKSA9PSAwKSkKKworLyoKKyAqIFRoZSBleGNlcHRpb24gdGFibGUgY29uc2lzdHMgb2YgcGFpcnMgb2YgYWRkcmVzc2VzOiB0aGUgZmlyc3QgaXMgdGhlCisgKiBhZGRyZXNzIG9mIGFuIGluc3RydWN0aW9uIHRoYXQgaXMgYWxsb3dlZCB0byBmYXVsdCwgYW5kIHRoZSBzZWNvbmQgaXMKKyAqIHRoZSBhZGRyZXNzIGF0IHdoaWNoIHRoZSBwcm9ncmFtIHNob3VsZCBjb250aW51ZS4gIE5vIHJlZ2lzdGVycyBhcmUKKyAqIG1vZGlmaWVkLCBzbyBpdCBpcyBlbnRpcmVseSB1cCB0byB0aGUgY29udGludWF0aW9uIGNvZGUgdG8gZmlndXJlIG91dAorICogd2hhdCB0byBkby4KKyAqCisgKiBBbGwgdGhlIHJvdXRpbmVzIGJlbG93IHVzZSBiaXRzIG9mIGZpeHVwIGNvZGUgdGhhdCBhcmUgb3V0IG9mIGxpbmUKKyAqIHdpdGggdGhlIG1haW4gaW5zdHJ1Y3Rpb24gcGF0aC4gIFRoaXMgbWVhbnMgd2hlbiBldmVyeXRoaW5nIGlzIHdlbGwsCisgKiB3ZSBkb24ndCBldmVuIGhhdmUgdG8ganVtcCBvdmVyIHRoZW0uICBGdXJ0aGVyLCB0aGV5IGRvIG5vdCBpbnRydWRlCisgKiBvbiBvdXIgY2FjaGUgb3IgdGxiIGVudHJpZXMuCisgKi8KKworc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSB7CisJdW5zaWduZWQgbG9uZyBpbnNuLCBmaXh1cDsKK307CisKK2V4dGVybiBpbnQgZml4dXBfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKKworLyoKKyAqIFRoZXNlIGFyZSB0aGUgbWFpbiBzaW5nbGUtdmFsdWUgdHJhbnNmZXIgcm91dGluZXMuICBUaGV5IGF1dG9tYXRpY2FsbHkKKyAqIHVzZSB0aGUgcmlnaHQgc2l6ZSBpZiB3ZSBqdXN0IGhhdmUgdGhlIHJpZ2h0IHBvaW50ZXIgdHlwZS4KKyAqCisgKiBUaGlzIGdldHMga2luZCBvZiB1Z2x5LiBXZSB3YW50IHRvIHJldHVybiBfdHdvXyB2YWx1ZXMgaW4gImdldF91c2VyKCkiCisgKiBhbmQgeWV0IHdlIGRvbid0IHdhbnQgdG8gZG8gYW55IHBvaW50ZXJzLCBiZWNhdXNlIHRoYXQgaXMgdG9vIG11Y2gKKyAqIG9mIGEgcGVyZm9ybWFuY2UgaW1wYWN0LiBUaHVzIHdlIGhhdmUgYSBmZXcgcmF0aGVyIHVnbHkgbWFjcm9zIGhlcmUsCisgKiBhbmQgaGlkZSBhbGwgdGhlIHVnbGluZXNzIGZyb20gdGhlIHVzZXIuCisgKgorICogVGhlICJfX3h4eCIgdmVyc2lvbnMgb2YgdGhlIHVzZXIgYWNjZXNzIGZ1bmN0aW9ucyBhcmUgdmVyc2lvbnMgdGhhdAorICogZG8gbm90IHZlcmlmeSB0aGUgYWRkcmVzcyBzcGFjZSwgdGhhdCBtdXN0IGhhdmUgYmVlbiBkb25lIHByZXZpb3VzbHkKKyAqIHdpdGggYSBzZXBhcmF0ZSAiYWNjZXNzX29rKCkiIGNhbGwgKHRoaXMgaXMgdXNlZCB3aGVuIHdlIGRvIG11bHRpcGxlCisgKiBhY2Nlc3NlcyB0byB0aGUgc2FtZSBhcmVhIG9mIHVzZXIgbWVtb3J5KS4KKyAqLworCitleHRlcm4gaW50IF9fZ2V0X3VzZXJfMSh2b2lkKTsKK2V4dGVybiBpbnQgX19nZXRfdXNlcl8yKHZvaWQpOworZXh0ZXJuIGludCBfX2dldF91c2VyXzQodm9pZCk7CitleHRlcm4gaW50IF9fZ2V0X3VzZXJfOCh2b2lkKTsKK2V4dGVybiBpbnQgX19nZXRfdXNlcl9iYWQodm9pZCk7CisKKyNkZWZpbmUgX19nZXRfdXNlcl94KHNpemUsIHJldCwgeCwgcHRyKQkJICAgICAgXAorCWFzbSB2b2xhdGlsZSgiY2FsbCBfX2dldF91c2VyXyIgI3NpemUJICAgICAgXAorCQkgICAgIDogIj1hIiAocmV0KSwiPWQiICh4KQkgICAgICBcCisJCSAgICAgOiAiMCIgKHB0cikpCQkgICAgICBcCisKKy8qIENhcmVmdWw6IHdlIGhhdmUgdG8gY2FzdCB0aGUgcmVzdWx0IHRvIHRoZSB0eXBlIG9mIHRoZSBwb2ludGVyCisgKiBmb3Igc2lnbiByZWFzb25zICovCisKKy8qKgorICogZ2V0X3VzZXI6IC0gR2V0IGEgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZS4KKyAqIEB4OiAgIFZhcmlhYmxlIHRvIHN0b3JlIHJlc3VsdC4KKyAqIEBwdHI6IFNvdXJjZSBhZGRyZXNzLCBpbiB1c2VyIHNwYWNlLgorICoKKyAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCisgKgorICogVGhpcyBtYWNybyBjb3BpZXMgYSBzaW5nbGUgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZSB0byBrZXJuZWwKKyAqIHNwYWNlLiAgSXQgc3VwcG9ydHMgc2ltcGxlIHR5cGVzIGxpa2UgY2hhciBhbmQgaW50LCBidXQgbm90IGxhcmdlcgorICogZGF0YSB0eXBlcyBsaWtlIHN0cnVjdHVyZXMgb3IgYXJyYXlzLgorICoKKyAqIEBwdHIgbXVzdCBoYXZlIHBvaW50ZXItdG8tc2ltcGxlLXZhcmlhYmxlIHR5cGUsIGFuZCB0aGUgcmVzdWx0IG9mCisgKiBkZXJlZmVyZW5jaW5nIEBwdHIgbXVzdCBiZSBhc3NpZ25hYmxlIHRvIEB4IHdpdGhvdXQgYSBjYXN0LgorICoKKyAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgorICogT24gZXJyb3IsIHRoZSB2YXJpYWJsZSBAeCBpcyBzZXQgdG8gemVyby4KKyAqLworI2lmZGVmIENPTkZJR19YODZfMzIKKyNkZWZpbmUgX19nZXRfdXNlcl84KF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKQkJCQlcCisJCV9fZ2V0X3VzZXJfeChYLCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cikKKyNlbHNlCisjZGVmaW5lIF9fZ2V0X3VzZXJfOChfX3JldF9ndSwgX192YWxfZ3UsIHB0cikJCQkJXAorCQlfX2dldF91c2VyX3goOCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpCisjZW5kaWYKKworI2RlZmluZSBnZXRfdXNlcih4LCBwdHIpCQkJCQkJXAorKHsJCQkJCQkJCQlcCisJaW50IF9fcmV0X2d1OwkJCQkJCQlcCisJdW5zaWduZWQgbG9uZyBfX3ZhbF9ndTsJCQkJCQlcCisJX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCisJc3dpdGNoIChzaXplb2YoKihwdHIpKSkgewkJCQkJXAorCWNhc2UgMToJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl94KDEsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKKwkJYnJlYWs7CQkJCQkJCVwKKwljYXNlIDI6CQkJCQkJCQlcCisJCV9fZ2V0X3VzZXJfeCgyLCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQlcCisJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSA0OgkJCQkJCQkJXAorCQlfX2dldF91c2VyX3goNCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAorCQlicmVhazsJCQkJCQkJXAorCWNhc2UgODoJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl84KF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCQlcCisJCWJyZWFrOwkJCQkJCQlcCisJZGVmYXVsdDoJCQkJCQkJXAorCQlfX2dldF91c2VyX3goWCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAorCQlicmVhazsJCQkJCQkJXAorCX0JCQkJCQkJCVwKKwkoeCkgPSAoX190eXBlb2ZfXygqKHB0cikpKV9fdmFsX2d1OwkJCQlcCisJX19yZXRfZ3U7CQkJCQkJCVwKK30pCisKKyNkZWZpbmUgX19wdXRfdXNlcl94KHNpemUsIHgsIHB0ciwgX19yZXRfcHUpCQkJXAorCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXyIgI3NpemUgOiAiPWEiIChfX3JldF9wdSkJXAorCQkgICAgIDoiMCIgKCh0eXBlb2YoKihwdHIpKSkoeCkpLCAiYyIgKHB0cikgOiAiZWJ4IikKKworCisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjZGVmaW5lIF9fcHV0X3VzZXJfdTY0KHgsIGFkZHIsIGVycikJCQkJCVwKKwlhc20gdm9sYXRpbGUoIjE6CW1vdmwgJSVlYXgsMCglMilcbiIJCQlcCisJCSAgICAgIjI6CW1vdmwgJSVlZHgsNCglMilcbiIJCQlcCisJCSAgICAgIjM6XG4iCQkJCQkJXAorCQkgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG4iCQkJCVwKKwkJICAgICAiNDoJbW92bCAlMywlMFxuIgkJCQlcCisJCSAgICAgIglqbXAgM2JcbiIJCQkJCVwKKwkJICAgICAiLnByZXZpb3VzXG4iCQkJCQlcCisJCSAgICAgX0FTTV9FWFRBQkxFKDFiLCA0YikJCQkJXAorCQkgICAgIF9BU01fRVhUQUJMRSgyYiwgNGIpCQkJCVwKKwkJICAgICA6ICI9ciIgKGVycikJCQkJCVwKKwkJICAgICA6ICJBIiAoeCksICJyIiAoYWRkciksICJpIiAoLUVGQVVMVCksICIwIiAoZXJyKSkKKworI2RlZmluZSBfX3B1dF91c2VyX3g4KHgsIHB0ciwgX19yZXRfcHUpCQkJCVwKKwlhc20gdm9sYXRpbGUoImNhbGwgX19wdXRfdXNlcl84IiA6ICI9YSIgKF9fcmV0X3B1KQlcCisJCSAgICAgOiAiQSIgKCh0eXBlb2YoKihwdHIpKSkoeCkpLCAiYyIgKHB0cikgOiAiZWJ4IikKKyNlbHNlCisjZGVmaW5lIF9fcHV0X3VzZXJfdTY0KHgsIHB0ciwgcmV0dmFsKSBcCisJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJxIiwgIiIsICJaciIsIC1FRkFVTFQpCisjZGVmaW5lIF9fcHV0X3VzZXJfeDgoeCwgcHRyLCBfX3JldF9wdSkgX19wdXRfdXNlcl94KDgsIHgsIHB0ciwgX19yZXRfcHUpCisjZW5kaWYKKworZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl9iYWQodm9pZCk7CisKKy8qCisgKiBTdHJhbmdlIG1hZ2ljIGNhbGxpbmcgY29udmVudGlvbjogcG9pbnRlciBpbiAlZWN4LAorICogdmFsdWUgaW4gJWVheCg6JWVkeCksIHJldHVybiB2YWx1ZSBpbiAlZWF4LiBjbG9iYmVycyAlcmJ4CisgKi8KK2V4dGVybiB2b2lkIF9fcHV0X3VzZXJfMSh2b2lkKTsKK2V4dGVybiB2b2lkIF9fcHV0X3VzZXJfMih2b2lkKTsKK2V4dGVybiB2b2lkIF9fcHV0X3VzZXJfNCh2b2lkKTsKK2V4dGVybiB2b2lkIF9fcHV0X3VzZXJfOCh2b2lkKTsKKworI2lmZGVmIENPTkZJR19YODZfV1BfV09SS1NfT0sKKworLyoqCisgKiBwdXRfdXNlcjogLSBXcml0ZSBhIHNpbXBsZSB2YWx1ZSBpbnRvIHVzZXIgc3BhY2UuCisgKiBAeDogICBWYWx1ZSB0byBjb3B5IHRvIHVzZXIgc3BhY2UuCisgKiBAcHRyOiBEZXN0aW5hdGlvbiBhZGRyZXNzLCBpbiB1c2VyIHNwYWNlLgorICoKKyAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCisgKgorICogVGhpcyBtYWNybyBjb3BpZXMgYSBzaW5nbGUgc2ltcGxlIHZhbHVlIGZyb20ga2VybmVsIHNwYWNlIHRvIHVzZXIKKyAqIHNwYWNlLiAgSXQgc3VwcG9ydHMgc2ltcGxlIHR5cGVzIGxpa2UgY2hhciBhbmQgaW50LCBidXQgbm90IGxhcmdlcgorICogZGF0YSB0eXBlcyBsaWtlIHN0cnVjdHVyZXMgb3IgYXJyYXlzLgorICoKKyAqIEBwdHIgbXVzdCBoYXZlIHBvaW50ZXItdG8tc2ltcGxlLXZhcmlhYmxlIHR5cGUsIGFuZCBAeCBtdXN0IGJlIGFzc2lnbmFibGUKKyAqIHRvIHRoZSByZXN1bHQgb2YgZGVyZWZlcmVuY2luZyBAcHRyLgorICoKKyAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgorICovCisjZGVmaW5lIHB1dF91c2VyKHgsIHB0cikJCQkJCVwKKyh7CQkJCQkJCQlcCisJaW50IF9fcmV0X3B1OwkJCQkJCVwKKwlfX3R5cGVvZl9fKCoocHRyKSkgX19wdV92YWw7CQkJCVwKKwlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJXAorCV9fcHVfdmFsID0geDsJCQkJCQlcCisJc3dpdGNoIChzaXplb2YoKihwdHIpKSkgewkJCQlcCisJY2FzZSAxOgkJCQkJCQlcCisJCV9fcHV0X3VzZXJfeCgxLCBfX3B1X3ZhbCwgcHRyLCBfX3JldF9wdSk7CVwKKwkJYnJlYWs7CQkJCQkJXAorCWNhc2UgMjoJCQkJCQkJXAorCQlfX3B1dF91c2VyX3goMiwgX19wdV92YWwsIHB0ciwgX19yZXRfcHUpOwlcCisJCWJyZWFrOwkJCQkJCVwKKwljYXNlIDQ6CQkJCQkJCVwKKwkJX19wdXRfdXNlcl94KDQsIF9fcHVfdmFsLCBwdHIsIF9fcmV0X3B1KTsJXAorCQlicmVhazsJCQkJCQlcCisJY2FzZSA4OgkJCQkJCQlcCisJCV9fcHV0X3VzZXJfeDgoX19wdV92YWwsIHB0ciwgX19yZXRfcHUpOwkJXAorCQlicmVhazsJCQkJCQlcCisJZGVmYXVsdDoJCQkJCQlcCisJCV9fcHV0X3VzZXJfeChYLCBfX3B1X3ZhbCwgcHRyLCBfX3JldF9wdSk7CVwKKwkJYnJlYWs7CQkJCQkJXAorCX0JCQkJCQkJXAorCV9fcmV0X3B1OwkJCQkJCVwKK30pCisKKyNkZWZpbmUgX19wdXRfdXNlcl9zaXplKHgsIHB0ciwgc2l6ZSwgcmV0dmFsLCBlcnJyZXQpCQkJXAorZG8gewkJCQkJCQkJCVwKKwlyZXR2YWwgPSAwOwkJCQkJCQlcCisJX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCisJc3dpdGNoIChzaXplKSB7CQkJCQkJCVwKKwljYXNlIDE6CQkJCQkJCQlcCisJCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAiYiIsICJiIiwgImlxIiwgZXJycmV0KTsJXAorCQlicmVhazsJCQkJCQkJXAorCWNhc2UgMjoJCQkJCQkJCVwKKwkJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJ3IiwgInciLCAiaXIiLCBlcnJyZXQpOwlcCisJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSA0OgkJCQkJCQkJXAorCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImwiLCAiayIsICAiaXIiLCBlcnJyZXQpO1wKKwkJYnJlYWs7CQkJCQkJCVwKKwljYXNlIDg6CQkJCQkJCQlcCisJCV9fcHV0X3VzZXJfdTY0KChfX3R5cGVvZl9fKCpwdHIpKSh4KSwgcHRyLCByZXR2YWwpOwlcCisJCWJyZWFrOwkJCQkJCQlcCisJZGVmYXVsdDoJCQkJCQkJXAorCQlfX3B1dF91c2VyX2JhZCgpOwkJCQkJXAorCX0JCQkJCQkJCVwKK30gd2hpbGUgKDApCisKKyNlbHNlCisKKyNkZWZpbmUgX19wdXRfdXNlcl9zaXplKHgsIHB0ciwgc2l6ZSwgcmV0dmFsLCBlcnJyZXQpCQkJXAorZG8gewkJCQkJCQkJCVwKKwlfX3R5cGVvZl9fKCoocHRyKSlfX3B1c190bXAgPSB4OwkJCQlcCisJcmV0dmFsID0gMDsJCQkJCQkJXAorCQkJCQkJCQkJXAorCWlmICh1bmxpa2VseShfX2NvcHlfdG9fdXNlcl9sbChwdHIsICZfX3B1c190bXAsIHNpemUpICE9IDApKQlcCisJCXJldHZhbCA9IGVycnJldDsJCQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgcHV0X3VzZXIoeCwgcHRyKQkJCQkJXAorKHsJCQkJCQkJCVwKKwlpbnQgX19yZXRfcHU7CQkJCQkJXAorCV9fdHlwZW9mX18oKihwdHIpKV9fcHVzX3RtcCA9IHg7CQkJXAorCV9fcmV0X3B1ID0gMDsJCQkJCQlcCisJaWYgKHVubGlrZWx5KF9fY29weV90b191c2VyX2xsKHB0ciwgJl9fcHVzX3RtcCwJCVwKKwkJCQkgICAgICAgc2l6ZW9mKCoocHRyKSkpICE9IDApKQlcCisJCV9fcmV0X3B1ID0gLUVGQVVMVDsJCQkJXAorCV9fcmV0X3B1OwkJCQkJCVwKK30pCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19YODZfMzIKKyNkZWZpbmUgX19nZXRfdXNlcl9hc21fdTY0KHgsIHB0ciwgcmV0dmFsLCBlcnJyZXQpCSh4KSA9IF9fZ2V0X3VzZXJfYmFkKCkKKyNlbHNlCisjZGVmaW5lIF9fZ2V0X3VzZXJfYXNtX3U2NCh4LCBwdHIsIHJldHZhbCwgZXJycmV0KSBcCisJIF9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAicSIsICIiLCAiPXIiLCBlcnJyZXQpCisjZW5kaWYKKworI2RlZmluZSBfX2dldF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwsIGVycnJldCkJCQlcCitkbyB7CQkJCQkJCQkJXAorCXJldHZhbCA9IDA7CQkJCQkJCVwKKwlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKKwlzd2l0Y2ggKHNpemUpIHsJCQkJCQkJXAorCWNhc2UgMToJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJiIiwgImIiLCAiPXEiLCBlcnJyZXQpOwlcCisJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSAyOgkJCQkJCQkJXAorCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInciLCAidyIsICI9ciIsIGVycnJldCk7CVwKKwkJYnJlYWs7CQkJCQkJCVwKKwljYXNlIDQ6CQkJCQkJCQlcCisJCV9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAibCIsICJrIiwgIj1yIiwgZXJycmV0KTsJXAorCQlicmVhazsJCQkJCQkJXAorCWNhc2UgODoJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl9hc21fdTY0KHgsIHB0ciwgcmV0dmFsLCBlcnJyZXQpOwkJXAorCQlicmVhazsJCQkJCQkJXAorCWRlZmF1bHQ6CQkJCQkJCVwKKwkJKHgpID0gX19nZXRfdXNlcl9iYWQoKTsJCQkJCVwKKwl9CQkJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIF9fZ2V0X3VzZXJfYXNtKHgsIGFkZHIsIGVyciwgaXR5cGUsIHJ0eXBlLCBsdHlwZSwgZXJycmV0KQlcCisJYXNtIHZvbGF0aWxlKCIxOgltb3YiaXR5cGUiICUyLCUicnR5cGUiMVxuIgkJXAorCQkgICAgICIyOlxuIgkJCQkJCVwKKwkJICAgICAiLnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIgkJCQlcCisJCSAgICAgIjM6CW1vdiAlMywlMFxuIgkJCQlcCisJCSAgICAgIgl4b3IiaXR5cGUiICUicnR5cGUiMSwlInJ0eXBlIjFcbiIJCVwKKwkJICAgICAiCWptcCAyYlxuIgkJCQkJXAorCQkgICAgICIucHJldmlvdXNcbiIJCQkJCVwKKwkJICAgICBfQVNNX0VYVEFCTEUoMWIsIDNiKQkJCQlcCisJCSAgICAgOiAiPXIiIChlcnIpLCBsdHlwZSh4KQkJCQlcCisJCSAgICAgOiAibSIgKF9fbShhZGRyKSksICJpIiAoZXJycmV0KSwgIjAiIChlcnIpKQorCisjZGVmaW5lIF9fcHV0X3VzZXJfbm9jaGVjayh4LCBwdHIsIHNpemUpCQkJXAorKHsJCQkJCQkJCVwKKwlsb25nIF9fcHVfZXJyOwkJCQkJCVwKKwlfX3B1dF91c2VyX3NpemUoKHgpLCAocHRyKSwgKHNpemUpLCBfX3B1X2VyciwgLUVGQVVMVCk7CVwKKwlfX3B1X2VycjsJCQkJCQlcCit9KQorCisjZGVmaW5lIF9fZ2V0X3VzZXJfbm9jaGVjayh4LCBwdHIsIHNpemUpCQkJCVwKKyh7CQkJCQkJCQkJXAorCWxvbmcgX19ndV9lcnI7CQkJCQkJCVwKKwl1bnNpZ25lZCBsb25nIF9fZ3VfdmFsOwkJCQkJCVwKKwlfX2dldF91c2VyX3NpemUoX19ndV92YWwsIChwdHIpLCAoc2l6ZSksIF9fZ3VfZXJyLCAtRUZBVUxUKTsJXAorCSh4KSA9IChfX2ZvcmNlIF9fdHlwZW9mX18oKihwdHIpKSlfX2d1X3ZhbDsJCQlcCisJX19ndV9lcnI7CQkJCQkJCVwKK30pCisKKy8qIEZJWE1FOiB0aGlzIGhhY2sgaXMgZGVmaW5pdGVseSB3cm9uZyAtQUsgKi8KK3N0cnVjdCBfX2xhcmdlX3N0cnVjdCB7IHVuc2lnbmVkIGxvbmcgYnVmWzEwMF07IH07CisjZGVmaW5lIF9fbSh4KSAoKihzdHJ1Y3QgX19sYXJnZV9zdHJ1Y3QgX191c2VyICopKHgpKQorCisvKgorICogVGVsbCBnY2Mgd2UgcmVhZCBmcm9tIG1lbW9yeSBpbnN0ZWFkIG9mIHdyaXRpbmc6IHRoaXMgaXMgYmVjYXVzZQorICogd2UgZG8gbm90IHdyaXRlIHRvIGFueSBtZW1vcnkgZ2NjIGtub3dzIGFib3V0LCBzbyB0aGVyZSBhcmUgbm8KKyAqIGFsaWFzaW5nIGlzc3Vlcy4KKyAqLworI2RlZmluZSBfX3B1dF91c2VyX2FzbSh4LCBhZGRyLCBlcnIsIGl0eXBlLCBydHlwZSwgbHR5cGUsIGVycnJldCkJXAorCWFzbSB2b2xhdGlsZSgiMToJbW92Iml0eXBlIiAlInJ0eXBlIjEsJTJcbiIJCVwKKwkJICAgICAiMjpcbiIJCQkJCQlcCisJCSAgICAgIi5zZWN0aW9uIC5maXh1cCxcImF4XCJcbiIJCQkJXAorCQkgICAgICIzOgltb3YgJTMsJTBcbiIJCQkJXAorCQkgICAgICIJam1wIDJiXG4iCQkJCQlcCisJCSAgICAgIi5wcmV2aW91c1xuIgkJCQkJXAorCQkgICAgIF9BU01fRVhUQUJMRSgxYiwgM2IpCQkJCVwKKwkJICAgICA6ICI9ciIoZXJyKQkJCQkJXAorCQkgICAgIDogbHR5cGUoeCksICJtIiAoX19tKGFkZHIpKSwgImkiIChlcnJyZXQpLCAiMCIgKGVycikpCisvKioKKyAqIF9fZ2V0X3VzZXI6IC0gR2V0IGEgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZSwgd2l0aCBsZXNzIGNoZWNraW5nLgorICogQHg6ICAgVmFyaWFibGUgdG8gc3RvcmUgcmVzdWx0LgorICogQHB0cjogU291cmNlIGFkZHJlc3MsIGluIHVzZXIgc3BhY2UuCisgKgorICogQ29udGV4dDogVXNlciBjb250ZXh0IG9ubHkuICBUaGlzIGZ1bmN0aW9uIG1heSBzbGVlcC4KKyAqCisgKiBUaGlzIG1hY3JvIGNvcGllcyBhIHNpbmdsZSBzaW1wbGUgdmFyaWFibGUgZnJvbSB1c2VyIHNwYWNlIHRvIGtlcm5lbAorICogc3BhY2UuICBJdCBzdXBwb3J0cyBzaW1wbGUgdHlwZXMgbGlrZSBjaGFyIGFuZCBpbnQsIGJ1dCBub3QgbGFyZ2VyCisgKiBkYXRhIHR5cGVzIGxpa2Ugc3RydWN0dXJlcyBvciBhcnJheXMuCisgKgorICogQHB0ciBtdXN0IGhhdmUgcG9pbnRlci10by1zaW1wbGUtdmFyaWFibGUgdHlwZSwgYW5kIHRoZSByZXN1bHQgb2YKKyAqIGRlcmVmZXJlbmNpbmcgQHB0ciBtdXN0IGJlIGFzc2lnbmFibGUgdG8gQHggd2l0aG91dCBhIGNhc3QuCisgKgorICogQ2FsbGVyIG11c3QgY2hlY2sgdGhlIHBvaW50ZXIgd2l0aCBhY2Nlc3Nfb2soKSBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCisgKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgb3IgLUVGQVVMVCBvbiBlcnJvci4KKyAqIE9uIGVycm9yLCB0aGUgdmFyaWFibGUgQHggaXMgc2V0IHRvIHplcm8uCisgKi8KKworI2RlZmluZSBfX2dldF91c2VyKHgsIHB0cikJCQkJCQlcCisJX19nZXRfdXNlcl9ub2NoZWNrKCh4KSwgKHB0ciksIHNpemVvZigqKHB0cikpKQorLyoqCisgKiBfX3B1dF91c2VyOiAtIFdyaXRlIGEgc2ltcGxlIHZhbHVlIGludG8gdXNlciBzcGFjZSwgd2l0aCBsZXNzIGNoZWNraW5nLgorICogQHg6ICAgVmFsdWUgdG8gY29weSB0byB1c2VyIHNwYWNlLgorICogQHB0cjogRGVzdGluYXRpb24gYWRkcmVzcywgaW4gdXNlciBzcGFjZS4KKyAqCisgKiBDb250ZXh0OiBVc2VyIGNvbnRleHQgb25seS4gIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLgorICoKKyAqIFRoaXMgbWFjcm8gY29waWVzIGEgc2luZ2xlIHNpbXBsZSB2YWx1ZSBmcm9tIGtlcm5lbCBzcGFjZSB0byB1c2VyCisgKiBzcGFjZS4gIEl0IHN1cHBvcnRzIHNpbXBsZSB0eXBlcyBsaWtlIGNoYXIgYW5kIGludCwgYnV0IG5vdCBsYXJnZXIKKyAqIGRhdGEgdHlwZXMgbGlrZSBzdHJ1Y3R1cmVzIG9yIGFycmF5cy4KKyAqCisgKiBAcHRyIG11c3QgaGF2ZSBwb2ludGVyLXRvLXNpbXBsZS12YXJpYWJsZSB0eXBlLCBhbmQgQHggbXVzdCBiZSBhc3NpZ25hYmxlCisgKiB0byB0aGUgcmVzdWx0IG9mIGRlcmVmZXJlbmNpbmcgQHB0ci4KKyAqCisgKiBDYWxsZXIgbXVzdCBjaGVjayB0aGUgcG9pbnRlciB3aXRoIGFjY2Vzc19vaygpIGJlZm9yZSBjYWxsaW5nIHRoaXMKKyAqIGZ1bmN0aW9uLgorICoKKyAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgorICovCisKKyNkZWZpbmUgX19wdXRfdXNlcih4LCBwdHIpCQkJCQkJXAorCV9fcHV0X3VzZXJfbm9jaGVjaygoX190eXBlb2ZfXygqKHB0cikpKSh4KSwgKHB0ciksIHNpemVvZigqKHB0cikpKQorCisjZGVmaW5lIF9fZ2V0X3VzZXJfdW5hbGlnbmVkIF9fZ2V0X3VzZXIKKyNkZWZpbmUgX19wdXRfdXNlcl91bmFsaWduZWQgX19wdXRfdXNlcgorCisvKgorICogbW92c2wgY2FuIGJlIHNsb3cgd2hlbiBzb3VyY2UgYW5kIGRlc3QgYXJlIG5vdCBib3RoIDgtYnl0ZSBhbGlnbmVkCisgKi8KKyNpZmRlZiBDT05GSUdfWDg2X0lOVEVMX1VTRVJDT1BZCitleHRlcm4gc3RydWN0IG1vdnNsX21hc2sgeworCWludCBtYXNrOworfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wIG1vdnNsX21hc2s7CisjZW5kaWYKKworI2RlZmluZSBBUkNIX0hBU19OT0NBQ0hFX1VBQ0NFU1MgMQorCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogIyBpbmNsdWRlICJ1YWNjZXNzXzMyLmgiCiAjZWxzZQorIyBkZWZpbmUgQVJDSF9IQVNfU0VBUkNIX0VYVEFCTEUKICMgaW5jbHVkZSAidWFjY2Vzc182NC5oIgogI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3NfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzXzMyLmgKaW5kZXggOGU3NTk1Yy4uNmZkZWYzOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3NfMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzc18zMi5oCkBAIC0xMSw0MjYgKzExLDYgQEAKICNpbmNsdWRlIDxhc20vYXNtLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KIAotI2RlZmluZSBWRVJJRllfUkVBRCAwCi0jZGVmaW5lIFZFUklGWV9XUklURSAxCi0KLS8qCi0gKiBUaGUgZnMgdmFsdWUgZGV0ZXJtaW5lcyB3aGV0aGVyIGFyZ3VtZW50IHZhbGlkaXR5IGNoZWNraW5nIHNob3VsZCBiZQotICogcGVyZm9ybWVkIG9yIG5vdC4gIElmIGdldF9mcygpID09IFVTRVJfRFMsIGNoZWNraW5nIGlzIHBlcmZvcm1lZCwgd2l0aAotICogZ2V0X2ZzKCkgPT0gS0VSTkVMX0RTLCBjaGVja2luZyBpcyBieXBhc3NlZC4KLSAqCi0gKiBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB0aGVzZSBtYWNyb3MgYXJlIGdyb3NzbHkgbWlzbmFtZWQuCi0gKi8KLQotI2RlZmluZSBNQUtFX01NX1NFRyhzKQkoKG1tX3NlZ21lbnRfdCkgeyAocykgfSkKLQotCi0jZGVmaW5lIEtFUk5FTF9EUwlNQUtFX01NX1NFRygweEZGRkZGRkZGVUwpCi0jZGVmaW5lIFVTRVJfRFMJCU1BS0VfTU1fU0VHKFBBR0VfT0ZGU0VUKQotCi0jZGVmaW5lIGdldF9kcygpCShLRVJORUxfRFMpCi0jZGVmaW5lIGdldF9mcygpCShjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQpCi0jZGVmaW5lIHNldF9mcyh4KQkoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0ID0gKHgpKQotCi0jZGVmaW5lIHNlZ21lbnRfZXEoYSwgYikJKChhKS5zZWcgPT0gKGIpLnNlZykKLQotLyoKLSAqIG1vdnNsIGNhbiBiZSBzbG93IHdoZW4gc291cmNlIGFuZCBkZXN0IGFyZSBub3QgYm90aCA4LWJ5dGUgYWxpZ25lZAotICovCi0jaWZkZWYgQ09ORklHX1g4Nl9JTlRFTF9VU0VSQ09QWQotZXh0ZXJuIHN0cnVjdCBtb3ZzbF9tYXNrIHsKLQlpbnQgbWFzazsKLX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcCBtb3ZzbF9tYXNrOwotI2VuZGlmCi0KLSNkZWZpbmUgX19hZGRyX29rKGFkZHIpCQkJCQlcCi0JKCh1bnNpZ25lZCBsb25nIF9fZm9yY2UpKGFkZHIpIDwJCVwKLQkgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKQotCi0vKgotICogVGVzdCB3aGV0aGVyIGEgYmxvY2sgb2YgbWVtb3J5IGlzIGEgdmFsaWQgdXNlciBzcGFjZSBhZGRyZXNzLgotICogUmV0dXJucyAwIGlmIHRoZSByYW5nZSBpcyB2YWxpZCwgbm9uemVybyBvdGhlcndpc2UuCi0gKgotICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBmb2xsb3dpbmcgdGVzdDoKLSAqICh1MzMpYWRkciArICh1MzMpc2l6ZSA+PSAodTMzKWN1cnJlbnQtPmFkZHJfbGltaXQuc2VnCi0gKgotICogVGhpcyBuZWVkcyAzMy1iaXQgYXJpdGhtZXRpYy4gV2UgaGF2ZSBhIGNhcnJ5Li4uCi0gKi8KLSNkZWZpbmUgX19yYW5nZV9vayhhZGRyLCBzaXplKQkJCQkJCVwKLSh7CQkJCQkJCQkJXAotCXVuc2lnbmVkIGxvbmcgZmxhZywgcm9rc3VtOwkJCQkJXAotCV9fY2hrX3VzZXJfcHRyKGFkZHIpOwkJCQkJCVwKLQlhc20oImFkZGwgJTMsJTEgOyBzYmJsICUwLCUwOyBjbXBsICUxLCU0OyBzYmJsICQwLCUwIgkJXAotCSAgICA6Ij0mciIgKGZsYWcpLCAiPXIiIChyb2tzdW0pCQkJCVwKLQkgICAgOiIxIiAoYWRkciksICJnIiAoKGludCkoc2l6ZSkpLAkJCQlcCi0JICAgICJybSIgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKTsJCVwKLQlmbGFnOwkJCQkJCQkJXAotfSkKLQotLyoqCi0gKiBhY2Nlc3Nfb2s6IC0gQ2hlY2tzIGlmIGEgdXNlciBzcGFjZSBwb2ludGVyIGlzIHZhbGlkCi0gKiBAdHlwZTogVHlwZSBvZiBhY2Nlc3M6ICVWRVJJRllfUkVBRCBvciAlVkVSSUZZX1dSSVRFLiAgTm90ZSB0aGF0Ci0gKiAgICAgICAgJVZFUklGWV9XUklURSBpcyBhIHN1cGVyc2V0IG9mICVWRVJJRllfUkVBRCAtIGlmIGl0IGlzIHNhZmUKLSAqICAgICAgICB0byB3cml0ZSB0byBhIGJsb2NrLCBpdCBpcyBhbHdheXMgc2FmZSB0byByZWFkIGZyb20gaXQuCi0gKiBAYWRkcjogVXNlciBzcGFjZSBwb2ludGVyIHRvIHN0YXJ0IG9mIGJsb2NrIHRvIGNoZWNrCi0gKiBAc2l6ZTogU2l6ZSBvZiBibG9jayB0byBjaGVjawotICoKLSAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCi0gKgotICogQ2hlY2tzIGlmIGEgcG9pbnRlciB0byBhIGJsb2NrIG9mIG1lbW9yeSBpbiB1c2VyIHNwYWNlIGlzIHZhbGlkLgotICoKLSAqIFJldHVybnMgdHJ1ZSAobm9uemVybykgaWYgdGhlIG1lbW9yeSBibG9jayBtYXkgYmUgdmFsaWQsIGZhbHNlICh6ZXJvKQotICogaWYgaXQgaXMgZGVmaW5pdGVseSBpbnZhbGlkLgotICoKLSAqIE5vdGUgdGhhdCwgZGVwZW5kaW5nIG9uIGFyY2hpdGVjdHVyZSwgdGhpcyBmdW5jdGlvbiBwcm9iYWJseSBqdXN0Ci0gKiBjaGVja3MgdGhhdCB0aGUgcG9pbnRlciBpcyBpbiB0aGUgdXNlciBzcGFjZSByYW5nZSAtIGFmdGVyIGNhbGxpbmcKLSAqIHRoaXMgZnVuY3Rpb24sIG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb25zIG1heSBzdGlsbCByZXR1cm4gLUVGQVVMVC4KLSAqLwotI2RlZmluZSBhY2Nlc3Nfb2sodHlwZSwgYWRkciwgc2l6ZSkgKGxpa2VseShfX3JhbmdlX29rKGFkZHIsIHNpemUpID09IDApKQotCi0vKgotICogVGhlIGV4Y2VwdGlvbiB0YWJsZSBjb25zaXN0cyBvZiBwYWlycyBvZiBhZGRyZXNzZXM6IHRoZSBmaXJzdCBpcyB0aGUKLSAqIGFkZHJlc3Mgb2YgYW4gaW5zdHJ1Y3Rpb24gdGhhdCBpcyBhbGxvd2VkIHRvIGZhdWx0LCBhbmQgdGhlIHNlY29uZCBpcwotICogdGhlIGFkZHJlc3MgYXQgd2hpY2ggdGhlIHByb2dyYW0gc2hvdWxkIGNvbnRpbnVlLiAgTm8gcmVnaXN0ZXJzIGFyZQotICogbW9kaWZpZWQsIHNvIGl0IGlzIGVudGlyZWx5IHVwIHRvIHRoZSBjb250aW51YXRpb24gY29kZSB0byBmaWd1cmUgb3V0Ci0gKiB3aGF0IHRvIGRvLgotICoKLSAqIEFsbCB0aGUgcm91dGluZXMgYmVsb3cgdXNlIGJpdHMgb2YgZml4dXAgY29kZSB0aGF0IGFyZSBvdXQgb2YgbGluZQotICogd2l0aCB0aGUgbWFpbiBpbnN0cnVjdGlvbiBwYXRoLiAgVGhpcyBtZWFucyB3aGVuIGV2ZXJ5dGhpbmcgaXMgd2VsbCwKLSAqIHdlIGRvbid0IGV2ZW4gaGF2ZSB0byBqdW1wIG92ZXIgdGhlbS4gIEZ1cnRoZXIsIHRoZXkgZG8gbm90IGludHJ1ZGUKLSAqIG9uIG91ciBjYWNoZSBvciB0bGIgZW50cmllcy4KLSAqLwotCi1zdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5IHsKLQl1bnNpZ25lZCBsb25nIGluc24sIGZpeHVwOwotfTsKLQotZXh0ZXJuIGludCBmaXh1cF9leGNlcHRpb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwotCi0vKgotICogVGhlc2UgYXJlIHRoZSBtYWluIHNpbmdsZS12YWx1ZSB0cmFuc2ZlciByb3V0aW5lcy4gIFRoZXkgYXV0b21hdGljYWxseQotICogdXNlIHRoZSByaWdodCBzaXplIGlmIHdlIGp1c3QgaGF2ZSB0aGUgcmlnaHQgcG9pbnRlciB0eXBlLgotICoKLSAqIFRoaXMgZ2V0cyBraW5kIG9mIHVnbHkuIFdlIHdhbnQgdG8gcmV0dXJuIF90d29fIHZhbHVlcyBpbiAiZ2V0X3VzZXIoKSIKLSAqIGFuZCB5ZXQgd2UgZG9uJ3Qgd2FudCB0byBkbyBhbnkgcG9pbnRlcnMsIGJlY2F1c2UgdGhhdCBpcyB0b28gbXVjaAotICogb2YgYSBwZXJmb3JtYW5jZSBpbXBhY3QuIFRodXMgd2UgaGF2ZSBhIGZldyByYXRoZXIgdWdseSBtYWNyb3MgaGVyZSwKLSAqIGFuZCBoaWRlIGFsbCB0aGUgdWdsaW5lc3MgZnJvbSB0aGUgdXNlci4KLSAqCi0gKiBUaGUgIl9feHh4IiB2ZXJzaW9ucyBvZiB0aGUgdXNlciBhY2Nlc3MgZnVuY3Rpb25zIGFyZSB2ZXJzaW9ucyB0aGF0Ci0gKiBkbyBub3QgdmVyaWZ5IHRoZSBhZGRyZXNzIHNwYWNlLCB0aGF0IG11c3QgaGF2ZSBiZWVuIGRvbmUgcHJldmlvdXNseQotICogd2l0aCBhIHNlcGFyYXRlICJhY2Nlc3Nfb2soKSIgY2FsbCAodGhpcyBpcyB1c2VkIHdoZW4gd2UgZG8gbXVsdGlwbGUKLSAqIGFjY2Vzc2VzIHRvIHRoZSBzYW1lIGFyZWEgb2YgdXNlciBtZW1vcnkpLgotICovCi0KLWV4dGVybiB2b2lkIF9fZ2V0X3VzZXJfMSh2b2lkKTsKLWV4dGVybiB2b2lkIF9fZ2V0X3VzZXJfMih2b2lkKTsKLWV4dGVybiB2b2lkIF9fZ2V0X3VzZXJfNCh2b2lkKTsKLQotI2RlZmluZSBfX2dldF91c2VyX3goc2l6ZSwgcmV0LCB4LCBwdHIpCSAgICAgIFwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19nZXRfdXNlcl8iICNzaXplIFwKLQkJICAgICA6Ij1hIiAocmV0KSwiPWQiICh4KSAgICAgXAotCQkgICAgIDoiMCIgKHB0cikpCi0KLQotLyogQ2FyZWZ1bDogd2UgaGF2ZSB0byBjYXN0IHRoZSByZXN1bHQgdG8gdGhlIHR5cGUgb2YgdGhlIHBvaW50ZXIKLSAqIGZvciBzaWduIHJlYXNvbnMgKi8KLQotLyoqCi0gKiBnZXRfdXNlcjogLSBHZXQgYSBzaW1wbGUgdmFyaWFibGUgZnJvbSB1c2VyIHNwYWNlLgotICogQHg6ICAgVmFyaWFibGUgdG8gc3RvcmUgcmVzdWx0LgotICogQHB0cjogU291cmNlIGFkZHJlc3MsIGluIHVzZXIgc3BhY2UuCi0gKgotICogQ29udGV4dDogVXNlciBjb250ZXh0IG9ubHkuICBUaGlzIGZ1bmN0aW9uIG1heSBzbGVlcC4KLSAqCi0gKiBUaGlzIG1hY3JvIGNvcGllcyBhIHNpbmdsZSBzaW1wbGUgdmFyaWFibGUgZnJvbSB1c2VyIHNwYWNlIHRvIGtlcm5lbAotICogc3BhY2UuICBJdCBzdXBwb3J0cyBzaW1wbGUgdHlwZXMgbGlrZSBjaGFyIGFuZCBpbnQsIGJ1dCBub3QgbGFyZ2VyCi0gKiBkYXRhIHR5cGVzIGxpa2Ugc3RydWN0dXJlcyBvciBhcnJheXMuCi0gKgotICogQHB0ciBtdXN0IGhhdmUgcG9pbnRlci10by1zaW1wbGUtdmFyaWFibGUgdHlwZSwgYW5kIHRoZSByZXN1bHQgb2YKLSAqIGRlcmVmZXJlbmNpbmcgQHB0ciBtdXN0IGJlIGFzc2lnbmFibGUgdG8gQHggd2l0aG91dCBhIGNhc3QuCi0gKgotICogUmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3MsIG9yIC1FRkFVTFQgb24gZXJyb3IuCi0gKiBPbiBlcnJvciwgdGhlIHZhcmlhYmxlIEB4IGlzIHNldCB0byB6ZXJvLgotICovCi0jZGVmaW5lIGdldF91c2VyKHgsIHB0cikJCQkJCQlcCi0oewkJCQkJCQkJCVwKLQlpbnQgX19yZXRfZ3U7CQkJCQkJCVwKLQl1bnNpZ25lZCBsb25nIF9fdmFsX2d1OwkJCQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKLQlzd2l0Y2ggKHNpemVvZigqKHB0cikpKSB7CQkJCQlcCi0JY2FzZSAxOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX3goMSwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgMjoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl94KDIsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDQ6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfeCg0LCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JZGVmYXVsdDoJCQkJCQkJXAotCQlfX2dldF91c2VyX3goWCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCX0JCQkJCQkJCVwKLQkoeCkgPSAoX190eXBlb2ZfXygqKHB0cikpKV9fdmFsX2d1OwkJCQlcCi0JX19yZXRfZ3U7CQkJCQkJCVwKLX0pCi0KLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfYmFkKHZvaWQpOwotCi0vKgotICogU3RyYW5nZSBtYWdpYyBjYWxsaW5nIGNvbnZlbnRpb246IHBvaW50ZXIgaW4gJWVjeCwKLSAqIHZhbHVlIGluICVlYXgoOiVlZHgpLCByZXR1cm4gdmFsdWUgaW4gJWVheCwgbm8gY2xvYmJlcnMuCi0gKi8KLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfMSh2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfMih2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfNCh2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfOCh2b2lkKTsKLQotI2RlZmluZSBfX3B1dF91c2VyXzEoeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXzEiIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICIwIiAoKHR5cGVvZigqKHB0cikpKSh4KSksICJjIiAocHRyKSkKLQotI2RlZmluZSBfX3B1dF91c2VyXzIoeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXzIiIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICIwIiAoKHR5cGVvZigqKHB0cikpKSh4KSksICJjIiAocHRyKSkKLQotI2RlZmluZSBfX3B1dF91c2VyXzQoeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXzQiIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICIwIiAoKHR5cGVvZigqKHB0cikpKSh4KSksICJjIiAocHRyKSkKLQotI2RlZmluZSBfX3B1dF91c2VyXzgoeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXzgiIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICJBIiAoKHR5cGVvZigqKHB0cikpKSh4KSksICJjIiAocHRyKSkKLQotI2RlZmluZSBfX3B1dF91c2VyX1goeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyX1giIDogIj1hIiAoX19yZXRfcHUpCVwKLQkJICAgICA6ICJjIiAocHRyKSkKLQotLyoqCi0gKiBwdXRfdXNlcjogLSBXcml0ZSBhIHNpbXBsZSB2YWx1ZSBpbnRvIHVzZXIgc3BhY2UuCi0gKiBAeDogICBWYWx1ZSB0byBjb3B5IHRvIHVzZXIgc3BhY2UuCi0gKiBAcHRyOiBEZXN0aW5hdGlvbiBhZGRyZXNzLCBpbiB1c2VyIHNwYWNlLgotICoKLSAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCi0gKgotICogVGhpcyBtYWNybyBjb3BpZXMgYSBzaW5nbGUgc2ltcGxlIHZhbHVlIGZyb20ga2VybmVsIHNwYWNlIHRvIHVzZXIKLSAqIHNwYWNlLiAgSXQgc3VwcG9ydHMgc2ltcGxlIHR5cGVzIGxpa2UgY2hhciBhbmQgaW50LCBidXQgbm90IGxhcmdlcgotICogZGF0YSB0eXBlcyBsaWtlIHN0cnVjdHVyZXMgb3IgYXJyYXlzLgotICoKLSAqIEBwdHIgbXVzdCBoYXZlIHBvaW50ZXItdG8tc2ltcGxlLXZhcmlhYmxlIHR5cGUsIGFuZCBAeCBtdXN0IGJlIGFzc2lnbmFibGUKLSAqIHRvIHRoZSByZXN1bHQgb2YgZGVyZWZlcmVuY2luZyBAcHRyLgotICoKLSAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgotICovCi0jaWZkZWYgQ09ORklHX1g4Nl9XUF9XT1JLU19PSwotCi0jZGVmaW5lIHB1dF91c2VyKHgsIHB0cikJCQkJCVwKLSh7CQkJCQkJCQlcCi0JaW50IF9fcmV0X3B1OwkJCQkJCVwKLQlfX3R5cGVvZl9fKCoocHRyKSkgX19wdV92YWw7CQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJXAotCV9fcHVfdmFsID0geDsJCQkJCQlcCi0Jc3dpdGNoIChzaXplb2YoKihwdHIpKSkgewkJCQlcCi0JY2FzZSAxOgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfMShfX3B1X3ZhbCwgcHRyKTsJCQlcCi0JCWJyZWFrOwkJCQkJCVwKLQljYXNlIDI6CQkJCQkJCVwKLQkJX19wdXRfdXNlcl8yKF9fcHVfdmFsLCBwdHIpOwkJCVwKLQkJYnJlYWs7CQkJCQkJXAotCWNhc2UgNDoJCQkJCQkJXAotCQlfX3B1dF91c2VyXzQoX19wdV92YWwsIHB0cik7CQkJXAotCQlicmVhazsJCQkJCQlcCi0JY2FzZSA4OgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfOChfX3B1X3ZhbCwgcHRyKTsJCQlcCi0JCWJyZWFrOwkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCVwKLQkJX19wdXRfdXNlcl9YKF9fcHVfdmFsLCBwdHIpOwkJCVwKLQkJYnJlYWs7CQkJCQkJXAotCX0JCQkJCQkJXAotCV9fcmV0X3B1OwkJCQkJCVwKLX0pCi0KLSNlbHNlCi0jZGVmaW5lIHB1dF91c2VyKHgsIHB0cikJCQkJCVwKLSh7CQkJCQkJCQlcCi0JaW50IF9fcmV0X3B1OwkJCQkJCVwKLQlfX3R5cGVvZl9fKCoocHRyKSlfX3B1c190bXAgPSB4OwkJCVwKLQlfX3JldF9wdSA9IDA7CQkJCQkJXAotCWlmICh1bmxpa2VseShfX2NvcHlfdG9fdXNlcl9sbChwdHIsICZfX3B1c190bXAsCQlcCi0JCQkJICAgICAgIHNpemVvZigqKHB0cikpKSAhPSAwKSkJXAotCQlfX3JldF9wdSA9IC1FRkFVTFQ7CQkJCVwKLQlfX3JldF9wdTsJCQkJCQlcCi19KQotCi0KLSNlbmRpZgotCi0vKioKLSAqIF9fZ2V0X3VzZXI6IC0gR2V0IGEgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZSwgd2l0aCBsZXNzIGNoZWNraW5nLgotICogQHg6ICAgVmFyaWFibGUgdG8gc3RvcmUgcmVzdWx0LgotICogQHB0cjogU291cmNlIGFkZHJlc3MsIGluIHVzZXIgc3BhY2UuCi0gKgotICogQ29udGV4dDogVXNlciBjb250ZXh0IG9ubHkuICBUaGlzIGZ1bmN0aW9uIG1heSBzbGVlcC4KLSAqCi0gKiBUaGlzIG1hY3JvIGNvcGllcyBhIHNpbmdsZSBzaW1wbGUgdmFyaWFibGUgZnJvbSB1c2VyIHNwYWNlIHRvIGtlcm5lbAotICogc3BhY2UuICBJdCBzdXBwb3J0cyBzaW1wbGUgdHlwZXMgbGlrZSBjaGFyIGFuZCBpbnQsIGJ1dCBub3QgbGFyZ2VyCi0gKiBkYXRhIHR5cGVzIGxpa2Ugc3RydWN0dXJlcyBvciBhcnJheXMuCi0gKgotICogQHB0ciBtdXN0IGhhdmUgcG9pbnRlci10by1zaW1wbGUtdmFyaWFibGUgdHlwZSwgYW5kIHRoZSByZXN1bHQgb2YKLSAqIGRlcmVmZXJlbmNpbmcgQHB0ciBtdXN0IGJlIGFzc2lnbmFibGUgdG8gQHggd2l0aG91dCBhIGNhc3QuCi0gKgotICogQ2FsbGVyIG11c3QgY2hlY2sgdGhlIHBvaW50ZXIgd2l0aCBhY2Nlc3Nfb2soKSBiZWZvcmUgY2FsbGluZyB0aGlzCi0gKiBmdW5jdGlvbi4KLSAqCi0gKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgb3IgLUVGQVVMVCBvbiBlcnJvci4KLSAqIE9uIGVycm9yLCB0aGUgdmFyaWFibGUgQHggaXMgc2V0IHRvIHplcm8uCi0gKi8KLSNkZWZpbmUgX19nZXRfdXNlcih4LCBwdHIpCQkJCVwKLQlfX2dldF91c2VyX25vY2hlY2soKHgpLCAocHRyKSwgc2l6ZW9mKCoocHRyKSkpCi0KLQotLyoqCi0gKiBfX3B1dF91c2VyOiAtIFdyaXRlIGEgc2ltcGxlIHZhbHVlIGludG8gdXNlciBzcGFjZSwgd2l0aCBsZXNzIGNoZWNraW5nLgotICogQHg6ICAgVmFsdWUgdG8gY29weSB0byB1c2VyIHNwYWNlLgotICogQHB0cjogRGVzdGluYXRpb24gYWRkcmVzcywgaW4gdXNlciBzcGFjZS4KLSAqCi0gKiBDb250ZXh0OiBVc2VyIGNvbnRleHQgb25seS4gIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLgotICoKLSAqIFRoaXMgbWFjcm8gY29waWVzIGEgc2luZ2xlIHNpbXBsZSB2YWx1ZSBmcm9tIGtlcm5lbCBzcGFjZSB0byB1c2VyCi0gKiBzcGFjZS4gIEl0IHN1cHBvcnRzIHNpbXBsZSB0eXBlcyBsaWtlIGNoYXIgYW5kIGludCwgYnV0IG5vdCBsYXJnZXIKLSAqIGRhdGEgdHlwZXMgbGlrZSBzdHJ1Y3R1cmVzIG9yIGFycmF5cy4KLSAqCi0gKiBAcHRyIG11c3QgaGF2ZSBwb2ludGVyLXRvLXNpbXBsZS12YXJpYWJsZSB0eXBlLCBhbmQgQHggbXVzdCBiZSBhc3NpZ25hYmxlCi0gKiB0byB0aGUgcmVzdWx0IG9mIGRlcmVmZXJlbmNpbmcgQHB0ci4KLSAqCi0gKiBDYWxsZXIgbXVzdCBjaGVjayB0aGUgcG9pbnRlciB3aXRoIGFjY2Vzc19vaygpIGJlZm9yZSBjYWxsaW5nIHRoaXMKLSAqIGZ1bmN0aW9uLgotICoKLSAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgotICovCi0jZGVmaW5lIF9fcHV0X3VzZXIoeCwgcHRyKQkJCQkJCVwKLQlfX3B1dF91c2VyX25vY2hlY2soKF9fdHlwZW9mX18oKihwdHIpKSkoeCksIChwdHIpLCBzaXplb2YoKihwdHIpKSkKLQotI2RlZmluZSBfX3B1dF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKQkJCVwKLSh7CQkJCQkJCQlcCi0JbG9uZyBfX3B1X2VycjsJCQkJCQlcCi0JX19wdXRfdXNlcl9zaXplKCh4KSwgKHB0ciksIChzaXplKSwgX19wdV9lcnIsIC1FRkFVTFQpOwlcCi0JX19wdV9lcnI7CQkJCQkJXAotfSkKLQotCi0jZGVmaW5lIF9fcHV0X3VzZXJfdTY0KHgsIGFkZHIsIGVycikJCQkJCVwKLQlhc20gdm9sYXRpbGUoIjE6CW1vdmwgJSVlYXgsMCglMilcbiIJCQlcCi0JCSAgICAgIjI6CW1vdmwgJSVlZHgsNCglMilcbiIJCQlcCi0JCSAgICAgIjM6XG4iCQkJCQkJXAotCQkgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG4iCQkJCVwKLQkJICAgICAiNDoJbW92bCAlMywlMFxuIgkJCQlcCi0JCSAgICAgIglqbXAgM2JcbiIJCQkJCVwKLQkJICAgICAiLnByZXZpb3VzXG4iCQkJCQlcCi0JCSAgICAgX0FTTV9FWFRBQkxFKDFiLCA0YikJCQkJXAotCQkgICAgIF9BU01fRVhUQUJMRSgyYiwgNGIpCQkJCVwKLQkJICAgICA6ICI9ciIgKGVycikJCQkJCVwKLQkJICAgICA6ICJBIiAoeCksICJyIiAoYWRkciksICJpIiAoLUVGQVVMVCksICIwIiAoZXJyKSkKLQotI2lmZGVmIENPTkZJR19YODZfV1BfV09SS1NfT0sKLQotI2RlZmluZSBfX3B1dF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwsIGVycnJldCkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCXJldHZhbCA9IDA7CQkJCQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKLQlzd2l0Y2ggKHNpemUpIHsJCQkJCQkJXAotCWNhc2UgMToJCQkJCQkJCVwKLQkJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJiIiwgImIiLCAiaXEiLCBlcnJyZXQpOwlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSAyOgkJCQkJCQkJXAotCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInciLCAidyIsICJpciIsIGVycnJldCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDQ6CQkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAibCIsICIiLCAgImlyIiwgZXJycmV0KTsJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgODoJCQkJCQkJCVwKLQkJX19wdXRfdXNlcl91NjQoKF9fdHlwZW9mX18oKnB0cikpKHgpLCBwdHIsIHJldHZhbCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYmFkKCk7CQkJCQlcCi0JfQkJCQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2Vsc2UKLQotI2RlZmluZSBfX3B1dF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwsIGVycnJldCkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCV9fdHlwZW9mX18oKihwdHIpKV9fcHVzX3RtcCA9IHg7CQkJCVwKLQlyZXR2YWwgPSAwOwkJCQkJCQlcCi0JCQkJCQkJCQlcCi0JaWYgKHVubGlrZWx5KF9fY29weV90b191c2VyX2xsKHB0ciwgJl9fcHVzX3RtcCwgc2l6ZSkgIT0gMCkpCVwKLQkJcmV0dmFsID0gZXJycmV0OwkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2VuZGlmCi1zdHJ1Y3QgX19sYXJnZV9zdHJ1Y3QgeyB1bnNpZ25lZCBsb25nIGJ1ZlsxMDBdOyB9OwotI2RlZmluZSBfX20oeCkgKCooc3RydWN0IF9fbGFyZ2Vfc3RydWN0IF9fdXNlciAqKSh4KSkKLQotLyoKLSAqIFRlbGwgZ2NjIHdlIHJlYWQgZnJvbSBtZW1vcnkgaW5zdGVhZCBvZiB3cml0aW5nOiB0aGlzIGlzIGJlY2F1c2UKLSAqIHdlIGRvIG5vdCB3cml0ZSB0byBhbnkgbWVtb3J5IGdjYyBrbm93cyBhYm91dCwgc28gdGhlcmUgYXJlIG5vCi0gKiBhbGlhc2luZyBpc3N1ZXMuCi0gKi8KLSNkZWZpbmUgX19wdXRfdXNlcl9hc20oeCwgYWRkciwgZXJyLCBpdHlwZSwgcnR5cGUsIGx0eXBlLCBlcnJyZXQpCVwKLQlhc20gdm9sYXRpbGUoIjE6CW1vdiJpdHlwZSIgJSJydHlwZSIxLCUyXG4iCQlcCi0JCSAgICAgIjI6XG4iCQkJCQkJXAotCQkgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG4iCQkJCVwKLQkJICAgICAiMzoJbW92bCAlMywlMFxuIgkJCQlcCi0JCSAgICAgIglqbXAgMmJcbiIJCQkJCVwKLQkJICAgICAiLnByZXZpb3VzXG4iCQkJCQlcCi0JCSAgICAgX0FTTV9FWFRBQkxFKDFiLCAzYikJCQkJXAotCQkgICAgIDogIj1yIihlcnIpCQkJCQlcCi0JCSAgICAgOiBsdHlwZSAoeCksICJtIiAoX19tKGFkZHIpKSwgImkiIChlcnJyZXQpLCAiMCIgKGVycikpCi0KLQotI2RlZmluZSBfX2dldF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKQkJCQlcCi0oewkJCQkJCQkJCVwKLQlsb25nIF9fZ3VfZXJyOwkJCQkJCQlcCi0JdW5zaWduZWQgbG9uZyBfX2d1X3ZhbDsJCQkJCQlcCi0JX19nZXRfdXNlcl9zaXplKF9fZ3VfdmFsLCAocHRyKSwgKHNpemUpLCBfX2d1X2VyciwgLUVGQVVMVCk7CVwKLQkoeCkgPSAoX190eXBlb2ZfXygqKHB0cikpKV9fZ3VfdmFsOwkJCQlcCi0JX19ndV9lcnI7CQkJCQkJCVwKLX0pCi0KLWV4dGVybiBsb25nIF9fZ2V0X3VzZXJfYmFkKHZvaWQpOwotCi0jZGVmaW5lIF9fZ2V0X3VzZXJfc2l6ZSh4LCBwdHIsIHNpemUsIHJldHZhbCwgZXJycmV0KQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JcmV0dmFsID0gMDsJCQkJCQkJXAotCV9fY2hrX3VzZXJfcHRyKHB0cik7CQkJCQkJXAotCXN3aXRjaCAoc2l6ZSkgewkJCQkJCQlcCi0JY2FzZSAxOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImIiLCAiYiIsICI9cSIsIGVycnJldCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDI6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAidyIsICJ3IiwgIj1yIiwgZXJycmV0KTsJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgNDoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJsIiwgIiIsICI9ciIsIGVycnJldCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCQlcCi0JCSh4KSA9IF9fZ2V0X3VzZXJfYmFkKCk7CQkJCQlcCi0JfQkJCQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBfX2dldF91c2VyX2FzbSh4LCBhZGRyLCBlcnIsIGl0eXBlLCBydHlwZSwgbHR5cGUsIGVycnJldCkJXAotCWFzbSB2b2xhdGlsZSgiMToJbW92Iml0eXBlIiAlMiwlInJ0eXBlIjFcbiIJCVwKLQkJICAgICAiMjpcbiIJCQkJCQlcCi0JCSAgICAgIi5zZWN0aW9uIC5maXh1cCxcImF4XCJcbiIJCQkJXAotCQkgICAgICIzOgltb3ZsICUzLCUwXG4iCQkJCVwKLQkJICAgICAiCXhvciJpdHlwZSIgJSJydHlwZSIxLCUicnR5cGUiMVxuIgkJXAotCQkgICAgICIJam1wIDJiXG4iCQkJCQlcCi0JCSAgICAgIi5wcmV2aW91c1xuIgkJCQkJXAotCQkgICAgIF9BU01fRVhUQUJMRSgxYiwgM2IpCQkJCVwKLQkJICAgICA6ICI9ciIgKGVyciksIGx0eXBlICh4KQkJCQlcCi0JCSAgICAgOiAibSIgKF9fbShhZGRyKSksICJpIiAoZXJycmV0KSwgIjAiIChlcnIpKQotCi0KIHVuc2lnbmVkIGxvbmcgX19tdXN0X2NoZWNrIF9fY29weV90b191c2VyX2xsCiAJCSh2b2lkIF9fdXNlciAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHVuc2lnbmVkIGxvbmcgbik7CiB1bnNpZ25lZCBsb25nIF9fbXVzdF9jaGVjayBfX2NvcHlfZnJvbV91c2VyX2xsCkBAIC01NzYsOCArMTU2LDYgQEAKIAlyZXR1cm4gX19jb3B5X2Zyb21fdXNlcl9sbCh0bywgZnJvbSwgbik7CiB9CiAKLSNkZWZpbmUgQVJDSF9IQVNfTk9DQUNIRV9VQUNDRVNTCi0KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgbG9uZyBfX2NvcHlfZnJvbV91c2VyX25vY2FjaGUodm9pZCAqdG8sCiAJCQkJY29uc3Qgdm9pZCBfX3VzZXIgKmZyb20sIHVuc2lnbmVkIGxvbmcgbikKIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzc182NC5oCmluZGV4IGI4YTJmNDMuLjUxNWQ0ZGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3NfNjQuaApAQCAtOSwyNjUgKzksNiBAQAogI2luY2x1ZGUgPGxpbnV4L3ByZWZldGNoLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KIAotI2RlZmluZSBWRVJJRllfUkVBRCAwCi0jZGVmaW5lIFZFUklGWV9XUklURSAxCi0KLS8qCi0gKiBUaGUgZnMgdmFsdWUgZGV0ZXJtaW5lcyB3aGV0aGVyIGFyZ3VtZW50IHZhbGlkaXR5IGNoZWNraW5nIHNob3VsZCBiZQotICogcGVyZm9ybWVkIG9yIG5vdC4gIElmIGdldF9mcygpID09IFVTRVJfRFMsIGNoZWNraW5nIGlzIHBlcmZvcm1lZCwgd2l0aAotICogZ2V0X2ZzKCkgPT0gS0VSTkVMX0RTLCBjaGVja2luZyBpcyBieXBhc3NlZC4KLSAqCi0gKiBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB0aGVzZSBtYWNyb3MgYXJlIGdyb3NzbHkgbWlzbmFtZWQuCi0gKi8KLQotI2RlZmluZSBNQUtFX01NX1NFRyhzKQkoKG1tX3NlZ21lbnRfdCkgeyAocykgfSkKLQotI2RlZmluZSBLRVJORUxfRFMJTUFLRV9NTV9TRUcoMHhGRkZGRkZGRkZGRkZGRkZGVUwpCi0jZGVmaW5lIFVTRVJfRFMJCU1BS0VfTU1fU0VHKFBBR0VfT0ZGU0VUKQotCi0jZGVmaW5lIGdldF9kcygpCShLRVJORUxfRFMpCi0jZGVmaW5lIGdldF9mcygpCShjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQpCi0jZGVmaW5lIHNldF9mcyh4KQkoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0ID0gKHgpKQotCi0jZGVmaW5lIHNlZ21lbnRfZXEoYSwgYikJKChhKS5zZWcgPT0gKGIpLnNlZykKLQotI2RlZmluZSBfX2FkZHJfb2soYWRkcikgKCEoKHVuc2lnbmVkIGxvbmcpKGFkZHIpICYJCQlcCi0JCQkgICAoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0LnNlZykpKQotCi0vKgotICogVWhodWgsIHRoaXMgbmVlZHMgNjUtYml0IGFyaXRobWV0aWMuIFdlIGhhdmUgYSBjYXJyeS4uCi0gKi8KLSNkZWZpbmUgX19yYW5nZV9ub3Rfb2soYWRkciwgc2l6ZSkJCQkJCVwKLSh7CQkJCQkJCQkJXAotCXVuc2lnbmVkIGxvbmcgZmxhZywgcm9rc3VtOwkJCQkJXAotCV9fY2hrX3VzZXJfcHRyKGFkZHIpOwkJCQkJCVwKLQlhc20oIiMgcmFuZ2Vfb2tcblxyIgkJCQkJCVwKLQkgICAgImFkZHEgJTMsJTEgOyBzYmJxICUwLCUwIDsgY21wcSAlMSwlNCA7IHNiYnEgJDAsJTAiCQlcCi0JICAgIDogIj0mciIgKGZsYWcpLCAiPXIiIChyb2tzdW0pCQkJCVwKLQkgICAgOiAiMSIgKGFkZHIpLCAiZyIgKChsb25nKShzaXplKSksCQkJCVwKLQkgICAgICAiZyIgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKTsJCVwKLQlmbGFnOwkJCQkJCQkJXAotfSkKLQotI2RlZmluZSBhY2Nlc3Nfb2sodHlwZSwgYWRkciwgc2l6ZSkgKF9fcmFuZ2Vfbm90X29rKGFkZHIsIHNpemUpID09IDApCi0KLS8qCi0gKiBUaGUgZXhjZXB0aW9uIHRhYmxlIGNvbnNpc3RzIG9mIHBhaXJzIG9mIGFkZHJlc3NlczogdGhlIGZpcnN0IGlzIHRoZQotICogYWRkcmVzcyBvZiBhbiBpbnN0cnVjdGlvbiB0aGF0IGlzIGFsbG93ZWQgdG8gZmF1bHQsIGFuZCB0aGUgc2Vjb25kIGlzCi0gKiB0aGUgYWRkcmVzcyBhdCB3aGljaCB0aGUgcHJvZ3JhbSBzaG91bGQgY29udGludWUuICBObyByZWdpc3RlcnMgYXJlCi0gKiBtb2RpZmllZCwgc28gaXQgaXMgZW50aXJlbHkgdXAgdG8gdGhlIGNvbnRpbnVhdGlvbiBjb2RlIHRvIGZpZ3VyZSBvdXQKLSAqIHdoYXQgdG8gZG8uCi0gKgotICogQWxsIHRoZSByb3V0aW5lcyBiZWxvdyB1c2UgYml0cyBvZiBmaXh1cCBjb2RlIHRoYXQgYXJlIG91dCBvZiBsaW5lCi0gKiB3aXRoIHRoZSBtYWluIGluc3RydWN0aW9uIHBhdGguICBUaGlzIG1lYW5zIHdoZW4gZXZlcnl0aGluZyBpcyB3ZWxsLAotICogd2UgZG9uJ3QgZXZlbiBoYXZlIHRvIGp1bXAgb3ZlciB0aGVtLiAgRnVydGhlciwgdGhleSBkbyBub3QgaW50cnVkZQotICogb24gb3VyIGNhY2hlIG9yIHRsYiBlbnRyaWVzLgotICovCi0KLXN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgewotCXVuc2lnbmVkIGxvbmcgaW5zbiwgZml4dXA7Ci19OwotCi1leHRlcm4gaW50IGZpeHVwX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Ci0KLSNkZWZpbmUgQVJDSF9IQVNfU0VBUkNIX0VYVEFCTEUKLQotLyoKLSAqIFRoZXNlIGFyZSB0aGUgbWFpbiBzaW5nbGUtdmFsdWUgdHJhbnNmZXIgcm91dGluZXMuICBUaGV5IGF1dG9tYXRpY2FsbHkKLSAqIHVzZSB0aGUgcmlnaHQgc2l6ZSBpZiB3ZSBqdXN0IGhhdmUgdGhlIHJpZ2h0IHBvaW50ZXIgdHlwZS4KLSAqCi0gKiBUaGlzIGdldHMga2luZCBvZiB1Z2x5LiBXZSB3YW50IHRvIHJldHVybiBfdHdvXyB2YWx1ZXMgaW4gImdldF91c2VyKCkiCi0gKiBhbmQgeWV0IHdlIGRvbid0IHdhbnQgdG8gZG8gYW55IHBvaW50ZXJzLCBiZWNhdXNlIHRoYXQgaXMgdG9vIG11Y2gKLSAqIG9mIGEgcGVyZm9ybWFuY2UgaW1wYWN0LiBUaHVzIHdlIGhhdmUgYSBmZXcgcmF0aGVyIHVnbHkgbWFjcm9zIGhlcmUsCi0gKiBhbmQgaGlkZSBhbGwgdGhlIHVnbGluZXNzIGZyb20gdGhlIHVzZXIuCi0gKgotICogVGhlICJfX3h4eCIgdmVyc2lvbnMgb2YgdGhlIHVzZXIgYWNjZXNzIGZ1bmN0aW9ucyBhcmUgdmVyc2lvbnMgdGhhdAotICogZG8gbm90IHZlcmlmeSB0aGUgYWRkcmVzcyBzcGFjZSwgdGhhdCBtdXN0IGhhdmUgYmVlbiBkb25lIHByZXZpb3VzbHkKLSAqIHdpdGggYSBzZXBhcmF0ZSAiYWNjZXNzX29rKCkiIGNhbGwgKHRoaXMgaXMgdXNlZCB3aGVuIHdlIGRvIG11bHRpcGxlCi0gKiBhY2Nlc3NlcyB0byB0aGUgc2FtZSBhcmVhIG9mIHVzZXIgbWVtb3J5KS4KLSAqLwotCi0jZGVmaW5lIF9fZ2V0X3VzZXJfeChzaXplLCByZXQsIHgsIHB0cikJCSAgICAgIFwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19nZXRfdXNlcl8iICNzaXplCSAgICAgIFwKLQkJICAgICA6ICI9YSIgKHJldCksIj1kIiAoeCkJICAgICAgXAotCQkgICAgIDogImMiIChwdHIpCQkgICAgICBcCi0JCSAgICAgOiAicjgiKQotCi0vKiBDYXJlZnVsOiB3ZSBoYXZlIHRvIGNhc3QgdGhlIHJlc3VsdCB0byB0aGUgdHlwZSBvZiB0aGUgcG9pbnRlcgotICogZm9yIHNpZ24gcmVhc29ucyAqLwotCi0jZGVmaW5lIGdldF91c2VyKHgsIHB0cikJCQkJCQlcCi0oewkJCQkJCQkJCVwKLQl1bnNpZ25lZCBsb25nIF9fdmFsX2d1OwkJCQkJCVwKLQlpbnQgX19yZXRfZ3U7CQkJCQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKLQlzd2l0Y2ggKHNpemVvZigqKHB0cikpKSB7CQkJCQlcCi0JY2FzZSAxOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX3goMSwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgMjoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl94KDIsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDQ6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfeCg0LCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA4OgkJCQkJCQkJXAotCQlfX2dldF91c2VyX3goOCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCWRlZmF1bHQ6CQkJCQkJCVwKLQkJX19nZXRfdXNlcl9iYWQoKTsJCQkJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQl9CQkJCQkJCQlcCi0JKHgpID0gKF9fZm9yY2UgdHlwZW9mKCoocHRyKSkpX192YWxfZ3U7CQkJCVwKLQlfX3JldF9ndTsJCQkJCQkJXAotfSkKLQotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl8xKHZvaWQpOwotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl8yKHZvaWQpOwotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl80KHZvaWQpOwotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl84KHZvaWQpOwotZXh0ZXJuIHZvaWQgX19wdXRfdXNlcl9iYWQodm9pZCk7Ci0KLSNkZWZpbmUgX19wdXRfdXNlcl94KHNpemUsIHJldCwgeCwgcHRyKQkJCQkJXAotCWFzbSB2b2xhdGlsZSgiY2FsbCBfX3B1dF91c2VyXyIgI3NpemUJCQkJXAotCQkgICAgIDoiPWEiIChyZXQpCQkJCQlcCi0JCSAgICAgOiJjIiAocHRyKSwiZCIgKHgpCQkJCQlcCi0JCSAgICAgOiJyOCIpCi0KLSNkZWZpbmUgcHV0X3VzZXIoeCwgcHRyKQkJCQkJCVwKLQlfX3B1dF91c2VyX2NoZWNrKChfX3R5cGVvZl9fKCoocHRyKSkpKHgpLCAocHRyKSwgc2l6ZW9mKCoocHRyKSkpCi0KLSNkZWZpbmUgX19nZXRfdXNlcih4LCBwdHIpCQkJCQkJXAotCV9fZ2V0X3VzZXJfbm9jaGVjaygoeCksIChwdHIpLCBzaXplb2YoKihwdHIpKSkKLSNkZWZpbmUgX19wdXRfdXNlcih4LCBwdHIpCQkJCQkJXAotCV9fcHV0X3VzZXJfbm9jaGVjaygoX190eXBlb2ZfXygqKHB0cikpKSh4KSwgKHB0ciksIHNpemVvZigqKHB0cikpKQotCi0jZGVmaW5lIF9fZ2V0X3VzZXJfdW5hbGlnbmVkIF9fZ2V0X3VzZXIKLSNkZWZpbmUgX19wdXRfdXNlcl91bmFsaWduZWQgX19wdXRfdXNlcgotCi0jZGVmaW5lIF9fcHV0X3VzZXJfbm9jaGVjayh4LCBwdHIsIHNpemUpCQlcCi0oewkJCQkJCQlcCi0JaW50IF9fcHVfZXJyOwkJCQkJXAotCV9fcHV0X3VzZXJfc2l6ZSgoeCksIChwdHIpLCAoc2l6ZSksIF9fcHVfZXJyKTsJXAotCV9fcHVfZXJyOwkJCQkJXAotfSkKLQotCi0jZGVmaW5lIF9fcHV0X3VzZXJfY2hlY2soeCwgcHRyLCBzaXplKQkJCQlcCi0oewkJCQkJCQkJXAotCWludCBfX3B1X2VycjsJCQkJCQlcCi0JdHlwZW9mKCoocHRyKSkgX191c2VyICpfX3B1X2FkZHIgPSAocHRyKTsJCVwKLQlzd2l0Y2ggKHNpemUpIHsJCQkJCQlcCi0JY2FzZSAxOgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfeCgxLCBfX3B1X2VyciwgeCwgX19wdV9hZGRyKTsJXAotCQlicmVhazsJCQkJCQlcCi0JY2FzZSAyOgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfeCgyLCBfX3B1X2VyciwgeCwgX19wdV9hZGRyKTsJXAotCQlicmVhazsJCQkJCQlcCi0JY2FzZSA0OgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfeCg0LCBfX3B1X2VyciwgeCwgX19wdV9hZGRyKTsJXAotCQlicmVhazsJCQkJCQlcCi0JY2FzZSA4OgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfeCg4LCBfX3B1X2VyciwgeCwgX19wdV9hZGRyKTsJXAotCQlicmVhazsJCQkJCQlcCi0JZGVmYXVsdDoJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYmFkKCk7CQkJCVwKLQl9CQkJCQkJCVwKLQlfX3B1X2VycjsJCQkJCQlcCi19KQotCi0jZGVmaW5lIF9fcHV0X3VzZXJfc2l6ZSh4LCBwdHIsIHNpemUsIHJldHZhbCkJCQkJXAotZG8gewkJCQkJCQkJCVwKLQlyZXR2YWwgPSAwOwkJCQkJCQlcCi0JX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCi0Jc3dpdGNoIChzaXplKSB7CQkJCQkJCVwKLQljYXNlIDE6CQkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAiYiIsICJiIiwgImlxIiwgLUVGQVVMVCk7XAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgMjoJCQkJCQkJCVwKLQkJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJ3IiwgInciLCAiaXIiLCAtRUZBVUxUKTtcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA0OgkJCQkJCQkJXAotCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImwiLCAiayIsICJpciIsIC1FRkFVTFQpO1wKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDg6CQkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAicSIsICIiLCAiWnIiLCAtRUZBVUxUKTsJXAotCQlicmVhazsJCQkJCQkJXAotCWRlZmF1bHQ6CQkJCQkJCVwKLQkJX19wdXRfdXNlcl9iYWQoKTsJCQkJCVwKLQl9CQkJCQkJCQlcCi19IHdoaWxlICgwKQotCi0vKiBGSVhNRTogdGhpcyBoYWNrIGlzIGRlZmluaXRlbHkgd3JvbmcgLUFLICovCi1zdHJ1Y3QgX19sYXJnZV9zdHJ1Y3QgeyB1bnNpZ25lZCBsb25nIGJ1ZlsxMDBdOyB9OwotI2RlZmluZSBfX20oeCkgKCooc3RydWN0IF9fbGFyZ2Vfc3RydWN0IF9fdXNlciAqKSh4KSkKLQotLyoKLSAqIFRlbGwgZ2NjIHdlIHJlYWQgZnJvbSBtZW1vcnkgaW5zdGVhZCBvZiB3cml0aW5nOiB0aGlzIGlzIGJlY2F1c2UKLSAqIHdlIGRvIG5vdCB3cml0ZSB0byBhbnkgbWVtb3J5IGdjYyBrbm93cyBhYm91dCwgc28gdGhlcmUgYXJlIG5vCi0gKiBhbGlhc2luZyBpc3N1ZXMuCi0gKi8KLSNkZWZpbmUgX19wdXRfdXNlcl9hc20oeCwgYWRkciwgZXJyLCBpdHlwZSwgcnR5cGUsIGx0eXBlLCBlcnJubykJXAotCWFzbSB2b2xhdGlsZSgiMToJbW92Iml0eXBlIiAlInJ0eXBlIjEsJTJcbiIJCVwKLQkJICAgICAiMjpcbiIJCQkJCQlcCi0JCSAgICAgIi5zZWN0aW9uIC5maXh1cCwgXCJheFwiXG4iCQkJXAotCQkgICAgICIzOgltb3YgJTMsJTBcbiIJCQkJXAotCQkgICAgICIJam1wIDJiXG4iCQkJCQlcCi0JCSAgICAgIi5wcmV2aW91c1xuIgkJCQkJXAotCQkgICAgIF9BU01fRVhUQUJMRSgxYiwgM2IpCQkJCVwKLQkJICAgICA6ICI9ciIoZXJyKQkJCQkJXAotCQkgICAgIDogbHR5cGUgKHgpLCAibSIgKF9fbShhZGRyKSksICJpIiAoZXJybm8pLCAiMCIgKGVycikpCi0KLQotI2RlZmluZSBfX2dldF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKQkJCVwKLSh7CQkJCQkJCQlcCi0JaW50IF9fZ3VfZXJyOwkJCQkJCVwKLQl1bnNpZ25lZCBsb25nIF9fZ3VfdmFsOwkJCQkJXAotCV9fZ2V0X3VzZXJfc2l6ZShfX2d1X3ZhbCwgKHB0ciksIChzaXplKSwgX19ndV9lcnIpOwlcCi0JKHgpID0gKF9fZm9yY2UgdHlwZW9mKCoocHRyKSkpX19ndV92YWw7CQkJXAotCV9fZ3VfZXJyOwkJCQkJCVwKLX0pCi0KLWV4dGVybiBpbnQgX19nZXRfdXNlcl8xKHZvaWQpOwotZXh0ZXJuIGludCBfX2dldF91c2VyXzIodm9pZCk7Ci1leHRlcm4gaW50IF9fZ2V0X3VzZXJfNCh2b2lkKTsKLWV4dGVybiBpbnQgX19nZXRfdXNlcl84KHZvaWQpOwotZXh0ZXJuIGludCBfX2dldF91c2VyX2JhZCh2b2lkKTsKLQotI2RlZmluZSBfX2dldF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwpCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JcmV0dmFsID0gMDsJCQkJCQkJXAotCV9fY2hrX3VzZXJfcHRyKHB0cik7CQkJCQkJXAotCXN3aXRjaCAoc2l6ZSkgewkJCQkJCQlcCi0JY2FzZSAxOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImIiLCAiYiIsICI9cSIsIC1FRkFVTFQpO1wKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDI6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAidyIsICJ3IiwgIj1yIiwgLUVGQVVMVCk7XAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgNDoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJsIiwgImsiLCAiPXIiLCAtRUZBVUxUKTtcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA4OgkJCQkJCQkJXAotCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInEiLCAiIiwgIj1yIiwgLUVGQVVMVCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCQlcCi0JCSh4KSA9IF9fZ2V0X3VzZXJfYmFkKCk7CQkJCQlcCi0JfQkJCQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBfX2dldF91c2VyX2FzbSh4LCBhZGRyLCBlcnIsIGl0eXBlLCBydHlwZSwgbHR5cGUsIGVycm5vKQlcCi0JYXNtIHZvbGF0aWxlKCIxOgltb3YiaXR5cGUiICUyLCUicnR5cGUiMVxuIgkJXAotCQkgICAgICIyOlxuIgkJCQkJCVwKLQkJICAgICAiLnNlY3Rpb24gLmZpeHVwLCBcImF4XCJcbiIJCQlcCi0JCSAgICAgIjM6CW1vdiAlMywlMFxuIgkJCQlcCi0JCSAgICAgIgl4b3IiaXR5cGUiICUicnR5cGUiMSwlInJ0eXBlIjFcbiIJCVwKLQkJICAgICAiCWptcCAyYlxuIgkJCQkJXAotCQkgICAgICIucHJldmlvdXNcbiIJCQkJCVwKLQkJICAgICBfQVNNX0VYVEFCTEUoMWIsIDNiKQkJCQlcCi0JCSAgICAgOiAiPXIiIChlcnIpLCBsdHlwZSAoeCkJCQkJXAotCQkgICAgIDogIm0iIChfX20oYWRkcikpLCAiaSIoZXJybm8pLCAiMCIoZXJyKSkKLQogLyoKICAqIENvcHkgVG8vRnJvbSBVc2Vyc3BhY2UKICAqLwpAQCAtNDM3LDcgKzE3OCw2IEBACiAJcmV0dXJuIGNvcHlfdXNlcl9nZW5lcmljKChfX2ZvcmNlIHZvaWQgKilkc3QsIHNyYywgc2l6ZSk7CiB9CiAKLSNkZWZpbmUgQVJDSF9IQVNfTk9DQUNIRV9VQUNDRVNTIDEKIGV4dGVybiBsb25nIF9fY29weV91c2VyX25vY2FjaGUodm9pZCAqZHN0LCBjb25zdCB2b2lkIF9fdXNlciAqc3JjLAogCQkJCXVuc2lnbmVkIHNpemUsIGludCB6ZXJvcmVzdCk7CiAKQEAgLTQ1NSw0ICsxOTUsNyBAQAogCXJldHVybiBfX2NvcHlfdXNlcl9ub2NhY2hlKGRzdCwgc3JjLCBzaXplLCAwKTsKIH0KIAordW5zaWduZWQgbG9uZworY29weV91c2VyX2hhbmRsZV90YWlsKGNoYXIgKnRvLCBjaGFyICpmcm9tLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIHplcm9yZXN0KTsKKwogI2VuZGlmIC8qIF9fWDg2XzY0X1VBQ0NFU1NfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3VuaXN0ZF82NC5oIGIvaW5jbHVkZS9hc20teDg2L3VuaXN0ZF82NC5oCmluZGV4IGZlMjZlMzYuLjljMWE0YTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni91bmlzdGRfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdW5pc3RkXzY0LmgKQEAgLTI5MCw3ICsyOTAsNyBAQAogI2RlZmluZSBfX05SX3J0X3NpZ3F1ZXVlaW5mbwkJCTEyOQogX19TWVNDQUxMKF9fTlJfcnRfc2lncXVldWVpbmZvLCBzeXNfcnRfc2lncXVldWVpbmZvKQogI2RlZmluZSBfX05SX3J0X3NpZ3N1c3BlbmQJCQkxMzAKLV9fU1lTQ0FMTChfX05SX3J0X3NpZ3N1c3BlbmQsIHN0dWJfcnRfc2lnc3VzcGVuZCkKK19fU1lTQ0FMTChfX05SX3J0X3NpZ3N1c3BlbmQsIHN5c19ydF9zaWdzdXNwZW5kKQogI2RlZmluZSBfX05SX3NpZ2FsdHN0YWNrCQkJMTMxCiBfX1NZU0NBTEwoX19OUl9zaWdhbHRzdGFjaywgc3R1Yl9zaWdhbHRzdGFjaykKICNkZWZpbmUgX19OUl91dGltZQkJCQkxMzIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni91di91dl9iYXUuaCBiL2luY2x1ZGUvYXNtLXg4Ni91di91dl9iYXUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWFjMGRmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20teDg2L3V2L3V2X2JhdS5oCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogVGhpcyBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UuICBTZWUgdGhlIGZpbGUgIkNPUFlJTkciIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIGFyY2hpdmUKKyAqIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogU0dJIFVWIEJyb2FkY2FzdCBBc3Npc3QgVW5pdCBkZWZpbml0aW9ucworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9YODZfVVZfQkFVX18KKyNkZWZpbmUgX19BU01fWDg2X1VWX0JBVV9fCisKKyNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KKyNkZWZpbmUgQklUU1BFUkJZVEUgOAorCisvKgorICogQnJvYWRjYXN0IEFzc2lzdCBVbml0IG1lc3NhZ2luZyBzdHJ1Y3R1cmVzCisgKgorICogU2VsZWN0aXZlIEJyb2FkY2FzdCBhY3RpdmF0aW9ucyBhcmUgaW5kdWNlZCBieSBzb2Z0d2FyZSBhY3Rpb24KKyAqIHNwZWNpZnlpbmcgYSBwYXJ0aWN1bGFyIDgtZGVzY3JpcHRvciAic2V0IiB2aWEgYSA2LWJpdCBpbmRleCB3cml0dGVuCisgKiB0byBhbiBNTVIuCisgKiBUaHVzIHRoZXJlIGFyZSA2NCB1bmlxdWUgNTEyLWJ5dGUgc2V0cyBvZiBTQiBkZXNjcmlwdG9ycyAtIG9uZSBzZXQgZm9yCisgKiBlYWNoIDYtYml0IGluZGV4IHZhbHVlLiBUaGVzZSBkZXNjcmlwdG9yIHNldHMgYXJlIG1hcHBlZCBpbiBzZXF1ZW5jZQorICogc3RhcnRpbmcgd2l0aCBzZXQgMCBsb2NhdGVkIGF0IHRoZSBhZGRyZXNzIHNwZWNpZmllZCBpbiB0aGUKKyAqIEJBVV9TQl9ERVNDUklQVE9SX0JBU0UgcmVnaXN0ZXIsIHNldCAxIGlzIGxvY2F0ZWQgYXQgQkFTRSArIDUxMiwKKyAqIHNldCAyIGlzIGF0IEJBU0UgKyAyKjUxMiwgc2V0IDMgYXQgQkFTRSArIDMqNTEyLCBhbmQgc28gb24uCisgKgorICogV2Ugd2lsbCB1c2UgMzEgc2V0cywgb25lIGZvciBzZW5kaW5nIEJBVSBtZXNzYWdlcyBmcm9tIGVhY2ggb2YgdGhlIDMyCisgKiBjcHUncyBvbiB0aGUgbm9kZS4KKyAqCisgKiBUTEIgc2hvb3Rkb3duIHdpbGwgdXNlIHRoZSBmaXJzdCBvZiB0aGUgOCBkZXNjcmlwdG9ycyBvZiBlYWNoIHNldC4KKyAqIEVhY2ggb2YgdGhlIGRlc2NyaXB0b3JzIGlzIDY0IGJ5dGVzIGluIHNpemUgKDgqNjQgPSA1MTIgYnl0ZXMgaW4gYSBzZXQpLgorICovCisKKyNkZWZpbmUgVVZfSVRFTVNfUEVSX0RFU0NSSVBUT1IJCTgKKyNkZWZpbmUgVVZfQ1BVU19QRVJfQUNUX1NUQVRVUwkJMzIKKyNkZWZpbmUgVVZfQUNUX1NUQVRVU19NQVNLCQkweDMKKyNkZWZpbmUgVVZfQUNUX1NUQVRVU19TSVpFCQkyCisjZGVmaW5lIFVWX0FDVElWQVRJT05fREVTQ1JJUFRPUl9TSVpFCTMyCisjZGVmaW5lIFVWX0RJU1RSSUJVVElPTl9TSVpFCQkyNTYKKyNkZWZpbmUgVVZfU1dfQUNLX05QRU5ESU5HCQk4CisjZGVmaW5lIFVWX0JBVV9NRVNTQUdFCQkJMjAwCisvKgorICogTWVzc2FnaW5nIGlycTsgc2VlIGlycV82NC5oIGFuZCBpbmNsdWRlL2FzbS14ODYvaHdfaXJxXzY0LmgKKyAqIFRvIGJlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBpbiB0aGUgZnV0dXJlCisgKi8KKyNkZWZpbmUgVVZfTkVUX0VORFBPSU5UX0lOVEQJCTB4MzgKKyNkZWZpbmUgVVZfREVTQ19CQVNFX1BOT0RFX1NISUZUCTQ5CisjZGVmaW5lIFVWX1BBWUxPQURRX1BOT0RFX1NISUZUCQk0OQorI2RlZmluZSBVVl9QVENfQkFTRU5BTUUJCQkic2dpX3V2L3B0Y19zdGF0aXN0aWNzIgorI2RlZmluZSB1dl9waHlzbm9kZWFkZHIoeCkJCSgoX19wYSgodW5zaWduZWQgbG9uZykoeCkpICYgdXZfbW1hc2spKQorCisvKgorICogYml0cyBpbiBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzAvMQorICovCisjZGVmaW5lIERFU0NfU1RBVFVTX0lETEUJCTAKKyNkZWZpbmUgREVTQ19TVEFUVVNfQUNUSVZFCQkxCisjZGVmaW5lIERFU0NfU1RBVFVTX0RFU1RJTkFUSU9OX1RJTUVPVVQJMgorI2RlZmluZSBERVNDX1NUQVRVU19TT1VSQ0VfVElNRU9VVAkzCisKKy8qCisgKiBzb3VyY2Ugc2lkZSB0aHJlc2hob2xkcyBhdCB3aGljaCBtZXNzYWdlIHJldHJpZXMgcHJpbnQgYSB3YXJuaW5nCisgKi8KKyNkZWZpbmUgU09VUkNFX1RJTUVPVVRfTElNSVQJCTIwCisjZGVmaW5lIERFU1RJTkFUSU9OX1RJTUVPVVRfTElNSVQJMjAKKworLyoKKyAqIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBkZXN0aW5hdGlvbiBzaWRlIHBheWxvYWQgcXVldWUKKyAqLworI2RlZmluZSBERVNUX1FfU0laRQkJCTE3CisvKgorICogbnVtYmVyIG9mIGRlc3RpbmF0aW9uIHNpZGUgc29mdHdhcmUgYWNrIHJlc291cmNlcworICovCisjZGVmaW5lIERFU1RfTlVNX1JFU09VUkNFUwkJOAorI2RlZmluZSBNQVhfQ1BVU19QRVJfTk9ERQkJMzIKKy8qCisgKiBjb21wbGV0aW9uIHN0YXR1c2VzIGZvciBzZW5kaW5nIGEgVExCIGZsdXNoIG1lc3NhZ2UKKyAqLworI2RlZmluZQlGTFVTSF9SRVRSWQkJCTEKKyNkZWZpbmUJRkxVU0hfR0lWRVVQCQkJMgorI2RlZmluZQlGTFVTSF9DT01QTEVURQkJCTMKKworLyoKKyAqIERpc3RyaWJ1dGlvbjogMzIgYnl0ZXMgKDI1NiBiaXRzKSAoYnl0ZXMgMC0weDFmIG9mIGRlc2NyaXB0b3IpCisgKiBJZiB0aGUgJ211bHRpbGV2ZWwnIGZsYWcgaW4gdGhlIGhlYWRlciBwb3J0aW9uIG9mIHRoZSBkZXNjcmlwdG9yCisgKiBoYXMgYmVlbiBzZXQgdG8gMCwgdGhlbiBlbmRwb2ludCBtdWx0aS11bmljYXN0IG1vZGUgaXMgc2VsZWN0ZWQuCisgKiBUaGUgZGlzdHJpYnV0aW9uIHNwZWNpZmljYXRpb24gKDMyIGJ5dGVzKSBpcyBpbnRlcnByZXRlZCBhcyBhIDI1Ni1iaXQKKyAqIGRpc3RyaWJ1dGlvbiB2ZWN0b3IuIEFkamFjZW50IGJpdHMgY29ycmVzcG9uZCB0byBjb25zZWN1dGl2ZSBldmVuIG51bWJlcmVkCisgKiBub2RlSURzLiBUaGUgcmVzdWx0IG9mIGFkZGluZyB0aGUgaW5kZXggb2YgYSBnaXZlbiBiaXQgdG8gdGhlIDE1LWJpdAorICogJ2Jhc2VfZGVzdF9ub2RlaWQnIGZpZWxkIG9mIHRoZSBoZWFkZXIgY29ycmVzcG9uZHMgdG8gdGhlCisgKiBkZXN0aW5hdGlvbiBub2RlSUQgYXNzb2NpYXRlZCB3aXRoIHRoYXQgc3BlY2lmaWVkIGJpdC4KKyAqLworc3RydWN0IGJhdV90YXJnZXRfbm9kZW1hc2sgeworCXVuc2lnbmVkIGxvbmcgYml0c1tCSVRTX1RPX0xPTkdTKDI1NildOworfTsKKworLyoKKyAqIG1hc2sgb2YgY3B1J3Mgb24gYSBub2RlCisgKiAoZHVyaW5nIGluaXRpYWxpemF0aW9uIHdlIG5lZWQgdG8gY2hlY2sgdGhhdCB1bnNpZ25lZCBsb25nIGhhcworICogIGVub3VnaCBiaXRzIGZvciBtYXguIGNwdSdzIHBlciBub2RlKQorICovCitzdHJ1Y3QgYmF1X2xvY2FsX2NwdW1hc2sgeworCXVuc2lnbmVkIGxvbmcgYml0czsKK307CisKKy8qCisgKiBQYXlsb2FkOiAxNiBieXRlcyAoMTI4IGJpdHMpIChieXRlcyAweDIwLTB4MmYgb2YgZGVzY3JpcHRvcikKKyAqIG9ubHkgMTIgYnl0ZXMgKDk2IGJpdHMpIG9mIHRoZSBwYXlsb2FkIGFyZWEgYXJlIHVzYWJsZS4KKyAqIEFuIGFkZGl0aW9uYWwgMyBieXRlcyAoYml0cyAyNzo0KSBvZiB0aGUgaGVhZGVyIGFkZHJlc3MgYXJlIGNhcnJpZWQKKyAqIHRvIHRoZSBuZXh0IGJ5dGVzIG9mIHRoZSBkZXN0aW5hdGlvbiBwYXlsb2FkIHF1ZXVlLgorICogQW5kIGFuIGFkZGl0aW9uYWwgMiBieXRlcyBvZiB0aGUgaGVhZGVyIFN1cHBsX0EgZmllbGQgYXJlIGFsc28KKyAqIGNhcnJpZWQgdG8gdGhlIGRlc3RpbmF0aW9uIHBheWxvYWQgcXVldWUuCisgKiBCdXQgdGhlIGZpcnN0IGJ5dGUgb2YgdGhlIFN1cHBsX0EgYmVjb21lcyBiaXRzIDEyNzoxMjAgKHRoZSAxNnRoIGJ5dGUpCisgKiBvZiB0aGUgZGVzdGluYXRpb24gcGF5bG9hZCBxdWV1ZSwgd2hpY2ggaXMgd3JpdHRlbiBieSB0aGUgaGFyZHdhcmUKKyAqIHdpdGggdGhlIHMvdyBhY2sgcmVzb3VyY2UgYml0IHZlY3Rvci4KKyAqIFsgZWZmZWN0aXZlIG1lc3NhZ2UgY29udGVudHMgKDE2IGJ5dGVzICgxMjggYml0cykgbWF4aW11bSksIG5vdCBjb3VudGluZworICogICB0aGUgcy93IGFjayBiaXQgdmVjdG9yICBdCisgKi8KKworLyoKKyAqIFRoZSBwYXlsb2FkIGlzIHNvZnR3YXJlLWRlZmluZWQgZm9yIElOVEQgdHJhbnNhY3Rpb25zCisgKi8KK3N0cnVjdCBiYXVfbXNnX3BheWxvYWQgeworCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsJCS8qIHNpZ25pZmllcyBhIHBhZ2Ugb3IgYWxsIFRMQidzCisJCQkJCQlvZiB0aGUgY3B1ICovCisJLyogNjQgYml0cyAqLworCXVuc2lnbmVkIHNob3J0IHNlbmRpbmdfY3B1OwkvKiBmaWxsZWQgaW4gYnkgc2VuZGVyICovCisJLyogMTYgYml0cyAqLworCXVuc2lnbmVkIHNob3J0IGFja25vd2xlZGdlX2NvdW50Oy8qIGZpbGxlZCBpbiBieSBkZXN0aW5hdGlvbiAqLworCS8qIDE2IGJpdHMgKi8KKwl1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQxOjMyOwkvKiBub3QgdXNhYmxlICovCit9OworCisKKy8qCisgKiBNZXNzYWdlIGhlYWRlcjogIDE2IGJ5dGVzICgxMjggYml0cykgKGJ5dGVzIDB4MzAtMHgzZiBvZiBkZXNjcmlwdG9yKQorICogc2VlIHRhYmxlIDQuMi4zLjAuMSBpbiBicm9hY2FzdF9hc3Npc3Qgc3BlYy4KKyAqLworc3RydWN0IGJhdV9tc2dfaGVhZGVyIHsKKwlpbnQgZGVzdF9zdWJub2RlaWQ6NjsJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0cyA1OjAgKi8KKwlpbnQgYmFzZV9kZXN0X25vZGVpZDoxNTsgLyogbmFzaWQ+PjEgKHBub2RlKSBvZiBmaXJzdCBiaXQgaW4gbm9kZV9tYXAgKi8KKwkvKiBiaXRzIDIwOjYgKi8KKwlpbnQgY29tbWFuZDo4OwkJLyogbWVzc2FnZSB0eXBlICovCisJLyogYml0cyAyODoyMSAqLworCQkJCS8qIDB4Mzg6IFNOM25ldCBFbmRQb2ludCBNZXNzYWdlICovCisJaW50IHJzdmRfMTozOwkJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0cyAzMToyOSAqLworCQkJCS8qIGludCB3aWxsIGFsaWduIG9uIDMyIGJpdHMgKi8KKwlpbnQgcnN2ZF8yOjk7CQkvKiBtdXN0IGJlIHplcm8gKi8KKwkvKiBiaXRzIDQwOjMyICovCisJCQkJLyogU3VwcGxfQSBpcyA1Ni00MSAqLworCWludCBwYXlsb2FkXzJhOjg7CS8qIGJlY29tZXMgYnl0ZSAxNiBvZiBtc2cgKi8KKwkvKiBiaXRzIDQ4OjQxICovCS8qIG5vdCBjdXJyZW50bHkgdXNpbmcgKi8KKwlpbnQgcGF5bG9hZF8yYjo4OwkvKiBiZWNvbWVzIGJ5dGUgMTcgb2YgbXNnICovCisJLyogYml0cyA1Njo0OSAqLwkvKiBub3QgY3VycmVudGx5IHVzaW5nICovCisJCQkJLyogQWRkcmVzcyBmaWVsZCAoOTY6NTcpIGlzIG5ldmVyIHVzZWQgYXMgYW4KKwkJCQkgICBhZGRyZXNzICh0aGVzZSBhcmUgYWRkcmVzcyBiaXRzIDQyOjMpICovCisJaW50IHJzdmRfMzoxOwkJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0IDU3ICovCisJCQkJLyogYWRkcmVzcyBiaXRzIDI3OjQgYXJlIHBheWxvYWQgKi8KKwkJCQkvKiB0aGVzZSAyNCBiaXRzIGJlY29tZSBieXRlcyAxMi0xNCBvZiBtc2cgKi8KKwlpbnQgcmVwbGllZF90bzoxOwkvKiBzZW50IGFzIDAgYnkgdGhlIHNvdXJjZSB0byBieXRlIDEyICovCisJLyogYml0IDU4ICovCisKKwlpbnQgcGF5bG9hZF8xYTo1OwkvKiBub3QgY3VycmVudGx5IHVzZWQgKi8KKwkvKiBiaXRzIDYzOjU5ICovCisJaW50IHBheWxvYWRfMWI6ODsJLyogbm90IGN1cnJlbnRseSB1c2VkICovCisJLyogYml0cyA3MTo2NCAqLworCWludCBwYXlsb2FkXzFjOjg7CS8qIG5vdCBjdXJyZW50bHkgdXNlZCAqLworCS8qIGJpdHMgNzk6NzIgKi8KKwlpbnQgcGF5bG9hZF8xZDoyOwkvKiBub3QgY3VycmVudGx5IHVzZWQgKi8KKwkvKiBiaXRzIDgxOjgwICovCisKKwlpbnQgcnN2ZF80Ojc7CQkvKiBtdXN0IGJlIHplcm8gKi8KKwkvKiBiaXRzIDg4OjgyICovCisJaW50IHN3X2Fja19mbGFnOjE7CS8qIHNvZnR3YXJlIGFja25vd2xlZGdlIGZsYWcgKi8KKwkvKiBiaXQgODkgKi8KKwkJCQkvKiBJTlREIHRyYXNhY3Rpb25zIGF0IGRlc3RpbmF0aW9uIGFyZSB0bworCQkJCSAgIHdhaXQgZm9yIHNvZnR3YXJlIGFja25vd2xlZGdlICovCisJaW50IHJzdmRfNTo2OwkJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0cyA5NTo5MCAqLworCWludCByc3ZkXzY6NTsJCS8qIG11c3QgYmUgemVybyAqLworCS8qIGJpdHMgMTAwOjk2ICovCisJaW50IGludF9ib3RoOjE7CQkvKiBpZiAxLCBpbnRlcnJ1cHQgYm90aCBzb2NrZXRzIG9uIHRoZSBibGFkZSAqLworCS8qIGJpdCAxMDEqLworCWludCBmYWlybmVzczozOwkJLyogdXN1YWxseSB6ZXJvICovCisJLyogYml0cyAxMDQ6MTAyICovCisJaW50IG11bHRpbGV2ZWw6MTsJLyogbXVsdGktbGV2ZWwgbXVsdGljYXN0IGZvcm1hdCAqLworCS8qIGJpdCAxMDUgKi8KKwkJCQkvKiAwIGZvciBUTEI6IGVuZHBvaW50IG11bHRpLXVuaWNhc3QgbWVzc2FnZXMgKi8KKwlpbnQgY2hhaW5pbmc6MTsJCS8qIG5leHQgZGVzY3JpcHRvciBpcyBwYXJ0IG9mIHRoaXMgYWN0aXZhdGlvbiovCisJLyogYml0IDEwNiAqLworCWludCByc3ZkXzc6MjE7CQkvKiBtdXN0IGJlIHplcm8gKi8KKwkvKiBiaXRzIDEyNzoxMDcgKi8KK307CisKKy8qCisgKiBUaGUgYWN0aXZhdGlvbiBkZXNjcmlwdG9yOgorICogVGhlIGZvcm1hdCBvZiB0aGUgbWVzc2FnZSB0byBzZW5kLCBwbHVzIGFsbCBhY2NvbXBhbnlpbmcgY29udHJvbAorICogU2hvdWxkIGJlIDY0IGJ5dGVzCisgKi8KK3N0cnVjdCBiYXVfZGVzYyB7CisJc3RydWN0IGJhdV90YXJnZXRfbm9kZW1hc2sgZGlzdHJpYnV0aW9uOworCS8qCisJICogbWVzc2FnZSB0ZW1wbGF0ZSwgY29uc2lzdGluZyBvZiBoZWFkZXIgYW5kIHBheWxvYWQ6CisJICovCisJc3RydWN0IGJhdV9tc2dfaGVhZGVyIGhlYWRlcjsKKwlzdHJ1Y3QgYmF1X21zZ19wYXlsb2FkIHBheWxvYWQ7Cit9OworLyoKKyAqICAgLXBheWxvYWQtLSAgICAtLS0tLS0tLS1oZWFkZXItLS0tLS0KKyAqICAgYnl0ZXMgMC0xMSAgICBiaXRzIDQxLTU2ICBiaXRzIDU4LTgxCisgKiAgICAgICBBICAgICAgICAgICBCICAoMikgICAgICBDICgzKQorICoKKyAqICAgICAgICAgICAgQS9CL0MgYXJlIG1vdmVkIHRvOgorICogICAgICAgQSAgICAgICAgICAgIEMgICAgICAgICAgQgorICogICBieXRlcyAwLTExICBieXRlcyAxMi0xNCAgYnl0ZXMgMTYtMTcgIChieXRlIDE1IGZpbGxlZCBpbiBieSBodyBhcyB2ZWN0b3IpCisgKiAgIC0tLS0tLS0tLS0tLXBheWxvYWQgcXVldWUtLS0tLS0tLS0tLQorICovCisKKy8qCisgKiBUaGUgcGF5bG9hZCBxdWV1ZSBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBhbiBhcnJheSBvZiB0aGVzZS4KKyAqIFdpdGggQkFVX01JU0NfQ09OVFJPTCBzZXQgZm9yIHNvZnR3YXJlIGFja25vd2xlZGdlIG1vZGUsIHRoZSBtZXNzYWdlcworICogYXJlIDMyIGJ5dGVzICgyIG1pY3JvcGFja2V0cykgKDI1NiBiaXRzKSBpbiBsZW5ndGgsIGJ1dCBjb250YWluIG9ubHkgMTcKKyAqIGJ5dGVzIG9mIHVzYWJsZSBkYXRhLCBpbmNsdWRpbmcgdGhlIHN3IGFjayB2ZWN0b3IgaW4gYnl0ZSAxNSAoYml0cyAxMjc6MTIwKQorICogKDEyIGJ5dGVzIGNvbWUgZnJvbSBiYXVfbXNnX3BheWxvYWQsIDMgZnJvbSBwYXlsb2FkXzEsIDIgZnJvbQorICogIHN3X2Fja192ZWN0b3IgYW5kIHBheWxvYWRfMikKKyAqICJFbmFibGluZyBTb2Z0d2FyZSBBY2tub3dsZWRnbWVudCBtb2RlIChzZWUgU2VjdGlvbiA0LjMuMyBTb2Z0d2FyZQorICogIEFja25vd2xlZGdlIFByb2Nlc3NpbmcpIGFsc28gc2VsZWN0cyAzMiBieXRlICgxNyBieXRlcyB1c2FibGUpIHBheWxvYWQKKyAqICBvcGVyYXRpb24uIgorICovCitzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgeworCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsJCS8qIHNpZ25pZmllcyBhIHBhZ2Ugb3IgYWxsIFRMQidzCisJCQkJCQlvZiB0aGUgY3B1ICovCisJLyogNjQgYml0cywgYnl0ZXMgMC03ICovCisKKwl1bnNpZ25lZCBzaG9ydCBzZW5kaW5nX2NwdTsJLyogY3B1IHRoYXQgc2VudCB0aGUgbWVzc2FnZSAqLworCS8qIDE2IGJpdHMsIGJ5dGVzIDgtOSAqLworCisJdW5zaWduZWQgc2hvcnQgYWNrbm93bGVkZ2VfY291bnQ7IC8qIGZpbGxlZCBpbiBieSBkZXN0aW5hdGlvbiAqLworCS8qIDE2IGJpdHMsIGJ5dGVzIDEwLTExICovCisKKwl1bnNpZ25lZCBzaG9ydCByZXBsaWVkX3RvOjE7CS8qIHNlbnQgYXMgMCBieSB0aGUgc291cmNlICovCisJLyogMSBiaXQgKi8KKwl1bnNpZ25lZCBzaG9ydCB1bnVzZWQxOjc7ICAgICAgIC8qIG5vdCBjdXJyZW50bHkgdXNpbmcgKi8KKwkvKiA3IGJpdHM6IGJ5dGUgMTIpICovCisKKwl1bnNpZ25lZCBjaGFyIHVudXNlZDJbMl07CS8qIG5vdCBjdXJyZW50bHkgdXNpbmcgKi8KKwkvKiBieXRlcyAxMy0xNCAqLworCisJdW5zaWduZWQgY2hhciBzd19hY2tfdmVjdG9yOwkvKiBmaWxsZWQgaW4gYnkgdGhlIGhhcmR3YXJlICovCisJLyogYnl0ZSAxNSAoYml0cyAxMjc6MTIwKSAqLworCisJdW5zaWduZWQgY2hhciB1bnVzZWQ0WzNdOwkvKiBub3QgY3VycmVudGx5IHVzaW5nIGJ5dGVzIDE3LTE5ICovCisJLyogYnl0ZXMgMTctMTkgKi8KKworCWludCBudW1iZXJfb2ZfY3B1czsJCS8qIGZpbGxlZCBpbiBhdCBkZXN0aW5hdGlvbiAqLworCS8qIDMyIGJpdHMsIGJ5dGVzIDIwLTIzIChhbGlnbmVkKSAqLworCisJdW5zaWduZWQgY2hhciB1bnVzZWQ1WzhdOyAgICAgICAvKiBub3QgdXNpbmcgKi8KKwkvKiBieXRlcyAyNC0zMSAqLworfTsKKworLyoKKyAqIG9uZSBmb3IgZXZlcnkgc2xvdCBpbiB0aGUgZGVzdGluYXRpb24gcGF5bG9hZCBxdWV1ZQorICovCitzdHJ1Y3QgYmF1X21zZ19zdGF0dXMgeworCXN0cnVjdCBiYXVfbG9jYWxfY3B1bWFzayBzZWVuX2J5OwkvKiBtYXAgb2YgY3B1J3MgKi8KK307CisKKy8qCisgKiBvbmUgZm9yIGV2ZXJ5IHNsb3QgaW4gdGhlIGRlc3RpbmF0aW9uIHNvZnR3YXJlIGFjayByZXNvdXJjZXMKKyAqLworc3RydWN0IGJhdV9zd19hY2tfc3RhdHVzIHsKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKm1zZzsJLyogYXNzb2NpYXRlZCBtZXNzYWdlICovCisJaW50IHdhdGNoZXI7CQkJCS8qIGNwdSBtb25pdG9yaW5nLCBvciAtMSAqLworfTsKKworLyoKKyAqIG9uZSBvbiBldmVyeSBub2RlIGFuZCBwZXItY3B1OyB0byBsb2NhdGUgdGhlIHNvZnR3YXJlIHRhYmxlcworICovCitzdHJ1Y3QgYmF1X2NvbnRyb2wgeworCXN0cnVjdCBiYXVfZGVzYyAqZGVzY3JpcHRvcl9iYXNlOworCXN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqYmF1X21zZ19oZWFkOworCXN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqdmFfcXVldWVfZmlyc3Q7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICp2YV9xdWV1ZV9sYXN0OworCXN0cnVjdCBiYXVfbXNnX3N0YXR1cyAqbXNnX3N0YXR1c2VzOworCWludCAqd2F0Y2hpbmc7IC8qIHBvaW50ZXIgdG8gYXJyYXkgKi8KK307CisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSBpcyBhbGxvY2F0ZWQgcGVyX2NwdSBmb3IgVVYgVExCIHNob290ZG93biBzdGF0aXN0aWNzLgorICovCitzdHJ1Y3QgcHRjX3N0YXRzIHsKKwl1bnNpZ25lZCBsb25nIHB0Y19pOwkvKiBudW1iZXIgb2YgSVBJLXN0eWxlIGZsdXNoZXMgKi8KKwl1bnNpZ25lZCBsb25nIHJlcXVlc3RvcjsJLyogbnVtYmVyIG9mIG5vZGVzIHRoaXMgY3B1IHNlbnQgdG8gKi8KKwl1bnNpZ25lZCBsb25nIHJlcXVlc3RlZTsJLyogdGltZXMgY3B1IHdhcyByZW1vdGVseSByZXF1ZXN0ZWQgKi8KKwl1bnNpZ25lZCBsb25nIGFsbHRsYjsJLyogdGltZXMgYWxsIHRsYidzIG9uIHRoaXMgY3B1IHdlcmUgZmx1c2hlZCAqLworCXVuc2lnbmVkIGxvbmcgb25ldGxiOwkvKiB0aW1lcyBqdXN0IG9uZSB0bGIgb24gdGhpcyBjcHUgd2FzIGZsdXNoZWQgKi8KKwl1bnNpZ25lZCBsb25nIHNfcmV0cnk7CS8qIHJldHJpZXMgb24gc291cmNlIHNpZGUgdGltZW91dHMgKi8KKwl1bnNpZ25lZCBsb25nIGRfcmV0cnk7CS8qIHJldHJpZXMgb24gZGVzdGluYXRpb24gc2lkZSB0aW1lb3V0cyAqLworCXVuc2lnbmVkIGxvbmcgc2ZsdXNoOwkvKiBjeWNsZXMgc3BlbnQgaW4gdXZfZmx1c2hfdGxiX290aGVycyAqLworCXVuc2lnbmVkIGxvbmcgZGZsdXNoOwkvKiBjeWNsZXMgc3BlbnQgb24gZGVzdGluYXRpb24gc2lkZSAqLworCXVuc2lnbmVkIGxvbmcgcmV0cmllc29rOyAvKiBzdWNjZXNzZXMgb24gcmV0cmllcyAqLworCXVuc2lnbmVkIGxvbmcgbm9tc2c7CS8qIGludGVycnVwdHMgd2l0aCBubyBtZXNzYWdlICovCisJdW5zaWduZWQgbG9uZyBtdWx0bXNnOwkvKiBpbnRlcnJ1cHRzIHdpdGggbXVsdGlwbGUgbWVzc2FnZXMgKi8KKwl1bnNpZ25lZCBsb25nIG50YXJnZXRlZDsvKiBub2RlcyB0YXJnZXRlZCAqLworfTsKKworc3RhdGljIGlubGluZSBpbnQgYmF1X25vZGVfaXNzZXQoaW50IG5vZGUsIHN0cnVjdCBiYXVfdGFyZ2V0X25vZGVtYXNrICpkc3RwKQoreworCXJldHVybiBjb25zdGFudF90ZXN0X2JpdChub2RlLCAmZHN0cC0+Yml0c1swXSk7Cit9CitzdGF0aWMgaW5saW5lIHZvaWQgYmF1X25vZGVfc2V0KGludCBub2RlLCBzdHJ1Y3QgYmF1X3RhcmdldF9ub2RlbWFzayAqZHN0cCkKK3sKKwlfX3NldF9iaXQobm9kZSwgJmRzdHAtPmJpdHNbMF0pOworfQorc3RhdGljIGlubGluZSB2b2lkIGJhdV9ub2Rlc19jbGVhcihzdHJ1Y3QgYmF1X3RhcmdldF9ub2RlbWFzayAqZHN0cCwgaW50IG5iaXRzKQoreworCWJpdG1hcF96ZXJvKCZkc3RwLT5iaXRzWzBdLCBuYml0cyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBiYXVfY3B1Yml0c19jbGVhcihzdHJ1Y3QgYmF1X2xvY2FsX2NwdW1hc2sgKmRzdHAsIGludCBuYml0cykKK3sKKwliaXRtYXBfemVybygmZHN0cC0+Yml0cywgbmJpdHMpOworfQorCisjZGVmaW5lIGNwdWJpdF9pc3NldChjcHUsIGJhdV9sb2NhbF9jcHVtYXNrKSBcCisJdGVzdF9iaXQoKGNwdSksIChiYXVfbG9jYWxfY3B1bWFzaykuYml0cykKKworZXh0ZXJuIGludCB1dl9mbHVzaF90bGJfb3RoZXJzKGNwdW1hc2tfdCAqLCBzdHJ1Y3QgbW1fc3RydWN0ICosIHVuc2lnbmVkIGxvbmcpOworZXh0ZXJuIHZvaWQgdXZfYmF1X21lc3NhZ2VfaW50cjEodm9pZCk7CitleHRlcm4gdm9pZCB1dl9iYXVfdGltZW91dF9pbnRyMSh2b2lkKTsKKworI2VuZGlmIC8qIF9fQVNNX1g4Nl9VVl9CQVVfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3V2L3V2X2h1Yi5oIGIvaW5jbHVkZS9hc20teDg2L3V2L3V2X2h1Yi5oCmluZGV4IDI2YjkyNDAuLmE0ZWYyNmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni91di91dl9odWIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdXYvdXZfaHViLmgKQEAgLTUsNyArNSw3IEBACiAgKgogICogU0dJIFVWIGFyY2hpdGVjdHVyYWwgZGVmaW5pdGlvbnMKICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2lsaWNvbiBHcmFwaGljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU2lsaWNvbiBHcmFwaGljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICovCiAKICNpZm5kZWYgX19BU01fWDg2X1VWX0hVQl9IX18KQEAgLTIwLDI2ICsyMCw0OSBAQAogLyoKICAqIEFkZHJlc3NpbmcgVGVybWlub2xvZ3kKICAqCi0gKiAJTkFTSUQgLSBuZXR3b3JrIElEIG9mIGEgcm91dGVyLCBNYnJpY2sgb3IgQ2JyaWNrLiBOYXNpZCB2YWx1ZXMgb2YKLSAqIAkJcm91dGVycyBhbHdheXMgaGF2ZSBsb3cgYml0IG9mIDEsIEMvTUJyaWNrcyBoYXZlIGxvdyBiaXQKLSAqIAkJZXF1YWwgdG8gMC4gTW9zdCBhZGRyZXNzaW5nIG1hY3JvcyB0aGF0IHRhcmdldCBVViBodWIgY2hpcHMKLSAqIAkJcmlnaHQgc2hpZnQgdGhlIE5BU0lEIGJ5IDEgdG8gZXhjbHVkZSB0aGUgYWx3YXlzLXplcm8gYml0LgorICoJTSAgICAgICAtIFRoZSBsb3cgTSBiaXRzIG9mIGEgcGh5c2ljYWwgYWRkcmVzcyByZXByZXNlbnQgdGhlIG9mZnNldAorICoJCSAgaW50byB0aGUgYmxhZGUgbG9jYWwgbWVtb3J5LiBSQU0gbWVtb3J5IG9uIGEgYmxhZGUgaXMgcGh5c2ljYWxseQorICoJCSAgY29udGlndW91cyAoYWx0aG91Z2ggdmFyaW91cyBJTyBzcGFjZXMgbWF5IHB1bmNoIGhvbGVzIGluCisgKgkJICBpdCkuLgogICoKLSAqCVNOQVNJRCAtIE5BU0lEIHJpZ2h0IHNoaWZ0ZWQgYnkgMSBiaXQuCisgKiAJTgktIE51bWJlciBvZiBiaXRzIGluIHRoZSBub2RlIHBvcnRpb24gb2YgYSBzb2NrZXQgcGh5c2ljYWwKKyAqIAkJICBhZGRyZXNzLgorICoKKyAqIAlOQVNJRCAgIC0gbmV0d29yayBJRCBvZiBhIHJvdXRlciwgTWJyaWNrIG9yIENicmljay4gTmFzaWQgdmFsdWVzIG9mCisgKiAJIAkgIHJvdXRlcnMgYWx3YXlzIGhhdmUgbG93IGJpdCBvZiAxLCBDL01Ccmlja3MgaGF2ZSBsb3cgYml0CisgKiAJCSAgZXF1YWwgdG8gMC4gTW9zdCBhZGRyZXNzaW5nIG1hY3JvcyB0aGF0IHRhcmdldCBVViBodWIgY2hpcHMKKyAqIAkJICByaWdodCBzaGlmdCB0aGUgTkFTSUQgYnkgMSB0byBleGNsdWRlIHRoZSBhbHdheXMtemVybyBiaXQuCisgKiAJCSAgTkFTSURzIGNvbnRhaW4gdXAgdG8gMTUgYml0cy4KKyAqCisgKglHTk9ERSAgIC0gTkFTSUQgcmlnaHQgc2hpZnRlZCBieSAxIGJpdC4gTW9zdCBtbXJzIGNvbnRhaW4gZ25vZGVzIGluc3RlYWQKKyAqCQkgIG9mIG5hc2lkcy4KKyAqCisgKiAJUE5PREUgICAtIHRoZSBsb3cgTiBiaXRzIG9mIHRoZSBHTk9ERS4gVGhlIFBOT0RFIGlzIHRoZSBtb3N0IHVzZWZ1bCB2YXJpYW50CisgKiAJCSAgb2YgdGhlIG5hc2lkIGZvciBzb2NrZXQgdXNhZ2UuCisgKgorICoKKyAqICBOdW1hTGluayBHbG9iYWwgUGh5c2ljYWwgQWRkcmVzcyBGb3JtYXQ6CisgKiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICB8MDAuLjAwMHwgICAgICBHTk9ERSAgICAgICAgICAgICB8ICAgICAgTm9kZU9mZnNldCAgICAgfAorICogICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgICAgICB8PC0tLS0tLS01MyAtIE0gYml0cyAtLS0+fDwtLS0tLS0tLU0gYml0cyAtLS0tLT4KKyAqCisgKglNIC0gbnVtYmVyIG9mIG5vZGUgb2Zmc2V0IGJpdHMgKDM1IC4uIDQwKQogICoKICAqCiAgKiAgTWVtb3J5L1VWLUhVQiBQcm9jZXNzb3IgU29ja2V0IEFkZHJlc3MgRm9ybWF0OgotICogICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICogIHwwMC4uMDAwMHwgICAgU05BU0lEICAgICB8ICAgICAgTm9kZU9mZnNldCAgICAgfAotICogICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICogICAgICAgICAgIDwtLS0gTiBiaXRzIC0tLT58PC0tLS0tLS0tTSBiaXRzIC0tLS0tPgorICogICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgfDAwLi4wMDAwMDAwMDAwMDB8ICAgUE5PREUgICAgICAgfCAgICAgIE5vZGVPZmZzZXQgICAgIHwKKyAqICArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgICAgICAgICAgICAgPC0tLSBOIGJpdHMgLS0tPnw8LS0tLS0tLS1NIGJpdHMgLS0tLS0+CiAgKgotICoJTSBudW1iZXIgb2Ygbm9kZSBvZmZzZXQgYml0cyAoMzUgLi4gNDApCi0gKglOIG51bWJlciBvZiBTTkFTSUQgYml0cyAoMCAuLiAxMCkKKyAqCU0gLSBudW1iZXIgb2Ygbm9kZSBvZmZzZXQgYml0cyAoMzUgLi4gNDApCisgKglOIC0gbnVtYmVyIG9mIFBOT0RFIGJpdHMgKDAgLi4gMTApCiAgKgogICoJCU5vdGU6IE0gKyBOIGNhbm5vdCBjdXJyZW50bHkgZXhjZWVkIDQ0ICh4ODZfNjQpIG9yIDQ2IChJQTY0KS4KICAqCQlUaGUgYWN0dWFsIHZhbHVlcyBhcmUgY29uZmlndXJhdGlvbiBkZXBlbmRlbnQgYW5kIGFyZSBzZXQgYXQKLSAqCQlib290IHRpbWUKKyAqCQlib290IHRpbWUuIE0gJiBOIHZhbHVlcyBhcmUgc2V0IGJ5IHRoZSBoYXJkd2FyZS9CSU9TIGF0IGJvb3QuCisgKgogICoKICAqIEFQSUNJRCBmb3JtYXQKICAqIAlOT1RFISEhISEhIFRoaXMgaXMgdGhlIGN1cnJlbnQgZm9ybWF0IG9mIHRoZSBBUElDSUQuIEhvd2V2ZXIsIGNvZGUKQEAgLTQ4LDE0ICs3MSwxNCBAQAogICoKICAqIAkJMTExMTExMDAwMDAwMDAwMAogICogCQk1NDMyMTA5ODc2NTQzMjEwCi0gKgkJbm5ubm5ubm5ubmxjMGNjaAorICoJCXBwcHBwcHBwcHBsYzBjY2gKICAqCQlzc3Nzc3Nzc3NzcwogICoKLSAqCQkJbiAgPSBzbmFzaWQgYml0cworICoJCQlwICA9IHBub2RlIGJpdHMKICAqCQkJbCA9ICBzb2NrZXQgbnVtYmVyIG9uIGJvYXJkCiAgKgkJCWMgID0gY29yZQogICoJCQloICA9IGh5cGVydGhyZWFkCi0gKgkJCXMgID0gYml0cyB0aGF0IGFyZSBpbiB0aGUgc29ja2V0IENTUgorICoJCQlzICA9IGJpdHMgdGhhdCBhcmUgaW4gdGhlIFNPQ0tFVF9JRCBDU1IKICAqCiAgKglOb3RlOiBQcm9jZXNzb3Igb25seSBzdXBwb3J0cyAxMiBiaXRzIGluIHRoZSBBUElDSUQgcmVnaXN0ZXIuIFRoZSBBQ1BJCiAgKgkgICAgICB0YWJsZXMgaG9sZCBhbGwgMTYgYml0cy4gU29mdHdhcmUgbmVlZHMgdG8gYmUgYXdhcmUgb2YgdGhpcy4KQEAgLTc0LDcgKzk3LDcgQEAKICAqIFRoaXMgdmFsdWUgaXMgYWxzbyB0aGUgdmFsdWUgb2YgdGhlIG1heGltdW0gbnVtYmVyIG9mIG5vbi1yb3V0ZXIgTkFTSURzCiAgKiBpbiB0aGUgbnVtYWxpbmsgZmFicmljLgogICoKLSAqIE5PVEU6IGEgYnJpY2sgbWF5IGJlIDEgb3IgMiBPUyBub2Rlcy4gRG9uJ3QgZ2V0IHRoZXNlIGNvbmZ1c2VkLgorICogTk9URTogYSBicmljayBtYXkgY29udGFpbiAxIG9yIDIgT1Mgbm9kZXMuIERvbid0IGdldCB0aGVzZSBjb25mdXNlZC4KICAqLwogI2RlZmluZSBVVl9NQVhfTlVNQUxJTktfQkxBREVTCTE2Mzg0CiAKQEAgLTk2LDggKzExOSwxMiBAQAogICovCiBzdHJ1Y3QgdXZfaHViX2luZm9fcyB7CiAJdW5zaWduZWQgbG9uZwlnbG9iYWxfbW1yX2Jhc2U7Ci0JdW5zaWduZWQgc2hvcnQJbG9jYWxfbmFzaWQ7Ci0JdW5zaWduZWQgc2hvcnQJZ25vZGVfdXBwZXI7CisJdW5zaWduZWQgbG9uZwlncGFfbWFzazsKKwl1bnNpZ25lZCBsb25nCWdub2RlX3VwcGVyOworCXVuc2lnbmVkIGxvbmcJbG93bWVtX3JlbWFwX3RvcDsKKwl1bnNpZ25lZCBsb25nCWxvd21lbV9yZW1hcF9iYXNlOworCXVuc2lnbmVkIHNob3J0CXBub2RlOworCXVuc2lnbmVkIHNob3J0CXBub2RlX21hc2s7CiAJdW5zaWduZWQgc2hvcnQJY29oZXJlbmN5X2RvbWFpbl9udW1iZXI7CiAJdW5zaWduZWQgc2hvcnQJbnVtYV9ibGFkZV9pZDsKIAl1bnNpZ25lZCBjaGFyCWJsYWRlX3Byb2Nlc3Nvcl9pZDsKQEAgLTExMiw4MyArMTM5LDEyNiBAQAogICogTG9jYWwgJiBHbG9iYWwgTU1SIHNwYWNlIG1hY3Jvcy4KICAqIAlOb3RlOiBtYWNyb3MgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgT05MWSBieSBpbmxpbmUgZnVuY3Rpb25zCiAgKiAJaW4gdGhpcyBmaWxlIC0gbm90IGJ5IG90aGVyIGtlcm5lbCBjb2RlLgorICogCQluIC0gIE5BU0lEIChmdWxsIDE1LWJpdCBnbG9iYWwgbmFzaWQpCisgKiAJCWcgLSAgR05PREUgKGZ1bGwgMTUtYml0IGdsb2JhbCBuYXNpZCwgcmlnaHQgc2hpZnRlZCAxKQorICogCQlwIC0gIFBOT0RFIChsb2NhbCBwYXJ0IG9mIG5zaWRzLCByaWdodCBzaGlmdGVkIDEpCiAgKi8KLSNkZWZpbmUgVVZfU05BU0lEKG4pCQkJKChuKSA+PiAxKQotI2RlZmluZSBVVl9OQVNJRChuKQkJCSgobikgPDwgMSkKKyNkZWZpbmUgVVZfTkFTSURfVE9fUE5PREUobikJCSgoKG4pID4+IDEpICYgdXZfaHViX2luZm8tPnBub2RlX21hc2spCisjZGVmaW5lIFVWX1BOT0RFX1RPX05BU0lEKHApCQkoKChwKSA8PCAxKSB8IHV2X2h1Yl9pbmZvLT5nbm9kZV91cHBlcikKIAogI2RlZmluZSBVVl9MT0NBTF9NTVJfQkFTRQkJMHhmNDAwMDAwMFVMCiAjZGVmaW5lIFVWX0dMT0JBTF9NTVIzMl9CQVNFCQkweGY4MDAwMDAwVUwKICNkZWZpbmUgVVZfR0xPQkFMX01NUjY0X0JBU0UJCSh1dl9odWJfaW5mby0+Z2xvYmFsX21tcl9iYXNlKQorI2RlZmluZSBVVl9MT0NBTF9NTVJfU0laRQkJKDY0VUwgKiAxMDI0ICogMTAyNCkKKyNkZWZpbmUgVVZfR0xPQkFMX01NUjMyX1NJWkUJCSg2NFVMICogMTAyNCAqIDEwMjQpCiAKLSNkZWZpbmUgVVZfR0xPQkFMX01NUjMyX1NOQVNJRF9NQVNLCTB4M2ZmCi0jZGVmaW5lIFVWX0dMT0JBTF9NTVIzMl9TTkFTSURfU0hJRlQJMTUKLSNkZWZpbmUgVVZfR0xPQkFMX01NUjY0X1NOQVNJRF9TSElGVAkyNgorI2RlZmluZSBVVl9HTE9CQUxfTU1SMzJfUE5PREVfU0hJRlQJMTUKKyNkZWZpbmUgVVZfR0xPQkFMX01NUjY0X1BOT0RFX1NISUZUCTI2CiAKLSNkZWZpbmUgVVZfR0xPQkFMX01NUjMyX05BU0lEX0JJVFMobikJCQkJCVwKLQkJKCgoVVZfU05BU0lEKG4pICYgVVZfR0xPQkFMX01NUjMyX1NOQVNJRF9NQVNLKSkgPDwJXAotCQkoVVZfR0xPQkFMX01NUjMyX1NOQVNJRF9TSElGVCkpCisjZGVmaW5lIFVWX0dMT0JBTF9NTVIzMl9QTk9ERV9CSVRTKHApCSgocCkgPDwgKFVWX0dMT0JBTF9NTVIzMl9QTk9ERV9TSElGVCkpCiAKLSNkZWZpbmUgVVZfR0xPQkFMX01NUjY0X05BU0lEX0JJVFMobikJCQkJCVwKLQkoKHVuc2lnbmVkIGxvbmcpVVZfU05BU0lEKG4pIDw8IFVWX0dMT0JBTF9NTVI2NF9TTkFTSURfU0hJRlQpCisjZGVmaW5lIFVWX0dMT0JBTF9NTVI2NF9QTk9ERV9CSVRTKHApCQkJCQlcCisJKCh1bnNpZ25lZCBsb25nKShwKSA8PCBVVl9HTE9CQUxfTU1SNjRfUE5PREVfU0hJRlQpCiAKLSNkZWZpbmUgVVZfQVBJQ19OQVNJRF9TSElGVAk2CisjZGVmaW5lIFVWX0FQSUNfUE5PREVfU0hJRlQJNgogCiAvKgotICogRXh0cmFjdCBhIE5BU0lEIGZyb20gYW4gQVBJQ0lEIChmdWxsIGFwaWNpZCwgbm90IHByb2Nlc3NvciBzdWJzZXQpCisgKiBNYWNyb3MgZm9yIGNvbnZlcnRpbmcgYmV0d2VlbiBrZXJuZWwgdmlydHVhbCBhZGRyZXNzZXMsIHNvY2tldCBsb2NhbCBwaHlzaWNhbAorICogYWRkcmVzc2VzLCBhbmQgVVYgZ2xvYmFsIHBoeXNpY2FsIGFkZHJlc3Nlcy4KKyAqIAlOb3RlOiB1c2UgdGhlIHN0YW5kYXJkIF9fcGEoKSAmIF9fdmEoKSBtYWNyb3MgZm9yIGNvbnZlcnRpbmcKKyAqIAkgICAgICBiZXR3ZWVuIHNvY2tldCB2aXJ0dWFsIGFuZCBzb2NrZXQgcGh5c2ljYWwgYWRkcmVzc2VzLgogICovCi1zdGF0aWMgaW5saW5lIGludCB1dl9hcGljaWRfdG9fbmFzaWQoaW50IGFwaWNpZCkKKworLyogc29ja2V0IHBoeXMgUkFNIC0tPiBVViBnbG9iYWwgcGh5c2ljYWwgYWRkcmVzcyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHV2X3NvY19waHlzX3JhbV90b19ncGEodW5zaWduZWQgbG9uZyBwYWRkcikKIHsKLQlyZXR1cm4gKFVWX05BU0lEKGFwaWNpZCA+PiBVVl9BUElDX05BU0lEX1NISUZUKSk7CisJaWYgKHBhZGRyIDwgdXZfaHViX2luZm8tPmxvd21lbV9yZW1hcF90b3ApCisJCXBhZGRyICs9IHV2X2h1Yl9pbmZvLT5sb3dtZW1fcmVtYXBfYmFzZTsKKwlyZXR1cm4gcGFkZHIgfCB1dl9odWJfaW5mby0+Z25vZGVfdXBwZXI7Cit9CisKKworLyogc29ja2V0IHZpcnR1YWwgLS0+IFVWIGdsb2JhbCBwaHlzaWNhbCBhZGRyZXNzICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdXZfZ3BhKHZvaWQgKnYpCit7CisJcmV0dXJuIF9fcGEodikgfCB1dl9odWJfaW5mby0+Z25vZGVfdXBwZXI7Cit9CisKKy8qIHNvY2tldCB2aXJ0dWFsIC0tPiBVViBnbG9iYWwgcGh5c2ljYWwgYWRkcmVzcyAqLworc3RhdGljIGlubGluZSB2b2lkICp1dl92Z3BhKHZvaWQgKnYpCit7CisJcmV0dXJuICh2b2lkICopdXZfZ3BhKHYpOworfQorCisvKiBVViBnbG9iYWwgcGh5c2ljYWwgYWRkcmVzcyAtLT4gc29ja2V0IHZpcnR1YWwgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCAqdXZfdmEodW5zaWduZWQgbG9uZyBncGEpCit7CisJcmV0dXJuIF9fdmEoZ3BhICYgdXZfaHViX2luZm8tPmdwYV9tYXNrKTsKK30KKworLyogcG5vZGUsIG9mZnNldCAtLT4gc29ja2V0IHZpcnR1YWwgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCAqdXZfcG5vZGVfb2Zmc2V0X3RvX3ZhZGRyKGludCBwbm9kZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpCit7CisJcmV0dXJuIF9fdmEoKCh1bnNpZ25lZCBsb25nKXBub2RlIDw8IHV2X2h1Yl9pbmZvLT5tX3ZhbCkgfCBvZmZzZXQpOworfQorCisKKy8qCisgKiBFeHRyYWN0IGEgUE5PREUgZnJvbSBhbiBBUElDSUQgKGZ1bGwgYXBpY2lkLCBub3QgcHJvY2Vzc29yIHN1YnNldCkKKyAqLworc3RhdGljIGlubGluZSBpbnQgdXZfYXBpY2lkX3RvX3Bub2RlKGludCBhcGljaWQpCit7CisJcmV0dXJuIChhcGljaWQgPj4gVVZfQVBJQ19QTk9ERV9TSElGVCk7CiB9CiAKIC8qCiAgKiBBY2Nlc3MgZ2xvYmFsIE1NUnMgdXNpbmcgdGhlIGxvdyBtZW1vcnkgTU1SMzIgc3BhY2UuIFRoaXMgcmVnaW9uIHN1cHBvcnRzCiAgKiBmYXN0ZXIgTU1SIGFjY2VzcyBidXQgbm90IGFsbCBNTVJzIGFyZSBhY2Nlc3NpYmxlIGluIHRoaXMgc3BhY2UuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqdXZfZ2xvYmFsX21tcjMyX2FkZHJlc3MoaW50IG5hc2lkLAorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICp1dl9nbG9iYWxfbW1yMzJfYWRkcmVzcyhpbnQgcG5vZGUsCiAJCQkJdW5zaWduZWQgbG9uZyBvZmZzZXQpCiB7CiAJcmV0dXJuIF9fdmEoVVZfR0xPQkFMX01NUjMyX0JBU0UgfAotCQkgICAgICAgVVZfR0xPQkFMX01NUjMyX05BU0lEX0JJVFMobmFzaWQpIHwgb2Zmc2V0KTsKKwkJICAgICAgIFVWX0dMT0JBTF9NTVIzMl9QTk9ERV9CSVRTKHBub2RlKSB8IG9mZnNldCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCB1dl93cml0ZV9nbG9iYWxfbW1yMzIoaW50IG5hc2lkLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKK3N0YXRpYyBpbmxpbmUgdm9pZCB1dl93cml0ZV9nbG9iYWxfbW1yMzIoaW50IHBub2RlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKIAkJCQkgdW5zaWduZWQgbG9uZyB2YWwpCiB7Ci0JKnV2X2dsb2JhbF9tbXIzMl9hZGRyZXNzKG5hc2lkLCBvZmZzZXQpID0gdmFsOworCSp1dl9nbG9iYWxfbW1yMzJfYWRkcmVzcyhwbm9kZSwgb2Zmc2V0KSA9IHZhbDsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHV2X3JlYWRfZ2xvYmFsX21tcjMyKGludCBuYXNpZCwKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB1dl9yZWFkX2dsb2JhbF9tbXIzMihpbnQgcG5vZGUsCiAJCQkJCQkgdW5zaWduZWQgbG9uZyBvZmZzZXQpCiB7Ci0JcmV0dXJuICp1dl9nbG9iYWxfbW1yMzJfYWRkcmVzcyhuYXNpZCwgb2Zmc2V0KTsKKwlyZXR1cm4gKnV2X2dsb2JhbF9tbXIzMl9hZGRyZXNzKHBub2RlLCBvZmZzZXQpOwogfQogCiAvKgogICogQWNjZXNzIEdsb2JhbCBNTVIgc3BhY2UgdXNpbmcgdGhlIE1NUiBzcGFjZSBsb2NhdGVkIGF0IHRoZSB0b3Agb2YgcGh5c2ljYWwKICAqIG1lbW9yeS4KICAqLwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICp1dl9nbG9iYWxfbW1yNjRfYWRkcmVzcyhpbnQgbmFzaWQsCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgKnV2X2dsb2JhbF9tbXI2NF9hZGRyZXNzKGludCBwbm9kZSwKIAkJCQl1bnNpZ25lZCBsb25nIG9mZnNldCkKIHsKIAlyZXR1cm4gX192YShVVl9HTE9CQUxfTU1SNjRfQkFTRSB8Ci0JCSAgICAgICBVVl9HTE9CQUxfTU1SNjRfTkFTSURfQklUUyhuYXNpZCkgfCBvZmZzZXQpOworCQkgICAgVVZfR0xPQkFMX01NUjY0X1BOT0RFX0JJVFMocG5vZGUpIHwgb2Zmc2V0KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHV2X3dyaXRlX2dsb2JhbF9tbXI2NChpbnQgbmFzaWQsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAorc3RhdGljIGlubGluZSB2b2lkIHV2X3dyaXRlX2dsb2JhbF9tbXI2NChpbnQgcG5vZGUsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAogCQkJCXVuc2lnbmVkIGxvbmcgdmFsKQogewotCSp1dl9nbG9iYWxfbW1yNjRfYWRkcmVzcyhuYXNpZCwgb2Zmc2V0KSA9IHZhbDsKKwkqdXZfZ2xvYmFsX21tcjY0X2FkZHJlc3MocG5vZGUsIG9mZnNldCkgPSB2YWw7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB1dl9yZWFkX2dsb2JhbF9tbXI2NChpbnQgbmFzaWQsCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdXZfcmVhZF9nbG9iYWxfbW1yNjQoaW50IHBub2RlLAogCQkJCQkJIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQogewotCXJldHVybiAqdXZfZ2xvYmFsX21tcjY0X2FkZHJlc3MobmFzaWQsIG9mZnNldCk7CisJcmV0dXJuICp1dl9nbG9iYWxfbW1yNjRfYWRkcmVzcyhwbm9kZSwgb2Zmc2V0KTsKIH0KIAogLyoKLSAqIEFjY2VzcyBub2RlIGxvY2FsIE1NUnMuIEZhc3RlciB0aGFuIHVzaW5nIGdsb2JhbCBzcGFjZSBidXQgb25seSBsb2NhbCBNTVJzCisgKiBBY2Nlc3MgaHViIGxvY2FsIE1NUnMuIEZhc3RlciB0aGFuIHVzaW5nIGdsb2JhbCBzcGFjZSBidXQgb25seSBsb2NhbCBNTVJzCiAgKiBhcmUgYWNjZXNzaWJsZS4KICAqLwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICp1dl9sb2NhbF9tbXJfYWRkcmVzcyh1bnNpZ25lZCBsb25nIG9mZnNldCkKQEAgLTIwNywxNSArMjc3LDE1IEBACiB9CiAKIC8qCi0gKiBTdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucyBmb3IgY29udmVydGluZyBiZXR3ZWVuIGNwdSwgbm9kZSwgYW5kIGJsYWRlCisgKiBTdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucyBmb3IgY29udmVydGluZyBiZXR3ZWVuIGNwdSwgbm9kZSwgcG5vZGUsIGFuZCBibGFkZQogICogbnVtYmVycy4KICAqLwogc3RydWN0IHV2X2JsYWRlX2luZm8gewotCXVuc2lnbmVkIHNob3J0CW5yX3Bvc2libGVfY3B1czsKKwl1bnNpZ25lZCBzaG9ydAlucl9wb3NzaWJsZV9jcHVzOwogCXVuc2lnbmVkIHNob3J0CW5yX29ubGluZV9jcHVzOwotCXVuc2lnbmVkIHNob3J0CW5hc2lkOworCXVuc2lnbmVkIHNob3J0CXBub2RlOwogfTsKLXN0cnVjdCB1dl9ibGFkZV9pbmZvICp1dl9ibGFkZV9pbmZvOworZXh0ZXJuIHN0cnVjdCB1dl9ibGFkZV9pbmZvICp1dl9ibGFkZV9pbmZvOwogZXh0ZXJuIHNob3J0ICp1dl9ub2RlX3RvX2JsYWRlOwogZXh0ZXJuIHNob3J0ICp1dl9jcHVfdG9fYmxhZGU7CiBleHRlcm4gc2hvcnQgdXZfcG9zc2libGVfYmxhZGVzOwpAQCAtMjQ0LDE2ICszMTQsMTYgQEAKIAlyZXR1cm4gdXZfbm9kZV90b19ibGFkZVtuaWRdOwogfQogCi0vKiBDb252ZXJ0IGEgYmxhZGUgaWQgdG8gdGhlIE5BU0lEIG9mIHRoZSBibGFkZSAqLwotc3RhdGljIGlubGluZSBpbnQgdXZfYmxhZGVfdG9fbmFzaWQoaW50IGJpZCkKKy8qIENvbnZlcnQgYSBibGFkZSBpZCB0byB0aGUgUE5PREUgb2YgdGhlIGJsYWRlICovCitzdGF0aWMgaW5saW5lIGludCB1dl9ibGFkZV90b19wbm9kZShpbnQgYmlkKQogewotCXJldHVybiB1dl9ibGFkZV9pbmZvW2JpZF0ubmFzaWQ7CisJcmV0dXJuIHV2X2JsYWRlX2luZm9bYmlkXS5wbm9kZTsKIH0KIAogLyogRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgcG9zc2libGUgY3B1cyBvbiBhIGJsYWRlICovCiBzdGF0aWMgaW5saW5lIGludCB1dl9ibGFkZV9ucl9wb3NzaWJsZV9jcHVzKGludCBiaWQpCiB7Ci0JcmV0dXJuIHV2X2JsYWRlX2luZm9bYmlkXS5ucl9wb3NpYmxlX2NwdXM7CisJcmV0dXJuIHV2X2JsYWRlX2luZm9bYmlkXS5ucl9wb3NzaWJsZV9jcHVzOwogfQogCiAvKiBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBvbmxpbmUgY3B1cyBvbiBhIGJsYWRlICovCkBAIC0yNjIsMTYgKzMzMiwxNiBAQAogCXJldHVybiB1dl9ibGFkZV9pbmZvW2JpZF0ubnJfb25saW5lX2NwdXM7CiB9CiAKLS8qIENvbnZlcnQgYSBjcHUgaWQgdG8gdGhlIE5BU0lEIG9mIHRoZSBibGFkZSBjb250YWluaW5nIHRoZSBjcHUgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHV2X2NwdV90b19uYXNpZChpbnQgY3B1KQorLyogQ29udmVydCBhIGNwdSBpZCB0byB0aGUgUE5PREUgb2YgdGhlIGJsYWRlIGNvbnRhaW5pbmcgdGhlIGNwdSAqLworc3RhdGljIGlubGluZSBpbnQgdXZfY3B1X3RvX3Bub2RlKGludCBjcHUpCiB7Ci0JcmV0dXJuIHV2X2JsYWRlX2luZm9bdXZfY3B1X3RvX2JsYWRlX2lkKGNwdSldLm5hc2lkOworCXJldHVybiB1dl9ibGFkZV9pbmZvW3V2X2NwdV90b19ibGFkZV9pZChjcHUpXS5wbm9kZTsKIH0KIAotLyogQ29udmVydCBhIG5vZGUgbnVtYmVyIHRvIHRoZSBOQVNJRCBvZiB0aGUgYmxhZGUgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHV2X25vZGVfdG9fbmFzaWQoaW50IG5pZCkKKy8qIENvbnZlcnQgYSBsaW51eCBub2RlIG51bWJlciB0byB0aGUgUE5PREUgb2YgdGhlIGJsYWRlICovCitzdGF0aWMgaW5saW5lIGludCB1dl9ub2RlX3RvX3Bub2RlKGludCBuaWQpCiB7Ci0JcmV0dXJuIHV2X2JsYWRlX2luZm9bdXZfbm9kZV90b19ibGFkZV9pZChuaWQpXS5uYXNpZDsKKwlyZXR1cm4gdXZfYmxhZGVfaW5mb1t1dl9ub2RlX3RvX2JsYWRlX2lkKG5pZCldLnBub2RlOwogfQogCiAvKiBNYXhpbXVtIHBvc3NpYmxlIG51bWJlciBvZiBibGFkZXMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni91di91dl9tbXJzLmggYi9pbmNsdWRlL2FzbS14ODYvdXYvdXZfbW1ycy5oCmluZGV4IDNiNjlmZTYuLjE1MWZkN2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni91di91dl9tbXJzLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3V2L3V2X21tcnMuaApAQCAtMTEsMTcgKzExLDI5MCBAQAogI2lmbmRlZiBfX0FTTV9YODZfVVZfTU1SU19fCiAjZGVmaW5lIF9fQVNNX1g4Nl9VVl9NTVJTX18KIAotLyoKLSAqICAgICAgIEFVVE8gR0VORVJBVEVEIC0gRG8gbm90IGVkaXQKLSAqLworI2RlZmluZSBVVl9NTVJfRU5BQkxFCQkoMVVMIDw8IDYzKQogCi0gI2RlZmluZSBVVl9NTVJfRU5BQkxFCQkoMVVMIDw8IDYzKQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfQkFVX0RBVEFfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHIDB4NjE2ODBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHXzMyIDB4MDQzOAorCisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfVkVDVE9SX1NIRlQgMAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1ZFQ1RPUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDBmZlVMCisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfRE1fU0hGVCA4CisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfRE1fTUFTSyAweDAwMDAwMDAwMDAwMDA3MDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX0RFU1RNT0RFX1NIRlQgMTEKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19ERVNUTU9ERV9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfU1RBVFVTX1NIRlQgMTIKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19TVEFUVVNfTUFTSyAweDAwMDAwMDAwMDAwMDEwMDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1BfU0hGVCAxMworI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1BfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1RfU0hGVCAxNQorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1RfTUFTSyAweDAwMDAwMDAwMDAwMDgwMDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX01fU0hGVCAxNgorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX01fTUFTSyAweDAwMDAwMDAwMDAwMTAwMDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX0FQSUNfSURfU0hGVCAzMgorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX0FQSUNfSURfTUFTSyAweGZmZmZmZmZmMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfYmF1X2RhdGFfY29uZmlnX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2JhdV9kYXRhX2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXZlY3Rvcl8gIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZG0gICAgICAgOiAgMzsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkZXN0bW9kZSA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXN0YXR1cyAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE0ICA6ICAxOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCXQgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJbSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE3XzMxOiAxNTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlhcGljX2lkICA6IDMyOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9FVkVOVF9PQ0NVUlJFRDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDAgMHg3MDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfMzIgMHgwMDVlOAorCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSENFUlJfU0hGVCAwCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDFVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0dSMF9IQ0VSUl9TSEZUIDEKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDJVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0dSMV9IQ0VSUl9TSEZUIDIKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjFfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDRVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xIX0hDRVJSX1NIRlQgMworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xIX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA4VUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SSF9IQ0VSUl9TSEZUIDQKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SSF9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAxMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfWE5fSENFUlJfU0hGVCA1CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfWE5fSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMjBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NJX0hDRVJSX1NIRlQgNgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NJX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDQwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9BT0VSUjBfU0hGVCA3CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwMDgwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfQU9FUlIwX1NIRlQgOAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0dSMF9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDAxMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0dSMV9BT0VSUjBfU0hGVCA5CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfR1IxX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDIwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEhfQU9FUlIwX1NIRlQgMTAKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MSF9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDA0MDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1JIX0FPRVJSMF9TSEZUIDExCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwODAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9YTl9BT0VSUjBfU0hGVCAxMgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1hOX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMTAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfU0lfQU9FUlIwX1NIRlQgMTMKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9TSV9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0FPRVJSMV9TSEZUIDE0CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDA0MDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfQU9FUlIxX1NIRlQgMTUKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjFfQU9FUlIxX1NIRlQgMTYKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjFfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MSF9BT0VSUjFfU0hGVCAxNworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xIX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDAyMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfQU9FUlIxX1NIRlQgMTgKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SSF9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAwNDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1hOX0FPRVJSMV9TSEZUIDE5CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfWE5fQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDgwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9TSV9BT0VSUjFfU0hGVCAyMAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NJX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDEwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfVlBJX0lOVF9TSEZUIDIxCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfVlBJX0lOVF9NQVNLIDB4MDAwMDAwMDAwMDIwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfU1lTVEVNX1NIVVRET1dOX0lOVF9TSEZUIDIyCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfU1lTVEVNX1NIVVRET1dOX0lOVF9NQVNLIDB4MDAwMDAwMDAwMDQwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF8wX1NIRlQgMjMKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzBfTUFTSyAweDAwMDAwMDAwMDA4MDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMV9TSEZUIDI0CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF8xX01BU0sgMHgwMDAwMDAwMDAxMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzJfU0hGVCAyNQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMl9NQVNLIDB4MDAwMDAwMDAwMjAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF8zX1NIRlQgMjYKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzNfTUFTSyAweDAwMDAwMDAwMDQwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfNF9TSEZUIDI3CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF80X01BU0sgMHgwMDAwMDAwMDA4MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzVfU0hGVCAyOAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfNV9NQVNLIDB4MDAwMDAwMDAxMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF82X1NIRlQgMjkKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzZfTUFTSyAweDAwMDAwMDAwMjAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfN19TSEZUIDMwCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF83X01BU0sgMHgwMDAwMDAwMDQwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzhfU0hGVCAzMQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfOF9NQVNLIDB4MDAwMDAwMDA4MDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF85X1NIRlQgMzIKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzlfTUFTSyAweDAwMDAwMDAxMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTBfU0hGVCAzMworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTBfTUFTSyAweDAwMDAwMDAyMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTFfU0hGVCAzNAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTFfTUFTSyAweDAwMDAwMDA0MDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTJfU0hGVCAzNQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTJfTUFTSyAweDAwMDAwMDA4MDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTNfU0hGVCAzNgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTNfTUFTSyAweDAwMDAwMDEwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTRfU0hGVCAzNworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTRfTUFTSyAweDAwMDAwMDIwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTVfU0hGVCAzOAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMTVfTUFTSyAweDAwMDAwMDQwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0wxX05NSV9JTlRfU0hGVCAzOQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0wxX05NSV9JTlRfTUFTSyAweDAwMDAwMDgwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NUT1BfQ0xPQ0tfU0hGVCA0MAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NUT1BfQ0xPQ0tfTUFTSyAweDAwMDAwMTAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0FTSUNfVE9fTDFfU0hGVCA0MQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0FTSUNfVE9fTDFfTUFTSyAweDAwMDAwMjAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0wxX1RPX0FTSUNfU0hGVCA0MgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0wxX1RPX0FTSUNfTUFTSyAweDAwMDAwNDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xUQ19JTlRfU0hGVCA0MworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xUQ19JTlRfTUFTSyAweDAwMDAwODAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xBX1NFUV9UUklHR0VSX1NIRlQgNDQKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQV9TRVFfVFJJR0dFUl9NQVNLIDB4MDAwMDEwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfSVBJX0lOVF9TSEZUIDQ1CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfSVBJX0lOVF9NQVNLIDB4MDAwMDIwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMF9TSEZUIDQ2CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMF9NQVNLIDB4MDAwMDQwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMV9TSEZUIDQ3CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMV9NQVNLIDB4MDAwMDgwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMl9TSEZUIDQ4CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UMl9NQVNLIDB4MDAwMTAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UM19TSEZUIDQ5CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfRVhUSU9fSU5UM19NQVNLIDB4MDAwMjAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUFJPRklMRV9JTlRfU0hGVCA1MAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1BST0ZJTEVfSU5UX01BU0sgMHgwMDA0MDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMwX1NIRlQgNTEKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMwX01BU0sgMHgwMDA4MDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMxX1NIRlQgNTIKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMxX01BU0sgMHgwMDEwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMyX1NIRlQgNTMKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMyX01BU0sgMHgwMDIwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMzX1NIRlQgNTQKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SVEMzX01BU0sgMHgwMDQwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9CQVVfREFUQV9TSEZUIDU1CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfQkFVX0RBVEFfTUFTSyAweDAwODAwMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1BPV0VSX01BTkFHRU1FTlRfUkVRX1NIRlQgNTYKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9QT1dFUl9NQU5BR0VNRU5UX1JFUV9NQVNLIDB4MDEwMDAwMDAwMDAwMDAwMFVMCit1bmlvbiB1dmhfZXZlbnRfb2NjdXJyZWQwX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2V2ZW50X29jY3VycmVkMF9zIHsKKwl1bnNpZ25lZCBsb25nCWxiX2hjZXJyICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlncjBfaGNlcnIgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZ3IxX2hjZXJyICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxoX2hjZXJyICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlyaF9oY2VyciAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJeG5faGNlcnIgICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXNpX2hjZXJyICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9hb2VycjAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZ3IwX2FvZXJyMCAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWdyMV9hb2VycjAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsaF9hb2VycjAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcmhfYW9lcnIwICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXhuX2FvZXJyMCAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlzaV9hb2VycjAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfYW9lcnIxICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWdyMF9hb2VycjEgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlncjFfYW9lcnIxICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGhfYW9lcnIxICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJoX2FvZXJyMSAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwl4bl9hb2VycjEgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJc2lfYW9lcnIxICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJoX3ZwaV9pbnQgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlzeXN0ZW1fc2h1dGRvd25faW50ICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8wICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMSAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzIgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8zICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfNCAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzUgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF82ICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfNyAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzggICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF85ICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzExICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xMiAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTMgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzE0ICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xNSAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWwxX25taV9pbnQgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlzdG9wX2Nsb2NrICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJYXNpY190b19sMSAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWwxX3RvX2FzaWMgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsdGNfaW50ICAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGFfc2VxX3RyaWdnZXIgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWlwaV9pbnQgICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlleHRpb19pbnQwICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZXh0aW9faW50MSAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWV4dGlvX2ludDIgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlleHRpb19pbnQzICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcHJvZmlsZV9pbnQgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJ0YzAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlydGMxICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcnRjMiAgICAgICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJ0YzMgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwliYXVfZGF0YSAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcG93ZXJfbWFuYWdlbWVudF9yZXEgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNTdfNjMgICAgICAgICAgIDogIDc7ICAvKiAgICAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0VWRU5UX09DQ1VSUkVEMF9BTElBUyAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9BTElBUyAweDAwMDAwMDAwMDAwNzAwMDhVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0FMSUFTXzMyIDB4MDA1ZjAKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0lOVF9DTVBCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfSU5UX0NNUEIgMHgyMjA4MFVMCisKKyNkZWZpbmUgVVZIX0lOVF9DTVBCX1JFQUxfVElNRV9DTVBCX1NIRlQgMAorI2RlZmluZSBVVkhfSU5UX0NNUEJfUkVBTF9USU1FX0NNUEJfTUFTSyAweDAwZmZmZmZmZmZmZmZmZmZVTAorCit1bmlvbiB1dmhfaW50X2NtcGJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfaW50X2NtcGJfcyB7CisJdW5zaWduZWQgbG9uZwlyZWFsX3RpbWVfY21wYiA6IDU2OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNTZfNjMgICAgIDogIDg7ICAvKiAgICAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9JTlRfQ01QQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX0lOVF9DTVBDIDB4MjIxMDBVTAorCisjZGVmaW5lIFVWSF9JTlRfQ01QQ19SRUFMX1RJTUVfQ01QQ19TSEZUIDAKKyNkZWZpbmUgVVZIX0lOVF9DTVBDX1JFQUxfVElNRV9DTVBDX01BU0sgMHgwMGZmZmZmZmZmZmZmZmZmVUwKKwordW5pb24gdXZoX2ludF9jbXBjX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2ludF9jbXBjX3MgeworCXVuc2lnbmVkIGxvbmcJcmVhbF90aW1lX2NtcGMgOiA1NjsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzU2XzYzICAgICA6ICA4OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfSU5UX0NNUEQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9JTlRfQ01QRCAweDIyMTgwVUwKKworI2RlZmluZSBVVkhfSU5UX0NNUERfUkVBTF9USU1FX0NNUERfU0hGVCAwCisjZGVmaW5lIFVWSF9JTlRfQ01QRF9SRUFMX1RJTUVfQ01QRF9NQVNLIDB4MDBmZmZmZmZmZmZmZmZmZlVMCisKK3VuaW9uIHV2aF9pbnRfY21wZF91IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9pbnRfY21wZF9zIHsKKwl1bnNpZ25lZCBsb25nCXJlYWxfdGltZV9jbXBkIDogNTY7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF81Nl82MyAgICAgOiAgODsgIC8qICAgICovCisgICAgfSBzOworfTsKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0lQSV9JTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfSVBJX0lOVCAweDYwNTAwVUwKLSNkZWZpbmUgVVZIX0lQSV9JTlRfMzIgMHgwMzYwCisjZGVmaW5lIFVWSF9JUElfSU5UXzMyIDB4MDM0OAogCiAjZGVmaW5lIFVWSF9JUElfSU5UX1ZFQ1RPUl9TSEZUIDAKICNkZWZpbmUgVVZIX0lQSV9JTlRfVkVDVE9SX01BU0sgMHgwMDAwMDAwMDAwMDAwMGZmVUwKQEAgLTUxLDcgKzMyNCw3IEBACiAvKiAgICAgICAgICAgICAgICAgICBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9GSVJTVCAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0ZJUlNUIDB4MzIwMDUwVUwKLSNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfRklSU1RfMzIgMHgwMDlmMAorI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9GSVJTVF8zMiAweDAwOWMwCiAKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfRklSU1RfQUREUkVTU19TSEZUIDQKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfRklSU1RfQUREUkVTU19NQVNLIDB4MDAwMDA3ZmZmZmZmZmZmMFVMCkBAIC03Myw3ICszNDYsNyBAQAogLyogICAgICAgICAgICAgICAgICAgIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0xBU1QgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9MQVNUIDB4MzIwMDYwVUwKLSNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfTEFTVF8zMiAweDAwOWY4CisjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0xBU1RfMzIgMHgwMDljOAogCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0xBU1RfQUREUkVTU19TSEZUIDQKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfTEFTVF9BRERSRVNTX01BU0sgMHgwMDAwMDdmZmZmZmZmZmYwVUwKQEAgLTkxLDcgKzM2NCw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfVEFJTCAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX1RBSUwgMHgzMjAwNzBVTAotI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9UQUlMXzMyIDB4MDBhMDAKKyNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfVEFJTF8zMiAweDAwOWQwCiAKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfVEFJTF9BRERSRVNTX1NIRlQgNAogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9UQUlMX0FERFJFU1NfTUFTSyAweDAwMDAwN2ZmZmZmZmZmZjBVTApAQCAtMTA5LDYgKzM4Miw3IEBACiAvKiAgICAgICAgICAgICAgICAgICBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0UgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9TT0ZUV0FSRV9BQ0tOT1dMRURHRSAweDMyMDA4MFVMCisjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9TT0ZUV0FSRV9BQ0tOT1dMRURHRV8zMiAweDBhNjgKIAogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfUEVORElOR18wX1NIRlQgMAogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfUEVORElOR18wX01BU0sgMHgwMDAwMDAwMDAwMDAwMDAxVUwKQEAgLTE2OSwxMiArNDQzLDEzIEBACiAvKiAgICAgICAgICAgICAgICBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfQUxJQVMgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9TT0ZUV0FSRV9BQ0tOT1dMRURHRV9BTElBUyAweDAwMDAwMDAwMDAzMjAwODhVTAorI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfQUxJQVNfMzIgMHgwYTcwCiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qICAgICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0wgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0wgMHgzMjAwMjBVTAotI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fQ09OVFJPTF8zMiAweDAwOWQ4CisjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9DT05UUk9MXzMyIDB4MDA5YTgKIAogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fQ09OVFJPTF9JTkRFWF9TSEZUIDAKICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0xfSU5ERVhfTUFTSyAweDAwMDAwMDAwMDAwMDAwM2ZVTApAQCAtMTk3LDcgKzQ3Miw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18wICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMCAweDMyMDAzMFVMCi0jZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMF8zMiAweDAwOWUwCisjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMF8zMiAweDAwOWIwCiAKICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18wX1NUQVRVU19TSEZUIDAKICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18wX1NUQVRVU19NQVNLIDB4ZmZmZmZmZmZmZmZmZmZmZlVMCkBAIC0yMTMsNyArNDg4LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzEgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xIDB4MzIwMDQwVUwKLSNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xXzMyIDB4MDA5ZTgKKyNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xXzMyIDB4MDA5YjgKIAogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzFfU1RBVFVTX1NIRlQgMAogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzFfU1RBVFVTX01BU0sgMHhmZmZmZmZmZmZmZmZmZmZmVUwKQEAgLTIyOSw3ICs1MDQsNyBAQAogLyogICAgICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9TQl9ERVNDUklQVE9SX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0RFU0NSSVBUT1JfQkFTRSAweDMyMDAxMFVMCi0jZGVmaW5lIFVWSF9MQl9CQVVfU0JfREVTQ1JJUFRPUl9CQVNFXzMyIDB4MDA5ZDAKKyNkZWZpbmUgVVZIX0xCX0JBVV9TQl9ERVNDUklQVE9SX0JBU0VfMzIgMHgwMDlhMAogCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfREVTQ1JJUFRPUl9CQVNFX1BBR0VfQUREUkVTU19TSEZUIDEyCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfREVTQ1JJUFRPUl9CQVNFX1BBR0VfQUREUkVTU19NQVNLIDB4MDAwMDA3ZmZmZmZmZjAwMFVMCkBAIC0yNDgsNiArNTIzLDMzNCBAQAogfTsKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEUgMHg1MGIyMFVMCisKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX09CRVNFX01TR19TSEZUIDAKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX09CRVNFX01TR19NQVNLIDB4MDAwMDAwMDAwMDAwMDAwMVVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9EQVRBX1NCX0VSUl9TSEZUIDEKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX0RBVEFfU0JfRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDAyVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX05BQ0tfQlVGRl9QQVJJVFlfU0hGVCAyCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9OQUNLX0JVRkZfUEFSSVRZX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA0VUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1RJTUVPVVRfU0hGVCAzCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9USU1FT1VUX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA4VUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX0lOQUNUSVZFX1JFUExZX1NIRlQgNAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfSU5BQ1RJVkVfUkVQTFlfTUFTSyAweDAwMDAwMDAwMDAwMDAwMTBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfVVBHUkFERV9FUlJPUl9TSEZUIDUKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1VQR1JBREVfRVJST1JfTUFTSyAweDAwMDAwMDAwMDAwMDAwMjBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfUkVHX0NPVU5UX1VOREVSRkxPV19TSEZUIDYKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1JFR19DT1VOVF9VTkRFUkZMT1dfTUFTSyAweDAwMDAwMDAwMDAwMDAwNDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfUkVQX09CRVNFX01TR19TSEZUIDcKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1JFUF9PQkVTRV9NU0dfTUFTSyAweDAwMDAwMDAwMDAwMDAwODBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUV9SVU5UX01TR19TSEZUIDgKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVFfUlVOVF9NU0dfTUFTSyAweDAwMDAwMDAwMDAwMDAxMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUV9PQkVTRV9NU0dfU0hGVCA5CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVRX09CRVNFX01TR19NQVNLIDB4MDAwMDAwMDAwMDAwMDIwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVRX0RBVEFfU0JfRVJSX1NIRlQgMTAKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVFfREFUQV9TQl9FUlJfTUFTSyAweDAwMDAwMDAwMDAwMDA0MDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUF9SVU5UX01TR19TSEZUIDExCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVQX1JVTlRfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDAwODAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfT0JFU0VfTVNHX1NIRlQgMTIKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfT0JFU0VfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfREFUQV9TQl9FUlJfU0hGVCAxMworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUF9EQVRBX1NCX0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMjAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVQX0NPTU1BTkRfRVJSX1NIRlQgMTQKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfQ09NTUFORF9FUlJfTUFTSyAweDAwMDAwMDAwMDAwMDQwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1BFTkRfVElNRU9VVF9TSEZUIDE1CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUEVORF9USU1FT1VUX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVRX1JVTlRfTVNHX1NIRlQgMTYKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVRX1JVTlRfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVRX09CRVNFX01TR19TSEZUIDE3CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUV9PQkVTRV9NU0dfTUFTSyAweDAwMDAwMDAwMDAwMjAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVFfREFUQV9TQl9FUlJfU0hGVCAxOAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVFfREFUQV9TQl9FUlJfTUFTSyAweDAwMDAwMDAwMDAwNDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVBfUlVOVF9NU0dfU0hGVCAxOQorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVBfUlVOVF9NU0dfTUFTSyAweDAwMDAwMDAwMDAwODAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVBfT0JFU0VfTVNHX1NIRlQgMjAKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVQX09CRVNFX01TR19NQVNLIDB4MDAwMDAwMDAwMDEwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUF9EQVRBX1NCX0VSUl9TSEZUIDIxCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUF9EQVRBX1NCX0VSUl9NQVNLIDB4MDAwMDAwMDAwMDIwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX0FNT19USU1FT1VUX1NIRlQgMjIKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfQU1PX1RJTUVPVVRfTUFTSyAweDAwMDAwMDAwMDA0MDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19QVVRfVElNRU9VVF9TSEZUIDIzCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1BVVF9USU1FT1VUX01BU0sgMHgwMDAwMDAwMDAwODAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfU1BVUklPVVNfRVZFTlRfU0hGVCAyNAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19TUFVSSU9VU19FVkVOVF9NQVNLIDB4MDAwMDAwMDAwMTAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JT0hfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX1NIRlQgMjUKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lPSF9ERVNUSU5BVElPTl9UQUJMRV9QQVJJVFlfTUFTSyAweDAwMDAwMDAwMDIwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfR0VUX0hBRF9FUlJPUl9SRVBMWV9TSEZUIDI2CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9HRVRfSEFEX0VSUk9SX1JFUExZX01BU0sgMHgwMDAwMDAwMDA0MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0dFVF9USU1FT1VUX1NIRlQgMjcKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0dFVF9USU1FT1VUX01BU0sgMHgwMDAwMDAwMDA4MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0xPQ0tfTUFOQUdFUl9IQURfRVJST1JfUkVQTFlfU0hGVCAyOAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTE9DS19NQU5BR0VSX0hBRF9FUlJPUl9SRVBMWV9NQVNLIDB4MDAwMDAwMDAxMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9QVVRfSEFEX0VSUk9SX1JFUExZX1NIRlQgMjkKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1BVVF9IQURfRVJST1JfUkVQTFlfTUFTSyAweDAwMDAwMDAwMjAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfUFVUX1RJTUVPVVRfU0hGVCAzMAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfUFVUX1RJTUVPVVRfTUFTSyAweDAwMDAwMDAwNDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfU0JfQUNUSVZBVElPTl9PVkVSUlVOX1NIRlQgMzEKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1NCX0FDVElWQVRJT05fT1ZFUlJVTl9NQVNLIDB4MDAwMDAwMDA4MDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9DT01QTEVURURfR0JfQUNUSVZBVElPTl9IQURfRVJST1JfUkVQTFlfU0hGVCAzMgorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfQ09NUExFVEVEX0dCX0FDVElWQVRJT05fSEFEX0VSUk9SX1JFUExZX01BU0sgMHgwMDAwMDAwMTAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0NPTVBMRVRFRF9HQl9BQ1RJVkFUSU9OX1RJTUVPVVRfU0hGVCAzMworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfQ09NUExFVEVEX0dCX0FDVElWQVRJT05fVElNRU9VVF9NQVNLIDB4MDAwMDAwMDIwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9ERVNDUklQVE9SX0JVRkZFUl8wX1BBUklUWV9TSEZUIDM0CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9ERVNDUklQVE9SX0JVRkZFUl8wX1BBUklUWV9NQVNLIDB4MDAwMDAwMDQwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9ERVNDUklQVE9SX0JVRkZFUl8xX1BBUklUWV9TSEZUIDM1CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9ERVNDUklQVE9SX0JVRkZFUl8xX1BBUklUWV9NQVNLIDB4MDAwMDAwMDgwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9TT0NLRVRfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX1NIRlQgMzYKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1NPQ0tFVF9ERVNUSU5BVElPTl9UQUJMRV9QQVJJVFlfTUFTSyAweDAwMDAwMDEwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfQkFVX1JFUExZX1BBWUxPQURfQ09SUlVQVElPTl9TSEZUIDM3CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9CQVVfUkVQTFlfUEFZTE9BRF9DT1JSVVBUSU9OX01BU0sgMHgwMDAwMDAyMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lPX1BPUlRfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX1NIRlQgMzgKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lPX1BPUlRfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX01BU0sgMHgwMDAwMDA0MDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lOVERfU09GVF9BQ0tfVElNRU9VVF9TSEZUIDM5CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JTlREX1NPRlRfQUNLX1RJTUVPVVRfTUFTSyAweDAwMDAwMDgwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfSU5UX1JFUF9PQkVTRV9NU0dfU0hGVCA0MAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfSU5UX1JFUF9PQkVTRV9NU0dfTUFTSyAweDAwMDAwMTAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfSU5UX1JFUF9DT01NQU5EX0VSUl9TSEZUIDQxCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JTlRfUkVQX0NPTU1BTkRfRVJSX01BU0sgMHgwMDAwMDIwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lOVF9USU1FT1VUX1NIRlQgNDIKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lOVF9USU1FT1VUX01BU0sgMHgwMDAwMDQwMDAwMDAwMDAwVUwKKwordW5pb24gdXZoX2xiX21jYXN0X2FvZXJyMF9ycHRfZW5hYmxlX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2xiX21jYXN0X2FvZXJyMF9ycHRfZW5hYmxlX3MgeworCXVuc2lnbmVkIGxvbmcJbWNhc3Rfb2Jlc2VfbXNnICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfZGF0YV9zYl9lcnIgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfbmFja19idWZmX3Bhcml0eSAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfdGltZW91dCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfaW5hY3RpdmVfcmVwbHkgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfdXBncmFkZV9lcnJvciAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfcmVnX2NvdW50X3VuZGVyZmxvdyAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWNhc3RfcmVwX29iZXNlX21zZyAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcV9ydW50X21zZyAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcV9vYmVzZV9tc2cgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcV9kYXRhX3NiX2VyciAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcF9ydW50X21zZyAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcF9vYmVzZV9tc2cgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcF9kYXRhX3NiX2VyciAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3JlcF9jb21tYW5kX2VyciAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJdWNhY2hlX3BlbmRfdGltZW91dCAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXFfcnVudF9tc2cgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXFfb2Jlc2VfbXNnICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXFfZGF0YV9zYl9lcnIgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXBfcnVudF9tc2cgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXBfb2Jlc2VfbXNnICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19yZXBfZGF0YV9zYl9lcnIgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19hbW9fdGltZW91dCAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19wdXRfdGltZW91dCAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbWFjY19zcHVyaW91c19ldmVudCAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW9oX2Rlc3RpbmF0aW9uX3RhYmxlX3Bhcml0eSAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ2V0X2hhZF9lcnJvcl9yZXBseSAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ2V0X3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbG9ja19tYW5hZ2VyX2hhZF9lcnJvcl9yZXBseSAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcHV0X2hhZF9lcnJvcl9yZXBseSAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcHV0X3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc2JfYWN0aXZhdGlvbl9vdmVycnVuICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJY29tcGxldGVkX2diX2FjdGl2YXRpb25faGFkX2Vycm9yX3JlcGx5IDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJY29tcGxldGVkX2diX2FjdGl2YXRpb25fdGltZW91dCAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZGVzY3JpcHRvcl9idWZmZXJfMF9wYXJpdHkgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZGVzY3JpcHRvcl9idWZmZXJfMV9wYXJpdHkgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc29ja2V0X2Rlc3RpbmF0aW9uX3RhYmxlX3Bhcml0eSAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJYmF1X3JlcGx5X3BheWxvYWRfY29ycnVwdGlvbiAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW9fcG9ydF9kZXN0aW5hdGlvbl90YWJsZV9wYXJpdHkgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW50ZF9zb2Z0X2Fja190aW1lb3V0ICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW50X3JlcF9vYmVzZV9tc2cgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW50X3JlcF9jb21tYW5kX2VyciAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJaW50X3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF80M182MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMjE7ICAvKiAgICAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfTE9DQUxfSU5UMF9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHIDB4NjEwMDBVTAorCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19WRUNUT1JfU0hGVCAwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19WRUNUT1JfTUFTSyAweDAwMDAwMDAwMDAwMDAwZmZVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfRE1fU0hGVCA4CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19ETV9NQVNLIDB4MDAwMDAwMDAwMDAwMDcwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19ERVNUTU9ERV9TSEZUIDExCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19ERVNUTU9ERV9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19TVEFUVVNfU0hGVCAxMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfU1RBVFVTX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX1BfU0hGVCAxMworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfUF9NQVNLIDB4MDAwMDAwMDAwMDAwMjAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19UX1NIRlQgMTUKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX1RfTUFTSyAweDAwMDAwMDAwMDAwMDgwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfTV9TSEZUIDE2CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19NX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX0FQSUNfSURfU0hGVCAzMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfQVBJQ19JRF9NQVNLIDB4ZmZmZmZmZmYwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9sb2NhbF9pbnQwX2NvbmZpZ191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9sb2NhbF9pbnQwX2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXZlY3Rvcl8gIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZG0gICAgICAgOiAgMzsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkZXN0bW9kZSA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXN0YXR1cyAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE0ICA6ICAxOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCXQgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJbSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE3XzMxOiAxNTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlhcGljX2lkICA6IDMyOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRSAweDY1MDAwVUwKKworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSENFUlJfU0hGVCAwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAwMVVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfSENFUlJfU0hGVCAxCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDJVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IxX0hDRVJSX1NIRlQgMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IxX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA0VUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xIX0hDRVJSX1NIRlQgMworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEhfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDhVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfSENFUlJfU0hGVCA0CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9SSF9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAxMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9YTl9IQ0VSUl9TSEZUIDUKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1hOX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDIwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NJX0hDRVJSX1NIRlQgNgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfU0lfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwNDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfQU9FUlIwX1NIRlQgNworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwMDgwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0dSMF9BT0VSUjBfU0hGVCA4CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwMTAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0dSMV9BT0VSUjBfU0hGVCA5CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjFfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwMjAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xIX0FPRVJSMF9TSEZUIDEwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MSF9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDA0MDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfQU9FUlIwX1NIRlQgMTEKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1JIX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9YTl9BT0VSUjBfU0hGVCAxMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfWE5fQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NJX0FPRVJSMF9TSEZUIDEzCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TSV9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfQU9FUlIxX1NIRlQgMTQKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDAwNDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfQU9FUlIxX1NIRlQgMTUKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0dSMF9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAwMDgwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IxX0FPRVJSMV9TSEZUIDE2CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjFfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xIX0FPRVJSMV9TSEZUIDE3CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MSF9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAwMjAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfQU9FUlIxX1NIRlQgMTgKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1JIX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDA0MDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9YTl9BT0VSUjFfU0hGVCAxOQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfWE5fQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDgwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NJX0FPRVJSMV9TSEZUIDIwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TSV9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAxMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfVlBJX0lOVF9TSEZUIDIxCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9SSF9WUElfSU5UX01BU0sgMHgwMDAwMDAwMDAwMjAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NZU1RFTV9TSFVURE9XTl9JTlRfU0hGVCAyMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfU1lTVEVNX1NIVVRET1dOX0lOVF9NQVNLIDB4MDAwMDAwMDAwMDQwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzBfU0hGVCAyMworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8wX01BU0sgMHgwMDAwMDAwMDAwODAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMV9TSEZUIDI0CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzFfTUFTSyAweDAwMDAwMDAwMDEwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8yX1NIRlQgMjUKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMl9NQVNLIDB4MDAwMDAwMDAwMjAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzNfU0hGVCAyNgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8zX01BU0sgMHgwMDAwMDAwMDA0MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfNF9TSEZUIDI3CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzRfTUFTSyAweDAwMDAwMDAwMDgwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF81X1NIRlQgMjgKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfNV9NQVNLIDB4MDAwMDAwMDAxMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzZfU0hGVCAyOQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF82X01BU0sgMHgwMDAwMDAwMDIwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfN19TSEZUIDMwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzdfTUFTSyAweDAwMDAwMDAwNDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF84X1NIRlQgMzEKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfOF9NQVNLIDB4MDAwMDAwMDA4MDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzlfU0hGVCAzMgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF85X01BU0sgMHgwMDAwMDAwMTAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTBfU0hGVCAzMworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xMF9NQVNLIDB4MDAwMDAwMDIwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzExX1NIRlQgMzQKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTFfTUFTSyAweDAwMDAwMDA0MDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xMl9TSEZUIDM1CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzEyX01BU0sgMHgwMDAwMDAwODAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTNfU0hGVCAzNgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xM19NQVNLIDB4MDAwMDAwMTAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzE0X1NIRlQgMzcKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTRfTUFTSyAweDAwMDAwMDIwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xNV9TSEZUIDM4CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzE1X01BU0sgMHgwMDAwMDA0MDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0wxX05NSV9JTlRfU0hGVCAzOQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTDFfTk1JX0lOVF9NQVNLIDB4MDAwMDAwODAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TVE9QX0NMT0NLX1NIRlQgNDAKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NUT1BfQ0xPQ0tfTUFTSyAweDAwMDAwMTAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfQVNJQ19UT19MMV9TSEZUIDQxCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9BU0lDX1RPX0wxX01BU0sgMHgwMDAwMDIwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0wxX1RPX0FTSUNfU0hGVCA0MgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTDFfVE9fQVNJQ19NQVNLIDB4MDAwMDA0MDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MVENfSU5UX1NIRlQgNDMKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xUQ19JTlRfTUFTSyAweDAwMDAwODAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEFfU0VRX1RSSUdHRVJfU0hGVCA0NAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEFfU0VRX1RSSUdHRVJfTUFTSyAweDAwMDAxMDAwMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfbG9jYWxfaW50MF9lbmFibGVfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfbG9jYWxfaW50MF9lbmFibGVfcyB7CisJdW5zaWduZWQgbG9uZwlsYl9oY2VyciAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ3IwX2hjZXJyICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWdyMV9oY2VyciAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsaF9oY2VyciAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcmhfaGNlcnIgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXhuX2hjZXJyICAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlzaV9oY2VyciAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfYW9lcnIwICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWdyMF9hb2VycjAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlncjFfYW9lcnIwICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGhfYW9lcnIwICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJoX2FvZXJyMCAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwl4bl9hb2VycjAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc2lfYW9lcnIwICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2FvZXJyMSAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlncjBfYW9lcnIxICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ3IxX2FvZXJyMSAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxoX2FvZXJyMSAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyaF9hb2VycjEgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJeG5fYW9lcnIxICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXNpX2FvZXJyMSAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyaF92cGlfaW50ICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc3lzdGVtX3NodXRkb3duX2ludCA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMCAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8yICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMyAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzQgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF81ICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfNiAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzcgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF84ICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfOSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEwICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xMSAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTIgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEzICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xNCAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTUgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsMV9ubWlfaW50ICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc3RvcF9jbG9jayAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWFzaWNfdG9fbDEgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsMV90b19hc2ljICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbHRjX2ludCAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxhX3NlcV90cmlnZ2VyICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzQ1XzYzICAgICAgICAgIDogMTk7ICAvKiAgICAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9OT0RFX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX05PREVfSUQgMHgwVUwKQEAgLTI4NCwxNCArODg3LDEwMSBAQAogfTsKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9OT0RFX1BSRVNFTlRfVEFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFIDB4MTQwMFVMCisjZGVmaW5lIFVWSF9OT0RFX1BSRVNFTlRfVEFCTEVfREVQVEggMTYKKworI2RlZmluZSBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFX05PREVTX1NIRlQgMAorI2RlZmluZSBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFX05PREVTX01BU0sgMHhmZmZmZmZmZmZmZmZmZmZmVUwKKwordW5pb24gdXZoX25vZGVfcHJlc2VudF90YWJsZV91IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9ub2RlX3ByZXNlbnRfdGFibGVfcyB7CisJdW5zaWduZWQgbG9uZwlub2RlcyA6IDY0OyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18wX01NUiAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzBfTU1SIDB4MTYwMDBkMFVMCisKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMF9NTVJfREVTVF9CQVNFX1NIRlQgMjQKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMF9NTVJfREVTVF9CQVNFX01BU0sgMHgwMDAwM2ZmZmZmMDAwMDAwVUwKKwordW5pb24gdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMF9tbXJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcmhfZ2FtX2FsaWFzMjEwX3JlZGlyZWN0X2NvbmZpZ18wX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yMyA6IDI0OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWRlc3RfYmFzZSA6IDIyOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDZfNjM6IDE4OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18xX01NUiAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzFfTU1SIDB4MTYwMDBlMFVMCisKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMV9NTVJfREVTVF9CQVNFX1NIRlQgMjQKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMV9NTVJfREVTVF9CQVNFX01BU0sgMHgwMDAwM2ZmZmZmMDAwMDAwVUwKKwordW5pb24gdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMV9tbXJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcmhfZ2FtX2FsaWFzMjEwX3JlZGlyZWN0X2NvbmZpZ18xX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yMyA6IDI0OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWRlc3RfYmFzZSA6IDIyOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDZfNjM6IDE4OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18yX01NUiAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzJfTU1SIDB4MTYwMDBmMFVMCisKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMl9NTVJfREVTVF9CQVNFX1NIRlQgMjQKKyNkZWZpbmUgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMl9NTVJfREVTVF9CQVNFX01BU0sgMHgwMDAwM2ZmZmZmMDAwMDAwVUwKKwordW5pb24gdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMl9tbXJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcmhfZ2FtX2FsaWFzMjEwX3JlZGlyZWN0X2NvbmZpZ18yX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yMyA6IDI0OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWRlc3RfYmFzZSA6IDIyOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDZfNjM6IDE4OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fQ0ZHX09WRVJMQVlfQ09ORklHX01NUiAweDE2MDAwMjBVTAorCisjZGVmaW5lIFVWSF9SSF9HQU1fQ0ZHX09WRVJMQVlfQ09ORklHX01NUl9CQVNFX1NIRlQgMjYKKyNkZWZpbmUgVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfTUFTSyAweDAwMDAzZmZmZmMwMDAwMDBVTAorI2RlZmluZSBVVkhfUkhfR0FNX0NGR19PVkVSTEFZX0NPTkZJR19NTVJfRU5BQkxFX1NIRlQgNjMKKyNkZWZpbmUgVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SX0VOQUJMRV9NQVNLIDB4ODAwMDAwMDAwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9yaF9nYW1fY2ZnX292ZXJsYXlfY29uZmlnX21tcl91IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9yaF9nYW1fY2ZnX292ZXJsYXlfY29uZmlnX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yNTogMjY7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYmFzZSAgIDogMjA7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF80Nl82MjogMTc7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJZW5hYmxlIDogIDE7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qICAgICAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVIgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SIDB4MTYwMDAxMFVMCiAKICNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfU0hGVCAyOAogI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9NQVNLIDB4MDAwMDNmZmZmMDAwMDAwMFVMCi0jZGVmaW5lIFVWSF9SSF9HQU1fR1JVX09WRVJMQVlfQ09ORklHX01NUl9HUjRfU0hGVCA0NgotI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfR1I0X01BU0sgMHgwMDAwNDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX0dSNF9TSEZUIDQ4CisjZGVmaW5lIFVWSF9SSF9HQU1fR1JVX09WRVJMQVlfQ09ORklHX01NUl9HUjRfTUFTSyAweDAwMDEwMDAwMDAwMDAwMDBVTAogI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfTl9HUlVfU0hGVCA1MgogI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfTl9HUlVfTUFTSyAweDAwZjAwMDAwMDAwMDAwMDBVTAogI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfRU5BQkxFX1NIRlQgNjMKQEAgLTMwMiw4ICs5OTIsOSBAQAogICAgIHN0cnVjdCB1dmhfcmhfZ2FtX2dydV9vdmVybGF5X2NvbmZpZ19tbXJfcyB7CiAJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjc6IDI4OyAgLyogICAgKi8KIAl1bnNpZ25lZCBsb25nCWJhc2UgICA6IDE4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDZfNDc6ICAyOyAgLyogICAgKi8KIAl1bnNpZ25lZCBsb25nCWdyNCAgICA6ICAxOyAgLyogUlcgKi8KLQl1bnNpZ25lZCBsb25nCXJzdmRfNDdfNTE6ICA1OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDlfNTE6ICAzOyAgLyogICAgKi8KIAl1bnNpZ25lZCBsb25nCW5fZ3J1ICA6ICA0OyAgLyogUlcgKi8KIAl1bnNpZ25lZCBsb25nCXJzdmRfNTZfNjI6ICA3OyAgLyogICAgKi8KIAl1bnNpZ25lZCBsb25nCWVuYWJsZSA6ICAxOyAgLyogUlcgKi8KQEAgLTMxMSw2ICsxMDAyLDMyIEBACiB9OwogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUiAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SIDB4MTYwMDAzMFVMCisKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9TSEZUIDMwCisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfTUFTSyAweDAwMDAzZmZmYzAwMDAwMDBVTAorI2RlZmluZSBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUl9NX0lPX1NIRlQgNDYKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfTV9JT19NQVNLIDB4MDAwZmMwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SX05fSU9fU0hGVCA1MgorI2RlZmluZSBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUl9OX0lPX01BU0sgMHgwMGYwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfRU5BQkxFX1NIRlQgNjMKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfRU5BQkxFX01BU0sgMHg4MDAwMDAwMDAwMDAwMDAwVUwKKwordW5pb24gdXZoX3JoX2dhbV9tbWlvaF9vdmVybGF5X2NvbmZpZ19tbXJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcmhfZ2FtX21taW9oX292ZXJsYXlfY29uZmlnX21tcl9zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yOTogMzA7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYmFzZSAgIDogMTY7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbV9pbyAgIDogIDY7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbl9pbyAgIDogIDQ7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF81Nl82MjogIDc7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJZW5hYmxlIDogIDE7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qICAgICAgICAgICAgICAgICAgICBVVkhfUkhfR0FNX01NUl9PVkVSTEFZX0NPTkZJR19NTVIgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX1JIX0dBTV9NTVJfT1ZFUkxBWV9DT05GSUdfTU1SIDB4MTYwMDAyOFVMCkBAIC0zMzYsNyArMTA1Myw3IEBACiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9SVEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi0jZGVmaW5lIFVWSF9SVEMgMHgyODAwMFVMCisjZGVmaW5lIFVWSF9SVEMgMHgzNDAwMDBVTAogCiAjZGVmaW5lIFVWSF9SVENfUkVBTF9USU1FX0NMT0NLX1NIRlQgMAogI2RlZmluZSBVVkhfUlRDX1JFQUxfVElNRV9DTE9DS19NQVNLIDB4MDBmZmZmZmZmZmZmZmZmZlVMCkBAIC0zNTAsNiArMTA2NywxMzkgQEAKIH07CiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX1JUQzFfSU5UX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJRyAweDYxNWMwVUwKKworI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX1ZFQ1RPUl9TSEZUIDAKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19WRUNUT1JfTUFTSyAweDAwMDAwMDAwMDAwMDAwZmZVTAorI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX0RNX1NIRlQgOAorI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX0RNX01BU0sgMHgwMDAwMDAwMDAwMDAwNzAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19ERVNUTU9ERV9TSEZUIDExCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfREVTVE1PREVfTUFTSyAweDAwMDAwMDAwMDAwMDA4MDBVTAorI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX1NUQVRVU19TSEZUIDEyCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfU1RBVFVTX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19QX1NIRlQgMTMKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19QX01BU0sgMHgwMDAwMDAwMDAwMDAyMDAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19UX1NIRlQgMTUKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19UX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19NX1NIRlQgMTYKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19NX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19BUElDX0lEX1NIRlQgMzIKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19BUElDX0lEX01BU0sgMHhmZmZmZmZmZjAwMDAwMDAwVUwKKwordW5pb24gdXZoX3J0YzFfaW50X2NvbmZpZ191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9ydGMxX2ludF9jb25maWdfcyB7CisJdW5zaWduZWQgbG9uZwl2ZWN0b3JfICA6ICA4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRtICAgICAgIDogIDM7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZGVzdG1vZGUgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlzdGF0dXMgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCXAgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xNCAgOiAgMTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwl0ICAgICAgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCW0gICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xN18zMTogMTU7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYXBpY19pZCAgOiAzMjsgIC8qIFJXICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfUlRDMl9JTlRfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHIDB4NjE2MDBVTAorCisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfVkVDVE9SX1NIRlQgMAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1ZFQ1RPUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDBmZlVMCisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfRE1fU0hGVCA4CisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfRE1fTUFTSyAweDAwMDAwMDAwMDAwMDA3MDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX0RFU1RNT0RFX1NIRlQgMTEKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19ERVNUTU9ERV9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfU1RBVFVTX1NIRlQgMTIKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19TVEFUVVNfTUFTSyAweDAwMDAwMDAwMDAwMDEwMDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1BfU0hGVCAxMworI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1BfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1RfU0hGVCAxNQorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1RfTUFTSyAweDAwMDAwMDAwMDAwMDgwMDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX01fU0hGVCAxNgorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX01fTUFTSyAweDAwMDAwMDAwMDAwMTAwMDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX0FQSUNfSURfU0hGVCAzMgorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX0FQSUNfSURfTUFTSyAweGZmZmZmZmZmMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfcnRjMl9pbnRfY29uZmlnX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3J0YzJfaW50X2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXZlY3Rvcl8gIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZG0gICAgICAgOiAgMzsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkZXN0bW9kZSA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXN0YXR1cyAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE0ICA6ICAxOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCXQgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJbSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE3XzMxOiAxNTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlhcGljX2lkICA6IDMyOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9SVEMzX0lOVF9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUcgMHg2MTY0MFVMCisKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19WRUNUT1JfU0hGVCAwCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfVkVDVE9SX01BU0sgMHgwMDAwMDAwMDAwMDAwMGZmVUwKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19ETV9TSEZUIDgKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19ETV9NQVNLIDB4MDAwMDAwMDAwMDAwMDcwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfREVTVE1PREVfU0hGVCAxMQorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX0RFU1RNT0RFX01BU0sgMHgwMDAwMDAwMDAwMDAwODAwVUwKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19TVEFUVVNfU0hGVCAxMgorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX1NUQVRVU19NQVNLIDB4MDAwMDAwMDAwMDAwMTAwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfUF9TSEZUIDEzCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfUF9NQVNLIDB4MDAwMDAwMDAwMDAwMjAwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfVF9TSEZUIDE1CisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfVF9NQVNLIDB4MDAwMDAwMDAwMDAwODAwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfTV9TSEZUIDE2CisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfTV9NQVNLIDB4MDAwMDAwMDAwMDAxMDAwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfQVBJQ19JRF9TSEZUIDMyCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfQVBJQ19JRF9NQVNLIDB4ZmZmZmZmZmYwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9ydGMzX2ludF9jb25maWdfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcnRjM19pbnRfY29uZmlnX3MgeworCXVuc2lnbmVkIGxvbmcJdmVjdG9yXyAgOiAgODsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkbSAgICAgICA6ICAzOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRlc3Rtb2RlIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc3RhdHVzICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlwICAgICAgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMTQgIDogIDE7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJdCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwltICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMTdfMzE6IDE1OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWFwaWNfaWQgIDogMzI7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9SVENfSU5DX1JBVElPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX1JUQ19JTkNfUkFUSU8gMHgzNTAwMDBVTAorCisjZGVmaW5lIFVWSF9SVENfSU5DX1JBVElPX0ZSQUNUSU9OX1NIRlQgMAorI2RlZmluZSBVVkhfUlRDX0lOQ19SQVRJT19GUkFDVElPTl9NQVNLIDB4MDAwMDAwMDAwMDBmZmZmZlVMCisjZGVmaW5lIFVWSF9SVENfSU5DX1JBVElPX1JBVElPX1NIRlQgMjAKKyNkZWZpbmUgVVZIX1JUQ19JTkNfUkFUSU9fUkFUSU9fTUFTSyAweDAwMDAwMDAwMDA3MDAwMDBVTAorCit1bmlvbiB1dmhfcnRjX2luY19yYXRpb191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9ydGNfaW5jX3JhdGlvX3MgeworCXVuc2lnbmVkIGxvbmcJZnJhY3Rpb24gOiAyMDsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyYXRpbyAgICA6ICAzOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMjNfNjM6IDQxOyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX1NJX0FERFJfTUFQX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9TSV9BRERSX01BUF9DT05GSUcgMHhjODAwMDBVTApAQCAtMzY5LDUgKzEyMTksNzcgQEAKICAgICB9IHM7CiB9OwogCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgVVZIX1NJX0FMSUFTMF9PVkVSTEFZX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUcgMHhjODAwMDhVTAorCisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfQkFTRV9TSEZUIDI0CisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfQkFTRV9NQVNLIDB4MDAwMDAwMDBmZjAwMDAwMFVMCisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfTV9BTElBU19TSEZUIDQ4CisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfTV9BTElBU19NQVNLIDB4MDAxZjAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfRU5BQkxFX1NIRlQgNjMKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMF9PVkVSTEFZX0NPTkZJR19FTkFCTEVfTUFTSyAweDgwMDAwMDAwMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfc2lfYWxpYXMwX292ZXJsYXlfY29uZmlnX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3NpX2FsaWFzMF9vdmVybGF5X2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yMzogMjQ7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYmFzZSAgICA6ICA4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMzJfNDc6IDE2OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCW1fYWxpYXMgOiAgNTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzUzXzYyOiAxMDsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwllbmFibGUgIDogIDE7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICBVVkhfU0lfQUxJQVMxX09WRVJMQVlfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJRyAweGM4MDAxMFVMCisKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19CQVNFX1NIRlQgMjQKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19CQVNFX01BU0sgMHgwMDAwMDAwMGZmMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19NX0FMSUFTX1NIRlQgNDgKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19NX0FMSUFTX01BU0sgMHgwMDFmMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19FTkFCTEVfU0hGVCA2MworI2RlZmluZSBVVkhfU0lfQUxJQVMxX09WRVJMQVlfQ09ORklHX0VOQUJMRV9NQVNLIDB4ODAwMDAwMDAwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9zaV9hbGlhczFfb3ZlcmxheV9jb25maWdfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfc2lfYWxpYXMxX292ZXJsYXlfY29uZmlnX3MgeworCXVuc2lnbmVkIGxvbmcJcnN2ZF8wXzIzOiAyNDsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwliYXNlICAgIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8zMl80NzogMTY7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJbV9hbGlhcyA6ICA1OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNTNfNjI6IDEwOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWVuYWJsZSAgOiAgMTsgIC8qIFJXICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgIFVWSF9TSV9BTElBUzJfT1ZFUkxBWV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHIDB4YzgwMDE4VUwKKworI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX0JBU0VfU0hGVCAyNAorI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX0JBU0VfTUFTSyAweDAwMDAwMDAwZmYwMDAwMDBVTAorI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX01fQUxJQVNfU0hGVCA0OAorI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX01fQUxJQVNfTUFTSyAweDAwMWYwMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX0VOQUJMRV9TSEZUIDYzCisjZGVmaW5lIFVWSF9TSV9BTElBUzJfT1ZFUkxBWV9DT05GSUdfRU5BQkxFX01BU0sgMHg4MDAwMDAwMDAwMDAwMDAwVUwKKwordW5pb24gdXZoX3NpX2FsaWFzMl9vdmVybGF5X2NvbmZpZ191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9zaV9hbGlhczJfb3ZlcmxheV9jb25maWdfcyB7CisJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjM6IDI0OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWJhc2UgICAgOiAgODsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzMyXzQ3OiAxNjsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwltX2FsaWFzIDogIDU7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF81M182MjogMTA7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJZW5hYmxlICA6ICAxOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCiAKICNlbmRpZiAvKiBfX0FTTV9YODZfVVZfTU1SU19fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9jb2JhbHQuaCBiL2luY2x1ZGUvYXNtLXg4Ni92aXN3cy9jb2JhbHQuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvY29iYWx0LmgKcmVuYW1lIHRvIGluY2x1ZGUvYXNtLXg4Ni92aXN3cy9jb2JhbHQuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbGl0aGl1bS5oIGIvaW5jbHVkZS9hc20teDg2L3Zpc3dzL2xpdGhpdW0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvbGl0aGl1bS5oCnJlbmFtZSB0byBpbmNsdWRlL2FzbS14ODYvdmlzd3MvbGl0aGl1bS5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9waWl4NC5oIGIvaW5jbHVkZS9hc20teDg2L3Zpc3dzL3BpaXg0LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL3BpaXg0LmgKcmVuYW1lIHRvIGluY2x1ZGUvYXNtLXg4Ni92aXN3cy9waWl4NC5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdmlzd3Mvc2dpdncuaCBiL2luY2x1ZGUvYXNtLXg4Ni92aXN3cy9zZ2l2dy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmYmY2M2UKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS14ODYvdmlzd3Mvc2dpdncuaApAQCAtMCwwICsxLDUgQEAKKy8qCisgKiBGcmFtZSBidWZmZXIgcG9zaXRpb24gYW5kIHNpemU6CisgKi8KK2V4dGVybiB1bnNpZ25lZCBsb25nIHNnaXZ3ZmJfbWVtX3BoeXM7CitleHRlcm4gdW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9zaXplOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3ZtODYuaCBiL2luY2x1ZGUvYXNtLXg4Ni92bTg2LmgKaW5kZXggMDc0YjM1Ny4uNWNlMzUxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3ZtODYuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdm04Ni5oCkBAIC0xNCwxMiArMTQsNiBAQAogCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgogCi0jaWZkZWYgQ09ORklHX1ZNODYKLSNkZWZpbmUgWDg2X1ZNX01BU0sJWDg2X0VGTEFHU19WTQotI2Vsc2UKLSNkZWZpbmUgWDg2X1ZNX01BU0sJMCAvKiBObyBWTTg2IHN1cHBvcnQgKi8KLSNlbmRpZgotCiAjZGVmaW5lIEJJT1NTRUcJCTB4MGYwMDAKIAogI2RlZmluZSBDUFVfMDg2CQkwCkBAIC0xMjEsNyArMTE1LDYgQEAKIAl1bnNpZ25lZCBsb25nIGlzX3ZtODZwdXM6MTsJICAgICAgLyogZm9yIHZtODYgaW50ZXJuYWwgdXNlICovCiAJdW5zaWduZWQgY2hhciB2bTg2ZGJnX2ludHh4dGFiWzMyXTsgICAvKiBmb3IgZGVidWdnZXIgKi8KIH07Ci0KIHN0cnVjdCB2bTg2cGx1c19zdHJ1Y3QgewogCXN0cnVjdCB2bTg2X3JlZ3MgcmVnczsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMTMzLDYgKzEyNiw5IEBACiB9OwogCiAjaWZkZWYgX19LRVJORUxfXworCisjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorCiAvKgogICogVGhpcyBpcyB0aGUgKGtlcm5lbCkgc3RhY2stbGF5b3V0IHdoZW4gd2UgaGF2ZSBkb25lIGEgIlNBVkVfQUxMIiBmcm9tIHZtODYKICAqIG1vZGUgLSB0aGUgbWFpbiBjaGFuZ2UgaXMgdGhhdCB0aGUgb2xkIHNlZ21lbnQgZGVzY3JpcHRvcnMgYXJlbid0CkBAIC0xNDEsNyArMTM3LDYgQEAKICAqIGF0IHRoZSBlbmQgb2YgdGhlIHN0cnVjdHVyZS4gTG9vayBhdCBwdHJhY2UuaCB0byBzZWUgdGhlICJub3JtYWwiCiAgKiBzZXR1cC4gRm9yIHVzZXIgc3BhY2UgbGF5b3V0IHNlZSAnc3RydWN0IHZtODZfcmVncycgYWJvdmUuCiAgKi8KLSNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CiAKIHN0cnVjdCBrZXJuZWxfdm04Nl9yZWdzIHsKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdm1pX3RpbWUuaCBiL2luY2x1ZGUvYXNtLXg4Ni92bWlfdGltZS5oCmluZGV4IDQ3ODE4ODEuLmMzMTE4YzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni92bWlfdGltZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni92bWlfdGltZS5oCkBAIC01MCw3ICs1MCw3IEBACiBleHRlcm4gdW5zaWduZWQgbG9uZyB2bWlfZ2V0X3dhbGxjbG9jayh2b2lkKTsKIGV4dGVybiBpbnQgdm1pX3NldF93YWxsY2xvY2sodW5zaWduZWQgbG9uZyBub3cpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyB2bWlfc2NoZWRfY2xvY2sodm9pZCk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyB2bWlfY3B1X2toeih2b2lkKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIHZtaV90c2Nfa2h6KHZvaWQpOwogCiAjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCiBleHRlcm4gdm9pZCBfX2RldmluaXQgdm1pX3RpbWVfYnNwX2luaXQodm9pZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdnN5c2NhbGwuaCBiL2luY2x1ZGUvYXNtLXg4Ni92c3lzY2FsbC5oCmluZGV4IDE3YjM3MDAuLjZiNjZmZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni92c3lzY2FsbC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni92c3lzY2FsbC5oCkBAIC0yNCw3ICsyNCw4IEBACiAJKCh1bnVzZWQsIF9fc2VjdGlvbl9fICgiLnZzeXNjYWxsX2d0b2RfZGF0YSIpLGFsaWduZWQoMTYpKSkKICNkZWZpbmUgX19zZWN0aW9uX3ZzeXNjYWxsX2Nsb2NrIF9fYXR0cmlidXRlX18gXAogCSgodW51c2VkLCBfX3NlY3Rpb25fXyAoIi52c3lzY2FsbF9jbG9jayIpLGFsaWduZWQoMTYpKSkKLSNkZWZpbmUgX192c3lzY2FsbF9mbiBfX2F0dHJpYnV0ZV9fICgodW51c2VkLF9fc2VjdGlvbl9fKCIudnN5c2NhbGxfZm4iKSkpCisjZGVmaW5lIF9fdnN5c2NhbGxfZm4gXAorCV9fYXR0cmlidXRlX18gKCh1bnVzZWQsIF9fc2VjdGlvbl9fKCIudnN5c2NhbGxfZm4iKSkpIG5vdHJhY2UKIAogI2RlZmluZSBWR0VUQ1BVX1JEVFNDUAkxCiAjZGVmaW5lIFZHRVRDUFVfTFNMCTIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni94ZW4vaHlwZXJjYWxsLmggYi9pbmNsdWRlL2FzbS14ODYveGVuL2h5cGVyY2FsbC5oCmluZGV4IGMyY2NkOTkuLjJhNGY5YjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni94ZW4vaHlwZXJjYWxsLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3hlbi9oeXBlcmNhbGwuaApAQCAtMTc2LDkgKzE3Niw5IEBACiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50Ci1IWVBFUlZJU09SX3NjaGVkX29wKGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQorSFlQRVJWSVNPUl9zY2hlZF9vcChpbnQgY21kLCB2b2lkICphcmcpCiB7Ci0JcmV0dXJuIF9oeXBlcmNhbGwyKGludCwgc2NoZWRfb3AsIGNtZCwgYXJnKTsKKwlyZXR1cm4gX2h5cGVyY2FsbDIoaW50LCBzY2hlZF9vcF9uZXcsIGNtZCwgYXJnKTsKIH0KIAogc3RhdGljIGlubGluZSBsb25nCkBAIC0zMTUsNiArMzE1LDEzIEBACiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAorTVVMVElfZnB1X3Rhc2tzd2l0Y2goc3RydWN0IG11bHRpY2FsbF9lbnRyeSAqbWNsLCBpbnQgc2V0KQoreworCW1jbC0+b3AgPSBfX0hZUEVSVklTT1JfZnB1X3Rhc2tzd2l0Y2g7CisJbWNsLT5hcmdzWzBdID0gc2V0OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKIE1VTFRJX3VwZGF0ZV92YV9tYXBwaW5nKHN0cnVjdCBtdWx0aWNhbGxfZW50cnkgKm1jbCwgdW5zaWduZWQgbG9uZyB2YSwKIAkJCXB0ZV90IG5ld192YWwsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYveGVuL3BhZ2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni94ZW4vcGFnZS5oCmluZGV4IGUxMWYyNDAuLjM3N2MwNDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni94ZW4vcGFnZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni94ZW4vcGFnZS5oCkBAIC0yNiwxNSArMjYsMjAgQEAKICNkZWZpbmUgRk9SRUlHTl9GUkFNRV9CSVQJKDFVTDw8MzEpCiAjZGVmaW5lIEZPUkVJR05fRlJBTUUobSkJKChtKSB8IEZPUkVJR05fRlJBTUVfQklUKQogCi1leHRlcm4gdW5zaWduZWQgbG9uZyAqcGh5c190b19tYWNoaW5lX21hcHBpbmc7CisvKiBNYXhpbXVtIGFtb3VudCBvZiBtZW1vcnkgd2UgY2FuIGhhbmRsZSBpbiBhIGRvbWFpbiBpbiBwYWdlcyAqLworI2RlZmluZSBNQVhfRE9NQUlOX1BBR0VTCQkJCQkJXAorICAgICgodW5zaWduZWQgbG9uZykoKHU2NClDT05GSUdfWEVOX01BWF9ET01BSU5fTUVNT1JZICogMTAyNCAqIDEwMjQgKiAxMDI0IC8gUEFHRV9TSVpFKSkKKworCitleHRlcm4gdW5zaWduZWQgbG9uZyBnZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZuKTsKK2V4dGVybiB2b2lkIHNldF9waHlzX3RvX21hY2hpbmUodW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbWZuKTsKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHBmbl90b19tZm4odW5zaWduZWQgbG9uZyBwZm4pCiB7CiAJaWYgKHhlbl9mZWF0dXJlKFhFTkZFQVRfYXV0b190cmFuc2xhdGVkX3BoeXNtYXApKQogCQlyZXR1cm4gcGZuOwogCi0JcmV0dXJuIHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nWyh1bnNpZ25lZCBpbnQpKHBmbildICYKLQkJfkZPUkVJR05fRlJBTUVfQklUOworCXJldHVybiBnZXRfcGh5c190b19tYWNoaW5lKHBmbikgJiB+Rk9SRUlHTl9GUkFNRV9CSVQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nX3ZhbGlkKHVuc2lnbmVkIGxvbmcgcGZuKQpAQCAtNDIsNyArNDcsNyBAQAogCWlmICh4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkKIAkJcmV0dXJuIDE7CiAKLQlyZXR1cm4gKHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nW3Bmbl0gIT0gSU5WQUxJRF9QMk1fRU5UUlkpOworCXJldHVybiBnZXRfcGh5c190b19tYWNoaW5lKHBmbikgIT0gSU5WQUxJRF9QMk1fRU5UUlk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBtZm5fdG9fcGZuKHVuc2lnbmVkIGxvbmcgbWZuKQpAQCAtMTA2LDIwICsxMTEsMTIgQEAKIAl1bnNpZ25lZCBsb25nIHBmbiA9IG1mbl90b19wZm4obWZuKTsKIAlpZiAoKHBmbiA8IG1heF9tYXBucikKIAkgICAgJiYgIXhlbl9mZWF0dXJlKFhFTkZFQVRfYXV0b190cmFuc2xhdGVkX3BoeXNtYXApCi0JICAgICYmIChwaHlzX3RvX21hY2hpbmVfbWFwcGluZ1twZm5dICE9IG1mbikpCisJICAgICYmIChnZXRfcGh5c190b19tYWNoaW5lKHBmbikgIT0gbWZuKSkKIAkJcmV0dXJuIG1heF9tYXBucjsgLyogZm9yY2UgIXBmbl92YWxpZCgpICovCisJLyogWFhYIGZpeG1lOyBub3QgdHJ1ZSB3aXRoIHNwYXJzZW1lbSAqLwogCXJldHVybiBwZm47CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG1mbikKLXsKLQlpZiAoeGVuX2ZlYXR1cmUoWEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRfcGh5c21hcCkpIHsKLQkJQlVHX09OKHBmbiAhPSBtZm4gJiYgbWZuICE9IElOVkFMSURfUDJNX0VOVFJZKTsKLQkJcmV0dXJuOwotCX0KLQlwaHlzX3RvX21hY2hpbmVfbWFwcGluZ1twZm5dID0gbWZuOwotfQotCiAvKiBWSVJUIDwtPiBNQUNISU5FIGNvbnZlcnNpb24gKi8KICNkZWZpbmUgdmlydF90b19tYWNoaW5lKHYpCShwaHlzX3RvX21hY2hpbmUoWFBBRERSKF9fcGEodikpKSkKICNkZWZpbmUgdmlydF90b19tZm4odikJCShwZm5fdG9fbWZuKFBGTl9ET1dOKF9fcGEodikpKSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni94b3JfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni94b3JfMzIuaAppbmRleCAwNjdiNWMxLi45MjFiNDU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYveG9yXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3hvcl8zMi5oCkBAIC0xLDMgKzEsNiBAQAorI2lmbmRlZiBBU01fWDg2X19YT1JfMzJfSAorI2RlZmluZSBBU01fWDg2X19YT1JfMzJfSAorCiAvKgogICogT3B0aW1pemVkIFJBSUQtNSBjaGVja3N1bW1pbmcgZnVuY3Rpb25zIGZvciBNTVggYW5kIFNTRS4KICAqCkBAIC04ODEsMyArODg0LDUgQEAKICAgIGRlYWxzIHdpdGggYSBsb2FkIHRvIGEgbGluZSB0aGF0IGlzIGJlaW5nIHByZWZldGNoZWQuICAqLwogI2RlZmluZSBYT1JfU0VMRUNUX1RFTVBMQVRFKEZBU1RFU1QpCQkJXAogCShjcHVfaGFzX3htbSA/ICZ4b3JfYmxvY2tfcElJSV9zc2UgOiBGQVNURVNUKQorCisjZW5kaWYgLyogQVNNX1g4Nl9fWE9SXzMyX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni94b3JfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni94b3JfNjQuaAppbmRleCAyNDk1N2UzLi4yZDNhMThkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYveG9yXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3hvcl82NC5oCkBAIC0xLDMgKzEsNiBAQAorI2lmbmRlZiBBU01fWDg2X19YT1JfNjRfSAorI2RlZmluZSBBU01fWDg2X19YT1JfNjRfSAorCiAvKgogICogT3B0aW1pemVkIFJBSUQtNSBjaGVja3N1bW1pbmcgZnVuY3Rpb25zIGZvciBNTVggYW5kIFNTRS4KICAqCkBAIC0zNTQsMyArMzU3LDUgQEAKICAgIFdlIG1heSBhbHNvIGJlIGFibGUgdG8gbG9hZCBpbnRvIHRoZSBMMSBvbmx5IGRlcGVuZGluZyBvbiBob3cgdGhlIGNwdQogICAgZGVhbHMgd2l0aCBhIGxvYWQgdG8gYSBsaW5lIHRoYXQgaXMgYmVpbmcgcHJlZmV0Y2hlZC4gICovCiAjZGVmaW5lIFhPUl9TRUxFQ1RfVEVNUExBVEUoRkFTVEVTVCkgKCZ4b3JfYmxvY2tfc3NlKQorCisjZW5kaWYgLyogQVNNX1g4Nl9fWE9SXzY0X0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY3J5cHRvL2hhc2guaCBiL2luY2x1ZGUvY3J5cHRvL2hhc2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTI0OThlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9jcnlwdG8vaGFzaC5oCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogSGFzaDogSGFzaCBhbGdvcml0aG1zIHVuZGVyIHRoZSBjcnlwdG8gQVBJCisgKiAKKyAqIENvcHlyaWdodCAoYykgMjAwOCBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIAorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpZm5kZWYgX0NSWVBUT19IQVNIX0gKKyNkZWZpbmUgX0NSWVBUT19IQVNIX0gKKworI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorCitzdHJ1Y3QgY3J5cHRvX2FoYXNoIHsKKwlzdHJ1Y3QgY3J5cHRvX3RmbSBiYXNlOworfTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgY3J5cHRvX2FoYXNoICpfX2NyeXB0b19haGFzaF9jYXN0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJcmV0dXJuIChzdHJ1Y3QgY3J5cHRvX2FoYXNoICopdGZtOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjcnlwdG9fYWhhc2ggKmNyeXB0b19hbGxvY19haGFzaChjb25zdCBjaGFyICphbGdfbmFtZSwKKwkJCQkJCSAgICAgIHUzMiB0eXBlLCB1MzIgbWFzaykKK3sKKwl0eXBlICY9IH5DUllQVE9fQUxHX1RZUEVfTUFTSzsKKwltYXNrICY9IH5DUllQVE9fQUxHX1RZUEVfTUFTSzsKKwl0eXBlIHw9IENSWVBUT19BTEdfVFlQRV9BSEFTSDsKKwltYXNrIHw9IENSWVBUT19BTEdfVFlQRV9BSEFTSF9NQVNLOworCisJcmV0dXJuIF9fY3J5cHRvX2FoYXNoX2Nhc3QoY3J5cHRvX2FsbG9jX2Jhc2UoYWxnX25hbWUsIHR5cGUsIG1hc2spKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgY3J5cHRvX3RmbSAqY3J5cHRvX2FoYXNoX3RmbShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuICZ0Zm0tPmJhc2U7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjcnlwdG9fZnJlZV9haGFzaChzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJY3J5cHRvX2ZyZWVfdGZtKGNyeXB0b19haGFzaF90Zm0odGZtKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNyeXB0b19haGFzaF9hbGlnbm1hc2soCisJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtKQoreworCXJldHVybiBjcnlwdG9fdGZtX2FsZ19hbGlnbm1hc2soY3J5cHRvX2FoYXNoX3RmbSh0Zm0pKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgYWhhc2hfdGZtICpjcnlwdG9fYWhhc2hfY3J0KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXR1cm4gJmNyeXB0b19haGFzaF90Zm0odGZtKS0+Y3J0X2FoYXNoOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjcnlwdG9fYWhhc2hfZGlnZXN0c2l6ZShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b19haGFzaF9jcnQodGZtKS0+ZGlnZXN0c2l6ZTsKK30KKworc3RhdGljIGlubGluZSB1MzIgY3J5cHRvX2FoYXNoX2dldF9mbGFncyhzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b190Zm1fZ2V0X2ZsYWdzKGNyeXB0b19haGFzaF90Zm0odGZtKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjcnlwdG9fYWhhc2hfc2V0X2ZsYWdzKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgdTMyIGZsYWdzKQoreworCWNyeXB0b190Zm1fc2V0X2ZsYWdzKGNyeXB0b19haGFzaF90Zm0odGZtKSwgZmxhZ3MpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgY3J5cHRvX2FoYXNoX2NsZWFyX2ZsYWdzKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgdTMyIGZsYWdzKQoreworCWNyeXB0b190Zm1fY2xlYXJfZmxhZ3MoY3J5cHRvX2FoYXNoX3RmbSh0Zm0pLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNyeXB0b19haGFzaCAqY3J5cHRvX2FoYXNoX3JlcXRmbSgKKwlzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBfX2NyeXB0b19haGFzaF9jYXN0KHJlcS0+YmFzZS50Zm0pOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjcnlwdG9fYWhhc2hfcmVxc2l6ZShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b19haGFzaF9jcnQodGZtKS0+cmVxc2l6ZTsKK30KKworc3RhdGljIGlubGluZSBpbnQgY3J5cHRvX2FoYXNoX3NldGtleShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0sCisJCQkJICAgICAgY29uc3QgdTggKmtleSwgdW5zaWduZWQgaW50IGtleWxlbikKK3sKKwlzdHJ1Y3QgYWhhc2hfdGZtICpjcnQgPSBjcnlwdG9fYWhhc2hfY3J0KHRmbSk7CisKKwlyZXR1cm4gY3J0LT5zZXRrZXkodGZtLCBrZXksIGtleWxlbik7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGNyeXB0b19haGFzaF9kaWdlc3Qoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgYWhhc2hfdGZtICpjcnQgPSBjcnlwdG9fYWhhc2hfY3J0KGNyeXB0b19haGFzaF9yZXF0Zm0ocmVxKSk7CisJcmV0dXJuIGNydC0+ZGlnZXN0KHJlcSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhaGFzaF9yZXF1ZXN0X3NldF90Zm0oc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwKKwkJCQkJIHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXEtPmJhc2UudGZtID0gY3J5cHRvX2FoYXNoX3RmbSh0Zm0pOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICphaGFzaF9yZXF1ZXN0X2FsbG9jKAorCXN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgZ2ZwX3QgZ2ZwKQoreworCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXE7CisKKwlyZXEgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgYWhhc2hfcmVxdWVzdCkgKworCQkgICAgICBjcnlwdG9fYWhhc2hfcmVxc2l6ZSh0Zm0pLCBnZnApOworCisJaWYgKGxpa2VseShyZXEpKQorCQlhaGFzaF9yZXF1ZXN0X3NldF90Zm0ocmVxLCB0Zm0pOworCisJcmV0dXJuIHJlcTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFoYXNoX3JlcXVlc3RfZnJlZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCWtmcmVlKHJlcSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFoYXNoX3JlcXVlc3QgKmFoYXNoX3JlcXVlc3RfY2FzdCgKKwlzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKnJlcSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHJlcSwgc3RydWN0IGFoYXNoX3JlcXVlc3QsIGJhc2UpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWhhc2hfcmVxdWVzdF9zZXRfY2FsbGJhY2soc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwKKwkJCQkJICAgICAgdTMyIGZsYWdzLAorCQkJCQkgICAgICBjcnlwdG9fY29tcGxldGlvbl90IGNvbXBsZXRlLAorCQkJCQkgICAgICB2b2lkICpkYXRhKQoreworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IGNvbXBsZXRlOworCXJlcS0+YmFzZS5kYXRhID0gZGF0YTsKKwlyZXEtPmJhc2UuZmxhZ3MgPSBmbGFnczsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEsCisJCQkJCSAgIHN0cnVjdCBzY2F0dGVybGlzdCAqc3JjLCB1OCAqcmVzdWx0LAorCQkJCQkgICB1bnNpZ25lZCBpbnQgbmJ5dGVzKQoreworCXJlcS0+c3JjID0gc3JjOworCXJlcS0+bmJ5dGVzID0gbmJ5dGVzOworCXJlcS0+cmVzdWx0ID0gcmVzdWx0OworfQorCisjZW5kaWYJLyogX0NSWVBUT19IQVNIX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY3J5cHRvL2ludGVybmFsL2hhc2guaCBiL2luY2x1ZGUvY3J5cHRvL2ludGVybmFsL2hhc2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTdhZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9jcnlwdG8vaW50ZXJuYWwvaGFzaC5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBIYXNoIGFsZ29yaXRobXMuCisgKiAKKyAqIENvcHlyaWdodCAoYykgMjAwOCBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIAorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpZm5kZWYgX0NSWVBUT19JTlRFUk5BTF9IQVNIX0gKKyNkZWZpbmUgX0NSWVBUT19JTlRFUk5BTF9IQVNIX0gKKworI2luY2x1ZGUgPGNyeXB0by9hbGdhcGkuaD4KKyNpbmNsdWRlIDxjcnlwdG8vaGFzaC5oPgorCitzdHJ1Y3QgYWhhc2hfcmVxdWVzdDsKK3N0cnVjdCBzY2F0dGVybGlzdDsKKworc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgeworCWNoYXIgKmRhdGE7CisKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0OworCXVuc2lnbmVkIGludCBhbGlnbm1hc2s7CisKKwlzdHJ1Y3QgcGFnZSAqcGc7CisJdW5zaWduZWQgaW50IGVudHJ5bGVuOworCisJdW5zaWduZWQgaW50IHRvdGFsOworCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7Cit9OworCitleHRlcm4gY29uc3Qgc3RydWN0IGNyeXB0b190eXBlIGNyeXB0b19haGFzaF90eXBlOworCitpbnQgY3J5cHRvX2hhc2hfd2Fsa19kb25lKHN0cnVjdCBjcnlwdG9faGFzaF93YWxrICp3YWxrLCBpbnQgZXJyKTsKK2ludCBjcnlwdG9faGFzaF93YWxrX2ZpcnN0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEsCisJCQkgICBzdHJ1Y3QgY3J5cHRvX2hhc2hfd2FsayAqd2Fsayk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCAqY3J5cHRvX2FoYXNoX2N0eChzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b190Zm1fY3R4KCZ0Zm0tPmJhc2UpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhaGFzaF9hbGcgKmNyeXB0b19haGFzaF9hbGcoCisJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtKQoreworCXJldHVybiAmY3J5cHRvX2FoYXNoX3RmbSh0Zm0pLT5fX2NydF9hbGctPmNyYV9haGFzaDsKK30KKworc3RhdGljIGlubGluZSBpbnQgYWhhc2hfZW5xdWV1ZV9yZXF1ZXN0KHN0cnVjdCBjcnlwdG9fcXVldWUgKnF1ZXVlLAorCQkJCQkgICAgIHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXF1ZXN0KQoreworCXJldHVybiBjcnlwdG9fZW5xdWV1ZV9yZXF1ZXN0KHF1ZXVlLCAmcmVxdWVzdC0+YmFzZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFoYXNoX3JlcXVlc3QgKmFoYXNoX2RlcXVldWVfcmVxdWVzdCgKKwlzdHJ1Y3QgY3J5cHRvX3F1ZXVlICpxdWV1ZSkKK3sKKwlyZXR1cm4gYWhhc2hfcmVxdWVzdF9jYXN0KGNyeXB0b19kZXF1ZXVlX3JlcXVlc3QocXVldWUpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkICphaGFzaF9yZXF1ZXN0X2N0eChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiByZXEtPl9fY3R4OworfQorCitzdGF0aWMgaW5saW5lIGludCBhaGFzaF90Zm1faW5fcXVldWUoc3RydWN0IGNyeXB0b19xdWV1ZSAqcXVldWUsCisJCQkJCSAgc3RydWN0IGNyeXB0b19haGFzaCAqdGZtKQoreworCXJldHVybiBjcnlwdG9fdGZtX2luX3F1ZXVlKHF1ZXVlLCBjcnlwdG9fYWhhc2hfdGZtKHRmbSkpOworfQorCisjZW5kaWYJLyogX0NSWVBUT19JTlRFUk5BTF9IQVNIX0ggKi8KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vS2J1aWxkIGIvaW5jbHVkZS9kcm0vS2J1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyYjY5ODMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9LYnVpbGQKQEAgLTAsMCArMSwxMCBAQAordW5pZmRlZi15ICs9IGRybS5oIGRybV9zYXJlYS5oCit1bmlmZGVmLXkgKz0gaTgxMF9kcm0uaAordW5pZmRlZi15ICs9IGk4MzBfZHJtLmgKK3VuaWZkZWYteSArPSBpOTE1X2RybS5oCit1bmlmZGVmLXkgKz0gbWdhX2RybS5oCit1bmlmZGVmLXkgKz0gcjEyOF9kcm0uaAordW5pZmRlZi15ICs9IHJhZGVvbl9kcm0uaAordW5pZmRlZi15ICs9IHNpc19kcm0uaAordW5pZmRlZi15ICs9IHNhdmFnZV9kcm0uaAordW5pZmRlZi15ICs9IHZpYV9kcm0uaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm0uaCBiL2luY2x1ZGUvZHJtL2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9kcm0uaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMWIxM2UKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9kcm1QLmgKQEAgLTAsMCArMSwxMTU0IEBACisvKioKKyAqIFxmaWxlIGRybVAuaAorICogUHJpdmF0ZSBoZWFkZXIgZm9yIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlcgorICoKKyAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+CisgKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KKyAqLworCisvKgorICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIF9EUk1fUF9IXworI2RlZmluZSBfRFJNX1BfSF8KKworLyogSWYgeW91IHdhbnQgdGhlIG1lbW9yeSBhbGxvYyBkZWJ1ZyBmdW5jdGlvbmFsaXR5LCBjaGFuZ2UgZGVmaW5lIGJlbG93ICovCisvKiAjZGVmaW5lIERFQlVHX01FTU9SWSAqLworCisjaWZkZWYgX19LRVJORUxfXworI2lmZGVmIF9fYWxwaGFfXworLyogYWRkIGluY2x1ZGUgb2YgY3VycmVudC5oIHNvIHRoYXQgImN1cnJlbnQiIGlzIGRlZmluZWQKKyAqIGJlZm9yZSBzdGF0aWMgaW5saW5lIGZ1bmNzIGluIHdhaXQuaC4gRG9pbmcgdGhpcyBzbyB3ZQorICogY2FuIGJ1aWxkIHRoZSBEUk0gKHBhcnQgb2YgUEkgRFJJKS4gNC8yMS8yMDAwIFMgKyBCICovCisjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4KKyNlbmRpZgkJCQkvKiBfX2FscGhhX18gKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4JLyogRm9yICh1bilsb2NrX2tlcm5lbCAqLworI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpZiBkZWZpbmVkKF9fYWxwaGFfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykKKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgkvKiBGb3IgcHRlX3dycHJvdGVjdCAqLworI2VuZGlmCisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL21tYW4uaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgorI2lmZGVmIENPTkZJR19NVFJSCisjaW5jbHVkZSA8YXNtL210cnIuaD4KKyNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX0FHUCkgfHwgZGVmaW5lZChDT05GSUdfQUdQX01PRFVMRSkKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2FncF9iYWNrZW5kLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KKyNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CisjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KKyNpbmNsdWRlICJkcm0uaCIKKworI2luY2x1ZGUgPGxpbnV4L2lkci5oPgorCisjZGVmaW5lIF9fT1NfSEFTX0FHUCAoZGVmaW5lZChDT05GSUdfQUdQKSB8fCAoZGVmaW5lZChDT05GSUdfQUdQX01PRFVMRSkgJiYgZGVmaW5lZChNT0RVTEUpKSkKKyNkZWZpbmUgX19PU19IQVNfTVRSUiAoZGVmaW5lZChDT05GSUdfTVRSUikpCisKK3N0cnVjdCBkcm1fZmlsZTsKK3N0cnVjdCBkcm1fZGV2aWNlOworCisjaW5jbHVkZSAiZHJtX29zX2xpbnV4LmgiCisjaW5jbHVkZSAiZHJtX2hhc2h0YWIuaCIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqIFxuYW1lIERSTSB0ZW1wbGF0ZSBjdXN0b21pemF0aW9uIGRlZmF1bHRzICovCisvKkB7Ki8KKworLyogZHJpdmVyIGNhcGFiaWxpdGllcyBhbmQgcmVxdWlyZW1lbnRzIG1hc2sgKi8KKyNkZWZpbmUgRFJJVkVSX1VTRV9BR1AgICAgIDB4MQorI2RlZmluZSBEUklWRVJfUkVRVUlSRV9BR1AgMHgyCisjZGVmaW5lIERSSVZFUl9VU0VfTVRSUiAgICAweDQKKyNkZWZpbmUgRFJJVkVSX1BDSV9ETUEgICAgIDB4OAorI2RlZmluZSBEUklWRVJfU0cgICAgICAgICAgMHgxMAorI2RlZmluZSBEUklWRVJfSEFWRV9ETUEgICAgMHgyMAorI2RlZmluZSBEUklWRVJfSEFWRV9JUlEgICAgMHg0MAorI2RlZmluZSBEUklWRVJfSVJRX1NIQVJFRCAgMHg4MAorI2RlZmluZSBEUklWRVJfSVJRX1ZCTCAgICAgMHgxMDAKKyNkZWZpbmUgRFJJVkVSX0RNQV9RVUVVRSAgIDB4MjAwCisjZGVmaW5lIERSSVZFUl9GQl9ETUEgICAgICAweDQwMAorI2RlZmluZSBEUklWRVJfSVJRX1ZCTDIgICAgMHg4MDAKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqIFxuYW1lIEJlZ2luIHRoZSBEUk0uLi4gKi8KKy8qQHsqLworCisjZGVmaW5lIERSTV9ERUJVR19DT0RFIDIJICAvKio8IEluY2x1ZGUgZGVidWdnaW5nIGNvZGUgaWYgPiAxLCB0aGVuCisJCQkJICAgICBhbHNvIGluY2x1ZGUgbG9vcGluZyBkZXRlY3Rpb24uICovCisKKyNkZWZpbmUgRFJNX01BR0lDX0hBU0hfT1JERVIgIDQgIC8qKjwgU2l6ZSBvZiBrZXkgaGFzaCB0YWJsZS4gTXVzdCBiZSBwb3dlciBvZiAyLiAqLworI2RlZmluZSBEUk1fS0VSTkVMX0NPTlRFWFQgICAgMAkgLyoqPCBDaGFuZ2UgZHJtX3Jlc2N0eCBpZiBjaGFuZ2VkICovCisjZGVmaW5lIERSTV9SRVNFUlZFRF9DT05URVhUUyAxCSAvKio8IENoYW5nZSBkcm1fcmVzY3R4IGlmIGNoYW5nZWQgKi8KKyNkZWZpbmUgRFJNX0xPT1BJTkdfTElNSVQgICAgIDUwMDAwMDAKKyNkZWZpbmUgRFJNX1RJTUVfU0xJQ0UJICAgICAgKEhaLzIwKSAgLyoqPCBUaW1lIHNsaWNlIGZvciBHTFhDb250ZXh0cyAqLworI2RlZmluZSBEUk1fTE9DS19TTElDRQkgICAgICAxCS8qKjwgVGltZSBzbGljZSBmb3IgbG9jaywgaW4gamlmZmllcyAqLworCisjZGVmaW5lIERSTV9GTEFHX0RFQlVHCSAgMHgwMQorCisjZGVmaW5lIERSTV9NRU1fRE1BCSAgIDAKKyNkZWZpbmUgRFJNX01FTV9TQVJFQQkgICAxCisjZGVmaW5lIERSTV9NRU1fRFJJVkVSCSAgIDIKKyNkZWZpbmUgRFJNX01FTV9NQUdJQwkgICAzCisjZGVmaW5lIERSTV9NRU1fSU9DVExTCSAgIDQKKyNkZWZpbmUgRFJNX01FTV9NQVBTCSAgIDUKKyNkZWZpbmUgRFJNX01FTV9WTUFTCSAgIDYKKyNkZWZpbmUgRFJNX01FTV9CVUZTCSAgIDcKKyNkZWZpbmUgRFJNX01FTV9TRUdTCSAgIDgKKyNkZWZpbmUgRFJNX01FTV9QQUdFUwkgICA5CisjZGVmaW5lIERSTV9NRU1fRklMRVMJICAxMAorI2RlZmluZSBEUk1fTUVNX1FVRVVFUwkgIDExCisjZGVmaW5lIERSTV9NRU1fQ01EUwkgIDEyCisjZGVmaW5lIERSTV9NRU1fTUFQUElOR1MgIDEzCisjZGVmaW5lIERSTV9NRU1fQlVGTElTVFMgIDE0CisjZGVmaW5lIERSTV9NRU1fQUdQTElTVFMgIDE1CisjZGVmaW5lIERSTV9NRU1fVE9UQUxBR1AgIDE2CisjZGVmaW5lIERSTV9NRU1fQk9VTkRBR1AgIDE3CisjZGVmaW5lIERSTV9NRU1fQ1RYQklUTUFQIDE4CisjZGVmaW5lIERSTV9NRU1fU1RVQiAgICAgIDE5CisjZGVmaW5lIERSTV9NRU1fU0dMSVNUUyAgIDIwCisjZGVmaW5lIERSTV9NRU1fQ1RYTElTVCAgIDIxCisjZGVmaW5lIERSTV9NRU1fTU0gICAgICAgIDIyCisjZGVmaW5lIERSTV9NRU1fSEFTSFRBQiAgIDIzCisKKyNkZWZpbmUgRFJNX01BWF9DVFhCSVRNQVAgKFBBR0VfU0laRSAqIDgpCisjZGVmaW5lIERSTV9NQVBfSEFTSF9PRkZTRVQgMHgxMDAwMDAwMAorCisvKkB9Ki8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqIFxuYW1lIE1hY3JvcyB0byBtYWtlIHByaW50ayBlYXNpZXIgKi8KKy8qQHsqLworCisvKioKKyAqIEVycm9yIG91dHB1dC4KKyAqCisgKiBccGFyYW0gZm10IHByaW50ZigpIGxpa2UgZm9ybWF0IHN0cmluZy4KKyAqIFxwYXJhbSBhcmcgYXJndW1lbnRzCisgKi8KKyNkZWZpbmUgRFJNX0VSUk9SKGZtdCwgYXJnLi4uKSBcCisJcHJpbnRrKEtFUk5fRVJSICJbIiBEUk1fTkFNRSAiOiVzXSAqRVJST1IqICIgZm10ICwgX19mdW5jX18gLCAjI2FyZykKKworLyoqCisgKiBNZW1vcnkgZXJyb3Igb3V0cHV0LgorICoKKyAqIFxwYXJhbSBhcmVhIG1lbW9yeSBhcmVhIHdoZXJlIHRoZSBlcnJvciBvY2N1cnJlZC4KKyAqIFxwYXJhbSBmbXQgcHJpbnRmKCkgbGlrZSBmb3JtYXQgc3RyaW5nLgorICogXHBhcmFtIGFyZyBhcmd1bWVudHMKKyAqLworI2RlZmluZSBEUk1fTUVNX0VSUk9SKGFyZWEsIGZtdCwgYXJnLi4uKSBcCisJcHJpbnRrKEtFUk5fRVJSICJbIiBEUk1fTkFNRSAiOiVzOiVzXSAqRVJST1IqICIgZm10ICwgX19mdW5jX18sIFwKKwkgICAgICAgZHJtX21lbV9zdGF0c1thcmVhXS5uYW1lICwgIyNhcmcpCisKKyNkZWZpbmUgRFJNX0lORk8oZm10LCBhcmcuLi4pICBwcmludGsoS0VSTl9JTkZPICJbIiBEUk1fTkFNRSAiXSAiIGZtdCAsICMjYXJnKQorCisvKioKKyAqIERlYnVnIG91dHB1dC4KKyAqCisgKiBccGFyYW0gZm10IHByaW50ZigpIGxpa2UgZm9ybWF0IHN0cmluZy4KKyAqIFxwYXJhbSBhcmcgYXJndW1lbnRzCisgKi8KKyNpZiBEUk1fREVCVUdfQ09ERQorI2RlZmluZSBEUk1fREVCVUcoZm10LCBhcmcuLi4pCQkJCQkJXAorCWRvIHsJCQkJCQkJCVwKKwkJaWYgKCBkcm1fZGVidWcgKQkJCVwKKwkJCXByaW50ayhLRVJOX0RFQlVHCQkJCVwKKwkJCSAgICAgICAiWyIgRFJNX05BTUUgIjolc10gIiBmbXQgLAlcCisJCQkgICAgICAgX19mdW5jX18gLCAjI2FyZyk7CQkJXAorCX0gd2hpbGUgKDApCisjZWxzZQorI2RlZmluZSBEUk1fREVCVUcoZm10LCBhcmcuLi4pCQkgZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCisKKyNkZWZpbmUgRFJNX1BST0NfTElNSVQgKFBBR0VfU0laRS04MCkKKworI2RlZmluZSBEUk1fUFJPQ19QUklOVChmbXQsIGFyZy4uLikJCQkJCVwKKyAgIGxlbiArPSBzcHJpbnRmKCZidWZbbGVuXSwgZm10ICwgIyNhcmcpOwkJCQlcCisgICBpZiAobGVuID4gRFJNX1BST0NfTElNSVQpIHsgKmVvZiA9IDE7IHJldHVybiBsZW4gLSBvZmZzZXQ7IH0KKworI2RlZmluZSBEUk1fUFJPQ19QUklOVF9SRVQocmV0LCBmbXQsIGFyZy4uLikJCQkJXAorICAgbGVuICs9IHNwcmludGYoJmJ1ZltsZW5dLCBmbXQgLCAjI2FyZyk7CQkJCVwKKyAgIGlmIChsZW4gPiBEUk1fUFJPQ19MSU1JVCkgeyByZXQ7ICplb2YgPSAxOyByZXR1cm4gbGVuIC0gb2Zmc2V0OyB9CisKKy8qQH0qLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiogXG5hbWUgSW50ZXJuYWwgdHlwZXMgYW5kIHN0cnVjdHVyZXMgKi8KKy8qQHsqLworCisjZGVmaW5lIERSTV9BUlJBWV9TSVpFKHgpIEFSUkFZX1NJWkUoeCkKKworI2RlZmluZSBEUk1fTEVGVENPVU5UKHgpICgoKHgpLT5ycCArICh4KS0+Y291bnQgLSAoeCktPndwKSAlICgoeCktPmNvdW50ICsgMSkpCisjZGVmaW5lIERSTV9CVUZDT1VOVCh4KSAoKHgpLT5jb3VudCAtIERSTV9MRUZUQ09VTlQoeCkpCisjZGVmaW5lIERSTV9XQUlUQ09VTlQoZGV2LGlkeCkgRFJNX0JVRkNPVU5UKCZkZXYtPnF1ZXVlbGlzdFtpZHhdLT53YWl0bGlzdCkKKworI2RlZmluZSBEUk1fSUZfVkVSU0lPTihtYWosIG1pbikgKG1haiA8PCAxNiB8IG1pbikKKy8qKgorICogR2V0IHRoZSBwcml2YXRlIFNBUkVBIG1hcHBpbmcuCisgKgorICogXHBhcmFtIF9kZXYgRFJNIGRldmljZS4KKyAqIFxwYXJhbSBfY3R4IGNvbnRleHQgbnVtYmVyLgorICogXHBhcmFtIF9tYXAgb3V0cHV0IG1hcHBpbmcuCisgKi8KKyNkZWZpbmUgRFJNX0dFVF9QUklWX1NBUkVBKF9kZXYsIF9jdHgsIF9tYXApIGRvIHsJXAorCShfbWFwKSA9IChfZGV2KS0+Y29udGV4dF9zYXJlYXNbX2N0eF07CQlcCit9IHdoaWxlKDApCisKKy8qKgorICogVGVzdCB0aGF0IHRoZSBoYXJkd2FyZSBsb2NrIGlzIGhlbGQgYnkgdGhlIGNhbGxlciwgcmV0dXJuaW5nIG90aGVyd2lzZS4KKyAqCisgKiBccGFyYW0gZGV2IERSTSBkZXZpY2UuCisgKiBccGFyYW0gZmlscCBmaWxlIHBvaW50ZXIgb2YgdGhlIGNhbGxlci4KKyAqLworI2RlZmluZSBMT0NLX1RFU1RfV0lUSF9SRVRVUk4oIGRldiwgZmlsZV9wcml2ICkJCQkJXAorZG8gewkJCQkJCQkJCVwKKwlpZiAoICFfRFJNX0xPQ0tfSVNfSEVMRCggZGV2LT5sb2NrLmh3X2xvY2stPmxvY2sgKSB8fAkJXAorCSAgICAgZGV2LT5sb2NrLmZpbGVfcHJpdiAhPSBmaWxlX3ByaXYgKQl7CQkJXAorCQlEUk1fRVJST1IoICIlcyBjYWxsZWQgd2l0aG91dCBsb2NrIGhlbGQsIGhlbGQgICVkIG93bmVyICVwICVwXG4iLFwKKwkJCSAgIF9fZnVuY19fLCBfRFJNX0xPQ0tfSVNfSEVMRCggZGV2LT5sb2NrLmh3X2xvY2stPmxvY2sgKSxcCisJCQkgICBkZXYtPmxvY2suZmlsZV9wcml2LCBmaWxlX3ByaXYgKTsJCVwKKwkJcmV0dXJuIC1FSU5WQUw7CQkJCQkJXAorCX0JCQkJCQkJCVwKK30gd2hpbGUgKDApCisKKy8qKgorICogQ29weSBhbmQgSU9DVEwgcmV0dXJuIHN0cmluZyB0byB1c2VyIHNwYWNlCisgKi8KKyNkZWZpbmUgRFJNX0NPUFkoIG5hbWUsIHZhbHVlICkJCQkJCQlcCisJbGVuID0gc3RybGVuKCB2YWx1ZSApOwkJCQkJCVwKKwlpZiAoIGxlbiA+IG5hbWUjI19sZW4gKSBsZW4gPSBuYW1lIyNfbGVuOwkJCVwKKwluYW1lIyNfbGVuID0gc3RybGVuKCB2YWx1ZSApOwkJCQkJXAorCWlmICggbGVuICYmIG5hbWUgKSB7CQkJCQkJXAorCQlpZiAoIGNvcHlfdG9fdXNlciggbmFtZSwgdmFsdWUsIGxlbiApICkJCQlcCisJCQlyZXR1cm4gLUVGQVVMVDsJCQkJCVwKKwl9CisKKy8qKgorICogSW9jdGwgZnVuY3Rpb24gdHlwZS4KKyAqCisgKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgorICogXHBhcmFtIGZpbGVfcHJpdiBEUk0gZmlsZSBwcml2YXRlIHBvaW50ZXIuCisgKiBccGFyYW0gY21kIGNvbW1hbmQuCisgKiBccGFyYW0gYXJnIGFyZ3VtZW50LgorICovCit0eXBlZGVmIGludCBkcm1faW9jdGxfdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCit0eXBlZGVmIGludCBkcm1faW9jdGxfY29tcGF0X3Qoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCisJCQkgICAgICAgdW5zaWduZWQgbG9uZyBhcmcpOworCisjZGVmaW5lIERSTV9BVVRICTB4MQorI2RlZmluZQlEUk1fTUFTVEVSCTB4MgorI2RlZmluZSBEUk1fUk9PVF9PTkxZCTB4NAorCitzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgeworCXVuc2lnbmVkIGludCBjbWQ7CisJZHJtX2lvY3RsX3QgKmZ1bmM7CisJaW50IGZsYWdzOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgZHJpdmVyIG9yIGdlbmVyYWwgZHJtX2lvY3RsX2Rlc2MgYXJyYXkgZW50cnkgZm9yIHRoZSBnaXZlbgorICogaW9jdGwsIGZvciB1c2UgYnkgZHJtX2lvY3RsKCkuCisgKi8KKyNkZWZpbmUgRFJNX0lPQ1RMX0RFRihpb2N0bCwgZnVuYywgZmxhZ3MpIFwKKwlbRFJNX0lPQ1RMX05SKGlvY3RsKV0gPSB7aW9jdGwsIGZ1bmMsIGZsYWdzfQorCitzdHJ1Y3QgZHJtX21hZ2ljX2VudHJ5IHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CisJc3RydWN0IGRybV9oYXNoX2l0ZW0gaGFzaF9pdGVtOworCXN0cnVjdCBkcm1fZmlsZSAqcHJpdjsKK307CisKK3N0cnVjdCBkcm1fdm1hX2VudHJ5IHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CisJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CisJcGlkX3QgcGlkOworfTsKKworLyoqCisgKiBETUEgYnVmZmVyLgorICovCitzdHJ1Y3QgZHJtX2J1ZiB7CisJaW50IGlkeDsJCSAgICAgICAvKio8IEluZGV4IGludG8gbWFzdGVyIGJ1Zmxpc3QgKi8KKwlpbnQgdG90YWw7CQkgICAgICAgLyoqPCBCdWZmZXIgc2l6ZSAqLworCWludCBvcmRlcjsJCSAgICAgICAvKio8IGxvZy1iYXNlLTIodG90YWwpICovCisJaW50IHVzZWQ7CQkgICAgICAgLyoqPCBBbW91bnQgb2YgYnVmZmVyIGluIHVzZSAoZm9yIERNQSkgKi8KKwl1bnNpZ25lZCBsb25nIG9mZnNldDsJICAgICAgIC8qKjwgQnl0ZSBvZmZzZXQgKHVzZWQgaW50ZXJuYWxseSkgKi8KKwl2b2lkICphZGRyZXNzOwkJICAgICAgIC8qKjwgQWRkcmVzcyBvZiBidWZmZXIgKi8KKwl1bnNpZ25lZCBsb25nIGJ1c19hZGRyZXNzOyAgICAgLyoqPCBCdXMgYWRkcmVzcyBvZiBidWZmZXIgKi8KKwlzdHJ1Y3QgZHJtX2J1ZiAqbmV4dDsJICAgICAgIC8qKjwgS2VybmVsLW9ubHk6IHVzZWQgZm9yIGZyZWUgbGlzdCAqLworCV9fdm9sYXRpbGVfXyBpbnQgd2FpdGluZzsgICAgICAvKio8IE9uIGtlcm5lbCBETUEgcXVldWUgKi8KKwlfX3ZvbGF0aWxlX18gaW50IHBlbmRpbmc7ICAgICAgLyoqPCBPbiBoYXJkd2FyZSBETUEgcXVldWUgKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCBkbWFfd2FpdDsgICAgLyoqPCBQcm9jZXNzZXMgd2FpdGluZyAqLworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OyAgICAvKio8IFByaXZhdGUgb2YgaG9sZGluZyBmaWxlIGRlc2NyICovCisJaW50IGNvbnRleHQ7CQkgICAgICAgLyoqPCBLZXJuZWwgcXVldWUgZm9yIHRoaXMgYnVmZmVyICovCisJaW50IHdoaWxlX2xvY2tlZDsJICAgICAgIC8qKjwgRGlzcGF0Y2ggdGhpcyBidWZmZXIgd2hpbGUgbG9ja2VkICovCisJZW51bSB7CisJCURSTV9MSVNUX05PTkUgPSAwLAorCQlEUk1fTElTVF9GUkVFID0gMSwKKwkJRFJNX0xJU1RfV0FJVCA9IDIsCisJCURSTV9MSVNUX1BFTkQgPSAzLAorCQlEUk1fTElTVF9QUklPID0gNCwKKwkJRFJNX0xJU1RfUkVDTEFJTSA9IDUKKwl9IGxpc3Q7CQkJICAgICAgIC8qKjwgV2hpY2ggbGlzdCB3ZSdyZSBvbiAqLworCisJaW50IGRldl9wcml2X3NpemU7CQkgLyoqPCBTaXplIG9mIGJ1ZmZlciBwcml2YXRlIHN0b3JhZ2UgKi8KKwl2b2lkICpkZXZfcHJpdmF0ZTsJCSAvKio8IFBlci1idWZmZXIgcHJpdmF0ZSBzdG9yYWdlICovCit9OworCisvKiogYnVmcyBpcyBvbmUgbG9uZ2VyIHRoYW4gaXQgaGFzIHRvIGJlICovCitzdHJ1Y3QgZHJtX3dhaXRsaXN0IHsKKwlpbnQgY291bnQ7CQkJLyoqPCBOdW1iZXIgb2YgcG9zc2libGUgYnVmZmVycyAqLworCXN0cnVjdCBkcm1fYnVmICoqYnVmczsJCS8qKjwgTGlzdCBvZiBwb2ludGVycyB0byBidWZmZXJzICovCisJc3RydWN0IGRybV9idWYgKipycDsJCQkvKio8IFJlYWQgcG9pbnRlciAqLworCXN0cnVjdCBkcm1fYnVmICoqd3A7CQkJLyoqPCBXcml0ZSBwb2ludGVyICovCisJc3RydWN0IGRybV9idWYgKiplbmQ7CQkvKio8IEVuZCBwb2ludGVyICovCisJc3BpbmxvY2tfdCByZWFkX2xvY2s7CisJc3BpbmxvY2tfdCB3cml0ZV9sb2NrOworfTsKKworc3RydWN0IGRybV9mcmVlbGlzdCB7CisJaW50IGluaXRpYWxpemVkOwkgICAgICAgLyoqPCBGcmVlbGlzdCBpbiB1c2UgKi8KKwlhdG9taWNfdCBjb3VudDsJCSAgICAgICAvKio8IE51bWJlciBvZiBmcmVlIGJ1ZmZlcnMgKi8KKwlzdHJ1Y3QgZHJtX2J1ZiAqbmV4dDsJICAgICAgIC8qKjwgRW5kIHBvaW50ZXIgKi8KKworCXdhaXRfcXVldWVfaGVhZF90IHdhaXRpbmc7ICAgICAvKio8IFByb2Nlc3NlcyB3YWl0aW5nIG9uIGZyZWUgYnVmcyAqLworCWludCBsb3dfbWFyazsJCSAgICAgICAvKio8IExvdyB3YXRlciBtYXJrICovCisJaW50IGhpZ2hfbWFyazsJCSAgICAgICAvKio8IEhpZ2ggd2F0ZXIgbWFyayAqLworCWF0b21pY190IHdmaDsJCSAgICAgICAvKio8IElmIHdhaXRpbmcgZm9yIGhpZ2ggbWFyayAqLworCXNwaW5sb2NrX3QgbG9jazsKK307CisKK3R5cGVkZWYgc3RydWN0IGRybV9kbWFfaGFuZGxlIHsKKwlkbWFfYWRkcl90IGJ1c2FkZHI7CisJdm9pZCAqdmFkZHI7CisJc2l6ZV90IHNpemU7Cit9IGRybV9kbWFfaGFuZGxlX3Q7CisKKy8qKgorICogQnVmZmVyIGVudHJ5LiAgVGhlcmUgaXMgb25lIG9mIHRoaXMgZm9yIGVhY2ggYnVmZmVyIHNpemUgb3JkZXIuCisgKi8KK3N0cnVjdCBkcm1fYnVmX2VudHJ5IHsKKwlpbnQgYnVmX3NpemU7CQkJLyoqPCBzaXplICovCisJaW50IGJ1Zl9jb3VudDsJCQkvKio8IG51bWJlciBvZiBidWZmZXJzICovCisJc3RydWN0IGRybV9idWYgKmJ1Zmxpc3Q7CQkvKio8IGJ1ZmZlciBsaXN0ICovCisJaW50IHNlZ19jb3VudDsKKwlpbnQgcGFnZV9vcmRlcjsKKwlzdHJ1Y3QgZHJtX2RtYV9oYW5kbGUgKipzZWdsaXN0OworCisJc3RydWN0IGRybV9mcmVlbGlzdCBmcmVlbGlzdDsKK307CisKKy8qKiBGaWxlIHByaXZhdGUgZGF0YSAqLworc3RydWN0IGRybV9maWxlIHsKKwlpbnQgYXV0aGVudGljYXRlZDsKKwlpbnQgbWFzdGVyOworCXBpZF90IHBpZDsKKwl1aWRfdCB1aWQ7CisJZHJtX21hZ2ljX3QgbWFnaWM7CisJdW5zaWduZWQgbG9uZyBpb2N0bF9jb3VudDsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxoZWFkOworCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yOworCWludCByZW1vdmVfYXV0aF9vbl9jbG9zZTsKKwl1bnNpZ25lZCBsb25nIGxvY2tfY291bnQ7CisJc3RydWN0IGZpbGUgKmZpbHA7CisJdm9pZCAqZHJpdmVyX3ByaXY7Cit9OworCisvKiogV2FpdCBxdWV1ZSAqLworc3RydWN0IGRybV9xdWV1ZSB7CisJYXRvbWljX3QgdXNlX2NvdW50OwkJLyoqPCBPdXRzdGFuZGluZyB1c2VzICgrMSkgKi8KKwlhdG9taWNfdCBmaW5hbGl6YXRpb247CQkvKio8IEZpbmFsaXphdGlvbiBpbiBwcm9ncmVzcyAqLworCWF0b21pY190IGJsb2NrX2NvdW50OwkJLyoqPCBDb3VudCBvZiBwcm9jZXNzZXMgd2FpdGluZyAqLworCWF0b21pY190IGJsb2NrX3JlYWQ7CQkvKio8IFF1ZXVlIGJsb2NrZWQgZm9yIHJlYWRzICovCisJd2FpdF9xdWV1ZV9oZWFkX3QgcmVhZF9xdWV1ZTsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBibG9ja19yZWFkICovCisJYXRvbWljX3QgYmxvY2tfd3JpdGU7CQkvKio8IFF1ZXVlIGJsb2NrZWQgZm9yIHdyaXRlcyAqLworCXdhaXRfcXVldWVfaGVhZF90IHdyaXRlX3F1ZXVlOwkvKio8IFByb2Nlc3NlcyB3YWl0aW5nIG9uIGJsb2NrX3dyaXRlICovCisJYXRvbWljX3QgdG90YWxfcXVldWVkOwkJLyoqPCBUb3RhbCBxdWV1ZWQgc3RhdGlzdGljICovCisJYXRvbWljX3QgdG90YWxfZmx1c2hlZDsJCS8qKjwgVG90YWwgZmx1c2hlcyBzdGF0aXN0aWMgKi8KKwlhdG9taWNfdCB0b3RhbF9sb2NrczsJCS8qKjwgVG90YWwgbG9ja3Mgc3RhdGlzdGljcyAqLworCWVudW0gZHJtX2N0eF9mbGFncyBmbGFnczsJLyoqPCBDb250ZXh0IHByZXNlcnZpbmcgYW5kIDJELW9ubHkgKi8KKwlzdHJ1Y3QgZHJtX3dhaXRsaXN0IHdhaXRsaXN0OwkvKio8IFBlbmRpbmcgYnVmZmVycyAqLworCXdhaXRfcXVldWVfaGVhZF90IGZsdXNoX3F1ZXVlOwkvKio8IFByb2Nlc3NlcyB3YWl0aW5nIHVudGlsIGZsdXNoICovCit9OworCisvKioKKyAqIExvY2sgZGF0YS4KKyAqLworc3RydWN0IGRybV9sb2NrX2RhdGEgeworCXN0cnVjdCBkcm1faHdfbG9jayAqaHdfbG9jazsJLyoqPCBIYXJkd2FyZSBsb2NrICovCisJLyoqIFByaXZhdGUgb2YgbG9jayBob2xkZXIncyBmaWxlIChOVUxMPWtlcm5lbCkgKi8KKwlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsKKwl3YWl0X3F1ZXVlX2hlYWRfdCBsb2NrX3F1ZXVlOwkvKio8IFF1ZXVlIG9mIGJsb2NrZWQgcHJvY2Vzc2VzICovCisJdW5zaWduZWQgbG9uZyBsb2NrX3RpbWU7CS8qKjwgVGltZSBvZiBsYXN0IGxvY2sgaW4gamlmZmllcyAqLworCXNwaW5sb2NrX3Qgc3BpbmxvY2s7CisJdWludDMyX3Qga2VybmVsX3dhaXRlcnM7CisJdWludDMyX3QgdXNlcl93YWl0ZXJzOworCWludCBpZGxlX2hhc19sb2NrOworfTsKKworLyoqCisgKiBETUEgZGF0YS4KKyAqLworc3RydWN0IGRybV9kZXZpY2VfZG1hIHsKKworCXN0cnVjdCBkcm1fYnVmX2VudHJ5IGJ1ZnNbRFJNX01BWF9PUkRFUiArIDFdOwkvKio8IGJ1ZmZlcnMsIGdyb3VwZWQgYnkgdGhlaXIgc2l6ZSBvcmRlciAqLworCWludCBidWZfY291bnQ7CQkJLyoqPCB0b3RhbCBudW1iZXIgb2YgYnVmZmVycyAqLworCXN0cnVjdCBkcm1fYnVmICoqYnVmbGlzdDsJCS8qKjwgVmVjdG9yIG9mIHBvaW50ZXJzIGludG8gZHJtX2RldmljZV9kbWE6OmJ1ZnMgKi8KKwlpbnQgc2VnX2NvdW50OworCWludCBwYWdlX2NvdW50OwkJCS8qKjwgbnVtYmVyIG9mIHBhZ2VzICovCisJdW5zaWduZWQgbG9uZyAqcGFnZWxpc3Q7CS8qKjwgcGFnZSBsaXN0ICovCisJdW5zaWduZWQgbG9uZyBieXRlX2NvdW50OworCWVudW0geworCQlfRFJNX0RNQV9VU0VfQUdQID0gMHgwMSwKKwkJX0RSTV9ETUFfVVNFX1NHID0gMHgwMiwKKwkJX0RSTV9ETUFfVVNFX0ZCID0gMHgwNCwKKwkJX0RSTV9ETUFfVVNFX1BDSV9STyA9IDB4MDgKKwl9IGZsYWdzOworCit9OworCisvKioKKyAqIEFHUCBtZW1vcnkgZW50cnkuICBTdG9yZWQgYXMgYSBkb3VibHkgbGlua2VkIGxpc3QuCisgKi8KK3N0cnVjdCBkcm1fYWdwX21lbSB7CisJdW5zaWduZWQgbG9uZyBoYW5kbGU7CQkvKio8IGhhbmRsZSAqLworCURSTV9BR1BfTUVNICptZW1vcnk7CisJdW5zaWduZWQgbG9uZyBib3VuZDsJCS8qKjwgYWRkcmVzcyAqLworCWludCBwYWdlczsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7Cit9OworCisvKioKKyAqIEFHUCBkYXRhLgorICoKKyAqIFxzYSBkcm1fYWdwX2luaXQoKSBhbmQgZHJtX2RldmljZTo6YWdwLgorICovCitzdHJ1Y3QgZHJtX2FncF9oZWFkIHsKKwlEUk1fQUdQX0tFUk4gYWdwX2luZm87CQkvKio8IEFHUCBkZXZpY2UgaW5mb3JtYXRpb24gKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIG1lbW9yeTsKKwl1bnNpZ25lZCBsb25nIG1vZGU7CQkvKio8IEFHUCBtb2RlICovCisJc3RydWN0IGFncF9icmlkZ2VfZGF0YSAqYnJpZGdlOworCWludCBlbmFibGVkOwkJCS8qKjwgd2hldGhlciB0aGUgQUdQIGJ1cyBhcyBiZWVuIGVuYWJsZWQgKi8KKwlpbnQgYWNxdWlyZWQ7CQkJLyoqPCB3aGV0aGVyIHRoZSBBR1AgZGV2aWNlIGhhcyBiZWVuIGFjcXVpcmVkICovCisJdW5zaWduZWQgbG9uZyBiYXNlOworCWludCBhZ3BfbXRycjsKKwlpbnQgY2FudF91c2VfYXBlcnR1cmU7CisJdW5zaWduZWQgbG9uZyBwYWdlX21hc2s7Cit9OworCisvKioKKyAqIFNjYXR0ZXItZ2F0aGVyIG1lbW9yeS4KKyAqLworc3RydWN0IGRybV9zZ19tZW0geworCXVuc2lnbmVkIGxvbmcgaGFuZGxlOworCXZvaWQgKnZpcnR1YWw7CisJaW50IHBhZ2VzOworCXN0cnVjdCBwYWdlICoqcGFnZWxpc3Q7CisJZG1hX2FkZHJfdCAqYnVzYWRkcjsKK307CisKK3N0cnVjdCBkcm1fc2lnZGF0YSB7CisJaW50IGNvbnRleHQ7CisJc3RydWN0IGRybV9od19sb2NrICpsb2NrOworfTsKKworCisvKgorICogR2VuZXJpYyBtZW1vcnkgbWFuYWdlciBzdHJ1Y3RzCisgKi8KKworc3RydWN0IGRybV9tbV9ub2RlIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGZsX2VudHJ5OworCXN0cnVjdCBsaXN0X2hlYWQgbWxfZW50cnk7CisJaW50IGZyZWU7CisJdW5zaWduZWQgbG9uZyBzdGFydDsKKwl1bnNpZ25lZCBsb25nIHNpemU7CisJc3RydWN0IGRybV9tbSAqbW07CisJdm9pZCAqcHJpdmF0ZTsKK307CisKK3N0cnVjdCBkcm1fbW0geworCXN0cnVjdCBsaXN0X2hlYWQgZmxfZW50cnk7CisJc3RydWN0IGxpc3RfaGVhZCBtbF9lbnRyeTsKK307CisKKworLyoqCisgKiBNYXBwaW5ncyBsaXN0CisgKi8KK3N0cnVjdCBkcm1fbWFwX2xpc3QgeworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsJCS8qKjwgbGlzdCBoZWFkICovCisJc3RydWN0IGRybV9oYXNoX2l0ZW0gaGFzaDsKKwlzdHJ1Y3QgZHJtX21hcCAqbWFwOwkJCS8qKjwgbWFwcGluZyAqLworCXVpbnQ2NF90IHVzZXJfdG9rZW47Cit9OworCit0eXBlZGVmIHN0cnVjdCBkcm1fbWFwIGRybV9sb2NhbF9tYXBfdDsKKworLyoqCisgKiBDb250ZXh0IGhhbmRsZSBsaXN0CisgKi8KK3N0cnVjdCBkcm1fY3R4X2xpc3QgeworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsJCS8qKjwgbGlzdCBoZWFkICovCisJZHJtX2NvbnRleHRfdCBoYW5kbGU7CQkvKio8IGNvbnRleHQgaGFuZGxlICovCisJc3RydWN0IGRybV9maWxlICp0YWc7CQkvKio8IGFzc29jaWF0ZWQgZmQgcHJpdmF0ZSBkYXRhICovCit9OworCitzdHJ1Y3QgZHJtX3ZibF9zaWcgeworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKKwl1bnNpZ25lZCBpbnQgc2VxdWVuY2U7CisJc3RydWN0IHNpZ2luZm8gaW5mbzsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7Cit9OworCisvKiBsb2NhdGlvbiBvZiBHQVJUIHRhYmxlICovCisjZGVmaW5lIERSTV9BVElfR0FSVF9NQUlOIDEKKyNkZWZpbmUgRFJNX0FUSV9HQVJUX0ZCICAgMgorCisjZGVmaW5lIERSTV9BVElfR0FSVF9QQ0kgMQorI2RlZmluZSBEUk1fQVRJX0dBUlRfUENJRSAyCisjZGVmaW5lIERSTV9BVElfR0FSVF9JR1AgMworCitzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8geworCWludCBnYXJ0X3RhYmxlX2xvY2F0aW9uOworCWludCBnYXJ0X3JlZ19pZjsKKwl2b2lkICphZGRyOworCWRtYV9hZGRyX3QgYnVzX2FkZHI7CisJZG1hX2FkZHJfdCB0YWJsZV9tYXNrOworCXN0cnVjdCBkcm1fZG1hX2hhbmRsZSAqdGFibGVfaGFuZGxlOworCWRybV9sb2NhbF9tYXBfdCBtYXBwaW5nOworCWludCB0YWJsZV9zaXplOworfTsKKworLyoqCisgKiBEUk0gZHJpdmVyIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50IHRoZSBjb21tb24gY29kZSBmb3IKKyAqIGEgZmFtaWx5IG9mIGNhcmRzLiBUaGVyZSB3aWxsIG9uZSBkcm1fZGV2aWNlIGZvciBlYWNoIGNhcmQgcHJlc2VudAorICogaW4gdGhpcyBmYW1pbHkKKyAqLworc3RydWN0IGRybV9kcml2ZXIgeworCWludCAoKmxvYWQpIChzdHJ1Y3QgZHJtX2RldmljZSAqLCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKKwlpbnQgKCpmaXJzdG9wZW4pIChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKKwlpbnQgKCpvcGVuKSAoc3RydWN0IGRybV9kZXZpY2UgKiwgc3RydWN0IGRybV9maWxlICopOworCXZvaWQgKCpwcmVjbG9zZSkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKwl2b2lkICgqcG9zdGNsb3NlKSAoc3RydWN0IGRybV9kZXZpY2UgKiwgc3RydWN0IGRybV9maWxlICopOworCXZvaWQgKCpsYXN0Y2xvc2UpIChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKKwlpbnQgKCp1bmxvYWQpIChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKKwlpbnQgKCpzdXNwZW5kKSAoc3RydWN0IGRybV9kZXZpY2UgKiwgcG1fbWVzc2FnZV90IHN0YXRlKTsKKwlpbnQgKCpyZXN1bWUpIChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKKwlpbnQgKCpkbWFfaW9jdGwpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisJdm9pZCAoKmRtYV9yZWFkeSkgKHN0cnVjdCBkcm1fZGV2aWNlICopOworCWludCAoKmRtYV9xdWllc2NlbnQpIChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKKwlpbnQgKCpjb250ZXh0X2N0b3IpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY29udGV4dCk7CisJaW50ICgqY29udGV4dF9kdG9yKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNvbnRleHQpOworCWludCAoKmtlcm5lbF9jb250ZXh0X3N3aXRjaCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBvbGQsCisJCQkJICAgICAgaW50IG5ldyk7CisJdm9pZCAoKmtlcm5lbF9jb250ZXh0X3N3aXRjaF91bmxvY2spIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKwlpbnQgKCp2Ymxhbmtfd2FpdCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOworCWludCAoKnZibGFua193YWl0MikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOworCWludCAoKmRyaV9saWJyYXJ5X25hbWUpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBjaGFyICpidWYpOworCisJLyoqCisJICogQ2FsbGVkIGJ5IFxjIGRybV9kZXZpY2VfaXNfYWdwLiAgVHlwaWNhbGx5IHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEKKwkgKiBjYXJkIGlzIHJlYWxseSBhdHRhY2hlZCB0byBBR1Agb3Igbm90LgorCSAqCisJICogXHBhcmFtIGRldiAgRFJNIGRldmljZSBoYW5kbGUKKwkgKgorCSAqIFxyZXR1cm5zCisJICogT25lIG9mIHRocmVlIHZhbHVlcyBpcyByZXR1cm5lZCBkZXBlbmRpbmcgb24gd2hldGhlciBvciBub3QgdGhlCisJICogY2FyZCBpcyBhYnNvbHV0ZWx5IFxiIG5vdCBBR1AgKHJldHVybiBvZiAwKSwgYWJzb2x1dGVseSBcYiBpcyBBR1AKKwkgKiAocmV0dXJuIG9mIDEpLCBvciBtYXkgb3IgbWF5IG5vdCBiZSBBR1AgKHJldHVybiBvZiAyKS4KKwkgKi8KKwlpbnQgKCpkZXZpY2VfaXNfYWdwKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKKwkvKiB0aGVzZSBoYXZlIHRvIGJlIGZpbGxlZCBpbiAqLworCisJaXJxcmV0dXJuX3QoKmlycV9oYW5kbGVyKSAoRFJNX0lSUV9BUkdTKTsKKwl2b2lkICgqaXJxX3ByZWluc3RhbGwpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKwl2b2lkICgqaXJxX3Bvc3RpbnN0YWxsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisJdm9pZCAoKmlycV91bmluc3RhbGwpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKwl2b2lkICgqcmVjbGFpbV9idWZmZXJzKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgc3RydWN0IGRybV9maWxlICogZmlsZV9wcml2KTsKKwl2b2lkICgqcmVjbGFpbV9idWZmZXJzX2xvY2tlZCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKwl2b2lkICgqcmVjbGFpbV9idWZmZXJzX2lkbGVsb2NrZWQpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCXVuc2lnbmVkIGxvbmcgKCpnZXRfbWFwX29mcykgKHN0cnVjdCBkcm1fbWFwICogbWFwKTsKKwl1bnNpZ25lZCBsb25nICgqZ2V0X3JlZ19vZnMpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKwl2b2lkICgqc2V0X3ZlcnNpb24pIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICBzdHJ1Y3QgZHJtX3NldF92ZXJzaW9uICpzdik7CisKKwlpbnQgbWFqb3I7CisJaW50IG1pbm9yOworCWludCBwYXRjaGxldmVsOworCWNoYXIgKm5hbWU7CisJY2hhciAqZGVzYzsKKwljaGFyICpkYXRlOworCisJdTMyIGRyaXZlcl9mZWF0dXJlczsKKwlpbnQgZGV2X3ByaXZfc2l6ZTsKKwlzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgKmlvY3RsczsKKwlpbnQgbnVtX2lvY3RsczsKKwlzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHM7CisJc3RydWN0IHBjaV9kcml2ZXIgcGNpX2RyaXZlcjsKK307CisKKyNkZWZpbmUgRFJNX01JTk9SX1VOQVNTSUdORUQgMAorI2RlZmluZSBEUk1fTUlOT1JfTEVHQUNZIDEKKworLyoqCisgKiBEUk0gbWlub3Igc3RydWN0dXJlLiBUaGlzIHN0cnVjdHVyZSByZXByZXNlbnRzIGEgZHJtIG1pbm9yIG51bWJlci4KKyAqLworc3RydWN0IGRybV9taW5vciB7CisJaW50IGluZGV4OwkJCS8qKjwgTWlub3IgZGV2aWNlIG51bWJlciAqLworCWludCB0eXBlOyAgICAgICAgICAgICAgICAgICAgICAgLyoqPCBDb250cm9sIG9yIHJlbmRlciAqLworCWRldl90IGRldmljZTsJCQkvKio8IERldmljZSBudW1iZXIgZm9yIG1rbm9kICovCisJc3RydWN0IGRldmljZSBrZGV2OwkJLyoqPCBMaW51eCBkZXZpY2UgKi8KKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OworCXN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqZGV2X3Jvb3Q7ICAvKio8IHByb2MgZGlyZWN0b3J5IGVudHJ5ICovCit9OworCisvKioKKyAqIERSTSBkZXZpY2Ugc3RydWN0dXJlLiBUaGlzIHN0cnVjdHVyZSByZXByZXNlbnQgYSBjb21wbGV0ZSBjYXJkIHRoYXQKKyAqIG1heSBjb250YWluIG11bHRpcGxlIGhlYWRzLgorICovCitzdHJ1Y3QgZHJtX2RldmljZSB7CisJY2hhciAqdW5pcXVlOwkJCS8qKjwgVW5pcXVlIGlkZW50aWZpZXI6IGUuZy4sIGJ1c2lkICovCisJaW50IHVuaXF1ZV9sZW47CQkJLyoqPCBMZW5ndGggb2YgdW5pcXVlIGZpZWxkICovCisJY2hhciAqZGV2bmFtZTsJCQkvKio8IEZvciAvcHJvYy9pbnRlcnJ1cHRzICovCisJaW50IGlmX3ZlcnNpb247CQkJLyoqPCBIaWdoZXN0IGludGVyZmFjZSB2ZXJzaW9uIHNldCAqLworCisJaW50IGJsb2NrZWQ7CQkJLyoqPCBCbG9ja2VkIGR1ZSB0byBWQyBzd2l0Y2g/ICovCisKKwkvKiogXG5hbWUgTG9ja3MgKi8KKwkvKkB7ICovCisJc3BpbmxvY2tfdCBjb3VudF9sb2NrOwkJLyoqPCBGb3IgaW51c2UsIGRybV9kZXZpY2U6Om9wZW5fY291bnQsIGRybV9kZXZpY2U6OmJ1Zl91c2UgKi8KKwlzdHJ1Y3QgbXV0ZXggc3RydWN0X211dGV4OwkvKio8IEZvciBvdGhlcnMgKi8KKwkvKkB9ICovCisKKwkvKiogXG5hbWUgVXNhZ2UgQ291bnRlcnMgKi8KKwkvKkB7ICovCisJaW50IG9wZW5fY291bnQ7CQkJLyoqPCBPdXRzdGFuZGluZyBmaWxlcyBvcGVuICovCisJYXRvbWljX3QgaW9jdGxfY291bnQ7CQkvKio8IE91dHN0YW5kaW5nIElPQ1RMcyBwZW5kaW5nICovCisJYXRvbWljX3Qgdm1hX2NvdW50OwkJLyoqPCBPdXRzdGFuZGluZyB2bWEgYXJlYXMgb3BlbiAqLworCWludCBidWZfdXNlOwkJCS8qKjwgQnVmZmVycyBpbiB1c2UgLS0gY2Fubm90IGFsbG9jICovCisJYXRvbWljX3QgYnVmX2FsbG9jOwkJLyoqPCBCdWZmZXIgYWxsb2NhdGlvbiBpbiBwcm9ncmVzcyAqLworCS8qQH0gKi8KKworCS8qKiBcbmFtZSBQZXJmb3JtYW5jZSBjb3VudGVycyAqLworCS8qQHsgKi8KKwl1bnNpZ25lZCBsb25nIGNvdW50ZXJzOworCWVudW0gZHJtX3N0YXRfdHlwZSB0eXBlc1sxNV07CisJYXRvbWljX3QgY291bnRzWzE1XTsKKwkvKkB9ICovCisKKwkvKiogXG5hbWUgQXV0aGVudGljYXRpb24gKi8KKwkvKkB7ICovCisJc3RydWN0IGxpc3RfaGVhZCBmaWxlbGlzdDsKKwlzdHJ1Y3QgZHJtX29wZW5faGFzaCBtYWdpY2xpc3Q7CS8qKjwgbWFnaWMgaGFzaCB0YWJsZSAqLworCXN0cnVjdCBsaXN0X2hlYWQgbWFnaWNmcmVlOworCS8qQH0gKi8KKworCS8qKiBcbmFtZSBNZW1vcnkgbWFuYWdlbWVudCAqLworCS8qQHsgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIG1hcGxpc3Q7CS8qKjwgTGlua2VkIGxpc3Qgb2YgcmVnaW9ucyAqLworCWludCBtYXBfY291bnQ7CQkJLyoqPCBOdW1iZXIgb2YgbWFwcGFibGUgcmVnaW9ucyAqLworCXN0cnVjdCBkcm1fb3Blbl9oYXNoIG1hcF9oYXNoOwkvKio8IFVzZXIgdG9rZW4gaGFzaCB0YWJsZSBmb3IgbWFwcyAqLworCisJLyoqIFxuYW1lIENvbnRleHQgaGFuZGxlIG1hbmFnZW1lbnQgKi8KKwkvKkB7ICovCisJc3RydWN0IGxpc3RfaGVhZCBjdHhsaXN0OwkvKio8IExpbmtlZCBsaXN0IG9mIGNvbnRleHQgaGFuZGxlcyAqLworCWludCBjdHhfY291bnQ7CQkJLyoqPCBOdW1iZXIgb2YgY29udGV4dCBoYW5kbGVzICovCisJc3RydWN0IG11dGV4IGN0eGxpc3RfbXV0ZXg7CS8qKjwgRm9yIGN0eGxpc3QgKi8KKworCXN0cnVjdCBpZHIgY3R4X2lkcjsKKworCXN0cnVjdCBsaXN0X2hlYWQgdm1hbGlzdDsJLyoqPCBMaXN0IG9mIHZtYXMgKGZvciBkZWJ1Z2dpbmcpICovCisJc3RydWN0IGRybV9sb2NrX2RhdGEgbG9jazsJLyoqPCBJbmZvcm1hdGlvbiBvbiBoYXJkd2FyZSBsb2NrICovCisJLypAfSAqLworCisJLyoqIFxuYW1lIERNQSBxdWV1ZXMgKGNvbnRleHRzKSAqLworCS8qQHsgKi8KKwlpbnQgcXVldWVfY291bnQ7CQkvKio8IE51bWJlciBvZiBhY3RpdmUgRE1BIHF1ZXVlcyAqLworCWludCBxdWV1ZV9yZXNlcnZlZDsJCSAgLyoqPCBOdW1iZXIgb2YgcmVzZXJ2ZWQgRE1BIHF1ZXVlcyAqLworCWludCBxdWV1ZV9zbG90czsJCS8qKjwgQWN0dWFsIGxlbmd0aCBvZiBxdWV1ZWxpc3QgKi8KKwlzdHJ1Y3QgZHJtX3F1ZXVlICoqcXVldWVsaXN0OwkvKio8IFZlY3RvciBvZiBwb2ludGVycyB0byBETUEgcXVldWVzICovCisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWE7CQkvKio8IE9wdGlvbmFsIHBvaW50ZXIgZm9yIERNQSBzdXBwb3J0ICovCisJLypAfSAqLworCisJLyoqIFxuYW1lIENvbnRleHQgc3VwcG9ydCAqLworCS8qQHsgKi8KKwlpbnQgaXJxOwkJCS8qKjwgSW50ZXJydXB0IHVzZWQgYnkgYm9hcmQgKi8KKwlpbnQgaXJxX2VuYWJsZWQ7CQkvKio8IFRydWUgaWYgaXJxIGhhbmRsZXIgaXMgZW5hYmxlZCAqLworCV9fdm9sYXRpbGVfXyBsb25nIGNvbnRleHRfZmxhZzsJLyoqPCBDb250ZXh0IHN3YXBwaW5nIGZsYWcgKi8KKwlfX3ZvbGF0aWxlX18gbG9uZyBpbnRlcnJ1cHRfZmxhZzsgLyoqPCBJbnRlcnJ1cHRpb24gaGFuZGxlciBmbGFnICovCisJX192b2xhdGlsZV9fIGxvbmcgZG1hX2ZsYWc7CS8qKjwgRE1BIGRpc3BhdGNoIGZsYWcgKi8KKwlzdHJ1Y3QgdGltZXJfbGlzdCB0aW1lcjsJLyoqPCBUaW1lciBmb3IgZGVsYXlpbmcgY3R4IHN3aXRjaCAqLworCXdhaXRfcXVldWVfaGVhZF90IGNvbnRleHRfd2FpdDsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBjdHggc3dpdGNoICovCisJaW50IGxhc3RfY2hlY2tlZDsJCS8qKjwgTGFzdCBjb250ZXh0IGNoZWNrZWQgZm9yIERNQSAqLworCWludCBsYXN0X2NvbnRleHQ7CQkvKio8IExhc3QgY3VycmVudCBjb250ZXh0ICovCisJdW5zaWduZWQgbG9uZyBsYXN0X3N3aXRjaDsJLyoqPCBqaWZmaWVzIGF0IGxhc3QgY29udGV4dCBzd2l0Y2ggKi8KKwkvKkB9ICovCisKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKKwkvKiogXG5hbWUgVkJMQU5LIElSUSBzdXBwb3J0ICovCisJLypAeyAqLworCisJd2FpdF9xdWV1ZV9oZWFkX3QgdmJsX3F1ZXVlOwkvKio8IFZCTEFOSyB3YWl0IHF1ZXVlICovCisJYXRvbWljX3QgdmJsX3JlY2VpdmVkOworCWF0b21pY190IHZibF9yZWNlaXZlZDI7CQkvKio8IG51bWJlciBvZiBzZWNvbmRhcnkgVkJMQU5LIGludGVycnVwdHMgKi8KKwlzcGlubG9ja190IHZibF9sb2NrOworCXN0cnVjdCBsaXN0X2hlYWQgdmJsX3NpZ3M7CQkvKio8IHNpZ25hbCBsaXN0IHRvIHNlbmQgb24gVkJMQU5LICovCisJc3RydWN0IGxpc3RfaGVhZCB2Ymxfc2lnczI7CS8qKjwgc2lnbmFscyB0byBzZW5kIG9uIHNlY29uZGFyeSBWQkxBTksgKi8KKwl1bnNpZ25lZCBpbnQgdmJsX3BlbmRpbmc7CisJc3BpbmxvY2tfdCB0YXNrbGV0X2xvY2s7CS8qKjwgRm9yIGRybV9sb2NrZWRfdGFza2xldCAqLworCXZvaWQgKCpsb2NrZWRfdGFza2xldF9mdW5jKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworCS8qQH0gKi8KKwljeWNsZXNfdCBjdHhfc3RhcnQ7CisJY3ljbGVzX3QgbGNrX3N0YXJ0OworCisJc3RydWN0IGZhc3luY19zdHJ1Y3QgKmJ1Zl9hc3luYzsvKio8IFByb2Nlc3NlcyB3YWl0aW5nIGZvciBTSUdJTyAqLworCXdhaXRfcXVldWVfaGVhZF90IGJ1Zl9yZWFkZXJzOwkvKio8IFByb2Nlc3NlcyB3YWl0aW5nIHRvIHJlYWQgKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCBidWZfd3JpdGVyczsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyB0byBjdHggc3dpdGNoICovCisKKwlzdHJ1Y3QgZHJtX2FncF9oZWFkICphZ3A7CS8qKjwgQUdQIGRhdGEgKi8KKworCXN0cnVjdCBwY2lfZGV2ICpwZGV2OwkJLyoqPCBQQ0kgZGV2aWNlIHN0cnVjdHVyZSAqLworCWludCBwY2lfdmVuZG9yOwkJCS8qKjwgUENJIHZlbmRvciBpZCAqLworCWludCBwY2lfZGV2aWNlOwkJCS8qKjwgUENJIGRldmljZSBpZCAqLworI2lmZGVmIF9fYWxwaGFfXworCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZTsKKyNlbmRpZgorCXN0cnVjdCBkcm1fc2dfbWVtICpzZzsJLyoqPCBTY2F0dGVyIGdhdGhlciBtZW1vcnkgKi8KKwl2b2lkICpkZXZfcHJpdmF0ZTsJCS8qKjwgZGV2aWNlIHByaXZhdGUgZGF0YSAqLworCXN0cnVjdCBkcm1fc2lnZGF0YSBzaWdkYXRhOwkgICAvKio8IEZvciBibG9ja19hbGxfc2lnbmFscyAqLworCXNpZ3NldF90IHNpZ21hc2s7CisKKwlzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyOworCWRybV9sb2NhbF9tYXBfdCAqYWdwX2J1ZmZlcl9tYXA7CisJdW5zaWduZWQgaW50IGFncF9idWZmZXJfdG9rZW47CisJc3RydWN0IGRybV9taW5vciAqcHJpbWFyeTsJCS8qKjwgcmVuZGVyIHR5cGUgcHJpbWFyeSBzY3JlZW4gaGVhZCAqLworCisJLyoqIFxuYW1lIERyYXdhYmxlIGluZm9ybWF0aW9uICovCisJLypAeyAqLworCXNwaW5sb2NrX3QgZHJ3X2xvY2s7CisJc3RydWN0IGlkciBkcndfaWRyOworCS8qQH0gKi8KK307CisKK3N0YXRpYyBfX2lubGluZV9fIGludCBkcm1fY29yZV9jaGVja19mZWF0dXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCSAgICAgaW50IGZlYXR1cmUpCit7CisJcmV0dXJuICgoZGV2LT5kcml2ZXItPmRyaXZlcl9mZWF0dXJlcyAmIGZlYXR1cmUpID8gMSA6IDApOworfQorCisjaWZkZWYgX19hbHBoYV9fCisjZGVmaW5lIGRybV9nZXRfcGNpX2RvbWFpbihkZXYpIGRldi0+aG9zZS0+aW5kZXgKKyNlbHNlCisjZGVmaW5lIGRybV9nZXRfcGNpX2RvbWFpbihkZXYpIDAKKyNlbmRpZgorCisjaWYgX19PU19IQVNfQUdQCitzdGF0aWMgaW5saW5lIGludCBkcm1fY29yZV9oYXNfQUdQKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfVVNFX0FHUCk7Cit9CisjZWxzZQorI2RlZmluZSBkcm1fY29yZV9oYXNfQUdQKGRldikgKDApCisjZW5kaWYKKworI2lmIF9fT1NfSEFTX01UUlIKK3N0YXRpYyBpbmxpbmUgaW50IGRybV9jb3JlX2hhc19NVFJSKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfVVNFX01UUlIpOworfQorCisjZGVmaW5lIERSTV9NVFJSX1dDCQlNVFJSX1RZUEVfV1JDT01CCisKK3N0YXRpYyBpbmxpbmUgaW50IGRybV9tdHJyX2FkZCh1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKK3sKKwlyZXR1cm4gbXRycl9hZGQob2Zmc2V0LCBzaXplLCBmbGFncywgMSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGRybV9tdHJyX2RlbChpbnQgaGFuZGxlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGludCBmbGFncykKK3sKKwlyZXR1cm4gbXRycl9kZWwoaGFuZGxlLCBvZmZzZXQsIHNpemUpOworfQorCisjZWxzZQorI2RlZmluZSBkcm1fY29yZV9oYXNfTVRSUihkZXYpICgwKQorCisjZGVmaW5lIERSTV9NVFJSX1dDCQkwCisKK3N0YXRpYyBpbmxpbmUgaW50IGRybV9tdHJyX2FkZCh1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgZHJtX210cnJfZGVsKGludCBoYW5kbGUsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAorCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXJldHVybiAwOworfQorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiogXG5hbWUgSW50ZXJuYWwgZnVuY3Rpb24gZGVmaW5pdGlvbnMgKi8KKy8qQHsqLworCisJCQkJLyogRHJpdmVyIHN1cHBvcnQgKGRybV9kcnYuaCkgKi8KK2V4dGVybiBpbnQgZHJtX2luaXQoc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcik7CitleHRlcm4gdm9pZCBkcm1fZXhpdChzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyKTsKK2V4dGVybiBpbnQgZHJtX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwLAorCQkgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKK2V4dGVybiBsb25nIGRybV9jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsCisJCQkgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKK2V4dGVybiBpbnQgZHJtX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworCQkJCS8qIERldmljZSBzdXBwb3J0IChkcm1fZm9wcy5oKSAqLworZXh0ZXJuIGludCBkcm1fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitleHRlcm4gaW50IGRybV9zdHViX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOworZXh0ZXJuIGludCBkcm1fZmFzeW5jKGludCBmZCwgc3RydWN0IGZpbGUgKmZpbHAsIGludCBvbik7CitleHRlcm4gaW50IGRybV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKTsKKworCQkJCS8qIE1hcHBpbmcgc3VwcG9ydCAoZHJtX3ZtLmgpICovCitleHRlcm4gaW50IGRybV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBkcm1fY29yZV9nZXRfbWFwX29mcyhzdHJ1Y3QgZHJtX21hcCAqIG1hcCk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBkcm1fY29yZV9nZXRfcmVnX29mcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB1bnNpZ25lZCBpbnQgZHJtX3BvbGwoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqd2FpdCk7CisKKwkJCQkvKiBNZW1vcnkgbWFuYWdlbWVudCBzdXBwb3J0IChkcm1fbWVtb3J5LmgpICovCisjaW5jbHVkZSAiZHJtX21lbW9yeS5oIgorZXh0ZXJuIHZvaWQgZHJtX21lbV9pbml0KHZvaWQpOworZXh0ZXJuIGludCBkcm1fbWVtX2luZm8oY2hhciAqYnVmLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZnNldCwKKwkJCWludCByZXF1ZXN0LCBpbnQgKmVvZiwgdm9pZCAqZGF0YSk7CitleHRlcm4gdm9pZCAqZHJtX3JlYWxsb2Modm9pZCAqb2xkcHQsIHNpemVfdCBvbGRzaXplLCBzaXplX3Qgc2l6ZSwgaW50IGFyZWEpOworCitleHRlcm4gRFJNX0FHUF9NRU0gKmRybV9hbGxvY19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBhZ2VzLCB1MzIgdHlwZSk7CitleHRlcm4gaW50IGRybV9mcmVlX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgaW50IHBhZ2VzKTsKK2V4dGVybiBpbnQgZHJtX2JpbmRfYWdwKERSTV9BR1BfTUVNICogaGFuZGxlLCB1bnNpZ25lZCBpbnQgc3RhcnQpOworZXh0ZXJuIGludCBkcm1fdW5iaW5kX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSk7CisKKwkJCQkvKiBNaXNjLiBJT0NUTCBzdXBwb3J0IChkcm1faW9jdGwuaCkgKi8KK2V4dGVybiBpbnQgZHJtX2lycV9ieV9idXNpZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2dldHVuaXF1ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3NldHVuaXF1ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2dldG1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9nZXRjbGllbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9nZXRzdGF0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fc2V0dmVyc2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9ub29wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisKKwkJCQkvKiBDb250ZXh0IElPQ1RMIHN1cHBvcnQgKGRybV9jb250ZXh0LmgpICovCitleHRlcm4gaW50IGRybV9yZXNjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYWRkY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX21vZGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9nZXRjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fc3dpdGNoY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fbmV3Y3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3JtY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCitleHRlcm4gaW50IGRybV9jdHhiaXRtYXBfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9jdHhiaXRtYXBfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9jdHhiaXRtYXBfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3R4X2hhbmRsZSk7CisKK2V4dGVybiBpbnQgZHJtX3NldHNhcmVhY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9nZXRzYXJlYWN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCisJCQkJLyogRHJhd2FibGUgSU9DVEwgc3VwcG9ydCAoZHJtX2RyYXdhYmxlLmgpICovCitleHRlcm4gaW50IGRybV9hZGRkcmF3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9ybWRyYXcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fdXBkYXRlX2RyYXdhYmxlX2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHN0cnVjdCBkcm1fZHJhd2FibGVfaW5mbyAqZHJtX2dldF9kcmF3YWJsZV9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCQkgIGRybV9kcmF3YWJsZV90IGlkKTsKK2V4dGVybiB2b2lkIGRybV9kcmF3YWJsZV9mcmVlX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworCQkJCS8qIEF1dGhlbnRpY2F0aW9uIElPQ1RMIHN1cHBvcnQgKGRybV9hdXRoLmgpICovCitleHRlcm4gaW50IGRybV9nZXRtYWdpYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYXV0aG1hZ2ljKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCisJCQkJLyogTG9ja2luZyBJT0NUTCBzdXBwb3J0IChkcm1fbG9jay5oKSAqLworZXh0ZXJuIGludCBkcm1fbG9jayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fdW5sb2NrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2xvY2tfdGFrZShzdHJ1Y3QgZHJtX2xvY2tfZGF0YSAqbG9ja19kYXRhLCB1bnNpZ25lZCBpbnQgY29udGV4dCk7CitleHRlcm4gaW50IGRybV9sb2NrX2ZyZWUoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSwgdW5zaWduZWQgaW50IGNvbnRleHQpOworZXh0ZXJuIHZvaWQgZHJtX2lkbGVsb2NrX3Rha2Uoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSk7CitleHRlcm4gdm9pZCBkcm1faWRsZWxvY2tfcmVsZWFzZShzdHJ1Y3QgZHJtX2xvY2tfZGF0YSAqbG9ja19kYXRhKTsKKworLyoKKyAqIFRoZXNlIGFyZSBleHBvcnRlZCB0byBkcml2ZXJzIHNvIHRoYXQgdGhleSBjYW4gaW1wbGVtZW50IGZlbmNpbmcgdXNpbmcKKyAqIERNQSBxdWlzY2VudCArIGlkbGUuIERNQSBxdWllc2NlbnQgdXN1YWxseSByZXF1aXJlcyB0aGUgaGFyZHdhcmUgbG9jay4KKyAqLworCitleHRlcm4gaW50IGRybV9pX2hhdmVfaHdfbG9jayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisKKwkJCQkvKiBCdWZmZXIgbWFuYWdlbWVudCBzdXBwb3J0IChkcm1fYnVmcy5oKSAqLworZXh0ZXJuIGludCBkcm1fYWRkYnVmc19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9idWZfZGVzYyAqIHJlcXVlc3QpOworZXh0ZXJuIGludCBkcm1fYWRkYnVmc19wY2koc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9idWZfZGVzYyAqIHJlcXVlc3QpOworZXh0ZXJuIGludCBkcm1fYWRkbWFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBvZmZzZXQsCisJCSAgICAgIHVuc2lnbmVkIGludCBzaXplLCBlbnVtIGRybV9tYXBfdHlwZSB0eXBlLAorCQkgICAgICBlbnVtIGRybV9tYXBfZmxhZ3MgZmxhZ3MsIGRybV9sb2NhbF9tYXBfdCAqKiBtYXBfcHRyKTsKK2V4dGVybiBpbnQgZHJtX2FkZG1hcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3JtbWFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGRybV9sb2NhbF9tYXBfdCAqbWFwKTsKK2V4dGVybiBpbnQgZHJtX3JtbWFwX2xvY2tlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fbG9jYWxfbWFwX3QgKm1hcCk7CitleHRlcm4gaW50IGRybV9ybW1hcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYWRkYnVmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1faW5mb2J1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX21hcmtidWZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9mcmVlYnVmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fbWFwYnVmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fb3JkZXIodW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGRybV9nZXRfcmVzb3VyY2Vfc3RhcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJICAgIHVuc2lnbmVkIGludCByZXNvdXJjZSk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBkcm1fZ2V0X3Jlc291cmNlX2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkgIHVuc2lnbmVkIGludCByZXNvdXJjZSk7CisKKwkJCQkvKiBETUEgc3VwcG9ydCAoZHJtX2RtYS5oKSAqLworZXh0ZXJuIGludCBkcm1fZG1hX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2RtYV90YWtlZG93bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9mcmVlX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2J1ZiAqIGJ1Zik7CitleHRlcm4gdm9pZCBkcm1fY29yZV9yZWNsYWltX2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlscCk7CisKKwkJCQkvKiBJUlEgc3VwcG9ydCAoZHJtX2lycS5oKSAqLworZXh0ZXJuIGludCBkcm1fY29udHJvbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGlycXJldHVybl90IGRybV9pcnFfaGFuZGxlcihEUk1fSVJRX0FSR1MpOworZXh0ZXJuIGludCBkcm1faXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fZHJpdmVyX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9kcml2ZXJfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworZXh0ZXJuIGludCBkcm1fd2FpdF92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3ZibGFua193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqdmJsX3NlcSk7CitleHRlcm4gdm9pZCBkcm1fdmJsX3NlbmRfc2lnbmFscyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9sb2NrZWRfdGFza2xldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkKCpmdW5jKShzdHJ1Y3QgZHJtX2RldmljZSopKTsKKworCQkJCS8qIEFHUC9HQVJUIHN1cHBvcnQgKGRybV9hZ3BzdXBwb3J0LmgpICovCitleHRlcm4gc3RydWN0IGRybV9hZ3BfaGVhZCAqZHJtX2FncF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCBkcm1fYWdwX2FjcXVpcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gaW50IGRybV9hZ3BfYWNxdWlyZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hZ3BfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiBpbnQgZHJtX2FncF9yZWxlYXNlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2FncF9lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfbW9kZSBtb2RlKTsKK2V4dGVybiBpbnQgZHJtX2FncF9lbmFibGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hZ3BfaW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9pbmZvICppbmZvKTsKK2V4dGVybiBpbnQgZHJtX2FncF9pbmZvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hZ3BfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfYnVmZmVyICpyZXF1ZXN0KTsKK2V4dGVybiBpbnQgZHJtX2FncF9hbGxvY19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2FncF9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2J1ZmZlciAqcmVxdWVzdCk7CitleHRlcm4gaW50IGRybV9hZ3BfZnJlZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYWdwX3VuYmluZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nICpyZXF1ZXN0KTsKK2V4dGVybiBpbnQgZHJtX2FncF91bmJpbmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYWdwX2JpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfYmluZGluZyAqcmVxdWVzdCk7CitleHRlcm4gaW50IGRybV9hZ3BfYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIERSTV9BR1BfTUVNICpkcm1fYWdwX2FsbG9jYXRlX21lbW9yeShzdHJ1Y3QgYWdwX2JyaWRnZV9kYXRhICpicmlkZ2UsIHNpemVfdCBwYWdlcywgdTMyIHR5cGUpOworZXh0ZXJuIGludCBkcm1fYWdwX2ZyZWVfbWVtb3J5KERSTV9BR1BfTUVNICogaGFuZGxlKTsKK2V4dGVybiBpbnQgZHJtX2FncF9iaW5kX21lbW9yeShEUk1fQUdQX01FTSAqIGhhbmRsZSwgb2ZmX3Qgc3RhcnQpOworZXh0ZXJuIGludCBkcm1fYWdwX3VuYmluZF9tZW1vcnkoRFJNX0FHUF9NRU0gKiBoYW5kbGUpOworCisJCQkJLyogU3R1YiBzdXBwb3J0IChkcm1fc3R1Yi5oKSAqLworZXh0ZXJuIGludCBkcm1fZ2V0X2RldihzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCwKKwkJICAgICAgIHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpOworZXh0ZXJuIGludCBkcm1fcHV0X2RldihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiBpbnQgZHJtX3B1dF9taW5vcihzdHJ1Y3QgZHJtX21pbm9yICoqbWlub3IpOworZXh0ZXJuIHVuc2lnbmVkIGludCBkcm1fZGVidWc7CisKK2V4dGVybiBzdHJ1Y3QgY2xhc3MgKmRybV9jbGFzczsKK2V4dGVybiBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmRybV9wcm9jX3Jvb3Q7CisKK2V4dGVybiBzdHJ1Y3QgaWRyIGRybV9taW5vcnNfaWRyOworCitleHRlcm4gZHJtX2xvY2FsX21hcF90ICpkcm1fZ2V0c2FyZWEoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKKwkJCQkvKiBQcm9jIHN1cHBvcnQgKGRybV9wcm9jLmgpICovCitleHRlcm4gaW50IGRybV9wcm9jX2luaXQoc3RydWN0IGRybV9taW5vciAqbWlub3IsIGludCBtaW5vcl9pZCwKKwkJCSBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnJvb3QpOworZXh0ZXJuIGludCBkcm1fcHJvY19jbGVhbnVwKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yLCBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnJvb3QpOworCisJCQkJLyogU2NhdHRlciBHYXRoZXIgU3VwcG9ydCAoZHJtX3NjYXR0ZXIuaCkgKi8KK2V4dGVybiB2b2lkIGRybV9zZ19jbGVhbnVwKHN0cnVjdCBkcm1fc2dfbWVtICogZW50cnkpOworZXh0ZXJuIGludCBkcm1fc2dfYWxsb2NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3NnX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fc2NhdHRlcl9nYXRoZXIgKiByZXF1ZXN0KTsKK2V4dGVybiBpbnQgZHJtX3NnX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworCQkJICAgICAgIC8qIEFUSSBQQ0lHQVJUIHN1cHBvcnQgKGF0aV9wY2lnYXJ0LmgpICovCitleHRlcm4gaW50IGRybV9hdGlfcGNpZ2FydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICogZ2FydF9pbmZvKTsKK2V4dGVybiBpbnQgZHJtX2F0aV9wY2lnYXJ0X2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKiBnYXJ0X2luZm8pOworCitleHRlcm4gZHJtX2RtYV9oYW5kbGVfdCAqZHJtX3BjaV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKKwkJCQkgICAgICAgc2l6ZV90IGFsaWduLCBkbWFfYWRkcl90IG1heGFkZHIpOworZXh0ZXJuIHZvaWQgX19kcm1fcGNpX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZHJtX2RtYV9oYW5kbGVfdCAqIGRtYWgpOworZXh0ZXJuIHZvaWQgZHJtX3BjaV9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGRybV9kbWFfaGFuZGxlX3QgKiBkbWFoKTsKKworCQkJICAgICAgIC8qIHN5c2ZzIHN1cHBvcnQgKGRybV9zeXNmcy5jKSAqLworc3RydWN0IGRybV9zeXNmc19jbGFzczsKK2V4dGVybiBzdHJ1Y3QgY2xhc3MgKmRybV9zeXNmc19jcmVhdGUoc3RydWN0IG1vZHVsZSAqb3duZXIsIGNoYXIgKm5hbWUpOworZXh0ZXJuIHZvaWQgZHJtX3N5c2ZzX2Rlc3Ryb3kodm9pZCk7CitleHRlcm4gaW50IGRybV9zeXNmc19kZXZpY2VfYWRkKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKTsKK2V4dGVybiB2b2lkIGRybV9zeXNmc19kZXZpY2VfcmVtb3ZlKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKTsKKworLyoKKyAqIEJhc2ljIG1lbW9yeSBtYW5hZ2VyIHN1cHBvcnQgKGRybV9tbS5jKQorICovCitleHRlcm4gc3RydWN0IGRybV9tbV9ub2RlICpkcm1fbW1fZ2V0X2Jsb2NrKHN0cnVjdCBkcm1fbW1fbm9kZSAqIHBhcmVudCwKKwkJCQkgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCSAgICAgICB1bnNpZ25lZCBhbGlnbm1lbnQpOworZXh0ZXJuIHZvaWQgZHJtX21tX3B1dF9ibG9jayhzdHJ1Y3QgZHJtX21tX25vZGUgKiBjdXIpOworZXh0ZXJuIHN0cnVjdCBkcm1fbW1fbm9kZSAqZHJtX21tX3NlYXJjaF9mcmVlKGNvbnN0IHN0cnVjdCBkcm1fbW0gKm1tLCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkJCSB1bnNpZ25lZCBhbGlnbm1lbnQsIGludCBiZXN0X21hdGNoKTsKK2V4dGVybiBpbnQgZHJtX21tX2luaXQoc3RydWN0IGRybV9tbSAqbW0sIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CitleHRlcm4gdm9pZCBkcm1fbW1fdGFrZWRvd24oc3RydWN0IGRybV9tbSAqbW0pOworZXh0ZXJuIGludCBkcm1fbW1fY2xlYW4oc3RydWN0IGRybV9tbSAqbW0pOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX21tX3RhaWxfc3BhY2Uoc3RydWN0IGRybV9tbSAqbW0pOworZXh0ZXJuIGludCBkcm1fbW1fcmVtb3ZlX3NwYWNlX2Zyb21fdGFpbChzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiBpbnQgZHJtX21tX2FkZF9zcGFjZV90b190YWlsKHN0cnVjdCBkcm1fbW0gKm1tLCB1bnNpZ25lZCBsb25nIHNpemUpOworCitleHRlcm4gdm9pZCBkcm1fY29yZV9pb3JlbWFwKHN0cnVjdCBkcm1fbWFwICptYXAsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2NvcmVfaW9yZW1hcF93YyhzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9jb3JlX2lvcmVtYXBmcmVlKHN0cnVjdCBkcm1fbWFwICptYXAsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCitzdGF0aWMgX19pbmxpbmVfXyBzdHJ1Y3QgZHJtX21hcCAqZHJtX2NvcmVfZmluZG1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkJICAgdW5zaWduZWQgaW50IHRva2VuKQoreworCXN0cnVjdCBkcm1fbWFwX2xpc3QgKl9lbnRyeTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KF9lbnRyeSwgJmRldi0+bWFwbGlzdCwgaGVhZCkKKwkgICAgaWYgKF9lbnRyeS0+dXNlcl90b2tlbiA9PSB0b2tlbikKKwkJcmV0dXJuIF9lbnRyeS0+bWFwOworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgZHJtX2RldmljZV9pc19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlpZiAoZGV2LT5kcml2ZXItPmRldmljZV9pc19hZ3AgIT0gTlVMTCkgeworCQlpbnQgZXJyID0gKCpkZXYtPmRyaXZlci0+ZGV2aWNlX2lzX2FncCkgKGRldik7CisKKwkJaWYgKGVyciAhPSAyKSB7CisJCQlyZXR1cm4gZXJyOworCQl9CisJfQorCisJcmV0dXJuIHBjaV9maW5kX2NhcGFiaWxpdHkoZGV2LT5wZGV2LCBQQ0lfQ0FQX0lEX0FHUCk7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIGludCBkcm1fZGV2aWNlX2lzX3BjaWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gcGNpX2ZpbmRfY2FwYWJpbGl0eShkZXYtPnBkZXYsIFBDSV9DQVBfSURfRVhQKTsKK30KKworc3RhdGljIF9faW5saW5lX18gdm9pZCBkcm1fY29yZV9kcm9wbWFwKHN0cnVjdCBkcm1fbWFwICptYXApCit7Cit9CisKKyNpZm5kZWYgREVCVUdfTUVNT1JZCisvKiogV3JhcHBlciBhcm91bmQga21hbGxvYygpICovCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkICpkcm1fYWxsb2Moc2l6ZV90IHNpemUsIGludCBhcmVhKQoreworCXJldHVybiBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworfQorCisvKiogV3JhcHBlciBhcm91bmQga2ZyZWUoKSAqLworc3RhdGljIF9faW5saW5lX18gdm9pZCBkcm1fZnJlZSh2b2lkICpwdCwgc2l6ZV90IHNpemUsIGludCBhcmVhKQoreworCWtmcmVlKHB0KTsKK30KKworLyoqIFdyYXBwZXIgYXJvdW5kIGtjYWxsb2MoKSAqLworc3RhdGljIF9faW5saW5lX18gdm9pZCAqZHJtX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBpbnQgYXJlYSkKK3sKKwlyZXR1cm4ga2NhbGxvYyhubWVtYiwgc2l6ZSwgR0ZQX0tFUk5FTCk7Cit9CisjZWxzZQorZXh0ZXJuIHZvaWQgKmRybV9hbGxvYyhzaXplX3Qgc2l6ZSwgaW50IGFyZWEpOworZXh0ZXJuIHZvaWQgZHJtX2ZyZWUodm9pZCAqcHQsIHNpemVfdCBzaXplLCBpbnQgYXJlYSk7CitleHRlcm4gdm9pZCAqZHJtX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBpbnQgYXJlYSk7CisjZW5kaWYKKworLypAfSovCisKKyNlbmRpZgkJCQkvKiBfX0tFUk5FTF9fICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2NvcmUuaCBiL2luY2x1ZGUvZHJtL2RybV9jb3JlLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2NvcmUuaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vZHJtX2NvcmUuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1faGFzaHRhYi5oIGIvaW5jbHVkZS9kcm0vZHJtX2hhc2h0YWIuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1faGFzaHRhYi5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9kcm1faGFzaHRhYi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnkuaCBiL2luY2x1ZGUvZHJtL2RybV9tZW1vcnkuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fbWVtb3J5LmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2RybV9tZW1vcnkuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fbWVtb3J5X2RlYnVnLmggYi9pbmNsdWRlL2RybS9kcm1fbWVtb3J5X2RlYnVnLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX21lbW9yeV9kZWJ1Zy5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9kcm1fbWVtb3J5X2RlYnVnLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX29zX2xpbnV4LmggYi9pbmNsdWRlL2RybS9kcm1fb3NfbGludXguaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fb3NfbGludXguaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vZHJtX29zX2xpbnV4LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3BjaWlkcy5oIGIvaW5jbHVkZS9kcm0vZHJtX3BjaWlkcy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9wY2lpZHMuaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vZHJtX3BjaWlkcy5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9zYXJlYS5oIGIvaW5jbHVkZS9kcm0vZHJtX3NhcmVhLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX3NhcmVhLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2RybV9zYXJlYS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9zbWFuLmggYi9pbmNsdWRlL2RybS9kcm1fc21hbi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9zbWFuLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2RybV9zbWFuLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTgxMF9kcm0uaCBiL2luY2x1ZGUvZHJtL2k4MTBfZHJtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTgxMF9kcm0uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vaTgxMF9kcm0uaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODMwX2RybS5oIGIvaW5jbHVkZS9kcm0vaTgzMF9kcm0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODMwX2RybS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9pODMwX2RybS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL2RybS9pOTE1X2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k5MTVfZHJtLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2k5MTVfZHJtLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vbWdhX2RybS5oIGIvaW5jbHVkZS9kcm0vbWdhX2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9kcm0uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vbWdhX2RybS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3IxMjhfZHJtLmggYi9pbmNsdWRlL2RybS9yMTI4X2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3IxMjhfZHJtLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL3IxMjhfZHJtLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2RybS5oIGIvaW5jbHVkZS9kcm0vcmFkZW9uX2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9kcm0uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vcmFkZW9uX2RybS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9kcm0uaCBiL2luY2x1ZGUvZHJtL3NhdmFnZV9kcm0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zYXZhZ2VfZHJtLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL3NhdmFnZV9kcm0uaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9zaXNfZHJtLmggYi9pbmNsdWRlL2RybS9zaXNfZHJtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vc2lzX2RybS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9zaXNfZHJtLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX2RybS5oIGIvaW5jbHVkZS9kcm0vdmlhX2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9kcm0uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vdmlhX2RybS5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L0tidWlsZCBiL2luY2x1ZGUvbGludXgvS2J1aWxkCmluZGV4IGI2ZmJiMjUuLjcxZDcwZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvS2J1aWxkCisrKyBiL2luY2x1ZGUvbGludXgvS2J1aWxkCkBAIC0xNjYsNyArMTY2LDcgQEAKIHVuaWZkZWYteSArPSBhZGIuaAogdW5pZmRlZi15ICs9IGFkZnNfZnMuaAogdW5pZmRlZi15ICs9IGFncGdhcnQuaAotaWZlcSAoJCh3aWxkY2FyZCBpbmNsdWRlL2FzbS0kKFNSQ0FSQ0gpL2Eub3V0LmgpLGluY2x1ZGUvYXNtLSQoU1JDQVJDSCkvYS5vdXQuaCkKK2lmbmVxICgkKHdpbGRjYXJkICQoc3JjdHJlZSkvaW5jbHVkZS9hc20tJChTUkNBUkNIKS9hLm91dC5oKSwpCiB1bmlmZGVmLXkgKz0gYS5vdXQuaAogZW5kaWYKIHVuaWZkZWYteSArPSBhcG1fYmlvcy5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FjcGkuaCBiL2luY2x1ZGUvbGludXgvYWNwaS5oCmluZGV4IDQxZjdjZTcuLjA2MDEwNzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYWNwaS5oCisrKyBiL2luY2x1ZGUvbGludXgvYWNwaS5oCkBAIC04Miw2ICs4Miw3IEBACiBpbnQgZWFybHlfYWNwaV9ib290X2luaXQodm9pZCk7CiBpbnQgYWNwaV9ib290X2luaXQgKHZvaWQpOwogaW50IGFjcGlfYm9vdF90YWJsZV9pbml0ICh2b2lkKTsKK2ludCBhY3BpX21wc19jaGVjayAodm9pZCk7CiBpbnQgYWNwaV9udW1hX2luaXQgKHZvaWQpOwogCiBpbnQgYWNwaV90YWJsZV9pbml0ICh2b2lkKTsKQEAgLTI1MCw2ICsyNTEsMTEgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgYWNwaV9tcHNfY2hlY2sodm9pZCkKK3sKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGlubGluZSBpbnQgYWNwaV9jaGVja19yZXNvdXJjZV9jb25mbGljdChzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKIHsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXVkaXQuaCBiL2luY2x1ZGUvbGludXgvYXVkaXQuaAppbmRleCA2M2MzYmI5Li44YjgyOTc0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKKysrIGIvaW5jbHVkZS9saW51eC9hdWRpdC5oCkBAIC01NzEsNyArNTcxLDcgQEAKIGV4dGVybiBpbnQJCSAgICBhdWRpdF91cGRhdGVfbHNtX3J1bGVzKHZvaWQpOwogCiAJCQkJLyogUHJpdmF0ZSBBUEkgKGZvciBhdWRpdC5jIG9ubHkpICovCi1leHRlcm4gaW50IGF1ZGl0X2ZpbHRlcl91c2VyKHN0cnVjdCBuZXRsaW5rX3NrYl9wYXJtcyAqY2IsIGludCB0eXBlKTsKK2V4dGVybiBpbnQgYXVkaXRfZmlsdGVyX3VzZXIoc3RydWN0IG5ldGxpbmtfc2tiX3Bhcm1zICpjYik7CiBleHRlcm4gaW50IGF1ZGl0X2ZpbHRlcl90eXBlKGludCB0eXBlKTsKIGV4dGVybiBpbnQgIGF1ZGl0X3JlY2VpdmVfZmlsdGVyKGludCB0eXBlLCBpbnQgcGlkLCBpbnQgdWlkLCBpbnQgc2VxLAogCQkJCXZvaWQgKmRhdGEsIHNpemVfdCBkYXRhc3osIHVpZF90IGxvZ2ludWlkLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9iaW8uaCBiL2luY2x1ZGUvbGludXgvYmlvLmgKaW5kZXggNjFjMTVlYS4uMDkzM2ExNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9iaW8uaAorKysgYi9pbmNsdWRlL2xpbnV4L2Jpby5oCkBAIC02NCw2ICs2NCw3IEBACiAKIHN0cnVjdCBiaW9fc2V0Owogc3RydWN0IGJpbzsKK3N0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQ7CiB0eXBlZGVmIHZvaWQgKGJpb19lbmRfaW9fdCkgKHN0cnVjdCBiaW8gKiwgaW50KTsKIHR5cGVkZWYgdm9pZCAoYmlvX2Rlc3RydWN0b3JfdCkgKHN0cnVjdCBiaW8gKik7CiAKQEAgLTExMiw2ICsxMTMsOSBAQAogCWF0b21pY190CQliaV9jbnQ7CQkvKiBwaW4gY291bnQgKi8KIAogCXZvaWQJCQkqYmlfcHJpdmF0ZTsKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaV9pbnRlZ3JpdHk7ICAvKiBkYXRhIGludGVncml0eSAqLworI2VuZGlmCiAKIAliaW9fZGVzdHJ1Y3Rvcl90CSpiaV9kZXN0cnVjdG9yOwkvKiBkZXN0cnVjdG9yICovCiB9OwpAQCAtMjcxLDYgKzI3NSwyOSBAQAogICovCiAjZGVmaW5lIGJpb19nZXQoYmlvKQlhdG9taWNfaW5jKCYoYmlvKS0+YmlfY250KQogCisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisvKgorICogYmlvIGludGVncml0eSBwYXlsb2FkCisgKi8KK3N0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgeworCXN0cnVjdCBiaW8JCSpiaXBfYmlvOwkvKiBwYXJlbnQgYmlvICovCisJc3RydWN0IGJpb192ZWMJCSpiaXBfdmVjOwkvKiBpbnRlZ3JpdHkgZGF0YSB2ZWN0b3IgKi8KKworCXNlY3Rvcl90CQliaXBfc2VjdG9yOwkvKiB2aXJ0dWFsIHN0YXJ0IHNlY3RvciAqLworCisJdm9pZAkJCSpiaXBfYnVmOwkvKiBnZW5lcmF0ZWQgaW50ZWdyaXR5IGRhdGEgKi8KKwliaW9fZW5kX2lvX3QJCSpiaXBfZW5kX2lvOwkvKiBzYXZlZCBJL08gY29tcGxldGlvbiBmbiAqLworCisJaW50CQkJYmlwX2Vycm9yOwkvKiBzYXZlZCBJL08gZXJyb3IgKi8KKwl1bnNpZ25lZCBpbnQJCWJpcF9zaXplOworCisJdW5zaWduZWQgc2hvcnQJCWJpcF9wb29sOwkvKiBwb29sIHRoZSBpdmVjIGNhbWUgZnJvbSAqLworCXVuc2lnbmVkIHNob3J0CQliaXBfdmNudDsJLyogIyBvZiBpbnRlZ3JpdHkgYmlvX3ZlY3MgKi8KKwl1bnNpZ25lZCBzaG9ydAkJYmlwX2lkeDsJLyogY3VycmVudCBiaXBfdmVjIGluZGV4ICovCisKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QJYmlwX3dvcms7CS8qIEkvTyBjb21wbGV0aW9uICovCit9OworI2VuZGlmIC8qIENPTkZJR19CTEtfREVWX0lOVEVHUklUWSAqLwogCiAvKgogICogQSBiaW9fcGFpciBpcyB1c2VkIHdoZW4gd2UgbmVlZCB0byBzcGxpdCBhIGJpby4KQEAgLTI4MywxMCArMzEwLDE0IEBACiAgKiAgIGluIGJpbzIuYmlfcHJpdmF0ZQogICovCiBzdHJ1Y3QgYmlvX3BhaXIgewotCXN0cnVjdCBiaW8JYmlvMSwgYmlvMjsKLQlzdHJ1Y3QgYmlvX3ZlYwlidjEsIGJ2MjsKLQlhdG9taWNfdAljbnQ7Ci0JaW50CQllcnJvcjsKKwlzdHJ1Y3QgYmlvCQkJYmlvMSwgYmlvMjsKKwlzdHJ1Y3QgYmlvX3ZlYwkJCWJ2MSwgYnYyOworI2lmIGRlZmluZWQoQ09ORklHX0JMS19ERVZfSU5URUdSSVRZKQorCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQJYmlwMSwgYmlwMjsKKwlzdHJ1Y3QgYmlvX3ZlYwkJCWl2MSwgaXYyOworI2VuZGlmCisJYXRvbWljX3QJCQljbnQ7CisJaW50CQkJCWVycm9yOwogfTsKIGV4dGVybiBzdHJ1Y3QgYmlvX3BhaXIgKmJpb19zcGxpdChzdHJ1Y3QgYmlvICpiaSwgbWVtcG9vbF90ICpwb29sLAogCQkJCSAgaW50IGZpcnN0X3NlY3RvcnMpOwpAQCAtMzMzLDYgKzM2NCwzOSBAQAogCQkJCSAgICAgaW50LCBpbnQpOwogZXh0ZXJuIGludCBiaW9fdW5jb3B5X3VzZXIoc3RydWN0IGJpbyAqKTsKIHZvaWQgemVyb19maWxsX2JpbyhzdHJ1Y3QgYmlvICpiaW8pOworZXh0ZXJuIHN0cnVjdCBiaW9fdmVjICpidmVjX2FsbG9jX2JzKGdmcF90LCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwgc3RydWN0IGJpb19zZXQgKik7CitleHRlcm4gdW5zaWduZWQgaW50IGJ2ZWNfbnJfdmVjcyh1bnNpZ25lZCBzaG9ydCBpZHgpOworCisvKgorICogYmlvX3NldCBpcyB1c2VkIHRvIGFsbG93IG90aGVyIHBvcnRpb25zIG9mIHRoZSBJTyBzeXN0ZW0gdG8KKyAqIGFsbG9jYXRlIHRoZWlyIG93biBwcml2YXRlIG1lbW9yeSBwb29scyBmb3IgYmlvIGFuZCBpb3ZlYyBzdHJ1Y3R1cmVzLgorICogVGhlc2UgbWVtb3J5IHBvb2xzIGluIHR1cm4gYWxsIGFsbG9jYXRlIGZyb20gdGhlIGJpb19zbGFiCisgKiBhbmQgdGhlIGJ2ZWNfc2xhYnNbXS4KKyAqLworI2RlZmluZSBCSU9fUE9PTF9TSVpFIDIKKyNkZWZpbmUgQklPVkVDX05SX1BPT0xTIDYKKworc3RydWN0IGJpb19zZXQgeworCW1lbXBvb2xfdCAqYmlvX3Bvb2w7CisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisJbWVtcG9vbF90ICpiaW9faW50ZWdyaXR5X3Bvb2w7CisjZW5kaWYKKwltZW1wb29sX3QgKmJ2ZWNfcG9vbHNbQklPVkVDX05SX1BPT0xTXTsKK307CisKK3N0cnVjdCBiaW92ZWNfc2xhYiB7CisJaW50IG5yX3ZlY3M7CisJY2hhciAqbmFtZTsKKwlzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYjsKK307CisKK2V4dGVybiBzdHJ1Y3QgYmlvX3NldCAqZnNfYmlvX3NldDsKKworLyoKKyAqIGEgc21hbGwgbnVtYmVyIG9mIGVudHJpZXMgaXMgZmluZSwgbm90IGdvaW5nIHRvIGJlIHBlcmZvcm1hbmNlIGNyaXRpY2FsLgorICogYmFzaWNhbGx5IHdlIGp1c3QgbmVlZCB0byBzdXJ2aXZlCisgKi8KKyNkZWZpbmUgQklPX1NQTElUX0VOVFJJRVMgMgogCiAjaWZkZWYgQ09ORklHX0hJR0hNRU0KIC8qCkBAIC0zODEsNSArNDQ1LDYzIEBACiAJX19iaW9fa21hcF9pcnEoKGJpbyksIChiaW8pLT5iaV9pZHgsIChmbGFncykpCiAjZGVmaW5lIGJpb19rdW5tYXBfaXJxKGJ1ZixmbGFncykJX19iaW9fa3VubWFwX2lycShidWYsIGZsYWdzKQogCisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisKKyNkZWZpbmUgYmlwX3ZlY19pZHgoYmlwLCBpZHgpCSgmKGJpcC0+YmlwX3ZlY1soaWR4KV0pKQorI2RlZmluZSBiaXBfdmVjKGJpcCkJCWJpcF92ZWNfaWR4KGJpcCwgMCkKKworI2RlZmluZSBfX2JpcF9mb3JfZWFjaF92ZWMoYnZsLCBiaXAsIGksIHN0YXJ0X2lkeCkJCQlcCisJZm9yIChidmwgPSBiaXBfdmVjX2lkeCgoYmlwKSwgKHN0YXJ0X2lkeCkpLCBpID0gKHN0YXJ0X2lkeCk7CVwKKwkgICAgIGkgPCAoYmlwKS0+YmlwX3ZjbnQ7CQkJCQlcCisJICAgICBidmwrKywgaSsrKQorCisjZGVmaW5lIGJpcF9mb3JfZWFjaF92ZWMoYnZsLCBiaXAsIGkpCQkJCQlcCisJX19iaXBfZm9yX2VhY2hfdmVjKGJ2bCwgYmlwLCBpLCAoYmlwKS0+YmlwX2lkeCkKKworc3RhdGljIGlubGluZSBpbnQgYmlvX2ludGVncml0eShzdHJ1Y3QgYmlvICpiaW8pCit7CisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisJcmV0dXJuIGJpby0+YmlfaW50ZWdyaXR5ICE9IE5VTEw7CisjZWxzZQorCXJldHVybiAwOworI2VuZGlmCit9CisKK2V4dGVybiBzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaW9faW50ZWdyaXR5X2FsbG9jX2Jpb3NldChzdHJ1Y3QgYmlvICosIGdmcF90LCB1bnNpZ25lZCBpbnQsIHN0cnVjdCBiaW9fc2V0ICopOworZXh0ZXJuIHN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpb19pbnRlZ3JpdHlfYWxsb2Moc3RydWN0IGJpbyAqLCBnZnBfdCwgdW5zaWduZWQgaW50KTsKK2V4dGVybiB2b2lkIGJpb19pbnRlZ3JpdHlfZnJlZShzdHJ1Y3QgYmlvICosIHN0cnVjdCBiaW9fc2V0ICopOworZXh0ZXJuIGludCBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKHN0cnVjdCBiaW8gKiwgc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIGludCBiaW9faW50ZWdyaXR5X2VuYWJsZWQoc3RydWN0IGJpbyAqYmlvKTsKK2V4dGVybiBpbnQgYmlvX2ludGVncml0eV9zZXRfdGFnKHN0cnVjdCBiaW8gKiwgdm9pZCAqLCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIGludCBiaW9faW50ZWdyaXR5X2dldF90YWcoc3RydWN0IGJpbyAqLCB2b2lkICosIHVuc2lnbmVkIGludCk7CitleHRlcm4gaW50IGJpb19pbnRlZ3JpdHlfcHJlcChzdHJ1Y3QgYmlvICopOworZXh0ZXJuIHZvaWQgYmlvX2ludGVncml0eV9lbmRpbyhzdHJ1Y3QgYmlvICosIGludCk7CitleHRlcm4gdm9pZCBiaW9faW50ZWdyaXR5X2FkdmFuY2Uoc3RydWN0IGJpbyAqLCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIHZvaWQgYmlvX2ludGVncml0eV90cmltKHN0cnVjdCBiaW8gKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIHZvaWQgYmlvX2ludGVncml0eV9zcGxpdChzdHJ1Y3QgYmlvICosIHN0cnVjdCBiaW9fcGFpciAqLCBpbnQpOworZXh0ZXJuIGludCBiaW9faW50ZWdyaXR5X2Nsb25lKHN0cnVjdCBiaW8gKiwgc3RydWN0IGJpbyAqLCBzdHJ1Y3QgYmlvX3NldCAqKTsKK2V4dGVybiBpbnQgYmlvc2V0X2ludGVncml0eV9jcmVhdGUoc3RydWN0IGJpb19zZXQgKiwgaW50KTsKK2V4dGVybiB2b2lkIGJpb3NldF9pbnRlZ3JpdHlfZnJlZShzdHJ1Y3QgYmlvX3NldCAqKTsKK2V4dGVybiB2b2lkIGJpb19pbnRlZ3JpdHlfaW5pdF9zbGFiKHZvaWQpOworCisjZWxzZSAvKiBDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkgKi8KKworI2RlZmluZSBiaW9faW50ZWdyaXR5KGEpCQkoMCkKKyNkZWZpbmUgYmlvc2V0X2ludGVncml0eV9jcmVhdGUoYSwgYikJKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfcHJlcChhKQkJKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfZW5hYmxlZChhKQkoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9jbG9uZShhLCBiLCBjKQkoMCkKKyNkZWZpbmUgYmlvc2V0X2ludGVncml0eV9mcmVlKGEpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9mcmVlKGEsIGIpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9lbmRpbyhhLCBiKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfYWR2YW5jZShhLCBiKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfdHJpbShhLCBiLCBjKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfc3BsaXQoYSwgYiwgYykJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBiaW9faW50ZWdyaXR5X3NldF90YWcoYSwgYiwgYykJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBiaW9faW50ZWdyaXR5X2dldF90YWcoYSwgYiwgYykJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBiaW9faW50ZWdyaXR5X2luaXRfc2xhYihhKQlkbyB7IH0gd2hpbGUgKDApCisKKyNlbmRpZiAvKiBDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkgKi8KKwogI2VuZGlmIC8qIENPTkZJR19CTE9DSyAqLwogI2VuZGlmIC8qIF9fTElOVVhfQklPX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYmxrZGV2LmggYi9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oCmluZGV4IGQyYTFiNzEuLjMyYTQ0MWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYmxrZGV2LmgKKysrIGIvaW5jbHVkZS9saW51eC9ibGtkZXYuaApAQCAtMjMsNyArMjMsNiBAQAogc3RydWN0IHNjc2lfaW9jdGxfY29tbWFuZDsKIAogc3RydWN0IHJlcXVlc3RfcXVldWU7Ci10eXBlZGVmIHN0cnVjdCByZXF1ZXN0X3F1ZXVlIHJlcXVlc3RfcXVldWVfdCBfX2RlcHJlY2F0ZWQ7CiBzdHJ1Y3QgZWxldmF0b3JfcXVldWU7CiB0eXBlZGVmIHN0cnVjdCBlbGV2YXRvcl9xdWV1ZSBlbGV2YXRvcl90Owogc3RydWN0IHJlcXVlc3RfcG1fc3RhdGU7CkBAIC0zNCwxMiArMzMsNiBAQAogI2RlZmluZSBCTEtERVZfTUlOX1JRCTQKICNkZWZpbmUgQkxLREVWX01BWF9SUQkxMjgJLyogRGVmYXVsdCBtYXhpbXVtICovCiAKLWludCBwdXRfaW9fY29udGV4dChzdHJ1Y3QgaW9fY29udGV4dCAqaW9jKTsKLXZvaWQgZXhpdF9pb19jb250ZXh0KHZvaWQpOwotc3RydWN0IGlvX2NvbnRleHQgKmdldF9pb19jb250ZXh0KGdmcF90IGdmcF9mbGFncywgaW50IG5vZGUpOwotc3RydWN0IGlvX2NvbnRleHQgKmFsbG9jX2lvX2NvbnRleHQoZ2ZwX3QgZ2ZwX2ZsYWdzLCBpbnQgbm9kZSk7Ci12b2lkIGNvcHlfaW9fY29udGV4dChzdHJ1Y3QgaW9fY29udGV4dCAqKnBkc3QsIHN0cnVjdCBpb19jb250ZXh0ICoqcHNyYyk7Ci0KIHN0cnVjdCByZXF1ZXN0OwogdHlwZWRlZiB2b2lkIChycV9lbmRfaW9fZm4pKHN0cnVjdCByZXF1ZXN0ICosIGludCk7CiAKQEAgLTExMyw2ICsxMDYsNyBAQAogCV9fUkVRX0FMTE9DRUQsCQkvKiByZXF1ZXN0IGNhbWUgZnJvbSBvdXIgYWxsb2MgcG9vbCAqLwogCV9fUkVRX1JXX01FVEEsCQkvKiBtZXRhZGF0YSBpbyByZXF1ZXN0ICovCiAJX19SRVFfQ09QWV9VU0VSLAkvKiBjb250YWlucyBjb3BpZXMgb2YgdXNlciBwYWdlcyAqLworCV9fUkVRX0lOVEVHUklUWSwJLyogaW50ZWdyaXR5IG1ldGFkYXRhIGhhcyBiZWVuIHJlbWFwcGVkICovCiAJX19SRVFfTlJfQklUUywJCS8qIHN0b3BzIGhlcmUgKi8KIH07CiAKQEAgLTEzNSw2ICsxMjksNyBAQAogI2RlZmluZSBSRVFfQUxMT0NFRAkoMSA8PCBfX1JFUV9BTExPQ0VEKQogI2RlZmluZSBSRVFfUldfTUVUQQkoMSA8PCBfX1JFUV9SV19NRVRBKQogI2RlZmluZSBSRVFfQ09QWV9VU0VSCSgxIDw8IF9fUkVRX0NPUFlfVVNFUikKKyNkZWZpbmUgUkVRX0lOVEVHUklUWQkoMSA8PCBfX1JFUV9JTlRFR1JJVFkpCiAKICNkZWZpbmUgQkxLX01BWF9DREIJMTYKIApAQCAtMjU5LDcgKzI1NCwxNCBAQAogdHlwZWRlZiB2b2lkICh1bnBsdWdfZm4pIChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqKTsKIAogc3RydWN0IGJpb192ZWM7Ci10eXBlZGVmIGludCAobWVyZ2VfYnZlY19mbikgKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICosIHN0cnVjdCBiaW8gKiwgc3RydWN0IGJpb192ZWMgKik7CitzdHJ1Y3QgYnZlY19tZXJnZV9kYXRhIHsKKwlzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiaV9iZGV2OworCXNlY3Rvcl90IGJpX3NlY3RvcjsKKwl1bnNpZ25lZCBiaV9zaXplOworCXVuc2lnbmVkIGxvbmcgYmlfcnc7Cit9OwordHlwZWRlZiBpbnQgKG1lcmdlX2J2ZWNfZm4pIChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCBzdHJ1Y3QgYnZlY19tZXJnZV9kYXRhICosCisJCQkgICAgIHN0cnVjdCBiaW9fdmVjICopOwogdHlwZWRlZiB2b2lkIChwcmVwYXJlX2ZsdXNoX2ZuKSAoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgc3RydWN0IHJlcXVlc3QgKik7CiB0eXBlZGVmIHZvaWQgKHNvZnRpcnFfZG9uZV9mbikoc3RydWN0IHJlcXVlc3QgKik7CiB0eXBlZGVmIGludCAoZG1hX2RyYWluX25lZWRlZF9mbikoc3RydWN0IHJlcXVlc3QgKik7CkBAIC00MjYsNiArNDI4LDMyIEBACiAJX19zZXRfYml0KGZsYWcsICZxLT5xdWV1ZV9mbGFncyk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHF1ZXVlX2ZsYWdfdGVzdF9hbmRfY2xlYXIodW5zaWduZWQgaW50IGZsYWcsCisJCQkJCSAgICBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKK3sKKwlXQVJOX09OX09OQ0UoIXF1ZXVlX2lzX2xvY2tlZChxKSk7CisKKwlpZiAodGVzdF9iaXQoZmxhZywgJnEtPnF1ZXVlX2ZsYWdzKSkgeworCQlfX2NsZWFyX2JpdChmbGFnLCAmcS0+cXVldWVfZmxhZ3MpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgcXVldWVfZmxhZ190ZXN0X2FuZF9zZXQodW5zaWduZWQgaW50IGZsYWcsCisJCQkJCSAgc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpCit7CisJV0FSTl9PTl9PTkNFKCFxdWV1ZV9pc19sb2NrZWQocSkpOworCisJaWYgKCF0ZXN0X2JpdChmbGFnLCAmcS0+cXVldWVfZmxhZ3MpKSB7CisJCV9fc2V0X2JpdChmbGFnLCAmcS0+cXVldWVfZmxhZ3MpOworCQlyZXR1cm4gMDsKKwl9CisKKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIHF1ZXVlX2ZsYWdfc2V0KHVuc2lnbmVkIGludCBmbGFnLCBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKIHsKIAlXQVJOX09OX09OQ0UoIXF1ZXVlX2lzX2xvY2tlZChxKSk7CkBAIC02MjMsNyArNjUxLDYgQEAKIGV4dGVybiB2b2lkIGJsa19ycV9pbml0KHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpOwogZXh0ZXJuIHZvaWQgYmxrX3B1dF9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0ICopOwogZXh0ZXJuIHZvaWQgX19ibGtfcHV0X3JlcXVlc3Qoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgc3RydWN0IHJlcXVlc3QgKik7Ci1leHRlcm4gdm9pZCBibGtfZW5kX3N5bmNfcnEoc3RydWN0IHJlcXVlc3QgKnJxLCBpbnQgZXJyb3IpOwogZXh0ZXJuIHN0cnVjdCByZXF1ZXN0ICpibGtfZ2V0X3JlcXVlc3Qoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgaW50LCBnZnBfdCk7CiBleHRlcm4gdm9pZCBibGtfaW5zZXJ0X3JlcXVlc3Qoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgc3RydWN0IHJlcXVlc3QgKiwgaW50LCB2b2lkICopOwogZXh0ZXJuIHZvaWQgYmxrX3JlcXVldWVfcmVxdWVzdChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCBzdHJ1Y3QgcmVxdWVzdCAqKTsKQEAgLTY3Niw3ICs3MDMsNiBAQAogCQkJICBzdHJ1Y3QgcmVxdWVzdCAqLCBpbnQpOwogZXh0ZXJuIHZvaWQgYmxrX2V4ZWN1dGVfcnFfbm93YWl0KHN0cnVjdCByZXF1ZXN0X3F1ZXVlICosIHN0cnVjdCBnZW5kaXNrICosCiAJCQkJICBzdHJ1Y3QgcmVxdWVzdCAqLCBpbnQsIHJxX2VuZF9pb19mbiAqKTsKLWV4dGVybiBpbnQgYmxrX3ZlcmlmeV9jb21tYW5kKHVuc2lnbmVkIGNoYXIgKiwgaW50KTsKIGV4dGVybiB2b2lkIGJsa191bnBsdWcoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpiZGV2X2dldF9xdWV1ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQpAQCAtNzQ5LDYgKzc3NSw3IEBACiBleHRlcm4gdm9pZCBibGtfcXVldWVfaGFyZHNlY3Rfc2l6ZShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCB1bnNpZ25lZCBzaG9ydCk7CiBleHRlcm4gdm9pZCBibGtfcXVldWVfc3RhY2tfbGltaXRzKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICp0LCBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqYik7CiBleHRlcm4gdm9pZCBibGtfcXVldWVfZG1hX3BhZChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIHZvaWQgYmxrX3F1ZXVlX3VwZGF0ZV9kbWFfcGFkKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICosIHVuc2lnbmVkIGludCk7CiBleHRlcm4gaW50IGJsa19xdWV1ZV9kbWFfZHJhaW4oc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCiAJCQkgICAgICAgZG1hX2RyYWluX25lZWRlZF9mbiAqZG1hX2RyYWluX25lZWRlZCwKIAkJCSAgICAgICB2b2lkICpidWYsIHVuc2lnbmVkIGludCBzaXplKTsKQEAgLTgwMiw2ICs4MjksMTUgQEAKIAogZXh0ZXJuIGludCBibGtkZXZfaXNzdWVfZmx1c2goc3RydWN0IGJsb2NrX2RldmljZSAqLCBzZWN0b3JfdCAqKTsKIAorLyoKKyogY29tbWFuZCBmaWx0ZXIgZnVuY3Rpb25zCisqLworZXh0ZXJuIGludCBibGtfdmVyaWZ5X2NvbW1hbmQoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGNoYXIgKmNtZCk7CitleHRlcm4gaW50IGJsa19jbWRfZmlsdGVyX3ZlcmlmeV9jb21tYW5kKHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIsCisJCQkJCSB1bnNpZ25lZCBjaGFyICpjbWQsIG1vZGVfdCAqZl9tb2RlKTsKK2V4dGVybiBpbnQgYmxrX3JlZ2lzdGVyX2ZpbHRlcihzdHJ1Y3QgZ2VuZGlzayAqZGlzayk7CitleHRlcm4gdm9pZCBibGtfdW5yZWdpc3Rlcl9maWx0ZXIoc3RydWN0IGdlbmRpc2sgKmRpc2spOworCiAjZGVmaW5lIE1BWF9QSFlTX1NFR01FTlRTIDEyOAogI2RlZmluZSBNQVhfSFdfU0VHTUVOVFMgMTI4CiAjZGVmaW5lIFNBRkVfTUFYX1NFQ1RPUlMgMjU1CkBAIC04NjUsNiArOTAxLDEwNSBAQAogI2RlZmluZSBNT0RVTEVfQUxJQVNfQkxPQ0tERVZfTUFKT1IobWFqb3IpIFwKIAlNT0RVTEVfQUxJQVMoImJsb2NrLW1ham9yLSIgX19zdHJpbmdpZnkobWFqb3IpICItKiIpCiAKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKworI2RlZmluZSBJTlRFR1JJVFlfRkxBR19SRUFECTIJLyogdmVyaWZ5IGRhdGEgaW50ZWdyaXR5IG9uIHJlYWQgKi8KKyNkZWZpbmUgSU5URUdSSVRZX0ZMQUdfV1JJVEUJNAkvKiBnZW5lcmF0ZSBkYXRhIGludGVncml0eSBvbiB3cml0ZSAqLworCitzdHJ1Y3QgYmxrX2ludGVncml0eV9leGNoZyB7CisJdm9pZAkJCSpwcm90X2J1ZjsKKwl2b2lkCQkJKmRhdGFfYnVmOworCXNlY3Rvcl90CQlzZWN0b3I7CisJdW5zaWduZWQgaW50CQlkYXRhX3NpemU7CisJdW5zaWduZWQgc2hvcnQJCXNlY3Rvcl9zaXplOworCWNvbnN0IGNoYXIJCSpkaXNrX25hbWU7Cit9OworCit0eXBlZGVmIHZvaWQgKGludGVncml0eV9nZW5fZm4pIChzdHJ1Y3QgYmxrX2ludGVncml0eV9leGNoZyAqKTsKK3R5cGVkZWYgaW50IChpbnRlZ3JpdHlfdnJmeV9mbikgKHN0cnVjdCBibGtfaW50ZWdyaXR5X2V4Y2hnICopOwordHlwZWRlZiB2b2lkIChpbnRlZ3JpdHlfc2V0X3RhZ19mbikgKHZvaWQgKiwgdm9pZCAqLCB1bnNpZ25lZCBpbnQpOwordHlwZWRlZiB2b2lkIChpbnRlZ3JpdHlfZ2V0X3RhZ19mbikgKHZvaWQgKiwgdm9pZCAqLCB1bnNpZ25lZCBpbnQpOworCitzdHJ1Y3QgYmxrX2ludGVncml0eSB7CisJaW50ZWdyaXR5X2dlbl9mbgkqZ2VuZXJhdGVfZm47CisJaW50ZWdyaXR5X3ZyZnlfZm4JKnZlcmlmeV9mbjsKKwlpbnRlZ3JpdHlfc2V0X3RhZ19mbgkqc2V0X3RhZ19mbjsKKwlpbnRlZ3JpdHlfZ2V0X3RhZ19mbgkqZ2V0X3RhZ19mbjsKKworCXVuc2lnbmVkIHNob3J0CQlmbGFnczsKKwl1bnNpZ25lZCBzaG9ydAkJdHVwbGVfc2l6ZTsKKwl1bnNpZ25lZCBzaG9ydAkJc2VjdG9yX3NpemU7CisJdW5zaWduZWQgc2hvcnQJCXRhZ19zaXplOworCisJY29uc3QgY2hhcgkJKm5hbWU7CisKKwlzdHJ1Y3Qga29iamVjdAkJa29iajsKK307CisKK2V4dGVybiBpbnQgYmxrX2ludGVncml0eV9yZWdpc3RlcihzdHJ1Y3QgZ2VuZGlzayAqLCBzdHJ1Y3QgYmxrX2ludGVncml0eSAqKTsKK2V4dGVybiB2b2lkIGJsa19pbnRlZ3JpdHlfdW5yZWdpc3RlcihzdHJ1Y3QgZ2VuZGlzayAqKTsKK2V4dGVybiBpbnQgYmxrX2ludGVncml0eV9jb21wYXJlKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgc3RydWN0IGJsb2NrX2RldmljZSAqKTsKK2V4dGVybiBpbnQgYmxrX3JxX21hcF9pbnRlZ3JpdHlfc2coc3RydWN0IHJlcXVlc3QgKiwgc3RydWN0IHNjYXR0ZXJsaXN0ICopOworZXh0ZXJuIGludCBibGtfcnFfY291bnRfaW50ZWdyaXR5X3NnKHN0cnVjdCByZXF1ZXN0ICopOworCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHNob3J0IGJsa19pbnRlZ3JpdHlfdHVwbGVfc2l6ZShzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkpCit7CisJaWYgKGJpKQorCQlyZXR1cm4gYmktPnR1cGxlX3NpemU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmRldl9nZXRfaW50ZWdyaXR5KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpCit7CisJcmV0dXJuIGJkZXYtPmJkX2Rpc2stPmludGVncml0eTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgYmRldl9nZXRfdGFnX3NpemUoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldikKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkgPSBiZGV2X2dldF9pbnRlZ3JpdHkoYmRldik7CisKKwlpZiAoYmkpCisJCXJldHVybiBiaS0+dGFnX3NpemU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgYmRldl9pbnRlZ3JpdHlfZW5hYmxlZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBpbnQgcncpCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJkZXYpOworCisJaWYgKGJpID09IE5VTEwpCisJCXJldHVybiAwOworCisJaWYgKHJ3ID09IFJFQUQgJiYgYmktPnZlcmlmeV9mbiAhPSBOVUxMICYmCisJICAgIChiaS0+ZmxhZ3MgJiBJTlRFR1JJVFlfRkxBR19SRUFEKSkKKwkJcmV0dXJuIDE7CisKKwlpZiAocncgPT0gV1JJVEUgJiYgYmktPmdlbmVyYXRlX2ZuICE9IE5VTEwgJiYKKwkgICAgKGJpLT5mbGFncyAmIElOVEVHUklUWV9GTEFHX1dSSVRFKSkKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgYmxrX2ludGVncml0eV9ycShzdHJ1Y3QgcmVxdWVzdCAqcnEpCit7CisJcmV0dXJuIGJpb19pbnRlZ3JpdHkocnEtPmJpbyk7Cit9CisKKyNlbHNlIC8qIENPTkZJR19CTEtfREVWX0lOVEVHUklUWSAqLworCisjZGVmaW5lIGJsa19pbnRlZ3JpdHlfcnEocnEpCQkJKDApCisjZGVmaW5lIGJsa19ycV9jb3VudF9pbnRlZ3JpdHlfc2coYSkJCSgwKQorI2RlZmluZSBibGtfcnFfbWFwX2ludGVncml0eV9zZyhhLCBiKQkJKDApCisjZGVmaW5lIGJkZXZfZ2V0X2ludGVncml0eShhKQkJCSgwKQorI2RlZmluZSBiZGV2X2dldF90YWdfc2l6ZShhKQkJCSgwKQorI2RlZmluZSBibGtfaW50ZWdyaXR5X2NvbXBhcmUoYSwgYikJCSgwKQorI2RlZmluZSBibGtfaW50ZWdyaXR5X3JlZ2lzdGVyKGEsIGIpCQkoMCkKKyNkZWZpbmUgYmxrX2ludGVncml0eV91bnJlZ2lzdGVyKGEpCQlkbyB7IH0gd2hpbGUgKDApOworCisjZW5kaWYgLyogQ09ORklHX0JMS19ERVZfSU5URUdSSVRZICovCiAKICNlbHNlIC8qIENPTkZJR19CTE9DSyAqLwogLyoKQEAgLTg3NywxNyArMTAxMiw2IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBleGl0X2lvX2NvbnRleHQodm9pZCkKLXsKLX0KLQotc3RydWN0IGlvX2NvbnRleHQ7Ci1zdGF0aWMgaW5saW5lIGludCBwdXRfaW9fY29udGV4dChzdHJ1Y3QgaW9fY29udGV4dCAqaW9jKQotewotCXJldHVybiAxOwotfQotCi0KICNlbmRpZiAvKiBDT05GSUdfQkxPQ0sgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Jsa3RyYWNlX2FwaS5oIGIvaW5jbHVkZS9saW51eC9ibGt0cmFjZV9hcGkuaAppbmRleCBlM2VmOTAzLi5kMDg0YjhkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Jsa3RyYWNlX2FwaS5oCisrKyBiL2luY2x1ZGUvbGludXgvYmxrdHJhY2VfYXBpLmgKQEAgLTEyOSw2ICsxMjksNyBAQAogCXUzMiBkZXY7CiAJc3RydWN0IGRlbnRyeSAqZGlyOwogCXN0cnVjdCBkZW50cnkgKmRyb3BwZWRfZmlsZTsKKwlzdHJ1Y3QgZGVudHJ5ICptc2dfZmlsZTsKIAlhdG9taWNfdCBkcm9wcGVkOwogfTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ib290bWVtLmggYi9pbmNsdWRlL2xpbnV4L2Jvb3RtZW0uaAppbmRleCA2ODY4OTViLi5hMWQ5Yjc5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Jvb3RtZW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L2Jvb3RtZW0uaApAQCAtODQsNiArODQsOCBAQAogCV9fYWxsb2NfYm9vdG1lbV9sb3coeCwgUEFHRV9TSVpFLCAwKQogI2VuZGlmIC8qICFDT05GSUdfSEFWRV9BUkNIX0JPT1RNRU1fTk9ERSAqLwogCitleHRlcm4gaW50IHJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCSAgIGludCBmbGFncyk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBmcmVlX2FsbF9ib290bWVtKHZvaWQpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZnJlZV9hbGxfYm9vdG1lbV9ub2RlKHBnX2RhdGFfdCAqcGdkYXQpOwogZXh0ZXJuIHZvaWQgKl9fYWxsb2NfYm9vdG1lbV9ub2RlKHBnX2RhdGFfdCAqcGdkYXQsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaCBiL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oCmluZGV4IGZhODMwZjguLjAyNjczODQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oCkBAIC01MDEsNiArNTAxLDggQEAKIGV4dGVybiBjb25zdCBrZXJuZWxfY2FwX3QgX19jYXBfZnVsbF9zZXQ7CiBleHRlcm4gY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX2luaXRfZWZmX3NldDsKIAora2VybmVsX2NhcF90IGNhcF9zZXRfZWZmZWN0aXZlKGNvbnN0IGtlcm5lbF9jYXBfdCBwRV9uZXcpOworCiBpbnQgY2FwYWJsZShpbnQgY2FwKTsKIGludCBfX2NhcGFibGUoc3RydWN0IHRhc2tfc3RydWN0ICp0LCBpbnQgY2FwKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jZmFnMTI4NjRiLmggYi9pbmNsdWRlL2xpbnV4L2NmYWcxMjg2NGIuaAppbmRleCAxNjA1ZGQ4Li42ZjlmMTlkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NmYWcxMjg2NGIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NmYWcxMjg2NGIuaApAQCAtNCw3ICs0LDcgQEAKICAqIERlc2NyaXB0aW9uOiBjZmFnMTI4NjRiIExDRCBkcml2ZXIgaGVhZGVyCiAgKiAgICAgTGljZW5zZTogR1BMdjIKICAqCi0gKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPgorICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzCiAgKiAgICAgICAgRGF0ZTogMjAwNi0xMC0xMgogICoKICAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jb25zb2xlLmggYi9pbmNsdWRlL2xpbnV4L2NvbnNvbGUuaAppbmRleCBhNGYyN2ZiLi4yNDhlNmUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NvbnNvbGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NvbnNvbGUuaApAQCAtMTA4LDYgKzEwOCw4IEBACiAJc3RydWN0CSBjb25zb2xlICpuZXh0OwogfTsKIAorZXh0ZXJuIGludCBjb25zb2xlX3NldF9vbl9jbWRsaW5lOworCiBleHRlcm4gaW50IGFkZF9wcmVmZXJyZWRfY29uc29sZShjaGFyICpuYW1lLCBpbnQgaWR4LCBjaGFyICpvcHRpb25zKTsKIGV4dGVybiBpbnQgdXBkYXRlX2NvbnNvbGVfY21kbGluZShjaGFyICpuYW1lLCBpbnQgaWR4LCBjaGFyICpuYW1lX25ldywgaW50IGlkeF9uZXcsIGNoYXIgKm9wdGlvbnMpOwogZXh0ZXJuIHZvaWQgcmVnaXN0ZXJfY29uc29sZShzdHJ1Y3QgY29uc29sZSAqKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIGIvaW5jbHVkZS9saW51eC9jcHVtYXNrLmgKaW5kZXggNWRmM2RiNS4uYzI0ODc1YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jcHVtYXNrLmgKKysrIGIvaW5jbHVkZS9saW51eC9jcHVtYXNrLmgKQEAgLTM1Myw2ICszNTMsMTAgQEAKIAlmb3IgKChjcHUpID0gMDsgKGNwdSkgPCAxOyAoY3B1KSsrLCAodm9pZCltYXNrKQogI2VuZGlmIC8qIE5SX0NQVVMgKi8KIAorI2RlZmluZSBuZXh0X2NwdV9ucihuLCBzcmMpCQluZXh0X2NwdShuLCBzcmMpCisjZGVmaW5lIGNwdXNfd2VpZ2h0X25yKGNwdW1hc2spCQljcHVzX3dlaWdodChjcHVtYXNrKQorI2RlZmluZSBmb3JfZWFjaF9jcHVfbWFza19ucihjcHUsIG1hc2spCWZvcl9lYWNoX2NwdV9tYXNrKGNwdSwgbWFzaykKKwogLyoKICAqIFRoZSBmb2xsb3dpbmcgcGFydGljdWxhciBzeXN0ZW0gY3B1bWFza3MgYW5kIG9wZXJhdGlvbnMgbWFuYWdlCiAgKiBwb3NzaWJsZSwgcHJlc2VudCBhbmQgb25saW5lIGNwdXMuICBFYWNoIG9mIHRoZW0gaXMgYSBmaXhlZCBzaXplCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NyeXB0by5oIGIvaW5jbHVkZS9saW51eC9jcnlwdG8uaAppbmRleCA0MjU4MjRiLi5jNDNkYzQ3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NyeXB0by5oCisrKyBiL2luY2x1ZGUvbGludXgvY3J5cHRvLmgKQEAgLTMwLDE1ICszMCwxNyBAQAogICovCiAjZGVmaW5lIENSWVBUT19BTEdfVFlQRV9NQVNLCQkweDAwMDAwMDBmCiAjZGVmaW5lIENSWVBUT19BTEdfVFlQRV9DSVBIRVIJCTB4MDAwMDAwMDEKLSNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0RJR0VTVAkJMHgwMDAwMDAwMgotI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfSEFTSAkJMHgwMDAwMDAwMworI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfQ09NUFJFU1MJMHgwMDAwMDAwMgorI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfQUVBRAkJMHgwMDAwMDAwMwogI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfQkxLQ0lQSEVSCTB4MDAwMDAwMDQKICNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0FCTEtDSVBIRVIJMHgwMDAwMDAwNQogI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfR0lWQ0lQSEVSCTB4MDAwMDAwMDYKLSNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0NPTVBSRVNTCTB4MDAwMDAwMDgKLSNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0FFQUQJCTB4MDAwMDAwMDkKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0RJR0VTVAkJMHgwMDAwMDAwOAorI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfSEFTSAkJMHgwMDAwMDAwOQorI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfQUhBU0gJCTB4MDAwMDAwMGEKIAogI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfSEFTSF9NQVNLCTB4MDAwMDAwMGUKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0FIQVNIX01BU0sJMHgwMDAwMDAwYwogI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfQkxLQ0lQSEVSX01BU0sJMHgwMDAwMDAwYwogCiAjZGVmaW5lIENSWVBUT19BTEdfTEFSVkFMCQkweDAwMDAwMDEwCkBAIC0xMDIsNiArMTA0LDcgQEAKIHN0cnVjdCBjcnlwdG9fYWVhZDsKIHN0cnVjdCBjcnlwdG9fYmxrY2lwaGVyOwogc3RydWN0IGNyeXB0b19oYXNoOworc3RydWN0IGNyeXB0b19haGFzaDsKIHN0cnVjdCBjcnlwdG9fdGZtOwogc3RydWN0IGNyeXB0b190eXBlOwogc3RydWN0IGFlYWRfZ2l2Y3J5cHRfcmVxdWVzdDsKQEAgLTEzMSw2ICsxMzQsMTYgQEAKIAl2b2lkICpfX2N0eFtdIENSWVBUT19NSU5BTElHTl9BVFRSOwogfTsKIAorc3RydWN0IGFoYXNoX3JlcXVlc3QgeworCXN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCBiYXNlOworCisJdW5zaWduZWQgaW50IG5ieXRlczsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNyYzsKKwl1OAkJICAgKnJlc3VsdDsKKworCXZvaWQgKl9fY3R4W10gQ1JZUFRPX01JTkFMSUdOX0FUVFI7Cit9OworCiAvKioKICAqCXN0cnVjdCBhZWFkX3JlcXVlc3QgLSBBRUFEIHJlcXVlc3QKICAqCUBiYXNlOiBDb21tb24gYXR0cmlidXRlcyBmb3IgYXN5bmMgY3J5cHRvIHJlcXVlc3RzCkBAIC0xOTUsNiArMjA4LDE3IEBACiAJdW5zaWduZWQgaW50IGl2c2l6ZTsKIH07CiAKK3N0cnVjdCBhaGFzaF9hbGcgeworCWludCAoKmluaXQpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKnVwZGF0ZSkoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSk7CisJaW50ICgqZmluYWwpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKmRpZ2VzdCkoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSk7CisJaW50ICgqc2V0a2V5KShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0sIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5bGVuKTsKKworCXVuc2lnbmVkIGludCBkaWdlc3RzaXplOworfTsKKwogc3RydWN0IGFlYWRfYWxnIHsKIAlpbnQgKCpzZXRrZXkpKHN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtLCBjb25zdCB1OCAqa2V5LAogCSAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWxlbik7CkBAIC0yNzIsNiArMjk2LDcgQEAKICNkZWZpbmUgY3JhX2NpcGhlcgljcmFfdS5jaXBoZXIKICNkZWZpbmUgY3JhX2RpZ2VzdAljcmFfdS5kaWdlc3QKICNkZWZpbmUgY3JhX2hhc2gJY3JhX3UuaGFzaAorI2RlZmluZSBjcmFfYWhhc2gJY3JhX3UuYWhhc2gKICNkZWZpbmUgY3JhX2NvbXByZXNzCWNyYV91LmNvbXByZXNzCiAKIHN0cnVjdCBjcnlwdG9fYWxnIHsKQEAgLTI5OCw2ICszMjMsNyBAQAogCQlzdHJ1Y3QgY2lwaGVyX2FsZyBjaXBoZXI7CiAJCXN0cnVjdCBkaWdlc3RfYWxnIGRpZ2VzdDsKIAkJc3RydWN0IGhhc2hfYWxnIGhhc2g7CisJCXN0cnVjdCBhaGFzaF9hbGcgYWhhc2g7CiAJCXN0cnVjdCBjb21wcmVzc19hbGcgY29tcHJlc3M7CiAJfSBjcmFfdTsKIApAQCAtMzgzLDYgKzQwOSwxOCBAQAogCXVuc2lnbmVkIGludCBkaWdlc3RzaXplOwogfTsKIAorc3RydWN0IGFoYXNoX3RmbSB7CisJaW50ICgqaW5pdCkoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSk7CisJaW50ICgqdXBkYXRlKShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKTsKKwlpbnQgKCpmaW5hbCkoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSk7CisJaW50ICgqZGlnZXN0KShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKTsKKwlpbnQgKCpzZXRrZXkpKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgY29uc3QgdTggKmtleSwKKwkJCXVuc2lnbmVkIGludCBrZXlsZW4pOworCisJdW5zaWduZWQgaW50IGRpZ2VzdHNpemU7CisJdW5zaWduZWQgaW50IHJlcXNpemU7Cit9OworCiBzdHJ1Y3QgY29tcHJlc3NfdGZtIHsKIAlpbnQgKCpjb3RfY29tcHJlc3MpKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sCiAJICAgICAgICAgICAgICAgICAgICBjb25zdCB1OCAqc3JjLCB1bnNpZ25lZCBpbnQgc2xlbiwKQEAgLTM5Nyw2ICs0MzUsNyBAQAogI2RlZmluZSBjcnRfYmxrY2lwaGVyCWNydF91LmJsa2NpcGhlcgogI2RlZmluZSBjcnRfY2lwaGVyCWNydF91LmNpcGhlcgogI2RlZmluZSBjcnRfaGFzaAljcnRfdS5oYXNoCisjZGVmaW5lIGNydF9haGFzaAljcnRfdS5haGFzaAogI2RlZmluZSBjcnRfY29tcHJlc3MJY3J0X3UuY29tcHJlc3MKIAogc3RydWN0IGNyeXB0b190Zm0gewpAQCAtNDA5LDYgKzQ0OCw3IEBACiAJCXN0cnVjdCBibGtjaXBoZXJfdGZtIGJsa2NpcGhlcjsKIAkJc3RydWN0IGNpcGhlcl90Zm0gY2lwaGVyOwogCQlzdHJ1Y3QgaGFzaF90Zm0gaGFzaDsKKwkJc3RydWN0IGFoYXNoX3RmbSBhaGFzaDsKIAkJc3RydWN0IGNvbXByZXNzX3RmbSBjb21wcmVzczsKIAl9IGNydF91OwogCQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kY2FjaGUuaCBiL2luY2x1ZGUvbGludXgvZGNhY2hlLmgKaW5kZXggMmE2NjM5NC4uZDk4MmViOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kY2FjaGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oCkBAIC0zMDAsNyArMzAwLDcgQEAKIGV4dGVybiBjaGFyICpkeW5hbWljX2RuYW1lKHN0cnVjdCBkZW50cnkgKiwgY2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKiwgLi4uKTsKIAogZXh0ZXJuIGNoYXIgKl9fZF9wYXRoKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLCBzdHJ1Y3QgcGF0aCAqcm9vdCwgY2hhciAqLCBpbnQpOwotZXh0ZXJuIGNoYXIgKmRfcGF0aChzdHJ1Y3QgcGF0aCAqLCBjaGFyICosIGludCk7CitleHRlcm4gY2hhciAqZF9wYXRoKGNvbnN0IHN0cnVjdCBwYXRoICosIGNoYXIgKiwgaW50KTsKIGV4dGVybiBjaGFyICpkZW50cnlfcGF0aChzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKIAogLyogQWxsb2NhdGlvbiBjb3VudHMuLiAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kZWJ1Z19sb2Nrcy5oIGIvaW5jbHVkZS9saW51eC9kZWJ1Z19sb2Nrcy5oCmluZGV4IGY0YTU4NzEuLjRhYWE0YWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZGVidWdfbG9ja3MuaAorKysgYi9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgKQEAgLTEsNiArMSw4IEBACiAjaWZuZGVmIF9fTElOVVhfREVCVUdfTE9DS0lOR19ICiAjZGVmaW5lIF9fTElOVVhfREVCVUdfTE9DS0lOR19ICiAKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKwogc3RydWN0IHRhc2tfc3RydWN0OwogCiBleHRlcm4gaW50IGRlYnVnX2xvY2tzOwpAQCAtMTEsMTQgKzEzLDYgQEAKICAqLwogZXh0ZXJuIGludCBkZWJ1Z19sb2Nrc19vZmYodm9pZCk7CiAKLS8qCi0gKiBJbiB0aGUgZGVidWcgY2FzZSB3ZSBjYXJyeSB0aGUgY2FsbGVyJ3MgaW5zdHJ1Y3Rpb24gcG9pbnRlciBpbnRvCi0gKiBvdGhlciBmdW5jdGlvbnMsIGJ1dCB3ZSBkb250IHdhbnQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50IG92ZXJoZWFkCi0gKiBpbiB0aGUgbm9uZGVidWcgY2FzZSAtIGhlbmNlIHRoZXNlIG1hY3JvczoKLSAqLwotI2RlZmluZSBfUkVUX0lQXwkJKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApCi0jZGVmaW5lIF9USElTX0lQXyAgKHsgX19sYWJlbF9fIF9faGVyZTsgX19oZXJlOiAodW5zaWduZWQgbG9uZykmJl9faGVyZTsgfSkKLQogI2RlZmluZSBERUJVR19MT0NLU19XQVJOX09OKGMpCQkJCQkJXAogKHsJCQkJCQkJCQlcCiAJaW50IF9fcmV0ID0gMDsJCQkJCQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kZWxheS5oIGIvaW5jbHVkZS9saW51eC9kZWxheS5oCmluZGV4IDU0NTUyZDIuLmZkODMyYzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZGVsYXkuaAorKysgYi9pbmNsdWRlL2xpbnV4L2RlbGF5LmgKQEAgLTQxLDYgKzQxLDcgQEAKICNkZWZpbmUgbmRlbGF5KHgpIG5kZWxheSh4KQogI2VuZGlmCiAKK2V4dGVybiB1bnNpZ25lZCBsb25nIGxwal9maW5lOwogdm9pZCBjYWxpYnJhdGVfZGVsYXkodm9pZCk7CiB2b2lkIG1zbGVlcCh1bnNpZ25lZCBpbnQgbXNlY3MpOwogdW5zaWduZWQgbG9uZyBtc2xlZXBfaW50ZXJydXB0aWJsZSh1bnNpZ25lZCBpbnQgbXNlY3MpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lZmkuaCBiL2luY2x1ZGUvbGludXgvZWZpLmgKaW5kZXggYTVmMzU5YS4uODA3MzczZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9lZmkuaAorKysgYi9pbmNsdWRlL2xpbnV4L2VmaS5oCkBAIC0yODcsNyArMjg3LDYgQEAKIGV4dGVybiB2b2lkIGVmaV9pbml0ICh2b2lkKTsKIGV4dGVybiB2b2lkICplZmlfZ2V0X3BhbF9hZGRyICh2b2lkKTsKIGV4dGVybiB2b2lkIGVmaV9tYXBfcGFsX2NvZGUgKHZvaWQpOwotZXh0ZXJuIHZvaWQgZWZpX21hcF9tZW1tYXAodm9pZCk7CiBleHRlcm4gdm9pZCBlZmlfbWVtbWFwX3dhbGsgKGVmaV9mcmVlbWVtX2NhbGxiYWNrX3QgY2FsbGJhY2ssIHZvaWQgKmFyZyk7CiBleHRlcm4gdm9pZCBlZmlfZ2V0dGltZW9mZGF5IChzdHJ1Y3QgdGltZXNwZWMgKnRzKTsKIGV4dGVybiB2b2lkIGVmaV9lbnRlcl92aXJ0dWFsX21vZGUgKHZvaWQpOwkvKiBzd2l0Y2ggRUZJIHRvIHZpcnR1YWwgbW9kZSwgaWYgcG9zc2libGUgKi8KQEAgLTI5NSwxNCArMjk0LDExIEBACiBleHRlcm4gdTMyIGVmaV9tZW1fdHlwZSAodW5zaWduZWQgbG9uZyBwaHlzX2FkZHIpOwogZXh0ZXJuIHU2NCBlZmlfbWVtX2F0dHJpYnV0ZXMgKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyKTsKIGV4dGVybiB1NjQgZWZpX21lbV9hdHRyaWJ1dGUgKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpOwotZXh0ZXJuIGludCBlZmlfbWVtX2F0dHJpYnV0ZV9yYW5nZSAodW5zaWduZWQgbG9uZyBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCQkgICAgdTY0IGF0dHIpOwogZXh0ZXJuIGludCBfX2luaXQgZWZpX3VhcnRfY29uc29sZV9vbmx5ICh2b2lkKTsKIGV4dGVybiB2b2lkIGVmaV9pbml0aWFsaXplX2lvbWVtX3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKmNvZGVfcmVzb3VyY2UsCiAJCXN0cnVjdCByZXNvdXJjZSAqZGF0YV9yZXNvdXJjZSwgc3RydWN0IHJlc291cmNlICpic3NfcmVzb3VyY2UpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZWZpX2dldF90aW1lKHZvaWQpOwogZXh0ZXJuIGludCBlZmlfc2V0X3J0Y19tbXNzKHVuc2lnbmVkIGxvbmcgbm93dGltZSk7Ci1leHRlcm4gaW50IGlzX2F2YWlsYWJsZV9tZW1vcnkoZWZpX21lbW9yeV9kZXNjX3QgKiBtZCk7CiBleHRlcm4gc3RydWN0IGVmaV9tZW1vcnlfbWFwIG1lbW1hcDsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Zpcm13YXJlLW1hcC5oIGIvaW5jbHVkZS9saW51eC9maXJtd2FyZS1tYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2JkYmNjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9maXJtd2FyZS1tYXAuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogaW5jbHVkZS9saW51eC9maXJtd2FyZS1tYXAuaDoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggU1VTRSBMSU5VWCBQcm9kdWN0cyBHbWJICisgKiAgYnkgQmVybmhhcmQgV2FsbGUgPGJ3YWxsZUBzdXNlLmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYyLjAgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKi8KKyNpZm5kZWYgX0xJTlVYX0ZJUk1XQVJFX01BUF9ICisjZGVmaW5lIF9MSU5VWF9GSVJNV0FSRV9NQVBfSAorCisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KKworLyoKKyAqIHByb3ZpZGUgYSBkdW1teSBpbnRlcmZhY2UgaWYgQ09ORklHX0ZJUk1XQVJFX01FTU1BUCBpcyBkaXNhYmxlZAorICovCisjaWZkZWYgQ09ORklHX0ZJUk1XQVJFX01FTU1BUAorCisvKioKKyAqIEFkZHMgYSBmaXJtd2FyZSBtYXBwaW5nIGVudHJ5LiBUaGlzIGZ1bmN0aW9uIHVzZXMga21hbGxvYygpIGZvciBtZW1vcnkKKyAqIGFsbG9jYXRpb24uIFVzZSBmaXJtd2FyZV9tYXBfYWRkX2Vhcmx5KCkgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBib290bWVtCisgKiBhbGxvY2F0b3IuCisgKgorICogVGhhdCBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgbGF0ZV9pbml0Y2FsbC4KKyAqCisgKiBAc3RhcnQ6IFN0YXJ0IG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKiBAZW5kOiAgIEVuZCBvZiB0aGUgbWVtb3J5IHJhbmdlIChpbmNsdXNpdmUpLgorICogQHR5cGU6ICBUeXBlIG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIC1FTk9NRU0gaWYgbm8gbWVtb3J5IGNvdWxkIGJlIGFsbG9jYXRlZC4KKyAqLworaW50IGZpcm13YXJlX21hcF9hZGQocmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3QgZW5kLAorCQkgICAgIGNvbnN0IGNoYXIgKnR5cGUpOworCisvKioKKyAqIEFkZHMgYSBmaXJtd2FyZSBtYXBwaW5nIGVudHJ5LiBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlIGJvb3RtZW0gYWxsb2NhdG9yCisgKiBmb3IgbWVtb3J5IGFsbG9jYXRpb24uIFVzZSBmaXJtd2FyZV9tYXBfYWRkKCkgaWYgeW91IHdhbnQgdG8gdXNlIGttYWxsb2MoKS4KKyAqCisgKiBUaGF0IGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBsYXRlX2luaXRjYWxsLgorICoKKyAqIEBzdGFydDogU3RhcnQgb2YgdGhlIG1lbW9yeSByYW5nZS4KKyAqIEBlbmQ6ICAgRW5kIG9mIHRoZSBtZW1vcnkgcmFuZ2UgKGluY2x1c2l2ZSkuCisgKiBAdHlwZTogIFR5cGUgb2YgdGhlIG1lbW9yeSByYW5nZS4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgLUVOT01FTSBpZiBubyBtZW1vcnkgY291bGQgYmUgYWxsb2NhdGVkLgorICovCitpbnQgZmlybXdhcmVfbWFwX2FkZF9lYXJseShyZXNvdXJjZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBlbmQsCisJCQkgICBjb25zdCBjaGFyICp0eXBlKTsKKworI2Vsc2UgLyogQ09ORklHX0ZJUk1XQVJFX01FTU1BUCAqLworCitzdGF0aWMgaW5saW5lIGludCBmaXJtd2FyZV9tYXBfYWRkKHJlc291cmNlX3NpemVfdCBzdGFydCwgcmVzb3VyY2Vfc2l6ZV90IGVuZCwKKwkJCQkgICBjb25zdCBjaGFyICp0eXBlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGludCBmaXJtd2FyZV9tYXBfYWRkX2Vhcmx5KHJlc291cmNlX3NpemVfdCBzdGFydCwKKwkJCQkJIHJlc291cmNlX3NpemVfdCBlbmQsIGNvbnN0IGNoYXIgKnR5cGUpCit7CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfRklSTVdBUkVfTUVNTUFQICovCisKKyNlbmRpZiAvKiBfTElOVVhfRklSTVdBUkVfTUFQX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZmlybXdhcmUuaCBiL2luY2x1ZGUvbGludXgvZmlybXdhcmUuaAppbmRleCA0ZDEwYzczLi5jOGVjZjViIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Zpcm13YXJlLmgKKysrIGIvaW5jbHVkZS9saW51eC9maXJtd2FyZS5oCkBAIC0xLDE5ICsxLDQwIEBACiAjaWZuZGVmIF9MSU5VWF9GSVJNV0FSRV9ICiAjZGVmaW5lIF9MSU5VWF9GSVJNV0FSRV9ICisKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisKICNkZWZpbmUgRklSTVdBUkVfTkFNRV9NQVggMzAgCiAjZGVmaW5lIEZXX0FDVElPTl9OT0hPVFBMVUcgMAogI2RlZmluZSBGV19BQ1RJT05fSE9UUExVRyAxCiAKIHN0cnVjdCBmaXJtd2FyZSB7CiAJc2l6ZV90IHNpemU7Ci0JdTggKmRhdGE7CisJY29uc3QgdTggKmRhdGE7CiB9OwogCiBzdHJ1Y3QgZGV2aWNlOwogCi0jaWYgZGVmaW5lZChDT05GSUdfRldfTE9BREVSKSB8fCBkZWZpbmVkKENPTkZJR19GV19MT0FERVJfTU9EVUxFKQorc3RydWN0IGJ1aWx0aW5fZncgeworCWNoYXIgKm5hbWU7CisJdm9pZCAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIHNpemU7Cit9OworCisvKiBXZSBoYXZlIHRvIHBsYXkgdHJpY2tzIGhlcmUgbXVjaCBsaWtlIHN0cmluZ2lmeSgpIHRvIGdldCB0aGUKKyAgIF9fQ09VTlRFUl9fIG1hY3JvIHRvIGJlIGV4cGFuZGVkIGFzIHdlIHdhbnQgaXQgKi8KKyNkZWZpbmUgX19md19jb25jYXQxKHgsIHkpIHgjI3kKKyNkZWZpbmUgX19md19jb25jYXQoeCwgeSkgX19md19jb25jYXQxKHgsIHkpCisKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0ZJUk1XQVJFKG5hbWUsIGJsb2IpCQkJCSAgICAgXAorCURFQ0xBUkVfQlVJTFRJTl9GSVJNV0FSRV9TSVpFKG5hbWUsICYoYmxvYiksIHNpemVvZihibG9iKSkKKworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fRklSTVdBUkVfU0laRShuYW1lLCBibG9iLCBzaXplKQkJCSAgICAgXAorCXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9mdyBfX2Z3X2NvbmNhdChfX2J1aWx0aW5fZncsX19DT1VOVEVSX18pIFwKKwlfX3VzZWQgX19zZWN0aW9uKC5idWlsdGluX2Z3KSA9IHsgbmFtZSwgYmxvYiwgc2l6ZSB9CisKKyNpZiBkZWZpbmVkKENPTkZJR19GV19MT0FERVIpIHx8IChkZWZpbmVkKENPTkZJR19GV19MT0FERVJfTU9EVUxFKSAmJiBkZWZpbmVkKE1PRFVMRSkpCiBpbnQgcmVxdWVzdF9maXJtd2FyZShjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKipmdywgY29uc3QgY2hhciAqbmFtZSwKIAkJICAgICBzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpOwogaW50IHJlcXVlc3RfZmlybXdhcmVfbm93YWl0KApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mcy5oIGIvaW5jbHVkZS9saW51eC9mcy5oCmluZGV4IGQ0OTA3NzkuLjUyZTUxMGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4L2ZzLmgKQEAgLTgzLDYgKzgzLDcgQEAKICNkZWZpbmUgUkVBRF9TWU5DCShSRUFEIHwgKDEgPDwgQklPX1JXX1NZTkMpKQogI2RlZmluZSBSRUFEX01FVEEJKFJFQUQgfCAoMSA8PCBCSU9fUldfTUVUQSkpCiAjZGVmaW5lIFdSSVRFX1NZTkMJKFdSSVRFIHwgKDEgPDwgQklPX1JXX1NZTkMpKQorI2RlZmluZSBTV1JJVEVfU1lOQwkoU1dSSVRFIHwgKDEgPDwgQklPX1JXX1NZTkMpKQogI2RlZmluZSBXUklURV9CQVJSSUVSCSgoMSA8PCBCSU9fUlcpIHwgKDEgPDwgQklPX1JXX0JBUlJJRVIpKQogCiAjZGVmaW5lIFNFTF9JTgkJMQpAQCAtODk0LDggKzg5NSw2IEBACiB0eXBlZGVmIHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZsX293bmVyX3Q7CiAKIHN0cnVjdCBmaWxlX2xvY2tfb3BlcmF0aW9ucyB7Ci0Jdm9pZCAoKmZsX2luc2VydCkoc3RydWN0IGZpbGVfbG9jayAqKTsJLyogbG9jayBpbnNlcnRpb24gY2FsbGJhY2sgKi8KLQl2b2lkICgqZmxfcmVtb3ZlKShzdHJ1Y3QgZmlsZV9sb2NrICopOwkvKiBsb2NrIHJlbW92YWwgY2FsbGJhY2sgKi8KIAl2b2lkICgqZmxfY29weV9sb2NrKShzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CiAJdm9pZCAoKmZsX3JlbGVhc2VfcHJpdmF0ZSkoc3RydWN0IGZpbGVfbG9jayAqKTsKIH07CkBAIC0xNzQxLDYgKzE3NDAsOCBAQAogCQkJCXBnb2ZmX3Qgc3RhcnQsIHBnb2ZmX3QgZW5kKTsKIGV4dGVybiBpbnQgX19maWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAJCQkJbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgc3luY19tb2RlKTsKK2V4dGVybiBpbnQgZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAorCQkJCWxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCk7CiAKIGV4dGVybiBsb25nIGRvX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgZGF0YXN5bmMpOwogZXh0ZXJuIHZvaWQgc3luY19zdXBlcnModm9pZCk7CkBAIC0xODcxLDcgKzE4NzIsOCBAQAogZmlsZV9yYV9zdGF0ZV9pbml0KHN0cnVjdCBmaWxlX3JhX3N0YXRlICpyYSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpOwogZXh0ZXJuIGxvZmZfdCBub19sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pOwogZXh0ZXJuIGxvZmZfdCBnZW5lcmljX2ZpbGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKTsKLWV4dGVybiBsb2ZmX3QgcmVtb3RlX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbik7CitleHRlcm4gbG9mZl90IGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsCisJCQlpbnQgb3JpZ2luKTsKIGV4dGVybiBpbnQgZ2VuZXJpY19maWxlX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCk7CiBleHRlcm4gaW50IG5vbnNlZWthYmxlX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnRyYWNlLmggYi9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNjhkMDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5oCkBAIC0wLDAgKzEsMTQ0IEBACisjaWZuZGVmIF9MSU5VWF9GVFJBQ0VfSAorI2RlZmluZSBfTElOVVhfRlRSQUNFX0gKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKworI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorCitleHRlcm4gaW50IGZ0cmFjZV9lbmFibGVkOworZXh0ZXJuIGludAorZnRyYWNlX2VuYWJsZV9zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJICAgICBzdHJ1Y3QgZmlsZSAqZmlscCwgdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAorCQkgICAgIGxvZmZfdCAqcHBvcyk7CisKK3R5cGVkZWYgdm9pZCAoKmZ0cmFjZV9mdW5jX3QpKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKTsKKworc3RydWN0IGZ0cmFjZV9vcHMgeworCWZ0cmFjZV9mdW5jX3QJICBmdW5jOworCXN0cnVjdCBmdHJhY2Vfb3BzICpuZXh0OworfTsKKworLyoKKyAqIFRoZSBmdHJhY2Vfb3BzIG11c3QgYmUgYSBzdGF0aWMgYW5kIHNob3VsZCBhbHNvCisgKiBiZSByZWFkX21vc3RseS4gIFRoZXNlIGZ1bmN0aW9ucyBkbyBtb2RpZnkgcmVhZF9tb3N0bHkgdmFyaWFibGVzCisgKiBzbyB1c2UgdGhlbSBzcGFyZWx5LiBOZXZlciBmcmVlIGFuIGZ0cmFjZV9vcCBvciBtb2RpZnkgdGhlCisgKiBuZXh0IHBvaW50ZXIgYWZ0ZXIgaXQgaGFzIGJlZW4gcmVnaXN0ZXJlZC4gRXZlbiBhZnRlciB1bnJlZ2lzdGVyaW5nCisgKiBpdCwgdGhlIG5leHQgcG9pbnRlciBtYXkgc3RpbGwgYmUgdXNlZCBpbnRlcm5hbGx5LgorICovCitpbnQgcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpOworaW50IHVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpOwordm9pZCBjbGVhcl9mdHJhY2VfZnVuY3Rpb24odm9pZCk7CisKK2V4dGVybiB2b2lkIGZ0cmFjZV9zdHViKHVuc2lnbmVkIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgYTEpOworCisjZWxzZSAvKiAhQ09ORklHX0ZUUkFDRSAqLworIyBkZWZpbmUgcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKG9wcykgZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgdW5yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24ob3BzKSBkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBjbGVhcl9mdHJhY2VfZnVuY3Rpb24ob3BzKSBkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisjIGRlZmluZSBGVFJBQ0VfSEFTSEJJVFMJMTAKKyMgZGVmaW5lIEZUUkFDRV9IQVNIU0laRQkoMTw8RlRSQUNFX0hBU0hCSVRTKQorCitlbnVtIHsKKwlGVFJBQ0VfRkxfRlJFRQkJPSAoMSA8PCAwKSwKKwlGVFJBQ0VfRkxfRkFJTEVECT0gKDEgPDwgMSksCisJRlRSQUNFX0ZMX0ZJTFRFUgk9ICgxIDw8IDIpLAorCUZUUkFDRV9GTF9FTkFCTEVECT0gKDEgPDwgMyksCisJRlRSQUNFX0ZMX05PVFJBQ0UJPSAoMSA8PCA0KSwKKwlGVFJBQ0VfRkxfQ09OVkVSVEVECT0gKDEgPDwgNSksCisJRlRSQUNFX0ZMX0ZST1pFTgk9ICgxIDw8IDYpLAorfTsKKworc3RydWN0IGR5bl9mdHJhY2UgeworCXN0cnVjdCBobGlzdF9ub2RlIG5vZGU7CisJdW5zaWduZWQgbG9uZwkgIGlwOyAvKiBhZGRyZXNzIG9mIG1jb3VudCBjYWxsLXNpdGUgKi8KKwl1bnNpZ25lZCBsb25nCSAgZmxhZ3M7Cit9OworCitpbnQgZnRyYWNlX2ZvcmNlX3VwZGF0ZSh2b2lkKTsKK3ZvaWQgZnRyYWNlX3NldF9maWx0ZXIodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuLCBpbnQgcmVzZXQpOworCisvKiBkZWZpbmVkIGluIGFyY2ggKi8KK2V4dGVybiBpbnQgZnRyYWNlX2lwX2NvbnZlcnRlZCh1bnNpZ25lZCBsb25nIGlwKTsKK2V4dGVybiB1bnNpZ25lZCBjaGFyICpmdHJhY2Vfbm9wX3JlcGxhY2Uodm9pZCk7CitleHRlcm4gdW5zaWduZWQgY2hhciAqZnRyYWNlX2NhbGxfcmVwbGFjZSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIGFkZHIpOworZXh0ZXJuIGludCBmdHJhY2VfZHluX2FyY2hfaW5pdCh2b2lkICpkYXRhKTsKK2V4dGVybiBpbnQgZnRyYWNlX21jb3VudF9zZXQodW5zaWduZWQgbG9uZyAqZGF0YSk7CitleHRlcm4gaW50IGZ0cmFjZV9tb2RpZnlfY29kZSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBjaGFyICpvbGRfY29kZSwKKwkJCSAgICAgIHVuc2lnbmVkIGNoYXIgKm5ld19jb2RlKTsKK2V4dGVybiBpbnQgZnRyYWNlX3VwZGF0ZV9mdHJhY2VfZnVuYyhmdHJhY2VfZnVuY190IGZ1bmMpOworZXh0ZXJuIHZvaWQgZnRyYWNlX2NhbGxlcih2b2lkKTsKK2V4dGVybiB2b2lkIGZ0cmFjZV9jYWxsKHZvaWQpOworZXh0ZXJuIHZvaWQgbWNvdW50X2NhbGwodm9pZCk7CisKK2V4dGVybiBpbnQgc2tpcF90cmFjZSh1bnNpZ25lZCBsb25nIGlwKTsKKwordm9pZCBmdHJhY2VfZGlzYWJsZV9kYWVtb24odm9pZCk7Cit2b2lkIGZ0cmFjZV9lbmFibGVfZGFlbW9uKHZvaWQpOworCisjZWxzZQorIyBkZWZpbmUgc2tpcF90cmFjZShpcCkJCQkJKHsgMDsgfSkKKyMgZGVmaW5lIGZ0cmFjZV9mb3JjZV91cGRhdGUoKQkJCSh7IDA7IH0pCisjIGRlZmluZSBmdHJhY2Vfc2V0X2ZpbHRlcihidWYsIGxlbiwgcmVzZXQpCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIGZ0cmFjZV9kaXNhYmxlX2RhZW1vbigpCQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBmdHJhY2VfZW5hYmxlX2RhZW1vbigpCQkJZG8geyB9IHdoaWxlICgwKQorI2VuZGlmIC8qIENPTkZJR19EWU5BTUlDX0ZUUkFDRSAqLworCisvKiB0b3RhbGx5IGRpc2FibGUgZnRyYWNlIC0gY2FuIG5vdCByZS1lbmFibGUgYWZ0ZXIgdGhpcyAqLwordm9pZCBmdHJhY2Vfa2lsbCh2b2lkKTsKK3ZvaWQgZnRyYWNlX2tpbGxfYXRvbWljKHZvaWQpOworCitzdGF0aWMgaW5saW5lIHZvaWQgdHJhY2VyX2Rpc2FibGUodm9pZCkKK3sKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisJZnRyYWNlX2VuYWJsZWQgPSAwOworI2VuZGlmCit9CisKKyNpZmRlZiBDT05GSUdfRlJBTUVfUE9JTlRFUgorLyogVE9ETzogbmVlZCB0byBmaXggdGhpcyBmb3IgQVJNICovCisjIGRlZmluZSBDQUxMRVJfQUREUjAgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSkKKyMgZGVmaW5lIENBTExFUl9BRERSMSAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDEpKQorIyBkZWZpbmUgQ0FMTEVSX0FERFIyICgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMikpCisjIGRlZmluZSBDQUxMRVJfQUREUjMgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygzKSkKKyMgZGVmaW5lIENBTExFUl9BRERSNCAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDQpKQorIyBkZWZpbmUgQ0FMTEVSX0FERFI1ICgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNSkpCisjIGRlZmluZSBDQUxMRVJfQUREUjYgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcyg2KSkKKyNlbHNlCisjIGRlZmluZSBDQUxMRVJfQUREUjAgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSkKKyMgZGVmaW5lIENBTExFUl9BRERSMSAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSMiAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSMyAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSNCAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSNSAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSNiAwVUwKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0lSUVNPRkZfVFJBQ0VSCisgIGV4dGVybiB2b2lkIHRpbWVfaGFyZGlycXNfb24odW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSk7CisgIGV4dGVybiB2b2lkIHRpbWVfaGFyZGlycXNfb2ZmKHVuc2lnbmVkIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgYTEpOworI2Vsc2UKKyMgZGVmaW5lIHRpbWVfaGFyZGlycXNfb24oYTAsIGExKQkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgdGltZV9oYXJkaXJxc19vZmYoYTAsIGExKQkJZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfUFJFRU1QVF9UUkFDRVIKKyAgZXh0ZXJuIHZvaWQgdHJhY2VfcHJlZW1wdF9vbih1bnNpZ25lZCBsb25nIGEwLCB1bnNpZ25lZCBsb25nIGExKTsKKyAgZXh0ZXJuIHZvaWQgdHJhY2VfcHJlZW1wdF9vZmYodW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSk7CisjZWxzZQorIyBkZWZpbmUgdHJhY2VfcHJlZW1wdF9vbihhMCwgYTEpCQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSB0cmFjZV9wcmVlbXB0X29mZihhMCwgYTEpCQlkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19UUkFDSU5HCitleHRlcm4gdm9pZAorZnRyYWNlX3NwZWNpYWwodW5zaWduZWQgbG9uZyBhcmcxLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMyk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkCitmdHJhY2Vfc3BlY2lhbCh1bnNpZ25lZCBsb25nIGFyZzEsIHVuc2lnbmVkIGxvbmcgYXJnMiwgdW5zaWduZWQgbG9uZyBhcmczKSB7IH0KKyNlbmRpZgorCisjZW5kaWYgLyogX0xJTlVYX0ZUUkFDRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2dlbmhkLmggYi9pbmNsdWRlL2xpbnV4L2dlbmhkLmgKaW5kZXggYWU3YWVjMy4uZTg3ODc0MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9nZW5oZC5oCisrKyBiL2luY2x1ZGUvbGludXgvZ2VuaGQuaApAQCAtMTEwLDYgKzExMCwxNCBAQAogI2RlZmluZSBHRU5IRF9GTF9TVVBQUkVTU19QQVJUSVRJT05fSU5GTwkzMgogI2RlZmluZSBHRU5IRF9GTF9GQUlMCQkJCTY0CiAKKyNkZWZpbmUgQkxLX1NDU0lfTUFYX0NNRFMJKDI1NikKKyNkZWZpbmUgQkxLX1NDU0lfQ01EX1BFUl9MT05HCShCTEtfU0NTSV9NQVhfQ01EUyAvIChzaXplb2YobG9uZykgKiA4KSkKKworc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgeworCXVuc2lnbmVkIGxvbmcgcmVhZF9va1tCTEtfU0NTSV9DTURfUEVSX0xPTkddOworCXVuc2lnbmVkIGxvbmcgd3JpdGVfb2tbQkxLX1NDU0lfQ01EX1BFUl9MT05HXTsKKwlzdHJ1Y3Qga29iamVjdCBrb2JqOworfTsKIAogc3RydWN0IGdlbmRpc2sgewogCWludCBtYWpvcjsJCQkvKiBtYWpvciBudW1iZXIgb2YgZHJpdmVyICovCkBAIC0xMjAsNiArMTI4LDcgQEAKIAlzdHJ1Y3QgaGRfc3RydWN0ICoqcGFydDsJLyogW2luZGV4ZWQgYnkgbWlub3JdICovCiAJc3RydWN0IGJsb2NrX2RldmljZV9vcGVyYXRpb25zICpmb3BzOwogCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxdWV1ZTsKKwlzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciBjbWRfZmlsdGVyOwogCXZvaWQgKnByaXZhdGVfZGF0YTsKIAlzZWN0b3JfdCBjYXBhY2l0eTsKIApAQCAtMTQxLDYgKzE1MCw5IEBACiAJc3RydWN0IGRpc2tfc3RhdHMgZGtzdGF0czsKICNlbmRpZgogCXN0cnVjdCB3b3JrX3N0cnVjdCBhc3luY19ub3RpZnk7CisjaWZkZWYgIENPTkZJR19CTEtfREVWX0lOVEVHUklUWQorCXN0cnVjdCBibGtfaW50ZWdyaXR5ICppbnRlZ3JpdHk7CisjZW5kaWYKIH07CiAKIC8qIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pMmMtYWxnby1wY2YuaCBiL2luY2x1ZGUvbGludXgvaTJjLWFsZ28tcGNmLmgKaW5kZXggNzdhZmJiNi4uMDE3N2QyOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pMmMtYWxnby1wY2YuaAorKysgYi9pbmNsdWRlL2xpbnV4L2kyYy1hbGdvLXBjZi5oCkBAIC0zMyw5ICszMywxMSBAQAogCWludCAgKCpnZXRjbG9jaykgKHZvaWQgKmRhdGEpOwogCXZvaWQgKCp3YWl0Zm9ycGluKSAodm9pZCk7CiAKLQkvKiBsb2NhbCBzZXR0aW5ncyAqLwotCWludCB1ZGVsYXk7Ci0JaW50IHRpbWVvdXQ7CisJLyogTXVsdGktbWFzdGVyIGxvc3QgYXJiaXRyYXRpb24gYmFjay1vZmYgZGVsYXkgKG1zZWNzKQorCSAqIFRoaXMgc2hvdWxkIGJlIHNldCBieSB0aGUgYnVzIGFkYXB0ZXIgb3Iga25vd2xlZGdhYmxlIGNsaWVudAorCSAqIGlmIGJ1cyBpcyBtdWx0aS1tYXN0ZXJlZCwgZWxzZSB6ZXJvCisJICovCisJdW5zaWduZWQgbG9uZyBsYWJfbWRlbGF5OwogfTsKIAogaW50IGkyY19wY2ZfYWRkX2J1cyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2kyYy1pZC5oIGIvaW5jbHVkZS9saW51eC9pMmMtaWQuaAppbmRleCA1ODBhY2M5Li5lZjEzYjdjNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pMmMtaWQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2kyYy1pZC5oCkBAIC05MSw4ICs5MSw2IEBACiAjZGVmaW5lIEkyQ19EUklWRVJJRF9NNTI3OTAgCTk1ICAgICAgLyogTWl0c3ViaXNoaSBNNTI3OTBTUC9GUCBBViBzd2l0Y2ggKi8KICNkZWZpbmUgSTJDX0RSSVZFUklEX0NTNTM0NQk5NgkvKiBjczUzNDUgYXVkaW8gcHJvY2Vzc29yCSovCiAKLSNkZWZpbmUgSTJDX0RSSVZFUklEX0kyQ0RFVgk5MDAKLQogI2RlZmluZSBJMkNfRFJJVkVSSURfT1Y3NjcwIDEwNDgJLyogT21uaXZpc2lvbiA3NjcwIGNhbWVyYSAqLwogCiAvKgpAQCAtMTExLDcgKzEwOSw2IEBACiAjZGVmaW5lIEkyQ19IV19CX1JJVkEJCTB4MDEwMDEwIC8qIFJpdmEgYmFzZWQgZ3JhcGhpY3MgY2FyZHMgKi8KICNkZWZpbmUgSTJDX0hXX0JfSU9DCQkweDAxMDAxMSAvKiBJT0MgYml0LXdpZ2dsaW5nICovCiAjZGVmaW5lIEkyQ19IV19CX0lYUDIwMDAJMHgwMTAwMTYgLyogR1BJTyBvbiBJWFAyMDAwIHN5c3RlbXMgKi8KLSNkZWZpbmUgSTJDX0hXX0JfUzNWSUEJCTB4MDEwMDE4IC8qIFMzVmlhIFByb1NhdmFnZSBhZGFwdGVyICovCiAjZGVmaW5lIEkyQ19IV19CX1pSMzYwNjcJMHgwMTAwMTkgLyogWm9yYW4tMzYwNTcvMzYwNjcgYmFzZWQgYm9hcmRzICovCiAjZGVmaW5lIEkyQ19IV19CX1BDSUxZTlgJMHgwMTAwMWEgLyogVEkgUENJTHlueCBJMkMgYWRhcHRlciAqLwogI2RlZmluZSBJMkNfSFdfQl9DWDIzODh4CTB4MDEwMDFiIC8qIGNvbm5leGFudCAyMzg4eCBiYXNlZCB0diBjYXJkcyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pMmMuaCBiL2luY2x1ZGUvbGludXgvaTJjLmgKaW5kZXggZmI5YWY2YS4uMDhiZTBkMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pMmMuaAorKysgYi9pbmNsdWRlL2xpbnV4L2kyYy5oCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4JLyogZm9yIGNvbXBsZXRpb24gKi8KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogCitleHRlcm4gc3RydWN0IGJ1c190eXBlIGkyY19idXNfdHlwZTsKKwogLyogLS0tIEdlbmVyYWwgb3B0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0JKi8KIAogc3RydWN0IGkyY19tc2c7CkBAIC00Myw2ICs0NSw3IEBACiBzdHJ1Y3QgaTJjX2NsaWVudDsKIHN0cnVjdCBpMmNfZHJpdmVyOwogdW5pb24gaTJjX3NtYnVzX2RhdGE7CitzdHJ1Y3QgaTJjX2JvYXJkX2luZm87CiAKIC8qCiAgKiBUaGUgbWFzdGVyIHJvdXRpbmVzIGFyZSB0aGUgb25lcyBub3JtYWxseSB1c2VkIHRvIHRyYW5zbWl0IGRhdGEgdG8gZGV2aWNlcwpAQCAtNjksOSArNzIsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gaTJjX3NtYnVzX2RhdGEgKiBkYXRhKTsKIAogLyogTm93IGZvbGxvdyB0aGUgJ25pY2UnIGFjY2VzcyByb3V0aW5lcy4gVGhlc2UgYWxzbyBkb2N1bWVudCB0aGUgY2FsbGluZwotICAgY29udmVudGlvbnMgb2Ygc21idXNfYWNjZXNzLiAqLworICAgY29udmVudGlvbnMgb2YgaTJjX3NtYnVzX3hmZXIuICovCiAKLWV4dGVybiBzMzIgaTJjX3NtYnVzX3dyaXRlX3F1aWNrKHN0cnVjdCBpMmNfY2xpZW50ICogY2xpZW50LCB1OCB2YWx1ZSk7CiBleHRlcm4gczMyIGkyY19zbWJ1c19yZWFkX2J5dGUoc3RydWN0IGkyY19jbGllbnQgKiBjbGllbnQpOwogZXh0ZXJuIHMzMiBpMmNfc21idXNfd3JpdGVfYnl0ZShzdHJ1Y3QgaTJjX2NsaWVudCAqIGNsaWVudCwgdTggdmFsdWUpOwogZXh0ZXJuIHMzMiBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoc3RydWN0IGkyY19jbGllbnQgKiBjbGllbnQsIHU4IGNvbW1hbmQpOwpAQCAtOTMsMTUgKzk1LDMzIEBACiAJCQkJCSAgdTggY29tbWFuZCwgdTggbGVuZ3RoLAogCQkJCQkgIGNvbnN0IHU4ICp2YWx1ZXMpOwogCi0vKgotICogQSBkcml2ZXIgaXMgY2FwYWJsZSBvZiBoYW5kbGluZyBvbmUgb3IgbW9yZSBwaHlzaWNhbCBkZXZpY2VzIHByZXNlbnQgb24KLSAqIEkyQyBhZGFwdGVycy4gVGhpcyBpbmZvcm1hdGlvbiBpcyB1c2VkIHRvIGluZm9ybSB0aGUgZHJpdmVyIG9mIGFkYXB0ZXIKLSAqIGV2ZW50cy4KKy8qKgorICogc3RydWN0IGkyY19kcml2ZXIgLSByZXByZXNlbnQgYW4gSTJDIGRldmljZSBkcml2ZXIKKyAqIEBjbGFzczogV2hhdCBraW5kIG9mIGkyYyBkZXZpY2Ugd2UgaW5zdGFudGlhdGUgKGZvciBkZXRlY3QpCisgKiBAZGV0ZWN0OiBDYWxsYmFjayBmb3IgZGV2aWNlIGRldGVjdGlvbgorICogQGFkZHJlc3NfZGF0YTogVGhlIEkyQyBhZGRyZXNzZXMgdG8gcHJvYmUsIGlnbm9yZSBvciBmb3JjZSAoZm9yIGRldGVjdCkKKyAqIEBjbGllbnRzOiBMaXN0IG9mIGRldGVjdGVkIGNsaWVudHMgd2UgY3JlYXRlZCAoZm9yIGkyYy1jb3JlIHVzZSBvbmx5KQogICoKICAqIFRoZSBkcml2ZXIub3duZXIgZmllbGQgc2hvdWxkIGJlIHNldCB0byB0aGUgbW9kdWxlIG93bmVyIG9mIHRoaXMgZHJpdmVyLgogICogVGhlIGRyaXZlci5uYW1lIGZpZWxkIHNob3VsZCBiZSBzZXQgdG8gdGhlIG5hbWUgb2YgdGhpcyBkcml2ZXIuCisgKgorICogRm9yIGF1dG9tYXRpYyBkZXZpY2UgZGV0ZWN0aW9uLCBib3RoIEBkZXRlY3QgYW5kIEBhZGRyZXNzX2RhdGEgbXVzdAorICogYmUgZGVmaW5lZC4gQGNsYXNzIHNob3VsZCBhbHNvIGJlIHNldCwgb3RoZXJ3aXNlIG9ubHkgZGV2aWNlcyBmb3JjZWQKKyAqIHdpdGggbW9kdWxlIHBhcmFtZXRlcnMgd2lsbCBiZSBjcmVhdGVkLiBUaGUgZGV0ZWN0IGZ1bmN0aW9uIG11c3QKKyAqIGZpbGwgYXQgbGVhc3QgdGhlIG5hbWUgZmllbGQgb2YgdGhlIGkyY19ib2FyZF9pbmZvIHN0cnVjdHVyZSBpdCBpcworICogaGFuZGVkIHVwb24gc3VjY2Vzc2Z1bCBkZXRlY3Rpb24sIGFuZCBwb3NzaWJseSBhbHNvIHRoZSBmbGFncyBmaWVsZC4KKyAqCisgKiBJZiBAZGV0ZWN0IGlzIG1pc3NpbmcsIHRoZSBkcml2ZXIgd2lsbCBzdGlsbCB3b3JrIGZpbmUgZm9yIGVudW1lcmF0ZWQKKyAqIGRldmljZXMuIERldGVjdGVkIGRldmljZXMgc2ltcGx5IHdvbid0IGJlIHN1cHBvcnRlZC4gVGhpcyBpcyBleHBlY3RlZAorICogZm9yIHRoZSBtYW55IEkyQy9TTUJ1cyBkZXZpY2VzIHdoaWNoIGNhbid0IGJlIGRldGVjdGVkIHJlbGlhYmx5LCBhbmQKKyAqIHRoZSBvbmVzIHdoaWNoIGNhbiBhbHdheXMgYmUgZW51bWVyYXRlZCBpbiBwcmFjdGljZS4KKyAqCisgKiBUaGUgaTJjX2NsaWVudCBzdHJ1Y3R1cmUgd2hpY2ggaXMgaGFuZGVkIHRvIHRoZSBAZGV0ZWN0IGNhbGxiYWNrIGlzCisgKiBub3QgYSByZWFsIGkyY19jbGllbnQuIEl0IGlzIGluaXRpYWxpemVkIGp1c3QgZW5vdWdoIHNvIHRoYXQgeW91IGNhbgorICogY2FsbCBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEgYW5kIGZyaWVuZHMgb24gaXQuIERvbid0IGRvIGFueXRoaW5nCisgKiBlbHNlIHdpdGggaXQuIEluIHBhcnRpY3VsYXIsIGNhbGxpbmcgZGV2X2RiZyBhbmQgZnJpZW5kcyBvbiBpdCBpcworICogbm90IGFsbG93ZWQuCiAgKi8KLQogc3RydWN0IGkyY19kcml2ZXIgewogCWludCBpZDsKIAl1bnNpZ25lZCBpbnQgY2xhc3M7CkBAIC0xNDEsNiArMTYxLDExIEBACiAKIAlzdHJ1Y3QgZGV2aWNlX2RyaXZlciBkcml2ZXI7CiAJY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmlkX3RhYmxlOworCisJLyogRGV2aWNlIGRldGVjdGlvbiBjYWxsYmFjayBmb3IgYXV0b21hdGljIGRldmljZSBjcmVhdGlvbiAqLworCWludCAoKmRldGVjdCkoc3RydWN0IGkyY19jbGllbnQgKiwgaW50IGtpbmQsIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyAqKTsKKwljb25zdCBzdHJ1Y3QgaTJjX2NsaWVudF9hZGRyZXNzX2RhdGEgKmFkZHJlc3NfZGF0YTsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGNsaWVudHM7CiB9OwogI2RlZmluZSB0b19pMmNfZHJpdmVyKGQpIGNvbnRhaW5lcl9vZihkLCBzdHJ1Y3QgaTJjX2RyaXZlciwgZHJpdmVyKQogCkBAIC0xNTYsNiArMTgxLDcgQEAKICAqIEBkZXY6IERyaXZlciBtb2RlbCBkZXZpY2Ugbm9kZSBmb3IgdGhlIHNsYXZlLgogICogQGlycTogaW5kaWNhdGVzIHRoZSBJUlEgZ2VuZXJhdGVkIGJ5IHRoaXMgZGV2aWNlIChpZiBhbnkpCiAgKiBAbGlzdDogbGlzdCBvZiBhY3RpdmUvYnVzeSBjbGllbnRzIChERVBSRUNBVEVEKQorICogQGRldGVjdGVkOiBtZW1iZXIgb2YgYW4gaTJjX2RyaXZlci5jbGllbnRzIGxpc3QKICAqIEByZWxlYXNlZDogdXNlZCB0byBzeW5jaHJvbml6ZSBjbGllbnQgcmVsZWFzZXMgJiBkZXRhY2hlcyBhbmQgcmVmZXJlbmNlcwogICoKICAqIEFuIGkyY19jbGllbnQgaWRlbnRpZmllcyBhIHNpbmdsZSBkZXZpY2UgKGkuZS4gY2hpcCkgY29ubmVjdGVkIHRvIGFuCkBAIC0xNzEsOCArMTk3LDkgQEAKIAlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXI7CS8qIHRoZSBhZGFwdGVyIHdlIHNpdCBvbgkqLwogCXN0cnVjdCBpMmNfZHJpdmVyICpkcml2ZXI7CS8qIGFuZCBvdXIgYWNjZXNzIHJvdXRpbmVzCSovCiAJc3RydWN0IGRldmljZSBkZXY7CQkvKiB0aGUgZGV2aWNlIHN0cnVjdHVyZQkJKi8KLQlpbnQgaXJxOwkJCS8qIGlycSBpc3N1ZWQgYnkgZGV2aWNlIChvciAtMSkgKi8KKwlpbnQgaXJxOwkJCS8qIGlycSBpc3N1ZWQgYnkgZGV2aWNlCQkqLwogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsJCS8qIERFUFJFQ0FURUQgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGRldGVjdGVkOwogCXN0cnVjdCBjb21wbGV0aW9uIHJlbGVhc2VkOwogfTsKICNkZWZpbmUgdG9faTJjX2NsaWVudChkKSBjb250YWluZXJfb2YoZCwgc3RydWN0IGkyY19jbGllbnQsIGRldikKQEAgLTM1MCwxMCArMzc3LDExIEBACiAjZGVmaW5lIEkyQ19DTEFTU19IV01PTgkJKDE8PDApCS8qIGxtX3NlbnNvcnMsIC4uLiAqLwogI2RlZmluZSBJMkNfQ0xBU1NfVFZfQU5BTE9HCSgxPDwxKQkvKiBidHR2ICsgZnJpZW5kcyAqLwogI2RlZmluZSBJMkNfQ0xBU1NfVFZfRElHSVRBTAkoMTw8MikJLyogZHZiIGNhcmRzICovCi0jZGVmaW5lIEkyQ19DTEFTU19EREMJCSgxPDwzKQkvKiBpMmMtbWF0cm94ZmIgPyAqLworI2RlZmluZSBJMkNfQ0xBU1NfRERDCQkoMTw8MykJLyogRERDIGJ1cyBvbiBncmFwaGljcyBhZGFwdGVycyAqLwogI2RlZmluZSBJMkNfQ0xBU1NfQ0FNX0FOQUxPRwkoMTw8NCkJLyogY2FtZXJhIHdpdGggYW5hbG9nIENDRCAqLwogI2RlZmluZSBJMkNfQ0xBU1NfQ0FNX0RJR0lUQUwJKDE8PDUpCS8qIG1vc3Qgd2ViY2FtcyAqLwogI2RlZmluZSBJMkNfQ0xBU1NfU09VTkQJCSgxPDw2KQkvKiBzb3VuZCBkZXZpY2VzICovCisjZGVmaW5lIEkyQ19DTEFTU19TUEQJCSgxPDw3KQkvKiBTUEQgRUVQUk9NcyBhbmQgc2ltaWxhciAqLwogI2RlZmluZSBJMkNfQ0xBU1NfQUxMCQkoVUlOVF9NQVgpIC8qIGFsbCBvZiB0aGUgYWJvdmUgKi8KIAogLyogaTJjX2NsaWVudF9hZGRyZXNzX2RhdGEgaXMgdGhlIHN0cnVjdCBmb3IgaG9sZGluZyBkZWZhdWx0IGNsaWVudApAQCAtNTM3LDcgKzU2NSw3IEBACiAJICAgICAgICAgICAgICAgICAgICAgICAvKiBhbmQgb25lIG1vcmUgZm9yIHVzZXItc3BhY2UgY29tcGF0aWJpbGl0eSAqLwogfTsKIAotLyogc21idXNfYWNjZXNzIHJlYWQgb3Igd3JpdGUgbWFya2VycyAqLworLyogaTJjX3NtYnVzX3hmZXIgcmVhZCBvciB3cml0ZSBtYXJrZXJzICovCiAjZGVmaW5lIEkyQ19TTUJVU19SRUFECTEKICNkZWZpbmUgSTJDX1NNQlVTX1dSSVRFCTAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pMmMvYXQyNC5oIGIvaW5jbHVkZS9saW51eC9pMmMvYXQyNC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2ZWRkNTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L2kyYy9hdDI0LmgKQEAgLTAsMCArMSwyOCBAQAorI2lmbmRlZiBfTElOVVhfQVQyNF9ICisjZGVmaW5lIF9MSU5VWF9BVDI0X0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKy8qCisgKiBBcyBzZWVuIHRocm91Z2ggTGludXggSTJDLCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBtb3N0IGNvbW1vbiB0eXBlcyBvZiBJMkMKKyAqIG1lbW9yeSBpbmNsdWRlOgorICogLSBIb3cgbXVjaCBtZW1vcnkgaXMgYXZhaWxhYmxlICh1c3VhbGx5IHNwZWNpZmllZCBpbiBiaXQpPworICogLSBXaGF0IHdyaXRlIHBhZ2Ugc2l6ZSBkb2VzIGl0IHN1cHBvcnQ/CisgKiAtIFNwZWNpYWwgZmxhZ3MgKDE2IGJpdCBhZGRyZXNzZXMsIHJlYWRfb25seSwgd29ybGQgcmVhZGFibGUuLi4pPworICoKKyAqIElmIHlvdSBzZXQgdXAgYSBjdXN0b20gZWVwcm9tIHR5cGUsIHBsZWFzZSBkb3VibGUtY2hlY2sgdGhlIHBhcmFtZXRlcnMuCisgKiBFc3BlY2lhbGx5IHBhZ2Vfc2l6ZSBuZWVkcyBleHRyYSBjYXJlLCBhcyB5b3UgcmlzayBkYXRhIGxvc3MgaWYgeW91ciB2YWx1ZQorICogaXMgYmlnZ2VyIHRoYW4gd2hhdCB0aGUgY2hpcCBhY3R1YWxseSBzdXBwb3J0cyEKKyAqLworCitzdHJ1Y3QgYXQyNF9wbGF0Zm9ybV9kYXRhIHsKKwl1MzIJCWJ5dGVfbGVuOwkJLyogc2l6ZSAoc3VtIG9mIGFsbCBhZGRyKSAqLworCXUxNgkJcGFnZV9zaXplOwkJLyogZm9yIHdyaXRlcyAqLworCXU4CQlmbGFnczsKKyNkZWZpbmUgQVQyNF9GTEFHX0FERFIxNgkweDgwCS8qIGFkZHJlc3MgcG9pbnRlciBpcyAxNiBiaXQgKi8KKyNkZWZpbmUgQVQyNF9GTEFHX1JFQURPTkxZCTB4NDAJLyogc3lzZnMtZW50cnkgd2lsbCBiZSByZWFkLW9ubHkgKi8KKyNkZWZpbmUgQVQyNF9GTEFHX0lSVUdPCQkweDIwCS8qIHN5c2ZzLWVudHJ5IHdpbGwgYmUgd29ybGQtcmVhZGFibGUgKi8KKyNkZWZpbmUgQVQyNF9GTEFHX1RBS0U4QUREUgkweDEwCS8qIHRha2UgYWx3YXlzIDggYWRkcmVzc2VzICgyNGMwMCkgKi8KK307CisKKyNlbmRpZiAvKiBfTElOVVhfQVQyNF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lkZS5oIGIvaW5jbHVkZS9saW51eC9pZGUuaAppbmRleCA5OTE4NzcyLi5hYzRlZWIyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lkZS5oCisrKyBiL2luY2x1ZGUvbGludXgvaWRlLmgKQEAgLTE4OSw2ICsxODksMjEgQEAKIAlody0+aW9fcG9ydHMuY3RsX2FkZHIgPSBjdGxfYWRkcjsKIH0KIAorLyogZm9yIElERSBQQ0kgY29udHJvbGxlcnMgaW4gbGVnYWN5IG1vZGUsIHRlbXBvcmFyeSAqLworc3RhdGljIGlubGluZSBpbnQgX19pZGVfZGVmYXVsdF9pcnEodW5zaWduZWQgbG9uZyBiYXNlKQoreworCXN3aXRjaCAoYmFzZSkgeworI2lmZGVmIENPTkZJR19JQTY0CisJY2FzZSAweDFmMDogcmV0dXJuIGlzYV9pcnFfdG9fdmVjdG9yKDE0KTsKKwljYXNlIDB4MTcwOiByZXR1cm4gaXNhX2lycV90b192ZWN0b3IoMTUpOworI2Vsc2UKKwljYXNlIDB4MWYwOiByZXR1cm4gMTQ7CisJY2FzZSAweDE3MDogcmV0dXJuIDE1OworI2VuZGlmCisJfQorCXJldHVybiAwOworfQorCiAjaW5jbHVkZSA8YXNtL2lkZS5oPgogCiAjaWYgIWRlZmluZWQoTUFYX0hXSUZTKSB8fCBkZWZpbmVkKENPTkZJR19FTUJFRERFRCkKQEAgLTM0OSw3ICszNjQsNiBAQAogICAgICAgICB1OAl3Y2FjaGU7CQkvKiBzdGF0dXMgb2Ygd3JpdGUgY2FjaGUgKi8KIAl1OAlhY291c3RpYzsJLyogYWNvdXN0aWMgbWFuYWdlbWVudCAqLwogCXU4CW1lZGlhOwkJLyogZGlzaywgY2Ryb20sIHRhcGUsIGZsb3BweSwgLi4uICovCi0JdTgJY3RsOwkJLyogIm5vcm1hbCIgdmFsdWUgZm9yIENvbnRyb2wgcmVnaXN0ZXIgKi8KIAl1OAlyZWFkeV9zdGF0OwkvKiBtaW4gc3RhdHVzIHZhbHVlIGZvciBkcml2ZSByZWFkeSAqLwogCXU4CW11bHRfY291bnQ7CS8qIGN1cnJlbnQgbXVsdGlwbGUgc2VjdG9yIHNldHRpbmcgKi8KIAl1OAltdWx0X3JlcTsJLyogcmVxdWVzdGVkIG11bHRpcGxlIHNlY3RvciBzZXR0aW5nICovCkBAIC00NzgsNyArNDkyLDcgQEAKIAl2b2lkICgqaWRlX2RtYV9jbGVhcl9pcnEpKGlkZV9kcml2ZV90ICpkcml2ZSk7CiAKIAl2b2lkICgqT1VUQikodTggYWRkciwgdW5zaWduZWQgbG9uZyBwb3J0KTsKLQl2b2lkICgqT1VUQlNZTkMpKGlkZV9kcml2ZV90ICpkcml2ZSwgdTggYWRkciwgdW5zaWduZWQgbG9uZyBwb3J0KTsKKwl2b2lkICgqT1VUQlNZTkMpKHN0cnVjdCBod2lmX3MgKmh3aWYsIHU4IGFkZHIsIHVuc2lnbmVkIGxvbmcgcG9ydCk7CiAKIAl1OCAgKCpJTkIpKHVuc2lnbmVkIGxvbmcgcG9ydCk7CiAKQEAgLTUxNyw3ICs1MzEsNiBAQAogCXVuc2lnbmVkCXNlcmlhbGl6ZWQgOiAxOwkvKiBzZXJpYWxpemVkIGFsbCBjaGFubmVsIG9wZXJhdGlvbiAqLwogCXVuc2lnbmVkCXNoYXJpbmdfaXJxOiAxOwkvKiAxID0gc2hhcmluZyBpcnEgd2l0aCBhbm90aGVyIGh3aWYgKi8KIAl1bnNpZ25lZAlzZ19tYXBwZWQgIDogMTsJLyogc2dfdGFibGUgYW5kIHNnX25lbnRzIGFyZSByZWFkeSAqLwotCXVuc2lnbmVkCW1taW8gICAgICAgOiAxOyAvKiBob3N0IHVzZXMgTU1JTyAqLwogCiAJc3RydWN0IGRldmljZQkJZ2VuZGV2OwogCXN0cnVjdCBkZXZpY2UJCSpwb3J0ZGV2OwpAQCAtNTg5LDEyICs2MDIsMTMgQEAKIAlQQ19GTEFHX1NVUFBSRVNTX0VSUk9SCQk9ICgxIDw8IDEpLAogCVBDX0ZMQUdfV0FJVF9GT1JfRFNDCQk9ICgxIDw8IDIpLAogCVBDX0ZMQUdfRE1BX09LCQkJPSAoMSA8PCAzKSwKLQlQQ19GTEFHX0RNQV9SRUNPTU1FTkRFRAkJPSAoMSA8PCA0KSwKLQlQQ19GTEFHX0RNQV9JTl9QUk9HUkVTUwkJPSAoMSA8PCA1KSwKLQlQQ19GTEFHX0RNQV9FUlJPUgkJPSAoMSA8PCA2KSwKLQlQQ19GTEFHX1dSSVRJTkcJCQk9ICgxIDw8IDcpLAorCVBDX0ZMQUdfRE1BX0lOX1BST0dSRVNTCQk9ICgxIDw8IDQpLAorCVBDX0ZMQUdfRE1BX0VSUk9SCQk9ICgxIDw8IDUpLAorCVBDX0ZMQUdfV1JJVElORwkJCT0gKDEgPDwgNiksCiAJLyogY29tbWFuZCB0aW1lZCBvdXQgKi8KLQlQQ19GTEFHX1RJTUVET1VUCQk9ICgxIDw8IDgpLAorCVBDX0ZMQUdfVElNRURPVVQJCT0gKDEgPDwgNyksCisJUENfRkxBR19aSVBfRFJJVkUJCT0gKDEgPDwgOCksCisJUENfRkxBR19EUlFfSU5URVJSVVBUCQk9ICgxIDw8IDkpLAogfTsKIAogc3RydWN0IGlkZV9hdGFwaV9wYyB7CkBAIC02MjcsOCArNjQxLDggQEAKIAkgKiB0byBjaGFuZ2UvcmVtb3ZhbCBsYXRlci4KIAkgKi8KIAl1OCBwY19idWZbMjU2XTsKLQl2b2lkICgqaWRlZmxvcHB5X2NhbGxiYWNrKSAoaWRlX2RyaXZlX3QgKik7Ci0JaWRlX3N0YXJ0c3RvcF90ICgqaWRldGFwZV9jYWxsYmFjaykgKGlkZV9kcml2ZV90ICopOworCisJdm9pZCAoKmNhbGxiYWNrKShpZGVfZHJpdmVfdCAqKTsKIAogCS8qIGlkZXRhcGUgb25seSAqLwogCXN0cnVjdCBpZGV0YXBlX2JoICpiaDsKQEAgLTc5OCwxMCArODEyLDYgQEAKICNpZm5kZWYgX0lERV9DCiBleHRlcm4JaWRlX2h3aWZfdAlpZGVfaHdpZnNbXTsJCS8qIG1hc3RlciBkYXRhIHJlcG9zaXRvcnkgKi8KICNlbmRpZgotZXh0ZXJuIGludCBpZGVfbm9hY3BpOwotZXh0ZXJuIGludCBpZGVfYWNwaWd0ZjsKLWV4dGVybiBpbnQgaWRlX2FjcGlvbmJvb3Q7Ci1leHRlcm4gaW50IG5vYXV0b2RtYTsKIAogZXh0ZXJuIGludCBpZGVfdmxiX2NsazsKIGV4dGVybiBpbnQgaWRlX3BjaV9jbGs7CkBAIC04NDIsMjUgKzg1MiwxMiBAQAogCiBleHRlcm4gaWRlX3N0YXJ0c3RvcF90IGlkZV9kb19yZXNldCAoaWRlX2RyaXZlX3QgKik7CiAKLWV4dGVybiB2b2lkIGlkZV9pbml0X2RyaXZlX2NtZCAoc3RydWN0IHJlcXVlc3QgKnJxKTsKLQotLyoKLSAqICJhY3Rpb24iIHBhcmFtZXRlciB0eXBlIGZvciBpZGVfZG9fZHJpdmVfY21kKCkgYmVsb3cuCi0gKi8KLXR5cGVkZWYgZW51bSB7Ci0JaWRlX3dhaXQsCS8qIGluc2VydCBycSBhdCBlbmQgb2YgbGlzdCwgYW5kIHdhaXQgZm9yIGl0ICovCi0JaWRlX3ByZWVtcHQsCS8qIGluc2VydCBycSBpbiBmcm9udCBvZiBjdXJyZW50IHJlcXVlc3QgKi8KLQlpZGVfaGVhZF93YWl0LAkvKiBpbnNlcnQgcnEgaW4gZnJvbnQgb2YgY3VycmVudCByZXF1ZXN0IGFuZCB3YWl0IGZvciBpdCAqLwotCWlkZV9lbmQJCS8qIGluc2VydCBycSBhdCBlbmQgb2YgbGlzdCwgYnV0IGRvbid0IHdhaXQgZm9yIGl0ICovCi19IGlkZV9hY3Rpb25fdDsKLQotZXh0ZXJuIGludCBpZGVfZG9fZHJpdmVfY21kKGlkZV9kcml2ZV90ICosIHN0cnVjdCByZXF1ZXN0ICosIGlkZV9hY3Rpb25fdCk7CitleHRlcm4gdm9pZCBpZGVfZG9fZHJpdmVfY21kKGlkZV9kcml2ZV90ICosIHN0cnVjdCByZXF1ZXN0ICopOwogCiBleHRlcm4gdm9pZCBpZGVfZW5kX2RyaXZlX2NtZChpZGVfZHJpdmVfdCAqLCB1OCwgdTgpOwogCiBlbnVtIHsKIAlJREVfVEZMQUdfTEJBNDgJCQk9ICgxIDw8IDApLAotCUlERV9URkxBR19OT19TRUxFQ1RfTUFTSwk9ICgxIDw8IDEpLAogCUlERV9URkxBR19GTEFHR0VECQk9ICgxIDw8IDIpLAogCUlERV9URkxBR19PVVRfREFUQQkJPSAoMSA8PCAzKSwKIAlJREVfVEZMQUdfT1VUX0hPQl9GRUFUVVJFCT0gKDEgPDwgNCksCkBAIC05NjUsMTEgKzk2MiwyMyBAQAogdm9pZCBpZGVfdGZfZHVtcChjb25zdCBjaGFyICosIHN0cnVjdCBpZGVfdGFza2ZpbGUgKik7CiAKIGV4dGVybiB2b2lkIFNFTEVDVF9EUklWRShpZGVfZHJpdmVfdCAqKTsKK3ZvaWQgU0VMRUNUX01BU0soaWRlX2RyaXZlX3QgKiwgaW50KTsKIAogZXh0ZXJuIGludCBkcml2ZV9pc19yZWFkeShpZGVfZHJpdmVfdCAqKTsKIAogdm9pZCBpZGVfcGt0Y21kX3RmX2xvYWQoaWRlX2RyaXZlX3QgKiwgdTMyLCB1MTYsIHU4KTsKIAoraWRlX3N0YXJ0c3RvcF90IGlkZV9wY19pbnRyKGlkZV9kcml2ZV90ICpkcml2ZSwgc3RydWN0IGlkZV9hdGFwaV9wYyAqcGMsCisJaWRlX2hhbmRsZXJfdCAqaGFuZGxlciwgdW5zaWduZWQgaW50IHRpbWVvdXQsIGlkZV9leHBpcnlfdCAqZXhwaXJ5LAorCXZvaWQgKCp1cGRhdGVfYnVmZmVycykoaWRlX2RyaXZlX3QgKiwgc3RydWN0IGlkZV9hdGFwaV9wYyAqKSwKKwl2b2lkICgqcmV0cnlfcGMpKGlkZV9kcml2ZV90ICopLCB2b2lkICgqZHNjX2hhbmRsZSkoaWRlX2RyaXZlX3QgKiksCisJdm9pZCAoKmlvX2J1ZmZlcnMpKGlkZV9kcml2ZV90ICosIHN0cnVjdCBpZGVfYXRhcGlfcGMgKiwgdW5zaWduZWQgaW50LAorCQkJICAgaW50KSk7CitpZGVfc3RhcnRzdG9wX3QgaWRlX3RyYW5zZmVyX3BjKGlkZV9kcml2ZV90ICosIHN0cnVjdCBpZGVfYXRhcGlfcGMgKiwKKwkJCQlpZGVfaGFuZGxlcl90ICosIHVuc2lnbmVkIGludCwgaWRlX2V4cGlyeV90ICopOworaWRlX3N0YXJ0c3RvcF90IGlkZV9pc3N1ZV9wYyhpZGVfZHJpdmVfdCAqLCBzdHJ1Y3QgaWRlX2F0YXBpX3BjICosCisJCQkgICAgIGlkZV9oYW5kbGVyX3QgKiwgdW5zaWduZWQgaW50LCBpZGVfZXhwaXJ5X3QgKik7CisKIGlkZV9zdGFydHN0b3BfdCBkb19yd190YXNrZmlsZShpZGVfZHJpdmVfdCAqLCBpZGVfdGFza190ICopOwogCiB2b2lkIHRhc2tfZW5kX3JlcXVlc3QoaWRlX2RyaXZlX3QgKiwgc3RydWN0IHJlcXVlc3QgKiwgdTgpOwpAQCAtOTgxLDggKzk5MCw2IEBACiBpbnQgaWRlX2NtZF9pb2N0bChpZGVfZHJpdmVfdCAqLCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwogaW50IGlkZV90YXNrX2lvY3RsKGlkZV9kcml2ZV90ICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CiAKLWV4dGVybiBpbnQgc3lzdGVtX2J1c19jbG9jayh2b2lkKTsKLQogZXh0ZXJuIGludCBpZGVfZHJpdmVpZF91cGRhdGUoaWRlX2RyaXZlX3QgKik7CiBleHRlcm4gaW50IGlkZV9jb25maWdfZHJpdmVfc3BlZWQoaWRlX2RyaXZlX3QgKiwgdTgpOwogZXh0ZXJuIHU4IGVpZ2h0eV9uaW50eV90aHJlZSAoaWRlX2RyaXZlX3QgKik7CkBAIC0xMzM0LDcgKzEzNDEsOCBAQAogewogCWlkZV9od2lmX3QgKmh3aWYgPSBkcml2ZS0+aHdpZjsKIAotCWh3aWYtPk9VVEIoZHJpdmUtPmN0bCB8IChvbiA/IDAgOiAyKSwgaHdpZi0+aW9fcG9ydHMuY3RsX2FkZHIpOworCWh3aWYtPk9VVEJTWU5DKGh3aWYsIEFUQV9ERVZDVExfT0JTIHwgKG9uID8gMCA6IDIpLAorCQkgICAgICAgaHdpZi0+aW9fcG9ydHMuY3RsX2FkZHIpOwogfQogCiBzdGF0aWMgaW5saW5lIHU4IGlkZV9yZWFkX3N0YXR1cyhpZGVfZHJpdmVfdCAqZHJpdmUpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2loZXguaCBiL2luY2x1ZGUvbGludXgvaWhleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYWFjZTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L2loZXguaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29tcGFjdCBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgaWhleCByZWNvcmRzLiBTb21lIGRldmljZXMgbmVlZCB0aGVpcgorICogZmlybXdhcmUgbG9hZGVkIGluIHN0cmFuZ2Ugb3JkZXJzIHJhdGhlciB0aGFuIGEgc2luZ2xlIGJpZyBibG9iLCBidXQKKyAqIGFjdHVhbGx5IHBhcnNpbmcgaWhleC1hcy10ZXh0IHdpdGhpbiB0aGUga2VybmVsIHNlZW1zIHNpbGx5LiBUaHVzLC4uLgorICovCisKKyNpZm5kZWYgX19MSU5VWF9JSEVYX0hfXworI2RlZmluZSBfX0xJTlVYX0lIRVhfSF9fCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisKKy8qIEludGVsIEhFWCBmaWxlcyBhY3R1YWxseSBsaW1pdCB0aGUgbGVuZ3RoIHRvIDI1NiBieXRlcywgYnV0IHdlIGhhdmUKKyAgIGRyaXZlcnMgd2hpY2ggd291bGQgYmVuZWZpdCBmcm9tIHVzaW5nIHNlcGFyYXRlIHJlY29yZHMgd2hpY2ggYXJlCisgICBsb25nZXIgdGhhbiB0aGF0LCBzbyB3ZSBleHRlbmQgdG8gMTYgYml0cyBvZiBsZW5ndGggKi8KK3N0cnVjdCBpaGV4X2JpbnJlYyB7CisJX19iZTMyIGFkZHI7CisJX19iZTE2IGxlbjsKKwl1aW50OF90IGRhdGFbMF07Cit9IF9fYXR0cmlidXRlX18oKGFsaWduZWQoNCkpKTsKKworLyogRmluZCB0aGUgbmV4dCByZWNvcmQsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIDQtYnl0ZSBhbGlnbm1lbnQgKi8KK3N0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICoKK2loZXhfbmV4dF9iaW5yZWMoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWMpCit7CisJaW50IG5leHQgPSAoKGJlMTZfdG9fY3B1KHJlYy0+bGVuKSArIDUpICYgfjMpIC0gMjsKKwlyZWMgPSAodm9pZCAqKSZyZWMtPmRhdGFbbmV4dF07CisKKwlyZXR1cm4gYmUxNl90b19jcHUocmVjLT5sZW4pID8gcmVjIDogTlVMTDsKK30KKworLyogQ2hlY2sgdGhhdCBpaGV4X25leHRfYmlucmVjKCkgd29uJ3QgdGFrZSB1cyBvZmYgdGhlIGVuZCBvZiB0aGUgaW1hZ2UuLi4gKi8KK3N0YXRpYyBpbmxpbmUgaW50IGloZXhfdmFsaWRhdGVfZncoY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdykKK3sKKwljb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKKwlzaXplX3Qgb2ZzID0gMDsKKworCXdoaWxlIChvZnMgPD0gZnctPnNpemUgLSBzaXplb2YoKnJlYykpIHsKKwkJcmVjID0gKHZvaWQgKikmZnctPmRhdGFbb2ZzXTsKKworCQkvKiBaZXJvIGxlbmd0aCBtYXJrcyBlbmQgb2YgcmVjb3JkcyAqLworCQlpZiAoIWJlMTZfdG9fY3B1KHJlYy0+bGVuKSkKKwkJCXJldHVybiAwOworCisJCS8qIFBvaW50IHRvIG5leHQgcmVjb3JkLi4uICovCisJCW9mcyArPSAoc2l6ZW9mKCpyZWMpICsgYmUxNl90b19jcHUocmVjLT5sZW4pICsgMykgJiB+MzsKKwl9CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKKy8qIFJlcXVlc3QgZmlybXdhcmUgYW5kIHZhbGlkYXRlIGl0IHNvIHRoYXQgd2UgY2FuIHRydXN0IHdlIHdvbid0CisgKiBydW4gb2ZmIHRoZSBlbmQgd2hpbGUgcmVhZGluZyByZWNvcmRzLi4uICovCitzdGF0aWMgaW5saW5lIGludCByZXF1ZXN0X2loZXhfZmlybXdhcmUoY29uc3Qgc3RydWN0IGZpcm13YXJlICoqZncsCisJCQkJCWNvbnN0IGNoYXIgKmZ3X25hbWUsCisJCQkJCXN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmxmdzsKKwlpbnQgcmV0OworCisJcmV0ID0gcmVxdWVzdF9maXJtd2FyZSgmbGZ3LCBmd19uYW1lLCBkZXYpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisJcmV0ID0gaWhleF92YWxpZGF0ZV9mdyhsZncpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJGaXJtd2FyZSBcIiVzXCIgbm90IHZhbGlkIElIRVggcmVjb3Jkc1xuIiwKKwkJCWZ3X25hbWUpOworCQlyZWxlYXNlX2Zpcm13YXJlKGxmdyk7CisJCXJldHVybiByZXQ7CisJfQorCSpmdyA9IGxmdzsKKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBfX0xJTlVYX0lIRVhfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2luZXRfbHJvLmggYi9pbmNsdWRlL2xpbnV4L2luZXRfbHJvLmgKaW5kZXggODAzMzViNy4uYzQzMzVmYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pbmV0X2xyby5oCisrKyBiL2luY2x1ZGUvbGludXgvaW5ldF9scm8uaApAQCAtODQsNyArODQsMTEgQEAKIAkJCQkgICAgZnJvbSByZWNlaXZlZCBwYWNrZXRzIGFuZCBldGggcHJvdG9jb2wKIAkJCQkgICAgaXMgc3RpbGwgRVRIX1BfODAyMVEgKi8KIAotCXUzMiBpcF9zdW1tZWQ7ICAgICAgLyogU2V0IGluIG5vbiBnZW5lcmF0ZWQgU0tCcyBpbiBwYWdlIG1vZGUgKi8KKwkvKgorCSAqIFNldCBmb3IgZ2VuZXJhdGVkIFNLQnMgdGhhdCBhcmUgbm90IGFkZGVkIHRvCisJICogdGhlIGZyYWcgbGlzdCBpbiBmcmFnbWVudGVkIG1vZGUKKwkgKi8KKwl1MzIgaXBfc3VtbWVkOwogCXUzMiBpcF9zdW1tZWRfYWdncjsgLyogU2V0IGluIGFnZ3JlZ2F0ZWQgU0tCczogQ0hFQ0tTVU1fVU5ORUNFU1NBUlkKIAkJCSAgICAgKiBvciBDSEVDS1NVTV9OT05FICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW5wdXQuaCBiL2luY2x1ZGUvbGludXgvaW5wdXQuaAppbmRleCBlMDc1YzRiLi5kMTUwYzU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lucHV0LmgKKysrIGIvaW5jbHVkZS9saW51eC9pbnB1dC5oCkBAIC01MzQsOCArNTM0LDggQEAKIAogI2RlZmluZSBLRVlfRlJBTUVCQUNLCQkweDFiNAkvKiBDb25zdW1lciAtIHRyYW5zcG9ydCBjb250cm9scyAqLwogI2RlZmluZSBLRVlfRlJBTUVGT1JXQVJECTB4MWI1Ci0KICNkZWZpbmUgS0VZX0NPTlRFWFRfTUVOVQkweDFiNgkvKiBHZW5EZXNjIC0gc3lzdGVtIGNvbnRleHQgbWVudSAqLworI2RlZmluZSBLRVlfTUVESUFfUkVQRUFUCTB4MWI3CS8qIENvbnN1bWVyIC0gdHJhbnNwb3J0IGNvbnRyb2wgKi8KIAogI2RlZmluZSBLRVlfREVMX0VPTAkJMHgxYzAKICNkZWZpbmUgS0VZX0RFTF9FT1MJCTB4MWMxCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2ludGVycnVwdC5oIGIvaW5jbHVkZS9saW51eC9pbnRlcnJ1cHQuaAppbmRleCBmMWZjNzQ3Li42MmFhNGY4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2ludGVycnVwdC5oCisrKyBiL2luY2x1ZGUvbGludXgvaW50ZXJydXB0LmgKQEAgLTEwNCw4ICsxMDQsMTEgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX1NNUCkgJiYgZGVmaW5lZChDT05GSUdfR0VORVJJQ19IQVJESVJRUykKIAorZXh0ZXJuIGNwdW1hc2tfdCBpcnFfZGVmYXVsdF9hZmZpbml0eTsKKwogZXh0ZXJuIGludCBpcnFfc2V0X2FmZmluaXR5KHVuc2lnbmVkIGludCBpcnEsIGNwdW1hc2tfdCBjcHVtYXNrKTsKIGV4dGVybiBpbnQgaXJxX2Nhbl9zZXRfYWZmaW5pdHkodW5zaWduZWQgaW50IGlycSk7CitleHRlcm4gaW50IGlycV9zZWxlY3RfYWZmaW5pdHkodW5zaWduZWQgaW50IGlycSk7CiAKICNlbHNlIC8qIENPTkZJR19TTVAgKi8KIApAQCAtMTE5LDYgKzEyMiw4IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGlycV9zZWxlY3RfYWZmaW5pdHkodW5zaWduZWQgaW50IGlycSkgIHsgcmV0dXJuIDA7IH0KKwogI2VuZGlmIC8qIENPTkZJR19TTVAgJiYgQ09ORklHX0dFTkVSSUNfSEFSRElSUVMgKi8KIAogI2lmZGVmIENPTkZJR19HRU5FUklDX0hBUkRJUlFTCkBAIC0yODUsMTIgKzI5MCwxMSBAQAogc3RydWN0IHNvZnRpcnFfYWN0aW9uCiB7CiAJdm9pZAkoKmFjdGlvbikoc3RydWN0IHNvZnRpcnFfYWN0aW9uICopOwotCXZvaWQJKmRhdGE7CiB9OwogCiBhc21saW5rYWdlIHZvaWQgZG9fc29mdGlycSh2b2lkKTsKIGFzbWxpbmthZ2Ugdm9pZCBfX2RvX3NvZnRpcnEodm9pZCk7Ci1leHRlcm4gdm9pZCBvcGVuX3NvZnRpcnEoaW50IG5yLCB2b2lkICgqYWN0aW9uKShzdHJ1Y3Qgc29mdGlycV9hY3Rpb24qKSwgdm9pZCAqZGF0YSk7CitleHRlcm4gdm9pZCBvcGVuX3NvZnRpcnEoaW50IG5yLCB2b2lkICgqYWN0aW9uKShzdHJ1Y3Qgc29mdGlycV9hY3Rpb24gKikpOwogZXh0ZXJuIHZvaWQgc29mdGlycV9pbml0KHZvaWQpOwogI2RlZmluZSBfX3JhaXNlX3NvZnRpcnFfaXJxb2ZmKG5yKSBkbyB7IG9yX3NvZnRpcnFfcGVuZGluZygxVUwgPDwgKG5yKSk7IH0gd2hpbGUgKDApCiBleHRlcm4gdm9pZCByYWlzZV9zb2Z0aXJxX2lycW9mZih1bnNpZ25lZCBpbnQgbnIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaCBiL2luY2x1ZGUvbGludXgvaW9jb250ZXh0LmgKaW5kZXggMmI3YTExOC4uMDhiOTg3YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lvY29udGV4dC5oCkBAIC05OSw0ICs5OSwyMiBAQAogCXJldHVybiBOVUxMOwogfQogCisjaWZkZWYgQ09ORklHX0JMT0NLCitpbnQgcHV0X2lvX2NvbnRleHQoc3RydWN0IGlvX2NvbnRleHQgKmlvYyk7Cit2b2lkIGV4aXRfaW9fY29udGV4dCh2b2lkKTsKK3N0cnVjdCBpb19jb250ZXh0ICpnZXRfaW9fY29udGV4dChnZnBfdCBnZnBfZmxhZ3MsIGludCBub2RlKTsKK3N0cnVjdCBpb19jb250ZXh0ICphbGxvY19pb19jb250ZXh0KGdmcF90IGdmcF9mbGFncywgaW50IG5vZGUpOwordm9pZCBjb3B5X2lvX2NvbnRleHQoc3RydWN0IGlvX2NvbnRleHQgKipwZHN0LCBzdHJ1Y3QgaW9fY29udGV4dCAqKnBzcmMpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBleGl0X2lvX2NvbnRleHQodm9pZCkKK3sKK30KKworc3RydWN0IGlvX2NvbnRleHQ7CitzdGF0aWMgaW5saW5lIGludCBwdXRfaW9fY29udGV4dChzdHJ1Y3QgaW9fY29udGV4dCAqaW9jKQoreworCXJldHVybiAxOworfQorI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pcnEuaCBiL2luY2x1ZGUvbGludXgvaXJxLmgKaW5kZXggNTUyZTBlYy4uOGNjYjQ2MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pcnEuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lycS5oCkBAIC0yNDQsMTUgKzI0NCw2IEBACiB9CiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19BVVRPX0lSUV9BRkZJTklUWQotZXh0ZXJuIGludCBzZWxlY3Rfc21wX2FmZmluaXR5KHVuc2lnbmVkIGludCBpcnEpOwotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IHNlbGVjdF9zbXBfYWZmaW5pdHkodW5zaWduZWQgaW50IGlycSkKLXsKLQlyZXR1cm4gMTsKLX0KLSNlbmRpZgotCiBleHRlcm4gaW50IG5vX2lycV9hZmZpbml0eTsKIAogc3RhdGljIGlubGluZSBpbnQgaXJxX2JhbGFuY2luZ19kaXNhYmxlZCh1bnNpZ25lZCBpbnQgaXJxKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pcnFmbGFncy5oIGIvaW5jbHVkZS9saW51eC9pcnFmbGFncy5oCmluZGV4IGU2MDBjNGUuLjJiMWMyZTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaXJxZmxhZ3MuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lycWZsYWdzLmgKQEAgLTEyLDEwICsxMiwxMCBAQAogI2RlZmluZSBfTElOVVhfVFJBQ0VfSVJRRkxBR1NfSAogCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0gIGV4dGVybiB2b2lkIHRyYWNlX2hhcmRpcnFzX29uKHZvaWQpOwotICBleHRlcm4gdm9pZCB0cmFjZV9oYXJkaXJxc19vZmYodm9pZCk7CiAgIGV4dGVybiB2b2lkIHRyYWNlX3NvZnRpcnFzX29uKHVuc2lnbmVkIGxvbmcgaXApOwogICBleHRlcm4gdm9pZCB0cmFjZV9zb2Z0aXJxc19vZmYodW5zaWduZWQgbG9uZyBpcCk7CisgIGV4dGVybiB2b2lkIHRyYWNlX2hhcmRpcnFzX29uKHZvaWQpOworICBleHRlcm4gdm9pZCB0cmFjZV9oYXJkaXJxc19vZmYodm9pZCk7CiAjIGRlZmluZSB0cmFjZV9oYXJkaXJxX2NvbnRleHQocCkJKChwKS0+aGFyZGlycV9jb250ZXh0KQogIyBkZWZpbmUgdHJhY2Vfc29mdGlycV9jb250ZXh0KHApCSgocCktPnNvZnRpcnFfY29udGV4dCkKICMgZGVmaW5lIHRyYWNlX2hhcmRpcnFzX2VuYWJsZWQocCkJKChwKS0+aGFyZGlycXNfZW5hYmxlZCkKQEAgLTQxLDYgKzQxLDE1IEBACiAjIGRlZmluZSBJTklUX1RSQUNFX0lSUUZMQUdTCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoQ09ORklHX0lSUVNPRkZfVFJBQ0VSKSB8fCBcCisJZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpCisgZXh0ZXJuIHZvaWQgc3RvcF9jcml0aWNhbF90aW1pbmdzKHZvaWQpOworIGV4dGVybiB2b2lkIHN0YXJ0X2NyaXRpY2FsX3RpbWluZ3Modm9pZCk7CisjZWxzZQorIyBkZWZpbmUgc3RvcF9jcml0aWNhbF90aW1pbmdzKCkgZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgc3RhcnRfY3JpdGljYWxfdGltaW5ncygpIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQKIAogI2luY2x1ZGUgPGFzbS9pcnFmbGFncy5oPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9qYmQyLmggYi9pbmNsdWRlL2xpbnV4L2piZDIuaAppbmRleCBkMTQ3ZjBmLi4zZGQyMDkwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2piZDIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2piZDIuaApAQCAtMTY4LDYgKzE2OCw4IEBACiAJdW5zaWduZWQgY2hhciAgIGhfY2hrc3VtX3NpemU7CiAJdW5zaWduZWQgY2hhciAJaF9wYWRkaW5nWzJdOwogCV9fYmUzMiAJCWhfY2hrc3VtW0pCRDJfQ0hFQ0tTVU1fQllURVNdOworCV9fYmU2NAkJaF9jb21taXRfc2VjOworCV9fYmUzMgkJaF9jb21taXRfbnNlYzsKIH07CiAKIC8qCkBAIC0zNzksNiArMzgxLDM4IEBACiAJYml0X3NwaW5fdW5sb2NrKEJIX0pvdXJuYWxIZWFkLCAmYmgtPmJfc3RhdGUpOwogfQogCisvKiBGbGFncyBpbiBqYmRfaW5vZGUtPmlfZmxhZ3MgKi8KKyNkZWZpbmUgX19KSV9DT01NSVRfUlVOTklORyAwCisvKiBDb21taXQgb2YgdGhlIGlub2RlIGRhdGEgaW4gcHJvZ3Jlc3MuIFdlIHVzZSB0aGlzIGZsYWcgdG8gcHJvdGVjdCB1cyBmcm9tCisgKiBjb25jdXJyZW50IGRlbGV0aW9uIG9mIGlub2RlLiBXZSBjYW5ub3QgdXNlIHJlZmVyZW5jZSB0byBpbm9kZSBmb3IgdGhpcworICogc2luY2Ugd2UgY2Fubm90IGFmZm9yZCBkb2luZyBsYXN0IGlwdXQoKSBvbiBiZWhhbGYgb2Yga2pvdXJuYWxkCisgKi8KKyNkZWZpbmUgSklfQ09NTUlUX1JVTk5JTkcgKDEgPDwgX19KSV9DT01NSVRfUlVOTklORykKKworLyoqCisgKiBzdHJ1Y3QgamJkX2lub2RlIGlzIHRoZSBzdHJ1Y3R1cmUgbGlua2luZyBpbm9kZXMgaW4gb3JkZXJlZCBtb2RlCisgKiAgIHByZXNlbnQgaW4gYSB0cmFuc2FjdGlvbiBzbyB0aGF0IHdlIGNhbiBzeW5jIHRoZW0gZHVyaW5nIGNvbW1pdC4KKyAqLworc3RydWN0IGpiZDJfaW5vZGUgeworCS8qIFdoaWNoIHRyYW5zYWN0aW9uIGRvZXMgdGhpcyBpbm9kZSBiZWxvbmcgdG8/IEVpdGhlciB0aGUgcnVubmluZworCSAqIHRyYW5zYWN0aW9uIG9yIHRoZSBjb21taXR0aW5nIG9uZS4gW2pfbGlzdF9sb2NrXSAqLworCXRyYW5zYWN0aW9uX3QgKmlfdHJhbnNhY3Rpb247CisKKwkvKiBQb2ludGVyIHRvIHRoZSBydW5uaW5nIHRyYW5zYWN0aW9uIG1vZGlmeWluZyBpbm9kZSdzIGRhdGEgaW4gY2FzZQorCSAqIHRoZXJlIGlzIGFscmVhZHkgYSBjb21taXR0aW5nIHRyYW5zYWN0aW9uIHRvdWNoaW5nIGl0LiBbal9saXN0X2xvY2tdICovCisJdHJhbnNhY3Rpb25fdCAqaV9uZXh0X3RyYW5zYWN0aW9uOworCisJLyogTGlzdCBvZiBpbm9kZXMgaW4gdGhlIGlfdHJhbnNhY3Rpb24gW2pfbGlzdF9sb2NrXSAqLworCXN0cnVjdCBsaXN0X2hlYWQgaV9saXN0OworCisJLyogVkZTIGlub2RlIHRoaXMgaW5vZGUgYmVsb25ncyB0byBbY29uc3RhbnQgZHVyaW5nIHRoZSBsaWZldGltZQorCSAqIG9mIHRoZSBzdHJ1Y3R1cmVdICovCisJc3RydWN0IGlub2RlICppX3Zmc19pbm9kZTsKKworCS8qIEZsYWdzIG9mIGlub2RlIFtqX2xpc3RfbG9ja10gKi8KKwl1bnNpZ25lZCBpbnQgaV9mbGFnczsKK307CisKIHN0cnVjdCBqYmQyX3Jldm9rZV90YWJsZV9zOwogCiAvKioKQEAgLTUwOSwyNCArNTQzLDEyIEBACiAJc3RydWN0IGpvdXJuYWxfaGVhZAkqdF9yZXNlcnZlZF9saXN0OwogCiAJLyoKLQkgKiBEb3VibHktbGlua2VkIGNpcmN1bGFyIGxpc3Qgb2YgYWxsIGJ1ZmZlcnMgdW5kZXIgd3JpdGVvdXQgZHVyaW5nCi0JICogY29tbWl0IFtqX2xpc3RfbG9ja10KLQkgKi8KLQlzdHJ1Y3Qgam91cm5hbF9oZWFkCSp0X2xvY2tlZF9saXN0OwotCi0JLyoKIAkgKiBEb3VibHktbGlua2VkIGNpcmN1bGFyIGxpc3Qgb2YgYWxsIG1ldGFkYXRhIGJ1ZmZlcnMgb3duZWQgYnkgdGhpcwogCSAqIHRyYW5zYWN0aW9uIFtqX2xpc3RfbG9ja10KIAkgKi8KIAlzdHJ1Y3Qgam91cm5hbF9oZWFkCSp0X2J1ZmZlcnM7CiAKIAkvKgotCSAqIERvdWJseS1saW5rZWQgY2lyY3VsYXIgbGlzdCBvZiBhbGwgZGF0YSBidWZmZXJzIHN0aWxsIHRvIGJlCi0JICogZmx1c2hlZCBiZWZvcmUgdGhpcyB0cmFuc2FjdGlvbiBjYW4gYmUgY29tbWl0dGVkIFtqX2xpc3RfbG9ja10KLQkgKi8KLQlzdHJ1Y3Qgam91cm5hbF9oZWFkCSp0X3N5bmNfZGF0YWxpc3Q7Ci0KLQkvKgogCSAqIERvdWJseS1saW5rZWQgY2lyY3VsYXIgbGlzdCBvZiBhbGwgZm9yZ2V0IGJ1ZmZlcnMgKHN1cGVyc2VkZWQKIAkgKiBidWZmZXJzIHdoaWNoIHdlIGNhbiB1bi1jaGVja3BvaW50IG9uY2UgdGhpcyB0cmFuc2FjdGlvbiBjb21taXRzKQogCSAqIFtqX2xpc3RfbG9ja10KQEAgLTU2NSw2ICs1ODcsMTIgQEAKIAlzdHJ1Y3Qgam91cm5hbF9oZWFkCSp0X2xvZ19saXN0OwogCiAJLyoKKwkgKiBMaXN0IG9mIGlub2RlcyB3aG9zZSBkYXRhIHdlJ3ZlIG1vZGlmaWVkIGluIGRhdGE9b3JkZXJlZCBtb2RlLgorCSAqIFtqX2xpc3RfbG9ja10KKwkgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkCXRfaW5vZGVfbGlzdDsKKworCS8qCiAJICogUHJvdGVjdHMgaW5mbyByZWxhdGVkIHRvIGhhbmRsZXMKIAkgKi8KIAlzcGlubG9ja190CQl0X2hhbmRsZV9sb2NrOwpAQCAtMTAwNCw3ICsxMDMyLDYgQEAKIGV4dGVybiBpbnQJIGpiZDJfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZV90ICosIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKIGV4dGVybiBpbnQJIGpiZDJfam91cm5hbF9nZXRfY3JlYXRlX2FjY2VzcyAoaGFuZGxlX3QgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICopOwogZXh0ZXJuIGludAkgamJkMl9qb3VybmFsX2dldF91bmRvX2FjY2VzcyhoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7Ci1leHRlcm4gaW50CSBqYmQyX2pvdXJuYWxfZGlydHlfZGF0YSAoaGFuZGxlX3QgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICopOwogZXh0ZXJuIGludAkgamJkMl9qb3VybmFsX2RpcnR5X21ldGFkYXRhIChoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7CiBleHRlcm4gdm9pZAkgamJkMl9qb3VybmFsX3JlbGVhc2VfYnVmZmVyIChoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7CiBleHRlcm4gaW50CSBqYmQyX2pvdXJuYWxfZm9yZ2V0IChoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7CkBAIC0xMDQ0LDYgKzEwNzEsMTAgQEAKIGV4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2NsZWFyX2VyciAgKGpvdXJuYWxfdCAqKTsKIGV4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2JtYXAoam91cm5hbF90ICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZyAqKTsKIGV4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2ZvcmNlX2NvbW1pdChqb3VybmFsX3QgKik7CitleHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9maWxlX2lub2RlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBqYmQyX2lub2RlICppbm9kZSk7CitleHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9iZWdpbl9vcmRlcmVkX3RydW5jYXRlKHN0cnVjdCBqYmQyX2lub2RlICppbm9kZSwgbG9mZl90IG5ld19zaXplKTsKK2V4dGVybiB2b2lkCSAgIGpiZDJfam91cm5hbF9pbml0X2piZF9pbm9kZShzdHJ1Y3QgamJkMl9pbm9kZSAqamlub2RlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKK2V4dGVybiB2b2lkCSAgIGpiZDJfam91cm5hbF9yZWxlYXNlX2piZF9pbm9kZShqb3VybmFsX3QgKmpvdXJuYWwsIHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUpOwogCiAvKgogICogam91cm5hbF9oZWFkIG1hbmFnZW1lbnQKQEAgLTExNzksMTUgKzEyMTAsMTMgQEAKIAogLyogam91cm5hbGluZyBidWZmZXIgdHlwZXMgKi8KICNkZWZpbmUgQkpfTm9uZQkJMAkvKiBOb3Qgam91cm5hbGVkICovCi0jZGVmaW5lIEJKX1N5bmNEYXRhCTEJLyogTm9ybWFsIGRhdGE6IGZsdXNoIGJlZm9yZSBjb21taXQgKi8KLSNkZWZpbmUgQkpfTWV0YWRhdGEJMgkvKiBOb3JtYWwgam91cm5hbGVkIG1ldGFkYXRhICovCi0jZGVmaW5lIEJKX0ZvcmdldAkzCS8qIEJ1ZmZlciBzdXBlcnNlZGVkIGJ5IHRoaXMgdHJhbnNhY3Rpb24gKi8KLSNkZWZpbmUgQkpfSU8JCTQJLyogQnVmZmVyIGlzIGZvciB0ZW1wb3JhcnkgSU8gdXNlICovCi0jZGVmaW5lIEJKX1NoYWRvdwk1CS8qIEJ1ZmZlciBjb250ZW50cyBiZWluZyBzaGFkb3dlZCB0byB0aGUgbG9nICovCi0jZGVmaW5lIEJKX0xvZ0N0bAk2CS8qIEJ1ZmZlciBjb250YWlucyBsb2cgZGVzY3JpcHRvcnMgKi8KLSNkZWZpbmUgQkpfUmVzZXJ2ZWQJNwkvKiBCdWZmZXIgaXMgcmVzZXJ2ZWQgZm9yIGFjY2VzcyBieSBqb3VybmFsICovCi0jZGVmaW5lIEJKX0xvY2tlZAk4CS8qIExvY2tlZCBmb3IgSS9PIGR1cmluZyBjb21taXQgKi8KLSNkZWZpbmUgQkpfVHlwZXMJOQorI2RlZmluZSBCSl9NZXRhZGF0YQkxCS8qIE5vcm1hbCBqb3VybmFsZWQgbWV0YWRhdGEgKi8KKyNkZWZpbmUgQkpfRm9yZ2V0CTIJLyogQnVmZmVyIHN1cGVyc2VkZWQgYnkgdGhpcyB0cmFuc2FjdGlvbiAqLworI2RlZmluZSBCSl9JTwkJMwkvKiBCdWZmZXIgaXMgZm9yIHRlbXBvcmFyeSBJTyB1c2UgKi8KKyNkZWZpbmUgQkpfU2hhZG93CTQJLyogQnVmZmVyIGNvbnRlbnRzIGJlaW5nIHNoYWRvd2VkIHRvIHRoZSBsb2cgKi8KKyNkZWZpbmUgQkpfTG9nQ3RsCTUJLyogQnVmZmVyIGNvbnRhaW5zIGxvZyBkZXNjcmlwdG9ycyAqLworI2RlZmluZSBCSl9SZXNlcnZlZAk2CS8qIEJ1ZmZlciBpcyByZXNlcnZlZCBmb3IgYWNjZXNzIGJ5IGpvdXJuYWwgKi8KKyNkZWZpbmUgQkpfVHlwZXMJNwogCiBleHRlcm4gaW50IGpiZF9ibG9ja3NfcGVyX3BhZ2Uoc3RydWN0IGlub2RlICppbm9kZSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva2VybmVsLmggYi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oCmluZGV4IDc5MmJmMGEuLmY5Y2Q3YTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva2VybmVsLmgKKysrIGIvaW5jbHVkZS9saW51eC9rZXJuZWwuaApAQCAtNDYsNiArNDYsOSBAQAogI2RlZmluZSBESVZfUk9VTkRfVVAobixkKSAoKChuKSArIChkKSAtIDEpIC8gKGQpKQogI2RlZmluZSByb3VuZHVwKHgsIHkpICgoKCh4KSArICgoeSkgLSAxKSkgLyAoeSkpICogKHkpKQogCisjZGVmaW5lIF9SRVRfSVBfCQkodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkKKyNkZWZpbmUgX1RISVNfSVBfICAoeyBfX2xhYmVsX18gX19oZXJlOyBfX2hlcmU6ICh1bnNpZ25lZCBsb25nKSYmX19oZXJlOyB9KQorCiAjaWZkZWYgQ09ORklHX0xCRAogIyBpbmNsdWRlIDxhc20vZGl2NjQuaD4KICMgZGVmaW5lIHNlY3Rvcl9kaXYoYSwgYikgZG9fZGl2KGEsIGIpCkBAIC0xODQsOSArMTg3LDYgQEAKIAlfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChwcmludGYsIDEsIDApKSk7CiBhc21saW5rYWdlIGludCBwcmludGsoY29uc3QgY2hhciAqIGZtdCwgLi4uKQogCV9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKSBfX2NvbGQ7Ci1leHRlcm4gaW50IGxvZ19idWZfZ2V0X2xlbih2b2lkKTsKLWV4dGVybiBpbnQgbG9nX2J1Zl9yZWFkKGludCBpZHgpOwotZXh0ZXJuIGludCBsb2dfYnVmX2NvcHkoY2hhciAqZGVzdCwgaW50IGlkeCwgaW50IGxlbik7CiAKIGV4dGVybiBpbnQgcHJpbnRrX3JhdGVsaW1pdF9qaWZmaWVzOwogZXh0ZXJuIGludCBwcmludGtfcmF0ZWxpbWl0X2J1cnN0OwpAQCAtMjAyLDkgKzIwMiw2IEBACiBzdGF0aWMgaW5saW5lIGludCBwcmludGsoY29uc3QgY2hhciAqcywgLi4uKQogCV9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKTsKIHN0YXRpYyBpbmxpbmUgaW50IF9fY29sZCBwcmludGsoY29uc3QgY2hhciAqcywgLi4uKSB7IHJldHVybiAwOyB9Ci1zdGF0aWMgaW5saW5lIGludCBsb2dfYnVmX2dldF9sZW4odm9pZCkgeyByZXR1cm4gMDsgfQotc3RhdGljIGlubGluZSBpbnQgbG9nX2J1Zl9yZWFkKGludCBpZHgpIHsgcmV0dXJuIDA7IH0KLXN0YXRpYyBpbmxpbmUgaW50IGxvZ19idWZfY29weShjaGFyICpkZXN0LCBpbnQgaWR4LCBpbnQgbGVuKSB7IHJldHVybiAwOyB9CiBzdGF0aWMgaW5saW5lIGludCBwcmludGtfcmF0ZWxpbWl0KHZvaWQpIHsgcmV0dXJuIDA7IH0KIHN0YXRpYyBpbmxpbmUgaW50IF9fcHJpbnRrX3JhdGVsaW1pdChpbnQgcmF0ZWxpbWl0X2ppZmZpZXMsIFwKIAkJCQkgICAgIGludCByYXRlbGltaXRfYnVyc3QpIHsgcmV0dXJuIDA7IH0KQEAgLTIxMyw3ICsyMTAsNyBAQAogCQl7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKLWV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKGZvcm1hdChwcmludGYsIDEsIDIpKSkKK2V4dGVybiB2b2lkIGFzbWxpbmthZ2UgX19hdHRyaWJ1dGVfXygoZm9ybWF0KHByaW50ZiwgMSwgMikpKQogCWVhcmx5X3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLik7CiAKIHVuc2lnbmVkIGxvbmcgaW50X3NxcnQodW5zaWduZWQgbG9uZyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2tlcm5lbF9zdGF0LmggYi9pbmNsdWRlL2xpbnV4L2tlcm5lbF9zdGF0LmgKaW5kZXggZThmZmNlOC4uY2Y5ZjQwYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9rZXJuZWxfc3RhdC5oCisrKyBiL2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQuaApAQCAtMSwxMSArMSwxMSBAQAogI2lmbmRlZiBfTElOVVhfS0VSTkVMX1NUQVRfSAogI2RlZmluZSBfTElOVVhfS0VSTkVMX1NUQVRfSAogCi0jaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGxpbnV4L3RocmVhZHMuaD4KICNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KICNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGFzbS9jcHV0aW1lLmg+CiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2twcm9iZXMuaCBiL2luY2x1ZGUvbGludXgva3Byb2Jlcy5oCmluZGV4IDEwMzY2MzEuLjA0YTM1NTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva3Byb2Jlcy5oCisrKyBiL2luY2x1ZGUvbGludXgva3Byb2Jlcy5oCkBAIC0yNTksNiArMjU5LDEwIEBACiBzdHJ1Y3QganByb2JlOwogc3RydWN0IGtyZXRwcm9iZTsKIAorc3RhdGljIGlubGluZSBzdHJ1Y3Qga3Byb2JlICpnZXRfa3Byb2JlKHZvaWQgKmFkZHIpCit7CisJcmV0dXJuIE5VTEw7Cit9CiBzdGF0aWMgaW5saW5lIHN0cnVjdCBrcHJvYmUgKmtwcm9iZV9ydW5uaW5nKHZvaWQpCiB7CiAJcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2tzMDEwOC5oIGIvaW5jbHVkZS9saW51eC9rczAxMDguaAppbmRleCBhMmM1NGFjLi5jYjMxMTc5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2tzMDEwOC5oCisrKyBiL2luY2x1ZGUvbGludXgva3MwMTA4LmgKQEAgLTQsNyArNCw3IEBACiAgKiBEZXNjcmlwdGlvbjoga3MwMTA4IExDRCBDb250cm9sbGVyIGRyaXZlciBoZWFkZXIKICAqICAgICBMaWNlbnNlOiBHUEx2MgogICoKLSAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+CisgKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMKICAqICAgICAgICBEYXRlOiAyMDA2LTEwLTMxCiAgKgogICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2xpYmF0YS5oIGIvaW5jbHVkZS9saW51eC9saWJhdGEuaAppbmRleCBlNTdlNWQwLi41YjI0N2I4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2xpYmF0YS5oCisrKyBiL2luY2x1ZGUvbGludXgvbGliYXRhLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgX19MSU5VWF9MSUJBVEFfSF9fCiAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CkBAIC0xMTUsNyArMTE2LDcgQEAKIAkvKiB0YWcgQVRBX01BWF9RVUVVRSAtIDEgaXMgcmVzZXJ2ZWQgZm9yIGludGVybmFsIGNvbW1hbmRzICovCiAJQVRBX01BWF9RVUVVRQkJPSAzMiwKIAlBVEFfVEFHX0lOVEVSTkFMCT0gQVRBX01BWF9RVUVVRSAtIDEsCi0JQVRBX1NIT1JUX1BBVVNFCQk9IChIWiA+PiA2KSArIDEsCisJQVRBX1NIT1JUX1BBVVNFCQk9IDE2LAogCiAJQVRBUElfTUFYX0RSQUlOCQk9IDE2IDw8IDEwLAogCkBAIC0xNjgsNiArMTY5LDcgQEAKIAlBVEFfTEZMQUdfQVNTVU1FX0NMQVNTCT0gQVRBX0xGTEFHX0FTU1VNRV9BVEEgfCBBVEFfTEZMQUdfQVNTVU1FX1NFTUIsCiAJQVRBX0xGTEFHX05PX1JFVFJZCT0gKDEgPDwgNSksIC8qIGRvbid0IHJldHJ5IHRoaXMgbGluayAqLwogCUFUQV9MRkxBR19ESVNBQkxFRAk9ICgxIDw8IDYpLCAvKiBsaW5rIGlzIGRpc2FibGVkICovCisJQVRBX0xGTEFHX1NXX0FDVElWSVRZCT0gKDEgPDwgNyksIC8qIGtlZXAgYWN0aXZpdHkgc3RhdHMgKi8KIAogCS8qIHN0cnVjdCBhdGFfcG9ydCBmbGFncyAqLwogCUFUQV9GTEFHX1NMQVZFX1BPU1MJPSAoMSA8PCAwKSwgLyogaG9zdCBzdXBwb3J0cyBzbGF2ZSBkZXYgKi8KQEAgLTE5MCw2ICsxOTIsMTAgQEAKIAlBVEFfRkxBR19BTgkJPSAoMSA8PCAxOCksIC8qIGNvbnRyb2xsZXIgc3VwcG9ydHMgQU4gKi8KIAlBVEFfRkxBR19QTVAJCT0gKDEgPDwgMTkpLCAvKiBjb250cm9sbGVyIHN1cHBvcnRzIFBNUCAqLwogCUFUQV9GTEFHX0lQTQkJPSAoMSA8PCAyMCksIC8qIGRyaXZlciBjYW4gaGFuZGxlIElQTSAqLworCUFUQV9GTEFHX0VNCQk9ICgxIDw8IDIxKSwgLyogZHJpdmVyIHN1cHBvcnRzIGVuY2xvc3VyZQorCQkJCQkgICAgICAqIG1hbmFnZW1lbnQgKi8KKwlBVEFfRkxBR19TV19BQ1RJVklUWQk9ICgxIDw8IDIyKSwgLyogZHJpdmVyIHN1cHBvcnRzIHN3IGFjdGl2aXR5CisJCQkJCSAgICAgICogbGVkICovCiAKIAkvKiBUaGUgZm9sbG93aW5nIGZsYWcgYmVsb25ncyB0byBhcC0+cGZsYWdzIGJ1dCBpcyBrZXB0IGluCiAJICogYXAtPmZsYWdzIGJlY2F1c2UgaXQncyByZWZlcmVuY2VkIGluIG1hbnkgTExEcyBhbmQgd2lsbCBiZQpAQCAtMjM0LDE3ICsyNDAsMTYgQEAKIAkvKiBiaXRzIDI0OjMxIG9mIGhvc3QtPmZsYWdzIGFyZSByZXNlcnZlZCBmb3IgTExEIHNwZWNpZmljIGZsYWdzICovCiAKIAkvKiB2YXJpb3VzIGxlbmd0aHMgb2YgdGltZSAqLwotCUFUQV9UTU9VVF9CT09UCQk9IDMwICogSFosCS8qIGhldXJpc3RpYyAqLwotCUFUQV9UTU9VVF9CT09UX1FVSUNLCT0gNyAqIEhaLAkvKiBoZXVyaXN0aWMgKi8KLQlBVEFfVE1PVVRfSU5URVJOQUwJPSAzMCAqIEhaLAotCUFUQV9UTU9VVF9JTlRFUk5BTF9RVUlDSyA9IDUgKiBIWiwKKwlBVEFfVE1PVVRfQk9PVAkJPSAzMDAwMCwJLyogaGV1cmlzdGljICovCisJQVRBX1RNT1VUX0JPT1RfUVVJQ0sJPSAgNzAwMCwJLyogaGV1cmlzdGljICovCisJQVRBX1RNT1VUX0lOVEVSTkFMX1FVSUNLID0gNTAwMCwKIAogCS8qIEZJWE1FOiBHb1ZhdWx0IG5lZWRzIDJzIGJ1dCB3ZSBjYW4ndCBhZmZvcmQgdGhhdCB3aXRob3V0CiAJICogcGFyYWxsZWwgcHJvYmluZy4gIDgwMG1zIGlzIGVub3VnaCBmb3IgaVZEUiBkaXNrCiAJICogSEhENDI0MDIwRjdTVjAwLiAgSW5jcmVhc2UgdG8gMnNlY3Mgd2hlbiBwYXJhbGxlbCBwcm9iaW5nCiAJICogaXMgaW4gcGxhY2UuCiAJICovCi0JQVRBX1RNT1VUX0ZGX1dBSVQJPSA0ICogSFogLyA1LAorCUFUQV9UTU9VVF9GRl9XQUlUCT0gIDgwMCwKIAogCS8qIFNwZWMgbWFuZGF0ZXMgdG8gd2FpdCBmb3IgIj49IDJtcyIgYmVmb3JlIGNoZWNraW5nIHN0YXR1cwogCSAqIGFmdGVyIHJlc2V0LiAgV2Ugd2FpdCAxNTBtcywgYmVjYXVzZSB0aGF0IHdhcyB0aGUgbWFnaWMKQEAgLTI1NiwxNCArMjYxLDE0IEBACiAJICoKIAkgKiBPbGQgZHJpdmVycy9pZGUgdXNlcyB0aGUgMm1TIHJ1bGUgYW5kIHRoZW4gd2FpdHMgZm9yIHJlYWR5LgogCSAqLwotCUFUQV9XQUlUX0FGVEVSX1JFU0VUX01TRUNTID0gMTUwLAorCUFUQV9XQUlUX0FGVEVSX1JFU0VUCT0gIDE1MCwKIAogCS8qIElmIFBNUCBpcyBzdXBwb3J0ZWQsIHdlIGhhdmUgdG8gZG8gZm9sbG93LXVwIFNSU1QuICBBcyBzb21lCiAJICogUE1QcyBkb24ndCBzZW5kIEQySCBSZWcgRklTIGFmdGVyIGhhcmRyZXNldCwgTExEcyBhcmUKIAkgKiBhZHZpc2VkIHRvIHdhaXQgb25seSBmb3IgdGhlIGZvbGxvd2luZyBkdXJhdGlvbiBiZWZvcmUKIAkgKiBkb2luZyBTUlNULgogCSAqLwotCUFUQV9UTU9VVF9QTVBfU1JTVF9XQUlUCT0gMSAqIEhaLAorCUFUQV9UTU9VVF9QTVBfU1JTVF9XQUlUCT0gMTAwMCwKIAogCS8qIEFUQSBidXMgc3RhdGVzICovCiAJQlVTX1VOS05PV04JCT0gMCwKQEAgLTM0MCw2ICszNDUsMTEgQEAKIAogCVNBVEFfUE1QX1JXX1RJTUVPVVQJPSAzMDAwLAkJLyogUE1QIHJlYWQvd3JpdGUgdGltZW91dCAqLwogCisJLyogVGhpcyBzaG91bGQgbWF0Y2ggdGhlIGFjdHVhbCB0YWJsZSBzaXplIG9mCisJICogYXRhX2VoX2NtZF90aW1lb3V0X3RhYmxlIGluIGxpYmF0YS1laC5jLgorCSAqLworCUFUQV9FSF9DTURfVElNRU9VVF9UQUJMRV9TSVpFID0gNSwKKwogCS8qIEhvcmthZ2UgdHlwZXMuIE1heSBiZSBzZXQgYnkgbGliYXRhIG9yIGNvbnRyb2xsZXIgb24gZHJpdmVzCiAJICAgKHNvbWUgaG9ya2FnZSBtYXkgYmUgZHJpdmUvY29udHJvbGxlciBwYWlyIGRlcGVuZGFudCAqLwogCkBAIC00NDEsNiArNDUxLDE1IEBACiAJTUVESVVNX1BPV0VSLAogfTsKIGV4dGVybiBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9saW5rX3Bvd2VyX21hbmFnZW1lbnRfcG9saWN5OworZXh0ZXJuIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX2VtX21lc3NhZ2VfdHlwZTsKK2V4dGVybiBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBkZXZfYXR0cl9lbV9tZXNzYWdlOworZXh0ZXJuIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyX3N3X2FjdGl2aXR5OworCitlbnVtIHN3X2FjdGl2aXR5IHsKKwlPRkYsCisJQkxJTktfT04sCisJQkxJTktfT0ZGLAorfTsKIAogI2lmZGVmIENPTkZJR19BVEFfU0ZGCiBzdHJ1Y3QgYXRhX2lvcG9ydHMgewpAQCAtNTk3LDEwICs2MTYsMTQgQEAKIHN0cnVjdCBhdGFfZWhfY29udGV4dCB7CiAJc3RydWN0IGF0YV9laF9pbmZvCWk7CiAJaW50CQkJdHJpZXNbQVRBX01BWF9ERVZJQ0VTXTsKKwlpbnQJCQljbWRfdGltZW91dF9pZHhbQVRBX01BWF9ERVZJQ0VTXQorCQkJCQkgICAgICAgW0FUQV9FSF9DTURfVElNRU9VVF9UQUJMRV9TSVpFXTsKIAl1bnNpZ25lZCBpbnQJCWNsYXNzZXNbQVRBX01BWF9ERVZJQ0VTXTsKIAl1bnNpZ25lZCBpbnQJCWRpZF9wcm9iZV9tYXNrOwogCXVuc2lnbmVkIGludAkJc2F2ZWRfbmNxX2VuYWJsZWQ7CiAJdTgJCQlzYXZlZF94ZmVyX21vZGVbQVRBX01BWF9ERVZJQ0VTXTsKKwkvKiB0aW1lc3RhbXAgZm9yIHRoZSBsYXN0IHJlc2V0IGF0dGVtcHQgb3Igc3VjY2VzcyAqLworCXVuc2lnbmVkIGxvbmcJCWxhc3RfcmVzZXQ7CiB9OwogCiBzdHJ1Y3QgYXRhX2FjcGlfZHJpdmUKQEAgLTY5Miw2ICs3MTUsNyBAQAogCXN0cnVjdCB0aW1lcl9saXN0CWZhc3RkcmFpbl90aW1lcjsKIAl1bnNpZ25lZCBsb25nCQlmYXN0ZHJhaW5fY250OwogCisJaW50CQkJZW1fbWVzc2FnZV90eXBlOwogCXZvaWQJCQkqcHJpdmF0ZV9kYXRhOwogCiAjaWZkZWYgQ09ORklHX0FUQV9BQ1BJCkBAIC03ODMsNiArODA3LDEyIEBACiAJdTggICAoKmJtZG1hX3N0YXR1cykoc3RydWN0IGF0YV9wb3J0ICphcCk7CiAjZW5kaWYgLyogQ09ORklHX0FUQV9TRkYgKi8KIAorCXNzaXplX3QgKCplbV9zaG93KShzdHJ1Y3QgYXRhX3BvcnQgKmFwLCBjaGFyICpidWYpOworCXNzaXplX3QgKCplbV9zdG9yZSkoc3RydWN0IGF0YV9wb3J0ICphcCwgY29uc3QgY2hhciAqbWVzc2FnZSwKKwkJCSAgICBzaXplX3Qgc2l6ZSk7CisJc3NpemVfdCAoKnN3X2FjdGl2aXR5X3Nob3cpKHN0cnVjdCBhdGFfZGV2aWNlICpkZXYsIGNoYXIgKmJ1Zik7CisJc3NpemVfdCAoKnN3X2FjdGl2aXR5X3N0b3JlKShzdHJ1Y3QgYXRhX2RldmljZSAqZGV2LAorCQkJCSAgICAgZW51bSBzd19hY3Rpdml0eSB2YWwpOwogCS8qCiAJICogT2Jzb2xldGUKIAkgKi8KQEAgLTg5NSw4ICs5MjUsNyBAQAogI2VuZGlmCiBleHRlcm4gaW50IGF0YV9yYXRlbGltaXQodm9pZCk7CiBleHRlcm4gdTMyIGF0YV93YWl0X3JlZ2lzdGVyKHZvaWQgX19pb21lbSAqcmVnLCB1MzIgbWFzaywgdTMyIHZhbCwKLQkJCSAgICAgdW5zaWduZWQgbG9uZyBpbnRlcnZhbF9tc2VjLAotCQkJICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXRfbXNlYyk7CisJCQkgICAgIHVuc2lnbmVkIGxvbmcgaW50ZXJ2YWwsIHVuc2lnbmVkIGxvbmcgdGltZW91dCk7CiBleHRlcm4gaW50IGF0YXBpX2NtZF90eXBlKHU4IG9wY29kZSk7CiBleHRlcm4gdm9pZCBhdGFfdGZfdG9fZmlzKGNvbnN0IHN0cnVjdCBhdGFfdGFza2ZpbGUgKnRmLAogCQkJICB1OCBwbXAsIGludCBpc19jbWQsIHU4ICpmaXMpOwpAQCAtMTM4OSw2ICsxNDE4LDEyIEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBhdGFfZGVhZGxpbmUodW5zaWduZWQgbG9uZyBmcm9tX2ppZmZpZXMsCisJCQkJCSB1bnNpZ25lZCBsb25nIHRpbWVvdXRfbXNlY3MpCit7CisJcmV0dXJuIGZyb21famlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXModGltZW91dF9tc2Vjcyk7Cit9CisKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBQTVAgLSBkcml2ZXJzL2F0YS9saWJhdGEtcG1wLmMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIGIvaW5jbHVkZS9saW51eC9saW5rYWdlLmgKaW5kZXggMjExOTYxMC4uNTZiYTM3MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9saW5rYWdlLmgKKysrIGIvaW5jbHVkZS9saW51eC9saW5rYWdlLmgKQEAgLTEsOCArMSwxMSBAQAogI2lmbmRlZiBfTElOVVhfTElOS0FHRV9ICiAjZGVmaW5lIF9MSU5VWF9MSU5LQUdFX0gKIAorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CiAjaW5jbHVkZSA8YXNtL2xpbmthZ2UuaD4KIAorI2RlZmluZSBub3RyYWNlIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQorCiAjaWZkZWYgX19jcGx1c3BsdXMKICNkZWZpbmUgQ1BQX0FTTUxJTktBR0UgZXh0ZXJuICJDIgogI2Vsc2UKQEAgLTE3LDYgKzIwLDkgQEAKICMgZGVmaW5lIGFzbXJlZ3Bhcm0KICNlbmRpZgogCisjZGVmaW5lIF9fcGFnZV9hbGlnbmVkX2RhdGEJX19zZWN0aW9uKC5kYXRhLnBhZ2VfYWxpZ25lZCkgX19hbGlnbmVkKFBBR0VfU0laRSkKKyNkZWZpbmUgX19wYWdlX2FsaWduZWRfYnNzCV9fc2VjdGlvbiguYnNzLnBhZ2VfYWxpZ25lZCkgX19hbGlnbmVkKFBBR0VfU0laRSkKKwogLyoKICAqIFRoaXMgaXMgdXNlZCBieSBhcmNoaXRlY3R1cmVzIHRvIGtlZXAgYXJndW1lbnRzIG9uIHRoZSBzdGFjawogICogdW50b3VjaGVkIGJ5IHRoZSBjb21waWxlciBieSBrZWVwaW5nIHRoZW0gbGl2ZSB1bnRpbCB0aGUgZW5kLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9sbV9pbnRlcmZhY2UuaCBiL2luY2x1ZGUvbGludXgvbG1faW50ZXJmYWNlLmgKaW5kZXggZjI3NDk5N2IuLjJlZDhmYTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbG1faW50ZXJmYWNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9sbV9pbnRlcmZhY2UuaApAQCAtMTIyLDExICsxMjIsOSBAQAogICovCiAKICNkZWZpbmUgTE1fT1VUX1NUX01BU0sJCTB4MDAwMDAwMDMKLSNkZWZpbmUgTE1fT1VUX0NBQ0hFQUJMRQkweDAwMDAwMDA0CiAjZGVmaW5lIExNX09VVF9DQU5DRUxFRAkJMHgwMDAwMDAwOAogI2RlZmluZSBMTV9PVVRfQVNZTkMJCTB4MDAwMDAwODAKICNkZWZpbmUgTE1fT1VUX0VSUk9SCQkweDAwMDAwMTAwCi0jZGVmaW5lIExNX09VVF9DT05WX0RFQURMSwkweDAwMDAwMjAwCiAKIC8qCiAgKiBsbV9jYWxsYmFja190IHR5cGVzCkBAIC0xMzgsOSArMTM2LDYgQEAKICAqIExNX0NCX05FRURfUkVDT1ZFUlkKICAqIFRoZSBnaXZlbiBqb3VybmFsIG5lZWRzIHRvIGJlIHJlY292ZXJlZC4KICAqCi0gKiBMTV9DQl9EUk9QTE9DS1MKLSAqIFJlZHVjZSB0aGUgbnVtYmVyIG9mIGNhY2hlZCBsb2Nrcy4KLSAqCiAgKiBMTV9DQl9BU1lOQwogICogVGhlIGdpdmVuIGxvY2sgaGFzIGJlZW4gZ3JhbnRlZC4KICAqLwpAQCAtMTQ5LDcgKzE0NCw2IEBACiAjZGVmaW5lIExNX0NCX05FRURfRAkJMjU4CiAjZGVmaW5lIExNX0NCX05FRURfUwkJMjU5CiAjZGVmaW5lIExNX0NCX05FRURfUkVDT1ZFUlkJMjYwCi0jZGVmaW5lIExNX0NCX0RST1BMT0NLUwkJMjYxCiAjZGVmaW5lIExNX0NCX0FTWU5DCQkyNjIKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIGIvaW5jbHVkZS9saW51eC9sb2NrZGVwLmgKaW5kZXggNGM0ZDIzNi4uMjQ4NmViNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9sb2NrZGVwLmgKKysrIGIvaW5jbHVkZS9saW51eC9sb2NrZGVwLmgKQEAgLTE4Miw2ICsxODIsOSBAQAogICogV2UgcmVjb3JkIGxvY2sgZGVwZW5kZW5jeSBjaGFpbnMsIHNvIHRoYXQgd2UgY2FuIGNhY2hlIHRoZW06CiAgKi8KIHN0cnVjdCBsb2NrX2NoYWluIHsKKwl1OAkJCQlpcnFfY29udGV4dDsKKwl1OAkJCQlkZXB0aDsKKwl1MTYJCQkJYmFzZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQllbnRyeTsKIAl1NjQJCQkJY2hhaW5fa2V5OwogfTsKQEAgLTI3NiwxNCArMjc5LDYgQEAKIAkJCQkgKGxvY2spLT5kZXBfbWFwLmtleSwgc3ViKQogCiAvKgotICogVG8gaW5pdGlhbGl6ZSBhIGxvY2tkZXBfbWFwIHN0YXRpY2FsbHkgdXNlIHRoaXMgbWFjcm8uCi0gKiBOb3RlIHRoYXQgX25hbWUgbXVzdCBub3QgYmUgTlVMTC4KLSAqLwotI2RlZmluZSBTVEFUSUNfTE9DS0RFUF9NQVBfSU5JVChfbmFtZSwgX2tleSkgXAotCXsgLm5hbWUgPSAoX25hbWUpLCAua2V5ID0gKHZvaWQgKikoX2tleSksIH0KLQotCi0vKgogICogQWNxdWlyZSBhIGxvY2suCiAgKgogICogVmFsdWVzIGZvciAicmVhZCI6CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21hcmtlci5oIGIvaW5jbHVkZS9saW51eC9tYXJrZXIuaAppbmRleCA0MzBmNmFkLi4xMjkwNjUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21hcmtlci5oCisrKyBiL2luY2x1ZGUvbGludXgvbWFya2VyLmgKQEAgLTQ0LDggKzQ0LDggQEAKIAkJCQkgKi8KIAljaGFyIHN0YXRlOwkJLyogTWFya2VyIHN0YXRlLiAqLwogCWNoYXIgcHR5cGU7CQkvKiBwcm9iZSB0eXBlIDogMCA6IHNpbmdsZSwgMSA6IG11bHRpICovCi0Jdm9pZCAoKmNhbGwpKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLAkvKiBQcm9iZSB3cmFwcGVyICovCi0JCXZvaWQgKmNhbGxfcHJpdmF0ZSwgY29uc3QgY2hhciAqZm10LCAuLi4pOworCQkJCS8qIFByb2JlIHdyYXBwZXIgKi8KKwl2b2lkICgqY2FsbCkoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsIHZvaWQgKmNhbGxfcHJpdmF0ZSwgLi4uKTsKIAlzdHJ1Y3QgbWFya2VyX3Byb2JlX2Nsb3N1cmUgc2luZ2xlOwogCXN0cnVjdCBtYXJrZXJfcHJvYmVfY2xvc3VyZSAqbXVsdGk7CiB9IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKTsKQEAgLTU4LDggKzU4LDEyIEBACiAgKiBNYWtlIHN1cmUgdGhlIGFsaWdubWVudCBvZiB0aGUgc3RydWN0dXJlIGluIHRoZSBfX21hcmtlcnMgc2VjdGlvbiB3aWxsCiAgKiBub3QgYWRkIHVud2FudGVkIHBhZGRpbmcgYmV0d2VlbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWN0aW9uIGFuZCB0aGUKICAqIHN0cnVjdHVyZS4gRm9yY2UgYWxpZ25tZW50IHRvIHRoZSBzYW1lIGFsaWdubWVudCBhcyB0aGUgc2VjdGlvbiBzdGFydC4KKyAqCisgKiBUaGUgImdlbmVyaWMiIGFyZ3VtZW50IGNvbnRyb2xzIHdoaWNoIG1hcmtlciBlbmFibGluZyBtZWNoYW5pc20gbXVzdCBiZSB1c2VkLgorICogSWYgZ2VuZXJpYyBpcyB0cnVlLCBhIHZhcmlhYmxlIHJlYWQgaXMgdXNlZC4KKyAqIElmIGdlbmVyaWMgaXMgZmFsc2UsIGltbWVkaWF0ZSB2YWx1ZXMgYXJlIHVzZWQuCiAgKi8KLSNkZWZpbmUgX190cmFjZV9tYXJrKG5hbWUsIGNhbGxfcHJpdmF0ZSwgZm9ybWF0LCBhcmdzLi4uKQkJXAorI2RlZmluZSBfX3RyYWNlX21hcmsoZ2VuZXJpYywgbmFtZSwgY2FsbF9wcml2YXRlLCBmb3JtYXQsIGFyZ3MuLi4pCVwKIAlkbyB7CQkJCQkJCQlcCiAJCXN0YXRpYyBjb25zdCBjaGFyIF9fbXN0cnRhYl8jI25hbWVbXQkJCVwKIAkJX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiX19tYXJrZXJzX3N0cmluZ3MiKSkpCQlcCkBAIC03MiwxNSArNzYsMTQgQEAKIAkJX19tYXJrX2NoZWNrX2Zvcm1hdChmb3JtYXQsICMjIGFyZ3MpOwkJCVwKIAkJaWYgKHVubGlrZWx5KF9fbWFya18jI25hbWUuc3RhdGUpKSB7CQkJXAogCQkJKCpfX21hcmtfIyNuYW1lLmNhbGwpCQkJCVwKLQkJCQkoJl9fbWFya18jI25hbWUsIGNhbGxfcHJpdmF0ZSwJCVwKLQkJCQlmb3JtYXQsICMjIGFyZ3MpOwkJCVwKKwkJCQkoJl9fbWFya18jI25hbWUsIGNhbGxfcHJpdmF0ZSwgIyMgYXJncyk7XAogCQl9CQkJCQkJCVwKIAl9IHdoaWxlICgwKQogCiBleHRlcm4gdm9pZCBtYXJrZXJfdXBkYXRlX3Byb2JlX3JhbmdlKHN0cnVjdCBtYXJrZXIgKmJlZ2luLAogCXN0cnVjdCBtYXJrZXIgKmVuZCk7CiAjZWxzZSAvKiAhQ09ORklHX01BUktFUlMgKi8KLSNkZWZpbmUgX190cmFjZV9tYXJrKG5hbWUsIGNhbGxfcHJpdmF0ZSwgZm9ybWF0LCBhcmdzLi4uKSBcCisjZGVmaW5lIF9fdHJhY2VfbWFyayhnZW5lcmljLCBuYW1lLCBjYWxsX3ByaXZhdGUsIGZvcm1hdCwgYXJncy4uLikgXAogCQlfX21hcmtfY2hlY2tfZm9ybWF0KGZvcm1hdCwgIyMgYXJncykKIHN0YXRpYyBpbmxpbmUgdm9pZCBtYXJrZXJfdXBkYXRlX3Byb2JlX3JhbmdlKHN0cnVjdCBtYXJrZXIgKmJlZ2luLAogCXN0cnVjdCBtYXJrZXIgKmVuZCkKQEAgLTg4LDE1ICs5MSwzMCBAQAogI2VuZGlmIC8qIENPTkZJR19NQVJLRVJTICovCiAKIC8qKgotICogdHJhY2VfbWFyayAtIE1hcmtlcgorICogdHJhY2VfbWFyayAtIE1hcmtlciB1c2luZyBjb2RlIHBhdGNoaW5nCiAgKiBAbmFtZTogbWFya2VyIG5hbWUsIG5vdCBxdW90ZWQuCiAgKiBAZm9ybWF0OiBmb3JtYXQgc3RyaW5nCiAgKiBAYXJncy4uLjogdmFyaWFibGUgYXJndW1lbnQgbGlzdAogICoKLSAqIFBsYWNlcyBhIG1hcmtlci4KKyAqIFBsYWNlcyBhIG1hcmtlciB1c2luZyBvcHRpbWl6ZWQgY29kZSBwYXRjaGluZyB0ZWNobmlxdWUgKGltdl9yZWFkKCkpCisgKiB0byBiZSBlbmFibGVkIHdoZW4gaW1tZWRpYXRlIHZhbHVlcyBhcmUgcHJlc2VudC4KICAqLwogI2RlZmluZSB0cmFjZV9tYXJrKG5hbWUsIGZvcm1hdCwgYXJncy4uLikgXAotCV9fdHJhY2VfbWFyayhuYW1lLCBOVUxMLCBmb3JtYXQsICMjIGFyZ3MpCisJX190cmFjZV9tYXJrKDAsIG5hbWUsIE5VTEwsIGZvcm1hdCwgIyMgYXJncykKKworLyoqCisgKiBfdHJhY2VfbWFyayAtIE1hcmtlciB1c2luZyB2YXJpYWJsZSByZWFkCisgKiBAbmFtZTogbWFya2VyIG5hbWUsIG5vdCBxdW90ZWQuCisgKiBAZm9ybWF0OiBmb3JtYXQgc3RyaW5nCisgKiBAYXJncy4uLjogdmFyaWFibGUgYXJndW1lbnQgbGlzdAorICoKKyAqIFBsYWNlcyBhIG1hcmtlciB1c2luZyBhIHN0YW5kYXJkIG1lbW9yeSByZWFkIChfaW12X3JlYWQoKSkgdG8gYmUKKyAqIGVuYWJsZWQuIFNob3VsZCBiZSB1c2VkIGZvciBtYXJrZXJzIGluIGNvZGUgcGF0aHMgd2hlcmUgaW5zdHJ1Y3Rpb24KKyAqIG1vZGlmaWNhdGlvbiBiYXNlZCBlbmFibGluZyBpcyBub3Qgd2VsY29tZS4gKF9faW5pdCBhbmQgX19leGl0IGZ1bmN0aW9ucywKKyAqIGxvY2tkZXAsIHNvbWUgdHJhcHMsIHByaW50aykuCisgKi8KKyNkZWZpbmUgX3RyYWNlX21hcmsobmFtZSwgZm9ybWF0LCBhcmdzLi4uKSBcCisJX190cmFjZV9tYXJrKDEsIG5hbWUsIE5VTEwsIGZvcm1hdCwgIyMgYXJncykKIAogLyoqCiAgKiBNQVJLX05PQVJHUyAtIEZvcm1hdCBzdHJpbmcgZm9yIGEgbWFya2VyIHdpdGggbm8gYXJndW1lbnQuCkBAIC0xMTcsOSArMTM1LDkgQEAKIGV4dGVybiBtYXJrZXJfcHJvYmVfZnVuYyBfX21hcmtfZW1wdHlfZnVuY3Rpb247CiAKIGV4dGVybiB2b2lkIG1hcmtlcl9wcm9iZV9jYihjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwKLQl2b2lkICpjYWxsX3ByaXZhdGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKwl2b2lkICpjYWxsX3ByaXZhdGUsIC4uLik7CiBleHRlcm4gdm9pZCBtYXJrZXJfcHJvYmVfY2Jfbm9hcmcoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsCi0Jdm9pZCAqY2FsbF9wcml2YXRlLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CisJdm9pZCAqY2FsbF9wcml2YXRlLCAuLi4pOwogCiAvKgogICogQ29ubmVjdCBhIHByb2JlIHRvIGEgbWFya2VyLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg0L2RldmljZS5oIGIvaW5jbHVkZS9saW51eC9tbHg0L2RldmljZS5oCmluZGV4IGE3NDQzODMuLjgxYjNkZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWx4NC9kZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L21seDQvZGV2aWNlLmgKQEAgLTM5OCw3ICszOTgsOCBAQAogaW50IG1seDRfSU5JVF9QT1JUKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBpbnQgcG9ydCk7CiBpbnQgbWx4NF9DTE9TRV9QT1JUKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBpbnQgcG9ydCk7CiAKLWludCBtbHg0X211bHRpY2FzdF9hdHRhY2goc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X3FwICpxcCwgdTggZ2lkWzE2XSk7CitpbnQgbWx4NF9tdWx0aWNhc3RfYXR0YWNoKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9xcCAqcXAsIHU4IGdpZFsxNl0sCisJCQkgIGludCBibG9ja19tY2FzdF9sb29wYmFjayk7CiBpbnQgbWx4NF9tdWx0aWNhc3RfZGV0YWNoKHN0cnVjdCBtbHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9xcCAqcXAsIHU4IGdpZFsxNl0pOwogCiBpbnQgbWx4NF9tYXBfcGh5c19mbXIoc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X2ZtciAqZm1yLCB1NjQgKnBhZ2VfbGlzdCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1ZGUvbGludXgvbW0uaAppbmRleCA1ODZhOTQzLi5jZjFjZDNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbS5oCkBAIC05OTgsOCArOTk4LDggQEAKIGV4dGVybiB2b2lkIGZyZWVfYXJlYV9pbml0X25vZGVzKHVuc2lnbmVkIGxvbmcgKm1heF96b25lX3Bmbik7CiBleHRlcm4gdm9pZCBhZGRfYWN0aXZlX3JhbmdlKHVuc2lnbmVkIGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAogCQkJCQl1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwotZXh0ZXJuIHZvaWQgc2hyaW5rX2FjdGl2ZV9yYW5nZSh1bnNpZ25lZCBpbnQgbmlkLCB1bnNpZ25lZCBsb25nIG9sZF9lbmRfcGZuLAotCQkJCQkJdW5zaWduZWQgbG9uZyBuZXdfZW5kX3Bmbik7CitleHRlcm4gdm9pZCByZW1vdmVfYWN0aXZlX3JhbmdlKHVuc2lnbmVkIGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQl1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwogZXh0ZXJuIHZvaWQgcHVzaF9ub2RlX2JvdW5kYXJpZXModW5zaWduZWQgaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCiAJCQkJCXVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7CiBleHRlcm4gdm9pZCByZW1vdmVfYWxsX2FjdGl2ZV9yYW5nZXModm9pZCk7CkBAIC0xMDExLDYgKzEwMTEsOCBAQAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9tYXhfcGZuX3dpdGhfYWN0aXZlX3JlZ2lvbnModm9pZCk7CiBleHRlcm4gdm9pZCBmcmVlX2Jvb3RtZW1fd2l0aF9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLAogCQkJCQkJdW5zaWduZWQgbG9uZyBtYXhfbG93X3Bmbik7Cit0eXBlZGVmIGludCAoKndvcmtfZm5fdCkodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdm9pZCAqKTsKK2V4dGVybiB2b2lkIHdvcmtfd2l0aF9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLCB3b3JrX2ZuX3Qgd29ya19mbiwgdm9pZCAqZGF0YSk7CiBleHRlcm4gdm9pZCBzcGFyc2VfbWVtb3J5X3ByZXNlbnRfd2l0aF9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkKTsKICNpZm5kZWYgQ09ORklHX0hBVkVfQVJDSF9FQVJMWV9QRk5fVE9fTklECiBleHRlcm4gaW50IGVhcmx5X3Bmbl90b19uaWQodW5zaWduZWQgbG9uZyBwZm4pOwpAQCAtMTAyNCw2ICsxMDI2LDcgQEAKIGV4dGVybiB2b2lkIHNob3dfbWVtKHZvaWQpOwogZXh0ZXJuIHZvaWQgc2lfbWVtaW5mbyhzdHJ1Y3Qgc3lzaW5mbyAqIHZhbCk7CiBleHRlcm4gdm9pZCBzaV9tZW1pbmZvX25vZGUoc3RydWN0IHN5c2luZm8gKnZhbCwgaW50IG5pZCk7CitleHRlcm4gaW50IGFmdGVyX2Jvb3RtZW07CiAKICNpZmRlZiBDT05GSUdfTlVNQQogZXh0ZXJuIHZvaWQgc2V0dXBfcGVyX2NwdV9wYWdlc2V0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbWlvdHJhY2UuaCBiL2luY2x1ZGUvbGludXgvbW1pb3RyYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFkMTllMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvbW1pb3RyYWNlLmgKQEAgLTAsMCArMSw4NSBAQAorI2lmbmRlZiBNTUlPVFJBQ0VfSAorI2RlZmluZSBNTUlPVFJBQ0VfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKK3N0cnVjdCBrbW1pb19wcm9iZTsKK3N0cnVjdCBwdF9yZWdzOworCit0eXBlZGVmIHZvaWQgKCprbW1pb19wcmVfaGFuZGxlcl90KShzdHJ1Y3Qga21taW9fcHJvYmUgKiwKKwkJCQlzdHJ1Y3QgcHRfcmVncyAqLCB1bnNpZ25lZCBsb25nIGFkZHIpOwordHlwZWRlZiB2b2lkICgqa21taW9fcG9zdF9oYW5kbGVyX3QpKHN0cnVjdCBrbW1pb19wcm9iZSAqLAorCQkJCXVuc2lnbmVkIGxvbmcgY29uZGl0aW9uLCBzdHJ1Y3QgcHRfcmVncyAqKTsKKworc3RydWN0IGttbWlvX3Byb2JlIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7IC8qIGttbWlvIGludGVybmFsIGxpc3QgKi8KKwl1bnNpZ25lZCBsb25nIGFkZHI7IC8qIHN0YXJ0IGxvY2F0aW9uIG9mIHRoZSBwcm9iZSBwb2ludCAqLworCXVuc2lnbmVkIGxvbmcgbGVuOyAvKiBsZW5ndGggb2YgdGhlIHByb2JlIHJlZ2lvbiAqLworCWttbWlvX3ByZV9oYW5kbGVyX3QgcHJlX2hhbmRsZXI7IC8qIENhbGxlZCBiZWZvcmUgYWRkciBpcyBleGVjdXRlZC4gKi8KKwlrbW1pb19wb3N0X2hhbmRsZXJfdCBwb3N0X2hhbmRsZXI7IC8qIENhbGxlZCBhZnRlciBhZGRyIGlzIGV4ZWN1dGVkICovCisJdm9pZCAqcHJpdmF0ZTsKK307CisKKy8qIGttbWlvIGlzIGFjdGl2ZSBieSBzb21lIGttbWlvX3Byb2Jlcz8gKi8KK3N0YXRpYyBpbmxpbmUgaW50IGlzX2ttbWlvX2FjdGl2ZSh2b2lkKQoreworCWV4dGVybiB1bnNpZ25lZCBpbnQga21taW9fY291bnQ7CisJcmV0dXJuIGttbWlvX2NvdW50OworfQorCitleHRlcm4gaW50IHJlZ2lzdGVyX2ttbWlvX3Byb2JlKHN0cnVjdCBrbW1pb19wcm9iZSAqcCk7CitleHRlcm4gdm9pZCB1bnJlZ2lzdGVyX2ttbWlvX3Byb2JlKHN0cnVjdCBrbW1pb19wcm9iZSAqcCk7CisKKy8qIENhbGxlZCBmcm9tIHBhZ2UgZmF1bHQgaGFuZGxlci4gKi8KK2V4dGVybiBpbnQga21taW9faGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyBhZGRyKTsKKworLyogQ2FsbGVkIGZyb20gaW9yZW1hcC5jICovCisjaWZkZWYgQ09ORklHX01NSU9UUkFDRQorZXh0ZXJuIHZvaWQgbW1pb3RyYWNlX2lvcmVtYXAocmVzb3VyY2Vfc2l6ZV90IG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCQkJCXZvaWQgX19pb21lbSAqYWRkcik7CitleHRlcm4gdm9pZCBtbWlvdHJhY2VfaW91bm1hcCh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBtbWlvdHJhY2VfaW9yZW1hcChyZXNvdXJjZV9zaXplX3Qgb2Zmc2V0LAorCQkJCQl1bnNpZ25lZCBsb25nIHNpemUsIHZvaWQgX19pb21lbSAqYWRkcikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIG1taW90cmFjZV9pb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKK3sKK30KKyNlbmRpZiAvKiBDT05GSUdfTU1JT1RSQUNFX0hPT0tTICovCisKK2VudW0gbW1faW9fb3Bjb2RlIHsKKwlNTUlPX1JFQUQgPSAweDEsICAgICAvKiBzdHJ1Y3QgbW1pb3RyYWNlX3J3ICovCisJTU1JT19XUklURSA9IDB4MiwgICAgLyogc3RydWN0IG1taW90cmFjZV9ydyAqLworCU1NSU9fUFJPQkUgPSAweDMsICAgIC8qIHN0cnVjdCBtbWlvdHJhY2VfbWFwICovCisJTU1JT19VTlBST0JFID0gMHg0LCAgLyogc3RydWN0IG1taW90cmFjZV9tYXAgKi8KKwlNTUlPX01BUktFUiA9IDB4NSwgICAvKiByYXcgY2hhciBkYXRhICovCisJTU1JT19VTktOT1dOX09QID0gMHg2LCAvKiBzdHJ1Y3QgbW1pb3RyYWNlX3J3ICovCit9OworCitzdHJ1Y3QgbW1pb3RyYWNlX3J3IHsKKwlyZXNvdXJjZV9zaXplX3QgcGh5czsJLyogUENJIGFkZHJlc3Mgb2YgcmVnaXN0ZXIgKi8KKwl1bnNpZ25lZCBsb25nIHZhbHVlOworCXVuc2lnbmVkIGxvbmcgcGM7CS8qIG9wdGlvbmFsIHByb2dyYW0gY291bnRlciAqLworCWludCBtYXBfaWQ7CisJdW5zaWduZWQgY2hhciBvcGNvZGU7CS8qIG9uZSBvZiBNTUlPX3tSRUFELFdSSVRFLFVOS05PV05fT1B9ICovCisJdW5zaWduZWQgY2hhciB3aWR0aDsJLyogc2l6ZSBvZiByZWdpc3RlciBhY2Nlc3MgaW4gYnl0ZXMgKi8KK307CisKK3N0cnVjdCBtbWlvdHJhY2VfbWFwIHsKKwlyZXNvdXJjZV9zaXplX3QgcGh5czsJLyogYmFzZSBhZGRyZXNzIGluIFBDSSBzcGFjZSAqLworCXVuc2lnbmVkIGxvbmcgdmlydDsJLyogYmFzZSB2aXJ0dWFsIGFkZHJlc3MgKi8KKwl1bnNpZ25lZCBsb25nIGxlbjsJLyogbWFwcGluZyBzaXplICovCisJaW50IG1hcF9pZDsKKwl1bnNpZ25lZCBjaGFyIG9wY29kZTsJLyogTU1JT19QUk9CRSBvciBNTUlPX1VOUFJPQkUgKi8KK307CisKKy8qIGluIGtlcm5lbC90cmFjZS90cmFjZV9tbWlvdHJhY2UuYyAqLworZXh0ZXJuIHZvaWQgZW5hYmxlX21taW90cmFjZSh2b2lkKTsKK2V4dGVybiB2b2lkIGRpc2FibGVfbW1pb3RyYWNlKHZvaWQpOworZXh0ZXJuIHZvaWQgbW1pb190cmFjZV9ydyhzdHJ1Y3QgbW1pb3RyYWNlX3J3ICpydyk7CitleHRlcm4gdm9pZCBtbWlvX3RyYWNlX21hcHBpbmcoc3RydWN0IG1taW90cmFjZV9tYXAgKm1hcCk7CisKKyNlbmRpZiAvKiBNTUlPVFJBQ0VfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaCBiL2luY2x1ZGUvbGludXgvbW9kX2RldmljZXRhYmxlLmgKaW5kZXggNjliMjM0Mi4uYzRkYjU4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L21vZF9kZXZpY2V0YWJsZS5oCkBAIC0xNTksNiArMTU5LDE1IEBACiAKICNkZWZpbmUgQVBfREVWSUNFX0lEX01BVENIX0RFVklDRV9UWVBFCQkweDAxCiAKKy8qIHMzOTAgY3NzIGJ1cyBkZXZpY2VzIChzdWJjaGFubmVscykgKi8KK3N0cnVjdCBjc3NfZGV2aWNlX2lkIHsKKwlfX3U4IG1hdGNoX2ZsYWdzOworCV9fdTggdHlwZTsgLyogc3ViY2hhbm5lbCB0eXBlICovCisJX191MTYgcGFkMjsKKwlfX3UzMiBwYWQzOworCWtlcm5lbF91bG9uZ190IGRyaXZlcl9kYXRhOworfTsKKwogI2RlZmluZSBBQ1BJX0lEX0xFTgkxNiAvKiBvbmx5IDkgYnl0ZXMgbmVlZGVkIGhlcmUsIDE2IGJ5dGVzIGFyZSB1c2VkICovCiAJCQkgICAvKiB0byB3b3JrYXJvdW5kIGNyb3NzY29tcGlsZSBpc3N1ZXMgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tcGFnZS5oIGIvaW5jbHVkZS9saW51eC9tcGFnZS5oCmluZGV4IDA2OGEwYzkuLjVjNDI4MjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbXBhZ2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L21wYWdlLmgKQEAgLTExLDExICsxMSwyMSBAQAogICovCiAjaWZkZWYgQ09ORklHX0JMT0NLCiAKK3N0cnVjdCBtcGFnZV9kYXRhIHsKKwlzdHJ1Y3QgYmlvICpiaW87CisJc2VjdG9yX3QgbGFzdF9ibG9ja19pbl9iaW87CisJZ2V0X2Jsb2NrX3QgKmdldF9ibG9jazsKKwl1bnNpZ25lZCB1c2Vfd3JpdGVwYWdlOworfTsKKwogc3RydWN0IHdyaXRlYmFja19jb250cm9sOwogCitzdHJ1Y3QgYmlvICptcGFnZV9iaW9fc3VibWl0KGludCBydywgc3RydWN0IGJpbyAqYmlvKTsKIGludCBtcGFnZV9yZWFkcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHN0cnVjdCBsaXN0X2hlYWQgKnBhZ2VzLAogCQkJCXVuc2lnbmVkIG5yX3BhZ2VzLCBnZXRfYmxvY2tfdCBnZXRfYmxvY2spOwogaW50IG1wYWdlX3JlYWRwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBnZXRfYmxvY2tfdCBnZXRfYmxvY2spOworaW50IF9fbXBhZ2Vfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYywKKwkJICAgICAgdm9pZCAqZGF0YSk7CiBpbnQgbXBhZ2Vfd3JpdGVwYWdlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMsIGdldF9ibG9ja190IGdldF9ibG9jayk7CiBpbnQgbXBhZ2Vfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBnZXRfYmxvY2tfdCAqZ2V0X2Jsb2NrLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKaW5kZXggZjI3ZmQyMC4uMjVmODcxMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCkBAIC04OCw2ICs4OCw4IEBACiAjZGVmaW5lIE5FVERFVl9UWF9CVVNZIDEJLyogZHJpdmVyIHR4IHBhdGggd2FzIGJ1c3kqLwogI2RlZmluZSBORVRERVZfVFhfTE9DS0VEIC0xCS8qIGRyaXZlciB0eCBsb2NrIHdhcyBhbHJlYWR5IHRha2VuICovCiAKKyNpZmRlZiAgX19LRVJORUxfXworCiAvKgogICoJQ29tcHV0ZSB0aGUgd29yc3QgY2FzZSBoZWFkZXIgbGVuZ3RoIGFjY29yZGluZyB0byB0aGUgcHJvdG9jb2xzCiAgKgl1c2VkLgpAQCAtMTE0LDYgKzExNiw4IEBACiAjZGVmaW5lIE1BWF9IRUFERVIgKExMX01BWF9IRUFERVIgKyA0OCkKICNlbmRpZgogCisjZW5kaWYgIC8qICBfX0tFUk5FTF9fICAqLworCiBzdHJ1Y3QgbmV0X2RldmljZV9zdWJxdWV1ZQogewogCS8qIEdpdmUgYSBjb250cm9sIHN0YXRlIGZvciBlYWNoIHF1ZXVlLiAgVGhpcyBzdHJ1Y3QgbWF5IGNvbnRhaW4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIGIvaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgKaW5kZXggZjMxZGViZi4uMGQyYTRlNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgKKysrIGIvaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgKQEAgLTE1Nyw2ICsxNTcsNyBAQAogX19QQUdFRkxBRyhTbGFiLCBzbGFiKQogUEFHRUZMQUcoQ2hlY2tlZCwgb3duZXJfcHJpdl8xKQkJLyogVXNlZCBieSBzb21lIGZpbGVzeXN0ZW1zICovCiBQQUdFRkxBRyhQaW5uZWQsIG93bmVyX3ByaXZfMSkgVEVTVFNDRkxBRyhQaW5uZWQsIG93bmVyX3ByaXZfMSkgLyogWGVuICovCitQQUdFRkxBRyhTYXZlUGlubmVkLCBkaXJ0eSk7CQkJCQkvKiBYZW4gKi8KIFBBR0VGTEFHKFJlc2VydmVkLCByZXNlcnZlZCkgX19DTEVBUlBBR0VGTEFHKFJlc2VydmVkLCByZXNlcnZlZCkKIFBBR0VGTEFHKFByaXZhdGUsIHByaXZhdGUpIF9fQ0xFQVJQQUdFRkxBRyhQcml2YXRlLCBwcml2YXRlKQogCV9fU0VUUEFHRUZMQUcoUHJpdmF0ZSwgcHJpdmF0ZSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGFnZWJsb2NrLWZsYWdzLmggYi9pbmNsdWRlL2xpbnV4L3BhZ2VibG9jay1mbGFncy5oCmluZGV4IGU4NzU5MDUuLmU4YzA2MTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGFnZWJsb2NrLWZsYWdzLmgKKysrIGIvaW5jbHVkZS9saW51eC9wYWdlYmxvY2stZmxhZ3MuaApAQCAtMjUsMTMgKzI1LDExIEBACiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCi0vKiBNYWNybyB0byBhaWQgdGhlIGRlZmluaXRpb24gb2YgcmFuZ2VzIG9mIGJpdHMgKi8KLSNkZWZpbmUgUEJfcmFuZ2UobmFtZSwgcmVxdWlyZWRfYml0cykgXAotCW5hbWUsIG5hbWUgIyMgX2VuZCA9IChuYW1lICsgcmVxdWlyZWRfYml0cykgLSAxCi0KIC8qIEJpdCBpbmRpY2VzIHRoYXQgYWZmZWN0IGEgd2hvbGUgYmxvY2sgb2YgcGFnZXMgKi8KIGVudW0gcGFnZWJsb2NrX2JpdHMgewotCVBCX3JhbmdlKFBCX21pZ3JhdGUsIDMpLCAvKiAzIGJpdHMgcmVxdWlyZWQgZm9yIG1pZ3JhdGUgdHlwZXMgKi8KKwlQQl9taWdyYXRlLAorCVBCX21pZ3JhdGVfZW5kID0gUEJfbWlncmF0ZSArIDMgLSAxLAorCQkJLyogMyBiaXRzIHJlcXVpcmVkIGZvciBtaWdyYXRlIHR5cGVzICovCiAJTlJfUEFHRUJMT0NLX0JJVFMKIH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oIGIvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKaW5kZXggZWFmYzlkNi4uNjU5NTM4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKKysrIGIvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKQEAgLTE1MjAsNiArMTUyMCw3IEBACiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUFSVkVMTF9HVDY0MjYwCTB4NjQzMAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX01BUlZFTExfTVY2NDM2MAkweDY0NjAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9NQVJWRUxMX01WNjQ0NjAJMHg2NDgwCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUFSVkVMTF9DQUZFX1NECTB4NDEwMQogCiAjZGVmaW5lIFBDSV9WRU5ET1JfSURfVjMJCTB4MTFiMAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX1YzX1Y5NjAJCTB4MDAwMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wZXJjcHVfY291bnRlci5oIGIvaW5jbHVkZS9saW51eC9wZXJjcHVfY291bnRlci5oCmluZGV4IDkwMDdjY2QuLjIwODM4ODggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGVyY3B1X2NvdW50ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BlcmNwdV9jb3VudGVyLmgKQEAgLTM1LDcgKzM1LDcgQEAKIHZvaWQgcGVyY3B1X2NvdW50ZXJfZGVzdHJveShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYyk7CiB2b2lkIHBlcmNwdV9jb3VudGVyX3NldChzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgczY0IGFtb3VudCk7CiB2b2lkIF9fcGVyY3B1X2NvdW50ZXJfYWRkKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50LCBzMzIgYmF0Y2gpOwotczY0IF9fcGVyY3B1X2NvdW50ZXJfc3VtKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKTsKK3M2NCBfX3BlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgaW50IHNldCk7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwZXJjcHVfY291bnRlcl9hZGQoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIHM2NCBhbW91bnQpCiB7CkBAIC00NCwxMyArNDQsMTkgQEAKIAogc3RhdGljIGlubGluZSBzNjQgcGVyY3B1X2NvdW50ZXJfc3VtX3Bvc2l0aXZlKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQogewotCXM2NCByZXQgPSBfX3BlcmNwdV9jb3VudGVyX3N1bShmYmMpOworCXM2NCByZXQgPSBfX3BlcmNwdV9jb3VudGVyX3N1bShmYmMsIDApOwogCXJldHVybiByZXQgPCAwID8gMCA6IHJldDsKIH0KIAorc3RhdGljIGlubGluZSBzNjQgcGVyY3B1X2NvdW50ZXJfc3VtX2FuZF9zZXQoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpCit7CisJcmV0dXJuIF9fcGVyY3B1X2NvdW50ZXJfc3VtKGZiYywgMSk7Cit9CisKKwogc3RhdGljIGlubGluZSBzNjQgcGVyY3B1X2NvdW50ZXJfc3VtKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQogewotCXJldHVybiBfX3BlcmNwdV9jb3VudGVyX3N1bShmYmMpOworCXJldHVybiBfX3BlcmNwdV9jb3VudGVyX3N1bShmYmMsIDApOwogfQogCiBzdGF0aWMgaW5saW5lIHM2NCBwZXJjcHVfY291bnRlcl9yZWFkKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wcmVlbXB0LmggYi9pbmNsdWRlL2xpbnV4L3ByZWVtcHQuaAppbmRleCAyM2YwYzU0Li43MmIxYTEwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3ByZWVtcHQuaAorKysgYi9pbmNsdWRlL2xpbnV4L3ByZWVtcHQuaApAQCAtMTAsNyArMTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAKLSNpZmRlZiBDT05GSUdfREVCVUdfUFJFRU1QVAorI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX1BSRUVNUFQpIHx8IGRlZmluZWQoQ09ORklHX1BSRUVNUFRfVFJBQ0VSKQogICBleHRlcm4gdm9pZCBhZGRfcHJlZW1wdF9jb3VudChpbnQgdmFsKTsKICAgZXh0ZXJuIHZvaWQgc3ViX3ByZWVtcHRfY291bnQoaW50IHZhbCk7CiAjZWxzZQpAQCAtNTIsNiArNTIsMzQgQEAKIAlwcmVlbXB0X2NoZWNrX3Jlc2NoZWQoKTsgXAogfSB3aGlsZSAoMCkKIAorLyogRm9yIGRlYnVnZ2luZyBhbmQgdHJhY2VyIGludGVybmFscyBvbmx5ISAqLworI2RlZmluZSBhZGRfcHJlZW1wdF9jb3VudF9ub3RyYWNlKHZhbCkJCQlcCisJZG8geyBwcmVlbXB0X2NvdW50KCkgKz0gKHZhbCk7IH0gd2hpbGUgKDApCisjZGVmaW5lIHN1Yl9wcmVlbXB0X2NvdW50X25vdHJhY2UodmFsKQkJCVwKKwlkbyB7IHByZWVtcHRfY291bnQoKSAtPSAodmFsKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgaW5jX3ByZWVtcHRfY291bnRfbm90cmFjZSgpIGFkZF9wcmVlbXB0X2NvdW50X25vdHJhY2UoMSkKKyNkZWZpbmUgZGVjX3ByZWVtcHRfY291bnRfbm90cmFjZSgpIHN1Yl9wcmVlbXB0X2NvdW50X25vdHJhY2UoMSkKKworI2RlZmluZSBwcmVlbXB0X2Rpc2FibGVfbm90cmFjZSgpIFwKK2RvIHsgXAorCWluY19wcmVlbXB0X2NvdW50X25vdHJhY2UoKTsgXAorCWJhcnJpZXIoKTsgXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkX25vdHJhY2UoKSBcCitkbyB7IFwKKwliYXJyaWVyKCk7IFwKKwlkZWNfcHJlZW1wdF9jb3VudF9ub3RyYWNlKCk7IFwKK30gd2hpbGUgKDApCisKKy8qIHByZWVtcHRfY2hlY2tfcmVzY2hlZCBpcyBPSyB0byB0cmFjZSAqLworI2RlZmluZSBwcmVlbXB0X2VuYWJsZV9ub3RyYWNlKCkgXAorZG8geyBcCisJcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZF9ub3RyYWNlKCk7IFwKKwliYXJyaWVyKCk7IFwKKwlwcmVlbXB0X2NoZWNrX3Jlc2NoZWQoKTsgXAorfSB3aGlsZSAoMCkKKwogI2Vsc2UKIAogI2RlZmluZSBwcmVlbXB0X2Rpc2FibGUoKQkJZG8geyB9IHdoaWxlICgwKQpAQCAtNTksNiArODcsMTAgQEAKICNkZWZpbmUgcHJlZW1wdF9lbmFibGUoKQkJZG8geyB9IHdoaWxlICgwKQogI2RlZmluZSBwcmVlbXB0X2NoZWNrX3Jlc2NoZWQoKQkJZG8geyB9IHdoaWxlICgwKQogCisjZGVmaW5lIHByZWVtcHRfZGlzYWJsZV9ub3RyYWNlKCkJCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZF9ub3RyYWNlKCkJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBwcmVlbXB0X2VuYWJsZV9ub3RyYWNlKCkJCWRvIHsgfSB3aGlsZSAoMCkKKwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUFJFRU1QVF9OT1RJRklFUlMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHRyYWNlLmggYi9pbmNsdWRlL2xpbnV4L3B0cmFjZS5oCmluZGV4IGY5ODUwMWIuLmM2ZjVmOWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcHRyYWNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9wdHJhY2UuaApAQCAtOTUsOCArOTUsMTIgQEAKIAkJCSAgc3RydWN0IHRhc2tfc3RydWN0ICpuZXdfcGFyZW50KTsKIGV4dGVybiB2b2lkIF9fcHRyYWNlX3VubGluayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKTsKIGV4dGVybiB2b2lkIHB0cmFjZV91bnRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpOwotZXh0ZXJuIGludCBwdHJhY2VfbWF5X2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwotZXh0ZXJuIGludCBfX3B0cmFjZV9tYXlfYXR0YWNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CisjZGVmaW5lIFBUUkFDRV9NT0RFX1JFQUQgICAxCisjZGVmaW5lIFBUUkFDRV9NT0RFX0FUVEFDSCAyCisvKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLWVycm5vIG9uIGRlbmlhbC4gKi8KK2V4dGVybiBpbnQgX19wdHJhY2VfbWF5X2FjY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBtb2RlKTsKKy8qIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBkZW5pYWwuICovCitleHRlcm4gYm9vbCBwdHJhY2VfbWF5X2FjY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBtb2RlKTsKIAogc3RhdGljIGlubGluZSBpbnQgcHRyYWNlX3JlcGFyZW50ZWQoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHdtLmggYi9pbmNsdWRlL2xpbnV4L3B3bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NDVmODAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L3B3bS5oCkBAIC0wLDAgKzEsMzEgQEAKKyNpZm5kZWYgX19MSU5VWF9QV01fSAorI2RlZmluZSBfX0xJTlVYX1BXTV9ICisKK3N0cnVjdCBwd21fZGV2aWNlOworCisvKgorICogcHdtX3JlcXVlc3QgLSByZXF1ZXN0IGEgUFdNIGRldmljZQorICovCitzdHJ1Y3QgcHdtX2RldmljZSAqcHdtX3JlcXVlc3QoaW50IHB3bV9pZCwgY29uc3QgY2hhciAqbGFiZWwpOworCisvKgorICogcHdtX2ZyZWUgLSBmcmVlIGEgUFdNIGRldmljZQorICovCit2b2lkIHB3bV9mcmVlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOworCisvKgorICogcHdtX2NvbmZpZyAtIGNoYW5nZSBhIFBXTSBkZXZpY2UgY29uZmlndXJhdGlvbgorICovCitpbnQgcHdtX2NvbmZpZyhzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCBpbnQgZHV0eV9ucywgaW50IHBlcmlvZF9ucyk7CisKKy8qCisgKiBwd21fZW5hYmxlIC0gc3RhcnQgYSBQV00gb3V0cHV0IHRvZ2dsaW5nCisgKi8KK2ludCBwd21fZW5hYmxlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOworCisvKgorICogcHdtX2Rpc2FibGUgLSBzdG9wIGEgUFdNIG91dHB1dCB0b2dnbGluZworICovCit2b2lkIHB3bV9kaXNhYmxlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOworCisjZW5kaWYgLyogX19BU01fQVJDSF9QV01fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wd21fYmFja2xpZ2h0LmggYi9pbmNsdWRlL2xpbnV4L3B3bV9iYWNrbGlnaHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTk3NTRjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9wd21fYmFja2xpZ2h0LmgKQEAgLTAsMCArMSwxNyBAQAorLyoKKyAqIEdlbmVyaWMgUFdNIGJhY2tsaWdodCBkcml2ZXIgZGF0YSAtIHNlZSBkcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYworICovCisjaWZuZGVmIF9fTElOVVhfUFdNX0JBQ0tMSUdIVF9ICisjZGVmaW5lIF9fTElOVVhfUFdNX0JBQ0tMSUdIVF9ICisKK3N0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgeworCWludCBwd21faWQ7CisJdW5zaWduZWQgaW50IG1heF9icmlnaHRuZXNzOworCXVuc2lnbmVkIGludCBkZnRfYnJpZ2h0bmVzczsKKwl1bnNpZ25lZCBpbnQgcHdtX3BlcmlvZF9uczsKKwlpbnQgKCppbml0KShzdHJ1Y3QgZGV2aWNlICpkZXYpOworCWludCAoKm5vdGlmeSkoaW50IGJyaWdodG5lc3MpOworCXZvaWQgKCpleGl0KShzdHJ1Y3QgZGV2aWNlICpkZXYpOworfTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCBiL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkZTQ1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaApAQCAtMCwwICsxLDYgQEAKKyNpZm5kZWYgX0xJTlVYX1JDVUxJU1RfSAorI2RlZmluZSBfTElOVVhfUkNVTElTVF9ICisKKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKKyNlbmRpZgkvKiBfTElOVVhfUkNVTElTVF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Jlc3VtZS10cmFjZS5oIGIvaW5jbHVkZS9saW51eC9yZXN1bWUtdHJhY2UuaAppbmRleCBmM2Y0ZjI4Li5jOWJhMmZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3Jlc3VtZS10cmFjZS5oCisrKyBiL2luY2x1ZGUvbGludXgvcmVzdW1lLXRyYWNlLmgKQEAgLTgsNyArOCw3IEBACiAKIHN0cnVjdCBkZXZpY2U7CiBleHRlcm4gdm9pZCBzZXRfdHJhY2VfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKik7Ci1leHRlcm4gdm9pZCBnZW5lcmF0ZV9yZXN1bWVfdHJhY2Uodm9pZCAqdHJhY2VkYXRhLCB1bnNpZ25lZCBpbnQgdXNlcik7CitleHRlcm4gdm9pZCBnZW5lcmF0ZV9yZXN1bWVfdHJhY2UoY29uc3Qgdm9pZCAqdHJhY2VkYXRhLCB1bnNpZ25lZCBpbnQgdXNlcik7CiAKICNkZWZpbmUgVFJBQ0VfREVWSUNFKGRldikgZG8geyBcCiAJaWYgKHBtX3RyYWNlX2VuYWJsZWQpIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2NoZWQuaCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCBjNWQzZjg0Li4yMTM0OTE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NjaGVkLmgKKysrIGIvaW5jbHVkZS9saW51eC9zY2hlZC5oCkBAIC0xMzQsNyArMTM0LDYgQEAKIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX3VuaW50ZXJydXB0aWJsZSh2b2lkKTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX2FjdGl2ZSh2b2lkKTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX2lvd2FpdCh2b2lkKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIHdlaWdodGVkX2NwdWxvYWQoY29uc3QgaW50IGNwdSk7CiAKIHN0cnVjdCBzZXFfZmlsZTsKIHN0cnVjdCBjZnNfcnE7CkBAIC0yNDYsNiArMjQ1LDggQEAKIGV4dGVybiB2b2lkIGluaXRfaWRsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGUsIGludCBjcHUpOwogZXh0ZXJuIHZvaWQgaW5pdF9pZGxlX2Jvb3R1cF90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqaWRsZSk7CiAKK2V4dGVybiBpbnQgcnVucXVldWVfaXNfbG9ja2VkKHZvaWQpOworCiBleHRlcm4gY3B1bWFza190IG5vaHpfY3B1X21hc2s7CiAjaWYgZGVmaW5lZChDT05GSUdfU01QKSAmJiBkZWZpbmVkKENPTkZJR19OT19IWikKIGV4dGVybiBpbnQgc2VsZWN0X25vaHpfbG9hZF9iYWxhbmNlcihpbnQgY3B1KTsKQEAgLTc4NCw2ICs3ODUsOCBAQAogCXVuc2lnbmVkIGludCBiYWxhbmNlX2ludGVydmFsOwkvKiBpbml0aWFsaXNlIHRvIDEuIHVuaXRzIGluIG1zLiAqLwogCXVuc2lnbmVkIGludCBucl9iYWxhbmNlX2ZhaWxlZDsgLyogaW5pdGlhbGlzZSB0byAwICovCiAKKwl1NjQgbGFzdF91cGRhdGU7CisKICNpZmRlZiBDT05GSUdfU0NIRURTVEFUUwogCS8qIGxvYWRfYmFsYW5jZSgpIHN0YXRzICovCiAJdW5zaWduZWQgaW50IGxiX2NvdW50W0NQVV9NQVhfSURMRV9UWVBFU107CkBAIC04MjMsMjMgKzgyNiw2IEBACiAKICNlbmRpZgkvKiBDT05GSUdfU01QICovCiAKLS8qCi0gKiBBIHJ1bnF1ZXVlIGxhZGVuIHdpdGggYSBzaW5nbGUgbmljZSAwIHRhc2sgc2NvcmVzIGEgd2VpZ2h0ZWRfY3B1bG9hZCBvZgotICogU0NIRURfTE9BRF9TQ0FMRS4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIDEgaWYgYW55IGNwdSBpcyBsYWRlbiB3aXRoIGEKLSAqIHRhc2sgb2YgbmljZSAwIG9yIGVub3VnaCBsb3dlciBwcmlvcml0eSB0YXNrcyB0byBicmluZyB1cCB0aGUKLSAqIHdlaWdodGVkX2NwdWxvYWQKLSAqLwotc3RhdGljIGlubGluZSBpbnQgYWJvdmVfYmFja2dyb3VuZF9sb2FkKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBjcHU7Ci0KLQlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgewotCQlpZiAod2VpZ2h0ZWRfY3B1bG9hZChjcHUpID49IFNDSEVEX0xPQURfU0NBTEUpCi0JCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0cnVjdCBpb19jb250ZXh0OwkJCS8qIFNlZSBibGtkZXYuaCAqLwogI2RlZmluZSBOR1JPVVBTX1NNQUxMCQkzMgogI2RlZmluZSBOR1JPVVBTX1BFUl9CTE9DSwkoKHVuc2lnbmVkIGludCkoUEFHRV9TSVpFIC8gc2l6ZW9mKGdpZF90KSkpCkBAIC05MjEsOCArOTA3LDggQEAKIAl2b2lkICgqc2V0X2NwdXNfYWxsb3dlZCkoc3RydWN0IHRhc2tfc3RydWN0ICpwLAogCQkJCSBjb25zdCBjcHVtYXNrX3QgKm5ld21hc2spOwogCi0Jdm9pZCAoKmpvaW5fZG9tYWluKShzdHJ1Y3QgcnEgKnJxKTsKLQl2b2lkICgqbGVhdmVfZG9tYWluKShzdHJ1Y3QgcnEgKnJxKTsKKwl2b2lkICgqcnFfb25saW5lKShzdHJ1Y3QgcnEgKnJxKTsKKwl2b2lkICgqcnFfb2ZmbGluZSkoc3RydWN0IHJxICpycSk7CiAKIAl2b2lkICgqc3dpdGNoZWRfZnJvbSkgKHN0cnVjdCBycSAqdGhpc19ycSwgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAogCQkJICAgICAgIGludCBydW5uaW5nKTsKQEAgLTEwMzksNiArMTAyNSw3IEBACiAjZW5kaWYKIAogCWludCBwcmlvLCBzdGF0aWNfcHJpbywgbm9ybWFsX3ByaW87CisJdW5zaWduZWQgaW50IHJ0X3ByaW9yaXR5OwogCWNvbnN0IHN0cnVjdCBzY2hlZF9jbGFzcyAqc2NoZWRfY2xhc3M7CiAJc3RydWN0IHNjaGVkX2VudGl0eSBzZTsKIAlzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5IHJ0OwpAQCAtMTEyMiw3ICsxMTA5LDYgQEAKIAlpbnQgX191c2VyICpzZXRfY2hpbGRfdGlkOwkJLyogQ0xPTkVfQ0hJTERfU0VUVElEICovCiAJaW50IF9fdXNlciAqY2xlYXJfY2hpbGRfdGlkOwkJLyogQ0xPTkVfQ0hJTERfQ0xFQVJUSUQgKi8KIAotCXVuc2lnbmVkIGludCBydF9wcmlvcml0eTsKIAljcHV0aW1lX3QgdXRpbWUsIHN0aW1lLCB1dGltZXNjYWxlZCwgc3RpbWVzY2FsZWQ7CiAJY3B1dGltZV90IGd0aW1lOwogCWNwdXRpbWVfdCBwcmV2X3V0aW1lLCBwcmV2X3N0aW1lOwpAQCAtMTE0MSwxMiArMTEyNywxMiBAQAogCWdpZF90IGdpZCxlZ2lkLHNnaWQsZnNnaWQ7CiAJc3RydWN0IGdyb3VwX2luZm8gKmdyb3VwX2luZm87CiAJa2VybmVsX2NhcF90ICAgY2FwX2VmZmVjdGl2ZSwgY2FwX2luaGVyaXRhYmxlLCBjYXBfcGVybWl0dGVkLCBjYXBfYnNldDsKLQl1bnNpZ25lZCBzZWN1cmViaXRzOwogCXN0cnVjdCB1c2VyX3N0cnVjdCAqdXNlcjsKKwl1bnNpZ25lZCBzZWN1cmViaXRzOwogI2lmZGVmIENPTkZJR19LRVlTCisJdW5zaWduZWQgY2hhciBqaXRfa2V5cmluZzsJLyogZGVmYXVsdCBrZXlyaW5nIHRvIGF0dGFjaCByZXF1ZXN0ZWQga2V5cyB0byAqLwogCXN0cnVjdCBrZXkgKnJlcXVlc3Rfa2V5X2F1dGg7CS8qIGFzc3VtZWQgcmVxdWVzdF9rZXkgYXV0aG9yaXR5ICovCiAJc3RydWN0IGtleSAqdGhyZWFkX2tleXJpbmc7CS8qIGtleXJpbmcgcHJpdmF0ZSB0byB0aGlzIHRocmVhZCAqLwotCXVuc2lnbmVkIGNoYXIgaml0X2tleXJpbmc7CS8qIGRlZmF1bHQga2V5cmluZyB0byBhdHRhY2ggcmVxdWVzdGVkIGtleXMgdG8gKi8KICNlbmRpZgogCWNoYXIgY29tbVtUQVNLX0NPTU1fTEVOXTsgLyogZXhlY3V0YWJsZSBuYW1lIGV4Y2x1ZGluZyBwYXRoCiAJCQkJICAgICAtIGFjY2VzcyB3aXRoIFtnc11ldF90YXNrX2NvbW0gKHdoaWNoIGxvY2sKQEAgLTEyMzMsOCArMTIxOSw4IEBACiAjIGRlZmluZSBNQVhfTE9DS19ERVBUSCA0OFVMCiAJdTY0IGN1cnJfY2hhaW5fa2V5OwogCWludCBsb2NrZGVwX2RlcHRoOwotCXN0cnVjdCBoZWxkX2xvY2sgaGVsZF9sb2Nrc1tNQVhfTE9DS19ERVBUSF07CiAJdW5zaWduZWQgaW50IGxvY2tkZXBfcmVjdXJzaW9uOworCXN0cnVjdCBoZWxkX2xvY2sgaGVsZF9sb2Nrc1tNQVhfTE9DS19ERVBUSF07CiAjZW5kaWYKIAogLyogam91cm5hbGxpbmcgZmlsZXN5c3RlbSBpbmZvICovCkBAIC0xMjYyLDEwICsxMjQ4LDYgQEAKIAl1NjQgYWNjdF92bV9tZW0xOwkvKiBhY2N1bXVsYXRlZCB2aXJ0dWFsIG1lbW9yeSB1c2FnZSAqLwogCWNwdXRpbWVfdCBhY2N0X3N0aW1leHBkOy8qIHN0aW1lIHNpbmNlIGxhc3QgdXBkYXRlICovCiAjZW5kaWYKLSNpZmRlZiBDT05GSUdfTlVNQQotICAJc3RydWN0IG1lbXBvbGljeSAqbWVtcG9saWN5OwotCXNob3J0IGlsX25leHQ7Ci0jZW5kaWYKICNpZmRlZiBDT05GSUdfQ1BVU0VUUwogCW5vZGVtYXNrX3QgbWVtc19hbGxvd2VkOwogCWludCBjcHVzZXRfbWVtc19nZW5lcmF0aW9uOwpAQCAtMTI4NSw2ICsxMjY3LDEwIEBACiAJc3RydWN0IGxpc3RfaGVhZCBwaV9zdGF0ZV9saXN0OwogCXN0cnVjdCBmdXRleF9waV9zdGF0ZSAqcGlfc3RhdGVfY2FjaGU7CiAjZW5kaWYKKyNpZmRlZiBDT05GSUdfTlVNQQorCXN0cnVjdCBtZW1wb2xpY3kgKm1lbXBvbGljeTsKKwlzaG9ydCBpbF9uZXh0OworI2VuZGlmCiAJYXRvbWljX3QgZnNfZXhjbDsJLyogaG9sZGluZyBmcyBleGNsdXNpdmUgcmVzb3VyY2VzICovCiAJc3RydWN0IHJjdV9oZWFkIHJjdTsKIApAQCAtMTUwNCw2ICsxNDkwLDcgQEAKICNkZWZpbmUgUEZfU1dBUFdSSVRFCTB4MDA4MDAwMDAJLyogQWxsb3dlZCB0byB3cml0ZSB0byBzd2FwICovCiAjZGVmaW5lIFBGX1NQUkVBRF9QQUdFCTB4MDEwMDAwMDAJLyogU3ByZWFkIHBhZ2UgY2FjaGUgb3ZlciBjcHVzZXQgKi8KICNkZWZpbmUgUEZfU1BSRUFEX1NMQUIJMHgwMjAwMDAwMAkvKiBTcHJlYWQgc29tZSBzbGFiIGNhY2hlcyBvdmVyIGNwdXNldCAqLworI2RlZmluZSBQRl9USFJFQURfQk9VTkQJMHgwNDAwMDAwMAkvKiBUaHJlYWQgYm91bmQgdG8gc3BlY2lmaWMgY3B1ICovCiAjZGVmaW5lIFBGX01FTVBPTElDWQkweDEwMDAwMDAwCS8qIE5vbi1kZWZhdWx0IE5VTUEgbWVtcG9saWN5ICovCiAjZGVmaW5lIFBGX01VVEVYX1RFU1RFUgkweDIwMDAwMDAwCS8qIFRocmVhZCBiZWxvbmdzIHRvIHRoZSBydCBtdXRleCB0ZXN0ZXIgKi8KICNkZWZpbmUgUEZfRlJFRVpFUl9TS0lQCTB4NDAwMDAwMDAJLyogRnJlZXplciBzaG91bGQgbm90IGNvdW50IGl0IGFzIGZyZWV6ZWFibGUgKi8KQEAgLTE1NzMsMTMgKzE1NjAsMjggQEAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzY2hlZF9jbG9ja19pZGxlX3dha2V1cF9ldmVudCh1NjQgZGVsdGFfbnMpCiB7CiB9Ci0jZWxzZQorCisjaWZkZWYgQ09ORklHX05PX0haCitzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfY2xvY2tfdGlja19zdG9wKGludCBjcHUpCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzY2hlZF9jbG9ja190aWNrX3N0YXJ0KGludCBjcHUpCit7Cit9CisjZW5kaWYKKworI2Vsc2UgLyogQ09ORklHX0hBVkVfVU5TVEFCTEVfU0NIRURfQ0xPQ0sgKi8KIGV4dGVybiB2b2lkIHNjaGVkX2Nsb2NrX2luaXQodm9pZCk7CiBleHRlcm4gdTY0IHNjaGVkX2Nsb2NrX2NwdShpbnQgY3B1KTsKIGV4dGVybiB2b2lkIHNjaGVkX2Nsb2NrX3RpY2sodm9pZCk7CiBleHRlcm4gdm9pZCBzY2hlZF9jbG9ja19pZGxlX3NsZWVwX2V2ZW50KHZvaWQpOwogZXh0ZXJuIHZvaWQgc2NoZWRfY2xvY2tfaWRsZV93YWtldXBfZXZlbnQodTY0IGRlbHRhX25zKTsKKyNpZmRlZiBDT05GSUdfTk9fSFoKK2V4dGVybiB2b2lkIHNjaGVkX2Nsb2NrX3RpY2tfc3RvcChpbnQgY3B1KTsKK2V4dGVybiB2b2lkIHNjaGVkX2Nsb2NrX3RpY2tfc3RhcnQoaW50IGNwdSk7CiAjZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfSEFWRV9VTlNUQUJMRV9TQ0hFRF9DTE9DSyAqLwogCiAvKgogICogRm9yIGtlcm5lbC1pbnRlcm5hbCB1c2U6IGhpZ2gtc3BlZWQgKGJ1dCBzbGlnaHRseSBpbmNvcnJlY3QpIHBlci1jcHUKQEAgLTE2MjIsNiArMTYyNCw3IEBACiBleHRlcm4gdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF9mZWF0dXJlczsKIGV4dGVybiB1bnNpZ25lZCBpbnQgc3lzY3RsX3NjaGVkX21pZ3JhdGlvbl9jb3N0OwogZXh0ZXJuIHVuc2lnbmVkIGludCBzeXNjdGxfc2NoZWRfbnJfbWlncmF0ZTsKK2V4dGVybiB1bnNpZ25lZCBpbnQgc3lzY3RsX3NjaGVkX3NoYXJlc19yYXRlbGltaXQ7CiAKIGludCBzY2hlZF9ucl9sYXRlbmN5X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgX191c2VyICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLApAQCAtMTY1NSw2ICsxNjU4LDggQEAKIGV4dGVybiBpbnQgdGFza19jdXJyKGNvbnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CiBleHRlcm4gaW50IGlkbGVfY3B1KGludCBjcHUpOwogZXh0ZXJuIGludCBzY2hlZF9zZXRzY2hlZHVsZXIoc3RydWN0IHRhc2tfc3RydWN0ICosIGludCwgc3RydWN0IHNjaGVkX3BhcmFtICopOworZXh0ZXJuIGludCBzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgaW50LAorCQkJCSAgICAgIHN0cnVjdCBzY2hlZF9wYXJhbSAqKTsKIGV4dGVybiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGVfdGFzayhpbnQgY3B1KTsKIGV4dGVybiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnJfdGFzayhpbnQgY3B1KTsKIGV4dGVybiB2b2lkIHNldF9jdXJyX3Rhc2soaW50IGNwdSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKQEAgLTIxMzEsNiArMjEzNiwxOCBAQAogfQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfVFJBQ0lORworZXh0ZXJuIHZvaWQKK19fdHJhY2Vfc3BlY2lhbCh2b2lkICpfX3RyLCB2b2lkICpfX2RhdGEsCisJCXVuc2lnbmVkIGxvbmcgYXJnMSwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZAorX190cmFjZV9zcGVjaWFsKHZvaWQgKl9fdHIsIHZvaWQgKl9fZGF0YSwKKwkJdW5zaWduZWQgbG9uZyBhcmcxLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMykKK3sKK30KKyNlbmRpZgorCiBleHRlcm4gbG9uZyBzY2hlZF9zZXRhZmZpbml0eShwaWRfdCBwaWQsIGNvbnN0IGNwdW1hc2tfdCAqbmV3X21hc2spOwogZXh0ZXJuIGxvbmcgc2NoZWRfZ2V0YWZmaW5pdHkocGlkX3QgcGlkLCBjcHVtYXNrX3QgKm1hc2spOwogCkBAIC0yMjI1LDYgKzIyNDIsOCBAQAogfQogI2VuZGlmIC8qIENPTkZJR19NTV9PV05FUiAqLwogCisjZGVmaW5lIFRBU0tfU1RBVEVfVE9fQ0hBUl9TVFIgIlJTRFR0WlgiCisKICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWN1cmViaXRzLmggYi9pbmNsdWRlL2xpbnV4L3NlY3VyZWJpdHMuaAppbmRleCBjMWYxOWRiLi45MmYwOWJkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NlY3VyZWJpdHMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NlY3VyZWJpdHMuaApAQCAtNywxNCArNywxNSBAQAogICAgaW5oZXJpdGFuY2Ugb2Ygcm9vdC1wZXJtaXNzaW9ucyBhbmQgc3VpZC1yb290IGV4ZWN1dGFibGUgdW5kZXIKICAgIGNvbXBhdGliaWxpdHkgbW9kZS4gV2UgcmFpc2UgdGhlIGVmZmVjdGl2ZSBhbmQgaW5oZXJpdGFibGUgYml0bWFza3MKICAgICpvZiB0aGUgZXhlY3V0YWJsZSBmaWxlKiBpZiB0aGUgZWZmZWN0aXZlIHVpZCBvZiB0aGUgbmV3IHByb2Nlc3MgaXMKLSAgIDAuIElmIHRoZSByZWFsIHVpZCBpcyAwLCB3ZSByYWlzZSB0aGUgaW5oZXJpdGFibGUgYml0bWFzayBvZiB0aGUKKyAgIDAuIElmIHRoZSByZWFsIHVpZCBpcyAwLCB3ZSByYWlzZSB0aGUgZWZmZWN0aXZlIChsZWdhY3kpIGJpdCBvZiB0aGUKICAgIGV4ZWN1dGFibGUgZmlsZS4gKi8KICNkZWZpbmUgU0VDVVJFX05PUk9PVAkJCTAKICNkZWZpbmUgU0VDVVJFX05PUk9PVF9MT0NLRUQJCTEgIC8qIG1ha2UgYml0LTAgaW1tdXRhYmxlICovCiAKLS8qIFdoZW4gc2V0LCBzZXR1aWQgdG8vZnJvbSB1aWQgMCBkb2VzIG5vdCB0cmlnZ2VyIGNhcGFiaWxpdHktImZpeGVzIgotICAgdG8gYmUgY29tcGF0aWJsZSB3aXRoIG9sZCBwcm9ncmFtcyByZWx5aW5nIG9uIHNldCp1aWQgdG8gbG9vc2UKLSAgIHByaXZpbGVnZXMuIFdoZW4gdW5zZXQsIHNldHVpZCBkb2Vzbid0IGNoYW5nZSBwcml2aWxlZ2VzLiAqLworLyogV2hlbiBzZXQsIHNldHVpZCB0by9mcm9tIHVpZCAwIGRvZXMgbm90IHRyaWdnZXIgY2FwYWJpbGl0eS0iZml4dXAiLgorICAgV2hlbiB1bnNldCwgdG8gcHJvdmlkZSBjb21wYXRpYmxpbGl0eSB3aXRoIG9sZCBwcm9ncmFtcyByZWx5aW5nIG9uCisgICBzZXQqdWlkIHRvIGdhaW4vbG9zZSBwcml2aWxlZ2UsIHRyYW5zaXRpb25zIHRvL2Zyb20gdWlkIDAgY2F1c2UKKyAgIGNhcGFiaWxpdGllcyB0byBiZSBnYWluZWQvbG9zdC4gKi8KICNkZWZpbmUgU0VDVVJFX05PX1NFVFVJRF9GSVhVUAkJMgogI2RlZmluZSBTRUNVUkVfTk9fU0VUVUlEX0ZJWFVQX0xPQ0tFRAkzICAvKiBtYWtlIGJpdC0yIGltbXV0YWJsZSAqLwogCkBAIC0yNiwxMCArMjcsMTAgQEAKICNkZWZpbmUgU0VDVVJFX0tFRVBfQ0FQUwkJNAogI2RlZmluZSBTRUNVUkVfS0VFUF9DQVBTX0xPQ0tFRAkJNSAgLyogbWFrZSBiaXQtNCBpbW11dGFibGUgKi8KIAotLyogRWFjaCBzZWN1cmVzZXR0aW5nIGlzIGltcGxlbWVudGVkIHVzaW5nIHR3byBiaXRzLiBPbmUgYml0IHNwZWNpZnkKKy8qIEVhY2ggc2VjdXJlc2V0dGluZyBpcyBpbXBsZW1lbnRlZCB1c2luZyB0d28gYml0cy4gT25lIGJpdCBzcGVjaWZpZXMKICAgIHdoZXRoZXIgdGhlIHNldHRpbmcgaXMgb24gb3Igb2ZmLiBUaGUgb3RoZXIgYml0IHNwZWNpZnkgd2hldGhlciB0aGUKLSAgIHNldHRpbmcgaXMgZml4ZWQgb3Igbm90LiBBIHNldHRpbmcgd2hpY2ggaXMgZml4ZWQgY2Fubm90IGJlIGNoYW5nZWQKLSAgIGZyb20gdXNlci1sZXZlbC4gKi8KKyAgIHNldHRpbmcgaXMgbG9ja2VkIG9yIG5vdC4gQSBzZXR0aW5nIHdoaWNoIGlzIGxvY2tlZCBjYW5ub3QgYmUKKyAgIGNoYW5nZWQgZnJvbSB1c2VyLWxldmVsLiAqLwogI2RlZmluZSBpc3NlY3VyZV9tYXNrKFgpCSgxIDw8IChYKSkKICNkZWZpbmUgaXNzZWN1cmUoWCkJCShpc3NlY3VyZV9tYXNrKFgpICYgY3VycmVudC0+c2VjdXJlYml0cykKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oIGIvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCmluZGV4IDUwNzM3YzcuLjMxYzg4NTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgKQEAgLTQ2LDcgKzQ2LDggQEAKICAqLwogZXh0ZXJuIGludCBjYXBfY2FwYWJsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNhcCk7CiBleHRlcm4gaW50IGNhcF9zZXR0aW1lKHN0cnVjdCB0aW1lc3BlYyAqdHMsIHN0cnVjdCB0aW1lem9uZSAqdHopOwotZXh0ZXJuIGludCBjYXBfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKTsKK2V4dGVybiBpbnQgY2FwX3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwKKwkJICAgICAgdW5zaWduZWQgaW50IG1vZGUpOwogZXh0ZXJuIGludCBjYXBfY2FwZ2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LCBrZXJuZWxfY2FwX3QgKmVmZmVjdGl2ZSwga2VybmVsX2NhcF90ICppbmhlcml0YWJsZSwga2VybmVsX2NhcF90ICpwZXJtaXR0ZWQpOwogZXh0ZXJuIGludCBjYXBfY2Fwc2V0X2NoZWNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LCBrZXJuZWxfY2FwX3QgKmVmZmVjdGl2ZSwga2VybmVsX2NhcF90ICppbmhlcml0YWJsZSwga2VybmVsX2NhcF90ICpwZXJtaXR0ZWQpOwogZXh0ZXJuIHZvaWQgY2FwX2NhcHNldF9zZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsIGtlcm5lbF9jYXBfdCAqZWZmZWN0aXZlLCBrZXJuZWxfY2FwX3QgKmluaGVyaXRhYmxlLCBrZXJuZWxfY2FwX3QgKnBlcm1pdHRlZCk7CkBAIC03OSw2ICs4MCw3IEBACiBzdHJ1Y3QgeGZybV9wb2xpY3k7CiBzdHJ1Y3QgeGZybV9zdGF0ZTsKIHN0cnVjdCB4ZnJtX3VzZXJfc2VjX2N0eDsKK3N0cnVjdCBzZXFfZmlsZTsKIAogZXh0ZXJuIGludCBjYXBfbmV0bGlua19zZW5kKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiBleHRlcm4gaW50IGNhcF9uZXRsaW5rX3JlY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGNhcCk7CkBAIC0yODksMTAgKzI5MSw2IEBACiAgKglVcGRhdGUgbW9kdWxlIHN0YXRlIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwaXZvdC4KICAqCUBvbGRfcGF0aCBjb250YWlucyB0aGUgcGF0aCBmb3IgdGhlIG9sZCByb290LgogICoJQG5ld19wYXRoIGNvbnRhaW5zIHRoZSBwYXRoIGZvciB0aGUgbmV3IHJvb3QuCi0gKiBAc2JfZ2V0X21udF9vcHRzOgotICoJR2V0IHRoZSBzZWN1cml0eSByZWxldmFudCBtb3VudCBvcHRpb25zIHVzZWQgZm9yIGEgc3VwZXJibG9jawotICoJQHNiIHRoZSBzdXBlcmJsb2NrIHRvIGdldCBzZWN1cml0eSBtb3VudCBvcHRpb25zIGZyb20KLSAqCUBvcHRzIGJpbmFyeSBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIGFsbCBsc20gbW91bnQgZGF0YQogICogQHNiX3NldF9tbnRfb3B0czoKICAqCVNldCB0aGUgc2VjdXJpdHkgcmVsZXZhbnQgbW91bnQgb3B0aW9ucyB1c2VkIGZvciBhIHN1cGVyYmxvY2sKICAqCUBzYiB0aGUgc3VwZXJibG9jayB0byBzZXQgc2VjdXJpdHkgbW91bnQgb3B0aW9ucyBmb3IKQEAgLTExNzAsNiArMTE2OCw3IEBACiAgKglhdHRyaWJ1dGVzIHdvdWxkIGJlIGNoYW5nZWQgYnkgdGhlIGV4ZWN2ZS4KICAqCUBwYXJlbnQgY29udGFpbnMgdGhlIHRhc2tfc3RydWN0IHN0cnVjdHVyZSBmb3IgcGFyZW50IHByb2Nlc3MuCiAgKglAY2hpbGQgY29udGFpbnMgdGhlIHRhc2tfc3RydWN0IHN0cnVjdHVyZSBmb3IgY2hpbGQgcHJvY2Vzcy4KKyAqCUBtb2RlIGNvbnRhaW5zIHRoZSBQVFJBQ0VfTU9ERSBmbGFncyBpbmRpY2F0aW5nIHRoZSBmb3JtIG9mIGFjY2Vzcy4KICAqCVJldHVybiAwIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRlZC4KICAqIEBjYXBnZXQ6CiAgKglHZXQgdGhlIEBlZmZlY3RpdmUsIEBpbmhlcml0YWJsZSwgYW5kIEBwZXJtaXR0ZWQgY2FwYWJpbGl0eSBzZXRzIGZvcgpAQCAtMTI0MCwxMSArMTIzOSw2IEBACiAgKglAcGFnZXMgY29udGFpbnMgdGhlIG51bWJlciBvZiBwYWdlcy4KICAqCVJldHVybiAwIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRlZC4KICAqCi0gKiBAcmVnaXN0ZXJfc2VjdXJpdHk6Ci0gKglhbGxvdyBtb2R1bGUgc3RhY2tpbmcuCi0gKglAbmFtZSBjb250YWlucyB0aGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgbW9kdWxlIGJlaW5nIHN0YWNrZWQuCi0gKglAb3BzIGNvbnRhaW5zIGEgcG9pbnRlciB0byB0aGUgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgb2YgdGhlIG1vZHVsZSB0byBzdGFjay4KLSAqCiAgKiBAc2VjaWRfdG9fc2VjY3R4OgogICoJQ29udmVydCBzZWNpZCB0byBzZWN1cml0eSBjb250ZXh0LgogICoJQHNlY2lkIGNvbnRhaW5zIHRoZSBzZWN1cml0eSBJRC4KQEAgLTEyOTUsNyArMTI4OSw4IEBACiBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyB7CiAJY2hhciBuYW1lW1NFQ1VSSVRZX05BTUVfTUFYICsgMV07CiAKLQlpbnQgKCpwdHJhY2UpIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCk7CisJaW50ICgqcHRyYWNlKSAoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCSAgICAgICB1bnNpZ25lZCBpbnQgbW9kZSk7CiAJaW50ICgqY2FwZ2V0KSAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCiAJCSAgICAgICBrZXJuZWxfY2FwX3QgKmVmZmVjdGl2ZSwKIAkJICAgICAgIGtlcm5lbF9jYXBfdCAqaW5oZXJpdGFibGUsIGtlcm5lbF9jYXBfdCAqcGVybWl0dGVkKTsKQEAgLTEzMjgsNiArMTMyMyw3IEBACiAJdm9pZCAoKnNiX2ZyZWVfc2VjdXJpdHkpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKIAlpbnQgKCpzYl9jb3B5X2RhdGEpIChjaGFyICpvcmlnLCBjaGFyICpjb3B5KTsKIAlpbnQgKCpzYl9rZXJuX21vdW50KSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSk7CisJaW50ICgqc2Jfc2hvd19vcHRpb25zKSAoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKIAlpbnQgKCpzYl9zdGF0ZnMpIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwogCWludCAoKnNiX21vdW50KSAoY2hhciAqZGV2X25hbWUsIHN0cnVjdCBwYXRoICpwYXRoLAogCQkJIGNoYXIgKnR5cGUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZvaWQgKmRhdGEpOwpAQCAtMTM0Myw4ICsxMzM5LDYgQEAKIAkJCSAgICAgc3RydWN0IHBhdGggKm5ld19wYXRoKTsKIAl2b2lkICgqc2JfcG9zdF9waXZvdHJvb3QpIChzdHJ1Y3QgcGF0aCAqb2xkX3BhdGgsCiAJCQkJICAgc3RydWN0IHBhdGggKm5ld19wYXRoKTsKLQlpbnQgKCpzYl9nZXRfbW50X29wdHMpIChjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJCXN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cyk7CiAJaW50ICgqc2Jfc2V0X21udF9vcHRzKSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJCQlzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpOwogCXZvaWQgKCpzYl9jbG9uZV9tbnRfb3B0cykgKGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqb2xkc2IsCkBAIC0xNDcyLDEwICsxNDY2LDYgQEAKIAlpbnQgKCpuZXRsaW5rX3NlbmQpIChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpOwogCWludCAoKm5ldGxpbmtfcmVjdikgKHN0cnVjdCBza19idWZmICpza2IsIGludCBjYXApOwogCi0JLyogYWxsb3cgbW9kdWxlIHN0YWNraW5nICovCi0JaW50ICgqcmVnaXN0ZXJfc2VjdXJpdHkpIChjb25zdCBjaGFyICpuYW1lLAotCQkJCSAgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcyk7Ci0KIAl2b2lkICgqZF9pbnN0YW50aWF0ZSkgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSk7CiAKIAlpbnQgKCpnZXRwcm9jYXR0cikgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY2hhciAqbmFtZSwgY2hhciAqKnZhbHVlKTsKQEAgLTE1NjUsNyArMTU1NSw2IEBACiBleHRlcm4gaW50IHNlY3VyaXR5X2luaXQodm9pZCk7CiBleHRlcm4gaW50IHNlY3VyaXR5X21vZHVsZV9lbmFibGUoc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcyk7CiBleHRlcm4gaW50IHJlZ2lzdGVyX3NlY3VyaXR5KHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpOwotZXh0ZXJuIGludCBtb2RfcmVnX3NlY3VyaXR5KGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpOwogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKnNlY3VyaXR5ZnNfY3JlYXRlX2ZpbGUoY29uc3QgY2hhciAqbmFtZSwgbW9kZV90IG1vZGUsCiAJCQkJCSAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB2b2lkICpkYXRhLAogCQkJCQkgICAgIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpOwpAQCAtMTU3Myw3ICsxNTYyLDggQEAKIGV4dGVybiB2b2lkIHNlY3VyaXR5ZnNfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CiAKIC8qIFNlY3VyaXR5IG9wZXJhdGlvbnMgKi8KLWludCBzZWN1cml0eV9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpOworaW50IHNlY3VyaXR5X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwKKwkJICAgIHVuc2lnbmVkIGludCBtb2RlKTsKIGludCBzZWN1cml0eV9jYXBnZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCiAJCSAgICBrZXJuZWxfY2FwX3QgKmVmZmVjdGl2ZSwKIAkJICAgIGtlcm5lbF9jYXBfdCAqaW5oZXJpdGFibGUsCkBAIC0xNjA2LDYgKzE1OTYsNyBAQAogdm9pZCBzZWN1cml0eV9zYl9mcmVlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogaW50IHNlY3VyaXR5X3NiX2NvcHlfZGF0YShjaGFyICpvcmlnLCBjaGFyICpjb3B5KTsKIGludCBzZWN1cml0eV9zYl9rZXJuX21vdW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEpOworaW50IHNlY3VyaXR5X3NiX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogaW50IHNlY3VyaXR5X3NiX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwogaW50IHNlY3VyaXR5X3NiX21vdW50KGNoYXIgKmRldl9uYW1lLCBzdHJ1Y3QgcGF0aCAqcGF0aCwKIAkJICAgICAgY2hhciAqdHlwZSwgdW5zaWduZWQgbG9uZyBmbGFncywgdm9pZCAqZGF0YSk7CkBAIC0xNjE3LDggKzE2MDgsNiBAQAogdm9pZCBzZWN1cml0eV9zYl9wb3N0X2FkZG1vdW50KHN0cnVjdCB2ZnNtb3VudCAqbW50LCBzdHJ1Y3QgcGF0aCAqbW91bnRwb2ludCk7CiBpbnQgc2VjdXJpdHlfc2JfcGl2b3Ryb290KHN0cnVjdCBwYXRoICpvbGRfcGF0aCwgc3RydWN0IHBhdGggKm5ld19wYXRoKTsKIHZvaWQgc2VjdXJpdHlfc2JfcG9zdF9waXZvdHJvb3Qoc3RydWN0IHBhdGggKm9sZF9wYXRoLCBzdHJ1Y3QgcGF0aCAqbmV3X3BhdGgpOwotaW50IHNlY3VyaXR5X3NiX2dldF9tbnRfb3B0cyhjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJCXN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cyk7CiBpbnQgc2VjdXJpdHlfc2Jfc2V0X21udF9vcHRzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cyk7CiB2b2lkIHNlY3VyaXR5X3NiX2Nsb25lX21udF9vcHRzKGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqb2xkc2IsCiAJCQkJc3RydWN0IHN1cGVyX2Jsb2NrICpuZXdzYik7CkBAIC0xNzU1LDkgKzE3NDQsMTEgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQorc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LAorCQkJCSAgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwKKwkJCQkgIHVuc2lnbmVkIGludCBtb2RlKQogewotCXJldHVybiBjYXBfcHRyYWNlKHBhcmVudCwgY2hpbGQpOworCXJldHVybiBjYXBfcHRyYWNlKHBhcmVudCwgY2hpbGQsIG1vZGUpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9jYXBnZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCkBAIC0xODgxLDYgKzE4NzIsMTIgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfc2Jfc2hvd19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqbSwKKwkJCQkJICAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3sKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfc2Jfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIHsKIAlyZXR1cm4gMDsKQEAgLTE5MjcsMTIgKzE5MjQsNiBAQAogc3RhdGljIGlubGluZSB2b2lkIHNlY3VyaXR5X3NiX3Bvc3RfcGl2b3Ryb290KHN0cnVjdCBwYXRoICpvbGRfcGF0aCwKIAkJCQkJICAgICAgc3RydWN0IHBhdGggKm5ld19wYXRoKQogeyB9Ci1zdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9zYl9nZXRfbW50X29wdHMoY29uc3Qgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKLQkJCQkJICAgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQotewotCXNlY3VyaXR5X2luaXRfbW50X29wdHMob3B0cyk7Ci0JcmV0dXJuIDA7Ci19CiAKIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X3NiX3NldF9tbnRfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJCQkgICBzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NsYWIuaCBiL2luY2x1ZGUvbGludXgvc2xhYi5oCmluZGV4IGMyYWQzNTAuLjlhYTkwYTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2xhYi5oCisrKyBiL2luY2x1ZGUvbGludXgvc2xhYi5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIFdyaXR0ZW4gYnkgTWFyayBIZW1tZW50LCAxOTk2IChtYXJraGVAbmV4dGQuZGVtb24uY28udWspLgogICoKLSAqIChDKSBTR0kgMjAwNiwgQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+CisgKiAoQykgU0dJIDIwMDYsIENocmlzdG9waCBMYW1ldGVyCiAgKiAJQ2xlYW5lZCB1cCBhbmQgcmVzdHJ1Y3R1cmVkIHRvIGVhc2UgdGhlIGFkZGl0aW9uIG9mIGFsdGVybmF0aXZlCiAgKiAJaW1wbGVtZW50YXRpb25zIG9mIFNMQUIgYWxsb2NhdG9ycy4KICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zbHViX2RlZi5oIGIvaW5jbHVkZS9saW51eC9zbHViX2RlZi5oCmluZGV4IDcxZTQzYTEuLmQxMTdlYTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2x1Yl9kZWYuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NsdWJfZGVmLmgKQEAgLTQsNyArNCw3IEBACiAvKgogICogU0xVQiA6IEEgU2xhYiBhbGxvY2F0b3Igd2l0aG91dCBvYmplY3QgcXVldWVzLgogICoKLSAqIChDKSAyMDA3IFNHSSwgQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+CisgKiAoQykgMjAwNyBTR0ksIENocmlzdG9waCBMYW1ldGVyCiAgKi8KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2dmcC5oPgpAQCAtMTM3LDEwICsxMzcsMTIgQEAKIAlpZiAoc2l6ZSA8PSBLTUFMTE9DX01JTl9TSVpFKQogCQlyZXR1cm4gS01BTExPQ19TSElGVF9MT1c7CiAKKyNpZiBLTUFMTE9DX01JTl9TSVpFIDw9IDY0CiAJaWYgKHNpemUgPiA2NCAmJiBzaXplIDw9IDk2KQogCQlyZXR1cm4gMTsKIAlpZiAoc2l6ZSA+IDEyOCAmJiBzaXplIDw9IDE5MikKIAkJcmV0dXJuIDI7CisjZW5kaWYKIAlpZiAoc2l6ZSA8PSAgICAgICAgICA4KSByZXR1cm4gMzsKIAlpZiAoc2l6ZSA8PSAgICAgICAgIDE2KSByZXR1cm4gNDsKIAlpZiAoc2l6ZSA8PSAgICAgICAgIDMyKSByZXR1cm4gNTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc21wX2xvY2suaCBiL2luY2x1ZGUvbGludXgvc21wX2xvY2suaAppbmRleCBhYWIzYTRjLi44MTNiZTU5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NtcF9sb2NrLmgKKysrIGIvaW5jbHVkZS9saW51eC9zbXBfbG9jay5oCkBAIC0yNywxMSArMjcsMjQgQEAKIGV4dGVybiB2b2lkIF9fbG9ja2Z1bmMgbG9ja19rZXJuZWwodm9pZCkJX19hY3F1aXJlcyhrZXJuZWxfbG9jayk7CiBleHRlcm4gdm9pZCBfX2xvY2tmdW5jIHVubG9ja19rZXJuZWwodm9pZCkJX19yZWxlYXNlcyhrZXJuZWxfbG9jayk7CiAKKy8qCisgKiBWYXJpb3VzIGxlZ2FjeSBkcml2ZXJzIGRvbid0IHJlYWxseSBuZWVkIHRoZSBCS0wgaW4gYSBzcGVjaWZpYworICogZnVuY3Rpb24sIGJ1dCB0aGV5ICpkbyogbmVlZCB0byBrbm93IHRoYXQgdGhlIEJLTCBiZWNhbWUgYXZhaWxhYmxlLgorICogVGhpcyBmdW5jdGlvbiBqdXN0IGF2b2lkcyB3cmFwcGluZyBhIGJ1bmNoIG9mIGxvY2svdW5sb2NrIHBhaXJzCisgKiBhcm91bmQgY29kZSB3aGljaCBkb2Vzbid0IHJlYWxseSBuZWVkIGl0LgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgY3ljbGVfa2VybmVsX2xvY2sodm9pZCkKK3sKKwlsb2NrX2tlcm5lbCgpOworCXVubG9ja19rZXJuZWwoKTsKK30KKwogI2Vsc2UKIAogI2RlZmluZSBsb2NrX2tlcm5lbCgpCQkJCWRvIHsgfSB3aGlsZSgwKQogI2RlZmluZSB1bmxvY2tfa2VybmVsKCkJCQkJZG8geyB9IHdoaWxlKDApCiAjZGVmaW5lIHJlbGVhc2Vfa2VybmVsX2xvY2sodGFzaykJCWRvIHsgfSB3aGlsZSgwKQorI2RlZmluZSBjeWNsZV9rZXJuZWxfbG9jaygpCQkJZG8geyB9IHdoaWxlKDApCiAjZGVmaW5lIHJlYWNxdWlyZV9rZXJuZWxfbG9jayh0YXNrKQkJMAogI2RlZmluZSBrZXJuZWxfbG9ja2VkKCkJCQkJMQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaCBiL2luY2x1ZGUvbGludXgvdGhlcm1hbC5oCmluZGV4IDA2ZDNlNmUuLjkxNzcwN2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdGhlcm1hbC5oCisrKyBiL2luY2x1ZGUvbGludXgvdGhlcm1hbC5oCkBAIC02Niw4ICs2Niw3IEBACiAJCQkJKChsb25nKXQtMjczMis1KS8xMCA6ICgobG9uZyl0LTI3MzItNSkvMTApCiAjZGVmaW5lIENFTFNJVVNfVE9fS0VMVklOKHQpCSgodCkqMTArMjczMikKIAotI2lmIGRlZmluZWQoQ09ORklHX0hXTU9OKSB8fAlcCi0JKGRlZmluZWQoQ09ORklHX0hXTU9OX01PRFVMRSkgJiYgZGVmaW5lZChDT05GSUdfVEhFUk1BTF9NT0RVTEUpKQorI2lmIGRlZmluZWQoQ09ORklHX1RIRVJNQUxfSFdNT04pCiAvKiB0aGVybWFsIHpvbmUgZGV2aWNlcyB3aXRoIHRoZSBzYW1lIHR5cGUgc2hhcmUgb25lIGh3bW9uIGRldmljZSAqLwogc3RydWN0IHRoZXJtYWxfaHdtb25fZGV2aWNlIHsKIAljaGFyIHR5cGVbVEhFUk1BTF9OQU1FX0xFTkdUSF07CkBAIC05NCw4ICs5Myw3IEBACiAJc3RydWN0IGlkciBpZHI7CiAJc3RydWN0IG11dGV4IGxvY2s7CS8qIHByb3RlY3QgY29vbGluZyBkZXZpY2VzIGxpc3QgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Ci0jaWYgZGVmaW5lZChDT05GSUdfSFdNT04pIHx8CVwKLQkoZGVmaW5lZChDT05GSUdfSFdNT05fTU9EVUxFKSAmJiBkZWZpbmVkKENPTkZJR19USEVSTUFMX01PRFVMRSkpCisjaWYgZGVmaW5lZChDT05GSUdfVEhFUk1BTF9IV01PTikKIAlzdHJ1Y3QgbGlzdF9oZWFkIGh3bW9uX25vZGU7CiAJc3RydWN0IHRoZXJtYWxfaHdtb25fZGV2aWNlICpod21vbjsKIAlzdHJ1Y3QgdGhlcm1hbF9od21vbl9hdHRyIHRlbXBfaW5wdXQ7CS8qIGh3bW9uIHN5cyBhdHRyICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmggYi9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgKaW5kZXggMjRmM2QyMi4uMjE1OGZjMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC90b3BvbG9neS5oCisrKyBiL2luY2x1ZGUvbGludXgvdG9wb2xvZ3kuaApAQCAtMTc5LDQgKzE3OSwxNyBAQAogI2VuZGlmCiAjZW5kaWYgLyogQ09ORklHX05VTUEgKi8KIAorI2lmbmRlZiB0b3BvbG9neV9waHlzaWNhbF9wYWNrYWdlX2lkCisjZGVmaW5lIHRvcG9sb2d5X3BoeXNpY2FsX3BhY2thZ2VfaWQoY3B1KQkoKHZvaWQpKGNwdSksIC0xKQorI2VuZGlmCisjaWZuZGVmIHRvcG9sb2d5X2NvcmVfaWQKKyNkZWZpbmUgdG9wb2xvZ3lfY29yZV9pZChjcHUpCQkJKCh2b2lkKShjcHUpLCAwKQorI2VuZGlmCisjaWZuZGVmIHRvcG9sb2d5X3RocmVhZF9zaWJsaW5ncworI2RlZmluZSB0b3BvbG9neV90aHJlYWRfc2libGluZ3MoY3B1KQkJY3B1bWFza19vZl9jcHUoY3B1KQorI2VuZGlmCisjaWZuZGVmIHRvcG9sb2d5X2NvcmVfc2libGluZ3MKKyNkZWZpbmUgdG9wb2xvZ3lfY29yZV9zaWJsaW5ncyhjcHUpCQljcHVtYXNrX29mX2NwdShjcHUpCisjZW5kaWYKKwogI2VuZGlmIC8qIF9MSU5VWF9UT1BPTE9HWV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3dyaXRlYmFjay5oIGIvaW5jbHVkZS9saW51eC93cml0ZWJhY2suaAppbmRleCBmNDYyNDM5Li4xMmIxNWM1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3dyaXRlYmFjay5oCisrKyBiL2luY2x1ZGUvbGludXgvd3JpdGViYWNrLmgKQEAgLTYzLDYgKzYzLDcgQEAKIAl1bnNpZ25lZCBmb3Jfd3JpdGVwYWdlczoxOwkvKiBUaGlzIGlzIGEgd3JpdGVwYWdlcygpIGNhbGwgKi8KIAl1bnNpZ25lZCByYW5nZV9jeWNsaWM6MTsJLyogcmFuZ2Vfc3RhcnQgaXMgY3ljbGljICovCiAJdW5zaWduZWQgbW9yZV9pbzoxOwkJLyogbW9yZSBpbyB0byBiZSBkaXNwYXRjaGVkICovCisJdW5zaWduZWQgcmFuZ2VfY29udDoxOwogfTsKIAogLyoKQEAgLTEwNSw2ICsxMDYsOCBAQAogZXh0ZXJuIGludCBibG9ja19kdW1wOwogZXh0ZXJuIGludCBsYXB0b3BfbW9kZTsKIAorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZGV0ZXJtaW5lX2RpcnR5YWJsZV9tZW1vcnkodm9pZCk7CisKIGV4dGVybiBpbnQgZGlydHlfcmF0aW9faGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCQlzdHJ1Y3QgZmlsZSAqZmlscCwgdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAogCQlsb2ZmX3QgKnBwb3MpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC94ZnJtLmggYi9pbmNsdWRlL2xpbnV4L3hmcm0uaAppbmRleCAyY2E2YmFlLi5mYjBjMjE1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3hmcm0uaAorKysgYi9pbmNsdWRlL2xpbnV4L3hmcm0uaApAQCAtMzM5LDYgKzMzOSw3IEBACiAjZGVmaW5lIFhGUk1fU1RBVEVfTk9QTVRVRElTQwk0CiAjZGVmaW5lIFhGUk1fU1RBVEVfV0lMRFJFQ1YJOAogI2RlZmluZSBYRlJNX1NUQVRFX0lDTVAJCTE2CisjZGVmaW5lIFhGUk1fU1RBVEVfQUZfVU5TUEVDCTMyCiB9OwogCiBzdHJ1Y3QgeGZybV91c2Vyc2FfaWQgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS9jeDI1ODQwLmggYi9pbmNsdWRlL21lZGlhL2N4MjU4NDAuaAppbmRleCBjZDU5OWFkLi5kYjQzMWQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL21lZGlhL2N4MjU4NDAuaAorKysgYi9pbmNsdWRlL21lZGlhL2N4MjU4NDAuaApAQCAtMzIsMTIgKzMyLDE2IEBACiAJQ1gyNTg0MF9DT01QT1NJVEU3LAogCUNYMjU4NDBfQ09NUE9TSVRFOCwKIAotCS8qIFMtVmlkZW8gaW5wdXRzIGNvbnNpc3Qgb2Ygb25lIGx1bWEgaW5wdXQgKEluMS1JbjQpIE9SZWQgd2l0aCBvbmUKKwkvKiBTLVZpZGVvIGlucHV0cyBjb25zaXN0IG9mIG9uZSBsdW1hIGlucHV0IChJbjEtSW44KSBPUmVkIHdpdGggb25lCiAJICAgY2hyb21hIGlucHV0IChJbjUtSW44KSAqLwogCUNYMjU4NDBfU1ZJREVPX0xVTUExID0gMHgxMCwKIAlDWDI1ODQwX1NWSURFT19MVU1BMiA9IDB4MjAsCiAJQ1gyNTg0MF9TVklERU9fTFVNQTMgPSAweDMwLAogCUNYMjU4NDBfU1ZJREVPX0xVTUE0ID0gMHg0MCwKKwlDWDI1ODQwX1NWSURFT19MVU1BNSA9IDB4NTAsCisJQ1gyNTg0MF9TVklERU9fTFVNQTYgPSAweDYwLAorCUNYMjU4NDBfU1ZJREVPX0xVTUE3ID0gMHg3MCwKKwlDWDI1ODQwX1NWSURFT19MVU1BOCA9IDB4ODAsCiAJQ1gyNTg0MF9TVklERU9fQ0hST01BNCA9IDB4NDAwLAogCUNYMjU4NDBfU1ZJREVPX0NIUk9NQTUgPSAweDUwMCwKIAlDWDI1ODQwX1NWSURFT19DSFJPTUE2ID0gMHg2MDAsCmRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL2lyLWNvbW1vbi5oIGIvaW5jbHVkZS9tZWRpYS9pci1jb21tb24uaAppbmRleCBiZmVlOGJlLi5iOGU4YWE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL21lZGlhL2lyLWNvbW1vbi5oCisrKyBiL2luY2x1ZGUvbWVkaWEvaXItY29tbW9uLmgKQEAgLTE0Niw2ICsxNDYsNyBAQAogZXh0ZXJuIElSX0tFWVRBQl9UWVBFIGlyX2NvZGVzX3Bpbm5hY2xlX3BjdHZfaGRbSVJfS0VZVEFCX1NJWkVdOwogZXh0ZXJuIElSX0tFWVRBQl9UWVBFIGlyX2NvZGVzX2dlbml1c190dmdvX2ExMW1jZVtJUl9LRVlUQUJfU0laRV07CiBleHRlcm4gSVJfS0VZVEFCX1RZUEUgaXJfY29kZXNfcG93ZXJjb2xvcl9yZWFsX2FuZ2VsW0lSX0tFWVRBQl9TSVpFXTsKK2V4dGVybiBJUl9LRVlUQUJfVFlQRSBpcl9jb2Rlc19hdmVybWVkaWFfYTE2ZFtJUl9LRVlUQUJfU0laRV07CiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL3Y0bDItZGV2LmggYi9pbmNsdWRlL21lZGlhL3Y0bDItZGV2LmgKaW5kZXggMzNmMDFhZS4uODU5ZjdhNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tZWRpYS92NGwyLWRldi5oCisrKyBiL2luY2x1ZGUvbWVkaWEvdjRsMi1kZXYuaApAQCAtNDAsOSArNDAsOSBAQAogI2RlZmluZSBWRkxfVFlQRV9WVFgJCTMKIAogLyogIFZpZGVvIHN0YW5kYXJkIGZ1bmN0aW9ucyAgKi8KLWV4dGVybiBjaGFyICp2NGwyX25vcm1fdG9fbmFtZSh2NGwyX3N0ZF9pZCBpZCk7CitleHRlcm4gY29uc3QgY2hhciAqdjRsMl9ub3JtX3RvX25hbWUodjRsMl9zdGRfaWQgaWQpOwogZXh0ZXJuIGludCB2NGwyX3ZpZGVvX3N0ZF9jb25zdHJ1Y3Qoc3RydWN0IHY0bDJfc3RhbmRhcmQgKnZzLAotCQkJCSAgICBpbnQgaWQsIGNoYXIgKm5hbWUpOworCQkJCSAgICBpbnQgaWQsIGNvbnN0IGNoYXIgKm5hbWUpOwogLyogUHJpbnRzIHRoZSBpb2N0bCBpbiBhIGh1bWFuLXJlYWRhYmxlIGZvcm1hdCAqLwogZXh0ZXJuIHZvaWQgdjRsX3ByaW50a19pb2N0bCh1bnNpZ25lZCBpbnQgY21kKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbWFjODAyMTEuaCBiL2luY2x1ZGUvbmV0L21hYzgwMjExLmgKaW5kZXggZGFlM2Y5ZS4uYmNkMTYyMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbWFjODAyMTEuaAorKysgYi9pbmNsdWRlL25ldC9tYWM4MDIxMS5oCkBAIC01OTUsNiArNTk1LDE1IEBACiAJQUxHX0NDTVAsCiB9OwogCisvKioKKyAqIGVudW0gaWVlZTgwMjExX2tleV9sZW4gLSBrZXkgbGVuZ3RoCisgKiBAV0VQNDA6IFdFUCA1IGJ5dGUgbG9uZyBrZXkKKyAqIEBXRVAxMDQ6IFdFUCAxMyBieXRlIGxvbmcga2V5CisgKi8KK2VudW0gaWVlZTgwMjExX2tleV9sZW4geworCUxFTl9XRVA0MCA9IDUsCisJTEVOX1dFUDEwNCA9IDEzLAorfTsKIAogLyoqCiAgKiBlbnVtIGllZWU4MDIxMV9rZXlfZmxhZ3MgLSBrZXkgZmxhZ3MKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmggYi9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCmluZGV4IGFiNTAyZWMuLmE4N2ZjMDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmgKKysrIGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaApAQCAtMTc4LDcgKzE3OCw3IEBACiBleHRlcm4gc3RydWN0IFFkaXNjICpxZGlzY19jcmVhdGVfZGZsdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJCSAgICAgICBzdHJ1Y3QgUWRpc2Nfb3BzICpvcHMsIHUzMiBwYXJlbnRpZCk7CiBleHRlcm4gdm9pZCB0Y2ZfZGVzdHJveShzdHJ1Y3QgdGNmX3Byb3RvICp0cCk7Ci1leHRlcm4gdm9pZCB0Y2ZfZGVzdHJveV9jaGFpbihzdHJ1Y3QgdGNmX3Byb3RvICpmbCk7CitleHRlcm4gdm9pZCB0Y2ZfZGVzdHJveV9jaGFpbihzdHJ1Y3QgdGNmX3Byb3RvICoqZmwpOwogCiBzdGF0aWMgaW5saW5lIGludCBfX3FkaXNjX2VucXVldWVfdGFpbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCwKIAkJCQkgICAgICAgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcGNtY2lhL2J1bGttZW0uaCBiL2luY2x1ZGUvcGNtY2lhL2J1bGttZW0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJjNzQ3Mi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL3BjbWNpYS9idWxrbWVtLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogYnVsa21lbS5oIC0tIERlZmluaXRpb25zIGZvciBidWxrIG1lbW9yeSBzZXJ2aWNlcwotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKgotICogVGhlIGluaXRpYWwgZGV2ZWxvcGVyIG9mIHRoZSBvcmlnaW5hbCBjb2RlIGlzIERhdmlkIEEuIEhpbmRzCi0gKiA8ZGFoaW5kc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LiAgUG9ydGlvbnMgY3JlYXRlZCBieSBEYXZpZCBBLiBIaW5kcwotICogYXJlIENvcHlyaWdodCAoQykgMTk5OSBEYXZpZCBBLiBIaW5kcy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogKEMpIDE5OTkJCURhdmlkIEEuIEhpbmRzCi0gKi8KLQotI2lmbmRlZiBfTElOVVhfQlVMS01FTV9ICi0jZGVmaW5lIF9MSU5VWF9CVUxLTUVNX0gKLQotLyogRm9yIEdldEZpcnN0UmVnaW9uIGFuZCBHZXROZXh0UmVnaW9uICovCi10eXBlZGVmIHN0cnVjdCByZWdpb25faW5mb190IHsKLSAgICB1X2ludAkJQXR0cmlidXRlczsKLSAgICB1X2ludAkJQ2FyZE9mZnNldDsKLSAgICB1X2ludAkJUmVnaW9uU2l6ZTsKLSAgICB1X2ludAkJQWNjZXNzU3BlZWQ7Ci0gICAgdV9pbnQJCUJsb2NrU2l6ZTsKLSAgICB1X2ludAkJUGFydE11bHRpcGxlOwotICAgIHVfY2hhcgkJSmVkZWNNZnIsIEplZGVjSW5mbzsKLSAgICBtZW1vcnlfaGFuZGxlX3QJbmV4dDsKLX0gcmVnaW9uX2luZm9fdDsKLQotI2RlZmluZSBSRUdJT05fVFlQRQkJMHgwMDAxCi0jZGVmaW5lIFJFR0lPTl9UWVBFX0NNCQkweDAwMDAKLSNkZWZpbmUgUkVHSU9OX1RZUEVfQU0JCTB4MDAwMQotI2RlZmluZSBSRUdJT05fUFJFRkVUQ0gJCTB4MDAwOAotI2RlZmluZSBSRUdJT05fQ0FDSEVBQkxFCTB4MDAxMAotI2RlZmluZSBSRUdJT05fQkFSX01BU0sJCTB4ZTAwMAotI2RlZmluZSBSRUdJT05fQkFSX1NISUZUCTEzCi0KLWludCBwY21jaWFfZ2V0X2ZpcnN0X3JlZ2lvbihzdHJ1Y3QgcGNtY2lhX2RldmljZSAqaGFuZGxlLCByZWdpb25faW5mb190ICpyZ24pOwotaW50IHBjbWNpYV9nZXRfbmV4dF9yZWdpb24oc3RydWN0IHBjbWNpYV9kZXZpY2UgKmhhbmRsZSwgcmVnaW9uX2luZm9fdCAqcmduKTsKLQotI2VuZGlmIC8qIF9MSU5VWF9CVUxLTUVNX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcGNtY2lhL2Npc3RwbC5oIGIvaW5jbHVkZS9wY21jaWEvY2lzdHBsLmgKaW5kZXggZDNiYmIxOS4uZTJlMTBjMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wY21jaWEvY2lzdHBsLmgKKysrIGIvaW5jbHVkZS9wY21jaWEvY2lzdHBsLmgKQEAgLTU5NSw3ICs1OTUsNyBAQAogaW50IHBjY2FyZF9nZXRfdHVwbGVfZGF0YShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgdHVwbGVfdCAqdHVwbGUpOwogaW50IHBjY2FyZF9wYXJzZV90dXBsZSh0dXBsZV90ICp0dXBsZSwgY2lzcGFyc2VfdCAqcGFyc2UpOwogCi1pbnQgcGNjYXJkX3ZhbGlkYXRlX2NpcyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgdW5zaWduZWQgaW50IGZ1bmN0aW9uLCBjaXNpbmZvX3QgKmluZm8pOworaW50IHBjY2FyZF92YWxpZGF0ZV9jaXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHVuc2lnbmVkIGludCBmdW5jdGlvbiwgdW5zaWduZWQgaW50ICpjb3VudCk7CiAKIC8qIC4uLiBidXQgdXNlIHRoZXNlIHdyYXBwZXJzIGluc3RlYWQgKi8KICNkZWZpbmUgcGNtY2lhX2dldF9maXJzdF90dXBsZShwX2RldiwgdHVwbGUpIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcGNtY2lhL2NzLmggYi9pbmNsdWRlL3BjbWNpYS9jcy5oCmluZGV4IDg3YTI2MGUuLjQ1ZDg0YjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcGNtY2lhL2NzLmgKKysrIGIvaW5jbHVkZS9wY21jaWEvY3MuaApAQCAtMzczLDkgKzM3Myw2IEBACiAKIGludCBwY21jaWFfYWNjZXNzX2NvbmZpZ3VyYXRpb25fcmVnaXN0ZXIoc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBjb25mX3JlZ190ICpyZWcpOwogaW50IHBjbWNpYV9nZXRfY29uZmlndXJhdGlvbl9pbmZvKHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwgY29uZmlnX2luZm9fdCAqY29uZmlnKTsKLWludCBwY21jaWFfZ2V0X2ZpcnN0X3dpbmRvdyh3aW5kb3dfaGFuZGxlX3QgKndpbiwgd2luX3JlcV90ICpyZXEpOwotaW50IHBjbWNpYV9nZXRfbmV4dF93aW5kb3cod2luZG93X2hhbmRsZV90ICp3aW4sIHdpbl9yZXFfdCAqcmVxKTsKLWludCBwY21jaWFfZ2V0X3N0YXR1cyhzdHJ1Y3QgcGNtY2lhX2RldmljZSAqcF9kZXYsIGNzX3N0YXR1c190ICpzdGF0dXMpOwogaW50IHBjbWNpYV9nZXRfbWVtX3BhZ2Uod2luZG93X2hhbmRsZV90IHdpbiwgbWVtcmVxX3QgKnJlcSk7CiBpbnQgcGNtY2lhX21hcF9tZW1fcGFnZSh3aW5kb3dfaGFuZGxlX3Qgd2luLCBtZW1yZXFfdCAqcmVxKTsKIGludCBwY21jaWFfbW9kaWZ5X2NvbmZpZ3VyYXRpb24oc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBtb2Rjb25mX3QgKm1vZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS9jc190eXBlcy5oIGIvaW5jbHVkZS9wY21jaWEvY3NfdHlwZXMuaAppbmRleCA5YTZiY2M0Li5mNDAyYTBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3BjbWNpYS9jc190eXBlcy5oCisrKyBiL2luY2x1ZGUvcGNtY2lhL2NzX3R5cGVzLmgKQEAgLTIxLDcgKzIxLDggQEAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fYXZyMzJfXykKKyNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19hdnIzMl9fKSB8fCBcCisJZGVmaW5lZChfX2JmaW5fXykKIC8qIFRoaXMgKGlvYWRkcl90KSBpcyBleHBvc2VkIHRvIHVzZXJzcGFjZSAmIGhlbmNlIGNhbm5vdCBiZSBjaGFuZ2VkLiAqLwogdHlwZWRlZiB1X2ludCAgIGlvYWRkcl90OwogI2Vsc2UKQEAgLTMzLDkgKzM0LDYgQEAKIHR5cGVkZWYgdV9jaGFyCWNpc2RhdGFfdDsKIHR5cGVkZWYgdV9zaG9ydAlwYWdlX3Q7CiAKLXN0cnVjdCBwY21jaWFfZGV2aWNlOwotdHlwZWRlZiBzdHJ1Y3QgcGNtY2lhX2RldmljZSAqY2xpZW50X2hhbmRsZV90OwotCiBzdHJ1Y3Qgd2luZG93X3Q7CiB0eXBlZGVmIHN0cnVjdCB3aW5kb3dfdCAqd2luZG93X2hhbmRsZV90OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS9kcy5oIGIvaW5jbHVkZS9wY21jaWEvZHMuaAppbmRleCBmMDQ3YTFmLi5iMzE2MDI3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3BjbWNpYS9kcy5oCisrKyBiL2luY2x1ZGUvcGNtY2lhL2RzLmgKQEAgLTIwLDcgKzIwLDYgQEAKICNpbmNsdWRlIDxsaW51eC9tb2RfZGV2aWNldGFibGUuaD4KICNlbmRpZgogCi0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvZGV2aWNlX2lkLmg+CiAKQEAgLTUxLDYgKzUwLDI0IEBACiAgICAgdV9pbnQJCUNhcmRPZmZzZXQ7CiB9IG10ZF9pbmZvX3Q7CiAKK3R5cGVkZWYgc3RydWN0IHJlZ2lvbl9pbmZvX3QgeworICAgIHVfaW50CQlBdHRyaWJ1dGVzOworICAgIHVfaW50CQlDYXJkT2Zmc2V0OworICAgIHVfaW50CQlSZWdpb25TaXplOworICAgIHVfaW50CQlBY2Nlc3NTcGVlZDsKKyAgICB1X2ludAkJQmxvY2tTaXplOworICAgIHVfaW50CQlQYXJ0TXVsdGlwbGU7CisgICAgdV9jaGFyCQlKZWRlY01mciwgSmVkZWNJbmZvOworICAgIG1lbW9yeV9oYW5kbGVfdAluZXh0OworfSByZWdpb25faW5mb190OworI2RlZmluZSBSRUdJT05fVFlQRQkJMHgwMDAxCisjZGVmaW5lIFJFR0lPTl9UWVBFX0NNCQkweDAwMDAKKyNkZWZpbmUgUkVHSU9OX1RZUEVfQU0JCTB4MDAwMQorI2RlZmluZSBSRUdJT05fUFJFRkVUQ0gJCTB4MDAwOAorI2RlZmluZSBSRUdJT05fQ0FDSEVBQkxFCTB4MDAxMAorI2RlZmluZSBSRUdJT05fQkFSX01BU0sJCTB4ZTAwMAorI2RlZmluZSBSRUdJT05fQkFSX1NISUZUCTEzCisKIHR5cGVkZWYgdW5pb24gZHNfaW9jdGxfYXJnX3QgewogICAgIGFkanVzdF90CQlhZGp1c3Q7CiAgICAgY29uZmlnX2luZm9fdAljb25maWc7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS9zcy5oIGIvaW5jbHVkZS9wY21jaWEvc3MuaAppbmRleCBmOTVkY2EwLi5lZDkxOWRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3BjbWNpYS9zcy5oCisrKyBiL2luY2x1ZGUvcGNtY2lhL3NzLmgKQEAgLTIxLDcgKzIxLDYgQEAKIAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaWZkZWYgQ09ORklHX0NBUkRCVVMKICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNlbmRpZgpAQCAtMTM2LDggKzEzNSwxNCBAQAogCXN0cnVjdCByZXNvdXJjZSogKCpmaW5kX21lbSkJKHVuc2lnbmVkIGxvbmcgYmFzZSwgdW5zaWduZWQgbG9uZyBudW0sCiAJCQkJCSB1bnNpZ25lZCBsb25nIGFsaWduLCBpbnQgbG93LAogCQkJCQkgc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpOwotCWludAkoKmFkanVzdF9yZXNvdXJjZSkJKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLAotCQkJCQkgYWRqdXN0X3QgKmFkaik7CisJaW50CSgqYWRkX2lvKQkJKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLAorCQkJCQkgdW5zaWduZWQgaW50IGFjdGlvbiwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgcl9zdGFydCwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgcl9lbmQpOworCWludAkoKmFkZF9tZW0pCQkoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsCisJCQkJCSB1bnNpZ25lZCBpbnQgYWN0aW9uLAorCQkJCQkgdW5zaWduZWQgbG9uZyByX3N0YXJ0LAorCQkJCQkgdW5zaWduZWQgbG9uZyByX2VuZCk7CiAJaW50CSgqaW5pdCkJCQkoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpOwogCXZvaWQJKCpleGl0KQkJCShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcyk7CiB9OwpAQCAtMjQ1LDcgKzI1MCw2IEBACiAKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QJCSp0aHJlYWQ7CiAJc3RydWN0IGNvbXBsZXRpb24JCXRocmVhZF9kb25lOwotCXdhaXRfcXVldWVfaGVhZF90CQl0aHJlYWRfd2FpdDsKIAlzcGlubG9ja190CQkJdGhyZWFkX2xvY2s7CS8qIHByb3RlY3RzIHRocmVhZF9ldmVudHMgKi8KIAl1bnNpZ25lZCBpbnQJCQl0aHJlYWRfZXZlbnRzOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS92ZXJzaW9uLmggYi9pbmNsdWRlL3BjbWNpYS92ZXJzaW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhZDljNWUuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9wY21jaWEvdmVyc2lvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0vKiB2ZXJzaW9uLmggMS45NCAyMDAwLzEwLzAzIDE3OjU1OjQ4IChEYXZpZCBIaW5kcykgKi8KLQotLyogVGhpcyBmaWxlIHdpbGwgYmUgcmVtb3ZlZCwgcGxlYXNlIGRvbid0IGluY2x1ZGUgaXQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl9hZGRyLmggYi9pbmNsdWRlL3JkbWEvaWJfYWRkci5oCmluZGV4IGMzNjc1MGYuLjQ4MzA1N2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl9hZGRyLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX2FkZHIuaApAQCAtMiwyOSArMiwzMyBAQAogICogQ29weXJpZ2h0IChjKSAyMDA1IFZvbHRhaXJlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUgSW50ZWwgQ29ycG9yYXRpb24uICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKLSAqIFRoaXMgU29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGljZW5zZXM6CisgKiBUaGlzIHNvZnR3YXJlIGlzIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYSBjaG9pY2Ugb2Ygb25lIG9mIHR3bworICogbGljZW5zZXMuICBZb3UgbWF5IGNob29zZSB0byBiZSBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIsIGF2YWlsYWJsZSBmcm9tIHRoZSBmaWxlCisgKiBDT1BZSU5HIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLCBvciB0aGUKKyAqIE9wZW5JQi5vcmcgQlNEIGxpY2Vuc2UgYmVsb3c6CiAgKgotICogMSkgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiQ29tbW9uIFB1YmxpYyBMaWNlbnNlIDEuMCIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2NwbC5waHAuCisgKiAgICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvcgorICogICAgIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZworICogICAgIGNvbmRpdGlvbnMgYXJlIG1ldDoKICAqCi0gKiAyKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJUaGUgQlNEIExpY2Vuc2UiIGEgY29weSBvZiB3aGljaCBpcwotICogICAgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lci4KICAqCi0gKiAzKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIiIGEKLSAqICAgIGNvcHkgb2Ygd2hpY2ggaXMgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICAgICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIExpY2Vuc2VlIGhhcyB0aGUgcmlnaHQgdG8gY2hvb3NlIG9uZSBvZiB0aGUgYWJvdmUgbGljZW5zZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSBhbmQgb25lIG9mIHRoZSBsaWNlbnNlIG5vdGljZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbgotICogYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisgKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisgKiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KICAqLwogCiAjaWYgIWRlZmluZWQoSUJfQUREUl9IKQpAQCAtNTcsNiArNjEsNyBAQAogCXVuc2lnbmVkIGNoYXIgZHN0X2Rldl9hZGRyW01BWF9BRERSX0xFTl07CiAJdW5zaWduZWQgY2hhciBicm9hZGNhc3RbTUFYX0FERFJfTEVOXTsKIAllbnVtIHJkbWFfbm9kZV90eXBlIGRldl90eXBlOworCXN0cnVjdCBuZXRfZGV2aWNlICpzcmNfZGV2OwogfTsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfY2FjaGUuaCBiL2luY2x1ZGUvcmRtYS9pYl9jYWNoZS5oCmluZGV4IGYxNzlkMjMuLjAwYTJiOGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl9jYWNoZS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9jYWNoZS5oCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9jYWNoZS5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIF9JQl9DQUNIRV9ICmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfY20uaCBiL2luY2x1ZGUvcmRtYS9pYl9jbS5oCmluZGV4IGE2MjdjODYuLmVjN2M2ZDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl9jbS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9jbS5oCkBAIC0zMSw4ICszMSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9jbS5oIDQzMTEgMjAwNS0xMi0wNSAxODo0MjowMVogc2Vhbi5oZWZ0eSAkCiAgKi8KICNpZiAhZGVmaW5lZChJQl9DTV9IKQogI2RlZmluZSBJQl9DTV9ICmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfZm1yX3Bvb2wuaCBiL2luY2x1ZGUvcmRtYS9pYl9mbXJfcG9vbC5oCmluZGV4IDAwZGFkYmYuLmY2MmI4NDIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl9mbXJfcG9vbC5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9mbXJfcG9vbC5oCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9mbXJfcG9vbC5oIDI3MzAgMjAwNS0wNi0yOCAxNjo0MzowM1ogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2lmICFkZWZpbmVkKElCX0ZNUl9QT09MX0gpCkBAIC02MSw3ICs1OSw3IEBACiAJaW50ICAgICAgICAgICAgICAgICAgICAgcG9vbF9zaXplOwogCWludCAgICAgICAgICAgICAgICAgICAgIGRpcnR5X3dhdGVybWFyazsKIAl2b2lkICAgICAgICAgICAgICAgICAgKCpmbHVzaF9mdW5jdGlvbikoc3RydWN0IGliX2Ztcl9wb29sICpwb29sLAotCQkJCQkJdm9pZCAqICAgICAgICAgICAgICBhcmcpOworCQkJCQkJdm9pZCAgICAgICAgICAgICAgICphcmcpOwogCXZvaWQgICAgICAgICAgICAgICAgICAgKmZsdXNoX2FyZzsKIAl1bnNpZ25lZCAgICAgICAgICAgICAgICBjYWNoZToxOwogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl9tYWQuaCBiL2luY2x1ZGUvcmRtYS9pYl9tYWQuaAppbmRleCA3MjI4YzA1Li41ZjZjNDBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfbWFkLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX21hZC5oCkBAIC0zMiwxMSArMzIsOSBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfbWFkLmggNTU5NiAyMDA2LTAzLTAzIDAxOjAwOjA3WiBzZWFuLmhlZnR5ICQKICAqLwogCi0jaWYgIWRlZmluZWQoIElCX01BRF9IICkKKyNpZiAhZGVmaW5lZChJQl9NQURfSCkKICNkZWZpbmUgSUJfTUFEX0gKIAogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KQEAgLTE5NCw4ICsxOTIsNyBAQAogCXU4CQkJZGF0YVtJQl9NR01UX1ZFTkRPUl9EQVRBXTsKIH07CiAKLXN0cnVjdCBpYl9jbGFzc19wb3J0X2luZm8KLXsKK3N0cnVjdCBpYl9jbGFzc19wb3J0X2luZm8gewogCXU4CQkJYmFzZV92ZXJzaW9uOwogCXU4CQkJY2xhc3NfdmVyc2lvbjsKIAlfX2JlMTYJCQljYXBhYmlsaXR5X21hc2s7CkBAIC02MTQsMTEgKzYxMSwxMSBAQAogICogYW55IGNsYXNzIHNwZWNpZmljIGhlYWRlciwgYW5kIE1BRCBkYXRhIGFyZWEuCiAgKiBJZiBAcm1wcF9hY3RpdmUgaXMgc2V0LCB0aGUgUk1QUCBoZWFkZXIgd2lsbCBiZSBpbml0aWFsaXplZCBmb3Igc2VuZGluZy4KICAqLwotc3RydWN0IGliX21hZF9zZW5kX2J1ZiAqIGliX2NyZWF0ZV9zZW5kX21hZChzdHJ1Y3QgaWJfbWFkX2FnZW50ICptYWRfYWdlbnQsCi0JCQkJCSAgICB1MzIgcmVtb3RlX3FwbiwgdTE2IHBrZXlfaW5kZXgsCi0JCQkJCSAgICBpbnQgcm1wcF9hY3RpdmUsCi0JCQkJCSAgICBpbnQgaGRyX2xlbiwgaW50IGRhdGFfbGVuLAotCQkJCQkgICAgZ2ZwX3QgZ2ZwX21hc2spOworc3RydWN0IGliX21hZF9zZW5kX2J1ZiAqaWJfY3JlYXRlX3NlbmRfbWFkKHN0cnVjdCBpYl9tYWRfYWdlbnQgKm1hZF9hZ2VudCwKKwkJCQkJICAgdTMyIHJlbW90ZV9xcG4sIHUxNiBwa2V5X2luZGV4LAorCQkJCQkgICBpbnQgcm1wcF9hY3RpdmUsCisJCQkJCSAgIGludCBoZHJfbGVuLCBpbnQgZGF0YV9sZW4sCisJCQkJCSAgIGdmcF90IGdmcF9tYXNrKTsKIAogLyoqCiAgKiBpYl9pc19tYWRfY2xhc3Nfcm1wcCAtIHJldHVybnMgd2hldGhlciBnaXZlbiBtYW5hZ2VtZW50IGNsYXNzCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfcGFjay5oIGIvaW5jbHVkZS9yZG1hL2liX3BhY2suaAppbmRleCBmOTI2MDIwLi5kN2ZjNDVjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfcGFjay5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9wYWNrLmgKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3BhY2suaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBJQl9QQUNLX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl9zYS5oIGIvaW5jbHVkZS9yZG1hL2liX3NhLmgKaW5kZXggOTQyNjkyYi4uMzg0MWMxYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2liX3NhLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3NhLmgKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3NhLmggMjgxMSAyMDA1LTA3LTA2IDE4OjExOjQzWiBoYWxyICQKICAqLwogCiAjaWZuZGVmIElCX1NBX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl9zbWkuaCBiL2luY2x1ZGUvcmRtYS9pYl9zbWkuaAppbmRleCBmMjlhZjEzLi5hYWNhMDg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfc21pLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3NtaS5oCkBAIC0zMiwxMSArMzIsOSBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfc21pLmggMTM4OSAyMDA0LTEyLTI3IDIyOjU2OjQ3WiByb2xhbmQgJAogICovCiAKLSNpZiAhZGVmaW5lZCggSUJfU01JX0ggKQorI2lmICFkZWZpbmVkKElCX1NNSV9IKQogI2RlZmluZSBJQl9TTUlfSAogCiAjaW5jbHVkZSA8cmRtYS9pYl9tYWQuaD4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX2NtLmggYi9pbmNsdWRlL3JkbWEvaWJfdXNlcl9jbS5oCmluZGV4IDM3NjUwYWYuLmJkM2QzODAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX2NtLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfY20uaApAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfdXNlcl9jbS5oIDQwMTkgMjAwNS0xMS0xMSAwMDozMzowOVogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2lmbmRlZiBJQl9VU0VSX0NNX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX21hZC5oIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfbWFkLmgKaW5kZXggMjlkMmM3Mi4uZDZmY2UxYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2liX3VzZXJfbWFkLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfbWFkLmgKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3VzZXJfbWFkLmggMjgxNCAyMDA1LTA3LTA2IDE5OjE0OjA5WiBoYWxyICQKICAqLwogCiAjaWZuZGVmIElCX1VTRVJfTUFEX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX3ZlcmJzLmggYi9pbmNsdWRlL3JkbWEvaWJfdXNlcl92ZXJicy5oCmluZGV4IDhkNjViZjAuLmExN2Y3NzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX3ZlcmJzLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfdmVyYnMuaApAQCAtMzEsOCArMzEsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfdXNlcl92ZXJicy5oIDQwMTkgMjAwNS0xMS0xMSAwMDozMzowOVogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2lmbmRlZiBJQl9VU0VSX1ZFUkJTX0gKQEAgLTI5MSw3ICsyODksMTAgQEAKIAlfX3UzMiBvcGNvZGU7CiAJX191MzIgdmVuZG9yX2VycjsKIAlfX3UzMiBieXRlX2xlbjsKLQlfX3UzMiBpbW1fZGF0YTsKKwl1bmlvbiB7CisJCV9fdTMyIGltbV9kYXRhOworCQlfX3UzMiBpbnZhbGlkYXRlX3JrZXk7CisJfSBleDsKIAlfX3UzMiBxcF9udW07CiAJX191MzIgc3JjX3FwOwogCV9fdTMyIHdjX2ZsYWdzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL2liX3ZlcmJzLmggYi9pbmNsdWRlL3JkbWEvaWJfdmVyYnMuaAppbmRleCAzMWQzMGIxLi45MGI1MjlmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfdmVyYnMuaAorKysgYi9pbmNsdWRlL3JkbWEvaWJfdmVyYnMuaApAQCAtMzQsOCArMzQsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfdmVyYnMuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmICFkZWZpbmVkKElCX1ZFUkJTX0gpCkBAIC05Myw3ICs5MSw3IEBACiAJSUJfREVWSUNFX1JDX1JOUl9OQUtfR0VOCT0gKDE8PDEyKSwKIAlJQl9ERVZJQ0VfU1JRX1JFU0laRQkJPSAoMTw8MTMpLAogCUlCX0RFVklDRV9OX05PVElGWV9DUQkJPSAoMTw8MTQpLAotCUlCX0RFVklDRV9aRVJPX1NUQUcJCT0gKDE8PDE1KSwKKwlJQl9ERVZJQ0VfTE9DQUxfRE1BX0xLRVkJPSAoMTw8MTUpLAogCUlCX0RFVklDRV9SRVNFUlZFRAkJPSAoMTw8MTYpLCAvKiBvbGQgU0VORF9XX0lOViAqLwogCUlCX0RFVklDRV9NRU1fV0lORE9XCQk9ICgxPDwxNyksCiAJLyoKQEAgLTEwNSw2ICsxMDMsOCBAQAogCSAqLwogCUlCX0RFVklDRV9VRF9JUF9DU1VNCQk9ICgxPDwxOCksCiAJSUJfREVWSUNFX1VEX1RTTwkJPSAoMTw8MTkpLAorCUlCX0RFVklDRV9NRU1fTUdUX0VYVEVOU0lPTlMJPSAoMTw8MjEpLAorCUlCX0RFVklDRV9CTE9DS19NVUxUSUNBU1RfTE9PUEJBQ0sgPSAoMTw8MjIpLAogfTsKIAogZW51bSBpYl9hdG9taWNfY2FwIHsKQEAgLTE1MCw2ICsxNTAsNyBAQAogCWludAkJCW1heF9zcnE7CiAJaW50CQkJbWF4X3NycV93cjsKIAlpbnQJCQltYXhfc3JxX3NnZTsKKwl1bnNpZ25lZCBpbnQJCW1heF9mYXN0X3JlZ19wYWdlX2xpc3RfbGVuOwogCXUxNgkJCW1heF9wa2V5czsKIAl1OAkJCWxvY2FsX2NhX2Fja19kZWxheTsKIH07CkBAIC0yMjYsNiArMjI3LDU3IEBACiAJfQogfQogCitzdHJ1Y3QgaWJfcHJvdG9jb2xfc3RhdHMgeworCS8qIFRCRC4uLiAqLworfTsKKworc3RydWN0IGl3X3Byb3RvY29sX3N0YXRzIHsKKwl1NjQJaXBJblJlY2VpdmVzOworCXU2NAlpcEluSGRyRXJyb3JzOworCXU2NAlpcEluVG9vQmlnRXJyb3JzOworCXU2NAlpcEluTm9Sb3V0ZXM7CisJdTY0CWlwSW5BZGRyRXJyb3JzOworCXU2NAlpcEluVW5rbm93blByb3RvczsKKwl1NjQJaXBJblRydW5jYXRlZFBrdHM7CisJdTY0CWlwSW5EaXNjYXJkczsKKwl1NjQJaXBJbkRlbGl2ZXJzOworCXU2NAlpcE91dEZvcndEYXRhZ3JhbXM7CisJdTY0CWlwT3V0UmVxdWVzdHM7CisJdTY0CWlwT3V0RGlzY2FyZHM7CisJdTY0CWlwT3V0Tm9Sb3V0ZXM7CisJdTY0CWlwUmVhc21UaW1lb3V0OworCXU2NAlpcFJlYXNtUmVxZHM7CisJdTY0CWlwUmVhc21PS3M7CisJdTY0CWlwUmVhc21GYWlsczsKKwl1NjQJaXBGcmFnT0tzOworCXU2NAlpcEZyYWdGYWlsczsKKwl1NjQJaXBGcmFnQ3JlYXRlczsKKwl1NjQJaXBJbk1jYXN0UGt0czsKKwl1NjQJaXBPdXRNY2FzdFBrdHM7CisJdTY0CWlwSW5CY2FzdFBrdHM7CisJdTY0CWlwT3V0QmNhc3RQa3RzOworCisJdTY0CXRjcFJ0b0FsZ29yaXRobTsKKwl1NjQJdGNwUnRvTWluOworCXU2NAl0Y3BSdG9NYXg7CisJdTY0CXRjcE1heENvbm47CisJdTY0CXRjcEFjdGl2ZU9wZW5zOworCXU2NAl0Y3BQYXNzaXZlT3BlbnM7CisJdTY0CXRjcEF0dGVtcHRGYWlsczsKKwl1NjQJdGNwRXN0YWJSZXNldHM7CisJdTY0CXRjcEN1cnJFc3RhYjsKKwl1NjQJdGNwSW5TZWdzOworCXU2NAl0Y3BPdXRTZWdzOworCXU2NAl0Y3BSZXRyYW5zU2VnczsKKwl1NjQJdGNwSW5FcnJzOworCXU2NAl0Y3BPdXRSc3RzOworfTsKKwordW5pb24gcmRtYV9wcm90b2NvbF9zdGF0cyB7CisJc3RydWN0IGliX3Byb3RvY29sX3N0YXRzCWliOworCXN0cnVjdCBpd19wcm90b2NvbF9zdGF0cwlpdzsKK307CisKIHN0cnVjdCBpYl9wb3J0X2F0dHIgewogCWVudW0gaWJfcG9ydF9zdGF0ZQlzdGF0ZTsKIAllbnVtIGliX210dQkJbWF4X210dTsKQEAgLTQxMyw2ICs0NjUsOCBAQAogCUlCX1dDX0ZFVENIX0FERCwKIAlJQl9XQ19CSU5EX01XLAogCUlCX1dDX0xTTywKKwlJQl9XQ19MT0NBTF9JTlYsCisJSUJfV0NfRkFTVF9SRUdfTVIsCiAvKgogICogU2V0IHZhbHVlIG9mIElCX1dDX1JFQ1Ygc28gY29uc3VtZXJzIGNhbiB0ZXN0IGlmIGEgY29tcGxldGlvbiBpcyBhCiAgKiByZWNlaXZlIGJ5IHRlc3RpbmcgKG9wY29kZSAmIElCX1dDX1JFQ1YpLgpAQCAtNDIzLDcgKzQ3Nyw4IEBACiAKIGVudW0gaWJfd2NfZmxhZ3MgewogCUlCX1dDX0dSSAkJPSAxLAotCUlCX1dDX1dJVEhfSU1NCQk9ICgxPDwxKQorCUlCX1dDX1dJVEhfSU1NCQk9ICgxPDwxKSwKKwlJQl9XQ19XSVRIX0lOVkFMSURBVEUJPSAoMTw8MiksCiB9OwogCiBzdHJ1Y3QgaWJfd2MgewpAQCAtNDMzLDcgKzQ4OCwxMCBAQAogCXUzMgkJCXZlbmRvcl9lcnI7CiAJdTMyCQkJYnl0ZV9sZW47CiAJc3RydWN0IGliX3FwCSAgICAgICAqcXA7Ci0JX19iZTMyCQkJaW1tX2RhdGE7CisJdW5pb24geworCQlfX2JlMzIJCWltbV9kYXRhOworCQl1MzIJCWludmFsaWRhdGVfcmtleTsKKwl9IGV4OwogCXUzMgkJCXNyY19xcDsKIAlpbnQJCQl3Y19mbGFnczsKIAl1MTYJCQlwa2V5X2luZGV4OwpAQCAtNDk4LDcgKzU1Niw4IEBACiB9OwogCiBlbnVtIGliX3FwX2NyZWF0ZV9mbGFncyB7Ci0JSUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTwk9IDEgPDwgMCwKKwlJQl9RUF9DUkVBVEVfSVBPSUJfVURfTFNPCQk9IDEgPDwgMCwKKwlJQl9RUF9DUkVBVEVfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLCT0gMSA8PCAxLAogfTsKIAogc3RydWN0IGliX3FwX2luaXRfYXR0ciB7CkBAIC02MjcsNiArNjg2LDkgQEAKIAlJQl9XUl9BVE9NSUNfRkVUQ0hfQU5EX0FERCwKIAlJQl9XUl9MU08sCiAJSUJfV1JfU0VORF9XSVRIX0lOViwKKwlJQl9XUl9SRE1BX1JFQURfV0lUSF9JTlYsCisJSUJfV1JfTE9DQUxfSU5WLAorCUlCX1dSX0ZBU1RfUkVHX01SLAogfTsKIAogZW51bSBpYl9zZW5kX2ZsYWdzIHsKQEAgLTY0Myw2ICs3MDUsMTIgQEAKIAl1MzIJbGtleTsKIH07CiAKK3N0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgeworCXN0cnVjdCBpYl9kZXZpY2UgICAgICAgKmRldmljZTsKKwl1NjQJCSAgICAgICAqcGFnZV9saXN0OworCXVuc2lnbmVkIGludAkJbWF4X3BhZ2VfbGlzdF9sZW47Cit9OworCiBzdHJ1Y3QgaWJfc2VuZF93ciB7CiAJc3RydWN0IGliX3NlbmRfd3IgICAgICAqbmV4dDsKIAl1NjQJCQl3cl9pZDsKQEAgLTY3NSw2ICs3NDMsMTUgQEAKIAkJCXUxNglwa2V5X2luZGV4OyAvKiB2YWxpZCBmb3IgR1NJIG9ubHkgKi8KIAkJCXU4CXBvcnRfbnVtOyAgIC8qIHZhbGlkIGZvciBEUiBTTVBzIG9uIHN3aXRjaCBvbmx5ICovCiAJCX0gdWQ7CisJCXN0cnVjdCB7CisJCQl1NjQJCQkJaW92YV9zdGFydDsKKwkJCXN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgICAqcGFnZV9saXN0OworCQkJdW5zaWduZWQgaW50CQkJcGFnZV9zaGlmdDsKKwkJCXVuc2lnbmVkIGludAkJCXBhZ2VfbGlzdF9sZW47CisJCQl1MzIJCQkJbGVuZ3RoOworCQkJaW50CQkJCWFjY2Vzc19mbGFnczsKKwkJCXUzMgkJCQlya2V5OworCQl9IGZhc3RfcmVnOwogCX0gd3I7CiB9OwogCkBAIC03NzcsNyArODU0LDcgQEAKIAlzdHJ1Y3QgaWJfdW9iamVjdCAgICAgICp1b2JqZWN0OwogCWliX2NvbXBfaGFuZGxlciAgIAljb21wX2hhbmRsZXI7CiAJdm9pZCAgICAgICAgICAgICAgICAgICgqZXZlbnRfaGFuZGxlcikoc3RydWN0IGliX2V2ZW50ICosIHZvaWQgKik7Ci0Jdm9pZCAqICAgICAgICAgICAgCWNxX2NvbnRleHQ7CisJdm9pZCAgICAgICAgICAgICAgICAgICAqY3FfY29udGV4dDsKIAlpbnQgICAgICAgICAgICAgICAJY3FlOwogCWF0b21pY190ICAgICAgICAgIAl1c2VjbnQ7IC8qIGNvdW50IG51bWJlciBvZiB3b3JrIHF1ZXVlcyAqLwogfTsKQEAgLTg4Myw3ICs5NjAsNyBAQAogCXZvaWQJCSgqc3luY19zaW5nbGVfZm9yX2NwdSkoc3RydWN0IGliX2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgdTY0IGRtYV9oYW5kbGUsCiAJCQkJCSAgICAgICBzaXplX3Qgc2l6ZSwKLQkJCQkgICAgICAgICAgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpOworCQkJCQkgICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKTsKIAl2b2lkCQkoKnN5bmNfc2luZ2xlX2Zvcl9kZXZpY2UpKHN0cnVjdCBpYl9kZXZpY2UgKmRldiwKIAkJCQkJCSAgdTY0IGRtYV9oYW5kbGUsCiAJCQkJCQkgIHNpemVfdCBzaXplLApAQCAtOTE5LDYgKzk5Niw4IEBACiAKIAlzdHJ1Y3QgaXdfY21fdmVyYnMJICAgICAqaXdjbTsKIAorCWludAkJICAgICAgICAgICAoKmdldF9wcm90b2NvbF9zdGF0cykoc3RydWN0IGliX2RldmljZSAqZGV2aWNlLAorCQkJCQkJCSB1bmlvbiByZG1hX3Byb3RvY29sX3N0YXRzICpzdGF0cyk7CiAJaW50CQkgICAgICAgICAgICgqcXVlcnlfZGV2aWNlKShzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsCiAJCQkJCQkgICBzdHJ1Y3QgaWJfZGV2aWNlX2F0dHIgKmRldmljZV9hdHRyKTsKIAlpbnQJCSAgICAgICAgICAgKCpxdWVyeV9wb3J0KShzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsCkBAIC0xMDEzLDYgKzEwOTIsMTEgQEAKIAlpbnQgICAgICAgICAgICAgICAgICAgICAgICAoKnF1ZXJ5X21yKShzdHJ1Y3QgaWJfbXIgKm1yLAogCQkJCQkgICAgICAgc3RydWN0IGliX21yX2F0dHIgKm1yX2F0dHIpOwogCWludCAgICAgICAgICAgICAgICAgICAgICAgICgqZGVyZWdfbXIpKHN0cnVjdCBpYl9tciAqbXIpOworCXN0cnVjdCBpYl9tciAqCQkgICAoKmFsbG9jX2Zhc3RfcmVnX21yKShzdHJ1Y3QgaWJfcGQgKnBkLAorCQkJCQkgICAgICAgaW50IG1heF9wYWdlX2xpc3RfbGVuKTsKKwlzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICogKCphbGxvY19mYXN0X3JlZ19wYWdlX2xpc3QpKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKKwkJCQkJCQkJICAgaW50IHBhZ2VfbGlzdF9sZW4pOworCXZvaWQJCQkgICAoKmZyZWVfZmFzdF9yZWdfcGFnZV9saXN0KShzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICpwYWdlX2xpc3QpOwogCWludCAgICAgICAgICAgICAgICAgICAgICAgICgqcmVyZWdfcGh5c19tcikoc3RydWN0IGliX21yICptciwKIAkJCQkJCSAgICBpbnQgbXJfcmVyZWdfbWFzaywKIAkJCQkJCSAgICBzdHJ1Y3QgaWJfcGQgKnBkLApAQCAtMTA2NSw2ICsxMTQ5LDcgQEAKIAogCWNoYXIJCQkgICAgIG5vZGVfZGVzY1s2NF07CiAJX19iZTY0CQkJICAgICBub2RlX2d1aWQ7CisJdTMyCQkJICAgICBsb2NhbF9kbWFfbGtleTsKIAl1OCAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVfdHlwZTsKIAl1OCAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNfcG9ydF9jbnQ7CiB9OwpAQCAtMTgwNyw2ICsxODkyLDU0IEBACiBpbnQgaWJfZGVyZWdfbXIoc3RydWN0IGliX21yICptcik7CiAKIC8qKgorICogaWJfYWxsb2NfZmFzdF9yZWdfbXIgLSBBbGxvY2F0ZXMgbWVtb3J5IHJlZ2lvbiB1c2FibGUgd2l0aCB0aGUKKyAqICAgSUJfV1JfRkFTVF9SRUdfTVIgc2VuZCB3b3JrIHJlcXVlc3QuCisgKiBAcGQ6IFRoZSBwcm90ZWN0aW9uIGRvbWFpbiBhc3NvY2lhdGVkIHdpdGggdGhlIHJlZ2lvbi4KKyAqIEBtYXhfcGFnZV9saXN0X2xlbjogcmVxdWVzdGVkIG1heCBwaHlzaWNhbCBidWZmZXIgbGlzdCBsZW5ndGggdG8gYmUKKyAqICAgdXNlZCB3aXRoIGZhc3QgcmVnaXN0ZXIgd29yayByZXF1ZXN0cyBmb3IgdGhpcyBNUi4KKyAqLworc3RydWN0IGliX21yICppYl9hbGxvY19mYXN0X3JlZ19tcihzdHJ1Y3QgaWJfcGQgKnBkLCBpbnQgbWF4X3BhZ2VfbGlzdF9sZW4pOworCisvKioKKyAqIGliX2FsbG9jX2Zhc3RfcmVnX3BhZ2VfbGlzdCAtIEFsbG9jYXRlcyBhIHBhZ2UgbGlzdCBhcnJheQorICogQGRldmljZSAtIGliIGRldmljZSBwb2ludGVyLgorICogQHBhZ2VfbGlzdF9sZW4gLSBzaXplIG9mIHRoZSBwYWdlIGxpc3QgYXJyYXkgdG8gYmUgYWxsb2NhdGVkLgorICoKKyAqIFRoaXMgYWxsb2NhdGVzIGFuZCByZXR1cm5zIGEgc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqIGFuZCBhCisgKiBwYWdlX2xpc3QgYXJyYXkgdGhhdCBpcyBhdCBsZWFzdCBwYWdlX2xpc3RfbGVuIGluIHNpemUuICBUaGUgYWN0dWFsCisgKiBzaXplIGlzIHJldHVybmVkIGluIG1heF9wYWdlX2xpc3RfbGVuLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZQorICogZm9yIGluaXRpYWxpemluZyB0aGUgY29udGVudHMgb2YgdGhlIHBhZ2VfbGlzdCBhcnJheSBiZWZvcmUgcG9zdGluZworICogYSBzZW5kIHdvcmsgcmVxdWVzdCB3aXRoIHRoZSBJQl9XQ19GQVNUX1JFR19NUiBvcGNvZGUuCisgKgorICogVGhlIHBhZ2VfbGlzdCBhcnJheSBlbnRyaWVzIG11c3QgYmUgdHJhbnNsYXRlZCB1c2luZyBvbmUgb2YgdGhlCisgKiBpYl9kbWFfKigpIGZ1bmN0aW9ucyBqdXN0IGxpa2UgdGhlIGFkZHJlc3NlcyBwYXNzZWQgdG8KKyAqIGliX21hcF9waHlzX2ZtcigpLiAgT25jZSB0aGUgaWJfcG9zdF9zZW5kKCkgaXMgaXNzdWVkLCB0aGUgc3RydWN0CisgKiBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgbXVzdCBub3QgYmUgbW9kaWZpZWQgYnkgdGhlIGNhbGxlciB1bnRpbCB0aGUKKyAqIElCX1dDX0ZBU1RfUkVHX01SIHdvcmsgcmVxdWVzdCBjb21wbGV0ZXMuCisgKi8KK3N0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgKmliX2FsbG9jX2Zhc3RfcmVnX3BhZ2VfbGlzdCgKKwkJCQlzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsIGludCBwYWdlX2xpc3RfbGVuKTsKKworLyoqCisgKiBpYl9mcmVlX2Zhc3RfcmVnX3BhZ2VfbGlzdCAtIERlYWxsb2NhdGVzIGEgcHJldmlvdXNseSBhbGxvY2F0ZWQKKyAqICAgcGFnZSBsaXN0IGFycmF5LgorICogQHBhZ2VfbGlzdCAtIHN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgcG9pbnRlciB0byBiZSBkZWFsbG9jYXRlZC4KKyAqLwordm9pZCBpYl9mcmVlX2Zhc3RfcmVnX3BhZ2VfbGlzdChzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICpwYWdlX2xpc3QpOworCisvKioKKyAqIGliX3VwZGF0ZV9mYXN0X3JlZ19rZXkgLSB1cGRhdGVzIHRoZSBrZXkgcG9ydGlvbiBvZiB0aGUgZmFzdF9yZWcgTVIKKyAqICAgUl9LZXkgYW5kIExfS2V5LgorICogQG1yIC0gc3RydWN0IGliX21yIHBvaW50ZXIgdG8gYmUgdXBkYXRlZC4KKyAqIEBuZXdrZXkgLSBuZXcga2V5IHRvIGJlIHVzZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBpYl91cGRhdGVfZmFzdF9yZWdfa2V5KHN0cnVjdCBpYl9tciAqbXIsIHU4IG5ld2tleSkKK3sKKwltci0+bGtleSA9IChtci0+bGtleSAmIDB4ZmZmZmZmMDApIHwgbmV3a2V5OworCW1yLT5ya2V5ID0gKG1yLT5ya2V5ICYgMHhmZmZmZmYwMCkgfCBuZXdrZXk7Cit9CisKKy8qKgogICogaWJfYWxsb2NfbXcgLSBBbGxvY2F0ZXMgYSBtZW1vcnkgd2luZG93LgogICogQHBkOiBUaGUgcHJvdGVjdGlvbiBkb21haW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBtZW1vcnkgd2luZG93LgogICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaXdfY20uaCBiL2luY2x1ZGUvcmRtYS9pd19jbS5oCmluZGV4IGFlZWZhOWIuLmNiYjgyMmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pd19jbS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pd19jbS5oCkBAIC02Miw3ICs2Miw3IEBACiAJc3RydWN0IHNvY2thZGRyX2luIHJlbW90ZV9hZGRyOwogCXZvaWQgKnByaXZhdGVfZGF0YTsKIAl1OCBwcml2YXRlX2RhdGFfbGVuOwotCXZvaWQqIHByb3ZpZGVyX2RhdGE7CisJdm9pZCAqcHJvdmlkZXJfZGF0YTsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL3JkbWFfY20uaCBiL2luY2x1ZGUvcmRtYS9yZG1hX2NtLmgKaW5kZXggMDEwZjg3Ni4uMjJiYjJlNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL3JkbWFfY20uaAorKysgYi9pbmNsdWRlL3JkbWEvcmRtYV9jbS5oCkBAIC0yLDI5ICsyLDMzIEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUgVm9sdGFpcmUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoYykgMjAwNSBJbnRlbCBDb3Jwb3JhdGlvbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgotICogVGhpcyBTb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciBvbmUgb2YgdGhlIGZvbGxvd2luZyBsaWNlbnNlczoKKyAqIFRoaXMgc29mdHdhcmUgaXMgYXZhaWxhYmxlIHRvIHlvdSB1bmRlciBhIGNob2ljZSBvZiBvbmUgb2YgdHdvCisgKiBsaWNlbnNlcy4gIFlvdSBtYXkgY2hvb3NlIHRvIGJlIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiwgYXZhaWxhYmxlIGZyb20gdGhlIGZpbGUKKyAqIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUsIG9yIHRoZQorICogT3BlbklCLm9yZyBCU0QgbGljZW5zZSBiZWxvdzoKICAqCi0gKiAxKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJDb21tb24gUHVibGljIExpY2Vuc2UgMS4wIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvY3BsLnBocC4KKyAqICAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yCisgKiAgICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nCisgKiAgICAgY29uZGl0aW9ucyBhcmUgbWV0OgogICoKLSAqIDIpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIlRoZSBCU0QgTGljZW5zZSIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyLgogICoKLSAqIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiIgYQotICogICAgY29weSBvZiB3aGljaCBpcyBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogTGljZW5zZWUgaGFzIHRoZSByaWdodCB0byBjaG9vc2Ugb25lIG9mIHRoZSBhYm92ZSBsaWNlbnNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlIGFuZCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gKiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgogICovCiAKICNpZiAhZGVmaW5lZChSRE1BX0NNX0gpCkBAIC01NywxMSArNjEsMTEgQEAKIH07CiAKIGVudW0gcmRtYV9wb3J0X3NwYWNlIHsKLQlSRE1BX1BTX1NEUCAgPSAweDAwMDEsCi0JUkRNQV9QU19JUE9JQj0gMHgwMDAyLAotCVJETUFfUFNfVENQICA9IDB4MDEwNiwKLQlSRE1BX1BTX1VEUCAgPSAweDAxMTEsCi0JUkRNQV9QU19TQ1RQID0gMHgwMTgzCisJUkRNQV9QU19TRFAgICA9IDB4MDAwMSwKKwlSRE1BX1BTX0lQT0lCID0gMHgwMDAyLAorCVJETUFfUFNfVENQICAgPSAweDAxMDYsCisJUkRNQV9QU19VRFAgICA9IDB4MDExMSwKKwlSRE1BX1BTX1NDVFAgID0gMHgwMTgzCiB9OwogCiBzdHJ1Y3QgcmRtYV9hZGRyIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9yZG1hX2NtX2liLmggYi9pbmNsdWRlL3JkbWEvcmRtYV9jbV9pYi5oCmluZGV4IDk1MDQyNGIuLjIzODljM2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9yZG1hX2NtX2liLmgKKysrIGIvaW5jbHVkZS9yZG1hL3JkbWFfY21faWIuaApAQCAtMSwyOSArMSwzMyBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgotICogVGhpcyBTb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciBvbmUgb2YgdGhlIGZvbGxvd2luZyBsaWNlbnNlczoKKyAqIFRoaXMgc29mdHdhcmUgaXMgYXZhaWxhYmxlIHRvIHlvdSB1bmRlciBhIGNob2ljZSBvZiBvbmUgb2YgdHdvCisgKiBsaWNlbnNlcy4gIFlvdSBtYXkgY2hvb3NlIHRvIGJlIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiwgYXZhaWxhYmxlIGZyb20gdGhlIGZpbGUKKyAqIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUsIG9yIHRoZQorICogT3BlbklCLm9yZyBCU0QgbGljZW5zZSBiZWxvdzoKICAqCi0gKiAxKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJDb21tb24gUHVibGljIExpY2Vuc2UgMS4wIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvY3BsLnBocC4KKyAqICAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yCisgKiAgICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nCisgKiAgICAgY29uZGl0aW9ucyBhcmUgbWV0OgogICoKLSAqIDIpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIlRoZSBCU0QgTGljZW5zZSIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyLgogICoKLSAqIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiIgYQotICogICAgY29weSBvZiB3aGljaCBpcyBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogTGljZW5zZWUgaGFzIHRoZSByaWdodCB0byBjaG9vc2Ugb25lIG9mIHRoZSBhYm92ZSBsaWNlbnNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlIGFuZCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gKiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgogICovCiAKICNpZiAhZGVmaW5lZChSRE1BX0NNX0lCX0gpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2FkMTg0My5oIGIvaW5jbHVkZS9zb3VuZC9hZDE4NDMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjM2YTlkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9zb3VuZC9hZDE4NDMuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogVGhpcyBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UuICBTZWUgdGhlIGZpbGUgIkNPUFlJTkciIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIGFyY2hpdmUKKyAqIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogQ29weXJpZ2h0IDIwMDMgVml2aWVuIENoYXBwZWxpZXIgPHZpdmllbi5jaGFwcGVsaWVyQGxpbnV4LW1pcHMub3JnPgorICogQ29weXJpZ2h0IDIwMDggVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAZnJhbmtlbi5kZT4KKyAqLworCisjaWZuZGVmIF9fU09VTkRfQUQxODQzX0gKKyNkZWZpbmUgX19TT1VORF9BRDE4NDNfSAorCitzdHJ1Y3Qgc25kX2FkMTg0MyB7CisJdm9pZCAqY2hpcDsKKwlpbnQgKCpyZWFkKSh2b2lkICpjaGlwLCBpbnQgcmVnKTsKKwlpbnQgKCp3cml0ZSkodm9pZCAqY2hpcCwgaW50IHJlZywgaW50IHZhbCk7Cit9OworCisjZGVmaW5lIEFEMTg0M19HQUlOX1JFQ0xFViAwCisjZGVmaW5lIEFEMTg0M19HQUlOX0xJTkUgICAxCisjZGVmaW5lIEFEMTg0M19HQUlOX0xJTkVfMiAyCisjZGVmaW5lIEFEMTg0M19HQUlOX01JQyAgICAzCisjZGVmaW5lIEFEMTg0M19HQUlOX1BDTV8wICA0CisjZGVmaW5lIEFEMTg0M19HQUlOX1BDTV8xICA1CisjZGVmaW5lIEFEMTg0M19HQUlOX1NJWkUgICAoQUQxODQzX0dBSU5fUENNXzErMSkKKworaW50IGFkMTg0M19nZXRfZ2Fpbl9tYXgoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGlkKTsKK2ludCBhZDE4NDNfZ2V0X2dhaW4oc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGlkKTsKK2ludCBhZDE4NDNfc2V0X2dhaW4oc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGlkLCBpbnQgbmV3dmFsKTsKK2ludCBhZDE4NDNfZ2V0X3JlY3NyYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzKTsKK2ludCBhZDE4NDNfc2V0X3JlY3NyYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgbmV3c3JjKTsKK3ZvaWQgYWQxODQzX3NldHVwX2RhYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkgICAgICB1bnNpZ25lZCBpbnQgaWQsCisJCSAgICAgIHVuc2lnbmVkIGludCBmcmFtZXJhdGUsCisJCSAgICAgIHNuZF9wY21fZm9ybWF0X3QgZm10LAorCQkgICAgICB1bnNpZ25lZCBpbnQgY2hhbm5lbHMpOwordm9pZCBhZDE4NDNfc2h1dGRvd25fZGFjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsCisJCQkgdW5zaWduZWQgaW50IGlkKTsKK3ZvaWQgYWQxODQzX3NldHVwX2FkYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkgICAgICB1bnNpZ25lZCBpbnQgZnJhbWVyYXRlLAorCQkgICAgICBzbmRfcGNtX2Zvcm1hdF90IGZtdCwKKwkJICAgICAgdW5zaWduZWQgaW50IGNoYW5uZWxzKTsKK3ZvaWQgYWQxODQzX3NodXRkb3duX2FkYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzKTsKK2ludCBhZDE4NDNfaW5pdChzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzKTsKKworI2VuZGlmIC8qIF9fU09VTkRfQUQxODQzX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvY29udHJvbC5oIGIvaW5jbHVkZS9zb3VuZC9jb250cm9sLmgKaW5kZXggM2RjMTI5MS4uNDcyMWI0YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9jb250cm9sLmgKKysrIGIvaW5jbHVkZS9zb3VuZC9jb250cm9sLmgKQEAgLTEyOSw5ICsxMjksNiBAQAogI2RlZmluZSBzbmRfY3RsX3VucmVnaXN0ZXJfaW9jdGxfY29tcGF0KGZjbikKICNlbmRpZgogCi1pbnQgc25kX2N0bF9lbGVtX3JlYWQoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICpjb250cm9sKTsKLWludCBzbmRfY3RsX2VsZW1fd3JpdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2N0bF9maWxlICpmaWxlLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICpjb250cm9sKTsKLQogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgc25kX2N0bF9nZXRfaW9mZm51bShzdHJ1Y3Qgc25kX2tjb250cm9sICprY3RsLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2lkICppZCkKIHsKIAlyZXR1cm4gaWQtPm51bWlkIC0ga2N0bC0+aWQubnVtaWQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2NvcmUuaCBiL2luY2x1ZGUvc291bmQvY29yZS5oCmluZGV4IDY5NWVlNTMuLjU1OGI5NjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc291bmQvY29yZS5oCisrKyBiL2luY2x1ZGUvc291bmQvY29yZS5oCkBAIC00MTIsMTMgKzQxMiwxMyBAQAogCiAjZW5kaWYgLyogQ09ORklHX1NORF9ERUJVRyAqLwogCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIC8qKgogICogc25kX3ByaW50ZGQgLSBkZWJ1ZyBwcmludGsKICAqIEBmb3JtYXQ6IGZvcm1hdCBzdHJpbmcKICAqCiAgKiBXb3JrcyBsaWtlIHNuZF9wcmludGsoKSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLgotICogSWdub3JlZCB3aGVuIENPTkZJR19TTkRfREVCVUdfREVURUNUIGlzIG5vdCBzZXQuCisgKiBJZ25vcmVkIHdoZW4gQ09ORklHX1NORF9ERUJVR19WRVJCT1NFIGlzIG5vdCBzZXQuCiAgKi8KICNkZWZpbmUgc25kX3ByaW50ZGQoZm9ybWF0LCBhcmdzLi4uKSBzbmRfcHJpbnRrKGZvcm1hdCwgIyNhcmdzKQogI2Vsc2UKQEAgLTQ0Miw3ICs0NDIsNyBAQAogCXVuc2lnbmVkIHNob3J0IHN1YnZlbmRvcjsJLyogUENJIHN1YnZlbmRvciBJRCAqLwogCXVuc2lnbmVkIHNob3J0IHN1YmRldmljZTsJLyogUENJIHN1YmRldmljZSBJRCAqLwogCWludCB2YWx1ZTsJCQkvKiB2YWx1ZSAqLwotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJY29uc3QgY2hhciAqbmFtZTsJCS8qIG5hbWUgb2YgdGhlIGRldmljZSAob3B0aW9uYWwpICovCiAjZW5kaWYKIH07CkBAIC00NTAsNyArNDUwLDcgQEAKICNkZWZpbmUgX1NORF9QQ0lfUVVJUktfSUQodmVuZCxkZXYpIFwKIAkuc3VidmVuZG9yID0gKHZlbmQpLCAuc3ViZGV2aWNlID0gKGRldikKICNkZWZpbmUgU05EX1BDSV9RVUlSS19JRCh2ZW5kLGRldikge19TTkRfUENJX1FVSVJLX0lEKHZlbmQsIGRldil9Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKICNkZWZpbmUgU05EX1BDSV9RVUlSSyh2ZW5kLGRldix4bmFtZSx2YWwpIFwKIAl7X1NORF9QQ0lfUVVJUktfSUQodmVuZCwgZGV2KSwgLnZhbHVlID0gKHZhbCksIC5uYW1lID0gKHhuYW1lKX0KICNlbHNlCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2NzNDIzMS1yZWdzLmggYi9pbmNsdWRlL3NvdW5kL2NzNDIzMS1yZWdzLmgKaW5kZXggZThkMWYzZS4uOTI2NDc1MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9jczQyMzEtcmVncy5oCisrKyBiL2luY2x1ZGUvc291bmQvY3M0MjMxLXJlZ3MuaApAQCAtMTc3LDQgKzE3NywxMiBAQAogI2RlZmluZSBDUzQyMzZfUklHSFRfV0FWRQkweDFjCS8qIHJpZ2h0IHdhdmV0YWJsZSBzZXJpYWwgcG9ydCB2b2x1bWUgKi8KICNkZWZpbmUgQ1M0MjM2X1ZFUlNJT04JCTB4OWMJLyogY2hpcCB2ZXJzaW9uIGFuZCBJRCAqLwogCisvKiBkZWZpbml0aW9ucyBmb3IgZXh0ZW5kZWQgcmVnaXN0ZXJzIC0gT1BUSTkzWCAqLworI2RlZmluZSBPUFRpOTMxX0FVWF9MRUZUX0lOUFVUCTB4MTAKKyNkZWZpbmUgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQJMHgxMQorI2RlZmluZSBPUFRpOTNYX01JQ19MRUZUX0lOUFVUCTB4MTQKKyNkZWZpbmUgT1BUaTkzWF9NSUNfUklHSFRfSU5QVVQJMHgxNQorI2RlZmluZSBPUFRpOTNYX09VVF9MRUZUCTB4MTYKKyNkZWZpbmUgT1BUaTkzWF9PVVRfUklHSFQJMHgxNworCiAjZW5kaWYgLyogX19TT1VORF9DUzQyMzFfUkVHU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2NzNDIzMS5oIGIvaW5jbHVkZS9zb3VuZC9jczQyMzEuaAppbmRleCA2NjA1NWQ3Li5mMDc4NWY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3NvdW5kL2NzNDIzMS5oCisrKyBiL2luY2x1ZGUvc291bmQvY3M0MjMxLmgKQEAgLTU4LDYgKzU4LDcgQEAKIC8qIGNvbXBhdGlibGUsIGJ1dCBjbG9uZXMgKi8KICNkZWZpbmUgQ1M0MjMxX0hXX0lOVEVSV0FWRSAgICAgMHgxMDAwCS8qIEludGVyV2F2ZSBjaGlwICovCiAjZGVmaW5lIENTNDIzMV9IV19PUEwzU0EyICAgICAgIDB4MTEwMQkvKiBPUEwzLVNBMiBjaGlwLCBzaW1pbGFyIHRvIGNzNDIzMSAqLworI2RlZmluZSBDUzQyMzFfSFdfT1BUSTkzWCAJMHgxMTAyCS8qIE9wdGkgOTMwLzkzMS85MzMgKi8KIAogLyogZGVmaW5lcyBmb3IgY29kZWMuaHdzaGFyZSAqLwogI2RlZmluZSBDUzQyMzFfSFdTSEFSRV9JUlEJKDE8PDApCkBAIC0xMjAsNiArMTIxLDggQEAKIHZvaWQgc25kX2NzNDIzMV9tY2VfdXAoc3RydWN0IHNuZF9jczQyMzEgKmNoaXApOwogdm9pZCBzbmRfY3M0MjMxX21jZV9kb3duKHN0cnVjdCBzbmRfY3M0MjMxICpjaGlwKTsKIAordm9pZCBzbmRfY3M0MjMxX292ZXJyYW5nZShzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCk7CisKIGlycXJldHVybl90IHNuZF9jczQyMzFfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCk7CiAKIGNvbnN0IGNoYXIgKnNuZF9jczQyMzFfY2hpcF9pZChzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2VtdTEwazEuaCBiL2luY2x1ZGUvc291bmQvZW11MTBrMS5oCmluZGV4IDdiN2I5YjEuLjEwZWUyOGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc291bmQvZW11MTBrMS5oCisrKyBiL2luY2x1ZGUvc291bmQvZW11MTBrMS5oCkBAIC0xNjcwLDYgKzE2NzAsNyBAQAogCXVuc2lnbmVkIGNoYXIgc3BpX2RhYzsgICAgICAvKiBTUEkgaW50ZXJmYWNlIGZvciBEQUMgKi8KIAl1bnNpZ25lZCBjaGFyIGkyY19hZGM7ICAgICAgLyogSTJDIGludGVyZmFjZSBmb3IgQURDICovCiAJdW5zaWduZWQgY2hhciBhZGNfMTM2MXQ7ICAgIC8qIFVzZSBQaGlsaXBzIDEzNjFUIEFEQyAqLworCXVuc2lnbmVkIGNoYXIgaW52ZXJ0X3NoYXJlZF9zcGRpZjsgLyogYW5hbG9nL2RpZ2l0YWwgc3dpdGNoIGludmVydGVkICovCiAJY29uc3QgY2hhciAqZHJpdmVyOwogCWNvbnN0IGNoYXIgKm5hbWU7CiAJY29uc3QgY2hhciAqaWQ7CQkvKiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAtIGNhbiBiZSBOVUxMIGlmIG5vdCBuZWVkZWQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvc2VxX2tlcm5lbC5oIGIvaW5jbHVkZS9zb3VuZC9zZXFfa2VybmVsLmgKaW5kZXggZjAyM2MxYi4uM2Q5YWZiNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9zZXFfa2VybmVsLmgKKysrIGIvaW5jbHVkZS9zb3VuZC9zZXFfa2VybmVsLmgKQEAgLTEwNSw3ICsxMDUsNyBAQAogCQkJICAgICAgaW50IGNhcCwgaW50IHR5cGUsIGludCBtaWRpX2NoYW5uZWxzLCBpbnQgbWlkaV92b2ljZXMsIGNoYXIgKnBvcnRuYW1lKTsKIGludCBzbmRfc2VxX2V2ZW50X3BvcnRfZGV0YWNoKGludCBjbGllbnQsIGludCBwb3J0KTsKIAotI2lmZGVmIENPTkZJR19LTU9ECisjaWZkZWYgQ09ORklHX01PRFVMRVMKIHZvaWQgc25kX3NlcV9hdXRvbG9hZF9sb2NrKHZvaWQpOwogdm9pZCBzbmRfc2VxX2F1dG9sb2FkX3VubG9jayh2b2lkKTsKICNlbHNlCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL3NvYy1kYXBtLmggYi9pbmNsdWRlL3NvdW5kL3NvYy1kYXBtLmgKaW5kZXggYTEwNWIwMS4uMzAzMGZkYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9zb2MtZGFwbS5oCisrKyBiL2luY2x1ZGUvc291bmQvc29jLWRhcG0uaApAQCAtMTMwLDYgKzEzMCwxMyBAQAogewkuaWQgPSBzbmRfc29jX2RhcG1fYWRjLCAubmFtZSA9IHduYW1lLCAuc25hbWUgPSBzdG5hbWUsIC5yZWcgPSB3cmVnLCBcCiAJLnNoaWZ0ID0gd3NoaWZ0LCAuaW52ZXJ0ID0gd2ludmVydH0KIAorLyogZ2VuZXJpYyByZWdpc3RlciBtb2RpZmllciB3aWRnZXQgKi8KKyNkZWZpbmUgU05EX1NPQ19EQVBNX1JFRyh3aWQsIHduYW1lLCB3cmVnLCB3c2hpZnQsIHdtYXNrLCB3b25fdmFsLCB3b2ZmX3ZhbCkgXAorewkuaWQgPSB3aWQsIC5uYW1lID0gd25hbWUsIC5rY29udHJvbHMgPSBOVUxMLCAubnVtX2tjb250cm9scyA9IDAsIFwKKwkucmVnID0gLSgod3JlZykgKyAxKSwgLnNoaWZ0ID0gd3NoaWZ0LCAubWFzayA9IHdtYXNrLCBcCisJLm9uX3ZhbCA9IHdvbl92YWwsIC5vZmZfdmFsID0gd29mZl92YWwsIC5ldmVudCA9IGRhcG1fcmVnX2V2ZW50LCBcCisJLmV2ZW50X2ZsYWdzID0gU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUR9CisKIC8qIGRhcG0ga2NvbnRyb2wgdHlwZXMgKi8KICNkZWZpbmUgU09DX0RBUE1fU0lOR0xFKHhuYW1lLCByZWcsIHNoaWZ0LCBtYXgsIGludmVydCkgXAogewkuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgXApAQCAtMTkzLDYgKzIwMCw3IEBACiBlbnVtIHNuZF9zb2NfZGFwbV90eXBlOwogc3RydWN0IHNuZF9zb2NfZGFwbV9wYXRoOwogc3RydWN0IHNuZF9zb2NfZGFwbV9waW47CitzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlOwogCiAvKiBkYXBtIGNvbnRyb2xzICovCiBpbnQgc25kX3NvY19kYXBtX3B1dF92b2xzdyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKQEAgLTIwNSwyNSArMjEzLDMyIEBACiAJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpOwogaW50IHNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCiAJY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKndpZGdldCk7CitpbnQgc25kX3NvY19kYXBtX25ld19jb250cm9scyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKndpZGdldCwKKwlpbnQgbnVtKTsKIAogLyogZGFwbSBwYXRoIHNldHVwICovCi1pbnQgc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAoraW50ICBfX2RlcHJlY2F0ZWQgc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAogCWNvbnN0IGNoYXIgKnNpbmtfbmFtZSwgY29uc3QgY2hhciAqY29udHJvbF9uYW1lLCBjb25zdCBjaGFyICpzcmNfbmFtZSk7CiBpbnQgc25kX3NvY19kYXBtX25ld193aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyk7CiB2b2lkIHNuZF9zb2NfZGFwbV9mcmVlKHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2KTsKK2ludCBzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJCQkgICAgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSAqcm91dGUsIGludCBudW0pOwogCiAvKiBkYXBtIGV2ZW50cyAqLwogaW50IHNuZF9zb2NfZGFwbV9zdHJlYW1fZXZlbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjaGFyICpzdHJlYW0sCiAJaW50IGV2ZW50KTsKLWludCBzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2LCBpbnQgZXZlbnQpOworaW50IHNuZF9zb2NfZGFwbV9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiwKKwllbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCk7CiAKIC8qIGRhcG0gc3lzIGZzIC0gdXNlZCBieSB0aGUgY29yZSAqLwogaW50IHNuZF9zb2NfZGFwbV9zeXNfYWRkKHN0cnVjdCBkZXZpY2UgKmRldik7CiAKLS8qIGRhcG0gYXVkaW8gZW5kcG9pbnQgY29udHJvbCAqLwotaW50IHNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAotCWNoYXIgKnBpbiwgaW50IHN0YXR1cyk7Ci1pbnQgc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyk7CisvKiBkYXBtIGF1ZGlvIHBpbiBjb250cm9sIGFuZCBzdGF0dXMgKi8KK2ludCBzbmRfc29jX2RhcG1fZW5hYmxlX3BpbihzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGNoYXIgKnBpbik7CitpbnQgc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY2hhciAqcGluKTsKK2ludCBzbmRfc29jX2RhcG1fZ2V0X3Bpbl9zdGF0dXMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjaGFyICpwaW4pOworaW50IHNuZF9zb2NfZGFwbV9zeW5jKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyk7CiAKIC8qIGRhcG0gd2lkZ2V0IHR5cGVzICovCiBlbnVtIHNuZF9zb2NfZGFwbV90eXBlIHsKQEAgLTI0NSw2ICsyNjAsMTggQEAKIAlzbmRfc29jX2RhcG1fcG9zdCwJCQkvKiBtYWNoaW5lIHNwZWNpZmljIHBvc3Qgd2lkZ2V0IC0gZXhlYyBsYXN0ICovCiB9OwogCisvKgorICogREFQTSBhdWRpbyByb3V0ZSBkZWZpbml0aW9uLgorICoKKyAqIERlZmluZXMgYW4gYXVkaW8gcm91dGUgb3JpZ2luYXRpbmcgYXQgc291cmNlIHZpYSBjb250cm9sIGFuZCBmaW5pc2hpbmcKKyAqIGF0IHNpbmsuCisgKi8KK3N0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgeworCWNvbnN0IGNoYXIgKnNpbms7CisJY29uc3QgY2hhciAqY29udHJvbDsKKwljb25zdCBjaGFyICpzb3VyY2U7Cit9OworCiAvKiBkYXBtIGF1ZGlvIHBhdGggYmV0d2VlbiB0d28gd2lkZ2V0cyAqLwogc3RydWN0IHNuZF9zb2NfZGFwbV9wYXRoIHsKIAljaGFyICpuYW1lOwpAQCAtMjc3LDYgKzMwNCw5IEBACiAJdW5zaWduZWQgY2hhciBzaGlmdDsJCQkvKiBiaXRzIHRvIHNoaWZ0ICovCiAJdW5zaWduZWQgaW50IHNhdmVkX3ZhbHVlOwkJLyogd2lkZ2V0IHNhdmVkIHZhbHVlICovCiAJdW5zaWduZWQgaW50IHZhbHVlOwkJCQkvKiB3aWRnZXQgY3VycmVudCB2YWx1ZSAqLworCXVuc2lnbmVkIGludCBtYXNrOwkJCS8qIG5vbi1zaGlmdGVkIG1hc2sgKi8KKwl1bnNpZ25lZCBpbnQgb25fdmFsOwkJCS8qIG9uIHN0YXRlIHZhbHVlICovCisJdW5zaWduZWQgaW50IG9mZl92YWw7CQkJLyogb2ZmIHN0YXRlIHZhbHVlICovCiAJdW5zaWduZWQgY2hhciBwb3dlcjoxOwkJCS8qIGJsb2NrIHBvd2VyIHN0YXR1cyAqLwogCXVuc2lnbmVkIGNoYXIgaW52ZXJ0OjE7CQkJLyogaW52ZXJ0IHRoZSBwb3dlciBiaXQgKi8KIAl1bnNpZ25lZCBjaGFyIGFjdGl2ZToxOwkJCS8qIGFjdGl2ZSBzdHJlYW0gb24gREFDLCBBREMncyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9zb2MuaCBiL2luY2x1ZGUvc291bmQvc29jLmgKaW5kZXggZDNjOGMwMy4uMTg5MGQ4NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9zb2MuaAorKysgYi9pbmNsdWRlL3NvdW5kL3NvYy5oCkBAIC03Myw2ICs3MywxNSBAQAogCS5nZXQgPSBzbmRfc29jX2dldF92b2xzd18yciwgLnB1dCA9IHNuZF9zb2NfcHV0X3ZvbHN3XzJyLCBcCiAJLnByaXZhdGVfdmFsdWUgPSAocmVnX2xlZnQpIHwgKChzaGlmdCkgPDwgOCkgIHwgXAogCQkoKG1heCkgPDwgMTIpIHwgKChpbnZlcnQpIDw8IDIwKSB8ICgocmVnX3JpZ2h0KSA8PCAyNCkgfQorI2RlZmluZSBTT0NfRE9VQkxFX1M4X1RMVih4bmFtZSwgcmVnLCBtaW4sIG1heCwgdGx2X2FycmF5KSBcCit7CS5pZmFjZSAgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSAoeG5hbWUpLCBcCisJLmFjY2VzcyA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRCB8IFwKKwkJICBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLCBcCisJLnRsdi5wICA9ICh0bHZfYXJyYXkpLCBcCisJLmluZm8gICA9IHNuZF9zb2NfaW5mb192b2xzd19zOCwgLmdldCA9IHNuZF9zb2NfZ2V0X3ZvbHN3X3M4LCBcCisJLnB1dCAgICA9IHNuZF9zb2NfcHV0X3ZvbHN3X3M4LCBcCisJLnByaXZhdGVfdmFsdWUgPSAocmVnKSB8ICgoKHNpZ25lZCBjaGFyKW1heCkgPDwgMTYpIHwgXAorCQkJICgoKHNpZ25lZCBjaGFyKW1pbikgPDwgMjQpIH0KICNkZWZpbmUgU09DX0VOVU1fRE9VQkxFKHhyZWcsIHhzaGlmdF9sLCB4c2hpZnRfciwgeG1hc2ssIHh0ZXh0cykgXAogewkucmVnID0geHJlZywgLnNoaWZ0X2wgPSB4c2hpZnRfbCwgLnNoaWZ0X3IgPSB4c2hpZnRfciwgXAogCS5tYXNrID0geG1hc2ssIC50ZXh0cyA9IHh0ZXh0cyB9CkBAIC05MSw2ICsxMDAsMTUgQEAKIAkuaW5mbyA9IHNuZF9zb2NfaW5mb192b2xzdywgXAogCS5nZXQgPSB4aGFuZGxlcl9nZXQsIC5wdXQgPSB4aGFuZGxlcl9wdXQsIFwKIAkucHJpdmF0ZV92YWx1ZSA9IFNPQ19TSU5HTEVfVkFMVUUoeHJlZywgeHNoaWZ0LCB4bWFzaywgeGludmVydCkgfQorI2RlZmluZSBTT0NfU0lOR0xFX0VYVF9UTFYoeG5hbWUsIHhyZWcsIHhzaGlmdCwgeG1hc2ssIHhpbnZlcnQsXAorCSB4aGFuZGxlcl9nZXQsIHhoYW5kbGVyX3B1dCwgdGx2X2FycmF5KSBcCit7CS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCBcCisJLmFjY2VzcyA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRCB8XAorCQkgU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSxcCisJLnRsdi5wID0gKHRsdl9hcnJheSksIFwKKwkuaW5mbyA9IHNuZF9zb2NfaW5mb192b2xzdywgXAorCS5nZXQgPSB4aGFuZGxlcl9nZXQsIC5wdXQgPSB4aGFuZGxlcl9wdXQsIFwKKwkucHJpdmF0ZV92YWx1ZSA9IFNPQ19TSU5HTEVfVkFMVUUoeHJlZywgeHNoaWZ0LCB4bWFzaywgeGludmVydCkgfQogI2RlZmluZSBTT0NfU0lOR0xFX0JPT0xfRVhUKHhuYW1lLCB4ZGF0YSwgeGhhbmRsZXJfZ2V0LCB4aGFuZGxlcl9wdXQpIFwKIHsJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIFwKIAkuaW5mbyA9IHNuZF9zb2NfaW5mb19ib29sX2V4dCwgXApAQCAtMTAzLDYgKzEyMSwyNCBAQAogCS5wcml2YXRlX3ZhbHVlID0gKHVuc2lnbmVkIGxvbmcpJnhlbnVtIH0KIAogLyoKKyAqIEJpYXMgbGV2ZWxzCisgKgorICogQE9OOiAgICAgIEJpYXMgaXMgZnVsbHkgb24gZm9yIGF1ZGlvIHBsYXliYWNrIGFuZCBjYXB0dXJlIG9wZXJhdGlvbnMuCisgKiBAUFJFUEFSRTogUHJlcGFyZSBmb3IgYXVkaW8gb3BlcmF0aW9ucy4gQ2FsbGVkIGJlZm9yZSBEQVBNIHN3aXRjaGluZyBmb3IKKyAqICAgICAgICAgICBzdHJlYW0gc3RhcnQgYW5kIHN0b3Agb3BlcmF0aW9ucy4KKyAqIEBTVEFOREJZOiBMb3cgcG93ZXIgc3RhbmRieSBzdGF0ZSB3aGVuIG5vIHBsYXliYWNrL2NhcHR1cmUgb3BlcmF0aW9ucyBhcmUKKyAqICAgICAgICAgICBpbiBwcm9ncmVzcy4gTk9URTogVGhlIHRyYW5zaXRpb24gdGltZSBiZXR3ZWVuIFNUQU5EQlkgYW5kIE9OCisgKiAgICAgICAgICAgc2hvdWxkIGJlIGFzIGZhc3QgYXMgcG9zc2libGUgYW5kIG5vIGxvbmdlciB0aGFuIDEwbXMuCisgKiBAT0ZGOiAgICAgUG93ZXIgT2ZmLiBObyByZXN0cmljdGlvbnMgb24gdHJhbnNpdGlvbiB0aW1lcy4KKyAqLworZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgeworCVNORF9TT0NfQklBU19PTiwKKwlTTkRfU09DX0JJQVNfUFJFUEFSRSwKKwlTTkRfU09DX0JJQVNfU1RBTkRCWSwKKwlTTkRfU09DX0JJQVNfT0ZGLAorfTsKKworLyoKICAqIERpZ2l0YWwgQXVkaW8gSW50ZXJmYWNlIChEQUkpIHR5cGVzCiAgKi8KICNkZWZpbmUgU05EX1NPQ19EQUlfQUM5NwkweDEKQEAgLTE4NSw4ICsyMjEsNyBAQAogc3RydWN0IHNuZF9zb2Nfb3BzOwogc3RydWN0IHNuZF9zb2NfZGFpX21vZGU7CiBzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZTsKLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaTsKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWk7CitzdHJ1Y3Qgc25kX3NvY19kYWk7CiBzdHJ1Y3Qgc25kX3NvY19jb2RlYzsKIHN0cnVjdCBzbmRfc29jX21hY2hpbmVfY29uZmlnOwogc3RydWN0IHNvY19lbnVtOwpAQCAtMjIxLDYgKzI1NiwyNyBAQAogCXN0cnVjdCBzbmRfYWM5N19idXNfb3BzICpvcHMsIGludCBudW0pOwogdm9pZCBzbmRfc29jX2ZyZWVfYWM5N19jb2RlYyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpOwogCisvKiBEaWdpdGFsIEF1ZGlvIEludGVyZmFjZSBjbG9ja2luZyBBUEkuKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgY2xrX2lkLAorCXVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKTsKKworaW50IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCisJaW50IGRpdl9pZCwgaW50IGRpdik7CisKK2ludCBzbmRfc29jX2RhaV9zZXRfcGxsKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAorCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpOworCisvKiBEaWdpdGFsIEF1ZGlvIGludGVyZmFjZSBmb3JtYXR0aW5nICovCitpbnQgc25kX3NvY19kYWlfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgdW5zaWduZWQgaW50IGZtdCk7CisKK2ludCBzbmRfc29jX2RhaV9zZXRfdGRtX3Nsb3Qoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCisJdW5zaWduZWQgaW50IG1hc2ssIGludCBzbG90cyk7CisKK2ludCBzbmRfc29jX2RhaV9zZXRfdHJpc3RhdGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCB0cmlzdGF0ZSk7CisKKy8qIERpZ2l0YWwgQXVkaW8gSW50ZXJmYWNlIG11dGUgKi8KK2ludCBzbmRfc29jX2RhaV9kaWdpdGFsX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKTsKKwogLyoKICAqQ29udHJvbHMKICAqLwpAQCAtMjQ5LDYgKzMwNSwxMiBAQAogCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKTsKIGludCBzbmRfc29jX3B1dF92b2xzd18ycihzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKIAlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCk7CitpbnQgc25kX3NvY19pbmZvX3ZvbHN3X3M4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pOworaW50IHNuZF9zb2NfZ2V0X3ZvbHN3X3M4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKTsKK2ludCBzbmRfc29jX3B1dF92b2xzd19zOChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCk7CiAKIC8qIFNvQyBQQ00gc3RyZWFtIGluZm9ybWF0aW9uICovCiBzdHJ1Y3Qgc25kX3NvY19wY21fc3RyZWFtIHsKQEAgLTI3Miw4NyArMzM0LDQ1IEBACiAJaW50ICgqdHJpZ2dlcikoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICosIGludCk7CiB9OwogCi0vKiBBU29DIGNvZGVjIERBSSBvcHMgKi8KLXN0cnVjdCBzbmRfc29jX2NvZGVjX29wcyB7Ci0JLyogY29kZWMgREFJIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24gKi8KLQlpbnQgKCpzZXRfc3lzY2xrKShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKKy8qIEFTb0MgREFJIG9wcyAqLworc3RydWN0IHNuZF9zb2NfZGFpX29wcyB7CisJLyogREFJIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24gKi8KKwlpbnQgKCpzZXRfc3lzY2xrKShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpOwotCWludCAoKnNldF9wbGwpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorCWludCAoKnNldF9wbGwpKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAogCQlpbnQgcGxsX2lkLCB1bnNpZ25lZCBpbnQgZnJlcV9pbiwgdW5zaWduZWQgaW50IGZyZXFfb3V0KTsKLQlpbnQgKCpzZXRfY2xrZGl2KShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKLQkJaW50IGRpdl9pZCwgaW50IGRpdik7CisJaW50ICgqc2V0X2Nsa2Rpdikoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBkaXZfaWQsIGludCBkaXYpOwogCi0JLyogQ1BVIERBSSBmb3JtYXQgY29uZmlndXJhdGlvbiAqLwotCWludCAoKnNldF9mbXQpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAotCQl1bnNpZ25lZCBpbnQgZm10KTsKLQlpbnQgKCpzZXRfdGRtX3Nsb3QpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorCS8qIERBSSBmb3JtYXQgY29uZmlndXJhdGlvbiAqLworCWludCAoKnNldF9mbXQpKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCB1bnNpZ25lZCBpbnQgZm10KTsKKwlpbnQgKCpzZXRfdGRtX3Nsb3QpKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAogCQl1bnNpZ25lZCBpbnQgbWFzaywgaW50IHNsb3RzKTsKLQlpbnQgKCpzZXRfdHJpc3RhdGUpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqLCBpbnQgdHJpc3RhdGUpOworCWludCAoKnNldF90cmlzdGF0ZSkoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCB0cmlzdGF0ZSk7CiAKIAkvKiBkaWdpdGFsIG11dGUgKi8KLQlpbnQgKCpkaWdpdGFsX211dGUpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqLCBpbnQgbXV0ZSk7CisJaW50ICgqZGlnaXRhbF9tdXRlKShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IG11dGUpOwogfTsKIAotLyogQVNvQyBjcHUgREFJIG9wcyAqLwotc3RydWN0IHNuZF9zb2NfY3B1X29wcyB7Ci0JLyogQ1BVIERBSSBjbG9ja2luZyBjb25maWd1cmF0aW9uICovCi0JaW50ICgqc2V0X3N5c2Nsaykoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKLQkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpOwotCWludCAoKnNldF9jbGtkaXYpKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCi0JCWludCBkaXZfaWQsIGludCBkaXYpOwotCWludCAoKnNldF9wbGwpKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCi0JCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpOwotCi0JLyogQ1BVIERBSSBmb3JtYXQgY29uZmlndXJhdGlvbiAqLwotCWludCAoKnNldF9mbXQpKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCi0JCXVuc2lnbmVkIGludCBmbXQpOwotCWludCAoKnNldF90ZG1fc2xvdCkoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKLQkJdW5zaWduZWQgaW50IG1hc2ssIGludCBzbG90cyk7Ci0JaW50ICgqc2V0X3RyaXN0YXRlKShzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICosIGludCB0cmlzdGF0ZSk7Ci19OwotCi0vKiBTb0MgQ29kZWMgREFJICovCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgewotCWNoYXIgKm5hbWU7Ci0JaW50IGlkOwotCXVuc2lnbmVkIGNoYXIgdHlwZTsKLQotCS8qIERBSSBjYXBhYmlsaXRpZXMgKi8KLQlzdHJ1Y3Qgc25kX3NvY19wY21fc3RyZWFtIHBsYXliYWNrOwotCXN0cnVjdCBzbmRfc29jX3BjbV9zdHJlYW0gY2FwdHVyZTsKLQotCS8qIERBSSBydW50aW1lIGluZm8gKi8KLQlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7Ci0JdW5zaWduZWQgaW50IGFjdGl2ZTsKLQl1bnNpZ25lZCBjaGFyIHBvcF93YWl0OjE7Ci0KLQkvKiBvcHMgKi8KLQlzdHJ1Y3Qgc25kX3NvY19vcHMgb3BzOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX29wcyBkYWlfb3BzOwotCi0JLyogREFJIHByaXZhdGUgZGF0YSAqLwotCXZvaWQgKnByaXZhdGVfZGF0YTsKLX07Ci0KLS8qIFNvQyBDUFUgREFJICovCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHsKLQorLyogU29DICBEQUkgKERpZ2l0YWwgQXVkaW8gSW50ZXJmYWNlKSAqLworc3RydWN0IHNuZF9zb2NfZGFpIHsKIAkvKiBEQUkgZGVzY3JpcHRpb24gKi8KIAljaGFyICpuYW1lOwogCXVuc2lnbmVkIGludCBpZDsKIAl1bnNpZ25lZCBjaGFyIHR5cGU7CiAKIAkvKiBEQUkgY2FsbGJhY2tzICovCi0JaW50ICgqcHJvYmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwotCXZvaWQgKCpyZW1vdmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOworCWludCAoKnByb2JlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKTsKKwl2b2lkICgqcmVtb3ZlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkgICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpOwogCWludCAoKnN1c3BlbmQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkpOworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSk7CiAJaW50ICgqcmVzdW1lKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKTsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpOwogCiAJLyogb3BzICovCiAJc3RydWN0IHNuZF9zb2Nfb3BzIG9wczsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfb3BzIGRhaV9vcHM7CisJc3RydWN0IHNuZF9zb2NfZGFpX29wcyBkYWlfb3BzOwogCiAJLyogREFJIGNhcGFiaWxpdGllcyAqLwogCXN0cnVjdCBzbmRfc29jX3BjbV9zdHJlYW0gY2FwdHVyZTsKQEAgLTM2MCw3ICszODAsOSBAQAogCiAJLyogREFJIHJ1bnRpbWUgaW5mbyAqLwogCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWU7Ci0JdW5zaWduZWQgY2hhciBhY3RpdmU6MTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7CisJdW5zaWduZWQgaW50IGFjdGl2ZTsKKwl1bnNpZ25lZCBjaGFyIHBvcF93YWl0OjE7CiAJdm9pZCAqZG1hX2RhdGE7CiAKIAkvKiBEQUkgcHJpdmF0ZSBkYXRhICovCkBAIC0zNzQsNyArMzk2LDggQEAKIAlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CiAKIAkvKiBjYWxsYmFja3MgKi8KLQlpbnQgKCpkYXBtX2V2ZW50KShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBldmVudCk7CisJaW50ICgqc2V0X2JpYXNfbGV2ZWwpKHN0cnVjdCBzbmRfc29jX2NvZGVjICosCisJCQkgICAgICBlbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCk7CiAKIAkvKiBydW50aW1lICovCiAJc3RydWN0IHNuZF9jYXJkICpjYXJkOwpAQCAtMzk2LDEyICs0MTksMTIgQEAKIAkvKiBkYXBtICovCiAJc3RydWN0IGxpc3RfaGVhZCBkYXBtX3dpZGdldHM7CiAJc3RydWN0IGxpc3RfaGVhZCBkYXBtX3BhdGhzOwotCXVuc2lnbmVkIGludCBkYXBtX3N0YXRlOwotCXVuc2lnbmVkIGludCBzdXNwZW5kX2RhcG1fc3RhdGU7CisJZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgYmlhc19sZXZlbDsKKwllbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBzdXNwZW5kX2JpYXNfbGV2ZWw7CiAJc3RydWN0IGRlbGF5ZWRfd29yayBkZWxheWVkX3dvcms7CiAKIAkvKiBjb2RlYyBEQUkncyAqLwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpOwogCXVuc2lnbmVkIGludCBudW1fZGFpOwogfTsKIApAQCAtNDIwLDEyICs0NDMsMTIgQEAKIAlpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7CiAJaW50ICgqcmVtb3ZlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKIAlpbnQgKCpzdXNwZW5kKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKTsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpOwogCWludCAoKnJlc3VtZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSk7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKTsKIAogCS8qIHBjbSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gKi8KLQlpbnQgKCpwY21fbmV3KShzdHJ1Y3Qgc25kX2NhcmQgKiwgc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICosCisJaW50ICgqcGNtX25ldykoc3RydWN0IHNuZF9jYXJkICosIHN0cnVjdCBzbmRfc29jX2RhaSAqLAogCQlzdHJ1Y3Qgc25kX3BjbSAqKTsKIAl2b2lkICgqcGNtX2ZyZWUpKHN0cnVjdCBzbmRfcGNtICopOwogCkBAIC00MzksOCArNDYyLDggQEAKIAljaGFyICpzdHJlYW1fbmFtZTsJCS8qIFN0cmVhbSBuYW1lICovCiAKIAkvKiBEQUkgKi8KLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaTsKIAogCS8qIG1hY2hpbmUgc3RyZWFtIG9wZXJhdGlvbnMgKi8KIAlzdHJ1Y3Qgc25kX3NvY19vcHMgKm9wczsKQEAgLTQ2Nyw3ICs0OTAsOCBAQAogCWludCAoKnJlc3VtZV9wb3N0KShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKIAogCS8qIGNhbGxiYWNrcyAqLwotCWludCAoKmRhcG1fZXZlbnQpKHN0cnVjdCBzbmRfc29jX21hY2hpbmUgKiwgaW50IGV2ZW50KTsKKwlpbnQgKCpzZXRfYmlhc19sZXZlbCkoc3RydWN0IHNuZF9zb2NfbWFjaGluZSAqLAorCQkJICAgICAgZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpOwogCiAJLyogQ1BVIDwtLT4gQ29kZWMgREFJIGxpbmtzICAqLwogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICpkYWlfbGluazsKQEAgLTQ4Miw2ICs1MDYsNyBAQAogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYzsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2UgKmNvZGVjX2RldjsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGRlbGF5ZWRfd29yazsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZGVmZXJyZWRfcmVzdW1lX3dvcms7CiAJdm9pZCAqY29kZWNfZGF0YTsKIH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvdWRhMTM0MS5oIGIvaW5jbHVkZS9zb3VuZC91ZGExMzQxLmgKaW5kZXggMmU1NjRiZi4uMTEwZDVkYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC91ZGExMzQxLmgKKysrIGIvaW5jbHVkZS9zb3VuZC91ZGExMzQxLmgKQEAgLTE1LDggKzE1LDYgQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXMgc3VwcG9ydAogICovCiAKLS8qICRJZDogdWRhMTM0MS5oLHYgMS44IDIwMDUvMTEvMTcgMTQ6MTc6MjEgdGl3YWkgRXhwICQgKi8KLQogI2RlZmluZSBVREExMzQxX0FMU0FfTkFNRSAic25kLXVkYTEzNDEiCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL3ZlcnNpb24uaCBiL2luY2x1ZGUvc291bmQvdmVyc2lvbi5oCmluZGV4IGVkNmZiMmUuLjZiNzhhZmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc291bmQvdmVyc2lvbi5oCisrKyBiL2luY2x1ZGUvc291bmQvdmVyc2lvbi5oCkBAIC0xLDMgKzEsMyBAQAotLyogaW5jbHVkZS92ZXJzaW9uLmguICBHZW5lcmF0ZWQgYnkgYWxzYS9rc3luYyBzY3JpcHQuICAqLwotI2RlZmluZSBDT05GSUdfU05EX1ZFUlNJT04gIjEuMC4xNiIKKy8qIGluY2x1ZGUvdmVyc2lvbi5oICovCisjZGVmaW5lIENPTkZJR19TTkRfVkVSU0lPTiAiMS4wLjE3IgogI2RlZmluZSBDT05GSUdfU05EX0RBVEUgIiIKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2V2ZW50cy5oIGIvaW5jbHVkZS94ZW4vZXZlbnRzLmgKaW5kZXggYWNkOGUwNi4uNjdjNDQzNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vZXZlbnRzLmgKKysrIGIvaW5jbHVkZS94ZW4vZXZlbnRzLmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogdm9pZCB4ZW5fc2VuZF9JUElfb25lKHVuc2lnbmVkIGludCBjcHUsIGVudW0gaXBpX3ZlY3RvciB2ZWN0b3IpOwogaW50IHJlc2VuZF9pcnFfb25fZXZ0Y2huKHVuc2lnbmVkIGludCBpcnEpOwordm9pZCByZWJpbmRfZXZ0Y2huX2lycShpbnQgZXZ0Y2huLCBpbnQgaXJxKTsKIAogc3RhdGljIGlubGluZSB2b2lkIG5vdGlmeV9yZW1vdGVfdmlhX2V2dGNobihpbnQgcG9ydCkKIHsKQEAgLTQwLDQgKzQxLDcgQEAKIH0KIAogZXh0ZXJuIHZvaWQgbm90aWZ5X3JlbW90ZV92aWFfaXJxKGludCBpcnEpOworCitleHRlcm4gdm9pZCB4ZW5faXJxX3Jlc3VtZSh2b2lkKTsKKwogI2VuZGlmCS8qIF9YRU5fRVZFTlRTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmggYi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oCmluZGV4IDQ2NjIwNDguLmE0MGYxY2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmgKKysrIGIvaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaApAQCAtNTEsNiArNTEsOSBAQAogCXUxNiBjb3VudDsKIH07CiAKK2ludCBnbnR0YWJfc3VzcGVuZCh2b2lkKTsKK2ludCBnbnR0YWJfcmVzdW1lKHZvaWQpOworCiBpbnQgZ250dGFiX2dyYW50X2ZvcmVpZ25fYWNjZXNzKGRvbWlkX3QgZG9taWQsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCiAJCQkJaW50IHJlYWRvbmx5KTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaHZjLWNvbnNvbGUuaCBiL2luY2x1ZGUveGVuL2h2Yy1jb25zb2xlLmgKaW5kZXggMjFjMGVjZi4uOThiNzliYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaHZjLWNvbnNvbGUuaAorKysgYi9pbmNsdWRlL3hlbi9odmMtY29uc29sZS5oCkBAIC0zLDQgKzMsMTMgQEAKIAogZXh0ZXJuIHN0cnVjdCBjb25zb2xlIHhlbmJvb3RfY29uc29sZTsKIAorI2lmZGVmIENPTkZJR19IVkNfWEVOCit2b2lkIHhlbl9jb25zb2xlX3Jlc3VtZSh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2NvbnNvbGVfcmVzdW1lKHZvaWQpIHsgfQorI2VuZGlmCisKK3ZvaWQgeGVuX3Jhd19jb25zb2xlX3dyaXRlKGNvbnN0IGNoYXIgKnN0cik7Cit2b2lkIHhlbl9yYXdfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKwogI2VuZGlmCS8qIFhFTl9IVkNfQ09OU09MRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvZWxmbm90ZS5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2VsZm5vdGUuaAppbmRleCBhNjRkM2RmLi43YTgyNjJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvZWxmbm90ZS5oCisrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9lbGZub3RlLmgKQEAgLTEyMCw2ICsxMjAsMjYgQEAKICAqLwogI2RlZmluZSBYRU5fRUxGTk9URV9CU0RfU1lNVEFCICAgIDExCiAKKy8qCisgKiBUaGUgbG93ZXN0IGFkZHJlc3MgdGhlIGh5cGVydmlzb3IgaG9sZSBjYW4gYmVnaW4gYXQgKG51bWVyaWMpLgorICoKKyAqIFRoaXMgbXVzdCBub3QgYmUgc2V0IGhpZ2hlciB0aGFuIEhZUEVSVklTT1JfVklSVF9TVEFSVC4gSXRzIHByZXNlbmNlCisgKiBhbHNvIGluZGljYXRlcyB0byB0aGUgaHlwZXJ2aXNvciB0aGF0IHRoZSBrZXJuZWwgY2FuIGRlYWwgd2l0aCB0aGUKKyAqIGhvbGUgc3RhcnRpbmcgYXQgYSBoaWdoZXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBYRU5fRUxGTk9URV9IVl9TVEFSVF9MT1cgIDEyCisKKy8qCisgKiBMaXN0IG9mIG1hZGRyX3Qtc2l6ZWQgbWFzay92YWx1ZSBwYWlycyBkZXNjcmliaW5nIGhvdyB0byByZWNvZ25pemUKKyAqIChub24tcHJlc2VudCkgTDEgcGFnZSB0YWJsZSBlbnRyaWVzIGNhcnJ5aW5nIHZhbGlkIE1GTnMgKG51bWVyaWMpLgorICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX0wxX01GTl9WQUxJRCAgMTMKKworLyoKKyAqIFdoZXRoZXIgb3Igbm90IHRoZSBndWVzdCBzdXBwb3J0cyBjb29wZXJhdGl2ZSBzdXNwZW5kIGNhbmNlbGxhdGlvbi4KKyAqLworI2RlZmluZSBYRU5fRUxGTk9URV9TVVNQRU5EX0NBTkNFTCAxNAorCiAjZW5kaWYgLyogX19YRU5fUFVCTElDX0VMRk5PVEVfSF9fICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvZmVhdHVyZXMuaCBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9mZWF0dXJlcy5oCmluZGV4IGQ3MzIyOGQuLmY1MWI2NDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9mZWF0dXJlcy5oCisrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9mZWF0dXJlcy5oCkBAIC0zOCw2ICszOCw5IEBACiAgKi8KICNkZWZpbmUgWEVORkVBVF9wYWVfcGdkaXJfYWJvdmVfNGdiICAgICAgICA0CiAKKy8qIHg4NjogRG9lcyB0aGlzIFhlbiBob3N0IHN1cHBvcnQgdGhlIE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQgaHlwZXJjYWxsPyAqLworI2RlZmluZSBYRU5GRUFUX21tdV9wdF91cGRhdGVfcHJlc2VydmVfYWQgIDUKKwogI2RlZmluZSBYRU5GRUFUX05SX1NVQk1BUFMgMQogCiAjZW5kaWYgLyogX19YRU5fUFVCTElDX0ZFQVRVUkVTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2ZiaWYuaCBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9mYmlmLmgKaW5kZXggNWE5MzRkZC4uOTc0YTUxZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2ZiaWYuaAorKysgYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vZmJpZi5oCkBAIC00OSwxMSArNDksMjcgQEAKIAlpbnQzMl90IGhlaWdodDsJCS8qIHJlY3QgaGVpZ2h0ICovCiB9OwogCisvKgorICogRnJhbWVidWZmZXIgcmVzaXplIG5vdGlmaWNhdGlvbiBldmVudAorICogQ2FwYWJsZSBiYWNrZW5kIHNldHMgZmVhdHVyZS1yZXNpemUgaW4geGVuc3RvcmUuCisgKi8KKyNkZWZpbmUgWEVORkJfVFlQRV9SRVNJWkUgMworCitzdHJ1Y3QgeGVuZmJfcmVzaXplIHsKKwl1aW50OF90IHR5cGU7CQkvKiBYRU5GQl9UWVBFX1JFU0laRSAqLworCWludDMyX3Qgd2lkdGg7CQkvKiB3aWR0aCBpbiBwaXhlbHMgKi8KKwlpbnQzMl90IGhlaWdodDsJCS8qIGhlaWdodCBpbiBwaXhlbHMgKi8KKwlpbnQzMl90IHN0cmlkZTsJCS8qIHN0cmlkZSBpbiBieXRlcyAqLworCWludDMyX3QgZGVwdGg7CQkvKiBkZXB0aCBpbiBiaXRzICovCisJaW50MzJfdCBvZmZzZXQ7CQkvKiBzdGFydCBvZmZzZXQgd2l0aGluIGZyYW1lYnVmZmVyICovCit9OworCiAjZGVmaW5lIFhFTkZCX09VVF9FVkVOVF9TSVpFIDQwCiAKIHVuaW9uIHhlbmZiX291dF9ldmVudCB7CiAJdWludDhfdCB0eXBlOwogCXN0cnVjdCB4ZW5mYl91cGRhdGUgdXBkYXRlOworCXN0cnVjdCB4ZW5mYl9yZXNpemUgcmVzaXplOwogCWNoYXIgcGFkW1hFTkZCX09VVF9FVkVOVF9TSVpFXTsKIH07CiAKQEAgLTEwNSwxNSArMTIxLDE4IEBACiAJICogRWFjaCBkaXJlY3RvcnkgcGFnZSBob2xkcyBQQUdFX1NJWkUgLyBzaXplb2YoKnBkKQogCSAqIGZyYW1lYnVmZmVyIHBhZ2VzLCBhbmQgY2FuIHRodXMgbWFwIHVwIHRvIFBBR0VfU0laRSAqCiAJICogUEFHRV9TSVpFIC8gc2l6ZW9mKCpwZCkgYnl0ZXMuICBXaXRoIFBBR0VfU0laRSA9PSA0MDk2IGFuZAotCSAqIHNpemVvZih1bnNpZ25lZCBsb25nKSA9PSA0LCB0aGF0J3MgNCBNZWdzLiAgVHdvIGRpcmVjdG9yeQotCSAqIHBhZ2VzIHNob3VsZCBiZSBlbm91Z2ggZm9yIGEgd2hpbGUuCisJICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpID09IDQvOCwgdGhhdCdzIDQgTWVncyAzMiBiaXQgYW5kIDIKKwkgKiBNZWdzIDY0IGJpdC4gIDI1NiBkaXJlY3RvcmllcyBnaXZlIGVub3VnaCByb29tIGZvciBhIDUxMgorCSAqIE1lZyBmcmFtZWJ1ZmZlciB3aXRoIGEgbWF4IHJlc29sdXRpb24gb2YgMTIsODAweDEwLDI0MC4KKwkgKiBTaG91bGQgYmUgZW5vdWdoIGZvciBhIHdoaWxlIHdpdGggcm9vbSBsZWZ0b3ZlciBmb3IKKwkgKiBleHBhbnNpb24uCiAJICovCi0JdW5zaWduZWQgbG9uZyBwZFsyXTsKKwl1bnNpZ25lZCBsb25nIHBkWzI1Nl07CiB9OwogCiAvKgotICogV2FydDogeGVua2JkIG5lZWRzIHRvIGtub3cgcmVzb2x1dGlvbi4gIFB1dCBpdCBoZXJlIHVudGlsIGEgYmV0dGVyCi0gKiBzb2x1dGlvbiBpcyBmb3VuZCwgYnV0IGRvbid0IGxlYWsgaXQgdG8gdGhlIGJhY2tlbmQuCisgKiBXYXJ0OiB4ZW5rYmQgbmVlZHMgdG8ga25vdyBkZWZhdWx0IHJlc29sdXRpb24uICBQdXQgaXQgaGVyZSB1bnRpbCBhCisgKiBiZXR0ZXIgc29sdXRpb24gaXMgZm91bmQsIGJ1dCBkb24ndCBsZWFrIGl0IHRvIHRoZSBiYWNrZW5kLgogICovCiAjaWZkZWYgX19LRVJORUxfXwogI2RlZmluZSBYRU5GQl9XSURUSCA4MDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9rYmRpZi5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2tiZGlmLmgKaW5kZXggZmI5N2Y0Mi4uODA2NmM3OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2tiZGlmLmgKKysrIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2tiZGlmLmgKQEAgLTQ5LDYgKzQ5LDcgQEAKIAl1aW50OF90IHR5cGU7CQkvKiBYRU5LQkRfVFlQRV9NT1RJT04gKi8KIAlpbnQzMl90IHJlbF94OwkJLyogcmVsYXRpdmUgWCBtb3Rpb24gKi8KIAlpbnQzMl90IHJlbF95OwkJLyogcmVsYXRpdmUgWSBtb3Rpb24gKi8KKwlpbnQzMl90IHJlbF96OwkJLyogcmVsYXRpdmUgWiBtb3Rpb24gKHdoZWVsKSAqLwogfTsKIAogc3RydWN0IHhlbmtiZF9rZXkgewpAQCAtNjEsNiArNjIsNyBAQAogCXVpbnQ4X3QgdHlwZTsJCS8qIFhFTktCRF9UWVBFX1BPUyAqLwogCWludDMyX3QgYWJzX3g7CQkvKiBhYnNvbHV0ZSBYIHBvc2l0aW9uIChpbiBGQiBwaXhlbHMpICovCiAJaW50MzJfdCBhYnNfeTsJCS8qIGFic29sdXRlIFkgcG9zaXRpb24gKGluIEZCIHBpeGVscykgKi8KKwlpbnQzMl90IHJlbF96OwkJLyogcmVsYXRpdmUgWiBtb3Rpb24gKHdoZWVsKSAqLwogfTsKIAogI2RlZmluZSBYRU5LQkRfSU5fRVZFTlRfU0laRSA0MApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL21lbW9yeS5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL21lbW9yeS5oCmluZGV4IGRhNzY4NDYuLmFmMzZlYWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9tZW1vcnkuaAorKysgYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvbWVtb3J5LmgKQEAgLTI5LDcgKzI5LDcgQEAKICAgICAgKiAgIE9VVDogR01GTiBiYXNlcyBvZiBleHRlbnRzIHRoYXQgd2VyZSBhbGxvY2F0ZWQKICAgICAgKiAgIChOQi4gVGhpcyBjb21tYW5kIGFsc28gdXBkYXRlcyB0aGUgbWFjaF90b19waHlzIHRyYW5zbGF0aW9uIHRhYmxlKQogICAgICAqLwotICAgIHVsb25nIGV4dGVudF9zdGFydDsKKyAgICBHVUVTVF9IQU5ETEUodWxvbmcpIGV4dGVudF9zdGFydDsKIAogICAgIC8qIE51bWJlciBvZiBleHRlbnRzLCBhbmQgc2l6ZS9hbGlnbm1lbnQgb2YgZWFjaCAoMl5leHRlbnRfb3JkZXIgcGFnZXMpLiAqLwogICAgIHVuc2lnbmVkIGxvbmcgIG5yX2V4dGVudHM7CkBAIC01MCw2ICs1MCw3IEBACiAgICAgZG9taWRfdCAgICAgICAgZG9taWQ7CiAKIH07CitERUZJTkVfR1VFU1RfSEFORExFX1NUUlVDVCh4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uKTsKIAogLyoKICAqIFJldHVybnMgdGhlIG1heGltdW0gbWFjaGluZSBmcmFtZSBudW1iZXIgb2YgbWFwcGVkIFJBTSBpbiB0aGlzIHN5c3RlbS4KQEAgLTg1LDcgKzg2LDcgQEAKICAgICAgKiBhbnkgbGFyZ2UgZGlzY29udGlndWl0aWVzIGluIHRoZSBtYWNoaW5lIGFkZHJlc3Mgc3BhY2UsIDJNQiBnYXBzIGluCiAgICAgICogdGhlIG1hY2hwaHlzIHRhYmxlIHdpbGwgYmUgcmVwcmVzZW50ZWQgYnkgYW4gTUZOIGJhc2Ugb2YgemVyby4KICAgICAgKi8KLSAgICB1bG9uZyBleHRlbnRfc3RhcnQ7CisgICAgR1VFU1RfSEFORExFKHVsb25nKSBleHRlbnRfc3RhcnQ7CiAKICAgICAvKgogICAgICAqIE51bWJlciBvZiBleHRlbnRzIHdyaXR0ZW4gdG8gdGhlIGFib3ZlIGFycmF5LiBUaGlzIHdpbGwgYmUgc21hbGxlcgpAQCAtOTMsNiArOTQsNyBAQAogICAgICAqLwogICAgIHVuc2lnbmVkIGludCBucl9leHRlbnRzOwogfTsKK0RFRklORV9HVUVTVF9IQU5ETEVfU1RSVUNUKHhlbl9tYWNocGh5c19tZm5fbGlzdCk7CiAKIC8qCiAgKiBTZXRzIHRoZSBHUEZOIGF0IHdoaWNoIGEgcGFydGljdWxhciBwYWdlIGFwcGVhcnMgaW4gdGhlIHNwZWNpZmllZCBndWVzdCdzCkBAIC0xMTUsNiArMTE3LDcgQEAKICAgICAvKiBHUEZOIHdoZXJlIHRoZSBzb3VyY2UgbWFwcGluZyBwYWdlIHNob3VsZCBhcHBlYXIuICovCiAgICAgdW5zaWduZWQgbG9uZyBncGZuOwogfTsKK0RFRklORV9HVUVTVF9IQU5ETEVfU1RSVUNUKHhlbl9hZGRfdG9fcGh5c21hcCk7CiAKIC8qCiAgKiBUcmFuc2xhdGVzIGEgbGlzdCBvZiBkb21haW4tc3BlY2lmaWMgR1BGTnMgaW50byBNRk5zLiBSZXR1cm5zIGEgLXZlIGVycm9yCkBAIC0xMjksMTMgKzEzMiwxNCBAQAogICAgIHVuc2lnbmVkIGxvbmcgbnJfZ3BmbnM7CiAKICAgICAvKiBMaXN0IG9mIEdQRk5zIHRvIHRyYW5zbGF0ZS4gKi8KLSAgICB1bG9uZyBncGZuX2xpc3Q7CisgICAgR1VFU1RfSEFORExFKHVsb25nKSBncGZuX2xpc3Q7CiAKICAgICAvKgogICAgICAqIE91dHB1dCBsaXN0IHRvIGNvbnRhaW4gTUZOIHRyYW5zbGF0aW9ucy4gTWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBpbnB1dAogICAgICAqIGxpc3QgKGluIHdoaWNoIGNhc2UgZWFjaCBpbnB1dCBHUEZOIGlzIG92ZXJ3cml0dGVuIHdpdGggdGhlIG91dHB1dCBNRk4pLgogICAgICAqLwotICAgIHVsb25nIG1mbl9saXN0OworICAgIEdVRVNUX0hBTkRMRSh1bG9uZykgbWZuX2xpc3Q7CiB9OworREVGSU5FX0dVRVNUX0hBTkRMRV9TVFJVQ1QoeGVuX3RyYW5zbGF0ZV9ncGZuX2xpc3QpOwogCiAjZW5kaWYgLyogX19YRU5fUFVCTElDX01FTU9SWV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS94ZW4uaCBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS94ZW4uaAppbmRleCA4MTlhMDMzLi4yYmVmYTNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UveGVuLmgKKysrIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL3hlbi5oCkBAIC0xMTQsOSArMTE0LDE0IEBACiAgKiBwdHJbOjJdICAtLSBNYWNoaW5lIGFkZHJlc3Mgd2l0aGluIHRoZSBmcmFtZSB3aG9zZSBtYXBwaW5nIHRvIG1vZGlmeS4KICAqICAgICAgICAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBzcGVjaWZpZWQuCiAgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZSBpbnRvIHRoZSBtYXBwaW5nIGVudHJ5LgorICoKKyAqIHB0clsxOjBdID09IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ6CisgKiBBcyBNTVVfTk9STUFMX1BUX1VQREFURSBhYm92ZSwgYnV0IEEvRCBiaXRzIGN1cnJlbnRseSBpbiB0aGUgUFRFIGFyZSBPUmVkCisgKiB3aXRoIHRob3NlIGluIEB2YWwuCiAgKi8KLSNkZWZpbmUgTU1VX05PUk1BTF9QVF9VUERBVEUgICAgIDAgLyogY2hlY2tlZCAnKnB0ciA9IHZhbCcuIHB0ciBpcyBNQS4gICAgICAgKi8KLSNkZWZpbmUgTU1VX01BQ0hQSFlTX1VQREFURSAgICAgIDEgLyogcHRyID0gTUEgb2YgZnJhbWUgdG8gbW9kaWZ5IGVudHJ5IGZvciAgKi8KKyNkZWZpbmUgTU1VX05PUk1BTF9QVF9VUERBVEUgICAgICAwIC8qIGNoZWNrZWQgJypwdHIgPSB2YWwnLiBwdHIgaXMgTUEuICAgICAgICovCisjZGVmaW5lIE1NVV9NQUNIUEhZU19VUERBVEUgICAgICAgMSAvKiBwdHIgPSBNQSBvZiBmcmFtZSB0byBtb2RpZnkgZW50cnkgZm9yICAqLworI2RlZmluZSBNTVVfUFRfVVBEQVRFX1BSRVNFUlZFX0FEIDIgLyogYXRvbWljYWxseTogKnB0ciA9IHZhbCB8ICgqcHRyJihBfEQpKSAqLwogCiAvKgogICogTU1VIEVYVEVOREVEIE9QRVJBVElPTlMKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3hlbi1vcHMuaCBiL2luY2x1ZGUveGVuL3hlbi1vcHMuaAppbmRleCAxMGRkZmUwLi5hNzA2ZDZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi94ZW4tb3BzLmgKKysrIGIvaW5jbHVkZS94ZW4veGVuLW9wcy5oCkBAIC01LDQgKzUsMTAgQEAKIAogREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCB2Y3B1X2luZm8gKiwgeGVuX3ZjcHUpOwogCit2b2lkIHhlbl9wcmVfc3VzcGVuZCh2b2lkKTsKK3ZvaWQgeGVuX3Bvc3Rfc3VzcGVuZChpbnQgc3VzcGVuZF9jYW5jZWxsZWQpOworCit2b2lkIHhlbl9tbV9waW5fYWxsKHZvaWQpOwordm9pZCB4ZW5fbW1fdW5waW5fYWxsKHZvaWQpOworCiAjZW5kaWYgLyogSU5DTFVERV9YRU5fT1BTX0ggKi8KZGlmZiAtLWdpdCBhL2luaXQvY2FsaWJyYXRlLmMgYi9pbml0L2NhbGlicmF0ZS5jCmluZGV4IGVjYjM4MjIuLjc5NjNlM2YgMTAwNjQ0Ci0tLSBhL2luaXQvY2FsaWJyYXRlLmMKKysrIGIvaW5pdC9jYWxpYnJhdGUuYwpAQCAtOCw3ICs4LDkgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC90aW1leC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogCit1bnNpZ25lZCBsb25nIGxwal9maW5lOwogdW5zaWduZWQgbG9uZyBwcmVzZXRfbHBqOwogc3RhdGljIGludCBfX2luaXQgbHBqX3NldHVwKGNoYXIgKnN0cikKIHsKQEAgLTMzLDkgKzM1LDkgQEAKIAl1bnNpZ25lZCBsb25nIHByZV9zdGFydCwgc3RhcnQsIHBvc3Rfc3RhcnQ7CiAJdW5zaWduZWQgbG9uZyBwcmVfZW5kLCBlbmQsIHBvc3RfZW5kOwogCXVuc2lnbmVkIGxvbmcgc3RhcnRfamlmZmllczsKLQl1bnNpZ25lZCBsb25nIHRzY19yYXRlX21pbiwgdHNjX3JhdGVfbWF4OwotCXVuc2lnbmVkIGxvbmcgZ29vZF90c2Nfc3VtID0gMDsKLQl1bnNpZ25lZCBsb25nIGdvb2RfdHNjX2NvdW50ID0gMDsKKwl1bnNpZ25lZCBsb25nIHRpbWVyX3JhdGVfbWluLCB0aW1lcl9yYXRlX21heDsKKwl1bnNpZ25lZCBsb25nIGdvb2RfdGltZXJfc3VtID0gMDsKKwl1bnNpZ25lZCBsb25nIGdvb2RfdGltZXJfY291bnQgPSAwOwogCWludCBpOwogCiAJaWYgKHJlYWRfY3VycmVudF90aW1lcigmcHJlX3N0YXJ0KSA8IDAgKQpAQCAtNzksMjIgKzgxLDI0IEBACiAJCX0KIAkJcmVhZF9jdXJyZW50X3RpbWVyKCZwb3N0X2VuZCk7CiAKLQkJdHNjX3JhdGVfbWF4ID0gKHBvc3RfZW5kIC0gcHJlX3N0YXJ0KSAvIERFTEFZX0NBTElCUkFUSU9OX1RJQ0tTOwotCQl0c2NfcmF0ZV9taW4gPSAocHJlX2VuZCAtIHBvc3Rfc3RhcnQpIC8gREVMQVlfQ0FMSUJSQVRJT05fVElDS1M7CisJCXRpbWVyX3JhdGVfbWF4ID0gKHBvc3RfZW5kIC0gcHJlX3N0YXJ0KSAvCisJCQkJCURFTEFZX0NBTElCUkFUSU9OX1RJQ0tTOworCQl0aW1lcl9yYXRlX21pbiA9IChwcmVfZW5kIC0gcG9zdF9zdGFydCkgLworCQkJCQlERUxBWV9DQUxJQlJBVElPTl9USUNLUzsKIAogCQkvKgotCSAJICogSWYgdGhlIHVwcGVyIGxpbWl0IGFuZCBsb3dlciBsaW1pdCBvZiB0aGUgdHNjX3JhdGUgaXMKKwkJICogSWYgdGhlIHVwcGVyIGxpbWl0IGFuZCBsb3dlciBsaW1pdCBvZiB0aGUgdGltZXJfcmF0ZSBpcwogCQkgKiA+PSAxMi41JSBhcGFydCwgcmVkbyBjYWxpYnJhdGlvbi4KIAkJICovCiAJCWlmIChwcmVfc3RhcnQgIT0gMCAmJiBwcmVfZW5kICE9IDAgJiYKLQkJICAgICh0c2NfcmF0ZV9tYXggLSB0c2NfcmF0ZV9taW4pIDwgKHRzY19yYXRlX21heCA+PiAzKSkgewotCQkJZ29vZF90c2NfY291bnQrKzsKLQkJCWdvb2RfdHNjX3N1bSArPSB0c2NfcmF0ZV9tYXg7CisJCSAgICAodGltZXJfcmF0ZV9tYXggLSB0aW1lcl9yYXRlX21pbikgPCAodGltZXJfcmF0ZV9tYXggPj4gMykpIHsKKwkJCWdvb2RfdGltZXJfY291bnQrKzsKKwkJCWdvb2RfdGltZXJfc3VtICs9IHRpbWVyX3JhdGVfbWF4OwogCQl9CiAJfQogCi0JaWYgKGdvb2RfdHNjX2NvdW50KQotCQlyZXR1cm4gKGdvb2RfdHNjX3N1bS9nb29kX3RzY19jb3VudCk7CisJaWYgKGdvb2RfdGltZXJfY291bnQpCisJCXJldHVybiAoZ29vZF90aW1lcl9zdW0vZ29vZF90aW1lcl9jb3VudCk7CiAKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjYWxpYnJhdGVfZGVsYXlfZGlyZWN0KCkgZmFpbGVkIHRvIGdldCBhIGdvb2QgIgogCSAgICAgICAiZXN0aW1hdGUgZm9yIGxvb3BzX3Blcl9qaWZmeS5cblByb2JhYmx5IGR1ZSB0byBsb25nIHBsYXRmb3JtIGludGVycnVwdHMuIENvbnNpZGVyIHVzaW5nIFwibHBqPVwiIGJvb3Qgb3B0aW9uLlxuIik7CkBAIC0xMDgsNiArMTEyLDEwIEBACiAgKiBUaGlzIGlzIHRoZSBudW1iZXIgb2YgYml0cyBvZiBwcmVjaXNpb24gZm9yIHRoZSBsb29wc19wZXJfamlmZnkuICBFYWNoCiAgKiBiaXQgdGFrZXMgb24gYXZlcmFnZSAxLjUvSFogc2Vjb25kcy4gIFRoaXMgKGxpa2UgdGhlIG9yaWdpbmFsKSBpcyBhIGxpdHRsZQogICogYmV0dGVyIHRoYW4gMSUKKyAqIEZvciB0aGUgYm9vdCBjcHUgd2UgY2FuIHNraXAgdGhlIGRlbGF5IGNhbGlicmF0aW9uIGFuZCBhc3NpZ24gaXQgYSB2YWx1ZQorICogY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdGltZXIgZnJlcXVlbmN5LgorICogRm9yIHRoZSByZXN0IG9mIHRoZSBDUFVzIHdlIGNhbm5vdCBhc3N1bWUgdGhhdCB0aGUgdGltZXIgZnJlcXVlbmN5IGlzIHNhbWUgYXMKKyAqIHRoZSBjcHUgZnJlcXVlbmN5LCBoZW5jZSBkbyB0aGUgY2FsaWJyYXRpb24gZm9yIHRob3NlLgogICovCiAjZGVmaW5lIExQU19QUkVDIDgKIApAQCAtMTE4LDIwICsxMjYsMjAgQEAKIAogCWlmIChwcmVzZXRfbHBqKSB7CiAJCWxvb3BzX3Blcl9qaWZmeSA9IHByZXNldF9scGo7Ci0JCXByaW50aygiQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCkuLi4gIgotCQkJIiVsdS4lMDJsdSBCb2dvTUlQUyBwcmVzZXRcbiIsCi0JCQlsb29wc19wZXJfamlmZnkvKDUwMDAwMC9IWiksCi0JCQkobG9vcHNfcGVyX2ppZmZ5Lyg1MDAwL0haKSkgJSAxMDApOworCQlwcmludGsoS0VSTl9JTkZPCisJCQkiQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCkgcHJlc2V0IHZhbHVlLi4gIik7CisJfSBlbHNlIGlmICgoc21wX3Byb2Nlc3Nvcl9pZCgpID09IDApICYmIGxwal9maW5lKSB7CisJCWxvb3BzX3Blcl9qaWZmeSA9IGxwal9maW5lOworCQlwcmludGsoS0VSTl9JTkZPCisJCQkiQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksICIKKwkJCSJ2YWx1ZSBjYWxjdWxhdGVkIHVzaW5nIHRpbWVyIGZyZXF1ZW5jeS4uICIpOwogCX0gZWxzZSBpZiAoKGxvb3BzX3Blcl9qaWZmeSA9IGNhbGlicmF0ZV9kZWxheV9kaXJlY3QoKSkgIT0gMCkgewotCQlwcmludGsoIkNhbGlicmF0aW5nIGRlbGF5IHVzaW5nIHRpbWVyIHNwZWNpZmljIHJvdXRpbmUuLiAiKTsKLQkJcHJpbnRrKCIlbHUuJTAybHUgQm9nb01JUFMgKGxwaj0lbHUpXG4iLAotCQkJbG9vcHNfcGVyX2ppZmZ5Lyg1MDAwMDAvSFopLAotCQkJKGxvb3BzX3Blcl9qaWZmeS8oNTAwMC9IWikpICUgMTAwLAotCQkJbG9vcHNfcGVyX2ppZmZ5KTsKKwkJcHJpbnRrKEtFUk5fSU5GTworCQkJIkNhbGlicmF0aW5nIGRlbGF5IHVzaW5nIHRpbWVyIHNwZWNpZmljIHJvdXRpbmUuLiAiKTsKIAl9IGVsc2UgewogCQlsb29wc19wZXJfamlmZnkgPSAoMTw8MTIpOwogCi0JCXByaW50ayhLRVJOX0RFQlVHICJDYWxpYnJhdGluZyBkZWxheSBsb29wLi4uICIpOworCQlwcmludGsoS0VSTl9JTkZPICJDYWxpYnJhdGluZyBkZWxheSBsb29wLi4uICIpOwogCQl3aGlsZSAoKGxvb3BzX3Blcl9qaWZmeSA8PD0gMSkgIT0gMCkgewogCQkJLyogd2FpdCBmb3IgInN0YXJ0IG9mIiBjbG9jayB0aWNrICovCiAJCQl0aWNrcyA9IGppZmZpZXM7CkBAIC0xNjEsMTIgKzE2OSw4IEBACiAJCQlpZiAoamlmZmllcyAhPSB0aWNrcykJLyogbG9uZ2VyIHRoYW4gMSB0aWNrICovCiAJCQkJbG9vcHNfcGVyX2ppZmZ5ICY9IH5sb29wYml0OwogCQl9Ci0KLQkJLyogUm91bmQgdGhlIHZhbHVlIGFuZCBwcmludCBpdCAqLwotCQlwcmludGsoIiVsdS4lMDJsdSBCb2dvTUlQUyAobHBqPSVsdSlcbiIsCi0JCQlsb29wc19wZXJfamlmZnkvKDUwMDAwMC9IWiksCi0JCQkobG9vcHNfcGVyX2ppZmZ5Lyg1MDAwL0haKSkgJSAxMDAsCi0JCQlsb29wc19wZXJfamlmZnkpOwogCX0KLQorCXByaW50ayhLRVJOX0lORk8gIiVsdS4lMDJsdSBCb2dvTUlQUyAobHBqPSVsdSlcbiIsCisJCQlsb29wc19wZXJfamlmZnkvKDUwMDAwMC9IWiksCisJCQkobG9vcHNfcGVyX2ppZmZ5Lyg1MDAwL0haKSkgJSAxMDAsIGxvb3BzX3Blcl9qaWZmeSk7CiB9CmRpZmYgLS1naXQgYS9rZXJuZWwvTWFrZWZpbGUgYi9rZXJuZWwvTWFrZWZpbGUKaW5kZXggOWZhNTc5Ny4uMGE3ZWQ4MyAxMDA2NDQKLS0tIGEva2VybmVsL01ha2VmaWxlCisrKyBiL2tlcm5lbC9NYWtlZmlsZQpAQCAtMyw3ICszLDcgQEAKICMKIAogb2JqLXkgICAgID0gc2NoZWQubyBmb3JrLm8gZXhlY19kb21haW4ubyBwYW5pYy5vIHByaW50ay5vIHByb2ZpbGUubyBcCi0JICAgIGV4aXQubyBpdGltZXIubyB0aW1lLm8gc29mdGlycS5vIHJlc291cmNlLm8gXAorCSAgICBjcHUubyBleGl0Lm8gaXRpbWVyLm8gdGltZS5vIHNvZnRpcnEubyByZXNvdXJjZS5vIFwKIAkgICAgc3lzY3RsLm8gY2FwYWJpbGl0eS5vIHB0cmFjZS5vIHRpbWVyLm8gdXNlci5vIFwKIAkgICAgc2lnbmFsLm8gc3lzLm8ga21vZC5vIHdvcmtxdWV1ZS5vIHBpZC5vIFwKIAkgICAgcmN1cGRhdGUubyBleHRhYmxlLm8gcGFyYW1zLm8gcG9zaXgtdGltZXJzLm8gXApAQCAtMTEsNiArMTEsMTggQEAKIAkgICAgaHJ0aW1lci5vIHJ3c2VtLm8gbnNwcm94eS5vIHNyY3UubyBzZW1hcGhvcmUubyBcCiAJICAgIG5vdGlmaWVyLm8ga3N5c2ZzLm8gcG1fcW9zX3BhcmFtcy5vIHNjaGVkX2Nsb2NrLm8KIAorQ0ZMQUdTX1JFTU9WRV9zY2hlZC5vID0gLW1uby1zcGUKKworaWZkZWYgQ09ORklHX0ZUUkFDRQorIyBEbyBub3QgdHJhY2UgZGVidWcgZmlsZXMgYW5kIGludGVybmFsIGZ0cmFjZSBmaWxlcworQ0ZMQUdTX1JFTU9WRV9sb2NrZGVwLm8gPSAtcGcKK0NGTEFHU19SRU1PVkVfbG9ja2RlcF9wcm9jLm8gPSAtcGcKK0NGTEFHU19SRU1PVkVfbXV0ZXgtZGVidWcubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9ydG11dGV4LWRlYnVnLm8gPSAtcGcKK0NGTEFHU19SRU1PVkVfY2dyb3VwLWRlYnVnLm8gPSAtcGcKK0NGTEFHU19SRU1PVkVfc2NoZWRfY2xvY2subyA9IC1wZworZW5kaWYKKwogb2JqLSQoQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLKSArPSBzeXNjdGxfY2hlY2subwogb2JqLSQoQ09ORklHX1NUQUNLVFJBQ0UpICs9IHN0YWNrdHJhY2Uubwogb2JqLXkgKz0gdGltZS8KQEAgLTI3LDggKzM5LDggQEAKIG9iai0kKENPTkZJR19ERUJVR19SVF9NVVRFWEVTKSArPSBydG11dGV4LWRlYnVnLm8KIG9iai0kKENPTkZJR19SVF9NVVRFWF9URVNURVIpICs9IHJ0bXV0ZXgtdGVzdGVyLm8KIG9iai0kKENPTkZJR19HRU5FUklDX0lTQV9ETUEpICs9IGRtYS5vCi1vYmotJChDT05GSUdfU01QKSArPSBjcHUubyBzcGlubG9jay5vCiBvYmotJChDT05GSUdfVVNFX0dFTkVSSUNfU01QX0hFTFBFUlMpICs9IHNtcC5vCitvYmotJChDT05GSUdfU01QKSArPSBzcGlubG9jay5vCiBvYmotJChDT05GSUdfREVCVUdfU1BJTkxPQ0spICs9IHNwaW5sb2NrLm8KIG9iai0kKENPTkZJR19QUk9WRV9MT0NLSU5HKSArPSBzcGlubG9jay5vCiBvYmotJChDT05GSUdfVUlEMTYpICs9IHVpZDE2Lm8KQEAgLTcwLDYgKzgyLDkgQEAKIG9iai0kKENPTkZJR19UQVNLU1RBVFMpICs9IHRhc2tzdGF0cy5vIHRzYWNjdC5vCiBvYmotJChDT05GSUdfTUFSS0VSUykgKz0gbWFya2VyLm8KIG9iai0kKENPTkZJR19MQVRFTkNZVE9QKSArPSBsYXRlbmN5dG9wLm8KK29iai0kKENPTkZJR19GVFJBQ0UpICs9IHRyYWNlLworb2JqLSQoQ09ORklHX1RSQUNJTkcpICs9IHRyYWNlLworb2JqLSQoQ09ORklHX1NNUCkgKz0gc2NoZWRfY3B1cHJpLm8KIAogaWZuZXEgKCQoQ09ORklHX1NDSEVEX05PX05PX09NSVRfRlJBTUVfUE9JTlRFUikseSkKICMgQWNjb3JkaW5nIHRvIEFsYW4gTW9kcmEgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4sIHRoZSAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciBpcwpkaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0LmMgYi9rZXJuZWwvYXVkaXQuYwppbmRleCBlODY5MmE1Li5lMDkyZjFjIDEwMDY0NAotLS0gYS9rZXJuZWwvYXVkaXQuYworKysgYi9rZXJuZWwvYXVkaXQuYwpAQCAtNzM4LDcgKzczOCw3IEBACiAJCWlmICghYXVkaXRfZW5hYmxlZCAmJiBtc2dfdHlwZSAhPSBBVURJVF9VU0VSX0FWQykKIAkJCXJldHVybiAwOwogCi0JCWVyciA9IGF1ZGl0X2ZpbHRlcl91c2VyKCZORVRMSU5LX0NCKHNrYiksIG1zZ190eXBlKTsKKwkJZXJyID0gYXVkaXRfZmlsdGVyX3VzZXIoJk5FVExJTktfQ0Ioc2tiKSk7CiAJCWlmIChlcnIgPT0gMSkgewogCQkJZXJyID0gMDsKIAkJCWlmIChtc2dfdHlwZSA9PSBBVURJVF9VU0VSX1RUWSkgewpAQCAtNzc5LDcgKzc3OSw3IEBACiAJCX0KIAkJLyogZmFsbHRocm91Z2ggKi8KIAljYXNlIEFVRElUX0xJU1Q6Ci0JCWVyciA9IGF1ZGl0X3JlY2VpdmVfZmlsdGVyKG5saC0+bmxtc2dfdHlwZSwgTkVUTElOS19DQihza2IpLnBpZCwKKwkJZXJyID0gYXVkaXRfcmVjZWl2ZV9maWx0ZXIobXNnX3R5cGUsIE5FVExJTktfQ0Ioc2tiKS5waWQsCiAJCQkJCSAgIHVpZCwgc2VxLCBkYXRhLCBubG1zZ19sZW4obmxoKSwKIAkJCQkJICAgbG9naW51aWQsIHNlc3Npb25pZCwgc2lkKTsKIAkJYnJlYWs7CkBAIC03OTgsNyArNzk4LDcgQEAKIAkJfQogCQkvKiBmYWxsdGhyb3VnaCAqLwogCWNhc2UgQVVESVRfTElTVF9SVUxFUzoKLQkJZXJyID0gYXVkaXRfcmVjZWl2ZV9maWx0ZXIobmxoLT5ubG1zZ190eXBlLCBORVRMSU5LX0NCKHNrYikucGlkLAorCQllcnIgPSBhdWRpdF9yZWNlaXZlX2ZpbHRlcihtc2dfdHlwZSwgTkVUTElOS19DQihza2IpLnBpZCwKIAkJCQkJICAgdWlkLCBzZXEsIGRhdGEsIG5sbXNnX2xlbihubGgpLAogCQkJCQkgICBsb2dpbnVpZCwgc2Vzc2lvbmlkLCBzaWQpOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2tlcm5lbC9hdWRpdGZpbHRlci5jIGIva2VybmVsL2F1ZGl0ZmlsdGVyLmMKaW5kZXggMGUwYmQyN2UuLjk4YzUwY2MgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9hdWRpdGZpbHRlci5jCisrKyBiL2tlcm5lbC9hdWRpdGZpbHRlci5jCkBAIC0xNTQ0LDYgKzE1NDQsNyBAQAogICogQGRhdGE6IHBheWxvYWQgZGF0YQogICogQGRhdGFzejogc2l6ZSBvZiBwYXlsb2FkIGRhdGEKICAqIEBsb2dpbnVpZDogbG9naW51aWQgb2Ygc2VuZGVyCisgKiBAc2Vzc2lvbmlkOiBzZXNzaW9uaWQgZm9yIG5ldGxpbmsgYXVkaXQgbWVzc2FnZQogICogQHNpZDogU0UgTGludXggU2VjdXJpdHkgSUQgb2Ygc2VuZGVyCiAgKi8KIGludCBhdWRpdF9yZWNlaXZlX2ZpbHRlcihpbnQgdHlwZSwgaW50IHBpZCwgaW50IHVpZCwgaW50IHNlcSwgdm9pZCAqZGF0YSwKQEAgLTE3MjAsNyArMTcyMSw3IEBACiAJcmV0dXJuIDE7CiB9CiAKLWludCBhdWRpdF9maWx0ZXJfdXNlcihzdHJ1Y3QgbmV0bGlua19za2JfcGFybXMgKmNiLCBpbnQgdHlwZSkKK2ludCBhdWRpdF9maWx0ZXJfdXNlcihzdHJ1Y3QgbmV0bGlua19za2JfcGFybXMgKmNiKQogewogCWVudW0gYXVkaXRfc3RhdGUgc3RhdGUgPSBBVURJVF9ESVNBQkxFRDsKIAlzdHJ1Y3QgYXVkaXRfZW50cnkgKmU7CmRpZmYgLS1naXQgYS9rZXJuZWwvYmFja3RyYWNldGVzdC5jIGIva2VybmVsL2JhY2t0cmFjZXRlc3QuYwppbmRleCBkMWE3NjA1Li5hNWUwMjZiIDEwMDY0NAotLS0gYS9rZXJuZWwvYmFja3RyYWNldGVzdC5jCisrKyBiL2tlcm5lbC9iYWNrdHJhY2V0ZXN0LmMKQEAgLTEwLDMwICsxMCw3MyBAQAogICogb2YgdGhlIExpY2Vuc2UuCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9zdGFja3RyYWNlLmg+CiAKLXN0YXRpYyBzdHJ1Y3QgdGltZXJfbGlzdCBiYWNrdHJhY2VfdGltZXI7CitzdGF0aWMgdm9pZCBiYWNrdHJhY2VfdGVzdF9ub3JtYWwodm9pZCkKK3sKKwlwcmludGsoIlRlc3RpbmcgYSBiYWNrdHJhY2UgZnJvbSBwcm9jZXNzIGNvbnRleHQuXG4iKTsKKwlwcmludGsoIlRoZSBmb2xsb3dpbmcgdHJhY2UgaXMgYSBrZXJuZWwgc2VsZiB0ZXN0IGFuZCBub3QgYSBidWchXG4iKTsKIAotc3RhdGljIHZvaWQgYmFja3RyYWNlX3Rlc3RfdGltZXIodW5zaWduZWQgbG9uZyBkYXRhKQorCWR1bXBfc3RhY2soKTsKK30KKworc3RhdGljIERFQ0xBUkVfQ09NUExFVElPTihiYWNrdHJhY2Vfd29yayk7CisKK3N0YXRpYyB2b2lkIGJhY2t0cmFjZV90ZXN0X2lycV9jYWxsYmFjayh1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJZHVtcF9zdGFjaygpOworCWNvbXBsZXRlKCZiYWNrdHJhY2Vfd29yayk7Cit9CisKK3N0YXRpYyBERUNMQVJFX1RBU0tMRVQoYmFja3RyYWNlX3Rhc2tsZXQsICZiYWNrdHJhY2VfdGVzdF9pcnFfY2FsbGJhY2ssIDApOworCitzdGF0aWMgdm9pZCBiYWNrdHJhY2VfdGVzdF9pcnEodm9pZCkKIHsKIAlwcmludGsoIlRlc3RpbmcgYSBiYWNrdHJhY2UgZnJvbSBpcnEgY29udGV4dC5cbiIpOwogCXByaW50aygiVGhlIGZvbGxvd2luZyB0cmFjZSBpcyBhIGtlcm5lbCBzZWxmIHRlc3QgYW5kIG5vdCBhIGJ1ZyFcbiIpOwotCWR1bXBfc3RhY2soKTsKKworCWluaXRfY29tcGxldGlvbigmYmFja3RyYWNlX3dvcmspOworCXRhc2tsZXRfc2NoZWR1bGUoJmJhY2t0cmFjZV90YXNrbGV0KTsKKwl3YWl0X2Zvcl9jb21wbGV0aW9uKCZiYWNrdHJhY2Vfd29yayk7CiB9CisKKyNpZmRlZiBDT05GSUdfU1RBQ0tUUkFDRQorc3RhdGljIHZvaWQgYmFja3RyYWNlX3Rlc3Rfc2F2ZWQodm9pZCkKK3sKKwlzdHJ1Y3Qgc3RhY2tfdHJhY2UgdHJhY2U7CisJdW5zaWduZWQgbG9uZyBlbnRyaWVzWzhdOworCisJcHJpbnRrKCJUZXN0aW5nIGEgc2F2ZWQgYmFja3RyYWNlLlxuIik7CisJcHJpbnRrKCJUaGUgZm9sbG93aW5nIHRyYWNlIGlzIGEga2VybmVsIHNlbGYgdGVzdCBhbmQgbm90IGEgYnVnIVxuIik7CisKKwl0cmFjZS5ucl9lbnRyaWVzID0gMDsKKwl0cmFjZS5tYXhfZW50cmllcyA9IEFSUkFZX1NJWkUoZW50cmllcyk7CisJdHJhY2UuZW50cmllcyA9IGVudHJpZXM7CisJdHJhY2Uuc2tpcCA9IDA7CisKKwlzYXZlX3N0YWNrX3RyYWNlKCZ0cmFjZSk7CisJcHJpbnRfc3RhY2tfdHJhY2UoJnRyYWNlLCAwKTsKK30KKyNlbHNlCitzdGF0aWMgdm9pZCBiYWNrdHJhY2VfdGVzdF9zYXZlZCh2b2lkKQoreworCXByaW50aygiU2F2ZWQgYmFja3RyYWNlIHRlc3Qgc2tpcHBlZC5cbiIpOworfQorI2VuZGlmCisKIHN0YXRpYyBpbnQgYmFja3RyYWNlX3JlZ3Jlc3Npb25fdGVzdCh2b2lkKQogewogCXByaW50aygiPT09PVsgYmFja3RyYWNlIHRlc3RpbmcgXT09PT09PT09PT09XG4iKTsKLQlwcmludGsoIlRlc3RpbmcgYSBiYWNrdHJhY2UgZnJvbSBwcm9jZXNzIGNvbnRleHQuXG4iKTsKLQlwcmludGsoIlRoZSBmb2xsb3dpbmcgdHJhY2UgaXMgYSBrZXJuZWwgc2VsZiB0ZXN0IGFuZCBub3QgYSBidWchXG4iKTsKLQlkdW1wX3N0YWNrKCk7CiAKLQlpbml0X3RpbWVyKCZiYWNrdHJhY2VfdGltZXIpOwotCWJhY2t0cmFjZV90aW1lci5mdW5jdGlvbiA9IGJhY2t0cmFjZV90ZXN0X3RpbWVyOwotCW1vZF90aW1lcigmYmFja3RyYWNlX3RpbWVyLCBqaWZmaWVzICsgMTApOworCWJhY2t0cmFjZV90ZXN0X25vcm1hbCgpOworCWJhY2t0cmFjZV90ZXN0X2lycSgpOworCWJhY2t0cmFjZV90ZXN0X3NhdmVkKCk7CiAKLQltc2xlZXAoMTApOwogCXByaW50aygiPT09PVsgZW5kIG9mIGJhY2t0cmFjZSB0ZXN0aW5nIF09PT09XG4iKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2tlcm5lbC9jYXBhYmlsaXR5LmMgYi9rZXJuZWwvY2FwYWJpbGl0eS5jCmluZGV4IGNmYmU0NDIuLjkwMWUwZmQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9jYXBhYmlsaXR5LmMKKysrIGIva2VybmVsL2NhcGFiaWxpdHkuYwpAQCAtMTIxLDYgKzEyMSwyNyBAQAogICogdW5pbnRlcmVzdGluZyBhbmQvb3Igbm90IHRvIGJlIGNoYW5nZWQuCiAgKi8KIAorLyoKKyAqIEF0b21pY2FsbHkgbW9kaWZ5IHRoZSBlZmZlY3RpdmUgY2FwYWJpbGl0aWVzIHJldHVybmluZyB0aGUgb3JpZ2luYWwKKyAqIHZhbHVlLiBObyBwZXJtaXNzaW9uIGNoZWNrIGlzIHBlcmZvcm1lZCBoZXJlIC0gaXQgaXMgYXNzdW1lZCB0aGF0IHRoZQorICogY2FsbGVyIGlzIHBlcm1pdHRlZCB0byBzZXQgdGhlIGRlc2lyZWQgZWZmZWN0aXZlIGNhcGFiaWxpdGllcy4KKyAqLwora2VybmVsX2NhcF90IGNhcF9zZXRfZWZmZWN0aXZlKGNvbnN0IGtlcm5lbF9jYXBfdCBwRV9uZXcpCit7CisJa2VybmVsX2NhcF90IHBFX29sZDsKKworCXNwaW5fbG9jaygmdGFza19jYXBhYmlsaXR5X2xvY2spOworCisJcEVfb2xkID0gY3VycmVudC0+Y2FwX2VmZmVjdGl2ZTsKKwljdXJyZW50LT5jYXBfZWZmZWN0aXZlID0gcEVfbmV3OworCisJc3Bpbl91bmxvY2soJnRhc2tfY2FwYWJpbGl0eV9sb2NrKTsKKworCXJldHVybiBwRV9vbGQ7Cit9CisKK0VYUE9SVF9TWU1CT0woY2FwX3NldF9lZmZlY3RpdmUpOworCiAvKioKICAqIHN5c19jYXBnZXQgLSBnZXQgdGhlIGNhcGFiaWxpdGllcyBvZiBhIGdpdmVuIHByb2Nlc3MuCiAgKiBAaGVhZGVyOiBwb2ludGVyIHRvIHN0cnVjdCB0aGF0IGNvbnRhaW5zIGNhcGFiaWxpdHkgdmVyc2lvbiBhbmQKZGlmZiAtLWdpdCBhL2tlcm5lbC9jcHUuYyBiL2tlcm5lbC9jcHUuYwppbmRleCBjNzdiYzNhLi5iMTFmMDZkIDEwMDY0NAotLS0gYS9rZXJuZWwvY3B1LmMKKysrIGIva2VybmVsL2NwdS5jCkBAIC0xNSw2ICsxNSwyOCBAQAogI2luY2x1ZGUgPGxpbnV4L3N0b3BfbWFjaGluZS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAKKy8qCisgKiBSZXByZXNlbnRzIGFsbCBjcHUncyBwcmVzZW50IGluIHRoZSBzeXN0ZW0KKyAqIEluIHN5c3RlbXMgY2FwYWJsZSBvZiBob3RwbHVnLCB0aGlzIG1hcCBjb3VsZCBkeW5hbWljYWxseSBncm93CisgKiBhcyBuZXcgY3B1J3MgYXJlIGRldGVjdGVkIGluIHRoZSBzeXN0ZW0gdmlhIGFueSBwbGF0Zm9ybSBzcGVjaWZpYworICogbWV0aG9kLCBzdWNoIGFzIEFDUEkgZm9yIGUuZy4KKyAqLworY3B1bWFza190IGNwdV9wcmVzZW50X21hcCBfX3JlYWRfbW9zdGx5OworRVhQT1JUX1NZTUJPTChjcHVfcHJlc2VudF9tYXApOworCisjaWZuZGVmIENPTkZJR19TTVAKKworLyoKKyAqIFJlcHJlc2VudHMgYWxsIGNwdSdzIHRoYXQgYXJlIGN1cnJlbnRseSBvbmxpbmUuCisgKi8KK2NwdW1hc2tfdCBjcHVfb25saW5lX21hcCBfX3JlYWRfbW9zdGx5ID0gQ1BVX01BU0tfQUxMOworRVhQT1JUX1NZTUJPTChjcHVfb25saW5lX21hcCk7CisKK2NwdW1hc2tfdCBjcHVfcG9zc2libGVfbWFwIF9fcmVhZF9tb3N0bHkgPSBDUFVfTUFTS19BTEw7CitFWFBPUlRfU1lNQk9MKGNwdV9wb3NzaWJsZV9tYXApOworCisjZWxzZSAvKiBDT05GSUdfU01QICovCisKIC8qIFNlcmlhbGl6ZXMgdGhlIHVwZGF0ZXMgdG8gY3B1X29ubGluZV9tYXAsIGNwdV9wcmVzZW50X21hcCAqLwogc3RhdGljIERFRklORV9NVVRFWChjcHVfYWRkX3JlbW92ZV9sb2NrKTsKIApAQCAtNDAzLDMgKzQyNSw1IEBACiAJY3B1X21hcHNfdXBkYXRlX2RvbmUoKTsKIH0KICNlbmRpZiAvKiBDT05GSUdfUE1fU0xFRVBfU01QICovCisKKyNlbmRpZiAvKiBDT05GSUdfU01QICovCmRpZmYgLS1naXQgYS9rZXJuZWwvY3B1c2V0LmMgYi9rZXJuZWwvY3B1c2V0LmMKaW5kZXggOWZjZWI5Ny4uNDU5ZDYwMSAxMDA2NDQKLS0tIGEva2VybmVsL2NwdXNldC5jCisrKyBiL2tlcm5lbC9jcHVzZXQuYwpAQCAtMTE5NCw2ICsxMTk0LDE1IEBACiAKIAlpZiAoY3B1c19lbXB0eShjcy0+Y3B1c19hbGxvd2VkKSB8fCBub2Rlc19lbXB0eShjcy0+bWVtc19hbGxvd2VkKSkKIAkJcmV0dXJuIC1FTk9TUEM7CisJaWYgKHRzay0+ZmxhZ3MgJiBQRl9USFJFQURfQk9VTkQpIHsKKwkJY3B1bWFza190IG1hc2s7CisKKwkJbXV0ZXhfbG9jaygmY2FsbGJhY2tfbXV0ZXgpOworCQltYXNrID0gY3MtPmNwdXNfYWxsb3dlZDsKKwkJbXV0ZXhfdW5sb2NrKCZjYWxsYmFja19tdXRleCk7CisJCWlmICghY3B1c19lcXVhbCh0c2stPmNwdXNfYWxsb3dlZCwgbWFzaykpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKIAlyZXR1cm4gc2VjdXJpdHlfdGFza19zZXRzY2hlZHVsZXIodHNrLCAwLCBOVUxMKTsKIH0KQEAgLTEyMDcsMTEgKzEyMTYsMTQgQEAKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKIAlzdHJ1Y3QgY3B1c2V0ICpjcyA9IGNncm91cF9jcyhjb250KTsKIAlzdHJ1Y3QgY3B1c2V0ICpvbGRjcyA9IGNncm91cF9jcyhvbGRjb250KTsKKwlpbnQgZXJyOwogCiAJbXV0ZXhfbG9jaygmY2FsbGJhY2tfbXV0ZXgpOwogCWd1YXJhbnRlZV9vbmxpbmVfY3B1cyhjcywgJmNwdXMpOwotCXNldF9jcHVzX2FsbG93ZWRfcHRyKHRzaywgJmNwdXMpOworCWVyciA9IHNldF9jcHVzX2FsbG93ZWRfcHRyKHRzaywgJmNwdXMpOwogCW11dGV4X3VubG9jaygmY2FsbGJhY2tfbXV0ZXgpOworCWlmIChlcnIpCisJCXJldHVybjsKIAogCWZyb20gPSBvbGRjcy0+bWVtc19hbGxvd2VkOwogCXRvID0gY3MtPm1lbXNfYWxsb3dlZDsKQEAgLTE4ODIsNyArMTg5NCw3IEBACiAgKiBpbiBvcmRlciB0byBtaW5pbWl6ZSB0ZXh0IHNpemUuCiAgKi8KIAotc3RhdGljIHZvaWQgY29tbW9uX2NwdV9tZW1faG90cGx1Z191bnBsdWcodm9pZCkKK3N0YXRpYyB2b2lkIGNvbW1vbl9jcHVfbWVtX2hvdHBsdWdfdW5wbHVnKGludCByZWJ1aWxkX3NkKQogewogCWNncm91cF9sb2NrKCk7CiAKQEAgLTE4OTQsNyArMTkwNiw4IEBACiAJICogU2NoZWR1bGVyIGRlc3Ryb3lzIGRvbWFpbnMgb24gaG90cGx1ZyBldmVudHMuCiAJICogUmVidWlsZCB0aGVtIGJhc2VkIG9uIHRoZSBjdXJyZW50IHNldHRpbmdzLgogCSAqLwotCXJlYnVpbGRfc2NoZWRfZG9tYWlucygpOworCWlmIChyZWJ1aWxkX3NkKQorCQlyZWJ1aWxkX3NjaGVkX2RvbWFpbnMoKTsKIAogCWNncm91cF91bmxvY2soKTsKIH0KQEAgLTE5MTIsMTEgKzE5MjUsMjIgQEAKIHN0YXRpYyBpbnQgY3B1c2V0X2hhbmRsZV9jcHVocChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnVudXNlZF9uYiwKIAkJCQl1bnNpZ25lZCBsb25nIHBoYXNlLCB2b2lkICp1bnVzZWRfY3B1KQogewotCWlmIChwaGFzZSA9PSBDUFVfRFlJTkcgfHwgcGhhc2UgPT0gQ1BVX0RZSU5HX0ZST1pFTikKKwlzd2l0Y2ggKHBoYXNlKSB7CisJY2FzZSBDUFVfVVBfQ0FOQ0VMRUQ6CisJY2FzZSBDUFVfVVBfQ0FOQ0VMRURfRlJPWkVOOgorCWNhc2UgQ1BVX0RPV05fRkFJTEVEOgorCWNhc2UgQ1BVX0RPV05fRkFJTEVEX0ZST1pFTjoKKwljYXNlIENQVV9PTkxJTkU6CisJY2FzZSBDUFVfT05MSU5FX0ZST1pFTjoKKwljYXNlIENQVV9ERUFEOgorCWNhc2UgQ1BVX0RFQURfRlJPWkVOOgorCQljb21tb25fY3B1X21lbV9ob3RwbHVnX3VucGx1ZygxKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKIAkJcmV0dXJuIE5PVElGWV9ET05FOworCX0KIAotCWNvbW1vbl9jcHVfbWVtX2hvdHBsdWdfdW5wbHVnKCk7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIE5PVElGWV9PSzsKIH0KIAogI2lmZGVmIENPTkZJR19NRU1PUllfSE9UUExVRwpAQCAtMTkyOSw3ICsxOTUzLDcgQEAKIAogdm9pZCBjcHVzZXRfdHJhY2tfb25saW5lX25vZGVzKHZvaWQpCiB7Ci0JY29tbW9uX2NwdV9tZW1faG90cGx1Z191bnBsdWcoKTsKKwljb21tb25fY3B1X21lbV9ob3RwbHVnX3VucGx1ZygwKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9rZXJuZWwvZXhpdC5jIGIva2VybmVsL2V4aXQuYwppbmRleCA4ZjYxODVlLi5jZWIyNTg3IDEwMDY0NAotLS0gYS9rZXJuZWwvZXhpdC5jCisrKyBiL2tlcm5lbC9leGl0LmMKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9wZXJzb25hbGl0eS5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgogI2luY2x1ZGUgPGxpbnV4L21udF9uYW1lc3BhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pb2NvbnRleHQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXkuaD4KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdS5oPgpkaWZmIC0tZ2l0IGEva2VybmVsL2ZvcmsuYyBiL2tlcm5lbC9mb3JrLmMKaW5kZXggMTk5MDhiMi4uNGJkMmY1MSAxMDA2NDQKLS0tIGEva2VybmVsL2ZvcmsuYworKysgYi9rZXJuZWwvZm9yay5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSA8bGludXgvc2VtLmg+CiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZkdGFibGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pb2NvbnRleHQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXkuaD4KICNpbmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+CiAjaW5jbHVkZSA8bGludXgvbW1hbi5oPgpAQCAtOTA5LDcgKzkxMCw3IEBACiAKIAlydF9tdXRleF9pbml0X3Rhc2socCk7CiAKLSNpZmRlZiBDT05GSUdfVFJBQ0VfSVJRRkxBR1MKKyNpZmRlZiBDT05GSUdfUFJPVkVfTE9DS0lORwogCURFQlVHX0xPQ0tTX1dBUk5fT04oIXAtPmhhcmRpcnFzX2VuYWJsZWQpOwogCURFQlVHX0xPQ0tTX1dBUk5fT04oIXAtPnNvZnRpcnFzX2VuYWJsZWQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9rZXJuZWwvaHJ0aW1lci5jIGIva2VybmVsL2hydGltZXIuYwppbmRleCA1MGU4NjE2Li5iOGU0ZGNlIDEwMDY0NAotLS0gYS9rZXJuZWwvaHJ0aW1lci5jCisrKyBiL2tlcm5lbC9ocnRpbWVyLmMKQEAgLTMwMCwxMSArMzAwLDEwIEBACiAgKi8KIHU2NCBrdGltZV9kaXZucyhjb25zdCBrdGltZV90IGt0LCBzNjQgZGl2KQogewotCXU2NCBkY2xjLCBpbmMsIGRuczsKKwl1NjQgZGNsYzsKIAlpbnQgc2Z0ID0gMDsKIAotCWRjbGMgPSBkbnMgPSBrdGltZV90b19ucyhrdCk7Ci0JaW5jID0gZGl2OworCWRjbGMgPSBrdGltZV90b19ucyhrdCk7CiAJLyogTWFrZSBzdXJlIHRoZSBkaXZpc29yIGlzIGxlc3MgdGhhbiAyXjMyOiAqLwogCXdoaWxlIChkaXYgPj4gMzIpIHsKIAkJc2Z0Kys7CkBAIC02MzIsOCArNjMxLDYgQEAKICAqLwogdm9pZCBocmVzX3RpbWVyc19yZXN1bWUodm9pZCkKIHsKLQlXQVJOX09OX09OQ0UobnVtX29ubGluZV9jcHVzKCkgPiAxKTsKLQogCS8qIFJldHJpZ2dlciB0aGUgQ1BVIGxvY2FsIGV2ZW50czogKi8KIAlyZXRyaWdnZXJfbmV4dF9ldmVudChOVUxMKTsKIH0KQEAgLTEwMDMsMTAgKzEwMDAsMTggQEAKIAkgKi8KIAlyYWlzZSA9IHRpbWVyLT5zdGF0ZSA9PSBIUlRJTUVSX1NUQVRFX1BFTkRJTkc7CiAKKwkvKgorCSAqIFdlIHVzZSBwcmVlbXB0X2Rpc2FibGUgdG8gcHJldmVudCB0aGlzIHRhc2sgZnJvbSBtaWdyYXRpbmcgYWZ0ZXIKKwkgKiBzZXR0aW5nIHVwIHRoZSBzb2Z0aXJxIGFuZCByYWlzaW5nIGl0LiBPdGhlcndpc2UsIGlmIG1lIG1pZ3JhdGUKKwkgKiB3ZSB3aWxsIHJhaXNlIHRoZSBzb2Z0aXJxIG9uIHRoZSB3cm9uZyBDUFUuCisJICovCisJcHJlZW1wdF9kaXNhYmxlKCk7CisKIAl1bmxvY2tfaHJ0aW1lcl9iYXNlKHRpbWVyLCAmZmxhZ3MpOwogCiAJaWYgKHJhaXNlKQogCQlocnRpbWVyX3JhaXNlX3NvZnRpcnEoKTsKKwlwcmVlbXB0X2VuYWJsZSgpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTEwNzgsNyArMTA4Myw3IEBACiB9CiBFWFBPUlRfU1lNQk9MX0dQTChocnRpbWVyX2dldF9yZW1haW5pbmcpOwogCi0jaWYgZGVmaW5lZChDT05GSUdfTk9fSURMRV9IWikgfHwgZGVmaW5lZChDT05GSUdfTk9fSFopCisjaWZkZWYgQ09ORklHX05PX0haCiAvKioKICAqIGhydGltZXJfZ2V0X25leHRfZXZlbnQgLSBnZXQgdGhlIHRpbWUgdW50aWwgbmV4dCBleHBpcnkgZXZlbnQKICAqCkBAIC0xNjY5LDcgKzE2NzQsNyBAQAogCQkJICAodm9pZCAqKShsb25nKXNtcF9wcm9jZXNzb3JfaWQoKSk7CiAJcmVnaXN0ZXJfY3B1X25vdGlmaWVyKCZocnRpbWVyc19uYik7CiAjaWZkZWYgQ09ORklHX0hJR0hfUkVTX1RJTUVSUwotCW9wZW5fc29mdGlycShIUlRJTUVSX1NPRlRJUlEsIHJ1bl9ocnRpbWVyX3NvZnRpcnEsIE5VTEwpOworCW9wZW5fc29mdGlycShIUlRJTUVSX1NPRlRJUlEsIHJ1bl9ocnRpbWVyX3NvZnRpcnEpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9pcnEvbWFuYWdlLmMgYi9rZXJuZWwvaXJxL21hbmFnZS5jCmluZGV4IDQ2ZDY2MTEuLjc3YTUxYmUgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9pcnEvbWFuYWdlLmMKKysrIGIva2VybmVsL2lycS9tYW5hZ2UuYwpAQCAtMTcsNiArMTcsOCBAQAogCiAjaWZkZWYgQ09ORklHX1NNUAogCitjcHVtYXNrX3QgaXJxX2RlZmF1bHRfYWZmaW5pdHkgPSBDUFVfTUFTS19BTEw7CisKIC8qKgogICoJc3luY2hyb25pemVfaXJxIC0gd2FpdCBmb3IgcGVuZGluZyBJUlEgaGFuZGxlcnMgKG9uIG90aGVyIENQVXMpCiAgKglAaXJxOiBpbnRlcnJ1cHQgbnVtYmVyIHRvIHdhaXQgZm9yCkBAIC05NSw2ICs5NywyNyBAQAogCXJldHVybiAwOwogfQogCisjaWZuZGVmIENPTkZJR19BVVRPX0lSUV9BRkZJTklUWQorLyoKKyAqIEdlbmVyaWMgdmVyc2lvbiBvZiB0aGUgYWZmaW5pdHkgYXV0b3NlbGVjdG9yLgorICovCitpbnQgaXJxX3NlbGVjdF9hZmZpbml0eSh1bnNpZ25lZCBpbnQgaXJxKQoreworCWNwdW1hc2tfdCBtYXNrOworCisJaWYgKCFpcnFfY2FuX3NldF9hZmZpbml0eShpcnEpKQorCQlyZXR1cm4gMDsKKworCWNwdXNfYW5kKG1hc2ssIGNwdV9vbmxpbmVfbWFwLCBpcnFfZGVmYXVsdF9hZmZpbml0eSk7CisKKwlpcnFfZGVzY1tpcnFdLmFmZmluaXR5ID0gbWFzazsKKwlpcnFfZGVzY1tpcnFdLmNoaXAtPnNldF9hZmZpbml0eShpcnEsIG1hc2spOworCisJc2V0X2JhbGFuY2VfaXJxX2FmZmluaXR5KGlycSwgbWFzayk7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKwogI2VuZGlmCiAKIC8qKgpAQCAtMzU0LDcgKzM3Nyw3IEBACiAKIAkJLyogU2V0dXAgdGhlIHR5cGUgKGxldmVsLCBlZGdlIHBvbGFyaXR5KSBpZiBjb25maWd1cmVkOiAqLwogCQlpZiAobmV3LT5mbGFncyAmIElSUUZfVFJJR0dFUl9NQVNLKSB7Ci0JCQlpZiAoZGVzYy0+Y2hpcCAmJiBkZXNjLT5jaGlwLT5zZXRfdHlwZSkKKwkJCWlmIChkZXNjLT5jaGlwLT5zZXRfdHlwZSkKIAkJCQlkZXNjLT5jaGlwLT5zZXRfdHlwZShpcnEsCiAJCQkJCQluZXctPmZsYWdzICYgSVJRRl9UUklHR0VSX01BU0spOwogCQkJZWxzZQpAQCAtMzY0LDggKzM4Nyw3IEBACiAJCQkJICovCiAJCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiTm8gSVJRRl9UUklHR0VSIHNldF90eXBlICIKIAkJCQkgICAgICAgImZ1bmN0aW9uIGZvciBJUlEgJWQgKCVzKVxuIiwgaXJxLAotCQkJCSAgICAgICBkZXNjLT5jaGlwID8gZGVzYy0+Y2hpcC0+bmFtZSA6Ci0JCQkJICAgICAgICJ1bmtub3duIik7CisJCQkJICAgICAgIGRlc2MtPmNoaXAtPm5hbWUpOwogCQl9IGVsc2UKIAkJCWNvbXBhdF9pcnFfY2hpcF9zZXRfZGVmYXVsdF9oYW5kbGVyKGRlc2MpOwogCkBAIC0zODIsNiArNDA0LDkgQEAKIAkJfSBlbHNlCiAJCQkvKiBVbmRvIG5lc3RlZCBkaXNhYmxlczogKi8KIAkJCWRlc2MtPmRlcHRoID0gMTsKKworCQkvKiBTZXQgZGVmYXVsdCBhZmZpbml0eSBtYXNrIG9uY2UgZXZlcnl0aGluZyBpcyBzZXR1cCAqLworCQlpcnFfc2VsZWN0X2FmZmluaXR5KGlycSk7CiAJfQogCS8qIFJlc2V0IGJyb2tlbiBpcnEgZGV0ZWN0aW9uIHdoZW4gaW5zdGFsbGluZyBuZXcgaGFuZGxlciAqLwogCWRlc2MtPmlycV9jb3VudCA9IDA7CkBAIC01NzEsOCArNTk2LDYgQEAKIAlhY3Rpb24tPm5leHQgPSBOVUxMOwogCWFjdGlvbi0+ZGV2X2lkID0gZGV2X2lkOwogCi0Jc2VsZWN0X3NtcF9hZmZpbml0eShpcnEpOwotCiAjaWZkZWYgQ09ORklHX0RFQlVHX1NISVJRCiAJaWYgKGlycWZsYWdzICYgSVJRRl9TSEFSRUQpIHsKIAkJLyoKZGlmZiAtLWdpdCBhL2tlcm5lbC9pcnEvcHJvYy5jIGIva2VybmVsL2lycS9wcm9jLmMKaW5kZXggYzJmMmNjYi4uNmM2ZDM1ZCAxMDA2NDQKLS0tIGEva2VybmVsL2lycS9wcm9jLmMKKysrIGIva2VybmVsL2lycS9wcm9jLmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIAkJCQkgICB1bnNpZ25lZCBsb25nIGNvdW50LCB2b2lkICpkYXRhKQogewogCXVuc2lnbmVkIGludCBpcnEgPSAoaW50KShsb25nKWRhdGEsIGZ1bGxfY291bnQgPSBjb3VudCwgZXJyOwotCWNwdW1hc2tfdCBuZXdfdmFsdWUsIHRtcDsKKwljcHVtYXNrX3QgbmV3X3ZhbHVlOwogCiAJaWYgKCFpcnFfZGVzY1tpcnFdLmNoaXAtPnNldF9hZmZpbml0eSB8fCBub19pcnFfYWZmaW5pdHkgfHwKIAkgICAgaXJxX2JhbGFuY2luZ19kaXNhYmxlZChpcnEpKQpAQCAtNjIsMTcgKzYyLDUxIEBACiAJICogd2F5IHRvIG1ha2UgdGhlIHN5c3RlbSB1bnVzYWJsZSBhY2NpZGVudGFsbHkgOi0pIEF0IGxlYXN0CiAJICogb25lIG9ubGluZSBDUFUgc3RpbGwgaGFzIHRvIGJlIHRhcmdldGVkLgogCSAqLwotCWNwdXNfYW5kKHRtcCwgbmV3X3ZhbHVlLCBjcHVfb25saW5lX21hcCk7Ci0JaWYgKGNwdXNfZW1wdHkodG1wKSkKKwlpZiAoIWNwdXNfaW50ZXJzZWN0cyhuZXdfdmFsdWUsIGNwdV9vbmxpbmVfbWFwKSkKIAkJLyogU3BlY2lhbCBjYXNlIGZvciBlbXB0eSBzZXQgLSBhbGxvdyB0aGUgYXJjaGl0ZWN0dXJlCiAJCSAgIGNvZGUgdG8gc2V0IGRlZmF1bHQgU01QIGFmZmluaXR5LiAqLwotCQlyZXR1cm4gc2VsZWN0X3NtcF9hZmZpbml0eShpcnEpID8gLUVJTlZBTCA6IGZ1bGxfY291bnQ7CisJCXJldHVybiBpcnFfc2VsZWN0X2FmZmluaXR5KGlycSkgPyAtRUlOVkFMIDogZnVsbF9jb3VudDsKIAogCWlycV9zZXRfYWZmaW5pdHkoaXJxLCBuZXdfdmFsdWUpOwogCiAJcmV0dXJuIGZ1bGxfY291bnQ7CiB9CiAKK3N0YXRpYyBpbnQgZGVmYXVsdF9hZmZpbml0eV9yZWFkKGNoYXIgKnBhZ2UsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2ZmLAorCQkJCSAgaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKK3sKKwlpbnQgbGVuID0gY3B1bWFza19zY25wcmludGYocGFnZSwgY291bnQsIGlycV9kZWZhdWx0X2FmZmluaXR5KTsKKwlpZiAoY291bnQgLSBsZW4gPCAyKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCAiXG4iKTsKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgaW50IGRlZmF1bHRfYWZmaW5pdHlfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCisJCQkJICAgdW5zaWduZWQgbG9uZyBjb3VudCwgdm9pZCAqZGF0YSkKK3sKKwl1bnNpZ25lZCBpbnQgZnVsbF9jb3VudCA9IGNvdW50LCBlcnI7CisJY3B1bWFza190IG5ld192YWx1ZTsKKworCWVyciA9IGNwdW1hc2tfcGFyc2VfdXNlcihidWZmZXIsIGNvdW50LCBuZXdfdmFsdWUpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlpZiAoIWlzX2FmZmluaXR5X21hc2tfdmFsaWQobmV3X3ZhbHVlKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKgorCSAqIERvIG5vdCBhbGxvdyBkaXNhYmxpbmcgSVJRcyBjb21wbGV0ZWx5IC0gaXQncyBhIHRvbyBlYXN5CisJICogd2F5IHRvIG1ha2UgdGhlIHN5c3RlbSB1bnVzYWJsZSBhY2NpZGVudGFsbHkgOi0pIEF0IGxlYXN0CisJICogb25lIG9ubGluZSBDUFUgc3RpbGwgaGFzIHRvIGJlIHRhcmdldGVkLgorCSAqLworCWlmICghY3B1c19pbnRlcnNlY3RzKG5ld192YWx1ZSwgY3B1X29ubGluZV9tYXApKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlycV9kZWZhdWx0X2FmZmluaXR5ID0gbmV3X3ZhbHVlOworCisJcmV0dXJuIGZ1bGxfY291bnQ7Cit9CiAjZW5kaWYKIAogc3RhdGljIGludCBpcnFfc3B1cmlvdXNfcmVhZChjaGFyICpwYWdlLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZiwKQEAgLTE3MSw2ICsyMDUsMjEgQEAKIAkJcmVtb3ZlX3Byb2NfZW50cnkoYWN0aW9uLT5kaXItPm5hbWUsIGlycV9kZXNjW2lycV0uZGlyKTsKIH0KIAordm9pZCByZWdpc3Rlcl9kZWZhdWx0X2FmZmluaXR5X3Byb2Modm9pZCkKK3sKKyNpZmRlZiBDT05GSUdfU01QCisJc3RydWN0IHByb2NfZGlyX2VudHJ5ICplbnRyeTsKKworCS8qIGNyZWF0ZSAvcHJvYy9pcnEvZGVmYXVsdF9zbXBfYWZmaW5pdHkgKi8KKwllbnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5KCJkZWZhdWx0X3NtcF9hZmZpbml0eSIsIDA2MDAsIHJvb3RfaXJxX2Rpcik7CisJaWYgKGVudHJ5KSB7CisJCWVudHJ5LT5kYXRhID0gTlVMTDsKKwkJZW50cnktPnJlYWRfcHJvYyAgPSBkZWZhdWx0X2FmZmluaXR5X3JlYWQ7CisJCWVudHJ5LT53cml0ZV9wcm9jID0gZGVmYXVsdF9hZmZpbml0eV93cml0ZTsKKwl9CisjZW5kaWYKK30KKwogdm9pZCBpbml0X2lycV9wcm9jKHZvaWQpCiB7CiAJaW50IGk7CkBAIC0xODAsNiArMjI5LDggQEAKIAlpZiAoIXJvb3RfaXJxX2RpcikKIAkJcmV0dXJuOwogCisJcmVnaXN0ZXJfZGVmYXVsdF9hZmZpbml0eV9wcm9jKCk7CisKIAkvKgogCSAqIENyZWF0ZSBlbnRyaWVzIGZvciBhbGwgZXhpc3RpbmcgSVJRcy4KIAkgKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC9rcHJvYmVzLmMgYi9rZXJuZWwva3Byb2Jlcy5jCmluZGV4IGQ0OTk4ZjguLjE0ODVjYTggMTAwNjQ0Ci0tLSBhL2tlcm5lbC9rcHJvYmVzLmMKKysrIGIva2VybmVsL2twcm9iZXMuYwpAQCAtNzksNyArNzksNyBAQAogICoKICAqIEZvciBzdWNoIGNhc2VzLCB3ZSBub3cgaGF2ZSBhIGJsYWNrbGlzdAogICovCi1zdHJ1Y3Qga3Byb2JlX2JsYWNrcG9pbnQga3Byb2JlX2JsYWNrbGlzdFtdID0geworc3RhdGljIHN0cnVjdCBrcHJvYmVfYmxhY2twb2ludCBrcHJvYmVfYmxhY2tsaXN0W10gPSB7CiAJeyJwcmVlbXB0X3NjaGVkdWxlIix9LAogCXtOVUxMfSAgICAvKiBUZXJtaW5hdG9yICovCiB9OwpkaWZmIC0tZ2l0IGEva2VybmVsL2t0aHJlYWQuYyBiL2tlcm5lbC9rdGhyZWFkLmMKaW5kZXggYmQxYjllYS4uOTc3NDdjZCAxMDA2NDQKLS0tIGEva2VybmVsL2t0aHJlYWQuYworKysgYi9rZXJuZWwva3RocmVhZC5jCkBAIC0xODAsNiArMTgwLDcgQEAKIAlzZXRfdGFza19jcHUoaywgY3B1KTsKIAlrLT5jcHVzX2FsbG93ZWQgPSBjcHVtYXNrX29mX2NwdShjcHUpOwogCWstPnJ0Lm5yX2NwdXNfYWxsb3dlZCA9IDE7CisJay0+ZmxhZ3MgfD0gUEZfVEhSRUFEX0JPVU5EOwogfQogRVhQT1JUX1NZTUJPTChrdGhyZWFkX2JpbmQpOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvbG9ja2RlcC5jIGIva2VybmVsL2xvY2tkZXAuYwppbmRleCA4MWE0ZTRhLi5kMzhhNjQzIDEwMDY0NAotLS0gYS9rZXJuZWwvbG9ja2RlcC5jCisrKyBiL2tlcm5lbC9sb2NrZGVwLmMKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pcnFmbGFncy5oPgogI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KICNpbmNsdWRlIDxsaW51eC9oYXNoLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CiAKICNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KIApAQCAtODEsNiArODIsOCBAQAogCQlfX3Jhd19zcGluX3VubG9jaygmbG9ja2RlcF9sb2NrKTsKIAkJcmV0dXJuIDA7CiAJfQorCS8qIHByZXZlbnQgYW55IHJlY3Vyc2lvbnMgd2l0aGluIGxvY2tkZXAgZnJvbSBjYXVzaW5nIGRlYWRsb2NrcyAqLworCWN1cnJlbnQtPmxvY2tkZXBfcmVjdXJzaW9uKys7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTg5LDYgKzkyLDcgQEAKIAlpZiAoZGVidWdfbG9ja3MgJiYgIV9fcmF3X3NwaW5faXNfbG9ja2VkKCZsb2NrZGVwX2xvY2spKQogCQlyZXR1cm4gREVCVUdfTE9DS1NfV0FSTl9PTigxKTsKIAorCWN1cnJlbnQtPmxvY2tkZXBfcmVjdXJzaW9uLS07CiAJX19yYXdfc3Bpbl91bmxvY2soJmxvY2tkZXBfbG9jayk7CiAJcmV0dXJuIDA7CiB9CkBAIC05ODIsNyArOTg2LDcgQEAKIAlyZXR1cm4gMTsKIH0KIAotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUworI2lmIGRlZmluZWQoQ09ORklHX1RSQUNFX0lSUUZMQUdTKSAmJiBkZWZpbmVkKENPTkZJR19QUk9WRV9MT0NLSU5HKQogLyoKICAqIEZvcndhcmRzIGFuZCBiYWNrd2FyZHMgc3ViZ3JhcGggc2VhcmNoaW5nLCBmb3IgdGhlIHB1cnBvc2VzIG9mCiAgKiBwcm92aW5nIHRoYXQgdHdvIHN1YmdyYXBocyBjYW4gYmUgY29ubmVjdGVkIGJ5IGEgbmV3IGRlcGVuZGVuY3kKQEAgLTE0NTgsNyArMTQ2MiwxNCBAQAogfQogCiB1bnNpZ25lZCBsb25nIG5yX2xvY2tfY2hhaW5zOwotc3RhdGljIHN0cnVjdCBsb2NrX2NoYWluIGxvY2tfY2hhaW5zW01BWF9MT0NLREVQX0NIQUlOU107CitzdHJ1Y3QgbG9ja19jaGFpbiBsb2NrX2NoYWluc1tNQVhfTE9DS0RFUF9DSEFJTlNdOworaW50IG5yX2NoYWluX2hsb2NrczsKK3N0YXRpYyB1MTYgY2hhaW5faGxvY2tzW01BWF9MT0NLREVQX0NIQUlOX0hMT0NLU107CisKK3N0cnVjdCBsb2NrX2NsYXNzICpsb2NrX2NoYWluX2dldF9jbGFzcyhzdHJ1Y3QgbG9ja19jaGFpbiAqY2hhaW4sIGludCBpKQoreworCXJldHVybiBsb2NrX2NsYXNzZXMgKyBjaGFpbl9obG9ja3NbY2hhaW4tPmJhc2UgKyBpXTsKK30KIAogLyoKICAqIExvb2sgdXAgYSBkZXBlbmRlbmN5IGNoYWluLiBJZiB0aGUga2V5IGlzIG5vdCBwcmVzZW50IHlldCB0aGVuCkBAIC0xNDY2LDEwICsxNDc3LDE1IEBACiAgKiB2YWxpZGF0ZWQuIElmIHRoZSBrZXkgaXMgYWxyZWFkeSBoYXNoZWQsIHJldHVybiAwLgogICogKE9uIHJldHVybiB3aXRoIDEgZ3JhcGhfbG9jayBpcyBoZWxkLikKICAqLwotc3RhdGljIGlubGluZSBpbnQgbG9va3VwX2NoYWluX2NhY2hlKHU2NCBjaGFpbl9rZXksIHN0cnVjdCBsb2NrX2NsYXNzICpjbGFzcykKK3N0YXRpYyBpbmxpbmUgaW50IGxvb2t1cF9jaGFpbl9jYWNoZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIsCisJCQkJICAgICBzdHJ1Y3QgaGVsZF9sb2NrICpobG9jaywKKwkJCQkgICAgIHU2NCBjaGFpbl9rZXkpCiB7CisJc3RydWN0IGxvY2tfY2xhc3MgKmNsYXNzID0gaGxvY2stPmNsYXNzOwogCXN0cnVjdCBsaXN0X2hlYWQgKmhhc2hfaGVhZCA9IGNoYWluaGFzaGVudHJ5KGNoYWluX2tleSk7CiAJc3RydWN0IGxvY2tfY2hhaW4gKmNoYWluOworCXN0cnVjdCBoZWxkX2xvY2sgKmhsb2NrX2N1cnIsICpobG9ja19uZXh0OworCWludCBpLCBqLCBuLCBjbjsKIAogCWlmIChERUJVR19MT0NLU19XQVJOX09OKCFpcnFzX2Rpc2FibGVkKCkpKQogCQlyZXR1cm4gMDsKQEAgLTE1MTcsNiArMTUzMywzMiBAQAogCX0KIAljaGFpbiA9IGxvY2tfY2hhaW5zICsgbnJfbG9ja19jaGFpbnMrKzsKIAljaGFpbi0+Y2hhaW5fa2V5ID0gY2hhaW5fa2V5OworCWNoYWluLT5pcnFfY29udGV4dCA9IGhsb2NrLT5pcnFfY29udGV4dDsKKwkvKiBGaW5kIHRoZSBmaXJzdCBoZWxkX2xvY2sgb2YgY3VycmVudCBjaGFpbiAqLworCWhsb2NrX25leHQgPSBobG9jazsKKwlmb3IgKGkgPSBjdXJyLT5sb2NrZGVwX2RlcHRoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKwkJaGxvY2tfY3VyciA9IGN1cnItPmhlbGRfbG9ja3MgKyBpOworCQlpZiAoaGxvY2tfY3Vyci0+aXJxX2NvbnRleHQgIT0gaGxvY2tfbmV4dC0+aXJxX2NvbnRleHQpCisJCQlicmVhazsKKwkJaGxvY2tfbmV4dCA9IGhsb2NrOworCX0KKwlpKys7CisJY2hhaW4tPmRlcHRoID0gY3Vyci0+bG9ja2RlcF9kZXB0aCArIDEgLSBpOworCWNuID0gbnJfY2hhaW5faGxvY2tzOworCXdoaWxlIChjbiArIGNoYWluLT5kZXB0aCA8PSBNQVhfTE9DS0RFUF9DSEFJTl9ITE9DS1MpIHsKKwkJbiA9IGNtcHhjaGcoJm5yX2NoYWluX2hsb2NrcywgY24sIGNuICsgY2hhaW4tPmRlcHRoKTsKKwkJaWYgKG4gPT0gY24pCisJCQlicmVhazsKKwkJY24gPSBuOworCX0KKwlpZiAobGlrZWx5KGNuICsgY2hhaW4tPmRlcHRoIDw9IE1BWF9MT0NLREVQX0NIQUlOX0hMT0NLUykpIHsKKwkJY2hhaW4tPmJhc2UgPSBjbjsKKwkJZm9yIChqID0gMDsgaiA8IGNoYWluLT5kZXB0aCAtIDE7IGorKywgaSsrKSB7CisJCQlpbnQgbG9ja19pZCA9IGN1cnItPmhlbGRfbG9ja3NbaV0uY2xhc3MgLSBsb2NrX2NsYXNzZXM7CisJCQljaGFpbl9obG9ja3NbY2hhaW4tPmJhc2UgKyBqXSA9IGxvY2tfaWQ7CisJCX0KKwkJY2hhaW5faGxvY2tzW2NoYWluLT5iYXNlICsgal0gPSBjbGFzcyAtIGxvY2tfY2xhc3NlczsKKwl9CiAJbGlzdF9hZGRfdGFpbF9yY3UoJmNoYWluLT5lbnRyeSwgaGFzaF9oZWFkKTsKIAlkZWJ1Z19hdG9taWNfaW5jKCZjaGFpbl9sb29rdXBfbWlzc2VzKTsKIAlpbmNfY2hhaW5zKCk7CkBAIC0xNTM4LDcgKzE1ODAsNyBAQAogCSAqIGdyYXBoX2xvY2sgZm9yIHVzKQogCSAqLwogCWlmICghaGxvY2stPnRyeWxvY2sgJiYgKGhsb2NrLT5jaGVjayA9PSAyKSAmJgotCQkJbG9va3VwX2NoYWluX2NhY2hlKGNoYWluX2tleSwgaGxvY2stPmNsYXNzKSkgeworCSAgICBsb29rdXBfY2hhaW5fY2FjaGUoY3VyciwgaGxvY2ssIGNoYWluX2tleSkpIHsKIAkJLyoKIAkJICogQ2hlY2sgd2hldGhlciBsYXN0IGhlbGQgbG9jazoKIAkJICoKQEAgLTE2ODAsNyArMTcyMiw3IEBACiBzdGF0aWMgaW50IG1hcmtfbG9jayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIsIHN0cnVjdCBoZWxkX2xvY2sgKnRoaXMsCiAJCSAgICAgZW51bSBsb2NrX3VzYWdlX2JpdCBuZXdfYml0KTsKIAotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUworI2lmIGRlZmluZWQoQ09ORklHX1RSQUNFX0lSUUZMQUdTKSAmJiBkZWZpbmVkKENPTkZJR19QUk9WRV9MT0NLSU5HKQogCiAvKgogICogcHJpbnQgaXJxIGludmVyc2lvbiBidWc6CkBAIC0yMDEzLDExICsyMDU1LDEzIEBACiAvKgogICogSGFyZGlycXMgd2lsbCBiZSBlbmFibGVkOgogICovCi12b2lkIHRyYWNlX2hhcmRpcnFzX29uKHZvaWQpCit2b2lkIHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcih1bnNpZ25lZCBsb25nIGEwKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqY3VyciA9IGN1cnJlbnQ7CiAJdW5zaWduZWQgbG9uZyBpcDsKIAorCXRpbWVfaGFyZGlycXNfb24oQ0FMTEVSX0FERFIwLCBhMCk7CisKIAlpZiAodW5saWtlbHkoIWRlYnVnX2xvY2tzIHx8IGN1cnJlbnQtPmxvY2tkZXBfcmVjdXJzaW9uKSkKIAkJcmV0dXJuOwogCkBAIC0yMDU1LDE2ICsyMDk5LDIzIEBACiAJY3Vyci0+aGFyZGlycV9lbmFibGVfZXZlbnQgPSArK2N1cnItPmlycV9ldmVudHM7CiAJZGVidWdfYXRvbWljX2luYygmaGFyZGlycXNfb25fZXZlbnRzKTsKIH0KK0VYUE9SVF9TWU1CT0wodHJhY2VfaGFyZGlycXNfb25fY2FsbGVyKTsKIAordm9pZCB0cmFjZV9oYXJkaXJxc19vbih2b2lkKQoreworCXRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcihDQUxMRVJfQUREUjApOworfQogRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vbik7CiAKIC8qCiAgKiBIYXJkaXJxcyB3ZXJlIGRpc2FibGVkOgogICovCi12b2lkIHRyYWNlX2hhcmRpcnFzX29mZih2b2lkKQordm9pZCB0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyKHVuc2lnbmVkIGxvbmcgYTApCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyID0gY3VycmVudDsKIAorCXRpbWVfaGFyZGlycXNfb2ZmKENBTExFUl9BRERSMCwgYTApOworCiAJaWYgKHVubGlrZWx5KCFkZWJ1Z19sb2NrcyB8fCBjdXJyZW50LT5sb2NrZGVwX3JlY3Vyc2lvbikpCiAJCXJldHVybjsKIApAQCAtMjA4Miw3ICsyMTMzLDEyIEBACiAJfSBlbHNlCiAJCWRlYnVnX2F0b21pY19pbmMoJnJlZHVuZGFudF9oYXJkaXJxc19vZmYpOwogfQorRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyKTsKIAordm9pZCB0cmFjZV9oYXJkaXJxc19vZmYodm9pZCkKK3sKKwl0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyKENBTExFUl9BRERSMCk7Cit9CiBFWFBPUlRfU1lNQk9MKHRyYWNlX2hhcmRpcnFzX29mZik7CiAKIC8qCkBAIC0yMjQ2LDcgKzIzMDIsNyBAQAogICogTWFyayBhIGxvY2sgd2l0aCBhIHVzYWdlIGJpdCwgYW5kIHZhbGlkYXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uOgogICovCiBzdGF0aWMgaW50IG1hcmtfbG9jayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIsIHN0cnVjdCBoZWxkX2xvY2sgKnRoaXMsCi0JCSAgICAgZW51bSBsb2NrX3VzYWdlX2JpdCBuZXdfYml0KQorCQkJICAgICBlbnVtIGxvY2tfdXNhZ2VfYml0IG5ld19iaXQpCiB7CiAJdW5zaWduZWQgaW50IG5ld19tYXNrID0gMSA8PCBuZXdfYml0LCByZXQgPSAxOwogCkBAIC0yNjUwLDcgKzI3MDYsOCBAQAogICovCiBzdGF0aWMgdm9pZCBjaGVja19mbGFncyh1bnNpZ25lZCBsb25nIGZsYWdzKQogewotI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0xPQ0tERVApICYmIGRlZmluZWQoQ09ORklHX1RSQUNFX0lSUUZMQUdTKQorI2lmIGRlZmluZWQoQ09ORklHX1BST1ZFX0xPQ0tJTkcpICYmIGRlZmluZWQoQ09ORklHX0RFQlVHX0xPQ0tERVApICYmIFwKKyAgICBkZWZpbmVkKENPTkZJR19UUkFDRV9JUlFGTEFHUykKIAlpZiAoIWRlYnVnX2xvY2tzKQogCQlyZXR1cm47CiAKQEAgLTI2ODYsNyArMjc0Myw3IEBACiAgKiBhbmQgYWxzbyBhdm9pZCBsb2NrZGVwIHJlY3Vyc2lvbjoKICAqLwogdm9pZCBsb2NrX2FjcXVpcmUoc3RydWN0IGxvY2tkZXBfbWFwICpsb2NrLCB1bnNpZ25lZCBpbnQgc3ViY2xhc3MsCi0JCSAgaW50IHRyeWxvY2ssIGludCByZWFkLCBpbnQgY2hlY2ssIHVuc2lnbmVkIGxvbmcgaXApCisJCQkgIGludCB0cnlsb2NrLCBpbnQgcmVhZCwgaW50IGNoZWNrLCB1bnNpZ25lZCBsb25nIGlwKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTI3MDgsNyArMjc2NSw4IEBACiAKIEVYUE9SVF9TWU1CT0xfR1BMKGxvY2tfYWNxdWlyZSk7CiAKLXZvaWQgbG9ja19yZWxlYXNlKHN0cnVjdCBsb2NrZGVwX21hcCAqbG9jaywgaW50IG5lc3RlZCwgdW5zaWduZWQgbG9uZyBpcCkKK3ZvaWQgbG9ja19yZWxlYXNlKHN0cnVjdCBsb2NrZGVwX21hcCAqbG9jaywgaW50IG5lc3RlZCwKKwkJCSAgdW5zaWduZWQgbG9uZyBpcCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvbG9ja2RlcF9pbnRlcm5hbHMuaCBiL2tlcm5lbC9sb2NrZGVwX2ludGVybmFscy5oCmluZGV4IDhjZTA5YmMuLmMzNjAwYTAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9sb2NrZGVwX2ludGVybmFscy5oCisrKyBiL2tlcm5lbC9sb2NrZGVwX2ludGVybmFscy5oCkBAIC0yMyw2ICsyMyw4IEBACiAjZGVmaW5lIE1BWF9MT0NLREVQX0NIQUlOU19CSVRTCTE0CiAjZGVmaW5lIE1BWF9MT0NLREVQX0NIQUlOUwkoMVVMIDw8IE1BWF9MT0NLREVQX0NIQUlOU19CSVRTKQogCisjZGVmaW5lIE1BWF9MT0NLREVQX0NIQUlOX0hMT0NLUyAoTUFYX0xPQ0tERVBfQ0hBSU5TKjUpCisKIC8qCiAgKiBTdGFjay10cmFjZTogdGlnaHRseSBwYWNrZWQgYXJyYXkgb2Ygc3RhY2sgYmFja3RyYWNlCiAgKiBhZGRyZXNzZXMuIFByb3RlY3RlZCBieSB0aGUgaGFzaF9sb2NrLgpAQCAtMzAsMTUgKzMyLDE5IEBACiAjZGVmaW5lIE1BWF9TVEFDS19UUkFDRV9FTlRSSUVTCTI2MjE0NFVMCiAKIGV4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGFsbF9sb2NrX2NsYXNzZXM7CitleHRlcm4gc3RydWN0IGxvY2tfY2hhaW4gbG9ja19jaGFpbnNbXTsKIAogZXh0ZXJuIHZvaWQKIGdldF91c2FnZV9jaGFycyhzdHJ1Y3QgbG9ja19jbGFzcyAqY2xhc3MsIGNoYXIgKmMxLCBjaGFyICpjMiwgY2hhciAqYzMsIGNoYXIgKmM0KTsKIAogZXh0ZXJuIGNvbnN0IGNoYXIgKiBfX2dldF9rZXlfbmFtZShzdHJ1Y3QgbG9ja2RlcF9zdWJjbGFzc19rZXkgKmtleSwgY2hhciAqc3RyKTsKIAorc3RydWN0IGxvY2tfY2xhc3MgKmxvY2tfY2hhaW5fZ2V0X2NsYXNzKHN0cnVjdCBsb2NrX2NoYWluICpjaGFpbiwgaW50IGkpOworCiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl9sb2NrX2NsYXNzZXM7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl9saXN0X2VudHJpZXM7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl9sb2NrX2NoYWluczsKK2V4dGVybiBpbnQgbnJfY2hhaW5faGxvY2tzOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnJfc3RhY2tfdHJhY2VfZW50cmllczsKIAogZXh0ZXJuIHVuc2lnbmVkIGludCBucl9oYXJkaXJxX2NoYWluczsKZGlmZiAtLWdpdCBhL2tlcm5lbC9sb2NrZGVwX3Byb2MuYyBiL2tlcm5lbC9sb2NrZGVwX3Byb2MuYwppbmRleCBkYzVkMjk2Li45YjBlOTQwIDEwMDY0NAotLS0gYS9rZXJuZWwvbG9ja2RlcF9wcm9jLmMKKysrIGIva2VybmVsL2xvY2tkZXBfcHJvYy5jCkBAIC0xMzksNyArMTM5LDcgQEAKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksICZjbGFzcy0+bG9ja3NfYWZ0ZXIsIGVudHJ5KSB7CiAJCWlmIChlbnRyeS0+ZGlzdGFuY2UgPT0gMSkgewotCQkJc2VxX3ByaW50ZihtLCAiIC0+IFslcF0gIiwgZW50cnktPmNsYXNzKTsKKwkJCXNlcV9wcmludGYobSwgIiAtPiBbJXBdICIsIGVudHJ5LT5jbGFzcy0+a2V5KTsKIAkJCXByaW50X25hbWUobSwgZW50cnktPmNsYXNzKTsKIAkJCXNlcV9wdXRzKG0sICJcbiIpOwogCQl9CkBAIC0xNzgsNiArMTc4LDk1IEBACiAJLnJlbGVhc2UJPSBzZXFfcmVsZWFzZSwKIH07CiAKKyNpZmRlZiBDT05GSUdfUFJPVkVfTE9DS0lORworc3RhdGljIHZvaWQgKmxjX25leHQoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2LCBsb2ZmX3QgKnBvcykKK3sKKwlzdHJ1Y3QgbG9ja19jaGFpbiAqY2hhaW47CisKKwkoKnBvcykrKzsKKworCWlmICh2ID09IFNFUV9TVEFSVF9UT0tFTikKKwkJY2hhaW4gPSBtLT5wcml2YXRlOworCWVsc2UgeworCQljaGFpbiA9IHY7CisKKwkJaWYgKCpwb3MgPCBucl9sb2NrX2NoYWlucykKKwkJCWNoYWluID0gbG9ja19jaGFpbnMgKyAqcG9zOworCQllbHNlCisJCQljaGFpbiA9IE5VTEw7CisJfQorCisJcmV0dXJuIGNoYWluOworfQorCitzdGF0aWMgdm9pZCAqbGNfc3RhcnQoc3RydWN0IHNlcV9maWxlICptLCBsb2ZmX3QgKnBvcykKK3sKKwlpZiAoKnBvcyA9PSAwKQorCQlyZXR1cm4gU0VRX1NUQVJUX1RPS0VOOworCisJaWYgKCpwb3MgPCBucl9sb2NrX2NoYWlucykKKwkJcmV0dXJuIGxvY2tfY2hhaW5zICsgKnBvczsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBsY19zdG9wKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKK30KKworc3RhdGljIGludCBsY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKKwlzdHJ1Y3QgbG9ja19jaGFpbiAqY2hhaW4gPSB2OworCXN0cnVjdCBsb2NrX2NsYXNzICpjbGFzczsKKwlpbnQgaTsKKworCWlmICh2ID09IFNFUV9TVEFSVF9UT0tFTikgeworCQlzZXFfcHJpbnRmKG0sICJhbGwgbG9jayBjaGFpbnM6XG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJc2VxX3ByaW50ZihtLCAiaXJxX2NvbnRleHQ6ICVkXG4iLCBjaGFpbi0+aXJxX2NvbnRleHQpOworCisJZm9yIChpID0gMDsgaSA8IGNoYWluLT5kZXB0aDsgaSsrKSB7CisJCWNsYXNzID0gbG9ja19jaGFpbl9nZXRfY2xhc3MoY2hhaW4sIGkpOworCQlzZXFfcHJpbnRmKG0sICJbJXBdICIsIGNsYXNzLT5rZXkpOworCQlwcmludF9uYW1lKG0sIGNsYXNzKTsKKwkJc2VxX3B1dHMobSwgIlxuIik7CisJfQorCXNlcV9wdXRzKG0sICJcbiIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgbG9ja2RlcF9jaGFpbnNfb3BzID0geworCS5zdGFydAk9IGxjX3N0YXJ0LAorCS5uZXh0CT0gbGNfbmV4dCwKKwkuc3RvcAk9IGxjX3N0b3AsCisJLnNob3cJPSBsY19zaG93LAorfTsKKworc3RhdGljIGludCBsb2NrZGVwX2NoYWluc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCWludCByZXMgPSBzZXFfb3BlbihmaWxlLCAmbG9ja2RlcF9jaGFpbnNfb3BzKTsKKwlpZiAoIXJlcykgeworCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7CisKKwkJaWYgKG5yX2xvY2tfY2hhaW5zKQorCQkJbS0+cHJpdmF0ZSA9IGxvY2tfY2hhaW5zOworCQllbHNlCisJCQltLT5wcml2YXRlID0gTlVMTDsKKwl9CisJcmV0dXJuIHJlczsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJvY19sb2NrZGVwX2NoYWluc19vcGVyYXRpb25zID0geworCS5vcGVuCQk9IGxvY2tkZXBfY2hhaW5zX29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLmxsc2VlawkJPSBzZXFfbHNlZWssCisJLnJlbGVhc2UJPSBzZXFfcmVsZWFzZSwKK307CisjZW5kaWYgLyogQ09ORklHX1BST1ZFX0xPQ0tJTkcgKi8KKwogc3RhdGljIHZvaWQgbG9ja2RlcF9zdGF0c19kZWJ1Z19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSkKIHsKICNpZmRlZiBDT05GSUdfREVCVUdfTE9DS0RFUApAQCAtMjk0LDYgKzM4Myw4IEBACiAjaWZkZWYgQ09ORklHX1BST1ZFX0xPQ0tJTkcKIAlzZXFfcHJpbnRmKG0sICIgZGVwZW5kZW5jeSBjaGFpbnM6ICAgICAgICAgICAgICUxMWx1IFttYXg6ICVsdV1cbiIsCiAJCQlucl9sb2NrX2NoYWlucywgTUFYX0xPQ0tERVBfQ0hBSU5TKTsKKwlzZXFfcHJpbnRmKG0sICIgZGVwZW5kZW5jeSBjaGFpbiBobG9ja3M6ICAgICAgICUxMWQgW21heDogJWx1XVxuIiwKKwkJCW5yX2NoYWluX2hsb2NrcywgTUFYX0xPQ0tERVBfQ0hBSU5fSExPQ0tTKTsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCkBAIC02NjEsNiArNzUyLDEwIEBACiBzdGF0aWMgaW50IF9faW5pdCBsb2NrZGVwX3Byb2NfaW5pdCh2b2lkKQogewogCXByb2NfY3JlYXRlKCJsb2NrZGVwIiwgU19JUlVTUiwgTlVMTCwgJnByb2NfbG9ja2RlcF9vcGVyYXRpb25zKTsKKyNpZmRlZiBDT05GSUdfUFJPVkVfTE9DS0lORworCXByb2NfY3JlYXRlKCJsb2NrZGVwX2NoYWlucyIsIFNfSVJVU1IsIE5VTEwsCisJCSAgICAmcHJvY19sb2NrZGVwX2NoYWluc19vcGVyYXRpb25zKTsKKyNlbmRpZgogCXByb2NfY3JlYXRlKCJsb2NrZGVwX3N0YXRzIiwgU19JUlVTUiwgTlVMTCwKIAkJICAgICZwcm9jX2xvY2tkZXBfc3RhdHNfb3BlcmF0aW9ucyk7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9tYXJrZXIuYyBiL2tlcm5lbC9tYXJrZXIuYwppbmRleCBiNWE5ZmUxLi4xYWJmYjkyIDEwMDY0NAotLS0gYS9rZXJuZWwvbWFya2VyLmMKKysrIGIva2VybmVsL21hcmtlci5jCkBAIC01NSw4ICs1NSw4IEBACiBzdHJ1Y3QgbWFya2VyX2VudHJ5IHsKIAlzdHJ1Y3QgaGxpc3Rfbm9kZSBobGlzdDsKIAljaGFyICpmb3JtYXQ7Ci0Jdm9pZCAoKmNhbGwpKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLAkvKiBQcm9iZSB3cmFwcGVyICovCi0JCXZvaWQgKmNhbGxfcHJpdmF0ZSwgY29uc3QgY2hhciAqZm10LCAuLi4pOworCQkJLyogUHJvYmUgd3JhcHBlciAqLworCXZvaWQgKCpjYWxsKShjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwgdm9pZCAqY2FsbF9wcml2YXRlLCAuLi4pOwogCXN0cnVjdCBtYXJrZXJfcHJvYmVfY2xvc3VyZSBzaW5nbGU7CiAJc3RydWN0IG1hcmtlcl9wcm9iZV9jbG9zdXJlICptdWx0aTsKIAlpbnQgcmVmY291bnQ7CS8qIE51bWJlciBvZiB0aW1lcyBhcm1lZC4gMCBpZiBkaXNhcm1lZC4gKi8KQEAgLTkxLDE1ICs5MSwxMyBAQAogICogbWFya2VyX3Byb2JlX2NiIENhbGxiYWNrIHRoYXQgcHJlcGFyZXMgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QgZm9yIHByb2Jlcy4KICAqIEBtZGF0YTogcG9pbnRlciBvZiB0eXBlIHN0cnVjdCBtYXJrZXIKICAqIEBjYWxsX3ByaXZhdGU6IGNhbGxlciBzaXRlIHByaXZhdGUgZGF0YQotICogQGZtdDogZm9ybWF0IHN0cmluZwogICogQC4uLjogIFZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuCiAgKgogICogU2luY2Ugd2UgZG8gbm90IHVzZSAidHlwaWNhbCIgcG9pbnRlciBiYXNlZCBSQ1UgaW4gdGhlIDEgYXJndW1lbnQgY2FzZSwgd2UKICAqIG5lZWQgdG8gcHV0IGEgZnVsbCBzbXBfcm1iKCkgaW4gdGhpcyBicmFuY2guIFRoaXMgaXMgd2h5IHdlIGRvIG5vdCB1c2UKICAqIHJjdV9kZXJlZmVyZW5jZSgpIGZvciB0aGUgcG9pbnRlciByZWFkLgogICovCi12b2lkIG1hcmtlcl9wcm9iZV9jYihjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwgdm9pZCAqY2FsbF9wcml2YXRlLAotCWNvbnN0IGNoYXIgKmZtdCwgLi4uKQordm9pZCBtYXJrZXJfcHJvYmVfY2IoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsIHZvaWQgKmNhbGxfcHJpdmF0ZSwgLi4uKQogewogCXZhX2xpc3QgYXJnczsKIAljaGFyIHB0eXBlOwpAQCAtMTIwLDggKzExOCw5IEBACiAJCS8qIE11c3QgcmVhZCB0aGUgcHRyIGJlZm9yZSBwcml2YXRlIGRhdGEuIFRoZXkgYXJlIG5vdCBkYXRhCiAJCSAqIGRlcGVuZGFudCwgc28gd2UgcHV0IGFuIGV4cGxpY2l0IHNtcF9ybWIoKSBoZXJlLiAqLwogCQlzbXBfcm1iKCk7Ci0JCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7Ci0JCWZ1bmMobWRhdGEtPnNpbmdsZS5wcm9iZV9wcml2YXRlLCBjYWxsX3ByaXZhdGUsIGZtdCwgJmFyZ3MpOworCQl2YV9zdGFydChhcmdzLCBjYWxsX3ByaXZhdGUpOworCQlmdW5jKG1kYXRhLT5zaW5nbGUucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLCBtZGF0YS0+Zm9ybWF0LAorCQkJJmFyZ3MpOwogCQl2YV9lbmQoYXJncyk7CiAJfSBlbHNlIHsKIAkJc3RydWN0IG1hcmtlcl9wcm9iZV9jbG9zdXJlICptdWx0aTsKQEAgLTEzNiw5ICsxMzUsOSBAQAogCQlzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMoKTsKIAkJbXVsdGkgPSBtZGF0YS0+bXVsdGk7CiAJCWZvciAoaSA9IDA7IG11bHRpW2ldLmZ1bmM7IGkrKykgewotCQkJdmFfc3RhcnQoYXJncywgZm10KTsKLQkJCW11bHRpW2ldLmZ1bmMobXVsdGlbaV0ucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLCBmbXQsCi0JCQkJJmFyZ3MpOworCQkJdmFfc3RhcnQoYXJncywgY2FsbF9wcml2YXRlKTsKKwkJCW11bHRpW2ldLmZ1bmMobXVsdGlbaV0ucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLAorCQkJCW1kYXRhLT5mb3JtYXQsICZhcmdzKTsKIAkJCXZhX2VuZChhcmdzKTsKIAkJfQogCX0KQEAgLTE1MCwxMyArMTQ5LDExIEBACiAgKiBtYXJrZXJfcHJvYmVfY2IgQ2FsbGJhY2sgdGhhdCBkb2VzIG5vdCBwcmVwYXJlIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LgogICogQG1kYXRhOiBwb2ludGVyIG9mIHR5cGUgc3RydWN0IG1hcmtlcgogICogQGNhbGxfcHJpdmF0ZTogY2FsbGVyIHNpdGUgcHJpdmF0ZSBkYXRhCi0gKiBAZm10OiBmb3JtYXQgc3RyaW5nCiAgKiBALi4uOiAgVmFyaWFibGUgYXJndW1lbnQgbGlzdC4KICAqCiAgKiBTaG91bGQgYmUgY29ubmVjdGVkIHRvIG1hcmtlcnMgIk1BUktfTk9BUkdTIi4KICAqLwotdm9pZCBtYXJrZXJfcHJvYmVfY2Jfbm9hcmcoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsCi0Jdm9pZCAqY2FsbF9wcml2YXRlLCBjb25zdCBjaGFyICpmbXQsIC4uLikKK3ZvaWQgbWFya2VyX3Byb2JlX2NiX25vYXJnKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLCB2b2lkICpjYWxsX3ByaXZhdGUsIC4uLikKIHsKIAl2YV9saXN0IGFyZ3M7CS8qIG5vdCBpbml0aWFsaXplZCAqLwogCWNoYXIgcHR5cGU7CkBAIC0xNzIsNyArMTY5LDggQEAKIAkJLyogTXVzdCByZWFkIHRoZSBwdHIgYmVmb3JlIHByaXZhdGUgZGF0YS4gVGhleSBhcmUgbm90IGRhdGEKIAkJICogZGVwZW5kYW50LCBzbyB3ZSBwdXQgYW4gZXhwbGljaXQgc21wX3JtYigpIGhlcmUuICovCiAJCXNtcF9ybWIoKTsKLQkJZnVuYyhtZGF0YS0+c2luZ2xlLnByb2JlX3ByaXZhdGUsIGNhbGxfcHJpdmF0ZSwgZm10LCAmYXJncyk7CisJCWZ1bmMobWRhdGEtPnNpbmdsZS5wcm9iZV9wcml2YXRlLCBjYWxsX3ByaXZhdGUsIG1kYXRhLT5mb3JtYXQsCisJCQkmYXJncyk7CiAJfSBlbHNlIHsKIAkJc3RydWN0IG1hcmtlcl9wcm9iZV9jbG9zdXJlICptdWx0aTsKIAkJaW50IGk7CkBAIC0xODYsOCArMTg0LDggQEAKIAkJc21wX3JlYWRfYmFycmllcl9kZXBlbmRzKCk7CiAJCW11bHRpID0gbWRhdGEtPm11bHRpOwogCQlmb3IgKGkgPSAwOyBtdWx0aVtpXS5mdW5jOyBpKyspCi0JCQltdWx0aVtpXS5mdW5jKG11bHRpW2ldLnByb2JlX3ByaXZhdGUsIGNhbGxfcHJpdmF0ZSwgZm10LAotCQkJCSZhcmdzKTsKKwkJCW11bHRpW2ldLmZ1bmMobXVsdGlbaV0ucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLAorCQkJCW1kYXRhLT5mb3JtYXQsICZhcmdzKTsKIAl9CiAJcHJlZW1wdF9lbmFibGUoKTsKIH0KZGlmZiAtLWdpdCBhL2tlcm5lbC9tdXRleC1kZWJ1Zy5jIGIva2VybmVsL211dGV4LWRlYnVnLmMKaW5kZXggM2FhYTA2Yy4uMWQ5NDE2MCAxMDA2NDQKLS0tIGEva2VybmVsL211dGV4LWRlYnVnLmMKKysrIGIva2VybmVsL211dGV4LWRlYnVnLmMKQEAgLTc5LDggKzc5LDggQEAKIAlpZiAodW5saWtlbHkoIWRlYnVnX2xvY2tzKSkKIAkJcmV0dXJuOwogCi0JREVCVUdfTE9DS1NfV0FSTl9PTihsb2NrLT5vd25lciAhPSBjdXJyZW50X3RocmVhZF9pbmZvKCkpOwogCURFQlVHX0xPQ0tTX1dBUk5fT04obG9jay0+bWFnaWMgIT0gbG9jayk7CisJREVCVUdfTE9DS1NfV0FSTl9PTihsb2NrLT5vd25lciAhPSBjdXJyZW50X3RocmVhZF9pbmZvKCkpOwogCURFQlVHX0xPQ0tTX1dBUk5fT04oIWxvY2stPndhaXRfbGlzdC5wcmV2ICYmICFsb2NrLT53YWl0X2xpc3QubmV4dCk7CiAJREVCVUdfTE9DS1NfV0FSTl9PTihsb2NrLT5vd25lciAhPSBjdXJyZW50X3RocmVhZF9pbmZvKCkpOwogfQpkaWZmIC0tZ2l0IGEva2VybmVsL211dGV4LmMgYi9rZXJuZWwvbXV0ZXguYwppbmRleCBkMDQ2YTM0Li5iY2RjOWFjIDEwMDY0NAotLS0gYS9rZXJuZWwvbXV0ZXguYworKysgYi9rZXJuZWwvbXV0ZXguYwpAQCAtMTY1LDEwICsxNjUsNyBAQAogCQkgKiBnb3QgYSBzaWduYWw/IChUaGlzIGNvZGUgZ2V0cyBlbGltaW5hdGVkIGluIHRoZQogCQkgKiBUQVNLX1VOSU5URVJSVVBUSUJMRSBjYXNlLikKIAkJICovCi0JCWlmICh1bmxpa2VseSgoc3RhdGUgPT0gVEFTS19JTlRFUlJVUFRJQkxFICYmCi0JCQkJCXNpZ25hbF9wZW5kaW5nKHRhc2spKSB8fAotCQkJICAgICAgKHN0YXRlID09IFRBU0tfS0lMTEFCTEUgJiYKLQkJCQkJZmF0YWxfc2lnbmFsX3BlbmRpbmcodGFzaykpKSkgeworCQlpZiAodW5saWtlbHkoc2lnbmFsX3BlbmRpbmdfc3RhdGUoc3RhdGUsIHRhc2spKSkgewogCQkJbXV0ZXhfcmVtb3ZlX3dhaXRlcihsb2NrLCAmd2FpdGVyLAogCQkJCQkgICAgdGFza190aHJlYWRfaW5mbyh0YXNrKSk7CiAJCQltdXRleF9yZWxlYXNlKCZsb2NrLT5kZXBfbWFwLCAxLCBpcCk7CmRpZmYgLS1naXQgYS9rZXJuZWwvcG1fcW9zX3BhcmFtcy5jIGIva2VybmVsL3BtX3Fvc19wYXJhbXMuYwppbmRleCAwYWZlMzJiLi44Y2I3NTcwIDEwMDY0NAotLS0gYS9rZXJuZWwvcG1fcW9zX3BhcmFtcy5jCisrKyBiL2tlcm5lbC9wbV9xb3NfcGFyYW1zLmMKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3BtX3Fvc19wYXJhbXMuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZS5oPgpAQCAtMzU4LDE1ICszNTksMTkgQEAKIAlpbnQgcmV0OwogCWxvbmcgcG1fcW9zX2NsYXNzOwogCisJbG9ja19rZXJuZWwoKTsKIAlwbV9xb3NfY2xhc3MgPSBmaW5kX3BtX3Fvc19vYmplY3RfYnlfbWlub3IoaW1pbm9yKGlub2RlKSk7CiAJaWYgKHBtX3Fvc19jbGFzcyA+PSAwKSB7CiAJCWZpbHAtPnByaXZhdGVfZGF0YSA9ICh2b2lkICopcG1fcW9zX2NsYXNzOwogCQlzcHJpbnRmKG5hbWUsICJwcm9jZXNzXyVkIiwgY3VycmVudC0+cGlkKTsKIAkJcmV0ID0gcG1fcW9zX2FkZF9yZXF1aXJlbWVudChwbV9xb3NfY2xhc3MsIG5hbWUsCiAJCQkJCVBNX1FPU19ERUZBVUxUX1ZBTFVFKTsKLQkJaWYgKHJldCA+PSAwKQorCQlpZiAocmV0ID49IDApIHsKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybiAwOworCQl9CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAtRVBFUk07CiB9CmRpZmYgLS1naXQgYS9rZXJuZWwvcG9zaXgtY3B1LXRpbWVycy5jIGIva2VybmVsL3Bvc2l4LWNwdS10aW1lcnMuYwppbmRleCBmMTUyNWFkLi5jNDJhMDNhIDEwMDY0NAotLS0gYS9rZXJuZWwvcG9zaXgtY3B1LXRpbWVycy5jCisrKyBiL2tlcm5lbC9wb3NpeC1jcHUtdGltZXJzLmMKQEAgLTEwMzcsNiArMTAzNyw5IEBACiAJCQkJc2lnLT5ybGltW1JMSU1JVF9SVFRJTUVdLnJsaW1fY3VyICs9CiAJCQkJCQkJCVVTRUNfUEVSX1NFQzsKIAkJCX0KKwkJCXByaW50ayhLRVJOX0lORk8KKwkJCQkiUlQgV2F0Y2hkb2cgVGltZW91dDogJXNbJWRdXG4iLAorCQkJCXRzay0+Y29tbSwgdGFza19waWRfbnIodHNrKSk7CiAJCQlfX2dyb3VwX3NlbmRfc2lnX2luZm8oU0lHWENQVSwgU0VORF9TSUdfUFJJViwgdHNrKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2tlcm5lbC9wcmludGsuYyBiL2tlcm5lbC9wcmludGsuYwppbmRleCA4ZmIwMWMzLi4wN2FkOWU3IDEwMDY0NAotLS0gYS9rZXJuZWwvcHJpbnRrLmMKKysrIGIva2VybmVsL3ByaW50ay5jCkBAIC0zOCw3ICszOCw3IEBACiAvKgogICogQXJjaGl0ZWN0dXJlcyBjYW4gb3ZlcnJpZGUgaXQ6CiAgKi8KLXZvaWQgX19hdHRyaWJ1dGVfXygod2VhaykpIGVhcmx5X3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLikKK3ZvaWQgYXNtbGlua2FnZSBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgZWFybHlfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogfQogCkBAIC03NSw2ICs3NSw4IEBACiBzdGF0aWMgREVDTEFSRV9NVVRFWChjb25zb2xlX3NlbSk7CiBzdGF0aWMgREVDTEFSRV9NVVRFWChzZWNvbmRhcnlfY29uc29sZV9zZW0pOwogc3RydWN0IGNvbnNvbGUgKmNvbnNvbGVfZHJpdmVyczsKK0VYUE9SVF9TWU1CT0xfR1BMKGNvbnNvbGVfZHJpdmVycyk7CisKIC8qCiAgKiBUaGlzIGlzIHVzZWQgZm9yIGRlYnVnZ2luZyB0aGUgbWVzcyB0aGF0IGlzIHRoZSBWVCBjb2RlIGJ5CiAgKiBrZWVwaW5nIHRyYWNrIGlmIHdlIGhhdmUgdGhlIGNvbnNvbGUgc2VtYXBob3JlIGhlbGQuIEl0J3MKQEAgLTEyMSw2ICsxMjMsOCBAQAogc3RhdGljIHN0cnVjdCBjb25zb2xlX2NtZGxpbmUgY29uc29sZV9jbWRsaW5lW01BWF9DTURMSU5FQ09OU09MRVNdOwogc3RhdGljIGludCBzZWxlY3RlZF9jb25zb2xlID0gLTE7CiBzdGF0aWMgaW50IHByZWZlcnJlZF9jb25zb2xlID0gLTE7CitpbnQgY29uc29sZV9zZXRfb25fY21kbGluZTsKK0VYUE9SVF9TWU1CT0woY29uc29sZV9zZXRfb25fY21kbGluZSk7CiAKIC8qIEZsYWc6IGNvbnNvbGUgY29kZSBtYXkgY2FsbCBzY2hlZHVsZSgpICovCiBzdGF0aWMgaW50IGNvbnNvbGVfbWF5X3NjaGVkdWxlOwpAQCAtMjMxLDcgKzIzNSw3IEBACiAvKgogICogUmV0dXJuIHRoZSBudW1iZXIgb2YgdW5yZWFkIGNoYXJhY3RlcnMgaW4gdGhlIGxvZyBidWZmZXIuCiAgKi8KLWludCBsb2dfYnVmX2dldF9sZW4odm9pZCkKK3N0YXRpYyBpbnQgbG9nX2J1Zl9nZXRfbGVuKHZvaWQpCiB7CiAJcmV0dXJuIGxvZ2dlZF9jaGFyczsKIH0KQEAgLTI2OCwxOSArMjcyLDYgQEAKIH0KIAogLyoKLSAqIEV4dHJhY3QgYSBzaW5nbGUgY2hhcmFjdGVyIGZyb20gdGhlIGxvZyBidWZmZXIuCi0gKi8KLWludCBsb2dfYnVmX3JlYWQoaW50IGlkeCkKLXsKLQljaGFyIHJldDsKLQotCWlmIChsb2dfYnVmX2NvcHkoJnJldCwgaWR4LCAxKSA9PSAxKQotCQlyZXR1cm4gcmV0OwotCWVsc2UKLQkJcmV0dXJuIC0xOwotfQotCi0vKgogICogQ29tbWFuZHMgdG8gZG9fc3lzbG9nOgogICoKICAqIAkwIC0tIENsb3NlIHRoZSBsb2cuICBDdXJyZW50bHkgYSBOT1AuCkBAIC02NjUsMTggKzY1NiwxNyBAQAogCXNwaW5fdW5sb2NrKCZsb2didWZfbG9jayk7CiAJcmV0dXJuIHJldHZhbDsKIH0KLQotY29uc3QgY2hhciBwcmludGtfcmVjdXJzaW9uX2J1Z19tc2cgW10gPQotCQkJS0VSTl9DUklUICJCVUc6IHJlY2VudCBwcmludGsgcmVjdXJzaW9uIVxuIjsKLXN0YXRpYyBpbnQgcHJpbnRrX3JlY3Vyc2lvbl9idWc7CitzdGF0aWMgY29uc3QgY2hhciByZWN1cnNpb25fYnVnX21zZyBbXSA9CisJCUtFUk5fQ1JJVCAiQlVHOiByZWNlbnQgcHJpbnRrIHJlY3Vyc2lvbiFcbiI7CitzdGF0aWMgaW50IHJlY3Vyc2lvbl9idWc7CisJc3RhdGljIGludCBuZXdfdGV4dF9saW5lID0gMTsKK3N0YXRpYyBjaGFyIHByaW50a19idWZbMTAyNF07CiAKIGFzbWxpbmthZ2UgaW50IHZwcmludGsoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCiB7Ci0Jc3RhdGljIGludCBsb2dfbGV2ZWxfdW5rbm93biA9IDE7Ci0Jc3RhdGljIGNoYXIgcHJpbnRrX2J1ZlsxMDI0XTsKLQotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHByaW50ZWRfbGVuID0gMDsKKwlpbnQgY3VycmVudF9sb2dfbGV2ZWwgPSBkZWZhdWx0X21lc3NhZ2VfbG9nbGV2ZWw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgdGhpc19jcHU7CiAJY2hhciAqcDsKIApAQCAtNjk5LDcgKzY4OSw3IEBACiAJCSAqIGl0IGNhbiBiZSBwcmludGVkIGF0IHRoZSBuZXh0IGFwcHJvcHJpYXRlIG1vbWVudDoKIAkJICovCiAJCWlmICghb29wc19pbl9wcm9ncmVzcykgewotCQkJcHJpbnRrX3JlY3Vyc2lvbl9idWcgPSAxOworCQkJcmVjdXJzaW9uX2J1ZyA9IDE7CiAJCQlnb3RvIG91dF9yZXN0b3JlX2lycXM7CiAJCX0KIAkJemFwX2xvY2tzKCk7CkBAIC03MDksNzAgKzY5OSw2MiBAQAogCXNwaW5fbG9jaygmbG9nYnVmX2xvY2spOwogCXByaW50a19jcHUgPSB0aGlzX2NwdTsKIAotCWlmIChwcmludGtfcmVjdXJzaW9uX2J1ZykgewotCQlwcmludGtfcmVjdXJzaW9uX2J1ZyA9IDA7Ci0JCXN0cmNweShwcmludGtfYnVmLCBwcmludGtfcmVjdXJzaW9uX2J1Z19tc2cpOwotCQlwcmludGVkX2xlbiA9IHNpemVvZihwcmludGtfcmVjdXJzaW9uX2J1Z19tc2cpOworCWlmIChyZWN1cnNpb25fYnVnKSB7CisJCXJlY3Vyc2lvbl9idWcgPSAwOworCQlzdHJjcHkocHJpbnRrX2J1ZiwgcmVjdXJzaW9uX2J1Z19tc2cpOworCQlwcmludGVkX2xlbiA9IHNpemVvZihyZWN1cnNpb25fYnVnX21zZyk7CiAJfQogCS8qIEVtaXQgdGhlIG91dHB1dCBpbnRvIHRoZSB0ZW1wb3JhcnkgYnVmZmVyICovCiAJcHJpbnRlZF9sZW4gKz0gdnNjbnByaW50ZihwcmludGtfYnVmICsgcHJpbnRlZF9sZW4sCiAJCQkJICBzaXplb2YocHJpbnRrX2J1ZikgLSBwcmludGVkX2xlbiwgZm10LCBhcmdzKTsKIAorCiAJLyoKIAkgKiBDb3B5IHRoZSBvdXRwdXQgaW50byBsb2dfYnVmLiAgSWYgdGhlIGNhbGxlciBkaWRuJ3QgcHJvdmlkZQogCSAqIGFwcHJvcHJpYXRlIGxvZyBsZXZlbCB0YWdzLCB3ZSBpbnNlcnQgdGhlbSBoZXJlCiAJICovCiAJZm9yIChwID0gcHJpbnRrX2J1ZjsgKnA7IHArKykgewotCQlpZiAobG9nX2xldmVsX3Vua25vd24pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxvZ19sZXZlbF91bmtub3duIHNpZ25hbHMgdGhlIHN0YXJ0IG9mIGEgbmV3IGxpbmUgKi8KKwkJaWYgKG5ld190ZXh0X2xpbmUpIHsKKwkJCS8qIElmIGEgdG9rZW4sIHNldCBjdXJyZW50X2xvZ19sZXZlbCBhbmQgc2tpcCBvdmVyICovCisJCQlpZiAocFswXSA9PSAnPCcgJiYgcFsxXSA+PSAnMCcgJiYgcFsxXSA8PSAnNycgJiYKKwkJCSAgICBwWzJdID09ICc+JykgeworCQkJCWN1cnJlbnRfbG9nX2xldmVsID0gcFsxXSAtICcwJzsKKwkJCQlwICs9IDM7CisJCQkJcHJpbnRlZF9sZW4gLT0gMzsKKwkJCX0KKworCQkJLyogQWx3YXlzIG91dHB1dCB0aGUgdG9rZW4gKi8KKwkJCWVtaXRfbG9nX2NoYXIoJzwnKTsKKwkJCWVtaXRfbG9nX2NoYXIoY3VycmVudF9sb2dfbGV2ZWwgKyAnMCcpOworCQkJZW1pdF9sb2dfY2hhcignPicpOworCQkJcHJpbnRlZF9sZW4gKz0gMzsKKwkJCW5ld190ZXh0X2xpbmUgPSAwOworCiAJCQlpZiAocHJpbnRrX3RpbWUpIHsKLQkJCQlpbnQgbG9nbGV2X2NoYXI7CisJCQkJLyogRm9sbG93IHRoZSB0b2tlbiB3aXRoIHRoZSB0aW1lICovCiAJCQkJY2hhciB0YnVmWzUwXSwgKnRwOwogCQkJCXVuc2lnbmVkIHRsZW47CiAJCQkJdW5zaWduZWQgbG9uZyBsb25nIHQ7CiAJCQkJdW5zaWduZWQgbG9uZyBuYW5vc2VjX3JlbTsKIAotCQkJCS8qCi0JCQkJICogZm9yY2UgdGhlIGxvZyBsZXZlbCB0b2tlbiB0byBiZQotCQkJCSAqIGJlZm9yZSB0aGUgdGltZSBvdXRwdXQuCi0JCQkJICovCi0JCQkJaWYgKHBbMF0gPT0gJzwnICYmIHBbMV0gPj0nMCcgJiYKLQkJCQkgICBwWzFdIDw9ICc3JyAmJiBwWzJdID09ICc+JykgewotCQkJCQlsb2dsZXZfY2hhciA9IHBbMV07Ci0JCQkJCXAgKz0gMzsKLQkJCQkJcHJpbnRlZF9sZW4gLT0gMzsKLQkJCQl9IGVsc2UgewotCQkJCQlsb2dsZXZfY2hhciA9IGRlZmF1bHRfbWVzc2FnZV9sb2dsZXZlbAotCQkJCQkJKyAnMCc7Ci0JCQkJfQogCQkJCXQgPSBjcHVfY2xvY2socHJpbnRrX2NwdSk7CiAJCQkJbmFub3NlY19yZW0gPSBkb19kaXYodCwgMTAwMDAwMDAwMCk7Ci0JCQkJdGxlbiA9IHNwcmludGYodGJ1ZiwKLQkJCQkJCSI8JWM+WyU1bHUuJTA2bHVdICIsCi0JCQkJCQlsb2dsZXZfY2hhciwKLQkJCQkJCSh1bnNpZ25lZCBsb25nKXQsCi0JCQkJCQluYW5vc2VjX3JlbS8xMDAwKTsKKwkJCQl0bGVuID0gc3ByaW50Zih0YnVmLCAiWyU1bHUuJTA2bHVdICIsCisJCQkJCQkodW5zaWduZWQgbG9uZykgdCwKKwkJCQkJCW5hbm9zZWNfcmVtIC8gMTAwMCk7CiAKIAkJCQlmb3IgKHRwID0gdGJ1ZjsgdHAgPCB0YnVmICsgdGxlbjsgdHArKykKIAkJCQkJZW1pdF9sb2dfY2hhcigqdHApOwogCQkJCXByaW50ZWRfbGVuICs9IHRsZW47Ci0JCQl9IGVsc2UgewotCQkJCWlmIChwWzBdICE9ICc8JyB8fCBwWzFdIDwgJzAnIHx8Ci0JCQkJICAgcFsxXSA+ICc3JyB8fCBwWzJdICE9ICc+JykgewotCQkJCQllbWl0X2xvZ19jaGFyKCc8Jyk7Ci0JCQkJCWVtaXRfbG9nX2NoYXIoZGVmYXVsdF9tZXNzYWdlX2xvZ2xldmVsCi0JCQkJCQkrICcwJyk7Ci0JCQkJCWVtaXRfbG9nX2NoYXIoJz4nKTsKLQkJCQkJcHJpbnRlZF9sZW4gKz0gMzsKLQkJCQl9CiAJCQl9Ci0JCQlsb2dfbGV2ZWxfdW5rbm93biA9IDA7CisKIAkJCWlmICghKnApCiAJCQkJYnJlYWs7CiAJCX0KKwogCQllbWl0X2xvZ19jaGFyKCpwKTsKIAkJaWYgKCpwID09ICdcbicpCi0JCQlsb2dfbGV2ZWxfdW5rbm93biA9IDE7CisJCQluZXdfdGV4dF9saW5lID0gMTsKIAl9CiAKIAkvKgpAQCAtODkwLDYgKzg3Miw3IEBACiAJKnMgPSAwOwogCiAJX19hZGRfcHJlZmVycmVkX2NvbnNvbGUoYnVmLCBpZHgsIG9wdGlvbnMsIGJybF9vcHRpb25zKTsKKwljb25zb2xlX3NldF9vbl9jbWRsaW5lID0gMTsKIAlyZXR1cm4gMTsKIH0KIF9fc2V0dXAoImNvbnNvbGU9IiwgY29uc29sZV9zZXR1cCk7CkBAIC0xMDQxLDcgKzEwMjQsOSBAQAogCQlfbG9nX2VuZCA9IGxvZ19lbmQ7CiAJCWNvbl9zdGFydCA9IGxvZ19lbmQ7CQkvKiBGbHVzaCAqLwogCQlzcGluX3VubG9jaygmbG9nYnVmX2xvY2spOworCQlzdG9wX2NyaXRpY2FsX3RpbWluZ3MoKTsJLyogZG9uJ3QgdHJhY2UgcHJpbnQgbGF0ZW5jeSAqLwogCQljYWxsX2NvbnNvbGVfZHJpdmVycyhfY29uX3N0YXJ0LCBfbG9nX2VuZCk7CisJCXN0YXJ0X2NyaXRpY2FsX3RpbWluZ3MoKTsKIAkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCX0KIAljb25zb2xlX2xvY2tlZCA9IDA7CkBAIC0xMTcyLDggKzExNTcsMTEgQEAKIAkJCWNvbnNvbGUtPmluZGV4ID0gMDsKIAkJaWYgKGNvbnNvbGUtPnNldHVwID09IE5VTEwgfHwKIAkJICAgIGNvbnNvbGUtPnNldHVwKGNvbnNvbGUsIE5VTEwpID09IDApIHsKLQkJCWNvbnNvbGUtPmZsYWdzIHw9IENPTl9FTkFCTEVEIHwgQ09OX0NPTlNERVY7Ci0JCQlwcmVmZXJyZWRfY29uc29sZSA9IDA7CisJCQljb25zb2xlLT5mbGFncyB8PSBDT05fRU5BQkxFRDsKKwkJCWlmIChjb25zb2xlLT5kZXZpY2UpIHsKKwkJCQljb25zb2xlLT5mbGFncyB8PSBDT05fQ09OU0RFVjsKKwkJCQlwcmVmZXJyZWRfY29uc29sZSA9IDA7CisJCQl9CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9wdHJhY2UuYyBiL2tlcm5lbC9wdHJhY2UuYwppbmRleCA2YzE5ZTk0Li5lMzM3MzkwIDEwMDY0NAotLS0gYS9rZXJuZWwvcHRyYWNlLmMKKysrIGIva2VybmVsL3B0cmFjZS5jCkBAIC0xMjEsNyArMTIxLDcgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgX19wdHJhY2VfbWF5X2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCitpbnQgX19wdHJhY2VfbWF5X2FjY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBtb2RlKQogewogCS8qIE1heSB3ZSBpbnNwZWN0IHRoZSBnaXZlbiB0YXNrPwogCSAqIFRoaXMgY2hlY2sgaXMgdXNlZCBib3RoIGZvciBhdHRhY2hpbmcgd2l0aCBwdHJhY2UKQEAgLTE0OCwxNiArMTQ4LDE2IEBACiAJaWYgKCFkdW1wYWJsZSAmJiAhY2FwYWJsZShDQVBfU1lTX1BUUkFDRSkpCiAJCXJldHVybiAtRVBFUk07CiAKLQlyZXR1cm4gc2VjdXJpdHlfcHRyYWNlKGN1cnJlbnQsIHRhc2spOworCXJldHVybiBzZWN1cml0eV9wdHJhY2UoY3VycmVudCwgdGFzaywgbW9kZSk7CiB9CiAKLWludCBwdHJhY2VfbWF5X2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCitib29sIHB0cmFjZV9tYXlfYWNjZXNzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAJaW50IGVycjsKIAl0YXNrX2xvY2sodGFzayk7Ci0JZXJyID0gX19wdHJhY2VfbWF5X2F0dGFjaCh0YXNrKTsKKwllcnIgPSBfX3B0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIG1vZGUpOwogCXRhc2tfdW5sb2NrKHRhc2spOwotCXJldHVybiAhZXJyOworCXJldHVybiAoIWVyciA/IHRydWUgOiBmYWxzZSk7CiB9CiAKIGludCBwdHJhY2VfYXR0YWNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKQEAgLTE5NSw3ICsxOTUsNyBAQAogCS8qIHRoZSBzYW1lIHByb2Nlc3MgY2Fubm90IGJlIGF0dGFjaGVkIG1hbnkgdGltZXMgKi8KIAlpZiAodGFzay0+cHRyYWNlICYgUFRfUFRSQUNFRCkKIAkJZ290byBiYWQ7Ci0JcmV0dmFsID0gX19wdHJhY2VfbWF5X2F0dGFjaCh0YXNrKTsKKwlyZXR2YWwgPSBfX3B0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX0FUVEFDSCk7CiAJaWYgKHJldHZhbCkKIAkJZ290byBiYWQ7CiAKQEAgLTQ5NCw3ICs0OTQsOCBAQAogCSAqLwogCXRhc2tfbG9jayhjdXJyZW50KTsKIAlpZiAoIShjdXJyZW50LT5wdHJhY2UgJiBQVF9QVFJBQ0VEKSkgewotCQlyZXQgPSBzZWN1cml0eV9wdHJhY2UoY3VycmVudC0+cGFyZW50LCBjdXJyZW50KTsKKwkJcmV0ID0gc2VjdXJpdHlfcHRyYWNlKGN1cnJlbnQtPnBhcmVudCwgY3VycmVudCwKKwkJCQkgICAgICBQVFJBQ0VfTU9ERV9BVFRBQ0gpOwogCQkvKgogCQkgKiBTZXQgdGhlIHB0cmFjZSBiaXQgaW4gdGhlIHByb2Nlc3MgcHRyYWNlIGZsYWdzLgogCQkgKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC9yY3VjbGFzc2ljLmMgYi9rZXJuZWwvcmN1Y2xhc3NpYy5jCmluZGV4IGY0ZmZiZDAuLjY1YzA5MDYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9yY3VjbGFzc2ljLmMKKysrIGIva2VybmVsL3JjdWNsYXNzaWMuYwpAQCAtODksOCArODksMjIgQEAKIAkJLyoKIAkJICogRG9uJ3Qgc2VuZCBJUEkgdG8gaXRzZWxmLiBXaXRoIGlycXMgZGlzYWJsZWQsCiAJCSAqIHJkcC0+Y3B1IGlzIHRoZSBjdXJyZW50IGNwdS4KKwkJICoKKwkJICogY3B1X29ubGluZV9tYXAgaXMgdXBkYXRlZCBieSB0aGUgX2NwdV9kb3duKCkKKwkJICogdXNpbmcgc3RvcF9tYWNoaW5lX3J1bigpLiBTaW5jZSB3ZSdyZSBpbiBpcnFzIGRpc2FibGVkCisJCSAqIHNlY3Rpb24sIHN0b3BfbWFjaGluZV9ydW4oKSBpcyBub3QgZXhlY3R1dGluZywgaGVuY2UKKwkJICogdGhlIGNwdV9vbmxpbmVfbWFwIGlzIHN0YWJsZS4KKwkJICoKKwkJICogSG93ZXZlciwgIGEgY3B1IG1pZ2h0IGhhdmUgYmVlbiBvZmZsaW5lZCBfanVzdF8gYmVmb3JlCisJCSAqIHdlIGRpc2FibGVkIGlycXMgd2hpbGUgZW50ZXJpbmcgaGVyZS4KKwkJICogQW5kIHJjdSBzdWJzeXN0ZW0gbWlnaHQgbm90IHlldCBoYXZlIGhhbmRsZWQgdGhlIENQVV9ERUFECisJCSAqIG5vdGlmaWNhdGlvbiwgbGVhZGluZyB0byB0aGUgb2ZmbGluZWQgY3B1J3MgYml0CisJCSAqIGJlaW5nIHNldCBpbiB0aGUgcmNwLT5jcHVtYXNrLgorCQkgKgorCQkgKiBIZW5jZSBjcHVtYXNrID0gKHJjcC0+Y3B1bWFzayAmIGNwdV9vbmxpbmVfbWFwKSB0byBwcmV2ZW50CisJCSAqIHNlbmRpbmcgc21wX3Jlc2NoZWR1bGUoKSB0byBhbiBvZmZsaW5lZCBDUFUuCiAJCSAqLwotCQljcHVtYXNrID0gcmNwLT5jcHVtYXNrOworCQljcHVzX2FuZChjcHVtYXNrLCByY3AtPmNwdW1hc2ssIGNwdV9vbmxpbmVfbWFwKTsKIAkJY3B1X2NsZWFyKHJkcC0+Y3B1LCBjcHVtYXNrKTsKIAkJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBjcHVtYXNrKQogCQkJc21wX3NlbmRfcmVzY2hlZHVsZShjcHUpOwpAQCAtNTI5LDcgKzU0Myw3IEBACiAKIAlyY3VfaW5pdF9wZXJjcHVfZGF0YShjcHUsICZyY3VfY3RybGJsaywgcmRwKTsKIAlyY3VfaW5pdF9wZXJjcHVfZGF0YShjcHUsICZyY3VfYmhfY3RybGJsaywgYmhfcmRwKTsKLQlvcGVuX3NvZnRpcnEoUkNVX1NPRlRJUlEsIHJjdV9wcm9jZXNzX2NhbGxiYWNrcywgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKFJDVV9TT0ZUSVJRLCByY3VfcHJvY2Vzc19jYWxsYmFja3MpOwogfQogCiBzdGF0aWMgaW50IF9fY3B1aW5pdCByY3VfY3B1X25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnNlbGYsCmRpZmYgLS1naXQgYS9rZXJuZWwvcmN1cHJlZW1wdC5jIGIva2VybmVsL3JjdXByZWVtcHQuYwppbmRleCA1ZTAyYjc3NC4uOWJmNDQ1NiAxMDA2NDQKLS0tIGEva2VybmVsL3JjdXByZWVtcHQuYworKysgYi9rZXJuZWwvcmN1cHJlZW1wdC5jCkBAIC05MjUsNyArOTI1LDE1IEBACiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmRwLT5sb2NrLCBmbGFncyk7CiB9CiAKLXZvaWQgX19kZXZpbml0IHJjdV9vbmxpbmVfY3B1KGludCBjcHUpCisjZWxzZSAvKiAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVICovCisKK3ZvaWQgcmN1X29mZmxpbmVfY3B1KGludCBjcHUpCit7Cit9CisKKyNlbmRpZiAvKiAjZWxzZSAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVICovCisKK3ZvaWQgX19jcHVpbml0IHJjdV9vbmxpbmVfY3B1KGludCBjcHUpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIApAQCAtOTM0LDE4ICs5NDIsNiBAQAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJjdV9jdHJsYmxrLmZsaXBsb2NrLCBmbGFncyk7CiB9CiAKLSNlbHNlIC8qICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUgKi8KLQotdm9pZCByY3Vfb2ZmbGluZV9jcHUoaW50IGNwdSkKLXsKLX0KLQotdm9pZCBfX2RldmluaXQgcmN1X29ubGluZV9jcHUoaW50IGNwdSkKLXsKLX0KLQotI2VuZGlmIC8qICNlbHNlICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUgKi8KLQogc3RhdGljIHZvaWQgcmN1X3Byb2Nlc3NfY2FsbGJhY2tzKHN0cnVjdCBzb2Z0aXJxX2FjdGlvbiAqdW51c2VkKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC0xMTIzLDcgKzExMTksNyBAQAogCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQogCQlyY3VfY3B1X25vdGlmeSgmcmN1X25iLCBDUFVfVVBfUFJFUEFSRSwJKHZvaWQgKikobG9uZykgY3B1KTsKIAotCW9wZW5fc29mdGlycShSQ1VfU09GVElSUSwgcmN1X3Byb2Nlc3NfY2FsbGJhY2tzLCBOVUxMKTsKKwlvcGVuX3NvZnRpcnEoUkNVX1NPRlRJUlEsIHJjdV9wcm9jZXNzX2NhbGxiYWNrcyk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQuYyBiL2tlcm5lbC9zY2hlZC5jCmluZGV4IDNhYWE1YzguLjk5ZTZkODUgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZC5jCisrKyBiL2tlcm5lbC9zY2hlZC5jCkBAIC03MCwxMCArNzAsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CiAjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CiAKICNpbmNsdWRlIDxhc20vdGxiLmg+CiAjaW5jbHVkZSA8YXNtL2lycV9yZWdzLmg+CiAKKyNpbmNsdWRlICJzY2hlZF9jcHVwcmkuaCIKKwogLyoKICAqIENvbnZlcnQgdXNlci1uaWNlIHZhbHVlcyBbIC0yMCAuLi4gMCAuLi4gMTkgXQogICogdG8gc3RhdGljIHByaW9yaXR5IFsgTUFYX1JUX1BSSU8uLk1BWF9QUklPLTEgXSwKQEAgLTI4OSwxNSArMjkyLDE1IEBACiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVkX2VudGl0eSwgaW5pdF9zY2hlZF9lbnRpdHkpOwogLyogRGVmYXVsdCB0YXNrIGdyb3VwJ3MgY2ZzX3JxIG9uIGVhY2ggY3B1ICovCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IGNmc19ycSwgaW5pdF9jZnNfcnEpIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCAqLwogCiAjaWZkZWYgQ09ORklHX1JUX0dST1VQX1NDSEVECiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVkX3J0X2VudGl0eSwgaW5pdF9zY2hlZF9ydF9lbnRpdHkpOwogc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBydF9ycSwgaW5pdF9ydF9ycSkgX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsKLSNlbmRpZgotI2Vsc2UKKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KKyNlbHNlIC8qICFDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCAqLwogI2RlZmluZSByb290X3Rhc2tfZ3JvdXAgaW5pdF90YXNrX2dyb3VwCi0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCAqLwogCiAvKiB0YXNrX2dyb3VwX2xvY2sgc2VyaWFsaXplcyBhZGQvcmVtb3ZlIG9mIHRhc2sgZ3JvdXBzIGFuZCBhbHNvIGNoYW5nZXMgdG8KICAqIGEgdGFzayBncm91cCdzIGNwdSBzaGFyZXMuCkBAIC0zMDcsOSArMzEwLDkgQEAKICNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAogI2lmZGVmIENPTkZJR19VU0VSX1NDSEVECiAjIGRlZmluZSBJTklUX1RBU0tfR1JPVVBfTE9BRAkoMipOSUNFXzBfTE9BRCkKLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1VTRVJfU0NIRUQgKi8KICMgZGVmaW5lIElOSVRfVEFTS19HUk9VUF9MT0FECU5JQ0VfMF9MT0FECi0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfVVNFUl9TQ0hFRCAqLwogCiAvKgogICogQSB3ZWlnaHQgb2YgMCBvciAxIGNhbiBjYXVzZSBhcml0aG1ldGljcyBwcm9ibGVtcy4KQEAgLTM2Myw2ICszNjYsMTAgQEAKICNlbHNlCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfdGFza19ycShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHVuc2lnbmVkIGludCBjcHUpIHsgfQorc3RhdGljIGlubGluZSBzdHJ1Y3QgdGFza19ncm91cCAqdGFza19ncm91cChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCit7CisJcmV0dXJuIE5VTEw7Cit9CiAKICNlbmRpZgkvKiBDT05GSUdfR1JPVVBfU0NIRUQgKi8KIApAQCAtMzczLDYgKzM4MCw3IEBACiAKIAl1NjQgZXhlY19jbG9jazsKIAl1NjQgbWluX3ZydW50aW1lOworCXU2NCBwYWlyX3N0YXJ0OwogCiAJc3RydWN0IHJiX3Jvb3QgdGFza3NfdGltZWxpbmU7CiAJc3RydWN0IHJiX25vZGUgKnJiX2xlZnRtb3N0OwpAQCAtNDAxLDYgKzQwOSwzMSBAQAogCSAqLwogCXN0cnVjdCBsaXN0X2hlYWQgbGVhZl9jZnNfcnFfbGlzdDsKIAlzdHJ1Y3QgdGFza19ncm91cCAqdGc7CS8qIGdyb3VwIHRoYXQgIm93bnMiIHRoaXMgcnVucXVldWUgKi8KKworI2lmZGVmIENPTkZJR19TTVAKKwkvKgorCSAqIHRoZSBwYXJ0IG9mIGxvYWQud2VpZ2h0IGNvbnRyaWJ1dGVkIGJ5IHRhc2tzCisJICovCisJdW5zaWduZWQgbG9uZyB0YXNrX3dlaWdodDsKKworCS8qCisJICogICBoX2xvYWQgPSB3ZWlnaHQgKiBmKHRnKQorCSAqCisJICogV2hlcmUgZih0ZykgaXMgdGhlIHJlY3Vyc2l2ZSB3ZWlnaHQgZnJhY3Rpb24gYXNzaWduZWQgdG8KKwkgKiB0aGlzIGdyb3VwLgorCSAqLworCXVuc2lnbmVkIGxvbmcgaF9sb2FkOworCisJLyoKKwkgKiB0aGlzIGNwdSdzIHBhcnQgb2YgdGctPnNoYXJlcworCSAqLworCXVuc2lnbmVkIGxvbmcgc2hhcmVzOworCisJLyoKKwkgKiBsb2FkLndlaWdodCBhdCB0aGUgdGltZSB3ZSBzZXQgc2hhcmVzCisJICovCisJdW5zaWduZWQgbG9uZyBycV93ZWlnaHQ7CisjZW5kaWYKICNlbmRpZgogfTsKIApAQCAtNDUyLDYgKzQ4NSw5IEBACiAJICovCiAJY3B1bWFza190IHJ0b19tYXNrOwogCWF0b21pY190IHJ0b19jb3VudDsKKyNpZmRlZiBDT05GSUdfU01QCisJc3RydWN0IGNwdXByaSBjcHVwcmk7CisjZW5kaWYKIH07CiAKIC8qCkBAIC01MjYsNiArNTYyLDkgQEAKIAlpbnQgcHVzaF9jcHU7CiAJLyogY3B1IG9mIHRoaXMgcnVucXVldWU6ICovCiAJaW50IGNwdTsKKwlpbnQgb25saW5lOworCisJdW5zaWduZWQgbG9uZyBhdmdfbG9hZF9wZXJfdGFzazsKIAogCXN0cnVjdCB0YXNrX3N0cnVjdCAqbWlncmF0aW9uX3RocmVhZDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG1pZ3JhdGlvbl9xdWV1ZTsKQEAgLTYwNyw2ICs2NDYsMjQgQEAKICMgZGVmaW5lIGNvbnN0X2RlYnVnIHN0YXRpYyBjb25zdAogI2VuZGlmCiAKKy8qKgorICogcnVucXVldWVfaXNfbG9ja2VkCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGNwdSBydW5xdWV1ZSBpcyBsb2NrZWQuCisgKiBUaGlzIGludGVyZmFjZSBhbGxvd3MgcHJpbnRrIHRvIGJlIGNhbGxlZCB3aXRoIHRoZSBydW5xdWV1ZSBsb2NrCisgKiBoZWxkIGFuZCBrbm93IHdoZXRoZXIgb3Igbm90IGl0IGlzIE9LIHRvIHdha2UgdXAgdGhlIGtsb2dkLgorICovCitpbnQgcnVucXVldWVfaXNfbG9ja2VkKHZvaWQpCit7CisJaW50IGNwdSA9IGdldF9jcHUoKTsKKwlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGNwdSk7CisJaW50IHJldDsKKworCXJldCA9IHNwaW5faXNfbG9ja2VkKCZycS0+bG9jayk7CisJcHV0X2NwdSgpOworCXJldHVybiByZXQ7Cit9CisKIC8qCiAgKiBEZWJ1Z2dpbmc6IHZhcmlvdXMgZmVhdHVyZSBiaXRzCiAgKi8KQEAgLTc0OSw2ICs4MDYsMTIgQEAKIGNvbnN0X2RlYnVnIHVuc2lnbmVkIGludCBzeXNjdGxfc2NoZWRfbnJfbWlncmF0ZSA9IDMyOwogCiAvKgorICogcmF0ZWxpbWl0IGZvciB1cGRhdGluZyB0aGUgZ3JvdXAgc2hhcmVzLgorICogZGVmYXVsdDogMC41bXMKKyAqLworY29uc3RfZGVidWcgdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF9zaGFyZXNfcmF0ZWxpbWl0ID0gNTAwMDAwOworCisvKgogICogcGVyaW9kIG92ZXIgd2hpY2ggd2UgbWVhc3VyZSAtcnQgdGFzayBjcHUgdXNhZ2UgaW4gdXMuCiAgKiBkZWZhdWx0OiAxcwogICovCkBAIC03NzUsODIgKzgzOCw2IEBACiAJcmV0dXJuICh1NjQpc3lzY3RsX3NjaGVkX3J0X3J1bnRpbWUgKiBOU0VDX1BFUl9VU0VDOwogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgdGltZV9zeW5jX3RocmVzaCA9IDEwMDAwMDsKLQotc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcgbG9uZywgdGltZV9vZmZzZXQpOwotc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcgbG9uZywgcHJldl9jcHVfdGltZSk7Ci0KLS8qCi0gKiBHbG9iYWwgbG9jayB3aGljaCB3ZSB0YWtlIGV2ZXJ5IG5vdyBhbmQgdGhlbiB0byBzeW5jaHJvbml6ZQotICogdGhlIENQVXMgdGltZS4gVGhpcyBtZXRob2QgaXMgbm90IHdhcnAtc2FmZSwgYnV0IGl0J3MgZ29vZAotICogZW5vdWdoIHRvIHN5bmNocm9uaXplIHNsb3dseSBkaXZlcmdpbmcgdGltZSBzb3VyY2VzIGFuZCB0aHVzCi0gKiBpdCdzIGdvb2QgZW5vdWdoIGZvciB0cmFjaW5nOgotICovCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRpbWVfc3luY19sb2NrKTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcHJldl9nbG9iYWxfdGltZTsKLQotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3N5bmNfY3B1X2Nsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyB0aW1lLCBpbnQgY3B1KQotewotCS8qCi0JICogV2Ugd2FudCB0aGlzIGlubGluZWQsIHRvIG5vdCBnZXQgdHJhY2VyIGZ1bmN0aW9uIGNhbGxzCi0JICogaW4gdGhpcyBjcml0aWNhbCBzZWN0aW9uOgotCSAqLwotCXNwaW5fYWNxdWlyZSgmdGltZV9zeW5jX2xvY2suZGVwX21hcCwgMCwgMCwgX1RISVNfSVBfKTsKLQlfX3Jhd19zcGluX2xvY2soJnRpbWVfc3luY19sb2NrLnJhd19sb2NrKTsKLQotCWlmICh0aW1lIDwgcHJldl9nbG9iYWxfdGltZSkgewotCQlwZXJfY3B1KHRpbWVfb2Zmc2V0LCBjcHUpICs9IHByZXZfZ2xvYmFsX3RpbWUgLSB0aW1lOwotCQl0aW1lID0gcHJldl9nbG9iYWxfdGltZTsKLQl9IGVsc2UgewotCQlwcmV2X2dsb2JhbF90aW1lID0gdGltZTsKLQl9Ci0KLQlfX3Jhd19zcGluX3VubG9jaygmdGltZV9zeW5jX2xvY2sucmF3X2xvY2spOwotCXNwaW5fcmVsZWFzZSgmdGltZV9zeW5jX2xvY2suZGVwX21hcCwgMSwgX1RISVNfSVBfKTsKLQotCXJldHVybiB0aW1lOwotfQotCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIF9fY3B1X2Nsb2NrKGludCBjcHUpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIG5vdzsKLQotCS8qCi0JICogT25seSBjYWxsIHNjaGVkX2Nsb2NrKCkgaWYgdGhlIHNjaGVkdWxlciBoYXMgYWxyZWFkeSBiZWVuCi0JICogaW5pdGlhbGl6ZWQgKHNvbWUgY29kZSBtaWdodCBjYWxsIGNwdV9jbG9jaygpIHZlcnkgZWFybHkpOgotCSAqLwotCWlmICh1bmxpa2VseSghc2NoZWR1bGVyX3J1bm5pbmcpKQotCQlyZXR1cm4gMDsKLQotCW5vdyA9IHNjaGVkX2Nsb2NrX2NwdShjcHUpOwotCi0JcmV0dXJuIG5vdzsKLX0KLQotLyoKLSAqIEZvciBrZXJuZWwtaW50ZXJuYWwgdXNlOiBoaWdoLXNwZWVkIChidXQgc2xpZ2h0bHkgaW5jb3JyZWN0KSBwZXItY3B1Ci0gKiBjbG9jayBjb25zdHJ1Y3RlZCBmcm9tIHNjaGVkX2Nsb2NrKCk6Ci0gKi8KLXVuc2lnbmVkIGxvbmcgbG9uZyBjcHVfY2xvY2soaW50IGNwdSkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgcHJldl9jcHVfdGltZSwgdGltZSwgZGVsdGFfdGltZTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCXByZXZfY3B1X3RpbWUgPSBwZXJfY3B1KHByZXZfY3B1X3RpbWUsIGNwdSk7Ci0JdGltZSA9IF9fY3B1X2Nsb2NrKGNwdSkgKyBwZXJfY3B1KHRpbWVfb2Zmc2V0LCBjcHUpOwotCWRlbHRhX3RpbWUgPSB0aW1lLXByZXZfY3B1X3RpbWU7Ci0KLQlpZiAodW5saWtlbHkoZGVsdGFfdGltZSA+IHRpbWVfc3luY190aHJlc2gpKSB7Ci0JCXRpbWUgPSBfX3N5bmNfY3B1X2Nsb2NrKHRpbWUsIGNwdSk7Ci0JCXBlcl9jcHUocHJldl9jcHVfdGltZSwgY3B1KSA9IHRpbWU7Ci0JfQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQotCXJldHVybiB0aW1lOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoY3B1X2Nsb2NrKTsKLQogI2lmbmRlZiBwcmVwYXJlX2FyY2hfc3dpdGNoCiAjIGRlZmluZSBwcmVwYXJlX2FyY2hfc3dpdGNoKG5leHQpCWRvIHsgfSB3aGlsZSAoMCkKICNlbmRpZgpAQCAtMTMxMywxNSArMTMwMCwxNSBAQAogCWlmICghdHNrX2lzX3BvbGxpbmcocnEtPmlkbGUpKQogCQlzbXBfc2VuZF9yZXNjaGVkdWxlKGNwdSk7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfTk9fSFogKi8KIAotI2Vsc2UKKyNlbHNlIC8qICFDT05GSUdfU01QICovCiBzdGF0aWMgdm9pZCBfX3Jlc2NoZWRfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCB0aWZfYml0KQogewogCWFzc2VydF9zcGluX2xvY2tlZCgmdGFza19ycShwKS0+bG9jayk7CiAJc2V0X3Rza190aHJlYWRfZmxhZyhwLCB0aWZfYml0KTsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAogI2lmIEJJVFNfUEVSX0xPTkcgPT0gMzIKICMgZGVmaW5lIFdNVUxUX0NPTlNUCSh+MFVMKQpAQCAtMTMzNiw2ICsxMzIzLDkgQEAKICAqLwogI2RlZmluZSBTUlIoeCwgeSkgKCgoeCkgKyAoMVVMIDw8ICgoeSkgLSAxKSkpID4+ICh5KSkKIAorLyoKKyAqIGRlbHRhICo9IHdlaWdodCAvIGx3CisgKi8KIHN0YXRpYyB1bnNpZ25lZCBsb25nCiBjYWxjX2RlbHRhX21pbmUodW5zaWduZWQgbG9uZyBkZWx0YV9leGVjLCB1bnNpZ25lZCBsb25nIHdlaWdodCwKIAkJc3RydWN0IGxvYWRfd2VpZ2h0ICpsdykKQEAgLTEzNjMsMTIgKzEzNTMsNiBAQAogCXJldHVybiAodW5zaWduZWQgbG9uZyltaW4odG1wLCAodTY0KSh1bnNpZ25lZCBsb25nKUxPTkdfTUFYKTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCi1jYWxjX2RlbHRhX2ZhaXIodW5zaWduZWQgbG9uZyBkZWx0YV9leGVjLCBzdHJ1Y3QgbG9hZF93ZWlnaHQgKmx3KQotewotCXJldHVybiBjYWxjX2RlbHRhX21pbmUoZGVsdGFfZXhlYywgTklDRV8wX0xPQUQsIGx3KTsKLX0KLQogc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9sb2FkX2FkZChzdHJ1Y3QgbG9hZF93ZWlnaHQgKmx3LCB1bnNpZ25lZCBsb25nIGluYykKIHsKIAlsdy0+d2VpZ2h0ICs9IGluYzsKQEAgLTE0NzksMTggKzE0NjMsMjEyIEBACiAjaWZkZWYgQ09ORklHX1NNUAogc3RhdGljIHVuc2lnbmVkIGxvbmcgc291cmNlX2xvYWQoaW50IGNwdSwgaW50IHR5cGUpOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgdGFyZ2V0X2xvYWQoaW50IGNwdSwgaW50IHR5cGUpOwotc3RhdGljIHVuc2lnbmVkIGxvbmcgY3B1X2F2Z19sb2FkX3Blcl90YXNrKGludCBjcHUpOwogc3RhdGljIGludCB0YXNrX2hvdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHU2NCBub3csIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKTsKLSNlbHNlIC8qIENPTkZJR19TTVAgKi8KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY3B1X2F2Z19sb2FkX3Blcl90YXNrKGludCBjcHUpCit7CisJc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOworCisJaWYgKHJxLT5ucl9ydW5uaW5nKQorCQlycS0+YXZnX2xvYWRfcGVyX3Rhc2sgPSBycS0+bG9hZC53ZWlnaHQgLyBycS0+bnJfcnVubmluZzsKKworCXJldHVybiBycS0+YXZnX2xvYWRfcGVyX3Rhc2s7Cit9CisKKyNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAorCit0eXBlZGVmIHZvaWQgKCp0Z192aXNpdG9yKShzdHJ1Y3QgdGFza19ncm91cCAqLCBpbnQsIHN0cnVjdCBzY2hlZF9kb21haW4gKik7CisKKy8qCisgKiBJdGVyYXRlIHRoZSBmdWxsIHRyZWUsIGNhbGxpbmcgQGRvd24gd2hlbiBmaXJzdCBlbnRlcmluZyBhIG5vZGUgYW5kIEB1cCB3aGVuCisgKiBsZWF2aW5nIGl0IGZvciB0aGUgZmluYWwgdGltZS4KKyAqLworc3RhdGljIHZvaWQKK3dhbGtfdGdfdHJlZSh0Z192aXNpdG9yIGRvd24sIHRnX3Zpc2l0b3IgdXAsIGludCBjcHUsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQoreworCXN0cnVjdCB0YXNrX2dyb3VwICpwYXJlbnQsICpjaGlsZDsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlwYXJlbnQgPSAmcm9vdF90YXNrX2dyb3VwOworZG93bjoKKwkoKmRvd24pKHBhcmVudCwgY3B1LCBzZCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoY2hpbGQsICZwYXJlbnQtPmNoaWxkcmVuLCBzaWJsaW5ncykgeworCQlwYXJlbnQgPSBjaGlsZDsKKwkJZ290byBkb3duOworCit1cDoKKwkJY29udGludWU7CisJfQorCSgqdXApKHBhcmVudCwgY3B1LCBzZCk7CisKKwljaGlsZCA9IHBhcmVudDsKKwlwYXJlbnQgPSBwYXJlbnQtPnBhcmVudDsKKwlpZiAocGFyZW50KQorCQlnb3RvIHVwOworCXJjdV9yZWFkX3VubG9jaygpOworfQorCitzdGF0aWMgdm9pZCBfX3NldF9zZV9zaGFyZXMoc3RydWN0IHNjaGVkX2VudGl0eSAqc2UsIHVuc2lnbmVkIGxvbmcgc2hhcmVzKTsKKworLyoKKyAqIENhbGN1bGF0ZSBhbmQgc2V0IHRoZSBjcHUncyBncm91cCBzaGFyZXMuCisgKi8KK3N0YXRpYyB2b2lkCitfX3VwZGF0ZV9ncm91cF9zaGFyZXNfY3B1KHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSwKKwkJCSAgdW5zaWduZWQgbG9uZyBzZF9zaGFyZXMsIHVuc2lnbmVkIGxvbmcgc2RfcnFfd2VpZ2h0KQoreworCWludCBib29zdCA9IDA7CisJdW5zaWduZWQgbG9uZyBzaGFyZXM7CisJdW5zaWduZWQgbG9uZyBycV93ZWlnaHQ7CisKKwlpZiAoIXRnLT5zZVtjcHVdKQorCQlyZXR1cm47CisKKwlycV93ZWlnaHQgPSB0Zy0+Y2ZzX3JxW2NwdV0tPmxvYWQud2VpZ2h0OworCisJLyoKKwkgKiBJZiB0aGVyZSBhcmUgY3VycmVudGx5IG5vIHRhc2tzIG9uIHRoZSBjcHUgcHJldGVuZCB0aGVyZSBpcyBvbmUgb2YKKwkgKiBhdmVyYWdlIGxvYWQgc28gdGhhdCB3aGVuIGEgbmV3IHRhc2sgZ2V0cyB0byBydW4gaGVyZSBpdCB3aWxsIG5vdAorCSAqIGdldCBkZWxheWVkIGJ5IGdyb3VwIHN0YXJ2YXRpb24uCisJICovCisJaWYgKCFycV93ZWlnaHQpIHsKKwkJYm9vc3QgPSAxOworCQlycV93ZWlnaHQgPSBOSUNFXzBfTE9BRDsKKwl9CisKKwlpZiAodW5saWtlbHkocnFfd2VpZ2h0ID4gc2RfcnFfd2VpZ2h0KSkKKwkJcnFfd2VpZ2h0ID0gc2RfcnFfd2VpZ2h0OworCisJLyoKKwkgKiAgICAgICAgICAgXFN1bSBzaGFyZXMgKiBycV93ZWlnaHQKKwkgKiBzaGFyZXMgPSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgKiAgICAgICAgICAgICAgIFxTdW0gcnFfd2VpZ2h0CisJICoKKwkgKi8KKwlzaGFyZXMgPSAoc2Rfc2hhcmVzICogcnFfd2VpZ2h0KSAvIChzZF9ycV93ZWlnaHQgKyAxKTsKKworCS8qCisJICogcmVjb3JkIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHNoYXJlcywgbm90IHRoZSBib29zdGVkIGFtb3VudC4KKwkgKi8KKwl0Zy0+Y2ZzX3JxW2NwdV0tPnNoYXJlcyA9IGJvb3N0ID8gMCA6IHNoYXJlczsKKwl0Zy0+Y2ZzX3JxW2NwdV0tPnJxX3dlaWdodCA9IHJxX3dlaWdodDsKKworCWlmIChzaGFyZXMgPCBNSU5fU0hBUkVTKQorCQlzaGFyZXMgPSBNSU5fU0hBUkVTOworCWVsc2UgaWYgKHNoYXJlcyA+IE1BWF9TSEFSRVMpCisJCXNoYXJlcyA9IE1BWF9TSEFSRVM7CisKKwlfX3NldF9zZV9zaGFyZXModGctPnNlW2NwdV0sIHNoYXJlcyk7Cit9CisKKy8qCisgKiBSZS1jb21wdXRlIHRoZSB0YXNrIGdyb3VwIHRoZWlyIHBlciBjcHUgc2hhcmVzIG92ZXIgdGhlIGdpdmVuIGRvbWFpbi4KKyAqIFRoaXMgbmVlZHMgdG8gYmUgZG9uZSBpbiBhIGJvdHRvbS11cCBmYXNoaW9uIGJlY2F1c2UgdGhlIHJxIHdlaWdodCBvZiBhCisgKiBwYXJlbnQgZ3JvdXAgZGVwZW5kcyBvbiB0aGUgc2hhcmVzIG9mIGl0cyBjaGlsZCBncm91cHMuCisgKi8KK3N0YXRpYyB2b2lkCit0Z19zaGFyZXNfdXAoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBpbnQgY3B1LCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKKwl1bnNpZ25lZCBsb25nIHJxX3dlaWdodCA9IDA7CisJdW5zaWduZWQgbG9uZyBzaGFyZXMgPSAwOworCWludCBpOworCisJZm9yX2VhY2hfY3B1X21hc2soaSwgc2QtPnNwYW4pIHsKKwkJcnFfd2VpZ2h0ICs9IHRnLT5jZnNfcnFbaV0tPmxvYWQud2VpZ2h0OworCQlzaGFyZXMgKz0gdGctPmNmc19ycVtpXS0+c2hhcmVzOworCX0KKworCWlmICgoIXNoYXJlcyAmJiBycV93ZWlnaHQpIHx8IHNoYXJlcyA+IHRnLT5zaGFyZXMpCisJCXNoYXJlcyA9IHRnLT5zaGFyZXM7CisKKwlpZiAoIXNkLT5wYXJlbnQgfHwgIShzZC0+cGFyZW50LT5mbGFncyAmIFNEX0xPQURfQkFMQU5DRSkpCisJCXNoYXJlcyA9IHRnLT5zaGFyZXM7CisKKwlpZiAoIXJxX3dlaWdodCkKKwkJcnFfd2VpZ2h0ID0gY3B1c193ZWlnaHQoc2QtPnNwYW4pICogTklDRV8wX0xPQUQ7CisKKwlmb3JfZWFjaF9jcHVfbWFzayhpLCBzZC0+c3BhbikgeworCQlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGkpOworCQl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZycS0+bG9jaywgZmxhZ3MpOworCQlfX3VwZGF0ZV9ncm91cF9zaGFyZXNfY3B1KHRnLCBpLCBzaGFyZXMsIHJxX3dlaWdodCk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJxLT5sb2NrLCBmbGFncyk7CisJfQorfQorCisvKgorICogQ29tcHV0ZSB0aGUgY3B1J3MgaGllcmFyY2hpY2FsIGxvYWQgZmFjdG9yIGZvciBlYWNoIHRhc2sgZ3JvdXAuCisgKiBUaGlzIG5lZWRzIHRvIGJlIGRvbmUgaW4gYSB0b3AtZG93biBmYXNoaW9uIGJlY2F1c2UgdGhlIGxvYWQgb2YgYSBjaGlsZAorICogZ3JvdXAgaXMgYSBmcmFjdGlvbiBvZiBpdHMgcGFyZW50cyBsb2FkLgorICovCitzdGF0aWMgdm9pZAordGdfbG9hZF9kb3duKHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSwgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCit7CisJdW5zaWduZWQgbG9uZyBsb2FkOworCisJaWYgKCF0Zy0+cGFyZW50KSB7CisJCWxvYWQgPSBjcHVfcnEoY3B1KS0+bG9hZC53ZWlnaHQ7CisJfSBlbHNlIHsKKwkJbG9hZCA9IHRnLT5wYXJlbnQtPmNmc19ycVtjcHVdLT5oX2xvYWQ7CisJCWxvYWQgKj0gdGctPmNmc19ycVtjcHVdLT5zaGFyZXM7CisJCWxvYWQgLz0gdGctPnBhcmVudC0+Y2ZzX3JxW2NwdV0tPmxvYWQud2VpZ2h0ICsgMTsKKwl9CisKKwl0Zy0+Y2ZzX3JxW2NwdV0tPmhfbG9hZCA9IGxvYWQ7Cit9CisKK3N0YXRpYyB2b2lkCit0Z19ub3Aoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBpbnQgY3B1LCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKK30KKworc3RhdGljIHZvaWQgdXBkYXRlX3NoYXJlcyhzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKKwl1NjQgbm93ID0gY3B1X2Nsb2NrKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpOworCXM2NCBlbGFwc2VkID0gbm93IC0gc2QtPmxhc3RfdXBkYXRlOworCisJaWYgKGVsYXBzZWQgPj0gKHM2NCkodTY0KXN5c2N0bF9zY2hlZF9zaGFyZXNfcmF0ZWxpbWl0KSB7CisJCXNkLT5sYXN0X3VwZGF0ZSA9IG5vdzsKKwkJd2Fsa190Z190cmVlKHRnX25vcCwgdGdfc2hhcmVzX3VwLCAwLCBzZCk7CisJfQorfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfc2hhcmVzX2xvY2tlZChzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKKwlzcGluX3VubG9jaygmcnEtPmxvY2spOworCXVwZGF0ZV9zaGFyZXMoc2QpOworCXNwaW5fbG9jaygmcnEtPmxvY2spOworfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfaF9sb2FkKGludCBjcHUpCit7CisJd2Fsa190Z190cmVlKHRnX2xvYWRfZG93biwgdGdfbm9wLCBjcHUsIE5VTEwpOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlX3NoYXJlcyhzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9zaGFyZXNfbG9ja2VkKHN0cnVjdCBycSAqcnEsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQoreworfQorCisjZW5kaWYKKworI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAogc3RhdGljIHZvaWQgY2ZzX3JxX3NldF9zaGFyZXMoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCB1bnNpZ25lZCBsb25nIHNoYXJlcykKIHsKKyNpZmRlZiBDT05GSUdfU01QCisJY2ZzX3JxLT5zaGFyZXMgPSBzaGFyZXM7CisjZW5kaWYKIH0KICNlbmRpZgogCi0jZW5kaWYgLyogQ09ORklHX1NNUCAqLwotCiAjaW5jbHVkZSAic2NoZWRfc3RhdHMuaCIKICNpbmNsdWRlICJzY2hlZF9pZGxldGFzay5jIgogI2luY2x1ZGUgInNjaGVkX2ZhaXIuYyIKQEAgLTE1MDAsMjcgKzE2NzgsMTcgQEAKICNlbmRpZgogCiAjZGVmaW5lIHNjaGVkX2NsYXNzX2hpZ2hlc3QgKCZydF9zY2hlZF9jbGFzcykKKyNkZWZpbmUgZm9yX2VhY2hfY2xhc3MoY2xhc3MpIFwKKyAgIGZvciAoY2xhc3MgPSBzY2hlZF9jbGFzc19oaWdoZXN0OyBjbGFzczsgY2xhc3MgPSBjbGFzcy0+bmV4dCkKIAotc3RhdGljIGlubGluZSB2b2lkIGluY19sb2FkKHN0cnVjdCBycSAqcnEsIGNvbnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQl1cGRhdGVfbG9hZF9hZGQoJnJxLT5sb2FkLCBwLT5zZS5sb2FkLndlaWdodCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkZWNfbG9hZChzdHJ1Y3QgcnEgKnJxLCBjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JdXBkYXRlX2xvYWRfc3ViKCZycS0+bG9hZCwgcC0+c2UubG9hZC53ZWlnaHQpOwotfQotCi1zdGF0aWMgdm9pZCBpbmNfbnJfcnVubmluZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBycSAqcnEpCitzdGF0aWMgdm9pZCBpbmNfbnJfcnVubmluZyhzdHJ1Y3QgcnEgKnJxKQogewogCXJxLT5ucl9ydW5uaW5nKys7Ci0JaW5jX2xvYWQocnEsIHApOwogfQogCi1zdGF0aWMgdm9pZCBkZWNfbnJfcnVubmluZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBycSAqcnEpCitzdGF0aWMgdm9pZCBkZWNfbnJfcnVubmluZyhzdHJ1Y3QgcnEgKnJxKQogewogCXJxLT5ucl9ydW5uaW5nLS07Ci0JZGVjX2xvYWQocnEsIHApOwogfQogCiBzdGF0aWMgdm9pZCBzZXRfbG9hZF93ZWlnaHQoc3RydWN0IHRhc2tfc3RydWN0ICpwKQpAQCAtMTU0NCw2ICsxNzEyLDEyIEBACiAJcC0+c2UubG9hZC5pbnZfd2VpZ2h0ID0gcHJpb190b193bXVsdFtwLT5zdGF0aWNfcHJpbyAtIE1BWF9SVF9QUklPXTsKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlX2F2Zyh1NjQgKmF2ZywgdTY0IHNhbXBsZSkKK3sKKwlzNjQgZGlmZiA9IHNhbXBsZSAtICphdmc7CisJKmF2ZyArPSBkaWZmID4+IDM7Cit9CisKIHN0YXRpYyB2b2lkIGVucXVldWVfdGFzayhzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCB3YWtldXApCiB7CiAJc2NoZWRfaW5mb19xdWV1ZWQocCk7CkBAIC0xNTUzLDYgKzE3MjcsMTMgQEAKIAogc3RhdGljIHZvaWQgZGVxdWV1ZV90YXNrKHN0cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IHNsZWVwKQogeworCWlmIChzbGVlcCAmJiBwLT5zZS5sYXN0X3dha2V1cCkgeworCQl1cGRhdGVfYXZnKCZwLT5zZS5hdmdfb3ZlcmxhcCwKKwkJCSAgIHAtPnNlLnN1bV9leGVjX3J1bnRpbWUgLSBwLT5zZS5sYXN0X3dha2V1cCk7CisJCXAtPnNlLmxhc3Rfd2FrZXVwID0gMDsKKwl9CisKKwlzY2hlZF9pbmZvX2RlcXVldWVkKHApOwogCXAtPnNjaGVkX2NsYXNzLT5kZXF1ZXVlX3Rhc2socnEsIHAsIHNsZWVwKTsKIAlwLT5zZS5vbl9ycSA9IDA7CiB9CkBAIC0xNjEyLDcgKzE3OTMsNyBAQAogCQlycS0+bnJfdW5pbnRlcnJ1cHRpYmxlLS07CiAKIAllbnF1ZXVlX3Rhc2socnEsIHAsIHdha2V1cCk7Ci0JaW5jX25yX3J1bm5pbmcocCwgcnEpOworCWluY19ucl9ydW5uaW5nKHJxKTsKIH0KIAogLyoKQEAgLTE2MjQsNyArMTgwNSw3IEBACiAJCXJxLT5ucl91bmludGVycnVwdGlibGUrKzsKIAogCWRlcXVldWVfdGFzayhycSwgcCwgc2xlZXApOwotCWRlY19ucl9ydW5uaW5nKHAsIHJxKTsKKwlkZWNfbnJfcnVubmluZyhycSk7CiB9CiAKIC8qKgpAQCAtMTYzNiwxMiArMTgxNyw2IEBACiAJcmV0dXJuIGNwdV9jdXJyKHRhc2tfY3B1KHApKSA9PSBwOwogfQogCi0vKiBVc2VkIGluc3RlYWQgb2Ygc291cmNlX2xvYWQgd2hlbiB3ZSBrbm93IHRoZSB0eXBlID09IDAgKi8KLXVuc2lnbmVkIGxvbmcgd2VpZ2h0ZWRfY3B1bG9hZChjb25zdCBpbnQgY3B1KQotewotCXJldHVybiBjcHVfcnEoY3B1KS0+bG9hZC53ZWlnaHQ7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3NldF90YXNrX2NwdShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHVuc2lnbmVkIGludCBjcHUpCiB7CiAJc2V0X3Rhc2tfcnEocCwgY3B1KTsKQEAgLTE2NzAsNiArMTg0NSwxMiBAQAogCiAjaWZkZWYgQ09ORklHX1NNUAogCisvKiBVc2VkIGluc3RlYWQgb2Ygc291cmNlX2xvYWQgd2hlbiB3ZSBrbm93IHRoZSB0eXBlID09IDAgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIHdlaWdodGVkX2NwdWxvYWQoY29uc3QgaW50IGNwdSkKK3sKKwlyZXR1cm4gY3B1X3JxKGNwdSktPmxvYWQud2VpZ2h0OworfQorCiAvKgogICogSXMgdGhpcyB0YXNrIGxpa2VseSBjYWNoZS1ob3Q6CiAgKi8KQEAgLTE4ODAsNyArMjA2MSw3IEBACiAJc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOwogCXVuc2lnbmVkIGxvbmcgdG90YWwgPSB3ZWlnaHRlZF9jcHVsb2FkKGNwdSk7CiAKLQlpZiAodHlwZSA9PSAwKQorCWlmICh0eXBlID09IDAgfHwgIXNjaGVkX2ZlYXQoTEJfQklBUykpCiAJCXJldHVybiB0b3RhbDsKIAogCXJldHVybiBtaW4ocnEtPmNwdV9sb2FkW3R5cGUtMV0sIHRvdGFsKTsKQEAgLTE4OTUsMjUgKzIwNzYsMTMgQEAKIAlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGNwdSk7CiAJdW5zaWduZWQgbG9uZyB0b3RhbCA9IHdlaWdodGVkX2NwdWxvYWQoY3B1KTsKIAotCWlmICh0eXBlID09IDApCisJaWYgKHR5cGUgPT0gMCB8fCAhc2NoZWRfZmVhdChMQl9CSUFTKSkKIAkJcmV0dXJuIHRvdGFsOwogCiAJcmV0dXJuIG1heChycS0+Y3B1X2xvYWRbdHlwZS0xXSwgdG90YWwpOwogfQogCiAvKgotICogUmV0dXJuIHRoZSBhdmVyYWdlIGxvYWQgcGVyIHRhc2sgb24gdGhlIGNwdSdzIHJ1biBxdWV1ZQotICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBjcHVfYXZnX2xvYWRfcGVyX3Rhc2soaW50IGNwdSkKLXsKLQlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGNwdSk7Ci0JdW5zaWduZWQgbG9uZyB0b3RhbCA9IHdlaWdodGVkX2NwdWxvYWQoY3B1KTsKLQl1bnNpZ25lZCBsb25nIG4gPSBycS0+bnJfcnVubmluZzsKLQotCXJldHVybiBuID8gdG90YWwgLyBuIDogU0NIRURfTE9BRF9TQ0FMRTsKLX0KLQotLyoKICAqIGZpbmRfaWRsZXN0X2dyb3VwIGZpbmRzIGFuZCByZXR1cm5zIHRoZSBsZWFzdCBidXN5IENQVSBncm91cCB3aXRoaW4gdGhlCiAgKiBkb21haW4uCiAgKi8KQEAgLTIwMTksNiArMjE4OCw5IEBACiAJCQlzZCA9IHRtcDsKIAl9CiAKKwlpZiAoc2QpCisJCXVwZGF0ZV9zaGFyZXMoc2QpOworCiAJd2hpbGUgKHNkKSB7CiAJCWNwdW1hc2tfdCBzcGFuLCB0bXBtYXNrOwogCQlzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKmdyb3VwOwpAQCAtMjA4NSw2ICsyMjU3LDIyIEBACiAJaWYgKCFzY2hlZF9mZWF0KFNZTkNfV0FLRVVQUykpCiAJCXN5bmMgPSAwOwogCisjaWZkZWYgQ09ORklHX1NNUAorCWlmIChzY2hlZF9mZWF0KExCX1dBS0VVUF9VUERBVEUpKSB7CisJCXN0cnVjdCBzY2hlZF9kb21haW4gKnNkOworCisJCXRoaXNfY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKwkJY3B1ID0gdGFza19jcHUocCk7CisKKwkJZm9yX2VhY2hfZG9tYWluKHRoaXNfY3B1LCBzZCkgeworCQkJaWYgKGNwdV9pc3NldChjcHUsIHNkLT5zcGFuKSkgeworCQkJCXVwZGF0ZV9zaGFyZXMoc2QpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorI2VuZGlmCisKIAlzbXBfd21iKCk7CiAJcnEgPSB0YXNrX3JxX2xvY2socCwgJmZsYWdzKTsKIAlvbGRfc3RhdGUgPSBwLT5zdGF0ZTsKQEAgLTIxMzEsNyArMjMxOSw3IEBACiAJCQl9CiAJCX0KIAl9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfU0NIRURTVEFUUyAqLwogCiBvdXRfYWN0aXZhdGU6CiAjZW5kaWYgLyogQ09ORklHX1NNUCAqLwpAQCAtMjE0OSw2ICsyMzM3LDkgQEAKIAlzdWNjZXNzID0gMTsKIAogb3V0X3J1bm5pbmc6CisJdHJhY2VfbWFyayhrZXJuZWxfc2NoZWRfd2FrZXVwLAorCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJcC0+cGlkLCBwLT5zdGF0ZSwgcnEsIHAsIHJxLT5jdXJyKTsKIAljaGVja19wcmVlbXB0X2N1cnIocnEsIHApOwogCiAJcC0+c3RhdGUgPSBUQVNLX1JVTk5JTkc7CkBAIC0yMTU3LDYgKzIzNDgsOCBAQAogCQlwLT5zY2hlZF9jbGFzcy0+dGFza193YWtlX3VwKHJxLCBwKTsKICNlbmRpZgogb3V0OgorCWN1cnJlbnQtPnNlLmxhc3Rfd2FrZXVwID0gY3VycmVudC0+c2Uuc3VtX2V4ZWNfcnVudGltZTsKKwogCXRhc2tfcnFfdW5sb2NrKHJxLCAmZmxhZ3MpOwogCiAJcmV0dXJuIHN1Y2Nlc3M7CkBAIC0yMjc3LDggKzI0NzAsMTEgQEAKIAkJICogbWFuYWdlbWVudCAoaWYgYW55KToKIAkJICovCiAJCXAtPnNjaGVkX2NsYXNzLT50YXNrX25ldyhycSwgcCk7Ci0JCWluY19ucl9ydW5uaW5nKHAsIHJxKTsKKwkJaW5jX25yX3J1bm5pbmcocnEpOwogCX0KKwl0cmFjZV9tYXJrKGtlcm5lbF9zY2hlZF93YWtldXBfbmV3LAorCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJcC0+cGlkLCBwLT5zdGF0ZSwgcnEsIHAsIHJxLT5jdXJyKTsKIAljaGVja19wcmVlbXB0X2N1cnIocnEsIHApOwogI2lmZGVmIENPTkZJR19TTVAKIAlpZiAocC0+c2NoZWRfY2xhc3MtPnRhc2tfd2FrZV91cCkKQEAgLTIzMzEsNyArMjUyNyw3IEBACiAJCW5vdGlmaWVyLT5vcHMtPnNjaGVkX291dChub3RpZmllciwgbmV4dCk7CiB9CiAKLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1BSRUVNUFRfTk9USUZJRVJTICovCiAKIHN0YXRpYyB2b2lkIGZpcmVfc2NoZWRfaW5fcHJlZW1wdF9ub3RpZmllcnMoc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyKQogewpAQCAtMjM0Myw3ICsyNTM5LDcgQEAKIHsKIH0KIAotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1BSRUVNUFRfTk9USUZJRVJTICovCiAKIC8qKgogICogcHJlcGFyZV90YXNrX3N3aXRjaCAtIHByZXBhcmUgdG8gc3dpdGNoIHRhc2tzCkBAIC0yNDUxLDYgKzI2NDcsMTEgQEAKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSwgKm9sZG1tOwogCiAJcHJlcGFyZV90YXNrX3N3aXRjaChycSwgcHJldiwgbmV4dCk7CisJdHJhY2VfbWFyayhrZXJuZWxfc2NoZWRfc2NoZWR1bGUsCisJCSJwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAiCisJCSIjIyBycSAlcCBwcmV2ICVwIG5leHQgJXAiLAorCQlwcmV2LT5waWQsIG5leHQtPnBpZCwgcHJldi0+c3RhdGUsCisJCXJxLCBwcmV2LCBuZXh0KTsKIAltbSA9IG5leHQtPm1tOwogCW9sZG1tID0gcHJldi0+YWN0aXZlX21tOwogCS8qCkBAIC0yNzg1LDcgKzI5ODYsNyBAQAogCSAgICAgIGVudW0gY3B1X2lkbGVfdHlwZSBpZGxlLCBpbnQgKmFsbF9waW5uZWQsCiAJICAgICAgaW50ICp0aGlzX2Jlc3RfcHJpbywgc3RydWN0IHJxX2l0ZXJhdG9yICppdGVyYXRvcikKIHsKLQlpbnQgbG9vcHMgPSAwLCBwdWxsZWQgPSAwLCBwaW5uZWQgPSAwLCBza2lwX2Zvcl9sb2FkOworCWludCBsb29wcyA9IDAsIHB1bGxlZCA9IDAsIHBpbm5lZCA9IDA7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpwOwogCWxvbmcgcmVtX2xvYWRfbW92ZSA9IG1heF9sb2FkX21vdmU7CiAKQEAgLTI4MDEsMTQgKzMwMDIsOCBAQAogbmV4dDoKIAlpZiAoIXAgfHwgbG9vcHMrKyA+IHN5c2N0bF9zY2hlZF9ucl9taWdyYXRlKQogCQlnb3RvIG91dDsKLQkvKgotCSAqIFRvIGhlbHAgZGlzdHJpYnV0ZSBoaWdoIHByaW9yaXR5IHRhc2tzIGFjcm9zcyBDUFVzIHdlIGRvbid0Ci0JICogc2tpcCBhIHRhc2sgaWYgaXQgd2lsbCBiZSB0aGUgaGlnaGVzdCBwcmlvcml0eSB0YXNrIChpLmUuIHNtYWxsZXN0Ci0JICogcHJpbyB2YWx1ZSkgb24gaXRzIG5ldyBxdWV1ZSByZWdhcmRsZXNzIG9mIGl0cyBsb2FkIHdlaWdodAotCSAqLwotCXNraXBfZm9yX2xvYWQgPSAocC0+c2UubG9hZC53ZWlnaHQgPj4gMSkgPiByZW1fbG9hZF9tb3ZlICsKLQkJCQkJCQkgU0NIRURfTE9BRF9TQ0FMRV9GVVpaOwotCWlmICgoc2tpcF9mb3JfbG9hZCAmJiBwLT5wcmlvID49ICp0aGlzX2Jlc3RfcHJpbykgfHwKKworCWlmICgocC0+c2UubG9hZC53ZWlnaHQgPj4gMSkgPiByZW1fbG9hZF9tb3ZlIHx8CiAJICAgICFjYW5fbWlncmF0ZV90YXNrKHAsIGJ1c2llc3QsIHRoaXNfY3B1LCBzZCwgaWRsZSwgJnBpbm5lZCkpIHsKIAkJcCA9IGl0ZXJhdG9yLT5uZXh0KGl0ZXJhdG9yLT5hcmcpOwogCQlnb3RvIG5leHQ7CkBAIC0yODYzLDYgKzMwNTgsMTAgQEAKIAkJCQltYXhfbG9hZF9tb3ZlIC0gdG90YWxfbG9hZF9tb3ZlZCwKIAkJCQlzZCwgaWRsZSwgYWxsX3Bpbm5lZCwgJnRoaXNfYmVzdF9wcmlvKTsKIAkJY2xhc3MgPSBjbGFzcy0+bmV4dDsKKworCQlpZiAoaWRsZSA9PSBDUFVfTkVXTFlfSURMRSAmJiB0aGlzX3JxLT5ucl9ydW5uaW5nKQorCQkJYnJlYWs7CisKIAl9IHdoaWxlIChjbGFzcyAmJiBtYXhfbG9hZF9tb3ZlID4gdG90YWxfbG9hZF9tb3ZlZCk7CiAKIAlyZXR1cm4gdG90YWxfbG9hZF9tb3ZlZCA+IDA7CkBAIC0yOTM5LDYgKzMxMzgsNyBAQAogCW1heF9sb2FkID0gdGhpc19sb2FkID0gdG90YWxfbG9hZCA9IHRvdGFsX3B3ciA9IDA7CiAJYnVzaWVzdF9sb2FkX3Blcl90YXNrID0gYnVzaWVzdF9ucl9ydW5uaW5nID0gMDsKIAl0aGlzX2xvYWRfcGVyX3Rhc2sgPSB0aGlzX25yX3J1bm5pbmcgPSAwOworCiAJaWYgKGlkbGUgPT0gQ1BVX05PVF9JRExFKQogCQlsb2FkX2lkeCA9IHNkLT5idXN5X2lkeDsKIAllbHNlIGlmIChpZGxlID09IENQVV9ORVdMWV9JRExFKQpAQCAtMjk1Myw2ICszMTUzLDggQEAKIAkJaW50IF9fZ3JvdXBfaW1iID0gMDsKIAkJdW5zaWduZWQgaW50IGJhbGFuY2VfY3B1ID0gLTEsIGZpcnN0X2lkbGVfY3B1ID0gMDsKIAkJdW5zaWduZWQgbG9uZyBzdW1fbnJfcnVubmluZywgc3VtX3dlaWdodGVkX2xvYWQ7CisJCXVuc2lnbmVkIGxvbmcgc3VtX2F2Z19sb2FkX3Blcl90YXNrOworCQl1bnNpZ25lZCBsb25nIGF2Z19sb2FkX3Blcl90YXNrOwogCiAJCWxvY2FsX2dyb3VwID0gY3B1X2lzc2V0KHRoaXNfY3B1LCBncm91cC0+Y3B1bWFzayk7CiAKQEAgLTI5NjEsNiArMzE2Myw4IEBACiAKIAkJLyogVGFsbHkgdXAgdGhlIGxvYWQgb2YgYWxsIENQVXMgaW4gdGhlIGdyb3VwICovCiAJCXN1bV93ZWlnaHRlZF9sb2FkID0gc3VtX25yX3J1bm5pbmcgPSBhdmdfbG9hZCA9IDA7CisJCXN1bV9hdmdfbG9hZF9wZXJfdGFzayA9IGF2Z19sb2FkX3Blcl90YXNrID0gMDsKKwogCQltYXhfY3B1X2xvYWQgPSAwOwogCQltaW5fY3B1X2xvYWQgPSB+MFVMOwogCkBAIC0yOTk0LDYgKzMxOTgsOCBAQAogCQkJYXZnX2xvYWQgKz0gbG9hZDsKIAkJCXN1bV9ucl9ydW5uaW5nICs9IHJxLT5ucl9ydW5uaW5nOwogCQkJc3VtX3dlaWdodGVkX2xvYWQgKz0gd2VpZ2h0ZWRfY3B1bG9hZChpKTsKKworCQkJc3VtX2F2Z19sb2FkX3Blcl90YXNrICs9IGNwdV9hdmdfbG9hZF9wZXJfdGFzayhpKTsKIAkJfQogCiAJCS8qCkBAIC0zMDE1LDcgKzMyMjEsMjAgQEAKIAkJYXZnX2xvYWQgPSBzZ19kaXZfY3B1X3Bvd2VyKGdyb3VwLAogCQkJCWF2Z19sb2FkICogU0NIRURfTE9BRF9TQ0FMRSk7CiAKLQkJaWYgKChtYXhfY3B1X2xvYWQgLSBtaW5fY3B1X2xvYWQpID4gU0NIRURfTE9BRF9TQ0FMRSkKKworCQkvKgorCQkgKiBDb25zaWRlciB0aGUgZ3JvdXAgdW5iYWxhbmNlZCB3aGVuIHRoZSBpbWJhbGFuY2UgaXMgbGFyZ2VyCisJCSAqIHRoYW4gdGhlIGF2ZXJhZ2Ugd2VpZ2h0IG9mIHR3byB0YXNrcy4KKwkJICoKKwkJICogQVBaOiB3aXRoIGNncm91cCB0aGUgYXZnIHRhc2sgd2VpZ2h0IGNhbiB2YXJ5IHdpbGRseSBhbmQKKwkJICogICAgICBtaWdodCBub3QgYmUgYSBzdWl0YWJsZSBudW1iZXIgLSBzaG91bGQgd2Uga2VlcCBhCisJCSAqICAgICAgbm9ybWFsaXplZCBucl9ydW5uaW5nIG51bWJlciBzb21ld2hlcmUgdGhhdCBuZWdhdGVzCisJCSAqICAgICAgdGhlIGhpZXJhcmNoeT8KKwkJICovCisJCWF2Z19sb2FkX3Blcl90YXNrID0gc2dfZGl2X2NwdV9wb3dlcihncm91cCwKKwkJCQlzdW1fYXZnX2xvYWRfcGVyX3Rhc2sgKiBTQ0hFRF9MT0FEX1NDQUxFKTsKKworCQlpZiAoKG1heF9jcHVfbG9hZCAtIG1pbl9jcHVfbG9hZCkgPiAyKmF2Z19sb2FkX3Blcl90YXNrKQogCQkJX19ncm91cF9pbWIgPSAxOwogCiAJCWdyb3VwX2NhcGFjaXR5ID0gZ3JvdXAtPl9fY3B1X3Bvd2VyIC8gU0NIRURfTE9BRF9TQ0FMRTsKQEAgLTMxNTYsOSArMzM3NSw5IEBACiAJCQlpZiAoYnVzaWVzdF9sb2FkX3Blcl90YXNrID4gdGhpc19sb2FkX3Blcl90YXNrKQogCQkJCWltYm4gPSAxOwogCQl9IGVsc2UKLQkJCXRoaXNfbG9hZF9wZXJfdGFzayA9IFNDSEVEX0xPQURfU0NBTEU7CisJCQl0aGlzX2xvYWRfcGVyX3Rhc2sgPSBjcHVfYXZnX2xvYWRfcGVyX3Rhc2sodGhpc19jcHUpOwogCi0JCWlmIChtYXhfbG9hZCAtIHRoaXNfbG9hZCArIFNDSEVEX0xPQURfU0NBTEVfRlVaWiA+PQorCQlpZiAobWF4X2xvYWQgLSB0aGlzX2xvYWQgKyAyKmJ1c2llc3RfbG9hZF9wZXJfdGFzayA+PQogCQkJCQlidXNpZXN0X2xvYWRfcGVyX3Rhc2sgKiBpbWJuKSB7CiAJCQkqaW1iYWxhbmNlID0gYnVzaWVzdF9sb2FkX3Blcl90YXNrOwogCQkJcmV0dXJuIGJ1c2llc3Q7CkBAIC0zMjg0LDYgKzM1MDMsNyBAQAogCXNjaGVkc3RhdF9pbmMoc2QsIGxiX2NvdW50W2lkbGVdKTsKIAogcmVkbzoKKwl1cGRhdGVfc2hhcmVzKHNkKTsKIAlncm91cCA9IGZpbmRfYnVzaWVzdF9ncm91cChzZCwgdGhpc19jcHUsICZpbWJhbGFuY2UsIGlkbGUsICZzZF9pZGxlLAogCQkJCSAgIGNwdXMsIGJhbGFuY2UpOwogCkBAIC0zMzg2LDggKzM2MDYsOSBAQAogCiAJaWYgKCFsZF9tb3ZlZCAmJiAhc2RfaWRsZSAmJiBzZC0+ZmxhZ3MgJiBTRF9TSEFSRV9DUFVQT1dFUiAmJgogCSAgICAhdGVzdF9zZF9wYXJlbnQoc2QsIFNEX1BPV0VSU0FWSU5HU19CQUxBTkNFKSkKLQkJcmV0dXJuIC0xOwotCXJldHVybiBsZF9tb3ZlZDsKKwkJbGRfbW92ZWQgPSAtMTsKKworCWdvdG8gb3V0OwogCiBvdXRfYmFsYW5jZWQ6CiAJc2NoZWRzdGF0X2luYyhzZCwgbGJfYmFsYW5jZWRbaWRsZV0pOwpAQCAtMzQwMiw4ICszNjIzLDEzIEBACiAKIAlpZiAoIXNkX2lkbGUgJiYgc2QtPmZsYWdzICYgU0RfU0hBUkVfQ1BVUE9XRVIgJiYKIAkgICAgIXRlc3Rfc2RfcGFyZW50KHNkLCBTRF9QT1dFUlNBVklOR1NfQkFMQU5DRSkpCi0JCXJldHVybiAtMTsKLQlyZXR1cm4gMDsKKwkJbGRfbW92ZWQgPSAtMTsKKwllbHNlCisJCWxkX21vdmVkID0gMDsKK291dDoKKwlpZiAobGRfbW92ZWQpCisJCXVwZGF0ZV9zaGFyZXMoc2QpOworCXJldHVybiBsZF9tb3ZlZDsKIH0KIAogLyoKQEAgLTM0MzgsNiArMzY2NCw3IEBACiAKIAlzY2hlZHN0YXRfaW5jKHNkLCBsYl9jb3VudFtDUFVfTkVXTFlfSURMRV0pOwogcmVkbzoKKwl1cGRhdGVfc2hhcmVzX2xvY2tlZCh0aGlzX3JxLCBzZCk7CiAJZ3JvdXAgPSBmaW5kX2J1c2llc3RfZ3JvdXAoc2QsIHRoaXNfY3B1LCAmaW1iYWxhbmNlLCBDUFVfTkVXTFlfSURMRSwKIAkJCQkgICAmc2RfaWRsZSwgY3B1cywgTlVMTCk7CiAJaWYgKCFncm91cCkgewpAQCAtMzQ4MSw2ICszNzA4LDcgQEAKIAl9IGVsc2UKIAkJc2QtPm5yX2JhbGFuY2VfZmFpbGVkID0gMDsKIAorCXVwZGF0ZV9zaGFyZXNfbG9ja2VkKHRoaXNfcnEsIHNkKTsKIAlyZXR1cm4gbGRfbW92ZWQ7CiAKIG91dF9iYWxhbmNlZDoKQEAgLTM2NzIsNiArMzkwMCw3IEBACiAJLyogRWFybGllc3QgdGltZSB3aGVuIHdlIGhhdmUgdG8gZG8gcmViYWxhbmNlIGFnYWluICovCiAJdW5zaWduZWQgbG9uZyBuZXh0X2JhbGFuY2UgPSBqaWZmaWVzICsgNjAqSFo7CiAJaW50IHVwZGF0ZV9uZXh0X2JhbGFuY2UgPSAwOworCWludCBuZWVkX3NlcmlhbGl6ZTsKIAljcHVtYXNrX3QgdG1wOwogCiAJZm9yX2VhY2hfZG9tYWluKGNwdSwgc2QpIHsKQEAgLTM2ODksOCArMzkxOCw5IEBACiAJCWlmIChpbnRlcnZhbCA+IEhaKk5SX0NQVVMvMTApCiAJCQlpbnRlcnZhbCA9IEhaKk5SX0NQVVMvMTA7CiAKKwkJbmVlZF9zZXJpYWxpemUgPSBzZC0+ZmxhZ3MgJiBTRF9TRVJJQUxJWkU7CiAKLQkJaWYgKHNkLT5mbGFncyAmIFNEX1NFUklBTElaRSkgeworCQlpZiAobmVlZF9zZXJpYWxpemUpIHsKIAkJCWlmICghc3Bpbl90cnlsb2NrKCZiYWxhbmNpbmcpKQogCQkJCWdvdG8gb3V0OwogCQl9CkBAIC0zNzA2LDcgKzM5MzYsNyBAQAogCQkJfQogCQkJc2QtPmxhc3RfYmFsYW5jZSA9IGppZmZpZXM7CiAJCX0KLQkJaWYgKHNkLT5mbGFncyAmIFNEX1NFUklBTElaRSkKKwkJaWYgKG5lZWRfc2VyaWFsaXplKQogCQkJc3Bpbl91bmxvY2soJmJhbGFuY2luZyk7CiBvdXQ6CiAJCWlmICh0aW1lX2FmdGVyKG5leHRfYmFsYW5jZSwgc2QtPmxhc3RfYmFsYW5jZSArIGludGVydmFsKSkgewpAQCAtNDAyMSwyNiArNDI1MSw0NCBAQAogI2VuZGlmCiB9CiAKLSNpZiBkZWZpbmVkKENPTkZJR19QUkVFTVBUKSAmJiBkZWZpbmVkKENPTkZJR19ERUJVR19QUkVFTVBUKQorI2lmIGRlZmluZWQoQ09ORklHX1BSRUVNUFQpICYmIChkZWZpbmVkKENPTkZJR19ERUJVR19QUkVFTVBUKSB8fCBcCisJCQkJZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpKQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X3BhcmVudF9pcCh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJaWYgKGluX2xvY2tfZnVuY3Rpb25zKGFkZHIpKSB7CisJCWFkZHIgPSBDQUxMRVJfQUREUjI7CisJCWlmIChpbl9sb2NrX2Z1bmN0aW9ucyhhZGRyKSkKKwkJCWFkZHIgPSBDQUxMRVJfQUREUjM7CisJfQorCXJldHVybiBhZGRyOworfQogCiB2b2lkIF9fa3Byb2JlcyBhZGRfcHJlZW1wdF9jb3VudChpbnQgdmFsKQogeworI2lmZGVmIENPTkZJR19ERUJVR19QUkVFTVBUCiAJLyoKIAkgKiBVbmRlcmZsb3c/CiAJICovCiAJaWYgKERFQlVHX0xPQ0tTX1dBUk5fT04oKHByZWVtcHRfY291bnQoKSA8IDApKSkKIAkJcmV0dXJuOworI2VuZGlmCiAJcHJlZW1wdF9jb3VudCgpICs9IHZhbDsKKyNpZmRlZiBDT05GSUdfREVCVUdfUFJFRU1QVAogCS8qCiAJICogU3BpbmxvY2sgY291bnQgb3ZlcmZsb3dpbmcgc29vbj8KIAkgKi8KIAlERUJVR19MT0NLU19XQVJOX09OKChwcmVlbXB0X2NvdW50KCkgJiBQUkVFTVBUX01BU0spID49CiAJCQkJUFJFRU1QVF9NQVNLIC0gMTApOworI2VuZGlmCisJaWYgKHByZWVtcHRfY291bnQoKSA9PSB2YWwpCisJCXRyYWNlX3ByZWVtcHRfb2ZmKENBTExFUl9BRERSMCwgZ2V0X3BhcmVudF9pcChDQUxMRVJfQUREUjEpKTsKIH0KIEVYUE9SVF9TWU1CT0woYWRkX3ByZWVtcHRfY291bnQpOwogCiB2b2lkIF9fa3Byb2JlcyBzdWJfcHJlZW1wdF9jb3VudChpbnQgdmFsKQogeworI2lmZGVmIENPTkZJR19ERUJVR19QUkVFTVBUCiAJLyoKIAkgKiBVbmRlcmZsb3c/CiAJICovCkBAIC00MDUyLDcgKzQzMDAsMTAgQEAKIAlpZiAoREVCVUdfTE9DS1NfV0FSTl9PTigodmFsIDwgUFJFRU1QVF9NQVNLKSAmJgogCQkJIShwcmVlbXB0X2NvdW50KCkgJiBQUkVFTVBUX01BU0spKSkKIAkJcmV0dXJuOworI2VuZGlmCiAKKwlpZiAocHJlZW1wdF9jb3VudCgpID09IHZhbCkKKwkJdHJhY2VfcHJlZW1wdF9vbihDQUxMRVJfQUREUjAsIGdldF9wYXJlbnRfaXAoQ0FMTEVSX0FERFIxKSk7CiAJcHJlZW1wdF9jb3VudCgpIC09IHZhbDsKIH0KIEVYUE9SVF9TWU1CT0woc3ViX3ByZWVtcHRfY291bnQpOwpAQCAtNDA3MCw2ICs0MzIxLDcgQEAKIAkJcHJldi0+Y29tbSwgcHJldi0+cGlkLCBwcmVlbXB0X2NvdW50KCkpOwogCiAJZGVidWdfc2hvd19oZWxkX2xvY2tzKHByZXYpOworCXByaW50X21vZHVsZXMoKTsKIAlpZiAoaXJxc19kaXNhYmxlZCgpKQogCQlwcmludF9pcnF0cmFjZV9ldmVudHMocHJldik7CiAKQEAgLTQxNDMsNyArNDM5NSw3IEBACiAJc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LCAqbmV4dDsKIAl1bnNpZ25lZCBsb25nICpzd2l0Y2hfY291bnQ7CiAJc3RydWN0IHJxICpycTsKLQlpbnQgY3B1OworCWludCBjcHUsIGhydGljayA9IHNjaGVkX2ZlYXQoSFJUSUNLKTsKIAogbmVlZF9yZXNjaGVkOgogCXByZWVtcHRfZGlzYWJsZSgpOwpAQCAtNDE1OCw3ICs0NDEwLDggQEAKIAogCXNjaGVkdWxlX2RlYnVnKHByZXYpOwogCi0JaHJ0aWNrX2NsZWFyKHJxKTsKKwlpZiAoaHJ0aWNrKQorCQlocnRpY2tfY2xlYXIocnEpOwogCiAJLyoKIAkgKiBEbyB0aGUgcnEtY2xvY2sgdXBkYXRlIG91dHNpZGUgdGhlIHJxIGxvY2s6CkBAIC00MjA0LDcgKzQ0NTcsOCBAQAogCX0gZWxzZQogCQlzcGluX3VubG9ja19pcnEoJnJxLT5sb2NrKTsKIAotCWhydGlja19zZXQocnEpOworCWlmIChocnRpY2spCisJCWhydGlja19zZXQocnEpOwogCiAJaWYgKHVubGlrZWx5KHJlYWNxdWlyZV9rZXJuZWxfbG9jayhjdXJyZW50KSA8IDApKQogCQlnb3RvIG5lZWRfcmVzY2hlZF9ub25wcmVlbXB0aWJsZTsKQEAgLTQ1ODYsMTAgKzQ4NDAsOCBAQAogCQlnb3RvIG91dF91bmxvY2s7CiAJfQogCW9uX3JxID0gcC0+c2Uub25fcnE7Ci0JaWYgKG9uX3JxKSB7CisJaWYgKG9uX3JxKQogCQlkZXF1ZXVlX3Rhc2socnEsIHAsIDApOwotCQlkZWNfbG9hZChycSwgcCk7Ci0JfQogCiAJcC0+c3RhdGljX3ByaW8gPSBOSUNFX1RPX1BSSU8obmljZSk7CiAJc2V0X2xvYWRfd2VpZ2h0KHApOwpAQCAtNDU5OSw3ICs0ODUxLDYgQEAKIAogCWlmIChvbl9ycSkgewogCQllbnF1ZXVlX3Rhc2socnEsIHAsIDApOwotCQlpbmNfbG9hZChycSwgcCk7CiAJCS8qCiAJCSAqIElmIHRoZSB0YXNrIGluY3JlYXNlZCBpdHMgcHJpb3JpdHkgb3IgaXMgcnVubmluZyBhbmQKIAkJICogbG93ZXJlZCBpdHMgcHJpb3JpdHksIHRoZW4gcmVzY2hlZHVsZSBpdHMgQ1BVOgpAQCAtNDc0NCwxNiArNDk5NSw4IEBACiAJc2V0X2xvYWRfd2VpZ2h0KHApOwogfQogCi0vKioKLSAqIHNjaGVkX3NldHNjaGVkdWxlciAtIGNoYW5nZSB0aGUgc2NoZWR1bGluZyBwb2xpY3kgYW5kL29yIFJUIHByaW9yaXR5IG9mIGEgdGhyZWFkLgotICogQHA6IHRoZSB0YXNrIGluIHF1ZXN0aW9uLgotICogQHBvbGljeTogbmV3IHBvbGljeS4KLSAqIEBwYXJhbTogc3RydWN0dXJlIGNvbnRhaW5pbmcgdGhlIG5ldyBSVCBwcmlvcml0eS4KLSAqCi0gKiBOT1RFIHRoYXQgdGhlIHRhc2sgbWF5IGJlIGFscmVhZHkgZGVhZC4KLSAqLwotaW50IHNjaGVkX3NldHNjaGVkdWxlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwb2xpY3ksCi0JCSAgICAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKnBhcmFtKQorc3RhdGljIGludCBfX3NjaGVkX3NldHNjaGVkdWxlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwb2xpY3ksCisJCQkJc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSwgYm9vbCB1c2VyKQogewogCWludCByZXR2YWwsIG9sZHByaW8sIG9sZHBvbGljeSA9IC0xLCBvbl9ycSwgcnVubmluZzsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtNDc4NSw3ICs1MDI4LDcgQEAKIAkvKgogCSAqIEFsbG93IHVucHJpdmlsZWdlZCBSVCB0YXNrcyB0byBkZWNyZWFzZSBwcmlvcml0eToKIAkgKi8KLQlpZiAoIWNhcGFibGUoQ0FQX1NZU19OSUNFKSkgeworCWlmICh1c2VyICYmICFjYXBhYmxlKENBUF9TWVNfTklDRSkpIHsKIAkJaWYgKHJ0X3BvbGljeShwb2xpY3kpKSB7CiAJCQl1bnNpZ25lZCBsb25nIHJsaW1fcnRwcmlvOwogCkBAIC00ODIxLDcgKzUwNjQsOCBAQAogCSAqIERvIG5vdCBhbGxvdyByZWFsdGltZSB0YXNrcyBpbnRvIGdyb3VwcyB0aGF0IGhhdmUgbm8gcnVudGltZQogCSAqIGFzc2lnbmVkLgogCSAqLwotCWlmIChydF9wb2xpY3kocG9saWN5KSAmJiB0YXNrX2dyb3VwKHApLT5ydF9iYW5kd2lkdGgucnRfcnVudGltZSA9PSAwKQorCWlmICh1c2VyCisJICAgICYmIHJ0X3BvbGljeShwb2xpY3kpICYmIHRhc2tfZ3JvdXAocCktPnJ0X2JhbmR3aWR0aC5ydF9ydW50aW1lID09IDApCiAJCXJldHVybiAtRVBFUk07CiAjZW5kaWYKIApAQCAtNDg3MCw4ICs1MTE0LDM5IEBACiAKIAlyZXR1cm4gMDsKIH0KKworLyoqCisgKiBzY2hlZF9zZXRzY2hlZHVsZXIgLSBjaGFuZ2UgdGhlIHNjaGVkdWxpbmcgcG9saWN5IGFuZC9vciBSVCBwcmlvcml0eSBvZiBhIHRocmVhZC4KKyAqIEBwOiB0aGUgdGFzayBpbiBxdWVzdGlvbi4KKyAqIEBwb2xpY3k6IG5ldyBwb2xpY3kuCisgKiBAcGFyYW06IHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBuZXcgUlQgcHJpb3JpdHkuCisgKgorICogTk9URSB0aGF0IHRoZSB0YXNrIG1heSBiZSBhbHJlYWR5IGRlYWQuCisgKi8KK2ludCBzY2hlZF9zZXRzY2hlZHVsZXIoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgcG9saWN5LAorCQkgICAgICAgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkKK3sKKwlyZXR1cm4gX19zY2hlZF9zZXRzY2hlZHVsZXIocCwgcG9saWN5LCBwYXJhbSwgdHJ1ZSk7Cit9CiBFWFBPUlRfU1lNQk9MX0dQTChzY2hlZF9zZXRzY2hlZHVsZXIpOwogCisvKioKKyAqIHNjaGVkX3NldHNjaGVkdWxlcl9ub2NoZWNrIC0gY2hhbmdlIHRoZSBzY2hlZHVsaW5nIHBvbGljeSBhbmQvb3IgUlQgcHJpb3JpdHkgb2YgYSB0aHJlYWQgZnJvbSBrZXJuZWxzcGFjZS4KKyAqIEBwOiB0aGUgdGFzayBpbiBxdWVzdGlvbi4KKyAqIEBwb2xpY3k6IG5ldyBwb2xpY3kuCisgKiBAcGFyYW06IHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBuZXcgUlQgcHJpb3JpdHkuCisgKgorICogSnVzdCBsaWtlIHNjaGVkX3NldHNjaGVkdWxlciwgb25seSBkb24ndCBib3RoZXIgY2hlY2tpbmcgaWYgdGhlCisgKiBjdXJyZW50IGNvbnRleHQgaGFzIHBlcm1pc3Npb24uICBGb3IgZXhhbXBsZSwgdGhpcyBpcyBuZWVkZWQgaW4KKyAqIHN0b3BfbWFjaGluZSgpOiB3ZSBjcmVhdGUgdGVtcG9yYXJ5IGhpZ2ggcHJpb3JpdHkgd29ya2VyIHRocmVhZHMsCisgKiBidXQgb3VyIGNhbGxlciBtaWdodCBub3QgaGF2ZSB0aGF0IGNhcGFiaWxpdHkuCisgKi8KK2ludCBzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwb2xpY3ksCisJCQkgICAgICAgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkKK3sKKwlyZXR1cm4gX19zY2hlZF9zZXRzY2hlZHVsZXIocCwgcG9saWN5LCBwYXJhbSwgZmFsc2UpOworfQorCiBzdGF0aWMgaW50CiBkb19zY2hlZF9zZXRzY2hlZHVsZXIocGlkX3QgcGlkLCBpbnQgcG9saWN5LCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gX191c2VyICpwYXJhbSkKIHsKQEAgLTUwNzAsMjQgKzUzNDUsNiBAQAogCXJldHVybiBzY2hlZF9zZXRhZmZpbml0eShwaWQsICZuZXdfbWFzayk7CiB9CiAKLS8qCi0gKiBSZXByZXNlbnRzIGFsbCBjcHUncyBwcmVzZW50IGluIHRoZSBzeXN0ZW0KLSAqIEluIHN5c3RlbXMgY2FwYWJsZSBvZiBob3RwbHVnLCB0aGlzIG1hcCBjb3VsZCBkeW5hbWljYWxseSBncm93Ci0gKiBhcyBuZXcgY3B1J3MgYXJlIGRldGVjdGVkIGluIHRoZSBzeXN0ZW0gdmlhIGFueSBwbGF0Zm9ybSBzcGVjaWZpYwotICogbWV0aG9kLCBzdWNoIGFzIEFDUEkgZm9yIGUuZy4KLSAqLwotCi1jcHVtYXNrX3QgY3B1X3ByZXNlbnRfbWFwIF9fcmVhZF9tb3N0bHk7Ci1FWFBPUlRfU1lNQk9MKGNwdV9wcmVzZW50X21hcCk7Ci0KLSNpZm5kZWYgQ09ORklHX1NNUAotY3B1bWFza190IGNwdV9vbmxpbmVfbWFwIF9fcmVhZF9tb3N0bHkgPSBDUFVfTUFTS19BTEw7Ci1FWFBPUlRfU1lNQk9MKGNwdV9vbmxpbmVfbWFwKTsKLQotY3B1bWFza190IGNwdV9wb3NzaWJsZV9tYXAgX19yZWFkX21vc3RseSA9IENQVV9NQVNLX0FMTDsKLUVYUE9SVF9TWU1CT0woY3B1X3Bvc3NpYmxlX21hcCk7Ci0jZW5kaWYKLQogbG9uZyBzY2hlZF9nZXRhZmZpbml0eShwaWRfdCBwaWQsIGNwdW1hc2tfdCAqbWFzaykKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CkBAIC01Mzg0LDcgKzU2NDEsNyBAQAogCXJldHVybiByZXR2YWw7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyIHN0YXRfbmFtW10gPSAiUlNEVHRaWCI7CitzdGF0aWMgY29uc3QgY2hhciBzdGF0X25hbVtdID0gVEFTS19TVEFURV9UT19DSEFSX1NUUjsKIAogdm9pZCBzY2hlZF9zaG93X3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwKQogewpAQCAtNTU3MSw2ICs1ODI4LDEyIEBACiAJCWdvdG8gb3V0OwogCX0KIAorCWlmICh1bmxpa2VseSgocC0+ZmxhZ3MgJiBQRl9USFJFQURfQk9VTkQpICYmIHAgIT0gY3VycmVudCAmJgorCQkgICAgICFjcHVzX2VxdWFsKHAtPmNwdXNfYWxsb3dlZCwgKm5ld19tYXNrKSkpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7CisJfQorCiAJaWYgKHAtPnNjaGVkX2NsYXNzLT5zZXRfY3B1c19hbGxvd2VkKQogCQlwLT5zY2hlZF9jbGFzcy0+c2V0X2NwdXNfYWxsb3dlZChwLCBuZXdfbWFzayk7CiAJZWxzZSB7CkBAIC01NjIyLDEwICs1ODg1LDEwIEBACiAJZG91YmxlX3JxX2xvY2socnFfc3JjLCBycV9kZXN0KTsKIAkvKiBBbHJlYWR5IG1vdmVkLiAqLwogCWlmICh0YXNrX2NwdShwKSAhPSBzcmNfY3B1KQotCQlnb3RvIG91dDsKKwkJZ290byBkb25lOwogCS8qIEFmZmluaXR5IGNoYW5nZWQgKGFnYWluKS4gKi8KIAlpZiAoIWNwdV9pc3NldChkZXN0X2NwdSwgcC0+Y3B1c19hbGxvd2VkKSkKLQkJZ290byBvdXQ7CisJCWdvdG8gZmFpbDsKIAogCW9uX3JxID0gcC0+c2Uub25fcnE7CiAJaWYgKG9uX3JxKQpAQCAtNTYzNiw4ICs1ODk5LDkgQEAKIAkJYWN0aXZhdGVfdGFzayhycV9kZXN0LCBwLCAwKTsKIAkJY2hlY2tfcHJlZW1wdF9jdXJyKHJxX2Rlc3QsIHApOwogCX0KK2RvbmU6CiAJcmV0ID0gMTsKLW91dDoKK2ZhaWw6CiAJZG91YmxlX3JxX3VubG9jayhycV9zcmMsIHJxX2Rlc3QpOwogCXJldHVybiByZXQ7CiB9CkBAIC01ODg3LDYgKzYxNTEsNyBAQAogCQluZXh0ID0gcGlja19uZXh0X3Rhc2socnEsIHJxLT5jdXJyKTsKIAkJaWYgKCFuZXh0KQogCQkJYnJlYWs7CisJCW5leHQtPnNjaGVkX2NsYXNzLT5wdXRfcHJldl90YXNrKHJxLCBuZXh0KTsKIAkJbWlncmF0ZV9kZWFkKGRlYWRfY3B1LCBuZXh0KTsKIAogCX0KQEAgLTYwNTgsNiArNjMyMywzNiBAQAogfQogI2VuZGlmCiAKK3N0YXRpYyB2b2lkIHNldF9ycV9vbmxpbmUoc3RydWN0IHJxICpycSkKK3sKKwlpZiAoIXJxLT5vbmxpbmUpIHsKKwkJY29uc3Qgc3RydWN0IHNjaGVkX2NsYXNzICpjbGFzczsKKworCQljcHVfc2V0KHJxLT5jcHUsIHJxLT5yZC0+b25saW5lKTsKKwkJcnEtPm9ubGluZSA9IDE7CisKKwkJZm9yX2VhY2hfY2xhc3MoY2xhc3MpIHsKKwkJCWlmIChjbGFzcy0+cnFfb25saW5lKQorCQkJCWNsYXNzLT5ycV9vbmxpbmUocnEpOworCQl9CisJfQorfQorCitzdGF0aWMgdm9pZCBzZXRfcnFfb2ZmbGluZShzdHJ1Y3QgcnEgKnJxKQoreworCWlmIChycS0+b25saW5lKSB7CisJCWNvbnN0IHN0cnVjdCBzY2hlZF9jbGFzcyAqY2xhc3M7CisKKwkJZm9yX2VhY2hfY2xhc3MoY2xhc3MpIHsKKwkJCWlmIChjbGFzcy0+cnFfb2ZmbGluZSkKKwkJCQljbGFzcy0+cnFfb2ZmbGluZShycSk7CisJCX0KKworCQljcHVfY2xlYXIocnEtPmNwdSwgcnEtPnJkLT5vbmxpbmUpOworCQlycS0+b25saW5lID0gMDsKKwl9Cit9CisKIC8qCiAgKiBtaWdyYXRpb25fY2FsbCAtIGNhbGxiYWNrIHRoYXQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiBhIENQVSBpcyBhZGRlZC4KICAqIEhlcmUgd2UgY2FuIHN0YXJ0IHVwIHRoZSBuZWNlc3NhcnkgbWlncmF0aW9uIHRocmVhZCBmb3IgdGhlIG5ldyBDUFUuCkBAIC02MDk1LDcgKzYzOTAsOCBAQAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmcnEtPmxvY2ssIGZsYWdzKTsKIAkJaWYgKHJxLT5yZCkgewogCQkJQlVHX09OKCFjcHVfaXNzZXQoY3B1LCBycS0+cmQtPnNwYW4pKTsKLQkJCWNwdV9zZXQoY3B1LCBycS0+cmQtPm9ubGluZSk7CisKKwkJCXNldF9ycV9vbmxpbmUocnEpOwogCQl9CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJxLT5sb2NrLCBmbGFncyk7CiAJCWJyZWFrOwpAQCAtNjE1Niw3ICs2NDUyLDcgQEAKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnJxLT5sb2NrLCBmbGFncyk7CiAJCWlmIChycS0+cmQpIHsKIAkJCUJVR19PTighY3B1X2lzc2V0KGNwdSwgcnEtPnJkLT5zcGFuKSk7Ci0JCQljcHVfY2xlYXIoY3B1LCBycS0+cmQtPm9ubGluZSk7CisJCQlzZXRfcnFfb2ZmbGluZShycSk7CiAJCX0KIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcnEtPmxvY2ssIGZsYWdzKTsKIAkJYnJlYWs7CkBAIC02MTkwLDYgKzY0ODYsMjggQEAKIAogI2lmZGVmIENPTkZJR19TQ0hFRF9ERUJVRwogCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKnNkX2xldmVsX3RvX3N0cmluZyhlbnVtIHNjaGVkX2RvbWFpbl9sZXZlbCBsdmwpCit7CisJc3dpdGNoIChsdmwpIHsKKwljYXNlIFNEX0xWX05PTkU6CisJCQlyZXR1cm4gIk5PTkUiOworCWNhc2UgU0RfTFZfU0lCTElORzoKKwkJCXJldHVybiAiU0lCTElORyI7CisJY2FzZSBTRF9MVl9NQzoKKwkJCXJldHVybiAiTUMiOworCWNhc2UgU0RfTFZfQ1BVOgorCQkJcmV0dXJuICJDUFUiOworCWNhc2UgU0RfTFZfTk9ERToKKwkJCXJldHVybiAiTk9ERSI7CisJY2FzZSBTRF9MVl9BTExOT0RFUzoKKwkJCXJldHVybiAiQUxMTk9ERVMiOworCWNhc2UgU0RfTFZfTUFYOgorCQkJcmV0dXJuICJNQVgiOworCisJfQorCXJldHVybiAiTUFYIjsKK30KKwogc3RhdGljIGludCBzY2hlZF9kb21haW5fZGVidWdfb25lKHN0cnVjdCBzY2hlZF9kb21haW4gKnNkLCBpbnQgY3B1LCBpbnQgbGV2ZWwsCiAJCQkJICBjcHVtYXNrX3QgKmdyb3VwbWFzaykKIHsKQEAgLTYyMDksNyArNjUyNyw4IEBACiAJCXJldHVybiAtMTsKIAl9CiAKLQlwcmludGsoS0VSTl9DT05UICJzcGFuICVzXG4iLCBzdHIpOworCXByaW50ayhLRVJOX0NPTlQgInNwYW4gJXMgbGV2ZWwgJXNcbiIsCisJCXN0ciwgc2RfbGV2ZWxfdG9fc3RyaW5nKHNkLT5sZXZlbCkpOwogCiAJaWYgKCFjcHVfaXNzZXQoY3B1LCBzZC0+c3BhbikpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJFUlJPUjogZG9tYWluLT5zcGFuIGRvZXMgbm90IGNvbnRhaW4gIgpAQCAtNjI5Myw5ICs2NjEyLDkgQEAKIAl9CiAJa2ZyZWUoZ3JvdXBtYXNrKTsKIH0KLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1NDSEVEX0RFQlVHICovCiAjIGRlZmluZSBzY2hlZF9kb21haW5fZGVidWcoc2QsIGNwdSkgZG8geyB9IHdoaWxlICgwKQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1NDSEVEX0RFQlVHICovCiAKIHN0YXRpYyBpbnQgc2RfZGVnZW5lcmF0ZShzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKIHsKQEAgLTYzNTUsMjAgKzY2NzQsMTYgQEAKIHN0YXRpYyB2b2lkIHJxX2F0dGFjaF9yb290KHN0cnVjdCBycSAqcnEsIHN0cnVjdCByb290X2RvbWFpbiAqcmQpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQljb25zdCBzdHJ1Y3Qgc2NoZWRfY2xhc3MgKmNsYXNzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnJxLT5sb2NrLCBmbGFncyk7CiAKIAlpZiAocnEtPnJkKSB7CiAJCXN0cnVjdCByb290X2RvbWFpbiAqb2xkX3JkID0gcnEtPnJkOwogCi0JCWZvciAoY2xhc3MgPSBzY2hlZF9jbGFzc19oaWdoZXN0OyBjbGFzczsgY2xhc3MgPSBjbGFzcy0+bmV4dCkgewotCQkJaWYgKGNsYXNzLT5sZWF2ZV9kb21haW4pCi0JCQkJY2xhc3MtPmxlYXZlX2RvbWFpbihycSk7Ci0JCX0KKwkJaWYgKGNwdV9pc3NldChycS0+Y3B1LCBvbGRfcmQtPm9ubGluZSkpCisJCQlzZXRfcnFfb2ZmbGluZShycSk7CiAKIAkJY3B1X2NsZWFyKHJxLT5jcHUsIG9sZF9yZC0+c3Bhbik7Ci0JCWNwdV9jbGVhcihycS0+Y3B1LCBvbGRfcmQtPm9ubGluZSk7CiAKIAkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJm9sZF9yZC0+cmVmY291bnQpKQogCQkJa2ZyZWUob2xkX3JkKTsKQEAgLTYzNzksMTIgKzY2OTQsNyBAQAogCiAJY3B1X3NldChycS0+Y3B1LCByZC0+c3Bhbik7CiAJaWYgKGNwdV9pc3NldChycS0+Y3B1LCBjcHVfb25saW5lX21hcCkpCi0JCWNwdV9zZXQocnEtPmNwdSwgcmQtPm9ubGluZSk7Ci0KLQlmb3IgKGNsYXNzID0gc2NoZWRfY2xhc3NfaGlnaGVzdDsgY2xhc3M7IGNsYXNzID0gY2xhc3MtPm5leHQpIHsKLQkJaWYgKGNsYXNzLT5qb2luX2RvbWFpbikKLQkJCWNsYXNzLT5qb2luX2RvbWFpbihycSk7Ci0JfQorCQlzZXRfcnFfb25saW5lKHJxKTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJxLT5sb2NrLCBmbGFncyk7CiB9CkBAIC02Mzk1LDYgKzY3MDUsOCBAQAogCiAJY3B1c19jbGVhcihyZC0+c3Bhbik7CiAJY3B1c19jbGVhcihyZC0+b25saW5lKTsKKworCWNwdXByaV9pbml0KCZyZC0+Y3B1cHJpKTsKIH0KIAogc3RhdGljIHZvaWQgaW5pdF9kZWZyb290ZG9tYWluKHZvaWQpCkBAIC02NTM3LDkgKzY4NDksOSBAQAogCiAJbWluX3ZhbCA9IElOVF9NQVg7CiAKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX05VTU5PREVTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgbnJfbm9kZV9pZHM7IGkrKykgewogCQkvKiBTdGFydCBhdCBAbm9kZSAqLwotCQluID0gKG5vZGUgKyBpKSAlIE1BWF9OVU1OT0RFUzsKKwkJbiA9IChub2RlICsgaSkgJSBucl9ub2RlX2lkczsKIAogCQlpZiAoIW5yX2NwdXNfbm9kZShuKSkKIAkJCWNvbnRpbnVlOwpAQCAtNjU4OSw3ICs2OTAxLDcgQEAKIAkJY3B1c19vcigqc3BhbiwgKnNwYW4sICpub2RlbWFzayk7CiAJfQogfQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX05VTUEgKi8KIAogaW50IHNjaGVkX3NtdF9wb3dlcl9zYXZpbmdzID0gMCwgc2NoZWRfbWNfcG93ZXJfc2F2aW5ncyA9IDA7CiAKQEAgLTY2MDgsNyArNjkyMCw3IEBACiAJCSpzZyA9ICZwZXJfY3B1KHNjaGVkX2dyb3VwX2NwdXMsIGNwdSk7CiAJcmV0dXJuIGNwdTsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19TQ0hFRF9TTVQgKi8KIAogLyoKICAqIG11bHRpLWNvcmUgc2NoZWQtZG9tYWluczoKQEAgLTY2MTYsNyArNjkyOCw3IEBACiAjaWZkZWYgQ09ORklHX1NDSEVEX01DCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVkX2RvbWFpbiwgY29yZV9kb21haW5zKTsKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qgc2NoZWRfZ3JvdXAsIHNjaGVkX2dyb3VwX2NvcmUpOwotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1NDSEVEX01DICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19TQ0hFRF9NQykgJiYgZGVmaW5lZChDT05GSUdfU0NIRURfU01UKQogc3RhdGljIGludApAQCAtNjcxOCw3ICs3MDMwLDcgQEAKIAkJc2cgPSBzZy0+bmV4dDsKIAl9IHdoaWxlIChzZyAhPSBncm91cF9oZWFkKTsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19OVU1BICovCiAKICNpZmRlZiBDT05GSUdfTlVNQQogLyogRnJlZSBtZW1vcnkgYWxsb2NhdGVkIGZvciB2YXJpb3VzIHNjaGVkX2dyb3VwIHN0cnVjdHVyZXMgKi8KQEAgLTY3MzMsNyArNzA0NSw3IEBACiAJCWlmICghc2NoZWRfZ3JvdXBfbm9kZXMpCiAJCQljb250aW51ZTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgTUFYX05VTU5PREVTOyBpKyspIHsKKwkJZm9yIChpID0gMDsgaSA8IG5yX25vZGVfaWRzOyBpKyspIHsKIAkJCXN0cnVjdCBzY2hlZF9ncm91cCAqb2xkc2csICpzZyA9IHNjaGVkX2dyb3VwX25vZGVzW2ldOwogCiAJCQkqbm9kZW1hc2sgPSBub2RlX3RvX2NwdW1hc2soaSk7CkBAIC02NzU1LDExICs3MDY3LDExIEBACiAJCXNjaGVkX2dyb3VwX25vZGVzX2J5Y3B1W2NwdV0gPSBOVUxMOwogCX0KIH0KLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX05VTUEgKi8KIHN0YXRpYyB2b2lkIGZyZWVfc2NoZWRfZ3JvdXBzKGNvbnN0IGNwdW1hc2tfdCAqY3B1X21hcCwgY3B1bWFza190ICpub2RlbWFzaykKIHsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19OVU1BICovCiAKIC8qCiAgKiBJbml0aWFsaXplIHNjaGVkIGdyb3VwcyBjcHVfcG93ZXIuCkBAIC02OTI2LDcgKzcyMzgsNyBAQAogCS8qCiAJICogQWxsb2NhdGUgdGhlIHBlci1ub2RlIGxpc3Qgb2Ygc2NoZWQgZ3JvdXBzCiAJICovCi0Jc2NoZWRfZ3JvdXBfbm9kZXMgPSBrY2FsbG9jKE1BWF9OVU1OT0RFUywgc2l6ZW9mKHN0cnVjdCBzY2hlZF9ncm91cCAqKSwKKwlzY2hlZF9ncm91cF9ub2RlcyA9IGtjYWxsb2MobnJfbm9kZV9pZHMsIHNpemVvZihzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKiksCiAJCQkJICAgIEdGUF9LRVJORUwpOwogCWlmICghc2NoZWRfZ3JvdXBfbm9kZXMpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiQ2FuIG5vdCBhbGxvYyBzY2hlZCBncm91cCBub2RlIGxpc3RcbiIpOwpAQCAtNzA2NSw3ICs3Mzc3LDcgQEAKICNlbmRpZgogCiAJLyogU2V0IHVwIHBoeXNpY2FsIGdyb3VwcyAqLwotCWZvciAoaSA9IDA7IGkgPCBNQVhfTlVNTk9ERVM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKSB7CiAJCVNDSEVEX0NQVU1BU0tfVkFSKG5vZGVtYXNrLCBhbGxtYXNrcyk7CiAJCVNDSEVEX0NQVU1BU0tfVkFSKHNlbmRfY292ZXJlZCwgYWxsbWFza3MpOwogCkBAIC03MDg5LDcgKzc0MDEsNyBAQAogCQkJCQlzZW5kX2NvdmVyZWQsIHRtcG1hc2spOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCBNQVhfTlVNTk9ERVM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKSB7CiAJCS8qIFNldCB1cCBub2RlIGdyb3VwcyAqLwogCQlzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKnNnLCAqcHJldjsKIAkJU0NIRURfQ1BVTUFTS19WQVIobm9kZW1hc2ssIGFsbG1hc2tzKTsKQEAgLTcxMjgsOSArNzQ0MCw5IEBACiAJCWNwdXNfb3IoKmNvdmVyZWQsICpjb3ZlcmVkLCAqbm9kZW1hc2spOwogCQlwcmV2ID0gc2c7CiAKLQkJZm9yIChqID0gMDsgaiA8IE1BWF9OVU1OT0RFUzsgaisrKSB7CisJCWZvciAoaiA9IDA7IGogPCBucl9ub2RlX2lkczsgaisrKSB7CiAJCQlTQ0hFRF9DUFVNQVNLX1ZBUihub3Rjb3ZlcmVkLCBhbGxtYXNrcyk7Ci0JCQlpbnQgbiA9IChpICsgaikgJSBNQVhfTlVNTk9ERVM7CisJCQlpbnQgbiA9IChpICsgaikgJSBucl9ub2RlX2lkczsKIAkJCW5vZGVfdG9fY3B1bWFza19wdHIocG5vZGVtYXNrLCBuKTsKIAogCQkJY3B1c19jb21wbGVtZW50KCpub3Rjb3ZlcmVkLCAqY292ZXJlZCk7CkBAIC03MTgzLDcgKzc0OTUsNyBAQAogCX0KIAogI2lmZGVmIENPTkZJR19OVU1BCi0JZm9yIChpID0gMDsgaSA8IE1BWF9OVU1OT0RFUzsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKQogCQlpbml0X251bWFfc2NoZWRfZ3JvdXBzX3Bvd2VyKHNjaGVkX2dyb3VwX25vZGVzW2ldKTsKIAogCWlmIChzZF9hbGxub2RlcykgewpAQCAtNzQ2OCw3ICs3NzgwLDcgQEAKICNlbmRpZgogCXJldHVybiBlcnI7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfU0NIRURfTUMgfHwgQ09ORklHX1NDSEVEX1NNVCAqLwogCiAvKgogICogRm9yY2UgYSByZWluaXRpYWxpemF0aW9uIG9mIHRoZSBzY2hlZCBkb21haW5zIGhpZXJhcmNoeS4gVGhlIGRvbWFpbnMKQEAgLTc0NzksMjEgKzc3OTEsMjggQEAKIHN0YXRpYyBpbnQgdXBkYXRlX3NjaGVkX2RvbWFpbnMoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuZmIsCiAJCQkJdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmhjcHUpCiB7CisJaW50IGNwdSA9IChpbnQpKGxvbmcpaGNwdTsKKwogCXN3aXRjaCAoYWN0aW9uKSB7Ci0JY2FzZSBDUFVfVVBfUFJFUEFSRToKLQljYXNlIENQVV9VUF9QUkVQQVJFX0ZST1pFTjoKIAljYXNlIENQVV9ET1dOX1BSRVBBUkU6CiAJY2FzZSBDUFVfRE9XTl9QUkVQQVJFX0ZST1pFTjoKKwkJZGlzYWJsZV9ydW50aW1lKGNwdV9ycShjcHUpKTsKKwkJLyogZmFsbC10aHJvdWdoICovCisJY2FzZSBDUFVfVVBfUFJFUEFSRToKKwljYXNlIENQVV9VUF9QUkVQQVJFX0ZST1pFTjoKIAkJZGV0YWNoX2Rlc3Ryb3lfZG9tYWlucygmY3B1X29ubGluZV9tYXApOwogCQlmcmVlX3NjaGVkX2RvbWFpbnMoKTsKIAkJcmV0dXJuIE5PVElGWV9PSzsKIAotCWNhc2UgQ1BVX1VQX0NBTkNFTEVEOgotCWNhc2UgQ1BVX1VQX0NBTkNFTEVEX0ZST1pFTjoKKwogCWNhc2UgQ1BVX0RPV05fRkFJTEVEOgogCWNhc2UgQ1BVX0RPV05fRkFJTEVEX0ZST1pFTjoKIAljYXNlIENQVV9PTkxJTkU6CiAJY2FzZSBDUFVfT05MSU5FX0ZST1pFTjoKKwkJZW5hYmxlX3J1bnRpbWUoY3B1X3JxKGNwdSkpOworCQkvKiBmYWxsLXRocm91Z2ggKi8KKwljYXNlIENQVV9VUF9DQU5DRUxFRDoKKwljYXNlIENQVV9VUF9DQU5DRUxFRF9GUk9aRU46CiAJY2FzZSBDUFVfREVBRDoKIAljYXNlIENQVV9ERUFEX0ZST1pFTjoKIAkJLyoKQEAgLTc2OTMsOCArODAxMiw4IEBACiAKIAkJcm9vdF90YXNrX2dyb3VwLmNmc19ycSA9IChzdHJ1Y3QgY2ZzX3JxICoqKXB0cjsKIAkJcHRyICs9IG5yX2NwdV9pZHMgKiBzaXplb2Yodm9pZCAqKik7Ci0jZW5kaWYKLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19VU0VSX1NDSEVEICovCisjZW5kaWYgLyogQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQgKi8KICNpZmRlZiBDT05GSUdfUlRfR1JPVVBfU0NIRUQKIAkJaW5pdF90YXNrX2dyb3VwLnJ0X3NlID0gKHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKiopcHRyOwogCQlwdHIgKz0gbnJfY3B1X2lkcyAqIHNpemVvZih2b2lkICoqKTsKQEAgLTc3MDgsOCArODAyNyw4IEBACiAKIAkJcm9vdF90YXNrX2dyb3VwLnJ0X3JxID0gKHN0cnVjdCBydF9ycSAqKilwdHI7CiAJCXB0ciArPSBucl9jcHVfaWRzICogc2l6ZW9mKHZvaWQgKiopOwotI2VuZGlmCi0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfVVNFUl9TQ0hFRCAqLworI2VuZGlmIC8qIENPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLwogCX0KIAogI2lmZGVmIENPTkZJR19TTVAKQEAgLTc3MjUsOCArODA0NCw4IEBACiAjaWZkZWYgQ09ORklHX1VTRVJfU0NIRUQKIAlpbml0X3J0X2JhbmR3aWR0aCgmcm9vdF90YXNrX2dyb3VwLnJ0X2JhbmR3aWR0aCwKIAkJCWdsb2JhbF9ydF9wZXJpb2QoKSwgUlVOVElNRV9JTkYpOwotI2VuZGlmCi0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfVVNFUl9TQ0hFRCAqLworI2VuZGlmIC8qIENPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLwogCiAjaWZkZWYgQ09ORklHX0dST1VQX1NDSEVECiAJbGlzdF9hZGQoJmluaXRfdGFza19ncm91cC5saXN0LCAmdGFza19ncm91cHMpOwpAQCAtNzczNiw4ICs4MDU1LDggQEAKIAlJTklUX0xJU1RfSEVBRCgmcm9vdF90YXNrX2dyb3VwLmNoaWxkcmVuKTsKIAlpbml0X3Rhc2tfZ3JvdXAucGFyZW50ID0gJnJvb3RfdGFza19ncm91cDsKIAlsaXN0X2FkZCgmaW5pdF90YXNrX2dyb3VwLnNpYmxpbmdzLCAmcm9vdF90YXNrX2dyb3VwLmNoaWxkcmVuKTsKLSNlbmRpZgotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1VTRVJfU0NIRUQgKi8KKyNlbmRpZiAvKiBDT05GSUdfR1JPVVBfU0NIRUQgKi8KIAogCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShpKSB7CiAJCXN0cnVjdCBycSAqcnE7CkBAIC03ODE3LDYgKzgxMzYsNyBAQAogCQlycS0+bmV4dF9iYWxhbmNlID0gamlmZmllczsKIAkJcnEtPnB1c2hfY3B1ID0gMDsKIAkJcnEtPmNwdSA9IGk7CisJCXJxLT5vbmxpbmUgPSAwOwogCQlycS0+bWlncmF0aW9uX3RocmVhZCA9IE5VTEw7CiAJCUlOSVRfTElTVF9IRUFEKCZycS0+bWlncmF0aW9uX3F1ZXVlKTsKIAkJcnFfYXR0YWNoX3Jvb3QocnEsICZkZWZfcm9vdF9kb21haW4pOwpAQCAtNzgzMiw3ICs4MTUyLDcgQEAKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1NNUAotCW9wZW5fc29mdGlycShTQ0hFRF9TT0ZUSVJRLCBydW5fcmViYWxhbmNlX2RvbWFpbnMsIE5VTEwpOworCW9wZW5fc29mdGlycShTQ0hFRF9TT0ZUSVJRLCBydW5fcmViYWxhbmNlX2RvbWFpbnMpOwogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUlRfTVVURVhFUwpAQCAtODA1Niw3ICs4Mzc2LDcgQEAKIHsKIAlsaXN0X2RlbF9yY3UoJnRnLT5jZnNfcnFbY3B1XS0+bGVhZl9jZnNfcnFfbGlzdCk7CiB9Ci0jZWxzZQorI2Vsc2UgLyogIUNPTkZHX0ZBSVJfR1JPVVBfU0NIRUQgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBmcmVlX2ZhaXJfc2NoZWRfZ3JvdXAoc3RydWN0IHRhc2tfZ3JvdXAgKnRnKQogewogfQpAQCAtODA3NCw3ICs4Mzk0LDcgQEAKIHN0YXRpYyBpbmxpbmUgdm9pZCB1bnJlZ2lzdGVyX2ZhaXJfc2NoZWRfZ3JvdXAoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBpbnQgY3B1KQogewogfQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQgKi8KIAogI2lmZGVmIENPTkZJR19SVF9HUk9VUF9TQ0hFRAogc3RhdGljIHZvaWQgZnJlZV9ydF9zY2hlZF9ncm91cChzdHJ1Y3QgdGFza19ncm91cCAqdGcpCkBAIC04MTQ1LDcgKzg0NjUsNyBAQAogewogCWxpc3RfZGVsX3JjdSgmdGctPnJ0X3JxW2NwdV0tPmxlYWZfcnRfcnFfbGlzdCk7CiB9Ci0jZWxzZQorI2Vsc2UgLyogIUNPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLwogc3RhdGljIGlubGluZSB2b2lkIGZyZWVfcnRfc2NoZWRfZ3JvdXAoc3RydWN0IHRhc2tfZ3JvdXAgKnRnKQogewogfQpAQCAtODE2Myw3ICs4NDgzLDcgQEAKIHN0YXRpYyBpbmxpbmUgdm9pZCB1bnJlZ2lzdGVyX3J0X3NjaGVkX2dyb3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSkKIHsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLwogCiAjaWZkZWYgQ09ORklHX0dST1VQX1NDSEVECiBzdGF0aWMgdm9pZCBmcmVlX3NjaGVkX2dyb3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0ZykKQEAgLTgyNzQsMTcgKzg1OTQsMTQgQEAKIAogCXRhc2tfcnFfdW5sb2NrKHJxLCAmZmxhZ3MpOwogfQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX0dST1VQX1NDSEVEICovCiAKICNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAotc3RhdGljIHZvaWQgc2V0X3NlX3NoYXJlcyhzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSwgdW5zaWduZWQgbG9uZyBzaGFyZXMpCitzdGF0aWMgdm9pZCBfX3NldF9zZV9zaGFyZXMoc3RydWN0IHNjaGVkX2VudGl0eSAqc2UsIHVuc2lnbmVkIGxvbmcgc2hhcmVzKQogewogCXN0cnVjdCBjZnNfcnEgKmNmc19ycSA9IHNlLT5jZnNfcnE7Ci0Jc3RydWN0IHJxICpycSA9IGNmc19ycS0+cnE7CiAJaW50IG9uX3JxOwogCi0Jc3Bpbl9sb2NrX2lycSgmcnEtPmxvY2spOwotCiAJb25fcnEgPSBzZS0+b25fcnE7CiAJaWYgKG9uX3JxKQogCQlkZXF1ZXVlX2VudGl0eShjZnNfcnEsIHNlLCAwKTsKQEAgLTgyOTQsOCArODYxMSwxNyBAQAogCiAJaWYgKG9uX3JxKQogCQllbnF1ZXVlX2VudGl0eShjZnNfcnEsIHNlLCAwKTsKK30KIAotCXNwaW5fdW5sb2NrX2lycSgmcnEtPmxvY2spOworc3RhdGljIHZvaWQgc2V0X3NlX3NoYXJlcyhzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSwgdW5zaWduZWQgbG9uZyBzaGFyZXMpCit7CisJc3RydWN0IGNmc19ycSAqY2ZzX3JxID0gc2UtPmNmc19ycTsKKwlzdHJ1Y3QgcnEgKnJxID0gY2ZzX3JxLT5ycTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnJxLT5sb2NrLCBmbGFncyk7CisJX19zZXRfc2Vfc2hhcmVzKHNlLCBzaGFyZXMpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJxLT5sb2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyBERUZJTkVfTVVURVgoc2hhcmVzX211dGV4KTsKQEAgLTgzMzQsOCArODY2MCwxMyBAQAogCSAqIHcvbyB0cmlwcGluZyByZWJhbGFuY2Vfc2hhcmUgb3IgbG9hZF9iYWxhbmNlX2ZhaXIuCiAJICovCiAJdGctPnNoYXJlcyA9IHNoYXJlczsKLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkKKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkgeworCQkvKgorCQkgKiBmb3JjZSBhIHJlYmFsYW5jZQorCQkgKi8KKwkJY2ZzX3JxX3NldF9zaGFyZXModGctPmNmc19ycVtpXSwgMCk7CiAJCXNldF9zZV9zaGFyZXModGctPnNlW2ldLCBzaGFyZXMpOworCX0KIAogCS8qCiAJICogRW5hYmxlIGxvYWQgYmFsYW5jZSBhY3Rpdml0eSBvbiB0aGlzIGdyb3VwLCBieSBpbnNlcnRpbmcgaXQgYmFjayBvbgpAQCAtODM3NCw3ICs4NzA1LDcgQEAKICNpZmRlZiBDT05GSUdfQ0dST1VQX1NDSEVECiBzdGF0aWMgaW50IF9fcnRfc2NoZWR1bGFibGUoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCB1NjQgcGVyaW9kLCB1NjQgcnVudGltZSkKIHsKLQlzdHJ1Y3QgdGFza19ncm91cCAqdGdpLCAqcGFyZW50ID0gdGcgPyB0Zy0+cGFyZW50IDogTlVMTDsKKwlzdHJ1Y3QgdGFza19ncm91cCAqdGdpLCAqcGFyZW50ID0gdGctPnBhcmVudDsKIAl1bnNpZ25lZCBsb25nIHRvdGFsID0gMDsKIAogCWlmICghcGFyZW50KSB7CkBAIC04Mzk4LDcgKzg3MjksNyBAQAogCX0KIAlyY3VfcmVhZF91bmxvY2soKTsKIAotCXJldHVybiB0b3RhbCArIHRvX3JhdGlvKHBlcmlvZCwgcnVudGltZSkgPAorCXJldHVybiB0b3RhbCArIHRvX3JhdGlvKHBlcmlvZCwgcnVudGltZSkgPD0KIAkJdG9fcmF0aW8oa3RpbWVfdG9fbnMocGFyZW50LT5ydF9iYW5kd2lkdGgucnRfcGVyaW9kKSwKIAkJCQlwYXJlbnQtPnJ0X2JhbmR3aWR0aC5ydF9ydW50aW1lKTsKIH0KQEAgLTg1MDEsNiArODgzMiw5IEBACiAJcnRfcGVyaW9kID0gKHU2NClydF9wZXJpb2RfdXMgKiBOU0VDX1BFUl9VU0VDOwogCXJ0X3J1bnRpbWUgPSB0Zy0+cnRfYmFuZHdpZHRoLnJ0X3J1bnRpbWU7CiAKKwlpZiAocnRfcGVyaW9kID09IDApCisJCXJldHVybiAtRUlOVkFMOworCiAJcmV0dXJuIHRnX3NldF9iYW5kd2lkdGgodGcsIHJ0X3BlcmlvZCwgcnRfcnVudGltZSk7CiB9CiAKQEAgLTg1MTUsMTYgKzg4NDksMjEgQEAKIAogc3RhdGljIGludCBzY2hlZF9ydF9nbG9iYWxfY29uc3RyYWludHModm9pZCkKIHsKKwlzdHJ1Y3QgdGFza19ncm91cCAqdGcgPSAmcm9vdF90YXNrX2dyb3VwOworCXU2NCBydF9ydW50aW1lLCBydF9wZXJpb2Q7CiAJaW50IHJldCA9IDA7CiAKKwlydF9wZXJpb2QgPSBrdGltZV90b19ucyh0Zy0+cnRfYmFuZHdpZHRoLnJ0X3BlcmlvZCk7CisJcnRfcnVudGltZSA9IHRnLT5ydF9iYW5kd2lkdGgucnRfcnVudGltZTsKKwogCW11dGV4X2xvY2soJnJ0X2NvbnN0cmFpbnRzX211dGV4KTsKLQlpZiAoIV9fcnRfc2NoZWR1bGFibGUoTlVMTCwgMSwgMCkpCisJaWYgKCFfX3J0X3NjaGVkdWxhYmxlKHRnLCBydF9wZXJpb2QsIHJ0X3J1bnRpbWUpKQogCQlyZXQgPSAtRUlOVkFMOwogCW11dGV4X3VubG9jaygmcnRfY29uc3RyYWludHNfbXV0ZXgpOwogCiAJcmV0dXJuIHJldDsKIH0KLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1JUX0dST1VQX1NDSEVEICovCiBzdGF0aWMgaW50IHNjaGVkX3J0X2dsb2JhbF9jb25zdHJhaW50cyh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC04NTQyLDcgKzg4ODEsNyBAQAogCiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIAogaW50IHNjaGVkX3J0X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKIAkJc3RydWN0IGZpbGUgKmZpbHAsIHZvaWQgX191c2VyICpidWZmZXIsIHNpemVfdCAqbGVucCwKQEAgLTg2NTAsNyArODk4OSw3IEBACiAKIAlyZXR1cm4gKHU2NCkgdGctPnNoYXJlczsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19GQUlSX0dST1VQX1NDSEVEICovCiAKICNpZmRlZiBDT05GSUdfUlRfR1JPVVBfU0NIRUQKIHN0YXRpYyBpbnQgY3B1X3J0X3J1bnRpbWVfd3JpdGUoc3RydWN0IGNncm91cCAqY2dycCwgc3RydWN0IGNmdHlwZSAqY2Z0LApAQCAtODY3NCw3ICs5MDEzLDcgQEAKIHsKIAlyZXR1cm4gc2NoZWRfZ3JvdXBfcnRfcGVyaW9kKGNncm91cF90ZyhjZ3JwKSk7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIAogc3RhdGljIHN0cnVjdCBjZnR5cGUgY3B1X2ZpbGVzW10gPSB7CiAjaWZkZWYgQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQKZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9jbG9jay5jIGIva2VybmVsL3NjaGVkX2Nsb2NrLmMKaW5kZXggY2UwNTI3MS4uMjJlZDU1ZCAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkX2Nsb2NrLmMKKysrIGIva2VybmVsL3NjaGVkX2Nsb2NrLmMKQEAgLTMsNiArMyw5IEBACiAgKgogICogIENvcHlyaWdodCAoQykgMjAwOCBSZWQgSGF0LCBJbmMuLCBQZXRlciBaaWpsc3RyYSA8cHppamxzdHJAcmVkaGF0LmNvbT4KICAqCisgKiAgVXBkYXRlcyBhbmQgZW5oYW5jZW1lbnRzOgorICogICAgQ29weXJpZ2h0IChDKSAyMDA4IFJlZCBIYXQsIEluYy4gU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CisgKgogICogQmFzZWQgb24gY29kZSBieToKICAqICAgSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CiAgKiAgIEd1aWxsYXVtZSBDaGF6YXJhaW4gPGd1aWNoYXpAZ21haWwuY29tPgpAQCAtMzIsNiArMzUsMTEgQEAKIAogI2lmZGVmIENPTkZJR19IQVZFX1VOU1RBQkxFX1NDSEVEX0NMT0NLCiAKKyNkZWZpbmUgTVVMVElfU0hJRlQgMTUKKy8qIE1heCBpcyBkb3VibGUsIE1pbiBpcyAxLzIgKi8KKyNkZWZpbmUgTUFYX01VTFRJICgyTEwgPDwgTVVMVElfU0hJRlQpCisjZGVmaW5lIE1JTl9NVUxUSSAoMUxMIDw8IChNVUxUSV9TSElGVC0xKSkKKwogc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgewogCS8qCiAJICogUmF3IHNwaW5sb2NrIC0gdGhpcyBpcyBhIHNwZWNpYWwgY2FzZTogdGhpcyBtaWdodCBiZSBjYWxsZWQKQEAgLTQwLDExICs0OCwxNSBAQAogCSAqLwogCXJhd19zcGlubG9ja190CQlsb2NrOwogCi0JdW5zaWduZWQgbG9uZwkJcHJldl9qaWZmaWVzOworCXVuc2lnbmVkIGxvbmcJCXRpY2tfamlmZmllczsKIAl1NjQJCQlwcmV2X3JhdzsKIAl1NjQJCQl0aWNrX3JhdzsKIAl1NjQJCQl0aWNrX2d0b2Q7CiAJdTY0CQkJY2xvY2s7CisJczY0CQkJbXVsdGk7CisjaWZkZWYgQ09ORklHX05PX0haCisJaW50CQkJY2hlY2tfbWF4OworI2VuZGlmCiB9OwogCiBzdGF0aWMgREVGSU5FX1BFUl9DUFVfU0hBUkVEX0FMSUdORUQoc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEsIHNjaGVkX2Nsb2NrX2RhdGEpOwpAQCAtNzEsNDEgKzgzLDkxIEBACiAJCXN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpzY2QgPSBjcHVfc2RjKGNwdSk7CiAKIAkJc2NkLT5sb2NrID0gKHJhd19zcGlubG9ja190KV9fUkFXX1NQSU5fTE9DS19VTkxPQ0tFRDsKLQkJc2NkLT5wcmV2X2ppZmZpZXMgPSBub3dfamlmZmllczsKKwkJc2NkLT50aWNrX2ppZmZpZXMgPSBub3dfamlmZmllczsKIAkJc2NkLT5wcmV2X3JhdyA9IDA7CiAJCXNjZC0+dGlja19yYXcgPSAwOwogCQlzY2QtPnRpY2tfZ3RvZCA9IGt0aW1lX25vdzsKIAkJc2NkLT5jbG9jayA9IGt0aW1lX25vdzsKKwkJc2NkLT5tdWx0aSA9IDEgPDwgTVVMVElfU0hJRlQ7CisjaWZkZWYgQ09ORklHX05PX0haCisJCXNjZC0+Y2hlY2tfbWF4ID0gMTsKKyNlbmRpZgogCX0KIAogCXNjaGVkX2Nsb2NrX3J1bm5pbmcgPSAxOwogfQogCisjaWZkZWYgQ09ORklHX05PX0haCisvKgorICogVGhlIGR5bmFtaWMgdGlja3MgbWFrZXMgdGhlIGRlbHRhIGppZmZpZXMgaW5hY2N1cmF0ZS4gVGhpcworICogcHJldmVudHMgdXMgZnJvbSBjaGVja2luZyB0aGUgbWF4aW11bSB0aW1lIHVwZGF0ZS4KKyAqIERpc2FibGUgdGhlIG1heGltdW0gY2hlY2sgZHVyaW5nIHN0b3BwZWQgdGlja3MuCisgKi8KK3ZvaWQgc2NoZWRfY2xvY2tfdGlja19zdG9wKGludCBjcHUpCit7CisJc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKnNjZCA9IGNwdV9zZGMoY3B1KTsKKworCXNjZC0+Y2hlY2tfbWF4ID0gMDsKK30KKwordm9pZCBzY2hlZF9jbG9ja190aWNrX3N0YXJ0KGludCBjcHUpCit7CisJc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKnNjZCA9IGNwdV9zZGMoY3B1KTsKKworCXNjZC0+Y2hlY2tfbWF4ID0gMTsKK30KKworc3RhdGljIGludCBjaGVja19tYXgoc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKnNjZCkKK3sKKwlyZXR1cm4gc2NkLT5jaGVja19tYXg7Cit9CisjZWxzZQorc3RhdGljIGludCBjaGVja19tYXgoc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKnNjZCkKK3sKKwlyZXR1cm4gMTsKK30KKyNlbmRpZiAvKiBDT05GSUdfTk9fSFogKi8KKwogLyoKICAqIHVwZGF0ZSB0aGUgcGVyY3B1IHNjZCBmcm9tIHRoZSByYXcgQG5vdyB2YWx1ZQogICoKICAqICAtIGZpbHRlciBvdXQgYmFja3dhcmQgbW90aW9uCiAgKiAgLSB1c2UgamlmZmllcyB0byBnZW5lcmF0ZSBhIG1pbixtYXggd2luZG93IHRvIGNsaXAgdGhlIHJhdyB2YWx1ZXMKICAqLwotc3RhdGljIHZvaWQgX191cGRhdGVfc2NoZWRfY2xvY2soc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKnNjZCwgdTY0IG5vdykKK3N0YXRpYyB2b2lkIF9fdXBkYXRlX3NjaGVkX2Nsb2NrKHN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpzY2QsIHU2NCBub3csIHU2NCAqdGltZSkKIHsKIAl1bnNpZ25lZCBsb25nIG5vd19qaWZmaWVzID0gamlmZmllczsKLQlsb25nIGRlbHRhX2ppZmZpZXMgPSBub3dfamlmZmllcyAtIHNjZC0+cHJldl9qaWZmaWVzOworCWxvbmcgZGVsdGFfamlmZmllcyA9IG5vd19qaWZmaWVzIC0gc2NkLT50aWNrX2ppZmZpZXM7CiAJdTY0IGNsb2NrID0gc2NkLT5jbG9jazsKIAl1NjQgbWluX2Nsb2NrLCBtYXhfY2xvY2s7CiAJczY0IGRlbHRhID0gbm93IC0gc2NkLT5wcmV2X3JhdzsKIAogCVdBUk5fT05fT05DRSghaXJxc19kaXNhYmxlZCgpKTsKLQltaW5fY2xvY2sgPSBzY2QtPnRpY2tfZ3RvZCArIGRlbHRhX2ppZmZpZXMgKiBUSUNLX05TRUM7CisKKwkvKgorCSAqIEF0IHNjaGVkdWxlIHRpY2sgdGhlIGNsb2NrIGNhbiBiZSBqdXN0IHVuZGVyIHRoZSBndG9kLiBXZSBkb24ndAorCSAqIHdhbnQgdG8gcHVzaCBpdCB0b28gcHJlbWF0dXJlbHkuCisJICovCisJbWluX2Nsb2NrID0gc2NkLT50aWNrX2d0b2QgKyAoZGVsdGFfamlmZmllcyAqIFRJQ0tfTlNFQyk7CisJaWYgKG1pbl9jbG9jayA+IFRJQ0tfTlNFQykKKwkJbWluX2Nsb2NrIC09IFRJQ0tfTlNFQyAvIDI7CiAKIAlpZiAodW5saWtlbHkoZGVsdGEgPCAwKSkgewogCQljbG9jaysrOwogCQlnb3RvIG91dDsKIAl9CiAKLQltYXhfY2xvY2sgPSBtaW5fY2xvY2sgKyBUSUNLX05TRUM7CisJLyoKKwkgKiBUaGUgY2xvY2sgbXVzdCBzdGF5IHdpdGhpbiBhIGppZmZpZSBvZiB0aGUgZ3RvZC4KKwkgKiBCdXQgc2luY2Ugd2UgbWF5IGJlIGF0IHRoZSBzdGFydCBvZiBhIGppZmZ5IG9yIHRoZSBlbmQgb2Ygb25lCisJICogd2UgYWRkIGFub3RoZXIgamlmZnkgYnVmZmVyLgorCSAqLworCW1heF9jbG9jayA9IHNjZC0+dGlja19ndG9kICsgKDIgKyBkZWx0YV9qaWZmaWVzKSAqIFRJQ0tfTlNFQzsKIAotCWlmICh1bmxpa2VseShjbG9jayArIGRlbHRhID4gbWF4X2Nsb2NrKSkgeworCWRlbHRhICo9IHNjZC0+bXVsdGk7CisJZGVsdGEgPj49IE1VTFRJX1NISUZUOworCisJaWYgKHVubGlrZWx5KGNsb2NrICsgZGVsdGEgPiBtYXhfY2xvY2spICYmIGNoZWNrX21heChzY2QpKSB7CiAJCWlmIChjbG9jayA8IG1heF9jbG9jaykKIAkJCWNsb2NrID0gbWF4X2Nsb2NrOwogCQllbHNlCkBAIC0xMTgsOSArMTgwLDEyIEBACiAJaWYgKHVubGlrZWx5KGNsb2NrIDwgbWluX2Nsb2NrKSkKIAkJY2xvY2sgPSBtaW5fY2xvY2s7CiAKLQlzY2QtPnByZXZfcmF3ID0gbm93OwotCXNjZC0+cHJldl9qaWZmaWVzID0gbm93X2ppZmZpZXM7Ci0Jc2NkLT5jbG9jayA9IGNsb2NrOworCWlmICh0aW1lKQorCQkqdGltZSA9IGNsb2NrOworCWVsc2UgeworCQlzY2QtPnByZXZfcmF3ID0gbm93OworCQlzY2QtPmNsb2NrID0gY2xvY2s7CisJfQogfQogCiBzdGF0aWMgdm9pZCBsb2NrX2RvdWJsZV9jbG9jayhzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSAqZGF0YTEsCkBAIC0xNjAsMjUgKzIyNSwzMCBAQAogCQlub3cgLT0gbXlfc2NkLT50aWNrX3JhdzsKIAkJbm93ICs9IHNjZC0+dGlja19yYXc7CiAKLQkJbm93IC09IG15X3NjZC0+dGlja19ndG9kOwotCQlub3cgKz0gc2NkLT50aWNrX2d0b2Q7CisJCW5vdyArPSBteV9zY2QtPnRpY2tfZ3RvZDsKKwkJbm93IC09IHNjZC0+dGlja19ndG9kOwogCiAJCV9fcmF3X3NwaW5fdW5sb2NrKCZteV9zY2QtPmxvY2spOworCisJCV9fdXBkYXRlX3NjaGVkX2Nsb2NrKHNjZCwgbm93LCAmY2xvY2spOworCisJCV9fcmF3X3NwaW5fdW5sb2NrKCZzY2QtPmxvY2spOworCiAJfSBlbHNlIHsKIAkJX19yYXdfc3Bpbl9sb2NrKCZzY2QtPmxvY2spOworCQlfX3VwZGF0ZV9zY2hlZF9jbG9jayhzY2QsIG5vdywgTlVMTCk7CisJCWNsb2NrID0gc2NkLT5jbG9jazsKKwkJX19yYXdfc3Bpbl91bmxvY2soJnNjZC0+bG9jayk7CiAJfQogCi0JX191cGRhdGVfc2NoZWRfY2xvY2soc2NkLCBub3cpOwotCWNsb2NrID0gc2NkLT5jbG9jazsKLQotCV9fcmF3X3NwaW5fdW5sb2NrKCZzY2QtPmxvY2spOwotCiAJcmV0dXJuIGNsb2NrOwogfQogCiB2b2lkIHNjaGVkX2Nsb2NrX3RpY2sodm9pZCkKIHsKIAlzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSAqc2NkID0gdGhpc19zY2QoKTsKKwl1bnNpZ25lZCBsb25nIG5vd19qaWZmaWVzID0gamlmZmllczsKKwlzNjQgbXVsdCwgZGVsdGFfZ3RvZCwgZGVsdGFfcmF3OwogCXU2NCBub3csIG5vd19ndG9kOwogCiAJaWYgKHVubGlrZWx5KCFzY2hlZF9jbG9ja19ydW5uaW5nKSkKQEAgLTE4NiwxOCArMjU2LDMzIEBACiAKIAlXQVJOX09OX09OQ0UoIWlycXNfZGlzYWJsZWQoKSk7CiAKLQlub3cgPSBzY2hlZF9jbG9jaygpOwogCW5vd19ndG9kID0ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0KCkpOworCW5vdyA9IHNjaGVkX2Nsb2NrKCk7CiAKIAlfX3Jhd19zcGluX2xvY2soJnNjZC0+bG9jayk7Ci0JX191cGRhdGVfc2NoZWRfY2xvY2soc2NkLCBub3cpOworCV9fdXBkYXRlX3NjaGVkX2Nsb2NrKHNjZCwgbm93LCBOVUxMKTsKIAkvKgogCSAqIHVwZGF0ZSB0aWNrX2d0b2QgYWZ0ZXIgX191cGRhdGVfc2NoZWRfY2xvY2soKSBiZWNhdXNlIHRoYXQgd2lsbAogCSAqIGFscmVhZHkgb2JzZXJ2ZSAxIG5ldyBqaWZmeTsgYWRkaW5nIGEgbmV3IHRpY2tfZ3RvZCB0byB0aGF0IHdvdWxkCiAJICogaW5jcmVhc2UgdGhlIGNsb2NrIDIgamlmZmllcy4KIAkgKi8KKwlkZWx0YV9ndG9kID0gbm93X2d0b2QgLSBzY2QtPnRpY2tfZ3RvZDsKKwlkZWx0YV9yYXcgPSBub3cgLSBzY2QtPnRpY2tfcmF3OworCisJaWYgKChsb25nKWRlbHRhX3JhdyA+IDApIHsKKwkJbXVsdCA9IGRlbHRhX2d0b2QgPDwgTVVMVElfU0hJRlQ7CisJCWRvX2RpdihtdWx0LCBkZWx0YV9yYXcpOworCQlzY2QtPm11bHRpID0gbXVsdDsKKwkJaWYgKHNjZC0+bXVsdGkgPiBNQVhfTVVMVEkpCisJCQlzY2QtPm11bHRpID0gTUFYX01VTFRJOworCQllbHNlIGlmIChzY2QtPm11bHRpIDwgTUlOX01VTFRJKQorCQkJc2NkLT5tdWx0aSA9IE1JTl9NVUxUSTsKKwl9IGVsc2UKKwkJc2NkLT5tdWx0aSA9IDEgPDwgTVVMVElfU0hJRlQ7CisKIAlzY2QtPnRpY2tfcmF3ID0gbm93OwogCXNjZC0+dGlja19ndG9kID0gbm93X2d0b2Q7CisJc2NkLT50aWNrX2ppZmZpZXMgPSBub3dfamlmZmllczsKIAlfX3Jhd19zcGluX3VubG9jaygmc2NkLT5sb2NrKTsKIH0KIApAQCAtMjI3LDYgKzMxMiw3IEBACiAJX19yYXdfc3Bpbl9sb2NrKCZzY2QtPmxvY2spOwogCXNjZC0+cHJldl9yYXcgPSBub3c7CiAJc2NkLT5jbG9jayArPSBkZWx0YV9uczsKKwlzY2QtPm11bHRpID0gMSA8PCBNVUxUSV9TSElGVDsKIAlfX3Jhd19zcGluX3VubG9jaygmc2NkLT5sb2NrKTsKIAogCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKQEAgLTI0NCwzICszMzAsMTYgQEAKIHsKIAlyZXR1cm4gKHVuc2lnbmVkIGxvbmcgbG9uZylqaWZmaWVzICogKE5TRUNfUEVSX1NFQyAvIEhaKTsKIH0KKwordW5zaWduZWQgbG9uZyBsb25nIGNwdV9jbG9jayhpbnQgY3B1KQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBjbG9jazsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWNsb2NrID0gc2NoZWRfY2xvY2tfY3B1KGNwdSk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcmV0dXJuIGNsb2NrOworfQorRVhQT1JUX1NZTUJPTF9HUEwoY3B1X2Nsb2NrKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9jcHVwcmkuYyBiL2tlcm5lbC9zY2hlZF9jcHVwcmkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjE1NGZlCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3NjaGVkX2NwdXByaS5jCkBAIC0wLDAgKzEsMTc0IEBACisvKgorICogIGtlcm5lbC9zY2hlZF9jcHVwcmkuYworICoKKyAqICBDUFUgcHJpb3JpdHkgbWFuYWdlbWVudAorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBOb3ZlbGwKKyAqCisgKiAgQXV0aG9yOiBHcmVnb3J5IEhhc2tpbnMgPGdoYXNraW5zQG5vdmVsbC5jb20+CisgKgorICogIFRoaXMgY29kZSB0cmFja3MgdGhlIHByaW9yaXR5IG9mIGVhY2ggQ1BVIHNvIHRoYXQgZ2xvYmFsIG1pZ3JhdGlvbgorICogIGRlY2lzaW9ucyBhcmUgZWFzeSB0byBjYWxjdWxhdGUuICBFYWNoIENQVSBjYW4gYmUgaW4gYSBzdGF0ZSBhcyBmb2xsb3dzOgorICoKKyAqICAgICAgICAgICAgICAgICAoSU5WQUxJRCksIElETEUsIE5PUk1BTCwgUlQxLCAuLi4gUlQ5OQorICoKKyAqICBnb2luZyBmcm9tIHRoZSBsb3dlc3QgcHJpb3JpdHkgdG8gdGhlIGhpZ2hlc3QuICBDUFVzIGluIHRoZSBJTlZBTElEIHN0YXRlCisgKiAgYXJlIG5vdCBlbGlnaWJsZSBmb3Igcm91dGluZy4gIFRoZSBzeXN0ZW0gbWFpbnRhaW5zIHRoaXMgc3RhdGUgd2l0aAorICogIGEgMiBkaW1lbnNpb25hbCBiaXRtYXAgKHRoZSBmaXJzdCBmb3IgcHJpb3JpdHkgY2xhc3MsIHRoZSBzZWNvbmQgZm9yIGNwdXMKKyAqICBpbiB0aGF0IGNsYXNzKS4gIFRoZXJlZm9yZSBhIHR5cGljYWwgYXBwbGljYXRpb24gd2l0aG91dCBhZmZpbml0eQorICogIHJlc3RyaWN0aW9ucyBjYW4gZmluZCBhIHN1aXRhYmxlIENQVSB3aXRoIE8oMSkgY29tcGxleGl0eSAoZS5nLiB0d28gYml0CisgKiAgc2VhcmNoZXMpLiAgRm9yIHRhc2tzIHdpdGggYWZmaW5pdHkgcmVzdHJpY3Rpb25zLCB0aGUgYWxnb3JpdGhtIGhhcyBhCisgKiAgd29yc3QgY2FzZSBjb21wbGV4aXR5IG9mIE8obWluKDEwMiwgbnJfZG9tY3B1cykpLCB0aG91Z2ggdGhlIHNjZW5hcmlvIHRoYXQKKyAqICB5aWVsZHMgdGhlIHdvcnN0IGNhc2Ugc2VhcmNoIGlzIGZhaXJseSBjb250cml2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIKKyAqICBvZiB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAic2NoZWRfY3B1cHJpLmgiCisKKy8qIENvbnZlcnQgYmV0d2VlbiBhIDE0MCBiYXNlZCB0YXNrLT5wcmlvLCBhbmQgb3VyIDEwMiBiYXNlZCBjcHVwcmkgKi8KK3N0YXRpYyBpbnQgY29udmVydF9wcmlvKGludCBwcmlvKQoreworCWludCBjcHVwcmk7CisKKwlpZiAocHJpbyA9PSBDUFVQUklfSU5WQUxJRCkKKwkJY3B1cHJpID0gQ1BVUFJJX0lOVkFMSUQ7CisJZWxzZSBpZiAocHJpbyA9PSBNQVhfUFJJTykKKwkJY3B1cHJpID0gQ1BVUFJJX0lETEU7CisJZWxzZSBpZiAocHJpbyA+PSBNQVhfUlRfUFJJTykKKwkJY3B1cHJpID0gQ1BVUFJJX05PUk1BTDsKKwllbHNlCisJCWNwdXByaSA9IE1BWF9SVF9QUklPIC0gcHJpbyArIDE7CisKKwlyZXR1cm4gY3B1cHJpOworfQorCisjZGVmaW5lIGZvcl9lYWNoX2NwdXByaV9hY3RpdmUoYXJyYXksIGlkeCkgICAgICAgICAgICAgICAgICAgIFwKKyAgZm9yIChpZHggPSBmaW5kX2ZpcnN0X2JpdChhcnJheSwgQ1BVUFJJX05SX1BSSU9SSVRJRVMpOyAgICAgXAorICAgICAgIGlkeCA8IENQVVBSSV9OUl9QUklPUklUSUVTOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgaWR4ID0gZmluZF9uZXh0X2JpdChhcnJheSwgQ1BVUFJJX05SX1BSSU9SSVRJRVMsIGlkeCsxKSkKKworLyoqCisgKiBjcHVwcmlfZmluZCAtIGZpbmQgdGhlIGJlc3QgKGxvd2VzdC1wcmkpIENQVSBpbiB0aGUgc3lzdGVtCisgKiBAY3A6IFRoZSBjcHVwcmkgY29udGV4dAorICogQHA6IFRoZSB0YXNrCisgKiBAbG93ZXN0X21hc2s6IEEgbWFzayB0byBmaWxsIGluIHdpdGggc2VsZWN0ZWQgQ1BVcworICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcmVjb21tZW5kZWQgQ1BVcyBhcyBjYWxjdWxhdGVkIGR1cmluZyB0aGUKKyAqIGN1cnJlbnQgaW52b2thdGlvbi4gIEJ5IHRoZSB0aW1lIHRoZSBjYWxsIHJldHVybnMsIHRoZSBDUFVzIG1heSBoYXZlIGluCisgKiBmYWN0IGNoYW5nZWQgcHJpb3JpdGllcyBhbnkgbnVtYmVyIG9mIHRpbWVzLiAgV2hpbGUgbm90IGlkZWFsLCBpdCBpcyBub3QKKyAqIGFuIGlzc3VlIG9mIGNvcnJlY3RuZXNzIHNpbmNlIHRoZSBub3JtYWwgcmViYWxhbmNlciBsb2dpYyB3aWxsIGNvcnJlY3QKKyAqIGFueSBkaXNjcmVwYW5jaWVzIGNyZWF0ZWQgYnkgcmFjaW5nIGFnYWluc3QgdGhlIHVuY2VydGFpbnR5IG9mIHRoZSBjdXJyZW50CisgKiBwcmlvcml0eSBjb25maWd1cmF0aW9uLgorICoKKyAqIFJldHVybnM6IChpbnQpYm9vbCAtIENQVXMgd2VyZSBmb3VuZAorICovCitpbnQgY3B1cHJpX2ZpbmQoc3RydWN0IGNwdXByaSAqY3AsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwKKwkJY3B1bWFza190ICpsb3dlc3RfbWFzaykKK3sKKwlpbnQgICAgICAgICAgICAgICAgICBpZHggICAgICA9IDA7CisJaW50ICAgICAgICAgICAgICAgICAgdGFza19wcmkgPSBjb252ZXJ0X3ByaW8ocC0+cHJpbyk7CisKKwlmb3JfZWFjaF9jcHVwcmlfYWN0aXZlKGNwLT5wcmlfYWN0aXZlLCBpZHgpIHsKKwkJc3RydWN0IGNwdXByaV92ZWMgKnZlYyAgPSAmY3AtPnByaV90b19jcHVbaWR4XTsKKwkJY3B1bWFza190IG1hc2s7CisKKwkJaWYgKGlkeCA+PSB0YXNrX3ByaSkKKwkJCWJyZWFrOworCisJCWNwdXNfYW5kKG1hc2ssIHAtPmNwdXNfYWxsb3dlZCwgdmVjLT5tYXNrKTsKKworCQlpZiAoY3B1c19lbXB0eShtYXNrKSkKKwkJCWNvbnRpbnVlOworCisJCSpsb3dlc3RfbWFzayA9IG1hc2s7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCisvKioKKyAqIGNwdXByaV9zZXQgLSB1cGRhdGUgdGhlIGNwdSBwcmlvcml0eSBzZXR0aW5nCisgKiBAY3A6IFRoZSBjcHVwcmkgY29udGV4dAorICogQGNwdTogVGhlIHRhcmdldCBjcHUKKyAqIEBwcmk6IFRoZSBwcmlvcml0eSAoSU5WQUxJRC1SVDk5KSB0byBhc3NpZ24gdG8gdGhpcyBDUFUKKyAqCisgKiBOb3RlOiBBc3N1bWVzIGNwdV9ycShjcHUpLT5sb2NrIGlzIGxvY2tlZAorICoKKyAqIFJldHVybnM6ICh2b2lkKQorICovCit2b2lkIGNwdXByaV9zZXQoc3RydWN0IGNwdXByaSAqY3AsIGludCBjcHUsIGludCBuZXdwcmkpCit7CisJaW50ICAgICAgICAgICAgICAgICAqY3VycnByaSA9ICZjcC0+Y3B1X3RvX3ByaVtjcHVdOworCWludCAgICAgICAgICAgICAgICAgIG9sZHByaSAgPSAqY3VycnByaTsKKwl1bnNpZ25lZCBsb25nICAgICAgICBmbGFnczsKKworCW5ld3ByaSA9IGNvbnZlcnRfcHJpbyhuZXdwcmkpOworCisJQlVHX09OKG5ld3ByaSA+PSBDUFVQUklfTlJfUFJJT1JJVElFUyk7CisKKwlpZiAobmV3cHJpID09IG9sZHByaSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBJZiB0aGUgY3B1IHdhcyBjdXJyZW50bHkgbWFwcGVkIHRvIGEgZGlmZmVyZW50IHZhbHVlLCB3ZQorCSAqIGZpcnN0IG5lZWQgdG8gdW5tYXAgdGhlIG9sZCB2YWx1ZQorCSAqLworCWlmIChsaWtlbHkob2xkcHJpICE9IENQVVBSSV9JTlZBTElEKSkgeworCQlzdHJ1Y3QgY3B1cHJpX3ZlYyAqdmVjICA9ICZjcC0+cHJpX3RvX2NwdVtvbGRwcmldOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZ2ZWMtPmxvY2ssIGZsYWdzKTsKKworCQl2ZWMtPmNvdW50LS07CisJCWlmICghdmVjLT5jb3VudCkKKwkJCWNsZWFyX2JpdChvbGRwcmksIGNwLT5wcmlfYWN0aXZlKTsKKwkJY3B1X2NsZWFyKGNwdSwgdmVjLT5tYXNrKTsKKworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWMtPmxvY2ssIGZsYWdzKTsKKwl9CisKKwlpZiAobGlrZWx5KG5ld3ByaSAhPSBDUFVQUklfSU5WQUxJRCkpIHsKKwkJc3RydWN0IGNwdXByaV92ZWMgKnZlYyA9ICZjcC0+cHJpX3RvX2NwdVtuZXdwcmldOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZ2ZWMtPmxvY2ssIGZsYWdzKTsKKworCQljcHVfc2V0KGNwdSwgdmVjLT5tYXNrKTsKKwkJdmVjLT5jb3VudCsrOworCQlpZiAodmVjLT5jb3VudCA9PSAxKQorCQkJc2V0X2JpdChuZXdwcmksIGNwLT5wcmlfYWN0aXZlKTsKKworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWMtPmxvY2ssIGZsYWdzKTsKKwl9CisKKwkqY3VycnByaSA9IG5ld3ByaTsKK30KKworLyoqCisgKiBjcHVwcmlfaW5pdCAtIGluaXRpYWxpemUgdGhlIGNwdXByaSBzdHJ1Y3R1cmUKKyAqIEBjcDogVGhlIGNwdXByaSBjb250ZXh0CisgKgorICogUmV0dXJuczogKHZvaWQpCisgKi8KK3ZvaWQgY3B1cHJpX2luaXQoc3RydWN0IGNwdXByaSAqY3ApCit7CisJaW50IGk7CisKKwltZW1zZXQoY3AsIDAsIHNpemVvZigqY3ApKTsKKworCWZvciAoaSA9IDA7IGkgPCBDUFVQUklfTlJfUFJJT1JJVElFUzsgaSsrKSB7CisJCXN0cnVjdCBjcHVwcmlfdmVjICp2ZWMgPSAmY3AtPnByaV90b19jcHVbaV07CisKKwkJc3Bpbl9sb2NrX2luaXQoJnZlYy0+bG9jayk7CisJCXZlYy0+Y291bnQgPSAwOworCQljcHVzX2NsZWFyKHZlYy0+bWFzayk7CisJfQorCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpCisJCWNwLT5jcHVfdG9fcHJpW2ldID0gQ1BVUFJJX0lOVkFMSUQ7Cit9CisKKwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX2NwdXByaS5oIGIva2VybmVsL3NjaGVkX2NwdXByaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNTgxMWIwCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3NjaGVkX2NwdXByaS5oCkBAIC0wLDAgKzEsMzYgQEAKKyNpZm5kZWYgX0xJTlVYX0NQVVBSSV9ICisjZGVmaW5lIF9MSU5VWF9DUFVQUklfSAorCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKworI2RlZmluZSBDUFVQUklfTlJfUFJJT1JJVElFUwkoTUFYX1JUX1BSSU8gKyAyKQorI2RlZmluZSBDUFVQUklfTlJfUFJJX1dPUkRTCUJJVFNfVE9fTE9OR1MoQ1BVUFJJX05SX1BSSU9SSVRJRVMpCisKKyNkZWZpbmUgQ1BVUFJJX0lOVkFMSUQgLTEKKyNkZWZpbmUgQ1BVUFJJX0lETEUgICAgIDAKKyNkZWZpbmUgQ1BVUFJJX05PUk1BTCAgIDEKKy8qIHZhbHVlcyAyLTEwMSBhcmUgUlQgcHJpb3JpdGllcyAwLTk5ICovCisKK3N0cnVjdCBjcHVwcmlfdmVjIHsKKwlzcGlubG9ja190IGxvY2s7CisJaW50ICAgICAgICBjb3VudDsKKwljcHVtYXNrX3QgIG1hc2s7Cit9OworCitzdHJ1Y3QgY3B1cHJpIHsKKwlzdHJ1Y3QgY3B1cHJpX3ZlYyBwcmlfdG9fY3B1W0NQVVBSSV9OUl9QUklPUklUSUVTXTsKKwlsb25nICAgICAgICAgICAgICBwcmlfYWN0aXZlW0NQVVBSSV9OUl9QUklfV09SRFNdOworCWludCAgICAgICAgICAgICAgIGNwdV90b19wcmlbTlJfQ1BVU107Cit9OworCisjaWZkZWYgQ09ORklHX1NNUAoraW50ICBjcHVwcmlfZmluZChzdHJ1Y3QgY3B1cHJpICpjcCwKKwkJIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY3B1bWFza190ICpsb3dlc3RfbWFzayk7Cit2b2lkIGNwdXByaV9zZXQoc3RydWN0IGNwdXByaSAqY3AsIGludCBjcHUsIGludCBwcmkpOwordm9pZCBjcHVwcmlfaW5pdChzdHJ1Y3QgY3B1cHJpICpjcCk7CisjZWxzZQorI2RlZmluZSBjcHVwcmlfc2V0KGNwLCBjcHUsIHByaSkgZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBjcHVwcmlfaW5pdCgpIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjZW5kaWYgLyogX0xJTlVYX0NQVVBSSV9IICovCmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWRfZGVidWcuYyBiL2tlcm5lbC9zY2hlZF9kZWJ1Zy5jCmluZGV4IDhiYjcxMzAuLmJiZTZiMzEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZF9kZWJ1Zy5jCisrKyBiL2tlcm5lbC9zY2hlZF9kZWJ1Zy5jCkBAIC0xMTksOSArMTE5LDcgQEAKIAlzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpsYXN0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLSNpZiAhZGVmaW5lZChDT05GSUdfQ0dST1VQX1NDSEVEKSB8fCAhZGVmaW5lZChDT05GSUdfVVNFUl9TQ0hFRCkKLQlTRVFfcHJpbnRmKG0sICJcbmNmc19ycVslZF06XG4iLCBjcHUpOwotI2Vsc2UKKyNpZiBkZWZpbmVkKENPTkZJR19DR1JPVVBfU0NIRUQpICYmIGRlZmluZWQoQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQpCiAJY2hhciBwYXRoWzEyOF0gPSAiIjsKIAlzdHJ1Y3QgY2dyb3VwICpjZ3JvdXAgPSBOVUxMOwogCXN0cnVjdCB0YXNrX2dyb3VwICp0ZyA9IGNmc19ycS0+dGc7CkBAIC0xMzMsNiArMTMxLDggQEAKIAkJY2dyb3VwX3BhdGgoY2dyb3VwLCBwYXRoLCBzaXplb2YocGF0aCkpOwogCiAJU0VRX3ByaW50ZihtLCAiXG5jZnNfcnFbJWRdOiVzXG4iLCBjcHUsIHBhdGgpOworI2Vsc2UKKwlTRVFfcHJpbnRmKG0sICJcbmNmc19ycVslZF06XG4iLCBjcHUpOwogI2VuZGlmCiAKIAlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJUxkLiUwNmxkXG4iLCAiZXhlY19jbG9jayIsCkBAIC0xNjIsMTEgKzE2Miw2NCBAQAogCVNFUV9wcmludGYobSwgIiAgLiUtMzBzOiAlbGRcbiIsICJucl9ydW5uaW5nIiwgY2ZzX3JxLT5ucl9ydW5uaW5nKTsKIAlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJWxkXG4iLCAibG9hZCIsIGNmc19ycS0+bG9hZC53ZWlnaHQpOwogI2lmZGVmIENPTkZJR19TQ0hFRFNUQVRTCi0JU0VRX3ByaW50ZihtLCAiICAuJS0zMHM6ICVkXG4iLCAiYmtsX2NvdW50IiwKLQkJCXJxLT5ia2xfY291bnQpOworI2RlZmluZSBQKG4pIFNFUV9wcmludGYobSwgIiAgLiUtMzBzOiAlZFxuIiwgI24sIHJxLT5uKTsKKworCVAoeWxkX2V4cF9lbXB0eSk7CisJUCh5bGRfYWN0X2VtcHR5KTsKKwlQKHlsZF9ib3RoX2VtcHR5KTsKKwlQKHlsZF9jb3VudCk7CisKKwlQKHNjaGVkX3N3aXRjaCk7CisJUChzY2hlZF9jb3VudCk7CisJUChzY2hlZF9nb2lkbGUpOworCisJUCh0dHd1X2NvdW50KTsKKwlQKHR0d3VfbG9jYWwpOworCisJUChia2xfY291bnQpOworCisjdW5kZWYgUAogI2VuZGlmCiAJU0VRX3ByaW50ZihtLCAiICAuJS0zMHM6ICVsZFxuIiwgIm5yX3NwcmVhZF9vdmVyIiwKIAkJCWNmc19ycS0+bnJfc3ByZWFkX292ZXIpOworI2lmZGVmIENPTkZJR19GQUlSX0dST1VQX1NDSEVECisjaWZkZWYgQ09ORklHX1NNUAorCVNFUV9wcmludGYobSwgIiAgLiUtMzBzOiAlbHVcbiIsICJzaGFyZXMiLCBjZnNfcnEtPnNoYXJlcyk7CisjZW5kaWYKKyNlbmRpZgorfQorCit2b2lkIHByaW50X3J0X3JxKHN0cnVjdCBzZXFfZmlsZSAqbSwgaW50IGNwdSwgc3RydWN0IHJ0X3JxICpydF9ycSkKK3sKKyNpZiBkZWZpbmVkKENPTkZJR19DR1JPVVBfU0NIRUQpICYmIGRlZmluZWQoQ09ORklHX1JUX0dST1VQX1NDSEVEKQorCWNoYXIgcGF0aFsxMjhdID0gIiI7CisJc3RydWN0IGNncm91cCAqY2dyb3VwID0gTlVMTDsKKwlzdHJ1Y3QgdGFza19ncm91cCAqdGcgPSBydF9ycS0+dGc7CisKKwlpZiAodGcpCisJCWNncm91cCA9IHRnLT5jc3MuY2dyb3VwOworCisJaWYgKGNncm91cCkKKwkJY2dyb3VwX3BhdGgoY2dyb3VwLCBwYXRoLCBzaXplb2YocGF0aCkpOworCisJU0VRX3ByaW50ZihtLCAiXG5ydF9ycVslZF06JXNcbiIsIGNwdSwgcGF0aCk7CisjZWxzZQorCVNFUV9wcmludGYobSwgIlxucnRfcnFbJWRdOlxuIiwgY3B1KTsKKyNlbmRpZgorCisKKyNkZWZpbmUgUCh4KSBcCisJU0VRX3ByaW50ZihtLCAiICAuJS0zMHM6ICVMZFxuIiwgI3gsIChsb25nIGxvbmcpKHJ0X3JxLT54KSkKKyNkZWZpbmUgUE4oeCkgXAorCVNFUV9wcmludGYobSwgIiAgLiUtMzBzOiAlTGQuJTA2bGRcbiIsICN4LCBTUExJVF9OUyhydF9ycS0+eCkpCisKKwlQKHJ0X25yX3J1bm5pbmcpOworCVAocnRfdGhyb3R0bGVkKTsKKwlQTihydF90aW1lKTsKKwlQTihydF9ydW50aW1lKTsKKworI3VuZGVmIFBOCisjdW5kZWYgUAogfQogCiBzdGF0aWMgdm9pZCBwcmludF9jcHUoc3RydWN0IHNlcV9maWxlICptLCBpbnQgY3B1KQpAQCAtMjA4LDYgKzI2MSw3IEBACiAjdW5kZWYgUE4KIAogCXByaW50X2Nmc19zdGF0cyhtLCBjcHUpOworCXByaW50X3J0X3N0YXRzKG0sIGNwdSk7CiAKIAlwcmludF9ycShtLCBycSwgY3B1KTsKIH0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9mYWlyLmMgYi9rZXJuZWwvc2NoZWRfZmFpci5jCmluZGV4IDA4YWU4NDguLmYyYWE5ODcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZF9mYWlyLmMKKysrIGIva2VybmVsL3NjaGVkX2ZhaXIuYwpAQCAtNjMsMTMgKzYzLDEzIEBACiAKIC8qCiAgKiBTQ0hFRF9PVEhFUiB3YWtlLXVwIGdyYW51bGFyaXR5LgotICogKGRlZmF1bHQ6IDEwIG1zZWMgKiAoMSArIGlsb2cobmNwdXMpKSwgdW5pdHM6IG5hbm9zZWNvbmRzKQorICogKGRlZmF1bHQ6IDUgbXNlYyAqICgxICsgaWxvZyhuY3B1cykpLCB1bml0czogbmFub3NlY29uZHMpCiAgKgogICogVGhpcyBvcHRpb24gZGVsYXlzIHRoZSBwcmVlbXB0aW9uIGVmZmVjdHMgb2YgZGVjb3VwbGVkIHdvcmtsb2FkcwogICogYW5kIHJlZHVjZXMgdGhlaXIgb3Zlci1zY2hlZHVsaW5nLiBTeW5jaHJvbm91cyB3b3JrbG9hZHMgd2lsbCBzdGlsbAogICogaGF2ZSBpbW1lZGlhdGUgd2FrZXVwL3NsZWVwIGxhdGVuY2llcy4KICAqLwotdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF93YWtldXBfZ3JhbnVsYXJpdHkgPSAxMDAwMDAwMFVMOwordW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF93YWtldXBfZ3JhbnVsYXJpdHkgPSA1MDAwMDAwVUw7CiAKIGNvbnN0X2RlYnVnIHVuc2lnbmVkIGludCBzeXNjdGxfc2NoZWRfbWlncmF0aW9uX2Nvc3QgPSA1MDAwMDBVTDsKIApAQCAtMzM0LDYgKzMzNCwzNCBAQAogI2VuZGlmCiAKIC8qCisgKiBkZWx0YSAqPSB3IC8gcncKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCitjYWxjX2RlbHRhX3dlaWdodCh1bnNpZ25lZCBsb25nIGRlbHRhLCBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSkKK3sKKwlmb3JfZWFjaF9zY2hlZF9lbnRpdHkoc2UpIHsKKwkJZGVsdGEgPSBjYWxjX2RlbHRhX21pbmUoZGVsdGEsCisJCQkJc2UtPmxvYWQud2VpZ2h0LCAmY2ZzX3JxX29mKHNlKS0+bG9hZCk7CisJfQorCisJcmV0dXJuIGRlbHRhOworfQorCisvKgorICogZGVsdGEgKj0gcncgLyB3CisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZworY2FsY19kZWx0YV9mYWlyKHVuc2lnbmVkIGxvbmcgZGVsdGEsIHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQoreworCWZvcl9lYWNoX3NjaGVkX2VudGl0eShzZSkgeworCQlkZWx0YSA9IGNhbGNfZGVsdGFfbWluZShkZWx0YSwKKwkJCQljZnNfcnFfb2Yoc2UpLT5sb2FkLndlaWdodCwgJnNlLT5sb2FkKTsKKwl9CisKKwlyZXR1cm4gZGVsdGE7Cit9CisKKy8qCiAgKiBUaGUgaWRlYSBpcyB0byBzZXQgYSBwZXJpb2QgaW4gd2hpY2ggZWFjaCB0YXNrIHJ1bnMgb25jZS4KICAqCiAgKiBXaGVuIHRoZXJlIGFyZSB0b28gbWFueSB0YXNrcyAoc3lzY3RsX3NjaGVkX25yX2xhdGVuY3kpIHdlIGhhdmUgdG8gc3RyZXRjaApAQCAtMzYyLDQ3ICszOTAsODAgQEAKICAqLwogc3RhdGljIHU2NCBzY2hlZF9zbGljZShzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQogewotCXU2NCBzbGljZSA9IF9fc2NoZWRfcGVyaW9kKGNmc19ycS0+bnJfcnVubmluZyk7Ci0KLQlmb3JfZWFjaF9zY2hlZF9lbnRpdHkoc2UpIHsKLQkJY2ZzX3JxID0gY2ZzX3JxX29mKHNlKTsKLQotCQlzbGljZSAqPSBzZS0+bG9hZC53ZWlnaHQ7Ci0JCWRvX2RpdihzbGljZSwgY2ZzX3JxLT5sb2FkLndlaWdodCk7Ci0JfQotCi0KLQlyZXR1cm4gc2xpY2U7CisJcmV0dXJuIGNhbGNfZGVsdGFfd2VpZ2h0KF9fc2NoZWRfcGVyaW9kKGNmc19ycS0+bnJfcnVubmluZyksIHNlKTsKIH0KIAogLyoKICAqIFdlIGNhbGN1bGF0ZSB0aGUgdnJ1bnRpbWUgc2xpY2Ugb2YgYSB0byBiZSBpbnNlcnRlZCB0YXNrCiAgKgotICogdnMgPSBzL3cgPSBwL3J3CisgKiB2cyA9IHMqcncvdyA9IHAKICAqLwogc3RhdGljIHU2NCBzY2hlZF92c2xpY2VfYWRkKHN0cnVjdCBjZnNfcnEgKmNmc19ycSwgc3RydWN0IHNjaGVkX2VudGl0eSAqc2UpCiB7CiAJdW5zaWduZWQgbG9uZyBucl9ydW5uaW5nID0gY2ZzX3JxLT5ucl9ydW5uaW5nOwotCXVuc2lnbmVkIGxvbmcgd2VpZ2h0OwotCXU2NCB2c2xpY2U7CiAKIAlpZiAoIXNlLT5vbl9ycSkKIAkJbnJfcnVubmluZysrOwogCi0JdnNsaWNlID0gX19zY2hlZF9wZXJpb2QobnJfcnVubmluZyk7CisJcmV0dXJuIF9fc2NoZWRfcGVyaW9kKG5yX3J1bm5pbmcpOworfQorCisvKgorICogVGhlIGdvYWwgb2YgY2FsY19kZWx0YV9hc3ltKCkgaXMgdG8gYmUgYXN5bW1ldHJpY2FsbHkgYXJvdW5kIE5JQ0VfMF9MT0FELCBpbgorICogdGhhdCBpdCBmYXZvdXJzID49MCBvdmVyIDwwLgorICoKKyAqICAgLTIwICAgICAgICAgfAorICogICAgICAgICAgICAgICB8CisgKiAgICAgMCAtLS0tLS0tLSstLS0tLS0tCisgKiAgICAgICAgICAgICAuJworICogICAgMTkgICAgIC4nCisgKgorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZworY2FsY19kZWx0YV9hc3ltKHVuc2lnbmVkIGxvbmcgZGVsdGEsIHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQoreworCXN0cnVjdCBsb2FkX3dlaWdodCBsdyA9IHsKKwkJLndlaWdodCA9IE5JQ0VfMF9MT0FELAorCQkuaW52X3dlaWdodCA9IDFVTCA8PCAoV01VTFRfU0hJRlQtTklDRV8wX1NISUZUKQorCX07CiAKIAlmb3JfZWFjaF9zY2hlZF9lbnRpdHkoc2UpIHsKLQkJY2ZzX3JxID0gY2ZzX3JxX29mKHNlKTsKKwkJc3RydWN0IGxvYWRfd2VpZ2h0ICpzZV9sdyA9ICZzZS0+bG9hZDsKKwkJdW5zaWduZWQgbG9uZyBydyA9IGNmc19ycV9vZihzZSktPmxvYWQud2VpZ2h0OwogCi0JCXdlaWdodCA9IGNmc19ycS0+bG9hZC53ZWlnaHQ7Ci0JCWlmICghc2UtPm9uX3JxKQotCQkJd2VpZ2h0ICs9IHNlLT5sb2FkLndlaWdodDsKKyNpZmRlZiBDT05GSUdfRkFJUl9TQ0hFRF9HUk9VUAorCQlzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEgPSBzZS0+bXlfcTsKKwkJc3RydWN0IHRhc2tfZ3JvdXAgKnRnID0gTlVMTAogCi0JCXZzbGljZSAqPSBOSUNFXzBfTE9BRDsKLQkJZG9fZGl2KHZzbGljZSwgd2VpZ2h0KTsKKwkJaWYgKGNmc19ycSkKKwkJCXRnID0gY2ZzX3JxLT50ZzsKKworCQlpZiAodGcgJiYgdGctPnNoYXJlcyA8IE5JQ0VfMF9MT0FEKSB7CisJCQkvKgorCQkJICogc2NhbGUgc2hhcmVzIHRvIHdoYXQgaXQgd291bGQgaGF2ZSBiZWVuIGhhZAorCQkJICogdGctPndlaWdodCBiZWVuIE5JQ0VfMF9MT0FEOgorCQkJICoKKwkJCSAqICAgd2VpZ2h0ID0gMTAyNCAqIHNoYXJlcyAvIHRnLT53ZWlnaHQKKwkJCSAqLworCQkJbHcud2VpZ2h0ICo9IHNlLT5sb2FkLndlaWdodDsKKwkJCWx3LndlaWdodCAvPSB0Zy0+c2hhcmVzOworCisJCQlsdy5pbnZfd2VpZ2h0ID0gMDsKKworCQkJc2VfbHcgPSAmbHc7CisJCQlydyArPSBsdy53ZWlnaHQgLSBzZS0+bG9hZC53ZWlnaHQ7CisJCX0gZWxzZQorI2VuZGlmCisKKwkJaWYgKHNlLT5sb2FkLndlaWdodCA8IE5JQ0VfMF9MT0FEKSB7CisJCQlzZV9sdyA9ICZsdzsKKwkJCXJ3ICs9IE5JQ0VfMF9MT0FEIC0gc2UtPmxvYWQud2VpZ2h0OworCQl9CisKKwkJZGVsdGEgPSBjYWxjX2RlbHRhX21pbmUoZGVsdGEsIHJ3LCBzZV9sdyk7CiAJfQogCi0JcmV0dXJuIHZzbGljZTsKKwlyZXR1cm4gZGVsdGE7CiB9CiAKIC8qCkBAIC00MTksMTEgKzQ4MCw3IEBACiAKIAljdXJyLT5zdW1fZXhlY19ydW50aW1lICs9IGRlbHRhX2V4ZWM7CiAJc2NoZWRzdGF0X2FkZChjZnNfcnEsIGV4ZWNfY2xvY2ssIGRlbHRhX2V4ZWMpOwotCWRlbHRhX2V4ZWNfd2VpZ2h0ZWQgPSBkZWx0YV9leGVjOwotCWlmICh1bmxpa2VseShjdXJyLT5sb2FkLndlaWdodCAhPSBOSUNFXzBfTE9BRCkpIHsKLQkJZGVsdGFfZXhlY193ZWlnaHRlZCA9IGNhbGNfZGVsdGFfZmFpcihkZWx0YV9leGVjX3dlaWdodGVkLAotCQkJCQkJCSZjdXJyLT5sb2FkKTsKLQl9CisJZGVsdGFfZXhlY193ZWlnaHRlZCA9IGNhbGNfZGVsdGFfZmFpcihkZWx0YV9leGVjLCBjdXJyKTsKIAljdXJyLT52cnVudGltZSArPSBkZWx0YV9leGVjX3dlaWdodGVkOwogfQogCkBAIC01MTAsMTAgKzU2NywyNyBAQAogICogU2NoZWR1bGluZyBjbGFzcyBxdWV1ZWluZyBtZXRob2RzOgogICovCiAKKyNpZiBkZWZpbmVkIENPTkZJR19TTVAgJiYgZGVmaW5lZCBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAorc3RhdGljIHZvaWQKK2FkZF9jZnNfdGFza193ZWlnaHQoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCB1bnNpZ25lZCBsb25nIHdlaWdodCkKK3sKKwljZnNfcnEtPnRhc2tfd2VpZ2h0ICs9IHdlaWdodDsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQKK2FkZF9jZnNfdGFza193ZWlnaHQoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCB1bnNpZ25lZCBsb25nIHdlaWdodCkKK3sKK30KKyNlbmRpZgorCiBzdGF0aWMgdm9pZAogYWNjb3VudF9lbnRpdHlfZW5xdWV1ZShzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQogewogCXVwZGF0ZV9sb2FkX2FkZCgmY2ZzX3JxLT5sb2FkLCBzZS0+bG9hZC53ZWlnaHQpOworCWlmICghcGFyZW50X2VudGl0eShzZSkpCisJCWluY19jcHVfbG9hZChycV9vZihjZnNfcnEpLCBzZS0+bG9hZC53ZWlnaHQpOworCWlmIChlbnRpdHlfaXNfdGFzayhzZSkpCisJCWFkZF9jZnNfdGFza193ZWlnaHQoY2ZzX3JxLCBzZS0+bG9hZC53ZWlnaHQpOwogCWNmc19ycS0+bnJfcnVubmluZysrOwogCXNlLT5vbl9ycSA9IDE7CiAJbGlzdF9hZGQoJnNlLT5ncm91cF9ub2RlLCAmY2ZzX3JxLT50YXNrcyk7CkBAIC01MjMsNiArNTk3LDEwIEBACiBhY2NvdW50X2VudGl0eV9kZXF1ZXVlKHN0cnVjdCBjZnNfcnEgKmNmc19ycSwgc3RydWN0IHNjaGVkX2VudGl0eSAqc2UpCiB7CiAJdXBkYXRlX2xvYWRfc3ViKCZjZnNfcnEtPmxvYWQsIHNlLT5sb2FkLndlaWdodCk7CisJaWYgKCFwYXJlbnRfZW50aXR5KHNlKSkKKwkJZGVjX2NwdV9sb2FkKHJxX29mKGNmc19ycSksIHNlLT5sb2FkLndlaWdodCk7CisJaWYgKGVudGl0eV9pc190YXNrKHNlKSkKKwkJYWRkX2Nmc190YXNrX3dlaWdodChjZnNfcnEsIC1zZS0+bG9hZC53ZWlnaHQpOwogCWNmc19ycS0+bnJfcnVubmluZy0tOwogCXNlLT5vbl9ycSA9IDA7CiAJbGlzdF9kZWxfaW5pdCgmc2UtPmdyb3VwX25vZGUpOwpAQCAtNjA5LDggKzY4NywxNyBAQAogCiAJaWYgKCFpbml0aWFsKSB7CiAJCS8qIHNsZWVwcyB1cHRvIGEgc2luZ2xlIGxhdGVuY3kgZG9uJ3QgY291bnQuICovCi0JCWlmIChzY2hlZF9mZWF0KE5FV19GQUlSX1NMRUVQRVJTKSkKLQkJCXZydW50aW1lIC09IHN5c2N0bF9zY2hlZF9sYXRlbmN5OworCQlpZiAoc2NoZWRfZmVhdChORVdfRkFJUl9TTEVFUEVSUykpIHsKKwkJCXVuc2lnbmVkIGxvbmcgdGhyZXNoID0gc3lzY3RsX3NjaGVkX2xhdGVuY3k7CisKKwkJCS8qCisJCQkgKiBjb252ZXJ0IHRoZSBzbGVlcGVyIHRocmVzaG9sZCBpbnRvIHZpcnR1YWwgdGltZQorCQkJICovCisJCQlpZiAoc2NoZWRfZmVhdChOT1JNQUxJWkVEX1NMRUVQRVIpKQorCQkJCXRocmVzaCA9IGNhbGNfZGVsdGFfZmFpcih0aHJlc2gsIHNlKTsKKworCQkJdnJ1bnRpbWUgLT0gdGhyZXNoOworCQl9CiAKIAkJLyogZW5zdXJlIHdlIG5ldmVyIGdhaW4gdGltZSBieSBiZWluZyBwbGFjZWQgYmFja3dhcmRzLiAqLwogCQl2cnVudGltZSA9IG1heF92cnVudGltZShzZS0+dnJ1bnRpbWUsIHZydW50aW1lKTsKQEAgLTYzOSwyMSArNzI2LDYgQEAKIAkJX19lbnF1ZXVlX2VudGl0eShjZnNfcnEsIHNlKTsKIH0KIAotc3RhdGljIHZvaWQgdXBkYXRlX2F2Zyh1NjQgKmF2ZywgdTY0IHNhbXBsZSkKLXsKLQlzNjQgZGlmZiA9IHNhbXBsZSAtICphdmc7Ci0JKmF2ZyArPSBkaWZmID4+IDM7Ci19Ci0KLXN0YXRpYyB2b2lkIHVwZGF0ZV9hdmdfc3RhdHMoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSkKLXsKLQlpZiAoIXNlLT5sYXN0X3dha2V1cCkKLQkJcmV0dXJuOwotCi0JdXBkYXRlX2F2Zygmc2UtPmF2Z19vdmVybGFwLCBzZS0+c3VtX2V4ZWNfcnVudGltZSAtIHNlLT5sYXN0X3dha2V1cCk7Ci0Jc2UtPmxhc3Rfd2FrZXVwID0gMDsKLX0KLQogc3RhdGljIHZvaWQKIGRlcXVldWVfZW50aXR5KHN0cnVjdCBjZnNfcnEgKmNmc19ycSwgc3RydWN0IHNjaGVkX2VudGl0eSAqc2UsIGludCBzbGVlcCkKIHsKQEAgLTY2NCw3ICs3MzYsNiBAQAogCiAJdXBkYXRlX3N0YXRzX2RlcXVldWUoY2ZzX3JxLCBzZSk7CiAJaWYgKHNsZWVwKSB7Ci0JCXVwZGF0ZV9hdmdfc3RhdHMoY2ZzX3JxLCBzZSk7CiAjaWZkZWYgQ09ORklHX1NDSEVEU1RBVFMKIAkJaWYgKGVudGl0eV9pc190YXNrKHNlKSkgewogCQkJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSB0YXNrX29mKHNlKTsKQEAgLTcyNiwxNyArNzk3LDE2IEBACiAJc2UtPnByZXZfc3VtX2V4ZWNfcnVudGltZSA9IHNlLT5zdW1fZXhlY19ydW50aW1lOwogfQogCi1zdGF0aWMgaW50Ci13YWtldXBfcHJlZW1wdF9lbnRpdHkoc3RydWN0IHNjaGVkX2VudGl0eSAqY3Vyciwgc3RydWN0IHNjaGVkX2VudGl0eSAqc2UpOwotCiBzdGF0aWMgc3RydWN0IHNjaGVkX2VudGl0eSAqCiBwaWNrX25leHQoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSkKIHsKLQlpZiAoIWNmc19ycS0+bmV4dCkKLQkJcmV0dXJuIHNlOworCXN0cnVjdCBycSAqcnEgPSBycV9vZihjZnNfcnEpOworCXU2NCBwYWlyX3NsaWNlID0gcnEtPmNsb2NrIC0gY2ZzX3JxLT5wYWlyX3N0YXJ0OwogCi0JaWYgKHdha2V1cF9wcmVlbXB0X2VudGl0eShjZnNfcnEtPm5leHQsIHNlKSAhPSAwKQorCWlmICghY2ZzX3JxLT5uZXh0IHx8IHBhaXJfc2xpY2UgPiBzY2hlZF9zbGljZShjZnNfcnEsIGNmc19ycS0+bmV4dCkpIHsKKwkJY2ZzX3JxLT5wYWlyX3N0YXJ0ID0gcnEtPmNsb2NrOwogCQlyZXR1cm4gc2U7CisJfQogCiAJcmV0dXJuIGNmc19ycS0+bmV4dDsKIH0KQEAgLTgzNSw3ICs5MDUsNyBAQAogCQlocnRpY2tfc3RhcnQocnEsIGRlbHRhLCByZXF1ZXVlKTsKIAl9CiB9Ci0jZWxzZQorI2Vsc2UgLyogIUNPTkZJR19TQ0hFRF9IUlRJQ0sgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZAogaHJ0aWNrX3N0YXJ0X2ZhaXIoc3RydWN0IHJxICpycSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKQogewpAQCAtOTc2LDcgKzEwNDYsNyBAQAogCX0KIAlyZXR1cm4gY3B1OwogfQotI2Vsc2UKKyNlbHNlIC8qICFBUkNIX0hBU19TQ0hFRF9XQUtFX0lETEUqLwogc3RhdGljIGlubGluZSBpbnQgd2FrZV9pZGxlKGludCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIHsKIAlyZXR1cm4gY3B1OwpAQCAtOTg3LDYgKzEwNTcsODkgQEAKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzY2hlZF9jbGFzcyBmYWlyX3NjaGVkX2NsYXNzOwogCisjaWZkZWYgQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQKKy8qCisgKiBlZmZlY3RpdmVfbG9hZCgpIGNhbGN1bGF0ZXMgdGhlIGxvYWQgY2hhbmdlIGFzIHNlZW4gZnJvbSB0aGUgcm9vdF90YXNrX2dyb3VwCisgKgorICogQWRkaW5nIGxvYWQgdG8gYSBncm91cCBkb2Vzbid0IG1ha2UgYSBncm91cCBoZWF2aWVyLCBidXQgY2FuIGNhdXNlIG1vdmVtZW50CisgKiBvZiBncm91cCBzaGFyZXMgYmV0d2VlbiBjcHVzLiBBc3N1bWluZyB0aGUgc2hhcmVzIHdlcmUgcGVyZmVjdGx5IGFsaWduZWQgb25lCisgKiBjYW4gY2FsY3VsYXRlIHRoZSBzaGlmdCBpbiBzaGFyZXMuCisgKgorICogVGhlIHByb2JsZW0gaXMgdGhhdCBwZXJmZWN0bHkgYWxpZ25pbmcgdGhlIHNoYXJlcyBpcyByYXRoZXIgZXhwZW5zaXZlLCBoZW5jZQorICogd2UgdHJ5IHRvIGF2b2lkIGRvaW5nIHRoYXQgdG9vIG9mdGVuIC0gc2VlIHVwZGF0ZV9zaGFyZXMoKSwgd2hpY2ggcmF0ZWxpbWl0cworICogdGhpcyBjaGFuZ2UuCisgKgorICogV2UgY29tcGVuc2F0ZSB0aGlzIGJ5IG5vdCBvbmx5IHRha2luZyB0aGUgY3VycmVudCBkZWx0YSBpbnRvIGFjY291bnQsIGJ1dAorICogYWxzbyBjb25zaWRlcmluZyB0aGUgZGVsdGEgYmV0d2VlbiB3aGVuIHRoZSBzaGFyZXMgd2VyZSBsYXN0IGFkanVzdGVkIGFuZAorICogbm93LgorICoKKyAqIFdlIHN0aWxsIHNhdyBhIHBlcmZvcm1hbmNlIGRpcCwgc29tZSB0cmFjaW5nIGxlYXJuZWQgdXMgdGhhdCBiZXR3ZWVuCisgKiBjZ3JvdXA6LyBhbmQgY2dyb3VwOi9mb28gYmFsYW5jaW5nIHRoZSBudW1iZXIgb2YgYWZmaW5lIHdha2V1cHMgaW5jcmVhc2VkCisgKiBzaWduaWZpY2FudGx5LiBUaGVyZWZvcmUgdHJ5IHRvIGJpYXMgdGhlIGVycm9yIGluIGRpcmVjdGlvbiBvZiBmYWlsaW5nCisgKiB0aGUgYWZmaW5lIHdha2V1cC4KKyAqCisgKi8KK3N0YXRpYyBsb25nIGVmZmVjdGl2ZV9sb2FkKHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSwKKwkJbG9uZyB3bCwgbG9uZyB3ZykKK3sKKwlzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSA9IHRnLT5zZVtjcHVdOworCWxvbmcgbW9yZV93OworCisJaWYgKCF0Zy0+cGFyZW50KQorCQlyZXR1cm4gd2w7CisKKwkvKgorCSAqIEJ5IG5vdCB0YWtpbmcgdGhlIGRlY3JlYXNlIG9mIHNoYXJlcyBvbiB0aGUgb3RoZXIgY3B1IGludG8KKwkgKiBhY2NvdW50IG91ciBlcnJvciBsZWFucyB0b3dhcmRzIHJlZHVjaW5nIHRoZSBhZmZpbmUgd2FrZXVwcy4KKwkgKi8KKwlpZiAoIXdsICYmIHNjaGVkX2ZlYXQoQVNZTV9FRkZfTE9BRCkpCisJCXJldHVybiB3bDsKKworCS8qCisJICogSW5zdGVhZCBvZiB1c2luZyB0aGlzIGluY3JlbWVudCwgYWxzbyBhZGQgdGhlIGRpZmZlcmVuY2UKKwkgKiBiZXR3ZWVuIHdoZW4gdGhlIHNoYXJlcyB3ZXJlIGxhc3QgdXBkYXRlZCBhbmQgbm93LgorCSAqLworCW1vcmVfdyA9IHNlLT5teV9xLT5sb2FkLndlaWdodCAtIHNlLT5teV9xLT5ycV93ZWlnaHQ7CisJd2wgKz0gbW9yZV93OworCXdnICs9IG1vcmVfdzsKKworCWZvcl9lYWNoX3NjaGVkX2VudGl0eShzZSkgeworI2RlZmluZSBEKG4pIChsaWtlbHkobikgPyAobikgOiAxKQorCisJCWxvbmcgUywgcncsIHMsIGEsIGI7CisKKwkJUyA9IHNlLT5teV9xLT50Zy0+c2hhcmVzOworCQlzID0gc2UtPm15X3EtPnNoYXJlczsKKwkJcncgPSBzZS0+bXlfcS0+cnFfd2VpZ2h0OworCisJCWEgPSBTKihydyArIHdsKTsKKwkJYiA9IFMqcncgKyBzKndnOworCisJCXdsID0gcyooYS1iKS9EKGIpOworCQkvKgorCQkgKiBBc3N1bWUgdGhlIGdyb3VwIGlzIGFscmVhZHkgcnVubmluZyBhbmQgd2lsbAorCQkgKiB0aHVzIGFscmVhZHkgYmUgYWNjb3VudGVkIGZvciBpbiB0aGUgd2VpZ2h0LgorCQkgKgorCQkgKiBUaGF0IGlzLCBtb3Zpbmcgc2hhcmVzIGJldHdlZW4gQ1BVcywgZG9lcyBub3QKKwkJICogYWx0ZXIgdGhlIGdyb3VwIHdlaWdodC4KKwkJICovCisJCXdnID0gMDsKKyN1bmRlZiBECisJfQorCisJcmV0dXJuIHdsOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZWZmZWN0aXZlX2xvYWQoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBpbnQgY3B1LAorCQl1bnNpZ25lZCBsb25nIHdsLCB1bnNpZ25lZCBsb25nIHdnKQoreworCXJldHVybiB3bDsKK30KKworI2VuZGlmCisKIHN0YXRpYyBpbnQKIHdha2VfYWZmaW5lKHN0cnVjdCBycSAqcnEsIHN0cnVjdCBzY2hlZF9kb21haW4gKnRoaXNfc2QsIHN0cnVjdCBycSAqdGhpc19ycSwKIAkgICAgc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgcHJldl9jcHUsIGludCB0aGlzX2NwdSwgaW50IHN5bmMsCkBAIC05OTQsOCArMTE0NywxMCBAQAogCSAgICB1bnNpZ25lZCBpbnQgaW1iYWxhbmNlKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqY3VyciA9IHRoaXNfcnEtPmN1cnI7CisJc3RydWN0IHRhc2tfZ3JvdXAgKnRnOwogCXVuc2lnbmVkIGxvbmcgdGwgPSB0aGlzX2xvYWQ7CiAJdW5zaWduZWQgbG9uZyB0bF9wZXJfdGFzazsKKwl1bnNpZ25lZCBsb25nIHdlaWdodDsKIAlpbnQgYmFsYW5jZWQ7CiAKIAlpZiAoISh0aGlzX3NkLT5mbGFncyAmIFNEX1dBS0VfQUZGSU5FKSB8fCAhc2NoZWRfZmVhdChBRkZJTkVfV0FLRVVQUykpCkBAIC0xMDA2LDE5ICsxMTYxLDI4IEBACiAJICogZWZmZWN0IG9mIHRoZSBjdXJyZW50bHkgcnVubmluZyB0YXNrIGZyb20gdGhlIGxvYWQKIAkgKiBvZiB0aGUgY3VycmVudCBDUFU6CiAJICovCi0JaWYgKHN5bmMpCi0JCXRsIC09IGN1cnJlbnQtPnNlLmxvYWQud2VpZ2h0OworCWlmIChzeW5jKSB7CisJCXRnID0gdGFza19ncm91cChjdXJyZW50KTsKKwkJd2VpZ2h0ID0gY3VycmVudC0+c2UubG9hZC53ZWlnaHQ7CiAKLQliYWxhbmNlZCA9IDEwMCoodGwgKyBwLT5zZS5sb2FkLndlaWdodCkgPD0gaW1iYWxhbmNlKmxvYWQ7CisJCXRsICs9IGVmZmVjdGl2ZV9sb2FkKHRnLCB0aGlzX2NwdSwgLXdlaWdodCwgLXdlaWdodCk7CisJCWxvYWQgKz0gZWZmZWN0aXZlX2xvYWQodGcsIHByZXZfY3B1LCAwLCAtd2VpZ2h0KTsKKwl9CisKKwl0ZyA9IHRhc2tfZ3JvdXAocCk7CisJd2VpZ2h0ID0gcC0+c2UubG9hZC53ZWlnaHQ7CisKKwliYWxhbmNlZCA9IDEwMCoodGwgKyBlZmZlY3RpdmVfbG9hZCh0ZywgdGhpc19jcHUsIHdlaWdodCwgd2VpZ2h0KSkgPD0KKwkJaW1iYWxhbmNlKihsb2FkICsgZWZmZWN0aXZlX2xvYWQodGcsIHByZXZfY3B1LCAwLCB3ZWlnaHQpKTsKIAogCS8qCiAJICogSWYgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRhc2sgd2lsbCBzbGVlcCB3aXRoaW4KIAkgKiBhIHJlYXNvbmFibGUgYW1vdW50IG9mIHRpbWUgdGhlbiBhdHRyYWN0IHRoaXMgbmV3bHkKIAkgKiB3b2tlbiB0YXNrOgogCSAqLwotCWlmIChzeW5jICYmIGJhbGFuY2VkICYmIGN1cnItPnNjaGVkX2NsYXNzID09ICZmYWlyX3NjaGVkX2NsYXNzKSB7CisJaWYgKHN5bmMgJiYgYmFsYW5jZWQpIHsKIAkJaWYgKGN1cnItPnNlLmF2Z19vdmVybGFwIDwgc3lzY3RsX3NjaGVkX21pZ3JhdGlvbl9jb3N0ICYmCi0JCQkJcC0+c2UuYXZnX292ZXJsYXAgPCBzeXNjdGxfc2NoZWRfbWlncmF0aW9uX2Nvc3QpCisJCSAgICBwLT5zZS5hdmdfb3ZlcmxhcCA8IHN5c2N0bF9zY2hlZF9taWdyYXRpb25fY29zdCkKIAkJCXJldHVybiAxOwogCX0KIApAQCAtMTExMSwxMSArMTI3NSwxMyBAQAogCXVuc2lnbmVkIGxvbmcgZ3JhbiA9IHN5c2N0bF9zY2hlZF93YWtldXBfZ3JhbnVsYXJpdHk7CiAKIAkvKgotCSAqIE1vcmUgZWFzaWx5IHByZWVtcHQgLSBuaWNlIHRhc2tzLCB3aGlsZSBub3QgbWFraW5nCi0JICogaXQgaGFyZGVyIGZvciArIG5pY2UgdGFza3MuCisJICogTW9yZSBlYXNpbHkgcHJlZW1wdCAtIG5pY2UgdGFza3MsIHdoaWxlIG5vdCBtYWtpbmcgaXQgaGFyZGVyIGZvcgorCSAqICsgbmljZSB0YXNrcy4KIAkgKi8KLQlpZiAodW5saWtlbHkoc2UtPmxvYWQud2VpZ2h0ID4gTklDRV8wX0xPQUQpKQotCQlncmFuID0gY2FsY19kZWx0YV9mYWlyKGdyYW4sICZzZS0+bG9hZCk7CisJaWYgKHNjaGVkX2ZlYXQoQVNZTV9HUkFOKSkKKwkJZ3JhbiA9IGNhbGNfZGVsdGFfYXN5bShzeXNjdGxfc2NoZWRfd2FrZXVwX2dyYW51bGFyaXR5LCBzZSk7CisJZWxzZQorCQlncmFuID0gY2FsY19kZWx0YV9mYWlyKHN5c2N0bF9zY2hlZF93YWtldXBfZ3JhbnVsYXJpdHksIHNlKTsKIAogCXJldHVybiBncmFuOwogfQpAQCAtMTE3Nyw3ICsxMzQzLDYgQEAKIAkJcmV0dXJuOwogCX0KIAotCXNlLT5sYXN0X3dha2V1cCA9IHNlLT5zdW1fZXhlY19ydW50aW1lOwogCWlmICh1bmxpa2VseShzZSA9PSBwc2UpKQogCQlyZXR1cm47CiAKQEAgLTEyNzUsMjMgKzE0NDAsMTggQEAKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAgPSBOVUxMOwogCXN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlOwogCi0JaWYgKG5leHQgPT0gJmNmc19ycS0+dGFza3MpCi0JCXJldHVybiBOVUxMOwotCi0JLyogU2tpcCBvdmVyIGVudGl0aWVzIHRoYXQgYXJlIG5vdCB0YXNrcyAqLwotCWRvIHsKKwl3aGlsZSAobmV4dCAhPSAmY2ZzX3JxLT50YXNrcykgewogCQlzZSA9IGxpc3RfZW50cnkobmV4dCwgc3RydWN0IHNjaGVkX2VudGl0eSwgZ3JvdXBfbm9kZSk7CiAJCW5leHQgPSBuZXh0LT5uZXh0OwotCX0gd2hpbGUgKG5leHQgIT0gJmNmc19ycS0+dGFza3MgJiYgIWVudGl0eV9pc190YXNrKHNlKSk7CiAKLQlpZiAobmV4dCA9PSAmY2ZzX3JxLT50YXNrcykKLQkJcmV0dXJuIE5VTEw7CisJCS8qIFNraXAgb3ZlciBlbnRpdGllcyB0aGF0IGFyZSBub3QgdGFza3MgKi8KKwkJaWYgKGVudGl0eV9pc190YXNrKHNlKSkgeworCQkJcCA9IHRhc2tfb2Yoc2UpOworCQkJYnJlYWs7CisJCX0KKwl9CiAKIAljZnNfcnEtPmJhbGFuY2VfaXRlcmF0b3IgPSBuZXh0OwotCi0JaWYgKGVudGl0eV9pc190YXNrKHNlKSkKLQkJcCA9IHRhc2tfb2Yoc2UpOwotCiAJcmV0dXJuIHA7CiB9CiAKQEAgLTEzMDksNzUgKzE0NjksODIgQEAKIAlyZXR1cm4gX19sb2FkX2JhbGFuY2VfaXRlcmF0b3IoY2ZzX3JxLCBjZnNfcnEtPmJhbGFuY2VfaXRlcmF0b3IpOwogfQogCi0jaWZkZWYgQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQKLXN0YXRpYyBpbnQgY2ZzX3JxX2Jlc3RfcHJpbyhzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEpCitzdGF0aWMgdW5zaWduZWQgbG9uZworX19sb2FkX2JhbGFuY2VfZmFpcihzdHJ1Y3QgcnEgKnRoaXNfcnEsIGludCB0aGlzX2NwdSwgc3RydWN0IHJxICpidXNpZXN0LAorCQl1bnNpZ25lZCBsb25nIG1heF9sb2FkX21vdmUsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkLAorCQllbnVtIGNwdV9pZGxlX3R5cGUgaWRsZSwgaW50ICphbGxfcGlubmVkLCBpbnQgKnRoaXNfYmVzdF9wcmlvLAorCQlzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEpCiB7Ci0Jc3RydWN0IHNjaGVkX2VudGl0eSAqY3VycjsKLQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CisJc3RydWN0IHJxX2l0ZXJhdG9yIGNmc19ycV9pdGVyYXRvcjsKIAotCWlmICghY2ZzX3JxLT5ucl9ydW5uaW5nIHx8ICFmaXJzdF9mYWlyKGNmc19ycSkpCi0JCXJldHVybiBNQVhfUFJJTzsKKwljZnNfcnFfaXRlcmF0b3Iuc3RhcnQgPSBsb2FkX2JhbGFuY2Vfc3RhcnRfZmFpcjsKKwljZnNfcnFfaXRlcmF0b3IubmV4dCA9IGxvYWRfYmFsYW5jZV9uZXh0X2ZhaXI7CisJY2ZzX3JxX2l0ZXJhdG9yLmFyZyA9IGNmc19ycTsKIAotCWN1cnIgPSBjZnNfcnEtPmN1cnI7Ci0JaWYgKCFjdXJyKQotCQljdXJyID0gX19waWNrX25leHRfZW50aXR5KGNmc19ycSk7Ci0KLQlwID0gdGFza19vZihjdXJyKTsKLQotCXJldHVybiBwLT5wcmlvOworCXJldHVybiBiYWxhbmNlX3Rhc2tzKHRoaXNfcnEsIHRoaXNfY3B1LCBidXNpZXN0LAorCQkJbWF4X2xvYWRfbW92ZSwgc2QsIGlkbGUsIGFsbF9waW5uZWQsCisJCQl0aGlzX2Jlc3RfcHJpbywgJmNmc19ycV9pdGVyYXRvcik7CiB9Ci0jZW5kaWYKIAorI2lmZGVmIENPTkZJR19GQUlSX0dST1VQX1NDSEVECiBzdGF0aWMgdW5zaWduZWQgbG9uZwogbG9hZF9iYWxhbmNlX2ZhaXIoc3RydWN0IHJxICp0aGlzX3JxLCBpbnQgdGhpc19jcHUsIHN0cnVjdCBycSAqYnVzaWVzdCwKIAkJICB1bnNpZ25lZCBsb25nIG1heF9sb2FkX21vdmUsCiAJCSAgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QsIGVudW0gY3B1X2lkbGVfdHlwZSBpZGxlLAogCQkgIGludCAqYWxsX3Bpbm5lZCwgaW50ICp0aGlzX2Jlc3RfcHJpbykKIHsKLQlzdHJ1Y3QgY2ZzX3JxICpidXN5X2Nmc19ycTsKIAlsb25nIHJlbV9sb2FkX21vdmUgPSBtYXhfbG9hZF9tb3ZlOwotCXN0cnVjdCBycV9pdGVyYXRvciBjZnNfcnFfaXRlcmF0b3I7CisJaW50IGJ1c2llc3RfY3B1ID0gY3B1X29mKGJ1c2llc3QpOworCXN0cnVjdCB0YXNrX2dyb3VwICp0ZzsKIAotCWNmc19ycV9pdGVyYXRvci5zdGFydCA9IGxvYWRfYmFsYW5jZV9zdGFydF9mYWlyOwotCWNmc19ycV9pdGVyYXRvci5uZXh0ID0gbG9hZF9iYWxhbmNlX25leHRfZmFpcjsKKwlyY3VfcmVhZF9sb2NrKCk7CisJdXBkYXRlX2hfbG9hZChidXNpZXN0X2NwdSk7CiAKLQlmb3JfZWFjaF9sZWFmX2Nmc19ycShidXNpZXN0LCBidXN5X2Nmc19ycSkgewotI2lmZGVmIENPTkZJR19GQUlSX0dST1VQX1NDSEVECi0JCXN0cnVjdCBjZnNfcnEgKnRoaXNfY2ZzX3JxOwotCQlsb25nIGltYmFsYW5jZTsKLQkJdW5zaWduZWQgbG9uZyBtYXhsb2FkOworCWxpc3RfZm9yX2VhY2hfZW50cnkodGcsICZ0YXNrX2dyb3VwcywgbGlzdCkgeworCQlzdHJ1Y3QgY2ZzX3JxICpidXNpZXN0X2Nmc19ycSA9IHRnLT5jZnNfcnFbYnVzaWVzdF9jcHVdOworCQl1bnNpZ25lZCBsb25nIGJ1c2llc3RfaF9sb2FkID0gYnVzaWVzdF9jZnNfcnEtPmhfbG9hZDsKKwkJdW5zaWduZWQgbG9uZyBidXNpZXN0X3dlaWdodCA9IGJ1c2llc3RfY2ZzX3JxLT5sb2FkLndlaWdodDsKKwkJdTY0IHJlbV9sb2FkLCBtb3ZlZF9sb2FkOwogCi0JCXRoaXNfY2ZzX3JxID0gY3B1X2Nmc19ycShidXN5X2Nmc19ycSwgdGhpc19jcHUpOwotCi0JCWltYmFsYW5jZSA9IGJ1c3lfY2ZzX3JxLT5sb2FkLndlaWdodCAtIHRoaXNfY2ZzX3JxLT5sb2FkLndlaWdodDsKLQkJLyogRG9uJ3QgcHVsbCBpZiB0aGlzX2Nmc19ycSBoYXMgbW9yZSBsb2FkIHRoYW4gYnVzeV9jZnNfcnEgKi8KLQkJaWYgKGltYmFsYW5jZSA8PSAwKQorCQkvKgorCQkgKiBlbXB0eSBncm91cAorCQkgKi8KKwkJaWYgKCFidXNpZXN0X2Nmc19ycS0+dGFza193ZWlnaHQpCiAJCQljb250aW51ZTsKIAotCQkvKiBEb24ndCBwdWxsIG1vcmUgdGhhbiBpbWJhbGFuY2UvMiAqLwotCQlpbWJhbGFuY2UgLz0gMjsKLQkJbWF4bG9hZCA9IG1pbihyZW1fbG9hZF9tb3ZlLCBpbWJhbGFuY2UpOworCQlyZW1fbG9hZCA9ICh1NjQpcmVtX2xvYWRfbW92ZSAqIGJ1c2llc3Rfd2VpZ2h0OworCQlyZW1fbG9hZCA9IGRpdl91NjQocmVtX2xvYWQsIGJ1c2llc3RfaF9sb2FkICsgMSk7CiAKLQkJKnRoaXNfYmVzdF9wcmlvID0gY2ZzX3JxX2Jlc3RfcHJpbyh0aGlzX2Nmc19ycSk7Ci0jZWxzZQotIyBkZWZpbmUgbWF4bG9hZCByZW1fbG9hZF9tb3ZlCi0jZW5kaWYKLQkJLyoKLQkJICogcGFzcyBidXN5X2Nmc19ycSBhcmd1bWVudCBpbnRvCi0JCSAqIGxvYWRfYmFsYW5jZV9bc3RhcnR8bmV4dF1fZmFpciBpdGVyYXRvcnMKLQkJICovCi0JCWNmc19ycV9pdGVyYXRvci5hcmcgPSBidXN5X2Nmc19ycTsKLQkJcmVtX2xvYWRfbW92ZSAtPSBiYWxhbmNlX3Rhc2tzKHRoaXNfcnEsIHRoaXNfY3B1LCBidXNpZXN0LAotCQkJCQkgICAgICAgbWF4bG9hZCwgc2QsIGlkbGUsIGFsbF9waW5uZWQsCi0JCQkJCSAgICAgICB0aGlzX2Jlc3RfcHJpbywKLQkJCQkJICAgICAgICZjZnNfcnFfaXRlcmF0b3IpOworCQltb3ZlZF9sb2FkID0gX19sb2FkX2JhbGFuY2VfZmFpcih0aGlzX3JxLCB0aGlzX2NwdSwgYnVzaWVzdCwKKwkJCQlyZW1fbG9hZCwgc2QsIGlkbGUsIGFsbF9waW5uZWQsIHRoaXNfYmVzdF9wcmlvLAorCQkJCXRnLT5jZnNfcnFbYnVzaWVzdF9jcHVdKTsKIAotCQlpZiAocmVtX2xvYWRfbW92ZSA8PSAwKQorCQlpZiAoIW1vdmVkX2xvYWQpCisJCQljb250aW51ZTsKKworCQltb3ZlZF9sb2FkICo9IGJ1c2llc3RfaF9sb2FkOworCQltb3ZlZF9sb2FkID0gZGl2X3U2NChtb3ZlZF9sb2FkLCBidXNpZXN0X3dlaWdodCArIDEpOworCisJCXJlbV9sb2FkX21vdmUgLT0gbW92ZWRfbG9hZDsKKwkJaWYgKHJlbV9sb2FkX21vdmUgPCAwKQogCQkJYnJlYWs7CiAJfQorCXJjdV9yZWFkX3VubG9jaygpOwogCiAJcmV0dXJuIG1heF9sb2FkX21vdmUgLSByZW1fbG9hZF9tb3ZlOwogfQorI2Vsc2UKK3N0YXRpYyB1bnNpZ25lZCBsb25nCitsb2FkX2JhbGFuY2VfZmFpcihzdHJ1Y3QgcnEgKnRoaXNfcnEsIGludCB0aGlzX2NwdSwgc3RydWN0IHJxICpidXNpZXN0LAorCQkgIHVuc2lnbmVkIGxvbmcgbWF4X2xvYWRfbW92ZSwKKwkJICBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCwgZW51bSBjcHVfaWRsZV90eXBlIGlkbGUsCisJCSAgaW50ICphbGxfcGlubmVkLCBpbnQgKnRoaXNfYmVzdF9wcmlvKQoreworCXJldHVybiBfX2xvYWRfYmFsYW5jZV9mYWlyKHRoaXNfcnEsIHRoaXNfY3B1LCBidXNpZXN0LAorCQkJbWF4X2xvYWRfbW92ZSwgc2QsIGlkbGUsIGFsbF9waW5uZWQsCisJCQl0aGlzX2Jlc3RfcHJpbywgJmJ1c2llc3QtPmNmcyk7Cit9CisjZW5kaWYKIAogc3RhdGljIGludAogbW92ZV9vbmVfdGFza19mYWlyKHN0cnVjdCBycSAqdGhpc19ycSwgaW50IHRoaXNfY3B1LCBzdHJ1Y3QgcnEgKmJ1c2llc3QsCkBAIC0xNDAyLDcgKzE1NjksNyBAQAogCiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfU01QICovCiAKIC8qCiAgKiBzY2hlZHVsZXIgdGljayBoaXR0aW5nIGEgdGFzayBvZiBvdXIgc2NoZWR1bGluZyBjbGFzczoKZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9mZWF0dXJlcy5oIGIva2VybmVsL3NjaGVkX2ZlYXR1cmVzLmgKaW5kZXggMWM3MjgzYy4uODYyYjA2YiAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkX2ZlYXR1cmVzLmgKKysrIGIva2VybmVsL3NjaGVkX2ZlYXR1cmVzLmgKQEAgLTEsNCArMSw1IEBACiBTQ0hFRF9GRUFUKE5FV19GQUlSX1NMRUVQRVJTLCAxKQorU0NIRURfRkVBVChOT1JNQUxJWkVEX1NMRUVQRVIsIDEpCiBTQ0hFRF9GRUFUKFdBS0VVUF9QUkVFTVBULCAxKQogU0NIRURfRkVBVChTVEFSVF9ERUJJVCwgMSkKIFNDSEVEX0ZFQVQoQUZGSU5FX1dBS0VVUFMsIDEpCkBAIC02LDUgKzcsNyBAQAogU0NIRURfRkVBVChTWU5DX1dBS0VVUFMsIDEpCiBTQ0hFRF9GRUFUKEhSVElDSywgMSkKIFNDSEVEX0ZFQVQoRE9VQkxFX1RJQ0ssIDApCi1TQ0hFRF9GRUFUKE5PUk1BTElaRURfU0xFRVBFUiwgMSkKLVNDSEVEX0ZFQVQoREVBRExJTkUsIDEpCitTQ0hFRF9GRUFUKEFTWU1fR1JBTiwgMSkKK1NDSEVEX0ZFQVQoTEJfQklBUywgMCkKK1NDSEVEX0ZFQVQoTEJfV0FLRVVQX1VQREFURSwgMSkKK1NDSEVEX0ZFQVQoQVNZTV9FRkZfTE9BRCwgMSkKZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9ydC5jIGIva2VybmVsL3NjaGVkX3J0LmMKaW5kZXggMGYzYzE5MS4uNDdjZWFjOSAxMDA2NDQKLS0tIGEva2VybmVsL3NjaGVkX3J0LmMKKysrIGIva2VybmVsL3NjaGVkX3J0LmMKQEAgLTEyLDYgKzEyLDkgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIHJ0X3NldF9vdmVybG9hZChzdHJ1Y3QgcnEgKnJxKQogeworCWlmICghcnEtPm9ubGluZSkKKwkJcmV0dXJuOworCiAJY3B1X3NldChycS0+Y3B1LCBycS0+cmQtPnJ0b19tYXNrKTsKIAkvKgogCSAqIE1ha2Ugc3VyZSB0aGUgbWFzayBpcyB2aXNpYmxlIGJlZm9yZSB3ZSBzZXQKQEAgLTI2LDYgKzI5LDkgQEAKIAogc3RhdGljIGlubGluZSB2b2lkIHJ0X2NsZWFyX292ZXJsb2FkKHN0cnVjdCBycSAqcnEpCiB7CisJaWYgKCFycS0+b25saW5lKQorCQlyZXR1cm47CisKIAkvKiB0aGUgb3JkZXIgaGVyZSByZWFsbHkgZG9lc24ndCBtYXR0ZXIgKi8KIAlhdG9taWNfZGVjKCZycS0+cmQtPnJ0b19jb3VudCk7CiAJY3B1X2NsZWFyKHJxLT5jcHUsIHJxLT5yZC0+cnRvX21hc2spOwpAQCAtMTU1LDcgKzE2MSw3IEBACiAJcmV0dXJuICZydF9ycS0+dGctPnJ0X2JhbmR3aWR0aDsKIH0KIAotI2Vsc2UKKyNlbHNlIC8qICFDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIAogc3RhdGljIGlubGluZSB1NjQgc2NoZWRfcnRfcnVudGltZShzdHJ1Y3QgcnRfcnEgKnJ0X3JxKQogewpAQCAtMjIwLDcgKzIyNiwxNjAgQEAKIAlyZXR1cm4gJmRlZl9ydF9iYW5kd2lkdGg7CiB9CiAKLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLworCisjaWZkZWYgQ09ORklHX1NNUAorc3RhdGljIGludCBkb19iYWxhbmNlX3J1bnRpbWUoc3RydWN0IHJ0X3JxICpydF9ycSkKK3sKKwlzdHJ1Y3QgcnRfYmFuZHdpZHRoICpydF9iID0gc2NoZWRfcnRfYmFuZHdpZHRoKHJ0X3JxKTsKKwlzdHJ1Y3Qgcm9vdF9kb21haW4gKnJkID0gY3B1X3JxKHNtcF9wcm9jZXNzb3JfaWQoKSktPnJkOworCWludCBpLCB3ZWlnaHQsIG1vcmUgPSAwOworCXU2NCBydF9wZXJpb2Q7CisKKwl3ZWlnaHQgPSBjcHVzX3dlaWdodChyZC0+c3Bhbik7CisKKwlzcGluX2xvY2soJnJ0X2ItPnJ0X3J1bnRpbWVfbG9jayk7CisJcnRfcGVyaW9kID0ga3RpbWVfdG9fbnMocnRfYi0+cnRfcGVyaW9kKTsKKwlmb3JfZWFjaF9jcHVfbWFzayhpLCByZC0+c3BhbikgeworCQlzdHJ1Y3QgcnRfcnEgKml0ZXIgPSBzY2hlZF9ydF9wZXJpb2RfcnRfcnEocnRfYiwgaSk7CisJCXM2NCBkaWZmOworCisJCWlmIChpdGVyID09IHJ0X3JxKQorCQkJY29udGludWU7CisKKwkJc3Bpbl9sb2NrKCZpdGVyLT5ydF9ydW50aW1lX2xvY2spOworCQlpZiAoaXRlci0+cnRfcnVudGltZSA9PSBSVU5USU1FX0lORikKKwkJCWdvdG8gbmV4dDsKKworCQlkaWZmID0gaXRlci0+cnRfcnVudGltZSAtIGl0ZXItPnJ0X3RpbWU7CisJCWlmIChkaWZmID4gMCkgeworCQkJZG9fZGl2KGRpZmYsIHdlaWdodCk7CisJCQlpZiAocnRfcnEtPnJ0X3J1bnRpbWUgKyBkaWZmID4gcnRfcGVyaW9kKQorCQkJCWRpZmYgPSBydF9wZXJpb2QgLSBydF9ycS0+cnRfcnVudGltZTsKKwkJCWl0ZXItPnJ0X3J1bnRpbWUgLT0gZGlmZjsKKwkJCXJ0X3JxLT5ydF9ydW50aW1lICs9IGRpZmY7CisJCQltb3JlID0gMTsKKwkJCWlmIChydF9ycS0+cnRfcnVudGltZSA9PSBydF9wZXJpb2QpIHsKKwkJCQlzcGluX3VubG9jaygmaXRlci0+cnRfcnVudGltZV9sb2NrKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorbmV4dDoKKwkJc3Bpbl91bmxvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7CisJfQorCXNwaW5fdW5sb2NrKCZydF9iLT5ydF9ydW50aW1lX2xvY2spOworCisJcmV0dXJuIG1vcmU7Cit9CisKK3N0YXRpYyB2b2lkIF9fZGlzYWJsZV9ydW50aW1lKHN0cnVjdCBycSAqcnEpCit7CisJc3RydWN0IHJvb3RfZG9tYWluICpyZCA9IHJxLT5yZDsKKwlzdHJ1Y3QgcnRfcnEgKnJ0X3JxOworCisJaWYgKHVubGlrZWx5KCFzY2hlZHVsZXJfcnVubmluZykpCisJCXJldHVybjsKKworCWZvcl9lYWNoX2xlYWZfcnRfcnEocnRfcnEsIHJxKSB7CisJCXN0cnVjdCBydF9iYW5kd2lkdGggKnJ0X2IgPSBzY2hlZF9ydF9iYW5kd2lkdGgocnRfcnEpOworCQlzNjQgd2FudDsKKwkJaW50IGk7CisKKwkJc3Bpbl9sb2NrKCZydF9iLT5ydF9ydW50aW1lX2xvY2spOworCQlzcGluX2xvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCQlpZiAocnRfcnEtPnJ0X3J1bnRpbWUgPT0gUlVOVElNRV9JTkYgfHwKKwkJCQlydF9ycS0+cnRfcnVudGltZSA9PSBydF9iLT5ydF9ydW50aW1lKQorCQkJZ290byBiYWxhbmNlZDsKKwkJc3Bpbl91bmxvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCisJCXdhbnQgPSBydF9iLT5ydF9ydW50aW1lIC0gcnRfcnEtPnJ0X3J1bnRpbWU7CisKKwkJZm9yX2VhY2hfY3B1X21hc2soaSwgcmQtPnNwYW4pIHsKKwkJCXN0cnVjdCBydF9ycSAqaXRlciA9IHNjaGVkX3J0X3BlcmlvZF9ydF9ycShydF9iLCBpKTsKKwkJCXM2NCBkaWZmOworCisJCQlpZiAoaXRlciA9PSBydF9ycSkKKwkJCQljb250aW51ZTsKKworCQkJc3Bpbl9sb2NrKCZpdGVyLT5ydF9ydW50aW1lX2xvY2spOworCQkJaWYgKHdhbnQgPiAwKSB7CisJCQkJZGlmZiA9IG1pbl90KHM2NCwgaXRlci0+cnRfcnVudGltZSwgd2FudCk7CisJCQkJaXRlci0+cnRfcnVudGltZSAtPSBkaWZmOworCQkJCXdhbnQgLT0gZGlmZjsKKwkJCX0gZWxzZSB7CisJCQkJaXRlci0+cnRfcnVudGltZSAtPSB3YW50OworCQkJCXdhbnQgLT0gd2FudDsKKwkJCX0KKwkJCXNwaW5fdW5sb2NrKCZpdGVyLT5ydF9ydW50aW1lX2xvY2spOworCisJCQlpZiAoIXdhbnQpCisJCQkJYnJlYWs7CisJCX0KKworCQlzcGluX2xvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCQlCVUdfT04od2FudCk7CitiYWxhbmNlZDoKKwkJcnRfcnEtPnJ0X3J1bnRpbWUgPSBSVU5USU1FX0lORjsKKwkJc3Bpbl91bmxvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCQlzcGluX3VubG9jaygmcnRfYi0+cnRfcnVudGltZV9sb2NrKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGRpc2FibGVfcnVudGltZShzdHJ1Y3QgcnEgKnJxKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcnEtPmxvY2ssIGZsYWdzKTsKKwlfX2Rpc2FibGVfcnVudGltZShycSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcnEtPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgX19lbmFibGVfcnVudGltZShzdHJ1Y3QgcnEgKnJxKQoreworCXN0cnVjdCBydF9ycSAqcnRfcnE7CisKKwlpZiAodW5saWtlbHkoIXNjaGVkdWxlcl9ydW5uaW5nKSkKKwkJcmV0dXJuOworCisJZm9yX2VhY2hfbGVhZl9ydF9ycShydF9ycSwgcnEpIHsKKwkJc3RydWN0IHJ0X2JhbmR3aWR0aCAqcnRfYiA9IHNjaGVkX3J0X2JhbmR3aWR0aChydF9ycSk7CisKKwkJc3Bpbl9sb2NrKCZydF9iLT5ydF9ydW50aW1lX2xvY2spOworCQlzcGluX2xvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCQlydF9ycS0+cnRfcnVudGltZSA9IHJ0X2ItPnJ0X3J1bnRpbWU7CisJCXJ0X3JxLT5ydF90aW1lID0gMDsKKwkJc3Bpbl91bmxvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCQlzcGluX3VubG9jaygmcnRfYi0+cnRfcnVudGltZV9sb2NrKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGVuYWJsZV9ydW50aW1lKHN0cnVjdCBycSAqcnEpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZycS0+bG9jaywgZmxhZ3MpOworCV9fZW5hYmxlX3J1bnRpbWUocnEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJxLT5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbnQgYmFsYW5jZV9ydW50aW1lKHN0cnVjdCBydF9ycSAqcnRfcnEpCit7CisJaW50IG1vcmUgPSAwOworCisJaWYgKHJ0X3JxLT5ydF90aW1lID4gcnRfcnEtPnJ0X3J1bnRpbWUpIHsKKwkJc3Bpbl91bmxvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCQltb3JlID0gZG9fYmFsYW5jZV9ydW50aW1lKHJ0X3JxKTsKKwkJc3Bpbl9sb2NrKCZydF9ycS0+cnRfcnVudGltZV9sb2NrKTsKKwl9CisKKwlyZXR1cm4gbW9yZTsKK30KKyNlbHNlIC8qICFDT05GSUdfU01QICovCitzdGF0aWMgaW5saW5lIGludCBiYWxhbmNlX3J1bnRpbWUoc3RydWN0IHJ0X3JxICpydF9ycSkKK3sKKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBDT05GSUdfU01QICovCiAKIHN0YXRpYyBpbnQgZG9fc2NoZWRfcnRfcGVyaW9kX3RpbWVyKHN0cnVjdCBydF9iYW5kd2lkdGggKnJ0X2IsIGludCBvdmVycnVuKQogewpAQCAtMjQxLDYgKzQwMCw4IEBACiAJCQl1NjQgcnVudGltZTsKIAogCQkJc3Bpbl9sb2NrKCZydF9ycS0+cnRfcnVudGltZV9sb2NrKTsKKwkJCWlmIChydF9ycS0+cnRfdGhyb3R0bGVkKQorCQkJCWJhbGFuY2VfcnVudGltZShydF9ycSk7CiAJCQlydW50aW1lID0gcnRfcnEtPnJ0X3J1bnRpbWU7CiAJCQlydF9ycS0+cnRfdGltZSAtPSBtaW4ocnRfcnEtPnJ0X3RpbWUsIG92ZXJydW4qcnVudGltZSk7CiAJCQlpZiAocnRfcnEtPnJ0X3Rocm90dGxlZCAmJiBydF9ycS0+cnRfdGltZSA8IHJ1bnRpbWUpIHsKQEAgLTI2MSw0NyArNDIyLDYgQEAKIAlyZXR1cm4gaWRsZTsKIH0KIAotI2lmZGVmIENPTkZJR19TTVAKLXN0YXRpYyBpbnQgYmFsYW5jZV9ydW50aW1lKHN0cnVjdCBydF9ycSAqcnRfcnEpCi17Ci0Jc3RydWN0IHJ0X2JhbmR3aWR0aCAqcnRfYiA9IHNjaGVkX3J0X2JhbmR3aWR0aChydF9ycSk7Ci0Jc3RydWN0IHJvb3RfZG9tYWluICpyZCA9IGNwdV9ycShzbXBfcHJvY2Vzc29yX2lkKCkpLT5yZDsKLQlpbnQgaSwgd2VpZ2h0LCBtb3JlID0gMDsKLQl1NjQgcnRfcGVyaW9kOwotCi0Jd2VpZ2h0ID0gY3B1c193ZWlnaHQocmQtPnNwYW4pOwotCi0Jc3Bpbl9sb2NrKCZydF9iLT5ydF9ydW50aW1lX2xvY2spOwotCXJ0X3BlcmlvZCA9IGt0aW1lX3RvX25zKHJ0X2ItPnJ0X3BlcmlvZCk7Ci0JZm9yX2VhY2hfY3B1X21hc2soaSwgcmQtPnNwYW4pIHsKLQkJc3RydWN0IHJ0X3JxICppdGVyID0gc2NoZWRfcnRfcGVyaW9kX3J0X3JxKHJ0X2IsIGkpOwotCQlzNjQgZGlmZjsKLQotCQlpZiAoaXRlciA9PSBydF9ycSkKLQkJCWNvbnRpbnVlOwotCi0JCXNwaW5fbG9jaygmaXRlci0+cnRfcnVudGltZV9sb2NrKTsKLQkJZGlmZiA9IGl0ZXItPnJ0X3J1bnRpbWUgLSBpdGVyLT5ydF90aW1lOwotCQlpZiAoZGlmZiA+IDApIHsKLQkJCWRvX2RpdihkaWZmLCB3ZWlnaHQpOwotCQkJaWYgKHJ0X3JxLT5ydF9ydW50aW1lICsgZGlmZiA+IHJ0X3BlcmlvZCkKLQkJCQlkaWZmID0gcnRfcGVyaW9kIC0gcnRfcnEtPnJ0X3J1bnRpbWU7Ci0JCQlpdGVyLT5ydF9ydW50aW1lIC09IGRpZmY7Ci0JCQlydF9ycS0+cnRfcnVudGltZSArPSBkaWZmOwotCQkJbW9yZSA9IDE7Ci0JCQlpZiAocnRfcnEtPnJ0X3J1bnRpbWUgPT0gcnRfcGVyaW9kKSB7Ci0JCQkJc3Bpbl91bmxvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQkJc3Bpbl91bmxvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7Ci0JfQotCXNwaW5fdW5sb2NrKCZydF9iLT5ydF9ydW50aW1lX2xvY2spOwotCi0JcmV0dXJuIG1vcmU7Ci19Ci0jZW5kaWYKLQogc3RhdGljIGlubGluZSBpbnQgcnRfc2VfcHJpbyhzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSkKIHsKICNpZmRlZiBDT05GSUdfUlRfR1JPVVBfU0NIRUQKQEAgLTMyNywxOCArNDQ3LDEwIEBACiAJaWYgKHNjaGVkX3J0X3J1bnRpbWUocnRfcnEpID49IHNjaGVkX3J0X3BlcmlvZChydF9ycSkpCiAJCXJldHVybiAwOwogCi0jaWZkZWYgQ09ORklHX1NNUAotCWlmIChydF9ycS0+cnRfdGltZSA+IHJ1bnRpbWUpIHsKLQkJaW50IG1vcmU7Ci0KLQkJc3Bpbl91bmxvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOwotCQltb3JlID0gYmFsYW5jZV9ydW50aW1lKHJ0X3JxKTsKLQkJc3Bpbl9sb2NrKCZydF9ycS0+cnRfcnVudGltZV9sb2NrKTsKLQotCQlpZiAobW9yZSkKLQkJCXJ1bnRpbWUgPSBzY2hlZF9ydF9ydW50aW1lKHJ0X3JxKTsKLQl9Ci0jZW5kaWYKKwliYWxhbmNlX3J1bnRpbWUocnRfcnEpOworCXJ1bnRpbWUgPSBzY2hlZF9ydF9ydW50aW1lKHJ0X3JxKTsKKwlpZiAocnVudGltZSA9PSBSVU5USU1FX0lORikKKwkJcmV0dXJuIDA7CiAKIAlpZiAocnRfcnEtPnJ0X3RpbWUgPiBydW50aW1lKSB7CiAJCXJ0X3JxLT5ydF90aHJvdHRsZWQgPSAxOwpAQCAtMzkyLDEyICs1MDQsMjEgQEAKIAlXQVJOX09OKCFydF9wcmlvKHJ0X3NlX3ByaW8ocnRfc2UpKSk7CiAJcnRfcnEtPnJ0X25yX3J1bm5pbmcrKzsKICNpZiBkZWZpbmVkIENPTkZJR19TTVAgfHwgZGVmaW5lZCBDT05GSUdfUlRfR1JPVVBfU0NIRUQKLQlpZiAocnRfc2VfcHJpbyhydF9zZSkgPCBydF9ycS0+aGlnaGVzdF9wcmlvKQorCWlmIChydF9zZV9wcmlvKHJ0X3NlKSA8IHJ0X3JxLT5oaWdoZXN0X3ByaW8pIHsKKwkJc3RydWN0IHJxICpycSA9IHJxX29mX3J0X3JxKHJ0X3JxKTsKKwogCQlydF9ycS0+aGlnaGVzdF9wcmlvID0gcnRfc2VfcHJpbyhydF9zZSk7CisjaWZkZWYgQ09ORklHX1NNUAorCQlpZiAocnEtPm9ubGluZSkKKwkJCWNwdXByaV9zZXQoJnJxLT5yZC0+Y3B1cHJpLCBycS0+Y3B1LAorCQkJCSAgIHJ0X3NlX3ByaW8ocnRfc2UpKTsKKyNlbmRpZgorCX0KICNlbmRpZgogI2lmZGVmIENPTkZJR19TTVAKIAlpZiAocnRfc2UtPm5yX2NwdXNfYWxsb3dlZCA+IDEpIHsKIAkJc3RydWN0IHJxICpycSA9IHJxX29mX3J0X3JxKHJ0X3JxKTsKKwogCQlycS0+cnQucnRfbnJfbWlncmF0b3J5Kys7CiAJfQogCkBAIC00MTcsNiArNTM4LDEwIEBACiBzdGF0aWMgaW5saW5lCiB2b2lkIGRlY19ydF90YXNrcyhzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSwgc3RydWN0IHJ0X3JxICpydF9ycSkKIHsKKyNpZmRlZiBDT05GSUdfU01QCisJaW50IGhpZ2hlc3RfcHJpbyA9IHJ0X3JxLT5oaWdoZXN0X3ByaW87CisjZW5kaWYKKwogCVdBUk5fT04oIXJ0X3ByaW8ocnRfc2VfcHJpbyhydF9zZSkpKTsKIAlXQVJOX09OKCFydF9ycS0+cnRfbnJfcnVubmluZyk7CiAJcnRfcnEtPnJ0X25yX3J1bm5pbmctLTsKQEAgLTQ0MCw2ICs1NjUsMTQgQEAKIAkJcnEtPnJ0LnJ0X25yX21pZ3JhdG9yeS0tOwogCX0KIAorCWlmIChydF9ycS0+aGlnaGVzdF9wcmlvICE9IGhpZ2hlc3RfcHJpbykgeworCQlzdHJ1Y3QgcnEgKnJxID0gcnFfb2ZfcnRfcnEocnRfcnEpOworCisJCWlmIChycS0+b25saW5lKQorCQkJY3B1cHJpX3NldCgmcnEtPnJkLT5jcHVwcmksIHJxLT5jcHUsCisJCQkJICAgcnRfcnEtPmhpZ2hlc3RfcHJpbyk7CisJfQorCiAJdXBkYXRlX3J0X21pZ3JhdGlvbihycV9vZl9ydF9ycShydF9ycSkpOwogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KICNpZmRlZiBDT05GSUdfUlRfR1JPVVBfU0NIRUQKQEAgLTQ1NSw2ICs1ODgsNyBAQAogCXN0cnVjdCBydF9ycSAqcnRfcnEgPSBydF9ycV9vZl9zZShydF9zZSk7CiAJc3RydWN0IHJ0X3ByaW9fYXJyYXkgKmFycmF5ID0gJnJ0X3JxLT5hY3RpdmU7CiAJc3RydWN0IHJ0X3JxICpncm91cF9ycSA9IGdyb3VwX3J0X3JxKHJ0X3NlKTsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpxdWV1ZSA9IGFycmF5LT5xdWV1ZSArIHJ0X3NlX3ByaW8ocnRfc2UpOwogCiAJLyoKIAkgKiBEb24ndCBlbnF1ZXVlIHRoZSBncm91cCBpZiBpdHMgdGhyb3R0bGVkLCBvciB3aGVuIGVtcHR5LgpAQCAtNDY1LDcgKzU5OSwxMSBAQAogCWlmIChncm91cF9ycSAmJiAocnRfcnFfdGhyb3R0bGVkKGdyb3VwX3JxKSB8fCAhZ3JvdXBfcnEtPnJ0X25yX3J1bm5pbmcpKQogCQlyZXR1cm47CiAKLQlsaXN0X2FkZF90YWlsKCZydF9zZS0+cnVuX2xpc3QsIGFycmF5LT5xdWV1ZSArIHJ0X3NlX3ByaW8ocnRfc2UpKTsKKwlpZiAocnRfc2UtPm5yX2NwdXNfYWxsb3dlZCA9PSAxKQorCQlsaXN0X2FkZCgmcnRfc2UtPnJ1bl9saXN0LCBxdWV1ZSk7CisJZWxzZQorCQlsaXN0X2FkZF90YWlsKCZydF9zZS0+cnVuX2xpc3QsIHF1ZXVlKTsKKwogCV9fc2V0X2JpdChydF9zZV9wcmlvKHJ0X3NlKSwgYXJyYXktPmJpdG1hcCk7CiAKIAlpbmNfcnRfdGFza3MocnRfc2UsIHJ0X3JxKTsKQEAgLTUzMiw2ICs2NzAsOCBAQAogCQlydF9zZS0+dGltZW91dCA9IDA7CiAKIAllbnF1ZXVlX3J0X2VudGl0eShydF9zZSk7CisKKwlpbmNfY3B1X2xvYWQocnEsIHAtPnNlLmxvYWQud2VpZ2h0KTsKIH0KIAogc3RhdGljIHZvaWQgZGVxdWV1ZV90YXNrX3J0KHN0cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IHNsZWVwKQpAQCAtNTQwLDYgKzY4MCw4IEBACiAKIAl1cGRhdGVfY3Vycl9ydChycSk7CiAJZGVxdWV1ZV9ydF9lbnRpdHkocnRfc2UpOworCisJZGVjX2NwdV9sb2FkKHJxLCBwLT5zZS5sb2FkLndlaWdodCk7CiB9CiAKIC8qCkBAIC01NTAsMTAgKzY5MiwxMiBAQAogdm9pZCByZXF1ZXVlX3J0X2VudGl0eShzdHJ1Y3QgcnRfcnEgKnJ0X3JxLCBzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSkKIHsKIAlzdHJ1Y3QgcnRfcHJpb19hcnJheSAqYXJyYXkgPSAmcnRfcnEtPmFjdGl2ZTsKLQlzdHJ1Y3QgbGlzdF9oZWFkICpxdWV1ZSA9IGFycmF5LT5xdWV1ZSArIHJ0X3NlX3ByaW8ocnRfc2UpOwogCi0JaWYgKG9uX3J0X3JxKHJ0X3NlKSkKLQkJbGlzdF9tb3ZlX3RhaWwoJnJ0X3NlLT5ydW5fbGlzdCwgcXVldWUpOworCWlmIChvbl9ydF9ycShydF9zZSkpIHsKKwkJbGlzdF9kZWxfaW5pdCgmcnRfc2UtPnJ1bl9saXN0KTsKKwkJbGlzdF9hZGRfdGFpbCgmcnRfc2UtPnJ1bl9saXN0LAorCQkJICAgICAgYXJyYXktPnF1ZXVlICsgcnRfc2VfcHJpbyhydF9zZSkpOworCX0KIH0KIAogc3RhdGljIHZvaWQgcmVxdWV1ZV90YXNrX3J0KHN0cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKQEAgLTYxNiw4ICs3NjAsMzcgQEAKICAqLwogc3RhdGljIHZvaWQgY2hlY2tfcHJlZW1wdF9jdXJyX3J0KHN0cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIHsKLQlpZiAocC0+cHJpbyA8IHJxLT5jdXJyLT5wcmlvKQorCWlmIChwLT5wcmlvIDwgcnEtPmN1cnItPnByaW8pIHsKIAkJcmVzY2hlZF90YXNrKHJxLT5jdXJyKTsKKwkJcmV0dXJuOworCX0KKworI2lmZGVmIENPTkZJR19TTVAKKwkvKgorCSAqIElmOgorCSAqCisJICogLSB0aGUgbmV3bHkgd29rZW4gdGFzayBpcyBvZiBlcXVhbCBwcmlvcml0eSB0byB0aGUgY3VycmVudCB0YXNrCisJICogLSB0aGUgbmV3bHkgd29rZW4gdGFzayBpcyBub24tbWlncmF0YWJsZSB3aGlsZSBjdXJyZW50IGlzIG1pZ3JhdGFibGUKKwkgKiAtIGN1cnJlbnQgd2lsbCBiZSBwcmVlbXB0ZWQgb24gdGhlIG5leHQgcmVzY2hlZHVsZQorCSAqCisJICogd2Ugc2hvdWxkIGNoZWNrIHRvIHNlZSBpZiBjdXJyZW50IGNhbiByZWFkaWx5IG1vdmUgdG8gYSBkaWZmZXJlbnQKKwkgKiBjcHUuICBJZiBzbywgd2Ugd2lsbCByZXNjaGVkdWxlIHRvIGFsbG93IHRoZSBwdXNoIGxvZ2ljIHRvIHRyeQorCSAqIHRvIG1vdmUgY3VycmVudCBzb21ld2hlcmUgZWxzZSwgbWFraW5nIHJvb20gZm9yIG91ciBub24tbWlncmF0YWJsZQorCSAqIHRhc2suCisJICovCisJaWYoKHAtPnByaW8gPT0gcnEtPmN1cnItPnByaW8pCisJICAgJiYgcC0+cnQubnJfY3B1c19hbGxvd2VkID09IDEKKwkgICAmJiBycS0+Y3Vyci0+cnQubnJfY3B1c19hbGxvd2VkICE9IDEpIHsKKwkJY3B1bWFza190IG1hc2s7CisKKwkJaWYgKGNwdXByaV9maW5kKCZycS0+cmQtPmNwdXByaSwgcnEtPmN1cnIsICZtYXNrKSkKKwkJCS8qCisJCQkgKiBUaGVyZSBhcHBlYXJzIHRvIGJlIG90aGVyIGNwdXMgdGhhdCBjYW4gYWNjZXB0CisJCQkgKiBjdXJyZW50LCBzbyBsZXRzIHJlc2NoZWR1bGUgdG8gdHJ5IGFuZCBwdXNoIGl0IGF3YXkKKwkJCSAqLworCQkJcmVzY2hlZF90YXNrKHJxLT5jdXJyKTsKKwl9CisjZW5kaWYKIH0KIAogc3RhdGljIHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKnBpY2tfbmV4dF9ydF9lbnRpdHkoc3RydWN0IHJxICpycSwKQEAgLTcyMCw3MyArODkzLDYgQEAKIAogc3RhdGljIERFRklORV9QRVJfQ1BVKGNwdW1hc2tfdCwgbG9jYWxfY3B1X21hc2spOwogCi1zdGF0aWMgaW50IGZpbmRfbG93ZXN0X2NwdXMoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBjcHVtYXNrX3QgKmxvd2VzdF9tYXNrKQotewotCWludCAgICAgICBsb3dlc3RfcHJpbyA9IC0xOwotCWludCAgICAgICBsb3dlc3RfY3B1ICA9IC0xOwotCWludCAgICAgICBjb3VudCAgICAgICA9IDA7Ci0JaW50ICAgICAgIGNwdTsKLQotCWNwdXNfYW5kKCpsb3dlc3RfbWFzaywgdGFza19ycSh0YXNrKS0+cmQtPm9ubGluZSwgdGFzay0+Y3B1c19hbGxvd2VkKTsKLQotCS8qCi0JICogU2NhbiBlYWNoIHJxIGZvciB0aGUgbG93ZXN0IHByaW8uCi0JICovCi0JZm9yX2VhY2hfY3B1X21hc2soY3B1LCAqbG93ZXN0X21hc2spIHsKLQkJc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOwotCi0JCS8qIFdlIGxvb2sgZm9yIGxvd2VzdCBSVCBwcmlvIG9yIG5vbi1ydCBDUFUgKi8KLQkJaWYgKHJxLT5ydC5oaWdoZXN0X3ByaW8gPj0gTUFYX1JUX1BSSU8pIHsKLQkJCS8qCi0JCQkgKiBpZiB3ZSBhbHJlYWR5IGZvdW5kIGEgbG93IFJUIHF1ZXVlCi0JCQkgKiBhbmQgbm93IHdlIGZvdW5kIHRoaXMgbm9uLXJ0IHF1ZXVlCi0JCQkgKiBjbGVhciB0aGUgbWFzayBhbmQgc2V0IG91ciBiaXQuCi0JCQkgKiBPdGhlcndpc2UganVzdCByZXR1cm4gdGhlIHF1ZXVlIGFzIGlzCi0JCQkgKiBhbmQgdGhlIGNvdW50PT0xIHdpbGwgY2F1c2UgdGhlIGFsZ29yaXRobQotCQkJICogdG8gdXNlIHRoZSBmaXJzdCBiaXQgZm91bmQuCi0JCQkgKi8KLQkJCWlmIChsb3dlc3RfY3B1ICE9IC0xKSB7Ci0JCQkJY3B1c19jbGVhcigqbG93ZXN0X21hc2spOwotCQkJCWNwdV9zZXQocnEtPmNwdSwgKmxvd2VzdF9tYXNrKTsKLQkJCX0KLQkJCXJldHVybiAxOwotCQl9Ci0KLQkJLyogbm8gbG9ja2luZyBmb3Igbm93ICovCi0JCWlmICgocnEtPnJ0LmhpZ2hlc3RfcHJpbyA+IHRhc2stPnByaW8pCi0JCSAgICAmJiAocnEtPnJ0LmhpZ2hlc3RfcHJpbyA+PSBsb3dlc3RfcHJpbykpIHsKLQkJCWlmIChycS0+cnQuaGlnaGVzdF9wcmlvID4gbG93ZXN0X3ByaW8pIHsKLQkJCQkvKiBuZXcgbG93IC0gY2xlYXIgb2xkIGRhdGEgKi8KLQkJCQlsb3dlc3RfcHJpbyA9IHJxLT5ydC5oaWdoZXN0X3ByaW87Ci0JCQkJbG93ZXN0X2NwdSA9IGNwdTsKLQkJCQljb3VudCA9IDA7Ci0JCQl9Ci0JCQljb3VudCsrOwotCQl9IGVsc2UKLQkJCWNwdV9jbGVhcihjcHUsICpsb3dlc3RfbWFzayk7Ci0JfQotCi0JLyoKLQkgKiBDbGVhciBvdXQgYWxsIHRoZSBzZXQgYml0cyB0aGF0IHJlcHJlc2VudAotCSAqIHJ1bnF1ZXVlcyB0aGF0IHdlcmUgb2YgaGlnaGVyIHByaW8gdGhhbgotCSAqIHRoZSBsb3dlc3RfcHJpby4KLQkgKi8KLQlpZiAobG93ZXN0X2NwdSA+IDApIHsKLQkJLyoKLQkJICogUGVyaGFwcyB3ZSBjb3VsZCBhZGQgYW5vdGhlciBjcHVtYXNrIG9wIHRvCi0JCSAqIHplcm8gb3V0IGJpdHMuIExpa2UgY3B1X3plcm9fYml0cyhjcHVtYXNrLCBucmJpdHMpOwotCQkgKiBUaGVuIHRoYXQgY291bGQgYmUgb3B0aW1pemVkIHRvIHVzZSBtZW1zZXQgYW5kIHN1Y2guCi0JCSAqLwotCQlmb3JfZWFjaF9jcHVfbWFzayhjcHUsICpsb3dlc3RfbWFzaykgewotCQkJaWYgKGNwdSA+PSBsb3dlc3RfY3B1KQotCQkJCWJyZWFrOwotCQkJY3B1X2NsZWFyKGNwdSwgKmxvd2VzdF9tYXNrKTsKLQkJfQotCX0KLQotCXJldHVybiBjb3VudDsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgcGlja19vcHRpbWFsX2NwdShpbnQgdGhpc19jcHUsIGNwdW1hc2tfdCAqbWFzaykKIHsKIAlpbnQgZmlyc3Q7CkBAIC04MDgsMTkgKzkxNCwxNCBAQAogCWNwdW1hc2tfdCAqbG93ZXN0X21hc2sgPSAmX19nZXRfY3B1X3Zhcihsb2NhbF9jcHVfbWFzayk7CiAJaW50IHRoaXNfY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCWludCBjcHUgICAgICA9IHRhc2tfY3B1KHRhc2spOwotCWludCBjb3VudCAgICA9IGZpbmRfbG93ZXN0X2NwdXModGFzaywgbG93ZXN0X21hc2spOwogCi0JaWYgKCFjb3VudCkKKwlpZiAodGFzay0+cnQubnJfY3B1c19hbGxvd2VkID09IDEpCisJCXJldHVybiAtMTsgLyogTm8gb3RoZXIgdGFyZ2V0cyBwb3NzaWJsZSAqLworCisJaWYgKCFjcHVwcmlfZmluZCgmdGFza19ycSh0YXNrKS0+cmQtPmNwdXByaSwgdGFzaywgbG93ZXN0X21hc2spKQogCQlyZXR1cm4gLTE7IC8qIE5vIHRhcmdldHMgZm91bmQgKi8KIAogCS8qCi0JICogVGhlcmUgaXMgbm8gc2Vuc2UgaW4gcGVyZm9ybWluZyBhbiBvcHRpbWFsIHNlYXJjaCBpZiBvbmx5IG9uZQotCSAqIHRhcmdldCBpcyBmb3VuZC4KLQkgKi8KLQlpZiAoY291bnQgPT0gMSkKLQkJcmV0dXJuIGZpcnN0X2NwdSgqbG93ZXN0X21hc2spOwotCi0JLyoKIAkgKiBBdCB0aGlzIHBvaW50IHdlIGhhdmUgYnVpbHQgYSBtYXNrIG9mIGNwdXMgcmVwcmVzZW50aW5nIHRoZQogCSAqIGxvd2VzdCBwcmlvcml0eSB0YXNrcyBpbiB0aGUgc3lzdGVtLiAgTm93IHdlIHdhbnQgdG8gZWxlY3QKIAkgKiB0aGUgYmVzdCBvbmUgYmFzZWQgb24gb3VyIGFmZmluaXR5IGFuZCB0b3BvbG9neS4KQEAgLTExNjMsMTcgKzEyNjQsMjUgQEAKIH0KIAogLyogQXNzdW1lcyBycS0+bG9jayBpcyBoZWxkICovCi1zdGF0aWMgdm9pZCBqb2luX2RvbWFpbl9ydChzdHJ1Y3QgcnEgKnJxKQorc3RhdGljIHZvaWQgcnFfb25saW5lX3J0KHN0cnVjdCBycSAqcnEpCiB7CiAJaWYgKHJxLT5ydC5vdmVybG9hZGVkKQogCQlydF9zZXRfb3ZlcmxvYWQocnEpOworCisJX19lbmFibGVfcnVudGltZShycSk7CisKKwljcHVwcmlfc2V0KCZycS0+cmQtPmNwdXByaSwgcnEtPmNwdSwgcnEtPnJ0LmhpZ2hlc3RfcHJpbyk7CiB9CiAKIC8qIEFzc3VtZXMgcnEtPmxvY2sgaXMgaGVsZCAqLwotc3RhdGljIHZvaWQgbGVhdmVfZG9tYWluX3J0KHN0cnVjdCBycSAqcnEpCitzdGF0aWMgdm9pZCBycV9vZmZsaW5lX3J0KHN0cnVjdCBycSAqcnEpCiB7CiAJaWYgKHJxLT5ydC5vdmVybG9hZGVkKQogCQlydF9jbGVhcl9vdmVybG9hZChycSk7CisKKwlfX2Rpc2FibGVfcnVudGltZShycSk7CisKKwljcHVwcmlfc2V0KCZycS0+cmQtPmNwdXByaSwgcnEtPmNwdSwgQ1BVUFJJX0lOVkFMSUQpOwogfQogCiAvKgpAQCAtMTMzNiw4ICsxNDQ1LDggQEAKIAkubG9hZF9iYWxhbmNlCQk9IGxvYWRfYmFsYW5jZV9ydCwKIAkubW92ZV9vbmVfdGFzawkJPSBtb3ZlX29uZV90YXNrX3J0LAogCS5zZXRfY3B1c19hbGxvd2VkICAgICAgID0gc2V0X2NwdXNfYWxsb3dlZF9ydCwKLQkuam9pbl9kb21haW4gICAgICAgICAgICA9IGpvaW5fZG9tYWluX3J0LAotCS5sZWF2ZV9kb21haW4gICAgICAgICAgID0gbGVhdmVfZG9tYWluX3J0LAorCS5ycV9vbmxpbmUgICAgICAgICAgICAgID0gcnFfb25saW5lX3J0LAorCS5ycV9vZmZsaW5lICAgICAgICAgICAgID0gcnFfb2ZmbGluZV9ydCwKIAkucHJlX3NjaGVkdWxlCQk9IHByZV9zY2hlZHVsZV9ydCwKIAkucG9zdF9zY2hlZHVsZQkJPSBwb3N0X3NjaGVkdWxlX3J0LAogCS50YXNrX3dha2VfdXAJCT0gdGFza193YWtlX3VwX3J0LApAQCAtMTM1MCwzICsxNDU5LDE3IEBACiAJLnByaW9fY2hhbmdlZAkJPSBwcmlvX2NoYW5nZWRfcnQsCiAJLnN3aXRjaGVkX3RvCQk9IHN3aXRjaGVkX3RvX3J0LAogfTsKKworI2lmZGVmIENPTkZJR19TQ0hFRF9ERUJVRworZXh0ZXJuIHZvaWQgcHJpbnRfcnRfcnEoc3RydWN0IHNlcV9maWxlICptLCBpbnQgY3B1LCBzdHJ1Y3QgcnRfcnEgKnJ0X3JxKTsKKworc3RhdGljIHZvaWQgcHJpbnRfcnRfc3RhdHMoc3RydWN0IHNlcV9maWxlICptLCBpbnQgY3B1KQoreworCXN0cnVjdCBydF9ycSAqcnRfcnE7CisKKwlyY3VfcmVhZF9sb2NrKCk7CisJZm9yX2VhY2hfbGVhZl9ydF9ycShydF9ycSwgY3B1X3JxKGNwdSkpCisJCXByaW50X3J0X3JxKG0sIGNwdSwgcnRfcnEpOworCXJjdV9yZWFkX3VubG9jaygpOworfQorI2VuZGlmIC8qIENPTkZJR19TQ0hFRF9ERUJVRyAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX3N0YXRzLmggYi9rZXJuZWwvc2NoZWRfc3RhdHMuaAppbmRleCA4MDE3OWVmLi44Mzg1ZDQzIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWRfc3RhdHMuaAorKysgYi9rZXJuZWwvc2NoZWRfc3RhdHMuaApAQCAtMTE4LDYgKzExOCwxMyBAQAogCWlmIChycSkKIAkJcnEtPnJxX3NjaGVkX2luZm8uY3B1X3RpbWUgKz0gZGVsdGE7CiB9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorcnFfc2NoZWRfaW5mb19kZXF1ZXVlZChzdHJ1Y3QgcnEgKnJxLCB1bnNpZ25lZCBsb25nIGxvbmcgZGVsdGEpCit7CisJaWYgKHJxKQorCQlycS0+cnFfc2NoZWRfaW5mby5ydW5fZGVsYXkgKz0gZGVsdGE7Cit9CiAjIGRlZmluZSBzY2hlZHN0YXRfaW5jKHJxLCBmaWVsZCkJZG8geyAocnEpLT5maWVsZCsrOyB9IHdoaWxlICgwKQogIyBkZWZpbmUgc2NoZWRzdGF0X2FkZChycSwgZmllbGQsIGFtdCkJZG8geyAocnEpLT5maWVsZCArPSAoYW10KTsgfSB3aGlsZSAoMCkKICMgZGVmaW5lIHNjaGVkc3RhdF9zZXQodmFyLCB2YWwpCWRvIHsgdmFyID0gKHZhbCk7IH0gd2hpbGUgKDApCkBAIC0xMjYsNiArMTMzLDkgQEAKIHJxX3NjaGVkX2luZm9fYXJyaXZlKHN0cnVjdCBycSAqcnEsIHVuc2lnbmVkIGxvbmcgbG9uZyBkZWx0YSkKIHt9CiBzdGF0aWMgaW5saW5lIHZvaWQKK3JxX3NjaGVkX2luZm9fZGVxdWV1ZWQoc3RydWN0IHJxICpycSwgdW5zaWduZWQgbG9uZyBsb25nIGRlbHRhKQore30KK3N0YXRpYyBpbmxpbmUgdm9pZAogcnFfc2NoZWRfaW5mb19kZXBhcnQoc3RydWN0IHJxICpycSwgdW5zaWduZWQgbG9uZyBsb25nIGRlbHRhKQoge30KICMgZGVmaW5lIHNjaGVkc3RhdF9pbmMocnEsIGZpZWxkKQlkbyB7IH0gd2hpbGUgKDApCkBAIC0xMzQsNiArMTQ0LDExIEBACiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX1NDSEVEU1RBVFMpIHx8IGRlZmluZWQoQ09ORklHX1RBU0tfREVMQVlfQUNDVCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzY2hlZF9pbmZvX3Jlc2V0X2RlcXVldWVkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKK3sKKwl0LT5zY2hlZF9pbmZvLmxhc3RfcXVldWVkID0gMDsKK30KKwogLyoKICAqIENhbGxlZCB3aGVuIGEgcHJvY2VzcyBpcyBkZXF1ZXVlZCBmcm9tIHRoZSBhY3RpdmUgYXJyYXkgYW5kIGdpdmVuCiAgKiB0aGUgY3B1LiAgV2Ugc2hvdWxkIG5vdGUgdGhhdCB3aXRoIHRoZSBleGNlcHRpb24gb2YgaW50ZXJhY3RpdmUKQEAgLTE0MywxNSArMTU4LDIyIEBACiAgKiBhY3RpdmUgcXVldWUsIHRodXMgZGVsYXlpbmcgdGFza3MgaW4gdGhlIGV4cGlyZWQgcXVldWUgZnJvbSBydW5uaW5nOwogICogc2VlIHNjaGVkdWxlcl90aWNrKCkpLgogICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSBzY2hlZF9pbmZvX2Fycml2ZSgpLCByYXRoZXIgdGhhbgotICogZGVxdWV1ZV90YXNrKCkuIEV2ZW4gdGhvdWdoIGEgdGFzayBtYXkgYmUgcXVldWVkIGFuZCBkZXF1ZXVlZCBtdWx0aXBsZQotICogdGltZXMgYXMgaXQgaXMgc2h1ZmZsZWQgYWJvdXQsIHdlJ3JlIHJlYWxseSBpbnRlcmVzdGVkIGluIGtub3dpbmcgaG93Ci0gKiBsb25nIGl0IHdhcyBmcm9tIHRoZSAqZmlyc3QqIHRpbWUgaXQgd2FzIHF1ZXVlZCB0byB0aGUgdGltZSB0aGF0IGl0Ci0gKiBmaW5hbGx5IGhpdCBhIGNwdS4KKyAqIFRob3VnaCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBrbm93aW5nIGhvdyBsb25nIGl0IHdhcyBmcm9tIHRoZSAqZmlyc3QqIHRpbWUgYQorICogdGFzayB3YXMgcXVldWVkIHRvIHRoZSB0aW1lIHRoYXQgaXQgZmluYWxseSBoaXQgYSBjcHUsIHdlIGNhbGwgdGhpcyByb3V0aW5lCisgKiBmcm9tIGRlcXVldWVfdGFzaygpIHRvIGFjY291bnQgZm9yIHBvc3NpYmxlIHJxLT5jbG9jayBza2V3IGFjcm9zcyBjcHVzLiBUaGUKKyAqIGRlbHRhIHRha2VuIG9uIGVhY2ggY3B1IHdvdWxkIGFubnVsIHRoZSBza2V3LgogICovCiBzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfaW5mb19kZXF1ZXVlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpCiB7Ci0JdC0+c2NoZWRfaW5mby5sYXN0X3F1ZXVlZCA9IDA7CisJdW5zaWduZWQgbG9uZyBsb25nIG5vdyA9IHRhc2tfcnEodCktPmNsb2NrLCBkZWx0YSA9IDA7CisKKwlpZiAodW5saWtlbHkoc2NoZWRfaW5mb19vbigpKSkKKwkJaWYgKHQtPnNjaGVkX2luZm8ubGFzdF9xdWV1ZWQpCisJCQlkZWx0YSA9IG5vdyAtIHQtPnNjaGVkX2luZm8ubGFzdF9xdWV1ZWQ7CisJc2NoZWRfaW5mb19yZXNldF9kZXF1ZXVlZCh0KTsKKwl0LT5zY2hlZF9pbmZvLnJ1bl9kZWxheSArPSBkZWx0YTsKKworCXJxX3NjaGVkX2luZm9fZGVxdWV1ZWQodGFza19ycSh0KSwgZGVsdGEpOwogfQogCiAvKgpAQCAtMTY1LDcgKzE4Nyw3IEBACiAKIAlpZiAodC0+c2NoZWRfaW5mby5sYXN0X3F1ZXVlZCkKIAkJZGVsdGEgPSBub3cgLSB0LT5zY2hlZF9pbmZvLmxhc3RfcXVldWVkOwotCXNjaGVkX2luZm9fZGVxdWV1ZWQodCk7CisJc2NoZWRfaW5mb19yZXNldF9kZXF1ZXVlZCh0KTsKIAl0LT5zY2hlZF9pbmZvLnJ1bl9kZWxheSArPSBkZWx0YTsKIAl0LT5zY2hlZF9pbmZvLmxhc3RfYXJyaXZhbCA9IG5vdzsKIAl0LT5zY2hlZF9pbmZvLnBjb3VudCsrOwpAQCAtMjQyLDcgKzI2NCw5IEBACiAJCV9fc2NoZWRfaW5mb19zd2l0Y2gocHJldiwgbmV4dCk7CiB9CiAjZWxzZQotI2RlZmluZSBzY2hlZF9pbmZvX3F1ZXVlZCh0KQkJZG8geyB9IHdoaWxlICgwKQotI2RlZmluZSBzY2hlZF9pbmZvX3N3aXRjaCh0LCBuZXh0KQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNjaGVkX2luZm9fcXVldWVkKHQpCQkJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBzY2hlZF9pbmZvX3Jlc2V0X2RlcXVldWVkKHQpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgc2NoZWRfaW5mb19kZXF1ZXVlZCh0KQkJCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgc2NoZWRfaW5mb19zd2l0Y2godCwgbmV4dCkJCWRvIHsgfSB3aGlsZSAoMCkKICNlbmRpZiAvKiBDT05GSUdfU0NIRURTVEFUUyB8fCBDT05GSUdfVEFTS19ERUxBWV9BQ0NUICovCiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9zZW1hcGhvcmUuYyBiL2tlcm5lbC9zZW1hcGhvcmUuYwppbmRleCA1YzI5NDJlLi5hYWFlYWU4IDEwMDY0NAotLS0gYS9rZXJuZWwvc2VtYXBob3JlLmMKKysrIGIva2VybmVsL3NlbWFwaG9yZS5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9zZW1hcGhvcmUuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgogCiBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2Rvd24oc3RydWN0IHNlbWFwaG9yZSAqc2VtKTsKIHN0YXRpYyBub2lubGluZSBpbnQgX19kb3duX2ludGVycnVwdGlibGUoc3RydWN0IHNlbWFwaG9yZSAqc2VtKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9zb2Z0aXJxLmMgYi9rZXJuZWwvc29mdGlycS5jCmluZGV4IGMxNTlmZDAuLjgxZTJmZTAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zb2Z0aXJxLmMKKysrIGIva2VybmVsL3NvZnRpcnEuYwpAQCAtMTMxLDQ4ICsxMzEsMTEgQEAKIAogRVhQT1JUX1NZTUJPTChfbG9jYWxfYmhfZW5hYmxlKTsKIAotdm9pZCBsb2NhbF9iaF9lbmFibGUodm9pZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBfbG9jYWxfYmhfZW5hYmxlX2lwKHVuc2lnbmVkIGxvbmcgaXApCiB7CisJV0FSTl9PTl9PTkNFKGluX2lycSgpIHx8IGlycXNfZGlzYWJsZWQoKSk7CiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCVdBUk5fT05fT05DRShpbl9pcnEoKSk7Ci0jZW5kaWYKLQlXQVJOX09OX09OQ0UoaXJxc19kaXNhYmxlZCgpKTsKLQotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLSNlbmRpZgotCS8qCi0JICogQXJlIHNvZnRpcnFzIGdvaW5nIHRvIGJlIHR1cm5lZCBvbiBub3c6Ci0JICovCi0JaWYgKHNvZnRpcnFfY291bnQoKSA9PSBTT0ZUSVJRX09GRlNFVCkKLQkJdHJhY2Vfc29mdGlycXNfb24oKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKLQkvKgotCSAqIEtlZXAgcHJlZW1wdGlvbiBkaXNhYmxlZCB1bnRpbCB3ZSBhcmUgZG9uZSB3aXRoCi0JICogc29mdGlycSBwcm9jZXNzaW5nOgotIAkgKi8KLSAJc3ViX3ByZWVtcHRfY291bnQoU09GVElSUV9PRkZTRVQgLSAxKTsKLQotCWlmICh1bmxpa2VseSghaW5faW50ZXJydXB0KCkgJiYgbG9jYWxfc29mdGlycV9wZW5kaW5nKCkpKQotCQlkb19zb2Z0aXJxKCk7Ci0KLQlkZWNfcHJlZW1wdF9jb3VudCgpOwotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLSNlbmRpZgotCXByZWVtcHRfY2hlY2tfcmVzY2hlZCgpOwotfQotRVhQT1JUX1NZTUJPTChsb2NhbF9iaF9lbmFibGUpOwotCi12b2lkIGxvY2FsX2JoX2VuYWJsZV9pcCh1bnNpZ25lZCBsb25nIGlwKQotewotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlXQVJOX09OX09OQ0UoaW5faXJxKCkpOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAjZW5kaWYKIAkvKgogCSAqIEFyZSBzb2Z0aXJxcyBnb2luZyB0byBiZSB0dXJuZWQgb24gbm93OgpAQCAtMTkwLDEwICsxNTMsMjEgQEAKIAogCWRlY19wcmVlbXB0X2NvdW50KCk7CiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCWxvY2FsX2lycV9lbmFibGUoKTsKICNlbmRpZgogCXByZWVtcHRfY2hlY2tfcmVzY2hlZCgpOwogfQorCit2b2lkIGxvY2FsX2JoX2VuYWJsZSh2b2lkKQoreworCV9sb2NhbF9iaF9lbmFibGVfaXAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKK30KK0VYUE9SVF9TWU1CT0wobG9jYWxfYmhfZW5hYmxlKTsKKwordm9pZCBsb2NhbF9iaF9lbmFibGVfaXAodW5zaWduZWQgbG9uZyBpcCkKK3sKKwlfbG9jYWxfYmhfZW5hYmxlX2lwKGlwKTsKK30KIEVYUE9SVF9TWU1CT0wobG9jYWxfYmhfZW5hYmxlX2lwKTsKIAogLyoKQEAgLTM0Nyw5ICszMjEsOCBAQAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAotdm9pZCBvcGVuX3NvZnRpcnEoaW50IG5yLCB2b2lkICgqYWN0aW9uKShzdHJ1Y3Qgc29mdGlycV9hY3Rpb24qKSwgdm9pZCAqZGF0YSkKK3ZvaWQgb3Blbl9zb2Z0aXJxKGludCBuciwgdm9pZCAoKmFjdGlvbikoc3RydWN0IHNvZnRpcnFfYWN0aW9uICopKQogewotCXNvZnRpcnFfdmVjW25yXS5kYXRhID0gZGF0YTsKIAlzb2Z0aXJxX3ZlY1tucl0uYWN0aW9uID0gYWN0aW9uOwogfQogCkBAIC0zNjAsMTAgKzMzMyw4IEBACiAJc3RydWN0IHRhc2tsZXRfc3RydWN0ICoqdGFpbDsKIH07CiAKLS8qIFNvbWUgY29tcGlsZXJzIGRpc29iZXkgc2VjdGlvbiBhdHRyaWJ1dGUgb24gc3RhdGljcyB3aGVuIG5vdAotICAgaW5pdGlhbGl6ZWQgLS0gUlIgKi8KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza2xldF9oZWFkLCB0YXNrbGV0X3ZlYykgPSB7IE5VTEwgfTsKLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza2xldF9oZWFkLCB0YXNrbGV0X2hpX3ZlYykgPSB7IE5VTEwgfTsKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza2xldF9oZWFkLCB0YXNrbGV0X3ZlYyk7CitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRhc2tsZXRfaGVhZCwgdGFza2xldF9oaV92ZWMpOwogCiB2b2lkIF9fdGFza2xldF9zY2hlZHVsZShzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpCiB7CkBAIC01MDMsOCArNDc0LDggQEAKIAkJCSZwZXJfY3B1KHRhc2tsZXRfaGlfdmVjLCBjcHUpLmhlYWQ7CiAJfQogCi0Jb3Blbl9zb2Z0aXJxKFRBU0tMRVRfU09GVElSUSwgdGFza2xldF9hY3Rpb24sIE5VTEwpOwotCW9wZW5fc29mdGlycShISV9TT0ZUSVJRLCB0YXNrbGV0X2hpX2FjdGlvbiwgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKFRBU0tMRVRfU09GVElSUSwgdGFza2xldF9hY3Rpb24pOworCW9wZW5fc29mdGlycShISV9TT0ZUSVJRLCB0YXNrbGV0X2hpX2FjdGlvbik7CiB9CiAKIHN0YXRpYyBpbnQga3NvZnRpcnFkKHZvaWQgKiBfX2JpbmRfY3B1KQpAQCAtNjQ1LDcgKzYxNiw3IEBACiAKIAkJcCA9IHBlcl9jcHUoa3NvZnRpcnFkLCBob3RjcHUpOwogCQlwZXJfY3B1KGtzb2Z0aXJxZCwgaG90Y3B1KSA9IE5VTEw7Ci0JCXNjaGVkX3NldHNjaGVkdWxlcihwLCBTQ0hFRF9GSUZPLCAmcGFyYW0pOworCQlzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhwLCBTQ0hFRF9GSUZPLCAmcGFyYW0pOwogCQlrdGhyZWFkX3N0b3AocCk7CiAJCXRha2VvdmVyX3Rhc2tsZXRzKGhvdGNwdSk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NvZnRsb2NrdXAuYyBiL2tlcm5lbC9zb2Z0bG9ja3VwLmMKaW5kZXggYzgyOGMyMy4uYTI3MmQ3OCAxMDA2NDQKLS0tIGEva2VybmVsL3NvZnRsb2NrdXAuYworKysgYi9rZXJuZWwvc29mdGxvY2t1cC5jCkBAIC0xMjAsNiArMTIwLDcgQEAKIAlwcmludGsoS0VSTl9FUlIgIkJVRzogc29mdCBsb2NrdXAgLSBDUFUjJWQgc3R1Y2sgZm9yICVsdXMhIFslczolZF1cbiIsCiAJCQl0aGlzX2NwdSwgbm93IC0gdG91Y2hfdGltZXN0YW1wLAogCQkJY3VycmVudC0+Y29tbSwgdGFza19waWRfbnIoY3VycmVudCkpOworCXByaW50X21vZHVsZXMoKTsKIAlpZiAocmVncykKIAkJc2hvd19yZWdzKHJlZ3MpOwogCWVsc2UKZGlmZiAtLWdpdCBhL2tlcm5lbC9zcGlubG9jay5jIGIva2VybmVsL3NwaW5sb2NrLmMKaW5kZXggYWUyOGM4Mi4uYTFmYjU0YyAxMDA2NDQKLS0tIGEva2VybmVsL3NwaW5sb2NrLmMKKysrIGIva2VybmVsL3NwaW5sb2NrLmMKQEAgLTQzNiw3ICs0MzYsNyBAQAogfQogRVhQT1JUX1NZTUJPTChfc3Bpbl90cnlsb2NrX2JoKTsKIAotaW50IGluX2xvY2tfZnVuY3Rpb25zKHVuc2lnbmVkIGxvbmcgYWRkcikKK25vdHJhY2UgaW50IGluX2xvY2tfZnVuY3Rpb25zKHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKIAkvKiBMaW5rZXIgYWRkcyB0aGVzZTogc3RhcnQgYW5kIGVuZCBvZiBfX2xvY2tmdW5jIGZ1bmN0aW9ucyAqLwogCWV4dGVybiBjaGFyIF9fbG9ja190ZXh0X3N0YXJ0W10sIF9fbG9ja190ZXh0X2VuZFtdOwpkaWZmIC0tZ2l0IGEva2VybmVsL3N0YWNrdHJhY2UuYyBiL2tlcm5lbC9zdGFja3RyYWNlLmMKaW5kZXggYjcxODE2ZS4uOTRiNTI3ZSAxMDA2NDQKLS0tIGEva2VybmVsL3N0YWNrdHJhY2UuYworKysgYi9rZXJuZWwvc3RhY2t0cmFjZS5jCkBAIC02LDE5ICs2LDIxIEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2IFJlZCBIYXQsIEluYy4sIEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgogICovCiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgogI2luY2x1ZGUgPGxpbnV4L3N0YWNrdHJhY2UuaD4KIAogdm9pZCBwcmludF9zdGFja190cmFjZShzdHJ1Y3Qgc3RhY2tfdHJhY2UgKnRyYWNlLCBpbnQgc3BhY2VzKQogewotCWludCBpLCBqOworCWludCBpOworCisJaWYgKFdBUk5fT04oIXRyYWNlLT5lbnRyaWVzKSkKKwkJcmV0dXJuOwogCiAJZm9yIChpID0gMDsgaSA8IHRyYWNlLT5ucl9lbnRyaWVzOyBpKyspIHsKLQkJdW5zaWduZWQgbG9uZyBpcCA9IHRyYWNlLT5lbnRyaWVzW2ldOwotCi0JCWZvciAoaiA9IDA7IGogPCBzcGFjZXMgKyAxOyBqKyspCi0JCQlwcmludGsoIiAiKTsKLQkJcHJpbnRfaXBfc3ltKGlwKTsKKwkJcHJpbnRrKCIlKmMiLCAxICsgc3BhY2VzLCAnICcpOworCQlwcmludF9pcF9zeW0odHJhY2UtPmVudHJpZXNbaV0pOwogCX0KIH0KK0VYUE9SVF9TWU1CT0xfR1BMKHByaW50X3N0YWNrX3RyYWNlKTsKIApkaWZmIC0tZ2l0IGEva2VybmVsL3N0b3BfbWFjaGluZS5jIGIva2VybmVsL3N0b3BfbWFjaGluZS5jCmluZGV4IGI3MzUwYmIuLmJhOWIyMDUgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zdG9wX21hY2hpbmUuYworKysgYi9rZXJuZWwvc3RvcF9tYWNoaW5lLmMKQEAgLTE4Nyw3ICsxODcsNyBAQAogCQlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcGFyYW0gPSB7IC5zY2hlZF9wcmlvcml0eSA9IE1BWF9SVF9QUklPLTEgfTsKIAogCQkvKiBPbmUgaGlnaC1wcmlvIHRocmVhZCBwZXIgY3B1LiAgV2UnbGwgZG8gdGhpcyBvbmUuICovCi0JCXNjaGVkX3NldHNjaGVkdWxlcihwLCBTQ0hFRF9GSUZPLCAmcGFyYW0pOworCQlzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhwLCBTQ0hFRF9GSUZPLCAmcGFyYW0pOwogCQlrdGhyZWFkX2JpbmQocCwgY3B1KTsKIAkJd2FrZV91cF9wcm9jZXNzKHApOwogCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZzbWRhdGEuZG9uZSk7CmRpZmYgLS1naXQgYS9rZXJuZWwvc3lzY3RsLmMgYi9rZXJuZWwvc3lzY3RsLmMKaW5kZXggMjkxMTY2NS4uMGQ1NjJkNiAxMDA2NDQKLS0tIGEva2VybmVsL3N5c2N0bC5jCisrKyBiL2tlcm5lbC9zeXNjdGwuYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L25mc19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgpAQCAtMTMyLDggKzEzMyw2IEBACiBleHRlcm4gaW50IHNwaW5fcmV0cnk7CiAjZW5kaWYKIAotZXh0ZXJuIGludCBzeXNjdGxfaHpfdGltZXI7Ci0KICNpZmRlZiBDT05GSUdfQlNEX1BST0NFU1NfQUNDVAogZXh0ZXJuIGludCBhY2N0X3Bhcm1bXTsKICNlbmRpZgpAQCAtMjY2LDYgKzI2NSwxNCBAQAogCX0sCiAJewogCQkuY3RsX25hbWUJPSBDVExfVU5OVU1CRVJFRCwKKwkJLnByb2NuYW1lCT0gInNjaGVkX3NoYXJlc19yYXRlbGltaXQiLAorCQkuZGF0YQkJPSAmc3lzY3RsX3NjaGVkX3NoYXJlc19yYXRlbGltaXQsCisJCS5tYXhsZW4JCT0gc2l6ZW9mKHVuc2lnbmVkIGludCksCisJCS5tb2RlCQk9IDA2NDQsCisJCS5wcm9jX2hhbmRsZXIJPSAmcHJvY19kb2ludHZlYywKKwl9LAorCXsKKwkJLmN0bF9uYW1lCT0gQ1RMX1VOTlVNQkVSRUQsCiAJCS5wcm9jbmFtZQk9ICJzY2hlZF9jaGlsZF9ydW5zX2ZpcnN0IiwKIAkJLmRhdGEJCT0gJnN5c2N0bF9zY2hlZF9jaGlsZF9ydW5zX2ZpcnN0LAogCQkubWF4bGVuCQk9IHNpemVvZih1bnNpZ25lZCBpbnQpLApAQCAtNDU1LDYgKzQ2MiwxNiBAQAogCQkubW9kZQkJPSAwNjQ0LAogCQkucHJvY19oYW5kbGVyCT0gJnByb2NfZG9pbnR2ZWMsCiAJfSwKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisJeworCQkuY3RsX25hbWUJPSBDVExfVU5OVU1CRVJFRCwKKwkJLnByb2NuYW1lCT0gImZ0cmFjZV9lbmFibGVkIiwKKwkJLmRhdGEJCT0gJmZ0cmFjZV9lbmFibGVkLAorCQkubWF4bGVuCQk9IHNpemVvZihpbnQpLAorCQkubW9kZQkJPSAwNjQ0LAorCQkucHJvY19oYW5kbGVyCT0gJmZ0cmFjZV9lbmFibGVfc3lzY3RsLAorCX0sCisjZW5kaWYKICNpZmRlZiBDT05GSUdfS01PRAogCXsKIAkJLmN0bF9uYW1lCT0gS0VSTl9NT0RQUk9CRSwKQEAgLTU2MywxNiArNTgwLDYgQEAKIAkJLnByb2NfaGFuZGxlcgk9ICZwcm9jX2RvaW50dmVjLAogCX0sCiAjZW5kaWYKLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCXsKLQkJLmN0bF9uYW1lICAgICAgID0gS0VSTl9IWl9USU1FUiwKLQkJLnByb2NuYW1lICAgICAgID0gImh6X3RpbWVyIiwKLQkJLmRhdGEgICAgICAgICAgID0gJnN5c2N0bF9oel90aW1lciwKLQkJLm1heGxlbiAgICAgICAgID0gc2l6ZW9mKGludCksCi0JCS5tb2RlICAgICAgICAgICA9IDA2NDQsCi0JCS5wcm9jX2hhbmRsZXIgICA9ICZwcm9jX2RvaW50dmVjLAotCX0sCi0jZW5kaWYKIAl7CiAJCS5jdGxfbmFtZQk9IEtFUk5fUzM5MF9VU0VSX0RFQlVHX0xPR0dJTkcsCiAJCS5wcm9jbmFtZQk9ICJ1c2VycHJvY2Vzc19kZWJ1ZyIsCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS90aWNrLWJyb2FkY2FzdC5jIGIva2VybmVsL3RpbWUvdGljay1icm9hZGNhc3QuYwppbmRleCA3NWU3MTg1Li5mNDhkMGYwIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aWNrLWJyb2FkY2FzdC5jCisrKyBiL2tlcm5lbC90aW1lL3RpY2stYnJvYWRjYXN0LmMKQEAgLTMwLDYgKzMwLDcgQEAKIHN0cnVjdCB0aWNrX2RldmljZSB0aWNrX2Jyb2FkY2FzdF9kZXZpY2U7CiBzdGF0aWMgY3B1bWFza190IHRpY2tfYnJvYWRjYXN0X21hc2s7CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRpY2tfYnJvYWRjYXN0X2xvY2spOworc3RhdGljIGludCB0aWNrX2Jyb2FkY2FzdF9mb3JjZTsKIAogI2lmZGVmIENPTkZJR19USUNLX09ORVNIT1QKIHN0YXRpYyB2b2lkIHRpY2tfYnJvYWRjYXN0X2NsZWFyX29uZXNob3QoaW50IGNwdSk7CkBAIC0yMzIsMTAgKzIzMywxMSBAQAogCQkJCQkJICAgICBDTE9DS19FVlRfTU9ERV9TSFVURE9XTik7CiAJCX0KIAkJaWYgKCpyZWFzb24gPT0gQ0xPQ0tfRVZUX05PVElGWV9CUk9BRENBU1RfRk9SQ0UpCi0JCQlkZXYtPmZlYXR1cmVzIHw9IENMT0NLX0VWVF9GRUFUX0RVTU1ZOworCQkJdGlja19icm9hZGNhc3RfZm9yY2UgPSAxOwogCQlicmVhazsKIAljYXNlIENMT0NLX0VWVF9OT1RJRllfQlJPQURDQVNUX09GRjoKLQkJaWYgKGNwdV9pc3NldChjcHUsIHRpY2tfYnJvYWRjYXN0X21hc2spKSB7CisJCWlmICghdGlja19icm9hZGNhc3RfZm9yY2UgJiYKKwkJICAgIGNwdV9pc3NldChjcHUsIHRpY2tfYnJvYWRjYXN0X21hc2spKSB7CiAJCQljcHVfY2xlYXIoY3B1LCB0aWNrX2Jyb2FkY2FzdF9tYXNrKTsKIAkJCWlmICh0ZC0+bW9kZSA9PSBUSUNLREVWX01PREVfUEVSSU9ESUMpCiAJCQkJdGlja19zZXR1cF9wZXJpb2RpYyhkZXYsIDApOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGljay1zY2hlZC5jIGIva2VybmVsL3RpbWUvdGljay1zY2hlZC5jCmluZGV4IGI4NTRhODkuLmJlZWY3Y2MgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lL3RpY2stc2NoZWQuYworKysgYi9rZXJuZWwvdGltZS90aWNrLXNjaGVkLmMKQEAgLTQ4LDYgKzQ4LDEzIEBACiAJdW5zaWduZWQgbG9uZyB0aWNrcyA9IDA7CiAJa3RpbWVfdCBkZWx0YTsKIAorCS8qCisJICogRG8gYSBxdWljayBjaGVjayB3aXRob3V0IGhvbGRpbmcgeHRpbWVfbG9jazoKKwkgKi8KKwlkZWx0YSA9IGt0aW1lX3N1Yihub3csIGxhc3RfamlmZmllc191cGRhdGUpOworCWlmIChkZWx0YS50djY0IDwgdGlja19wZXJpb2QudHY2NCkKKwkJcmV0dXJuOworCiAJLyogUmVldmFsdXRlIHdpdGggeHRpbWVfbG9jayBoZWxkICovCiAJd3JpdGVfc2VxbG9jaygmeHRpbWVfbG9jayk7CiAKQEAgLTIyOCw2ICsyMzUsNyBAQAogCQkJICAgICAgIGxvY2FsX3NvZnRpcnFfcGVuZGluZygpKTsKIAkJCXJhdGVsaW1pdCsrOwogCQl9CisJCWdvdG8gZW5kOwogCX0KIAogCXRzLT5pZGxlX2NhbGxzKys7CkBAIC0yNzYsNiArMjg0LDcgQEAKIAkJCXRzLT50aWNrX3N0b3BwZWQgPSAxOwogCQkJdHMtPmlkbGVfamlmZmllcyA9IGxhc3RfamlmZmllczsKIAkJCXJjdV9lbnRlcl9ub2h6KCk7CisJCQlzY2hlZF9jbG9ja190aWNrX3N0b3AoY3B1KTsKIAkJfQogCiAJCS8qCkBAIC0zNzUsNiArMzg0LDcgQEAKIAlzZWxlY3Rfbm9oel9sb2FkX2JhbGFuY2VyKDApOwogCW5vdyA9IGt0aW1lX2dldCgpOwogCXRpY2tfZG9fdXBkYXRlX2ppZmZpZXM2NChub3cpOworCXNjaGVkX2Nsb2NrX3RpY2tfc3RhcnQoY3B1KTsKIAljcHVfY2xlYXIoY3B1LCBub2h6X2NwdV9tYXNrKTsKIAogCS8qCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZXIuYyBiL2tlcm5lbC90aW1lci5jCmluZGV4IGNlYWNjNjYuLjAzYmM3ZjEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lci5jCisrKyBiL2tlcm5lbC90aW1lci5jCkBAIC04MTIsNyArODEyLDcgQEAKIAlzcGluX3VubG9ja19pcnEoJmJhc2UtPmxvY2spOwogfQogCi0jaWYgZGVmaW5lZChDT05GSUdfTk9fSURMRV9IWikgfHwgZGVmaW5lZChDT05GSUdfTk9fSFopCisjaWZkZWYgQ09ORklHX05PX0haCiAvKgogICogRmluZCBvdXQgd2hlbiB0aGUgbmV4dCB0aW1lciBldmVudCBpcyBkdWUgdG8gaGFwcGVuLiBUaGlzCiAgKiBpcyB1c2VkIG9uIFMvMzkwIHRvIHN0b3AgYWxsIGFjdGl2aXR5IHdoZW4gYSBjcHVzIGlzIGlkbGUuCkBAIC05NDcsMTQgKzk0Nyw2IEBACiAKIAlyZXR1cm4gY21wX25leHRfaHJ0aW1lcl9ldmVudChub3csIGV4cGlyZXMpOwogfQotCi0jaWZkZWYgQ09ORklHX05PX0lETEVfSFoKLXVuc2lnbmVkIGxvbmcgbmV4dF90aW1lcl9pbnRlcnJ1cHQodm9pZCkKLXsKLQlyZXR1cm4gZ2V0X25leHRfdGltZXJfaW50ZXJydXB0KGppZmZpZXMpOwotfQotI2VuZGlmCi0KICNlbmRpZgogCiAjaWZuZGVmIENPTkZJR19WSVJUX0NQVV9BQ0NPVU5USU5HCkBAIC0xNTAyLDcgKzE0OTQsNyBAQAogCiAJQlVHX09OKGVyciA9PSBOT1RJRllfQkFEKTsKIAlyZWdpc3Rlcl9jcHVfbm90aWZpZXIoJnRpbWVyc19uYik7Ci0Jb3Blbl9zb2Z0aXJxKFRJTUVSX1NPRlRJUlEsIHJ1bl90aW1lcl9zb2Z0aXJxLCBOVUxMKTsKKwlvcGVuX3NvZnRpcnEoVElNRVJfU09GVElSUSwgcnVuX3RpbWVyX3NvZnRpcnEpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS9LY29uZmlnIGIva2VybmVsL3RyYWNlL0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYzZTllNgotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS9LY29uZmlnCkBAIC0wLDAgKzEsMTM1IEBACisjCisjIEFyY2hpdGVjdHVyZXMgdGhhdCBvZmZlciBhbiBGVFJBQ0UgaW1wbGVtZW50YXRpb24gc2hvdWxkIHNlbGVjdCBIQVZFX0ZUUkFDRToKKyMKK2NvbmZpZyBIQVZFX0ZUUkFDRQorCWJvb2wKKworY29uZmlnIEhBVkVfRFlOQU1JQ19GVFJBQ0UKKwlib29sCisKK2NvbmZpZyBUUkFDRVJfTUFYX1RSQUNFCisJYm9vbAorCitjb25maWcgVFJBQ0lORworCWJvb2wKKwlzZWxlY3QgREVCVUdfRlMKKwlzZWxlY3QgU1RBQ0tUUkFDRQorCitjb25maWcgRlRSQUNFCisJYm9vbCAiS2VybmVsIEZ1bmN0aW9uIFRyYWNlciIKKwlkZXBlbmRzIG9uIEhBVkVfRlRSQUNFCisJc2VsZWN0IEZSQU1FX1BPSU5URVIKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBDT05URVhUX1NXSVRDSF9UUkFDRVIKKwloZWxwCisJICBFbmFibGUgdGhlIGtlcm5lbCB0byB0cmFjZSBldmVyeSBrZXJuZWwgZnVuY3Rpb24uIFRoaXMgaXMgZG9uZQorCSAgYnkgdXNpbmcgYSBjb21waWxlciBmZWF0dXJlIHRvIGluc2VydCBhIHNtYWxsLCA1LWJ5dGUgTm8tT3BlcmF0aW9uCisJICBpbnN0cnVjdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIGV2ZXJ5IGtlcm5lbCBmdW5jdGlvbiwgd2hpY2ggTk9QCisJICBzZXF1ZW5jZSBpcyB0aGVuIGR5bmFtaWNhbGx5IHBhdGNoZWQgaW50byBhIHRyYWNlciBjYWxsIHdoZW4KKwkgIHRyYWNpbmcgaXMgZW5hYmxlZCBieSB0aGUgYWRtaW5pc3RyYXRvci4gSWYgaXQncyBydW50aW1lIGRpc2FibGVkCisJICAodGhlIGJvb3R1cCBkZWZhdWx0KSwgdGhlbiB0aGUgb3ZlcmhlYWQgb2YgdGhlIGluc3RydWN0aW9ucyBpcyB2ZXJ5CisJICBzbWFsbCBhbmQgbm90IG1lYXN1cmFibGUgZXZlbiBpbiBtaWNyby1iZW5jaG1hcmtzLgorCitjb25maWcgSVJRU09GRl9UUkFDRVIKKwlib29sICJJbnRlcnJ1cHRzLW9mZiBMYXRlbmN5IFRyYWNlciIKKwlkZWZhdWx0IG4KKwlkZXBlbmRzIG9uIFRSQUNFX0lSUUZMQUdTX1NVUFBPUlQKKwlkZXBlbmRzIG9uIEdFTkVSSUNfVElNRQorCWRlcGVuZHMgb24gSEFWRV9GVFJBQ0UKKwlzZWxlY3QgVFJBQ0VfSVJRRkxBR1MKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBUUkFDRVJfTUFYX1RSQUNFCisJaGVscAorCSAgVGhpcyBvcHRpb24gbWVhc3VyZXMgdGhlIHRpbWUgc3BlbnQgaW4gaXJxcy1vZmYgY3JpdGljYWwKKwkgIHNlY3Rpb25zLCB3aXRoIG1pY3Jvc2Vjb25kIGFjY3VyYWN5LgorCisJICBUaGUgZGVmYXVsdCBtZWFzdXJlbWVudCBtZXRob2QgaXMgYSBtYXhpbXVtIHNlYXJjaCwgd2hpY2ggaXMKKwkgIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIGNhbiBiZSBydW50aW1lIChyZS0pc3RhcnRlZAorCSAgdmlhOgorCisJICAgICAgZWNobyAwID4gL2RlYnVnZnMvdHJhY2luZy90cmFjaW5nX21heF9sYXRlbmN5CisKKwkgIChOb3RlIHRoYXQga2VybmVsIHNpemUgYW5kIG92ZXJoZWFkIGluY3JlYXNlcyB3aXRoIHRoaXMgb3B0aW9uCisJICBlbmFibGVkLiBUaGlzIG9wdGlvbiBhbmQgdGhlIHByZWVtcHQtb2ZmIHRpbWluZyBvcHRpb24gY2FuIGJlCisJICB1c2VkIHRvZ2V0aGVyIG9yIHNlcGFyYXRlbHkuKQorCitjb25maWcgUFJFRU1QVF9UUkFDRVIKKwlib29sICJQcmVlbXB0aW9uLW9mZiBMYXRlbmN5IFRyYWNlciIKKwlkZWZhdWx0IG4KKwlkZXBlbmRzIG9uIEdFTkVSSUNfVElNRQorCWRlcGVuZHMgb24gUFJFRU1QVAorCWRlcGVuZHMgb24gSEFWRV9GVFJBQ0UKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBUUkFDRVJfTUFYX1RSQUNFCisJaGVscAorCSAgVGhpcyBvcHRpb24gbWVhc3VyZXMgdGhlIHRpbWUgc3BlbnQgaW4gcHJlZW1wdGlvbiBvZmYgY3JpdGljYWwKKwkgIHNlY3Rpb25zLCB3aXRoIG1pY3Jvc2Vjb25kIGFjY3VyYWN5LgorCisJICBUaGUgZGVmYXVsdCBtZWFzdXJlbWVudCBtZXRob2QgaXMgYSBtYXhpbXVtIHNlYXJjaCwgd2hpY2ggaXMKKwkgIGRpc2FibGVkIGJ5IGRlZmF1bHQgYW5kIGNhbiBiZSBydW50aW1lIChyZS0pc3RhcnRlZAorCSAgdmlhOgorCisJICAgICAgZWNobyAwID4gL2RlYnVnZnMvdHJhY2luZy90cmFjaW5nX21heF9sYXRlbmN5CisKKwkgIChOb3RlIHRoYXQga2VybmVsIHNpemUgYW5kIG92ZXJoZWFkIGluY3JlYXNlcyB3aXRoIHRoaXMgb3B0aW9uCisJICBlbmFibGVkLiBUaGlzIG9wdGlvbiBhbmQgdGhlIGlycXMtb2ZmIHRpbWluZyBvcHRpb24gY2FuIGJlCisJICB1c2VkIHRvZ2V0aGVyIG9yIHNlcGFyYXRlbHkuKQorCitjb25maWcgU1lTUFJPRl9UUkFDRVIKKwlib29sICJTeXNwcm9mIFRyYWNlciIKKwlkZXBlbmRzIG9uIFg4NgorCXNlbGVjdCBUUkFDSU5HCisJaGVscAorCSAgVGhpcyB0cmFjZXIgcHJvdmlkZXMgdGhlIHRyYWNlIG5lZWRlZCBieSB0aGUgJ1N5c3Byb2YnIHVzZXJzcGFjZQorCSAgdG9vbC4KKworY29uZmlnIFNDSEVEX1RSQUNFUgorCWJvb2wgIlNjaGVkdWxpbmcgTGF0ZW5jeSBUcmFjZXIiCisJZGVwZW5kcyBvbiBIQVZFX0ZUUkFDRQorCXNlbGVjdCBUUkFDSU5HCisJc2VsZWN0IENPTlRFWFRfU1dJVENIX1RSQUNFUgorCXNlbGVjdCBUUkFDRVJfTUFYX1RSQUNFCisJaGVscAorCSAgVGhpcyB0cmFjZXIgdHJhY2tzIHRoZSBsYXRlbmN5IG9mIHRoZSBoaWdoZXN0IHByaW9yaXR5IHRhc2sKKwkgIHRvIGJlIHNjaGVkdWxlZCBpbiwgc3RhcnRpbmcgZnJvbSB0aGUgcG9pbnQgaXQgaGFzIHdva2VuIHVwLgorCitjb25maWcgQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSCisJYm9vbCAiVHJhY2UgcHJvY2VzcyBjb250ZXh0IHN3aXRjaGVzIgorCWRlcGVuZHMgb24gSEFWRV9GVFJBQ0UKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBNQVJLRVJTCisJaGVscAorCSAgVGhpcyB0cmFjZXIgZ2V0cyBjYWxsZWQgZnJvbSB0aGUgY29udGV4dCBzd2l0Y2ggYW5kIHJlY29yZHMKKwkgIGFsbCBzd2l0Y2hpbmcgb2YgdGFza3MuCisKK2NvbmZpZyBEWU5BTUlDX0ZUUkFDRQorCWJvb2wgImVuYWJsZS9kaXNhYmxlIGZ0cmFjZSB0cmFjZXBvaW50cyBkeW5hbWljYWxseSIKKwlkZXBlbmRzIG9uIEZUUkFDRQorCWRlcGVuZHMgb24gSEFWRV9EWU5BTUlDX0ZUUkFDRQorCWRlZmF1bHQgeQorCWhlbHAKKyAgICAgICAgIFRoaXMgb3B0aW9uIHdpbGwgbW9kaWZ5IGFsbCB0aGUgY2FsbHMgdG8gZnRyYWNlIGR5bmFtaWNhbGx5CisJICh3aWxsIHBhdGNoIHRoZW0gb3V0IG9mIHRoZSBiaW5hcnkgaW1hZ2UgYW5kIHJlcGxhY2VzIHRoZW0KKwkgd2l0aCBhIE5vLU9wIGluc3RydWN0aW9uKSBhcyB0aGV5IGFyZSBjYWxsZWQuIEEgdGFibGUgaXMKKwkgY3JlYXRlZCB0byBkeW5hbWljYWxseSBlbmFibGUgdGhlbSBhZ2Fpbi4KKworCSBUaGlzIHdheSBhIENPTkZJR19GVFJBQ0Uga2VybmVsIGlzIHNsaWdodGx5IGxhcmdlciwgYnV0IG90aGVyd2lzZQorCSBoYXMgbmF0aXZlIHBlcmZvcm1hbmNlIGFzIGxvbmcgYXMgbm8gdHJhY2luZyBpcyBhY3RpdmUuCisKKwkgVGhlIGNoYW5nZXMgdG8gdGhlIGNvZGUgYXJlIGRvbmUgYnkgYSBrZXJuZWwgdGhyZWFkIHRoYXQKKwkgd2FrZXMgdXAgb25jZSBhIHNlY29uZCBhbmQgY2hlY2tzIHRvIHNlZSBpZiBhbnkgZnRyYWNlIGNhbGxzCisJIHdlcmUgbWFkZS4gSWYgc28sIGl0IHJ1bnMgc3RvcF9tYWNoaW5lIChzdG9wcyBhbGwgQ1BVUykKKwkgYW5kIG1vZGlmaWVzIHRoZSBjb2RlIHRvIGp1bXAgb3ZlciB0aGUgY2FsbCB0byBmdHJhY2UuCisKK2NvbmZpZyBGVFJBQ0VfU0VMRlRFU1QKKwlib29sCisKK2NvbmZpZyBGVFJBQ0VfU1RBUlRVUF9URVNUCisJYm9vbCAiUGVyZm9ybSBhIHN0YXJ0dXAgdGVzdCBvbiBmdHJhY2UiCisJZGVwZW5kcyBvbiBUUkFDSU5HCisJc2VsZWN0IEZUUkFDRV9TRUxGVEVTVAorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIHBlcmZvcm1zIGEgc2VyaWVzIG9mIHN0YXJ0dXAgdGVzdHMgb24gZnRyYWNlLiBPbiBib290dXAKKwkgIGEgc2VyaWVzIG9mIHRlc3RzIGFyZSBtYWRlIHRvIHZlcmlmeSB0aGF0IHRoZSB0cmFjZXIgaXMKKwkgIGZ1bmN0aW9uaW5nIHByb3Blcmx5LiBJdCB3aWxsIGRvIHRlc3RzIG9uIGFsbCB0aGUgY29uZmlndXJlZAorCSAgdHJhY2VycyBvZiBmdHJhY2UuCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvTWFrZWZpbGUgYi9rZXJuZWwvdHJhY2UvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFkMTdkZQotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS9NYWtlZmlsZQpAQCAtMCwwICsxLDI0IEBACisKKyMgRG8gbm90IGluc3RydW1lbnQgdGhlIHRyYWNlciBpdHNlbGY6CisKK2lmZGVmIENPTkZJR19GVFJBQ0UKK09SSUdfQ0ZMQUdTIDo9ICQoS0JVSUxEX0NGTEFHUykKK0tCVUlMRF9DRkxBR1MgPSAkKHN1YnN0IC1wZywsJChPUklHX0NGTEFHUykpCisKKyMgc2VsZnRlc3QgbmVlZHMgaW5zdHJ1bWVudGF0aW9uCitDRkxBR1NfdHJhY2Vfc2VsZnRlc3RfZHluYW1pYy5vID0gLXBnCitvYmoteSArPSB0cmFjZV9zZWxmdGVzdF9keW5hbWljLm8KK2VuZGlmCisKK29iai0kKENPTkZJR19GVFJBQ0UpICs9IGxpYmZ0cmFjZS5vCisKK29iai0kKENPTkZJR19UUkFDSU5HKSArPSB0cmFjZS5vCitvYmotJChDT05GSUdfQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSKSArPSB0cmFjZV9zY2hlZF9zd2l0Y2gubworb2JqLSQoQ09ORklHX1NZU1BST0ZfVFJBQ0VSKSArPSB0cmFjZV9zeXNwcm9mLm8KK29iai0kKENPTkZJR19GVFJBQ0UpICs9IHRyYWNlX2Z1bmN0aW9ucy5vCitvYmotJChDT05GSUdfSVJRU09GRl9UUkFDRVIpICs9IHRyYWNlX2lycXNvZmYubworb2JqLSQoQ09ORklHX1BSRUVNUFRfVFJBQ0VSKSArPSB0cmFjZV9pcnFzb2ZmLm8KK29iai0kKENPTkZJR19TQ0hFRF9UUkFDRVIpICs9IHRyYWNlX3NjaGVkX3dha2V1cC5vCitvYmotJChDT05GSUdfTU1JT1RSQUNFKSArPSB0cmFjZV9tbWlvdHJhY2UubworCitsaWJmdHJhY2UteSA6PSBmdHJhY2UubwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL2Z0cmFjZS5jIGIva2VybmVsL3RyYWNlL2Z0cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMzFhM2QKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvZnRyYWNlLmMKQEAgLTAsMCArMSwxNzI3IEBACisvKgorICogSW5mcmFzdHJ1Y3R1cmUgZm9yIHByb2ZpbGluZyBjb2RlIGluc2VydGVkIGJ5ICdnY2MgLXBnJy4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA4IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgorICoKKyAqIE9yaWdpbmFsbHkgcG9ydGVkIGZyb20gdGhlIC1ydCBwYXRjaCBieToKKyAqICAgQ29weXJpZ2h0IChDKSAyMDA3IEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUByZWRoYXQuY29tPgorICoKKyAqIEJhc2VkIG9uIGNvZGUgaW4gdGhlIGxhdGVuY3lfdHJhY2VyLCB0aGF0IGlzOgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiBJbmdvIE1vbG5hcgorICogIENvcHlyaWdodCAoQykgMjAwNCBXaWxsaWFtIExlZSBJcndpbiBJSUkKKyAqLworCisjaW5jbHVkZSA8bGludXgvc3RvcF9tYWNoaW5lLmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNjdGwuaD4KKyNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L2hhc2guaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisKKyNpbmNsdWRlICJ0cmFjZS5oIgorCisvKiBmdHJhY2VfZW5hYmxlZCBpcyBhIG1ldGhvZCB0byB0dXJuIGZ0cmFjZSBvbiBvciBvZmYgKi8KK2ludCBmdHJhY2VfZW5hYmxlZCBfX3JlYWRfbW9zdGx5Oworc3RhdGljIGludCBsYXN0X2Z0cmFjZV9lbmFibGVkOworCisvKgorICogZnRyYWNlX2Rpc2FibGVkIGlzIHNldCB3aGVuIGFuIGFub21hbHkgaXMgZGlzY292ZXJlZC4KKyAqIGZ0cmFjZV9kaXNhYmxlZCBpcyBtdWNoIHN0cm9uZ2VyIHRoYW4gZnRyYWNlX2VuYWJsZWQuCisgKi8KK3N0YXRpYyBpbnQgZnRyYWNlX2Rpc2FibGVkIF9fcmVhZF9tb3N0bHk7CisKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soZnRyYWNlX2xvY2spOworc3RhdGljIERFRklORV9NVVRFWChmdHJhY2Vfc3lzY3RsX2xvY2spOworCitzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMgZnRyYWNlX2xpc3RfZW5kIF9fcmVhZF9tb3N0bHkgPQoreworCS5mdW5jID0gZnRyYWNlX3N0dWIsCit9OworCitzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMgKmZ0cmFjZV9saXN0IF9fcmVhZF9tb3N0bHkgPSAmZnRyYWNlX2xpc3RfZW5kOworZnRyYWNlX2Z1bmNfdCBmdHJhY2VfdHJhY2VfZnVuY3Rpb24gX19yZWFkX21vc3RseSA9IGZ0cmFjZV9zdHViOworCitzdGF0aWMgdm9pZCBmdHJhY2VfbGlzdF9mdW5jKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKQoreworCXN0cnVjdCBmdHJhY2Vfb3BzICpvcCA9IGZ0cmFjZV9saXN0OworCisJLyogaW4gY2FzZSBzb21lb25lIGFjdHVhbGx5IHBvcnRzIHRoaXMgdG8gYWxwaGEhICovCisJcmVhZF9iYXJyaWVyX2RlcGVuZHMoKTsKKworCXdoaWxlIChvcCAhPSAmZnRyYWNlX2xpc3RfZW5kKSB7CisJCS8qIHNpbGx5IGFscGhhICovCisJCXJlYWRfYmFycmllcl9kZXBlbmRzKCk7CisJCW9wLT5mdW5jKGlwLCBwYXJlbnRfaXApOworCQlvcCA9IG9wLT5uZXh0OworCX07Cit9CisKKy8qKgorICogY2xlYXJfZnRyYWNlX2Z1bmN0aW9uIC0gcmVzZXQgdGhlIGZ0cmFjZSBmdW5jdGlvbgorICoKKyAqIFRoaXMgTlVMTHMgdGhlIGZ0cmFjZSBmdW5jdGlvbiBhbmQgaW4gZXNzZW5jZSBzdG9wcworICogdHJhY2luZy4gIFRoZXJlIG1heSBiZSBsYWcKKyAqLwordm9pZCBjbGVhcl9mdHJhY2VfZnVuY3Rpb24odm9pZCkKK3sKKwlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBmdHJhY2Vfc3R1YjsKK30KKworc3RhdGljIGludCBfX3JlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzKQoreworCS8qIFNob3VsZCBuZXZlciBiZSBjYWxsZWQgYnkgaW50ZXJydXB0cyAqLworCXNwaW5fbG9jaygmZnRyYWNlX2xvY2spOworCisJb3BzLT5uZXh0ID0gZnRyYWNlX2xpc3Q7CisJLyoKKwkgKiBXZSBhcmUgZW50ZXJpbmcgb3BzIGludG8gdGhlIGZ0cmFjZV9saXN0IGJ1dCBhbm90aGVyCisJICogQ1BVIG1pZ2h0IGJlIHdhbGtpbmcgdGhhdCBsaXN0LiBXZSBuZWVkIHRvIG1ha2Ugc3VyZQorCSAqIHRoZSBvcHMtPm5leHQgcG9pbnRlciBpcyB2YWxpZCBiZWZvcmUgYW5vdGhlciBDUFUgc2VlcworCSAqIHRoZSBvcHMgcG9pbnRlciBpbmNsdWRlZCBpbnRvIHRoZSBmdHJhY2VfbGlzdC4KKwkgKi8KKwlzbXBfd21iKCk7CisJZnRyYWNlX2xpc3QgPSBvcHM7CisKKwlpZiAoZnRyYWNlX2VuYWJsZWQpIHsKKwkJLyoKKwkJICogRm9yIG9uZSBmdW5jLCBzaW1wbHkgY2FsbCBpdCBkaXJlY3RseS4KKwkJICogRm9yIG1vcmUgdGhhbiBvbmUgZnVuYywgY2FsbCB0aGUgY2hhaW4uCisJCSAqLworCQlpZiAob3BzLT5uZXh0ID09ICZmdHJhY2VfbGlzdF9lbmQpCisJCQlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBvcHMtPmZ1bmM7CisJCWVsc2UKKwkJCWZ0cmFjZV90cmFjZV9mdW5jdGlvbiA9IGZ0cmFjZV9saXN0X2Z1bmM7CisJfQorCisJc3Bpbl91bmxvY2soJmZ0cmFjZV9sb2NrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fdW5yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oc3RydWN0IGZ0cmFjZV9vcHMgKm9wcykKK3sKKwlzdHJ1Y3QgZnRyYWNlX29wcyAqKnA7CisJaW50IHJldCA9IDA7CisKKwlzcGluX2xvY2soJmZ0cmFjZV9sb2NrKTsKKworCS8qCisJICogSWYgd2UgYXJlIHJlbW92aW5nIHRoZSBsYXN0IGZ1bmN0aW9uLCB0aGVuIHNpbXBseSBwb2ludAorCSAqIHRvIHRoZSBmdHJhY2Vfc3R1Yi4KKwkgKi8KKwlpZiAoZnRyYWNlX2xpc3QgPT0gb3BzICYmIG9wcy0+bmV4dCA9PSAmZnRyYWNlX2xpc3RfZW5kKSB7CisJCWZ0cmFjZV90cmFjZV9mdW5jdGlvbiA9IGZ0cmFjZV9zdHViOworCQlmdHJhY2VfbGlzdCA9ICZmdHJhY2VfbGlzdF9lbmQ7CisJCWdvdG8gb3V0OworCX0KKworCWZvciAocCA9ICZmdHJhY2VfbGlzdDsgKnAgIT0gJmZ0cmFjZV9saXN0X2VuZDsgcCA9ICYoKnApLT5uZXh0KQorCQlpZiAoKnAgPT0gb3BzKQorCQkJYnJlYWs7CisKKwlpZiAoKnAgIT0gb3BzKSB7CisJCXJldCA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKwkqcCA9ICgqcCktPm5leHQ7CisKKwlpZiAoZnRyYWNlX2VuYWJsZWQpIHsKKwkJLyogSWYgd2Ugb25seSBoYXZlIG9uZSBmdW5jIGxlZnQsIHRoZW4gY2FsbCB0aGF0IGRpcmVjdGx5ICovCisJCWlmIChmdHJhY2VfbGlzdCA9PSAmZnRyYWNlX2xpc3RfZW5kIHx8CisJCSAgICBmdHJhY2VfbGlzdC0+bmV4dCA9PSAmZnRyYWNlX2xpc3RfZW5kKQorCQkJZnRyYWNlX3RyYWNlX2Z1bmN0aW9uID0gZnRyYWNlX2xpc3QtPmZ1bmM7CisJfQorCisgb3V0OgorCXNwaW5fdW5sb2NrKCZmdHJhY2VfbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisKK3N0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmZ0cmFjZWRfdGFzazsKKworZW51bSB7CisJRlRSQUNFX0VOQUJMRV9DQUxMUwkJPSAoMSA8PCAwKSwKKwlGVFJBQ0VfRElTQUJMRV9DQUxMUwkJPSAoMSA8PCAxKSwKKwlGVFJBQ0VfVVBEQVRFX1RSQUNFX0ZVTkMJPSAoMSA8PCAyKSwKKwlGVFJBQ0VfRU5BQkxFX01DT1VOVAkJPSAoMSA8PCAzKSwKKwlGVFJBQ0VfRElTQUJMRV9NQ09VTlQJCT0gKDEgPDwgNCksCit9OworCitzdGF0aWMgaW50IGZ0cmFjZV9maWx0ZXJlZDsKK3N0YXRpYyBpbnQgdHJhY2luZ19vbjsKK3N0YXRpYyBpbnQgZnJvemVuX3JlY29yZF9jb3VudDsKKworc3RhdGljIHN0cnVjdCBobGlzdF9oZWFkIGZ0cmFjZV9oYXNoW0ZUUkFDRV9IQVNIU0laRV07CisKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIGZ0cmFjZV9zaHV0ZG93bl9kaXNhYmxlX2NwdSk7CisKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soZnRyYWNlX3NodXRkb3duX2xvY2spOworc3RhdGljIERFRklORV9NVVRFWChmdHJhY2VkX2xvY2spOworc3RhdGljIERFRklORV9NVVRFWChmdHJhY2VfcmVnZXhfbG9jayk7CisKK3N0cnVjdCBmdHJhY2VfcGFnZSB7CisJc3RydWN0IGZ0cmFjZV9wYWdlCSpuZXh0OworCXVuc2lnbmVkIGxvbmcJCWluZGV4OworCXN0cnVjdCBkeW5fZnRyYWNlCXJlY29yZHNbXTsKK307CisKKyNkZWZpbmUgRU5UUklFU19QRVJfUEFHRSBcCisgICgoUEFHRV9TSVpFIC0gc2l6ZW9mKHN0cnVjdCBmdHJhY2VfcGFnZSkpIC8gc2l6ZW9mKHN0cnVjdCBkeW5fZnRyYWNlKSkKKworLyogZXN0aW1hdGUgZnJvbSBydW5uaW5nIGRpZmZlcmVudCBrZXJuZWxzICovCisjZGVmaW5lIE5SX1RPX0lOSVQJCTEwMDAwCisKK3N0YXRpYyBzdHJ1Y3QgZnRyYWNlX3BhZ2UJKmZ0cmFjZV9wYWdlc19zdGFydDsKK3N0YXRpYyBzdHJ1Y3QgZnRyYWNlX3BhZ2UJKmZ0cmFjZV9wYWdlczsKKworc3RhdGljIGludCBmdHJhY2VkX3RyaWdnZXI7CitzdGF0aWMgaW50IGZ0cmFjZWRfc3VzcGVuZDsKK3N0YXRpYyBpbnQgZnRyYWNlZF9zdG9wOworCitzdGF0aWMgaW50IGZ0cmFjZV9yZWNvcmRfc3VzcGVuZDsKKworc3RhdGljIHN0cnVjdCBkeW5fZnRyYWNlICpmdHJhY2VfZnJlZV9yZWNvcmRzOworCisKKyNpZmRlZiBDT05GSUdfS1BST0JFUworc3RhdGljIGlubGluZSB2b2lkIGZyZWV6ZV9yZWNvcmQoc3RydWN0IGR5bl9mdHJhY2UgKnJlYykKK3sKKwlpZiAoIShyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZST1pFTikpIHsKKwkJcmVjLT5mbGFncyB8PSBGVFJBQ0VfRkxfRlJPWkVOOworCQlmcm96ZW5fcmVjb3JkX2NvdW50Kys7CisJfQorfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdW5mcmVlemVfcmVjb3JkKHN0cnVjdCBkeW5fZnRyYWNlICpyZWMpCit7CisJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRlJPWkVOKSB7CisJCXJlYy0+ZmxhZ3MgJj0gfkZUUkFDRV9GTF9GUk9aRU47CisJCWZyb3plbl9yZWNvcmRfY291bnQtLTsKKwl9Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHJlY29yZF9mcm96ZW4oc3RydWN0IGR5bl9mdHJhY2UgKnJlYykKK3sKKwlyZXR1cm4gcmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GUk9aRU47Cit9CisjZWxzZQorIyBkZWZpbmUgZnJlZXplX3JlY29yZChyZWMpCQkJKHsgMDsgfSkKKyMgZGVmaW5lIHVuZnJlZXplX3JlY29yZChyZWMpCQkJKHsgMDsgfSkKKyMgZGVmaW5lIHJlY29yZF9mcm96ZW4ocmVjKQkJCSh7IDA7IH0pCisjZW5kaWYgLyogQ09ORklHX0tQUk9CRVMgKi8KKworaW50IHNraXBfdHJhY2UodW5zaWduZWQgbG9uZyBpcCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsOworCXN0cnVjdCBkeW5fZnRyYWNlICpyZWM7CisJc3RydWN0IGhsaXN0X25vZGUgKnQ7CisJc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQ7CisKKwlpZiAoZnJvemVuX3JlY29yZF9jb3VudCA9PSAwKQorCQlyZXR1cm4gMDsKKworCWhlYWQgPSAmZnRyYWNlX2hhc2hbaGFzaF9sb25nKGlwLCBGVFJBQ0VfSEFTSEJJVFMpXTsKKwlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocmVjLCB0LCBoZWFkLCBub2RlKSB7CisJCWlmIChyZWMtPmlwID09IGlwKSB7CisJCQlpZiAocmVjb3JkX2Zyb3plbihyZWMpKSB7CisJCQkJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKQorCQkJCQlyZXR1cm4gMTsKKworCQkJCWlmICghKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfQ09OVkVSVEVEKSkKKwkJCQkJcmV0dXJuIDE7CisKKwkJCQlpZiAoIXRyYWNpbmdfb24gfHwgIWZ0cmFjZV9lbmFibGVkKQorCQkJCQlyZXR1cm4gMTsKKworCQkJCWlmIChmdHJhY2VfZmlsdGVyZWQpIHsKKwkJCQkJZmwgPSByZWMtPmZsYWdzICYgKEZUUkFDRV9GTF9GSUxURVIgfAorCQkJCQkJCSAgIEZUUkFDRV9GTF9OT1RSQUNFKTsKKwkJCQkJaWYgKCFmbCB8fCAoZmwgJiBGVFJBQ0VfRkxfTk9UUkFDRSkpCisJCQkJCQlyZXR1cm4gMTsKKwkJCQl9CisJCQl9CisJCQlicmVhazsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGludAorZnRyYWNlX2lwX2luX2hhc2godW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBrZXkpCit7CisJc3RydWN0IGR5bl9mdHJhY2UgKnA7CisJc3RydWN0IGhsaXN0X25vZGUgKnQ7CisJaW50IGZvdW5kID0gMDsKKworCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShwLCB0LCAmZnRyYWNlX2hhc2hba2V5XSwgbm9kZSkgeworCQlpZiAocC0+aXAgPT0gaXApIHsKKwkJCWZvdW5kID0gMTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJcmV0dXJuIGZvdW5kOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK2Z0cmFjZV9hZGRfaGFzaChzdHJ1Y3QgZHluX2Z0cmFjZSAqbm9kZSwgdW5zaWduZWQgbG9uZyBrZXkpCit7CisJaGxpc3RfYWRkX2hlYWRfcmN1KCZub2RlLT5ub2RlLCAmZnRyYWNlX2hhc2hba2V5XSk7Cit9CisKKy8qIGNhbGxlZCBmcm9tIGtzdG9wX21hY2hpbmUgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBmdHJhY2VfZGVsX2hhc2goc3RydWN0IGR5bl9mdHJhY2UgKm5vZGUpCit7CisJaGxpc3RfZGVsKCZub2RlLT5ub2RlKTsKK30KKworc3RhdGljIHZvaWQgZnRyYWNlX2ZyZWVfcmVjKHN0cnVjdCBkeW5fZnRyYWNlICpyZWMpCit7CisJLyogbm8gbG9ja2luZywgb25seSBjYWxsZWQgZnJvbSBrc3RvcF9tYWNoaW5lICovCisKKwlyZWMtPmlwID0gKHVuc2lnbmVkIGxvbmcpZnRyYWNlX2ZyZWVfcmVjb3JkczsKKwlmdHJhY2VfZnJlZV9yZWNvcmRzID0gcmVjOworCXJlYy0+ZmxhZ3MgfD0gRlRSQUNFX0ZMX0ZSRUU7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZHluX2Z0cmFjZSAqZnRyYWNlX2FsbG9jX2R5bl9ub2RlKHVuc2lnbmVkIGxvbmcgaXApCit7CisJc3RydWN0IGR5bl9mdHJhY2UgKnJlYzsKKworCS8qIEZpcnN0IGNoZWNrIGZvciBmcmVlZCByZWNvcmRzICovCisJaWYgKGZ0cmFjZV9mcmVlX3JlY29yZHMpIHsKKwkJcmVjID0gZnRyYWNlX2ZyZWVfcmVjb3JkczsKKworCQlpZiAodW5saWtlbHkoIShyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZSRUUpKSkgeworCQkJV0FSTl9PTl9PTkNFKDEpOworCQkJZnRyYWNlX2ZyZWVfcmVjb3JkcyA9IE5VTEw7CisJCQlmdHJhY2VfZGlzYWJsZWQgPSAxOworCQkJZnRyYWNlX2VuYWJsZWQgPSAwOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKworCQlmdHJhY2VfZnJlZV9yZWNvcmRzID0gKHZvaWQgKilyZWMtPmlwOworCQltZW1zZXQocmVjLCAwLCBzaXplb2YoKnJlYykpOworCQlyZXR1cm4gcmVjOworCX0KKworCWlmIChmdHJhY2VfcGFnZXMtPmluZGV4ID09IEVOVFJJRVNfUEVSX1BBR0UpIHsKKwkJaWYgKCFmdHJhY2VfcGFnZXMtPm5leHQpCisJCQlyZXR1cm4gTlVMTDsKKwkJZnRyYWNlX3BhZ2VzID0gZnRyYWNlX3BhZ2VzLT5uZXh0OworCX0KKworCXJldHVybiAmZnRyYWNlX3BhZ2VzLT5yZWNvcmRzW2Z0cmFjZV9wYWdlcy0+aW5kZXgrK107Cit9CisKK3N0YXRpYyB2b2lkCitmdHJhY2VfcmVjb3JkX2lwKHVuc2lnbmVkIGxvbmcgaXApCit7CisJc3RydWN0IGR5bl9mdHJhY2UgKm5vZGU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIGtleTsKKwlpbnQgcmVzY2hlZDsKKwlpbnQgYXRvbWljOworCWludCBjcHU7CisKKwlpZiAoIWZ0cmFjZV9lbmFibGVkIHx8IGZ0cmFjZV9kaXNhYmxlZCkKKwkJcmV0dXJuOworCisJcmVzY2hlZCA9IG5lZWRfcmVzY2hlZCgpOworCXByZWVtcHRfZGlzYWJsZV9ub3RyYWNlKCk7CisKKwkvKgorCSAqIFdlIHNpbXBseSBuZWVkIHRvIHByb3RlY3QgYWdhaW5zdCByZWN1cnNpb24uCisJICogVXNlIHRoZSB0aGUgcmF3IHZlcnNpb24gb2Ygc21wX3Byb2Nlc3Nvcl9pZCBhbmQgbm90CisJICogX19nZXRfY3B1X3ZhciB3aGljaCBjYW4gY2FsbCBkZWJ1ZyBob29rcyB0aGF0IGNhbgorCSAqIGNhdXNlIGEgcmVjdXJzaXZlIGNyYXNoIGhlcmUuCisJICovCisJY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKwlwZXJfY3B1KGZ0cmFjZV9zaHV0ZG93bl9kaXNhYmxlX2NwdSwgY3B1KSsrOworCWlmIChwZXJfY3B1KGZ0cmFjZV9zaHV0ZG93bl9kaXNhYmxlX2NwdSwgY3B1KSAhPSAxKQorCQlnb3RvIG91dDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfcmVjb3JkX3N1c3BlbmQpKQorCQlnb3RvIG91dDsKKworCWtleSA9IGhhc2hfbG9uZyhpcCwgRlRSQUNFX0hBU0hCSVRTKTsKKworCVdBUk5fT05fT05DRShrZXkgPj0gRlRSQUNFX0hBU0hTSVpFKTsKKworCWlmIChmdHJhY2VfaXBfaW5faGFzaChpcCwga2V5KSkKKwkJZ290byBvdXQ7CisKKwlhdG9taWMgPSBpcnFzX2Rpc2FibGVkKCk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZnRyYWNlX3NodXRkb3duX2xvY2ssIGZsYWdzKTsKKworCS8qIFRoaXMgaXAgbWF5IGhhdmUgaGl0IHRoZSBoYXNoIGJlZm9yZSB0aGUgbG9jayAqLworCWlmIChmdHJhY2VfaXBfaW5faGFzaChpcCwga2V5KSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJbm9kZSA9IGZ0cmFjZV9hbGxvY19keW5fbm9kZShpcCk7CisJaWYgKCFub2RlKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlub2RlLT5pcCA9IGlwOworCisJZnRyYWNlX2FkZF9oYXNoKG5vZGUsIGtleSk7CisKKwlmdHJhY2VkX3RyaWdnZXIgPSAxOworCisgb3V0X3VubG9jazoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmdHJhY2Vfc2h1dGRvd25fbG9jaywgZmxhZ3MpOworIG91dDoKKwlwZXJfY3B1KGZ0cmFjZV9zaHV0ZG93bl9kaXNhYmxlX2NwdSwgY3B1KS0tOworCisJLyogcHJldmVudCByZWN1cnNpb24gd2l0aCBzY2hlZHVsZXIgKi8KKwlpZiAocmVzY2hlZCkKKwkJcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZF9ub3RyYWNlKCk7CisJZWxzZQorCQlwcmVlbXB0X2VuYWJsZV9ub3RyYWNlKCk7Cit9CisKKyNkZWZpbmUgRlRSQUNFX0FERFIgKChsb25nKShmdHJhY2VfY2FsbGVyKSkKKworc3RhdGljIGludAorX19mdHJhY2VfcmVwbGFjZV9jb2RlKHN0cnVjdCBkeW5fZnRyYWNlICpyZWMsCisJCSAgICAgIHVuc2lnbmVkIGNoYXIgKm9sZCwgdW5zaWduZWQgY2hhciAqbmV3LCBpbnQgZW5hYmxlKQoreworCXVuc2lnbmVkIGxvbmcgaXAsIGZsOworCisJaXAgPSByZWMtPmlwOworCisJaWYgKGZ0cmFjZV9maWx0ZXJlZCAmJiBlbmFibGUpIHsKKwkJLyoKKwkJICogSWYgZmlsdGVyaW5nIGlzIG9uOgorCQkgKgorCQkgKiBJZiB0aGlzIHJlY29yZCBpcyBzZXQgdG8gYmUgZmlsdGVyZWQgYW5kCisJCSAqIGlzIGVuYWJsZWQgdGhlbiBkbyBub3RoaW5nLgorCQkgKgorCQkgKiBJZiB0aGlzIHJlY29yZCBpcyBzZXQgdG8gYmUgZmlsdGVyZWQgYW5kCisJCSAqIGl0IGlzIG5vdCBlbmFibGVkLCBlbmFibGUgaXQuCisJCSAqCisJCSAqIElmIHRoaXMgcmVjb3JkIGlzIG5vdCBzZXQgdG8gYmUgZmlsdGVyZWQKKwkJICogYW5kIGl0IGlzIG5vdCBlbmFibGVkIGRvIG5vdGhpbmcuCisJCSAqCisJCSAqIElmIHRoaXMgcmVjb3JkIGlzIHNldCBub3QgdG8gdHJhY2UgdGhlbgorCQkgKiBkbyBub3RoaW5nLgorCQkgKgorCQkgKiBJZiB0aGlzIHJlY29yZCBpcyBzZXQgbm90IHRvIHRyYWNlIGFuZAorCQkgKiBpdCBpcyBlbmFibGVkIHRoZW4gZGlzYWJsZSBpdC4KKwkJICoKKwkJICogSWYgdGhpcyByZWNvcmQgaXMgbm90IHNldCB0byBiZSBmaWx0ZXJlZCBhbmQKKwkJICogaXQgaXMgZW5hYmxlZCwgZGlzYWJsZSBpdC4KKwkJICovCisKKwkJZmwgPSByZWMtPmZsYWdzICYgKEZUUkFDRV9GTF9GSUxURVIgfCBGVFJBQ0VfRkxfTk9UUkFDRSB8CisJCQkJICAgRlRSQUNFX0ZMX0VOQUJMRUQpOworCisJCWlmICgoZmwgPT0gIChGVFJBQ0VfRkxfRklMVEVSIHwgRlRSQUNFX0ZMX0VOQUJMRUQpKSB8fAorCQkgICAgKGZsID09ICAoRlRSQUNFX0ZMX0ZJTFRFUiB8IEZUUkFDRV9GTF9OT1RSQUNFKSkgfHwKKwkJICAgICFmbCB8fCAoZmwgPT0gRlRSQUNFX0ZMX05PVFJBQ0UpKQorCQkJcmV0dXJuIDA7CisKKwkJLyoKKwkJICogSWYgaXQgaXMgZW5hYmxlZCBkaXNhYmxlIGl0LAorCQkgKiBvdGhlcndpc2UgZW5hYmxlIGl0IQorCQkgKi8KKwkJaWYgKGZsICYgRlRSQUNFX0ZMX0VOQUJMRUQpIHsKKwkJCS8qIHN3YXAgbmV3IGFuZCBvbGQgKi8KKwkJCW5ldyA9IG9sZDsKKwkJCW9sZCA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsIEZUUkFDRV9BRERSKTsKKwkJCXJlYy0+ZmxhZ3MgJj0gfkZUUkFDRV9GTF9FTkFCTEVEOworCQl9IGVsc2UgeworCQkJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgRlRSQUNFX0FERFIpOworCQkJcmVjLT5mbGFncyB8PSBGVFJBQ0VfRkxfRU5BQkxFRDsKKwkJfQorCX0gZWxzZSB7CisKKwkJaWYgKGVuYWJsZSkgeworCQkJLyoKKwkJCSAqIElmIHRoaXMgcmVjb3JkIGlzIHNldCBub3QgdG8gdHJhY2UgYW5kIGlzCisJCQkgKiBub3QgZW5hYmxlZCwgZG8gbm90aGluZy4KKwkJCSAqLworCQkJZmwgPSByZWMtPmZsYWdzICYgKEZUUkFDRV9GTF9OT1RSQUNFIHwgRlRSQUNFX0ZMX0VOQUJMRUQpOworCQkJaWYgKGZsID09IEZUUkFDRV9GTF9OT1RSQUNFKQorCQkJCXJldHVybiAwOworCisJCQluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCBGVFJBQ0VfQUREUik7CisJCX0gZWxzZQorCQkJb2xkID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgRlRSQUNFX0FERFIpOworCisJCWlmIChlbmFibGUpIHsKKwkJCWlmIChyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0VOQUJMRUQpCisJCQkJcmV0dXJuIDA7CisJCQlyZWMtPmZsYWdzIHw9IEZUUkFDRV9GTF9FTkFCTEVEOworCQl9IGVsc2UgeworCQkJaWYgKCEocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9FTkFCTEVEKSkKKwkJCQlyZXR1cm4gMDsKKwkJCXJlYy0+ZmxhZ3MgJj0gfkZUUkFDRV9GTF9FTkFCTEVEOworCQl9CisJfQorCisJcmV0dXJuIGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgb2xkLCBuZXcpOworfQorCitzdGF0aWMgdm9pZCBmdHJhY2VfcmVwbGFjZV9jb2RlKGludCBlbmFibGUpCit7CisJaW50IGksIGZhaWxlZDsKKwl1bnNpZ25lZCBjaGFyICpuZXcgPSBOVUxMLCAqb2xkID0gTlVMTDsKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjOworCXN0cnVjdCBmdHJhY2VfcGFnZSAqcGc7CisKKwlpZiAoZW5hYmxlKQorCQlvbGQgPSBmdHJhY2Vfbm9wX3JlcGxhY2UoKTsKKwllbHNlCisJCW5ldyA9IGZ0cmFjZV9ub3BfcmVwbGFjZSgpOworCisJZm9yIChwZyA9IGZ0cmFjZV9wYWdlc19zdGFydDsgcGc7IHBnID0gcGctPm5leHQpIHsKKwkJZm9yIChpID0gMDsgaSA8IHBnLT5pbmRleDsgaSsrKSB7CisJCQlyZWMgPSAmcGctPnJlY29yZHNbaV07CisKKwkJCS8qIGRvbid0IG1vZGlmeSBjb2RlIHRoYXQgaGFzIGFscmVhZHkgZmF1bHRlZCAqLworCQkJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBpZ25vcmUgdXBkYXRlcyB0byB0aGlzIHJlY29yZCdzIG1jb3VudCBzaXRlICovCisJCQlpZiAoZ2V0X2twcm9iZSgodm9pZCAqKXJlYy0+aXApKSB7CisJCQkJZnJlZXplX3JlY29yZChyZWMpOworCQkJCWNvbnRpbnVlOworCQkJfSBlbHNlIHsKKwkJCQl1bmZyZWV6ZV9yZWNvcmQocmVjKTsKKwkJCX0KKworCQkJZmFpbGVkID0gX19mdHJhY2VfcmVwbGFjZV9jb2RlKHJlYywgb2xkLCBuZXcsIGVuYWJsZSk7CisJCQlpZiAoZmFpbGVkICYmIChyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0NPTlZFUlRFRCkpIHsKKwkJCQlyZWMtPmZsYWdzIHw9IEZUUkFDRV9GTF9GQUlMRUQ7CisJCQkJaWYgKChzeXN0ZW1fc3RhdGUgPT0gU1lTVEVNX0JPT1RJTkcpIHx8CisJCQkJICAgICFjb3JlX2tlcm5lbF90ZXh0KHJlYy0+aXApKSB7CisJCQkJCWZ0cmFjZV9kZWxfaGFzaChyZWMpOworCQkJCQlmdHJhY2VfZnJlZV9yZWMocmVjKTsKKwkJCQl9CisJCQl9CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9zaHV0ZG93bl9yZXBsZW5pc2godm9pZCkKK3sKKwlpZiAoZnRyYWNlX3BhZ2VzLT5uZXh0KQorCQlyZXR1cm47CisKKwkvKiBhbGxvY2F0ZSBhbm90aGVyIHBhZ2UgKi8KKwlmdHJhY2VfcGFnZXMtPm5leHQgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKK30KKworc3RhdGljIGludAorZnRyYWNlX2NvZGVfZGlzYWJsZShzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjKQoreworCXVuc2lnbmVkIGxvbmcgaXA7CisJdW5zaWduZWQgY2hhciAqbm9wLCAqY2FsbDsKKwlpbnQgZmFpbGVkOworCisJaXAgPSByZWMtPmlwOworCisJbm9wID0gZnRyYWNlX25vcF9yZXBsYWNlKCk7CisJY2FsbCA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsIE1DT1VOVF9BRERSKTsKKworCWZhaWxlZCA9IGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgY2FsbCwgbm9wKTsKKwlpZiAoZmFpbGVkKSB7CisJCXJlYy0+ZmxhZ3MgfD0gRlRSQUNFX0ZMX0ZBSUxFRDsKKwkJcmV0dXJuIDA7CisJfQorCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IF9fZnRyYWNlX3VwZGF0ZV9jb2RlKHZvaWQgKmlnbm9yZSk7CisKK3N0YXRpYyBpbnQgX19mdHJhY2VfbW9kaWZ5X2NvZGUodm9pZCAqZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJaW50ICpjb21tYW5kID0gZGF0YTsKKworCWlmICgqY29tbWFuZCAmIEZUUkFDRV9FTkFCTEVfQ0FMTFMpIHsKKwkJLyoKKwkJICogVXBkYXRlIGFueSByZWNvcmRlZCBpcHMgbm93IHRoYXQgd2UgaGF2ZSB0aGUKKwkJICogbWFjaGluZSBzdG9wcGVkCisJCSAqLworCQlfX2Z0cmFjZV91cGRhdGVfY29kZShOVUxMKTsKKwkJZnRyYWNlX3JlcGxhY2VfY29kZSgxKTsKKwkJdHJhY2luZ19vbiA9IDE7CisJfSBlbHNlIGlmICgqY29tbWFuZCAmIEZUUkFDRV9ESVNBQkxFX0NBTExTKSB7CisJCWZ0cmFjZV9yZXBsYWNlX2NvZGUoMCk7CisJCXRyYWNpbmdfb24gPSAwOworCX0KKworCWlmICgqY29tbWFuZCAmIEZUUkFDRV9VUERBVEVfVFJBQ0VfRlVOQykKKwkJZnRyYWNlX3VwZGF0ZV9mdHJhY2VfZnVuYyhmdHJhY2VfdHJhY2VfZnVuY3Rpb24pOworCisJaWYgKCpjb21tYW5kICYgRlRSQUNFX0VOQUJMRV9NQ09VTlQpIHsKKwkJYWRkciA9ICh1bnNpZ25lZCBsb25nKWZ0cmFjZV9yZWNvcmRfaXA7CisJCWZ0cmFjZV9tY291bnRfc2V0KCZhZGRyKTsKKwl9IGVsc2UgaWYgKCpjb21tYW5kICYgRlRSQUNFX0RJU0FCTEVfTUNPVU5UKSB7CisJCWFkZHIgPSAodW5zaWduZWQgbG9uZylmdHJhY2Vfc3R1YjsKKwkJZnRyYWNlX21jb3VudF9zZXQoJmFkZHIpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBmdHJhY2VfcnVuX3VwZGF0ZV9jb2RlKGludCBjb21tYW5kKQoreworCXN0b3BfbWFjaGluZV9ydW4oX19mdHJhY2VfbW9kaWZ5X2NvZGUsICZjb21tYW5kLCBOUl9DUFVTKTsKK30KKwordm9pZCBmdHJhY2VfZGlzYWJsZV9kYWVtb24odm9pZCkKK3sKKwkvKiBTdG9wIHRoZSBkYWVtb24gZnJvbSBjYWxsaW5nIGtzdG9wX21hY2hpbmUgKi8KKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCWZ0cmFjZWRfc3RvcCA9IDE7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworCisJZnRyYWNlX2ZvcmNlX3VwZGF0ZSgpOworfQorCit2b2lkIGZ0cmFjZV9lbmFibGVfZGFlbW9uKHZvaWQpCit7CisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwlmdHJhY2VkX3N0b3AgPSAwOworCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKKworCWZ0cmFjZV9mb3JjZV91cGRhdGUoKTsKK30KKworc3RhdGljIGZ0cmFjZV9mdW5jX3Qgc2F2ZWRfZnRyYWNlX2Z1bmM7CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9zdGFydHVwKHZvaWQpCit7CisJaW50IGNvbW1hbmQgPSAwOworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmZ0cmFjZWRfbG9jayk7CisJZnRyYWNlZF9zdXNwZW5kKys7CisJaWYgKGZ0cmFjZWRfc3VzcGVuZCA9PSAxKQorCQljb21tYW5kIHw9IEZUUkFDRV9FTkFCTEVfQ0FMTFM7CisKKwlpZiAoc2F2ZWRfZnRyYWNlX2Z1bmMgIT0gZnRyYWNlX3RyYWNlX2Z1bmN0aW9uKSB7CisJCXNhdmVkX2Z0cmFjZV9mdW5jID0gZnRyYWNlX3RyYWNlX2Z1bmN0aW9uOworCQljb21tYW5kIHw9IEZUUkFDRV9VUERBVEVfVFJBQ0VfRlVOQzsKKwl9CisKKwlpZiAoIWNvbW1hbmQgfHwgIWZ0cmFjZV9lbmFibGVkKQorCQlnb3RvIG91dDsKKworCWZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoY29tbWFuZCk7Cisgb3V0OgorCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgZnRyYWNlX3NodXRkb3duKHZvaWQpCit7CisJaW50IGNvbW1hbmQgPSAwOworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmZ0cmFjZWRfbG9jayk7CisJZnRyYWNlZF9zdXNwZW5kLS07CisJaWYgKCFmdHJhY2VkX3N1c3BlbmQpCisJCWNvbW1hbmQgfD0gRlRSQUNFX0RJU0FCTEVfQ0FMTFM7CisKKwlpZiAoc2F2ZWRfZnRyYWNlX2Z1bmMgIT0gZnRyYWNlX3RyYWNlX2Z1bmN0aW9uKSB7CisJCXNhdmVkX2Z0cmFjZV9mdW5jID0gZnRyYWNlX3RyYWNlX2Z1bmN0aW9uOworCQljb21tYW5kIHw9IEZUUkFDRV9VUERBVEVfVFJBQ0VfRlVOQzsKKwl9CisKKwlpZiAoIWNvbW1hbmQgfHwgIWZ0cmFjZV9lbmFibGVkKQorCQlnb3RvIG91dDsKKworCWZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoY29tbWFuZCk7Cisgb3V0OgorCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgZnRyYWNlX3N0YXJ0dXBfc3lzY3RsKHZvaWQpCit7CisJaW50IGNvbW1hbmQgPSBGVFJBQ0VfRU5BQkxFX01DT1VOVDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCS8qIEZvcmNlIHVwZGF0ZSBuZXh0IHRpbWUgKi8KKwlzYXZlZF9mdHJhY2VfZnVuYyA9IE5VTEw7CisJLyogZnRyYWNlZF9zdXNwZW5kIGlzIHRydWUgaWYgd2Ugd2FudCBmdHJhY2UgcnVubmluZyAqLworCWlmIChmdHJhY2VkX3N1c3BlbmQpCisJCWNvbW1hbmQgfD0gRlRSQUNFX0VOQUJMRV9DQUxMUzsKKworCWZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoY29tbWFuZCk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworfQorCitzdGF0aWMgdm9pZCBmdHJhY2Vfc2h1dGRvd25fc3lzY3RsKHZvaWQpCit7CisJaW50IGNvbW1hbmQgPSBGVFJBQ0VfRElTQUJMRV9NQ09VTlQ7CisKKwlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwkvKiBmdHJhY2VkX3N1c3BlbmQgaXMgdHJ1ZSBpZiBmdHJhY2UgaXMgcnVubmluZyAqLworCWlmIChmdHJhY2VkX3N1c3BlbmQpCisJCWNvbW1hbmQgfD0gRlRSQUNFX0RJU0FCTEVfQ0FMTFM7CisKKwlmdHJhY2VfcnVuX3VwZGF0ZV9jb2RlKGNvbW1hbmQpOworCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKK30KKworc3RhdGljIGN5Y2xlX3QJCWZ0cmFjZV91cGRhdGVfdGltZTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nCWZ0cmFjZV91cGRhdGVfY250OwordW5zaWduZWQgbG9uZwkJZnRyYWNlX3VwZGF0ZV90b3RfY250OworCitzdGF0aWMgaW50IF9fZnRyYWNlX3VwZGF0ZV9jb2RlKHZvaWQgKmlnbm9yZSkKK3sKKwlpbnQgaSwgc2F2ZV9mdHJhY2VfZW5hYmxlZDsKKwljeWNsZV90IHN0YXJ0LCBzdG9wOworCXN0cnVjdCBkeW5fZnRyYWNlICpwOworCXN0cnVjdCBobGlzdF9ub2RlICp0LCAqbjsKKwlzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwgdGVtcF9saXN0OworCisJLyogRG9uJ3QgYmUgcmVjb3JkaW5nIGZ1bmNzIG5vdyAqLworCWZ0cmFjZV9yZWNvcmRfc3VzcGVuZCsrOworCXNhdmVfZnRyYWNlX2VuYWJsZWQgPSBmdHJhY2VfZW5hYmxlZDsKKwlmdHJhY2VfZW5hYmxlZCA9IDA7CisKKwlzdGFydCA9IGZ0cmFjZV9ub3cocmF3X3NtcF9wcm9jZXNzb3JfaWQoKSk7CisJZnRyYWNlX3VwZGF0ZV9jbnQgPSAwOworCisJLyogTm8gbG9ja3MgbmVlZGVkLCB0aGUgbWFjaGluZSBpcyBzdG9wcGVkISAqLworCWZvciAoaSA9IDA7IGkgPCBGVFJBQ0VfSEFTSFNJWkU7IGkrKykgeworCQlJTklUX0hMSVNUX0hFQUQoJnRlbXBfbGlzdCk7CisJCWhlYWQgPSAmZnRyYWNlX2hhc2hbaV07CisKKwkJLyogYWxsIENQVVMgYXJlIHN0b3BwZWQsIHdlIGFyZSBzYWZlIHRvIG1vZGlmeSBjb2RlICovCisJCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocCwgdCwgbiwgaGVhZCwgbm9kZSkgeworCQkJLyogU2tpcCBvdmVyIGZhaWxlZCByZWNvcmRzIHdoaWNoIGhhdmUgbm90IGJlZW4KKwkJCSAqIGZyZWVkLiAqLworCQkJaWYgKHAtPmZsYWdzICYgRlRSQUNFX0ZMX0ZBSUxFRCkKKwkJCQljb250aW51ZTsKKworCQkJLyogVW5jb252ZXJ0ZWQgcmVjb3JkcyBhcmUgYWx3YXlzIGF0IHRoZSBoZWFkIG9mIHRoZQorCQkJICogaGFzaCBidWNrZXQuIE9uY2Ugd2UgZW5jb3VudGVyIGEgY29udmVydGVkIHJlY29yZCwKKwkJCSAqIHNpbXBseSBza2lwIG92ZXIgdG8gdGhlIG5leHQgYnVja2V0LiBTYXZlcyBmdHJhY2VkCisJCQkgKiBzb21lIHByb2Nlc3NvciBjeWNsZXMgKGZ0cmFjZSBkb2VzIGl0cyBiaWQgZm9yCisJCQkgKiBnbG9iYWwgd2FybWluZyA6LXAgKS4gKi8KKwkJCWlmIChwLT5mbGFncyAmIChGVFJBQ0VfRkxfQ09OVkVSVEVEKSkKKwkJCQlicmVhazsKKworCQkJLyogSWdub3JlIHVwZGF0ZXMgdG8gdGhpcyByZWNvcmQncyBtY291bnQgc2l0ZS4KKwkJCSAqIFJlaW50cm9kdWNlIHRoaXMgcmVjb3JkIGF0IHRoZSBoZWFkIG9mIHRoaXMKKwkJCSAqIGJ1Y2tldCB0byBhdHRlbXB0IHRvICJjb252ZXJ0IiBpdCBhZ2FpbiBpZgorCQkJICogdGhlIGtwcm9iZSBvbiBpdCBpcyB1bnJlZ2lzdGVyZWQgYmVmb3JlIHRoZQorCQkJICogbmV4dCBydW4uICovCisJCQlpZiAoZ2V0X2twcm9iZSgodm9pZCAqKXAtPmlwKSkgeworCQkJCWZ0cmFjZV9kZWxfaGFzaChwKTsKKwkJCQlJTklUX0hMSVNUX05PREUoJnAtPm5vZGUpOworCQkJCWhsaXN0X2FkZF9oZWFkKCZwLT5ub2RlLCAmdGVtcF9saXN0KTsKKwkJCQlmcmVlemVfcmVjb3JkKHApOworCQkJCWNvbnRpbnVlOworCQkJfSBlbHNlIHsKKwkJCQl1bmZyZWV6ZV9yZWNvcmQocCk7CisJCQl9CisKKwkJCS8qIGNvbnZlcnQgcmVjb3JkIChpLmUsIHBhdGNoIG1jb3VudC1jYWxsIHdpdGggTk9QKSAqLworCQkJaWYgKGZ0cmFjZV9jb2RlX2Rpc2FibGUocCkpIHsKKwkJCQlwLT5mbGFncyB8PSBGVFJBQ0VfRkxfQ09OVkVSVEVEOworCQkJCWZ0cmFjZV91cGRhdGVfY250Kys7CisJCQl9IGVsc2UgeworCQkJCWlmICgoc3lzdGVtX3N0YXRlID09IFNZU1RFTV9CT09USU5HKSB8fAorCQkJCSAgICAhY29yZV9rZXJuZWxfdGV4dChwLT5pcCkpIHsKKwkJCQkJZnRyYWNlX2RlbF9oYXNoKHApOworCQkJCQlmdHJhY2VfZnJlZV9yZWMocCk7CisJCQkJfQorCQkJfQorCQl9CisKKwkJaGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwLCB0LCBuLCAmdGVtcF9saXN0LCBub2RlKSB7CisJCQlobGlzdF9kZWwoJnAtPm5vZGUpOworCQkJSU5JVF9ITElTVF9OT0RFKCZwLT5ub2RlKTsKKwkJCWhsaXN0X2FkZF9oZWFkKCZwLT5ub2RlLCBoZWFkKTsKKwkJfQorCX0KKworCXN0b3AgPSBmdHJhY2Vfbm93KHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpOworCWZ0cmFjZV91cGRhdGVfdGltZSA9IHN0b3AgLSBzdGFydDsKKwlmdHJhY2VfdXBkYXRlX3RvdF9jbnQgKz0gZnRyYWNlX3VwZGF0ZV9jbnQ7CisJZnRyYWNlZF90cmlnZ2VyID0gMDsKKworCWZ0cmFjZV9lbmFibGVkID0gc2F2ZV9mdHJhY2VfZW5hYmxlZDsKKwlmdHJhY2VfcmVjb3JkX3N1c3BlbmQtLTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGZ0cmFjZV91cGRhdGVfY29kZSh2b2lkKQoreworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpIHx8CisJICAgICFmdHJhY2VfZW5hYmxlZCB8fCAhZnRyYWNlZF90cmlnZ2VyKQorCQlyZXR1cm4gMDsKKworCXN0b3BfbWFjaGluZV9ydW4oX19mdHJhY2VfdXBkYXRlX2NvZGUsIE5VTEwsIE5SX0NQVVMpOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgZnRyYWNlZCh2b2lkICppZ25vcmUpCit7CisJdW5zaWduZWQgbG9uZyB1c2VjczsKKworCXdoaWxlICgha3RocmVhZF9zaG91bGRfc3RvcCgpKSB7CisKKwkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKKworCQkvKiBjaGVjayBvbmNlIGEgc2Vjb25kICovCisJCXNjaGVkdWxlX3RpbWVvdXQoSFopOworCisJCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQkJY29udGludWU7CisKKwkJbXV0ZXhfbG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKwkJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwkJaWYgKCFmdHJhY2VkX3N1c3BlbmQgJiYgIWZ0cmFjZWRfc3RvcCAmJgorCQkgICAgZnRyYWNlX3VwZGF0ZV9jb2RlKCkpIHsKKwkJCXVzZWNzID0gbnNlY3NfdG9fdXNlY3MoZnRyYWNlX3VwZGF0ZV90aW1lKTsKKwkJCWlmIChmdHJhY2VfdXBkYXRlX3RvdF9jbnQgPiAxMDAwMDApIHsKKwkJCQlmdHJhY2VfdXBkYXRlX3RvdF9jbnQgPSAwOworCQkJCXByX2luZm8oImhtLCBkZnRyYWNlIG92ZXJmbG93OiAlbHUgY2hhbmdlJXMiCisJCQkJCSIgKCVsdSB0b3RhbCkgaW4gJWx1IHVzZWMlc1xuIiwKKwkJCQkJZnRyYWNlX3VwZGF0ZV9jbnQsCisJCQkJCWZ0cmFjZV91cGRhdGVfY250ICE9IDEgPyAicyIgOiAiIiwKKwkJCQkJZnRyYWNlX3VwZGF0ZV90b3RfY250LAorCQkJCQl1c2VjcywgdXNlY3MgIT0gMSA/ICJzIiA6ICIiKTsKKwkJCQlmdHJhY2VfZGlzYWJsZWQgPSAxOworCQkJCVdBUk5fT05fT05DRSgxKTsKKwkJCX0KKwkJfQorCQltdXRleF91bmxvY2soJmZ0cmFjZWRfbG9jayk7CisJCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCQlmdHJhY2Vfc2h1dGRvd25fcmVwbGVuaXNoKCk7CisJfQorCV9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgZnRyYWNlX2R5bl90YWJsZV9hbGxvYyh2b2lkKQoreworCXN0cnVjdCBmdHJhY2VfcGFnZSAqcGc7CisJaW50IGNudDsKKwlpbnQgaTsKKworCS8qIGFsbG9jYXRlIGEgZmV3IHBhZ2VzICovCisJZnRyYWNlX3BhZ2VzX3N0YXJ0ID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJaWYgKCFmdHJhY2VfcGFnZXNfc3RhcnQpCisJCXJldHVybiAtMTsKKworCS8qCisJICogQWxsb2NhdGUgYSBmZXcgbW9yZSBwYWdlcy4KKwkgKgorCSAqIFRPRE86IGhhdmUgc29tZSBwYXJzZXIgc2VhcmNoIHZtbGludXggYmVmb3JlCisJICogICBmaW5hbCBsaW5raW5nIHRvIGZpbmQgYWxsIGNhbGxzIHRvIGZ0cmFjZS4KKwkgKiAgIFRoZW4gd2UgY2FuOgorCSAqICAgIGEpIGtub3cgaG93IG1hbnkgcGFnZXMgdG8gYWxsb2NhdGUuCisJICogICAgIGFuZC9vcgorCSAqICAgIGIpIHNldCB1cCB0aGUgdGFibGUgdGhlbi4KKwkgKgorCSAqICBUaGUgZHluYW1pYyBjb2RlIGlzIHN0aWxsIG5lY2Vzc2FyeSBmb3IKKwkgKiAgbW9kdWxlcy4KKwkgKi8KKworCXBnID0gZnRyYWNlX3BhZ2VzID0gZnRyYWNlX3BhZ2VzX3N0YXJ0OworCisJY250ID0gTlJfVE9fSU5JVCAvIEVOVFJJRVNfUEVSX1BBR0U7CisKKwlmb3IgKGkgPSAwOyBpIDwgY250OyBpKyspIHsKKwkJcGctPm5leHQgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKKworCQkvKiBJZiB3ZSBmYWlsLCB3ZSdsbCB0cnkgbGF0ZXIgYW55d2F5ICovCisJCWlmICghcGctPm5leHQpCisJCQlicmVhazsKKworCQlwZyA9IHBnLT5uZXh0OworCX0KKworCXJldHVybiAwOworfQorCitlbnVtIHsKKwlGVFJBQ0VfSVRFUl9GSUxURVIJPSAoMSA8PCAwKSwKKwlGVFJBQ0VfSVRFUl9DT05UCT0gKDEgPDwgMSksCisJRlRSQUNFX0lURVJfTk9UUkFDRQk9ICgxIDw8IDIpLAorCUZUUkFDRV9JVEVSX0ZBSUxVUkVTCT0gKDEgPDwgMyksCit9OworCisjZGVmaW5lIEZUUkFDRV9CVUZGX01BWCAoS1NZTV9TWU1CT0xfTEVOKzQpIC8qIHJvb20gZm9yIHdpbGRjYXJkcyAqLworCitzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yIHsKKwlsb2ZmX3QJCQlwb3M7CisJc3RydWN0IGZ0cmFjZV9wYWdlCSpwZzsKKwl1bnNpZ25lZAkJaWR4OworCXVuc2lnbmVkCQlmbGFnczsKKwl1bnNpZ25lZCBjaGFyCQlidWZmZXJbRlRSQUNFX0JVRkZfTUFYKzFdOworCXVuc2lnbmVkCQlidWZmZXJfaWR4OworCXVuc2lnbmVkCQlmaWx0ZXJlZDsKK307CisKK3N0YXRpYyB2b2lkICoKK3RfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYsIGxvZmZfdCAqcG9zKQoreworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCXN0cnVjdCBkeW5fZnRyYWNlICpyZWMgPSBOVUxMOworCisJKCpwb3MpKys7CisKKyByZXRyeToKKwlpZiAoaXRlci0+aWR4ID49IGl0ZXItPnBnLT5pbmRleCkgeworCQlpZiAoaXRlci0+cGctPm5leHQpIHsKKwkJCWl0ZXItPnBnID0gaXRlci0+cGctPm5leHQ7CisJCQlpdGVyLT5pZHggPSAwOworCQkJZ290byByZXRyeTsKKwkJfQorCX0gZWxzZSB7CisJCXJlYyA9ICZpdGVyLT5wZy0+cmVjb3Jkc1tpdGVyLT5pZHgrK107CisJCWlmICgoIShpdGVyLT5mbGFncyAmIEZUUkFDRV9JVEVSX0ZBSUxVUkVTKSAmJgorCQkgICAgIChyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZBSUxFRCkpIHx8CisKKwkJICAgICgoaXRlci0+ZmxhZ3MgJiBGVFJBQ0VfSVRFUl9GQUlMVVJFUykgJiYKKwkJICAgICAoIShyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZBSUxFRCkgfHwKKwkJICAgICAgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRlJFRSkpKSB8fAorCisJCSAgICAoKGl0ZXItPmZsYWdzICYgRlRSQUNFX0lURVJfRklMVEVSKSAmJgorCQkgICAgICEocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GSUxURVIpKSB8fAorCisJCSAgICAoKGl0ZXItPmZsYWdzICYgRlRSQUNFX0lURVJfTk9UUkFDRSkgJiYKKwkJICAgICAhKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfTk9UUkFDRSkpKSB7CisJCQlyZWMgPSBOVUxMOworCQkJZ290byByZXRyeTsKKwkJfQorCX0KKworCWl0ZXItPnBvcyA9ICpwb3M7CisKKwlyZXR1cm4gcmVjOworfQorCitzdGF0aWMgdm9pZCAqdF9zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKQoreworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCXZvaWQgKnAgPSBOVUxMOworCWxvZmZfdCBsID0gLTE7CisKKwlpZiAoKnBvcyAhPSBpdGVyLT5wb3MpIHsKKwkJZm9yIChwID0gdF9uZXh0KG0sIHAsICZsKTsgcCAmJiBsIDwgKnBvczsgcCA9IHRfbmV4dChtLCBwLCAmbCkpCisJCQk7CisJfSBlbHNlIHsKKwkJbCA9ICpwb3M7CisJCXAgPSB0X25leHQobSwgcCwgJmwpOworCX0KKworCXJldHVybiBwOworfQorCitzdGF0aWMgdm9pZCB0X3N0b3Aoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpwKQoreworfQorCitzdGF0aWMgaW50IHRfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCit7CisJc3RydWN0IGR5bl9mdHJhY2UgKnJlYyA9IHY7CisJY2hhciBzdHJbS1NZTV9TWU1CT0xfTEVOXTsKKworCWlmICghcmVjKQorCQlyZXR1cm4gMDsKKworCWthbGxzeW1zX2xvb2t1cChyZWMtPmlwLCBOVUxMLCBOVUxMLCBOVUxMLCBzdHIpOworCisJc2VxX3ByaW50ZihtLCAiJXNcbiIsIHN0cik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzZXFfb3BlcmF0aW9ucyBzaG93X2Z0cmFjZV9zZXFfb3BzID0geworCS5zdGFydCA9IHRfc3RhcnQsCisJLm5leHQgPSB0X25leHQsCisJLnN0b3AgPSB0X3N0b3AsCisJLnNob3cgPSB0X3Nob3csCit9OworCitzdGF0aWMgaW50CitmdHJhY2VfYXZhaWxfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yICppdGVyOworCWludCByZXQ7CisKKwlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpdGVyID0ga3phbGxvYyhzaXplb2YoKml0ZXIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWl0ZXIpCisJCXJldHVybiAtRU5PTUVNOworCisJaXRlci0+cGcgPSBmdHJhY2VfcGFnZXNfc3RhcnQ7CisJaXRlci0+cG9zID0gLTE7CisKKwlyZXQgPSBzZXFfb3BlbihmaWxlLCAmc2hvd19mdHJhY2Vfc2VxX29wcyk7CisJaWYgKCFyZXQpIHsKKwkJc3RydWN0IHNlcV9maWxlICptID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCisJCW0tPnByaXZhdGUgPSBpdGVyOworCX0gZWxzZSB7CisJCWtmcmVlKGl0ZXIpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK2ludCBmdHJhY2VfYXZhaWxfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSAoc3RydWN0IHNlcV9maWxlICopZmlsZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCisJc2VxX3JlbGVhc2UoaW5vZGUsIGZpbGUpOworCWtmcmVlKGl0ZXIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2Z0cmFjZV9mYWlsdXJlc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCWludCByZXQ7CisJc3RydWN0IHNlcV9maWxlICptOworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXI7CisKKwlyZXQgPSBmdHJhY2VfYXZhaWxfb3Blbihpbm9kZSwgZmlsZSk7CisJaWYgKCFyZXQpIHsKKwkJbSA9IChzdHJ1Y3Qgc2VxX2ZpbGUgKilmaWxlLT5wcml2YXRlX2RhdGE7CisJCWl0ZXIgPSAoc3RydWN0IGZ0cmFjZV9pdGVyYXRvciAqKW0tPnByaXZhdGU7CisJCWl0ZXItPmZsYWdzID0gRlRSQUNFX0lURVJfRkFJTFVSRVM7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworCitzdGF0aWMgdm9pZCBmdHJhY2VfZmlsdGVyX3Jlc2V0KGludCBlbmFibGUpCit7CisJc3RydWN0IGZ0cmFjZV9wYWdlICpwZzsKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjOworCXVuc2lnbmVkIGxvbmcgdHlwZSA9IGVuYWJsZSA/IEZUUkFDRV9GTF9GSUxURVIgOiBGVFJBQ0VfRkxfTk9UUkFDRTsKKwl1bnNpZ25lZCBpOworCisJLyoga2VlcCBrc3RvcCBtYWNoaW5lIGZyb20gcnVubmluZyAqLworCXByZWVtcHRfZGlzYWJsZSgpOworCWlmIChlbmFibGUpCisJCWZ0cmFjZV9maWx0ZXJlZCA9IDA7CisJcGcgPSBmdHJhY2VfcGFnZXNfc3RhcnQ7CisJd2hpbGUgKHBnKSB7CisJCWZvciAoaSA9IDA7IGkgPCBwZy0+aW5kZXg7IGkrKykgeworCQkJcmVjID0gJnBnLT5yZWNvcmRzW2ldOworCQkJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKQorCQkJCWNvbnRpbnVlOworCQkJcmVjLT5mbGFncyAmPSB+dHlwZTsKKwkJfQorCQlwZyA9IHBnLT5uZXh0OworCX0KKwlwcmVlbXB0X2VuYWJsZSgpOworfQorCitzdGF0aWMgaW50CitmdHJhY2VfcmVnZXhfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGVuYWJsZSkKK3sKKwlzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yICppdGVyOworCWludCByZXQgPSAwOworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybiAtRU5PREVWOworCisJaXRlciA9IGt6YWxsb2Moc2l6ZW9mKCppdGVyKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFpdGVyKQorCQlyZXR1cm4gLUVOT01FTTsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKKwlpZiAoKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKSAmJgorCSAgICAhKGZpbGUtPmZfZmxhZ3MgJiBPX0FQUEVORCkpCisJCWZ0cmFjZV9maWx0ZXJfcmVzZXQoZW5hYmxlKTsKKworCWlmIChmaWxlLT5mX21vZGUgJiBGTU9ERV9SRUFEKSB7CisJCWl0ZXItPnBnID0gZnRyYWNlX3BhZ2VzX3N0YXJ0OworCQlpdGVyLT5wb3MgPSAtMTsKKwkJaXRlci0+ZmxhZ3MgPSBlbmFibGUgPyBGVFJBQ0VfSVRFUl9GSUxURVIgOgorCQkJRlRSQUNFX0lURVJfTk9UUkFDRTsKKworCQlyZXQgPSBzZXFfb3BlbihmaWxlLCAmc2hvd19mdHJhY2Vfc2VxX29wcyk7CisJCWlmICghcmV0KSB7CisJCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJCQltLT5wcml2YXRlID0gaXRlcjsKKwkJfSBlbHNlCisJCQlrZnJlZShpdGVyKTsKKwl9IGVsc2UKKwkJZmlsZS0+cHJpdmF0ZV9kYXRhID0gaXRlcjsKKwltdXRleF91bmxvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQKK2Z0cmFjZV9maWx0ZXJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gZnRyYWNlX3JlZ2V4X29wZW4oaW5vZGUsIGZpbGUsIDEpOworfQorCitzdGF0aWMgaW50CitmdHJhY2Vfbm90cmFjZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBmdHJhY2VfcmVnZXhfb3Blbihpbm9kZSwgZmlsZSwgMCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitmdHJhY2VfcmVnZXhfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1JFQUQpCisJCXJldHVybiBzZXFfcmVhZChmaWxlLCB1YnVmLCBjbnQsIHBwb3MpOworCWVsc2UKKwkJcmV0dXJuIC1FUEVSTTsKK30KKworc3RhdGljIGxvZmZfdAorZnRyYWNlX3JlZ2V4X2xzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQoreworCWxvZmZfdCByZXQ7CisKKwlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfUkVBRCkKKwkJcmV0ID0gc2VxX2xzZWVrKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKKwllbHNlCisJCWZpbGUtPmZfcG9zID0gcmV0ID0gMTsKKworCXJldHVybiByZXQ7Cit9CisKK2VudW0geworCU1BVENIX0ZVTEwsCisJTUFUQ0hfRlJPTlRfT05MWSwKKwlNQVRDSF9NSURETEVfT05MWSwKKwlNQVRDSF9FTkRfT05MWSwKK307CisKK3N0YXRpYyB2b2lkCitmdHJhY2VfbWF0Y2godW5zaWduZWQgY2hhciAqYnVmZiwgaW50IGxlbiwgaW50IGVuYWJsZSkKK3sKKwljaGFyIHN0cltLU1lNX1NZTUJPTF9MRU5dOworCWNoYXIgKnNlYXJjaCA9IE5VTEw7CisJc3RydWN0IGZ0cmFjZV9wYWdlICpwZzsKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjOworCWludCB0eXBlID0gTUFUQ0hfRlVMTDsKKwl1bnNpZ25lZCBsb25nIGZsYWcgPSBlbmFibGUgPyBGVFJBQ0VfRkxfRklMVEVSIDogRlRSQUNFX0ZMX05PVFJBQ0U7CisJdW5zaWduZWQgaSwgbWF0Y2ggPSAwLCBzZWFyY2hfbGVuID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworCQlpZiAoYnVmZltpXSA9PSAnKicpIHsKKwkJCWlmICghaSkgeworCQkJCXNlYXJjaCA9IGJ1ZmYgKyBpICsgMTsKKwkJCQl0eXBlID0gTUFUQ0hfRU5EX09OTFk7CisJCQkJc2VhcmNoX2xlbiA9IGxlbiAtIChpICsgMSk7CisJCQl9IGVsc2UgeworCQkJCWlmICh0eXBlID09IE1BVENIX0VORF9PTkxZKSB7CisJCQkJCXR5cGUgPSBNQVRDSF9NSURETEVfT05MWTsKKwkJCQl9IGVsc2UgeworCQkJCQltYXRjaCA9IGk7CisJCQkJCXR5cGUgPSBNQVRDSF9GUk9OVF9PTkxZOworCQkJCX0KKwkJCQlidWZmW2ldID0gMDsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCS8qIGtlZXAga3N0b3AgbWFjaGluZSBmcm9tIHJ1bm5pbmcgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwlpZiAoZW5hYmxlKQorCQlmdHJhY2VfZmlsdGVyZWQgPSAxOworCXBnID0gZnRyYWNlX3BhZ2VzX3N0YXJ0OworCXdoaWxlIChwZykgeworCQlmb3IgKGkgPSAwOyBpIDwgcGctPmluZGV4OyBpKyspIHsKKwkJCWludCBtYXRjaGVkID0gMDsKKwkJCWNoYXIgKnB0cjsKKworCQkJcmVjID0gJnBnLT5yZWNvcmRzW2ldOworCQkJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKQorCQkJCWNvbnRpbnVlOworCQkJa2FsbHN5bXNfbG9va3VwKHJlYy0+aXAsIE5VTEwsIE5VTEwsIE5VTEwsIHN0cik7CisJCQlzd2l0Y2ggKHR5cGUpIHsKKwkJCWNhc2UgTUFUQ0hfRlVMTDoKKwkJCQlpZiAoc3RyY21wKHN0ciwgYnVmZikgPT0gMCkKKwkJCQkJbWF0Y2hlZCA9IDE7CisJCQkJYnJlYWs7CisJCQljYXNlIE1BVENIX0ZST05UX09OTFk6CisJCQkJaWYgKG1lbWNtcChzdHIsIGJ1ZmYsIG1hdGNoKSA9PSAwKQorCQkJCQltYXRjaGVkID0gMTsKKwkJCQlicmVhazsKKwkJCWNhc2UgTUFUQ0hfTUlERExFX09OTFk6CisJCQkJaWYgKHN0cnN0cihzdHIsIHNlYXJjaCkpCisJCQkJCW1hdGNoZWQgPSAxOworCQkJCWJyZWFrOworCQkJY2FzZSBNQVRDSF9FTkRfT05MWToKKwkJCQlwdHIgPSBzdHJzdHIoc3RyLCBzZWFyY2gpOworCQkJCWlmIChwdHIgJiYgKHB0cltzZWFyY2hfbGVuXSA9PSAwKSkKKwkJCQkJbWF0Y2hlZCA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAobWF0Y2hlZCkKKwkJCQlyZWMtPmZsYWdzIHw9IGZsYWc7CisJCX0KKwkJcGcgPSBwZy0+bmV4dDsKKwl9CisJcHJlZW1wdF9lbmFibGUoKTsKK30KKworc3RhdGljIHNzaXplX3QKK2Z0cmFjZV9yZWdleF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcywgaW50IGVuYWJsZSkKK3sKKwlzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yICppdGVyOworCWNoYXIgY2g7CisJc2l6ZV90IHJlYWQgPSAwOworCXNzaXplX3QgcmV0OworCisJaWYgKCFjbnQgfHwgY250IDwgMCkKKwkJcmV0dXJuIDA7CisKKwltdXRleF9sb2NrKCZmdHJhY2VfcmVnZXhfbG9jayk7CisKKwlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfUkVBRCkgeworCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJCWl0ZXIgPSBtLT5wcml2YXRlOworCX0gZWxzZQorCQlpdGVyID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCisJaWYgKCEqcHBvcykgeworCQlpdGVyLT5mbGFncyAmPSB+RlRSQUNFX0lURVJfQ09OVDsKKwkJaXRlci0+YnVmZmVyX2lkeCA9IDA7CisJfQorCisJcmV0ID0gZ2V0X3VzZXIoY2gsIHVidWYrKyk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisJcmVhZCsrOworCWNudC0tOworCisJaWYgKCEoaXRlci0+ZmxhZ3MgJiB+RlRSQUNFX0lURVJfQ09OVCkpIHsKKwkJLyogc2tpcCB3aGl0ZSBzcGFjZSAqLworCQl3aGlsZSAoY250ICYmIGlzc3BhY2UoY2gpKSB7CisJCQlyZXQgPSBnZXRfdXNlcihjaCwgdWJ1ZisrKTsKKwkJCWlmIChyZXQpCisJCQkJZ290byBvdXQ7CisJCQlyZWFkKys7CisJCQljbnQtLTsKKwkJfQorCisJCWlmIChpc3NwYWNlKGNoKSkgeworCQkJZmlsZS0+Zl9wb3MgKz0gcmVhZDsKKwkJCXJldCA9IHJlYWQ7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWl0ZXItPmJ1ZmZlcl9pZHggPSAwOworCX0KKworCXdoaWxlIChjbnQgJiYgIWlzc3BhY2UoY2gpKSB7CisJCWlmIChpdGVyLT5idWZmZXJfaWR4IDwgRlRSQUNFX0JVRkZfTUFYKQorCQkJaXRlci0+YnVmZmVyW2l0ZXItPmJ1ZmZlcl9pZHgrK10gPSBjaDsKKwkJZWxzZSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290byBvdXQ7CisJCX0KKwkJcmV0ID0gZ2V0X3VzZXIoY2gsIHVidWYrKyk7CisJCWlmIChyZXQpCisJCQlnb3RvIG91dDsKKwkJcmVhZCsrOworCQljbnQtLTsKKwl9CisKKwlpZiAoaXNzcGFjZShjaCkpIHsKKwkJaXRlci0+ZmlsdGVyZWQrKzsKKwkJaXRlci0+YnVmZmVyW2l0ZXItPmJ1ZmZlcl9pZHhdID0gMDsKKwkJZnRyYWNlX21hdGNoKGl0ZXItPmJ1ZmZlciwgaXRlci0+YnVmZmVyX2lkeCwgZW5hYmxlKTsKKwkJaXRlci0+YnVmZmVyX2lkeCA9IDA7CisJfSBlbHNlCisJCWl0ZXItPmZsYWdzIHw9IEZUUkFDRV9JVEVSX0NPTlQ7CisKKworCWZpbGUtPmZfcG9zICs9IHJlYWQ7CisKKwlyZXQgPSByZWFkOworIG91dDoKKwltdXRleF91bmxvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitmdHJhY2VfZmlsdGVyX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwlyZXR1cm4gZnRyYWNlX3JlZ2V4X3dyaXRlKGZpbGUsIHVidWYsIGNudCwgcHBvcywgMSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitmdHJhY2Vfbm90cmFjZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXJldHVybiBmdHJhY2VfcmVnZXhfd3JpdGUoZmlsZSwgdWJ1ZiwgY250LCBwcG9zLCAwKTsKK30KKworc3RhdGljIHZvaWQKK2Z0cmFjZV9zZXRfcmVnZXgodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuLCBpbnQgcmVzZXQsIGludCBlbmFibGUpCit7CisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKKwlpZiAocmVzZXQpCisJCWZ0cmFjZV9maWx0ZXJfcmVzZXQoZW5hYmxlKTsKKwlpZiAoYnVmKQorCQlmdHJhY2VfbWF0Y2goYnVmLCBsZW4sIGVuYWJsZSk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VfcmVnZXhfbG9jayk7Cit9CisKKy8qKgorICogZnRyYWNlX3NldF9maWx0ZXIgLSBzZXQgYSBmdW5jdGlvbiB0byBmaWx0ZXIgb24gaW4gZnRyYWNlCisgKiBAYnVmIC0gdGhlIHN0cmluZyB0aGF0IGhvbGRzIHRoZSBmdW5jdGlvbiBmaWx0ZXIgdGV4dC4KKyAqIEBsZW4gLSB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCisgKiBAcmVzZXQgLSBub24gemVybyB0byByZXNldCBhbGwgZmlsdGVycyBiZWZvcmUgYXBwbHlpbmcgdGhpcyBmaWx0ZXIuCisgKgorICogRmlsdGVycyBkZW5vdGUgd2hpY2ggZnVuY3Rpb25zIHNob3VsZCBiZSBlbmFibGVkIHdoZW4gdHJhY2luZyBpcyBlbmFibGVkLgorICogSWYgQGJ1ZiBpcyBOVUxMIGFuZCByZXNldCBpcyBzZXQsIGFsbCBmdW5jdGlvbnMgd2lsbCBiZSBlbmFibGVkIGZvciB0cmFjaW5nLgorICovCit2b2lkIGZ0cmFjZV9zZXRfZmlsdGVyKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGxlbiwgaW50IHJlc2V0KQoreworCWZ0cmFjZV9zZXRfcmVnZXgoYnVmLCBsZW4sIHJlc2V0LCAxKTsKK30KKworLyoqCisgKiBmdHJhY2Vfc2V0X25vdHJhY2UgLSBzZXQgYSBmdW5jdGlvbiB0byBub3QgdHJhY2UgaW4gZnRyYWNlCisgKiBAYnVmIC0gdGhlIHN0cmluZyB0aGF0IGhvbGRzIHRoZSBmdW5jdGlvbiBub3RyYWNlIHRleHQuCisgKiBAbGVuIC0gdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLgorICogQHJlc2V0IC0gbm9uIHplcm8gdG8gcmVzZXQgYWxsIGZpbHRlcnMgYmVmb3JlIGFwcGx5aW5nIHRoaXMgZmlsdGVyLgorICoKKyAqIE5vdHJhY2UgRmlsdGVycyBkZW5vdGUgd2hpY2ggZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgZW5hYmxlZCB3aGVuIHRyYWNpbmcKKyAqIGlzIGVuYWJsZWQuIElmIEBidWYgaXMgTlVMTCBhbmQgcmVzZXQgaXMgc2V0LCBhbGwgZnVuY3Rpb25zIHdpbGwgYmUgZW5hYmxlZAorICogZm9yIHRyYWNpbmcuCisgKi8KK3ZvaWQgZnRyYWNlX3NldF9ub3RyYWNlKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGxlbiwgaW50IHJlc2V0KQoreworCWZ0cmFjZV9zZXRfcmVnZXgoYnVmLCBsZW4sIHJlc2V0LCAwKTsKK30KKworc3RhdGljIGludAorZnRyYWNlX3JlZ2V4X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsIGludCBlbmFibGUpCit7CisJc3RydWN0IHNlcV9maWxlICptID0gKHN0cnVjdCBzZXFfZmlsZSAqKWZpbGUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yICppdGVyOworCisJbXV0ZXhfbG9jaygmZnRyYWNlX3JlZ2V4X2xvY2spOworCWlmIChmaWxlLT5mX21vZGUgJiBGTU9ERV9SRUFEKSB7CisJCWl0ZXIgPSBtLT5wcml2YXRlOworCisJCXNlcV9yZWxlYXNlKGlub2RlLCBmaWxlKTsKKwl9IGVsc2UKKwkJaXRlciA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKworCWlmIChpdGVyLT5idWZmZXJfaWR4KSB7CisJCWl0ZXItPmZpbHRlcmVkKys7CisJCWl0ZXItPmJ1ZmZlcltpdGVyLT5idWZmZXJfaWR4XSA9IDA7CisJCWZ0cmFjZV9tYXRjaChpdGVyLT5idWZmZXIsIGl0ZXItPmJ1ZmZlcl9pZHgsIGVuYWJsZSk7CisJfQorCisJbXV0ZXhfbG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCWlmIChpdGVyLT5maWx0ZXJlZCAmJiBmdHJhY2VkX3N1c3BlbmQgJiYgZnRyYWNlX2VuYWJsZWQpCisJCWZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoRlRSQUNFX0VOQUJMRV9DQUxMUyk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCWtmcmVlKGl0ZXIpOworCW11dGV4X3VubG9jaygmZnRyYWNlX3JlZ2V4X2xvY2spOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitmdHJhY2VfZmlsdGVyX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIGZ0cmFjZV9yZWdleF9yZWxlYXNlKGlub2RlLCBmaWxlLCAxKTsKK30KKworc3RhdGljIGludAorZnRyYWNlX25vdHJhY2VfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gZnRyYWNlX3JlZ2V4X3JlbGVhc2UoaW5vZGUsIGZpbGUsIDApOworfQorCitzdGF0aWMgc3NpemVfdAorZnRyYWNlZF9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJLyogZG9uJ3Qgd29ycnkgYWJvdXQgcmFjZXMgKi8KKwljaGFyICpidWYgPSBmdHJhY2VkX3N0b3AgPyAiZGlzYWJsZWRcbiIgOiAiZW5hYmxlZFxuIjsKKwlpbnQgciA9IHN0cmxlbihidWYpOworCisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKK30KKworc3RhdGljIHNzaXplX3QKK2Z0cmFjZWRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJY2hhciBidWZbNjRdOworCWxvbmcgdmFsOworCWludCByZXQ7CisKKwlpZiAoY250ID49IHNpemVvZihidWYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmYnVmLCB1YnVmLCBjbnQpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWlmIChzdHJuY21wKGJ1ZiwgImVuYWJsZSIsIDYpID09IDApCisJCXZhbCA9IDE7CisJZWxzZSBpZiAoc3RybmNtcChidWYsICJkaXNhYmxlIiwgNykgPT0gMCkKKwkJdmFsID0gMDsKKwllbHNlIHsKKwkJYnVmW2NudF0gPSAwOworCisJCXJldCA9IHN0cmljdF9zdHJ0b3VsKGJ1ZiwgMTAsICZ2YWwpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJdmFsID0gISF2YWw7CisJfQorCisJaWYgKHZhbCkKKwkJZnRyYWNlX2VuYWJsZV9kYWVtb24oKTsKKwllbHNlCisJCWZ0cmFjZV9kaXNhYmxlX2RhZW1vbigpOworCisJZmlscC0+Zl9wb3MgKz0gY250OworCisJcmV0dXJuIGNudDsKK30KKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZnRyYWNlX2F2YWlsX2ZvcHMgPSB7CisJLm9wZW4gPSBmdHJhY2VfYXZhaWxfb3BlbiwKKwkucmVhZCA9IHNlcV9yZWFkLAorCS5sbHNlZWsgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBmdHJhY2VfYXZhaWxfcmVsZWFzZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZ0cmFjZV9mYWlsdXJlc19mb3BzID0geworCS5vcGVuID0gZnRyYWNlX2ZhaWx1cmVzX29wZW4sCisJLnJlYWQgPSBzZXFfcmVhZCwKKwkubGxzZWVrID0gc2VxX2xzZWVrLAorCS5yZWxlYXNlID0gZnRyYWNlX2F2YWlsX3JlbGVhc2UsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmdHJhY2VfZmlsdGVyX2ZvcHMgPSB7CisJLm9wZW4gPSBmdHJhY2VfZmlsdGVyX29wZW4sCisJLnJlYWQgPSBmdHJhY2VfcmVnZXhfcmVhZCwKKwkud3JpdGUgPSBmdHJhY2VfZmlsdGVyX3dyaXRlLAorCS5sbHNlZWsgPSBmdHJhY2VfcmVnZXhfbHNlZWssCisJLnJlbGVhc2UgPSBmdHJhY2VfZmlsdGVyX3JlbGVhc2UsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmdHJhY2Vfbm90cmFjZV9mb3BzID0geworCS5vcGVuID0gZnRyYWNlX25vdHJhY2Vfb3BlbiwKKwkucmVhZCA9IGZ0cmFjZV9yZWdleF9yZWFkLAorCS53cml0ZSA9IGZ0cmFjZV9ub3RyYWNlX3dyaXRlLAorCS5sbHNlZWsgPSBmdHJhY2VfcmVnZXhfbHNlZWssCisJLnJlbGVhc2UgPSBmdHJhY2Vfbm90cmFjZV9yZWxlYXNlLAorfTsKKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZnRyYWNlZF9mb3BzID0geworCS5vcGVuID0gdHJhY2luZ19vcGVuX2dlbmVyaWMsCisJLnJlYWQgPSBmdHJhY2VkX3JlYWQsCisJLndyaXRlID0gZnRyYWNlZF93cml0ZSwKK307CisKKy8qKgorICogZnRyYWNlX2ZvcmNlX3VwZGF0ZSAtIGZvcmNlIGFuIHVwZGF0ZSB0byBhbGwgcmVjb3JkaW5nIGZ0cmFjZSBmdW5jdGlvbnMKKyAqLworaW50IGZ0cmFjZV9mb3JjZV91cGRhdGUodm9pZCkKK3sKKwlpbnQgcmV0ID0gMDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKworCS8qCisJICogSWYgZnRyYWNlZF90cmlnZ2VyIGlzIG5vdCBzZXQsIHRoZW4gdGhlcmUgaXMgbm90aGluZworCSAqIHRvIHVwZGF0ZS4KKwkgKi8KKwlpZiAoZnRyYWNlZF90cmlnZ2VyICYmICFmdHJhY2VfdXBkYXRlX2NvZGUoKSkKKwkJcmV0ID0gLUVCVVNZOworCisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9mb3JjZV9zaHV0ZG93bih2b2lkKQoreworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKKwlpbnQgY29tbWFuZCA9IEZUUkFDRV9ESVNBQkxFX0NBTExTIHwgRlRSQUNFX1VQREFURV9UUkFDRV9GVU5DOworCisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwl0YXNrID0gZnRyYWNlZF90YXNrOworCWZ0cmFjZWRfdGFzayA9IE5VTEw7CisJZnRyYWNlZF9zdXNwZW5kID0gLTE7CisJZnRyYWNlX3J1bl91cGRhdGVfY29kZShjb21tYW5kKTsKKwltdXRleF91bmxvY2soJmZ0cmFjZWRfbG9jayk7CisKKwlpZiAodGFzaykKKwkJa3RocmVhZF9zdG9wKHRhc2spOworfQorCitzdGF0aWMgX19pbml0IGludCBmdHJhY2VfaW5pdF9kZWJ1Z2ZzKHZvaWQpCit7CisJc3RydWN0IGRlbnRyeSAqZF90cmFjZXI7CisJc3RydWN0IGRlbnRyeSAqZW50cnk7CisKKwlkX3RyYWNlciA9IHRyYWNpbmdfaW5pdF9kZW50cnkoKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgiYXZhaWxhYmxlX2ZpbHRlcl9mdW5jdGlvbnMiLCAwNDQ0LAorCQkJCSAgICBkX3RyYWNlciwgTlVMTCwgJmZ0cmFjZV9hdmFpbF9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgIgorCQkJICAgIidhdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9ucycgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJmYWlsdXJlcyIsIDA0NDQsCisJCQkJICAgIGRfdHJhY2VyLCBOVUxMLCAmZnRyYWNlX2ZhaWx1cmVzX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAnZmFpbHVyZXMnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgic2V0X2Z0cmFjZV9maWx0ZXIiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJmZ0cmFjZV9maWx0ZXJfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICIKKwkJCSAgICInc2V0X2Z0cmFjZV9maWx0ZXInIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgic2V0X2Z0cmFjZV9ub3RyYWNlIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgIE5VTEwsICZmdHJhY2Vfbm90cmFjZV9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgIgorCQkJICAgIidzZXRfZnRyYWNlX25vdHJhY2UnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgiZnRyYWNlZF9lbmFibGVkIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgIE5VTEwsICZmdHJhY2VkX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAiCisJCQkgICAiJ2Z0cmFjZWRfZW5hYmxlZCcgZW50cnlcbiIpOworCXJldHVybiAwOworfQorCitmc19pbml0Y2FsbChmdHJhY2VfaW5pdF9kZWJ1Z2ZzKTsKKworc3RhdGljIGludCBfX2luaXQgZnRyYWNlX2R5bmFtaWNfaW5pdCh2b2lkKQoreworCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJaW50IHJldDsKKworCWFkZHIgPSAodW5zaWduZWQgbG9uZylmdHJhY2VfcmVjb3JkX2lwOworCisJc3RvcF9tYWNoaW5lX3J1bihmdHJhY2VfZHluX2FyY2hfaW5pdCwgJmFkZHIsIE5SX0NQVVMpOworCisJLyogZnRyYWNlX2R5bl9hcmNoX2luaXQgcGxhY2VzIHRoZSByZXR1cm4gY29kZSBpbiBhZGRyICovCisJaWYgKGFkZHIpIHsKKwkJcmV0ID0gKGludClhZGRyOworCQlnb3RvIGZhaWxlZDsKKwl9CisKKwlyZXQgPSBmdHJhY2VfZHluX3RhYmxlX2FsbG9jKCk7CisJaWYgKHJldCkKKwkJZ290byBmYWlsZWQ7CisKKwlwID0ga3RocmVhZF9ydW4oZnRyYWNlZCwgTlVMTCwgImZ0cmFjZWQiKTsKKwlpZiAoSVNfRVJSKHApKSB7CisJCXJldCA9IC0xOworCQlnb3RvIGZhaWxlZDsKKwl9CisKKwlsYXN0X2Z0cmFjZV9lbmFibGVkID0gZnRyYWNlX2VuYWJsZWQgPSAxOworCWZ0cmFjZWRfdGFzayA9IHA7CisKKwlyZXR1cm4gMDsKKworIGZhaWxlZDoKKwlmdHJhY2VfZGlzYWJsZWQgPSAxOworCXJldHVybiByZXQ7Cit9CisKK2NvcmVfaW5pdGNhbGwoZnRyYWNlX2R5bmFtaWNfaW5pdCk7CisjZWxzZQorIyBkZWZpbmUgZnRyYWNlX3N0YXJ0dXAoKQkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgZnRyYWNlX3NodXRkb3duKCkJCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIGZ0cmFjZV9zdGFydHVwX3N5c2N0bCgpCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIGZ0cmFjZV9zaHV0ZG93bl9zeXNjdGwoKQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBmdHJhY2VfZm9yY2Vfc2h1dGRvd24oKQlkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisKKy8qKgorICogZnRyYWNlX2tpbGxfYXRvbWljIC0ga2lsbCBmdHJhY2UgZnJvbSBjcml0aWNhbCBzZWN0aW9ucworICoKKyAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgYnkgcGFuaWMgY29kZS4gSXQgc3RvcHMgZnRyYWNlCisgKiBidXQgaW4gYSBub3Qgc28gbmljZSB3YXkuIElmIHlvdSBuZWVkIHRvIHNpbXBseSBraWxsIGZ0cmFjZQorICogZnJvbSBhIG5vbi1hdG9taWMgc2VjdGlvbiwgdXNlIGZ0cmFjZV9raWxsLgorICovCit2b2lkIGZ0cmFjZV9raWxsX2F0b21pYyh2b2lkKQoreworCWZ0cmFjZV9kaXNhYmxlZCA9IDE7CisJZnRyYWNlX2VuYWJsZWQgPSAwOworI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorCWZ0cmFjZWRfc3VzcGVuZCA9IC0xOworI2VuZGlmCisJY2xlYXJfZnRyYWNlX2Z1bmN0aW9uKCk7Cit9CisKKy8qKgorICogZnRyYWNlX2tpbGwgLSB0b3RhbGx5IHNodXRkb3duIGZ0cmFjZQorICoKKyAqIFRoaXMgaXMgYSBzYWZldHkgbWVhc3VyZS4gSWYgc29tZXRoaW5nIHdhcyBkZXRlY3RlZCB0aGF0IHNlZW1zCisgKiB3cm9uZywgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwga2VlcCBmdHJhY2UgZnJvbSBkb2luZworICogYW55IG1vcmUgbW9kaWZpY2F0aW9ucywgYW5kIHVwZGF0ZXMuCisgKiB1c2VkIHdoZW4gc29tZXRoaW5nIHdlbnQgd3JvbmcuCisgKi8KK3ZvaWQgZnRyYWNlX2tpbGwodm9pZCkKK3sKKwltdXRleF9sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCWZ0cmFjZV9kaXNhYmxlZCA9IDE7CisJZnRyYWNlX2VuYWJsZWQgPSAwOworCisJY2xlYXJfZnRyYWNlX2Z1bmN0aW9uKCk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCisJLyogVHJ5IHRvIHRvdGFsbHkgZGlzYWJsZSBmdHJhY2UgKi8KKwlmdHJhY2VfZm9yY2Vfc2h1dGRvd24oKTsKK30KKworLyoqCisgKiByZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24gLSByZWdpc3RlciBhIGZ1bmN0aW9uIGZvciBwcm9maWxpbmcKKyAqIEBvcHMgLSBvcHMgc3RydWN0dXJlIHRoYXQgaG9sZHMgdGhlIGZ1bmN0aW9uIGZvciBwcm9maWxpbmcuCisgKgorICogUmVnaXN0ZXIgYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYnkgYWxsIGZ1bmN0aW9ucyBpbiB0aGUKKyAqIGtlcm5lbC4KKyAqCisgKiBOb3RlOiBAb3BzLT5mdW5jIGFuZCBhbGwgdGhlIGZ1bmN0aW9ucyBpdCBjYWxscyBtdXN0IGJlIGxhYmVsZWQKKyAqICAgICAgIHdpdGggIm5vdHJhY2UiLCBvdGhlcndpc2UgaXQgd2lsbCBnbyBpbnRvIGEKKyAqICAgICAgIHJlY3Vyc2l2ZSBsb29wLgorICovCitpbnQgcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpCit7CisJaW50IHJldDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQlyZXR1cm4gLTE7CisKKwltdXRleF9sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCXJldCA9IF9fcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKG9wcyk7CisJZnRyYWNlX3N0YXJ0dXAoKTsKKwltdXRleF91bmxvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIHVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uIC0gdW5yZXNnaXN0ZXIgYSBmdW5jdGlvbiBmb3IgcHJvZmlsaW5nLgorICogQG9wcyAtIG9wcyBzdHJ1Y3R1cmUgdGhhdCBob2xkcyB0aGUgZnVuY3Rpb24gdG8gdW5yZWdpc3RlcgorICoKKyAqIFVucmVnaXN0ZXIgYSBmdW5jdGlvbiB0aGF0IHdhcyBhZGRlZCB0byBiZSBjYWxsZWQgYnkgZnRyYWNlIHByb2ZpbGluZy4KKyAqLworaW50IHVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpCit7CisJaW50IHJldDsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisJcmV0ID0gX191bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihvcHMpOworCWZ0cmFjZV9zaHV0ZG93bigpOworCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKK2ludAorZnRyYWNlX2VuYWJsZV9zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAorCQkgICAgIGxvZmZfdCAqcHBvcykKK3sKKwlpbnQgcmV0OworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybiAtRU5PREVWOworCisJbXV0ZXhfbG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCXJldCAgPSBwcm9jX2RvaW50dmVjKHRhYmxlLCB3cml0ZSwgZmlsZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKKworCWlmIChyZXQgfHwgIXdyaXRlIHx8IChsYXN0X2Z0cmFjZV9lbmFibGVkID09IGZ0cmFjZV9lbmFibGVkKSkKKwkJZ290byBvdXQ7CisKKwlsYXN0X2Z0cmFjZV9lbmFibGVkID0gZnRyYWNlX2VuYWJsZWQ7CisKKwlpZiAoZnRyYWNlX2VuYWJsZWQpIHsKKworCQlmdHJhY2Vfc3RhcnR1cF9zeXNjdGwoKTsKKworCQkvKiB3ZSBhcmUgc3RhcnRpbmcgZnRyYWNlIGFnYWluICovCisJCWlmIChmdHJhY2VfbGlzdCAhPSAmZnRyYWNlX2xpc3RfZW5kKSB7CisJCQlpZiAoZnRyYWNlX2xpc3QtPm5leHQgPT0gJmZ0cmFjZV9saXN0X2VuZCkKKwkJCQlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBmdHJhY2VfbGlzdC0+ZnVuYzsKKwkJCWVsc2UKKwkJCQlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBmdHJhY2VfbGlzdF9mdW5jOworCQl9CisKKwl9IGVsc2UgeworCQkvKiBzdG9wcGluZyBmdHJhY2UgY2FsbHMgKGp1c3Qgc2VuZCB0byBmdHJhY2Vfc3R1YikgKi8KKwkJZnRyYWNlX3RyYWNlX2Z1bmN0aW9uID0gZnRyYWNlX3N0dWI7CisKKwkJZnRyYWNlX3NodXRkb3duX3N5c2N0bCgpOworCX0KKworIG91dDoKKwltdXRleF91bmxvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZS5jIGIva2VybmVsL3RyYWNlL3RyYWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY4ZTEyMQotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZS5jCkBAIC0wLDAgKzEsMzE2MSBAQAorLyoKKyAqIHJpbmcgYnVmZmVyIGJhc2VkIGZ1bmN0aW9uIHRyYWNlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgorICoKKyAqIE9yaWdpbmFsbHkgdGFrZW4gZnJvbSB0aGUgUlQgcGF0Y2ggYnk6CisgKiAgICBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8gPGFjbWVAcmVkaGF0LmNvbT4KKyAqCisgKiBCYXNlZCBvbiBjb2RlIGZyb20gdGhlIGxhdGVuY3lfdHJhY2VyLCB0aGF0IGlzOgorICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA2IEluZ28gTW9sbmFyCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0IFdpbGxpYW0gTGVlIElyd2luIElJSQorICovCisjaW5jbHVkZSA8bGludXgvdXRzcmVsZWFzZS5oPgorI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgorI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9nZnAuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KKyNpbmNsdWRlIDxsaW51eC93cml0ZWJhY2suaD4KKworI2luY2x1ZGUgPGxpbnV4L3N0YWNrdHJhY2UuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3Vuc2lnbmVkIGxvbmcgX19yZWFkX21vc3RseQl0cmFjaW5nX21heF9sYXRlbmN5ID0gKGN5Y2xlX3QpVUxPTkdfTUFYOwordW5zaWduZWQgbG9uZyBfX3JlYWRfbW9zdGx5CXRyYWNpbmdfdGhyZXNoOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3JlYWRfbW9zdGx5CXRyYWNpbmdfbnJfYnVmZmVyczsKK3N0YXRpYyBjcHVtYXNrX3QgX19yZWFkX21vc3RseQkJdHJhY2luZ19idWZmZXJfbWFzazsKKworI2RlZmluZSBmb3JfZWFjaF90cmFjaW5nX2NwdShjcHUpCVwKKwlmb3JfZWFjaF9jcHVfbWFzayhjcHUsIHRyYWNpbmdfYnVmZmVyX21hc2spCisKK3N0YXRpYyBpbnQgdHJhY2VfYWxsb2NfcGFnZSh2b2lkKTsKK3N0YXRpYyBpbnQgdHJhY2VfZnJlZV9wYWdlKHZvaWQpOworCitzdGF0aWMgaW50IHRyYWNpbmdfZGlzYWJsZWQgPSAxOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyB0cmFjaW5nX3BhZ2VzX2FsbG9jYXRlZDsKKworbG9uZworbnMydXNlY3MoY3ljbGVfdCBuc2VjKQoreworCW5zZWMgKz0gNTAwOworCWRvX2Rpdihuc2VjLCAxMDAwKTsKKwlyZXR1cm4gbnNlYzsKK30KKworY3ljbGVfdCBmdHJhY2Vfbm93KGludCBjcHUpCit7CisJcmV0dXJuIGNwdV9jbG9jayhjcHUpOworfQorCisvKgorICogVGhlIGdsb2JhbF90cmFjZSBpcyB0aGUgZGVzY3JpcHRvciB0aGF0IGhvbGRzIHRoZSB0cmFjaW5nCisgKiBidWZmZXJzIGZvciB0aGUgbGl2ZSB0cmFjaW5nLiBGb3IgZWFjaCBDUFUsIGl0IGNvbnRhaW5zCisgKiBhIGxpbmsgbGlzdCBvZiBwYWdlcyB0aGF0IHdpbGwgc3RvcmUgdHJhY2UgZW50cmllcy4gVGhlCisgKiBwYWdlIGRlc2NyaXB0b3Igb2YgdGhlIHBhZ2VzIGluIHRoZSBtZW1vcnkgaXMgdXNlZCB0byBob2xkCisgKiB0aGUgbGluayBsaXN0IGJ5IGxpbmtpbmcgdGhlIGxydSBpdGVtIGluIHRoZSBwYWdlIGRlc2NyaXB0b3IKKyAqIHRvIGVhY2ggb2YgdGhlIHBhZ2VzIGluIHRoZSBidWZmZXIgcGVyIENQVS4KKyAqCisgKiBGb3IgZWFjaCBhY3RpdmUgQ1BVIHRoZXJlIGlzIGEgZGF0YSBmaWVsZCB0aGF0IGhvbGRzIHRoZQorICogcGFnZXMgZm9yIHRoZSBidWZmZXIgZm9yIHRoYXQgQ1BVLiBFYWNoIENQVSBoYXMgdGhlIHNhbWUgbnVtYmVyCisgKiBvZiBwYWdlcyBhbGxvY2F0ZWQgZm9yIGl0cyBidWZmZXIuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkJZ2xvYmFsX3RyYWNlOworCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRyYWNlX2FycmF5X2NwdSwgZ2xvYmFsX3RyYWNlX2NwdSk7CisKKy8qCisgKiBUaGUgbWF4X3RyIGlzIHVzZWQgdG8gc25hcHNob3QgdGhlIGdsb2JhbF90cmFjZSB3aGVuIGEgbWF4aW11bQorICogbGF0ZW5jeSBpcyByZWFjaGVkLiBTb21lIHRyYWNlcnMgd2lsbCB1c2UgdGhpcyB0byBzdG9yZSBhIG1heGltdW0KKyAqIHRyYWNlIHdoaWxlIGl0IGNvbnRpbnVlcyBleGFtaW5pbmcgbGl2ZSB0cmFjZXMuCisgKgorICogVGhlIGJ1ZmZlcnMgZm9yIHRoZSBtYXhfdHIgYXJlIHNldCB1cCB0aGUgc2FtZSBhcyB0aGUgZ2xvYmFsX3RyYWNlLgorICogV2hlbiBhIHNuYXBzaG90IGlzIHRha2VuLCB0aGUgbGluayBsaXN0IG9mIHRoZSBtYXhfdHIgaXMgc3dhcHBlZAorICogd2l0aCB0aGUgbGluayBsaXN0IG9mIHRoZSBnbG9iYWxfdHJhY2UgYW5kIHRoZSBidWZmZXJzIGFyZSByZXNldCBmb3IKKyAqIHRoZSBnbG9iYWxfdHJhY2Ugc28gdGhlIHRyYWNpbmcgY2FuIGNvbnRpbnVlLgorICovCitzdGF0aWMgc3RydWN0IHRyYWNlX2FycmF5CW1heF90cjsKKworc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUsIG1heF9kYXRhKTsKKworLyogdHJhY2VyX2VuYWJsZWQgaXMgdXNlZCB0byB0b2dnbGUgYWN0aXZhdGlvbiBvZiBhIHRyYWNlciAqLworc3RhdGljIGludAkJCXRyYWNlcl9lbmFibGVkID0gMTsKKworLyogZnVuY3Rpb24gdHJhY2luZyBlbmFibGVkICovCitpbnQJCQkJZnRyYWNlX2Z1bmN0aW9uX2VuYWJsZWQ7CisKKy8qCisgKiB0cmFjZV9ucl9lbnRyaWVzIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyB0aGF0IGlzIGFsbG9jYXRlZAorICogZm9yIGEgYnVmZmVyLiBOb3RlLCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaXMgYWx3YXlzIHJvdW5kZWQKKyAqIHRvIEVOVFJJRVNfUEVSX1BBR0UuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nCQl0cmFjZV9ucl9lbnRyaWVzID0gNjU1MzZVTDsKKworLyogdHJhY2VfdHlwZXMgaG9sZHMgYSBsaW5rIGxpc3Qgb2YgYXZhaWxhYmxlIHRyYWNlcnMuICovCitzdGF0aWMgc3RydWN0IHRyYWNlcgkJKnRyYWNlX3R5cGVzIF9fcmVhZF9tb3N0bHk7CisKKy8qIGN1cnJlbnRfdHJhY2UgcG9pbnRzIHRvIHRoZSB0cmFjZXIgdGhhdCBpcyBjdXJyZW50bHkgYWN0aXZlICovCitzdGF0aWMgc3RydWN0IHRyYWNlcgkJKmN1cnJlbnRfdHJhY2UgX19yZWFkX21vc3RseTsKKworLyoKKyAqIG1heF90cmFjZXJfdHlwZV9sZW4gaXMgdXNlZCB0byBzaW1wbGlmeSB0aGUgYWxsb2NhdGluZyBvZgorICogYnVmZmVycyB0byByZWFkIHVzZXJzcGFjZSB0cmFjZXIgbmFtZXMuIFdlIGtlZXAgdHJhY2sgb2YKKyAqIHRoZSBsb25nZXN0IHRyYWNlciBuYW1lIHJlZ2lzdGVyZWQuCisgKi8KK3N0YXRpYyBpbnQJCQltYXhfdHJhY2VyX3R5cGVfbGVuOworCisvKgorICogdHJhY2VfdHlwZXNfbG9jayBpcyB1c2VkIHRvIHByb3RlY3QgdGhlIHRyYWNlX3R5cGVzIGxpc3QuCisgKiBUaGlzIGxvY2sgaXMgYWxzbyB1c2VkIHRvIGtlZXAgdXNlciBhY2Nlc3Mgc2VyaWFsaXplZC4KKyAqIEFjY2Vzc2VzIGZyb20gdXNlcnNwYWNlIHdpbGwgZ3JhYiB0aGlzIGxvY2sgd2hpbGUgdXNlcnNwYWNlCisgKiBhY3Rpdml0aWVzIGhhcHBlbiBpbnNpZGUgdGhlIGtlcm5lbC4KKyAqLworc3RhdGljIERFRklORV9NVVRFWCh0cmFjZV90eXBlc19sb2NrKTsKKworLyogdHJhY2Vfd2FpdCBpcyBhIHdhaXRxdWV1ZSBmb3IgdGFza3MgYmxvY2tlZCBvbiB0cmFjZV9wb2xsICovCitzdGF0aWMgREVDTEFSRV9XQUlUX1FVRVVFX0hFQUQodHJhY2Vfd2FpdCk7CisKKy8qIHRyYWNlX2ZsYWdzIGhvbGRzIGl0ZXJfY3RybCBvcHRpb25zICovCit1bnNpZ25lZCBsb25nIHRyYWNlX2ZsYWdzID0gVFJBQ0VfSVRFUl9QUklOVF9QQVJFTlQ7CisKK3N0YXRpYyBub3RyYWNlIHZvaWQgbm9fdHJhY2VfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCBjcHU7CisKKwlmdHJhY2VfZnVuY3Rpb25fZW5hYmxlZCA9IDA7CisJaWYodHItPmN0cmwpCisJCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQorCQkJdHJhY2luZ19yZXNldCh0ci0+ZGF0YVtjcHVdKTsKKwl0cmFjZXJfZW5hYmxlZCA9IDA7Cit9CisKKy8qIGR1bW15IHRyYWNlIHRvIGRpc2FibGUgdHJhY2luZyAqLworc3RhdGljIHN0cnVjdCB0cmFjZXIgbm9fdHJhY2VyIF9fcmVhZF9tb3N0bHkgPSB7CisJLm5hbWUJCT0gIm5vbmUiLAorCS5pbml0CQk9IG5vX3RyYWNlX2luaXQKK307CisKKworLyoqCisgKiB0cmFjZV93YWtlX3VwIC0gd2FrZSB1cCB0YXNrcyB3YWl0aW5nIGZvciB0cmFjZSBpbnB1dAorICoKKyAqIFNpbXBseSB3YWtlcyB1cCBhbnkgdGFzayB0aGF0IGlzIGJsb2NrZWQgb24gdGhlIHRyYWNlX3dhaXQKKyAqIHF1ZXVlLiBUaGVzZSBpcyB1c2VkIHdpdGggdHJhY2VfcG9sbCBmb3IgdGFza3MgcG9sbGluZyB0aGUgdHJhY2UuCisgKi8KK3ZvaWQgdHJhY2Vfd2FrZV91cCh2b2lkKQoreworCS8qCisJICogVGhlIHJ1bnF1ZXVlX2lzX2xvY2tlZCgpIGNhbiBmYWlsLCBidXQgdGhpcyBpcyB0aGUgYmVzdCB3ZQorCSAqIGhhdmUgZm9yIG5vdzoKKwkgKi8KKwlpZiAoISh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfQkxPQ0spICYmICFydW5xdWV1ZV9pc19sb2NrZWQoKSkKKwkJd2FrZV91cCgmdHJhY2Vfd2FpdCk7Cit9CisKKyNkZWZpbmUgRU5UUklFU19QRVJfUEFHRSAoUEFHRV9TSVpFIC8gc2l6ZW9mKHN0cnVjdCB0cmFjZV9lbnRyeSkpCisKK3N0YXRpYyBpbnQgX19pbml0IHNldF9ucl9lbnRyaWVzKGNoYXIgKnN0cikKK3sKKwl1bnNpZ25lZCBsb25nIG5yX2VudHJpZXM7CisJaW50IHJldDsKKworCWlmICghc3RyKQorCQlyZXR1cm4gMDsKKwlyZXQgPSBzdHJpY3Rfc3RydG91bChzdHIsIDAsICZucl9lbnRyaWVzKTsKKwkvKiBucl9lbnRyaWVzIGNhbiBub3QgYmUgemVybyAqLworCWlmIChyZXQgPCAwIHx8IG5yX2VudHJpZXMgPT0gMCkKKwkJcmV0dXJuIDA7CisJdHJhY2VfbnJfZW50cmllcyA9IG5yX2VudHJpZXM7CisJcmV0dXJuIDE7Cit9CitfX3NldHVwKCJ0cmFjZV9lbnRyaWVzPSIsIHNldF9ucl9lbnRyaWVzKTsKKwordW5zaWduZWQgbG9uZyBuc2Vjc190b191c2Vjcyh1bnNpZ25lZCBsb25nIG5zZWNzKQoreworCXJldHVybiBuc2VjcyAvIDEwMDA7Cit9CisKKy8qCisgKiB0cmFjZV9mbGFnX3R5cGUgaXMgYW4gZW51bWVyYXRpb24gdGhhdCBob2xkcyBkaWZmZXJlbnQKKyAqIHN0YXRlcyB3aGVuIGEgdHJhY2Ugb2NjdXJzLiBUaGVzZSBhcmU6CisgKiAgSVJRU19PRkYJLSBpbnRlcnJ1cHRzIHdlcmUgZGlzYWJsZWQKKyAqICBORUVEX1JFU0NFRCAtIHJlc2NoZWR1bGUgaXMgcmVxdWVzdGVkCisgKiAgSEFSRElSUQktIGluc2lkZSBhbiBpbnRlcnJ1cHQgaGFuZGxlcgorICogIFNPRlRJUlEJLSBpbnNpZGUgYSBzb2Z0aXJxIGhhbmRsZXIKKyAqLworZW51bSB0cmFjZV9mbGFnX3R5cGUgeworCVRSQUNFX0ZMQUdfSVJRU19PRkYJCT0gMHgwMSwKKwlUUkFDRV9GTEFHX05FRURfUkVTQ0hFRAkJPSAweDAyLAorCVRSQUNFX0ZMQUdfSEFSRElSUQkJPSAweDA0LAorCVRSQUNFX0ZMQUdfU09GVElSUQkJPSAweDA4LAorfTsKKworLyoKKyAqIFRSQUNFX0lURVJfU1lNX01BU0sgbWFza3MgdGhlIG9wdGlvbnMgaW4gdHJhY2VfZmxhZ3MgdGhhdAorICogY29udHJvbCB0aGUgb3V0cHV0IG9mIGtlcm5lbCBzeW1ib2xzLgorICovCisjZGVmaW5lIFRSQUNFX0lURVJfU1lNX01BU0sgXAorCShUUkFDRV9JVEVSX1BSSU5UX1BBUkVOVHxUUkFDRV9JVEVSX1NZTV9PRkZTRVR8VFJBQ0VfSVRFUl9TWU1fQUREUikKKworLyogVGhlc2UgbXVzdCBtYXRjaCB0aGUgYml0IHBvc3Rpb25zIGluIHRyYWNlX2l0ZXJhdG9yX2ZsYWdzICovCitzdGF0aWMgY29uc3QgY2hhciAqdHJhY2Vfb3B0aW9uc1tdID0geworCSJwcmludC1wYXJlbnQiLAorCSJzeW0tb2Zmc2V0IiwKKwkic3ltLWFkZHIiLAorCSJ2ZXJib3NlIiwKKwkicmF3IiwKKwkiaGV4IiwKKwkiYmluIiwKKwkiYmxvY2siLAorCSJzdGFja3RyYWNlIiwKKwkic2NoZWQtdHJlZSIsCisJTlVMTAorfTsKKworLyoKKyAqIGZ0cmFjZV9tYXhfbG9jayBpcyB1c2VkIHRvIHByb3RlY3QgdGhlIHN3YXBwaW5nIG9mIGJ1ZmZlcnMKKyAqIHdoZW4gdGFraW5nIGEgbWF4IHNuYXBzaG90LiBUaGUgYnVmZmVycyB0aGVtc2VsdmVzIGFyZQorICogcHJvdGVjdGVkIGJ5IHBlcl9jcHUgc3BpbmxvY2tzLiBCdXQgdGhlIGFjdGlvbiBvZiB0aGUgc3dhcAorICogbmVlZHMgaXRzIG93biBsb2NrLgorICoKKyAqIFRoaXMgaXMgZGVmaW5lZCBhcyBhIHJhd19zcGlubG9ja190IGluIG9yZGVyIHRvIGhlbHAKKyAqIHdpdGggcGVyZm9ybWFuY2Ugd2hlbiBsb2NrZGVwIGRlYnVnZ2luZyBpcyBlbmFibGVkLgorICovCitzdGF0aWMgcmF3X3NwaW5sb2NrX3QgZnRyYWNlX21heF9sb2NrID0KKwkocmF3X3NwaW5sb2NrX3QpX19SQVdfU1BJTl9MT0NLX1VOTE9DS0VEOworCisvKgorICogQ29weSB0aGUgbmV3IG1heGltdW0gdHJhY2UgaW50byB0aGUgc2VwYXJhdGUgbWF4aW11bS10cmFjZQorICogc3RydWN0dXJlLiAodGhpcyB3YXkgdGhlIG1heGltdW0gdHJhY2UgaXMgcGVybWFuZW50bHkgc2F2ZWQsCisgKiBmb3IgbGF0ZXIgcmV0cmlldmFsIHZpYSAvZGVidWdmcy90cmFjaW5nL2xhdGVuY3lfdHJhY2UpCisgKi8KK3N0YXRpYyB2b2lkCitfX3VwZGF0ZV9tYXhfdHIoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBjcHUpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IHRyLT5kYXRhW2NwdV07CisKKwltYXhfdHIuY3B1ID0gY3B1OworCW1heF90ci50aW1lX3N0YXJ0ID0gZGF0YS0+cHJlZW1wdF90aW1lc3RhbXA7CisKKwlkYXRhID0gbWF4X3RyLmRhdGFbY3B1XTsKKwlkYXRhLT5zYXZlZF9sYXRlbmN5ID0gdHJhY2luZ19tYXhfbGF0ZW5jeTsKKworCW1lbWNweShkYXRhLT5jb21tLCB0c2stPmNvbW0sIFRBU0tfQ09NTV9MRU4pOworCWRhdGEtPnBpZCA9IHRzay0+cGlkOworCWRhdGEtPnVpZCA9IHRzay0+dWlkOworCWRhdGEtPm5pY2UgPSB0c2stPnN0YXRpY19wcmlvIC0gMjAgLSBNQVhfUlRfUFJJTzsKKwlkYXRhLT5wb2xpY3kgPSB0c2stPnBvbGljeTsKKwlkYXRhLT5ydF9wcmlvcml0eSA9IHRzay0+cnRfcHJpb3JpdHk7CisKKwkvKiByZWNvcmQgdGhpcyB0YXNrcyBjb21tICovCisJdHJhY2luZ19yZWNvcmRfY21kbGluZShjdXJyZW50KTsKK30KKworI2RlZmluZSBDSEVDS19DT05EKGNvbmQpCQkJXAorCWlmICh1bmxpa2VseShjb25kKSkgewkJCVwKKwkJdHJhY2luZ19kaXNhYmxlZCA9IDE7CQlcCisJCVdBUk5fT04oMSk7CQkJXAorCQlyZXR1cm4gLTE7CQkJXAorCX0KKworLyoqCisgKiBjaGVja19wYWdlcyAtIGludGVncml0eSBjaGVjayBvZiB0cmFjZSBidWZmZXJzCisgKgorICogQXMgYSBzYWZ0eSBtZWFzdXJlIHdlIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgZGF0YSBwYWdlcyBoYXZlIG5vdAorICogYmVlbiBjb3JydXB0ZWQuCisgKi8KK2ludCBjaGVja19wYWdlcyhzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCXN0cnVjdCBwYWdlICpwYWdlLCAqdG1wOworCisJQ0hFQ0tfQ09ORChkYXRhLT50cmFjZV9wYWdlcy5uZXh0LT5wcmV2ICE9ICZkYXRhLT50cmFjZV9wYWdlcyk7CisJQ0hFQ0tfQ09ORChkYXRhLT50cmFjZV9wYWdlcy5wcmV2LT5uZXh0ICE9ICZkYXRhLT50cmFjZV9wYWdlcyk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGFnZSwgdG1wLCAmZGF0YS0+dHJhY2VfcGFnZXMsIGxydSkgeworCQlDSEVDS19DT05EKHBhZ2UtPmxydS5uZXh0LT5wcmV2ICE9ICZwYWdlLT5scnUpOworCQlDSEVDS19DT05EKHBhZ2UtPmxydS5wcmV2LT5uZXh0ICE9ICZwYWdlLT5scnUpOworCX0KKworCXJldHVybiAwOworfQorCisvKioKKyAqIGhlYWRfcGFnZSAtIHBhZ2UgYWRkcmVzcyBvZiB0aGUgZmlyc3QgcGFnZSBpbiBwZXJfY3B1IGJ1ZmZlci4KKyAqCisgKiBoZWFkX3BhZ2UgcmV0dXJucyB0aGUgcGFnZSBhZGRyZXNzIG9mIHRoZSBmaXJzdCBwYWdlIGluCisgKiBhIHBlcl9jcHUgYnVmZmVyLiBUaGlzIGFsc28gcHJlZm9ybXMgdmFyaW91cyBjb25zaXN0ZW5jeQorICogY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGUgYnVmZmVyIGhhcyBub3QgYmVlbiBjb3JydXB0ZWQuCisgKi8KK3ZvaWQgKmhlYWRfcGFnZShzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCXN0cnVjdCBwYWdlICpwYWdlOworCisJaWYgKGxpc3RfZW1wdHkoJmRhdGEtPnRyYWNlX3BhZ2VzKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlwYWdlID0gbGlzdF9lbnRyeShkYXRhLT50cmFjZV9wYWdlcy5uZXh0LCBzdHJ1Y3QgcGFnZSwgbHJ1KTsKKwlCVUdfT04oJnBhZ2UtPmxydSA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpOworCisJcmV0dXJuIHBhZ2VfYWRkcmVzcyhwYWdlKTsKK30KKworLyoqCisgKiB0cmFjZV9zZXFfcHJpbnRmIC0gc2VxdWVuY2UgcHJpbnRpbmcgb2YgdHJhY2UgaW5mb3JtYXRpb24KKyAqIEBzOiB0cmFjZSBzZXF1ZW5jZSBkZXNjcmlwdG9yCisgKiBAZm10OiBwcmludGYgZm9ybWF0IHN0cmluZworICoKKyAqIFRoZSB0cmFjZXIgbWF5IHVzZSBlaXRoZXIgc2VxdWVuY2Ugb3BlcmF0aW9ucyBvciBpdHMgb3duCisgKiBjb3B5IHRvIHVzZXIgcm91dGluZXMuIFRvIHNpbXBsaWZ5IGZvcm1hdGluZyBvZiBhIHRyYWNlCisgKiB0cmFjZV9zZXFfcHJpbnRmIGlzIHVzZWQgdG8gc3RvcmUgc3RyaW5ncyBpbnRvIGEgc3BlY2lhbAorICogYnVmZmVyIChAcykuIFRoZW4gdGhlIG91dHB1dCBtYXkgYmUgZWl0aGVyIHVzZWQgYnkKKyAqIHRoZSBzZXF1ZW5jZXIgb3IgcHVsbGVkIGludG8gYW5vdGhlciBidWZmZXIuCisgKi8KK2ludAordHJhY2Vfc2VxX3ByaW50ZihzdHJ1Y3QgdHJhY2Vfc2VxICpzLCBjb25zdCBjaGFyICpmbXQsIC4uLikKK3sKKwlpbnQgbGVuID0gKFBBR0VfU0laRSAtIDEpIC0gcy0+bGVuOworCXZhX2xpc3QgYXA7CisJaW50IHJldDsKKworCWlmICghbGVuKQorCQlyZXR1cm4gMDsKKworCXZhX3N0YXJ0KGFwLCBmbXQpOworCXJldCA9IHZzbnByaW50ZihzLT5idWZmZXIgKyBzLT5sZW4sIGxlbiwgZm10LCBhcCk7CisJdmFfZW5kKGFwKTsKKworCS8qIElmIHdlIGNhbid0IHdyaXRlIGl0IGFsbCwgZG9uJ3QgYm90aGVyIHdyaXRpbmcgYW55dGhpbmcgKi8KKwlpZiAocmV0ID49IGxlbikKKwkJcmV0dXJuIDA7CisKKwlzLT5sZW4gKz0gcmV0OworCisJcmV0dXJuIGxlbjsKK30KKworLyoqCisgKiB0cmFjZV9zZXFfcHV0cyAtIHRyYWNlIHNlcXVlbmNlIHByaW50aW5nIG9mIHNpbXBsZSBzdHJpbmcKKyAqIEBzOiB0cmFjZSBzZXF1ZW5jZSBkZXNjcmlwdG9yCisgKiBAc3RyOiBzaW1wbGUgc3RyaW5nIHRvIHJlY29yZAorICoKKyAqIFRoZSB0cmFjZXIgbWF5IHVzZSBlaXRoZXIgdGhlIHNlcXVlbmNlIG9wZXJhdGlvbnMgb3IgaXRzIG93bgorICogY29weSB0byB1c2VyIHJvdXRpbmVzLiBUaGlzIGZ1bmN0aW9uIHJlY29yZHMgYSBzaW1wbGUgc3RyaW5nCisgKiBpbnRvIGEgc3BlY2lhbCBidWZmZXIgKEBzKSBmb3IgbGF0ZXIgcmV0cmlldmFsIGJ5IGEgc2VxdWVuY2VyCisgKiBvciBvdGhlciBtZWNoYW5pc20uCisgKi8KK3N0YXRpYyBpbnQKK3RyYWNlX3NlcV9wdXRzKHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNvbnN0IGNoYXIgKnN0cikKK3sKKwlpbnQgbGVuID0gc3RybGVuKHN0cik7CisKKwlpZiAobGVuID4gKChQQUdFX1NJWkUgLSAxKSAtIHMtPmxlbikpCisJCXJldHVybiAwOworCisJbWVtY3B5KHMtPmJ1ZmZlciArIHMtPmxlbiwgc3RyLCBsZW4pOworCXMtPmxlbiArPSBsZW47CisKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgaW50Cit0cmFjZV9zZXFfcHV0YyhzdHJ1Y3QgdHJhY2Vfc2VxICpzLCB1bnNpZ25lZCBjaGFyIGMpCit7CisJaWYgKHMtPmxlbiA+PSAoUEFHRV9TSVpFIC0gMSkpCisJCXJldHVybiAwOworCisJcy0+YnVmZmVyW3MtPmxlbisrXSA9IGM7CisKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludAordHJhY2Vfc2VxX3B1dG1lbShzdHJ1Y3QgdHJhY2Vfc2VxICpzLCB2b2lkICptZW0sIHNpemVfdCBsZW4pCit7CisJaWYgKGxlbiA+ICgoUEFHRV9TSVpFIC0gMSkgLSBzLT5sZW4pKQorCQlyZXR1cm4gMDsKKworCW1lbWNweShzLT5idWZmZXIgKyBzLT5sZW4sIG1lbSwgbGVuKTsKKwlzLT5sZW4gKz0gbGVuOworCisJcmV0dXJuIGxlbjsKK30KKworI2RlZmluZSBIRVhfQ0hBUlMgMTcKK3N0YXRpYyBjb25zdCBjaGFyIGhleDJhc2NbXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsKKworc3RhdGljIGludAordHJhY2Vfc2VxX3B1dG1lbV9oZXgoc3RydWN0IHRyYWNlX3NlcSAqcywgdm9pZCAqbWVtLCBzaXplX3QgbGVuKQoreworCXVuc2lnbmVkIGNoYXIgaGV4W0hFWF9DSEFSU107CisJdW5zaWduZWQgY2hhciAqZGF0YSA9IG1lbTsKKwl1bnNpZ25lZCBjaGFyIGJ5dGU7CisJaW50IGksIGo7CisKKwlCVUdfT04obGVuID49IEhFWF9DSEFSUyk7CisKKyNpZmRlZiBfX0JJR19FTkRJQU4KKwlmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGxlbjsgaSsrKSB7CisjZWxzZQorCWZvciAoaSA9IGxlbi0xLCBqID0gMDsgaSA+PSAwOyBpLS0pIHsKKyNlbmRpZgorCQlieXRlID0gZGF0YVtpXTsKKworCQloZXhbaisrXSA9IGhleDJhc2NbYnl0ZSAmIDB4MGZdOworCQloZXhbaisrXSA9IGhleDJhc2NbYnl0ZSA+PiA0XTsKKwl9CisJaGV4W2orK10gPSAnICc7CisKKwlyZXR1cm4gdHJhY2Vfc2VxX3B1dG1lbShzLCBoZXgsIGopOworfQorCitzdGF0aWMgdm9pZAordHJhY2Vfc2VxX3Jlc2V0KHN0cnVjdCB0cmFjZV9zZXEgKnMpCit7CisJcy0+bGVuID0gMDsKKwlzLT5yZWFkcG9zID0gMDsKK30KKworc3NpemVfdCB0cmFjZV9zZXFfdG9fdXNlcihzdHJ1Y3QgdHJhY2Vfc2VxICpzLCBjaGFyIF9fdXNlciAqdWJ1Ziwgc2l6ZV90IGNudCkKK3sKKwlpbnQgbGVuOworCWludCByZXQ7CisKKwlpZiAocy0+bGVuIDw9IHMtPnJlYWRwb3MpCisJCXJldHVybiAtRUJVU1k7CisKKwlsZW4gPSBzLT5sZW4gLSBzLT5yZWFkcG9zOworCWlmIChjbnQgPiBsZW4pCisJCWNudCA9IGxlbjsKKwlyZXQgPSBjb3B5X3RvX3VzZXIodWJ1Ziwgcy0+YnVmZmVyICsgcy0+cmVhZHBvcywgY250KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXMtPnJlYWRwb3MgKz0gbGVuOworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyB2b2lkCit0cmFjZV9wcmludF9zZXEoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgdHJhY2Vfc2VxICpzKQoreworCWludCBsZW4gPSBzLT5sZW4gPj0gUEFHRV9TSVpFID8gUEFHRV9TSVpFIC0gMSA6IHMtPmxlbjsKKworCXMtPmJ1ZmZlcltsZW5dID0gMDsKKwlzZXFfcHV0cyhtLCBzLT5idWZmZXIpOworCisJdHJhY2Vfc2VxX3Jlc2V0KHMpOworfQorCisvKgorICogZmxpcCB0aGUgdHJhY2UgYnVmZmVycyBiZXR3ZWVuIHR3byB0cmFjZSBkZXNjcmlwdG9ycy4KKyAqIFRoaXMgdXN1YWxseSBpcyB0aGUgYnVmZmVycyBiZXR3ZWVuIHRoZSBnbG9iYWxfdHJhY2UgYW5kCisgKiB0aGUgbWF4X3RyIHRvIHJlY29yZCBhIHNuYXBzaG90IG9mIGEgY3VycmVudCB0cmFjZS4KKyAqCisgKiBUaGUgZnRyYWNlX21heF9sb2NrIG11c3QgYmUgaGVsZC4KKyAqLworc3RhdGljIHZvaWQKK2ZsaXBfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqdHIxLCBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICp0cjIpCit7CisJc3RydWN0IGxpc3RfaGVhZCBmbGlwX3BhZ2VzOworCisJSU5JVF9MSVNUX0hFQUQoJmZsaXBfcGFnZXMpOworCisJbWVtY3B5KCZ0cjEtPnRyYWNlX2hlYWRfaWR4LCAmdHIyLT50cmFjZV9oZWFkX2lkeCwKKwkJc2l6ZW9mKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUpIC0KKwkJb2Zmc2V0b2Yoc3RydWN0IHRyYWNlX2FycmF5X2NwdSwgdHJhY2VfaGVhZF9pZHgpKTsKKworCWNoZWNrX3BhZ2VzKHRyMSk7CisJY2hlY2tfcGFnZXModHIyKTsKKwlsaXN0X3NwbGljZV9pbml0KCZ0cjEtPnRyYWNlX3BhZ2VzLCAmZmxpcF9wYWdlcyk7CisJbGlzdF9zcGxpY2VfaW5pdCgmdHIyLT50cmFjZV9wYWdlcywgJnRyMS0+dHJhY2VfcGFnZXMpOworCWxpc3Rfc3BsaWNlX2luaXQoJmZsaXBfcGFnZXMsICZ0cjItPnRyYWNlX3BhZ2VzKTsKKwlCVUdfT04oIWxpc3RfZW1wdHkoJmZsaXBfcGFnZXMpKTsKKwljaGVja19wYWdlcyh0cjEpOworCWNoZWNrX3BhZ2VzKHRyMik7Cit9CisKKy8qKgorICogdXBkYXRlX21heF90ciAtIHNuYXBzaG90IGFsbCB0cmFjZSBidWZmZXJzIGZyb20gZ2xvYmFsX3RyYWNlIHRvIG1heF90cgorICogQHRyOiB0cmFjZXIKKyAqIEB0c2s6IHRoZSB0YXNrIHdpdGggdGhlIGxhdGVuY3kKKyAqIEBjcHU6IFRoZSBjcHUgdGhhdCBpbml0aWF0ZWQgdGhlIHRyYWNlLgorICoKKyAqIEZsaXAgdGhlIGJ1ZmZlcnMgYmV0d2VlbiB0aGUgQHRyIGFuZCB0aGUgbWF4X3RyIGFuZCByZWNvcmQgaW5mb3JtYXRpb24KKyAqIGFib3V0IHdoaWNoIHRhc2sgd2FzIHRoZSBjYXVzZSBvZiB0aGlzIGxhdGVuY3kuCisgKi8KK3ZvaWQKK3VwZGF0ZV9tYXhfdHIoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBjcHUpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwlpbnQgaTsKKworCVdBUk5fT05fT05DRSghaXJxc19kaXNhYmxlZCgpKTsKKwlfX3Jhd19zcGluX2xvY2soJmZ0cmFjZV9tYXhfbG9jayk7CisJLyogY2xlYXIgb3V0IGFsbCB0aGUgcHJldmlvdXMgdHJhY2VzICovCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQlkYXRhID0gdHItPmRhdGFbaV07CisJCWZsaXBfdHJhY2UobWF4X3RyLmRhdGFbaV0sIGRhdGEpOworCQl0cmFjaW5nX3Jlc2V0KGRhdGEpOworCX0KKworCV9fdXBkYXRlX21heF90cih0ciwgdHNrLCBjcHUpOworCV9fcmF3X3NwaW5fdW5sb2NrKCZmdHJhY2VfbWF4X2xvY2spOworfQorCisvKioKKyAqIHVwZGF0ZV9tYXhfdHJfc2luZ2xlIC0gb25seSBjb3B5IG9uZSB0cmFjZSBvdmVyLCBhbmQgcmVzZXQgdGhlIHJlc3QKKyAqIEB0ciAtIHRyYWNlcgorICogQHRzayAtIHRhc2sgd2l0aCB0aGUgbGF0ZW5jeQorICogQGNwdSAtIHRoZSBjcHUgb2YgdGhlIGJ1ZmZlciB0byBjb3B5LgorICoKKyAqIEZsaXAgdGhlIHRyYWNlIG9mIGEgc2luZ2xlIENQVSBidWZmZXIgYmV0d2VlbiB0aGUgQHRyIGFuZCB0aGUgbWF4X3RyLgorICovCit2b2lkCit1cGRhdGVfbWF4X3RyX3NpbmdsZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNwdSkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhID0gdHItPmRhdGFbY3B1XTsKKwlpbnQgaTsKKworCVdBUk5fT05fT05DRSghaXJxc19kaXNhYmxlZCgpKTsKKwlfX3Jhd19zcGluX2xvY2soJmZ0cmFjZV9tYXhfbG9jayk7CisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkKKwkJdHJhY2luZ19yZXNldChtYXhfdHIuZGF0YVtpXSk7CisKKwlmbGlwX3RyYWNlKG1heF90ci5kYXRhW2NwdV0sIGRhdGEpOworCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisKKwlfX3VwZGF0ZV9tYXhfdHIodHIsIHRzaywgY3B1KTsKKwlfX3Jhd19zcGluX3VubG9jaygmZnRyYWNlX21heF9sb2NrKTsKK30KKworLyoqCisgKiByZWdpc3Rlcl90cmFjZXIgLSByZWdpc3RlciBhIHRyYWNlciB3aXRoIHRoZSBmdHJhY2Ugc3lzdGVtLgorICogQHR5cGUgLSB0aGUgcGx1Z2luIGZvciB0aGUgdHJhY2VyCisgKgorICogUmVnaXN0ZXIgYSBuZXcgcGx1Z2luIHRyYWNlci4KKyAqLworaW50IHJlZ2lzdGVyX3RyYWNlcihzdHJ1Y3QgdHJhY2VyICp0eXBlKQoreworCXN0cnVjdCB0cmFjZXIgKnQ7CisJaW50IGxlbjsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghdHlwZS0+bmFtZSkgeworCQlwcl9pbmZvKCJUcmFjZXIgbXVzdCBoYXZlIGEgbmFtZVxuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlmb3IgKHQgPSB0cmFjZV90eXBlczsgdDsgdCA9IHQtPm5leHQpIHsKKwkJaWYgKHN0cmNtcCh0eXBlLT5uYW1lLCB0LT5uYW1lKSA9PSAwKSB7CisJCQkvKiBhbHJlYWR5IGZvdW5kICovCisJCQlwcl9pbmZvKCJUcmFjZSAlcyBhbHJlYWR5IHJlZ2lzdGVyZWRcbiIsCisJCQkJdHlwZS0+bmFtZSk7CisJCQlyZXQgPSAtMTsKKwkJCWdvdG8gb3V0OworCQl9CisJfQorCisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TVEFSVFVQX1RFU1QKKwlpZiAodHlwZS0+c2VsZnRlc3QpIHsKKwkJc3RydWN0IHRyYWNlciAqc2F2ZWRfdHJhY2VyID0gY3VycmVudF90cmFjZTsKKwkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwkJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICZnbG9iYWxfdHJhY2U7CisJCWludCBzYXZlZF9jdHJsID0gdHItPmN0cmw7CisJCWludCBpOworCQkvKgorCQkgKiBSdW4gYSBzZWxmdGVzdCBvbiB0aGlzIHRyYWNlci4KKwkJICogSGVyZSB3ZSByZXNldCB0aGUgdHJhY2UgYnVmZmVyLCBhbmQgc2V0IHRoZSBjdXJyZW50CisJCSAqIHRyYWNlciB0byBiZSB0aGlzIHRyYWNlci4gVGhlIHRyYWNlciBjYW4gdGhlbiBydW4gc29tZQorCQkgKiBpbnRlcm5hbCB0cmFjaW5nIHRvIHZlcmlmeSB0aGF0IGV2ZXJ5dGhpbmcgaXMgaW4gb3JkZXIuCisJCSAqIElmIHdlIGZhaWwsIHdlIGRvIG5vdCByZWdpc3RlciB0aGlzIHRyYWNlci4KKwkJICovCisJCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGkpIHsKKwkJCWRhdGEgPSB0ci0+ZGF0YVtpXTsKKwkJCWlmICghaGVhZF9wYWdlKGRhdGEpKQorCQkJCWNvbnRpbnVlOworCQkJdHJhY2luZ19yZXNldChkYXRhKTsKKwkJfQorCQljdXJyZW50X3RyYWNlID0gdHlwZTsKKwkJdHItPmN0cmwgPSAwOworCQkvKiB0aGUgdGVzdCBpcyByZXNwb25zaWJsZSBmb3IgaW5pdGlhbGl6aW5nIGFuZCBlbmFibGluZyAqLworCQlwcl9pbmZvKCJUZXN0aW5nIHRyYWNlciAlczogIiwgdHlwZS0+bmFtZSk7CisJCXJldCA9IHR5cGUtPnNlbGZ0ZXN0KHR5cGUsIHRyKTsKKwkJLyogdGhlIHRlc3QgaXMgcmVzcG9uc2libGUgZm9yIHJlc2V0dGluZyB0b28gKi8KKwkJY3VycmVudF90cmFjZSA9IHNhdmVkX3RyYWNlcjsKKwkJdHItPmN0cmwgPSBzYXZlZF9jdHJsOworCQlpZiAocmV0KSB7CisJCQlwcmludGsoS0VSTl9DT05UICJGQUlMRUQhXG4iKTsKKwkJCWdvdG8gb3V0OworCQl9CisJCS8qIE9ubHkgcmVzZXQgb24gcGFzc2luZywgdG8gYXZvaWQgdG91Y2hpbmcgY29ycnVwdGVkIGJ1ZmZlcnMgKi8KKwkJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQkJZGF0YSA9IHRyLT5kYXRhW2ldOworCQkJaWYgKCFoZWFkX3BhZ2UoZGF0YSkpCisJCQkJY29udGludWU7CisJCQl0cmFjaW5nX3Jlc2V0KGRhdGEpOworCQl9CisJCXByaW50ayhLRVJOX0NPTlQgIlBBU1NFRFxuIik7CisJfQorI2VuZGlmCisKKwl0eXBlLT5uZXh0ID0gdHJhY2VfdHlwZXM7CisJdHJhY2VfdHlwZXMgPSB0eXBlOworCWxlbiA9IHN0cmxlbih0eXBlLT5uYW1lKTsKKwlpZiAobGVuID4gbWF4X3RyYWNlcl90eXBlX2xlbikKKwkJbWF4X3RyYWNlcl90eXBlX2xlbiA9IGxlbjsKKworIG91dDoKKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisJcmV0dXJuIHJldDsKK30KKwordm9pZCB1bnJlZ2lzdGVyX3RyYWNlcihzdHJ1Y3QgdHJhY2VyICp0eXBlKQoreworCXN0cnVjdCB0cmFjZXIgKip0OworCWludCBsZW47CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlmb3IgKHQgPSAmdHJhY2VfdHlwZXM7ICp0OyB0ID0gJigqdCktPm5leHQpIHsKKwkJaWYgKCp0ID09IHR5cGUpCisJCQlnb3RvIGZvdW5kOworCX0KKwlwcl9pbmZvKCJUcmFjZSAlcyBub3QgcmVnaXN0ZXJlZFxuIiwgdHlwZS0+bmFtZSk7CisJZ290byBvdXQ7CisKKyBmb3VuZDoKKwkqdCA9ICgqdCktPm5leHQ7CisJaWYgKHN0cmxlbih0eXBlLT5uYW1lKSAhPSBtYXhfdHJhY2VyX3R5cGVfbGVuKQorCQlnb3RvIG91dDsKKworCW1heF90cmFjZXJfdHlwZV9sZW4gPSAwOworCWZvciAodCA9ICZ0cmFjZV90eXBlczsgKnQ7IHQgPSAmKCp0KS0+bmV4dCkgeworCQlsZW4gPSBzdHJsZW4oKCp0KS0+bmFtZSk7CisJCWlmIChsZW4gPiBtYXhfdHJhY2VyX3R5cGVfbGVuKQorCQkJbWF4X3RyYWNlcl90eXBlX2xlbiA9IGxlbjsKKwl9Cisgb3V0OgorCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7Cit9CisKK3ZvaWQgdHJhY2luZ19yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCWRhdGEtPnRyYWNlX2lkeCA9IDA7CisJZGF0YS0+b3ZlcnJ1biA9IDA7CisJZGF0YS0+dHJhY2VfaGVhZCA9IGRhdGEtPnRyYWNlX3RhaWwgPSBoZWFkX3BhZ2UoZGF0YSk7CisJZGF0YS0+dHJhY2VfaGVhZF9pZHggPSAwOworCWRhdGEtPnRyYWNlX3RhaWxfaWR4ID0gMDsKK30KKworI2RlZmluZSBTQVZFRF9DTURMSU5FUyAxMjgKK3N0YXRpYyB1bnNpZ25lZCBtYXBfcGlkX3RvX2NtZGxpbmVbUElEX01BWF9ERUZBVUxUKzFdOworc3RhdGljIHVuc2lnbmVkIG1hcF9jbWRsaW5lX3RvX3BpZFtTQVZFRF9DTURMSU5FU107CitzdGF0aWMgY2hhciBzYXZlZF9jbWRsaW5lc1tTQVZFRF9DTURMSU5FU11bVEFTS19DT01NX0xFTl07CitzdGF0aWMgaW50IGNtZGxpbmVfaWR4Oworc3RhdGljIERFRklORV9TUElOTE9DSyh0cmFjZV9jbWRsaW5lX2xvY2spOworCisvKiB0ZW1wb3JhcnkgZGlzYWJsZSByZWNvcmRpbmcgKi8KK2F0b21pY190IHRyYWNlX3JlY29yZF9jbWRsaW5lX2Rpc2FibGVkIF9fcmVhZF9tb3N0bHk7CisKK3N0YXRpYyB2b2lkIHRyYWNlX2luaXRfY21kbGluZXModm9pZCkKK3sKKwltZW1zZXQoJm1hcF9waWRfdG9fY21kbGluZSwgLTEsIHNpemVvZihtYXBfcGlkX3RvX2NtZGxpbmUpKTsKKwltZW1zZXQoJm1hcF9jbWRsaW5lX3RvX3BpZCwgLTEsIHNpemVvZihtYXBfY21kbGluZV90b19waWQpKTsKKwljbWRsaW5lX2lkeCA9IDA7Cit9CisKK3ZvaWQgdHJhY2Vfc3RvcF9jbWRsaW5lX3JlY29yZGluZyh2b2lkKTsKKworc3RhdGljIHZvaWQgdHJhY2Vfc2F2ZV9jbWRsaW5lKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoreworCXVuc2lnbmVkIG1hcDsKKwl1bnNpZ25lZCBpZHg7CisKKwlpZiAoIXRzay0+cGlkIHx8IHVubGlrZWx5KHRzay0+cGlkID4gUElEX01BWF9ERUZBVUxUKSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBJdCdzIG5vdCB0aGUgZW5kIG9mIHRoZSB3b3JsZCBpZiB3ZSBkb24ndCBnZXQKKwkgKiB0aGUgbG9jaywgYnV0IHdlIGFsc28gZG9uJ3Qgd2FudCB0byBzcGluCisJICogbm9yIGRvIHdlIHdhbnQgdG8gZGlzYWJsZSBpbnRlcnJ1cHRzLAorCSAqIHNvIGlmIHdlIG1pc3MgaGVyZSwgdGhlbiBiZXR0ZXIgbHVjayBuZXh0IHRpbWUuCisJICovCisJaWYgKCFzcGluX3RyeWxvY2soJnRyYWNlX2NtZGxpbmVfbG9jaykpCisJCXJldHVybjsKKworCWlkeCA9IG1hcF9waWRfdG9fY21kbGluZVt0c2stPnBpZF07CisJaWYgKGlkeCA+PSBTQVZFRF9DTURMSU5FUykgeworCQlpZHggPSAoY21kbGluZV9pZHggKyAxKSAlIFNBVkVEX0NNRExJTkVTOworCisJCW1hcCA9IG1hcF9jbWRsaW5lX3RvX3BpZFtpZHhdOworCQlpZiAobWFwIDw9IFBJRF9NQVhfREVGQVVMVCkKKwkJCW1hcF9waWRfdG9fY21kbGluZVttYXBdID0gKHVuc2lnbmVkKS0xOworCisJCW1hcF9waWRfdG9fY21kbGluZVt0c2stPnBpZF0gPSBpZHg7CisKKwkJY21kbGluZV9pZHggPSBpZHg7CisJfQorCisJbWVtY3B5KCZzYXZlZF9jbWRsaW5lc1tpZHhdLCB0c2stPmNvbW0sIFRBU0tfQ09NTV9MRU4pOworCisJc3Bpbl91bmxvY2soJnRyYWNlX2NtZGxpbmVfbG9jayk7Cit9CisKK3N0YXRpYyBjaGFyICp0cmFjZV9maW5kX2NtZGxpbmUoaW50IHBpZCkKK3sKKwljaGFyICpjbWRsaW5lID0gIjwuLi4+IjsKKwl1bnNpZ25lZCBtYXA7CisKKwlpZiAoIXBpZCkKKwkJcmV0dXJuICI8aWRsZT4iOworCisJaWYgKHBpZCA+IFBJRF9NQVhfREVGQVVMVCkKKwkJZ290byBvdXQ7CisKKwltYXAgPSBtYXBfcGlkX3RvX2NtZGxpbmVbcGlkXTsKKwlpZiAobWFwID49IFNBVkVEX0NNRExJTkVTKQorCQlnb3RvIG91dDsKKworCWNtZGxpbmUgPSBzYXZlZF9jbWRsaW5lc1ttYXBdOworCisgb3V0OgorCXJldHVybiBjbWRsaW5lOworfQorCit2b2lkIHRyYWNpbmdfcmVjb3JkX2NtZGxpbmUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCit7CisJaWYgKGF0b21pY19yZWFkKCZ0cmFjZV9yZWNvcmRfY21kbGluZV9kaXNhYmxlZCkpCisJCXJldHVybjsKKworCXRyYWNlX3NhdmVfY21kbGluZSh0c2spOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBsaXN0X2hlYWQgKgordHJhY2VfbmV4dF9saXN0KHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQpCit7CisJLyoKKwkgKiBSb3VuZHJvYmluIC0gYnV0IHNraXAgdGhlIGhlYWQgKHdoaWNoIGlzIG5vdCBhIHJlYWwgcGFnZSk6CisJICovCisJbmV4dCA9IG5leHQtPm5leHQ7CisJaWYgKHVubGlrZWx5KG5leHQgPT0gJmRhdGEtPnRyYWNlX3BhZ2VzKSkKKwkJbmV4dCA9IG5leHQtPm5leHQ7CisJQlVHX09OKG5leHQgPT0gJmRhdGEtPnRyYWNlX3BhZ2VzKTsKKworCXJldHVybiBuZXh0OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgKgordHJhY2VfbmV4dF9wYWdlKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsIHZvaWQgKmFkZHIpCit7CisJc3RydWN0IGxpc3RfaGVhZCAqbmV4dDsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKworCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UoYWRkcik7CisKKwluZXh0ID0gdHJhY2VfbmV4dF9saXN0KGRhdGEsICZwYWdlLT5scnUpOworCXBhZ2UgPSBsaXN0X2VudHJ5KG5leHQsIHN0cnVjdCBwYWdlLCBscnUpOworCisJcmV0dXJuIHBhZ2VfYWRkcmVzcyhwYWdlKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgdHJhY2VfZW50cnkgKgordHJhY2luZ19nZXRfdHJhY2VfZW50cnkoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIGlkeCwgaWR4X25leHQ7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKworCWRhdGEtPnRyYWNlX2lkeCsrOworCWlkeCA9IGRhdGEtPnRyYWNlX2hlYWRfaWR4OworCWlkeF9uZXh0ID0gaWR4ICsgMTsKKworCUJVR19PTihpZHggKiBUUkFDRV9FTlRSWV9TSVpFID49IFBBR0VfU0laRSk7CisKKwllbnRyeSA9IGRhdGEtPnRyYWNlX2hlYWQgKyBpZHggKiBUUkFDRV9FTlRSWV9TSVpFOworCisJaWYgKHVubGlrZWx5KGlkeF9uZXh0ID49IEVOVFJJRVNfUEVSX1BBR0UpKSB7CisJCWRhdGEtPnRyYWNlX2hlYWQgPSB0cmFjZV9uZXh0X3BhZ2UoZGF0YSwgZGF0YS0+dHJhY2VfaGVhZCk7CisJCWlkeF9uZXh0ID0gMDsKKwl9CisKKwlpZiAoZGF0YS0+dHJhY2VfaGVhZCA9PSBkYXRhLT50cmFjZV90YWlsICYmCisJICAgIGlkeF9uZXh0ID09IGRhdGEtPnRyYWNlX3RhaWxfaWR4KSB7CisJCS8qIG92ZXJydW4gKi8KKwkJZGF0YS0+b3ZlcnJ1bisrOworCQlkYXRhLT50cmFjZV90YWlsX2lkeCsrOworCQlpZiAoZGF0YS0+dHJhY2VfdGFpbF9pZHggPj0gRU5UUklFU19QRVJfUEFHRSkgeworCQkJZGF0YS0+dHJhY2VfdGFpbCA9CisJCQkJdHJhY2VfbmV4dF9wYWdlKGRhdGEsIGRhdGEtPnRyYWNlX3RhaWwpOworCQkJZGF0YS0+dHJhY2VfdGFpbF9pZHggPSAwOworCQl9CisJfQorCisJZGF0YS0+dHJhY2VfaGVhZF9pZHggPSBpZHhfbmV4dDsKKworCXJldHVybiBlbnRyeTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCit0cmFjaW5nX2dlbmVyaWNfZW50cnlfdXBkYXRlKHN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnksIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OworCXVuc2lnbmVkIGxvbmcgcGM7CisKKwlwYyA9IHByZWVtcHRfY291bnQoKTsKKworCWVudHJ5LT5wcmVlbXB0X2NvdW50CT0gcGMgJiAweGZmOworCWVudHJ5LT5waWQJCT0gKHRzaykgPyB0c2stPnBpZCA6IDA7CisJZW50cnktPnQJCT0gZnRyYWNlX25vdyhyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwllbnRyeS0+ZmxhZ3MgPSAoaXJxc19kaXNhYmxlZF9mbGFncyhmbGFncykgPyBUUkFDRV9GTEFHX0lSUVNfT0ZGIDogMCkgfAorCQkoKHBjICYgSEFSRElSUV9NQVNLKSA/IFRSQUNFX0ZMQUdfSEFSRElSUSA6IDApIHwKKwkJKChwYyAmIFNPRlRJUlFfTUFTSykgPyBUUkFDRV9GTEFHX1NPRlRJUlEgOiAwKSB8CisJCShuZWVkX3Jlc2NoZWQoKSA/IFRSQUNFX0ZMQUdfTkVFRF9SRVNDSEVEIDogMCk7Cit9CisKK3ZvaWQKK3RyYWNlX2Z1bmN0aW9uKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJICAgICAgIHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwLCB1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CisKKwlyYXdfbG9jYWxfaXJxX3NhdmUoaXJxX2ZsYWdzKTsKKwlfX3Jhd19zcGluX2xvY2soJmRhdGEtPmxvY2spOworCWVudHJ5CQkJPSB0cmFjaW5nX2dldF90cmFjZV9lbnRyeSh0ciwgZGF0YSk7CisJdHJhY2luZ19nZW5lcmljX2VudHJ5X3VwZGF0ZShlbnRyeSwgZmxhZ3MpOworCWVudHJ5LT50eXBlCQk9IFRSQUNFX0ZOOworCWVudHJ5LT5mbi5pcAkJPSBpcDsKKwllbnRyeS0+Zm4ucGFyZW50X2lwCT0gcGFyZW50X2lwOworCV9fcmF3X3NwaW5fdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoaXJxX2ZsYWdzKTsKK30KKwordm9pZAorZnRyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisgICAgICAgdW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXAsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJaWYgKGxpa2VseSghYXRvbWljX3JlYWQoJmRhdGEtPmRpc2FibGVkKSkpCisJCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBpcCwgcGFyZW50X2lwLCBmbGFncyk7Cit9CisKKyNpZmRlZiBDT05GSUdfTU1JT1RSQUNFCit2b2lkIF9fdHJhY2VfbW1pb3RyYWNlX3J3KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkJCQlzdHJ1Y3QgbW1pb3RyYWNlX3J3ICpydykKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGlycV9mbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZkYXRhLT5sb2NrKTsKKworCWVudHJ5CQkJPSB0cmFjaW5nX2dldF90cmFjZV9lbnRyeSh0ciwgZGF0YSk7CisJdHJhY2luZ19nZW5lcmljX2VudHJ5X3VwZGF0ZShlbnRyeSwgMCk7CisJZW50cnktPnR5cGUJCT0gVFJBQ0VfTU1JT19SVzsKKwllbnRyeS0+bW1pb3J3CQk9ICpydzsKKworCV9fcmF3X3NwaW5fdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoaXJxX2ZsYWdzKTsKKworCXRyYWNlX3dha2VfdXAoKTsKK30KKwordm9pZCBfX3RyYWNlX21taW90cmFjZV9tYXAoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCQkJCXN0cnVjdCBtbWlvdHJhY2VfbWFwICptYXApCit7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKwl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKKworCXJhd19sb2NhbF9pcnFfc2F2ZShpcnFfZmxhZ3MpOworCV9fcmF3X3NwaW5fbG9jaygmZGF0YS0+bG9jayk7CisKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIDApOworCWVudHJ5LT50eXBlCQk9IFRSQUNFX01NSU9fTUFQOworCWVudHJ5LT5tbWlvbWFwCQk9ICptYXA7CisKKwlfX3Jhd19zcGluX3VubG9jaygmZGF0YS0+bG9jayk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGlycV9mbGFncyk7CisKKwl0cmFjZV93YWtlX3VwKCk7Cit9CisjZW5kaWYKKwordm9pZCBfX3RyYWNlX3N0YWNrKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCSAgIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCSAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCisJCSAgIGludCBza2lwKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJc3RydWN0IHN0YWNrX3RyYWNlIHRyYWNlOworCisJaWYgKCEodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX1NUQUNLVFJBQ0UpKQorCQlyZXR1cm47CisKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIGZsYWdzKTsKKwllbnRyeS0+dHlwZQkJPSBUUkFDRV9TVEFDSzsKKworCW1lbXNldCgmZW50cnktPnN0YWNrLCAwLCBzaXplb2YoZW50cnktPnN0YWNrKSk7CisKKwl0cmFjZS5ucl9lbnRyaWVzCT0gMDsKKwl0cmFjZS5tYXhfZW50cmllcwk9IEZUUkFDRV9TVEFDS19FTlRSSUVTOworCXRyYWNlLnNraXAJCT0gc2tpcDsKKwl0cmFjZS5lbnRyaWVzCQk9IGVudHJ5LT5zdGFjay5jYWxsZXI7CisKKwlzYXZlX3N0YWNrX3RyYWNlKCZ0cmFjZSk7Cit9CisKK3ZvaWQKK19fdHJhY2Vfc3BlY2lhbCh2b2lkICpfX3RyLCB2b2lkICpfX2RhdGEsCisJCXVuc2lnbmVkIGxvbmcgYXJnMSwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IF9fZGF0YTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gX190cjsKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGlycV9mbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZkYXRhLT5sb2NrKTsKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIDApOworCWVudHJ5LT50eXBlCQk9IFRSQUNFX1NQRUNJQUw7CisJZW50cnktPnNwZWNpYWwuYXJnMQk9IGFyZzE7CisJZW50cnktPnNwZWNpYWwuYXJnMgk9IGFyZzI7CisJZW50cnktPnNwZWNpYWwuYXJnMwk9IGFyZzM7CisJX190cmFjZV9zdGFjayh0ciwgZGF0YSwgaXJxX2ZsYWdzLCA0KTsKKwlfX3Jhd19zcGluX3VubG9jaygmZGF0YS0+bG9jayk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGlycV9mbGFncyk7CisKKwl0cmFjZV93YWtlX3VwKCk7Cit9CisKK3ZvaWQKK3RyYWNpbmdfc2NoZWRfc3dpdGNoX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkgICBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkJICAgc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LAorCQkJICAgc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0LAorCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGlycV9mbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZkYXRhLT5sb2NrKTsKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIGZsYWdzKTsKKwllbnRyeS0+dHlwZQkJPSBUUkFDRV9DVFg7CisJZW50cnktPmN0eC5wcmV2X3BpZAk9IHByZXYtPnBpZDsKKwllbnRyeS0+Y3R4LnByZXZfcHJpbwk9IHByZXYtPnByaW87CisJZW50cnktPmN0eC5wcmV2X3N0YXRlCT0gcHJldi0+c3RhdGU7CisJZW50cnktPmN0eC5uZXh0X3BpZAk9IG5leHQtPnBpZDsKKwllbnRyeS0+Y3R4Lm5leHRfcHJpbwk9IG5leHQtPnByaW87CisJZW50cnktPmN0eC5uZXh0X3N0YXRlCT0gbmV4dC0+c3RhdGU7CisJX190cmFjZV9zdGFjayh0ciwgZGF0YSwgZmxhZ3MsIDUpOworCV9fcmF3X3NwaW5fdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoaXJxX2ZsYWdzKTsKK30KKwordm9pZAordHJhY2luZ19zY2hlZF93YWtldXBfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJCSAgIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKndha2VlLAorCQkJICAgc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyLAorCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGlycV9mbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZkYXRhLT5sb2NrKTsKKwllbnRyeQkJCT0gdHJhY2luZ19nZXRfdHJhY2VfZW50cnkodHIsIGRhdGEpOworCXRyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoZW50cnksIGZsYWdzKTsKKwllbnRyeS0+dHlwZQkJPSBUUkFDRV9XQUtFOworCWVudHJ5LT5jdHgucHJldl9waWQJPSBjdXJyLT5waWQ7CisJZW50cnktPmN0eC5wcmV2X3ByaW8JPSBjdXJyLT5wcmlvOworCWVudHJ5LT5jdHgucHJldl9zdGF0ZQk9IGN1cnItPnN0YXRlOworCWVudHJ5LT5jdHgubmV4dF9waWQJPSB3YWtlZS0+cGlkOworCWVudHJ5LT5jdHgubmV4dF9wcmlvCT0gd2FrZWUtPnByaW87CisJZW50cnktPmN0eC5uZXh0X3N0YXRlCT0gd2FrZWUtPnN0YXRlOworCV9fdHJhY2Vfc3RhY2sodHIsIGRhdGEsIGZsYWdzLCA2KTsKKwlfX3Jhd19zcGluX3VubG9jaygmZGF0YS0+bG9jayk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGlycV9mbGFncyk7CisKKwl0cmFjZV93YWtlX3VwKCk7Cit9CisKK3ZvaWQKK2Z0cmFjZV9zcGVjaWFsKHVuc2lnbmVkIGxvbmcgYXJnMSwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICZnbG9iYWxfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgZGlzYWJsZWQ7CisJaW50IGNwdTsKKworCWlmICh0cmFjaW5nX2Rpc2FibGVkIHx8IGN1cnJlbnRfdHJhY2UgPT0gJm5vX3RyYWNlciB8fCAhdHItPmN0cmwpCisJCXJldHVybjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJmRhdGEtPmRpc2FibGVkKTsKKworCWlmIChsaWtlbHkoZGlzYWJsZWQgPT0gMSkpCisJCV9fdHJhY2Vfc3BlY2lhbCh0ciwgZGF0YSwgYXJnMSwgYXJnMiwgYXJnMyk7CisKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorc3RhdGljIHZvaWQKK2Z1bmN0aW9uX3RyYWNlX2NhbGwodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXApCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICZnbG9iYWxfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgZGlzYWJsZWQ7CisJaW50IGNwdTsKKworCWlmICh1bmxpa2VseSghZnRyYWNlX2Z1bmN0aW9uX2VuYWJsZWQpKQorCQlyZXR1cm47CisKKwlpZiAoc2tpcF90cmFjZShpcCkpCisJCXJldHVybjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJmRhdGEtPmRpc2FibGVkKTsKKworCWlmIChsaWtlbHkoZGlzYWJsZWQgPT0gMSkpCisJCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBpcCwgcGFyZW50X2lwLCBmbGFncyk7CisKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMgdHJhY2Vfb3BzIF9fcmVhZF9tb3N0bHkgPQoreworCS5mdW5jID0gZnVuY3Rpb25fdHJhY2VfY2FsbCwKK307CisKK3ZvaWQgdHJhY2luZ19zdGFydF9mdW5jdGlvbl90cmFjZSh2b2lkKQoreworCWZ0cmFjZV9mdW5jdGlvbl9lbmFibGVkID0gMDsKKwlyZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oJnRyYWNlX29wcyk7CisJaWYgKHRyYWNlcl9lbmFibGVkKQorCQlmdHJhY2VfZnVuY3Rpb25fZW5hYmxlZCA9IDE7Cit9CisKK3ZvaWQgdHJhY2luZ19zdG9wX2Z1bmN0aW9uX3RyYWNlKHZvaWQpCit7CisJZnRyYWNlX2Z1bmN0aW9uX2VuYWJsZWQgPSAwOworCXVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZ0cmFjZV9vcHMpOworfQorI2VuZGlmCisKK2VudW0gdHJhY2VfZmlsZV90eXBlIHsKKwlUUkFDRV9GSUxFX0xBVF9GTVQJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCB0cmFjZV9lbnRyeSAqCit0cmFjZV9lbnRyeV9pZHgoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLCBpbnQgY3B1KQoreworCXN0cnVjdCBwYWdlICpwYWdlOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqYXJyYXk7CisKKwlpZiAoaXRlci0+bmV4dF9pZHhbY3B1XSA+PSB0ci0+ZW50cmllcyB8fAorCSAgICBpdGVyLT5uZXh0X2lkeFtjcHVdID49IGRhdGEtPnRyYWNlX2lkeCB8fAorCSAgICAoZGF0YS0+dHJhY2VfaGVhZCA9PSBkYXRhLT50cmFjZV90YWlsICYmCisJICAgICBkYXRhLT50cmFjZV9oZWFkX2lkeCA9PSBkYXRhLT50cmFjZV90YWlsX2lkeCkpCisJCXJldHVybiBOVUxMOworCisJaWYgKCFpdGVyLT5uZXh0X3BhZ2VbY3B1XSkgeworCQkvKiBJbml0aWFsaXplIHRoZSBpdGVyYXRvciBmb3IgdGhpcyBjcHUgdHJhY2UgYnVmZmVyICovCisJCVdBUk5fT04oIWRhdGEtPnRyYWNlX3RhaWwpOworCQlwYWdlID0gdmlydF90b19wYWdlKGRhdGEtPnRyYWNlX3RhaWwpOworCQlpdGVyLT5uZXh0X3BhZ2VbY3B1XSA9ICZwYWdlLT5scnU7CisJCWl0ZXItPm5leHRfcGFnZV9pZHhbY3B1XSA9IGRhdGEtPnRyYWNlX3RhaWxfaWR4OworCX0KKworCXBhZ2UgPSBsaXN0X2VudHJ5KGl0ZXItPm5leHRfcGFnZVtjcHVdLCBzdHJ1Y3QgcGFnZSwgbHJ1KTsKKwlCVUdfT04oJmRhdGEtPnRyYWNlX3BhZ2VzID09ICZwYWdlLT5scnUpOworCisJYXJyYXkgPSBwYWdlX2FkZHJlc3MocGFnZSk7CisKKwlXQVJOX09OKGl0ZXItPm5leHRfcGFnZV9pZHhbY3B1XSA+PSBFTlRSSUVTX1BFUl9QQUdFKTsKKwlyZXR1cm4gJmFycmF5W2l0ZXItPm5leHRfcGFnZV9pZHhbY3B1XV07Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfZW50cnkgKgorZmluZF9uZXh0X2VudHJ5KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciwgaW50ICplbnRfY3B1KQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSBpdGVyLT50cjsKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudCwgKm5leHQgPSBOVUxMOworCWludCBuZXh0X2NwdSA9IC0xOworCWludCBjcHU7CisKKwlmb3JfZWFjaF90cmFjaW5nX2NwdShjcHUpIHsKKwkJaWYgKCFoZWFkX3BhZ2UodHItPmRhdGFbY3B1XSkpCisJCQljb250aW51ZTsKKwkJZW50ID0gdHJhY2VfZW50cnlfaWR4KHRyLCB0ci0+ZGF0YVtjcHVdLCBpdGVyLCBjcHUpOworCQkvKgorCQkgKiBQaWNrIHRoZSBlbnRyeSB3aXRoIHRoZSBzbWFsbGVzdCB0aW1lc3RhbXA6CisJCSAqLworCQlpZiAoZW50ICYmICghbmV4dCB8fCBlbnQtPnQgPCBuZXh0LT50KSkgeworCQkJbmV4dCA9IGVudDsKKwkJCW5leHRfY3B1ID0gY3B1OworCQl9CisJfQorCisJaWYgKGVudF9jcHUpCisJCSplbnRfY3B1ID0gbmV4dF9jcHU7CisKKwlyZXR1cm4gbmV4dDsKK30KKworc3RhdGljIHZvaWQgdHJhY2VfaXRlcmF0b3JfaW5jcmVtZW50KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlpdGVyLT5pZHgrKzsKKwlpdGVyLT5uZXh0X2lkeFtpdGVyLT5jcHVdKys7CisJaXRlci0+bmV4dF9wYWdlX2lkeFtpdGVyLT5jcHVdKys7CisKKwlpZiAoaXRlci0+bmV4dF9wYWdlX2lkeFtpdGVyLT5jcHVdID49IEVOVFJJRVNfUEVSX1BBR0UpIHsKKwkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IGl0ZXItPnRyLT5kYXRhW2l0ZXItPmNwdV07CisKKwkJaXRlci0+bmV4dF9wYWdlX2lkeFtpdGVyLT5jcHVdID0gMDsKKwkJaXRlci0+bmV4dF9wYWdlW2l0ZXItPmNwdV0gPQorCQkJdHJhY2VfbmV4dF9saXN0KGRhdGEsIGl0ZXItPm5leHRfcGFnZVtpdGVyLT5jcHVdKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHRyYWNlX2NvbnN1bWUoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEgPSBpdGVyLT50ci0+ZGF0YVtpdGVyLT5jcHVdOworCisJZGF0YS0+dHJhY2VfdGFpbF9pZHgrKzsKKwlpZiAoZGF0YS0+dHJhY2VfdGFpbF9pZHggPj0gRU5UUklFU19QRVJfUEFHRSkgeworCQlkYXRhLT50cmFjZV90YWlsID0gdHJhY2VfbmV4dF9wYWdlKGRhdGEsIGRhdGEtPnRyYWNlX3RhaWwpOworCQlkYXRhLT50cmFjZV90YWlsX2lkeCA9IDA7CisJfQorCisJLyogQ2hlY2sgaWYgd2UgZW1wdHkgaXQsIHRoZW4gcmVzZXQgdGhlIGluZGV4ICovCisJaWYgKGRhdGEtPnRyYWNlX2hlYWQgPT0gZGF0YS0+dHJhY2VfdGFpbCAmJgorCSAgICBkYXRhLT50cmFjZV9oZWFkX2lkeCA9PSBkYXRhLT50cmFjZV90YWlsX2lkeCkKKwkJZGF0YS0+dHJhY2VfaWR4ID0gMDsKK30KKworc3RhdGljIHZvaWQgKmZpbmRfbmV4dF9lbnRyeV9pbmMoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqbmV4dDsKKwlpbnQgbmV4dF9jcHUgPSAtMTsKKworCW5leHQgPSBmaW5kX25leHRfZW50cnkoaXRlciwgJm5leHRfY3B1KTsKKworCWl0ZXItPnByZXZfZW50ID0gaXRlci0+ZW50OworCWl0ZXItPnByZXZfY3B1ID0gaXRlci0+Y3B1OworCisJaXRlci0+ZW50ID0gbmV4dDsKKwlpdGVyLT5jcHUgPSBuZXh0X2NwdTsKKworCWlmIChuZXh0KQorCQl0cmFjZV9pdGVyYXRvcl9pbmNyZW1lbnQoaXRlcik7CisKKwlyZXR1cm4gbmV4dCA/IGl0ZXIgOiBOVUxMOworfQorCitzdGF0aWMgdm9pZCAqc19uZXh0KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdiwgbG9mZl90ICpwb3MpCit7CisJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyID0gbS0+cHJpdmF0ZTsKKwl2b2lkICpsYXN0X2VudCA9IGl0ZXItPmVudDsKKwlpbnQgaSA9IChpbnQpKnBvczsKKwl2b2lkICplbnQ7CisKKwkoKnBvcykrKzsKKworCS8qIGNhbid0IGdvIGJhY2t3YXJkcyAqLworCWlmIChpdGVyLT5pZHggPiBpKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChpdGVyLT5pZHggPCAwKQorCQllbnQgPSBmaW5kX25leHRfZW50cnlfaW5jKGl0ZXIpOworCWVsc2UKKwkJZW50ID0gaXRlcjsKKworCXdoaWxlIChlbnQgJiYgaXRlci0+aWR4IDwgaSkKKwkJZW50ID0gZmluZF9uZXh0X2VudHJ5X2luYyhpdGVyKTsKKworCWl0ZXItPnBvcyA9ICpwb3M7CisKKwlpZiAobGFzdF9lbnQgJiYgIWVudCkKKwkJc2VxX3B1dHMobSwgIlxuXG52aW06ZnQ9aGVscFxuIik7CisKKwlyZXR1cm4gZW50OworfQorCitzdGF0aWMgdm9pZCAqc19zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciA9IG0tPnByaXZhdGU7CisJdm9pZCAqcCA9IE5VTEw7CisJbG9mZl90IGwgPSAwOworCWludCBpOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisKKwlpZiAoIWN1cnJlbnRfdHJhY2UgfHwgY3VycmVudF90cmFjZSAhPSBpdGVyLT50cmFjZSkgeworCQltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlhdG9taWNfaW5jKCZ0cmFjZV9yZWNvcmRfY21kbGluZV9kaXNhYmxlZCk7CisKKwkvKiBsZXQgdGhlIHRyYWNlciBncmFiIGxvY2tzIGhlcmUgaWYgbmVlZGVkICovCisJaWYgKGN1cnJlbnRfdHJhY2UtPnN0YXJ0KQorCQljdXJyZW50X3RyYWNlLT5zdGFydChpdGVyKTsKKworCWlmICgqcG9zICE9IGl0ZXItPnBvcykgeworCQlpdGVyLT5lbnQgPSBOVUxMOworCQlpdGVyLT5jcHUgPSAwOworCQlpdGVyLT5pZHggPSAtMTsKKwkJaXRlci0+cHJldl9lbnQgPSBOVUxMOworCQlpdGVyLT5wcmV2X2NwdSA9IC0xOworCisJCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGkpIHsKKwkJCWl0ZXItPm5leHRfaWR4W2ldID0gMDsKKwkJCWl0ZXItPm5leHRfcGFnZVtpXSA9IE5VTEw7CisJCX0KKworCQlmb3IgKHAgPSBpdGVyOyBwICYmIGwgPCAqcG9zOyBwID0gc19uZXh0KG0sIHAsICZsKSkKKwkJCTsKKworCX0gZWxzZSB7CisJCWwgPSAqcG9zIC0gMTsKKwkJcCA9IHNfbmV4dChtLCBwLCAmbCk7CisJfQorCisJcmV0dXJuIHA7Cit9CisKK3N0YXRpYyB2b2lkIHNfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnApCit7CisJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyID0gbS0+cHJpdmF0ZTsKKworCWF0b21pY19kZWMoJnRyYWNlX3JlY29yZF9jbWRsaW5lX2Rpc2FibGVkKTsKKworCS8qIGxldCB0aGUgdHJhY2VyIHJlbGVhc2UgbG9ja3MgaGVyZSBpZiBuZWVkZWQgKi8KKwlpZiAoY3VycmVudF90cmFjZSAmJiBjdXJyZW50X3RyYWNlID09IGl0ZXItPnRyYWNlICYmIGl0ZXItPnRyYWNlLT5zdG9wKQorCQlpdGVyLT50cmFjZS0+c3RvcChpdGVyKTsKKworCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7Cit9CisKKyNkZWZpbmUgS1JFVFBST0JFX01TRyAiW3Vua25vd24va3JldHByb2JlJ2RdIgorCisjaWZkZWYgQ09ORklHX0tSRVRQUk9CRVMKK3N0YXRpYyBpbmxpbmUgaW50IGtyZXRwcm9iZWQodW5zaWduZWQgbG9uZyBhZGRyKQoreworCXJldHVybiBhZGRyID09ICh1bnNpZ25lZCBsb25nKWtyZXRwcm9iZV90cmFtcG9saW5lOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50IGtyZXRwcm9iZWQodW5zaWduZWQgbG9uZyBhZGRyKQoreworCXJldHVybiAwOworfQorI2VuZGlmIC8qIENPTkZJR19LUkVUUFJPQkVTICovCisKK3N0YXRpYyBpbnQKK3NlcV9wcmludF9zeW1fc2hvcnQoc3RydWN0IHRyYWNlX3NlcSAqcywgY29uc3QgY2hhciAqZm10LCB1bnNpZ25lZCBsb25nIGFkZHJlc3MpCit7CisjaWZkZWYgQ09ORklHX0tBTExTWU1TCisJY2hhciBzdHJbS1NZTV9TWU1CT0xfTEVOXTsKKworCWthbGxzeW1zX2xvb2t1cChhZGRyZXNzLCBOVUxMLCBOVUxMLCBOVUxMLCBzdHIpOworCisJcmV0dXJuIHRyYWNlX3NlcV9wcmludGYocywgZm10LCBzdHIpOworI2VuZGlmCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK3NlcV9wcmludF9zeW1fb2Zmc2V0KHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNvbnN0IGNoYXIgKmZtdCwKKwkJICAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpCit7CisjaWZkZWYgQ09ORklHX0tBTExTWU1TCisJY2hhciBzdHJbS1NZTV9TWU1CT0xfTEVOXTsKKworCXNwcmludF9zeW1ib2woc3RyLCBhZGRyZXNzKTsKKwlyZXR1cm4gdHJhY2Vfc2VxX3ByaW50ZihzLCBmbXQsIHN0cik7CisjZW5kaWYKKwlyZXR1cm4gMTsKK30KKworI2lmbmRlZiBDT05GSUdfNjRCSVQKKyMgZGVmaW5lIElQX0ZNVCAiJTA4bHgiCisjZWxzZQorIyBkZWZpbmUgSVBfRk1UICIlMDE2bHgiCisjZW5kaWYKKworc3RhdGljIGludAorc2VxX3ByaW50X2lwX3N5bShzdHJ1Y3QgdHJhY2Vfc2VxICpzLCB1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIHN5bV9mbGFncykKK3sKKwlpbnQgcmV0OworCisJaWYgKCFpcCkKKwkJcmV0dXJuIHRyYWNlX3NlcV9wcmludGYocywgIjAiKTsKKworCWlmIChzeW1fZmxhZ3MgJiBUUkFDRV9JVEVSX1NZTV9PRkZTRVQpCisJCXJldCA9IHNlcV9wcmludF9zeW1fb2Zmc2V0KHMsICIlcyIsIGlwKTsKKwllbHNlCisJCXJldCA9IHNlcV9wcmludF9zeW1fc2hvcnQocywgIiVzIiwgaXApOworCisJaWYgKCFyZXQpCisJCXJldHVybiAwOworCisJaWYgKHN5bV9mbGFncyAmIFRSQUNFX0lURVJfU1lNX0FERFIpCisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIiA8IiBJUF9GTVQgIj4iLCBpcCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgcHJpbnRfbGF0X2hlbHBfaGVhZGVyKHN0cnVjdCBzZXFfZmlsZSAqbSkKK3sKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIyAgICAgICAgICAgIFxuIik7CisJc2VxX3B1dHMobSwgIiMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmICAgICAgICBcbiIpOworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQgICAgXG4iKTsKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxIFxuIik7CisJc2VxX3B1dHMobSwgIiMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGggICBcbiIpOworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICAgICB8fHx8IC8gICAgICAgICAgICAgICAgICAgICAgXG4iKTsKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5ICAgICAgICAgICAgIFxuIik7CisJc2VxX3B1dHMobSwgIiMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIgICAgICBcbiIpOworCXNlcV9wdXRzKG0sICIjICAgICBcXCAgIC8gICAgfHx8fHwgICBcXCAgIHwgICAvICAgICAgICAgICBcbiIpOworfQorCitzdGF0aWMgdm9pZCBwcmludF9mdW5jX2hlbHBfaGVhZGVyKHN0cnVjdCBzZXFfZmlsZSAqbSkKK3sKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT05cbiIpOworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICAgICB8IHwgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8XG4iKTsKK30KKworCitzdGF0aWMgdm9pZAorcHJpbnRfdHJhY2VfaGVhZGVyKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXVuc2lnbmVkIGxvbmcgc3ltX2ZsYWdzID0gKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9TWU1fTUFTSyk7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGl0ZXItPnRyOworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEgPSB0ci0+ZGF0YVt0ci0+Y3B1XTsKKwlzdHJ1Y3QgdHJhY2VyICp0eXBlID0gY3VycmVudF90cmFjZTsKKwl1bnNpZ25lZCBsb25nIHRvdGFsICAgPSAwOworCXVuc2lnbmVkIGxvbmcgZW50cmllcyA9IDA7CisJaW50IGNwdTsKKwljb25zdCBjaGFyICpuYW1lID0gInByZWVtcHRpb24iOworCisJaWYgKHR5cGUpCisJCW5hbWUgPSB0eXBlLT5uYW1lOworCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoY3B1KSB7CisJCWlmIChoZWFkX3BhZ2UodHItPmRhdGFbY3B1XSkpIHsKKwkJCXRvdGFsICs9IHRyLT5kYXRhW2NwdV0tPnRyYWNlX2lkeDsKKwkJCWlmICh0ci0+ZGF0YVtjcHVdLT50cmFjZV9pZHggPiB0ci0+ZW50cmllcykKKwkJCQllbnRyaWVzICs9IHRyLT5lbnRyaWVzOworCQkJZWxzZQorCQkJCWVudHJpZXMgKz0gdHItPmRhdGFbY3B1XS0+dHJhY2VfaWR4OworCQl9CisJfQorCisJc2VxX3ByaW50ZihtLCAiJXMgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gJXNcbiIsCisJCSAgIG5hbWUsIFVUU19SRUxFQVNFKTsKKwlzZXFfcHV0cyhtLCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCisJCSAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKwlzZXFfcHJpbnRmKG0sICIgbGF0ZW5jeTogJWx1IHVzLCAjJWx1LyVsdSwgQ1BVIyVkIHwiCisJCSAgICIgKE06JXMgVlA6JWQsIEtQOiVkLCBTUDolZCBIUDolZCIsCisJCSAgIG5zZWNzX3RvX3VzZWNzKGRhdGEtPnNhdmVkX2xhdGVuY3kpLAorCQkgICBlbnRyaWVzLAorCQkgICB0b3RhbCwKKwkJICAgdHItPmNwdSwKKyNpZiBkZWZpbmVkKENPTkZJR19QUkVFTVBUX05PTkUpCisJCSAgICJzZXJ2ZXIiLAorI2VsaWYgZGVmaW5lZChDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlkpCisJCSAgICJkZXNrdG9wIiwKKyNlbGlmIGRlZmluZWQoQ09ORklHX1BSRUVNUFQpCisJCSAgICJwcmVlbXB0IiwKKyNlbHNlCisJCSAgICJ1bmtub3duIiwKKyNlbmRpZgorCQkgICAvKiBUaGVzZSBhcmUgcmVzZXJ2ZWQgZm9yIGxhdGVyIHVzZSAqLworCQkgICAwLCAwLCAwLCAwKTsKKyNpZmRlZiBDT05GSUdfU01QCisJc2VxX3ByaW50ZihtLCAiICNQOiVkKVxuIiwgbnVtX29ubGluZV9jcHVzKCkpOworI2Vsc2UKKwlzZXFfcHV0cyhtLCAiKVxuIik7CisjZW5kaWYKKwlzZXFfcHV0cyhtLCAiICAgIC0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKwlzZXFfcHJpbnRmKG0sICIgICAgfCB0YXNrOiAlLjE2cy0lZCAiCisJCSAgICIodWlkOiVkIG5pY2U6JWxkIHBvbGljeTolbGQgcnRfcHJpbzolbGQpXG4iLAorCQkgICBkYXRhLT5jb21tLCBkYXRhLT5waWQsIGRhdGEtPnVpZCwgZGF0YS0+bmljZSwKKwkJICAgZGF0YS0+cG9saWN5LCBkYXRhLT5ydF9wcmlvcml0eSk7CisJc2VxX3B1dHMobSwgIiAgICAtLS0tLS0tLS0tLS0tLS0tLVxuIik7CisKKwlpZiAoZGF0YS0+Y3JpdGljYWxfc3RhcnQpIHsKKwkJc2VxX3B1dHMobSwgIiA9PiBzdGFydGVkIGF0OiAiKTsKKwkJc2VxX3ByaW50X2lwX3N5bSgmaXRlci0+c2VxLCBkYXRhLT5jcml0aWNhbF9zdGFydCwgc3ltX2ZsYWdzKTsKKwkJdHJhY2VfcHJpbnRfc2VxKG0sICZpdGVyLT5zZXEpOworCQlzZXFfcHV0cyhtLCAiXG4gPT4gZW5kZWQgYXQ6ICAgIik7CisJCXNlcV9wcmludF9pcF9zeW0oJml0ZXItPnNlcSwgZGF0YS0+Y3JpdGljYWxfZW5kLCBzeW1fZmxhZ3MpOworCQl0cmFjZV9wcmludF9zZXEobSwgJml0ZXItPnNlcSk7CisJCXNlcV9wdXRzKG0sICJcbiIpOworCX0KKworCXNlcV9wdXRzKG0sICJcbiIpOworfQorCitzdGF0aWMgdm9pZAorbGF0X3ByaW50X2dlbmVyaWMoc3RydWN0IHRyYWNlX3NlcSAqcywgc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeSwgaW50IGNwdSkKK3sKKwlpbnQgaGFyZGlycSwgc29mdGlycTsKKwljaGFyICpjb21tOworCisJY29tbSA9IHRyYWNlX2ZpbmRfY21kbGluZShlbnRyeS0+cGlkKTsKKworCXRyYWNlX3NlcV9wcmludGYocywgIiU4LjhzLSUtNWQgIiwgY29tbSwgZW50cnktPnBpZCk7CisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiJWQiLCBjcHUpOworCXRyYWNlX3NlcV9wcmludGYocywgIiVjJWMiLAorCQkJKGVudHJ5LT5mbGFncyAmIFRSQUNFX0ZMQUdfSVJRU19PRkYpID8gJ2QnIDogJy4nLAorCQkJKChlbnRyeS0+ZmxhZ3MgJiBUUkFDRV9GTEFHX05FRURfUkVTQ0hFRCkgPyAnTicgOiAnLicpKTsKKworCWhhcmRpcnEgPSBlbnRyeS0+ZmxhZ3MgJiBUUkFDRV9GTEFHX0hBUkRJUlE7CisJc29mdGlycSA9IGVudHJ5LT5mbGFncyAmIFRSQUNFX0ZMQUdfU09GVElSUTsKKwlpZiAoaGFyZGlycSAmJiBzb2Z0aXJxKSB7CisJCXRyYWNlX3NlcV9wdXRjKHMsICdIJyk7CisJfSBlbHNlIHsKKwkJaWYgKGhhcmRpcnEpIHsKKwkJCXRyYWNlX3NlcV9wdXRjKHMsICdoJyk7CisJCX0gZWxzZSB7CisJCQlpZiAoc29mdGlycSkKKwkJCQl0cmFjZV9zZXFfcHV0YyhzLCAncycpOworCQkJZWxzZQorCQkJCXRyYWNlX3NlcV9wdXRjKHMsICcuJyk7CisJCX0KKwl9CisKKwlpZiAoZW50cnktPnByZWVtcHRfY291bnQpCisJCXRyYWNlX3NlcV9wcmludGYocywgIiV4IiwgZW50cnktPnByZWVtcHRfY291bnQpOworCWVsc2UKKwkJdHJhY2Vfc2VxX3B1dHMocywgIi4iKTsKK30KKwordW5zaWduZWQgbG9uZyBwcmVlbXB0X21hcmtfdGhyZXNoID0gMTAwOworCitzdGF0aWMgdm9pZAorbGF0X3ByaW50X3RpbWVzdGFtcChzdHJ1Y3QgdHJhY2Vfc2VxICpzLCB1bnNpZ25lZCBsb25nIGxvbmcgYWJzX3VzZWNzLAorCQkgICAgdW5zaWduZWQgbG9uZyByZWxfdXNlY3MpCit7CisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiICU0bGxkdXMiLCBhYnNfdXNlY3MpOworCWlmIChyZWxfdXNlY3MgPiBwcmVlbXB0X21hcmtfdGhyZXNoKQorCQl0cmFjZV9zZXFfcHV0cyhzLCAiITogIik7CisJZWxzZSBpZiAocmVsX3VzZWNzID4gMSkKKwkJdHJhY2Vfc2VxX3B1dHMocywgIis6ICIpOworCWVsc2UKKwkJdHJhY2Vfc2VxX3B1dHMocywgIiA6ICIpOworfQorCitzdGF0aWMgY29uc3QgY2hhciBzdGF0ZV90b19jaGFyW10gPSBUQVNLX1NUQVRFX1RPX0NIQVJfU1RSOworCitzdGF0aWMgaW50CitwcmludF9sYXRfZm10KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciwgdW5zaWduZWQgaW50IHRyYWNlX2lkeCwgaW50IGNwdSkKK3sKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzID0gJml0ZXItPnNlcTsKKwl1bnNpZ25lZCBsb25nIHN5bV9mbGFncyA9ICh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfU1lNX01BU0spOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqbmV4dF9lbnRyeSA9IGZpbmRfbmV4dF9lbnRyeShpdGVyLCBOVUxMKTsKKwl1bnNpZ25lZCBsb25nIHZlcmJvc2UgPSAodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX1ZFUkJPU0UpOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnkgPSBpdGVyLT5lbnQ7CisJdW5zaWduZWQgbG9uZyBhYnNfdXNlY3M7CisJdW5zaWduZWQgbG9uZyByZWxfdXNlY3M7CisJY2hhciAqY29tbTsKKwlpbnQgUywgVDsKKwlpbnQgaTsKKwl1bnNpZ25lZCBzdGF0ZTsKKworCWlmICghbmV4dF9lbnRyeSkKKwkJbmV4dF9lbnRyeSA9IGVudHJ5OworCXJlbF91c2VjcyA9IG5zMnVzZWNzKG5leHRfZW50cnktPnQgLSBlbnRyeS0+dCk7CisJYWJzX3VzZWNzID0gbnMydXNlY3MoZW50cnktPnQgLSBpdGVyLT50ci0+dGltZV9zdGFydCk7CisKKwlpZiAodmVyYm9zZSkgeworCQljb21tID0gdHJhY2VfZmluZF9jbWRsaW5lKGVudHJ5LT5waWQpOworCQl0cmFjZV9zZXFfcHJpbnRmKHMsICIlMTZzICU1ZCAlZCAlZCAlMDh4ICUwOHggWyUwOGx4XSIKKwkJCQkgIiAlbGQuJTAzbGRtcyAoKyVsZC4lMDNsZG1zKTogIiwKKwkJCQkgY29tbSwKKwkJCQkgZW50cnktPnBpZCwgY3B1LCBlbnRyeS0+ZmxhZ3MsCisJCQkJIGVudHJ5LT5wcmVlbXB0X2NvdW50LCB0cmFjZV9pZHgsCisJCQkJIG5zMnVzZWNzKGVudHJ5LT50KSwKKwkJCQkgYWJzX3VzZWNzLzEwMDAsCisJCQkJIGFic191c2VjcyAlIDEwMDAsIHJlbF91c2Vjcy8xMDAwLAorCQkJCSByZWxfdXNlY3MgJSAxMDAwKTsKKwl9IGVsc2UgeworCQlsYXRfcHJpbnRfZ2VuZXJpYyhzLCBlbnRyeSwgY3B1KTsKKwkJbGF0X3ByaW50X3RpbWVzdGFtcChzLCBhYnNfdXNlY3MsIHJlbF91c2Vjcyk7CisJfQorCXN3aXRjaCAoZW50cnktPnR5cGUpIHsKKwljYXNlIFRSQUNFX0ZOOgorCQlzZXFfcHJpbnRfaXBfc3ltKHMsIGVudHJ5LT5mbi5pcCwgc3ltX2ZsYWdzKTsKKwkJdHJhY2Vfc2VxX3B1dHMocywgIiAoIik7CisJCWlmIChrcmV0cHJvYmVkKGVudHJ5LT5mbi5wYXJlbnRfaXApKQorCQkJdHJhY2Vfc2VxX3B1dHMocywgS1JFVFBST0JFX01TRyk7CisJCWVsc2UKKwkJCXNlcV9wcmludF9pcF9zeW0ocywgZW50cnktPmZuLnBhcmVudF9pcCwgc3ltX2ZsYWdzKTsKKwkJdHJhY2Vfc2VxX3B1dHMocywgIilcbiIpOworCQlicmVhazsKKwljYXNlIFRSQUNFX0NUWDoKKwljYXNlIFRSQUNFX1dBS0U6CisJCVQgPSBlbnRyeS0+Y3R4Lm5leHRfc3RhdGUgPCBzaXplb2Yoc3RhdGVfdG9fY2hhcikgPworCQkJc3RhdGVfdG9fY2hhcltlbnRyeS0+Y3R4Lm5leHRfc3RhdGVdIDogJ1gnOworCisJCXN0YXRlID0gZW50cnktPmN0eC5wcmV2X3N0YXRlID8gX19mZnMoZW50cnktPmN0eC5wcmV2X3N0YXRlKSArIDEgOiAwOworCQlTID0gc3RhdGUgPCBzaXplb2Yoc3RhdGVfdG9fY2hhcikgLSAxID8gc3RhdGVfdG9fY2hhcltzdGF0ZV0gOiAnWCc7CisJCWNvbW0gPSB0cmFjZV9maW5kX2NtZGxpbmUoZW50cnktPmN0eC5uZXh0X3BpZCk7CisJCXRyYWNlX3NlcV9wcmludGYocywgIiAlNWQ6JTNkOiVjICVzICU1ZDolM2Q6JWMgJXNcbiIsCisJCQkJIGVudHJ5LT5jdHgucHJldl9waWQsCisJCQkJIGVudHJ5LT5jdHgucHJldl9wcmlvLAorCQkJCSBTLCBlbnRyeS0+dHlwZSA9PSBUUkFDRV9DVFggPyAiPT0+IiA6ICIgICsiLAorCQkJCSBlbnRyeS0+Y3R4Lm5leHRfcGlkLAorCQkJCSBlbnRyeS0+Y3R4Lm5leHRfcHJpbywKKwkJCQkgVCwgY29tbSk7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1BFQ0lBTDoKKwkJdHJhY2Vfc2VxX3ByaW50ZihzLCAiIyAlbGQgJWxkICVsZFxuIiwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMSwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMiwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMyk7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1RBQ0s6CisJCWZvciAoaSA9IDA7IGkgPCBGVFJBQ0VfU1RBQ0tfRU5UUklFUzsgaSsrKSB7CisJCQlpZiAoaSkKKwkJCQl0cmFjZV9zZXFfcHV0cyhzLCAiIDw9ICIpOworCQkJc2VxX3ByaW50X2lwX3N5bShzLCBlbnRyeS0+c3RhY2suY2FsbGVyW2ldLCBzeW1fZmxhZ3MpOworCQl9CisJCXRyYWNlX3NlcV9wdXRzKHMsICJcbiIpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQl0cmFjZV9zZXFfcHJpbnRmKHMsICJVbmtub3duIHR5cGUgJWRcbiIsIGVudHJ5LT50eXBlKTsKKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgcHJpbnRfdHJhY2VfZm10KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzID0gJml0ZXItPnNlcTsKKwl1bnNpZ25lZCBsb25nIHN5bV9mbGFncyA9ICh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfU1lNX01BU0spOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJdW5zaWduZWQgbG9uZyB1c2VjX3JlbTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdDsKKwl1bnNpZ25lZCBsb25nIHNlY3M7CisJY2hhciAqY29tbTsKKwlpbnQgcmV0OworCWludCBTLCBUOworCWludCBpOworCisJZW50cnkgPSBpdGVyLT5lbnQ7CisKKwljb21tID0gdHJhY2VfZmluZF9jbWRsaW5lKGl0ZXItPmVudC0+cGlkKTsKKworCXQgPSBuczJ1c2VjcyhlbnRyeS0+dCk7CisJdXNlY19yZW0gPSBkb19kaXYodCwgMTAwMDAwMFVMTCk7CisJc2VjcyA9ICh1bnNpZ25lZCBsb25nKXQ7CisKKwlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIlMTZzLSUtNWQgIiwgY29tbSwgZW50cnktPnBpZCk7CisJaWYgKCFyZXQpCisJCXJldHVybiAwOworCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIlslMDJkXSAiLCBpdGVyLT5jcHUpOworCWlmICghcmV0KQorCQlyZXR1cm4gMDsKKwlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIlNWx1LiUwNmx1OiAiLCBzZWNzLCB1c2VjX3JlbSk7CisJaWYgKCFyZXQpCisJCXJldHVybiAwOworCisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJCXJldCA9IHNlcV9wcmludF9pcF9zeW0ocywgZW50cnktPmZuLmlwLCBzeW1fZmxhZ3MpOworCQlpZiAoIXJldCkKKwkJCXJldHVybiAwOworCQlpZiAoKHN5bV9mbGFncyAmIFRSQUNFX0lURVJfUFJJTlRfUEFSRU5UKSAmJgorCQkJCQkJZW50cnktPmZuLnBhcmVudF9pcCkgeworCQkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiIDwtIik7CisJCQlpZiAoIXJldCkKKwkJCQlyZXR1cm4gMDsKKwkJCWlmIChrcmV0cHJvYmVkKGVudHJ5LT5mbi5wYXJlbnRfaXApKQorCQkJCXJldCA9IHRyYWNlX3NlcV9wdXRzKHMsIEtSRVRQUk9CRV9NU0cpOworCQkJZWxzZQorCQkJCXJldCA9IHNlcV9wcmludF9pcF9zeW0ocywgZW50cnktPmZuLnBhcmVudF9pcCwKKwkJCQkJCSAgICAgICBzeW1fZmxhZ3MpOworCQkJaWYgKCFyZXQpCisJCQkJcmV0dXJuIDA7CisJCX0KKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiXG4iKTsKKwkJaWYgKCFyZXQpCisJCQlyZXR1cm4gMDsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9DVFg6CisJY2FzZSBUUkFDRV9XQUtFOgorCQlTID0gZW50cnktPmN0eC5wcmV2X3N0YXRlIDwgc2l6ZW9mKHN0YXRlX3RvX2NoYXIpID8KKwkJCXN0YXRlX3RvX2NoYXJbZW50cnktPmN0eC5wcmV2X3N0YXRlXSA6ICdYJzsKKwkJVCA9IGVudHJ5LT5jdHgubmV4dF9zdGF0ZSA8IHNpemVvZihzdGF0ZV90b19jaGFyKSA/CisJCQlzdGF0ZV90b19jaGFyW2VudHJ5LT5jdHgubmV4dF9zdGF0ZV0gOiAnWCc7CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIiAlNWQ6JTNkOiVjICVzICU1ZDolM2Q6JWNcbiIsCisJCQkJICAgICAgIGVudHJ5LT5jdHgucHJldl9waWQsCisJCQkJICAgICAgIGVudHJ5LT5jdHgucHJldl9wcmlvLAorCQkJCSAgICAgICBTLAorCQkJCSAgICAgICBlbnRyeS0+dHlwZSA9PSBUUkFDRV9DVFggPyAiPT0+IiA6ICIgICsiLAorCQkJCSAgICAgICBlbnRyeS0+Y3R4Lm5leHRfcGlkLAorCQkJCSAgICAgICBlbnRyeS0+Y3R4Lm5leHRfcHJpbywKKwkJCQkgICAgICAgVCk7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1BFQ0lBTDoKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiIyAlbGQgJWxkICVsZFxuIiwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMSwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMiwKKwkJCQkgZW50cnktPnNwZWNpYWwuYXJnMyk7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1RBQ0s6CisJCWZvciAoaSA9IDA7IGkgPCBGVFJBQ0VfU1RBQ0tfRU5UUklFUzsgaSsrKSB7CisJCQlpZiAoaSkgeworCQkJCXJldCA9IHRyYWNlX3NlcV9wdXRzKHMsICIgPD0gIik7CisJCQkJaWYgKCFyZXQpCisJCQkJCXJldHVybiAwOworCQkJfQorCQkJcmV0ID0gc2VxX3ByaW50X2lwX3N5bShzLCBlbnRyeS0+c3RhY2suY2FsbGVyW2ldLAorCQkJCQkgICAgICAgc3ltX2ZsYWdzKTsKKwkJCWlmICghcmV0KQorCQkJCXJldHVybiAwOworCQl9CisJCXJldCA9IHRyYWNlX3NlcV9wdXRzKHMsICJcbiIpOworCQlpZiAoIXJldCkKKwkJCXJldHVybiAwOworCQlicmVhazsKKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgcHJpbnRfcmF3X2ZtdChzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX3NlcSAqcyA9ICZpdGVyLT5zZXE7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKwlpbnQgcmV0OworCWludCBTLCBUOworCisJZW50cnkgPSBpdGVyLT5lbnQ7CisKKwlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIlZCAlZCAlbGx1ICIsCisJCWVudHJ5LT5waWQsIGl0ZXItPmNwdSwgZW50cnktPnQpOworCWlmICghcmV0KQorCQlyZXR1cm4gMDsKKworCXN3aXRjaCAoZW50cnktPnR5cGUpIHsKKwljYXNlIFRSQUNFX0ZOOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIleCAleFxuIiwKKwkJCQkJZW50cnktPmZuLmlwLCBlbnRyeS0+Zm4ucGFyZW50X2lwKTsKKwkJaWYgKCFyZXQpCisJCQlyZXR1cm4gMDsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9DVFg6CisJY2FzZSBUUkFDRV9XQUtFOgorCQlTID0gZW50cnktPmN0eC5wcmV2X3N0YXRlIDwgc2l6ZW9mKHN0YXRlX3RvX2NoYXIpID8KKwkJCXN0YXRlX3RvX2NoYXJbZW50cnktPmN0eC5wcmV2X3N0YXRlXSA6ICdYJzsKKwkJVCA9IGVudHJ5LT5jdHgubmV4dF9zdGF0ZSA8IHNpemVvZihzdGF0ZV90b19jaGFyKSA/CisJCQlzdGF0ZV90b19jaGFyW2VudHJ5LT5jdHgubmV4dF9zdGF0ZV0gOiAnWCc7CisJCWlmIChlbnRyeS0+dHlwZSA9PSBUUkFDRV9XQUtFKQorCQkJUyA9ICcrJzsKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiJWQgJWQgJWMgJWQgJWQgJWNcbiIsCisJCQkJICAgICAgIGVudHJ5LT5jdHgucHJldl9waWQsCisJCQkJICAgICAgIGVudHJ5LT5jdHgucHJldl9wcmlvLAorCQkJCSAgICAgICBTLAorCQkJCSAgICAgICBlbnRyeS0+Y3R4Lm5leHRfcGlkLAorCQkJCSAgICAgICBlbnRyeS0+Y3R4Lm5leHRfcHJpbywKKwkJCQkgICAgICAgVCk7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1BFQ0lBTDoKKwljYXNlIFRSQUNFX1NUQUNLOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIjICVsZCAlbGQgJWxkXG4iLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmcxLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmcyLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmczKTsKKwkJaWYgKCFyZXQpCisJCQlyZXR1cm4gMDsKKwkJYnJlYWs7CisJfQorCXJldHVybiAxOworfQorCisjZGVmaW5lIFNFUV9QVVRfRklFTERfUkVUKHMsIHgpCQkJCVwKK2RvIHsJCQkJCQkJXAorCWlmICghdHJhY2Vfc2VxX3B1dG1lbShzLCAmKHgpLCBzaXplb2YoeCkpKQlcCisJCXJldHVybiAwOwkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCB4KQkJCVwKK2RvIHsJCQkJCQkJXAorCWlmICghdHJhY2Vfc2VxX3B1dG1lbV9oZXgocywgJih4KSwgc2l6ZW9mKHgpKSkJXAorCQlyZXR1cm4gMDsJCQkJXAorfSB3aGlsZSAoMCkKKworc3RhdGljIGludCBwcmludF9oZXhfZm10KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzID0gJml0ZXItPnNlcTsKKwl1bnNpZ25lZCBjaGFyIG5ld2xpbmUgPSAnXG4nOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJaW50IFMsIFQ7CisKKwllbnRyeSA9IGl0ZXItPmVudDsKKworCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+cGlkKTsKKwlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgaXRlci0+Y3B1KTsKKwlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPnQpOworCisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Zm4uaXApOworCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPmZuLnBhcmVudF9pcCk7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfQ1RYOgorCWNhc2UgVFJBQ0VfV0FLRToKKwkJUyA9IGVudHJ5LT5jdHgucHJldl9zdGF0ZSA8IHNpemVvZihzdGF0ZV90b19jaGFyKSA/CisJCQlzdGF0ZV90b19jaGFyW2VudHJ5LT5jdHgucHJldl9zdGF0ZV0gOiAnWCc7CisJCVQgPSBlbnRyeS0+Y3R4Lm5leHRfc3RhdGUgPCBzaXplb2Yoc3RhdGVfdG9fY2hhcikgPworCQkJc3RhdGVfdG9fY2hhcltlbnRyeS0+Y3R4Lm5leHRfc3RhdGVdIDogJ1gnOworCQlpZiAoZW50cnktPnR5cGUgPT0gVFJBQ0VfV0FLRSkKKwkJCVMgPSAnKyc7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3R4LnByZXZfcGlkKTsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5jdHgucHJldl9wcmlvKTsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIFMpOworCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5uZXh0X3BpZCk7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3R4Lm5leHRfcHJpbyk7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Zm4ucGFyZW50X2lwKTsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIFQpOworCQlicmVhazsKKwljYXNlIFRSQUNFX1NQRUNJQUw6CisJY2FzZSBUUkFDRV9TVEFDSzoKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5zcGVjaWFsLmFyZzEpOworCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPnNwZWNpYWwuYXJnMik7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+c3BlY2lhbC5hcmczKTsKKwkJYnJlYWs7CisJfQorCVNFUV9QVVRfRklFTERfUkVUKHMsIG5ld2xpbmUpOworCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgcHJpbnRfYmluX2ZtdChzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX3NlcSAqcyA9ICZpdGVyLT5zZXE7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKworCWVudHJ5ID0gaXRlci0+ZW50OworCisJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPnBpZCk7CisJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmNwdSk7CisJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPnQpOworCisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5mbi5pcCk7CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5mbi5wYXJlbnRfaXApOworCQlicmVhazsKKwljYXNlIFRSQUNFX0NUWDoKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5wcmV2X3BpZCk7CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5jdHgucHJldl9wcmlvKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5wcmV2X3N0YXRlKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5uZXh0X3BpZCk7CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5jdHgubmV4dF9wcmlvKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5uZXh0X3N0YXRlKTsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9TUEVDSUFMOgorCWNhc2UgVFJBQ0VfU1RBQ0s6CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5zcGVjaWFsLmFyZzEpOworCQlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+c3BlY2lhbC5hcmcyKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPnNwZWNpYWwuYXJnMyk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCB0cmFjZV9lbXB0eShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwlpbnQgY3B1OworCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoY3B1KSB7CisJCWRhdGEgPSBpdGVyLT50ci0+ZGF0YVtjcHVdOworCisJCWlmIChoZWFkX3BhZ2UoZGF0YSkgJiYgZGF0YS0+dHJhY2VfaWR4ICYmCisJCSAgICAoZGF0YS0+dHJhY2VfdGFpbCAhPSBkYXRhLT50cmFjZV9oZWFkIHx8CisJCSAgICAgZGF0YS0+dHJhY2VfdGFpbF9pZHggIT0gZGF0YS0+dHJhY2VfaGVhZF9pZHgpKQorCQkJcmV0dXJuIDA7CisJfQorCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IHByaW50X3RyYWNlX2xpbmUoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCWlmIChpdGVyLT50cmFjZSAmJiBpdGVyLT50cmFjZS0+cHJpbnRfbGluZSkKKwkJcmV0dXJuIGl0ZXItPnRyYWNlLT5wcmludF9saW5lKGl0ZXIpOworCisJaWYgKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9CSU4pCisJCXJldHVybiBwcmludF9iaW5fZm10KGl0ZXIpOworCisJaWYgKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9IRVgpCisJCXJldHVybiBwcmludF9oZXhfZm10KGl0ZXIpOworCisJaWYgKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9SQVcpCisJCXJldHVybiBwcmludF9yYXdfZm10KGl0ZXIpOworCisJaWYgKGl0ZXItPml0ZXJfZmxhZ3MgJiBUUkFDRV9GSUxFX0xBVF9GTVQpCisJCXJldHVybiBwcmludF9sYXRfZm10KGl0ZXIsIGl0ZXItPmlkeCwgaXRlci0+Y3B1KTsKKworCXJldHVybiBwcmludF90cmFjZV9mbXQoaXRlcik7Cit9CisKK3N0YXRpYyBpbnQgc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSB2OworCisJaWYgKGl0ZXItPmVudCA9PSBOVUxMKSB7CisJCWlmIChpdGVyLT50cikgeworCQkJc2VxX3ByaW50ZihtLCAiIyB0cmFjZXI6ICVzXG4iLCBpdGVyLT50cmFjZS0+bmFtZSk7CisJCQlzZXFfcHV0cyhtLCAiI1xuIik7CisJCX0KKwkJaWYgKGl0ZXItPml0ZXJfZmxhZ3MgJiBUUkFDRV9GSUxFX0xBVF9GTVQpIHsKKwkJCS8qIHByaW50IG5vdGhpbmcgaWYgdGhlIGJ1ZmZlcnMgYXJlIGVtcHR5ICovCisJCQlpZiAodHJhY2VfZW1wdHkoaXRlcikpCisJCQkJcmV0dXJuIDA7CisJCQlwcmludF90cmFjZV9oZWFkZXIobSwgaXRlcik7CisJCQlpZiAoISh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfVkVSQk9TRSkpCisJCQkJcHJpbnRfbGF0X2hlbHBfaGVhZGVyKG0pOworCQl9IGVsc2UgeworCQkJaWYgKCEodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX1ZFUkJPU0UpKQorCQkJCXByaW50X2Z1bmNfaGVscF9oZWFkZXIobSk7CisJCX0KKwl9IGVsc2UgeworCQlwcmludF90cmFjZV9saW5lKGl0ZXIpOworCQl0cmFjZV9wcmludF9zZXEobSwgJml0ZXItPnNlcSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgdHJhY2VyX3NlcV9vcHMgPSB7CisJLnN0YXJ0CQk9IHNfc3RhcnQsCisJLm5leHQJCT0gc19uZXh0LAorCS5zdG9wCQk9IHNfc3RvcCwKKwkuc2hvdwkJPSBzX3Nob3csCit9OworCitzdGF0aWMgc3RydWN0IHRyYWNlX2l0ZXJhdG9yICoKK19fdHJhY2luZ19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgKnJldCkKK3sKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXI7CisKKwlpZiAodHJhY2luZ19kaXNhYmxlZCkgeworCQkqcmV0ID0gLUVOT0RFVjsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJaXRlciA9IGt6YWxsb2Moc2l6ZW9mKCppdGVyKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFpdGVyKSB7CisJCSpyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dDsKKwl9CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlpZiAoY3VycmVudF90cmFjZSAmJiBjdXJyZW50X3RyYWNlLT5wcmludF9tYXgpCisJCWl0ZXItPnRyID0gJm1heF90cjsKKwllbHNlCisJCWl0ZXItPnRyID0gaW5vZGUtPmlfcHJpdmF0ZTsKKwlpdGVyLT50cmFjZSA9IGN1cnJlbnRfdHJhY2U7CisJaXRlci0+cG9zID0gLTE7CisKKwkvKiBUT0RPIHN0b3AgdHJhY2VyICovCisJKnJldCA9IHNlcV9vcGVuKGZpbGUsICZ0cmFjZXJfc2VxX29wcyk7CisJaWYgKCEqcmV0KSB7CisJCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwkJbS0+cHJpdmF0ZSA9IGl0ZXI7CisKKwkJLyogc3RvcCB0aGUgdHJhY2Ugd2hpbGUgZHVtcGluZyAqLworCQlpZiAoaXRlci0+dHItPmN0cmwpIHsKKwkJCXRyYWNlcl9lbmFibGVkID0gMDsKKwkJCWZ0cmFjZV9mdW5jdGlvbl9lbmFibGVkID0gMDsKKwkJfQorCisJCWlmIChpdGVyLT50cmFjZSAmJiBpdGVyLT50cmFjZS0+b3BlbikKKwkJCWl0ZXItPnRyYWNlLT5vcGVuKGl0ZXIpOworCX0gZWxzZSB7CisJCWtmcmVlKGl0ZXIpOworCQlpdGVyID0gTlVMTDsKKwl9CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworIG91dDoKKwlyZXR1cm4gaXRlcjsKK30KKworaW50IHRyYWNpbmdfb3Blbl9nZW5lcmljKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCWlmICh0cmFjaW5nX2Rpc2FibGVkKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWZpbHAtPnByaXZhdGVfZGF0YSA9IGlub2RlLT5pX3ByaXZhdGU7CisJcmV0dXJuIDA7Cit9CisKK2ludCB0cmFjaW5nX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IHNlcV9maWxlICptID0gKHN0cnVjdCBzZXFfZmlsZSAqKWZpbGUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJaWYgKGl0ZXItPnRyYWNlICYmIGl0ZXItPnRyYWNlLT5jbG9zZSkKKwkJaXRlci0+dHJhY2UtPmNsb3NlKGl0ZXIpOworCisJLyogcmVlbmFibGUgdHJhY2luZyBpZiBpdCB3YXMgcHJldmlvdXNseSBlbmFibGVkICovCisJaWYgKGl0ZXItPnRyLT5jdHJsKSB7CisJCXRyYWNlcl9lbmFibGVkID0gMTsKKwkJLyoKKwkJICogSXQgaXMgc2FmZSB0byBlbmFibGUgZnVuY3Rpb24gdHJhY2luZyBldmVuIGlmIGl0CisJCSAqIGlzbid0IHVzZWQKKwkJICovCisJCWZ0cmFjZV9mdW5jdGlvbl9lbmFibGVkID0gMTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCXNlcV9yZWxlYXNlKGlub2RlLCBmaWxlKTsKKwlrZnJlZShpdGVyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB0cmFjaW5nX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJaW50IHJldDsKKworCV9fdHJhY2luZ19vcGVuKGlub2RlLCBmaWxlLCAmcmV0KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdHJhY2luZ19sdF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcjsKKwlpbnQgcmV0OworCisJaXRlciA9IF9fdHJhY2luZ19vcGVuKGlub2RlLCBmaWxlLCAmcmV0KTsKKworCWlmICghcmV0KQorCQlpdGVyLT5pdGVyX2ZsYWdzIHw9IFRSQUNFX0ZJTEVfTEFUX0ZNVDsKKworCXJldHVybiByZXQ7Cit9CisKKworc3RhdGljIHZvaWQgKgordF9uZXh0KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdiwgbG9mZl90ICpwb3MpCit7CisJc3RydWN0IHRyYWNlciAqdCA9IG0tPnByaXZhdGU7CisKKwkoKnBvcykrKzsKKworCWlmICh0KQorCQl0ID0gdC0+bmV4dDsKKworCW0tPnByaXZhdGUgPSB0OworCisJcmV0dXJuIHQ7Cit9CisKK3N0YXRpYyB2b2lkICp0X3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAqbSwgbG9mZl90ICpwb3MpCit7CisJc3RydWN0IHRyYWNlciAqdCA9IG0tPnByaXZhdGU7CisJbG9mZl90IGwgPSAwOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJZm9yICg7IHQgJiYgbCA8ICpwb3M7IHQgPSB0X25leHQobSwgdCwgJmwpKQorCQk7CisKKwlyZXR1cm4gdDsKK30KKworc3RhdGljIHZvaWQgdF9zdG9wKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqcCkKK3sKKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworfQorCitzdGF0aWMgaW50IHRfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCit7CisJc3RydWN0IHRyYWNlciAqdCA9IHY7CisKKwlpZiAoIXQpCisJCXJldHVybiAwOworCisJc2VxX3ByaW50ZihtLCAiJXMiLCB0LT5uYW1lKTsKKwlpZiAodC0+bmV4dCkKKwkJc2VxX3B1dGMobSwgJyAnKTsKKwllbHNlCisJCXNlcV9wdXRjKG0sICdcbicpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgc2hvd190cmFjZXNfc2VxX29wcyA9IHsKKwkuc3RhcnQJCT0gdF9zdGFydCwKKwkubmV4dAkJPSB0X25leHQsCisJLnN0b3AJCT0gdF9zdG9wLAorCS5zaG93CQk9IHRfc2hvdywKK307CisKK3N0YXRpYyBpbnQgc2hvd190cmFjZXNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlpbnQgcmV0OworCisJaWYgKHRyYWNpbmdfZGlzYWJsZWQpCisJCXJldHVybiAtRU5PREVWOworCisJcmV0ID0gc2VxX29wZW4oZmlsZSwgJnNob3dfdHJhY2VzX3NlcV9vcHMpOworCWlmICghcmV0KSB7CisJCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwkJbS0+cHJpdmF0ZSA9IHRyYWNlX3R5cGVzOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLmxsc2VlawkJPSBzZXFfbHNlZWssCisJLnJlbGVhc2UJPSB0cmFjaW5nX3JlbGVhc2UsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB0cmFjaW5nX2x0X2ZvcHMgPSB7CisJLm9wZW4JCT0gdHJhY2luZ19sdF9vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS5sbHNlZWsJCT0gc2VxX2xzZWVrLAorCS5yZWxlYXNlCT0gdHJhY2luZ19yZWxlYXNlLAorfTsKKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgc2hvd190cmFjZXNfZm9wcyA9IHsKKwkub3BlbgkJPSBzaG93X3RyYWNlc19vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS5yZWxlYXNlCT0gc2VxX3JlbGVhc2UsCit9OworCisvKgorICogT25seSB0cmFjZSBvbiBhIENQVSBpZiB0aGUgYml0bWFzayBpcyBzZXQ6CisgKi8KK3N0YXRpYyBjcHVtYXNrX3QgdHJhY2luZ19jcHVtYXNrID0gQ1BVX01BU0tfQUxMOworCisvKgorICogV2hlbiB0cmFjaW5nL3RyYWNpbmdfY3B1X21hc2sgaXMgbW9kaWZpZWQgdGhlbiB0aGlzIGhvbGRzCisgKiB0aGUgbmV3IGJpdG1hc2sgd2UgYXJlIGFib3V0IHRvIGluc3RhbGw6CisgKi8KK3N0YXRpYyBjcHVtYXNrX3QgdHJhY2luZ19jcHVtYXNrX25ldzsKKworLyoKKyAqIFRoZSB0cmFjZXIgaXRzZWxmIHdpbGwgbm90IHRha2UgdGhpcyBsb2NrLCBidXQgc3RpbGwgd2Ugd2FudAorICogdG8gcHJvdmlkZSBhIGNvbnNpc3RlbnQgY3B1bWFzayB0byB1c2VyLXNwYWNlOgorICovCitzdGF0aWMgREVGSU5FX01VVEVYKHRyYWNpbmdfY3B1bWFza191cGRhdGVfbG9jayk7CisKKy8qCisgKiBUZW1wb3Jhcnkgc3RvcmFnZSBmb3IgdGhlIGNoYXJhY3RlciByZXByZXNlbnRhdGlvbiBvZiB0aGUKKyAqIENQVSBiaXRtYXNrIChhbmQgb25lIG1vcmUgYnl0ZSBmb3IgdGhlIG5ld2xpbmUpOgorICovCitzdGF0aWMgY2hhciBtYXNrX3N0cltOUl9DUFVTICsgMV07CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX2NwdW1hc2tfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJaW50IGxlbjsKKworCW11dGV4X2xvY2soJnRyYWNpbmdfY3B1bWFza191cGRhdGVfbG9jayk7CisKKwlsZW4gPSBjcHVtYXNrX3NjbnByaW50ZihtYXNrX3N0ciwgY291bnQsIHRyYWNpbmdfY3B1bWFzayk7CisJaWYgKGNvdW50IC0gbGVuIDwgMikgeworCQljb3VudCA9IC1FSU5WQUw7CisJCWdvdG8gb3V0X2VycjsKKwl9CisJbGVuICs9IHNwcmludGYobWFza19zdHIgKyBsZW4sICJcbiIpOworCWNvdW50ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodWJ1ZiwgY291bnQsIHBwb3MsIG1hc2tfc3RyLCBOUl9DUFVTKzEpOworCitvdXRfZXJyOgorCW11dGV4X3VubG9jaygmdHJhY2luZ19jcHVtYXNrX3VwZGF0ZV9sb2NrKTsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfY3B1bWFza193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCWludCBlcnIsIGNwdTsKKworCW11dGV4X2xvY2soJnRyYWNpbmdfY3B1bWFza191cGRhdGVfbG9jayk7CisJZXJyID0gY3B1bWFza19wYXJzZV91c2VyKHVidWYsIGNvdW50LCB0cmFjaW5nX2NwdW1hc2tfbmV3KTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl91bmxvY2s7CisKKwlyYXdfbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlfX3Jhd19zcGluX2xvY2soJmZ0cmFjZV9tYXhfbG9jayk7CisJZm9yX2VhY2hfdHJhY2luZ19jcHUoY3B1KSB7CisJCS8qCisJCSAqIEluY3JlYXNlL2RlY3JlYXNlIHRoZSBkaXNhYmxlZCBjb3VudGVyIGlmIHdlIGFyZQorCQkgKiBhYm91dCB0byBmbGlwIGEgYml0IGluIHRoZSBjcHVtYXNrOgorCQkgKi8KKwkJaWYgKGNwdV9pc3NldChjcHUsIHRyYWNpbmdfY3B1bWFzaykgJiYKKwkJCQkhY3B1X2lzc2V0KGNwdSwgdHJhY2luZ19jcHVtYXNrX25ldykpIHsKKwkJCWF0b21pY19pbmMoJmdsb2JhbF90cmFjZS5kYXRhW2NwdV0tPmRpc2FibGVkKTsKKwkJfQorCQlpZiAoIWNwdV9pc3NldChjcHUsIHRyYWNpbmdfY3B1bWFzaykgJiYKKwkJCQljcHVfaXNzZXQoY3B1LCB0cmFjaW5nX2NwdW1hc2tfbmV3KSkgeworCQkJYXRvbWljX2RlYygmZ2xvYmFsX3RyYWNlLmRhdGFbY3B1XS0+ZGlzYWJsZWQpOworCQl9CisJfQorCV9fcmF3X3NwaW5fdW5sb2NrKCZmdHJhY2VfbWF4X2xvY2spOworCXJhd19sb2NhbF9pcnFfZW5hYmxlKCk7CisKKwl0cmFjaW5nX2NwdW1hc2sgPSB0cmFjaW5nX2NwdW1hc2tfbmV3OworCisJbXV0ZXhfdW5sb2NrKCZ0cmFjaW5nX2NwdW1hc2tfdXBkYXRlX2xvY2spOworCisJcmV0dXJuIGNvdW50OworCitlcnJfdW5sb2NrOgorCW11dGV4X3VubG9jaygmdHJhY2luZ19jcHVtYXNrX3VwZGF0ZV9sb2NrKTsKKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfY3B1bWFza19mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9nZW5lcmljLAorCS5yZWFkCQk9IHRyYWNpbmdfY3B1bWFza19yZWFkLAorCS53cml0ZQkJPSB0cmFjaW5nX2NwdW1hc2tfd3JpdGUsCit9OworCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19pdGVyX2N0cmxfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJY2hhciAqYnVmOworCWludCByID0gMDsKKwlpbnQgbGVuID0gMDsKKwlpbnQgaTsKKworCS8qIGNhbHVsYXRlIG1heCBzaXplICovCisJZm9yIChpID0gMDsgdHJhY2Vfb3B0aW9uc1tpXTsgaSsrKSB7CisJCWxlbiArPSBzdHJsZW4odHJhY2Vfb3B0aW9uc1tpXSk7CisJCWxlbiArPSAzOyAvKiAibm8iIGFuZCBzcGFjZSAqLworCX0KKworCS8qICsyIGZvciBcbiBhbmQgXDAgKi8KKwlidWYgPSBrbWFsbG9jKGxlbiArIDIsIEdGUF9LRVJORUwpOworCWlmICghYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWZvciAoaSA9IDA7IHRyYWNlX29wdGlvbnNbaV07IGkrKykgeworCQlpZiAodHJhY2VfZmxhZ3MgJiAoMSA8PCBpKSkKKwkJCXIgKz0gc3ByaW50ZihidWYgKyByLCAiJXMgIiwgdHJhY2Vfb3B0aW9uc1tpXSk7CisJCWVsc2UKKwkJCXIgKz0gc3ByaW50ZihidWYgKyByLCAibm8lcyAiLCB0cmFjZV9vcHRpb25zW2ldKTsKKwl9CisKKwlyICs9IHNwcmludGYoYnVmICsgciwgIlxuIik7CisJV0FSTl9PTihyID49IGxlbiArIDIpOworCisJciA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKKworCWtmcmVlKGJ1Zik7CisKKwlyZXR1cm4gcjsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfaXRlcl9jdHJsX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJCXNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwljaGFyIGJ1Zls2NF07CisJY2hhciAqY21wID0gYnVmOworCWludCBuZWcgPSAwOworCWludCBpOworCisJaWYgKGNudCA+PSBzaXplb2YoYnVmKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwlpZiAoc3RybmNtcChidWYsICJubyIsIDIpID09IDApIHsKKwkJbmVnID0gMTsKKwkJY21wICs9IDI7CisJfQorCisJZm9yIChpID0gMDsgdHJhY2Vfb3B0aW9uc1tpXTsgaSsrKSB7CisJCWludCBsZW4gPSBzdHJsZW4odHJhY2Vfb3B0aW9uc1tpXSk7CisKKwkJaWYgKHN0cm5jbXAoY21wLCB0cmFjZV9vcHRpb25zW2ldLCBsZW4pID09IDApIHsKKwkJCWlmIChuZWcpCisJCQkJdHJhY2VfZmxhZ3MgJj0gfigxIDw8IGkpOworCQkJZWxzZQorCQkJCXRyYWNlX2ZsYWdzIHw9ICgxIDw8IGkpOworCQkJYnJlYWs7CisJCX0KKwl9CisJLyoKKwkgKiBJZiBubyBvcHRpb24gY291bGQgYmUgc2V0LCByZXR1cm4gYW4gZXJyb3I6CisJICovCisJaWYgKCF0cmFjZV9vcHRpb25zW2ldKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWZpbHAtPmZfcG9zICs9IGNudDsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfaXRlcl9mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9nZW5lcmljLAorCS5yZWFkCQk9IHRyYWNpbmdfaXRlcl9jdHJsX3JlYWQsCisJLndyaXRlCQk9IHRyYWNpbmdfaXRlcl9jdHJsX3dyaXRlLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgcmVhZG1lX21zZ1tdID0KKwkidHJhY2luZyBtaW5pLUhPV1RPOlxuXG4iCisJIiMgbWtkaXIgL2RlYnVnXG4iCisJIiMgbW91bnQgLXQgZGVidWdmcyBub2RldiAvZGVidWdcblxuIgorCSIjIGNhdCAvZGVidWcvdHJhY2luZy9hdmFpbGFibGVfdHJhY2Vyc1xuIgorCSJ3YWtldXAgcHJlZW1wdGlycXNvZmYgcHJlZW1wdG9mZiBpcnFzb2ZmIGZ0cmFjZSBzY2hlZF9zd2l0Y2ggbm9uZVxuXG4iCisJIiMgY2F0IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyXG4iCisJIm5vbmVcbiIKKwkiIyBlY2hvIHNjaGVkX3N3aXRjaCA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyXG4iCisJIiMgY2F0IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyXG4iCisJInNjaGVkX3N3aXRjaFxuIgorCSIjIGNhdCAvZGVidWcvdHJhY2luZy9pdGVyX2N0cmxcbiIKKwkibm9wcmludC1wYXJlbnQgbm9zeW0tb2Zmc2V0IG5vc3ltLWFkZHIgbm92ZXJib3NlXG4iCisJIiMgZWNobyBwcmludC1wYXJlbnQgPiAvZGVidWcvdHJhY2luZy9pdGVyX2N0cmxcbiIKKwkiIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWRcbiIKKwkiIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2UgPiAvdG1wL3RyYWNlLnR4dFxuIgorCSJlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWRcbiIKKzsKKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfcmVhZG1lX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjbnQsIHBwb3MsCisJCQkJCXJlYWRtZV9tc2csIHN0cmxlbihyZWFkbWVfbXNnKSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfcmVhZG1lX2ZvcHMgPSB7CisJLm9wZW4JCT0gdHJhY2luZ19vcGVuX2dlbmVyaWMsCisJLnJlYWQJCT0gdHJhY2luZ19yZWFkbWVfcmVhZCwKK307CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX2N0cmxfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJY2hhciBidWZbNjRdOworCWludCByOworCisJciA9IHNwcmludGYoYnVmLCAiJWxkXG4iLCB0ci0+Y3RybCk7CisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfY3RybF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCWNoYXIgYnVmWzY0XTsKKwlsb25nIHZhbDsKKwlpbnQgcmV0OworCisJaWYgKGNudCA+PSBzaXplb2YoYnVmKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwlyZXQgPSBzdHJpY3Rfc3RydG91bChidWYsIDEwLCAmdmFsKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXZhbCA9ICEhdmFsOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJaWYgKHRyLT5jdHJsIF4gdmFsKSB7CisJCWlmICh2YWwpCisJCQl0cmFjZXJfZW5hYmxlZCA9IDE7CisJCWVsc2UKKwkJCXRyYWNlcl9lbmFibGVkID0gMDsKKworCQl0ci0+Y3RybCA9IHZhbDsKKworCQlpZiAoY3VycmVudF90cmFjZSAmJiBjdXJyZW50X3RyYWNlLT5jdHJsX3VwZGF0ZSkKKwkJCWN1cnJlbnRfdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCWZpbHAtPmZfcG9zICs9IGNudDsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX3NldF90cmFjZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwljaGFyIGJ1ZlttYXhfdHJhY2VyX3R5cGVfbGVuKzJdOworCWludCByOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJaWYgKGN1cnJlbnRfdHJhY2UpCisJCXIgPSBzcHJpbnRmKGJ1ZiwgIiVzXG4iLCBjdXJyZW50X3RyYWNlLT5uYW1lKTsKKwllbHNlCisJCXIgPSBzcHJpbnRmKGJ1ZiwgIlxuIik7CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjbnQsIHBwb3MsIGJ1Ziwgcik7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX3NldF90cmFjZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCQlzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICZnbG9iYWxfdHJhY2U7CisJc3RydWN0IHRyYWNlciAqdDsKKwljaGFyIGJ1ZlttYXhfdHJhY2VyX3R5cGVfbGVuKzFdOworCWludCBpOworCisJaWYgKGNudCA+IG1heF90cmFjZXJfdHlwZV9sZW4pCisJCWNudCA9IG1heF90cmFjZXJfdHlwZV9sZW47CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwkvKiBzdHJpcCBlbmRpbmcgd2hpdGVzcGFjZS4gKi8KKwlmb3IgKGkgPSBjbnQgLSAxOyBpID4gMCAmJiBpc3NwYWNlKGJ1ZltpXSk7IGktLSkKKwkJYnVmW2ldID0gMDsKKworCW11dGV4X2xvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCWZvciAodCA9IHRyYWNlX3R5cGVzOyB0OyB0ID0gdC0+bmV4dCkgeworCQlpZiAoc3RyY21wKHQtPm5hbWUsIGJ1ZikgPT0gMCkKKwkJCWJyZWFrOworCX0KKwlpZiAoIXQgfHwgdCA9PSBjdXJyZW50X3RyYWNlKQorCQlnb3RvIG91dDsKKworCWlmIChjdXJyZW50X3RyYWNlICYmIGN1cnJlbnRfdHJhY2UtPnJlc2V0KQorCQljdXJyZW50X3RyYWNlLT5yZXNldCh0cik7CisKKwljdXJyZW50X3RyYWNlID0gdDsKKwlpZiAodC0+aW5pdCkKKwkJdC0+aW5pdCh0cik7CisKKyBvdXQ6CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCWZpbHAtPmZfcG9zICs9IGNudDsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX21heF9sYXRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXVuc2lnbmVkIGxvbmcgKnB0ciA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwljaGFyIGJ1Zls2NF07CisJaW50IHI7CisKKwlyID0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVsZFxuIiwKKwkJICAgICAqcHRyID09ICh1bnNpZ25lZCBsb25nKS0xID8gLTEgOiBuc2Vjc190b191c2VjcygqcHRyKSk7CisJaWYgKHIgPiBzaXplb2YoYnVmKSkKKwkJciA9IHNpemVvZihidWYpOworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjbnQsIHBwb3MsIGJ1Ziwgcik7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX21heF9sYXRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJbG9uZyAqcHRyID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCWNoYXIgYnVmWzY0XTsKKwlsb25nIHZhbDsKKwlpbnQgcmV0OworCisJaWYgKGNudCA+PSBzaXplb2YoYnVmKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwlyZXQgPSBzdHJpY3Rfc3RydG91bChidWYsIDEwLCAmdmFsKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCSpwdHIgPSB2YWwgKiAxMDAwOworCisJcmV0dXJuIGNudDsKK30KKworc3RhdGljIGF0b21pY190IHRyYWNpbmdfcmVhZGVyOworCitzdGF0aWMgaW50IHRyYWNpbmdfb3Blbl9waXBlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcjsKKworCWlmICh0cmFjaW5nX2Rpc2FibGVkKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCS8qIFdlIG9ubHkgYWxsb3cgZm9yIHJlYWRlciBvZiB0aGUgcGlwZSAqLworCWlmIChhdG9taWNfaW5jX3JldHVybigmdHJhY2luZ19yZWFkZXIpICE9IDEpIHsKKwkJYXRvbWljX2RlYygmdHJhY2luZ19yZWFkZXIpOworCQlyZXR1cm4gLUVCVVNZOworCX0KKworCS8qIGNyZWF0ZSBhIGJ1ZmZlciB0byBzdG9yZSB0aGUgaW5mb3JtYXRpb24gdG8gcGFzcyB0byB1c2Vyc3BhY2UgKi8KKwlpdGVyID0ga3phbGxvYyhzaXplb2YoKml0ZXIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWl0ZXIpCisJCXJldHVybiAtRU5PTUVNOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJaXRlci0+dHIgPSAmZ2xvYmFsX3RyYWNlOworCWl0ZXItPnRyYWNlID0gY3VycmVudF90cmFjZTsKKwlmaWxwLT5wcml2YXRlX2RhdGEgPSBpdGVyOworCisJaWYgKGl0ZXItPnRyYWNlLT5waXBlX29wZW4pCisJCWl0ZXItPnRyYWNlLT5waXBlX29wZW4oaXRlcik7CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRyYWNpbmdfcmVsZWFzZV9waXBlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKworCWtmcmVlKGl0ZXIpOworCWF0b21pY19kZWMoJnRyYWNpbmdfcmVhZGVyKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50Cit0cmFjaW5nX3BvbGxfcGlwZShzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqcG9sbF90YWJsZSkKK3sKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisKKwlpZiAodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX0JMT0NLKSB7CisJCS8qCisJCSAqIEFsd2F5cyBzZWxlY3QgYXMgcmVhZGFibGUgd2hlbiBpbiBibG9ja2luZyBtb2RlCisJCSAqLworCQlyZXR1cm4gUE9MTElOIHwgUE9MTFJETk9STTsKKwl9IGVsc2UgeworCQlpZiAoIXRyYWNlX2VtcHR5KGl0ZXIpKQorCQkJcmV0dXJuIFBPTExJTiB8IFBPTExSRE5PUk07CisJCXBvbGxfd2FpdChmaWxwLCAmdHJhY2Vfd2FpdCwgcG9sbF90YWJsZSk7CisJCWlmICghdHJhY2VfZW1wdHkoaXRlcikpCisJCQlyZXR1cm4gUE9MTElOIHwgUE9MTFJETk9STTsKKworCQlyZXR1cm4gMDsKKwl9Cit9CisKKy8qCisgKiBDb25zdW1lciByZWFkZXIuCisgKi8KK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX3JlYWRfcGlwZShzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXN0YXRpYyBjcHVtYXNrX3QgbWFzazsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworI2lmZGVmIENPTkZJR19GVFJBQ0UKKwlpbnQgZnRyYWNlX3NhdmU7CisjZW5kaWYKKwlpbnQgY3B1OworCXNzaXplX3Qgc3JldDsKKworCS8qIHJldHVybiBhbnkgbGVmdG92ZXIgZGF0YSAqLworCXNyZXQgPSB0cmFjZV9zZXFfdG9fdXNlcigmaXRlci0+c2VxLCB1YnVmLCBjbnQpOworCWlmIChzcmV0ICE9IC1FQlVTWSkKKwkJcmV0dXJuIHNyZXQ7CisJc3JldCA9IDA7CisKKwl0cmFjZV9zZXFfcmVzZXQoJml0ZXItPnNlcSk7CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlpZiAoaXRlci0+dHJhY2UtPnJlYWQpIHsKKwkJc3JldCA9IGl0ZXItPnRyYWNlLT5yZWFkKGl0ZXIsIGZpbHAsIHVidWYsIGNudCwgcHBvcyk7CisJCWlmIChzcmV0KQorCQkJZ290byBvdXQ7CisJfQorCisJd2hpbGUgKHRyYWNlX2VtcHR5KGl0ZXIpKSB7CisKKwkJaWYgKChmaWxwLT5mX2ZsYWdzICYgT19OT05CTE9DSykpIHsKKwkJCXNyZXQgPSAtRUFHQUlOOworCQkJZ290byBvdXQ7CisJCX0KKworCQkvKgorCQkgKiBUaGlzIGlzIGEgbWFrZS1zaGlmdCB3YWl0cXVldWUuIFRoZSByZWFzb24gd2UgZG9uJ3QgdXNlCisJCSAqIGFuIGFjdHVhbCB3YWl0IHF1ZXVlIGlzIGJlY2F1c2U6CisJCSAqICAxKSB3ZSBvbmx5IGV2ZXIgaGF2ZSBvbmUgd2FpdGVyCisJCSAqICAyKSB0aGUgdHJhY2luZywgdHJhY2VzIGFsbCBmdW5jdGlvbnMsIHdlIGRvbid0IHdhbnQKKwkJICogICAgIHRoZSBvdmVyaGVhZCBvZiBjYWxsaW5nIHdha2VfdXAgYW5kIGZyaWVuZHMKKwkJICogICAgIChhbmQgdHJhY2luZyB0aGVtIHRvbykKKwkJICogICAgIEFueXdheSwgdGhpcyBpcyByZWFsbHkgdmVyeSBwcmltaXRpdmUgd2FrZXVwLgorCQkgKi8KKwkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKKwkJaXRlci0+dHItPndhaXRlciA9IGN1cnJlbnQ7CisKKwkJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCQkvKiBzbGVlcCBmb3IgMTAwIG1zZWNzLCBhbmQgdHJ5IGFnYWluLiAqLworCQlzY2hlZHVsZV90aW1lb3V0KEhaLzEwKTsKKworCQltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCQlpdGVyLT50ci0+d2FpdGVyID0gTlVMTDsKKworCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKKwkJCXNyZXQgPSAtRUlOVFI7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWlmIChpdGVyLT50cmFjZSAhPSBjdXJyZW50X3RyYWNlKQorCQkJZ290byBvdXQ7CisKKwkJLyoKKwkJICogV2UgYmxvY2sgdW50aWwgd2UgcmVhZCBzb21ldGhpbmcgYW5kIHRyYWNpbmcgaXMgZGlzYWJsZWQuCisJCSAqIFdlIHN0aWxsIGJsb2NrIGlmIHRyYWNpbmcgaXMgZGlzYWJsZWQsIGJ1dCB3ZSBoYXZlIG5ldmVyCisJCSAqIHJlYWQgYW55dGhpbmcuIFRoaXMgYWxsb3dzIGEgdXNlciB0byBjYXQgdGhpcyBmaWxlLCBhbmQKKwkJICogdGhlbiBlbmFibGUgdHJhY2luZy4gQnV0IGFmdGVyIHdlIGhhdmUgcmVhZCBzb21ldGhpbmcsCisJCSAqIHdlIGdpdmUgYW4gRU9GIHdoZW4gdHJhY2luZyBpcyBhZ2FpbiBkaXNhYmxlZC4KKwkJICoKKwkJICogaXRlci0+cG9zIHdpbGwgYmUgMCBpZiB3ZSBoYXZlbid0IHJlYWQgYW55dGhpbmcuCisJCSAqLworCQlpZiAoIXRyYWNlcl9lbmFibGVkICYmIGl0ZXItPnBvcykKKwkJCWJyZWFrOworCisJCWNvbnRpbnVlOworCX0KKworCS8qIHN0b3Agd2hlbiB0cmFjaW5nIGlzIGZpbmlzaGVkICovCisJaWYgKHRyYWNlX2VtcHR5KGl0ZXIpKQorCQlnb3RvIG91dDsKKworCWlmIChjbnQgPj0gUEFHRV9TSVpFKQorCQljbnQgPSBQQUdFX1NJWkUgLSAxOworCisJLyogcmVzZXQgYWxsIGJ1dCB0ciwgdHJhY2UsIGFuZCBvdmVycnVucyAqLworCW1lbXNldCgmaXRlci0+c2VxLCAwLAorCSAgICAgICBzaXplb2Yoc3RydWN0IHRyYWNlX2l0ZXJhdG9yKSAtCisJICAgICAgIG9mZnNldG9mKHN0cnVjdCB0cmFjZV9pdGVyYXRvciwgc2VxKSk7CisJaXRlci0+cG9zID0gLTE7CisKKwkvKgorCSAqIFdlIG5lZWQgdG8gc3RvcCBhbGwgdHJhY2luZyBvbiBhbGwgQ1BVUyB0byByZWFkIHRoZQorCSAqIHRoZSBuZXh0IGJ1ZmZlci4gVGhpcyBpcyBhIGJpdCBleHBlbnNpdmUsIGJ1dCBpcworCSAqIG5vdCBkb25lIG9mdGVuLiBXZSBmaWxsIGFsbCB3aGF0IHdlIGNhbiByZWFkLAorCSAqIGFuZCB0aGVuIHJlbGVhc2UgdGhlIGxvY2tzIGFnYWluLgorCSAqLworCisJY3B1c19jbGVhcihtYXNrKTsKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisjaWZkZWYgQ09ORklHX0ZUUkFDRQorCWZ0cmFjZV9zYXZlID0gZnRyYWNlX2VuYWJsZWQ7CisJZnRyYWNlX2VuYWJsZWQgPSAwOworI2VuZGlmCisJc21wX3dtYigpOworCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGNwdSkgeworCQlkYXRhID0gaXRlci0+dHItPmRhdGFbY3B1XTsKKworCQlpZiAoIWhlYWRfcGFnZShkYXRhKSB8fCAhZGF0YS0+dHJhY2VfaWR4KQorCQkJY29udGludWU7CisKKwkJYXRvbWljX2luYygmZGF0YS0+ZGlzYWJsZWQpOworCQljcHVfc2V0KGNwdSwgbWFzayk7CisJfQorCisJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBtYXNrKSB7CisJCWRhdGEgPSBpdGVyLT50ci0+ZGF0YVtjcHVdOworCQlfX3Jhd19zcGluX2xvY2soJmRhdGEtPmxvY2spOworCisJCWlmIChkYXRhLT5vdmVycnVuID4gaXRlci0+bGFzdF9vdmVycnVuW2NwdV0pCisJCQlpdGVyLT5vdmVycnVuW2NwdV0gKz0KKwkJCQlkYXRhLT5vdmVycnVuIC0gaXRlci0+bGFzdF9vdmVycnVuW2NwdV07CisJCWl0ZXItPmxhc3Rfb3ZlcnJ1bltjcHVdID0gZGF0YS0+b3ZlcnJ1bjsKKwl9CisKKwl3aGlsZSAoZmluZF9uZXh0X2VudHJ5X2luYyhpdGVyKSAhPSBOVUxMKSB7CisJCWludCByZXQ7CisJCWludCBsZW4gPSBpdGVyLT5zZXEubGVuOworCisJCXJldCA9IHByaW50X3RyYWNlX2xpbmUoaXRlcik7CisJCWlmICghcmV0KSB7CisJCQkvKiBkb24ndCBwcmludCBwYXJ0aWFsIGxpbmVzICovCisJCQlpdGVyLT5zZXEubGVuID0gbGVuOworCQkJYnJlYWs7CisJCX0KKworCQl0cmFjZV9jb25zdW1lKGl0ZXIpOworCisJCWlmIChpdGVyLT5zZXEubGVuID49IGNudCkKKwkJCWJyZWFrOworCX0KKworCWZvcl9lYWNoX2NwdV9tYXNrKGNwdSwgbWFzaykgeworCQlkYXRhID0gaXRlci0+dHItPmRhdGFbY3B1XTsKKwkJX19yYXdfc3Bpbl91bmxvY2soJmRhdGEtPmxvY2spOworCX0KKworCWZvcl9lYWNoX2NwdV9tYXNrKGNwdSwgbWFzaykgeworCQlkYXRhID0gaXRlci0+dHItPmRhdGFbY3B1XTsKKwkJYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOworCX0KKyNpZmRlZiBDT05GSUdfRlRSQUNFCisJZnRyYWNlX2VuYWJsZWQgPSBmdHJhY2Vfc2F2ZTsKKyNlbmRpZgorCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCS8qIE5vdyBjb3B5IHdoYXQgd2UgaGF2ZSB0byB0aGUgdXNlciAqLworCXNyZXQgPSB0cmFjZV9zZXFfdG9fdXNlcigmaXRlci0+c2VxLCB1YnVmLCBjbnQpOworCWlmIChpdGVyLT5zZXEucmVhZHBvcyA+PSBpdGVyLT5zZXEubGVuKQorCQl0cmFjZV9zZXFfcmVzZXQoJml0ZXItPnNlcSk7CisJaWYgKHNyZXQgPT0gLUVCVVNZKQorCQlzcmV0ID0gMDsKKworb3V0OgorCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisKKwlyZXR1cm4gc3JldDsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfZW50cmllc19yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwljaGFyIGJ1Zls2NF07CisJaW50IHI7CisKKwlyID0gc3ByaW50ZihidWYsICIlbHVcbiIsIHRyLT5lbnRyaWVzKTsKKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodWJ1ZiwgY250LCBwcG9zLCBidWYsIHIpOworfQorCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19lbnRyaWVzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXVuc2lnbmVkIGxvbmcgdmFsOworCWNoYXIgYnVmWzY0XTsKKwlpbnQgaSwgcmV0OworCisJaWYgKGNudCA+PSBzaXplb2YoYnVmKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwlyZXQgPSBzdHJpY3Rfc3RydG91bChidWYsIDEwLCAmdmFsKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCS8qIG11c3QgaGF2ZSBhdCBsZWFzdCAxIGVudHJ5ICovCisJaWYgKCF2YWwpCisJCXJldHVybiAtRUlOVkFMOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisKKwlpZiAoY3VycmVudF90cmFjZSAhPSAmbm9fdHJhY2VyKSB7CisJCWNudCA9IC1FQlVTWTsKKwkJcHJfaW5mbygiZnRyYWNlOiBzZXQgY3VycmVudF90cmFjZXIgdG8gbm9uZSIKKwkJCSIgYmVmb3JlIG1vZGlmeWluZyBidWZmZXIgc2l6ZVxuIik7CisJCWdvdG8gb3V0OworCX0KKworCWlmICh2YWwgPiBnbG9iYWxfdHJhY2UuZW50cmllcykgeworCQlsb25nIHBhZ2VzX3JlcXVlc3RlZDsKKwkJdW5zaWduZWQgbG9uZyBmcmVlYWJsZV9wYWdlczsKKworCQkvKiBtYWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggbWVtb3J5IGJlZm9yZSBtYXBwaW5nICovCisJCXBhZ2VzX3JlcXVlc3RlZCA9CisJCQkodmFsICsgKEVOVFJJRVNfUEVSX1BBR0UtMSkpIC8gRU5UUklFU19QRVJfUEFHRTsKKworCQkvKiBhY2NvdW50IGZvciBlYWNoIGJ1ZmZlciAoYW5kIG1heF90cikgKi8KKwkJcGFnZXNfcmVxdWVzdGVkICo9IHRyYWNpbmdfbnJfYnVmZmVycyAqIDI7CisKKwkJLyogQ2hlY2sgZm9yIG92ZXJmbG93ICovCisJCWlmIChwYWdlc19yZXF1ZXN0ZWQgPCAwKSB7CisJCQljbnQgPSAtRU5PTUVNOworCQkJZ290byBvdXQ7CisJCX0KKworCQlmcmVlYWJsZV9wYWdlcyA9IGRldGVybWluZV9kaXJ0eWFibGVfbWVtb3J5KCk7CisKKwkJLyogd2Ugb25seSBhbGxvdyB0byByZXF1ZXN0IDEvNCBvZiB1c2VhYmxlIG1lbW9yeSAqLworCQlpZiAocGFnZXNfcmVxdWVzdGVkID4KKwkJICAgICgoZnJlZWFibGVfcGFnZXMgKyB0cmFjaW5nX3BhZ2VzX2FsbG9jYXRlZCkgLyA0KSkgeworCQkJY250ID0gLUVOT01FTTsKKwkJCWdvdG8gb3V0OworCQl9CisKKwkJd2hpbGUgKGdsb2JhbF90cmFjZS5lbnRyaWVzIDwgdmFsKSB7CisJCQlpZiAodHJhY2VfYWxsb2NfcGFnZSgpKSB7CisJCQkJY250ID0gLUVOT01FTTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKwkJCS8qIGRvdWJsZSBjaGVjayB0aGF0IHdlIGRvbid0IGdvIG92ZXIgdGhlIGtub3duIHBhZ2VzICovCisJCQlpZiAodHJhY2luZ19wYWdlc19hbGxvY2F0ZWQgPiBwYWdlc19yZXF1ZXN0ZWQpCisJCQkJYnJlYWs7CisJCX0KKworCX0gZWxzZSB7CisJCS8qIGluY2x1ZGUgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHZhbCAoaW5jIG9mIHBhZ2UgZW50cmllcykgKi8KKwkJd2hpbGUgKGdsb2JhbF90cmFjZS5lbnRyaWVzID4gdmFsICsgKEVOVFJJRVNfUEVSX1BBR0UgLSAxKSkKKwkJCXRyYWNlX2ZyZWVfcGFnZSgpOworCX0KKworCS8qIGNoZWNrIGludGVncml0eSAqLworCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGkpCisJCWNoZWNrX3BhZ2VzKGdsb2JhbF90cmFjZS5kYXRhW2ldKTsKKworCWZpbHAtPmZfcG9zICs9IGNudDsKKworCS8qIElmIGNoZWNrIHBhZ2VzIGZhaWxlZCwgcmV0dXJuIEVOT01FTSAqLworCWlmICh0cmFjaW5nX2Rpc2FibGVkKQorCQljbnQgPSAtRU5PTUVNOworIG91dDoKKwltYXhfdHIuZW50cmllcyA9IGdsb2JhbF90cmFjZS5lbnRyaWVzOworCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisKKwlyZXR1cm4gY250OworfQorCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB0cmFjaW5nX21heF9sYXRfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX21heF9sYXRfcmVhZCwKKwkud3JpdGUJCT0gdHJhY2luZ19tYXhfbGF0X3dyaXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHJhY2luZ19jdHJsX2ZvcHMgPSB7CisJLm9wZW4JCT0gdHJhY2luZ19vcGVuX2dlbmVyaWMsCisJLnJlYWQJCT0gdHJhY2luZ19jdHJsX3JlYWQsCisJLndyaXRlCQk9IHRyYWNpbmdfY3RybF93cml0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHNldF90cmFjZXJfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX3NldF90cmFjZV9yZWFkLAorCS53cml0ZQkJPSB0cmFjaW5nX3NldF90cmFjZV93cml0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfcGlwZV9mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9waXBlLAorCS5wb2xsCQk9IHRyYWNpbmdfcG9sbF9waXBlLAorCS5yZWFkCQk9IHRyYWNpbmdfcmVhZF9waXBlLAorCS5yZWxlYXNlCT0gdHJhY2luZ19yZWxlYXNlX3BpcGUsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB0cmFjaW5nX2VudHJpZXNfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX2VudHJpZXNfcmVhZCwKKwkud3JpdGUJCT0gdHJhY2luZ19lbnRyaWVzX3dyaXRlLAorfTsKKworI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19yZWFkX2xvbmcoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICp1YnVmLAorCQkgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwl1bnNpZ25lZCBsb25nICpwID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCWNoYXIgYnVmWzY0XTsKKwlpbnQgcjsKKworCXIgPSBzcHJpbnRmKGJ1ZiwgIiVsZFxuIiwgKnApOworCisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKK30KKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHJhY2luZ19yZWFkX2xvbmdfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX3JlYWRfbG9uZywKK307CisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBkZW50cnkgKmRfdHJhY2VyOworCitzdHJ1Y3QgZGVudHJ5ICp0cmFjaW5nX2luaXRfZGVudHJ5KHZvaWQpCit7CisJc3RhdGljIGludCBvbmNlOworCisJaWYgKGRfdHJhY2VyKQorCQlyZXR1cm4gZF90cmFjZXI7CisKKwlkX3RyYWNlciA9IGRlYnVnZnNfY3JlYXRlX2RpcigidHJhY2luZyIsIE5VTEwpOworCisJaWYgKCFkX3RyYWNlciAmJiAhb25jZSkgeworCQlvbmNlID0gMTsKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzIGRpcmVjdG9yeSAndHJhY2luZydcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gZF90cmFjZXI7Cit9CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NFTEZURVNUCisvKiBMZXQgc2VsZnRlc3QgaGF2ZSBhY2Nlc3MgdG8gc3RhdGljIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgKi8KKyNpbmNsdWRlICJ0cmFjZV9zZWxmdGVzdC5jIgorI2VuZGlmCisKK3N0YXRpYyBfX2luaXQgdm9pZCB0cmFjZXJfaW5pdF9kZWJ1Z2ZzKHZvaWQpCit7CisJc3RydWN0IGRlbnRyeSAqZF90cmFjZXI7CisJc3RydWN0IGRlbnRyeSAqZW50cnk7CisKKwlkX3RyYWNlciA9IHRyYWNpbmdfaW5pdF9kZW50cnkoKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2luZ19lbmFibGVkIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgICZnbG9iYWxfdHJhY2UsICZ0cmFjaW5nX2N0cmxfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICd0cmFjaW5nX2VuYWJsZWQnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgiaXRlcl9jdHJsIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgIE5VTEwsICZ0cmFjaW5nX2l0ZXJfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICdpdGVyX2N0cmwnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2luZ19jcHVtYXNrIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgIE5VTEwsICZ0cmFjaW5nX2NwdW1hc2tfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICd0cmFjaW5nX2NwdW1hc2snIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgibGF0ZW5jeV90cmFjZSIsIDA0NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZ2xvYmFsX3RyYWNlLCAmdHJhY2luZ19sdF9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ2xhdGVuY3lfdHJhY2UnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2UiLCAwNDQ0LCBkX3RyYWNlciwKKwkJCQkgICAgJmdsb2JhbF90cmFjZSwgJnRyYWNpbmdfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICd0cmFjZScgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJhdmFpbGFibGVfdHJhY2VycyIsIDA0NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZ2xvYmFsX3RyYWNlLCAmc2hvd190cmFjZXNfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICd0cmFjZScgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJjdXJyZW50X3RyYWNlciIsIDA0NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZ2xvYmFsX3RyYWNlLCAmc2V0X3RyYWNlcl9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ3RyYWNlJyBlbnRyeVxuIik7CisKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoInRyYWNpbmdfbWF4X2xhdGVuY3kiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgJnRyYWNpbmdfbWF4X2xhdGVuY3ksCisJCQkJICAgICZ0cmFjaW5nX21heF9sYXRfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICIKKwkJCSAgICIndHJhY2luZ19tYXhfbGF0ZW5jeScgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJ0cmFjaW5nX3RocmVzaCIsIDA2NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmdHJhY2luZ190aHJlc2gsICZ0cmFjaW5nX21heF9sYXRfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICIKKwkJCSAgICIndHJhY2luZ190aHJlYXNoJyBlbnRyeVxuIik7CisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJSRUFETUUiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJnRyYWNpbmdfcmVhZG1lX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAnUkVBRE1FJyBlbnRyeVxuIik7CisKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoInRyYWNlX3BpcGUiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJnRyYWNpbmdfcGlwZV9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgIgorCQkJICAgIid0cmFjaW5nX3RocmVhc2gnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2VfZW50cmllcyIsIDA2NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZ2xvYmFsX3RyYWNlLCAmdHJhY2luZ19lbnRyaWVzX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAiCisJCQkgICAiJ3RyYWNpbmdfdGhyZWFzaCcgZW50cnlcbiIpOworCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJkeW5fZnRyYWNlX3RvdGFsX2luZm8iLCAwNDQ0LCBkX3RyYWNlciwKKwkJCQkgICAgJmZ0cmFjZV91cGRhdGVfdG90X2NudCwKKwkJCQkgICAgJnRyYWNpbmdfcmVhZF9sb25nX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAiCisJCQkgICAiJ2R5bl9mdHJhY2VfdG90YWxfaW5mbycgZW50cnlcbiIpOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1NZU1BST0ZfVFJBQ0VSCisJaW5pdF90cmFjZXJfc3lzcHJvZl9kZWJ1Z2ZzKGRfdHJhY2VyKTsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50IHRyYWNlX2FsbG9jX3BhZ2Uodm9pZCkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXN0cnVjdCBwYWdlICpwYWdlLCAqdG1wOworCUxJU1RfSEVBRChwYWdlcyk7CisJdm9pZCAqYXJyYXk7CisJdW5zaWduZWQgcGFnZXNfYWxsb2NhdGVkID0gMDsKKwlpbnQgaTsKKworCS8qIGZpcnN0IGFsbG9jYXRlIGEgcGFnZSBmb3IgZWFjaCBDUFUgKi8KKwlmb3JfZWFjaF90cmFjaW5nX2NwdShpKSB7CisJCWFycmF5ID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmIChhcnJheSA9PSBOVUxMKSB7CisJCQlwcmludGsoS0VSTl9FUlIgInRyYWNlcjogZmFpbGVkIHRvIGFsbG9jYXRlIHBhZ2UiCisJCQkgICAgICAgImZvciB0cmFjZSBidWZmZXIhXG4iKTsKKwkJCWdvdG8gZnJlZV9wYWdlczsKKwkJfQorCisJCXBhZ2VzX2FsbG9jYXRlZCsrOworCQlwYWdlID0gdmlydF90b19wYWdlKGFycmF5KTsKKwkJbGlzdF9hZGQoJnBhZ2UtPmxydSwgJnBhZ2VzKTsKKworLyogT25seSBhbGxvY2F0ZSBpZiB3ZSBhcmUgYWN0dWFsbHkgdXNpbmcgdGhlIG1heCB0cmFjZSAqLworI2lmZGVmIENPTkZJR19UUkFDRVJfTUFYX1RSQUNFCisJCWFycmF5ID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CisJCWlmIChhcnJheSA9PSBOVUxMKSB7CisJCQlwcmludGsoS0VSTl9FUlIgInRyYWNlcjogZmFpbGVkIHRvIGFsbG9jYXRlIHBhZ2UiCisJCQkgICAgICAgImZvciB0cmFjZSBidWZmZXIhXG4iKTsKKwkJCWdvdG8gZnJlZV9wYWdlczsKKwkJfQorCQlwYWdlc19hbGxvY2F0ZWQrKzsKKwkJcGFnZSA9IHZpcnRfdG9fcGFnZShhcnJheSk7CisJCWxpc3RfYWRkKCZwYWdlLT5scnUsICZwYWdlcyk7CisjZW5kaWYKKwl9CisKKwkvKiBOb3cgdGhhdCB3ZSBzdWNjZXNzZnVsbHkgYWxsb2NhdGUgYSBwYWdlIHBlciBDUFUsIGFkZCB0aGVtICovCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQlkYXRhID0gZ2xvYmFsX3RyYWNlLmRhdGFbaV07CisJCXBhZ2UgPSBsaXN0X2VudHJ5KHBhZ2VzLm5leHQsIHN0cnVjdCBwYWdlLCBscnUpOworCQlsaXN0X2RlbF9pbml0KCZwYWdlLT5scnUpOworCQlsaXN0X2FkZF90YWlsKCZwYWdlLT5scnUsICZkYXRhLT50cmFjZV9wYWdlcyk7CisJCUNsZWFyUGFnZUxSVShwYWdlKTsKKworI2lmZGVmIENPTkZJR19UUkFDRVJfTUFYX1RSQUNFCisJCWRhdGEgPSBtYXhfdHIuZGF0YVtpXTsKKwkJcGFnZSA9IGxpc3RfZW50cnkocGFnZXMubmV4dCwgc3RydWN0IHBhZ2UsIGxydSk7CisJCWxpc3RfZGVsX2luaXQoJnBhZ2UtPmxydSk7CisJCWxpc3RfYWRkX3RhaWwoJnBhZ2UtPmxydSwgJmRhdGEtPnRyYWNlX3BhZ2VzKTsKKwkJU2V0UGFnZUxSVShwYWdlKTsKKyNlbmRpZgorCX0KKwl0cmFjaW5nX3BhZ2VzX2FsbG9jYXRlZCArPSBwYWdlc19hbGxvY2F0ZWQ7CisJZ2xvYmFsX3RyYWNlLmVudHJpZXMgKz0gRU5UUklFU19QRVJfUEFHRTsKKworCXJldHVybiAwOworCisgZnJlZV9wYWdlczoKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGFnZSwgdG1wLCAmcGFnZXMsIGxydSkgeworCQlsaXN0X2RlbF9pbml0KCZwYWdlLT5scnUpOworCQlfX2ZyZWVfcGFnZShwYWdlKTsKKwl9CisJcmV0dXJuIC1FTk9NRU07Cit9CisKK3N0YXRpYyBpbnQgdHJhY2VfZnJlZV9wYWdlKHZvaWQpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwOworCWludCBpOworCWludCByZXQgPSAwOworCisJLyogZnJlZSBvbmUgcGFnZSBmcm9tIGVhY2ggYnVmZmVyICovCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQlkYXRhID0gZ2xvYmFsX3RyYWNlLmRhdGFbaV07CisJCXAgPSBkYXRhLT50cmFjZV9wYWdlcy5uZXh0OworCQlpZiAocCA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpIHsKKwkJCS8qIHNob3VsZCBuZXZlciBoYXBwZW4gKi8KKwkJCVdBUk5fT04oMSk7CisJCQl0cmFjaW5nX2Rpc2FibGVkID0gMTsKKwkJCXJldCA9IC0xOworCQkJYnJlYWs7CisJCX0KKwkJcGFnZSA9IGxpc3RfZW50cnkocCwgc3RydWN0IHBhZ2UsIGxydSk7CisJCUNsZWFyUGFnZUxSVShwYWdlKTsKKwkJbGlzdF9kZWwoJnBhZ2UtPmxydSk7CisJCXRyYWNpbmdfcGFnZXNfYWxsb2NhdGVkLS07CisJCXRyYWNpbmdfcGFnZXNfYWxsb2NhdGVkLS07CisJCV9fZnJlZV9wYWdlKHBhZ2UpOworCisJCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisKKyNpZmRlZiBDT05GSUdfVFJBQ0VSX01BWF9UUkFDRQorCQlkYXRhID0gbWF4X3RyLmRhdGFbaV07CisJCXAgPSBkYXRhLT50cmFjZV9wYWdlcy5uZXh0OworCQlpZiAocCA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpIHsKKwkJCS8qIHNob3VsZCBuZXZlciBoYXBwZW4gKi8KKwkJCVdBUk5fT04oMSk7CisJCQl0cmFjaW5nX2Rpc2FibGVkID0gMTsKKwkJCXJldCA9IC0xOworCQkJYnJlYWs7CisJCX0KKwkJcGFnZSA9IGxpc3RfZW50cnkocCwgc3RydWN0IHBhZ2UsIGxydSk7CisJCUNsZWFyUGFnZUxSVShwYWdlKTsKKwkJbGlzdF9kZWwoJnBhZ2UtPmxydSk7CisJCV9fZnJlZV9wYWdlKHBhZ2UpOworCisJCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisjZW5kaWYKKwl9CisJZ2xvYmFsX3RyYWNlLmVudHJpZXMgLT0gRU5UUklFU19QRVJfUEFHRTsKKworCXJldHVybiByZXQ7Cit9CisKK19faW5pdCBzdGF0aWMgaW50IHRyYWNlcl9hbGxvY19idWZmZXJzKHZvaWQpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl2b2lkICphcnJheTsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlpbnQgcGFnZXMgPSAwOworCWludCByZXQgPSAtRU5PTUVNOworCWludCBpOworCisJLyogVE9ETzogbWFrZSB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgaG90IHBsdWdnYWJsZSB3aXRoIENQVVMgKi8KKwl0cmFjaW5nX25yX2J1ZmZlcnMgPSBudW1fcG9zc2libGVfY3B1cygpOworCXRyYWNpbmdfYnVmZmVyX21hc2sgPSBjcHVfcG9zc2libGVfbWFwOworCisJLyogQWxsb2NhdGUgdGhlIGZpcnN0IHBhZ2UgZm9yIGFsbCBidWZmZXJzICovCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQlkYXRhID0gZ2xvYmFsX3RyYWNlLmRhdGFbaV0gPSAmcGVyX2NwdShnbG9iYWxfdHJhY2VfY3B1LCBpKTsKKwkJbWF4X3RyLmRhdGFbaV0gPSAmcGVyX2NwdShtYXhfZGF0YSwgaSk7CisKKwkJYXJyYXkgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKKwkJaWYgKGFycmF5ID09IE5VTEwpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAidHJhY2VyOiBmYWlsZWQgdG8gYWxsb2NhdGUgcGFnZSIKKwkJCSAgICAgICAiZm9yIHRyYWNlIGJ1ZmZlciFcbiIpOworCQkJZ290byBmcmVlX2J1ZmZlcnM7CisJCX0KKworCQkvKiBzZXQgdGhlIGFycmF5IHRvIHRoZSBsaXN0ICovCisJCUlOSVRfTElTVF9IRUFEKCZkYXRhLT50cmFjZV9wYWdlcyk7CisJCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UoYXJyYXkpOworCQlsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmZGF0YS0+dHJhY2VfcGFnZXMpOworCQkvKiB1c2UgdGhlIExSVSBmbGFnIHRvIGRpZmZlcmVudGlhdGUgdGhlIHR3byBidWZmZXJzICovCisJCUNsZWFyUGFnZUxSVShwYWdlKTsKKworCQlkYXRhLT5sb2NrID0gKHJhd19zcGlubG9ja190KV9fUkFXX1NQSU5fTE9DS19VTkxPQ0tFRDsKKwkJbWF4X3RyLmRhdGFbaV0tPmxvY2sgPSAocmF3X3NwaW5sb2NrX3QpX19SQVdfU1BJTl9MT0NLX1VOTE9DS0VEOworCisvKiBPbmx5IGFsbG9jYXRlIGlmIHdlIGFyZSBhY3R1YWxseSB1c2luZyB0aGUgbWF4IHRyYWNlICovCisjaWZkZWYgQ09ORklHX1RSQUNFUl9NQVhfVFJBQ0UKKwkJYXJyYXkgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKKwkJaWYgKGFycmF5ID09IE5VTEwpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAidHJhY2VyOiBmYWlsZWQgdG8gYWxsb2NhdGUgcGFnZSIKKwkJCSAgICAgICAiZm9yIHRyYWNlIGJ1ZmZlciFcbiIpOworCQkJZ290byBmcmVlX2J1ZmZlcnM7CisJCX0KKworCQlJTklUX0xJU1RfSEVBRCgmbWF4X3RyLmRhdGFbaV0tPnRyYWNlX3BhZ2VzKTsKKwkJcGFnZSA9IHZpcnRfdG9fcGFnZShhcnJheSk7CisJCWxpc3RfYWRkKCZwYWdlLT5scnUsICZtYXhfdHIuZGF0YVtpXS0+dHJhY2VfcGFnZXMpOworCQlTZXRQYWdlTFJVKHBhZ2UpOworI2VuZGlmCisJfQorCisJLyoKKwkgKiBTaW5jZSB3ZSBhbGxvY2F0ZSBieSBvcmRlcnMgb2YgcGFnZXMsIHdlIG1heSBiZSBhYmxlIHRvCisJICogcm91bmQgdXAgYSBiaXQuCisJICovCisJZ2xvYmFsX3RyYWNlLmVudHJpZXMgPSBFTlRSSUVTX1BFUl9QQUdFOworCXBhZ2VzKys7CisKKwl3aGlsZSAoZ2xvYmFsX3RyYWNlLmVudHJpZXMgPCB0cmFjZV9ucl9lbnRyaWVzKSB7CisJCWlmICh0cmFjZV9hbGxvY19wYWdlKCkpCisJCQlicmVhazsKKwkJcGFnZXMrKzsKKwl9CisJbWF4X3RyLmVudHJpZXMgPSBnbG9iYWxfdHJhY2UuZW50cmllczsKKworCXByX2luZm8oInRyYWNlcjogJWQgcGFnZXMgYWxsb2NhdGVkIGZvciAlbGQgZW50cmllcyBvZiAlbGQgYnl0ZXNcbiIsCisJCXBhZ2VzLCB0cmFjZV9ucl9lbnRyaWVzLCAobG9uZylUUkFDRV9FTlRSWV9TSVpFKTsKKwlwcl9pbmZvKCIgICBhY3R1YWwgZW50cmllcyAlbGRcbiIsIGdsb2JhbF90cmFjZS5lbnRyaWVzKTsKKworCXRyYWNlcl9pbml0X2RlYnVnZnMoKTsKKworCXRyYWNlX2luaXRfY21kbGluZXMoKTsKKworCXJlZ2lzdGVyX3RyYWNlcigmbm9fdHJhY2VyKTsKKwljdXJyZW50X3RyYWNlID0gJm5vX3RyYWNlcjsKKworCS8qIEFsbCBzZWVtcyBPSywgZW5hYmxlIHRyYWNpbmcgKi8KKwlnbG9iYWxfdHJhY2UuY3RybCA9IHRyYWNlcl9lbmFibGVkOworCXRyYWNpbmdfZGlzYWJsZWQgPSAwOworCisJcmV0dXJuIDA7CisKKyBmcmVlX2J1ZmZlcnM6CisJZm9yIChpLS0gOyBpID49IDA7IGktLSkgeworCQlzdHJ1Y3QgcGFnZSAqcGFnZSwgKnRtcDsKKwkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IGdsb2JhbF90cmFjZS5kYXRhW2ldOworCisJCWlmIChkYXRhKSB7CisJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGFnZSwgdG1wLAorCQkJCQkJICZkYXRhLT50cmFjZV9wYWdlcywgbHJ1KSB7CisJCQkJbGlzdF9kZWxfaW5pdCgmcGFnZS0+bHJ1KTsKKwkJCQlfX2ZyZWVfcGFnZShwYWdlKTsKKwkJCX0KKwkJfQorCisjaWZkZWYgQ09ORklHX1RSQUNFUl9NQVhfVFJBQ0UKKwkJZGF0YSA9IG1heF90ci5kYXRhW2ldOworCQlpZiAoZGF0YSkgeworCQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBhZ2UsIHRtcCwKKwkJCQkJCSAmZGF0YS0+dHJhY2VfcGFnZXMsIGxydSkgeworCQkJCWxpc3RfZGVsX2luaXQoJnBhZ2UtPmxydSk7CisJCQkJX19mcmVlX3BhZ2UocGFnZSk7CisJCQl9CisJCX0KKyNlbmRpZgorCX0KKwlyZXR1cm4gcmV0OworfQorZnNfaW5pdGNhbGwodHJhY2VyX2FsbG9jX2J1ZmZlcnMpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlLmggYi9rZXJuZWwvdHJhY2UvdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjlmODY3Ci0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlLmgKQEAgLTAsMCArMSwzMzkgQEAKKyNpZm5kZWYgX0xJTlVYX0tFUk5FTF9UUkFDRV9ICisjZGVmaW5lIF9MSU5VWF9LRVJORUxfVFJBQ0VfSAorCisjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9jbG9ja3NvdXJjZS5oPgorI2luY2x1ZGUgPGxpbnV4L21taW90cmFjZS5oPgorCitlbnVtIHRyYWNlX3R5cGUgeworCV9fVFJBQ0VfRklSU1RfVFlQRSA9IDAsCisKKwlUUkFDRV9GTiwKKwlUUkFDRV9DVFgsCisJVFJBQ0VfV0FLRSwKKwlUUkFDRV9TVEFDSywKKwlUUkFDRV9TUEVDSUFMLAorCVRSQUNFX01NSU9fUlcsCisJVFJBQ0VfTU1JT19NQVAsCisKKwlfX1RSQUNFX0xBU1RfVFlQRQorfTsKKworLyoKKyAqIEZ1bmN0aW9uIHRyYWNlIGVudHJ5IC0gZnVuY3Rpb24gYWRkcmVzcyBhbmQgcGFyZW50IGZ1bmN0aW9uIGFkZHJlczoKKyAqLworc3RydWN0IGZ0cmFjZV9lbnRyeSB7CisJdW5zaWduZWQgbG9uZwkJaXA7CisJdW5zaWduZWQgbG9uZwkJcGFyZW50X2lwOworfTsKKworLyoKKyAqIENvbnRleHQgc3dpdGNoIHRyYWNlIGVudHJ5IC0gd2hpY2ggdGFzayAoYW5kIHByaW8pIHdlIHN3aXRjaGVkIGZyb20vdG86CisgKi8KK3N0cnVjdCBjdHhfc3dpdGNoX2VudHJ5IHsKKwl1bnNpZ25lZCBpbnQJCXByZXZfcGlkOworCXVuc2lnbmVkIGNoYXIJCXByZXZfcHJpbzsKKwl1bnNpZ25lZCBjaGFyCQlwcmV2X3N0YXRlOworCXVuc2lnbmVkIGludAkJbmV4dF9waWQ7CisJdW5zaWduZWQgY2hhcgkJbmV4dF9wcmlvOworCXVuc2lnbmVkIGNoYXIJCW5leHRfc3RhdGU7Cit9OworCisvKgorICogU3BlY2lhbCAoZnJlZS1mb3JtKSB0cmFjZSBlbnRyeToKKyAqLworc3RydWN0IHNwZWNpYWxfZW50cnkgeworCXVuc2lnbmVkIGxvbmcJCWFyZzE7CisJdW5zaWduZWQgbG9uZwkJYXJnMjsKKwl1bnNpZ25lZCBsb25nCQlhcmczOworfTsKKworLyoKKyAqIFN0YWNrLXRyYWNlIGVudHJ5OgorICovCisKKyNkZWZpbmUgRlRSQUNFX1NUQUNLX0VOVFJJRVMJOAorCitzdHJ1Y3Qgc3RhY2tfZW50cnkgeworCXVuc2lnbmVkIGxvbmcJCWNhbGxlcltGVFJBQ0VfU1RBQ0tfRU5UUklFU107Cit9OworCisvKgorICogVGhlIHRyYWNlIGVudHJ5IC0gdGhlIG1vc3QgYmFzaWMgdW5pdCBvZiB0cmFjaW5nLiBUaGlzIGlzIHdoYXQKKyAqIGlzIHByaW50ZWQgaW4gdGhlIGVuZCBhcyBhIHNpbmdsZSBsaW5lIGluIHRoZSB0cmFjZSBvdXRwdXQsIHN1Y2ggYXM6CisgKgorICogICAgIGJhc2gtMTU4MTYgWzAxXSAgIDIzNS4xOTc1ODU6IGlkbGVfY3B1IDwtIGlycV9lbnRlcgorICovCitzdHJ1Y3QgdHJhY2VfZW50cnkgeworCWNoYXIJCQl0eXBlOworCWNoYXIJCQljcHU7CisJY2hhcgkJCWZsYWdzOworCWNoYXIJCQlwcmVlbXB0X2NvdW50OworCWludAkJCXBpZDsKKwljeWNsZV90CQkJdDsKKwl1bmlvbiB7CisJCXN0cnVjdCBmdHJhY2VfZW50cnkJCWZuOworCQlzdHJ1Y3QgY3R4X3N3aXRjaF9lbnRyeQkJY3R4OworCQlzdHJ1Y3Qgc3BlY2lhbF9lbnRyeQkJc3BlY2lhbDsKKwkJc3RydWN0IHN0YWNrX2VudHJ5CQlzdGFjazsKKwkJc3RydWN0IG1taW90cmFjZV9ydwkJbW1pb3J3OworCQlzdHJ1Y3QgbW1pb3RyYWNlX21hcAkJbW1pb21hcDsKKwl9OworfTsKKworI2RlZmluZSBUUkFDRV9FTlRSWV9TSVpFCXNpemVvZihzdHJ1Y3QgdHJhY2VfZW50cnkpCisKKy8qCisgKiBUaGUgQ1BVIHRyYWNlIGFycmF5IC0gaXQgY29uc2lzdHMgb2YgdGhvdXNhbmRzIG9mIHRyYWNlIGVudHJpZXMKKyAqIHBsdXMgc29tZSBvdGhlciBkZXNjcmlwdG9yIGRhdGE6IChmb3IgZXhhbXBsZSB3aGljaCB0YXNrIHN0YXJ0ZWQKKyAqIHRoZSB0cmFjZSwgZXRjLikKKyAqLworc3RydWN0IHRyYWNlX2FycmF5X2NwdSB7CisJc3RydWN0IGxpc3RfaGVhZAl0cmFjZV9wYWdlczsKKwlhdG9taWNfdAkJZGlzYWJsZWQ7CisJcmF3X3NwaW5sb2NrX3QJCWxvY2s7CisJc3RydWN0IGxvY2tfY2xhc3Nfa2V5CWxvY2tfa2V5OworCisJLyogdGhlc2UgZmllbGRzIGdldCBjb3BpZWQgaW50byBtYXgtdHJhY2U6ICovCisJdW5zaWduZWQJCXRyYWNlX2hlYWRfaWR4OworCXVuc2lnbmVkCQl0cmFjZV90YWlsX2lkeDsKKwl2b2lkCQkJKnRyYWNlX2hlYWQ7IC8qIHByb2R1Y2VyICovCisJdm9pZAkJCSp0cmFjZV90YWlsOyAvKiBjb25zdW1lciAqLworCXVuc2lnbmVkIGxvbmcJCXRyYWNlX2lkeDsKKwl1bnNpZ25lZCBsb25nCQlvdmVycnVuOworCXVuc2lnbmVkIGxvbmcJCXNhdmVkX2xhdGVuY3k7CisJdW5zaWduZWQgbG9uZwkJY3JpdGljYWxfc3RhcnQ7CisJdW5zaWduZWQgbG9uZwkJY3JpdGljYWxfZW5kOworCXVuc2lnbmVkIGxvbmcJCWNyaXRpY2FsX3NlcXVlbmNlOworCXVuc2lnbmVkIGxvbmcJCW5pY2U7CisJdW5zaWduZWQgbG9uZwkJcG9saWN5OworCXVuc2lnbmVkIGxvbmcJCXJ0X3ByaW9yaXR5OworCWN5Y2xlX3QJCQlwcmVlbXB0X3RpbWVzdGFtcDsKKwlwaWRfdAkJCXBpZDsKKwl1aWRfdAkJCXVpZDsKKwljaGFyCQkJY29tbVtUQVNLX0NPTU1fTEVOXTsKK307CisKK3N0cnVjdCB0cmFjZV9pdGVyYXRvcjsKKworLyoKKyAqIFRoZSB0cmFjZSBhcnJheSAtIGFuIGFycmF5IG9mIHBlci1DUFUgdHJhY2UgYXJyYXlzLiBUaGlzIGlzIHRoZQorICogaGlnaGVzdCBsZXZlbCBkYXRhIHN0cnVjdHVyZSB0aGF0IGluZGl2aWR1YWwgdHJhY2VycyBkZWFsIHdpdGguCisgKiBUaGV5IGhhdmUgb24vb2ZmIHN0YXRlIGFzIHdlbGw6CisgKi8KK3N0cnVjdCB0cmFjZV9hcnJheSB7CisJdW5zaWduZWQgbG9uZwkJZW50cmllczsKKwlsb25nCQkJY3RybDsKKwlpbnQJCQljcHU7CisJY3ljbGVfdAkJCXRpbWVfc3RhcnQ7CisJc3RydWN0IHRhc2tfc3RydWN0CSp3YWl0ZXI7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdQkqZGF0YVtOUl9DUFVTXTsKK307CisKKy8qCisgKiBBIHNwZWNpZmljIHRyYWNlciwgcmVwcmVzZW50ZWQgYnkgbWV0aG9kcyB0aGF0IG9wZXJhdGUgb24gYSB0cmFjZSBhcnJheToKKyAqLworc3RydWN0IHRyYWNlciB7CisJY29uc3QgY2hhcgkJKm5hbWU7CisJdm9pZAkJCSgqaW5pdCkoc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisJdm9pZAkJCSgqcmVzZXQpKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworCXZvaWQJCQkoKm9wZW4pKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcik7CisJdm9pZAkJCSgqcGlwZV9vcGVuKShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpOworCXZvaWQJCQkoKmNsb3NlKShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpOworCXZvaWQJCQkoKnN0YXJ0KShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpOworCXZvaWQJCQkoKnN0b3ApKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcik7CisJc3NpemVfdAkJCSgqcmVhZCkoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLAorCQkJCQlzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCQkJCXNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcyk7CisJdm9pZAkJCSgqY3RybF91cGRhdGUpKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworI2lmZGVmIENPTkZJR19GVFJBQ0VfU1RBUlRVUF9URVNUCisJaW50CQkJKCpzZWxmdGVzdCkoc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSAgICBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKyNlbmRpZgorCWludAkJCSgqcHJpbnRfbGluZSkoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKTsKKwlzdHJ1Y3QgdHJhY2VyCQkqbmV4dDsKKwlpbnQJCQlwcmludF9tYXg7Cit9OworCitzdHJ1Y3QgdHJhY2Vfc2VxIHsKKwl1bnNpZ25lZCBjaGFyCQlidWZmZXJbUEFHRV9TSVpFXTsKKwl1bnNpZ25lZCBpbnQJCWxlbjsKKwl1bnNpZ25lZCBpbnQJCXJlYWRwb3M7Cit9OworCisvKgorICogVHJhY2UgaXRlcmF0b3IgLSB1c2VkIGJ5IHByaW50b3V0IHJvdXRpbmVzIHdobyBwcmVzZW50IHRyYWNlCisgKiByZXN1bHRzIHRvIHVzZXJzIGFuZCB3aGljaCByb3V0aW5lcyBtaWdodCBzbGVlcCwgZXRjOgorICovCitzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgeworCXN0cnVjdCB0cmFjZV9hcnJheQkqdHI7CisJc3RydWN0IHRyYWNlcgkJKnRyYWNlOworCXZvaWQJCQkqcHJpdmF0ZTsKKwlsb25nCQkJbGFzdF9vdmVycnVuW05SX0NQVVNdOworCWxvbmcJCQlvdmVycnVuW05SX0NQVVNdOworCisJLyogVGhlIGJlbG93IGlzIHplcm9lZCBvdXQgaW4gcGlwZV9yZWFkICovCisJc3RydWN0IHRyYWNlX3NlcQlzZXE7CisJc3RydWN0IHRyYWNlX2VudHJ5CSplbnQ7CisJaW50CQkJY3B1OworCisJc3RydWN0IHRyYWNlX2VudHJ5CSpwcmV2X2VudDsKKwlpbnQJCQlwcmV2X2NwdTsKKworCXVuc2lnbmVkIGxvbmcJCWl0ZXJfZmxhZ3M7CisJbG9mZl90CQkJcG9zOworCXVuc2lnbmVkIGxvbmcJCW5leHRfaWR4W05SX0NQVVNdOworCXN0cnVjdCBsaXN0X2hlYWQJKm5leHRfcGFnZVtOUl9DUFVTXTsKKwl1bnNpZ25lZAkJbmV4dF9wYWdlX2lkeFtOUl9DUFVTXTsKKwlsb25nCQkJaWR4OworfTsKKwordm9pZCB0cmFjaW5nX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEpOworaW50IHRyYWNpbmdfb3Blbl9nZW5lcmljKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKTsKK3N0cnVjdCBkZW50cnkgKnRyYWNpbmdfaW5pdF9kZW50cnkodm9pZCk7Cit2b2lkIGluaXRfdHJhY2VyX3N5c3Byb2ZfZGVidWdmcyhzdHJ1Y3QgZGVudHJ5ICpkX3RyYWNlcik7CisKK3ZvaWQgZnRyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkgICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCSAgICB1bnNpZ25lZCBsb25nIGlwLAorCQkJICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwLAorCQkJICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOwordm9pZCB0cmFjaW5nX3NjaGVkX3N3aXRjaF90cmFjZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkJCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkJc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LAorCQkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCwKKwkJCQl1bnNpZ25lZCBsb25nIGZsYWdzKTsKK3ZvaWQgdHJhY2luZ19yZWNvcmRfY21kbGluZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7CisKK3ZvaWQgdHJhY2luZ19zY2hlZF93YWtldXBfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJCQlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqd2FrZWUsCisJCQkJc3RydWN0IHRhc2tfc3RydWN0ICpjdXIsCisJCQkJdW5zaWduZWQgbG9uZyBmbGFncyk7Cit2b2lkIHRyYWNlX3NwZWNpYWwoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJICAgdW5zaWduZWQgbG9uZyBhcmcxLAorCQkgICB1bnNpZ25lZCBsb25nIGFyZzIsCisJCSAgIHVuc2lnbmVkIGxvbmcgYXJnMyk7Cit2b2lkIHRyYWNlX2Z1bmN0aW9uKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCSAgICBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkgICAgdW5zaWduZWQgbG9uZyBpcCwKKwkJICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwLAorCQkgICAgdW5zaWduZWQgbG9uZyBmbGFncyk7CisKK3ZvaWQgdHJhY2luZ19zdGFydF9jbWRsaW5lX3JlY29yZCh2b2lkKTsKK3ZvaWQgdHJhY2luZ19zdG9wX2NtZGxpbmVfcmVjb3JkKHZvaWQpOworaW50IHJlZ2lzdGVyX3RyYWNlcihzdHJ1Y3QgdHJhY2VyICp0eXBlKTsKK3ZvaWQgdW5yZWdpc3Rlcl90cmFjZXIoc3RydWN0IHRyYWNlciAqdHlwZSk7CisKK2V4dGVybiB1bnNpZ25lZCBsb25nIG5zZWNzX3RvX3VzZWNzKHVuc2lnbmVkIGxvbmcgbnNlY3MpOworCitleHRlcm4gdW5zaWduZWQgbG9uZyB0cmFjaW5nX21heF9sYXRlbmN5OworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdHJhY2luZ190aHJlc2g7CisKK3ZvaWQgdXBkYXRlX21heF90cihzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNwdSk7Cit2b2lkIHVwZGF0ZV9tYXhfdHJfc2luZ2xlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkgIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgY3B1KTsKKworZXh0ZXJuIGN5Y2xlX3QgZnRyYWNlX25vdyhpbnQgY3B1KTsKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKK3ZvaWQgdHJhY2luZ19zdGFydF9mdW5jdGlvbl90cmFjZSh2b2lkKTsKK3ZvaWQgdHJhY2luZ19zdG9wX2Z1bmN0aW9uX3RyYWNlKHZvaWQpOworI2Vsc2UKKyMgZGVmaW5lIHRyYWNpbmdfc3RhcnRfZnVuY3Rpb25fdHJhY2UoKQkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgdHJhY2luZ19zdG9wX2Z1bmN0aW9uX3RyYWNlKCkJCWRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0NPTlRFWFRfU1dJVENIX1RSQUNFUgordHlwZWRlZiB2b2lkCisoKnRyYWNlcl9zd2l0Y2hfZnVuY190KSh2b2lkICpwcml2YXRlLAorCQkJdm9pZCAqX19ycSwKKwkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldiwKKwkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCk7CisKK3N0cnVjdCB0cmFjZXJfc3dpdGNoX29wcyB7CisJdHJhY2VyX3N3aXRjaF9mdW5jX3QJCWZ1bmM7CisJdm9pZAkJCQkqcHJpdmF0ZTsKKwlzdHJ1Y3QgdHJhY2VyX3N3aXRjaF9vcHMJKm5leHQ7Cit9OworCisjZW5kaWYgLyogQ09ORklHX0NPTlRFWFRfU1dJVENIX1RSQUNFUiAqLworCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCitleHRlcm4gdW5zaWduZWQgbG9uZyBmdHJhY2VfdXBkYXRlX3RvdF9jbnQ7CisjZGVmaW5lIERZTl9GVFJBQ0VfVEVTVF9OQU1FIHRyYWNlX3NlbGZ0ZXN0X2R5bmFtaWNfdGVzdF9mdW5jCitleHRlcm4gaW50IERZTl9GVFJBQ0VfVEVTVF9OQU1FKHZvaWQpOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfTU1JT1RSQUNFCitleHRlcm4gdm9pZCBfX3RyYWNlX21taW90cmFjZV9ydyhzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkJCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkJc3RydWN0IG1taW90cmFjZV9ydyAqcncpOworZXh0ZXJuIHZvaWQgX190cmFjZV9tbWlvdHJhY2VfbWFwKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCQlzdHJ1Y3QgbW1pb3RyYWNlX21hcCAqbWFwKTsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TVEFSVFVQX1RFU1QKKyNpZmRlZiBDT05GSUdfRlRSQUNFCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfZnVuY3Rpb24oc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSAgIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworI2VuZGlmCisjaWZkZWYgQ09ORklHX0lSUVNPRkZfVFJBQ0VSCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfaXJxc29mZihzdHJ1Y3QgdHJhY2VyICp0cmFjZSwKKwkJCQkJICBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19QUkVFTVBUX1RSQUNFUgorZXh0ZXJuIGludCB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3ByZWVtcHRvZmYoc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSAgICAgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNpZiBkZWZpbmVkKENPTkZJR19JUlFTT0ZGX1RSQUNFUikgJiYgZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfcHJlZW1wdGlycXNvZmYoc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCQkgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfU0NIRURfVFJBQ0VSCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfd2FrZXVwKHN0cnVjdCB0cmFjZXIgKnRyYWNlLAorCQkJCQkgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfc2NoZWRfc3dpdGNoKHN0cnVjdCB0cmFjZXIgKnRyYWNlLAorCQkJCQkgICAgICAgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfU1lTUFJPRl9UUkFDRVIKK2V4dGVybiBpbnQgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9zeXNwcm9mKHN0cnVjdCB0cmFjZXIgKnRyYWNlLAorCQkJCQkgICAgICAgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfRlRSQUNFX1NUQVJUVVBfVEVTVCAqLworCitleHRlcm4gdm9pZCAqaGVhZF9wYWdlKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEpOworZXh0ZXJuIGludCB0cmFjZV9zZXFfcHJpbnRmKHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKK2V4dGVybiBzc2l6ZV90IHRyYWNlX3NlcV90b191c2VyKHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNoYXIgX191c2VyICp1YnVmLAorCQkJCSBzaXplX3QgY250KTsKK2V4dGVybiBsb25nIG5zMnVzZWNzKGN5Y2xlX3QgbnNlYyk7CisKK2V4dGVybiB1bnNpZ25lZCBsb25nIHRyYWNlX2ZsYWdzOworCisvKgorICogdHJhY2VfaXRlcmF0b3JfZmxhZ3MgaXMgYW4gZW51bWVyYXRpb24gdGhhdCBkZWZpbmVzIGJpdAorICogcG9zaXRpb25zIGludG8gdHJhY2VfZmxhZ3MgdGhhdCBjb250cm9scyB0aGUgb3V0cHV0LgorICoKKyAqIE5PVEU6IFRoZXNlIGJpdHMgbXVzdCBtYXRjaCB0aGUgdHJhY2Vfb3B0aW9ucyBhcnJheSBpbgorICogICAgICAgdHJhY2UuYy4KKyAqLworZW51bSB0cmFjZV9pdGVyYXRvcl9mbGFncyB7CisJVFJBQ0VfSVRFUl9QUklOVF9QQVJFTlQJCT0gMHgwMSwKKwlUUkFDRV9JVEVSX1NZTV9PRkZTRVQJCT0gMHgwMiwKKwlUUkFDRV9JVEVSX1NZTV9BRERSCQk9IDB4MDQsCisJVFJBQ0VfSVRFUl9WRVJCT1NFCQk9IDB4MDgsCisJVFJBQ0VfSVRFUl9SQVcJCQk9IDB4MTAsCisJVFJBQ0VfSVRFUl9IRVgJCQk9IDB4MjAsCisJVFJBQ0VfSVRFUl9CSU4JCQk9IDB4NDAsCisJVFJBQ0VfSVRFUl9CTE9DSwkJPSAweDgwLAorCVRSQUNFX0lURVJfU1RBQ0tUUkFDRQkJPSAweDEwMCwKKwlUUkFDRV9JVEVSX1NDSEVEX1RSRUUJCT0gMHgyMDAsCit9OworCisjZW5kaWYgLyogX0xJTlVYX0tFUk5FTF9UUkFDRV9IICovCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2VfZnVuY3Rpb25zLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2VfZnVuY3Rpb25zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzEyMTQ0OAotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9mdW5jdGlvbnMuYwpAQCAtMCwwICsxLDgxIEBACisvKgorICogcmluZyBidWZmZXIgYmFzZWQgZnVuY3Rpb24gdHJhY2VyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CisgKgorICogQmFzZWQgb24gY29kZSBmcm9tIHRoZSBsYXRlbmN5X3RyYWNlciwgdGhhdCBpczoKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgSW5nbyBNb2xuYXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQgV2lsbGlhbSBMZWUgSXJ3aW4gSUlJCisgKi8KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisKKyNpbmNsdWRlICJ0cmFjZS5oIgorCitzdGF0aWMgdm9pZCBmdW5jdGlvbl9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCBjcHU7CisKKwl0ci0+dGltZV9zdGFydCA9IGZ0cmFjZV9ub3codHItPmNwdSk7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKKwkJdHJhY2luZ19yZXNldCh0ci0+ZGF0YVtjcHVdKTsKK30KKworc3RhdGljIHZvaWQgc3RhcnRfZnVuY3Rpb25fdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl0ci0+Y3B1ID0gZ2V0X2NwdSgpOworCWZ1bmN0aW9uX3Jlc2V0KHRyKTsKKwlwdXRfY3B1KCk7CisKKwl0cmFjaW5nX3N0YXJ0X2NtZGxpbmVfcmVjb3JkKCk7CisJdHJhY2luZ19zdGFydF9mdW5jdGlvbl90cmFjZSgpOworfQorCitzdGF0aWMgdm9pZCBzdG9wX2Z1bmN0aW9uX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2luZ19zdG9wX2Z1bmN0aW9uX3RyYWNlKCk7CisJdHJhY2luZ19zdG9wX2NtZGxpbmVfcmVjb3JkKCk7Cit9CisKK3N0YXRpYyB2b2lkIGZ1bmN0aW9uX3RyYWNlX2luaXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlpZiAodHItPmN0cmwpCisJCXN0YXJ0X2Z1bmN0aW9uX3RyYWNlKHRyKTsKK30KKworc3RhdGljIHZvaWQgZnVuY3Rpb25fdHJhY2VfcmVzZXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlpZiAodHItPmN0cmwpCisJCXN0b3BfZnVuY3Rpb25fdHJhY2UodHIpOworfQorCitzdGF0aWMgdm9pZCBmdW5jdGlvbl90cmFjZV9jdHJsX3VwZGF0ZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RhcnRfZnVuY3Rpb25fdHJhY2UodHIpOworCWVsc2UKKwkJc3RvcF9mdW5jdGlvbl90cmFjZSh0cik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIGZ1bmN0aW9uX3RyYWNlIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCSAgICAgPSAiZnRyYWNlIiwKKwkuaW5pdAkgICAgID0gZnVuY3Rpb25fdHJhY2VfaW5pdCwKKwkucmVzZXQJICAgICA9IGZ1bmN0aW9uX3RyYWNlX3Jlc2V0LAorCS5jdHJsX3VwZGF0ZSA9IGZ1bmN0aW9uX3RyYWNlX2N0cmxfdXBkYXRlLAorI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKwkuc2VsZnRlc3QgICAgPSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX2Z1bmN0aW9uLAorI2VuZGlmCit9OworCitzdGF0aWMgX19pbml0IGludCBpbml0X2Z1bmN0aW9uX3RyYWNlKHZvaWQpCit7CisJcmV0dXJuIHJlZ2lzdGVyX3RyYWNlcigmZnVuY3Rpb25fdHJhY2UpOworfQorCitkZXZpY2VfaW5pdGNhbGwoaW5pdF9mdW5jdGlvbl90cmFjZSk7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2VfaXJxc29mZi5jIGIva2VybmVsL3RyYWNlL3RyYWNlX2lycXNvZmYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjFkNmZlCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX2lycXNvZmYuYwpAQCAtMCwwICsxLDQ4NiBAQAorLyoKKyAqIHRyYWNlIGlycXMgb2ZmIGNyaXRpY2FsbCB0aW1pbmdzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CisgKgorICogRnJvbSBjb2RlIGluIHRoZSBsYXRlbmN5X3RyYWNlciwgdGhhdCBpczoKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgSW5nbyBNb2xuYXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQgV2lsbGlhbSBMZWUgSXJ3aW4gSUlJCisgKi8KKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkJCSppcnFzb2ZmX3RyYWNlIF9fcmVhZF9tb3N0bHk7CitzdGF0aWMgaW50CQkJCXRyYWNlcl9lbmFibGVkIF9fcmVhZF9tb3N0bHk7CisKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIHRyYWNpbmdfY3B1KTsKKworc3RhdGljIERFRklORV9TUElOTE9DSyhtYXhfdHJhY2VfbG9jayk7CisKK2VudW0geworCVRSQUNFUl9JUlFTX09GRgkJPSAoMSA8PCAxKSwKKwlUUkFDRVJfUFJFRU1QVF9PRkYJPSAoMSA8PCAyKSwKK307CisKK3N0YXRpYyBpbnQgdHJhY2VfdHlwZSBfX3JlYWRfbW9zdGx5OworCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfVFJBQ0VSCitzdGF0aWMgaW5saW5lIGludAorcHJlZW1wdF90cmFjZSh2b2lkKQoreworCXJldHVybiAoKHRyYWNlX3R5cGUgJiBUUkFDRVJfUFJFRU1QVF9PRkYpICYmIHByZWVtcHRfY291bnQoKSk7Cit9CisjZWxzZQorIyBkZWZpbmUgcHJlZW1wdF90cmFjZSgpICgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfSVJRU09GRl9UUkFDRVIKK3N0YXRpYyBpbmxpbmUgaW50CitpcnFfdHJhY2Uodm9pZCkKK3sKKwlyZXR1cm4gKCh0cmFjZV90eXBlICYgVFJBQ0VSX0lSUVNfT0ZGKSAmJgorCQlpcnFzX2Rpc2FibGVkKCkpOworfQorI2Vsc2UKKyMgZGVmaW5lIGlycV90cmFjZSgpICgwKQorI2VuZGlmCisKKy8qCisgKiBTZXF1ZW5jZSBjb3VudCAtIHdlIHJlY29yZCBpdCB3aGVuIHN0YXJ0aW5nIGEgbWVhc3VyZW1lbnQgYW5kCisgKiBza2lwIHRoZSBsYXRlbmN5IGlmIHRoZSBzZXF1ZW5jZSBoYXMgY2hhbmdlZCAtIHNvbWUgb3RoZXIgc2VjdGlvbgorICogZGlkIGEgbWF4aW11bSBhbmQgY291bGQgZGlzdHVyYiBvdXIgbWVhc3VyZW1lbnQgd2l0aCBzZXJpYWwgY29uc29sZQorICogcHJpbnRvdXRzLCBldGMuIFRydWx5IGNvaW5jaWRpbmcgbWF4aW11bSBsYXRlbmNpZXMgc2hvdWxkIGJlIHJhcmUKKyAqIGFuZCB3aGF0IGhhcHBlbnMgdG9nZXRoZXIgaGFwcGVucyBzZXBhcmF0ZWx5IGFzIHdlbGwsIHNvIHRoaXMgZG9lc250CisgKiBkZWNyZWFzZSB0aGUgdmFsaWRpdHkgb2YgdGhlIG1heGltdW0gZm91bmQ6CisgKi8KK3N0YXRpYyBfX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcAl1bnNpZ25lZCBsb25nIG1heF9zZXF1ZW5jZTsKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKy8qCisgKiBpcnFzb2ZmIHVzZXMgaXRzIG93biB0cmFjZXIgZnVuY3Rpb24gdG8ga2VlcCB0aGUgb3ZlcmhlYWQgZG93bjoKKyAqLworc3RhdGljIHZvaWQKK2lycXNvZmZfdHJhY2VyX2NhbGwodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXApCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGlycXNvZmZfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgZGlzYWJsZWQ7CisJaW50IGNwdTsKKworCS8qCisJICogRG9lcyBub3QgbWF0dGVyIGlmIHdlIHByZWVtcHQuIFdlIHRlc3QgdGhlIGZsYWdzCisJICogYWZ0ZXJ3YXJkLCB0byBzZWUgaWYgaXJxcyBhcmUgZGlzYWJsZWQgb3Igbm90LgorCSAqIElmIHdlIHByZWVtcHQgYW5kIGdldCBhIGZhbHNlIHBvc2l0aXZlLCB0aGUgZmxhZ3MKKwkgKiB0ZXN0IHdpbGwgZmFpbC4KKwkgKi8KKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWlmIChsaWtlbHkoIXBlcl9jcHUodHJhY2luZ19jcHUsIGNwdSkpKQorCQlyZXR1cm47CisKKwlsb2NhbF9zYXZlX2ZsYWdzKGZsYWdzKTsKKwkvKiBzbGlnaHQgY2hhbmNlIHRvIGdldCBhIGZhbHNlIHBvc2l0aXZlIG9uIHRyYWNpbmdfY3B1ICovCisJaWYgKCFpcnFzX2Rpc2FibGVkX2ZsYWdzKGZsYWdzKSkKKwkJcmV0dXJuOworCisJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisJZGlzYWJsZWQgPSBhdG9taWNfaW5jX3JldHVybigmZGF0YS0+ZGlzYWJsZWQpOworCisJaWYgKGxpa2VseShkaXNhYmxlZCA9PSAxKSkKKwkJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIGlwLCBwYXJlbnRfaXAsIGZsYWdzKTsKKworCWF0b21pY19kZWMoJmRhdGEtPmRpc2FibGVkKTsKK30KKworc3RhdGljIHN0cnVjdCBmdHJhY2Vfb3BzIHRyYWNlX29wcyBfX3JlYWRfbW9zdGx5ID0KK3sKKwkuZnVuYyA9IGlycXNvZmZfdHJhY2VyX2NhbGwsCit9OworI2VuZGlmIC8qIENPTkZJR19GVFJBQ0UgKi8KKworLyoKKyAqIFNob3VsZCB0aGlzIG5ldyBsYXRlbmN5IGJlIHJlcG9ydGVkL3JlY29yZGVkPworICovCitzdGF0aWMgaW50IHJlcG9ydF9sYXRlbmN5KGN5Y2xlX3QgZGVsdGEpCit7CisJaWYgKHRyYWNpbmdfdGhyZXNoKSB7CisJCWlmIChkZWx0YSA8IHRyYWNpbmdfdGhyZXNoKQorCQkJcmV0dXJuIDA7CisJfSBlbHNlIHsKKwkJaWYgKGRlbHRhIDw9IHRyYWNpbmdfbWF4X2xhdGVuY3kpCisJCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyB2b2lkCitjaGVja19jcml0aWNhbF90aW1pbmcoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJICAgICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJICAgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXAsCisJCSAgICAgIGludCBjcHUpCit7CisJdW5zaWduZWQgbG9uZyBsYXRlbmN5LCB0MCwgdDE7CisJY3ljbGVfdCBUMCwgVDEsIGRlbHRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwkvKgorCSAqIHVzZWNzIGNvbnZlcnNpb24gaXMgc2xvdyBzbyB3ZSB0cnkgdG8gZGVsYXkgdGhlIGNvbnZlcnNpb24KKwkgKiBhcyBsb25nIGFzIHBvc3NpYmxlOgorCSAqLworCVQwID0gZGF0YS0+cHJlZW1wdF90aW1lc3RhbXA7CisJVDEgPSBmdHJhY2Vfbm93KGNwdSk7CisJZGVsdGEgPSBUMS1UMDsKKworCWxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOworCisJaWYgKCFyZXBvcnRfbGF0ZW5jeShkZWx0YSkpCisJCWdvdG8gb3V0OworCisJc3Bpbl9sb2NrX2lycXNhdmUoJm1heF90cmFjZV9sb2NrLCBmbGFncyk7CisKKwkvKiBjaGVjayBpZiB3ZSBhcmUgc3RpbGwgdGhlIG1heCBsYXRlbmN5ICovCisJaWYgKCFyZXBvcnRfbGF0ZW5jeShkZWx0YSkpCisJCWdvdG8gb3V0X3VubG9jazsKKworCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBDQUxMRVJfQUREUjAsIHBhcmVudF9pcCwgZmxhZ3MpOworCisJbGF0ZW5jeSA9IG5zZWNzX3RvX3VzZWNzKGRlbHRhKTsKKworCWlmIChkYXRhLT5jcml0aWNhbF9zZXF1ZW5jZSAhPSBtYXhfc2VxdWVuY2UpCisJCWdvdG8gb3V0X3VubG9jazsKKworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSBkZWx0YTsKKwl0MCA9IG5zZWNzX3RvX3VzZWNzKFQwKTsKKwl0MSA9IG5zZWNzX3RvX3VzZWNzKFQxKTsKKworCWRhdGEtPmNyaXRpY2FsX2VuZCA9IHBhcmVudF9pcDsKKworCXVwZGF0ZV9tYXhfdHJfc2luZ2xlKHRyLCBjdXJyZW50LCBjcHUpOworCisJbWF4X3NlcXVlbmNlKys7CisKK291dF91bmxvY2s6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWF4X3RyYWNlX2xvY2ssIGZsYWdzKTsKKworb3V0OgorCWRhdGEtPmNyaXRpY2FsX3NlcXVlbmNlID0gbWF4X3NlcXVlbmNlOworCWRhdGEtPnByZWVtcHRfdGltZXN0YW1wID0gZnRyYWNlX25vdyhjcHUpOworCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIENBTExFUl9BRERSMCwgcGFyZW50X2lwLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc3RhcnRfY3JpdGljYWxfdGltaW5nKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKQoreworCWludCBjcHU7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGlycXNvZmZfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJaWYgKGxpa2VseSghdHJhY2VyX2VuYWJsZWQpKQorCQlyZXR1cm47CisKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCisJaWYgKHBlcl9jcHUodHJhY2luZ19jcHUsIGNwdSkpCisJCXJldHVybjsKKworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCisJaWYgKHVubGlrZWx5KCFkYXRhKSB8fCBhdG9taWNfcmVhZCgmZGF0YS0+ZGlzYWJsZWQpKQorCQlyZXR1cm47CisKKwlhdG9taWNfaW5jKCZkYXRhLT5kaXNhYmxlZCk7CisKKwlkYXRhLT5jcml0aWNhbF9zZXF1ZW5jZSA9IG1heF9zZXF1ZW5jZTsKKwlkYXRhLT5wcmVlbXB0X3RpbWVzdGFtcCA9IGZ0cmFjZV9ub3coY3B1KTsKKwlkYXRhLT5jcml0aWNhbF9zdGFydCA9IHBhcmVudF9pcCA/IDogaXA7CisJdHJhY2luZ19yZXNldChkYXRhKTsKKworCWxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOworCisJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIGlwLCBwYXJlbnRfaXAsIGZsYWdzKTsKKworCXBlcl9jcHUodHJhY2luZ19jcHUsIGNwdSkgPSAxOworCisJYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3N0b3BfY3JpdGljYWxfdGltaW5nKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKQoreworCWludCBjcHU7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGlycXNvZmZfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKwkvKiBBbHdheXMgY2xlYXIgdGhlIHRyYWNpbmcgY3B1IG9uIHN0b3BwaW5nIHRoZSB0cmFjZSAqLworCWlmICh1bmxpa2VseShwZXJfY3B1KHRyYWNpbmdfY3B1LCBjcHUpKSkKKwkJcGVyX2NwdSh0cmFjaW5nX2NwdSwgY3B1KSA9IDA7CisJZWxzZQorCQlyZXR1cm47CisKKwlpZiAoIXRyYWNlcl9lbmFibGVkKQorCQlyZXR1cm47CisKKwlkYXRhID0gdHItPmRhdGFbY3B1XTsKKworCWlmICh1bmxpa2VseSghZGF0YSkgfHwgdW5saWtlbHkoIWhlYWRfcGFnZShkYXRhKSkgfHwKKwkgICAgIWRhdGEtPmNyaXRpY2FsX3N0YXJ0IHx8IGF0b21pY19yZWFkKCZkYXRhLT5kaXNhYmxlZCkpCisJCXJldHVybjsKKworCWF0b21pY19pbmMoJmRhdGEtPmRpc2FibGVkKTsKKworCWxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOworCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBpcCwgcGFyZW50X2lwLCBmbGFncyk7CisJY2hlY2tfY3JpdGljYWxfdGltaW5nKHRyLCBkYXRhLCBwYXJlbnRfaXAgPyA6IGlwLCBjcHUpOworCWRhdGEtPmNyaXRpY2FsX3N0YXJ0ID0gMDsKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7Cit9CisKKy8qIHN0YXJ0IGFuZCBzdG9wIGNyaXRpY2FsIHRpbWluZ3MgdXNlZCB0byBmb3Igc3RvcHBhZ2UgKGluIGlkbGUpICovCit2b2lkIHN0YXJ0X2NyaXRpY2FsX3RpbWluZ3Modm9pZCkKK3sKKwlpZiAocHJlZW1wdF90cmFjZSgpIHx8IGlycV90cmFjZSgpKQorCQlzdGFydF9jcml0aWNhbF90aW1pbmcoQ0FMTEVSX0FERFIwLCBDQUxMRVJfQUREUjEpOworfQorCit2b2lkIHN0b3BfY3JpdGljYWxfdGltaW5ncyh2b2lkKQoreworCWlmIChwcmVlbXB0X3RyYWNlKCkgfHwgaXJxX3RyYWNlKCkpCisJCXN0b3BfY3JpdGljYWxfdGltaW5nKENBTExFUl9BRERSMCwgQ0FMTEVSX0FERFIxKTsKK30KKworI2lmZGVmIENPTkZJR19JUlFTT0ZGX1RSQUNFUgorI2lmZGVmIENPTkZJR19QUk9WRV9MT0NLSU5HCit2b2lkIHRpbWVfaGFyZGlycXNfb24odW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSkKK3sKKwlpZiAoIXByZWVtcHRfdHJhY2UoKSAmJiBpcnFfdHJhY2UoKSkKKwkJc3RvcF9jcml0aWNhbF90aW1pbmcoYTAsIGExKTsKK30KKwordm9pZCB0aW1lX2hhcmRpcnFzX29mZih1bnNpZ25lZCBsb25nIGEwLCB1bnNpZ25lZCBsb25nIGExKQoreworCWlmICghcHJlZW1wdF90cmFjZSgpICYmIGlycV90cmFjZSgpKQorCQlzdGFydF9jcml0aWNhbF90aW1pbmcoYTAsIGExKTsKK30KKworI2Vsc2UgLyogIUNPTkZJR19QUk9WRV9MT0NLSU5HICovCisKKy8qCisgKiBTdHViczoKKyAqLworCit2b2lkIGVhcmx5X2Jvb3RfaXJxc19vZmYodm9pZCkKK3sKK30KKwordm9pZCBlYXJseV9ib290X2lycXNfb24odm9pZCkKK3sKK30KKwordm9pZCB0cmFjZV9zb2Z0aXJxc19vbih1bnNpZ25lZCBsb25nIGlwKQoreworfQorCit2b2lkIHRyYWNlX3NvZnRpcnFzX29mZih1bnNpZ25lZCBsb25nIGlwKQoreworfQorCitpbmxpbmUgdm9pZCBwcmludF9pcnF0cmFjZV9ldmVudHMoc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyKQoreworfQorCisvKgorICogV2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBoYXJkaXJxIG9uL29mZiBldmVudHM6CisgKi8KK3ZvaWQgdHJhY2VfaGFyZGlycXNfb24odm9pZCkKK3sKKwlpZiAoIXByZWVtcHRfdHJhY2UoKSAmJiBpcnFfdHJhY2UoKSkKKwkJc3RvcF9jcml0aWNhbF90aW1pbmcoQ0FMTEVSX0FERFIwLCBDQUxMRVJfQUREUjEpOworfQorRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vbik7CisKK3ZvaWQgdHJhY2VfaGFyZGlycXNfb2ZmKHZvaWQpCit7CisJaWYgKCFwcmVlbXB0X3RyYWNlKCkgJiYgaXJxX3RyYWNlKCkpCisJCXN0YXJ0X2NyaXRpY2FsX3RpbWluZyhDQUxMRVJfQUREUjAsIENBTExFUl9BRERSMSk7Cit9CitFWFBPUlRfU1lNQk9MKHRyYWNlX2hhcmRpcnFzX29mZik7CisKK3ZvaWQgdHJhY2VfaGFyZGlycXNfb25fY2FsbGVyKHVuc2lnbmVkIGxvbmcgY2FsbGVyX2FkZHIpCit7CisJaWYgKCFwcmVlbXB0X3RyYWNlKCkgJiYgaXJxX3RyYWNlKCkpCisJCXN0b3BfY3JpdGljYWxfdGltaW5nKENBTExFUl9BRERSMCwgY2FsbGVyX2FkZHIpOworfQorRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIpOworCit2b2lkIHRyYWNlX2hhcmRpcnFzX29mZl9jYWxsZXIodW5zaWduZWQgbG9uZyBjYWxsZXJfYWRkcikKK3sKKwlpZiAoIXByZWVtcHRfdHJhY2UoKSAmJiBpcnFfdHJhY2UoKSkKKwkJc3RhcnRfY3JpdGljYWxfdGltaW5nKENBTExFUl9BRERSMCwgY2FsbGVyX2FkZHIpOworfQorRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyKTsKKworI2VuZGlmIC8qIENPTkZJR19QUk9WRV9MT0NLSU5HICovCisjZW5kaWYgLyogIENPTkZJR19JUlFTT0ZGX1RSQUNFUiAqLworCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfVFJBQ0VSCit2b2lkIHRyYWNlX3ByZWVtcHRfb24odW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSkKK3sKKwlzdG9wX2NyaXRpY2FsX3RpbWluZyhhMCwgYTEpOworfQorCit2b2lkIHRyYWNlX3ByZWVtcHRfb2ZmKHVuc2lnbmVkIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgYTEpCit7CisJc3RhcnRfY3JpdGljYWxfdGltaW5nKGEwLCBhMSk7Cit9CisjZW5kaWYgLyogQ09ORklHX1BSRUVNUFRfVFJBQ0VSICovCisKK3N0YXRpYyB2b2lkIHN0YXJ0X2lycXNvZmZfdHJhY2VyKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZ0cmFjZV9vcHMpOworCXRyYWNlcl9lbmFibGVkID0gMTsKK30KKworc3RhdGljIHZvaWQgc3RvcF9pcnFzb2ZmX3RyYWNlcihzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXRyYWNlcl9lbmFibGVkID0gMDsKKwl1bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbigmdHJhY2Vfb3BzKTsKK30KKworc3RhdGljIHZvaWQgX19pcnFzb2ZmX3RyYWNlcl9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaXJxc29mZl90cmFjZSA9IHRyOworCS8qIG1ha2Ugc3VyZSB0aGF0IHRoZSB0cmFjZXIgaXMgdmlzaWJsZSAqLworCXNtcF93bWIoKTsKKworCWlmICh0ci0+Y3RybCkKKwkJc3RhcnRfaXJxc29mZl90cmFjZXIodHIpOworfQorCitzdGF0aWMgdm9pZCBpcnFzb2ZmX3RyYWNlcl9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RvcF9pcnFzb2ZmX3RyYWNlcih0cik7Cit9CisKK3N0YXRpYyB2b2lkIGlycXNvZmZfdHJhY2VyX2N0cmxfdXBkYXRlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF9pcnFzb2ZmX3RyYWNlcih0cik7CisJZWxzZQorCQlzdG9wX2lycXNvZmZfdHJhY2VyKHRyKTsKK30KKworc3RhdGljIHZvaWQgaXJxc29mZl90cmFjZXJfb3BlbihzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJLyogc3RvcCB0aGUgdHJhY2Ugd2hpbGUgZHVtcGluZyAqLworCWlmIChpdGVyLT50ci0+Y3RybCkKKwkJc3RvcF9pcnFzb2ZmX3RyYWNlcihpdGVyLT50cik7Cit9CisKK3N0YXRpYyB2b2lkIGlycXNvZmZfdHJhY2VyX2Nsb3NlKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlpZiAoaXRlci0+dHItPmN0cmwpCisJCXN0YXJ0X2lycXNvZmZfdHJhY2VyKGl0ZXItPnRyKTsKK30KKworI2lmZGVmIENPTkZJR19JUlFTT0ZGX1RSQUNFUgorc3RhdGljIHZvaWQgaXJxc29mZl90cmFjZXJfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXRyYWNlX3R5cGUgPSBUUkFDRVJfSVJRU19PRkY7CisKKwlfX2lycXNvZmZfdHJhY2VyX2luaXQodHIpOworfQorc3RhdGljIHN0cnVjdCB0cmFjZXIgaXJxc29mZl90cmFjZXIgX19yZWFkX21vc3RseSA9Cit7CisJLm5hbWUJCT0gImlycXNvZmYiLAorCS5pbml0CQk9IGlycXNvZmZfdHJhY2VyX2luaXQsCisJLnJlc2V0CQk9IGlycXNvZmZfdHJhY2VyX3Jlc2V0LAorCS5vcGVuCQk9IGlycXNvZmZfdHJhY2VyX29wZW4sCisJLmNsb3NlCQk9IGlycXNvZmZfdHJhY2VyX2Nsb3NlLAorCS5jdHJsX3VwZGF0ZQk9IGlycXNvZmZfdHJhY2VyX2N0cmxfdXBkYXRlLAorCS5wcmludF9tYXgJPSAxLAorI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKwkuc2VsZnRlc3QgICAgPSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX2lycXNvZmYsCisjZW5kaWYKK307CisjIGRlZmluZSByZWdpc3Rlcl9pcnFzb2ZmKHRyYWNlKSByZWdpc3Rlcl90cmFjZXIoJnRyYWNlKQorI2Vsc2UKKyMgZGVmaW5lIHJlZ2lzdGVyX2lycXNvZmYodHJhY2UpIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfVFJBQ0VSCitzdGF0aWMgdm9pZCBwcmVlbXB0b2ZmX3RyYWNlcl9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VfdHlwZSA9IFRSQUNFUl9QUkVFTVBUX09GRjsKKworCV9faXJxc29mZl90cmFjZXJfaW5pdCh0cik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIHByZWVtcHRvZmZfdHJhY2VyIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJwcmVlbXB0b2ZmIiwKKwkuaW5pdAkJPSBwcmVlbXB0b2ZmX3RyYWNlcl9pbml0LAorCS5yZXNldAkJPSBpcnFzb2ZmX3RyYWNlcl9yZXNldCwKKwkub3BlbgkJPSBpcnFzb2ZmX3RyYWNlcl9vcGVuLAorCS5jbG9zZQkJPSBpcnFzb2ZmX3RyYWNlcl9jbG9zZSwKKwkuY3RybF91cGRhdGUJPSBpcnFzb2ZmX3RyYWNlcl9jdHJsX3VwZGF0ZSwKKwkucHJpbnRfbWF4CT0gMSwKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NFTEZURVNUCisJLnNlbGZ0ZXN0ICAgID0gdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9wcmVlbXB0b2ZmLAorI2VuZGlmCit9OworIyBkZWZpbmUgcmVnaXN0ZXJfcHJlZW1wdG9mZih0cmFjZSkgcmVnaXN0ZXJfdHJhY2VyKCZ0cmFjZSkKKyNlbHNlCisjIGRlZmluZSByZWdpc3Rlcl9wcmVlbXB0b2ZmKHRyYWNlKSBkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYKKworI2lmIGRlZmluZWQoQ09ORklHX0lSUVNPRkZfVFJBQ0VSKSAmJiBcCisJZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpCisKK3N0YXRpYyB2b2lkIHByZWVtcHRpcnFzb2ZmX3RyYWNlcl9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VfdHlwZSA9IFRSQUNFUl9JUlFTX09GRiB8IFRSQUNFUl9QUkVFTVBUX09GRjsKKworCV9faXJxc29mZl90cmFjZXJfaW5pdCh0cik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIHByZWVtcHRpcnFzb2ZmX3RyYWNlciBfX3JlYWRfbW9zdGx5ID0KK3sKKwkubmFtZQkJPSAicHJlZW1wdGlycXNvZmYiLAorCS5pbml0CQk9IHByZWVtcHRpcnFzb2ZmX3RyYWNlcl9pbml0LAorCS5yZXNldAkJPSBpcnFzb2ZmX3RyYWNlcl9yZXNldCwKKwkub3BlbgkJPSBpcnFzb2ZmX3RyYWNlcl9vcGVuLAorCS5jbG9zZQkJPSBpcnFzb2ZmX3RyYWNlcl9jbG9zZSwKKwkuY3RybF91cGRhdGUJPSBpcnFzb2ZmX3RyYWNlcl9jdHJsX3VwZGF0ZSwKKwkucHJpbnRfbWF4CT0gMSwKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NFTEZURVNUCisJLnNlbGZ0ZXN0ICAgID0gdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9wcmVlbXB0aXJxc29mZiwKKyNlbmRpZgorfTsKKworIyBkZWZpbmUgcmVnaXN0ZXJfcHJlZW1wdGlycXNvZmYodHJhY2UpIHJlZ2lzdGVyX3RyYWNlcigmdHJhY2UpCisjZWxzZQorIyBkZWZpbmUgcmVnaXN0ZXJfcHJlZW1wdGlycXNvZmYodHJhY2UpIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCitfX2luaXQgc3RhdGljIGludCBpbml0X2lycXNvZmZfdHJhY2VyKHZvaWQpCit7CisJcmVnaXN0ZXJfaXJxc29mZihpcnFzb2ZmX3RyYWNlcik7CisJcmVnaXN0ZXJfcHJlZW1wdG9mZihwcmVlbXB0b2ZmX3RyYWNlcik7CisJcmVnaXN0ZXJfcHJlZW1wdGlycXNvZmYocHJlZW1wdGlycXNvZmZfdHJhY2VyKTsKKworCXJldHVybiAwOworfQorZGV2aWNlX2luaXRjYWxsKGluaXRfaXJxc29mZl90cmFjZXIpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX21taW90cmFjZS5jIGIva2VybmVsL3RyYWNlL3RyYWNlX21taW90cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxM2RjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2VfbW1pb3RyYWNlLmMKQEAgLTAsMCArMSwyOTUgQEAKKy8qCisgKiBNZW1vcnkgbWFwcGVkIEkvTyB0cmFjaW5nCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFBla2thIFBhYWxhbmVuIDxwcUBpa2kuZmk+CisgKi8KKworI2RlZmluZSBERUJVRyAxCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tbWlvdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3N0cnVjdCBoZWFkZXJfaXRlciB7CisJc3RydWN0IHBjaV9kZXYgKmRldjsKK307CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkgKm1taW9fdHJhY2VfYXJyYXk7CitzdGF0aWMgYm9vbCBvdmVycnVuX2RldGVjdGVkOworCitzdGF0aWMgdm9pZCBtbWlvX3Jlc2V0X2RhdGEoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlpbnQgY3B1OworCisJb3ZlcnJ1bl9kZXRlY3RlZCA9IGZhbHNlOworCXRyLT50aW1lX3N0YXJ0ID0gZnRyYWNlX25vdyh0ci0+Y3B1KTsKKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQorCQl0cmFjaW5nX3Jlc2V0KHRyLT5kYXRhW2NwdV0pOworfQorCitzdGF0aWMgdm9pZCBtbWlvX3RyYWNlX2luaXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlwcl9kZWJ1ZygiaW4gJXNcbiIsIF9fZnVuY19fKTsKKwltbWlvX3RyYWNlX2FycmF5ID0gdHI7CisJaWYgKHRyLT5jdHJsKSB7CisJCW1taW9fcmVzZXRfZGF0YSh0cik7CisJCWVuYWJsZV9tbWlvdHJhY2UoKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIG1taW9fdHJhY2VfcmVzZXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlwcl9kZWJ1ZygiaW4gJXNcbiIsIF9fZnVuY19fKTsKKwlpZiAodHItPmN0cmwpCisJCWRpc2FibGVfbW1pb3RyYWNlKCk7CisJbW1pb19yZXNldF9kYXRhKHRyKTsKKwltbWlvX3RyYWNlX2FycmF5ID0gTlVMTDsKK30KKworc3RhdGljIHZvaWQgbW1pb190cmFjZV9jdHJsX3VwZGF0ZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXByX2RlYnVnKCJpbiAlc1xuIiwgX19mdW5jX18pOworCWlmICh0ci0+Y3RybCkgeworCQltbWlvX3Jlc2V0X2RhdGEodHIpOworCQllbmFibGVfbW1pb3RyYWNlKCk7CisJfSBlbHNlIHsKKwkJZGlzYWJsZV9tbWlvdHJhY2UoKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgbW1pb19wcmludF9wY2lkZXYoc3RydWN0IHRyYWNlX3NlcSAqcywgY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwlpbnQgcmV0ID0gMDsKKwlpbnQgaTsKKwlyZXNvdXJjZV9zaXplX3Qgc3RhcnQsIGVuZDsKKwljb25zdCBzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2ID0gcGNpX2Rldl9kcml2ZXIoZGV2KTsKKworCS8qIFhYWDogaW5jb21wbGV0ZSBjaGVja3MgZm9yIHRyYWNlX3NlcV9wcmludGYoKSByZXR1cm4gdmFsdWUgKi8KKwlyZXQgKz0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiUENJREVWICUwMnglMDJ4ICUwNHglMDR4ICV4IiwKKwkJCQlkZXYtPmJ1cy0+bnVtYmVyLCBkZXYtPmRldmZuLAorCQkJCWRldi0+dmVuZG9yLCBkZXYtPmRldmljZSwgZGV2LT5pcnEpOworCS8qCisJICogWFhYOiBpcyBwY2lfcmVzb3VyY2VfdG9fdXNlcigpIGFwcHJvcHJpYXRlLCBzaW5jZSB3ZSBhcmUKKwkgKiBzdXBwb3NlZCB0byBpbnRlcnByZXQgdGhlIF9faW9yZW1hcCgpIHBoeXNfYWRkciBhcmd1bWVudCBiYXNlZCBvbgorCSAqIHRoZXNlIHByaW50ZWQgdmFsdWVzPworCSAqLworCWZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHsKKwkJcGNpX3Jlc291cmNlX3RvX3VzZXIoZGV2LCBpLCAmZGV2LT5yZXNvdXJjZVtpXSwgJnN0YXJ0LCAmZW5kKTsKKwkJcmV0ICs9IHRyYWNlX3NlcV9wcmludGYocywgIiAlbGx4IiwKKwkJCSh1bnNpZ25lZCBsb25nIGxvbmcpKHN0YXJ0IHwKKwkJCShkZXYtPnJlc291cmNlW2ldLmZsYWdzICYgUENJX1JFR0lPTl9GTEFHX01BU0spKSk7CisJfQorCWZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHsKKwkJcGNpX3Jlc291cmNlX3RvX3VzZXIoZGV2LCBpLCAmZGV2LT5yZXNvdXJjZVtpXSwgJnN0YXJ0LCAmZW5kKTsKKwkJcmV0ICs9IHRyYWNlX3NlcV9wcmludGYocywgIiAlbGx4IiwKKwkJCWRldi0+cmVzb3VyY2VbaV0uc3RhcnQgPCBkZXYtPnJlc291cmNlW2ldLmVuZCA/CisJCQkodW5zaWduZWQgbG9uZyBsb25nKShlbmQgLSBzdGFydCkgKyAxIDogMCk7CisJfQorCWlmIChkcnYpCisJCXJldCArPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIgJXNcbiIsIGRydi0+bmFtZSk7CisJZWxzZQorCQlyZXQgKz0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiIFxuIik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgZGVzdHJveV9oZWFkZXJfaXRlcihzdHJ1Y3QgaGVhZGVyX2l0ZXIgKmhpdGVyKQoreworCWlmICghaGl0ZXIpCisJCXJldHVybjsKKwlwY2lfZGV2X3B1dChoaXRlci0+ZGV2KTsKKwlrZnJlZShoaXRlcik7Cit9CisKK3N0YXRpYyB2b2lkIG1taW9fcGlwZV9vcGVuKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgaGVhZGVyX2l0ZXIgKmhpdGVyOworCXN0cnVjdCB0cmFjZV9zZXEgKnMgPSAmaXRlci0+c2VxOworCisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiVkVSU0lPTiAyMDA3MDgyNFxuIik7CisKKwloaXRlciA9IGt6YWxsb2Moc2l6ZW9mKCpoaXRlciksIEdGUF9LRVJORUwpOworCWlmICghaGl0ZXIpCisJCXJldHVybjsKKworCWhpdGVyLT5kZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBOVUxMKTsKKwlpdGVyLT5wcml2YXRlID0gaGl0ZXI7Cit9CisKKy8qIFhYWDogVGhpcyBpcyBub3QgY2FsbGVkIHdoZW4gdGhlIHBpcGUgaXMgY2xvc2VkISAqLworc3RhdGljIHZvaWQgbW1pb19jbG9zZShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IGhlYWRlcl9pdGVyICpoaXRlciA9IGl0ZXItPnByaXZhdGU7CisJZGVzdHJveV9oZWFkZXJfaXRlcihoaXRlcik7CisJaXRlci0+cHJpdmF0ZSA9IE5VTEw7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGNvdW50X292ZXJydW5zKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlpbnQgY3B1OworCXVuc2lnbmVkIGxvbmcgY250ID0gMDsKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgeworCQljbnQgKz0gaXRlci0+b3ZlcnJ1bltjcHVdOworCQlpdGVyLT5vdmVycnVuW2NwdV0gPSAwOworCX0KKwlyZXR1cm4gY250OworfQorCitzdGF0aWMgc3NpemVfdCBtbWlvX3JlYWQoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLCBzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJCQljaGFyIF9fdXNlciAqdWJ1Ziwgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXNzaXplX3QgcmV0OworCXN0cnVjdCBoZWFkZXJfaXRlciAqaGl0ZXIgPSBpdGVyLT5wcml2YXRlOworCXN0cnVjdCB0cmFjZV9zZXEgKnMgPSAmaXRlci0+c2VxOworCXVuc2lnbmVkIGxvbmcgbjsKKworCW4gPSBjb3VudF9vdmVycnVucyhpdGVyKTsKKwlpZiAobikgeworCQkvKiBYWFg6IFRoaXMgaXMgbGF0ZXIgdGhhbiB3aGVyZSBldmVudHMgd2VyZSBsb3N0LiAqLworCQl0cmFjZV9zZXFfcHJpbnRmKHMsICJNQVJLIDAuMDAwMDAwIExvc3QgJWx1IGV2ZW50cy5cbiIsIG4pOworCQlpZiAoIW92ZXJydW5fZGV0ZWN0ZWQpCisJCQlwcl93YXJuaW5nKCJtbWlvdHJhY2UgaGFzIGxvc3QgZXZlbnRzLlxuIik7CisJCW92ZXJydW5fZGV0ZWN0ZWQgPSB0cnVlOworCQlnb3RvIHByaW50X291dDsKKwl9CisKKwlpZiAoIWhpdGVyKQorCQlyZXR1cm4gMDsKKworCW1taW9fcHJpbnRfcGNpZGV2KHMsIGhpdGVyLT5kZXYpOworCWhpdGVyLT5kZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBoaXRlci0+ZGV2KTsKKworCWlmICghaGl0ZXItPmRldikgeworCQlkZXN0cm95X2hlYWRlcl9pdGVyKGhpdGVyKTsKKwkJaXRlci0+cHJpdmF0ZSA9IE5VTEw7CisJfQorCitwcmludF9vdXQ6CisJcmV0ID0gdHJhY2Vfc2VxX3RvX3VzZXIocywgdWJ1ZiwgY250KTsKKwlyZXR1cm4gKHJldCA9PSAtRUJVU1kpID8gMCA6IHJldDsKK30KKworc3RhdGljIGludCBtbWlvX3ByaW50X3J3KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5ID0gaXRlci0+ZW50OworCXN0cnVjdCBtbWlvdHJhY2VfcncgKnJ3CT0gJmVudHJ5LT5tbWlvcnc7CisJc3RydWN0IHRyYWNlX3NlcSAqcwk9ICZpdGVyLT5zZXE7CisJdW5zaWduZWQgbG9uZyBsb25nIHQJPSBuczJ1c2VjcyhlbnRyeS0+dCk7CisJdW5zaWduZWQgbG9uZyB1c2VjX3JlbQk9IGRvX2Rpdih0LCAxMDAwMDAwVUxMKTsKKwl1bnNpZ25lZCBzZWNzCQk9ICh1bnNpZ25lZCBsb25nKXQ7CisJaW50IHJldCA9IDE7CisKKwlzd2l0Y2ggKGVudHJ5LT5tbWlvcncub3Bjb2RlKSB7CisJY2FzZSBNTUlPX1JFQUQ6CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywKKwkJCSJSICVkICVsdS4lMDZsdSAlZCAweCVsbHggMHglbHggMHglbHggJWRcbiIsCisJCQlydy0+d2lkdGgsIHNlY3MsIHVzZWNfcmVtLCBydy0+bWFwX2lkLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylydy0+cGh5cywKKwkJCXJ3LT52YWx1ZSwgcnctPnBjLCAwKTsKKwkJYnJlYWs7CisJY2FzZSBNTUlPX1dSSVRFOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsCisJCQkiVyAlZCAlbHUuJTA2bHUgJWQgMHglbGx4IDB4JWx4IDB4JWx4ICVkXG4iLAorCQkJcnctPndpZHRoLCBzZWNzLCB1c2VjX3JlbSwgcnctPm1hcF9pZCwKKwkJCSh1bnNpZ25lZCBsb25nIGxvbmcpcnctPnBoeXMsCisJCQlydy0+dmFsdWUsIHJ3LT5wYywgMCk7CisJCWJyZWFrOworCWNhc2UgTU1JT19VTktOT1dOX09QOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsCisJCQkiVU5LTk9XTiAlbHUuJTA2bHUgJWQgMHglbGx4ICUwMngsJTAyeCwlMDJ4IDB4JWx4ICVkXG4iLAorCQkJc2VjcywgdXNlY19yZW0sIHJ3LT5tYXBfaWQsCisJCQkodW5zaWduZWQgbG9uZyBsb25nKXJ3LT5waHlzLAorCQkJKHJ3LT52YWx1ZSA+PiAxNikgJiAweGZmLCAocnctPnZhbHVlID4+IDgpICYgMHhmZiwKKwkJCShydy0+dmFsdWUgPj4gMCkgJiAweGZmLCBydy0+cGMsIDApOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICJydyB3aGF0P1xuIik7CisJCWJyZWFrOworCX0KKwlpZiAocmV0KQorCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBtbWlvX3ByaW50X21hcChzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeSA9IGl0ZXItPmVudDsKKwlzdHJ1Y3QgbW1pb3RyYWNlX21hcCAqbQk9ICZlbnRyeS0+bW1pb21hcDsKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzCT0gJml0ZXItPnNlcTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdAk9IG5zMnVzZWNzKGVudHJ5LT50KTsKKwl1bnNpZ25lZCBsb25nIHVzZWNfcmVtCT0gZG9fZGl2KHQsIDEwMDAwMDBVTEwpOworCXVuc2lnbmVkIHNlY3MJCT0gKHVuc2lnbmVkIGxvbmcpdDsKKwlpbnQgcmV0ID0gMTsKKworCXN3aXRjaCAoZW50cnktPm1taW9ydy5vcGNvZGUpIHsKKwljYXNlIE1NSU9fUFJPQkU6CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywKKwkJCSJNQVAgJWx1LiUwNmx1ICVkIDB4JWxseCAweCVseCAweCVseCAweCVseCAlZFxuIiwKKwkJCXNlY3MsIHVzZWNfcmVtLCBtLT5tYXBfaWQsCisJCQkodW5zaWduZWQgbG9uZyBsb25nKW0tPnBoeXMsIG0tPnZpcnQsIG0tPmxlbiwKKwkJCTBVTCwgMCk7CisJCWJyZWFrOworCWNhc2UgTU1JT19VTlBST0JFOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsCisJCQkiVU5NQVAgJWx1LiUwNmx1ICVkIDB4JWx4ICVkXG4iLAorCQkJc2VjcywgdXNlY19yZW0sIG0tPm1hcF9pZCwgMFVMLCAwKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAibWFwIHdoYXQ/XG4iKTsKKwkJYnJlYWs7CisJfQorCWlmIChyZXQpCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCisvKiByZXR1cm4gMCB0byBhYm9ydCBwcmludGluZyB3aXRob3V0IGNvbnN1bWluZyBjdXJyZW50IGVudHJ5IGluIHBpcGUgbW9kZSAqLworc3RhdGljIGludCBtbWlvX3ByaW50X2xpbmUoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN3aXRjaCAoaXRlci0+ZW50LT50eXBlKSB7CisJY2FzZSBUUkFDRV9NTUlPX1JXOgorCQlyZXR1cm4gbW1pb19wcmludF9ydyhpdGVyKTsKKwljYXNlIFRSQUNFX01NSU9fTUFQOgorCQlyZXR1cm4gbW1pb19wcmludF9tYXAoaXRlcik7CisJZGVmYXVsdDoKKwkJcmV0dXJuIDE7IC8qIGlnbm9yZSB1bmtub3duIGVudHJpZXMgKi8KKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIG1taW9fdHJhY2VyIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJtbWlvdHJhY2UiLAorCS5pbml0CQk9IG1taW9fdHJhY2VfaW5pdCwKKwkucmVzZXQJCT0gbW1pb190cmFjZV9yZXNldCwKKwkucGlwZV9vcGVuCT0gbW1pb19waXBlX29wZW4sCisJLmNsb3NlCQk9IG1taW9fY2xvc2UsCisJLnJlYWQJCT0gbW1pb19yZWFkLAorCS5jdHJsX3VwZGF0ZQk9IG1taW9fdHJhY2VfY3RybF91cGRhdGUsCisJLnByaW50X2xpbmUJPSBtbWlvX3ByaW50X2xpbmUsCit9OworCitfX2luaXQgc3RhdGljIGludCBpbml0X21taW9fdHJhY2Uodm9pZCkKK3sKKwlyZXR1cm4gcmVnaXN0ZXJfdHJhY2VyKCZtbWlvX3RyYWNlcik7Cit9CitkZXZpY2VfaW5pdGNhbGwoaW5pdF9tbWlvX3RyYWNlKTsKKwordm9pZCBtbWlvX3RyYWNlX3J3KHN0cnVjdCBtbWlvdHJhY2VfcncgKnJ3KQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSBtbWlvX3RyYWNlX2FycmF5OworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEgPSB0ci0+ZGF0YVtzbXBfcHJvY2Vzc29yX2lkKCldOworCV9fdHJhY2VfbW1pb3RyYWNlX3J3KHRyLCBkYXRhLCBydyk7Cit9CisKK3ZvaWQgbW1pb190cmFjZV9tYXBwaW5nKHN0cnVjdCBtbWlvdHJhY2VfbWFwICptYXApCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IG1taW9fdHJhY2VfYXJyYXk7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKworCXByZWVtcHRfZGlzYWJsZSgpOworCWRhdGEgPSB0ci0+ZGF0YVtzbXBfcHJvY2Vzc29yX2lkKCldOworCV9fdHJhY2VfbW1pb3RyYWNlX21hcCh0ciwgZGF0YSwgbWFwKTsKKwlwcmVlbXB0X2VuYWJsZSgpOworfQpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX3NjaGVkX3N3aXRjaC5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3NjaGVkX3N3aXRjaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiODE3YTIKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2NoZWRfc3dpdGNoLmMKQEAgLTAsMCArMSwyODYgQEAKKy8qCisgKiB0cmFjZSBjb250ZXh0IHN3aXRjaAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9tYXJrZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkJKmN0eF90cmFjZTsKK3N0YXRpYyBpbnQgX19yZWFkX21vc3RseQl0cmFjZXJfZW5hYmxlZDsKK3N0YXRpYyBhdG9taWNfdAkJCXNjaGVkX3JlZjsKKworc3RhdGljIHZvaWQKK3NjaGVkX3N3aXRjaF9mdW5jKHZvaWQgKnByaXZhdGUsIHZvaWQgKl9fcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldiwKKwkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKipwdHIgPSBwcml2YXRlOworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSAqcHRyOworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlsb25nIGRpc2FibGVkOworCWludCBjcHU7CisKKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKHByZXYpOworCXRyYWNpbmdfcmVjb3JkX2NtZGxpbmUobmV4dCk7CisKKwlpZiAoIXRyYWNlcl9lbmFibGVkKQorCQlyZXR1cm47CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKKwlkYXRhID0gdHItPmRhdGFbY3B1XTsKKwlkaXNhYmxlZCA9IGF0b21pY19pbmNfcmV0dXJuKCZkYXRhLT5kaXNhYmxlZCk7CisKKwlpZiAobGlrZWx5KGRpc2FibGVkID09IDEpKQorCQl0cmFjaW5nX3NjaGVkX3N3aXRjaF90cmFjZSh0ciwgZGF0YSwgcHJldiwgbmV4dCwgZmxhZ3MpOworCisJYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RhdGljIG5vdHJhY2Ugdm9pZAorc2NoZWRfc3dpdGNoX2NhbGxiYWNrKHZvaWQgKnByb2JlX2RhdGEsIHZvaWQgKmNhbGxfZGF0YSwKKwkJICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0ICphcmdzKQoreworCXN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldjsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQ7CisJc3RydWN0IHJxICpfX3JxOworCisJaWYgKCFhdG9taWNfcmVhZCgmc2NoZWRfcmVmKSkKKwkJcmV0dXJuOworCisJLyogc2tpcCBwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAqLworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGludCk7CisJKHZvaWQpdmFfYXJnKCphcmdzLCBsb25nKTsKKwlfX3JxID0gdmFfYXJnKCphcmdzLCB0eXBlb2YoX19ycSkpOworCXByZXYgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihwcmV2KSk7CisJbmV4dCA9IHZhX2FyZygqYXJncywgdHlwZW9mKG5leHQpKTsKKworCS8qCisJICogSWYgdHJhY2VyX3N3aXRjaF9mdW5jIG9ubHkgcG9pbnRzIHRvIHRoZSBsb2NhbAorCSAqIHN3aXRjaCBmdW5jLCBpdCBzdGlsbCBuZWVkcyB0aGUgcHRyIHBhc3NlZCB0byBpdC4KKwkgKi8KKwlzY2hlZF9zd2l0Y2hfZnVuYyhwcm9iZV9kYXRhLCBfX3JxLCBwcmV2LCBuZXh0KTsKK30KKworc3RhdGljIHZvaWQKK3dha2V1cF9mdW5jKHZvaWQgKnByaXZhdGUsIHZvaWQgKl9fcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqd2FrZWUsIHN0cnVjdAorCQkJdGFza19zdHJ1Y3QgKmN1cnIpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICoqcHRyID0gcHJpdmF0ZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gKnB0cjsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKwlpbnQgY3B1OworCisJaWYgKCF0cmFjZXJfZW5hYmxlZCkKKwkJcmV0dXJuOworCisJdHJhY2luZ19yZWNvcmRfY21kbGluZShjdXJyKTsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJmRhdGEtPmRpc2FibGVkKTsKKworCWlmIChsaWtlbHkoZGlzYWJsZWQgPT0gMSkpCisJCXRyYWNpbmdfc2NoZWRfd2FrZXVwX3RyYWNlKHRyLCBkYXRhLCB3YWtlZSwgY3VyciwgZmxhZ3MpOworCisJYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RhdGljIG5vdHJhY2Ugdm9pZAord2FrZV91cF9jYWxsYmFjayh2b2lkICpwcm9iZV9kYXRhLCB2b2lkICpjYWxsX2RhdGEsCisJCSBjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgKmFyZ3MpCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyOworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKKwlzdHJ1Y3QgcnEgKl9fcnE7CisKKwlpZiAobGlrZWx5KCF0cmFjZXJfZW5hYmxlZCkpCisJCXJldHVybjsKKworCS8qIFNraXAgcGlkICVkIHN0YXRlICVsZCAqLworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGxvbmcpOworCS8qIG5vdyBnZXQgdGhlIG1lYXQ6ICJycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiAqLworCV9fcnEgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihfX3JxKSk7CisJdGFzayA9IHZhX2FyZygqYXJncywgdHlwZW9mKHRhc2spKTsKKwljdXJyID0gdmFfYXJnKCphcmdzLCB0eXBlb2YoY3VycikpOworCisJdHJhY2luZ19yZWNvcmRfY21kbGluZSh0YXNrKTsKKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKGN1cnIpOworCisJd2FrZXVwX2Z1bmMocHJvYmVfZGF0YSwgX19ycSwgdGFzaywgY3Vycik7Cit9CisKK3N0YXRpYyB2b2lkIHNjaGVkX3N3aXRjaF9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCBjcHU7CisKKwl0ci0+dGltZV9zdGFydCA9IGZ0cmFjZV9ub3codHItPmNwdSk7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKKwkJdHJhY2luZ19yZXNldCh0ci0+ZGF0YVtjcHVdKTsKK30KKworc3RhdGljIGludCB0cmFjaW5nX3NjaGVkX3JlZ2lzdGVyKHZvaWQpCit7CisJaW50IHJldDsKKworCXJldCA9IG1hcmtlcl9wcm9iZV9yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cCIsCisJCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkmY3R4X3RyYWNlKTsKKwlpZiAocmV0KSB7CisJCXByX2luZm8oIndha2V1cCB0cmFjZTogQ291bGRuJ3QgYWRkIG1hcmtlciIKKwkJCSIgcHJvYmUgdG8ga2VybmVsX3NjaGVkX3dha2V1cFxuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gbWFya2VyX3Byb2JlX3JlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwX25ldyIsCisJCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkmY3R4X3RyYWNlKTsKKwlpZiAocmV0KSB7CisJCXByX2luZm8oIndha2V1cCB0cmFjZTogQ291bGRuJ3QgYWRkIG1hcmtlciIKKwkJCSIgcHJvYmUgdG8ga2VybmVsX3NjaGVkX3dha2V1cF9uZXdcbiIpOworCQlnb3RvIGZhaWxfZGVwcm9iZTsKKwl9CisKKwlyZXQgPSBtYXJrZXJfcHJvYmVfcmVnaXN0ZXIoImtlcm5lbF9zY2hlZF9zY2hlZHVsZSIsCisJCSJwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAiCisJCSIjIyBycSAlcCBwcmV2ICVwIG5leHQgJXAiLAorCQlzY2hlZF9zd2l0Y2hfY2FsbGJhY2ssCisJCSZjdHhfdHJhY2UpOworCWlmIChyZXQpIHsKKwkJcHJfaW5mbygic2NoZWQgdHJhY2U6IENvdWxkbid0IGFkZCBtYXJrZXIiCisJCQkiIHByb2JlIHRvIGtlcm5lbF9zY2hlZF9zY2hlZHVsZVxuIik7CisJCWdvdG8gZmFpbF9kZXByb2JlX3dha2VfbmV3OworCX0KKworCXJldHVybiByZXQ7CitmYWlsX2RlcHJvYmVfd2FrZV9uZXc6CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXBfbmV3IiwKKwkJCQl3YWtlX3VwX2NhbGxiYWNrLAorCQkJCSZjdHhfdHJhY2UpOworZmFpbF9kZXByb2JlOgorCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwIiwKKwkJCQl3YWtlX3VwX2NhbGxiYWNrLAorCQkJCSZjdHhfdHJhY2UpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHRyYWNpbmdfc2NoZWRfdW5yZWdpc3Rlcih2b2lkKQoreworCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfc2NoZWR1bGUiLAorCQkJCXNjaGVkX3N3aXRjaF9jYWxsYmFjaywKKwkJCQkmY3R4X3RyYWNlKTsKKwltYXJrZXJfcHJvYmVfdW5yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cF9uZXciLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJmN0eF90cmFjZSk7CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXAiLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJmN0eF90cmFjZSk7Cit9CisKK3N0YXRpYyB2b2lkIHRyYWNpbmdfc3RhcnRfc2NoZWRfc3dpdGNoKHZvaWQpCit7CisJbG9uZyByZWY7CisKKwlyZWYgPSBhdG9taWNfaW5jX3JldHVybigmc2NoZWRfcmVmKTsKKwlpZiAocmVmID09IDEpCisJCXRyYWNpbmdfc2NoZWRfcmVnaXN0ZXIoKTsKK30KKworc3RhdGljIHZvaWQgdHJhY2luZ19zdG9wX3NjaGVkX3N3aXRjaCh2b2lkKQoreworCWxvbmcgcmVmOworCisJcmVmID0gYXRvbWljX2RlY19hbmRfdGVzdCgmc2NoZWRfcmVmKTsKKwlpZiAocmVmKQorCQl0cmFjaW5nX3NjaGVkX3VucmVnaXN0ZXIoKTsKK30KKwordm9pZCB0cmFjaW5nX3N0YXJ0X2NtZGxpbmVfcmVjb3JkKHZvaWQpCit7CisJdHJhY2luZ19zdGFydF9zY2hlZF9zd2l0Y2goKTsKK30KKwordm9pZCB0cmFjaW5nX3N0b3BfY21kbGluZV9yZWNvcmQodm9pZCkKK3sKKwl0cmFjaW5nX3N0b3Bfc2NoZWRfc3dpdGNoKCk7Cit9CisKK3N0YXRpYyB2b2lkIHN0YXJ0X3NjaGVkX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJc2NoZWRfc3dpdGNoX3Jlc2V0KHRyKTsKKwl0cmFjaW5nX3N0YXJ0X2NtZGxpbmVfcmVjb3JkKCk7CisJdHJhY2VyX2VuYWJsZWQgPSAxOworfQorCitzdGF0aWMgdm9pZCBzdG9wX3NjaGVkX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VyX2VuYWJsZWQgPSAwOworCXRyYWNpbmdfc3RvcF9jbWRsaW5lX3JlY29yZCgpOworfQorCitzdGF0aWMgdm9pZCBzY2hlZF9zd2l0Y2hfdHJhY2VfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWN0eF90cmFjZSA9IHRyOworCisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF9zY2hlZF90cmFjZSh0cik7Cit9CisKK3N0YXRpYyB2b2lkIHNjaGVkX3N3aXRjaF90cmFjZV9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RvcF9zY2hlZF90cmFjZSh0cik7Cit9CisKK3N0YXRpYyB2b2lkIHNjaGVkX3N3aXRjaF90cmFjZV9jdHJsX3VwZGF0ZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCS8qIFdoZW4gc3RhcnRpbmcgYSBuZXcgdHJhY2UsIHJlc2V0IHRoZSBidWZmZXJzICovCisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF9zY2hlZF90cmFjZSh0cik7CisJZWxzZQorCQlzdG9wX3NjaGVkX3RyYWNlKHRyKTsKK30KKworc3RhdGljIHN0cnVjdCB0cmFjZXIgc2NoZWRfc3dpdGNoX3RyYWNlIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJzY2hlZF9zd2l0Y2giLAorCS5pbml0CQk9IHNjaGVkX3N3aXRjaF90cmFjZV9pbml0LAorCS5yZXNldAkJPSBzY2hlZF9zd2l0Y2hfdHJhY2VfcmVzZXQsCisJLmN0cmxfdXBkYXRlCT0gc2NoZWRfc3dpdGNoX3RyYWNlX2N0cmxfdXBkYXRlLAorI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKwkuc2VsZnRlc3QgICAgPSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3NjaGVkX3N3aXRjaCwKKyNlbmRpZgorfTsKKworX19pbml0IHN0YXRpYyBpbnQgaW5pdF9zY2hlZF9zd2l0Y2hfdHJhY2Uodm9pZCkKK3sKKwlpbnQgcmV0ID0gMDsKKworCWlmIChhdG9taWNfcmVhZCgmc2NoZWRfcmVmKSkKKwkJcmV0ID0gdHJhY2luZ19zY2hlZF9yZWdpc3RlcigpOworCWlmIChyZXQpIHsKKwkJcHJfaW5mbygiZXJyb3IgcmVnaXN0ZXJpbmcgc2NoZWR1bGVyIHRyYWNlXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJcmV0dXJuIHJlZ2lzdGVyX3RyYWNlcigmc2NoZWRfc3dpdGNoX3RyYWNlKTsKK30KK2RldmljZV9pbml0Y2FsbChpbml0X3NjaGVkX3N3aXRjaF90cmFjZSk7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc2NoZWRfd2FrZXVwLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2NoZWRfd2FrZXVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M4ZDYxZAotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9zY2hlZF93YWtldXAuYwpAQCAtMCwwICsxLDQ0OCBAQAorLyoKKyAqIHRyYWNlIHRhc2sgd2FrZXVwIHRpbWluZ3MKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KKyAqCisgKiBCYXNlZCBvbiBjb2RlIGZyb20gdGhlIGxhdGVuY3lfdHJhY2VyLCB0aGF0IGlzOgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiBJbmdvIE1vbG5hcgorICogIENvcHlyaWdodCAoQykgMjAwNCBXaWxsaWFtIExlZSBJcndpbiBJSUkKKyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L21hcmtlci5oPgorCisjaW5jbHVkZSAidHJhY2UuaCIKKworc3RhdGljIHN0cnVjdCB0cmFjZV9hcnJheQkqd2FrZXVwX3RyYWNlOworc3RhdGljIGludCBfX3JlYWRfbW9zdGx5CXRyYWNlcl9lbmFibGVkOworCitzdGF0aWMgc3RydWN0IHRhc2tfc3RydWN0CSp3YWtldXBfdGFzazsKK3N0YXRpYyBpbnQJCQl3YWtldXBfY3B1Oworc3RhdGljIHVuc2lnbmVkCQkJd2FrZXVwX3ByaW8gPSAtMTsKKworc3RhdGljIERFRklORV9TUElOTE9DSyh3YWtldXBfbG9jayk7CisKK3N0YXRpYyB2b2lkIF9fd2FrZXVwX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorLyoKKyAqIGlycXNvZmYgdXNlcyBpdHMgb3duIHRyYWNlciBmdW5jdGlvbiB0byBrZWVwIHRoZSBvdmVyaGVhZCBkb3duOgorICovCitzdGF0aWMgdm9pZAord2FrZXVwX3RyYWNlcl9jYWxsKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSB3YWtldXBfdHJhY2U7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgZGlzYWJsZWQ7CisJaW50IHJlc2NoZWQ7CisJaW50IGNwdTsKKworCWlmIChsaWtlbHkoIXdha2V1cF90YXNrKSkKKwkJcmV0dXJuOworCisJcmVzY2hlZCA9IG5lZWRfcmVzY2hlZCgpOworCXByZWVtcHRfZGlzYWJsZV9ub3RyYWNlKCk7CisKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJmRhdGEtPmRpc2FibGVkKTsKKwlpZiAodW5saWtlbHkoZGlzYWJsZWQgIT0gMSkpCisJCWdvdG8gb3V0OworCisJc3Bpbl9sb2NrX2lycXNhdmUoJndha2V1cF9sb2NrLCBmbGFncyk7CisKKwlpZiAodW5saWtlbHkoIXdha2V1cF90YXNrKSkKKwkJZ290byB1bmxvY2s7CisKKwkvKgorCSAqIFRoZSB0YXNrIGNhbid0IGRpc2FwcGVhciBiZWNhdXNlIGl0IG5lZWRzIHRvCisJICogd2FrZSB1cCBmaXJzdCwgYW5kIHdlIGhhdmUgdGhlIHdha2V1cF9sb2NrLgorCSAqLworCWlmICh0YXNrX2NwdSh3YWtldXBfdGFzaykgIT0gY3B1KQorCQlnb3RvIHVubG9jazsKKworCXRyYWNlX2Z1bmN0aW9uKHRyLCBkYXRhLCBpcCwgcGFyZW50X2lwLCBmbGFncyk7CisKKyB1bmxvY2s6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2FrZXVwX2xvY2ssIGZsYWdzKTsKKworIG91dDoKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7CisKKwkvKgorCSAqIFRvIHByZXZlbnQgcmVjdXJzaW9uIGZyb20gdGhlIHNjaGVkdWxlciwgaWYgdGhlCisJICogcmVzY2hlZCBmbGFnIHdhcyBzZXQgYmVmb3JlIHdlIGVudGVyZWQsIHRoZW4KKwkgKiBkb24ndCByZXNjaGVkdWxlLgorCSAqLworCWlmIChyZXNjaGVkKQorCQlwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkX25vdHJhY2UoKTsKKwllbHNlCisJCXByZWVtcHRfZW5hYmxlX25vdHJhY2UoKTsKK30KKworc3RhdGljIHN0cnVjdCBmdHJhY2Vfb3BzIHRyYWNlX29wcyBfX3JlYWRfbW9zdGx5ID0KK3sKKwkuZnVuYyA9IHdha2V1cF90cmFjZXJfY2FsbCwKK307CisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCisvKgorICogU2hvdWxkIHRoaXMgbmV3IGxhdGVuY3kgYmUgcmVwb3J0ZWQvcmVjb3JkZWQ/CisgKi8KK3N0YXRpYyBpbnQgcmVwb3J0X2xhdGVuY3koY3ljbGVfdCBkZWx0YSkKK3sKKwlpZiAodHJhY2luZ190aHJlc2gpIHsKKwkJaWYgKGRlbHRhIDwgdHJhY2luZ190aHJlc2gpCisJCQlyZXR1cm4gMDsKKwl9IGVsc2UgeworCQlpZiAoZGVsdGEgPD0gdHJhY2luZ19tYXhfbGF0ZW5jeSkKKwkJCXJldHVybiAwOworCX0KKwlyZXR1cm4gMTsKK30KKworc3RhdGljIHZvaWQgbm90cmFjZQord2FrZXVwX3NjaGVkX3N3aXRjaCh2b2lkICpwcml2YXRlLCB2b2lkICpycSwgc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LAorCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCkKK3sKKwl1bnNpZ25lZCBsb25nIGxhdGVuY3kgPSAwLCB0MCA9IDAsIHQxID0gMDsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKipwdHIgPSBwcml2YXRlOworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSAqcHRyOworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGE7CisJY3ljbGVfdCBUMCwgVDEsIGRlbHRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKwlpbnQgY3B1OworCisJaWYgKHVubGlrZWx5KCF0cmFjZXJfZW5hYmxlZCkpCisJCXJldHVybjsKKworCS8qCisJICogV2hlbiB3ZSBzdGFydCBhIG5ldyB0cmFjZSwgd2Ugc2V0IHdha2V1cF90YXNrIHRvIE5VTEwKKwkgKiBhbmQgdGhlbiBzZXQgdHJhY2VyX2VuYWJsZWQgPSAxLiBXZSB3YW50IHRvIG1ha2Ugc3VyZQorCSAqIHRoYXQgYW5vdGhlciBDUFUgZG9lcyBub3Qgc2VlIHRoZSB0cmFjZXJfZW5hYmxlZCA9IDEKKwkgKiBhbmQgdGhlIHdha2V1cF90YXNrIHdpdGggYW4gb2xkZXIgdGFzaywgdGhhdCBtaWdodAorCSAqIGFjdHVhbGx5IGJlIHRoZSBzYW1lIGFzIG5leHQuCisJICovCisJc21wX3JtYigpOworCisJaWYgKG5leHQgIT0gd2FrZXVwX3Rhc2spCisJCXJldHVybjsKKworCS8qIFRoZSB0YXNrIHdlIGFyZSB3YWl0aW5nIGZvciBpcyB3YWtpbmcgdXAgKi8KKwlkYXRhID0gdHItPmRhdGFbd2FrZXVwX2NwdV07CisKKwkvKiBkaXNhYmxlIGxvY2FsIGRhdGEsIG5vdCB3YWtldXBfY3B1IGRhdGEgKi8KKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJnRyLT5kYXRhW2NwdV0tPmRpc2FibGVkKTsKKwlpZiAobGlrZWx5KGRpc2FibGVkICE9IDEpKQorCQlnb3RvIG91dDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZ3YWtldXBfbG9jaywgZmxhZ3MpOworCisJLyogV2UgY291bGQgcmFjZSB3aXRoIGdyYWJiaW5nIHdha2V1cF9sb2NrICovCisJaWYgKHVubGlrZWx5KCF0cmFjZXJfZW5hYmxlZCB8fCBuZXh0ICE9IHdha2V1cF90YXNrKSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIENBTExFUl9BRERSMSwgQ0FMTEVSX0FERFIyLCBmbGFncyk7CisKKwkvKgorCSAqIHVzZWNzIGNvbnZlcnNpb24gaXMgc2xvdyBzbyB3ZSB0cnkgdG8gZGVsYXkgdGhlIGNvbnZlcnNpb24KKwkgKiBhcyBsb25nIGFzIHBvc3NpYmxlOgorCSAqLworCVQwID0gZGF0YS0+cHJlZW1wdF90aW1lc3RhbXA7CisJVDEgPSBmdHJhY2Vfbm93KGNwdSk7CisJZGVsdGEgPSBUMS1UMDsKKworCWlmICghcmVwb3J0X2xhdGVuY3koZGVsdGEpKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlsYXRlbmN5ID0gbnNlY3NfdG9fdXNlY3MoZGVsdGEpOworCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IGRlbHRhOworCXQwID0gbnNlY3NfdG9fdXNlY3MoVDApOworCXQxID0gbnNlY3NfdG9fdXNlY3MoVDEpOworCisJdXBkYXRlX21heF90cih0ciwgd2FrZXVwX3Rhc2ssIHdha2V1cF9jcHUpOworCitvdXRfdW5sb2NrOgorCV9fd2FrZXVwX3Jlc2V0KHRyKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3YWtldXBfbG9jaywgZmxhZ3MpOworb3V0OgorCWF0b21pY19kZWMoJnRyLT5kYXRhW2NwdV0tPmRpc2FibGVkKTsKK30KKworc3RhdGljIG5vdHJhY2Ugdm9pZAorc2NoZWRfc3dpdGNoX2NhbGxiYWNrKHZvaWQgKnByb2JlX2RhdGEsIHZvaWQgKmNhbGxfZGF0YSwKKwkJICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0ICphcmdzKQoreworCXN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldjsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQ7CisJc3RydWN0IHJxICpfX3JxOworCisJLyogc2tpcCBwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAqLworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGludCk7CisJKHZvaWQpdmFfYXJnKCphcmdzLCBsb25nKTsKKwlfX3JxID0gdmFfYXJnKCphcmdzLCB0eXBlb2YoX19ycSkpOworCXByZXYgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihwcmV2KSk7CisJbmV4dCA9IHZhX2FyZygqYXJncywgdHlwZW9mKG5leHQpKTsKKworCXRyYWNpbmdfcmVjb3JkX2NtZGxpbmUocHJldik7CisKKwkvKgorCSAqIElmIHRyYWNlcl9zd2l0Y2hfZnVuYyBvbmx5IHBvaW50cyB0byB0aGUgbG9jYWwKKwkgKiBzd2l0Y2ggZnVuYywgaXQgc3RpbGwgbmVlZHMgdGhlIHB0ciBwYXNzZWQgdG8gaXQuCisJICovCisJd2FrZXVwX3NjaGVkX3N3aXRjaChwcm9iZV9kYXRhLCBfX3JxLCBwcmV2LCBuZXh0KTsKK30KKworc3RhdGljIHZvaWQgX193YWtldXBfcmVzZXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCWludCBjcHU7CisKKwlhc3NlcnRfc3Bpbl9sb2NrZWQoJndha2V1cF9sb2NrKTsKKworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKKwkJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisJCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisJfQorCisJd2FrZXVwX2NwdSA9IC0xOworCXdha2V1cF9wcmlvID0gLTE7CisKKwlpZiAod2FrZXVwX3Rhc2spCisJCXB1dF90YXNrX3N0cnVjdCh3YWtldXBfdGFzayk7CisKKwl3YWtldXBfdGFzayA9IE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIHdha2V1cF9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmd2FrZXVwX2xvY2ssIGZsYWdzKTsKKwlfX3dha2V1cF9yZXNldCh0cik7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2FrZXVwX2xvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQKK3dha2V1cF9jaGVja19zdGFydChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsCisJCSAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqY3VycikKK3sKKwlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKworCWlmIChsaWtlbHkoIXJ0X3Rhc2socCkpIHx8CisJCQlwLT5wcmlvID49IHdha2V1cF9wcmlvIHx8CisJCQlwLT5wcmlvID49IGN1cnItPnByaW8pCisJCXJldHVybjsKKworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJnRyLT5kYXRhW2NwdV0tPmRpc2FibGVkKTsKKwlpZiAodW5saWtlbHkoZGlzYWJsZWQgIT0gMSkpCisJCWdvdG8gb3V0OworCisJLyogaW50ZXJydXB0cyBzaG91bGQgYmUgb2ZmIGZyb20gdHJ5X3RvX3dha2VfdXAgKi8KKwlzcGluX2xvY2soJndha2V1cF9sb2NrKTsKKworCS8qIGNoZWNrIGZvciByYWNlcy4gKi8KKwlpZiAoIXRyYWNlcl9lbmFibGVkIHx8IHAtPnByaW8gPj0gd2FrZXVwX3ByaW8pCisJCWdvdG8gb3V0X2xvY2tlZDsKKworCS8qIHJlc2V0IHRoZSB0cmFjZSAqLworCV9fd2FrZXVwX3Jlc2V0KHRyKTsKKworCXdha2V1cF9jcHUgPSB0YXNrX2NwdShwKTsKKwl3YWtldXBfcHJpbyA9IHAtPnByaW87CisKKwl3YWtldXBfdGFzayA9IHA7CisJZ2V0X3Rhc2tfc3RydWN0KHdha2V1cF90YXNrKTsKKworCWxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOworCisJdHItPmRhdGFbd2FrZXVwX2NwdV0tPnByZWVtcHRfdGltZXN0YW1wID0gZnRyYWNlX25vdyhjcHUpOworCXRyYWNlX2Z1bmN0aW9uKHRyLCB0ci0+ZGF0YVt3YWtldXBfY3B1XSwKKwkJICAgICAgIENBTExFUl9BRERSMSwgQ0FMTEVSX0FERFIyLCBmbGFncyk7CisKK291dF9sb2NrZWQ6CisJc3Bpbl91bmxvY2soJndha2V1cF9sb2NrKTsKK291dDoKKwlhdG9taWNfZGVjKCZ0ci0+ZGF0YVtjcHVdLT5kaXNhYmxlZCk7Cit9CisKK3N0YXRpYyBub3RyYWNlIHZvaWQKK3dha2VfdXBfY2FsbGJhY2sodm9pZCAqcHJvYmVfZGF0YSwgdm9pZCAqY2FsbF9kYXRhLAorCQkgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0ICphcmdzKQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqKnB0ciA9IHByb2JlX2RhdGE7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICpwdHI7CisJc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyOworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKKwlzdHJ1Y3QgcnEgKl9fcnE7CisKKwlpZiAobGlrZWx5KCF0cmFjZXJfZW5hYmxlZCkpCisJCXJldHVybjsKKworCS8qIFNraXAgcGlkICVkIHN0YXRlICVsZCAqLworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGxvbmcpOworCS8qIG5vdyBnZXQgdGhlIG1lYXQ6ICJycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiAqLworCV9fcnEgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihfX3JxKSk7CisJdGFzayA9IHZhX2FyZygqYXJncywgdHlwZW9mKHRhc2spKTsKKwljdXJyID0gdmFfYXJnKCphcmdzLCB0eXBlb2YoY3VycikpOworCisJdHJhY2luZ19yZWNvcmRfY21kbGluZSh0YXNrKTsKKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKGN1cnIpOworCisJd2FrZXVwX2NoZWNrX3N0YXJ0KHRyLCB0YXNrLCBjdXJyKTsKK30KKworc3RhdGljIHZvaWQgc3RhcnRfd2FrZXVwX3RyYWNlcihzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCByZXQ7CisKKwlyZXQgPSBtYXJrZXJfcHJvYmVfcmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXAiLAorCQkJInBpZCAlZCBzdGF0ZSAlbGQgIyMgcnEgJXAgdGFzayAlcCBycS0+Y3VyciAlcCIsCisJCQl3YWtlX3VwX2NhbGxiYWNrLAorCQkJJndha2V1cF90cmFjZSk7CisJaWYgKHJldCkgeworCQlwcl9pbmZvKCJ3YWtldXAgdHJhY2U6IENvdWxkbid0IGFkZCBtYXJrZXIiCisJCQkiIHByb2JlIHRvIGtlcm5lbF9zY2hlZF93YWtldXBcbiIpOworCQlyZXR1cm47CisJfQorCisJcmV0ID0gbWFya2VyX3Byb2JlX3JlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwX25ldyIsCisJCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkmd2FrZXVwX3RyYWNlKTsKKwlpZiAocmV0KSB7CisJCXByX2luZm8oIndha2V1cCB0cmFjZTogQ291bGRuJ3QgYWRkIG1hcmtlciIKKwkJCSIgcHJvYmUgdG8ga2VybmVsX3NjaGVkX3dha2V1cF9uZXdcbiIpOworCQlnb3RvIGZhaWxfZGVwcm9iZTsKKwl9CisKKwlyZXQgPSBtYXJrZXJfcHJvYmVfcmVnaXN0ZXIoImtlcm5lbF9zY2hlZF9zY2hlZHVsZSIsCisJCSJwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAiCisJCSIjIyBycSAlcCBwcmV2ICVwIG5leHQgJXAiLAorCQlzY2hlZF9zd2l0Y2hfY2FsbGJhY2ssCisJCSZ3YWtldXBfdHJhY2UpOworCWlmIChyZXQpIHsKKwkJcHJfaW5mbygic2NoZWQgdHJhY2U6IENvdWxkbid0IGFkZCBtYXJrZXIiCisJCQkiIHByb2JlIHRvIGtlcm5lbF9zY2hlZF9zY2hlZHVsZVxuIik7CisJCWdvdG8gZmFpbF9kZXByb2JlX3dha2VfbmV3OworCX0KKworCXdha2V1cF9yZXNldCh0cik7CisKKwkvKgorCSAqIERvbid0IGxldCB0aGUgdHJhY2VyX2VuYWJsZWQgPSAxIHNob3cgdXAgYmVmb3JlCisJICogdGhlIHdha2V1cF90YXNrIGlzIHJlc2V0LiBUaGlzIG1heSBiZSBvdmVya2lsbCBzaW5jZQorCSAqIHdha2V1cF9yZXNldCBkb2VzIGEgc3Bpbl91bmxvY2sgYWZ0ZXIgc2V0dGluZyB0aGUKKwkgKiB3YWtldXBfdGFzayB0byBOVUxMLCBidXQgSSB3YW50IHRvIGJlIHNhZmUuCisJICogVGhpcyBpcyBhIHNsb3cgcGF0aCBhbnl3YXkuCisJICovCisJc21wX3dtYigpOworCisJcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZ0cmFjZV9vcHMpOworCisJdHJhY2VyX2VuYWJsZWQgPSAxOworCisJcmV0dXJuOworZmFpbF9kZXByb2JlX3dha2VfbmV3OgorCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwX25ldyIsCisJCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCQkmd2FrZXVwX3RyYWNlKTsKK2ZhaWxfZGVwcm9iZToKKwltYXJrZXJfcHJvYmVfdW5yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cCIsCisJCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCQkmd2FrZXVwX3RyYWNlKTsKK30KKworc3RhdGljIHZvaWQgc3RvcF93YWtldXBfdHJhY2VyKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VyX2VuYWJsZWQgPSAwOworCXVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZ0cmFjZV9vcHMpOworCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfc2NoZWR1bGUiLAorCQkJCXNjaGVkX3N3aXRjaF9jYWxsYmFjaywKKwkJCQkmd2FrZXVwX3RyYWNlKTsKKwltYXJrZXJfcHJvYmVfdW5yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cF9uZXciLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJndha2V1cF90cmFjZSk7CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXAiLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJndha2V1cF90cmFjZSk7Cit9CisKK3N0YXRpYyB2b2lkIHdha2V1cF90cmFjZXJfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXdha2V1cF90cmFjZSA9IHRyOworCisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF93YWtldXBfdHJhY2VyKHRyKTsKK30KKworc3RhdGljIHZvaWQgd2FrZXVwX3RyYWNlcl9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkgeworCQlzdG9wX3dha2V1cF90cmFjZXIodHIpOworCQkvKiBtYWtlIHN1cmUgd2UgcHV0IGJhY2sgYW55IHRhc2tzIHdlIGFyZSB0cmFjaW5nICovCisJCXdha2V1cF9yZXNldCh0cik7CisJfQorfQorCitzdGF0aWMgdm9pZCB3YWtldXBfdHJhY2VyX2N0cmxfdXBkYXRlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF93YWtldXBfdHJhY2VyKHRyKTsKKwllbHNlCisJCXN0b3Bfd2FrZXVwX3RyYWNlcih0cik7Cit9CisKK3N0YXRpYyB2b2lkIHdha2V1cF90cmFjZXJfb3BlbihzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJLyogc3RvcCB0aGUgdHJhY2Ugd2hpbGUgZHVtcGluZyAqLworCWlmIChpdGVyLT50ci0+Y3RybCkKKwkJc3RvcF93YWtldXBfdHJhY2VyKGl0ZXItPnRyKTsKK30KKworc3RhdGljIHZvaWQgd2FrZXVwX3RyYWNlcl9jbG9zZShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJLyogZm9yZ2V0IGFib3V0IGFueSBwcm9jZXNzZXMgd2Ugd2VyZSByZWNvcmRpbmcgKi8KKwlpZiAoaXRlci0+dHItPmN0cmwpCisJCXN0YXJ0X3dha2V1cF90cmFjZXIoaXRlci0+dHIpOworfQorCitzdGF0aWMgc3RydWN0IHRyYWNlciB3YWtldXBfdHJhY2VyIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJ3YWtldXAiLAorCS5pbml0CQk9IHdha2V1cF90cmFjZXJfaW5pdCwKKwkucmVzZXQJCT0gd2FrZXVwX3RyYWNlcl9yZXNldCwKKwkub3BlbgkJPSB3YWtldXBfdHJhY2VyX29wZW4sCisJLmNsb3NlCQk9IHdha2V1cF90cmFjZXJfY2xvc2UsCisJLmN0cmxfdXBkYXRlCT0gd2FrZXVwX3RyYWNlcl9jdHJsX3VwZGF0ZSwKKwkucHJpbnRfbWF4CT0gMSwKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NFTEZURVNUCisJLnNlbGZ0ZXN0ICAgID0gdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF93YWtldXAsCisjZW5kaWYKK307CisKK19faW5pdCBzdGF0aWMgaW50IGluaXRfd2FrZXVwX3RyYWNlcih2b2lkKQoreworCWludCByZXQ7CisKKwlyZXQgPSByZWdpc3Rlcl90cmFjZXIoJndha2V1cF90cmFjZXIpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KK2RldmljZV9pbml0Y2FsbChpbml0X3dha2V1cF90cmFjZXIpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0LmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2VsZnRlc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTExYjdlCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0LmMKQEAgLTAsMCArMSw1NjMgQEAKKy8qIEluY2x1ZGUgaW4gdHJhY2UuYyAqLworCisjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisKK3N0YXRpYyBpbmxpbmUgaW50IHRyYWNlX3ZhbGlkX2VudHJ5KHN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnkpCit7CisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJY2FzZSBUUkFDRV9DVFg6CisJY2FzZSBUUkFDRV9XQUtFOgorCWNhc2UgVFJBQ0VfU1RBQ0s6CisJY2FzZSBUUkFDRV9TUEVDSUFMOgorCQlyZXR1cm4gMTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3RyYWNlX3Rlc3RfYnVmZmVyX2NwdShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cmllczsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlpbnQgaWR4ID0gMDsKKwlpbnQgaTsKKworCUJVR19PTihsaXN0X2VtcHR5KCZkYXRhLT50cmFjZV9wYWdlcykpOworCXBhZ2UgPSBsaXN0X2VudHJ5KGRhdGEtPnRyYWNlX3BhZ2VzLm5leHQsIHN0cnVjdCBwYWdlLCBscnUpOworCWVudHJpZXMgPSBwYWdlX2FkZHJlc3MocGFnZSk7CisKKwljaGVja19wYWdlcyhkYXRhKTsKKwlpZiAoaGVhZF9wYWdlKGRhdGEpICE9IGVudHJpZXMpCisJCWdvdG8gZmFpbGVkOworCisJLyoKKwkgKiBUaGUgc3RhcnRpbmcgdHJhY2UgYnVmZmVyIGFsd2F5cyBoYXMgdmFsaWQgZWxlbWVudHMsCisJICogaWYgYW55IGVsZW1lbnQgZXhpc3RzLgorCSAqLworCWVudHJpZXMgPSBoZWFkX3BhZ2UoZGF0YSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdHItPmVudHJpZXM7IGkrKykgeworCisJCWlmIChpIDwgZGF0YS0+dHJhY2VfaWR4ICYmICF0cmFjZV92YWxpZF9lbnRyeSgmZW50cmllc1tpZHhdKSkgeworCQkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gaW52YWxpZCBlbnRyeSAlZCAiLAorCQkJCWVudHJpZXNbaWR4XS50eXBlKTsKKwkJCWdvdG8gZmFpbGVkOworCQl9CisKKwkJaWR4Kys7CisJCWlmIChpZHggPj0gRU5UUklFU19QRVJfUEFHRSkgeworCQkJcGFnZSA9IHZpcnRfdG9fcGFnZShlbnRyaWVzKTsKKwkJCWlmIChwYWdlLT5scnUubmV4dCA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpIHsKKwkJCQlpZiAoaSAhPSB0ci0+ZW50cmllcyAtIDEpIHsKKwkJCQkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gZW50cmllcyBidWZmZXIgbWlzbWF0Y2giKTsKKwkJCQkJZ290byBmYWlsZWQ7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQlwYWdlID0gbGlzdF9lbnRyeShwYWdlLT5scnUubmV4dCwgc3RydWN0IHBhZ2UsIGxydSk7CisJCQkJZW50cmllcyA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsKKwkJCX0KKwkJCWlkeCA9IDA7CisJCX0KKwl9CisKKwlwYWdlID0gdmlydF90b19wYWdlKGVudHJpZXMpOworCWlmIChwYWdlLT5scnUubmV4dCAhPSAmZGF0YS0+dHJhY2VfcGFnZXMpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gdG9vIG1hbnkgZW50cmllcyIpOworCQlnb3RvIGZhaWxlZDsKKwl9CisKKwlyZXR1cm4gMDsKKworIGZhaWxlZDoKKwkvKiBkaXNhYmxlIHRyYWNpbmcgKi8KKwl0cmFjaW5nX2Rpc2FibGVkID0gMTsKKwlwcmludGsoS0VSTl9DT05UICIuLiBjb3JydXB0ZWQgdHJhY2UgYnVmZmVyIC4uICIpOworCXJldHVybiAtMTsKK30KKworLyoKKyAqIFRlc3QgdGhlIHRyYWNlIGJ1ZmZlciB0byBzZWUgaWYgYWxsIHRoZSBlbGVtZW50cworICogYXJlIHN0aWxsIHNhbmUuCisgKi8KK3N0YXRpYyBpbnQgdHJhY2VfdGVzdF9idWZmZXIoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgdW5zaWduZWQgbG9uZyAqY291bnQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFncywgY250ID0gMDsKKwlpbnQgY3B1LCByZXQgPSAwOworCisJLyogRG9uJ3QgYWxsb3cgZmxpcHBpbmcgb2YgbWF4IHRyYWNlcyBub3cgKi8KKwlyYXdfbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCV9fcmF3X3NwaW5fbG9jaygmZnRyYWNlX21heF9sb2NrKTsKKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7CisJCWlmICghaGVhZF9wYWdlKHRyLT5kYXRhW2NwdV0pKQorCQkJY29udGludWU7CisKKwkJY250ICs9IHRyLT5kYXRhW2NwdV0tPnRyYWNlX2lkeDsKKworCQlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcl9jcHUodHIsIHRyLT5kYXRhW2NwdV0pOworCQlpZiAocmV0KQorCQkJYnJlYWs7CisJfQorCV9fcmF3X3NwaW5fdW5sb2NrKCZmdHJhY2VfbWF4X2xvY2spOworCXJhd19sb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlpZiAoY291bnQpCisJCSpjb3VudCA9IGNudDsKKworCXJldHVybiByZXQ7Cit9CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKworI2RlZmluZSBfX1NUUih4KSAjeAorI2RlZmluZSBTVFIoeCkgX19TVFIoeCkKKworLyogVGVzdCBkeW5hbWljIGNvZGUgbW9kaWZpY2F0aW9uIGFuZCBmdHJhY2UgZmlsdGVycyAqLworaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfZHluYW1pY190cmFjaW5nKHN0cnVjdCB0cmFjZXIgKnRyYWNlLAorCQkJCQkgICBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkJCQkgICBpbnQgKCpmdW5jKSh2b2lkKSkKK3sKKwl1bnNpZ25lZCBsb25nIGNvdW50OworCWludCByZXQ7CisJaW50IHNhdmVfZnRyYWNlX2VuYWJsZWQgPSBmdHJhY2VfZW5hYmxlZDsKKwlpbnQgc2F2ZV90cmFjZXJfZW5hYmxlZCA9IHRyYWNlcl9lbmFibGVkOworCWNoYXIgKmZ1bmNfbmFtZTsKKworCS8qIFRoZSBmdHJhY2UgdGVzdCBQQVNTRUQgKi8KKwlwcmludGsoS0VSTl9DT05UICJQQVNTRURcbiIpOworCXByX2luZm8oIlRlc3RpbmcgZHluYW1pYyBmdHJhY2U6ICIpOworCisJLyogZW5hYmxlIHRyYWNpbmcsIGFuZCByZWNvcmQgdGhlIGZpbHRlciBmdW5jdGlvbiAqLworCWZ0cmFjZV9lbmFibGVkID0gMTsKKwl0cmFjZXJfZW5hYmxlZCA9IDE7CisKKwkvKiBwYXNzZWQgaW4gYnkgcGFyYW1ldGVyIHRvIGZvb2wgZ2NjIGZyb20gb3B0aW1pemluZyAqLworCWZ1bmMoKTsKKworCS8qIHVwZGF0ZSB0aGUgcmVjb3JkcyAqLworCXJldCA9IGZ0cmFjZV9mb3JjZV91cGRhdGUoKTsKKwlpZiAocmV0KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIGZ0cmFjZWQgZmFpbGVkIC4uICIpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qCisJICogU29tZSBhcmNocyAqY291Z2gqUG93ZXJQQypjb3VnaCogYWRkIGNoYXJhY2h0ZXJzIHRvIHRoZQorCSAqIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiBuYW1lcy4gV2Ugc2ltcGx5IHB1dCBhICcqJyB0bworCSAqIGFjY29tb2RhdGUgdGhlbS4KKwkgKi8KKwlmdW5jX25hbWUgPSAiKiIgU1RSKERZTl9GVFJBQ0VfVEVTVF9OQU1FKTsKKworCS8qIGZpbHRlciBvbmx5IG9uIG91ciBmdW5jdGlvbiAqLworCWZ0cmFjZV9zZXRfZmlsdGVyKGZ1bmNfbmFtZSwgc3RybGVuKGZ1bmNfbmFtZSksIDEpOworCisJLyogZW5hYmxlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIFNsZWVwIGZvciBhIDEvMTAgb2YgYSBzZWNvbmQgKi8KKwltc2xlZXAoMTAwKTsKKworCS8qIHdlIHNob3VsZCBoYXZlIG5vdGhpbmcgaW4gdGhlIGJ1ZmZlciAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCAmY291bnQpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJaWYgKGNvdW50KSB7CisJCXJldCA9IC0xOworCQlwcmludGsoS0VSTl9DT05UICIuLiBmaWx0ZXIgZGlkIG5vdCBmaWx0ZXIgLi4gIik7CisJCWdvdG8gb3V0OworCX0KKworCS8qIGNhbGwgb3VyIGZ1bmN0aW9uIGFnYWluICovCisJZnVuYygpOworCisJLyogc2xlZXAgYWdhaW4gKi8KKwltc2xlZXAoMTAwKTsKKworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJZnRyYWNlX2VuYWJsZWQgPSAwOworCisJLyogY2hlY2sgdGhlIHRyYWNlIGJ1ZmZlciAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCAmY291bnQpOworCXRyYWNlLT5yZXNldCh0cik7CisKKwkvKiB3ZSBzaG91bGQgb25seSBoYXZlIG9uZSBpdGVtICovCisJaWYgKCFyZXQgJiYgY291bnQgIT0gMSkgeworCQlwcmludGsoS0VSTl9DT05UICIuLiBmaWx0ZXIgZmFpbGVkIGNvdW50PSVsZCAuLiIsIGNvdW50KTsKKwkJcmV0ID0gLTE7CisJCWdvdG8gb3V0OworCX0KKyBvdXQ6CisJZnRyYWNlX2VuYWJsZWQgPSBzYXZlX2Z0cmFjZV9lbmFibGVkOworCXRyYWNlcl9lbmFibGVkID0gc2F2ZV90cmFjZXJfZW5hYmxlZDsKKworCS8qIEVuYWJsZSB0cmFjaW5nIG9uIGFsbCBmdW5jdGlvbnMgYWdhaW4gKi8KKwlmdHJhY2Vfc2V0X2ZpbHRlcihOVUxMLCAwLCAxKTsKKworCXJldHVybiByZXQ7Cit9CisjZWxzZQorIyBkZWZpbmUgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9keW5hbWljX3RyYWNpbmcodHJhY2UsIHRyLCBmdW5jKSAoeyAwOyB9KQorI2VuZGlmIC8qIENPTkZJR19EWU5BTUlDX0ZUUkFDRSAqLworLyoKKyAqIFNpbXBsZSB2ZXJpZmljYXRpb24gdGVzdCBvZiBmdHJhY2UgZnVuY3Rpb24gdHJhY2VyLgorICogRW5hYmxlIGZ0cmFjZSwgc2xlZXAgMS8xMCBzZWNvbmQsIGFuZCB0aGVuIHJlYWQgdGhlIHRyYWNlCisgKiBidWZmZXIgdG8gc2VlIGlmIGFsbCBpcyBpbiBvcmRlci4KKyAqLworaW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX2Z1bmN0aW9uKHN0cnVjdCB0cmFjZXIgKnRyYWNlLCBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXVuc2lnbmVkIGxvbmcgY291bnQ7CisJaW50IHJldDsKKwlpbnQgc2F2ZV9mdHJhY2VfZW5hYmxlZCA9IGZ0cmFjZV9lbmFibGVkOworCWludCBzYXZlX3RyYWNlcl9lbmFibGVkID0gdHJhY2VyX2VuYWJsZWQ7CisKKwkvKiBtYWtlIHN1cmUgbXNsZWVwIGhhcyBiZWVuIHJlY29yZGVkICovCisJbXNsZWVwKDEpOworCisJLyogZm9yY2UgdGhlIHJlY29yZGVkIGZ1bmN0aW9ucyB0byBiZSB0cmFjZWQgKi8KKwlyZXQgPSBmdHJhY2VfZm9yY2VfdXBkYXRlKCk7CisJaWYgKHJldCkgeworCQlwcmludGsoS0VSTl9DT05UICIuLiBmdHJhY2VkIGZhaWxlZCAuLiAiKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwkvKiBzdGFydCB0aGUgdHJhY2luZyAqLworCWZ0cmFjZV9lbmFibGVkID0gMTsKKwl0cmFjZXJfZW5hYmxlZCA9IDE7CisKKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIFNsZWVwIGZvciBhIDEvMTAgb2YgYSBzZWNvbmQgKi8KKwltc2xlZXAoMTAwKTsKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCWZ0cmFjZV9lbmFibGVkID0gMDsKKworCS8qIGNoZWNrIHRoZSB0cmFjZSBidWZmZXIgKi8KKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcih0ciwgJmNvdW50KTsKKwl0cmFjZS0+cmVzZXQodHIpOworCisJaWYgKCFyZXQgJiYgIWNvdW50KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIG5vIGVudHJpZXMgZm91bmQgLi4iKTsKKwkJcmV0ID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworCXJldCA9IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfZHluYW1pY190cmFjaW5nKHRyYWNlLCB0ciwKKwkJCQkJCSAgICAgRFlOX0ZUUkFDRV9URVNUX05BTUUpOworCisgb3V0OgorCWZ0cmFjZV9lbmFibGVkID0gc2F2ZV9mdHJhY2VfZW5hYmxlZDsKKwl0cmFjZXJfZW5hYmxlZCA9IHNhdmVfdHJhY2VyX2VuYWJsZWQ7CisKKwkvKiBraWxsIGZ0cmFjZSB0b3RhbGx5IGlmIHdlIGZhaWxlZCAqLworCWlmIChyZXQpCisJCWZ0cmFjZV9raWxsKCk7CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19GVFJBQ0UgKi8KKworI2lmZGVmIENPTkZJR19JUlFTT0ZGX1RSQUNFUgoraW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX2lycXNvZmYoc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBzYXZlX21heCA9IHRyYWNpbmdfbWF4X2xhdGVuY3k7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJLyogc3RhcnQgdGhlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIHJlc2V0IHRoZSBtYXggbGF0ZW5jeSAqLworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSAwOworCS8qIGRpc2FibGUgaW50ZXJydXB0cyBmb3IgYSBiaXQgKi8KKwlsb2NhbF9pcnFfZGlzYWJsZSgpOworCXVkZWxheSgxMDApOworCWxvY2FsX2lycV9lbmFibGUoKTsKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCS8qIGNoZWNrIGJvdGggdHJhY2UgYnVmZmVycyAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCBOVUxMKTsKKwlpZiAoIXJldCkKKwkJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIoJm1heF90ciwgJmNvdW50KTsKKwl0cmFjZS0+cmVzZXQodHIpOworCisJaWYgKCFyZXQgJiYgIWNvdW50KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIG5vIGVudHJpZXMgZm91bmQgLi4iKTsKKwkJcmV0ID0gLTE7CisJfQorCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IHNhdmVfbWF4OworCisJcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBDT05GSUdfSVJRU09GRl9UUkFDRVIgKi8KKworI2lmZGVmIENPTkZJR19QUkVFTVBUX1RSQUNFUgoraW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3ByZWVtcHRvZmYoc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBzYXZlX21heCA9IHRyYWNpbmdfbWF4X2xhdGVuY3k7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJLyogc3RhcnQgdGhlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIHJlc2V0IHRoZSBtYXggbGF0ZW5jeSAqLworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSAwOworCS8qIGRpc2FibGUgcHJlZW1wdGlvbiBmb3IgYSBiaXQgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwl1ZGVsYXkoMTAwKTsKKwlwcmVlbXB0X2VuYWJsZSgpOworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJLyogY2hlY2sgYm90aCB0cmFjZSBidWZmZXJzICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsIE5VTEwpOworCWlmICghcmV0KQorCQlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcigmbWF4X3RyLCAmY291bnQpOworCXRyYWNlLT5yZXNldCh0cik7CisKKwlpZiAoIXJldCAmJiAhY291bnQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gbm8gZW50cmllcyBmb3VuZCAuLiIpOworCQlyZXQgPSAtMTsKKwl9CisKKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gc2F2ZV9tYXg7CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19QUkVFTVBUX1RSQUNFUiAqLworCisjaWYgZGVmaW5lZChDT05GSUdfSVJRU09GRl9UUkFDRVIpICYmIGRlZmluZWQoQ09ORklHX1BSRUVNUFRfVFJBQ0VSKQoraW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3ByZWVtcHRpcnFzb2ZmKHN0cnVjdCB0cmFjZXIgKnRyYWNlLCBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXVuc2lnbmVkIGxvbmcgc2F2ZV9tYXggPSB0cmFjaW5nX21heF9sYXRlbmN5OworCXVuc2lnbmVkIGxvbmcgY291bnQ7CisJaW50IHJldDsKKworCS8qIHN0YXJ0IHRoZSB0cmFjaW5nICovCisJdHItPmN0cmwgPSAxOworCXRyYWNlLT5pbml0KHRyKTsKKworCS8qIHJlc2V0IHRoZSBtYXggbGF0ZW5jeSAqLworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSAwOworCisJLyogZGlzYWJsZSBwcmVlbXB0aW9uIGFuZCBpbnRlcnJ1cHRzIGZvciBhIGJpdCAqLworCXByZWVtcHRfZGlzYWJsZSgpOworCWxvY2FsX2lycV9kaXNhYmxlKCk7CisJdWRlbGF5KDEwMCk7CisJcHJlZW1wdF9lbmFibGUoKTsKKwkvKiByZXZlcnNlIHRoZSBvcmRlciBvZiBwcmVlbXB0IHZzIGlycXMgKi8KKwlsb2NhbF9pcnFfZW5hYmxlKCk7CisKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCS8qIGNoZWNrIGJvdGggdHJhY2UgYnVmZmVycyAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCBOVUxMKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKCZtYXhfdHIsICZjb3VudCk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlpZiAoIXJldCAmJiAhY291bnQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gbm8gZW50cmllcyBmb3VuZCAuLiIpOworCQlyZXQgPSAtMTsKKwkJZ290byBvdXQ7CisJfQorCisJLyogZG8gdGhlIHRlc3QgYnkgZGlzYWJsaW5nIGludGVycnVwdHMgZmlyc3QgdGhpcyB0aW1lICovCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IDA7CisJdHItPmN0cmwgPSAxOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJcHJlZW1wdF9kaXNhYmxlKCk7CisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwl1ZGVsYXkoMTAwKTsKKwlwcmVlbXB0X2VuYWJsZSgpOworCS8qIHJldmVyc2UgdGhlIG9yZGVyIG9mIHByZWVtcHQgdnMgaXJxcyAqLworCWxvY2FsX2lycV9lbmFibGUoKTsKKworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJLyogY2hlY2sgYm90aCB0cmFjZSBidWZmZXJzICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsIE5VTEwpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIoJm1heF90ciwgJmNvdW50KTsKKworCWlmICghcmV0ICYmICFjb3VudCkgeworCQlwcmludGsoS0VSTl9DT05UICIuLiBubyBlbnRyaWVzIGZvdW5kIC4uIik7CisJCXJldCA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKyBvdXQ6CisJdHJhY2UtPnJlc2V0KHRyKTsKKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gc2F2ZV9tYXg7CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19JUlFTT0ZGX1RSQUNFUiAmJiBDT05GSUdfUFJFRU1QVF9UUkFDRVIgKi8KKworI2lmZGVmIENPTkZJR19TQ0hFRF9UUkFDRVIKK3N0YXRpYyBpbnQgdHJhY2Vfd2FrZXVwX3Rlc3RfdGhyZWFkKHZvaWQgKmRhdGEpCit7CisJLyogTWFrZSB0aGlzIGEgUlQgdGhyZWFkLCBkb2Vzbid0IG5lZWQgdG8gYmUgdG9vIGhpZ2ggKi8KKwlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcGFyYW0gPSB7IC5zY2hlZF9wcmlvcml0eSA9IDUgfTsKKwlzdHJ1Y3QgY29tcGxldGlvbiAqeCA9IGRhdGE7CisKKwlzY2hlZF9zZXRzY2hlZHVsZXIoY3VycmVudCwgU0NIRURfRklGTywgJnBhcmFtKTsKKworCS8qIE1ha2UgaXQga25vdyB3ZSBoYXZlIGEgbmV3IHByaW8gKi8KKwljb21wbGV0ZSh4KTsKKworCS8qIG5vdyBnbyB0byBzbGVlcCBhbmQgbGV0IHRoZSB0ZXN0IHdha2UgdXMgdXAgKi8KKwlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOworCXNjaGVkdWxlKCk7CisKKwkvKiB3ZSBhcmUgYXdha2UsIG5vdyB3YWl0IHRvIGRpc2FwcGVhciAqLworCXdoaWxlICgha3RocmVhZF9zaG91bGRfc3RvcCgpKSB7CisJCS8qCisJCSAqIFRoaXMgaXMgYW4gUlQgdGFzaywgZG8gc2hvcnQgc2xlZXBzIHRvIGxldAorCQkgKiBvdGhlcnMgcnVuLgorCQkgKi8KKwkJbXNsZWVwKDEwMCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludAordHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF93YWtldXAoc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBzYXZlX21heCA9IHRyYWNpbmdfbWF4X2xhdGVuY3k7CisJc3RydWN0IHRhc2tfc3RydWN0ICpwOworCXN0cnVjdCBjb21wbGV0aW9uIGlzcnQ7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJaW5pdF9jb21wbGV0aW9uKCZpc3J0KTsKKworCS8qIGNyZWF0ZSBhIGhpZ2ggcHJpbyB0aHJlYWQgKi8KKwlwID0ga3RocmVhZF9ydW4odHJhY2Vfd2FrZXVwX3Rlc3RfdGhyZWFkLCAmaXNydCwgImZ0cmFjZS10ZXN0Iik7CisJaWYgKElTX0VSUihwKSkgeworCQlwcmludGsoS0VSTl9DT05UICJGYWlsZWQgdG8gY3JlYXRlIGZ0cmFjZSB3YWtldXAgdGVzdCB0aHJlYWQgIik7CisJCXJldHVybiAtMTsKKwl9CisKKwkvKiBtYWtlIHN1cmUgdGhlIHRocmVhZCBpcyBydW5uaW5nIGF0IGFuIFJUIHByaW8gKi8KKwl3YWl0X2Zvcl9jb21wbGV0aW9uKCZpc3J0KTsKKworCS8qIHN0YXJ0IHRoZSB0cmFjaW5nICovCisJdHItPmN0cmwgPSAxOworCXRyYWNlLT5pbml0KHRyKTsKKwkvKiByZXNldCB0aGUgbWF4IGxhdGVuY3kgKi8KKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gMDsKKworCS8qIHNsZWVwIHRvIGxldCB0aGUgUlQgdGhyZWFkIHNsZWVwIHRvbyAqLworCW1zbGVlcCgxMDApOworCisJLyoKKwkgKiBZZXMgdGhpcyBpcyBzbGlnaHRseSByYWN5LiBJdCBpcyBwb3NzaWJsZSB0aGF0IGZvciBzb21lCisJICogc3RyYW5nZSByZWFzb24gdGhhdCB0aGUgUlQgdGhyZWFkIHdlIGNyZWF0ZWQsIGRpZCBub3QKKwkgKiBjYWxsIHNjaGVkdWxlIGZvciAxMDBtcyBhZnRlciBkb2luZyB0aGUgY29tcGxldGlvbiwKKwkgKiBhbmQgd2UgZG8gYSB3YWtldXAgb24gYSB0YXNrIHRoYXQgYWxyZWFkeSBpcyBhd2FrZS4KKwkgKiBCdXQgdGhhdCBpcyBleHRyZW1lbHkgdW5saWtlbHksIGFuZCB0aGUgd29yc3QgdGhpbmcgdGhhdAorCSAqIGhhcHBlbnMgaW4gc3VjaCBhIGNhc2UsIGlzIHRoYXQgd2UgZGlzYWJsZSB0cmFjaW5nLgorCSAqIEhvbmVzdGx5LCBpZiB0aGlzIHJhY2UgZG9lcyBoYXBwZW4gc29tZXRoaW5nIGlzIGhvcnJpYmxlCisJICogd3Jvbmcgd2l0aCB0aGUgc3lzdGVtLgorCSAqLworCisJd2FrZV91cF9wcm9jZXNzKHApOworCisJLyogc3RvcCB0aGUgdHJhY2luZy4gKi8KKwl0ci0+Y3RybCA9IDA7CisJdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwkvKiBjaGVjayBib3RoIHRyYWNlIGJ1ZmZlcnMgKi8KKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcih0ciwgTlVMTCk7CisJaWYgKCFyZXQpCisJCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKCZtYXhfdHIsICZjb3VudCk7CisKKworCXRyYWNlLT5yZXNldCh0cik7CisKKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gc2F2ZV9tYXg7CisKKwkvKiBraWxsIHRoZSB0aHJlYWQgKi8KKwlrdGhyZWFkX3N0b3AocCk7CisKKwlpZiAoIXJldCAmJiAhY291bnQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gbm8gZW50cmllcyBmb3VuZCAuLiIpOworCQlyZXQgPSAtMTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19TQ0hFRF9UUkFDRVIgKi8KKworI2lmZGVmIENPTkZJR19DT05URVhUX1NXSVRDSF9UUkFDRVIKK2ludAordHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9zY2hlZF9zd2l0Y2goc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJLyogc3RhcnQgdGhlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIFNsZWVwIGZvciBhIDEvMTAgb2YgYSBzZWNvbmQgKi8KKwltc2xlZXAoMTAwKTsKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCS8qIGNoZWNrIHRoZSB0cmFjZSBidWZmZXIgKi8KKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcih0ciwgJmNvdW50KTsKKwl0cmFjZS0+cmVzZXQodHIpOworCisJaWYgKCFyZXQgJiYgIWNvdW50KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIG5vIGVudHJpZXMgZm91bmQgLi4iKTsKKwkJcmV0ID0gLTE7CisJfQorCisJcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBDT05GSUdfQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSICovCisKKyNpZmRlZiBDT05GSUdfU1lTUFJPRl9UUkFDRVIKK2ludAordHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9zeXNwcm9mKHN0cnVjdCB0cmFjZXIgKnRyYWNlLCBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXVuc2lnbmVkIGxvbmcgY291bnQ7CisJaW50IHJldDsKKworCS8qIHN0YXJ0IHRoZSB0cmFjaW5nICovCisJdHItPmN0cmwgPSAxOworCXRyYWNlLT5pbml0KHRyKTsKKwkvKiBTbGVlcCBmb3IgYSAxLzEwIG9mIGEgc2Vjb25kICovCisJbXNsZWVwKDEwMCk7CisJLyogc3RvcCB0aGUgdHJhY2luZy4gKi8KKwl0ci0+Y3RybCA9IDA7CisJdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwkvKiBjaGVjayB0aGUgdHJhY2UgYnVmZmVyICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsICZjb3VudCk7CisJdHJhY2UtPnJlc2V0KHRyKTsKKworCXJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogQ09ORklHX1NZU1BST0ZfVFJBQ0VSICovCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc2VsZnRlc3RfZHluYW1pYy5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0X2R5bmFtaWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGRkNzdjCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3NlbGZ0ZXN0X2R5bmFtaWMuYwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlICJ0cmFjZS5oIgorCitpbnQgRFlOX0ZUUkFDRV9URVNUX05BTUUodm9pZCkKK3sKKwkvKiB1c2VkIHRvIGNhbGwgbWNvdW50ICovCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzcHJvZi5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c3Byb2YuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzAxZTFlCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3N5c3Byb2YuYwpAQCAtMCwwICsxLDM2MyBAQAorLyoKKyAqIHRyYWNlIHN0YWNrIHRyYWNlcworICoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA4LCBTb2VyZW4gU2FuZG1hbm4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KKyAqLworI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2hydGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKworI2luY2x1ZGUgPGFzbS9zdGFja3RyYWNlLmg+CisKKyNpbmNsdWRlICJ0cmFjZS5oIgorCitzdGF0aWMgc3RydWN0IHRyYWNlX2FycmF5CSpzeXNwcm9mX3RyYWNlOworc3RhdGljIGludCBfX3JlYWRfbW9zdGx5CXRyYWNlcl9lbmFibGVkOworCisvKgorICogMSBtc2VjIHNhbXBsZSBpbnRlcnZhbCBieSBkZWZhdWx0OgorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBzYW1wbGVfcGVyaW9kID0gMTAwMDAwMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc2FtcGxlX21heF9kZXB0aCA9IDUxMjsKKworc3RhdGljIERFRklORV9NVVRFWChzYW1wbGVfdGltZXJfbG9jayk7CisvKgorICogUGVyIENQVSBocnRpbWVycyB0aGF0IGRvIHRoZSBwcm9maWxpbmc6CisgKi8KK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgaHJ0aW1lciwgc3RhY2tfdHJhY2VfaHJ0aW1lcik7CisKK3N0cnVjdCBzdGFja19mcmFtZSB7CisJY29uc3Qgdm9pZCBfX3VzZXIJKm5leHRfZnA7CisJdW5zaWduZWQgbG9uZwkJcmV0dXJuX2FkZHJlc3M7Cit9OworCitzdGF0aWMgaW50IGNvcHlfc3RhY2tfZnJhbWUoY29uc3Qgdm9pZCBfX3VzZXIgKmZwLCBzdHJ1Y3Qgc3RhY2tfZnJhbWUgKmZyYW1lKQoreworCWludCByZXQ7CisKKwlpZiAoIWFjY2Vzc19vayhWRVJJRllfUkVBRCwgZnAsIHNpemVvZigqZnJhbWUpKSkKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSAxOworCXBhZ2VmYXVsdF9kaXNhYmxlKCk7CisJaWYgKF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMoZnJhbWUsIGZwLCBzaXplb2YoKmZyYW1lKSkpCisJCXJldCA9IDA7CisJcGFnZWZhdWx0X2VuYWJsZSgpOworCisJcmV0dXJuIHJldDsKK30KKworc3RydWN0IGJhY2t0cmFjZV9pbmZvIHsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1CSpkYXRhOworCXN0cnVjdCB0cmFjZV9hcnJheQkqdHI7CisJaW50CQkJcG9zOworfTsKKworc3RhdGljIHZvaWQKK2JhY2t0cmFjZV93YXJuaW5nX3N5bWJvbCh2b2lkICpkYXRhLCBjaGFyICptc2csIHVuc2lnbmVkIGxvbmcgc3ltYm9sKQoreworCS8qIElnbm9yZSB3YXJuaW5ncyAqLworfQorCitzdGF0aWMgdm9pZCBiYWNrdHJhY2Vfd2FybmluZyh2b2lkICpkYXRhLCBjaGFyICptc2cpCit7CisJLyogSWdub3JlIHdhcm5pbmdzICovCit9CisKK3N0YXRpYyBpbnQgYmFja3RyYWNlX3N0YWNrKHZvaWQgKmRhdGEsIGNoYXIgKm5hbWUpCit7CisJLyogRG9uJ3QgYm90aGVyIHdpdGggSVJRIHN0YWNrcyBmb3Igbm93ICovCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgdm9pZCBiYWNrdHJhY2VfYWRkcmVzcyh2b2lkICpkYXRhLCB1bnNpZ25lZCBsb25nIGFkZHIsIGludCByZWxpYWJsZSkKK3sKKwlzdHJ1Y3QgYmFja3RyYWNlX2luZm8gKmluZm8gPSBkYXRhOworCisJaWYgKGluZm8tPnBvcyA8IHNhbXBsZV9tYXhfZGVwdGggJiYgcmVsaWFibGUpIHsKKwkJX190cmFjZV9zcGVjaWFsKGluZm8tPnRyLCBpbmZvLT5kYXRhLCAxLCBhZGRyLCAwKTsKKworCQlpbmZvLT5wb3MrKzsKKwl9Cit9CisKK2NvbnN0IHN0YXRpYyBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgYmFja3RyYWNlX29wcyA9IHsKKwkud2FybmluZwkJPSBiYWNrdHJhY2Vfd2FybmluZywKKwkud2FybmluZ19zeW1ib2wJCT0gYmFja3RyYWNlX3dhcm5pbmdfc3ltYm9sLAorCS5zdGFjawkJCT0gYmFja3RyYWNlX3N0YWNrLAorCS5hZGRyZXNzCQk9IGJhY2t0cmFjZV9hZGRyZXNzLAorfTsKKworc3RhdGljIGludAordHJhY2Vfa2VybmVsKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCSAgICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSkKK3sKKwlzdHJ1Y3QgYmFja3RyYWNlX2luZm8gaW5mbzsKKwl1bnNpZ25lZCBsb25nIGJwOworCWNoYXIgKnN0YWNrOworCisJaW5mby50ciA9IHRyOworCWluZm8uZGF0YSA9IGRhdGE7CisJaW5mby5wb3MgPSAxOworCisJX190cmFjZV9zcGVjaWFsKGluZm8udHIsIGluZm8uZGF0YSwgMSwgcmVncy0+aXAsIDApOworCisJc3RhY2sgPSAoKGNoYXIgKilyZWdzICsgc2l6ZW9mKHN0cnVjdCBwdF9yZWdzKSk7CisjaWZkZWYgQ09ORklHX0ZSQU1FX1BPSU5URVIKKwlicCA9IHJlZ3MtPmJwOworI2Vsc2UKKwlicCA9IDA7CisjZW5kaWYKKworCWR1bXBfdHJhY2UoTlVMTCwgcmVncywgKHZvaWQgKilzdGFjaywgYnAsICZiYWNrdHJhY2Vfb3BzLCAmaW5mbyk7CisKKwlyZXR1cm4gaW5mby5wb3M7Cit9CisKK3N0YXRpYyB2b2lkIHRpbWVyX25vdGlmeShzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXN0cnVjdCBzdGFja19mcmFtZSBmcmFtZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyOworCWNvbnN0IHZvaWQgX191c2VyICpmcDsKKwlpbnQgaXNfdXNlcjsKKwlpbnQgaTsKKworCWlmICghcmVncykKKwkJcmV0dXJuOworCisJdHIgPSBzeXNwcm9mX3RyYWNlOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWlzX3VzZXIgPSB1c2VyX21vZGUocmVncyk7CisKKwlpZiAoIWN1cnJlbnQgfHwgY3VycmVudC0+cGlkID09IDApCisJCXJldHVybjsKKworCWlmIChpc191c2VyICYmIGN1cnJlbnQtPnN0YXRlICE9IFRBU0tfUlVOTklORykKKwkJcmV0dXJuOworCisJX190cmFjZV9zcGVjaWFsKHRyLCBkYXRhLCAwLCAwLCBjdXJyZW50LT5waWQpOworCisJaWYgKCFpc191c2VyKQorCQlpID0gdHJhY2Vfa2VybmVsKHJlZ3MsIHRyLCBkYXRhKTsKKwllbHNlCisJCWkgPSAwOworCisJLyoKKwkgKiBUcmFjZSB1c2VyIHN0YWNrIGlmIHdlIGFyZSBub3QgYSBrZXJuZWwgdGhyZWFkCisJICovCisJaWYgKGN1cnJlbnQtPm1tICYmIGkgPCBzYW1wbGVfbWF4X2RlcHRoKSB7CisJCXJlZ3MgPSAoc3RydWN0IHB0X3JlZ3MgKiljdXJyZW50LT50aHJlYWQuc3AwIC0gMTsKKworCQlmcCA9ICh2b2lkIF9fdXNlciAqKXJlZ3MtPmJwOworCisJCV9fdHJhY2Vfc3BlY2lhbCh0ciwgZGF0YSwgMiwgcmVncy0+aXAsIDApOworCisJCXdoaWxlIChpIDwgc2FtcGxlX21heF9kZXB0aCkgeworCQkJZnJhbWUubmV4dF9mcCA9IDA7CisJCQlmcmFtZS5yZXR1cm5fYWRkcmVzcyA9IDA7CisJCQlpZiAoIWNvcHlfc3RhY2tfZnJhbWUoZnAsICZmcmFtZSkpCisJCQkJYnJlYWs7CisJCQlpZiAoKHVuc2lnbmVkIGxvbmcpZnAgPCByZWdzLT5zcCkKKwkJCQlicmVhazsKKworCQkJX190cmFjZV9zcGVjaWFsKHRyLCBkYXRhLCAyLCBmcmFtZS5yZXR1cm5fYWRkcmVzcywKKwkJCQkJKHVuc2lnbmVkIGxvbmcpZnApOworCQkJZnAgPSBmcmFtZS5uZXh0X2ZwOworCisJCQlpKys7CisJCX0KKworCX0KKworCS8qCisJICogU3BlY2lhbCB0cmFjZSBlbnRyeSBpZiB3ZSBvdmVyZmxvdyB0aGUgbWF4IGRlcHRoOgorCSAqLworCWlmIChpID09IHNhbXBsZV9tYXhfZGVwdGgpCisJCV9fdHJhY2Vfc3BlY2lhbCh0ciwgZGF0YSwgLTEsIC0xLCAtMSk7CisKKwlfX3RyYWNlX3NwZWNpYWwodHIsIGRhdGEsIDMsIGN1cnJlbnQtPnBpZCwgaSk7Cit9CisKK3N0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBzdGFja190cmFjZV90aW1lcl9mbihzdHJ1Y3QgaHJ0aW1lciAqaHJ0aW1lcikKK3sKKwkvKiB0cmFjZSBoZXJlICovCisJdGltZXJfbm90aWZ5KGdldF9pcnFfcmVncygpLCBzbXBfcHJvY2Vzc29yX2lkKCkpOworCisJaHJ0aW1lcl9mb3J3YXJkX25vdyhocnRpbWVyLCBuc190b19rdGltZShzYW1wbGVfcGVyaW9kKSk7CisKKwlyZXR1cm4gSFJUSU1FUl9SRVNUQVJUOworfQorCitzdGF0aWMgdm9pZCBzdGFydF9zdGFja190aW1lcihpbnQgY3B1KQoreworCXN0cnVjdCBocnRpbWVyICpocnRpbWVyID0gJnBlcl9jcHUoc3RhY2tfdHJhY2VfaHJ0aW1lciwgY3B1KTsKKworCWhydGltZXJfaW5pdChocnRpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOworCWhydGltZXItPmZ1bmN0aW9uID0gc3RhY2tfdHJhY2VfdGltZXJfZm47CisJaHJ0aW1lci0+Y2JfbW9kZSA9IEhSVElNRVJfQ0JfSVJRU0FGRV9OT19TT0ZUSVJROworCisJaHJ0aW1lcl9zdGFydChocnRpbWVyLCBuc190b19rdGltZShzYW1wbGVfcGVyaW9kKSwgSFJUSU1FUl9NT0RFX1JFTCk7Cit9CisKK3N0YXRpYyB2b2lkIHN0YXJ0X3N0YWNrX3RpbWVycyh2b2lkKQoreworCWNwdW1hc2tfdCBzYXZlZF9tYXNrID0gY3VycmVudC0+Y3B1c19hbGxvd2VkOworCWludCBjcHU7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgeworCQlzZXRfY3B1c19hbGxvd2VkX3B0cihjdXJyZW50LCAmY3B1bWFza19vZl9jcHUoY3B1KSk7CisJCXN0YXJ0X3N0YWNrX3RpbWVyKGNwdSk7CisJfQorCXNldF9jcHVzX2FsbG93ZWRfcHRyKGN1cnJlbnQsICZzYXZlZF9tYXNrKTsKK30KKworc3RhdGljIHZvaWQgc3RvcF9zdGFja190aW1lcihpbnQgY3B1KQoreworCXN0cnVjdCBocnRpbWVyICpocnRpbWVyID0gJnBlcl9jcHUoc3RhY2tfdHJhY2VfaHJ0aW1lciwgY3B1KTsKKworCWhydGltZXJfY2FuY2VsKGhydGltZXIpOworfQorCitzdGF0aWMgdm9pZCBzdG9wX3N0YWNrX3RpbWVycyh2b2lkKQoreworCWludCBjcHU7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKKwkJc3RvcF9zdGFja190aW1lcihjcHUpOworfQorCitzdGF0aWMgdm9pZCBzdGFja19yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCBjcHU7CisKKwl0ci0+dGltZV9zdGFydCA9IGZ0cmFjZV9ub3codHItPmNwdSk7CisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKKwkJdHJhY2luZ19yZXNldCh0ci0+ZGF0YVtjcHVdKTsKK30KKworc3RhdGljIHZvaWQgc3RhcnRfc3RhY2tfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwltdXRleF9sb2NrKCZzYW1wbGVfdGltZXJfbG9jayk7CisJc3RhY2tfcmVzZXQodHIpOworCXN0YXJ0X3N0YWNrX3RpbWVycygpOworCXRyYWNlcl9lbmFibGVkID0gMTsKKwltdXRleF91bmxvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgc3RvcF9zdGFja190cmFjZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCW11dGV4X2xvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKKwlzdG9wX3N0YWNrX3RpbWVycygpOworCXRyYWNlcl9lbmFibGVkID0gMDsKKwltdXRleF91bmxvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKK30KKworc3RhdGljIHZvaWQgc3RhY2tfdHJhY2VfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXN5c3Byb2ZfdHJhY2UgPSB0cjsKKworCWlmICh0ci0+Y3RybCkKKwkJc3RhcnRfc3RhY2tfdHJhY2UodHIpOworfQorCitzdGF0aWMgdm9pZCBzdGFja190cmFjZV9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RvcF9zdGFja190cmFjZSh0cik7Cit9CisKK3N0YXRpYyB2b2lkIHN0YWNrX3RyYWNlX2N0cmxfdXBkYXRlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJLyogV2hlbiBzdGFydGluZyBhIG5ldyB0cmFjZSwgcmVzZXQgdGhlIGJ1ZmZlcnMgKi8KKwlpZiAodHItPmN0cmwpCisJCXN0YXJ0X3N0YWNrX3RyYWNlKHRyKTsKKwllbHNlCisJCXN0b3Bfc3RhY2tfdHJhY2UodHIpOworfQorCitzdGF0aWMgc3RydWN0IHRyYWNlciBzdGFja190cmFjZSBfX3JlYWRfbW9zdGx5ID0KK3sKKwkubmFtZQkJPSAic3lzcHJvZiIsCisJLmluaXQJCT0gc3RhY2tfdHJhY2VfaW5pdCwKKwkucmVzZXQJCT0gc3RhY2tfdHJhY2VfcmVzZXQsCisJLmN0cmxfdXBkYXRlCT0gc3RhY2tfdHJhY2VfY3RybF91cGRhdGUsCisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TRUxGVEVTVAorCS5zZWxmdGVzdCAgICA9IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfc3lzcHJvZiwKKyNlbmRpZgorfTsKKworX19pbml0IHN0YXRpYyBpbnQgaW5pdF9zdGFja190cmFjZSh2b2lkKQoreworCXJldHVybiByZWdpc3Rlcl90cmFjZXIoJnN0YWNrX3RyYWNlKTsKK30KK2RldmljZV9pbml0Y2FsbChpbml0X3N0YWNrX3RyYWNlKTsKKworI2RlZmluZSBNQVhfTE9OR19ESUdJVFMgMjIKKworc3RhdGljIHNzaXplX3QKK3N5c3Byb2Zfc2FtcGxlX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCWNoYXIgYnVmW01BWF9MT05HX0RJR0lUU107CisJaW50IHI7CisKKwlyID0gc3ByaW50ZihidWYsICIlbGRcbiIsIG5zZWNzX3RvX3VzZWNzKHNhbXBsZV9wZXJpb2QpKTsKKworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjbnQsIHBwb3MsIGJ1Ziwgcik7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitzeXNwcm9mX3NhbXBsZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCWNoYXIgYnVmW01BWF9MT05HX0RJR0lUU107CisJdW5zaWduZWQgbG9uZyB2YWw7CisKKwlpZiAoY250ID4gTUFYX0xPTkdfRElHSVRTLTEpCisJCWNudCA9IE1BWF9MT05HX0RJR0lUUy0xOworCisJaWYgKGNvcHlfZnJvbV91c2VyKCZidWYsIHVidWYsIGNudCkpCisJCXJldHVybiAtRUZBVUxUOworCisJYnVmW2NudF0gPSAwOworCisJdmFsID0gc2ltcGxlX3N0cnRvdWwoYnVmLCBOVUxMLCAxMCk7CisJLyoKKwkgKiBFbmZvcmNlIGEgbWluaW11bSBzYW1wbGUgcGVyaW9kIG9mIDEwMCB1c2VjczoKKwkgKi8KKwlpZiAodmFsIDwgMTAwKQorCQl2YWwgPSAxMDA7CisKKwltdXRleF9sb2NrKCZzYW1wbGVfdGltZXJfbG9jayk7CisJc3RvcF9zdGFja190aW1lcnMoKTsKKwlzYW1wbGVfcGVyaW9kID0gdmFsICogMTAwMDsKKwlzdGFydF9zdGFja190aW1lcnMoKTsKKwltdXRleF91bmxvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHN5c3Byb2Zfc2FtcGxlX2ZvcHMgPSB7CisJLnJlYWQJCT0gc3lzcHJvZl9zYW1wbGVfcmVhZCwKKwkud3JpdGUJCT0gc3lzcHJvZl9zYW1wbGVfd3JpdGUsCit9OworCit2b2lkIGluaXRfdHJhY2VyX3N5c3Byb2ZfZGVidWdmcyhzdHJ1Y3QgZGVudHJ5ICpkX3RyYWNlcikKK3sKKwlzdHJ1Y3QgZGVudHJ5ICplbnRyeTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgic3lzcHJvZl9zYW1wbGVfcGVyaW9kIiwgMDY0NCwKKwkJCWRfdHJhY2VyLCBOVUxMLCAmc3lzcHJvZl9zYW1wbGVfZm9wcyk7CisJaWYgKGVudHJ5KQorCQlyZXR1cm47CisJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICdkeW5fZnRyYWNlX3RvdGFsX2luZm8nIGVudHJ5XG4iKTsKK30KZGlmZiAtLWdpdCBhL2tlcm5lbC93b3JrcXVldWUuYyBiL2tlcm5lbC93b3JrcXVldWUuYwppbmRleCAyOWZjMzlmLi5jZTc3OTk1IDEwMDY0NAotLS0gYS9rZXJuZWwvd29ya3F1ZXVlLmMKKysrIGIva2VybmVsL3dvcmtxdWV1ZS5jCkBAIC0xMyw3ICsxMyw3IEBACiAgKiAgIEthaSBQZXR6a2UgPHdwcEBtYXJpZS5waHlzaWsudHUtYmVybGluLmRlPgogICogICBUaGVvZG9yZSBUcydvIDx0eXRzb0BtaXQuZWR1PgogICoKLSAqIE1hZGUgdG8gdXNlIGFsbG9jX3BlcmNwdSBieSBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4uCisgKiBNYWRlIHRvIHVzZSBhbGxvY19wZXJjcHUgYnkgQ2hyaXN0b3BoIExhbWV0ZXIuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpkaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1ZwppbmRleCBkMjA5OWY0Li5jNDU5ZTg1IDEwMDY0NAotLS0gYS9saWIvS2NvbmZpZy5kZWJ1ZworKysgYi9saWIvS2NvbmZpZy5kZWJ1ZwpAQCAtNDE5LDcgKzQxOSw2IEBACiAKIGNvbmZpZyBTVEFDS1RSQUNFCiAJYm9vbAotCWRlcGVuZHMgb24gREVCVUdfS0VSTkVMCiAJZGVwZW5kcyBvbiBTVEFDS1RSQUNFX1NVUFBPUlQKIAogY29uZmlnIERFQlVHX0tPQkpFQ1QKQEAgLTU2Myw2ICs1NjIsOSBAQAogCSAgZm9yIGRpc3RyaWJ1dGlvbnMgb3IgZ2VuZXJhbCBrZXJuZWxzLCBidXQgb25seSBmb3Iga2VybmVsCiAJICBkZXZlbG9wZXJzIHdvcmtpbmcgb24gYXJjaGl0ZWN0dXJlIGNvZGUuCiAKKwkgIE5vdGUgdGhhdCBpZiB5b3Ugd2FudCB0byBhbHNvIHRlc3Qgc2F2ZWQgYmFja3RyYWNlcywgeW91IHdpbGwKKwkgIGhhdmUgdG8gZW5hYmxlIFNUQUNLVFJBQ0UgYXMgd2VsbC4KKwogCSAgU2F5IE4gaWYgeW91IGFyZSB1bnN1cmUuCiAKIGNvbmZpZyBMS0RUTQpAQCAtNjM0LDYgKzYzNiw4IEBACiAJICBFbmFibGUgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBMYXRlbmN5VE9QIHRvb2wKIAkgIHRvIGZpbmQgb3V0IHdoaWNoIHVzZXJzcGFjZSBpcyBibG9ja2luZyBvbiB3aGF0IGtlcm5lbCBvcGVyYXRpb25zLgogCitzb3VyY2Uga2VybmVsL3RyYWNlL0tjb25maWcKKwogY29uZmlnIFBST1ZJREVfT0hDSTEzOTRfRE1BX0lOSVQKIAlib29sICJSZW1vdGUgZGVidWdnaW5nIG92ZXIgRmlyZVdpcmUgZWFybHkgb24gYm9vdCIKIAlkZXBlbmRzIG9uIFBDSSAmJiBYODYKZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZSBiL2xpYi9NYWtlZmlsZQppbmRleCA3NGIwY2ZiLi40YjgzNmE1IDEwMDY0NAotLS0gYS9saWIvTWFrZWZpbGUKKysrIGIvbGliL01ha2VmaWxlCkBAIC04LDYgKzgsMTUgQEAKIAkgc2hhMS5vIGlycV9yZWdzLm8gcmVjaXByb2NhbF9kaXYubyBhcmd2X3NwbGl0Lm8gXAogCSBwcm9wb3J0aW9ucy5vIHByaW9faGVhcC5vIHJhdGVsaW1pdC5vCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKKyMgRG8gbm90IHByb2ZpbGUgc3RyaW5nLm8sIHNpbmNlIGl0IG1heSBiZSB1c2VkIGluIGVhcmx5IGJvb3Qgb3IgdmRzbworQ0ZMQUdTX1JFTU9WRV9zdHJpbmcubyA9IC1wZworIyBBbHNvIGRvIG5vdCBwcm9maWxlIGFueSBkZWJ1ZyB1dGlsaXRpZXMKK0NGTEFHU19SRU1PVkVfc3BpbmxvY2tfZGVidWcubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9saXN0X2RlYnVnLm8gPSAtcGcKK0NGTEFHU19SRU1PVkVfZGVidWdvYmplY3RzLm8gPSAtcGcKK2VuZGlmCisKIGxpYi0kKENPTkZJR19NTVUpICs9IGlvcmVtYXAubwogbGliLSQoQ09ORklHX1NNUCkgKz0gY3B1bWFzay5vCiAKZGlmZiAtLWdpdCBhL2xpYi9idWcuYyBiL2xpYi9idWcuYwppbmRleCA1MzBmMzhmLi5iZmVhZmQ2IDEwMDY0NAotLS0gYS9saWIvYnVnLmMKKysrIGIvbGliL2J1Zy5jCkBAIC0zNyw2ICszNyw3IEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvYnVnLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KIApAQCAtMTQ5LDYgKzE1MCw3IEBACiAJCQkgICAgICAgKHZvaWQgKilidWdhZGRyKTsKIAogCQlzaG93X3JlZ3MocmVncyk7CisJCWFkZF90YWludChUQUlOVF9XQVJOKTsKIAkJcmV0dXJuIEJVR19UUkFQX1RZUEVfV0FSTjsKIAl9CiAKZGlmZiAtLWdpdCBhL2xpYi9kZWJ1Z29iamVjdHMuYyBiL2xpYi9kZWJ1Z29iamVjdHMuYwppbmRleCBhNzZhNWUxLi44NWIxOGQ3IDEwMDY0NAotLS0gYS9saWIvZGVidWdvYmplY3RzLmMKKysrIGIvbGliL2RlYnVnb2JqZWN0cy5jCkBAIC02OCw2ICs2OCw3IEBACiB7CiAJZ2ZwX3QgZ2ZwID0gR0ZQX0FUT01JQyB8IF9fR0ZQX05PUkVUUlkgfCBfX0dGUF9OT1dBUk47CiAJc3RydWN0IGRlYnVnX29iaiAqbmV3OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlpZiAobGlrZWx5KG9ial9wb29sX2ZyZWUgPj0gT0RFQlVHX1BPT0xfTUlOX0xFVkVMKSkKIAkJcmV0dXJuIG9ial9wb29sX2ZyZWU7CkBAIC04MSwxMCArODIsMTAgQEAKIAkJaWYgKCFuZXcpCiAJCQlyZXR1cm4gb2JqX3Bvb2xfZnJlZTsKIAotCQlzcGluX2xvY2soJnBvb2xfbG9jayk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZwb29sX2xvY2ssIGZsYWdzKTsKIAkJaGxpc3RfYWRkX2hlYWQoJm5ldy0+bm9kZSwgJm9ial9wb29sKTsKIAkJb2JqX3Bvb2xfZnJlZSsrOwotCQlzcGluX3VubG9jaygmcG9vbF9sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9vbF9sb2NrLCBmbGFncyk7CiAJfQogCXJldHVybiBvYmpfcG9vbF9mcmVlOwogfQpAQCAtMTEwLDE2ICsxMTEsMTMgQEAKIH0KIAogLyoKLSAqIEFsbG9jYXRlIGEgbmV3IG9iamVjdC4gSWYgdGhlIHBvb2wgaXMgZW1wdHkgYW5kIG5vIHJlZmlsbCBwb3NzaWJsZSwKLSAqIHN3aXRjaCBvZmYgdGhlIGRlYnVnZ2VyLgorICogQWxsb2NhdGUgYSBuZXcgb2JqZWN0LiBJZiB0aGUgcG9vbCBpcyBlbXB0eSwgc3dpdGNoIG9mZiB0aGUgZGVidWdnZXIuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZGVidWdfb2JqICoKIGFsbG9jX29iamVjdCh2b2lkICphZGRyLCBzdHJ1Y3QgZGVidWdfYnVja2V0ICpiLCBzdHJ1Y3QgZGVidWdfb2JqX2Rlc2NyICpkZXNjcikKIHsKIAlzdHJ1Y3QgZGVidWdfb2JqICpvYmogPSBOVUxMOwotCWludCByZXRyeSA9IDA7CiAKLXJlcGVhdDoKIAlzcGluX2xvY2soJnBvb2xfbG9jayk7CiAJaWYgKG9ial9wb29sLmZpcnN0KSB7CiAJCW9iagkgICAgPSBobGlzdF9lbnRyeShvYmpfcG9vbC5maXJzdCwgdHlwZW9mKCpvYmopLCBub2RlKTsKQEAgLTE0MSw5ICsxMzksNiBAQAogCX0KIAlzcGluX3VubG9jaygmcG9vbF9sb2NrKTsKIAotCWlmIChmaWxsX3Bvb2woKSAmJiAhb2JqICYmICFyZXRyeSsrKQotCQlnb3RvIHJlcGVhdDsKLQogCXJldHVybiBvYmo7CiB9CiAKQEAgLTI2MSw2ICsyNTYsOCBAQAogCXN0cnVjdCBkZWJ1Z19vYmogKm9iajsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCisJZmlsbF9wb29sKCk7CisKIAlkYiA9IGdldF9idWNrZXQoKHVuc2lnbmVkIGxvbmcpIGFkZHIpOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRiLT5sb2NrLCBmbGFncyk7CmRpZmYgLS1naXQgYS9saWIvcGVyY3B1X2NvdW50ZXIuYyBiL2xpYi9wZXJjcHVfY291bnRlci5jCmluZGV4IDExOTE3NDQuLjRhOGJhNGIgMTAwNjQ0Ci0tLSBhL2xpYi9wZXJjcHVfY291bnRlci5jCisrKyBiL2xpYi9wZXJjcHVfY291bnRlci5jCkBAIC01Miw3ICs1Miw3IEBACiAgKiBBZGQgdXAgYWxsIHRoZSBwZXItY3B1IGNvdW50cywgcmV0dXJuIHRoZSByZXN1bHQuICBUaGlzIGlzIGEgbW9yZSBhY2N1cmF0ZQogICogYnV0IG11Y2ggc2xvd2VyIHZlcnNpb24gb2YgcGVyY3B1X2NvdW50ZXJfcmVhZF9wb3NpdGl2ZSgpCiAgKi8KLXM2NCBfX3BlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKK3M2NCBfX3BlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgaW50IHNldCkKIHsKIAlzNjQgcmV0OwogCWludCBjcHU7CkBAIC02Miw3ICs2MiwxMiBAQAogCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CiAJCXMzMiAqcGNvdW50ID0gcGVyX2NwdV9wdHIoZmJjLT5jb3VudGVycywgY3B1KTsKIAkJcmV0ICs9ICpwY291bnQ7CisJCWlmIChzZXQpCisJCQkqcGNvdW50ID0gMDsKIAl9CisJaWYgKHNldCkKKwkJZmJjLT5jb3VudCA9IHJldDsKKwogCXNwaW5fdW5sb2NrKCZmYmMtPmxvY2spOwogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9saWIvcmFkaXgtdHJlZS5jIGIvbGliL3JhZGl4LXRyZWUuYwppbmRleCAxNjlhMmY4Li41NmVjMjFhIDEwMDY0NAotLS0gYS9saWIvcmFkaXgtdHJlZS5jCisrKyBiL2xpYi9yYWRpeC10cmVlLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIE1vbWNoaWwgVmVsaWtvdgogICogUG9ydGlvbnMgQ29weXJpZ2h0IChDKSAyMDAxIENocmlzdG9waCBIZWxsd2lnCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgU0dJLCBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwNSBTR0ksIENocmlzdG9waCBMYW1ldGVyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTmljayBQaWdnaW4KICAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9saWIvc21wX3Byb2Nlc3Nvcl9pZC5jIGIvbGliL3NtcF9wcm9jZXNzb3JfaWQuYwppbmRleCA2YzkwZmI5Li4zYjRkYzA5IDEwMDY0NAotLS0gYS9saWIvc21wX3Byb2Nlc3Nvcl9pZC5jCisrKyBiL2xpYi9zbXBfcHJvY2Vzc29yX2lkLmMKQEAgLTcsNyArNyw3IEBACiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogCi11bnNpZ25lZCBpbnQgZGVidWdfc21wX3Byb2Nlc3Nvcl9pZCh2b2lkKQorbm90cmFjZSB1bnNpZ25lZCBpbnQgZGVidWdfc21wX3Byb2Nlc3Nvcl9pZCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgcHJlZW1wdF9jb3VudCA9IHByZWVtcHRfY291bnQoKTsKIAlpbnQgdGhpc19jcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOwpAQCAtMzcsNyArMzcsNyBAQAogCS8qCiAJICogQXZvaWQgcmVjdXJzaW9uOgogCSAqLwotCXByZWVtcHRfZGlzYWJsZSgpOworCXByZWVtcHRfZGlzYWJsZV9ub3RyYWNlKCk7CiAKIAlpZiAoIXByaW50a19yYXRlbGltaXQoKSkKIAkJZ290byBvdXRfZW5hYmxlOwpAQCAtNDksNyArNDksNyBAQAogCWR1bXBfc3RhY2soKTsKIAogb3V0X2VuYWJsZToKLQlwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkKCk7CisJcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZF9ub3RyYWNlKCk7CiBvdXQ6CiAJcmV0dXJuIHRoaXNfY3B1OwogfQpkaWZmIC0tZ2l0IGEvbGliL3RzX2JtLmMgYi9saWIvdHNfYm0uYwppbmRleCBkOTA4MjJjLi40YTdmY2U3IDEwMDY0NAotLS0gYS9saWIvdHNfYm0uYworKysgYi9saWIvdHNfYm0uYwpAQCAtNjMsNyArNjMsNyBAQAogCXN0cnVjdCB0c19ibSAqYm0gPSB0c19jb25maWdfcHJpdihjb25mKTsKIAl1bnNpZ25lZCBpbnQgaSwgdGV4dF9sZW4sIGNvbnN1bWVkID0gc3RhdGUtPm9mZnNldDsKIAljb25zdCB1OCAqdGV4dDsKLQlpbnQgc2hpZnQgPSBibS0+cGF0bGVuLCBiczsKKwlpbnQgc2hpZnQgPSBibS0+cGF0bGVuIC0gMSwgYnM7CiAKIAlmb3IgKDs7KSB7CiAJCXRleHRfbGVuID0gY29uZi0+Z2V0X25leHRfYmxvY2soY29uc3VtZWQsICZ0ZXh0LCBjb25mLCBzdGF0ZSk7CmRpZmYgLS1naXQgYS9saWIvdnNwcmludGYuYyBiL2xpYi92c3ByaW50Zi5jCmluZGV4IDYwMjE3NTcuLjFkYzJkMWQgMTAwNjQ0Ci0tLSBhL2xpYi92c3ByaW50Zi5jCisrKyBiL2xpYi92c3ByaW50Zi5jCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KIAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CQkvKiBmb3IgUEFHRV9TSVpFICovCiAjaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CkBAIC00ODIsNiArNDg0LDg5IEBACiAJcmV0dXJuIGJ1ZjsKIH0KIAorc3RhdGljIGNoYXIgKnN0cmluZyhjaGFyICpidWYsIGNoYXIgKmVuZCwgY2hhciAqcywgaW50IGZpZWxkX3dpZHRoLCBpbnQgcHJlY2lzaW9uLCBpbnQgZmxhZ3MpCit7CisJaW50IGxlbiwgaTsKKworCWlmICgodW5zaWduZWQgbG9uZylzIDwgUEFHRV9TSVpFKQorCQlzID0gIjxOVUxMPiI7CisKKwlsZW4gPSBzdHJubGVuKHMsIHByZWNpc2lvbik7CisKKwlpZiAoIShmbGFncyAmIExFRlQpKSB7CisJCXdoaWxlIChsZW4gPCBmaWVsZF93aWR0aC0tKSB7CisJCQlpZiAoYnVmIDwgZW5kKQorCQkJCSpidWYgPSAnICc7CisJCQkrK2J1ZjsKKwkJfQorCX0KKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKwkJaWYgKGJ1ZiA8IGVuZCkKKwkJCSpidWYgPSAqczsKKwkJKytidWY7ICsrczsKKwl9CisJd2hpbGUgKGxlbiA8IGZpZWxkX3dpZHRoLS0pIHsKKwkJaWYgKGJ1ZiA8IGVuZCkKKwkJCSpidWYgPSAnICc7CisJCSsrYnVmOworCX0KKwlyZXR1cm4gYnVmOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgKmRlcmVmZXJlbmNlX2Z1bmN0aW9uX2Rlc2NyaXB0b3Iodm9pZCAqcHRyKQoreworI2lmIGRlZmluZWQoQ09ORklHX0lBNjQpIHx8IGRlZmluZWQoQ09ORklHX1BQQzY0KQorCXZvaWQgKnA7CisJaWYgKCFwcm9iZV9rZXJuZWxfYWRkcmVzcyhwdHIsIHApKQorCQlwdHIgPSBwOworI2VuZGlmCisJcmV0dXJuIHB0cjsKK30KKworc3RhdGljIGNoYXIgKnN5bWJvbF9zdHJpbmcoY2hhciAqYnVmLCBjaGFyICplbmQsIHZvaWQgKnB0ciwgaW50IGZpZWxkX3dpZHRoLCBpbnQgcHJlY2lzaW9uLCBpbnQgZmxhZ3MpCit7CisJdW5zaWduZWQgbG9uZyB2YWx1ZSA9ICh1bnNpZ25lZCBsb25nKSBwdHI7CisjaWZkZWYgQ09ORklHX0tBTExTWU1TCisJY2hhciBzeW1bS1NZTV9TWU1CT0xfTEVOXTsKKwlzcHJpbnRfc3ltYm9sKHN5bSwgdmFsdWUpOworCXJldHVybiBzdHJpbmcoYnVmLCBlbmQsIHN5bSwgZmllbGRfd2lkdGgsIHByZWNpc2lvbiwgZmxhZ3MpOworI2Vsc2UKKwlmaWVsZF93aWR0aCA9IDIqc2l6ZW9mKHZvaWQgKik7CisJZmxhZ3MgfD0gU1BFQ0lBTCB8IFNNQUxMIHwgWkVST1BBRDsKKwlyZXR1cm4gbnVtYmVyKGJ1ZiwgZW5kLCB2YWx1ZSwgMTYsIGZpZWxkX3dpZHRoLCBwcmVjaXNpb24sIGZsYWdzKTsKKyNlbmRpZgorfQorCisvKgorICogU2hvdyBhICclcCcgdGhpbmcuICBBIGtlcm5lbCBleHRlbnNpb24gaXMgdGhhdCB0aGUgJyVwJyBpcyBmb2xsb3dlZAorICogYnkgYW4gZXh0cmEgc2V0IG9mIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHRoYXQgYXJlIGV4dGVuZGVkIGZvcm1hdAorICogc3BlY2lmaWVycy4KKyAqCisgKiBSaWdodCBub3cgd2UganVzdCBoYW5kbGUgJ0YnIChmb3Igc3ltYm9saWMgRnVuY3Rpb24gZGVzY3JpcHRvciBwb2ludGVycykKKyAqIGFuZCAnUycgKGZvciBTeW1ib2xpYyBkaXJlY3QgcG9pbnRlcnMpLCBidXQgdGhpcyBjYW4gZWFzaWx5IGJlCisgKiBleHRlbmRlZCBpbiB0aGUgZnV0dXJlIChuZXR3b3JrIGFkZHJlc3MgdHlwZXMgZXRjKS4KKyAqCisgKiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuICdTJyBhbmQgJ0YnIGlzIHRoYXQgb24gaWE2NCBhbmQgcHBjNjQgZnVuY3Rpb24KKyAqIHBvaW50ZXJzIGFyZSByZWFsbHkgZnVuY3Rpb24gZGVzY3JpcHRvcnMsIHdoaWNoIGNvbnRhaW4gYSBwb2ludGVyIHRoZQorICogcmVhbCBhZGRyZXNzLiAKKyAqLworc3RhdGljIGNoYXIgKnBvaW50ZXIoY29uc3QgY2hhciAqZm10LCBjaGFyICpidWYsIGNoYXIgKmVuZCwgdm9pZCAqcHRyLCBpbnQgZmllbGRfd2lkdGgsIGludCBwcmVjaXNpb24sIGludCBmbGFncykKK3sKKwlzd2l0Y2ggKCpmbXQpIHsKKwljYXNlICdGJzoKKwkJcHRyID0gZGVyZWZlcmVuY2VfZnVuY3Rpb25fZGVzY3JpcHRvcihwdHIpOworCQkvKiBGYWxsdGhyb3VnaCAqLworCWNhc2UgJ1MnOgorCQlyZXR1cm4gc3ltYm9sX3N0cmluZyhidWYsIGVuZCwgcHRyLCBmaWVsZF93aWR0aCwgcHJlY2lzaW9uLCBmbGFncyk7CisJfQorCWZsYWdzIHw9IFNNQUxMOworCWlmIChmaWVsZF93aWR0aCA9PSAtMSkgeworCQlmaWVsZF93aWR0aCA9IDIqc2l6ZW9mKHZvaWQgKik7CisJCWZsYWdzIHw9IFpFUk9QQUQ7CisJfQorCXJldHVybiBudW1iZXIoYnVmLCBlbmQsICh1bnNpZ25lZCBsb25nKSBwdHIsIDE2LCBmaWVsZF93aWR0aCwgcHJlY2lzaW9uLCBmbGFncyk7Cit9CisKIC8qKgogICogdnNucHJpbnRmIC0gRm9ybWF0IGEgc3RyaW5nIGFuZCBwbGFjZSBpdCBpbiBhIGJ1ZmZlcgogICogQGJ1ZjogVGhlIGJ1ZmZlciB0byBwbGFjZSB0aGUgcmVzdWx0IGludG8KQEAgLTUwMiwxMSArNTg3LDkgQEAKICAqLwogaW50IHZzbnByaW50ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykKIHsKLQlpbnQgbGVuOwogCXVuc2lnbmVkIGxvbmcgbG9uZyBudW07Ci0JaW50IGksIGJhc2U7CisJaW50IGJhc2U7CiAJY2hhciAqc3RyLCAqZW5kLCBjOwotCWNvbnN0IGNoYXIgKnM7CiAKIAlpbnQgZmxhZ3M7CQkvKiBmbGFncyB0byBudW1iZXIoKSAqLwogCkBAIC02MjIsNDMgKzcwNSwxOCBAQAogCQkJCWNvbnRpbnVlOwogCiAJCQljYXNlICdzJzoKLQkJCQlzID0gdmFfYXJnKGFyZ3MsIGNoYXIgKik7Ci0JCQkJaWYgKCh1bnNpZ25lZCBsb25nKXMgPCBQQUdFX1NJWkUpCi0JCQkJCXMgPSAiPE5VTEw+IjsKLQotCQkJCWxlbiA9IHN0cm5sZW4ocywgcHJlY2lzaW9uKTsKLQotCQkJCWlmICghKGZsYWdzICYgTEVGVCkpIHsKLQkJCQkJd2hpbGUgKGxlbiA8IGZpZWxkX3dpZHRoLS0pIHsKLQkJCQkJCWlmIChzdHIgPCBlbmQpCi0JCQkJCQkJKnN0ciA9ICcgJzsKLQkJCQkJCSsrc3RyOwotCQkJCQl9Ci0JCQkJfQotCQkJCWZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkgewotCQkJCQlpZiAoc3RyIDwgZW5kKQotCQkJCQkJKnN0ciA9ICpzOwotCQkJCQkrK3N0cjsgKytzOwotCQkJCX0KLQkJCQl3aGlsZSAobGVuIDwgZmllbGRfd2lkdGgtLSkgewotCQkJCQlpZiAoc3RyIDwgZW5kKQotCQkJCQkJKnN0ciA9ICcgJzsKLQkJCQkJKytzdHI7Ci0JCQkJfQorCQkJCXN0ciA9IHN0cmluZyhzdHIsIGVuZCwgdmFfYXJnKGFyZ3MsIGNoYXIgKiksIGZpZWxkX3dpZHRoLCBwcmVjaXNpb24sIGZsYWdzKTsKIAkJCQljb250aW51ZTsKIAogCQkJY2FzZSAncCc6Ci0JCQkJZmxhZ3MgfD0gU01BTEw7Ci0JCQkJaWYgKGZpZWxkX3dpZHRoID09IC0xKSB7Ci0JCQkJCWZpZWxkX3dpZHRoID0gMipzaXplb2Yodm9pZCAqKTsKLQkJCQkJZmxhZ3MgfD0gWkVST1BBRDsKLQkJCQl9Ci0JCQkJc3RyID0gbnVtYmVyKHN0ciwgZW5kLAotCQkJCQkJKHVuc2lnbmVkIGxvbmcpIHZhX2FyZyhhcmdzLCB2b2lkICopLAotCQkJCQkJMTYsIGZpZWxkX3dpZHRoLCBwcmVjaXNpb24sIGZsYWdzKTsKKwkJCQlzdHIgPSBwb2ludGVyKGZtdCsxLCBzdHIsIGVuZCwKKwkJCQkJCXZhX2FyZyhhcmdzLCB2b2lkICopLAorCQkJCQkJZmllbGRfd2lkdGgsIHByZWNpc2lvbiwgZmxhZ3MpOworCQkJCS8qIFNraXAgYWxsIGFscGhhbnVtZXJpYyBwb2ludGVyIHN1ZmZpeGVzICovCisJCQkJd2hpbGUgKGlzYWxudW0oZm10WzFdKSkKKwkJCQkJZm10Kys7CiAJCQkJY29udGludWU7CiAKLQogCQkJY2FzZSAnbic6CiAJCQkJLyogRklYTUU6CiAJCQkJKiBXaGF0IGRvZXMgQzk5IHNheSBhYm91dCB0aGUgb3ZlcmZsb3cgY2FzZSBoZXJlPyAqLwpkaWZmIC0tZ2l0IGEvbW0vS2NvbmZpZyBiL21tL0tjb25maWcKaW5kZXggM2FhODE5ZC4uYzRkZTg1MiAxMDA2NDQKLS0tIGEvbW0vS2NvbmZpZworKysgYi9tbS9LY29uZmlnCkBAIC0xMjksNyArMTI5LDcgQEAKIAlib29sICJBbGxvdyBmb3IgbWVtb3J5IGhvdC1hZGQiCiAJZGVwZW5kcyBvbiBTUEFSU0VNRU0gfHwgWDg2XzY0X0FDUElfTlVNQQogCWRlcGVuZHMgb24gSE9UUExVRyAmJiAhSElCRVJOQVRJT04gJiYgQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUcKLQlkZXBlbmRzIG9uIChJQTY0IHx8IFg4NiB8fCBQUEM2NCB8fCBTVVBFUkgpCisJZGVwZW5kcyBvbiAoSUE2NCB8fCBYODYgfHwgUFBDNjQgfHwgU1VQRVJIIHx8IFMzOTApCiAKIGNvbW1lbnQgIk1lbW9yeSBob3RwbHVnIGlzIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBTb2Z0d2FyZSBTdXNwZW5kIgogCWRlcGVuZHMgb24gU1BBUlNFTUVNICYmIEhPVFBMVUcgJiYgSElCRVJOQVRJT04KQEAgLTE5OSw3ICsxOTksNyBAQAogY29uZmlnIE5SX1FVSUNLCiAJaW50CiAJZGVwZW5kcyBvbiBRVUlDS0xJU1QKLQlkZWZhdWx0ICIyIiBpZiBTVVBFUkgKKwlkZWZhdWx0ICIyIiBpZiBTVVBFUkggfHwgQVZSMzIKIAlkZWZhdWx0ICIxIgogCiBjb25maWcgVklSVF9UT19CVVMKZGlmZiAtLWdpdCBhL21tL2FsbG9jcGVyY3B1LmMgYi9tbS9hbGxvY3BlcmNwdS5jCmluZGV4IGY0MDI2YmEuLjA1ZjJiNDAgMTAwNjQ0Ci0tLSBhL21tL2FsbG9jcGVyY3B1LmMKKysrIGIvbW0vYWxsb2NwZXJjcHUuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBsaW51eC9tbS9hbGxvY3BlcmNwdS5jCiAgKgotICogU2VwYXJhdGVkIGZyb20gc2xhYi5jIEF1Z3VzdCAxMSwgMjAwNiBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4KKyAqIFNlcGFyYXRlZCBmcm9tIHNsYWIuYyBBdWd1c3QgMTEsIDIwMDYgQ2hyaXN0b3BoIExhbWV0ZXIKICAqLwogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9tbS9maWxlbWFwLmMgYi9tbS9maWxlbWFwLmMKaW5kZXggMWU2YTdkMy4uNjVkOWQ5ZSAxMDA2NDQKLS0tIGEvbW0vZmlsZW1hcC5jCisrKyBiL21tL2ZpbGVtYXAuYwpAQCAtMjM2LDExICsyMzYsMTIgQEAKIH0KIEVYUE9SVF9TWU1CT0woZmlsZW1hcF9mZGF0YXdyaXRlKTsKIAotc3RhdGljIGludCBmaWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBzdGFydCwKK2ludCBmaWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBzdGFydCwKIAkJCQlsb2ZmX3QgZW5kKQogewogCXJldHVybiBfX2ZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZShtYXBwaW5nLCBzdGFydCwgZW5kLCBXQl9TWU5DX0FMTCk7CiB9CitFWFBPUlRfU1lNQk9MKGZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZSk7CiAKIC8qKgogICogZmlsZW1hcF9mbHVzaCAtIG1vc3RseSBhIG5vbi1ibG9ja2luZyBmbHVzaApkaWZmIC0tZ2l0IGEvbW0vbWVtb3J5LmMgYi9tbS9tZW1vcnkuYwppbmRleCBkMTRiMjUxLi4yMzAyZDIyIDEwMDY0NAotLS0gYS9tbS9tZW1vcnkuYworKysgYi9tbS9tZW1vcnkuYwpAQCAtMTE1MSw3ICsxMTUxLDcgQEAKIAkJCSAqIGJlIHByb2Nlc3NlZCB1bnRpbCByZXR1cm5pbmcgdG8gdXNlciBzcGFjZS4KIAkJCSAqLwogCQkJaWYgKHVubGlrZWx5KHRlc3RfdHNrX3RocmVhZF9mbGFnKHRzaywgVElGX01FTURJRSkpKQotCQkJCXJldHVybiAtRU5PTUVNOworCQkJCXJldHVybiBpID8gaSA6IC1FTk9NRU07CiAKIAkJCWlmICh3cml0ZSkKIAkJCQlmb2xsX2ZsYWdzIHw9IEZPTExfV1JJVEU7CkBAIC0xNjk3LDggKzE2OTcsMTkgQEAKIAlzdHJ1Y3QgcGFnZSAqZGlydHlfcGFnZSA9IE5VTEw7CiAKIAlvbGRfcGFnZSA9IHZtX25vcm1hbF9wYWdlKHZtYSwgYWRkcmVzcywgb3JpZ19wdGUpOwotCWlmICghb2xkX3BhZ2UpCisJaWYgKCFvbGRfcGFnZSkgeworCQkvKgorCQkgKiBWTV9NSVhFRE1BUCAhcGZuX3ZhbGlkKCkgY2FzZQorCQkgKgorCQkgKiBXZSBzaG91bGQgbm90IGNvdyBwYWdlcyBpbiBhIHNoYXJlZCB3cml0ZWFibGUgbWFwcGluZy4KKwkJICogSnVzdCBtYXJrIHRoZSBwYWdlcyB3cml0YWJsZSBhcyB3ZSBjYW4ndCBkbyBhbnkgZGlydHkKKwkJICogYWNjb3VudGluZyBvbiByYXcgcGZuIG1hcHMuCisJCSAqLworCQlpZiAoKHZtYS0+dm1fZmxhZ3MgJiAoVk1fV1JJVEV8Vk1fU0hBUkVEKSkgPT0KKwkJCQkgICAgIChWTV9XUklURXxWTV9TSEFSRUQpKQorCQkJZ290byByZXVzZTsKIAkJZ290byBnb3R0ZW47CisJfQogCiAJLyoKIAkgKiBUYWtlIG91dCBhbm9ueW1vdXMgcGFnZXMgZmlyc3QsIGFub255bW91cyBzaGFyZWQgdm1hcyBhcmUKQEAgLTE3NTEsNiArMTc2Miw3IEBACiAJfQogCiAJaWYgKHJldXNlKSB7CityZXVzZToKIAkJZmx1c2hfY2FjaGVfcGFnZSh2bWEsIGFkZHJlc3MsIHB0ZV9wZm4ob3JpZ19wdGUpKTsKIAkJZW50cnkgPSBwdGVfbWt5b3VuZyhvcmlnX3B0ZSk7CiAJCWVudHJ5ID0gbWF5YmVfbWt3cml0ZShwdGVfbWtkaXJ0eShlbnRyeSksIHZtYSk7CmRpZmYgLS1naXQgYS9tbS9tZW1wb2xpY3kuYyBiL21tL21lbXBvbGljeS5jCmluZGV4IGEzN2E1MDMuLmM5NGU1OGIgMTAwNjQ0Ci0tLSBhL21tL21lbXBvbGljeS5jCisrKyBiL21tL21lbXBvbGljeS5jCkBAIC03MjksNyArNzI5LDExIEBACiAJfSBlbHNlIHsKIAkJKnBvbGljeSA9IHBvbCA9PSAmZGVmYXVsdF9wb2xpY3kgPyBNUE9MX0RFRkFVTFQgOgogCQkJCQkJcG9sLT5tb2RlOwotCQkqcG9saWN5IHw9IHBvbC0+ZmxhZ3M7CisJCS8qCisJCSAqIEludGVybmFsIG1lbXBvbGljeSBmbGFncyBtdXN0IGJlIG1hc2tlZCBvZmYgYmVmb3JlIGV4cG9zaW5nCisJCSAqIHRoZSBwb2xpY3kgdG8gdXNlcnNwYWNlLgorCQkgKi8KKwkJKnBvbGljeSB8PSAocG9sLT5mbGFncyAmIE1QT0xfTU9ERV9GTEFHUyk7CiAJfQogCiAJaWYgKHZtYSkgewpkaWZmIC0tZ2l0IGEvbW0vbWlncmF0ZS5jIGIvbW0vbWlncmF0ZS5jCmluZGV4IDExMmJjYWUuLjU1YmQzNTUgMTAwNjQ0Ci0tLSBhL21tL21pZ3JhdGUuYworKysgYi9tbS9taWdyYXRlLmMKQEAgLTksNyArOSw3IEBACiAgKiBJV0FNT1RPIFRvc2hpaGlybyA8aXdhbW90b0B2YWxpbnV4LmNvLmpwPgogICogSGlyb2thenUgVGFrYWhhc2hpIDx0YWthQHZhbGludXguY28uanA+CiAgKiBEYXZlIEhhbnNlbiA8aGF2ZWJsdWVAdXMuaWJtLmNvbT4KLSAqIENocmlzdG9waCBMYW1ldGVyIDxjbGFtZXRlckBzZ2kuY29tPgorICogQ2hyaXN0b3BoIExhbWV0ZXIKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbWlncmF0ZS5oPgpkaWZmIC0tZ2l0IGEvbW0vbXByb3RlY3QuYyBiL21tL21wcm90ZWN0LmMKaW5kZXggYTViZjMxYy4uYWNmZTdjOCAxMDA2NDQKLS0tIGEvbW0vbXByb3RlY3QuYworKysgYi9tbS9tcHJvdGVjdC5jCkBAIC00NywxOSArNDcsMTcgQEAKIAkJaWYgKHB0ZV9wcmVzZW50KG9sZHB0ZSkpIHsKIAkJCXB0ZV90IHB0ZW50OwogCi0JCQkvKiBBdm9pZCBhbiBTTVAgcmFjZSB3aXRoIGhhcmR3YXJlIHVwZGF0ZWQgZGlydHkvY2xlYW4KLQkJCSAqIGJpdHMgYnkgd2lwaW5nIHRoZSBwdGUgYW5kIHRoZW4gc2V0dGluZyB0aGUgbmV3IHB0ZQotCQkJICogaW50byBwbGFjZS4KLQkJCSAqLwotCQkJcHRlbnQgPSBwdGVwX2dldF9hbmRfY2xlYXIobW0sIGFkZHIsIHB0ZSk7CisJCQlwdGVudCA9IHB0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQobW0sIGFkZHIsIHB0ZSk7CiAJCQlwdGVudCA9IHB0ZV9tb2RpZnkocHRlbnQsIG5ld3Byb3QpOworCiAJCQkvKgogCQkJICogQXZvaWQgdGFraW5nIHdyaXRlIGZhdWx0cyBmb3IgcGFnZXMgd2Uga25vdyB0byBiZQogCQkJICogZGlydHkuCiAJCQkgKi8KIAkJCWlmIChkaXJ0eV9hY2NvdW50YWJsZSAmJiBwdGVfZGlydHkocHRlbnQpKQogCQkJCXB0ZW50ID0gcHRlX21rd3JpdGUocHRlbnQpOwotCQkJc2V0X3B0ZV9hdChtbSwgYWRkciwgcHRlLCBwdGVudCk7CisKKwkJCXB0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0KG1tLCBhZGRyLCBwdGUsIHB0ZW50KTsKICNpZmRlZiBDT05GSUdfTUlHUkFUSU9OCiAJCX0gZWxzZSBpZiAoIXB0ZV9maWxlKG9sZHB0ZSkpIHsKIAkJCXN3cF9lbnRyeV90IGVudHJ5ID0gcHRlX3RvX3N3cF9lbnRyeShvbGRwdGUpOwpkaWZmIC0tZ2l0IGEvbW0vcGFnZS13cml0ZWJhY2suYyBiL21tL3BhZ2Utd3JpdGViYWNrLmMKaW5kZXggNzg5YjZhZC4uOTRjNmQ4OSAxMDA2NDQKLS0tIGEvbW0vcGFnZS13cml0ZWJhY2suYworKysgYi9tbS9wYWdlLXdyaXRlYmFjay5jCkBAIC0xMjYsOCArMTI2LDYgQEAKIHN0YXRpYyBzdHJ1Y3QgcHJvcF9kZXNjcmlwdG9yIHZtX2NvbXBsZXRpb25zOwogc3RhdGljIHN0cnVjdCBwcm9wX2Rlc2NyaXB0b3Igdm1fZGlydGllczsKIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgZGV0ZXJtaW5lX2RpcnR5YWJsZV9tZW1vcnkodm9pZCk7Ci0KIC8qCiAgKiBjb3VwbGUgdGhlIHBlcmlvZCB0byB0aGUgZGlydHlfcmF0aW86CiAgKgpAQCAtMzQ3LDcgKzM0NSwxMyBAQAogI2VuZGlmCiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGRldGVybWluZV9kaXJ0eWFibGVfbWVtb3J5KHZvaWQpCisvKioKKyAqIGRldGVybWluZV9kaXJ0eWFibGVfbWVtb3J5IC0gYW1vdW50IG9mIG1lbW9yeSB0aGF0IG1heSBiZSB1c2VkCisgKgorICogUmV0dXJucyB0aGUgbnVtZWJyIG9mIHBhZ2VzIHRoYXQgY2FuIGN1cnJlbnRseSBiZSBmcmVlZCBhbmQgdXNlZAorICogYnkgdGhlIGtlcm5lbCBmb3IgZGlyZWN0IG1hcHBpbmdzLgorICovCit1bnNpZ25lZCBsb25nIGRldGVybWluZV9kaXJ0eWFibGVfbWVtb3J5KHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB4OwogCkBAIC05NTYsNiArOTYwLDkgQEAKIAl9CiAJaWYgKHdiYy0+cmFuZ2VfY3ljbGljIHx8IChyYW5nZV93aG9sZSAmJiB3YmMtPm5yX3RvX3dyaXRlID4gMCkpCiAJCW1hcHBpbmctPndyaXRlYmFja19pbmRleCA9IGluZGV4OworCisJaWYgKHdiYy0+cmFuZ2VfY29udCkKKwkJd2JjLT5yYW5nZV9zdGFydCA9IGluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQ7CiAJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1CT0wod3JpdGVfY2FjaGVfcGFnZXMpOwpkaWZmIC0tZ2l0IGEvbW0vcGFnZV9hbGxvYy5jIGIvbW0vcGFnZV9hbGxvYy5jCmluZGV4IDUzMjQyMzQuLjc5YWM0YWYgMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfYWxsb2MuYworKysgYi9tbS9wYWdlX2FsbG9jLmMKQEAgLTIzMjgsNyArMjMyOCw2IEBACiBzdGF0aWMgdm9pZCBidWlsZF96b25lbGlzdF9jYWNoZShwZ19kYXRhX3QgKnBnZGF0KQogewogCXBnZGF0LT5ub2RlX3pvbmVsaXN0c1swXS56bGNhY2hlX3B0ciA9IE5VTEw7Ci0JcGdkYXQtPm5vZGVfem9uZWxpc3RzWzFdLnpsY2FjaGVfcHRyID0gTlVMTDsKIH0KIAogI2VuZGlmCS8qIENPTkZJR19OVU1BICovCkBAIC0yOTMwLDYgKzI5MjksMTggQEAKIAl9CiB9CiAKK3ZvaWQgX19pbml0IHdvcmtfd2l0aF9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLCB3b3JrX2ZuX3Qgd29ya19mbiwgdm9pZCAqZGF0YSkKK3sKKwlpbnQgaTsKKwlpbnQgcmV0OworCisJZm9yX2VhY2hfYWN0aXZlX3JhbmdlX2luZGV4X2luX25pZChpLCBuaWQpIHsKKwkJcmV0ID0gd29ya19mbihlYXJseV9ub2RlX21hcFtpXS5zdGFydF9wZm4sCisJCQkgICAgICBlYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuLCBkYXRhKTsKKwkJaWYgKHJldCkKKwkJCWJyZWFrOworCX0KK30KIC8qKgogICogc3BhcnNlX21lbW9yeV9wcmVzZW50X3dpdGhfYWN0aXZlX3JlZ2lvbnMgLSBDYWxsIG1lbW9yeV9wcmVzZW50IGZvciBlYWNoIGFjdGl2ZSByYW5nZQogICogQG5pZDogVGhlIG5vZGUgdG8gY2FsbCBtZW1vcnlfcHJlc2VudCBmb3IuIElmIE1BWF9OVU1OT0RFUywgYWxsIG5vZGVzIHdpbGwgYmUgdXNlZC4KQEAgLTM0NjIsNiArMzQ3MywxMSBAQAogCWNhbGN1bGF0ZV9ub2RlX3RvdGFscGFnZXMocGdkYXQsIHpvbmVzX3NpemUsIHpob2xlc19zaXplKTsKIAogCWFsbG9jX25vZGVfbWVtX21hcChwZ2RhdCk7CisjaWZkZWYgQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQCisJcHJpbnRrKEtFUk5fREVCVUcgImZyZWVfYXJlYV9pbml0X25vZGU6IG5vZGUgJWQsIHBnZGF0ICUwOGx4LCBub2RlX21lbV9tYXAgJTA4bHhcbiIsCisJCW5pZCwgKHVuc2lnbmVkIGxvbmcpcGdkYXQsCisJCSh1bnNpZ25lZCBsb25nKXBnZGF0LT5ub2RlX21lbV9tYXApOworI2VuZGlmCiAKIAlmcmVlX2FyZWFfaW5pdF9jb3JlKHBnZGF0LCB6b25lc19zaXplLCB6aG9sZXNfc2l6ZSk7CiB9CkBAIC0zNTA0LDcgKzM1MjAsNyBAQAogewogCWludCBpOwogCi0JcHJpbnRrKEtFUk5fREVCVUcgIkVudGVyaW5nIGFkZF9hY3RpdmVfcmFuZ2UoJWQsICVsdSwgJWx1KSAiCisJcHJpbnRrKEtFUk5fREVCVUcgIkVudGVyaW5nIGFkZF9hY3RpdmVfcmFuZ2UoJWQsICUjbHgsICUjbHgpICIKIAkJCSAgIiVkIGVudHJpZXMgb2YgJWQgdXNlZFxuIiwKIAkJCSAgbmlkLCBzdGFydF9wZm4sIGVuZF9wZm4sCiAJCQkgIG5yX25vZGVtYXBfZW50cmllcywgTUFYX0FDVElWRV9SRUdJT05TKTsKQEAgLTM1NDgsMjcgKzM1NjQsNjggQEAKIH0KIAogLyoqCi0gKiBzaHJpbmtfYWN0aXZlX3JhbmdlIC0gU2hyaW5rIGFuIGV4aXN0aW5nIHJlZ2lzdGVyZWQgcmFuZ2Ugb2YgUEZOcworICogcmVtb3ZlX2FjdGl2ZV9yYW5nZSAtIFNocmluayBhbiBleGlzdGluZyByZWdpc3RlcmVkIHJhbmdlIG9mIFBGTnMKICAqIEBuaWQ6IFRoZSBub2RlIGlkIHRoZSByYW5nZSBpcyBvbiB0aGF0IHNob3VsZCBiZSBzaHJ1bmsKLSAqIEBvbGRfZW5kX3BmbjogVGhlIG9sZCBlbmQgUEZOIG9mIHRoZSByYW5nZQotICogQG5ld19lbmRfcGZuOiBUaGUgbmV3IFBGTiBvZiB0aGUgcmFuZ2UKKyAqIEBzdGFydF9wZm46IFRoZSBuZXcgUEZOIG9mIHRoZSByYW5nZQorICogQGVuZF9wZm46IFRoZSBuZXcgUEZOIG9mIHRoZSByYW5nZQogICoKICAqIGkzODYgd2l0aCBOVU1BIHVzZSBhbGxvY19yZW1hcCgpIHRvIHN0b3JlIGEgbm9kZV9tZW1fbWFwIG9uIGEgbG9jYWwgbm9kZS4KLSAqIFRoZSBtYXAgaXMga2VwdCBhdCB0aGUgZW5kIHBoeXNpY2FsIHBhZ2UgcmFuZ2UgdGhhdCBoYXMgYWxyZWFkeSBiZWVuCi0gKiByZWdpc3RlcmVkIHdpdGggYWRkX2FjdGl2ZV9yYW5nZSgpLiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBhbiBhcmNoIHRvIHNocmluawotICogYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZCByYW5nZS4KKyAqIFRoZSBtYXAgaXMga2VwdCBuZWFyIHRoZSBlbmQgcGh5c2ljYWwgcGFnZSByYW5nZSB0aGF0IGhhcyBhbHJlYWR5IGJlZW4KKyAqIHJlZ2lzdGVyZWQuIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGFuIGFyY2ggdG8gc2hyaW5rIGFuIGV4aXN0aW5nIHJlZ2lzdGVyZWQKKyAqIHJhbmdlLgogICovCi12b2lkIF9faW5pdCBzaHJpbmtfYWN0aXZlX3JhbmdlKHVuc2lnbmVkIGludCBuaWQsIHVuc2lnbmVkIGxvbmcgb2xkX2VuZF9wZm4sCi0JCQkJCQl1bnNpZ25lZCBsb25nIG5ld19lbmRfcGZuKQordm9pZCBfX2luaXQgcmVtb3ZlX2FjdGl2ZV9yYW5nZSh1bnNpZ25lZCBpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQl1bnNpZ25lZCBsb25nIGVuZF9wZm4pCiB7Ci0JaW50IGk7CisJaW50IGksIGo7CisJaW50IHJlbW92ZWQgPSAwOworCisJcHJpbnRrKEtFUk5fREVCVUcgInJlbW92ZV9hY3RpdmVfcmFuZ2UgKCVkLCAlbHUsICVsdSlcbiIsCisJCQkgIG5pZCwgc3RhcnRfcGZuLCBlbmRfcGZuKTsKIAogCS8qIEZpbmQgdGhlIG9sZCBhY3RpdmUgcmVnaW9uIGVuZCBhbmQgc2hyaW5rICovCi0JZm9yX2VhY2hfYWN0aXZlX3JhbmdlX2luZGV4X2luX25pZChpLCBuaWQpCi0JCWlmIChlYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuID09IG9sZF9lbmRfcGZuKSB7Ci0JCQllYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuID0gbmV3X2VuZF9wZm47Ci0JCQlicmVhazsKKwlmb3JfZWFjaF9hY3RpdmVfcmFuZ2VfaW5kZXhfaW5fbmlkKGksIG5pZCkgeworCQlpZiAoZWFybHlfbm9kZV9tYXBbaV0uc3RhcnRfcGZuID49IHN0YXJ0X3BmbiAmJgorCQkgICAgZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbiA8PSBlbmRfcGZuKSB7CisJCQkvKiBjbGVhciBpdCAqLworCQkJZWFybHlfbm9kZV9tYXBbaV0uc3RhcnRfcGZuID0gMDsKKwkJCWVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4gPSAwOworCQkJcmVtb3ZlZCA9IDE7CisJCQljb250aW51ZTsKIAkJfQorCQlpZiAoZWFybHlfbm9kZV9tYXBbaV0uc3RhcnRfcGZuIDwgc3RhcnRfcGZuICYmCisJCSAgICBlYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuID4gc3RhcnRfcGZuKSB7CisJCQl1bnNpZ25lZCBsb25nIHRlbXBfZW5kX3BmbiA9IGVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm47CisJCQllYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuID0gc3RhcnRfcGZuOworCQkJaWYgKHRlbXBfZW5kX3BmbiA+IGVuZF9wZm4pCisJCQkJYWRkX2FjdGl2ZV9yYW5nZShuaWQsIGVuZF9wZm4sIHRlbXBfZW5kX3Bmbik7CisJCQljb250aW51ZTsKKwkJfQorCQlpZiAoZWFybHlfbm9kZV9tYXBbaV0uc3RhcnRfcGZuID49IHN0YXJ0X3BmbiAmJgorCQkgICAgZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbiA+IGVuZF9wZm4gJiYKKwkJICAgIGVhcmx5X25vZGVfbWFwW2ldLnN0YXJ0X3BmbiA8IGVuZF9wZm4pIHsKKwkJCWVhcmx5X25vZGVfbWFwW2ldLnN0YXJ0X3BmbiA9IGVuZF9wZm47CisJCQljb250aW51ZTsKKwkJfQorCX0KKworCWlmICghcmVtb3ZlZCkKKwkJcmV0dXJuOworCisJLyogcmVtb3ZlIHRoZSBibGFuayBvbmVzICovCisJZm9yIChpID0gbnJfbm9kZW1hcF9lbnRyaWVzIC0gMTsgaSA+IDA7IGktLSkgeworCQlpZiAoZWFybHlfbm9kZV9tYXBbaV0ubmlkICE9IG5pZCkKKwkJCWNvbnRpbnVlOworCQlpZiAoZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbikKKwkJCWNvbnRpbnVlOworCQkvKiB3ZSBmb3VuZCBpdCwgZ2V0IHJpZCBvZiBpdCAqLworCQlmb3IgKGogPSBpOyBqIDwgbnJfbm9kZW1hcF9lbnRyaWVzIC0gMTsgaisrKQorCQkJbWVtY3B5KCZlYXJseV9ub2RlX21hcFtqXSwgJmVhcmx5X25vZGVfbWFwW2orMV0sCisJCQkJc2l6ZW9mKGVhcmx5X25vZGVfbWFwW2pdKSk7CisJCWogPSBucl9ub2RlbWFwX2VudHJpZXMgLSAxOworCQltZW1zZXQoJmVhcmx5X25vZGVfbWFwW2pdLCAwLCBzaXplb2YoZWFybHlfbm9kZV9tYXBbal0pKTsKKwkJbnJfbm9kZW1hcF9lbnRyaWVzLS07CisJfQogfQogCiAvKioKQEAgLTM2MTIsNyArMzY2OSw3IEBACiB9CiAKIC8qIEZpbmQgdGhlIGxvd2VzdCBwZm4gZm9yIGEgbm9kZSAqLwotdW5zaWduZWQgbG9uZyBfX2luaXQgZmluZF9taW5fcGZuX2Zvcl9ub2RlKHVuc2lnbmVkIGxvbmcgbmlkKQordW5zaWduZWQgbG9uZyBfX2luaXQgZmluZF9taW5fcGZuX2Zvcl9ub2RlKGludCBuaWQpCiB7CiAJaW50IGk7CiAJdW5zaWduZWQgbG9uZyBtaW5fcGZuID0gVUxPTkdfTUFYOwpAQCAtMzYyMyw3ICszNjgwLDcgQEAKIAogCWlmIChtaW5fcGZuID09IFVMT05HX01BWCkgewogCQlwcmludGsoS0VSTl9XQVJOSU5HCi0JCQkiQ291bGQgbm90IGZpbmQgc3RhcnRfcGZuIGZvciBub2RlICVsdVxuIiwgbmlkKTsKKwkJCSJDb3VsZCBub3QgZmluZCBzdGFydF9wZm4gZm9yIG5vZGUgJWRcbiIsIG5pZCk7CiAJCXJldHVybiAwOwogCX0KIApAQCAtMzg3OSw3ICszOTM2LDcgQEAKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX05SX1pPTkVTOyBpKyspIHsKIAkJaWYgKGkgPT0gWk9ORV9NT1ZBQkxFKQogCQkJY29udGludWU7Ci0JCXByaW50aygiICAlLThzICU4bHUgLT4gJThsdVxuIiwKKwkJcHJpbnRrKCIgICUtOHMgJTAjMTBseCAtPiAlMCMxMGx4XG4iLAogCQkJCXpvbmVfbmFtZXNbaV0sCiAJCQkJYXJjaF96b25lX2xvd2VzdF9wb3NzaWJsZV9wZm5baV0sCiAJCQkJYXJjaF96b25lX2hpZ2hlc3RfcG9zc2libGVfcGZuW2ldKTsKQEAgLTM4OTUsNyArMzk1Miw3IEBACiAJLyogUHJpbnQgb3V0IHRoZSBlYXJseV9ub2RlX21hcFtdICovCiAJcHJpbnRrKCJlYXJseV9ub2RlX21hcFslZF0gYWN0aXZlIFBGTiByYW5nZXNcbiIsIG5yX25vZGVtYXBfZW50cmllcyk7CiAJZm9yIChpID0gMDsgaSA8IG5yX25vZGVtYXBfZW50cmllczsgaSsrKQotCQlwcmludGsoIiAgJTNkOiAlOGx1IC0+ICU4bHVcbiIsIGVhcmx5X25vZGVfbWFwW2ldLm5pZCwKKwkJcHJpbnRrKCIgICUzZDogJTAjMTBseCAtPiAlMCMxMGx4XG4iLCBlYXJseV9ub2RlX21hcFtpXS5uaWQsCiAJCQkJCQllYXJseV9ub2RlX21hcFtpXS5zdGFydF9wZm4sCiAJCQkJCQllYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuKTsKIApkaWZmIC0tZ2l0IGEvbW0vc2xhYi5jIGIvbW0vc2xhYi5jCmluZGV4IDA3NzJhYmIuLjA1MmU3ZDY0IDEwMDY0NAotLS0gYS9tbS9zbGFiLmMKKysrIGIvbW0vc2xhYi5jCkBAIC0xOTAxLDE1ICsxOTAxLDcgQEAKICNlbmRpZgogCiAjaWYgREVCVUcKLS8qKgotICogc2xhYl9kZXN0cm95X29ianMgLSBkZXN0cm95IGEgc2xhYiBhbmQgaXRzIG9iamVjdHMKLSAqIEBjYWNoZXA6IGNhY2hlIHBvaW50ZXIgYmVpbmcgZGVzdHJveWVkCi0gKiBAc2xhYnA6IHNsYWIgcG9pbnRlciBiZWluZyBkZXN0cm95ZWQKLSAqCi0gKiBDYWxsIHRoZSByZWdpc3RlcmVkIGRlc3RydWN0b3IgZm9yIGVhY2ggb2JqZWN0IGluIGEgc2xhYiB0aGF0IGlzIGJlaW5nCi0gKiBkZXN0cm95ZWQuCi0gKi8KLXN0YXRpYyB2b2lkIHNsYWJfZGVzdHJveV9vYmpzKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZXAsIHN0cnVjdCBzbGFiICpzbGFicCkKK3N0YXRpYyB2b2lkIHNsYWJfZGVzdHJveV9kZWJ1Z2NoZWNrKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZXAsIHN0cnVjdCBzbGFiICpzbGFicCkKIHsKIAlpbnQgaTsKIAlmb3IgKGkgPSAwOyBpIDwgY2FjaGVwLT5udW07IGkrKykgewpAQCAtMTkzOCw3ICsxOTMwLDcgQEAKIAl9CiB9CiAjZWxzZQotc3RhdGljIHZvaWQgc2xhYl9kZXN0cm95X29ianMoc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlcCwgc3RydWN0IHNsYWIgKnNsYWJwKQorc3RhdGljIHZvaWQgc2xhYl9kZXN0cm95X2RlYnVnY2hlY2soc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlcCwgc3RydWN0IHNsYWIgKnNsYWJwKQogewogfQogI2VuZGlmCkBAIC0xOTU2LDcgKzE5NDgsNyBAQAogewogCXZvaWQgKmFkZHIgPSBzbGFicC0+c19tZW0gLSBzbGFicC0+Y29sb3Vyb2ZmOwogCi0Jc2xhYl9kZXN0cm95X29ianMoY2FjaGVwLCBzbGFicCk7CisJc2xhYl9kZXN0cm95X2RlYnVnY2hlY2soY2FjaGVwLCBzbGFicCk7CiAJaWYgKHVubGlrZWx5KGNhY2hlcC0+ZmxhZ3MgJiBTTEFCX0RFU1RST1lfQllfUkNVKSkgewogCQlzdHJ1Y3Qgc2xhYl9yY3UgKnNsYWJfcmN1OwogCmRpZmYgLS1naXQgYS9tbS9zbHViLmMgYi9tbS9zbHViLmMKaW5kZXggNDQ3MTVlYi4uMzVhYjM4YSAxMDA2NDQKLS0tIGEvbW0vc2x1Yi5jCisrKyBiL21tL3NsdWIuYwpAQCAtNSw3ICs1LDcgQEAKICAqIFRoZSBhbGxvY2F0b3Igc3luY2hyb25pemVzIHVzaW5nIHBlciBzbGFiIGxvY2tzIGFuZCBvbmx5CiAgKiB1c2VzIGEgY2VudHJhbGl6ZWQgbG9jayB0byBtYW5hZ2UgYSBwb29sIG9mIHBhcnRpYWwgc2xhYnMuCiAgKgotICogKEMpIDIwMDcgU0dJLCBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4KKyAqIChDKSAyMDA3IFNHSSwgQ2hyaXN0b3BoIExhbWV0ZXIKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW0uaD4KQEAgLTQxMSw3ICs0MTEsNyBAQAogCWlmIChhZGRyKSB7CiAJCXAtPmFkZHIgPSBhZGRyOwogCQlwLT5jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JCXAtPnBpZCA9IGN1cnJlbnQgPyBjdXJyZW50LT5waWQgOiAtMTsKKwkJcC0+cGlkID0gY3VycmVudC0+cGlkOwogCQlwLT53aGVuID0gamlmZmllczsKIAl9IGVsc2UKIAkJbWVtc2V0KHAsIDAsIHNpemVvZihzdHJ1Y3QgdHJhY2spKTsKQEAgLTQzMSw5ICs0MzEsOCBAQAogCWlmICghdC0+YWRkcikKIAkJcmV0dXJuOwogCi0JcHJpbnRrKEtFUk5fRVJSICJJTkZPOiAlcyBpbiAiLCBzKTsKLQlfX3ByaW50X3N5bWJvbCgiJXMiLCAodW5zaWduZWQgbG9uZyl0LT5hZGRyKTsKLQlwcmludGsoIiBhZ2U9JWx1IGNwdT0ldSBwaWQ9JWRcbiIsIGppZmZpZXMgLSB0LT53aGVuLCB0LT5jcHUsIHQtPnBpZCk7CisJcHJpbnRrKEtFUk5fRVJSICJJTkZPOiAlcyBpbiAlcFMgYWdlPSVsdSBjcHU9JXUgcGlkPSVkXG4iLAorCQlzLCB0LT5hZGRyLCBqaWZmaWVzIC0gdC0+d2hlbiwgdC0+Y3B1LCB0LT5waWQpOwogfQogCiBzdGF0aWMgdm9pZCBwcmludF90cmFja2luZyhzdHJ1Y3Qga21lbV9jYWNoZSAqcywgdm9pZCAqb2JqZWN0KQpAQCAtMTYyOCw5ICsxNjI3LDExIEBACiAJdm9pZCAqKm9iamVjdDsKIAlzdHJ1Y3Qga21lbV9jYWNoZV9jcHUgKmM7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBpbnQgb2Jqc2l6ZTsKIAogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAljID0gZ2V0X2NwdV9zbGFiKHMsIHNtcF9wcm9jZXNzb3JfaWQoKSk7CisJb2Jqc2l6ZSA9IGMtPm9ianNpemU7CiAJaWYgKHVubGlrZWx5KCFjLT5mcmVlbGlzdCB8fCAhbm9kZV9tYXRjaChjLCBub2RlKSkpCiAKIAkJb2JqZWN0ID0gX19zbGFiX2FsbG9jKHMsIGdmcGZsYWdzLCBub2RlLCBhZGRyLCBjKTsKQEAgLTE2NDMsNyArMTY0NCw3IEBACiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCiAJaWYgKHVubGlrZWx5KChnZnBmbGFncyAmIF9fR0ZQX1pFUk8pICYmIG9iamVjdCkpCi0JCW1lbXNldChvYmplY3QsIDAsIGMtPm9ianNpemUpOworCQltZW1zZXQob2JqZWN0LCAwLCBvYmpzaXplKTsKIAogCXJldHVybiBvYmplY3Q7CiB9CkBAIC0yNzY1LDYgKzI3NjYsNyBAQAogCiAJcGFnZSA9IHZpcnRfdG9faGVhZF9wYWdlKHgpOwogCWlmICh1bmxpa2VseSghUGFnZVNsYWIocGFnZSkpKSB7CisJCUJVR19PTighUGFnZUNvbXBvdW5kKHBhZ2UpKTsKIAkJcHV0X3BhZ2UocGFnZSk7CiAJCXJldHVybjsKIAl9CkBAIC0yOTk1LDggKzI5OTcsNiBAQAogCQljcmVhdGVfa21hbGxvY19jYWNoZSgma21hbGxvY19jYWNoZXNbMV0sCiAJCQkJImttYWxsb2MtOTYiLCA5NiwgR0ZQX0tFUk5FTCk7CiAJCWNhY2hlcysrOwotCX0KLQlpZiAoS01BTExPQ19NSU5fU0laRSA8PSAxMjgpIHsKIAkJY3JlYXRlX2ttYWxsb2NfY2FjaGUoJmttYWxsb2NfY2FjaGVzWzJdLAogCQkJCSJrbWFsbG9jLTE5MiIsIDE5MiwgR0ZQX0tFUk5FTCk7CiAJCWNhY2hlcysrOwpAQCAtMzAyNiw2ICszMDI2LDE2IEBACiAJZm9yIChpID0gODsgaSA8IEtNQUxMT0NfTUlOX1NJWkU7IGkgKz0gOCkKIAkJc2l6ZV9pbmRleFsoaSAtIDEpIC8gOF0gPSBLTUFMTE9DX1NISUZUX0xPVzsKIAorCWlmIChLTUFMTE9DX01JTl9TSVpFID09IDEyOCkgeworCQkvKgorCQkgKiBUaGUgMTkyIGJ5dGUgc2l6ZWQgY2FjaGUgaXMgbm90IHVzZWQgaWYgdGhlIGFsaWdubWVudAorCQkgKiBpcyAxMjggYnl0ZS4gUmVkaXJlY3Qga21hbGxvYyB0byB1c2UgdGhlIDI1NiBieXRlIGNhY2hlCisJCSAqIGluc3RlYWQuCisJCSAqLworCQlmb3IgKGkgPSAxMjggKyA4OyBpIDw9IDE5MjsgaSArPSA4KQorCQkJc2l6ZV9pbmRleFsoaSAtIDEpIC8gOF0gPSA4OworCX0KKwogCXNsYWJfc3RhdGUgPSBVUDsKIAogCS8qIFByb3ZpZGUgdGhlIGNvcnJlY3Qga21hbGxvYyBuYW1lcyBub3cgdGhhdCB0aGUgY2FjaGVzIGFyZSB1cCAqLwpkaWZmIC0tZ2l0IGEvbW0vc3BhcnNlLXZtZW1tYXAuYyBiL21tL3NwYXJzZS12bWVtbWFwLmMKaW5kZXggOTljNGYzNi4uYTkxYjVmOCAxMDA2NDQKLS0tIGEvbW0vc3BhcnNlLXZtZW1tYXAuYworKysgYi9tbS9zcGFyc2Utdm1lbW1hcC5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIFZpcnR1YWwgTWVtb3J5IE1hcCBzdXBwb3J0CiAgKgotICogKEMpIDIwMDcgc2dpLiBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4uCisgKiAoQykgMjAwNyBzZ2kuIENocmlzdG9waCBMYW1ldGVyLgogICoKICAqIFZpcnR1YWwgbWVtb3J5IG1hcHMgYWxsb3cgVk0gcHJpbWl0aXZlcyBwZm5fdG9fcGFnZSwgcGFnZV90b19wZm4sCiAgKiB2aXJ0X3RvX3BhZ2UsIHBhZ2VfYWRkcmVzcygpIHRvIGJlIGltcGxlbWVudGVkIGFzIGEgYmFzZSBvZmZzZXQKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfaWYuYyBiL25ldC9icmlkZ2UvYnJfaWYuYwppbmRleCBjMjM5N2Y1Li5mMzhjYzUzIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2lmLmMKKysrIGIvbmV0L2JyaWRnZS9icl9pZi5jCkBAIC00NDIsMTIgKzQ0MiwxNiBAQAogCiB2b2lkIF9fZXhpdCBicl9jbGVhbnVwX2JyaWRnZXModm9pZCkKIHsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCAqbnh0OworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CiAKIAlydG5sX2xvY2soKTsKLQlmb3JfZWFjaF9uZXRkZXZfc2FmZSgmaW5pdF9uZXQsIGRldiwgbnh0KQotCQlpZiAoZGV2LT5wcml2X2ZsYWdzICYgSUZGX0VCUklER0UpCityZXN0YXJ0OgorCWZvcl9lYWNoX25ldGRldigmaW5pdF9uZXQsIGRldikgeworCQlpZiAoZGV2LT5wcml2X2ZsYWdzICYgSUZGX0VCUklER0UpIHsKIAkJCWRlbF9icihkZXYtPnByaXYpOworCQkJZ290byByZXN0YXJ0OworCQl9CisJfQogCXJ0bmxfdW5sb2NrKCk7CiAKIH0KZGlmZiAtLWdpdCBhL25ldC9jYW4vYWZfY2FuLmMgYi9uZXQvY2FuL2FmX2Nhbi5jCmluZGV4IDdlOGNhMjguLjQ4NGJiZjYgMTAwNjQ0Ci0tLSBhL25ldC9jYW4vYWZfY2FuLmMKKysrIGIvbmV0L2Nhbi9hZl9jYW4uYwpAQCAtMjA1LDEyICsyMDUsMTkgQEAKICAqICAtRU5PQlVGUyBvbiBmdWxsIGRyaXZlciBxdWV1ZSAoc2VlIG5ldF94bWl0X2Vycm5vKCkpCiAgKiAgLUVOT01FTSB3aGVuIGxvY2FsIGxvb3BiYWNrIGZhaWxlZCBhdCBjYWxsaW5nIHNrYl9jbG9uZSgpCiAgKiAgLUVQRVJNIHdoZW4gdHJ5aW5nIHRvIHNlbmQgb24gYSBub24tQ0FOIGludGVyZmFjZQorICogIC1FSU5WQUwgd2hlbiB0aGUgc2tiLT5kYXRhIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCBDQU4gZnJhbWUKICAqLwogaW50IGNhbl9zZW5kKHN0cnVjdCBza19idWZmICpza2IsIGludCBsb29wKQogewogCXN0cnVjdCBza19idWZmICpuZXdza2IgPSBOVUxMOworCXN0cnVjdCBjYW5fZnJhbWUgKmNmID0gKHN0cnVjdCBjYW5fZnJhbWUgKilza2ItPmRhdGE7CiAJaW50IGVycjsKIAorCWlmIChza2ItPmxlbiAhPSBzaXplb2Yoc3RydWN0IGNhbl9mcmFtZSkgfHwgY2YtPmNhbl9kbGMgPiA4KSB7CisJCWtmcmVlX3NrYihza2IpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlpZiAoc2tiLT5kZXYtPnR5cGUgIT0gQVJQSFJEX0NBTikgewogCQlrZnJlZV9za2Ioc2tiKTsKIAkJcmV0dXJuIC1FUEVSTTsKQEAgLTYwNSw2ICs2MTIsNyBAQAogCQkgICBzdHJ1Y3QgcGFja2V0X3R5cGUgKnB0LCBzdHJ1Y3QgbmV0X2RldmljZSAqb3JpZ19kZXYpCiB7CiAJc3RydWN0IGRldl9yY3ZfbGlzdHMgKmQ7CisJc3RydWN0IGNhbl9mcmFtZSAqY2YgPSAoc3RydWN0IGNhbl9mcmFtZSAqKXNrYi0+ZGF0YTsKIAlpbnQgbWF0Y2hlczsKIAogCWlmIChkZXYtPnR5cGUgIT0gQVJQSFJEX0NBTiB8fCBkZXZfbmV0KGRldikgIT0gJmluaXRfbmV0KSB7CkBAIC02MTIsNiArNjIwLDggQEAKIAkJcmV0dXJuIDA7CiAJfQogCisJQlVHX09OKHNrYi0+bGVuICE9IHNpemVvZihzdHJ1Y3QgY2FuX2ZyYW1lKSB8fCBjZi0+Y2FuX2RsYyA+IDgpOworCiAJLyogdXBkYXRlIHN0YXRpc3RpY3MgKi8KIAljYW5fc3RhdHMucnhfZnJhbWVzKys7CiAJY2FuX3N0YXRzLnJ4X2ZyYW1lc19kZWx0YSsrOwpkaWZmIC0tZ2l0IGEvbmV0L2Nhbi9iY20uYyBiL25ldC9jYW4vYmNtLmMKaW5kZXggZDlhM2E5ZC4uNzJjMmNlOSAxMDA2NDQKLS0tIGEvbmV0L2Nhbi9iY20uYworKysgYi9uZXQvY2FuL2JjbS5jCkBAIC0yOTgsNyArMjk4LDcgQEAKIAogCWlmIChoZWFkLT5uZnJhbWVzKSB7CiAJCS8qIGNhbl9mcmFtZXMgc3RhcnRpbmcgaGVyZSAqLwotCQlmaXJzdGZyYW1lID0gKHN0cnVjdCBjYW5fZnJhbWUgKikgc2tiX3RhaWxfcG9pbnRlcihza2IpOworCQlmaXJzdGZyYW1lID0gKHN0cnVjdCBjYW5fZnJhbWUgKilza2JfdGFpbF9wb2ludGVyKHNrYik7CiAKIAkJbWVtY3B5KHNrYl9wdXQoc2tiLCBkYXRhbGVuKSwgZnJhbWVzLCBkYXRhbGVuKTsKIApAQCAtODI2LDYgKzgyNiwxMCBAQAogCQlmb3IgKGkgPSAwOyBpIDwgbXNnX2hlYWQtPm5mcmFtZXM7IGkrKykgewogCQkJZXJyID0gbWVtY3B5X2Zyb21pb3ZlYygodTggKikmb3AtPmZyYW1lc1tpXSwKIAkJCQkJICAgICAgIG1zZy0+bXNnX2lvdiwgQ0ZTSVopOworCisJCQlpZiAob3AtPmZyYW1lc1tpXS5jYW5fZGxjID4gOCkKKwkJCQllcnIgPSAtRUlOVkFMOworCiAJCQlpZiAoZXJyIDwgMCkKIAkJCQlyZXR1cm4gZXJyOwogCkBAIC04NTgsNiArODYyLDEwIEBACiAJCWZvciAoaSA9IDA7IGkgPCBtc2dfaGVhZC0+bmZyYW1lczsgaSsrKSB7CiAJCQllcnIgPSBtZW1jcHlfZnJvbWlvdmVjKCh1OCAqKSZvcC0+ZnJhbWVzW2ldLAogCQkJCQkgICAgICAgbXNnLT5tc2dfaW92LCBDRlNJWik7CisKKwkJCWlmIChvcC0+ZnJhbWVzW2ldLmNhbl9kbGMgPiA4KQorCQkJCWVyciA9IC1FSU5WQUw7CisKIAkJCWlmIChlcnIgPCAwKSB7CiAJCQkJaWYgKG9wLT5mcmFtZXMgIT0gJm9wLT5zZnJhbWUpCiAJCQkJCWtmcmVlKG9wLT5mcmFtZXMpOwpAQCAtMTE2NCw5ICsxMTcyLDEyIEBACiAKIAlza2ItPmRldiA9IGRldjsKIAlza2ItPnNrICA9IHNrOwotCWNhbl9zZW5kKHNrYiwgMSk7IC8qIHNlbmQgd2l0aCBsb29wYmFjayAqLworCWVyciA9IGNhbl9zZW5kKHNrYiwgMSk7IC8qIHNlbmQgd2l0aCBsb29wYmFjayAqLwogCWRldl9wdXQoZGV2KTsKIAorCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAlyZXR1cm4gQ0ZTSVogKyBNSFNJWjsKIH0KIApAQCAtMTE4NSw2ICsxMTk2LDEwIEBACiAJaWYgKCFiby0+Ym91bmQpCiAJCXJldHVybiAtRU5PVENPTk47CiAKKwkvKiBjaGVjayBmb3IgdmFsaWQgbWVzc2FnZSBsZW5ndGggZnJvbSB1c2Vyc3BhY2UgKi8KKwlpZiAoc2l6ZSA8IE1IU0laIHx8IChzaXplIC0gTUhTSVopICUgQ0ZTSVopCisJCXJldHVybiAtRUlOVkFMOworCiAJLyogY2hlY2sgZm9yIGFsdGVybmF0aXZlIGlmaW5kZXggZm9yIHRoaXMgYmNtX29wICovCiAKIAlpZiAoIWlmaW5kZXggJiYgbXNnLT5tc2dfbmFtZSkgewpAQCAtMTI1OSw4ICsxMjc0LDggQEAKIAkJYnJlYWs7CiAKIAljYXNlIFRYX1NFTkQ6Ci0JCS8qIHdlIG5lZWQgYXQgbGVhc3Qgb25lIGNhbl9mcmFtZSAqLwotCQlpZiAobXNnX2hlYWQubmZyYW1lcyA8IDEpCisJCS8qIHdlIG5lZWQgZXhhY3RseSBvbmUgY2FuX2ZyYW1lIGJlaGluZCB0aGUgbXNnIGhlYWQgKi8KKwkJaWYgKChtc2dfaGVhZC5uZnJhbWVzICE9IDEpIHx8IChzaXplICE9IENGU0laICsgTUhTSVopKQogCQkJcmV0ID0gLUVJTlZBTDsKIAkJZWxzZQogCQkJcmV0ID0gYmNtX3R4X3NlbmQobXNnLCBpZmluZGV4LCBzayk7CmRpZmYgLS1naXQgYS9uZXQvY2FuL3Jhdy5jIGIvbmV0L2Nhbi9yYXcuYwppbmRleCA2OTg3N2I4Li4zZTQ2ZWUzIDEwMDY0NAotLS0gYS9uZXQvY2FuL3Jhdy5jCisrKyBiL25ldC9jYW4vcmF3LmMKQEAgLTYzMiw2ICs2MzIsOSBAQAogCX0gZWxzZQogCQlpZmluZGV4ID0gcm8tPmlmaW5kZXg7CiAKKwlpZiAoc2l6ZSAhPSBzaXplb2Yoc3RydWN0IGNhbl9mcmFtZSkpCisJCXJldHVybiAtRUlOVkFMOworCiAJZGV2ID0gZGV2X2dldF9ieV9pbmRleCgmaW5pdF9uZXQsIGlmaW5kZXgpOwogCWlmICghZGV2KQogCQlyZXR1cm4gLUVOWElPOwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCBjNDIxYTFmLi44MjFjYjE2IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNDU0LDcgKzQ1NCw3IEBACiAJZm9yIChpID0gMDsgaSA8IE5FVERFVl9CT09UX1NFVFVQX01BWDsgaSsrKSB7CiAJCWlmIChzW2ldLm5hbWVbMF0gPT0gJ1wwJyB8fCBzW2ldLm5hbWVbMF0gPT0gJyAnKSB7CiAJCQltZW1zZXQoc1tpXS5uYW1lLCAwLCBzaXplb2Yoc1tpXS5uYW1lKSk7Ci0JCQlzdHJjcHkoc1tpXS5uYW1lLCBuYW1lKTsKKwkJCXN0cmxjcHkoc1tpXS5uYW1lLCBuYW1lLCBJRk5BTVNJWik7CiAJCQltZW1jcHkoJnNbaV0ubWFwLCBtYXAsIHNpemVvZihzW2ldLm1hcCkpOwogCQkJYnJlYWs7CiAJCX0KQEAgLTQ3OSw3ICs0NzksNyBAQAogCiAJZm9yIChpID0gMDsgaSA8IE5FVERFVl9CT09UX1NFVFVQX01BWDsgaSsrKSB7CiAJCWlmIChzW2ldLm5hbWVbMF0gIT0gJ1wwJyAmJiBzW2ldLm5hbWVbMF0gIT0gJyAnICYmCi0JCSAgICAhc3RybmNtcChkZXYtPm5hbWUsIHNbaV0ubmFtZSwgc3RybGVuKHNbaV0ubmFtZSkpKSB7CisJCSAgICAhc3RyY21wKGRldi0+bmFtZSwgc1tpXS5uYW1lKSkgewogCQkJZGV2LT5pcnEgCT0gc1tpXS5tYXAuaXJxOwogCQkJZGV2LT5iYXNlX2FkZHIgCT0gc1tpXS5tYXAuYmFzZV9hZGRyOwogCQkJZGV2LT5tZW1fc3RhcnQgCT0gc1tpXS5tYXAubWVtX3N0YXJ0OwpAQCAtMjk3Myw3ICsyOTczLDcgQEAKIC8qKgogICoJZGV2X3VuaWNhc3RfYWRkCQktIGFkZCBhIHNlY29uZGFyeSB1bmljYXN0IGFkZHJlc3MKICAqCUBkZXY6IGRldmljZQotICoJQGFkZHI6IGFkZHJlc3MgdG8gZGVsZXRlCisgKglAYWRkcjogYWRkcmVzcyB0byBhZGQKICAqCUBhbGVuOiBsZW5ndGggb2YgQGFkZHIKICAqCiAgKglBZGQgYSBzZWNvbmRhcnkgdW5pY2FzdCBhZGRyZXNzIHRvIHRoZSBkZXZpY2Ugb3IgaW5jcmVhc2UKQEAgLTQ1ODUsOCArNDU4NSw4IEBACiAKIAlkZXZfYm9vdF9waGFzZSA9IDA7CiAKLQlvcGVuX3NvZnRpcnEoTkVUX1RYX1NPRlRJUlEsIG5ldF90eF9hY3Rpb24sIE5VTEwpOwotCW9wZW5fc29mdGlycShORVRfUlhfU09GVElSUSwgbmV0X3J4X2FjdGlvbiwgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKE5FVF9UWF9TT0ZUSVJRLCBuZXRfdHhfYWN0aW9uKTsKKwlvcGVuX3NvZnRpcnEoTkVUX1JYX1NPRlRJUlEsIG5ldF9yeF9hY3Rpb24pOwogCiAJaG90Y3B1X25vdGlmaWVyKGRldl9jcHVfY2FsbGJhY2ssIDApOwogCWRzdF9pbml0KCk7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9maWJfcnVsZXMuYyBiL25ldC9jb3JlL2ZpYl9ydWxlcy5jCmluZGV4IGUzZTlhYjAuLjI3N2EyMzAgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2ZpYl9ydWxlcy5jCisrKyBiL25ldC9jb3JlL2ZpYl9ydWxlcy5jCkBAIC0yMjYsNyArMjI2LDcgQEAKIAogCW9wcyA9IGxvb2t1cF9ydWxlc19vcHMobmV0LCBmcmgtPmZhbWlseSk7CiAJaWYgKG9wcyA9PSBOVUxMKSB7Ci0JCWVyciA9IEVBRk5PU1VQUE9SVDsKKwkJZXJyID0gLUVBRk5PU1VQUE9SVDsKIAkJZ290byBlcnJvdXQ7CiAJfQogCkBAIC0zNjUsNyArMzY1LDcgQEAKIAogCW9wcyA9IGxvb2t1cF9ydWxlc19vcHMobmV0LCBmcmgtPmZhbWlseSk7CiAJaWYgKG9wcyA9PSBOVUxMKSB7Ci0JCWVyciA9IEVBRk5PU1VQUE9SVDsKKwkJZXJyID0gLUVBRk5PU1VQUE9SVDsKIAkJZ290byBlcnJvdXQ7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvY29yZS9maWx0ZXIuYyBiL25ldC9jb3JlL2ZpbHRlci5jCmluZGV4IDRmODM2OTcuLmRmMzc0NDMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2ZpbHRlci5jCisrKyBiL25ldC9jb3JlL2ZpbHRlci5jCkBAIC02OCw3ICs2OCw2IEBACiAgKglza19maWx0ZXIgLSBydW4gYSBwYWNrZXQgdGhyb3VnaCBhIHNvY2tldCBmaWx0ZXIKICAqCUBzazogc29jayBhc3NvY2lhdGVkIHdpdGggJnNrX2J1ZmYKICAqCUBza2I6IGJ1ZmZlciB0byBmaWx0ZXIKLSAqCUBuZWVkbG9jazogc2V0IHRvIDEgaWYgdGhlIHNvY2sgaXMgbm90IGxvY2tlZCBieSBjYWxsZXIuCiAgKgogICogUnVuIHRoZSBmaWx0ZXIgY29kZSBhbmQgdGhlbiBjdXQgc2tiLT5kYXRhIHRvIGNvcnJlY3Qgc2l6ZSByZXR1cm5lZCBieQogICogc2tfcnVuX2ZpbHRlci4gSWYgcGt0X2xlbiBpcyAwIHdlIHRvc3MgcGFja2V0LiBJZiBza2ItPmxlbiBpcyBzbWFsbGVyCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVmZi5jCmluZGV4IDFlNTU2ZDMuLjM2NjYyMTYgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NrYnVmZi5jCisrKyBiL25ldC9jb3JlL3NrYnVmZi5jCkBAIC0xMjkyLDEyICsxMjkyLDE0IEBACiB7CiAJdW5zaWduZWQgaW50IG5yX3BhZ2VzID0gc3BkLT5ucl9wYWdlczsKIAl1bnNpZ25lZCBpbnQgcG9mZiwgcGxlbiwgbGVuLCB0b2ZmLCB0bGVuOwotCWludCBoZWFkbGVuLCBzZWc7CisJaW50IGhlYWRsZW4sIHNlZywgZXJyb3IgPSAwOwogCiAJdG9mZiA9ICpvZmZzZXQ7CiAJdGxlbiA9ICp0b3RhbF9sZW47Ci0JaWYgKCF0bGVuKQorCWlmICghdGxlbikgeworCQllcnJvciA9IDE7CiAJCWdvdG8gZXJyOworCX0KIAogCS8qCiAJICogaWYgdGhlIG9mZnNldCBpcyBncmVhdGVyIHRoYW4gdGhlIGxpbmVhciBwYXJ0LCBnbyBkaXJlY3RseSB0bwpAQCAtMTMzOSw3ICsxMzQxLDggQEAKIAkJICoganVzdCBqdW1wIGRpcmVjdGx5IHRvIHVwZGF0ZSBhbmQgcmV0dXJuLCBubyBwb2ludAogCQkgKiBpbiBnb2luZyBvdmVyIGZyYWdtZW50cyB3aGVuIHRoZSBvdXRwdXQgaXMgZnVsbC4KIAkJICovCi0JCWlmIChzcGRfZmlsbF9wYWdlKHNwZCwgdmlydF90b19wYWdlKHApLCBwbGVuLCBwb2ZmLCBza2IpKQorCQllcnJvciA9IHNwZF9maWxsX3BhZ2Uoc3BkLCB2aXJ0X3RvX3BhZ2UocCksIHBsZW4sIHBvZmYsIHNrYik7CisJCWlmIChlcnJvcikKIAkJCWdvdG8gZG9uZTsKIAogCQl0bGVuIC09IHBsZW47CkBAIC0xMzY5LDcgKzEzNzIsOCBAQAogCQlpZiAoIXBsZW4pCiAJCQlicmVhazsKIAotCQlpZiAoc3BkX2ZpbGxfcGFnZShzcGQsIGYtPnBhZ2UsIHBsZW4sIHBvZmYsIHNrYikpCisJCWVycm9yID0gc3BkX2ZpbGxfcGFnZShzcGQsIGYtPnBhZ2UsIHBsZW4sIHBvZmYsIHNrYik7CisJCWlmIChlcnJvcikKIAkJCWJyZWFrOwogCiAJCXRsZW4gLT0gcGxlbjsKQEAgLTEzODIsNyArMTM4NiwxMCBAQAogCQlyZXR1cm4gMDsKIAl9CiBlcnI6Ci0JcmV0dXJuIDE7CisJLyogdXBkYXRlIHRoZSBvZmZzZXQgdG8gcmVmbGVjdCB0aGUgbGluZWFyIHBhcnQgc2tpcCwgaWYgYW55ICovCisJaWYgKCFlcnJvcikKKwkJKm9mZnNldCA9IHRvZmY7CisJcmV0dXJuIGVycm9yOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX3RyaWUuYyBiL25ldC9pcHY0L2ZpYl90cmllLmMKaW5kZXggNGIwMmQxNC4uZTE2MDBhZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX3RyaWUuYworKysgYi9uZXQvaXB2NC9maWJfdHJpZS5jCkBAIC0xMzU5LDE3ICsxMzU5LDE3IEBACiAJCQl0LT5zdGF0cy5zZW1hbnRpY19tYXRjaF9taXNzKys7CiAjZW5kaWYKIAkJaWYgKGVyciA8PSAwKQotCQkJcmV0dXJuIHBsZW47CisJCQlyZXR1cm4gZXJyOwogCX0KIAotCXJldHVybiAtMTsKKwlyZXR1cm4gMTsKIH0KIAogc3RhdGljIGludCBmbl90cmllX2xvb2t1cChzdHJ1Y3QgZmliX3RhYmxlICp0YiwgY29uc3Qgc3RydWN0IGZsb3dpICpmbHAsCiAJCQkgIHN0cnVjdCBmaWJfcmVzdWx0ICpyZXMpCiB7CiAJc3RydWN0IHRyaWUgKnQgPSAoc3RydWN0IHRyaWUgKikgdGItPnRiX2RhdGE7Ci0JaW50IHBsZW4sIHJldCA9IDA7CisJaW50IHJldDsKIAlzdHJ1Y3Qgbm9kZSAqbjsKIAlzdHJ1Y3QgdG5vZGUgKnBuOwogCWludCBwb3MsIGJpdHM7CkBAIC0xMzkzLDEwICsxMzkzLDcgQEAKIAogCS8qIEp1c3QgYSBsZWFmPyAqLwogCWlmIChJU19MRUFGKG4pKSB7Ci0JCXBsZW4gPSBjaGVja19sZWFmKHQsIChzdHJ1Y3QgbGVhZiAqKW4sIGtleSwgZmxwLCByZXMpOwotCQlpZiAocGxlbiA8IDApCi0JCQlnb3RvIGZhaWxlZDsKLQkJcmV0ID0gMDsKKwkJcmV0ID0gY2hlY2tfbGVhZih0LCAoc3RydWN0IGxlYWYgKiluLCBrZXksIGZscCwgcmVzKTsKIAkJZ290byBmb3VuZDsKIAl9CiAKQEAgLTE0MjEsMTEgKzE0MTgsOSBAQAogCQl9CiAKIAkJaWYgKElTX0xFQUYobikpIHsKLQkJCXBsZW4gPSBjaGVja19sZWFmKHQsIChzdHJ1Y3QgbGVhZiAqKW4sIGtleSwgZmxwLCByZXMpOwotCQkJaWYgKHBsZW4gPCAwKQorCQkJcmV0ID0gY2hlY2tfbGVhZih0LCAoc3RydWN0IGxlYWYgKiluLCBrZXksIGZscCwgcmVzKTsKKwkJCWlmIChyZXQgPiAwKQogCQkJCWdvdG8gYmFja3RyYWNlOwotCi0JCQlyZXQgPSAwOwogCQkJZ290byBmb3VuZDsKIAkJfQogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMgYi9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMKaW5kZXggNGVkNDI5Yi4uMDU0NmEwYiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jCisrKyBiL25ldC9pcHY0L2luZXRfZnJhZ21lbnQuYwpAQCAtMTkyLDE0ICsxOTIsMjEgQEAKIAogc3RhdGljIHN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKmluZXRfZnJhZ19pbnRlcm4oc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwKIAkJc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqcXBfaW4sIHN0cnVjdCBpbmV0X2ZyYWdzICpmLAotCQl1bnNpZ25lZCBpbnQgaGFzaCwgdm9pZCAqYXJnKQorCQl2b2lkICphcmcpCiB7CiAJc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqcXA7CiAjaWZkZWYgQ09ORklHX1NNUAogCXN0cnVjdCBobGlzdF9ub2RlICpuOwogI2VuZGlmCisJdW5zaWduZWQgaW50IGhhc2g7CiAKIAl3cml0ZV9sb2NrKCZmLT5sb2NrKTsKKwkvKgorCSAqIFdoaWxlIHdlIHN0YXllZCB3L28gdGhlIGxvY2sgb3RoZXIgQ1BVIGNvdWxkIHVwZGF0ZQorCSAqIHRoZSBybmQgc2VlZCwgc28gd2UgbmVlZCB0byByZS1jYWxjdWxhdGUgdGhlIGhhc2gKKwkgKiBjaGFpbi4gRm9ydHVuYXRlbGx5IHRoZSBxcF9pbiBjYW4gYmUgdXNlZCB0byBnZXQgb25lLgorCSAqLworCWhhc2ggPSBmLT5oYXNoZm4ocXBfaW4pOwogI2lmZGVmIENPTkZJR19TTVAKIAkvKiBXaXRoIFNNUCByYWNlIHdlIGhhdmUgdG8gcmVjaGVjayBoYXNoIHRhYmxlLCBiZWNhdXNlCiAJICogc3VjaCBlbnRyeSBjb3VsZCBiZSBjcmVhdGVkIG9uIG90aGVyIGNwdSwgd2hpbGUgd2UKQEAgLTI0Nyw3ICsyNTQsNyBAQAogfQogCiBzdGF0aWMgc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqaW5ldF9mcmFnX2NyZWF0ZShzdHJ1Y3QgbmV0bnNfZnJhZ3MgKm5mLAotCQlzdHJ1Y3QgaW5ldF9mcmFncyAqZiwgdm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgaGFzaCkKKwkJc3RydWN0IGluZXRfZnJhZ3MgKmYsIHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICpxOwogCkBAIC0yNTUsNyArMjYyLDcgQEAKIAlpZiAocSA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIAotCXJldHVybiBpbmV0X2ZyYWdfaW50ZXJuKG5mLCBxLCBmLCBoYXNoLCBhcmcpOworCXJldHVybiBpbmV0X2ZyYWdfaW50ZXJuKG5mLCBxLCBmLCBhcmcpOwogfQogCiBzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICppbmV0X2ZyYWdfZmluZChzdHJ1Y3QgbmV0bnNfZnJhZ3MgKm5mLApAQCAtMjY0LDcgKzI3MSw2IEBACiAJc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqcTsKIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAqbjsKIAotCXJlYWRfbG9jaygmZi0+bG9jayk7CiAJaGxpc3RfZm9yX2VhY2hfZW50cnkocSwgbiwgJmYtPmhhc2hbaGFzaF0sIGxpc3QpIHsKIAkJaWYgKHEtPm5ldCA9PSBuZiAmJiBmLT5tYXRjaChxLCBrZXkpKSB7CiAJCQlhdG9taWNfaW5jKCZxLT5yZWZjbnQpOwpAQCAtMjc0LDYgKzI4MCw2IEBACiAJfQogCXJlYWRfdW5sb2NrKCZmLT5sb2NrKTsKIAotCXJldHVybiBpbmV0X2ZyYWdfY3JlYXRlKG5mLCBmLCBrZXksIGhhc2gpOworCXJldHVybiBpbmV0X2ZyYWdfY3JlYXRlKG5mLCBmLCBrZXkpOwogfQogRVhQT1JUX1NZTUJPTChpbmV0X2ZyYWdfZmluZCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2xyby5jIGIvbmV0L2lwdjQvaW5ldF9scm8uYwppbmRleCA0YTRkNDlmLi5jZmQwMzRhIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pbmV0X2xyby5jCisrKyBiL25ldC9pcHY0L2luZXRfbHJvLmMKQEAgLTM4Myw4ICszODMsNyBAQAogb3V0MjogLyogc2VuZCBhZ2dyZWdhdGVkIFNLQnMgdG8gc3RhY2sgKi8KIAlscm9fZmx1c2gobHJvX21nciwgbHJvX2Rlc2MpOwogCi1vdXQ6ICAvKiBPcmlnaW5hbCBTS0IgaGFzIHRvIGJlIHBvc3RlZCB0byBzdGFjayAqLwotCXNrYi0+aXBfc3VtbWVkID0gbHJvX21nci0+aXBfc3VtbWVkOworb3V0OgogCXJldHVybiAxOwogfQogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9mcmFnbWVudC5jIGIvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYwppbmRleCBjZDZjZTZhLi4zNzIyMWY2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9mcmFnbWVudC5jCisrKyBiL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMKQEAgLTIyOSw2ICsyMjksOCBAQAogCiAJYXJnLmlwaCA9IGlwaDsKIAlhcmcudXNlciA9IHVzZXI7CisKKwlyZWFkX2xvY2soJmlwNF9mcmFncy5sb2NrKTsKIAloYXNoID0gaXBxaGFzaGZuKGlwaC0+aWQsIGlwaC0+c2FkZHIsIGlwaC0+ZGFkZHIsIGlwaC0+cHJvdG9jb2wpOwogCiAJcSA9IGluZXRfZnJhZ19maW5kKCZuZXQtPmlwdjQuZnJhZ3MsICZpcDRfZnJhZ3MsICZhcmcsIGhhc2gpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV0ZmlsdGVyL25mX25hdF9zbm1wX2Jhc2ljLmMgYi9uZXQvaXB2NC9uZXRmaWx0ZXIvbmZfbmF0X3NubXBfYmFzaWMuYwppbmRleCA3NzUwYzk3Li5mZmVhZmZjIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9uZXRmaWx0ZXIvbmZfbmF0X3NubXBfYmFzaWMuYworKysgYi9uZXQvaXB2NC9uZXRmaWx0ZXIvbmZfbmF0X3NubXBfYmFzaWMuYwpAQCAtNDM5LDggKzQzOSw4IEBACiAJCQkJICAgICB1bnNpZ25lZCBpbnQgKmxlbikKIHsKIAl1bnNpZ25lZCBsb25nIHN1YmlkOwotCXVuc2lnbmVkIGludCAgc2l6ZTsKIAl1bnNpZ25lZCBsb25nICpvcHRyOworCXNpemVfdCBzaXplOwogCiAJc2l6ZSA9IGVvYyAtIGN0eC0+cG9pbnRlciArIDE7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggZmM1NGE0OC4uMWQ3MjNkZTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0yNTUsMTEgKzI1NSwxNCBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgorI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BsaWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbmV0Lmg+CiAjaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+CiAjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgorI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zd2FwLmg+CiAjaW5jbHVkZSA8bGludXgvY2FjaGUuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9jcnlwdG8uaD4KQEAgLTEyMDYsNyArMTIwOSw4IEBACiAJCXJldHVybiAtRU5PVENPTk47CiAJd2hpbGUgKChza2IgPSB0Y3BfcmVjdl9za2Ioc2ssIHNlcSwgJm9mZnNldCkpICE9IE5VTEwpIHsKIAkJaWYgKG9mZnNldCA8IHNrYi0+bGVuKSB7Ci0JCQlzaXplX3QgdXNlZCwgbGVuOworCQkJaW50IHVzZWQ7CisJCQlzaXplX3QgbGVuOwogCiAJCQlsZW4gPSBza2ItPmxlbiAtIG9mZnNldDsKIAkJCS8qIFN0b3AgcmVhZGluZyBpZiB3ZSBoaXQgYSBwYXRjaCBvZiB1cmdlbnQgZGF0YSAqLwpAQCAtMjYyMCw3ICsyNjI0LDcgQEAKIHZvaWQgX19pbml0IHRjcF9pbml0KHZvaWQpCiB7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IE5VTEw7Ci0JdW5zaWduZWQgbG9uZyBsaW1pdDsKKwl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBsaW1pdDsKIAlpbnQgb3JkZXIsIGksIG1heF9zaGFyZTsKIAogCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IHRjcF9za2JfY2IpID4gc2l6ZW9mKHNrYi0+Y2IpKTsKQEAgLTI2ODksOCArMjY5Myw5IEBACiAJICogaXMgdXAgdG8gMS8yIGF0IDI1NiBNQiwgZGVjcmVhc2luZyB0b3dhcmQgemVybyB3aXRoIHRoZSBhbW91bnQgb2YKIAkgKiBtZW1vcnksIHdpdGggYSBmbG9vciBvZiAxMjggcGFnZXMuCiAJICovCi0JbGltaXQgPSBtaW4obnJfYWxsX3BhZ2VzLCAxVUw8PCgyOC1QQUdFX1NISUZUKSkgPj4gKDIwLVBBR0VfU0hJRlQpOwotCWxpbWl0ID0gKGxpbWl0ICogKG5yX2FsbF9wYWdlcyA+PiAoMjAtUEFHRV9TSElGVCkpKSA+PiAoUEFHRV9TSElGVC0xMSk7CisJbnJfcGFnZXMgPSB0b3RhbHJhbV9wYWdlcyAtIHRvdGFsaGlnaF9wYWdlczsKKwlsaW1pdCA9IG1pbihucl9wYWdlcywgMVVMPDwoMjgtUEFHRV9TSElGVCkpID4+ICgyMC1QQUdFX1NISUZUKTsKKwlsaW1pdCA9IChsaW1pdCAqIChucl9wYWdlcyA+PiAoMjAtUEFHRV9TSElGVCkpKSA+PiAoUEFHRV9TSElGVC0xMSk7CiAJbGltaXQgPSBtYXgobGltaXQsIDEyOFVMKTsKIAlzeXNjdGxfdGNwX21lbVswXSA9IGxpbWl0IC8gNCAqIDM7CiAJc3lzY3RsX3RjcF9tZW1bMV0gPSBsaW1pdDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pcHY0LmMgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCmluZGV4IDEyNjk1YmUuLmZmZTg2OWEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwpAQCAtMjI5MSw3ICsyMjkxLDcgQEAKIAl9CiAKIAlzZXFfcHJpbnRmKGYsICIlNGQ6ICUwOFg6JTA0WCAlMDhYOiUwNFggJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAiCi0JCQkiJTA4WCAlNWQgJThkICVsdSAlZCAlcCAldSAldSAldSAldSAlZCVuIiwKKwkJCSIlMDhYICU1ZCAlOGQgJWx1ICVkICVwICVsdSAlbHUgJXUgJXUgJWQlbiIsCiAJCWksIHNyYywgc3JjcCwgZGVzdCwgZGVzdHAsIHNrLT5za19zdGF0ZSwKIAkJdHAtPndyaXRlX3NlcSAtIHRwLT5zbmRfdW5hLAogCQlzay0+c2tfc3RhdGUgPT0gVENQX0xJU1RFTiA/IHNrLT5za19hY2tfYmFja2xvZyA6CkBAIC0yMzAzLDggKzIzMDMsOCBAQAogCQlpY3NrLT5pY3NrX3Byb2Jlc19vdXQsCiAJCXNvY2tfaV9pbm8oc2spLAogCQlhdG9taWNfcmVhZCgmc2stPnNrX3JlZmNudCksIHNrLAotCQlpY3NrLT5pY3NrX3J0bywKLQkJaWNzay0+aWNza19hY2suYXRvLAorCQlqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay0+aWNza19ydG8pLAorCQlqaWZmaWVzX3RvX2Nsb2NrX3QoaWNzay0+aWNza19hY2suYXRvKSwKIAkJKGljc2stPmljc2tfYWNrLnF1aWNrIDw8IDEpIHwgaWNzay0+aWNza19hY2sucGluZ3BvbmcsCiAJCXRwLT5zbmRfY3duZCwKIAkJdHAtPnNuZF9zc3RocmVzaCA+PSAweEZGRkYgPyAtMSA6IHRwLT5zbmRfc3N0aHJlc2gsCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfcHJvYmUuYyBiL25ldC9pcHY0L3RjcF9wcm9iZS5jCmluZGV4IDVmZjBjZTYuLjdkZGMzMGYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9wcm9iZS5jCisrKyBiL25ldC9pcHY0L3RjcF9wcm9iZS5jCkBAIC0yMjQsNyArMjI0LDcgQEAKIAlpZiAoYnVmc2l6ZSA8IDApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JdGNwX3Byb2JlLmxvZyA9IGtjYWxsb2Moc2l6ZW9mKHN0cnVjdCB0Y3BfbG9nKSwgYnVmc2l6ZSwgR0ZQX0tFUk5FTCk7CisJdGNwX3Byb2JlLmxvZyA9IGtjYWxsb2MoYnVmc2l6ZSwgc2l6ZW9mKHN0cnVjdCB0Y3BfbG9nKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCF0Y3BfcHJvYmUubG9nKQogCQlnb3RvIGVycjA7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDE0NzU4OGYuLmZmNjFhNWMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpAQCAtNzQ5LDEyICs3NDksMTIgQEAKIAl9CiAJd3JpdGVfdW5sb2NrX2JoKCZpZGV2LT5sb2NrKTsKIAorCWFkZHJjb25mX2RlbF90aW1lcihpZnApOworCiAJaXB2Nl9pZmFfbm90aWZ5KFJUTV9ERUxBRERSLCBpZnApOwogCiAJYXRvbWljX25vdGlmaWVyX2NhbGxfY2hhaW4oJmluZXQ2YWRkcl9jaGFpbiwgTkVUREVWX0RPV04sIGlmcCk7CiAKLQlhZGRyY29uZl9kZWxfdGltZXIoaWZwKTsKLQogCS8qCiAJICogUHVyZ2Ugb3IgdXBkYXRlIGNvcnJlc3BvbmRpbmcgcHJlZml4CiAJICoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2V4dGhkcnMuYyBiL25ldC9pcHY2L2V4dGhkcnMuYwppbmRleCAzY2QxYzk5Li5kY2Y5NGZkIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9leHRoZHJzLmMKKysrIGIvbmV0L2lwdjYvZXh0aGRycy5jCkBAIC00NDUsNyArNDQ1LDcgQEAKIAkJCWtmcmVlX3NrYihza2IpOwogCQkJcmV0dXJuIC0xOwogCQl9Ci0JCWlmICghaXB2Nl9jaGtfaG9tZV9hZGRyKCZpbml0X25ldCwgYWRkcikpIHsKKwkJaWYgKCFpcHY2X2Noa19ob21lX2FkZHIoZGV2X25ldChza2ItPmRzdC0+ZGV2KSwgYWRkcikpIHsKIAkJCUlQNl9JTkNfU1RBVFNfQkgoaXA2X2RzdF9pZGV2KHNrYi0+ZHN0KSwKIAkJCQkJIElQU1RBVFNfTUlCX0lOQUREUkVSUk9SUyk7CiAJCQlrZnJlZV9za2Ioc2tiKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L25ldGZpbHRlci9pcDZ0YWJsZV9tYW5nbGUuYyBiL25ldC9pcHY2L25ldGZpbHRlci9pcDZ0YWJsZV9tYW5nbGUuYwppbmRleCAyN2E1ZThiLi5mNDA1Y2VhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvaXA2dGFibGVfbWFuZ2xlLmMKKysrIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL2lwNnRhYmxlX21hbmdsZS5jCkBAIC0xMjksNyArMTI5LDcgQEAKIAkJLnByaW9yaXR5CT0gTkZfSVA2X1BSSV9NQU5HTEUsCiAJfSwKIAl7Ci0JCS5ob29rCQk9IGlwNnRfbG9jYWxfaG9vaywKKwkJLmhvb2sJCT0gaXA2dF9yb3V0ZV9ob29rLAogCQkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJCS5wZgkJPSBQRl9JTkVUNiwKIAkJLmhvb2tudW0JPSBORl9JTkVUX0xPQ0FMX0lOLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jCmluZGV4IGU2NWUyNmUuLmNmMjBiYzQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYworKysgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKQEAgLTIwNyw5ICsyMDcsMTAgQEAKIAlhcmcuaWQgPSBpZDsKIAlhcmcuc3JjID0gc3JjOwogCWFyZy5kc3QgPSBkc3Q7CisKKwlyZWFkX2xvY2tfYmgoJm5mX2ZyYWdzLmxvY2spOwogCWhhc2ggPSBpcDZxaGFzaGZuKGlkLCBzcmMsIGRzdCk7CiAKLQlsb2NhbF9iaF9kaXNhYmxlKCk7CiAJcSA9IGluZXRfZnJhZ19maW5kKCZuZl9pbml0X2ZyYWdzLCAmbmZfZnJhZ3MsICZhcmcsIGhhc2gpOwogCWxvY2FsX2JoX2VuYWJsZSgpOwogCWlmIChxID09IE5VTEwpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMgYi9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMKaW5kZXggNzk4Y2FiYy4uYTYwZDdkMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcmVhc3NlbWJseS5jCisrKyBiL25ldC9pcHY2L3JlYXNzZW1ibHkuYwpAQCAtMjQ3LDYgKzI0Nyw4IEBACiAJYXJnLmlkID0gaWQ7CiAJYXJnLnNyYyA9IHNyYzsKIAlhcmcuZHN0ID0gZHN0OworCisJcmVhZF9sb2NrKCZpcDZfZnJhZ3MubG9jayk7CiAJaGFzaCA9IGlwNnFoYXNoZm4oaWQsIHNyYywgZHN0KTsKIAogCXEgPSBpbmV0X2ZyYWdfZmluZCgmbmV0LT5pcHY2LmZyYWdzLCAmaXA2X2ZyYWdzLCAmYXJnLCBoYXNoKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IGQxZjNlMTkuLjdmZjY4NzAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMjQwLDcgKzI0MCw3IEBACiBzdGF0aWMgaW5saW5lIHN0cnVjdCBydDZfaW5mbyAqcnQ2X2RldmljZV9tYXRjaChzdHJ1Y3QgbmV0ICpuZXQsCiAJCQkJCQkgICAgc3RydWN0IHJ0Nl9pbmZvICpydCwKIAkJCQkJCSAgICBpbnQgb2lmLAotCQkJCQkJICAgIGludCBzdHJpY3QpCisJCQkJCQkgICAgaW50IGZsYWdzKQogewogCXN0cnVjdCBydDZfaW5mbyAqbG9jYWwgPSBOVUxMOwogCXN0cnVjdCBydDZfaW5mbyAqc3BydDsKQEAgLTI1Myw3ICsyNTMsNyBAQAogCQkJaWYgKGRldi0+ZmxhZ3MgJiBJRkZfTE9PUEJBQ0spIHsKIAkJCQlpZiAoc3BydC0+cnQ2aV9pZGV2ID09IE5VTEwgfHwKIAkJCQkgICAgc3BydC0+cnQ2aV9pZGV2LT5kZXYtPmlmaW5kZXggIT0gb2lmKSB7Ci0JCQkJCWlmIChzdHJpY3QgJiYgb2lmKQorCQkJCQlpZiAoZmxhZ3MgJiBSVDZfTE9PS1VQX0ZfSUZBQ0UgJiYgb2lmKQogCQkJCQkJY29udGludWU7CiAJCQkJCWlmIChsb2NhbCAmJiAoIW9pZiB8fAogCQkJCQkJICAgICAgbG9jYWwtPnJ0NmlfaWRldi0+ZGV2LT5pZmluZGV4ID09IG9pZikpCkBAIC0yNjYsNyArMjY2LDcgQEAKIAkJaWYgKGxvY2FsKQogCQkJcmV0dXJuIGxvY2FsOwogCi0JCWlmIChzdHJpY3QpCisJCWlmIChmbGFncyAmIFJUNl9MT09LVVBfRl9JRkFDRSkKIAkJCXJldHVybiBuZXQtPmlwdjYuaXA2X251bGxfZW50cnk7CiAJfQogCXJldHVybiBydDsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IGNiNDY3NDkuLjQwZWE5YzMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3RjcF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtMjAzNiw3ICsyMDM2LDcgQEAKIAogCXNlcV9wcmludGYoc2VxLAogCQkgICAiJTRkOiAlMDhYJTA4WCUwOFglMDhYOiUwNFggJTA4WCUwOFglMDhYJTA4WDolMDRYICIKLQkJICAgIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVsdSAlZCAlcCAldSAldSAldSAldSAlZFxuIiwKKwkJICAgIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVsdSAlZCAlcCAlbHUgJWx1ICV1ICV1ICVkXG4iLAogCQkgICBpLAogCQkgICBzcmMtPnM2X2FkZHIzMlswXSwgc3JjLT5zNl9hZGRyMzJbMV0sCiAJCSAgIHNyYy0+czZfYWRkcjMyWzJdLCBzcmMtPnM2X2FkZHIzMlszXSwgc3JjcCwKQEAgLTIwNTIsOCArMjA1Miw4IEBACiAJCSAgIGljc2stPmljc2tfcHJvYmVzX291dCwKIAkJICAgc29ja19pX2lubyhzcCksCiAJCSAgIGF0b21pY19yZWFkKCZzcC0+c2tfcmVmY250KSwgc3AsCi0JCSAgIGljc2stPmljc2tfcnRvLAotCQkgICBpY3NrLT5pY3NrX2Fjay5hdG8sCisJCSAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLT5pY3NrX3J0byksCisJCSAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLT5pY3NrX2Fjay5hdG8pLAogCQkgICAoaWNzay0+aWNza19hY2sucXVpY2sgPDwgMSApIHwgaWNzay0+aWNza19hY2sucGluZ3BvbmcsCiAJCSAgIHRwLT5zbmRfY3duZCwgdHAtPnNuZF9zc3RocmVzaD49MHhGRkZGPy0xOnRwLT5zbmRfc3N0aHJlc2gKIAkJICAgKTsKZGlmZiAtLWdpdCBhL25ldC9pcmRhL2lybmV0L2lybmV0LmggYi9uZXQvaXJkYS9pcm5ldC9pcm5ldC5oCmluZGV4IGIwMDFjMzYuLmJjY2Y0ZDAgMTAwNjQ0Ci0tLSBhL25ldC9pcmRhL2lybmV0L2lybmV0LmgKKysrIGIvbmV0L2lyZGEvaXJuZXQvaXJuZXQuaApAQCAtMjQxLDYgKzI0MSw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KZGlmZiAtLWdpdCBhL25ldC9pcmRhL2lybmV0L2lybmV0X3BwcC5jIGIvbmV0L2lyZGEvaXJuZXQvaXJuZXRfcHBwLmMKaW5kZXggZTBlYWI1OS4uZTg0YTcwZCAxMDA2NDQKLS0tIGEvbmV0L2lyZGEvaXJuZXQvaXJuZXRfcHBwLmMKKysrIGIvbmV0L2lyZGEvaXJuZXQvaXJuZXRfcHBwLmMKQEAgLTQ3OSw2ICs0NzksNyBAQAogICBhcCA9IGt6YWxsb2Moc2l6ZW9mKCphcCksIEdGUF9LRVJORUwpOwogICBEQUJPUlQoYXAgPT0gTlVMTCwgLUVOT01FTSwgRlNfRVJST1IsICJDYW4ndCBhbGxvY2F0ZSBzdHJ1Y3QgaXJuZXQuLi5cbiIpOwogCisgIGxvY2tfa2VybmVsKCk7CiAgIC8qIGluaXRpYWxpemUgdGhlIGlybmV0IHN0cnVjdHVyZSAqLwogICBhcC0+ZmlsZSA9IGZpbGU7CiAKQEAgLTUwMCw2ICs1MDEsNyBAQAogICAgIHsKICAgICAgIERFUlJPUihGU19FUlJPUiwgIkNhbid0IHNldHVwIElyREEgbGluay4uLlxuIik7CiAgICAgICBrZnJlZShhcCk7CisgICAgICB1bmxvY2tfa2VybmVsKCk7CiAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIApAQCAtNTEwLDYgKzUxMiw3IEBACiAgIGZpbGUtPnByaXZhdGVfZGF0YSA9IGFwOwogCiAgIERFWElUKEZTX1RSQUNFLCAiIC0gYXA9MHglcFxuIiwgYXApOworICB1bmxvY2tfa2VybmVsKCk7CiAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9uZXQvaXJkYS9pcm5ldGxpbmsuYyBiL25ldC9pcmRhL2lybmV0bGluay5jCmluZGV4IDllMWZiODIuLjJmMDVlYzEgMTAwNjQ0Ci0tLSBhL25ldC9pcmRhL2lybmV0bGluay5jCisrKyBiL25ldC9pcmRhL2lybmV0bGluay5jCkBAIC0xMDEsOCArMTAxLDggQEAKIAogCWhkciA9IGdlbmxtc2dfcHV0KG1zZywgaW5mby0+c25kX3BpZCwgaW5mby0+c25kX3NlcSwKIAkJCSAgJmlyZGFfbmxfZmFtaWx5LCAwLCAgSVJEQV9OTF9DTURfR0VUX01PREUpOwotCWlmIChJU19FUlIoaGRyKSkgewotCQlyZXQgPSBQVFJfRVJSKGhkcik7CisJaWYgKGhkciA9PSBOVUxMKSB7CisJCXJldCA9IC1FTVNHU0laRTsKIAkJZ290byBlcnJfb3V0OwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L2l1Y3YvYWZfaXVjdi5jIGIvbmV0L2l1Y3YvYWZfaXVjdi5jCmluZGV4IDdiMDAzOGYuLmJkYTcxMDEgMTAwNjQ0Ci0tLSBhL25ldC9pdWN2L2FmX2l1Y3YuYworKysgYi9uZXQvaXVjdi9hZl9pdWN2LmMKQEAgLTExMzUsOCArMTEzNSw3IEBACiAJCWlmICh0aGlzKQogCQkJa2ZyZWVfc2tiKHRoaXMpOwogCX0KLQlpZiAoIXRoaXMpCi0JCXByaW50ayhLRVJOX0VSUiAiQUZfSVVDViBtc2cgdGFnICV1IG5vdCBmb3VuZFxuIiwgbXNnLT50YWcpOworCUJVR19PTighdGhpcyk7CiAKIAlpZiAoc2stPnNrX3N0YXRlID09IElVQ1ZfQ0xPU0lORykgewogCQlpZiAoc2tiX3F1ZXVlX2VtcHR5KCZpdWN2X3NrKHNrKS0+c2VuZF9za2JfcSkpIHsKQEAgLTExOTYsNyArMTE5NSw3IEBACiAJfQogCWNwY21kKCJRVUVSWSBVU0VSSUQiLCBpdWN2X3VzZXJpZCwgc2l6ZW9mKGl1Y3ZfdXNlcmlkKSwgJmVycik7CiAJaWYgKHVubGlrZWx5KGVycikpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJBRl9JVUNWIG5lZWRzIHRoZSBWTSB1c2VyaWRcbiIpOworCQlXQVJOX09OKGVycik7CiAJCWVyciA9IC1FUFJPVE9OT1NVUFBPUlQ7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTEyMTAsNyArMTIwOSw2IEBACiAJZXJyID0gc29ja19yZWdpc3RlcigmaXVjdl9zb2NrX2ZhbWlseV9vcHMpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3Byb3RvOwotCXByaW50ayhLRVJOX0lORk8gIkFGX0lVQ1YgbG93bGV2ZWwgZHJpdmVyIGluaXRpYWxpemVkXG4iKTsKIAlyZXR1cm4gMDsKIAogb3V0X3Byb3RvOgpAQCAtMTIyNiw4ICsxMjI0LDYgQEAKIAlzb2NrX3VucmVnaXN0ZXIoUEZfSVVDVik7CiAJcHJvdG9fdW5yZWdpc3RlcigmaXVjdl9wcm90byk7CiAJaXVjdl91bnJlZ2lzdGVyKCZhZl9pdWN2X2hhbmRsZXIsIDApOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiQUZfSVVDViBsb3dsZXZlbCBkcml2ZXIgdW5sb2FkZWRcbiIpOwogfQogCiBtb2R1bGVfaW5pdChhZml1Y3ZfaW5pdCk7CmRpZmYgLS1naXQgYS9uZXQvaXVjdi9pdWN2LmMgYi9uZXQvaXVjdi9pdWN2LmMKaW5kZXggYTE3OGUyNy4uY2MzNGFjNyAxMDA2NDQKLS0tIGEvbmV0L2l1Y3YvaXVjdi5jCisrKyBiL25ldC9pdWN2L2l1Y3YuYwpAQCAtMTU1OSwxNiArMTU1OSwxMSBAQAogCiAJcCA9IGl1Y3ZfaXJxX2RhdGFbc21wX3Byb2Nlc3Nvcl9pZCgpXTsKIAlpZiAocC0+aXBwYXRoaWQgPj0gaXVjdl9tYXhfcGF0aGlkKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIml1Y3ZfZG9faW50OiBHb3QgaW50ZXJydXB0IHdpdGggIgotCQkgICAgICAgInBhdGhpZCAlZCA+IG1heF9jb25uZWN0aW9ucyAoJWxkKVxuIiwKLQkJICAgICAgIHAtPmlwcGF0aGlkLCBpdWN2X21heF9wYXRoaWQgLSAxKTsKKwkJV0FSTl9PTihwLT5pcHBhdGhpZCA+PSBpdWN2X21heF9wYXRoaWQpOwogCQlpdWN2X3NldmVyX3BhdGhpZChwLT5pcHBhdGhpZCwgaXVjdl9lcnJvcl9ub19saXN0ZW5lcik7CiAJCXJldHVybjsKIAl9Ci0JaWYgKHAtPmlwdHlwZSAgPCAweDAxIHx8IHAtPmlwdHlwZSA+IDB4MDkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJpdWN2X2RvX2ludDogdW5rbm93biBpdWN2IGludGVycnVwdFxuIik7Ci0JCXJldHVybjsKLQl9CisJQlVHX09OKHAtPmlwdHlwZSAgPCAweDAxIHx8IHAtPmlwdHlwZSA+IDB4MDkpOwogCXdvcmsgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgaXVjdl9pcnFfbGlzdCksIEdGUF9BVE9NSUMpOwogCWlmICghd29yaykgewogCQlwcmludGsoS0VSTl9XQVJOSU5HICJpdWN2X2V4dGVybmFsX2ludGVycnVwdDogb3V0IG9mIG1lbW9yeVxuIik7CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEva2V5LmMgYi9uZXQvbWFjODAyMTEva2V5LmMKaW5kZXggMTUwZDY2ZC4uMjIwZTgzYiAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL2tleS5jCisrKyBiL25ldC9tYWM4MDIxMS9rZXkuYwpAQCAtMzgwLDYgKzM4MCwxNSBAQAogCWlmICgha2V5KQogCQlyZXR1cm47CiAKKwlpZiAoIWtleS0+c2RhdGEpIHsKKwkJLyogVGhlIGtleSBoYXMgbm90IGJlZW4gbGlua2VkIHlldCwgc2ltcGx5IGZyZWUgaXQKKwkJICogYW5kIGRvbid0IE9vcHMgKi8KKwkJaWYgKGtleS0+Y29uZi5hbGcgPT0gQUxHX0NDTVApCisJCQlpZWVlODAyMTFfYWVzX2tleV9mcmVlKGtleS0+dS5jY21wLnRmbSk7CisJCWtmcmVlKGtleSk7CisJCXJldHVybjsKKwl9CisKIAlzcGluX2xvY2tfaXJxc2F2ZSgma2V5LT5zZGF0YS0+bG9jYWwtPmtleV9sb2NrLCBmbGFncyk7CiAJX19pZWVlODAyMTFfa2V5X2ZyZWUoa2V5KTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZrZXktPnNkYXRhLT5sb2NhbC0+a2V5X2xvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tYWluLmMgYi9uZXQvbWFjODAyMTEvbWFpbi5jCmluZGV4IDk4YzBiNWUuLmRmMDgzNmYgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9tYWluLmMKKysrIGIvbmV0L21hYzgwMjExL21haW4uYwpAQCAtNTMwLDggKzUzMCw2IEBACiAJCQkJbG9jYWwtPnN0YV9od19zY2FubmluZyA9IDA7CiAJCX0KIAotCQlmbHVzaF93b3JrcXVldWUobG9jYWwtPmh3LndvcmtxdWV1ZSk7Ci0KIAkJc2RhdGEtPnUuc3RhLmZsYWdzICY9IH5JRUVFODAyMTFfU1RBX1BSSVZBQ1lfSU5WT0tFRDsKIAkJa2ZyZWUoc2RhdGEtPnUuc3RhLmV4dHJhX2llKTsKIAkJc2RhdGEtPnUuc3RhLmV4dHJhX2llID0gTlVMTDsKQEAgLTU1NSw2ICs1NTMsOCBAQAogCiAJCWllZWU4MDIxMV9sZWRfcmFkaW8obG9jYWwsIDApOwogCisJCWZsdXNoX3dvcmtxdWV1ZShsb2NhbC0+aHcud29ya3F1ZXVlKTsKKwogCQl0YXNrbGV0X2Rpc2FibGUoJmxvY2FsLT50eF9wZW5kaW5nX3Rhc2tsZXQpOwogCQl0YXNrbGV0X2Rpc2FibGUoJmxvY2FsLT50YXNrbGV0KTsKIAl9CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbWxtZS5jIGIvbmV0L21hYzgwMjExL21sbWUuYwppbmRleCA0ZDJiNTgyLi5iNDA0NTM3IDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvbWxtZS5jCisrKyBiL25ldC9tYWM4MDIxMS9tbG1lLmMKQEAgLTU0NywxNSArNTQ3LDE0IEBACiAJCQlzZGF0YS0+YnNzX2NvbmYuaHRfYnNzX2NvbmYgPSAmY29uZi0+aHRfYnNzX2NvbmY7CiAJCX0KIAotCQluZXRpZl9jYXJyaWVyX29uKGRldik7CiAJCWlmc3RhLT5mbGFncyB8PSBJRUVFODAyMTFfU1RBX1BSRVZfQlNTSURfU0VUOwogCQltZW1jcHkoaWZzdGEtPnByZXZfYnNzaWQsIHNkYXRhLT51LnN0YS5ic3NpZCwgRVRIX0FMRU4pOwogCQltZW1jcHkod3JxdS5hcF9hZGRyLnNhX2RhdGEsIHNkYXRhLT51LnN0YS5ic3NpZCwgRVRIX0FMRU4pOwogCQlpZWVlODAyMTFfc3RhX3NlbmRfYXNzb2NpbmZvKGRldiwgaWZzdGEpOwogCX0gZWxzZSB7CisJCW5ldGlmX2NhcnJpZXJfb2ZmKGRldik7CiAJCWllZWU4MDIxMV9zdGFfdGVhcl9kb3duX0JBX3Nlc3Npb25zKGRldiwgaWZzdGEtPmJzc2lkKTsKIAkJaWZzdGEtPmZsYWdzICY9IH5JRUVFODAyMTFfU1RBX0FTU09DSUFURUQ7Ci0JCW5ldGlmX2NhcnJpZXJfb2ZmKGRldik7CiAJCWllZWU4MDIxMV9yZXNldF9lcnBfaW5mbyhkZXYpOwogCiAJCXNkYXRhLT5ic3NfY29uZi5hc3NvY19odCA9IDA7CkBAIC01NjksNiArNTY4LDEwIEBACiAKIAlzZGF0YS0+YnNzX2NvbmYuYXNzb2MgPSBhc3NvYzsKIAlpZWVlODAyMTFfYnNzX2luZm9fY2hhbmdlX25vdGlmeShzZGF0YSwgY2hhbmdlZCk7CisKKwlpZiAoYXNzb2MpCisJCW5ldGlmX2NhcnJpZXJfb24oZGV2KTsKKwogCXdycXUuYXBfYWRkci5zYV9mYW1pbHkgPSBBUlBIUkRfRVRIRVI7CiAJd2lyZWxlc3Nfc2VuZF9ldmVudChkZXYsIFNJT0NHSVdBUCwgJndycXUsIE5VTEwpOwogfQpAQCAtMzYxMSw4ICszNjE0LDEwIEBACiAJc3Bpbl91bmxvY2tfYmgoJmxvY2FsLT5zdGFfYnNzX2xvY2spOwogCiAjaWZkZWYgQ09ORklHX01BQzgwMjExX0lCU1NfREVCVUcKLQlwcmludGsoS0VSTl9ERUJVRyAiICAgc3RhX2ZpbmRfaWJzczogc2VsZWN0ZWQgJXMgY3VycmVudCAiCi0JICAgICAgICIlc1xuIiwgcHJpbnRfbWFjKG1hYywgYnNzaWQpLCBwcmludF9tYWMobWFjMiwgaWZzdGEtPmJzc2lkKSk7CisJaWYgKGZvdW5kKQorCQlwcmludGsoS0VSTl9ERUJVRyAiICAgc3RhX2ZpbmRfaWJzczogc2VsZWN0ZWQgJXMgY3VycmVudCAiCisJCSAgICAgICAiJXNcbiIsIHByaW50X21hYyhtYWMsIGJzc2lkKSwKKwkJICAgICAgIHByaW50X21hYyhtYWMyLCBpZnN0YS0+YnNzaWQpKTsKICNlbmRpZiAvKiBDT05GSUdfTUFDODAyMTFfSUJTU19ERUJVRyAqLwogCWlmIChmb3VuZCAmJiBtZW1jbXAoaWZzdGEtPmJzc2lkLCBic3NpZCwgRVRIX0FMRU4pICE9IDAgJiYKIAkgICAgKGJzcyA9IGllZWU4MDIxMV9yeF9ic3NfZ2V0KGRldiwgYnNzaWQsCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWQuaCBiL25ldC9tYWM4MDIxMS9yYzgwMjExX3BpZC5oCmluZGV4IDA0YWZjMTMuLjRlYTdiOTcgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9yYzgwMjExX3BpZC5oCisrKyBiL25ldC9tYWM4MDIxMS9yYzgwMjExX3BpZC5oCkBAIC0xNDEsNyArMTQxLDYgQEAKICAqCXJhdGUgYmVoYXZpb3VyIHZhbHVlcyAobG93ZXIgbWVhbnMgd2Ugc2hvdWxkIHRydXN0IG1vcmUgd2hhdCB3ZSBsZWFybnQKICAqCWFib3V0IGJlaGF2aW91ciBvZiByYXRlcywgaGlnaGVyIG1lYW5zIHdlIHNob3VsZCB0cnVzdCBtb3JlIHRoZSBuYXR1cmFsCiAgKglvcmRlcmluZyBvZiByYXRlcykKLSAqIEBmYXN0X3N0YXJ0OiBpZiBZLCBwdXNoIGhpZ2ggcmF0ZXMgcmlnaHQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24KICAqLwogc3RydWN0IHJjX3BpZF9kZWJ1Z2ZzX2VudHJpZXMgewogCXN0cnVjdCBkZW50cnkgKmRpcjsKQEAgLTE1NCw3ICsxNTMsNiBAQAogCXN0cnVjdCBkZW50cnkgKnNoYXJwZW5fZmFjdG9yOwogCXN0cnVjdCBkZW50cnkgKnNoYXJwZW5fZHVyYXRpb247CiAJc3RydWN0IGRlbnRyeSAqbm9ybV9vZmZzZXQ7Ci0Jc3RydWN0IGRlbnRyeSAqZmFzdF9zdGFydDsKIH07CiAKIHZvaWQgcmF0ZV9jb250cm9sX3BpZF9ldmVudF90eF9zdGF0dXMoc3RydWN0IHJjX3BpZF9ldmVudF9idWZmZXIgKmJ1ZiwKQEAgLTI2Nyw5ICsyNjUsNiBAQAogCS8qIE5vcm1hbGl6YXRpb24gb2Zmc2V0LiAqLwogCXVuc2lnbmVkIGludCBub3JtX29mZnNldDsKIAotCS8qIEZhc3Qgc3RhcnN0IHBhcmFtZXRlci4gKi8KLQl1bnNpZ25lZCBpbnQgZmFzdF9zdGFydDsKLQogCS8qIFJhdGVzIGluZm9ybWF0aW9uLiAqLwogCXN0cnVjdCByY19waWRfcmF0ZWluZm8gKnJpbmZvOwogCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWRfYWxnby5jIGIvbmV0L21hYzgwMjExL3JjODAyMTFfcGlkX2FsZ28uYwppbmRleCBhODQ5Yjc0Li5iY2QyN2MxZCAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3JjODAyMTFfcGlkX2FsZ28uYworKysgYi9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWRfYWxnby5jCkBAIC0zOTgsMTMgKzM5OCwyNSBAQAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKKwlwaW5mby0+dGFyZ2V0ID0gUkNfUElEX1RBUkdFVF9QRjsKKwlwaW5mby0+c2FtcGxpbmdfcGVyaW9kID0gUkNfUElEX0lOVEVSVkFMOworCXBpbmZvLT5jb2VmZl9wID0gUkNfUElEX0NPRUZGX1A7CisJcGluZm8tPmNvZWZmX2kgPSBSQ19QSURfQ09FRkZfSTsKKwlwaW5mby0+Y29lZmZfZCA9IFJDX1BJRF9DT0VGRl9EOworCXBpbmZvLT5zbW9vdGhpbmdfc2hpZnQgPSBSQ19QSURfU01PT1RISU5HX1NISUZUOworCXBpbmZvLT5zaGFycGVuX2ZhY3RvciA9IFJDX1BJRF9TSEFSUEVOSU5HX0ZBQ1RPUjsKKwlwaW5mby0+c2hhcnBlbl9kdXJhdGlvbiA9IFJDX1BJRF9TSEFSUEVOSU5HX0RVUkFUSU9OOworCXBpbmZvLT5ub3JtX29mZnNldCA9IFJDX1BJRF9OT1JNX09GRlNFVDsKKwlwaW5mby0+cmluZm8gPSByaW5mbzsKKwlwaW5mby0+b2xkcmF0ZSA9IDA7CisKIAkvKiBTb3J0IHRoZSByYXRlcy4gVGhpcyBpcyBvcHRpbWl6ZWQgZm9yIHRoZSBtb3N0IGNvbW1vbiBjYXNlIChpLmUuCiAJICogYWxtb3N0LXNvcnRlZCBDQ0srT0ZETSByYXRlcykuIEtpbmQgb2YgYnViYmxlLXNvcnQgd2l0aCByZXZlcnNlZAogCSAqIG1hcHBpbmcgdG9vLiAqLwogCWZvciAoaSA9IDA7IGkgPCBzYmFuZC0+bl9iaXRyYXRlczsgaSsrKSB7CiAJCXJpbmZvW2ldLmluZGV4ID0gaTsKIAkJcmluZm9baV0ucmV2X2luZGV4ID0gaTsKLQkJaWYgKHBpbmZvLT5mYXN0X3N0YXJ0KQorCQlpZiAoUkNfUElEX0ZBU1RfU1RBUlQpCiAJCQlyaW5mb1tpXS5kaWZmID0gMDsKIAkJZWxzZQogCQkJcmluZm9baV0uZGlmZiA9IGkgKiBwaW5mby0+bm9ybV9vZmZzZXQ7CkBAIC00MjUsMTkgKzQzNyw2IEBACiAJCQlicmVhazsKIAl9CiAKLQlwaW5mby0+dGFyZ2V0ID0gUkNfUElEX1RBUkdFVF9QRjsKLQlwaW5mby0+c2FtcGxpbmdfcGVyaW9kID0gUkNfUElEX0lOVEVSVkFMOwotCXBpbmZvLT5jb2VmZl9wID0gUkNfUElEX0NPRUZGX1A7Ci0JcGluZm8tPmNvZWZmX2kgPSBSQ19QSURfQ09FRkZfSTsKLQlwaW5mby0+Y29lZmZfZCA9IFJDX1BJRF9DT0VGRl9EOwotCXBpbmZvLT5zbW9vdGhpbmdfc2hpZnQgPSBSQ19QSURfU01PT1RISU5HX1NISUZUOwotCXBpbmZvLT5zaGFycGVuX2ZhY3RvciA9IFJDX1BJRF9TSEFSUEVOSU5HX0ZBQ1RPUjsKLQlwaW5mby0+c2hhcnBlbl9kdXJhdGlvbiA9IFJDX1BJRF9TSEFSUEVOSU5HX0RVUkFUSU9OOwotCXBpbmZvLT5ub3JtX29mZnNldCA9IFJDX1BJRF9OT1JNX09GRlNFVDsKLQlwaW5mby0+ZmFzdF9zdGFydCA9IFJDX1BJRF9GQVNUX1NUQVJUOwotCXBpbmZvLT5yaW5mbyA9IHJpbmZvOwotCXBpbmZvLT5vbGRyYXRlID0gMDsKLQogI2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTCiAJZGUgPSAmcGluZm8tPmRlbnRyaWVzOwogCWRlLT5kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoInJjODAyMTFfcGlkIiwKQEAgLTQ2NSw5ICs0NjQsNiBAQAogCWRlLT5ub3JtX29mZnNldCA9IGRlYnVnZnNfY3JlYXRlX3UzMigibm9ybV9vZmZzZXQiLAogCQkJCQkgICAgIFNfSVJVU1IgfCBTX0lXVVNSLCBkZS0+ZGlyLAogCQkJCQkgICAgICZwaW5mby0+bm9ybV9vZmZzZXQpOwotCWRlLT5mYXN0X3N0YXJ0ID0gZGVidWdmc19jcmVhdGVfYm9vbCgiZmFzdF9zdGFydCIsCi0JCQkJCSAgICAgU19JUlVTUiB8IFNfSVdVU1IsIGRlLT5kaXIsCi0JCQkJCSAgICAgJnBpbmZvLT5mYXN0X3N0YXJ0KTsKICNlbmRpZgogCiAJcmV0dXJuIHBpbmZvOwpAQCAtNDc5LDcgKzQ3NSw2IEBACiAjaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlMKIAlzdHJ1Y3QgcmNfcGlkX2RlYnVnZnNfZW50cmllcyAqZGUgPSAmcGluZm8tPmRlbnRyaWVzOwogCi0JZGVidWdmc19yZW1vdmUoZGUtPmZhc3Rfc3RhcnQpOwogCWRlYnVnZnNfcmVtb3ZlKGRlLT5ub3JtX29mZnNldCk7CiAJZGVidWdmc19yZW1vdmUoZGUtPnNoYXJwZW5fZHVyYXRpb24pOwogCWRlYnVnZnNfcmVtb3ZlKGRlLT5zaGFycGVuX2ZhY3Rvcik7CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvd2V4dC5jIGIvbmV0L21hYzgwMjExL3dleHQuYwppbmRleCA2MTA2Y2I3Li5lODQwNDIxIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvd2V4dC5jCisrKyBiL25ldC9tYWM4MDIxMS93ZXh0LmMKQEAgLTk1LDYgKzk1LDEzIEBACiAJCQl9CiAJCX0KIAorCQlpZiAoYWxnID09IEFMR19XRVAgJiYKKwkJCWtleV9sZW4gIT0gTEVOX1dFUDQwICYmIGtleV9sZW4gIT0gTEVOX1dFUDEwNCkgeworCQkJaWVlZTgwMjExX2tleV9mcmVlKGtleSk7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBvdXRfdW5sb2NrOworCQl9CisKIAkJaWVlZTgwMjExX2tleV9saW5rKGtleSwgc2RhdGEsIHN0YSk7CiAKIAkJaWYgKHNldF90eF9rZXkgfHwgKCFzdGEgJiYgIXNkYXRhLT5kZWZhdWx0X2tleSAmJiBrZXkpKQpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3dtZS5jIGIvbmV0L21hYzgwMjExL3dtZS5jCmluZGV4IDYzNWI5OTYuLjVkMDllODYgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS93bWUuYworKysgYi9uZXQvbWFjODAyMTEvd21lLmMKQEAgLTMyMyw4ICszMjMsNyBAQAogCXN0cnVjdCBpZWVlODAyMTFfaHcgKmh3ID0gJmxvY2FsLT5odzsKIAlpbnQgcXVldWU7CiAKLQl0Y2ZfZGVzdHJveV9jaGFpbihxLT5maWx0ZXJfbGlzdCk7Ci0JcS0+ZmlsdGVyX2xpc3QgPSBOVUxMOworCXRjZl9kZXN0cm95X2NoYWluKCZxLT5maWx0ZXJfbGlzdCk7CiAKIAlmb3IgKHF1ZXVlPTA7IHF1ZXVlIDwgaHctPnF1ZXVlczsgcXVldWUrKykgewogCQlza2JfcXVldWVfcHVyZ2UoJnEtPnJlcXVldWVkW3F1ZXVlXSk7CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jCmluZGV4IGJhOTQwMDQuLmRkMjhmYjIgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX3RjcC5jCkBAIC0zMzEsMTIgKzMzMSwxMyBAQAogCiAgICBJLiAgIFVwcGVyIGJvdW5kIGZvciB2YWxpZCBkYXRhOglzZXEgPD0gc2VuZGVyLnRkX21heGVuZAogICAgSUkuICBMb3dlciBib3VuZCBmb3IgdmFsaWQgZGF0YToJc2VxICsgbGVuID49IHNlbmRlci50ZF9lbmQgLSByZWNlaXZlci50ZF9tYXh3aW4KLSAgIElJSS4JVXBwZXIgYm91bmQgZm9yIHZhbGlkIGFjazogICAgICBzYWNrIDw9IHJlY2VpdmVyLnRkX2VuZAotICAgSVYuCUxvd2VyIGJvdW5kIGZvciB2YWxpZCBhY2s6CWFjayA+PSByZWNlaXZlci50ZF9lbmQgLSBNQVhBQ0tXSU5ET1cKKyAgIElJSS4JVXBwZXIgYm91bmQgZm9yIHZhbGlkIChzKWFjazogICBzYWNrIDw9IHJlY2VpdmVyLnRkX2VuZAorICAgSVYuCUxvd2VyIGJvdW5kIGZvciB2YWxpZCAocylhY2s6CXNhY2sgPj0gcmVjZWl2ZXIudGRfZW5kIC0gTUFYQUNLV0lORE9XCiAKLSAgIHdoZXJlIHNhY2sgaXMgdGhlIGhpZ2hlc3QgcmlnaHQgZWRnZSBvZiBzYWNrIGJsb2NrIGZvdW5kIGluIHRoZSBwYWNrZXQuCisgICB3aGVyZSBzYWNrIGlzIHRoZSBoaWdoZXN0IHJpZ2h0IGVkZ2Ugb2Ygc2FjayBibG9jayBmb3VuZCBpbiB0aGUgcGFja2V0CisgICBvciBhY2sgaW4gdGhlIGNhc2Ugb2YgcGFja2V0IHdpdGhvdXQgU0FDSyBvcHRpb24uCiAKLSAgIFRoZSB1cHBlciBib3VuZCBsaW1pdCBmb3IgYSB2YWxpZCBhY2sgaXMgbm90IGlnbm9yZWQgLQorICAgVGhlIHVwcGVyIGJvdW5kIGxpbWl0IGZvciBhIHZhbGlkIChzKWFjayBpcyBub3QgaWdub3JlZCAtCiAgICB3ZSBkb2Vzbid0IGhhdmUgdG8gZGVhbCB3aXRoIGZyYWdtZW50cy4KICovCiAKQEAgLTYwNiwxMiArNjA3LDEyIEBACiAJCSBiZWZvcmUoc2VxLCBzZW5kZXItPnRkX21heGVuZCArIDEpLAogCQkgYWZ0ZXIoZW5kLCBzZW5kZXItPnRkX2VuZCAtIHJlY2VpdmVyLT50ZF9tYXh3aW4gLSAxKSwKIAkJIGJlZm9yZShzYWNrLCByZWNlaXZlci0+dGRfZW5kICsgMSksCi0JCSBhZnRlcihhY2ssIHJlY2VpdmVyLT50ZF9lbmQgLSBNQVhBQ0tXSU5ET1coc2VuZGVyKSkpOworCQkgYWZ0ZXIoc2FjaywgcmVjZWl2ZXItPnRkX2VuZCAtIE1BWEFDS1dJTkRPVyhzZW5kZXIpIC0gMSkpOwogCiAJaWYgKGJlZm9yZShzZXEsIHNlbmRlci0+dGRfbWF4ZW5kICsgMSkgJiYKIAkgICAgYWZ0ZXIoZW5kLCBzZW5kZXItPnRkX2VuZCAtIHJlY2VpdmVyLT50ZF9tYXh3aW4gLSAxKSAmJgogCSAgICBiZWZvcmUoc2FjaywgcmVjZWl2ZXItPnRkX2VuZCArIDEpICYmCi0JICAgIGFmdGVyKGFjaywgcmVjZWl2ZXItPnRkX2VuZCAtIE1BWEFDS1dJTkRPVyhzZW5kZXIpKSkgeworCSAgICBhZnRlcihzYWNrLCByZWNlaXZlci0+dGRfZW5kIC0gTUFYQUNLV0lORE9XKHNlbmRlcikgLSAxKSkgewogCQkvKgogCQkgKiBUYWtlIGludG8gYWNjb3VudCB3aW5kb3cgc2NhbGluZyAoUkZDIDEzMjMpLgogCQkgKi8KQEAgLTg0Myw5ICs4NDQsMTUgQEAKIAkJCS8qIEF0dGVtcHQgdG8gcmVvcGVuIGEgY2xvc2VkL2Fib3J0ZWQgY29ubmVjdGlvbi4KIAkJCSAqIERlbGV0ZSB0aGlzIGNvbm5lY3Rpb24gYW5kIGxvb2sgdXAgYWdhaW4uICovCiAJCQl3cml0ZV91bmxvY2tfYmgoJnRjcF9sb2NrKTsKLQkJCWlmIChkZWxfdGltZXIoJmN0LT50aW1lb3V0KSkKKwkJCS8qIE9ubHkgcmVwZWF0IGlmIHdlIGNhbiBhY3R1YWxseSByZW1vdmUgdGhlIHRpbWVyLgorCQkJICogRGVzdHJ1Y3Rpb24gbWF5IGFscmVhZHkgYmUgaW4gcHJvZ3Jlc3MgaW4gcHJvY2VzcworCQkJICogY29udGV4dCBhbmQgd2UgbXVzdCBnaXZlIGl0IGEgY2hhbmNlIHRvIHRlcm1pbmF0ZS4KKwkJCSAqLworCQkJaWYgKGRlbF90aW1lcigmY3QtPnRpbWVvdXQpKSB7CiAJCQkJY3QtPnRpbWVvdXQuZnVuY3Rpb24oKHVuc2lnbmVkIGxvbmcpY3QpOwotCQkJcmV0dXJuIC1ORl9SRVBFQVQ7CisJCQkJcmV0dXJuIC1ORl9SRVBFQVQ7CisJCQl9CisJCQlyZXR1cm4gLU5GX0RST1A7CiAJCX0KIAkJLyogRmFsbCB0aHJvdWdoICovCiAJY2FzZSBUQ1BfQ09OTlRSQUNLX0lHTk9SRToKZGlmZiAtLWdpdCBhL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9jaXBzb192NC5jIGIvbmV0L25ldGxhYmVsL25ldGxhYmVsX2NpcHNvX3Y0LmMKaW5kZXggZmRjMTRhMC4uOTA4MGM2MSAxMDA2NDQKLS0tIGEvbmV0L25ldGxhYmVsL25ldGxhYmVsX2NpcHNvX3Y0LmMKKysrIGIvbmV0L25ldGxhYmVsL25ldGxhYmVsX2NpcHNvX3Y0LmMKQEAgLTU4NCwxMiArNTg0LDcgQEAKIAlyY3VfcmVhZF91bmxvY2soKTsKIAogCWdlbmxtc2dfZW5kKGFuc19za2IsIGRhdGEpOwotCi0JcmV0X3ZhbCA9IGdlbmxtc2dfcmVwbHkoYW5zX3NrYiwgaW5mbyk7Ci0JaWYgKHJldF92YWwgIT0gMCkKLQkJZ290byBsaXN0X2ZhaWx1cmU7Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKIAogbGlzdF9yZXRyeToKIAkvKiBYWFggLSB0aGlzIGxpbWl0IGlzIGEgZ3Vlc3N0aW1hdGUgKi8KZGlmZiAtLWdpdCBhL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9tZ210LmMgYi9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfbWdtdC5jCmluZGV4IDIyYzE5MTIuLjQ0YmU1ZDUgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9tZ210LmMKKysrIGIvbmV0L25ldGxhYmVsL25ldGxhYmVsX21nbXQuYwpAQCAtMzg2LDExICszODYsNyBAQAogCXJjdV9yZWFkX3VubG9jaygpOwogCiAJZ2VubG1zZ19lbmQoYW5zX3NrYiwgZGF0YSk7Ci0KLQlyZXRfdmFsID0gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKLQlpZiAocmV0X3ZhbCAhPSAwKQotCQlnb3RvIGxpc3RkZWZfZmFpbHVyZTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKIAogbGlzdGRlZl9mYWlsdXJlX2xvY2s6CiAJcmN1X3JlYWRfdW5sb2NrKCk7CkBAIC01MDEsMTEgKzQ5Nyw3IEBACiAJCWdvdG8gdmVyc2lvbl9mYWlsdXJlOwogCiAJZ2VubG1zZ19lbmQoYW5zX3NrYiwgZGF0YSk7Ci0KLQlyZXRfdmFsID0gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKLQlpZiAocmV0X3ZhbCAhPSAwKQotCQlnb3RvIHZlcnNpb25fZmFpbHVyZTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKIAogdmVyc2lvbl9mYWlsdXJlOgogCWtmcmVlX3NrYihhbnNfc2tiKTsKZGlmZiAtLWdpdCBhL25ldC9uZXRsYWJlbC9uZXRsYWJlbF91bmxhYmVsZWQuYyBiL25ldC9uZXRsYWJlbC9uZXRsYWJlbF91bmxhYmVsZWQuYwppbmRleCAwMDk5ZGE1Yi4uNTZmODA4NyAxMDA2NDQKLS0tIGEvbmV0L25ldGxhYmVsL25ldGxhYmVsX3VubGFiZWxlZC5jCisrKyBiL25ldC9uZXRsYWJlbC9uZXRsYWJlbF91bmxhYmVsZWQuYwpAQCAtMTEwNywxMSArMTEwNyw3IEBACiAJCWdvdG8gbGlzdF9mYWlsdXJlOwogCiAJZ2VubG1zZ19lbmQoYW5zX3NrYiwgZGF0YSk7Ci0KLQlyZXRfdmFsID0gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKLQlpZiAocmV0X3ZhbCAhPSAwKQotCQlnb3RvIGxpc3RfZmFpbHVyZTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKIAogbGlzdF9mYWlsdXJlOgogCWtmcmVlX3NrYihhbnNfc2tiKTsKQEAgLTE1MzQsNyArMTUzMCw3IEBACiAJCX0KIAl9CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoYWRkcjYsICZpZmFjZS0+YWRkcjZfbGlzdCwgbGlzdCkgewotCQlpZiAoYWRkcjYtPnZhbGlkIHx8IGl0ZXJfYWRkcjYrKyA8IHNraXBfYWRkcjYpCisJCWlmICghYWRkcjYtPnZhbGlkIHx8IGl0ZXJfYWRkcjYrKyA8IHNraXBfYWRkcjYpCiAJCQljb250aW51ZTsKIAkJaWYgKG5ldGxibF91bmxhYmVsX3N0YXRpY2xpc3RfZ2VuKE5MQkxfVU5MQUJFTF9DX1NUQVRJQ0xJU1RERUYsCiAJCQkJCSAgIGlmYWNlLApkaWZmIC0tZ2l0IGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCmluZGV4IDliOTdmODAuLjM0OWFiYTEgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTg4Niw3ICs4ODYsNyBAQAogCQlyZXR1cm4gbmV0bGlua191bmljYXN0X2tlcm5lbChzaywgc2tiKTsKIAogCWlmIChza19maWx0ZXIoc2ssIHNrYikpIHsKLQkJaW50IGVyciA9IHNrYi0+bGVuOworCQllcnIgPSBza2ItPmxlbjsKIAkJa2ZyZWVfc2tiKHNrYik7CiAJCXNvY2tfcHV0KHNrKTsKIAkJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2F0dHIuYyBiL25ldC9uZXRsaW5rL2F0dHIuYwppbmRleCA0N2JiZjQ1Li4yZDEwNmNmIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hdHRyLmMKKysrIGIvbmV0L25ldGxpbmsvYXR0ci5jCkBAIC0xMzIsNiArMTMyLDcgQEAKICAqIEBtYXh0eXBlOiBtYXhpbXVtIGF0dHJpYnV0ZSB0eXBlIHRvIGJlIGV4cGVjdGVkCiAgKiBAaGVhZDogaGVhZCBvZiBhdHRyaWJ1dGUgc3RyZWFtCiAgKiBAbGVuOiBsZW5ndGggb2YgYXR0cmlidXRlIHN0cmVhbQorICogQHBvbGljeTogdmFsaWRhdGlvbiBwb2xpY3kKICAqCiAgKiBQYXJzZXMgYSBzdHJlYW0gb2YgYXR0cmlidXRlcyBhbmQgc3RvcmVzIGEgcG9pbnRlciB0byBlYWNoIGF0dHJpYnV0ZSBpbgogICogdGhlIHRiIGFycmF5IGFjY2Vzc2FibGUgdmlhIHRoZSBhdHRyaWJ1dGUgdHlwZS4gQXR0cmlidXRlcyB3aXRoIGEgdHlwZQpAQCAtMTk0LDcgKzE5NSw3IEBACiAvKioKICAqIG5sYV9zdHJsY3B5IC0gQ29weSBzdHJpbmcgYXR0cmlidXRlIHBheWxvYWQgaW50byBhIHNpemVkIGJ1ZmZlcgogICogQGRzdDogd2hlcmUgdG8gY29weSB0aGUgc3RyaW5nIHRvCi0gKiBAc3JjOiBhdHRyaWJ1dGUgdG8gY29weSB0aGUgc3RyaW5nIGZyb20KKyAqIEBubGE6IGF0dHJpYnV0ZSB0byBjb3B5IHRoZSBzdHJpbmcgZnJvbQogICogQGRzdHNpemU6IHNpemUgb2YgZGVzdGluYXRpb24gYnVmZmVyCiAgKgogICogQ29waWVzIGF0IG1vc3QgZHN0c2l6ZSAtIDEgYnl0ZXMgaW50byB0aGUgZGVzdGluYXRpb24gYnVmZmVyLgpAQCAtMzQwLDkgKzM0MSw5IEBACiB9CiAKIC8qKgotICogbmxhX3Jlc2VydmUgLSByZXNlcnZlIHJvb20gZm9yIGF0dHJpYnV0ZSB3aXRob3V0IGhlYWRlcgorICogbmxhX3Jlc2VydmVfbm9oZHIgLSByZXNlcnZlIHJvb20gZm9yIGF0dHJpYnV0ZSB3aXRob3V0IGhlYWRlcgogICogQHNrYjogc29ja2V0IGJ1ZmZlciB0byByZXNlcnZlIHJvb20gb24KLSAqIEBsZW46IGxlbmd0aCBvZiBhdHRyaWJ1dGUgcGF5bG9hZAorICogQGF0dHJsZW46IGxlbmd0aCBvZiBhdHRyaWJ1dGUgcGF5bG9hZAogICoKICAqIFJlc2VydmVzIHJvb20gZm9yIGF0dHJpYnV0ZSBwYXlsb2FkIHdpdGhvdXQgYSBoZWFkZXIuCiAgKgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL0tjb25maWcgYi9uZXQvc2NoZWQvS2NvbmZpZwppbmRleCA4MmFkZmU2Li45NDM3YjI3IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvS2NvbmZpZworKysgYi9uZXQvc2NoZWQvS2NvbmZpZwpAQCAtMTA2LDE3ICsxMDYsNiBAQAogCSAgVG8gY29tcGlsZSB0aGlzIGNvZGUgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQogCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHNjaF9wcmlvLgogCi1jb25maWcgTkVUX1NDSF9SUgotCXRyaXN0YXRlICJNdWx0aSBCYW5kIFJvdW5kIFJvYmluIFF1ZXVpbmcgKFJSKSIKLQlzZWxlY3QgTkVUX1NDSF9QUklPCi0JLS0taGVscC0tLQotCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgYW4gbi1iYW5kIHJvdW5kIHJvYmluIHBhY2tldAotCSAgc2NoZWR1bGVyLgotCi0JICBUaGUgbW9kdWxlIHVzZXMgc2NoX3ByaW8gZm9yIGl0cyBmcmFtZXdvcmsgYW5kIGlzIGFsaWFzZWQgYXMKLQkgIHNjaF9yciwgc28gaXQgd2lsbCBsb2FkIHNjaF9wcmlvLCBhbHRob3VnaCBpdCBpcyByZWZlcnJlZAotCSAgdG8gdXNpbmcgc2NoX3JyLgotCiBjb25maWcgTkVUX1NDSF9SRUQKIAl0cmlzdGF0ZSAiUmFuZG9tIEVhcmx5IERldGVjdGlvbiAoUkVEKSIKIAktLS1oZWxwLS0tCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2FwaS5jIGIvbmV0L3NjaGVkL3NjaF9hcGkuYwppbmRleCBjNDA3NzNjLi4xMGYwMWFkIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2FwaS5jCisrKyBiL25ldC9zY2hlZC9zY2hfYXBpLmMKQEAgLTEyNTIsMTIgKzEyNTIsMTIgQEAKIAlrZnJlZSh0cCk7CiB9CiAKLXZvaWQgdGNmX2Rlc3Ryb3lfY2hhaW4oc3RydWN0IHRjZl9wcm90byAqZmwpCit2b2lkIHRjZl9kZXN0cm95X2NoYWluKHN0cnVjdCB0Y2ZfcHJvdG8gKipmbCkKIHsKIAlzdHJ1Y3QgdGNmX3Byb3RvICp0cDsKIAotCXdoaWxlICgodHAgPSBmbCkgIT0gTlVMTCkgewotCQlmbCA9IHRwLT5uZXh0OworCXdoaWxlICgodHAgPSAqZmwpICE9IE5VTEwpIHsKKwkJKmZsID0gdHAtPm5leHQ7CiAJCXRjZl9kZXN0cm95KHRwKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2F0bS5jIGIvbmV0L3NjaGVkL3NjaF9hdG0uYwppbmRleCAzMzUyNzM0Li5kYjBlMjNhIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2F0bS5jCisrKyBiL25ldC9zY2hlZC9zY2hfYXRtLmMKQEAgLTE2MCw3ICsxNjAsNyBAQAogCSpwcmV2ID0gZmxvdy0+bmV4dDsKIAlwcl9kZWJ1ZygiYXRtX3RjX3B1dDogcWRpc2MgJXBcbiIsIGZsb3ctPnEpOwogCXFkaXNjX2Rlc3Ryb3koZmxvdy0+cSk7Ci0JdGNmX2Rlc3Ryb3lfY2hhaW4oZmxvdy0+ZmlsdGVyX2xpc3QpOworCXRjZl9kZXN0cm95X2NoYWluKCZmbG93LT5maWx0ZXJfbGlzdCk7CiAJaWYgKGZsb3ctPnNvY2spIHsKIAkJcHJfZGVidWcoImF0bV90Y19wdXQ6IGZfY291bnQgJWRcbiIsCiAJCQlmaWxlX2NvdW50KGZsb3ctPnNvY2stPmZpbGUpKTsKQEAgLTU4NiwxMCArNTg2LDExIEBACiAJc3RydWN0IGF0bV9mbG93X2RhdGEgKmZsb3c7CiAKIAlwcl9kZWJ1ZygiYXRtX3RjX2Rlc3Ryb3koc2NoICVwLFtxZGlzYyAlcF0pXG4iLCBzY2gsIHApOworCWZvciAoZmxvdyA9IHAtPmZsb3dzOyBmbG93OyBmbG93ID0gZmxvdy0+bmV4dCkKKwkJdGNmX2Rlc3Ryb3lfY2hhaW4oJmZsb3ctPmZpbHRlcl9saXN0KTsKKwogCS8qIHJhY2VzID8gKi8KIAl3aGlsZSAoKGZsb3cgPSBwLT5mbG93cykpIHsKLQkJdGNmX2Rlc3Ryb3lfY2hhaW4oZmxvdy0+ZmlsdGVyX2xpc3QpOwotCQlmbG93LT5maWx0ZXJfbGlzdCA9IE5VTEw7CiAJCWlmIChmbG93LT5yZWYgPiAxKQogCQkJcHJpbnRrKEtFUk5fRVJSICJhdG1fZGVzdHJveTogJXAtPnJlZiA9ICVkXG4iLCBmbG93LAogCQkJICAgICAgIGZsb3ctPnJlZik7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2NicS5jIGIvbmV0L3NjaGVkL3NjaF9jYnEuYwppbmRleCAwOTk2OWMxLi4yYTNjOTdmIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2NicS5jCisrKyBiL25ldC9zY2hlZC9zY2hfY2JxLmMKQEAgLTE3MDQsNyArMTcwNCw3IEBACiAKIAlCVUdfVFJBUCghY2wtPmZpbHRlcnMpOwogCi0JdGNmX2Rlc3Ryb3lfY2hhaW4oY2wtPmZpbHRlcl9saXN0KTsKKwl0Y2ZfZGVzdHJveV9jaGFpbigmY2wtPmZpbHRlcl9saXN0KTsKIAlxZGlzY19kZXN0cm95KGNsLT5xKTsKIAlxZGlzY19wdXRfcnRhYihjbC0+Ul90YWIpOwogCWdlbl9raWxsX2VzdGltYXRvcigmY2wtPmJzdGF0cywgJmNsLT5yYXRlX2VzdCk7CkBAIC0xNzI4LDEwICsxNzI4LDggQEAKIAkgKiBiZSBib3VuZCB0byBjbGFzc2VzIHdoaWNoIGhhdmUgYmVlbiBkZXN0cm95ZWQgYWxyZWFkeS4gLS1UR1IgJzA0CiAJICovCiAJZm9yIChoID0gMDsgaCA8IDE2OyBoKyspIHsKLQkJZm9yIChjbCA9IHEtPmNsYXNzZXNbaF07IGNsOyBjbCA9IGNsLT5uZXh0KSB7Ci0JCQl0Y2ZfZGVzdHJveV9jaGFpbihjbC0+ZmlsdGVyX2xpc3QpOwotCQkJY2wtPmZpbHRlcl9saXN0ID0gTlVMTDsKLQkJfQorCQlmb3IgKGNsID0gcS0+Y2xhc3Nlc1toXTsgY2w7IGNsID0gY2wtPm5leHQpCisJCQl0Y2ZfZGVzdHJveV9jaGFpbigmY2wtPmZpbHRlcl9saXN0KTsKIAl9CiAJZm9yIChoID0gMDsgaCA8IDE2OyBoKyspIHsKIAkJc3RydWN0IGNicV9jbGFzcyAqbmV4dDsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMgYi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCmluZGV4IDY0NDY1YmEuLmM0YzEzMTcgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9kc21hcmsuYwpAQCAtNDE2LDcgKzQxNiw3IEBACiAKIAlwcl9kZWJ1ZygiZHNtYXJrX2Rlc3Ryb3koc2NoICVwLFtxZGlzYyAlcF0pXG4iLCBzY2gsIHApOwogCi0JdGNmX2Rlc3Ryb3lfY2hhaW4ocC0+ZmlsdGVyX2xpc3QpOworCXRjZl9kZXN0cm95X2NoYWluKCZwLT5maWx0ZXJfbGlzdCk7CiAJcWRpc2NfZGVzdHJveShwLT5xKTsKIAlrZnJlZShwLT5tYXNrKTsKIH0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jIGIvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKaW5kZXggZDM1NWU1ZS4uMTNhZmE3MiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKQEAgLTQ2OCw3ICs0NjgsNyBAQAogCiAJcmV0dXJuIHNjaDsKIGVycm91dDoKLQlyZXR1cm4gRVJSX1BUUigtZXJyKTsKKwlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCiBzdHJ1Y3QgUWRpc2MgKiBxZGlzY19jcmVhdGVfZGZsdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgUWRpc2Nfb3BzICpvcHMsCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2hmc2MuYyBiL25ldC9zY2hlZC9zY2hfaGZzYy5jCmluZGV4IGZkZmFhM2YuLmU4MTdhYTAgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfaGZzYy5jCisrKyBiL25ldC9zY2hlZC9zY2hfaGZzYy5jCkBAIC0xMTIzLDcgKzExMjMsNyBAQAogewogCXN0cnVjdCBoZnNjX3NjaGVkICpxID0gcWRpc2NfcHJpdihzY2gpOwogCi0JdGNmX2Rlc3Ryb3lfY2hhaW4oY2wtPmZpbHRlcl9saXN0KTsKKwl0Y2ZfZGVzdHJveV9jaGFpbigmY2wtPmZpbHRlcl9saXN0KTsKIAlxZGlzY19kZXN0cm95KGNsLT5xZGlzYyk7CiAJZ2VuX2tpbGxfZXN0aW1hdG9yKCZjbC0+YnN0YXRzLCAmY2wtPnJhdGVfZXN0KTsKIAlpZiAoY2wgIT0gJnEtPnJvb3QpCkBAIC0xNTQxLDYgKzE1NDEsMTAgQEAKIAl1bnNpZ25lZCBpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBIRlNDX0hTSVpFOyBpKyspIHsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShjbCwgJnEtPmNsaGFzaFtpXSwgaGxpc3QpCisJCQl0Y2ZfZGVzdHJveV9jaGFpbigmY2wtPmZpbHRlcl9saXN0KTsKKwl9CisJZm9yIChpID0gMDsgaSA8IEhGU0NfSFNJWkU7IGkrKykgewogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY2wsIG5leHQsICZxLT5jbGhhc2hbaV0sIGhsaXN0KQogCQkJaGZzY19kZXN0cm95X2NsYXNzKHNjaCwgY2wpOwogCX0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfaHRiLmMgYi9uZXQvc2NoZWQvc2NoX2h0Yi5jCmluZGV4IDY4MDdjOTcuLjNmYjU4ZjQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfaHRiLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9odGIuYwpAQCAtMTIzOCw3ICsxMjM4LDcgQEAKIAlxZGlzY19wdXRfcnRhYihjbC0+cmF0ZSk7CiAJcWRpc2NfcHV0X3J0YWIoY2wtPmNlaWwpOwogCi0JdGNmX2Rlc3Ryb3lfY2hhaW4oY2wtPmZpbHRlcl9saXN0KTsKKwl0Y2ZfZGVzdHJveV9jaGFpbigmY2wtPmZpbHRlcl9saXN0KTsKIAogCXdoaWxlICghbGlzdF9lbXB0eSgmY2wtPmNoaWxkcmVuKSkKIAkJaHRiX2Rlc3Ryb3lfY2xhc3Moc2NoLCBsaXN0X2VudHJ5KGNsLT5jaGlsZHJlbi5uZXh0LApAQCAtMTI2Nyw3ICsxMjY3LDcgQEAKIAkgICBhbmQgc3VycHJpc2luZ2x5IGl0IHdvcmtlZCBpbiAyLjQuIEJ1dCBpdCBtdXN0IHByZWNlZGUgaXQKIAkgICBiZWNhdXNlIGZpbHRlciBuZWVkIGl0cyB0YXJnZXQgY2xhc3MgYWxpdmUgdG8gYmUgYWJsZSB0byBjYWxsCiAJICAgdW5iaW5kX2ZpbHRlciBvbiBpdCAod2l0aG91dCBPb3BzKS4gKi8KLQl0Y2ZfZGVzdHJveV9jaGFpbihxLT5maWx0ZXJfbGlzdCk7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJnEtPmZpbHRlcl9saXN0KTsKIAogCXdoaWxlICghbGlzdF9lbXB0eSgmcS0+cm9vdCkpCiAJCWh0Yl9kZXN0cm95X2NsYXNzKHNjaCwgbGlzdF9lbnRyeShxLT5yb290Lm5leHQsCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2luZ3Jlc3MuYyBiL25ldC9zY2hlZC9zY2hfaW5ncmVzcy5jCmluZGV4IDI3NGIxZGQuLjk1NmM4MGEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfaW5ncmVzcy5jCisrKyBiL25ldC9zY2hlZC9zY2hfaW5ncmVzcy5jCkBAIC0xMDQsNyArMTA0LDcgQEAKIHsKIAlzdHJ1Y3QgaW5ncmVzc19xZGlzY19kYXRhICpwID0gcWRpc2NfcHJpdihzY2gpOwogCi0JdGNmX2Rlc3Ryb3lfY2hhaW4ocC0+ZmlsdGVyX2xpc3QpOworCXRjZl9kZXN0cm95X2NoYWluKCZwLT5maWx0ZXJfbGlzdCk7CiB9CiAKIHN0YXRpYyBpbnQgaW5ncmVzc19kdW1wKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9wcmlvLmMgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwppbmRleCA0YWEyYjQ1Li41NTMyZjEwIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX3ByaW8uYworKysgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwpAQCAtMjE5LDcgKzIxOSw3IEBACiAJaW50IHByaW87CiAJc3RydWN0IHByaW9fc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAotCXRjZl9kZXN0cm95X2NoYWluKHEtPmZpbHRlcl9saXN0KTsKKwl0Y2ZfZGVzdHJveV9jaGFpbigmcS0+ZmlsdGVyX2xpc3QpOwogCWZvciAocHJpbz0wOyBwcmlvPHEtPmJhbmRzOyBwcmlvKyspCiAJCXFkaXNjX2Rlc3Ryb3kocS0+cXVldWVzW3ByaW9dKTsKIH0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfc2ZxLmMgYi9uZXQvc2NoZWQvc2NoX3NmcS5jCmluZGV4IGYwNDYzZDcuLjZhOTdhZmIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfc2ZxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9zZnEuYwpAQCAtNTIwLDcgKzUyMCw3IEBACiB7CiAJc3RydWN0IHNmcV9zY2hlZF9kYXRhICpxID0gcWRpc2NfcHJpdihzY2gpOwogCi0JdGNmX2Rlc3Ryb3lfY2hhaW4ocS0+ZmlsdGVyX2xpc3QpOworCXRjZl9kZXN0cm95X2NoYWluKCZxLT5maWx0ZXJfbGlzdCk7CiAJcS0+cGVydHVyYl9wZXJpb2QgPSAwOwogCWRlbF90aW1lcl9zeW5jKCZxLT5wZXJ0dXJiX3RpbWVyKTsKIH0KZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKaW5kZXggMGM5ZDVhNi4uZmNkYjQ1ZCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKKysrIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKQEAgLTU4OTksMTIgKzU4OTksNiBAQAogCQlyZXR1cm4gU0NUUF9JRVJST1JfTk9fREFUQTsKIAl9CiAKLQkvKiBJZiBkZWZpbmF0ZWx5IGFjY2VwdGluZyB0aGUgREFUQSBjaHVuaywgcmVjb3JkIGl0cyBUU04sIG90aGVyd2lzZQotCSAqIHdhaXQgZm9yIHJlbmVnZSBwcm9jZXNzaW5nLgotCSAqLwotCWlmIChTQ1RQX0NNRF9DSFVOS19VTFAgPT0gZGVsaXZlcikKLQkJc2N0cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9SRVBPUlRfVFNOLCBTQ1RQX1UzMih0c24pKTsKLQogCWNodW5rLT5kYXRhX2FjY2VwdGVkID0gMTsKIAogCS8qIE5vdGU6IFNvbWUgY2h1bmtzIG1heSBnZXQgb3ZlcmNvdW50ZWQgKGlmIHdlIGRyb3ApIG9yIG92ZXJjb3VudGVkCkBAIC01OTI0LDYgKzU5MTgsOSBAQAogCSAqIGFuZCBkaXNjYXJkIHRoZSBEQVRBIGNodW5rLgogCSAqLwogCWlmIChudG9ocyhkYXRhX2hkci0+c3RyZWFtKSA+PSBhc29jLT5jLnNpbml0X21heF9pbnN0cmVhbXMpIHsKKwkJLyogTWFyayB0c24gYXMgcmVjZWl2ZWQgZXZlbiB0aG91Z2ggd2UgZHJvcCBpdCAqLworCQlzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX1JFUE9SVF9UU04sIFNDVFBfVTMyKHRzbikpOworCiAJCWVyciA9IHNjdHBfbWFrZV9vcF9lcnJvcihhc29jLCBjaHVuaywgU0NUUF9FUlJPUl9JTlZfU1RSTSwKIAkJCQkJICZkYXRhX2hkci0+c3RyZWFtLAogCQkJCQkgc2l6ZW9mKGRhdGFfaGRyLT5zdHJlYW0pKTsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3VscGV2ZW50LmMgYi9uZXQvc2N0cC91bHBldmVudC5jCmluZGV4IGNlNmNkYTYuLmExZjY1NGEgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3VscGV2ZW50LmMKKysrIGIvbmV0L3NjdHAvdWxwZXZlbnQuYwpAQCAtNzEwLDYgKzcxMCwxMSBAQAogCWlmICghc2tiKQogCQlnb3RvIGZhaWw7CiAKKwkvKiBOb3cgdGhhdCBhbGwgbWVtb3J5IGFsbG9jYXRpb25zIGZvciB0aGlzIGNodW5rIHN1Y2NlZWRlZCwgd2UKKwkgKiBjYW4gbWFyayBpdCBhcyByZWNlaXZlZCBzbyB0aGUgdHNuX21hcCBpcyB1cGRhdGVkIGNvcnJlY3RseS4KKwkgKi8KKwlzY3RwX3Rzbm1hcF9tYXJrKCZhc29jLT5wZWVyLnRzbl9tYXAsIG50b2hsKGNodW5rLT5zdWJoLmRhdGFfaGRyLT50c24pKTsKKwogCS8qIEZpcnN0IGNhbGN1bGF0ZSB0aGUgcGFkZGluZywgc28gd2UgZG9uJ3QgaW5hZHZlcnRlbnRseQogCSAqIHBhc3MgdXAgdGhlIHdyb25nIGxlbmd0aCB0byB0aGUgdXNlci4KIAkgKgpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9zdmNhdXRoX2dzcy5jIGIvbmV0L3N1bnJwYy9hdXRoX2dzcy9zdmNhdXRoX2dzcy5jCmluZGV4IDU5MDVkNTY3Li44MWFlM2Q2IDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL2F1dGhfZ3NzL3N2Y2F1dGhfZ3NzLmMKKysrIGIvbmV0L3N1bnJwYy9hdXRoX2dzcy9zdmNhdXRoX2dzcy5jCkBAIC0xMTQ0LDIwICsxMTQ0LDIwIEBACiAJCWNhc2UgUlBDX0dTU19TVkNfTk9ORToKIAkJCWJyZWFrOwogCQljYXNlIFJQQ19HU1NfU1ZDX0lOVEVHUklUWToKKwkJCS8qIHBsYWNlaG9sZGVycyBmb3IgbGVuZ3RoIGFuZCBzZXEuIG51bWJlcjogKi8KKwkJCXN2Y19wdXRubChyZXN2LCAwKTsKKwkJCXN2Y19wdXRubChyZXN2LCAwKTsKIAkJCWlmICh1bndyYXBfaW50ZWdfZGF0YSgmcnFzdHAtPnJxX2FyZywKIAkJCQkJZ2MtPmdjX3NlcSwgcnNjaS0+bWVjaGN0eCkpCiAJCQkJZ290byBnYXJiYWdlX2FyZ3M7CisJCQlicmVhazsKKwkJY2FzZSBSUENfR1NTX1NWQ19QUklWQUNZOgogCQkJLyogcGxhY2Vob2xkZXJzIGZvciBsZW5ndGggYW5kIHNlcS4gbnVtYmVyOiAqLwogCQkJc3ZjX3B1dG5sKHJlc3YsIDApOwogCQkJc3ZjX3B1dG5sKHJlc3YsIDApOwotCQkJYnJlYWs7Ci0JCWNhc2UgUlBDX0dTU19TVkNfUFJJVkFDWToKIAkJCWlmICh1bndyYXBfcHJpdl9kYXRhKHJxc3RwLCAmcnFzdHAtPnJxX2FyZywKIAkJCQkJZ2MtPmdjX3NlcSwgcnNjaS0+bWVjaGN0eCkpCiAJCQkJZ290byBnYXJiYWdlX2FyZ3M7Ci0JCQkvKiBwbGFjZWhvbGRlcnMgZm9yIGxlbmd0aCBhbmQgc2VxLiBudW1iZXI6ICovCi0JCQlzdmNfcHV0bmwocmVzdiwgMCk7Ci0JCQlzdmNfcHV0bmwocmVzdiwgMCk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWdvdG8gYXV0aF9lcnI7CkBAIC0xMTcwLDggKzExNzAsNiBAQAogCQlnb3RvIG91dDsKIAl9CiBnYXJiYWdlX2FyZ3M6Ci0JLyogUmVzdG9yZSB3cml0ZSBwb2ludGVyIHRvIGl0cyBvcmlnaW5hbCB2YWx1ZTogKi8KLQl4ZHJfcmVzc2l6ZV9jaGVjayhycXN0cCwgcmVqZWN0X3N0YXQpOwogCXJldCA9IFNWQ19HQVJCQUdFOwogCWdvdG8gb3V0OwogYXV0aF9lcnI6CmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3JwY2JfY2xudC5jIGIvbmV0L3N1bnJwYy9ycGNiX2NsbnQuYwppbmRleCAwNTE3OTY3Li5lNmZiMjFiIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3JwY2JfY2xudC5jCisrKyBiL25ldC9zdW5ycGMvcnBjYl9jbG50LmMKQEAgLTI0MywxMCArMjQzLDEwIEBACiB9CiBFWFBPUlRfU1lNQk9MX0dQTChycGNiX2dldHBvcnRfc3luYyk7CiAKLXN0YXRpYyBzdHJ1Y3QgcnBjX3Rhc2sgKnJwY2JfY2FsbF9hc3luYyhzdHJ1Y3QgcnBjX2NsbnQgKnJwY2JfY2xudCwgc3RydWN0IHJwY2JpbmRfYXJncyAqbWFwLCBpbnQgdmVyc2lvbikKK3N0YXRpYyBzdHJ1Y3QgcnBjX3Rhc2sgKnJwY2JfY2FsbF9hc3luYyhzdHJ1Y3QgcnBjX2NsbnQgKnJwY2JfY2xudCwgc3RydWN0IHJwY2JpbmRfYXJncyAqbWFwLCBzdHJ1Y3QgcnBjX3Byb2NpbmZvICpwcm9jKQogewogCXN0cnVjdCBycGNfbWVzc2FnZSBtc2cgPSB7Ci0JCS5ycGNfcHJvYyA9IHJwY2JfbmV4dF92ZXJzaW9uW3ZlcnNpb25dLnJwY19wcm9jLAorCQkucnBjX3Byb2MgPSBwcm9jLAogCQkucnBjX2FyZ3AgPSBtYXAsCiAJCS5ycGNfcmVzcCA9ICZtYXAtPnJfcG9ydCwKIAl9OwpAQCAtMjcxLDYgKzI3MSw3IEBACiB2b2lkIHJwY2JfZ2V0cG9ydF9hc3luYyhzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2spCiB7CiAJc3RydWN0IHJwY19jbG50ICpjbG50ID0gdGFzay0+dGtfY2xpZW50OworCXN0cnVjdCBycGNfcHJvY2luZm8gKnByb2M7CiAJdTMyIGJpbmRfdmVyc2lvbjsKIAlzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQgPSB0YXNrLT50a194cHJ0OwogCXN0cnVjdCBycGNfY2xudAkqcnBjYl9jbG50OwpAQCAtMjgwLDcgKzI4MSw2IEBACiAJc3RydWN0IHNvY2thZGRyICpzYXAgPSAoc3RydWN0IHNvY2thZGRyICopJmFkZHI7CiAJc2l6ZV90IHNhbGVuOwogCWludCBzdGF0dXM7Ci0Jc3RydWN0IHJwY2JfaW5mbyAqaW5mbzsKIAogCWRwcmludGsoIlJQQzogJTV1ICVzKCVzLCAldSwgJXUsICVkKVxuIiwKIAkJdGFzay0+dGtfcGlkLCBfX2Z1bmNfXywKQEAgLTMxMywxMCArMzEzLDEyIEBACiAJLyogRG9uJ3QgZXZlciB1c2UgcnBjYmluZCB2MiBmb3IgQUZfSU5FVDYgcmVxdWVzdHMgKi8KIAlzd2l0Y2ggKHNhcC0+c2FfZmFtaWx5KSB7CiAJY2FzZSBBRl9JTkVUOgotCQlpbmZvID0gcnBjYl9uZXh0X3ZlcnNpb247CisJCXByb2MgPSBycGNiX25leHRfdmVyc2lvblt4cHJ0LT5iaW5kX2luZGV4XS5ycGNfcHJvYzsKKwkJYmluZF92ZXJzaW9uID0gcnBjYl9uZXh0X3ZlcnNpb25beHBydC0+YmluZF9pbmRleF0ucnBjX3ZlcnM7CiAJCWJyZWFrOwogCWNhc2UgQUZfSU5FVDY6Ci0JCWluZm8gPSBycGNiX25leHRfdmVyc2lvbjY7CisJCXByb2MgPSBycGNiX25leHRfdmVyc2lvbjZbeHBydC0+YmluZF9pbmRleF0ucnBjX3Byb2M7CisJCWJpbmRfdmVyc2lvbiA9IHJwY2JfbmV4dF92ZXJzaW9uNlt4cHJ0LT5iaW5kX2luZGV4XS5ycGNfdmVyczsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJc3RhdHVzID0gLUVBRk5PU1VQUE9SVDsKQEAgLTMyNCwxNCArMzI2LDEzIEBACiAJCQkJdGFzay0+dGtfcGlkLCBfX2Z1bmNfXyk7CiAJCWdvdG8gYmFpbG91dF9ub2ZyZWU7CiAJfQotCWlmIChpbmZvW3hwcnQtPmJpbmRfaW5kZXhdLnJwY19wcm9jID09IE5VTEwpIHsKKwlpZiAocHJvYyA9PSBOVUxMKSB7CiAJCXhwcnQtPmJpbmRfaW5kZXggPSAwOwogCQlzdGF0dXMgPSAtRVBGTk9TVVBQT1JUOwogCQlkcHJpbnRrKCJSUEM6ICU1dSAlczogbm8gbW9yZSBnZXRwb3J0IHZlcnNpb25zIGF2YWlsYWJsZVxuIiwKIAkJCXRhc2stPnRrX3BpZCwgX19mdW5jX18pOwogCQlnb3RvIGJhaWxvdXRfbm9mcmVlOwogCX0KLQliaW5kX3ZlcnNpb24gPSBpbmZvW3hwcnQtPmJpbmRfaW5kZXhdLnJwY192ZXJzOwogCiAJZHByaW50aygiUlBDOiAlNXUgJXM6IHRyeWluZyBycGNiaW5kIHZlcnNpb24gJXVcbiIsCiAJCXRhc2stPnRrX3BpZCwgX19mdW5jX18sIGJpbmRfdmVyc2lvbik7CkBAIC0zNjEsMjIgKzM2MiwyMCBAQAogCW1hcC0+cl9hZGRyID0gcnBjX3BlZXJhZGRyMnN0cihycGNiX2NsbnQsIFJQQ19ESVNQTEFZX1VOSVZFUlNBTF9BRERSKTsKIAltYXAtPnJfb3duZXIgPSBSUENCX09XTkVSX1NUUklORzsJLyogaWdub3JlZCBmb3IgR0VUQUREUiAqLwogCi0JY2hpbGQgPSBycGNiX2NhbGxfYXN5bmMocnBjYl9jbG50LCBtYXAsIHhwcnQtPmJpbmRfaW5kZXgpOworCWNoaWxkID0gcnBjYl9jYWxsX2FzeW5jKHJwY2JfY2xudCwgbWFwLCBwcm9jKTsKIAlycGNfcmVsZWFzZV9jbGllbnQocnBjYl9jbG50KTsKIAlpZiAoSVNfRVJSKGNoaWxkKSkgewogCQlzdGF0dXMgPSAtRUlPOworCQkvKiBycGNiX21hcF9yZWxlYXNlKCkgaGFzIGZyZWVkIHRoZSBhcmd1bWVudHMgKi8KIAkJZHByaW50aygiUlBDOiAlNXUgJXM6IHJwY19ydW5fdGFzayBmYWlsZWRcbiIsCiAJCQl0YXNrLT50a19waWQsIF9fZnVuY19fKTsKLQkJZ290byBiYWlsb3V0OworCQlnb3RvIGJhaWxvdXRfbm9mcmVlOwogCX0KIAlycGNfcHV0X3Rhc2soY2hpbGQpOwogCiAJdGFzay0+dGtfeHBydC0+c3RhdC5iaW5kX2NvdW50Kys7CiAJcmV0dXJuOwogCi1iYWlsb3V0OgotCWtmcmVlKG1hcCk7Ci0JeHBydF9wdXQoeHBydCk7CiBiYWlsb3V0X25vZnJlZToKIAlycGNiX3dha2VfcnBjYmluZF93YWl0ZXJzKHhwcnQsIHN0YXR1cyk7CiBiYWlsb3V0X25vd2FrZToKZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3VuaXguYwppbmRleCA2NTc4MzVmLi43ODMzMTdkIDEwMDY0NAotLS0gYS9uZXQvdW5peC9hZl91bml4LmMKKysrIGIvbmV0L3VuaXgvYWZfdW5peC5jCkBAIC00ODcsOCArNDg3LDggQEAKIHN0YXRpYyBpbnQgdW5peF9hY2NlcHQoc3RydWN0IHNvY2tldCAqLCBzdHJ1Y3Qgc29ja2V0ICosIGludCk7CiBzdGF0aWMgaW50IHVuaXhfZ2V0bmFtZShzdHJ1Y3Qgc29ja2V0ICosIHN0cnVjdCBzb2NrYWRkciAqLCBpbnQgKiwgaW50KTsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgdW5peF9wb2xsKHN0cnVjdCBmaWxlICosIHN0cnVjdCBzb2NrZXQgKiwgcG9sbF90YWJsZSAqKTsKLXN0YXRpYyB1bnNpZ25lZCBpbnQgdW5peF9kYXRhZ3JhbV9wb2xsKHN0cnVjdCBmaWxlICosIHN0cnVjdCBzb2NrZXQgKiwKLQkJCQkgICAgICAgcG9sbF90YWJsZSAqKTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgdW5peF9kZ3JhbV9wb2xsKHN0cnVjdCBmaWxlICosIHN0cnVjdCBzb2NrZXQgKiwKKwkJCQkgICAgcG9sbF90YWJsZSAqKTsKIHN0YXRpYyBpbnQgdW5peF9pb2N0bChzdHJ1Y3Qgc29ja2V0ICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CiBzdGF0aWMgaW50IHVuaXhfc2h1dGRvd24oc3RydWN0IHNvY2tldCAqLCBpbnQpOwogc3RhdGljIGludCB1bml4X3N0cmVhbV9zZW5kbXNnKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3Qgc29ja2V0ICosCkBAIC01MzQsNyArNTM0LDcgQEAKIAkuc29ja2V0cGFpciA9CXVuaXhfc29ja2V0cGFpciwKIAkuYWNjZXB0ID0Jc29ja19ub19hY2NlcHQsCiAJLmdldG5hbWUgPQl1bml4X2dldG5hbWUsCi0JLnBvbGwgPQkJdW5peF9kYXRhZ3JhbV9wb2xsLAorCS5wb2xsID0JCXVuaXhfZGdyYW1fcG9sbCwKIAkuaW9jdGwgPQl1bml4X2lvY3RsLAogCS5saXN0ZW4gPQlzb2NrX25vX2xpc3RlbiwKIAkuc2h1dGRvd24gPQl1bml4X3NodXRkb3duLApAQCAtNTU1LDcgKzU1NSw3IEBACiAJLnNvY2tldHBhaXIgPQl1bml4X3NvY2tldHBhaXIsCiAJLmFjY2VwdCA9CXVuaXhfYWNjZXB0LAogCS5nZXRuYW1lID0JdW5peF9nZXRuYW1lLAotCS5wb2xsID0JCXVuaXhfZGF0YWdyYW1fcG9sbCwKKwkucG9sbCA9CQl1bml4X2RncmFtX3BvbGwsCiAJLmlvY3RsID0JdW5peF9pb2N0bCwKIAkubGlzdGVuID0JdW5peF9saXN0ZW4sCiAJLnNodXRkb3duID0JdW5peF9zaHV0ZG93biwKQEAgLTE5OTQsMjkgKzE5OTQsMTMgQEAKIAlyZXR1cm4gbWFzazsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCB1bml4X2RhdGFncmFtX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCi0JCQkJICAgICAgIHBvbGxfdGFibGUgKndhaXQpCitzdGF0aWMgdW5zaWduZWQgaW50IHVuaXhfZGdyYW1fcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywKKwkJCQkgICAgcG9sbF90YWJsZSAqd2FpdCkKIHsKLQlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zaywgKnBlZXI7Ci0JdW5zaWduZWQgaW50IG1hc2s7CisJc3RydWN0IHNvY2sgKnNrID0gc29jay0+c2ssICpvdGhlcjsKKwl1bnNpZ25lZCBpbnQgbWFzaywgd3JpdGFibGU7CiAKIAlwb2xsX3dhaXQoZmlsZSwgc2stPnNrX3NsZWVwLCB3YWl0KTsKLQotCXBlZXIgPSB1bml4X3BlZXJfZ2V0KHNrKTsKLQlpZiAocGVlcikgewotCQlpZiAocGVlciAhPSBzaykgewotCQkJLyoKLQkJCSAqIFdyaXRhYmlsaXR5IG9mIGEgY29ubmVjdGVkIHNvY2tldCBhZGRpdGlvbmFsbHkKLQkJCSAqIGRlcGVuZHMgb24gdGhlIHN0YXRlIG9mIHRoZSByZWNlaXZlIHF1ZXVlIG9mIHRoZQotCQkJICogcGVlci4KLQkJCSAqLwotCQkJcG9sbF93YWl0KGZpbGUsICZ1bml4X3NrKHBlZXIpLT5wZWVyX3dhaXQsIHdhaXQpOwotCQl9IGVsc2UgewotCQkJc29ja19wdXQocGVlcik7Ci0JCQlwZWVyID0gTlVMTDsKLQkJfQotCX0KLQogCW1hc2sgPSAwOwogCiAJLyogZXhjZXB0aW9uYWwgZXZlbnRzPyAqLwpAQCAtMjA0MiwxNCArMjAyNiwyNiBAQAogCX0KIAogCS8qIHdyaXRhYmxlPyAqLwotCWlmICh1bml4X3dyaXRhYmxlKHNrKSAmJiAhKHBlZXIgJiYgdW5peF9yZWN2cV9mdWxsKHBlZXIpKSkKKwl3cml0YWJsZSA9IHVuaXhfd3JpdGFibGUoc2spOworCWlmICh3cml0YWJsZSkgeworCQlvdGhlciA9IHVuaXhfcGVlcl9nZXQoc2spOworCQlpZiAob3RoZXIpIHsKKwkJCWlmICh1bml4X3BlZXIob3RoZXIpICE9IHNrKSB7CisJCQkJcG9sbF93YWl0KGZpbGUsICZ1bml4X3NrKG90aGVyKS0+cGVlcl93YWl0LAorCQkJCQkgIHdhaXQpOworCQkJCWlmICh1bml4X3JlY3ZxX2Z1bGwob3RoZXIpKQorCQkJCQl3cml0YWJsZSA9IDA7CisJCQl9CisKKwkJCXNvY2tfcHV0KG90aGVyKTsKKwkJfQorCX0KKworCWlmICh3cml0YWJsZSkKIAkJbWFzayB8PSBQT0xMT1VUIHwgUE9MTFdSTk9STSB8IFBPTExXUkJBTkQ7CiAJZWxzZQogCQlzZXRfYml0KFNPQ0tfQVNZTkNfTk9TUEFDRSwgJnNrLT5za19zb2NrZXQtPmZsYWdzKTsKIAotCWlmIChwZWVyKQotCQlzb2NrX3B1dChwZWVyKTsKLQogCXJldHVybiBtYXNrOwogfQogCmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvcmVnLmMgYi9uZXQvd2lyZWxlc3MvcmVnLmMKaW5kZXggMTg1NDg4ZC4uODU1YmZmNCAxMDA2NDQKLS0tIGEvbmV0L3dpcmVsZXNzL3JlZy5jCisrKyBiL25ldC93aXJlbGVzcy9yZWcuYwpAQCAtODAsNiArODAsMjMgQEAKIAkJCQkgICAgIElFRUU4MDIxMV9DSEFOX1JBREFSKSwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWxfcmFuZ2UgaWVlZTgwMjExX0VVX2NoYW5uZWxzW10gPSB7CisJLyogSUVFRSA4MDIuMTFiL2csIGNoYW5uZWxzIDEuLjEzICovCisJUkFOR0VfUFdSKDI0MTIsIDI0NzIsIDIwLCA2LCAwKSwKKwkvKiBJRUVFIDgwMi4xMWEsIGNoYW5uZWwgMzYqLworCVJBTkdFX1BXUig1MTgwLCA1MTgwLCAyMywgNiwgSUVFRTgwMjExX0NIQU5fUEFTU0lWRV9TQ0FOKSwKKwkvKiBJRUVFIDgwMi4xMWEsIGNoYW5uZWwgNDAqLworCVJBTkdFX1BXUig1MjAwLCA1MjAwLCAyMywgNiwgSUVFRTgwMjExX0NIQU5fUEFTU0lWRV9TQ0FOKSwKKwkvKiBJRUVFIDgwMi4xMWEsIGNoYW5uZWwgNDQqLworCVJBTkdFX1BXUig1MjIwLCA1MjIwLCAyMywgNiwgSUVFRTgwMjExX0NIQU5fUEFTU0lWRV9TQ0FOKSwKKwkvKiBJRUVFIDgwMi4xMWEsIGNoYW5uZWxzIDQ4Li42NCAqLworCVJBTkdFX1BXUig1MjQwLCA1MzIwLCAyMywgNiwgSUVFRTgwMjExX0NIQU5fTk9fSUJTUyB8CisJCQkJICAgICBJRUVFODAyMTFfQ0hBTl9SQURBUiksCisJLyogSUVFRSA4MDIuMTFhLCBjaGFubmVscyAxMDAuLjE0MCAqLworCVJBTkdFX1BXUig1NTAwLCA1NzAwLCAzMCwgNiwgSUVFRTgwMjExX0NIQU5fTk9fSUJTUyB8CisJCQkJICAgICBJRUVFODAyMTFfQ0hBTl9SQURBUiksCit9OworCiAjZGVmaW5lIFJFR0RPTShfY29kZSkJCQkJCQkJXAogCXsJCQkJCQkJCVwKIAkJLmNvZGUgPSBfX3N0cmluZ2lmeShfY29kZSksCQkJCVwKQEAgLTkwLDYgKzEwNyw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9yZWdkb21haW4gaWVlZTgwMjExX3JlZ2RvbXNbXSA9IHsKIAlSRUdET00oVVMpLAogCVJFR0RPTShKUCksCisJUkVHRE9NKEVVKSwKIH07CiAKIApkaWZmIC0tZ2l0IGEvbmV0L3hmcm0veGZybV91c2VyLmMgYi9uZXQveGZybS94ZnJtX3VzZXIuYwppbmRleCBiOTc2ZDllLi4wNGM0MTUwIDEwMDY0NAotLS0gYS9uZXQveGZybS94ZnJtX3VzZXIuYworKysgYi9uZXQveGZybS94ZnJtX3VzZXIuYwpAQCAtMjc3LDkgKzI3Nyw4IEBACiAJbWVtY3B5KCZ4LT5wcm9wcy5zYWRkciwgJnAtPnNhZGRyLCBzaXplb2YoeC0+cHJvcHMuc2FkZHIpKTsKIAl4LT5wcm9wcy5mbGFncyA9IHAtPmZsYWdzOwogCi0JaWYgKCF4LT5zZWwuZmFtaWx5KQorCWlmICgheC0+c2VsLmZhbWlseSAmJiAhKHAtPmZsYWdzICYgWEZSTV9TVEFURV9BRl9VTlNQRUMpKQogCQl4LT5zZWwuZmFtaWx5ID0gcC0+ZmFtaWx5OwotCiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLmZ3aW5zdCBiL3NjcmlwdHMvTWFrZWZpbGUuZndpbnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMmY0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL01ha2VmaWxlLmZ3aW5zdApAQCAtMCwwICsxLDQ1IEBACisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEluc3RhbGxpbmcgZmlybXdhcmUKKyMKKyMgV2UgZG9uJ3QgaW5jbHVkZSB0aGUgLmNvbmZpZywgc28gYWxsIGZpcm13YXJlIGZpbGVzIGFyZSBpbiAkKGZ3LXNoaXBwZWQtKQorIyByYXRoZXIgdGhhbiBpbiAkKGZ3LXNoaXBwZWQteSkgb3IgJChmdy1zaGlwcGVkLW4pLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJTlNUQUxMIDo9IGluc3RhbGwKK3NyYyA6PSAkKG9iaikKKworIyBGb3IgbW9kdWxlc19pbnN0YWxsIGluc3RhbGxpbmcgZmlybXdhcmUsIHdlIHdhbnQgdG8gc2VlIC5jb25maWcKKyMgQnV0IGZvciBmaXJtd2FyZV9pbnN0YWxsLCB3ZSBkb24ndCBjYXJlLCBidXQgZG9uJ3Qgd2FudCB0byByZXF1aXJlIGl0LgorLWluY2x1ZGUgJChvYmp0cmVlKS8uY29uZmlnCisKK2luY2x1ZGUgc2NyaXB0cy9LYnVpbGQuaW5jbHVkZQoraW5jbHVkZSAkKHNyY3RyZWUpLyQob2JqKS9NYWtlZmlsZQorCitpbmNsdWRlIHNjcmlwdHMvTWFrZWZpbGUuaG9zdAorCittb2QtZncgOj0gJChhZGRwcmVmaXggJChJTlNUQUxMX0ZXX1BBVEgpLywkKGZ3LXNoaXBwZWQtbSkpCisKKyMgSWYgQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTCBpc24ndCBzZXQsIHRoZW4gaW5zdGFsbCB0aGUgCisjIGZpcm13YXJlIGZvciBpbi1rZXJuZWwgZHJpdmVycyB0b28uCitpZm5kZWYgQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTAorbW9kLWZ3ICs9ICQoYWRkcHJlZml4ICQoSU5TVEFMTF9GV19QQVRIKS8sJChmdy1zaGlwcGVkLXkpKQorZW5kaWYKKworaW5zdGFsbGVkLWZ3IDo9ICQoYWRkcHJlZml4ICQoSU5TVEFMTF9GV19QQVRIKS8sJChmdy1zaGlwcGVkLWFsbCkpCitpbnN0YWxsZWQtZnctZGlycyA6PSAkKHNvcnQgJChkaXIgJChpbnN0YWxsZWQtZncpKSkgJChJTlNUQUxMX0ZXX1BBVEgpLy4KKworcXVpZXRfY21kX2luc3RhbGwgPSBJTlNUQUxMICQoc3Vic3QgJChzcmN0cmVlKS8sLCRAKQorICAgICAgY21kX2luc3RhbGwgPSAkKElOU1RBTEwpIC1tMDY0NCAkPCAkQAorCiskKGluc3RhbGxlZC1mdy1kaXJzKToKKwkkKGNhbGwgY21kLG1rZGlyKQorCiskKGluc3RhbGxlZC1mdyk6ICQoSU5TVEFMTF9GV19QQVRIKS8lOiAkKG9iaikvJSB8ICQoSU5TVEFMTF9GV19QQVRIKS8kJChkaXIgJSkvCisJJChjYWxsIGNtZCxpbnN0YWxsKQorCisuUEhPTlk6IF9fZndfaW5zdGFsbCBfX2Z3X21vZGluc3QgRk9SQ0UKKworX19md19pbnN0YWxsOiAkKGluc3RhbGxlZC1mdykKK19fZndfbW9kaW5zdDogJChtb2QtZncpCisKK0ZPUkNFOgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9NYWtlZmlsZS5saWIgYi9zY3JpcHRzL01ha2VmaWxlLmxpYgppbmRleCA4ZTQ0MDIzLi5lYTQ4YjgyIDEwMDY0NAotLS0gYS9zY3JpcHRzL01ha2VmaWxlLmxpYgorKysgYi9zY3JpcHRzL01ha2VmaWxlLmxpYgpAQCAtOTYsNyArOTYsOCBAQAogbW9kbmFtZV9mbGFncyAgPSAkKGlmICQoZmlsdGVyIDEsJCh3b3JkcyAkKG1vZG5hbWUpKSksXAogICAgICAgICAgICAgICAgICAtRCJLQlVJTERfTU9ETkFNRT1LQlVJTERfU1RSKCQoY2FsbCBuYW1lLWZpeCwkKG1vZG5hbWUpKSkiKQogCi1fY19mbGFncyAgICAgICA9ICQoS0JVSUxEX0NGTEFHUykgJChjY2ZsYWdzLXkpICQoQ0ZMQUdTXyQoYmFzZXRhcmdldCkubykKK29yaWdfY19mbGFncyAgID0gJChLQlVJTERfQ0ZMQUdTKSAkKGNjZmxhZ3MteSkgJChDRkxBR1NfJChiYXNldGFyZ2V0KS5vKQorX2NfZmxhZ3MgICAgICAgPSAkKGZpbHRlci1vdXQgJChDRkxBR1NfUkVNT1ZFXyQoYmFzZXRhcmdldCkubyksICQob3JpZ19jX2ZsYWdzKSkKIF9hX2ZsYWdzICAgICAgID0gJChLQlVJTERfQUZMQUdTKSAkKGFzZmxhZ3MteSkgJChBRkxBR1NfJChiYXNldGFyZ2V0KS5vKQogX2NwcF9mbGFncyAgICAgPSAkKEtCVUlMRF9DUFBGTEFHUykgJChjcHBmbGFncy15KSAkKENQUEZMQUdTXyQoQEYpKQogCmRpZmYgLS1naXQgYS9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMgYi9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMKaW5kZXggY2VhNGE3OS4uMzdkNWMzNiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tb2QvZmlsZTJhbGlhcy5jCisrKyBiL3NjcmlwdHMvbW9kL2ZpbGUyYWxpYXMuYwpAQCAtMzA0LDYgKzMwNCwxNCBAQAogCXJldHVybiAxOwogfQogCisvKiBsb29rcyBsaWtlOiAiY3NzOnROIiAqLworc3RhdGljIGludCBkb19jc3NfZW50cnkoY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQlzdHJ1Y3QgY3NzX2RldmljZV9pZCAqaWQsIGNoYXIgKmFsaWFzKQoreworCXNwcmludGYoYWxpYXMsICJjc3M6dCUwMVgiLCBpZC0+dHlwZSk7CisJcmV0dXJuIDE7Cit9CisKIC8qIExvb2tzIGxpa2U6ICJzZXJpbzp0eU5wck5pZE5leE4iICovCiBzdGF0aWMgaW50IGRvX3NlcmlvX2VudHJ5KGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogCQkJICBzdHJ1Y3Qgc2VyaW9fZGV2aWNlX2lkICppZCwgY2hhciAqYWxpYXMpCkBAIC02ODAsNiArNjg4LDEwIEBACiAJCWRvX3RhYmxlKHN5bXZhbCwgc3ltLT5zdF9zaXplLAogCQkJIHNpemVvZihzdHJ1Y3QgYXBfZGV2aWNlX2lkKSwgImFwIiwKIAkJCSBkb19hcF9lbnRyeSwgbW9kKTsKKwllbHNlIGlmIChzeW1faXMoc3ltbmFtZSwgIl9fbW9kX2Nzc19kZXZpY2VfdGFibGUiKSkKKwkJZG9fdGFibGUoc3ltdmFsLCBzeW0tPnN0X3NpemUsCisJCQkgc2l6ZW9mKHN0cnVjdCBjc3NfZGV2aWNlX2lkKSwgImNzcyIsCisJCQkgZG9fY3NzX2VudHJ5LCBtb2QpOwogCWVsc2UgaWYgKHN5bV9pcyhzeW1uYW1lLCAiX19tb2Rfc2VyaW9fZGV2aWNlX3RhYmxlIikpCiAJCWRvX3RhYmxlKHN5bXZhbCwgc3ltLT5zdF9zaXplLAogCQkJIHNpemVvZihzdHJ1Y3Qgc2VyaW9fZGV2aWNlX2lkKSwgInNlcmlvIiwKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L0tjb25maWcgYi9zZWN1cml0eS9LY29uZmlnCmluZGV4IDQ5YjUxZjkuLjYyZWQ0NzEgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L0tjb25maWcKKysrIGIvc2VjdXJpdHkvS2NvbmZpZwpAQCAtNzMsMTcgKzczLDkgQEAKIAkgIElQU2VjLgogCSAgSWYgeW91IGFyZSB1bnN1cmUgaG93IHRvIGFuc3dlciB0aGlzIHF1ZXN0aW9uLCBhbnN3ZXIgTi4KIAotY29uZmlnIFNFQ1VSSVRZX0NBUEFCSUxJVElFUwotCWJvb2wgIkRlZmF1bHQgTGludXggQ2FwYWJpbGl0aWVzIgotCWRlcGVuZHMgb24gU0VDVVJJVFkKLQlkZWZhdWx0IHkKLQloZWxwCi0JICBUaGlzIGVuYWJsZXMgdGhlICJkZWZhdWx0IiBMaW51eCBjYXBhYmlsaXRpZXMgZnVuY3Rpb25hbGl0eS4KLQkgIElmIHlvdSBhcmUgdW5zdXJlIGhvdyB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbiwgYW5zd2VyIFkuCi0KIGNvbmZpZyBTRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUwogCWJvb2wgIkZpbGUgUE9TSVggQ2FwYWJpbGl0aWVzIChFWFBFUklNRU5UQUwpIgotCWRlcGVuZHMgb24gKFNFQ1VSSVRZPW4gfHwgU0VDVVJJVFlfQ0FQQUJJTElUSUVTIT1uKSAmJiBFWFBFUklNRU5UQUwKKwlkZXBlbmRzIG9uIEVYUEVSSU1FTlRBTAogCWRlZmF1bHQgbgogCWhlbHAKIAkgIFRoaXMgZW5hYmxlcyBmaWxlc3lzdGVtIGNhcGFiaWxpdGllcywgYWxsb3dpbmcgeW91IHRvIGdpdmUKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L01ha2VmaWxlIGIvc2VjdXJpdHkvTWFrZWZpbGUKaW5kZXggN2VmMTEwNy4uZjY1NDI2MCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvTWFrZWZpbGUKKysrIGIvc2VjdXJpdHkvTWFrZWZpbGUKQEAgLTYsMTYgKzYsMTMgQEAKIHN1YmRpci0kKENPTkZJR19TRUNVUklUWV9TRUxJTlVYKQkrPSBzZWxpbnV4CiBzdWJkaXItJChDT05GSUdfU0VDVVJJVFlfU01BQ0spCQkrPSBzbWFjawogCi0jIGlmIHdlIGRvbid0IHNlbGVjdCBhIHNlY3VyaXR5IG1vZGVsLCB1c2UgdGhlIGRlZmF1bHQgY2FwYWJpbGl0aWVzCi1pZm5lcSAoJChDT05GSUdfU0VDVVJJVFkpLHkpCisjIGFsd2F5cyBlbmFibGUgZGVmYXVsdCBjYXBhYmlsaXRpZXMKIG9iai15CQkrPSBjb21tb25jYXAubwotZW5kaWYKIAogIyBPYmplY3QgZmlsZSBsaXN0cwotb2JqLSQoQ09ORklHX1NFQ1VSSVRZKQkJCSs9IHNlY3VyaXR5Lm8gZHVtbXkubyBpbm9kZS5vCitvYmotJChDT05GSUdfU0VDVVJJVFkpCQkJKz0gc2VjdXJpdHkubyBjYXBhYmlsaXR5Lm8gaW5vZGUubwogIyBNdXN0IHByZWNlZGUgY2FwYWJpbGl0eS5vIGluIG9yZGVyIHRvIHN0YWNrIHByb3Blcmx5Lgogb2JqLSQoQ09ORklHX1NFQ1VSSVRZX1NFTElOVVgpCQkrPSBzZWxpbnV4L2J1aWx0LWluLm8KLW9iai0kKENPTkZJR19TRUNVUklUWV9TTUFDSykJCSs9IGNvbW1vbmNhcC5vIHNtYWNrL2J1aWx0LWluLm8KLW9iai0kKENPTkZJR19TRUNVUklUWV9DQVBBQklMSVRJRVMpCSs9IGNvbW1vbmNhcC5vIGNhcGFiaWxpdHkubwotb2JqLSQoQ09ORklHX1NFQ1VSSVRZX1JPT1RQTFVHKQkJKz0gY29tbW9uY2FwLm8gcm9vdF9wbHVnLm8KK29iai0kKENPTkZJR19TRUNVUklUWV9TTUFDSykJCSs9IHNtYWNrL2J1aWx0LWluLm8KK29iai0kKENPTkZJR19TRUNVUklUWV9ST09UUExVRykJCSs9IHJvb3RfcGx1Zy5vCiBvYmotJChDT05GSUdfQ0dST1VQX0RFVklDRSkJCSs9IGRldmljZV9jZ3JvdXAubwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvY2FwYWJpbGl0eS5jIGIvc2VjdXJpdHkvY2FwYWJpbGl0eS5jCmluZGV4IDM4YWM1NGUuLjViMDFjMGIgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2NhcGFiaWxpdHkuYworKysgYi9zZWN1cml0eS9jYXBhYmlsaXR5LmMKQEAgLTEsNiArMSw4IEBACiAvKgogICogIENhcGFiaWxpdGllcyBMaW51eCBTZWN1cml0eSBNb2R1bGUKICAqCisgKiAgVGhpcyBpcyB0aGUgZGVmYXVsdCBzZWN1cml0eSBtb2R1bGUgaW4gY2FzZSBubyBvdGhlciBtb2R1bGUgaXMgbG9hZGVkLgorICoKICAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKQEAgLTgsNzUgKzEwLDk4OCBAQAogICoKICAqLwogCi0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZmlsZS5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvbW1hbi5oPgotI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KLSNpbmNsdWRlIDxsaW51eC9zd2FwLmg+Ci0jaW5jbHVkZSA8bGludXgvc2tidWZmLmg+Ci0jaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAKLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyBjYXBhYmlsaXR5X29wcyA9IHsKLQkucHRyYWNlID0JCQljYXBfcHRyYWNlLAotCS5jYXBnZXQgPQkJCWNhcF9jYXBnZXQsCi0JLmNhcHNldF9jaGVjayA9CQkJY2FwX2NhcHNldF9jaGVjaywKLQkuY2Fwc2V0X3NldCA9CQkJY2FwX2NhcHNldF9zZXQsCi0JLmNhcGFibGUgPQkJCWNhcF9jYXBhYmxlLAotCS5zZXR0aW1lID0JCQljYXBfc2V0dGltZSwKLQkubmV0bGlua19zZW5kID0JCQljYXBfbmV0bGlua19zZW5kLAotCS5uZXRsaW5rX3JlY3YgPQkJCWNhcF9uZXRsaW5rX3JlY3YsCi0KLQkuYnBybV9hcHBseV9jcmVkcyA9CQljYXBfYnBybV9hcHBseV9jcmVkcywKLQkuYnBybV9zZXRfc2VjdXJpdHkgPQkJY2FwX2Jwcm1fc2V0X3NlY3VyaXR5LAotCS5icHJtX3NlY3VyZWV4ZWMgPQkJY2FwX2Jwcm1fc2VjdXJlZXhlYywKLQotCS5pbm9kZV9zZXR4YXR0ciA9CQljYXBfaW5vZGVfc2V0eGF0dHIsCi0JLmlub2RlX3JlbW92ZXhhdHRyID0JCWNhcF9pbm9kZV9yZW1vdmV4YXR0ciwKLQkuaW5vZGVfbmVlZF9raWxscHJpdiA9CQljYXBfaW5vZGVfbmVlZF9raWxscHJpdiwKLQkuaW5vZGVfa2lsbHByaXYgPQkJY2FwX2lub2RlX2tpbGxwcml2LAotCi0JLnRhc2tfc2V0c2NoZWR1bGVyID0JCWNhcF90YXNrX3NldHNjaGVkdWxlciwKLQkudGFza19zZXRpb3ByaW8gPQkJY2FwX3Rhc2tfc2V0aW9wcmlvLAotCS50YXNrX3NldG5pY2UgPQkJCWNhcF90YXNrX3NldG5pY2UsCi0JLnRhc2tfcG9zdF9zZXR1aWQgPQkJY2FwX3Rhc2tfcG9zdF9zZXR1aWQsCi0JLnRhc2tfcHJjdGwgPSAgICAgICAgICAgICAgICAgICBjYXBfdGFza19wcmN0bCwKLQkudGFza19yZXBhcmVudF90b19pbml0ID0JY2FwX3Rhc2tfcmVwYXJlbnRfdG9faW5pdCwKLQotCS5zeXNsb2cgPSAgICAgICAgICAgICAgICAgICAgICAgY2FwX3N5c2xvZywKLQotCS52bV9lbm91Z2hfbWVtb3J5ID0gICAgICAgICAgICAgY2FwX3ZtX2Vub3VnaF9tZW1vcnksCi19OwotCi0vKiBmbGFnIHRvIGtlZXAgdHJhY2sgb2YgaG93IHdlIHdlcmUgcmVnaXN0ZXJlZCAqLwotc3RhdGljIGludCBzZWNvbmRhcnk7Ci0KLXN0YXRpYyBpbnQgY2FwYWJpbGl0eV9kaXNhYmxlOwotbW9kdWxlX3BhcmFtX25hbWVkKGRpc2FibGUsIGNhcGFiaWxpdHlfZGlzYWJsZSwgaW50LCAwKTsKLQotc3RhdGljIGludCBfX2luaXQgY2FwYWJpbGl0eV9pbml0ICh2b2lkKQorc3RhdGljIGludCBjYXBfYWNjdChzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlpZiAoY2FwYWJpbGl0eV9kaXNhYmxlKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIkNhcGFiaWxpdGllcyBkaXNhYmxlZCBhdCBpbml0aWFsaXphdGlvblxuIik7Ci0JCXJldHVybiAwOwotCX0KLQkvKiByZWdpc3RlciBvdXJzZWx2ZXMgd2l0aCB0aGUgc2VjdXJpdHkgZnJhbWV3b3JrICovCi0JaWYgKHJlZ2lzdGVyX3NlY3VyaXR5ICgmY2FwYWJpbGl0eV9vcHMpKSB7Ci0JCS8qIHRyeSByZWdpc3RlcmluZyB3aXRoIHByaW1hcnkgbW9kdWxlICovCi0JCWlmIChtb2RfcmVnX3NlY3VyaXR5IChLQlVJTERfTU9ETkFNRSwgJmNhcGFiaWxpdHlfb3BzKSkgewotCQkJcHJpbnRrIChLRVJOX0lORk8gIkZhaWx1cmUgcmVnaXN0ZXJpbmcgY2FwYWJpbGl0aWVzICIKLQkJCQkid2l0aCBwcmltYXJ5IHNlY3VyaXR5IG1vZHVsZS5cbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJc2Vjb25kYXJ5ID0gMTsKLQl9Ci0JcHJpbnRrIChLRVJOX0lORk8gIkNhcGFiaWxpdHkgTFNNIGluaXRpYWxpemVkJXNcbiIsCi0JCXNlY29uZGFyeSA/ICIgYXMgc2Vjb25kYXJ5IiA6ICIiKTsKIAlyZXR1cm4gMDsKIH0KIAotc2VjdXJpdHlfaW5pdGNhbGwgKGNhcGFiaWxpdHlfaW5pdCk7CitzdGF0aWMgaW50IGNhcF9zeXNjdGwoY3RsX3RhYmxlICp0YWJsZSwgaW50IG9wKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9xdW90YWN0bChpbnQgY21kcywgaW50IHR5cGUsIGludCBpZCwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfcXVvdGFfb24oc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9icHJtX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9icHJtX2ZyZWVfc2VjdXJpdHkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX2Jwcm1fcG9zdF9hcHBseV9jcmVkcyhzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQoreworfQorCitzdGF0aWMgaW50IGNhcF9icHJtX2NoZWNrX3NlY3VyaXR5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NiX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zYl9mcmVlX3NlY3VyaXR5KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NiX2NvcHlfZGF0YShjaGFyICpvcmlnLCBjaGFyICpjb3B5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9rZXJuX21vdW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NiX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NiX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NiX21vdW50KGNoYXIgKmRldl9uYW1lLCBzdHJ1Y3QgcGF0aCAqcGF0aCwgY2hhciAqdHlwZSwKKwkJCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NiX2NoZWNrX3NiKHN0cnVjdCB2ZnNtb3VudCAqbW50LCBzdHJ1Y3QgcGF0aCAqcGF0aCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc2JfdW1vdW50KHN0cnVjdCB2ZnNtb3VudCAqbW50LCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zYl91bW91bnRfY2xvc2Uoc3RydWN0IHZmc21vdW50ICptbnQpCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zYl91bW91bnRfYnVzeShzdHJ1Y3QgdmZzbW91bnQgKm1udCkKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX3NiX3Bvc3RfcmVtb3VudChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgdW5zaWduZWQgbG9uZyBmbGFncywKKwkJCQl2b2lkICpkYXRhKQoreworfQorCitzdGF0aWMgdm9pZCBjYXBfc2JfcG9zdF9hZGRtb3VudChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IHBhdGggKnBhdGgpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NiX3Bpdm90cm9vdChzdHJ1Y3QgcGF0aCAqb2xkX3BhdGgsIHN0cnVjdCBwYXRoICpuZXdfcGF0aCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX3NiX3Bvc3RfcGl2b3Ryb290KHN0cnVjdCBwYXRoICpvbGRfcGF0aCwgc3RydWN0IHBhdGggKm5ld19wYXRoKQoreworfQorCitzdGF0aWMgaW50IGNhcF9zYl9zZXRfbW50X29wdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKKwkJCSAgICAgICBzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpCit7CisJaWYgKHVubGlrZWx5KG9wdHMtPm51bV9tbnRfb3B0cykpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX3NiX2Nsb25lX21udF9vcHRzKGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqb2xkc2IsCisJCQkJICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKm5ld3NiKQoreworfQorCitzdGF0aWMgaW50IGNhcF9zYl9wYXJzZV9vcHRzX3N0cihjaGFyICpvcHRpb25zLCBzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9pbm9kZV9mcmVlX3NlY3VyaXR5KHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2luaXRfc2VjdXJpdHkoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlub2RlICpkaXIsCisJCQkJICAgY2hhciAqKm5hbWUsIHZvaWQgKip2YWx1ZSwgc2l6ZV90ICpsZW4pCit7CisJcmV0dXJuIC1FT1BOT1RTVVBQOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9jcmVhdGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkJICAgIGludCBtYXNrKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9saW5rKHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkgIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX3VubGluayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX3N5bWxpbmsoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkJICAgICBjb25zdCBjaGFyICpuYW1lKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9ta2RpcihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCisJCQkgICBpbnQgbWFzaykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfcm1kaXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9ta25vZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCisJCQkgICBpbnQgbW9kZSwgZGV2X3QgZGV2KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9yZW5hbWUoc3RydWN0IGlub2RlICpvbGRfaW5vZGUsIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCisJCQkgICAgc3RydWN0IGlub2RlICpuZXdfaW5vZGUsIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX3JlYWRsaW5rKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfZm9sbG93X2xpbmsoc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkJCSBzdHJ1Y3QgbmFtZWlkYXRhICpuYW1laWRhdGEpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2ssCisJCQkJc3RydWN0IG5hbWVpZGF0YSAqbmQpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX3NldGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmlhdHRyKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9nZXRhdHRyKHN0cnVjdCB2ZnNtb3VudCAqbW50LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9pbm9kZV9kZWxldGUoc3RydWN0IGlub2RlICppbm8pCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9pbm9kZV9wb3N0X3NldHhhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSwKKwkJCQkgICAgY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2dldHhhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfbGlzdHhhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfZ2V0c2VjdXJpdHkoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqbmFtZSwKKwkJCQkgdm9pZCAqKmJ1ZmZlciwgYm9vbCBhbGxvYykKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX3NldHNlY3VyaXR5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJIGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwgaW50IGZsYWdzKQoreworCXJldHVybiAtRU9QTk9UU1VQUDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfbGlzdHNlY3VyaXR5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNoYXIgKmJ1ZmZlciwKKwkJCQkgIHNpemVfdCBidWZmZXJfc2l6ZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX2lub2RlX2dldHNlY2lkKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUsIHUzMiAqc2VjaWQpCit7CisJKnNlY2lkID0gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9wZXJtaXNzaW9uKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbWFzaykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX2ZpbGVfZnJlZV9zZWN1cml0eShzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNvbW1hbmQsCisJCQkgIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX21tYXAoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxvbmcgcmVxcHJvdCwKKwkJCSB1bnNpZ25lZCBsb25nIHByb3QsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCisJCQkgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGFkZHJfb25seSkKK3sKKwlpZiAoKGFkZHIgPCBtbWFwX21pbl9hZGRyKSAmJiAhY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKKwkJcmV0dXJuIC1FQUNDRVM7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2ZpbGVfbXByb3RlY3Qoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgcmVxcHJvdCwKKwkJCSAgICAgdW5zaWduZWQgbG9uZyBwcm90KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX2xvY2soc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2ZpbGVfZmNudGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCisJCQkgIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX3NldF9mb3duZXIoc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2ZpbGVfc2VuZF9zaWdpb3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCisJCQkJICAgc3RydWN0IGZvd25fc3RydWN0ICpmb3duLCBpbnQgc2lnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX3JlY2VpdmUoc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2RlbnRyeV9vcGVuKHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX2NyZWF0ZSh1bnNpZ25lZCBsb25nIGNsb25lX2ZsYWdzKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX3Rhc2tfZnJlZV9zZWN1cml0eShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3Rhc2tfc2V0dWlkKHVpZF90IGlkMCwgdWlkX3QgaWQxLCB1aWRfdCBpZDIsIGludCBmbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19zZXRnaWQoZ2lkX3QgaWQwLCBnaWRfdCBpZDEsIGdpZF90IGlkMiwgaW50IGZsYWdzKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX3NldHBnaWQoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBwaWRfdCBwZ2lkKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX2dldHBnaWQoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX2dldHNpZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF90YXNrX2dldHNlY2lkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdTMyICpzZWNpZCkKK3sKKwkqc2VjaWQgPSAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX3NldGdyb3VwcyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ3JvdXBfaW5mbykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19nZXRpb3ByaW8oc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX3NldHJsaW1pdCh1bnNpZ25lZCBpbnQgcmVzb3VyY2UsIHN0cnVjdCBybGltaXQgKm5ld19ybGltKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX2dldHNjaGVkdWxlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3Rhc2tfbW92ZW1lbW9yeShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3Rhc2tfd2FpdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3Rhc2tfa2lsbChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBzaWdpbmZvICppbmZvLAorCQkJIGludCBzaWcsIHUzMiBzZWNpZCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX3Rhc2tfdG9faW5vZGUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworfQorCitzdGF0aWMgaW50IGNhcF9pcGNfcGVybWlzc2lvbihzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCwgc2hvcnQgZmxhZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX2lwY19nZXRzZWNpZChzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCwgdTMyICpzZWNpZCkKK3sKKwkqc2VjaWQgPSAwOworfQorCitzdGF0aWMgaW50IGNhcF9tc2dfbXNnX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCBtc2dfbXNnICptc2cpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9tc2dfbXNnX2ZyZWVfc2VjdXJpdHkoc3RydWN0IG1zZ19tc2cgKm1zZykKK3sKK30KKworc3RhdGljIGludCBjYXBfbXNnX3F1ZXVlX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCBtc2dfcXVldWUgKm1zcSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX21zZ19xdWV1ZV9mcmVlX3NlY3VyaXR5KHN0cnVjdCBtc2dfcXVldWUgKm1zcSkKK3sKK30KKworc3RhdGljIGludCBjYXBfbXNnX3F1ZXVlX2Fzc29jaWF0ZShzdHJ1Y3QgbXNnX3F1ZXVlICptc3EsIGludCBtc3FmbGcpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX21zZ19xdWV1ZV9tc2djdGwoc3RydWN0IG1zZ19xdWV1ZSAqbXNxLCBpbnQgY21kKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9tc2dfcXVldWVfbXNnc25kKHN0cnVjdCBtc2dfcXVldWUgKm1zcSwgc3RydWN0IG1zZ19tc2cgKm1zZywKKwkJCQlpbnQgbXNnZmxnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9tc2dfcXVldWVfbXNncmN2KHN0cnVjdCBtc2dfcXVldWUgKm1zcSwgc3RydWN0IG1zZ19tc2cgKm1zZywKKwkJCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwgbG9uZyB0eXBlLCBpbnQgbW9kZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc2htX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX3NobV9mcmVlX3NlY3VyaXR5KHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCkKK3sKK30KKworc3RhdGljIGludCBjYXBfc2htX2Fzc29jaWF0ZShzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHAsIGludCBzaG1mbGcpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NobV9zaG1jdGwoc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwLCBpbnQgY21kKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zaG1fc2htYXQoc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwLCBjaGFyIF9fdXNlciAqc2htYWRkciwKKwkJCSBpbnQgc2htZmxnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zZW1fYWxsb2Nfc2VjdXJpdHkoc3RydWN0IHNlbV9hcnJheSAqc21hKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfc2VtX2ZyZWVfc2VjdXJpdHkoc3RydWN0IHNlbV9hcnJheSAqc21hKQoreworfQorCitzdGF0aWMgaW50IGNhcF9zZW1fYXNzb2NpYXRlKHN0cnVjdCBzZW1fYXJyYXkgKnNtYSwgaW50IHNlbWZsZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc2VtX3NlbWN0bChzdHJ1Y3Qgc2VtX2FycmF5ICpzbWEsIGludCBjbWQpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NlbV9zZW1vcChzdHJ1Y3Qgc2VtX2FycmF5ICpzbWEsIHN0cnVjdCBzZW1idWYgKnNvcHMsCisJCQkgdW5zaWduZWQgbnNvcHMsIGludCBhbHRlcikKK3sKKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIENPTkZJR19TRUNVUklUWV9ORVRXT1JLCitzdGF0aWMgaW50IGNhcF91bml4X3N0cmVhbV9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKm90aGVyLAorCQkJCSAgIHN0cnVjdCBzb2NrICpuZXdzaykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdW5peF9tYXlfc2VuZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpvdGhlcikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2NyZWF0ZShpbnQgZmFtaWx5LCBpbnQgdHlwZSwgaW50IHByb3RvY29sLCBpbnQga2VybikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X3Bvc3RfY3JlYXRlKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBmYW1pbHksIGludCB0eXBlLAorCQkJCSAgaW50IHByb3RvY29sLCBpbnQga2VybikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2JpbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyZXNzLAorCQkJICAgaW50IGFkZHJsZW4pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkcmVzcywKKwkJCSAgICAgIGludCBhZGRybGVuKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfbGlzdGVuKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBiYWNrbG9nKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfYWNjZXB0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKm5ld3NvY2spCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zb2NrZXRfcG9zdF9hY2NlcHQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqbmV3c29jaykKK3sKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X3NlbmRtc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBpbnQgc2l6ZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X3JlY3Ztc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLAorCQkJICAgICAgaW50IHNpemUsIGludCBmbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2dldHNvY2tuYW1lKHN0cnVjdCBzb2NrZXQgKnNvY2spCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9nZXRwZWVybmFtZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfc2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfZ2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfc2h1dGRvd24oc3RydWN0IHNvY2tldCAqc29jaywgaW50IGhvdykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X3NvY2tfcmN2X3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9nZXRwZWVyc2VjX3N0cmVhbShzdHJ1Y3Qgc29ja2V0ICpzb2NrLAorCQkJCQljaGFyIF9fdXNlciAqb3B0dmFsLAorCQkJCQlpbnQgX191c2VyICpvcHRsZW4sIHVuc2lnbmVkIGxlbikKK3sKKwlyZXR1cm4gLUVOT1BST1RPT1BUOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfZ2V0cGVlcnNlY19kZ3JhbShzdHJ1Y3Qgc29ja2V0ICpzb2NrLAorCQkJCSAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKnNlY2lkKQoreworCXJldHVybiAtRU5PUFJPVE9PUFQ7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NrX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCBzb2NrICpzaywgaW50IGZhbWlseSwgZ2ZwX3QgcHJpb3JpdHkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9za19mcmVlX3NlY3VyaXR5KHN0cnVjdCBzb2NrICpzaykKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX3NrX2Nsb25lX3NlY3VyaXR5KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2sgKm5ld3NrKQoreworfQorCitzdGF0aWMgdm9pZCBjYXBfc2tfZ2V0c2VjaWQoc3RydWN0IHNvY2sgKnNrLCB1MzIgKnNlY2lkKQoreworfQorCitzdGF0aWMgdm9pZCBjYXBfc29ja19ncmFmdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrZXQgKnBhcmVudCkKK3sKK30KKworc3RhdGljIGludCBjYXBfaW5ldF9jb25uX3JlcXVlc3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCSBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9pbmV0X2Nza19jbG9uZShzdHJ1Y3Qgc29jayAqbmV3c2ssCisJCQkgICAgICAgY29uc3Qgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKQoreworfQorCitzdGF0aWMgdm9pZCBjYXBfaW5ldF9jb25uX2VzdGFibGlzaGVkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX3JlcV9jbGFzc2lmeV9mbG93KGNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSwKKwkJCQkgIHN0cnVjdCBmbG93aSAqZmwpCit7Cit9CisjZW5kaWYJLyogQ09ORklHX1NFQ1VSSVRZX05FVFdPUksgKi8KKworI2lmZGVmIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0KK3N0YXRpYyBpbnQgY2FwX3hmcm1fcG9saWN5X2FsbG9jX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3NlY19jdHggKipjdHhwLAorCQkJCQkgIHN0cnVjdCB4ZnJtX3VzZXJfc2VjX2N0eCAqc2VjX2N0eCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfeGZybV9wb2xpY3lfY2xvbmVfc2VjdXJpdHkoc3RydWN0IHhmcm1fc2VjX2N0eCAqb2xkX2N0eCwKKwkJCQkJICBzdHJ1Y3QgeGZybV9zZWNfY3R4ICoqbmV3X2N0eHApCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF94ZnJtX3BvbGljeV9mcmVlX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3NlY19jdHggKmN0eCkKK3sKK30KKworc3RhdGljIGludCBjYXBfeGZybV9wb2xpY3lfZGVsZXRlX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3NlY19jdHggKmN0eCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfeGZybV9zdGF0ZV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwKKwkJCQkJIHN0cnVjdCB4ZnJtX3VzZXJfc2VjX2N0eCAqc2VjX2N0eCwKKwkJCQkJIHUzMiBzZWNpZCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX3hmcm1fc3RhdGVfZnJlZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zdGF0ZSAqeCkKK3sKK30KKworc3RhdGljIGludCBjYXBfeGZybV9zdGF0ZV9kZWxldGVfc2VjdXJpdHkoc3RydWN0IHhmcm1fc3RhdGUgKngpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fcG9saWN5X2xvb2t1cChzdHJ1Y3QgeGZybV9zZWNfY3R4ICpjdHgsIHUzMiBza19zaWQsIHU4IGRpcikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfeGZybV9zdGF0ZV9wb2xfZmxvd19tYXRjaChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwKKwkJCQkJIHN0cnVjdCB4ZnJtX3BvbGljeSAqeHAsCisJCQkJCSBzdHJ1Y3QgZmxvd2kgKmZsKQoreworCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IGNhcF94ZnJtX2RlY29kZV9zZXNzaW9uKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqZmwsIGludCBja2FsbCkKK3sKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0gKi8KK3N0YXRpYyB2b2lkIGNhcF9kX2luc3RhbnRpYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSkKK3sKK30KKworc3RhdGljIGludCBjYXBfZ2V0cHJvY2F0dHIoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjaGFyICpuYW1lLCBjaGFyICoqdmFsdWUpCit7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NldHByb2NhdHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY2hhciAqbmFtZSwgdm9pZCAqdmFsdWUsCisJCQkgICBzaXplX3Qgc2l6ZSkKK3sKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGludCBjYXBfc2VjaWRfdG9fc2VjY3R4KHUzMiBzZWNpZCwgY2hhciAqKnNlY2RhdGEsIHUzMiAqc2VjbGVuKQoreworCXJldHVybiAtRU9QTk9UU1VQUDsKK30KKworc3RhdGljIGludCBjYXBfc2VjY3R4X3RvX3NlY2lkKGNvbnN0IGNoYXIgKnNlY2RhdGEsIHUzMiBzZWNsZW4sIHUzMiAqc2VjaWQpCit7CisJcmV0dXJuIC1FT1BOT1RTVVBQOworfQorCitzdGF0aWMgdm9pZCBjYXBfcmVsZWFzZV9zZWNjdHgoY2hhciAqc2VjZGF0YSwgdTMyIHNlY2xlbikKK3sKK30KKworI2lmZGVmIENPTkZJR19LRVlTCitzdGF0aWMgaW50IGNhcF9rZXlfYWxsb2Moc3RydWN0IGtleSAqa2V5LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN0eCwKKwkJCSB1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfa2V5X2ZyZWUoc3RydWN0IGtleSAqa2V5KQoreworfQorCitzdGF0aWMgaW50IGNhcF9rZXlfcGVybWlzc2lvbihrZXlfcmVmX3Qga2V5X3JlZiwgc3RydWN0IHRhc2tfc3RydWN0ICpjb250ZXh0LAorCQkJICAgICAga2V5X3Blcm1fdCBwZXJtKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9rZXlfZ2V0c2VjdXJpdHkoc3RydWN0IGtleSAqa2V5LCBjaGFyICoqX2J1ZmZlcikKK3sKKwkqX2J1ZmZlciA9IE5VTEw7CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfS0VZUyAqLworCisjaWZkZWYgQ09ORklHX0FVRElUCitzdGF0aWMgaW50IGNhcF9hdWRpdF9ydWxlX2luaXQodTMyIGZpZWxkLCB1MzIgb3AsIGNoYXIgKnJ1bGVzdHIsIHZvaWQgKipsc21ydWxlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9hdWRpdF9ydWxlX2tub3duKHN0cnVjdCBhdWRpdF9rcnVsZSAqa3J1bGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2F1ZGl0X3J1bGVfbWF0Y2godTMyIHNlY2lkLCB1MzIgZmllbGQsIHUzMiBvcCwgdm9pZCAqbHNtcnVsZSwKKwkJCQlzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYWN0eCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX2F1ZGl0X3J1bGVfZnJlZSh2b2lkICpsc21ydWxlKQoreworfQorI2VuZGlmIC8qIENPTkZJR19BVURJVCAqLworCitzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyBkZWZhdWx0X3NlY3VyaXR5X29wcyA9IHsKKwkubmFtZQk9ICJkZWZhdWx0IiwKK307CisKKyNkZWZpbmUgc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZnVuY3Rpb24pCQkJCVwKKwlkbyB7CQkJCQkJCQlcCisJCWlmICghb3BzLT5mdW5jdGlvbikgewkJCQkJXAorCQkJb3BzLT5mdW5jdGlvbiA9IGNhcF8jI2Z1bmN0aW9uOwkJCVwKKwkJCXByX2RlYnVnKCJIYWQgdG8gb3ZlcnJpZGUgdGhlICIgI2Z1bmN0aW9uCVwKKwkJCQkgIiBzZWN1cml0eSBvcGVyYXRpb24gd2l0aCB0aGUgZGVmYXVsdC5cbiIpO1wKKwkJCX0JCQkJCQlcCisJfSB3aGlsZSAoMCkKKwordm9pZCBzZWN1cml0eV9maXh1cF9vcHMoc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcykKK3sKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBwdHJhY2UpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGNhcGdldCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgY2Fwc2V0X2NoZWNrKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBjYXBzZXRfc2V0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBhY2N0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBjYXBhYmxlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBxdW90YWN0bCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgcXVvdGFfb24pOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHN5c2N0bCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc3lzbG9nKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZXR0aW1lKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB2bV9lbm91Z2hfbWVtb3J5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGJwcm1fYXBwbHlfY3JlZHMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGJwcm1fcG9zdF9hcHBseV9jcmVkcyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYnBybV9zZXRfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGJwcm1fY2hlY2tfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGJwcm1fc2VjdXJlZXhlYyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX2NvcHlfZGF0YSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2Jfa2Vybl9tb3VudCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2Jfc2hvd19vcHRpb25zKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9zdGF0ZnMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX21vdW50KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9jaGVja19zYik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfdW1vdW50KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl91bW91bnRfY2xvc2UpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3Vtb3VudF9idXN5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9wb3N0X3JlbW91bnQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3Bvc3RfYWRkbW91bnQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3Bpdm90cm9vdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfcG9zdF9waXZvdHJvb3QpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3NldF9tbnRfb3B0cyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfY2xvbmVfbW50X29wdHMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3BhcnNlX29wdHNfc3RyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfZnJlZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfaW5pdF9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfY3JlYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9saW5rKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV91bmxpbmspOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX3N5bWxpbmspOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX21rZGlyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9ybWRpcik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfbWtub2QpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX3JlbmFtZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfcmVhZGxpbmspOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2ZvbGxvd19saW5rKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9wZXJtaXNzaW9uKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9zZXRhdHRyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9nZXRhdHRyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9kZWxldGUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX3NldHhhdHRyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9wb3N0X3NldHhhdHRyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9nZXR4YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfbGlzdHhhdHRyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9yZW1vdmV4YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfbmVlZF9raWxscHJpdik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfa2lsbHByaXYpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2dldHNlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9zZXRzZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfbGlzdHNlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9nZXRzZWNpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9wZXJtaXNzaW9uKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfaW9jdGwpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfbW1hcCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9tcHJvdGVjdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9sb2NrKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX2ZjbnRsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX3NldF9mb3duZXIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfc2VuZF9zaWdpb3Rhc2spOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfcmVjZWl2ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZGVudHJ5X29wZW4pOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfY3JlYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfc2V0dWlkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3Bvc3Rfc2V0dWlkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3NldGdpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRwZ2lkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX2dldHBnaWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfZ2V0c2lkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX2dldHNlY2lkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3NldGdyb3Vwcyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRuaWNlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3NldGlvcHJpbyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19nZXRpb3ByaW8pOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfc2V0cmxpbWl0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3NldHNjaGVkdWxlcik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19nZXRzY2hlZHVsZXIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfbW92ZW1lbW9yeSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza193YWl0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX2tpbGwpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfcHJjdGwpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfcmVwYXJlbnRfdG9faW5pdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza190b19pbm9kZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaXBjX3Blcm1pc3Npb24pOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlwY19nZXRzZWNpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX21zZ19hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX21zZ19mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBtc2dfcXVldWVfYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIG1zZ19xdWV1ZV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBtc2dfcXVldWVfYXNzb2NpYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBtc2dfcXVldWVfbXNnY3RsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBtc2dfcXVldWVfbXNnc25kKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBtc2dfcXVldWVfbXNncmN2KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzaG1fYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNobV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzaG1fYXNzb2NpYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzaG1fc2htY3RsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzaG1fc2htYXQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNlbV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2VtX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNlbV9hc3NvY2lhdGUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNlbV9zZW1jdGwpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNlbV9zZW1vcCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbmV0bGlua19zZW5kKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBuZXRsaW5rX3JlY3YpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGRfaW5zdGFudGlhdGUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGdldHByb2NhdHRyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZXRwcm9jYXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2VjaWRfdG9fc2VjY3R4KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZWNjdHhfdG9fc2VjaWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHJlbGVhc2Vfc2VjY3R4KTsKKyNpZmRlZiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHVuaXhfc3RyZWFtX2Nvbm5lY3QpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHVuaXhfbWF5X3NlbmQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9jcmVhdGUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9wb3N0X2NyZWF0ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2JpbmQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9jb25uZWN0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfbGlzdGVuKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfYWNjZXB0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfcG9zdF9hY2NlcHQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9zZW5kbXNnKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfcmVjdm1zZyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2dldHNvY2tuYW1lKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfZ2V0cGVlcm5hbWUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9zZXRzb2Nrb3B0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfZ2V0c29ja29wdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X3NodXRkb3duKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfc29ja19yY3Zfc2tiKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfZ2V0cGVlcnNlY19zdHJlYW0pOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9nZXRwZWVyc2VjX2RncmFtKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBza19hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2tfZnJlZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2tfY2xvbmVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNrX2dldHNlY2lkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrX2dyYWZ0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbmV0X2Nvbm5fcmVxdWVzdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5ldF9jc2tfY2xvbmUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGluZXRfY29ubl9lc3RhYmxpc2hlZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgcmVxX2NsYXNzaWZ5X2Zsb3cpOworI2VuZGlmCS8qIENPTkZJR19TRUNVUklUWV9ORVRXT1JLICovCisjaWZkZWYgQ09ORklHX1NFQ1VSSVRZX05FVFdPUktfWEZSTQorCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3BvbGljeV9jbG9uZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfZnJlZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfZGVsZXRlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHhmcm1fc3RhdGVfZGVsZXRlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3BvbGljeV9sb29rdXApOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHhmcm1fc3RhdGVfcG9sX2Zsb3dfbWF0Y2gpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHhmcm1fZGVjb2RlX3Nlc3Npb24pOworI2VuZGlmCS8qIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0gKi8KKyNpZmRlZiBDT05GSUdfS0VZUworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGtleV9hbGxvYyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywga2V5X2ZyZWUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGtleV9wZXJtaXNzaW9uKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBrZXlfZ2V0c2VjdXJpdHkpOworI2VuZGlmCS8qIENPTkZJR19LRVlTICovCisjaWZkZWYgQ09ORklHX0FVRElUCisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9pbml0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBhdWRpdF9ydWxlX2tub3duKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBhdWRpdF9ydWxlX21hdGNoKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBhdWRpdF9ydWxlX2ZyZWUpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9zZWN1cml0eS9jb21tb25jYXAuYyBiL3NlY3VyaXR5L2NvbW1vbmNhcC5jCmluZGV4IDVlZGFiYzcuLjBiNjUzN2EgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2NvbW1vbmNhcC5jCisrKyBiL3NlY3VyaXR5L2NvbW1vbmNhcC5jCkBAIC02Myw3ICs2Myw4IEBACiAJcmV0dXJuIDA7CiB9CiAKLWludCBjYXBfcHRyYWNlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKK2ludCBjYXBfcHRyYWNlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwKKwkJdW5zaWduZWQgaW50IG1vZGUpCiB7CiAJLyogRGVyaXZlZCBmcm9tIGFyY2gvaTM4Ni9rZXJuZWwvcHRyYWNlLmM6c3lzX3B0cmFjZS4gKi8KIAlpZiAoIWNhcF9pc3N1YnNldChjaGlsZC0+Y2FwX3Blcm1pdHRlZCwgcGFyZW50LT5jYXBfcGVybWl0dGVkKSAmJgpAQCAtMTAzLDEwICsxMDQsMTYgQEAKIAlyZXR1cm4gKGNhcF9jYXBhYmxlKGN1cnJlbnQsIENBUF9TRVRQQ0FQKSAhPSAwKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgY2FwX2xpbWl0X3B0cmFjZWRfdGFyZ2V0KHZvaWQpIHsgcmV0dXJuIDE7IH0KKwogI2Vsc2UgLyogaWUuLCBuZGVmIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyAqLwogCiBzdGF0aWMgaW5saW5lIGludCBjYXBfYmxvY2tfc2V0cGNhcChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpIHsgcmV0dXJuIDA7IH0KIHN0YXRpYyBpbmxpbmUgaW50IGNhcF9pbmhfaXNfY2FwcGVkKHZvaWQpIHsgcmV0dXJuIDE7IH0KK3N0YXRpYyBpbmxpbmUgaW50IGNhcF9saW1pdF9wdHJhY2VkX3RhcmdldCh2b2lkKQoreworCXJldHVybiAhY2FwYWJsZShDQVBfU0VUUENBUCk7Cit9CiAKICNlbmRpZiAvKiBkZWYgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTICovCiAKQEAgLTM0Miw5ICszNDksMTAgQEAKIAkJCQlicHJtLT5lX3VpZCA9IGN1cnJlbnQtPnVpZDsKIAkJCQlicHJtLT5lX2dpZCA9IGN1cnJlbnQtPmdpZDsKIAkJCX0KLQkJCWlmICghY2FwYWJsZSAoQ0FQX1NFVFBDQVApKSB7Ci0JCQkJbmV3X3Blcm1pdHRlZCA9IGNhcF9pbnRlcnNlY3QgKG5ld19wZXJtaXR0ZWQsCi0JCQkJCQkJY3VycmVudC0+Y2FwX3Blcm1pdHRlZCk7CisJCQlpZiAoY2FwX2xpbWl0X3B0cmFjZWRfdGFyZ2V0KCkpIHsKKwkJCQluZXdfcGVybWl0dGVkID0KKwkJCQkJY2FwX2ludGVyc2VjdChuZXdfcGVybWl0dGVkLAorCQkJCQkJICAgICAgY3VycmVudC0+Y2FwX3Blcm1pdHRlZCk7CiAJCQl9CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9zZWN1cml0eS9kZXZpY2VfY2dyb3VwLmMgYi9zZWN1cml0eS9kZXZpY2VfY2dyb3VwLmMKaW5kZXggYmFmMzQ4OC4uZGRkOTJjZSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvZGV2aWNlX2Nncm91cC5jCisrKyBiL3NlY3VyaXR5L2RldmljZV9jZ3JvdXAuYwpAQCAtMjIyLDcgKzIyMiw3IEBACiAjZGVmaW5lIERFVkNHX0RFTlkgMgogI2RlZmluZSBERVZDR19MSVNUIDMKIAotI2RlZmluZSBNQUpNSU5MRU4gMTAKKyNkZWZpbmUgTUFKTUlOTEVOIDEzCiAjZGVmaW5lIEFDQ0xFTiA0CiAKIHN0YXRpYyB2b2lkIHNldF9hY2Nlc3MoY2hhciAqYWNjLCBzaG9ydCBhY2Nlc3MpCkBAIC0yNTQsNyArMjU0LDcgQEAKIAlpZiAobSA9PSB+MCkKIAkJc3ByaW50ZihzdHIsICIqIik7CiAJZWxzZQotCQlzbnByaW50ZihzdHIsIE1BSk1JTkxFTiwgIiVkIiwgbSk7CisJCXNucHJpbnRmKHN0ciwgTUFKTUlOTEVOLCAiJXUiLCBtKTsKIH0KIAogc3RhdGljIGludCBkZXZjZ3JvdXBfc2VxX3JlYWQoc3RydWN0IGNncm91cCAqY2dyb3VwLCBzdHJ1Y3QgY2Z0eXBlICpjZnQsCkBAIC0zMDAsNyArMzAwLDcgQEAKIAkJCWNvbnRpbnVlOwogCQlpZiAod2hpdGVtLT5taW5vciAhPSB+MCAmJiB3aGl0ZW0tPm1pbm9yICE9IHJlZndoLT5taW5vcikKIAkJCWNvbnRpbnVlOwotCQlpZiAocmVmd2gtPmFjY2VzcyAmICh+KHdoaXRlbS0+YWNjZXNzIHwgQUNDX01BU0spKSkKKwkJaWYgKHJlZndoLT5hY2Nlc3MgJiAofndoaXRlbS0+YWNjZXNzKSkKIAkJCWNvbnRpbnVlOwogCQlyZXR1cm4gMTsKIAl9CkBAIC0zODIsNiArMzgyLDggQEAKIAljYXNlICdhJzoKIAkJd2gudHlwZSA9IERFVl9BTEw7CiAJCXdoLmFjY2VzcyA9IEFDQ19NQVNLOworCQl3aC5tYWpvciA9IH4wOworCQl3aC5taW5vciA9IH4wOwogCQlnb3RvIGhhbmRsZTsKIAljYXNlICdiJzoKIAkJd2gudHlwZSA9IERFVl9CTE9DSzsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2R1bW15LmMgYi9zZWN1cml0eS9kdW1teS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODkxNjg4Li4wMDAwMDAwCi0tLSBhL3NlY3VyaXR5L2R1bW15LmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUxICswLDAgQEAKLS8qCi0gKiBTdHViIGZ1bmN0aW9ucyBmb3IgdGhlIGRlZmF1bHQgc2VjdXJpdHkgZnVuY3Rpb24gcG9pbnRlcnMgaW4gY2FzZSBubwotICogc2VjdXJpdHkgbW9kZWwgaXMgbG9hZGVkLgotICoKLSAqIENvcHlyaWdodCAoQykgMjAwMSBXaXJlWCBDb21tdW5pY2F0aW9ucywgSW5jIDxjaHJpc0B3aXJleC5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiAgR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAwMSBOZXR3b3JrcyBBc3NvY2lhdGVzIFRlY2hub2xvZ3ksIEluYyA8c3NtYWxsZXlAbmFpLmNvbT4KLSAqCi0gKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICovCi0KLSN1bmRlZiBERUJVRwotCi0jaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KLSNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+Ci0jaW5jbHVkZSA8bGludXgvc3dhcC5oPgotI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2tidWZmLmg+Ci0jaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgotI2luY2x1ZGUgPG5ldC9zb2NrLmg+Ci0jaW5jbHVkZSA8bGludXgveGF0dHIuaD4KLSNpbmNsdWRlIDxsaW51eC9odWdldGxiLmg+Ci0jaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvZmlsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3ByY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvc2VjdXJlYml0cy5oPgotCi1zdGF0aWMgaW50IGR1bW15X3B0cmFjZSAoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfY2FwZ2V0IChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwga2VybmVsX2NhcF90ICogZWZmZWN0aXZlLAotCQkJIGtlcm5lbF9jYXBfdCAqIGluaGVyaXRhYmxlLCBrZXJuZWxfY2FwX3QgKiBwZXJtaXR0ZWQpCi17Ci0JaWYgKHRhcmdldC0+ZXVpZCA9PSAwKSB7Ci0JCWNhcF9zZXRfZnVsbCgqcGVybWl0dGVkKTsKLQkJY2FwX3NldF9pbml0X2VmZigqZWZmZWN0aXZlKTsKLQl9IGVsc2UgewotCQljYXBfY2xlYXIoKnBlcm1pdHRlZCk7Ci0JCWNhcF9jbGVhcigqZWZmZWN0aXZlKTsKLQl9Ci0KLQljYXBfY2xlYXIoKmluaGVyaXRhYmxlKTsKLQotCWlmICh0YXJnZXQtPmZzdWlkICE9IDApIHsKLQkJKnBlcm1pdHRlZCA9IGNhcF9kcm9wX2ZzX3NldCgqcGVybWl0dGVkKTsKLQkJKmVmZmVjdGl2ZSA9IGNhcF9kcm9wX2ZzX3NldCgqZWZmZWN0aXZlKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfY2Fwc2V0X2NoZWNrIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKLQkJCSAgICAgICBrZXJuZWxfY2FwX3QgKiBlZmZlY3RpdmUsCi0JCQkgICAgICAga2VybmVsX2NhcF90ICogaW5oZXJpdGFibGUsCi0JCQkgICAgICAga2VybmVsX2NhcF90ICogcGVybWl0dGVkKQotewotCXJldHVybiAtRVBFUk07Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2NhcHNldF9zZXQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LAotCQkJICAgICAga2VybmVsX2NhcF90ICogZWZmZWN0aXZlLAotCQkJICAgICAga2VybmVsX2NhcF90ICogaW5oZXJpdGFibGUsCi0JCQkgICAgICBrZXJuZWxfY2FwX3QgKiBwZXJtaXR0ZWQpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2FjY3QgKHN0cnVjdCBmaWxlICpmaWxlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2NhcGFibGUgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgY2FwKQotewotCWlmIChjYXBfcmFpc2VkICh0c2stPmNhcF9lZmZlY3RpdmUsIGNhcCkpCi0JCXJldHVybiAwOwotCXJldHVybiAtRVBFUk07Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc3lzY3RsIChjdGxfdGFibGUgKiB0YWJsZSwgaW50IG9wKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3F1b3RhY3RsIChpbnQgY21kcywgaW50IHR5cGUsIGludCBpZCwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9xdW90YV9vbiAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3N5c2xvZyAoaW50IHR5cGUpCi17Ci0JaWYgKCh0eXBlICE9IDMgJiYgdHlwZSAhPSAxMCkgJiYgY3VycmVudC0+ZXVpZCkKLQkJcmV0dXJuIC1FUEVSTTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zZXR0aW1lKHN0cnVjdCB0aW1lc3BlYyAqdHMsIHN0cnVjdCB0aW1lem9uZSAqdHopCi17Ci0JaWYgKCFjYXBhYmxlKENBUF9TWVNfVElNRSkpCi0JCXJldHVybiAtRVBFUk07Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdm1fZW5vdWdoX21lbW9yeShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgbG9uZyBwYWdlcykKLXsKLQlpbnQgY2FwX3N5c19hZG1pbiA9IDA7Ci0KLQlpZiAoZHVtbXlfY2FwYWJsZShjdXJyZW50LCBDQVBfU1lTX0FETUlOKSA9PSAwKQotCQljYXBfc3lzX2FkbWluID0gMTsKLQlyZXR1cm4gX192bV9lbm91Z2hfbWVtb3J5KG1tLCBwYWdlcywgY2FwX3N5c19hZG1pbik7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfYnBybV9hbGxvY19zZWN1cml0eSAoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfYnBybV9mcmVlX3NlY3VyaXR5IChzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfYnBybV9hcHBseV9jcmVkcyAoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwgaW50IHVuc2FmZSkKLXsKLQlpZiAoYnBybS0+ZV91aWQgIT0gY3VycmVudC0+dWlkIHx8IGJwcm0tPmVfZ2lkICE9IGN1cnJlbnQtPmdpZCkgewotCQlzZXRfZHVtcGFibGUoY3VycmVudC0+bW0sIHN1aWRfZHVtcGFibGUpOwotCi0JCWlmICgodW5zYWZlICYgfkxTTV9VTlNBRkVfUFRSQUNFX0NBUCkgJiYgIWNhcGFibGUoQ0FQX1NFVFVJRCkpIHsKLQkJCWJwcm0tPmVfdWlkID0gY3VycmVudC0+dWlkOwotCQkJYnBybS0+ZV9naWQgPSBjdXJyZW50LT5naWQ7Ci0JCX0KLQl9Ci0KLQljdXJyZW50LT5zdWlkID0gY3VycmVudC0+ZXVpZCA9IGN1cnJlbnQtPmZzdWlkID0gYnBybS0+ZV91aWQ7Ci0JY3VycmVudC0+c2dpZCA9IGN1cnJlbnQtPmVnaWQgPSBjdXJyZW50LT5mc2dpZCA9IGJwcm0tPmVfZ2lkOwotCi0JZHVtbXlfY2FwZ2V0KGN1cnJlbnQsICZjdXJyZW50LT5jYXBfZWZmZWN0aXZlLCAmY3VycmVudC0+Y2FwX2luaGVyaXRhYmxlLCAmY3VycmVudC0+Y2FwX3Blcm1pdHRlZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2Jwcm1fcG9zdF9hcHBseV9jcmVkcyAoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfYnBybV9zZXRfc2VjdXJpdHkgKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfYnBybV9jaGVja19zZWN1cml0eSAoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9icHJtX3NlY3VyZWV4ZWMgKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCi17Ci0JLyogVGhlIG5ldyB1c2VybGFuZCB3aWxsIHNpbXBseSB1c2UgdGhlIHZhbHVlIHByb3ZpZGVkCi0JICAgaW4gdGhlIEFUX1NFQ1VSRSBmaWVsZCB0byBkZWNpZGUgd2hldGhlciBzZWN1cmUgbW9kZQotCSAgIGlzIHJlcXVpcmVkLiAgSGVuY2UsIHRoaXMgbG9naWMgaXMgcmVxdWlyZWQgdG8gcHJlc2VydmUKLQkgICB0aGUgbGVnYWN5IGRlY2lzaW9uIGFsZ29yaXRobSB1c2VkIGJ5IHRoZSBvbGQgdXNlcmxhbmQuICovCi0JcmV0dXJuIChjdXJyZW50LT5ldWlkICE9IGN1cnJlbnQtPnVpZCB8fAotCQljdXJyZW50LT5lZ2lkICE9IGN1cnJlbnQtPmdpZCk7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2JfYWxsb2Nfc2VjdXJpdHkgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NiX2ZyZWVfc2VjdXJpdHkgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX2NvcHlfZGF0YSAoY2hhciAqb3JpZywgY2hhciAqY29weSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zYl9rZXJuX21vdW50IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX3N0YXRmcyAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX21vdW50IChjaGFyICpkZXZfbmFtZSwgc3RydWN0IHBhdGggKnBhdGgsIGNoYXIgKnR5cGUsCi0JCQkgICB1bnNpZ25lZCBsb25nIGZsYWdzLCB2b2lkICpkYXRhKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX2NoZWNrX3NiIChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IHBhdGggKnBhdGgpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2JfdW1vdW50IChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgaW50IGZsYWdzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9zYl91bW91bnRfY2xvc2UgKHN0cnVjdCB2ZnNtb3VudCAqbW50KQotewotCXJldHVybjsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2JfdW1vdW50X2J1c3kgKHN0cnVjdCB2ZnNtb3VudCAqbW50KQotewotCXJldHVybjsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2JfcG9zdF9yZW1vdW50IChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgdW5zaWduZWQgbG9uZyBmbGFncywKLQkJCQkgICB2b2lkICpkYXRhKQotewotCXJldHVybjsKLX0KLQotCi1zdGF0aWMgdm9pZCBkdW1teV9zYl9wb3N0X2FkZG1vdW50IChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IHBhdGggKnBhdGgpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX3Bpdm90cm9vdCAoc3RydWN0IHBhdGggKm9sZF9wYXRoLCBzdHJ1Y3QgcGF0aCAqbmV3X3BhdGgpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NiX3Bvc3RfcGl2b3Ryb290IChzdHJ1Y3QgcGF0aCAqb2xkX3BhdGgsIHN0cnVjdCBwYXRoICpuZXdfcGF0aCkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2JfZ2V0X21udF9vcHRzKGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCi0JCQkJIHN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cykKLXsKLQlzZWN1cml0eV9pbml0X21udF9vcHRzKG9wdHMpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX3NldF9tbnRfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJCSBzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpCi17Ci0JaWYgKHVubGlrZWx5KG9wdHMtPm51bV9tbnRfb3B0cykpCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2JfY2xvbmVfbW50X29wdHMoY29uc3Qgc3RydWN0IHN1cGVyX2Jsb2NrICpvbGRzYiwKLQkJCQkgICAgc3RydWN0IHN1cGVyX2Jsb2NrICpuZXdzYikKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2JfcGFyc2Vfb3B0c19zdHIoY2hhciAqb3B0aW9ucywgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3QgaW5vZGUgKmlub2RlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9pbm9kZV9mcmVlX3NlY3VyaXR5IChzdHJ1Y3QgaW5vZGUgKmlub2RlKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9pbml0X3NlY3VyaXR5IChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW5vZGUgKmRpciwKLQkJCQkgICAgICBjaGFyICoqbmFtZSwgdm9pZCAqKnZhbHVlLCBzaXplX3QgKmxlbikKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfY3JlYXRlIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCi0JCQkgICAgICAgaW50IG1hc2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfbGluayAoc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJCSAgICAgc3RydWN0IGRlbnRyeSAqbmV3X2RlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV91bmxpbmsgKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9zeW1saW5rIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCi0JCQkJY29uc3QgY2hhciAqbmFtZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9ta2RpciAoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAotCQkJICAgICAgaW50IG1hc2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfcm1kaXIgKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9ta25vZCAoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAotCQkJICAgICAgaW50IG1vZGUsIGRldl90IGRldikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9yZW5hbWUgKHN0cnVjdCBpbm9kZSAqb2xkX2lub2RlLAotCQkJICAgICAgIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCi0JCQkgICAgICAgc3RydWN0IGlub2RlICpuZXdfaW5vZGUsCi0JCQkgICAgICAgc3RydWN0IGRlbnRyeSAqbmV3X2RlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9yZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCi0JCQkJICAgIHN0cnVjdCBuYW1laWRhdGEgKm5hbWVpZGF0YSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9wZXJtaXNzaW9uIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaywgc3RydWN0IG5hbWVpZGF0YSAqbmQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfc2V0YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmlhdHRyKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2dldGF0dHIgKHN0cnVjdCB2ZnNtb3VudCAqbW50LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2lub2RlX2RlbGV0ZSAoc3RydWN0IGlub2RlICppbm8pCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX3NldHhhdHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsCi0JCQkJIGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwgaW50IGZsYWdzKQotewotCWlmICghc3RybmNtcChuYW1lLCBYQVRUUl9TRUNVUklUWV9QUkVGSVgsCi0JCSAgICAgc2l6ZW9mKFhBVFRSX1NFQ1VSSVRZX1BSRUZJWCkgLSAxKSAmJgotCSAgICAhY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKLQkJcmV0dXJuIC1FUEVSTTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfaW5vZGVfcG9zdF9zZXR4YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lLAotCQkJCSAgICAgICBjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsCi0JCQkJICAgICAgIGludCBmbGFncykKLXsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9nZXR4YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2xpc3R4YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX3JlbW92ZXhhdHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUpCi17Ci0JaWYgKCFzdHJuY21wKG5hbWUsIFhBVFRSX1NFQ1VSSVRZX1BSRUZJWCwKLQkJICAgICBzaXplb2YoWEFUVFJfU0VDVVJJVFlfUFJFRklYKSAtIDEpICYmCi0JICAgICFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQotCQlyZXR1cm4gLUVQRVJNOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX25lZWRfa2lsbHByaXYoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2tpbGxwcml2KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9nZXRzZWN1cml0eShjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpuYW1lLCB2b2lkICoqYnVmZmVyLCBib29sIGFsbG9jKQotewotCXJldHVybiAtRU9QTk9UU1VQUDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9zZXRzZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsIGludCBmbGFncykKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfbGlzdHNlY3VyaXR5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmZlcl9zaXplKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9pbm9kZV9nZXRzZWNpZChjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1MzIgKnNlY2lkKQotewotCSpzZWNpZCA9IDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9wZXJtaXNzaW9uIChzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1hc2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9hbGxvY19zZWN1cml0eSAoc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2ZpbGVfZnJlZV9zZWN1cml0eSAoc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfaW9jdGwgKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY29tbWFuZCwKLQkJCSAgICAgdW5zaWduZWQgbG9uZyBhcmcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9tbWFwIChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyByZXFwcm90LAotCQkJICAgIHVuc2lnbmVkIGxvbmcgcHJvdCwKLQkJCSAgICB1bnNpZ25lZCBsb25nIGZsYWdzLAotCQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkciwKLQkJCSAgICB1bnNpZ25lZCBsb25nIGFkZHJfb25seSkKLXsKLQlpZiAoKGFkZHIgPCBtbWFwX21pbl9hZGRyKSAmJiAhY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKLQkJcmV0dXJuIC1FQUNDRVM7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9tcHJvdGVjdCAoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0JCQkJdW5zaWduZWQgbG9uZyByZXFwcm90LAotCQkJCXVuc2lnbmVkIGxvbmcgcHJvdCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9maWxlX2xvY2sgKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfZmNudGwgKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJICAgICB1bnNpZ25lZCBsb25nIGFyZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9maWxlX3NldF9mb3duZXIgKHN0cnVjdCBmaWxlICpmaWxlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfc2VuZF9zaWdpb3Rhc2sgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAotCQkJCSAgICAgIHN0cnVjdCBmb3duX3N0cnVjdCAqZm93biwgaW50IHNpZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9maWxlX3JlY2VpdmUgKHN0cnVjdCBmaWxlICpmaWxlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2RlbnRyeV9vcGVuIChzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2NyZWF0ZSAodW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3Rhc2tfZnJlZV9zZWN1cml0eSAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldHVpZCAodWlkX3QgaWQwLCB1aWRfdCBpZDEsIHVpZF90IGlkMiwgaW50IGZsYWdzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfcG9zdF9zZXR1aWQgKHVpZF90IGlkMCwgdWlkX3QgaWQxLCB1aWRfdCBpZDIsIGludCBmbGFncykKLXsKLQlkdW1teV9jYXBnZXQoY3VycmVudCwgJmN1cnJlbnQtPmNhcF9lZmZlY3RpdmUsICZjdXJyZW50LT5jYXBfaW5oZXJpdGFibGUsICZjdXJyZW50LT5jYXBfcGVybWl0dGVkKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldGdpZCAoZ2lkX3QgaWQwLCBnaWRfdCBpZDEsIGdpZF90IGlkMiwgaW50IGZsYWdzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfc2V0cGdpZCAoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBwaWRfdCBwZ2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfZ2V0cGdpZCAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfZ2V0c2lkIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3Rhc2tfZ2V0c2VjaWQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdTMyICpzZWNpZCkKLXsKLQkqc2VjaWQgPSAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfc2V0Z3JvdXBzIChzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ3JvdXBfaW5mbykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldG5pY2UgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IG5pY2UpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19zZXRpb3ByaW8gKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IGlvcHJpbykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2dldGlvcHJpbyAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfc2V0cmxpbWl0ICh1bnNpZ25lZCBpbnQgcmVzb3VyY2UsIHN0cnVjdCBybGltaXQgKm5ld19ybGltKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfc2V0c2NoZWR1bGVyIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwb2xpY3ksCi0JCQkJICAgIHN0cnVjdCBzY2hlZF9wYXJhbSAqbHApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19nZXRzY2hlZHVsZXIgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX21vdmVtZW1vcnkgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3dhaXQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2tpbGwgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHNpZ2luZm8gKmluZm8sCi0JCQkgICAgaW50IHNpZywgdTMyIHNlY2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfcHJjdGwgKGludCBvcHRpb24sIHVuc2lnbmVkIGxvbmcgYXJnMiwgdW5zaWduZWQgbG9uZyBhcmczLAotCQkJICAgICB1bnNpZ25lZCBsb25nIGFyZzQsIHVuc2lnbmVkIGxvbmcgYXJnNSwgbG9uZyAqcmNfcCkKLXsKLQlzd2l0Y2ggKG9wdGlvbikgewotCWNhc2UgUFJfQ0FQQlNFVF9SRUFEOgotCQkqcmNfcCA9IChjYXBfdmFsaWQoYXJnMikgPyAxIDogLUVJTlZBTCk7Ci0JCWJyZWFrOwotCWNhc2UgUFJfR0VUX0tFRVBDQVBTOgotCQkqcmNfcCA9IGlzc2VjdXJlKFNFQ1VSRV9LRUVQX0NBUFMpOwotCQlicmVhazsKLQljYXNlIFBSX1NFVF9LRUVQQ0FQUzoKLQkJaWYgKGFyZzIgPiAxKQotCQkJKnJjX3AgPSAtRUlOVkFMOwotCQllbHNlIGlmIChhcmcyKQotCQkJY3VycmVudC0+c2VjdXJlYml0cyB8PSBpc3NlY3VyZV9tYXNrKFNFQ1VSRV9LRUVQX0NBUFMpOwotCQllbHNlCi0JCQljdXJyZW50LT5zZWN1cmViaXRzICY9Ci0JCQkJfmlzc2VjdXJlX21hc2soU0VDVVJFX0tFRVBfQ0FQUyk7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAwOwotCX0KLQotCXJldHVybiAxOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV90YXNrX3JlcGFyZW50X3RvX2luaXQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlwLT5ldWlkID0gcC0+ZnN1aWQgPSAwOwotCXJldHVybjsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfdGFza190b19pbm9kZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBpbm9kZSAqaW5vZGUpCi17IH0KLQotc3RhdGljIGludCBkdW1teV9pcGNfcGVybWlzc2lvbiAoc3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3AsIHNob3J0IGZsYWcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2lwY19nZXRzZWNpZChzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCwgdTMyICpzZWNpZCkKLXsKLQkqc2VjaWQgPSAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X21zZ19tc2dfYWxsb2Nfc2VjdXJpdHkgKHN0cnVjdCBtc2dfbXNnICptc2cpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X21zZ19tc2dfZnJlZV9zZWN1cml0eSAoc3RydWN0IG1zZ19tc2cgKm1zZykKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfbXNnX3F1ZXVlX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3QgbXNnX3F1ZXVlICptc3EpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X21zZ19xdWV1ZV9mcmVlX3NlY3VyaXR5IChzdHJ1Y3QgbXNnX3F1ZXVlICptc3EpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X21zZ19xdWV1ZV9hc3NvY2lhdGUgKHN0cnVjdCBtc2dfcXVldWUgKm1zcSwgCi0JCQkJICAgICAgaW50IG1zcWZsZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9tc2dfcXVldWVfbXNnY3RsIChzdHJ1Y3QgbXNnX3F1ZXVlICptc3EsIGludCBjbWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfbXNnX3F1ZXVlX21zZ3NuZCAoc3RydWN0IG1zZ19xdWV1ZSAqbXNxLCBzdHJ1Y3QgbXNnX21zZyAqbXNnLAotCQkJCSAgIGludCBtc2dmbGcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfbXNnX3F1ZXVlX21zZ3JjdiAoc3RydWN0IG1zZ19xdWV1ZSAqbXNxLCBzdHJ1Y3QgbXNnX21zZyAqbXNnLAotCQkJCSAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LCBsb25nIHR5cGUsCi0JCQkJICAgaW50IG1vZGUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2htX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NobV9mcmVlX3NlY3VyaXR5IChzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHApCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NobV9hc3NvY2lhdGUgKHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCwgaW50IHNobWZsZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zaG1fc2htY3RsIChzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHAsIGludCBjbWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2htX3NobWF0IChzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHAsIGNoYXIgX191c2VyICpzaG1hZGRyLAotCQkJICAgIGludCBzaG1mbGcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2VtX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3Qgc2VtX2FycmF5ICpzbWEpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NlbV9mcmVlX3NlY3VyaXR5IChzdHJ1Y3Qgc2VtX2FycmF5ICpzbWEpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NlbV9hc3NvY2lhdGUgKHN0cnVjdCBzZW1fYXJyYXkgKnNtYSwgaW50IHNlbWZsZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zZW1fc2VtY3RsIChzdHJ1Y3Qgc2VtX2FycmF5ICpzbWEsIGludCBjbWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2VtX3NlbW9wIChzdHJ1Y3Qgc2VtX2FycmF5ICpzbWEsIAotCQkJICAgIHN0cnVjdCBzZW1idWYgKnNvcHMsIHVuc2lnbmVkIG5zb3BzLCBpbnQgYWx0ZXIpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfbmV0bGlua19zZW5kIChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCi17Ci0JTkVUTElOS19DQihza2IpLmVmZl9jYXAgPSBjdXJyZW50LT5jYXBfZWZmZWN0aXZlOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X25ldGxpbmtfcmVjdiAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGNhcCkKLXsKLQlpZiAoIWNhcF9yYWlzZWQgKE5FVExJTktfQ0IgKHNrYikuZWZmX2NhcCwgY2FwKSkKLQkJcmV0dXJuIC1FUEVSTTsKLQlyZXR1cm4gMDsKLX0KLQotI2lmZGVmIENPTkZJR19TRUNVUklUWV9ORVRXT1JLCi1zdGF0aWMgaW50IGR1bW15X3VuaXhfc3RyZWFtX2Nvbm5lY3QgKHN0cnVjdCBzb2NrZXQgKnNvY2ssCi0JCQkJICAgICAgc3RydWN0IHNvY2tldCAqb3RoZXIsCi0JCQkJICAgICAgc3RydWN0IHNvY2sgKm5ld3NrKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3VuaXhfbWF5X3NlbmQgKHN0cnVjdCBzb2NrZXQgKnNvY2ssCi0JCQkJc3RydWN0IHNvY2tldCAqb3RoZXIpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2NyZWF0ZSAoaW50IGZhbWlseSwgaW50IHR5cGUsCi0JCQkJaW50IHByb3RvY29sLCBpbnQga2VybikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfcG9zdF9jcmVhdGUgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBmYW1pbHksIGludCB0eXBlLAotCQkJCSAgICAgaW50IHByb3RvY29sLCBpbnQga2VybikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfYmluZCAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyZXNzLAotCQkJICAgICAgaW50IGFkZHJsZW4pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2Nvbm5lY3QgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkcmVzcywKLQkJCQkgaW50IGFkZHJsZW4pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2xpc3RlbiAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGJhY2tsb2cpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2FjY2VwdCAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqbmV3c29jaykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc29ja2V0X3Bvc3RfYWNjZXB0IChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCAKLQkJCQkgICAgICBzdHJ1Y3Qgc29ja2V0ICpuZXdzb2NrKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfc2VuZG1zZyAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLAotCQkJCSBpbnQgc2l6ZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfcmVjdm1zZyAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLAotCQkJCSBpbnQgc2l6ZSwgaW50IGZsYWdzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9nZXRzb2NrbmFtZSAoc3RydWN0IHNvY2tldCAqc29jaykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfZ2V0cGVlcm5hbWUgKHN0cnVjdCBzb2NrZXQgKnNvY2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X3NldHNvY2tvcHQgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2dldHNvY2tvcHQgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X3NodXRkb3duIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgaG93KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9zb2NrX3Jjdl9za2IgKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfZ2V0cGVlcnNlY19zdHJlYW0oc3RydWN0IHNvY2tldCAqc29jaywgY2hhciBfX3VzZXIgKm9wdHZhbCwKLQkJCQkJICBpbnQgX191c2VyICpvcHRsZW4sIHVuc2lnbmVkIGxlbikKLXsKLQlyZXR1cm4gLUVOT1BST1RPT1BUOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9nZXRwZWVyc2VjX2RncmFtKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqc2VjaWQpCi17Ci0JcmV0dXJuIC1FTk9QUk9UT09QVDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZHVtbXlfc2tfYWxsb2Nfc2VjdXJpdHkgKHN0cnVjdCBzb2NrICpzaywgaW50IGZhbWlseSwgZ2ZwX3QgcHJpb3JpdHkpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkdW1teV9za19mcmVlX3NlY3VyaXR5IChzdHJ1Y3Qgc29jayAqc2spCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkdW1teV9za19jbG9uZV9zZWN1cml0eSAoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29jayAqbmV3c2spCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkdW1teV9za19nZXRzZWNpZChzdHJ1Y3Qgc29jayAqc2ssIHUzMiAqc2VjaWQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkdW1teV9zb2NrX2dyYWZ0KHN0cnVjdCBzb2NrKiBzaywgc3RydWN0IHNvY2tldCAqcGFyZW50KQotewotfQotCi1zdGF0aWMgaW5saW5lIGludCBkdW1teV9pbmV0X2Nvbm5fcmVxdWVzdChzdHJ1Y3Qgc29jayAqc2ssCi0JCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkdW1teV9pbmV0X2Nza19jbG9uZShzdHJ1Y3Qgc29jayAqbmV3c2ssCi0JCQljb25zdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkdW1teV9pbmV0X2Nvbm5fZXN0YWJsaXNoZWQoc3RydWN0IHNvY2sgKnNrLAotCQkJc3RydWN0IHNrX2J1ZmYgKnNrYikKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGR1bW15X3JlcV9jbGFzc2lmeV9mbG93KGNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSwKLQkJCXN0cnVjdCBmbG93aSAqZmwpCi17Ci19Ci0jZW5kaWYJLyogQ09ORklHX1NFQ1VSSVRZX05FVFdPUksgKi8KLQotI2lmZGVmIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0KLXN0YXRpYyBpbnQgZHVtbXlfeGZybV9wb2xpY3lfYWxsb2Nfc2VjdXJpdHkoc3RydWN0IHhmcm1fc2VjX2N0eCAqKmN0eHAsCi0JCQkJCSAgICBzdHJ1Y3QgeGZybV91c2VyX3NlY19jdHggKnNlY19jdHgpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bW15X3hmcm1fcG9saWN5X2Nsb25lX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3NlY19jdHggKm9sZF9jdHgsCi0JCQkJCSAgIHN0cnVjdCB4ZnJtX3NlY19jdHggKipuZXdfY3R4cCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfeGZybV9wb2xpY3lfZnJlZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICpjdHgpCi17Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfeGZybV9wb2xpY3lfZGVsZXRlX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3NlY19jdHggKmN0eCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV94ZnJtX3N0YXRlX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3N0YXRlICp4LAotCXN0cnVjdCB4ZnJtX3VzZXJfc2VjX2N0eCAqc2VjX2N0eCwgdTMyIHNlY2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV94ZnJtX3N0YXRlX2ZyZWVfc2VjdXJpdHkoc3RydWN0IHhmcm1fc3RhdGUgKngpCi17Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfeGZybV9zdGF0ZV9kZWxldGVfc2VjdXJpdHkoc3RydWN0IHhmcm1fc3RhdGUgKngpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfeGZybV9wb2xpY3lfbG9va3VwKHN0cnVjdCB4ZnJtX3NlY19jdHggKmN0eCwKLQkJCQkgICAgdTMyIHNrX3NpZCwgdTggZGlyKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3hmcm1fc3RhdGVfcG9sX2Zsb3dfbWF0Y2goc3RydWN0IHhmcm1fc3RhdGUgKngsCi0JCQkJc3RydWN0IHhmcm1fcG9saWN5ICp4cCwgc3RydWN0IGZsb3dpICpmbCkKLXsKLQlyZXR1cm4gMTsKLX0KLQotc3RhdGljIGludCBkdW1teV94ZnJtX2RlY29kZV9zZXNzaW9uKHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqZmwsIGludCBja2FsbCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0gKi8KLXN0YXRpYyBpbnQgZHVtbXlfcmVnaXN0ZXJfc2VjdXJpdHkgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpCi17Ci0JcmV0dXJuIC1FSU5WQUw7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2RfaW5zdGFudGlhdGUgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZ2V0cHJvY2F0dHIoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjaGFyICpuYW1lLCBjaGFyICoqdmFsdWUpCi17Ci0JcmV0dXJuIC1FSU5WQUw7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2V0cHJvY2F0dHIoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjaGFyICpuYW1lLCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUpCi17Ci0JcmV0dXJuIC1FSU5WQUw7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2VjaWRfdG9fc2VjY3R4KHUzMiBzZWNpZCwgY2hhciAqKnNlY2RhdGEsIHUzMiAqc2VjbGVuKQotewotCXJldHVybiAtRU9QTk9UU1VQUDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zZWNjdHhfdG9fc2VjaWQoY29uc3QgY2hhciAqc2VjZGF0YSwgdTMyIHNlY2xlbiwgdTMyICpzZWNpZCkKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3JlbGVhc2Vfc2VjY3R4KGNoYXIgKnNlY2RhdGEsIHUzMiBzZWNsZW4pCi17Ci19Ci0KLSNpZmRlZiBDT05GSUdfS0VZUwotc3RhdGljIGlubGluZSBpbnQgZHVtbXlfa2V5X2FsbG9jKHN0cnVjdCBrZXkgKmtleSwgc3RydWN0IHRhc2tfc3RydWN0ICpjdHgsCi0JCQkJICB1bnNpZ25lZCBsb25nIGZsYWdzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZHVtbXlfa2V5X2ZyZWUoc3RydWN0IGtleSAqa2V5KQotewotfQotCi1zdGF0aWMgaW5saW5lIGludCBkdW1teV9rZXlfcGVybWlzc2lvbihrZXlfcmVmX3Qga2V5X3JlZiwKLQkJCQkgICAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpjb250ZXh0LAotCQkJCSAgICAgICBrZXlfcGVybV90IHBlcm0pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfa2V5X2dldHNlY3VyaXR5KHN0cnVjdCBrZXkgKmtleSwgY2hhciAqKl9idWZmZXIpCi17Ci0JKl9idWZmZXIgPSBOVUxMOwotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogQ09ORklHX0tFWVMgKi8KLQotI2lmZGVmIENPTkZJR19BVURJVAotc3RhdGljIGlubGluZSBpbnQgZHVtbXlfYXVkaXRfcnVsZV9pbml0KHUzMiBmaWVsZCwgdTMyIG9wLCBjaGFyICpydWxlc3RyLAotCQkJCQl2b2lkICoqbHNtcnVsZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZHVtbXlfYXVkaXRfcnVsZV9rbm93bihzdHJ1Y3QgYXVkaXRfa3J1bGUgKmtydWxlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBkdW1teV9hdWRpdF9ydWxlX21hdGNoKHUzMiBzZWNpZCwgdTMyIGZpZWxkLCB1MzIgb3AsCi0JCQkJCSB2b2lkICpsc21ydWxlLAotCQkJCQkgc3RydWN0IGF1ZGl0X2NvbnRleHQgKmFjdHgpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkdW1teV9hdWRpdF9ydWxlX2ZyZWUodm9pZCAqbHNtcnVsZSkKLXsgfQotCi0jZW5kaWYgLyogQ09ORklHX0FVRElUICovCi0KLXN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zIGR1bW15X3NlY3VyaXR5X29wcyA9IHsKLQkubmFtZSA9ICJkdW1teSIsCi19OwotCi0jZGVmaW5lIHNldF90b19kdW1teV9pZl9udWxsKG9wcywgZnVuY3Rpb24pCQkJCVwKLQlkbyB7CQkJCQkJCQlcCi0JCWlmICghb3BzLT5mdW5jdGlvbikgewkJCQkJXAotCQkJb3BzLT5mdW5jdGlvbiA9IGR1bW15XyMjZnVuY3Rpb247CQlcCi0JCQlwcl9kZWJ1ZygiSGFkIHRvIG92ZXJyaWRlIHRoZSAiICNmdW5jdGlvbglcCi0JCQkJICIgc2VjdXJpdHkgb3BlcmF0aW9uIHdpdGggdGhlIGR1bW15IG9uZS5cbiIpO1wKLQkJCX0JCQkJCQlcCi0JfSB3aGlsZSAoMCkKLQotdm9pZCBzZWN1cml0eV9maXh1cF9vcHMgKHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpCi17Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBwdHJhY2UpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgY2FwZ2V0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGNhcHNldF9jaGVjayk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBjYXBzZXRfc2V0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGFjY3QpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgY2FwYWJsZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBxdW90YWN0bCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBxdW90YV9vbik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzeXNjdGwpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc3lzbG9nKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNldHRpbWUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdm1fZW5vdWdoX21lbW9yeSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBicHJtX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGJwcm1fZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBicHJtX2FwcGx5X2NyZWRzKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGJwcm1fcG9zdF9hcHBseV9jcmVkcyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBicHJtX3NldF9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBicHJtX2NoZWNrX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGJwcm1fc2VjdXJlZXhlYyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX2NvcHlfZGF0YSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9rZXJuX21vdW50KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3N0YXRmcyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9tb3VudCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9jaGVja19zYik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl91bW91bnQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfdW1vdW50X2Nsb3NlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3Vtb3VudF9idXN5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3Bvc3RfcmVtb3VudCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9wb3N0X2FkZG1vdW50KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3Bpdm90cm9vdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9wb3N0X3Bpdm90cm9vdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9nZXRfbW50X29wdHMpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2Jfc2V0X21udF9vcHRzKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX2Nsb25lX21udF9vcHRzKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3BhcnNlX29wdHNfc3RyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfaW5pdF9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9jcmVhdGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfbGluayk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV91bmxpbmspOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfc3ltbGluayk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9ta2Rpcik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9ybWRpcik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9ta25vZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9yZW5hbWUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfcmVhZGxpbmspOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfZm9sbG93X2xpbmspOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfcGVybWlzc2lvbik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9zZXRhdHRyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2dldGF0dHIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfZGVsZXRlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3NldHhhdHRyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3Bvc3Rfc2V0eGF0dHIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfZ2V0eGF0dHIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfbGlzdHhhdHRyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3JlbW92ZXhhdHRyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX25lZWRfa2lsbHByaXYpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfa2lsbHByaXYpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfZ2V0c2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfc2V0c2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfbGlzdHNlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2dldHNlY2lkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfcGVybWlzc2lvbik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX2lvY3RsKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfbW1hcCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX21wcm90ZWN0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfbG9jayk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX2ZjbnRsKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfc2V0X2Zvd25lcik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX3NlbmRfc2lnaW90YXNrKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZpbGVfcmVjZWl2ZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBkZW50cnlfb3Blbik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX2NyZWF0ZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3NldHVpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3Bvc3Rfc2V0dWlkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfc2V0Z2lkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfc2V0cGdpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX2dldHBnaWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19nZXRzaWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19nZXRzZWNpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3NldGdyb3Vwcyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3NldG5pY2UpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19zZXRpb3ByaW8pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19nZXRpb3ByaW8pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19zZXRybGltaXQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19zZXRzY2hlZHVsZXIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19nZXRzY2hlZHVsZXIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19tb3ZlbWVtb3J5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfd2FpdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX2tpbGwpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19wcmN0bCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3JlcGFyZW50X3RvX2luaXQpOwotIAlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfdG9faW5vZGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaXBjX3Blcm1pc3Npb24pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaXBjX2dldHNlY2lkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1zZ19tc2dfYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbXNnX21zZ19mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1zZ19xdWV1ZV9hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBtc2dfcXVldWVfZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBtc2dfcXVldWVfYXNzb2NpYXRlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1zZ19xdWV1ZV9tc2djdGwpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX21zZ3NuZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBtc2dfcXVldWVfbXNncmN2KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNobV9hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzaG1fZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzaG1fYXNzb2NpYXRlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNobV9zaG1jdGwpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2htX3NobWF0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNlbV9hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzZW1fZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzZW1fYXNzb2NpYXRlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNlbV9zZW1jdGwpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2VtX3NlbW9wKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG5ldGxpbmtfc2VuZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBuZXRsaW5rX3JlY3YpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgcmVnaXN0ZXJfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZF9pbnN0YW50aWF0ZSk7Ci0gCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZ2V0cHJvY2F0dHIpOwotIAlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNldHByb2NhdHRyKTsKLSAJc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzZWNpZF90b19zZWNjdHgpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2VjY3R4X3RvX3NlY2lkKTsKLSAJc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCByZWxlYXNlX3NlY2N0eCk7Ci0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZX05FVFdPUksKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHVuaXhfc3RyZWFtX2Nvbm5lY3QpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdW5peF9tYXlfc2VuZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfY3JlYXRlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9wb3N0X2NyZWF0ZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfYmluZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfY29ubmVjdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfbGlzdGVuKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9hY2NlcHQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X3Bvc3RfYWNjZXB0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9zZW5kbXNnKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9yZWN2bXNnKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9nZXRzb2NrbmFtZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfZ2V0cGVlcm5hbWUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X3NldHNvY2tvcHQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2dldHNvY2tvcHQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X3NodXRkb3duKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9zb2NrX3Jjdl9za2IpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2dldHBlZXJzZWNfc3RyZWFtKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9nZXRwZWVyc2VjX2RncmFtKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNrX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNrX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2tfY2xvbmVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2tfZ2V0c2VjaWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja19ncmFmdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbmV0X2Nvbm5fcmVxdWVzdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbmV0X2Nza19jbG9uZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbmV0X2Nvbm5fZXN0YWJsaXNoZWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgcmVxX2NsYXNzaWZ5X2Zsb3cpOwotICNlbmRpZgkvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSyAqLwotI2lmZGVmICBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNCi0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX3BvbGljeV9hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX3BvbGljeV9jbG9uZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX3BvbGljeV9mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2RlbGV0ZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fc3RhdGVfZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX2RlbGV0ZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX3BvbGljeV9sb29rdXApOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9zdGF0ZV9wb2xfZmxvd19tYXRjaCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX2RlY29kZV9zZXNzaW9uKTsKLSNlbmRpZgkvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNICovCi0jaWZkZWYgQ09ORklHX0tFWVMKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGtleV9hbGxvYyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBrZXlfZnJlZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBrZXlfcGVybWlzc2lvbik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBrZXlfZ2V0c2VjdXJpdHkpOwotI2VuZGlmCS8qIENPTkZJR19LRVlTICovCi0jaWZkZWYgQ09ORklHX0FVRElUCi0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhdWRpdF9ydWxlX2luaXQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9rbm93bik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhdWRpdF9ydWxlX21hdGNoKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGF1ZGl0X3J1bGVfZnJlZSk7Ci0jZW5kaWYKLX0KLQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvcm9vdF9wbHVnLmMgYi9zZWN1cml0eS9yb290X3BsdWcuYwppbmRleCBhNDFjZjQyLi5iZTBlYmVjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9yb290X3BsdWcuYworKysgYi9zZWN1cml0eS9yb290X3BsdWcuYwpAQCAtMjgsOSArMjgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAKLS8qIGZsYWcgdG8ga2VlcCB0cmFjayBvZiBob3cgd2Ugd2VyZSByZWdpc3RlcmVkICovCi1zdGF0aWMgaW50IHNlY29uZGFyeTsKLQogLyogZGVmYXVsdCBpcyBhIGdlbmVyaWMgdHlwZSBvZiB1c2IgdG8gc2VyaWFsIGNvbnZlcnRlciAqLwogc3RhdGljIGludCB2ZW5kb3JfaWQgPSAweDA1NTc7CiBzdGF0aWMgaW50IHByb2R1Y3RfaWQgPSAweDIwMDg7CkBAIC05NywxMyArOTQsNyBAQAogCWlmIChyZWdpc3Rlcl9zZWN1cml0eSAoJnJvb3RwbHVnX3NlY3VyaXR5X29wcykpIHsKIAkJcHJpbnRrIChLRVJOX0lORk8gCiAJCQkiRmFpbHVyZSByZWdpc3RlcmluZyBSb290IFBsdWcgbW9kdWxlIHdpdGggdGhlIGtlcm5lbFxuIik7Ci0JCS8qIHRyeSByZWdpc3RlcmluZyB3aXRoIHByaW1hcnkgbW9kdWxlICovCi0JCWlmIChtb2RfcmVnX3NlY3VyaXR5IChNWV9OQU1FLCAmcm9vdHBsdWdfc2VjdXJpdHlfb3BzKSkgewotCQkJcHJpbnRrIChLRVJOX0lORk8gIkZhaWx1cmUgcmVnaXN0ZXJpbmcgUm9vdCBQbHVnICIKLQkJCQkiIG1vZHVsZSB3aXRoIHByaW1hcnkgc2VjdXJpdHkgbW9kdWxlLlxuIik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlzZWNvbmRhcnkgPSAxOwogCX0KIAlwcmludGsgKEtFUk5fSU5GTyAiUm9vdCBQbHVnIG1vZHVsZSBpbml0aWFsaXplZCwgIgogCQkidmVuZG9yX2lkID0gJTQuNHgsIHByb2R1Y3QgaWQgPSAlNC40eFxuIiwgdmVuZG9yX2lkLCBwcm9kdWN0X2lkKTsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlY3VyaXR5LmMgYi9zZWN1cml0eS9zZWN1cml0eS5jCmluZGV4IDU5ODM4YTkuLjU5ZjIzYjUgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlY3VyaXR5LmMKKysrIGIvc2VjdXJpdHkvc2VjdXJpdHkuYwpAQCAtMjAsOCArMjAsOCBAQAogLyogQm9vdC10aW1lIExTTSB1c2VyIGNob2ljZSAqLwogc3RhdGljIF9faW5pdGRhdGEgY2hhciBjaG9zZW5fbHNtW1NFQ1VSSVRZX05BTUVfTUFYICsgMV07CiAKLS8qIHRoaW5ncyB0aGF0IGxpdmUgaW4gZHVtbXkuYyAqLwotZXh0ZXJuIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zIGR1bW15X3NlY3VyaXR5X29wczsKKy8qIHRoaW5ncyB0aGF0IGxpdmUgaW4gY2FwYWJpbGl0eS5jICovCitleHRlcm4gc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgZGVmYXVsdF9zZWN1cml0eV9vcHM7CiBleHRlcm4gdm9pZCBzZWN1cml0eV9maXh1cF9vcHMoc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcyk7CiAKIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpzZWN1cml0eV9vcHM7CS8qIEluaXRpYWxpemVkIHRvIE5VTEwgKi8KQEAgLTU3LDEzICs1Nyw4IEBACiB7CiAJcHJpbnRrKEtFUk5fSU5GTyAiU2VjdXJpdHkgRnJhbWV3b3JrIGluaXRpYWxpemVkXG4iKTsKIAotCWlmICh2ZXJpZnkoJmR1bW15X3NlY3VyaXR5X29wcykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICIlcyBjb3VsZCBub3QgdmVyaWZ5ICIKLQkJICAgICAgICJkdW1teV9zZWN1cml0eV9vcHMgc3RydWN0dXJlLlxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQlzZWN1cml0eV9vcHMgPSAmZHVtbXlfc2VjdXJpdHlfb3BzOworCXNlY3VyaXR5X2ZpeHVwX29wcygmZGVmYXVsdF9zZWN1cml0eV9vcHMpOworCXNlY3VyaXR5X29wcyA9ICZkZWZhdWx0X3NlY3VyaXR5X29wczsKIAlkb19zZWN1cml0eV9pbml0Y2FsbHMoKTsKIAogCXJldHVybiAwOwpAQCAtMTIyLDcgKzExNyw3IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChzZWN1cml0eV9vcHMgIT0gJmR1bW15X3NlY3VyaXR5X29wcykKKwlpZiAoc2VjdXJpdHlfb3BzICE9ICZkZWZhdWx0X3NlY3VyaXR5X29wcykKIAkJcmV0dXJuIC1FQUdBSU47CiAKIAlzZWN1cml0eV9vcHMgPSBvcHM7CkBAIC0xMzAsNDAgKzEyNSwxMiBAQAogCXJldHVybiAwOwogfQogCi0vKioKLSAqIG1vZF9yZWdfc2VjdXJpdHkgLSBhbGxvd3Mgc2VjdXJpdHkgbW9kdWxlcyB0byBiZSAic3RhY2tlZCIKLSAqIEBuYW1lOiBhIHBvaW50ZXIgdG8gYSBzdHJpbmcgd2l0aCB0aGUgbmFtZSBvZiB0aGUgc2VjdXJpdHlfb3B0aW9ucyB0byBiZSByZWdpc3RlcmVkCi0gKiBAb3BzOiBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBzZWN1cml0eV9vcHRpb25zIHRoYXQgaXMgdG8gYmUgcmVnaXN0ZXJlZAotICoKLSAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHNlY3VyaXR5IG1vZHVsZXMgdG8gYmUgc3RhY2tlZCBpZiB0aGUgY3VycmVudGx5IGxvYWRlZAotICogc2VjdXJpdHkgbW9kdWxlIGFsbG93cyB0aGlzIHRvIGhhcHBlbi4gIEl0IHBhc3NlcyB0aGUgQG5hbWUgYW5kIEBvcHMgdG8gdGhlCi0gKiByZWdpc3Rlcl9zZWN1cml0eSBmdW5jdGlvbiBvZiB0aGUgY3VycmVudGx5IGxvYWRlZCBzZWN1cml0eSBtb2R1bGUuCi0gKgotICogVGhlIHJldHVybiB2YWx1ZSBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgbG9hZGVkIHNlY3VyaXR5IG1vZHVsZSwgd2l0aCAwIGFzCi0gKiBzdWNjZXNzLgotICovCi1pbnQgbW9kX3JlZ19zZWN1cml0eShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3BzKQotewotCWlmICh2ZXJpZnkob3BzKSkgewotCQlwcmludGsoS0VSTl9JTkZPICIlcyBjb3VsZCBub3QgdmVyaWZ5ICIKLQkJICAgICAgICJzZWN1cml0eSBvcGVyYXRpb25zLlxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAob3BzID09IHNlY3VyaXR5X29wcykgewotCQlwcmludGsoS0VSTl9JTkZPICIlcyBzZWN1cml0eSBvcGVyYXRpb25zICIKLQkJICAgICAgICJhbHJlYWR5IHJlZ2lzdGVyZWQuXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJldHVybiBzZWN1cml0eV9vcHMtPnJlZ2lzdGVyX3NlY3VyaXR5KG5hbWUsIG9wcyk7Ci19Ci0KIC8qIFNlY3VyaXR5IG9wZXJhdGlvbnMgKi8KIAotaW50IHNlY3VyaXR5X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKK2ludCBzZWN1cml0eV9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCSAgICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKLQlyZXR1cm4gc2VjdXJpdHlfb3BzLT5wdHJhY2UocGFyZW50LCBjaGlsZCk7CisJcmV0dXJuIHNlY3VyaXR5X29wcy0+cHRyYWNlKHBhcmVudCwgY2hpbGQsIG1vZGUpOwogfQogCiBpbnQgc2VjdXJpdHlfY2FwZ2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LApAQCAtMjkxLDYgKzI1OCwxMSBAQAogCXJldHVybiBzZWN1cml0eV9vcHMtPnNiX2tlcm5fbW91bnQoc2IsIGRhdGEpOwogfQogCitpbnQgc2VjdXJpdHlfc2Jfc2hvd19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3sKKwlyZXR1cm4gc2VjdXJpdHlfb3BzLT5zYl9zaG93X29wdGlvbnMobSwgc2IpOworfQorCiBpbnQgc2VjdXJpdHlfc2Jfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIHsKIAlyZXR1cm4gc2VjdXJpdHlfb3BzLT5zYl9zdGF0ZnMoZGVudHJ5KTsKQEAgLTM0MiwxMiArMzE0LDYgQEAKIAlzZWN1cml0eV9vcHMtPnNiX3Bvc3RfcGl2b3Ryb290KG9sZF9wYXRoLCBuZXdfcGF0aCk7CiB9CiAKLWludCBzZWN1cml0eV9zYl9nZXRfbW50X29wdHMoY29uc3Qgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKLQkJCQlzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpCi17Ci0JcmV0dXJuIHNlY3VyaXR5X29wcy0+c2JfZ2V0X21udF9vcHRzKHNiLCBvcHRzKTsKLX0KLQogaW50IHNlY3VyaXR5X3NiX3NldF9tbnRfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJCXN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cykKIHsKQEAgLTg5NCw3ICs4NjAsNyBAQAogCiB2b2lkIHNlY3VyaXR5X3JlbGVhc2Vfc2VjY3R4KGNoYXIgKnNlY2RhdGEsIHUzMiBzZWNsZW4pCiB7Ci0JcmV0dXJuIHNlY3VyaXR5X29wcy0+cmVsZWFzZV9zZWNjdHgoc2VjZGF0YSwgc2VjbGVuKTsKKwlzZWN1cml0eV9vcHMtPnJlbGVhc2Vfc2VjY3R4KHNlY2RhdGEsIHNlY2xlbik7CiB9CiBFWFBPUlRfU1lNQk9MKHNlY3VyaXR5X3JlbGVhc2Vfc2VjY3R4KTsKIApAQCAtMTAxMSwxMiArOTc3LDEyIEBACiAKIHZvaWQgc2VjdXJpdHlfc2tfZnJlZShzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JcmV0dXJuIHNlY3VyaXR5X29wcy0+c2tfZnJlZV9zZWN1cml0eShzayk7CisJc2VjdXJpdHlfb3BzLT5za19mcmVlX3NlY3VyaXR5KHNrKTsKIH0KIAogdm9pZCBzZWN1cml0eV9za19jbG9uZShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzaykKIHsKLQlyZXR1cm4gc2VjdXJpdHlfb3BzLT5za19jbG9uZV9zZWN1cml0eShzaywgbmV3c2spOworCXNlY3VyaXR5X29wcy0+c2tfY2xvbmVfc2VjdXJpdHkoc2ssIG5ld3NrKTsKIH0KIAogdm9pZCBzZWN1cml0eV9za19jbGFzc2lmeV9mbG93KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGZsb3dpICpmbCkKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYyBiL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYwppbmRleCAxYzg2NGMwLi42M2YxMzFmIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jCkBAIC05LDcgKzksOCBAQAogICoJICAgICAgSmFtZXMgTW9ycmlzIDxqbW9ycmlzQHJlZGhhdC5jb20+CiAgKgogICogIENvcHlyaWdodCAoQykgMjAwMSwyMDAyIE5ldHdvcmtzIEFzc29jaWF0ZXMgVGVjaG5vbG9neSwgSW5jLgotICogIENvcHlyaWdodCAoQykgMjAwMyBSZWQgSGF0LCBJbmMuLCBKYW1lcyBNb3JyaXMgPGptb3JyaXNAcmVkaGF0LmNvbT4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwOCBSZWQgSGF0LCBJbmMuLCBKYW1lcyBNb3JyaXMgPGptb3JyaXNAcmVkaGF0LmNvbT4KKyAqCQkJCQkgICBFcmljIFBhcmlzIDxlcGFyaXNAcmVkaGF0LmNvbT4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNSBUcnVzdGVkIENvbXB1dGVyIFNvbHV0aW9ucywgSW5jLgogICoJCQkgICAgPGRnb2VkZGVsQHRydXN0ZWRjcy5jb20+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEhld2xldHQtUGFja2FyZCBEZXZlbG9wbWVudCBDb21wYW55LCBMLlAuCkBAIC00Miw5ICs0Myw3IEBACiAjaW5jbHVkZSA8bGludXgvZmR0YWJsZS5oPgogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KLSNpbmNsdWRlIDxsaW51eC9leHQyX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgotI2luY2x1ZGUgPGxpbnV4L2tkLmg+CiAjaW5jbHVkZSA8bGludXgvbmV0ZmlsdGVyX2lwdjQuaD4KICNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXJfaXB2Ni5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgpAQCAtNTMsNyArNTIsNyBAQAogI2luY2x1ZGUgPG5ldC90Y3AuaD4JCS8qIHN0cnVjdCBvcl9jYWxsYWJsZSB1c2VkIGluIHNvY2tfcmN2X3NrYiAqLwogI2luY2x1ZGUgPG5ldC9uZXRfbmFtZXNwYWNlLmg+CiAjaW5jbHVkZSA8bmV0L25ldGxhYmVsLmg+Ci0jaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvY3Rscy5oPgogI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KICNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KQEAgLTEwNCw3ICsxMDMsOSBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBlbmZvcmNpbmdfc2V0dXAoY2hhciAqc3RyKQogewotCXNlbGludXhfZW5mb3JjaW5nID0gc2ltcGxlX3N0cnRvbChzdHIsIE5VTEwsIDApOworCXVuc2lnbmVkIGxvbmcgZW5mb3JjaW5nOworCWlmICghc3RyaWN0X3N0cnRvdWwoc3RyLCAwLCAmZW5mb3JjaW5nKSkKKwkJc2VsaW51eF9lbmZvcmNpbmcgPSBlbmZvcmNpbmcgPyAxIDogMDsKIAlyZXR1cm4gMTsKIH0KIF9fc2V0dXAoImVuZm9yY2luZz0iLCBlbmZvcmNpbmdfc2V0dXApOwpAQCAtMTE1LDcgKzExNiw5IEBACiAKIHN0YXRpYyBpbnQgX19pbml0IHNlbGludXhfZW5hYmxlZF9zZXR1cChjaGFyICpzdHIpCiB7Ci0Jc2VsaW51eF9lbmFibGVkID0gc2ltcGxlX3N0cnRvbChzdHIsIE5VTEwsIDApOworCXVuc2lnbmVkIGxvbmcgZW5hYmxlZDsKKwlpZiAoIXN0cmljdF9zdHJ0b3VsKHN0ciwgMCwgJmVuYWJsZWQpKQorCQlzZWxpbnV4X2VuYWJsZWQgPSBlbmFibGVkID8gMSA6IDA7CiAJcmV0dXJuIDE7CiB9CiBfX3NldHVwKCJzZWxpbnV4PSIsIHNlbGludXhfZW5hYmxlZF9zZXR1cCk7CkBAIC0xMjMsMTMgKzEyNiwxMSBAQAogaW50IHNlbGludXhfZW5hYmxlZCA9IDE7CiAjZW5kaWYKIAotLyogT3JpZ2luYWwgKGR1bW15KSBzZWN1cml0eSBtb2R1bGUuICovCi1zdGF0aWMgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9yaWdpbmFsX29wczsKIAotLyogTWluaW1hbCBzdXBwb3J0IGZvciBhIHNlY29uZGFyeSBzZWN1cml0eSBtb2R1bGUsCi0gICBqdXN0IHRvIGFsbG93IHRoZSB1c2Ugb2YgdGhlIGR1bW15IG9yIGNhcGFiaWxpdHkgbW9kdWxlcy4KLSAgIFRoZSBvd2xzbSBtb2R1bGUgY2FuIGFsdGVybmF0aXZlbHkgYmUgdXNlZCBhcyBhIHNlY29uZGFyeQotICAgbW9kdWxlIGFzIGxvbmcgYXMgQ09ORklHX09XTFNNX0ZEIGlzIG5vdCBlbmFibGVkLiAqLworLyoKKyAqIE1pbmltYWwgc3VwcG9ydCBmb3IgYSBzZWNvbmRhcnkgc2VjdXJpdHkgbW9kdWxlLAorICoganVzdCB0byBhbGxvdyB0aGUgdXNlIG9mIHRoZSBjYXBhYmlsaXR5IG1vZHVsZS4KKyAqLwogc3RhdGljIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpzZWNvbmRhcnlfb3BzOwogCiAvKiBMaXN0cyBvZiBpbm9kZSBhbmQgc3VwZXJibG9jayBzZWN1cml0eSBzdHJ1Y3R1cmVzIGluaXRpYWxpemVkCkBAIC01OTQsNyArNTk1LDcgQEAKIAkgKi8KIAlpZiAoc2JzZWMtPmluaXRpYWxpemVkICYmIChzYi0+c190eXBlLT5mc19mbGFncyAmIEZTX0JJTkFSWV9NT1VOVERBVEEpCiAJICAgICYmIChudW1fb3B0cyA9PSAwKSkKLQkgICAgICAgIGdvdG8gb3V0OworCQlnb3RvIG91dDsKIAogCS8qCiAJICogcGFyc2UgdGhlIG1vdW50IG9wdGlvbnMsIGNoZWNrIGlmIHRoZXkgYXJlIHZhbGlkIHNpZHMuCkBAIC05NTYsNiArOTU3LDU3IEBACiAJcmV0dXJuIHJjOwogfQogCit2b2lkIHNlbGludXhfd3JpdGVfb3B0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cykKK3sKKwlpbnQgaTsKKwljaGFyICpwcmVmaXg7CisKKwlmb3IgKGkgPSAwOyBpIDwgb3B0cy0+bnVtX21udF9vcHRzOyBpKyspIHsKKwkJY2hhciAqaGFzX2NvbW1hID0gc3RyY2hyKG9wdHMtPm1udF9vcHRzW2ldLCAnLCcpOworCisJCXN3aXRjaCAob3B0cy0+bW50X29wdHNfZmxhZ3NbaV0pIHsKKwkJY2FzZSBDT05URVhUX01OVDoKKwkJCXByZWZpeCA9IENPTlRFWFRfU1RSOworCQkJYnJlYWs7CisJCWNhc2UgRlNDT05URVhUX01OVDoKKwkJCXByZWZpeCA9IEZTQ09OVEVYVF9TVFI7CisJCQlicmVhazsKKwkJY2FzZSBST09UQ09OVEVYVF9NTlQ6CisJCQlwcmVmaXggPSBST09UQ09OVEVYVF9TVFI7CisJCQlicmVhazsKKwkJY2FzZSBERUZDT05URVhUX01OVDoKKwkJCXByZWZpeCA9IERFRkNPTlRFWFRfU1RSOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlCVUcoKTsKKwkJfTsKKwkJLyogd2UgbmVlZCBhIGNvbW1hIGJlZm9yZSBlYWNoIG9wdGlvbiAqLworCQlzZXFfcHV0YyhtLCAnLCcpOworCQlzZXFfcHV0cyhtLCBwcmVmaXgpOworCQlpZiAoaGFzX2NvbW1hKQorCQkJc2VxX3B1dGMobSwgJ1wiJyk7CisJCXNlcV9wdXRzKG0sIG9wdHMtPm1udF9vcHRzW2ldKTsKKwkJaWYgKGhhc19jb21tYSkKKwkJCXNlcV9wdXRjKG0sICdcIicpOworCX0KK30KKworc3RhdGljIGludCBzZWxpbnV4X3NiX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJc3RydWN0IHNlY3VyaXR5X21udF9vcHRzIG9wdHM7CisJaW50IHJjOworCisJcmMgPSBzZWxpbnV4X2dldF9tbnRfb3B0cyhzYiwgJm9wdHMpOworCWlmIChyYykKKwkJcmV0dXJuIHJjOworCisJc2VsaW51eF93cml0ZV9vcHRzKG0sICZvcHRzKTsKKworCXNlY3VyaXR5X2ZyZWVfbW50X29wdHMoJm9wdHMpOworCisJcmV0dXJuIHJjOworfQorCiBzdGF0aWMgaW5saW5lIHUxNiBpbm9kZV9tb2RlX3RvX3NlY3VyaXR5X2NsYXNzKHVtb2RlX3QgbW9kZSkKIHsKIAlzd2l0Y2ggKG1vZGUgJiBTX0lGTVQpIHsKQEAgLTE2ODIsMTQgKzE3MzQsMjMgQEAKIAogLyogSG9vayBmdW5jdGlvbnMgYmVnaW4gaGVyZS4gKi8KIAotc3RhdGljIGludCBzZWxpbnV4X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKK3N0YXRpYyBpbnQgc2VsaW51eF9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsCisJCQkgIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgIHVuc2lnbmVkIGludCBtb2RlKQogewogCWludCByYzsKIAotCXJjID0gc2Vjb25kYXJ5X29wcy0+cHRyYWNlKHBhcmVudCwgY2hpbGQpOworCXJjID0gc2Vjb25kYXJ5X29wcy0+cHRyYWNlKHBhcmVudCwgY2hpbGQsIG1vZGUpOwogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCisJaWYgKG1vZGUgPT0gUFRSQUNFX01PREVfUkVBRCkgeworCQlzdHJ1Y3QgdGFza19zZWN1cml0eV9zdHJ1Y3QgKnRzZWMgPSBwYXJlbnQtPnNlY3VyaXR5OworCQlzdHJ1Y3QgdGFza19zZWN1cml0eV9zdHJ1Y3QgKmNzZWMgPSBjaGlsZC0+c2VjdXJpdHk7CisJCXJldHVybiBhdmNfaGFzX3Blcm0odHNlYy0+c2lkLCBjc2VjLT5zaWQsCisJCQkJICAgIFNFQ0NMQVNTX0ZJTEUsIEZJTEVfX1JFQUQsIE5VTEwpOworCX0KKwogCXJldHVybiB0YXNrX2hhc19wZXJtKHBhcmVudCwgY2hpbGQsIFBST0NFU1NfX1BUUkFDRSk7CiB9CiAKQEAgLTI0OTUsNyArMjU1Niw3IEBACiAJfQogCiAJaWYgKHZhbHVlICYmIGxlbikgewotCQlyYyA9IHNlY3VyaXR5X3NpZF90b19jb250ZXh0KG5ld3NpZCwgJmNvbnRleHQsICZjbGVuKTsKKwkJcmMgPSBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9mb3JjZShuZXdzaWQsICZjb250ZXh0LCAmY2xlbik7CiAJCWlmIChyYykgewogCQkJa2ZyZWUobmFtZXApOwogCQkJcmV0dXJuIHJjOwpAQCAtMjY2OSw2ICsyNzMwLDExIEBACiAJCXJldHVybiByYzsKIAogCXJjID0gc2VjdXJpdHlfY29udGV4dF90b19zaWQodmFsdWUsIHNpemUsICZuZXdzaWQpOworCWlmIChyYyA9PSAtRUlOVkFMKSB7CisJCWlmICghY2FwYWJsZShDQVBfTUFDX0FETUlOKSkKKwkJCXJldHVybiByYzsKKwkJcmMgPSBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9mb3JjZSh2YWx1ZSwgc2l6ZSwgJm5ld3NpZCk7CisJfQogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCkBAIC0yNjkwLDcgKzI3NTYsNyBAQAogfQogCiBzdGF0aWMgdm9pZCBzZWxpbnV4X2lub2RlX3Bvc3Rfc2V0eGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwKKwkJCQkJY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLAogCQkJCQlpbnQgZmxhZ3MpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKQEAgLTI3MDMsMTAgKzI3NjksMTEgQEAKIAkJcmV0dXJuOwogCX0KIAotCXJjID0gc2VjdXJpdHlfY29udGV4dF90b19zaWQodmFsdWUsIHNpemUsICZuZXdzaWQpOworCXJjID0gc2VjdXJpdHlfY29udGV4dF90b19zaWRfZm9yY2UodmFsdWUsIHNpemUsICZuZXdzaWQpOwogCWlmIChyYykgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogIHVuYWJsZSB0byBvYnRhaW4gU0lEIGZvciBjb250ZXh0ICIKLQkJICAgICAgICIlcywgcmM9JWRcbiIsIF9fZnVuY19fLCAoY2hhciAqKXZhbHVlLCAtcmMpOworCQlwcmludGsoS0VSTl9FUlIgIlNFTGludXg6ICB1bmFibGUgdG8gbWFwIGNvbnRleHQgdG8gU0lEIgorCQkgICAgICAgImZvciAoJXMsICVsdSksIHJjPSVkXG4iLAorCQkgICAgICAgaW5vZGUtPmlfc2ItPnNfaWQsIGlub2RlLT5pX2lubywgLXJjKTsKIAkJcmV0dXJuOwogCX0KIApAQCAtMjczNSw5ICsyODAyLDcgQEAKIH0KIAogLyoKLSAqIENvcHkgdGhlIGluLWNvcmUgaW5vZGUgc2VjdXJpdHkgY29udGV4dCB2YWx1ZSB0byB0aGUgdXNlci4gIElmIHRoZQotICogZ2V0eGF0dHIoKSBwcmlvciB0byB0aGlzIHN1Y2NlZWRlZCwgY2hlY2sgdG8gc2VlIGlmIHdlIG5lZWQgdG8KLSAqIGNhbm9uaWNhbGl6ZSB0aGUgdmFsdWUgdG8gYmUgZmluYWxseSByZXR1cm5lZCB0byB0aGUgdXNlci4KKyAqIENvcHkgdGhlIGlub2RlIHNlY3VyaXR5IGNvbnRleHQgdmFsdWUgdG8gdGhlIHVzZXIuCiAgKgogICogUGVybWlzc2lvbiBjaGVjayBpcyBoYW5kbGVkIGJ5IHNlbGludXhfaW5vZGVfZ2V0eGF0dHIgaG9vay4KICAqLwpAQCAtMjc0NiwxMiArMjgxMSwzMyBAQAogCXUzMiBzaXplOwogCWludCBlcnJvcjsKIAljaGFyICpjb250ZXh0ID0gTlVMTDsKKwlzdHJ1Y3QgdGFza19zZWN1cml0eV9zdHJ1Y3QgKnRzZWMgPSBjdXJyZW50LT5zZWN1cml0eTsKIAlzdHJ1Y3QgaW5vZGVfc2VjdXJpdHlfc3RydWN0ICppc2VjID0gaW5vZGUtPmlfc2VjdXJpdHk7CiAKIAlpZiAoc3RyY21wKG5hbWUsIFhBVFRSX1NFTElOVVhfU1VGRklYKSkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCi0JZXJyb3IgPSBzZWN1cml0eV9zaWRfdG9fY29udGV4dChpc2VjLT5zaWQsICZjb250ZXh0LCAmc2l6ZSk7CisJLyoKKwkgKiBJZiB0aGUgY2FsbGVyIGhhcyBDQVBfTUFDX0FETUlOLCB0aGVuIGdldCB0aGUgcmF3IGNvbnRleHQKKwkgKiB2YWx1ZSBldmVuIGlmIGl0IGlzIG5vdCBkZWZpbmVkIGJ5IGN1cnJlbnQgcG9saWN5OyBvdGhlcndpc2UsCisJICogdXNlIHRoZSBpbi1jb3JlIHZhbHVlIHVuZGVyIGN1cnJlbnQgcG9saWN5LgorCSAqIFVzZSB0aGUgbm9uLWF1ZGl0aW5nIGZvcm1zIG9mIHRoZSBwZXJtaXNzaW9uIGNoZWNrcyBzaW5jZQorCSAqIGdldHhhdHRyIG1heSBiZSBjYWxsZWQgYnkgdW5wcml2aWxlZ2VkIHByb2Nlc3NlcyBjb21tb25seQorCSAqIGFuZCBsYWNrIG9mIHBlcm1pc3Npb24ganVzdCBtZWFucyB0aGF0IHdlIGZhbGwgYmFjayB0byB0aGUKKwkgKiBpbi1jb3JlIGNvbnRleHQgdmFsdWUsIG5vdCBhIGRlbmlhbC4KKwkgKi8KKwllcnJvciA9IHNlY29uZGFyeV9vcHMtPmNhcGFibGUoY3VycmVudCwgQ0FQX01BQ19BRE1JTik7CisJaWYgKCFlcnJvcikKKwkJZXJyb3IgPSBhdmNfaGFzX3Blcm1fbm9hdWRpdCh0c2VjLT5zaWQsIHRzZWMtPnNpZCwKKwkJCQkJICAgICBTRUNDTEFTU19DQVBBQklMSVRZMiwKKwkJCQkJICAgICBDQVBBQklMSVRZMl9fTUFDX0FETUlOLAorCQkJCQkgICAgIDAsCisJCQkJCSAgICAgTlVMTCk7CisJaWYgKCFlcnJvcikKKwkJZXJyb3IgPSBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9mb3JjZShpc2VjLT5zaWQsICZjb250ZXh0LAorCQkJCQkJICAgICAgJnNpemUpOworCWVsc2UKKwkJZXJyb3IgPSBzZWN1cml0eV9zaWRfdG9fY29udGV4dChpc2VjLT5zaWQsICZjb250ZXh0LCAmc2l6ZSk7CiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAJZXJyb3IgPSBzaXplOwpAQCAtMjg2NSw0NiArMjk1MSwxNiBAQAogc3RhdGljIGludCBzZWxpbnV4X2ZpbGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIGFyZykKIHsKLQlpbnQgZXJyb3IgPSAwOworCXUzMiBhdiA9IDA7CiAKLQlzd2l0Y2ggKGNtZCkgewotCWNhc2UgRklPTlJFQUQ6Ci0JLyogZmFsbCB0aHJvdWdoICovCi0JY2FzZSBGSUJNQVA6Ci0JLyogZmFsbCB0aHJvdWdoICovCi0JY2FzZSBGSUdFVEJTWjoKLQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIEVYVDJfSU9DX0dFVEZMQUdTOgotCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRVhUMl9JT0NfR0VUVkVSU0lPTjoKLQkJZXJyb3IgPSBmaWxlX2hhc19wZXJtKGN1cnJlbnQsIGZpbGUsIEZJTEVfX0dFVEFUVFIpOwotCQlicmVhazsKKwlpZiAoX0lPQ19ESVIoY21kKSAmIF9JT0NfV1JJVEUpCisJCWF2IHw9IEZJTEVfX1dSSVRFOworCWlmIChfSU9DX0RJUihjbWQpICYgX0lPQ19SRUFEKQorCQlhdiB8PSBGSUxFX19SRUFEOworCWlmICghYXYpCisJCWF2ID0gRklMRV9fSU9DVEw7CiAKLQljYXNlIEVYVDJfSU9DX1NFVEZMQUdTOgotCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRVhUMl9JT0NfU0VUVkVSU0lPTjoKLQkJZXJyb3IgPSBmaWxlX2hhc19wZXJtKGN1cnJlbnQsIGZpbGUsIEZJTEVfX1NFVEFUVFIpOwotCQlicmVhazsKLQotCS8qIHN5c19pb2N0bCgpIGNoZWNrcyAqLwotCWNhc2UgRklPTkJJTzoKLQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIEZJT0FTWU5DOgotCQllcnJvciA9IGZpbGVfaGFzX3Blcm0oY3VycmVudCwgZmlsZSwgMCk7Ci0JCWJyZWFrOwotCi0JY2FzZSBLRFNLQkVOVDoKLQljYXNlIEtEU0tCU0VOVDoKLQkJZXJyb3IgPSB0YXNrX2hhc19jYXBhYmlsaXR5KGN1cnJlbnQsIENBUF9TWVNfVFRZX0NPTkZJRyk7Ci0JCWJyZWFrOwotCi0JLyogZGVmYXVsdCBjYXNlIGFzc3VtZXMgdGhhdCB0aGUgY29tbWFuZCB3aWxsIGdvCi0JICogdG8gdGhlIGZpbGUncyBpb2N0bCgpIGZ1bmN0aW9uLgotCSAqLwotCWRlZmF1bHQ6Ci0JCWVycm9yID0gZmlsZV9oYXNfcGVybShjdXJyZW50LCBmaWxlLCBGSUxFX19JT0NUTCk7Ci0JfQotCXJldHVybiBlcnJvcjsKKwlyZXR1cm4gZmlsZV9oYXNfcGVybShjdXJyZW50LCBmaWxlLCBhdik7CiB9CiAKIHN0YXRpYyBpbnQgZmlsZV9tYXBfcHJvdF9jaGVjayhzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBwcm90LCBpbnQgc2hhcmVkKQpAQCAtMzY2Myw3ICszNzE5LDcgQEAKIAkJc3RydWN0IHNvY2thZGRyX2luNiAqYWRkcjYgPSBOVUxMOwogCQl1bnNpZ25lZCBzaG9ydCBzbnVtOwogCQlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zazsKLQkJdTMyIHNpZCwgbm9kZV9wZXJtLCBhZGRybGVuOworCQl1MzIgc2lkLCBub2RlX3Blcm07CiAKIAkJdHNlYyA9IGN1cnJlbnQtPnNlY3VyaXR5OwogCQlpc2VjID0gU09DS19JTk9ERShzb2NrKS0+aV9zZWN1cml0eTsKQEAgLTM2NzEsMTIgKzM3MjcsMTAgQEAKIAkJaWYgKGZhbWlseSA9PSBQRl9JTkVUKSB7CiAJCQlhZGRyNCA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilhZGRyZXNzOwogCQkJc251bSA9IG50b2hzKGFkZHI0LT5zaW5fcG9ydCk7Ci0JCQlhZGRybGVuID0gc2l6ZW9mKGFkZHI0LT5zaW5fYWRkci5zX2FkZHIpOwogCQkJYWRkcnAgPSAoY2hhciAqKSZhZGRyNC0+c2luX2FkZHIuc19hZGRyOwogCQl9IGVsc2UgewogCQkJYWRkcjYgPSAoc3RydWN0IHNvY2thZGRyX2luNiAqKWFkZHJlc3M7CiAJCQlzbnVtID0gbnRvaHMoYWRkcjYtPnNpbjZfcG9ydCk7Ci0JCQlhZGRybGVuID0gc2l6ZW9mKGFkZHI2LT5zaW42X2FkZHIuczZfYWRkcik7CiAJCQlhZGRycCA9IChjaGFyICopJmFkZHI2LT5zaW42X2FkZHIuczZfYWRkcjsKIAkJfQogCkBAIC01MDQ3LDI0ICs1MTAxLDYgQEAKIAkqc2VjaWQgPSBpc2VjLT5zaWQ7CiB9CiAKLS8qIG1vZHVsZSBzdGFja2luZyBvcGVyYXRpb25zICovCi1zdGF0aWMgaW50IHNlbGludXhfcmVnaXN0ZXJfc2VjdXJpdHkoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcykKLXsKLQlpZiAoc2Vjb25kYXJ5X29wcyAhPSBvcmlnaW5hbF9vcHMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICIlczogIFRoZXJlIGlzIGFscmVhZHkgYSBzZWNvbmRhcnkgc2VjdXJpdHkgIgotCQkgICAgICAgIm1vZHVsZSByZWdpc3RlcmVkLlxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlzZWNvbmRhcnlfb3BzID0gb3BzOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiJXM6ICBSZWdpc3RlcmluZyBzZWNvbmRhcnkgbW9kdWxlICVzXG4iLAotCSAgICAgICBfX2Z1bmNfXywKLQkgICAgICAgbmFtZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQgc2VsaW51eF9kX2luc3RhbnRpYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSkKIHsKIAlpZiAoaW5vZGUpCkBAIC01MTUzLDYgKzUxODksMTIgQEAKIAkJCXNpemUtLTsKIAkJfQogCQllcnJvciA9IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkKHZhbHVlLCBzaXplLCAmc2lkKTsKKwkJaWYgKGVycm9yID09IC1FSU5WQUwgJiYgIXN0cmNtcChuYW1lLCAiZnNjcmVhdGUiKSkgeworCQkJaWYgKCFjYXBhYmxlKENBUF9NQUNfQURNSU4pKQorCQkJCXJldHVybiBlcnJvcjsKKwkJCWVycm9yID0gc2VjdXJpdHlfY29udGV4dF90b19zaWRfZm9yY2UodmFsdWUsIHNpemUsCisJCQkJCQkJICAgICAgJnNpZCk7CisJCX0KIAkJaWYgKGVycm9yKQogCQkJcmV0dXJuIGVycm9yOwogCX0KQEAgLTUxODYsMTIgKzUyMjgsMTIgQEAKIAkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqZywgKnQ7CiAJCQlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHAtPm1tOwogCQkJcmVhZF9sb2NrKCZ0YXNrbGlzdF9sb2NrKTsKLQkJCWRvX2VhY2hfdGhyZWFkKGcsIHQpCisJCQlkb19lYWNoX3RocmVhZChnLCB0KSB7CiAJCQkJaWYgKHQtPm1tID09IG1tICYmIHQgIT0gcCkgewogCQkJCQlyZWFkX3VubG9jaygmdGFza2xpc3RfbG9jayk7CiAJCQkJCXJldHVybiAtRVBFUk07CiAJCQkJfQotCQkJd2hpbGVfZWFjaF90aHJlYWQoZywgdCk7CisJCQl9IHdoaWxlX2VhY2hfdGhyZWFkKGcsIHQpOwogCQkJcmVhZF91bmxvY2soJnRhc2tsaXN0X2xvY2spOwogCQl9CiAKQEAgLTUzNDMsMTAgKzUzODUsMTAgQEAKIAkuc2JfZnJlZV9zZWN1cml0eSA9CQlzZWxpbnV4X3NiX2ZyZWVfc2VjdXJpdHksCiAJLnNiX2NvcHlfZGF0YSA9CQkJc2VsaW51eF9zYl9jb3B5X2RhdGEsCiAJLnNiX2tlcm5fbW91bnQgPQkJc2VsaW51eF9zYl9rZXJuX21vdW50LAorCS5zYl9zaG93X29wdGlvbnMgPQkJc2VsaW51eF9zYl9zaG93X29wdGlvbnMsCiAJLnNiX3N0YXRmcyA9CQkJc2VsaW51eF9zYl9zdGF0ZnMsCiAJLnNiX21vdW50ID0JCQlzZWxpbnV4X21vdW50LAogCS5zYl91bW91bnQgPQkJCXNlbGludXhfdW1vdW50LAotCS5zYl9nZXRfbW50X29wdHMgPQkJc2VsaW51eF9nZXRfbW50X29wdHMsCiAJLnNiX3NldF9tbnRfb3B0cyA9CQlzZWxpbnV4X3NldF9tbnRfb3B0cywKIAkuc2JfY2xvbmVfbW50X29wdHMgPQkJc2VsaW51eF9zYl9jbG9uZV9tbnRfb3B0cywKIAkuc2JfcGFyc2Vfb3B0c19zdHIgPSAJCXNlbGludXhfcGFyc2Vfb3B0c19zdHIsCkBAIC01Mzc4LDcgKzU0MjAsNyBAQAogCS5pbm9kZV9saXN0c2VjdXJpdHkgPQkJc2VsaW51eF9pbm9kZV9saXN0c2VjdXJpdHksCiAJLmlub2RlX25lZWRfa2lsbHByaXYgPQkJc2VsaW51eF9pbm9kZV9uZWVkX2tpbGxwcml2LAogCS5pbm9kZV9raWxscHJpdiA9CQlzZWxpbnV4X2lub2RlX2tpbGxwcml2LAotCS5pbm9kZV9nZXRzZWNpZCA9ICAgICAgICAgICAgICAgc2VsaW51eF9pbm9kZV9nZXRzZWNpZCwKKwkuaW5vZGVfZ2V0c2VjaWQgPQkJc2VsaW51eF9pbm9kZV9nZXRzZWNpZCwKIAogCS5maWxlX3Blcm1pc3Npb24gPQkJc2VsaW51eF9maWxlX3Blcm1pc3Npb24sCiAJLmZpbGVfYWxsb2Nfc2VjdXJpdHkgPQkJc2VsaW51eF9maWxlX2FsbG9jX3NlY3VyaXR5LApAQCAtNTQxOSw3ICs1NDYxLDcgQEAKIAkudGFza190b19pbm9kZSA9CQlzZWxpbnV4X3Rhc2tfdG9faW5vZGUsCiAKIAkuaXBjX3Blcm1pc3Npb24gPQkJc2VsaW51eF9pcGNfcGVybWlzc2lvbiwKLQkuaXBjX2dldHNlY2lkID0gICAgICAgICAgICAgICAgIHNlbGludXhfaXBjX2dldHNlY2lkLAorCS5pcGNfZ2V0c2VjaWQgPQkJCXNlbGludXhfaXBjX2dldHNlY2lkLAogCiAJLm1zZ19tc2dfYWxsb2Nfc2VjdXJpdHkgPQlzZWxpbnV4X21zZ19tc2dfYWxsb2Nfc2VjdXJpdHksCiAJLm1zZ19tc2dfZnJlZV9zZWN1cml0eSA9CXNlbGludXhfbXNnX21zZ19mcmVlX3NlY3VyaXR5LApAQCAtNTQ0Myw4ICs1NDg1LDYgQEAKIAkuc2VtX3NlbWN0bCA9CQkJc2VsaW51eF9zZW1fc2VtY3RsLAogCS5zZW1fc2Vtb3AgPQkJCXNlbGludXhfc2VtX3NlbW9wLAogCi0JLnJlZ2lzdGVyX3NlY3VyaXR5ID0JCXNlbGludXhfcmVnaXN0ZXJfc2VjdXJpdHksCi0KIAkuZF9pbnN0YW50aWF0ZSA9CQlzZWxpbnV4X2RfaW5zdGFudGlhdGUsCiAKIAkuZ2V0cHJvY2F0dHIgPQkJCXNlbGludXhfZ2V0cHJvY2F0dHIsCkBAIC01NTM4LDcgKzU1NzgsNyBAQAogCQkJCQkgICAgMCwgU0xBQl9QQU5JQywgTlVMTCk7CiAJYXZjX2luaXQoKTsKIAotCW9yaWdpbmFsX29wcyA9IHNlY29uZGFyeV9vcHMgPSBzZWN1cml0eV9vcHM7CisJc2Vjb25kYXJ5X29wcyA9IHNlY3VyaXR5X29wczsKIAlpZiAoIXNlY29uZGFyeV9vcHMpCiAJCXBhbmljKCJTRUxpbnV4OiBObyBpbml0aWFsIHNlY3VyaXR5IG9wZXJhdGlvbnNcbiIpOwogCWlmIChyZWdpc3Rlcl9zZWN1cml0eSgmc2VsaW51eF9vcHMpKQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL2F1ZGl0LmggYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXVkaXQuaAppbmRleCA2YzhiOWVmLi4xYmRmOTczIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXVkaXQuaAorKysgYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXVkaXQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBTRUxpbnV4IHN1cHBvcnQgZm9yIHRoZSBBdWRpdCBMU00gaG9va3MKICAqCi0gKiBNb3N0IG9mIGJlbG93IGhlYWRlciB3YXMgbW92ZWQgZnJvbSBpbmNsdWRlL2xpbnV4L3NlbGludXguaCB3aGljaCAKKyAqIE1vc3Qgb2YgYmVsb3cgaGVhZGVyIHdhcyBtb3ZlZCBmcm9tIGluY2x1ZGUvbGludXgvc2VsaW51eC5oIHdoaWNoCiAgKiBpcyByZWxlYXNlZCB1bmRlciBiZWxvdyBjb3B5cmlnaHRzOgogICoKICAqIEF1dGhvcjogSmFtZXMgTW9ycmlzIDxqbW9ycmlzQHJlZGhhdC5jb20+CkBAIC01Miw3ICs1Miw3IEBACiAgKgktZXJybm8gb24gZmFpbHVyZS4KICAqLwogaW50IHNlbGludXhfYXVkaXRfcnVsZV9tYXRjaCh1MzIgc2lkLCB1MzIgZmllbGQsIHUzMiBvcCwgdm9pZCAqcnVsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGF1ZGl0X2NvbnRleHQgKmFjdHgpOworCQkJICAgICBzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYWN0eCk7CiAKIC8qKgogICoJc2VsaW51eF9hdWRpdF9ydWxlX2tub3duIC0gY2hlY2sgdG8gc2VlIGlmIHJ1bGUgY29udGFpbnMgc2VsaW51eCBmaWVsZHMuCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXZjLmggYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXZjLmgKaW5kZXggOGUyM2Q3YS4uN2I5NzY5ZiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL2F2Yy5oCisrKyBiL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9hdmMuaApAQCAtNzUsMTMgKzc1LDEyIEBACiAKIC8qIEluaXRpYWxpemUgYW4gQVZDIGF1ZGl0IGRhdGEgc3RydWN0dXJlLiAqLwogI2RlZmluZSBBVkNfQVVESVRfREFUQV9JTklUKF9kLF90KSBcCi0gICAgICAgIHsgbWVtc2V0KChfZCksIDAsIHNpemVvZihzdHJ1Y3QgYXZjX2F1ZGl0X2RhdGEpKTsgKF9kKS0+dHlwZSA9IEFWQ19BVURJVF9EQVRBXyMjX3Q7IH0KKwl7IG1lbXNldCgoX2QpLCAwLCBzaXplb2Yoc3RydWN0IGF2Y19hdWRpdF9kYXRhKSk7IChfZCktPnR5cGUgPSBBVkNfQVVESVRfREFUQV8jI190OyB9CiAKIC8qCiAgKiBBVkMgc3RhdGlzdGljcwogICovCi1zdHJ1Y3QgYXZjX2NhY2hlX3N0YXRzCi17CitzdHJ1Y3QgYXZjX2NhY2hlX3N0YXRzIHsKIAl1bnNpZ25lZCBpbnQgbG9va3VwczsKIAl1bnNpZ25lZCBpbnQgaGl0czsKIAl1bnNpZ25lZCBpbnQgbWlzc2VzOwpAQCAtOTcsOCArOTYsOCBAQAogdm9pZCBfX2luaXQgYXZjX2luaXQodm9pZCk7CiAKIHZvaWQgYXZjX2F1ZGl0KHUzMiBzc2lkLCB1MzIgdHNpZCwKLSAgICAgICAgICAgICAgIHUxNiB0Y2xhc3MsIHUzMiByZXF1ZXN0ZWQsCi0gICAgICAgICAgICAgICBzdHJ1Y3QgYXZfZGVjaXNpb24gKmF2ZCwgaW50IHJlc3VsdCwgc3RydWN0IGF2Y19hdWRpdF9kYXRhICphdWRpdGRhdGEpOworCSAgICAgICB1MTYgdGNsYXNzLCB1MzIgcmVxdWVzdGVkLAorCSAgICAgICBzdHJ1Y3QgYXZfZGVjaXNpb24gKmF2ZCwgaW50IHJlc3VsdCwgc3RydWN0IGF2Y19hdWRpdF9kYXRhICphdWRpdGRhdGEpOwogCiAjZGVmaW5lIEFWQ19TVFJJQ1QgMSAvKiBJZ25vcmUgcGVybWlzc2l2ZSBtb2RlLiAqLwogaW50IGF2Y19oYXNfcGVybV9ub2F1ZGl0KHUzMiBzc2lkLCB1MzIgdHNpZCwKQEAgLTEwNyw4ICsxMDYsOCBAQAogCQkJIHN0cnVjdCBhdl9kZWNpc2lvbiAqYXZkKTsKIAogaW50IGF2Y19oYXNfcGVybSh1MzIgc3NpZCwgdTMyIHRzaWQsCi0gICAgICAgICAgICAgICAgIHUxNiB0Y2xhc3MsIHUzMiByZXF1ZXN0ZWQsCi0gICAgICAgICAgICAgICAgIHN0cnVjdCBhdmNfYXVkaXRfZGF0YSAqYXVkaXRkYXRhKTsKKwkJIHUxNiB0Y2xhc3MsIHUzMiByZXF1ZXN0ZWQsCisJCSBzdHJ1Y3QgYXZjX2F1ZGl0X2RhdGEgKmF1ZGl0ZGF0YSk7CiAKIHUzMiBhdmNfcG9saWN5X3NlcW5vKHZvaWQpOwogCkBAIC0xMjIsNyArMTIxLDcgQEAKICNkZWZpbmUgQVZDX0NBTExCQUNLX0FVRElUREVOWV9ESVNBQkxFCTEyOAogCiBpbnQgYXZjX2FkZF9jYWxsYmFjayhpbnQgKCpjYWxsYmFjaykodTMyIGV2ZW50LCB1MzIgc3NpZCwgdTMyIHRzaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHRjbGFzcywgdTMyIHBlcm1zLAorCQkJCSAgICAgdTE2IHRjbGFzcywgdTMyIHBlcm1zLAogCQkJCSAgICAgdTMyICpvdXRfcmV0YWluZWQpLAogCQkgICAgIHUzMiBldmVudHMsIHUzMiBzc2lkLCB1MzIgdHNpZCwKIAkJICAgICB1MTYgdGNsYXNzLCB1MzIgcGVybXMpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL29ianNlYy5oIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL29ianNlYy5oCmluZGV4IDAzMmMyMzUuLjkxMDcwYWIgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9vYmpzZWMuaAorKysgYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvb2Jqc2VjLmgKQEAgLTQ0LDcgKzQ0LDYgQEAKIAl1MTYgc2NsYXNzOwkJLyogc2VjdXJpdHkgY2xhc3Mgb2YgdGhpcyBvYmplY3QgKi8KIAl1bnNpZ25lZCBjaGFyIGluaXRpYWxpemVkOwkvKiBpbml0aWFsaXphdGlvbiBmbGFnICovCiAJc3RydWN0IG11dGV4IGxvY2s7Ci0JdW5zaWduZWQgY2hhciBpbmhlcml0OwkvKiBpbmhlcml0IFNJRCBmcm9tIHBhcmVudCBlbnRyeSAqLwogfTsKIAogc3RydWN0IGZpbGVfc2VjdXJpdHlfc3RydWN0IHsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9zZWN1cml0eS5oIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL3NlY3VyaXR5LmgKaW5kZXggYWQzMGFjNC4uN2M1NDMwMCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL3NlY3VyaXR5LmgKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL3NlY3VyaXR5LmgKQEAgLTkzLDEyICs5MywxNyBAQAogaW50IHNlY3VyaXR5X3NpZF90b19jb250ZXh0KHUzMiBzaWQsIGNoYXIgKipzY29udGV4dCwKIAl1MzIgKnNjb250ZXh0X2xlbik7CiAKK2ludCBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9mb3JjZSh1MzIgc2lkLCBjaGFyICoqc2NvbnRleHQsIHUzMiAqc2NvbnRleHRfbGVuKTsKKwogaW50IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkKGNvbnN0IGNoYXIgKnNjb250ZXh0LCB1MzIgc2NvbnRleHRfbGVuLAogCXUzMiAqb3V0X3NpZCk7CiAKIGludCBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9kZWZhdWx0KGNvbnN0IGNoYXIgKnNjb250ZXh0LCB1MzIgc2NvbnRleHRfbGVuLAogCQkJCSAgICB1MzIgKm91dF9zaWQsIHUzMiBkZWZfc2lkLCBnZnBfdCBnZnBfZmxhZ3MpOwogCitpbnQgc2VjdXJpdHlfY29udGV4dF90b19zaWRfZm9yY2UoY29uc3QgY2hhciAqc2NvbnRleHQsIHUzMiBzY29udGV4dF9sZW4sCisJCQkJICB1MzIgKnNpZCk7CisKIGludCBzZWN1cml0eV9nZXRfdXNlcl9zaWRzKHUzMiBjYWxsc2lkLCBjaGFyICp1c2VybmFtZSwKIAkJCSAgIHUzMiAqKnNpZHMsIHUzMiAqbmVsKTsKIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9uZXRub2RlLmMgYi9zZWN1cml0eS9zZWxpbnV4L25ldG5vZGUuYwppbmRleCBiNmNjZDA5My4uNzEwMDA3MiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9uZXRub2RlLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9uZXRub2RlLmMKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9pcHY2Lmg+CiAjaW5jbHVkZSA8bmV0L2lwLmg+CiAjaW5jbHVkZSA8bmV0L2lwdjYuaD4KLSNpbmNsdWRlIDxhc20vYnVnLmg+CiAKICNpbmNsdWRlICJuZXRub2RlLmgiCiAjaW5jbHVkZSAib2Jqc2VjLmgiCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L25ldHBvcnQuYyBiL3NlY3VyaXR5L3NlbGludXgvbmV0cG9ydC5jCmluZGV4IDkwYjRjZmYuLmZlN2ZiYTYgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvbmV0cG9ydC5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvbmV0cG9ydC5jCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSA8bGludXgvaXB2Ni5oPgogI2luY2x1ZGUgPG5ldC9pcC5oPgogI2luY2x1ZGUgPG5ldC9pcHY2Lmg+Ci0jaW5jbHVkZSA8YXNtL2J1Zy5oPgogCiAjaW5jbHVkZSAibmV0cG9ydC5oIgogI2luY2x1ZGUgIm9ianNlYy5oIgpAQCAtMjcyLDcgKzI3MSw3IEBACiAJfQogCiAJcmV0ID0gYXZjX2FkZF9jYWxsYmFjayhzZWxfbmV0cG9ydF9hdmNfY2FsbGJhY2ssIEFWQ19DQUxMQkFDS19SRVNFVCwKLQkgICAgICAgICAgICAgICAgICAgICAgIFNFQ1NJRF9OVUxMLCBTRUNTSURfTlVMTCwgU0VDQ0xBU1NfTlVMTCwgMCk7CisJCQkgICAgICAgU0VDU0lEX05VTEwsIFNFQ1NJRF9OVUxMLCBTRUNDTEFTU19OVUxMLCAwKTsKIAlpZiAocmV0ICE9IDApCiAJCXBhbmljKCJhdmNfYWRkX2NhbGxiYWNrKCkgZmFpbGVkLCBlcnJvciAlZFxuIiwgcmV0KTsKIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zZWxpbnV4ZnMuYyBiL3NlY3VyaXR5L3NlbGludXgvc2VsaW51eGZzLmMKaW5kZXggYWMxY2NjMS4uNjljOWRjYyAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zZWxpbnV4ZnMuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L3NlbGludXhmcy5jCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KICNpbmNsdWRlIDxsaW51eC9hdWRpdC5oPgotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogCiAvKiBzZWxpbnV4ZnMgcHNldWRvIGZpbGVzeXN0ZW0gZm9yIGV4cG9ydGluZyB0aGUgc2VjdXJpdHkgcG9saWN5IEFQSS4KICAgIEJhc2VkIG9uIHRoZSBwcm9jIGNvZGUgYW5kIHRoZSBmcy9uZnNkL25mc2N0bC5jIGNvZGUuICovCkBAIC01NywxNCArNTcsMTggQEAKIAogc3RhdGljIGludCBfX2luaXQgY2hlY2tyZXFwcm90X3NldHVwKGNoYXIgKnN0cikKIHsKLQlzZWxpbnV4X2NoZWNrcmVxcHJvdCA9IHNpbXBsZV9zdHJ0b3VsKHN0ciwgTlVMTCwgMCkgPyAxIDogMDsKKwl1bnNpZ25lZCBsb25nIGNoZWNrcmVxcHJvdDsKKwlpZiAoIXN0cmljdF9zdHJ0b3VsKHN0ciwgMCwgJmNoZWNrcmVxcHJvdCkpCisJCXNlbGludXhfY2hlY2tyZXFwcm90ID0gY2hlY2tyZXFwcm90ID8gMSA6IDA7CiAJcmV0dXJuIDE7CiB9CiBfX3NldHVwKCJjaGVja3JlcXByb3Q9IiwgY2hlY2tyZXFwcm90X3NldHVwKTsKIAogc3RhdGljIGludCBfX2luaXQgc2VsaW51eF9jb21wYXRfbmV0X3NldHVwKGNoYXIgKnN0cikKIHsKLQlzZWxpbnV4X2NvbXBhdF9uZXQgPSBzaW1wbGVfc3RydG91bChzdHIsIE5VTEwsIDApID8gMSA6IDA7CisJdW5zaWduZWQgbG9uZyBjb21wYXRfbmV0OworCWlmICghc3RyaWN0X3N0cnRvdWwoc3RyLCAwLCAmY29tcGF0X25ldCkpCisJCXNlbGludXhfY29tcGF0X25ldCA9IGNvbXBhdF9uZXQgPyAxIDogMDsKIAlyZXR1cm4gMTsKIH0KIF9fc2V0dXAoInNlbGludXhfY29tcGF0X25ldD0iLCBzZWxpbnV4X2NvbXBhdF9uZXRfc2V0dXApOwpAQCAtMzUyLDExICszNTYsNiBAQAogCQlsZW5ndGggPSBjb3VudDsKIAogb3V0MToKLQotCXByaW50ayhLRVJOX0lORk8gIlNFTGludXg6IHBvbGljeSBsb2FkZWQgd2l0aCBoYW5kbGVfdW5rbm93bj0lc1xuIiwKLQkgICAgICAgKHNlY3VyaXR5X2dldF9yZWplY3RfdW5rbm93bigpID8gInJlamVjdCIgOgotCQkoc2VjdXJpdHlfZ2V0X2FsbG93X3Vua25vd24oKSA/ICJhbGxvdyIgOiAiZGVueSIpKSk7Ci0KIAlhdWRpdF9sb2coY3VycmVudC0+YXVkaXRfY29udGV4dCwgR0ZQX0tFUk5FTCwgQVVESVRfTUFDX1BPTElDWV9MT0FELAogCQkicG9saWN5IGxvYWRlZCBhdWlkPSV1IHNlcz0ldSIsCiAJCWF1ZGl0X2dldF9sb2dpbnVpZChjdXJyZW50KSwKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3MvYXZ0YWIuYyBiL3NlY3VyaXR5L3NlbGludXgvc3MvYXZ0YWIuYwppbmRleCA5ZTY2MjYzLi5hMWJlOTdmIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL2F2dGFiLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9hdnRhYi5jCkBAIC0zMTEsNyArMzExLDcgQEAKIAl9CiAKIAlwcmludGsoS0VSTl9ERUJVRyAiU0VMaW51eDogJXM6ICAlZCBlbnRyaWVzIGFuZCAlZC8lZCBidWNrZXRzIHVzZWQsICIKLQkgICAgICAgImxvbmdlc3QgY2hhaW4gbGVuZ3RoICVkIHN1bSBvZiBjaGFpbiBsZW5ndGheMiAlTHVcbiIsCisJICAgICAgICJsb25nZXN0IGNoYWluIGxlbmd0aCAlZCBzdW0gb2YgY2hhaW4gbGVuZ3RoXjIgJWxsdVxuIiwKIAkgICAgICAgdGFnLCBoLT5uZWwsIHNsb3RzX3VzZWQsIGgtPm5zbG90LCBtYXhfY2hhaW5fbGVuLAogCSAgICAgICBjaGFpbjJfbGVuX3N1bSk7CiB9CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NzL2NvbnRleHQuaCBiL3NlY3VyaXR5L3NlbGludXgvc3MvY29udGV4dC5oCmluZGV4IGI5YTZmN2YuLjY1OGMyYmQgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc3MvY29udGV4dC5oCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc3MvY29udGV4dC5oCkBAIC0yOCw2ICsyOCw4IEBACiAJdTMyIHJvbGU7CiAJdTMyIHR5cGU7CiAJc3RydWN0IG1sc19yYW5nZSByYW5nZTsKKwljaGFyICpzdHI7CS8qIHN0cmluZyByZXByZXNlbnRhdGlvbiBpZiBjb250ZXh0IGNhbm5vdCBiZSBtYXBwZWQuICovCisJdTMyIGxlbjsgICAgICAgIC8qIGxlbmd0aCBvZiBzdHJpbmcgaW4gYnl0ZXMgKi8KIH07CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBtbHNfY29udGV4dF9pbml0KHN0cnVjdCBjb250ZXh0ICpjKQpAQCAtMTA2LDIwICsxMDgsNDMgQEAKIAogc3RhdGljIGlubGluZSBpbnQgY29udGV4dF9jcHkoc3RydWN0IGNvbnRleHQgKmRzdCwgc3RydWN0IGNvbnRleHQgKnNyYykKIHsKKwlpbnQgcmM7CisKIAlkc3QtPnVzZXIgPSBzcmMtPnVzZXI7CiAJZHN0LT5yb2xlID0gc3JjLT5yb2xlOwogCWRzdC0+dHlwZSA9IHNyYy0+dHlwZTsKLQlyZXR1cm4gbWxzX2NvbnRleHRfY3B5KGRzdCwgc3JjKTsKKwlpZiAoc3JjLT5zdHIpIHsKKwkJZHN0LT5zdHIgPSBrc3RyZHVwKHNyYy0+c3RyLCBHRlBfQVRPTUlDKTsKKwkJaWYgKCFkc3QtPnN0cikKKwkJCXJldHVybiAtRU5PTUVNOworCQlkc3QtPmxlbiA9IHNyYy0+bGVuOworCX0gZWxzZSB7CisJCWRzdC0+c3RyID0gTlVMTDsKKwkJZHN0LT5sZW4gPSAwOworCX0KKwlyYyA9IG1sc19jb250ZXh0X2NweShkc3QsIHNyYyk7CisJaWYgKHJjKSB7CisJCWtmcmVlKGRzdC0+c3RyKTsKKwkJcmV0dXJuIHJjOworCX0KKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGNvbnRleHRfZGVzdHJveShzdHJ1Y3QgY29udGV4dCAqYykKIHsKIAljLT51c2VyID0gYy0+cm9sZSA9IGMtPnR5cGUgPSAwOworCWtmcmVlKGMtPnN0cik7CisJYy0+c3RyID0gTlVMTDsKKwljLT5sZW4gPSAwOwogCW1sc19jb250ZXh0X2Rlc3Ryb3koYyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IGNvbnRleHRfY21wKHN0cnVjdCBjb250ZXh0ICpjMSwgc3RydWN0IGNvbnRleHQgKmMyKQogeworCWlmIChjMS0+bGVuICYmIGMyLT5sZW4pCisJCXJldHVybiAoYzEtPmxlbiA9PSBjMi0+bGVuICYmICFzdHJjbXAoYzEtPnN0ciwgYzItPnN0cikpOworCWlmIChjMS0+bGVuIHx8IGMyLT5sZW4pCisJCXJldHVybiAwOwogCXJldHVybiAoKGMxLT51c2VyID09IGMyLT51c2VyKSAmJgogCQkoYzEtPnJvbGUgPT0gYzItPnJvbGUpICYmCiAJCShjMS0+dHlwZSA9PSBjMi0+dHlwZSkgJiYKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3MvbWxzLmMgYi9zZWN1cml0eS9zZWxpbnV4L3NzL21scy5jCmluZGV4IDhiMTcwNmIuLjc3ZDc0NWQgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc3MvbWxzLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9tbHMuYwpAQCAtMjM5LDcgKzIzOSw4IEBACiAgKiBQb2xpY3kgcmVhZC1sb2NrIG11c3QgYmUgaGVsZCBmb3Igc2lkdGFiIGxvb2t1cC4KICAqCiAgKi8KLWludCBtbHNfY29udGV4dF90b19zaWQoY2hhciBvbGRjLAoraW50IG1sc19jb250ZXh0X3RvX3NpZChzdHJ1Y3QgcG9saWN5ZGIgKnBvbCwKKwkJICAgICAgIGNoYXIgb2xkYywKIAkJICAgICAgIGNoYXIgKipzY29udGV4dCwKIAkJICAgICAgIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0LAogCQkgICAgICAgc3RydWN0IHNpZHRhYiAqcywKQEAgLTI4Niw3ICsyODcsNyBAQAogCQkqcCsrID0gMDsKIAogCWZvciAobCA9IDA7IGwgPCAyOyBsKyspIHsKLQkJbGV2ZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2xpY3lkYi5wX2xldmVscy50YWJsZSwgc2NvbnRleHRwKTsKKwkJbGV2ZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2wtPnBfbGV2ZWxzLnRhYmxlLCBzY29udGV4dHApOwogCQlpZiAoIWxldmRhdHVtKSB7CiAJCQlyYyA9IC1FSU5WQUw7CiAJCQlnb3RvIG91dDsKQEAgLTMxMSw3ICszMTIsNyBAQAogCQkJCQkqcm5ncHRyKysgPSAwOwogCQkJCX0KIAotCQkJCWNhdGRhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9saWN5ZGIucF9jYXRzLnRhYmxlLAorCQkJCWNhdGRhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9sLT5wX2NhdHMudGFibGUsCiAJCQkJCQkJICBzY29udGV4dHApOwogCQkJCWlmICghY2F0ZGF0dW0pIHsKIAkJCQkJcmMgPSAtRUlOVkFMOwpAQCAtMzI3LDcgKzMyOCw3IEBACiAJCQkJaWYgKHJuZ3B0cikgewogCQkJCQlpbnQgaTsKIAotCQkJCQlybmdkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbGljeWRiLnBfY2F0cy50YWJsZSwgcm5ncHRyKTsKKwkJCQkJcm5nZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2wtPnBfY2F0cy50YWJsZSwgcm5ncHRyKTsKIAkJCQkJaWYgKCFybmdkYXR1bSkgewogCQkJCQkJcmMgPSAtRUlOVkFMOwogCQkJCQkJZ290byBvdXQ7CkBAIC0zOTUsNyArMzk2LDcgQEAKIAlpZiAoIXRtcHN0cikgewogCQlyYyA9IC1FTk9NRU07CiAJfSBlbHNlIHsKLQkJcmMgPSBtbHNfY29udGV4dF90b19zaWQoJzonLCAmdG1wc3RyLCBjb250ZXh0LAorCQlyYyA9IG1sc19jb250ZXh0X3RvX3NpZCgmcG9saWN5ZGIsICc6JywgJnRtcHN0ciwgY29udGV4dCwKIAkJCQkJTlVMTCwgU0VDU0lEX05VTEwpOwogCQlrZnJlZShmcmVlc3RyKTsKIAl9CkBAIC00MzYsMTMgKzQzNywxMyBAQAogCQlzdHJ1Y3QgbWxzX2xldmVsICp1c2VyY29uX2NsciA9ICYodXNlcmNvbi0+cmFuZ2UubGV2ZWxbMV0pOwogCiAJCS8qIEhvbm9yIHRoZSB1c2VyJ3MgZGVmYXVsdCBsZXZlbCBpZiB3ZSBjYW4gKi8KLQkJaWYgKG1sc19sZXZlbF9iZXR3ZWVuKHVzZXJfZGVmLCBmcm9tY29uX3NlbiwgZnJvbWNvbl9jbHIpKSB7CisJCWlmIChtbHNfbGV2ZWxfYmV0d2Vlbih1c2VyX2RlZiwgZnJvbWNvbl9zZW4sIGZyb21jb25fY2xyKSkKIAkJCSp1c2VyY29uX3NlbiA9ICp1c2VyX2RlZjsKLQkJfSBlbHNlIGlmIChtbHNfbGV2ZWxfYmV0d2Vlbihmcm9tY29uX3NlbiwgdXNlcl9kZWYsIHVzZXJfY2xyKSkgeworCQllbHNlIGlmIChtbHNfbGV2ZWxfYmV0d2Vlbihmcm9tY29uX3NlbiwgdXNlcl9kZWYsIHVzZXJfY2xyKSkKIAkJCSp1c2VyY29uX3NlbiA9ICpmcm9tY29uX3NlbjsKLQkJfSBlbHNlIGlmIChtbHNfbGV2ZWxfYmV0d2Vlbihmcm9tY29uX2NsciwgdXNlcl9sb3csIHVzZXJfZGVmKSkgeworCQllbHNlIGlmIChtbHNfbGV2ZWxfYmV0d2Vlbihmcm9tY29uX2NsciwgdXNlcl9sb3csIHVzZXJfZGVmKSkKIAkJCSp1c2VyY29uX3NlbiA9ICp1c2VyX2xvdzsKLQkJfSBlbHNlCisJCWVsc2UKIAkJCXJldHVybiAtRUlOVkFMOwogCiAJCS8qIExvd2VyIHRoZSBjbGVhcmFuY2Ugb2YgYXZhaWxhYmxlIGNvbnRleHRzCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NzL21scy5oIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9tbHMuaAppbmRleCAwZmRmNjI1Li4xMjc2NzE1IDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL21scy5oCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc3MvbWxzLmgKQEAgLTMwLDcgKzMwLDggQEAKIGludCBtbHNfcmFuZ2VfaXN2YWxpZChzdHJ1Y3QgcG9saWN5ZGIgKnAsIHN0cnVjdCBtbHNfcmFuZ2UgKnIpOwogaW50IG1sc19sZXZlbF9pc3ZhbGlkKHN0cnVjdCBwb2xpY3lkYiAqcCwgc3RydWN0IG1sc19sZXZlbCAqbCk7CiAKLWludCBtbHNfY29udGV4dF90b19zaWQoY2hhciBvbGRjLAoraW50IG1sc19jb250ZXh0X3RvX3NpZChzdHJ1Y3QgcG9saWN5ZGIgKnAsCisJCSAgICAgICBjaGFyIG9sZGMsCiAJCSAgICAgICBjaGFyICoqc2NvbnRleHQsCiAJCSAgICAgICBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCwKIAkJICAgICAgIHN0cnVjdCBzaWR0YWIgKnMsCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NzL3BvbGljeWRiLmMgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3BvbGljeWRiLmMKaW5kZXggODRmOGNjNy4uMjM5MTc2MSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9wb2xpY3lkYi5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc3MvcG9saWN5ZGIuYwpAQCAtMTQ3OCw3ICsxNDc4LDggQEAKIAlzdHJ1Y3Qgb2NvbnRleHQgKmwsICpjLCAqbmV3YzsKIAlzdHJ1Y3QgZ2VuZnMgKmdlbmZzX3AsICpnZW5mcywgKm5ld2dlbmZzOwogCWludCBpLCBqLCByYzsKLQlfX2xlMzIgYnVmWzhdOworCV9fbGUzMiBidWZbNF07CisJdTMyIG5vZGVidWZbOF07CiAJdTMyIGxlbiwgbGVuMiwgY29uZmlnLCBucHJpbSwgbmVsLCBuZWwyOwogCWNoYXIgKnBvbGljeWRiX3N0cjsKIAlzdHJ1Y3QgcG9saWN5ZGJfY29tcGF0X2luZm8gKmluZm87CkBAIC0xNzQ5LDExICsxNzUwLDExIEBACiAJCQkJCWdvdG8gYmFkOwogCQkJCWJyZWFrOwogCQkJY2FzZSBPQ09OX05PREU6Ci0JCQkJcmMgPSBuZXh0X2VudHJ5KGJ1ZiwgZnAsIHNpemVvZih1MzIpICogMik7CisJCQkJcmMgPSBuZXh0X2VudHJ5KG5vZGVidWYsIGZwLCBzaXplb2YodTMyKSAqIDIpOwogCQkJCWlmIChyYyA8IDApCiAJCQkJCWdvdG8gYmFkOwotCQkJCWMtPnUubm9kZS5hZGRyID0gbGUzMl90b19jcHUoYnVmWzBdKTsKLQkJCQljLT51Lm5vZGUubWFzayA9IGxlMzJfdG9fY3B1KGJ1ZlsxXSk7CisJCQkJYy0+dS5ub2RlLmFkZHIgPSBub2RlYnVmWzBdOyAvKiBuZXR3b3JrIG9yZGVyICovCisJCQkJYy0+dS5ub2RlLm1hc2sgPSBub2RlYnVmWzFdOyAvKiBuZXR3b3JrIG9yZGVyICovCiAJCQkJcmMgPSBjb250ZXh0X3JlYWRfYW5kX3ZhbGlkYXRlKCZjLT5jb250ZXh0WzBdLCBwLCBmcCk7CiAJCQkJaWYgKHJjKQogCQkJCQlnb3RvIGJhZDsKQEAgLTE3ODIsMTMgKzE3ODMsMTMgQEAKIAkJCWNhc2UgT0NPTl9OT0RFNjogewogCQkJCWludCBrOwogCi0JCQkJcmMgPSBuZXh0X2VudHJ5KGJ1ZiwgZnAsIHNpemVvZih1MzIpICogOCk7CisJCQkJcmMgPSBuZXh0X2VudHJ5KG5vZGVidWYsIGZwLCBzaXplb2YodTMyKSAqIDgpOwogCQkJCWlmIChyYyA8IDApCiAJCQkJCWdvdG8gYmFkOwogCQkJCWZvciAoayA9IDA7IGsgPCA0OyBrKyspCi0JCQkJCWMtPnUubm9kZTYuYWRkcltrXSA9IGxlMzJfdG9fY3B1KGJ1ZltrXSk7CisJCQkJCWMtPnUubm9kZTYuYWRkcltrXSA9IG5vZGVidWZba107CiAJCQkJZm9yIChrID0gMDsgayA8IDQ7IGsrKykKLQkJCQkJYy0+dS5ub2RlNi5tYXNrW2tdID0gbGUzMl90b19jcHUoYnVmW2srNF0pOworCQkJCQljLT51Lm5vZGU2Lm1hc2tba10gPSBub2RlYnVmW2srNF07CiAJCQkJaWYgKGNvbnRleHRfcmVhZF9hbmRfdmFsaWRhdGUoJmMtPmNvbnRleHRbMF0sIHAsIGZwKSkKIAkJCQkJZ290byBiYWQ7CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NzL3NlcnZpY2VzLmMgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3NlcnZpY2VzLmMKaW5kZXggZGNjMmUxYy4uYjUyZjkyMyAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zZXJ2aWNlcy5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc3Mvc2VydmljZXMuYwpAQCAtNzEsMTQgKzcxLDYgQEAKIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc2VsaW51eF9jbGFzc19wZXJtIHNlbGludXhfY2xhc3NfcGVybTsKIAogc3RhdGljIERFRklORV9SV0xPQ0socG9saWN5X3J3bG9jayk7Ci0jZGVmaW5lIFBPTElDWV9SRExPQ0sgcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKQotI2RlZmluZSBQT0xJQ1lfV1JMT0NLIHdyaXRlX2xvY2tfaXJxKCZwb2xpY3lfcndsb2NrKQotI2RlZmluZSBQT0xJQ1lfUkRVTkxPQ0sgcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spCi0jZGVmaW5lIFBPTElDWV9XUlVOTE9DSyB3cml0ZV91bmxvY2tfaXJxKCZwb2xpY3lfcndsb2NrKQotCi1zdGF0aWMgREVGSU5FX01VVEVYKGxvYWRfbXV0ZXgpOwotI2RlZmluZSBMT0FEX0xPQ0sgbXV0ZXhfbG9jaygmbG9hZF9tdXRleCkKLSNkZWZpbmUgTE9BRF9VTkxPQ0sgbXV0ZXhfdW5sb2NrKCZsb2FkX211dGV4KQogCiBzdGF0aWMgc3RydWN0IHNpZHRhYiBzaWR0YWI7CiBzdHJ1Y3QgcG9saWN5ZGIgcG9saWN5ZGI7CkBAIC0zMzIsNyArMzI0LDcgQEAKIAkJZ290byBpbnZhbF9jbGFzczsKIAlpZiAodW5saWtlbHkodGNsYXNzID4gcG9saWN5ZGIucF9jbGFzc2VzLm5wcmltKSkKIAkJaWYgKHRjbGFzcyA+IGtkZWZzLT5jdHNfbGVuIHx8Ci0JCSAgICAha2RlZnMtPmNsYXNzX3RvX3N0cmluZ1t0Y2xhc3MgLSAxXSB8fAorCQkgICAgIWtkZWZzLT5jbGFzc190b19zdHJpbmdbdGNsYXNzXSB8fAogCQkgICAgIXBvbGljeWRiLmFsbG93X3Vua25vd24pCiAJCQlnb3RvIGludmFsX2NsYXNzOwogCkBAIC00MTUsOSArNDA3LDE5IEBACiAJcmV0dXJuIDA7CiAKIGludmFsX2NsYXNzOgotCXByaW50ayhLRVJOX0VSUiAiU0VMaW51eDogJXM6ICB1bnJlY29nbml6ZWQgY2xhc3MgJWRcbiIsIF9fZnVuY19fLAotCQl0Y2xhc3MpOwotCXJldHVybiAtRUlOVkFMOworCWlmICghdGNsYXNzIHx8IHRjbGFzcyA+IGtkZWZzLT5jdHNfbGVuIHx8CisJICAgICFrZGVmcy0+Y2xhc3NfdG9fc3RyaW5nW3RjbGFzc10pIHsKKwkJaWYgKHByaW50a19yYXRlbGltaXQoKSkKKwkJCXByaW50ayhLRVJOX0VSUiAiU0VMaW51eDogJXM6ICB1bnJlY29nbml6ZWQgY2xhc3MgJWRcbiIsCisJCQkgICAgICAgX19mdW5jX18sIHRjbGFzcyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qCisJICogS25vd24gdG8gdGhlIGtlcm5lbCwgYnV0IG5vdCB0byB0aGUgcG9saWN5LgorCSAqIEhhbmRsZSBhcyBhIGRlbmlhbCAoYWxsb3dlZCBpcyAwKS4KKwkgKi8KKwlyZXR1cm4gMDsKIH0KIAogLyoKQEAgLTQyOSw3ICs0MzEsNyBAQAogCXUzMiB0eXBlOwogCWludCByYzsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCWNvbnRleHQgPSBzaWR0YWJfc2VhcmNoKCZzaWR0YWIsIHNpZCk7CiAJQlVHX09OKCFjb250ZXh0KTsKQEAgLTQ0MSw3ICs0NDMsNyBAQAogCSAqLwogCXJjID0gZWJpdG1hcF9nZXRfYml0KCZwb2xpY3lkYi5wZXJtaXNzaXZlX21hcCwgdHlwZSk7CiAKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtNDg2LDcgKzQ4OCw3IEBACiAJaWYgKCFzc19pbml0aWFsaXplZCkKIAkJcmV0dXJuIDA7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAkvKgogCSAqIFJlbWFwIGV4dGVuZGVkIE5ldGxpbmsgY2xhc3NlcyBmb3Igb2xkIHBvbGljeSB2ZXJzaW9ucy4KQEAgLTU0Myw3ICs1NDUsNyBAQAogCX0KIAogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC01NzgsNyArNTgwLDcgQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJc2NvbnRleHQgPSBzaWR0YWJfc2VhcmNoKCZzaWR0YWIsIHNzaWQpOwogCWlmICghc2NvbnRleHQpIHsKQEAgLTU5OCw3ICs2MDAsNyBAQAogCXJjID0gY29udGV4dF9zdHJ1Y3RfY29tcHV0ZV9hdihzY29udGV4dCwgdGNvbnRleHQsIHRjbGFzcywKIAkJCQkgICAgICAgcmVxdWVzdGVkLCBhdmQpOwogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC02MTYsNiArNjE4LDE0IEBACiAJKnNjb250ZXh0ID0gTlVMTDsKIAkqc2NvbnRleHRfbGVuID0gMDsKIAorCWlmIChjb250ZXh0LT5sZW4pIHsKKwkJKnNjb250ZXh0X2xlbiA9IGNvbnRleHQtPmxlbjsKKwkJKnNjb250ZXh0ID0ga3N0cmR1cChjb250ZXh0LT5zdHIsIEdGUF9BVE9NSUMpOworCQlpZiAoISgqc2NvbnRleHQpKQorCQkJcmV0dXJuIC1FTk9NRU07CisJCXJldHVybiAwOworCX0KKwogCS8qIENvbXB1dGUgdGhlIHNpemUgb2YgdGhlIGNvbnRleHQuICovCiAJKnNjb250ZXh0X2xlbiArPSBzdHJsZW4ocG9saWN5ZGIucF91c2VyX3ZhbF90b19uYW1lW2NvbnRleHQtPnVzZXIgLSAxXSkgKyAxOwogCSpzY29udGV4dF9sZW4gKz0gc3RybGVuKHBvbGljeWRiLnBfcm9sZV92YWxfdG9fbmFtZVtjb250ZXh0LT5yb2xlIC0gMV0pICsgMTsKQEAgLTY1NSwxNyArNjY1LDggQEAKIAlyZXR1cm4gaW5pdGlhbF9zaWRfdG9fc3RyaW5nW3NpZF07CiB9CiAKLS8qKgotICogc2VjdXJpdHlfc2lkX3RvX2NvbnRleHQgLSBPYnRhaW4gYSBjb250ZXh0IGZvciBhIGdpdmVuIFNJRC4KLSAqIEBzaWQ6IHNlY3VyaXR5IGlkZW50aWZpZXIsIFNJRAotICogQHNjb250ZXh0OiBzZWN1cml0eSBjb250ZXh0Ci0gKiBAc2NvbnRleHRfbGVuOiBsZW5ndGggaW4gYnl0ZXMKLSAqCi0gKiBXcml0ZSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb250ZXh0IGFzc29jaWF0ZWQgd2l0aCBAc2lkCi0gKiBpbnRvIGEgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHN0cmluZyBvZiB0aGUgY29ycmVjdCBzaXplLiAgU2V0IEBzY29udGV4dAotICogdG8gcG9pbnQgdG8gdGhpcyBzdHJpbmcgYW5kIHNldCBAc2NvbnRleHRfbGVuIHRvIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZy4KLSAqLwotaW50IHNlY3VyaXR5X3NpZF90b19jb250ZXh0KHUzMiBzaWQsIGNoYXIgKipzY29udGV4dCwgdTMyICpzY29udGV4dF9sZW4pCitzdGF0aWMgaW50IHNlY3VyaXR5X3NpZF90b19jb250ZXh0X2NvcmUodTMyIHNpZCwgY2hhciAqKnNjb250ZXh0LAorCQkJCQl1MzIgKnNjb250ZXh0X2xlbiwgaW50IGZvcmNlKQogewogCXN0cnVjdCBjb250ZXh0ICpjb250ZXh0OwogCWludCByYyA9IDA7CkBAIC02OTIsOCArNjkzLDExIEBACiAJCXJjID0gLUVJTlZBTDsKIAkJZ290byBvdXQ7CiAJfQotCVBPTElDWV9SRExPQ0s7Ci0JY29udGV4dCA9IHNpZHRhYl9zZWFyY2goJnNpZHRhYiwgc2lkKTsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOworCWlmIChmb3JjZSkKKwkJY29udGV4dCA9IHNpZHRhYl9zZWFyY2hfZm9yY2UoJnNpZHRhYiwgc2lkKTsKKwllbHNlCisJCWNvbnRleHQgPSBzaWR0YWJfc2VhcmNoKCZzaWR0YWIsIHNpZCk7CiAJaWYgKCFjb250ZXh0KSB7CiAJCXByaW50ayhLRVJOX0VSUiAiU0VMaW51eDogJXM6ICB1bnJlY29nbml6ZWQgU0lEICVkXG4iLAogCQkJX19mdW5jX18sIHNpZCk7CkBAIC03MDIsNTkgKzcwNiw1NCBAQAogCX0KIAlyYyA9IGNvbnRleHRfc3RydWN0X3RvX3N0cmluZyhjb250ZXh0LCBzY29udGV4dCwgc2NvbnRleHRfbGVuKTsKIG91dF91bmxvY2s6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIG91dDoKIAlyZXR1cm4gcmM7CiAKIH0KIAotc3RhdGljIGludCBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9jb3JlKGNvbnN0IGNoYXIgKnNjb250ZXh0LCB1MzIgc2NvbnRleHRfbGVuLAotCQkJCQl1MzIgKnNpZCwgdTMyIGRlZl9zaWQsIGdmcF90IGdmcF9mbGFncykKKy8qKgorICogc2VjdXJpdHlfc2lkX3RvX2NvbnRleHQgLSBPYnRhaW4gYSBjb250ZXh0IGZvciBhIGdpdmVuIFNJRC4KKyAqIEBzaWQ6IHNlY3VyaXR5IGlkZW50aWZpZXIsIFNJRAorICogQHNjb250ZXh0OiBzZWN1cml0eSBjb250ZXh0CisgKiBAc2NvbnRleHRfbGVuOiBsZW5ndGggaW4gYnl0ZXMKKyAqCisgKiBXcml0ZSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb250ZXh0IGFzc29jaWF0ZWQgd2l0aCBAc2lkCisgKiBpbnRvIGEgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHN0cmluZyBvZiB0aGUgY29ycmVjdCBzaXplLiAgU2V0IEBzY29udGV4dAorICogdG8gcG9pbnQgdG8gdGhpcyBzdHJpbmcgYW5kIHNldCBAc2NvbnRleHRfbGVuIHRvIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZy4KKyAqLworaW50IHNlY3VyaXR5X3NpZF90b19jb250ZXh0KHUzMiBzaWQsIGNoYXIgKipzY29udGV4dCwgdTMyICpzY29udGV4dF9sZW4pCiB7Ci0JY2hhciAqc2NvbnRleHQyOwotCXN0cnVjdCBjb250ZXh0IGNvbnRleHQ7CisJcmV0dXJuIHNlY3VyaXR5X3NpZF90b19jb250ZXh0X2NvcmUoc2lkLCBzY29udGV4dCwgc2NvbnRleHRfbGVuLCAwKTsKK30KKworaW50IHNlY3VyaXR5X3NpZF90b19jb250ZXh0X2ZvcmNlKHUzMiBzaWQsIGNoYXIgKipzY29udGV4dCwgdTMyICpzY29udGV4dF9sZW4pCit7CisJcmV0dXJuIHNlY3VyaXR5X3NpZF90b19jb250ZXh0X2NvcmUoc2lkLCBzY29udGV4dCwgc2NvbnRleHRfbGVuLCAxKTsKK30KKworLyoKKyAqIENhdmVhdDogIE11dGF0ZXMgc2NvbnRleHQuCisgKi8KK3N0YXRpYyBpbnQgc3RyaW5nX3RvX2NvbnRleHRfc3RydWN0KHN0cnVjdCBwb2xpY3lkYiAqcG9sLAorCQkJCSAgICBzdHJ1Y3Qgc2lkdGFiICpzaWR0YWJwLAorCQkJCSAgICBjaGFyICpzY29udGV4dCwKKwkJCQkgICAgdTMyIHNjb250ZXh0X2xlbiwKKwkJCQkgICAgc3RydWN0IGNvbnRleHQgKmN0eCwKKwkJCQkgICAgdTMyIGRlZl9zaWQpCit7CiAJc3RydWN0IHJvbGVfZGF0dW0gKnJvbGU7CiAJc3RydWN0IHR5cGVfZGF0dW0gKnR5cGRhdHVtOwogCXN0cnVjdCB1c2VyX2RhdHVtICp1c3JkYXR1bTsKIAljaGFyICpzY29udGV4dHAsICpwLCBvbGRjOwogCWludCByYyA9IDA7CiAKLQlpZiAoIXNzX2luaXRpYWxpemVkKSB7Ci0JCWludCBpOwotCi0JCWZvciAoaSA9IDE7IGkgPCBTRUNJTklUU0lEX05VTTsgaSsrKSB7Ci0JCQlpZiAoIXN0cmNtcChpbml0aWFsX3NpZF90b19zdHJpbmdbaV0sIHNjb250ZXh0KSkgewotCQkJCSpzaWQgPSBpOwotCQkJCWdvdG8gb3V0OwotCQkJfQotCQl9Ci0JCSpzaWQgPSBTRUNJTklUU0lEX0tFUk5FTDsKLQkJZ290byBvdXQ7Ci0JfQotCSpzaWQgPSBTRUNTSURfTlVMTDsKLQotCS8qIENvcHkgdGhlIHN0cmluZyBzbyB0aGF0IHdlIGNhbiBtb2RpZnkgdGhlIGNvcHkgYXMgd2UgcGFyc2UgaXQuCi0JICAgVGhlIHN0cmluZyBzaG91bGQgYWxyZWFkeSBieSBudWxsIHRlcm1pbmF0ZWQsIGJ1dCB3ZSBhcHBlbmQgYQotCSAgIG51bGwgc3VmZml4IHRvIHRoZSBjb3B5IHRvIGF2b2lkIHByb2JsZW1zIHdpdGggdGhlIGV4aXN0aW5nCi0JICAgYXR0ciBwYWNrYWdlLCB3aGljaCBkb2Vzbid0IHZpZXcgdGhlIG51bGwgdGVybWluYXRvciBhcyBwYXJ0Ci0JICAgb2YgdGhlIGF0dHJpYnV0ZSB2YWx1ZS4gKi8KLQlzY29udGV4dDIgPSBrbWFsbG9jKHNjb250ZXh0X2xlbisxLCBnZnBfZmxhZ3MpOwotCWlmICghc2NvbnRleHQyKSB7Ci0JCXJjID0gLUVOT01FTTsKLQkJZ290byBvdXQ7Ci0JfQotCW1lbWNweShzY29udGV4dDIsIHNjb250ZXh0LCBzY29udGV4dF9sZW4pOwotCXNjb250ZXh0MltzY29udGV4dF9sZW5dID0gMDsKLQotCWNvbnRleHRfaW5pdCgmY29udGV4dCk7Ci0JKnNpZCA9IFNFQ1NJRF9OVUxMOwotCi0JUE9MSUNZX1JETE9DSzsKKwljb250ZXh0X2luaXQoY3R4KTsKIAogCS8qIFBhcnNlIHRoZSBzZWN1cml0eSBjb250ZXh0LiAqLwogCiAJcmMgPSAtRUlOVkFMOwotCXNjb250ZXh0cCA9IChjaGFyICopIHNjb250ZXh0MjsKKwlzY29udGV4dHAgPSAoY2hhciAqKSBzY29udGV4dDsKIAogCS8qIEV4dHJhY3QgdGhlIHVzZXIuICovCiAJcCA9IHNjb250ZXh0cDsKQEAgLTc2MiwxNSArNzYxLDE1IEBACiAJCXArKzsKIAogCWlmICgqcCA9PSAwKQotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0OwogCiAJKnArKyA9IDA7CiAKLQl1c3JkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbGljeWRiLnBfdXNlcnMudGFibGUsIHNjb250ZXh0cCk7CisJdXNyZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2wtPnBfdXNlcnMudGFibGUsIHNjb250ZXh0cCk7CiAJaWYgKCF1c3JkYXR1bSkKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dDsKIAotCWNvbnRleHQudXNlciA9IHVzcmRhdHVtLT52YWx1ZTsKKwljdHgtPnVzZXIgPSB1c3JkYXR1bS0+dmFsdWU7CiAKIAkvKiBFeHRyYWN0IHJvbGUuICovCiAJc2NvbnRleHRwID0gcDsKQEAgLTc3OCwxNCArNzc3LDE0IEBACiAJCXArKzsKIAogCWlmICgqcCA9PSAwKQotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0OwogCiAJKnArKyA9IDA7CiAKLQlyb2xlID0gaGFzaHRhYl9zZWFyY2gocG9saWN5ZGIucF9yb2xlcy50YWJsZSwgc2NvbnRleHRwKTsKKwlyb2xlID0gaGFzaHRhYl9zZWFyY2gocG9sLT5wX3JvbGVzLnRhYmxlLCBzY29udGV4dHApOwogCWlmICghcm9sZSkKLQkJZ290byBvdXRfdW5sb2NrOwotCWNvbnRleHQucm9sZSA9IHJvbGUtPnZhbHVlOworCQlnb3RvIG91dDsKKwljdHgtPnJvbGUgPSByb2xlLT52YWx1ZTsKIAogCS8qIEV4dHJhY3QgdHlwZS4gKi8KIAlzY29udGV4dHAgPSBwOwpAQCAtNzk0LDM2ICs3OTMsOTAgQEAKIAlvbGRjID0gKnA7CiAJKnArKyA9IDA7CiAKLQl0eXBkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbGljeWRiLnBfdHlwZXMudGFibGUsIHNjb250ZXh0cCk7CisJdHlwZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2wtPnBfdHlwZXMudGFibGUsIHNjb250ZXh0cCk7CiAJaWYgKCF0eXBkYXR1bSkKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dDsKIAotCWNvbnRleHQudHlwZSA9IHR5cGRhdHVtLT52YWx1ZTsKKwljdHgtPnR5cGUgPSB0eXBkYXR1bS0+dmFsdWU7CiAKLQlyYyA9IG1sc19jb250ZXh0X3RvX3NpZChvbGRjLCAmcCwgJmNvbnRleHQsICZzaWR0YWIsIGRlZl9zaWQpOworCXJjID0gbWxzX2NvbnRleHRfdG9fc2lkKHBvbCwgb2xkYywgJnAsIGN0eCwgc2lkdGFicCwgZGVmX3NpZCk7CiAJaWYgKHJjKQotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0OwogCi0JaWYgKChwIC0gc2NvbnRleHQyKSA8IHNjb250ZXh0X2xlbikgeworCWlmICgocCAtIHNjb250ZXh0KSA8IHNjb250ZXh0X2xlbikgewogCQlyYyA9IC1FSU5WQUw7Ci0JCWdvdG8gb3V0X3VubG9jazsKKwkJZ290byBvdXQ7CiAJfQogCiAJLyogQ2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBuZXcgY29udGV4dC4gKi8KLQlpZiAoIXBvbGljeWRiX2NvbnRleHRfaXN2YWxpZCgmcG9saWN5ZGIsICZjb250ZXh0KSkgeworCWlmICghcG9saWN5ZGJfY29udGV4dF9pc3ZhbGlkKHBvbCwgY3R4KSkgewogCQlyYyA9IC1FSU5WQUw7Ci0JCWdvdG8gb3V0X3VubG9jazsKKwkJY29udGV4dF9kZXN0cm95KGN0eCk7CisJCWdvdG8gb3V0OwogCX0KLQkvKiBPYnRhaW4gdGhlIG5ldyBzaWQuICovCi0JcmMgPSBzaWR0YWJfY29udGV4dF90b19zaWQoJnNpZHRhYiwgJmNvbnRleHQsIHNpZCk7Ci1vdXRfdW5sb2NrOgotCVBPTElDWV9SRFVOTE9DSzsKLQljb250ZXh0X2Rlc3Ryb3koJmNvbnRleHQpOwotCWtmcmVlKHNjb250ZXh0Mik7CisJcmMgPSAwOwogb3V0OgogCXJldHVybiByYzsKIH0KIAorc3RhdGljIGludCBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9jb3JlKGNvbnN0IGNoYXIgKnNjb250ZXh0LCB1MzIgc2NvbnRleHRfbGVuLAorCQkJCQl1MzIgKnNpZCwgdTMyIGRlZl9zaWQsIGdmcF90IGdmcF9mbGFncywKKwkJCQkJaW50IGZvcmNlKQoreworCWNoYXIgKnNjb250ZXh0MiwgKnN0ciA9IE5VTEw7CisJc3RydWN0IGNvbnRleHQgY29udGV4dDsKKwlpbnQgcmMgPSAwOworCisJaWYgKCFzc19pbml0aWFsaXplZCkgeworCQlpbnQgaTsKKworCQlmb3IgKGkgPSAxOyBpIDwgU0VDSU5JVFNJRF9OVU07IGkrKykgeworCQkJaWYgKCFzdHJjbXAoaW5pdGlhbF9zaWRfdG9fc3RyaW5nW2ldLCBzY29udGV4dCkpIHsKKwkJCQkqc2lkID0gaTsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJfQorCQkqc2lkID0gU0VDSU5JVFNJRF9LRVJORUw7CisJCXJldHVybiAwOworCX0KKwkqc2lkID0gU0VDU0lEX05VTEw7CisKKwkvKiBDb3B5IHRoZSBzdHJpbmcgc28gdGhhdCB3ZSBjYW4gbW9kaWZ5IHRoZSBjb3B5IGFzIHdlIHBhcnNlIGl0LiAqLworCXNjb250ZXh0MiA9IGttYWxsb2Moc2NvbnRleHRfbGVuKzEsIGdmcF9mbGFncyk7CisJaWYgKCFzY29udGV4dDIpCisJCXJldHVybiAtRU5PTUVNOworCW1lbWNweShzY29udGV4dDIsIHNjb250ZXh0LCBzY29udGV4dF9sZW4pOworCXNjb250ZXh0MltzY29udGV4dF9sZW5dID0gMDsKKworCWlmIChmb3JjZSkgeworCQkvKiBTYXZlIGFub3RoZXIgY29weSBmb3Igc3RvcmluZyBpbiB1bmludGVycHJldGVkIGZvcm0gKi8KKwkJc3RyID0ga3N0cmR1cChzY29udGV4dDIsIGdmcF9mbGFncyk7CisJCWlmICghc3RyKSB7CisJCQlrZnJlZShzY29udGV4dDIpOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwl9CisKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOworCXJjID0gc3RyaW5nX3RvX2NvbnRleHRfc3RydWN0KCZwb2xpY3lkYiwgJnNpZHRhYiwKKwkJCQkgICAgICBzY29udGV4dDIsIHNjb250ZXh0X2xlbiwKKwkJCQkgICAgICAmY29udGV4dCwgZGVmX3NpZCk7CisJaWYgKHJjID09IC1FSU5WQUwgJiYgZm9yY2UpIHsKKwkJY29udGV4dC5zdHIgPSBzdHI7CisJCWNvbnRleHQubGVuID0gc2NvbnRleHRfbGVuOworCQlzdHIgPSBOVUxMOworCX0gZWxzZSBpZiAocmMpCisJCWdvdG8gb3V0OworCXJjID0gc2lkdGFiX2NvbnRleHRfdG9fc2lkKCZzaWR0YWIsICZjb250ZXh0LCBzaWQpOworCWlmIChyYykKKwkJY29udGV4dF9kZXN0cm95KCZjb250ZXh0KTsKK291dDoKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CisJa2ZyZWUoc2NvbnRleHQyKTsKKwlrZnJlZShzdHIpOworCXJldHVybiByYzsKK30KKwogLyoqCiAgKiBzZWN1cml0eV9jb250ZXh0X3RvX3NpZCAtIE9idGFpbiBhIFNJRCBmb3IgYSBnaXZlbiBzZWN1cml0eSBjb250ZXh0LgogICogQHNjb250ZXh0OiBzZWN1cml0eSBjb250ZXh0CkBAIC04MzgsNyArODkxLDcgQEAKIGludCBzZWN1cml0eV9jb250ZXh0X3RvX3NpZChjb25zdCBjaGFyICpzY29udGV4dCwgdTMyIHNjb250ZXh0X2xlbiwgdTMyICpzaWQpCiB7CiAJcmV0dXJuIHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkX2NvcmUoc2NvbnRleHQsIHNjb250ZXh0X2xlbiwKLQkJCQkJICAgIHNpZCwgU0VDU0lEX05VTEwsIEdGUF9LRVJORUwpOworCQkJCQkgICAgc2lkLCBTRUNTSURfTlVMTCwgR0ZQX0tFUk5FTCwgMCk7CiB9CiAKIC8qKgpAQCAtODU1LDYgKzkwOCw3IEBACiAgKiBUaGUgZGVmYXVsdCBTSUQgaXMgcGFzc2VkIHRvIHRoZSBNTFMgbGF5ZXIgdG8gYmUgdXNlZCB0byBhbGxvdwogICoga2VybmVsIGxhYmVsaW5nIG9mIHRoZSBNTFMgZmllbGQgaWYgdGhlIE1MUyBmaWVsZCBpcyBub3QgcHJlc2VudAogICogKGZvciB1cGdyYWRpbmcgdG8gTUxTIHdpdGhvdXQgZnVsbCByZWxhYmVsKS4KKyAqIEltcGxpY2l0bHkgZm9yY2VzIGFkZGluZyBvZiB0aGUgY29udGV4dCBldmVuIGlmIGl0IGNhbm5vdCBiZSBtYXBwZWQgeWV0LgogICogUmV0dXJucyAtJUVJTlZBTCBpZiB0aGUgY29udGV4dCBpcyBpbnZhbGlkLCAtJUVOT01FTSBpZiBpbnN1ZmZpY2llbnQKICAqIG1lbW9yeSBpcyBhdmFpbGFibGUsIG9yIDAgb24gc3VjY2Vzcy4KICAqLwpAQCAtODYyLDcgKzkxNiwxNCBAQAogCQkJCSAgICB1MzIgKnNpZCwgdTMyIGRlZl9zaWQsIGdmcF90IGdmcF9mbGFncykKIHsKIAlyZXR1cm4gc2VjdXJpdHlfY29udGV4dF90b19zaWRfY29yZShzY29udGV4dCwgc2NvbnRleHRfbGVuLAotCQkJCQkgICAgc2lkLCBkZWZfc2lkLCBnZnBfZmxhZ3MpOworCQkJCQkgICAgc2lkLCBkZWZfc2lkLCBnZnBfZmxhZ3MsIDEpOworfQorCitpbnQgc2VjdXJpdHlfY29udGV4dF90b19zaWRfZm9yY2UoY29uc3QgY2hhciAqc2NvbnRleHQsIHUzMiBzY29udGV4dF9sZW4sCisJCQkJICB1MzIgKnNpZCkKK3sKKwlyZXR1cm4gc2VjdXJpdHlfY29udGV4dF90b19zaWRfY29yZShzY29udGV4dCwgc2NvbnRleHRfbGVuLAorCQkJCQkgICAgc2lkLCBTRUNTSURfTlVMTCwgR0ZQX0tFUk5FTCwgMSk7CiB9CiAKIHN0YXRpYyBpbnQgY29tcHV0ZV9zaWRfaGFuZGxlX2ludmFsaWRfY29udGV4dCgKQEAgLTkyMiw3ICs5ODMsNyBAQAogCiAJY29udGV4dF9pbml0KCZuZXdjb250ZXh0KTsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCXNjb250ZXh0ID0gc2lkdGFiX3NlYXJjaCgmc2lkdGFiLCBzc2lkKTsKIAlpZiAoIXNjb250ZXh0KSB7CkBAIC0xMDI3LDcgKzEwODgsNyBAQAogCS8qIE9idGFpbiB0aGUgc2lkIGZvciB0aGUgY29udGV4dC4gKi8KIAlyYyA9IHNpZHRhYl9jb250ZXh0X3RvX3NpZCgmc2lkdGFiLCAmbmV3Y29udGV4dCwgb3V0X3NpZCk7CiBvdXRfdW5sb2NrOgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJY29udGV4dF9kZXN0cm95KCZuZXdjb250ZXh0KTsKIG91dDoKIAlyZXR1cm4gcmM7CkBAIC0xMTEwLDYgKzExNzEsNyBAQAogCWNvbnN0IHN0cnVjdCBzZWxpbnV4X2NsYXNzX3Blcm0gKmtkZWZzID0gJnNlbGludXhfY2xhc3NfcGVybTsKIAljb25zdCBjaGFyICpkZWZfY2xhc3MsICpkZWZfcGVybSwgKnBvbF9jbGFzczsKIAlzdHJ1Y3Qgc3ltdGFiICpwZXJtczsKKwlib29sIHByaW50X3Vua25vd25faGFuZGxlID0gMDsKIAogCWlmIChwLT5hbGxvd191bmtub3duKSB7CiAJCXUzMiBudW1fY2xhc3NlcyA9IGtkZWZzLT5jdHNfbGVuOwpAQCAtMTEzMCw2ICsxMTkyLDcgQEAKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCWlmIChwLT5hbGxvd191bmtub3duKQogCQkJCXAtPnVuZGVmaW5lZF9wZXJtc1tpLTFdID0gfjBVOworCQkJcHJpbnRfdW5rbm93bl9oYW5kbGUgPSAxOwogCQkJY29udGludWU7CiAJCX0KIAkJcG9sX2NsYXNzID0gcC0+cF9jbGFzc192YWxfdG9fbmFtZVtpLTFdOwpAQCAtMTE1OSw2ICsxMjIyLDcgQEAKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCWlmIChwLT5hbGxvd191bmtub3duKQogCQkJCXAtPnVuZGVmaW5lZF9wZXJtc1tjbGFzc192YWwtMV0gfD0gcGVybV92YWw7CisJCQlwcmludF91bmtub3duX2hhbmRsZSA9IDE7CiAJCQljb250aW51ZTsKIAkJfQogCQlwZXJkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBlcm1zLT50YWJsZSwgZGVmX3Blcm0pOwpAQCAtMTIwNiw2ICsxMjcwLDcgQEAKIAkJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQkJaWYgKHAtPmFsbG93X3Vua25vd24pCiAJCQkJCXAtPnVuZGVmaW5lZF9wZXJtc1tjbGFzc192YWwtMV0gfD0gKDEgPDwgaik7CisJCQkJcHJpbnRfdW5rbm93bl9oYW5kbGUgPSAxOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJcGVyZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwZXJtcy0+dGFibGUsIGRlZl9wZXJtKTsKQEAgLTEyMjMsNiArMTI4OCw5IEBACiAJCQl9CiAJCX0KIAl9CisJaWYgKHByaW50X3Vua25vd25faGFuZGxlKQorCQlwcmludGsoS0VSTl9JTkZPICJTRUxpbnV4OiB0aGUgYWJvdmUgdW5rbm93biBjbGFzc2VzIGFuZCBwZXJtaXNzaW9ucyB3aWxsIGJlICVzXG4iLAorCQkJKHNlY3VyaXR5X2dldF9hbGxvd191bmtub3duKCkgPyAiYWxsb3dlZCIgOiAiZGVuaWVkIikpOwogCXJldHVybiAwOwogfQogCkBAIC0xMjQ2LDkgKzEzMTQsMTIgQEAKIAkJY2hhciAqczsKIAkJdTMyIGxlbjsKIAotCQljb250ZXh0X3N0cnVjdF90b19zdHJpbmcoY29udGV4dCwgJnMsICZsZW4pOwotCQlwcmludGsoS0VSTl9FUlIgIlNFTGludXg6ICBjb250ZXh0ICVzIGlzIGludmFsaWRcbiIsIHMpOwotCQlrZnJlZShzKTsKKwkJaWYgKCFjb250ZXh0X3N0cnVjdF90b19zdHJpbmcoY29udGV4dCwgJnMsICZsZW4pKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCSAgICAgICAiU0VMaW51eDogIENvbnRleHQgJXMgd291bGQgYmUgaW52YWxpZCBpZiBlbmZvcmNpbmdcbiIsCisJCQkgICAgICAgcyk7CisJCQlrZnJlZShzKTsKKwkJfQogCX0KIAlyZXR1cm4gcmM7CiB9CkBAIC0xMjgwLDYgKzEzNTEsMzcgQEAKIAogCWFyZ3MgPSBwOwogCisJaWYgKGMtPnN0cikgeworCQlzdHJ1Y3QgY29udGV4dCBjdHg7CisJCXMgPSBrc3RyZHVwKGMtPnN0ciwgR0ZQX0tFUk5FTCk7CisJCWlmICghcykgeworCQkJcmMgPSAtRU5PTUVNOworCQkJZ290byBvdXQ7CisJCX0KKwkJcmMgPSBzdHJpbmdfdG9fY29udGV4dF9zdHJ1Y3QoYXJncy0+bmV3cCwgTlVMTCwgcywKKwkJCQkJICAgICAgYy0+bGVuLCAmY3R4LCBTRUNTSURfTlVMTCk7CisJCWtmcmVlKHMpOworCQlpZiAoIXJjKSB7CisJCQlwcmludGsoS0VSTl9JTkZPCisJCSAgICAgICAiU0VMaW51eDogIENvbnRleHQgJXMgYmVjYW1lIHZhbGlkIChtYXBwZWQpLlxuIiwKKwkJCSAgICAgICBjLT5zdHIpOworCQkJLyogUmVwbGFjZSBzdHJpbmcgd2l0aCBtYXBwZWQgcmVwcmVzZW50YXRpb24uICovCisJCQlrZnJlZShjLT5zdHIpOworCQkJbWVtY3B5KGMsICZjdHgsIHNpemVvZigqYykpOworCQkJZ290byBvdXQ7CisJCX0gZWxzZSBpZiAocmMgPT0gLUVJTlZBTCkgeworCQkJLyogUmV0YWluIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgbGF0ZXIgbWFwcGluZy4gKi8KKwkJCXJjID0gMDsKKwkJCWdvdG8gb3V0OworCQl9IGVsc2UgeworCQkJLyogT3RoZXIgZXJyb3IgY29uZGl0aW9uLCBlLmcuIEVOT01FTS4gKi8KKwkJCXByaW50ayhLRVJOX0VSUgorCQkgICAgICAgIlNFTGludXg6ICAgVW5hYmxlIHRvIG1hcCBjb250ZXh0ICVzLCByYyA9ICVkLlxuIiwKKwkJCSAgICAgICBjLT5zdHIsIC1yYyk7CisJCQlnb3RvIG91dDsKKwkJfQorCX0KKwogCXJjID0gY29udGV4dF9jcHkoJm9sZGMsIGMpOwogCWlmIChyYykKIAkJZ290byBvdXQ7CkBAIC0xMzE5LDEzICsxNDIxLDIxIEBACiAJfQogCiAJY29udGV4dF9kZXN0cm95KCZvbGRjKTsKKwlyYyA9IDA7CiBvdXQ6CiAJcmV0dXJuIHJjOwogYmFkOgotCWNvbnRleHRfc3RydWN0X3RvX3N0cmluZygmb2xkYywgJnMsICZsZW4pOworCS8qIE1hcCBvbGQgcmVwcmVzZW50YXRpb24gdG8gc3RyaW5nIGFuZCBzYXZlIGl0LiAqLworCWlmIChjb250ZXh0X3N0cnVjdF90b19zdHJpbmcoJm9sZGMsICZzLCAmbGVuKSkKKwkJcmV0dXJuIC1FTk9NRU07CiAJY29udGV4dF9kZXN0cm95KCZvbGRjKTsKLQlwcmludGsoS0VSTl9FUlIgIlNFTGludXg6ICBpbnZhbGlkYXRpbmcgY29udGV4dCAlc1xuIiwgcyk7Ci0Ja2ZyZWUocyk7CisJY29udGV4dF9kZXN0cm95KGMpOworCWMtPnN0ciA9IHM7CisJYy0+bGVuID0gbGVuOworCXByaW50ayhLRVJOX0lORk8KKwkgICAgICAgIlNFTGludXg6ICBDb250ZXh0ICVzIGJlY2FtZSBpbnZhbGlkICh1bm1hcHBlZCkuXG4iLAorCSAgICAgICBjLT5zdHIpOworCXJjID0gMDsKIAlnb3RvIG91dDsKIH0KIApAQCAtMTM1OSwxNyArMTQ2OSwxMyBAQAogCWludCByYyA9IDA7CiAJc3RydWN0IHBvbGljeV9maWxlIGZpbGUgPSB7IGRhdGEsIGxlbiB9LCAqZnAgPSAmZmlsZTsKIAotCUxPQURfTE9DSzsKLQogCWlmICghc3NfaW5pdGlhbGl6ZWQpIHsKIAkJYXZ0YWJfY2FjaGVfaW5pdCgpOwogCQlpZiAocG9saWN5ZGJfcmVhZCgmcG9saWN5ZGIsIGZwKSkgewotCQkJTE9BRF9VTkxPQ0s7CiAJCQlhdnRhYl9jYWNoZV9kZXN0cm95KCk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCQlpZiAocG9saWN5ZGJfbG9hZF9pc2lkcygmcG9saWN5ZGIsICZzaWR0YWIpKSB7Ci0JCQlMT0FEX1VOTE9DSzsKIAkJCXBvbGljeWRiX2Rlc3Ryb3koJnBvbGljeWRiKTsKIAkJCWF2dGFiX2NhY2hlX2Rlc3Ryb3koKTsKIAkJCXJldHVybiAtRUlOVkFMOwpAQCAtMTM3OCw3ICsxNDg0LDYgQEAKIAkJaWYgKHZhbGlkYXRlX2NsYXNzZXMoJnBvbGljeWRiKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSCiAJCQkgICAgICAgIlNFTGludXg6ICB0aGUgZGVmaW5pdGlvbiBvZiBhIGNsYXNzIGlzIGluY29ycmVjdFxuIik7Ci0JCQlMT0FEX1VOTE9DSzsKIAkJCXNpZHRhYl9kZXN0cm95KCZzaWR0YWIpOwogCQkJcG9saWN5ZGJfZGVzdHJveSgmcG9saWN5ZGIpOwogCQkJYXZ0YWJfY2FjaGVfZGVzdHJveSgpOwpAQCAtMTM4OCw3ICsxNDkzLDYgQEAKIAkJcG9saWN5ZGJfbG9hZGVkX3ZlcnNpb24gPSBwb2xpY3lkYi5wb2xpY3l2ZXJzOwogCQlzc19pbml0aWFsaXplZCA9IDE7CiAJCXNlcW5vID0gKytsYXRlc3RfZ3JhbnRpbmc7Ci0JCUxPQURfVU5MT0NLOwogCQlzZWxpbnV4X2NvbXBsZXRlX2luaXQoKTsKIAkJYXZjX3NzX3Jlc2V0KHNlcW5vKTsKIAkJc2Vsbmxfbm90aWZ5X3BvbGljeWxvYWQoc2Vxbm8pOwpAQCAtMTQwMSwxMiArMTUwNSwxMyBAQAogCXNpZHRhYl9oYXNoX2V2YWwoJnNpZHRhYiwgInNpZHMiKTsKICNlbmRpZgogCi0JaWYgKHBvbGljeWRiX3JlYWQoJm5ld3BvbGljeWRiLCBmcCkpIHsKLQkJTE9BRF9VTkxPQ0s7CisJaWYgKHBvbGljeWRiX3JlYWQoJm5ld3BvbGljeWRiLCBmcCkpCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAotCXNpZHRhYl9pbml0KCZuZXdzaWR0YWIpOworCWlmIChzaWR0YWJfaW5pdCgmbmV3c2lkdGFiKSkgeworCQlwb2xpY3lkYl9kZXN0cm95KCZuZXdwb2xpY3lkYik7CisJCXJldHVybiAtRU5PTUVNOworCX0KIAogCS8qIFZlcmlmeSB0aGF0IHRoZSBrZXJuZWwgZGVmaW5lZCBjbGFzc2VzIGFyZSBjb3JyZWN0LiAqLwogCWlmICh2YWxpZGF0ZV9jbGFzc2VzKCZuZXdwb2xpY3lkYikpIHsKQEAgLTE0MjksMjUgKzE1MzQsMjggQEAKIAkJZ290byBlcnI7CiAJfQogCi0JLyogQ29udmVydCB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb25zIG9mIGNvbnRleHRzCi0JICAgaW4gdGhlIG5ldyBTSUQgdGFibGUgYW5kIHJlbW92ZSBpbnZhbGlkIFNJRHMuICovCisJLyoKKwkgKiBDb252ZXJ0IHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbnMgb2YgY29udGV4dHMKKwkgKiBpbiB0aGUgbmV3IFNJRCB0YWJsZS4KKwkgKi8KIAlhcmdzLm9sZHAgPSAmcG9saWN5ZGI7CiAJYXJncy5uZXdwID0gJm5ld3BvbGljeWRiOwotCXNpZHRhYl9tYXBfcmVtb3ZlX29uX2Vycm9yKCZuZXdzaWR0YWIsIGNvbnZlcnRfY29udGV4dCwgJmFyZ3MpOworCXJjID0gc2lkdGFiX21hcCgmbmV3c2lkdGFiLCBjb252ZXJ0X2NvbnRleHQsICZhcmdzKTsKKwlpZiAocmMpCisJCWdvdG8gZXJyOwogCiAJLyogU2F2ZSB0aGUgb2xkIHBvbGljeWRiIGFuZCBTSUQgdGFibGUgdG8gZnJlZSBsYXRlci4gKi8KIAltZW1jcHkoJm9sZHBvbGljeWRiLCAmcG9saWN5ZGIsIHNpemVvZiBwb2xpY3lkYik7CiAJc2lkdGFiX3NldCgmb2xkc2lkdGFiLCAmc2lkdGFiKTsKIAogCS8qIEluc3RhbGwgdGhlIG5ldyBwb2xpY3lkYiBhbmQgU0lEIHRhYmxlLiAqLwotCVBPTElDWV9XUkxPQ0s7CisJd3JpdGVfbG9ja19pcnEoJnBvbGljeV9yd2xvY2spOwogCW1lbWNweSgmcG9saWN5ZGIsICZuZXdwb2xpY3lkYiwgc2l6ZW9mIHBvbGljeWRiKTsKIAlzaWR0YWJfc2V0KCZzaWR0YWIsICZuZXdzaWR0YWIpOwogCXNlY3VyaXR5X2xvYWRfcG9saWN5Y2FwcygpOwogCXNlcW5vID0gKytsYXRlc3RfZ3JhbnRpbmc7CiAJcG9saWN5ZGJfbG9hZGVkX3ZlcnNpb24gPSBwb2xpY3lkYi5wb2xpY3l2ZXJzOwotCVBPTElDWV9XUlVOTE9DSzsKLQlMT0FEX1VOTE9DSzsKKwl3cml0ZV91bmxvY2tfaXJxKCZwb2xpY3lfcndsb2NrKTsKIAogCS8qIEZyZWUgdGhlIG9sZCBwb2xpY3lkYiBhbmQgU0lEIHRhYmxlLiAqLwogCXBvbGljeWRiX2Rlc3Ryb3koJm9sZHBvbGljeWRiKTsKQEAgLTE0NjEsNyArMTU2OSw2IEBACiAJcmV0dXJuIDA7CiAKIGVycjoKLQlMT0FEX1VOTE9DSzsKIAlzaWR0YWJfZGVzdHJveSgmbmV3c2lkdGFiKTsKIAlwb2xpY3lkYl9kZXN0cm95KCZuZXdwb2xpY3lkYik7CiAJcmV0dXJuIHJjOwpAQCAtMTQ3OSw3ICsxNTg2LDcgQEAKIAlzdHJ1Y3Qgb2NvbnRleHQgKmM7CiAJaW50IHJjID0gMDsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCWMgPSBwb2xpY3lkYi5vY29udGV4dHNbT0NPTl9QT1JUXTsKIAl3aGlsZSAoYykgewpAQCAtMTUwNCw3ICsxNjExLDcgQEAKIAl9CiAKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtMTUxOCw3ICsxNjI1LDcgQEAKIAlpbnQgcmMgPSAwOwogCXN0cnVjdCBvY29udGV4dCAqYzsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCWMgPSBwb2xpY3lkYi5vY29udGV4dHNbT0NPTl9ORVRJRl07CiAJd2hpbGUgKGMpIHsKQEAgLTE1NDUsNyArMTY1Miw3IEBACiAJCSppZl9zaWQgPSBTRUNJTklUU0lEX05FVElGOwogCiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTE1NzcsNyArMTY4NCw3IEBACiAJaW50IHJjID0gMDsKIAlzdHJ1Y3Qgb2NvbnRleHQgKmM7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlzd2l0Y2ggKGRvbWFpbikgewogCWNhc2UgQUZfSU5FVDogewpAQCAtMTYzMiw3ICsxNzM5LDcgQEAKIAl9CiAKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtMTY3MSw3ICsxNzc4LDkgQEAKIAlpZiAoIXNzX2luaXRpYWxpemVkKQogCQlnb3RvIG91dDsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKKworCWNvbnRleHRfaW5pdCgmdXNlcmNvbik7CiAKIAlmcm9tY29uID0gc2lkdGFiX3NlYXJjaCgmc2lkdGFiLCBmcm9tc2lkKTsKIAlpZiAoIWZyb21jb24pIHsKQEAgLTE3MjIsNyArMTgzMSw3IEBACiAJfQogCiBvdXRfdW5sb2NrOgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJaWYgKHJjIHx8ICFteW5lbCkgewogCQlrZnJlZShteXNpZHMpOwogCQlnb3RvIG91dDsKQEAgLTE3NzUsNyArMTg4NCw3IEBACiAJd2hpbGUgKHBhdGhbMF0gPT0gJy8nICYmIHBhdGhbMV0gPT0gJy8nKQogCQlwYXRoKys7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlmb3IgKGdlbmZzID0gcG9saWN5ZGIuZ2VuZnM7IGdlbmZzOyBnZW5mcyA9IGdlbmZzLT5uZXh0KSB7CiAJCWNtcCA9IHN0cmNtcChmc3R5cGUsIGdlbmZzLT5mc3R5cGUpOwpAQCAtMTgxMiw3ICsxOTIxLDcgQEAKIAogCSpzaWQgPSBjLT5zaWRbMF07CiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTE4MzAsNyArMTkzOSw3IEBACiAJaW50IHJjID0gMDsKIAlzdHJ1Y3Qgb2NvbnRleHQgKmM7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAljID0gcG9saWN5ZGIub2NvbnRleHRzW09DT05fRlNVU0VdOwogCXdoaWxlIChjKSB7CkBAIC0xODYwLDcgKzE5NjksNyBAQAogCX0KIAogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC0xODY4LDcgKzE5NzcsNyBAQAogewogCWludCBpLCByYyA9IC1FTk9NRU07CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAJKm5hbWVzID0gTlVMTDsKIAkqdmFsdWVzID0gTlVMTDsKIApAQCAtMTg5OCw3ICsyMDA3LDcgQEAKIAl9CiAJcmMgPSAwOwogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogZXJyOgogCWlmICgqbmFtZXMpIHsKQEAgLTE5MTYsNyArMjAyNSw3IEBACiAJaW50IGxlbnAsIHNlcW5vID0gMDsKIAlzdHJ1Y3QgY29uZF9ub2RlICpjdXI7CiAKLQlQT0xJQ1lfV1JMT0NLOworCXdyaXRlX2xvY2tfaXJxKCZwb2xpY3lfcndsb2NrKTsKIAogCWxlbnAgPSBwb2xpY3lkYi5wX2Jvb2xzLm5wcmltOwogCWlmIChsZW4gIT0gbGVucCkgewpAQCAtMTk1MCw3ICsyMDU5LDcgQEAKIAlzZXFubyA9ICsrbGF0ZXN0X2dyYW50aW5nOwogCiBvdXQ6Ci0JUE9MSUNZX1dSVU5MT0NLOworCXdyaXRlX3VubG9ja19pcnEoJnBvbGljeV9yd2xvY2spOwogCWlmICghcmMpIHsKIAkJYXZjX3NzX3Jlc2V0KHNlcW5vKTsKIAkJc2Vsbmxfbm90aWZ5X3BvbGljeWxvYWQoc2Vxbm8pOwpAQCAtMTk2NCw3ICsyMDczLDcgQEAKIAlpbnQgcmMgPSAwOwogCWludCBsZW47CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlsZW4gPSBwb2xpY3lkYi5wX2Jvb2xzLm5wcmltOwogCWlmIChib29sID49IGxlbikgewpAQCAtMTk3NCw3ICsyMDgzLDcgQEAKIAogCXJjID0gcG9saWN5ZGIuYm9vbF92YWxfdG9fc3RydWN0W2Jvb2xdLT5zdGF0ZTsKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtMjAyOSw3ICsyMTM4LDcgQEAKIAogCWNvbnRleHRfaW5pdCgmbmV3Y29uKTsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAljb250ZXh0MSA9IHNpZHRhYl9zZWFyY2goJnNpZHRhYiwgc2lkKTsKIAlpZiAoIWNvbnRleHQxKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiU0VMaW51eDogJXM6ICB1bnJlY29nbml6ZWQgU0lEICVkXG4iLApAQCAtMjA3MSw3ICsyMTgwLDcgQEAKIAl9CiAKIG91dF91bmxvY2s6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAljb250ZXh0X2Rlc3Ryb3koJm5ld2Nvbik7CiBvdXQ6CiAJcmV0dXJuIHJjOwpAQCAtMjEyOCw3ICsyMjM3LDcgQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJbmxibF9jdHggPSBzaWR0YWJfc2VhcmNoKCZzaWR0YWIsIG5sYmxfc2lkKTsKIAlpZiAoIW5sYmxfY3R4KSB7CkBAIC0yMTQ3LDcgKzIyNTYsNyBAQAogCXJjID0gKG1sc19jb250ZXh0X2NtcChubGJsX2N0eCwgeGZybV9jdHgpID8gMCA6IC1FQUNDRVMpOwogCiBvdXRfc2xvd3BhdGg6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlpZiAocmMgPT0gMCkKIAkJLyogYXQgcHJlc2VudCBOZXRMYWJlbCBTSURzL2xhYmVscyByZWFsbHkgb25seSBjYXJyeSBNTFMKIAkJICogaW5mb3JtYXRpb24gc28gaWYgdGhlIE1MUyBwb3J0aW9uIG9mIHRoZSBOZXRMYWJlbCBTSUQKQEAgLTIxNzcsNyArMjI4Niw3IEBACiB7CiAJaW50IHJjID0gLUVOT01FTTsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCSpuY2xhc3NlcyA9IHBvbGljeWRiLnBfY2xhc3Nlcy5ucHJpbTsKIAkqY2xhc3NlcyA9IGtjYWxsb2MoKm5jbGFzc2VzLCBzaXplb2YoKmNsYXNzZXMpLCBHRlBfQVRPTUlDKTsKQEAgLTIxOTQsNyArMjMwMyw3IEBACiAJfQogCiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTIyMTYsNyArMjMyNSw3IEBACiAJaW50IHJjID0gLUVOT01FTSwgaTsKIAlzdHJ1Y3QgY2xhc3NfZGF0dW0gKm1hdGNoOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJbWF0Y2ggPSBoYXNodGFiX3NlYXJjaChwb2xpY3lkYi5wX2NsYXNzZXMudGFibGUsIGNsYXNzKTsKIAlpZiAoIW1hdGNoKSB7CkBAIC0yMjQ0LDExICsyMzUzLDExIEBACiAJCWdvdG8gZXJyOwogCiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiAKIGVycjoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCWZvciAoaSA9IDA7IGkgPCAqbnBlcm1zOyBpKyspCiAJCWtmcmVlKCgqcGVybXMpW2ldKTsKIAlrZnJlZSgqcGVybXMpOwpAQCAtMjI3OSw5ICsyMzg4LDkgQEAKIHsKIAlpbnQgcmM7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmMgPSBlYml0bWFwX2dldF9iaXQoJnBvbGljeWRiLnBvbGljeWNhcHMsIHJlcV9jYXApOwotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlyZXR1cm4gcmM7CiB9CkBAIC0yMzQ1LDcgKzI0NTQsNyBAQAogCiAJY29udGV4dF9pbml0KCZ0bXBydWxlLT5hdV9jdHh0KTsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCXRtcHJ1bGUtPmF1X3NlcW5vID0gbGF0ZXN0X2dyYW50aW5nOwogCkBAIC0yMzgyLDcgKzI0OTEsNyBAQAogCQlicmVhazsKIAl9CiAKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCiAJaWYgKHJjKSB7CiAJCXNlbGludXhfYXVkaXRfcnVsZV9mcmVlKHRtcHJ1bGUpOwpAQCAtMjQyMCw3ICsyNTI5LDcgQEAKIH0KIAogaW50IHNlbGludXhfYXVkaXRfcnVsZV9tYXRjaCh1MzIgc2lkLCB1MzIgZmllbGQsIHUzMiBvcCwgdm9pZCAqdnJ1bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhdWRpdF9jb250ZXh0ICphY3R4KQorCQkJICAgICBzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYWN0eCkKIHsKIAlzdHJ1Y3QgY29udGV4dCAqY3R4dDsKIAlzdHJ1Y3QgbWxzX2xldmVsICpsZXZlbDsKQEAgLTI0MzMsNyArMjU0Miw3IEBACiAJCXJldHVybiAtRU5PRU5UOwogCX0KIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCWlmIChydWxlLT5hdV9zZXFubyA8IGxhdGVzdF9ncmFudGluZykgewogCQlhdWRpdF9sb2coYWN0eCwgR0ZQX0FUT01JQywgQVVESVRfU0VMSU5VWF9FUlIsCkBAIC0yNTI3LDE0ICsyNjM2LDE0IEBACiAJfQogCiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gbWF0Y2g7CiB9CiAKIHN0YXRpYyBpbnQgKCphdXJ1bGVfY2FsbGJhY2spKHZvaWQpID0gYXVkaXRfdXBkYXRlX2xzbV9ydWxlczsKIAogc3RhdGljIGludCBhdXJ1bGVfYXZjX2NhbGxiYWNrKHUzMiBldmVudCwgdTMyIHNzaWQsIHUzMiB0c2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUxNiBjbGFzcywgdTMyIHBlcm1zLCB1MzIgKnJldGFpbmVkKQorCQkJICAgICAgIHUxNiBjbGFzcywgdTMyIHBlcm1zLCB1MzIgKnJldGFpbmVkKQogewogCWludCBlcnIgPSAwOwogCkBAIC0yNjE1LDcgKzI3MjQsNyBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlpZiAoc2VjYXR0ci0+ZmxhZ3MgJiBORVRMQkxfU0VDQVRUUl9DQUNIRSkgewogCQkqc2lkID0gKih1MzIgKilzZWNhdHRyLT5jYWNoZS0+ZGF0YTsKQEAgLTI2NjAsNyArMjc2OSw3IEBACiAJfQogCiBuZXRsYmxfc2VjYXR0cl90b19zaWRfcmV0dXJuOgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogbmV0bGJsX3NlY2F0dHJfdG9fc2lkX3JldHVybl9jbGVhbnVwOgogCWViaXRtYXBfZGVzdHJveSgmY3R4X25ldy5yYW5nZS5sZXZlbFswXS5jYXQpOwpAQCAtMjY4NSw3ICsyNzk0LDcgQEAKIAlpZiAoIXNzX2luaXRpYWxpemVkKQogCQlyZXR1cm4gMDsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAljdHggPSBzaWR0YWJfc2VhcmNoKCZzaWR0YWIsIHNpZCk7CiAJaWYgKGN0eCA9PSBOVUxMKQogCQlnb3RvIG5ldGxibF9zaWRfdG9fc2VjYXR0cl9mYWlsdXJlOwpAQCAtMjY5NiwxMiArMjgwNSwxMiBAQAogCXJjID0gbWxzX2V4cG9ydF9uZXRsYmxfY2F0KGN0eCwgc2VjYXR0cik7CiAJaWYgKHJjICE9IDApCiAJCWdvdG8gbmV0bGJsX3NpZF90b19zZWNhdHRyX2ZhaWx1cmU7Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCXJldHVybiAwOwogCiBuZXRsYmxfc2lkX3RvX3NlY2F0dHJfZmFpbHVyZToKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KICNlbmRpZiAvKiBDT05GSUdfTkVUTEFCRUwgKi8KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmMgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5jCmluZGV4IDRhNTE2ZmYuLmE4MWRlZDEgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuYwpAQCAtMTQsMTAgKzE0LDYgQEAKICNkZWZpbmUgU0lEVEFCX0hBU0goc2lkKSBcCiAoc2lkICYgU0lEVEFCX0hBU0hfTUFTSykKIAotI2RlZmluZSBJTklUX1NJRFRBQl9MT0NLKHMpIHNwaW5fbG9ja19pbml0KCZzLT5sb2NrKQotI2RlZmluZSBTSURUQUJfTE9DSyhzLCB4KSBzcGluX2xvY2tfaXJxc2F2ZSgmcy0+bG9jaywgeCkKLSNkZWZpbmUgU0lEVEFCX1VOTE9DSyhzLCB4KSBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCB4KQotCiBpbnQgc2lkdGFiX2luaXQoc3RydWN0IHNpZHRhYiAqcykKIHsKIAlpbnQgaTsKQEAgLTMwLDcgKzI2LDcgQEAKIAlzLT5uZWwgPSAwOwogCXMtPm5leHRfc2lkID0gMTsKIAlzLT5zaHV0ZG93biA9IDA7Ci0JSU5JVF9TSURUQUJfTE9DSyhzKTsKKwlzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTg2LDcgKzgyLDcgQEAKIAlyZXR1cm4gcmM7CiB9CiAKLXN0cnVjdCBjb250ZXh0ICpzaWR0YWJfc2VhcmNoKHN0cnVjdCBzaWR0YWIgKnMsIHUzMiBzaWQpCitzdGF0aWMgc3RydWN0IGNvbnRleHQgKnNpZHRhYl9zZWFyY2hfY29yZShzdHJ1Y3Qgc2lkdGFiICpzLCB1MzIgc2lkLCBpbnQgZm9yY2UpCiB7CiAJaW50IGh2YWx1ZTsKIAlzdHJ1Y3Qgc2lkdGFiX25vZGUgKmN1cjsKQEAgLTk5LDcgKzk1LDEwIEBACiAJd2hpbGUgKGN1ciAhPSBOVUxMICYmIHNpZCA+IGN1ci0+c2lkKQogCQljdXIgPSBjdXItPm5leHQ7CiAKLQlpZiAoY3VyID09IE5VTEwgfHwgc2lkICE9IGN1ci0+c2lkKSB7CisJaWYgKGZvcmNlICYmIGN1ciAmJiBzaWQgPT0gY3VyLT5zaWQgJiYgY3VyLT5jb250ZXh0LmxlbikKKwkJcmV0dXJuICZjdXItPmNvbnRleHQ7CisKKwlpZiAoY3VyID09IE5VTEwgfHwgc2lkICE9IGN1ci0+c2lkIHx8IGN1ci0+Y29udGV4dC5sZW4pIHsKIAkJLyogUmVtYXAgaW52YWxpZCBTSURzIHRvIHRoZSB1bmxhYmVsZWQgU0lELiAqLwogCQlzaWQgPSBTRUNJTklUU0lEX1VOTEFCRUxFRDsKIAkJaHZhbHVlID0gU0lEVEFCX0hBU0goc2lkKTsKQEAgLTExMyw2ICsxMTIsMTYgQEAKIAlyZXR1cm4gJmN1ci0+Y29udGV4dDsKIH0KIAorc3RydWN0IGNvbnRleHQgKnNpZHRhYl9zZWFyY2goc3RydWN0IHNpZHRhYiAqcywgdTMyIHNpZCkKK3sKKwlyZXR1cm4gc2lkdGFiX3NlYXJjaF9jb3JlKHMsIHNpZCwgMCk7Cit9CisKK3N0cnVjdCBjb250ZXh0ICpzaWR0YWJfc2VhcmNoX2ZvcmNlKHN0cnVjdCBzaWR0YWIgKnMsIHUzMiBzaWQpCit7CisJcmV0dXJuIHNpZHRhYl9zZWFyY2hfY29yZShzLCBzaWQsIDEpOworfQorCiBpbnQgc2lkdGFiX21hcChzdHJ1Y3Qgc2lkdGFiICpzLAogCSAgICAgICBpbnQgKCphcHBseSkgKHUzMiBzaWQsCiAJCQkgICAgIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0LApAQCAtMTM4LDQzICsxNDcsNiBAQAogCXJldHVybiByYzsKIH0KIAotdm9pZCBzaWR0YWJfbWFwX3JlbW92ZV9vbl9lcnJvcihzdHJ1Y3Qgc2lkdGFiICpzLAotCQkJCWludCAoKmFwcGx5KSAodTMyIHNpZCwKLQkJCQkJICAgICAgc3RydWN0IGNvbnRleHQgKmNvbnRleHQsCi0JCQkJCSAgICAgIHZvaWQgKmFyZ3MpLAotCQkJCXZvaWQgKmFyZ3MpCi17Ci0JaW50IGksIHJldDsKLQlzdHJ1Y3Qgc2lkdGFiX25vZGUgKmxhc3QsICpjdXIsICp0ZW1wOwotCi0JaWYgKCFzKQotCQlyZXR1cm47Ci0KLQlmb3IgKGkgPSAwOyBpIDwgU0lEVEFCX1NJWkU7IGkrKykgewotCQlsYXN0ID0gTlVMTDsKLQkJY3VyID0gcy0+aHRhYmxlW2ldOwotCQl3aGlsZSAoY3VyICE9IE5VTEwpIHsKLQkJCXJldCA9IGFwcGx5KGN1ci0+c2lkLCAmY3VyLT5jb250ZXh0LCBhcmdzKTsKLQkJCWlmIChyZXQpIHsKLQkJCQlpZiAobGFzdCkKLQkJCQkJbGFzdC0+bmV4dCA9IGN1ci0+bmV4dDsKLQkJCQllbHNlCi0JCQkJCXMtPmh0YWJsZVtpXSA9IGN1ci0+bmV4dDsKLQkJCQl0ZW1wID0gY3VyOwotCQkJCWN1ciA9IGN1ci0+bmV4dDsKLQkJCQljb250ZXh0X2Rlc3Ryb3koJnRlbXAtPmNvbnRleHQpOwotCQkJCWtmcmVlKHRlbXApOwotCQkJCXMtPm5lbC0tOwotCQkJfSBlbHNlIHsKLQkJCQlsYXN0ID0gY3VyOwotCQkJCWN1ciA9IGN1ci0+bmV4dDsKLQkJCX0KLQkJfQotCX0KLQotCXJldHVybjsKLX0KLQogc3RhdGljIGlubGluZSB1MzIgc2lkdGFiX3NlYXJjaF9jb250ZXh0KHN0cnVjdCBzaWR0YWIgKnMsCiAJCQkJCQkgIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0KQogewpAQCAtMjA0LDcgKzE3Niw3IEBACiAKIAlzaWQgPSBzaWR0YWJfc2VhcmNoX2NvbnRleHQocywgY29udGV4dCk7CiAJaWYgKCFzaWQpIHsKLQkJU0lEVEFCX0xPQ0socywgZmxhZ3MpOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcy0+bG9jaywgZmxhZ3MpOwogCQkvKiBSZXNjYW4gbm93IHRoYXQgd2UgaG9sZCB0aGUgbG9jay4gKi8KIAkJc2lkID0gc2lkdGFiX3NlYXJjaF9jb250ZXh0KHMsIGNvbnRleHQpOwogCQlpZiAoc2lkKQpAQCAtMjE1LDExICsxODcsMTUgQEAKIAkJCWdvdG8gdW5sb2NrX291dDsKIAkJfQogCQlzaWQgPSBzLT5uZXh0X3NpZCsrOworCQlpZiAoY29udGV4dC0+bGVuKQorCQkJcHJpbnRrKEtFUk5fSU5GTworCQkgICAgICAgIlNFTGludXg6ICBDb250ZXh0ICVzIGlzIG5vdCB2YWxpZCAobGVmdCB1bm1hcHBlZCkuXG4iLAorCQkJICAgICAgIGNvbnRleHQtPnN0cik7CiAJCXJldCA9IHNpZHRhYl9pbnNlcnQocywgc2lkLCBjb250ZXh0KTsKIAkJaWYgKHJldCkKIAkJCXMtPm5leHRfc2lkLS07CiB1bmxvY2tfb3V0OgotCQlTSURUQUJfVU5MT0NLKHMsIGZsYWdzKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcy0+bG9jaywgZmxhZ3MpOwogCX0KIAogCWlmIChyZXQpCkBAIC0yODQsMTkgKzI2MCwxOSBAQAogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlTSURUQUJfTE9DSyhzcmMsIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc3JjLT5sb2NrLCBmbGFncyk7CiAJZHN0LT5odGFibGUgPSBzcmMtPmh0YWJsZTsKIAlkc3QtPm5lbCA9IHNyYy0+bmVsOwogCWRzdC0+bmV4dF9zaWQgPSBzcmMtPm5leHRfc2lkOwogCWRzdC0+c2h1dGRvd24gPSAwOwotCVNJRFRBQl9VTkxPQ0soc3JjLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3JjLT5sb2NrLCBmbGFncyk7CiB9CiAKIHZvaWQgc2lkdGFiX3NodXRkb3duKHN0cnVjdCBzaWR0YWIgKnMpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCVNJRFRBQl9MT0NLKHMsIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcy0+bG9jaywgZmxhZ3MpOwogCXMtPnNodXRkb3duID0gMTsKLQlTSURUQUJfVU5MT0NLKHMsIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7CiB9CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5oIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuaAppbmRleCAyZmU5ZGZhLi42NGVhNWIxIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5oCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmgKQEAgLTMyLDYgKzMyLDcgQEAKIGludCBzaWR0YWJfaW5pdChzdHJ1Y3Qgc2lkdGFiICpzKTsKIGludCBzaWR0YWJfaW5zZXJ0KHN0cnVjdCBzaWR0YWIgKnMsIHUzMiBzaWQsIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0KTsKIHN0cnVjdCBjb250ZXh0ICpzaWR0YWJfc2VhcmNoKHN0cnVjdCBzaWR0YWIgKnMsIHUzMiBzaWQpOworc3RydWN0IGNvbnRleHQgKnNpZHRhYl9zZWFyY2hfZm9yY2Uoc3RydWN0IHNpZHRhYiAqcywgdTMyIHNpZCk7CiAKIGludCBzaWR0YWJfbWFwKHN0cnVjdCBzaWR0YWIgKnMsCiAJICAgICAgIGludCAoKmFwcGx5KSAodTMyIHNpZCwKQEAgLTM5LDEyICs0MCw2IEBACiAJCQkgICAgIHZvaWQgKmFyZ3MpLAogCSAgICAgICB2b2lkICphcmdzKTsKIAotdm9pZCBzaWR0YWJfbWFwX3JlbW92ZV9vbl9lcnJvcihzdHJ1Y3Qgc2lkdGFiICpzLAotCQkJCWludCAoKmFwcGx5KSAodTMyIHNpZCwKLQkJCQkJICAgICAgc3RydWN0IGNvbnRleHQgKmNvbnRleHQsCi0JCQkJCSAgICAgIHZvaWQgKmFyZ3MpLAotCQkJCXZvaWQgKmFyZ3MpOwotCiBpbnQgc2lkdGFiX2NvbnRleHRfdG9fc2lkKHN0cnVjdCBzaWR0YWIgKnMsCiAJCQkgIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0LAogCQkJICB1MzIgKnNpZCk7CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYyBiL3NlY3VyaXR5L3NtYWNrL3NtYWNrX2xzbS5jCmluZGV4IDRhMDkyOTMuLmVlNWE1MWMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NtYWNrL3NtYWNrX2xzbS5jCisrKyBiL3NlY3VyaXR5L3NtYWNrL3NtYWNrX2xzbS5jCkBAIC05NSwxMSArOTUsMTIgQEAKICAqCiAgKiBEbyB0aGUgY2FwYWJpbGl0eSBjaGVja3MsIGFuZCByZXF1aXJlIHJlYWQgYW5kIHdyaXRlLgogICovCi1zdGF0aWMgaW50IHNtYWNrX3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnB0cCwgc3RydWN0IHRhc2tfc3RydWN0ICpjdHApCitzdGF0aWMgaW50IHNtYWNrX3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnB0cCwgc3RydWN0IHRhc2tfc3RydWN0ICpjdHAsCisJCQl1bnNpZ25lZCBpbnQgbW9kZSkKIHsKIAlpbnQgcmM7CiAKLQlyYyA9IGNhcF9wdHJhY2UocHRwLCBjdHApOworCXJjID0gY2FwX3B0cmFjZShwdHAsIGN0cCwgbW9kZSk7CiAJaWYgKHJjICE9IDApCiAJCXJldHVybiByYzsKIApAQCAtMTgyMSwyNyArMTgyMiw2IEBACiAJKnNlY2lkID0gc21hY2tfdG9fc2VjaWQoc21hY2spOwogfQogCi0vKiBtb2R1bGUgc3RhY2tpbmcgb3BlcmF0aW9ucyAqLwotCi0vKioKLSAqIHNtYWNrX3JlZ2lzdGVyX3NlY3VyaXR5IC0gc3RhY2sgY2FwYWJpbGl0eSBtb2R1bGUKLSAqIEBuYW1lOiBtb2R1bGUgbmFtZQotICogQG9wczogbW9kdWxlIG9wZXJhdGlvbnMgLSBpZ25vcmVkCi0gKgotICogQWxsb3cgdGhlIGNhcGFiaWxpdHkgbW9kdWxlIHRvIHJlZ2lzdGVyLgotICovCi1zdGF0aWMgaW50IHNtYWNrX3JlZ2lzdGVyX3NlY3VyaXR5KGNvbnN0IGNoYXIgKm5hbWUsCi0JCQkJICAgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcykKLXsKLQlpZiAoc3RyY21wKG5hbWUsICJjYXBhYmlsaXR5IikgIT0gMCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlwcmludGsoS0VSTl9JTkZPICIlczogIFJlZ2lzdGVyaW5nIHNlY29uZGFyeSBtb2R1bGUgJXNcbiIsCi0JICAgICAgIF9fZnVuY19fLCBuYW1lKTsKLQotCXJldHVybiAwOwotfQotCiAvKioKICAqIHNtYWNrX2RfaW5zdGFudGlhdGUgLSBNYWtlIHN1cmUgdGhlIGJsb2IgaXMgY29ycmVjdCBvbiBhbiBpbm9kZQogICogQG9wdF9kZW50cnk6IHVudXNlZApAQCAtMjY3Miw4ICsyNjUyLDYgQEAKIAkubmV0bGlua19zZW5kID0JCQljYXBfbmV0bGlua19zZW5kLAogCS5uZXRsaW5rX3JlY3YgPSAJCWNhcF9uZXRsaW5rX3JlY3YsCiAKLQkucmVnaXN0ZXJfc2VjdXJpdHkgPSAJCXNtYWNrX3JlZ2lzdGVyX3NlY3VyaXR5LAotCiAJLmRfaW5zdGFudGlhdGUgPSAJCXNtYWNrX2RfaW5zdGFudGlhdGUsCiAKIAkuZ2V0cHJvY2F0dHIgPSAJCQlzbWFja19nZXRwcm9jYXR0ciwKZGlmZiAtLWdpdCBhL3NvdW5kL0tjb25maWcgYi9zb3VuZC9LY29uZmlnCmluZGV4IDQyNDc0MDYuLmEzN2JlZTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL0tjb25maWcKKysrIGIvc291bmQvS2NvbmZpZwpAQCAtMSwxMSArMSw5IEBACiAjIHNvdW5kL0NvbmZpZy5pbgogIwogCi1tZW51ICJTb3VuZCIKLQlkZXBlbmRzIG9uIEhBU19JT01FTQotCi1jb25maWcgU09VTkQKK21lbnVjb25maWcgU09VTkQKIAl0cmlzdGF0ZSAiU291bmQgY2FyZCBzdXBwb3J0IgorCWRlcGVuZHMgb24gSEFTX0lPTUVNCiAJaGVscAogCSAgSWYgeW91IGhhdmUgYSBzb3VuZCBjYXJkIGluIHlvdXIgY29tcHV0ZXIsIGkuZS4gaWYgaXQgY2FuIHNheSBtb3JlCiAJICB0aGFuIGFuIG9jY2FzaW9uYWwgYmVlcCwgc2F5IFkuICBCZSBzdXJlIHRvIGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvbgpAQCAtMjgsMjIgKzI2LDIyIEBACiAJICBhbmQgcmVhZCA8ZmlsZTpEb2N1bWVudGF0aW9uL3NvdW5kL29zcy9SRUFETUUubW9kdWxlcz47IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNvdW5kY29yZS4KIAoraWYgU09VTkQKKwogc291cmNlICJzb3VuZC9vc3MvZG1hc291bmQvS2NvbmZpZyIKIAogaWYgIU02OEsKIAotbWVudSAiQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlIgotCWRlcGVuZHMgb24gU09VTkQhPW4KLQotY29uZmlnIFNORAorbWVudWNvbmZpZyBTTkQKIAl0cmlzdGF0ZSAiQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlIgotCWRlcGVuZHMgb24gU09VTkQKIAloZWxwCiAJICBTYXkgJ1knIG9yICdNJyB0byBlbmFibGUgQUxTQSAoQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlKSwKIAkgIHRoZSBuZXcgYmFzZSBzb3VuZCBzeXN0ZW0uCiAKIAkgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPGh0dHA6Ly93d3cuYWxzYS1wcm9qZWN0Lm9yZy8+CiAKK2lmIFNORAorCiBzb3VyY2UgInNvdW5kL2NvcmUvS2NvbmZpZyIKIAogc291cmNlICJzb3VuZC9kcml2ZXJzL0tjb25maWciCkBAIC01OCw5ICs1Niw3IEBACiAKIHNvdXJjZSAic291bmQvYXJtL0tjb25maWciCiAKLWlmIFNQSQogc291cmNlICJzb3VuZC9zcGkvS2NvbmZpZyIKLWVuZGlmCiAKIHNvdXJjZSAic291bmQvbWlwcy9LY29uZmlnIgogCkBAIC04MCwyMiArNzYsMjAgQEAKIAogc291cmNlICJzb3VuZC9zb2MvS2NvbmZpZyIKIAotZW5kbWVudQorZW5kaWYgIyBTTkQKIAotbWVudSAiT3BlbiBTb3VuZCBTeXN0ZW0iCi0JZGVwZW5kcyBvbiBTT1VORCE9bgotCi1jb25maWcgU09VTkRfUFJJTUUKK21lbnVjb25maWcgU09VTkRfUFJJTUUKIAl0cmlzdGF0ZSAiT3BlbiBTb3VuZCBTeXN0ZW0gKERFUFJFQ0FURUQpIgotCWRlcGVuZHMgb24gU09VTkQKIAloZWxwCiAJICBTYXkgJ1knIG9yICdNJyB0byBlbmFibGUgT3BlbiBTb3VuZCBTeXN0ZW0gZHJpdmVycy4KIAoraWYgU09VTkRfUFJJTUUKKwogc291cmNlICJzb3VuZC9vc3MvS2NvbmZpZyIKIAotZW5kbWVudQorZW5kaWYgIyBTT1VORF9QUklNRQogCi1lbmRpZgorZW5kaWYgIyAhTTY4SwogCiBjb25maWcgQUM5N19CVVMKIAl0cmlzdGF0ZQpAQCAtMTA1LDQgKzk5LDQgQEAKIAkgIHNvdW5kIGFsdGhvdWdoIHRoZXkncmUgc2hhcmluZyB0aGUgQUM5NyBidXMuIENvbmNlcm5lZCBkcml2ZXJzCiAJICBzaG91bGQgInNlbGVjdCIgdGhpcy4KIAotZW5kbWVudQorZW5kaWYgIyBTT1VORApkaWZmIC0tZ2l0IGEvc291bmQvYW9hL0tjb25maWcgYi9zb3VuZC9hb2EvS2NvbmZpZwppbmRleCA1ZDU4MTNjLi5jMDgxZTE4IDEwMDY0NAotLS0gYS9zb3VuZC9hb2EvS2NvbmZpZworKysgYi9zb3VuZC9hb2EvS2NvbmZpZwpAQCAtMSwxOCArMSwxNyBAQAotbWVudSAiQXBwbGUgT25ib2FyZCBBdWRpbyBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgUFBDX1BNQUMKLQotY29uZmlnIFNORF9BT0EKK21lbnVjb25maWcgU05EX0FPQQogCXRyaXN0YXRlICJBcHBsZSBPbmJvYXJkIEF1ZGlvIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAorCWRlcGVuZHMgb24gUFBDX1BNQUMKIAlzZWxlY3QgU05EX1BDTQogCS0tLWhlbHAtLS0KIAlUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBuZXcgZHJpdmVyIGZvciB0aGUgdmFyaW91cwogCUFwcGxlIE9uYm9hcmQgQXVkaW8gY29tcG9uZW50cy4KIAoraWYgU05EX0FPQQorCiBzb3VyY2UgInNvdW5kL2FvYS9mYWJyaWNzL0tjb25maWciCiAKIHNvdXJjZSAic291bmQvYW9hL2NvZGVjcy9LY29uZmlnIgogCiBzb3VyY2UgInNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnIgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9BT0EKZGlmZiAtLWdpdCBhL3NvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZyBiL3NvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZwppbmRleCBkNWZiZDYwLi44MDhlYjExIDEwMDY0NAotLS0gYS9zb3VuZC9hb2EvY29kZWNzL0tjb25maWcKKysrIGIvc291bmQvYW9hL2NvZGVjcy9LY29uZmlnCkBAIC0xLDYgKzEsNSBAQAogY29uZmlnIFNORF9BT0FfT05ZWAogCXRyaXN0YXRlICJzdXBwb3J0IE9ueXggY2hpcCIKLQlkZXBlbmRzIG9uIFNORF9BT0EKIAlzZWxlY3QgSTJDCiAJc2VsZWN0IEkyQ19QT1dFUk1BQwogCS0tLWhlbHAtLS0KQEAgLTEwLDcgKzksNiBAQAogCiAjY29uZmlnIFNORF9BT0FfVE9QQVoKICMJdHJpc3RhdGUgInN1cHBvcnQgVG9wYXogY2hpcHMiCi0jCWRlcGVuZHMgb24gU05EX0FPQQogIwktLS1oZWxwLS0tCiAjCVRoaXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFRvcGF6IChDUzg0eHgpCiAjCWNvZGVjIGNoaXBzIGZvdW5kIGluIHRoZSBsYXRlc3QgQXBwbGUgbWFjaGluZXMsCkBAIC0xOSw3ICsxNyw2IEBACiAKIGNvbmZpZyBTTkRfQU9BX1RBUwogCXRyaXN0YXRlICJzdXBwb3J0IFRBUyBjaGlwcyIKLQlkZXBlbmRzIG9uIFNORF9BT0EKIAlzZWxlY3QgSTJDCiAJc2VsZWN0IEkyQ19QT1dFUk1BQwogCS0tLWhlbHAtLS0KQEAgLTI5LDcgKzI2LDYgQEAKIAogY29uZmlnIFNORF9BT0FfVE9PTklFCiAJdHJpc3RhdGUgInN1cHBvcnQgVG9vbmllIGNoaXAiCi0JZGVwZW5kcyBvbiBTTkRfQU9BCiAJLS0taGVscC0tLQogCVRoaXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIHRvb25pZSBjb2RlYwogCWZvdW5kIGluIHRoZSBNYWMgTWluaS4gSWYgeW91IGhhdmUgYSBNYWMgTWluaSBhbmQKZGlmZiAtLWdpdCBhL3NvdW5kL2FvYS9mYWJyaWNzL0tjb25maWcgYi9zb3VuZC9hb2EvZmFicmljcy9LY29uZmlnCmluZGV4IDUwZDcwMjEuLjNjYTQ3NWEgMTAwNjQ0Ci0tLSBhL3NvdW5kL2FvYS9mYWJyaWNzL0tjb25maWcKKysrIGIvc291bmQvYW9hL2ZhYnJpY3MvS2NvbmZpZwpAQCAtMSw2ICsxLDUgQEAKIGNvbmZpZyBTTkRfQU9BX0ZBQlJJQ19MQVlPVVQKIAl0cmlzdGF0ZSAibGF5b3V0LWlkIGZhYnJpYyIKLQlkZXBlbmRzIG9uIFNORF9BT0EKIAlzZWxlY3QgU05EX0FPQV9TT1VOREJVUwogCXNlbGVjdCBTTkRfQU9BX1NPVU5EQlVTX0kyUwogCS0tLWhlbHAtLS0KZGlmZiAtLWdpdCBhL3NvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnIGIvc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWcKaW5kZXggNzM2OGI3ZC4uODM5ZDExMyAxMDA2NDQKLS0tIGEvc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWcKKysrIGIvc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWcKQEAgLTEsNiArMSw1IEBACiBjb25maWcgU05EX0FPQV9TT1VOREJVUwogCXRyaXN0YXRlICJBcHBsZSBTb3VuZGJ1cyBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkQKIAlzZWxlY3QgU05EX1BDTQogCS0tLWhlbHAtLS0KIAlUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBnZW5lcmljIGRyaXZlciBmb3IgdGhlIHNvdW5kYnVzCmRpZmYgLS1naXQgYS9zb3VuZC9hcm0vS2NvbmZpZyBiL3NvdW5kL2FybS9LY29uZmlnCmluZGV4IDJlNGE1ZTAuLjM1MWUxOWUgMTAwNjQ0Ci0tLSBhL3NvdW5kL2FybS9LY29uZmlnCisrKyBiL3NvdW5kL2FybS9LY29uZmlnCkBAIC0xLDExICsxLDE5IEBACiAjIEFMU0EgQVJNIGRyaXZlcnMKIAotbWVudSAiQUxTQSBBUk0gZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBBUk0KK21lbnVjb25maWcgU05EX0FSTQorCWJvb2wgIkFSTSBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gQVJNCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBmb3Igc291bmQgZGV2aWNlcyBzcGVjaWZpYyB0byBBUk0gYXJjaGl0ZWN0dXJlcy4KKwkgIERyaXZlcnMgdGhhdCBhcmUgaW1wbGVtZW50ZWQgb24gQVNvQyBjYW4gYmUgZm91bmQgaW4KKwkgICJBTFNBIGZvciBTb0MgYXVkaW8gc3VwcG9ydCIgc2VjdGlvbi4KKworaWYgU05EX0FSTQogCiBjb25maWcgU05EX1NBMTFYWF9VREExMzQxCiAJdHJpc3RhdGUgIlNBMTF4eCBVREExMzQxVFMgZHJpdmVyIChpUGFxIEgzNjAwKSIKLQlkZXBlbmRzIG9uIEFSQ0hfU0ExMTAwICYmIFNORCAmJiBMMworCWRlcGVuZHMgb24gQVJDSF9TQTExMDAgJiYgTDMKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIGhlcmUgaWYgeW91IGhhdmUgYSBDb21wYXEgaVBhcSBIM3gwMCBoYW5kaGVsZCBjb21wdXRlcgpAQCAtMTYsNyArMjQsNyBAQAogCiBjb25maWcgU05EX0FSTUFBQ0kKIAl0cmlzdGF0ZSAiQVJNIFByaW1lQ2VsbCBQTDA0MSBBQyBMaW5rIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQgJiYgQVJNX0FNQkEKKwlkZXBlbmRzIG9uIEFSTV9BTUJBCiAJc2VsZWN0IFNORF9QQ00KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIApAQCAtMjYsMTEgKzM0LDEyIEBACiAKIGNvbmZpZyBTTkRfUFhBMlhYX0FDOTcKIAl0cmlzdGF0ZSAiQUM5NyBkcml2ZXIgZm9yIHRoZSBJbnRlbCBQWEEyeHggY2hpcCIKLQlkZXBlbmRzIG9uIEFSQ0hfUFhBICYmIFNORAorCWRlcGVuZHMgb24gQVJDSF9QWEEKIAlzZWxlY3QgU05EX1BYQTJYWF9QQ00KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBvciBNIGlmIHlvdSB3YW50IHRvIHN1cHBvcnQgYW55IEFDOTcgY29kZWMgYXR0YWNoZWQgdG8KIAkgIHRoZSBQWEEyeHggQUM5NyBpbnRlcmZhY2UuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX0FSTQorCmRpZmYgLS1naXQgYS9zb3VuZC9hcm0vc2ExMXh4LXVkYTEzNDEuYyBiL3NvdW5kL2FybS9zYTExeHgtdWRhMTM0MS5jCmluZGV4IDBlZmYzM2MuLmZhZWRkZjMgMTAwNjQ0Ci0tLSBhL3NvdW5kL2FybS9zYTExeHgtdWRhMTM0MS5jCisrKyBiL3NvdW5kL2FybS9zYTExeHgtdWRhMTM0MS5jCkBAIC0yMSw4ICsyMSw2IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlZCBIQUwgbGF5ZXIgKHBhdGNoZXMgZnJvbSBCcmlhbikKICAqLwogCi0vKiAkSWQ6IHNhMTF4eC11ZGExMzQxLmMsdiAxLjI3IDIwMDUvMTIvMDcgMDk6MTM6NDIgY2xhZGlzY2ggRXhwICQgKi8KLQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgogKiBUbyB1bmRlcnN0YW5kIHdoYXQgQWxzYSBEcml2ZXJzIHNob3VsZCBiZSBkb2luZyBsb29rIGF0ICJXcml0aW5nIGFuIEFsc2EgRHJpdmVyIiBieSBUYWthc2hpIEl3YWkKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvS2NvbmZpZyBiL3NvdW5kL2NvcmUvS2NvbmZpZwppbmRleCBhOGQ3MWM2Li4zMzVkNDVlIDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL0tjb25maWcKKysrIGIvc291bmQvY29yZS9LY29uZmlnCkBAIC0xLDI0ICsxLDE5IEBACiAjIEFMU0Egc291bmRjYXJkLWNvbmZpZ3VyYXRpb24KIGNvbmZpZyBTTkRfVElNRVIKIAl0cmlzdGF0ZQotCWRlcGVuZHMgb24gU05ECiAKIGNvbmZpZyBTTkRfUENNCiAJdHJpc3RhdGUKIAlzZWxlY3QgU05EX1RJTUVSCi0JZGVwZW5kcyBvbiBTTkQKIAogY29uZmlnIFNORF9IV0RFUAogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkQKIAogY29uZmlnIFNORF9SQVdNSURJCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORAogCiBjb25maWcgU05EX1NFUVVFTkNFUgogCXRyaXN0YXRlICJTZXF1ZW5jZXIgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfVElNRVIKIAloZWxwCiAJICBTYXkgWSBvciBNIHRvIGVuYWJsZSBNSURJIHNlcXVlbmNlciBhbmQgcm91dGVyIHN1cHBvcnQuICBUaGlzCkBAIC00NCwxMSArMzksOSBAQAogCiBjb25maWcgU05EX09TU0VNVUwKIAlib29sCi0JZGVwZW5kcyBvbiBTTkQKIAogY29uZmlnIFNORF9NSVhFUl9PU1MKIAl0cmlzdGF0ZSAiT1NTIE1peGVyIEFQSSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1NTRU1VTAogCWhlbHAKIAkgIFRvIGVuYWJsZSBPU1MgbWl4ZXIgQVBJIGVtdWxhdGlvbiAoL2Rldi9taXhlciopLCBzYXkgWSBoZXJlCkBAIC02MSw3ICs1NCw2IEBACiAKIGNvbmZpZyBTTkRfUENNX09TUwogCXRyaXN0YXRlICJPU1MgUENNIChkaWdpdGFsIGF1ZGlvKSBBUEkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09TU0VNVUwKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTg0LDcgKzc2LDcgQEAKIAogY29uZmlnIFNORF9TRVFVRU5DRVJfT1NTCiAJYm9vbCAiT1NTIFNlcXVlbmNlciBBUEkiCi0JZGVwZW5kcyBvbiBTTkQgJiYgU05EX1NFUVVFTkNFUgorCWRlcGVuZHMgb24gU05EX1NFUVVFTkNFUgogCXNlbGVjdCBTTkRfT1NTRU1VTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIE9TUyBzZXF1ZW5jZXIgZW11bGF0aW9uIChib3RoCkBAIC05OCw3ICs5MCw3IEBACiAKIGNvbmZpZyBTTkRfUlRDVElNRVIKIAl0cmlzdGF0ZSAiUlRDIFRpbWVyIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUlRDCisJZGVwZW5kcyBvbiBSVEMKIAlzZWxlY3QgU05EX1RJTUVSCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBlbmFibGUgUlRDIHRpbWVyIHN1cHBvcnQgZm9yIEFMU0EuICBBTFNBIHVzZXMKQEAgLTEyMyw3ICsxMTUsNiBAQAogCiBjb25maWcgU05EX0RZTkFNSUNfTUlOT1JTCiAJYm9vbCAiRHluYW1pYyBkZXZpY2UgZmlsZSBtaW5vciBudW1iZXJzIgotCWRlcGVuZHMgb24gU05ECiAJaGVscAogCSAgSWYgeW91IHNheSBZIGhlcmUsIHRoZSBtaW5vciBudW1iZXJzIG9mIEFMU0EgZGV2aWNlIGZpbGVzIGluCiAJICAvZGV2L3NuZC8gYXJlIGFsbG9jYXRlZCBkeW5hbWljYWxseS4gIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCkBAIC0xMzQsNyArMTI1LDYgQEAKIAogY29uZmlnIFNORF9TVVBQT1JUX09MRF9BUEkKIAlib29sICJTdXBwb3J0IG9sZCBBTFNBIEFQSSIKLQlkZXBlbmRzIG9uIFNORAogCWRlZmF1bHQgeQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gc3VwcG9ydCB0aGUgb2Jzb2xldGUgQUxTQSBQQ00gQVBJICh2ZXIuMC45LjAgcmMzCkBAIC0xNDIsNyArMTMyLDcgQEAKIAogY29uZmlnIFNORF9WRVJCT1NFX1BST0NGUwogCWJvb2wgIlZlcmJvc2UgcHJvY2ZzIGNvbnRlbnRzIgotCWRlcGVuZHMgb24gU05EICYmIFBST0NfRlMKKwlkZXBlbmRzIG9uIFBST0NfRlMKIAlkZWZhdWx0IHkKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgY29kZSBmb3IgdmVyYm9zZSBwcm9jZnMgY29udGVudHMgKHByb3ZpZGVzCkBAIC0xNTEsNyArMTQxLDYgQEAKIAogY29uZmlnIFNORF9WRVJCT1NFX1BSSU5USwogCWJvb2wgIlZlcmJvc2UgcHJpbnRrIgotCWRlcGVuZHMgb24gU05ECiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBlbmFibGUgdmVyYm9zZSBsb2cgbWVzc2FnZXMuICBUaGVzZSBtZXNzYWdlcwogCSAgd2lsbCBoZWxwIHRvIGlkZW50aWZ5IHNvdXJjZSBmaWxlIGFuZCBwb3NpdGlvbiBjb250YWluaW5nCkBAIC0xNjEsMTYgKzE1MCwxNyBAQAogCiBjb25maWcgU05EX0RFQlVHCiAJYm9vbCAiRGVidWciCi0JZGVwZW5kcyBvbiBTTkQKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGVuYWJsZSBBTFNBIGRlYnVnIGNvZGUuCiAKLWNvbmZpZyBTTkRfREVCVUdfREVURUNUCi0JYm9vbCAiRGVidWcgZGV0ZWN0aW9uIgorY29uZmlnIFNORF9ERUJVR19WRVJCT1NFCisJYm9vbCAiTW9yZSB2ZXJib3NlIGRlYnVnIgogCWRlcGVuZHMgb24gU05EX0RFQlVHCiAJaGVscAotCSAgU2F5IFkgaGVyZSB0byBlbmFibGUgZXh0cmEtdmVyYm9zZSBsb2cgbWVzc2FnZXMgcHJpbnRlZCB3aGVuCi0JICBkZXRlY3RpbmcgZGV2aWNlcy4KKwkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIGV4dHJhLXZlcmJvc2UgZGVidWdnaW5nIG1lc3NhZ2VzLgorCSAgCisJICBMZXQgbWUgcmVwZWF0OiBpdCBlbmFibGVzIEVYVFJBLVZFUkJPU0UgREVCVUdHSU5HIG1lc3NhZ2VzLgorCSAgU28sIHNheSBZIG9ubHkgaWYgeW91IGFyZSByZWFkeSB0byBiZSBhbm5veWVkLgogCiBjb25maWcgU05EX1BDTV9YUlVOX0RFQlVHCiAJYm9vbCAiRW5hYmxlIFBDTSByaW5nIGJ1ZmZlciBvdmVycnVuL3VuZGVycnVuIGRlYnVnZ2luZyIKQEAgLTE4NCw0ICsxNzQsMyBAQAogCiBjb25maWcgU05EX1ZNQVNURVIKIAlib29sCi0JZGVwZW5kcyBvbiBTTkQKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvY29udHJvbC5jIGIvc291bmQvY29yZS9jb250cm9sLmMKaW5kZXggMDFhMWE1YS4uMjgxYjJlMiAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9jb250cm9sLmMKKysrIGIvc291bmQvY29yZS9jb250cm9sLmMKQEAgLTY4NCw3ICs2ODQsOCBAQAogCXJldHVybiByZXN1bHQ7CiB9CiAKLWludCBzbmRfY3RsX2VsZW1fcmVhZChzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKmNvbnRyb2wpCitzdGF0aWMgaW50IHNuZF9jdGxfZWxlbV9yZWFkKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKKwkJCSAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqY29udHJvbCkKIHsKIAlzdHJ1Y3Qgc25kX2tjb250cm9sICprY3RsOwogCXN0cnVjdCBzbmRfa2NvbnRyb2xfdm9sYXRpbGUgKnZkOwpAQCAtNzM0LDggKzczNSw4IEBACiAJcmV0dXJuIHJlc3VsdDsKIH0KIAotaW50IHNuZF9jdGxfZWxlbV93cml0ZShzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfY3RsX2ZpbGUgKmZpbGUsCi0JCSAgICAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICpjb250cm9sKQorc3RhdGljIGludCBzbmRfY3RsX2VsZW1fd3JpdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2N0bF9maWxlICpmaWxlLAorCQkJICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqY29udHJvbCkKIHsKIAlzdHJ1Y3Qgc25kX2tjb250cm9sICprY3RsOwogCXN0cnVjdCBzbmRfa2NvbnRyb2xfdm9sYXRpbGUgKnZkOwpkaWZmIC0tZ2l0IGEvc291bmQvY29yZS9pbml0LmMgYi9zb3VuZC9jb3JlL2luaXQuYwppbmRleCBhYzA1NzM0Li41YzI1NGQ0IDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL2luaXQuYworKysgYi9zb3VuZC9jb3JlL2luaXQuYwpAQCAtNDYsMTcgKzQ2LDI0IEBACiBtb2R1bGVfcGFyYW1fYXJyYXkoc2xvdHMsIGNoYXJwLCBOVUxMLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0Moc2xvdHMsICJNb2R1bGUgbmFtZXMgYXNzaWduZWQgdG8gdGhlIHNsb3RzLiIpOwogCi0vKiByZXR1cm4gbm9uLXplcm8gaWYgdGhlIGdpdmVuIGluZGV4IGlzIGFscmVhZHkgcmVzZXJ2ZWQgZm9yIGFub3RoZXIKKy8qIHJldHVybiBub24temVybyBpZiB0aGUgZ2l2ZW4gaW5kZXggaXMgcmVzZXJ2ZWQgZm9yIHRoZSBnaXZlbgogICogbW9kdWxlIHZpYSBzbG90cyBvcHRpb24KICAqLwotc3RhdGljIGludCBtb2R1bGVfc2xvdF9taXNtYXRjaChzdHJ1Y3QgbW9kdWxlICptb2R1bGUsIGludCBpZHgpCitzdGF0aWMgaW50IG1vZHVsZV9zbG90X21hdGNoKHN0cnVjdCBtb2R1bGUgKm1vZHVsZSwgaW50IGlkeCkKIHsKKwlpbnQgbWF0Y2ggPSAxOwogI2lmZGVmIE1PRFVMRQotCWNoYXIgKnMxLCAqczI7CisJY29uc3QgY2hhciAqczEsICpzMjsKKwogCWlmICghbW9kdWxlIHx8ICFtb2R1bGUtPm5hbWUgfHwgIXNsb3RzW2lkeF0pCiAJCXJldHVybiAwOwotCXMxID0gc2xvdHNbaWR4XTsKLQlzMiA9IG1vZHVsZS0+bmFtZTsKKworCXMxID0gbW9kdWxlLT5uYW1lOworCXMyID0gc2xvdHNbaWR4XTsKKwlpZiAoKnMyID09ICchJykgeworCQltYXRjaCA9IDA7IC8qIG5lZ2F0aXZlIG1hdGNoICovCisJCXMyKys7CisJfQogCS8qIGNvbXBhcmUgbW9kdWxlIG5hbWUgc3RyaW5ncwogCSAqIGh5cGhlbnMgYXJlIGhhbmRsZWQgYXMgZXF1aXZhbGVudCB3aXRoIHVuZGVyc2NvcmUKIAkgKi8KQEAgLTY4LDEyICs3NSwxMiBAQAogCQlpZiAoYzIgPT0gJy0nKQogCQkJYzIgPSAnXyc7CiAJCWlmIChjMSAhPSBjMikKLQkJCXJldHVybiAxOworCQkJcmV0dXJuICFtYXRjaDsKIAkJaWYgKCFjMSkKIAkJCWJyZWFrOwogCX0KLSNlbmRpZgotCXJldHVybiAwOworI2VuZGlmIC8qIE1PRFVMRSAqLworCXJldHVybiBtYXRjaDsKIH0KIAogI2lmIGRlZmluZWQoQ09ORklHX1NORF9NSVhFUl9PU1MpIHx8IGRlZmluZWQoQ09ORklHX1NORF9NSVhFUl9PU1NfTU9EVUxFKQpAQCAtMTI5LDcgKzEzNiw3IEBACiAJCQkgc3RydWN0IG1vZHVsZSAqbW9kdWxlLCBpbnQgZXh0cmFfc2l6ZSkKIHsKIAlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7Ci0JaW50IGVycjsKKwlpbnQgZXJyLCBpZHgyOwogCiAJaWYgKGV4dHJhX3NpemUgPCAwKQogCQlleHRyYV9zaXplID0gMDsKQEAgLTE0NCwzNSArMTUxLDQxIEBACiAJZXJyID0gMDsKIAltdXRleF9sb2NrKCZzbmRfY2FyZF9tdXRleCk7CiAJaWYgKGlkeCA8IDApIHsKLQkJaW50IGlkeDI7CiAJCWZvciAoaWR4MiA9IDA7IGlkeDIgPCBTTkRSVl9DQVJEUzsgaWR4MisrKQogCQkJLyogaWR4ID09IC0xID09IDB4ZmZmZiBtZWFuczogdGFrZSBhbnkgZnJlZSBzbG90ICovCiAJCQlpZiAofnNuZF9jYXJkc19sb2NrICYgaWR4ICYgMTw8aWR4MikgewotCQkJCWlmIChtb2R1bGVfc2xvdF9taXNtYXRjaChtb2R1bGUsIGlkeDIpKQotCQkJCQljb250aW51ZTsKLQkJCQlpZHggPSBpZHgyOwotCQkJCWlmIChpZHggPj0gc25kX2VjYXJkc19saW1pdCkKLQkJCQkJc25kX2VjYXJkc19saW1pdCA9IGlkeCArIDE7Ci0JCQkJYnJlYWs7CisJCQkJaWYgKG1vZHVsZV9zbG90X21hdGNoKG1vZHVsZSwgaWR4MikpIHsKKwkJCQkJaWR4ID0gaWR4MjsKKwkJCQkJYnJlYWs7CisJCQkJfQogCQkJfQotCX0gZWxzZSB7Ci0JCSBpZiAoaWR4IDwgc25kX2VjYXJkc19saW1pdCkgewotCQkJaWYgKHNuZF9jYXJkc19sb2NrICYgKDEgPDwgaWR4KSkKLQkJCQllcnIgPSAtRUJVU1k7CS8qIGludmFsaWQgKi8KLQkJfSBlbHNlIHsKLQkJCWlmIChpZHggPCBTTkRSVl9DQVJEUykKLQkJCQlzbmRfZWNhcmRzX2xpbWl0ID0gaWR4ICsgMTsgLyogaW5jcmVhc2UgdGhlIGxpbWl0ICovCi0JCQllbHNlCi0JCQkJZXJyID0gLUVOT0RFVjsKLQkJfQogCX0KLQlpZiAoaWR4IDwgMCB8fCBlcnIgPCAwKSB7CisJaWYgKGlkeCA8IDApIHsKKwkJZm9yIChpZHgyID0gMDsgaWR4MiA8IFNORFJWX0NBUkRTOyBpZHgyKyspCisJCQkvKiBpZHggPT0gLTEgPT0gMHhmZmZmIG1lYW5zOiB0YWtlIGFueSBmcmVlIHNsb3QgKi8KKwkJCWlmICh+c25kX2NhcmRzX2xvY2sgJiBpZHggJiAxPDxpZHgyKSB7CisJCQkJaWYgKCFzbG90c1tpZHgyXSB8fCAhKnNsb3RzW2lkeDJdKSB7CisJCQkJCWlkeCA9IGlkeDI7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwl9CisJaWYgKGlkeCA8IDApCisJCWVyciA9IC1FTk9ERVY7CisJZWxzZSBpZiAoaWR4IDwgc25kX2VjYXJkc19saW1pdCkgeworCQlpZiAoc25kX2NhcmRzX2xvY2sgJiAoMSA8PCBpZHgpKQorCQkJZXJyID0gLUVCVVNZOwkvKiBpbnZhbGlkICovCisJfSBlbHNlIGlmIChpZHggPj0gU05EUlZfQ0FSRFMpCisJCWVyciA9IC1FTk9ERVY7CisJaWYgKGVyciA8IDApIHsKIAkJbXV0ZXhfdW5sb2NrKCZzbmRfY2FyZF9tdXRleCk7CiAJCXNuZF9wcmludGsoS0VSTl9FUlIgImNhbm5vdCBmaW5kIHRoZSBzbG90IGZvciBpbmRleCAlZCAocmFuZ2UgMC0laSksIGVycm9yOiAlZFxuIiwKIAkJCSBpZHgsIHNuZF9lY2FyZHNfbGltaXQgLSAxLCBlcnIpOwogCQlnb3RvIF9fZXJyb3I7CiAJfQogCXNuZF9jYXJkc19sb2NrIHw9IDEgPDwgaWR4OwkJLyogbG9jayBpdCAqLworCWlmIChpZHggPj0gc25kX2VjYXJkc19saW1pdCkKKwkJc25kX2VjYXJkc19saW1pdCA9IGlkeCArIDE7IC8qIGluY3JlYXNlIHRoZSBsaW1pdCAqLwogCW11dGV4X3VubG9jaygmc25kX2NhcmRfbXV0ZXgpOwogCWNhcmQtPm51bWJlciA9IGlkeDsKIAljYXJkLT5tb2R1bGUgPSBtb2R1bGU7CmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL21lbWFsbG9jLmMgYi9zb3VuZC9jb3JlL21lbWFsbG9jLmMKaW5kZXggMjNiN2JjMC4uZjVkNmQ4ZCAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9tZW1hbGxvYy5jCisrKyBiL3NvdW5kL2NvcmUvbWVtYWxsb2MuYwpAQCAtODAsNjggKzgwLDYgQEAKICNlbmRpZgogCiAvKgotICogIEhhY2tzCi0gKi8KLQotI2lmIGRlZmluZWQoX19pMzg2X18pCi0vKgotICogQSBoYWNrIHRvIGFsbG9jYXRlIGxhcmdlIGJ1ZmZlcnMgdmlhIGRtYV9hbGxvY19jb2hlcmVudCgpCi0gKgotICogc2luY2UgZG1hX2FsbG9jX2NvaGVyZW50IGFsd2F5cyB0cmllcyBHRlBfRE1BIHdoZW4gdGhlIHJlcXVlc3RlZAotICogcGNpIG1lbW9yeSByZWdpb24gaXMgYmVsb3cgMzJiaXQsIGl0IGhhcHBlbnMgcXVpdGUgb2Z0ZW4gdGhhdCBldmVuCi0gKiAyIG9yZGVyIG9mIHBhZ2VzIGNhbm5vdCBiZSBhbGxvY2F0ZWQuCi0gKgotICogc28gaW4gdGhlIGZvbGxvd2luZywgd2UgYWxsb2NhdGUgYXQgZmlyc3Qgd2l0aG91dCBkbWFfbWFzaywgc28gdGhhdAotICogYWxsb2NhdGlvbiB3aWxsIGJlIGRvbmUgd2l0aG91dCBHRlBfRE1BLiAgaWYgdGhlIGFyZWEgZG9lc24ndCBtYXRjaAotICogd2l0aCB0aGUgcmVxdWVzdGVkIHJlZ2lvbiwgdGhlbiByZWFsbG9hdGUgd2l0aCB0aGUgb3JpZ2luYWwgZG1hX21hc2sKLSAqIGFnYWluLgotICoKLSAqIFJlYWxseSwgd2Ugd2FudCB0byBtb3ZlIHRoaXMgdHlwZSBvZiB0aGluZyBpbnRvIGRtYV9hbGxvY19jb2hlcmVudCgpCi0gKiBzbyBkbWFfbWFzayBkb2Vzbid0IGhhdmUgdG8gYmUgbWVzc2VkIHdpdGguCi0gKi8KLQotc3RhdGljIHZvaWQgKnNuZF9kbWFfaGFja19hbGxvY19jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAotCQkJCQkgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSwKLQkJCQkJIGdmcF90IGZsYWdzKQotewotCXZvaWQgKnJldDsKLQl1NjQgZG1hX21hc2ssIGNvaGVyZW50X2RtYV9tYXNrOwotCi0JaWYgKGRldiA9PSBOVUxMIHx8ICFkZXYtPmRtYV9tYXNrKQotCQlyZXR1cm4gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MpOwotCWRtYV9tYXNrID0gKmRldi0+ZG1hX21hc2s7Ci0JY29oZXJlbnRfZG1hX21hc2sgPSBkZXYtPmNvaGVyZW50X2RtYV9tYXNrOwotCSpkZXYtPmRtYV9tYXNrID0gMHhmZmZmZmZmZjsgCS8qIGRvIHdpdGhvdXQgbWFza2luZyAqLwotCWRldi0+Y29oZXJlbnRfZG1hX21hc2sgPSAweGZmZmZmZmZmOyAJLyogZG8gd2l0aG91dCBtYXNraW5nICovCi0JcmV0ID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MpOwotCSpkZXYtPmRtYV9tYXNrID0gZG1hX21hc2s7CS8qIHJlc3RvcmUgKi8KLQlkZXYtPmNvaGVyZW50X2RtYV9tYXNrID0gY29oZXJlbnRfZG1hX21hc2s7CS8qIHJlc3RvcmUgKi8KLQlpZiAocmV0KSB7Ci0JCS8qIG9idGFpbmVkIGFkZHJlc3MgaXMgb3V0IG9mIHJhbmdlPyAqLwotCQlpZiAoKCh1bnNpZ25lZCBsb25nKSpkbWFfaGFuZGxlICsgc2l6ZSAtIDEpICYgfmRtYV9tYXNrKSB7Ci0JCQkvKiByZWFsbG9jYXRlIHdpdGggdGhlIHByb3BlciBtYXNrICovCi0JCQlkbWFfZnJlZV9jb2hlcmVudChkZXYsIHNpemUsIHJldCwgKmRtYV9oYW5kbGUpOwotCQkJcmV0ID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MpOwotCQl9Ci0JfSBlbHNlIHsKLQkJLyogd2lzaCB0byBzdWNjZXNzIG5vdyB3aXRoIHRoZSBwcm9wZXIgbWFzay4uLiAqLwotCQlpZiAoZG1hX21hc2sgIT0gMHhmZmZmZmZmZlVMKSB7Ci0JCQkvKiBhbGxvY2F0aW9uIHdpdGggR0ZQX0FUT01JQyB0byBhdm9pZCB0aGUgbG9uZyBzdGFsbCAqLwotCQkJZmxhZ3MgJj0gfkdGUF9LRVJORUw7Ci0JCQlmbGFncyB8PSBHRlBfQVRPTUlDOwotCQkJcmV0ID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MpOwotCQl9Ci0JfQotCXJldHVybiByZXQ7Ci19Ci0KLS8qIHJlZGVmaW5lIGRtYV9hbGxvY19jb2hlcmVudCBmb3Igc29tZSBhcmNoaXRlY3R1cmVzICovCi0jdW5kZWYgZG1hX2FsbG9jX2NvaGVyZW50Ci0jZGVmaW5lIGRtYV9hbGxvY19jb2hlcmVudCBzbmRfZG1hX2hhY2tfYWxsb2NfY29oZXJlbnQKLQotI2VuZGlmIC8qIGFyY2ggKi8KLQotLyoKICAqCiAgKiAgR2VuZXJpYyBtZW1vcnkgYWxsb2NhdG9ycwogICoKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvcGNtX25hdGl2ZS5jIGIvc291bmQvY29yZS9wY21fbmF0aXZlLmMKaW5kZXggNjFmNWQ0Mi4uYzQ5YjlkOSAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9wY21fbmF0aXZlLmMKKysrIGIvc291bmQvY29yZS9wY21fbmF0aXZlLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcW9zX3BhcmFtcy5oPgogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgpAQCAtMzI0OSwxNCArMzI1MCwxNyBAQAogCXN0cnVjdCBzbmRfcGNtX2ZpbGUgKiBwY21fZmlsZTsKIAlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbTsKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lOwotCWludCBlcnI7CisJaW50IGVyciA9IC1FTlhJTzsKIAorCWxvY2tfa2VybmVsKCk7CiAJcGNtX2ZpbGUgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJc3Vic3RyZWFtID0gcGNtX2ZpbGUtPnN1YnN0cmVhbTsKLQlzbmRfYXNzZXJ0KHN1YnN0cmVhbSAhPSBOVUxMLCByZXR1cm4gLUVOWElPKTsKKwlzbmRfYXNzZXJ0KHN1YnN0cmVhbSAhPSBOVUxMLCBnb3RvIG91dCk7CiAJcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAogCWVyciA9IGZhc3luY19oZWxwZXIoZmQsIGZpbGUsIG9uLCAmcnVudGltZS0+ZmFzeW5jKTsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJaWYgKGVyciA8IDApCiAJCXJldHVybiBlcnI7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3NlcS9zZXFfY2xpZW50bWdyLmMgYi9zb3VuZC9jb3JlL3NlcS9zZXFfY2xpZW50bWdyLmMKaW5kZXggNDdjZmE1MS4uN2ExNTQ1ZCAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9zZXEvc2VxX2NsaWVudG1nci5jCisrKyBiL3NvdW5kL2NvcmUvc2VxL3NlcV9jbGllbnRtZ3IuYwpAQCAtMTQ4LDcgKzE0OCw3IEBACiAJCXJldHVybiBOVUxMOwogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbGllbnRzX2xvY2ssIGZsYWdzKTsKLSNpZmRlZiBDT05GSUdfS01PRAorI2lmZGVmIENPTkZJR19NT0RVTEVTCiAJaWYgKCFpbl9pbnRlcnJ1cHQoKSkgewogCQlzdGF0aWMgY2hhciBjbGllbnRfcmVxdWVzdGVkW1NORFJWX1NFUV9HTE9CQUxfQ0xJRU5UU107CiAJCXN0YXRpYyBjaGFyIGNhcmRfcmVxdWVzdGVkW1NORFJWX0NBUkRTXTsKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvc2VxL3NlcV9kZXZpY2UuYyBiL3NvdW5kL2NvcmUvc2VxL3NlcV9kZXZpY2UuYwppbmRleCAyZjAwYWQyLi4wNTQxMGU1IDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL3NlcS9zZXFfZGV2aWNlLmMKKysrIGIvc291bmQvY29yZS9zZXEvc2VxX2RldmljZS5jCkBAIC0xMjQsNyArMTI0LDcgQEAKICAqIGxvYWQgYWxsIHJlZ2lzdGVyZWQgZHJpdmVycyAoY2FsbGVkIGZyb20gc2VxX2NsaWVudG1nci5jKQogICovCiAKLSNpZmRlZiBDT05GSUdfS01PRAorI2lmZGVmIENPTkZJR19NT0RVTEVTCiAvKiBhdm9pZCBhdXRvLWxvYWRpbmcgZHVyaW5nIG1vZHVsZV9pbml0KCkgKi8KIHN0YXRpYyBpbnQgc25kX3NlcV9pbl9pbml0Owogdm9pZCBzbmRfc2VxX2F1dG9sb2FkX2xvY2sodm9pZCkKQEAgLTE0MCw3ICsxNDAsNyBAQAogCiB2b2lkIHNuZF9zZXFfZGV2aWNlX2xvYWRfZHJpdmVycyh2b2lkKQogewotI2lmZGVmIENPTkZJR19LTU9ECisjaWZkZWYgQ09ORklHX01PRFVMRVMKIAlzdHJ1Y3Qgb3BzX2xpc3QgKm9wczsKIAogCS8qIENhbGxpbmcgcmVxdWVzdF9tb2R1bGUgZHVyaW5nIG1vZHVsZV9pbml0KCkKQEAgLTU2Niw3ICs1NjYsNSBAQAogRVhQT1JUX1NZTUJPTChzbmRfc2VxX2RldmljZV9uZXcpOwogRVhQT1JUX1NZTUJPTChzbmRfc2VxX2RldmljZV9yZWdpc3Rlcl9kcml2ZXIpOwogRVhQT1JUX1NZTUJPTChzbmRfc2VxX2RldmljZV91bnJlZ2lzdGVyX2RyaXZlcik7Ci0jaWZkZWYgQ09ORklHX0tNT0QKIEVYUE9SVF9TWU1CT0woc25kX3NlcV9hdXRvbG9hZF9sb2NrKTsKIEVYUE9SVF9TWU1CT0woc25kX3NlcV9hdXRvbG9hZF91bmxvY2spOwotI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3NvdW5kLmMgYi9zb3VuZC9jb3JlL3NvdW5kLmMKaW5kZXggNmM4YWI0OC4uMTAwM2FlMyAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9zb3VuZC5jCisrKyBiL3NvdW5kL2NvcmUvc291bmQuYwpAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgpAQCAtNjAsMTQgKzYxLDE0IEBACiBzdGF0aWMgc3RydWN0IHNuZF9taW5vciAqc25kX21pbm9yc1tTTkRSVl9PU19NSU5PUlNdOwogc3RhdGljIERFRklORV9NVVRFWChzb3VuZF9tdXRleCk7CiAKLSNpZmRlZiBDT05GSUdfS01PRAorI2lmZGVmIENPTkZJR19NT0RVTEVTCiAKIC8qKgogICogc25kX3JlcXVlc3RfY2FyZCAtIHRyeSB0byBsb2FkIHRoZSBjYXJkIG1vZHVsZQogICogQGNhcmQ6IHRoZSBjYXJkIG51bWJlcgogICoKICAqIFRyaWVzIHRvIGxvYWQgdGhlIG1vZHVsZSAic25kLWNhcmQtWCIgZm9yIHRoZSBnaXZlbiBjYXJkIG51bWJlcgotICogdmlhIEtNT0QuICBSZXR1cm5zIGltbWVkaWF0ZWx5IGlmIGFscmVhZHkgbG9hZGVkLgorICogdmlhIHJlcXVlc3RfbW9kdWxlLiAgUmV0dXJucyBpbW1lZGlhdGVseSBpZiBhbHJlYWR5IGxvYWRlZC4KICAqLwogdm9pZCBzbmRfcmVxdWVzdF9jYXJkKGludCBjYXJkKQogewpAQCAtOTIsNyArOTMsNyBAQAogCXJlcXVlc3RfbW9kdWxlKHN0cik7CiB9CiAKLSNlbmRpZgkJCQkvKiByZXF1ZXN0X21vZHVsZSBzdXBwb3J0ICovCisjZW5kaWYJLyogbW9kdWxhciBrZXJuZWwgKi8KIAogLyoqCiAgKiBzbmRfbG9va3VwX21pbm9yX2RhdGEgLSBnZXQgdXNlciBkYXRhIG9mIGEgcmVnaXN0ZXJlZCBkZXZpY2UKQEAgLTEyMSw3ICsxMjIsNyBAQAogCiBFWFBPUlRfU1lNQk9MKHNuZF9sb29rdXBfbWlub3JfZGF0YSk7CiAKLXN0YXRpYyBpbnQgc25kX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCitzdGF0aWMgaW50IF9fc25kX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJdW5zaWduZWQgaW50IG1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlzdHJ1Y3Qgc25kX21pbm9yICptcHRyID0gTlVMTDsKQEAgLTEzMiw3ICsxMzMsNyBAQAogCQlyZXR1cm4gLUVOT0RFVjsKIAltcHRyID0gc25kX21pbm9yc1ttaW5vcl07CiAJaWYgKG1wdHIgPT0gTlVMTCkgewotI2lmZGVmIENPTkZJR19LTU9ECisjaWZkZWYgQ09ORklHX01PRFVMRVMKIAkJaW50IGRldiA9IFNORFJWX01JTk9SX0RFVklDRShtaW5vcik7CiAJCWlmIChkZXYgPT0gU05EUlZfTUlOT1JfQ09OVFJPTCkgewogCQkJLyogL2Rldi9hbG9hZEM/ICovCkBAIC0xNjMsNiArMTY0LDE4IEBACiAJcmV0dXJuIGVycjsKIH0KIAorCisvKiBCS0wgcHVzaGRvd246IG5hc3R5ICNpZmRlZiBhdm9pZGFuY2Ugd3JhcHBlciAqLworc3RhdGljIGludCBzbmRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlpbnQgcmV0OworCisJbG9ja19rZXJuZWwoKTsKKwlyZXQgPSBfX3NuZF9vcGVuKGlub2RlLCBmaWxlKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgc25kX2ZvcHMgPQogewogCS5vd25lciA9CVRISVNfTU9EVUxFLApkaWZmIC0tZ2l0IGEvc291bmQvY29yZS90aW1lci5jIGIvc291bmQvY29yZS90aW1lci5jCmluZGV4IDlkODE4NGEuLjBhZjMzN2UgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvdGltZXIuYworKysgYi9zb3VuZC9jb3JlL3RpbWVyLmMKQEAgLTE0Niw3ICsxNDYsNyBAQAogCXJldHVybiBOVUxMOwogfQogCi0jaWZkZWYgQ09ORklHX0tNT0QKKyNpZmRlZiBDT05GSUdfTU9EVUxFUwogCiBzdGF0aWMgdm9pZCBzbmRfdGltZXJfcmVxdWVzdChzdHJ1Y3Qgc25kX3RpbWVyX2lkICp0aWQpCiB7CkBAIC0yNTksOCArMjU5LDggQEAKIAkvKiBvcGVuIGEgbWFzdGVyIGluc3RhbmNlICovCiAJbXV0ZXhfbG9jaygmcmVnaXN0ZXJfbXV0ZXgpOwogCXRpbWVyID0gc25kX3RpbWVyX2ZpbmQodGlkKTsKLSNpZmRlZiBDT05GSUdfS01PRAotCWlmICh0aW1lciA9PSBOVUxMKSB7CisjaWZkZWYgQ09ORklHX01PRFVMRVMKKwlpZiAoIXRpbWVyKSB7CiAJCW11dGV4X3VubG9jaygmcmVnaXN0ZXJfbXV0ZXgpOwogCQlzbmRfdGltZXJfcmVxdWVzdCh0aWQpOwogCQltdXRleF9sb2NrKCZyZWdpc3Rlcl9tdXRleCk7CmRpZmYgLS1naXQgYS9zb3VuZC9kcml2ZXJzL0tjb25maWcgYi9zb3VuZC9kcml2ZXJzL0tjb25maWcKaW5kZXggNjAyYjU4ZS4uMjU1ZmQxOCAxMDA2NDQKLS0tIGEvc291bmQvZHJpdmVycy9LY29uZmlnCisrKyBiL3NvdW5kL2RyaXZlcnMvS2NvbmZpZwpAQCAtMSwxNSArMSw0MSBAQAotIyBBTFNBIGdlbmVyaWMgZHJpdmVycworY29uZmlnIFNORF9NUFU0MDFfVUFSVAorICAgICAgICB0cmlzdGF0ZQorICAgICAgICBzZWxlY3QgU05EX1JBV01JREkKIAotbWVudSAiR2VuZXJpYyBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EIT1uCitjb25maWcgU05EX09QTDNfTElCCisJdHJpc3RhdGUKKwlzZWxlY3QgU05EX1RJTUVSCisJc2VsZWN0IFNORF9IV0RFUAogCitjb25maWcgU05EX09QTDRfTElCCisJdHJpc3RhdGUKKwlzZWxlY3QgU05EX1RJTUVSCisJc2VsZWN0IFNORF9IV0RFUAorCitjb25maWcgU05EX1ZYX0xJQgorCXRyaXN0YXRlCisJc2VsZWN0IFNORF9IV0RFUAorCXNlbGVjdCBTTkRfUENNCisKK2NvbmZpZyBTTkRfQUM5N19DT0RFQworCXRyaXN0YXRlCisJc2VsZWN0IFNORF9QQ00KKwlzZWxlY3QgQUM5N19CVVMKKwlzZWxlY3QgU05EX1ZNQVNURVIKKworbWVudWNvbmZpZyBTTkRfRFJJVkVSUworCWJvb2wgIkdlbmVyaWMgc291bmQgZGV2aWNlcyIKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBnZW5lcmljIHNvdW5kIGRldmljZXMuCisgIAoraWYgU05EX0RSSVZFUlMKIAogY29uZmlnIFNORF9QQ1NQCiAJdHJpc3RhdGUgIlBDLVNwZWFrZXIgc3VwcG9ydCAoUkVBRCBIRUxQISkiCiAJZGVwZW5kcyBvbiBQQ1NQS1JfUExBVEZPUk0gJiYgWDg2X1BDICYmIEhJR0hfUkVTX1RJTUVSUwogCWRlcGVuZHMgb24gSU5QVVQKIAlkZXBlbmRzIG9uIEVYUEVSSU1FTlRBTAotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBJZiB5b3UgZG9uJ3QgaGF2ZSBhIHNvdW5kIGNhcmQgaW4geW91ciBjb21wdXRlciwgeW91IGNhbiBpbmNsdWRlIGEKQEAgLTM1LDMzICs2MSw4IEBACiAJICBTYXkgTSBpZiB5b3UgZG9uJ3QuCiAJICBTYXkgWSBvbmx5IGlmIHlvdSByZWFsbHkga25vdyB3aGF0IHlvdSBkby4KIAotY29uZmlnIFNORF9NUFU0MDFfVUFSVAotICAgICAgICB0cmlzdGF0ZQotICAgICAgICBzZWxlY3QgU05EX1JBV01JREkKLQotY29uZmlnIFNORF9PUEwzX0xJQgotCXRyaXN0YXRlCi0Jc2VsZWN0IFNORF9USU1FUgotCXNlbGVjdCBTTkRfSFdERVAKLQotY29uZmlnIFNORF9PUEw0X0xJQgotCXRyaXN0YXRlCi0Jc2VsZWN0IFNORF9USU1FUgotCXNlbGVjdCBTTkRfSFdERVAKLQotY29uZmlnIFNORF9WWF9MSUIKLQl0cmlzdGF0ZQotCXNlbGVjdCBTTkRfSFdERVAKLQlzZWxlY3QgU05EX1BDTQotCi1jb25maWcgU05EX0FDOTdfQ09ERUMKLQl0cmlzdGF0ZQotCXNlbGVjdCBTTkRfUENNCi0Jc2VsZWN0IEFDOTdfQlVTCi0KIGNvbmZpZyBTTkRfRFVNTVkKIAl0cmlzdGF0ZSAiRHVtbXkgKC9kZXYvbnVsbCkgc291bmRjYXJkIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgdGhlIGR1bW15IGRyaXZlci4gIFRoaXMgZHJpdmVyIGRvZXMKQEAgLTkwLDcgKzkxLDYgQEAKIAogY29uZmlnIFNORF9NVFBBVgogCXRyaXN0YXRlICJNT1RVIE1pZGlUaW1lUGllY2UgQVYgbXVsdGlwb3J0IE1JREkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1JBV01JREkKIAloZWxwCiAJICBUbyB1c2UgYSBNT1RVIE1pZGlUaW1lUGllY2UgQVYgbXVsdGlwb3J0IE1JREkgYWRhcHRlcgpAQCAtMTAyLDcgKzEwMiw3IEBACiAKIGNvbmZpZyBTTkRfTVRTNjQKIAl0cmlzdGF0ZSAiRVNJIE1pZGl0ZXJtaW5hbCA0MTQwIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORCAmJiBQQVJQT1JUCisJZGVwZW5kcyBvbiBQQVJQT1JUCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJaGVscAogCSAgVGhlIEVTSSBNaWRpdGVybWluYWwgNDE0MCBpcyBhIDQgSW4gNCBPdXQgTUlESSBJbnRlcmZhY2Ugd2l0aCAKQEAgLTExNSw3ICsxMTUsNiBAQAogCiBjb25maWcgU05EX1NFUklBTF9VMTY1NTAKIAl0cmlzdGF0ZSAiVUFSVDE2NTUwIHNlcmlhbCBNSURJIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUkFXTUlESQogCWhlbHAKIAkgIFRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgTUlESSBzZXJpYWwgcG9ydCBpbnRlcmZhY2VzLCBzYXkgWSBoZXJlCkBAIC0xMzEsNyArMTMwLDYgQEAKIAogY29uZmlnIFNORF9NUFU0MDEKIAl0cmlzdGF0ZSAiR2VuZXJpYyBNUFUtNDAxIFVBUlQgZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBNSURJIHBvcnRzIGNvbXBhdGlibGUgd2l0aApAQCAtMTQyLDcgKzE0MCw3IEBACiAKIGNvbmZpZyBTTkRfUE9SVE1BTjJYNAogCXRyaXN0YXRlICJQb3J0bWFuIDJ4NCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUEFSUE9SVAorCWRlcGVuZHMgb24gUEFSUE9SVAogCXNlbGVjdCBTTkRfUkFXTUlESQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBNaWRpbWFuIFBvcnRtYW4gMng0IHBhcmFsbGVsCkBAIC0xNTMsNyArMTUxLDcgQEAKIAogY29uZmlnIFNORF9NTDQwM19BQzk3Q1IKIAl0cmlzdGF0ZSAiWGlsaW54IE1MNDAzIEFDOTcgQ29udHJvbGxlciBSZWZlcmVuY2UiCi0JZGVwZW5kcyBvbiBTTkQgJiYgWElMSU5YX1ZJUlRFWAorCWRlcGVuZHMgb24gWElMSU5YX1ZJUlRFWAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUKQEAgLTE2Myw0ICsxNjEsMjUgQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1tbDQwM19hYzk3Y3IuCiAKLWVuZG1lbnUKK2NvbmZpZyBTTkRfQUM5N19QT1dFUl9TQVZFCisJYm9vbCAiQUM5NyBQb3dlci1TYXZpbmcgTW9kZSIKKwlkZXBlbmRzIG9uIFNORF9BQzk3X0NPREVDICYmIEVYUEVSSU1FTlRBTAorCWRlZmF1bHQgbgorCWhlbHAKKwkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBhZ2dyZXNzaXZlIHBvd2VyLXNhdmluZyBzdXBwb3J0IG9mCisJICBBQzk3IGNvZGVjcy4gIEluIHRoaXMgbW9kZSwgdGhlIHBvd2VyLW1vZGUgaXMgZHluYW1pY2FsbHkKKwkgIGNvbnRyb2xsZWQgYXQgZWFjaCBvcGVuL2Nsb3NlLgorCisJICBUaGUgbW9kZSBpcyBhY3RpdmF0ZWQgYnkgcGFzc2luZyBwb3dlcl9zYXZlPTEgb3B0aW9uIHRvCisJICBzbmQtYWM5Ny1jb2RlYyBkcml2ZXIuICBZb3UgY2FuIHRvZ2dsZSBpdCBkeW5hbWljYWxseSBvdmVyCisJICBzeXNmcywgdG9vLgorCitjb25maWcgU05EX0FDOTdfUE9XRVJfU0FWRV9ERUZBVUxUCisJaW50ICJEZWZhdWx0IHRpbWUtb3V0IGZvciBBQzk3IHBvd2VyLXNhdmUgbW9kZSIKKwlkZXBlbmRzIG9uIFNORF9BQzk3X1BPV0VSX1NBVkUKKwlkZWZhdWx0IDAKKwloZWxwCisJICBUaGUgZGVmYXVsdCB0aW1lLW91dCB2YWx1ZSBpbiBzZWNvbmRzIGZvciBBQzk3IGF1dG9tYXRpYworCSAgcG93ZXItc2F2ZSBtb2RlLiAgMCBtZWFucyB0byBkaXNhYmxlIHRoZSBwb3dlci1zYXZlIG1vZGUuCisKK2VuZGlmCSMgU05EX0RSSVZFUlMKZGlmZiAtLWdpdCBhL3NvdW5kL2RyaXZlcnMvdngvdnhfY29yZS5jIGIvc291bmQvZHJpdmVycy92eC92eF9jb3JlLmMKaW5kZXggOTk1Mzg4Ni4uNTg1YWYyZSAxMDA2NDQKLS0tIGEvc291bmQvZHJpdmVycy92eC92eF9jb3JlLmMKKysrIGIvc291bmQvZHJpdmVycy92eC92eF9jb3JlLmMKQEAgLTQ1Myw3ICs0NTMsNyBAQAogCQkJdnhfb3V0YihjaGlwLCBUWE0sIDApOwogCQkJdnhfb3V0YihjaGlwLCBUWEwsIDApOwogCQl9IGVsc2UgewotCQkJdW5zaWduZWQgY2hhciAqaW1hZ2UgPSBib290LT5kYXRhICsgaTsKKwkJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmltYWdlID0gYm9vdC0+ZGF0YSArIGk7CiAJCQlpZiAodnhfd2FpdF9pc3JfYml0KGNoaXAsIElTUl9UWF9FTVBUWSkgPCAwKSB7CiAJCQkJc25kX3ByaW50ayhLRVJOX0VSUiAiZHNwIGJvb3QgZmFpbGVkIGF0ICVkXG4iLCBpKTsKIAkJCQlyZXR1cm4gLUVJTzsKQEAgLTY3MSw3ICs2NzEsNyBAQAogCXVuc2lnbmVkIGludCBpOwogCWludCBlcnI7CiAJdW5zaWduZWQgaW50IGNzdW0gPSAwOwotCXVuc2lnbmVkIGNoYXIgKmltYWdlLCAqY3B0cjsKKwljb25zdCB1bnNpZ25lZCBjaGFyICppbWFnZSwgKmNwdHI7CiAKIAlzbmRfYXNzZXJ0KGRzcC0+c2l6ZSAlIDMgPT0gMCwgcmV0dXJuIC1FSU5WQUwpOwogCmRpZmYgLS1naXQgYS9zb3VuZC9kcml2ZXJzL3Z4L3Z4X2h3ZGVwLmMgYi9zb3VuZC9kcml2ZXJzL3Z4L3Z4X2h3ZGVwLmMKaW5kZXggMWRmZTY5NC4uZWZkMjJlOSAxMDA2NDQKLS0tIGEvc291bmQvZHJpdmVycy92eC92eF9od2RlcC5jCisrKyBiL3NvdW5kL2RyaXZlcnMvdngvdnhfaHdkZXAuYwpAQCAtMTgzLDcgKzE4Myw3IEBACiAJCWtmcmVlKGZ3KTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCWlmIChjb3B5X2Zyb21fdXNlcihmdy0+ZGF0YSwgZHNwLT5pbWFnZSwgZHNwLT5sZW5ndGgpKSB7CisJaWYgKGNvcHlfZnJvbV91c2VyKCh2b2lkICopZnctPmRhdGEsIGRzcC0+aW1hZ2UsIGRzcC0+bGVuZ3RoKSkgewogCQlmcmVlX2Z3KGZ3KTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQpkaWZmIC0tZ2l0IGEvc291bmQvaTJjL2NzODQyNy5jIGIvc291bmQvaTJjL2NzODQyNy5jCmluZGV4IGU1N2U5Y2IuLjljM2QzNjEgMTAwNjQ0Ci0tLSBhL3NvdW5kL2kyYy9jczg0MjcuYworKysgYi9zb3VuZC9pMmMvY3M4NDI3LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgogI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KICNpbmNsdWRlIDxzb3VuZC9jb250cm9sLmg+CiAjaW5jbHVkZSA8c291bmQvcGNtLmg+CkBAIC0yNjQsMTAgKzI2NSw3IEBACiAJCWdvdG8gX19mYWlsOwogCX0KIAkvKiB3cml0ZSBkZWZhdWx0IGNoYW5uZWwgc3RhdHVzIGJ5dGVzICovCi0JYnVmWzBdID0gKCh1bnNpZ25lZCBjaGFyKShTTkRSVl9QQ01fREVGQVVMVF9DT05fU1BESUYgPj4gMCkpOwotCWJ1ZlsxXSA9ICgodW5zaWduZWQgY2hhcikoU05EUlZfUENNX0RFRkFVTFRfQ09OX1NQRElGID4+IDgpKTsKLQlidWZbMl0gPSAoKHVuc2lnbmVkIGNoYXIpKFNORFJWX1BDTV9ERUZBVUxUX0NPTl9TUERJRiA+PiAxNikpOwotCWJ1ZlszXSA9ICgodW5zaWduZWQgY2hhcikoU05EUlZfUENNX0RFRkFVTFRfQ09OX1NQRElGID4+IDI0KSk7CisJcHV0X3VuYWxpZ25lZF9sZTMyKFNORFJWX1BDTV9ERUZBVUxUX0NPTl9TUERJRiwgYnVmKTsKIAltZW1zZXQoYnVmICsgNCwgMCwgMjQgLSA0KTsKIAlpZiAoc25kX2NzODQyN19zZW5kX2NvcnVkYXRhKGRldmljZSwgMCwgYnVmLCAyNCkgPCAwKQogCQlnb3RvIF9fZmFpbDsKZGlmZiAtLWdpdCBhL3NvdW5kL2kyYy9sMy91ZGExMzQxLmMgYi9zb3VuZC9pMmMvbDMvdWRhMTM0MS5jCmluZGV4IGJmYTVkMmMuLjFmNDk0MmUgMTAwNjQ0Ci0tLSBhL3NvdW5kL2kyYy9sMy91ZGExMzQxLmMKKysrIGIvc291bmQvaTJjL2wzL3VkYTEzNDEuYwpAQCAtMTcsOCArMTcsNiBAQAogICogMjAwMi0wNS0xMiAgIFRvbWFzIEthc3BhcmVrICBhbm90aGVyIGNvZGUgY2xlYW51cAogICovCiAKLS8qICRJZDogdWRhMTM0MS5jLHYgMS4xOCAyMDA1LzExLzE3IDE0OjE3OjIxIHRpd2FpIEV4cCAkICovCi0KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KZGlmZiAtLWdpdCBhL3NvdW5kL2lzYS9LY29uZmlnIGIvc291bmQvaXNhL0tjb25maWcKaW5kZXggMjYzOWE2YS4uNTc2OWExMyAxMDA2NDQKLS0tIGEvc291bmQvaXNhL0tjb25maWcKKysrIGIvc291bmQvaXNhL0tjb25maWcKQEAgLTIxLDEyICsyMSwxNyBAQAogICAgICAgICBzZWxlY3QgU05EX1BDTQogICAgICAgICBzZWxlY3QgU05EX1NCX0NPTU1PTgogCi1tZW51ICJJU0EgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBJU0EgJiYgSVNBX0RNQV9BUEkKK21lbnVjb25maWcgU05EX0lTQQorCWJvb2wgIklTQSBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gSVNBICYmIElTQV9ETUFfQVBJCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBmb3Igc291bmQgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBJU0EgYnVzLgorCitpZiBTTkRfSVNBCiAKIGNvbmZpZyBTTkRfQURMSUIKIAl0cmlzdGF0ZSAiQWRMaWIgRk0gY2FyZCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQWRMaWIgRk0gY2FyZHMuCkBAIC0zNiw3ICs0MSw3IEBACiAKIGNvbmZpZyBTTkRfQUQxODE2QQogCXRyaXN0YXRlICJBbmFsb2cgRGV2aWNlcyBTb3VuZFBvcnQgQUQxODE2QSIKLQlkZXBlbmRzIG9uIFNORCAmJiBQTlAgJiYgSVNBCisJZGVwZW5kcyBvbiBQTlAKIAlzZWxlY3QgSVNBUE5QCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKQEAgLTUwLDcgKzU1LDYgQEAKIAogY29uZmlnIFNORF9BRDE4NDgKIAl0cmlzdGF0ZSAiR2VuZXJpYyBBRDE4NDgvQ1M0MjQ4IGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUQxODQ4X0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBBRDE4NDggKEFuYWxvZyBEZXZpY2VzKSBvcgpAQCAtNjQsNyArNjgsNyBAQAogCiBjb25maWcgU05EX0FMUzEwMAogCXRyaXN0YXRlICJBdmFuY2UgTG9naWMgQUxTMTAwL0FMUzEyMCIKLQlkZXBlbmRzIG9uIFNORCAmJiBQTlAgJiYgSVNBCisJZGVwZW5kcyBvbiBQTlAKIAlzZWxlY3QgSVNBUE5QCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKQEAgLTc4LDcgKzgyLDcgQEAKIAogY29uZmlnIFNORF9BWlQyMzIwCiAJdHJpc3RhdGUgIkF6dGVjaCBTeXN0ZW1zIEFaVDIzMjAiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IElTQVBOUAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC05Miw3ICs5Niw2IEBACiAKIGNvbmZpZyBTTkRfQ01JODMzMAogCXRyaXN0YXRlICJDLU1lZGlhIENNSTgzMzAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FEMTg0OF9MSUIKIAlzZWxlY3QgU05EX1NCMTZfRFNQCiAJaGVscApAQCAtMTA0LDcgKzEwNyw2IEBACiAKIGNvbmZpZyBTTkRfQ1M0MjMxCiAJdHJpc3RhdGUgIkdlbmVyaWMgQ2lycnVzIExvZ2ljIENTNDIzMSBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCiAJaGVscApAQCAtMTE2LDcgKzExOCw2IEBACiAKIGNvbmZpZyBTTkRfQ1M0MjMyCiAJdHJpc3RhdGUgIkdlbmVyaWMgQ2lycnVzIExvZ2ljIENTNDIzMiBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQ1M0MjMxX0xJQgpAQCAtMTI5LDcgKzEzMCw2IEBACiAKIGNvbmZpZyBTTkRfQ1M0MjM2CiAJdHJpc3RhdGUgIkdlbmVyaWMgQ2lycnVzIExvZ2ljIENTNDIzNisgZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKQEAgLTE0Miw3ICsxNDIsNyBAQAogCiBjb25maWcgU05EX0RUMDE5WAogCXRyaXN0YXRlICJEaWFtb25kIFRlY2hub2xvZ2llcyBEVC0wMTlYLCBBdmFuY2UgTG9naWMgQUxTLTAwNyIKLQlkZXBlbmRzIG9uIFNORCAmJiBQTlAgJiYgSVNBCisJZGVwZW5kcyBvbiBQTlAKIAlzZWxlY3QgSVNBUE5QCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKQEAgLTE1Niw3ICsxNTYsNyBAQAogCiBjb25maWcgU05EX0VTOTY4CiAJdHJpc3RhdGUgIkdlbmVyaWMgRVNTIEVTOTY4IGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORCAmJiBQTlAgJiYgSVNBCisJZGVwZW5kcyBvbiBQTlAKIAlzZWxlY3QgSVNBUE5QCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfU0I4X0RTUApAQCAtMTY4LDcgKzE2OCw2IEBACiAKIGNvbmZpZyBTTkRfRVMxNjg4CiAJdHJpc3RhdGUgIkdlbmVyaWMgRVNTIEVTNjg4L0VTMTY4OCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfUENNCkBAIC0xODEsNyArMTgwLDYgQEAKIAogY29uZmlnIFNORF9FUzE4WFgKIAl0cmlzdGF0ZSAiR2VuZXJpYyBFU1MgRVMxOHh4IGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9QQ00KQEAgLTE5Myw3ICsxOTEsNyBAQAogCiBjb25maWcgU05EX1NDNjAwMAogCXRyaXN0YXRlICJHYWxsYW50IFNDLTYwMDAsIEF1ZGlvIEV4Y2VsIERTUCAxNiIKLQlkZXBlbmRzIG9uIFNORCAmJiBIQVNfSU9QT1JUCisJZGVwZW5kcyBvbiBIQVNfSU9QT1JUCiAJc2VsZWN0IFNORF9BRDE4NDhfTElCCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKQEAgLTIwNCwxNSArMjAyLDEwIEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQtc2M2MDAwLgogCi1jb25maWcgU05EX0dVU19TWU5USAotCXRyaXN0YXRlCi0KIGNvbmZpZyBTTkRfR1VTQ0xBU1NJQwogCXRyaXN0YXRlICJHcmF2aXMgVWx0cmFTb3VuZCBDbGFzc2ljIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KLQlzZWxlY3QgU05EX0dVU19TWU5USAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBHcmF2aXMgVWx0cmFTb3VuZCBDbGFzc2ljCiAJICBzb3VuZGNhcmRzLgpAQCAtMjIyLDExICsyMTUsOSBAQAogCiBjb25maWcgU05EX0dVU0VYVFJFTUUKIAl0cmlzdGF0ZSAiR3JhdmlzIFVsdHJhU291bmQgRXh0cmVtZSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9QQ00KLQlzZWxlY3QgU05EX0dVU19TWU5USAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBHcmF2aXMgVWx0cmFTb3VuZCBFeHRyZW1lCiAJICBzb3VuZGNhcmRzLgpAQCAtMjM2LDEwICsyMjcsOCBAQAogCiBjb25maWcgU05EX0dVU01BWAogCXRyaXN0YXRlICJHcmF2aXMgVWx0cmFTb3VuZCBNQVgiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKLQlzZWxlY3QgU05EX0dVU19TWU5USAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBHcmF2aXMgVWx0cmFTb3VuZCBNQVgKIAkgIHNvdW5kY2FyZHMuCkBAIC0yNDksMTAgKzIzOCw5IEBACiAKIGNvbmZpZyBTTkRfSU5URVJXQVZFCiAJdHJpc3RhdGUgIkFNRCBJbnRlcldhdmUsIEdyYXZpcyBVbHRyYVNvdW5kIFBuUCIKLQlkZXBlbmRzIG9uIFNORCAmJiBQTlAgJiYgSVNBCisJZGVwZW5kcyBvbiBQTlAKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKLQlzZWxlY3QgU05EX0dVU19TWU5USAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBBTUQgSW50ZXJXYXZlIGJhc2VkCiAJICBzb3VuZGNhcmRzIChHcmF2aXMgVWx0cmFTb3VuZCBQbHVnICYgUGxheSwgU1RCIFNvdW5kUmFnZTMyLApAQCAtMjYzLDEwICsyNTEsOSBAQAogCiBjb25maWcgU05EX0lOVEVSV0FWRV9TVEIKIAl0cmlzdGF0ZSAiQU1EIEludGVyV2F2ZSArIFRFQTYzMzBUIChVbHRyYVNvdW5kIDMyLVBybykiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCi0Jc2VsZWN0IFNORF9HVVNfU1lOVEgKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQU1EIEludGVyV2F2ZSBiYXNlZAogCSAgc291bmRjYXJkcyB3aXRoIGEgVEVBNjMzMFQgYmFzcyBhbmQgdHJlYmxlIHJlZ3VsYXRvcgpAQCAtMjc3LDcgKzI2NCw2IEBACiAKIGNvbmZpZyBTTkRfT1BMM1NBMgogCXRyaXN0YXRlICJZYW1haGEgT1BMMy1TQTIvU0EzIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKQEAgLTI5MCw3ICsyNzYsNiBAQAogCiBjb25maWcgU05EX09QVEk5MlhfQUQxODQ4CiAJdHJpc3RhdGUgIk9QVGkgODJDOTJ4IC0gQUQxODQ4IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfT1BMNF9MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC0zMDQsNyArMjg5LDYgQEAKIAogY29uZmlnIFNORF9PUFRJOTJYX0NTNDIzMQogCXRyaXN0YXRlICJPUFRpIDgyQzkyeCAtIENTNDIzMSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX09QTDRfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVApAQCAtMzE4LDEwICszMDIsOSBAQAogCiBjb25maWcgU05EX09QVEk5M1gKIAl0cmlzdGF0ZSAiT1BUaSA4MkM5M3giCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAotCXNlbGVjdCBTTkRfUENNCisJc2VsZWN0IFNORF9DUzQyMzFfTElCCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHNvdW5kY2FyZHMgYmFzZWQgb24gT3B0aQogCSAgODJDOTN4IGNoaXBzLgpAQCAtMzMxLDcgKzMxNCw2IEBACiAKIGNvbmZpZyBTTkRfTUlSTwogCXRyaXN0YXRlICJNaXJvIG1pcm9TT1VORCBQQ00xcHJvL1BDTTEyL1BDTTIwcmFkaW8gZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEw0X0xJQgogCXNlbGVjdCBTTkRfQ1M0MjMxX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKQEAgLTM0NSw3ICszMjcsNiBAQAogCiBjb25maWcgU05EX1NCOAogCXRyaXN0YXRlICJTb3VuZCBCbGFzdGVyIDEuMC8yLjAvUHJvICg4LWJpdCkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9TQjhfRFNQCkBAIC0zNTgsNyArMzM5LDYgQEAKIAogY29uZmlnIFNORF9TQjE2CiAJdHJpc3RhdGUgIlNvdW5kIEJsYXN0ZXIgMTYgKFBuUCkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfU0IxNl9EU1AKQEAgLTM3MSw3ICszNTEsNiBAQAogCiBjb25maWcgU05EX1NCQVdFCiAJdHJpc3RhdGUgIlNvdW5kIEJsYXN0ZXIgQVdFICgzMiw2NCkgKFBuUCkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfU0IxNl9EU1AKQEAgLTM5MSwxOCArMzcwLDggQEAKIAkgIGNvcHJvY2Vzc29yIGNhbiBkbyB2YXJpYWJsZSB0YXNrcyBsaWtlIHZhcmlvdXMgY29tcHJlc3Npb24gYW5kCiAJICBkZWNvbXByZXNzaW9uIGFsZ29yaXRobXMuCiAKLWNvbmZpZyBTTkRfU0IxNl9DU1BfRklSTVdBUkVfSU5fS0VSTkVMCi0JYm9vbCAiSW4ta2VybmVsIGZpcm13YXJlIGZvciBTQjE2IENTUCIKLQlkZXBlbmRzIG9uIFNORF9TQjE2X0NTUAotCWRlZmF1bHQgeQotCWhlbHAKLQkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSB0aGUgc3RhdGljIGZpcm13YXJlIGJ1aWx0IGluIHRoZSBrZXJuZWwKLQkgIGZvciB0aGUgU0IxNiBDU1AgY29udHJvbGxlci4gIElmIHlvdSBjaG9vc2UgTiBoZXJlLCB5b3UgbmVlZAotCSAgdG8gaW5zdGFsbCB0aGUgZmlybXdhcmUgZmlsZXMgZnJvbSB0aGUgYWxzYS1maXJtd2FyZSBwYWNrYWdlLgotCiBjb25maWcgU05EX1NHQUxBWFkKIAl0cmlzdGF0ZSAiQXp0ZWNoIFNvdW5kIEdhbGF4eSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUQxODQ4X0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBBenRlY2ggU291bmQgR2FsYXh5CkBAIC00MTMsNyArMzgyLDYgQEAKIAogY29uZmlnIFNORF9TU0NBUEUKIAl0cmlzdGF0ZSAiRW5zb25pcSBTb3VuZFNjYXBlIFBuUCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0hXREVQCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQ1M0MjMxX0xJQgpAQCAtNDI2LDcgKzM5NCw2IEBACiAKIGNvbmZpZyBTTkRfV0FWRUZST05UCiAJdHJpc3RhdGUgIlR1cnRsZSBCZWFjaCBNYXVpLFRyb3BleixUcm9wZXorIChXYXZlZnJvbnQpIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC00NDgsNCArNDE1LDUgQEAKIAkgIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIGZpcm13YXJlIGZpbGVzIGZyb20gdGhlCiAJICBhbHNhLWZpcm13YXJlIHBhY2thZ2UuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX0lTQQorCmRpZmYgLS1naXQgYS9zb3VuZC9pc2EvY3M0MjN4L2NzNDIzMV9saWIuYyBiL3NvdW5kL2lzYS9jczQyM3gvY3M0MjMxX2xpYi5jCmluZGV4IDBhYTg2NDkuLjUyMWRiNzAgMTAwNjQ0Ci0tLSBhL3NvdW5kL2lzYS9jczQyM3gvY3M0MjMxX2xpYi5jCisrKyBiL3NvdW5kL2lzYS9jczQyM3gvY3M0MjMxX2xpYi5jCkBAIC0xMTksNiArMTE5LDQyIEBACiAJMHgwMCwJCQkvKiAxZi8zMSAtIGNicmwgKi8KIH07CiAKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIHNuZF9vcHRpOTN4X29yaWdpbmFsX2ltYWdlWzMyXSA9Cit7CisJMHgwMCwJCS8qIDAwLzAwIC0gbF9taXhvdXRfb3V0Y3RybCAqLworCTB4MDAsCQkvKiAwMS8wMSAtIHJfbWl4b3V0X291dGN0cmwgKi8KKwkweDg4LAkJLyogMDIvMDIgLSBsX2NkX2luY3RybCAqLworCTB4ODgsCQkvKiAwMy8wMyAtIHJfY2RfaW5jdHJsICovCisJMHg4OCwJCS8qIDA0LzA0IC0gbF9hMS9mbV9pbmN0cmwgKi8KKwkweDg4LAkJLyogMDUvMDUgLSByX2ExL2ZtX2luY3RybCAqLworCTB4ODAsCQkvKiAwNi8wNiAtIGxfZGFjX2luY3RybCAqLworCTB4ODAsCQkvKiAwNy8wNyAtIHJfZGFjX2luY3RybCAqLworCTB4MDAsCQkvKiAwOC8wOCAtIHBseV9kYXRhZm9ybV9yZWcgKi8KKwkweDAwLAkJLyogMDkvMDkgLSBpZl9jb25mICovCisJMHgwMCwJCS8qIDBhLzEwIC0gcGluX2N0cmwgKi8KKwkweDAwLAkJLyogMGIvMTEgLSBlcnJfaW5pdF9yZWcgKi8KKwkweDBhLAkJLyogMGMvMTIgLSBpZF9yZWcgKi8KKwkweDAwLAkJLyogMGQvMTMgLSByZXNlcnZlZCAqLworCTB4MDAsCQkvKiAwZS8xNCAtIHBseV91cGNvdW50X3JlZyAqLworCTB4MDAsCQkvKiAwZi8xNSAtIHBseV9sb3djb3VudF9yZWcgKi8KKwkweDg4LAkJLyogMTAvMTYgLSByZXNlcnZlZC9sX2ExX2luY3RybCAqLworCTB4ODgsCQkvKiAxMS8xNyAtIHJlc2VydmVkL3JfYTFfaW5jdHJsICovCisJMHg4OCwJCS8qIDEyLzE4IC0gbF9saW5lX2luY3RybCAqLworCTB4ODgsCQkvKiAxMy8xOSAtIHJfbGluZV9pbmN0cmwgKi8KKwkweDg4LAkJLyogMTQvMjAgLSBsX21pY19pbmN0cmwgKi8KKwkweDg4LAkJLyogMTUvMjEgLSByX21pY19pbmN0cmwgKi8KKwkweDgwLAkJLyogMTYvMjIgLSBsX291dF9vdXRjdHJsICovCisJMHg4MCwJCS8qIDE3LzIzIC0gcl9vdXRfb3V0Y3RybCAqLworCTB4MDAsCQkvKiAxOC8yNCAtIHJlc2VydmVkICovCisJMHgwMCwJCS8qIDE5LzI1IC0gcmVzZXJ2ZWQgKi8KKwkweDAwLAkJLyogMWEvMjYgLSByZXNlcnZlZCAqLworCTB4MDAsCQkvKiAxYi8yNyAtIHJlc2VydmVkICovCisJMHgwMCwJCS8qIDFjLzI4IC0gY2FwX2RhdGFmb3JtX3JlZyAqLworCTB4MDAsCQkvKiAxZC8yOSAtIHJlc2VydmVkICovCisJMHgwMCwJCS8qIDFlLzMwIC0gY2FwX3VwY291bnRfcmVnICovCisJMHgwMAkJLyogMWYvMzEgLSBjYXBfbG93Y291bnRfcmVnICovCit9OworCiAvKgogICogIEJhc2ljIEkvTyBmdW5jdGlvbnMKICAqLwpAQCAtODk1LDcgKzkzMSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIHNuZF9jczQyMzFfb3ZlcnJhbmdlKHN0cnVjdCBzbmRfY3M0MjMxICpjaGlwKQordm9pZCBzbmRfY3M0MjMxX292ZXJyYW5nZShzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXVuc2lnbmVkIGNoYXIgcmVzOwpAQCAtMTA1NCw4ICsxMDkwLDExIEBACiAJY2hpcC0+aW1hZ2VbQ1M0MjMxX0lGQUNFX0NUUkxdID0KIAkgICAgKGNoaXAtPmltYWdlW0NTNDIzMV9JRkFDRV9DVFJMXSAmIH5DUzQyMzFfU0lOR0xFX0RNQSkgfAogCSAgICAoY2hpcC0+c2luZ2xlX2RtYSA/IENTNDIzMV9TSU5HTEVfRE1BIDogMCk7Ci0JY2hpcC0+aW1hZ2VbQ1M0MjMxX0FMVF9GRUFUVVJFXzFdID0gMHg4MDsKLQljaGlwLT5pbWFnZVtDUzQyMzFfQUxUX0ZFQVRVUkVfMl0gPSBjaGlwLT5oYXJkd2FyZSA9PSBDUzQyMzFfSFdfSU5URVJXQVZFID8gMHhjMiA6IDB4MDE7CisJaWYgKGNoaXAtPmhhcmR3YXJlICE9IENTNDIzMV9IV19PUFRJOTNYKSB7CisJCWNoaXAtPmltYWdlW0NTNDIzMV9BTFRfRkVBVFVSRV8xXSA9IDB4ODA7CisJCWNoaXAtPmltYWdlW0NTNDIzMV9BTFRfRkVBVFVSRV8yXSA9CisJCQljaGlwLT5oYXJkd2FyZSA9PSBDUzQyMzFfSFdfSU5URVJXQVZFID8gMHhjMiA6IDB4MDE7CisJfQogCXB0ciA9ICh1bnNpZ25lZCBjaGFyICopICZjaGlwLT5pbWFnZTsKIAlzbmRfY3M0MjMxX21jZV9kb3duKGNoaXApOwogCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5yZWdfbG9jaywgZmxhZ3MpOwpAQCAtMTM3Niw2ICsxNDE1LDcgQEAKIAljYXNlIENTNDIzMV9IV19JTlRFUldBVkU6IHJldHVybiAiQU1EIEludGVyV2F2ZSI7CiAJY2FzZSBDUzQyMzFfSFdfT1BMM1NBMjogcmV0dXJuIGNoaXAtPmNhcmQtPnNob3J0bmFtZTsKIAljYXNlIENTNDIzMV9IV19BRDE4NDU6IHJldHVybiAiQUQxODQ1IjsKKwljYXNlIENTNDIzMV9IV19PUFRJOTNYOiByZXR1cm4gIk9QVGkgOTN4IjsKIAlkZWZhdWx0OiByZXR1cm4gIj8/PyI7CiAJfQogfQpAQCAtMTQwMSw4ICsxNDQxLDEzIEBACiAJY2hpcC0+cmF0ZV9jb25zdHJhaW50ID0gc25kX2NzNDIzMV94cmF0ZTsKIAljaGlwLT5zZXRfcGxheWJhY2tfZm9ybWF0ID0gc25kX2NzNDIzMV9wbGF5YmFja19mb3JtYXQ7CiAJY2hpcC0+c2V0X2NhcHR1cmVfZm9ybWF0ID0gc25kX2NzNDIzMV9jYXB0dXJlX2Zvcm1hdDsKLSAgICAgICAgbWVtY3B5KCZjaGlwLT5pbWFnZSwgJnNuZF9jczQyMzFfb3JpZ2luYWxfaW1hZ2UsIHNpemVvZihzbmRfY3M0MjMxX29yaWdpbmFsX2ltYWdlKSk7Ci0gICAgICAgIAorCWlmIChjaGlwLT5oYXJkd2FyZSA9PSBDUzQyMzFfSFdfT1BUSTkzWCkKKwkJbWVtY3B5KCZjaGlwLT5pbWFnZSwgJnNuZF9vcHRpOTN4X29yaWdpbmFsX2ltYWdlLAorCQkgICAgICAgc2l6ZW9mKHNuZF9vcHRpOTN4X29yaWdpbmFsX2ltYWdlKSk7CisJZWxzZQorCQltZW1jcHkoJmNoaXAtPmltYWdlLCAmc25kX2NzNDIzMV9vcmlnaW5hbF9pbWFnZSwKKwkJICAgICAgIHNpemVvZihzbmRfY3M0MjMxX29yaWdpbmFsX2ltYWdlKSk7CisKICAgICAgICAgKnJjaGlwID0gY2hpcDsKICAgICAgICAgcmV0dXJuIDA7CiB9CkBAIC0xNzkwLDYgKzE4MzUsNDggQEAKIENTNDIzMV9TSU5HTEUoIkxvb3BiYWNrIENhcHR1cmUgVm9sdW1lIiwgMCwgQ1M0MjMxX0xPT1BCQUNLLCAyLCA2MywgMSkKIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc25kX29wdGk5M3hfY29udHJvbHNbXSA9IHsKK0NTNDIzMV9ET1VCTEUoIk1hc3RlciBQbGF5YmFjayBTd2l0Y2giLCAwLAorCSAgICAgIE9QVGk5M1hfT1VUX0xFRlQsIE9QVGk5M1hfT1VUX1JJR0hULCA3LCA3LCAxLCAxKSwKK0NTNDIzMV9ET1VCTEUoIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLCAwLAorCSAgICAgIE9QVGk5M1hfT1VUX0xFRlQsIE9QVGk5M1hfT1VUX1JJR0hULCAxLCAxLCAzMSwgMSksCitDUzQyMzFfRE9VQkxFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBDUzQyMzFfTEVGVF9PVVRQVVQsIENTNDIzMV9SSUdIVF9PVVRQVVQsIDcsIDcsIDEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiUENNIFBsYXliYWNrIFZvbHVtZSIsIDAsCisJICAgICAgQ1M0MjMxX0xFRlRfT1VUUFVULCBDUzQyMzFfUklHSFRfT1VUUFVULCAwLCAwLCAzMSwgMSksCitDUzQyMzFfRE9VQkxFKCJGTSBQbGF5YmFjayBTd2l0Y2giLCAwLAorCSAgICAgIENTNDIzMV9BVVgyX0xFRlRfSU5QVVQsIENTNDIzMV9BVVgyX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKK0NTNDIzMV9ET1VCTEUoIkZNIFBsYXliYWNrIFZvbHVtZSIsIDAsCisJICAgICAgQ1M0MjMxX0FVWDJfTEVGVF9JTlBVVCwgQ1M0MjMxX0FVWDJfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwKK0NTNDIzMV9ET1VCTEUoIkxpbmUgUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBDUzQyMzFfTEVGVF9MSU5FX0lOLCBDUzQyMzFfUklHSFRfTElORV9JTiwgNywgNywgMSwgMSksCitDUzQyMzFfRE9VQkxFKCJMaW5lIFBsYXliYWNrIFZvbHVtZSIsIDAsCisJICAgICAgQ1M0MjMxX0xFRlRfTElORV9JTiwgQ1M0MjMxX1JJR0hUX0xJTkVfSU4sIDAsIDAsIDE1LCAxKSwKK0NTNDIzMV9ET1VCTEUoIk1pYyBQbGF5YmFjayBTd2l0Y2giLCAwLAorCSAgICAgIE9QVGk5M1hfTUlDX0xFRlRfSU5QVVQsIE9QVGk5M1hfTUlDX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKK0NTNDIzMV9ET1VCTEUoIk1pYyBQbGF5YmFjayBWb2x1bWUiLCAwLAorCSAgICAgIE9QVGk5M1hfTUlDX0xFRlRfSU5QVVQsIE9QVGk5M1hfTUlDX1JJR0hUX0lOUFVULCAxLCAxLCAxNSwgMSksCitDUzQyMzFfRE9VQkxFKCJNaWMgQm9vc3QiLCAwLAorCSAgICAgIENTNDIzMV9MRUZUX0lOUFVULCBDUzQyMzFfUklHSFRfSU5QVVQsIDUsIDUsIDEsIDApLAorQ1M0MjMxX0RPVUJMRSgiQ0QgUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBDUzQyMzFfQVVYMV9MRUZUX0lOUFVULCBDUzQyMzFfQVVYMV9SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCitDUzQyMzFfRE9VQkxFKCJDRCBQbGF5YmFjayBWb2x1bWUiLCAwLAorCSAgICAgIENTNDIzMV9BVVgxX0xFRlRfSU5QVVQsIENTNDIzMV9BVVgxX1JJR0hUX0lOUFVULCAxLCAxLCAxNSwgMSksCitDUzQyMzFfRE9VQkxFKCJBdXggUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBPUFRpOTMxX0FVWF9MRUZUX0lOUFVULCBPUFRpOTMxX0FVWF9SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCitDUzQyMzFfRE9VQkxFKCJBdXggUGxheWJhY2sgVm9sdW1lIiwgMCwKKwkgICAgICBPUFRpOTMxX0FVWF9MRUZUX0lOUFVULCBPUFRpOTMxX0FVWF9SSUdIVF9JTlBVVCwgMSwgMSwgMTUsIDEpLAorQ1M0MjMxX0RPVUJMRSgiQ2FwdHVyZSBWb2x1bWUiLCAwLAorCSAgICAgIENTNDIzMV9MRUZUX0lOUFVULCBDUzQyMzFfUklHSFRfSU5QVVQsIDAsIDAsIDE1LCAwKSwKK3sKKwkuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwKKwkubmFtZSA9ICJDYXB0dXJlIFNvdXJjZSIsCisJLmluZm8gPSBzbmRfY3M0MjMxX2luZm9fbXV4LAorCS5nZXQgPSBzbmRfY3M0MjMxX2dldF9tdXgsCisJLnB1dCA9IHNuZF9jczQyMzFfcHV0X211eCwKK30KK307CisKIGludCBzbmRfY3M0MjMxX21peGVyKHN0cnVjdCBzbmRfY3M0MjMxICpjaGlwKQogewogCXN0cnVjdCBzbmRfY2FyZCAqY2FyZDsKQEAgLTE4MDIsMTAgKzE4ODksMjIgQEAKIAogCXN0cmNweShjYXJkLT5taXhlcm5hbWUsIGNoaXAtPnBjbS0+bmFtZSk7CiAKLQlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX2NzNDIzMV9jb250cm9scyk7IGlkeCsrKSB7Ci0JCWlmICgoZXJyID0gc25kX2N0bF9hZGQoY2FyZCwgc25kX2N0bF9uZXcxKCZzbmRfY3M0MjMxX2NvbnRyb2xzW2lkeF0sIGNoaXApKSkgPCAwKQotCQkJcmV0dXJuIGVycjsKLQl9CisJaWYgKGNoaXAtPmhhcmR3YXJlID09IENTNDIzMV9IV19PUFRJOTNYKQorCQlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX29wdGk5M3hfY29udHJvbHMpOyBpZHgrKykgeworCQkJZXJyID0gc25kX2N0bF9hZGQoY2FyZCwKKwkJCQkJc25kX2N0bF9uZXcxKCZzbmRfb3B0aTkzeF9jb250cm9sc1tpZHhdLAorCQkJCQkJICAgICBjaGlwKSk7CisJCQlpZiAoZXJyIDwgMCkKKwkJCQlyZXR1cm4gZXJyOworCQl9CisJZWxzZQorCQlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX2NzNDIzMV9jb250cm9scyk7IGlkeCsrKSB7CisJCQllcnIgPSBzbmRfY3RsX2FkZChjYXJkLAorCQkJCQlzbmRfY3RsX25ldzEoJnNuZF9jczQyMzFfY29udHJvbHNbaWR4XSwKKwkJCQkJCSAgICAgY2hpcCkpOworCQkJaWYgKGVyciA8IDApCisJCQkJcmV0dXJuIGVycjsKKwkJfQogCXJldHVybiAwOwogfQogCkBAIC0xODE1LDYgKzE5MTQsNyBAQAogRVhQT1JUX1NZTUJPTChzbmRfY3M0MjM2X2V4dF9pbik7CiBFWFBPUlRfU1lNQk9MKHNuZF9jczQyMzFfbWNlX3VwKTsKIEVYUE9SVF9TWU1CT0woc25kX2NzNDIzMV9tY2VfZG93bik7CitFWFBPUlRfU1lNQk9MKHNuZF9jczQyMzFfb3ZlcnJhbmdlKTsKIEVYUE9SVF9TWU1CT0woc25kX2NzNDIzMV9pbnRlcnJ1cHQpOwogRVhQT1JUX1NZTUJPTChzbmRfY3M0MjMxX2NoaXBfaWQpOwogRVhQT1JUX1NZTUJPTChzbmRfY3M0MjMxX2NyZWF0ZSk7CmRpZmYgLS1naXQgYS9zb3VuZC9pc2Evb3B0aTl4eC9vcHRpOTJ4LWFkMTg0OC5jIGIvc291bmQvaXNhL29wdGk5eHgvb3B0aTkyeC1hZDE4NDguYwppbmRleCBmZTFhZmMxLi40MWMwNDdlIDEwMDY0NAotLS0gYS9zb3VuZC9pc2Evb3B0aTl4eC9vcHRpOTJ4LWFkMTg0OC5jCisrKyBiL3NvdW5kL2lzYS9vcHRpOXh4L29wdGk5MngtYWQxODQ4LmMKQEAgLTMzLDE1ICszMywxMCBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9kbWEuaD4KICNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+Ci0jaWZkZWYgQ1M0MjMxCisjaWYgZGVmaW5lZChDUzQyMzEpIHx8IGRlZmluZWQoT1BUaTkzWCkKICNpbmNsdWRlIDxzb3VuZC9jczQyMzEuaD4KICNlbHNlCi0jaWZuZGVmIE9QVGk5M1gKICNpbmNsdWRlIDxzb3VuZC9hZDE4NDguaD4KLSNlbHNlCi0jaW5jbHVkZSA8c291bmQvY29udHJvbC5oPgotI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgotI2VuZGlmCS8qIE9QVGk5M1ggKi8KICNlbmRpZgkvKiBDUzQyMzEgKi8KICNpbmNsdWRlIDxzb3VuZC9tcHU0MDEuaD4KICNpbmNsdWRlIDxzb3VuZC9vcGwzLmg+CkBAIC0xMDksNyArMTA0LDYgQEAKIE1PRFVMRV9QQVJNX0RFU0MoZG1hMiwgIjJuZCBkbWEgIyBmb3Igb3B0aTl4eCBkcml2ZXIuIik7CiAjZW5kaWYJLyogQ1M0MjMxIHx8IE9QVGk5M1ggKi8KIAotI2RlZmluZSBPUFRpOVhYX0hXX0RFVEVDVAkwCiAjZGVmaW5lIE9QVGk5WFhfSFdfODJDOTI4CTEKICNkZWZpbmUgT1BUaTlYWF9IV184MkM5MjkJMgogI2RlZmluZSBPUFRpOVhYX0hXXzgyQzkyNAkzCkBAIC0xMjMsMTA1ICsxMTcsMTIgQEAKIAogI2lmZGVmIE9QVGk5M1gKIAotI2RlZmluZSBPUFRpOTNYX0lOREVYCQkJMHgwMAotI2RlZmluZSBPUFRpOTNYX0RBVEEJCQkweDAxCiAjZGVmaW5lIE9QVGk5M1hfU1RBVFVTCQkJMHgwMgotI2RlZmluZSBPUFRpOTNYX0REQVRBCQkJMHgwMwogI2RlZmluZSBPUFRpOTNYX1BPUlQoY2hpcCwgcikJCSgoY2hpcCktPnBvcnQgKyBPUFRpOTNYXyMjcikKIAotI2RlZmluZSBPUFRpOTNYX01JWE9VVF9MRUZUCQkweDAwCi0jZGVmaW5lIE9QVGk5M1hfTUlYT1VUX1JJR0hUCQkweDAxCi0jZGVmaW5lIE9QVGk5M1hfQ0RfTEVGVF9JTlBVVAkJMHgwMgotI2RlZmluZSBPUFRpOTNYX0NEX1JJR0hUX0lOUFVUCQkweDAzCi0jZGVmaW5lIE9QVGk5MzBfQVVYX0xFRlRfSU5QVVQJCTB4MDQKLSNkZWZpbmUgT1BUaTkzMF9BVVhfUklHSFRfSU5QVVQJCTB4MDUKLSNkZWZpbmUgT1BUaTkzMV9GTV9MRUZUX0lOUFVUCQkweDA0Ci0jZGVmaW5lIE9QVGk5MzFfRk1fUklHSFRfSU5QVVQJCTB4MDUKLSNkZWZpbmUgT1BUaTkzWF9EQUNfTEVGVAkJMHgwNgotI2RlZmluZSBPUFRpOTNYX0RBQ19SSUdIVAkJMHgwNwotI2RlZmluZSBPUFRpOTNYX1BMQVlfRk9STUFUCQkweDA4Ci0jZGVmaW5lIE9QVGk5M1hfSUZBQ0VfQ09ORgkJMHgwOQotI2RlZmluZSBPUFRpOTNYX1BJTl9DVFJMCQkweDBhCi0jZGVmaW5lIE9QVGk5M1hfRVJSX0lOSVQJCTB4MGIKLSNkZWZpbmUgT1BUaTkzWF9JRAkJCTB4MGMKLSNkZWZpbmUgT1BUaTkzWF9QTEFZX1VQUl9DTlQJCTB4MGUKLSNkZWZpbmUgT1BUaTkzWF9QTEFZX0xXUl9DTlQJCTB4MGYKLSNkZWZpbmUgT1BUaTkzMV9BVVhfTEVGVF9JTlBVVAkJMHgxMAotI2RlZmluZSBPUFRpOTMxX0FVWF9SSUdIVF9JTlBVVAkJMHgxMQotI2RlZmluZSBPUFRpOTNYX0xJTkVfTEVGVF9JTlBVVAkJMHgxMgotI2RlZmluZSBPUFRpOTNYX0xJTkVfUklHSFRfSU5QVVQJMHgxMwotI2RlZmluZSBPUFRpOTNYX01JQ19MRUZUX0lOUFVUCQkweDE0Ci0jZGVmaW5lIE9QVGk5M1hfTUlDX1JJR0hUX0lOUFVUCQkweDE1Ci0jZGVmaW5lIE9QVGk5M1hfT1VUX0xFRlQJCTB4MTYKLSNkZWZpbmUgT1BUaTkzWF9PVVRfUklHSFQJCTB4MTcKLSNkZWZpbmUgT1BUaTkzWF9DQVBUX0ZPUk1BVAkJMHgxYwotI2RlZmluZSBPUFRpOTNYX0NBUFRfVVBSX0NOVAkJMHgxZQotI2RlZmluZSBPUFRpOTNYX0NBUFRfTFdSX0NOVAkJMHgxZgotCi0jZGVmaW5lIE9QVGk5M1hfVFJECQkJMHgyMAotI2RlZmluZSBPUFRpOTNYX01DRQkJCTB4NDAKLSNkZWZpbmUgT1BUaTkzWF9JTklUCQkJMHg4MAotCi0jZGVmaW5lIE9QVGk5M1hfTUlYT1VUX01JQ19HQUlOCQkweDIwCi0jZGVmaW5lIE9QVGk5M1hfTUlYT1VUX0xJTkUJCTB4MDAKLSNkZWZpbmUgT1BUaTkzWF9NSVhPVVRfQ0QJCTB4NDAKLSNkZWZpbmUgT1BUaTkzWF9NSVhPVVRfTUlDCQkweDgwCi0jZGVmaW5lIE9QVGk5M1hfTUlYT1VUX01JWEVSCQkweGMwCi0KLSNkZWZpbmUgT1BUaTkzWF9TVEVSRU8JCQkweDEwCi0jZGVmaW5lIE9QVGk5M1hfTElORUFSXzgJCTB4MDAKLSNkZWZpbmUgT1BUaTkzWF9VTEFXXzgJCQkweDIwCi0jZGVmaW5lIE9QVGk5M1hfTElORUFSXzE2X0xJVAkJMHg0MAotI2RlZmluZSBPUFRpOTNYX0FMQVdfOAkJCTB4NjAKLSNkZWZpbmUgT1BUaTkzWF9BRFBDTV8xNgkJMHhhMAotI2RlZmluZSBPUFRpOTNYX0xJTkVBUl8xNl9CSUcJCTB4YzAKLQotI2RlZmluZSBPUFRpOTNYX0NBUFRVUkVfUElPCQkweDgwCi0jZGVmaW5lIE9QVGk5M1hfUExBWUJBQ0tfUElPCQkweDQwCi0jZGVmaW5lIE9QVGk5M1hfQVVUT0NBTElCCQkweDA4Ci0jZGVmaW5lIE9QVGk5M1hfU0lOR0xFX0RNQQkJMHgwNAotI2RlZmluZSBPUFRpOTNYX0NBUFRVUkVfRU5BQkxFCQkweDAyCi0jZGVmaW5lIE9QVGk5M1hfUExBWUJBQ0tfRU5BQkxFCQkweDAxCi0KLSNkZWZpbmUgT1BUaTkzWF9JUlFfRU5BQkxFCQkweDAyCi0KLSNkZWZpbmUgT1BUaTkzWF9ETUFfUkVRVUVTVAkJMHgxMAotI2RlZmluZSBPUFRpOTNYX0NBTElCX0lOX1BST0dSRVNTCTB4MjAKLQogI2RlZmluZSBPUFRpOTNYX0lSUV9QTEFZQkFDSwkJMHgwNAogI2RlZmluZSBPUFRpOTNYX0lSUV9DQVBUVVJFCQkweDA4CiAKLQotc3RydWN0IHNuZF9vcHRpOTN4IHsKLQl1bnNpZ25lZCBsb25nIHBvcnQ7Ci0Jc3RydWN0IHJlc291cmNlICpyZXNfcG9ydDsKLQlpbnQgaXJxOwotCWludCBkbWExOwotCWludCBkbWEyOwotCi0Jc3RydWN0IHNuZF9vcHRpOXh4ICpjaGlwOwotCXVuc2lnbmVkIHNob3J0IGhhcmR3YXJlOwotCXVuc2lnbmVkIGNoYXIgaW1hZ2VbMzJdOwotCi0JdW5zaWduZWQgY2hhciBtY2VfYml0OwotCXVuc2lnbmVkIHNob3J0IG1vZGU7Ci0JaW50IG11dGU7Ci0KLQlzcGlubG9ja190IGxvY2s7Ci0KLQlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7Ci0Jc3RydWN0IHNuZF9wY20gKnBjbTsKLQlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnBsYXliYWNrX3N1YnN0cmVhbTsKLQlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKmNhcHR1cmVfc3Vic3RyZWFtOwotCXVuc2lnbmVkIGludCBwX2RtYV9zaXplOwotCXVuc2lnbmVkIGludCBjX2RtYV9zaXplOwotfTsKLQotI2RlZmluZSBPUFRpOTNYX01PREVfTk9ORQkweDAwCi0jZGVmaW5lIE9QVGk5M1hfTU9ERV9QTEFZCTB4MDEKLSNkZWZpbmUgT1BUaTkzWF9NT0RFX0NBUFRVUkUJMHgwMgotI2RlZmluZSBPUFRpOTNYX01PREVfT1BFTgkoT1BUaTkzWF9NT0RFX1BMQVkgfCBPUFRpOTNYX01PREVfQ0FQVFVSRSkKLQogI2VuZGlmIC8qIE9QVGk5M1ggKi8KIAogc3RydWN0IHNuZF9vcHRpOXh4IHsKQEAgLTIzNCw2ICsxMzUsNyBAQAogCXVuc2lnbmVkIGxvbmcgbWNfYmFzZV9zaXplOwogI2lmZGVmIE9QVGk5M1gKIAl1bnNpZ25lZCBsb25nIG1jX2luZGlyX2luZGV4OworCXN0cnVjdCBzbmRfY3M0MjMxICpjb2RlYzsKICNlbmRpZgkvKiBPUFRpOTNYICovCiAJdW5zaWduZWQgbG9uZyBwd2RfcmVnOwogCkBAIC00OTEsMTYgKzM5Myw5IEBACiAJCWJyZWFrOwogCiAjZWxzZQkvKiBPUFRpOTNYICovCi0JY2FzZSBPUFRpOVhYX0hXXzgyQzkzMDoKIAljYXNlIE9QVGk5WFhfSFdfODJDOTMxOgogCWNhc2UgT1BUaTlYWF9IV184MkM5MzM6Ci0JCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNiksIDB4MDIsIDB4MDMpOwotCQlzbmRfb3B0aTl4eF93cml0ZV9tYXNrKGNoaXAsIE9QVGk5WFhfTUNfUkVHKDMpLCAweDAwLCAweGZmKTsKLQkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRyg0KSwgMHgxMCB8Ci0JCQkoY2hpcC0+aGFyZHdhcmUgPT0gT1BUaTlYWF9IV184MkM5MzAgPyAweDAwIDogMHgwNCksCi0JCQkweDM0KTsKLQkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRyg1KSwgMHgyMCwgMHhiZik7Ci0JCS8qIAorCQkvKgogCQkgKiBUaGUgQlRDIDE4MTdEVyBoYXMgUVMxMDAwIHdhdmV0YWJsZSB3aGljaCBpcyBjb25uZWN0ZWQKIAkJICogdG8gdGhlIHNlcmlhbCBkaWdpdGFsIGlucHV0IG9mIHRoZSBPUFRJOTMxLgogCQkgKi8KQEAgLTUxMCw2ICs0MDUsMTMgQEAKIAkJICogb3IgZGlnaXRhbCBpbnB1dCBzaWduYWwuCiAJCSAqLwogCQlzbmRfb3B0aTl4eF93cml0ZV9tYXNrKGNoaXAsIE9QVGk5WFhfTUNfUkVHKDI2KSwgMHgwMSwgMHgwMSk7CisJY2FzZSBPUFRpOVhYX0hXXzgyQzkzMDogLyogRkFMTCBUSFJPVUdIICovCisJCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNiksIDB4MDIsIDB4MDMpOworCQlzbmRfb3B0aTl4eF93cml0ZV9tYXNrKGNoaXAsIE9QVGk5WFhfTUNfUkVHKDMpLCAweDAwLCAweGZmKTsKKwkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRyg0KSwgMHgxMCB8CisJCQkoY2hpcC0+aGFyZHdhcmUgPT0gT1BUaTlYWF9IV184MkM5MzAgPyAweDAwIDogMHgwNCksCisJCQkweDM0KTsKKwkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRyg1KSwgMHgyMCwgMHhiZik7CiAJCWJyZWFrOwogI2VuZGlmCS8qIE9QVGk5M1ggKi8KIApAQCAtNjU0LDk3OSArNTU2LDIzIEBACiAKICNpZmRlZiBPUFRpOTNYCiAKLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHNuZF9vcHRpOTN4X2RlZmF1bHRfaW1hZ2VbMzJdID0KLXsKLQkweDAwLAkJLyogMDAvMDAgLSBsX21peG91dF9vdXRjdHJsICovCi0JMHgwMCwJCS8qIDAxLzAxIC0gcl9taXhvdXRfb3V0Y3RybCAqLwotCTB4ODgsCQkvKiAwMi8wMiAtIGxfY2RfaW5jdHJsICovCi0JMHg4OCwJCS8qIDAzLzAzIC0gcl9jZF9pbmN0cmwgKi8KLQkweDg4LAkJLyogMDQvMDQgLSBsX2ExL2ZtX2luY3RybCAqLwotCTB4ODgsCQkvKiAwNS8wNSAtIHJfYTEvZm1faW5jdHJsICovCi0JMHg4MCwJCS8qIDA2LzA2IC0gbF9kYWNfaW5jdHJsICovCi0JMHg4MCwJCS8qIDA3LzA3IC0gcl9kYWNfaW5jdHJsICovCi0JMHgwMCwJCS8qIDA4LzA4IC0gcGx5X2RhdGFmb3JtX3JlZyAqLwotCTB4MDAsCQkvKiAwOS8wOSAtIGlmX2NvbmYgKi8KLQkweDAwLAkJLyogMGEvMTAgLSBwaW5fY3RybCAqLwotCTB4MDAsCQkvKiAwYi8xMSAtIGVycl9pbml0X3JlZyAqLwotCTB4MGEsCQkvKiAwYy8xMiAtIGlkX3JlZyAqLwotCTB4MDAsCQkvKiAwZC8xMyAtIHJlc2VydmVkICovCi0JMHgwMCwJCS8qIDBlLzE0IC0gcGx5X3VwY291bnRfcmVnICovCi0JMHgwMCwJCS8qIDBmLzE1IC0gcGx5X2xvd2NvdW50X3JlZyAqLwotCTB4ODgsCQkvKiAxMC8xNiAtIHJlc2VydmVkL2xfYTFfaW5jdHJsICovCi0JMHg4OCwJCS8qIDExLzE3IC0gcmVzZXJ2ZWQvcl9hMV9pbmN0cmwgKi8KLQkweDg4LAkJLyogMTIvMTggLSBsX2xpbmVfaW5jdHJsICovCi0JMHg4OCwJCS8qIDEzLzE5IC0gcl9saW5lX2luY3RybCAqLwotCTB4ODgsCQkvKiAxNC8yMCAtIGxfbWljX2luY3RybCAqLwotCTB4ODgsCQkvKiAxNS8yMSAtIHJfbWljX2luY3RybCAqLwotCTB4ODAsCQkvKiAxNi8yMiAtIGxfb3V0X291dGN0cmwgKi8KLQkweDgwLAkJLyogMTcvMjMgLSByX291dF9vdXRjdHJsICovCi0JMHgwMCwJCS8qIDE4LzI0IC0gcmVzZXJ2ZWQgKi8KLQkweDAwLAkJLyogMTkvMjUgLSByZXNlcnZlZCAqLwotCTB4MDAsCQkvKiAxYS8yNiAtIHJlc2VydmVkICovCi0JMHgwMCwJCS8qIDFiLzI3IC0gcmVzZXJ2ZWQgKi8KLQkweDAwLAkJLyogMWMvMjggLSBjYXBfZGF0YWZvcm1fcmVnICovCi0JMHgwMCwJCS8qIDFkLzI5IC0gcmVzZXJ2ZWQgKi8KLQkweDAwLAkJLyogMWUvMzAgLSBjYXBfdXBjb3VudF9yZWcgKi8KLQkweDAwCQkvKiAxZi8zMSAtIGNhcF9sb3djb3VudF9yZWcgKi8KLX07Ci0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9idXN5X3dhaXQoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwKQotewotCWludCB0aW1lb3V0OwotCi0JZm9yICh0aW1lb3V0ID0gMjUwOyB0aW1lb3V0LS0gPiAwOyB1ZGVsYXkoMTApKQotCQlpZiAoIShpbmIoT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSkgJiBPUFRpOTNYX0lOSVQpKQotCQkJcmV0dXJuIDA7Ci0KLQlzbmRfcHJpbnRrKCJjaGlwIHN0aWxsIGJ1c3kuXG4iKTsKLQlyZXR1cm4gLUVCVVNZOwotfQotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzbmRfb3B0aTkzeF9pbihzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsIHVuc2lnbmVkIGNoYXIgcmVnKQotewotCXNuZF9vcHRpOTN4X2J1c3lfd2FpdChjaGlwKTsKLQlvdXRiKGNoaXAtPm1jZV9iaXQgfCAocmVnICYgMHgxZiksIE9QVGk5M1hfUE9SVChjaGlwLCBJTkRFWCkpOwotCXJldHVybiBpbmIoT1BUaTkzWF9QT1JUKGNoaXAsIERBVEEpKTsKLX0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfb3V0KHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCwgdW5zaWduZWQgY2hhciByZWcsCi0JCQkgICAgdW5zaWduZWQgY2hhciB2YWx1ZSkKLXsKLQlzbmRfb3B0aTkzeF9idXN5X3dhaXQoY2hpcCk7Ci0Jb3V0YihjaGlwLT5tY2VfYml0IHwgKHJlZyAmIDB4MWYpLCBPUFRpOTNYX1BPUlQoY2hpcCwgSU5ERVgpKTsKLQlvdXRiKHZhbHVlLCBPUFRpOTNYX1BPUlQoY2hpcCwgREFUQSkpOwotfQotCi1zdGF0aWMgdm9pZCBzbmRfb3B0aTkzeF9vdXRfaW1hZ2Uoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLCB1bnNpZ25lZCBjaGFyIHJlZywKLQkJCQkgIHVuc2lnbmVkIGNoYXIgdmFsdWUpCi17Ci0Jc25kX29wdGk5M3hfb3V0KGNoaXAsIHJlZywgY2hpcC0+aW1hZ2VbcmVnXSA9IHZhbHVlKTsKLX0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfb3V0X21hc2soc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLCB1bnNpZ25lZCBjaGFyIHJlZywKLQkJCQkgdW5zaWduZWQgY2hhciBtYXNrLCB1bnNpZ25lZCBjaGFyIHZhbHVlKQotewotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCByZWcsCi0JCShjaGlwLT5pbWFnZVtyZWddICYgfm1hc2spIHwgKHZhbHVlICYgbWFzaykpOwotfQotCi0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X21jZV91cChzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXApCi17Ci0Jc25kX29wdGk5M3hfYnVzeV93YWl0KGNoaXApOwotCi0JY2hpcC0+bWNlX2JpdCA9IE9QVGk5M1hfTUNFOwotCWlmICghKGluYihPUFRpOTNYX1BPUlQoY2hpcCwgSU5ERVgpKSAmIE9QVGk5M1hfTUNFKSkKLQkJb3V0YihjaGlwLT5tY2VfYml0LCBPUFRpOTNYX1BPUlQoY2hpcCwgSU5ERVgpKTsKLX0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfbWNlX2Rvd24oc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwKQotewotCXNuZF9vcHRpOTN4X2J1c3lfd2FpdChjaGlwKTsKLQotCWNoaXAtPm1jZV9iaXQgPSAwOwotCWlmIChpbmIoT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSkgJiBPUFRpOTNYX01DRSkKLQkJb3V0YihjaGlwLT5tY2VfYml0LCBPUFRpOTNYX1BPUlQoY2hpcCwgSU5ERVgpKTsKLX0KLQotI2RlZmluZSBzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCByZWcsIG11dGUpCVwKLQlzbmRfb3B0aTkzeF9vdXQoY2hpcCwgcmVnLCBtdXRlID8gMHg4MCA6IGNoaXAtPmltYWdlW3JlZ10pOwotCi1zdGF0aWMgdm9pZCBzbmRfb3B0aTkzeF9tdXRlKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCwgaW50IG11dGUpCi17Ci0JbXV0ZSA9IG11dGUgPyAxIDogMDsKLQlpZiAoY2hpcC0+bXV0ZSA9PSBtdXRlKQotCQlyZXR1cm47Ci0KLQljaGlwLT5tdXRlID0gbXV0ZTsKLQotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfQ0RfTEVGVF9JTlBVVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9DRF9SSUdIVF9JTlBVVCwgbXV0ZSk7Ci0Jc3dpdGNoIChjaGlwLT5oYXJkd2FyZSkgewotCWNhc2UgT1BUaTlYWF9IV184MkM5MzA6Ci0JCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5MzBfQVVYX0xFRlRfSU5QVVQsIG11dGUpOwotCQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTMwX0FVWF9SSUdIVF9JTlBVVCwgbXV0ZSk7Ci0JCWJyZWFrOwotCWNhc2UgT1BUaTlYWF9IV184MkM5MzE6Ci0JY2FzZSBPUFRpOVhYX0hXXzgyQzkzMzoKLQkJc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzMV9GTV9MRUZUX0lOUFVULCBtdXRlKTsKLQkJc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzMV9GTV9SSUdIVF9JTlBVVCwgbXV0ZSk7Ci0JCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5MzFfQVVYX0xFRlRfSU5QVVQsIG11dGUpOwotCQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTMxX0FVWF9SSUdIVF9JTlBVVCwgbXV0ZSk7Ci0JfQotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfREFDX0xFRlQsIG11dGUpOwotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfREFDX1JJR0hULCBtdXRlKTsKLQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTNYX0xJTkVfTEVGVF9JTlBVVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9MSU5FX1JJR0hUX0lOUFVULCBtdXRlKTsKLQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTNYX01JQ19MRUZUX0lOUFVULCBtdXRlKTsKLQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTNYX01JQ19SSUdIVF9JTlBVVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9PVVRfTEVGVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9PVVRfUklHSFQsIG11dGUpOwotfQotCi0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgc25kX29wdGk5M3hfZ2V0X2NvdW50KHVuc2lnbmVkIGNoYXIgZm9ybWF0LAotCQkJCQkgIHVuc2lnbmVkIGludCBzaXplKQotewotCXN3aXRjaCAoZm9ybWF0ICYgMHhlMCkgewotCWNhc2UgT1BUaTkzWF9MSU5FQVJfMTZfTElUOgotCWNhc2UgT1BUaTkzWF9MSU5FQVJfMTZfQklHOgotCQlzaXplID4+PSAxOwotCQlicmVhazsKLQljYXNlIE9QVGk5M1hfQURQQ01fMTY6Ci0JCXJldHVybiBzaXplID4+IDI7Ci0JfQotCXJldHVybiAoZm9ybWF0ICYgT1BUaTkzWF9TVEVSRU8pID8gKHNpemUgPj4gMSkgOiBzaXplOwotfQotCi1zdGF0aWMgdW5zaWduZWQgaW50IHJhdGVzW10gPSB7ICA1NTEyLCAgNjYxNSwgIDgwMDAsICA5NjAwLCAxMTAyNSwgMTYwMDAsIAotCQkJCTE4OTAwLCAyMjA1MCwgMjc0MjgsIDMyMDAwLCAzMzA3NSwgMzc4MDAsCi0JCQkJNDQxMDAsIDQ4MDAwIH07Ci0jZGVmaW5lIFJBVEVTIEFSUkFZX1NJWkUocmF0ZXMpCi0KLXN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9od19jb25zdHJhaW50X2xpc3QgaHdfY29uc3RyYWludHNfcmF0ZXMgPSB7Ci0JLmNvdW50ID0gUkFURVMsCi0JLmxpc3QgPSByYXRlcywKLQkubWFzayA9IDAsCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBiaXRzW10gPSB7ICAweDAxLCAgMHgwZiwgIDB4MDAsICAweDBlLCAgMHgwMywgIDB4MDIsCi0JCQkJIDB4MDUsICAweDA3LCAgMHgwNCwgIDB4MDYsICAweDBkLCAgMHgwOSwKLQkJCQkgMHgwYiwgIDB4MGN9OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzbmRfb3B0aTkzeF9nZXRfZnJlcSh1bnNpZ25lZCBpbnQgcmF0ZSkKLXsKLQl1bnNpZ25lZCBpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBSQVRFUzsgaSsrKSB7Ci0JCWlmIChyYXRlID09IHJhdGVzW2ldKQotCQkJcmV0dXJuIGJpdHNbaV07Ci0JfQotCXNuZF9CVUcoKTsKLQlyZXR1cm4gYml0c1tSQVRFUy0xXTsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc25kX29wdGk5M3hfZ2V0X2Zvcm1hdChzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsCi0JCQkJCSAgICB1bnNpZ25lZCBpbnQgZm9ybWF0LCBpbnQgY2hhbm5lbHMpCi17Ci0JdW5zaWduZWQgY2hhciByZXR2YWwgPSBPUFRpOTNYX0xJTkVBUl84OwotCi0Jc3dpdGNoIChmb3JtYXQpIHsKLQljYXNlIFNORFJWX1BDTV9GT1JNQVRfTVVfTEFXOgotCQlyZXR2YWwgPSBPUFRpOTNYX1VMQVdfODsKLQkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9QQ01fRk9STUFUX0FfTEFXOgotCQlyZXR2YWwgPSBPUFRpOTNYX0FMQVdfODsKLQkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRToKLQkJcmV0dmFsID0gT1BUaTkzWF9MSU5FQVJfMTZfTElUOwotCQlicmVhazsKLQljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzE2X0JFOgotCQlyZXR2YWwgPSBPUFRpOTNYX0xJTkVBUl8xNl9CSUc7Ci0JCWJyZWFrOwotCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9JTUFfQURQQ006Ci0JCXJldHZhbCA9IE9QVGk5M1hfQURQQ01fMTY7Ci0JfQotCXJldHVybiAoY2hhbm5lbHMgPiAxKSA/IChyZXR2YWwgfCBPUFRpOTNYX1NURVJFTykgOiByZXR2YWw7Ci19Ci0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfcGxheWJhY2tfZm9ybWF0KHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCwgdW5zaWduZWQgY2hhciBmbXQpCi17Ci0JdW5zaWduZWQgY2hhciBtYXNrOwotCi0Jc25kX29wdGk5M3hfbXV0ZShjaGlwLCAxKTsKLQotCXNuZF9vcHRpOTN4X21jZV91cChjaGlwKTsKLQltYXNrID0gKGNoaXAtPm1vZGUgJiBPUFRpOTNYX01PREVfQ0FQVFVSRSkgPyAweGYwIDogMHhmZjsKLQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX1BMQVlfRk9STUFULCBtYXNrLCBmbXQpOwotCXNuZF9vcHRpOTN4X21jZV9kb3duKGNoaXApOwotCi0Jc25kX29wdGk5M3hfbXV0ZShjaGlwLCAwKTsKLX0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfY2FwdHVyZV9mb3JtYXQoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLCB1bnNpZ25lZCBjaGFyIGZtdCkKLXsKLQlzbmRfb3B0aTkzeF9tdXRlKGNoaXAsIDEpOwotCi0Jc25kX29wdGk5M3hfbWNlX3VwKGNoaXApOwotCWlmICghKGNoaXAtPm1vZGUgJiBPUFRpOTNYX01PREVfUExBWSkpCi0JCXNuZF9vcHRpOTN4X291dF9tYXNrKGNoaXAsIE9QVGk5M1hfUExBWV9GT1JNQVQsIDB4MGYsIGZtdCk7Ci0JZWxzZQotCQlmbXQgPSBjaGlwLT5pbWFnZVtPUFRpOTNYX1BMQVlfRk9STUFUXSAmIDB4ZjA7Ci0Jc25kX29wdGk5M3hfb3V0X2ltYWdlKGNoaXAsIE9QVGk5M1hfQ0FQVF9GT1JNQVQsIGZtdCk7Ci0Jc25kX29wdGk5M3hfbWNlX2Rvd24oY2hpcCk7Ci0KLQlzbmRfb3B0aTkzeF9tdXRlKGNoaXAsIDApOwotfQotCi0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfb3BlbihzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsIHVuc2lnbmVkIGludCBtb2RlKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCi0JaWYgKGNoaXAtPm1vZGUgJiBtb2RlKSB7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQkJcmV0dXJuIC1FQUdBSU47Ci0JfQotCi0JaWYgKCEoY2hpcC0+bW9kZSAmIE9QVGk5M1hfTU9ERV9PUEVOKSkgewotCQlvdXRiKDB4MDAsIE9QVGk5M1hfUE9SVChjaGlwLCBTVEFUVVMpKTsKLQkJc25kX29wdGk5M3hfb3V0X21hc2soY2hpcCwgT1BUaTkzWF9QSU5fQ1RSTCwKLQkJCU9QVGk5M1hfSVJRX0VOQUJMRSwgT1BUaTkzWF9JUlFfRU5BQkxFKTsKLQkJY2hpcC0+bW9kZSA9IG1vZGU7Ci0JfQotCWVsc2UKLQkJY2hpcC0+bW9kZSB8PSBtb2RlOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBzbmRfb3B0aTkzeF9jbG9zZShzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsIHVuc2lnbmVkIGludCBtb2RlKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCi0JY2hpcC0+bW9kZSAmPSB+bW9kZTsKLQlpZiAoY2hpcC0+bW9kZSAmIE9QVGk5M1hfTU9ERV9PUEVOKSB7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQkJcmV0dXJuOwotCX0KLQotCXNuZF9vcHRpOTN4X211dGUoY2hpcCwgMSk7Ci0KLQlvdXRiKDAsIE9QVGk5M1hfUE9SVChjaGlwLCBTVEFUVVMpKTsKLQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX1BJTl9DVFJMLCBPUFRpOTNYX0lSUV9FTkFCTEUsCi0JCX5PUFRpOTNYX0lSUV9FTkFCTEUpOwotCi0Jc25kX29wdGk5M3hfbWNlX3VwKGNoaXApOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCBPUFRpOTNYX0lGQUNFX0NPTkYsIDB4MDApOwotCXNuZF9vcHRpOTN4X21jZV9kb3duKGNoaXApOwotCWNoaXAtPm1vZGUgPSAwOwotCi0Jc25kX29wdGk5M3hfbXV0ZShjaGlwLCAwKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgCi0JCQkgICAgICAgdW5zaWduZWQgY2hhciB3aGF0LCBpbnQgY21kKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQotCXN3aXRjaCAoY21kKSB7Ci0JY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKLQljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6Ci0JewotCQl1bnNpZ25lZCBpbnQgd2hhdCA9IDA7Ci0JCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqczsKLQkJc25kX3BjbV9ncm91cF9mb3JfZWFjaF9lbnRyeShzLCBzdWJzdHJlYW0pIHsKLQkJCWlmIChzID09IGNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSkgewotCQkJCXdoYXQgfD0gT1BUaTkzWF9QTEFZQkFDS19FTkFCTEU7Ci0JCQkJc25kX3BjbV90cmlnZ2VyX2RvbmUocywgc3Vic3RyZWFtKTsKLQkJCX0gZWxzZSBpZiAocyA9PSBjaGlwLT5jYXB0dXJlX3N1YnN0cmVhbSkgewotCQkJCXdoYXQgfD0gT1BUaTkzWF9DQVBUVVJFX0VOQUJMRTsKLQkJCQlzbmRfcGNtX3RyaWdnZXJfZG9uZShzLCBzdWJzdHJlYW0pOwotCQkJfQotCQl9Ci0JCXNwaW5fbG9jaygmY2hpcC0+bG9jayk7Ci0JCWlmIChjbWQgPT0gU05EUlZfUENNX1RSSUdHRVJfU1RBUlQpIHsKLQkJCXNuZF9vcHRpOTN4X291dF9tYXNrKGNoaXAsIE9QVGk5M1hfSUZBQ0VfQ09ORiwgd2hhdCwgd2hhdCk7Ci0JCQlpZiAod2hhdCAmIE9QVGk5M1hfQ0FQVFVSRV9FTkFCTEUpCi0JCQkJdWRlbGF5KDUwKTsKLQkJfSBlbHNlCi0JCQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX0lGQUNFX0NPTkYsIHdoYXQsIDB4MDApOwotCQlzcGluX3VubG9jaygmY2hpcC0+bG9jayk7Ci0JCWJyZWFrOwotCX0KLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfcGxheWJhY2tfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKLXsKLQlyZXR1cm4gc25kX29wdGk5M3hfdHJpZ2dlcihzdWJzdHJlYW0sCi0JCQkJICAgT1BUaTkzWF9QTEFZQkFDS19FTkFCTEUsIGNtZCk7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfY2FwdHVyZV90cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgY21kKQotewotCXJldHVybiBzbmRfb3B0aTkzeF90cmlnZ2VyKHN1YnN0cmVhbSwKLQkJCQkgICBPUFRpOTNYX0NBUFRVUkVfRU5BQkxFLCBjbWQpOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKLQkJCQkgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpod19wYXJhbXMpCi17Ci0JcmV0dXJuIHNuZF9wY21fbGliX21hbGxvY19wYWdlcyhzdWJzdHJlYW0sIHBhcmFtc19idWZmZXJfYnl0ZXMoaHdfcGFyYW1zKSk7Ci19Ci0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9od19mcmVlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCXNuZF9wY21fbGliX2ZyZWVfcGFnZXMoc3Vic3RyZWFtKTsKLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3BsYXliYWNrX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwotCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNpZ25lZCBjaGFyIGZvcm1hdDsKLQl1bnNpZ25lZCBpbnQgY291bnQgPSBzbmRfcGNtX2xpYl9wZXJpb2RfYnl0ZXMoc3Vic3RyZWFtKTsKLQl1bnNpZ25lZCBpbnQgc2l6ZSA9IHNuZF9wY21fbGliX2J1ZmZlcl9ieXRlcyhzdWJzdHJlYW0pOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQotCWNoaXAtPnBfZG1hX3NpemUgPSBzaXplOwotCXNuZF9vcHRpOTN4X291dF9tYXNrKGNoaXAsIE9QVGk5M1hfSUZBQ0VfQ09ORiwKLQkJT1BUaTkzWF9QTEFZQkFDS19FTkFCTEUgfCBPUFRpOTNYX1BMQVlCQUNLX1BJTywKLQkJfihPUFRpOTNYX1BMQVlCQUNLX0VOQUJMRSB8IE9QVGk5M1hfUExBWUJBQ0tfUElPKSk7Ci0KLQlzbmRfZG1hX3Byb2dyYW0oY2hpcC0+ZG1hMSwgcnVudGltZS0+ZG1hX2FkZHIsIHNpemUsCi0JCURNQV9NT0RFX1dSSVRFIHwgRE1BX0FVVE9JTklUKTsKLQotCWZvcm1hdCA9IHNuZF9vcHRpOTN4X2dldF9mcmVxKHJ1bnRpbWUtPnJhdGUpOwotCWZvcm1hdCB8PSBzbmRfb3B0aTkzeF9nZXRfZm9ybWF0KGNoaXAsIHJ1bnRpbWUtPmZvcm1hdCwKLQkJcnVudGltZS0+Y2hhbm5lbHMpOwotCXNuZF9vcHRpOTN4X3BsYXliYWNrX2Zvcm1hdChjaGlwLCBmb3JtYXQpOwotCWZvcm1hdCA9IGNoaXAtPmltYWdlW09QVGk5M1hfUExBWV9GT1JNQVRdOwotCi0JY291bnQgPSBzbmRfb3B0aTkzeF9nZXRfY291bnQoZm9ybWF0LCBjb3VudCkgLSAxOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCBPUFRpOTNYX1BMQVlfTFdSX0NOVCwgY291bnQpOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCBPUFRpOTNYX1BMQVlfVVBSX0NOVCwgY291bnQgPj4gOCk7Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfY2FwdHVyZV9wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgY2hhciBmb3JtYXQ7Ci0JdW5zaWduZWQgaW50IGNvdW50ID0gc25kX3BjbV9saWJfcGVyaW9kX2J5dGVzKHN1YnN0cmVhbSk7Ci0JdW5zaWduZWQgaW50IHNpemUgPSBzbmRfcGNtX2xpYl9idWZmZXJfYnl0ZXMoc3Vic3RyZWFtKTsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0KLQljaGlwLT5jX2RtYV9zaXplID0gc2l6ZTsKLQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX0lGQUNFX0NPTkYsCi0JCU9QVGk5M1hfQ0FQVFVSRV9FTkFCTEUgfCBPUFRpOTNYX0NBUFRVUkVfUElPLCAwKTsKLQotCXNuZF9kbWFfcHJvZ3JhbShjaGlwLT5kbWEyLCBydW50aW1lLT5kbWFfYWRkciwgc2l6ZSwKLQkJRE1BX01PREVfUkVBRCB8IERNQV9BVVRPSU5JVCk7Ci0KLQlmb3JtYXQgPSBzbmRfb3B0aTkzeF9nZXRfZnJlcShydW50aW1lLT5yYXRlKTsKLQlmb3JtYXQgfD0gc25kX29wdGk5M3hfZ2V0X2Zvcm1hdChjaGlwLCBydW50aW1lLT5mb3JtYXQsCi0JCXJ1bnRpbWUtPmNoYW5uZWxzKTsKLQlzbmRfb3B0aTkzeF9jYXB0dXJlX2Zvcm1hdChjaGlwLCBmb3JtYXQpOwotCWZvcm1hdCA9IGNoaXAtPmltYWdlW09QVGk5M1hfQ0FQVF9GT1JNQVRdOwotCi0JY291bnQgPSBzbmRfb3B0aTkzeF9nZXRfY291bnQoZm9ybWF0LCBjb3VudCkgLSAxOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCBPUFRpOTNYX0NBUFRfTFdSX0NOVCwgY291bnQpOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCBPUFRpOTNYX0NBUFRfVVBSX0NOVCwgY291bnQgPj4gOCk7Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCBzbmRfb3B0aTkzeF9wbGF5YmFja19wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzaXplX3QgcHRyOwotCi0JaWYgKCEoY2hpcC0+aW1hZ2VbT1BUaTkzWF9JRkFDRV9DT05GXSAmIE9QVGk5M1hfUExBWUJBQ0tfRU5BQkxFKSkKLQkJcmV0dXJuIDA7Ci0KLQlwdHIgPSBzbmRfZG1hX3BvaW50ZXIoY2hpcC0+ZG1hMSwgY2hpcC0+cF9kbWFfc2l6ZSk7Ci0JcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsIHB0cik7Ci19Ci0KLXN0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCBzbmRfb3B0aTkzeF9jYXB0dXJlX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwotCXNpemVfdCBwdHI7Ci0JCi0JaWYgKCEoY2hpcC0+aW1hZ2VbT1BUaTkzWF9JRkFDRV9DT05GXSAmIE9QVGk5M1hfQ0FQVFVSRV9FTkFCTEUpKQotCQlyZXR1cm4gMDsKLQotCXB0ciA9IHNuZF9kbWFfcG9pbnRlcihjaGlwLT5kbWEyLCBjaGlwLT5jX2RtYV9zaXplKTsKLQlyZXR1cm4gYnl0ZXNfdG9fZnJhbWVzKHN1YnN0cmVhbS0+cnVudGltZSwgcHRyKTsKLX0KLQotCi1zdGF0aWMgdm9pZCBzbmRfb3B0aTkzeF9vdmVycmFuZ2Uoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCi0JaWYgKHNuZF9vcHRpOTN4X2luKGNoaXAsIE9QVGk5M1hfRVJSX0lOSVQpICYgKDB4MDggfCAweDAyKSkKLQkJY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0tPnJ1bnRpbWUtPm92ZXJyYW5nZSsrOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotfQotCiBzdGF0aWMgaXJxcmV0dXJuX3Qgc25kX29wdGk5M3hfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNvZGVjID0gZGV2X2lkOworCXN0cnVjdCBzbmRfY3M0MjMxICpjb2RlYyA9IGRldl9pZDsKKwlzdHJ1Y3Qgc25kX29wdGk5eHggKmNoaXAgPSBjb2RlYy0+Y2FyZC0+cHJpdmF0ZV9kYXRhOwogCXVuc2lnbmVkIGNoYXIgc3RhdHVzOwogCi0Jc3RhdHVzID0gc25kX29wdGk5eHhfcmVhZChjb2RlYy0+Y2hpcCwgT1BUaTlYWF9NQ19SRUcoMTEpKTsKKwlzdGF0dXMgPSBzbmRfb3B0aTl4eF9yZWFkKGNoaXAsIE9QVGk5WFhfTUNfUkVHKDExKSk7CiAJaWYgKChzdGF0dXMgJiBPUFRpOTNYX0lSUV9QTEFZQkFDSykgJiYgY29kZWMtPnBsYXliYWNrX3N1YnN0cmVhbSkKIAkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZChjb2RlYy0+cGxheWJhY2tfc3Vic3RyZWFtKTsKIAlpZiAoKHN0YXR1cyAmIE9QVGk5M1hfSVJRX0NBUFRVUkUpICYmIGNvZGVjLT5jYXB0dXJlX3N1YnN0cmVhbSkgewotCQlzbmRfb3B0aTkzeF9vdmVycmFuZ2UoY29kZWMpOworCQlzbmRfY3M0MjMxX292ZXJyYW5nZShjb2RlYyk7CiAJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoY29kZWMtPmNhcHR1cmVfc3Vic3RyZWFtKTsKIAl9CiAJb3V0YigweDAwLCBPUFRpOTNYX1BPUlQoY29kZWMsIFNUQVRVUykpOwogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIAotCi1zdGF0aWMgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgc25kX29wdGk5M3hfcGxheWJhY2sgPSB7Ci0JLmluZm8gPQkJCShTTkRSVl9QQ01fSU5GT19NTUFQIHwgU05EUlZfUENNX0lORk9fSU5URVJMRUFWRUQgfAotCQkJCSBTTkRSVl9QQ01fSU5GT19NTUFQX1ZBTElEIHwgU05EUlZfUENNX0lORk9fU1lOQ19TVEFSVCksCi0JLmZvcm1hdHMgPQkJKFNORFJWX1BDTV9GTVRCSVRfTVVfTEFXIHwgU05EUlZfUENNX0ZNVEJJVF9BX0xBVyB8IFNORFJWX1BDTV9GTVRCSVRfSU1BX0FEUENNIHwKLQkJCQkgU05EUlZfUENNX0ZNVEJJVF9VOCB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMTZfQkUpLAotCS5yYXRlcyA9CQlTTkRSVl9QQ01fUkFURV9LTk9UIHwgU05EUlZfUENNX1JBVEVfODAwMF80ODAwMCwKLQkucmF0ZV9taW4gPQkJNTUxMiwKLQkucmF0ZV9tYXggPQkJNDgwMDAsCi0JLmNoYW5uZWxzX21pbiA9CQkxLAotCS5jaGFubmVsc19tYXggPQkJMiwKLQkuYnVmZmVyX2J5dGVzX21heCA9CSgxMjgqMTAyNCksCi0JLnBlcmlvZF9ieXRlc19taW4gPQk2NCwKLQkucGVyaW9kX2J5dGVzX21heCA9CSgxMjgqMTAyNCksCi0JLnBlcmlvZHNfbWluID0JCTEsCi0JLnBlcmlvZHNfbWF4ID0JCTEwMjQsCi0JLmZpZm9fc2l6ZSA9CQkwLAotfTsKLQotc3RhdGljIHN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlIHNuZF9vcHRpOTN4X2NhcHR1cmUgPSB7Ci0JLmluZm8gPQkJCShTTkRSVl9QQ01fSU5GT19NTUFQIHwgU05EUlZfUENNX0lORk9fSU5URVJMRUFWRUQgfAotCQkJCSBTTkRSVl9QQ01fSU5GT19NTUFQX1ZBTElEIHwgU05EUlZfUENNX0lORk9fU1lOQ19TVEFSVCksCi0JLmZvcm1hdHMgPQkJKFNORFJWX1BDTV9GTVRCSVRfTVVfTEFXIHwgU05EUlZfUENNX0ZNVEJJVF9BX0xBVyB8IFNORFJWX1BDTV9GTVRCSVRfSU1BX0FEUENNIHwKLQkJCQkgU05EUlZfUENNX0ZNVEJJVF9VOCB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMTZfQkUpLAotCS5yYXRlcyA9CQlTTkRSVl9QQ01fUkFURV84MDAwXzQ4MDAwLAotCS5yYXRlX21pbiA9CQk1NTEyLAotCS5yYXRlX21heCA9CQk0ODAwMCwKLQkuY2hhbm5lbHNfbWluID0JCTEsCi0JLmNoYW5uZWxzX21heCA9CQkyLAotCS5idWZmZXJfYnl0ZXNfbWF4ID0JKDEyOCoxMDI0KSwKLQkucGVyaW9kX2J5dGVzX21pbiA9CTY0LAotCS5wZXJpb2RfYnl0ZXNfbWF4ID0JKDEyOCoxMDI0KSwKLQkucGVyaW9kc19taW4gPQkJMSwKLQkucGVyaW9kc19tYXggPQkJMTAyNCwKLQkuZmlmb19zaXplID0JCTAsCi19OwotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3BsYXliYWNrX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCi17Ci0JaW50IGVycm9yOwotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwotCi0JaWYgKChlcnJvciA9IHNuZF9vcHRpOTN4X29wZW4oY2hpcCwgT1BUaTkzWF9NT0RFX1BMQVkpKSA8IDApCi0JCXJldHVybiBlcnJvcjsKLQlzbmRfcGNtX3NldF9zeW5jKHN1YnN0cmVhbSk7Ci0JY2hpcC0+cGxheWJhY2tfc3Vic3RyZWFtID0gc3Vic3RyZWFtOwotCXJ1bnRpbWUtPmh3ID0gc25kX29wdGk5M3hfcGxheWJhY2s7Ci0Jc25kX3BjbV9saW1pdF9pc2FfZG1hX3NpemUoY2hpcC0+ZG1hMSwgJnJ1bnRpbWUtPmh3LmJ1ZmZlcl9ieXRlc19tYXgpOwotCXNuZF9wY21faHdfY29uc3RyYWludF9saXN0KHJ1bnRpbWUsIDAsIFNORFJWX1BDTV9IV19QQVJBTV9SQVRFLCAmaHdfY29uc3RyYWludHNfcmF0ZXMpOwotCXJldHVybiBlcnJvcjsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9jYXB0dXJlX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCi17Ci0JaW50IGVycm9yOwotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwotCi0JaWYgKChlcnJvciA9IHNuZF9vcHRpOTN4X29wZW4oY2hpcCwgT1BUaTkzWF9NT0RFX0NBUFRVUkUpKSA8IDApCi0JCXJldHVybiBlcnJvcjsKLQlydW50aW1lLT5odyA9IHNuZF9vcHRpOTN4X2NhcHR1cmU7Ci0Jc25kX3BjbV9zZXRfc3luYyhzdWJzdHJlYW0pOwotCWNoaXAtPmNhcHR1cmVfc3Vic3RyZWFtID0gc3Vic3RyZWFtOwotCXNuZF9wY21fbGltaXRfaXNhX2RtYV9zaXplKGNoaXAtPmRtYTIsICZydW50aW1lLT5ody5idWZmZXJfYnl0ZXNfbWF4KTsKLQlzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbGlzdChydW50aW1lLCAwLCBTTkRSVl9QQ01fSFdfUEFSQU1fUkFURSwgJmh3X2NvbnN0cmFpbnRzX3JhdGVzKTsKLQlyZXR1cm4gZXJyb3I7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfcGxheWJhY2tfY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwotCi0JY2hpcC0+cGxheWJhY2tfc3Vic3RyZWFtID0gTlVMTDsKLQlzbmRfb3B0aTkzeF9jbG9zZShjaGlwLCBPUFRpOTNYX01PREVfUExBWSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfY2FwdHVyZV9jbG9zZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0KLQljaGlwLT5jYXB0dXJlX3N1YnN0cmVhbSA9IE5VTEw7Ci0Jc25kX29wdGk5M3hfY2xvc2UoY2hpcCwgT1BUaTkzWF9NT0RFX0NBUFRVUkUpOwotCXJldHVybiAwOwotfQotCi0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X2luaXQoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IGk7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXNuZF9vcHRpOTN4X21jZV91cChjaGlwKTsKLQotCWZvciAoaSA9IDA7IGkgPCAzMjsgaSsrKQotCQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgaSwgc25kX29wdGk5M3hfZGVmYXVsdF9pbWFnZVtpXSk7Ci0KLQlzbmRfb3B0aTkzeF9tY2VfZG93bihjaGlwKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfcHJvYmUoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgY2hhciB2YWw7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXZhbCA9IHNuZF9vcHRpOTN4X2luKGNoaXAsIE9QVGk5M1hfSUQpICYgMHgwZjsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm4gKHZhbCA9PSAweDBhKSA/IDAgOiAtRU5PREVWOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2ZyZWUoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwKQotewotCXJlbGVhc2VfYW5kX2ZyZWVfcmVzb3VyY2UoY2hpcC0+cmVzX3BvcnQpOwotCWlmIChjaGlwLT5kbWExID49IDApIHsKLQkJZGlzYWJsZV9kbWEoY2hpcC0+ZG1hMSk7Ci0JCWZyZWVfZG1hKGNoaXAtPmRtYTEpOwotCX0KLQlpZiAoY2hpcC0+ZG1hMiA+PSAwKSB7Ci0JCWRpc2FibGVfZG1hKGNoaXAtPmRtYTIpOwotCQlmcmVlX2RtYShjaGlwLT5kbWEyKTsKLQl9Ci0JaWYgKGNoaXAtPmlycSA+PSAwKSB7Ci0JICBmcmVlX2lycShjaGlwLT5pcnEsIGNoaXApOwotCX0KLQlrZnJlZShjaGlwKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9kZXZfZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IGRldmljZS0+ZGV2aWNlX2RhdGE7Ci0JcmV0dXJuIHNuZF9vcHRpOTN4X2ZyZWUoY2hpcCk7Ci19Ci0KLXN0YXRpYyBjb25zdCBjaGFyICpzbmRfb3B0aTkzeF9jaGlwX2lkKHN0cnVjdCBzbmRfb3B0aTkzeCAqY29kZWMpCi17Ci0Jc3dpdGNoIChjb2RlYy0+aGFyZHdhcmUpIHsKLQljYXNlIE9QVGk5WFhfSFdfODJDOTMwOiByZXR1cm4gIjgyQzkzMCI7Ci0JY2FzZSBPUFRpOVhYX0hXXzgyQzkzMTogcmV0dXJuICI4MkM5MzEiOwotCWNhc2UgT1BUaTlYWF9IV184MkM5MzM6IHJldHVybiAiODJDOTMzIjsKLQlkZWZhdWx0OgkJcmV0dXJuICI/Pz8iOwotCX0KLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9jcmVhdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX29wdGk5eHggKmNoaXAsCi0JCQkgICAgICBpbnQgZG1hMSwgaW50IGRtYTIsCi0JCQkgICAgICBzdHJ1Y3Qgc25kX29wdGk5M3ggKipyY29kZWMpCi17Ci0Jc3RhdGljIHN0cnVjdCBzbmRfZGV2aWNlX29wcyBvcHMgPSB7Ci0JCS5kZXZfZnJlZSA9CXNuZF9vcHRpOTN4X2Rldl9mcmVlLAotCX07Ci0JaW50IGVycm9yOwotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY29kZWM7Ci0KLQkqcmNvZGVjID0gTlVMTDsKLQljb2RlYyA9IGt6YWxsb2Moc2l6ZW9mKCpjb2RlYyksIEdGUF9LRVJORUwpOwotCWlmIChjb2RlYyA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKLQljb2RlYy0+aXJxID0gLTE7Ci0JY29kZWMtPmRtYTEgPSAtMTsKLQljb2RlYy0+ZG1hMiA9IC0xOwotCi0JaWYgKChjb2RlYy0+cmVzX3BvcnQgPSByZXF1ZXN0X3JlZ2lvbihjaGlwLT53c3NfYmFzZSArIDQsIDQsICJPUFRJOTN4IENPREVDIikpID09IE5VTEwpIHsKLQkJc25kX3ByaW50ayhLRVJOX0VSUiAib3B0aTl4eDogY2FuJ3QgZ3JhYiBwb3J0IDB4JWx4XG4iLCBjaGlwLT53c3NfYmFzZSArIDQpOwotCQlzbmRfb3B0aTkzeF9mcmVlKGNvZGVjKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9Ci0JaWYgKHJlcXVlc3RfZG1hKGRtYTEsICJPUFRJOTN4IC0gMSIpKSB7Ci0JCXNuZF9wcmludGsoS0VSTl9FUlIgIm9wdGk5eHg6IGNhbid0IGdyYWIgRE1BMSAlZFxuIiwgZG1hMSk7Ci0JCXNuZF9vcHRpOTN4X2ZyZWUoY29kZWMpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQljb2RlYy0+ZG1hMSA9IGNoaXAtPmRtYTE7Ci0JaWYgKHJlcXVlc3RfZG1hKGRtYTIsICJPUFRJOTN4IC0gMiIpKSB7Ci0JCXNuZF9wcmludGsoS0VSTl9FUlIgIm9wdGk5eHg6IGNhbid0IGdyYWIgRE1BMiAlZFxuIiwgZG1hMik7Ci0JCXNuZF9vcHRpOTN4X2ZyZWUoY29kZWMpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQljb2RlYy0+ZG1hMiA9IGNoaXAtPmRtYTI7Ci0KLQlpZiAocmVxdWVzdF9pcnEoY2hpcC0+aXJxLCBzbmRfb3B0aTkzeF9pbnRlcnJ1cHQsIElSUUZfRElTQUJMRUQsIERFVl9OQU1FIiAtIFdTUyIsIGNvZGVjKSkgewotCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJvcHRpOXh4OiBjYW4ndCBncmFiIElSUSAlZFxuIiwgY2hpcC0+aXJxKTsKLQkJc25kX29wdGk5M3hfZnJlZShjb2RlYyk7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCi0JY29kZWMtPmNhcmQgPSBjYXJkOwotCWNvZGVjLT5wb3J0ID0gY2hpcC0+d3NzX2Jhc2UgKyA0OwotCWNvZGVjLT5pcnEgPSBjaGlwLT5pcnE7Ci0KLQlzcGluX2xvY2tfaW5pdCgmY29kZWMtPmxvY2spOwotCWNvZGVjLT5oYXJkd2FyZSA9IGNoaXAtPmhhcmR3YXJlOwotCWNvZGVjLT5jaGlwID0gY2hpcDsKLQotCWlmICgoZXJyb3IgPSBzbmRfb3B0aTkzeF9wcm9iZShjb2RlYykpKSB7Ci0JCXNuZF9vcHRpOTN4X2ZyZWUoY29kZWMpOwotCQlyZXR1cm4gZXJyb3I7Ci0JfQotCi0Jc25kX29wdGk5M3hfaW5pdChjb2RlYyk7Ci0KLQkvKiBSZWdpc3RlciBkZXZpY2UgKi8KLQlpZiAoKGVycm9yID0gc25kX2RldmljZV9uZXcoY2FyZCwgU05EUlZfREVWX0xPV0xFVkVMLCBjb2RlYywgJm9wcykpIDwgMCkgewotCQlzbmRfb3B0aTkzeF9mcmVlKGNvZGVjKTsKLQkJcmV0dXJuIGVycm9yOwotCX0KLQotCSpyY29kZWMgPSBjb2RlYzsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBzbmRfb3B0aTkzeF9wbGF5YmFja19vcHMgPSB7Ci0JLm9wZW4gPQkJc25kX29wdGk5M3hfcGxheWJhY2tfb3BlbiwKLQkuY2xvc2UgPQlzbmRfb3B0aTkzeF9wbGF5YmFja19jbG9zZSwKLQkuaW9jdGwgPQlzbmRfcGNtX2xpYl9pb2N0bCwKLQkuaHdfcGFyYW1zID0Jc25kX29wdGk5M3hfaHdfcGFyYW1zLAotCS5od19mcmVlID0Jc25kX29wdGk5M3hfaHdfZnJlZSwKLQkucHJlcGFyZSA9CXNuZF9vcHRpOTN4X3BsYXliYWNrX3ByZXBhcmUsCi0JLnRyaWdnZXIgPQlzbmRfb3B0aTkzeF9wbGF5YmFja190cmlnZ2VyLAotCS5wb2ludGVyID0Jc25kX29wdGk5M3hfcGxheWJhY2tfcG9pbnRlciwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9vcHMgc25kX29wdGk5M3hfY2FwdHVyZV9vcHMgPSB7Ci0JLm9wZW4gPQkJc25kX29wdGk5M3hfY2FwdHVyZV9vcGVuLAotCS5jbG9zZSA9CXNuZF9vcHRpOTN4X2NhcHR1cmVfY2xvc2UsCi0JLmlvY3RsID0Jc25kX3BjbV9saWJfaW9jdGwsCi0JLmh3X3BhcmFtcyA9CXNuZF9vcHRpOTN4X2h3X3BhcmFtcywKLQkuaHdfZnJlZSA9CXNuZF9vcHRpOTN4X2h3X2ZyZWUsCi0JLnByZXBhcmUgPQlzbmRfb3B0aTkzeF9jYXB0dXJlX3ByZXBhcmUsCi0JLnRyaWdnZXIgPQlzbmRfb3B0aTkzeF9jYXB0dXJlX3RyaWdnZXIsCi0JLnBvaW50ZXIgPQlzbmRfb3B0aTkzeF9jYXB0dXJlX3BvaW50ZXIsCi19OwotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3BjbShzdHJ1Y3Qgc25kX29wdGk5M3ggKmNvZGVjLCBpbnQgZGV2aWNlLCBzdHJ1Y3Qgc25kX3BjbSAqKnJwY20pCi17Ci0JaW50IGVycm9yOwotCXN0cnVjdCBzbmRfcGNtICpwY207Ci0KLQlpZiAoKGVycm9yID0gc25kX3BjbV9uZXcoY29kZWMtPmNhcmQsICJPUFRpIDgyQzkzWCIsIGRldmljZSwgMSwgMSwgJnBjbSkpIDwgMCkKLQkJcmV0dXJuIGVycm9yOwotCi0Jc25kX3BjbV9zZXRfb3BzKHBjbSwgU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSywgJnNuZF9vcHRpOTN4X3BsYXliYWNrX29wcyk7Ci0Jc25kX3BjbV9zZXRfb3BzKHBjbSwgU05EUlZfUENNX1NUUkVBTV9DQVBUVVJFLCAmc25kX29wdGk5M3hfY2FwdHVyZV9vcHMpOwotCi0JcGNtLT5wcml2YXRlX2RhdGEgPSBjb2RlYzsKLQlwY20tPmluZm9fZmxhZ3MgPSBTTkRSVl9QQ01fSU5GT19KT0lOVF9EVVBMRVg7Ci0KLQlzdHJjcHkocGNtLT5uYW1lLCBzbmRfb3B0aTkzeF9jaGlwX2lkKGNvZGVjKSk7Ci0KLQlzbmRfcGNtX2xpYl9wcmVhbGxvY2F0ZV9wYWdlc19mb3JfYWxsKHBjbSwgU05EUlZfRE1BX1RZUEVfREVWLAotCQkJCQkgICAgICBzbmRfZG1hX2lzYV9kYXRhKCksCi0JCQkJCSAgICAgIDY0KjEwMjQsIGNvZGVjLT5kbWExID4gMyB8fCBjb2RlYy0+ZG1hMiA+IDMgPyAxMjgqMTAyNCA6IDY0KjEwMjQpOwotCi0JY29kZWMtPnBjbSA9IHBjbTsKLQlpZiAocnBjbSkKLQkJKnJwY20gPSBwY207Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiAgTUlYRVIgcGFydAotICovCi0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfaW5mb19tdXgoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCi17Ci0Jc3RhdGljIGNoYXIgKnRleHRzWzRdID0gewotCQkiTGluZTEiLCAiQXV4IiwgIk1pYyIsICJNaXgiCi0JfTsKLQotCXVpbmZvLT50eXBlID0gU05EUlZfQ1RMX0VMRU1fVFlQRV9FTlVNRVJBVEVEOwotCXVpbmZvLT5jb3VudCA9IDI7Ci0JdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbXMgPSA0OwotCWlmICh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtID4gMykKLQkJdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbSA9IDM7Ci0Jc3RyY3B5KHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLm5hbWUsIHRleHRzW3VpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1dKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9nZXRfbXV4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQkKLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0gPSAoY2hpcC0+aW1hZ2VbT1BUaTkzWF9NSVhPVVRfTEVGVF0gJiBPUFRpOTNYX01JWE9VVF9NSVhFUikgPj4gNjsKLQl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzFdID0gKGNoaXAtPmltYWdlW09QVGk5M1hfTUlYT1VUX1JJR0hUXSAmIE9QVGk5M1hfTUlYT1VUX01JWEVSKSA+PiA2OwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9wdXRfbXV4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNpZ25lZCBzaG9ydCBsZWZ0LCByaWdodDsKLQlpbnQgY2hhbmdlOwotCQotCWlmICh1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdID4gMyB8fAotCSAgICB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzFdID4gMykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JbGVmdCA9IHVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0gPDwgNjsKLQlyaWdodCA9IHVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMV0gPDwgNjsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCWxlZnQgPSAoY2hpcC0+aW1hZ2VbT1BUaTkzWF9NSVhPVVRfTEVGVF0gJiB+T1BUaTkzWF9NSVhPVVRfTUlYRVIpIHwgbGVmdDsKLQlyaWdodCA9IChjaGlwLT5pbWFnZVtPUFRpOTNYX01JWE9VVF9SSUdIVF0gJiB+T1BUaTkzWF9NSVhPVVRfTUlYRVIpIHwgcmlnaHQ7Ci0JY2hhbmdlID0gbGVmdCAhPSBjaGlwLT5pbWFnZVtPUFRpOTNYX01JWE9VVF9MRUZUXSB8fAotCSAgICAgICAgIHJpZ2h0ICE9IGNoaXAtPmltYWdlW09QVGk5M1hfTUlYT1VUX1JJR0hUXTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9NSVhPVVRfTEVGVCwgbGVmdCk7Ci0Jc25kX29wdGk5M3hfb3V0X2ltYWdlKGNoaXAsIE9QVGk5M1hfTUlYT1VUX1JJR0hULCByaWdodCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXJldHVybiBjaGFuZ2U7Ci19Ci0KLSNpZiAwCi0KLSNkZWZpbmUgT1BUaTkzWF9TSU5HTEUoeG5hbWUsIHhpbmRleCwgcmVnLCBzaGlmdCwgbWFzaywgaW52ZXJ0KSBcCi17IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKLSAgLmluZm8gPSBzbmRfb3B0aTkzeF9pbmZvX3NpbmdsZSwgXAotICAuZ2V0ID0gc25kX29wdGk5M3hfZ2V0X3NpbmdsZSwgLnB1dCA9IHNuZF9vcHRpOTN4X3B1dF9zaW5nbGUsIFwKLSAgLnByaXZhdGVfdmFsdWUgPSByZWcgfCAoc2hpZnQgPDwgOCkgfCAobWFzayA8PCAxNikgfCAoaW52ZXJ0IDw8IDI0KSB9Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfaW5mb19zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCi17Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHhmZjsKLQotCXVpbmZvLT50eXBlID0gbWFzayA9PSAxID8gU05EUlZfQ1RMX0VMRU1fVFlQRV9CT09MRUFOIDogU05EUlZfQ1RMX0VMRU1fVFlQRV9JTlRFR0VSOwotCXVpbmZvLT5jb3VudCA9IDE7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSBtYXNrOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2dldF9zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHNoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweGZmOwotCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQkKLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gKGNoaXAtPmltYWdlW3JlZ10gPj4gc2hpZnQpICYgbWFzazsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JaWYgKGludmVydCkKLQkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBtYXNrIC0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfcHV0X3NpbmdsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOwotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4ZmY7Ci0JaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCWludCBjaGFuZ2U7Ci0JdW5zaWduZWQgc2hvcnQgdmFsOwotCQotCXZhbCA9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSAmIG1hc2spOwotCWlmIChpbnZlcnQpCi0JCXZhbCA9IG1hc2sgLSB2YWw7Ci0JdmFsIDw8PSBzaGlmdDsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXZhbCA9IChjaGlwLT5pbWFnZVtyZWddICYgfihtYXNrIDw8IHNoaWZ0KSkgfCB2YWw7Ci0JY2hhbmdlID0gdmFsICE9IGNoaXAtPmltYWdlW3JlZ107Ci0Jc25kX29wdGk5M3hfb3V0KGNoaXAsIHJlZywgdmFsKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIGNoYW5nZTsKLX0KLQotI2VuZGlmIC8qIHNpbmdsZSAqLwotCi0jZGVmaW5lIE9QVGk5M1hfRE9VQkxFKHhuYW1lLCB4aW5kZXgsIGxlZnRfcmVnLCByaWdodF9yZWcsIHNoaWZ0X2xlZnQsIHNoaWZ0X3JpZ2h0LCBtYXNrLCBpbnZlcnQpIFwKLXsgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAotICAuaW5mbyA9IHNuZF9vcHRpOTN4X2luZm9fZG91YmxlLCBcCi0gIC5nZXQgPSBzbmRfb3B0aTkzeF9nZXRfZG91YmxlLCAucHV0ID0gc25kX29wdGk5M3hfcHV0X2RvdWJsZSwgXAotICAucHJpdmF0ZV92YWx1ZSA9IGxlZnRfcmVnIHwgKHJpZ2h0X3JlZyA8PCA4KSB8IChzaGlmdF9sZWZ0IDw8IDE2KSB8IChzaGlmdF9yaWdodCA8PCAxOSkgfCAobWFzayA8PCAyNCkgfCAoaW52ZXJ0IDw8IDIyKSB9Ci0KLSNkZWZpbmUgT1BUaTkzWF9ET1VCTEVfSU5WRVJUX0lOVkVSVCh4Y3RsKSBcCi0JZG8geyB4Y3RsLnByaXZhdGVfdmFsdWUgXj0gMjI7IH0gd2hpbGUgKDApCi0jZGVmaW5lIE9QVGk5M1hfRE9VQkxFX0NIQU5HRV9SRUdTKHhjdGwsIGxlZnRfcmVnLCByaWdodF9yZWcpIFwKLQlkbyB7IHhjdGwucHJpdmF0ZV92YWx1ZSAmPSB+MHgwMDAwZmZmZjsgXAotCSAgICAgeGN0bC5wcml2YXRlX3ZhbHVlIHw9IGxlZnRfcmVnIHwgKHJpZ2h0X3JlZyA8PCA4KTsgfSB3aGlsZSAoMCkKLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9pbmZvX2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKLXsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCi0JdWluZm8tPnR5cGUgPSBtYXNrID09IDEgPyBTTkRSVl9DVExfRUxFTV9UWVBFX0JPT0xFQU4gOiBTTkRSVl9DVExfRUxFTV9UWVBFX0lOVEVHRVI7Ci0JdWluZm8tPmNvdW50ID0gMjsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOwotCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IG1hc2s7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfZ2V0X2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IGxlZnRfcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOwotCWludCByaWdodF9yZWcgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOwotCWludCBzaGlmdF9sZWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MDc7Ci0JaW50IHNoaWZ0X3JpZ2h0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE5KSAmIDB4MDc7Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDIyKSAmIDE7Ci0JCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IChjaGlwLT5pbWFnZVtsZWZ0X3JlZ10gPj4gc2hpZnRfbGVmdCkgJiBtYXNrOwotCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gKGNoaXAtPmltYWdlW3JpZ2h0X3JlZ10gPj4gc2hpZnRfcmlnaHQpICYgbWFzazsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JaWYgKGludmVydCkgewotCQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IG1hc2sgLSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsKLQkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gPSBtYXNrIC0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV07Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3B1dF9kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBsZWZ0X3JlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgcmlnaHRfcmVnID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgc2hpZnRfbGVmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OwotCWludCBzaGlmdF9yaWdodCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxOSkgJiAweDA3OwotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0JaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOwotCWludCBjaGFuZ2U7Ci0JdW5zaWduZWQgc2hvcnQgdmFsMSwgdmFsMjsKLQkKLQl2YWwxID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gJiBtYXNrOwotCXZhbDIgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSAmIG1hc2s7Ci0JaWYgKGludmVydCkgewotCQl2YWwxID0gbWFzayAtIHZhbDE7Ci0JCXZhbDIgPSBtYXNrIC0gdmFsMjsKLQl9Ci0JdmFsMSA8PD0gc2hpZnRfbGVmdDsKLQl2YWwyIDw8PSBzaGlmdF9yaWdodDsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXZhbDEgPSAoY2hpcC0+aW1hZ2VbbGVmdF9yZWddICYgfihtYXNrIDw8IHNoaWZ0X2xlZnQpKSB8IHZhbDE7Ci0JdmFsMiA9IChjaGlwLT5pbWFnZVtyaWdodF9yZWddICYgfihtYXNrIDw8IHNoaWZ0X3JpZ2h0KSkgfCB2YWwyOwotCWNoYW5nZSA9IHZhbDEgIT0gY2hpcC0+aW1hZ2VbbGVmdF9yZWddIHx8IHZhbDIgIT0gY2hpcC0+aW1hZ2VbcmlnaHRfcmVnXTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgbGVmdF9yZWcsIHZhbDEpOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCByaWdodF9yZWcsIHZhbDIpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlyZXR1cm4gY2hhbmdlOwotfQotCi1zdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc25kX29wdGk5M3hfY29udHJvbHNbXSBfX2RldmluaXRkYXRhID0gewotT1BUaTkzWF9ET1VCTEUoIk1hc3RlciBQbGF5YmFjayBTd2l0Y2giLCAwLCBPUFRpOTNYX09VVF9MRUZULCBPUFRpOTNYX09VVF9SSUdIVCwgNywgNywgMSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiTWFzdGVyIFBsYXliYWNrIFZvbHVtZSIsIDAsIE9QVGk5M1hfT1VUX0xFRlQsIE9QVGk5M1hfT1VUX1JJR0hULCAxLCAxLCAzMSwgMSksIAotT1BUaTkzWF9ET1VCTEUoIlBDTSBQbGF5YmFjayBTd2l0Y2giLCAwLCBPUFRpOTNYX0RBQ19MRUZULCBPUFRpOTNYX0RBQ19SSUdIVCwgNywgNywgMSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiUENNIFBsYXliYWNrIFZvbHVtZSIsIDAsIE9QVGk5M1hfREFDX0xFRlQsIE9QVGk5M1hfREFDX1JJR0hULCAwLCAwLCAzMSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiRk0gUGxheWJhY2sgU3dpdGNoIiwgMCwgT1BUaTkzMV9GTV9MRUZUX0lOUFVULCBPUFRpOTMxX0ZNX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJGTSBQbGF5YmFjayBWb2x1bWUiLCAwLCBPUFRpOTMxX0ZNX0xFRlRfSU5QVVQsIE9QVGk5MzFfRk1fUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJMaW5lIFBsYXliYWNrIFN3aXRjaCIsIDAsIE9QVGk5M1hfTElORV9MRUZUX0lOUFVULCBPUFRpOTNYX0xJTkVfUklHSFRfSU5QVVQsIDcsIDcsIDEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIkxpbmUgUGxheWJhY2sgVm9sdW1lIiwgMCwgT1BUaTkzWF9MSU5FX0xFRlRfSU5QVVQsIE9QVGk5M1hfTElORV9SSUdIVF9JTlBVVCwgMSwgMSwgMTUsIDEpLCAKLU9QVGk5M1hfRE9VQkxFKCJNaWMgUGxheWJhY2sgU3dpdGNoIiwgMCwgT1BUaTkzWF9NSUNfTEVGVF9JTlBVVCwgT1BUaTkzWF9NSUNfUklHSFRfSU5QVVQsIDcsIDcsIDEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIk1pYyBQbGF5YmFjayBWb2x1bWUiLCAwLCBPUFRpOTNYX01JQ19MRUZUX0lOUFVULCBPUFRpOTNYX01JQ19SSUdIVF9JTlBVVCwgMSwgMSwgMTUsIDEpLCAKLU9QVGk5M1hfRE9VQkxFKCJNaWMgQm9vc3QiLCAwLCBPUFRpOTNYX01JWE9VVF9MRUZULCBPUFRpOTNYX01JWE9VVF9SSUdIVCwgNSwgNSwgMSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiQ0QgUGxheWJhY2sgU3dpdGNoIiwgMCwgT1BUaTkzWF9DRF9MRUZUX0lOUFVULCBPUFRpOTNYX0NEX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJDRCBQbGF5YmFjayBWb2x1bWUiLCAwLCBPUFRpOTNYX0NEX0xFRlRfSU5QVVQsIE9QVGk5M1hfQ0RfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJBdXggUGxheWJhY2sgU3dpdGNoIiwgMCwgT1BUaTkzMV9BVVhfTEVGVF9JTlBVVCwgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQsIDcsIDcsIDEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIkF1eCBQbGF5YmFjayBWb2x1bWUiLCAwLCBPUFRpOTMxX0FVWF9MRUZUX0lOUFVULCBPUFRpOTMxX0FVWF9SSUdIVF9JTlBVVCwgMSwgMSwgMTUsIDEpLCAKLU9QVGk5M1hfRE9VQkxFKCJDYXB0dXJlIFZvbHVtZSIsIDAsIE9QVGk5M1hfTUlYT1VUX0xFRlQsIE9QVGk5M1hfTUlYT1VUX1JJR0hULCAwLCAwLCAxNSwgMCksCi17Ci0JLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCi0JLm5hbWUgPSAiQ2FwdHVyZSBTb3VyY2UiLAotCS5pbmZvID0gc25kX29wdGk5M3hfaW5mb19tdXgsCi0JLmdldCA9IHNuZF9vcHRpOTN4X2dldF9tdXgsCi0JLnB1dCA9IHNuZF9vcHRpOTN4X3B1dF9tdXgsCi19Ci19OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotc3RhdGljIGludCBfX2RldmluaXQgc25kX29wdGk5M3hfbWl4ZXIoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwKQotewotCXN0cnVjdCBzbmRfY2FyZCAqY2FyZDsKLQlzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBrbmV3OwotCWludCBlcnI7Ci0JdW5zaWduZWQgaW50IGlkeDsKLQotCXNuZF9hc3NlcnQoY2hpcCAhPSBOVUxMICYmIGNoaXAtPmNhcmQgIT0gTlVMTCwgcmV0dXJuIC1FSU5WQUwpOwotCi0JY2FyZCA9IGNoaXAtPmNhcmQ7Ci0KLQlzdHJjcHkoY2FyZC0+bWl4ZXJuYW1lLCBzbmRfb3B0aTkzeF9jaGlwX2lkKGNoaXApKTsKLQotCWZvciAoaWR4ID0gMDsgaWR4IDwgQVJSQVlfU0laRShzbmRfb3B0aTkzeF9jb250cm9scyk7IGlkeCsrKSB7Ci0JCWtuZXcgPSBzbmRfb3B0aTkzeF9jb250cm9sc1tpZHhdOwotCQlpZiAoY2hpcC0+aGFyZHdhcmUgPT0gT1BUaTlYWF9IV184MkM5MzApIHsKLQkJCWlmIChzdHJzdHIoa25ldy5uYW1lLCAiRk0iKSkJLyogc2tpcCBGTSBjb250cm9scyAqLwotCQkJCWNvbnRpbnVlOwotCQkJZWxzZSBpZiAoc3RyY21wKGtuZXcubmFtZSwgIk1pYyBQbGF5YmFjayBWb2x1bWUiKSkKLQkJCQlPUFRpOTNYX0RPVUJMRV9JTlZFUlRfSU5WRVJUKGtuZXcpOwotCQkJZWxzZSBpZiAoc3Ryc3RyKGtuZXcubmFtZSwgIkF1eCIpKQotCQkJCU9QVGk5M1hfRE9VQkxFX0NIQU5HRV9SRUdTKGtuZXcsIE9QVGk5MzBfQVVYX0xFRlRfSU5QVVQsIE9QVGk5MzBfQVVYX1JJR0hUX0lOUFVUKTsKLQkJCWVsc2UgaWYgKHN0cmNtcChrbmV3Lm5hbWUsICJQQ00gUGxheWJhY2sgVm9sdW1lIikpCi0JCQkJT1BUaTkzWF9ET1VCTEVfSU5WRVJUX0lOVkVSVChrbmV3KTsKLQkJCWVsc2UgaWYgKHN0cmNtcChrbmV3Lm5hbWUsICJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIikpCi0JCQkJT1BUaTkzWF9ET1VCTEVfSU5WRVJUX0lOVkVSVChrbmV3KTsKLQkJfQotCQlpZiAoKGVyciA9IHNuZF9jdGxfYWRkKGNhcmQsIHNuZF9jdGxfbmV3MSgmc25kX29wdGk5M3hfY29udHJvbHNbaWR4XSwgY2hpcCkpKSA8IDApCi0JCQlyZXR1cm4gZXJyOwotCX0KLQlyZXR1cm4gMDsKLX0KLQogI2VuZGlmIC8qIE9QVGk5M1ggKi8KIAogc3RhdGljIGludCBfX2RldmluaXQgc25kX2NhcmRfb3B0aTl4eF9kZXRlY3Qoc3RydWN0IHNuZF9jYXJkICpjYXJkLApAQCAtMTczOSw4ICs2ODUsMTYgQEAKIHsKIAlzdHJ1Y3Qgc25kX29wdGk5eHggKmNoaXAgPSBjYXJkLT5wcml2YXRlX2RhdGE7CiAgICAgICAgIAotCWlmIChjaGlwKQorCWlmIChjaGlwKSB7CisjaWZkZWYgT1BUaTkzWAorCQlzdHJ1Y3Qgc25kX2NzNDIzMSAqY29kZWMgPSBjaGlwLT5jb2RlYzsKKwkJaWYgKGNvZGVjLT5pcnEgPiAwKSB7CisJCQlkaXNhYmxlX2lycShjb2RlYy0+aXJxKTsKKwkJCWZyZWVfaXJxKGNvZGVjLT5pcnEsIGNvZGVjKTsKKwkJfQorI2VuZGlmCiAJCXJlbGVhc2VfYW5kX2ZyZWVfcmVzb3VyY2UoY2hpcC0+cmVzX21jX2Jhc2UpOworCX0KIH0KIAogc3RhdGljIGludCBfX2RldmluaXQgc25kX29wdGk5eHhfcHJvYmUoc3RydWN0IHNuZF9jYXJkICpjYXJkKQpAQCAtMTc0OCwxMSArNzAyLDExIEBACiAJc3RhdGljIGxvbmcgcG9zc2libGVfcG9ydHNbXSA9IHsweDUzMCwgMHhlODAsIDB4ZjQwLCAweDYwNCwgLTF9OwogCWludCBlcnJvcjsKIAlzdHJ1Y3Qgc25kX29wdGk5eHggKmNoaXAgPSBjYXJkLT5wcml2YXRlX2RhdGE7Ci0jaWYgZGVmaW5lZChPUFRpOTNYKQotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY29kZWM7Ci0jZWxpZiBkZWZpbmVkKENTNDIzMSkKKyNpZiBkZWZpbmVkKENTNDIzMSkgfHwgZGVmaW5lZChPUFRpOTNYKQogCXN0cnVjdCBzbmRfY3M0MjMxICpjb2RlYzsKKyNpZmRlZiBDUzQyMzEKIAlzdHJ1Y3Qgc25kX3RpbWVyICp0aW1lcjsKKyNlbmRpZgogI2Vsc2UKIAlzdHJ1Y3Qgc25kX2FkMTg0OCAqY29kZWM7CiAjZW5kaWYKQEAgLTE3ODQsMjYgKzczOCwzNCBAQAogCWlmICgoZXJyb3IgPSBzbmRfb3B0aTl4eF9jb25maWd1cmUoY2hpcCkpKQogCQlyZXR1cm4gZXJyb3I7CiAKLSNpZiBkZWZpbmVkKE9QVGk5M1gpCi0JaWYgKChlcnJvciA9IHNuZF9vcHRpOTN4X2NyZWF0ZShjYXJkLCBjaGlwLCBjaGlwLT5kbWExLCBjaGlwLT5kbWEyLCAmY29kZWMpKSkKLQkJcmV0dXJuIGVycm9yOwotCWlmICgoZXJyb3IgPSBzbmRfb3B0aTkzeF9wY20oY29kZWMsIDAsICZwY20pKSA8IDApCi0JCXJldHVybiBlcnJvcjsKLQlpZiAoKGVycm9yID0gc25kX29wdGk5M3hfbWl4ZXIoY29kZWMpKSA8IDApCi0JCXJldHVybiBlcnJvcjsKLSNlbGlmIGRlZmluZWQoQ1M0MjMxKQorI2lmIGRlZmluZWQoQ1M0MjMxKSB8fCBkZWZpbmVkKE9QVGk5M1gpCiAJaWYgKChlcnJvciA9IHNuZF9jczQyMzFfY3JlYXRlKGNhcmQsIGNoaXAtPndzc19iYXNlICsgNCwgLTEsCiAJCQkJICAgICAgIGNoaXAtPmlycSwgY2hpcC0+ZG1hMSwgY2hpcC0+ZG1hMiwKLQkJCQkgICAgICAgQ1M0MjMxX0hXX0RFVEVDVCwKLQkJCQkgICAgICAgMCwKKyNpZmRlZiBDUzQyMzEKKwkJCQkgICAgICAgQ1M0MjMxX0hXX0RFVEVDVCwgMCwKKyNlbHNlIC8qIE9QVGk5M3ggKi8KKwkJCQkgICAgICAgQ1M0MjMxX0hXX09QVEk5M1gsIENTNDIzMV9IV1NIQVJFX0lSUSwKKyNlbmRpZgogCQkJCSAgICAgICAmY29kZWMpKSA8IDApCiAJCXJldHVybiBlcnJvcjsKKyNpZmRlZiBPUFRpOTNYCisJY2hpcC0+Y29kZWMgPSBjb2RlYzsKKyNlbmRpZgogCWlmICgoZXJyb3IgPSBzbmRfY3M0MjMxX3BjbShjb2RlYywgMCwgJnBjbSkpIDwgMCkKIAkJcmV0dXJuIGVycm9yOwogCWlmICgoZXJyb3IgPSBzbmRfY3M0MjMxX21peGVyKGNvZGVjKSkgPCAwKQogCQlyZXR1cm4gZXJyb3I7CisjaWZkZWYgQ1M0MjMxCiAJaWYgKChlcnJvciA9IHNuZF9jczQyMzFfdGltZXIoY29kZWMsIDAsICZ0aW1lcikpIDwgMCkKIAkJcmV0dXJuIGVycm9yOworI2Vsc2UgLyogT1BUSTkzWCAqLworCWVycm9yID0gcmVxdWVzdF9pcnEoY2hpcC0+aXJxLCBzbmRfb3B0aTkzeF9pbnRlcnJ1cHQsCisJCQkgICAgSVJRRl9ESVNBQkxFRCwgREVWX05BTUUiIC0gV1NTIiwgY29kZWMpOworCWlmIChlcnJvciA8IDApIHsKKwkJc25kX3ByaW50ayhLRVJOX0VSUiAib3B0aTl4eDogY2FuJ3QgZ3JhYiBJUlEgJWRcbiIsIGNoaXAtPmlycSk7CisJCXJldHVybiBlcnJvcjsKKwl9CisjZW5kaWYKICNlbHNlCiAJaWYgKChlcnJvciA9IHNuZF9hZDE4NDhfY3JlYXRlKGNhcmQsIGNoaXAtPndzc19iYXNlICsgNCwKIAkJCQkgICAgICAgY2hpcC0+aXJxLCBjaGlwLT5kbWExLApkaWZmIC0tZ2l0IGEvc291bmQvaXNhL3NiL01ha2VmaWxlIGIvc291bmQvaXNhL3NiL01ha2VmaWxlCmluZGV4IGM5ZDFjOTguLjEwOThhNTYgMTAwNjQ0Ci0tLSBhL3NvdW5kL2lzYS9zYi9NYWtlZmlsZQorKysgYi9zb3VuZC9pc2Evc2IvTWFrZWZpbGUKQEAgLTM0LDUgKzM0LDMgQEAKICAgb2JqLSQoQ09ORklHX1NORF9TQkFXRSkgKz0gc25kLXNiMTYtY3NwLm8KIGVuZGlmCiBvYmotJChjYWxsIHNlcXVlbmNlciwkKENPTkZJR19TTkRfU0JBV0UpKSArPSBzbmQtZW11ODAwMC1zeW50aC5vCi0KLW9iai1tIDo9ICQoc29ydCAkKG9iai1tKSkKZGlmZiAtLWdpdCBhL3NvdW5kL2lzYS9zYi9zYjE2X2NzcC5jIGIvc291bmQvaXNhL3NiL3NiMTZfY3NwLmMKaW5kZXggZjNmZDdiNC4uMzVmM2Q3YiAxMDA2NDQKLS0tIGEvc291bmQvaXNhL3NiL3NiMTZfY3NwLmMKKysrIGIvc291bmQvaXNhL3NiL3NiMTZfY3NwLmMKQEAgLTM1LDEzICszNSwxMSBAQAogTU9EVUxFX0FVVEhPUigiVXJvcyBCaXpqYWsgPHVyb3NAa3NzLWxva2Euc2k+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkFMU0EgZHJpdmVyIGZvciBTQjE2IENyZWF0aXZlIFNpZ25hbCBQcm9jZXNzb3IiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLSNpZm5kZWYgQ09ORklHX1NORF9TQjE2X0NTUF9GSVJNV0FSRV9JTl9LRVJORUwKIE1PRFVMRV9GSVJNV0FSRSgic2IxNi9tdWxhd19tYWluLmNzcCIpOwogTU9EVUxFX0ZJUk1XQVJFKCJzYjE2L2FsYXdfbWFpbi5jc3AiKTsKIE1PRFVMRV9GSVJNV0FSRSgic2IxNi9pbWFfYWRwY21faW5pdC5jc3AiKTsKIE1PRFVMRV9GSVJNV0FSRSgic2IxNi9pbWFfYWRwY21fcGxheWJhY2suY3NwIik7CiBNT0RVTEVfRklSTVdBUkUoInNiMTYvaW1hX2FkcGNtX2NhcHR1cmUuY3NwIik7Ci0jZW5kaWYKIAogI2lmZGVmIFNORFJWX0xJVFRMRV9FTkRJQU4KICNkZWZpbmUgQ1NQX0hEUl9WQUxVRShhLGIsYyxkKQkoKGEpIHwgKChiKTw8OCkgfCAoKGMpPDwxNikgfCAoKGQpPDwyNCkpCkBAIC0xNjgsMTcgKzE2NiwxMyBAQAogICovCiBzdGF0aWMgdm9pZCBzbmRfc2JfY3NwX2ZyZWUoc3RydWN0IHNuZF9od2RlcCAqaHdkZXApCiB7Ci0jaWZuZGVmIENPTkZJR19TTkRfU0IxNl9DU1BfRklSTVdBUkVfSU5fS0VSTkVMCiAJaW50IGk7Ci0jZW5kaWYKIAlzdHJ1Y3Qgc25kX3NiX2NzcCAqcCA9IGh3ZGVwLT5wcml2YXRlX2RhdGE7CiAJaWYgKHApIHsKIAkJaWYgKHAtPnJ1bm5pbmcgJiBTTkRSVl9TQl9DU1BfU1RfUlVOTklORykKIAkJCXNuZF9zYl9jc3Bfc3RvcChwKTsKLSNpZm5kZWYgQ09ORklHX1NORF9TQjE2X0NTUF9GSVJNV0FSRV9JTl9LRVJORUwKIAkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocC0+Y3NwX3Byb2dyYW1zKTsgKytpKQogCQkJcmVsZWFzZV9maXJtd2FyZShwLT5jc3BfcHJvZ3JhbXNbaV0pOwotI2VuZGlmCiAJCWtmcmVlKHApOwogCX0KIH0KQEAgLTcwMSwxOCArNjk1LDYgQEAKIAlyZXR1cm4gZXJyOwogfQogCi0jaWZkZWYgQ09ORklHX1NORF9TQjE2X0NTUF9GSVJNV0FSRV9JTl9LRVJORUwKLSNpbmNsdWRlICJzYjE2X2NzcF9jb2RlY3MuaCIKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSBzbmRfc2JfY3NwX3N0YXRpY19wcm9ncmFtc1tdID0gewotCXsgLmRhdGEgPSBtdWxhd19tYWluLCAuc2l6ZSA9IHNpemVvZiBtdWxhd19tYWluIH0sCi0JeyAuZGF0YSA9IGFsYXdfbWFpbiwgLnNpemUgPSBzaXplb2YgYWxhd19tYWluIH0sCi0JeyAuZGF0YSA9IGltYV9hZHBjbV9pbml0LCAuc2l6ZSA9IHNpemVvZiBpbWFfYWRwY21faW5pdCB9LAotCXsgLmRhdGEgPSBpbWFfYWRwY21fcGxheWJhY2ssIC5zaXplID0gc2l6ZW9mIGltYV9hZHBjbV9wbGF5YmFjayB9LAotCXsgLmRhdGEgPSBpbWFfYWRwY21fY2FwdHVyZSwgLnNpemUgPSBzaXplb2YgaW1hX2FkcGNtX2NhcHR1cmUgfSwKLX07Ci0jZW5kaWYKLQogc3RhdGljIGludCBzbmRfc2JfY3NwX2Zpcm13YXJlX2xvYWQoc3RydWN0IHNuZF9zYl9jc3AgKnAsIGludCBpbmRleCwgaW50IGZsYWdzKQogewogCXN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBuYW1lc1tdID0gewpAQCAtNzI3LDE0ICs3MDksMTAgQEAKIAlCVUlMRF9CVUdfT04oQVJSQVlfU0laRShuYW1lcykgIT0gQ1NQX1BST0dSQU1fQ09VTlQpOwogCXByb2dyYW0gPSBwLT5jc3BfcHJvZ3JhbXNbaW5kZXhdOwogCWlmICghcHJvZ3JhbSkgewotI2lmZGVmIENPTkZJR19TTkRfU0IxNl9DU1BfRklSTVdBUkVfSU5fS0VSTkVMCi0JCXByb2dyYW0gPSAmc25kX3NiX2NzcF9zdGF0aWNfcHJvZ3JhbXNbaW5kZXhdOwotI2Vsc2UKIAkJaW50IGVyciA9IHJlcXVlc3RfZmlybXdhcmUoJnByb2dyYW0sIG5hbWVzW2luZGV4XSwKIAkJCQkgICAgICAgcC0+Y2hpcC0+Y2FyZC0+ZGV2KTsKIAkJaWYgKGVyciA8IDApCiAJCQlyZXR1cm4gZXJyOwotI2VuZGlmCiAJCXAtPmNzcF9wcm9ncmFtc1tpbmRleF0gPSBwcm9ncmFtOwogCX0KIAlyZXR1cm4gc25kX3NiX2NzcF9sb2FkKHAsIHByb2dyYW0tPmRhdGEsIHByb2dyYW0tPnNpemUsIGZsYWdzKTsKZGlmZiAtLWdpdCBhL3NvdW5kL2lzYS9zYi9zYjE2X2NzcF9jb2RlY3MuaCBiL3NvdW5kL2lzYS9zYi9zYjE2X2NzcF9jb2RlY3MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBlOGIwZC4uMDAwMDAwMAotLS0gYS9zb3VuZC9pc2Evc2Ivc2IxNl9jc3BfY29kZWNzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NDkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKGMpIDE5OTQgQ3JlYXRpdmUgVGVjaG5vbG9neSBMdGQuCi0gKiAgTWljcm9jb2RlIGZpbGVzIGZvciBTQjE2IEFkdmFuY2VkIFNpZ25hbCBQcm9jZXNzb3IKLSAqCi0gKiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICogICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBCi0gKgotICovCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIG11bGF3X21haW5bXSA9IHsKLQkweDAwLCAweDEwLCAweDAwLCAweDQ0LCAweDA4LCAweDAwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4YjEsIDB4MDAsIDB4NDQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NDQsCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwZCwgMHhmMiwgMHg2MSwgMHhhOCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDE5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4NDAsIDB4NDksIDB4MzksIDB4YWMsIDB4NTUsIDB4NTUsIDB4NzEsIDB4OGIsCi0JMHg1MCwgMHgwNSwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweGZmLCAweDJlLCAweDIxLCAweDQ5LCAweGZmLCAweDBmLCAweGQ0LCAweDQ5LAotCTB4MjAsIDB4MDEsIDB4MDksIDB4MGUsIDB4MjAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhhOCwgMHgwMSwgMHhhOCwgMHg4MCwgMHg4OCwgMHgwMSwgMHhhOCwgMHg4MCwKLQkweGE4LCAweDAwLCAweDAwLCAweDgwLCAweGQyLCAweDAwLCAweDcxLCAweDhiLAotCTB4ODgsIDB4MDAsIDB4YTgsIDB4ODAsIDB4YTgsIDB4MDQsIDB4YjMsIDB4ODAsCi0JMHgyMCwgMHgwNywgMHhiMywgMHg4MCwgMHg4OCwgMHgwMywgMHhiMSwgMHg4MCwKLQkweGMwLCAweDAwLCAweDA5LCAweDVjLCAweGMyLCAweDAxLCAweDAwLCAweDgyLAotCTB4YTEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4Y2QsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHhhMiwgMHgyMCwgMHg3MSwgMHg4YiwgMHhjZiwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDAwLCAweGIxLCAweDgwLCAweGMyLCAweDAwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4NDAsIDB4MDAsIDB4MTQsIDB4MDgsIDB4NDAsIDB4MDQsIDB4MjQsCi0JMHgwMCwgMHgwMCwgMHgzNCwgMHg0OSwgMHgwYywgMHg0MCwgMHgwMCwgMHg0NCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDM5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MzIsIDB4MDAsIDB4MDksIDB4NWMsIDB4MDAsIDB4MDAsIDB4MGMsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHg0MCwgMHg0MCwgMHgwOSwgMHhlZiwKLQkweGZmLCAweDIwLCAweDA5LCAweGNmLCAweDAwLCAweDA0LCAweDYzLCAweGExLAotCTB4NTAsIDB4MDMsIDB4MzMsIDB4ODAsIDB4MDAsIDB4MDQsIDB4YTMsIDB4ODAsCi0JMHgwMCwgMHhmZiwgMHhjMiwgMHg4YiwgMHgwMCwgMHhkMCwgMHgwNCwgMHg1NCwKLQkweDA0LCAweGUwLCAweDAwLCAweGM0LCAweDIwLCAweDAzLCAweDgwLCAweGMwLAotCTB4MzAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MGEsCi0JMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweGMwLCAweDAwLCAweDAwLCAweDk5LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsIDB4MjAsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwZCwgMHg0MiwgMHg4YiwgMHgwOCwgMHgzMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDBlLCAweDQyLCAweDhiLCAweDAwLCAweGEyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MWUsIDB4NDIsIDB4OGIsIDB4MGMsIDB4YjIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHg4ZSwgMHg0MiwgMHg4YiwgMHgwMCwgMHg2MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDllLCAweDQyLCAweDhiLCAweDA4LCAweDUyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4YmUsIDB4NDIsIDB4OGIsIDB4MDgsIDB4NTIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwNCwgMHg0MiwgMHg4YiwgMHgwNCwgMHg3MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDI0LCAweDQyLCAweDhiLCAweDAwLCAweGQyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4NTUsIDB4NDIsIDB4OGIsIDB4MDAsIDB4NjAsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHgyMCwgMHgwMSwgMHg3OSwgMHg4MCwKLQkweDAwLCAweDMwLCAweDQyLCAweDhiLCAweDA4LCAweDgyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MDAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHg0MCwgMHgwMSwgMHgwMCwgMHg4MCwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweGZmLCAweDAwLCAweGUyLCAweGFiLCAweDAwLCAweGIyLCAweDAwLCAweGM0LAotCTB4MGYsIDB4ZjIsIDB4YTgsIDB4YTgsIDB4MjAsIDB4MDAsIDB4YjEsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg0MSwgMHgwMiwgMHg0ZCwgMHhmMiwgMHgwMCwgMHgzOSwKLQkweGMwLCAweDAxLCAweDAwLCAweDgyLCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4MGQsIDB4ZjIsIDB4YTMsIDB4YTgsIDB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwgMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwKLQkweDIwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAwLCAweDYxLCAweDAyLAotCTB4NGQsIDB4ZjIsIDB4MDQsIDB4MTksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwgMHhhMCwgMHgwMCwgMHgwMCwgMHg4OCwKLQkweDAwLCAweDAwLCAweDYxLCAweDEwLCAweDRkLCAweGYyLCAweDA0LCAweDE5LAotCTB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MjAsIDB4ZTIsIDB4YWIsCi0JMHg2MCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMCwgMHg3MSwgMHhjMCwKLQkweDRkLCAweGYyLCAweDA0LCAweDE5LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4MDAsIDB4NzksIDB4ODAsIDB4MDAsIDB4ZTIsIDB4MDAsIDB4ODQsCi0JMHgwMywgMHgwMywgMHgwNCwgMHg0OSwgMHgwOCwgMHhjMiwgMHgwMCwgMHg1NCwKLQkweDAwLCAweDYwLCAweDA0LCAweDY0LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4MDAsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MTksCi0JMHgwMywgMHgwMCwgMHgwNCwgMHg0OSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDIwLCAweDAxLCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDE5LAotCTB4MDAsIDB4MjAsIDB4ZTIsIDB4OGIsIDB4MGMsIDB4ZjIsIDB4MDAsIDB4ODQsCi0JMHgzZSwgMHgwMCwgMHg1MSwgMHg4YiwgMHhjMCwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDA4LCAweDAxLCAweDAwLCAweDQ0LCAweDZjLCAweDAwLCAweDUxLCAweDhiLAotCTB4YzAsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDIsIDB4ZTIsIDB4OGIsCi0JMHgwNCwgMHgyMSwgMHgwMCwgMHg4NCwgMHhmZCwgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGMyLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDExLCAweDAwLCAweDQ0LAotCTB4ZmUsIDB4MDAsIDB4NTEsIDB4OGIsIDB4YzIsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHhlNSwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjZCwgMHgwMCwgMHgwMCwgMHgzOSwKLQkweDAwLCAweDAwLCAweGIxLCAweDgwLCAweGM5LCAweDIwLCAweDA0LCAweDE5LAotCTB4Y2IsIDB4MjAsIDB4MDQsIDB4MTksIDB4YzEsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHhjMywgMHgyMCwgMHgwNCwgMHgxOSwgMHgxMCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGM3LCAweDIwLCAweDA0LCAweDE5LCAweDVlLCAweDAwLCAweDcxLCAweDhiLAotCTB4Y2YsIDB4MDAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDAsIDB4YjEsIDB4ODAsCi0JMHhjNCwgMHgyMCwgMHgwNCwgMHgxOSwgMHhjNiwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweGM4LCAweDIwLCAweDA0LCAweDE5LCAweGNhLCAweDIwLCAweDA0LCAweDE5LAotCTB4MjAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4Y2MsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHgwMywgMHgwMCwgMHgwNCwgMHg0OSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDA5LCAweDA0LCAweDYxLCAweGE4LCAweGMxLCAweDAwLCAweDA0LCAweDE5LAotCTB4MGIsIDB4MDQsIDB4NjEsIDB4YTgsIDB4Y2EsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHg2MCwgMHgwMCwgMHhkNCwgMHgwZCwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDkwLCAweDQwLCAweDA5LCAweDhmLCAweDAwLCAweDAxLCAweDAwLCAweDQ1LAotCTB4MGYsIDB4MDAsIDB4NjEsIDB4MGEsIDB4MDAsIDB4NDAsIDB4MDksIDB4OGYsCi0JMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwgMHg4MiwgMHgwMCwgMHgwOSwgMHgyZSwKLQkweDgwLCAweDQwLCAweDA5LCAweGNmLCAweDAyLCAweDAwLCAweDYxLCAweDIyLAotCTB4NDMsIDB4MjUsIDB4NjEsIDB4MjIsIDB4NDAsIDB4MzMsIDB4MDAsIDB4ODAsCi0JMHgwOCwgMHhhOCwgMHgwMCwgMHg0NCwgMHgyMCwgMHgzMSwgMHg0OSwgMHg1YywKLQkweDkyLCAweDAwLCAweDA5LCAweDRlLCAweDAyLCAweDAzLCAweDA5LCAweDJlLAotCTB4MDAsIDB4MDAsIDB4YTMsIDB4MDIsIDB4YzAsIDB4MDAsIDB4NzEsIDB4YzAsCi0JMHgyMCwgMHgwMCwgMHhlYiwgMHg4MCwgMHgwMCwgMHgwNCwgMHhjMiwgMHg4YiwKLQkweDIwLCAweDA0LCAweDYxLCAweDgwLCAweDAwLCAweDA0LCAweDdhLCAweDAyLAotCTB4Y2IsIDB4MDAsIDB4YTgsIDB4NTgsIDB4YjAsIDB4MDUsIDB4ZjMsIDB4ODAsCi0JMHgyMCwgMHgwNCwgMHhhOCwgMHgxMCwgMHgwMCwgMHgwMCwgMHgxMCwgMHgzOSwKLQkweGIwLCAweDAwLCAweGUwLCAweDhiLCAweDIwLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4NjMsIDB4Y2IsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDIsCi0JMHg0MCwgMHgwMCwgMHgwMSwgMHg1YiwgMHgyMCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDAwLCAweDAwLCAweDRhLCAweGNiLCAweDIwLCAweDAwLCAweDEzLCAweDgwLAotCTB4MjAsIDB4MDAsIDB4N2EsIDB4ODAsIDB4ZTAsIDB4MjEsIDB4MDAsIDB4YzAsCi0JMHgwOCwgMHgwMCwgMHgwOCwgMHg0OSwgMHgxMCwgMHg0MSwgMHgwOSwgMHg4ZSwKLQkweGZmLCAweGZmLCAweDYyLCAweDhiLCAweDAwLCAweDA0LCAweDYxLCAweDIyLAotCTB4MDAsIDB4MDMsIDB4MDAsIDB4NDUsIDB4MjIsIDB4MDEsIDB4MzMsIDB4ODAsCi0JMHgyMCwgMHgwMSwgMHhhMywgMHgwMiwgMHgwMCwgMHgwMCwgMHg3YSwgMHg4MCwKLQkweGMwLCAweDAwLCAweDAwLCAweDgyLCAweDA3LCAweDIwLCAweDQwLCAweDBhLAotCTB4MDgsIDB4ODMsIDB4MDAsIDB4ODQsIDB4NDAsIDB4MjEsIDB4MDAsIDB4ODAsCi0JMHg0MCwgMHgwNSwgMHg5MywgMHgxMCwgMHhjNywgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDA3LCAweDIwLCAweDQwLCAweDBhLAotCTB4MGMsIDB4YTMsIDB4MDAsIDB4ODQsIDB4MDgsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHgwYywgMHgyNCwgMHg2MSwgMHg1MCwgMHg0MCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweGM3LCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MDAsIDB4MDQsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHg0MiwgMHgwMSwgMHgwOSwgMHgwZSwgMHgwMiwgMHgyMCwgMHg2MSwgMHgwYSwKLQkweDAwLCAweDAxLCAweDAwLCAweDQ1LCAweDBjLCAweDIwLCAweDYwLCAweDBhLAotCTB4MDAsIDB4NzMsIDB4MDAsIDB4ODQsIDB4MDAsIDB4MDQsIDB4YjEsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwgMHgwYywgMHg2MSwgMHgwNCwgMHhkNCwKLQkweDAwLCAweDI0LCAweDcxLCAweGMwLCAweDIwLCAweDMzLCAweDMzLCAweGMwLAotCTB4ZTAsIDB4MDEsIDB4YTMsIDB4ODIsIDB4MjIsIDB4MDMsIDB4N2EsIDB4MDIsCi0JMHhjMywgMHgwMSwgMHhhMywgMHg4MiwgMHgyMCwgMHgwMSwgMHgzMywgMHg4MCwKLQkweDAwLCAweDAwLCAweDdhLCAweDgwLCAweGMyLCAweDAxLCAweGIzLCAweDUwLAotCTB4Y2MsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDAsIDB4NzEsIDB4ODAsCi0JMHgwMCwgMHhmMywgMHgwMCwgMHg0NCwgMHgwYywgMHgyMCwgMHg2MCwgMHgwYSwKLQkweDAwLCAweGQzLCAweDAwLCAweDg0LCAweDAwLCAweDA0LCAweGIxLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4MDYsIDB4MzksIDB4MGMsIDB4NjEsIDB4MDQsIDB4ZDQsCi0JMHgwMCwgMHgwMCwgMHhiMywgMHgxMCwgMHhjYywgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDAwLCAweDAwLCAweDcxLCAweGMwLCAweDAwLCAweGYzLCAweDAwLCAweDQ0LAotCTB4Y2MsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MjAsIDB4NzEsIDB4YzAsCi0JMHgwMCwgMHgzMCwgMHg3MSwgMHhjMCwgMHgwMCwgMHhmMywgMHgwMCwgMHg0NCwKLQkweDIwLCAweDAxLCAweDAwLCAweDgwLCAweGZmLCAweGZmLCAweDYyLCAweDhiLAotCTB4MjAsIDB4MDEsIDB4MzMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4ODMsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHg3YSwgMHg4MCwgMHgyMCwgMHhlMSwgMHgwOSwgMHg1YywKLQkweDgyLCAweDAwLCAweDA5LCAweDJmLCAweDgwLCAweDRhLCAweDA5LCAweDhlLAotCTB4ZTAsIDB4MDEsIDB4YjMsIDB4ODIsIDB4MjAsIDB4MDQsIDB4YTMsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg3YSwgMHhjYiwgMHgwMywgMHgwMCwgMHhhOCwgMHgxOCwKLQkweDAwLCAweDAwLCAweDEwLCAweDM5LCAweDA4LCAweDA0LCAweGVhLCAweDEwLAotCTB4MDgsIDB4MDQsIDB4N2EsIDB4MTAsIDB4MjAsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg0MCwgMHgwMCwgMHgyMSwgMHhjYiwgMHgwYywgMHgwMCwgMHhlOCwgMHgxMCwKLQkweDAwLCAweDAwLCAweDQxLCAweDAyLCAweDBjLCAweDAwLCAweGViLCAweDEwLAotCTB4ZjIsIDB4MDEsIDB4MDAsIDB4ODIsIDB4NDAsIDB4MjEsIDB4MzMsIDB4MDIsCi0JMHgwOCwgMHgyMCwgMHg2MSwgMHgwYSwgMHhjNCwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweGM3LCAweDAwLCAweDAwLCAweDk5LCAweDAyLCAweDAwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4ZTgsIDB4MDQsIDB4MTQsIDB4MDEsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwMywgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHhiOCwgMHgwNCwgMHg1NCwKLQkweGMzLCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweGI4LCAweDAwLCAweDQ0LAotCTB4MDgsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4YjgsIDB4MDQsIDB4NTQsCi0JMHhjOCwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYSwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDA5LCAweDAwLCAweDQ4LCAweDBhLCAweDAwLCAweDY4LCAweDA0LCAweDU0LAotCTB4YzksIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4NjgsIDB4MDAsIDB4NDQsCi0JMHgwYiwgMHgwMCwgMHhjOCwgMHgwYSwgMHgwYywgMHg2OCwgMHgwNCwgMHg1NCwKLQkweGNiLCAweDAwLCAweDA0LCAweDE5LCAweDA0LCAweDAwLCAweDYxLCAweDBhLAotCTB4MDYsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4NzgsIDB4MDQsIDB4NTQsCi0JMHhjNiwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHg3OCwgMHgwMCwgMHg0NCwKLQkweDA1LCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweDc4LCAweDA0LCAweDU0LAotCTB4YzUsIDB4MDAsIDB4MDQsIDB4MTksIDB4MDcsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwYywgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHhlOCwgMHgwNCwgMHg1NCwKLQkweGNjLCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweGU4LCAweDAwLCAweDQ0LAotCTB4MGUsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4ZTgsIDB4MDQsIDB4NTQsCi0JMHhjZSwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDIwLCAweDEwLCAweDcxLCAweDhiLCAweDA5LCAweDNmLCAweDA3LCAweDAwCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBhbGF3X21haW5bXSA9IHsKLQkweDAwLCAweDEwLCAweDAwLCAweDQ0LCAweDA4LCAweDAwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4YjEsIDB4MDAsIDB4NDQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NDQsCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwZCwgMHhmMiwgMHg2MSwgMHhhOCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDE5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4NDAsIDB4NDksIDB4MzksIDB4YWMsIDB4NTUsIDB4NTUsIDB4NzEsIDB4OGIsCi0JMHg1MCwgMHgwNSwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweGZmLCAweDJlLCAweDIxLCAweDQ5LCAweGZmLCAweDBmLCAweGQ0LCAweDQ5LAotCTB4MjAsIDB4MDEsIDB4MDksIDB4MGUsIDB4MjAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhhOCwgMHgwMSwgMHhhOCwgMHg4MCwgMHg4OCwgMHgwMSwgMHhhOCwgMHg4MCwKLQkweGE4LCAweDAwLCAweDAwLCAweDgwLCAweGQyLCAweDAwLCAweDcxLCAweDhiLAotCTB4ODgsIDB4MDAsIDB4YTgsIDB4ODAsIDB4YTgsIDB4MDQsIDB4YjMsIDB4ODAsCi0JMHgyMCwgMHgwNywgMHhiMywgMHg4MCwgMHg4OCwgMHgwMywgMHhiMSwgMHg4MCwKLQkweGMwLCAweDAwLCAweDA5LCAweDVjLCAweGMyLCAweDAxLCAweDAwLCAweDgyLAotCTB4YTEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4Y2QsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgyMSwgMHgyMCwgMHg3MSwgMHg4YiwgMHhjZiwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDAwLCAweGIxLCAweDgwLCAweGMyLCAweDAwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4NDAsIDB4MDAsIDB4MTQsIDB4MDgsIDB4NDAsIDB4MDQsIDB4MjQsCi0JMHgwMCwgMHgwMCwgMHgzNCwgMHg0OSwgMHgwYywgMHg0MCwgMHgwMCwgMHg0NCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDM5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MzIsIDB4MDAsIDB4MDksIDB4NWMsIDB4MDAsIDB4MDAsIDB4MGMsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHg0MCwgMHg0MCwgMHgwOSwgMHhlZiwKLQkweGZmLCAweDIwLCAweDA5LCAweGNmLCAweDAwLCAweDA0LCAweDYzLCAweGExLAotCTB4NTAsIDB4MDMsIDB4MzMsIDB4ODAsIDB4MDAsIDB4MDQsIDB4YTMsIDB4ODAsCi0JMHgwMCwgMHhmZiwgMHhjMiwgMHg4YiwgMHgwMCwgMHhkMCwgMHgwNCwgMHg1NCwKLQkweDA0LCAweGUwLCAweDAwLCAweGM0LCAweDIwLCAweDAzLCAweDgwLCAweGMwLAotCTB4MzAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MGEsCi0JMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweGMwLCAweDAwLCAweDAwLCAweDk5LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsIDB4MjAsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwZCwgMHg0MiwgMHg4YiwgMHgwOCwgMHgzMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDBlLCAweDQyLCAweDhiLCAweDAwLCAweGEyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MWUsIDB4NDIsIDB4OGIsIDB4MGMsIDB4YjIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHg4ZSwgMHg0MiwgMHg4YiwgMHgwMCwgMHg2MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDllLCAweDQyLCAweDhiLCAweDA4LCAweDUyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4YmUsIDB4NDIsIDB4OGIsIDB4MDgsIDB4NTIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwNCwgMHg0MiwgMHg4YiwgMHgwNCwgMHg3MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDI0LCAweDQyLCAweDhiLCAweDAwLCAweGQyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4NTUsIDB4NDIsIDB4OGIsIDB4MDAsIDB4NjAsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHgyMCwgMHgwMSwgMHg3OSwgMHg4MCwKLQkweDAwLCAweDMwLCAweDQyLCAweDhiLCAweDA4LCAweDgyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MDAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHg0MCwgMHgwMSwgMHgwMCwgMHg4MCwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweGZmLCAweDAwLCAweGUyLCAweGFiLCAweDAwLCAweGIyLCAweDAwLCAweGM0LAotCTB4MGYsIDB4ZjIsIDB4YTgsIDB4YTgsIDB4MjAsIDB4MDAsIDB4YjEsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg0MSwgMHgwMiwgMHg0ZCwgMHhmMiwgMHgwMCwgMHgzOSwKLQkweGMwLCAweDAxLCAweDAwLCAweDgyLCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4MGQsIDB4ZjIsIDB4YTMsIDB4YTgsIDB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwgMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwKLQkweDIwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAwLCAweDYxLCAweDAyLAotCTB4NGQsIDB4ZjIsIDB4MDQsIDB4MTksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwgMHhhMCwgMHgwMCwgMHgwMCwgMHg4OCwKLQkweDAwLCAweDAwLCAweDYxLCAweDEwLCAweDRkLCAweGYyLCAweDA0LCAweDE5LAotCTB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MjAsIDB4ZTIsIDB4YWIsCi0JMHg2MCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMCwgMHg3MSwgMHhjMCwKLQkweDRkLCAweGYyLCAweDA0LCAweDE5LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4MDAsIDB4NzksIDB4ODAsIDB4MDAsIDB4ZTIsIDB4MDAsIDB4ODQsCi0JMHgwMywgMHgwMywgMHgwNCwgMHg0OSwgMHgwNCwgMHhjMiwgMHgwMCwgMHg1NCwKLQkweDAwLCAweDYwLCAweDA0LCAweDY0LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4MDAsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MTksCi0JMHgwMywgMHgwMCwgMHgwNCwgMHg0OSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDIwLCAweDAxLCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDE5LAotCTB4MDAsIDB4MjAsIDB4ZTIsIDB4OGIsIDB4MGMsIDB4ZjIsIDB4MDAsIDB4ODQsCi0JMHhiZSwgMHgwMCwgMHg1MSwgMHg4YiwgMHhjMCwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDA4LCAweDAxLCAweDAwLCAweDQ0LCAweGVjLCAweDAwLCAweDUxLCAweDhiLAotCTB4YzAsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDIsIDB4ZTIsIDB4OGIsCi0JMHgwNCwgMHgyMSwgMHgwMCwgMHg4NCwgMHgzZiwgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGMyLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDExLCAweDAwLCAweDQ0LAotCTB4M2QsIDB4MDAsIDB4NTEsIDB4OGIsIDB4YzIsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHhlNSwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjZCwgMHgwMCwgMHgwMCwgMHgzOSwKLQkweDAwLCAweDAwLCAweGIxLCAweDgwLCAweGM5LCAweDIwLCAweDA0LCAweDE5LAotCTB4Y2IsIDB4MjAsIDB4MDQsIDB4MTksIDB4YzEsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHhjMywgMHgyMCwgMHgwNCwgMHgxOSwgMHgxMCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGM3LCAweDIwLCAweDA0LCAweDE5LCAweGRlLCAweDAwLCAweDUxLCAweDhiLAotCTB4Y2YsIDB4MDAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDEsIDB4YjEsIDB4ODAsCi0JMHhjNCwgMHgyMCwgMHgwNCwgMHgxOSwgMHhjNiwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweGM4LCAweDIwLCAweDA0LCAweDE5LCAweGNhLCAweDIwLCAweDA0LCAweDE5LAotCTB4MjAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4Y2MsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHgwMywgMHgwMCwgMHgwNCwgMHg0OSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDA5LCAweDA0LCAweDYxLCAweGE4LCAweGMxLCAweDAwLCAweDA0LCAweDE5LAotCTB4MGIsIDB4MDQsIDB4NjEsIDB4YTgsIDB4Y2EsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHg2MCwgMHgwMCwgMHhkNCwgMHgwZCwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDkwLCAweDQwLCAweDA5LCAweDhmLCAweDAwLCAweDAxLCAweDAwLCAweDQ1LAotCTB4MGYsIDB4MDAsIDB4NjEsIDB4MGEsIDB4MDAsIDB4NDAsIDB4MDksIDB4OGYsCi0JMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwgMHg4MiwgMHgwMCwgMHgwOSwgMHgyZSwKLQkweDgwLCAweDQwLCAweDA5LCAweGNmLCAweDAyLCAweDAwLCAweDYxLCAweDIyLAotCTB4NDMsIDB4MjUsIDB4NjEsIDB4MjIsIDB4NDAsIDB4MzMsIDB4MDAsIDB4ODAsCi0JMHgwOCwgMHg0OCwgMHgwMCwgMHg0NCwgMHgyMCwgMHhiMSwgMHg0OSwgMHg1YywKLQkweDkyLCAweDAwLCAweDA5LCAweDRlLCAweDAyLCAweDAzLCAweDA5LCAweDJlLAotCTB4MDAsIDB4MDAsIDB4YTMsIDB4MDIsIDB4YzAsIDB4MDAsIDB4NzEsIDB4YzAsCi0JMHgyMCwgMHgwMCwgMHhlYiwgMHg4MCwgMHgwMCwgMHgwNCwgMHhjMiwgMHg4YiwKLQkweDIwLCAweDA0LCAweDYxLCAweDgwLCAweDAwLCAweDA0LCAweDdhLCAweDAyLAotCTB4YzAsIDB4MDAsIDB4MDAsIDB4ODIsIDB4MGMsIDB4YzMsIDB4MDgsIDB4NDksCi0JMHhiMCwgMHgwMSwgMHhmMywgMHg4MCwgMHgwMCwgMHgwMCwgMHgxMCwgMHgzOSwKLQkweDIwLCAweDAwLCAweDBjLCAweDg5LCAweDBjLCAweDg4LCAweDA4LCAweDQ5LAotCTB4MDMsIDB4MDAsIDB4YTgsIDB4MTgsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MzksCi0JMHhiZCwgMHhmZiwgMHg2MiwgMHg4YiwgMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweDAwLCAweDAwLCAweDYzLCAweGNiLCAweDAwLCAweDAwLCAweDdhLCAweDAyLAotCTB4NDAsIDB4MDAsIDB4MDEsIDB4NWIsIDB4MjAsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg0YSwgMHhjYiwgMHgyMCwgMHgwMCwgMHgxMywgMHg4MCwKLQkweDIwLCAweDAwLCAweDdhLCAweDgwLCAweGUwLCAweDIxLCAweDAwLCAweGMwLAotCTB4MDgsIDB4MDAsIDB4MDgsIDB4NDksIDB4MTAsIDB4NDEsIDB4MDksIDB4OGUsCi0JMHhhZSwgMHhhZSwgMHg2MiwgMHg4YiwgMHgwMCwgMHgwNCwgMHg2MSwgMHgyMiwKLQkweDAwLCAweDAzLCAweDAwLCAweDQ1LCAweDIyLCAweDAxLCAweDMzLCAweDgwLAotCTB4MjAsIDB4MDEsIDB4YTMsIDB4MDIsIDB4MDAsIDB4MDAsIDB4N2EsIDB4ODAsCi0JMHhjMCwgMHgwMCwgMHgwMCwgMHg4MiwgMHgwNywgMHgyMCwgMHg0MCwgMHgwYSwKLQkweDA4LCAweGEzLCAweDAwLCAweDg0LCAweDQwLCAweDIxLCAweDAwLCAweDgwLAotCTB4NDAsIDB4MDUsIDB4OTMsIDB4MTAsIDB4YzcsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHgwNywgMHgyMCwgMHg0MCwgMHgwYSwKLQkweDBjLCAweDkzLCAweDAwLCAweDg0LCAweDA4LCAweDAwLCAweDAwLCAweDgyLAotCTB4MGMsIDB4MjQsIDB4NjEsIDB4NTAsIDB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHhjNywgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDAwLCAweDA0LCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDM5LAotCTB4NDIsIDB4MDEsIDB4MDksIDB4MGUsIDB4MDIsIDB4MjAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwgMHgwYywgMHgyMCwgMHg2MCwgMHgwYSwKLQkweDAwLCAweGMzLCAweDAwLCAweDg0LCAweDAwLCAweDA0LCAweGIxLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4MDYsIDB4MzksIDB4MGMsIDB4NjEsIDB4MDQsIDB4ZDQsCi0JMHgwMCwgMHgyNCwgMHg3MSwgMHhjMCwgMHgyMCwgMHgzMywgMHgzMywgMHhjMCwKLQkweGUwLCAweDAxLCAweGEzLCAweDgyLCAweDIyLCAweDAzLCAweDdhLCAweDAyLAotCTB4YzMsIDB4MDEsIDB4YTMsIDB4ODIsIDB4MjAsIDB4MDEsIDB4MzMsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg3YSwgMHg4MCwgMHhjMiwgMHgwMSwgMHhiMywgMHg1MCwKLQkweGNjLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAwLCAweDcxLCAweDgwLAotCTB4MDAsIDB4MDgsIDB4MDAsIDB4NDQsIDB4MGMsIDB4MjAsIDB4NjAsIDB4MGEsCi0JMHgwMCwgMHhmMywgMHgwMCwgMHg4NCwgMHgwMCwgMHgwNCwgMHhiMSwgMHg4MCwKLQkweDAwLCAweDAwLCAweDA2LCAweDM5LCAweDBjLCAweDYxLCAweDA0LCAweGQ0LAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4YzAsIDB4MDAsIDB4MDAsIDB4OTMsIDB4MTAsCi0JMHhjYywgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgwOCwgMHgwMCwgMHg0NCwKLQkweGNjLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDIwLCAweDAwLCAweGMwLAotCTB4MDAsIDB4MzAsIDB4NzEsIDB4YzAsIDB4MDAsIDB4MDgsIDB4MDAsIDB4NDQsCi0JMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwgMHhhZSwgMHhhZSwgMHg2MiwgMHg4YiwKLQkweDIwLCAweDAxLCAweDMzLCAweDgwLCAweDAwLCAweDAwLCAweDgzLCAweDgwLAotCTB4MjAsIDB4MDAsIDB4N2EsIDB4ODAsIDB4MjAsIDB4YTEsIDB4NDksIDB4NWMsCi0JMHg4MiwgMHgwMCwgMHgwOSwgMHg2ZSwgMHg4MCwgMHg0YSwgMHgwOSwgMHg4ZSwKLQkweGUwLCAweDAxLCAweGIzLCAweDgyLCAweDIwLCAweDA0LCAweGEzLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4N2EsIDB4Y2IsIDB4MjgsIDB4MDQsIDB4ZWEsIDB4MTAsCi0JMHgwYywgMHgwNCwgMHg3YSwgMHgxMCwgMHg3MCwgMHgwMCwgMHhjMCwgMHg4YiwKLQkweDAwLCAweDAwLCAweDEwLCAweDM5LCAweDkwLCAweDAzLCAweDAwLCAweDgwLAotCTB4NDAsIDB4MDAsIDB4MjEsIDB4NWIsIDB4OTAsIDB4MDAsIDB4NjEsIDB4ODAsCi0JMHgwYywgMHg4YSwgMHgwOCwgMHg0OSwgMHgwMCwgMHgwMCwgMHgxYywgMHgxOSwKLQkweDQwLCAweDAwLCAweDA4LCAweDViLCAweDA4LCAweDAwLCAweDA4LCAweDQ5LAotCTB4MjAsIDB4MDIsIDB4MDAsIDB4ODAsIDB4MDMsIDB4MDAsIDB4YTgsIDB4MTgsCi0JMHgwMCwgMHgwMCwgMHgxNCwgMHgxOSwgMHg0MCwgMHgwMCwgMHgyMSwgMHhjYiwKLQkweDAwLCAweDAwLCAweDQxLCAweDAyLCAweDAwLCAweDAwLCAweGViLCAweDgwLAotCTB4ZjIsIDB4MDEsIDB4MDAsIDB4ODIsIDB4NDAsIDB4MjEsIDB4MzMsIDB4MDIsCi0JMHgwOCwgMHgyMCwgMHg2MSwgMHgwYSwgMHhjNCwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweGM3LCAweDAwLCAweDAwLCAweDk5LCAweDAyLCAweDAwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4MGEsIDB4MDQsIDB4MTQsIDB4MDEsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwMywgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHg1OCwgMHgwNCwgMHg1NCwKLQkweGMzLCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweDU4LCAweDAwLCAweDQ0LAotCTB4MDgsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4NTgsIDB4MDQsIDB4NTQsCi0JMHhjOCwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYSwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDA5LCAweDAwLCAweDQ4LCAweDBhLCAweDAwLCAweGM4LCAweDA0LCAweDU0LAotCTB4YzksIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4YzgsIDB4MDAsIDB4NDQsCi0JMHgwYiwgMHgwMCwgMHhjOCwgMHgwYSwgMHgwYywgMHhjOCwgMHgwNCwgMHg1NCwKLQkweGNiLCAweDAwLCAweDA0LCAweDE5LCAweDA0LCAweDAwLCAweDYxLCAweDBhLAotCTB4MDYsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4ZDgsIDB4MDQsIDB4NTQsCi0JMHhjNiwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHhkOCwgMHgwMCwgMHg0NCwKLQkweDA1LCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweGQ4LCAweDA0LCAweDU0LAotCTB4YzUsIDB4MDAsIDB4MDQsIDB4MTksIDB4MDcsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwYywgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHgwYSwgMHgwNCwgMHg1NCwKLQkweGNjLCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweDBhLCAweDAwLCAweDQ0LAotCTB4MGUsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4MGEsIDB4MDQsIDB4NTQsCi0JMHhjZSwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDIwLCAweDEwLCAweDcxLCAweDhiLCAweDA4LCAweDQyLCAweDA2LCAweDAwCi19OwotCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGltYV9hZHBjbV9pbml0W10gPSB7Ci0JMHgwMCwgMHgxMCwgMHgwMCwgMHg0NCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4YWEsIDB4YWEsIDB4NzEsIDB4OGIsCi0JMHg0NCwgMHgwNCwgMHgwNCwgMHgxOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweGZmLCAweDZlLCAweDIxLCAweDQ5LCAweGZmLCAweDBmLCAweGQ0LCAweDQ5LAotCTB4NDAsIDB4NDksIDB4MzksIDB4YWMsIDB4NTUsIDB4NTUsIDB4NzEsIDB4OGIsCi0JMHg1MCwgMHgwNSwgMHhiMSwgMHg4MCwgMHg2MiwgMHgwMCwgMHgxOSwgMHgwZSwKLQkweDIxLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YjAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg0MCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDYwLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NTAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg3MCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGMwLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZTAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDAyLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MjIsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgzMiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGEyLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YjIsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg2MiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGMyLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZjIsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgxMSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGExLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NjEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhlMSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDEzLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YjMsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjMywgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDE4LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NjgsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwYSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDRhLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MjksIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg3OSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDliLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MTQsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhmNCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGU2LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZTUsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkNywgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDJlLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4OWQsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhlZiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGIyLCAweDIwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MzMsIDB4MjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgyYSwgMHgyMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDNiLCAweDIwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NDYsIDB4MjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgyYywgMHgyMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGRkLCAweDIwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MDEsIDB4MTAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg5YSwgMHgxMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDE2LCAweDEwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4OGUsIDB4MTAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjMiwgMHgzMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGM5LCAweDMwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4M2MsIDB4MzAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg4MSwgMHg4MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGQ0LCAweDgwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MTAsIDB4YTAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgzNCwgMHhhMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDAyLCAweDkwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NzUsIDB4OTAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg5YSwgMHhiMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDEyLCAweDQwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MGQsIDB4NDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgzYywgMHg2MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGU3LCAweDUwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MGUsIDB4NzAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhmZiwgMHhjMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGM4LCAweGQwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NTcsIDB4ZjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjOCwgMHgyMiwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGIwLCAweDMyLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZGQsIDB4ODIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg5MCwgMHhiMiwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDhhLCAweDYyLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4Y2UsIDB4NzIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhhNSwgMHhkMiwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDk3LCAweDIxLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YTIsIDB4YTEsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg1YywgMHg0MSwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGZlLCAweGMxLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4N2EsIDB4MjMsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg3OCwgMHg5MywgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDY3LCAweDczLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MTcsIDB4MjgsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg4OCwgMHg0OCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGRiLCAweGY4LCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MmIsIDB4YmEsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhmMSwgMHgwOSwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGRjLCAweDY5LCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MTksIDB4OGIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhmZiwgMHhmYiwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDIwLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NTIsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHhmZiwgMHhmZiwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsIDB4MTAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweDkwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsIDB4NDAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHhmZiwgMHhmZiwgMHg3MSwgMHg4YiwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHgxMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDgwLCAweDAwLCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4OTAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHg0MCwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweGZmLCAweGZiLCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4MDAsIDB4MDQsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHg0YSwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDAwLCAweDAwLCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHhjMiwgMHgzMCwgMHgwNCwgMHgxOSwKLQkweDEwLCAweDAwLCAweDA5LCAweDRmLCAweGMyLCAweDAxLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsIDB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAxLCAweDAwLCAweDgyLCAweGMyLCAweDAxLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsIDB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAxLCAweDAwLCAweDgyLCAweGMyLCAweDAxLCAweDAwLCAweDgyLAotCTB4MDAsIDB4MTAsIDB4NzEsIDB4OGIsIDB4YzEsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHg5MywgMHgwMCwgMHgwMSwgMHg0ZiwgMHhjZCwgMHgzMCwgMHgwMCwgMHgwOSwKLQkweGNmLCAweDMwLCAweDAwLCAweDA5LCAweDAwLCAweDAwLCAweDM0LCAweDQ5LAotCTB4MDAsIDB4MDgsIDB4MDAsIDB4NDQsIDB4YzgsIDB4NTQsIDB4MTEsIDB4MDAKLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGltYV9hZHBjbV9wbGF5YmFja1tdID0gewotCTB4MDAsIDB4MTAsIDB4MDAsIDB4NDQsIDB4MDgsIDB4MDAsIDB4MDAsIDB4NDQsCi0JMHgwYywgMHg1MCwgMHgwMCwgMHg0NCwgMHgwMCwgMHg3MCwgMHgwMCwgMHg0NCwKLQkweDA0LCAweDcwLCAweDAwLCAweDQ0LCAweDBkLCAweGYyLCAweDYxLCAweGE4LAotCTB4NDQsIDB4MDQsIDB4MDQsIDB4MTksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwMCwgMHgwNCwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweGZmLCAweDJlLCAweDIxLCAweDQ5LCAweGZmLCAweDBkLCAweGQ0LCAweDQ5LAotCTB4NDAsIDB4NDksIDB4MzksIDB4YWMsIDB4NTUsIDB4NTUsIDB4NzEsIDB4OGIsCi0JMHg1MCwgMHgwMSwgMHhiMSwgMHg4MCwgMHgwMCwgMHgwMSwgMHhiMSwgMHg4MCwKLQkweGM5LCAweDIwLCAweDA0LCAweDE5LCAweDUxLCAweDAwLCAweDcxLCAweDhiLAotCTB4Y2QsIDB4MDAsIDB4MDQsIDB4MTksIDB4ZTQsIDB4MjAsIDB4NzEsIDB4OGIsCi0JMHhjZiwgMHgwMCwgMHgwNCwgMHgxOSwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGNiLCAweDIwLCAweDA0LCAweDE5LCAweDEwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzQsIDB4MjAsIDB4MDQsIDB4MTksIDB4NjUsIDB4MDAsIDB4NTEsIDB4OGIsCi0JMHhjMiwgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwKLQkweGMyLCAweDMwLCAweDA0LCAweDE5LCAweDAwLCAweDAwLCAweDYzLCAweDgwLAotCTB4YzEsIDB4YTAsIDB4MDQsIDB4MTksIDB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsCi0JMHhjZCwgMHgzMCwgMHgwMCwgMHgwOSwgMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwKLQkweDA0LCAweDQwLCAweDAwLCAweDE0LCAweDBjLCAweDQwLCAweDAwLCAweDE0LAotCTB4MDAsIDB4MDQsIDB4NjEsIDB4YTgsIDB4MDIsIDB4MDQsIDB4NjEsIDB4YTgsCi0JMHgwNCwgMHg2MCwgMHgwNCwgMHgyNCwgMHgwMCwgMHgwMCwgMHgzNCwgMHg0OSwKLQkweDAwLCAweDUwLCAweDAwLCAweDQ0LCAweDQ0LCAweDA0LCAweDA0LCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwZiwgMHgwMCwgMHg2MSwgMHgwYSwgMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwKLQkweDQwLCAweDQwLCAweDA5LCAweGVmLCAweGZmLCAweDIwLCAweDA5LCAweGNmLAotCTB4MDAsIDB4MDQsIDB4NjMsIDB4YTEsIDB4NTAsIDB4MDMsIDB4MzMsIDB4ODAsCi0JMHgwMCwgMHgwNCwgMHhhMywgMHg4MCwgMHgwMCwgMHhmZiwgMHhjMiwgMHg4YiwKLQkweDA4LCAweGYwLCAweDA0LCAweDU0LCAweDBjLCAweGQwLCAweDAwLCAweGM0LAotCTB4MjAsIDB4MDMsIDB4ODAsIDB4YzAsIDB4MzAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg3YSwgMHgwYSwgMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweDA4LCAweDUwLCAweDAwLCAweDQ0LCAweGMwLCAweDAwLCAweDAwLCAweDk5LAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwZCwgMHg0MiwgMHg4YiwKLQkweDAwLCAweGEyLCAweDAwLCAweGM0LCAweDAwLCAweDBlLCAweDQyLCAweDhiLAotCTB4MGMsIDB4OTIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MWUsIDB4NDIsIDB4OGIsCi0JMHgwNCwgMHg2MiwgMHgwMCwgMHhjNCwgMHgwMCwgMHg4ZSwgMHg0MiwgMHg4YiwKLQkweDBjLCAweDUyLCAweDAwLCAweGM0LCAweDAwLCAweDllLCAweDQyLCAweDhiLAotCTB4MDAsIDB4YzIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4YmUsIDB4NDIsIDB4OGIsCi0JMHgwMCwgMHhjMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwNCwgMHg0MiwgMHg4YiwKLQkweDAwLCAweGYyLCAweDAwLCAweGM0LCAweDAwLCAweDI0LCAweDQyLCAweDhiLAotCTB4MDAsIDB4OTEsIDB4MDAsIDB4YzQsIDB4MDAsIDB4NTUsIDB4NDIsIDB4OGIsCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHhjNCwgMHgwMCwgMHgzZiwgMHg0MiwgMHg4YiwKLQkweDA4LCAweGUyLCAweDAwLCAweGM0LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MjAsIDB4MDEsIDB4NzksIDB4ODAsIDB4MDAsIDB4MzAsIDB4NDIsIDB4OGIsCi0JMHgwMCwgMHg5MiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDAwLCAweDAwLCAweDcxLCAweDhiLCAweDQwLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsCi0JMHgwYywgMHg0MiwgMHgwMCwgMHhjNCwgMHgwZiwgMHhmMiwgMHhhOCwgMHhhOCwKLQkweDIwLCAweDAwLCAweGIxLCAweDg4LCAweDAwLCAweDAwLCAweDQxLCAweDAyLAotCTB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksIDB4YzAsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwZCwgMHhmMiwgMHhhMywgMHhhOCwKLQkweDRkLCAweGYyLCAweDAwLCAweDM5LCAweDA4LCAweDUwLCAweDAwLCAweDQ0LAotCTB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsIDB4MjAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHgwMiwgMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwKLQkweDA4LCAweDUwLCAweDAwLCAweDQ0LCAweGZmLCAweDAwLCAweGUyLCAweGFiLAotCTB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDAsIDB4NjEsIDB4MTAsCi0JMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwgMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweGZmLCAweDIwLCAweGUyLCAweGFiLCAweDYwLCAweDAwLCAweDAwLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4YzAsIDB4NGQsIDB4ZjIsIDB4MDQsIDB4MTksCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwYSwKLQkweDIwLCAweDAxLCAweGYwLCAweDgwLCAweDAxLCAweGEwLCAweDQxLCAweDBhLAotCTB4MDQsIDB4ZDIsIDB4MDAsIDB4YzQsIDB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHhjMSwgMHgzMCwgMHgwNCwgMHgxOSwgMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDc5LCAweDgwLCAweDAwLCAweGExLCAweDAwLCAweDg0LAotCTB4YjUsIDB4MDAsIDB4NTEsIDB4OGIsIDB4Y2YsIDB4MDAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMSwgMHhiMSwgMHg4MCwgMHg4OCwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDhhLCAweDAwLCAweDA0LCAweDE5LCAweGM4LCAweDIwLCAweDA0LCAweDE5LAotCTB4Y2EsIDB4MjAsIDB4MDQsIDB4MTksIDB4YzIsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHhjZCwgMHgxMCwgMHgwNCwgMHgxOSwgMHhjZiwgMHgxMCwgMHgwNCwgMHgxOSwKLQkweGIwLCAweDAwLCAweDcxLCAweDhiLCAweDhjLCAweDAwLCAweDA0LCAweDE5LAotCTB4OGUsIDB4MDAsIDB4MDQsIDB4MTksIDB4MTAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjNCwgMHgyMCwgMHgwNCwgMHgxOSwgMHg5MywgMHgwMCwgMHgwMSwgMHg0ZiwKLQkweGNkLCAweDMwLCAweDAwLCAweDA5LCAweGNmLCAweDMwLCAweDAwLCAweDA5LAotCTB4MDMsIDB4MDMsIDB4MDQsIDB4NDksIDB4MDQsIDB4ODEsIDB4MDAsIDB4NTQsCi0JMHgwOCwgMHg1MCwgMHgwNCwgMHg2NCwgMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsCi0JMHgyMCwgMHgwMSwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwKLQkweDAwLCAweDAyLCAweGUyLCAweDhiLCAweDA4LCAweDQxLCAweDAwLCAweDg0LAotCTB4NjUsIDB4MDAsIDB4NTEsIDB4OGIsIDB4YzIsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHg2MywgMHg4MCwgMHhjMSwgMHhhMCwgMHgwNCwgMHgxOSwKLQkweDA4LCAweDYxLCAweDAwLCAweDQ0LCAweDJkLCAweDAwLCAweDUxLCAweDhiLAotCTB4YzIsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDAsIDB4YjEsIDB4ODAsCi0JMHhjMSwgMHhhMCwgMHgwNCwgMHgxOSwgMHgwMywgMHgwMCwgMHgwNCwgMHg0OSwKLQkweDA4LCAweDUwLCAweDAwLCAweDQ0LCAweDAyLCAweDIwLCAweDYxLCAweDBhLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwNCwgMHgwMywgMHgwMCwgMHhjNCwgMHgwNSwgMHhiMCwgMHhjOCwgMHgxOCwKLQkweDA0LCAweDcxLCAweDAwLCAweGM0LCAweDAwLCAweDEzLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4NzksIDB4MDgsIDB4NDQsIDB4MDAsIDB4MDQsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHg0OSwgMHgwMCwgMHhjNCwgMHhjYSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweDRhLCAweDA0LCAweDA0LCAweDE5LCAweGZmLCAweDAwLCAweGUyLCAweDhiLAotCTB4MGMsIDB4ZjksIDB4MDgsIDB4NDQsIDB4Y2YsIDB4MTAsIDB4MDQsIDB4MTksCi0JMHgwYywgMHgyYiwgMHgwOCwgMHg0NCwgMHg4ZSwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDAzLCAweDMwLCAweDYxLCAweDBhLCAweGM4LCAweDIwLCAweDAwLCAweDM5LAotCTB4NDgsIDB4MDQsIDB4MDAsIDB4MzksIDB4MGEsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwYywgMHhmOSwgMHgwOCwgMHg0NCwgMHhjZCwgMHgxMCwgMHgwNCwgMHgxOSwKLQkweDBjLCAweDJiLCAweDA4LCAweDQ0LCAweDhjLCAweDAwLCAweDA0LCAweDE5LAotCTB4MGMsIDB4ZDksIDB4MDgsIDB4NDQsIDB4MGMsIDB4NWEsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHg3OSwgMHgwOCwgMHg0NCwgMHgwMCwgMHgwNCwgMHg3OSwgMHg4MCwKLQkweDAwLCAweDQ5LCAweDAwLCAweGM0LCAweGMzLCAweDMwLCAweDA0LCAweDE5LAotCTB4Y2EsIDB4MzAsIDB4MDAsIDB4OTksIDB4MGMsIDB4ZDksIDB4MDgsIDB4NDQsCi0JMHg0MiwgMHgwYSwgMHgwOSwgMHgwZSwgMHgwMCwgMHgwMSwgMHgzMywgMHgxMSwKLQkweDhjLCAweDAxLCAweGEzLCAweDgwLCAweDAwLCAweDAxLCAweDdhLCAweDEwLAotCTB4ODAsIDB4MDUsIDB4YjEsIDB4ODAsIDB4MDUsIDB4YjAsIDB4ZTAsIDB4MTgsCi0JMHgwMCwgMHg5MywgMHgwMCwgMHg4NCwgMHgwMCwgMHg3OSwgMHgwOCwgMHg0NCwKLQkweDAwLCAweDA0LCAweDc5LCAweDgwLCAweDAwLCAweDQ5LCAweDAwLCAweGM0LAotCTB4MGMsIDB4MWIsIDB4MDgsIDB4NDQsIDB4ODgsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHg4YSwgMHgwMCwgMHgwMCwgMHg5OSwgMHgwYywgMHhkOSwgMHgwOCwgMHg0NCwKLQkweDQyLCAweDBhLCAweDA5LCAweDBlLCAweDgwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzAsIDB4MDQsIDB4YjEsIDB4ODIsIDB4MTAsIDB4MDAsIDB4ZTAsIDB4MGIsCi0JMHgwMCwgMHg0MywgMHgwMCwgMHg4NCwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDAxLCAweDMwLCAweGM4LCAweDBhLCAweDAwLCAweDQzLCAweDAwLCAweDg0LAotCTB4MDAsIDB4MDAsIDB4YjEsIDB4ODAsIDB4YzIsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHgwYywgMHhhOCwgMHgwMCwgMHg0NCwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDAwLCAweGQzLCAweDAwLCAweGM0LCAweDA1LCAweGIwLCAweGM4LCAweDE4LAotCTB4MDQsIDB4NjMsIDB4MDAsIDB4YzQsIDB4MDgsIDB4ZjMsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHg3OSwgMHgwOCwgMHg0NCwgMHgwMCwgMHgwNCwgMHg3OSwgMHg4MCwKLQkweDAwLCAweDQ5LCAweDAwLCAweGM0LCAweDIwLCAweDAwLCAweDA0LCAweDE5LAotCTB4ZmYsIDB4MDAsIDB4ZTIsIDB4OGIsIDB4MGMsIDB4ZjksIDB4MDgsIDB4NDQsCi0JMHhjZCwgMHgxMCwgMHgwNCwgMHgxOSwgMHhjZiwgMHgxMCwgMHgwNCwgMHgxOSwKLQkweDBjLCAweDJiLCAweDA4LCAweDQ0LCAweDhjLCAweDAwLCAweDA0LCAweDE5LAotCTB4OGUsIDB4MDAsIDB4MDQsIDB4MTksIDB4MDMsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHhjOCwgMHgyMCwgMHgwMCwgMHgzOSwgMHhjYSwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDQ4LCAweDA0LCAweDAwLCAweDM5LCAweDRhLCAweDA0LCAweDAwLCAweDM5LAotCTB4MGMsIDB4ZDksIDB4MDgsIDB4NDQsIDB4MGMsIDB4NWEsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHg3OSwgMHgwOCwgMHg0NCwgMHgwMCwgMHgwNCwgMHg3OSwgMHg4MCwKLQkweDAwLCAweDQ5LCAweDAwLCAweGM0LCAweGMzLCAweDMwLCAweDA0LCAweDE5LAotCTB4MGMsIDB4ZDksIDB4MDgsIDB4NDQsIDB4NDIsIDB4MGEsIDB4MDksIDB4MGUsCi0JMHgwNSwgMHhiMCwgMHhlMCwgMHgxOCwgMHgwMCwgMHgxOCwgMHgwMCwgMHg4NCwKLQkweDAwLCAweDc5LCAweDA4LCAweDQ0LCAweDAwLCAweDA0LCAweDc5LCAweDgwLAotCTB4MDAsIDB4NDksIDB4MDAsIDB4YzQsIDB4MGMsIDB4MWIsIDB4MDgsIDB4NDQsCi0JMHg4MCwgMHgwMSwgMHgwMCwgMHg4MCwgMHgwYywgMHhkOSwgMHgwOCwgMHg0NCwKLQkweDQyLCAweDBhLCAweDA5LCAweDBlLCAweDgwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzAsIDB4MDQsIDB4YjEsIDB4ODIsIDB4MTAsIDB4MDAsIDB4ZTAsIDB4MGIsCi0JMHgwMCwgMHg4OCwgMHgwMCwgMHg4NCwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDAxLCAweDMwLCAweGM4LCAweDBhLCAweDAwLCAweDg4LCAweDAwLCAweDg0LAotCTB4MDAsIDB4MDAsIDB4YjEsIDB4ODAsIDB4YzIsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHgwMCwgMHgwMSwgMHgwMCwgMHgxMSwgMHgwMCwgMHgwZiwgMHhlMiwgMHg4YiwKLQkweDAwLCAweDAwLCAweDQxLCAweGNiLCAweDhjLCAweDAwLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4NDgsIDB4Y2IsIDB4MjAsIDB4MDAsIDB4N2EsIDB4ODAsCi0JMHg4MCwgMHgwMSwgMHgwMCwgMHg4MCwgMHg4MiwgMHgwYywgMHgwOSwgMHg2ZSwKLQkweDAzLCAweDA4LCAweDA5LCAweDBlLCAweDgwLCAweDQwLCAweDA5LCAweGNmLAotCTB4MDAsIDB4MDEsIDB4NzEsIDB4YzIsIDB4MDAsIDB4MDgsIDB4YzIsIDB4MWIsCi0JMHgwNCwgMHhiOCwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwNSwgMHhhOCwgMHg4MCwKLQkweDIwLCAweDAxLCAweGYwLCAweDgwLCAweDAwLCAweDAxLCAweGMyLCAweDFiLAotCTB4MDQsIDB4NDgsIDB4MDAsIDB4YzQsIDB4MjAsIDB4MDUsIDB4YTgsIDB4ODAsCi0JMHgyMCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwMCwgMHgwMiwgMHhjMiwgMHgxYiwKLQkweDA0LCAweDY4LCAweDAwLCAweGM0LCAweDIwLCAweDA1LCAweGE4LCAweDgwLAotCTB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MjAsIDB4MDMsIDB4YTgsIDB4ODAsCi0JMHgwMCwgMHgwMSwgMHgwMCwgMHgxMSwgMHgwMCwgMHgwNCwgMHhjMiwgMHg4YiwKLQkweDA4LCAweDc4LCAweDAwLCAweGM0LCAweDAwLCAweDAwLCAweGU5LCAweDgwLAotCTB4MDUsIDB4YjAsIDB4YTgsIDB4MTgsIDB4MDAsIDB4MDAsIDB4NGEsIDB4Y2IsCi0JMHgyMCwgMHgwMCwgMHhhOCwgMHgyMiwgMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweDQwLCAweDAxLCAweDAwLCAweDgwLCAweGM0LCAweDAwLCAweDA0LCAweDE5LAotCTB4YjAsIDB4MDAsIDB4ZTIsIDB4OGIsIDB4MDYsIDB4MjAsIDB4YTgsIDB4MGEsCi0JMHgyZCwgMHgxMCwgMHg2MSwgMHgwYSwgMHhkMSwgMHgwOCwgMHgwOSwgMHgyZSwKLQkweDAwLCAweDAxLCAweGE4LCAweDAyLCAweDBjLCAweGY5LCAweDA4LCAweDQ0LAotCTB4Y2QsIDB4MTAsIDB4MDQsIDB4MTksIDB4MGMsIDB4MmIsIDB4MDgsIDB4NDQsCi0JMHgwMywgMHgwOCwgMHgwOSwgMHgwZSwgMHg5YSwgMHgyNSwgMHhiMSwgMHg2MCwKLQkweGEyLCAweDBlLCAweDA5LCAweDZlLCAweDAzLCAweDAwLCAweDA5LCAweDBmLAotCTB4MDAsIDB4MDEsIDB4NzEsIDB4ODIsIDB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHhjYiwgMHg4MCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweDAzLCAweDAwLCAweDA5LCAweDBmLCAweDAwLCAweDAxLCAweDcxLCAweGMyLAotCTB4MDAsIDB4MDgsIDB4YzIsIDB4MWIsIDB4MGMsIDB4MmEsIDB4MDAsIDB4YzQsCi0JMHgyMCwgMHgwNSwgMHhhOCwgMHg4MCwgMHgyMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweDAwLCAweDAxLCAweGMyLCAweDFiLCAweDBjLCAweDFhLCAweDAwLCAweGM0LAotCTB4MjAsIDB4MDUsIDB4YTgsIDB4ODAsIDB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHgwMCwgMHgwMiwgMHhjMiwgMHgxYiwgMHgwYywgMHgzYSwgMHgwMCwgMHhjNCwKLQkweDIwLCAweDA1LCAweGE4LCAweDgwLCAweDIwLCAweDAxLCAweGYwLCAweDgwLAotCTB4MjAsIDB4MDMsIDB4YTgsIDB4ODAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MTEsCi0JMHgwMCwgMHgwNCwgMHhjMiwgMHg4YiwgMHgwNCwgMHhhYSwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDAwLCAweGU5LCAweDgwLCAweDA1LCAweGIwLCAweGE4LCAweDE4LAotCTB4MDAsIDB4MDAsIDB4NGEsIDB4Y2IsIDB4MjAsIDB4MDAsIDB4YTgsIDB4MjIsCi0JMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwgMHg0MCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweGM3LCAweDAwLCAweDA0LCAweDE5LCAweGIwLCAweDAwLCAweGUyLCAweDhiLAotCTB4MDYsIDB4MjAsIDB4YTgsIDB4MGEsIDB4MmYsIDB4MTAsIDB4NjEsIDB4MGEsCi0JMHhmMSwgMHgwOCwgMHgwOSwgMHgyZSwgMHgwMCwgMHgwMSwgMHhhOCwgMHgwMiwKLQkweDBjLCAweGY5LCAweDA4LCAweDQ0LCAweGNmLCAweDEwLCAweDA0LCAweDE5LAotCTB4MGMsIDB4MmIsIDB4MDgsIDB4NDQsIDB4OWYsIDB4MzUsIDB4YjEsIDB4NjAsCi0JMHgwMywgMHgwOCwgMHgwOSwgMHgwZSwgMHgwMCwgMHgwMSwgMHg3MSwgMHg4MiwKLQkweDIwLCAweDAxLCAweDAwLCAweDgwLCAweDAwLCAweDAwLCAweDYxLCAweGNiLAotCTB4ODAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4ZTQsIDB4MjAsIDB4NzEsIDB4OGIsCi0JMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwgMHg5MCwgMHg0MCwgMHgwOSwgMHg4ZiwKLQkweDAwLCAweDA1LCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDM5LAotCTB4MDgsIDB4MTksIDB4MDQsIDB4ZDQsIDB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsCi0JMHhlNywgMHgwMCwgMHgwMSwgMHg2ZiwgMHgwZCwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDIwLCAweDA0LCAweDYxLCAweGE4LCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4MDIsIDB4MDQsIDB4NjEsIDB4YTgsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHhjZCwgMHgzMCwgMHgwMCwgMHgwOSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMiwKLQkweDAyLCAweDAwLCAweDAwLCAweDAyLCAweGMwLCAweDgwLCAweDAwLCAweDA5LAotCTB4MjAsIDB4MDAsIDB4MDksIDB4NDksIDB4MGYsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwZCwgMHgzMCwgMHhjOCwgMHgwYSwgMHgwMCwgMHgyOSwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDgwLCAweGM4LCAweDBhLCAweDAwLCAweDI5LCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDQsIDB4YjEsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHhjOSwgMHgyMCwgMHgwNCwgMHgzOSwgMHgwMCwgMHgzOSwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDA0LCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDM5LAotCTB4MDAsIDB4MDQsIDB4YjEsIDB4ODAsIDB4YzksIDB4MjAsIDB4MDQsIDB4MzksCi0JMHgwMCwgMHgzOSwgMHgwMCwgMHg0NCwgMHgwOSwgMHgyMCwgMHgyMywgMHgwYSwKLQkweDAwLCAweDAwLCAweDA2LCAweDE5LCAweGM5LCAweDIwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MDIsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwYywgMHhiOSwgMHgwNCwgMHgxNCwgMHgwNCwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDA2LCAweDAwLCAweDQ4LCAweDBhLCAweDAwLCAweGE5LCAweDA0LCAweDU0LAotCTB4YzYsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4YTksIDB4MDAsIDB4NDQsCi0JMHgwNSwgMHgwMCwgMHhjOCwgMHgwYSwgMHgwYywgMHhhOSwgMHgwNCwgMHg1NCwKLQkweGM1LCAweDAwLCAweDA0LCAweDE5LCAweDA3LCAweDAwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4YjksIDB4MDQsIDB4NTQsCi0JMHhjYywgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHhiOSwgMHgwMCwgMHg0NCwKLQkweDBlLCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweGI5LCAweDA0LCAweDU0LAotCTB4Y2UsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4NWEsIDB4MDAsIDB4NDQsCi0JMHg4MiwgMHgwZCwgMHgwOSwgMHgyZSwgMHg4MCwgMHg0MCwgMHgwOSwgMHhjZiwKLQkweDAwLCAweGRmLCAweDcxLCAweDhiLCAweDgwLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDIsIDB4YzEsIDB4MDAsIDB4MjIsIDB4MDMsIDB4YzEsIDB4MDAsIDB4MjIsCi0JMHgwMCwgMHgwMSwgMHg2NSwgMHg4MCwgMHhkMiwgMHgwNSwgMHg2NSwgMHg4MiwKLQkweDQwLCAweDIxLCAweDAwLCAweDgwLCAweGQzLCAweDAzLCAweDAwLCAweDgyLAotCTB4NDAsIDB4MzMsIDB4MDAsIDB4ODAsIDB4MGMsIDB4NWEsIDB4MDAsIDB4NDQsCi0JMHgwZiwgMHgzMCwgMHg2MSwgMHgwYSwgMHgwZCwgMHgzMCwgMHhjOCwgMHgwYSwKLQkweDA4LCAweGQ5LCAweDAwLCAweGM0LCAweDkzLCAweDAwLCAweDAxLCAweDRmLAotCTB4ZTcsIDB4MDAsIDB4MDEsIDB4NmYsIDB4MGYsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMiwgMHgwMCwgMHg2MSwgMHgwMiwKLQkweDAyLCAweDAwLCAweDAwLCAweDAzLCAweGNmLCAweDMwLCAweDAwLCAweDA5LAotCTB4MjAsIDB4MDAsIDB4MDksIDB4NDksIDB4MDAsIDB4MDQsIDB4NjMsIDB4ODAsCi0JMHgwNCwgMHhkOSwgMHgwMCwgMHg0NCwgMHgwMCwgMHgwNCwgMHhiMSwgMHg4MCwKLQkweDAwLCAweDAwLCAweDAwLCAweDQ2LCAweDAyLCAweDMwLCAweDYxLCAweDBhLAotCTB4MDUsIDB4YjAsIDB4YTgsIDB4MTgsIDB4YzIsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwgMHgwZSwgMHgxMCwgMHhjOCwgMHgwYSwKLQkweDBjLCAweDBiLCAweDA0LCAweDE0LCAweDBlLCAweDEwLCAweDYxLCAweDBhLAotCTB4MDQsIDB4MmIsIDB4MDAsIDB4NDQsIDB4MGMsIDB4MTAsIDB4YzgsIDB4MGEsCi0JMHgwNCwgMHgyYiwgMHgwNCwgMHg1NCwgMHgwYywgMHgxMCwgMHg2MSwgMHgwYSwKLQkweDAwLCAweDAwLCAweDAwLCAweDQ2LCAweDAwLCAweDEwLCAweGE4LCAweDE4LAotCTB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDEsIDB4NzEsIDB4ODIsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwgMHgwMCwgMHgwNCwgMHgzMywgMHg4MCwKLQkweDAwLCAweDAwLCAweDgzLCAweDgwLCAweDIwLCAweDA0LCAweDdhLCAweDgwLAotCTB4MjAsIDB4MDEsIDB4MzMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4ODMsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHg3YSwgMHg4MCwgMHgyMCwgMHgwMywgMHgwMCwgMHg4MCwKLQkweDAwLCAweDAwLCAweDAwLCAweDQ2LCAweDE2LCAweGNlLCAweDExLCAweDAwCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBpbWFfYWRwY21fY2FwdHVyZVtdID0gewotCTB4MDAsIDB4MTAsIDB4MDAsIDB4NDQsIDB4MDgsIDB4MDAsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHg3MCwgMHgwMCwgMHg0NCwgMHgwOCwgMHhkMCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweGYwLCAweDAwLCAweDQ0LCAweDBkLCAweGYyLCAweDYxLCAweGE4LAotCTB4NDQsIDB4MDQsIDB4MDQsIDB4MTksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwMCwgMHgwNCwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweGZmLCAweDJlLCAweDIxLCAweDQ5LCAweGZmLCAweDBjLCAweGQ0LCAweDQ5LAotCTB4NDAsIDB4NDksIDB4MzksIDB4YWMsIDB4NTUsIDB4NTUsIDB4NzEsIDB4OGIsCi0JMHg1MCwgMHgwMSwgMHhiMSwgMHg4MCwgMHgwMCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMyLCAweDMwLCAweDA0LCAweDE5LCAweGMwLCAweGEwLCAweDA0LCAweDE5LAotCTB4YzIsIDB4YTAsIDB4MDQsIDB4MTksIDB4ODksIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjOCwgMHgzMCwgMHgwNCwgMHgxOSwgMHg3MSwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGNkLCAweDAwLCAweDA0LCAweDE5LCAweGNmLCAweDAwLCAweDA0LCAweDE5LAotCTB4ODAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4Y2IsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHgyMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjNCwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweDQ3LCAweDAwLCAweDUxLCAweDhiLCAweGMwLCAweDIwLCAweDAwLCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NjMsIDB4ODAsIDB4YzEsIDB4YTAsIDB4MDQsIDB4MTksCi0JMHg5MywgMHgwMCwgMHgwMSwgMHg0ZiwgMHhjZCwgMHgzMCwgMHgwMCwgMHgwOSwKLQkweGNmLCAweDMwLCAweDAwLCAweDA5LCAweDBjLCAweDQwLCAweDAwLCAweDE0LAotCTB4MDAsIDB4NjAsIDB4MDAsIDB4MTQsIDB4MDAsIDB4MDQsIDB4NjEsIDB4YTgsCi0JMHgwMiwgMHgwNCwgMHg2MSwgMHhhOCwgMHgwYywgMHg2MCwgMHgwNCwgMHgyNCwKLQkweDAwLCAweDAwLCAweDM0LCAweDQ5LCAweDA4LCAweDUwLCAweDAwLCAweDQ0LAotCTB4NDQsIDB4MDQsIDB4MDQsIDB4MzksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwOCwgMHgzMCwgMHg2MSwgMHgwYSwgMHgwNSwgMHhiMCwgMHhlOCwgMHgxOCwKLQkweDBjLCAweGMwLCAweDA0LCAweDU0LCAweGM4LCAweDMwLCAweDA0LCAweDE5LAotCTB4MDksIDB4MDQsIDB4MDAsIDB4YTgsIDB4MGIsIDB4MDQsIDB4MDAsIDB4YTgsCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHgwOSwgMHgwNCwgMHg2MSwgMHhhOCwKLQkweGMxLCAweDAwLCAweDA0LCAweDE5LCAweDBiLCAweDA0LCAweDYxLCAweGE4LAotCTB4Y2EsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGQsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwgMHgwZiwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDAwLCAweDQwLCAweDA5LCAweDhmLCAweDAwLCAweDAxLCAweDAwLCAweDQ1LAotCTB4NDAsIDB4NDAsIDB4MDksIDB4ZWYsIDB4ZmYsIDB4MjAsIDB4MDksIDB4Y2YsCi0JMHgwMCwgMHgwNCwgMHg2MywgMHhhMSwgMHg1MCwgMHgwMywgMHgzMywgMHg4MCwKLQkweDAwLCAweDA0LCAweGEzLCAweDgwLCAweDAwLCAweGZmLCAweGMyLCAweDhiLAotCTB4MGMsIDB4MTIsIDB4MDQsIDB4NTQsIDB4MDgsIDB4MTIsIDB4MDAsIDB4YzQsCi0JMHgyMCwgMHgwMywgMHg4MCwgMHhjMCwgMHgzMCwgMHgwMCwgMHgwMCwgMHg4OCwKLQkweDAwLCAweDAwLCAweDdhLCAweDBhLCAweGQwLCAweDAxLCAweDAwLCAweDgyLAotCTB4MDQsIDB4NTAsIDB4MDAsIDB4NDQsIDB4YzAsIDB4MDAsIDB4MDAsIDB4OTksCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwMCwgMHhmZiwgMHhjMiwgMHg4YiwKLQkweDIwLCAweDAwLCAweDAwLCAweDgwLCAweDAwLCAweDBkLCAweDQyLCAweDhiLAotCTB4MDQsIDB4NDIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MGUsIDB4NDIsIDB4OGIsCi0JMHgwOCwgMHg1MiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgxZSwgMHg0MiwgMHg4YiwKLQkweDAwLCAweGUyLCAweDAwLCAweGM0LCAweDAwLCAweDhlLCAweDQyLCAweDhiLAotCTB4MDgsIDB4ZDIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4OWUsIDB4NDIsIDB4OGIsCi0JMHgwNCwgMHhmMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHhiZSwgMHg0MiwgMHg4YiwKLQkweDA0LCAweGYyLCAweDAwLCAweGM0LCAweDAwLCAweDA0LCAweDQyLCAweDhiLAotCTB4MDQsIDB4MTEsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MjQsIDB4NDIsIDB4OGIsCi0JMHgwYywgMHg2MSwgMHgwMCwgMHhjNCwgMHgwMCwgMHg1NSwgMHg0MiwgMHg4YiwKLQkweDA0LCAweDUwLCAweDAwLCAweGM0LCAweDAwLCAweDNmLCAweDQyLCAweDhiLAotCTB4MGMsIDB4MDEsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgyMCwgMHgwMSwgMHg3OSwgMHg4MCwgMHgwMCwgMHgzMCwgMHg0MiwgMHg4YiwKLQkweDA0LCAweDYyLCAweDAwLCAweGM0LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwgMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwKLQkweDA4LCAweGMyLCAweDAwLCAweGM0LCAweDBmLCAweGYyLCAweGE4LCAweGE4LAotCTB4MjAsIDB4MDAsIDB4YjEsIDB4ODgsIDB4MDAsIDB4MDAsIDB4NDEsIDB4MDIsCi0JMHg0ZCwgMHhmMiwgMHgwMCwgMHgzOSwgMHhjMCwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweDA0LCAweDUwLCAweDAwLCAweDQ0LCAweDBkLCAweGYyLCAweGEzLCAweGE4LAotCTB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksIDB4MDQsIDB4NTAsIDB4MDAsIDB4NDQsCi0JMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwgMHgyMCwgMHgwMCwgMHgwMCwgMHg4OCwKLQkweDAwLCAweDAwLCAweDYxLCAweDAyLCAweDRkLCAweGYyLCAweDA0LCAweDE5LAotCTB4MDQsIDB4NTAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsCi0JMHhhMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMCwgMHg2MSwgMHgxMCwKLQkweDRkLCAweGYyLCAweDA0LCAweDE5LCAweDA0LCAweDUwLCAweDAwLCAweDQ0LAotCTB4ZmYsIDB4MjAsIDB4ZTIsIDB4YWIsIDB4NjAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHhjMCwgMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwKLQkweDA0LCAweDUwLCAweDAwLCAweDQ0LCAweDAwLCAweDAwLCAweDdhLCAweDBhLAotCTB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDEsIDB4YTAsIDB4NDEsIDB4MGEsCi0JMHgwMCwgMHgxMSwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweGMxLCAweDMwLCAweDA0LCAweDE5LCAweDA0LCAweDUwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4MDAsIDB4NzksIDB4ODAsIDB4MGMsIDB4NDEsIDB4MDAsIDB4ODQsCi0JMHg4OSwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjOCwgMHgzMCwgMHgwNCwgMHgxOSwKLQkweDk3LCAweDAwLCAweDcxLCAweDhiLCAweGNkLCAweDAwLCAweDAwLCAweDM5LAotCTB4MDAsIDB4MDEsIDB4YjEsIDB4ODAsIDB4ODAsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHg4MiwgMHgwMCwgMHgwNCwgMHgxOSwgMHhjMSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweGMzLCAweDIwLCAweDA0LCAweDE5LCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4Y2QsIDB4MTAsIDB4MDQsIDB4MTksIDB4Y2YsIDB4MTAsIDB4MDQsIDB4MTksCi0JMHhiMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4NCwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDg2LCAweDAwLCAweDA0LCAweDE5LCAweDgwLCAweDAwLCAweDcxLCAweDhiLAotCTB4Y2IsIDB4MjAsIDB4MDQsIDB4MTksIDB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsCi0JMHhjZCwgMHgzMCwgMHgwMCwgMHgwOSwgMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwKLQkweDAzLCAweDAyLCAweDA0LCAweDQ5LCAweDA4LCAweDQxLCAweDAwLCAweDE0LAotCTB4MDQsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4MDAsIDB4NjMsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwgMHgwMywgMHgwMCwgMHgwNCwgMHg0OSwKLQkweDA0LCAweDUwLCAweDAwLCAweDQ0LCAweDIwLCAweDAxLCAweDYzLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4MDYsIDB4MTksIDB4MDAsIDB4MjAsIDB4ZTIsIDB4OGIsCi0JMHgwMCwgMHhjMSwgMHgwMCwgMHg4NCwgMHg0NywgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGMwLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAwLCAweDYzLCAweDgwLAotCTB4YzEsIDB4YTAsIDB4MDQsIDB4MTksIDB4MDAsIDB4ZTEsIDB4MDAsIDB4NDQsCi0JMHhiZCwgMHgwMCwgMHg1MSwgMHg4YiwgMHhjMCwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDAwLCAweDAwLCAweGIxLCAweDgwLCAweGMxLCAweGEwLCAweDA0LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDQsIDB4NTAsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHgyMCwgMHg2MSwgMHgwYSwgMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwKLQkweDAyLCAweDMwLCAweDYxLCAweDBhLCAweDBjLCAweDgzLCAweDAwLCAweGM0LAotCTB4MGMsIDB4NzgsIDB4MDgsIDB4NDQsIDB4MDQsIDB4NWEsIDB4MDgsIDB4NDQsCi0JMHhiMiwgMHgwMCwgMHgwOSwgMHg0ZiwgMHgxMCwgMHg0MiwgMHgwOSwgMHg4ZSwKLQkweDA1LCAweGIwLCAweGUwLCAweDE4LCAweDA0LCAweDIzLCAweDAwLCAweDg0LAotCTB4MGMsIDB4MDEsIDB4MDAsIDB4MTEsIDB4MDgsIDB4MDUsIDB4NjEsIDB4MTAsCi0JMHgwMCwgMHg0OSwgMHgwOCwgMHg0NCwgMHgwMCwgMHg0OCwgMHgwOCwgMHg0NCwKLQkweGIyLCAweDAwLCAweDA5LCAweDRmLCAweDgwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzAsIDB4MDAsIDB4MDAsIDB4ODIsIDB4MGMsIDB4MDEsIDB4MzMsIDB4MTAsCi0JMHgyOCwgMHgwMSwgMHhhMywgMHgxMCwgMHgwMCwgMHgwMSwgMHg3YSwgMHg4MCwKLQkweDhjLCAweDAxLCAweDAwLCAweDgwLCAweDAyLCAweDMwLCAweDYxLCAweDBhLAotCTB4MjAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4ODMsIDB4MDAsIDB4YzQsCi0JMHgwNSwgMHhiMCwgMHhjOCwgMHgxOCwgMHgwOCwgMHg0MywgMHgwMCwgMHhjNCwKLQkweDAxLCAweDMwLCAweGM4LCAweDBhLCAweDBjLCAweDM4LCAweDAwLCAweGM0LAotCTB4MDgsIDB4ODgsIDB4MDAsIDB4NDQsIDB4MGMsIDB4NzgsIDB4MDgsIDB4NDQsCi0JMHgwNCwgMHg1YSwgMHgwOCwgMHg0NCwgMHgwMCwgMHgwMCwgMHhhMywgMHgxOCwKLQkweDgwLCAweDAwLCAweDA0LCAweDE5LCAweDBiLCAweDA0LCAweDYxLCAweGE4LAotCTB4YzMsIDB4MjAsIDB4MDAsIDB4MzksIDB4YzMsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHgwZiwgMHgxMCwgMHg2MSwgMHgwYSwgMHhjYSwgMHgzMCwgMHgwNCwgMHgxOSwKLQkweDA5LCAweDA0LCAweDQxLCAweGE4LCAweGUxLCAweDIwLCAweDAwLCAweDM5LAotCTB4ZDEsIDB4MDAsIDB4MDksIDB4NGYsIDB4MDAsIDB4MDQsIDB4NjEsIDB4MDIsCi0JMHgwOCwgMHg2MywgMHgwMCwgMHg0NCwgMHgwMywgMHgzMCwgMHg0MSwgMHgwYSwKLQkweDIwLCAweDAwLCAweDAwLCAweDM5LCAweGEzLCAweDAwLCAweDA5LCAweDRmLAotCTB4MDAsIDB4MDQsIDB4NjEsIDB4MDIsIDB4MDAsIDB4NDgsIDB4MDgsIDB4NDQsCi0JMHgwOCwgMHg4OCwgMHgwMCwgMHg0NCwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDAwLCAweDA4LCAweDAwLCAweGM0LCAweDBjLCAweDc4LCAweDA4LCAweDQ0LAotCTB4MDQsIDB4NWEsIDB4MDgsIDB4NDQsIDB4YjIsIDB4MDAsIDB4MDksIDB4MGYsCi0JMHgxMCwgMHg0MCwgMHgwOSwgMHg4ZSwgMHgwMCwgMHgwMCwgMHg2OCwgMHg1YiwKLQkweDIwLCAweDA0LCAweGIxLCAweDgwLCAweDAyLCAweDAwLCAweDYxLCAweDViLAotCTB4ODgsIDB4MDMsIDB4N2EsIDB4ODAsIDB4YWMsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwNSwgMHhiMCwgMHhlMCwgMHgxOCwgMHgwMCwgMHhkMywgMHgwMCwgMHg4NCwKLQkweDAwLCAweDQ5LCAweDA4LCAweDQ0LCAweDAwLCAweDQ4LCAweDA4LCAweDQ0LAotCTB4YjIsIDB4MDAsIDB4MDksIDB4MGYsIDB4ODAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjMCwgMHgwMCwgMHgwMCwgMHg4MiwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDAwLCAweDA4LCAweDAwLCAweGM0LCAweDA1LCAweGIwLCAweGM4LCAweDE4LAotCTB4MGMsIDB4MTgsIDB4MDAsIDB4YzQsIDB4MDEsIDB4MzAsIDB4YzgsIDB4MGEsCi0JMHgwYywgMHgzOCwgMHgwMCwgMHhjNCwgMHgwOCwgMHg4OCwgMHgwMCwgMHg0NCwKLQkweDBjLCAweDc4LCAweDA4LCAweDQ0LCAweDAwLCAweDAwLCAweDYxLCAweDE4LAotCTB4MjAsIDB4MDUsIDB4YjEsIDB4ODAsIDB4MDAsIDB4MDAsIDB4NjgsIDB4Y2IsCi0JMHg4MCwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwZCwgMHgxMCwgMHg2MSwgMHgwYSwKLQkweGMzLCAweDMwLCAweDA0LCAweDE5LCAweDBiLCAweDA0LCAweDQxLCAweGE4LAotCTB4MDksIDB4MDQsIDB4NDEsIDB4YTgsIDB4ZTEsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwOCwgMHgzOCwgMHgwMCwgMHg0NCwgMHgwMywgMHgzMCwgMHg0MSwgMHgwYSwKLQkweDIwLCAweDA0LCAweGIxLCAweDgwLCAweDAwLCAweDQ4LCAweDA4LCAweDQ0LAotCTB4MDgsIDB4ODgsIDB4MDAsIDB4NDQsIDB4MDAsIDB4MDAsIDB4YjEsIDB4ODAsCi0JMHhjMiwgMHgzMCwgMHgwNCwgMHgxOSwgMHgwYywgMHhiOCwgMHgwMCwgMHhkNCwKLQkweDBmLCAweDMwLCAweDYxLCAweDBhLCAweDBkLCAweDMwLCAweGM4LCAweDBhLAotCTB4MGMsIDB4YjgsIDB4MDAsIDB4YzQsIDB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsCi0JMHhlNywgMHgwMCwgMHgwMSwgMHg2ZiwgMHgwZiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDIwLCAweDAwLCAweDAwLCAweDg4LCAweDAyLCAweDAwLCAweDYxLCAweDAyLAotCTB4NDEsIDB4MDQsIDB4MDQsIDB4MTksIDB4MDIsIDB4MDQsIDB4NjEsIDB4MDIsCi0JMHg0MywgMHgwNCwgMHgwNCwgMHgzOSwgMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwKLQkweDIwLCAweDAwLCAweDA5LCAweDQ5LCAweDAwLCAweDU5LCAweDAwLCAweDQ0LAotCTB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsIDB4ZTcsIDB4MDAsIDB4MDEsIDB4NmYsCi0JMHgwZCwgMHgzMCwgMHg2MSwgMHgwYSwgMHgyMCwgMHgwMCwgMHg2MSwgMHg4OCwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweGMyLCAweDAzLCAweDAwLCAweDgyLAotCTB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksIDB4MjAsIDB4MDAsIDB4MDksIDB4NDksCi0JMHgwZiwgMHgzMCwgMHg2MSwgMHgwYSwgMHgwZCwgMHgzMCwgMHhjOCwgMHgwYSwKLQkweDBjLCAweDU4LCAweDAwLCAweDg0LCAweDAyLCAweDMwLCAweDYxLCAweDBhLAotCTB4MDUsIDB4YjAsIDB4YTgsIDB4MTgsIDB4YzIsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwgMHg5MCwgMHg0MCwgMHgwOSwgMHg4ZiwKLQkweDEyLCAweDA0LCAweDA5LCAweDZlLCAweDAzLCAweDAwLCAweDA5LCAweDBlLAotCTB4MDAsIDB4MDEsIDB4NzEsIDB4ODIsIDB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHhjYiwgMHg4MCwgMHgwNCwgMHhiMSwgMHg4MCwKLQkweDAwLCAweDAxLCAweGUwLCAweDYwLCAweDBjLCAweGQ4LCAweDA0LCAweDE0LAotCTB4MDAsIDB4MDEsIDB4ZWIsIDB4ODAsIDB4NDAsIDB4MDAsIDB4NTIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHg3OSwgMHg4MCwgMHhjMCwgMHgwMSwgMHg3MSwgMHhjMiwKLQkweDIwLCAweDAwLCAweGMwLCAweDgwLCAweDA4LCAweDBhLCAweDA0LCAweDU0LAotCTB4YzAsIDB4MDQsIDB4YTgsIDB4ODIsIDB4ODAsIDB4MDAsIDB4NzIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweDIwLCAweDAwLCAweGMwLCAweDgwLCAweDBjLCAweDJhLCAweDA0LCAweDU0LAotCTB4YzAsIDB4MDQsIDB4YTgsIDB4ODIsIDB4MTAsIDB4MDAsIDB4NzIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweDIwLCAweDAwLCAweGMwLCAweDgwLCAweDA4LCAweDNhLCAweDA0LCAweDU0LAotCTB4YzAsIDB4MDQsIDB4YTgsIDB4ODIsIDB4MjAsIDB4MDAsIDB4NzIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHhjMCwgMHgwMywgMHhmMCwgMHg4MiwKLQkweDIwLCAweDAwLCAweGEwLCAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDExLAotCTB4NDAsIDB4MDAsIDB4YzIsIDB4OGIsIDB4MDAsIDB4YWEsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwMCwgMHhlOSwgMHg4MCwgMHgwNSwgMHhiMCwgMHhhOCwgMHgxOCwKLQkweDAwLCAweDAxLCAweGE4LCAweDIyLCAweGQwLCAweDAxLCAweDAwLCAweDgyLAotCTB4ZjAsIDB4MDAsIDB4ZTIsIDB4MWIsIDB4MDYsIDB4MjAsIDB4YTgsIDB4MGEsCi0JMHgyZCwgMHgxMCwgMHg2MSwgMHgwYSwgMHhkMSwgMHgwMCwgMHgwOSwgMHgyZSwKLQkweDAwLCAweDAxLCAweGE4LCAweDAyLCAweDBlLCAweDEwLCAweGM4LCAweDBhLAotCTB4MGMsIDB4YmEsIDB4MDQsIDB4MTQsIDB4MGUsIDB4MTAsIDB4NjEsIDB4MGEsCi0JMHgwNCwgMHg0YSwgMHgwMCwgMHg0NCwgMHgwYywgMHgxMCwgMHhjOCwgMHgwYSwKLQkweDA0LCAweDRhLCAweDA0LCAweDU0LCAweDBjLCAweDEwLCAweDYxLCAweDBhLAotCTB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsIDB4MDAsIDB4MTAsIDB4YTgsIDB4MTgsCi0JMHhhMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMSwgMHg3MSwgMHg4MiwKLQkweDAzLCAweDAwLCAweDA5LCAweDBlLCAweDlhLCAweDAxLCAweDAwLCAweDYwLAotCTB4MzIsIDB4MDAsIDB4MDksIDB4MmUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsCi0JMHgwMCwgMHgwMSwgMHg3MSwgMHg4MiwgMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweDAwLCAweDAwLCAweDYxLCAweGNiLCAweDgwLCAweDI0LCAweGIxLCAweGMwLAotCTB4MDAsIDB4MzEsIDB4ZTAsIDB4NjAsIDB4MGMsIDB4Y2EsIDB4MDQsIDB4MTQsCi0JMHgwMCwgMHgwMSwgMHhlYiwgMHg4MCwgMHg0MCwgMHgwMCwgMHg1MiwgMHgxYiwKLQkweDgwLCAweDAwLCAweDc5LCAweDgwLCAweGMwLCAweDAxLCAweDcxLCAweGMyLAotCTB4MjAsIDB4MDAsIDB4YzAsIDB4ODAsIDB4MDgsIDB4ZGEsIDB4MDQsIDB4NTQsCi0JMHhjMCwgMHgwNCwgMHhhOCwgMHg4MiwgMHg4MCwgMHgwMCwgMHg3MiwgMHgxYiwKLQkweDgwLCAweDAwLCAweDAwLCAweDgwLCAweDAwLCAweDAxLCAweGYwLCAweDgwLAotCTB4MjAsIDB4MDAsIDB4YzAsIDB4ODAsIDB4MGMsIDB4ZmEsIDB4MDQsIDB4NTQsCi0JMHhjMCwgMHgwNCwgMHhhOCwgMHg4MiwgMHgxMCwgMHgwMCwgMHg3MiwgMHgxYiwKLQkweDgwLCAweDAwLCAweDAwLCAweDgwLCAweDAwLCAweDAxLCAweGYwLCAweDgwLAotCTB4MjAsIDB4MDAsIDB4YzAsIDB4ODAsIDB4MDgsIDB4MjksIDB4MDQsIDB4NTQsCi0JMHhjMCwgMHgwNCwgMHhhOCwgMHg4MiwgMHgyMCwgMHgwMCwgMHg3MiwgMHgxYiwKLQkweDgwLCAweDAwLCAweDAwLCAweDgwLCAweGMwLCAweDAzLCAweGYwLCAweDgyLAotCTB4MjAsIDB4MDAsIDB4YTAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MTEsCi0JMHg0MCwgMHgwMCwgMHhjMiwgMHg4YiwgMHgwMCwgMHgzOSwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDAwLCAweGU5LCAweDgwLCAweDA1LCAweGIwLCAweGE4LCAweDE4LAotCTB4MDAsIDB4MDEsIDB4YTgsIDB4MjIsIDB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHhiMCwgMHgwMCwgMHhlMiwgMHgxYiwgMHgwNiwgMHgyMCwgMHhhOCwgMHgwYSwKLQkweDJmLCAweDEwLCAweDYxLCAweDBhLCAweGYxLCAweDAwLCAweDA5LCAweDJlLAotCTB4MDAsIDB4MDEsIDB4YTgsIDB4MDIsIDB4MGUsIDB4MTAsIDB4YzgsIDB4MGEsCi0JMHgwYywgMHhhOSwgMHgwNCwgMHgxNCwgMHgwZSwgMHgxMCwgMHg2MSwgMHgwYSwKLQkweDA0LCAweDk5LCAweDAwLCAweDQ0LCAweDBjLCAweDEwLCAweGM4LCAweDBhLAotCTB4MDQsIDB4OTksIDB4MDQsIDB4NTQsIDB4MGMsIDB4MTAsIDB4NjEsIDB4MGEsCi0JMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwgMHgwMCwgMHgxMCwgMHhhOCwgMHgxOCwKLQkweGEwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAxLCAweDcxLCAweDgyLAotCTB4OWYsIDB4MDEsIDB4MDAsIDB4NjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsCi0JMHgwMCwgMHgwMCwgMHgzMywgMHg4MCwgMHgwMCwgMHgwMCwgMHg4MywgMHg4MCwKLQkweDIwLCAweDAwLCAweDdhLCAweDgwLCAweDIwLCAweDA3LCAweDMzLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4ODMsIDB4ODAsIDB4MjAsIDB4MDQsIDB4N2EsIDB4ODAsCi0JMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwKLQkweDAyLCAweDAwLCAweDYxLCAweDBhLCAweDA0LCAweDFiLCAweDA0LCAweDE0LAotCTB4MDEsIDB4MDAsIDB4NjEsIDB4MGEsIDB4MDMsIDB4MDAsIDB4NDgsIDB4MGEsCi0JMHgwYywgMHg3OSwgMHgwNCwgMHg1NCwgMHhjMywgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDA0LCAweGM5LCAweDAwLCAweDQ0LCAweDA4LCAweDAwLCAweGM4LCAweDBhLAotCTB4MDQsIDB4YzksIDB4MDQsIDB4NTQsIDB4YzgsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwYSwgMHgwMCwgMHg2MSwgMHgwYSwgMHgwOSwgMHgwMCwgMHg0OCwgMHgwYSwKLQkweDBjLCAweGU5LCAweDA0LCAweDU0LCAweGM5LCAweDAwLCAweDA0LCAweDE5LAotCTB4MDQsIDB4ZDksIDB4MDAsIDB4NDQsIDB4MGIsIDB4MDAsIDB4YzgsIDB4MGEsCi0JMHgwNCwgMHhkOSwgMHgwNCwgMHg1NCwgMHhjYiwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDA0LCAweDAwLCAweDYxLCAweDBhLCAweDA2LCAweDAwLCAweDQ4LCAweDBhLAotCTB4MGMsIDB4ZjksIDB4MDQsIDB4NTQsIDB4YzYsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHgwYiwgMHgwMCwgMHg0NCwgMHgwNSwgMHgwMCwgMHhjOCwgMHgwYSwKLQkweDA0LCAweDBiLCAweDA0LCAweDU0LCAweGM1LCAweDAwLCAweDA0LCAweDE5LAotCTB4MDcsIDB4MDAsIDB4NjEsIDB4MGEsIDB4MGMsIDB4MDAsIDB4NDgsIDB4MGEsCi0JMHgwYywgMHgyYiwgMHgwNCwgMHg1NCwgMHhjYywgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDA0LCAweDFiLCAweDAwLCAweDQ0LCAweDBlLCAweDAwLCAweGM4LCAweDBhLAotCTB4MDQsIDB4MWIsIDB4MDQsIDB4NTQsIDB4Y2UsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHg5MiwgMHgyMCwgMHg3MSwgMHg4YiwKLQkweGE2LCAweGM1LCAweDExLCAweDAwCi19OwpkaWZmIC0tZ2l0IGEvc291bmQvaXNhL3dhdmVmcm9udC93YXZlZnJvbnRfc3ludGguYyBiL3NvdW5kL2lzYS93YXZlZnJvbnQvd2F2ZWZyb250X3N5bnRoLmMKaW5kZXggOTVlZWNhMS4uMGJiOWI5MiAxMDA2NDQKLS0tIGEvc291bmQvaXNhL3dhdmVmcm9udC93YXZlZnJvbnRfc3ludGguYworKysgYi9zb3VuZC9pc2Evd2F2ZWZyb250L3dhdmVmcm9udF9zeW50aC5jCkBAIC0xOTM5LDcgKzE5MzksNyBAQAogd2F2ZWZyb250X2Rvd25sb2FkX2Zpcm13YXJlIChzbmRfd2F2ZWZyb250X3QgKmRldiwgY2hhciAqcGF0aCkKIAogewotCXVuc2lnbmVkIGNoYXIgKmJ1ZjsKKwljb25zdCB1bnNpZ25lZCBjaGFyICpidWY7CiAJaW50IGxlbiwgZXJyOwogCWludCBzZWN0aW9uX2NudF9kb3dubG9hZGVkID0gMDsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZpcm13YXJlOwpkaWZmIC0tZ2l0IGEvc291bmQvbWlwcy9LY29uZmlnIGIvc291bmQvbWlwcy9LY29uZmlnCmluZGV4IDUzMWY4YmEuLmE5ODIzZmEgMTAwNjQ0Ci0tLSBhL3NvdW5kL21pcHMvS2NvbmZpZworKysgYi9zb3VuZC9taXBzL0tjb25maWcKQEAgLTEsMTUgKzEsMzQgQEAKICMgQUxTQSBNSVBTIGRyaXZlcnMKIAotbWVudSAiQUxTQSBNSVBTIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgTUlQUworbWVudWNvbmZpZyBTTkRfTUlQUworCWJvb2wgIk1JUFMgc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIE1JUFMKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBzb3VuZCBkZXZpY2VzIG9mIE1JUFMgYXJjaGl0ZWN0dXJlcy4KKworaWYgU05EX01JUFMKKworY29uZmlnIFNORF9TR0lfTzIKKwl0cmlzdGF0ZSAiU0dJIE8yIEF1ZGlvIgorCWRlcGVuZHMgb24gU0dJX0lQMzIKKyAgICAgICAgaGVscAorICAgICAgICAgICAgICAgIFNvdW5kIHN1cHBvcnQgZm9yIHRoZSBTR0kgTzIgV29ya3N0YXRpb24uIAorCitjb25maWcgU05EX1NHSV9IQUwyCisgICAgICAgIHRyaXN0YXRlICJTR0kgSEFMMiBBdWRpbyIKKyAgICAgICAgZGVwZW5kcyBvbiBTR0lfSEFTX0hBTDIKKyAgICAgICAgaGVscAorICAgICAgICAgICAgICAgIFNvdW5kIHN1cHBvcnQgZm9yIHRoZSBTR0kgSW5keSBhbmQgSW5kaWdvMiBXb3Jrc3RhdGlvbi4KKwogCiBjb25maWcgU05EX0FVMVgwMAogCXRyaXN0YXRlICJBdTF4MDAgQUM5NyBQb3J0IERyaXZlciIKLQlkZXBlbmRzIG9uIChTT0NfQVUxMDAwIHx8IFNPQ19BVTExMDAgfHwgU09DX0FVMTUwMCkgJiYgU05ECisJZGVwZW5kcyBvbiBTT0NfQVUxMDAwIHx8IFNPQ19BVTExMDAgfHwgU09DX0FVMTUwMAogCXNlbGVjdCBTTkRfUENNCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscAogCSAgQUxTQSBTb3VuZCBkcml2ZXIgZm9yIHRoZSBBdTF4MDAncyBBQzk3IHBvcnQuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX01JUFMKIApkaWZmIC0tZ2l0IGEvc291bmQvbWlwcy9NYWtlZmlsZSBiL3NvdW5kL21pcHMvTWFrZWZpbGUKaW5kZXggNDdhZmVkOS4uODYxZWMwYSAxMDA2NDQKLS0tIGEvc291bmQvbWlwcy9NYWtlZmlsZQorKysgYi9zb3VuZC9taXBzL01ha2VmaWxlCkBAIC0zLDYgKzMsMTAgQEAKICMKIAogc25kLWF1MXgwMC1vYmpzIDo9IGF1MXgwMC5vCitzbmQtc2dpLW8yLW9ianMgOj0gc2dpbzJhdWRpby5vIGFkMTg0My5vCitzbmQtc2dpLWhhbDItb2JqcyA6PSBoYWwyLm8KIAogIyBUb3BsZXZlbCBNb2R1bGUgRGVwZW5kZW5jeQogb2JqLSQoQ09ORklHX1NORF9BVTFYMDApICs9IHNuZC1hdTF4MDAubworb2JqLSQoQ09ORklHX1NORF9TR0lfTzIpICs9IHNuZC1zZ2ktbzIubworb2JqLSQoQ09ORklHX1NORF9TR0lfSEFMMikgKz0gc25kLXNnaS1oYWwyLm8KZGlmZiAtLWdpdCBhL3NvdW5kL21pcHMvYWQxODQzLmMgYi9zb3VuZC9taXBzL2FkMTg0My5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2MjQ1MTAKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9taXBzL2FkMTg0My5jCkBAIC0wLDAgKzEsNTYxIEBACisvKgorICogICBBRDE4NDMgbG93IGxldmVsIGRyaXZlcgorICoKKyAqICAgQ29weXJpZ2h0IDIwMDMgVml2aWVuIENoYXBwZWxpZXIgPHZpdmllbi5jaGFwcGVsaWVyQGxpbnV4LW1pcHMub3JnPgorICogICBDb3B5cmlnaHQgMjAwOCBUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBhbHBoYS5mcmFua2VuLmRlPgorICoKKyAqICAgaW5zcGlyZWQgZnJvbSB2d3NuZC5jIChTR0kgVlcgYXVkaW8gZHJpdmVyKQorICogICAgIENvcHlyaWdodCAxOTk5IFNpbGljb24gR3JhcGhpY3MsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvYWQxODQzLmg+CisKKy8qCisgKiBBRDE4NDMgYml0ZmllbGQgZGVmaW5pdGlvbnMuICBBbGwgYXJlIG5hbWVkIGFzIGluIHRoZSBBRDE4NDMgZGF0YQorICogc2hlZXQsIHdpdGggYWQxODQzXyBwcmVwZW5kZWQgYW5kIGluZGl2aWR1YWwgYml0IG51bWJlcnMgcmVtb3ZlZC4KKyAqCisgKiBFLmcuLCBiaXRzIExTUzAgdGhyb3VnaCBMU1MyIGJlY29tZSBhZDE4NDNfTFNTLgorICoKKyAqIE9ubHkgdGhlIGJpdGZpZWxkcyB3ZSBuZWVkIGFyZSBkZWZpbmVkLgorICovCisKK3N0cnVjdCBhZDE4NDNfYml0ZmllbGQgeworCWNoYXIgcmVnOworCWNoYXIgbG9fYml0OworCWNoYXIgbmJpdHM7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGFkMTg0M19iaXRmaWVsZAorCWFkMTg0M19QRE5PICAgPSB7ICAwLCAxNCwgIDEgfSwJLyogQ29udmVydGVyIFBvd2VyLURvd24gRmxhZyAqLworCWFkMTg0M19JTklUICAgPSB7ICAwLCAxNSwgIDEgfSwJLyogQ2xvY2sgSW5pdGlhbGl6YXRpb24gRmxhZyAqLworCWFkMTg0M19SSUcgICAgPSB7ICAyLCAgMCwgIDQgfSwJLyogUmlnaHQgQURDIElucHV0IEdhaW4gKi8KKwlhZDE4NDNfUk1HRSAgID0geyAgMiwgIDQsICAxIH0sCS8qIFJpZ2h0IEFEQyBNaWMgR2FpbiBFbmFibGUgKi8KKwlhZDE4NDNfUlNTICAgID0geyAgMiwgIDUsICAzIH0sCS8qIFJpZ2h0IEFEQyBTb3VyY2UgU2VsZWN0ICovCisJYWQxODQzX0xJRyAgICA9IHsgIDIsICA4LCAgNCB9LAkvKiBMZWZ0IEFEQyBJbnB1dCBHYWluICovCisJYWQxODQzX0xNR0UgICA9IHsgIDIsIDEyLCAgMSB9LAkvKiBMZWZ0IEFEQyBNaWMgR2FpbiBFbmFibGUgKi8KKwlhZDE4NDNfTFNTICAgID0geyAgMiwgMTMsICAzIH0sCS8qIExlZnQgQURDIFNvdXJjZSBTZWxlY3QgKi8KKwlhZDE4NDNfUkQyTSAgID0geyAgMywgIDAsICA1IH0sCS8qIFJpZ2h0IERBQyAyIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX1JEMk1NICA9IHsgIDMsICA3LCAgMSB9LAkvKiBSaWdodCBEQUMgMiBNaXggTXV0ZSAqLworCWFkMTg0M19MRDJNICAgPSB7ICAzLCAgOCwgIDUgfSwJLyogTGVmdCBEQUMgMiBNaXggR2Fpbi9BdHRlbiAqLworCWFkMTg0M19MRDJNTSAgPSB7ICAzLCAxNSwgIDEgfSwJLyogTGVmdCBEQUMgMiBNaXggTXV0ZSAqLworCWFkMTg0M19SWDFNICAgPSB7ICA0LCAgMCwgIDUgfSwJLyogUmlnaHQgQXV4IDEgTWl4IEdhaW4vQXR0ZW4gKi8KKwlhZDE4NDNfUlgxTU0gID0geyAgNCwgIDcsICAxIH0sCS8qIFJpZ2h0IEF1eCAxIE1peCBNdXRlICovCisJYWQxODQzX0xYMU0gICA9IHsgIDQsICA4LCAgNSB9LAkvKiBMZWZ0IEF1eCAxIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX0xYMU1NICA9IHsgIDQsIDE1LCAgMSB9LAkvKiBMZWZ0IEF1eCAxIE1peCBNdXRlICovCisJYWQxODQzX1JYMk0gICA9IHsgIDUsICAwLCAgNSB9LAkvKiBSaWdodCBBdXggMiBNaXggR2Fpbi9BdHRlbiAqLworCWFkMTg0M19SWDJNTSAgPSB7ICA1LCAgNywgIDEgfSwJLyogUmlnaHQgQXV4IDIgTWl4IE11dGUgKi8KKwlhZDE4NDNfTFgyTSAgID0geyAgNSwgIDgsICA1IH0sCS8qIExlZnQgQXV4IDIgTWl4IEdhaW4vQXR0ZW4gKi8KKwlhZDE4NDNfTFgyTU0gID0geyAgNSwgMTUsICAxIH0sCS8qIExlZnQgQXV4IDIgTWl4IE11dGUgKi8KKwlhZDE4NDNfUk1DTSAgID0geyAgNywgIDAsICA1IH0sCS8qIFJpZ2h0IE1pYyBNaXggR2Fpbi9BdHRlbiAqLworCWFkMTg0M19STUNNTSAgPSB7ICA3LCAgNywgIDEgfSwJLyogUmlnaHQgTWljIE1peCBNdXRlICovCisJYWQxODQzX0xNQ00gICA9IHsgIDcsICA4LCAgNSB9LAkvKiBMZWZ0IE1pYyBNaXggR2Fpbi9BdHRlbiAqLworCWFkMTg0M19MTUNNTSAgPSB7ICA3LCAxNSwgIDEgfSwJLyogTGVmdCBNaWMgTWl4IE11dGUgKi8KKwlhZDE4NDNfSFBPUyAgID0geyAgOCwgIDQsICAxIH0sCS8qIEhlYWRwaG9uZSBPdXRwdXQgVm9sdGFnZSBTd2luZyAqLworCWFkMTg0M19IUE9NICAgPSB7ICA4LCAgNSwgIDEgfSwJLyogSGVhZHBob25lIE91dHB1dCBNdXRlICovCisJYWQxODQzX01QT00gICA9IHsgIDgsICA2LCAgMSB9LAkvKiBNb25vIE91dHB1dCBNdXRlICovCisJYWQxODQzX1JEQTFHICA9IHsgIDksICAwLCAgNiB9LAkvKiBSaWdodCBEQUMxIEFuYWxvZy9EaWdpdGFsIEdhaW4gKi8KKwlhZDE4NDNfUkRBMUdNID0geyAgOSwgIDcsICAxIH0sCS8qIFJpZ2h0IERBQzEgQW5hbG9nIE11dGUgKi8KKwlhZDE4NDNfTERBMUcgID0geyAgOSwgIDgsICA2IH0sCS8qIExlZnQgREFDMSBBbmFsb2cvRGlnaXRhbCBHYWluICovCisJYWQxODQzX0xEQTFHTSA9IHsgIDksIDE1LCAgMSB9LAkvKiBMZWZ0IERBQzEgQW5hbG9nIE11dGUgKi8KKwlhZDE4NDNfUkRBMkcgID0geyAxMCwgIDAsICA2IH0sCS8qIFJpZ2h0IERBQzIgQW5hbG9nL0RpZ2l0YWwgR2FpbiAqLworCWFkMTg0M19SREEyR00gPSB7IDEwLCAgNywgIDEgfSwJLyogUmlnaHQgREFDMiBBbmFsb2cgTXV0ZSAqLworCWFkMTg0M19MREEyRyAgPSB7IDEwLCAgOCwgIDYgfSwJLyogTGVmdCBEQUMyIEFuYWxvZy9EaWdpdGFsIEdhaW4gKi8KKwlhZDE4NDNfTERBMkdNID0geyAxMCwgMTUsICAxIH0sCS8qIExlZnQgREFDMiBBbmFsb2cgTXV0ZSAqLworCWFkMTg0M19SREExQU0gPSB7IDExLCAgNywgIDEgfSwJLyogUmlnaHQgREFDMSBEaWdpdGFsIE11dGUgKi8KKwlhZDE4NDNfTERBMUFNID0geyAxMSwgMTUsICAxIH0sCS8qIExlZnQgREFDMSBEaWdpdGFsIE11dGUgKi8KKwlhZDE4NDNfUkRBMkFNID0geyAxMiwgIDcsICAxIH0sCS8qIFJpZ2h0IERBQzIgRGlnaXRhbCBNdXRlICovCisJYWQxODQzX0xEQTJBTSA9IHsgMTIsIDE1LCAgMSB9LAkvKiBMZWZ0IERBQzIgRGlnaXRhbCBNdXRlICovCisJYWQxODQzX0FETEMgICA9IHsgMTUsICAwLCAgMiB9LAkvKiBBREMgTGVmdCBTYW1wbGUgUmF0ZSBTb3VyY2UgKi8KKwlhZDE4NDNfQURSQyAgID0geyAxNSwgIDIsICAyIH0sCS8qIEFEQyBSaWdodCBTYW1wbGUgUmF0ZSBTb3VyY2UgKi8KKwlhZDE4NDNfREExQyAgID0geyAxNSwgIDgsICAyIH0sCS8qIERBQzEgU2FtcGxlIFJhdGUgU291cmNlICovCisJYWQxODQzX0RBMkMgICA9IHsgMTUsIDEwLCAgMiB9LAkvKiBEQUMyIFNhbXBsZSBSYXRlIFNvdXJjZSAqLworCWFkMTg0M19DMUMgICAgPSB7IDE3LCAgMCwgMTYgfSwJLyogQ2xvY2sgMSBTYW1wbGUgUmF0ZSBTZWxlY3QgKi8KKwlhZDE4NDNfQzJDICAgID0geyAyMCwgIDAsIDE2IH0sCS8qIENsb2NrIDIgU2FtcGxlIFJhdGUgU2VsZWN0ICovCisJYWQxODQzX0MzQyAgICA9IHsgMjMsICAwLCAxNiB9LAkvKiBDbG9jayAzIFNhbXBsZSBSYXRlIFNlbGVjdCAqLworCWFkMTg0M19EQUFETCAgPSB7IDI1LCAgNCwgIDIgfSwJLyogRGlnaXRhbCBBREMgTGVmdCBTb3VyY2UgU2VsZWN0ICovCisJYWQxODQzX0RBQURSICA9IHsgMjUsICA2LCAgMiB9LAkvKiBEaWdpdGFsIEFEQyBSaWdodCBTb3VyY2UgU2VsZWN0ICovCisJYWQxODQzX0RBTUlYICA9IHsgMjUsIDE0LCAgMSB9LAkvKiBEQUMgRGlnaXRhbCBNaXggRW5hYmxlICovCisJYWQxODQzX0RSU0ZMVCA9IHsgMjUsIDE1LCAgMSB9LAkvKiBEaWdpdGFsIFJlYW1wbGVyIEZpbHRlciBNb2RlICovCisJYWQxODQzX0FETEYgICA9IHsgMjYsICAwLCAgMiB9LCAvKiBBREMgTGVmdCBDaGFubmVsIERhdGEgRm9ybWF0ICovCisJYWQxODQzX0FEUkYgICA9IHsgMjYsICAyLCAgMiB9LCAvKiBBREMgUmlnaHQgQ2hhbm5lbCBEYXRhIEZvcm1hdCAqLworCWFkMTg0M19BRFRMSyAgPSB7IDI2LCAgNCwgIDEgfSwJLyogQURDIFRyYW5zbWl0IExvY2sgTW9kZSBTZWxlY3QgKi8KKwlhZDE4NDNfU0NGICAgID0geyAyNiwgIDcsICAxIH0sCS8qIFNDTEsgRnJlcXVlbmN5IFNlbGVjdCAqLworCWFkMTg0M19EQTFGICAgPSB7IDI2LCAgOCwgIDIgfSwJLyogREFDMSBEYXRhIEZvcm1hdCBTZWxlY3QgKi8KKwlhZDE4NDNfREEyRiAgID0geyAyNiwgMTAsICAyIH0sCS8qIERBQzIgRGF0YSBGb3JtYXQgU2VsZWN0ICovCisJYWQxODQzX0RBMVNNICA9IHsgMjYsIDE0LCAgMSB9LAkvKiBEQUMxIFN0ZXJlby9Nb25vIE1vZGUgU2VsZWN0ICovCisJYWQxODQzX0RBMlNNICA9IHsgMjYsIDE1LCAgMSB9LAkvKiBEQUMyIFN0ZXJlby9Nb25vIE1vZGUgU2VsZWN0ICovCisJYWQxODQzX0FETEVOICA9IHsgMjcsICAwLCAgMSB9LAkvKiBBREMgTGVmdCBDaGFubmVsIEVuYWJsZSAqLworCWFkMTg0M19BRFJFTiAgPSB7IDI3LCAgMSwgIDEgfSwJLyogQURDIFJpZ2h0IENoYW5uZWwgRW5hYmxlICovCisJYWQxODQzX0FBTUVOICA9IHsgMjcsICA0LCAgMSB9LAkvKiBBbmFsb2cgdG8gQW5hbG9nIE1peCBFbmFibGUgKi8KKwlhZDE4NDNfQU5BRU4gID0geyAyNywgIDcsICAxIH0sCS8qIEFuYWxvZyBDaGFubmVsIEVuYWJsZSAqLworCWFkMTg0M19EQTFFTiAgPSB7IDI3LCAgOCwgIDEgfSwJLyogREFDMSBFbmFibGUgKi8KKwlhZDE4NDNfREEyRU4gID0geyAyNywgIDksICAxIH0sCS8qIERBQzIgRW5hYmxlICovCisJYWQxODQzX0RETUVOICA9IHsgMjcsIDEyLCAgMSB9LAkvKiBEQUMyIHRvIERBQzEgTWl4ICBFbmFibGUgKi8KKwlhZDE4NDNfQzFFTiAgID0geyAyOCwgMTEsICAxIH0sCS8qIENsb2NrIEdlbmVyYXRvciAxIEVuYWJsZSAqLworCWFkMTg0M19DMkVOICAgPSB7IDI4LCAxMiwgIDEgfSwJLyogQ2xvY2sgR2VuZXJhdG9yIDIgRW5hYmxlICovCisJYWQxODQzX0MzRU4gICA9IHsgMjgsIDEzLCAgMSB9LAkvKiBDbG9jayBHZW5lcmF0b3IgMyBFbmFibGUgKi8KKwlhZDE4NDNfUEROSSAgID0geyAyOCwgMTUsICAxIH07CS8qIENvbnZlcnRlciBQb3dlciBEb3duICovCisKKy8qCisgKiBUaGUgdmFyaW91cyByZWdpc3RlcnMgb2YgdGhlIEFEMTg0MyB1c2UgdGhyZWUgZGlmZmVyZW50IGZvcm1hdHMgZm9yCisgKiBzcGVjaWZ5aW5nIGdhaW4uICBUaGUgYWQxODQzX2dhaW4gc3RydWN0dXJlIHBhcmFtZXRlcml6ZXMgdGhlCisgKiBmb3JtYXRzLgorICovCisKK3N0cnVjdCBhZDE4NDNfZ2FpbiB7CisJaW50CW5lZ2F0aXZlOwkJLyogbm9uemVybyBpZiBnYWluIGlzIG5lZ2F0aXZlLiAqLworCWNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKmxmaWVsZDsKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICpyZmllbGQ7CisJY29uc3Qgc3RydWN0IGFkMTg0M19iaXRmaWVsZCAqbG11dGU7CisJY29uc3Qgc3RydWN0IGFkMTg0M19iaXRmaWVsZCAqcm11dGU7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGFkMTg0M19nYWluIGFkMTg0M19nYWluX1JFQ0xFViA9IHsKKwkubmVnYXRpdmUgPSAwLAorCS5sZmllbGQgICA9ICZhZDE4NDNfTElHLAorCS5yZmllbGQgICA9ICZhZDE4NDNfUklHCit9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBhZDE4NDNfZ2FpbiBhZDE4NDNfZ2Fpbl9MSU5FID0geworCS5uZWdhdGl2ZSA9IDEsCisJLmxmaWVsZCAgID0gJmFkMTg0M19MWDFNLAorCS5yZmllbGQgICA9ICZhZDE4NDNfUlgxTSwKKwkubG11dGUgICAgPSAmYWQxODQzX0xYMU1NLAorCS5ybXV0ZSAgICA9ICZhZDE4NDNfUlgxTU0KK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGFkMTg0M19nYWluIGFkMTg0M19nYWluX0xJTkVfMiA9IHsKKwkubmVnYXRpdmUgPSAxLAorCS5sZmllbGQgICA9ICZhZDE4NDNfTERBMkcsCisJLnJmaWVsZCAgID0gJmFkMTg0M19SREEyRywKKwkubG11dGUgICAgPSAmYWQxODQzX0xEQTJHTSwKKwkucm11dGUgICAgPSAmYWQxODQzX1JEQTJHTQorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gYWQxODQzX2dhaW5fTUlDID0geworCS5uZWdhdGl2ZSA9IDEsCisJLmxmaWVsZCAgID0gJmFkMTg0M19MTUNNLAorCS5yZmllbGQgICA9ICZhZDE4NDNfUk1DTSwKKwkubG11dGUgICAgPSAmYWQxODQzX0xNQ01NLAorCS5ybXV0ZSAgICA9ICZhZDE4NDNfUk1DTU0KK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGFkMTg0M19nYWluIGFkMTg0M19nYWluX1BDTV8wID0geworCS5uZWdhdGl2ZSA9IDEsCisJLmxmaWVsZCAgID0gJmFkMTg0M19MREExRywKKwkucmZpZWxkICAgPSAmYWQxODQzX1JEQTFHLAorCS5sbXV0ZSAgICA9ICZhZDE4NDNfTERBMUdNLAorCS5ybXV0ZSAgICA9ICZhZDE4NDNfUkRBMUdNCit9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBhZDE4NDNfZ2FpbiBhZDE4NDNfZ2Fpbl9QQ01fMSA9IHsKKwkubmVnYXRpdmUgPSAxLAorCS5sZmllbGQgICA9ICZhZDE4NDNfTEQyTSwKKwkucmZpZWxkICAgPSAmYWQxODQzX1JEMk0sCisJLmxtdXRlICAgID0gJmFkMTg0M19MRDJNTSwKKwkucm11dGUgICAgPSAmYWQxODQzX1JEMk1NCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGFkMTg0M19nYWluICphZDE4NDNfZ2FpbltBRDE4NDNfR0FJTl9TSVpFXSA9Cit7CisJJmFkMTg0M19nYWluX1JFQ0xFViwKKwkmYWQxODQzX2dhaW5fTElORSwKKwkmYWQxODQzX2dhaW5fTElORV8yLAorCSZhZDE4NDNfZ2Fpbl9NSUMsCisJJmFkMTg0M19nYWluX1BDTV8wLAorCSZhZDE4NDNfZ2Fpbl9QQ01fMSwKK307CisKKy8qIHJlYWQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYW4gQUQxODQzIGJpdGZpZWxkLiAqLworCitzdGF0aWMgaW50IGFkMTg0M19yZWFkX2JpdHMoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywKKwkJCSAgICBjb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICpmaWVsZCkKK3sKKwlpbnQgdzsKKworCXcgPSBhZDE4NDMtPnJlYWQoYWQxODQzLT5jaGlwLCBmaWVsZC0+cmVnKTsKKwlyZXR1cm4gdyA+PiBmaWVsZC0+bG9fYml0ICYgKCgxIDw8IGZpZWxkLT5uYml0cykgLSAxKTsKK30KKworLyoKKyAqIHdyaXRlIGEgbmV3IHZhbHVlIHRvIGFuIEFEMTg0MyBiaXRmaWVsZCBhbmQgcmV0dXJuIHRoZSBvbGQgdmFsdWUuCisgKi8KKworc3RhdGljIGludCBhZDE4NDNfd3JpdGVfYml0cyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkJICAgICBjb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICpmaWVsZCwKKwkJCSAgICAgaW50IG5ld3ZhbCkKK3sKKwlpbnQgdywgbWFzaywgb2xkdmFsLCBuZXdiaXRzOworCisJdyA9IGFkMTg0My0+cmVhZChhZDE4NDMtPmNoaXAsIGZpZWxkLT5yZWcpOworCW1hc2sgPSAoKDEgPDwgZmllbGQtPm5iaXRzKSAtIDEpIDw8IGZpZWxkLT5sb19iaXQ7CisJb2xkdmFsID0gKHcgJiBtYXNrKSA+PiBmaWVsZC0+bG9fYml0OworCW5ld2JpdHMgPSAobmV3dmFsIDw8IGZpZWxkLT5sb19iaXQpICYgbWFzazsKKwl3ID0gKHcgJiB+bWFzaykgfCBuZXdiaXRzOworCWFkMTg0My0+d3JpdGUoYWQxODQzLT5jaGlwLCBmaWVsZC0+cmVnLCB3KTsKKworCXJldHVybiBvbGR2YWw7Cit9CisKKy8qCisgKiBhZDE4NDNfcmVhZF9tdWx0aSByZWFkcyBtdWx0aXBsZSBiaXRmaWVsZHMgZnJvbSB0aGUgc2FtZSBBRDE4NDMKKyAqIHJlZ2lzdGVyLiAgSXQgdXNlcyBhIHNpbmdsZSByZWFkIGN5Y2xlIHRvIGRvIGl0LiAgKFJlYWRpbmcgdGhlCisgKiBhZDE4NDMgcmVxdWlyZXMgMjU2IGJpdCB0aW1lcyBhdCAxMi4yODggTUh6LCBvciBuZWFybHkgMjAKKyAqIG1pY3Jvc2Vjb25kcy4pCisgKgorICogQ2FsbGVkIGxpa2UgdGhpcy4KKyAqCisgKiAgYWQxODQzX3JlYWRfbXVsdGkoYWQxODQzLCBuZmllbGRzLAorICoJCSAgICAgICZhZDE4NDNfRklFTEQxLCAmdmFsMSwKKyAqCQkgICAgICAmYWQxODQzX0ZJRUxEMiwgJnZhbDIsIC4uLik7CisgKi8KKworc3RhdGljIHZvaWQgYWQxODQzX3JlYWRfbXVsdGkoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGFyZ2NvdW50LCAuLi4pCit7CisJdmFfbGlzdCBhcDsKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICpmcDsKKwlpbnQgdyA9IDAsIG1hc2ssICp2YWx1ZSwgcmVnID0gLTE7CisKKwl2YV9zdGFydChhcCwgYXJnY291bnQpOworCXdoaWxlICgtLWFyZ2NvdW50ID49IDApIHsKKwkJZnAgPSB2YV9hcmcoYXAsIGNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKik7CisJCXZhbHVlID0gdmFfYXJnKGFwLCBpbnQgKik7CisJCWlmIChyZWcgPT0gLTEpIHsKKwkJCXJlZyA9IGZwLT5yZWc7CisJCQl3ID0gYWQxODQzLT5yZWFkKGFkMTg0My0+Y2hpcCwgcmVnKTsKKwkJfQorCisJCW1hc2sgPSAoMSA8PCBmcC0+bmJpdHMpIC0gMTsKKwkJKnZhbHVlID0gdyA+PiBmcC0+bG9fYml0ICYgbWFzazsKKwl9CisJdmFfZW5kKGFwKTsKK30KKworLyoKKyAqIGFkMTg0M193cml0ZV9tdWx0aSBzdG9yZXMgbXVsdGlwbGUgYml0ZmllbGRzIGludG8gdGhlIHNhbWUgQUQxODQzCisgKiByZWdpc3Rlci4gIEl0IHVzZXMgb25lIHJlYWQgYW5kIG9uZSB3cml0ZSBjeWNsZSB0byBkbyBpdC4KKyAqCisgKiBDYWxsZWQgbGlrZSB0aGlzLgorICoKKyAqICBhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCBuZmllbGRzLAorICoJCSAgICAgICAmYWQxODQzX0ZJRUxEMSwgdmFsMSwKKyAqCQkgICAgICAgJmFkMTg0M19GSUVMRjIsIHZhbDIsIC4uLik7CisgKi8KKworc3RhdGljIHZvaWQgYWQxODQzX3dyaXRlX211bHRpKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsIGludCBhcmdjb3VudCwgLi4uKQoreworCXZhX2xpc3QgYXA7CisJaW50IHJlZzsKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICpmcDsKKwlpbnQgdmFsdWU7CisJaW50IHcsIG0sIG1hc2ssIGJpdHM7CisKKwltYXNrID0gMDsKKwliaXRzID0gMDsKKwlyZWcgPSAtMTsKKworCXZhX3N0YXJ0KGFwLCBhcmdjb3VudCk7CisJd2hpbGUgKC0tYXJnY291bnQgPj0gMCkgeworCQlmcCA9IHZhX2FyZyhhcCwgY29uc3Qgc3RydWN0IGFkMTg0M19iaXRmaWVsZCAqKTsKKwkJdmFsdWUgPSB2YV9hcmcoYXAsIGludCk7CisJCWlmIChyZWcgPT0gLTEpCisJCQlyZWcgPSBmcC0+cmVnOworCQllbHNlCisJCQlCVUdfT04ocmVnICE9IGZwLT5yZWcpOworCQltID0gKCgxIDw8IGZwLT5uYml0cykgLSAxKSA8PCBmcC0+bG9fYml0OworCQltYXNrIHw9IG07CisJCWJpdHMgfD0gKHZhbHVlIDw8IGZwLT5sb19iaXQpICYgbTsKKwl9CisJdmFfZW5kKGFwKTsKKworCWlmICh+bWFzayAmIDB4RkZGRikKKwkJdyA9IGFkMTg0My0+cmVhZChhZDE4NDMtPmNoaXAsIHJlZyk7CisJZWxzZQorCQl3ID0gMDsKKwl3ID0gKHcgJiB+bWFzaykgfCBiaXRzOworCWFkMTg0My0+d3JpdGUoYWQxODQzLT5jaGlwLCByZWcsIHcpOworfQorCitpbnQgYWQxODQzX2dldF9nYWluX21heChzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgaWQpCit7CisJY29uc3Qgc3RydWN0IGFkMTg0M19nYWluICpncCA9IGFkMTg0M19nYWluW2lkXTsKKwlpbnQgcmV0OworCisJcmV0ID0gKDEgPDwgZ3AtPmxmaWVsZC0+bmJpdHMpOworCWlmICghZ3AtPmxtdXRlKQorCQlyZXQgLT0gMTsKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogYWQxODQzX2dldF9nYWluIHJlYWRzIHRoZSBzcGVjaWZpZWQgcmVnaXN0ZXIgYW5kIGV4dHJhY3RzIHRoZSBnYWluIHZhbHVlCisgKiB1c2luZyB0aGUgc3VwcGxpZWQgZ2FpbiB0eXBlLgorICovCisKK2ludCBhZDE4NDNfZ2V0X2dhaW4oc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGlkKQoreworCWludCBsZywgcmcsIGxtLCBybTsKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gKmdwID0gYWQxODQzX2dhaW5baWRdOworCXVuc2lnbmVkIHNob3J0IG1hc2sgPSAoMSA8PCBncC0+bGZpZWxkLT5uYml0cykgLSAxOworCisJYWQxODQzX3JlYWRfbXVsdGkoYWQxODQzLCAyLCBncC0+bGZpZWxkLCAmbGcsIGdwLT5yZmllbGQsICZyZyk7CisJaWYgKGdwLT5uZWdhdGl2ZSkgeworCQlsZyA9IG1hc2sgLSBsZzsKKwkJcmcgPSBtYXNrIC0gcmc7CisJfQorCWlmIChncC0+bG11dGUpIHsKKwkJYWQxODQzX3JlYWRfbXVsdGkoYWQxODQzLCAyLCBncC0+bG11dGUsICZsbSwgZ3AtPnJtdXRlLCAmcm0pOworCQlpZiAobG0pCisJCQlsZyA9IDA7CisJCWlmIChybSkKKwkJCXJnID0gMDsKKwl9CisJcmV0dXJuIGxnIDw8IDAgfCByZyA8PCA4OworfQorCisvKgorICogU2V0IGFuIGF1ZGlvIGNoYW5uZWwncyBnYWluLgorICoKKyAqIFJldHVybnMgdGhlIG5ldyBnYWluLCB3aGljaCBtYXkgYmUgbG93ZXIgdGhhbiB0aGUgb2xkIGdhaW4uCisgKi8KKworaW50IGFkMTg0M19zZXRfZ2FpbihzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgaWQsIGludCBuZXd2YWwpCit7CisJY29uc3Qgc3RydWN0IGFkMTg0M19nYWluICpncCA9IGFkMTg0M19nYWluW2lkXTsKKwl1bnNpZ25lZCBzaG9ydCBtYXNrID0gKDEgPDwgZ3AtPmxmaWVsZC0+bmJpdHMpIC0gMTsKKworCWludCBsZyA9IChuZXd2YWwgPj4gMCkgJiBtYXNrOworCWludCByZyA9IChuZXd2YWwgPj4gOCkgJiBtYXNrOworCWludCBsbSA9IChsZyA9PSAwKSA/IDEgOiAwOworCWludCBybSA9IChyZyA9PSAwKSA/IDEgOiAwOworCisJaWYgKGdwLT5uZWdhdGl2ZSkgeworCQlsZyA9IG1hc2sgLSBsZzsKKwkJcmcgPSBtYXNrIC0gcmc7CisJfQorCWlmIChncC0+bG11dGUpCisJCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsIGdwLT5sbXV0ZSwgbG0sIGdwLT5ybXV0ZSwgcm0pOworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsIGdwLT5sZmllbGQsIGxnLCBncC0+cmZpZWxkLCByZyk7CisJcmV0dXJuIGFkMTg0M19nZXRfZ2FpbihhZDE4NDMsIGlkKTsKK30KKworLyogUmV0dXJucyB0aGUgY3VycmVudCByZWNvcmRpbmcgc291cmNlICovCisKK2ludCBhZDE4NDNfZ2V0X3JlY3NyYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzKQoreworCWludCB2YWwgPSBhZDE4NDNfcmVhZF9iaXRzKGFkMTg0MywgJmFkMTg0M19MU1MpOworCisJaWYgKHZhbCA8IDAgfHwgdmFsID4gMikgeworCQl2YWwgPSAyOworCQlhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCAyLAorCQkJCSAgICZhZDE4NDNfTFNTLCB2YWwsICZhZDE4NDNfUlNTLCB2YWwpOworCX0KKwlyZXR1cm4gdmFsOworfQorCisvKgorICogU2V0IHJlY29yZGluZyBzb3VyY2UuCisgKgorICogUmV0dXJucyBuZXdzcmMgb24gc3VjY2VzcywgLWVycm5vIG9uIGZhaWx1cmUuCisgKi8KKworaW50IGFkMTg0M19zZXRfcmVjc3JjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsIGludCBuZXdzcmMpCit7CisJaWYgKG5ld3NyYyA8IDAgfHwgbmV3c3JjID4gMikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCAyLCAmYWQxODQzX0xTUywgbmV3c3JjLCAmYWQxODQzX1JTUywgbmV3c3JjKTsKKwlyZXR1cm4gbmV3c3JjOworfQorCisvKiBTZXR1cCBhZDE4NDMgZm9yIEQvQSBjb252ZXJzaW9uLiAqLworCit2b2lkIGFkMTg0M19zZXR1cF9kYWMoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywKKwkJICAgICAgdW5zaWduZWQgaW50IGlkLAorCQkgICAgICB1bnNpZ25lZCBpbnQgZnJhbWVyYXRlLAorCQkgICAgICBzbmRfcGNtX2Zvcm1hdF90IGZtdCwKKwkJICAgICAgdW5zaWduZWQgaW50IGNoYW5uZWxzKQoreworCWludCBhZF9mbXQgPSAwLCBhZF9tb2RlID0gMDsKKworCXN3aXRjaCAoZm10KSB7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1M4OgorCQlhZF9mbXQgPSAwOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfVTg6CisJCWFkX2ZtdCA9IDA7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMTZfTEU6CisJCWFkX2ZtdCA9IDE7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9NVV9MQVc6CisJCWFkX2ZtdCA9IDI7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9BX0xBVzoKKwkJYWRfZm10ID0gMzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJc3dpdGNoIChjaGFubmVscykgeworCWNhc2UgMjoKKwkJYWRfbW9kZSA9IDA7CisJCWJyZWFrOworCWNhc2UgMToKKwkJYWRfbW9kZSA9IDE7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworCWlmIChpZCkgeworCQlhZDE4NDNfd3JpdGVfYml0cyhhZDE4NDMsICZhZDE4NDNfQzJDLCBmcmFtZXJhdGUpOworCQlhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCAyLAorCQkJCSAgICZhZDE4NDNfREEyU00sIGFkX21vZGUsCisJCQkJICAgJmFkMTg0M19EQTJGLCBhZF9mbXQpOworCX0gZWxzZSB7CisJCWFkMTg0M193cml0ZV9iaXRzKGFkMTg0MywgJmFkMTg0M19DMUMsIGZyYW1lcmF0ZSk7CisJCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsCisJCQkJICAgJmFkMTg0M19EQTFTTSwgYWRfbW9kZSwKKwkJCQkgICAmYWQxODQzX0RBMUYsIGFkX2ZtdCk7CisJfQorfQorCit2b2lkIGFkMTg0M19zaHV0ZG93bl9kYWMoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgdW5zaWduZWQgaW50IGlkKQoreworCWlmIChpZCkKKwkJYWQxODQzX3dyaXRlX2JpdHMoYWQxODQzLCAmYWQxODQzX0RBMkYsIDEpOworCWVsc2UKKwkJYWQxODQzX3dyaXRlX2JpdHMoYWQxODQzLCAmYWQxODQzX0RBMUYsIDEpOworfQorCit2b2lkIGFkMTg0M19zZXR1cF9hZGMoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywKKwkJICAgICAgdW5zaWduZWQgaW50IGZyYW1lcmF0ZSwKKwkJICAgICAgc25kX3BjbV9mb3JtYXRfdCBmbXQsCisJCSAgICAgIHVuc2lnbmVkIGludCBjaGFubmVscykKK3sKKwlpbnQgZGFfZm10ID0gMDsKKworCXN3aXRjaCAoZm10KSB7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1M4OglkYV9mbXQgPSAwOyBicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfVTg6CWRhX2ZtdCA9IDA7IGJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMTZfTEU6CWRhX2ZtdCA9IDE7IGJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9NVV9MQVc6CWRhX2ZtdCA9IDI7IGJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9BX0xBVzoJZGFfZm10ID0gMzsgYnJlYWs7CisJZGVmYXVsdDoJCWJyZWFrOworCX0KKworCWFkMTg0M193cml0ZV9iaXRzKGFkMTg0MywgJmFkMTg0M19DM0MsIGZyYW1lcmF0ZSk7CisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwKKwkJCSAgICZhZDE4NDNfQURMRiwgZGFfZm10LCAmYWQxODQzX0FEUkYsIGRhX2ZtdCk7Cit9CisKK3ZvaWQgYWQxODQzX3NodXRkb3duX2FkYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzKQoreworCS8qIG5vdGhpbmcgdG8gZG8gKi8KK30KKworLyoKKyAqIEZ1bGx5IGluaXRpYWxpemUgdGhlIGFkMTg0My4gIEFzIGRlc2NyaWJlZCBpbiB0aGUgQUQxODQzIGRhdGEKKyAqIHNoZWV0LCBzZWN0aW9uICJTVEFSVC1VUCBTRVFVRU5DRSIuICBUaGUgbnVtYmVyZWQgY29tbWVudHMgYXJlCisgKiBzdWJzZWN0aW9uIGhlYWRpbmdzIGZyb20gdGhlIGRhdGEgc2hlZXQuICBTZWUgdGhlIGRhdGEgc2hlZXQsIHBhZ2VzCisgKiA1Mi01NCwgZm9yIG1vcmUgaW5mby4KKyAqCisgKiByZXR1cm4gMCBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS4gICovCisKK2ludCBhZDE4NDNfaW5pdChzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzKQoreworCXVuc2lnbmVkIGxvbmcgbGF0ZXI7CisKKwlpZiAoYWQxODQzX3JlYWRfYml0cyhhZDE4NDMsICZhZDE4NDNfSU5JVCkgIT0gMCkgeworCQlwcmludGsoS0VSTl9FUlIgImFkMTg0MzogQUQxODQzIHdvbid0IGluaXRpYWxpemVcbiIpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwlhZDE4NDNfd3JpdGVfYml0cyhhZDE4NDMsICZhZDE4NDNfU0NGLCAxKTsKKworCS8qIDQuIFB1dCB0aGUgY29udmVyc2lvbiByZXNvdXJjZXMgaW50byBzdGFuZGJ5LiAqLworCWFkMTg0M193cml0ZV9iaXRzKGFkMTg0MywgJmFkMTg0M19QRE5JLCAwKTsKKwlsYXRlciA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDUwMCk7CisKKwl3aGlsZSAoYWQxODQzX3JlYWRfYml0cyhhZDE4NDMsICZhZDE4NDNfUEROTykpIHsKKwkJaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgbGF0ZXIpKSB7CisJCQlwcmludGsoS0VSTl9FUlIKKwkJCSAgICAgICAiYWQxODQzOiBBRDE4NDMgd29uJ3QgcG93ZXIgdXBcbiIpOworCQkJcmV0dXJuIC1FSU87CisJCX0KKwkJc2NoZWR1bGVfdGltZW91dF9pbnRlcnJ1cHRpYmxlKDUpOworCX0KKworCS8qIDUuIFBvd2VyIHVwIHRoZSBjbG9jayBnZW5lcmF0b3JzIGFuZCBlbmFibGUgY2xvY2sgb3V0cHV0IHBpbnMuICovCisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMywKKwkJCSAgICZhZDE4NDNfQzFFTiwgMSwKKwkJCSAgICZhZDE4NDNfQzJFTiwgMSwKKwkJCSAgICZhZDE4NDNfQzNFTiwgMSk7CisKKwkvKiA2LiBDb25maWd1cmUgY29udmVyc2lvbiByZXNvdXJjZXMgd2hpbGUgdGhleSBhcmUgaW4gc3RhbmRieS4gKi8KKworCS8qIERBQzEvMiB1c2UgY2xvY2sgMS8yIGFzIHNvdXJjZSwgQURDIHVzZXMgY2xvY2sgMy4gIEFsd2F5cy4gKi8KKwlhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCA0LAorCQkJICAgJmFkMTg0M19EQTFDLCAxLAorCQkJICAgJmFkMTg0M19EQTJDLCAyLAorCQkJICAgJmFkMTg0M19BRExDLCAzLAorCQkJICAgJmFkMTg0M19BRFJDLCAzKTsKKworCS8qIDcuIEVuYWJsZSBjb252ZXJzaW9uIHJlc291cmNlcy4gKi8KKwlhZDE4NDNfd3JpdGVfYml0cyhhZDE4NDMsICZhZDE4NDNfQURUTEssIDEpOworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDcsCisJCQkgICAmYWQxODQzX0FOQUVOLCAxLAorCQkJICAgJmFkMTg0M19BQU1FTiwgMSwKKwkJCSAgICZhZDE4NDNfREExRU4sIDEsCisJCQkgICAmYWQxODQzX0RBMkVOLCAxLAorCQkJICAgJmFkMTg0M19ERE1FTiwgMSwKKwkJCSAgICZhZDE4NDNfQURMRU4sIDEsCisJCQkgICAmYWQxODQzX0FEUkVOLCAxKTsKKworCS8qIDguIENvbmZpZ3VyZSBjb252ZXJzaW9uIHJlc291cmNlcyB3aGlsZSB0aGV5IGFyZSBlbmFibGVkLiAqLworCisJLyogc2V0IGdhaW4gdG8gMCBmb3IgYWxsIGNoYW5uZWxzICovCisJYWQxODQzX3NldF9nYWluKGFkMTg0MywgQUQxODQzX0dBSU5fUkVDTEVWLCAwKTsKKwlhZDE4NDNfc2V0X2dhaW4oYWQxODQzLCBBRDE4NDNfR0FJTl9MSU5FLCAwKTsKKwlhZDE4NDNfc2V0X2dhaW4oYWQxODQzLCBBRDE4NDNfR0FJTl9MSU5FXzIsIDApOworCWFkMTg0M19zZXRfZ2FpbihhZDE4NDMsIEFEMTg0M19HQUlOX01JQywgMCk7CisJYWQxODQzX3NldF9nYWluKGFkMTg0MywgQUQxODQzX0dBSU5fUENNXzAsIDApOworCWFkMTg0M19zZXRfZ2FpbihhZDE4NDMsIEFEMTg0M19HQUlOX1BDTV8xLCAwKTsKKworCS8qIFVubXV0ZSBhbGwgY2hhbm5lbHMuICovCisJLyogREFDMSAqLworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsICZhZDE4NDNfTERBMUdNLCAwLCAmYWQxODQzX1JEQTFHTSwgMCk7CisJLyogREFDMiAqLworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsICZhZDE4NDNfTERBMkdNLCAwLCAmYWQxODQzX1JEQTJHTSwgMCk7CisKKwkvKiBTZXQgZGVmYXVsdCByZWNvcmRpbmcgc291cmNlIHRvIExpbmUgSW4gYW5kIHNldAorCSAqIG1pYyBnYWluIHRvICsyMCBkQi4KKwkgKi8KKwlhZDE4NDNfc2V0X3JlY3NyYyhhZDE4NDMsIDIpOworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsICZhZDE4NDNfTE1HRSwgMSwgJmFkMTg0M19STUdFLCAxKTsKKworCS8qIFNldCBTcGVha2VyIE91dCBsZXZlbCB0byArLy0gNFYgYW5kIHVubXV0ZSBpdC4gKi8KKwlhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCAzLAorCQkJICAgJmFkMTg0M19IUE9TLCAxLAorCQkJICAgJmFkMTg0M19IUE9NLCAwLAorCQkJICAgJmFkMTg0M19NUE9NLCAwKTsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvc291bmQvbWlwcy9oYWwyLmMgYi9zb3VuZC9taXBzL2hhbDIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjQ5NWJlCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvbWlwcy9oYWwyLmMKQEAgLTAsMCArMSw5NDcgQEAKKy8qCisgKiAgRHJpdmVyIGZvciBBMiBhdWRpbyBzeXN0ZW0gdXNlZCBpbiBTR0kgbWFjaGluZXMKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAYWxwaGEuZmFua2VuLmRlPgorICoKKyAqICBCYXNlZCBvbiBPU1MgY29kZSBmcm9tIExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4sIHdoaWNoCisgKiAgd2FzIGJhc2VkIG9uIGNvZGUgZnJvbSBVbGYgQ2FybHNzb24KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCisgKgorICovCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKworI2luY2x1ZGUgPGFzbS9zZ2kvaHBjMy5oPgorI2luY2x1ZGUgPGFzbS9zZ2kvaXAyMi5oPgorCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL2NvbnRyb2wuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20taW5kaXJlY3QuaD4KKyNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CisKKyNpbmNsdWRlICJoYWwyLmgiCisKK3N0YXRpYyBpbnQgaW5kZXggPSBTTkRSVl9ERUZBVUxUX0lEWDE7ICAvKiBJbmRleCAwLU1BWCAqLworc3RhdGljIGNoYXIgKmlkID0gU05EUlZfREVGQVVMVF9TVFIxOyAgIC8qIElEIGZvciB0aGlzIGNhcmQgKi8KKworbW9kdWxlX3BhcmFtKGluZGV4LCBpbnQsIDA0NDQpOworTU9EVUxFX1BBUk1fREVTQyhpbmRleCwgIkluZGV4IHZhbHVlIGZvciBTR0kgSEFMMiBzb3VuZGNhcmQuIik7Cittb2R1bGVfcGFyYW0oaWQsIGNoYXJwLCAwNDQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoaWQsICJJRCBzdHJpbmcgZm9yIFNHSSBIQUwyIHNvdW5kY2FyZC4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiQUxTQSBkcml2ZXIgZm9yIFNHSSBIQUwyIGF1ZGlvIik7CitNT0RVTEVfQVVUSE9SKCJUaG9tYXMgQm9nZW5kb2VyZmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKKworI2RlZmluZSBIMl9CTE9DS19TSVpFCTEwMjQKKyNkZWZpbmUgSDJfQlVGX1NJWkUJMTYzODQKKworc3RydWN0IGhhbDJfcGJ1cyB7CisJc3RydWN0IGhwYzNfcGJ1c19kbWFjcmVncyAqcGJ1czsKKwlpbnQgcGJ1c25yOworCXVuc2lnbmVkIGludCBjdHJsOwkJLyogQ3VycmVudCBzdGF0ZSBvZiBwYnVzLT5wYmRtYV9jdHJsICovCit9OworCitzdHJ1Y3QgaGFsMl9kZXNjIHsKKwlzdHJ1Y3QgaHBjX2RtYV9kZXNjIGRlc2M7CisJdTMyIHBhZDsJCQkvKiBwYWRkaW5nICovCit9OworCitzdHJ1Y3QgaGFsMl9jb2RlYyB7CisJc3RydWN0IHNuZF9wY21faW5kaXJlY3QgcGNtX2luZGlyZWN0OworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCisJdW5zaWduZWQgY2hhciAqYnVmZmVyOworCWRtYV9hZGRyX3QgYnVmZmVyX2RtYTsKKwlzdHJ1Y3QgaGFsMl9kZXNjICpkZXNjOworCWRtYV9hZGRyX3QgZGVzY19kbWE7CisJaW50IGRlc2NfY291bnQ7CisJc3RydWN0IGhhbDJfcGJ1cyBwYnVzOworCWludCB2b2ljZXM7CQkJLyogbW9uby9zdGVyZW8gKi8KKwl1bnNpZ25lZCBpbnQgc2FtcGxlX3JhdGU7CisJdW5zaWduZWQgaW50IG1hc3RlcjsJCS8qIE1hc3RlciBmcmVxdWVuY3kgKi8KKwl1bnNpZ25lZCBzaG9ydCBtb2Q7CQkvKiBNT0QgdmFsdWUgKi8KKwl1bnNpZ25lZCBzaG9ydCBpbmM7CQkvKiBJTkMgdmFsdWUgKi8KK307CisKKyNkZWZpbmUgSDJfTUlYX09VVFBVVF9BVFQJMAorI2RlZmluZSBIMl9NSVhfSU5QVVRfR0FJTgkxCisKK3N0cnVjdCBzbmRfaGFsMiB7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkOworCisJc3RydWN0IGhhbDJfY3RsX3JlZ3MgKmN0bF9yZWdzOwkvKiBIQUwyIGN0bCByZWdpc3RlcnMgKi8KKwlzdHJ1Y3QgaGFsMl9hZXNfcmVncyAqYWVzX3JlZ3M7CS8qIEhBTDIgYWVzIHJlZ2lzdGVycyAqLworCXN0cnVjdCBoYWwyX3ZvbF9yZWdzICp2b2xfcmVnczsJLyogSEFMMiB2b2wgcmVnaXN0ZXJzICovCisJc3RydWN0IGhhbDJfc3luX3JlZ3MgKnN5bl9yZWdzOwkvKiBIQUwyIHN5biByZWdpc3RlcnMgKi8KKworCXN0cnVjdCBoYWwyX2NvZGVjIGRhYzsKKwlzdHJ1Y3QgaGFsMl9jb2RlYyBhZGM7Cit9OworCisjZGVmaW5lIEgyX0lORElSRUNUX1dBSVQocmVncykJd2hpbGUgKGhhbDJfcmVhZCgmcmVncy0+aXNyKSAmIEgyX0lTUl9UU1RBVFVTKTsKKworI2RlZmluZSBIMl9SRUFEX0FERFIoYWRkcikJKGFkZHIgfCAoMTw8NykpCisjZGVmaW5lIEgyX1dSSVRFX0FERFIoYWRkcikJKGFkZHIpCisKK3N0YXRpYyBpbmxpbmUgdTMyIGhhbDJfcmVhZCh1MzIgKnJlZykKK3sKKwlyZXR1cm4gX19yYXdfcmVhZGwocmVnKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGhhbDJfd3JpdGUodTMyIHZhbCwgdTMyICpyZWcpCit7CisJX19yYXdfd3JpdGVsKHZhbCwgcmVnKTsKK30KKworCitzdGF0aWMgdTMyIGhhbDJfaV9yZWFkMzIoc3RydWN0IHNuZF9oYWwyICpoYWwyLCB1MTYgYWRkcikKK3sKKwl1MzIgcmV0OworCXN0cnVjdCBoYWwyX2N0bF9yZWdzICpyZWdzID0gaGFsMi0+Y3RsX3JlZ3M7CisKKwloYWwyX3dyaXRlKEgyX1JFQURfQUREUihhZGRyKSwgJnJlZ3MtPmlhcik7CisJSDJfSU5ESVJFQ1RfV0FJVChyZWdzKTsKKwlyZXQgPSBoYWwyX3JlYWQoJnJlZ3MtPmlkcjApICYgMHhmZmZmOworCWhhbDJfd3JpdGUoSDJfUkVBRF9BRERSKGFkZHIpIHwgMHgxLCAmcmVncy0+aWFyKTsKKwlIMl9JTkRJUkVDVF9XQUlUKHJlZ3MpOworCXJldCB8PSAoaGFsMl9yZWFkKCZyZWdzLT5pZHIwKSAmIDB4ZmZmZikgPDwgMTY7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgaGFsMl9pX3dyaXRlMTYoc3RydWN0IHNuZF9oYWwyICpoYWwyLCB1MTYgYWRkciwgdTE2IHZhbCkKK3sKKwlzdHJ1Y3QgaGFsMl9jdGxfcmVncyAqcmVncyA9IGhhbDItPmN0bF9yZWdzOworCisJaGFsMl93cml0ZSh2YWwsICZyZWdzLT5pZHIwKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIxKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIyKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIzKTsKKwloYWwyX3dyaXRlKEgyX1dSSVRFX0FERFIoYWRkciksICZyZWdzLT5pYXIpOworCUgyX0lORElSRUNUX1dBSVQocmVncyk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfaV93cml0ZTMyKHN0cnVjdCBzbmRfaGFsMiAqaGFsMiwgdTE2IGFkZHIsIHUzMiB2YWwpCit7CisJc3RydWN0IGhhbDJfY3RsX3JlZ3MgKnJlZ3MgPSBoYWwyLT5jdGxfcmVnczsKKworCWhhbDJfd3JpdGUodmFsICYgMHhmZmZmLCAmcmVncy0+aWRyMCk7CisJaGFsMl93cml0ZSh2YWwgPj4gMTYsICZyZWdzLT5pZHIxKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIyKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIzKTsKKwloYWwyX3dyaXRlKEgyX1dSSVRFX0FERFIoYWRkciksICZyZWdzLT5pYXIpOworCUgyX0lORElSRUNUX1dBSVQocmVncyk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfaV9zZXRiaXQxNihzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIsIHUxNiBhZGRyLCB1MTYgYml0KQoreworCXN0cnVjdCBoYWwyX2N0bF9yZWdzICpyZWdzID0gaGFsMi0+Y3RsX3JlZ3M7CisKKwloYWwyX3dyaXRlKEgyX1JFQURfQUREUihhZGRyKSwgJnJlZ3MtPmlhcik7CisJSDJfSU5ESVJFQ1RfV0FJVChyZWdzKTsKKwloYWwyX3dyaXRlKChoYWwyX3JlYWQoJnJlZ3MtPmlkcjApICYgMHhmZmZmKSB8IGJpdCwgJnJlZ3MtPmlkcjApOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjEpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjIpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjMpOworCWhhbDJfd3JpdGUoSDJfV1JJVEVfQUREUihhZGRyKSwgJnJlZ3MtPmlhcik7CisJSDJfSU5ESVJFQ1RfV0FJVChyZWdzKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9pX2NsZWFyYml0MTYoc3RydWN0IHNuZF9oYWwyICpoYWwyLCB1MTYgYWRkciwgdTE2IGJpdCkKK3sKKwlzdHJ1Y3QgaGFsMl9jdGxfcmVncyAqcmVncyA9IGhhbDItPmN0bF9yZWdzOworCisJaGFsMl93cml0ZShIMl9SRUFEX0FERFIoYWRkciksICZyZWdzLT5pYXIpOworCUgyX0lORElSRUNUX1dBSVQocmVncyk7CisJaGFsMl93cml0ZSgoaGFsMl9yZWFkKCZyZWdzLT5pZHIwKSAmIDB4ZmZmZikgJiB+Yml0LCAmcmVncy0+aWRyMCk7CisJaGFsMl93cml0ZSgwLCAmcmVncy0+aWRyMSk7CisJaGFsMl93cml0ZSgwLCAmcmVncy0+aWRyMik7CisJaGFsMl93cml0ZSgwLCAmcmVncy0+aWRyMyk7CisJaGFsMl93cml0ZShIMl9XUklURV9BRERSKGFkZHIpLCAmcmVncy0+aWFyKTsKKwlIMl9JTkRJUkVDVF9XQUlUKHJlZ3MpOworfQorCitzdGF0aWMgaW50IGhhbDJfZ2Fpbl9pbmZvKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJICAgICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCit7CisJdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxFTV9UWVBFX0lOVEVHRVI7CisJdWluZm8tPmNvdW50ID0gMjsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOworCXN3aXRjaCAoKGludClrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSkgeworCWNhc2UgSDJfTUlYX09VVFBVVF9BVFQ6CisJCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IDMxOworCQlicmVhazsKKwljYXNlIEgyX01JWF9JTlBVVF9HQUlOOgorCQl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSAxNTsKKwkJYnJlYWs7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfZ2Fpbl9nZXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCXUzMiB0bXA7CisJaW50IGwsIHI7CisKKwlzd2l0Y2ggKChpbnQpa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUpIHsKKwljYXNlIEgyX01JWF9PVVRQVVRfQVRUOgorCQl0bXAgPSBoYWwyX2lfcmVhZDMyKGhhbDIsIEgySV9EQUNfQzIpOworCQlpZiAodG1wICYgSDJJX0MyX01VVEUpIHsKKwkJCWwgPSAwOworCQkJciA9IDA7CisJCX0gZWxzZSB7CisJCQlsID0gMzEgLSAoKHRtcCA+PiBIMklfQzJfTF9BVFRfU0hJRlQpICYgMzEpOworCQkJciA9IDMxIC0gKCh0bXAgPj4gSDJJX0MyX1JfQVRUX1NISUZUKSAmIDMxKTsKKwkJfQorCQlicmVhazsKKwljYXNlIEgyX01JWF9JTlBVVF9HQUlOOgorCQl0bXAgPSBoYWwyX2lfcmVhZDMyKGhhbDIsIEgySV9BRENfQzIpOworCQlsID0gKHRtcCA+PiBIMklfQzJfTF9HQUlOX1NISUZUKSAmIDE1OworCQlyID0gKHRtcCA+PiBIMklfQzJfUl9HQUlOX1NISUZUKSAmIDE1OworCQlicmVhazsKKwl9CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBsOworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gcjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfZ2Fpbl9wdXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCXUzMiBvbGQsIG5ldzsKKwlpbnQgbCwgcjsKKworCWwgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsKKwlyID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV07CisKKwlzd2l0Y2ggKChpbnQpa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUpIHsKKwljYXNlIEgyX01JWF9PVVRQVVRfQVRUOgorCQlvbGQgPSBoYWwyX2lfcmVhZDMyKGhhbDIsIEgySV9EQUNfQzIpOworCQluZXcgPSBvbGQgJiB+KEgySV9DMl9MX0FUVF9NIHwgSDJJX0MyX1JfQVRUX00gfCBIMklfQzJfTVVURSk7CisJCWlmIChsIHwgcikgeworCQkJbCA9IDMxIC0gbDsKKwkJCXIgPSAzMSAtIHI7CisJCQluZXcgfD0gKGwgPDwgSDJJX0MyX0xfQVRUX1NISUZUKTsKKwkJCW5ldyB8PSAociA8PCBIMklfQzJfUl9BVFRfU0hJRlQpOworCQl9IGVsc2UKKwkJCW5ldyB8PSBIMklfQzJfTF9BVFRfTSB8IEgySV9DMl9SX0FUVF9NIHwgSDJJX0MyX01VVEU7CisJCWhhbDJfaV93cml0ZTMyKGhhbDIsIEgySV9EQUNfQzIsIG5ldyk7CisJCWJyZWFrOworCWNhc2UgSDJfTUlYX0lOUFVUX0dBSU46CisJCW9sZCA9IGhhbDJfaV9yZWFkMzIoaGFsMiwgSDJJX0FEQ19DMik7CisJCW5ldyA9IG9sZCAmIH4oSDJJX0MyX0xfR0FJTl9NIHwgSDJJX0MyX1JfR0FJTl9NKTsKKwkJbmV3IHw9IChsIDw8IEgySV9DMl9MX0dBSU5fU0hJRlQpOworCQluZXcgfD0gKHIgPDwgSDJJX0MyX1JfR0FJTl9TSElGVCk7CisJCWhhbDJfaV93cml0ZTMyKGhhbDIsIEgySV9BRENfQzIsIG5ldyk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gb2xkICE9IG5ldzsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGhhbDJfY3RybF9oZWFkcGhvbmUgX19kZXZpbml0ZGF0YSA9IHsKKwkuaWZhY2UgICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwKKwkubmFtZSAgICAgICAgICAgPSAiSGVhZHBob25lIFBsYXliYWNrIFZvbHVtZSIsCisJLmFjY2VzcyAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSwKKwkucHJpdmF0ZV92YWx1ZSAgPSBIMl9NSVhfT1VUUFVUX0FUVCwKKwkuaW5mbyAgICAgICAgICAgPSBoYWwyX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBoYWwyX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IGhhbDJfZ2Fpbl9wdXQsCit9OworCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgaGFsMl9jdHJsX21pYyBfX2RldmluaXRkYXRhID0geworCS5pZmFjZSAgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lICAgICAgICAgICA9ICJNaWMgQ2FwdHVyZSBWb2x1bWUiLAorCS5hY2Nlc3MgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUsCisJLnByaXZhdGVfdmFsdWUgID0gSDJfTUlYX0lOUFVUX0dBSU4sCisJLmluZm8gICAgICAgICAgID0gaGFsMl9nYWluX2luZm8sCisJLmdldCAgICAgICAgICAgID0gaGFsMl9nYWluX2dldCwKKwkucHV0ICAgICAgICAgICAgPSBoYWwyX2dhaW5fcHV0LAorfTsKKworc3RhdGljIGludCBfX2RldmluaXQgaGFsMl9taXhlcl9jcmVhdGUoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCWludCBlcnI7CisKKwkvKiBtdXRlIERBQyAqLworCWhhbDJfaV93cml0ZTMyKGhhbDIsIEgySV9EQUNfQzIsCisJCSAgICAgICBIMklfQzJfTF9BVFRfTSB8IEgySV9DMl9SX0FUVF9NIHwgSDJJX0MyX01VVEUpOworCS8qIG11dGUgQURDICovCisJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0FEQ19DMiwgMCk7CisKKwllcnIgPSBzbmRfY3RsX2FkZChoYWwyLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJmhhbDJfY3RybF9oZWFkcGhvbmUsIGhhbDIpKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHNuZF9jdGxfYWRkKGhhbDItPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmaGFsMl9jdHJsX21pYywgaGFsMikpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBoYWwyX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gZGV2X2lkOworCWlycXJldHVybl90IHJldCA9IElSUV9OT05FOworCisJLyogZGVjaWRlIHdoYXQgY2F1c2VkIHRoaXMgaW50ZXJydXB0ICovCisJaWYgKGhhbDItPmRhYy5wYnVzLnBidXMtPnBiZG1hX2N0cmwgJiBIUEMzX1BETUFDVFJMX0lOVCkgeworCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGhhbDItPmRhYy5zdWJzdHJlYW0pOworCQlyZXQgPSBJUlFfSEFORExFRDsKKwl9CisJaWYgKGhhbDItPmFkYy5wYnVzLnBidXMtPnBiZG1hX2N0cmwgJiBIUEMzX1BETUFDVFJMX0lOVCkgeworCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGhhbDItPmFkYy5zdWJzdHJlYW0pOworCQlyZXQgPSBJUlFfSEFORExFRDsKKwl9CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBoYWwyX2NvbXB1dGVfcmF0ZShzdHJ1Y3QgaGFsMl9jb2RlYyAqY29kZWMsIHVuc2lnbmVkIGludCByYXRlKQoreworCXVuc2lnbmVkIHNob3J0IG1vZDsKKworCWlmICg0NDEwMCAlIHJhdGUgPCA0ODAwMCAlIHJhdGUpIHsKKwkJbW9kID0gNCAqIDQ0MTAwIC8gcmF0ZTsKKwkJY29kZWMtPm1hc3RlciA9IDQ0MTAwOworCX0gZWxzZSB7CisJCW1vZCA9IDQgKiA0ODAwMCAvIHJhdGU7CisJCWNvZGVjLT5tYXN0ZXIgPSA0ODAwMDsKKwl9CisKKwljb2RlYy0+aW5jID0gNDsKKwljb2RlYy0+bW9kID0gbW9kOworCXJhdGUgPSA0ICogY29kZWMtPm1hc3RlciAvIG1vZDsKKworCXJldHVybiByYXRlOworfQorCitzdGF0aWMgdm9pZCBoYWwyX3NldF9kYWNfcmF0ZShzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIpCit7CisJdW5zaWduZWQgaW50IG1hc3RlciA9IGhhbDItPmRhYy5tYXN0ZXI7CisJaW50IGluYyA9IGhhbDItPmRhYy5pbmM7CisJaW50IG1vZCA9IGhhbDItPmRhYy5tb2Q7CisKKwloYWwyX2lfd3JpdGUxNihoYWwyLCBIMklfQlJFUzFfQzEsIChtYXN0ZXIgPT0gNDQxMDApID8gMSA6IDApOworCWhhbDJfaV93cml0ZTMyKGhhbDIsIEgySV9CUkVTMV9DMiwKKwkJICAgICAgICgoMHhmZmZmICYgKGluYyAtIG1vZCAtIDEpKSA8PCAxNikgfCBpbmMpOworfQorCitzdGF0aWMgdm9pZCBoYWwyX3NldF9hZGNfcmF0ZShzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIpCit7CisJdW5zaWduZWQgaW50IG1hc3RlciA9IGhhbDItPmFkYy5tYXN0ZXI7CisJaW50IGluYyA9IGhhbDItPmFkYy5pbmM7CisJaW50IG1vZCA9IGhhbDItPmFkYy5tb2Q7CisKKwloYWwyX2lfd3JpdGUxNihoYWwyLCBIMklfQlJFUzJfQzEsIChtYXN0ZXIgPT0gNDQxMDApID8gMSA6IDApOworCWhhbDJfaV93cml0ZTMyKGhhbDIsIEgySV9CUkVTMl9DMiwKKwkJICAgICAgICgoMHhmZmZmICYgKGluYyAtIG1vZCAtIDEpKSA8PCAxNikgfCBpbmMpOworfQorCitzdGF0aWMgdm9pZCBoYWwyX3NldHVwX2RhYyhzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIpCit7CisJdW5zaWduZWQgaW50IGZpZm9iZWcsIGZpZm9lbmQsIGhpZ2h3YXRlciwgc2FtcGxlX3NpemU7CisJc3RydWN0IGhhbDJfcGJ1cyAqcGJ1cyA9ICZoYWwyLT5kYWMucGJ1czsKKworCS8qIE5vdyB3ZSBzZXQgdXAgc29tZSBQQlVTIGluZm9ybWF0aW9uLiBUaGUgUEJVUyBuZWVkcyBpbmZvcm1hdGlvbiBhYm91dAorCSAqIHdoYXQgcG9ydGlvbiBvZiB0aGUgZmlmbyBpdCB3aWxsIHVzZS4gSWYgaXQncyByZWNlaXZpbmcgb3IKKwkgKiB0cmFuc21pdHRpbmcsIGFuZCBmaW5hbGx5IHdoZXRoZXIgdGhlIHN0cmVhbSBpcyBsaXR0bGUgZW5kaWFuIG9yIGJpZworCSAqIGVuZGlhbi4gVGhlIGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gbGF0ZXIsIG9uIHRoZSBzdGFydCBjYWxsLgorCSAqLworCXNhbXBsZV9zaXplID0gMiAqIGhhbDItPmRhYy52b2ljZXM7CisJLyogRmlmbyBzaG91bGQgYmUgc2V0IHRvIGhvbGQgZXhhY3RseSBmb3VyIHNhbXBsZXMuIEhpZ2h3YXRlciBtYXJrCisJICogc2hvdWxkIGJlIHNldCB0byB0d28gc2FtcGxlcy4gKi8KKwloaWdod2F0ZXIgPSAoc2FtcGxlX3NpemUgKiAyKSA+PiAxOwkvKiBoYWxmd29yZHMgKi8KKwlmaWZvYmVnID0gMDsJCQkJLyogcGxheWJhY2sgaXMgZmlyc3QgKi8KKwlmaWZvZW5kID0gKHNhbXBsZV9zaXplICogNCkgPj4gMzsJLyogZG91Ymxld29yZHMgKi8KKwlwYnVzLT5jdHJsID0gSFBDM19QRE1BQ1RSTF9SVCB8IEhQQzNfUERNQUNUUkxfTEQgfAorCQkgICAgIChoaWdod2F0ZXIgPDwgOCkgfCAoZmlmb2JlZyA8PCAxNikgfCAoZmlmb2VuZCA8PCAyNCk7CisJLyogV2UgZGlzYWJsZSBldmVyeXRoaW5nIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyBhdCBhbGwgKi8KKwlwYnVzLT5wYnVzLT5wYmRtYV9jdHJsID0gSFBDM19QRE1BQ1RSTF9MRDsKKwloYWwyX2lfY2xlYXJiaXQxNihoYWwyLCBIMklfRE1BX1BPUlRfRU4sIEgySV9ETUFfUE9SVF9FTl9DT0RFQ1RYKTsKKwkvKiBTZXR1cCB0aGUgSEFMMiBmb3IgcGxheWJhY2sgKi8KKwloYWwyX3NldF9kYWNfcmF0ZShoYWwyKTsKKwkvKiBTZXQgZW5kaWFuZXNzICovCisJaGFsMl9pX2NsZWFyYml0MTYoaGFsMiwgSDJJX0RNQV9FTkQsIEgySV9ETUFfRU5EX0NPREVDVFgpOworCS8qIFNldCBETUEgYnVzICovCisJaGFsMl9pX3NldGJpdDE2KGhhbDIsIEgySV9ETUFfRFJWLCAoMSA8PCBwYnVzLT5wYnVzbnIpKTsKKwkvKiBXZSBhcmUgdXNpbmcgMXN0IEJyZXNlbmhhbSBjbG9jayBnZW5lcmF0b3IgZm9yIHBsYXliYWNrICovCisJaGFsMl9pX3dyaXRlMTYoaGFsMiwgSDJJX0RBQ19DMSwgKHBidXMtPnBidXNuciA8PCBIMklfQzFfRE1BX1NISUZUKQorCQkJfCAoMSA8PCBIMklfQzFfQ0xLSURfU0hJRlQpCisJCQl8IChoYWwyLT5kYWMudm9pY2VzIDw8IEgySV9DMV9EQVRBVF9TSElGVCkpOworfQorCitzdGF0aWMgdm9pZCBoYWwyX3NldHVwX2FkYyhzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIpCit7CisJdW5zaWduZWQgaW50IGZpZm9iZWcsIGZpZm9lbmQsIGhpZ2h3YXRlciwgc2FtcGxlX3NpemU7CisJc3RydWN0IGhhbDJfcGJ1cyAqcGJ1cyA9ICZoYWwyLT5hZGMucGJ1czsKKworCXNhbXBsZV9zaXplID0gMiAqIGhhbDItPmFkYy52b2ljZXM7CisJaGlnaHdhdGVyID0gKHNhbXBsZV9zaXplICogMikgPj4gMTsJCS8qIGhhbGZ3b3JkcyAqLworCWZpZm9iZWcgPSAoNCAqIDQpID4+IDM7CQkJCS8qIHJlY29yZCBpcyBzZWNvbmQgKi8KKwlmaWZvZW5kID0gKDQgKiA0ICsgc2FtcGxlX3NpemUgKiA0KSA+PiAzOwkvKiBkb3VibGV3b3JkcyAqLworCXBidXMtPmN0cmwgPSBIUEMzX1BETUFDVFJMX1JUIHwgSFBDM19QRE1BQ1RSTF9SQ1YgfCBIUEMzX1BETUFDVFJMX0xEIHwKKwkJICAgICAoaGlnaHdhdGVyIDw8IDgpIHwgKGZpZm9iZWcgPDwgMTYpIHwgKGZpZm9lbmQgPDwgMjQpOworCXBidXMtPnBidXMtPnBiZG1hX2N0cmwgPSBIUEMzX1BETUFDVFJMX0xEOworCWhhbDJfaV9jbGVhcmJpdDE2KGhhbDIsIEgySV9ETUFfUE9SVF9FTiwgSDJJX0RNQV9QT1JUX0VOX0NPREVDUik7CisJLyogU2V0dXAgdGhlIEhBTDIgZm9yIHJlY29yZCAqLworCWhhbDJfc2V0X2FkY19yYXRlKGhhbDIpOworCS8qIFNldCBlbmRpYW5lc3MgKi8KKwloYWwyX2lfY2xlYXJiaXQxNihoYWwyLCBIMklfRE1BX0VORCwgSDJJX0RNQV9FTkRfQ09ERUNSKTsKKwkvKiBTZXQgRE1BIGJ1cyAqLworCWhhbDJfaV9zZXRiaXQxNihoYWwyLCBIMklfRE1BX0RSViwgKDEgPDwgcGJ1cy0+cGJ1c25yKSk7CisJLyogV2UgYXJlIHVzaW5nIDJuZCBCcmVzZW5oYW0gY2xvY2sgZ2VuZXJhdG9yIGZvciByZWNvcmQgKi8KKwloYWwyX2lfd3JpdGUxNihoYWwyLCBIMklfQURDX0MxLCAocGJ1cy0+cGJ1c25yIDw8IEgySV9DMV9ETUFfU0hJRlQpCisJCQl8ICgyIDw8IEgySV9DMV9DTEtJRF9TSElGVCkKKwkJCXwgKGhhbDItPmFkYy52b2ljZXMgPDwgSDJJX0MxX0RBVEFUX1NISUZUKSk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc3RhcnRfZGFjKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwlzdHJ1Y3QgaGFsMl9wYnVzICpwYnVzID0gJmhhbDItPmRhYy5wYnVzOworCisJcGJ1cy0+cGJ1cy0+cGJkbWFfZHB0ciA9IGhhbDItPmRhYy5kZXNjX2RtYTsKKwlwYnVzLT5wYnVzLT5wYmRtYV9jdHJsID0gcGJ1cy0+Y3RybCB8IEhQQzNfUERNQUNUUkxfQUNUOworCS8qIGVuYWJsZSBEQUMgKi8KKwloYWwyX2lfc2V0Yml0MTYoaGFsMiwgSDJJX0RNQV9QT1JUX0VOLCBIMklfRE1BX1BPUlRfRU5fQ09ERUNUWCk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc3RhcnRfYWRjKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwlzdHJ1Y3QgaGFsMl9wYnVzICpwYnVzID0gJmhhbDItPmFkYy5wYnVzOworCisJcGJ1cy0+cGJ1cy0+cGJkbWFfZHB0ciA9IGhhbDItPmFkYy5kZXNjX2RtYTsKKwlwYnVzLT5wYnVzLT5wYmRtYV9jdHJsID0gcGJ1cy0+Y3RybCB8IEhQQzNfUERNQUNUUkxfQUNUOworCS8qIGVuYWJsZSBBREMgKi8KKwloYWwyX2lfc2V0Yml0MTYoaGFsMiwgSDJJX0RNQV9QT1JUX0VOLCBIMklfRE1BX1BPUlRfRU5fQ09ERUNSKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGhhbDJfc3RvcF9kYWMoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCWhhbDItPmRhYy5wYnVzLnBidXMtPnBiZG1hX2N0cmwgPSBIUEMzX1BETUFDVFJMX0xEOworCS8qIFRoZSBIQUwyIGl0c2VsZiBtYXkgcmVtYWluIGVuYWJsZWQgc2FmZWx5ICovCit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBoYWwyX3N0b3BfYWRjKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwloYWwyLT5hZGMucGJ1cy5wYnVzLT5wYmRtYV9jdHJsID0gSFBDM19QRE1BQ1RSTF9MRDsKK30KKworc3RhdGljIGludCBoYWwyX2FsbG9jX2RtYWJ1ZihzdHJ1Y3QgaGFsMl9jb2RlYyAqY29kZWMpCit7CisJc3RydWN0IGhhbDJfZGVzYyAqZGVzYzsKKwlkbWFfYWRkcl90IGRlc2NfZG1hLCBidWZmZXJfZG1hOworCWludCBjb3VudCA9IEgyX0JVRl9TSVpFIC8gSDJfQkxPQ0tfU0laRTsKKwlpbnQgaTsKKworCWNvZGVjLT5idWZmZXIgPSBkbWFfYWxsb2Nfbm9uY29oZXJlbnQoTlVMTCwgSDJfQlVGX1NJWkUsCisJCQkJCSAgICAgICZidWZmZXJfZG1hLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNvZGVjLT5idWZmZXIpCisJCXJldHVybiAtRU5PTUVNOworCWRlc2MgPSBkbWFfYWxsb2Nfbm9uY29oZXJlbnQoTlVMTCwgY291bnQgKiBzaXplb2Yoc3RydWN0IGhhbDJfZGVzYyksCisJCQkJICAgICAmZGVzY19kbWEsIEdGUF9LRVJORUwpOworCWlmICghZGVzYykgeworCQlkbWFfZnJlZV9ub25jb2hlcmVudChOVUxMLCBIMl9CVUZfU0laRSwKKwkJCQkgICAgIGNvZGVjLT5idWZmZXIsIGJ1ZmZlcl9kbWEpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJY29kZWMtPmJ1ZmZlcl9kbWEgPSBidWZmZXJfZG1hOworCWNvZGVjLT5kZXNjX2RtYSA9IGRlc2NfZG1hOworCWNvZGVjLT5kZXNjID0gZGVzYzsKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworCQlkZXNjLT5kZXNjLnBidWYgPSBidWZmZXJfZG1hICsgaSAqIEgyX0JMT0NLX1NJWkU7CisJCWRlc2MtPmRlc2MuY250aW5mbyA9IEhQQ0RNQV9YSUUgfCBIMl9CTE9DS19TSVpFOworCQlkZXNjLT5kZXNjLnBuZXh0ID0gKGkgPT0gY291bnQgLSAxKSA/CisJCSAgICAgIGRlc2NfZG1hIDogZGVzY19kbWEgKyAoaSArIDEpICogc2l6ZW9mKHN0cnVjdCBoYWwyX2Rlc2MpOworCQlkZXNjKys7CisJfQorCWRtYV9jYWNoZV9zeW5jKE5VTEwsIGNvZGVjLT5kZXNjLCBjb3VudCAqIHNpemVvZihzdHJ1Y3QgaGFsMl9kZXNjKSwKKwkJICAgICAgIERNQV9UT19ERVZJQ0UpOworCWNvZGVjLT5kZXNjX2NvdW50ID0gY291bnQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfZnJlZV9kbWFidWYoc3RydWN0IGhhbDJfY29kZWMgKmNvZGVjKQoreworCWRtYV9mcmVlX25vbmNvaGVyZW50KE5VTEwsIGNvZGVjLT5kZXNjX2NvdW50ICogc2l6ZW9mKHN0cnVjdCBoYWwyX2Rlc2MpLAorCQkJICAgICBjb2RlYy0+ZGVzYywgY29kZWMtPmRlc2NfZG1hKTsKKwlkbWFfZnJlZV9ub25jb2hlcmVudChOVUxMLCBIMl9CVUZfU0laRSwgY29kZWMtPmJ1ZmZlciwKKwkJCSAgICAgY29kZWMtPmJ1ZmZlcl9kbWEpOworfQorCitzdGF0aWMgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgaGFsMl9wY21faHcgPSB7CisJLmluZm8gPSAoU05EUlZfUENNX0lORk9fTU1BUCB8CisJCSBTTkRSVl9QQ01fSU5GT19NTUFQX1ZBTElEIHwKKwkJIFNORFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVEIHwKKwkJIFNORFJWX1BDTV9JTkZPX0JMT0NLX1RSQU5TRkVSKSwKKwkuZm9ybWF0cyA9ICAgICAgICAgIFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFLAorCS5yYXRlcyA9ICAgICAgICAgICAgU05EUlZfUENNX1JBVEVfODAwMF80ODAwMCwKKwkucmF0ZV9taW4gPSAgICAgICAgIDgwMDAsCisJLnJhdGVfbWF4ID0gICAgICAgICA0ODAwMCwKKwkuY2hhbm5lbHNfbWluID0gICAgIDIsCisJLmNoYW5uZWxzX21heCA9ICAgICAyLAorCS5idWZmZXJfYnl0ZXNfbWF4ID0gNjU1MzYsCisJLnBlcmlvZF9ieXRlc19taW4gPSAxMDI0LAorCS5wZXJpb2RfYnl0ZXNfbWF4ID0gNjU1MzYsCisJLnBlcmlvZHNfbWluID0gICAgICAyLAorCS5wZXJpb2RzX21heCA9ICAgICAgMTAyNCwKK307CisKK3N0YXRpYyBpbnQgaGFsMl9wY21faHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJICAgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCit7CisJaW50IGVycjsKKworCWVyciA9IHNuZF9wY21fbGliX21hbGxvY19wYWdlcyhzdWJzdHJlYW0sIHBhcmFtc19idWZmZXJfYnl0ZXMocGFyYW1zKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX3BjbV9od19mcmVlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXJldHVybiBzbmRfcGNtX2xpYl9mcmVlX3BhZ2VzKHN1YnN0cmVhbSk7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9wbGF5YmFja19vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCWludCBlcnI7CisKKwlydW50aW1lLT5odyA9IGhhbDJfcGNtX2h3OworCisJZXJyID0gaGFsMl9hbGxvY19kbWFidWYoJmhhbDItPmRhYyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX3BsYXliYWNrX2Nsb3NlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKworCWhhbDJfZnJlZV9kbWFidWYoJmhhbDItPmRhYyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9wbGF5YmFja19wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBoYWwyX2NvZGVjICpkYWMgPSAmaGFsMi0+ZGFjOworCisJZGFjLT52b2ljZXMgPSBydW50aW1lLT5jaGFubmVsczsKKwlkYWMtPnNhbXBsZV9yYXRlID0gaGFsMl9jb21wdXRlX3JhdGUoZGFjLCBydW50aW1lLT5yYXRlKTsKKwltZW1zZXQoJmRhYy0+cGNtX2luZGlyZWN0LCAwLCBzaXplb2YoZGFjLT5wY21faW5kaXJlY3QpKTsKKwlkYWMtPnBjbV9pbmRpcmVjdC5od19idWZmZXJfc2l6ZSA9IEgyX0JVRl9TSVpFOworCWRhYy0+cGNtX2luZGlyZWN0LnN3X2J1ZmZlcl9zaXplID0gc25kX3BjbV9saWJfYnVmZmVyX2J5dGVzKHN1YnN0cmVhbSk7CisJZGFjLT5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CisJaGFsMl9zZXR1cF9kYWMoaGFsMik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9wbGF5YmFja190cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgY21kKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwkJaGFsMi0+ZGFjLnBjbV9pbmRpcmVjdC5od19pbyA9IGhhbDItPmRhYy5idWZmZXJfZG1hOworCQloYWwyLT5kYWMucGNtX2luZGlyZWN0Lmh3X2RhdGEgPSAwOworCQlzdWJzdHJlYW0tPm9wcy0+YWNrKHN1YnN0cmVhbSk7CisJCWhhbDJfc3RhcnRfZGFjKGhhbDIpOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CisJCWhhbDJfc3RvcF9kYWMoaGFsMik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNuZF9wY21fdWZyYW1lc190CitoYWwyX3BsYXliYWNrX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBoYWwyX2NvZGVjICpkYWMgPSAmaGFsMi0+ZGFjOworCisJcmV0dXJuIHNuZF9wY21faW5kaXJlY3RfcGxheWJhY2tfcG9pbnRlcihzdWJzdHJlYW0sICZkYWMtPnBjbV9pbmRpcmVjdCwKKwkJCQkJCSBkYWMtPnBidXMucGJ1cy0+cGJkbWFfYnB0cik7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfcGxheWJhY2tfdHJhbnNmZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJICAgc3RydWN0IHNuZF9wY21faW5kaXJlY3QgKnJlYywgc2l6ZV90IGJ5dGVzKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBoYWwyLT5kYWMuYnVmZmVyICsgcmVjLT5od19kYXRhOworCisJbWVtY3B5KGJ1Ziwgc3Vic3RyZWFtLT5ydW50aW1lLT5kbWFfYXJlYSArIHJlYy0+c3dfZGF0YSwgYnl0ZXMpOworCWRtYV9jYWNoZV9zeW5jKE5VTEwsIGJ1ZiwgYnl0ZXMsIERNQV9UT19ERVZJQ0UpOworCit9CisKK3N0YXRpYyBpbnQgaGFsMl9wbGF5YmFja19hY2soc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBoYWwyX2NvZGVjICpkYWMgPSAmaGFsMi0+ZGFjOworCisJZGFjLT5wY21faW5kaXJlY3QuaHdfcXVldWVfc2l6ZSA9IEgyX0JVRl9TSVpFIC8gMjsKKwlzbmRfcGNtX2luZGlyZWN0X3BsYXliYWNrX3RyYW5zZmVyKHN1YnN0cmVhbSwKKwkJCQkJICAgJmRhYy0+cGNtX2luZGlyZWN0LAorCQkJCQkgICBoYWwyX3BsYXliYWNrX3RyYW5zZmVyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX2NhcHR1cmVfb3BlbihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3QgaGFsMl9jb2RlYyAqYWRjID0gJmhhbDItPmFkYzsKKwlpbnQgZXJyOworCisJcnVudGltZS0+aHcgPSBoYWwyX3BjbV9odzsKKworCWVyciA9IGhhbDJfYWxsb2NfZG1hYnVmKGFkYyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX2NhcHR1cmVfY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCisJaGFsMl9mcmVlX2RtYWJ1ZigmaGFsMi0+YWRjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX2NhcHR1cmVfcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKwlzdHJ1Y3QgaGFsMl9jb2RlYyAqYWRjID0gJmhhbDItPmFkYzsKKworCWFkYy0+dm9pY2VzID0gcnVudGltZS0+Y2hhbm5lbHM7CisJYWRjLT5zYW1wbGVfcmF0ZSA9IGhhbDJfY29tcHV0ZV9yYXRlKGFkYywgcnVudGltZS0+cmF0ZSk7CisJbWVtc2V0KCZhZGMtPnBjbV9pbmRpcmVjdCwgMCwgc2l6ZW9mKGFkYy0+cGNtX2luZGlyZWN0KSk7CisJYWRjLT5wY21faW5kaXJlY3QuaHdfYnVmZmVyX3NpemUgPSBIMl9CVUZfU0laRTsKKwlhZGMtPnBjbV9pbmRpcmVjdC5od19xdWV1ZV9zaXplID0gSDJfQlVGX1NJWkUgLyAyOworCWFkYy0+cGNtX2luZGlyZWN0LnN3X2J1ZmZlcl9zaXplID0gc25kX3BjbV9saWJfYnVmZmVyX2J5dGVzKHN1YnN0cmVhbSk7CisJYWRjLT5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CisJaGFsMl9zZXR1cF9hZGMoaGFsMik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9jYXB0dXJlX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCisJc3dpdGNoIChjbWQpIHsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUQVJUOgorCQloYWwyLT5hZGMucGNtX2luZGlyZWN0Lmh3X2lvID0gaGFsMi0+YWRjLmJ1ZmZlcl9kbWE7CisJCWhhbDItPmFkYy5wY21faW5kaXJlY3QuaHdfZGF0YSA9IDA7CisJCXByaW50ayhLRVJOX0RFQlVHICJidWZmZXJfZG1hICV4XG4iLCBoYWwyLT5hZGMuYnVmZmVyX2RtYSk7CisJCWhhbDJfc3RhcnRfYWRjKGhhbDIpOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CisJCWhhbDJfc3RvcF9hZGMoaGFsMik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNuZF9wY21fdWZyYW1lc190CitoYWwyX2NhcHR1cmVfcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IGhhbDJfY29kZWMgKmFkYyA9ICZoYWwyLT5hZGM7CisKKwlyZXR1cm4gc25kX3BjbV9pbmRpcmVjdF9jYXB0dXJlX3BvaW50ZXIoc3Vic3RyZWFtLCAmYWRjLT5wY21faW5kaXJlY3QsCisJCQkJCQlhZGMtPnBidXMucGJ1cy0+cGJkbWFfYnB0cik7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfY2FwdHVyZV90cmFuc2ZlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkgIHN0cnVjdCBzbmRfcGNtX2luZGlyZWN0ICpyZWMsIHNpemVfdCBieXRlcykKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJdW5zaWduZWQgY2hhciAqYnVmID0gaGFsMi0+YWRjLmJ1ZmZlciArIHJlYy0+aHdfZGF0YTsKKworCWRtYV9jYWNoZV9zeW5jKE5VTEwsIGJ1ZiwgYnl0ZXMsIERNQV9GUk9NX0RFVklDRSk7CisJbWVtY3B5KHN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FyZWEgKyByZWMtPnN3X2RhdGEsIGJ1ZiwgYnl0ZXMpOworfQorCitzdGF0aWMgaW50IGhhbDJfY2FwdHVyZV9hY2soc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBoYWwyX2NvZGVjICphZGMgPSAmaGFsMi0+YWRjOworCisJc25kX3BjbV9pbmRpcmVjdF9jYXB0dXJlX3RyYW5zZmVyKHN1YnN0cmVhbSwKKwkJCQkJICAmYWRjLT5wY21faW5kaXJlY3QsCisJCQkJCSAgaGFsMl9jYXB0dXJlX3RyYW5zZmVyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBoYWwyX3BsYXliYWNrX29wcyA9IHsKKwkub3BlbiA9ICAgICAgICBoYWwyX3BsYXliYWNrX29wZW4sCisJLmNsb3NlID0gICAgICAgaGFsMl9wbGF5YmFja19jbG9zZSwKKwkuaW9jdGwgPSAgICAgICBzbmRfcGNtX2xpYl9pb2N0bCwKKwkuaHdfcGFyYW1zID0gICBoYWwyX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSAgICAgaGFsMl9wY21faHdfZnJlZSwKKwkucHJlcGFyZSA9ICAgICBoYWwyX3BsYXliYWNrX3ByZXBhcmUsCisJLnRyaWdnZXIgPSAgICAgaGFsMl9wbGF5YmFja190cmlnZ2VyLAorCS5wb2ludGVyID0gICAgIGhhbDJfcGxheWJhY2tfcG9pbnRlciwKKwkuYWNrID0gICAgICAgICBoYWwyX3BsYXliYWNrX2FjaywKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9vcHMgaGFsMl9jYXB0dXJlX29wcyA9IHsKKwkub3BlbiA9ICAgICAgICBoYWwyX2NhcHR1cmVfb3BlbiwKKwkuY2xvc2UgPSAgICAgICBoYWwyX2NhcHR1cmVfY2xvc2UsCisJLmlvY3RsID0gICAgICAgc25kX3BjbV9saWJfaW9jdGwsCisJLmh3X3BhcmFtcyA9ICAgaGFsMl9wY21faHdfcGFyYW1zLAorCS5od19mcmVlID0gICAgIGhhbDJfcGNtX2h3X2ZyZWUsCisJLnByZXBhcmUgPSAgICAgaGFsMl9jYXB0dXJlX3ByZXBhcmUsCisJLnRyaWdnZXIgPSAgICAgaGFsMl9jYXB0dXJlX3RyaWdnZXIsCisJLnBvaW50ZXIgPSAgICAgaGFsMl9jYXB0dXJlX3BvaW50ZXIsCisJLmFjayA9ICAgICAgICAgaGFsMl9jYXB0dXJlX2FjaywKK307CisKK3N0YXRpYyBpbnQgX19kZXZpbml0IGhhbDJfcGNtX2NyZWF0ZShzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIpCit7CisJc3RydWN0IHNuZF9wY20gKnBjbTsKKwlpbnQgZXJyOworCisJLyogY3JlYXRlIGZpcnN0IHBjbSBkZXZpY2Ugd2l0aCBvbmUgb3V0cHV0cyBhbmQgb25lIGlucHV0ICovCisJZXJyID0gc25kX3BjbV9uZXcoaGFsMi0+Y2FyZCwgIlNHSSBIQUwyIEF1ZGlvIiwgMCwgMSwgMSwgJnBjbSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlwY20tPnByaXZhdGVfZGF0YSA9IGhhbDI7CisJc3RyY3B5KHBjbS0+bmFtZSwgIlNHSSBIQUwyIik7CisKKwkvKiBzZXQgb3BlcmF0b3JzICovCisJc25kX3BjbV9zZXRfb3BzKHBjbSwgU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSywKKwkJCSZoYWwyX3BsYXliYWNrX29wcyk7CisJc25kX3BjbV9zZXRfb3BzKHBjbSwgU05EUlZfUENNX1NUUkVBTV9DQVBUVVJFLAorCQkJJmhhbDJfY2FwdHVyZV9vcHMpOworCXNuZF9wY21fbGliX3ByZWFsbG9jYXRlX3BhZ2VzX2Zvcl9hbGwocGNtLCBTTkRSVl9ETUFfVFlQRV9DT05USU5VT1VTLAorCQkJCQkgICBzbmRfZG1hX2NvbnRpbnVvdXNfZGF0YShHRlBfS0VSTkVMKSwKKwkJCQkJICAgMCwgMTAyNCAqIDEwMjQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9kZXZfZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IGRldmljZS0+ZGV2aWNlX2RhdGE7CisKKwlmcmVlX2lycShTR0lfSFBDRE1BX0lSUSwgaGFsMik7CisJa2ZyZWUoaGFsMik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX2RldmljZV9vcHMgaGFsMl9vcHMgPSB7CisJLmRldl9mcmVlID0gaGFsMl9kZXZfZnJlZSwKK307CisKK3N0YXRpYyB2b2lkIGhhbDJfaW5pdF9jb2RlYyhzdHJ1Y3QgaGFsMl9jb2RlYyAqY29kZWMsIHN0cnVjdCBocGMzX3JlZ3MgKmhwYzMsCisJCQkgICAgaW50IGluZGV4KQoreworCWNvZGVjLT5wYnVzLnBidXNuciA9IGluZGV4OworCWNvZGVjLT5wYnVzLnBidXMgPSAmaHBjMy0+cGJkbWFbaW5kZXhdOworfQorCitzdGF0aWMgaW50IGhhbDJfZGV0ZWN0KHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwl1bnNpZ25lZCBzaG9ydCBib2FyZCwgbWFqb3IsIG1pbm9yOworCXVuc2lnbmVkIHNob3J0IHJldjsKKworCS8qIHJlc2V0IEhBTDIgKi8KKwloYWwyX3dyaXRlKDAsICZoYWwyLT5jdGxfcmVncy0+aXNyKTsKKworCS8qIHJlbGVhc2UgcmVzZXQgKi8KKwloYWwyX3dyaXRlKEgyX0lTUl9HTE9CQUxfUkVTRVRfTiB8IEgyX0lTUl9DT0RFQ19SRVNFVF9OLAorCQkgICAmaGFsMi0+Y3RsX3JlZ3MtPmlzcik7CisKKworCWhhbDJfaV93cml0ZTE2KGhhbDIsIEgySV9SRUxBWV9DLCBIMklfUkVMQVlfQ19TVEFURSk7CisJcmV2ID0gaGFsMl9yZWFkKCZoYWwyLT5jdGxfcmVncy0+cmV2KTsKKwlpZiAocmV2ICYgSDJfUkVWX0FVRElPX1BSRVNFTlQpCisJCXJldHVybiAtRU5PREVWOworCisJYm9hcmQgPSAocmV2ICYgSDJfUkVWX0JPQVJEX00pID4+IDEyOworCW1ham9yID0gKHJldiAmIEgyX1JFVl9NQUpPUl9DSElQX00pID4+IDQ7CisJbWlub3IgPSAocmV2ICYgSDJfUkVWX01JTk9SX0NISVBfTSk7CisKKwlwcmludGsoS0VSTl9JTkZPICJTR0kgSEFMMiByZXZpc2lvbiAlaS4laS4laVxuIiwKKwkgICAgICAgYm9hcmQsIG1ham9yLCBtaW5vcik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX2NyZWF0ZShzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfaGFsMiAqKnJjaGlwKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMjsKKwlzdHJ1Y3QgaHBjM19yZWdzICpocGMzID0gaHBjM2MwOworCWludCBlcnI7CisKKwloYWwyID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9oYWwyKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFoYWwyKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWhhbDItPmNhcmQgPSBjYXJkOworCisJaWYgKHJlcXVlc3RfaXJxKFNHSV9IUENETUFfSVJRLCBoYWwyX2ludGVycnVwdCwgSVJRRl9TSEFSRUQsCisJCQkiU0dJIEhBTDIiLCBoYWwyKSkgeworCQlwcmludGsoS0VSTl9FUlIgIkhBTDI6IENhbid0IGdldCBpcnEgJWRcbiIsIFNHSV9IUENETUFfSVJRKTsKKwkJa2ZyZWUoaGFsMik7CisJCXJldHVybiAtRUFHQUlOOworCX0KKworCWhhbDItPmN0bF9yZWdzID0gKHN0cnVjdCBoYWwyX2N0bF9yZWdzICopaHBjMy0+cGJ1c19leHRyZWdzWzBdOworCWhhbDItPmFlc19yZWdzID0gKHN0cnVjdCBoYWwyX2Flc19yZWdzICopaHBjMy0+cGJ1c19leHRyZWdzWzFdOworCWhhbDItPnZvbF9yZWdzID0gKHN0cnVjdCBoYWwyX3ZvbF9yZWdzICopaHBjMy0+cGJ1c19leHRyZWdzWzJdOworCWhhbDItPnN5bl9yZWdzID0gKHN0cnVjdCBoYWwyX3N5bl9yZWdzICopaHBjMy0+cGJ1c19leHRyZWdzWzNdOworCisJaWYgKGhhbDJfZGV0ZWN0KGhhbDIpIDwgMCkgeworCQlrZnJlZShoYWwyKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJaGFsMl9pbml0X2NvZGVjKCZoYWwyLT5kYWMsIGhwYzMsIDApOworCWhhbDJfaW5pdF9jb2RlYygmaGFsMi0+YWRjLCBocGMzLCAxKTsKKworCS8qCisJICogQWxsIERNQSBjaGFubmVsIGludGVyZmFjZXMgaW4gSEFMMiBhcmUgZGVzaWduZWQgdG8gb3BlcmF0ZSB3aXRoCisJICogUEJVUyBwcm9ncmFtbWVkIGZvciAyIGN5Y2xlcyBpbiBEMywgMiBjeWNsZXMgaW4gRDQgYW5kIDIgY3ljbGVzCisJICogaW4gRDUuIEhBTDIgaXMgYSAxNi1iaXQgZGV2aWNlIHdoaWNoIGNhbiBhY2NlcHQgYm90aCBiaWcgYW5kIGxpdHRsZQorCSAqIGVuZGlhbiBmb3JtYXQuIEl0IGFzc3VtZXMgdGhhdCBldmVuIGFkZHJlc3MgYnl0ZXMgYXJlIG9uIGhpZ2gKKwkgKiBwb3J0aW9uIG9mIFBCVVMgKDE1OjgpIGFuZCBhc3N1bWVzIHRoYXQgSFBDMyBpcyBwcm9ncmFtbWVkIHRvCisJICogYWNjZXB0IGEgbGl2ZSAodW5zeW5jaHJvbml6ZWQpIHZlcnNpb24gb2YgUF9EUkVRX04gZnJvbSBIQUwyLgorCSAqLworI2RlZmluZSBIQUwyX1BCVVNfRE1BQ0ZHICgoMCA8PCBIUEMzX0RNQUNGR19EM1JfU0hJRlQpIHwgXAorCQkJICAoMiA8PCBIUEMzX0RNQUNGR19ENFJfU0hJRlQpIHwgXAorCQkJICAoMiA8PCBIUEMzX0RNQUNGR19ENVJfU0hJRlQpIHwgXAorCQkJICAoMCA8PCBIUEMzX0RNQUNGR19EM1dfU0hJRlQpIHwgXAorCQkJICAoMiA8PCBIUEMzX0RNQUNGR19ENFdfU0hJRlQpIHwgXAorCQkJICAoMiA8PCBIUEMzX0RNQUNGR19ENVdfU0hJRlQpIHwgXAorCQkJCUhQQzNfRE1BQ0ZHX0RTMTYgfCBcCisJCQkJSFBDM19ETUFDRkdfRVZFTkhJIHwgXAorCQkJCUhQQzNfRE1BQ0ZHX1JUSU1FIHwgXAorCQkJICAoOCA8PCBIUEMzX0RNQUNGR19CVVJTVF9TSElGVCkgfCBcCisJCQkJSFBDM19ETUFDRkdfRFJRTElWRSkKKwkvKgorCSAqIElnbm9yZSB3aGF0J3MgbWVudGlvbmVkIGluIHRoZSBzcGVjaWZpY2F0aW9uIGFuZCB3cml0ZSB2YWx1ZSB3aGljaAorCSAqIHdvcmtzIGluIFRoZSBSZWFsIFdvcmxkIChUTSkKKwkgKi8KKwlocGMzLT5wYnVzX2RtYWNmZ1toYWwyLT5kYWMucGJ1cy5wYnVzbnJdWzBdID0gMHg4MjA4ODQ0OworCWhwYzMtPnBidXNfZG1hY2ZnW2hhbDItPmFkYy5wYnVzLnBidXNucl1bMF0gPSAweDgyMDg4NDQ7CisKKwllcnIgPSBzbmRfZGV2aWNlX25ldyhjYXJkLCBTTkRSVl9ERVZfTE9XTEVWRUwsIGhhbDIsICZoYWwyX29wcyk7CisJaWYgKGVyciA8IDApIHsKKwkJZnJlZV9pcnEoU0dJX0hQQ0RNQV9JUlEsIGhhbDIpOworCQlrZnJlZShoYWwyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisJKnJjaGlwID0gaGFsMjsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2RldmluaXQgaGFsMl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfY2FyZCAqY2FyZDsKKwlzdHJ1Y3Qgc25kX2hhbDIgKmNoaXA7CisJaW50IGVycjsKKworCWNhcmQgPSBzbmRfY2FyZF9uZXcoaW5kZXgsIGlkLCBUSElTX01PRFVMRSwgMCk7CisJaWYgKGNhcmQgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwllcnIgPSBoYWwyX2NyZWF0ZShjYXJkLCAmY2hpcCk7CisJaWYgKGVyciA8IDApIHsKKwkJc25kX2NhcmRfZnJlZShjYXJkKTsKKwkJcmV0dXJuIGVycjsKKwl9CisJc25kX2NhcmRfc2V0X2RldihjYXJkLCAmcGRldi0+ZGV2KTsKKworCWVyciA9IGhhbDJfcGNtX2NyZWF0ZShjaGlwKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOworCQlyZXR1cm4gZXJyOworCX0KKwllcnIgPSBoYWwyX21peGVyX2NyZWF0ZShjaGlwKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOworCQlyZXR1cm4gZXJyOworCX0KKworCXN0cmNweShjYXJkLT5kcml2ZXIsICJTR0kgSEFMMiBBdWRpbyIpOworCXN0cmNweShjYXJkLT5zaG9ydG5hbWUsICJTR0kgSEFMMiBBdWRpbyIpOworCXNwcmludGYoY2FyZC0+bG9uZ25hbWUsICIlcyBpcnEgJWkiLAorCQljYXJkLT5zaG9ydG5hbWUsCisJCVNHSV9IUENETUFfSVJRKTsKKworCWVyciA9IHNuZF9jYXJkX3JlZ2lzdGVyKGNhcmQpOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGNhcmQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZXhpdCBoYWwyX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfY2FyZCAqY2FyZCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJc25kX2NhcmRfZnJlZShjYXJkKTsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgaGFsMl9kcml2ZXIgPSB7CisJLnByb2JlCT0gaGFsMl9wcm9iZSwKKwkucmVtb3ZlCT0gX19kZXZleGl0X3AoaGFsMl9yZW1vdmUpLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lCT0gInNnaWhhbDIiLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBhbHNhX2NhcmRfaGFsMl9pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmaGFsMl9kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYWxzYV9jYXJkX2hhbDJfZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZoYWwyX2RyaXZlcik7Cit9CisKK21vZHVsZV9pbml0KGFsc2FfY2FyZF9oYWwyX2luaXQpOworbW9kdWxlX2V4aXQoYWxzYV9jYXJkX2hhbDJfZXhpdCk7CmRpZmYgLS1naXQgYS9zb3VuZC9taXBzL2hhbDIuaCBiL3NvdW5kL21pcHMvaGFsMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxOTgyOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9taXBzL2hhbDIuaApAQCAtMCwwICsxLDI0NSBAQAorI2lmbmRlZiBfX0hBTDJfSAorI2RlZmluZSBfX0hBTDJfSAorCisvKgorICogIERyaXZlciBmb3IgSEFMMiBzb3VuZCBwcm9jZXNzb3JzCisgKiAgQ29weXJpZ2h0IChjKSAxOTk5IFVsZiBDYXJsc3NvbiA8dWxmY0BidW4uZmFsa2VuYmVyZy5zZT4KKyAqICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKy8qIEluZGlyZWN0IHN0YXR1cyByZWdpc3RlciAqLworCisjZGVmaW5lIEgyX0lTUl9UU1RBVFVTCQkweDAxCS8qIFJPOiB0cmFuc2FjdGlvbiBzdGF0dXMgMT1idXN5ICovCisjZGVmaW5lIEgyX0lTUl9VU1RBVFVTCQkweDAyCS8qIFJPOiB1dGltZSBzdGF0dXMgYml0IDE9YXJtZWQgKi8KKyNkZWZpbmUgSDJfSVNSX1FVQURfTU9ERQkweDA0CS8qIGNvZGVjIG1vZGUgMD1pbmRpZ28gMT1xdWFkICovCisjZGVmaW5lIEgyX0lTUl9HTE9CQUxfUkVTRVRfTgkweDA4CS8qIGNoaXAgZ2xvYmFsIHJlc2V0IDA9cmVzZXQgKi8KKyNkZWZpbmUgSDJfSVNSX0NPREVDX1JFU0VUX04JMHgxMAkvKiBjb2RlYy9zeW50aCByZXNldCAwPXJlc2V0ICAqLworCisvKiBSZXZpc2lvbiByZWdpc3RlciAqLworCisjZGVmaW5lIEgyX1JFVl9BVURJT19QUkVTRU5UCTB4ODAwMAkvKiBSTzogYXVkaW8gcHJlc2VudCAwPXByZXNlbnQgKi8KKyNkZWZpbmUgSDJfUkVWX0JPQVJEX00JCTB4NzAwMAkvKiBSTzogYml0cyAxNDoxMiwgYm9hcmQgcmV2aXNpb24gKi8KKyNkZWZpbmUgSDJfUkVWX01BSk9SX0NISVBfTQkweDAwRjAJLyogUk86IGJpdHMgNzo0LCBtYWpvciBjaGlwIHJldmlzaW9uICovCisjZGVmaW5lIEgyX1JFVl9NSU5PUl9DSElQX00JMHgwMDBGCS8qIFJPOiBiaXRzIDM6MCwgbWlub3IgY2hpcCByZXZpc2lvbiAqLworCisvKiBJbmRpcmVjdCBhZGRyZXNzIHJlZ2lzdGVyICovCisKKy8qCisgKiBBZGRyZXNzIG9mIGluZGlyZWN0IGludGVybmFsIHJlZ2lzdGVyIHRvIGJlIGFjY2Vzc2VkLiBBIHdyaXRlIHRvIHRoaXMKKyAqIHJlZ2lzdGVyIGluaXRpYXRlcyByZWFkIG9yIHdyaXRlIGFjY2VzcyB0byB0aGUgaW5kaXJlY3QgcmVnaXN0ZXJzIGluIHRoZQorICogSEFMMi4gTm90ZSB0aGF0IHRoZXJlIGFmIGZvdXIgaW5kaXJlY3QgZGF0YSByZWdpc3RlcnMgZm9yIHdyaXRlIGFjY2VzcyB0bworICogcmVnaXN0ZXJzIGxhcmdlciB0aGFuIDE2IGJ5dGUuCisgKi8KKworI2RlZmluZSBIMl9JQVJfVFlQRV9NCQkweEYwMDAJLyogYml0cyAxNToxMiwgdHlwZSBvZiBmdW5jdGlvbmFsICovCisJCQkJCS8qIGJsb2NrIHRoZSByZWdpc3RlciByZXNpZGVzIGluICovCisJCQkJCS8qIDE9RE1BIFBvcnQgKi8KKwkJCQkJLyogOT1HbG9iYWwgRE1BIENvbnRyb2wgKi8KKwkJCQkJLyogMj1CcmVzZW5oYW0gKi8KKwkJCQkJLyogMz1Vbml4IFRpbWVyICovCisjZGVmaW5lIEgyX0lBUl9OVU1fTQkJMHgwRjAwCS8qIGJpdHMgMTE6OCBpbnN0YW5jZSBvZiB0aGUgKi8KKwkJCQkJLyogYmxvY2tpbiB3aGljaCB0aGUgaW5kaXJlY3QgKi8KKwkJCQkJLyogcmVnaXN0ZXIgcmVzaWRlcyAqLworCQkJCQkvKiBJZiBJQVJfVFlQRV9NPURNQSBQb3J0OiAqLworCQkJCQkvKiAxPVN5bnRoIEluICovCisJCQkJCS8qIDI9QUVTIEluICovCisJCQkJCS8qIDM9QUVTIE91dCAqLworCQkJCQkvKiA0PURBQyBPdXQgKi8KKwkJCQkJLyogNT1BREMgT3V0ICovCisJCQkJCS8qIDY9U3ludGggQ29udHJvbCAqLworCQkJCQkvKiBJZiBJQVJfVFlQRV9NPUdsb2JhbCBETUEgQ29udHJvbDogKi8KKwkJCQkJLyogMT1Db250cm9sICovCisJCQkJCS8qIElmIElBUl9UWVBFX009QnJlc2VuaGFtOiAqLworCQkJCQkvKiAxPUJyZXNlbmhhbSBDbG9jayBHZW4gMSAqLworCQkJCQkvKiAyPUJyZXNlbmhhbSBDbG9jayBHZW4gMiAqLworCQkJCQkvKiAzPUJyZXNlbmhhbSBDbG9jayBHZW4gMyAqLworCQkJCQkvKiBJZiBJQVJfVFlQRV9NPVVuaXggVGltZXI6ICovCisJCQkJCS8qIDE9VW5peCBUaW1lciAqLworI2RlZmluZSBIMl9JQVJfQUNDRVNTX1NFTEVDVAkweDAwODAJLyogMT1yZWFkIDA9d3JpdGUgKi8KKyNkZWZpbmUgSDJfSUFSX1BBUkFNCQkweDAwMEMJLyogUGFyYW1ldGVyIFNlbGVjdCAqLworI2RlZmluZSBIMl9JQVJfUkJfSU5ERVhfTQkweDAwMDMJLyogUmVhZCBCYWNrIEluZGV4ICovCisJCQkJCS8qIDAwOndvcmQwICovCisJCQkJCS8qIDAxOndvcmQxICovCisJCQkJCS8qIDEwOndvcmQyICovCisJCQkJCS8qIDExOndvcmQzICovCisvKgorICogSEFMMiBpbnRlcm5hbCBhZGRyZXNzaW5nCisgKgorICogVGhlIEhBTDIgaGFzICJpbmRpcmVjdCByZWdpc3RlcnMiIChpZHIpIHdoaWNoIGFyZSBhY2Nlc3NlZCBieSB3cml0aW5nIHRvIHRoZQorICogSW5kaXJlY3QgRGF0YSByZWdpc3RlcnMuIFdyaXRlIHRoZSBhZGRyZXNzIHRvIHRoZSBJbmRpcmVjdCBBZGRyZXNzIHJlZ2lzdGVyCisgKiB0byB0cmFuc2ZlciB0aGUgZGF0YS4KKyAqCisgKiBXZSBkZWZpbmUgdGhlIEgySVJfKiB0byB0aGUgcmVhZCBhZGRyZXNzIGFuZCBIMklXXyogdG8gdGhlIHdyaXRlIGFkZHJlc3MgYW5kCisgKiBIMklfKiB0byBiZSBmaWVsZHMgaW4gd2hhdGV2ZXIgcmVnaXN0ZXIgaXMgcmVmZXJyZWQgdG8uCisgKgorICogV2hlbiB3ZSB3cml0ZSB0byBpbmRpcmVjdCByZWdpc3RlcnMgd2hpY2ggYXJlIGxhcmdlciB0aGFuIG9uZSB3b3JkICgxNiBiaXQpCisgKiB3ZSBoYXZlIHRvIGZpbGwgbW9yZSB0aGFuIG9uZSBpbmRpcmVjdCByZWdpc3RlciBiZWZvcmUgd3JpdGluZy4gV2hlbiB3ZSByZWFkCisgKiBiYWNrIGhvd2V2ZXIgd2UgaGF2ZSB0byByZWFkIHNldmVyYWwgdGltZXMsIGVhY2ggdGltZSB3aXRoIGRpZmZlcmVudCBSZWFkCisgKiBCYWNrIEluZGV4ZXMgKHRoZXJlIGFyZSBkZWZzIGZvciBkb2luZyB0aGlzIGVhc2lseSkuCisgKi8KKworLyoKKyAqIFJlbGF5IENvbnRyb2wKKyAqLworI2RlZmluZSBIMklfUkVMQVlfQwkJMHg5MTAwCisjZGVmaW5lIEgySV9SRUxBWV9DX1NUQVRFCTB4MDEJCS8qIHN0YXRlIG9mIFJFTEFZIHBpbiBzaWduYWwgKi8KKworLyogRE1BIHBvcnQgZW5hYmxlICovCisKKyNkZWZpbmUgSDJJX0RNQV9QT1JUX0VOCQkweDkxMDQKKyNkZWZpbmUgSDJJX0RNQV9QT1JUX0VOX1NZX0lOCTB4MDEJCS8qIFN5bnRoX2luIERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfUE9SVF9FTl9BRVNSWAkweDAyCQkvKiBBRVMgcmVjZWl2ZXIgRE1BIHBvcnQgKi8KKyNkZWZpbmUgSDJJX0RNQV9QT1JUX0VOX0FFU1RYCTB4MDQJCS8qIEFFUyB0cmFuc21pdHRlciBETUEgcG9ydCAqLworI2RlZmluZSBIMklfRE1BX1BPUlRfRU5fQ09ERUNUWAkweDA4CQkvKiBDT0RFQyB0cmFuc21pdCBETUEgcG9ydCAqLworI2RlZmluZSBIMklfRE1BX1BPUlRfRU5fQ09ERUNSCTB4MTAJCS8qIENPREVDIHJlY2VpdmUgRE1BIHBvcnQgKi8KKworI2RlZmluZSBIMklfRE1BX0VORAkJMHg5MTA4IAkJLyogZ2xvYmFsIGRtYSBlbmRpYW4gc2VsZWN0ICovCisjZGVmaW5lIEgySV9ETUFfRU5EX1NZX0lOCTB4MDEJCS8qIFN5bnRoX2luIERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfRU5EX0FFU1JYCTB4MDIJCS8qIEFFUyByZWNlaXZlciBETUEgcG9ydCAqLworI2RlZmluZSBIMklfRE1BX0VORF9BRVNUWAkweDA0CQkvKiBBRVMgdHJhbnNtaXR0ZXIgRE1BIHBvcnQgKi8KKyNkZWZpbmUgSDJJX0RNQV9FTkRfQ09ERUNUWAkweDA4CQkvKiBDT0RFQyB0cmFuc21pdCBETUEgcG9ydCAqLworI2RlZmluZSBIMklfRE1BX0VORF9DT0RFQ1IJMHgxMAkJLyogQ09ERUMgcmVjZWl2ZSBETUEgcG9ydCAqLworCQkJCQkJLyogMD1iX2VuZCAxPWxfZW5kICovCisKKyNkZWZpbmUgSDJJX0RNQV9EUlYJCTB4OTEwQyAgCS8qIGdsb2JhbCBQQlVTIERNQSBlbmFibGUgKi8KKworI2RlZmluZSBIMklfU1lOVEhfQwkJMHgxMTA0CQkvKiBTeW50aCBETUEgY29udHJvbCAqLworCisjZGVmaW5lIEgySV9BRVNSWF9DCQkweDEyMDQJIAkvKiBBRVMgUlggZG1hIGNvbnRyb2wgKi8KKworI2RlZmluZSBIMklfQ19UU19FTgkJMHgyMAkJLyogVGltZXN0YW1wIGVuYWJsZSAqLworI2RlZmluZSBIMklfQ19UU19GUk1UCQkweDQwCQkvKiBUaW1lc3RhbXAgZm9ybWF0ICovCisjZGVmaW5lIEgySV9DX05BVURJTwkJMHg4MAkJLyogU2lnbiBleHRlbmQgKi8KKworLyogQUVTUlggQ1RMLCAxNiBiaXQgKi8KKworI2RlZmluZSBIMklfQUVTVFhfQwkJMHgxMzA0CQkvKiBBRVMgVFggRE1BIGNvbnRyb2wgKi8KKyNkZWZpbmUgSDJJX0FFU1RYX0NfQ0xLSURfU0hJRlQJMwkJLyogQnJlc2VuaGFtIENsb2NrIEdlbiAxLTMgKi8KKyNkZWZpbmUgSDJJX0FFU1RYX0NfQ0xLSURfTQkweDE4CisjZGVmaW5lIEgySV9BRVNUWF9DX0RBVEFUX1NISUZUCTgJCS8qIDE9bW9ubyAyPXN0ZXJlbyAoMz1xdWFkKSAqLworI2RlZmluZSBIMklfQUVTVFhfQ19EQVRBVF9NCTB4MzAwCisKKy8qIENPREVDIHJlZ2lzdGVycyAqLworCisjZGVmaW5lIEgySV9EQUNfQzEJCTB4MTQwNCAJCS8qIERBQyBETUEgY29udHJvbCwgMTYgYml0ICovCisjZGVmaW5lIEgySV9EQUNfQzIJCTB4MTQwOAkJLyogREFDIERNQSBjb250cm9sLCAzMiBiaXQgKi8KKyNkZWZpbmUgSDJJX0FEQ19DMQkJMHgxNTA0IAkJLyogQURDIERNQSBjb250cm9sLCAxNiBiaXQgKi8KKyNkZWZpbmUgSDJJX0FEQ19DMgkJMHgxNTA4CQkvKiBBREMgRE1BIGNvbnRyb2wsIDMyIGJpdCAqLworCisvKiBCaXRzIGluIENUTDEgcmVnaXN0ZXIgKi8KKworI2RlZmluZSBIMklfQzFfRE1BX1NISUZUCTAJCS8qIERNQSBjaGFubmVsICovCisjZGVmaW5lIEgySV9DMV9ETUFfTQkJMHg3CisjZGVmaW5lIEgySV9DMV9DTEtJRF9TSElGVAkzCQkvKiBCcmVzZW5oYW0gQ2xvY2sgR2VuIDEtMyAqLworI2RlZmluZSBIMklfQzFfQ0xLSURfTQkJMHgxOAorI2RlZmluZSBIMklfQzFfREFUQVRfU0hJRlQJOAkJLyogMT1tb25vIDI9c3RlcmVvICgzPXF1YWQpICovCisjZGVmaW5lIEgySV9DMV9EQVRBVF9NCQkweDMwMAorCisvKiBCaXRzIGluIENUTDIgcmVnaXN0ZXIgKi8KKworI2RlZmluZSBIMklfQzJfUl9HQUlOX1NISUZUCTAJCS8qIHJpZ2h0IGEvZCBpbnB1dCBnYWluICovCisjZGVmaW5lIEgySV9DMl9SX0dBSU5fTQkJMHhmCisjZGVmaW5lIEgySV9DMl9MX0dBSU5fU0hJRlQJNAkJLyogbGVmdCBhL2QgaW5wdXQgZ2FpbiAqLworI2RlZmluZSBIMklfQzJfTF9HQUlOX00JCTB4ZjAKKyNkZWZpbmUgSDJJX0MyX1JfU0VMCQkweDEwMAkJLyogcmlnaHQgaW5wdXQgc2VsZWN0ICovCisjZGVmaW5lIEgySV9DMl9MX1NFTAkJMHgyMDAJCS8qIGxlZnQgaW5wdXQgc2VsZWN0ICovCisjZGVmaW5lIEgySV9DMl9NVVRFCQkweDQwMAkJLyogbXV0ZSAqLworI2RlZmluZSBIMklfQzJfRE8xCQkweDAwMDEwMDAwCS8qIGRpZ2l0YWwgb3V0cHV0IHBvcnQgYml0IDAgKi8KKyNkZWZpbmUgSDJJX0MyX0RPMgkJMHgwMDAyMDAwMAkvKiBkaWdpdGFsIG91dHB1dCBwb3J0IGJpdCAxICovCisjZGVmaW5lIEgySV9DMl9SX0FUVF9TSElGVAkxOAkJLyogcmlnaHQgZC9hIG91dHB1dCAtICovCisjZGVmaW5lIEgySV9DMl9SX0FUVF9NCQkweDAwN2MwMDAwCS8qIGF0dGVudWF0aW9uICovCisjZGVmaW5lIEgySV9DMl9MX0FUVF9TSElGVAkyMwkJLyogbGVmdCBkL2Egb3V0cHV0IC0gKi8KKyNkZWZpbmUgSDJJX0MyX0xfQVRUX00JCTB4MGY4MDAwMDAJLyogYXR0ZW51YXRpb24gKi8KKworI2RlZmluZSBIMklfU1lOVEhfTUFQX0MJCTB4MTEwNAkJLyogc3ludGggZG1hIGhhbmRzaGFrZSBjdHJsICovCisKKy8qIENsb2NrIGdlbmVyYXRvciBDVEwgMSwgMTYgYml0ICovCisKKyNkZWZpbmUgSDJJX0JSRVMxX0MxCQkweDIxMDQKKyNkZWZpbmUgSDJJX0JSRVMyX0MxCQkweDIyMDQKKyNkZWZpbmUgSDJJX0JSRVMzX0MxCQkweDIzMDQKKworI2RlZmluZSBIMklfQlJFU19DMV9TSElGVAkwCQkvKiAwPTQ4LjAgMT00NC4xIDI9YWVzX3J4ICovCisjZGVmaW5lIEgySV9CUkVTX0MxX00JCTB4MDMKKworLyogQ2xvY2sgZ2VuZXJhdG9yIENUTCAyLCAzMiBiaXQgKi8KKworI2RlZmluZSBIMklfQlJFUzFfQzIJCTB4MjEwOAorI2RlZmluZSBIMklfQlJFUzJfQzIJCTB4MjIwOAorI2RlZmluZSBIMklfQlJFUzNfQzIJCTB4MjMwOAorCisjZGVmaW5lIEgySV9CUkVTX0MyX0lOQ19TSElGVAkwCQkvKiBpbmNyZW1lbnQgdmFsdWUgKi8KKyNkZWZpbmUgSDJJX0JSRVNfQzJfSU5DX00JMHhmZmZmCisjZGVmaW5lIEgySV9CUkVTX0MyX01PRF9TSElGVAkxNgkJLyogbW9kY29udHJvbCB2YWx1ZSAqLworI2RlZmluZSBIMklfQlJFU19DMl9NT0RfTQkweGZmZmYwMDAwCS8qIG1vZGN0cmw9MHhmZmZmJihtb2RpbmMtMSkgKi8KKworLyogVW5peCB0aW1lciwgNjQgYml0ICovCisKKyNkZWZpbmUgSDJJX1VUSU1FCQkweDMxMDQKKyNkZWZpbmUgSDJJX1VUSU1FXzBfTEQJCTB4ZmZmZgkJLyogbWljcm9zZWNvbmRzLCBMU0IncyAqLworI2RlZmluZSBIMklfVVRJTUVfMV9MRDAJCTB4MGYJCS8qIG1pY3Jvc2Vjb25kcywgTVNCJ3MgKi8KKyNkZWZpbmUgSDJJX1VUSU1FXzFfTEQxCQkweGYwCQkvKiB0ZW50aHMgb2YgbWljcm9zZWNvbmRzICovCisjZGVmaW5lIEgySV9VVElNRV8yX0xECQkweGZmZmYJCS8qIHNlY29uZHMsIExTQidzICovCisjZGVmaW5lIEgySV9VVElNRV8zX0xECQkweGZmZmYJCS8qIHNlY29uZHMsIE1TQidzICovCisKK3N0cnVjdCBoYWwyX2N0bF9yZWdzIHsKKwl1MzIgX3VudXNlZDBbNF07CisJdTMyIGlzcjsJCS8qIDB4MTAgU3RhdHVzIFJlZ2lzdGVyICovCisJdTMyIF91bnVzZWQxWzNdOworCXUzMiByZXY7CQkvKiAweDIwIFJldmlzaW9uIFJlZ2lzdGVyICovCisJdTMyIF91bnVzZWQyWzNdOworCXUzMiBpYXI7CQkvKiAweDMwIEluZGlyZWN0IEFkZHJlc3MgUmVnaXN0ZXIgKi8KKwl1MzIgX3VudXNlZDNbM107CisJdTMyIGlkcjA7CQkvKiAweDQwIEluZGlyZWN0IERhdGEgUmVnaXN0ZXIgMCAqLworCXUzMiBfdW51c2VkNFszXTsKKwl1MzIgaWRyMTsJCS8qIDB4NTAgSW5kaXJlY3QgRGF0YSBSZWdpc3RlciAxICovCisJdTMyIF91bnVzZWQ1WzNdOworCXUzMiBpZHIyOwkJLyogMHg2MCBJbmRpcmVjdCBEYXRhIFJlZ2lzdGVyIDIgKi8KKwl1MzIgX3VudXNlZDZbM107CisJdTMyIGlkcjM7CQkvKiAweDcwIEluZGlyZWN0IERhdGEgUmVnaXN0ZXIgMyAqLworfTsKKworc3RydWN0IGhhbDJfYWVzX3JlZ3MgeworCXUzMiByeF9zdGF0WzJdOwkvKiBTdGF0dXMgcmVnaXN0ZXJzICovCisJdTMyIHJ4X2NyWzJdOwkJLyogQ29udHJvbCByZWdpc3RlcnMgKi8KKwl1MzIgcnhfdWRbNF07CQkvKiBVc2VyIGRhdGEgd2luZG93ICovCisJdTMyIHJ4X3N0WzI0XTsJCS8qIENoYW5uZWwgc3RhdHVzIGRhdGEgKi8KKworCXUzMiB0eF9zdGF0WzFdOwkvKiBTdGF0dXMgcmVnaXN0ZXIgKi8KKwl1MzIgdHhfY3JbM107CQkvKiBDb250cm9sIHJlZ2lzdGVycyAqLworCXUzMiB0eF91ZFs0XTsJCS8qIFVzZXIgZGF0YSB3aW5kb3cgKi8KKwl1MzIgdHhfc3RbMjRdOwkJLyogQ2hhbm5lbCBzdGF0dXMgZGF0YSAqLworfTsKKworc3RydWN0IGhhbDJfdm9sX3JlZ3MgeworCXUzMiByaWdodDsJCS8qIFJpZ2h0IHZvbHVtZSAqLworCXUzMiBsZWZ0OwkJLyogTGVmdCB2b2x1bWUgKi8KK307CisKK3N0cnVjdCBoYWwyX3N5bl9yZWdzIHsKKwl1MzIgX3VudXNlZDBbMl07CisJdTMyIHBhZ2U7CQkvKiBET0MgUGFnZSByZWdpc3RlciAqLworCXUzMiByZWdzZWw7CQkvKiBET0MgUmVnaXN0ZXIgc2VsZWN0aW9uICovCisJdTMyIGRsb3c7CQkvKiBET0MgRGF0YSBsb3cgKi8KKwl1MzIgZGhpZ2g7CQkvKiBET0MgRGF0YSBoaWdoICovCisJdTMyIGlycTsJCS8qIElSUSBTdGF0dXMgKi8KKwl1MzIgZHJhbTsJCS8qIERSQU0gQWNjZXNzICovCit9OworCisjZW5kaWYJLyogX19IQUwyX0ggKi8KZGlmZiAtLWdpdCBhL3NvdW5kL21pcHMvc2dpbzJhdWRpby5jIGIvc291bmQvbWlwcy9zZ2lvMmF1ZGlvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM2MzUwNAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL21pcHMvc2dpbzJhdWRpby5jCkBAIC0wLDAgKzEsMTAwNiBAQAorLyoKKyAqICAgU291bmQgZHJpdmVyIGZvciBTaWxpY29uIEdyYXBoaWNzIE8yIFdvcmtzdGF0aW9ucyBBL1YgYm9hcmQgYXVkaW8uCisgKgorICogICBDb3B5cmlnaHQgMjAwMyBWaXZpZW4gQ2hhcHBlbGllciA8dml2aWVuLmNoYXBwZWxpZXJAbGludXgtbWlwcy5vcmc+CisgKiAgIENvcHlyaWdodCAyMDA4IFRob21hcyBCb2dlbmRvZXJmZXIgPHRzYm9nZW5kQGFscGhhLmZyYW5rZW4uZGU+CisgKiAgIE14aWVyIHBhcnQgdGFrZW4gZnJvbSBtYWNlX2F1ZGlvLmM6CisgKiAgIENvcHlyaWdodCAyMDA3IFRob3JiZW4gSsOkbmRsaW5nIDx0ai50cmV2ZWx5YW5AZ21haWwuY29tPgorICoKKyAqICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyBVU0EKKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvZ2ZwLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKworI2luY2x1ZGUgPGFzbS9pcDMyL2lwMzJfaW50cy5oPgorI2luY2x1ZGUgPGFzbS9pcDMyL21hY2UuaD4KKworI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb250cm9sLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjZGVmaW5lIFNORFJWX0dFVF9JRAorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC9hZDE4NDMuaD4KKworCitNT0RVTEVfQVVUSE9SKCJWaXZpZW4gQ2hhcHBlbGllciA8dml2aWVuLmNoYXBwZWxpZXJAbGludXgtbWlwcy5vcmc+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlNHSSBPMiBBdWRpbyIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX1NVUFBPUlRFRF9ERVZJQ0UoInt7U2lsaWNvbiBHcmFwaGljcywgTzIgQXVkaW99fSIpOworCitzdGF0aWMgaW50IGluZGV4ID0gU05EUlZfREVGQVVMVF9JRFgxOyAgLyogSW5kZXggMC1NQVggKi8KK3N0YXRpYyBjaGFyICppZCA9IFNORFJWX0RFRkFVTFRfU1RSMTsgICAvKiBJRCBmb3IgdGhpcyBjYXJkICovCisKK21vZHVsZV9wYXJhbShpbmRleCwgaW50LCAwNDQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoaW5kZXgsICJJbmRleCB2YWx1ZSBmb3IgU0dJIE8yIHNvdW5kY2FyZC4iKTsKK21vZHVsZV9wYXJhbShpZCwgY2hhcnAsIDA0NDQpOworTU9EVUxFX1BBUk1fREVTQyhpZCwgIklEIHN0cmluZyBmb3IgU0dJIE8yIHNvdW5kY2FyZC4iKTsKKworCisjZGVmaW5lIEFVRElPX0NPTlRST0xfUkVTRVQgICAgICAgICAgICAgIEJJVCgwKSAvKiAxOiByZXNldCBhdWRpbyBpbnRlcmZhY2UgKi8KKyNkZWZpbmUgQVVESU9fQ09OVFJPTF9DT0RFQ19QUkVTRU5UICAgICAgQklUKDEpIC8qIDE6IGNvZGVjIGRldGVjdGVkICovCisKKyNkZWZpbmUgQ09ERUNfQ09OVFJPTF9XT1JEX1NISUZUICAgICAgICAwCisjZGVmaW5lIENPREVDX0NPTlRST0xfUkVBRCAgICAgICAgICAgICAgQklUKDE2KQorI2RlZmluZSBDT0RFQ19DT05UUk9MX0FERFJFU1NfU0hJRlQgICAgIDE3CisKKyNkZWZpbmUgQ0hBTk5FTF9DT05UUk9MX1JFU0VUICAgICAgICAgICBCSVQoMTApIC8qIDE6IHJlc2V0IGNoYW5uZWwgKi8KKyNkZWZpbmUgQ0hBTk5FTF9ETUFfRU5BQkxFICAgICAgICAgICAgICBCSVQoOSkgIC8qIDE6IGVuYWJsZSBETUEgdHJhbnNmZXIgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEX0RJU0FCTEVEICAoMCA8PCA1KSAvKiBpbnRlcnJ1cHQgZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEXzI1ICAgICAgICAoMSA8PCA1KSAvKiBpbnQgb24gYnVmZmVyID4yNSUgZnVsbCAqLworI2RlZmluZSBDSEFOTkVMX0lOVF9USFJFU0hPTERfNTAgICAgICAgICgyIDw8IDUpIC8qIGludCBvbiBidWZmZXIgPjUwJSBmdWxsICovCisjZGVmaW5lIENIQU5ORUxfSU5UX1RIUkVTSE9MRF83NSAgICAgICAgKDMgPDwgNSkgLyogaW50IG9uIGJ1ZmZlciA+NzUlIGZ1bGwgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEX0VNUFRZICAgICAoNCA8PCA1KSAvKiBpbnQgb24gYnVmZmVyIGVtcHR5ICovCisjZGVmaW5lIENIQU5ORUxfSU5UX1RIUkVTSE9MRF9OT1RfRU1QVFkgKDUgPDwgNSkgLyogaW50IG9uIGJ1ZmZlciAhZW1wdHkgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEX0ZVTEwgICAgICAoNiA8PCA1KSAvKiBpbnQgb24gYnVmZmVyIGVtcHR5ICovCisjZGVmaW5lIENIQU5ORUxfSU5UX1RIUkVTSE9MRF9OT1RfRlVMTCAgKDcgPDwgNSkgLyogaW50IG9uIGJ1ZmZlciAhZW1wdHkgKi8KKworI2RlZmluZSBDSEFOTkVMX1JJTkdfU0hJRlQgICAgICAgICAgICAgIDEyCisjZGVmaW5lIENIQU5ORUxfUklOR19TSVpFICAgICAgICAgICAgICAgKDEgPDwgQ0hBTk5FTF9SSU5HX1NISUZUKQorI2RlZmluZSBDSEFOTkVMX1JJTkdfTUFTSyAgICAgICAgICAgICAgIChDSEFOTkVMX1JJTkdfU0laRSAtIDEpCisKKyNkZWZpbmUgQ0hBTk5FTF9MRUZUX1NISUZUIDQwCisjZGVmaW5lIENIQU5ORUxfUklHSFRfU0hJRlQgOAorCitzdHJ1Y3Qgc25kX3NnaW8yYXVkaW9fY2hhbiB7CisJaW50IGlkeDsKKwlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbTsKKwlpbnQgcG9zOworCXNuZF9wY21fdWZyYW1lc190IHNpemU7CisJc3BpbmxvY2tfdCBsb2NrOworfTsKKworLyogZGVmaW5pdGlvbiBvZiB0aGUgY2hpcC1zcGVjaWZpYyByZWNvcmQgKi8KK3N0cnVjdCBzbmRfc2dpbzJhdWRpbyB7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkOworCisJLyogY29kZWMgKi8KKwlzdHJ1Y3Qgc25kX2FkMTg0MyBhZDE4NDM7CisJc3BpbmxvY2tfdCBhZDE4NDNfbG9jazsKKworCS8qIGNoYW5uZWxzICovCisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gY2hhbm5lbFszXTsKKworCS8qIHJlc291cmNlcyAqLworCXZvaWQgKnJpbmdfYmFzZTsKKwlkbWFfYWRkcl90IHJpbmdfYmFzZV9kbWE7Cit9OworCisvKiBBRDE4NDMgYWNjZXNzICovCisKKy8qCisgKiByZWFkX2FkMTg0M19yZWcgcmV0dXJucyB0aGUgY3VycmVudCBjb250ZW50cyBvZiBhIDE2IGJpdCBBRDE4NDMgcmVnaXN0ZXIuCisgKgorICogUmV0dXJucyB1bnNpZ25lZCByZWdpc3RlciB2YWx1ZSBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS4KKyAqLworc3RhdGljIGludCByZWFkX2FkMTg0M19yZWcodm9pZCAqcHJpdiwgaW50IHJlZykKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBwcml2OworCWludCB2YWw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5hZDE4NDNfbG9jaywgZmxhZ3MpOworCisJd3JpdGVxKChyZWcgPDwgQ09ERUNfQ09OVFJPTF9BRERSRVNTX1NISUZUKSB8CisJICAgICAgIENPREVDX0NPTlRST0xfUkVBRCwgJm1hY2UtPnBlcmlmLmF1ZGlvLmNvZGVjX2NvbnRyb2wpOworCXdtYigpOworCXZhbCA9IHJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jb2RlY19jb250cm9sKTsgLyogZmx1c2ggYnVzICovCisJdWRlbGF5KDIwMCk7CisKKwl2YWwgPSByZWFkcSgmbWFjZS0+cGVyaWYuYXVkaW8uY29kZWNfcmVhZCk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5hZDE4NDNfbG9jaywgZmxhZ3MpOworCXJldHVybiB2YWw7Cit9CisKKy8qCisgKiB3cml0ZV9hZDE4NDNfcmVnIHdyaXRlcyB0aGUgc3BlY2lmaWVkIHZhbHVlIHRvIGEgMTYgYml0IEFEMTg0MyByZWdpc3Rlci4KKyAqLworc3RhdGljIGludCB3cml0ZV9hZDE4NDNfcmVnKHZvaWQgKnByaXYsIGludCByZWcsIGludCB3b3JkKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHByaXY7CisJaW50IHZhbDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmFkMTg0M19sb2NrLCBmbGFncyk7CisKKwl3cml0ZXEoKHJlZyA8PCBDT0RFQ19DT05UUk9MX0FERFJFU1NfU0hJRlQpIHwKKwkgICAgICAgKHdvcmQgPDwgQ09ERUNfQ09OVFJPTF9XT1JEX1NISUZUKSwKKwkgICAgICAgJm1hY2UtPnBlcmlmLmF1ZGlvLmNvZGVjX2NvbnRyb2wpOworCXdtYigpOworCXZhbCA9IHJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jb2RlY19jb250cm9sKTsgLyogZmx1c2ggYnVzICovCisJdWRlbGF5KDIwMCk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5hZDE4NDNfbG9jaywgZmxhZ3MpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNnaW8yYXVkaW9fZ2Fpbl9pbmZvKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJICAgICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCisJdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxFTV9UWVBFX0lOVEVHRVI7CisJdWluZm8tPmNvdW50ID0gMjsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IGFkMTg0M19nZXRfZ2Fpbl9tYXgoJmNoaXAtPmFkMTg0MywKKwkJCQkJICAgICAoaW50KWtjb250cm9sLT5wcml2YXRlX3ZhbHVlKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZ2lvMmF1ZGlvX2dhaW5fZ2V0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJICAgICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgdm9sOworCisJdm9sID0gYWQxODQzX2dldF9nYWluKCZjaGlwLT5hZDE4NDMsIChpbnQpa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUpOworCisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSAodm9sID4+IDgpICYgMHhGRjsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSA9IHZvbCAmIDB4RkY7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZ2lvMmF1ZGlvX2dhaW5fcHV0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCBuZXd2b2wsIG9sZHZvbDsKKworCW9sZHZvbCA9IGFkMTg0M19nZXRfZ2FpbigmY2hpcC0+YWQxODQzLCBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSk7CisJbmV3dm9sID0gKHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdIDw8IDgpIHwKKwkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV07CisKKwluZXd2b2wgPSBhZDE4NDNfc2V0X2dhaW4oJmNoaXAtPmFkMTg0Mywga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUsCisJCW5ld3ZvbCk7CisKKwlyZXR1cm4gbmV3dm9sICE9IG9sZHZvbDsKK30KKworc3RhdGljIGludCBzZ2lvMmF1ZGlvX3NvdXJjZV9pbmZvKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJICAgICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCit7CisJc3RhdGljIGNvbnN0IGNoYXIgKnRleHRzWzNdID0geworCQkiQ2FtIE1pYyIsICJNaWMiLCAiTGluZSIKKwl9OworCXVpbmZvLT50eXBlID0gU05EUlZfQ1RMX0VMRU1fVFlQRV9FTlVNRVJBVEVEOworCXVpbmZvLT5jb3VudCA9IDE7CisJdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbXMgPSAzOworCWlmICh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtID49IDMpCisJCXVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW0gPSAxOworCXN0cmNweSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLAorCSAgICAgICB0ZXh0c1t1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtXSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2dpbzJhdWRpb19zb3VyY2VfZ2V0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJICAgICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKworCXVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0gPSBhZDE4NDNfZ2V0X3JlY3NyYygmY2hpcC0+YWQxODQzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZ2lvMmF1ZGlvX3NvdXJjZV9wdXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IG5ld3NyYywgb2xkc3JjOworCisJb2xkc3JjID0gYWQxODQzX2dldF9yZWNzcmMoJmNoaXAtPmFkMTg0Myk7CisJbmV3c3JjID0gYWQxODQzX3NldF9yZWNzcmMoJmNoaXAtPmFkMTg0MywKKwkJCQkgICB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdKTsKKworCXJldHVybiBuZXdzcmMgIT0gb2xkc3JjOworfQorCisvKiBkYWMxL3BjbTAgbWl4ZXIgY29udHJvbCAqLworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNnaW8yYXVkaW9fY3RybF9wY20wIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIlBDTSBQbGF5YmFjayBWb2x1bWUiLAorCS5pbmRleCAgICAgICAgICA9IDAsCisJLmFjY2VzcyAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSwKKwkucHJpdmF0ZV92YWx1ZSAgPSBBRDE4NDNfR0FJTl9QQ01fMCwKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9wdXQsCit9OworCisvKiBkYWMyL3BjbTEgbWl4ZXIgY29udHJvbCAqLworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNnaW8yYXVkaW9fY3RybF9wY20xIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIlBDTSBQbGF5YmFjayBWb2x1bWUiLAorCS5pbmRleCAgICAgICAgICA9IDEsCisJLmFjY2VzcyAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSwKKwkucHJpdmF0ZV92YWx1ZSAgPSBBRDE4NDNfR0FJTl9QQ01fMSwKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9wdXQsCit9OworCisvKiByZWNvcmQgbGV2ZWwgbWl4ZXIgY29udHJvbCAqLworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNnaW8yYXVkaW9fY3RybF9yZWNsZXZlbCBfX2RldmluaXRkYXRhID0geworCS5pZmFjZSAgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lICAgICAgICAgICA9ICJDYXB0dXJlIFZvbHVtZSIsCisJLmFjY2VzcyAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSwKKwkucHJpdmF0ZV92YWx1ZSAgPSBBRDE4NDNfR0FJTl9SRUNMRVYsCisJLmluZm8gICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX2luZm8sCisJLmdldCAgICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX2dldCwKKwkucHV0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fcHV0LAorfTsKKworLyogcmVjb3JkIGxldmVsIHNvdXJjZSBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX3JlY3NvdXJjZSBfX2RldmluaXRkYXRhID0geworCS5pZmFjZSAgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lICAgICAgICAgICA9ICJDYXB0dXJlIFNvdXJjZSIsCisJLmFjY2VzcyAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSwKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX3NvdXJjZV9pbmZvLAorCS5nZXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fc291cmNlX2dldCwKKwkucHV0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX3NvdXJjZV9wdXQsCit9OworCisvKiBsaW5lIG1peGVyIGNvbnRyb2wgKi8KK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBzZ2lvMmF1ZGlvX2N0cmxfbGluZSBfX2RldmluaXRkYXRhID0geworCS5pZmFjZSAgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lICAgICAgICAgICA9ICJMaW5lIFBsYXliYWNrIFZvbHVtZSIsCisJLmluZGV4ICAgICAgICAgID0gMCwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX0xJTkUsCisJLmluZm8gICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX2luZm8sCisJLmdldCAgICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX2dldCwKKwkucHV0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fcHV0LAorfTsKKworLyogY2QgbWl4ZXIgY29udHJvbCAqLworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNnaW8yYXVkaW9fY3RybF9jZCBfX2RldmluaXRkYXRhID0geworCS5pZmFjZSAgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lICAgICAgICAgICA9ICJMaW5lIFBsYXliYWNrIFZvbHVtZSIsCisJLmluZGV4ICAgICAgICAgID0gMSwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX0xJTkVfMiwKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9wdXQsCit9OworCisvKiBtaWMgbWl4ZXIgY29udHJvbCAqLworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNnaW8yYXVkaW9fY3RybF9taWMgX19kZXZpbml0ZGF0YSA9IHsKKwkuaWZhY2UgICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwKKwkubmFtZSAgICAgICAgICAgPSAiTWljIFBsYXliYWNrIFZvbHVtZSIsCisJLmFjY2VzcyAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSwKKwkucHJpdmF0ZV92YWx1ZSAgPSBBRDE4NDNfR0FJTl9NSUMsCisJLmluZm8gICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX2luZm8sCisJLmdldCAgICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX2dldCwKKwkucHV0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fcHV0LAorfTsKKworCitzdGF0aWMgaW50IF9fZGV2aW5pdCBzbmRfc2dpbzJhdWRpb19uZXdfbWl4ZXIoc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwKQoreworCWludCBlcnI7CisKKwllcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJnNnaW8yYXVkaW9fY3RybF9wY20wLCBjaGlwKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJnNnaW8yYXVkaW9fY3RybF9wY20xLCBjaGlwKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJnNnaW8yYXVkaW9fY3RybF9yZWNsZXZlbCwgY2hpcCkpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gc25kX2N0bF9hZGQoY2hpcC0+Y2FyZCwKKwkJCSAgc25kX2N0bF9uZXcxKCZzZ2lvMmF1ZGlvX2N0cmxfcmVjc291cmNlLCBjaGlwKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisJZXJyID0gc25kX2N0bF9hZGQoY2hpcC0+Y2FyZCwKKwkJCSAgc25kX2N0bF9uZXcxKCZzZ2lvMmF1ZGlvX2N0cmxfbGluZSwgY2hpcCkpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gc25kX2N0bF9hZGQoY2hpcC0+Y2FyZCwKKwkJCSAgc25kX2N0bF9uZXcxKCZzZ2lvMmF1ZGlvX2N0cmxfY2QsIGNoaXApKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHNuZF9jdGxfYWRkKGNoaXAtPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmc2dpbzJhdWRpb19jdHJsX21pYywgY2hpcCkpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIDA7Cit9CisKKy8qIGxvdy1sZXZlbCBhdWRpbyBpbnRlcmZhY2UgRE1BICovCisKKy8qIGdldCBkYXRhIG91dCBvZiBib3VuY2UgYnVmZmVyLCBjb3VudCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzIgKi8KKy8qIHJldHVybnMgMSBpZiBhIHBlcmlvZCBoYXMgZWxhcHNlZCAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19kbWFfcHVsbF9mcmFnKHN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCwKKwkJCQkJdW5zaWduZWQgaW50IGNoLCB1bnNpZ25lZCBpbnQgY291bnQpCit7CisJaW50IHJldDsKKwl1bnNpZ25lZCBsb25nIHNyY19iYXNlLCBzcmNfcG9zLCBkc3RfbWFzazsKKwl1bnNpZ25lZCBjaGFyICpkc3RfYmFzZTsKKwlpbnQgZHN0X3BvczsKKwl1NjQgKnNyYzsKKwlzMTYgKmRzdDsKKwl1NjQgeDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBjaGlwLT5jaGFubmVsW2NoXS5zdWJzdHJlYW0tPnJ1bnRpbWU7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+Y2hhbm5lbFtjaF0ubG9jaywgZmxhZ3MpOworCisJc3JjX2Jhc2UgPSAodW5zaWduZWQgbG9uZykgY2hpcC0+cmluZ19iYXNlIHwgKGNoIDw8IENIQU5ORUxfUklOR19TSElGVCk7CisJc3JjX3BvcyA9IHJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS5yZWFkX3B0cik7CisJZHN0X2Jhc2UgPSBydW50aW1lLT5kbWFfYXJlYTsKKwlkc3RfcG9zID0gY2hpcC0+Y2hhbm5lbFtjaF0ucG9zOworCWRzdF9tYXNrID0gZnJhbWVzX3RvX2J5dGVzKHJ1bnRpbWUsIHJ1bnRpbWUtPmJ1ZmZlcl9zaXplKSAtIDE7CisKKwkvKiBjaGVjayBpZiBhIHBlcmlvZCBoYXMgZWxhcHNlZCAqLworCWNoaXAtPmNoYW5uZWxbY2hdLnNpemUgKz0gKGNvdW50ID4+IDMpOyAvKiBpbiBmcmFtZXMgKi8KKwlyZXQgPSBjaGlwLT5jaGFubmVsW2NoXS5zaXplID49IHJ1bnRpbWUtPnBlcmlvZF9zaXplOworCWNoaXAtPmNoYW5uZWxbY2hdLnNpemUgJT0gcnVudGltZS0+cGVyaW9kX3NpemU7CisKKwl3aGlsZSAoY291bnQpIHsKKwkJc3JjID0gKHU2NCAqKShzcmNfYmFzZSArIHNyY19wb3MpOworCQlkc3QgPSAoczE2ICopKGRzdF9iYXNlICsgZHN0X3Bvcyk7CisKKwkJeCA9ICpzcmM7CisJCWRzdFswXSA9ICh4ID4+IENIQU5ORUxfTEVGVF9TSElGVCkgJiAweGZmZmY7CisJCWRzdFsxXSA9ICh4ID4+IENIQU5ORUxfUklHSFRfU0hJRlQpICYgMHhmZmZmOworCisJCXNyY19wb3MgPSAoc3JjX3BvcyArIHNpemVvZih1NjQpKSAmIENIQU5ORUxfUklOR19NQVNLOworCQlkc3RfcG9zID0gKGRzdF9wb3MgKyAyICogc2l6ZW9mKHMxNikpICYgZHN0X21hc2s7CisJCWNvdW50IC09IHNpemVvZih1NjQpOworCX0KKworCXdyaXRlcShzcmNfcG9zLCAmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaF0ucmVhZF9wdHIpOyAvKiBpbiBieXRlcyAqLworCWNoaXAtPmNoYW5uZWxbY2hdLnBvcyA9IGRzdF9wb3M7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5jaGFubmVsW2NoXS5sb2NrLCBmbGFncyk7CisJcmV0dXJuIHJldDsKK30KKworLyogcHV0IHNvbWUgRE1BIGRhdGEgaW4gYm91bmNlIGJ1ZmZlciwgY291bnQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyICovCisvKiByZXR1cm5zIDEgaWYgYSBwZXJpb2QgaGFzIGVsYXBzZWQgKi8KK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fZG1hX3B1c2hfZnJhZyhzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAsCisJCQkJCXVuc2lnbmVkIGludCBjaCwgdW5zaWduZWQgaW50IGNvdW50KQoreworCWludCByZXQ7CisJczY0IGwsIHI7CisJdW5zaWduZWQgbG9uZyBkc3RfYmFzZSwgZHN0X3Bvcywgc3JjX21hc2s7CisJdW5zaWduZWQgY2hhciAqc3JjX2Jhc2U7CisJaW50IHNyY19wb3M7CisJdTY0ICpkc3Q7CisJczE2ICpzcmM7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gY2hpcC0+Y2hhbm5lbFtjaF0uc3Vic3RyZWFtLT5ydW50aW1lOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmNoYW5uZWxbY2hdLmxvY2ssIGZsYWdzKTsKKworCWRzdF9iYXNlID0gKHVuc2lnbmVkIGxvbmcpY2hpcC0+cmluZ19iYXNlIHwgKGNoIDw8IENIQU5ORUxfUklOR19TSElGVCk7CisJZHN0X3BvcyA9IHJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS53cml0ZV9wdHIpOworCXNyY19iYXNlID0gcnVudGltZS0+ZG1hX2FyZWE7CisJc3JjX3BvcyA9IGNoaXAtPmNoYW5uZWxbY2hdLnBvczsKKwlzcmNfbWFzayA9IGZyYW1lc190b19ieXRlcyhydW50aW1lLCBydW50aW1lLT5idWZmZXJfc2l6ZSkgLSAxOworCisJLyogY2hlY2sgaWYgYSBwZXJpb2QgaGFzIGVsYXBzZWQgKi8KKwljaGlwLT5jaGFubmVsW2NoXS5zaXplICs9IChjb3VudCA+PiAzKTsgLyogaW4gZnJhbWVzICovCisJcmV0ID0gY2hpcC0+Y2hhbm5lbFtjaF0uc2l6ZSA+PSBydW50aW1lLT5wZXJpb2Rfc2l6ZTsKKwljaGlwLT5jaGFubmVsW2NoXS5zaXplICU9IHJ1bnRpbWUtPnBlcmlvZF9zaXplOworCisJd2hpbGUgKGNvdW50KSB7CisJCXNyYyA9IChzMTYgKikoc3JjX2Jhc2UgKyBzcmNfcG9zKTsKKwkJZHN0ID0gKHU2NCAqKShkc3RfYmFzZSArIGRzdF9wb3MpOworCisJCWwgPSBzcmNbMF07IC8qIHNpZ24gZXh0ZW5kICovCisJCXIgPSBzcmNbMV07IC8qIHNpZ24gZXh0ZW5kICovCisKKwkJKmRzdCA9ICgobCAmIDB4MDBmZmZmZmYpIDw8IENIQU5ORUxfTEVGVF9TSElGVCkgfAorCQkJKChyICYgMHgwMGZmZmZmZikgPDwgQ0hBTk5FTF9SSUdIVF9TSElGVCk7CisKKwkJZHN0X3BvcyA9IChkc3RfcG9zICsgc2l6ZW9mKHU2NCkpICYgQ0hBTk5FTF9SSU5HX01BU0s7CisJCXNyY19wb3MgPSAoc3JjX3BvcyArIDIgKiBzaXplb2YoczE2KSkgJiBzcmNfbWFzazsKKwkJY291bnQgLT0gc2l6ZW9mKHU2NCk7CisJfQorCisJd3JpdGVxKGRzdF9wb3MsICZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS53cml0ZV9wdHIpOyAvKiBpbiBieXRlcyAqLworCWNoaXAtPmNoYW5uZWxbY2hdLnBvcyA9IHNyY19wb3M7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5jaGFubmVsW2NoXS5sb2NrLCBmbGFncyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19kbWFfc3RhcnQoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuICpjaGFuID0gc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGE7CisJaW50IGNoID0gY2hhbi0+aWR4OworCisJLyogcmVzZXQgRE1BIGNoYW5uZWwgKi8KKwl3cml0ZXEoQ0hBTk5FTF9DT05UUk9MX1JFU0VULCAmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaF0uY29udHJvbCk7CisJdWRlbGF5KDEwKTsKKwl3cml0ZXEoMCwgJm1hY2UtPnBlcmlmLmF1ZGlvLmNoYW5bY2hdLmNvbnRyb2wpOworCisJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spIHsKKwkJLyogcHVzaCBhIGZ1bGwgYnVmZmVyICovCisJCXNuZF9zZ2lvMmF1ZGlvX2RtYV9wdXNoX2ZyYWcoY2hpcCwgY2gsIENIQU5ORUxfUklOR19TSVpFIC0gMzIpOworCX0KKwkvKiBzZXQgRE1BIHRvIHdha2Ugb24gNTAlIGVtcHR5IGFuZCBlbmFibGUgaW50ZXJydXB0ICovCisJd3JpdGVxKENIQU5ORUxfRE1BX0VOQUJMRSB8IENIQU5ORUxfSU5UX1RIUkVTSE9MRF81MCwKKwkgICAgICAgJm1hY2UtPnBlcmlmLmF1ZGlvLmNoYW5bY2hdLmNvbnRyb2wpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX2RtYV9zdG9wKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuICpjaGFuID0gc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGE7CisKKwl3cml0ZXEoMCwgJm1hY2UtPnBlcmlmLmF1ZGlvLmNoYW5bY2hhbi0+aWR4XS5jb250cm9sKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlycXJldHVybl90IHNuZF9zZ2lvMmF1ZGlvX2RtYV9pbl9pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuICpjaGFuID0gZGV2X2lkOworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcDsKKwlpbnQgY291bnQsIGNoOworCisJc3Vic3RyZWFtID0gY2hhbi0+c3Vic3RyZWFtOworCWNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJY2ggPSBjaGFuLT5pZHg7CisKKwkvKiBlbXB0eSB0aGUgcmluZyAqLworCWNvdW50ID0gQ0hBTk5FTF9SSU5HX1NJWkUgLQorCQlyZWFkcSgmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaF0uZGVwdGgpIC0gMzI7CisJaWYgKHNuZF9zZ2lvMmF1ZGlvX2RtYV9wdWxsX2ZyYWcoY2hpcCwgY2gsIGNvdW50KSkKKwkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZChzdWJzdHJlYW0pOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3Qgc25kX3NnaW8yYXVkaW9fZG1hX291dF9pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuICpjaGFuID0gZGV2X2lkOworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcDsKKwlpbnQgY291bnQsIGNoOworCisJc3Vic3RyZWFtID0gY2hhbi0+c3Vic3RyZWFtOworCWNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJY2ggPSBjaGFuLT5pZHg7CisJLyogZmlsbCB0aGUgcmluZyAqLworCWNvdW50ID0gQ0hBTk5FTF9SSU5HX1NJWkUgLQorCQlyZWFkcSgmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaF0uZGVwdGgpIC0gMzI7CisJaWYgKHNuZF9zZ2lvMmF1ZGlvX2RtYV9wdXNoX2ZyYWcoY2hpcCwgY2gsIGNvdW50KSkKKwkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZChzdWJzdHJlYW0pOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3Qgc25kX3NnaW8yYXVkaW9fZXJyb3JfaXNyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW9fY2hhbiAqY2hhbiA9IGRldl9pZDsKKwlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbTsKKworCXN1YnN0cmVhbSA9IGNoYW4tPnN1YnN0cmVhbTsKKwlzbmRfc2dpbzJhdWRpb19kbWFfc3RvcChzdWJzdHJlYW0pOworCXNuZF9zZ2lvMmF1ZGlvX2RtYV9zdGFydChzdWJzdHJlYW0pOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworLyogUENNIHBhcnQgKi8KKy8qIFBDTSBoYXJkd2FyZSBkZWZpbml0aW9uICovCitzdGF0aWMgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgc25kX3NnaW8yYXVkaW9fcGNtX2h3ID0geworCS5pbmZvID0gKFNORFJWX1BDTV9JTkZPX01NQVAgfAorCQkgU05EUlZfUENNX0lORk9fTU1BUF9WQUxJRCB8CisJCSBTTkRSVl9QQ01fSU5GT19JTlRFUkxFQVZFRCB8CisJCSBTTkRSVl9QQ01fSU5GT19CTE9DS19UUkFOU0ZFUiksCisJLmZvcm1hdHMgPSAgICAgICAgICBTTkRSVl9QQ01fRk1UQklUX1MxNl9CRSwKKwkucmF0ZXMgPSAgICAgICAgICAgIFNORFJWX1BDTV9SQVRFXzgwMDBfNDgwMDAsCisJLnJhdGVfbWluID0gICAgICAgICA4MDAwLAorCS5yYXRlX21heCA9ICAgICAgICAgNDgwMDAsCisJLmNoYW5uZWxzX21pbiA9ICAgICAyLAorCS5jaGFubmVsc19tYXggPSAgICAgMiwKKwkuYnVmZmVyX2J5dGVzX21heCA9IDY1NTM2LAorCS5wZXJpb2RfYnl0ZXNfbWluID0gMzI3NjgsCisJLnBlcmlvZF9ieXRlc19tYXggPSA2NTUzNiwKKwkucGVyaW9kc19taW4gPSAgICAgIDEsCisJLnBlcmlvZHNfbWF4ID0gICAgICAxMDI0LAorfTsKKworLyogUENNIHBsYXliYWNrIG9wZW4gY2FsbGJhY2sgKi8KK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fcGxheWJhY2sxX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisKKwlydW50aW1lLT5odyA9IHNuZF9zZ2lvMmF1ZGlvX3BjbV9odzsKKwlydW50aW1lLT5wcml2YXRlX2RhdGEgPSAmY2hpcC0+Y2hhbm5lbFsxXTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19wbGF5YmFjazJfb3BlbihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKworCXJ1bnRpbWUtPmh3ID0gc25kX3NnaW8yYXVkaW9fcGNtX2h3OworCXJ1bnRpbWUtPnByaXZhdGVfZGF0YSA9ICZjaGlwLT5jaGFubmVsWzJdOworCXJldHVybiAwOworfQorCisvKiBQQ00gY2FwdHVyZSBvcGVuIGNhbGxiYWNrICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX2NhcHR1cmVfb3BlbihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKworCXJ1bnRpbWUtPmh3ID0gc25kX3NnaW8yYXVkaW9fcGNtX2h3OworCXJ1bnRpbWUtPnByaXZhdGVfZGF0YSA9ICZjaGlwLT5jaGFubmVsWzBdOworCXJldHVybiAwOworfQorCisvKiBQQ00gY2xvc2UgY2FsbGJhY2sgKi8KK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fcGNtX2Nsb3NlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisKKwlydW50aW1lLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCXJldHVybiAwOworfQorCisKKy8qIGh3X3BhcmFtcyBjYWxsYmFjayAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19wY21faHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCQlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKmh3X3BhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCWludCBzaXplID0gcGFyYW1zX2J1ZmZlcl9ieXRlcyhod19wYXJhbXMpOworCisJLyogYWxsb2MgdmlydHVhbCAnZG1hJyBhcmVhICovCisJaWYgKHJ1bnRpbWUtPmRtYV9hcmVhKQorCQl2ZnJlZShydW50aW1lLT5kbWFfYXJlYSk7CisJcnVudGltZS0+ZG1hX2FyZWEgPSB2bWFsbG9jKHNpemUpOworCWlmIChydW50aW1lLT5kbWFfYXJlYSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKwlydW50aW1lLT5kbWFfYnl0ZXMgPSBzaXplOworCXJldHVybiAwOworfQorCisvKiBod19mcmVlIGNhbGxiYWNrICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19mcmVlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCWlmIChzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9hcmVhKQorCQl2ZnJlZShzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9hcmVhKTsKKwlzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9hcmVhID0gTlVMTDsKKwlyZXR1cm4gMDsKK30KKworLyogcHJlcGFyZSBjYWxsYmFjayAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19wY21fcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW9fY2hhbiAqY2hhbiA9IHN1YnN0cmVhbS0+cnVudGltZS0+cHJpdmF0ZV9kYXRhOworCWludCBjaCA9IGNoYW4tPmlkeDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmNoYW5uZWxbY2hdLmxvY2ssIGZsYWdzKTsKKworCS8qIFNldHVwIHRoZSBwc2V1ZG8tZG1hIHRyYW5zZmVyIHBvaW50ZXJzLiAgKi8KKwljaGlwLT5jaGFubmVsW2NoXS5wb3MgPSAwOworCWNoaXAtPmNoYW5uZWxbY2hdLnNpemUgPSAwOworCWNoaXAtPmNoYW5uZWxbY2hdLnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKworCS8qIHNldCBBRDE4NDMgZm9ybWF0ICovCisJLyogaGFyZHdhcmUgZm9ybWF0IGlzIGFsd2F5cyBTMTZfTEUgKi8KKwlzd2l0Y2ggKHN1YnN0cmVhbS0+c3RyZWFtKSB7CisJY2FzZSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLOgorCQlhZDE4NDNfc2V0dXBfZGFjKCZjaGlwLT5hZDE4NDMsCisJCQkJIGNoIC0gMSwKKwkJCQkgcnVudGltZS0+cmF0ZSwKKwkJCQkgU05EUlZfUENNX0ZPUk1BVF9TMTZfTEUsCisJCQkJIHJ1bnRpbWUtPmNoYW5uZWxzKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fU1RSRUFNX0NBUFRVUkU6CisJCWFkMTg0M19zZXR1cF9hZGMoJmNoaXAtPmFkMTg0MywKKwkJCQkgcnVudGltZS0+cmF0ZSwKKwkJCQkgU05EUlZfUENNX0ZPUk1BVF9TMTZfTEUsCisJCQkJIHJ1bnRpbWUtPmNoYW5uZWxzKTsKKwkJYnJlYWs7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmNoYW5uZWxbY2hdLmxvY2ssIGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworLyogdHJpZ2dlciBjYWxsYmFjayAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19wY21fdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkgICAgICBpbnQgY21kKQoreworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwkJLyogc3RhcnQgdGhlIFBDTSBlbmdpbmUgKi8KKwkJc25kX3NnaW8yYXVkaW9fZG1hX3N0YXJ0KHN1YnN0cmVhbSk7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKKwkJLyogc3RvcCB0aGUgUENNIGVuZ2luZSAqLworCQlzbmRfc2dpbzJhdWRpb19kbWFfc3RvcChzdWJzdHJlYW0pOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qIHBvaW50ZXIgY2FsbGJhY2sgKi8KK3N0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdAorc25kX3NnaW8yYXVkaW9fcGNtX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuICpjaGFuID0gc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGE7CisKKwkvKiBnZXQgdGhlIGN1cnJlbnQgaGFyZHdhcmUgcG9pbnRlciAqLworCXJldHVybiBieXRlc190b19mcmFtZXMoc3Vic3RyZWFtLT5ydW50aW1lLAorCQkJICAgICAgIGNoaXAtPmNoYW5uZWxbY2hhbi0+aWR4XS5wb3MpOworfQorCisvKiBnZXQgdGhlIHBoeXNpY2FsIHBhZ2UgcG9pbnRlciBvbiB0aGUgZ2l2ZW4gb2Zmc2V0ICovCitzdGF0aWMgc3RydWN0IHBhZ2UgKnNuZF9zZ2lvMmF1ZGlvX3BhZ2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJCXVuc2lnbmVkIGxvbmcgb2Zmc2V0KQoreworCXJldHVybiB2bWFsbG9jX3RvX3BhZ2Uoc3Vic3RyZWFtLT5ydW50aW1lLT5kbWFfYXJlYSArIG9mZnNldCk7Cit9CisKKy8qIG9wZXJhdG9ycyAqLworc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBzbmRfc2dpbzJhdWRpb19wbGF5YmFjazFfb3BzID0geworCS5vcGVuID0gICAgICAgIHNuZF9zZ2lvMmF1ZGlvX3BsYXliYWNrMV9vcGVuLAorCS5jbG9zZSA9ICAgICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9jbG9zZSwKKwkuaW9jdGwgPSAgICAgICBzbmRfcGNtX2xpYl9pb2N0bCwKKwkuaHdfcGFyYW1zID0gICBzbmRfc2dpbzJhdWRpb19wY21faHdfcGFyYW1zLAorCS5od19mcmVlID0gICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19mcmVlLAorCS5wcmVwYXJlID0gICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9wcmVwYXJlLAorCS50cmlnZ2VyID0gICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV90cmlnZ2VyLAorCS5wb2ludGVyID0gICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9wb2ludGVyLAorCS5wYWdlID0gICAgICAgIHNuZF9zZ2lvMmF1ZGlvX3BhZ2UsCit9OworCitzdGF0aWMgc3RydWN0IHNuZF9wY21fb3BzIHNuZF9zZ2lvMmF1ZGlvX3BsYXliYWNrMl9vcHMgPSB7CisJLm9wZW4gPSAgICAgICAgc25kX3NnaW8yYXVkaW9fcGxheWJhY2syX29wZW4sCisJLmNsb3NlID0gICAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2Nsb3NlLAorCS5pb2N0bCA9ICAgICAgIHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMgPSAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2h3X2ZyZWUsCisJLnByZXBhcmUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3ByZXBhcmUsCisJLnRyaWdnZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3RyaWdnZXIsCisJLnBvaW50ZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3BvaW50ZXIsCisJLnBhZ2UgPSAgICAgICAgc25kX3NnaW8yYXVkaW9fcGFnZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9vcHMgc25kX3NnaW8yYXVkaW9fY2FwdHVyZV9vcHMgPSB7CisJLm9wZW4gPSAgICAgICAgc25kX3NnaW8yYXVkaW9fY2FwdHVyZV9vcGVuLAorCS5jbG9zZSA9ICAgICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9jbG9zZSwKKwkuaW9jdGwgPSAgICAgICBzbmRfcGNtX2xpYl9pb2N0bCwKKwkuaHdfcGFyYW1zID0gICBzbmRfc2dpbzJhdWRpb19wY21faHdfcGFyYW1zLAorCS5od19mcmVlID0gICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19mcmVlLAorCS5wcmVwYXJlID0gICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9wcmVwYXJlLAorCS50cmlnZ2VyID0gICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV90cmlnZ2VyLAorCS5wb2ludGVyID0gICAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9wb2ludGVyLAorCS5wYWdlID0gICAgICAgIHNuZF9zZ2lvMmF1ZGlvX3BhZ2UsCit9OworCisvKgorICogIGRlZmluaXRpb25zIG9mIGNhcHR1cmUgYXJlIG9taXR0ZWQgaGVyZS4uLgorICovCisKKy8qIGNyZWF0ZSBhIHBjbSBkZXZpY2UgKi8KK3N0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9zZ2lvMmF1ZGlvX25ld19wY20oc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwKQoreworCXN0cnVjdCBzbmRfcGNtICpwY207CisJaW50IGVycjsKKworCS8qIGNyZWF0ZSBmaXJzdCBwY20gZGV2aWNlIHdpdGggb25lIG91dHB1dHMgYW5kIG9uZSBpbnB1dCAqLworCWVyciA9IHNuZF9wY21fbmV3KGNoaXAtPmNhcmQsICJTR0kgTzIgQXVkaW8iLCAwLCAxLCAxLCAmcGNtKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCXBjbS0+cHJpdmF0ZV9kYXRhID0gY2hpcDsKKwlzdHJjcHkocGNtLT5uYW1lLCAiU0dJIE8yIERBQzEiKTsKKworCS8qIHNldCBvcGVyYXRvcnMgKi8KKwlzbmRfcGNtX3NldF9vcHMocGNtLCBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLLAorCQkJJnNuZF9zZ2lvMmF1ZGlvX3BsYXliYWNrMV9vcHMpOworCXNuZF9wY21fc2V0X29wcyhwY20sIFNORFJWX1BDTV9TVFJFQU1fQ0FQVFVSRSwKKwkJCSZzbmRfc2dpbzJhdWRpb19jYXB0dXJlX29wcyk7CisKKwkvKiBjcmVhdGUgc2Vjb25kICBwY20gZGV2aWNlIHdpdGggb25lIG91dHB1dHMgYW5kIG5vIGlucHV0ICovCisJZXJyID0gc25kX3BjbV9uZXcoY2hpcC0+Y2FyZCwgIlNHSSBPMiBBdWRpbyIsIDEsIDEsIDAsICZwY20pOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJcGNtLT5wcml2YXRlX2RhdGEgPSBjaGlwOworCXN0cmNweShwY20tPm5hbWUsICJTR0kgTzIgREFDMiIpOworCisJLyogc2V0IG9wZXJhdG9ycyAqLworCXNuZF9wY21fc2V0X29wcyhwY20sIFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0ssCisJCQkmc25kX3NnaW8yYXVkaW9fcGxheWJhY2syX29wcyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCB7CisJaW50IGlkeDsKKwlpbnQgaXJxOworCWlycXJldHVybl90ICgqaXNyKShpbnQsIHZvaWQgKik7CisJY29uc3QgY2hhciAqZGVzYzsKK30gc25kX3NnaW8yX2lzcl90YWJsZVtdID0geworCXsKKwkJLmlkeCA9IDAsCisJCS5pcnEgPSBNQUNFSVNBX0FVRElPMV9ETUFUX0lSUSwKKwkJLmlzciA9IHNuZF9zZ2lvMmF1ZGlvX2RtYV9pbl9pc3IsCisJCS5kZXNjID0gIkNhcHR1cmUgRE1BIENoYW5uZWwgMCIKKwl9LCB7CisJCS5pZHggPSAwLAorCQkuaXJxID0gTUFDRUlTQV9BVURJTzFfT0ZfSVJRLAorCQkuaXNyID0gc25kX3NnaW8yYXVkaW9fZXJyb3JfaXNyLAorCQkuZGVzYyA9ICJDYXB0dXJlIE92ZXJmbG93IgorCX0sIHsKKwkJLmlkeCA9IDEsCisJCS5pcnEgPSBNQUNFSVNBX0FVRElPMl9ETUFUX0lSUSwKKwkJLmlzciA9IHNuZF9zZ2lvMmF1ZGlvX2RtYV9vdXRfaXNyLAorCQkuZGVzYyA9ICJQbGF5YmFjayBETUEgQ2hhbm5lbCAxIgorCX0sIHsKKwkJLmlkeCA9IDEsCisJCS5pcnEgPSBNQUNFSVNBX0FVRElPMl9NRVJSX0lSUSwKKwkJLmlzciA9IHNuZF9zZ2lvMmF1ZGlvX2Vycm9yX2lzciwKKwkJLmRlc2MgPSAiTWVtb3J5IEVycm9yIENoYW5uZWwgMSIKKwl9LCB7CisJCS5pZHggPSAyLAorCQkuaXJxID0gTUFDRUlTQV9BVURJTzNfRE1BVF9JUlEsCisJCS5pc3IgPSBzbmRfc2dpbzJhdWRpb19kbWFfb3V0X2lzciwKKwkJLmRlc2MgPSAiUGxheWJhY2sgRE1BIENoYW5uZWwgMiIKKwl9LCB7CisJCS5pZHggPSAyLAorCQkuaXJxID0gTUFDRUlTQV9BVURJTzNfTUVSUl9JUlEsCisJCS5pc3IgPSBzbmRfc2dpbzJhdWRpb19lcnJvcl9pc3IsCisJCS5kZXNjID0gIk1lbW9yeSBFcnJvciBDaGFubmVsIDIiCisJfQorfTsKKworLyogQUxTQSBkcml2ZXIgKi8KKworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19mcmVlKHN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCkKK3sKKwlpbnQgaTsKKworCS8qIHJlc2V0IGludGVyZmFjZSAqLworCXdyaXRlcShBVURJT19DT05UUk9MX1JFU0VULCAmbWFjZS0+cGVyaWYuYXVkaW8uY29udHJvbCk7CisJdWRlbGF5KDEpOworCXdyaXRlcSgwLCAmbWFjZS0+cGVyaWYuYXVkaW8uY29udHJvbCk7CisKKwkvKiByZWxlYXNlIElSUSdzICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc25kX3NnaW8yX2lzcl90YWJsZSk7IGkrKykKKwkJZnJlZV9pcnEoc25kX3NnaW8yX2lzcl90YWJsZVtpXS5pcnEsCisJCQkgJmNoaXAtPmNoYW5uZWxbc25kX3NnaW8yX2lzcl90YWJsZVtpXS5pZHhdKTsKKworCWRtYV9mcmVlX2NvaGVyZW50KE5VTEwsIE1BQ0VJU0FfUklOR0JVRkZFUlNfU0laRSwKKwkJCSAgY2hpcC0+cmluZ19iYXNlLCBjaGlwLT5yaW5nX2Jhc2VfZG1hKTsKKworCS8qIHJlbGVhc2UgY2FyZCBkYXRhICovCisJa2ZyZWUoY2hpcCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fZGV2X2ZyZWUoc3RydWN0IHNuZF9kZXZpY2UgKmRldmljZSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBkZXZpY2UtPmRldmljZV9kYXRhOworCisJcmV0dXJuIHNuZF9zZ2lvMmF1ZGlvX2ZyZWUoY2hpcCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX2RldmljZV9vcHMgb3BzID0geworCS5kZXZfZnJlZSA9IHNuZF9zZ2lvMmF1ZGlvX2Rldl9mcmVlLAorfTsKKworc3RhdGljIGludCBfX2RldmluaXQgc25kX3NnaW8yYXVkaW9fY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKKwkJCQkJICAgc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICoqcmNoaXApCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwOworCWludCBpLCBlcnI7CisKKwkqcmNoaXAgPSBOVUxMOworCisJLyogY2hlY2sgaWYgYSBjb2RlYyBpcyBhdHRhY2hlZCB0byB0aGUgaW50ZXJmYWNlICovCisJLyogKEF1ZGlvIG9yIEF1ZGlvL1ZpZGVvIGJvYXJkIHByZXNlbnQpICovCisJaWYgKCEocmVhZHEoJm1hY2UtPnBlcmlmLmF1ZGlvLmNvbnRyb2wpICYgQVVESU9fQ09OVFJPTF9DT0RFQ19QUkVTRU5UKSkKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwljaGlwID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zZ2lvMmF1ZGlvKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGNoaXAgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwljaGlwLT5jYXJkID0gY2FyZDsKKworCWNoaXAtPnJpbmdfYmFzZSA9IGRtYV9hbGxvY19jb2hlcmVudChOVUxMLCBNQUNFSVNBX1JJTkdCVUZGRVJTX1NJWkUsCisJCQkJCSAgICAgJmNoaXAtPnJpbmdfYmFzZV9kbWEsIEdGUF9VU0VSKTsKKwlpZiAoY2hpcC0+cmluZ19iYXNlID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSCisJCSAgICAgICAic2dpbzJhdWRpbzogY291bGQgbm90IGFsbG9jYXRlIHJpbmcgYnVmZmVyc1xuIik7CisJCWtmcmVlKGNoaXApOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlzcGluX2xvY2tfaW5pdCgmY2hpcC0+YWQxODQzX2xvY2spOworCisJLyogaW5pdGlhbGl6ZSBjaGFubmVscyAqLworCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKwkJc3Bpbl9sb2NrX2luaXQoJmNoaXAtPmNoYW5uZWxbaV0ubG9jayk7CisJCWNoaXAtPmNoYW5uZWxbaV0uaWR4ID0gaTsKKwl9CisKKwkvKiBhbGxvY2F0ZSBJUlFzICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc25kX3NnaW8yX2lzcl90YWJsZSk7IGkrKykgeworCQlpZiAocmVxdWVzdF9pcnEoc25kX3NnaW8yX2lzcl90YWJsZVtpXS5pcnEsCisJCQkJc25kX3NnaW8yX2lzcl90YWJsZVtpXS5pc3IsCisJCQkJMCwKKwkJCQlzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmRlc2MsCisJCQkJJmNoaXAtPmNoYW5uZWxbc25kX3NnaW8yX2lzcl90YWJsZVtpXS5pZHhdKSkgeworCQkJc25kX3NnaW8yYXVkaW9fZnJlZShjaGlwKTsKKwkJCXByaW50ayhLRVJOX0VSUiAic2dpbzJhdWRpbzogY2Fubm90IGFsbG9jYXRlIGlycSAlZFxuIiwKKwkJCSAgICAgICBzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlycSk7CisJCQlyZXR1cm4gLUVCVVNZOworCQl9CisJfQorCisJLyogcmVzZXQgdGhlIGludGVyZmFjZSAqLworCXdyaXRlcShBVURJT19DT05UUk9MX1JFU0VULCAmbWFjZS0+cGVyaWYuYXVkaW8uY29udHJvbCk7CisJdWRlbGF5KDEpOworCXdyaXRlcSgwLCAmbWFjZS0+cGVyaWYuYXVkaW8uY29udHJvbCk7CisJbXNsZWVwX2ludGVycnVwdGlibGUoMSk7IC8qIGdpdmUgdGltZSB0byByZWNvdmVyICovCisKKwkvKiBzZXQgcmluZyBiYXNlICovCisJd3JpdGVxKGNoaXAtPnJpbmdfYmFzZV9kbWEsICZtYWNlLT5wZXJpZi5jdHJsLnJpbmdiYXNlKTsKKworCS8qIGF0dGFjaCB0aGUgQUQxODQzIGNvZGVjICovCisJY2hpcC0+YWQxODQzLnJlYWQgPSByZWFkX2FkMTg0M19yZWc7CisJY2hpcC0+YWQxODQzLndyaXRlID0gd3JpdGVfYWQxODQzX3JlZzsKKwljaGlwLT5hZDE4NDMuY2hpcCA9IGNoaXA7CisKKwkvKiBpbml0aWFsaXplIHRoZSBBRDE4NDMgY29kZWMgKi8KKwllcnIgPSBhZDE4NDNfaW5pdCgmY2hpcC0+YWQxODQzKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfc2dpbzJhdWRpb19mcmVlKGNoaXApOworCQlyZXR1cm4gZXJyOworCX0KKworCWVyciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9MT1dMRVZFTCwgY2hpcCwgJm9wcyk7CisJaWYgKGVyciA8IDApIHsKKwkJc25kX3NnaW8yYXVkaW9fZnJlZShjaGlwKTsKKwkJcmV0dXJuIGVycjsKKwl9CisJKnJjaGlwID0gY2hpcDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2RldmluaXQgc25kX3NnaW8yYXVkaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwOworCWludCBlcnI7CisKKwljYXJkID0gc25kX2NhcmRfbmV3KGluZGV4LCBpZCwgVEhJU19NT0RVTEUsIDApOworCWlmIChjYXJkID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJZXJyID0gc25kX3NnaW8yYXVkaW9fY3JlYXRlKGNhcmQsICZjaGlwKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOworCQlyZXR1cm4gZXJyOworCX0KKwlzbmRfY2FyZF9zZXRfZGV2KGNhcmQsICZwZGV2LT5kZXYpOworCisJZXJyID0gc25kX3NnaW8yYXVkaW9fbmV3X3BjbShjaGlwKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOworCQlyZXR1cm4gZXJyOworCX0KKwllcnIgPSBzbmRfc2dpbzJhdWRpb19uZXdfbWl4ZXIoY2hpcCk7CisJaWYgKGVyciA8IDApIHsKKwkJc25kX2NhcmRfZnJlZShjYXJkKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwlzdHJjcHkoY2FyZC0+ZHJpdmVyLCAiU0dJIE8yIEF1ZGlvIik7CisJc3RyY3B5KGNhcmQtPnNob3J0bmFtZSwgIlNHSSBPMiBBdWRpbyIpOworCXNwcmludGYoY2FyZC0+bG9uZ25hbWUsICIlcyBpcnEgJWktJWkiLAorCQljYXJkLT5zaG9ydG5hbWUsCisJCU1BQ0VJU0FfQVVESU8xX0RNQVRfSVJRLAorCQlNQUNFSVNBX0FVRElPM19NRVJSX0lSUSk7CisKKwllcnIgPSBzbmRfY2FyZF9yZWdpc3RlcihjYXJkKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOworCQlyZXR1cm4gZXJyOworCX0KKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBjYXJkKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2V4aXQgc25kX3NnaW8yYXVkaW9fcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlzbmRfY2FyZF9mcmVlKGNhcmQpOworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzZ2lvMmF1ZGlvX2RyaXZlciA9IHsKKwkucHJvYmUJPSBzbmRfc2dpbzJhdWRpb19wcm9iZSwKKwkucmVtb3ZlCT0gX19kZXZleGl0X3Aoc25kX3NnaW8yYXVkaW9fcmVtb3ZlKSwKKwkuZHJpdmVyID0geworCQkubmFtZQk9ICJzZ2lvMmF1ZGlvIiwKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJfQorfTsKKworc3RhdGljIGludCBfX2luaXQgYWxzYV9jYXJkX3NnaW8yYXVkaW9faW5pdCh2b2lkKQoreworCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnNnaW8yYXVkaW9fZHJpdmVyKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGFsc2FfY2FyZF9zZ2lvMmF1ZGlvX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3Rlcigmc2dpbzJhdWRpb19kcml2ZXIpOworfQorCittb2R1bGVfaW5pdChhbHNhX2NhcmRfc2dpbzJhdWRpb19pbml0KQorbW9kdWxlX2V4aXQoYWxzYV9jYXJkX3NnaW8yYXVkaW9fZXhpdCkKZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9LY29uZmlnIGIvc291bmQvb3NzL0tjb25maWcKaW5kZXggM2JlMmRjMS4uMzM5NDAxMyAxMDA2NDQKLS0tIGEvc291bmQvb3NzL0tjb25maWcKKysrIGIvc291bmQvb3NzL0tjb25maWcKQEAgLTcsNyArNyw3IEBACiAKIGNvbmZpZyBTT1VORF9CQ01fQ1M0Mjk3QQogCXRyaXN0YXRlICJDcnlzdGFsIFNvdW5kIENTNDI5N2EgKGZvciBTd2FybSkiCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiBTSUJZVEVfU1dBUk0KKwlkZXBlbmRzIG9uIFNJQllURV9TV0FSTQogCWhlbHAKIAkgIFRoZSBCQ005MTI1MEEgaGFzIGEgQ3J5c3RhbCBDUzQyOTdhIG9uIHN5bmNocm9ub3VzIHNlcmlhbAogCSAgcG9ydCBCIChpbiBhZGRpdGlvbiB0byB0aGUgREItOSBzZXJpYWwgcG9ydCkuICBTYXkgWSBvciBNCkBAIC0xNyw3ICsxNyw3IEBACiAKIGNvbmZpZyBTT1VORF9WV1NORAogCXRyaXN0YXRlICJTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIFNvdW5kIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgWDg2X1ZJU1dTCisJZGVwZW5kcyBvbiBYODZfVklTV1MKIAloZWxwCiAJICBTYXkgWSBvciBNIGlmIHlvdSBoYXZlIGFuIFNHSSBWaXN1YWwgV29ya3N0YXRpb24gYW5kIHlvdSB3YW50IHRvIGJlCiAJICBhYmxlIHRvIHVzZSBpdHMgb24tYm9hcmQgYXVkaW8uICBSZWFkCkBAIC0yNiwxOSArMjYsMTggQEAKIAogY29uZmlnIFNPVU5EX0hBTDIKIAl0cmlzdGF0ZSAiU0dJIEhBTDIgc291bmQgKEVYUEVSSU1FTlRBTCkiCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiBTR0lfSVAyMiAmJiBFWFBFUklNRU5UQUwKKwlkZXBlbmRzIG9uIFNHSV9JUDIyICYmIEVYUEVSSU1FTlRBTAogCWhlbHAKIAkgIFNheSBZIG9yIE0gaWYgeW91IGhhdmUgYW4gU0dJIEluZHkgb3IgSW5kaWdvMiBzeXN0ZW0gYW5kIHdhbnQgdG8gYmUgYWJsZSB0bwogCSAgdXNlIGl0cyBvbi1ib2FyZCBBMiBhdWRpbyBzeXN0ZW0uCiAKIGNvbmZpZyBTT1VORF9BVTE1NTBfQUM5NwogCXRyaXN0YXRlICJBdTE1NTAvQXUxMjAwIEFDOTcgU291bmQiCi0Jc2VsZWN0IFNORF9BQzk3X0NPREVDCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiAoU09DX0FVMTU1MCB8fCBTT0NfQVUxMjAwKQorCWRlcGVuZHMgb24gU09DX0FVMTU1MCB8fCBTT0NfQVUxMjAwCiAKIGNvbmZpZyBTT1VORF9UUklERU5UCiAJdHJpc3RhdGUgIlRyaWRlbnQgNERXYXZlIERYL05YLCBTaVMgNzAxOCBvciBBTGkgNTQ1MSBQQ0kgQXVkaW8gQ29yZSIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIFBDSQorCWRlcGVuZHMgb24gUENJCiAJLS0taGVscC0tLQogCSAgU2F5IFkgb3IgTSBpZiB5b3UgaGF2ZSBhIFBDSSBzb3VuZCBjYXJkIHV0aWxpemluZyB0aGUgVHJpZGVudAogCSAgNERXYXZlLURYL05YIGNoaXBzZXQgb3IgeW91ciBtb3RoZXIgYm9hcmQgY2hpcHNldCBoYXMgU2lTIDcwMTgKQEAgLTc5LDcgKzc4LDcgQEAKIAogY29uZmlnIFNPVU5EX01TTkRDTEFTCiAJdHJpc3RhdGUgIlN1cHBvcnQgZm9yIFR1cnRsZSBCZWFjaCBNdWx0aVNvdW5kIENsYXNzaWMsIFRhaGl0aSwgTW9udGVyZXkiCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiAobSB8fCAhU1RBTkRBTE9ORSkgJiYgSVNBCisJZGVwZW5kcyBvbiAobSB8fCAhU1RBTkRBTE9ORSkgJiYgSVNBCiAJaGVscAogCSAgU2F5IE0gaGVyZSBpZiB5b3UgaGF2ZSBhIFR1cnRsZSBCZWFjaCBNdWx0aVNvdW5kIENsYXNzaWMsIFRhaGl0aSBvcgogCSAgTW9udGVyZXkgKG5vdCBmb3IgdGhlIFBpbm5hY2xlIG9yIEZpamkpLgpAQCAtMTQzLDcgKzE0Miw3IEBACiAKIGNvbmZpZyBTT1VORF9NU05EUElOCiAJdHJpc3RhdGUgIlN1cHBvcnQgZm9yIFR1cnRsZSBCZWFjaCBNdWx0aVNvdW5kIFBpbm5hY2xlLCBGaWppIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgKG0gfHwgIVNUQU5EQUxPTkUpICYmIElTQQorCWRlcGVuZHMgb24gKG0gfHwgIVNUQU5EQUxPTkUpICYmIElTQQogCWhlbHAKIAkgIFNheSBNIGhlcmUgaWYgeW91IGhhdmUgYSBUdXJ0bGUgQmVhY2ggTXVsdGlTb3VuZCBQaW5uYWNsZSBvciBGaWppLgogCSAgU2VlIDxmaWxlOkRvY3VtZW50YXRpb24vc291bmQvb3NzL011bHRpU291bmQ+IGZvciBpbXBvcnRhbnQgaW5mb3JtYXRpb24KQEAgLTIyOSw3ICsyMjgsNyBAQAogCSAgY29uZmlndXJlIHRoZSBjYXJkJ3MgcmVzb3VyY2VzLgogCiBjb21tZW50ICJNU05EIFBpbm5hY2xlIERTUCBzZWN0aW9uIHdpbGwgYmUgY29uZmlndXJlZCB0byBhYm92ZSBwYXJhbWV0ZXJzLiIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIFNPVU5EX01TTkRQSU49eSAmJiBNU05EUElOX05PTlBOUAorCWRlcGVuZHMgb24gU09VTkRfTVNORFBJTj15ICYmIE1TTkRQSU5fTk9OUE5QCiAKIGNvbmZpZyBNU05EUElOX0NGRwogCWhleCAiTVNORCBQaW5uYWNsZSBjb25maWcgcG9ydCAyNTAsMjYwLDI3MCIKQEAgLTI0Miw3ICsyNDEsNyBAQAogCSAgTW9kZSIuCiAKIGNvbW1lbnQgIlBpbm5hY2xlLXNwZWNpZmljIERldmljZSBDb25maWd1cmF0aW9uICgwIGRpc2FibGVzKSIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIFNPVU5EX01TTkRQSU49eSAmJiBNU05EUElOX05PTlBOUAorCWRlcGVuZHMgb24gU09VTkRfTVNORFBJTj15ICYmIE1TTkRQSU5fTk9OUE5QCiAKIGNvbmZpZyBNU05EUElOX01QVV9JTwogCWhleCAiTVNORCBQaW5uYWNsZSBNUFUgSS9PIChlLmcuIDMzMCkiCkBAIC0yOTQsNyArMjkzLDcgQEAKIAogY29uZmlnIE1TTkRfRklGT1NJWkUKIAlpbnQgIk1TTkQgYnVmZmVyIHNpemUgKGtCKSIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIChTT1VORF9NU05EUElOPXkgfHwgU09VTkRfTVNORENMQVM9eSkKKwlkZXBlbmRzIG9uIFNPVU5EX01TTkRQSU49eSB8fCBTT1VORF9NU05EQ0xBUz15CiAJZGVmYXVsdCAiMTI4IgogCWhlbHAKIAkgIENvbmZpZ3VyZXMgdGhlIHNpemUgb2YgZWFjaCBhdWRpbyBidWZmZXIsIGluIGtpbG9ieXRlcywgZm9yCkBAIC0zMDIsOSArMzAxLDkgQEAKIAkgIGFuZCBQaW5uYWNsZSkuIExhcmdlciB2YWx1ZXMgcmVkdWNlIHRoZSBjaGFuY2Ugb2YgZGF0YSBvdmVycnVucyBhdAogCSAgdGhlIGV4cGVuc2Ugb2Ygb3ZlcmFsbCBsYXRlbmN5LiBJZiB1bnN1cmUsIHVzZSB0aGUgZGVmYXVsdC4KIAotY29uZmlnIFNPVU5EX09TUworbWVudWNvbmZpZyBTT1VORF9PU1MKIAl0cmlzdGF0ZSAiT1NTIHNvdW5kIG1vZHVsZXMiCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiBJU0FfRE1BX0FQSSAmJiBWSVJUX1RPX0JVUworCWRlcGVuZHMgb24gSVNBX0RNQV9BUEkgJiYgVklSVF9UT19CVVMKIAloZWxwCiAJICBPU1MgaXMgdGhlIE9wZW4gU291bmQgU3lzdGVtIHN1aXRlIG9mIHNvdW5kIGNhcmQgZHJpdmVycy4gIFRoZXkgbWFrZQogCSAgc291bmQgcHJvZ3JhbW1pbmcgZWFzaWVyIHNpbmNlIHRoZXkgcHJvdmlkZSBhIGNvbW1vbiBBUEkuICBTYXkgWSBvcgpAQCAtMzEyLDE2ICszMTEsMTYgQEAKIAkgIGRyaXZlciBmb3IgeW91ciBzb3VuZCBjYXJkIGFib3ZlLCB0aGVuIHBpY2sgeW91ciBkcml2ZXIgZnJvbSB0aGUKIAkgIGxpc3QgYmVsb3cuCiAKK2lmIFNPVU5EX09TUworCiBjb25maWcgU09VTkRfVFJBQ0VJTklUCiAJYm9vbCAiVmVyYm9zZSBpbml0aWFsaXNhdGlvbiIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCWhlbHAKIAkgIFZlcmJvc2Ugc291bmRjYXJkIGluaXRpYWxpemF0aW9uIC0tIGFmZmVjdHMgdGhlIGZvcm1hdCBvZiBhdXRvcHJvYmUKIAkgIGFuZCBpbml0aWFsaXphdGlvbiBtZXNzYWdlcyBhdCBib290IHRpbWUuCiAKIGNvbmZpZyBTT1VORF9ETUFQCiAJYm9vbCAiUGVyc2lzdGVudCBETUEgYnVmZmVycyIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCS0tLWhlbHAtLS0KIAkgIExpbnV4IGNhbiBvZnRlbiBoYXZlIHByb2JsZW1zIGFsbG9jYXRpbmcgRE1BIGJ1ZmZlcnMgZm9yIElTQSBzb3VuZAogCSAgY2FyZHMgb24gbWFjaGluZXMgd2l0aCBtb3JlIHRoYW4gMTZNQiBvZiBSQU0uIFRoaXMgaXMgYmVjYXVzZSBJU0EKQEAgLTMzOCw4ICszMzcsNiBAQAogCiBjb25maWcgU09VTkRfU1NDQVBFCiAJdHJpc3RhdGUgIkVuc29uaXEgU291bmRTY2FwZSBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCi0JZGVwZW5kcyBvbiBWSVJUX1RPX0JVUwogCWhlbHAKIAkgIEFuc3dlciBZIGlmIHlvdSBoYXZlIGEgc291bmQgY2FyZCBiYXNlZCBvbiB0aGUgRW5zb25pcSBTb3VuZFNjYXBlCiAJICBjaGlwc2V0LiBTdWNoIGNhcmRzIGFyZSBiZWluZyBtYW51ZmFjdHVyZWQgYXQgbGVhc3QgYnkgRW5zb25pcSwgU3BlYQpAQCAtMzUyLDEzICszNDksMTEgQEAKIAogY29uZmlnIFNPVU5EX1ZNSURJCiAJdHJpc3RhdGUgIkxvb3BiYWNrIE1JREkgZGV2aWNlIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTT1VORF9PU1MKIAloZWxwCiAJICBTdXBwb3J0IGZvciBNSURJIGxvb3BiYWNrIG9uIHBvcnQgMSBvciAyLgogCiBjb25maWcgU09VTkRfVFJJWAogCXRyaXN0YXRlICJNZWRpYVRyaXggQXVkaW9Ucml4IFBybyBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJaGVscAogCSAgQW5zd2VyIFkgaWYgeW91IGhhdmUgdGhlIEF1ZGlvVHJpWCBQcm8gc291bmQgY2FyZCBtYW51ZmFjdHVyZWQKIAkgIGJ5IE1lZGlhVHJpeC4KQEAgLTM4Miw3ICszNzcsNiBAQAogCiBjb25maWcgU09VTkRfTVNTCiAJdHJpc3RhdGUgIk1pY3Jvc29mdCBTb3VuZCBTeXN0ZW0gc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCS0tLWhlbHAtLS0KIAkgIEFnYWluIHRoaW5rIGNhcmVmdWxseSBiZWZvcmUgYW5zd2VyaW5nIFkgdG8gdGhpcyBxdWVzdGlvbi4gIEl0J3MKIAkgIHNhZmUgdG8gYW5zd2VyIFkgaWYgeW91IGhhdmUgdGhlIG9yaWdpbmFsIFdpbmRvd3MgU291bmQgU3lzdGVtIGNhcmQKQEAgLTQxNCw3ICs0MDgsNiBAQAogCiBjb25maWcgU09VTkRfTVBVNDAxCiAJdHJpc3RhdGUgIk1QVS00MDEgc3VwcG9ydCAoTk9UIGZvciBTQjE2KSIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCS0tLWhlbHAtLS0KIAkgIEJlIGNhcmVmdWwgd2l0aCB0aGlzIHF1ZXN0aW9uLiAgVGhlIE1QVTQwMSBpbnRlcmZhY2UgaXMgc3VwcG9ydGVkIGJ5CiAJICBhbGwgc291bmQgY2FyZHMuICBIb3dldmVyLCBzb21lIG5hdGl2ZWx5IHN1cHBvcnRlZCBjYXJkcyBoYXZlIHRoZWlyCkBAIC00MzAsNyArNDIzLDYgQEAKIAogY29uZmlnIFNPVU5EX1BBUwogCXRyaXN0YXRlICJQcm9BdWRpb1NwZWN0cnVtIDE2IHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTT1VORF9PU1MKIAktLS1oZWxwLS0tCiAJICBBbnN3ZXIgWSBvbmx5IGlmIHlvdSBoYXZlIGEgUHJvIEF1ZGlvIFNwZWN0cnVtIDE2LCBQcm9BdWRpbyBTdHVkaW8KIAkgIDE2IG9yIExvZ2l0ZWNoIFNvdW5kTWFuIDE2IHNvdW5kIGNhcmQuIEFuc3dlciBOIGlmIHlvdSBoYXZlIHNvbWUKQEAgLTQ1Miw3ICs0NDQsNiBAQAogCiBjb25maWcgU09VTkRfUFNTCiAJdHJpc3RhdGUgIlBTUyAoQUQxODQ4LCBBRFNQLTIxMTUsIEVTQzYxNCkgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCWhlbHAKIAkgIEFuc3dlciBZIG9yIE0gaWYgeW91IGhhdmUgYW4gT3JjaGlkIFNXMzIsIENhcmRpbmFsIERTUDE2LCBCZWV0aG92ZW4KIAkgIEFEU1AtMTYgb3Igc29tZSBvdGhlciBjYXJkIGJhc2VkIG9uIHRoZSBQU1MgY2hpcHNldCAoQUQxODQ4IGNvZGVjICsKQEAgLTQ5NSw3ICs0ODYsNiBAQAogCiBjb25maWcgU09VTkRfU0IKIAl0cmlzdGF0ZSAiMTAwJSBTb3VuZCBCbGFzdGVyIGNvbXBhdGlibGVzIChTQjE2LzMyLzY0LCBFU1MsIEphenoxNikgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCS0tLWhlbHAtLS0KIAkgIEFuc3dlciBZIGlmIHlvdSBoYXZlIGFuIG9yaWdpbmFsIFNvdW5kIEJsYXN0ZXIgY2FyZCBtYWRlIGJ5IENyZWF0aXZlCiAJICBMYWJzIG9yIGEgMTAwJSBoYXJkd2FyZSBjb21wYXRpYmxlIGNsb25lIChsaWtlIHRoZSBUaHVuZGVyYm9hcmQgb3IKQEAgLTUyMiw3ICs1MTIsNiBAQAogCiBjb25maWcgU09VTkRfWU0zODEyCiAJdHJpc3RhdGUgIllhbWFoYSBGTSBzeW50aGVzaXplciAoWU0zODEyL09QTC0zKSBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJLS0taGVscC0tLQogCSAgQW5zd2VyIFkgaWYgeW91ciBjYXJkIGhhcyBhIEZNIGNoaXAgbWFkZSBieSBZYW1haGEgKE9QTDIvT1BMMy9PUEw0KS4KIAkgIEFuc3dlcmluZyBZIGlzIHVzdWFsbHkgYSBzYWZlIGFuZCByZWNvbW1lbmRlZCBjaG9pY2UsIGhvd2V2ZXIgc29tZQpAQCAtNTM4LDcgKzUyNyw2IEBACiAKIGNvbmZpZyBTT1VORF9VQVJUNjg1MAogCXRyaXN0YXRlICI2ODUwIFVBUlQgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCWhlbHAKIAkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3IgTUlESSBpbnRlcmZhY2VzIGJhc2VkIG9uIHRoZSA2ODUwCiAJICBVQVJUIGNoaXAuIFRoaXMgaW50ZXJmYWNlIGlzIHJhcmVseSBmb3VuZCBvbiBzb3VuZCBjYXJkcy4gSXQncyBzYWZlCkBAIC01NDksNyArNTM3LDYgQEAKIAogY29uZmlnIFNPVU5EX0FFRFNQMTYKIAl0cmlzdGF0ZSAiR2FsbGFudCBBdWRpbyBDYXJkcyAoU0MtNjAwMCBhbmQgU0MtNjYwMCBiYXNlZCkiCi0JZGVwZW5kcyBvbiBTT1VORF9PU1MKIAktLS1oZWxwLS0tCiAJICBBbnN3ZXIgWSBpZiB5b3UgaGF2ZSBhIEdhbGxhbnQncyBBdWRpbyBFeGNlbCBEU1AgMTYgY2FyZC4gVGhpcwogCSAgZHJpdmVyIHN1cHBvcnRzIEF1ZGlvIEV4Y2VsIERTUCAxNiBidXQgbm90IHRoZSBJSUkgbm9yIFBuUCB2ZXJzaW9ucwpAQCAtNjMwLDE0ICs2MTcsMTQgQEAKIAogY29uZmlnIFNPVU5EX1ZJREMKIAl0cmlzdGF0ZSAiVklEQyAxNi1iaXQgc291bmQiCi0JZGVwZW5kcyBvbiBBUk0gJiYgKEFSQ0hfQUNPUk4gfHwgQVJDSF9DTFBTNzUwMCkgJiYgU09VTkRfT1NTCisJZGVwZW5kcyBvbiBBUk0gJiYgKEFSQ0hfQUNPUk4gfHwgQVJDSF9DTFBTNzUwMCkKIAloZWxwCiAJICAxNi1iaXQgc3VwcG9ydCBmb3IgdGhlIFZJREMgb25ib2FyZCBzb3VuZCBoYXJkd2FyZSBmb3VuZCBvbiBBY29ybgogCSAgbWFjaGluZXMuCiAKIGNvbmZpZyBTT1VORF9XQVZFQVJUSVNUCiAJdHJpc3RhdGUgIk5ldHdpbmRlciBXYXZlQXJ0aXN0IgotCWRlcGVuZHMgb24gQVJNICYmIFNPVU5EX09TUyAmJiBBUkNIX05FVFdJTkRFUgorCWRlcGVuZHMgb24gQVJNICYmIEFSQ0hfTkVUV0lOREVSCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBSb2Nrd2VsbCBXYXZlQXJ0aXN0IHNvdW5kCiAJICBzeXN0ZW0uICBUaGlzIGRyaXZlciBpcyBtYWlubHkgZm9yIHRoZSBOZXRXaW5kZXIuCkBAIC02NDYsOSArNjMzLDExIEBACiAJdHJpc3RhdGUgIlhwcmVzc0F1ZGlvIFNvdW5kIEJsYXN0ZXIgZW11bGF0aW9uIgogCWRlcGVuZHMgb24gU09VTkRfU0IKIAorZW5kaWYJIyBTT1VORF9PU1MKKwogY29uZmlnIFNPVU5EX1NIX0RBQ19BVURJTwogCXRyaXN0YXRlICJTdXBlckggREFDIGF1ZGlvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiBDUFVfU0gzCisJZGVwZW5kcyBvbiBDUFVfU0gzCiAKIGNvbmZpZyBTT1VORF9TSF9EQUNfQVVESU9fQ0hBTk5FTAogCWludCAiREFDIGNoYW5uZWwiCmRpZmYgLS1naXQgYS9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfY29yZS5jIGIvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX2NvcmUuYwppbmRleCBhMDAzYzBlLi45NWZjNWM2IDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfY29yZS5jCisrKyBiL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9jb3JlLmMKQEAgLTIxMSwxMCArMjExLDYgQEAKIHN0YXRpYyBpbnQgaXJxX2luc3RhbGxlZDsKICNlbmRpZiAvKiBNT0RVTEUgKi8KIAotLyogc29mdHdhcmUgaW1wbGVtZW50ZWQgcmVjb3JkaW5nIHZvbHVtZSEgKi8KLXVpbnQgc29mdHdhcmVfaW5wdXRfdm9sdW1lID0gU1dfSU5QVVRfVk9MVU1FX1NDQUxFICogU1dfSU5QVVRfVk9MVU1FX0RFRkFVTFQ7Ci1FWFBPUlRfU1lNQk9MKHNvZnR3YXJlX2lucHV0X3ZvbHVtZSk7Ci0KIC8qIGNvbnRyb2wgb3ZlciB3aG8gY2FuIG1vZGlmeSByZXNvdXJjZXMgc2hhcmVkIGJldHdlZW4gcGxheS9yZWNvcmQgKi8KIHN0YXRpYyBtb2RlX3Qgc2hhcmVkX3Jlc291cmNlX293bmVyOwogc3RhdGljIGludCBzaGFyZWRfcmVzb3VyY2VzX2luaXRpYWxpc2VkOwpAQCAtMTE4OCw3ICsxMTg0LDcgQEAKIAogLyogcHVibGlzaCB0aGlzIGZ1bmN0aW9uIGZvciB1c2UgYnkgbG93LWxldmVsIGNvZGUsIGlmIHJlcXVpcmVkICovCiAKLWNoYXIgKmdldF9hZm10X3N0cmluZyhpbnQgYWZtdCkKK3N0YXRpYyBjaGFyICpnZXRfYWZtdF9zdHJpbmcoaW50IGFmbXQpCiB7CiAgICAgICAgIHN3aXRjaChhZm10KSB7CiAgICAgICAgICAgICBjYXNlIEFGTVRfTVVfTEFXOgpAQCAtMTU1MSw0ICsxNTQ3LDMgQEAKIEVYUE9SVF9TWU1CT0woZG1hc291bmRfdWxhdzJkbWE4KTsKIEVYUE9SVF9TWU1CT0woZG1hc291bmRfYWxhdzJkbWE4KTsKICNlbmRpZgotRVhQT1JUX1NZTUJPTChnZXRfYWZtdF9zdHJpbmcpIDsKZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9wYXVsYS5jIGIvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3BhdWxhLmMKaW5kZXggMjAyZTgxMC4uMDZlOWU4OCAxMDA2NDQKLS0tIGEvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3BhdWxhLmMKKysrIGIvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3BhdWxhLmMKQEAgLTcxMCw3ICs3MTAsNyBAQAogLyoqKiBDb25maWcgJiBTZXR1cCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAKLWludCBfX2luaXQgZG1hc291bmRfcGF1bGFfaW5pdCh2b2lkKQorc3RhdGljIGludCBfX2luaXQgZG1hc291bmRfcGF1bGFfaW5pdCh2b2lkKQogewogCWludCBlcnI7CiAKZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9xNDAuYyBiL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9xNDAuYwppbmRleCBiMzM3OWRkLi4xODU1YjE0IDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfcTQwLmMKKysrIGIvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3E0MC5jCkBAIC02MTEsNyArNjExLDcgQEAKIC8qKiogQ29uZmlnICYgU2V0dXAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogCi1pbnQgX19pbml0IGRtYXNvdW5kX3E0MF9pbml0KHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBkbWFzb3VuZF9xNDBfaW5pdCh2b2lkKQogewogCWlmIChNQUNIX0lTX1E0MCkgewogCSAgICBkbWFzb3VuZC5tYWNoID0gbWFjaFE0MDsKZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9tc25kLmMgYi9zb3VuZC9vc3MvbXNuZC5jCmluZGV4IGJhMzhkNjIuLmU0MjgyZDkgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9tc25kLmMKKysrIGIvc291bmQvb3NzL21zbmQuYwpAQCAtMjAsOCArMjAsNiBAQAogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgogICoKLSAqICRJZDogbXNuZC5jLHYgMS4xNyAxOTk5LzAzLzIxIDE2OjUwOjA5IGFuZHJld3R2IEV4cCAkCi0gKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9zb3VuZC9vc3MvbXNuZC5oIGIvc291bmQvb3NzL21zbmQuaAppbmRleCBkMGNhNTgyLi42MWIzOTU1IDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvbXNuZC5oCisrKyBiL3NvdW5kL29zcy9tc25kLmgKQEAgLTI0LDggKzI0LDYgQEAKICAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAgKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KICAqCi0gKiAkSWQ6IG1zbmQuaCx2IDEuMzYgMTk5OS8wMy8yMSAxNzowNTo0MiBhbmRyZXd0diBFeHAgJAotICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNpZm5kZWYgX19NU05EX0gKICNkZWZpbmUgX19NU05EX0gKZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9tc25kX2NsYXNzaWMuaCBiL3NvdW5kL29zcy9tc25kX2NsYXNzaWMuaAppbmRleCA3ZmZlYTUyLi4xYTE3ZGRlIDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvbXNuZF9jbGFzc2ljLmgKKysrIGIvc291bmQvb3NzL21zbmRfY2xhc3NpYy5oCkBAIC0yNCw4ICsyNCw2IEBACiAgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICogRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAgKiAKLSAqICRJZDogbXNuZF9jbGFzc2ljLmgsdiAxLjEwIDE5OTkvMDMvMjEgMTc6MzY6MDkgYW5kcmV3dHYgRXhwICQKLSAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjaWZuZGVmIF9fTVNORF9DTEFTU0lDX0gKICNkZWZpbmUgX19NU05EX0NMQVNTSUNfSApkaWZmIC0tZ2l0IGEvc291bmQvb3NzL21zbmRfcGlubmFjbGUuYyBiL3NvdW5kL29zcy9tc25kX3Bpbm5hY2xlLmMKaW5kZXggZjFmNDllYi4uYmYyN2UwMCAxMDA2NDQKLS0tIGEvc291bmQvb3NzL21zbmRfcGlubmFjbGUuYworKysgYi9zb3VuZC9vc3MvbXNuZF9waW5uYWNsZS5jCkBAIC0yOSwxMyArMjksOCBAQAogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgogICoKLSAqICRJZDogbXNuZF9waW5uYWNsZS5jLHYgMS44IDIwMDAvMTIvMzAgMDA6MzM6MjEgc3ljYW1vcmUgRXhwICQKLSAqCiAgKiAxMi0zLTIwMDAgIE1vZGlmaWVkIElPIHBvcnQgdmFsaWRhdGlvbiAgU3RldmUgU3ljYW1vcmUKICAqCi0gKgotICogJCQkOiBtc25kX3Bpbm5hY2xlLmMsdiAxLjc1IDE5OTkvMDMvMjEgMTY6NTA6MDkgYW5kcmV3dHYgJCQkICQKLSAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9tc25kX3Bpbm5hY2xlLmggYi9zb3VuZC9vc3MvbXNuZF9waW5uYWNsZS5oCmluZGV4IGNjZTkxMTQuLmMxOGQ2NmMgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9tc25kX3Bpbm5hY2xlLmgKKysrIGIvc291bmQvb3NzL21zbmRfcGlubmFjbGUuaApAQCAtMjQsOCArMjQsNiBAQAogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgogICoKLSAqICRJZDogbXNuZF9waW5uYWNsZS5oLHYgMS4xMSAxOTk5LzAzLzIxIDE3OjM2OjA5IGFuZHJld3R2IEV4cCAkCi0gKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2lmbmRlZiBfX01TTkRfUElOTkFDTEVfSAogI2RlZmluZSBfX01TTkRfUElOTkFDTEVfSApkaWZmIC0tZ2l0IGEvc291bmQvb3NzL3Z3c25kLmMgYi9zb3VuZC9vc3MvdndzbmQuYwppbmRleCAyYzVhYWE1Li5kY2JiM2Y3IDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvdndzbmQuYworKysgYi9zb3VuZC9vc3MvdndzbmQuYwpAQCAtMTUwLDcgKzE1MCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KIAotI2luY2x1ZGUgPGFzbS9tYWNoLXZpc3dzL2NvYmFsdC5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9jb2JhbHQuaD4KIAogI2luY2x1ZGUgInNvdW5kX2NvbmZpZy5oIgogCmRpZmYgLS1naXQgYS9zb3VuZC9wYXJpc2MvS2NvbmZpZyBiL3NvdW5kL3BhcmlzYy9LY29uZmlnCmluZGV4IGE1YTdmOWQuLjliNjFkOTUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BhcmlzYy9LY29uZmlnCisrKyBiL3NvdW5kL3BhcmlzYy9LY29uZmlnCkBAIC0xLDE1ICsxLDIwIEBACiAjIEFMU0EgUEEtUklTQyBkcml2ZXJzCiAKLW1lbnUgIkdTQyBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EIT1uICYmIEdTQworbWVudWNvbmZpZyBTTkRfR1NDCisJYm9vbCAiR1NDIHNvdW5kIGRldmljZXMiCisJZGVwZW5kcyBvbiBHU0MKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBHU0Mgc291bmQgZGV2aWNlcyBvbiBQQS1SSVNDIGFyY2hpdGVjdHVyZXMuCisKK2lmIFNORF9HU0MKIAogY29uZmlnIFNORF9IQVJNT05ZCiAJdHJpc3RhdGUgIkhhcm1vbnkvVml2YWNlIHNvdW5kIGNoaXAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSAnWScgb3IgJ00nIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIEhhcm1vbnkvVml2YWNlIHNvdW5kCiAJICBjaGlwIGZvdW5kIGluIG1vc3QgR1NDLWJhc2VkIFBBLVJJU0Mgd29ya3N0YXRpb25zLiAgSXQncyBmcmVxdWVudGx5CiAJICBwcm92aWRlZCBhcyBwYXJ0IG9mIHRoZSBMYXNpIG11bHRpLWZ1bmN0aW9uIElDLgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9HU0MKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9LY29uZmlnIGIvc291bmQvcGNpL0tjb25maWcKaW5kZXggN2U0NzQyMS4uZjdkOTViMiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL0tjb25maWcKKysrIGIvc291bmQvcGNpL0tjb25maWcKQEAgLTEsMTEgKzEsMTYgQEAKICMgQUxTQSBQQ0kgZHJpdmVycwogCi1tZW51ICJQQ0kgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBQQ0kKK21lbnVjb25maWcgU05EX1BDSQorCWJvb2wgIlBDSSBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gUENJCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBmb3Igc291bmQgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBQQ0kgYnVzLgorCitpZiBTTkRfUENJCiAKIGNvbmZpZyBTTkRfQUQxODg5CiAJdHJpc3RhdGUgIkFuYWxvZyBEZXZpY2VzIEFEMTg4OSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgaW50ZWdyYXRlZCBBQzk3IHNvdW5kCkBAIC0xNyw3ICsyMiw2IEBACiAKIGNvbmZpZyBTTkRfQUxTMzAwCiAJdHJpc3RhdGUgIkF2YW5jZSBMb2dpYyBBTFMzMDAvQUxTMzAwKyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJc2VsZWN0IFNORF9PUEwzX0xJQgpAQCAtMjksNyArMzMsNyBAQAogCiBjb25maWcgU05EX0FMUzQwMDAKIAl0cmlzdGF0ZSAiQXZhbmNlIExvZ2ljIEFMUzQwMDAiCi0JZGVwZW5kcyBvbiBTTkQgJiYgSVNBX0RNQV9BUEkKKwlkZXBlbmRzIG9uIElTQV9ETUFfQVBJCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1BDTQpAQCAtNDMsNyArNDcsNiBAQAogCiBjb25maWcgU05EX0FMSTU0NTEKIAl0cmlzdGF0ZSAiQUxpIE01NDUxIFBDSSBBdWRpbyBDb250cm9sbGVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTU3LDcgKzYwLDYgQEAKIAogY29uZmlnIFNORF9BVElJWFAKIAl0cmlzdGF0ZSAiQVRJIElYUCBBQzk3IENvbnRyb2xsZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgQUM5NyBzb3VuZApAQCAtNjksNyArNzEsNiBAQAogCiBjb25maWcgU05EX0FUSUlYUF9NT0RFTQogCXRyaXN0YXRlICJBVEkgSVhQIE1vZGVtIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIE1DOTcgbW9kZW0gb24KQEAgLTgwLDcgKzgxLDYgQEAKIAogY29uZmlnIFNORF9BVTg4MTAKIAl0cmlzdGF0ZSAiQXVyZWFsIEFkdmFudGFnZSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC05NSw3ICs5NSw2IEBACiAKIGNvbmZpZyBTTkRfQVU4ODIwCiAJdHJpc3RhdGUgIkF1cmVhbCBWb3J0ZXgiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscApAQCAtMTA5LDcgKzEwOCw2IEBACiAKIGNvbmZpZyBTTkRfQVU4ODMwCiAJdHJpc3RhdGUgIkF1cmVhbCBWb3J0ZXggMiIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC0xMjQsNyArMTIyLDYgQEAKIAogY29uZmlnIFNORF9BVzIKIAl0cmlzdGF0ZSAiRW1hZ2ljIEF1ZGlvd2VyayAyIgotCWRlcGVuZHMgb24gU05ECiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEVtYWdpYyBBdWRpb3dlcmsgMiBzb3VuZGNhcmRzLgogCkBAIC0xMzksNyArMTM2LDcgQEAKIAogY29uZmlnIFNORF9BWlQzMzI4CiAJdHJpc3RhdGUgIkF6dGVjaCBBWkYzMzI4IC8gUENJMTY4IChFWFBFUklNRU5UQUwpIgotCWRlcGVuZHMgb24gU05EICYmIEVYUEVSSU1FTlRBTAorCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1BDTQpAQCAtMTUyLDcgKzE0OSw2IEBACiAKIGNvbmZpZyBTTkRfQlQ4N1gKIAl0cmlzdGF0ZSAiQnQ4N3ggQXVkaW8gQ2FwdHVyZSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgSWYgeW91IHdhbnQgdG8gcmVjb3JkIGF1ZGlvIGZyb20gVFYgY2FyZHMgYmFzZWQgb24KQEAgLTE3NCw3ICsxNzAsNiBAQAogCiBjb25maWcgU05EX0NBMDEwNgogCXRyaXN0YXRlICJTQiBBdWRpZ3kgTFMgLyBMaXZlIDI0Yml0IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9WTUFTVEVSCkBAIC0xODcsNyArMTgyLDYgQEAKIAogY29uZmlnIFNORF9DTUlQQ0kKIAl0cmlzdGF0ZSAiQy1NZWRpYSA4MzM4LCA4NzM4LCA4NzY4LCA4NzcwIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1BDTQpAQCAtMjAxLDEzICsxOTUsMTEgQEAKIAogY29uZmlnIFNORF9PWFlHRU5fTElCCiAgICAgICAgIHRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAogY29uZmlnIFNORF9PWFlHRU4KIAl0cmlzdGF0ZSAiQy1NZWRpYSA4Nzg4IChPeHlnZW4pIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PWFlHRU5fTElCCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHNvdW5kIGNhcmRzIGJhc2VkIG9uIHRoZQpAQCAtMjI1LDcgKzIxNyw2IEBACiAKIGNvbmZpZyBTTkRfQ1M0MjgxCiAJdHJpc3RhdGUgIkNpcnJ1cyBMb2dpYyAoU291bmQgRnVzaW9uKSBDUzQyODEiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCkBAIC0yMzcsNyArMjI4LDYgQEAKIAogY29uZmlnIFNORF9DUzQ2WFgKIAl0cmlzdGF0ZSAiQ2lycnVzIExvZ2ljIChTb3VuZCBGdXNpb24pIENTNDI4MC9DUzQ2MXgvQ1M0NjJ4L0NTNDYzeCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTI1OCw3ICsyNDgsNyBAQAogCiBjb25maWcgU05EX0NTNTUzMAogCXRyaXN0YXRlICJDUzU1MzAgQXVkaW8iCi0JZGVwZW5kcyBvbiBTTkQgJiYgSVNBX0RNQV9BUEkKKwlkZXBlbmRzIG9uIElTQV9ETUFfQVBJCiAJc2VsZWN0IFNORF9TQjE2X0RTUAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBhdWRpbyBvbiBDeXJpeC9OYXRTZW1pIENTNTUzMCBjaGlwcy4KQEAgLTI2OCw3ICsyNTgsNyBAQAogCiBjb25maWcgU05EX0NTNTUzNUFVRElPCiAJdHJpc3RhdGUgIkNTNTUzNS9DUzU1MzYgQXVkaW8iCi0JZGVwZW5kcyBvbiBTTkQgJiYgWDg2ICYmICFYODZfNjQKKwlkZXBlbmRzIG9uIFg4NiAmJiAhWDg2XzY0CiAJc2VsZWN0IFNORF9QQ00KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC0yODYsNyArMjc2LDYgQEAKIAogY29uZmlnIFNORF9EQVJMQTIwCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIERhcmxhMjAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCkBAIC0yOTcsNyArMjg2LDYgQEAKIAogY29uZmlnIFNORF9HSU5BMjAKIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgR2luYTIwIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUENNCiAJaGVscApAQCAtMzA4LDcgKzI5Niw2IEBACiAKIGNvbmZpZyBTTkRfTEFZTEEyMAogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSBMYXlsYTIwIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC0zMjAsNyArMzA3LDYgQEAKIAogY29uZmlnIFNORF9EQVJMQTI0CiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIERhcmxhMjQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCkBAIC0zMzEsNyArMzE3LDYgQEAKIAogY29uZmlnIFNORF9HSU5BMjQKIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgR2luYTI0IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUENNCiAJaGVscApAQCAtMzQyLDcgKzMyNyw2IEBACiAKIGNvbmZpZyBTTkRfTEFZTEEyNAogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSBMYXlsYTI0IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC0zNTQsNyArMzM4LDYgQEAKIAogY29uZmlnIFNORF9NT05BCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIE1vbmEiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KQEAgLTM2Niw3ICszNDksNiBAQAogCiBjb25maWcgU05EX01JQQogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSBNaWEiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KQEAgLTM3OCw3ICszNjAsNiBAQAogCiBjb25maWcgU05EX0VDSE8zRwogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSAzRyBjYXJkcyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtMzkwLDcgKzM3MSw2IEBACiAKIGNvbmZpZyBTTkRfSU5ESUdPCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIEluZGlnbyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTQwMSw3ICszODEsNiBAQAogCiBjb25maWcgU05EX0lORElHT0lPCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIEluZGlnbyBJTyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTQxMiw3ICszOTEsNiBAQAogCiBjb25maWcgU05EX0lORElHT0RKCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIEluZGlnbyBESiIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTQyMyw3ICs0MDEsNiBAQAogCiBjb25maWcgU05EX0VNVTEwSzEKIAl0cmlzdGF0ZSAiRW11MTBrMSAoU0IgTGl2ZSEsIEF1ZGlneSwgRS1tdSBBUFMpIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1JBV01JREkKQEAgLTQ0MSw3ICs0MTgsNiBAQAogCiBjb25maWcgU05EX0VNVTEwSzFYCiAJdHJpc3RhdGUgIkVtdTEwazFYIChEZWxsIE9FTSBWZXJzaW9uKSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCXNlbGVjdCBTTkRfUkFXTUlESQogCWhlbHAKQEAgLTQ1Myw3ICs0MjksNiBAQAogCiBjb25maWcgU05EX0VOUzEzNzAKIAl0cmlzdGF0ZSAiKENyZWF0aXZlKSBFbnNvbmlxIEF1ZGlvUENJIDEzNzAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTQ2NCw3ICs0MzksNiBAQAogCiBjb25maWcgU05EX0VOUzEzNzEKIAl0cmlzdGF0ZSAiKENyZWF0aXZlKSBFbnNvbmlxIEF1ZGlvUENJIDEzNzEvMTM3MyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTQ3Niw3ICs0NTAsNiBAQAogCiBjb25maWcgU05EX0VTMTkzOAogCXRyaXN0YXRlICJFU1MgRVMxOTM4LzE5NDYvMTk2OSAoU29sby0xKSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCkBAIC00ODksNyArNDYyLDYgQEAKIAogY29uZmlnIFNORF9FUzE5NjgKIAl0cmlzdGF0ZSAiRVNTIEVTMTk2OC8xOTc4IChNYWVzdHJvLTEvMi8yRSkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscApAQCAtNTAxLDcgKzQ3Myw2IEBACiAKIGNvbmZpZyBTTkRfRk04MDEKIAl0cmlzdGF0ZSAiRm9ydGVNZWRpYSBGTTgwMSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCkBAIC01MjgsNyArNDk5LDYgQEAKIAogY29uZmlnIFNORF9IREFfSU5URUwKIAl0cmlzdGF0ZSAiSW50ZWwgSEQgQXVkaW8iCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCXNlbGVjdCBTTkRfVk1BU1RFUgogCWhlbHAKQEAgLTYzNyw3ICs2MDcsNiBAQAogCiBjb25maWcgU05EX0hEU1AKIAl0cmlzdGF0ZSAiUk1FIEhhbW1lcmZhbGwgRFNQIEF1ZGlvIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9IV0RFUAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC02NTAsNyArNjE5LDYgQEAKIAogY29uZmlnIFNORF9IRFNQTQogCXRyaXN0YXRlICJSTUUgSGFtbWVyZmFsbCBEU1AgTUFESSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtNjYzLDcgKzYzMSw2IEBACiAKIGNvbmZpZyBTTkRfSElGSUVSCiAJdHJpc3RhdGUgIlRlbXBvVGVjIEhpRmllciBGYW50YXNpYSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1hZR0VOX0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgTWVkaWFUZWsvVGVtcG9UZWMgSGlGaWVyCkBAIC02NzQsNyArNjQxLDYgQEAKIAogY29uZmlnIFNORF9JQ0UxNzEyCiAJdHJpc3RhdGUgIklDRW5zZW1ibGUgSUNFMTcxMiAoRW52eTI0KSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC02OTEsOCArNjU3LDcgQEAKIAogY29uZmlnIFNORF9JQ0UxNzI0CiAJdHJpc3RhdGUgIklDRS9WVDE3MjQvMTcyMCAoRW52eTI0SFQvUFQpIgotCWRlcGVuZHMgb24gU05ECi0Jc2VsZWN0IFNORF9NUFU0MDFfVUFSVAorCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCXNlbGVjdCBTTkRfVk1BU1RFUgogCWhlbHAKQEAgLTcwOSw3ICs2NzQsNiBAQAogCiBjb25maWcgU05EX0lOVEVMOFgwCiAJdHJpc3RhdGUgIkludGVsL1NpUy9uVmlkaWEvQU1EL0FMaSBBQzk3IENvbnRyb2xsZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgQUM5NyBzb3VuZApAQCAtNzIyLDcgKzY4Niw2IEBACiAKIGNvbmZpZyBTTkRfSU5URUw4WDBNCiAJdHJpc3RhdGUgIkludGVsL1NpUy9uVmlkaWEvQU1EIE1DOTcgTW9kZW0iCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgTUM5NyBtb2RlbSBvbgpAQCAtNzMzLDggKzY5Niw2IEBACiAKIGNvbmZpZyBTTkRfS09SRzEyMTIKIAl0cmlzdGF0ZSAiS29yZyAxMjEyIElPIgotCWRlcGVuZHMgb24gU05ECi0Jc2VsZWN0IEZXX0xPQURFUiBpZiAhU05EX0tPUkcxMjEyX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEtvcmcgMTIxMklPIHNvdW5kY2FyZHMuCkBAIC03NDIsMTkgKzcwMyw4IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQta29yZzEyMTIuCiAKLWNvbmZpZyBTTkRfS09SRzEyMTJfRklSTVdBUkVfSU5fS0VSTkVMCi0JYm9vbCAiSW4ta2VybmVsIGZpcm13YXJlIGZvciBLb3JnMTIxMiBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkRfS09SRzEyMTIKLQlkZWZhdWx0IHkKLQloZWxwCi0JICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgdGhlIHN0YXRpYyBmaXJtd2FyZSBidWlsdCBpbiB0aGUga2VybmVsCi0JICBmb3IgdGhlIEtvcmcxMjEyIGRyaXZlci4gIElmIHlvdSBjaG9vc2UgTiBoZXJlLCB5b3UgbmVlZCB0bwotCSAgaW5zdGFsbCB0aGUgZmlybXdhcmUgZmlsZXMgZnJvbSB0aGUgYWxzYS1maXJtd2FyZSBwYWNrYWdlLgotCiBjb25maWcgU05EX01BRVNUUk8zCiAJdHJpc3RhdGUgIkVTUyBBbGxlZ3JvL01hZXN0cm8zIgotCWRlcGVuZHMgb24gU05ECi0Jc2VsZWN0IEZXX0xPQURFUiBpZiAhU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBzb3VuZGNhcmRzIGJhc2VkIG9uIEVTUyBNYWVzdHJvIDMKQEAgLTc2MywxOCArNzEzLDggQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1tYWVzdHJvMy4KIAotY29uZmlnIFNORF9NQUVTVFJPM19GSVJNV0FSRV9JTl9LRVJORUwKLQlib29sICJJbi1rZXJuZWwgZmlybXdhcmUgZm9yIE1hZXN0cm8zIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORF9NQUVTVFJPMwotCWRlZmF1bHQgeQotCWhlbHAKLQkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSB0aGUgc3RhdGljIGZpcm13YXJlIGJ1aWx0IGluIHRoZSBrZXJuZWwKLQkgIGZvciB0aGUgTWFlc3RybzMgZHJpdmVyLiAgSWYgeW91IGNob29zZSBOIGhlcmUsIHlvdSBuZWVkIHRvCi0JICBpbnN0YWxsIHRoZSBmaXJtd2FyZSBmaWxlcyBmcm9tIHRoZSBhbHNhLWZpcm13YXJlIHBhY2thZ2UuCi0KIGNvbmZpZyBTTkRfTUlYQVJUCiAJdHJpc3RhdGUgIkRpZ2lncmFtIG1pWGFydCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTc4Niw3ICs3MjYsNiBAQAogCiBjb25maWcgU05EX05NMjU2CiAJdHJpc3RhdGUgIk5lb01hZ2ljIE5NMjU2QVYvWlgiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgTmVvTWFnaWMgTk0yNTZBVi9aWCBjaGlwcy4KQEAgLTc5Niw3ICs3MzUsNiBAQAogCiBjb25maWcgU05EX1BDWEhSCiAJdHJpc3RhdGUgIkRpZ2lncmFtIFBDWEhSIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAlzZWxlY3QgU05EX0hXREVQCiAJaGVscApAQCAtODA3LDcgKzc0NSw2IEBACiAKIGNvbmZpZyBTTkRfUklQVElERQogCXRyaXN0YXRlICJDb25leGFudCBSaXB0aWRlIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC04MjAsNyArNzU3LDYgQEAKIAogY29uZmlnIFNORF9STUUzMgogCXRyaXN0YXRlICJSTUUgRGlnaTMyLCAzMi84LCAzMiBQUk8iCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgUk1FIERpZ2kzMiwgRGlnaTMyIFBSTyBhbmQKQEAgLTgzMiw3ICs3NjgsNiBAQAogCiBjb25maWcgU05EX1JNRTk2CiAJdHJpc3RhdGUgIlJNRSBEaWdpOTYsIDk2LzgsIDk2LzggUFJPIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgUk1FIERpZ2k5NiwgRGlnaTk2LzggYW5kCkBAIC04NDMsNyArNzc4LDYgQEAKIAogY29uZmlnIFNORF9STUU5NjUyCiAJdHJpc3RhdGUgIlJNRSBEaWdpOTY1MiAoSGFtbWVyZmFsbCkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBSTUUgSGFtbWVyZmFsbCAoUk1FCkBAIC04NTQsNyArNzg4LDcgQEAKIAogY29uZmlnIFNORF9TSVM3MDE5CiAJdHJpc3RhdGUgIlNpUyA3MDE5IEF1ZGlvIEFjY2VsZXJhdG9yIgotCWRlcGVuZHMgb24gU05EICYmIFg4NiAmJiAhWDg2XzY0CisJZGVwZW5kcyBvbiBYODYgJiYgIVg4Nl82NAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgU2lTIDcwMTkgQXVkaW8gQWNjZWxlcmF0b3IuCkBAIC04NjQsNyArNzk4LDYgQEAKIAogY29uZmlnIFNORF9TT05JQ1ZJQkVTCiAJdHJpc3RhdGUgIlMzIFNvbmljVmliZXMiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwpAQCAtODc3LDcgKzgxMCw2IEBACiAKIGNvbmZpZyBTTkRfVFJJREVOVAogCXRyaXN0YXRlICJUcmlkZW50IDRELVdhdmUgRFgvTlg7IFNpUyA3MDE4IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTg4OSw3ICs4MjEsNiBAQAogCiBjb25maWcgU05EX1ZJQTgyWFgKIAl0cmlzdGF0ZSAiVklBIDgyQzY4NkEvQiwgODIzMy84MjM1IEFDOTcgQ29udHJvbGxlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC05MDEsNyArODMyLDYgQEAKIAogY29uZmlnIFNORF9WSUE4MlhYX01PREVNCiAJdHJpc3RhdGUgIlZJQSA4MkM2ODZBL0IsIDgyMzMgYmFzZWQgTW9kZW1zIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIE1DOTcgbW9kZW0gb24KQEAgLTkxMiw3ICs4NDIsNiBAQAogCiBjb25maWcgU05EX1ZJUlRVT1NPCiAJdHJpc3RhdGUgIkFzdXMgVmlydHVvc28gMTAwLzIwMCAoWG9uYXIpIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PWFlHRU5fTElCCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHNvdW5kIGNhcmRzIGJhc2VkIG9uIHRoZQpAQCAtOTIzLDcgKzg1Miw2IEBACiAKIGNvbmZpZyBTTkRfVlgyMjIKIAl0cmlzdGF0ZSAiRGlnaWdyYW0gVlgyMjIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1ZYX0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBEaWdpZ3JhbSBWWDIyMiBzb3VuZGNhcmRzLgpAQCAtOTMzLDggKzg2MSw2IEBACiAKIGNvbmZpZyBTTkRfWU1GUENJCiAJdHJpc3RhdGUgIllhbWFoYSBZTUY3MjQvNzQwLzc0NC83NTQiCi0JZGVwZW5kcyBvbiBTTkQKLQlzZWxlY3QgRldfTE9BREVSIGlmICFTTkRfWU1GUENJX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCkBAIC05NDUsMzQgKzg3MSw0IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQteW1mcGNpLgogCi1jb25maWcgU05EX1lNRlBDSV9GSVJNV0FSRV9JTl9LRVJORUwKLQlib29sICJJbi1rZXJuZWwgZmlybXdhcmUgZm9yIFlNRlBDSSBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkRfWU1GUENJCi0JZGVmYXVsdCB5Ci0JaGVscAotCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHRoZSBzdGF0aWMgZmlybXdhcmUgYnVpbHQgaW4gdGhlIGtlcm5lbAotCSAgZm9yIHRoZSBZTUZQQ0kgZHJpdmVyLiAgSWYgeW91IGNob29zZSBOIGhlcmUsIHlvdSBuZWVkIHRvCi0JICBpbnN0YWxsIHRoZSBmaXJtd2FyZSBmaWxlcyBmcm9tIHRoZSBhbHNhLWZpcm13YXJlIHBhY2thZ2UuCi0KLWNvbmZpZyBTTkRfQUM5N19QT1dFUl9TQVZFCi0JYm9vbCAiQUM5NyBQb3dlci1TYXZpbmcgTW9kZSIKLQlkZXBlbmRzIG9uIFNORF9BQzk3X0NPREVDICYmIEVYUEVSSU1FTlRBTAotCWRlZmF1bHQgbgotCWhlbHAKLQkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBhZ2dyZXNzaXZlIHBvd2VyLXNhdmluZyBzdXBwb3J0IG9mCi0JICBBQzk3IGNvZGVjcy4gIEluIHRoaXMgbW9kZSwgdGhlIHBvd2VyLW1vZGUgaXMgZHluYW1pY2FsbHkKLQkgIGNvbnRyb2xsZWQgYXQgZWFjaCBvcGVuL2Nsb3NlLgotCi0JICBUaGUgbW9kZSBpcyBhY3RpdmF0ZWQgYnkgcGFzc2luZyBwb3dlcl9zYXZlPTEgb3B0aW9uIHRvCi0JICBzbmQtYWM5Ny1jb2RlYyBkcml2ZXIuICBZb3UgY2FuIHRvZ2dsZSBpdCBkeW5hbWljYWxseSBvdmVyCi0JICBzeXNmcywgdG9vLgotCi1jb25maWcgU05EX0FDOTdfUE9XRVJfU0FWRV9ERUZBVUxUCi0JaW50ICJEZWZhdWx0IHRpbWUtb3V0IGZvciBBQzk3IHBvd2VyLXNhdmUgbW9kZSIKLQlkZXBlbmRzIG9uIFNORF9BQzk3X1BPV0VSX1NBVkUKLQlkZWZhdWx0IDAKLQloZWxwCi0JICBUaGUgZGVmYXVsdCB0aW1lLW91dCB2YWx1ZSBpbiBzZWNvbmRzIGZvciBBQzk3IGF1dG9tYXRpYwotCSAgcG93ZXItc2F2ZSBtb2RlLiAgMCBtZWFucyB0byBkaXNhYmxlIHRoZSBwb3dlci1zYXZlIG1vZGUuCi0KLWVuZG1lbnUKK2VuZGlmCSMgU05EX1BDSQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL01ha2VmaWxlIGIvc291bmQvcGNpL01ha2VmaWxlCmluZGV4IDg1ZWYxNGIuLjY1YjI1ZDIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9NYWtlZmlsZQorKysgYi9zb3VuZC9wY2kvTWFrZWZpbGUKQEAgLTEzLDcgKzEzLDcgQEAKIHNuZC1jbWlwY2ktb2JqcyA6PSBjbWlwY2kubwogc25kLWNzNDI4MS1vYmpzIDo9IGNzNDI4MS5vCiBzbmQtY3M1NTMwLW9ianMgOj0gY3M1NTMwLm8KLXNuZC1lbnMxMzcwLW9ianMgOj0gZW5zMTM3MC5vCitzbmQtZW5zMTM3MC1vYmpzIDo9IGVuczEzNzAubyBhazQ1MzFfY29kZWMubwogc25kLWVuczEzNzEtb2JqcyA6PSBlbnMxMzcxLm8KIHNuZC1lczE5Mzgtb2JqcyA6PSBlczE5Mzgubwogc25kLWVzMTk2OC1vYmpzIDo9IGVzMTk2OC5vCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYWM5Ny9NYWtlZmlsZSBiL3NvdW5kL3BjaS9hYzk3L01ha2VmaWxlCmluZGV4IDBiZTQ4YjEuLjQxZmEzMjIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9hYzk3L01ha2VmaWxlCisrKyBiL3NvdW5kL3BjaS9hYzk3L01ha2VmaWxlCkBAIC0zLDE2ICszLDggQEAKICMgQ29weXJpZ2h0IChjKSAyMDAxIGJ5IEphcm9zbGF2IEt5c2VsYSA8cGVyZXhAcGVyZXguY3o+CiAjCiAKLXNuZC1hYzk3LWNvZGVjLW9ianMgOj0gYWM5N19jb2RlYy5vIGFjOTdfcGNtLm8KLQotaWZuZXEgKCQoQ09ORklHX1BST0NfRlMpLCkKLXNuZC1hYzk3LWNvZGVjLW9ianMgKz0gYWM5N19wcm9jLm8KLWVuZGlmCi0KLXNuZC1hazQ1MzEtY29kZWMtb2JqcyA6PSBhazQ1MzFfY29kZWMubworc25kLWFjOTctY29kZWMteSA6PSBhYzk3X2NvZGVjLm8gYWM5N19wY20ubworc25kLWFjOTctY29kZWMtJChDT05GSUdfUFJPQ19GUykgKz0gYWM5N19wcm9jLm8KIAogIyBUb3BsZXZlbCBNb2R1bGUgRGVwZW5kZW5jeQogb2JqLSQoQ09ORklHX1NORF9BQzk3X0NPREVDKSArPSBzbmQtYWM5Ny1jb2RlYy5vCi1vYmotJChDT05GSUdfU05EX0VOUzEzNzApICs9IHNuZC1hazQ1MzEtY29kZWMubwotCi1vYmotbSA6PSAkKHNvcnQgJChvYmotbSkpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYWM5Ny9hYzk3X2NvZGVjLmMgYi9zb3VuZC9wY2kvYWM5Ny9hYzk3X2NvZGVjLmMKaW5kZXggNDVmZDI5MC4uMDczNjRjMCAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2FjOTcvYWM5N19jb2RlYy5jCisrKyBiL3NvdW5kL3BjaS9hYzk3L2FjOTdfY29kZWMuYwpAQCAtNDksOCArNDksOSBAQAogCiAjaWZkZWYgQ09ORklHX1NORF9BQzk3X1BPV0VSX1NBVkUKIHN0YXRpYyBpbnQgcG93ZXJfc2F2ZSA9IENPTkZJR19TTkRfQUM5N19QT1dFUl9TQVZFX0RFRkFVTFQ7Ci1tb2R1bGVfcGFyYW0ocG93ZXJfc2F2ZSwgYm9vbCwgMDY0NCk7Ci1NT0RVTEVfUEFSTV9ERVNDKHBvd2VyX3NhdmUsICJFbmFibGUgQUM5NyBwb3dlci1zYXZpbmcgY29udHJvbCIpOworbW9kdWxlX3BhcmFtKHBvd2VyX3NhdmUsIGludCwgMDY0NCk7CitNT0RVTEVfUEFSTV9ERVNDKHBvd2VyX3NhdmUsICJBdXRvbWF0aWMgcG93ZXItc2F2aW5nIHRpbWVvdXQgIgorCQkgIihpbiBzZWNvbmQsIDAgPSBkaXNhYmxlKS4iKTsKICNlbmRpZgogLyoKIApAQCAtMjI5NCw5ICsyMjk1LDExIEBACiAJcG93ZXIgfD0gQUM5N19QRF9QUjAgfCBBQzk3X1BEX1BSMTsJLyogQURDICYgREFDIHBvd2VyZG93biAqLwogCXNuZF9hYzk3X3dyaXRlKGFjOTcsIEFDOTdfUE9XRVJET1dOLCBwb3dlcik7CiAJdWRlbGF5KDEwMCk7Ci0JcG93ZXIgfD0gQUM5N19QRF9QUjIgfCBBQzk3X1BEX1BSMzsJLyogQW5hbG9nIE1peGVyIHBvd2VyZG93biAqLworCXBvd2VyIHw9IEFDOTdfUERfUFIyOwkvKiBBbmFsb2cgTWl4ZXIgcG93ZXJkb3duIChWcmVmIG9uKSAqLwogCXNuZF9hYzk3X3dyaXRlKGFjOTcsIEFDOTdfUE9XRVJET1dOLCBwb3dlcik7CiAJaWYgKGFjOTdfaXNfcG93ZXJfc2F2ZV9tb2RlKGFjOTcpKSB7CisJCXBvd2VyIHw9IEFDOTdfUERfUFIzOwkvKiBBbmFsb2cgTWl4ZXIgcG93ZXJkb3duICovCisJCXNuZF9hYzk3X3dyaXRlKGFjOTcsIEFDOTdfUE9XRVJET1dOLCBwb3dlcik7CiAJCXVkZWxheSgxMDApOwogCQkvKiBBQy1saW5rIHBvd2VyZG93biwgaW50ZXJuYWwgQ2xrIGRpc2FibGUgKi8KIAkJLyogRklYTUU6IHRoaXMgbWF5IGNhdXNlIGNsaWNrIG5vaXNlcyBvbiBzb21lIGJvYXJkcyAqLwpAQCAtMjM2Miw3ICsyMzY1LDcgQEAKIAkJICogIHRoYXQgb3Blbi9jbG9zZSBmcmVxdWVudGx5KQogCQkgKi8KIAkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZhYzk3LT5wb3dlcl93b3JrLAotCQkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMjAwMCkpOworCQkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMocG93ZXJfc2F2ZSAqIDEwMDApKTsKIAllbHNlIHsKIAkJY2FuY2VsX2RlbGF5ZWRfd29yaygmYWM5Ny0+cG93ZXJfd29yayk7CiAJCXVwZGF0ZV9wb3dlcl9yZWdzKGFjOTcpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2FjOTcvYWM5N19wYXRjaC5jIGIvc291bmQvcGNpL2FjOTcvYWM5N19wYXRjaC5jCmluZGV4IDEyOTJkY2UuLjA3NDZlOWMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9hYzk3L2FjOTdfcGF0Y2guYworKysgYi9zb3VuZC9wY2kvYWM5Ny9hYzk3X3BhdGNoLmMKQEAgLTY2OSw2ICs2NjksNyBAQAogQUM5N19TSU5HTEUoIk1pYyAyIFZvbHVtZSIsIEFDOTdfTUlDLCAwLCAzMSwgMSksCiBBQzk3X1NJTkdMRSgiTWljIDIwZEIgQm9vc3QgU3dpdGNoIiwgQUM5N19NSUMsIDcsIDEsIDApLAogCitBQzk3X1NJTkdMRSgiTWFzdGVyIExlZnQgSW52IFN3aXRjaCIsIEFDOTdfTUFTVEVSLCA2LCAxLCAwKSwKIEFDOTdfU0lOR0xFKCJNYXN0ZXIgWkMgU3dpdGNoIiwgQUM5N19NQVNURVIsIDcsIDEsIDApLAogQUM5N19TSU5HTEUoIkhlYWRwaG9uZSBaQyBTd2l0Y2giLCBBQzk3X0hFQURQSE9ORSwgNywgMSwgMCksCiBBQzk3X1NJTkdMRSgiTW9ubyBaQyBTd2l0Y2giLCBBQzk3X01BU1RFUl9NT05PLCA3LCAxLCAwKSwKQEAgLTMzNTIsOCArMzM1Myw2NiBAQAogQUM5N19TSU5HTEUoIkRvd25taXggU3Vycm91bmQgdG8gRnJvbnQiLCAweDVhLCAxMSwgMSwgMCksCiB9OwogCitzdGF0aWMgY29uc3QgY2hhciAqc2xhdmVfdm9sc192dDE2MTZbXSA9IHsKKwkiRnJvbnQgUGxheWJhY2sgVm9sdW1lIiwKKwkiU3Vycm91bmQgUGxheWJhY2sgVm9sdW1lIiwKKwkiQ2VudGVyIFBsYXliYWNrIFZvbHVtZSIsCisJIkxGRSBQbGF5YmFjayBWb2x1bWUiLAorCU5VTEwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpzbGF2ZV9zd3NfdnQxNjE2W10gPSB7CisJIkZyb250IFBsYXliYWNrIFN3aXRjaCIsCisJIlN1cnJvdW5kIFBsYXliYWNrIFN3aXRjaCIsCisJIkNlbnRlciBQbGF5YmFjayBTd2l0Y2giLAorCSJMRkUgUGxheWJhY2sgU3dpdGNoIiwKKwlOVUxMCit9OworCisvKiBmaW5kIGEgbWl4ZXIgY29udHJvbCBlbGVtZW50IHdpdGggdGhlIGdpdmVuIG5hbWUgKi8KK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sICpzbmRfYWM5N19maW5kX21peGVyX2N0bChzdHJ1Y3Qgc25kX2FjOTcgKmFjOTcsCisJCQkJCQkgICAgY29uc3QgY2hhciAqbmFtZSkKK3sKKwlzdHJ1Y3Qgc25kX2N0bF9lbGVtX2lkIGlkOworCW1lbXNldCgmaWQsIDAsIHNpemVvZihpZCkpOworCWlkLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVI7CisJc3RyY3B5KGlkLm5hbWUsIG5hbWUpOworCXJldHVybiBzbmRfY3RsX2ZpbmRfaWQoYWM5Ny0+YnVzLT5jYXJkLCAmaWQpOworfQorCisvKiBjcmVhdGUgYSB2aXJ0dWFsIG1hc3RlciBjb250cm9sIGFuZCBhZGQgc2xhdmVzICovCitpbnQgc25kX2FjOTdfYWRkX3ZtYXN0ZXIoc3RydWN0IHNuZF9hYzk3ICphYzk3LCBjaGFyICpuYW1lLAorCQkJIGNvbnN0IHVuc2lnbmVkIGludCAqdGx2LCBjb25zdCBjaGFyICoqc2xhdmVzKQoreworCXN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjdGw7CisJY29uc3QgY2hhciAqKnM7CisJaW50IGVycjsKKworCWtjdGwgPSBzbmRfY3RsX21ha2VfdmlydHVhbF9tYXN0ZXIobmFtZSwgdGx2KTsKKwlpZiAoIWtjdGwpCisJCXJldHVybiAtRU5PTUVNOworCWVyciA9IHNuZF9jdGxfYWRkKGFjOTctPmJ1cy0+Y2FyZCwga2N0bCk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlmb3IgKHMgPSBzbGF2ZXM7ICpzOyBzKyspIHsKKwkJc3RydWN0IHNuZF9rY29udHJvbCAqc2N0bDsKKworCQlzY3RsID0gc25kX2FjOTdfZmluZF9taXhlcl9jdGwoYWM5NywgKnMpOworCQlpZiAoIXNjdGwpIHsKKwkJCXNuZF9wcmludGRkKCJDYW5ub3QgZmluZCBzbGF2ZSAlcywgc2tpcHBlZFxuIiwgKnMpOworCQkJY29udGludWU7CisJCX0KKwkJZXJyID0gc25kX2N0bF9hZGRfc2xhdmUoa2N0bCwgc2N0bCk7CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgcGF0Y2hfdnQxNjE2X3NwZWNpZmljKHN0cnVjdCBzbmRfYWM5NyAqIGFjOTcpCiB7CisJc3RydWN0IHNuZF9rY29udHJvbCAqa2N0bDsKIAlpbnQgZXJyOwogCiAJaWYgKHNuZF9hYzk3X3RyeV9iaXQoYWM5NywgMHg1YSwgOSkpCkBAIC0zMzYxLDYgKzM0MjAsMjQgQEAKIAkJCXJldHVybiBlcnI7CiAJaWYgKChlcnIgPSBwYXRjaF9idWlsZF9jb250cm9scyhhYzk3LCAmc25kX2FjOTdfY29udHJvbHNfdnQxNjE2WzFdLCBBUlJBWV9TSVpFKHNuZF9hYzk3X2NvbnRyb2xzX3Z0MTYxNikgLSAxKSkgPCAwKQogCQlyZXR1cm4gZXJyOworCisJLyogVGhlcmUgaXMgYWxyZWFkeSBhIG1pc25hbWVkIG1hc3RlciBzd2l0Y2guICBSZW5hbWUgaXQuICAqLworCWtjdGwgPSBzbmRfYWM5N19maW5kX21peGVyX2N0bChhYzk3LCAiTWFzdGVyIFBsYXliYWNrIFZvbHVtZSIpOworCWlmICgha2N0bCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlzbmRfYWM5N19yZW5hbWVfdm9sX2N0bChhYzk3LCAiTWFzdGVyIFBsYXliYWNrIiwgIkZyb250IFBsYXliYWNrIik7CisKKwllcnIgPSBzbmRfYWM5N19hZGRfdm1hc3RlcihhYzk3LCAiTWFzdGVyIFBsYXliYWNrIFZvbHVtZSIsCisJCQkJICAga2N0bC0+dGx2LnAsIHNsYXZlX3ZvbHNfdnQxNjE2KTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHNuZF9hYzk3X2FkZF92bWFzdGVyKGFjOTcsICJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwKKwkJCQkgICBOVUxMLCBzbGF2ZV9zd3NfdnQxNjE2KTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKwogCXJldHVybiAwOwogfQogCkBAIC0zNjMzLDcgKzM3MTAsNyBAQAogewogCWFjOTctPmJ1aWxkX29wcyA9ICZwYXRjaF91Y2IxNDAwX29wczsKIAkvKiBlbmFibGUgaGVhZHBob25lIGRyaXZlciBhbmQgc21hcnQgbG93IHBvd2VyIG1vZGUgYnkgZGVmYXVsdCAqLwotCXNuZF9hYzk3X3dyaXRlKGFjOTcsIDB4NmEsIDB4MDA1MCk7Ci0Jc25kX2FjOTdfd3JpdGUoYWM5NywgMHg2YywgMHgwMDMwKTsKKwlzbmRfYWM5N193cml0ZV9jYWNoZShhYzk3LCAweDZhLCAweDAwNTApOworCXNuZF9hYzk3X3dyaXRlX2NhY2hlKGFjOTcsIDB4NmMsIDB4MDAzMCk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYWM5Ny9hazQ1MzFfY29kZWMuYyBiL3NvdW5kL3BjaS9hYzk3L2FrNDUzMV9jb2RlYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMGMxNjMzOS4uMDAwMDAwMAotLS0gYS9zb3VuZC9wY2kvYWM5Ny9hazQ1MzFfY29kZWMuYworKysgL2Rldi9udWxsCkBAIC0xLDUwOCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoYykgYnkgSmFyb3NsYXYgS3lzZWxhIDxwZXJleEBwZXJleC5jej4KLSAqICBVbml2ZXJzYWwgcm91dGluZXMgZm9yIEFLNDUzMSBjb2RlYwotICoKLSAqCi0gKiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICogICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBCi0gKgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KLQotI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KLSNpbmNsdWRlIDxzb3VuZC9hazQ1MzFfY29kZWMuaD4KLSNpbmNsdWRlIDxzb3VuZC90bHYuaD4KLQotTU9EVUxFX0FVVEhPUigiSmFyb3NsYXYgS3lzZWxhIDxwZXJleEBwZXJleC5jej4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiVW5pdmVyc2FsIHJvdXRpbmVzIGZvciBBSzQ1MzEgY29kZWMiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLQotI2lmZGVmIENPTkZJR19QUk9DX0ZTCi1zdGF0aWMgdm9pZCBzbmRfYWs0NTMxX3Byb2NfaW5pdChzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpOwotI2Vsc2UKLSNkZWZpbmUgc25kX2FrNDUzMV9wcm9jX2luaXQoY2FyZCxhaykKLSNlbmRpZgotCi0vKgotICoKLSAqLwotIAotI2lmIDAKLQotc3RhdGljIHZvaWQgc25kX2FrNDUzMV9kdW1wKHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCi17Ci0JaW50IGlkeDsKLQkKLQlmb3IgKGlkeCA9IDA7IGlkeCA8IDB4MTk7IGlkeCsrKQotCQlwcmludGsoImFrNDUzMSAweCV4OiAweCV4XG4iLCBpZHgsIGFrNDUzMS0+cmVnc1tpZHhdKTsKLX0KLQotI2VuZGlmCi0KLS8qCi0gKgotICovCi0KLSNkZWZpbmUgQUs0NTMxX1NJTkdMRSh4bmFtZSwgeGluZGV4LCByZWcsIHNoaWZ0LCBtYXNrLCBpbnZlcnQpIFwKLXsgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAotICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19zaW5nbGUsIFwKLSAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X3NpbmdsZSwgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X3NpbmdsZSwgXAotICAucHJpdmF0ZV92YWx1ZSA9IHJlZyB8IChzaGlmdCA8PCAxNikgfCAobWFzayA8PCAyNCkgfCAoaW52ZXJ0IDw8IDIyKSB9Ci0jZGVmaW5lIEFLNDUzMV9TSU5HTEVfVExWKHhuYW1lLCB4aW5kZXgsIHJlZywgc2hpZnQsIG1hc2ssIGludmVydCwgeHRsdikgICAgXAoteyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgXAotICAuYWNjZXNzID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSB8IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRCwgXAotICAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKLSAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9fc2luZ2xlLCBcCi0gIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9zaW5nbGUsIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9zaW5nbGUsIFwKLSAgLnByaXZhdGVfdmFsdWUgPSByZWcgfCAoc2hpZnQgPDwgMTYpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMiksIFwKLSAgLnRsdiA9IHsgLnAgPSAoeHRsdikgfSB9Ci0KLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9pbmZvX3NpbmdsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKLXsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCi0JdWluZm8tPnR5cGUgPSBtYXNrID09IDEgPyBTTkRSVl9DVExfRUxFTV9UWVBFX0JPT0xFQU4gOiBTTkRSVl9DVExfRUxFTV9UWVBFX0lOVEVHRVI7Ci0JdWluZm8tPmNvdW50ID0gMTsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOwotCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IG1hc2s7Ci0JcmV0dXJuIDA7Ci19Ci0gCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfZ2V0X3NpbmdsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOwotCWludCBzaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OwotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0JaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOwotCWludCB2YWw7Ci0KLQltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JdmFsID0gKGFrNDUzMS0+cmVnc1tyZWddID4+IHNoaWZ0KSAmIG1hc2s7Ci0JbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JaWYgKGludmVydCkgewotCQl2YWwgPSBtYXNrIC0gdmFsOwotCX0KLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IHZhbDsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfYWs0NTMxX3B1dF9zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JaW50IHJlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKLQlpbnQgY2hhbmdlOwotCWludCB2YWw7Ci0KLQl2YWwgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSAmIG1hc2s7Ci0JaWYgKGludmVydCkgewotCQl2YWwgPSBtYXNrIC0gdmFsOwotCX0KLQl2YWwgPDw9IHNoaWZ0OwotCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQl2YWwgPSAoYWs0NTMxLT5yZWdzW3JlZ10gJiB+KG1hc2sgPDwgc2hpZnQpKSB8IHZhbDsKLQljaGFuZ2UgPSB2YWwgIT0gYWs0NTMxLT5yZWdzW3JlZ107Ci0JYWs0NTMxLT53cml0ZShhazQ1MzEsIHJlZywgYWs0NTMxLT5yZWdzW3JlZ10gPSB2YWwpOwotCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCXJldHVybiBjaGFuZ2U7Ci19Ci0KLSNkZWZpbmUgQUs0NTMxX0RPVUJMRSh4bmFtZSwgeGluZGV4LCBsZWZ0X3JlZywgcmlnaHRfcmVnLCBsZWZ0X3NoaWZ0LCByaWdodF9zaGlmdCwgbWFzaywgaW52ZXJ0KSBcCi17IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKLSAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9fZG91YmxlLCBcCi0gIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9kb3VibGUsIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9kb3VibGUsIFwKLSAgLnByaXZhdGVfdmFsdWUgPSBsZWZ0X3JlZyB8IChyaWdodF9yZWcgPDwgOCkgfCAobGVmdF9zaGlmdCA8PCAxNikgfCAocmlnaHRfc2hpZnQgPDwgMTkpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMikgfQotI2RlZmluZSBBSzQ1MzFfRE9VQkxFX1RMVih4bmFtZSwgeGluZGV4LCBsZWZ0X3JlZywgcmlnaHRfcmVnLCBsZWZ0X3NoaWZ0LCByaWdodF9zaGlmdCwgbWFzaywgaW52ZXJ0LCB4dGx2KSBcCi17IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCBcCi0gIC5hY2Nlc3MgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFIHwgU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1RMVl9SRUFELCBcCi0gIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAotICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19kb3VibGUsIFwKLSAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X2RvdWJsZSwgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X2RvdWJsZSwgXAotICAucHJpdmF0ZV92YWx1ZSA9IGxlZnRfcmVnIHwgKHJpZ2h0X3JlZyA8PCA4KSB8IChsZWZ0X3NoaWZ0IDw8IDE2KSB8IChyaWdodF9zaGlmdCA8PCAxOSkgfCAobWFzayA8PCAyNCkgfCAoaW52ZXJ0IDw8IDIyKSwgXAotICAudGx2ID0geyAucCA9ICh4dGx2KSB9IH0KLQotc3RhdGljIGludCBzbmRfYWs0NTMxX2luZm9fZG91YmxlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQotewotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0KLQl1aW5mby0+dHlwZSA9IG1hc2sgPT0gMSA/IFNORFJWX0NUTF9FTEVNX1RZUEVfQk9PTEVBTiA6IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKLQl1aW5mby0+Y291bnQgPSAyOwotCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gbWFzazsKLQlyZXR1cm4gMDsKLX0KLSAKLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9nZXRfZG91YmxlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCWludCBsZWZ0X3JlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgcmlnaHRfcmVnID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgbGVmdF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OwotCWludCByaWdodF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxOSkgJiAweDA3OwotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0JaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOwotCWludCBsZWZ0LCByaWdodDsKLQotCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQlsZWZ0ID0gKGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gPj4gbGVmdF9zaGlmdCkgJiBtYXNrOwotCXJpZ2h0ID0gKGFrNDUzMS0+cmVnc1tyaWdodF9yZWddID4+IHJpZ2h0X3NoaWZ0KSAmIG1hc2s7Ci0JbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JaWYgKGludmVydCkgewotCQlsZWZ0ID0gbWFzayAtIGxlZnQ7Ci0JCXJpZ2h0ID0gbWFzayAtIHJpZ2h0OwotCX0KLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IGxlZnQ7Ci0JdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gPSByaWdodDsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfYWs0NTMxX3B1dF9kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JaW50IGxlZnRfcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOwotCWludCByaWdodF9yZWcgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOwotCWludCBsZWZ0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MDc7Ci0JaW50IHJpZ2h0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE5KSAmIDB4MDc7Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDIyKSAmIDE7Ci0JaW50IGNoYW5nZTsKLQlpbnQgbGVmdCwgcmlnaHQ7Ci0KLQlsZWZ0ID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gJiBtYXNrOwotCXJpZ2h0ID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gJiBtYXNrOwotCWlmIChpbnZlcnQpIHsKLQkJbGVmdCA9IG1hc2sgLSBsZWZ0OwotCQlyaWdodCA9IG1hc2sgLSByaWdodDsKLQl9Ci0JbGVmdCA8PD0gbGVmdF9zaGlmdDsKLQlyaWdodCA8PD0gcmlnaHRfc2hpZnQ7Ci0JbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCWlmIChsZWZ0X3JlZyA9PSByaWdodF9yZWcpIHsKLQkJbGVmdCA9IChhazQ1MzEtPnJlZ3NbbGVmdF9yZWddICYgfigobWFzayA8PCBsZWZ0X3NoaWZ0KSB8IChtYXNrIDw8IHJpZ2h0X3NoaWZ0KSkpIHwgbGVmdCB8IHJpZ2h0OwotCQljaGFuZ2UgPSBsZWZ0ICE9IGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ107Ci0JCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBsZWZ0X3JlZywgYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSA9IGxlZnQpOwotCX0gZWxzZSB7Ci0JCWxlZnQgPSAoYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSAmIH4obWFzayA8PCBsZWZ0X3NoaWZ0KSkgfCBsZWZ0OwotCQlyaWdodCA9IChhazQ1MzEtPnJlZ3NbcmlnaHRfcmVnXSAmIH4obWFzayA8PCByaWdodF9zaGlmdCkpIHwgcmlnaHQ7Ci0JCWNoYW5nZSA9IGxlZnQgIT0gYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSB8fCByaWdodCAhPSBhazQ1MzEtPnJlZ3NbcmlnaHRfcmVnXTsKLQkJYWs0NTMxLT53cml0ZShhazQ1MzEsIGxlZnRfcmVnLCBhazQ1MzEtPnJlZ3NbbGVmdF9yZWddID0gbGVmdCk7Ci0JCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCByaWdodF9yZWcsIGFrNDUzMS0+cmVnc1tyaWdodF9yZWddID0gcmlnaHQpOwotCX0KLQltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQlyZXR1cm4gY2hhbmdlOwotfQotCi0jZGVmaW5lIEFLNDUzMV9JTlBVVF9TVyh4bmFtZSwgeGluZGV4LCByZWcxLCByZWcyLCBsZWZ0X3NoaWZ0LCByaWdodF9zaGlmdCkgXAoteyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCi0gIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX2lucHV0X3N3LCBcCi0gIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9pbnB1dF9zdywgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X2lucHV0X3N3LCBcCi0gIC5wcml2YXRlX3ZhbHVlID0gcmVnMSB8IChyZWcyIDw8IDgpIHwgKGxlZnRfc2hpZnQgPDwgMTYpIHwgKHJpZ2h0X3NoaWZ0IDw8IDI0KSB9Ci0KLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9pbmZvX2lucHV0X3N3KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQotewotCXVpbmZvLT50eXBlID0gU05EUlZfQ1RMX0VMRU1fVFlQRV9CT09MRUFOOwotCXVpbmZvLT5jb3VudCA9IDQ7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSAxOwotCXJldHVybiAwOwotfQotIAotc3RhdGljIGludCBzbmRfYWs0NTMxX2dldF9pbnB1dF9zdyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQlpbnQgcmVnMSA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgcmVnMiA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7Ci0JaW50IGxlZnRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwZjsKLQlpbnQgcmlnaHRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHgwZjsKLQotCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IChhazQ1MzEtPnJlZ3NbcmVnMV0gPj4gbGVmdF9zaGlmdCkgJiAxOwotCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gKGFrNDUzMS0+cmVnc1tyZWcyXSA+PiBsZWZ0X3NoaWZ0KSAmIDE7Ci0JdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMl0gPSAoYWs0NTMxLT5yZWdzW3JlZzFdID4+IHJpZ2h0X3NoaWZ0KSAmIDE7Ci0JdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbM10gPSAoYWs0NTMxLT5yZWdzW3JlZzJdID4+IHJpZ2h0X3NoaWZ0KSAmIDE7Ci0JbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9wdXRfaW5wdXRfc3coc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JaW50IHJlZzEgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHJlZzIgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOwotCWludCBsZWZ0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MGY7Ci0JaW50IHJpZ2h0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4MGY7Ci0JaW50IGNoYW5nZTsKLQlpbnQgdmFsMSwgdmFsMjsKLQotCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQl2YWwxID0gYWs0NTMxLT5yZWdzW3JlZzFdICYgfigoMSA8PCBsZWZ0X3NoaWZ0KSB8ICgxIDw8IHJpZ2h0X3NoaWZ0KSk7Ci0JdmFsMiA9IGFrNDUzMS0+cmVnc1tyZWcyXSAmIH4oKDEgPDwgbGVmdF9zaGlmdCkgfCAoMSA8PCByaWdodF9zaGlmdCkpOwotCXZhbDEgfD0gKHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdICYgMSkgPDwgbGVmdF9zaGlmdDsKLQl2YWwyIHw9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSAmIDEpIDw8IGxlZnRfc2hpZnQ7Ci0JdmFsMSB8PSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMl0gJiAxKSA8PCByaWdodF9zaGlmdDsKLQl2YWwyIHw9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVszXSAmIDEpIDw8IHJpZ2h0X3NoaWZ0OwotCWNoYW5nZSA9IHZhbDEgIT0gYWs0NTMxLT5yZWdzW3JlZzFdIHx8IHZhbDIgIT0gYWs0NTMxLT5yZWdzW3JlZzJdOwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCByZWcxLCBhazQ1MzEtPnJlZ3NbcmVnMV0gPSB2YWwxKTsKLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgcmVnMiwgYWs0NTMxLT5yZWdzW3JlZzJdID0gdmFsMik7Ci0JbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JcmV0dXJuIGNoYW5nZTsKLX0KLQotc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKGRiX3NjYWxlX21hc3RlciwgLTYyMDAsIDIwMCwgMCk7Ci1zdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoZGJfc2NhbGVfbW9ubywgLTI4MDAsIDQwMCwgMCk7Ci1zdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoZGJfc2NhbGVfaW5wdXQsIC01MDAwLCAyMDAsIDApOwotCi1zdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc25kX2FrNDUzMV9jb250cm9sc1tdID0gewotCi1BSzQ1MzFfRE9VQkxFX1RMVigiTWFzdGVyIFBsYXliYWNrIFN3aXRjaCIsIDAsCi0JCSAgQUs0NTMxX0xNQVNURVIsIEFLNDUzMV9STUFTVEVSLCA3LCA3LCAxLCAxLAotCQkgIGRiX3NjYWxlX21hc3RlciksCi1BSzQ1MzFfRE9VQkxFKCJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwgMCwgQUs0NTMxX0xNQVNURVIsIEFLNDUzMV9STUFTVEVSLCAwLCAwLCAweDFmLCAxKSwKLQotQUs0NTMxX1NJTkdMRV9UTFYoIk1hc3RlciBNb25vIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9NT05PX09VVCwgNywgMSwgMSwKLQkJICBkYl9zY2FsZV9tb25vKSwKLUFLNDUzMV9TSU5HTEUoIk1hc3RlciBNb25vIFBsYXliYWNrIFZvbHVtZSIsIDAsIEFLNDUzMV9NT05PX09VVCwgMCwgMHgwNywgMSksCi0KLUFLNDUzMV9ET1VCTEUoIlBDTSBTd2l0Y2giLCAwLCBBSzQ1MzFfTFZPSUNFLCBBSzQ1MzFfUlZPSUNFLCA3LCA3LCAxLCAxKSwKLUFLNDUzMV9ET1VCTEVfVExWKCJQQ00gVm9sdW1lIiwgMCwgQUs0NTMxX0xWT0lDRSwgQUs0NTMxX1JWT0lDRSwgMCwgMCwgMHgxZiwgMSwKLQkJICBkYl9zY2FsZV9pbnB1dCksCi1BSzQ1MzFfRE9VQkxFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzIsIEFLNDUzMV9PVVRfU1cyLCAzLCAyLCAxLCAwKSwKLUFLNDUzMV9ET1VCTEUoIlBDTSBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgMiwgMiwgMSwgMCksCi0KLUFLNDUzMV9ET1VCTEUoIlBDTSBTd2l0Y2giLCAxLCBBSzQ1MzFfTEZNLCBBSzQ1MzFfUkZNLCA3LCA3LCAxLCAxKSwKLUFLNDUzMV9ET1VCTEVfVExWKCJQQ00gVm9sdW1lIiwgMSwgQUs0NTMxX0xGTSwgQUs0NTMxX1JGTSwgMCwgMCwgMHgxZiwgMSwKLQkJICBkYl9zY2FsZV9pbnB1dCksCi1BSzQ1MzFfRE9VQkxFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgMSwgQUs0NTMxX09VVF9TVzEsIEFLNDUzMV9PVVRfU1cxLCA2LCA1LCAxLCAwKSwKLUFLNDUzMV9JTlBVVF9TVygiUENNIENhcHR1cmUgUm91dGUiLCAxLCBBSzQ1MzFfTElOX1NXMSwgQUs0NTMxX1JJTl9TVzEsIDYsIDUpLAotCi1BSzQ1MzFfRE9VQkxFKCJDRCBTd2l0Y2giLCAwLCBBSzQ1MzFfTENELCBBSzQ1MzFfUkNELCA3LCA3LCAxLCAxKSwKLUFLNDUzMV9ET1VCTEVfVExWKCJDRCBWb2x1bWUiLCAwLCBBSzQ1MzFfTENELCBBSzQ1MzFfUkNELCAwLCAwLCAweDFmLCAxLAotCQkgIGRiX3NjYWxlX2lucHV0KSwKLUFLNDUzMV9ET1VCTEUoIkNEIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cxLCBBSzQ1MzFfT1VUX1NXMSwgMiwgMSwgMSwgMCksCi1BSzQ1MzFfSU5QVVRfU1coIkNEIENhcHR1cmUgUm91dGUiLCAwLCBBSzQ1MzFfTElOX1NXMSwgQUs0NTMxX1JJTl9TVzEsIDIsIDEpLAotCi1BSzQ1MzFfRE9VQkxFKCJMaW5lIFN3aXRjaCIsIDAsIEFLNDUzMV9MTElORSwgQUs0NTMxX1JMSU5FLCA3LCA3LCAxLCAxKSwKLUFLNDUzMV9ET1VCTEVfVExWKCJMaW5lIFZvbHVtZSIsIDAsIEFLNDUzMV9MTElORSwgQUs0NTMxX1JMSU5FLCAwLCAwLCAweDFmLCAxLAotCQkgIGRiX3NjYWxlX2lucHV0KSwKLUFLNDUzMV9ET1VCTEUoIkxpbmUgUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzEsIEFLNDUzMV9PVVRfU1cxLCA0LCAzLCAxLCAwKSwKLUFLNDUzMV9JTlBVVF9TVygiTGluZSBDYXB0dXJlIFJvdXRlIiwgMCwgQUs0NTMxX0xJTl9TVzEsIEFLNDUzMV9SSU5fU1cxLCA0LCAzKSwKLQotQUs0NTMxX0RPVUJMRSgiQXV4IFN3aXRjaCIsIDAsIEFLNDUzMV9MQVVYQSwgQUs0NTMxX1JBVVhBLCA3LCA3LCAxLCAxKSwKLUFLNDUzMV9ET1VCTEVfVExWKCJBdXggVm9sdW1lIiwgMCwgQUs0NTMxX0xBVVhBLCBBSzQ1MzFfUkFVWEEsIDAsIDAsIDB4MWYsIDEsCi0JCSAgZGJfc2NhbGVfaW5wdXQpLAotQUs0NTMxX0RPVUJMRSgiQXV4IFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cyLCBBSzQ1MzFfT1VUX1NXMiwgNSwgNCwgMSwgMCksCi1BSzQ1MzFfSU5QVVRfU1coIkF1eCBDYXB0dXJlIFJvdXRlIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCA0LCAzKSwKLQotQUs0NTMxX1NJTkdMRSgiTW9ubyBTd2l0Y2giLCAwLCBBSzQ1MzFfTU9OTzEsIDcsIDEsIDEpLAotQUs0NTMxX1NJTkdMRV9UTFYoIk1vbm8gVm9sdW1lIiwgMCwgQUs0NTMxX01PTk8xLCAwLCAweDFmLCAxLCBkYl9zY2FsZV9pbnB1dCksCi1BSzQ1MzFfU0lOR0xFKCJNb25vIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cyLCAwLCAxLCAwKSwKLUFLNDUzMV9ET1VCTEUoIk1vbm8gQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDAsIDAsIDEsIDApLAotCi1BSzQ1MzFfU0lOR0xFKCJNb25vIFN3aXRjaCIsIDEsIEFLNDUzMV9NT05PMiwgNywgMSwgMSksCi1BSzQ1MzFfU0lOR0xFX1RMVigiTW9ubyBWb2x1bWUiLCAxLCBBSzQ1MzFfTU9OTzIsIDAsIDB4MWYsIDEsIGRiX3NjYWxlX2lucHV0KSwKLUFLNDUzMV9TSU5HTEUoIk1vbm8gUGxheWJhY2sgU3dpdGNoIiwgMSwgQUs0NTMxX09VVF9TVzIsIDEsIDEsIDApLAotQUs0NTMxX0RPVUJMRSgiTW9ubyBDYXB0dXJlIFN3aXRjaCIsIDEsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgMSwgMSwgMSwgMCksCi0KLUFLNDUzMV9TSU5HTEVfVExWKCJNaWMgVm9sdW1lIiwgMCwgQUs0NTMxX01JQywgMCwgMHgxZiwgMSwgZGJfc2NhbGVfaW5wdXQpLAotQUs0NTMxX1NJTkdMRSgiTWljIFN3aXRjaCIsIDAsIEFLNDUzMV9NSUMsIDcsIDEsIDEpLAotQUs0NTMxX1NJTkdMRSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cxLCAwLCAxLCAwKSwKLUFLNDUzMV9ET1VCTEUoIk1pYyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cxLCBBSzQ1MzFfUklOX1NXMSwgMCwgMCwgMSwgMCksCi0KLUFLNDUzMV9ET1VCTEUoIk1pYyBCeXBhc3MgQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDcsIDcsIDEsIDApLAotQUs0NTMxX0RPVUJMRSgiTW9ubzEgQnlwYXNzIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCA2LCA2LCAxLCAwKSwKLUFLNDUzMV9ET1VCTEUoIk1vbm8yIEJ5cGFzcyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgNSwgNSwgMSwgMCksCi0KLUFLNDUzMV9TSU5HTEUoIkFEIElucHV0IFNlbGVjdCIsIDAsIEFLNDUzMV9BRF9JTiwgMCwgMSwgMCksCi1BSzQ1MzFfU0lOR0xFKCJNaWMgQm9vc3QgKCszMGRCKSIsIDAsIEFLNDUzMV9NSUNfR0FJTiwgMCwgMSwgMCkKLX07Ci0KLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9mcmVlKHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCi17Ci0JaWYgKGFrNDUzMSkgewotCQlpZiAoYWs0NTMxLT5wcml2YXRlX2ZyZWUpCi0JCQlhazQ1MzEtPnByaXZhdGVfZnJlZShhazQ1MzEpOwotCQlrZnJlZShhazQ1MzEpOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfYWs0NTMxX2Rldl9mcmVlKHN0cnVjdCBzbmRfZGV2aWNlICpkZXZpY2UpCi17Ci0Jc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IGRldmljZS0+ZGV2aWNlX2RhdGE7Ci0JcmV0dXJuIHNuZF9hazQ1MzFfZnJlZShhazQ1MzEpOwotfQotCi1zdGF0aWMgdTggc25kX2FrNDUzMV9pbml0aWFsX21hcFsweDE5ICsgMV0gPSB7Ci0JMHg5ZiwJCS8qIDAwOiBNYXN0ZXIgVm9sdW1lIExjaCAqLwotCTB4OWYsCQkvKiAwMTogTWFzdGVyIFZvbHVtZSBSY2ggKi8KLQkweDlmLAkJLyogMDI6IFZvaWNlIFZvbHVtZSBMY2ggKi8KLQkweDlmLAkJLyogMDM6IFZvaWNlIFZvbHVtZSBSY2ggKi8KLQkweDlmLAkJLyogMDQ6IEZNIFZvbHVtZSBMY2ggKi8KLQkweDlmLAkJLyogMDU6IEZNIFZvbHVtZSBSY2ggKi8KLQkweDlmLAkJLyogMDY6IENEIEF1ZGlvIFZvbHVtZSBMY2ggKi8KLQkweDlmLAkJLyogMDc6IENEIEF1ZGlvIFZvbHVtZSBSY2ggKi8KLQkweDlmLAkJLyogMDg6IExpbmUgVm9sdW1lIExjaCAqLwotCTB4OWYsCQkvKiAwOTogTGluZSBWb2x1bWUgUmNoICovCi0JMHg5ZiwJCS8qIDBhOiBBdXggVm9sdW1lIExjaCAqLwotCTB4OWYsCQkvKiAwYjogQXV4IFZvbHVtZSBSY2ggKi8KLQkweDlmLAkJLyogMGM6IE1vbm8xIFZvbHVtZSAqLwotCTB4OWYsCQkvKiAwZDogTW9ubzIgVm9sdW1lICovCi0JMHg5ZiwJCS8qIDBlOiBNaWMgVm9sdW1lICovCi0JMHg4NywJCS8qIDBmOiBNb25vLW91dCBWb2x1bWUgKi8KLQkweDAwLAkJLyogMTA6IE91dHB1dCBNaXhlciBTVzEgKi8KLQkweDAwLAkJLyogMTE6IE91dHB1dCBNaXhlciBTVzIgKi8KLQkweDAwLAkJLyogMTI6IExjaCBJbnB1dCBNaXhlciBTVzEgKi8KLQkweDAwLAkJLyogMTM6IFJjaCBJbnB1dCBNaXhlciBTVzEgKi8KLQkweDAwLAkJLyogMTQ6IExjaCBJbnB1dCBNaXhlciBTVzIgKi8KLQkweDAwLAkJLyogMTU6IFJjaCBJbnB1dCBNaXhlciBTVzIgKi8KLQkweDAwLAkJLyogMTY6IFJlc2V0ICYgUG93ZXIgRG93biAqLwotCTB4MDAsCQkvKiAxNzogQ2xvY2sgU2VsZWN0ICovCi0JMHgwMCwJCS8qIDE4OiBBRCBJbnB1dCBTZWxlY3QgKi8KLQkweDAxCQkvKiAxOTogTWljIEFtcCBTZXR1cCAqLwotfTsKLQotaW50IHNuZF9hazQ1MzFfbWl4ZXIoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2FrNDUzMSAqX2FrNDUzMSwKLQkJICAgICBzdHJ1Y3Qgc25kX2FrNDUzMSAqKnJhazQ1MzEpCi17Ci0JdW5zaWduZWQgaW50IGlkeDsKLQlpbnQgZXJyOwotCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzE7Ci0Jc3RhdGljIHN0cnVjdCBzbmRfZGV2aWNlX29wcyBvcHMgPSB7Ci0JCS5kZXZfZnJlZSA9CXNuZF9hazQ1MzFfZGV2X2ZyZWUsCi0JfTsKLQotCXNuZF9hc3NlcnQocmFrNDUzMSAhPSBOVUxMLCByZXR1cm4gLUVJTlZBTCk7Ci0JKnJhazQ1MzEgPSBOVUxMOwotCXNuZF9hc3NlcnQoY2FyZCAhPSBOVUxMICYmIF9hazQ1MzEgIT0gTlVMTCwgcmV0dXJuIC1FSU5WQUwpOwotCWFrNDUzMSA9IGt6YWxsb2Moc2l6ZW9mKCphazQ1MzEpLCBHRlBfS0VSTkVMKTsKLQlpZiAoYWs0NTMxID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCSphazQ1MzEgPSAqX2FrNDUzMTsKLQltdXRleF9pbml0KCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JaWYgKChlcnIgPSBzbmRfY29tcG9uZW50X2FkZChjYXJkLCAiQUs0NTMxIikpIDwgMCkgewotCQlzbmRfYWs0NTMxX2ZyZWUoYWs0NTMxKTsKLQkJcmV0dXJuIGVycjsKLQl9Ci0Jc3RyY3B5KGNhcmQtPm1peGVybmFtZSwgIkFzYWhpIEthc2VpIEFLNDUzMSIpOwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfUkVTRVQsIDB4MDMpOwkvKiBubyBSU1QsIFBEICovCi0JdWRlbGF5KDEwMCk7Ci0JYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9DTE9DSywgMHgwMCk7CS8qIENPREVDIEFEQyBhbmQgQ09ERUMgREFDIHVzZSB7TFIsQn1DTEsyIGFuZCBydW4gb2ZmIExSQ0xLMiBQTEwgKi8KLQlmb3IgKGlkeCA9IDA7IGlkeCA8PSAweDE5OyBpZHgrKykgewotCQlpZiAoaWR4ID09IEFLNDUzMV9SRVNFVCB8fCBpZHggPT0gQUs0NTMxX0NMT0NLKQotCQkJY29udGludWU7Ci0JCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBpZHgsIGFrNDUzMS0+cmVnc1tpZHhdID0gc25kX2FrNDUzMV9pbml0aWFsX21hcFtpZHhdKTsJLyogcmVjb3JkaW5nIHNvdXJjZSBpcyBtaXhlciAqLwotCX0KLQlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX2FrNDUzMV9jb250cm9scyk7IGlkeCsrKSB7Ci0JCWlmICgoZXJyID0gc25kX2N0bF9hZGQoY2FyZCwgc25kX2N0bF9uZXcxKCZzbmRfYWs0NTMxX2NvbnRyb2xzW2lkeF0sIGFrNDUzMSkpKSA8IDApIHsKLQkJCXNuZF9hazQ1MzFfZnJlZShhazQ1MzEpOwotCQkJcmV0dXJuIGVycjsKLQkJfQotCX0KLQlzbmRfYWs0NTMxX3Byb2NfaW5pdChjYXJkLCBhazQ1MzEpOwotCWlmICgoZXJyID0gc25kX2RldmljZV9uZXcoY2FyZCwgU05EUlZfREVWX0NPREVDLCBhazQ1MzEsICZvcHMpKSA8IDApIHsKLQkJc25kX2FrNDUzMV9mcmVlKGFrNDUzMSk7Ci0JCXJldHVybiBlcnI7Ci0JfQotCi0jaWYgMAotCXNuZF9hazQ1MzFfZHVtcChhazQ1MzEpOwotI2VuZGlmCi0JKnJhazQ1MzEgPSBhazQ1MzE7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBwb3dlciBtYW5hZ2VtZW50Ci0gKi8KLSNpZmRlZiBDT05GSUdfUE0KLXZvaWQgc25kX2FrNDUzMV9zdXNwZW5kKHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCi17Ci0JLyogbXV0ZSAqLwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfTE1BU1RFUiwgMHg5Zik7Ci0JYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9STUFTVEVSLCAweDlmKTsKLQkvKiBwb3dlcmRvd24gKi8KLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX1JFU0VULCAweDAxKTsKLX0KLQotdm9pZCBzbmRfYWs0NTMxX3Jlc3VtZShzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQotewotCWludCBpZHg7Ci0KLQkvKiBpbml0aWFsaXplICovCi0JYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9SRVNFVCwgMHgwMyk7Ci0JdWRlbGF5KDEwMCk7Ci0JYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9DTE9DSywgMHgwMCk7Ci0JLyogcmVzdG9yZSBtaXhlciByZWdpc3RlcnMgKi8KLQlmb3IgKGlkeCA9IDA7IGlkeCA8PSAweDE5OyBpZHgrKykgewotCQlpZiAoaWR4ID09IEFLNDUzMV9SRVNFVCB8fCBpZHggPT0gQUs0NTMxX0NMT0NLKQotCQkJY29udGludWU7Ci0JCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBpZHgsIGFrNDUzMS0+cmVnc1tpZHhdKTsKLQl9Ci19Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19QUk9DX0ZTCi0vKgotICogL3Byb2MgaW50ZXJmYWNlCi0gKi8KLQotc3RhdGljIHZvaWQgc25kX2FrNDUzMV9wcm9jX3JlYWQoc3RydWN0IHNuZF9pbmZvX2VudHJ5ICplbnRyeSwgCi0JCQkJIHN0cnVjdCBzbmRfaW5mb19idWZmZXIgKmJ1ZmZlcikKLXsKLQlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gZW50cnktPnByaXZhdGVfZGF0YTsKLQotCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIkFzYWhpIEthc2VpIEFLNDUzMVxuXG4iKTsKLQlzbmRfaXByaW50ZihidWZmZXIsICJSZWNvcmRpbmcgc291cmNlICAgOiAlc1xuIgotCQkgICAgIk1JQyBnYWluICAgICAgICAgICA6ICVzXG4iLAotCQkgICAgYWs0NTMxLT5yZWdzW0FLNDUzMV9BRF9JTl0gJiAxID8gImV4dGVybmFsIiA6ICJtaXhlciIsCi0JCSAgICBhazQ1MzEtPnJlZ3NbQUs0NTMxX01JQ19HQUlOXSAmIDEgPyAiKzMwZEIiIDogIiswZEIiKTsKLX0KLQotc3RhdGljIHZvaWQgc25kX2FrNDUzMV9wcm9jX2luaXQoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQotewotCXN0cnVjdCBzbmRfaW5mb19lbnRyeSAqZW50cnk7Ci0KLQlpZiAoISBzbmRfY2FyZF9wcm9jX25ldyhjYXJkLCAiYWs0NTMxIiwgJmVudHJ5KSkKLQkJc25kX2luZm9fc2V0X3RleHRfb3BzKGVudHJ5LCBhazQ1MzEsIHNuZF9hazQ1MzFfcHJvY19yZWFkKTsKLX0KLSNlbmRpZgotCi1FWFBPUlRfU1lNQk9MKHNuZF9hazQ1MzFfbWl4ZXIpOwotI2lmZGVmIENPTkZJR19QTQotRVhQT1JUX1NZTUJPTChzbmRfYWs0NTMxX3N1c3BlbmQpOwotRVhQT1JUX1NZTUJPTChzbmRfYWs0NTMxX3Jlc3VtZSk7Ci0jZW5kaWYKLQotLyoKLSAqICBJTklUIHBhcnQKLSAqLwotCi1zdGF0aWMgaW50IF9faW5pdCBhbHNhX2FrNDUzMV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBhbHNhX2FrNDUzMV9leGl0KHZvaWQpCi17Ci19Ci0KLW1vZHVsZV9pbml0KGFsc2FfYWs0NTMxX2luaXQpCi1tb2R1bGVfZXhpdChhbHNhX2FrNDUzMV9leGl0KQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2FrNDUzMV9jb2RlYy5jIGIvc291bmQvcGNpL2FrNDUzMV9jb2RlYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZDM3YjEKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9wY2kvYWs0NTMxX2NvZGVjLmMKQEAgLTAsMCArMSw0OTAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSBieSBKYXJvc2xhdiBLeXNlbGEgPHBlcmV4QHBlcmV4LmN6PgorICogIFVuaXZlcnNhbCByb3V0aW5lcyBmb3IgQUs0NTMxIGNvZGVjCisgKgorICoKKyAqICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyBVU0EKKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL2FrNDUzMV9jb2RlYy5oPgorI2luY2x1ZGUgPHNvdW5kL3Rsdi5oPgorCisvKgorTU9EVUxFX0FVVEhPUigiSmFyb3NsYXYgS3lzZWxhIDxwZXJleEBwZXJleC5jej4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiVW5pdmVyc2FsIHJvdXRpbmVzIGZvciBBSzQ1MzEgY29kZWMiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKyovCisKKyNpZmRlZiBDT05GSUdfUFJPQ19GUworc3RhdGljIHZvaWQgc25kX2FrNDUzMV9wcm9jX2luaXQoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKTsKKyNlbHNlCisjZGVmaW5lIHNuZF9hazQ1MzFfcHJvY19pbml0KGNhcmQsYWspCisjZW5kaWYKKworLyoKKyAqCisgKi8KKyAKKyNpZiAwCisKK3N0YXRpYyB2b2lkIHNuZF9hazQ1MzFfZHVtcChzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQoreworCWludCBpZHg7CisJCisJZm9yIChpZHggPSAwOyBpZHggPCAweDE5OyBpZHgrKykKKwkJcHJpbnRrKCJhazQ1MzEgMHgleDogMHgleFxuIiwgaWR4LCBhazQ1MzEtPnJlZ3NbaWR4XSk7Cit9CisKKyNlbmRpZgorCisvKgorICoKKyAqLworCisjZGVmaW5lIEFLNDUzMV9TSU5HTEUoeG5hbWUsIHhpbmRleCwgcmVnLCBzaGlmdCwgbWFzaywgaW52ZXJ0KSBcCit7IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKKyAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9fc2luZ2xlLCBcCisgIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9zaW5nbGUsIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9zaW5nbGUsIFwKKyAgLnByaXZhdGVfdmFsdWUgPSByZWcgfCAoc2hpZnQgPDwgMTYpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMikgfQorI2RlZmluZSBBSzQ1MzFfU0lOR0xFX1RMVih4bmFtZSwgeGluZGV4LCByZWcsIHNoaWZ0LCBtYXNrLCBpbnZlcnQsIHh0bHYpICAgIFwKK3sgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIFwKKyAgLmFjY2VzcyA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUgfCBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfVExWX1JFQUQsIFwKKyAgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCisgIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX3NpbmdsZSwgXAorICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfc2luZ2xlLCAucHV0ID0gc25kX2FrNDUzMV9wdXRfc2luZ2xlLCBcCisgIC5wcml2YXRlX3ZhbHVlID0gcmVnIHwgKHNoaWZ0IDw8IDE2KSB8IChtYXNrIDw8IDI0KSB8IChpbnZlcnQgPDwgMjIpLCBcCisgIC50bHYgPSB7IC5wID0gKHh0bHYpIH0gfQorCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfaW5mb19zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCit7CisJaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKKworCXVpbmZvLT50eXBlID0gbWFzayA9PSAxID8gU05EUlZfQ1RMX0VMRU1fVFlQRV9CT09MRUFOIDogU05EUlZfQ1RMX0VMRU1fVFlQRV9JTlRFR0VSOworCXVpbmZvLT5jb3VudCA9IDE7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSBtYXNrOworCXJldHVybiAwOworfQorIAorc3RhdGljIGludCBzbmRfYWs0NTMxX2dldF9zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IHJlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKKwlpbnQgc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKKwlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOworCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKKwlpbnQgdmFsOworCisJbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCXZhbCA9IChhazQ1MzEtPnJlZ3NbcmVnXSA+PiBzaGlmdCkgJiBtYXNrOworCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCWlmIChpbnZlcnQpIHsKKwkJdmFsID0gbWFzayAtIHZhbDsKKwl9CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSB2YWw7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9wdXRfc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IHNoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MDc7CisJaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKKwlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDIyKSAmIDE7CisJaW50IGNoYW5nZTsKKwlpbnQgdmFsOworCisJdmFsID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gJiBtYXNrOworCWlmIChpbnZlcnQpIHsKKwkJdmFsID0gbWFzayAtIHZhbDsKKwl9CisJdmFsIDw8PSBzaGlmdDsKKwltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJdmFsID0gKGFrNDUzMS0+cmVnc1tyZWddICYgfihtYXNrIDw8IHNoaWZ0KSkgfCB2YWw7CisJY2hhbmdlID0gdmFsICE9IGFrNDUzMS0+cmVnc1tyZWddOworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCByZWcsIGFrNDUzMS0+cmVnc1tyZWddID0gdmFsKTsKKwltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwlyZXR1cm4gY2hhbmdlOworfQorCisjZGVmaW5lIEFLNDUzMV9ET1VCTEUoeG5hbWUsIHhpbmRleCwgbGVmdF9yZWcsIHJpZ2h0X3JlZywgbGVmdF9zaGlmdCwgcmlnaHRfc2hpZnQsIG1hc2ssIGludmVydCkgXAoreyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCisgIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX2RvdWJsZSwgXAorICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfZG91YmxlLCAucHV0ID0gc25kX2FrNDUzMV9wdXRfZG91YmxlLCBcCisgIC5wcml2YXRlX3ZhbHVlID0gbGVmdF9yZWcgfCAocmlnaHRfcmVnIDw8IDgpIHwgKGxlZnRfc2hpZnQgPDwgMTYpIHwgKHJpZ2h0X3NoaWZ0IDw8IDE5KSB8IChtYXNrIDw8IDI0KSB8IChpbnZlcnQgPDwgMjIpIH0KKyNkZWZpbmUgQUs0NTMxX0RPVUJMRV9UTFYoeG5hbWUsIHhpbmRleCwgbGVmdF9yZWcsIHJpZ2h0X3JlZywgbGVmdF9zaGlmdCwgcmlnaHRfc2hpZnQsIG1hc2ssIGludmVydCwgeHRsdikgXAoreyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgXAorICAuYWNjZXNzID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSB8IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRCwgXAorICAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKKyAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9fZG91YmxlLCBcCisgIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9kb3VibGUsIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9kb3VibGUsIFwKKyAgLnByaXZhdGVfdmFsdWUgPSBsZWZ0X3JlZyB8IChyaWdodF9yZWcgPDwgOCkgfCAobGVmdF9zaGlmdCA8PCAxNikgfCAocmlnaHRfc2hpZnQgPDwgMTkpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMiksIFwKKyAgLnRsdiA9IHsgLnAgPSAoeHRsdikgfSB9CisKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9pbmZvX2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOworCisJdWluZm8tPnR5cGUgPSBtYXNrID09IDEgPyBTTkRSVl9DVExfRUxFTV9UWVBFX0JPT0xFQU4gOiBTTkRSVl9DVExfRUxFTV9UWVBFX0lOVEVHRVI7CisJdWluZm8tPmNvdW50ID0gMjsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IG1hc2s7CisJcmV0dXJuIDA7Cit9CisgCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfZ2V0X2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgbGVmdF9yZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IHJpZ2h0X3JlZyA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7CisJaW50IGxlZnRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKKwlpbnQgcmlnaHRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTkpICYgMHgwNzsKKwlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOworCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKKwlpbnQgbGVmdCwgcmlnaHQ7CisKKwltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJbGVmdCA9IChhazQ1MzEtPnJlZ3NbbGVmdF9yZWddID4+IGxlZnRfc2hpZnQpICYgbWFzazsKKwlyaWdodCA9IChhazQ1MzEtPnJlZ3NbcmlnaHRfcmVnXSA+PiByaWdodF9zaGlmdCkgJiBtYXNrOworCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCWlmIChpbnZlcnQpIHsKKwkJbGVmdCA9IG1hc2sgLSBsZWZ0OworCQlyaWdodCA9IG1hc2sgLSByaWdodDsKKwl9CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBsZWZ0OworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gcmlnaHQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9wdXRfZG91YmxlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCBsZWZ0X3JlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKKwlpbnQgcmlnaHRfcmVnID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKKwlpbnQgbGVmdF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OworCWludCByaWdodF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxOSkgJiAweDA3OworCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7CisJaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOworCWludCBjaGFuZ2U7CisJaW50IGxlZnQsIHJpZ2h0OworCisJbGVmdCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdICYgbWFzazsKKwlyaWdodCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdICYgbWFzazsKKwlpZiAoaW52ZXJ0KSB7CisJCWxlZnQgPSBtYXNrIC0gbGVmdDsKKwkJcmlnaHQgPSBtYXNrIC0gcmlnaHQ7CisJfQorCWxlZnQgPDw9IGxlZnRfc2hpZnQ7CisJcmlnaHQgPDw9IHJpZ2h0X3NoaWZ0OworCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwlpZiAobGVmdF9yZWcgPT0gcmlnaHRfcmVnKSB7CisJCWxlZnQgPSAoYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSAmIH4oKG1hc2sgPDwgbGVmdF9zaGlmdCkgfCAobWFzayA8PCByaWdodF9zaGlmdCkpKSB8IGxlZnQgfCByaWdodDsKKwkJY2hhbmdlID0gbGVmdCAhPSBhazQ1MzEtPnJlZ3NbbGVmdF9yZWddOworCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgbGVmdF9yZWcsIGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gPSBsZWZ0KTsKKwl9IGVsc2UgeworCQlsZWZ0ID0gKGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gJiB+KG1hc2sgPDwgbGVmdF9zaGlmdCkpIHwgbGVmdDsKKwkJcmlnaHQgPSAoYWs0NTMxLT5yZWdzW3JpZ2h0X3JlZ10gJiB+KG1hc2sgPDwgcmlnaHRfc2hpZnQpKSB8IHJpZ2h0OworCQljaGFuZ2UgPSBsZWZ0ICE9IGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gfHwgcmlnaHQgIT0gYWs0NTMxLT5yZWdzW3JpZ2h0X3JlZ107CisJCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBsZWZ0X3JlZywgYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSA9IGxlZnQpOworCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgcmlnaHRfcmVnLCBhazQ1MzEtPnJlZ3NbcmlnaHRfcmVnXSA9IHJpZ2h0KTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJcmV0dXJuIGNoYW5nZTsKK30KKworI2RlZmluZSBBSzQ1MzFfSU5QVVRfU1coeG5hbWUsIHhpbmRleCwgcmVnMSwgcmVnMiwgbGVmdF9zaGlmdCwgcmlnaHRfc2hpZnQpIFwKK3sgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAorICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19pbnB1dF9zdywgXAorICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfaW5wdXRfc3csIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9pbnB1dF9zdywgXAorICAucHJpdmF0ZV92YWx1ZSA9IHJlZzEgfCAocmVnMiA8PCA4KSB8IChsZWZ0X3NoaWZ0IDw8IDE2KSB8IChyaWdodF9zaGlmdCA8PCAyNCkgfQorCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfaW5mb19pbnB1dF9zdyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwl1aW5mby0+dHlwZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfQk9PTEVBTjsKKwl1aW5mby0+Y291bnQgPSA0OworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gMTsKKwlyZXR1cm4gMDsKK30KKyAKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9nZXRfaW5wdXRfc3coc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IHJlZzEgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IHJlZzIgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOworCWludCBsZWZ0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MGY7CisJaW50IHJpZ2h0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4MGY7CisKKwltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSAoYWs0NTMxLT5yZWdzW3JlZzFdID4+IGxlZnRfc2hpZnQpICYgMTsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSA9IChhazQ1MzEtPnJlZ3NbcmVnMl0gPj4gbGVmdF9zaGlmdCkgJiAxOworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzJdID0gKGFrNDUzMS0+cmVnc1tyZWcxXSA+PiByaWdodF9zaGlmdCkgJiAxOworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzNdID0gKGFrNDUzMS0+cmVnc1tyZWcyXSA+PiByaWdodF9zaGlmdCkgJiAxOworCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfcHV0X2lucHV0X3N3KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCByZWcxID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCByZWcyID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKKwlpbnQgbGVmdF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDBmOworCWludCByaWdodF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweDBmOworCWludCBjaGFuZ2U7CisJaW50IHZhbDEsIHZhbDI7CisKKwltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJdmFsMSA9IGFrNDUzMS0+cmVnc1tyZWcxXSAmIH4oKDEgPDwgbGVmdF9zaGlmdCkgfCAoMSA8PCByaWdodF9zaGlmdCkpOworCXZhbDIgPSBhazQ1MzEtPnJlZ3NbcmVnMl0gJiB+KCgxIDw8IGxlZnRfc2hpZnQpIHwgKDEgPDwgcmlnaHRfc2hpZnQpKTsKKwl2YWwxIHw9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSAmIDEpIDw8IGxlZnRfc2hpZnQ7CisJdmFsMiB8PSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gJiAxKSA8PCBsZWZ0X3NoaWZ0OworCXZhbDEgfD0gKHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzJdICYgMSkgPDwgcmlnaHRfc2hpZnQ7CisJdmFsMiB8PSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbM10gJiAxKSA8PCByaWdodF9zaGlmdDsKKwljaGFuZ2UgPSB2YWwxICE9IGFrNDUzMS0+cmVnc1tyZWcxXSB8fCB2YWwyICE9IGFrNDUzMS0+cmVnc1tyZWcyXTsKKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgcmVnMSwgYWs0NTMxLT5yZWdzW3JlZzFdID0gdmFsMSk7CisJYWs0NTMxLT53cml0ZShhazQ1MzEsIHJlZzIsIGFrNDUzMS0+cmVnc1tyZWcyXSA9IHZhbDIpOworCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCXJldHVybiBjaGFuZ2U7Cit9CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShkYl9zY2FsZV9tYXN0ZXIsIC02MjAwLCAyMDAsIDApOworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKGRiX3NjYWxlX21vbm8sIC0yODAwLCA0MDAsIDApOworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKGRiX3NjYWxlX2lucHV0LCAtNTAwMCwgMjAwLCAwKTsKKworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNuZF9hazQ1MzFfY29udHJvbHNbXSBfX2RldmluaXRkYXRhID0geworCitBSzQ1MzFfRE9VQkxFX1RMVigiTWFzdGVyIFBsYXliYWNrIFN3aXRjaCIsIDAsCisJCSAgQUs0NTMxX0xNQVNURVIsIEFLNDUzMV9STUFTVEVSLCA3LCA3LCAxLCAxLAorCQkgIGRiX3NjYWxlX21hc3RlciksCitBSzQ1MzFfRE9VQkxFKCJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwgMCwgQUs0NTMxX0xNQVNURVIsIEFLNDUzMV9STUFTVEVSLCAwLCAwLCAweDFmLCAxKSwKKworQUs0NTMxX1NJTkdMRV9UTFYoIk1hc3RlciBNb25vIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9NT05PX09VVCwgNywgMSwgMSwKKwkJICBkYl9zY2FsZV9tb25vKSwKK0FLNDUzMV9TSU5HTEUoIk1hc3RlciBNb25vIFBsYXliYWNrIFZvbHVtZSIsIDAsIEFLNDUzMV9NT05PX09VVCwgMCwgMHgwNywgMSksCisKK0FLNDUzMV9ET1VCTEUoIlBDTSBTd2l0Y2giLCAwLCBBSzQ1MzFfTFZPSUNFLCBBSzQ1MzFfUlZPSUNFLCA3LCA3LCAxLCAxKSwKK0FLNDUzMV9ET1VCTEVfVExWKCJQQ00gVm9sdW1lIiwgMCwgQUs0NTMxX0xWT0lDRSwgQUs0NTMxX1JWT0lDRSwgMCwgMCwgMHgxZiwgMSwKKwkJICBkYl9zY2FsZV9pbnB1dCksCitBSzQ1MzFfRE9VQkxFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzIsIEFLNDUzMV9PVVRfU1cyLCAzLCAyLCAxLCAwKSwKK0FLNDUzMV9ET1VCTEUoIlBDTSBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgMiwgMiwgMSwgMCksCisKK0FLNDUzMV9ET1VCTEUoIlBDTSBTd2l0Y2giLCAxLCBBSzQ1MzFfTEZNLCBBSzQ1MzFfUkZNLCA3LCA3LCAxLCAxKSwKK0FLNDUzMV9ET1VCTEVfVExWKCJQQ00gVm9sdW1lIiwgMSwgQUs0NTMxX0xGTSwgQUs0NTMxX1JGTSwgMCwgMCwgMHgxZiwgMSwKKwkJICBkYl9zY2FsZV9pbnB1dCksCitBSzQ1MzFfRE9VQkxFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgMSwgQUs0NTMxX09VVF9TVzEsIEFLNDUzMV9PVVRfU1cxLCA2LCA1LCAxLCAwKSwKK0FLNDUzMV9JTlBVVF9TVygiUENNIENhcHR1cmUgUm91dGUiLCAxLCBBSzQ1MzFfTElOX1NXMSwgQUs0NTMxX1JJTl9TVzEsIDYsIDUpLAorCitBSzQ1MzFfRE9VQkxFKCJDRCBTd2l0Y2giLCAwLCBBSzQ1MzFfTENELCBBSzQ1MzFfUkNELCA3LCA3LCAxLCAxKSwKK0FLNDUzMV9ET1VCTEVfVExWKCJDRCBWb2x1bWUiLCAwLCBBSzQ1MzFfTENELCBBSzQ1MzFfUkNELCAwLCAwLCAweDFmLCAxLAorCQkgIGRiX3NjYWxlX2lucHV0KSwKK0FLNDUzMV9ET1VCTEUoIkNEIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cxLCBBSzQ1MzFfT1VUX1NXMSwgMiwgMSwgMSwgMCksCitBSzQ1MzFfSU5QVVRfU1coIkNEIENhcHR1cmUgUm91dGUiLCAwLCBBSzQ1MzFfTElOX1NXMSwgQUs0NTMxX1JJTl9TVzEsIDIsIDEpLAorCitBSzQ1MzFfRE9VQkxFKCJMaW5lIFN3aXRjaCIsIDAsIEFLNDUzMV9MTElORSwgQUs0NTMxX1JMSU5FLCA3LCA3LCAxLCAxKSwKK0FLNDUzMV9ET1VCTEVfVExWKCJMaW5lIFZvbHVtZSIsIDAsIEFLNDUzMV9MTElORSwgQUs0NTMxX1JMSU5FLCAwLCAwLCAweDFmLCAxLAorCQkgIGRiX3NjYWxlX2lucHV0KSwKK0FLNDUzMV9ET1VCTEUoIkxpbmUgUGxheWJhY2sgU3dpdGNoIiwgMCwgQUs0NTMxX09VVF9TVzEsIEFLNDUzMV9PVVRfU1cxLCA0LCAzLCAxLCAwKSwKK0FLNDUzMV9JTlBVVF9TVygiTGluZSBDYXB0dXJlIFJvdXRlIiwgMCwgQUs0NTMxX0xJTl9TVzEsIEFLNDUzMV9SSU5fU1cxLCA0LCAzKSwKKworQUs0NTMxX0RPVUJMRSgiQXV4IFN3aXRjaCIsIDAsIEFLNDUzMV9MQVVYQSwgQUs0NTMxX1JBVVhBLCA3LCA3LCAxLCAxKSwKK0FLNDUzMV9ET1VCTEVfVExWKCJBdXggVm9sdW1lIiwgMCwgQUs0NTMxX0xBVVhBLCBBSzQ1MzFfUkFVWEEsIDAsIDAsIDB4MWYsIDEsCisJCSAgZGJfc2NhbGVfaW5wdXQpLAorQUs0NTMxX0RPVUJMRSgiQXV4IFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cyLCBBSzQ1MzFfT1VUX1NXMiwgNSwgNCwgMSwgMCksCitBSzQ1MzFfSU5QVVRfU1coIkF1eCBDYXB0dXJlIFJvdXRlIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCA0LCAzKSwKKworQUs0NTMxX1NJTkdMRSgiTW9ubyBTd2l0Y2giLCAwLCBBSzQ1MzFfTU9OTzEsIDcsIDEsIDEpLAorQUs0NTMxX1NJTkdMRV9UTFYoIk1vbm8gVm9sdW1lIiwgMCwgQUs0NTMxX01PTk8xLCAwLCAweDFmLCAxLCBkYl9zY2FsZV9pbnB1dCksCitBSzQ1MzFfU0lOR0xFKCJNb25vIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cyLCAwLCAxLCAwKSwKK0FLNDUzMV9ET1VCTEUoIk1vbm8gQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDAsIDAsIDEsIDApLAorCitBSzQ1MzFfU0lOR0xFKCJNb25vIFN3aXRjaCIsIDEsIEFLNDUzMV9NT05PMiwgNywgMSwgMSksCitBSzQ1MzFfU0lOR0xFX1RMVigiTW9ubyBWb2x1bWUiLCAxLCBBSzQ1MzFfTU9OTzIsIDAsIDB4MWYsIDEsIGRiX3NjYWxlX2lucHV0KSwKK0FLNDUzMV9TSU5HTEUoIk1vbm8gUGxheWJhY2sgU3dpdGNoIiwgMSwgQUs0NTMxX09VVF9TVzIsIDEsIDEsIDApLAorQUs0NTMxX0RPVUJMRSgiTW9ubyBDYXB0dXJlIFN3aXRjaCIsIDEsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgMSwgMSwgMSwgMCksCisKK0FLNDUzMV9TSU5HTEVfVExWKCJNaWMgVm9sdW1lIiwgMCwgQUs0NTMxX01JQywgMCwgMHgxZiwgMSwgZGJfc2NhbGVfaW5wdXQpLAorQUs0NTMxX1NJTkdMRSgiTWljIFN3aXRjaCIsIDAsIEFLNDUzMV9NSUMsIDcsIDEsIDEpLAorQUs0NTMxX1NJTkdMRSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cxLCAwLCAxLCAwKSwKK0FLNDUzMV9ET1VCTEUoIk1pYyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cxLCBBSzQ1MzFfUklOX1NXMSwgMCwgMCwgMSwgMCksCisKK0FLNDUzMV9ET1VCTEUoIk1pYyBCeXBhc3MgQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDcsIDcsIDEsIDApLAorQUs0NTMxX0RPVUJMRSgiTW9ubzEgQnlwYXNzIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCA2LCA2LCAxLCAwKSwKK0FLNDUzMV9ET1VCTEUoIk1vbm8yIEJ5cGFzcyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgNSwgNSwgMSwgMCksCisKK0FLNDUzMV9TSU5HTEUoIkFEIElucHV0IFNlbGVjdCIsIDAsIEFLNDUzMV9BRF9JTiwgMCwgMSwgMCksCitBSzQ1MzFfU0lOR0xFKCJNaWMgQm9vc3QgKCszMGRCKSIsIDAsIEFLNDUzMV9NSUNfR0FJTiwgMCwgMSwgMCkKK307CisKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9mcmVlKHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCit7CisJaWYgKGFrNDUzMSkgeworCQlpZiAoYWs0NTMxLT5wcml2YXRlX2ZyZWUpCisJCQlhazQ1MzEtPnByaXZhdGVfZnJlZShhazQ1MzEpOworCQlrZnJlZShhazQ1MzEpOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzbmRfYWs0NTMxX2Rldl9mcmVlKHN0cnVjdCBzbmRfZGV2aWNlICpkZXZpY2UpCit7CisJc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IGRldmljZS0+ZGV2aWNlX2RhdGE7CisJcmV0dXJuIHNuZF9hazQ1MzFfZnJlZShhazQ1MzEpOworfQorCitzdGF0aWMgdTggc25kX2FrNDUzMV9pbml0aWFsX21hcFsweDE5ICsgMV0gPSB7CisJMHg5ZiwJCS8qIDAwOiBNYXN0ZXIgVm9sdW1lIExjaCAqLworCTB4OWYsCQkvKiAwMTogTWFzdGVyIFZvbHVtZSBSY2ggKi8KKwkweDlmLAkJLyogMDI6IFZvaWNlIFZvbHVtZSBMY2ggKi8KKwkweDlmLAkJLyogMDM6IFZvaWNlIFZvbHVtZSBSY2ggKi8KKwkweDlmLAkJLyogMDQ6IEZNIFZvbHVtZSBMY2ggKi8KKwkweDlmLAkJLyogMDU6IEZNIFZvbHVtZSBSY2ggKi8KKwkweDlmLAkJLyogMDY6IENEIEF1ZGlvIFZvbHVtZSBMY2ggKi8KKwkweDlmLAkJLyogMDc6IENEIEF1ZGlvIFZvbHVtZSBSY2ggKi8KKwkweDlmLAkJLyogMDg6IExpbmUgVm9sdW1lIExjaCAqLworCTB4OWYsCQkvKiAwOTogTGluZSBWb2x1bWUgUmNoICovCisJMHg5ZiwJCS8qIDBhOiBBdXggVm9sdW1lIExjaCAqLworCTB4OWYsCQkvKiAwYjogQXV4IFZvbHVtZSBSY2ggKi8KKwkweDlmLAkJLyogMGM6IE1vbm8xIFZvbHVtZSAqLworCTB4OWYsCQkvKiAwZDogTW9ubzIgVm9sdW1lICovCisJMHg5ZiwJCS8qIDBlOiBNaWMgVm9sdW1lICovCisJMHg4NywJCS8qIDBmOiBNb25vLW91dCBWb2x1bWUgKi8KKwkweDAwLAkJLyogMTA6IE91dHB1dCBNaXhlciBTVzEgKi8KKwkweDAwLAkJLyogMTE6IE91dHB1dCBNaXhlciBTVzIgKi8KKwkweDAwLAkJLyogMTI6IExjaCBJbnB1dCBNaXhlciBTVzEgKi8KKwkweDAwLAkJLyogMTM6IFJjaCBJbnB1dCBNaXhlciBTVzEgKi8KKwkweDAwLAkJLyogMTQ6IExjaCBJbnB1dCBNaXhlciBTVzIgKi8KKwkweDAwLAkJLyogMTU6IFJjaCBJbnB1dCBNaXhlciBTVzIgKi8KKwkweDAwLAkJLyogMTY6IFJlc2V0ICYgUG93ZXIgRG93biAqLworCTB4MDAsCQkvKiAxNzogQ2xvY2sgU2VsZWN0ICovCisJMHgwMCwJCS8qIDE4OiBBRCBJbnB1dCBTZWxlY3QgKi8KKwkweDAxCQkvKiAxOTogTWljIEFtcCBTZXR1cCAqLworfTsKKworaW50IF9fZGV2aW5pdCBzbmRfYWs0NTMxX21peGVyKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX2FrNDUzMSAqX2FrNDUzMSwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX2FrNDUzMSAqKnJhazQ1MzEpCit7CisJdW5zaWduZWQgaW50IGlkeDsKKwlpbnQgZXJyOworCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzE7CisJc3RhdGljIHN0cnVjdCBzbmRfZGV2aWNlX29wcyBvcHMgPSB7CisJCS5kZXZfZnJlZSA9CXNuZF9hazQ1MzFfZGV2X2ZyZWUsCisJfTsKKworCXNuZF9hc3NlcnQocmFrNDUzMSAhPSBOVUxMLCByZXR1cm4gLUVJTlZBTCk7CisJKnJhazQ1MzEgPSBOVUxMOworCXNuZF9hc3NlcnQoY2FyZCAhPSBOVUxMICYmIF9hazQ1MzEgIT0gTlVMTCwgcmV0dXJuIC1FSU5WQUwpOworCWFrNDUzMSA9IGt6YWxsb2Moc2l6ZW9mKCphazQ1MzEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoYWs0NTMxID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCSphazQ1MzEgPSAqX2FrNDUzMTsKKwltdXRleF9pbml0KCZhazQ1MzEtPnJlZ19tdXRleCk7CisJaWYgKChlcnIgPSBzbmRfY29tcG9uZW50X2FkZChjYXJkLCAiQUs0NTMxIikpIDwgMCkgeworCQlzbmRfYWs0NTMxX2ZyZWUoYWs0NTMxKTsKKwkJcmV0dXJuIGVycjsKKwl9CisJc3RyY3B5KGNhcmQtPm1peGVybmFtZSwgIkFzYWhpIEthc2VpIEFLNDUzMSIpOworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfUkVTRVQsIDB4MDMpOwkvKiBubyBSU1QsIFBEICovCisJdWRlbGF5KDEwMCk7CisJYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9DTE9DSywgMHgwMCk7CS8qIENPREVDIEFEQyBhbmQgQ09ERUMgREFDIHVzZSB7TFIsQn1DTEsyIGFuZCBydW4gb2ZmIExSQ0xLMiBQTEwgKi8KKwlmb3IgKGlkeCA9IDA7IGlkeCA8PSAweDE5OyBpZHgrKykgeworCQlpZiAoaWR4ID09IEFLNDUzMV9SRVNFVCB8fCBpZHggPT0gQUs0NTMxX0NMT0NLKQorCQkJY29udGludWU7CisJCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBpZHgsIGFrNDUzMS0+cmVnc1tpZHhdID0gc25kX2FrNDUzMV9pbml0aWFsX21hcFtpZHhdKTsJLyogcmVjb3JkaW5nIHNvdXJjZSBpcyBtaXhlciAqLworCX0KKwlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX2FrNDUzMV9jb250cm9scyk7IGlkeCsrKSB7CisJCWlmICgoZXJyID0gc25kX2N0bF9hZGQoY2FyZCwgc25kX2N0bF9uZXcxKCZzbmRfYWs0NTMxX2NvbnRyb2xzW2lkeF0sIGFrNDUzMSkpKSA8IDApIHsKKwkJCXNuZF9hazQ1MzFfZnJlZShhazQ1MzEpOworCQkJcmV0dXJuIGVycjsKKwkJfQorCX0KKwlzbmRfYWs0NTMxX3Byb2NfaW5pdChjYXJkLCBhazQ1MzEpOworCWlmICgoZXJyID0gc25kX2RldmljZV9uZXcoY2FyZCwgU05EUlZfREVWX0NPREVDLCBhazQ1MzEsICZvcHMpKSA8IDApIHsKKwkJc25kX2FrNDUzMV9mcmVlKGFrNDUzMSk7CisJCXJldHVybiBlcnI7CisJfQorCisjaWYgMAorCXNuZF9hazQ1MzFfZHVtcChhazQ1MzEpOworI2VuZGlmCisJKnJhazQ1MzEgPSBhazQ1MzE7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBwb3dlciBtYW5hZ2VtZW50CisgKi8KKyNpZmRlZiBDT05GSUdfUE0KK3ZvaWQgc25kX2FrNDUzMV9zdXNwZW5kKHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCit7CisJLyogbXV0ZSAqLworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfTE1BU1RFUiwgMHg5Zik7CisJYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9STUFTVEVSLCAweDlmKTsKKwkvKiBwb3dlcmRvd24gKi8KKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX1JFU0VULCAweDAxKTsKK30KKwordm9pZCBzbmRfYWs0NTMxX3Jlc3VtZShzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQoreworCWludCBpZHg7CisKKwkvKiBpbml0aWFsaXplICovCisJYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9SRVNFVCwgMHgwMyk7CisJdWRlbGF5KDEwMCk7CisJYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9DTE9DSywgMHgwMCk7CisJLyogcmVzdG9yZSBtaXhlciByZWdpc3RlcnMgKi8KKwlmb3IgKGlkeCA9IDA7IGlkeCA8PSAweDE5OyBpZHgrKykgeworCQlpZiAoaWR4ID09IEFLNDUzMV9SRVNFVCB8fCBpZHggPT0gQUs0NTMxX0NMT0NLKQorCQkJY29udGludWU7CisJCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBpZHgsIGFrNDUzMS0+cmVnc1tpZHhdKTsKKwl9Cit9CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19QUk9DX0ZTCisvKgorICogL3Byb2MgaW50ZXJmYWNlCisgKi8KKworc3RhdGljIHZvaWQgc25kX2FrNDUzMV9wcm9jX3JlYWQoc3RydWN0IHNuZF9pbmZvX2VudHJ5ICplbnRyeSwgCisJCQkJIHN0cnVjdCBzbmRfaW5mb19idWZmZXIgKmJ1ZmZlcikKK3sKKwlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gZW50cnktPnByaXZhdGVfZGF0YTsKKworCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIkFzYWhpIEthc2VpIEFLNDUzMVxuXG4iKTsKKwlzbmRfaXByaW50ZihidWZmZXIsICJSZWNvcmRpbmcgc291cmNlICAgOiAlc1xuIgorCQkgICAgIk1JQyBnYWluICAgICAgICAgICA6ICVzXG4iLAorCQkgICAgYWs0NTMxLT5yZWdzW0FLNDUzMV9BRF9JTl0gJiAxID8gImV4dGVybmFsIiA6ICJtaXhlciIsCisJCSAgICBhazQ1MzEtPnJlZ3NbQUs0NTMxX01JQ19HQUlOXSAmIDEgPyAiKzMwZEIiIDogIiswZEIiKTsKK30KKworc3RhdGljIHZvaWQgX19kZXZpbml0CitzbmRfYWs0NTMxX3Byb2NfaW5pdChzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEpCit7CisJc3RydWN0IHNuZF9pbmZvX2VudHJ5ICplbnRyeTsKKworCWlmICghIHNuZF9jYXJkX3Byb2NfbmV3KGNhcmQsICJhazQ1MzEiLCAmZW50cnkpKQorCQlzbmRfaW5mb19zZXRfdGV4dF9vcHMoZW50cnksIGFrNDUzMSwgc25kX2FrNDUzMV9wcm9jX3JlYWQpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYXU4OHgwL2F1ODh4MF9nYW1lLmMgYi9zb3VuZC9wY2kvYXU4OHgwL2F1ODh4MF9nYW1lLmMKaW5kZXggYmMyMTJmNC4uZTI5MWFhNSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2F1ODh4MC9hdTg4eDBfZ2FtZS5jCisrKyBiL3NvdW5kL3BjaS9hdTg4eDAvYXU4OHgwX2dhbWUuYwpAQCAtMSw2ICsxLDQgQEAKIC8qCi0gKiAkSWQ6IGF1ODh4MF9nYW1lLmMsdiAxLjkgMjAwMy8wOS8yMiAwMzo1MToyOCBtamFuZGVyIEV4cCAkCi0gKgogICogIE1hbnVlbCBKYW5kZXIuCiAgKgogICogIEJhc2VkIG9uIHRoZSB3b3JrIG9mOgpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2F6dDMzMjguYyBiL3NvdW5kL3BjaS9henQzMzI4LmMKaW5kZXggNWY2M2FmNi4uMjJmMThmMyAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2F6dDMzMjguYworKysgYi9zb3VuZC9wY2kvYXp0MzMyOC5jCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBhenQzMzI4LmMgLSBkcml2ZXIgZm9yIEF6dGVjaCBBWkYzMzI4IGJhc2VkIHNvdW5kY2FyZHMgKGUuZy4gUENJMTY4KS4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYsIDIwMDcgYnkgQW5kcmVhcyBNb2hyIDxhbmRpIEFUIGxpc2FzLmRlPgorICogIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSAtIDIwMDggYnkgQW5kcmVhcyBNb2hyIDxhbmRpIEFUIGxpc2FzLmRlPgogICoKICAqICBGcmFtZXdvcmsgYm9ycm93ZWQgZnJvbSBCYXJ0IEhhcnRnZXJzJ3MgYWxzNDAwMC5jLgogICogIERyaXZlciBkZXZlbG9wZWQgb24gUENJMTY4IEFQKFcpIHZlcnNpb24gKFBDSSByZXYuIDEwLCBzdWJzeXN0ZW0gSUQgMTgwMSksCkBAIC0zNSw5ICszNSwyMCBAQAogICogICgzIHdlZWtzJyB3b3J0aCBvZiBldmVuaW5ncyBmaWxsZWQgd2l0aCBkcml2ZXIgd29yaykuCiAgKiAgKGFuZCBubywgSSBkaWQgTk9UIGdvIHRoZSBlYXN5IHdheTogdG8gcGljayB1cCBhIFNCIFBDSTEyOCBmb3IgOSBFdXJvcykKICAqCi0gKiAgVGhlIEFaRjMzMjggY2hpcCAobm90ZTogQVpGMzMyOCwgKm5vdCogQVpUMzMyOCwgdGhhdCdzIGp1c3QgdGhlIGRyaXZlciBuYW1lCi0gKiAgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucykgaGFzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6CisgKiAgSXQgaXMgcXVpdGUgbGlrZWx5IHRoYXQgdGhlIEFaRjMzMjggY2hpcCBpcyB0aGUgUENJIGNvdXNpbiBvZiB0aGUKKyAqICBBWkYzMzE4ICgiYXp0MTAyMCBwbnAiLCAiTU0gUHJvIDE2IikgSVNBIGNoaXAsIGdpdmVuIHZlcnkgc2ltaWxhciBzcGVjcy4KICAqCisgKiAgVGhlIEFaRjMzMjggY2hpcCAobm90ZTogQVpGMzMyOCwgKm5vdCogQVpUMzMyOCwgdGhhdCdzIGp1c3QgdGhlIGRyaXZlciBuYW1lCisgKiAgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucykgZnJvbSBBemZpbiAoam9pbnQtdmVudHVyZSBvZiBBenRlY2ggYW5kIEZpbmNpdGVjLAorICogIEZpbmNpdGVjIGFjcXVpcmVkIGJ5IE5hdGlvbmFsIFNlbWljb25kdWN0b3IgaW4gMjAwMiwgdG9nZXRoZXIgd2l0aCB0aGUKKyAqICBGaW5jaXRlYy1yZWxhdGVkIGNvbXBhbnkgQVJTbWlrcm8pIGhhcyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzOgorICoKKyAqICAtIGNvbXBhdGliaWxpdHkgJiBjb21wbGlhbmNlOgorICogICAgLSBNaWNyb3NvZnQgUEMgOTcgKCJQQyA5NyBIYXJkd2FyZSBEZXNpZ24gR3VpZGUiLAorICogICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS93aGRjL2FyY2hpdmUvcGNndWlkZXMubXNweCkKKyAqICAgIC0gTWljcm9zb2Z0IFBDIDk4IEJhc2VsaW5lIEF1ZGlvCisgKiAgICAtIE1QVTQwMSBVQVJUCisgKiAgICAtIFNvdW5kIEJsYXN0ZXIgRW11bGF0aW9uIChET1MgQm94KQogICogIC0gYnVpbHRpbiBBQzk3IGNvbmZvcm1hbnQgY29kZWMgKFNOUiBvdmVyIDgwZEIpCiAgKiAgICBOb3RlIHRoYXQgImNvbmZvcm1hbnQiICE9ICJjb21wbGlhbnQiISEgdGhpcyBjaGlwJ3MgbWl4ZXIgcmVnaXN0ZXIgbGF5b3V0CiAgKiAgICAqZGlmZmVycyogZnJvbSB0aGUgc3RhbmRhcmQgQUM5NyBsYXlvdXQ6CkBAIC00OCwyMSArNTksMjggQEAKICAqICAgIGFkZHJlc3NlcyBpbGxlZ2FsbHkuIFNvIGZhciB1bmZvcnR1bmF0ZWx5IGl0IGxvb2tzIGxpa2UgdGhlIHZlcnkgZmxleGlibGUKICAqICAgIEFMU0EgQUM5NyBzdXBwb3J0IGlzIHN0aWxsIG5vdCBlbm91Z2ggdG8gZWFzaWx5IGNvbXBlbnNhdGUgZm9yIHN1Y2ggYQogICogICAgZ3JhdmUgbGF5b3V0IHZpb2xhdGlvbiBkZXNwaXRlIGFsbCB0d2Vha3MgYW5kIHF1aXJrcyBtZWNoYW5pc21zIGl0IG9mZmVycy4KLSAqICAtIGJ1aWx0aW4gZ2VudWluZSBPUEwzCisgKiAgLSBidWlsdGluIGdlbnVpbmUgT1BMMyAtIHZlcmlmaWVkIHRvIHdvcmsgZmluZSwgMjAwODA1MDYKICAqICAtIGZ1bGwgZHVwbGV4IDE2Yml0IHBsYXliYWNrL3JlY29yZCBhdCBpbmRlcGVuZGVudCBzYW1wbGluZyByYXRlCi0gKiAgLSBNUFU0MDEgKCsgbGVnYWN5IGFkZHJlc3Mgc3VwcG9ydCkgRklYTUU6IGhvdyB0byBlbmFibGUgbGVnYWN5IGFkZHI/PworICogIC0gTVBVNDAxICgrIGxlZ2FjeSBhZGRyZXNzIHN1cHBvcnQsIGNsYWltZWQgYnkgb25lIG9mZmljaWFsIHNwZWMgc2hlZXQpCisgKiAgICBGSVhNRTogaG93IHRvIGVuYWJsZSBsZWdhY3kgYWRkcj8/CiAgKiAgLSBnYW1lIHBvcnQgKGxlZ2FjeSBhZGRyZXNzIHN1cHBvcnQpCi0gKiAgLSBidWlsdGluIDNEIGVuaGFuY2VtZW50IChzYWlkIHRvIGJlIFlBTUFIQSBZbWVyc2lvbikKICAqICAtIGJ1aWx0aW4gRGlyZWN0SW5wdXQgc3VwcG9ydCwgaGVscHMgcmVkdWNlIENQVSBvdmVyaGVhZCAoaW50ZXJydXB0LWRyaXZlbgotICogICAgZmVhdHVyZXMgc3VwcG9ydGVkKQorICogICAgZmVhdHVyZXMgc3VwcG9ydGVkKS4gLSBTZWUgY29tbW9uIHRlcm0gIkRpZ2l0YWwgRW5oYW5jZWQgR2FtZSBQb3J0Ii4uLgorICogICAgKHByb2JhYmx5IERpcmVjdElucHV0IDMuMCBzcGVjIC0gY29uZmlybSkKKyAqICAtIGJ1aWx0aW4gM0QgZW5oYW5jZW1lbnQgKHNhaWQgdG8gYmUgWUFNQUhBIFltZXJzaW9uKQogICogIC0gYnVpbHQtaW4gR2VuZXJhbCBEaXJlY3RYIHRpbWVyIGhhdmluZyBhIDIwIGJpdHMgY291bnRlcgogICogICAgd2l0aCAxdXMgcmVzb2x1dGlvbiAoc2VlIGJlbG93ISkKLSAqICAtIEkyUyBzZXJpYWwgcG9ydCBmb3IgZXh0ZXJuYWwgREFDCisgKiAgLSBJMlMgc2VyaWFsIG91dHB1dCBwb3J0IGZvciBleHRlcm5hbCBEQUMKICAqICAtIHN1cHBvcnRzIDMzTUh6IFBDSSBzcGVjIDIuMSwgUENJIHBvd2VyIG1hbmFnZW1lbnQgMS4wLCBjb21wbGlhbnQgd2l0aCBBQ1BJCiAgKiAgLSBzdXBwb3J0cyBoYXJkd2FyZSB2b2x1bWUgY29udHJvbAogICogIC0gc2luZ2xlIGNoaXAgbG93IGNvc3Qgc29sdXRpb24gKDEyOCBwaW4gUUZQKQogICogIC0gc3VwcG9ydHMgcHJvZ3JhbW1hYmxlIFN1Yi12ZW5kb3IgYW5kIFN1Yi1zeXN0ZW0gSUQKICAqICAgIHJlcXVpcmVkIGZvciBNaWNyb3NvZnQncyBsb2dvIGNvbXBsaWFuY2UgKEZJWE1FOiB3aGVyZT8pCisgKiAgICBBdCBsZWFzdCB0aGUgVHJpZGVudCA0RCBXYXZlIERYIGhhcyBvbmUgYml0IHNvbWV3aGVyZQorICogICAgdG8gZW5hYmxlIHdyaXRlcyB0byBQQ0kgc3Vic3lzdGVtIFZJRCByZWdpc3RlcnMsIHRoYXQgc2hvdWxkIGJlIGl0LgorICogICAgVGhpcyBtaWdodCBlYXNpbHkgYmUgaW4gZXh0ZW5kZWQgUENJIHJlZyBzcGFjZSwgc2luY2UgUENJMTY4IGFsc28gaGFzCisgKiAgICBzb21lIGN1c3RvbSBkYXRhIHN0YXJ0aW5nIGF0IDB4ODAuIFdoYXQga2luZCBvZiBjb25maWcgc2V0dGluZ3MKKyAqICAgIGFyZSBsb2NhdGVkIGluIG91ciBleHRlbmRlZCBQQ0kgc3BhY2UgYW55d2F5Pz8KICAqICAtIFBDSTE2OCBBUChXKSBjYXJkOiBwb3dlciBhbXBsaWZpZXIgd2l0aCA0IFdhdHRzL2NoYW5uZWwgYXQgNCBPaG1zCiAgKgogICogIE5vdGUgdGhhdCB0aGlzIGRyaXZlciBub3cgaXMgYWN0dWFsbHkgKmJldHRlciogdGhhbiB0aGUgV2luZG93cyBkcml2ZXIsCkBAIC03NCw2ICs5MiwyNCBAQAogICogIC0gInRpbWlkaXR5IC1pQXYgLUIyLDggLU9zIC1FRnJldmVyYj0wIgogICogIC0gInBtaWRpIC1wIDEyODowIGphenoubWlkIgogICoKKyAqICBPUEwzIGhhcmR3YXJlIHBsYXliYWNrIHRlc3RpbmcsIHRyeSBzb21ldGhpbmcgbGlrZToKKyAqICBjYXQgL3Byb2MvYXNvdW5kL2h3ZGVwCisgKiAgYW5kCisgKiAgYWNvbm5lY3QgLW8KKyAqICBUaGVuIHVzZQorICogIHNiaWxvYWQgLURodzp4LHkgLS1vcGwzIC91c3Ivc2hhcmUvc291bmRzL29wbDMvc3RkLm8zIC4uLi4uLi4vZHJ1bXMubzMKKyAqICB3aGVyZSB4LHkgaXMgdGhlIHh4LXl5IG51bWJlciBhcyBnaXZlbiBpbiBod2RlcC4KKyAqICBUaGVuIHRyeQorICogIHBtaWRpIC1wIGE6YiBqYXp6Lm1pZAorICogIHdoZXJlIGE6YiBpcyB0aGUgY2xpZW50IG51bWJlciBwbHVzIDAgdXN1YWxseSwgYXMgZ2l2ZW4gYnkgYWNvbm5lY3QgYWJvdmUuCisgKiAgT2gsIGFuZCBtYWtlIHN1cmUgdG8gdW5tdXRlIHRoZSBGTSBtaXhlciBjb250cm9sIChkb2ghKQorICogIE5PVEU6IHBvd2VyIHVzZSBkdXJpbmcgT1BMMyBwbGF5YmFjayBpcyBfVkVSWV8gaGlnaCAoNzBXIC0tPiA5MFchKQorICogIGRlc3BpdGUgbm8gQ1BVIGFjdGl2aXR5LCBwb3NzaWJseSBkdWUgdG8gaGluZGVyaW5nIEFDUEkgaWRsaW5nIHNvbWVob3cuCisgKiAgU2hvdWxkbid0IGJlIGEgcHJvYmxlbSBvZiB0aGUgQVpGMzMyOCBjaGlwIGl0c2VsZiwgSSdkIGhvcGUuCisgKiAgSGlnaGVyIFBDTSAvIEZNIG1peGVyIGxldmVscyBzZWVtIHRvIGNvbmZsaWN0IChjYXVzZXMgY3JhY2tsaW5nKSwKKyAqICBhdCBsZWFzdCBzb21ldGltZXMuICAgTWF5YmUgZXZlbiB1c2Ugd2l0aCBoYXJkd2FyZSBzZXF1ZW5jZXIgdGltZXIgYWJvdmUgOikKKyAqICBhZHBsYXkvYWRwbHVnLXV0aWxzIG1pZ2h0IHNvb24gb2ZmZXIgaGFyZHdhcmUtYmFzZWQgT1BMMyBwbGF5YmFjaywgdG9vLgorICoKICAqICBDZXJ0YWluIFBDSSB2ZXJzaW9ucyBvZiB0aGlzIGNhcmQgYXJlIHN1c2NlcHRpYmxlIHRvIERNQSB0cmFmZmljIHVuZGVycnVucwogICogIGluIHNvbWUgc3lzdGVtcyAocmVzdWx0aW5nIGluIHNvdW5kIGNyYWNrbGluZy9jbGlja2luZy9wb3BwaW5nKSwKICAqICBwcm9iYWJseSBiZWNhdXNlIHRoZXkgZG9uJ3QgaGF2ZSBhIERNQSBGSUZPIGJ1ZmZlciBvciBzby4KQEAgLTg3LDYgKzEyMyw4IEBACiAgKiAgYmV0dGVyIHRoYW4gYSBWSUEsIHlldCBpcm9uaWNhbGx5IEkgc3RpbGwgZ2V0IGNyYWNrbGluZywgbGlrZSBtYW55IG90aGVyCiAgKiAgcGVvcGxlIHdpdGggdGhlIHNhbWUgY2hpcHNldC4KICAqICBQb3NzaWJsZSByZW1lZGllczoKKyAqICAtIHVzZSBzcGVha2VyIChhbXBsaWZpZXIpIG91dHB1dCBpbnN0ZWFkIG9mIGhlYWRwaG9uZSBvdXRwdXQKKyAqICAgIChpbiBjYXNlIGNyYWNrbGluZyBpcyBkdWUgdG8gb3ZlcmxvYWRlZCBvdXRwdXQgY2xpcHBpbmcpCiAgKiAgLSBwbHVnIGNhcmQgaW50byBhIGRpZmZlcmVudCBQQ0kgc2xvdCwgcHJlZmVycmFibHkgb25lIHRoYXQgaXNuJ3Qgc2hhcmVkCiAgKiAgICB0b28gbXVjaCAodGhpcyBoZWxwcyBhIGxvdCwgYnV0IG5vdCBjb21wbGV0ZWx5ISkKICAqICAtIGdldCByaWQgb2YgUENJIFZHQSBjYXJkLCB1c2UgQUdQIGluc3RlYWQKQEAgLTk0LDE4ICsxMzIsMjMgQEAKICAqICAtIGZpZGRsZSB3aXRoIFBDSSBsYXRlbmN5IHNldHRpbmdzIChzZXRwY2kgLXYgLXMgQlVTSUQgbGF0ZW5jeV90aW1lcj1YWCkKICAqICAgIE5vdCB0b28gaGVscGZ1bC4KICAqICAtIERpc2FibGUgQUNQSS9wb3dlciBtYW5hZ2VtZW50LyJBdXRvIERldGVjdCBSQU0vUENJIENsayIgaW4gQklPUwotICogCisgKgogICogQlVHUwotICogIC0gZnVsbC1kdXBsZXggbWlnaHQgKnN0aWxsKiBiZSBwcm9ibGVtYXRpYywgbm90IGZ1bGx5IHRlc3RlZCByZWNlbnRseQorICogIC0gZnVsbC1kdXBsZXggbWlnaHQgKnN0aWxsKiBiZSBwcm9ibGVtYXRpYywgaG93ZXZlciBhIHJlY2VudCB0ZXN0IHdhcyBmaW5lCiAgKiAgLSAobm9uLWJ1ZykgIkJhc3MvVHJlYmxlIG9yIDNEIHNldHRpbmdzIGRvbid0IHdvcmsiIC0gdGhleSBkbyBnZXQgZXZhbHVhdGVkCiAgKiAgICBpZiB5b3Ugc2V0IFBDTSBvdXRwdXQgc3dpdGNoIHRvICJwcmUgM0QiIGluc3RlYWQgb2YgInBvc3QgM0QiLgogICogICAgSWYgdGhpcyBjYW4ndCBiZSBzZXQsIHRoZW4gZ2V0IGEgbWl4ZXIgYXBwbGljYXRpb24gdGhhdCBJc24ndCBTdHVwaWQgKHRtKQogICogICAgKGUuZy4ga21peCwgZ2FtaXgpIC0gdW5mb3J0dW5hdGVseSBzZXZlcmFsIGFyZSEhCi0gKiAKKyAqICAtIGxvY2tpbmcgaXMgbm90IGVudGlyZWx5IGNsZWFuLCBlc3BlY2lhbGx5IHRoZSBhdWRpbyBzdHJlYW0gYWN0aXZpdHkKKyAqICAgIGludHMgLS0+IG1heSBiZSByYWN5CisgKiAgLSBhbiBfdW5jb25uZWN0ZWRfIHNlY29uZGFyeSBqb3lzdGljayBhdCB0aGUgZ2FtZXBvcnQgd2lsbCBiZSByZXBvcnRlZAorICogICAgdG8gYmUgImFjdGl2ZSIgKGZsb2F0aW5nIHZhbHVlcywgbm90IHByZWNpc2VseSAtMSkgZHVlIHRvIHRoZSB3YXkgd2UgbmVlZAorICogICAgdG8gcmVhZCB0aGUgRGlnaXRhbCBFbmhhbmNlZCBHYW1lIFBvcnQuIE5vdCBzdXJlIHdoZXRoZXIgaXQgaXMgZml4YWJsZS4KKyAqCiAgKiBUT0RPCiAgKiAgLSB0ZXN0IE1QVTQwMSBNSURJIHBsYXliYWNrIGV0Yy4KLSAqICAtIGFkZCBzb21lIHBvd2VyIG1pY3JvLW1hbmFnZW1lbnQgKGRpc2FibGUgdmFyaW91cyB1bml0cyBvZiB0aGUgY2FyZAotICogICAgYXMgbG9uZyBhcyB0aGV5J3JlIHVudXNlZCkuIEhvd2V2ZXIgdGhpcyByZXF1aXJlcyBJL08gcG9ydHMgd2hpY2ggSQorICogIC0gYWRkIG1vcmUgcG93ZXIgbWljcm8tbWFuYWdlbWVudCAoZGlzYWJsZSB2YXJpb3VzIHVuaXRzIG9mIHRoZSBjYXJkCisgKiAgICBhcyBsb25nIGFzIHRoZXkncmUgdW51c2VkKS4gSG93ZXZlciB0aGlzIHJlcXVpcmVzIG1vcmUgSS9PIHBvcnRzIHdoaWNoIEkKICAqICAgIGhhdmVuJ3QgZmlndXJlZCBvdXQgeWV0IGFuZCB3aGljaCB0aHVzIG1pZ2h0IG5vdCBldmVuIGV4aXN0Li4uCiAgKiAgICBUaGUgc3RhbmRhcmQgc3VzcGVuZC9yZXN1bWUgZnVuY3Rpb25hbGl0eSBjb3VsZCBwcm9iYWJseSBtYWtlIHVzZSBvZgogICogICAgc29tZSBpbXByb3ZlbWVudCwgdG9vLi4uCkBAIC0xMTMsNiArMTU2LDcgQEAKICAqICAtIGZpZ3VyZSBvdXQgc29tZSBjbGV2ZXJseSBldmlsIHNjaGVtZSB0byBwb3NzaWJseSBtYWtlIEFMU0EgQUM5NyBjb2RlCiAgKiAgICBmdWxseSBhY2NlcHQgb3VyIHF1aXRlIGluY29tcGF0aWJsZSAiIkFDOTciIiBtaXhlciBhbmQgdGh1cyBzYXZlIHNvbWUKICAqICAgIGNvZGUgKGJ1dCBJJ20gbm90IHRvbyBvcHRpbWlzdGljIHRoYXQgZG9pbmcgdGhpcyBpcyBwb3NzaWJsZSBhdCBhbGwpCisgKiAgLSB1c2UgTU1JTyAobWVtb3J5LW1hcHBlZCBJL08pPyBTbGlnaHRseSBmYXN0ZXIgYWNjZXNzLCBlLmcuIGZvciBnYW1lcG9ydC4KICAqLwogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC0xMzgsNyArMTgyLDcgQEAKIE1PRFVMRV9TVVBQT1JURURfREVWSUNFKCJ7e0F6dGVjaCxBWkYzMzI4fX0iKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0dBTUVQT1JUKSB8fCAoZGVmaW5lZChNT0RVTEUpICYmIGRlZmluZWQoQ09ORklHX0dBTUVQT1JUX01PRFVMRSkpCi0jZGVmaW5lIFNVUFBPUlRfSk9ZU1RJQ0sgMQorI2RlZmluZSBTVVBQT1JUX0dBTUVQT1JUIDEKICNlbmRpZgogCiAjZGVmaW5lIERFQlVHX01JU0MJMApAQCAtMTQ3LDEzICsxOTEsMTQgQEAKICNkZWZpbmUgREVCVUdfUExBWV9SRUMJMAogI2RlZmluZSBERUJVR19JTwkwCiAjZGVmaW5lIERFQlVHX1RJTUVSCTAKKyNkZWZpbmUgREVCVUdfR0FNRQkwCiAjZGVmaW5lIE1JWEVSX1RFU1RJTkcJMAogCiAjaWYgREVCVUdfTUlTQwogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdtaXNjKGZvcm1hdCwgYXJncy4uLikgcHJpbnRrKEtFUk5fRVJSIGZvcm1hdCwgIyNhcmdzKQogI2Vsc2UKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnbWlzYyhmb3JtYXQsIGFyZ3MuLi4pCi0jZW5kaWYJCQorI2VuZGlmCiAKICNpZiBERUJVR19DQUxMUwogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdjYWxscyhmb3JtYXQsIGFyZ3MuLi4pIHByaW50ayhmb3JtYXQsICMjYXJncykKQEAgLTE2MywyNSArMjA4LDMxIEBACiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ2NhbGxzKGZvcm1hdCwgYXJncy4uLikKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCkKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCkKLSNlbmRpZgkJCisjZW5kaWYKIAogI2lmIERFQlVHX01JWEVSCiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ21peGVyKGZvcm1hdCwgYXJncy4uLikgcHJpbnRrKGZvcm1hdCwgIyNhcmdzKQogI2Vsc2UKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnbWl4ZXIoZm9ybWF0LCBhcmdzLi4uKQotI2VuZGlmCQkKKyNlbmRpZgogCiAjaWYgREVCVUdfUExBWV9SRUMKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJncGxheShmb3JtYXQsIGFyZ3MuLi4pIHByaW50ayhLRVJOX0VSUiBmb3JtYXQsICMjYXJncykKICNlbHNlCiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ3BsYXkoZm9ybWF0LCBhcmdzLi4uKQotI2VuZGlmCQkKKyNlbmRpZgogCiAjaWYgREVCVUdfTUlTQwogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmd0aW1lcihmb3JtYXQsIGFyZ3MuLi4pIHByaW50ayhLRVJOX0VSUiBmb3JtYXQsICMjYXJncykKICNlbHNlCiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ3RpbWVyKGZvcm1hdCwgYXJncy4uLikKLSNlbmRpZgkJCisjZW5kaWYKKworI2lmIERFQlVHX0dBTUUKKyNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnZ2FtZShmb3JtYXQsIGFyZ3MuLi4pIHByaW50ayhLRVJOX0VSUiBmb3JtYXQsICMjYXJncykKKyNlbHNlCisjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ2dhbWUoZm9ybWF0LCBhcmdzLi4uKQorI2VuZGlmCiAKIHN0YXRpYyBpbnQgaW5kZXhbU05EUlZfQ0FSRFNdID0gU05EUlZfREVGQVVMVF9JRFg7CS8qIEluZGV4IDAtTUFYICovCiBtb2R1bGVfcGFyYW1fYXJyYXkoaW5kZXgsIGludCwgTlVMTCwgMDQ0NCk7CkBAIC0xOTUsNTEgKzI0Niw2MiBAQAogbW9kdWxlX3BhcmFtX2FycmF5KGVuYWJsZSwgYm9vbCwgTlVMTCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKGVuYWJsZSwgIkVuYWJsZSBBWkYzMzI4IHNvdW5kY2FyZC4iKTsKIAotI2lmZGVmIFNVUFBPUlRfSk9ZU1RJQ0sKLXN0YXRpYyBpbnQgam95c3RpY2tbU05EUlZfQ0FSRFNdOwotbW9kdWxlX3BhcmFtX2FycmF5KGpveXN0aWNrLCBib29sLCBOVUxMLCAwNDQ0KTsKLU1PRFVMRV9QQVJNX0RFU0Moam95c3RpY2ssICJFbmFibGUgam95c3RpY2sgZm9yIEFaRjMzMjggc291bmRjYXJkLiIpOwotI2VuZGlmCi0KIHN0YXRpYyBpbnQgc2VxdGltZXJfc2NhbGluZyA9IDEyODsKIG1vZHVsZV9wYXJhbShzZXF0aW1lcl9zY2FsaW5nLCBpbnQsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhzZXF0aW1lcl9zY2FsaW5nLCAiU2V0IDEwMjQwMDBIeiBzZXF1ZW5jZXIgdGltZXIgc2NhbGUgZmFjdG9yIChsb2NrdXAgZGFuZ2VyISkuIERlZmF1bHQgMTI4LiIpOwogCitzdHJ1Y3Qgc25kX2F6ZjMzMjhfYXVkaW9fc3RyZWFtIHsKKwlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbTsKKwlpbnQgZW5hYmxlZDsKKwlpbnQgcnVubmluZzsKKwl1bnNpZ25lZCBsb25nIHBvcnRiYXNlOworfTsKKworZW51bSBzbmRfYXpmMzMyOF9zdHJlYW1faW5kZXggeworICBBWkZfUExBWUJBQ0sgPSAwLAorICBBWkZfQ0FQVFVSRSA9IDEsCit9OworCiBzdHJ1Y3Qgc25kX2F6ZjMzMjggewogCS8qIG9mdGVuLXVzZWQgZmllbGRzIHRvd2FyZHMgYmVnaW5uaW5nLCB0aGVuIGdyb3VwZWQgKi8KLQl1bnNpZ25lZCBsb25nIGNvZGVjX3BvcnQ7Ci0JdW5zaWduZWQgbG9uZyBpbzJfcG9ydDsKLQl1bnNpZ25lZCBsb25nIG1wdV9wb3J0OwotCXVuc2lnbmVkIGxvbmcgc3ludGhfcG9ydDsKLQl1bnNpZ25lZCBsb25nIG1peGVyX3BvcnQ7CisKKwl1bnNpZ25lZCBsb25nIGNvZGVjX2lvOyAvKiB1c3VhbGx5IDB4YjAwMCwgc2l6ZSAxMjggKi8KKwl1bnNpZ25lZCBsb25nIGdhbWVfaW87ICAvKiB1c3VhbGx5IDB4YjQwMCwgc2l6ZSA4ICovCisJdW5zaWduZWQgbG9uZyBtcHVfaW87ICAgLyogdXN1YWxseSAweGI4MDAsIHNpemUgNCAqLworCXVuc2lnbmVkIGxvbmcgb3BsM19pbzsgLyogdXN1YWxseSAweGJjMDAsIHNpemUgOCAqLworCXVuc2lnbmVkIGxvbmcgbWl4ZXJfaW87IC8qIHVzdWFsbHkgMHhjMDAwLCBzaXplIDY0ICovCiAKIAlzcGlubG9ja190IHJlZ19sb2NrOwogCiAJc3RydWN0IHNuZF90aW1lciAqdGltZXI7Ci0JCisKIAlzdHJ1Y3Qgc25kX3BjbSAqcGNtOwotCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqcGxheWJhY2tfc3Vic3RyZWFtOwotCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqY2FwdHVyZV9zdWJzdHJlYW07Ci0JdW5zaWduZWQgaW50IGlzX3BsYXlpbmc7Ci0JdW5zaWduZWQgaW50IGlzX3JlY29yZGluZzsKKwlzdHJ1Y3Qgc25kX2F6ZjMzMjhfYXVkaW9fc3RyZWFtIGF1ZGlvX3N0cmVhbVsyXTsKIAogCXN0cnVjdCBzbmRfY2FyZCAqY2FyZDsKIAlzdHJ1Y3Qgc25kX3Jhd21pZGkgKnJtaWRpOwogCi0jaWZkZWYgU1VQUE9SVF9KT1lTVElDSworI2lmZGVmIFNVUFBPUlRfR0FNRVBPUlQKIAlzdHJ1Y3QgZ2FtZXBvcnQgKmdhbWVwb3J0OworCWludCBheGVzWzRdOwogI2VuZGlmCiAKIAlzdHJ1Y3QgcGNpX2RldiAqcGNpOwogCWludCBpcnE7CiAKKwkvKiByZWdpc3RlciAweDZhIGlzIHdyaXRlLW9ubHksIHRodXMgbmVlZCB0byByZW1lbWJlciBzZXR0aW5nLgorCSAqIElmIHdlIG5lZWQgdG8gYWRkIG1vcmUgcmVnaXN0ZXJzIGhlcmUsIHRoZW4gd2UgbWlnaHQgdHJ5IHRvIGZvbGQgdGhpcworCSAqIGludG8gc29tZSB0cmFuc3BhcmVudCBjb21iaW5lZCBzaGFkb3cgcmVnaXN0ZXIgaGFuZGxpbmcgd2l0aAorCSAqIENPTkZJR19QTSByZWdpc3RlciBzdG9yYWdlIGJlbG93LCBidXQgdGhhdCdzIHNsaWdodGx5IGRpZmZpY3VsdC4gKi8KKwl1MTYgc2hhZG93X3JlZ19jb2RlY182QUg7CisKICNpZmRlZiBDT05GSUdfUE0KIAkvKiByZWdpc3RlciB2YWx1ZSBjb250YWluZXJzIGZvciBwb3dlciBtYW5hZ2VtZW50CiAJICogTm90ZTogbm90IGFsd2F5cyBmdWxsIEkvTyByYW5nZSBwcmVzZXJ2ZWQgKGp1c3QgbGlrZSBXaW4gZHJpdmVyISkgKi8KLQl1MTYgc2F2ZWRfcmVnc19jb2RlYyBbQVpGX0lPX1NJWkVfQ09ERUNfUE0gLyAyXTsKLQl1MTYgc2F2ZWRfcmVnc19pbzIgICBbQVpGX0lPX1NJWkVfSU8yX1BNIC8gMl07Ci0JdTE2IHNhdmVkX3JlZ3NfbXB1ICAgW0FaRl9JT19TSVpFX01QVV9QTSAvIDJdOwotCXUxNiBzYXZlZF9yZWdzX3N5bnRoW0FaRl9JT19TSVpFX1NZTlRIX1BNIC8gMl07CisJdTE2IHNhdmVkX3JlZ3NfY29kZWNbQVpGX0lPX1NJWkVfQ09ERUNfUE0gLyAyXTsKKwl1MTYgc2F2ZWRfcmVnc19nYW1lIFtBWkZfSU9fU0laRV9HQU1FX1BNIC8gMl07CisJdTE2IHNhdmVkX3JlZ3NfbXB1ICBbQVpGX0lPX1NJWkVfTVBVX1BNIC8gMl07CisJdTE2IHNhdmVkX3JlZ3Nfb3BsMyBbQVpGX0lPX1NJWkVfT1BMM19QTSAvIDJdOwogCXUxNiBzYXZlZF9yZWdzX21peGVyW0FaRl9JT19TSVpFX01JWEVSX1BNIC8gMl07CiAjZW5kaWYKIH07CkBAIC0yNTIsMTI2ICszMTQsMTY2IEBACiAKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzbmRfYXpmMzMyOF9pZHMpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQKLXNuZF9hemYzMzI4X2NvZGVjX291dGIoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnLCB1OCB2YWx1ZSkKKworc3RhdGljIGludAorc25kX2F6ZjMzMjhfaW9fcmVnX3NldGIodW5zaWduZWQgcmVnLCB1OCBtYXNrLCBpbnQgZG9fc2V0KQogewotCW91dGIodmFsdWUsIGNoaXAtPmNvZGVjX3BvcnQgKyByZWcpOworCXU4IHByZXYgPSBpbmIocmVnKSwgbmV3OworCisJbmV3ID0gKGRvX3NldCkgPyAocHJldnxtYXNrKSA6IChwcmV2ICYgfm1hc2spOworCS8qIHdlIG5lZWQgdG8gYWx3YXlzIHdyaXRlIHRoZSBuZXcgdmFsdWUgbm8gbWF0dGVyIHdoZXRoZXIgaXQgZGlmZmVycworCSAqIG9yIG5vdCwgc2luY2Ugc29tZSByZWdpc3RlciBiaXRzIGRvbid0IGluZGljYXRlIHRoZWlyIHNldHRpbmcgKi8KKwlvdXRiKG5ldywgcmVnKTsKKwlpZiAobmV3ICE9IHByZXYpCisJCXJldHVybiAxOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfY29kZWNfb3V0Yihjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZywgdTggdmFsdWUpCit7CisJb3V0Yih2YWx1ZSwgY2hpcC0+Y29kZWNfaW8gKyByZWcpOwogfQogCiBzdGF0aWMgaW5saW5lIHU4Ci1zbmRfYXpmMzMyOF9jb2RlY19pbmIoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnKQorc25kX2F6ZjMzMjhfY29kZWNfaW5iKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnKQogewotCXJldHVybiBpbmIoY2hpcC0+Y29kZWNfcG9ydCArIHJlZyk7CisJcmV0dXJuIGluYihjaGlwLT5jb2RlY19pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIHUxNiB2YWx1ZSkKK3NuZF9hemYzMzI4X2NvZGVjX291dHcoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcsIHUxNiB2YWx1ZSkKIHsKLQlvdXR3KHZhbHVlLCBjaGlwLT5jb2RlY19wb3J0ICsgcmVnKTsKKwlvdXR3KHZhbHVlLCBjaGlwLT5jb2RlY19pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTE2Ci1zbmRfYXpmMzMyOF9jb2RlY19pbncoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnKQorc25kX2F6ZjMzMjhfY29kZWNfaW53KGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnKQogewotCXJldHVybiBpbncoY2hpcC0+Y29kZWNfcG9ydCArIHJlZyk7CisJcmV0dXJuIGludyhjaGlwLT5jb2RlY19pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotc25kX2F6ZjMzMjhfY29kZWNfb3V0bChjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIHUzMiB2YWx1ZSkKK3NuZF9hemYzMzI4X2NvZGVjX291dGwoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcsIHUzMiB2YWx1ZSkKIHsKLQlvdXRsKHZhbHVlLCBjaGlwLT5jb2RlY19wb3J0ICsgcmVnKTsKKwlvdXRsKHZhbHVlLCBjaGlwLT5jb2RlY19pbyArIHJlZyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTMyCitzbmRfYXpmMzMyOF9jb2RlY19pbmwoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcpCit7CisJcmV0dXJuIGlubChjaGlwLT5jb2RlY19pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotc25kX2F6ZjMzMjhfaW8yX291dGIoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnLCB1OCB2YWx1ZSkKK3NuZF9hemYzMzI4X2dhbWVfb3V0Yihjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZywgdTggdmFsdWUpCiB7Ci0Jb3V0Yih2YWx1ZSwgY2hpcC0+aW8yX3BvcnQgKyByZWcpOworCW91dGIodmFsdWUsIGNoaXAtPmdhbWVfaW8gKyByZWcpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X2dhbWVfb3V0dyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZywgdTE2IHZhbHVlKQoreworCW91dHcodmFsdWUsIGNoaXAtPmdhbWVfaW8gKyByZWcpOwogfQogCiBzdGF0aWMgaW5saW5lIHU4Ci1zbmRfYXpmMzMyOF9pbzJfaW5iKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IHJlZykKK3NuZF9hemYzMzI4X2dhbWVfaW5iKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnKQogewotCXJldHVybiBpbmIoY2hpcC0+aW8yX3BvcnQgKyByZWcpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQKLXNuZF9hemYzMzI4X21peGVyX291dHcoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnLCB1MTYgdmFsdWUpCi17Ci0Jb3V0dyh2YWx1ZSwgY2hpcC0+bWl4ZXJfcG9ydCArIHJlZyk7CisJcmV0dXJuIGluYihjaGlwLT5nYW1lX2lvICsgcmVnKTsKIH0KIAogc3RhdGljIGlubGluZSB1MTYKLXNuZF9hemYzMzI4X21peGVyX2ludyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcpCitzbmRfYXpmMzMyOF9nYW1lX2ludyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZykKIHsKLQlyZXR1cm4gaW53KGNoaXAtPm1peGVyX3BvcnQgKyByZWcpOworCXJldHVybiBpbncoY2hpcC0+Z2FtZV9pbyArIHJlZyk7CiB9CiAKLXN0YXRpYyB2b2lkCi1zbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIGludCBkb19tdXRlKQorc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9taXhlcl9vdXR3KGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnLCB1MTYgdmFsdWUpCiB7Ci0JdW5zaWduZWQgbG9uZyBwb3J0YmFzZSA9IGNoaXAtPm1peGVyX3BvcnQgKyByZWcgKyAxOwotCXVuc2lnbmVkIGNoYXIgb2xkdmFsOworCW91dHcodmFsdWUsIGNoaXAtPm1peGVyX2lvICsgcmVnKTsKK30KKworc3RhdGljIGlubGluZSB1MTYKK3NuZF9hemYzMzI4X21peGVyX2ludyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZykKK3sKKwlyZXR1cm4gaW53KGNoaXAtPm1peGVyX2lvICsgcmVnKTsKK30KKworI2RlZmluZSBBWkZfTVVURV9CSVQgMHg4MAorCitzdGF0aWMgaW50CitzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCisJCQkgICB1bnNpZ25lZCByZWcsIGludCBkb19tdXRlCispCit7CisJdW5zaWduZWQgbG9uZyBwb3J0YmFzZSA9IGNoaXAtPm1peGVyX2lvICsgcmVnICsgMTsKKwlpbnQgdXBkYXRlZDsKIAogCS8qIHRoZSBtdXRlIGJpdCBpcyBvbiB0aGUgKnNlY29uZCogKGkuZS4gcmlnaHQpIHJlZ2lzdGVyIG9mIGEKIAkgKiBsZWZ0L3JpZ2h0IGNoYW5uZWwgc2V0dGluZyAqLwotCW9sZHZhbCA9IGluYihwb3J0YmFzZSk7Ci0JaWYgKGRvX211dGUpCi0JCW9sZHZhbCB8PSAweDgwOwotCWVsc2UKLQkJb2xkdmFsICY9IH4weDgwOwotCW91dGIob2xkdmFsLCBwb3J0YmFzZSk7CisJdXBkYXRlZCA9IHNuZF9hemYzMzI4X2lvX3JlZ19zZXRiKHBvcnRiYXNlLCBBWkZfTVVURV9CSVQsIGRvX211dGUpOworCisJLyogaW5kaWNhdGUgd2hldGhlciBpdCB3YXMgbXV0ZWQgYmVmb3JlICovCisJcmV0dXJuIChkb19tdXRlKSA/ICF1cGRhdGVkIDogdXBkYXRlZDsKIH0KIAogc3RhdGljIHZvaWQKLXNuZF9hemYzMzI4X21peGVyX3dyaXRlX3ZvbHVtZV9ncmFkdWFsbHkoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnLCB1bnNpZ25lZCBjaGFyIGRzdF92b2xfbGVmdCwgdW5zaWduZWQgY2hhciBkc3Rfdm9sX3JpZ2h0LCBpbnQgY2hhbl9zZWwsIGludCBkZWxheSkKK3NuZF9hemYzMzI4X21peGVyX3dyaXRlX3ZvbHVtZV9ncmFkdWFsbHkoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLAorCQkJCQkgdW5zaWduZWQgcmVnLAorCQkJCQkgdW5zaWduZWQgY2hhciBkc3Rfdm9sX2xlZnQsCisJCQkJCSB1bnNpZ25lZCBjaGFyIGRzdF92b2xfcmlnaHQsCisJCQkJCSBpbnQgY2hhbl9zZWwsIGludCBkZWxheQorKQogewotCXVuc2lnbmVkIGxvbmcgcG9ydGJhc2UgPSBjaGlwLT5taXhlcl9wb3J0ICsgcmVnOworCXVuc2lnbmVkIGxvbmcgcG9ydGJhc2UgPSBjaGlwLT5taXhlcl9pbyArIHJlZzsKIAl1bnNpZ25lZCBjaGFyIGN1cnJfdm9sX2xlZnQgPSAwLCBjdXJyX3ZvbF9yaWdodCA9IDA7Ci0JaW50IGxlZnRfZG9uZSA9IDAsIHJpZ2h0X2RvbmUgPSAwOwotCQorCWludCBsZWZ0X2NoYW5nZSA9IDAsIHJpZ2h0X2NoYW5nZSA9IDA7CisKIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKLQlpZiAoY2hhbl9zZWwgJiBTRVRfQ0hBTl9MRUZUKQorCisJaWYgKGNoYW5fc2VsICYgU0VUX0NIQU5fTEVGVCkgewogCQljdXJyX3ZvbF9sZWZ0ICA9IGluYihwb3J0YmFzZSArIDEpOwotCWVsc2UKLQkJbGVmdF9kb25lID0gMTsKLQlpZiAoY2hhbl9zZWwgJiBTRVRfQ0hBTl9SSUdIVCkKKworCQkvKiB0YWtlIGNhcmUgb2YgbXV0aW5nIGZsYWcgY29udGFpbmVkIGluIGxlZnQgY2hhbm5lbCAqLworCQlpZiAoY3Vycl92b2xfbGVmdCAmIEFaRl9NVVRFX0JJVCkKKwkJCWRzdF92b2xfbGVmdCB8PSBBWkZfTVVURV9CSVQ7CisJCWVsc2UKKwkJCWRzdF92b2xfbGVmdCAmPSB+QVpGX01VVEVfQklUOworCisJCWxlZnRfY2hhbmdlID0gKGN1cnJfdm9sX2xlZnQgPiBkc3Rfdm9sX2xlZnQpID8gLTEgOiAxOworCX0KKworCWlmIChjaGFuX3NlbCAmIFNFVF9DSEFOX1JJR0hUKSB7CiAJCWN1cnJfdm9sX3JpZ2h0ID0gaW5iKHBvcnRiYXNlICsgMCk7Ci0JZWxzZQotCQlyaWdodF9kb25lID0gMTsKLQkKLQkvKiB0YWtlIGNhcmUgb2YgbXV0aW5nIGZsYWcgKDB4ODApIGNvbnRhaW5lZCBpbiBsZWZ0IGNoYW5uZWwgKi8KLQlpZiAoY3Vycl92b2xfbGVmdCAmIDB4ODApCi0JCWRzdF92b2xfbGVmdCB8PSAweDgwOwotCWVsc2UKLQkJZHN0X3ZvbF9sZWZ0ICY9IH4weDgwOworCisJCXJpZ2h0X2NoYW5nZSA9IChjdXJyX3ZvbF9yaWdodCA+IGRzdF92b2xfcmlnaHQpID8gLTEgOiAxOworCX0KIAogCWRvIHsKLQkJaWYgKCFsZWZ0X2RvbmUpIHsKLQkJCWlmIChjdXJyX3ZvbF9sZWZ0ID4gZHN0X3ZvbF9sZWZ0KQotCQkJCWN1cnJfdm9sX2xlZnQtLTsKLQkJCWVsc2UKLQkJCWlmIChjdXJyX3ZvbF9sZWZ0IDwgZHN0X3ZvbF9sZWZ0KQotCQkJCWN1cnJfdm9sX2xlZnQrKzsKLQkJCWVsc2UKLQkJCSAgICBsZWZ0X2RvbmUgPSAxOwotCQkJb3V0YihjdXJyX3ZvbF9sZWZ0LCBwb3J0YmFzZSArIDEpOworCQlpZiAobGVmdF9jaGFuZ2UpIHsKKwkJCWlmIChjdXJyX3ZvbF9sZWZ0ICE9IGRzdF92b2xfbGVmdCkgeworCQkJCWN1cnJfdm9sX2xlZnQgKz0gbGVmdF9jaGFuZ2U7CisJCQkJb3V0YihjdXJyX3ZvbF9sZWZ0LCBwb3J0YmFzZSArIDEpOworCQkJfSBlbHNlCisJCQkgICAgbGVmdF9jaGFuZ2UgPSAwOwogCQl9Ci0JCWlmICghcmlnaHRfZG9uZSkgewotCQkJaWYgKGN1cnJfdm9sX3JpZ2h0ID4gZHN0X3ZvbF9yaWdodCkKLQkJCQljdXJyX3ZvbF9yaWdodC0tOwotCQkJZWxzZQotCQkJaWYgKGN1cnJfdm9sX3JpZ2h0IDwgZHN0X3ZvbF9yaWdodCkKLQkJCQljdXJyX3ZvbF9yaWdodCsrOwotCQkJZWxzZQotCQkJICAgIHJpZ2h0X2RvbmUgPSAxOworCQlpZiAocmlnaHRfY2hhbmdlKSB7CisJCQlpZiAoY3Vycl92b2xfcmlnaHQgIT0gZHN0X3ZvbF9yaWdodCkgeworCQkJCWN1cnJfdm9sX3JpZ2h0ICs9IHJpZ2h0X2NoYW5nZTsKKwogCQkJLyogZHVyaW5nIHZvbHVtZSBjaGFuZ2UsIHRoZSByaWdodCBjaGFubmVsIGlzIGNyYWNrbGluZwogCQkJICogc29tZXdoYXQgbW9yZSB0aGFuIHRoZSBsZWZ0IGNoYW5uZWwsIHVuZm9ydHVuYXRlbHkuCiAJCQkgKiBUaGlzIHNlZW1zIHRvIGJlIGEgaGFyZHdhcmUgaXNzdWUuICovCi0JCQlvdXRiKGN1cnJfdm9sX3JpZ2h0LCBwb3J0YmFzZSArIDApOworCQkJCW91dGIoY3Vycl92b2xfcmlnaHQsIHBvcnRiYXNlICsgMCk7CisJCQl9IGVsc2UKKwkJCSAgICByaWdodF9jaGFuZ2UgPSAwOwogCQl9CiAJCWlmIChkZWxheSkKIAkJCW1kZWxheShkZWxheSk7Ci0JfSB3aGlsZSAoKCFsZWZ0X2RvbmUpIHx8ICghcmlnaHRfZG9uZSkpOworCX0gd2hpbGUgKChsZWZ0X2NoYW5nZSkgfHwgKHJpZ2h0X2NoYW5nZSkpOwogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogfQogCkBAIC0zNzksNyArNDgxLDcgQEAKICAqIGdlbmVyYWwgbWl4ZXIgZWxlbWVudAogICovCiBzdHJ1Y3QgYXpmMzMyOF9taXhlcl9yZWcgewotCXVuc2lnbmVkIGludCByZWc7CisJdW5zaWduZWQgcmVnOwogCXVuc2lnbmVkIGludCBsY2hhbl9zaGlmdCwgcmNoYW5fc2hpZnQ7CiAJdW5zaWduZWQgaW50IG1hc2s7CiAJdW5zaWduZWQgaW50IGludmVydDogMTsKQEAgLTU0NCwxMyArNjQ2LDE0IEBACiAJCSJNaXgiLCAiTWljIgogCX07CiAJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0ZXh0czNbXSA9IHsKLSAgICAgICAgICAgICAgICAiTWljIiwgIkNEIiwgIlZpZGVvIiwgIkF1eCIsCisJCSJNaWMiLCAiQ0QiLCAiVmlkZW8iLCAiQXV4IiwKIAkJIkxpbmUiLCAiTWl4IiwgIk1peCBNb25vIiwgIlBob25lIgogICAgICAgICB9OwogCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdGV4dHM0W10gPSB7CiAJCSJwcmUgM0QiLCAicG9zdCAzRCIKICAgICAgICAgfTsKIAlzdHJ1Y3QgYXpmMzMyOF9taXhlcl9yZWcgcmVnOworCWNvbnN0IGNoYXIgKiBjb25zdCAqcCA9IE5VTEw7CiAKIAlzbmRfYXpmMzMyOF9taXhlcl9yZWdfZGVjb2RlKCZyZWcsIGtjb250cm9sLT5wcml2YXRlX3ZhbHVlKTsKICAgICAgICAgdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxFTV9UWVBFX0VOVU1FUkFURUQ7CkBAIC01NjEsMTggKzY2NCwyMCBAQAogCWlmIChyZWcucmVnID09IElEWF9NSVhFUl9BRFZDVEwyKSB7CiAJCXN3aXRjaChyZWcubGNoYW5fc2hpZnQpIHsKIAkJY2FzZSA4OiAvKiBtb2RlbSBvdXQgc2VsICovCi0JCQlzdHJjcHkodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQubmFtZSwgdGV4dHMxW3VpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1dKTsKKwkJCXAgPSB0ZXh0czE7CiAJCQlicmVhazsKIAkJY2FzZSA5OiAvKiBtb25vIHNlbCBzb3VyY2UgKi8KLQkJCXN0cmNweSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCB0ZXh0czJbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0pOworCQkJcCA9IHRleHRzMjsKIAkJCWJyZWFrOwogCQljYXNlIDE1OiAvKiBQQ00gT3V0IFBhdGggKi8KLQkJCXN0cmNweSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCB0ZXh0czRbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0pOworCQkJcCA9IHRleHRzNDsKIAkJCWJyZWFrOwogCQl9CiAJfSBlbHNlCi0gICAgICAgIAlzdHJjcHkodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQubmFtZSwgdGV4dHMzW3VpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1dCi0pOworCWlmIChyZWcucmVnID09IElEWF9NSVhFUl9SRUNfU0VMRUNUKQorCQlwID0gdGV4dHMzOworCisJc3RyY3B5KHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLm5hbWUsIHBbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0pOwogICAgICAgICByZXR1cm4gMDsKIH0KIApAQCAtNTgzLDcgKzY4OCw3IEBACiAgICAgICAgIHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAlzdHJ1Y3QgYXpmMzMyOF9taXhlcl9yZWcgcmVnOwogICAgICAgICB1bnNpZ25lZCBzaG9ydCB2YWw7Ci0gICAgICAgIAorCiAJc25kX2F6ZjMzMjhfbWl4ZXJfcmVnX2RlY29kZSgmcmVnLCBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSk7CiAJdmFsID0gc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNoaXAsIHJlZy5yZWcpOwogCWlmIChyZWcucmVnID09IElEWF9NSVhFUl9SRUNfU0VMRUNUKSB7CkBAIC02MDUsNyArNzEwLDcgQEAKICAgICAgICAgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwogCXN0cnVjdCBhemYzMzI4X21peGVyX3JlZyByZWc7CiAJdW5zaWduZWQgaW50IG9yZWcsIG5yZWcsIHZhbDsKLSAgICAgICAgCisKIAlzbmRfYXpmMzMyOF9taXhlcl9yZWdfZGVjb2RlKCZyZWcsIGtjb250cm9sLT5wcml2YXRlX3ZhbHVlKTsKIAlvcmVnID0gc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNoaXAsIHJlZy5yZWcpOwogCXZhbCA9IG9yZWc7CkBAIC02MzEsOSArNzM2LDExIEBACiBzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc25kX2F6ZjMzMjhfbWl4ZXJfY29udHJvbHNbXSBfX2RldmluaXRkYXRhID0gewogCUFaRjMzMjhfTUlYRVJfU1dJVENIKCJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwgSURYX01JWEVSX1BMQVlfTUFTVEVSLCAxNSwgMSksCiAJQVpGMzMyOF9NSVhFUl9WT0xfU1RFUkVPKCJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwgSURYX01JWEVSX1BMQVlfTUFTVEVSLCAweDFmLCAxKSwKLQlBWkYzMzI4X01JWEVSX1NXSVRDSCgiV2F2ZSBQbGF5YmFjayBTd2l0Y2giLCBJRFhfTUlYRVJfV0FWRU9VVCwgMTUsIDEpLAotCUFaRjMzMjhfTUlYRVJfVk9MX1NURVJFTygiV2F2ZSBQbGF5YmFjayBWb2x1bWUiLCBJRFhfTUlYRVJfV0FWRU9VVCwgMHgxZiwgMSksCi0JQVpGMzMyOF9NSVhFUl9TV0lUQ0goIldhdmUgM0QgQnlwYXNzIFBsYXliYWNrIFN3aXRjaCIsIElEWF9NSVhFUl9BRFZDVEwyLCA3LCAxKSwKKwlBWkYzMzI4X01JWEVSX1NXSVRDSCgiUENNIFBsYXliYWNrIFN3aXRjaCIsIElEWF9NSVhFUl9XQVZFT1VULCAxNSwgMSksCisJQVpGMzMyOF9NSVhFUl9WT0xfU1RFUkVPKCJQQ00gUGxheWJhY2sgVm9sdW1lIiwKKwkJCQkJSURYX01JWEVSX1dBVkVPVVQsIDB4MWYsIDEpLAorCUFaRjMzMjhfTUlYRVJfU1dJVENIKCJQQ00gM0QgQnlwYXNzIFBsYXliYWNrIFN3aXRjaCIsCisJCQkJCUlEWF9NSVhFUl9BRFZDVEwyLCA3LCAxKSwKIAlBWkYzMzI4X01JWEVSX1NXSVRDSCgiRk0gUGxheWJhY2sgU3dpdGNoIiwgSURYX01JWEVSX0ZNU1lOVEgsIDE1LCAxKSwKIAlBWkYzMzI4X01JWEVSX1ZPTF9TVEVSRU8oIkZNIFBsYXliYWNrIFZvbHVtZSIsIElEWF9NSVhFUl9GTVNZTlRILCAweDFmLCAxKSwKIAlBWkYzMzI4X01JWEVSX1NXSVRDSCgiQ0QgUGxheWJhY2sgU3dpdGNoIiwgSURYX01JWEVSX0NEQVVESU8sIDE1LCAxKSwKQEAgLTcxNywxNSArODI0LDE2IEBACiAJc25kX2F6ZjMzMjhfbWl4ZXJfb3V0dyhjaGlwLCBJRFhfTUlYRVJfUkVTRVQsIDB4MDAwMCk7CiAKIAkvKiBtdXRlIGFuZCB6ZXJvIHZvbHVtZSBjaGFubmVscyAqLwotCWZvciAoaWR4ID0gMDsgaWR4IDwgQVJSQVlfU0laRShzbmRfYXpmMzMyOF9pbml0X3ZhbHVlcyk7IGlkeCsrKSB7CisJZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9hemYzMzI4X2luaXRfdmFsdWVzKTsgKytpZHgpIHsKIAkJc25kX2F6ZjMzMjhfbWl4ZXJfb3V0dyhjaGlwLAogCQkJc25kX2F6ZjMzMjhfaW5pdF92YWx1ZXNbaWR4XVswXSwKIAkJCXNuZF9hemYzMzI4X2luaXRfdmFsdWVzW2lkeF1bMV0pOwogCX0KLQkKKwogCS8qIGFkZCBtaXhlciBjb250cm9scyAqLwogCXN3ID0gc25kX2F6ZjMzMjhfbWl4ZXJfY29udHJvbHM7Ci0JZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9hemYzMzI4X21peGVyX2NvbnRyb2xzKTsgaWR4KyssIHN3KyspIHsKKwlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX2F6ZjMzMjhfbWl4ZXJfY29udHJvbHMpOworCQkJKytpZHgsICsrc3cpIHsKIAkJaWYgKChlcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLCBzbmRfY3RsX25ldzEoc3csIGNoaXApKSkgPCAwKQogCQkJcmV0dXJuIGVycjsKIAl9CkBAIC03NTcsOSArODY1LDkgQEAKIH0KIAogc3RhdGljIHZvaWQKLXNuZF9hemYzMzI4X3NldGZtdChzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCi0JCQkgICAgICAgdW5zaWduZWQgaW50IHJlZywKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgYml0cmF0ZSwKK3NuZF9hemYzMzI4X2NvZGVjX3NldGZtdChzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCisJCQkgICAgICAgdW5zaWduZWQgcmVnLAorCQkJICAgICAgIGVudW0gYXpmX2ZyZXFfdCBiaXRyYXRlLAogCQkJICAgICAgIHVuc2lnbmVkIGludCBmb3JtYXRfd2lkdGgsCiAJCQkgICAgICAgdW5zaWduZWQgaW50IGNoYW5uZWxzCiApCkBAIC03NjksMjQgKzg3NywyNSBAQAogCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7CiAJc3dpdGNoIChiaXRyYXRlKSB7Ci0JY2FzZSAgNDAwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzQwMDA7IGJyZWFrOwotCWNhc2UgIDQ4MDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF80ODAwOyBicmVhazsKLQljYXNlICA1NTEyOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV81NTEwOyBicmVhazsgLyogdGhlIEFaRjMzMjggbmFtZXMgaXQgIjU1MTAiIGZvciBzb21lIHN0cmFuZ2UgcmVhc29uICovCi0JY2FzZSAgNjYyMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNjYyMDsgYnJlYWs7Ci0JY2FzZSAgODAwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfODAwMDsgYnJlYWs7Ci0JY2FzZSAgOTYwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfOTYwMDsgYnJlYWs7Ci0JY2FzZSAxMTAyNTogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMTEwMjU7IGJyZWFrOwotCWNhc2UgMTMyNDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF8xMzI0MDsgYnJlYWs7Ci0JY2FzZSAxNjAwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMTYwMDA7IGJyZWFrOwotCWNhc2UgMjIwNTA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzIyMDUwOyBicmVhazsKLQljYXNlIDMyMDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV8zMjAwMDsgYnJlYWs7Ci0JY2FzZSA0NDEwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNDQxMDA7IGJyZWFrOwotCWNhc2UgNDgwMDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzQ4MDAwOyBicmVhazsKLQljYXNlIDY2MjAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV9TVVNQRUNURURfNjYyMDA7IGJyZWFrOworCWNhc2UgQVpGX0ZSRVFfNDAwMDogIHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF80MDAwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzQ4MDA6ICB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV9TVVNQRUNURURfNDgwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV81NTEyOgorCQkvKiB0aGUgQVpGMzMyOCBuYW1lcyBpdCAiNTUxMCIgZm9yIHNvbWUgc3RyYW5nZSByZWFzb24gKi8KKwkJCSAgICAgdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNTUxMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV82NjIwOiAgdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNjYyMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV84MDAwOiAgdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfODAwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV85NjAwOiAgdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfOTYwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV8xMTAyNTogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMTEwMjU7IGJyZWFrOworCWNhc2UgQVpGX0ZSRVFfMTMyNDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF8xMzI0MDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV8xNjAwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMTYwMDA7IGJyZWFrOworCWNhc2UgQVpGX0ZSRVFfMjIwNTA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzIyMDUwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzMyMDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV8zMjAwMDsgYnJlYWs7CiAJZGVmYXVsdDoKIAkJc25kX3ByaW50ayhLRVJOX1dBUk5JTkcgInVua25vd24gYml0cmF0ZSAlZCwgYXNzdW1pbmcgNDQuMWtIeiFcbiIsIGJpdHJhdGUpOwotCQl2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV80NDEwMDsKLQkJYnJlYWs7CisJCS8qIGZhbGwtdGhyb3VnaCAqLworCWNhc2UgQVpGX0ZSRVFfNDQxMDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzQ0MTAwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzQ4MDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV80ODAwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV82NjIwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzY2MjAwOyBicmVhazsKIAl9CiAJLyogdmFsID0gMHhmZjA3OyAzbTI3Ljk5M3MgKDY1MzAxSHo7IC0+IDY0MDAwSHo/Pz8pIGhtbSwgNjYxMjAsIDY1OTY3LCA2NjEyMyAqLwogCS8qIHZhbCA9IDB4ZmYwOTsgMTdtMTUuMDk4cyAoMTMxMjMsNDc4SHo7IC0+IDEyMDAwSHo/Pz8pIGhtbSwgMTMyMzcuMkh6PyAqLwpAQCAtODA1LDEwICs5MTQsMTAgQEAKIAkJdmFsIHw9IFNPVU5ERk9STUFUX0ZMQUdfMTZCSVQ7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKLQkKKwogCS8qIHNldCBiaXRyYXRlL2Zvcm1hdCAqLwogCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgcmVnLCB2YWwpOwotCQorCiAJLyogY2hhbmdpbmcgdGhlIGJpdHJhdGUvZm9ybWF0IHNldHRpbmdzIHN3aXRjaGVzIG9mZiB0aGUKIAkgKiBhdWRpbyBvdXRwdXQgd2l0aCBhbiBhbm5veWluZyBjbGljayBpbiBjYXNlIG9mIDgvMTZiaXQgZm9ybWF0IGNoYW5nZQogCSAqIChtYXliZSBzaHV0dGluZyBkb3duIERBQy9BREM/KSwgdGh1cyBpbW1lZGlhdGVseQpAQCAtODMwLDMxICs5MzksOTUgQEAKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9jb2RlY19zZXRmbXRfbG93cG93ZXIoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLAorCQkJICAgIHVuc2lnbmVkIHJlZworKQoreworCS8qIGNob29zZSBsb3dlc3QgZnJlcXVlbmN5IGZvciBsb3cgcG93ZXIgY29uc3VtcHRpb24uCisJICogV2hpbGUgdGhpcyB3aWxsIGNhdXNlIGxvdWRlciBub2lzZSBkdWUgdG8gcmF0aGVyIGNvYXJzZSBmcmVxdWVuY3ksCisJICogaXQgc2hvdWxkIG5ldmVyIG1hdHRlciBzaW5jZSBvdXRwdXQgc2hvdWxkIGFsd2F5cworCSAqIGdldCBkaXNhYmxlZCBwcm9wZXJseSB3aGVuIGlkbGUgYW55d2F5LiAqLworCXNuZF9hemYzMzI4X2NvZGVjX3NldGZtdChjaGlwLCByZWcsIEFaRl9GUkVRXzQwMDAsIDgsIDEpOworfQorCitzdGF0aWMgdm9pZAorc25kX2F6ZjMzMjhfY29kZWNfcmVnXzZBSF91cGRhdGUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLAorCQkJCQl1bnNpZ25lZCBiaXRtYXNrLAorCQkJCQlpbnQgZW5hYmxlCispCit7CisJaWYgKGVuYWJsZSkKKwkJY2hpcC0+c2hhZG93X3JlZ19jb2RlY182QUggJj0gfmJpdG1hc2s7CisJZWxzZQorCQljaGlwLT5zaGFkb3dfcmVnX2NvZGVjXzZBSCB8PSBiaXRtYXNrOworCXNuZF9hemYzMzI4X2RiZ3BsYXkoIjZBSF91cGRhdGUgbWFzayAweCUwNHggZW5hYmxlICVkOiB2YWwgMHglMDR4XG4iLAorCQkJYml0bWFzaywgZW5hYmxlLCBjaGlwLT5zaGFkb3dfcmVnX2NvZGVjXzZBSCk7CisJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fNkFILCBjaGlwLT5zaGFkb3dfcmVnX2NvZGVjXzZBSCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfY29kZWNfZW5hYmxlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IGVuYWJsZSkKK3sKKwlzbmRfYXpmMzMyOF9kYmdwbGF5KCJjb2RlY19lbmFibGUgJWRcbiIsIGVuYWJsZSk7CisJLyogbm8gaWRlYSB3aGF0IGV4YWN0bHkgaXMgYmVpbmcgZG9uZSBoZXJlLCBidXQgSSBzdHJvbmdseSBhc3N1bWUgaXQncworCSAqIFBNIHJlbGF0ZWQgKi8KKwlzbmRfYXpmMzMyOF9jb2RlY19yZWdfNkFIX3VwZGF0ZSgKKwkJY2hpcCwgSU9fNkFfUEFVU0VfUExBWUJBQ0tfQklUOCwgZW5hYmxlCisJKTsKK30KKworc3RhdGljIHZvaWQKK3NuZF9hemYzMzI4X2NvZGVjX2FjdGl2aXR5KHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwKKwkJCQllbnVtIHNuZF9hemYzMzI4X3N0cmVhbV9pbmRleCBzdHJlYW1fdHlwZSwKKwkJCQlpbnQgZW5hYmxlCispCit7CisJaW50IG5lZWRfY2hhbmdlID0gKGNoaXAtPmF1ZGlvX3N0cmVhbVtzdHJlYW1fdHlwZV0ucnVubmluZyAhPSBlbmFibGUpOworCisJc25kX2F6ZjMzMjhfZGJncGxheSgKKwkJImNvZGVjX2FjdGl2aXR5OiB0eXBlICVkLCBlbmFibGUgJWQsIG5lZWRfY2hhbmdlICVkXG4iLAorCQkJCXN0cmVhbV90eXBlLCBlbmFibGUsIG5lZWRfY2hhbmdlCisJKTsKKwlpZiAobmVlZF9jaGFuZ2UpIHsKKwkJZW51bSBzbmRfYXpmMzMyOF9zdHJlYW1faW5kZXggb3RoZXIgPQorCQkJKHN0cmVhbV90eXBlID09IEFaRl9QTEFZQkFDSykgPworCQkJCUFaRl9DQVBUVVJFIDogQVpGX1BMQVlCQUNLOworCQkvKiBzbWFsbCBjaGVjayB0byBwcmV2ZW50IHNodXR0aW5nIGRvd24gdGhlIG90aGVyIHBhcnR5CisJCSAqIGluIGNhc2UgaXQncyBhY3RpdmUgKi8KKwkJaWYgKChlbmFibGUpIHx8ICEoY2hpcC0+YXVkaW9fc3RyZWFtW290aGVyXS5ydW5uaW5nKSkKKwkJCXNuZF9hemYzMzI4X2NvZGVjX2VuYWJsZShjaGlwLCBlbmFibGUpOworCisJCS8qIC4uLmFuZCBhZGp1c3QgY2xvY2ssIHRvbworCQkgKiAocmVkdWNlIG5vaXNlIGFuZCBwb3dlciBjb25zdW1wdGlvbikgKi8KKwkJaWYgKCFlbmFibGUpCisJCQlzbmRfYXpmMzMyOF9jb2RlY19zZXRmbXRfbG93cG93ZXIoCisJCQkJY2hpcCwKKwkJCQljaGlwLT5hdWRpb19zdHJlYW1bc3RyZWFtX3R5cGVdLnBvcnRiYXNlCisJCQkJCSsgSURYX0lPX1BMQVlfU09VTkRGT1JNQVQKKwkJCSk7CisJfQorCWNoaXAtPmF1ZGlvX3N0cmVhbVtzdHJlYW1fdHlwZV0ucnVubmluZyA9IGVuYWJsZTsKK30KKwogc3RhdGljIHZvaWQKIHNuZF9hemYzMzI4X3NldGRtYWEoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLAogCQkJCWxvbmcgdW5zaWduZWQgaW50IGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNpemUsCi0JCQkJaW50IGRvX3JlY29yZGluZykKKwkJCQllbnVtIHNuZF9hemYzMzI4X3N0cmVhbV9pbmRleCBzdHJlYW1fdHlwZQorKQogewotCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHBvcnRiYXNlOwotCXVuc2lnbmVkIGludCBpc19ydW5uaW5nOwotCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7Ci0JaWYgKGRvX3JlY29yZGluZykgewotCQkvKiBhY2Nlc3MgY2FwdHVyZSByZWdpc3RlcnMsIGkuZS4gc2tpcCBwbGF5YmFjayByZWcgc2VjdGlvbiAqLwotCQlwb3J0YmFzZSA9IGNoaXAtPmNvZGVjX3BvcnQgKyAweDIwOwotCQlpc19ydW5uaW5nID0gY2hpcC0+aXNfcmVjb3JkaW5nOwotCX0gZWxzZSB7Ci0JCS8qIGFjY2VzcyB0aGUgcGxheWJhY2sgcmVnaXN0ZXIgc2VjdGlvbiAqLwotCQlwb3J0YmFzZSA9IGNoaXAtPmNvZGVjX3BvcnQgKyAweDAwOwotCQlpc19ydW5uaW5nID0gY2hpcC0+aXNfcGxheWluZzsKLQl9CisJaWYgKCFjaGlwLT5hdWRpb19zdHJlYW1bc3RyZWFtX3R5cGVdLnJ1bm5pbmcpIHsKKwkJLyogQVpGMzMyOCB1c2VzIGEgdHdvIGJ1ZmZlciBwb2ludGVyIERNQSBwbGF5YmFjayBhcHByb2FjaCAqLwogCi0JLyogQVpGMzMyOCB1c2VzIGEgdHdvIGJ1ZmZlciBwb2ludGVyIERNQSBwbGF5YmFjayBhcHByb2FjaCAqLwotCWlmICghaXNfcnVubmluZykgewotCQl1bnNpZ25lZCBsb25nIGFkZHJfYXJlYTI7Ci0JCXVuc2lnbmVkIGxvbmcgY291bnRfYXJlYXMsIGNvdW50X3RtcDsgLyogd2lkdGggMzJiaXQgLS0gb3ZlcmZsb3chISAqLworCQl1bnNpZ25lZCBsb25nIGZsYWdzLCBwb3J0YmFzZSwgYWRkcl9hcmVhMjsKKworCQkvKiB3aWR0aCAzMmJpdCAocHJldmVudCBvdmVyZmxvdyk6ICovCisJCXVuc2lnbmVkIGxvbmcgY291bnRfYXJlYXMsIGNvdW50X3RtcDsKKworCQlwb3J0YmFzZSA9IGNoaXAtPmF1ZGlvX3N0cmVhbVtzdHJlYW1fdHlwZV0ucG9ydGJhc2U7CiAJCWNvdW50X2FyZWFzID0gc2l6ZS8yOwogCQlhZGRyX2FyZWEyID0gYWRkcitjb3VudF9hcmVhczsKIAkJY291bnRfYXJlYXMtLTsgLyogbWF4LiBpbmRleCAqLwpAQCAtODg0LDExICsxMDU3LDExIEBACiAKIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKICNpZiAwCi0Jc25kX2F6ZjMzMjhfc2V0Zm10KGNoaXAsIElEWF9JT19QTEFZX1NPVU5ERk9STUFULAorCXNuZF9hemYzMzI4X2NvZGVjX3NldGZtdChjaGlwLCBJRFhfSU9fUExBWV9TT1VOREZPUk1BVCwKIAkJcnVudGltZS0+cmF0ZSwKIAkJc25kX3BjbV9mb3JtYXRfd2lkdGgocnVudGltZS0+Zm9ybWF0KSwKIAkJcnVudGltZS0+Y2hhbm5lbHMpOwotCXNuZF9hemYzMzI4X3NldGRtYWEoY2hpcCwgcnVudGltZS0+ZG1hX2FkZHIsIGNvdW50LCBzaXplLCAwKTsKKwlzbmRfYXpmMzMyOF9zZXRkbWFhKGNoaXAsIHJ1bnRpbWUtPmRtYV9hZGRyLCBjb3VudCwgc2l6ZSwgQVpGX1BMQVlCQUNLKTsKICNlbmRpZgogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogCXJldHVybiAwOwpAQCAtOTA2LDExICsxMDc5LDExIEBACiAKIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKICNpZiAwCi0Jc25kX2F6ZjMzMjhfc2V0Zm10KGNoaXAsIElEWF9JT19SRUNfU09VTkRGT1JNQVQsCisJc25kX2F6ZjMzMjhfY29kZWNfc2V0Zm10KGNoaXAsIElEWF9JT19SRUNfU09VTkRGT1JNQVQsCiAJCXJ1bnRpbWUtPnJhdGUsCiAJCXNuZF9wY21fZm9ybWF0X3dpZHRoKHJ1bnRpbWUtPmZvcm1hdCksCiAJCXJ1bnRpbWUtPmNoYW5uZWxzKTsKLQlzbmRfYXpmMzMyOF9zZXRkbWFhKGNoaXAsIHJ1bnRpbWUtPmRtYV9hZGRyLCBjb3VudCwgc2l6ZSwgMSk7CisJc25kX2F6ZjMzMjhfc2V0ZG1hYShjaGlwLCBydW50aW1lLT5kbWFfYWRkciwgY291bnQsIHNpemUsIEFaRl9DQVBUVVJFKTsKICNlbmRpZgogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogCXJldHVybiAwOwpAQCAtOTIzLDYgKzEwOTYsNyBAQAogCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CiAJaW50IHJlc3VsdCA9IDA7CiAJdW5zaWduZWQgaW50IHN0YXR1czE7CisJaW50IHByZXZpb3VzbHlfbXV0ZWQ7CiAKIAlzbmRfYXpmMzMyOF9kYmdjYWxscygic25kX2F6ZjMzMjhfcGxheWJhY2tfdHJpZ2dlciBjbWQgJWRcbiIsIGNtZCk7CiAKQEAgLTkzMCwyMCArMTEwNCwyMyBAQAogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUQVJUIFBMQVlCQUNLXG4iKTsKIAotCQkvKiBtdXRlIFdhdmVPdXQgKi8KLQkJc25kX2F6ZjMzMjhfbWl4ZXJfc2V0X211dGUoY2hpcCwgSURYX01JWEVSX1dBVkVPVVQsIDEpOworCQkvKiBtdXRlIFdhdmVPdXQgKGF2b2lkIGNsaWNraW5nIGR1cmluZyBzZXR1cCkgKi8KKwkJcHJldmlvdXNseV9tdXRlZCA9CisJCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMSk7CiAKLQkJc25kX2F6ZjMzMjhfc2V0Zm10KGNoaXAsIElEWF9JT19QTEFZX1NPVU5ERk9STUFULAorCQlzbmRfYXpmMzMyOF9jb2RlY19zZXRmbXQoY2hpcCwgSURYX0lPX1BMQVlfU09VTkRGT1JNQVQsCiAJCQlydW50aW1lLT5yYXRlLAogCQkJc25kX3BjbV9mb3JtYXRfd2lkdGgocnVudGltZS0+Zm9ybWF0KSwKIAkJCXJ1bnRpbWUtPmNoYW5uZWxzKTsKIAogCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKLQkJLyogc3RvcCBwbGF5YmFjayAqLworCQkvKiBmaXJzdCwgcmVtZW1iZXIgY3VycmVudCB2YWx1ZTogKi8KIAkJc3RhdHVzMSA9IHNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUyk7CisKKwkJLyogc3RvcCBwbGF5YmFjayAqLwogCQlzdGF0dXMxICY9IH5ETUFfUkVTVU1FOwogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTLCBzdGF0dXMxKTsKLQkgICAgCisKIAkJLyogRklYTUU6IGNsZWFyIGludGVycnVwdHMgb3Igd2hhdD8/PyAqLwogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19QTEFZX0lSUVRZUEUsIDB4ZmZmZik7CiAJCXNwaW5fdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7CkBAIC05NTEsNyArMTEyOCw3IEBACiAJCXNuZF9hemYzMzI4X3NldGRtYWEoY2hpcCwgcnVudGltZS0+ZG1hX2FkZHIsCiAJCQlzbmRfcGNtX2xpYl9wZXJpb2RfYnl0ZXMoc3Vic3RyZWFtKSwKIAkJCXNuZF9wY21fbGliX2J1ZmZlcl9ieXRlcyhzdWJzdHJlYW0pLAotCQkJMCk7CisJCQlBWkZfUExBWUJBQ0spOwogCiAJCXNwaW5fbG9jaygmY2hpcC0+cmVnX2xvY2spOwogI2lmZGVmIFdJTjlYCkBAIC05NzgsMzAgKzExNTUsMzUgQEAKIAkJCURNQV9TT01FVEhJTkdfRUxTRSk7CiAjZW5kaWYKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJc25kX2F6ZjMzMjhfY29kZWNfYWN0aXZpdHkoY2hpcCwgQVpGX1BMQVlCQUNLLCAxKTsKIAogCQkvKiBub3cgdW5tdXRlIFdhdmVPdXQgKi8KLQkJc25kX2F6ZjMzMjhfbWl4ZXJfc2V0X211dGUoY2hpcCwgSURYX01JWEVSX1dBVkVPVVQsIDApOworCQlpZiAoIXByZXZpb3VzbHlfbXV0ZWQpCisJCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMCk7CiAKLQkJY2hpcC0+aXNfcGxheWluZyA9IDE7CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUQVJURUQgUExBWUJBQ0tcbiIpOwogCQlicmVhazsKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiUkVTVU1FIFBMQVlCQUNLXG4iKTsKIAkJLyogcmVzdW1lIHBsYXliYWNrIGlmIHdlIHdlcmUgYWN0aXZlICovCi0JCWlmIChjaGlwLT5pc19wbGF5aW5nKQorCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJaWYgKGNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfUExBWUJBQ0tdLnJ1bm5pbmcpCiAJCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTLAogCQkJCXNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUykgfCBETUFfUkVTVU1FKTsKKwkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAkJYnJlYWs7CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJTVE9QIFBMQVlCQUNLXG4iKTsKIAotCQkvKiBtdXRlIFdhdmVPdXQgKi8KLQkJc25kX2F6ZjMzMjhfbWl4ZXJfc2V0X211dGUoY2hpcCwgSURYX01JWEVSX1dBVkVPVVQsIDEpOworCQkvKiBtdXRlIFdhdmVPdXQgKGF2b2lkIGNsaWNraW5nIGR1cmluZyBzZXR1cCkgKi8KKwkJcHJldmlvdXNseV9tdXRlZCA9CisJCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMSk7CiAKIAkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7Ci0JCS8qIHN0b3AgcGxheWJhY2sgKi8KKwkJLyogZmlyc3QsIHJlbWVtYmVyIGN1cnJlbnQgdmFsdWU6ICovCiAJCXN0YXR1czEgPSBzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1BMQVlfRkxBR1MpOwogCisJCS8qIHN0b3AgcGxheWJhY2sgKi8KIAkJc3RhdHVzMSAmPSB+RE1BX1JFU1VNRTsKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUywgc3RhdHVzMSk7CiAKQEAgLTEwMTMsMTAgKzExOTUsMTIgQEAKIAkJc3RhdHVzMSAmPSB+RE1BX1BMQVlfU09NRVRISU5HMTsKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUywgc3RhdHVzMSk7CiAJCXNwaW5fdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7Ci0JICAgIAorCQlzbmRfYXpmMzMyOF9jb2RlY19hY3Rpdml0eShjaGlwLCBBWkZfUExBWUJBQ0ssIDApOworCiAJCS8qIG5vdyB1bm11dGUgV2F2ZU91dCAqLwotCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMCk7Ci0JCWNoaXAtPmlzX3BsYXlpbmcgPSAwOworCQlpZiAoIXByZXZpb3VzbHlfbXV0ZWQpCisJCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMCk7CisKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiU1RPUFBFRCBQTEFZQkFDS1xuIik7CiAJCWJyZWFrOwogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKQEAgLTEwMzUsNyArMTIxOSw3IEBACiAJCXByaW50ayhLRVJOX0VSUiAiRklYTUU6IHVua25vd24gdHJpZ2dlciBtb2RlIVxuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAJfQotCQorCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCk7CiAJcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEwNTcsMTcgKzEyNDEsMTkgQEAKIAogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJTVEFSVCBDQVBUVVJFXG4iKTsKIAotCQlzbmRfYXpmMzMyOF9zZXRmbXQoY2hpcCwgSURYX0lPX1JFQ19TT1VOREZPUk1BVCwKKwkJc25kX2F6ZjMzMjhfY29kZWNfc2V0Zm10KGNoaXAsIElEWF9JT19SRUNfU09VTkRGT1JNQVQsCiAJCQlydW50aW1lLT5yYXRlLAogCQkJc25kX3BjbV9mb3JtYXRfd2lkdGgocnVudGltZS0+Zm9ybWF0KSwKIAkJCXJ1bnRpbWUtPmNoYW5uZWxzKTsKIAogCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKLQkJLyogc3RvcCByZWNvcmRpbmcgKi8KKwkJLyogZmlyc3QsIHJlbWVtYmVyIGN1cnJlbnQgdmFsdWU6ICovCiAJCXN0YXR1czEgPSBzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1JFQ19GTEFHUyk7CisKKwkJLyogc3RvcCByZWNvcmRpbmcgKi8KIAkJc3RhdHVzMSAmPSB+RE1BX1JFU1VNRTsKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fUkVDX0ZMQUdTLCBzdGF0dXMxKTsKLQkgICAgCisKIAkJLyogRklYTUU6IGNsZWFyIGludGVycnVwdHMgb3Igd2hhdD8/PyAqLwogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19SRUNfSVJRVFlQRSwgMHhmZmZmKTsKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKQEAgLTEwNzUsNyArMTI2MSw3IEBACiAJCXNuZF9hemYzMzI4X3NldGRtYWEoY2hpcCwgcnVudGltZS0+ZG1hX2FkZHIsCiAJCQlzbmRfcGNtX2xpYl9wZXJpb2RfYnl0ZXMoc3Vic3RyZWFtKSwKIAkJCXNuZF9wY21fbGliX2J1ZmZlcl9ieXRlcyhzdWJzdHJlYW0pLAotCQkJMSk7CisJCQlBWkZfQ0FQVFVSRSk7CiAKIAkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7CiAjaWZkZWYgV0lOOVgKQEAgLTExMDIsMjQgKzEyODgsMjcgQEAKIAkJCURNQV9TT01FVEhJTkdfRUxTRSk7CiAjZW5kaWYKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJc25kX2F6ZjMzMjhfY29kZWNfYWN0aXZpdHkoY2hpcCwgQVpGX0NBUFRVUkUsIDEpOwogCi0JCWNoaXAtPmlzX3JlY29yZGluZyA9IDE7CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUQVJURUQgQ0FQVFVSRVxuIik7CiAJCWJyZWFrOwogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUkVTVU1FOgogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJSRVNVTUUgQ0FQVFVSRVxuIik7CiAJCS8qIHJlc3VtZSByZWNvcmRpbmcgaWYgd2Ugd2VyZSBhY3RpdmUgKi8KLQkJaWYgKGNoaXAtPmlzX3JlY29yZGluZykKKwkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7CisJCWlmIChjaGlwLT5hdWRpb19zdHJlYW1bQVpGX0NBUFRVUkVdLnJ1bm5pbmcpCiAJCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19SRUNfRkxBR1MsCiAJCQkJc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIElEWF9JT19SRUNfRkxBR1MpIHwgRE1BX1JFU1VNRSk7CisJCXNwaW5fdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7CiAJCWJyZWFrOwogICAgICAgICBjYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUT1AgQ0FQVFVSRVxuIik7CiAKIAkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7Ci0JCS8qIHN0b3AgcmVjb3JkaW5nICovCisJCS8qIGZpcnN0LCByZW1lbWJlciBjdXJyZW50IHZhbHVlOiAqLwogCQlzdGF0dXMxID0gc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIElEWF9JT19SRUNfRkxBR1MpOwogCisJCS8qIHN0b3AgcmVjb3JkaW5nICovCiAJCXN0YXR1czEgJj0gfkRNQV9SRVNVTUU7CiAJCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgSURYX0lPX1JFQ19GTEFHUywgc3RhdHVzMSk7CiAKQEAgLTExMjksOCArMTMxOCw4IEBACiAJCXN0YXR1czEgJj0gfkRNQV9QTEFZX1NPTUVUSElORzE7CiAJCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgSURYX0lPX1JFQ19GTEFHUywgc3RhdHVzMSk7CiAJCXNwaW5fdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7Ci0JICAgIAotCQljaGlwLT5pc19yZWNvcmRpbmcgPSAwOworCQlzbmRfYXpmMzMyOF9jb2RlY19hY3Rpdml0eShjaGlwLCBBWkZfQ0FQVFVSRSwgMCk7CisKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiU1RPUFBFRCBDQVBUVVJFXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVVNQRU5EOgpAQCAtMTE0OSw3ICsxMzM4LDcgQEAKIAkJcHJpbnRrKEtFUk5fRVJSICJGSVhNRTogdW5rbm93biB0cmlnZ2VyIG1vZGUhXG4iKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAl9Ci0JCisKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTE2MiwxMSArMTM1MSwxMSBAQAogCXNuZF9wY21fdWZyYW1lc190IGZybXJlczsKIAogI2lmZGVmIFFVRVJZX0hBUkRXQVJFCi0JYnVmcHRyID0gaW5sKGNoaXAtPmNvZGVjX3BvcnQrSURYX0lPX1BMQVlfRE1BX1NUQVJUXzEpOworCWJ1ZnB0ciA9IHNuZF9hemYzMzI4X2NvZGVjX2lubChjaGlwLCBJRFhfSU9fUExBWV9ETUFfU1RBUlRfMSk7CiAjZWxzZQogCWJ1ZnB0ciA9IHN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FkZHI7CiAjZW5kaWYKLQlyZXN1bHQgPSBpbmwoY2hpcC0+Y29kZWNfcG9ydCtJRFhfSU9fUExBWV9ETUFfQ1VSUlBPUyk7CisJcmVzdWx0ID0gc25kX2F6ZjMzMjhfY29kZWNfaW5sKGNoaXAsIElEWF9JT19QTEFZX0RNQV9DVVJSUE9TKTsKIAogCS8qIGNhbGN1bGF0ZSBvZmZzZXQgKi8KIAlyZXN1bHQgLT0gYnVmcHRyOwpAQCAtMTE4MywxMSArMTM3MiwxMSBAQAogCXNuZF9wY21fdWZyYW1lc190IGZybXJlczsKIAogI2lmZGVmIFFVRVJZX0hBUkRXQVJFCi0JYnVmcHRyID0gaW5sKGNoaXAtPmNvZGVjX3BvcnQrSURYX0lPX1JFQ19ETUFfU1RBUlRfMSk7CisJYnVmcHRyID0gc25kX2F6ZjMzMjhfY29kZWNfaW5sKGNoaXAsIElEWF9JT19SRUNfRE1BX1NUQVJUXzEpOwogI2Vsc2UKIAlidWZwdHIgPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9hZGRyOwogI2VuZGlmCi0JcmVzdWx0ID0gaW5sKGNoaXAtPmNvZGVjX3BvcnQrSURYX0lPX1JFQ19ETUFfQ1VSUlBPUyk7CisJcmVzdWx0ID0gc25kX2F6ZjMzMjhfY29kZWNfaW5sKGNoaXAsIElEWF9JT19SRUNfRE1BX0NVUlJQT1MpOwogCiAJLyogY2FsY3VsYXRlIG9mZnNldCAqLwogCXJlc3VsdCAtPSBidWZwdHI7CkBAIC0xMTk2LDI3ICsxMzg1LDI0MSBAQAogCXJldHVybiBmcm1yZXM7CiB9CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBTVVBQT1JUX0dBTUVQT1JUCitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X2dhbWVwb3J0X2lycV9lbmFibGUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZW5hYmxlKQoreworCXNuZF9hemYzMzI4X2lvX3JlZ19zZXRiKAorCQljaGlwLT5nYW1lX2lvK0lEWF9HQU1FX0hXQ09ORklHLAorCQlHQU1FX0hXQ0ZHX0lSUV9FTkFCTEUsCisJCWVuYWJsZQorCSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfbGVnYWN5X2FkZHJlc3NfZW5hYmxlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IGVuYWJsZSkKK3sKKwlzbmRfYXpmMzMyOF9pb19yZWdfc2V0YigKKwkJY2hpcC0+Z2FtZV9pbytJRFhfR0FNRV9IV0NPTkZJRywKKwkJR0FNRV9IV0NGR19MRUdBQ1lfQUREUkVTU19FTkFCTEUsCisJCWVuYWJsZQorCSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfYXhpc19jaXJjdWl0X2VuYWJsZShzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCBlbmFibGUpCit7CisJc25kX2F6ZjMzMjhfY29kZWNfcmVnXzZBSF91cGRhdGUoCisJCWNoaXAsIElPXzZBX1NPTUVUSElORzJfR0FNRVBPUlQsIGVuYWJsZQorCSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfaW50ZXJydXB0KHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKK3sKKwkvKgorCSAqIHNrZWxldG9uIGhhbmRsZXIgb25seQorCSAqICh3ZSBkbyBub3Qgd2FudCBheGlzIHJlYWRpbmcgaW4gaW50ZXJydXB0IGhhbmRsZXIgLSB0b28gbXVjaCBsb2FkISkKKwkgKi8KKwlzbmRfYXpmMzMyOF9kYmdnYW1lKCJnYW1lcG9ydCBpcnFcbiIpOworCisJIC8qIHRoaXMgc2hvdWxkIEFDSyB0aGUgZ2FtZXBvcnQgSVJRIHByb3Blcmx5LCBob3BlZnVsbHkuICovCisJc25kX2F6ZjMzMjhfZ2FtZV9pbncoY2hpcCwgSURYX0dBTUVfQVhJU19WQUxVRSk7Cit9CisKK3N0YXRpYyBpbnQKK3NuZF9hemYzMzI4X2dhbWVwb3J0X29wZW4oc3RydWN0IGdhbWVwb3J0ICpnYW1lcG9ydCwgaW50IG1vZGUpCit7CisJc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gZ2FtZXBvcnRfZ2V0X3BvcnRfZGF0YShnYW1lcG9ydCk7CisJaW50IHJlczsKKworCXNuZF9hemYzMzI4X2RiZ2dhbWUoImdhbWVwb3J0X29wZW4sIG1vZGUgJWRcbiIsIG1vZGUpOworCXN3aXRjaCAobW9kZSkgeworCWNhc2UgR0FNRVBPUlRfTU9ERV9DT09LRUQ6CisJY2FzZSBHQU1FUE9SVF9NT0RFX1JBVzoKKwkJcmVzID0gMDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmVzID0gLTE7CisJCWJyZWFrOworCX0KKworCXNuZF9hemYzMzI4X2dhbWVwb3J0X2F4aXNfY2lyY3VpdF9lbmFibGUoY2hpcCwgKHJlcyA9PSAwKSk7CisKKwlyZXR1cm4gcmVzOworfQorCitzdGF0aWMgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfY2xvc2Uoc3RydWN0IGdhbWVwb3J0ICpnYW1lcG9ydCkKK3sKKwlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAgPSBnYW1lcG9ydF9nZXRfcG9ydF9kYXRhKGdhbWVwb3J0KTsKKworCXNuZF9hemYzMzI4X2RiZ2dhbWUoImdhbWVwb3J0X2Nsb3NlXG4iKTsKKwlzbmRfYXpmMzMyOF9nYW1lcG9ydF9heGlzX2NpcmN1aXRfZW5hYmxlKGNoaXAsIDApOworfQorCitzdGF0aWMgaW50CitzbmRfYXpmMzMyOF9nYW1lcG9ydF9jb29rZWRfcmVhZChzdHJ1Y3QgZ2FtZXBvcnQgKmdhbWVwb3J0LAorCQkJCSBpbnQgKmF4ZXMsCisJCQkJIGludCAqYnV0dG9ucworKQoreworCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGdhbWVwb3J0X2dldF9wb3J0X2RhdGEoZ2FtZXBvcnQpOworCWludCBpOworCXU4IHZhbDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc25kX2Fzc2VydChjaGlwLCByZXR1cm4gMCk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKKwl2YWwgPSBzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCBJRFhfR0FNRV9MRUdBQ1lfQ09NUEFUSUJMRSk7CisJKmJ1dHRvbnMgPSAofih2YWwpID4+IDQpICYgMHhmOworCisJLyogb2ssIHRoaXMgb25lIGlzIGEgYml0IGRpcnR5OiBjb29rZWRfcmVhZCBpcyBiZWluZyBwb2xsZWQgYnkgYSB0aW1lciwKKwkgKiB0aHVzIHdlJ3JlIGF0b21pYyBhbmQgY2Fubm90IGFjdGl2ZWx5IHdhaXQgaW4gaGVyZQorCSAqICh3aGljaCB3b3VsZCBiZSB1c2VmdWwgZm9yIHVzIHNpbmNlIGl0IHByb2JhYmx5IHdvdWxkIGJlIGJldHRlcgorCSAqIHRvIHRyaWdnZXIgYSBtZWFzdXJlbWVudCBpbiBoZXJlLCB0aGVuIHdhaXQgYSBzaG9ydCBhbW91bnQgb2YKKwkgKiB0aW1lIHVudGlsIGl0J3MgZmluaXNoZWQsIHRoZW4gcmVhZCB2YWx1ZXMgb2YgX3RoaXNfIG1lYXN1cmVtZW50KS4KKwkgKgorCSAqIFRodXMgd2Ugc2ltcGx5IHJlc29ydCB0byByZWFkaW5nIHZhbHVlcyBpZiB0aGV5J3JlIGF2YWlsYWJsZSBhbHJlYWR5CisJICogYW5kIHRyaWdnZXIgdGhlIG5leHQgbWVhc3VyZW1lbnQuCisJICovCisKKwl2YWwgPSBzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCBJRFhfR0FNRV9BWEVTX0NPTkZJRyk7CisJaWYgKHZhbCAmIEdBTUVfQVhFU19TQU1QTElOR19SRUFEWSkgeworCQlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7CisJCQkvKiBjb25maWd1cmUgdGhlIGF4aXMgdG8gcmVhZCAqLworCQkJdmFsID0gKGkgPDwgNCkgfCAweDBmOworCQkJc25kX2F6ZjMzMjhfZ2FtZV9vdXRiKGNoaXAsIElEWF9HQU1FX0FYRVNfQ09ORklHLCB2YWwpOworCisJCQljaGlwLT5heGVzW2ldID0gc25kX2F6ZjMzMjhfZ2FtZV9pbncoCisJCQkJCQljaGlwLCBJRFhfR0FNRV9BWElTX1ZBTFVFCisJCQkJCSk7CisJCX0KKwl9CisKKwkvKiB0cmlnZ2VyIG5leHQgYXhlcyBzYW1wbGluZywgdG8gYmUgZXZhbHVhdGVkIHRoZSBuZXh0IHRpbWUgd2UKKwkgKiBlbnRlciB0aGlzIGZ1bmN0aW9uICovCisKKwkvKiBmb3Igc29tZSB2ZXJ5LCB2ZXJ5IHN0cmFuZ2UgcmVhc29uIHdlIGNhbm5vdCBlbmFibGUKKwkgKiBNZWFzdXJlbWVudCBSZWFkeSBtb25pdG9yaW5nIGZvciBhbGwgYXhlcyBoZXJlLAorCSAqIGF0IGxlYXN0IG5vdCB3aGVuIG9ubHkgb25lIGpveXN0aWNrIGNvbm5lY3RlZCAqLworCXZhbCA9IDB4MDM7IC8qIHdlJ3JlIGFibGUgdG8gbW9uaXRvciBheGVzIDEgYW5kIDIgb25seSAqLworCXNuZF9hemYzMzI4X2dhbWVfb3V0YihjaGlwLCBJRFhfR0FNRV9BWEVTX0NPTkZJRywgdmFsKTsKKworCXNuZF9hemYzMzI4X2dhbWVfb3V0dyhjaGlwLCBJRFhfR0FNRV9BWElTX1ZBTFVFLCAweGZmZmYpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPnJlZ19sb2NrLCBmbGFncyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisJCWF4ZXNbaV0gPSBjaGlwLT5heGVzW2ldOworCQlpZiAoYXhlc1tpXSA9PSAweGZmZmYpCisJCQlheGVzW2ldID0gLTE7CisJfQorCisJc25kX2F6ZjMzMjhfZGJnZ2FtZSgiY29va2VkX3JlYWQ6IGF4ZXMgJWQgJWQgJWQgJWQgYnV0dG9ucyAlZFxuIiwKKwkJYXhlc1swXSwgYXhlc1sxXSwgYXhlc1syXSwgYXhlc1szXSwgKmJ1dHRvbnMKKwkpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZpbml0CitzbmRfYXpmMzMyOF9nYW1lcG9ydChzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCBkZXYpCit7CisJc3RydWN0IGdhbWVwb3J0ICpncDsKKworCWNoaXAtPmdhbWVwb3J0ID0gZ3AgPSBnYW1lcG9ydF9hbGxvY2F0ZV9wb3J0KCk7CisJaWYgKCFncCkgeworCQlwcmludGsoS0VSTl9FUlIgImF6dDMzMjg6IGNhbm5vdCBhbGxvYyBtZW1vcnkgZm9yIGdhbWVwb3J0XG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJZ2FtZXBvcnRfc2V0X25hbWUoZ3AsICJBWkYzMzI4IEdhbWVwb3J0Iik7CisJZ2FtZXBvcnRfc2V0X3BoeXMoZ3AsICJwY2klcy9nYW1lcG9ydDAiLCBwY2lfbmFtZShjaGlwLT5wY2kpKTsKKwlnYW1lcG9ydF9zZXRfZGV2X3BhcmVudChncCwgJmNoaXAtPnBjaS0+ZGV2KTsKKwlncC0+aW8gPSBjaGlwLT5nYW1lX2lvOworCWdhbWVwb3J0X3NldF9wb3J0X2RhdGEoZ3AsIGNoaXApOworCisJZ3AtPm9wZW4gPSBzbmRfYXpmMzMyOF9nYW1lcG9ydF9vcGVuOworCWdwLT5jbG9zZSA9IHNuZF9hemYzMzI4X2dhbWVwb3J0X2Nsb3NlOworCWdwLT5mdXp6ID0gMTY7IC8qIHNlZW1zIG9rICovCisJZ3AtPmNvb2tlZF9yZWFkID0gc25kX2F6ZjMzMjhfZ2FtZXBvcnRfY29va2VkX3JlYWQ7CisKKwkvKiBESVNBQkxFIGxlZ2FjeSBhZGRyZXNzOiB3ZSBkb24ndCBuZWVkIGl0ISAqLworCXNuZF9hemYzMzI4X2dhbWVwb3J0X2xlZ2FjeV9hZGRyZXNzX2VuYWJsZShjaGlwLCAwKTsKKworCXNuZF9hemYzMzI4X2dhbWVwb3J0X2F4aXNfY2lyY3VpdF9lbmFibGUoY2hpcCwgMCk7CisKKwlnYW1lcG9ydF9yZWdpc3Rlcl9wb3J0KGNoaXAtPmdhbWVwb3J0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfZnJlZShzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXApCit7CisJaWYgKGNoaXAtPmdhbWVwb3J0KSB7CisJCWdhbWVwb3J0X3VucmVnaXN0ZXJfcG9ydChjaGlwLT5nYW1lcG9ydCk7CisJCWNoaXAtPmdhbWVwb3J0ID0gTlVMTDsKKwl9CisJc25kX2F6ZjMzMjhfZ2FtZXBvcnRfaXJxX2VuYWJsZShjaGlwLCAwKTsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIGludAorc25kX2F6ZjMzMjhfZ2FtZXBvcnQoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZGV2KSB7IHJldHVybiAtRU5PU1lTOyB9CitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X2dhbWVwb3J0X2ZyZWUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfaW50ZXJydXB0KHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKK3sKKwlwcmludGsoS0VSTl9XQVJOSU5HICJodWgsIGdhbWUgcG9ydCBJUlEgb2NjdXJyZWQhP1xuIik7Cit9CisjZW5kaWYgLyogU1VQUE9SVF9HQU1FUE9SVCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X2lycV9sb2dfdW5rbm93bl90eXBlKHU4IHdoaWNoKQoreworCXNuZF9hemYzMzI4X2RiZ3BsYXkoCisJImF6dDMzMjg6IHVua25vd24gSVJRIHR5cGUgKCV4KSBvY2N1cnJlZCwgcGxlYXNlIHJlcG9ydCFcbiIsCisJCXdoaWNoCisJKTsKK30KKwogc3RhdGljIGlycXJldHVybl90CiBzbmRfYXpmMzMyOF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogewogCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGRldl9pZDsKIAl1OCBzdGF0dXMsIHdoaWNoOworI2lmIERFQlVHX1BMQVlfUkVDCiAJc3RhdGljIHVuc2lnbmVkIGxvbmcgaXJxX2NvdW50OworI2VuZGlmCiAKIAlzdGF0dXMgPSBzbmRfYXpmMzMyOF9jb2RlY19pbmIoY2hpcCwgSURYX0lPX0lSUVNUQVRVUyk7CiAKICAgICAgICAgLyogZmFzdCBwYXRoIG91dCwgdG8gZWFzZSBpbnRlcnJ1cHQgc2hhcmluZyAqLwotCWlmICghKHN0YXR1cyAmIChJUlFfUExBWUJBQ0t8SVJRX1JFQ09SRElOR3xJUlFfTVBVNDAxfElSUV9USU1FUikpKQorCWlmICghKHN0YXR1cyAmCisJCShJUlFfUExBWUJBQ0t8SVJRX1JFQ09SRElOR3xJUlFfR0FNRVBPUlR8SVJRX01QVTQwMXxJUlFfVElNRVIpCisJKSkKIAkJcmV0dXJuIElSUV9OT05FOyAvKiBtdXN0IGJlIGludGVycnVwdCBmb3IgYW5vdGhlciBkZXZpY2UgKi8KIAotCXNuZF9hemYzMzI4X2RiZ3BsYXkoIkludGVycnVwdCAlbGQhXG5JRFhfSU9fUExBWV9GTEFHUyAlMDR4LCBJRFhfSU9fUExBWV9JUlFUWVBFICUwNHgsIElEWF9JT19JUlFTVEFUVVMgJTA0eFxuIiwKLQkJaXJxX2NvdW50LAotCQlzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1BMQVlfRkxBR1MpLAotCQlzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1BMQVlfSVJRVFlQRSksCi0JCXN0YXR1cyk7Ci0JCQorCXNuZF9hemYzMzI4X2RiZ3BsYXkoCisJCSJpcnFfY291bnQgJWxkISBJRFhfSU9fUExBWV9GTEFHUyAlMDR4LCAiCisJCSJJRFhfSU9fUExBWV9JUlFUWVBFICUwNHgsIElEWF9JT19JUlFTVEFUVVMgJTA0eFxuIiwKKwkJCWlycV9jb3VudCsrIC8qIGRlYnVnLW9ubHkgKi8sCisJCQlzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1BMQVlfRkxBR1MpLAorCQkJc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIElEWF9JT19QTEFZX0lSUVRZUEUpLAorCQkJc3RhdHVzCisJKTsKKwogCWlmIChzdGF0dXMgJiBJUlFfVElNRVIpIHsKLQkJLyogc25kX2F6ZjMzMjhfZGJncGxheSgidGltZXIgJWxkXG4iLCBpbmwoY2hpcC0+Y29kZWNfcG9ydCtJRFhfSU9fVElNRVJfVkFMVUUpICYgVElNRVJfVkFMVUVfTUFTSyk7ICovCisJCS8qIHNuZF9hemYzMzI4X2RiZ3BsYXkoInRpbWVyICVsZFxuIiwKKwkJCXNuZF9hemYzMzI4X2NvZGVjX2lubChjaGlwLCBJRFhfSU9fVElNRVJfVkFMVUUpCisJCQkJJiBUSU1FUl9WQUxVRV9NQVNLCisJCSk7ICovCiAJCWlmIChjaGlwLT50aW1lcikKIAkJCXNuZF90aW1lcl9pbnRlcnJ1cHQoY2hpcC0+dGltZXIsIGNoaXAtPnRpbWVyLT5zdGlja3MpOwogCQkvKiBBQ0sgdGltZXIgKi8KQEAgLTEyMzIsMTUgKzE2MzUsMjAgQEAKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0YihjaGlwLCBJRFhfSU9fUExBWV9JUlFUWVBFLCB3aGljaCk7CiAgICAgICAgICAgICAgICAJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAotCQlpZiAoY2hpcC0+cGNtICYmIGNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSkgewotCQkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZChjaGlwLT5wbGF5YmFja19zdWJzdHJlYW0pOworCQlpZiAoY2hpcC0+cGNtICYmIGNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfUExBWUJBQ0tdLnN1YnN0cmVhbSkgeworCQkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZCgKKwkJCQljaGlwLT5hdWRpb19zdHJlYW1bQVpGX1BMQVlCQUNLXS5zdWJzdHJlYW0KKwkJCSk7CiAJCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJQTEFZIHBlcmlvZCBkb25lICgjJXgpLCBAICV4XG4iLAogCQkJCXdoaWNoLAotCQkJCWlubChjaGlwLT5jb2RlY19wb3J0K0lEWF9JT19QTEFZX0RNQV9DVVJSUE9TKSk7CisJCQkJc25kX2F6ZjMzMjhfY29kZWNfaW5sKAorCQkJCQljaGlwLCBJRFhfSU9fUExBWV9ETUFfQ1VSUlBPUworCQkJCSkKKwkJCSk7CiAJCX0gZWxzZQotCQkJc25kX2F6ZjMzMjhfZGJncGxheSgiYXp0MzMyODogb3VjaCwgaXJxIGhhbmRsZXIgcHJvYmxlbSFcbiIpOworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYXp0MzMyODogaXJxIGhhbmRsZXIgcHJvYmxlbSFcbiIpOwogCQlpZiAod2hpY2ggJiBJUlFfUExBWV9TT01FVEhJTkcpCi0JCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJhenQzMzI4OiB1bmtub3duIHBsYXkgSVJRIHR5cGUgb2NjdXJyZWQsIHBsZWFzZSByZXBvcnQhXG4iKTsKKwkJCXNuZF9hemYzMzI4X2lycV9sb2dfdW5rbm93bl90eXBlKHdoaWNoKTsKIAl9CiAJaWYgKHN0YXR1cyAmIElSUV9SRUNPUkRJTkcpIHsKICAgICAgICAgICAgICAgICBzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKQEAgLTEyNDksMTYgKzE2NTcsMjMgQEAKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0YihjaGlwLCBJRFhfSU9fUkVDX0lSUVRZUEUsIHdoaWNoKTsKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAotCQlpZiAoY2hpcC0+cGNtICYmIGNoaXAtPmNhcHR1cmVfc3Vic3RyZWFtKSB7Ci0JCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGNoaXAtPmNhcHR1cmVfc3Vic3RyZWFtKTsKKwkJaWYgKGNoaXAtPnBjbSAmJiBjaGlwLT5hdWRpb19zdHJlYW1bQVpGX0NBUFRVUkVdLnN1YnN0cmVhbSkgeworCQkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZCgKKwkJCQljaGlwLT5hdWRpb19zdHJlYW1bQVpGX0NBUFRVUkVdLnN1YnN0cmVhbQorCQkJKTsKIAkJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlJFQyAgcGVyaW9kIGRvbmUgKCMleCksIEAgJXhcbiIsCiAJCQkJd2hpY2gsCi0JCQkJaW5sKGNoaXAtPmNvZGVjX3BvcnQrSURYX0lPX1JFQ19ETUFfQ1VSUlBPUykpOworCQkJCXNuZF9hemYzMzI4X2NvZGVjX2lubCgKKwkJCQkJY2hpcCwgSURYX0lPX1JFQ19ETUFfQ1VSUlBPUworCQkJCSkKKwkJCSk7CiAJCX0gZWxzZQotCQkJc25kX2F6ZjMzMjhfZGJncGxheSgiYXp0MzMyODogb3VjaCwgaXJxIGhhbmRsZXIgcHJvYmxlbSFcbiIpOworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYXp0MzMyODogaXJxIGhhbmRsZXIgcHJvYmxlbSFcbiIpOwogCQlpZiAod2hpY2ggJiBJUlFfUkVDX1NPTUVUSElORykKLQkJCXNuZF9hemYzMzI4X2RiZ3BsYXkoImF6dDMzMjg6IHVua25vd24gcmVjIElSUSB0eXBlIG9jY3VycmVkLCBwbGVhc2UgcmVwb3J0IVxuIik7CisJCQlzbmRfYXpmMzMyOF9pcnFfbG9nX3Vua25vd25fdHlwZSh3aGljaCk7CiAJfQorCWlmIChzdGF0dXMgJiBJUlFfR0FNRVBPUlQpCisJCXNuZF9hemYzMzI4X2dhbWVwb3J0X2ludGVycnVwdChjaGlwKTsKIAkvKiBNUFU0MDEgaGFzIGxlc3MgY3JpdGljYWwgSVJRIHJlcXVpcmVtZW50cwogCSAqIHRoYW4gdGltZXIgYW5kIHBsYXliYWNrL3JlY29yZGluZywgcmlnaHQ/ICovCiAJaWYgKHN0YXR1cyAmIElSUV9NUFU0MDEpIHsKQEAgLTEyNjgsNyArMTY4Myw2IEBACiAJCSAqIElmIHNvLCB0aGVuIEkgZG9uJ3Qga25vdyBob3cuLi4gKi8KIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiYXp0MzMyODogTVBVNDAxIElSUVxuIik7CiAJfQotCWlycV9jb3VudCsrOwogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIApAQCAtMTI4Nyw4ICsxNzAxLDggQEAKIAkucmF0ZXMgPQkJU05EUlZfUENNX1JBVEVfNTUxMiB8CiAJCQkJU05EUlZfUENNX1JBVEVfODAwMF80ODAwMCB8CiAJCQkJU05EUlZfUENNX1JBVEVfS05PVCwKLQkucmF0ZV9taW4gPQkJNDAwMCwKLQkucmF0ZV9tYXggPQkJNjYyMDAsCisJLnJhdGVfbWluID0JCUFaRl9GUkVRXzQwMDAsCisJLnJhdGVfbWF4ID0JCUFaRl9GUkVRXzY2MjAwLAogCS5jaGFubmVsc19taW4gPQkJMSwKIAkuY2hhbm5lbHNfbWF4ID0JCTIsCiAJLmJ1ZmZlcl9ieXRlc19tYXggPQk2NTUzNiwKQEAgLTEzMTUsOCArMTcyOSw4IEBACiAJLnJhdGVzID0JCVNORFJWX1BDTV9SQVRFXzU1MTIgfAogCQkJCVNORFJWX1BDTV9SQVRFXzgwMDBfNDgwMDAgfAogCQkJCVNORFJWX1BDTV9SQVRFX0tOT1QsCi0JLnJhdGVfbWluID0JCTQwMDAsCi0JLnJhdGVfbWF4ID0JCTY2MjAwLAorCS5yYXRlX21pbiA9CQlBWkZfRlJFUV80MDAwLAorCS5yYXRlX21heCA9CQlBWkZfRlJFUV82NjIwMCwKIAkuY2hhbm5lbHNfbWluID0JCTEsCiAJLmNoYW5uZWxzX21heCA9CQkyLAogCS5idWZmZXJfYnl0ZXNfbWF4ID0JNjU1MzYsCkBAIC0xMzI5LDEwICsxNzQzLDI0IEBACiAKIAogc3RhdGljIHVuc2lnbmVkIGludCBzbmRfYXpmMzMyOF9maXhlZF9yYXRlc1tdID0gewotCTQwMDAsIDQ4MDAsIDU1MTIsIDY2MjAsIDgwMDAsIDk2MDAsIDExMDI1LCAxMzI0MCwgMTYwMDAsIDIyMDUwLCAzMjAwMCwKLQk0NDEwMCwgNDgwMDAsIDY2MjAwIH07CisJQVpGX0ZSRVFfNDAwMCwKKwlBWkZfRlJFUV80ODAwLAorCUFaRl9GUkVRXzU1MTIsCisJQVpGX0ZSRVFfNjYyMCwKKwlBWkZfRlJFUV84MDAwLAorCUFaRl9GUkVRXzk2MDAsCisJQVpGX0ZSRVFfMTEwMjUsCisJQVpGX0ZSRVFfMTMyNDAsCisJQVpGX0ZSRVFfMTYwMDAsCisJQVpGX0ZSRVFfMjIwNTAsCisJQVpGX0ZSRVFfMzIwMDAsCisJQVpGX0ZSRVFfNDQxMDAsCisJQVpGX0ZSRVFfNDgwMDAsCisJQVpGX0ZSRVFfNjYyMDAKK307CisKIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9od19jb25zdHJhaW50X2xpc3Qgc25kX2F6ZjMzMjhfaHdfY29uc3RyYWludHNfcmF0ZXMgPSB7Ci0JLmNvdW50ID0gQVJSQVlfU0laRShzbmRfYXpmMzMyOF9maXhlZF9yYXRlcyksIAorCS5jb3VudCA9IEFSUkFZX1NJWkUoc25kX2F6ZjMzMjhfZml4ZWRfcmF0ZXMpLAogCS5saXN0ID0gc25kX2F6ZjMzMjhfZml4ZWRfcmF0ZXMsCiAJLm1hc2sgPSAwLAogfTsKQEAgLTEzNDYsNyArMTc3NCw3IEBACiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAogCXNuZF9hemYzMzI4X2RiZ2NhbGxlbnRlcigpOwotCWNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKwljaGlwLT5hdWRpb19zdHJlYW1bQVpGX1BMQVlCQUNLXS5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CiAJcnVudGltZS0+aHcgPSBzbmRfYXpmMzMyOF9wbGF5YmFjazsKIAlzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbGlzdChydW50aW1lLCAwLCBTTkRSVl9QQ01fSFdfUEFSQU1fUkFURSwKIAkJCQkgICAmc25kX2F6ZjMzMjhfaHdfY29uc3RyYWludHNfcmF0ZXMpOwpAQCAtMTM2MSw3ICsxNzg5LDcgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwogCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7Ci0JY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0gPSBzdWJzdHJlYW07CisJY2hpcC0+YXVkaW9fc3RyZWFtW0FaRl9DQVBUVVJFXS5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CiAJcnVudGltZS0+aHcgPSBzbmRfYXpmMzMyOF9jYXB0dXJlOwogCXNuZF9wY21faHdfY29uc3RyYWludF9saXN0KHJ1bnRpbWUsIDAsIFNORFJWX1BDTV9IV19QQVJBTV9SQVRFLAogCQkJCSAgICZzbmRfYXpmMzMyOF9od19jb25zdHJhaW50c19yYXRlcyk7CkBAIC0xMzc1LDcgKzE4MDMsNyBAQAogCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKIAogCXNuZF9hemYzMzI4X2RiZ2NhbGxlbnRlcigpOwotCWNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSA9IE5VTEw7CisJY2hpcC0+YXVkaW9fc3RyZWFtW0FaRl9QTEFZQkFDS10uc3Vic3RyZWFtID0gTlVMTDsKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTEzODYsNyArMTgxNCw3IEBACiAJc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwogCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7Ci0JY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0gPSBOVUxMOworCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfQ0FQVFVSRV0uc3Vic3RyZWFtID0gTlVMTDsKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTE0NDEsMTAyICsxODY5LDggQEAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotI2lmZGVmIFNVUFBPUlRfSk9ZU1RJQ0sKLXN0YXRpYyBpbnQgX19kZXZpbml0Ci1zbmRfYXpmMzMyOF9jb25maWdfam95c3RpY2soc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZGV2KQotewotCXN0cnVjdCBnYW1lcG9ydCAqZ3A7Ci0Jc3RydWN0IHJlc291cmNlICpyOwotCi0JaWYgKCFqb3lzdGlja1tkZXZdKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCWlmICghKHIgPSByZXF1ZXN0X3JlZ2lvbigweDIwMCwgOCwgIkFaRjMzMjggZ2FtZXBvcnQiKSkpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYXp0MzMyODogY2Fubm90IHJlc2VydmUgam95c3RpY2sgcG9ydHNcbiIpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQotCWNoaXAtPmdhbWVwb3J0ID0gZ3AgPSBnYW1lcG9ydF9hbGxvY2F0ZV9wb3J0KCk7Ci0JaWYgKCFncCkgewotCQlwcmludGsoS0VSTl9FUlIgImF6dDMzMjg6IGNhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGdhbWVwb3J0XG4iKTsKLQkJcmVsZWFzZV9hbmRfZnJlZV9yZXNvdXJjZShyKTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQotCi0JZ2FtZXBvcnRfc2V0X25hbWUoZ3AsICJBWkYzMzI4IEdhbWVwb3J0Iik7Ci0JZ2FtZXBvcnRfc2V0X3BoeXMoZ3AsICJwY2klcy9nYW1lcG9ydDAiLCBwY2lfbmFtZShjaGlwLT5wY2kpKTsKLQlnYW1lcG9ydF9zZXRfZGV2X3BhcmVudChncCwgJmNoaXAtPnBjaS0+ZGV2KTsKLQlncC0+aW8gPSAweDIwMDsKLQlnYW1lcG9ydF9zZXRfcG9ydF9kYXRhKGdwLCByKTsKLQotCXNuZF9hemYzMzI4X2lvMl9vdXRiKGNoaXAsIElEWF9JTzJfTEVHQUNZX0FERFIsCi0JCQkgICAgICBzbmRfYXpmMzMyOF9pbzJfaW5iKGNoaXAsIElEWF9JTzJfTEVHQUNZX0FERFIpIHwgTEVHQUNZX0pPWSk7Ci0KLQlnYW1lcG9ydF9yZWdpc3Rlcl9wb3J0KGNoaXAtPmdhbWVwb3J0KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZAotc25kX2F6ZjMzMjhfZnJlZV9qb3lzdGljayhzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXApCi17Ci0JaWYgKGNoaXAtPmdhbWVwb3J0KSB7Ci0JCXN0cnVjdCByZXNvdXJjZSAqciA9IGdhbWVwb3J0X2dldF9wb3J0X2RhdGEoY2hpcC0+Z2FtZXBvcnQpOwotCi0JCWdhbWVwb3J0X3VucmVnaXN0ZXJfcG9ydChjaGlwLT5nYW1lcG9ydCk7Ci0JCWNoaXAtPmdhbWVwb3J0ID0gTlVMTDsKLQkJLyogZGlzYWJsZSBnYW1lcG9ydCAqLwotCQlzbmRfYXpmMzMyOF9pbzJfb3V0YihjaGlwLCBJRFhfSU8yX0xFR0FDWV9BRERSLAotCQkJCSAgICAgIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgSURYX0lPMl9MRUdBQ1lfQUREUikgJiB+TEVHQUNZX0pPWSk7Ci0JCXJlbGVhc2VfYW5kX2ZyZWVfcmVzb3VyY2Uocik7Ci0JfQotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50Ci1zbmRfYXpmMzMyOF9jb25maWdfam95c3RpY2soc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZGV2KSB7IHJldHVybiAtRU5PU1lTOyB9Ci1zdGF0aWMgaW5saW5lIHZvaWQKLXNuZF9hemYzMzI4X2ZyZWVfam95c3RpY2soc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKSB7IH0KLSNlbmRpZgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgaW50Ci1zbmRfYXpmMzMyOF9mcmVlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKLXsKLSAgICAgICAgaWYgKGNoaXAtPmlycSA8IDApCi0gICAgICAgICAgICAgICAgZ290byBfX2VuZF9odzsKLQotCS8qIHJlc2V0IChjbG9zZSkgbWl4ZXIgKi8KLQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfUExBWV9NQVNURVIsIDEpOyAvKiBmaXJzdCBtdXRlIG1hc3RlciB2b2x1bWUgKi8KLQlzbmRfYXpmMzMyOF9taXhlcl9vdXR3KGNoaXAsIElEWF9NSVhFUl9SRVNFVCwgMHgwMDAwKTsKLQotICAgICAgICAvKiBpbnRlcnJ1cHQgc2V0dXAgLSBtYXNrIGV2ZXJ5dGhpbmcgKEZJWE1FISkgKi8KLQkvKiB3ZWxsLCBhdCBsZWFzdCB3ZSBrbm93IGhvdyB0byBkaXNhYmxlIHRoZSB0aW1lciBJUlEgKi8KLQlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19USU1FUl9WQUxVRSArIDMsIDB4MDApOwotCi0JaWYgKGNoaXAtPmlycSA+PSAwKQotICAgICAgICAJc3luY2hyb25pemVfaXJxKGNoaXAtPmlycSk7Ci1fX2VuZF9odzoKLQlzbmRfYXpmMzMyOF9mcmVlX2pveXN0aWNrKGNoaXApOwotICAgICAgICBpZiAoY2hpcC0+aXJxID49IDApCi0JCWZyZWVfaXJxKGNoaXAtPmlycSwgY2hpcCk7Ci0JcGNpX3JlbGVhc2VfcmVnaW9ucyhjaGlwLT5wY2kpOwotCXBjaV9kaXNhYmxlX2RldmljZShjaGlwLT5wY2kpOwotCi0gICAgICAgIGtmcmVlKGNoaXApOwotICAgICAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotc25kX2F6ZjMzMjhfZGV2X2ZyZWUoc3RydWN0IHNuZF9kZXZpY2UgKmRldmljZSkKLXsKLQlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAgPSBkZXZpY2UtPmRldmljZV9kYXRhOwotCXJldHVybiBzbmRfYXpmMzMyOF9mcmVlKGNoaXApOwotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKioqIE5PVEU6IHRoZSBwaHlzaWNhbCB0aW1lciByZXNvbHV0aW9uIGFjdHVhbGx5IGlzIDEwMjQwMDAgdGlja3MgcGVyIHNlY29uZCwKKy8qKiogTk9URTogdGhlIHBoeXNpY2FsIHRpbWVyIHJlc29sdXRpb24gYWN0dWFsbHkgaXMgMTAyNDAwMCB0aWNrcyBwZXIgc2Vjb25kCisgKioqIChwcm9iYWJseSBkZXJpdmVkIGZyb20gbWFpbiBjcnlzdGFsIHZpYSBhIGRpdmlkZXIgb2YgMjQpLAogICoqKiBidXQgYW5ub3VuY2luZyB0aG9zZSBhdHRyaWJ1dGVzIHRvIHVzZXItc3BhY2Ugd291bGQgbWFrZSBwcm9ncmFtcwogICoqKiBjb25maWd1cmUgdGhlIHRpbWVyIHRvIGEgMSB0aWNrIHZhbHVlLCByZXN1bHRpbmcgaW4gYW4gYWJzb2x1dGVseSBmYXRhbAogICoqKiB0aW1lciBJUlEgc3Rvcm0uCkBAIC0xNTY0LDcgKzE4OTgsNyBAQAogCQlkZWxheSA9IDQ5OyAvKiBtaW5pbXVtIHRpbWUgaXMgNDkgdGlja3MgKi8KIAl9CiAJc25kX2F6ZjMzMjhfZGJndGltZXIoInNldHRpbmcgdGltZXIgY291bnRkb3duIHZhbHVlICVkLCBhZGQgQ09VTlRET1dOfElSUVxuIiwgZGVsYXkpOwotCWRlbGF5IHw9IFRJTUVSX0VOQUJMRV9DT1VOVERPV04gfCBUSU1FUl9FTkFCTEVfSVJROworCWRlbGF5IHw9IFRJTUVSX0NPVU5URE9XTl9FTkFCTEUgfCBUSU1FUl9JUlFfRU5BQkxFOwogCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5yZWdfbG9jaywgZmxhZ3MpOwogCXNuZF9hemYzMzI4X2NvZGVjX291dGwoY2hpcCwgSURYX0lPX1RJTUVSX1ZBTFVFLCBkZWxheSk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKQEAgLTE1ODIsNyArMTkxNiw3IEBACiAJY2hpcCA9IHNuZF90aW1lcl9jaGlwKHRpbWVyKTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKIAkvKiBkaXNhYmxlIHRpbWVyIGNvdW50ZG93biBhbmQgaW50ZXJydXB0ICovCi0JLyogRklYTUU6IHNob3VsZCB3ZSB3cml0ZSBUSU1FUl9BQ0tfSVJRIGhlcmU/ICovCisJLyogRklYTUU6IHNob3VsZCB3ZSB3cml0ZSBUSU1FUl9JUlFfQUNLIGhlcmU/ICovCiAJc25kX2F6ZjMzMjhfY29kZWNfb3V0YihjaGlwLCBJRFhfSU9fVElNRVJfVkFMVUUgKyAzLCAwKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5yZWdfbG9jaywgZmxhZ3MpOwogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwpAQCAtMTYyNiw5ICsxOTYwLDEwIEBACiAKIAlzbmRfYXpmMzMyOF90aW1lcl9ody5yZXNvbHV0aW9uICo9IHNlcXRpbWVyX3NjYWxpbmc7CiAJc25kX2F6ZjMzMjhfdGltZXJfaHcudGlja3MgLz0gc2VxdGltZXJfc2NhbGluZzsKLQlpZiAoKGVyciA9IHNuZF90aW1lcl9uZXcoY2hpcC0+Y2FyZCwgIkFaRjMzMjgiLCAmdGlkLCAmdGltZXIpKSA8IDApIHsKKworCWVyciA9IHNuZF90aW1lcl9uZXcoY2hpcC0+Y2FyZCwgIkFaRjMzMjgiLCAmdGlkLCAmdGltZXIpOworCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dDsKLQl9CiAKIAlzdHJjcHkodGltZXItPm5hbWUsICJBWkYzMzI4IHRpbWVyIik7CiAJdGltZXItPnByaXZhdGVfZGF0YSA9IGNoaXA7CkBAIC0xNjM2LDYgKzE5NzEsOCBAQAogCiAJY2hpcC0+dGltZXIgPSB0aW1lcjsKIAorCXNuZF9hemYzMzI4X3RpbWVyX3N0b3AodGltZXIpOworCiAJZXJyID0gMDsKIAogb3V0OgpAQCAtMTY0NSwxMCArMTk4Miw0NCBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCitzdGF0aWMgaW50CitzbmRfYXpmMzMyOF9mcmVlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKK3sKKwlpZiAoY2hpcC0+aXJxIDwgMCkKKwkJZ290byBfX2VuZF9odzsKKworCS8qIHJlc2V0IChjbG9zZSkgbWl4ZXI6CisJICogZmlyc3QgbXV0ZSBtYXN0ZXIgdm9sdW1lLCB0aGVuIHJlc2V0CisJICovCisJc25kX2F6ZjMzMjhfbWl4ZXJfc2V0X211dGUoY2hpcCwgSURYX01JWEVSX1BMQVlfTUFTVEVSLCAxKTsKKwlzbmRfYXpmMzMyOF9taXhlcl9vdXR3KGNoaXAsIElEWF9NSVhFUl9SRVNFVCwgMHgwMDAwKTsKKworCXNuZF9hemYzMzI4X3RpbWVyX3N0b3AoY2hpcC0+dGltZXIpOworCXNuZF9hemYzMzI4X2dhbWVwb3J0X2ZyZWUoY2hpcCk7CisKKwlpZiAoY2hpcC0+aXJxID49IDApCisJCXN5bmNocm9uaXplX2lycShjaGlwLT5pcnEpOworX19lbmRfaHc6CisJaWYgKGNoaXAtPmlycSA+PSAwKQorCQlmcmVlX2lycShjaGlwLT5pcnEsIGNoaXApOworCXBjaV9yZWxlYXNlX3JlZ2lvbnMoY2hpcC0+cGNpKTsKKwlwY2lfZGlzYWJsZV9kZXZpY2UoY2hpcC0+cGNpKTsKKworCWtmcmVlKGNoaXApOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitzbmRfYXpmMzMyOF9kZXZfZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQoreworCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGRldmljZS0+ZGV2aWNlX2RhdGE7CisJcmV0dXJuIHNuZF9hemYzMzI4X2ZyZWUoY2hpcCk7Cit9CisKICNpZiAwCiAvKiBjaGVjayB3aGV0aGVyIGEgYml0IGNhbiBiZSBtb2RpZmllZCAqLwogc3RhdGljIHZvaWQKLXNuZF9hemYzMzI4X3Rlc3RfYml0KHVuc2lnbmVkIGludCByZWcsIGludCBiaXQpCitzbmRfYXpmMzMyOF90ZXN0X2JpdCh1bnNpZ25lZCB1bnNpZ25lZCByZWcsIGludCBiaXQpCiB7CiAJdW5zaWduZWQgY2hhciB2YWwsIHZhbG9mZiwgdmFsb247CiAKQEAgLTE2NTksNDIgKzIwMzAsNzQgQEAKIAogCW91dGIodmFsfCgxIDw8IGJpdCksIHJlZyk7CiAJdmFsb24gPSBpbmIocmVnKTsKLQkKKwogCW91dGIodmFsLCByZWcpOwogCi0JcHJpbnRrKEtFUk5fRVJSICJyZWcgJTA0eCBiaXQgJWQ6ICUwMnggJTAyeCAlMDJ4XG4iLCByZWcsIGJpdCwgdmFsLCB2YWxvZmYsIHZhbG9uKTsKKwlwcmludGsoS0VSTl9FUlIgInJlZyAlMDR4IGJpdCAlZDogJTAyeCAlMDJ4ICUwMnhcbiIsCisJCQkJcmVnLCBiaXQsIHZhbCwgdmFsb2ZmLCB2YWxvbgorCSk7CiB9CiAjZW5kaWYKIAotI2lmIERFQlVHX01JU0MKLXN0YXRpYyB2b2lkCitzdGF0aWMgaW5saW5lIHZvaWQKIHNuZF9hemYzMzI4X2RlYnVnX3Nob3dfcG9ydHMoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKQogeworI2lmIERFQlVHX01JU0MKIAl1MTYgdG1wOwogCi0Jc25kX2F6ZjMzMjhfZGJnbWlzYygiY29kZWNfcG9ydCAweCVseCwgaW8yX3BvcnQgMHglbHgsIG1wdV9wb3J0IDB4JWx4LCBzeW50aF9wb3J0IDB4JWx4LCBtaXhlcl9wb3J0IDB4JWx4LCBpcnEgJWRcbiIsIGNoaXAtPmNvZGVjX3BvcnQsIGNoaXAtPmlvMl9wb3J0LCBjaGlwLT5tcHVfcG9ydCwgY2hpcC0+c3ludGhfcG9ydCwgY2hpcC0+bWl4ZXJfcG9ydCwgY2hpcC0+aXJxKTsKKwlzbmRfYXpmMzMyOF9kYmdtaXNjKAorCQkiY29kZWNfaW8gMHglbHgsIGdhbWVfaW8gMHglbHgsIG1wdV9pbyAweCVseCwgIgorCQkib3BsM19pbyAweCVseCwgbWl4ZXJfaW8gMHglbHgsIGlycSAlZFxuIiwKKwkJY2hpcC0+Y29kZWNfaW8sIGNoaXAtPmdhbWVfaW8sIGNoaXAtPm1wdV9pbywKKwkJY2hpcC0+b3BsM19pbywgY2hpcC0+bWl4ZXJfaW8sIGNoaXAtPmlycQorCSk7CiAKLQlzbmRfYXpmMzMyOF9kYmdtaXNjKCJpbzIgJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnhcbiIsIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgMCksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgMSksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgMiksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgMyksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgNCksIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgNSkpOworCXNuZF9hemYzMzI4X2RiZ21pc2MoImdhbWUgJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnhcbiIsCisJCXNuZF9hemYzMzI4X2dhbWVfaW5iKGNoaXAsIDApLAorCQlzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCAxKSwKKwkJc25kX2F6ZjMzMjhfZ2FtZV9pbmIoY2hpcCwgMiksCisJCXNuZF9hemYzMzI4X2dhbWVfaW5iKGNoaXAsIDMpLAorCQlzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCA0KSwKKwkJc25kX2F6ZjMzMjhfZ2FtZV9pbmIoY2hpcCwgNSkKKwkpOwogCi0JZm9yICh0bXA9MDsgdG1wIDw9IDB4MDE7IHRtcCArPSAxKQotCQlzbmRfYXpmMzMyOF9kYmdtaXNjKCIweCUwMng6IG9wbCAweCUwNHgsIG1wdTMwMCAweCUwNHgsIG1wdTMxMCAweCUwNHgsIG1wdTMyMCAweCUwNHgsIG1wdTMzMCAweCUwNHhcbiIsIHRtcCwgaW5iKDB4Mzg4ICsgdG1wKSwgaW5iKDB4MzAwICsgdG1wKSwgaW5iKDB4MzEwICsgdG1wKSwgaW5iKDB4MzIwICsgdG1wKSwgaW5iKDB4MzMwICsgdG1wKSk7CisJZm9yICh0bXAgPSAwOyB0bXAgPCAweDA3OyB0bXAgKz0gMSkKKwkJc25kX2F6ZjMzMjhfZGJnbWlzYygibXB1X2lvIDB4JTA0eFxuIiwgaW5iKGNoaXAtPm1wdV9pbyArIHRtcCkpOworCisJZm9yICh0bXAgPSAwOyB0bXAgPD0gMHgwNzsgdG1wICs9IDEpCisJCXNuZF9hemYzMzI4X2RiZ21pc2MoIjB4JTAyeDogZ2FtZTIwMCAweCUwNHgsIGdhbWUyMDggMHglMDR4XG4iLAorCQkJdG1wLCBpbmIoMHgyMDAgKyB0bXApLCBpbmIoMHgyMDggKyB0bXApKTsKKworCWZvciAodG1wID0gMDsgdG1wIDw9IDB4MDE7IHRtcCArPSAxKQorCQlzbmRfYXpmMzMyOF9kYmdtaXNjKAorCQkJIjB4JTAyeDogbXB1MzAwIDB4JTA0eCwgbXB1MzEwIDB4JTA0eCwgbXB1MzIwIDB4JTA0eCwgIgorCQkJIm1wdTMzMCAweCUwNHggb3BsMzg4IDB4JTA0eCBvcGwzOGMgMHglMDR4XG4iLAorCQkJCXRtcCwKKwkJCQlpbmIoMHgzMDAgKyB0bXApLAorCQkJCWluYigweDMxMCArIHRtcCksCisJCQkJaW5iKDB4MzIwICsgdG1wKSwKKwkJCQlpbmIoMHgzMzAgKyB0bXApLAorCQkJCWluYigweDM4OCArIHRtcCksCisJCQkJaW5iKDB4MzhjICsgdG1wKQorCQkpOwogCiAJZm9yICh0bXAgPSAwOyB0bXAgPCBBWkZfSU9fU0laRV9DT0RFQzsgdG1wICs9IDIpCi0JCXNuZF9hemYzMzI4X2RiZ21pc2MoImNvZGVjIDB4JTAyeDogMHglMDR4XG4iLCB0bXAsIHNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCB0bXApKTsKKwkJc25kX2F6ZjMzMjhfZGJnbWlzYygiY29kZWMgMHglMDJ4OiAweCUwNHhcbiIsCisJCQl0bXAsIHNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCB0bXApCisJCSk7CiAKIAlmb3IgKHRtcCA9IDA7IHRtcCA8IEFaRl9JT19TSVpFX01JWEVSOyB0bXAgKz0gMikKLQkJc25kX2F6ZjMzMjhfZGJnbWlzYygibWl4ZXIgMHglMDJ4OiAweCUwNHhcbiIsIHRtcCwgc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNoaXAsIHRtcCkpOworCQlzbmRfYXpmMzMyOF9kYmdtaXNjKCJtaXhlciAweCUwMng6IDB4JTA0eFxuIiwKKwkJCXRtcCwgc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNoaXAsIHRtcCkKKwkJKTsKKyNlbmRpZiAvKiBERUJVR19NSVNDICovCiB9Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkCi1zbmRfYXpmMzMyOF9kZWJ1Z19zaG93X3BvcnRzKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkge30KLSNlbmRpZgogCiBzdGF0aWMgaW50IF9fZGV2aW5pdAogc25kX2F6ZjMzMjhfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBjaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBkZXZpY2VfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNuZF9hemYzMzI4ICoqIHJjaGlwKQorCQkgICBzdHJ1Y3QgcGNpX2RldiAqcGNpLAorCQkgICB1bnNpZ25lZCBsb25nIGRldmljZV90eXBlLAorCQkgICBzdHJ1Y3Qgc25kX2F6ZjMzMjggKipyY2hpcCkKIHsKIAlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXA7CiAJaW50IGVycjsKQEAgLTE3MDUsNyArMjEwOCw4IEBACiAKIAkqcmNoaXAgPSBOVUxMOwogCi0JaWYgKChlcnIgPSBwY2lfZW5hYmxlX2RldmljZShwY2kpKSA8IDApCisJZXJyID0gcGNpX2VuYWJsZV9kZXZpY2UocGNpKTsKKwlpZiAoZXJyIDwgMCkKIAkJcmV0dXJuIGVycjsKIAogCWNoaXAgPSBremFsbG9jKHNpemVvZigqY2hpcCksIEdGUF9LRVJORUwpOwpAQCAtMTcyMSwyMCArMjEyNSwyNSBAQAogCS8qIGNoZWNrIGlmIHdlIGNhbiByZXN0cmljdCBQQ0kgRE1BIHRyYW5zZmVycyB0byAyNCBiaXRzICovCiAJaWYgKHBjaV9zZXRfZG1hX21hc2socGNpLCBETUFfMjRCSVRfTUFTSykgPCAwIHx8CiAJICAgIHBjaV9zZXRfY29uc2lzdGVudF9kbWFfbWFzayhwY2ksIERNQV8yNEJJVF9NQVNLKSA8IDApIHsKLQkJc25kX3ByaW50ayhLRVJOX0VSUiAiYXJjaGl0ZWN0dXJlIGRvZXMgbm90IHN1cHBvcnQgMjRiaXQgUENJIGJ1c21hc3RlciBETUFcbiIpOworCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJhcmNoaXRlY3R1cmUgZG9lcyBub3Qgc3VwcG9ydCAiCisJCQkJCSIyNGJpdCBQQ0kgYnVzbWFzdGVyIERNQVxuIgorCQkpOwogCQllcnIgPSAtRU5YSU87CiAJCWdvdG8gb3V0X2VycjsKIAl9CiAKLQlpZiAoKGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGNpLCAiQXp0ZWNoIEFaRjMzMjgiKSkgPCAwKSB7CisJZXJyID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwY2ksICJBenRlY2ggQVpGMzMyOCIpOworCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dF9lcnI7Ci0JfQogCi0JY2hpcC0+Y29kZWNfcG9ydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDApOwotCWNoaXAtPmlvMl9wb3J0ICAgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCAxKTsKLQljaGlwLT5tcHVfcG9ydCAgID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMik7Ci0JY2hpcC0+c3ludGhfcG9ydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDMpOwotCWNoaXAtPm1peGVyX3BvcnQgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCA0KTsKKwljaGlwLT5jb2RlY19pbyA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDApOworCWNoaXAtPmdhbWVfaW8gID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMSk7CisJY2hpcC0+bXB1X2lvICAgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCAyKTsKKwljaGlwLT5vcGwzX2lvID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMyk7CisJY2hpcC0+bWl4ZXJfaW8gPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCA0KTsKKworCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfUExBWUJBQ0tdLnBvcnRiYXNlID0gY2hpcC0+Y29kZWNfaW8gKyAweDAwOworCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfQ0FQVFVSRV0ucG9ydGJhc2UgICA9IGNoaXAtPmNvZGVjX2lvICsgMHgyMDsKIAogCWlmIChyZXF1ZXN0X2lycShwY2ktPmlycSwgc25kX2F6ZjMzMjhfaW50ZXJydXB0LAogCQkJSVJRRl9TSEFSRUQsIGNhcmQtPnNob3J0bmFtZSwgY2hpcCkpIHsKQEAgLTE3NDcsMjkgKzIxNTYsMjkgQEAKIAlzeW5jaHJvbml6ZV9pcnEoY2hpcC0+aXJxKTsKIAogCXNuZF9hemYzMzI4X2RlYnVnX3Nob3dfcG9ydHMoY2hpcCk7Ci0JCi0JaWYgKChlcnIgPSBzbmRfZGV2aWNlX25ldyhjYXJkLCBTTkRSVl9ERVZfTE9XTEVWRUwsIGNoaXAsICZvcHMpKSA8IDApIHsKKworCWVyciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9MT1dMRVZFTCwgY2hpcCwgJm9wcyk7CisJaWYgKGVyciA8IDApCiAJCWdvdG8gb3V0X2VycjsKLQl9CiAKIAkvKiBjcmVhdGUgbWl4ZXIgaW50ZXJmYWNlICYgc3dpdGNoZXMgKi8KLQlpZiAoKGVyciA9IHNuZF9hemYzMzI4X21peGVyX25ldyhjaGlwKSkgPCAwKQorCWVyciA9IHNuZF9hemYzMzI4X21peGVyX25ldyhjaGlwKTsKKwlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfZXJyOwogCi0jaWYgMAotCS8qIHNldCB2ZXJ5IGxvdyBiaXRyYXRlIHRvIHJlZHVjZSBub2lzZSBhbmQgcG93ZXIgY29uc3VtcHRpb24/ICovCi0Jc25kX2F6ZjMzMjhfc2V0Zm10KGNoaXAsIElEWF9JT19QTEFZX1NPVU5ERk9STUFULCA1NTEyLCA4LCAxKTsKLSNlbmRpZgorCS8qIHNodXRkb3duIGNvZGVjcyB0byBzYXZlIHBvd2VyICovCisJCS8qIGhhdmUgc25kX2F6ZjMzMjhfY29kZWNfYWN0aXZpdHkoKSBhY3QgcHJvcGVybHkgKi8KKwljaGlwLT5hdWRpb19zdHJlYW1bQVpGX1BMQVlCQUNLXS5ydW5uaW5nID0gMTsKKwlzbmRfYXpmMzMyOF9jb2RlY19hY3Rpdml0eShjaGlwLCBBWkZfUExBWUJBQ0ssIDApOwogCiAJLyogc3RhbmRhcmQgY2hpcCBpbml0IHN0dWZmICovCi0JLyogZGVmYXVsdCBJUlEgaW5pdCB2YWx1ZSAqLworCQkvKiBkZWZhdWx0IElSUSBpbml0IHZhbHVlICovCiAJdG1wID0gRE1BX1BMQVlfU09NRVRISU5HMnxETUFfRVBJTE9HVUVfU09NRVRISU5HfERNQV9TT01FVEhJTkdfRUxTRTsKIAogCXNwaW5fbG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKIAlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTLCB0bXApOwogCXNuZF9hemYzMzI4X2NvZGVjX291dGIoY2hpcCwgSURYX0lPX1JFQ19GTEFHUywgdG1wKTsKIAlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19TT01FVEhJTkdfRkxBR1MsIHRtcCk7Ci0Jc25kX2F6ZjMzMjhfY29kZWNfb3V0YihjaGlwLCBJRFhfSU9fVElNRVJfVkFMVUUgKyAzLCAweDAwKTsgLyogZGlzYWJsZSB0aW1lciAqLwogCXNwaW5fdW5sb2NrX2lycSgmY2hpcC0+cmVnX2xvY2spOwogCiAJc25kX2NhcmRfc2V0X2RldihjYXJkLCAmcGNpLT5kZXYpOwpAQCAtMTgwNSw1MiArMjIxNCw2MSBAQAogCQlyZXR1cm4gLUVOT0VOVDsKIAl9CiAKLQljYXJkID0gc25kX2NhcmRfbmV3KGluZGV4W2Rldl0sIGlkW2Rldl0sIFRISVNfTU9EVUxFLCAwICk7CisJY2FyZCA9IHNuZF9jYXJkX25ldyhpbmRleFtkZXZdLCBpZFtkZXZdLCBUSElTX01PRFVMRSwgMCk7CiAJaWYgKGNhcmQgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlzdHJjcHkoY2FyZC0+ZHJpdmVyLCAiQVpGMzMyOCIpOwogCXN0cmNweShjYXJkLT5zaG9ydG5hbWUsICJBenRlY2ggQVpGMzMyOCAoUENJMTY4KSIpOwogCi0gICAgICAgIGlmICgoZXJyID0gc25kX2F6ZjMzMjhfY3JlYXRlKGNhcmQsIHBjaSwgcGNpX2lkLT5kcml2ZXJfZGF0YSwgJmNoaXApKSA8IDApIHsKKwllcnIgPSBzbmRfYXpmMzMyOF9jcmVhdGUoY2FyZCwgcGNpLCBwY2lfaWQtPmRyaXZlcl9kYXRhLCAmY2hpcCk7CisJaWYgKGVyciA8IDApCiAJCWdvdG8gb3V0X2VycjsKLQl9CiAKIAljYXJkLT5wcml2YXRlX2RhdGEgPSBjaGlwOwogCi0JaWYgKChlcnIgPSBzbmRfbXB1NDAxX3VhcnRfbmV3KCBjYXJkLCAwLCBNUFU0MDFfSFdfTVBVNDAxLAotCQkJCSAgICAgICAgY2hpcC0+bXB1X3BvcnQsIE1QVTQwMV9JTkZPX0lOVEVHUkFURUQsCi0JCQkJCXBjaS0+aXJxLCAwLCAmY2hpcC0+cm1pZGkpKSA8IDApIHsKLQkJc25kX3ByaW50ayhLRVJOX0VSUiAiYXpmMzMyODogbm8gTVBVLTQwMSBkZXZpY2UgYXQgMHglbHg/XG4iLCBjaGlwLT5tcHVfcG9ydCk7CisJZXJyID0gc25kX21wdTQwMV91YXJ0X25ldygKKwkJY2FyZCwgMCwgTVBVNDAxX0hXX01QVTQwMSwgY2hpcC0+bXB1X2lvLCBNUFU0MDFfSU5GT19JTlRFR1JBVEVELAorCQlwY2ktPmlycSwgMCwgJmNoaXAtPnJtaWRpCisJKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJhemYzMzI4OiBubyBNUFUtNDAxIGRldmljZSBhdCAweCVseD9cbiIsCisJCQkJY2hpcC0+bXB1X2lvCisJCSk7CiAJCWdvdG8gb3V0X2VycjsKIAl9CiAKLQlpZiAoKGVyciA9IHNuZF9hemYzMzI4X3RpbWVyKGNoaXAsIDApKSA8IDApIHsKKwllcnIgPSBzbmRfYXpmMzMyOF90aW1lcihjaGlwLCAwKTsKKwlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfZXJyOwotCX0KIAotCWlmICgoZXJyID0gc25kX2F6ZjMzMjhfcGNtKGNoaXAsIDApKSA8IDApIHsKKwllcnIgPSBzbmRfYXpmMzMyOF9wY20oY2hpcCwgMCk7CisJaWYgKGVyciA8IDApCiAJCWdvdG8gb3V0X2VycjsKLQl9CiAKLQlpZiAoc25kX29wbDNfY3JlYXRlKGNhcmQsIGNoaXAtPnN5bnRoX3BvcnQsIGNoaXAtPnN5bnRoX3BvcnQrMiwKKwlpZiAoc25kX29wbDNfY3JlYXRlKGNhcmQsIGNoaXAtPm9wbDNfaW8sIGNoaXAtPm9wbDNfaW8rMiwKIAkJCSAgICBPUEwzX0hXX0FVVE8sIDEsICZvcGwzKSA8IDApIHsKIAkJc25kX3ByaW50ayhLRVJOX0VSUiAiYXpmMzMyODogbm8gT1BMMyBkZXZpY2UgYXQgMHglbHgtMHglbHg/XG4iLAotCQkJICAgY2hpcC0+c3ludGhfcG9ydCwgY2hpcC0+c3ludGhfcG9ydCsyICk7CisJCQkgICBjaGlwLT5vcGwzX2lvLCBjaGlwLT5vcGwzX2lvKzIKKwkJKTsKIAl9IGVsc2UgewotCQlpZiAoKGVyciA9IHNuZF9vcGwzX2h3ZGVwX25ldyhvcGwzLCAwLCAxLCBOVUxMKSkgPCAwKSB7CisJCS8qIG5lZWQgdG8gdXNlIElEcyAxLCAyIHNpbmNlIElEIDAgaXMgc25kX2F6ZjMzMjhfdGltZXIgYWJvdmUgKi8KKwkJZXJyID0gc25kX29wbDNfdGltZXJfbmV3KG9wbDMsIDEsIDIpOworCQlpZiAoZXJyIDwgMCkKIAkJCWdvdG8gb3V0X2VycjsKLQkJfQorCQllcnIgPSBzbmRfb3BsM19od2RlcF9uZXcob3BsMywgMCwgMSwgTlVMTCk7CisJCWlmIChlcnIgPCAwKQorCQkJZ290byBvdXRfZXJyOwogCX0KIAogCW9wbDMtPnByaXZhdGVfZGF0YSA9IGNoaXA7CiAKIAlzcHJpbnRmKGNhcmQtPmxvbmduYW1lLCAiJXMgYXQgMHglbHgsIGlycSAlaSIsCi0JCWNhcmQtPnNob3J0bmFtZSwgY2hpcC0+Y29kZWNfcG9ydCwgY2hpcC0+aXJxKTsKKwkJY2FyZC0+c2hvcnRuYW1lLCBjaGlwLT5jb2RlY19pbywgY2hpcC0+aXJxKTsKIAotCWlmICgoZXJyID0gc25kX2NhcmRfcmVnaXN0ZXIoY2FyZCkpIDwgMCkgeworCWVyciA9IHNuZF9jYXJkX3JlZ2lzdGVyKGNhcmQpOworCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dF9lcnI7Ci0JfQogCiAjaWZkZWYgTU9EVUxFCiAJcHJpbnRrKApAQCAtMTg2MSwxOSArMjI3OSwxOCBAQAogCTEwMjQwMDAgLyBzZXF0aW1lcl9zY2FsaW5nLCBzZXF0aW1lcl9zY2FsaW5nKTsKICNlbmRpZgogCi0JaWYgKHNuZF9hemYzMzI4X2NvbmZpZ19qb3lzdGljayhjaGlwLCBkZXYpIDwgMCkKLQkJc25kX2F6ZjMzMjhfaW8yX291dGIoY2hpcCwgSURYX0lPMl9MRUdBQ1lfQUREUiwKLQkJCSAgICAgIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgSURYX0lPMl9MRUdBQ1lfQUREUikgJiB+TEVHQUNZX0pPWSk7CisJc25kX2F6ZjMzMjhfZ2FtZXBvcnQoY2hpcCwgZGV2KTsKIAogCXBjaV9zZXRfZHJ2ZGF0YShwY2ksIGNhcmQpOwogCWRldisrOwogCiAJZXJyID0gMDsKIAlnb3RvIG91dDsKLQkKKwogb3V0X2VycjoKKwlzbmRfcHJpbnRrKEtFUk5fRVJSICJhemYzMzI4OiBzb21ldGhpbmcgZmFpbGVkLCBleGl0aW5nXG4iKTsKIAlzbmRfY2FyZF9mcmVlKGNhcmQpOwotCQorCiBvdXQ6CiAJc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCk7CiAJcmV0dXJuIGVycjsKQEAgLTE4OTQsMjcgKzIzMTEsMzEgQEAKIHsKIAlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQgPSBwY2lfZ2V0X2RydmRhdGEocGNpKTsKIAlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAgPSBjYXJkLT5wcml2YXRlX2RhdGE7Ci0JaW50IHJlZzsKKwl1bnNpZ25lZCByZWc7CiAKIAlzbmRfcG93ZXJfY2hhbmdlX3N0YXRlKGNhcmQsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7Ci0JCisKIAlzbmRfcGNtX3N1c3BlbmRfYWxsKGNoaXAtPnBjbSk7CiAKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX01JWEVSX1BNIC8gMjsgcmVnKyspCi0JCWNoaXAtPnNhdmVkX3JlZ3NfbWl4ZXJbcmVnXSA9IGludyhjaGlwLT5taXhlcl9wb3J0ICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9NSVhFUl9QTSAvIDI7ICsrcmVnKQorCQljaGlwLT5zYXZlZF9yZWdzX21peGVyW3JlZ10gPSBpbncoY2hpcC0+bWl4ZXJfaW8gKyByZWcgKiAyKTsKIAogCS8qIG1ha2Ugc3VyZSB0byBkaXNhYmxlIG1hc3RlciB2b2x1bWUgZXRjLiB0byBwcmV2ZW50IGxvb3Bpbmcgc291bmQgKi8KIAlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfUExBWV9NQVNURVIsIDEpOwogCXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNoaXAsIElEWF9NSVhFUl9XQVZFT1VULCAxKTsKLQkKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0NPREVDX1BNIC8gMjsgcmVnKyspCi0JCWNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbcmVnXSA9IGludyhjaGlwLT5jb2RlY19wb3J0ICsgcmVnICogMik7Ci0JZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9JTzJfUE0gLyAyOyByZWcrKykKLQkJY2hpcC0+c2F2ZWRfcmVnc19pbzJbcmVnXSA9IGludyhjaGlwLT5pbzJfcG9ydCArIHJlZyAqIDIpOwotCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfTVBVX1BNIC8gMjsgcmVnKyspCi0JCWNoaXAtPnNhdmVkX3JlZ3NfbXB1W3JlZ10gPSBpbncoY2hpcC0+bXB1X3BvcnQgKyByZWcgKiAyKTsKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX1NZTlRIX1BNIC8gMjsgcmVnKyspCi0JCWNoaXAtPnNhdmVkX3JlZ3Nfc3ludGhbcmVnXSA9IGludyhjaGlwLT5zeW50aF9wb3J0ICsgcmVnICogMik7CisKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0NPREVDX1BNIC8gMjsgKytyZWcpCisJCWNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbcmVnXSA9IGludyhjaGlwLT5jb2RlY19pbyArIHJlZyAqIDIpOworCisJLyogbWFudWFsbHkgc3RvcmUgdGhlIG9uZSBjdXJyZW50bHkgcmVsZXZhbnQgd3JpdGUtb25seSByZWcsIHRvbyAqLworCWNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbSURYX0lPXzZBSCAvIDJdID0gY2hpcC0+c2hhZG93X3JlZ19jb2RlY182QUg7CisKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0dBTUVfUE0gLyAyOyArK3JlZykKKwkJY2hpcC0+c2F2ZWRfcmVnc19nYW1lW3JlZ10gPSBpbncoY2hpcC0+Z2FtZV9pbyArIHJlZyAqIDIpOworCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfTVBVX1BNIC8gMjsgKytyZWcpCisJCWNoaXAtPnNhdmVkX3JlZ3NfbXB1W3JlZ10gPSBpbncoY2hpcC0+bXB1X2lvICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9PUEwzX1BNIC8gMjsgKytyZWcpCisJCWNoaXAtPnNhdmVkX3JlZ3Nfb3BsM1tyZWddID0gaW53KGNoaXAtPm9wbDNfaW8gKyByZWcgKiAyKTsKIAogCXBjaV9kaXNhYmxlX2RldmljZShwY2kpOwogCXBjaV9zYXZlX3N0YXRlKHBjaSk7CkBAIC0xOTI3LDcgKzIzNDgsNyBAQAogewogCXN0cnVjdCBzbmRfY2FyZCAqY2FyZCA9IHBjaV9nZXRfZHJ2ZGF0YShwY2kpOwogCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGNhcmQtPnByaXZhdGVfZGF0YTsKLQlpbnQgcmVnOworCXVuc2lnbmVkIHJlZzsKIAogCXBjaV9zZXRfcG93ZXJfc3RhdGUocGNpLCBQQ0lfRDApOwogCXBjaV9yZXN0b3JlX3N0YXRlKHBjaSk7CkBAIC0xOTM5LDIzICsyMzYwLDIxIEBACiAJfQogCXBjaV9zZXRfbWFzdGVyKHBjaSk7CiAKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0lPMl9QTSAvIDI7IHJlZysrKQotCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfaW8yW3JlZ10sIGNoaXAtPmlvMl9wb3J0ICsgcmVnICogMik7Ci0JZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9NUFVfUE0gLyAyOyByZWcrKykKLQkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX21wdVtyZWddLCBjaGlwLT5tcHVfcG9ydCArIHJlZyAqIDIpOwotCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfU1lOVEhfUE0gLyAyOyByZWcrKykKLQkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX3N5bnRoW3JlZ10sIGNoaXAtPnN5bnRoX3BvcnQgKyByZWcgKiAyKTsKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX01JWEVSX1BNIC8gMjsgcmVnKyspCi0JCW91dHcoY2hpcC0+c2F2ZWRfcmVnc19taXhlcltyZWddLCBjaGlwLT5taXhlcl9wb3J0ICsgcmVnICogMik7Ci0JZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9DT0RFQ19QTSAvIDI7IHJlZysrKQotCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbcmVnXSwgY2hpcC0+Y29kZWNfcG9ydCArIHJlZyAqIDIpOworCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfR0FNRV9QTSAvIDI7ICsrcmVnKQorCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfZ2FtZVtyZWddLCBjaGlwLT5nYW1lX2lvICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9NUFVfUE0gLyAyOyArK3JlZykKKwkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX21wdVtyZWddLCBjaGlwLT5tcHVfaW8gKyByZWcgKiAyKTsKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX09QTDNfUE0gLyAyOyArK3JlZykKKwkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX29wbDNbcmVnXSwgY2hpcC0+b3BsM19pbyArIHJlZyAqIDIpOworCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfTUlYRVJfUE0gLyAyOyArK3JlZykKKwkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX21peGVyW3JlZ10sIGNoaXAtPm1peGVyX2lvICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9DT0RFQ19QTSAvIDI7ICsrcmVnKQorCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfY29kZWNbcmVnXSwgY2hpcC0+Y29kZWNfaW8gKyByZWcgKiAyKTsKIAogCXNuZF9wb3dlcl9jaGFuZ2Vfc3RhdGUoY2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgotCi0KKyNlbmRpZiAvKiBDT05GSUdfUE0gKi8KIAogCiBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgZHJpdmVyID0gewpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2F6dDMzMjguaCBiL3NvdW5kL3BjaS9henQzMzI4LmgKaW5kZXggNjc5ZmE5OS4uN2UzZTg5NCAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2F6dDMzMjguaAorKysgYi9zb3VuZC9wY2kvYXp0MzMyOC5oCkBAIC0xLDcgKzEsOCBAQAogI2lmbmRlZiBfX1NPVU5EX0FaVDMzMjhfSAogI2RlZmluZSBfX1NPVU5EX0FaVDMzMjhfSAogCi0vKiAiUFUiID09ICJwb3dlci11cCB2YWx1ZSIsIGFzIHRlc3RlZCBvbiBQQ0kxNjggUENJIHJldi4gMTAgKi8KKy8qICJQVSIgPT0gInBvd2VyLXVwIHZhbHVlIiwgYXMgdGVzdGVkIG9uIFBDSTE2OCBQQ0kgcmV2LiAxMAorICogIldSSVRFX09OTFkiICA9PSByZWdpc3RlciBkb2VzIG5vdCBpbmRpY2F0ZSBhY3R1YWwgYml0IHZhbHVlcyAqLwogCiAvKioqIG1haW4gSS9PIGFyZWEgcG9ydCBpbmRpY2VzICoqKi8KIC8qIChvbmx5IDB4NzAgb2YgMHg4MCBieXRlcyBzYXZlZC9yZXN0b3JlZCBieSBXaW5kb3dzIGRyaXZlcikgKi8KQEAgLTU0LDcgKzU1LDEwIEBACiAgICNkZWZpbmUgU09VTkRGT1JNQVRfWFRBTDEJCTB4MDAKICAgI2RlZmluZSBTT1VOREZPUk1BVF9YVEFMMgkJMHgwMQogICAgIC8qIGFsbCBfU1VTUEVDVEVEXyB2YWx1ZXMgYXJlIG5vdCB1c2VkIGJ5IFdpbmRvd3MgZHJpdmVycywgc28gd2UgZG9uJ3QKLSAgICAgKiBoYXZlIGFueSBoYXJkIGZhY3RzLCBvbmx5IHJvdWdoIG1lYXN1cmVtZW50cyAqLworICAgICAqIGhhdmUgYW55IGhhcmQgZmFjdHMsIG9ubHkgcm91Z2ggbWVhc3VyZW1lbnRzLgorICAgICAqIEFsbCB3ZSBrbm93IGlzIHRoYXQgdGhlIGNyeXN0YWwgdXNlZCBvbiB0aGUgYm9hcmQgaGFzIDI0LjU3Nk1IeiwKKyAgICAgKiBsaWtlIG1hbnkgc291bmRjYXJkcyAod2hpY2ggcmVzdWx0cyBpbiB0aGUgZnJlcXVlbmNpZXMgYmVsb3cgd2hlbgorICAgICAqIHVzaW5nIGNlcnRhaW4gZGl2aWRlciB2YWx1ZXMgc2VsZWN0ZWQgYnkgdGhlIHZhbHVlcyBiZWxvdykgKi8KICAgICAjZGVmaW5lIFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzQwMDAJMHgwYyB8IFNPVU5ERk9STUFUX1hUQUwxCiAgICAgI2RlZmluZSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF80ODAwCTB4MGEgfCBTT1VOREZPUk1BVF9YVEFMMQogICAgICNkZWZpbmUgU09VTkRGT1JNQVRfRlJFUV81NTEwCQkweDBjIHwgU09VTkRGT1JNQVRfWFRBTDIKQEAgLTcyLDYgKzc2LDI2IEBACiAgICNkZWZpbmUgU09VTkRGT1JNQVRfRkxBR18xNkJJVAkweDAwMTAKICAgI2RlZmluZSBTT1VOREZPUk1BVF9GTEFHXzJDSEFOTkVMUwkweDAwMjAKIAorLyogZGVmaW5lIGZyZXF1ZW5jeSBoZWxwZXJzLCBmb3IgbWF4aW11bSB2YWx1ZSBzYWZldHkgKi8KK2VudW0gYXpmX2ZyZXFfdCB7CisjZGVmaW5lIEFaRl9GUkVRKHJhdGUpIEFaRl9GUkVRXyMjcmF0ZSA9IHJhdGUKKyAgQVpGX0ZSRVEoNDAwMCksCisgIEFaRl9GUkVRKDQ4MDApLAorICBBWkZfRlJFUSg1NTEyKSwKKyAgQVpGX0ZSRVEoNjYyMCksCisgIEFaRl9GUkVRKDgwMDApLAorICBBWkZfRlJFUSg5NjAwKSwKKyAgQVpGX0ZSRVEoMTEwMjUpLAorICBBWkZfRlJFUSgxMzI0MCksCisgIEFaRl9GUkVRKDE2MDAwKSwKKyAgQVpGX0ZSRVEoMjIwNTApLAorICBBWkZfRlJFUSgzMjAwMCksCisgIEFaRl9GUkVRKDQ0MTAwKSwKKyAgQVpGX0ZSRVEoNDgwMDApLAorICBBWkZfRlJFUSg2NjIwMCksCisjdW5kZWYgQVpGX0ZSRVEKK30gQVpGX0ZSRVFVRU5DSUVTOworCiAvKiogcmVjb3JkaW5nIGFyZWEgKHNlZSBhbHNvOiBwbGF5YmFjayBiaXQgZmxhZyBkZWZpbml0aW9ucykgKiovCiAjZGVmaW5lIElEWF9JT19SRUNfRkxBR1MJMHgyMCAvKiA/PywgUFU6MHgwMDAwICovCiAjZGVmaW5lIElEWF9JT19SRUNfSVJRVFlQRQkweDIyIC8qID8/LCBQVToweDAwMDAgKi8KQEAgLTk3LDQwICsxMjEsMTcxIEBACiAKIC8qKiBEaXJlY3RYIHRpbWVyLCBtYWluIGludGVycnVwdCBhcmVhIChGSVhNRTogYW5kIHNvbWV0aGluZyBlbHNlPykgKiovIAogI2RlZmluZSBJRFhfSU9fVElNRVJfVkFMVUUJMHg2MCAvKiBmb3VuZCB0aGlzIHRpbWVyIGFyZWEgYnkgcHVyZSBsdWNrIDotKSAqLwotICAjZGVmaW5lIFRJTUVSX1ZBTFVFX01BU0sJCTB4MDAwZmZmZmZVTCAvKiB0aW1lciBjb3VudGRvd24gdmFsdWU7IHRyaWdnZXJzIElSUSB3aGVuIHRpbWVyIGlzIGZpbmlzaGVkICovCi0gICNkZWZpbmUgVElNRVJfRU5BQkxFX0NPVU5URE9XTgkweDAxMDAwMDAwVUwgLyogYWN0aXZhdGUgdGhlIHRpbWVyIGNvdW50ZG93biAqLwotICAjZGVmaW5lIFRJTUVSX0VOQUJMRV9JUlEJCTB4MDIwMDAwMDBVTCAvKiB0cmlnZ2VyIHRpbWVyIElSUSBvbiB6ZXJvIHRyYW5zaXRpb24gKi8KLSAgI2RlZmluZSBUSU1FUl9BQ0tfSVJRCQkJMHgwNDAwMDAwMFVMIC8qIGJlaW5nIHNldCBpbiBJUlEgaGFuZGxlciBpbiBjYXNlIHBvcnQgMHgwMCAoaG1tLCBub3QgcG9ydCAweDY0IT8hPykgaGFkIDB4MDAyMCBzZXQgdXBvbiBJUlEgaGFuZGxlciAqLworICAvKiB0aW1lciBjb3VudGRvd24gdmFsdWU7IHRyaWdnZXJzIElSUSB3aGVuIHRpbWVyIGlzIGZpbmlzaGVkICovCisgICNkZWZpbmUgVElNRVJfVkFMVUVfTUFTSwkJMHgwMDBmZmZmZlVMCisgIC8qIGFjdGl2YXRlIHRpbWVyIGNvdW50ZG93biAqLworICAjZGVmaW5lIFRJTUVSX0NPVU5URE9XTl9FTkFCTEUJMHgwMTAwMDAwMFVMCisgIC8qIHRyaWdnZXIgdGltZXIgSVJRIG9uIHplcm8gdHJhbnNpdGlvbiAqLworICAjZGVmaW5lIFRJTUVSX0lSUV9FTkFCTEUJCTB4MDIwMDAwMDBVTAorICAvKiBiZWluZyBzZXQgaW4gSVJRIGhhbmRsZXIgaW4gY2FzZSBwb3J0IDB4MDAgKGhtbSwgbm90IHBvcnQgMHg2NCE/IT8pCisgICAqIGhhZCAweDAwMjAgc2V0IHVwb24gSVJRIGhhbmRsZXIgKi8KKyAgI2RlZmluZSBUSU1FUl9JUlFfQUNLCQkJMHgwNDAwMDAwMFVMCiAjZGVmaW5lIElEWF9JT19JUlFTVEFUVVMgICAgICAgIDB4NjQKLSAgI2RlZmluZSBJUlFfUExBWUJBQ0sJCQkweDAwMDEKLSAgI2RlZmluZSBJUlFfUkVDT1JESU5HCQkJMHgwMDAyCi0gICNkZWZpbmUgSVJRX01QVTQwMQkJCTB4MDAxMAotICAjZGVmaW5lIElSUV9USU1FUgkJCTB4MDAyMCAvKiBEaXJlY3RYIHRpbWVyICovCi0gICNkZWZpbmUgSVJRX1VOS05PV04xCQkJMHgwMDQwIC8qIHByb2JhYmx5IHVudXNlZCwgb3IgcG9zc2libHkgSTJTIHBvcnQ/IG9yIGdhbWVwb3J0IElSUT8gKi8KLSAgI2RlZmluZSBJUlFfVU5LTk9XTjIJCQkweDAwODAgLyogcHJvYmFibHkgdW51c2VkLCBvciBwb3NzaWJseSBJMlMgcG9ydD8gb3IgZ2FtZXBvcnQgSVJRPyAqLworICAvKiBzb21lIElSUSBiaXQgaW4gaGVyZSBtaWdodCBhbHNvIGJlIHVzZWQgdG8gc2lnbmFsIGEgcG93ZXItbWFuYWdlbWVudCB0aW1lcgorICAgKiB0aW1lb3V0LCB0byByZXF1ZXN0IHNodXRkb3duIG9mIHRoZSBjaGlwIChlLmcuIEFEMTgxNUpTIGhhcyBzdWNoIGEgdGhpbmcpLgorICAgKiBTb21lIE9QTDMgaGFyZHdhcmUgKGUuZy4gaW4gTE00NTYwKSBoYXMgc29tZSBzcGVjaWFsIHRpbWVyIGhhcmR3YXJlIHdoaWNoCisgICAqIGNhbiB0cmlnZ2VyIGFuIE9QTDMgdGltZXIgSVJRLCBzbyBtYXliZSB0aGVyZSdzIHN1Y2ggYSB0aGluZyBhcyB3ZWxsLi4uICovCisKKyAgI2RlZmluZSBJUlFfUExBWUJBQ0sJMHgwMDAxCisgICNkZWZpbmUgSVJRX1JFQ09SRElORwkweDAwMDIKKyAgI2RlZmluZSBJUlFfVU5LTk9XTjEJMHgwMDA0IC8qIG1vc3QgcHJvYmFibHkgSTJTIHBvcnQgKi8KKyAgI2RlZmluZSBJUlFfR0FNRVBPUlQJMHgwMDA4IC8qIEludGVycnVwdCBvZiBEaWdpdGFsKGx5KSBFbmhhbmNlZCBHYW1lIFBvcnQgKi8KKyAgI2RlZmluZSBJUlFfTVBVNDAxCTB4MDAxMAorICAjZGVmaW5lIElSUV9USU1FUgkweDAwMjAgLyogRGlyZWN0WCB0aW1lciAqLworICAjZGVmaW5lIElSUV9VTktOT1dOMgkweDAwNDAgLyogcHJvYmFibHkgdW51c2VkLCBvciBwb3NzaWJseSBJMlMgcG9ydD8gKi8KKyAgI2RlZmluZSBJUlFfVU5LTk9XTjMJMHgwMDgwIC8qIHByb2JhYmx5IHVudXNlZCwgb3IgcG9zc2libHkgSTJTIHBvcnQ/ICovCiAjZGVmaW5lIElEWF9JT182NkgJCTB4NjYgICAgLyogd3JpdGluZyAweGZmZmYgcmV0dXJucyAweDAwMDAgKi8KLSNkZWZpbmUgSURYX0lPX1NPTUVfVkFMVUUJMHg2OAkvKiB0aGlzIGlzIHNldCB0byBlLmcuIDB4M2ZmIG9yIDB4MzAwLCBhbmQgd3JpdGFibGU7IG1heWJlIHNvbWUgYnVmZmVyIGxpbWl0LCBidXQgSSBjb3VsZG4ndCBmaW5kIG91dCBtb3JlLCBQVToweDAwZmYgKi8KLSNkZWZpbmUgSURYX0lPXzZBSAkJMHg2QQkvKiB0aGlzIFdPUkQgY2FuIGJlIHNldCB0byBoYXZlIGJpdHMgMHgwMDI4IGFjdGl2YXRlZCAoRklYTUU6IGNvcnJlY3Q/Pyk7IGFjdHVhbGx5IGluaGliaXRzIFBDTSBwbGF5YmFjayEhISBtYXliZSBwb3dlciBtYW5hZ2VtZW50Pz8gKi8KLSAgI2RlZmluZSBJT182QV9QQVVTRV9QTEFZQkFDSwkJMHgwMjAwIC8qIGJpdCA5OyBzdXJlLCB0aGlzIHBhdXNlcyBwbGF5YmFjaywgYnV0IHdoYXQgdGhlIGhlY2sgaXMgdGhpcyByZWFsbHkgYWJvdXQ/PyAqLwotI2RlZmluZSBJRFhfSU9fNkNICQkweDZDCi0jZGVmaW5lIElEWF9JT182RUgJCTB4NkUJLyogd3JpdGluZyAweGZmZmYgcmV0dXJucyAweDgzZmUgKi8KLS8qIGZ1cnRoZXIgSS9PIGluZGljZXMgbm90IHNhdmVkL3Jlc3RvcmVkLCBzbyBwcm9iYWJseSBub3QgdXNlZCAqLworICAvKiB0aGlzIGlzIHNldCB0byBlLmcuIDB4M2ZmIG9yIDB4MzAwLCBhbmQgd3JpdGFibGU7CisgICAqIG1heWJlIHNvbWUgYnVmZmVyIGxpbWl0LCBidXQgSSBjb3VsZG4ndCBmaW5kIG91dCBtb3JlLCBQVToweDAwZmY6ICovCisjZGVmaW5lIElEWF9JT19TT01FX1ZBTFVFCTB4NjgKKyAgI2RlZmluZSBJT182OF9SQU5ET01fVE9HR0xFMQkweDAxMDAJLyogdG9nZ2xlcyByYW5kb21seSAqLworICAjZGVmaW5lIElPXzY4X1JBTkRPTV9UT0dHTEUyCTB4MDIwMAkvKiB0b2dnbGVzIHJhbmRvbWx5ICovCisgIC8qIHVtbSwgbm9wZSwgYmVoYXZpb3VyIG9mIHRoZXNlIGJpdHMgY2hhbmdlcyBkZXBlbmRpbmcgb24gd2hhdCB3ZSB3cm90ZQorICAgKiB0byAweDZiISEKKyAgICogQW5kIHRoZXkgY2hhbmdlIHVwb24gcGxheWJhY2svc3RvcCwgdG9vOgorICAgKiBXcml0aW5nIGEgdmFsdWUgdG8gMHg2OCB3aWxsIGRpc3BsYXkgdGhpcyBleGFjdCB2YWx1ZSBkdXJpbmcgcGxheWJhY2ssCisgICAqIHRvbyBidXQgd2hlbiBzdG9wcGVkIGl0IGNhbiBmYWxsIGJhY2sgdG8gYSByYXRoZXIgZGlmZmVyZW50CisgICAqIHNlZW1pbmdseSByYW5kb20gdmFsdWUpLiBIbW0sIHBvc3NpYmx5IHRoaXMgaXMgYSByZWdpc3RlciB3aGljaAorICAgKiBoYXMgYSByZW1vdGUgc2hhZG93IHdoaWNoIG5lZWRzIHByb3BlciBkZXZpY2Ugc3VwcGx5IHdoaWNoIG9ubHkgZXhpc3RzCisgICAqIGluIGNhc2UgcGxheWJhY2sgaXMgYWN0aXZlPyBPciBpcyB0aGlzIGRyaXZlci1pbmR1Y2VkPworICAgKi8KKworLyogdGhpcyBXT1JEIGNhbiBiZSBzZXQgdG8gaGF2ZSBiaXRzIDB4MDAyOCBhY3RpdmF0ZWQgKEZJWE1FOiBjb3JyZWN0Pz8pOworICogYWN0dWFsbHkgaW5oaWJpdHMgUENNIHBsYXliYWNrISEhIG1heWJlIHBvd2VyIG1hbmFnZW1lbnQ/PzogKi8KKyNkZWZpbmUgSURYX0lPXzZBSAkJMHg2QSAvKiBXUklURV9PTkxZISAqLworICAvKiBiaXQgNTogZW5hYmxpbmcgdGhpcyB3aWxsIGFjdGl2YXRlIHBlcm1hbmVudCBjb3VudGluZyBvZiBieXRlcyAyLzMKKyAgICogYXQgZ2FtZXBvcnQgSS9PICgweGI0MDIvMykgKGVxdWFsIHZhbHVlcyBlYWNoKSBhbmQgY2F1c2UKKyAgICogZ2FtZXBvcnQgbGVnYWN5IEkvTyBhdCAweDAyMDAgdG8gYmUgX0RJU0FCTEVEXyEKKyAgICogSXMgdGhpcyBEaWdpdGFsIEVuaGFuY2VkIEdhbWUgUG9ydCBFbmFibGU/Pz8gT3IgbWF5YmUgaXQncyBUZXN0bW9kZQorICAgKiBmb3IgRW5oYW5jZWQgRGlnaXRhbCBHYW1lcG9ydCAoc2VlIDREIFdhdmUgRFggY2FyZCk6ICovCisgICNkZWZpbmUgSU9fNkFfU09NRVRISU5HMV9HQU1FUE9SVAkweDAwMjAKKyAgLyogYml0IDg7IHN1cmUsIHRoaXMgX3BhdXNlc18gcGxheWJhY2sgKGxhdGVyIHJlc3VtZXMgYXQgc2FtZSBzcG90ISksCisgICAqIGJ1dCB3aGF0IHRoZSBoZWNrIGlzIHRoaXMgcmVhbGx5IGFib3V0Pz86ICovCisgICNkZWZpbmUgSU9fNkFfUEFVU0VfUExBWUJBQ0tfQklUOAkweDAxMDAKKyAgLyogYml0IDk7IHN1cmUsIHRoaXMgX3BhdXNlc18gcGxheWJhY2sgKGxhdGVyIHJlc3VtZXMgYXQgc2FtZSBzcG90ISksCisgICAqIGJ1dCB3aGF0IHRoZSBoZWNrIGlzIHRoaXMgcmVhbGx5IGFib3V0Pz86ICovCisgICNkZWZpbmUgSU9fNkFfUEFVU0VfUExBWUJBQ0tfQklUOQkweDAyMDAKKwkvKiBCSVQ4IGFuZCBCSVQ5IGFyZSBfTk9UXyBhYmxlIHRvIGFmZmVjdCBPUEwzIE1JREkgcGxheWJhY2ssCisJICogdGh1cyBpdCBzdWdnZXN0cyBpbmZsdWVuY2Ugb24gUENNIG9ubHkhIQorCSAqIEhvd2V2ZXIgT1RPSCB0aGVyZSBzZWVtcyB0byBiZSBubyBiaXQgYW55d2hlcmUgYXJvdW5kIGhlcmUKKwkgKiB3aGljaCBpcyBhYmxlIHRvIGRpc2FibGUgT1BMMy4uLiAqLworICAvKiBiaXQgMTA6IGVuYWJsaW5nIHRoaXMgYWN0dWFsbHkgY2hhbmdlcyB2YWx1ZXMgYXQgbGVnYWN5IGdhbWVwb3J0CisgICAqIEkvTyBhZGRyZXNzICgweDIwMCk7IGlzIHRoaXMgZW5hYmxpbmcgb2YgdGhlIERpZ2l0YWwgRW5oYW5jZWQgR2FtZSBQb3J0Pz8/CisgICAqIE9yIG1heWJlIHRoaXMgc2ltcGx5IHN3aXRjaGVzIG9mZiB0aGUgTkU1NTggY2lyY3VpdCwgc2luY2UgZW5hYmxpbmcgdGhpcworICAgKiBzdGlsbCBsZXRzIHVzIGV2YWx1YXRlIGJ1dHRvbiBzdGF0ZXMsIGJ1dCBub3QgYXhpcyBzdGF0ZXMgKi8KKyAgI2RlZmluZSBJT182QV9TT01FVEhJTkcyX0dBTUVQT1JUICAgICAgMHgwNDAwCisJLyogd3JpdGluZyAweDAzMDA6IGNhdXNlcyBxdWl0ZSBzb21lIGNyYWNrbGluZyBkdXJpbmcKKwkgKiBQQyBhY3Rpdml0eSBzdWNoIGFzIHN3aXRjaGluZyB3aW5kb3dzIChQQ0kgdHJhZmZpYz8/CisJICogLS0+IEZJRk8vdGltaW5nIHNldHRpbmdzPz8/KSAqLworCS8qIHdyaXRpbmcgMHgwMTAwIHBsdXMvb3IgMHgwMjAwIGluaGliaXRzIHBsYXliYWNrICovCisJLyogc2luY2UgdGhlIFdpbmRvd3MgLklORiBmaWxlIGhhcyBGbGFnX0VuYWJsZV9Kb3lTdGljayBhbmQKKwkgKiBGbGFnX0VuYWJsZV9TQl9ET1NfRW11bGF0aW9uIGRpcmVjdGx5IHRvZ2V0aGVyLCBpdCBzdGFuZHMgdG8gcmVhc29uCisJICogdGhhdCBzb21lIG90aGVyIGJpdCBpbiB0aGlzIHNhbWUgcmVnaXN0ZXIgbWlnaHQgYmUgcmVzcG9uc2libGUKKwkgKiBmb3IgU0IgRE9TIEVtdWxhdGlvbiBhY3RpdmF0aW9uIChub3RlIHRoYXQgdGhlIGZpbGUgZGlkIE5PVCBkZWZpbmUKKwkgKiBhIHN3aXRjaCBmb3IgT1BMMyEpICovCisjZGVmaW5lIElEWF9JT182Q0gJCTB4NkMJLyogdW5rbm93bjsgZnVsbHkgcmVhZC13cml0YWJsZSAqLworI2RlZmluZSBJRFhfSU9fNkVICQkweDZFCisJLyogd3JpdGluZyAweGZmZmYgcmV0dXJucyAweDgzZmUgKG9yIDB4MDNmZSBvbmx5KS4KKwkgKiB3cml0aW5nIDB4ODMgKGFuZCBvbmx5IDB4ODMhISkgdG8gMHg2ZiB3aWxsIGNhdXNlIDB4NmMgdG8gc3dpdGNoCisJICogZnJvbSAwMDAwIHRvIGZmZmYuICovCisKKy8qIGZ1cnRoZXIgSS9PIGluZGljZXMgbm90IHNhdmVkL3Jlc3RvcmVkIGFuZCBub3QgcmVhZGFibGUgYWZ0ZXIgd3JpdGluZywKKyAqIHNvIHByb2JhYmx5IG5vdCB1c2VkICovCiAKIAotLyoqKiBJL08gMiBhcmVhIHBvcnQgaW5kaWNlcyAqKiovCisvKioqIEdhbWVwb3J0IGFyZWEgcG9ydCBpbmRpY2VzICoqKi8KIC8qIChvbmx5IDB4MDYgb2YgMHgwOCBieXRlcyBzYXZlZC9yZXN0b3JlZCBieSBXaW5kb3dzIGRyaXZlcikgKi8gCi0jZGVmaW5lIEFaRl9JT19TSVpFX0lPMgkJMHgwOAotI2RlZmluZSBBWkZfSU9fU0laRV9JTzJfUE0JMHgwNgorI2RlZmluZSBBWkZfSU9fU0laRV9HQU1FCQkweDA4CisjZGVmaW5lIEFaRl9JT19TSVpFX0dBTUVfUE0JMHgwNgogCi0jZGVmaW5lIElEWF9JTzJfTEVHQUNZX0FERFIJMHgwNAotICAjZGVmaW5lIExFR0FDWV9TT01FVEhJTkcJCTB4MDEgLyogT1BMMz8/ICovCi0gICNkZWZpbmUgTEVHQUNZX0pPWQkJCTB4MDgKK2VudW0geworCUFaRl9HQU1FX0xFR0FDWV9JT19QT1JUID0gMHgyMDAKK30gQVpGX0dBTUVfQ09ORklHUzsKIAorI2RlZmluZSBJRFhfR0FNRV9MRUdBQ1lfQ09NUEFUSUJMRQkweDAwCisJLyogaW4gc29tZSBvcGVyYXRpb24gbW9kZSwgd3JpdGluZyBhbnl0aGluZyB0byB0aGlzIHBvcnQKKwkgKiB0cmlnZ2VycyBhbiBpbnRlcnJ1cHQ6CisJICogeXVwLCB0aGF0J3MgaW4gY2FzZSBJRFhfR0FNRV8wMUggaGFzIG9uZSBvZiB0aGUKKwkgKiBheGlzIG1lYXN1cmVtZW50IGJpdHMgZW5hYmxlZAorCSAqIChhbmQgb2YgY291cnNlIG9uZSBuZWVkcyB0byBoYXZlIEdBTUVfSFdDRkdfSVJRX0VOQUJMRSwgdG9vKSAqLworCisjZGVmaW5lIElEWF9HQU1FX0FYRVNfQ09ORklHICAgICAgICAgICAgMHgwMQorCS8qIE5PVEU6IGxheW91dCBvZiB0aGlzIHJlZ2lzdGVyIGF3ZnVsbHkgc2ltaWxhciAocmVhZDogImlkZW50aWNhbD8/IikKKwkgKiB0byBBRDE4MTVKUy5wZGYgKHAuMjkpICovCisKKyAgLyogZW5hYmxlcyBheGlzIDEgKFggYXhpcykgbWVhc3VyZW1lbnQ6ICovCisgICNkZWZpbmUgR0FNRV9BWEVTX0VOQUJMRV8xCQkweDAxCisgIC8qIGVuYWJsZXMgYXhpcyAyIChZIGF4aXMpIG1lYXN1cmVtZW50OiAqLworICAjZGVmaW5lIEdBTUVfQVhFU19FTkFCTEVfMgkJMHgwMgorICAvKiBlbmFibGVzIGF4aXMgMyAoWCBheGlzKSBtZWFzdXJlbWVudDogKi8KKyAgI2RlZmluZSBHQU1FX0FYRVNfRU5BQkxFXzMJCTB4MDQKKyAgLyogZW5hYmxlcyBheGlzIDQgKFkgYXhpcykgbWVhc3VyZW1lbnQ6ICovCisgICNkZWZpbmUgR0FNRV9BWEVTX0VOQUJMRV80CQkweDA4CisgIC8qIHNlbGVjdHMgdGhlIGN1cnJlbnQgYXhpcyB0byByZWFkIHRoZSBtZWFzdXJlZCB2YWx1ZSBvZgorICAgKiAoYXQgSURYX0dBTUVfQVhJU19WQUxVRSk6CisgICAqIDAwID0gYXhpcyAxLCAwMSA9IGF4aXMgMiwgMTAgPSBheGlzIDMsIDExID0gYXhpcyA0OiAqLworICAjZGVmaW5lIEdBTUVfQVhFU19SRUFEX01BU0sJCTB4MzAKKyAgLyogZW5hYmxlIHRvIGhhdmUgdGhlIGxhdGNoIGNvbnRpbnVvdXNseSBhY2NlcHQgQURDIHZhbHVlcworICAgKiAoYW5kIGNvbnRpbnVvdXNseSBjYXVzZSBpbnRlcnJ1cHRzIGluIGNhc2UgaW50ZXJydXB0cyBhcmUgZW5hYmxlZCk7CisgICAqIEFEMTgxNUpTLnBkZiBzYXlzIGl0J3MgfjE2bXMgaW50ZXJ2YWwgdGhlcmU6ICovCisgICNkZWZpbmUgR0FNRV9BWEVTX0xBVENIX0VOQUJMRQkweDQwCisgIC8qIGpveXN0aWNrIGRhdGEgKG1lYXN1cmVkIGF4ZXMpIHJlYWR5IGZvciByZWFkaW5nOiAqLworICAjZGVmaW5lIEdBTUVfQVhFU19TQU1QTElOR19SRUFEWQkweDgwCisKKyAgLyogTk9URTogb3RoZXIgY2FyZCBzcGVjcyAoU2lTOTYwIGFuZCBvdGhlcnMhKSBzdGF0ZSB0aGF0IHRoZQorICAgKiBnYW1lIHBvc2l0aW9uIGxhdGNoZXMgc2hvdWxkIGJlIGZyb3plbiB3aGVuIHJlYWRpbmcgYW5kIGJlIGZyZWVkCisgICAqICg9PSByZXNldD8pIGFmdGVyIHJlYWRpbmchISEKKyAgICogRnJlZXppbmcgbW9zdCBsaWtlbHkgbWVhbnMgZGlzYWJsaW5nIDB4NDAgKEdBTUVfQVhFU19MQVRDSF9FTkFCTEUpLAorICAgKiAgYnV0IGhvdyB0byBmcmVlIHRoZSB2YWx1ZT8gKi8KKyAgLyogQW4gaW50ZXJuZXQgc2VhcmNoIGZvciAiZ2FtZXBvcnQgbGF0Y2ggQURDIiBzaG91bGQgcHJvdmlkZSBzb21lIGluc2lnaHQKKyAgICogaW50byBob3cgdG8gcHJvZ3JhbSBzdWNoIGEgZ2FtZXBvcnQgc3lzdGVtLiAqLworCisgIC8qIHdyaXRpbmcgMHhmMCB0byAwMUggb25jZSByZXNldCBib3RoIGNvdW50ZXJzIHRvIDAsIGluIHNvbWUgc3BlY2lhbCBtb2RlIT8KKyAgICogeXVwLCBpbiBjYXNlIDZBSCAweDIwIGlzIG5vdCBlbmFibGVkCisgICAqIChhbmQgMHg0MCBpcyBzdWZmaWNpZW50LCAweGYwIGlzIG5vdCBuZWVkZWQpICovCisKKyNkZWZpbmUgSURYX0dBTUVfQVhJU19WQUxVRQkweDAyCisJLyogUjogdmFsdWUgb2YgY3VycmVudGx5IGNvbmZpZ3VyZWQgYXhpcyAod29yZCB2YWx1ZSEpOworCSAqIFc6IHRyaWdnZXIgYXhpcyBtZWFzdXJlbWVudCAqLworCisjZGVmaW5lIElEWF9HQU1FX0hXQ09ORklHCTB4MDQKKwkvKiBub3RlOiBiaXRzIDQgdG8gNyBhcmUgbmV2ZXIgc2V0ICg9PSAwKSB3aGVuIHJlYWRpbmchCisJICogLS0+IHJlc2VydmVkIGJpdHM/ICovCisgIC8qIGVuYWJsZXMgSVJRIG5vdGlmaWNhdGlvbiB1cG9uIGF4ZXMgbWVhc3VyZW1lbnQgcmVhZHk6ICovCisgICNkZWZpbmUgR0FNRV9IV0NGR19JUlFfRU5BQkxFCQkJMHgwMQorICAvKiB0aGVzZSBiaXRzIGNob29zZSBhIGRpZmZlcmVudCBmcmVxdWVuY3kgZm9yIHRoZQorICAgKiAgaW50ZXJuYWwgQURDIGNvdW50ZXIgaW5jcmVtZW50LgorICAgKiBobW0sIHNlZW1zIHRvIGJlIGEgY29tYm8gb2YgYml0czoKKyAgICogMDAgLS0+IHN0YW5kYXJkIGZyZXF1ZW5jeQorICAgKiAxMCAtLT4gMS8yCisgICAqIDAxIC0tPiAxLzIwCisgICAqIDExIC0tPiAxLzIwMDogKi8KKyAgI2RlZmluZSBHQU1FX0hXQ0ZHX0FEQ19DT1VOVEVSX0ZSRVFfTUFTSwkweDA2CisKKyAgLyogZW5hYmxlIGdhbWVwb3J0IGxlZ2FjeSBJL08gYWRkcmVzcyAoMHgyMDApCisgICAqIEkgd2FzIHVuYWJsZSB0byBsb2NhdGUgYW55IGNvbmZpZ3VyYWJpbGl0eSBmb3IgYSBkaWZmZXJlbnQgYWRkcmVzczogKi8KKyAgI2RlZmluZSBHQU1FX0hXQ0ZHX0xFR0FDWV9BRERSRVNTX0VOQUJMRQkweDA4CisKKy8qKiogTVBVNDAxICoqKi8KICNkZWZpbmUgQVpGX0lPX1NJWkVfTVBVCQkweDA0CiAjZGVmaW5lIEFaRl9JT19TSVpFX01QVV9QTQkweDA0CiAKLSNkZWZpbmUgQVpGX0lPX1NJWkVfU1lOVEgJMHgwOAotI2RlZmluZSBBWkZfSU9fU0laRV9TWU5USF9QTQkweDA2CisvKioqIE9QTDMgc3ludGggKioqLworI2RlZmluZSBBWkZfSU9fU0laRV9PUEwzCTB4MDgKKyNkZWZpbmUgQVpGX0lPX1NJWkVfT1BMM19QTQkweDA2CisvKiBobW0sIGdpdmVuIHRoYXQgYSBzdGFuZGFyZCBPUEwzIGhhcyA0IHJlZ2lzdGVycyBvbmx5LAorICogdGhlcmUgbWlnaHQgYmUgc29tZSBlbmhhbmNlZCBmdW5jdGlvbmFsaXR5IGx1cmtpbmcgYXQgdGhlIGVuZAorICogKGVzcGVjaWFsbHkgc2luY2UgcmVnaXN0ZXIgMHgwNCBoYXMgYSAibm9uLWVtcHR5IiB2YWx1ZSAweGZlKSAqLwogCiAvKioqIG1peGVyIEkvTyBhcmVhIHBvcnQgaW5kaWNlcyAqKiovCiAvKiAob25seSAweDIyIG9mIDB4NDAgYnl0ZXMgc2F2ZWQvcmVzdG9yZWQgYnkgV2luZG93cyBkcml2ZXIpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvY2EwMTA2L2NhMDEwNl9tYWluLmMgYi9zb3VuZC9wY2kvY2EwMTA2L2NhMDEwNl9tYWluLmMKaW5kZXggZWNiZTc5Yi4uMmY4YjI4YSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2NhMDEwNi9jYTAxMDZfbWFpbi5jCisrKyBiL3NvdW5kL3BjaS9jYTAxMDYvY2EwMTA2X21haW4uYwpAQCAtMjQ5LDYgKzI0OSwxMSBAQAogCSAgIC5uYW1lICAgPSAiTVNJIEs4TiBEaWFtb25kIE1CIFtTQjA0MzhdIiwKIAkgICAuZ3Bpb190eXBlID0gMiwKIAkgICAuaTJjX2FkYyA9IDEgfSAsCisJIC8qIEFub3RoZXIgTVNJIEs4TiBEaWFtb25kIE1CLCB3aGljaCBoYXMgYXBwcmVudGx5IGEgZGlmZmVyZW50IFNTSUQgKi8KKwkgeyAuc2VyaWFsID0gMHgxMDA5MTEwMiwKKwkgICAubmFtZSAgID0gIk1TSSBLOE4gRGlhbW9uZCBNQiIsCisJICAgLmdwaW9fdHlwZSA9IDIsCisJICAgLmkyY19hZGMgPSAxIH0gLAogCSAvKiBTaHV0dGxlIFhQQyBTRDMxUCB3aGljaCBoYXMgYW4gb25ib2FyZCBDcmVhdGl2ZSBMYWJzCiAJICAqIFNvdW5kIEJsYXN0ZXIgTGl2ZSEgMjQtYml0IEVBWAogCSAgKiBoaWdoLWRlZmluaXRpb24gNy4xIGF1ZGlvIHByb2Nlc3NvciIuCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvZW11MTBrMS9lbXUxMGsxX21haW4uYyBiL3NvdW5kL3BjaS9lbXUxMGsxL2VtdTEwazFfbWFpbi5jCmluZGV4IDU0OGM5Y2MuLjJmMjgzZWEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9lbXUxMGsxL2VtdTEwazFfbWFpbi5jCisrKyBiL3NvdW5kL3BjaS9lbXUxMGsxL2VtdTEwazFfbWFpbi5jCkBAIC0xNTI4LDYgKzE1MjgsNyBAQAogCSAuY2EwMTUxX2NoaXAgPSAxLAogCSAuc3BrNzEgPSAxLAogCSAuc3BkaWZfYnVnID0gMSwKKwkgLmludmVydF9zaGFyZWRfc3BkaWYgPSAxLAkvKiBkaWdpdGFsL2FuYWxvZyBzd2l0Y2ggc3dhcHBlZCAqLwogCSAuYWRjXzEzNjF0ID0gMSwgIC8qIDI0IGJpdCBjYXB0dXJlIGluc3RlYWQgb2YgMTZiaXQuIEZpeGVzIEFMU0EgYnVnIzMyNCAqLwogCSAuYWM5N19jaGlwID0gMX0gLAogCXsudmVuZG9yID0gMHgxMTAyLCAuZGV2aWNlID0gMHgwMDA0LCAucmV2aXNpb24gPSAweDA0LApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2VtdTEwazEvZW11bWl4ZXIuYyBiL3NvdW5kL3BjaS9lbXUxMGsxL2VtdW1peGVyLmMKaW5kZXggZmQyMjEyMC4uZjM0YmJmYiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2VtdTEwazEvZW11bWl4ZXIuYworKysgYi9zb3VuZC9wY2kvZW11MTBrMS9lbXVtaXhlci5jCkBAIC0xNTc4LDYgKzE1NzgsMTAgQEAKIAkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBpbmwoZW11LT5wb3J0ICsgQV9JT0NGRykgJiBBX0lPQ0ZHX0dQT1VUMCA/IDEgOiAwOwogCWVsc2UKIAkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBpbmwoZW11LT5wb3J0ICsgSENGRykgJiBIQ0ZHX0dQT1VUMCA/IDEgOiAwOworCWlmIChlbXUtPmNhcmRfY2FwYWJpbGl0aWVzLT5pbnZlcnRfc2hhcmVkX3NwZGlmKQorCQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9CisJCQkhdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CisJCQogCXJldHVybiAwOwogfQogCkBAIC0xNTg2LDE1ICsxNTkwLDE4IEBACiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlzdHJ1Y3Qgc25kX2VtdTEwazEgKmVtdSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQl1bnNpZ25lZCBpbnQgcmVnLCB2YWw7CisJdW5zaWduZWQgaW50IHJlZywgdmFsLCBzdzsKIAlpbnQgY2hhbmdlID0gMDsKIAorCXN3ID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CisJaWYgKGVtdS0+Y2FyZF9jYXBhYmlsaXRpZXMtPmludmVydF9zaGFyZWRfc3BkaWYpCisJCXN3ID0gIXN3OwogCXNwaW5fbG9ja19pcnFzYXZlKCZlbXUtPnJlZ19sb2NrLCBmbGFncyk7CiAJaWYgKCBlbXUtPmNhcmRfY2FwYWJpbGl0aWVzLT5pMmNfYWRjKSB7CiAJCS8qIERvIG5vdGhpbmcgZm9yIEF1ZGlneSAyIFpTIE5vdGVib29rICovCiAJfSBlbHNlIGlmIChlbXUtPmF1ZGlneSkgewogCQlyZWcgPSBpbmwoZW11LT5wb3J0ICsgQV9JT0NGRyk7Ci0JCXZhbCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID8gQV9JT0NGR19HUE9VVDAgOiAwOworCQl2YWwgPSBzdyA/IEFfSU9DRkdfR1BPVVQwIDogMDsKIAkJY2hhbmdlID0gKHJlZyAmIEFfSU9DRkdfR1BPVVQwKSAhPSB2YWw7CiAJCWlmIChjaGFuZ2UpIHsKIAkJCXJlZyAmPSB+QV9JT0NGR19HUE9VVDA7CkBAIC0xNjAzLDcgKzE2MTAsNyBAQAogCQl9CiAJfQogCXJlZyA9IGlubChlbXUtPnBvcnQgKyBIQ0ZHKTsKLQl2YWwgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA/IEhDRkdfR1BPVVQwIDogMDsKKwl2YWwgPSBzdyA/IEhDRkdfR1BPVVQwIDogMDsKIAljaGFuZ2UgfD0gKHJlZyAmIEhDRkdfR1BPVVQwKSAhPSB2YWw7CiAJaWYgKGNoYW5nZSkgewogCQlyZWcgJj0gfkhDRkdfR1BPVVQwOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2VtdTEwazEvbWVtb3J5LmMgYi9zb3VuZC9wY2kvZW11MTBrMS9tZW1vcnkuYwppbmRleCA5MTZjMWRiLi43ZDM3OWY1IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvZW11MTBrMS9tZW1vcnkuYworKysgYi9zb3VuZC9wY2kvZW11MTBrMS9tZW1vcnkuYwpAQCAtNDM3LDQzICs0MzcsNDkgQEAKIAkqbGFzdF9wYWdlX3JldCA9IGxhc3RfcGFnZTsKIH0KIAorLyogcmVsZWFzZSBhbGxvY2F0ZWQgcGFnZXMgKi8KK3N0YXRpYyB2b2lkIF9fc3ludGhfZnJlZV9wYWdlcyhzdHJ1Y3Qgc25kX2VtdTEwazEgKmVtdSwgaW50IGZpcnN0X3BhZ2UsCisJCQkgICAgICAgaW50IGxhc3RfcGFnZSkKK3sKKwlpbnQgcGFnZTsKKworCWZvciAocGFnZSA9IGZpcnN0X3BhZ2U7IHBhZ2UgPD0gbGFzdF9wYWdlOyBwYWdlKyspIHsKKwkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0pOworCQllbXUtPnBhZ2VfYWRkcl90YWJsZVtwYWdlXSA9IDA7CisJCWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPSBOVUxMOworCX0KK30KKwogLyoKICAqIGFsbG9jYXRlIGtlcm5lbCBwYWdlcwogICovCiBzdGF0aWMgaW50IHN5bnRoX2FsbG9jX3BhZ2VzKHN0cnVjdCBzbmRfZW11MTBrMSAqZW11LCBzdHJ1Y3Qgc25kX2VtdTEwazFfbWVtYmxrICpibGspCiB7CiAJaW50IHBhZ2UsIGZpcnN0X3BhZ2UsIGxhc3RfcGFnZTsKLQlzdHJ1Y3Qgc25kX2RtYV9idWZmZXIgZG1hYjsKIAogCWVtdTEwazFfbWVtYmxrX2luaXQoYmxrKTsKIAlnZXRfc2luZ2xlX3BhZ2VfcmFuZ2UoZW11LT5tZW1oZHIsIGJsaywgJmZpcnN0X3BhZ2UsICZsYXN0X3BhZ2UpOwogCS8qIGFsbG9jYXRlIGtlcm5lbCBwYWdlcyAqLwogCWZvciAocGFnZSA9IGZpcnN0X3BhZ2U7IHBhZ2UgPD0gbGFzdF9wYWdlOyBwYWdlKyspIHsKLQkJaWYgKHNuZF9kbWFfYWxsb2NfcGFnZXMoU05EUlZfRE1BX1RZUEVfREVWLCBzbmRfZG1hX3BjaV9kYXRhKGVtdS0+cGNpKSwKLQkJCQkJUEFHRV9TSVpFLCAmZG1hYikgPCAwKQotCQkJZ290byBfX2ZhaWw7Ci0JCWlmICghIGlzX3ZhbGlkX3BhZ2UoZW11LCBkbWFiLmFkZHIpKSB7Ci0JCQlzbmRfZG1hX2ZyZWVfcGFnZXMoJmRtYWIpOwotCQkJZ290byBfX2ZhaWw7CisJCS8qIGZpcnN0IHRyeSB0byBhbGxvY2F0ZSBmcm9tIDw0R0Igem9uZSAqLworCQlzdHJ1Y3QgcGFnZSAqcCA9IGFsbG9jX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEzMiB8CisJCQkJCSAgICBfX0dGUF9OT1dBUk4pOworCQlpZiAoIXAgfHwgKHBhZ2VfdG9fcGZuKHApICYgfihlbXUtPmRtYV9tYXNrID4+IFBBR0VfU0hJRlQpKSkgeworCQkJaWYgKHApCisJCQkJX19mcmVlX3BhZ2UocCk7CisJCQkvKiB0cnkgdG8gYWxsb2NhdGUgZnJvbSA8MTZNQiB6b25lICovCisJCQlwID0gYWxsb2NfcGFnZShHRlBfQVRPTUlDIHwgR0ZQX0RNQSB8CisJCQkJICAgICAgIF9fR0ZQX05PUkVUUlkgfCAvKiBubyBPT00ta2lsbGVyICovCisJCQkJICAgICAgIF9fR0ZQX05PV0FSTik7CiAJCX0KLQkJZW11LT5wYWdlX2FkZHJfdGFibGVbcGFnZV0gPSBkbWFiLmFkZHI7Ci0JCWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPSBkbWFiLmFyZWE7CisJCWlmICghcCkgeworCQkJX19zeW50aF9mcmVlX3BhZ2VzKGVtdSwgZmlyc3RfcGFnZSwgcGFnZSAtIDEpOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwkJZW11LT5wYWdlX2FkZHJfdGFibGVbcGFnZV0gPSBwYWdlX3RvX3BoeXMocCk7CisJCWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPSBwYWdlX2FkZHJlc3MocCk7CiAJfQogCXJldHVybiAwOwotCi1fX2ZhaWw6Ci0JLyogcmVsZWFzZSBhbGxvY2F0ZWQgcGFnZXMgKi8KLQlsYXN0X3BhZ2UgPSBwYWdlIC0gMTsKLQlmb3IgKHBhZ2UgPSBmaXJzdF9wYWdlOyBwYWdlIDw9IGxhc3RfcGFnZTsgcGFnZSsrKSB7Ci0JCWRtYWIuYXJlYSA9IGVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV07Ci0JCWRtYWIuYWRkciA9IGVtdS0+cGFnZV9hZGRyX3RhYmxlW3BhZ2VdOwotCQlkbWFiLmJ5dGVzID0gUEFHRV9TSVpFOwotCQlzbmRfZG1hX2ZyZWVfcGFnZXMoJmRtYWIpOwotCQllbXUtPnBhZ2VfYWRkcl90YWJsZVtwYWdlXSA9IDA7Ci0JCWVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPSBOVUxMOwotCX0KLQotCXJldHVybiAtRU5PTUVNOwogfQogCiAvKgpAQCAtNDgxLDIzICs0ODcsMTAgQEAKICAqLwogc3RhdGljIGludCBzeW50aF9mcmVlX3BhZ2VzKHN0cnVjdCBzbmRfZW11MTBrMSAqZW11LCBzdHJ1Y3Qgc25kX2VtdTEwazFfbWVtYmxrICpibGspCiB7Ci0JaW50IHBhZ2UsIGZpcnN0X3BhZ2UsIGxhc3RfcGFnZTsKLQlzdHJ1Y3Qgc25kX2RtYV9idWZmZXIgZG1hYjsKKwlpbnQgZmlyc3RfcGFnZSwgbGFzdF9wYWdlOwogCiAJZ2V0X3NpbmdsZV9wYWdlX3JhbmdlKGVtdS0+bWVtaGRyLCBibGssICZmaXJzdF9wYWdlLCAmbGFzdF9wYWdlKTsKLQlkbWFiLmRldi50eXBlID0gU05EUlZfRE1BX1RZUEVfREVWOwotCWRtYWIuZGV2LmRldiA9IHNuZF9kbWFfcGNpX2RhdGEoZW11LT5wY2kpOwotCWZvciAocGFnZSA9IGZpcnN0X3BhZ2U7IHBhZ2UgPD0gbGFzdF9wYWdlOyBwYWdlKyspIHsKLQkJaWYgKGVtdS0+cGFnZV9wdHJfdGFibGVbcGFnZV0gPT0gTlVMTCkKLQkJCWNvbnRpbnVlOwotCQlkbWFiLmFyZWEgPSBlbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdOwotCQlkbWFiLmFkZHIgPSBlbXUtPnBhZ2VfYWRkcl90YWJsZVtwYWdlXTsKLQkJZG1hYi5ieXRlcyA9IFBBR0VfU0laRTsKLQkJc25kX2RtYV9mcmVlX3BhZ2VzKCZkbWFiKTsKLQkJZW11LT5wYWdlX2FkZHJfdGFibGVbcGFnZV0gPSAwOwotCQllbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdID0gTlVMTDsKLQl9Ci0KKwlfX3N5bnRoX2ZyZWVfcGFnZXMoZW11LCBmaXJzdF9wYWdlLCBsYXN0X3BhZ2UpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5jIGIvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYwppbmRleCBhNmJlNmUzLi5kMmUxMDkzIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5jCisrKyBiL3NvdW5kL3BjaS9oZGEvaGRhX2NvZGVjLmMKQEAgLTIzMzUsNyArMjMzNSw3IEBACiAJaWYgKCF0YmwpCiAJCXJldHVybiAtMTsKIAlpZiAodGJsLT52YWx1ZSA+PSAwICYmIHRibC0+dmFsdWUgPCBudW1fY29uZmlncykgewotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJCWNoYXIgdG1wWzEwXTsKIAkJY29uc3QgY2hhciAqbW9kZWwgPSBOVUxMOwogCQlpZiAobW9kZWxzKQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuaCBiL3NvdW5kL3BjaS9oZGEvaGRhX2NvZGVjLmgKaW5kZXggZGNkMzkwYi4uZWZjNjgyOCAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuaAorKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5oCkBAIC03OCw3ICs3OCw3IEBACiAjZGVmaW5lIEFDX1ZFUkJfR0VUX0JFRVBfQ09OVFJPTAkJMHgwZjBhCiAjZGVmaW5lIEFDX1ZFUkJfR0VUX0VBUERfQlRMRU5BQkxFCQkweDBmMGMKICNkZWZpbmUgQUNfVkVSQl9HRVRfRElHSV9DT05WRVJUXzEJCTB4MGYwZAotI2RlZmluZSBBQ19WRVJCX0dFVF9ESUdJX0NPTlZFUlRfMgkJMHgwZjBlCisjZGVmaW5lIEFDX1ZFUkJfR0VUX0RJR0lfQ09OVkVSVF8yCQkweDBmMGUgLyogdW51c2VkICovCiAjZGVmaW5lIEFDX1ZFUkJfR0VUX1ZPTFVNRV9LTk9CX0NPTlRST0wJCTB4MGYwZgogLyogZjEwLWYxYTogR1BJTyAqLwogI2RlZmluZSBBQ19WRVJCX0dFVF9HUElPX0RBVEEJCQkweDBmMTUKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvaGRhX2h3ZGVwLmMgYi9zb3VuZC9wY2kvaGRhL2hkYV9od2RlcC5jCmluZGV4IDIxNzdkOWEuLjZlMThhNDIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX2h3ZGVwLmMKKysrIGIvc291bmQvcGNpL2hkYS9oZGFfaHdkZXAuYwpAQCAtODgsNyArODgsNyBAQAogCiBzdGF0aWMgaW50IGhkYV9od2RlcF9vcGVuKHN0cnVjdCBzbmRfaHdkZXAgKmh3LCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLSNpZm5kZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZm5kZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfUkFXSU8pKQogCQlyZXR1cm4gLUVBQ0NFUzsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYyBiL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMKaW5kZXggYjNhNjE4ZS4uMTY3MTVhNiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYworKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jCkBAIC01NSw2ICs1NSw3IEBACiBzdGF0aWMgaW50IGVuYWJsZVtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0VOQUJMRV9QTlA7CiBzdGF0aWMgY2hhciAqbW9kZWxbU05EUlZfQ0FSRFNdOwogc3RhdGljIGludCBwb3NpdGlvbl9maXhbU05EUlZfQ0FSRFNdOworc3RhdGljIGludCBiZGxfcG9zX2FkaltTTkRSVl9DQVJEU10gPSB7WzAgLi4uIChTTkRSVl9DQVJEUy0xKV0gPSAtMX07CiBzdGF0aWMgaW50IHByb2JlX21hc2tbU05EUlZfQ0FSRFNdID0ge1swIC4uLiAoU05EUlZfQ0FSRFMtMSldID0gLTF9Owogc3RhdGljIGludCBzaW5nbGVfY21kOwogc3RhdGljIGludCBlbmFibGVfbXNpOwpAQCAtNjksNyArNzAsOSBAQAogTU9EVUxFX1BBUk1fREVTQyhtb2RlbCwgIlVzZSB0aGUgZ2l2ZW4gYm9hcmQgbW9kZWwuIik7CiBtb2R1bGVfcGFyYW1fYXJyYXkocG9zaXRpb25fZml4LCBpbnQsIE5VTEwsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhwb3NpdGlvbl9maXgsICJGaXggRE1BIHBvaW50ZXIgIgotCQkgIigwID0gYXV0bywgMSA9IG5vbmUsIDIgPSBQT1NCVUYsIDMgPSBGSUZPIHNpemUpLiIpOworCQkgIigwID0gYXV0bywgMSA9IG5vbmUsIDIgPSBQT1NCVUYpLiIpOworbW9kdWxlX3BhcmFtX2FycmF5KGJkbF9wb3NfYWRqLCBpbnQsIE5VTEwsIDA2NDQpOworTU9EVUxFX1BBUk1fREVTQyhiZGxfcG9zX2FkaiwgIkJETCBwb3NpdGlvbiBhZGp1c3RtZW50IG9mZnNldC4iKTsKIG1vZHVsZV9wYXJhbV9hcnJheShwcm9iZV9tYXNrLCBpbnQsIE5VTEwsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhwcm9iZV9tYXNrLCAiQml0bWFzayB0byBwcm9iZSBjb2RlY3MgKGRlZmF1bHQgPSAtMSkuIik7CiBtb2R1bGVfcGFyYW0oc2luZ2xlX2NtZCwgYm9vbCwgMDQ0NCk7CkBAIC0xOTcsNiArMjAwLDEwIEBACiAjZGVmaW5lIEFUSUhETUlfTlVNX0NBUFRVUkUJMAogI2RlZmluZSBBVElIRE1JX05VTV9QTEFZQkFDSwkxCiAKKy8qIFRFUkEgaGFzIDQgcGxheWJhY2sgYW5kIDMgY2FwdHVyZSAqLworI2RlZmluZSBURVJBX05VTV9DQVBUVVJFCTMKKyNkZWZpbmUgVEVSQV9OVU1fUExBWUJBQ0sJNAorCiAvKiB0aGlzIG51bWJlciBpcyBzdGF0aWNhbGx5IGRlZmluZWQgZm9yIHNpbXBsaWNpdHkgKi8KICNkZWZpbmUgTUFYX0FaWF9ERVYJCTE2CiAKQEAgLTI1OSw5ICsyNjYsOCBAQAogLyogcG9zaXRpb24gZml4IG1vZGUgKi8KIGVudW0gewogCVBPU19GSVhfQVVUTywKLQlQT1NfRklYX05PTkUsCisJUE9TX0ZJWF9MUElCLAogCVBPU19GSVhfUE9TQlVGLAotCVBPU19GSVhfRklGTywKIH07CiAKIC8qIERlZmluZXMgZm9yIEFUSSBIRCBBdWRpbyBzdXBwb3J0IGluIFNCNDUwIHNvdXRoIGJyaWRnZSAqLwpAQCAtMjg1LDYgKzI5MSw3IEBACiAJdTMyICpwb3NidWY7CQkvKiBwb3NpdGlvbiBidWZmZXIgcG9pbnRlciAqLwogCiAJdW5zaWduZWQgaW50IGJ1ZnNpemU7CS8qIHNpemUgb2YgdGhlIHBsYXkgYnVmZmVyIGluIGJ5dGVzICovCisJdW5zaWduZWQgaW50IHBlcmlvZF9ieXRlczsgLyogc2l6ZSBvZiB0aGUgcGVyaW9kIGluIGJ5dGVzICovCiAJdW5zaWduZWQgaW50IGZyYWdzOwkvKiBudW1iZXIgZm9yIHBlcmlvZCBpbiB0aGUgcGxheSBidWZmZXIgKi8KIAl1bnNpZ25lZCBpbnQgZmlmb19zaXplOwkvKiBGSUZPIHNpemUgKi8KIApAQCAtMzAxLDExICszMDgsMTEgQEAKIAkJCQkJICovCiAJdW5zaWduZWQgY2hhciBzdHJlYW1fdGFnOwkvKiBhc3NpZ25lZCBzdHJlYW0gKi8KIAl1bnNpZ25lZCBjaGFyIGluZGV4OwkJLyogc3RyZWFtIGluZGV4ICovCi0JLyogZm9yIHNhbml0eSBjaGVjayBvZiBwb3NpdGlvbiBidWZmZXIgKi8KLQl1bnNpZ25lZCBpbnQgcGVyaW9kX2ludHI7CiAKIAl1bnNpZ25lZCBpbnQgb3BlbmVkIDoxOwogCXVuc2lnbmVkIGludCBydW5uaW5nIDoxOworCXVuc2lnbmVkIGludCBpcnFfcGVuZGluZyA6MTsKKwl1bnNpZ25lZCBpbnQgaXJxX2lnbm9yZSA6MTsKIH07CiAKIC8qIENPUkIvUklSQiAqLwpAQCAtMzIzLDYgKzMzMCw3IEBACiBzdHJ1Y3QgYXp4IHsKIAlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CiAJc3RydWN0IHBjaV9kZXYgKnBjaTsKKwlpbnQgZGV2X2luZGV4OwogCiAJLyogY2hpcCB0eXBlIHNwZWNpZmljICovCiAJaW50IGRyaXZlcl90eXBlOwpAQCAtMzY2LDkgKzM3NCwxMyBAQAogCXVuc2lnbmVkIGludCBzaW5nbGVfY21kIDoxOwogCXVuc2lnbmVkIGludCBwb2xsaW5nX21vZGUgOjE7CiAJdW5zaWduZWQgaW50IG1zaSA6MTsKKwl1bnNpZ25lZCBpbnQgaXJxX3BlbmRpbmdfd2FybmVkIDoxOwogCiAJLyogZm9yIGRlYnVnZ2luZyAqLwogCXVuc2lnbmVkIGludCBsYXN0X2NtZDsJLyogbGFzdCBpc3N1ZWQgY29tbWFuZCAodG8gc3luYykgKi8KKworCS8qIGZvciBwZW5kaW5nIGlycXMgKi8KKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaXJxX3BlbmRpbmdfd29yazsKIH07CiAKIC8qIGRyaXZlciB0eXBlcyAqLwpAQCAtMzgxLDYgKzM5Myw3IEBACiAJQVpYX0RSSVZFUl9TSVMsCiAJQVpYX0RSSVZFUl9VTEksCiAJQVpYX0RSSVZFUl9OVklESUEsCisJQVpYX0RSSVZFUl9URVJBLAogfTsKIAogc3RhdGljIGNoYXIgKmRyaXZlcl9zaG9ydF9uYW1lc1tdIF9fZGV2aW5pdGRhdGEgPSB7CkBAIC0zOTIsNiArNDA1LDcgQEAKIAlbQVpYX0RSSVZFUl9TSVNdID0gIkhEQSBTSVM5NjYiLAogCVtBWlhfRFJJVkVSX1VMSV0gPSAiSERBIFVMSSBNNTQ2MSIsCiAJW0FaWF9EUklWRVJfTlZJRElBXSA9ICJIREEgTlZpZGlhIiwKKwlbQVpYX0RSSVZFUl9URVJBXSA9ICJIREEgVGVyYWRpY2kiLCAKIH07CiAKIC8qCkBAIC00MjYsMTEgKzQ0MCw2IEBACiAvKiBmb3IgcGNtIHN1cHBvcnQgKi8KICNkZWZpbmUgZ2V0X2F6eF9kZXYoc3Vic3RyZWFtKSAoc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGEpCiAKLS8qIEdldCB0aGUgdXBwZXIgMzJiaXQgb2YgdGhlIGdpdmVuIGRtYV9hZGRyX3QKLSAqIENvbXBpbGVyIHNob3VsZCBvcHRpbWl6ZSBhbmQgZWxpbWluYXRlIHRoZSBjb2RlIGlmIGRtYV9hZGRyX3QgaXMgMzJiaXQKLSAqLwotI2RlZmluZSB1cHBlcl8zMmJpdChhZGRyKSAoc2l6ZW9mKGFkZHIpID4gNCA/ICh1MzIpKChhZGRyKSA+PiAzMikgOiAodTMyKTApCi0KIHN0YXRpYyBpbnQgYXp4X2FjcXVpcmVfaXJxKHN0cnVjdCBhenggKmNoaXAsIGludCBkb19kaXNjb25uZWN0KTsKIAogLyoKQEAgLTQ2MSw3ICs0NzAsNyBAQAogCWNoaXAtPmNvcmIuYWRkciA9IGNoaXAtPnJiLmFkZHI7CiAJY2hpcC0+Y29yYi5idWYgPSAodTMyICopY2hpcC0+cmIuYXJlYTsKIAlhenhfd3JpdGVsKGNoaXAsIENPUkJMQkFTRSwgKHUzMiljaGlwLT5jb3JiLmFkZHIpOwotCWF6eF93cml0ZWwoY2hpcCwgQ09SQlVCQVNFLCB1cHBlcl8zMmJpdChjaGlwLT5jb3JiLmFkZHIpKTsKKwlhenhfd3JpdGVsKGNoaXAsIENPUkJVQkFTRSwgdXBwZXJfMzJfYml0cyhjaGlwLT5jb3JiLmFkZHIpKTsKIAogCS8qIHNldCB0aGUgY29yYiBzaXplIHRvIDI1NiBlbnRyaWVzIChVTEkgcmVxdWlyZXMgZXhwbGljaXRseSkgKi8KIAlhenhfd3JpdGViKGNoaXAsIENPUkJTSVpFLCAweDAyKTsKQEAgLTQ3Niw3ICs0ODUsNyBAQAogCWNoaXAtPnJpcmIuYWRkciA9IGNoaXAtPnJiLmFkZHIgKyAyMDQ4OwogCWNoaXAtPnJpcmIuYnVmID0gKHUzMiAqKShjaGlwLT5yYi5hcmVhICsgMjA0OCk7CiAJYXp4X3dyaXRlbChjaGlwLCBSSVJCTEJBU0UsICh1MzIpY2hpcC0+cmlyYi5hZGRyKTsKLQlhenhfd3JpdGVsKGNoaXAsIFJJUkJVQkFTRSwgdXBwZXJfMzJiaXQoY2hpcC0+cmlyYi5hZGRyKSk7CisJYXp4X3dyaXRlbChjaGlwLCBSSVJCVUJBU0UsIHVwcGVyXzMyX2JpdHMoY2hpcC0+cmlyYi5hZGRyKSk7CiAKIAkvKiBzZXQgdGhlIHJpcmIgc2l6ZSB0byAyNTYgZW50cmllcyAoVUxJIHJlcXVpcmVzIGV4cGxpY2l0bHkpICovCiAJYXp4X3dyaXRlYihjaGlwLCBSSVJCU0laRSwgMHgwMik7CkBAIC04NDcsNyArODU2LDcgQEAKIAogCS8qIHByb2dyYW0gdGhlIHBvc2l0aW9uIGJ1ZmZlciAqLwogCWF6eF93cml0ZWwoY2hpcCwgRFBMQkFTRSwgKHUzMiljaGlwLT5wb3NidWYuYWRkcik7Ci0JYXp4X3dyaXRlbChjaGlwLCBEUFVCQVNFLCB1cHBlcl8zMmJpdChjaGlwLT5wb3NidWYuYWRkcikpOworCWF6eF93cml0ZWwoY2hpcCwgRFBVQkFTRSwgdXBwZXJfMzJfYml0cyhjaGlwLT5wb3NidWYuYWRkcikpOwogCiAJY2hpcC0+aW5pdGlhbGl6ZWQgPSAxOwogfQpAQCAtOTA4LDYgKzkxNyw4IEBACiB9CiAKIAorc3RhdGljIGludCBhenhfcG9zaXRpb25fb2soc3RydWN0IGF6eCAqY2hpcCwgc3RydWN0IGF6eF9kZXYgKmF6eF9kZXYpOworCiAvKgogICogaW50ZXJydXB0IGhhbmRsZXIKICAqLwpAQCAtOTMwLDExICs5NDEsMjMgQEAKIAkJYXp4X2RldiA9ICZjaGlwLT5henhfZGV2W2ldOwogCQlpZiAoc3RhdHVzICYgYXp4X2Rldi0+c2RfaW50X3N0YV9tYXNrKSB7CiAJCQlhenhfc2Rfd3JpdGViKGF6eF9kZXYsIFNEX1NUUywgU0RfSU5UX01BU0spOwotCQkJaWYgKGF6eF9kZXYtPnN1YnN0cmVhbSAmJiBhenhfZGV2LT5ydW5uaW5nKSB7Ci0JCQkJYXp4X2Rldi0+cGVyaW9kX2ludHIrKzsKKwkJCWlmICghYXp4X2Rldi0+c3Vic3RyZWFtIHx8ICFhenhfZGV2LT5ydW5uaW5nKQorCQkJCWNvbnRpbnVlOworCQkJLyogaWdub3JlIHRoZSBmaXJzdCBkdW1teSBJUlEgKGR1ZSB0byBwb3NfYWRqKSAqLworCQkJaWYgKGF6eF9kZXYtPmlycV9pZ25vcmUpIHsKKwkJCQlhenhfZGV2LT5pcnFfaWdub3JlID0gMDsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCS8qIGNoZWNrIHdoZXRoZXIgdGhpcyBJUlEgaXMgcmVhbGx5IGFjY2VwdGFibGUgKi8KKwkJCWlmIChhenhfcG9zaXRpb25fb2soY2hpcCwgYXp4X2RldikpIHsKKwkJCQlhenhfZGV2LT5pcnFfcGVuZGluZyA9IDA7CiAJCQkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAkJCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGF6eF9kZXYtPnN1YnN0cmVhbSk7CiAJCQkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7CisJCQl9IGVsc2UgeworCQkJCS8qIGJvZ3VzIElSUSwgcHJvY2VzcyBpdCBsYXRlciAqLworCQkJCWF6eF9kZXYtPmlycV9wZW5kaW5nID0gMTsKKwkJCQlzY2hlZHVsZV93b3JrKCZjaGlwLT5pcnFfcGVuZGluZ193b3JrKTsKIAkJCX0KIAkJfQogCX0KQEAgLTk1OSw1OSArOTgyLDEwNyBAQAogCiAKIC8qCi0gKiBzZXQgdXAgQkRMIGVudHJpZXMKKyAqIHNldCB1cCBhIEJETCBlbnRyeQogICovCi1zdGF0aWMgaW50IGF6eF9zZXR1cF9wZXJpb2RzKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAotCQkJICAgICBzdHJ1Y3QgYXp4X2RldiAqYXp4X2RldikKK3N0YXRpYyBpbnQgc2V0dXBfYmRsZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJICAgICAgc3RydWN0IGF6eF9kZXYgKmF6eF9kZXYsIHUzMiAqKmJkbHAsCisJCSAgICAgIGludCBvZnMsIGludCBzaXplLCBpbnQgd2l0aF9pb2MpCiB7CiAJc3RydWN0IHNuZF9zZ19idWYgKnNnYnVmID0gc25kX3BjbV9zdWJzdHJlYW1fc2didWYoc3Vic3RyZWFtKTsKKwl1MzIgKmJkbCA9ICpiZGxwOworCisJd2hpbGUgKHNpemUgPiAwKSB7CisJCWRtYV9hZGRyX3QgYWRkcjsKKwkJaW50IGNodW5rOworCisJCWlmIChhenhfZGV2LT5mcmFncyA+PSBBWlhfTUFYX0JETF9FTlRSSUVTKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJYWRkciA9IHNuZF9wY21fc2didWZfZ2V0X2FkZHIoc2didWYsIG9mcyk7CisJCS8qIHByb2dyYW0gdGhlIGFkZHJlc3MgZmllbGQgb2YgdGhlIEJETCBlbnRyeSAqLworCQliZGxbMF0gPSBjcHVfdG9fbGUzMigodTMyKWFkZHIpOworCQliZGxbMV0gPSBjcHVfdG9fbGUzMih1cHBlcl8zMl9iaXRzKGFkZHIpKTsKKwkJLyogcHJvZ3JhbSB0aGUgc2l6ZSBmaWVsZCBvZiB0aGUgQkRMIGVudHJ5ICovCisJCWNodW5rID0gUEFHRV9TSVpFIC0gKG9mcyAlIFBBR0VfU0laRSk7CisJCWlmIChzaXplIDwgY2h1bmspCisJCQljaHVuayA9IHNpemU7CisJCWJkbFsyXSA9IGNwdV90b19sZTMyKGNodW5rKTsKKwkJLyogcHJvZ3JhbSB0aGUgSU9DIHRvIGVuYWJsZSBpbnRlcnJ1cHQKKwkJICogb25seSB3aGVuIHRoZSB3aG9sZSBmcmFnbWVudCBpcyBwcm9jZXNzZWQKKwkJICovCisJCXNpemUgLT0gY2h1bms7CisJCWJkbFszXSA9IChzaXplIHx8ICF3aXRoX2lvYykgPyAwIDogY3B1X3RvX2xlMzIoMHgwMSk7CisJCWJkbCArPSA0OworCQlhenhfZGV2LT5mcmFncysrOworCQlvZnMgKz0gY2h1bms7CisJfQorCSpiZGxwID0gYmRsOworCXJldHVybiBvZnM7Cit9CisKKy8qCisgKiBzZXQgdXAgQkRMIGVudHJpZXMKKyAqLworc3RhdGljIGludCBhenhfc2V0dXBfcGVyaW9kcyhzdHJ1Y3QgYXp4ICpjaGlwLAorCQkJICAgICBzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCSAgICAgc3RydWN0IGF6eF9kZXYgKmF6eF9kZXYpCit7CiAJdTMyICpiZGw7CiAJaW50IGksIG9mcywgcGVyaW9kcywgcGVyaW9kX2J5dGVzOworCWludCBwb3NfYWRqOwogCiAJLyogcmVzZXQgQkRMIGFkZHJlc3MgKi8KIAlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBMLCAwKTsKIAlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBVLCAwKTsKIAogCXBlcmlvZF9ieXRlcyA9IHNuZF9wY21fbGliX3BlcmlvZF9ieXRlcyhzdWJzdHJlYW0pOworCWF6eF9kZXYtPnBlcmlvZF9ieXRlcyA9IHBlcmlvZF9ieXRlczsKIAlwZXJpb2RzID0gYXp4X2Rldi0+YnVmc2l6ZSAvIHBlcmlvZF9ieXRlczsKIAogCS8qIHByb2dyYW0gdGhlIGluaXRpYWwgQkRMIGVudHJpZXMgKi8KIAliZGwgPSAodTMyICopYXp4X2Rldi0+YmRsLmFyZWE7CiAJb2ZzID0gMDsKIAlhenhfZGV2LT5mcmFncyA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IHBlcmlvZHM7IGkrKykgewotCQlpbnQgc2l6ZSwgcmVzdDsKLQkJaWYgKGkgPj0gQVpYX01BWF9CRExfRU5UUklFUykgewotCQkJc25kX3ByaW50ayhLRVJOX0VSUiAiVG9vIG1hbnkgQkRMIGVudHJpZXM6ICIKLQkJCQkgICAiYnVmZmVyPSVkLCBwZXJpb2Q9JWRcbiIsCi0JCQkJICAgYXp4X2Rldi0+YnVmc2l6ZSwgcGVyaW9kX2J5dGVzKTsKLQkJCS8qIHJlc2V0ICovCi0JCQlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBMLCAwKTsKLQkJCWF6eF9zZF93cml0ZWwoYXp4X2RldiwgU0RfQkRMUFUsIDApOwotCQkJcmV0dXJuIC1FSU5WQUw7CisJYXp4X2Rldi0+aXJxX2lnbm9yZSA9IDA7CisJcG9zX2FkaiA9IGJkbF9wb3NfYWRqW2NoaXAtPmRldl9pbmRleF07CisJaWYgKHBvc19hZGogPiAwKSB7CisJCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJCXBvc19hZGogPSAocG9zX2FkaiAqIHJ1bnRpbWUtPnJhdGUgKyA0Nzk5OSkgLyA0ODAwMDsKKwkJaWYgKCFwb3NfYWRqKQorCQkJcG9zX2FkaiA9IDE7CisJCXBvc19hZGogPSBmcmFtZXNfdG9fYnl0ZXMocnVudGltZSwgcG9zX2Fkaik7CisJCWlmIChwb3NfYWRqID49IHBlcmlvZF9ieXRlcykgeworCQkJc25kX3ByaW50ayhLRVJOX1dBUk5JTkcgIlRvbyBiaWcgYWRqdXN0bWVudCAlZFxuIiwKKwkJCQkgICBiZGxfcG9zX2FkaltjaGlwLT5kZXZfaW5kZXhdKTsKKwkJCXBvc19hZGogPSAwOworCQl9IGVsc2UgeworCQkJb2ZzID0gc2V0dXBfYmRsZShzdWJzdHJlYW0sIGF6eF9kZXYsCisJCQkJCSAmYmRsLCBvZnMsIHBvc19hZGosIDEpOworCQkJaWYgKG9mcyA8IDApCisJCQkJZ290byBlcnJvcjsKKwkJCWF6eF9kZXYtPmlycV9pZ25vcmUgPSAxOwogCQl9Ci0JCXJlc3QgPSBwZXJpb2RfYnl0ZXM7Ci0JCWRvIHsKLQkJCWRtYV9hZGRyX3QgYWRkciA9IHNuZF9wY21fc2didWZfZ2V0X2FkZHIoc2didWYsIG9mcyk7Ci0JCQkvKiBwcm9ncmFtIHRoZSBhZGRyZXNzIGZpZWxkIG9mIHRoZSBCREwgZW50cnkgKi8KLQkJCWJkbFswXSA9IGNwdV90b19sZTMyKCh1MzIpYWRkcik7Ci0JCQliZGxbMV0gPSBjcHVfdG9fbGUzMih1cHBlcl8zMmJpdChhZGRyKSk7Ci0JCQkvKiBwcm9ncmFtIHRoZSBzaXplIGZpZWxkIG9mIHRoZSBCREwgZW50cnkgKi8KLQkJCXNpemUgPSBQQUdFX1NJWkUgLSAob2ZzICUgUEFHRV9TSVpFKTsKLQkJCWlmIChyZXN0IDwgc2l6ZSkKLQkJCQlzaXplID0gcmVzdDsKLQkJCWJkbFsyXSA9IGNwdV90b19sZTMyKHNpemUpOwotCQkJLyogcHJvZ3JhbSB0aGUgSU9DIHRvIGVuYWJsZSBpbnRlcnJ1cHQKLQkJCSAqIG9ubHkgd2hlbiB0aGUgd2hvbGUgZnJhZ21lbnQgaXMgcHJvY2Vzc2VkCi0JCQkgKi8KLQkJCXJlc3QgLT0gc2l6ZTsKLQkJCWJkbFszXSA9IHJlc3QgPyAwIDogY3B1X3RvX2xlMzIoMHgwMSk7Ci0JCQliZGwgKz0gNDsKLQkJCWF6eF9kZXYtPmZyYWdzKys7Ci0JCQlvZnMgKz0gc2l6ZTsKLQkJfSB3aGlsZSAocmVzdCA+IDApOworCX0gZWxzZQorCQlwb3NfYWRqID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgcGVyaW9kczsgaSsrKSB7CisJCWlmIChpID09IHBlcmlvZHMgLSAxICYmIHBvc19hZGopCisJCQlvZnMgPSBzZXR1cF9iZGxlKHN1YnN0cmVhbSwgYXp4X2RldiwgJmJkbCwgb2ZzLAorCQkJCQkgcGVyaW9kX2J5dGVzIC0gcG9zX2FkaiwgMCk7CisJCWVsc2UKKwkJCW9mcyA9IHNldHVwX2JkbGUoc3Vic3RyZWFtLCBhenhfZGV2LCAmYmRsLCBvZnMsCisJCQkJCSBwZXJpb2RfYnl0ZXMsIDEpOworCQlpZiAob2ZzIDwgMCkKKwkJCWdvdG8gZXJyb3I7CiAJfQogCXJldHVybiAwOworCisgZXJyb3I6CisJc25kX3ByaW50ayhLRVJOX0VSUiAiVG9vIG1hbnkgQkRMIGVudHJpZXM6IGJ1ZmZlcj0lZCwgcGVyaW9kPSVkXG4iLAorCQkgICBhenhfZGV2LT5idWZzaXplLCBwZXJpb2RfYnl0ZXMpOworCS8qIHJlc2V0ICovCisJYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQTCwgMCk7CisJYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQVSwgMCk7CisJcmV0dXJuIC1FSU5WQUw7CiB9CiAKIC8qCkBAIC0xMDYyLDcgKzExMzMsNyBAQAogCS8qIGxvd2VyIEJETCBhZGRyZXNzICovCiAJYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQTCwgKHUzMilhenhfZGV2LT5iZGwuYWRkcik7CiAJLyogdXBwZXIgQkRMIGFkZHJlc3MgKi8KLQlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBVLCB1cHBlcl8zMmJpdChhenhfZGV2LT5iZGwuYWRkcikpOworCWF6eF9zZF93cml0ZWwoYXp4X2RldiwgU0RfQkRMUFUsIHVwcGVyXzMyX2JpdHMoYXp4X2Rldi0+YmRsLmFkZHIpKTsKIAogCS8qIGVuYWJsZSB0aGUgcG9zaXRpb24gYnVmZmVyICovCiAJaWYgKGNoaXAtPnBvc2l0aW9uX2ZpeCA9PSBQT1NfRklYX1BPU0JVRiB8fApAQCAtMTA4NSw3ICsxMTU2LDcgQEAKICAqLwogCiBzdGF0aWMgdW5zaWduZWQgaW50IGF6eF9tYXhfY29kZWNzW10gX19kZXZpbml0ZGF0YSA9IHsKLQlbQVpYX0RSSVZFUl9JQ0hdID0gMywKKwlbQVpYX0RSSVZFUl9JQ0hdID0gNCwJCS8qIFNvbWUgSUNIOSBib2FyZHMgdXNlIFNEMyAqLwogCVtBWlhfRFJJVkVSX1NDSF0gPSAzLAogCVtBWlhfRFJJVkVSX0FUSV0gPSA0LAogCVtBWlhfRFJJVkVSX0FUSUhETUldID0gNCwKQEAgLTEwOTMsNiArMTE2NCw3IEBACiAJW0FaWF9EUklWRVJfU0lTXSA9IDMsCQkvKiBGSVhNRTogY29ycmVjdD8gKi8KIAlbQVpYX0RSSVZFUl9VTEldID0gMywJCS8qIEZJWE1FOiBjb3JyZWN0PyAqLwogCVtBWlhfRFJJVkVSX05WSURJQV0gPSAzLAkvKiBGSVhNRTogY29ycmVjdD8gKi8KKwlbQVpYX0RSSVZFUl9URVJBXSA9IDEsCiB9OwogCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBhenhfY29kZWNfY3JlYXRlKHN0cnVjdCBhenggKmNoaXAsIGNvbnN0IGNoYXIgKm1vZGVsLApAQCAtMTMxNiw3ICsxMzg4LDcgQEAKIAogCXNuZF9wcmludGRkKCJhenhfcGNtX3ByZXBhcmU6IGJ1ZnNpemU9MHgleCwgZm9ybWF0PTB4JXhcbiIsCiAJCSAgICBhenhfZGV2LT5idWZzaXplLCBhenhfZGV2LT5mb3JtYXRfdmFsKTsKLQlpZiAoYXp4X3NldHVwX3BlcmlvZHMoc3Vic3RyZWFtLCBhenhfZGV2KSA8IDApCisJaWYgKGF6eF9zZXR1cF9wZXJpb2RzKGNoaXAsIHN1YnN0cmVhbSwgYXp4X2RldikgPCAwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAlhenhfc2V0dXBfY29udHJvbGxlcihjaGlwLCBhenhfZGV2KTsKIAlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKQEAgLTE0MjEsMzUgKzE0OTMsMTEzIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCBhenhfcGNtX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCitzdGF0aWMgdW5zaWduZWQgaW50IGF6eF9nZXRfcG9zaXRpb24oc3RydWN0IGF6eCAqY2hpcCwKKwkJCQkgICAgIHN0cnVjdCBhenhfZGV2ICphenhfZGV2KQogewotCXN0cnVjdCBhenhfcGNtICphcGNtID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwotCXN0cnVjdCBhenggKmNoaXAgPSBhcGNtLT5jaGlwOwotCXN0cnVjdCBhenhfZGV2ICphenhfZGV2ID0gZ2V0X2F6eF9kZXYoc3Vic3RyZWFtKTsKIAl1bnNpZ25lZCBpbnQgcG9zOwogCiAJaWYgKGNoaXAtPnBvc2l0aW9uX2ZpeCA9PSBQT1NfRklYX1BPU0JVRiB8fAogCSAgICBjaGlwLT5wb3NpdGlvbl9maXggPT0gUE9TX0ZJWF9BVVRPKSB7CiAJCS8qIHVzZSB0aGUgcG9zaXRpb24gYnVmZmVyICovCiAJCXBvcyA9IGxlMzJfdG9fY3B1KCphenhfZGV2LT5wb3NidWYpOwotCQlpZiAoY2hpcC0+cG9zaXRpb25fZml4ID09IFBPU19GSVhfQVVUTyAmJgotCQkgICAgYXp4X2Rldi0+cGVyaW9kX2ludHIgPT0gMSAmJiAhcG9zKSB7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HCi0JCQkgICAgICAgImhkYS1pbnRlbDogSW52YWxpZCBwb3NpdGlvbiBidWZmZXIsICIKLQkJCSAgICAgICAidXNpbmcgTFBJQiByZWFkIG1ldGhvZCBpbnN0ZWFkLlxuIik7Ci0JCQljaGlwLT5wb3NpdGlvbl9maXggPSBQT1NfRklYX05PTkU7Ci0JCQlnb3RvIHJlYWRfbHBpYjsKLQkJfQogCX0gZWxzZSB7Ci0JcmVhZF9scGliOgogCQkvKiByZWFkIExQSUIgKi8KIAkJcG9zID0gYXp4X3NkX3JlYWRsKGF6eF9kZXYsIFNEX0xQSUIpOwotCQlpZiAoY2hpcC0+cG9zaXRpb25fZml4ID09IFBPU19GSVhfRklGTykKLQkJCXBvcyArPSBhenhfZGV2LT5maWZvX3NpemU7CiAJfQogCWlmIChwb3MgPj0gYXp4X2Rldi0+YnVmc2l6ZSkKIAkJcG9zID0gMDsKLQlyZXR1cm4gYnl0ZXNfdG9fZnJhbWVzKHN1YnN0cmVhbS0+cnVudGltZSwgcG9zKTsKKwlyZXR1cm4gcG9zOworfQorCitzdGF0aWMgc25kX3BjbV91ZnJhbWVzX3QgYXp4X3BjbV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBhenhfcGNtICphcGNtID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBhenggKmNoaXAgPSBhcGNtLT5jaGlwOworCXN0cnVjdCBhenhfZGV2ICphenhfZGV2ID0gZ2V0X2F6eF9kZXYoc3Vic3RyZWFtKTsKKwlyZXR1cm4gYnl0ZXNfdG9fZnJhbWVzKHN1YnN0cmVhbS0+cnVudGltZSwKKwkJCSAgICAgICBhenhfZ2V0X3Bvc2l0aW9uKGNoaXAsIGF6eF9kZXYpKTsKK30KKworLyoKKyAqIENoZWNrIHdoZXRoZXIgdGhlIGN1cnJlbnQgRE1BIHBvc2l0aW9uIGlzIGFjY2VwdGFibGUgZm9yIHVwZGF0aW5nCisgKiBwZXJpb2RzLiAgUmV0dXJucyBub24temVybyBpZiBpdCdzIE9LLgorICoKKyAqIE1hbnkgSEQtYXVkaW8gY29udHJvbGxlcnMgYXBwZWFyIHByZXR0eSBpbmFjY3VyYXRlIGFib3V0CisgKiB0aGUgdXBkYXRlLUlSUSB0aW1pbmcuICBUaGUgSVJRIGlzIGlzc3VlZCBiZWZvcmUgYWN0dWFsbHkgdGhlCisgKiBkYXRhIGlzIHByb2Nlc3NlZC4gIFNvLCB3ZSBuZWVkIHRvIHByb2Nlc3MgaXQgYWZ0ZXJ3b3JkcyBpbiBhCisgKiB3b3JrcXVldWUuCisgKi8KK3N0YXRpYyBpbnQgYXp4X3Bvc2l0aW9uX29rKHN0cnVjdCBhenggKmNoaXAsIHN0cnVjdCBhenhfZGV2ICphenhfZGV2KQoreworCXVuc2lnbmVkIGludCBwb3M7CisKKwlwb3MgPSBhenhfZ2V0X3Bvc2l0aW9uKGNoaXAsIGF6eF9kZXYpOworCWlmIChjaGlwLT5wb3NpdGlvbl9maXggPT0gUE9TX0ZJWF9BVVRPKSB7CisJCWlmICghcG9zKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkgICAgICAgImhkYS1pbnRlbDogSW52YWxpZCBwb3NpdGlvbiBidWZmZXIsICIKKwkJCSAgICAgICAidXNpbmcgTFBJQiByZWFkIG1ldGhvZCBpbnN0ZWFkLlxuIik7CisJCQljaGlwLT5wb3NpdGlvbl9maXggPSBQT1NfRklYX0xQSUI7CisJCQlwb3MgPSBhenhfZ2V0X3Bvc2l0aW9uKGNoaXAsIGF6eF9kZXYpOworCQl9IGVsc2UKKwkJCWNoaXAtPnBvc2l0aW9uX2ZpeCA9IFBPU19GSVhfUE9TQlVGOworCX0KKworCWlmIChwb3MgJSBhenhfZGV2LT5wZXJpb2RfYnl0ZXMgPiBhenhfZGV2LT5wZXJpb2RfYnl0ZXMgLyAyKQorCQlyZXR1cm4gMDsgLyogTkcgLSBpdCdzIGJlbG93IHRoZSBwZXJpb2QgYm91bmRhcnkgKi8KKwlyZXR1cm4gMTsgLyogT0ssIGl0J3MgZmluZSAqLworfQorCisvKgorICogVGhlIHdvcmsgZm9yIHBlbmRpbmcgUENNIHBlcmlvZCB1cGRhdGVzLgorICovCitzdGF0aWMgdm9pZCBhenhfaXJxX3BlbmRpbmdfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGF6eCAqY2hpcCA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgYXp4LCBpcnFfcGVuZGluZ193b3JrKTsKKwlpbnQgaSwgcGVuZGluZzsKKworCWlmICghY2hpcC0+aXJxX3BlbmRpbmdfd2FybmVkKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJICAgICAgICJoZGEtaW50ZWw6IElSUSB0aW1pbmcgd29ya2Fyb3VuZCBpcyBhY3RpdmF0ZWQgIgorCQkgICAgICAgImZvciBjYXJkICMlZC4gU3VnZ2VzdCBhIGJpZ2dlciBiZGxfcG9zX2Fkai5cbiIsCisJCSAgICAgICBjaGlwLT5jYXJkLT5udW1iZXIpOworCQljaGlwLT5pcnFfcGVuZGluZ193YXJuZWQgPSAxOworCX0KKworCWZvciAoOzspIHsKKwkJcGVuZGluZyA9IDA7CisJCXNwaW5fbG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKKwkJZm9yIChpID0gMDsgaSA8IGNoaXAtPm51bV9zdHJlYW1zOyBpKyspIHsKKwkJCXN0cnVjdCBhenhfZGV2ICphenhfZGV2ID0gJmNoaXAtPmF6eF9kZXZbaV07CisJCQlpZiAoIWF6eF9kZXYtPmlycV9wZW5kaW5nIHx8CisJCQkgICAgIWF6eF9kZXYtPnN1YnN0cmVhbSB8fAorCQkJICAgICFhenhfZGV2LT5ydW5uaW5nKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKGF6eF9wb3NpdGlvbl9vayhjaGlwLCBhenhfZGV2KSkgeworCQkJCWF6eF9kZXYtPmlycV9wZW5kaW5nID0gMDsKKwkJCQlzcGluX3VubG9jaygmY2hpcC0+cmVnX2xvY2spOworCQkJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoYXp4X2Rldi0+c3Vic3RyZWFtKTsKKwkJCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJCX0gZWxzZQorCQkJCXBlbmRpbmcrKzsKKwkJfQorCQlzcGluX3VubG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKKwkJaWYgKCFwZW5kaW5nKQorCQkJcmV0dXJuOworCQljb25kX3Jlc2NoZWQoKTsKKwl9Cit9CisKKy8qIGNsZWFyIGlycV9wZW5kaW5nIGZsYWdzIGFuZCBhc3N1cmUgbm8gb24tZ29pbmcgd29ya3EgKi8KK3N0YXRpYyB2b2lkIGF6eF9jbGVhcl9pcnFfcGVuZGluZyhzdHJ1Y3QgYXp4ICpjaGlwKQoreworCWludCBpOworCisJc3Bpbl9sb2NrX2lycSgmY2hpcC0+cmVnX2xvY2spOworCWZvciAoaSA9IDA7IGkgPCBjaGlwLT5udW1fc3RyZWFtczsgaSsrKQorCQljaGlwLT5henhfZGV2W2ldLmlycV9wZW5kaW5nID0gMDsKKwlzcGluX3VubG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKKwlmbHVzaF9zY2hlZHVsZWRfd29yaygpOwogfQogCiBzdGF0aWMgc3RydWN0IHNuZF9wY21fb3BzIGF6eF9wY21fb3BzID0gewpAQCAtMTY3Niw2ICsxODI2LDcgQEAKIAlpbnQgaTsKIAogCXNuZF9wb3dlcl9jaGFuZ2Vfc3RhdGUoY2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwlhenhfY2xlYXJfaXJxX3BlbmRpbmcoY2hpcCk7CiAJZm9yIChpID0gMDsgaSA8IEFaWF9NQVhfUENNUzsgaSsrKQogCQlzbmRfcGNtX3N1c3BlbmRfYWxsKGNoaXAtPnBjbVtpXSk7CiAJaWYgKGNoaXAtPmluaXRpYWxpemVkKQpAQCAtMTczMiw2ICsxODgzLDcgQEAKIAlpbnQgaTsKIAogCWlmIChjaGlwLT5pbml0aWFsaXplZCkgeworCQlhenhfY2xlYXJfaXJxX3BlbmRpbmcoY2hpcCk7CiAJCWZvciAoaSA9IDA7IGkgPCBjaGlwLT5udW1fc3RyZWFtczsgaSsrKQogCQkJYXp4X3N0cmVhbV9zdG9wKGNoaXAsICZjaGlwLT5henhfZGV2W2ldKTsKIAkJYXp4X3N0b3BfY2hpcChjaGlwKTsKQEAgLTE3NzAsOSArMTkyMiw5IEBACiAgKiB3aGl0ZS9ibGFjay1saXN0aW5nIGZvciBwb3NpdGlvbl9maXgKICAqLwogc3RhdGljIHN0cnVjdCBzbmRfcGNpX3F1aXJrIHBvc2l0aW9uX2ZpeF9saXN0W10gX19kZXZpbml0ZGF0YSA9IHsKLQlTTkRfUENJX1FVSVJLKDB4MTAyOCwgMHgwMWNjLCAiRGVsbCBEODIwIiwgUE9TX0ZJWF9OT05FKSwKLQlTTkRfUENJX1FVSVJLKDB4MTAyOCwgMHgwMWRlLCAiRGVsbCBQcmVjaXNpb24gMzkwIiwgUE9TX0ZJWF9OT05FKSwKLQlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHg4MTNkLCAiQVNVUyBQNUFEMiIsIFBPU19GSVhfTk9ORSksCisJU05EX1BDSV9RVUlSSygweDEwMjgsIDB4MDFjYywgIkRlbGwgRDgyMCIsIFBPU19GSVhfTFBJQiksCisJU05EX1BDSV9RVUlSSygweDEwMjgsIDB4MDFkZSwgIkRlbGwgUHJlY2lzaW9uIDM5MCIsIFBPU19GSVhfTFBJQiksCisJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODEzZCwgIkFTVVMgUDVBRDIiLCBQT1NfRklYX0xQSUIpLAogCXt9CiB9OwogCkBAIC0xODU3LDEyICsyMDA5LDI1IEBACiAJY2hpcC0+aXJxID0gLTE7CiAJY2hpcC0+ZHJpdmVyX3R5cGUgPSBkcml2ZXJfdHlwZTsKIAljaGlwLT5tc2kgPSBlbmFibGVfbXNpOworCWNoaXAtPmRldl9pbmRleCA9IGRldjsKKwlJTklUX1dPUksoJmNoaXAtPmlycV9wZW5kaW5nX3dvcmssIGF6eF9pcnFfcGVuZGluZ193b3JrKTsKIAogCWNoaXAtPnBvc2l0aW9uX2ZpeCA9IGNoZWNrX3Bvc2l0aW9uX2ZpeChjaGlwLCBwb3NpdGlvbl9maXhbZGV2XSk7CiAJY2hlY2tfcHJvYmVfbWFzayhjaGlwLCBkZXYpOwogCiAJY2hpcC0+c2luZ2xlX2NtZCA9IHNpbmdsZV9jbWQ7CiAKKwlpZiAoYmRsX3Bvc19hZGpbZGV2XSA8IDApIHsKKwkJc3dpdGNoIChjaGlwLT5kcml2ZXJfdHlwZSkgeworCQljYXNlIEFaWF9EUklWRVJfSUNIOgorCQkJYmRsX3Bvc19hZGpbZGV2XSA9IDE7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJkbF9wb3NfYWRqW2Rldl0gPSAzMjsKKwkJCWJyZWFrOworCQl9CisJfQorCiAjaWYgQklUU19QRVJfTE9ORyAhPSA2NAogCS8qIEZpeCB1cCBiYXNlIGFkZHJlc3Mgb24gVUxJIE01NDYxICovCiAJaWYgKGNoaXAtPmRyaXZlcl90eXBlID09IEFaWF9EUklWRVJfVUxJKSB7CkBAIC0yMDg5LDYgKzIyNTQsNyBAQAogCXsgUENJX0RFVklDRSgweDgwODYsIDB4MjdkOCksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfSUNIIH0sCiAJeyBQQ0lfREVWSUNFKDB4ODA4NiwgMHgyNjlhKSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9JQ0ggfSwKIAl7IFBDSV9ERVZJQ0UoMHg4MDg2LCAweDI4NGIpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX0lDSCB9LAorCXsgUENJX0RFVklDRSgweDgwODYsIDB4MjkxMSksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfSUNIIH0sCiAJeyBQQ0lfREVWSUNFKDB4ODA4NiwgMHgyOTNlKSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9JQ0ggfSwKIAl7IFBDSV9ERVZJQ0UoMHg4MDg2LCAweDI5M2YpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX0lDSCB9LAogCXsgUENJX0RFVklDRSgweDgwODYsIDB4M2EzZSksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfSUNIIH0sCkBAIC0yMTQxLDYgKzIzMDcsOCBAQAogCXsgUENJX0RFVklDRSgweDEwZGUsIDB4MGJkNSksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfTlZJRElBIH0sCiAJeyBQQ0lfREVWSUNFKDB4MTBkZSwgMHgwYmQ2KSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9OVklESUEgfSwKIAl7IFBDSV9ERVZJQ0UoMHgxMGRlLCAweDBiZDcpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX05WSURJQSB9LAorCS8qIFRlcmFkaWNpICovCisJeyBQQ0lfREVWSUNFKDB4NjU0OSwgMHgxMjAwKSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9URVJBIH0sCiAJeyAwLCB9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGF6eF9pZHMpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfcHJvYy5jIGIvc291bmQvcGNpL2hkYS9oZGFfcHJvYy5jCmluZGV4IDU2MzNmNzcuLjFlNWFmZjUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX3Byb2MuYworKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9wcm9jLmMKQEAgLTM2Niw4ICszNjYsNiBAQAogewogCXVuc2lnbmVkIGludCBkaWdpMSA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgbmlkLCAwLAogCQkJCQkJQUNfVkVSQl9HRVRfRElHSV9DT05WRVJUXzEsIDApOwotCXVuc2lnbmVkIGludCBkaWdpMiA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgbmlkLCAwLAotCQkJCQkJQUNfVkVSQl9HRVRfRElHSV9DT05WRVJUXzIsIDApOwogCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiAgRGlnaXRhbDoiKTsKIAlpZiAoZGlnaTEgJiBBQ19ESUcxX0VOQUJMRSkKIAkJc25kX2lwcmludGYoYnVmZmVyLCAiIEVuYWJsZWQiKTsKQEAgLTM4Niw3ICszODQsOCBAQAogCWlmIChkaWdpMSAmIEFDX0RJRzFfTEVWRUwpCiAJCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiBHZW5MZXZlbCIpOwogCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIlxuIik7Ci0Jc25kX2lwcmludGYoYnVmZmVyLCAiICBEaWdpdGFsIGNhdGVnb3J5OiAweCV4XG4iLCBkaWdpMiAmIEFDX0RJRzJfQ0MpOworCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiAgRGlnaXRhbCBjYXRlZ29yeTogMHgleFxuIiwKKwkJICAgIChkaWdpMSA+PiA4KSAmIEFDX0RJRzJfQ0MpOwogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X3B3cl9zdGF0ZSh1MzIgc3RhdGUpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2FuYWxvZy5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9hbmFsb2cuYwppbmRleCBhOTllODZkLi5lODAwM2Q5IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2FuYWxvZy5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfYW5hbG9nLmMKQEAgLTIzLDcgKzIzLDYgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogCiAjaW5jbHVkZSA8c291bmQvY29yZS5oPgogI2luY2x1ZGUgImhkYV9jb2RlYy5oIgpAQCAtNjQsNyArNjMsNiBAQAogCS8qIFBDTSBpbmZvcm1hdGlvbiAqLwogCXN0cnVjdCBoZGFfcGNtIHBjbV9yZWNbM107CS8qIHVzZWQgaW4gYWxjX2J1aWxkX3BjbXMoKSAqLwogCi0Jc3RydWN0IG11dGV4IGFtcF9tdXRleDsJLyogUENNIHZvbHVtZS9tdXRlIGNvbnRyb2wgbXV0ZXggKi8KIAl1bnNpZ25lZCBpbnQgc3BkaWZfcm91dGU7CiAKIAkvKiBkeW5hbWljIGNvbnRyb2xzLCBpbml0X3ZlcmJzIGFuZCBpbnB1dF9tdXggKi8KQEAgLTE2MTgsNiArMTYxNiw3IEBACiAKIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBhZDE5ODFfY2ZnX3RibFtdID0gewogCVNORF9QQ0lfUVVJUksoMHgxMDE0LCAweDA1OTcsICJMZW5vdm8gWjYwIiwgQUQxOTgxX1RISU5LUEFEKSwKKwlTTkRfUENJX1FVSVJLKDB4MTAxNCwgMHgwNWI3LCAiTGVub3ZvIFo2MG0iLCBBRDE5ODFfVEhJTktQQUQpLAogCS8qIEFsbCBIUCBtb2RlbHMgKi8KIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMCwgIkhQIG54IiwgQUQxOTgxX0hQKSwKIAlTTkRfUENJX1FVSVJLKDB4MTE3OSwgMHgwMDAxLCAiVG9zaGliYSBVMjA1IiwgQUQxOTgxX1RPU0hJQkEpLApAQCAtMjYyMyw3ICsyNjIyLDcgQEAKIHsKIAlzdHJ1Y3QgYWQxOTh4X3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKIAloZGFfbmlkX3QgbmlkOwotCWludCBpZHgsIGVycjsKKwlpbnQgaSwgaWR4LCBlcnI7CiAJY2hhciBuYW1lWzMyXTsKIAogCWlmICghIHBpbikKQEAgLTI2MzEsMTYgKzI2MzAsMjYgQEAKIAogCWlkeCA9IGFkMTk4OF9waW5faWR4KHBpbik7CiAJbmlkID0gYWQxOTg4X2lkeF90b19kYWMoY29kZWMsIGlkeCk7Ci0JLyogc3BlY2lmeSB0aGUgREFDIGFzIHRoZSBleHRyYSBvdXRwdXQgKi8KLQlpZiAoISBzcGVjLT5tdWx0aW91dC5ocF9uaWQpCi0JCXNwZWMtPm11bHRpb3V0LmhwX25pZCA9IG5pZDsKLQllbHNlCi0JCXNwZWMtPm11bHRpb3V0LmV4dHJhX291dF9uaWRbMF0gPSBuaWQ7Ci0JLyogY29udHJvbCBIUCB2b2x1bWUvc3dpdGNoIG9uIHRoZSBvdXRwdXQgbWl4ZXIgYW1wICovCi0Jc3ByaW50ZihuYW1lLCAiJXMgUGxheWJhY2sgVm9sdW1lIiwgcGZ4KTsKLQlpZiAoKGVyciA9IGFkZF9jb250cm9sKHNwZWMsIEFEX0NUTF9XSURHRVRfVk9MLCBuYW1lLAotCQkJICAgICAgIEhEQV9DT01QT1NFX0FNUF9WQUwobmlkLCAzLCAwLCBIREFfT1VUUFVUKSkpIDwgMCkKLQkJcmV0dXJuIGVycjsKKwkvKiBjaGVjayB3aGV0aGVyIHRoZSBjb3JyZXNwb25kaW5nIERBQyB3YXMgYWxyZWFkeSB0YWtlbiAqLworCWZvciAoaSA9IDA7IGkgPCBzcGVjLT5hdXRvY2ZnLmxpbmVfb3V0czsgaSsrKSB7CisJCWhkYV9uaWRfdCBwaW4gPSBzcGVjLT5hdXRvY2ZnLmxpbmVfb3V0X3BpbnNbaV07CisJCWhkYV9uaWRfdCBkYWMgPSBhZDE5ODhfaWR4X3RvX2RhYyhjb2RlYywgYWQxOTg4X3Bpbl9pZHgocGluKSk7CisJCWlmIChkYWMgPT0gbmlkKQorCQkJYnJlYWs7CisJfQorCWlmIChpID49IHNwZWMtPmF1dG9jZmcubGluZV9vdXRzKSB7CisJCS8qIHNwZWNpZnkgdGhlIERBQyBhcyB0aGUgZXh0cmEgb3V0cHV0ICovCisJCWlmICghc3BlYy0+bXVsdGlvdXQuaHBfbmlkKQorCQkJc3BlYy0+bXVsdGlvdXQuaHBfbmlkID0gbmlkOworCQllbHNlCisJCQlzcGVjLT5tdWx0aW91dC5leHRyYV9vdXRfbmlkWzBdID0gbmlkOworCQkvKiBjb250cm9sIEhQIHZvbHVtZS9zd2l0Y2ggb24gdGhlIG91dHB1dCBtaXhlciBhbXAgKi8KKwkJc3ByaW50ZihuYW1lLCAiJXMgUGxheWJhY2sgVm9sdW1lIiwgcGZ4KTsKKwkJZXJyID0gYWRkX2NvbnRyb2woc3BlYywgQURfQ1RMX1dJREdFVF9WT0wsIG5hbWUsCisJCQkJICBIREFfQ09NUE9TRV9BTVBfVkFMKG5pZCwgMywgMCwgSERBX09VVFBVVCkpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQogCW5pZCA9IGFkMTk4OF9taXhlcl9uaWRzW2lkeF07CiAJc3ByaW50ZihuYW1lLCAiJXMgUGxheWJhY2sgU3dpdGNoIiwgcGZ4KTsKIAlpZiAoKGVyciA9IGFkZF9jb250cm9sKHNwZWMsIEFEX0NUTF9CSU5EX01VVEUsIG5hbWUsCkBAIC0zMTc3LDcgKzMxODYsNiBAQAogCWlmIChzcGVjID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JbXV0ZXhfaW5pdCgmc3BlYy0+YW1wX211dGV4KTsKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKIAlzcGVjLT5tdWx0aW91dC5tYXhfY2hhbm5lbHMgPSAyOwpAQCAtMzg0Nyw3ICszODU1LDYgQEAKIAlpZiAoc3BlYyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCW11dGV4X2luaXQoJnNwZWMtPmFtcF9tdXRleCk7CiAJY29kZWMtPnNwZWMgPSBzcGVjOwogCiAJc3BlYy0+bXVsdGlvdXQubWF4X2NoYW5uZWxzID0gMjsKQEAgLTQxNTIsNyArNDE1OSw2IEBACiAJaWYgKHNwZWMgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQltdXRleF9pbml0KCZzcGVjLT5hbXBfbXV0ZXgpOwogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAogCXNwZWMtPm11bHRpb3V0Lm1heF9jaGFubmVscyA9IDY7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMKaW5kZXggMzZmZDg1Mi4uN2MxZWIyMyAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9jb25leGFudC5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY29uZXhhbnQuYwpAQCAtODIsNyArODIsNiBAQAogCS8qIFBDTSBpbmZvcm1hdGlvbiAqLwogCXN0cnVjdCBoZGFfcGNtIHBjbV9yZWNbMl07CS8qIHVzZWQgaW4gYnVpbGRfcGNtcygpICovCiAKLQlzdHJ1Y3QgbXV0ZXggYW1wX211dGV4OwkvKiBQQ00gdm9sdW1lL211dGUgY29udHJvbCBtdXRleCAqLwogCXVuc2lnbmVkIGludCBzcGRpZl9yb3V0ZTsKIAogCS8qIGR5bmFtaWMgY29udHJvbHMsIGluaXRfdmVyYnMgYW5kIGlucHV0X211eCAqLwpAQCAtNjg3LDcgKzY4Niw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgaGRhX3ZlcmIgY3h0NTA0NV9pbml0X3ZlcmJzW10gPSB7CiAJLyogTGluZSBpbiwgTWljICovCi0JezB4MTIsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0lOIH0sCisJezB4MTIsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0lOfEFDX1BJTkNUTF9WUkVGXzgwIH0sCiAJezB4MTQsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0lOfEFDX1BJTkNUTF9WUkVGXzgwIH0sCiAJLyogSFAsIEFtcCAgKi8KIAl7MHgxMCwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fT1VUfSwKQEAgLTkwNywxMCArOTA2LDEyIEBACiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MzBjZiwgIkhQIERWOTUzM0VHIiwgQ1hUNTA0NV9MQVBUT1BfSFBTRU5TRSksCiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MzBkNSwgIkhQIDUzMCIsIENYVDUwNDVfTEFQVE9QX0hQNTMwKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMGQ5LCAiSFAgU3BhcnRhbiIsIENYVDUwNDVfTEFQVE9QX0hQU0VOU0UpLAorCVNORF9QQ0lfUVVJUksoMHgxMTc5LCAweGZmMzEsICJUb3NoaWJhIFAxMDUiLCBDWFQ1MDQ1X0xBUFRPUF9NSUNTRU5TRSksCiAJU05EX1BDSV9RVUlSSygweDE1MmQsIDB4MDc1MywgIkJlbnEgUjU1RSIsIENYVDUwNDVfQkVOUSksCiAJU05EX1BDSV9RVUlSSygweDE3MzQsIDB4MTBhZCwgIkZ1aml0c3UgU2kxNTIwIiwgQ1hUNTA0NV9MQVBUT1BfTUlDU0VOU0UpLAogCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwY2IsICJGdWppdHN1IFNpMzUxNSIsIENYVDUwNDVfTEFQVE9QX0hQTUlDU0VOU0UpLAotCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDExMGUsICJGdWppdHN1IFY1NTA1IiwgQ1hUNTA0NV9MQVBUT1BfSFBTRU5TRSksCisJU05EX1BDSV9RVUlSSygweDE3MzQsIDB4MTEwZSwgIkZ1aml0c3UgVjU1MDUiLAorCQkgICAgICBDWFQ1MDQ1X0xBUFRPUF9IUE1JQ1NFTlNFKSwKIAlTTkRfUENJX1FVSVJLKDB4MTUwOSwgMHgxZTQwLCAiRklDIiwgQ1hUNTA0NV9MQVBUT1BfSFBNSUNTRU5TRSksCiAJU05EX1BDSV9RVUlSSygweDE1MDksIDB4MmYwNSwgIkZJQyIsIENYVDUwNDVfTEFQVE9QX0hQTUlDU0VOU0UpLAogCVNORF9QQ0lfUVVJUksoMHgxNTA5LCAweDJmMDYsICJGSUMiLCBDWFQ1MDQ1X0xBUFRPUF9IUE1JQ1NFTlNFKSwKQEAgLTkyOCw3ICs5MjksNiBAQAogCXNwZWMgPSBremFsbG9jKHNpemVvZigqc3BlYyksIEdGUF9LRVJORUwpOwogCWlmICghc3BlYykKIAkJcmV0dXJuIC1FTk9NRU07Ci0JbXV0ZXhfaW5pdCgmc3BlYy0+YW1wX211dGV4KTsKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKIAlzcGVjLT5tdWx0aW91dC5tYXhfY2hhbm5lbHMgPSAyOwpAQCAtOTYzLDYgKzk2Myw3IEBACiAJCWNvZGVjLT5wYXRjaF9vcHMuaW5pdCA9IGN4dDUwNDVfaW5pdDsKIAkJYnJlYWs7CiAJY2FzZSBDWFQ1MDQ1X0xBUFRPUF9NSUNTRU5TRToKKwkJY29kZWMtPnBhdGNoX29wcy51bnNvbF9ldmVudCA9IGN4dDUwNDVfaHBfdW5zb2xfZXZlbnQ7CiAJCXNwZWMtPmlucHV0X211eCA9ICZjeHQ1MDQ1X2NhcHR1cmVfc291cmNlOwogCQlzcGVjLT5udW1faW5pdF92ZXJicyA9IDI7CiAJCXNwZWMtPmluaXRfdmVyYnNbMV0gPSBjeHQ1MDQ1X21pY19zZW5zZV9pbml0X3ZlcmJzOwpAQCAtMTAwNywxNSArMTAwOCwxOSBAQAogI2VuZGlmCQogCX0KIAotCS8qCi0JICogRml4IG1heCBQQ00gbGV2ZWwgdG8gMCBkQgotCSAqIChvcmlnaW5hbGwgaXQgaGFzIDB4MmIgc3RlcHMgd2l0aCAwZEIgb2Zmc2V0IDB4MTQpCi0JICovCi0Jc25kX2hkYV9vdmVycmlkZV9hbXBfY2Fwcyhjb2RlYywgMHgxNywgSERBX0lOUFVULAotCQkJCSAgKDB4MTQgPDwgQUNfQU1QQ0FQX09GRlNFVF9TSElGVCkgfAotCQkJCSAgKDB4MTQgPDwgQUNfQU1QQ0FQX05VTV9TVEVQU19TSElGVCkgfAotCQkJCSAgKDB4MDUgPDwgQUNfQU1QQ0FQX1NURVBfU0laRV9TSElGVCkgfAotCQkJCSAgKDEgPDwgQUNfQU1QQ0FQX01VVEVfU0hJRlQpKTsKKwlzd2l0Y2ggKGNvZGVjLT5zdWJzeXN0ZW1faWQgPj4gMTYpIHsKKwljYXNlIDB4MTAzYzoKKwkJLyogSFAgbGFwdG9wIGhhcyBhIHJlYWxseSBiYWQgc291bmQgb3ZlciAwZEIgb24gTklEIDB4MTcuCisJCSAqIEZpeCBtYXggUENNIGxldmVsIHRvIDAgZEIKKwkJICogKG9yaWdpbmFsbCBpdCBoYXMgMHgyYiBzdGVwcyB3aXRoIDBkQiBvZmZzZXQgMHgxNCkKKwkJICovCisJCXNuZF9oZGFfb3ZlcnJpZGVfYW1wX2NhcHMoY29kZWMsIDB4MTcsIEhEQV9JTlBVVCwKKwkJCQkJICAoMHgxNCA8PCBBQ19BTVBDQVBfT0ZGU0VUX1NISUZUKSB8CisJCQkJCSAgKDB4MTQgPDwgQUNfQU1QQ0FQX05VTV9TVEVQU19TSElGVCkgfAorCQkJCQkgICgweDA1IDw8IEFDX0FNUENBUF9TVEVQX1NJWkVfU0hJRlQpIHwKKwkJCQkJICAoMSA8PCBBQ19BTVBDQVBfTVVURV9TSElGVCkpOworCQlicmVhazsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE0NzcsNyArMTQ4Miw2IEBACiAJc3BlYyA9IGt6YWxsb2Moc2l6ZW9mKCpzcGVjKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzcGVjKQogCQlyZXR1cm4gLUVOT01FTTsKLQltdXRleF9pbml0KCZzcGVjLT5hbXBfbXV0ZXgpOwogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAogCXNwZWMtPm11bHRpb3V0Lm1heF9jaGFubmVscyA9IDI7CkBAIC0xNzM2LDcgKzE3NDAsNiBAQAogCXNwZWMgPSBremFsbG9jKHNpemVvZigqc3BlYyksIEdGUF9LRVJORUwpOwogCWlmICghc3BlYykKIAkJcmV0dXJuIC1FTk9NRU07Ci0JbXV0ZXhfaW5pdCgmc3BlYy0+YW1wX211dGV4KTsKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKIAljb2RlYy0+cGF0Y2hfb3BzID0gY29uZXhhbnRfcGF0Y2hfb3BzOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYwppbmRleCBiMGEyYTI2Li4yODA3YmM4IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYworKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYwpAQCAtMTYzLDYgKzE2MywxMCBAQAogCUFMQzY2Ml9MRU5PVk9fMTAxRSwKIAlBTEM2NjJfQVNVU19FRUVQQ19QNzAxLAogCUFMQzY2Ml9BU1VTX0VFRVBDX0VQMjAsCisJQUxDNjYzX0FTVVNfTTUxVkEsCisJQUxDNjYzX0FTVVNfRzcxViwKKwlBTEM2NjNfQVNVU19IMTMsCisJQUxDNjYzX0FTVVNfRzUwViwKIAlBTEM2NjJfQVVUTywKIAlBTEM2NjJfTU9ERUxfTEFTVCwKIH07CkBAIC0yMDUsNiArMjA5LDcgQEAKIAlBTEM4ODNfTUlUQUMsCiAJQUxDODgzX0NMRVZPX003MjAsCiAJQUxDODgzX0ZVSklUU1VfUEkyNTE1LAorCUFMQzg4M18zU1RfNmNoX0lOVEVMLAogCUFMQzg4M19BVVRPLAogCUFMQzg4M19NT0RFTF9MQVNULAogfTsKQEAgLTI4MCw2ICsyODUsMTAgQEAKICNpZmRlZiBDT05GSUdfU05EX0hEQV9QT1dFUl9TQVZFCiAJc3RydWN0IGhkYV9sb29wYmFja19jaGVjayBsb29wYmFjazsKICNlbmRpZgorCisJLyogZm9yIFBMTCBmaXggKi8KKwloZGFfbmlkX3QgcGxsX25pZDsKKwl1bnNpZ25lZCBpbnQgcGxsX2NvZWZfaWR4LCBwbGxfY29lZl9iaXQ7CiB9OwogCiAvKgpAQCAtNzQ3LDYgKzc1NiwzOCBAQAogCXsgfQogfTsKIAorLyoKKyAqIEZpeCBoYXJkd2FyZSBQTEwgaXNzdWUKKyAqIE9uIHNvbWUgY29kZWNzLCB0aGUgYW5hbG9nIFBMTCBnYXRpbmcgY29udHJvbCBtdXN0IGJlIG9mZiB3aGlsZQorICogdGhlIGRlZmF1bHQgdmFsdWUgaXMgMS4KKyAqLworc3RhdGljIHZvaWQgYWxjX2ZpeF9wbGwoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJc3RydWN0IGFsY19zcGVjICpzcGVjID0gY29kZWMtPnNwZWM7CisJdW5zaWduZWQgaW50IHZhbDsKKworCWlmICghc3BlYy0+cGxsX25pZCkKKwkJcmV0dXJuOworCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIHNwZWMtPnBsbF9uaWQsIDAsIEFDX1ZFUkJfU0VUX0NPRUZfSU5ERVgsCisJCQkgICAgc3BlYy0+cGxsX2NvZWZfaWR4KTsKKwl2YWwgPSBzbmRfaGRhX2NvZGVjX3JlYWQoY29kZWMsIHNwZWMtPnBsbF9uaWQsIDAsCisJCQkJIEFDX1ZFUkJfR0VUX1BST0NfQ09FRiwgMCk7CisJc25kX2hkYV9jb2RlY193cml0ZShjb2RlYywgc3BlYy0+cGxsX25pZCwgMCwgQUNfVkVSQl9TRVRfQ09FRl9JTkRFWCwKKwkJCSAgICBzcGVjLT5wbGxfY29lZl9pZHgpOworCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIHNwZWMtPnBsbF9uaWQsIDAsIEFDX1ZFUkJfU0VUX1BST0NfQ09FRiwKKwkJCSAgICB2YWwgJiB+KDEgPDwgc3BlYy0+cGxsX2NvZWZfYml0KSk7Cit9CisKK3N0YXRpYyB2b2lkIGFsY19maXhfcGxsX2luaXQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCisJCQkgICAgIHVuc2lnbmVkIGludCBjb2VmX2lkeCwgdW5zaWduZWQgaW50IGNvZWZfYml0KQoreworCXN0cnVjdCBhbGNfc3BlYyAqc3BlYyA9IGNvZGVjLT5zcGVjOworCXNwZWMtPnBsbF9uaWQgPSBuaWQ7CisJc3BlYy0+cGxsX2NvZWZfaWR4ID0gY29lZl9pZHg7CisJc3BlYy0+cGxsX2NvZWZfYml0ID0gY29lZl9iaXQ7CisJYWxjX2ZpeF9wbGwoY29kZWMpOworfQorCiBzdGF0aWMgdm9pZCBhbGNfc2t1X2F1dG9tdXRlKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQogewogCXN0cnVjdCBhbGNfc3BlYyAqc3BlYyA9IGNvZGVjLT5zcGVjOwpAQCAtNzc2LDYgKzgxNywyNCBAQAogCWFsY19za3VfYXV0b211dGUoY29kZWMpOwogfQogCisvKiBhZGRpdGlvbmFsIGluaXRpYWxpemF0aW9uIGZvciBBTEM4ODggdmFyaWFudHMgKi8KK3N0YXRpYyB2b2lkIGFsYzg4OF9jb2VmX2luaXQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHRtcDsKKworCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIDB4MjAsIDAsIEFDX1ZFUkJfU0VUX0NPRUZfSU5ERVgsIDApOworCXRtcCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgyMCwgMCwgQUNfVkVSQl9HRVRfUFJPQ19DT0VGLCAwKTsKKwlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCAweDIwLCAwLCBBQ19WRVJCX1NFVF9DT0VGX0lOREVYLCA3KTsKKwlpZiAoKHRtcCAmIDB4ZjApID09IDIpCisJCS8qIGFsYzg4OFMtVkMgKi8KKwkJc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDIwLCAwLAorCQkJCSAgIEFDX1ZFUkJfU0VUX1BST0NfQ09FRiwgMHg4MzApOworCSBlbHNlCisJCSAvKiBhbGM4ODgtVkIgKi8KKwkJIHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgyMCwgMCwKKwkJCQkgICAgQUNfVkVSQl9TRVRfUFJPQ19DT0VGLCAweDMwMzApOworfQorCiAvKiAzMi1iaXQgc3Vic3lzdGVtIElEIGZvciBCSU9TIGxvYWRpbmcgaW4gSEQgQXVkaW8gY29kZWMuCiAgKgkzMSB+IDE2IDoJTWFudWZhY3R1cmUgSUQKICAqCTE1IH4gOAk6CVNLVSBJRApAQCAtODUxLDggKzkxMCwxMCBAQAogCQljYXNlIDB4MTBlYzAyNjc6CiAJCWNhc2UgMHgxMGVjMDI2ODoKIAkJY2FzZSAweDEwZWMwMjY5OgorCQljYXNlIDB4MTBlYzA2NjA6CisJCWNhc2UgMHgxMGVjMDY2MjoKKwkJY2FzZSAweDEwZWMwNjYzOgogCQljYXNlIDB4MTBlYzA4NjI6Ci0JCWNhc2UgMHgxMGVjMDY2MjoJCiAJCWNhc2UgMHgxMGVjMDg4OToKIAkJCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIDB4MTQsIDAsCiAJCQkJCSAgICBBQ19WRVJCX1NFVF9FQVBEX0JUTEVOQUJMRSwgMik7CkBAIC04NzcsNyArOTM4LDYgQEAKIAkJY2FzZSAweDEwZWMwODgyOgogCQljYXNlIDB4MTBlYzA4ODM6CiAJCWNhc2UgMHgxMGVjMDg4NToKLQkJY2FzZSAweDEwZWMwODg4OgogCQljYXNlIDB4MTBlYzA4ODk6CiAJCQlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCAweDIwLCAwLAogCQkJCQkgICAgQUNfVkVSQl9TRVRfQ09FRl9JTkRFWCwgNyk7CkBAIC04ODksNiArOTQ5LDkgQEAKIAkJCQkJICAgIEFDX1ZFUkJfU0VUX1BST0NfQ09FRiwKIAkJCQkJICAgIHRtcCB8IDB4MjAxMCk7CiAJCQlicmVhazsKKwkJY2FzZSAweDEwZWMwODg4OgorCQkJYWxjODg4X2NvZWZfaW5pdChjb2RlYyk7CisJCQlicmVhazsKIAkJY2FzZSAweDEwZWMwMjY3OgogCQljYXNlIDB4MTBlYzAyNjg6CiAJCQlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCAweDIwLCAwLApAQCAtMjM3Myw2ICsyNDM2LDggQEAKIAlzdHJ1Y3QgYWxjX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKIAl1bnNpZ25lZCBpbnQgaTsKIAorCWFsY19maXhfcGxsKGNvZGVjKTsKKwogCWZvciAoaSA9IDA7IGkgPCBzcGVjLT5udW1faW5pdF92ZXJiczsgaSsrKQogCQlzbmRfaGRhX3NlcXVlbmNlX3dyaXRlKGNvZGVjLCBzcGVjLT5pbml0X3ZlcmJzW2ldKTsKIApAQCAtMzAwOSw2ICszMDc0LDcgQEAKIAlTTkRfUENJX1FVSVJLKDB4MTY5NSwgMHg0MDBkLCAiRVBvWCIsIEFMQzg4MF81U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTY5NSwgMHg0MDEyLCAiRVBveCBFUC01TERBIiwgQUxDODgwXzVTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwN2MsICJGU0MgRjE3MzQiLCBBTEM4ODBfRjE3MzQpLAorCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwOTQsICJGU0MgQW1pbG8gTTE0NTFHIiwgQUxDODgwX0ZVSklUU1UpLAogCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwYWMsICJGU0MiLCBBTEM4ODBfVU5JV0lMTCksCiAJU05EX1BDSV9RVUlSSygweDE3MzQsIDB4MTBiMCwgIkZ1aml0c3UiLCBBTEM4ODBfRlVKSVRTVSksCiAJU05EX1BDSV9RVUlSSygweDE4NTQsIDB4MDAxOCwgIkxHIExXMjAiLCBBTEM4ODBfTEdfTFcpLApAQCAtNTEwMSw3ICs1MTY3LDcgQEAKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgyODA4LCAiSFAgZDU3MDAiLCBBTEMyNjBfSFBfMzAxMyksCiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MjgwYSwgIkhQIGQ1NzUwIiwgQUxDMjYwX0hQXzMwMTMpLAogCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwMTAsICJIUCIsIEFMQzI2MF9IUF8zMDEzKSwKLQlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMDExLCAiSFAiLCBBTEMyNjBfSFApLAorCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwMTEsICJIUCIsIEFMQzI2MF9IUF8zMDEzKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMDEyLCAiSFAiLCBBTEMyNjBfSFBfMzAxMyksCiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MzAxMywgIkhQIiwgQUxDMjYwX0hQXzMwMTMpLAogCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwMTQsICJIUCIsIEFMQzI2MF9IUCksCkBAIC02MTI3LDYgKzYxOTMsNyBAQAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgxN2YsICJBc3VzIFA1TEQyIiwgQUxDODgyXzZTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgxZDgsICJBc3VzIFA1V0QiLCBBTEM4ODJfNlNUX0RJRyksCiAJU05EX1BDSV9RVUlSSygweDEwNWIsIDB4NjY2OCwgIkZveGNvbm4iLCBBTEM4ODJfNlNUX0RJRyksCisJU05EX1BDSV9RVUlSSygweDEwNmIsIDB4MDBhMCwgIkFwcGxlIGlNYWMgMjQnJyIsIEFMQzg4NV9JTUFDMjQpLAogCVNORF9QQ0lfUVVJUksoMHgxNDU4LCAweGEwMDIsICJHaWdhYnl0ZSBQMzUgRFMzUiIsIEFMQzg4Ml82U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTQ2MiwgMHgyOGZiLCAiVGFyZ2EgVDgiLCBBTEM4ODJfVEFSR0EpLCAvKiBNU0ktMTA0OSBUOCAgKi8KIAlTTkRfUENJX1FVSVJLKDB4MTQ2MiwgMHg2NjY4LCAiTVNJIiwgQUxDODgyXzZTVF9ESUcpLApAQCAtNjM1Myw3ICs2NDIwLDkgQEAKIAkJCWNvbnRpbnVlOwogCQl2cmVmID0gUElOX0lOOwogCQlpZiAoMSAvKmkgPD0gQVVUT19QSU5fRlJPTlRfTUlDKi8pIHsKLQkJCWlmIChzbmRfaGRhX3BhcmFtX3JlYWQoY29kZWMsIG5pZCwgQUNfUEFSX1BJTl9DQVApICYKKwkJCXVuc2lnbmVkIGludCBwaW5jYXA7CisJCQlwaW5jYXAgPSBzbmRfaGRhX3BhcmFtX3JlYWQoY29kZWMsIG5pZCwgQUNfUEFSX1BJTl9DQVApOworCQkJaWYgKChwaW5jYXAgPj4gQUNfUElOQ0FQX1ZSRUZfU0hJRlQpICYKIAkJCSAgICBBQ19QSU5DQVBfVlJFRl84MCkKIAkJCQl2cmVmID0gUElOX1ZSRUY4MDsKIAkJfQpAQCAtNjQ1MCw4ICs2NTE5LDkgQEAKIAkJY2FzZSAweDEwNmIxMDAwOiAvKiBpTWFjIDI0ICovCiAJCQlib2FyZF9jb25maWcgPSBBTEM4ODVfSU1BQzI0OwogCQkJYnJlYWs7Ci0JCWNhc2UgMHgxMDZiMDBhMTogLyogTWFjYm9vayAqLworCQljYXNlIDB4MTA2YjAwYTE6IC8qIE1hY2Jvb2sgKG1pZ2h0IGJlIHdyb25nIC0gUENJIFNTSUQ/KSAqLwogCQljYXNlIDB4MTA2YjJjMDA6IC8qIE1hY2Jvb2sgUHJvIHJldjMgKi8KKwkJY2FzZSAweDEwNmIzNjAwOiAvKiBNYWNib29rIDMuMSAqLwogCQkJYm9hcmRfY29uZmlnID0gQUxDODg1X01CUDM7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTY0ODUsMTQgKzY1NTUsMjAgQEAKIAlpZiAoYm9hcmRfY29uZmlnICE9IEFMQzg4Ml9BVVRPKQogCQlzZXR1cF9wcmVzZXQoc3BlYywgJmFsYzg4Ml9wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4MiBBbmFsb2ciOworCWlmIChjb2RlYy0+dmVuZG9yX2lkID09IDB4MTBlYzA4ODUpIHsKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4NSBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4NSBEaWdpdGFsIjsKKwl9IGVsc2UgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDODgyIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDODgyIERpZ2l0YWwiOworCX0KKwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmYWxjODgyX3BjbV9hbmFsb2dfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19jYXB0dXJlID0gJmFsYzg4Ml9wY21fYW5hbG9nX2NhcHR1cmU7CiAJLyogRklYTUU6IHNldHVwIERBQzUgKi8KIAkvKnNwZWMtPnN0cmVhbV9hbmFsb2dfYWx0X3BsYXliYWNrID0gJmFsYzg4MF9wY21fYW5hbG9nX2FsdF9wbGF5YmFjazsqLwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfYWx0X2NhcHR1cmUgPSAmYWxjODgwX3BjbV9hbmFsb2dfYWx0X2NhcHR1cmU7CiAKLQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4MiBEaWdpdGFsIjsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9wbGF5YmFjayA9ICZhbGM4ODJfcGNtX2RpZ2l0YWxfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2RpZ2l0YWxfY2FwdHVyZSA9ICZhbGM4ODJfcGNtX2RpZ2l0YWxfY2FwdHVyZTsKIApAQCAtNjU2OSw2ICs2NjQ1LDE2IEBACiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgaGRhX2lucHV0X211eCBhbGM4ODNfM3N0YWNrXzZjaF9pbnRlbCA9IHsKKwkubnVtX2l0ZW1zID0gNCwKKwkuaXRlbXMgPSB7CisJCXsgIk1pYyIsIDB4MSB9LAorCQl7ICJGcm9udCBNaWMiLCAweDAgfSwKKwkJeyAiTGluZSIsIDB4MiB9LAorCQl7ICJDRCIsIDB4NCB9LAorCX0sCit9OworCiBzdGF0aWMgc3RydWN0IGhkYV9pbnB1dF9tdXggYWxjODgzX2xlbm92b18xMDFlX2NhcHR1cmVfc291cmNlID0gewogCS5udW1faXRlbXMgPSAyLAogCS5pdGVtcyA9IHsKQEAgLTY2NTAsNiArNjczNiw0OCBAQAogfTsKIAogLyoKKyAqIDJjaCBtb2RlCisgKi8KK3N0YXRpYyBzdHJ1Y3QgaGRhX3ZlcmIgYWxjODgzXzNTVF9jaDJfaW50ZWxfaW5pdFtdID0geworCXsgMHgxOSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fVlJFRjgwIH0sCisJeyAweDE5LCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX01VVEUgfSwKKwl7IDB4MWEsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0lOIH0sCisJeyAweDFhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX01VVEUgfSwKKwl7IH0gLyogZW5kICovCit9OworCisvKgorICogNGNoIG1vZGUKKyAqLworc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM4ODNfM1NUX2NoNF9pbnRlbF9pbml0W10gPSB7CisJeyAweDE5LCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9WUkVGODAgfSwKKwl7IDB4MTksIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfTVVURSB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fT1VUIH0sCisJeyAweDFhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX1VOTVVURSB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDEgfSwKKwl7IH0gLyogZW5kICovCit9OworCisvKgorICogNmNoIG1vZGUKKyAqLworc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM4ODNfM1NUX2NoNl9pbnRlbF9pbml0W10gPSB7CisJeyAweDE5LCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9PVVQgfSwKKwl7IDB4MTksIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfVU5NVVRFIH0sCisJeyAweDE5LCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgwMiB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fT1VUIH0sCisJeyAweDFhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX1VOTVVURSB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDEgfSwKKwl7IH0gLyogZW5kICovCit9OworCitzdGF0aWMgc3RydWN0IGhkYV9jaGFubmVsX21vZGUgYWxjODgzXzNTVF82Y2hfaW50ZWxfbW9kZXNbM10gPSB7CisJeyAyLCBhbGM4ODNfM1NUX2NoMl9pbnRlbF9pbml0IH0sCisJeyA0LCBhbGM4ODNfM1NUX2NoNF9pbnRlbF9pbml0IH0sCisJeyA2LCBhbGM4ODNfM1NUX2NoNl9pbnRlbF9pbml0IH0sCit9OworCisvKgogICogNmNoIG1vZGUKICAqLwogc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM4ODNfc2l4c3RhY2tfY2g2X2luaXRbXSA9IHsKQEAgLTY4ODEsMTUgKzcwMDksNTQgQEAKIAl7IH0gLyogZW5kICovCiB9OwogCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWxjODgzXzNTVF82Y2hfaW50ZWxfbWl4ZXJbXSA9IHsKKwlIREFfQ09ERUNfVk9MVU1FKCJGcm9udCBQbGF5YmFjayBWb2x1bWUiLCAweDBjLCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9CSU5EX01VVEUoIkZyb250IFBsYXliYWNrIFN3aXRjaCIsIDB4MGMsIDIsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiU3Vycm91bmQgUGxheWJhY2sgVm9sdW1lIiwgMHgwZCwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQklORF9NVVRFKCJTdXJyb3VuZCBQbGF5YmFjayBTd2l0Y2giLCAweDBkLCAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUVfTU9OTygiQ2VudGVyIFBsYXliYWNrIFZvbHVtZSIsIDB4MGUsIDEsIDB4MCwKKwkJCSAgICAgIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19WT0xVTUVfTU9OTygiTEZFIFBsYXliYWNrIFZvbHVtZSIsIDB4MGUsIDIsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0JJTkRfTVVURV9NT05PKCJDZW50ZXIgUGxheWJhY2sgU3dpdGNoIiwgMHgwZSwgMSwgMiwgSERBX0lOUFVUKSwKKwlIREFfQklORF9NVVRFX01PTk8oIkxGRSBQbGF5YmFjayBTd2l0Y2giLCAweDBlLCAyLCAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJIZWFkcGhvbmUgUGxheWJhY2sgU3dpdGNoIiwgMHgxNSwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfVk9MVU1FKCJDRCBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDA0LCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJDRCBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDA0LCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIkxpbmUgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgwMiwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiTGluZSBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIk1pYyBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDEsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiTWljIEJvb3N0IiwgMHgxOSwgMCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MSwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfVk9MVU1FKCJGcm9udCBNaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIkZyb250IE1pYyBCb29zdCIsIDB4MTgsIDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX01VVEUoIkZyb250IE1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiUEMgU3BlYWtlciBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDA1LCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJQQyBTcGVha2VyIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MDUsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiQ2FwdHVyZSBWb2x1bWUiLCAweDA4LCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX01VVEUoIkNhcHR1cmUgU3dpdGNoIiwgMHgwOCwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUVfSURYKCJDYXB0dXJlIFZvbHVtZSIsIDEsIDB4MDksIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURV9JRFgoIkNhcHR1cmUgU3dpdGNoIiwgMSwgMHgwOSwgMHgwLCBIREFfSU5QVVQpLAorCXsKKwkJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJCS8qIC5uYW1lID0gIkNhcHR1cmUgU291cmNlIiwgKi8KKwkJLm5hbWUgPSAiSW5wdXQgU291cmNlIiwKKwkJLmNvdW50ID0gMiwKKwkJLmluZm8gPSBhbGM4ODNfbXV4X2VudW1faW5mbywKKwkJLmdldCA9IGFsYzg4M19tdXhfZW51bV9nZXQsCisJCS5wdXQgPSBhbGM4ODNfbXV4X2VudW1fcHV0LAorCX0sCisJeyB9IC8qIGVuZCAqLworfTsKKwogc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFsYzg4M19maXZlc3RhY2tfbWl4ZXJbXSA9IHsKIAlIREFfQ09ERUNfVk9MVU1FKCJGcm9udCBQbGF5YmFjayBWb2x1bWUiLCAweDBjLCAweDAsIEhEQV9PVVRQVVQpLAotCUhEQV9DT0RFQ19NVVRFKCJGcm9udCBQbGF5YmFjayBTd2l0Y2giLCAweDE0LCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9CSU5EX01VVEUoIkZyb250IFBsYXliYWNrIFN3aXRjaCIsIDB4MGMsIDIsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX1ZPTFVNRSgiU3Vycm91bmQgUGxheWJhY2sgVm9sdW1lIiwgMHgwZCwgMHgwLCBIREFfT1VUUFVUKSwKLQlIREFfQ09ERUNfTVVURSgiU3Vycm91bmQgUGxheWJhY2sgU3dpdGNoIiwgMHgxNSwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQklORF9NVVRFKCJTdXJyb3VuZCBQbGF5YmFjayBTd2l0Y2giLCAweDBkLCAyLCBIREFfSU5QVVQpLAogCUhEQV9DT0RFQ19WT0xVTUVfTU9OTygiQ2VudGVyIFBsYXliYWNrIFZvbHVtZSIsIDB4MGUsIDEsIDB4MCwgSERBX09VVFBVVCksCiAJSERBX0NPREVDX1ZPTFVNRV9NT05PKCJMRkUgUGxheWJhY2sgVm9sdW1lIiwgMHgwZSwgMiwgMHgwLCBIREFfT1VUUFVUKSwKLQlIREFfQ09ERUNfTVVURV9NT05PKCJDZW50ZXIgUGxheWJhY2sgU3dpdGNoIiwgMHgxNiwgMSwgMHgwLCBIREFfT1VUUFVUKSwKLQlIREFfQ09ERUNfTVVURV9NT05PKCJMRkUgUGxheWJhY2sgU3dpdGNoIiwgMHgxNiwgMiwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQklORF9NVVRFX01PTk8oIkNlbnRlciBQbGF5YmFjayBTd2l0Y2giLCAweDBlLCAxLCAyLCBIREFfSU5QVVQpLAorCUhEQV9CSU5EX01VVEVfTU9OTygiTEZFIFBsYXliYWNrIFN3aXRjaCIsIDB4MGUsIDIsIDIsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX01VVEUoIkhlYWRwaG9uZSBQbGF5YmFjayBTd2l0Y2giLCAweDFiLCAweDAsIEhEQV9PVVRQVVQpLAogCUhEQV9DT0RFQ19WT0xVTUUoIkNEIFBsYXliYWNrIFZvbHVtZSIsIDB4MGIsIDB4MDQsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX01VVEUoIkNEIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MDQsIEhEQV9JTlBVVCksCkBAIC03NzI5LDYgKzc4OTYsNyBAQAogCVtBTEM4ODNfTUlUQUNdCQk9ICJtaXRhYyIsCiAJW0FMQzg4M19DTEVWT19NNzIwXQk9ICJjbGV2by1tNzIwIiwKIAlbQUxDODgzX0ZVSklUU1VfUEkyNTE1XSA9ICJmdWppdHN1LXBpMjUxNSIsCisJW0FMQzg4M18zU1RfNmNoX0lOVEVMXQk9ICIzc3RhY2stNmNoLWludGVsIiwKIAlbQUxDODgzX0FVVE9dCQk9ICJhdXRvIiwKIH07CiAKQEAgLTc3ODYsNiArNzk1NCw4IEBACiAJU05EX1BDSV9RVUlSSygweDE3YzAsIDB4NDA3MSwgIk1FRElPTiBNRDIiLCBBTEM4ODNfTUVESU9OX01EMiksCiAJU05EX1BDSV9RVUlSSygweDE3ZjIsIDB4NTAwMCwgIkFsYmF0cm9uIEtJNjkwLUFNMiIsIEFMQzg4M182U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTk5MSwgMHg1NjI1LCAiSGFpZXIgVzY2IiwgQUxDODgzX0hBSUVSX1c2NiksCisJU05EX1BDSV9RVUlSSygweDgwODYsIDB4MDAwMSwgIkRHMzNCVUMiLCBBTEM4ODNfM1NUXzZjaF9JTlRFTCksCisJU05EX1BDSV9RVUlSSygweDgwODYsIDB4MDAwMiwgIkRHMzNGQkMiLCBBTEM4ODNfM1NUXzZjaF9JTlRFTCksCiAJU05EX1BDSV9RVUlSSygweDgwODYsIDB4ZDYwMSwgIkQxMDJHR0MiLCBBTEM4ODNfM1NUXzZjaCksCiAJe30KIH07CkBAIC03ODI0LDYgKzc5OTQsMTggQEAKIAkJLm5lZWRfZGFjX2ZpeCA9IDEsCiAJCS5pbnB1dF9tdXggPSAmYWxjODgzX2NhcHR1cmVfc291cmNlLAogCX0sCisJW0FMQzg4M18zU1RfNmNoX0lOVEVMXSA9IHsKKwkJLm1peGVycyA9IHsgYWxjODgzXzNTVF82Y2hfaW50ZWxfbWl4ZXIsIGFsYzg4M19jaG1vZGVfbWl4ZXIgfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzg4M19pbml0X3ZlcmJzIH0sCisJCS5udW1fZGFjcyA9IEFSUkFZX1NJWkUoYWxjODgzX2RhY19uaWRzKSwKKwkJLmRhY19uaWRzID0gYWxjODgzX2RhY19uaWRzLAorCQkuZGlnX291dF9uaWQgPSBBTEM4ODNfRElHT1VUX05JRCwKKwkJLmRpZ19pbl9uaWQgPSBBTEM4ODNfRElHSU5fTklELAorCQkubnVtX2NoYW5uZWxfbW9kZSA9IEFSUkFZX1NJWkUoYWxjODgzXzNTVF82Y2hfaW50ZWxfbW9kZXMpLAorCQkuY2hhbm5lbF9tb2RlID0gYWxjODgzXzNTVF82Y2hfaW50ZWxfbW9kZXMsCisJCS5uZWVkX2RhY19maXggPSAxLAorCQkuaW5wdXRfbXV4ID0gJmFsYzg4M18zc3RhY2tfNmNoX2ludGVsLAorCX0sCiAJW0FMQzg4M182U1RfRElHXSA9IHsKIAkJLm1peGVycyA9IHsgYWxjODgzX2Jhc2VfbWl4ZXIsIGFsYzg4M19jaG1vZGVfbWl4ZXIgfSwKIAkJLmluaXRfdmVyYnMgPSB7IGFsYzg4M19pbml0X3ZlcmJzIH0sCkBAIC04MTQ1LDYgKzgzMjcsOCBAQAogCiAJY29kZWMtPnNwZWMgPSBzcGVjOwogCisJYWxjX2ZpeF9wbGxfaW5pdChjb2RlYywgMHgyMCwgMHgwYSwgMTApOworCiAJYm9hcmRfY29uZmlnID0gc25kX2hkYV9jaGVja19ib2FyZF9jb25maWcoY29kZWMsIEFMQzg4M19NT0RFTF9MQVNULAogCQkJCQkJICBhbGM4ODNfbW9kZWxzLAogCQkJCQkJICBhbGM4ODNfY2ZnX3RibCk7CkBAIC04MTcxLDEyICs4MzU1LDI1IEBACiAJaWYgKGJvYXJkX2NvbmZpZyAhPSBBTEM4ODNfQVVUTykKIAkJc2V0dXBfcHJlc2V0KHNwZWMsICZhbGM4ODNfcHJlc2V0c1tib2FyZF9jb25maWddKTsKIAotCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM4ODMgQW5hbG9nIjsKKwlzd2l0Y2ggKGNvZGVjLT52ZW5kb3JfaWQpIHsKKwljYXNlIDB4MTBlYzA4ODg6CisJCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM4ODggQW5hbG9nIjsKKwkJc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM4ODggRGlnaXRhbCI7CisJCWJyZWFrOworCWNhc2UgMHgxMGVjMDg4OToKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4OSBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4OSBEaWdpdGFsIjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4MyBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4MyBEaWdpdGFsIjsKKwkJYnJlYWs7CisJfQorCiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19wbGF5YmFjayA9ICZhbGM4ODNfcGNtX2FuYWxvZ19wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2NhcHR1cmUgPSAmYWxjODgzX3BjbV9hbmFsb2dfY2FwdHVyZTsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2FsdF9jYXB0dXJlID0gJmFsYzg4M19wY21fYW5hbG9nX2FsdF9jYXB0dXJlOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM4ODMgRGlnaXRhbCI7CiAJc3BlYy0+c3RyZWFtX2RpZ2l0YWxfcGxheWJhY2sgPSAmYWxjODgzX3BjbV9kaWdpdGFsX3BsYXliYWNrOwogCXNwZWMtPnN0cmVhbV9kaWdpdGFsX2NhcHR1cmUgPSAmYWxjODgzX3BjbV9kaWdpdGFsX2NhcHR1cmU7CiAKQEAgLTgxODksNiArODM4Niw5IEBACiAJY29kZWMtPnBhdGNoX29wcyA9IGFsY19wYXRjaF9vcHM7CiAJaWYgKGJvYXJkX2NvbmZpZyA9PSBBTEM4ODNfQVVUTykKIAkJc3BlYy0+aW5pdF9ob29rID0gYWxjODgzX2F1dG9faW5pdDsKKwllbHNlIGlmIChjb2RlYy0+dmVuZG9yX2lkID09IDB4MTBlYzA4ODgpCisJCXNwZWMtPmluaXRfaG9vayA9IGFsYzg4OF9jb2VmX2luaXQ7CisKICNpZmRlZiBDT05GSUdfU05EX0hEQV9QT1dFUl9TQVZFCiAJaWYgKCFzcGVjLT5sb29wYmFjay5hbXBsaXN0KQogCQlzcGVjLT5sb29wYmFjay5hbXBsaXN0ID0gYWxjODgzX2xvb3BiYWNrczsKQEAgLTk1MjIsNiArOTcyMiw4IEBACiAJU05EX1BDSV9RVUlSSygweDEwNGQsIDB4ODIwZiwgIlNvbnkgQVNTQU1EIiwgQUxDMjYyX1NPTllfQVNTQU1EKSwKIAlTTkRfUENJX1FVSVJLKDB4MTA0ZCwgMHg5MDBlLCAiU29ueSBBU1NBTUQiLCBBTEMyNjJfU09OWV9BU1NBTUQpLAogCVNORF9QQ0lfUVVJUksoMHgxMDRkLCAweDkwMTUsICJTb255IDB4OTAxNSIsIEFMQzI2Ml9TT05ZX0FTU0FNRCksCisJU05EX1BDSV9RVUlSSygweDExNzksIDB4MDAwMSwgIlRvc2hpYmEgZHluYWJvb2sgU1MgUlgxIiwKKwkJICAgICAgQUxDMjYyX1NPTllfQVNTQU1EKSwKIAlTTkRfUENJX1FVSVJLKDB4MTBjZiwgMHgxMzk3LCAiRnVqaXRzdSIsIEFMQzI2Ml9GVUpJVFNVKSwKIAlTTkRfUENJX1FVSVJLKDB4MTBjZiwgMHgxNDJkLCAiRnVqaXRzdSBMaWZlYm9vayBFODQxMCIsIEFMQzI2Ml9GVUpJVFNVKSwKIAlTTkRfUENJX1FVSVJLKDB4MTQ0ZCwgMHhjMDMyLCAiU2Ftc3VuZyBRMSBVbHRyYSIsIEFMQzI2Ml9VTFRSQSksCkBAIC05NzI5LDYgKzk5MzEsOCBAQAogCX0KICNlbmRpZgogCisJYWxjX2ZpeF9wbGxfaW5pdChjb2RlYywgMHgyMCwgMHgwYSwgMTApOworCiAJYm9hcmRfY29uZmlnID0gc25kX2hkYV9jaGVja19ib2FyZF9jb25maWcoY29kZWMsIEFMQzI2Ml9NT0RFTF9MQVNULAogCQkJCQkJICBhbGMyNjJfbW9kZWxzLAogCQkJCQkJICBhbGMyNjJfY2ZnX3RibCk7CkBAIC0xMDY3NCwxMiArMTA4NzgsMTggQEAKIAlpZiAoYm9hcmRfY29uZmlnICE9IEFMQzI2OF9BVVRPKQogCQlzZXR1cF9wcmVzZXQoc3BlYywgJmFsYzI2OF9wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzI2OCBBbmFsb2ciOworCWlmIChjb2RlYy0+dmVuZG9yX2lkID09IDB4MTBlYzAyNjcpIHsKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzI2NyBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzI2NyBEaWdpdGFsIjsKKwl9IGVsc2UgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDMjY4IEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDMjY4IERpZ2l0YWwiOworCX0KKwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmYWxjMjY4X3BjbV9hbmFsb2dfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19jYXB0dXJlID0gJmFsYzI2OF9wY21fYW5hbG9nX2NhcHR1cmU7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19hbHRfY2FwdHVyZSA9ICZhbGMyNjhfcGNtX2FuYWxvZ19hbHRfY2FwdHVyZTsKIAotCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDMjY4IERpZ2l0YWwiOwogCXNwZWMtPnN0cmVhbV9kaWdpdGFsX3BsYXliYWNrID0gJmFsYzI2OF9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAogCWlmICghcXVlcnlfYW1wX2NhcHMoY29kZWMsIDB4MWQsIEhEQV9JTlBVVCkpCkBAIC0xMTAzMyw2ICsxMTI0Myw4IEBACiAKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKKwlhbGNfZml4X3BsbF9pbml0KGNvZGVjLCAweDIwLCAweDA0LCAxNSk7CisKIAlib2FyZF9jb25maWcgPSBzbmRfaGRhX2NoZWNrX2JvYXJkX2NvbmZpZyhjb2RlYywgQUxDMjY5X01PREVMX0xBU1QsCiAJCQkJCQkgIGFsYzI2OV9tb2RlbHMsCiAJCQkJCQkgIGFsYzI2OV9jZmdfdGJsKTsKQEAgLTEyNjMxLDYgKzEyODQzLDEyIEBACiAJeyB9CiB9OwogCitzdGF0aWMgc3RydWN0IGhkYV92ZXJiIGFsYzY2MHZkX2VhcGRfdmVyYnNbXSA9IHsKKwl7MHgxNCwgQUNfVkVSQl9TRVRfRUFQRF9CVExFTkFCTEUsIDJ9LAorCXsweDE1LCBBQ19WRVJCX1NFVF9FQVBEX0JUTEVOQUJMRSwgMn0sCisJeyB9Cit9OworCiBzdGF0aWMgc3RydWN0IGhkYV92ZXJiIGFsYzg2MXZkX2xlbm92b191bnNvbF92ZXJic1tdID0gewogCXsweDBjLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfSU5fVU5NVVRFKDApfSwKIAl7MHgwYywgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgxKX0sCkBAIC0xMjc4Niw2ICsxMzAwNCw3IEBACiAJU05EX1BDSV9RVUlSSygweDE1NjUsIDB4ODIwZCwgIkJpb3N0YXIgTkY2MVMgU0UiLCBBTEM4NjFWRF82U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTdhYSwgMHgyMDY2LCAiTGVub3ZvIiwgQUxDODYxVkRfTEVOT1ZPKSwKIAlTTkRfUENJX1FVSVJLKDB4MTdhYSwgMHgzODAyLCAiTGVub3ZvIDMwMDAgQzIwMCIsIEFMQzg2MVZEX0xFTk9WTyksCisJU05EX1BDSV9RVUlSSygweDE3YWEsIDB4Mzg0ZSwgIkxlbm92byAzMDAwIE4yMDAiLCBBTEM4NjFWRF9MRU5PVk8pLAogCVNORF9QQ0lfUVVJUksoMHgxODQ5LCAweDA4NjIsICJBU1JvY2sgSzhORjZHLVZTVEEiLCBBTEM4NjFWRF82U1RfRElHKSwKIAl7fQogfTsKQEAgLTEzMTY4LDExICsxMzM4NywxOSBAQAogCWlmIChib2FyZF9jb25maWcgIT0gQUxDODYxVkRfQVVUTykKIAkJc2V0dXBfcHJlc2V0KHNwZWMsICZhbGM4NjF2ZF9wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg2MVZEIEFuYWxvZyI7CisJaWYgKGNvZGVjLT52ZW5kb3JfaWQgPT0gMHgxMGVjMDY2MCkgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDNjYwLVZEIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDNjYwLVZEIERpZ2l0YWwiOworCQkvKiBhbHdheXMgdHVybiBvbiBFQVBEICovCisJCXNwZWMtPmluaXRfdmVyYnNbc3BlYy0+bnVtX2luaXRfdmVyYnMrK10gPSBhbGM2NjB2ZF9lYXBkX3ZlcmJzOworCX0gZWxzZSB7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM4NjFWRCBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg2MVZEIERpZ2l0YWwiOworCX0KKwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmYWxjODYxdmRfcGNtX2FuYWxvZ19wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2NhcHR1cmUgPSAmYWxjODYxdmRfcGNtX2FuYWxvZ19jYXB0dXJlOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM4NjFWRCBEaWdpdGFsIjsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9wbGF5YmFjayA9ICZhbGM4NjF2ZF9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9jYXB0dXJlID0gJmFsYzg2MXZkX3BjbV9kaWdpdGFsX2NhcHR1cmU7CiAKQEAgLTEzMjUxLDYgKzEzNDc4LDIzIEBACiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgaGRhX2lucHV0X211eCBhbGM2NjNfY2FwdHVyZV9zb3VyY2UgPSB7CisJLm51bV9pdGVtcyA9IDMsCisJLml0ZW1zID0geworCQl7ICJNaWMiLCAweDAgfSwKKwkJeyAiRnJvbnQgTWljIiwgMHgxIH0sCisJCXsgIkxpbmUiLCAweDIgfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBoZGFfaW5wdXRfbXV4IGFsYzY2M19tNTF2YV9jYXB0dXJlX3NvdXJjZSA9IHsKKwkubnVtX2l0ZW1zID0gMiwKKwkuaXRlbXMgPSB7CisJCXsgIkV4dC1NaWMiLCAweDAgfSwKKwkJeyAiRC1NaWMiLCAweDkgfSwKKwl9LAorfTsKKwogI2RlZmluZSBhbGM2NjJfbXV4X2VudW1faW5mbyBhbGNfbXV4X2VudW1faW5mbwogI2RlZmluZSBhbGM2NjJfbXV4X2VudW1fZ2V0IGFsY19tdXhfZW51bV9nZXQKICNkZWZpbmUgYWxjNjYyX211eF9lbnVtX3B1dCBhbGM4ODJfbXV4X2VudW1fcHV0CkBAIC0xMzQzMSw2ICsxMzY3NSw0NCBAQAogCXsgfSAvKiBlbmQgKi8KIH07CiAKK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhbGM2NjNfbTUxdmFfbWl4ZXJbXSA9IHsKKwlIREFfQ09ERUNfVk9MVU1FKCJTcGVha2VyIFBsYXliYWNrIFZvbHVtZSIsIDB4MDIsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0NPREVDX01VVEUoIlNwZWFrZXIgUGxheWJhY2sgU3dpdGNoIiwgMHgxNCwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiSGVhZHBob25lIFBsYXliYWNrIFN3aXRjaCIsIDB4MjEsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiTWljIFBsYXliYWNrIFZvbHVtZSIsIDB4MGIsIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiRE1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDIzLCAweDksIEhEQV9JTlBVVCksCisJeyB9IC8qIGVuZCAqLworfTsKKworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFsYzY2M19nNzF2X21peGVyW10gPSB7CisJSERBX0NPREVDX1ZPTFVNRSgiU3BlYWtlciBQbGF5YmFjayBWb2x1bWUiLCAweDAyLCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJTcGVha2VyIFBsYXliYWNrIFN3aXRjaCIsIDB4MTQsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiRnJvbnQgUGxheWJhY2sgVm9sdW1lIiwgMHgwMywgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiRnJvbnQgUGxheWJhY2sgU3dpdGNoIiwgMHgxNSwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiSGVhZHBob25lIFBsYXliYWNrIFN3aXRjaCIsIDB4MjEsIDB4MCwgSERBX09VVFBVVCksCisKKwlIREFfQ09ERUNfVk9MVU1FKCJNaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJNaWMgUGxheWJhY2sgU3dpdGNoIiwgMHgwYiwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoImktTWljIFBsYXliYWNrIFZvbHVtZSIsIDB4MGIsIDB4MSwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiaS1NaWMgUGxheWJhY2sgU3dpdGNoIiwgMHgwYiwgMHgxLCBIREFfSU5QVVQpLAorCXsgfSAvKiBlbmQgKi8KK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhbGM2NjNfZzUwdl9taXhlcltdID0geworCUhEQV9DT0RFQ19WT0xVTUUoIlNwZWFrZXIgUGxheWJhY2sgVm9sdW1lIiwgMHgwMiwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiU3BlYWtlciBQbGF5YmFjayBTd2l0Y2giLCAweDE0LCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJIZWFkcGhvbmUgUGxheWJhY2sgU3dpdGNoIiwgMHgyMSwgMHgwLCBIREFfT1VUUFVUKSwKKworCUhEQV9DT0RFQ19WT0xVTUUoIk1pYyBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX01VVEUoIk1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiaS1NaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgxLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJpLU1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDEsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiTGluZSBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJMaW5lIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MDIsIEhEQV9JTlBVVCksCisJeyB9IC8qIGVuZCAqLworfTsKKwogc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFsYzY2Ml9jaG1vZGVfbWl4ZXJbXSA9IHsKIAl7CiAJCS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLApAQCAtMTM1MDEsNiArMTM3ODMsMTEgQEAKIAl7MHgyMywgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgxKX0sCiAJezB4MjMsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoMil9LAogCXsweDIzLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfSU5fVU5NVVRFKDQpfSwKKworCS8qIGFsd2F5cyB0cnVuIG9uIEVBUEQgKi8KKwl7MHgxNCwgQUNfVkVSQl9TRVRfRUFQRF9CVExFTkFCTEUsIDJ9LAorCXsweDE1LCBBQ19WRVJCX1NFVF9FQVBEX0JUTEVOQUJMRSwgMn0sCisKIAl7IH0KIH07CiAKQEAgLTEzNTcxLDYgKzEzODU4LDQzIEBACiAJeyB9CiB9OwogCitzdGF0aWMgc3RydWN0IGhkYV92ZXJiIGFsYzY2M19tNTF2YV9pbml0X3ZlcmJzW10gPSB7CisJezB4MjEsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0hQfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX09VVF9VTk1VVEV9LAorCXsweDIxLCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgwMH0sCS8qIEhlYWRwaG9uZSAqLworCisJezB4MjMsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoOSl9LAorCisJezB4MTgsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU4gfCBBTEM4ODBfTUlDX0VWRU5UfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfVU5TT0xJQ0lURURfRU5BQkxFLCBBQ19VU1JTUF9FTiB8IEFMQzg4MF9IUF9FVkVOVH0sCisJe30KK307CisKK3N0YXRpYyBzdHJ1Y3QgaGRhX3ZlcmIgYWxjNjYzX2c3MXZfaW5pdF92ZXJic1tdID0geworCXsweDE1LCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9IUH0sCisJLyogezB4MTUsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfVU5NVVRFfSwgKi8KKwkvKiB7MHgxNSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDF9LCAqLyAvKiBIZWFkcGhvbmUgKi8KKworCXsweDIxLCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9IUH0sCisJezB4MjEsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfVU5NVVRFfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDB9LAkvKiBIZWFkcGhvbmUgKi8KKworCXsweDE1LCBBQ19WRVJCX1NFVF9VTlNPTElDSVRFRF9FTkFCTEUsIEFDX1VTUlNQX0VOfEFMQzg4MF9GUk9OVF9FVkVOVH0sCisJezB4MTgsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU58QUxDODgwX01JQ19FVkVOVH0sCisJezB4MjEsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU58QUxDODgwX0hQX0VWRU5UfSwKKwl7fQorfTsKKworc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM2NjNfZzUwdl9pbml0X3ZlcmJzW10gPSB7CisJezB4MjEsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0hQfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX09VVF9VTk1VVEV9LAorCXsweDIxLCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgwMH0sCS8qIEhlYWRwaG9uZSAqLworCisJezB4MTgsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU4gfCBBTEM4ODBfTUlDX0VWRU5UfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfVU5TT0xJQ0lURURfRU5BQkxFLCBBQ19VU1JTUF9FTiB8IEFMQzg4MF9IUF9FVkVOVH0sCisJe30KK307CisKIC8qIGNhcHR1cmUgbWl4ZXIgZWxlbWVudHMgKi8KIHN0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhbGM2NjJfY2FwdHVyZV9taXhlcltdID0gewogCUhEQV9DT0RFQ19WT0xVTUUoIkNhcHR1cmUgVm9sdW1lIiwgMHgwOSwgMHgwLCBIREFfSU5QVVQpLApAQCAtMTM2OTIsNiArMTQwMTYsMTI1IEBACiAJYWxjNjYyX2VlZXBjX2VwMjBfYXV0b211dGUoY29kZWMpOwogfQogCitzdGF0aWMgdm9pZCBhbGM2NjNfbTUxdmFfc3BlYWtlcl9hdXRvbXV0ZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKK3sKKwl1bnNpZ25lZCBpbnQgcHJlc2VudDsKKwl1bnNpZ25lZCBjaGFyIGJpdHM7CisKKwlwcmVzZW50ID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDIxLCAwLAorCQkJCSAgICAgQUNfVkVSQl9HRVRfUElOX1NFTlNFLCAwKQorCQkmIEFDX1BJTlNFTlNFX1BSRVNFTkNFOworCWJpdHMgPSBwcmVzZW50ID8gSERBX0FNUF9NVVRFIDogMDsKKwlzbmRfaGRhX2NvZGVjX2FtcF9zdGVyZW8oY29kZWMsIDB4MTQsIEhEQV9PVVRQVVQsIDAsCisJCQkJIEhEQV9BTVBfTVVURSwgYml0cyk7Cit9CisKK3N0YXRpYyB2b2lkIGFsYzY2M19tNTF2YV9taWNfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisKKwlwcmVzZW50ID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDE4LCAwLAorCQkJCSAgICAgQUNfVkVSQl9HRVRfUElOX1NFTlNFLCAwKQorCQkmIEFDX1BJTlNFTlNFX1BSRVNFTkNFOworCXNuZF9oZGFfY29kZWNfd3JpdGVfY2FjaGUoY29kZWMsIDB4MjIsIDAsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsCisJCQkgICAgMHg3MDAwIHwgKDB4MDAgPDwgOCkgfCAocHJlc2VudCA/IDAgOiAweDgwKSk7CisJc25kX2hkYV9jb2RlY193cml0ZV9jYWNoZShjb2RlYywgMHgyMywgMCwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwKKwkJCSAgICAweDcwMDAgfCAoMHgwMCA8PCA4KSB8IChwcmVzZW50ID8gMCA6IDB4ODApKTsKKwlzbmRfaGRhX2NvZGVjX3dyaXRlX2NhY2hlKGNvZGVjLCAweDIyLCAwLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLAorCQkJICAgIDB4NzAwMCB8ICgweDA5IDw8IDgpIHwgKHByZXNlbnQgPyAweDgwIDogMCkpOworCXNuZF9oZGFfY29kZWNfd3JpdGVfY2FjaGUoY29kZWMsIDB4MjMsIDAsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsCisJCQkgICAgMHg3MDAwIHwgKDB4MDkgPDwgOCkgfCAocHJlc2VudCA/IDB4ODAgOiAwKSk7Cit9CisKK3N0YXRpYyB2b2lkIGFsYzY2M19tNTF2YV91bnNvbF9ldmVudChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkJICAgdW5zaWduZWQgaW50IHJlcykKK3sKKwlzd2l0Y2ggKHJlcyA+PiAyNikgeworCWNhc2UgQUxDODgwX0hQX0VWRU5UOgorCQlhbGM2NjNfbTUxdmFfc3BlYWtlcl9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUxDODgwX01JQ19FVkVOVDoKKwkJYWxjNjYzX201MXZhX21pY19hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQgYWxjNjYzX201MXZhX2luaXRob29rKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQoreworCWFsYzY2M19tNTF2YV9zcGVha2VyX2F1dG9tdXRlKGNvZGVjKTsKKwlhbGM2NjNfbTUxdmFfbWljX2F1dG9tdXRlKGNvZGVjKTsKK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c3MXZfaHBfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisJdW5zaWduZWQgY2hhciBiaXRzOworCisJcHJlc2VudCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgyMSwgMCwKKwkJCQkgICAgIEFDX1ZFUkJfR0VUX1BJTl9TRU5TRSwgMCkKKwkJJiBBQ19QSU5TRU5TRV9QUkVTRU5DRTsKKwliaXRzID0gcHJlc2VudCA/IEhEQV9BTVBfTVVURSA6IDA7CisJc25kX2hkYV9jb2RlY19hbXBfc3RlcmVvKGNvZGVjLCAweDE1LCBIREFfT1VUUFVULCAwLAorCQkJCSBIREFfQU1QX01VVEUsIGJpdHMpOworCXNuZF9oZGFfY29kZWNfYW1wX3N0ZXJlbyhjb2RlYywgMHgxNCwgSERBX09VVFBVVCwgMCwKKwkJCQkgSERBX0FNUF9NVVRFLCBiaXRzKTsKK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c3MXZfZnJvbnRfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisJdW5zaWduZWQgY2hhciBiaXRzOworCisJcHJlc2VudCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgxNSwgMCwKKwkJCQkgICAgIEFDX1ZFUkJfR0VUX1BJTl9TRU5TRSwgMCkKKwkJJiBBQ19QSU5TRU5TRV9QUkVTRU5DRTsKKwliaXRzID0gcHJlc2VudCA/IEhEQV9BTVBfTVVURSA6IDA7CisJc25kX2hkYV9jb2RlY19hbXBfc3RlcmVvKGNvZGVjLCAweDE0LCBIREFfT1VUUFVULCAwLAorCQkJCSBIREFfQU1QX01VVEUsIGJpdHMpOworfQorCitzdGF0aWMgdm9pZCBhbGM2NjNfZzcxdl91bnNvbF9ldmVudChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkJICAgdW5zaWduZWQgaW50IHJlcykKK3sKKwlzd2l0Y2ggKHJlcyA+PiAyNikgeworCWNhc2UgQUxDODgwX0hQX0VWRU5UOgorCQlhbGM2NjNfZzcxdl9ocF9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUxDODgwX0ZST05UX0VWRU5UOgorCQlhbGM2NjNfZzcxdl9mcm9udF9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUxDODgwX01JQ19FVkVOVDoKKwkJYWxjNjYyX2VlZXBjX21pY19hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c3MXZfaW5pdGhvb2soc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJYWxjNjYzX2c3MXZfZnJvbnRfYXV0b211dGUoY29kZWMpOworCWFsYzY2M19nNzF2X2hwX2F1dG9tdXRlKGNvZGVjKTsKKwlhbGM2NjJfZWVlcGNfbWljX2F1dG9tdXRlKGNvZGVjKTsKK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c1MHZfdW5zb2xfZXZlbnQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCisJCQkJCSAgIHVuc2lnbmVkIGludCByZXMpCit7CisJc3dpdGNoIChyZXMgPj4gMjYpIHsKKwljYXNlIEFMQzg4MF9IUF9FVkVOVDoKKwkJYWxjNjYzX201MXZhX3NwZWFrZXJfYXV0b211dGUoY29kZWMpOworCQlicmVhazsKKwljYXNlIEFMQzg4MF9NSUNfRVZFTlQ6CisJCWFsYzY2Ml9lZWVwY19taWNfYXV0b211dGUoY29kZWMpOworCQlicmVhazsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGFsYzY2M19nNTB2X2luaXRob29rKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQoreworCWFsYzY2M19tNTF2YV9zcGVha2VyX2F1dG9tdXRlKGNvZGVjKTsKKwlhbGM2NjJfZWVlcGNfbWljX2F1dG9tdXRlKGNvZGVjKTsKK30KKwogI2lmZGVmIENPTkZJR19TTkRfSERBX1BPV0VSX1NBVkUKICNkZWZpbmUgYWxjNjYyX2xvb3BiYWNrcwlhbGM4ODBfbG9vcGJhY2tzCiAjZW5kaWYKQEAgLTEzNzE0LDE0ICsxNDE1NywyNCBAQAogCVtBTEM2NjJfTEVOT1ZPXzEwMUVdCT0gImxlbm92by0xMDFlIiwKIAlbQUxDNjYyX0FTVVNfRUVFUENfUDcwMV0gPSAiZWVlcGMtcDcwMSIsCiAJW0FMQzY2Ml9BU1VTX0VFRVBDX0VQMjBdID0gImVlZXBjLWVwMjAiLAorCVtBTEM2NjNfQVNVU19NNTFWQV0gPSAibTUxdmEiLAorCVtBTEM2NjNfQVNVU19HNzFWXSA9ICJnNzF2IiwKKwlbQUxDNjYzX0FTVVNfSDEzXSA9ICJoMTMiLAorCVtBTEM2NjNfQVNVU19HNTBWXSA9ICJnNTB2IiwKIAlbQUxDNjYyX0FVVE9dCQk9ICJhdXRvIiwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBhbGM2NjJfY2ZnX3RibFtdID0geworCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDExYzMsICJBU1VTIEc3MVYiLCBBTEM2NjNfQVNVU19HNzFWKSwKKwlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxODc4LCAiQVNVUyBNNTFWQSIsIEFMQzY2M19BU1VTX001MVZBKSwKKwlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxOWEzLCAiQVNVUyBNNTFWQSIsIEFMQzY2M19BU1VTX0c1MFYpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgyOTAsICJBU1VTIFA1R0MtTVgiLCBBTEM2NjJfM1NUXzZjaF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgyYTEsICJBU1VTIEVlZXBjIiwgQUxDNjYyX0FTVVNfRUVFUENfUDcwMSksCiAJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODJkMSwgIkFTVVMgRWVlcGMgRVAyMCIsIEFMQzY2Ml9BU1VTX0VFRVBDX0VQMjApLAogCVNORF9QQ0lfUVVJUksoMHgxN2FhLCAweDEwMWUsICJMZW5vdm8iLCBBTEM2NjJfTEVOT1ZPXzEwMUUpLAorCVNORF9QQ0lfUVVJUksoMHgxODU0LCAweDIwMDAsICJBU1VTIEgxMy0yMDAwIiwgQUxDNjYzX0FTVVNfSDEzKSwKKwlTTkRfUENJX1FVSVJLKDB4MTg1NCwgMHgyMDAxLCAiQVNVUyBIMTMtMjAwMSIsIEFMQzY2M19BU1VTX0gxMyksCisJU05EX1BDSV9RVUlSSygweDE4NTQsIDB4MjAwMiwgIkFTVVMgSDEzLTIwMDIiLCBBTEM2NjNfQVNVU19IMTMpLAogCXt9CiB9OwogCkBAIC0xMzgwOSw3ICsxNDI2Miw1MyBAQAogCQkudW5zb2xfZXZlbnQgPSBhbGM2NjJfZWVlcGNfZXAyMF91bnNvbF9ldmVudCwKIAkJLmluaXRfaG9vayA9IGFsYzY2Ml9lZWVwY19lcDIwX2luaXRob29rLAogCX0sCi0KKwlbQUxDNjYzX0FTVVNfTTUxVkFdID0geworCQkubWl4ZXJzID0geyBhbGM2NjNfbTUxdmFfbWl4ZXIsIGFsYzY2Ml9jYXB0dXJlX21peGVyfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzY2Ml9pbml0X3ZlcmJzLCBhbGM2NjNfbTUxdmFfaW5pdF92ZXJicyB9LAorCQkubnVtX2RhY3MgPSBBUlJBWV9TSVpFKGFsYzY2Ml9kYWNfbmlkcyksCisJCS5kYWNfbmlkcyA9IGFsYzY2Ml9kYWNfbmlkcywKKwkJLmRpZ19vdXRfbmlkID0gQUxDNjYyX0RJR09VVF9OSUQsCisJCS5udW1fY2hhbm5lbF9tb2RlID0gQVJSQVlfU0laRShhbGM2NjJfM1NUXzJjaF9tb2RlcyksCisJCS5jaGFubmVsX21vZGUgPSBhbGM2NjJfM1NUXzJjaF9tb2RlcywKKwkJLmlucHV0X211eCA9ICZhbGM2NjNfbTUxdmFfY2FwdHVyZV9zb3VyY2UsCisJCS51bnNvbF9ldmVudCA9IGFsYzY2M19tNTF2YV91bnNvbF9ldmVudCwKKwkJLmluaXRfaG9vayA9IGFsYzY2M19tNTF2YV9pbml0aG9vaywKKwl9LAorCVtBTEM2NjNfQVNVU19HNzFWXSA9IHsKKwkJLm1peGVycyA9IHsgYWxjNjYzX2c3MXZfbWl4ZXIsIGFsYzY2Ml9jYXB0dXJlX21peGVyfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzY2Ml9pbml0X3ZlcmJzLCBhbGM2NjNfZzcxdl9pbml0X3ZlcmJzIH0sCisJCS5udW1fZGFjcyA9IEFSUkFZX1NJWkUoYWxjNjYyX2RhY19uaWRzKSwKKwkJLmRhY19uaWRzID0gYWxjNjYyX2RhY19uaWRzLAorCQkuZGlnX291dF9uaWQgPSBBTEM2NjJfRElHT1VUX05JRCwKKwkJLm51bV9jaGFubmVsX21vZGUgPSBBUlJBWV9TSVpFKGFsYzY2Ml8zU1RfMmNoX21vZGVzKSwKKwkJLmNoYW5uZWxfbW9kZSA9IGFsYzY2Ml8zU1RfMmNoX21vZGVzLAorCQkuaW5wdXRfbXV4ID0gJmFsYzY2Ml9lZWVwY19jYXB0dXJlX3NvdXJjZSwKKwkJLnVuc29sX2V2ZW50ID0gYWxjNjYzX2c3MXZfdW5zb2xfZXZlbnQsCisJCS5pbml0X2hvb2sgPSBhbGM2NjNfZzcxdl9pbml0aG9vaywKKwl9LAorCVtBTEM2NjNfQVNVU19IMTNdID0geworCQkubWl4ZXJzID0geyBhbGM2NjNfbTUxdmFfbWl4ZXIsIGFsYzY2Ml9jYXB0dXJlX21peGVyfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzY2Ml9pbml0X3ZlcmJzLCBhbGM2NjNfbTUxdmFfaW5pdF92ZXJicyB9LAorCQkubnVtX2RhY3MgPSBBUlJBWV9TSVpFKGFsYzY2Ml9kYWNfbmlkcyksCisJCS5kYWNfbmlkcyA9IGFsYzY2Ml9kYWNfbmlkcywKKwkJLm51bV9jaGFubmVsX21vZGUgPSBBUlJBWV9TSVpFKGFsYzY2Ml8zU1RfMmNoX21vZGVzKSwKKwkJLmNoYW5uZWxfbW9kZSA9IGFsYzY2Ml8zU1RfMmNoX21vZGVzLAorCQkuaW5wdXRfbXV4ID0gJmFsYzY2M19tNTF2YV9jYXB0dXJlX3NvdXJjZSwKKwkJLnVuc29sX2V2ZW50ID0gYWxjNjYzX201MXZhX3Vuc29sX2V2ZW50LAorCQkuaW5pdF9ob29rID0gYWxjNjYzX201MXZhX2luaXRob29rLAorCX0sCisJW0FMQzY2M19BU1VTX0c1MFZdID0geworCQkubWl4ZXJzID0geyBhbGM2NjNfZzUwdl9taXhlciwgYWxjNjYyX2NhcHR1cmVfbWl4ZXJ9LAorCQkuaW5pdF92ZXJicyA9IHsgYWxjNjYyX2luaXRfdmVyYnMsIGFsYzY2M19nNTB2X2luaXRfdmVyYnMgfSwKKwkJLm51bV9kYWNzID0gQVJSQVlfU0laRShhbGM2NjJfZGFjX25pZHMpLAorCQkuZGFjX25pZHMgPSBhbGM2NjJfZGFjX25pZHMsCisJCS5kaWdfb3V0X25pZCA9IEFMQzY2Ml9ESUdPVVRfTklELAorCQkubnVtX2NoYW5uZWxfbW9kZSA9IEFSUkFZX1NJWkUoYWxjNjYyXzNTVF82Y2hfbW9kZXMpLAorCQkuY2hhbm5lbF9tb2RlID0gYWxjNjYyXzNTVF82Y2hfbW9kZXMsCisJCS5pbnB1dF9tdXggPSAmYWxjNjYzX2NhcHR1cmVfc291cmNlLAorCQkudW5zb2xfZXZlbnQgPSBhbGM2NjNfZzUwdl91bnNvbF9ldmVudCwKKwkJLmluaXRfaG9vayA9IGFsYzY2M19nNTB2X2luaXRob29rLAorCX0sCiB9OwogCiAKQEAgLTE0MDgyLDYgKzE0NTgxLDggQEAKIAogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAorCWFsY19maXhfcGxsX2luaXQoY29kZWMsIDB4MjAsIDB4MDQsIDE1KTsKKwogCWJvYXJkX2NvbmZpZyA9IHNuZF9oZGFfY2hlY2tfYm9hcmRfY29uZmlnKGNvZGVjLCBBTEM2NjJfTU9ERUxfTEFTVCwKIAkJCQkJCSAgYWxjNjYyX21vZGVscywKIAkJCSAgCSAgICAgICAgICAgICAgICAgIGFsYzY2Ml9jZmdfdGJsKTsKQEAgLTE0MTA4LDExICsxNDYwOSwxNyBAQAogCWlmIChib2FyZF9jb25maWcgIT0gQUxDNjYyX0FVVE8pCiAJCXNldHVwX3ByZXNldChzcGVjLCAmYWxjNjYyX3ByZXNldHNbYm9hcmRfY29uZmlnXSk7CiAKLQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDNjYyIEFuYWxvZyI7CisJaWYgKGNvZGVjLT52ZW5kb3JfaWQgPT0gMHgxMGVjMDY2MykgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDNjYzIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDNjYzIERpZ2l0YWwiOworCX0gZWxzZSB7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM2NjIgQW5hbG9nIjsKKwkJc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM2NjIgRGlnaXRhbCI7CisJfQorCiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19wbGF5YmFjayA9ICZhbGM2NjJfcGNtX2FuYWxvZ19wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2NhcHR1cmUgPSAmYWxjNjYyX3BjbV9hbmFsb2dfY2FwdHVyZTsKIAotCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDNjYyIERpZ2l0YWwiOwogCXNwZWMtPnN0cmVhbV9kaWdpdGFsX3BsYXliYWNrID0gJmFsYzY2Ml9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9jYXB0dXJlID0gJmFsYzY2Ml9wY21fZGlnaXRhbF9jYXB0dXJlOwogCkBAIC0xNDE1MSw2ICsxNDY1OCw3IEBACiAJICAucGF0Y2ggPSBwYXRjaF9hbGM4ODMgfSwKIAl7IC5pZCA9IDB4MTBlYzA2NjIsIC5yZXYgPSAweDEwMDEwMSwgLm5hbWUgPSAiQUxDNjYyIHJldjEiLAogCSAgLnBhdGNoID0gcGF0Y2hfYWxjNjYyIH0sCisJeyAuaWQgPSAweDEwZWMwNjYzLCAubmFtZSA9ICJBTEM2NjMiLCAucGF0Y2ggPSBwYXRjaF9hbGM2NjIgfSwKIAl7IC5pZCA9IDB4MTBlYzA4ODAsIC5uYW1lID0gIkFMQzg4MCIsIC5wYXRjaCA9IHBhdGNoX2FsYzg4MCB9LAogCXsgLmlkID0gMHgxMGVjMDg4MiwgLm5hbWUgPSAiQUxDODgyIiwgLnBhdGNoID0gcGF0Y2hfYWxjODgyIH0sCiAJeyAuaWQgPSAweDEwZWMwODgzLCAubmFtZSA9ICJBTEM4ODMiLCAucGF0Y2ggPSBwYXRjaF9hbGM4ODMgfSwKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfc2lnbWF0ZWwuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfc2lnbWF0ZWwuYwppbmRleCBhNGY0NGEwLi4wOGNiNzdmIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3NpZ21hdGVsLmMKKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9zaWdtYXRlbC5jCkBAIC02MzYsMjEgKzYzNiwyOCBAQAogCXsgMHgwZiwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgwKX0sCiB9OwogCisjZGVmaW5lIEhEX0RJU0FCTEVfUE9SVEYgMwogc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBzdGFjOTJoZDcxYnh4X2FuYWxvZ19jb3JlX2luaXRbXSA9IHsKKwkvKiBzdGFydCBvZiBjb25maWcgIzEgKi8KKworCS8qIGNvbm5lY3QgcG9ydCAwZiB0byBhdWRpbyBtaXhlciAqLworCXsgMHgwZiwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4Mn0sCisJeyAweDBmLCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9PVVR9LCAvKiBTcGVha2VyICovCisJLyogdW5tdXRlIHJpZ2h0IGFuZCBsZWZ0IGNoYW5uZWxzIGZvciBub2RlIDB4MGYgKi8KKwl7IDB4MGYsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoMCl9LAorCS8qIHN0YXJ0IG9mIGNvbmZpZyAjMiAqLworCiAJLyogc2V0IG1hc3RlciB2b2x1bWUgYW5kIGRpcmVjdCBjb250cm9sICovCiAJeyAweDI4LCBBQ19WRVJCX1NFVF9WT0xVTUVfS05PQl9DT05UUk9MLCAweGZmfSwKIAkvKiBjb25uZWN0IGhlYWRwaG9uZSBqYWNrIHRvIGRhYzEgKi8KIAl7IDB4MGEsIEFDX1ZFUkJfU0VUX0NPTk5FQ1RfU0VMLCAweDAxfSwKLQkvKiBjb25uZWN0IHBvcnRzIDBkIGFuZCAwZiB0byBhdWRpbyBtaXhlciAqLworCS8qIGNvbm5lY3QgcG9ydCAwZCB0byBhdWRpbyBtaXhlciAqLwogCXsgMHgwZCwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4Mn0sCi0JeyAweDBmLCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgyfSwKLQl7IDB4MGYsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX09VVH0sIC8qIFNwZWFrZXIgKi8KIAkvKiB1bm11dGUgZGFjMCBpbnB1dCBpbiBhdWRpbyBtaXhlciAqLwogCXsgMHgxNywgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgMHg3MDFmfSwKLQkvKiB1bm11dGUgcmlnaHQgYW5kIGxlZnQgY2hhbm5lbHMgZm9yIG5vZGVzIDB4MGEsIDB4ZCwgMHgwZiAqLworCS8qIHVubXV0ZSByaWdodCBhbmQgbGVmdCBjaGFubmVscyBmb3Igbm9kZXMgMHgwYSwgMHhkICovCiAJeyAweDBhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfSU5fVU5NVVRFKDApfSwKIAl7IDB4MGQsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoMCl9LAotCXsgMHgwZiwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgwKX0sCiAJe30KIH07CiAKQEAgLTgxOCw2ICs4MjUsOSBAQAogCUhEQV9DT0RFQ19NVVRFX0lEWCgiQ2FwdHVyZSBTd2l0Y2giLCAweDEsIDB4MWQsIDB4MCwgSERBX09VVFBVVCksCiAJSERBX0NPREVDX1ZPTFVNRV9JRFgoIkNhcHR1cmUgTXV4IFZvbHVtZSIsIDB4MSwgMHgxYiwgMHgwLCBIREFfT1VUUFVUKSwKIAorCUhEQV9DT0RFQ19WT0xVTUUoIlBDIEJlZXAgVm9sdW1lIiwgMHgxNywgMHgyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJQQyBCZWVwIFN3aXRjaCIsIDB4MTcsIDB4MiwgSERBX0lOUFVUKSwKKwogCUhEQV9DT0RFQ19NVVRFKCJBbmFsb2cgTG9vcGJhY2sgMSIsIDB4MTcsIDB4MywgSERBX0lOUFVUKSwKIAlIREFfQ09ERUNfTVVURSgiQW5hbG9nIExvb3BiYWNrIDIiLCAweDE3LCAweDQsIEhEQV9JTlBVVCksCiAJeyB9IC8qIGVuZCAqLwpAQCAtMTMxNywxMyArMTMyNywxMyBAQAogCTB4OTBhMDAwZjAsIDB4MDE0NTIwNTAsCiB9OwogCi1zdGF0aWMgdW5zaWduZWQgaW50IGRlbGxfbTRfMV9waW5fY29uZmlnc1sxM10gPSB7CitzdGF0aWMgdW5zaWduZWQgaW50IGRlbGxfbTRfMV9waW5fY29uZmlnc1sxMF0gPSB7CiAJMHgwNDIxMTAxZiwgMHgwNGExMTIyMSwgMHg0MGYwMDBmMCwgMHg5MDE3MDExMCwKIAkweDIzYTE5MDJlLCAweDIzMDE0MjUwLCAweDQwZjAwMGYwLCAweDkwYTAwMGYwLAogCTB4NDBmMDAwZjAsIDB4NGYwMDAwZjAsCiB9OwogCi1zdGF0aWMgdW5zaWduZWQgaW50IGRlbGxfbTRfMl9waW5fY29uZmlnc1sxM10gPSB7CitzdGF0aWMgdW5zaWduZWQgaW50IGRlbGxfbTRfMl9waW5fY29uZmlnc1sxMF0gPSB7CiAJMHgwNDIxMTAxZiwgMHgwNGExMTIyMSwgMHg5MGE3MDMzMCwgMHg5MDE3MDExMCwKIAkweDIzYTE5MDJlLCAweDIzMDE0MjUwLCAweDQwZjAwMGYwLCAweDQwZjAwMGYwLAogCTB4NDBmMDAwZjAsIDB4MDQ0NDEzYjAsCkBAIC0xNzU0LDEyICsxNzY0LDggQEAKIAkJICAgICAgInVua25vd24gRGVsbCIsIFNUQUNfOTIwNV9ERUxMX000MiksCiAJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmOCwKIAkJICAgICAgIkRlbGwgUHJlY2lzaW9uIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKLQlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjFjLAotCQkJICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAogCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZjksCiAJCSAgICAgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCi0JU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDIxYiwKLQkJICAgICAgIkRlbGwgUHJlY2lzaW9uIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMWZhLAogCQkgICAgICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAogCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZmMsCkBAIC0xNzcwLDE4ICsxNzc2LDE0IEBACiAJCSAgICAgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCiAJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmZiwKIAkJICAgICAgIkRlbGwgUHJlY2lzaW9uIE00MzAwIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKLQlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjA2LAotCQkgICAgICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAotCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZjEsCi0JCSAgICAgICJEZWxsIEluc3Bpcm9uIiwgU1RBQ185MjA1X0RFTExfTTQ0KSwKLQlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMWYyLAotCQkgICAgICAiRGVsbCBJbnNwaXJvbiIsIFNUQUNfOTIwNV9ERUxMX000NCksCi0JU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmYywKLQkJICAgICAgIkRlbGwgSW5zcGlyb24iLCBTVEFDXzkyMDVfREVMTF9NNDQpLAotCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZmQsCi0JCSAgICAgICJEZWxsIEluc3Bpcm9uIiwgU1RBQ185MjA1X0RFTExfTTQ0KSwKIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjA0LAogCQkgICAgICAidW5rbm93biBEZWxsIiwgU1RBQ185MjA1X0RFTExfTTQyKSwKKwlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjA2LAorCQkgICAgICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAorCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAyMWIsCisJCSAgICAgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCisJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDIxYywKKwkJICAgICAgIkRlbGwgUHJlY2lzaW9uIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjFmLAogCQkgICAgICAiRGVsbCBJbnNwaXJvbiIsIFNUQUNfOTIwNV9ERUxMX000NCksCiAJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDIyOCwKQEAgLTMxMDMsMTMgKzMxMDUsMTYgQEAKIAkJCQkJMCwgQUNfVkVSQl9HRVRfUElOX1dJREdFVF9DT05UUk9MLCAwKTsKIAkJaW50IGRlZl9jb25mID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCBzcGVjLT5wd3Jfbmlkc1tpXSwKIAkJCQkJMCwgQUNfVkVSQl9HRVRfQ09ORklHX0RFRkFVTFQsIDApOworCQlkZWZfY29uZiA9IGdldF9kZWZjZmdfY29ubmVjdChkZWZfY29uZik7CiAJCS8qIG91dHB1dHMgYXJlIG9ubHkgcG9ydHMgY2FwYWJsZSBvZiBwb3dlciBtYW5hZ2VtZW50CiAJCSAqIGFueSBhdHRlbXB0cyBvbiBwb3dlcmluZyBkb3duIGEgaW5wdXQgcG9ydCBjYXVzZSB0aGUKIAkJICogcmVmZXJlbmNlZCBWUkVGIHRvIGFjdCBxdWlya3kuCiAJCSAqLwogCQlpZiAocGluY3RsICYgQUNfUElOQ1RMX0lOX0VOKQogCQkJY29udGludWU7Ci0JCWlmIChnZXRfZGVmY2ZnX2Nvbm5lY3QoZGVmX2NvbmYpICE9IEFDX0pBQ0tfUE9SVF9GSVhFRCkKKwkJLyogc2tpcCBhbnkgcG9ydHMgdGhhdCBkb24ndCBoYXZlIGphY2tzIHNpbmNlIHByZXNlbmNlCisgCQkgKiBkZXRlY3Rpb24gaXMgdXNlbGVzcyAqLworCQlpZiAoZGVmX2NvbmYgJiYgZGVmX2NvbmYgIT0gQUNfSkFDS19QT1JUX0ZJWEVEKQogCQkJY29udGludWU7CiAJCWVuYWJsZV9waW5fZGV0ZWN0KGNvZGVjLCBzcGVjLT5wd3Jfbmlkc1tpXSwgZXZlbnQgfCBpKTsKIAkJY29kZWMtPnBhdGNoX29wcy51bnNvbF9ldmVudChjb2RlYywgKGV2ZW50IHwgaSkgPDwgMjYpOwpAQCAtMzYxNCw2ICszNjE5LDcgQEAKIAogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAlzcGVjLT5udW1fcGlucyA9IEFSUkFZX1NJWkUoc3RhYzkyaGQ3MWJ4eF9waW5fbmlkcyk7CisJc3BlYy0+bnVtX3B3cnMgPSBBUlJBWV9TSVpFKHN0YWM5MmhkNzFieHhfcHdyX25pZHMpOwogCXNwZWMtPnBpbl9uaWRzID0gc3RhYzkyaGQ3MWJ4eF9waW5fbmlkczsKIAlzcGVjLT5ib2FyZF9jb25maWcgPSBzbmRfaGRhX2NoZWNrX2JvYXJkX2NvbmZpZyhjb2RlYywKIAkJCQkJCQlTVEFDXzkySEQ3MUJYWF9NT0RFTFMsCkBAIC0zNjQyLDYgKzM2NDgsMTkgQEAKIAkJc3BlYy0+bWl4ZXIgPSBzdGFjOTJoZDcxYnh4X21peGVyOwogCQlzcGVjLT5pbml0ID0gc3RhYzkyaGQ3MWJ4eF9jb3JlX2luaXQ7CiAJCWJyZWFrOworCWNhc2UgMHgxMTFkNzYwODogLyogNSBQb3J0IHdpdGggQW5hbG9nIE1peGVyICovCisJCS8qIG5vIG91dHB1dCBhbXBzICovCisJCXNwZWMtPm51bV9wd3JzID0gMDsKKwkJc3BlYy0+bWl4ZXIgPSBzdGFjOTJoZDcxYnh4X2FuYWxvZ19taXhlcjsKKworCQkvKiBkaXNhYmxlIFZTVyAqLworCQlzcGVjLT5pbml0ID0gJnN0YWM5MmhkNzFieHhfYW5hbG9nX2NvcmVfaW5pdFtIRF9ESVNBQkxFX1BPUlRGXTsKKwkJc3RhYzkyeHhfc2V0X2NvbmZpZ19yZWcoY29kZWMsIDB4ZiwgMHg0MGYwMDBmMCk7CisJCWJyZWFrOworCWNhc2UgMHgxMTFkNzYwMzogLyogNiBQb3J0IHdpdGggQW5hbG9nIE1peGVyICovCisJCS8qIG5vIG91dHB1dCBhbXBzICovCisJCXNwZWMtPm51bV9wd3JzID0gMDsKKwkJLyogZmFsbHRocnUgKi8KIAlkZWZhdWx0OgogCQlzcGVjLT5taXhlciA9IHN0YWM5MmhkNzFieHhfYW5hbG9nX21peGVyOwogCQlzcGVjLT5pbml0ID0gc3RhYzkyaGQ3MWJ4eF9hbmFsb2dfY29yZV9pbml0OwpAQCAtMzY1MywyMiArMzY3MiwxOSBAQAogCS8qIEdQSU8wIEhpZ2ggPSBFQVBEICovCiAJc3BlYy0+Z3Bpb19tYXNrID0gMHgwMTsKIAlzcGVjLT5ncGlvX2RpciA9IDB4MDE7Ci0Jc3BlYy0+Z3Bpb19tYXNrID0gMHgwMTsKIAlzcGVjLT5ncGlvX2RhdGEgPSAweDAxOwogCiAJc3BlYy0+bXV4X25pZHMgPSBzdGFjOTJoZDcxYnh4X211eF9uaWRzOwogCXNwZWMtPmFkY19uaWRzID0gc3RhYzkyaGQ3MWJ4eF9hZGNfbmlkczsKIAlzcGVjLT5kbWljX25pZHMgPSBzdGFjOTJoZDcxYnh4X2RtaWNfbmlkczsKIAlzcGVjLT5kbXV4X25pZHMgPSBzdGFjOTJoZDcxYnh4X2RtdXhfbmlkczsKKwlzcGVjLT5wd3JfbmlkcyA9IHN0YWM5MmhkNzFieHhfcHdyX25pZHM7CiAKIAlzcGVjLT5udW1fbXV4ZXMgPSBBUlJBWV9TSVpFKHN0YWM5MmhkNzFieHhfbXV4X25pZHMpOwogCXNwZWMtPm51bV9hZGNzID0gQVJSQVlfU0laRShzdGFjOTJoZDcxYnh4X2FkY19uaWRzKTsKIAlzcGVjLT5udW1fZG1pY3MgPSBTVEFDOTJIRDcxQlhYX05VTV9ETUlDUzsKIAlzcGVjLT5udW1fZG11eGVzID0gQVJSQVlfU0laRShzdGFjOTJoZDcxYnh4X2RtdXhfbmlkcyk7CiAKLQlzcGVjLT5udW1fcHdycyA9IEFSUkFZX1NJWkUoc3RhYzkyaGQ3MWJ4eF9wd3Jfbmlkcyk7Ci0Jc3BlYy0+cHdyX25pZHMgPSBzdGFjOTJoZDcxYnh4X3B3cl9uaWRzOwotCiAJc3BlYy0+bXVsdGlvdXQubnVtX2RhY3MgPSAxOwogCXNwZWMtPm11bHRpb3V0LmhwX25pZCA9IDB4MTE7CiAJc3BlYy0+bXVsdGlvdXQuZGFjX25pZHMgPSBzdGFjOTJoZDcxYnh4X2RhY19uaWRzOwpAQCAtNDMwNiwxMCArNDMyMiwxMSBAQAogIAl7IC5pZCA9IDB4ODM4NDc2YTUsIC5uYW1lID0gIlNUQUM5MjU1RCIsIC5wYXRjaCA9IHBhdGNoX3N0YWM5MjA1IH0sCiAgCXsgLmlkID0gMHg4Mzg0NzZhNiwgLm5hbWUgPSAiU1RBQzkyNTQiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTIwNSB9LAogIAl7IC5pZCA9IDB4ODM4NDc2YTcsIC5uYW1lID0gIlNUQUM5MjU0RCIsIC5wYXRjaCA9IHBhdGNoX3N0YWM5MjA1IH0sCisJeyAuaWQgPSAweDExMWQ3NjAzLCAubmFtZSA9ICI5MkhENzVCM1g1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3MWJ4eH0sCisJeyAuaWQgPSAweDExMWQ3NjA4LCAubmFtZSA9ICI5MkhENzVCMlg1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3MWJ4eH0sCiAJeyAuaWQgPSAweDExMWQ3Njc0LCAubmFtZSA9ICI5MkhENzNEMVg1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3M3h4IH0sCiAJeyAuaWQgPSAweDExMWQ3Njc1LCAubmFtZSA9ICI5MkhENzNDMVg1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3M3h4IH0sCiAJeyAuaWQgPSAweDExMWQ3Njc2LCAubmFtZSA9ICI5MkhENzNFMVg1IiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyaGQ3M3h4IH0sCi0JeyAuaWQgPSAweDExMWQ3NjA4LCAubmFtZSA9ICI5MkhENzFCWFgiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4IH0sCiAJeyAuaWQgPSAweDExMWQ3NmIwLCAubmFtZSA9ICI5MkhENzFCOFgiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4IH0sCiAJeyAuaWQgPSAweDExMWQ3NmIxLCAubmFtZSA9ICI5MkhENzFCOFgiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4IH0sCiAJeyAuaWQgPSAweDExMWQ3NmIyLCAubmFtZSA9ICI5MkhENzFCN1giLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4IH0sCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaWNlMTcxMi9lbnZ5MjRodC5oIGIvc291bmQvcGNpL2ljZTE3MTIvZW52eTI0aHQuaAppbmRleCA0M2I5ZTNlLi5hMGM1ZTAwIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaWNlMTcxMi9lbnZ5MjRodC5oCisrKyBiL3NvdW5kL3BjaS9pY2UxNzEyL2VudnkyNGh0LmgKQEAgLTkzLDkgKzkzLDEzIEBACiAjZGVmaW5lIFZUMTcyNF9SRUdfTVBVX1RYRklGTwkJMHgwYQkvKmJ5dGUgcm8uIG51bWJlciBvZiBieXRlcyBpbiBUWCBmaWZvKi8KICNkZWZpbmUgVlQxNzI0X1JFR19NUFVfUlhGSUZPCQkweDBiCS8qYnl0ZSByby4gbnVtYmVyIG9mIGJ5dGVzIGluIFJYIGZpZm8qLwogCi0vL2FyZSB0aGVzZSAyIHRoZSB3cm9uZyB3YXkgYXJvdW5kPyB0aGV5IGRvbid0IHNlZW0gdG8gYmUgdXNlZCB5ZXQgYW55d2F5Ci0jZGVmaW5lIFZUMTcyNF9SRUdfTVBVX0NUUkwJCTB4MGMJLyogYnl0ZSAqLwotI2RlZmluZSBWVDE3MjRfUkVHX01QVV9EQVRBCQkweDBkCS8qIGJ5dGUgKi8KKyNkZWZpbmUgVlQxNzI0X1JFR19NUFVfREFUQQkJMHgwYwkvKiBieXRlICovCisjZGVmaW5lIFZUMTcyNF9SRUdfTVBVX0NUUkwJCTB4MGQJLyogYnl0ZSAqLworI2RlZmluZSAgIFZUMTcyNF9NUFVfVUFSVAkweDAxCisjZGVmaW5lICAgVlQxNzI0X01QVV9UWF9FTVBUWQkweDAyCisjZGVmaW5lICAgVlQxNzI0X01QVV9UWF9GVUxMCTB4MDQKKyNkZWZpbmUgICBWVDE3MjRfTVBVX1JYX0VNUFRZCTB4MDgKKyNkZWZpbmUgICBWVDE3MjRfTVBVX1JYX0ZVTEwJMHgxMAogCiAjZGVmaW5lIFZUMTcyNF9SRUdfTVBVX0ZJRk9fV00JMHgwZQkvKmJ5dGUgc2V0IHRoZSBoaWdoL2xvdyB3YXRlcm1hcmtzIGZvciBSWC9UWCBmaWZvcyovCiAjZGVmaW5lICAgVlQxNzI0X01QVV9SWF9GSUZPCTB4MjAJLy8xPXJ4IGZpZm8gd2F0ZXJtYXJrIDA9dHggZmlmbyB3YXRlcm1hcmsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MTIuaCBiL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MTIuaAppbmRleCAzMjA4OTAxLi43NjJmYmQ3IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaWNlMTcxMi9pY2UxNzEyLmgKKysrIGIvc291bmQvcGNpL2ljZTE3MTIvaWNlMTcxMi5oCkBAIC0zMzMsNiArMzMzLDggQEAKIAl1bnNpZ25lZCBpbnQgaGFzX3NwZGlmOiAxOwkvKiBWVDE3MjAvNCAtIGhhcyBTUERJRiBJL08gKi8KIAl1bnNpZ25lZCBpbnQgZm9yY2VfcGRtYTQ6IDE7CS8qIFZUMTcyMC80IC0gUERNQTQgYXMgbm9uLXNwZGlmICovCiAJdW5zaWduZWQgaW50IGZvcmNlX3JkbWExOiAxOwkvKiBWVDE3MjAvNCAtIFJETUExIGFzIG5vbi1zcGRpZiAqLworCXVuc2lnbmVkIGludCBtaWRpX291dHB1dDogMTsJLyogVlQxNzIwLzQ6IE1JREkgb3V0cHV0IHRyaWdnZXJlZCAqLworCXVuc2lnbmVkIGludCBtaWRpX2lucHV0OiAxOwkvKiBWVDE3MjAvNDogTUlESSBpbnB1dCB0cmlnZ2VyZWQgKi8KIAl1bnNpZ25lZCBpbnQgbnVtX3RvdGFsX2RhY3M7CS8qIHRvdGFsIERBQ3MgKi8KIAl1bnNpZ25lZCBpbnQgbnVtX3RvdGFsX2FkY3M7CS8qIHRvdGFsIEFEQ3MgKi8KIAl1bnNpZ25lZCBpbnQgY3VyX3JhdGU7CQkvKiBjdXJyZW50IHJhdGUgKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MjQuYyBiL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MjQuYwppbmRleCA2NzM1MDkwLi5lNTk2ZDc3IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaWNlMTcxMi9pY2UxNzI0LmMKKysrIGIvc291bmQvcGNpL2ljZTE3MTIvaWNlMTcyNC5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CiAjaW5jbHVkZSA8c291bmQvaW5mby5oPgotI2luY2x1ZGUgPHNvdW5kL21wdTQwMS5oPgorI2luY2x1ZGUgPHNvdW5kL3Jhd21pZGkuaD4KICNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CiAKICNpbmNsdWRlIDxzb3VuZC9hc291bmRlZi5oPgpAQCAtMjIzLDMwICsyMjMsMTUzIEBACiB9CiAKIC8qCi0gKiBNUFU0MDEgYWNjZXNzb3IKKyAqIE1JREkKICAqLwotc3RhdGljIHVuc2lnbmVkIGNoYXIgc25kX3Z0MTcyNF9tcHU0MDFfcmVhZChzdHJ1Y3Qgc25kX21wdTQwMSAqbXB1LAotCQkJCQkgICAgdW5zaWduZWQgbG9uZyBhZGRyKQorCitzdGF0aWMgdm9pZCB2dDE3MjRfbWlkaV9jbGVhcl9yeChzdHJ1Y3Qgc25kX2ljZTE3MTIgKmljZSkKIHsKLQkvKiBmaXggc3RhdHVzIGJpdHMgdG8gdGhlIHN0YW5kYXJkIHBvc2l0aW9uICovCi0JLyogb25seSBSWF9FTVBUWSBhbmQgVFhfRlVMTCBhcmUgY2hlY2tlZCAqLwotCWlmIChhZGRyID09IE1QVTQwMUMobXB1KSkKLQkJcmV0dXJuIChpbmIoYWRkcikgJiAweDBjKSA8PCA0OwotCWVsc2UKLQkJcmV0dXJuIGluYihhZGRyKTsKKwl1bnNpZ25lZCBpbnQgY291bnQ7CisKKwlmb3IgKGNvdW50ID0gaW5iKElDRVJFRzE3MjQoaWNlLCBNUFVfUlhGSUZPKSk7IGNvdW50ID4gMDsgLS1jb3VudCkKKwkJaW5iKElDRVJFRzE3MjQoaWNlLCBNUFVfREFUQSkpOwogfQogCi1zdGF0aWMgdm9pZCBzbmRfdnQxNzI0X21wdTQwMV93cml0ZShzdHJ1Y3Qgc25kX21wdTQwMSAqbXB1LAotCQkJCSAgICB1bnNpZ25lZCBjaGFyIGRhdGEsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqCitnZXRfcmF3bWlkaV9zdWJzdHJlYW0oc3RydWN0IHNuZF9pY2UxNzEyICppY2UsIHVuc2lnbmVkIGludCBzdHJlYW0pCiB7Ci0JaWYgKGFkZHIgPT0gTVBVNDAxQyhtcHUpKSB7Ci0JCWlmIChkYXRhID09IE1QVTQwMV9FTlRFUl9VQVJUKQotCQkJb3V0YigweDAxLCBhZGRyKTsKLQkJLyogd2hhdCBlbHNlPyAqLwotCX0gZWxzZQotCQlvdXRiKGRhdGEsIGFkZHIpOworCXJldHVybiBsaXN0X2ZpcnN0X2VudHJ5KCZpY2UtPnJtaWRpWzBdLT5zdHJlYW1zW3N0cmVhbV0uc3Vic3RyZWFtcywKKwkJCQlzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtLCBsaXN0KTsKIH0KIAorc3RhdGljIHZvaWQgdnQxNzI0X21pZGlfd3JpdGUoc3RydWN0IHNuZF9pY2UxNzEyICppY2UpCit7CisJc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqczsKKwlpbnQgY291bnQsIGk7CisJdTggYnVmZmVyWzMyXTsKKworCXMgPSBnZXRfcmF3bWlkaV9zdWJzdHJlYW0oaWNlLCBTTkRSVl9SQVdNSURJX1NUUkVBTV9PVVRQVVQpOworCWNvdW50ID0gMzEgLSBpbmIoSUNFUkVHMTcyNChpY2UsIE1QVV9UWEZJRk8pKTsKKwlpZiAoY291bnQgPiAwKSB7CisJCWNvdW50ID0gc25kX3Jhd21pZGlfdHJhbnNtaXQocywgYnVmZmVyLCBjb3VudCk7CisJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKQorCQkJb3V0YihidWZmZXJbaV0sIElDRVJFRzE3MjQoaWNlLCBNUFVfREFUQSkpOworCX0KK30KKworc3RhdGljIHZvaWQgdnQxNzI0X21pZGlfcmVhZChzdHJ1Y3Qgc25kX2ljZTE3MTIgKmljZSkKK3sKKwlzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzOworCWludCBjb3VudCwgaTsKKwl1OCBidWZmZXJbMzJdOworCisJcyA9IGdldF9yYXdtaWRpX3N1YnN0cmVhbShpY2UsIFNORFJWX1JBV01JRElfU1RSRUFNX0lOUFVUKTsKKwljb3VudCA9IGluYihJQ0VSRUcxNzI0KGljZSwgTVBVX1JYRklGTykpOworCWlmIChjb3VudCA+IDApIHsKKwkJY291bnQgPSBtaW4oY291bnQsIDMyKTsKKwkJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpCisJCQlidWZmZXJbaV0gPSBpbmIoSUNFUkVHMTcyNChpY2UsIE1QVV9EQVRBKSk7CisJCXNuZF9yYXdtaWRpX3JlY2VpdmUocywgYnVmZmVyLCBjb3VudCk7CisJfQorfQorCitzdGF0aWMgdm9pZCB2dDE3MjRfZW5hYmxlX21pZGlfaXJxKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkgICB1OCBmbGFnLCBpbnQgZW5hYmxlKQoreworCXN0cnVjdCBzbmRfaWNlMTcxMiAqaWNlID0gc3Vic3RyZWFtLT5ybWlkaS0+cHJpdmF0ZV9kYXRhOworCXU4IG1hc2s7CisKKwlzcGluX2xvY2tfaXJxKCZpY2UtPnJlZ19sb2NrKTsKKwltYXNrID0gaW5iKElDRVJFRzE3MjQoaWNlLCBJUlFNQVNLKSk7CisJaWYgKGVuYWJsZSkKKwkJbWFzayAmPSB+ZmxhZzsKKwllbHNlCisJCW1hc2sgfD0gZmxhZzsKKwlvdXRiKG1hc2ssIElDRVJFRzE3MjQoaWNlLCBJUlFNQVNLKSk7CisJc3Bpbl91bmxvY2tfaXJxKCZpY2UtPnJlZ19sb2NrKTsKK30KKworc3RhdGljIGludCB2dDE3MjRfbWlkaV9vdXRwdXRfb3BlbihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzKQoreworCXZ0MTcyNF9lbmFibGVfbWlkaV9pcnEocywgVlQxNzI0X0lSUV9NUFVfVFgsIDEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZ0MTcyNF9taWRpX291dHB1dF9jbG9zZShzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzKQoreworCXZ0MTcyNF9lbmFibGVfbWlkaV9pcnEocywgVlQxNzI0X0lSUV9NUFVfVFgsIDApOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB2dDE3MjRfbWlkaV9vdXRwdXRfdHJpZ2dlcihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzLCBpbnQgdXApCit7CisJc3RydWN0IHNuZF9pY2UxNzEyICppY2UgPSBzLT5ybWlkaS0+cHJpdmF0ZV9kYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaWNlLT5yZWdfbG9jaywgZmxhZ3MpOworCWlmICh1cCkgeworCQlpY2UtPm1pZGlfb3V0cHV0ID0gMTsKKwkJdnQxNzI0X21pZGlfd3JpdGUoaWNlKTsKKwl9IGVsc2UgeworCQlpY2UtPm1pZGlfb3V0cHV0ID0gMDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaWNlLT5yZWdfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCB2dDE3MjRfbWlkaV9vdXRwdXRfZHJhaW4oc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqcykKK3sKKwlzdHJ1Y3Qgc25kX2ljZTE3MTIgKmljZSA9IHMtPnJtaWRpLT5wcml2YXRlX2RhdGE7CisJdW5zaWduZWQgbG9uZyB0aW1lb3V0OworCisJLyogMzIgYnl0ZXMgc2hvdWxkIGJlIHRyYW5zbWl0dGVkIGluIGxlc3MgdGhhbiBhYm91dCAxMiBtcyAqLworCXRpbWVvdXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxNSk7CisJZG8geworCQlpZiAoaW5iKElDRVJFRzE3MjQoaWNlLCBNUFVfQ1RSTCkpICYgVlQxNzI0X01QVV9UWF9FTVBUWSkKKwkJCWJyZWFrOworCQlzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZSgxKTsKKwl9IHdoaWxlICh0aW1lX2FmdGVyKHRpbWVvdXQsIGppZmZpZXMpKTsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfcmF3bWlkaV9vcHMgdnQxNzI0X21pZGlfb3V0cHV0X29wcyA9IHsKKwkub3BlbiA9IHZ0MTcyNF9taWRpX291dHB1dF9vcGVuLAorCS5jbG9zZSA9IHZ0MTcyNF9taWRpX291dHB1dF9jbG9zZSwKKwkudHJpZ2dlciA9IHZ0MTcyNF9taWRpX291dHB1dF90cmlnZ2VyLAorCS5kcmFpbiA9IHZ0MTcyNF9taWRpX291dHB1dF9kcmFpbiwKK307CisKK3N0YXRpYyBpbnQgdnQxNzI0X21pZGlfaW5wdXRfb3BlbihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzKQoreworCXZ0MTcyNF9taWRpX2NsZWFyX3J4KHMtPnJtaWRpLT5wcml2YXRlX2RhdGEpOworCXZ0MTcyNF9lbmFibGVfbWlkaV9pcnEocywgVlQxNzI0X0lSUV9NUFVfUlgsIDEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZ0MTcyNF9taWRpX2lucHV0X2Nsb3NlKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnMpCit7CisJdnQxNzI0X2VuYWJsZV9taWRpX2lycShzLCBWVDE3MjRfSVJRX01QVV9SWCwgMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHZ0MTcyNF9taWRpX2lucHV0X3RyaWdnZXIoc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqcywgaW50IHVwKQoreworCXN0cnVjdCBzbmRfaWNlMTcxMiAqaWNlID0gcy0+cm1pZGktPnByaXZhdGVfZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmljZS0+cmVnX2xvY2ssIGZsYWdzKTsKKwlpZiAodXApIHsKKwkJaWNlLT5taWRpX2lucHV0ID0gMTsKKwkJdnQxNzI0X21pZGlfcmVhZChpY2UpOworCX0gZWxzZSB7CisJCWljZS0+bWlkaV9pbnB1dCA9IDA7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmljZS0+cmVnX2xvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfcmF3bWlkaV9vcHMgdnQxNzI0X21pZGlfaW5wdXRfb3BzID0geworCS5vcGVuID0gdnQxNzI0X21pZGlfaW5wdXRfb3BlbiwKKwkuY2xvc2UgPSB2dDE3MjRfbWlkaV9pbnB1dF9jbG9zZSwKKwkudHJpZ2dlciA9IHZ0MTcyNF9taWRpX2lucHV0X3RyaWdnZXIsCit9OworCiAKIC8qCiAgKiAgSW50ZXJydXB0IGhhbmRsZXIKQEAgLTI3OCwxMyArNDAxLDEwIEBACiAjZW5kaWYKIAkJaGFuZGxlZCA9IDE7CQkKIAkJaWYgKHN0YXR1cyAmIFZUMTcyNF9JUlFfTVBVX1RYKSB7Ci0JCQlpZiAoaWNlLT5ybWlkaVswXSkKLQkJCQlzbmRfbXB1NDAxX3VhcnRfaW50ZXJydXB0X3R4KGlycSwKLQkJCQkJaWNlLT5ybWlkaVswXS0+cHJpdmF0ZV9kYXRhKTsKLQkJCWVsc2UgLyogZGlzYWJsZSBUWCB0byBiZSBzdXJlICovCi0JCQkJb3V0YihpbmIoSUNFUkVHMTcyNChpY2UsIElSUU1BU0spKSB8Ci0JCQkJICAgICBWVDE3MjRfSVJRX01QVV9UWCwKLQkJCQkgICAgIElDRVJFRzE3MjQoaWNlLCBJUlFNQVNLKSk7CisJCQlzcGluX2xvY2soJmljZS0+cmVnX2xvY2spOworCQkJaWYgKGljZS0+bWlkaV9vdXRwdXQpCisJCQkJdnQxNzI0X21pZGlfd3JpdGUoaWNlKTsKKwkJCXNwaW5fdW5sb2NrKCZpY2UtPnJlZ19sb2NrKTsKIAkJCS8qIER1ZSB0byBteXN0ZXJpY2FsIHJlYXNvbnMsIE1QVV9UWCBpcyBhbHdheXMKIAkJCSAqIGdlbmVyYXRlZCAoYW5kIGNhbid0IGJlIGNsZWFyZWQpIHdoZW4gYSBQQ00KIAkJCSAqIHBsYXliYWNrIGlzIGdvaW5nLiAgU28gbGV0J3MgaWdub3JlIGF0IHRoZQpAQCAtMjkzLDEzICs0MTMsMTIgQEAKIAkJCXN0YXR1c19tYXNrICY9IH5WVDE3MjRfSVJRX01QVV9UWDsKIAkJfQogCQlpZiAoc3RhdHVzICYgVlQxNzI0X0lSUV9NUFVfUlgpIHsKLQkJCWlmIChpY2UtPnJtaWRpWzBdKQotCQkJCXNuZF9tcHU0MDFfdWFydF9pbnRlcnJ1cHQoaXJxLAotCQkJCQlpY2UtPnJtaWRpWzBdLT5wcml2YXRlX2RhdGEpOwotCQkJZWxzZSAvKiBkaXNhYmxlIFJYIHRvIGJlIHN1cmUgKi8KLQkJCQlvdXRiKGluYihJQ0VSRUcxNzI0KGljZSwgSVJRTUFTSykpIHwKLQkJCQkgICAgIFZUMTcyNF9JUlFfTVBVX1JYLAotCQkJCSAgICAgSUNFUkVHMTcyNChpY2UsIElSUU1BU0spKTsKKwkJCXNwaW5fbG9jaygmaWNlLT5yZWdfbG9jayk7CisJCQlpZiAoaWNlLT5taWRpX2lucHV0KQorCQkJCXZ0MTcyNF9taWRpX3JlYWQoaWNlKTsKKwkJCWVsc2UKKwkJCQl2dDE3MjRfbWlkaV9jbGVhcl9yeChpY2UpOworCQkJc3Bpbl91bmxvY2soJmljZS0+cmVnX2xvY2spOwogCQl9CiAJCS8qIGFjayBNUFUgaXJxICovCiAJCW91dGIoc3RhdHVzLCBJQ0VSRUcxNzI0KGljZSwgSVJRU1RBVCkpOwpAQCAtMjQyNSwyOCArMjU0NCwzMCBAQAogCiAJaWYgKCEgYy0+bm9fbXB1NDAxKSB7CiAJCWlmIChpY2UtPmVlcHJvbS5kYXRhW0lDRV9FRVAyX1NZU0NPTkZdICYgVlQxNzI0X0NGR19NUFU0MDEpIHsKLQkJCXN0cnVjdCBzbmRfbXB1NDAxICptcHU7Ci0JCQlpZiAoKGVyciA9IHNuZF9tcHU0MDFfdWFydF9uZXcoY2FyZCwgMCwgTVBVNDAxX0hXX0lDRTE3MTIsCi0JCQkJCQkgICAgICAgSUNFUkVHMTcyNChpY2UsIE1QVV9DVFJMKSwKLQkJCQkJCSAgICAgICAoTVBVNDAxX0lORk9fSU5URUdSQVRFRCB8Ci0JCQkJCQkJTVBVNDAxX0lORk9fTk9fQUNLIHwKLQkJCQkJCQlNUFU0MDFfSU5GT19UWF9JUlEpLAotCQkJCQkJICAgICAgIGljZS0+aXJxLCAwLAotCQkJCQkJICAgICAgICZpY2UtPnJtaWRpWzBdKSkgPCAwKSB7CisJCQlzdHJ1Y3Qgc25kX3Jhd21pZGkgKnJtaWRpOworCisJCQllcnIgPSBzbmRfcmF3bWlkaV9uZXcoY2FyZCwgIk1JREkiLCAwLCAxLCAxLCAmcm1pZGkpOworCQkJaWYgKGVyciA8IDApIHsKIAkJCQlzbmRfY2FyZF9mcmVlKGNhcmQpOwogCQkJCXJldHVybiBlcnI7CiAJCQl9Ci0JCQltcHUgPSBpY2UtPnJtaWRpWzBdLT5wcml2YXRlX2RhdGE7Ci0JCQltcHUtPnJlYWQgPSBzbmRfdnQxNzI0X21wdTQwMV9yZWFkOwotCQkJbXB1LT53cml0ZSA9IHNuZF92dDE3MjRfbXB1NDAxX3dyaXRlOwotCQkJLyogdW5tYXNrIE1QVSBSWC9UWCBpcnFzICovCi0JCQlvdXRiKGluYihJQ0VSRUcxNzI0KGljZSwgSVJRTUFTSykpICYKLQkJCSAgICAgfihWVDE3MjRfSVJRX01QVV9SWCB8IFZUMTcyNF9JUlFfTVBVX1RYKSwKLQkJCSAgICAgSUNFUkVHMTcyNChpY2UsIElSUU1BU0spKTsKKwkJCWljZS0+cm1pZGlbMF0gPSBybWlkaTsKKwkJCXJtaWRpLT5wcml2YXRlX2RhdGEgPSBpY2U7CisJCQlzdHJjcHkocm1pZGktPm5hbWUsICJJQ0UxNzI0IE1JREkiKTsKKwkJCXJtaWRpLT5pbmZvX2ZsYWdzID0gU05EUlZfUkFXTUlESV9JTkZPX09VVFBVVCB8CisJCQkJCSAgICBTTkRSVl9SQVdNSURJX0lORk9fSU5QVVQgfAorCQkJCQkgICAgU05EUlZfUkFXTUlESV9JTkZPX0RVUExFWDsKKwkJCXNuZF9yYXdtaWRpX3NldF9vcHMocm1pZGksIFNORFJWX1JBV01JRElfU1RSRUFNX09VVFBVVCwKKwkJCQkJICAgICZ2dDE3MjRfbWlkaV9vdXRwdXRfb3BzKTsKKwkJCXNuZF9yYXdtaWRpX3NldF9vcHMocm1pZGksIFNORFJWX1JBV01JRElfU1RSRUFNX0lOUFVULAorCQkJCQkgICAgJnZ0MTcyNF9taWRpX2lucHV0X29wcyk7CisKIAkJCS8qIHNldCB3YXRlcm1hcmtzICovCiAJCQlvdXRiKFZUMTcyNF9NUFVfUlhfRklGTyB8IDB4MSwKIAkJCSAgICAgSUNFUkVHMTcyNChpY2UsIE1QVV9GSUZPX1dNKSk7CiAJCQlvdXRiKDB4MSwgSUNFUkVHMTcyNChpY2UsIE1QVV9GSUZPX1dNKSk7CisJCQkvKiBzZXQgVUFSVCBtb2RlICovCisJCQlvdXRiKFZUMTcyNF9NUFVfVUFSVCwgSUNFUkVHMTcyNChpY2UsIE1QVV9DVFJMKSk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9rb3JnMTIxMi9rb3JnMTIxMi1maXJtd2FyZS5oIGIvc291bmQvcGNpL2tvcmcxMjEyL2tvcmcxMjEyLWZpcm13YXJlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2ZjViOTEuLjAwMDAwMDAKLS0tIGEvc291bmQvcGNpL2tvcmcxMjEyL2tvcmcxMjEyLWZpcm13YXJlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5ODcgKzAsMCBAQAotc3RhdGljIGNoYXIgZHNwQ29kZSBbXSA9IHsKLTB4MDEsMHhmZiwweDE4LDB4ZmYsMHhmNSwweGZmLDB4Y2YsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgyNiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDM4LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGRmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMywweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHhmYywweGZmLDB4NjcsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDBjLDB4ZmYsCi0weDBjLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgzMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLDB4NDcsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MGEsMHhmZiwKLTB4ODIsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDdhLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4NzIsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4NWYsMHhmZiwweDAyLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgwMiwweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHgwMiwweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHhmZiwweGZmLDB4NDcsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MTcsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDE3LDB4ZmYsCi0weDgwLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsMHg4NCwweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLAotMHgwMiwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4MDIsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwKLTB4MDEsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MmIsMHhmZiwweDAxLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDJiLDB4ZmYsCi0weDgwLDB4ZmYsMHg0MywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4MiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg4MSwweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4ODIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4ODQsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDgyLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDg1LDB4ZmYsMHg0MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHg4MiwweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHg4MSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4ODgsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDgyLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4YywweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4ODMsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDhhLDB4ZmYsMHg0MywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4MiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4OGUsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDgyLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4MywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MjYsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI2LDB4ZmYsMHgyMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHg4MCwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLDB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YjYsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDYyLDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGE2LDB4ZmYsMHg2MiwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhNiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNiwweGZmLDB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4NDAsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwweGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGI2LDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg2MiwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhNiwweGZmLDB4NjIsMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTYsMHhmZiwweDA1LDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsCi0weGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhiYiwweGZmLAotMHgwMiwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHg4MiwweGZmLDB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4Y2IsMHhmZiwweDA1LDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweGUyLDB4ZmYsCi0weGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkYiwweGZmLAotMHgyMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MzAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjYsMHhmZiwweDAwLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsCi0weGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg4MiwweGZmLAotMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg5YiwweGZmLDB4MDMsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwKLTB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGEyLDB4ZmYsCi0weDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGJiLDB4ZmYsMHgyMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDQsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDIxLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHg0MCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMiwweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4ODUsMHhmZiwweDBhLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGFlLDB4ZmYsCi0weDAwLDB4ZmYsMHhhMCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDIsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4MDUsMHhmZiwKLTB4MGEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ZmUsMHhmZiwweDAwLDB4ZmYsMHhhMCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAzLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMiwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4MGIsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4MDAsMHhmZiwweGEwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDc4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDVmLDB4ZmYsMHgwMywweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHg3OCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg1ZiwweGZmLDB4NWIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwweDgwLDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHhkZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHhmZSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4ODAsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweGMxLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHgwMywweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHhmYywweGZmLAotMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4MDIsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4MjMsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDU5LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGRmLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MTgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MGMsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ZTQsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsCi0weDAwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwZCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDEwLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MTAsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgyMiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDIyLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsCi0weDBjLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDZmLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NzYsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4OWYsMHhmZiwKLTB4ODYsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwweDg2LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDY0LDB4ZmYsCi0weDYwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg3NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg4MSwweGZmLAotMHgwMCwweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4NjEsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4YWYsMHhmZiwweDc3LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGFmLDB4ZmYsCi0weDYzLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsMHgwNSwweGZmLDB4MzUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg5MiwweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDY1LDB4ZmYsCi0weDBmLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDZlLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDA1LDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDdmLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NjUsMHhmZiwKLTB4MTAsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4MGUsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4NzksMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDBlLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxNSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLDB4NzUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4OGYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDAyLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgxNiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4MGUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NzUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4OGYsMHhmZiwweDgwLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0MCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4MTEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg3LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHg5MCwweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMiwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwweDg2LDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsCi0weDAzLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHg2MywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDgyLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHg4MywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHg3NSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4ODMsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODcsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDZhLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQwLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLAotMHg4MCwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4OGIsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwweDdlLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg1NSwweGZmLDB4MTMsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4YmUsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDhiLDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHgwNSwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg5MiwweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTEsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxNSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLAotMHg3NSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4ZiwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDUzLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGI0LDB4ZmYsCi0weDcyLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLDB4MDIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDE2LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsCi0weDM4LDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsMHg0OCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDMwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MWUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MjAsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4Y2YsMHhmZiwweDE2LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NmEsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4YmYsMHhmZiwKLTB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwweDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsCi0weDY3LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDNmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgwOCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDY5LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDVkLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDJmLDB4ZmYsMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLAotMHg3OSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MmYsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVkLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDJmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1ZCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgyZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NjYsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwweDE2LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsCi0weDhiLDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweDYxLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgyNiwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwKLTB4ODMsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsCi0weDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHgzOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxOSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDA0LDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4MDgsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NDYsMHhmZiwKLTB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwweDhiLDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweDYxLDB4ZmYsCi0weDgzLDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHg4MywweGZmLDB4OGIsMHhmZiwweGZmLDB4ZmYsMHhlMSwweGZmLAotMHg4NywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4NmUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4YmYsMHhmZiwKLTB4ODcsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDkyLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDdmLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg3ZSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHgyMywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4N2UsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODMsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4ZjEsMHhmZiwweDg2LDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweDQxLDB4ZmYsCi0weDZjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDJmLDB4ZmYsMHg4NywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OGIsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4NDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDU1LDB4ZmYsCi0weDFiLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGNlLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlMSwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDhiLDB4ZmYsMHg5YiwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDhiLDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHg3ZSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0MCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NTUsMHhmZiwweDFkLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDNlLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHg4YiwweGZmLDB4OTcsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4OGIsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4NjEsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDg5LDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDI2LDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLAotMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwKLTB4ODMsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDUxLDB4ZmYsCi0weDc5LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg3NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhiNCwweGZmLAotMHgzOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MWUsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ZDUsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwweDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHgwNCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLDB4ODMsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweDA4LDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTEsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NDYsMHhmZiwweDAwLDB4ZmYsMHgwOSwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsCi0weDhiLDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweDYxLDB4ZmYsMHg4MywweGZmLDB4OGIsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHg4MywweGZmLDB4OGIsMHhmZiwweGZmLDB4ZmYsMHhlMSwweGZmLDB4ODcsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwKLTB4NmUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4YmYsMHhmZiwweDg3LDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDkyLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg3ZiwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgyMywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4N2UsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODMsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4ZjEsMHhmZiwweDg2LDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweDQxLDB4ZmYsCi0weDZjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDJmLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4ZCwweGZmLDB4OGYsMHhmZiwweGZmLDB4ZmYsMHhjNSwweGZmLDB4MjAsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4YWUsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDg0LDB4ZmYsMHgwMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg4YSwweGZmLDB4NjQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4N2UsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGU1LDB4ZmYsMHgyMSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg1ZSwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDA4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAyLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg3OCwweGZmLDB4NDIsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg0OCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHhiMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MSwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwYywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLAotMHgwYywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg2ZiwweGZmLDB4MjAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDksMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOSwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MjYsMHhmZiwKLTB4OTgsMHhmZiwweGNjLDB4ZmYsMHhmZiwweGZmLDB4MzcsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGE1LDB4ZmYsCi0weDI0LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGZlLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLAotMHgwOCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4OTgsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4YzYsMHhmZiwweDY5LDB4ZmYsMHhjYywweGZmLDB4ZmYsMHhmZiwweDM3LDB4ZmYsCi0weDAwLDB4ZmYsMHgwNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLAotMHg5OCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4NzIsMHhmZiwKLTB4MDgsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwweDAwLDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweGM2LDB4ZmYsCi0weDY5LDB4ZmYsMHhjYywweGZmLDB4ZmYsMHhmZiwweDM3LDB4ZmYsMHgwMCwweGZmLDB4MDUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLDB4OTgsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwweDA4LDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsCi0weDAwLDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweGM2LDB4ZmYsMHg2OSwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MDUsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4YzYsMHhmZiwKLTB4MzAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsMHg0NywweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg1OCwweGZmLAotMHgxMCwweGZmLDB4MGYsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4NjYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MjYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4OTQsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHg4MCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0OSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4MTYsMHhmZiwweDBmLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwKLTB4NjYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDM4LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGI0LDB4ZmYsCi0weDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsMHg0NywweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwYSwweGZmLAotMHg4MiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4N2EsMHhmZiwKLTB4N2EsMHhmZiwweDI2LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDEwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDM4LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGI0LDB4ZmYsMHgyNywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhkMiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLDB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDEwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDI5LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDkyLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwZCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MzEsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MTIsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDA4LDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLAotMHg5MCwweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDIsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MzQsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDU1LDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0ZSwweGZmLDB4YTcsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDE4LDB4ZmYsMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1ZSwweGZmLDB4YWYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDQ4LDB4ZmYsMHgxMCwweGZmLDB4MGYsMHhmZiwweGZmLDB4ZmYsMHhmZSwweGZmLAotMHg4NywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmZSwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MmUsMHhmZiwKLTB4MDIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwweGUwLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLAotMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsCi0weDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwweDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwKLTB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGExLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgyOCwweGZmLAotMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4YTcsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgzOCwweGZmLAotMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWUsMHhmZiwKLTB4YWYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLAotMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsCi0weDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwweDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwKLTB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weGZmLDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MzIsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NDIsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGU0LDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg0NCwweGZmLAotMHgwOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4OGEsMHhmZiwweDAwLDB4ZmYsMHgwZSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsMHhhNywweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDM1LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGQyLDB4ZmYsCi0weDAwLDB4ZmYsMHg0YywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwYiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDBhLDB4ZmYsMHg3YSwweGZmLDB4MjYsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzNSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLDB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MzMsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGMwLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDM0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDg1LDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDBkLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4ZmYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDkwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxMCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzNywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg0MiwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGIwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDEwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgzOSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgyMiwweGZmLAotMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4NCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDEsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGU0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0MiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZDQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ3LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhjNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGI0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0OCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4YTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDRhLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg5NCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NGMsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDg0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0ZCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDRmLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg2NCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NGYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBlLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGUsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ1LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwYSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4M2QsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBhLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgzZiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDNmLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwYSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgzNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4M2YsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBhLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ0LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MjEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MjUsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweGU5LDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weGVkLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmMSwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4NDYsMHhmZiwweDg0LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg0NiwweGZmLDB4ODQsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgyMiwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYyLDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NDYsMHhmZiwweDg4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4NDYsMHhmZiwweDg4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDIzLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYyLDB4ZmYsCi0weGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweGZmLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGUyLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYyLDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MDMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4MGMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4ZjcsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhmMiwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhlMywweGZmLDB4ZjcsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4NCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MjIsMHhmZiwKLTB4NjcsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjIsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg0NiwweGZmLDB4ODQsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgzMiwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4NzIsMHhmZiwKLTB4NjcsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjcsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4MDMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwYywweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHhmNSwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGMwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGM3LDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2NywweGZmLAotMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLDB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlNywweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDY3LDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4MTgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NTEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ODEsMHhmZiwweDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDgwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE2LDB4ZmYsMHgxMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg5MCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg3MSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDksMHhmZiwKLTB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDg4LDB4ZmYsMHg2MywweGZmLDB4ZmYsMHhmZiwweDI3LDB4ZmYsMHhlOCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg2MiwweGZmLDB4NjEsMHhmZiwweGZmLDB4ZmYsMHgyNywweGZmLDB4ODgsMHhmZiwweDJiLDB4ZmYsMHhmZiwweGZmLDB4OGIsMHhmZiwKLTB4ZTgsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweDYyLDB4ZmYsMHg2MSwweGZmLDB4ZmYsMHhmZiwweDE3LDB4ZmYsCi0weDg4LDB4ZmYsMHgyZiwweGZmLDB4ZmYsMHhmZiwweGZiLDB4ZmYsMHg4OSwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg5OCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ZWEsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YWIsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGI4LDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGNmLDB4ZmYsMHg2MiwweGZmLDB4MjEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NjIsMHhmZiwweDIxLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDgwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg1MSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlYiwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZmMsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDUxLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGFjLDB4ZmYsMHg4MiwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg0NSwweGZmLAotMHg1NCwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHgyZSwweGZmLDB4ZmYsMHhmZiwweDNmLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwKLTB4NTQsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4MWUsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg1MSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwYywweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDUzLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGIzLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YmEsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZiLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsMHgxOCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg1NSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHgyMSwweGZmLDB4OTAsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4ODAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlNCwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmNSwweGZmLDB4MDgsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NjAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ5LDB4ZmYsMHgyYSwweGZmLDB4ZmYsMHhmZiwweGVhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlZSwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZmEsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDMxLDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHhjOSwweGZmLDB4MmEsMHhmZiwweGZmLDB4ZmYsMHhlYSwweGZmLAotMHg1NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhkNSwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDgyLDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weGZmLDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGYxLDB4ZmYsMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHhjOSwweGZmLDB4MmEsMHhmZiwweGZmLDB4ZmYsMHhlYSwweGZmLDB4NTYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4YjQsMHhmZiwKLTB4NTQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwYywweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MTYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4MTgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDU3LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDkxLDB4ZmYsCi0weDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHg4MCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNiwweGZmLAotMHgxMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLDB4OTAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NzEsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDksMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHg4OCwweGZmLDB4NjMsMHhmZiwweGZmLDB4ZmYsMHgyNywweGZmLAotMHhlOCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLDB4NjIsMHhmZiwweDYxLDB4ZmYsMHhmZiwweGZmLDB4MjcsMHhmZiwKLTB4ODgsMHhmZiwweDJiLDB4ZmYsMHhmZiwweGZmLDB4OGIsMHhmZiwweGU4LDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDYyLDB4ZmYsMHg2MSwweGZmLDB4ZmYsMHhmZiwweDE3LDB4ZmYsMHg4OCwweGZmLDB4MmYsMHhmZiwweGZmLDB4ZmYsMHhmYiwweGZmLAotMHg4OSwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4OTgsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4ZWEsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGFiLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGI4LDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHhjZiwweGZmLAotMHg2MiwweGZmLDB4MjEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NjIsMHhmZiwweDIxLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsCi0weDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHg4MCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg1NywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZWIsMHhmZiwKLTB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZmMsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDNmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg1NywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhhYywweGZmLDB4ODIsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NDUsMHhmZiwKLTB4NWEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwweGZmLDB4ZmYsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsCi0weDVhLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDNlLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NTcsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGMsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGE0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg1OSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhkMywweGZmLAotMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgzZiwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGJhLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmNSwweGZmLAotMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgzZiwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmIsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwweDE4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDViLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDYxLDB4ZmYsMHg5MCwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4MCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGU0LDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsMHgwOCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg2MCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDksMHhmZiwweDJhLDB4ZmYsMHhmZiwweGZmLDB4ZWEsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGVlLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGZhLDB4ZmYsMHg1ZSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg1YiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDBkLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwOCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDUsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGYxLDB4ZmYsCi0weDYwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0OSwweGZmLDB4MmEsMHhmZiwweGZmLDB4ZmYsMHhlYSwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmYSwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZWUsMHhmZiwKLTB4MGMsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDA4LDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZjEsMHhmZiwweDYwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ5LDB4ZmYsMHgyYSwweGZmLDB4ZmYsMHhmZiwweGVhLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmYSwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlZSwweGZmLDB4MGMsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDVlLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwOCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDVmLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDU0LDB4ZmYsCi0weDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsMHg5MCwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHhhOCwweGZmLAotMHgxMCwweGZmLDB4MGYsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4OTAsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwKLTB4ODgsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweGI2LDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGZhLDB4ZmYsMHhmMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwYSwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4ZTIsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDc0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGUyLDB4ZmYsCi0weDM4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLAotMHhlMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NzQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZTIsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsCi0weDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlMiwweGZmLAotMHg4OCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4OTgsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MTAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweGU4LDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGFjLDB4ZmYsMHhmMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwYSwweGZmLDB4MDEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4ZTIsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDc0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGUyLDB4ZmYsCi0weDM4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhlMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NzQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZTIsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweGQ0LDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLAotMHhmZiwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLDB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwKLTB4ODksMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YjgsMHhmZiwweDAwLDB4ZmYsMHgwZSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsMHhhNywweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4ODksMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YTgsMHhmZiwKLTB4MDAsMHhmZiwweDBlLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsCi0weGE3LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MDksMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YjAsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAyLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgyNiwweGZmLDB4ODksMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZDgsMHhmZiwKLTB4MDAsMHhmZiwweDBlLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsCi0weGE3LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhjOCwweGZmLDB4MDAsMHhmZiwweDBlLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwweGE3LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsMHgwMCwweGZmLDB4MDksMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwKLTB4MDEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDMwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ5LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4MDAsMHhmZiwweDkxLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAxLDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDAwLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwNywweGZmLDB4NDIsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHgwMywweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MDIsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDkxLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDA4LDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAzLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMSwweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDQsMHhmZiwweDkxLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDA0LDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0OSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHg2MiwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDAxLDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0OSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHg2MiwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDA1LDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg5MiwweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NjUsMHhmZiwweDY1LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDllLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDEsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ5LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDYyLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4ODEsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MjEsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NzEsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ5LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDQ4LDB4ZmYsCi0weDEwLDB4ZmYsMHgwZiwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg2NiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg3NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg1NCwweGZmLDB4ODYsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4NDksMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDYyLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsCi0weDg2LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHgwMSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4OGEsMHhmZiwKLTB4NjcsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDg2LDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDc1LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4ODIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDA4LDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDg2LDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGIwLDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDg5LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg1NSwweGZmLAotMHg2MCwweGZmLDB4MjYsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDksMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDEwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwKLTB4ODksMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MzUsMHhmZiwweDYwLDB4ZmYsMHgyNiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ5LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgxMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDIwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weDYwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwYywweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDgsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDg2LDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweGIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMSwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwweDg3LDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDg4LDB4ZmYsMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg3LDB4ZmYsMHg5YiwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDBjLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMSwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4NmEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4OWUsMHhmZiwKLTB4NjcsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4M2YsMHhmZiwweDY5LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDY2LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgzOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg2YSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4MiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NmEsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4NywweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDgyLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDg2LDB4ZmYsMHg4NywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHgwMiwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4ODYsMHhmZiwweDk3LDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDY0LDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgzNSwweGZmLAotMHgwMSwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg5NiwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MzQsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4NjUsMHhmZiwweDAxLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDk2LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMiwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg0OSwweGZmLAotMHgwMiwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHg0OSwweGZmLDB4MTAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwKLTB4MTAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDI1LDB4ZmYsMHg2ZCwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHhiZSwweGZmLAotMHg5OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLDB4ODgsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwKLTB4ODMsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwweDg4LDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsCi0weDgzLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM1LDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLAotMHg5OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLDB4ODgsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwKLTB4ODMsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YzQsMHhmZiwweDg4LDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGM1LDB4ZmYsCi0weDgzLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLAotMHg5OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLDB4ODgsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwKLTB4ODMsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwweDg4LDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsCi0weDgzLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM1LDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLAotMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgyNSwweGZmLDB4NmUsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4OGUsMHhmZiwKLTB4OTgsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwweDg4LDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDczLDB4ZmYsCi0weDgzLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsMHg4OCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhjNCwweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhjNCwweGZmLDB4MjAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweGU5LDB4ZmYsCi0weDAxLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDI4LDB4ZmYsMHgwMSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgyOSwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHg2NiwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MzQsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4NzUsMHhmZiwweDEwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsCi0weDAwLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHgzMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg5OCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4MjUsMHhmZiwKLTB4NzAsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4MmUsMHhmZiwweDgwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQyLDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLAotMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHg0MSwweGZmLDB4NjMsMHhmZiwweDcyLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwKLTB4ODAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTcsMHhmZiwweDAwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQ2LDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLAotMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHg0NSwweGZmLDB4NjMsMHhmZiwweDcyLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTcsMHhmZiwweDgwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQyLDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4MCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHg0MSwweGZmLAotMHg2MywweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLDB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwKLTB4ODAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTcsMHhmZiwweDAwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLAotMHhmMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4MDAsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGIsMHhmZiwweDgwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDg4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHhlYSwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg3NCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTcsMHhmZiwKLTB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweDgwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weDYzLDB4ZmYsMHg3MiwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLAotMHgwMCwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MGIsMHhmZiwKLTB4ODAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDg4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weGVhLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg3NCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDcyLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDM1LDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MGUsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MTAsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDA4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDEwLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHgwMiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MTAsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4YjAsMHhmZiwweGIwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsMHgzMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4NzgsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4NDgsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDQwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ5LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgxOCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MTgsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDE4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4MGIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDA4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgyMiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5ZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4MjIsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4OWYsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgyMiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5ZiwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4MjIsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4OWYsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDQ4LDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhiMCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4ODYsMHhmZiwweDk3LDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDgwLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsMHg4NCwweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwYiwweGZmLDB4MGMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwKLTB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4MGIsMHhmZiwweDBjLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGIwLDB4ZmYsCi0weDg4LDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4YywweGZmLDB4M2IsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTEsMHhmZiwKLTB4ODIsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDg5LDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwYywweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4MGMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDgwLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMiwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg0NSwweGZmLAotMHg3NiwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHhkZSwweGZmLDB4MDAsMHhmZiwweGEwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4ODQsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAyLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDQ1LDB4ZmYsMHg3NywweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHgyZSwweGZmLAotMHgwMCwweGZmLDB4YTAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4N2UsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGU1LDB4ZmYsCi0weDc3LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDhlLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NjQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweDM4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDc3LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGU1LDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NjQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4OGYsMHhmZiwKLTB4MzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDc4LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDM1LDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDksMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ODUsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDU2LDB4ZmYsCi0weDAwLDB4ZmYsMHgwOSwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsMHgyMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhjMSwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDQsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDUsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDE1LDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHg0NSwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ODYsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4ODYsMHhmZiwweDhiLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweGM4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweGM4LDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg2LDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5YiwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHgwNSwweGZmLDB4ODEsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MjEsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NzEsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDdmLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA5LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLAotMHg3ZSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4YjEsMHhmZiwKLTB4MDgsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGM1LDB4ZmYsCi0weDdhLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGJlLDB4ZmYsMHgwMCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg0NiwweGZmLAotMHhlMSwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4N2EsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4NjAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweGE3LDB4ZmYsCi0weDBjLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhjNCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsCi0weGZmLDB4ZmYsMHhmZiwweGZmIH07CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kva29yZzEyMTIva29yZzEyMTIuYyBiL3NvdW5kL3BjaS9rb3JnMTIxMi9rb3JnMTIxMi5jCmluZGV4IGY0Yzg1YjUuLjRhNDRjMGYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9rb3JnMTIxMi9rb3JnMTIxMi5jCisrKyBiL3NvdW5kL3BjaS9rb3JnMTIxMi9rb3JnMTIxMi5jCkBAIC0yNjAsMTQgKzI2MCw2IEBACiAjZGVmaW5lIENPTU1BTkRfQUNLX0RFTEFZICAgMTMgICAgICAgICAvLyBudW1iZXIgb2YgUlRDIHRpY2tzIHRvIHdhaXQgZm9yIGFuIGFja25vd2xlZGdlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgZnJvbSB0aGUgY2FyZCBhZnRlciBzZW5kaW5nIGEgY29tbWFuZC4KIAotI2lmZGVmIENPTkZJR19TTkRfS09SRzEyMTJfRklSTVdBUkVfSU5fS0VSTkVMCi0jaW5jbHVkZSAia29yZzEyMTItZmlybXdhcmUuaCIKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgc3RhdGljX2RzcF9jb2RlID0gewotCS5kYXRhID0gKHU4ICopZHNwQ29kZSwKLQkuc2l6ZSA9IHNpemVvZiBkc3BDb2RlCi19OwotI2VuZGlmCi0KIGVudW0gQ2xvY2tTb3VyY2VJbmRleCB7CiAgICBLMTIxMl9DTEtJRFhfQWRhdEF0NDRfMUsgPSAwLCAgICAvLyBzZWxlY3RzIHNvdXJjZSBhcyBBREFUIGF0IDQ0LjEga0h6CiAgICBLMTIxMl9DTEtJRFhfQWRhdEF0NDhLLCAgICAgICAgICAvLyBzZWxlY3RzIHNvdXJjZSBhcyBBREFUIGF0IDQ4IGtIegpAQCAtNDEyLDkgKzQwNCw3IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oImtvcmcxMjEyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgie3tLT1JHLGtvcmcxMjEyfX0iKTsKLSNpZm5kZWYgQ09ORklHX1NORF9LT1JHMTIxMl9GSVJNV0FSRV9JTl9LRVJORUwKIE1PRFVMRV9GSVJNV0FSRSgia29yZy9rMTIxMi5kc3AiKTsKLSNlbmRpZgogCiBzdGF0aWMgaW50IGluZGV4W1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfSURYOyAgICAgLyogSW5kZXggMC1NQVggKi8KIHN0YXRpYyBjaGFyICppZFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX1NUUjsJICAgLyogSUQgZm9yIHRoaXMgY2FyZCAqLwpAQCAtMjM0OCw5ICsyMzM4LDYgQEAKICAgICAgICAga29yZzEyMTItPkFkYXRUaW1lQ29kZVBoeSA9IGtvcmcxMjEyLT5zaGFyZWRCdWZmZXJQaHkgKwogCQlvZmZzZXRvZihzdHJ1Y3QgS29yZ1NoYXJlZEJ1ZmZlciwgQWRhdFRpbWVDb2RlKTsKIAotI2lmZGVmIENPTkZJR19TTkRfS09SRzEyMTJfRklSTVdBUkVfSU5fS0VSTkVMCi0JZHNwX2NvZGUgPSAmc3RhdGljX2RzcF9jb2RlOwotI2Vsc2UKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZkc3BfY29kZSwgImtvcmcvazEyMTIuZHNwIiwgJnBjaS0+ZGV2KTsKIAlpZiAoZXJyIDwgMCkgewogCQlyZWxlYXNlX2Zpcm13YXJlKGRzcF9jb2RlKTsKQEAgLTIzNTgsMTUgKzIzNDUsMTIgQEAKIAkJc25kX2tvcmcxMjEyX2ZyZWUoa29yZzEyMTIpOwogCQlyZXR1cm4gZXJyOwogCX0KLSNlbmRpZgogCiAJaWYgKHNuZF9kbWFfYWxsb2NfcGFnZXMoU05EUlZfRE1BX1RZUEVfREVWLCBzbmRfZG1hX3BjaV9kYXRhKHBjaSksCiAJCQkJZHNwX2NvZGUtPnNpemUsICZrb3JnMTIxMi0+ZG1hX2RzcCkgPCAwKSB7CiAJCXNuZF9wcmludGsoS0VSTl9FUlIgImtvcmcxMjEyOiBjYW5ub3QgYWxsb2NhdGUgZHNwIGNvZGUgbWVtb3J5ICglemQgYnl0ZXMpXG4iLCBkc3BfY29kZS0+c2l6ZSk7CiAgICAgICAgICAgICAgICAgc25kX2tvcmcxMjEyX2ZyZWUoa29yZzEyMTIpOwotI2lmbmRlZiBDT05GSUdfU05EX0tPUkcxMjEyX0ZJUk1XQVJFX0lOX0tFUk5FTAogCQlyZWxlYXNlX2Zpcm13YXJlKGRzcF9jb2RlKTsKLSNlbmRpZgogICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgICAgICB9CiAKQEAgLTIzNzYsOSArMjM2MCw3IEBACiAKIAltZW1jcHkoa29yZzEyMTItPmRtYV9kc3AuYXJlYSwgZHNwX2NvZGUtPmRhdGEsIGRzcF9jb2RlLT5zaXplKTsKIAotI2lmbmRlZiBDT05GSUdfU05EX0tPUkcxMjEyX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXJlbGVhc2VfZmlybXdhcmUoZHNwX2NvZGUpOwotI2VuZGlmCiAKIAlyYyA9IHNuZF9rb3JnMTIxMl9TZW5kMTIxMkNvbW1hbmQoa29yZzEyMTIsIEsxMjEyX0RCX1JlYm9vdENhcmQsIDAsIDAsIDAsIDApOwogCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvbWFlc3RybzMuYyBiL3NvdW5kL3BjaS9tYWVzdHJvMy5jCmluZGV4IGE1MzZjNTkuLjAwMzdiZTcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9tYWVzdHJvMy5jCisrKyBiL3NvdW5kL3BjaS9tYWVzdHJvMy5jCkBAIC01OCwxMCArNTgsOCBAQAogCQkie0VTUyxBbGxlZ3JvIFBDSX0sIgogCQkie0VTUyxBbGxlZ3JvLTEgUENJfSwiCiAJICAgICAgICAie0VTUyxDYW55b24zRC0yL0xFIFBDSX19Iik7Ci0jaWZuZGVmIENPTkZJR19TTkRfTUFFU1RSTzNfRklSTVdBUkVfSU5fS0VSTkVMCiBNT0RVTEVfRklSTVdBUkUoImVzcy9tYWVzdHJvM19hc3NwX2tlcm5lbC5mdyIpOwogTU9EVUxFX0ZJUk1XQVJFKCJlc3MvbWFlc3RybzNfYXNzcF9taW5pc3JjLmZ3Iik7Ci0jZW5kaWYKIAogc3RhdGljIGludCBpbmRleFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0lEWDsJLyogSW5kZXggMC1NQVggKi8KIHN0YXRpYyBjaGFyICppZFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX1NUUjsJLyogSUQgZm9yIHRoaXMgY2FyZCAqLwpAQCAtMjEwMSwxNjMgKzIwOTksNiBAQAogfQogCiAKLSNpZmRlZiBDT05GSUdfU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTAotCi0vKgotICogRFNQIENvZGUgaW1hZ2VzCi0gKi8KLQotc3RhdGljIGNvbnN0IHUxNiBhc3NwX2tlcm5lbF9pbWFnZVtdID0gewotICAgIDB4Nzk4MCwgMHgwMDMwLCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAzQjQsIDB4Nzk4MCwgMHgwMEZCLCAweDc5ODAsIDB4MDBERCwgMHg3OTgwLCAweDAzQjQsIAotICAgIDB4Nzk4MCwgMHgwMzMyLCAweDc5ODAsIDB4MDI4NywgMHg3OTgwLCAweDAzQjQsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAzQjQsIAotICAgIDB4Nzk4MCwgMHgwMzFBLCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAyMkYsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAzQjQsIAotICAgIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAwNjMsIDB4Nzk4MCwgMHgwMDZCLCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAzQjQsIAotICAgIDB4QkY4MCwgMHgyQzdDLCAweDg4MDYsIDB4ODgwNCwgMHhCRTQwLCAweEJDMjAsIDB4QUUwOSwgMHgxMDAwLCAweEFFMEEsIDB4MDAwMSwgMHg2OTM4LCAweEVCMDgsIAotICAgIDB4MDA1MywgMHg2OTVBLCAweEVCMDgsIDB4MDBENiwgMHgwMDA5LCAweDhCODgsIDB4Njk4MCwgMHhFMzg4LCAweDAwMzYsIDB4QkUzMCwgMHhCQzIwLCAweDY5MDksIAotICAgIDB4QjgwMSwgMHg5MDA5LCAweEJFNDEsIDB4QkU0MSwgMHg2OTI4LCAweEVCODgsIDB4MDA3OCwgMHhCRTQxLCAweEJFNDAsIDB4Nzk4MCwgMHgwMDM4LCAweEJFNDEsIAotICAgIDB4QkU0MSwgMHg5MDNBLCAweDY5MzgsIDB4RTMwOCwgMHgwMDU2LCAweDkwM0EsIDB4QkU0MSwgMHhCRTQwLCAweEVGMDAsIDB4OTAzQSwgMHg2OTM5LCAweEUzMDgsIAotICAgIDB4MDA1RSwgMHg5MDNBLCAweEVGMDAsIDB4NjkwQiwgMHg2NjBDLCAweEVGOEMsIDB4NjkwQSwgMHg2NjBDLCAweDYyMEIsIDB4NjYwOSwgMHhFRjAwLCAweDY5MTAsIAotICAgIDB4NjYwRiwgMHhFRjA0LCAweEUzODgsIDB4MDA3NSwgMHg2OTBFLCAweDY2MEYsIDB4NjIxMCwgMHg2NjBELCAweEVGMDAsIDB4NjkwRSwgMHg2NjBELCAweEVGMDAsIAotICAgIDB4QUU3MCwgMHgwMDAxLCAweEJDMjAsIDB4QUUyNywgMHgwMDAxLCAweDY5MzksIDB4RUIwOCwgMHgwMDVELCAweDY5MjYsIDB4QjgwMSwgMHg5MDI2LCAweDAwMjYsIAotICAgIDB4OEI4OCwgMHg2OTgwLCAweEUzODgsIDB4MDBDQiwgMHg5MDI4LCAweDBEMjgsIDB4NDIxMSwgMHhFMTAwLCAweDAwN0EsIDB4NDcxMSwgMHhFMTAwLCAweDAwQTAsIAotICAgIDB4N0E4MCwgMHgwMDYzLCAweEI4MTEsIDB4NjYwQSwgMHg2MjA5LCAweEUzMDQsIDB4MDA3QSwgMHgwQzBCLCAweDQwMDUsIDB4MTAwQSwgMHhCQTAxLCAweDkwMTIsIAotICAgIDB4MEMxMiwgMHg0MDAyLCAweDc5ODAsIDB4MDBBRiwgMHg3QTgwLCAweDAwNkIsIDB4QkUwMiwgMHg2MjBFLCAweDY2MEQsIDB4QkExMCwgMHhFMzQ0LCAweDAwN0EsIAotICAgIDB4MEMxMCwgMHg0MDA1LCAweDEwMEUsIDB4QkEwMSwgMHg5MDEyLCAweDBDMTIsIDB4NDAwMiwgMHgxMDAzLCAweEJBMDIsIDB4OTAxMiwgMHgwQzEyLCAweDQwMDAsIAotICAgIDB4MTAwMywgMHhFMzg4LCAweDAwQkEsIDB4MTAwNCwgMHg3OTgwLCAweDAwQkMsIDB4MTAwNCwgMHhCQTAxLCAweDkwMTIsIDB4MEMxMiwgMHg0MDAxLCAweDBDMDUsIAotICAgIDB4NDAwMywgMHgwQzA2LCAweDQwMDQsIDB4MTAxMSwgMHhCRkIwLCAweDAxRkYsIDB4OTAxMiwgMHgwQzEyLCAweDQwMDYsIDB4QkMyMCwgMHhFRjAwLCAweEFFMjYsIAotICAgIDB4MTAyOCwgMHg2OTcwLCAweEJGRDAsIDB4MDAwMSwgMHg5MDcwLCAweEUzODgsIDB4MDA3QSwgMHhBRTI4LCAweDAwMDAsIDB4RUYwMCwgMHhBRTcwLCAweDAzMDAsIAotICAgIDB4MEM3MCwgMHhCMDBDLCAweEFFNUEsIDB4MDAwMCwgMHhFRjAwLCAweDdBODAsIDB4MDM4QSwgMHg2OTdGLCAweEI4MDEsIDB4OTA3RiwgMHgwMDU2LCAweDhCODgsIAotICAgIDB4MENBMCwgMHhCMDA4LCAweEFGNzEsIDB4QjAwMCwgMHg0RTcxLCAweEUyMDAsIDB4MDBGMywgMHhBRTU2LCAweDEwNTcsIDB4MDA1NiwgMHgwQ0EwLCAweEIwMDgsIAotICAgIDB4ODA1NiwgMHg3OTgwLCAweDAzQTEsIDB4MDgxMCwgMHhCRkEwLCAweDEwNTksIDB4RTMwNCwgMHgwM0ExLCAweDgwNTYsIDB4Nzk4MCwgMHgwM0ExLCAweDdBODAsIAotICAgIDB4MDM4QSwgMHhCRjAxLCAweEJFNDMsIDB4QkU1OSwgMHg5MDdDLCAweDY5MzcsIDB4RTM4OCwgMHgwMTBELCAweEJBMDEsIDB4RTMwOCwgMHgwMTBDLCAweEFFNzEsIAotICAgIDB4MDAwNCwgMHgwQzcxLCAweDUwMDAsIDB4NjkzNiwgMHg5MDM3LCAweEJGMEEsIDB4MTA5RSwgMHg4QjhBLCAweEFGODAsIDB4ODAxNCwgMHg0QzgwLCAweEJGMEEsIAotICAgIDB4MDU2MCwgMHhGNTAwLCAweEJGMEEsIDB4MDUyMCwgMHhCOTAwLCAweEJCMTcsIDB4OTBBMCwgMHg2OTE3LCAweEUzODgsIDB4MDE0OCwgMHgwRDE3LCAweEUxMDAsIAotICAgIDB4MDEyNywgMHhCRjBDLCAweDA1NzgsIDB4QkYwRCwgMHgwNTdDLCAweDc5ODAsIDB4MDEyQiwgMHhCRjBDLCAweDA1MzgsIDB4QkYwRCwgMHgwNTNDLCAweDY5MDAsIAotICAgIDB4RTMwOCwgMHgwMTM1LCAweDhCOEMsIDB4QkU1OSwgMHhCQjA3LCAweDkwQTAsIDB4QkMyMCwgMHg3OTgwLCAweDAxNTcsIDB4MDMwQywgMHg4QjhCLCAweEI5MDMsIAotICAgIDB4ODgwOSwgMHhCRUM2LCAweDAxM0UsIDB4NjlBQywgMHg5MEFCLCAweDY5QUQsIDB4OTBBQiwgMHgwODEzLCAweDY2MEEsIDB4RTM0NCwgMHgwMTQ0LCAweDAzMDksIAotICAgIDB4ODMwQywgMHhCQzIwLCAweDc5ODAsIDB4MDE1NywgMHg2OTU1LCAweEUzODgsIDB4MDE1NywgMHg3QzM4LCAweEJGMEIsIDB4MDU3OCwgMHhGNTAwLCAweEJGMEIsIAotICAgIDB4MDUzOCwgMHhCOTA3LCAweDg4MDksIDB4QkVDNiwgMHgwMTU2LCAweDEwQUIsIDB4OTBBQSwgMHg2OTc0LCAweEUzODgsIDB4MDE2MywgMHhBRTcyLCAweDA1NDAsIAotICAgIDB4RjUwMCwgMHhBRTcyLCAweDA1MDAsIDB4QUU2MSwgMHgxMDNCLCAweDdBODAsIDB4MDJGNiwgMHg2OTc4LCAweEUzODgsIDB4MDE4MiwgMHg4QjhDLCAweEJGMEMsIAotICAgIDB4MDU2MCwgMHhFNTAwLCAweDdDNDAsIDB4MDgxNCwgMHhCQTIwLCAweDg4MTIsIDB4NzMzRCwgMHg3QTgwLCAweDAzODAsIDB4NzMzRSwgMHg3QTgwLCAweDAzODAsIAotICAgIDB4OEI4QywgMHhCRjBDLCAweDA1NkMsIDB4RTUwMCwgMHg3QzQwLCAweDA4MTQsIDB4QkEyQywgMHg4ODEyLCAweDczM0YsIDB4N0E4MCwgMHgwMzgwLCAweDczNDAsIAotICAgIDB4N0E4MCwgMHgwMzgwLCAweDY5NzUsIDB4RTM4OCwgMHgwMThFLCAweEFFNzIsIDB4MDU0OCwgMHhGNTAwLCAweEFFNzIsIDB4MDUwOCwgMHhBRTYxLCAweDEwNDEsIAotICAgIDB4N0E4MCwgMHgwMkY2LCAweDY5NzksIDB4RTM4OCwgMHgwMUFELCAweDhCOEMsIDB4QkYwQywgMHgwNTYwLCAweEU1MDAsIDB4N0M0MCwgMHgwODE0LCAweEJBMTgsIAotICAgIDB4ODgxMiwgMHg3MzQzLCAweDdBODAsIDB4MDM4MCwgMHg3MzQ0LCAweDdBODAsIDB4MDM4MCwgMHg4QjhDLCAweEJGMEMsIDB4MDU2QywgMHhFNTAwLCAweDdDNDAsIAotICAgIDB4MDgxNCwgMHhCQTI0LCAweDg4MTIsIDB4NzM0NSwgMHg3QTgwLCAweDAzODAsIDB4NzM0NiwgMHg3QTgwLCAweDAzODAsIDB4Njk3NiwgMHhFMzg4LCAweDAxQjksIAotICAgIDB4QUU3MiwgMHgwNTU4LCAweEY1MDAsIDB4QUU3MiwgMHgwNTE4LCAweEFFNjEsIDB4MTA0NywgMHg3QTgwLCAweDAyRjYsIDB4Njk3QSwgMHhFMzg4LCAweDAxRDgsIAotICAgIDB4OEI4QywgMHhCRjBDLCAweDA1NjAsIDB4RTUwMCwgMHg3QzQwLCAweDA4MTQsIDB4QkEwOCwgMHg4ODEyLCAweDczNDksIDB4N0E4MCwgMHgwMzgwLCAweDczNEEsIAotICAgIDB4N0E4MCwgMHgwMzgwLCAweDhCOEMsIDB4QkYwQywgMHgwNTZDLCAweEU1MDAsIDB4N0M0MCwgMHgwODE0LCAweEJBMTQsIDB4ODgxMiwgMHg3MzRCLCAweDdBODAsIAotICAgIDB4MDM4MCwgMHg3MzRDLCAweDdBODAsIDB4MDM4MCwgMHhCQzIxLCAweEFFMUMsIDB4MTA5MCwgMHg4QjhBLCAweEJGMEEsIDB4MDU2MCwgMHhFNTAwLCAweDdDNDAsIAotICAgIDB4MDgxMiwgMHhCODA0LCAweDg4MTMsIDB4OEI4RCwgMHhCRjBELCAweDA1NkMsIDB4RTUwMCwgMHg3QzQwLCAweDA4MTUsIDB4QjgwNCwgMHg4ODExLCAweDdBODAsIAotICAgIDB4MDM0QSwgMHg4QjhBLCAweEJGMEEsIDB4MDU2MCwgMHhFNTAwLCAweDdDNDAsIDB4NzMxRiwgMHhCOTAzLCAweDg4MDksIDB4QkVDNiwgMHgwMUY5LCAweDU0OEEsIAotICAgIDB4QkUwMywgMHg5OEEwLCAweDczMjAsIDB4QjkwMywgMHg4ODA5LCAweEJFQzYsIDB4MDIwMSwgMHg1NDhBLCAweEJFMDMsIDB4OThBMCwgMHgxRjIwLCAweDJGMUYsIAotICAgIDB4OTgyNiwgMHhCQzIwLCAweDY5MzUsIDB4RTM4OCwgMHgwM0ExLCAweDY5MzMsIDB4QjgwMSwgMHg5MDMzLCAweEJGQTAsIDB4MDJFRSwgMHhFMzA4LCAweDAzQTEsIAotICAgIDB4OTAzMywgMHhCRjAwLCAweDY5NTEsIDB4RTM4OCwgMHgwMjFGLCAweDczMzQsIDB4QkU4MCwgMHg1NzYwLCAweEJFMDMsIDB4OUY3RSwgMHhCRTU5LCAweDkwMzQsIAotICAgIDB4Njk3RSwgMHgwRDUxLCAweDkwMTMsIDB4QkMyMCwgMHg2OTVDLCAweEUzODgsIDB4MDNBMSwgMHg3MzVFLCAweEJFODAsIDB4NTc2MCwgMHhCRTAzLCAweDlGN0UsIAotICAgIDB4QkU1OSwgMHg5MDVFLCAweDY5N0UsIDB4MEQ1QywgMHg5MDEzLCAweDc5ODAsIDB4MDNBMSwgMHg3QTgwLCAweDAzOEEsIDB4QkYwMSwgMHhCRTQzLCAweDY5NzcsIAotICAgIDB4RTM4OCwgMHgwMjRFLCAweEFFNjEsIDB4MTA0RCwgMHgwMDYxLCAweDhCODgsIDB4Njk4MCwgMHhFMzg4LCAweDAyNEUsIDB4OTA3MSwgMHgwRDcxLCAweDAwMEIsIAotICAgIDB4QUZBMCwgMHg4MDEwLCAweEFGQTAsIDB4ODAxMCwgMHgwODEwLCAweDY2MEEsIDB4RTMwOCwgMHgwMjQ5LCAweDAwMDksIDB4MDgxMCwgMHg2NjBDLCAweEUzODgsIAotICAgIDB4MDI0RSwgMHg4MDBCLCAweEJDMjAsIDB4Njk3QiwgMHhFMzg4LCAweDAzQTEsIDB4QkYwQSwgMHgxMDlFLCAweDhCOEEsIDB4QUY4MCwgMHg4MDE0LCAweDRDODAsIAotICAgIDB4RTEwMCwgMHgwMjY2LCAweDY5N0MsIDB4QkY5MCwgMHgwNTYwLCAweDkwNzIsIDB4MDM3MiwgMHg2OTdDLCAweEJGOTAsIDB4MDU2NCwgMHg5MDczLCAweDA0NzMsIAotICAgIDB4Nzk4MCwgMHgwMjcwLCAweDY5N0MsIDB4QkY5MCwgMHgwNTIwLCAweDkwNzIsIDB4MDM3MiwgMHg2OTdDLCAweEJGOTAsIDB4MDUyNCwgMHg5MDczLCAweDA0NzMsIAotICAgIDB4Njk3QywgMHhCODAxLCAweDkwN0MsIDB4QkYwQSwgMHgxMEZELCAweDhCOEEsIDB4QUY4MCwgMHg4MDEwLCAweDczNEYsIDB4NTQ4QSwgMHhCRTAzLCAweDk4ODAsIAotICAgIDB4QkMyMSwgMHg3MzI2LCAweDU0OEIsIDB4QkUwMywgMHg2MThCLCAweDk4OEMsIDB4QkUwMywgMHg2MTgwLCAweDk4ODAsIDB4Nzk4MCwgMHgwM0ExLCAweDdBODAsIAotICAgIDB4MDM4QSwgMHgwRDI4LCAweDQ3MTEsIDB4RTEwMCwgMHgwMkJFLCAweEFGMTIsIDB4NDAwNiwgMHg2OTEyLCAweEJGQjAsIDB4MEMwMCwgMHhFMzg4LCAweDAyQjYsIAotICAgIDB4QkZBMCwgMHgwODAwLCAweEUzODgsIDB4MDJCMiwgMHg2OTEyLCAweEJGQjAsIDB4MEMwMCwgMHhCRkEwLCAweDA0MDAsIDB4RTM4OCwgMHgwMkEzLCAweDY5MDksIAotICAgIDB4OTAwQiwgMHg3OTgwLCAweDAyQTUsIDB4QUYwQiwgMHg0MDA1LCAweDY5MDEsIDB4OTAwNSwgMHg2OTAyLCAweDkwMDYsIDB4NDMxMSwgMHhFMTAwLCAweDAyRUQsIAotICAgIDB4NjkxMSwgMHhCRkMwLCAweDIwMDAsIDB4OTAxMSwgMHg3OTgwLCAweDAyRUQsIDB4NjkwOSwgMHg5MDBCLCAweDc5ODAsIDB4MDJCOCwgMHhBRjBCLCAweDQwMDUsIAotICAgIDB4QUYwNSwgMHg0MDAzLCAweEFGMDYsIDB4NDAwNCwgMHg3OTgwLCAweDAyRUQsIDB4QUYxMiwgMHg0MDA2LCAweDY5MTIsIDB4QkZCMCwgMHgwQzAwLCAweEUzODgsIAotICAgIDB4MDJFNywgMHhCRkEwLCAweDA4MDAsIDB4RTM4OCwgMHgwMkUzLCAweDY5MTIsIDB4QkZCMCwgMHgwQzAwLCAweEJGQTAsIDB4MDQwMCwgMHhFMzg4LCAweDAyRDQsIAotICAgIDB4NjkwRCwgMHg5MDEwLCAweDc5ODAsIDB4MDJENiwgMHhBRjEwLCAweDQwMDUsIDB4NjkwMSwgMHg5MDA1LCAweDY5MDIsIDB4OTAwNiwgMHg0MzExLCAweEUxMDAsIAotICAgIDB4MDJFRCwgMHg2OTExLCAweEJGQzAsIDB4MjAwMCwgMHg5MDExLCAweDc5ODAsIDB4MDJFRCwgMHg2OTBELCAweDkwMTAsIDB4Nzk4MCwgMHgwMkU5LCAweEFGMTAsIAotICAgIDB4NDAwNSwgMHhBRjA1LCAweDQwMDMsIDB4QUYwNiwgMHg0MDA0LCAweEJDMjAsIDB4Njk3MCwgMHg5MDcxLCAweDdBODAsIDB4MDA3OCwgMHg2OTcxLCAweDkwNzAsIAotICAgIDB4Nzk4MCwgMHgwM0ExLCAweEJDMjAsIDB4MDM2MSwgMHg4QjhCLCAweDY5ODAsIDB4RUY4OCwgMHgwMjcyLCAweDAzNzIsIDB4NzgwNCwgMHg5MDcxLCAweDBENzEsIAotICAgIDB4OEI4QSwgMHgwMDBCLCAweEI5MDMsIDB4ODgwOSwgMHhCRUM2LCAweDAzMDksIDB4NjlBOCwgMHg5MEFCLCAweDY5QTgsIDB4OTBBQSwgMHgwODEwLCAweDY2MEEsIAotICAgIDB4RTM0NCwgMHgwMzBGLCAweDAwMDksIDB4MDgxMCwgMHg2NjBDLCAweEUzODgsIDB4MDMxNCwgMHg4MDBCLCAweEJDMjAsIDB4Njk2MSwgMHhCODAxLCAweDkwNjEsIAotICAgIDB4Nzk4MCwgMHgwMkY3LCAweDdBODAsIDB4MDM4QSwgMHg1RDM1LCAweDAwMDEsIDB4NjkzNCwgMHhCODAxLCAweDkwMzQsIDB4QkYwQSwgMHgxMDlFLCAweDhCOEEsIAotICAgIDB4QUY4MCwgMHg4MDE0LCAweDQ4ODAsIDB4QUU3MiwgMHgwNTUwLCAweEY1MDAsIDB4QUU3MiwgMHgwNTEwLCAweEFFNjEsIDB4MTA1MSwgMHg3QTgwLCAweDAyRjYsIAotICAgIDB4Nzk4MCwgMHgwM0ExLCAweDdBODAsIDB4MDM4QSwgMHg1RDM1LCAweDAwMDIsIDB4Njk1RSwgMHhCODAxLCAweDkwNUUsIDB4QkYwQSwgMHgxMDlFLCAweDhCOEEsIAotICAgIDB4QUY4MCwgMHg4MDE0LCAweDQ3ODAsIDB4QUU3MiwgMHgwNTU4LCAweEY1MDAsIDB4QUU3MiwgMHgwNTE4LCAweEFFNjEsIDB4MTA1QywgMHg3QTgwLCAweDAyRjYsIAotICAgIDB4Nzk4MCwgMHgwM0ExLCAweDAwMUMsIDB4OEI4OCwgMHg2OTgwLCAweEVGODgsIDB4OTAxRCwgMHgwRDFELCAweDEwMEYsIDB4NjYxMCwgMHhFMzhDLCAweDAzNTgsIAotICAgIDB4NjkwRSwgMHg2NjEwLCAweDYyMEYsIDB4NjYwRCwgMHhCQTBGLCAweEUzMDEsIDB4MDM3QSwgMHgwNDEwLCAweDhCOEEsIDB4QjkwMywgMHg4ODA5LCAweEJFQzYsIAotICAgIDB4MDM2QywgMHg2QThDLCAweDYxQUEsIDB4OThBQiwgMHg2QThDLCAweDYxQUIsIDB4OThBRCwgMHg2QThDLCAweDYxQUQsIDB4OThBOSwgMHg2QThDLCAweDYxQTksIAotICAgIDB4OThBQSwgMHg3QzA0LCAweDhCOEIsIDB4N0MwNCwgMHg4QjhELCAweDdDMDQsIDB4OEI4OSwgMHg3QzA0LCAweDA4MTQsIDB4NjYwRSwgMHhFMzA4LCAweDAzNzksIAotICAgIDB4MDQwRCwgMHg4NDEwLCAweEJDMjEsIDB4NjkxQywgMHhCODAxLCAweDkwMUMsIDB4Nzk4MCwgMHgwMzRBLCAweEI5MDMsIDB4ODgwOSwgMHg4QjhBLCAweEJFQzYsIAotICAgIDB4MDM4OCwgMHg1NEFDLCAweEJFMDMsIDB4NjE4QywgMHg5OEFBLCAweEVGMDAsIDB4QkMyMCwgMHhCRTQ2LCAweDA4MDksIDB4OTA2QiwgMHgwODBBLCAweDkwNkMsIAotICAgIDB4MDgwQiwgMHg5MDZELCAweDA4MUEsIDB4OTA2MiwgMHgwODFCLCAweDkwNjMsIDB4MDgxRSwgMHg5MDY0LCAweEJFNTksIDB4ODgxRSwgMHg4MDY1LCAweDgxNjYsIAotICAgIDB4ODI2NywgMHg4MzY4LCAweDg0NjksIDB4ODU2QSwgMHhFRjAwLCAweEJDMjAsIDB4Njk2QiwgMHg4ODA5LCAweDY5NkMsIDB4ODgwQSwgMHg2OTZELCAweDg4MEIsIAotICAgIDB4Njk2MiwgMHg4ODFBLCAweDY5NjMsIDB4ODgxQiwgMHg2OTY0LCAweDg4MUUsIDB4MDA2NSwgMHgwMTY2LCAweDAyNjcsIDB4MDM2OCwgMHgwNDY5LCAweDA1NkEsIAotICAgIDB4QkUzQSwgCi19OwotCi0vKgotICogTWluaSBzYW1wbGUgcmF0ZSBjb252ZXJ0ZXIgY29kZSBpbWFnZQotICogdGhhdCBpcyB0byBiZSBsb2FkZWQgYXQgMHg0MDAgb24gdGhlIERTUC4KLSAqLwotc3RhdGljIGNvbnN0IHUxNiBhc3NwX21pbmlzcmNfaW1hZ2VbXSA9IHsKLQotICAgIDB4QkY4MCwgMHgxMDFFLCAweDkwNkUsIDB4MDA2RSwgMHg4Qjg4LCAweDY5ODAsIDB4RUY4OCwgMHg5MDZGLCAweDBENkYsIDB4NjkwMCwgMHhFQjA4LCAweDA0MTIsIAotICAgIDB4QkMyMCwgMHg2OTZFLCAweEI4MDEsIDB4OTA2RSwgMHg3OTgwLCAweDA0MDMsIDB4QjkwRSwgMHg4ODA3LCAweEJFNDMsIDB4QkYwMSwgMHhCRTQ3LCAweEJFNDEsIAotICAgIDB4N0E4MCwgMHgwMDJBLCAweEJFNDAsIDB4MzAyOSwgMHhFRkNDLCAweEJFNDEsIDB4N0E4MCwgMHgwMDI4LCAweEJFNDAsIDB4MzAyOCwgMHhFRkNDLCAweDY5MDcsIAotICAgIDB4RTMwOCwgMHgwNDJBLCAweDY5MDksIDB4OTAyQywgMHg3OTgwLCAweDA0MkMsIDB4NjkwRCwgMHg5MDJDLCAweDEwMDksIDB4ODgxQSwgMHgxMDBBLCAweEJBMDEsIAotICAgIDB4ODgxQiwgMHgxMDBELCAweDg4MUMsIDB4MTAwRSwgMHhCQTAxLCAweDg4MUQsIDB4QkY4MCwgMHgwMEVELCAweDg4MUUsIDB4MDUwQywgMHgwMTI0LCAweEI5MDQsIAotICAgIDB4OTAyNywgMHg2OTE4LCAweEUzMDgsIDB4MDRCMywgMHg5MDJELCAweDY5MTMsIDB4QkZBMCwgMHg3NTk4LCAweEY3MDQsIDB4QUUyRCwgMHgwMEZGLCAweDhCOEQsIAotICAgIDB4NjkxOSwgMHhFMzA4LCAweDA0NjMsIDB4NjkxQSwgMHhFMzA4LCAweDA0NTYsIDB4QjkwNywgMHg4ODA5LCAweEJFQzYsIDB4MDQ1MywgMHgxMEE5LCAweDkwQUQsIAotICAgIDB4Nzk4MCwgMHgwNDdDLCAweEI5MDMsIDB4ODgwOSwgMHhCRUM2LCAweDA0NjAsIDB4MTg4OSwgMHg2QzIyLCAweDkwQUQsIDB4MTBBOSwgMHg2RTIzLCAweDZDMjIsIAotICAgIDB4OTBBRCwgMHg3OTgwLCAweDA0N0MsIDB4MTAxQSwgMHhFMzA4LCAweDA0NkYsIDB4QjkwMywgMHg4ODA5LCAweEJFQzYsIDB4MDQ2QywgMHgxMEE5LCAweDkwQTAsIAotICAgIDB4OTBBRCwgMHg3OTgwLCAweDA0N0MsIDB4QjkwMSwgMHg4ODA5LCAweEJFQzYsIDB4MDQ3QiwgMHgxODg5LCAweDZDMjIsIDB4OTBBMCwgMHg5MEFELCAweDEwQTksIAotICAgIDB4NkUyMywgMHg2QzIyLCAweDkwQTAsIDB4OTBBRCwgMHg2OTJELCAweEUzMDgsIDB4MDQ5QywgMHgwMTI0LCAweEI3MDMsIDB4QjkwMiwgMHg4ODE4LCAweDhCODksIAotICAgIDB4MDIyQywgMHgxMDhBLCAweDdDMDQsIDB4OTBBMCwgMHg2OTJCLCAweDg4MUYsIDB4N0U4MCwgMHgwNTVCLCAweDY5MkEsIDB4ODgwOSwgMHg4Qjg5LCAweDk5QTAsIAotICAgIDB4MTA4QSwgMHg5MEEwLCAweDY5MkIsIDB4ODgxRiwgMHg3RTgwLCAweDA1NUIsIDB4NjkyQSwgMHg4ODA5LCAweDhCODksIDB4OTlBRiwgMHg3Qjk5LCAweDA0ODQsIAotICAgIDB4MDEyNCwgMHgwNjBGLCAweDEwMUIsIDB4MjAxMywgMHg5MDFCLCAweEJGQTAsIDB4N0ZGRiwgMHhFMzQ0LCAweDA0QUMsIDB4OTAxQiwgMHg4Qjg5LCAweDdBODAsIAotICAgIDB4MDUxQSwgMHg2OTI3LCAweEJBMDEsIDB4OTAyNywgMHg3QTgwLCAweDA1MjMsIDB4NjkyNywgMHhFMzA4LCAweDA0OUUsIDB4Nzk4MCwgMHgwNTBGLCAweDA2MjQsIAotICAgIDB4MTAyNiwgMHgyMDEzLCAweDkwMjYsIDB4QkZBMCwgMHg3RkZGLCAweEUzMDQsIDB4MDRDMCwgMHg4QjhELCAweDdBODAsIDB4MDUxQSwgMHg3OTgwLCAweDA0QjQsIAotICAgIDB4OTAyNiwgMHgxMDEzLCAweDMwMjYsIDB4OTAxQiwgMHg4QjhELCAweDdBODAsIDB4MDUxQSwgMHg3QTgwLCAweDA1MjMsIDB4MTAyNywgMHhCQTAxLCAweDkwMjcsIAotICAgIDB4RTMwOCwgMHgwNEI0LCAweDAxMjQsIDB4MDYwRiwgMHg4Qjg5LCAweDY5MUEsIDB4RTMwOCwgMHgwNEVBLCAweDY5MTksIDB4RTM4OCwgMHgwNEUwLCAweEI5MDMsIAotICAgIDB4ODgwOSwgMHhCRUM2LCAweDA0REQsIDB4MUZBMCwgMHgyRkFFLCAweDk4QTksIDB4Nzk4MCwgMHgwNTBGLCAweEI5MDEsIDB4ODgxOCwgMHhCOTA3LCAweDg4MDksIAotICAgIDB4QkVDNiwgMHgwNEU3LCAweDEwRUUsIDB4OTBBOSwgMHg3OTgwLCAweDA1MEYsIDB4NjkxOSwgMHhFMzA4LCAweDA0RkUsIDB4QjkwMywgMHg4ODA5LCAweEJFNDYsIAotICAgIDB4QkVDNiwgMHgwNEZBLCAweDE3QTAsIDB4QkUxRSwgMHgxRkFFLCAweEJGQkYsIDB4RkYwMCwgMHhCRTEzLCAweEJGREYsIDB4ODA4MCwgMHg5OUE5LCAweEJFNDcsIAotICAgIDB4Nzk4MCwgMHgwNTBGLCAweEI5MDEsIDB4ODgwOSwgMHhCRUM2LCAweDA1MEUsIDB4MTZBMCwgMHgyNkEwLCAweEJGQjcsIDB4RkYwMCwgMHhCRTFFLCAweDFFQTAsIAotICAgIDB4MkVBRSwgMHhCRkJGLCAweEZGMDAsIDB4QkUxMywgMHhCRkRGLCAweDgwODAsIDB4OTlBOSwgMHg4NTBDLCAweDg2MEYsIDB4NjkwNywgMHhFMzg4LCAweDA1MTYsIAotICAgIDB4MEQwNywgMHg4NTEwLCAweEJFNTksIDB4ODgxRSwgMHhCRTRBLCAweEVGMDAsIDB4MTAxRSwgMHg5MDFDLCAweDEwMUYsIDB4OTAxRCwgMHgxMEEwLCAweDkwMUUsIAotICAgIDB4MTBBMCwgMHg5MDFGLCAweEVGMDAsIDB4MTAxRSwgMHgzMDFDLCAweDkwMjAsIDB4NzMxQiwgMHg1NDIwLCAweEJFMDMsIDB4OTgyNSwgMHgxMDI1LCAweDIwMUMsIAotICAgIDB4OTAyNSwgMHg3MzI1LCAweDU0MTQsIDB4QkUwMywgMHg4QjhFLCAweDk4ODAsIDB4NjkyRiwgMHhFMzg4LCAweDA1MzksIDB4QkU1OSwgMHhCQjA3LCAweDYxODAsIAotICAgIDB4OTg4MCwgMHg4QkEwLCAweDEwMUYsIDB4MzAxRCwgMHg5MDIxLCAweDczMUIsIDB4NTQyMSwgMHhCRTAzLCAweDk4MkUsIDB4MTAyRSwgMHgyMDFELCAweDkwMkUsIAotICAgIDB4NzMyRSwgMHg1NDE1LCAweEJFMDMsIDB4OTg4MCwgMHg2OTJGLCAweEUzODgsIDB4MDU0RiwgMHhCRTU5LCAweEJCMDcsIDB4NjE4MCwgMHg5ODgwLCAweDhCQTAsIAotICAgIDB4NjkxOCwgMHhFRjA4LCAweDczMjUsIDB4NTQxNiwgMHhCRTAzLCAweDk4QTAsIDB4NzMyRSwgMHg1NDE3LCAweEJFMDMsIDB4OThBMCwgMHhFRjAwLCAweDhCQTAsIAotICAgIDB4QkVDNiwgMHgwNTZCLCAweEJFNTksIDB4QkIwNCwgMHhBQTkwLCAweEJFMDQsIDB4QkUxRSwgMHg5OUUwLCAweDhCRTAsIDB4NjlBMCwgMHg5MEQwLCAweDY5QTAsIAotICAgIDB4OTBEMCwgMHgwODFGLCAweEI4MDUsIDB4ODgxRiwgMHg4QjkwLCAweDY5QTAsIDB4OTBEMCwgMHg2OUEwLCAweDkwOTAsIDB4OEJEMCwgMHg4QkQ4LCAweEJFMUYsIAotICAgIDB4RUYwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIAotICAgIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSBhc3NwX2tlcm5lbCA9IHsKLQkuZGF0YSA9ICh1OCAqKWFzc3Bfa2VybmVsX2ltYWdlLAotCS5zaXplID0gc2l6ZW9mIGFzc3Bfa2VybmVsX2ltYWdlCi19Owotc3RhdGljIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSBhc3NwX21pbmlzcmMgPSB7Ci0JLmRhdGEgPSAodTggKilhc3NwX21pbmlzcmNfaW1hZ2UsCi0JLnNpemUgPSBzaXplb2YgYXNzcF9taW5pc3JjX2ltYWdlCi19OwotCi0jZWxzZSAvKiBDT05GSUdfU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTCAqLwotCi0jaWZkZWYgX19MSVRUTEVfRU5ESUFOCi1zdGF0aWMgaW5saW5lIHZvaWQgc25kX20zX2NvbnZlcnRfZnJvbV9sZShjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KSB7IH0KLSNlbHNlCi1zdGF0aWMgdm9pZCBzbmRfbTNfY29udmVydF9mcm9tX2xlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCi17Ci0JaW50IGk7Ci0JdTE2ICpkYXRhID0gKHUxNiAqKWZ3LT5kYXRhOwotCi0JZm9yIChpID0gMDsgaSA8IGZ3LT5zaXplIC8gMjsgKytpKQotCQlsZTE2X3RvX2NwdXMoJmRhdGFbaV0pOwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBDT05GSUdfU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTCAqLwotCi0KIC8qCiAgKiBpbml0aWFsaXplIEFTU1AKICAqLwpAQCAtMjI3MSw3ICsyMTEyLDcgQEAKIHN0YXRpYyB2b2lkIHNuZF9tM19hc3NwX2luaXQoc3RydWN0IHNuZF9tMyAqY2hpcCkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKLQl1MTYgKmRhdGE7CisJY29uc3QgdTE2ICpkYXRhOwogCiAJLyogemVybyBrZXJuZWwgZGF0YSAqLwogCWZvciAoaSA9IDA7IGkgPCAoUkVWX0JfREFUQV9NRU1PUllfVU5JVF9MRU5HVEggKiBOVU1fVU5JVFNfS0VSTkVMX0RBVEEpIC8gMjsgaSsrKQpAQCAtMjI4OSwxMCArMjEzMCwxMSBAQAogCQkJICBLREFUQV9ETUFfWEZFUjApOwogCiAJLyogd3JpdGUga2VybmVsIGludG8gY29kZSBtZW1vcnkuLiAqLwotCWRhdGEgPSAodTE2ICopY2hpcC0+YXNzcF9rZXJuZWxfaW1hZ2UtPmRhdGE7CisJZGF0YSA9IChjb25zdCB1MTYgKiljaGlwLT5hc3NwX2tlcm5lbF9pbWFnZS0+ZGF0YTsKIAlmb3IgKGkgPSAwIDsgaSAqIDIgPCBjaGlwLT5hc3NwX2tlcm5lbF9pbWFnZS0+c2l6ZTsgaSsrKSB7CiAJCXNuZF9tM19hc3NwX3dyaXRlKGNoaXAsIE1FTVRZUEVfSU5URVJOQUxfQ09ERSwgCi0JCQkJICBSRVZfQl9DT0RFX01FTU9SWV9CRUdJTiArIGksIGRhdGFbaV0pOworCQkJCSAgUkVWX0JfQ09ERV9NRU1PUllfQkVHSU4gKyBpLAorCQkJCSAgbGUxNl90b19jcHUoZGF0YVtpXSkpOwogCX0KIAogCS8qCkBAIC0yMzAxLDEwICsyMTQzLDEwIEBACiAJICogZHJvcCBpdCB0aGVyZS4gIEl0IHNlZW1zIHRoYXQgdGhlIG1pbmlzcmMgZG9lc24ndAogCSAqIG5lZWQgdmVjdG9ycywgc28gd2Ugd29uJ3QgYm90aGVyIHdpdGggdGhlbS4uCiAJICovCi0JZGF0YSA9ICh1MTYgKiljaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UtPmRhdGE7CisJZGF0YSA9IChjb25zdCB1MTYgKiljaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UtPmRhdGE7CiAJZm9yIChpID0gMDsgaSAqIDIgPCBjaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UtPnNpemU7IGkrKykgewogCQlzbmRfbTNfYXNzcF93cml0ZShjaGlwLCBNRU1UWVBFX0lOVEVSTkFMX0NPREUsIAotCQkJCSAgMHg0MDAgKyBpLCBkYXRhW2ldKTsKKwkJCQkgIDB4NDAwICsgaSwgbGUxNl90b19jcHUoZGF0YVtpXSkpOwogCX0KIAogCS8qCkBAIC0yNDI3LDYgKzIyNjksMjkgQEAKIAlvdXR3KDB4ZmZmZiwgaW8gKyBHUElPX01BU0spOwogfQogCitzdGF0aWMgdm9pZAorc25kX20zX2h2X2luaXQoc3RydWN0IHNuZF9tMyAqY2hpcCkKK3sKKwl1bnNpZ25lZCBsb25nIGlvID0gY2hpcC0+aW9iYXNlOworCXUxNiB2YWwgPSBHUElfVk9MX0RPV04gfCBHUElfVk9MX1VQOworCisJaWYgKCFjaGlwLT5pc19vbW5pYm9vaykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBWb2x1bWUgYnV0dG9ucyBvbiBzb21lIEhQIE9tbmlCb29rIGxhcHRvcHMKKwkgKiByZXF1aXJlIHNvbWUgR1BJTyBtYWdpYyB0byB3b3JrIGNvcnJlY3RseS4KKwkgKi8KKwlvdXR3KDB4ZmZmZiwgaW8gKyBHUElPX01BU0spOworCW91dHcoMHgwMDAwLCBpbyArIEdQSU9fREFUQSk7CisKKwlvdXR3KH52YWwsIGlvICsgR1BJT19NQVNLKTsKKwlvdXR3KGludyhpbyArIEdQSU9fRElSRUNUSU9OKSAmIH52YWwsIGlvICsgR1BJT19ESVJFQ1RJT04pOworCW91dHcodmFsLCBpbyArIEdQSU9fTUFTSyk7CisKKwlvdXR3KDB4ZmZmZiwgaW8gKyBHUElPX01BU0spOworfQorCiBzdGF0aWMgaW50CiBzbmRfbTNfY2hpcF9pbml0KHN0cnVjdCBzbmRfbTMgKmNoaXApCiB7CkBAIC0yNDQyLDIxICsyMzA3LDYgQEAKIAkgICAgICAgRElTQUJMRV9MRUdBQ1kpOwogCXBjaV93cml0ZV9jb25maWdfd29yZChwY2lkZXYsIFBDSV9MRUdBQ1lfQVVESU9fQ1RSTCwgdyk7CiAKLQlpZiAoY2hpcC0+aXNfb21uaWJvb2spIHsKLQkJLyoKLQkJICogVm9sdW1lIGJ1dHRvbnMgb24gc29tZSBIUCBPbW5pQm9vayBsYXB0b3BzIGRvbid0IHdvcmsKLQkJICogY29ycmVjdGx5LiBUaGlzIG1ha2VzIHRoZW0gd29yayBmb3IgdGhlIG1vc3QgcGFydC4KLQkJICoKLQkJICogVm9sdW1lIHVwIGFuZCBkb3duIGJ1dHRvbnMgb24gdGhlIGxhcHRvcCBzaWRlIHdvcmsuCi0JCSAqIEZuK2N1cnNvcl91cCAodm9sbWUgdXApIHdvcmtzLgotCQkgKiBGbitjdXJzb3JfZG93biAodm9sdW1lIGRvd24pIGRvZXNuJ3Qgd29yay4KLQkJICogRm4rRjcgKG11dGUpIHdvcmtzIGFjdHMgYXMgdm9sdW1lIHVwLgotCQkgKi8KLQkJb3V0dyh+KEdQSV9WT0xfRE9XTnxHUElfVk9MX1VQKSwgaW8gKyBHUElPX01BU0spOwotCQlvdXR3KGludyhpbyArIEdQSU9fRElSRUNUSU9OKSAmIH4oR1BJX1ZPTF9ET1dOfEdQSV9WT0xfVVApLCBpbyArIEdQSU9fRElSRUNUSU9OKTsKLQkJb3V0dygoR1BJX1ZPTF9ET1dOfEdQSV9WT0xfVVApLCBpbyArIEdQSU9fREFUQSk7Ci0JCW91dHcoMHhmZmZmLCBpbyArIEdQSU9fTUFTSyk7Ci0JfQogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwY2lkZXYsIFBDSV9BTExFR1JPX0NPTkZJRywgJm4pOwogCW4gJj0gfihIVl9DVFJMX0VOQUJMRSB8IFJFRFVDRURfREVCT1VOQ0UgfCBIVl9CVVRUT05fRlJPTV9HRCk7CiAJbiB8PSBjaGlwLT5odl9jb25maWc7CkBAIC0yNTQ4LDEwICsyMzk4LDggQEAKIAlpZiAoY2hpcC0+aW9iYXNlKQogCQlwY2lfcmVsZWFzZV9yZWdpb25zKGNoaXAtPnBjaSk7CiAKLSNpZm5kZWYgQ09ORklHX1NORF9NQUVTVFJPM19GSVJNV0FSRV9JTl9LRVJORUwKIAlyZWxlYXNlX2Zpcm13YXJlKGNoaXAtPmFzc3Bfa2VybmVsX2ltYWdlKTsKIAlyZWxlYXNlX2Zpcm13YXJlKGNoaXAtPmFzc3BfbWluaXNyY19pbWFnZSk7Ci0jZW5kaWYKIAogCXBjaV9kaXNhYmxlX2RldmljZShjaGlwLT5wY2kpOwogCWtmcmVlKGNoaXApOwpAQCAtMjY0Miw2ICsyNDkwLDggQEAKIAlzbmRfbTNfZW5hYmxlX2ludHMoY2hpcCk7CiAJc25kX20zX2FtcF9lbmFibGUoY2hpcCwgMSk7CiAKKwlzbmRfbTNfaHZfaW5pdChjaGlwKTsKKwogCXNuZF9wb3dlcl9jaGFuZ2Vfc3RhdGUoY2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTI3NDEsMjkgKzI1OTEsMTkgQEAKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCi0jaWZkZWYgQ09ORklHX1NORF9NQUVTVFJPM19GSVJNV0FSRV9JTl9LRVJORUwKLQljaGlwLT5hc3NwX2tlcm5lbF9pbWFnZSA9ICZhc3NwX2tlcm5lbDsKLSNlbHNlCiAJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmY2hpcC0+YXNzcF9rZXJuZWxfaW1hZ2UsCiAJCQkgICAgICAgImVzcy9tYWVzdHJvM19hc3NwX2tlcm5lbC5mdyIsICZwY2ktPmRldik7CiAJaWYgKGVyciA8IDApIHsKIAkJc25kX20zX2ZyZWUoY2hpcCk7CiAJCXJldHVybiBlcnI7Ci0JfSBlbHNlCi0JCXNuZF9tM19jb252ZXJ0X2Zyb21fbGUoY2hpcC0+YXNzcF9rZXJuZWxfaW1hZ2UpOwotI2VuZGlmCisJfQogCi0jaWZkZWYgQ09ORklHX1NORF9NQUVTVFJPM19GSVJNV0FSRV9JTl9LRVJORUwKLQljaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UgPSAmYXNzcF9taW5pc3JjOwotI2Vsc2UKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZjaGlwLT5hc3NwX21pbmlzcmNfaW1hZ2UsCiAJCQkgICAgICAgImVzcy9tYWVzdHJvM19hc3NwX21pbmlzcmMuZnciLCAmcGNpLT5kZXYpOwogCWlmIChlcnIgPCAwKSB7CiAJCXNuZF9tM19mcmVlKGNoaXApOwogCQlyZXR1cm4gZXJyOwotCX0gZWxzZQotCQlzbmRfbTNfY29udmVydF9mcm9tX2xlKGNoaXAtPmFzc3BfbWluaXNyY19pbWFnZSk7Ci0jZW5kaWYKKwl9CiAKIAlpZiAoKGVyciA9IHBjaV9yZXF1ZXN0X3JlZ2lvbnMocGNpLCBjYXJkLT5kcml2ZXIpKSA8IDApIHsKIAkJc25kX20zX2ZyZWUoY2hpcCk7CkBAIC0yNzgxLDYgKzI2MjEsOCBAQAogCiAJc25kX20zX2FtcF9lbmFibGUoY2hpcCwgMSk7CiAKKwlzbmRfbTNfaHZfaW5pdChjaGlwKTsKKwogCXRhc2tsZXRfaW5pdCgmY2hpcC0+aHd2b2xfdHEsIHNuZF9tM191cGRhdGVfaHdfdm9sdW1lLCAodW5zaWduZWQgbG9uZyljaGlwKTsKIAogCWlmIChyZXF1ZXN0X2lycShwY2ktPmlycSwgc25kX20zX2ludGVycnVwdCwgSVJRRl9TSEFSRUQsCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvbWl4YXJ0L21peGFydF9od2RlcC5jIGIvc291bmQvcGNpL21peGFydC9taXhhcnRfaHdkZXAuYwppbmRleCAxMjJjMjhlLi5mOTg2MDMxIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvbWl4YXJ0L21peGFydF9od2RlcC5jCisrKyBiL3NvdW5kL3BjaS9taXhhcnQvbWl4YXJ0X2h3ZGVwLmMKQEAgLTYxMyw3ICs2MTMsNyBAQAogCQkJICAgKGludClkc3AtPmxlbmd0aCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KLQlpZiAoY29weV9mcm9tX3VzZXIoZncuZGF0YSwgZHNwLT5pbWFnZSwgZHNwLT5sZW5ndGgpKSB7CisJaWYgKGNvcHlfZnJvbV91c2VyKCh2b2lkICopIGZ3LmRhdGEsIGRzcC0+aW1hZ2UsIGRzcC0+bGVuZ3RoKSkgewogCQl2ZnJlZShmdy5kYXRhKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL25tMjU2L25tMjU2LmMgYi9zb3VuZC9wY2kvbm0yNTYvbm0yNTYuYwppbmRleCA3ZWZiODM4Li4wNmQxM2U3IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvbm0yNTYvbm0yNTYuYworKysgYi9zb3VuZC9wY2kvbm0yNTYvbm0yNTYuYwpAQCAtMTMwMiw4ICsxMzAyLDggQEAKIAkJLnJlYWQgPSBzbmRfbm0yNTZfYWM5N19yZWFkLAogCX07CiAKLQljaGlwLT5hYzk3X3JlZ3MgPSBrY2FsbG9jKHNpemVvZihzaG9ydCksCi0JCQkJICBBUlJBWV9TSVpFKG5tMjU2X2FjOTdfaW5pdF92YWwpLCBHRlBfS0VSTkVMKTsKKwljaGlwLT5hYzk3X3JlZ3MgPSBrY2FsbG9jKEFSUkFZX1NJWkUobm0yNTZfYWM5N19pbml0X3ZhbCksCisJCQkJICBzaXplb2Yoc2hvcnQpLCBHRlBfS0VSTkVMKTsKIAlpZiAoISBjaGlwLT5hYzk3X3JlZ3MpCiAJCXJldHVybiAtRU5PTUVNOwogCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvb3h5Z2VuL2hpZmllci5jIGIvc291bmQvcGNpL294eWdlbi9oaWZpZXIuYwppbmRleCAwOTBkZDQzLi43NDQyNDYwIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvb3h5Z2VuL2hpZmllci5jCisrKyBiL3NvdW5kL3BjaS9veHlnZW4vaGlmaWVyLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogTU9EVUxFX0FVVEhPUigiQ2xlbWVucyBMYWRpc2NoIDxjbGVtZW5zQGxhZGlzY2guZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlRlbXBvVGVjIEhpRmllciBkcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKIAogc3RhdGljIGludCBpbmRleFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0lEWDsKIHN0YXRpYyBjaGFyICppZFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX1NUUjsKQEAgLTYyLDE2ICs2MiwyOCBAQAogCQkJIEFLNDM5Nl9XUklURSB8IChyZWcgPDwgOCkgfCB2YWx1ZSk7CiB9CiAKK3N0YXRpYyB2b2lkIHVwZGF0ZV9hazQzOTZfdm9sdW1lKHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9MQ0hfQVRULCBjaGlwLT5kYWNfdm9sdW1lWzBdKTsKKwlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X1JDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbMV0pOworfQorCitzdGF0aWMgdm9pZCBoaWZpZXJfcmVnaXN0ZXJzX2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlzdHJ1Y3QgaGlmaWVyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCisJYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzEsIEFLNDM5Nl9ESUZfMjRfTVNCIHwgQUs0Mzk2X1JTVE4pOworCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfQ09OVFJPTF8yLCBkYXRhLT5hazQzOTZfY3RsMik7CisJYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzMsIEFLNDM5Nl9QQ00pOworCXVwZGF0ZV9hazQzOTZfdm9sdW1lKGNoaXApOworfQorCiBzdGF0aWMgdm9pZCBoaWZpZXJfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQogewogCXN0cnVjdCBoaWZpZXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CiAKIAlkYXRhLT5hazQzOTZfY3RsMiA9IEFLNDM5Nl9TTVVURSB8IEFLNDM5Nl9ERU1fT0ZGIHwgQUs0Mzk2X0RGU19OT1JNQUw7Ci0JYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzEsIEFLNDM5Nl9ESUZfMjRfTVNCIHwgQUs0Mzk2X1JTVE4pOwotCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfQ09OVFJPTF8yLCBkYXRhLT5hazQzOTZfY3RsMik7Ci0JYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzMsIEFLNDM5Nl9QQ00pOwotCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfTENIX0FUVCwgMCk7Ci0JYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9SQ0hfQVRULCAwKTsKKwloaWZpZXJfcmVnaXN0ZXJzX2luaXQoY2hpcCk7CiAKIAlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiQUs0Mzk2Iik7CiAJc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNTM0MCIpOwpAQCAtMTAwLDEyICsxMTIsNiBAQAogCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfQ09OVFJPTF8xLCBBSzQzOTZfRElGXzI0X01TQiB8IEFLNDM5Nl9SU1ROKTsKIH0KIAotc3RhdGljIHZvaWQgdXBkYXRlX2FrNDM5Nl92b2x1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKLXsKLQlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X0xDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbMF0pOwotCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfUkNIX0FUVCwgY2hpcC0+ZGFjX3ZvbHVtZVsxXSk7Ci19Ci0KIHN0YXRpYyB2b2lkIHVwZGF0ZV9hazQzOTZfbXV0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQogewogCXN0cnVjdCBoaWZpZXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CkBAIC0xNDAsNiArMTQ2LDcgQEAKIAkuaW5pdCA9IGhpZmllcl9pbml0LAogCS5jb250cm9sX2ZpbHRlciA9IGhpZmllcl9jb250cm9sX2ZpbHRlciwKIAkuY2xlYW51cCA9IGhpZmllcl9jbGVhbnVwLAorCS5yZXN1bWUgPSBoaWZpZXJfcmVnaXN0ZXJzX2luaXQsCiAJLnNldF9kYWNfcGFyYW1zID0gc2V0X2FrNDM5Nl9wYXJhbXMsCiAJLnNldF9hZGNfcGFyYW1zID0gc2V0X2NzNTM0MF9wYXJhbXMsCiAJLnVwZGF0ZV9kYWNfdm9sdW1lID0gdXBkYXRlX2FrNDM5Nl92b2x1bWUsCkBAIC0xODAsNiArMTg3LDEwIEBACiAJLmlkX3RhYmxlID0gaGlmaWVyX2lkcywKIAkucHJvYmUgPSBoaWZpZXJfcHJvYmUsCiAJLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKG94eWdlbl9wY2lfcmVtb3ZlKSwKKyNpZmRlZiBDT05GSUdfUE0KKwkuc3VzcGVuZCA9IG94eWdlbl9wY2lfc3VzcGVuZCwKKwkucmVzdW1lID0gb3h5Z2VuX3BjaV9yZXN1bWUsCisjZW5kaWYKIH07CiAKIHN0YXRpYyBpbnQgX19pbml0IGFsc2FfY2FyZF9oaWZpZXJfaW5pdCh2b2lkKQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL294eWdlbi9veHlnZW4uYyBiL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuLmMKaW5kZXggNjNmMTg1Yy4uN2M4YWUzMSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi9veHlnZW4uYworKysgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbi5jCkBAIC00Myw3ICs0Myw3IEBACiAKIE1PRFVMRV9BVVRIT1IoIkNsZW1lbnMgTGFkaXNjaCA8Y2xlbWVuc0BsYWRpc2NoLmRlPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJDLU1lZGlhIENNSTg3ODggZHJpdmVyIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CiBNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgie3tDLU1lZGlhLENNSTg3ODh9fSIpOwogCiBzdGF0aWMgaW50IGluZGV4W1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfSURYOwpAQCAtODAsNiArODAsNyBAQAogCiBzdHJ1Y3QgZ2VuZXJpY19kYXRhIHsKIAl1OCBhazQzOTZfY3RsMjsKKwl1MTYgc2F2ZWRfd204Nzg1X3JlZ2lzdGVyc1syXTsKIH07CiAKIHN0YXRpYyB2b2lkIGFrNDM5Nl93cml0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1bnNpZ25lZCBpbnQgY29kZWMsCkBAIC05OSwyMCArMTAwLDM1IEBACiAKIHN0YXRpYyB2b2lkIHdtODc4NV93cml0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1OCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSkKIHsKKwlzdHJ1Y3QgZ2VuZXJpY19kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKwogCW94eWdlbl93cml0ZV9zcGkoY2hpcCwgT1hZR0VOX1NQSV9UUklHR0VSIHwKIAkJCSBPWFlHRU5fU1BJX0RBVEFfTEVOR1RIXzIgfAogCQkJIE9YWUdFTl9TUElfQ0xPQ0tfMTYwIHwKIAkJCSAoMyA8PCBPWFlHRU5fU1BJX0NPREVDX1NISUZUKSB8CiAJCQkgT1hZR0VOX1NQSV9DRU5fTEFUQ0hfQ0xPQ0tfTE8sCiAJCQkgKHJlZyA8PCA5KSB8IHZhbHVlKTsKKwlpZiAocmVnIDwgQVJSQVlfU0laRShkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzKSkKKwkJZGF0YS0+c2F2ZWRfd204Nzg1X3JlZ2lzdGVyc1tyZWddID0gdmFsdWU7CiB9CiAKLXN0YXRpYyB2b2lkIGFrNDM5Nl9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCitzdGF0aWMgdm9pZCB1cGRhdGVfYWs0Mzk2X3ZvbHVtZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgeworCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwKKwkJCSAgICAgQUs0Mzk2X0xDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbaSAqIDJdKTsKKwkJYWs0Mzk2X3dyaXRlKGNoaXAsIGksCisJCQkgICAgIEFLNDM5Nl9SQ0hfQVRULCBjaGlwLT5kYWNfdm9sdW1lW2kgKiAyICsgMV0pOworCX0KK30KKworc3RhdGljIHZvaWQgYWs0Mzk2X3JlZ2lzdGVyc19pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IGdlbmVyaWNfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CiAJdW5zaWduZWQgaW50IGk7CiAKLQlkYXRhLT5hazQzOTZfY3RsMiA9IEFLNDM5Nl9TTVVURSB8IEFLNDM5Nl9ERU1fT0ZGIHwgQUs0Mzk2X0RGU19OT1JNQUw7CiAJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgewogCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwKIAkJCSAgICAgQUs0Mzk2X0NPTlRST0xfMSwgQUs0Mzk2X0RJRl8yNF9NU0IgfCBBSzQzOTZfUlNUTik7CkBAIC0xMjAsOSArMTM2LDE2IEBACiAJCQkgICAgIEFLNDM5Nl9DT05UUk9MXzIsIGRhdGEtPmFrNDM5Nl9jdGwyKTsKIAkJYWs0Mzk2X3dyaXRlKGNoaXAsIGksCiAJCQkgICAgIEFLNDM5Nl9DT05UUk9MXzMsIEFLNDM5Nl9QQ00pOwotCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwgQUs0Mzk2X0xDSF9BVFQsIDApOwotCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwgQUs0Mzk2X1JDSF9BVFQsIDApOwogCX0KKwl1cGRhdGVfYWs0Mzk2X3ZvbHVtZShjaGlwKTsKK30KKworc3RhdGljIHZvaWQgYWs0Mzk2X2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlzdHJ1Y3QgZ2VuZXJpY19kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCWRhdGEtPmFrNDM5Nl9jdGwyID0gQUs0Mzk2X1NNVVRFIHwgQUs0Mzk2X0RFTV9PRkYgfCBBSzQzOTZfREZTX05PUk1BTDsKKwlhazQzOTZfcmVnaXN0ZXJzX2luaXQoY2hpcCk7CiAJc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkFLNDM5NiIpOwogfQogCkBAIC0xMzMsMTIgKzE1NiwyMyBAQAogCXNuZF9jb21wb25lbnRfYWRkKGNoaXAtPmNhcmQsICJBSzUzODUiKTsKIH0KIAorc3RhdGljIHZvaWQgd204Nzg1X3JlZ2lzdGVyc19pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJc3RydWN0IGdlbmVyaWNfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisKKwl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1I3LCAwKTsKKwl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1IwLCBkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzWzBdKTsKKwl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1IxLCBkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzWzFdKTsKK30KKwogc3RhdGljIHZvaWQgd204Nzg1X2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKIHsKLQl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1I3LCAwKTsKLQl3bTg3ODVfd3JpdGUoY2hpcCwgV004Nzg1X1IwLCBXTTg3ODVfTUNSX1NMQVZFIHwKLQkJICAgICBXTTg3ODVfT1NSX1NJTkdMRSB8IFdNODc4NV9GT1JNQVRfTEpVU1QpOwotCXdtODc4NV93cml0ZShjaGlwLCBXTTg3ODVfUjEsIFdNODc4NV9XTF8yNCk7CisJc3RydWN0IGdlbmVyaWNfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisKKwlkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzWzBdID0gV004Nzg1X01DUl9TTEFWRSB8CisJCVdNODc4NV9PU1JfU0lOR0xFIHwgV004Nzg1X0ZPUk1BVF9MSlVTVDsKKwlkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzWzFdID0gV004Nzg1X1dMXzI0OworCXdtODc4NV9yZWdpc3RlcnNfaW5pdChjaGlwKTsKIAlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiV004Nzg1Iik7CiB9CiAKQEAgLTE1OCw2ICsxOTIsMTIgQEAKIHsKIH0KIAorc3RhdGljIHZvaWQgZ2VuZXJpY19yZXN1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlhazQzOTZfcmVnaXN0ZXJzX2luaXQoY2hpcCk7CisJd204Nzg1X3JlZ2lzdGVyc19pbml0KGNoaXApOworfQorCiBzdGF0aWMgdm9pZCBzZXRfYWs0Mzk2X3BhcmFtcyhzdHJ1Y3Qgb3h5Z2VuICpjaGlwLAogCQkJICAgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CkBAIC0xODMsMTggKzIyMyw2IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVfYWs0Mzk2X3ZvbHVtZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQotewotCXVuc2lnbmVkIGludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgewotCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwKLQkJCSAgICAgQUs0Mzk2X0xDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbaSAqIDJdKTsKLQkJYWs0Mzk2X3dyaXRlKGNoaXAsIGksCi0JCQkgICAgIEFLNDM5Nl9SQ0hfQVRULCBjaGlwLT5kYWNfdm9sdW1lW2kgKiAyICsgMV0pOwotCX0KLX0KLQogc3RhdGljIHZvaWQgdXBkYXRlX2FrNDM5Nl9tdXRlKHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IGdlbmVyaWNfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CkBAIC0yNTYsNiArMjg0LDcgQEAKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIAkuaW5pdCA9IGdlbmVyaWNfaW5pdCwKIAkuY2xlYW51cCA9IGdlbmVyaWNfY2xlYW51cCwKKwkucmVzdW1lID0gZ2VuZXJpY19yZXN1bWUsCiAJLnNldF9kYWNfcGFyYW1zID0gc2V0X2FrNDM5Nl9wYXJhbXMsCiAJLnNldF9hZGNfcGFyYW1zID0gc2V0X3dtODc4NV9wYXJhbXMsCiAJLnVwZGF0ZV9kYWNfdm9sdW1lID0gdXBkYXRlX2FrNDM5Nl92b2x1bWUsCkBAIC0yODMsNiArMzEyLDcgQEAKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIAkuaW5pdCA9IG1lcmlkaWFuX2luaXQsCiAJLmNsZWFudXAgPSBnZW5lcmljX2NsZWFudXAsCisJLnJlc3VtZSA9IGFrNDM5Nl9yZWdpc3RlcnNfaW5pdCwKIAkuc2V0X2RhY19wYXJhbXMgPSBzZXRfYWs0Mzk2X3BhcmFtcywKIAkuc2V0X2FkY19wYXJhbXMgPSBzZXRfYWs1Mzg1X3BhcmFtcywKIAkudXBkYXRlX2RhY192b2x1bWUgPSB1cGRhdGVfYWs0Mzk2X3ZvbHVtZSwKQEAgLTMzMSw2ICszNjEsMTAgQEAKIAkuaWRfdGFibGUgPSBveHlnZW5faWRzLAogCS5wcm9iZSA9IGdlbmVyaWNfb3h5Z2VuX3Byb2JlLAogCS5yZW1vdmUgPSBfX2RldmV4aXRfcChveHlnZW5fcGNpX3JlbW92ZSksCisjaWZkZWYgQ09ORklHX1BNCisJLnN1c3BlbmQgPSBveHlnZW5fcGNpX3N1c3BlbmQsCisJLnJlc3VtZSA9IG94eWdlbl9wY2lfcmVzdW1lLAorI2VuZGlmCiB9OwogCiBzdGF0aWMgaW50IF9faW5pdCBhbHNhX2NhcmRfb3h5Z2VuX2luaXQodm9pZCkKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuLmggYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbi5oCmluZGV4IGE3MWM2ZTAuLjc0YTY0NDggMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuLmgKKysrIGIvc291bmQvcGNpL294eWdlbi9veHlnZW4uaApAQCAtMTYsNiArMTYsOCBAQAogI2RlZmluZSBQQ01fQUM5Nwk1CiAjZGVmaW5lIFBDTV9DT1VOVAk2CiAKKyNkZWZpbmUgT1hZR0VOX0lPX1NJWkUJMHgxMDAKKwogLyogbW9kZWwtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvZiBvdXRwdXRzL2lucHV0cyAqLwogI2RlZmluZSBQTEFZQkFDS18wX1RPX0kyUwkweDAwMQogI2RlZmluZSBQTEFZQkFDS18xX1RPX1NQRElGCTB4MDA0CkBAIC03OCw2ICs4MCwxMiBAQAogCXN0cnVjdCB3b3JrX3N0cnVjdCBzcGRpZl9pbnB1dF9iaXRzX3dvcms7CiAJc3RydWN0IHdvcmtfc3RydWN0IGdwaW9fd29yazsKIAl3YWl0X3F1ZXVlX2hlYWRfdCBhYzk3X3dhaXRxdWV1ZTsKKwl1bmlvbiB7CisJCXU4IF84W09YWUdFTl9JT19TSVpFXTsKKwkJX19sZTE2IF8xNltPWFlHRU5fSU9fU0laRSAvIDJdOworCQlfX2xlMzIgXzMyW09YWUdFTl9JT19TSVpFIC8gNF07CisJfSBzYXZlZF9yZWdpc3RlcnM7CisJdTE2IHNhdmVkX2FjOTdfcmVnaXN0ZXJzWzJdWzB4NDBdOwogfTsKIAogc3RydWN0IG94eWdlbl9tb2RlbCB7CkBAIC04OSw2ICs5Nyw4IEBACiAJaW50ICgqY29udHJvbF9maWx0ZXIpKHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3ICp0ZW1wbGF0ZSk7CiAJaW50ICgqbWl4ZXJfaW5pdCkoc3RydWN0IG94eWdlbiAqY2hpcCk7CiAJdm9pZCAoKmNsZWFudXApKHN0cnVjdCBveHlnZW4gKmNoaXApOworCXZvaWQgKCpzdXNwZW5kKShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKTsKKwl2b2lkICgqcmVzdW1lKShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKTsKIAl2b2lkICgqcGNtX2hhcmR3YXJlX2ZpbHRlcikodW5zaWduZWQgaW50IGNoYW5uZWwsCiAJCQkJICAgIHN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlICpoYXJkd2FyZSk7CiAJdm9pZCAoKnNldF9kYWNfcGFyYW1zKShzdHJ1Y3Qgb3h5Z2VuICpjaGlwLApAQCAtMTE3LDYgKzEyNywxMCBAQAogaW50IG94eWdlbl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBjaSwgaW50IGluZGV4LCBjaGFyICppZCwKIAkJICAgICBjb25zdCBzdHJ1Y3Qgb3h5Z2VuX21vZGVsICptb2RlbCk7CiB2b2lkIG94eWdlbl9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwY2kpOworI2lmZGVmIENPTkZJR19QTQoraW50IG94eWdlbl9wY2lfc3VzcGVuZChzdHJ1Y3QgcGNpX2RldiAqcGNpLCBwbV9tZXNzYWdlX3Qgc3RhdGUpOworaW50IG94eWdlbl9wY2lfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwY2kpOworI2VuZGlmCiAKIC8qIG94eWdlbl9taXhlci5jICovCiAKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX2lvLmMgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbl9pby5jCmluZGV4IDU1Njk2MDYuLjgzZjEzNWYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX2lvLmMKKysrIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5faW8uYwpAQCAtNDQsMTggKzQ0LDIxIEBACiB2b2lkIG94eWdlbl93cml0ZTgoc3RydWN0IG94eWdlbiAqY2hpcCwgdW5zaWduZWQgaW50IHJlZywgdTggdmFsdWUpCiB7CiAJb3V0Yih2YWx1ZSwgY2hpcC0+YWRkciArIHJlZyk7CisJY2hpcC0+c2F2ZWRfcmVnaXN0ZXJzLl84W3JlZ10gPSB2YWx1ZTsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlOCk7CiAKIHZvaWQgb3h5Z2VuX3dyaXRlMTYoc3RydWN0IG94eWdlbiAqY2hpcCwgdW5zaWduZWQgaW50IHJlZywgdTE2IHZhbHVlKQogewogCW91dHcodmFsdWUsIGNoaXAtPmFkZHIgKyByZWcpOworCWNoaXAtPnNhdmVkX3JlZ2lzdGVycy5fMTZbcmVnIC8gMl0gPSBjcHVfdG9fbGUxNih2YWx1ZSk7CiB9CiBFWFBPUlRfU1lNQk9MKG94eWdlbl93cml0ZTE2KTsKIAogdm9pZCBveHlnZW5fd3JpdGUzMihzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1bnNpZ25lZCBpbnQgcmVnLCB1MzIgdmFsdWUpCiB7CiAJb3V0bCh2YWx1ZSwgY2hpcC0+YWRkciArIHJlZyk7CisJY2hpcC0+c2F2ZWRfcmVnaXN0ZXJzLl8zMltyZWcgLyA0XSA9IGNwdV90b19sZTMyKHZhbHVlKTsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlMzIpOwogCkBAIC02Myw3ICs2NiwxMCBAQAogCQkJICB1OCB2YWx1ZSwgdTggbWFzaykKIHsKIAl1OCB0bXAgPSBpbmIoY2hpcC0+YWRkciArIHJlZyk7Ci0Jb3V0YigodG1wICYgfm1hc2spIHwgKHZhbHVlICYgbWFzayksIGNoaXAtPmFkZHIgKyByZWcpOworCXRtcCAmPSB+bWFzazsKKwl0bXAgfD0gdmFsdWUgJiBtYXNrOworCW91dGIodG1wLCBjaGlwLT5hZGRyICsgcmVnKTsKKwljaGlwLT5zYXZlZF9yZWdpc3RlcnMuXzhbcmVnXSA9IHRtcDsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlOF9tYXNrZWQpOwogCkBAIC03MSw3ICs3NywxMCBAQAogCQkJICAgdTE2IHZhbHVlLCB1MTYgbWFzaykKIHsKIAl1MTYgdG1wID0gaW53KGNoaXAtPmFkZHIgKyByZWcpOwotCW91dHcoKHRtcCAmIH5tYXNrKSB8ICh2YWx1ZSAmIG1hc2spLCBjaGlwLT5hZGRyICsgcmVnKTsKKwl0bXAgJj0gfm1hc2s7CisJdG1wIHw9IHZhbHVlICYgbWFzazsKKwlvdXR3KHRtcCwgY2hpcC0+YWRkciArIHJlZyk7CisJY2hpcC0+c2F2ZWRfcmVnaXN0ZXJzLl8xNltyZWcgLyAyXSA9IGNwdV90b19sZTE2KHRtcCk7CiB9CiBFWFBPUlRfU1lNQk9MKG94eWdlbl93cml0ZTE2X21hc2tlZCk7CiAKQEAgLTc5LDcgKzg4LDEwIEBACiAJCQkgICB1MzIgdmFsdWUsIHUzMiBtYXNrKQogewogCXUzMiB0bXAgPSBpbmwoY2hpcC0+YWRkciArIHJlZyk7Ci0Jb3V0bCgodG1wICYgfm1hc2spIHwgKHZhbHVlICYgbWFzayksIGNoaXAtPmFkZHIgKyByZWcpOworCXRtcCAmPSB+bWFzazsKKwl0bXAgfD0gdmFsdWUgJiBtYXNrOworCW91dGwodG1wLCBjaGlwLT5hZGRyICsgcmVnKTsKKwljaGlwLT5zYXZlZF9yZWdpc3RlcnMuXzMyW3JlZyAvIDRdID0gY3B1X3RvX2xlMzIodG1wKTsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlMzJfbWFza2VkKTsKIApAQCAtMTI4LDggKzE0MCwxMCBAQAogCQlveHlnZW5fd3JpdGUzMihjaGlwLCBPWFlHRU5fQUM5N19SRUdTLCByZWcpOwogCQkvKiByZXF1aXJlIHR3byAiY29tcGxldGVkIiB3cml0ZXMsIGp1c3QgdG8gYmUgc3VyZSAqLwogCQlpZiAob3h5Z2VuX2FjOTdfd2FpdChjaGlwLCBPWFlHRU5fQUM5N19JTlRfV1JJVEVfRE9ORSkgPj0gMCAmJgotCQkgICAgKytzdWNjZWVkZWQgPj0gMikKKwkJICAgICsrc3VjY2VlZGVkID49IDIpIHsKKwkJCWNoaXAtPnNhdmVkX2FjOTdfcmVnaXN0ZXJzW2NvZGVjXVtpbmRleCAvIDJdID0gZGF0YTsKIAkJCXJldHVybjsKKwkJfQogCX0KIAlzbmRfcHJpbnRrKEtFUk5fRVJSICJBQyc5NyB3cml0ZSB0aW1lb3V0XG4iKTsKIH0KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX2xpYi5jIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5fbGliLmMKaW5kZXggODk3Njk3ZC4uMjJmMzc4NSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi9veHlnZW5fbGliLmMKKysrIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5fbGliLmMKQEAgLTMyLDcgKzMyLDcgQEAKIAogTU9EVUxFX0FVVEhPUigiQ2xlbWVucyBMYWRpc2NoIDxjbGVtZW5zQGxhZGlzY2guZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkMtTWVkaWEgQ01JODc4OCBoZWxwZXIgbGlicmFyeSIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwogCiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBveHlnZW5faW50ZXJydXB0KGludCBkdW1teSwgdm9pZCAqZGV2X2lkKQpAQCAtMTczLDcgKzE3Myw3IEBACiAJaW50IGksIGo7CiAKIAlzbmRfaXByaW50ZihidWZmZXIsICJDTUk4Nzg4XG5cbiIpOwotCWZvciAoaSA9IDA7IGkgPCAweDEwMDsgaSArPSAweDEwKSB7CisJZm9yIChpID0gMDsgaSA8IE9YWUdFTl9JT19TSVpFOyBpICs9IDB4MTApIHsKIAkJc25kX2lwcmludGYoYnVmZmVyLCAiJTAyeDoiLCBpKTsKIAkJZm9yIChqID0gMDsgaiA8IDB4MTA7ICsraikKIAkJCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiAlMDJ4Iiwgb3h5Z2VuX3JlYWQ4KGNoaXAsIGkgKyBqKSk7CkBAIC0zMTQsNiArMzE0LDEwIEBACiAJCQkJICAgIE9YWUdFTl9TUERJRl9MT0NLX01BU0sgfAogCQkJCSAgICBPWFlHRU5fU1BESUZfUkFURV9NQVNLKTsKIAlveHlnZW5fd3JpdGUzMihjaGlwLCBPWFlHRU5fU1BESUZfT1VUUFVUX0JJVFMsIGNoaXAtPnNwZGlmX2JpdHMpOworCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl8yV0lSRV9CVVNfU1RBVFVTLAorCQkgICAgICAgT1hZR0VOXzJXSVJFX0xFTkdUSF84IHwKKwkJICAgICAgIE9YWUdFTl8yV0lSRV9JTlRFUlJVUFRfTUFTSyB8CisJCSAgICAgICBPWFlHRU5fMldJUkVfU1BFRURfU1RBTkRBUkQpOwogCW94eWdlbl9jbGVhcl9iaXRzOChjaGlwLCBPWFlHRU5fTVBVNDAxX0NPTlRST0wsIE9YWUdFTl9NUFU0MDFfTE9PUEJBQ0spOwogCW94eWdlbl93cml0ZTgoY2hpcCwgT1hZR0VOX0dQSV9JTlRFUlJVUFRfTUFTSywgMCk7CiAJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0dQSU9fSU5URVJSVVBUX01BU0ssIDApOwpAQCAtNDU1LDcgKzQ1OSw3IEBACiAJfQogCiAJaWYgKCEocGNpX3Jlc291cmNlX2ZsYWdzKHBjaSwgMCkgJiBJT1JFU09VUkNFX0lPKSB8fAotCSAgICBwY2lfcmVzb3VyY2VfbGVuKHBjaSwgMCkgPCAweDEwMCkgeworCSAgICBwY2lfcmVzb3VyY2VfbGVuKHBjaSwgMCkgPCBPWFlHRU5fSU9fU0laRSkgewogCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJpbnZhbGlkIFBDSSBJL08gcmFuZ2VcbiIpOwogCQllcnIgPSAtRU5YSU87CiAJCWdvdG8gZXJyX3BjaV9yZWdpb25zOwpAQCAtNTM0LDMgKzUzOCw5OSBAQAogCXBjaV9zZXRfZHJ2ZGF0YShwY2ksIE5VTEwpOwogfQogRVhQT1JUX1NZTUJPTChveHlnZW5fcGNpX3JlbW92ZSk7CisKKyNpZmRlZiBDT05GSUdfUE0KK2ludCBveHlnZW5fcGNpX3N1c3BlbmQoc3RydWN0IHBjaV9kZXYgKnBjaSwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBzbmRfY2FyZCAqY2FyZCA9IHBjaV9nZXRfZHJ2ZGF0YShwY2kpOworCXN0cnVjdCBveHlnZW4gKmNoaXAgPSBjYXJkLT5wcml2YXRlX2RhdGE7CisJdW5zaWduZWQgaW50IGksIHNhdmVkX2ludGVycnVwdF9tYXNrOworCisJc25kX3Bvd2VyX2NoYW5nZV9zdGF0ZShjYXJkLCBTTkRSVl9DVExfUE9XRVJfRDNob3QpOworCisJZm9yIChpID0gMDsgaSA8IFBDTV9DT1VOVDsgKytpKQorCQlpZiAoY2hpcC0+c3RyZWFtc1tpXSkKKwkJCXNuZF9wY21fc3VzcGVuZChjaGlwLT5zdHJlYW1zW2ldKTsKKworCWlmIChjaGlwLT5tb2RlbC0+c3VzcGVuZCkKKwkJY2hpcC0+bW9kZWwtPnN1c3BlbmQoY2hpcCk7CisKKwlzcGluX2xvY2tfaXJxKCZjaGlwLT5yZWdfbG9jayk7CisJc2F2ZWRfaW50ZXJydXB0X21hc2sgPSBjaGlwLT5pbnRlcnJ1cHRfbWFzazsKKwljaGlwLT5pbnRlcnJ1cHRfbWFzayA9IDA7CisJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0RNQV9TVEFUVVMsIDApOworCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl9JTlRFUlJVUFRfTUFTSywgMCk7CisJc3Bpbl91bmxvY2tfaXJxKCZjaGlwLT5yZWdfbG9jayk7CisKKwlzeW5jaHJvbml6ZV9pcnEoY2hpcC0+aXJxKTsKKwlmbHVzaF9zY2hlZHVsZWRfd29yaygpOworCWNoaXAtPmludGVycnVwdF9tYXNrID0gc2F2ZWRfaW50ZXJydXB0X21hc2s7CisKKwlwY2lfZGlzYWJsZV9kZXZpY2UocGNpKTsKKwlwY2lfc2F2ZV9zdGF0ZShwY2kpOworCXBjaV9zZXRfcG93ZXJfc3RhdGUocGNpLCBwY2lfY2hvb3NlX3N0YXRlKHBjaSwgc3RhdGUpKTsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wob3h5Z2VuX3BjaV9zdXNwZW5kKTsKKworc3RhdGljIGNvbnN0IHUzMiByZWdpc3RlcnNfdG9fcmVzdG9yZVtPWFlHRU5fSU9fU0laRSAvIDMyXSA9IHsKKwkweGZmZmZmZmZmLCAweDAwZmYwNzdmLCAweDAwMDExZDA4LCAweDAwN2YwMGZmLAorCTB4MDAzMDAwMDAsIDB4MDAwMDBmZTQsIDB4MGZmNzAwMWYsIDB4MDAwMDAwMDAKK307CitzdGF0aWMgY29uc3QgdTMyIGFjOTdfcmVnaXN0ZXJzX3RvX3Jlc3RvcmVbMl1bMHg0MCAvIDMyXSA9IHsKKwl7IDB4MTgyODRmYTIsIDB4MDMwNjAwMDAgfSwKKwl7IDB4MDAwMDdmYTYsIDB4MDAyMDAwMDAgfQorfTsKKworc3RhdGljIGlubGluZSBpbnQgaXNfYml0X3NldChjb25zdCB1MzIgKmJpdG1hcCwgdW5zaWduZWQgaW50IGJpdCkKK3sKKwlyZXR1cm4gYml0bWFwW2JpdCAvIDMyXSAmICgxIDw8IChiaXQgJiAzMSkpOworfQorCitzdGF0aWMgdm9pZCBveHlnZW5fcmVzdG9yZV9hYzk3KHN0cnVjdCBveHlnZW4gKmNoaXAsIHVuc2lnbmVkIGludCBjb2RlYykKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCW94eWdlbl93cml0ZV9hYzk3KGNoaXAsIGNvZGVjLCBBQzk3X1JFU0VULCAwKTsKKwltc2xlZXAoMSk7CisJZm9yIChpID0gMTsgaSA8IDB4NDA7ICsraSkKKwkJaWYgKGlzX2JpdF9zZXQoYWM5N19yZWdpc3RlcnNfdG9fcmVzdG9yZVtjb2RlY10sIGkpKQorCQkJb3h5Z2VuX3dyaXRlX2FjOTcoY2hpcCwgY29kZWMsIGkgKiAyLAorCQkJCQkgIGNoaXAtPnNhdmVkX2FjOTdfcmVnaXN0ZXJzW2NvZGVjXVtpXSk7Cit9CisKK2ludCBveHlnZW5fcGNpX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGNpKQoreworCXN0cnVjdCBzbmRfY2FyZCAqY2FyZCA9IHBjaV9nZXRfZHJ2ZGF0YShwY2kpOworCXN0cnVjdCBveHlnZW4gKmNoaXAgPSBjYXJkLT5wcml2YXRlX2RhdGE7CisJdW5zaWduZWQgaW50IGk7CisKKwlwY2lfc2V0X3Bvd2VyX3N0YXRlKHBjaSwgUENJX0QwKTsKKwlwY2lfcmVzdG9yZV9zdGF0ZShwY2kpOworCWlmIChwY2lfZW5hYmxlX2RldmljZShwY2kpIDwgMCkgeworCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJjYW5ub3QgcmVlbmFibGUgZGV2aWNlIik7CisJCXNuZF9jYXJkX2Rpc2Nvbm5lY3QoY2FyZCk7CisJCXJldHVybiAtRUlPOworCX0KKwlwY2lfc2V0X21hc3RlcihwY2kpOworCisJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0RNQV9TVEFUVVMsIDApOworCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl9JTlRFUlJVUFRfTUFTSywgMCk7CisJZm9yIChpID0gMDsgaSA8IE9YWUdFTl9JT19TSVpFOyArK2kpCisJCWlmIChpc19iaXRfc2V0KHJlZ2lzdGVyc190b19yZXN0b3JlLCBpKSkKKwkJCW94eWdlbl93cml0ZTgoY2hpcCwgaSwgY2hpcC0+c2F2ZWRfcmVnaXN0ZXJzLl84W2ldKTsKKwlpZiAoY2hpcC0+aGFzX2FjOTdfMCkKKwkJb3h5Z2VuX3Jlc3RvcmVfYWM5NyhjaGlwLCAwKTsKKwlpZiAoY2hpcC0+aGFzX2FjOTdfMSkKKwkJb3h5Z2VuX3Jlc3RvcmVfYWM5NyhjaGlwLCAxKTsKKworCWlmIChjaGlwLT5tb2RlbC0+cmVzdW1lKQorCQljaGlwLT5tb2RlbC0+cmVzdW1lKGNoaXApOworCisJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0lOVEVSUlVQVF9NQVNLLCBjaGlwLT5pbnRlcnJ1cHRfbWFzayk7CisKKwlzbmRfcG93ZXJfY2hhbmdlX3N0YXRlKGNhcmQsIFNORFJWX0NUTF9QT1dFUl9EMCk7CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKG94eWdlbl9wY2lfcmVzdW1lKTsKKyNlbmRpZiAvKiBDT05GSUdfUE0gKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX3BjbS5jIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5fcGNtLmMKaW5kZXggYjE3YzQwNS4uYzRhZDY1YSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi9veHlnZW5fcGNtLmMKKysrIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5fcGNtLmMKQEAgLTI0LDYgKzI0LDE2IEBACiAjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgogI2luY2x1ZGUgIm94eWdlbi5oIgogCisvKiBtb3N0IERNQSBjaGFubmVscyBoYXZlIGEgMTYtYml0IGNvdW50ZXIgZm9yIDMyLWJpdCB3b3JkcyAqLworI2RlZmluZSBCVUZGRVJfQllURVNfTUFYCQkoKDEgPDwgMTYpICogNCkKKy8qIHRoZSBtdWx0aWNoYW5uZWwgRE1BIGNoYW5uZWwgaGFzIGEgMjQtYml0IGNvdW50ZXIgKi8KKyNkZWZpbmUgQlVGRkVSX0JZVEVTX01BWF9NVUxUSUNICSgoMSA8PCAyNCkgKiA0KQorCisjZGVmaW5lIFBFUklPRF9CWVRFU19NSU4JCTY0CisKKyNkZWZpbmUgREVGQVVMVF9CVUZGRVJfQllURVMJCShCVUZGRVJfQllURVNfTUFYIC8gMikKKyNkZWZpbmUgREVGQVVMVF9CVUZGRVJfQllURVNfTVVMVElDSAkoMTAyNCAqIDEwMjQpCisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBveHlnZW5fc3RlcmVvX2hhcmR3YXJlID0gewogCS5pbmZvID0gU05EUlZfUENNX0lORk9fTU1BUCB8CiAJCVNORFJWX1BDTV9JTkZPX01NQVBfVkFMSUQgfApAQCAtNDQsMTEgKzU0LDExIEBACiAJLnJhdGVfbWF4ID0gMTkyMDAwLAogCS5jaGFubmVsc19taW4gPSAyLAogCS5jaGFubmVsc19tYXggPSAyLAotCS5idWZmZXJfYnl0ZXNfbWF4ID0gMjU2ICogMTAyNCwKLQkucGVyaW9kX2J5dGVzX21pbiA9IDEyOCwKLQkucGVyaW9kX2J5dGVzX21heCA9IDEyOCAqIDEwMjQsCisJLmJ1ZmZlcl9ieXRlc19tYXggPSBCVUZGRVJfQllURVNfTUFYLAorCS5wZXJpb2RfYnl0ZXNfbWluID0gUEVSSU9EX0JZVEVTX01JTiwKKwkucGVyaW9kX2J5dGVzX21heCA9IEJVRkZFUl9CWVRFU19NQVggLyAyLAogCS5wZXJpb2RzX21pbiA9IDIsCi0JLnBlcmlvZHNfbWF4ID0gMjA0OCwKKwkucGVyaW9kc19tYXggPSBCVUZGRVJfQllURVNfTUFYIC8gUEVSSU9EX0JZVEVTX01JTiwKIH07CiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgb3h5Z2VuX211bHRpY2hhbm5lbF9oYXJkd2FyZSA9IHsKIAkuaW5mbyA9IFNORFJWX1BDTV9JTkZPX01NQVAgfApAQCAtNzAsMTEgKzgwLDExIEBACiAJLnJhdGVfbWF4ID0gMTkyMDAwLAogCS5jaGFubmVsc19taW4gPSAyLAogCS5jaGFubmVsc19tYXggPSA4LAotCS5idWZmZXJfYnl0ZXNfbWF4ID0gMjA0OCAqIDEwMjQsCi0JLnBlcmlvZF9ieXRlc19taW4gPSAxMjgsCi0JLnBlcmlvZF9ieXRlc19tYXggPSAyNTYgKiAxMDI0LAorCS5idWZmZXJfYnl0ZXNfbWF4ID0gQlVGRkVSX0JZVEVTX01BWF9NVUxUSUNILAorCS5wZXJpb2RfYnl0ZXNfbWluID0gUEVSSU9EX0JZVEVTX01JTiwKKwkucGVyaW9kX2J5dGVzX21heCA9IEJVRkZFUl9CWVRFU19NQVhfTVVMVElDSCAvIDIsCiAJLnBlcmlvZHNfbWluID0gMiwKLQkucGVyaW9kc19tYXggPSAxNjM4NCwKKwkucGVyaW9kc19tYXggPSBCVUZGRVJfQllURVNfTUFYX01VTFRJQ0ggLyBQRVJJT0RfQllURVNfTUlOLAogfTsKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBveHlnZW5fYWM5N19oYXJkd2FyZSA9IHsKIAkuaW5mbyA9IFNORFJWX1BDTV9JTkZPX01NQVAgfApAQCAtODgsMTEgKzk4LDExIEBACiAJLnJhdGVfbWF4ID0gNDgwMDAsCiAJLmNoYW5uZWxzX21pbiA9IDIsCiAJLmNoYW5uZWxzX21heCA9IDIsCi0JLmJ1ZmZlcl9ieXRlc19tYXggPSAyNTYgKiAxMDI0LAotCS5wZXJpb2RfYnl0ZXNfbWluID0gMTI4LAotCS5wZXJpb2RfYnl0ZXNfbWF4ID0gMTI4ICogMTAyNCwKKwkuYnVmZmVyX2J5dGVzX21heCA9IEJVRkZFUl9CWVRFU19NQVgsCisJLnBlcmlvZF9ieXRlc19taW4gPSBQRVJJT0RfQllURVNfTUlOLAorCS5wZXJpb2RfYnl0ZXNfbWF4ID0gQlVGRkVSX0JZVEVTX01BWCAvIDIsCiAJLnBlcmlvZHNfbWluID0gMiwKLQkucGVyaW9kc19tYXggPSAyMDQ4LAorCS5wZXJpb2RzX21heCA9IEJVRkZFUl9CWVRFU19NQVggLyBQRVJJT0RfQllURVNfTUlOLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlICpjb25zdCBveHlnZW5faGFyZHdhcmVbUENNX0NPVU5UXSA9IHsKQEAgLTE1NSw2ICsxNjUsMTIgQEAKIAkJaWYgKGVyciA8IDApCiAJCQlyZXR1cm4gZXJyOwogCX0KKwlpZiAoY2hhbm5lbCA9PSBQQ01fTVVMVElDSCkgeworCQllcnIgPSBzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbWlubWF4CisJCQkocnVudGltZSwgU05EUlZfUENNX0hXX1BBUkFNX1BFUklPRF9USU1FLCAwLCA4MTkyMDAwKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KIAlzbmRfcGNtX3NldF9zeW5jKHN1YnN0cmVhbSk7CiAJY2hpcC0+c3RyZWFtc1tjaGFubmVsXSA9IHN1YnN0cmVhbTsKIApAQCAtNTE3LDYgKzUzMyw3IEBACiAJc3dpdGNoIChjbWQpIHsKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NVU1BFTkQ6CiAJCXBhdXNpbmcgPSAwOwogCQlicmVhazsKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1BBVVNFX1BVU0g6CkBAIC02NjMsMTIgKzY4MCwxNCBAQAogCQkJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXMocGNtLT5zdHJlYW1zW1NORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0tdLnN1YnN0cmVhbSwKIAkJCQkJCSAgICAgIFNORFJWX0RNQV9UWVBFX0RFViwKIAkJCQkJCSAgICAgIHNuZF9kbWFfcGNpX2RhdGEoY2hpcC0+cGNpKSwKLQkJCQkJCSAgICAgIDUxMiAqIDEwMjQsIDIwNDggKiAxMDI0KTsKKwkJCQkJCSAgICAgIERFRkFVTFRfQlVGRkVSX0JZVEVTX01VTFRJQ0gsCisJCQkJCQkgICAgICBCVUZGRVJfQllURVNfTUFYX01VTFRJQ0gpOwogCQlpZiAoaW5zKQogCQkJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXMocGNtLT5zdHJlYW1zW1NORFJWX1BDTV9TVFJFQU1fQ0FQVFVSRV0uc3Vic3RyZWFtLAogCQkJCQkJICAgICAgU05EUlZfRE1BX1RZUEVfREVWLAogCQkJCQkJICAgICAgc25kX2RtYV9wY2lfZGF0YShjaGlwLT5wY2kpLAotCQkJCQkJICAgICAgMTI4ICogMTAyNCwgMjU2ICogMTAyNCk7CisJCQkJCQkgICAgICBERUZBVUxUX0JVRkZFUl9CWVRFUywKKwkJCQkJCSAgICAgIEJVRkZFUl9CWVRFU19NQVgpOwogCX0KIAogCW91dHMgPSAhIShjaGlwLT5tb2RlbC0+cGNtX2Rldl9jZmcgJiBQTEFZQkFDS18xX1RPX1NQRElGKTsKQEAgLTY4OCw3ICs3MDcsOCBAQAogCQlzdHJjcHkocGNtLT5uYW1lLCAiRGlnaXRhbCIpOwogCQlzbmRfcGNtX2xpYl9wcmVhbGxvY2F0ZV9wYWdlc19mb3JfYWxsKHBjbSwgU05EUlZfRE1BX1RZUEVfREVWLAogCQkJCQkJICAgICAgc25kX2RtYV9wY2lfZGF0YShjaGlwLT5wY2kpLAotCQkJCQkJICAgICAgMTI4ICogMTAyNCwgMjU2ICogMTAyNCk7CisJCQkJCQkgICAgICBERUZBVUxUX0JVRkZFUl9CWVRFUywKKwkJCQkJCSAgICAgIEJVRkZFUl9CWVRFU19NQVgpOwogCX0KIAogCWlmIChjaGlwLT5oYXNfYWM5N18xKSB7CkBAIC03MTgsNyArNzM4LDggQEAKIAkJc3RyY3B5KHBjbS0+bmFtZSwgb3V0cyA/ICJGcm9udCBQYW5lbCIgOiAiQW5hbG9nIDIiKTsKIAkJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChwY20sIFNORFJWX0RNQV9UWVBFX0RFViwKIAkJCQkJCSAgICAgIHNuZF9kbWFfcGNpX2RhdGEoY2hpcC0+cGNpKSwKLQkJCQkJCSAgICAgIDEyOCAqIDEwMjQsIDI1NiAqIDEwMjQpOworCQkJCQkJICAgICAgREVGQVVMVF9CVUZGRVJfQllURVMsCisJCQkJCQkgICAgICBCVUZGRVJfQllURVNfTUFYKTsKIAl9CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvb3h5Z2VuL3ZpcnR1b3NvLmMgYi9zb3VuZC9wY2kvb3h5Z2VuL3ZpcnR1b3NvLmMKaW5kZXggN2Y4NGZhNS4uOWEyYzE2YiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi92aXJ0dW9zby5jCisrKyBiL3NvdW5kL3BjaS9veHlnZW4vdmlydHVvc28uYwpAQCAtNzksNyArNzksNyBAQAogCiBNT0RVTEVfQVVUSE9SKCJDbGVtZW5zIExhZGlzY2ggPGNsZW1lbnNAbGFkaXNjaC5kZT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQXN1cyBBVngwMCBkcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKIE1PRFVMRV9TVVBQT1JURURfREVWSUNFKCJ7e0FzdXMsQVYxMDB9LHtBc3VzLEFWMjAwfX0iKTsKIAogc3RhdGljIGludCBpbmRleFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0lEWDsKQEAgLTEzMiw2ICsxMzIsOSBAQAogCXU4IGV4dF9wb3dlcl9pbnRfcmVnOwogCXU4IGV4dF9wb3dlcl9iaXQ7CiAJdTggaGFzX3Bvd2VyOworCXU4IHBjbTE3OTZfb3ZlcnNhbXBsaW5nOworCXU4IGNzNDM5OF9mbTsKKwl1OCBjczQzNjJhX2ZtOwogfTsKIAogc3RhdGljIHZvaWQgcGNtMTc5Nl93cml0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1bnNpZ25lZCBpbnQgY29kZWMsCkBAIC0xNTksNiArMTYyLDE0IEBACiAJb3h5Z2VuX3dyaXRlX2kyYyhjaGlwLCBJMkNfREVWSUNFX0NTNDM2MkEsIHJlZywgdmFsdWUpOwogfQogCitzdGF0aWMgdm9pZCB4b25hcl9lbmFibGVfb3V0cHV0KHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCisJbXNsZWVwKGRhdGEtPmFudGlfcG9wX2RlbGF5KTsKKwlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLCBkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCk7Cit9CisKIHN0YXRpYyB2b2lkIHhvbmFyX2NvbW1vbl9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOwpAQCAtMTcwLDMyICsxODEsNTkgQEAKIAkJZGF0YS0+aGFzX3Bvd2VyID0gISEob3h5Z2VuX3JlYWQ4KGNoaXAsIGRhdGEtPmV4dF9wb3dlcl9yZWcpCiAJCQkJICAgICAmIGRhdGEtPmV4dF9wb3dlcl9iaXQpOwogCX0KLQlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19DT05UUk9MLCBHUElPX0NTNTN4MV9NX01BU0spOworCW94eWdlbl9zZXRfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0NPTlRST0wsCisJCQkgIEdQSU9fQ1M1M3gxX01fTUFTSyB8IGRhdGEtPm91dHB1dF9lbmFibGVfYml0KTsKIAlveHlnZW5fd3JpdGUxNl9tYXNrZWQoY2hpcCwgT1hZR0VOX0dQSU9fREFUQSwKIAkJCSAgICAgIEdQSU9fQ1M1M3gxX01fU0lOR0xFLCBHUElPX0NTNTN4MV9NX01BU0spOwogCW94eWdlbl9hYzk3X3NldF9iaXRzKGNoaXAsIDAsIENNOTc4MF9KQUNLLCBDTTk3ODBfRk1JQzJNSUMpOwotCW1zbGVlcChkYXRhLT5hbnRpX3BvcF9kZWxheSk7Ci0Jb3h5Z2VuX3NldF9iaXRzMTYoY2hpcCwgT1hZR0VOX0dQSU9fQ09OVFJPTCwgZGF0YS0+b3V0cHV0X2VuYWJsZV9iaXQpOwotCW94eWdlbl9zZXRfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsIGRhdGEtPm91dHB1dF9lbmFibGVfYml0KTsKKwl4b25hcl9lbmFibGVfb3V0cHV0KGNoaXApOworfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfcGNtMTc5Nl92b2x1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKKwkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxNiwgY2hpcC0+ZGFjX3ZvbHVtZVtpICogMl0pOworCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE3LCBjaGlwLT5kYWNfdm9sdW1lW2kgKiAyICsgMV0pOworCX0KK30KKworc3RhdGljIHZvaWQgdXBkYXRlX3BjbTE3OTZfbXV0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXVuc2lnbmVkIGludCBpOworCXU4IHZhbHVlOworCisJdmFsdWUgPSBQQ00xNzk2X0RNRl9ESVNBQkxFRCB8IFBDTTE3OTZfRk1UXzI0X0xKVVNUIHwgUENNMTc5Nl9BVExEOworCWlmIChjaGlwLT5kYWNfbXV0ZSkKKwkJdmFsdWUgfD0gUENNMTc5Nl9NVVRFOworCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpCisJCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMTgsIHZhbHVlKTsKK30KKworc3RhdGljIHZvaWQgcGNtMTc5Nl9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgeworCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE5LCBQQ00xNzk2X0ZMVF9TSEFSUCB8IFBDTTE3OTZfQVRTXzEpOworCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDIwLCBkYXRhLT5wY20xNzk2X292ZXJzYW1wbGluZyk7CisJCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMjEsIDApOworCX0KKwl1cGRhdGVfcGNtMTc5Nl9tdXRlKGNoaXApOyAvKiBzZXQgQVRMRCBiZWZvcmUgQVRML0FUUiAqLworCXVwZGF0ZV9wY20xNzk2X3ZvbHVtZShjaGlwKTsKIH0KIAogc3RhdGljIHZvaWQgeG9uYXJfZDJfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQogewogCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKLQl1bnNpZ25lZCBpbnQgaTsKIAogCWRhdGEtPmFudGlfcG9wX2RlbGF5ID0gMzAwOwogCWRhdGEtPm91dHB1dF9lbmFibGVfYml0ID0gR1BJT19EMl9PVVRQVVRfRU5BQkxFOworCWRhdGEtPnBjbTE3OTZfb3ZlcnNhbXBsaW5nID0gUENNMTc5Nl9PU182NDsKIAotCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxOCwgUENNMTc5Nl9NVVRFIHwgUENNMTc5Nl9ETUZfRElTQUJMRUQgfAotCQkJICAgICAgUENNMTc5Nl9GTVRfMjRfTEpVU1QgfCBQQ00xNzk2X0FUTEQpOwotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE5LCBQQ00xNzk2X0ZMVF9TSEFSUCB8IFBDTTE3OTZfQVRTXzEpOwotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDIwLCBQQ00xNzk2X09TXzY0KTsKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAyMSwgMCk7Ci0JCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMTYsIDB4MGYpOyAvKiBzZXQgQVRML0FUUiBhZnRlciBBVExEICovCi0JCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMTcsIDB4MGYpOwotCX0KKwlwY20xNzk2X2luaXQoY2hpcCk7CiAKIAlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19DT05UUk9MLCBHUElPX0QyX0FMVCk7CiAJb3h5Z2VuX2NsZWFyX2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLCBHUElPX0QyX0FMVCk7CkBAIC0yMTcsMTUxICsyNTUsNiBAQAogCXhvbmFyX2QyX2luaXQoY2hpcCk7CiB9CiAKLXN0YXRpYyB2b2lkIHhvbmFyX2R4X2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKLXsKLQlzdHJ1Y3QgeG9uYXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7Ci0KLQlkYXRhLT5hbnRpX3BvcF9kZWxheSA9IDgwMDsKLQlkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCA9IEdQSU9fRFhfT1VUUFVUX0VOQUJMRTsKLQlkYXRhLT5leHRfcG93ZXJfcmVnID0gT1hZR0VOX0dQSV9EQVRBOwotCWRhdGEtPmV4dF9wb3dlcl9pbnRfcmVnID0gT1hZR0VOX0dQSV9JTlRFUlJVUFRfTUFTSzsKLQlkYXRhLT5leHRfcG93ZXJfYml0ID0gR1BJX0RYX0VYVF9QT1dFUjsKLQotCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl8yV0lSRV9CVVNfU1RBVFVTLAotCQkgICAgICAgT1hZR0VOXzJXSVJFX0xFTkdUSF84IHwKLQkJICAgICAgIE9YWUdFTl8yV0lSRV9JTlRFUlJVUFRfTUFTSyB8Ci0JCSAgICAgICBPWFlHRU5fMldJUkVfU1BFRURfRkFTVCk7Ci0KLQkvKiBzZXQgQ1BFTiAoY29udHJvbCBwb3J0IG1vZGUpIGFuZCBwb3dlciBkb3duICovCi0JY3M0Mzk4X3dyaXRlKGNoaXAsIDgsIENTNDM5OF9DUEVOIHwgQ1M0Mzk4X1BETik7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDAxLCBDUzQzNjJBX1BETiB8IENTNDM2MkFfQ1BFTik7Ci0JLyogY29uZmlndXJlICovCi0JY3M0Mzk4X3dyaXRlKGNoaXAsIDIsIENTNDM5OF9GTV9TSU5HTEUgfAotCQkgICAgIENTNDM5OF9ERU1fTk9ORSB8IENTNDM5OF9ESUZfTEpVU1QpOwotCWNzNDM5OF93cml0ZShjaGlwLCAzLCBDUzQzOThfQVRBUElfQl9SIHwgQ1M0Mzk4X0FUQVBJX0FfTCk7Ci0JY3M0Mzk4X3dyaXRlKGNoaXAsIDQsIENTNDM5OF9NVVRFUF9MT1cgfCBDUzQzOThfUEFNVVRFKTsKLQljczQzOThfd3JpdGUoY2hpcCwgNSwgMHhmZSk7Ci0JY3M0Mzk4X3dyaXRlKGNoaXAsIDYsIDB4ZmUpOwotCWNzNDM5OF93cml0ZShjaGlwLCA3LCBDUzQzOThfUk1QX0ROIHwgQ1M0Mzk4X1JNUF9VUCB8Ci0JCSAgICAgQ1M0Mzk4X1pFUk9fQ1JPU1MgfCBDUzQzOThfU09GVF9SQU1QKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDIsIENTNDM2MkFfRElGX0xKVVNUKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDMsIENTNDM2MkFfTVVURUNfNiB8IENTNDM2MkFfQU1VVEUgfAotCQkgICAgICBDUzQzNjJBX1JNUF9VUCB8IENTNDM2MkFfWkVST19DUk9TUyB8IENTNDM2MkFfU09GVF9SQU1QKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDQsIENTNDM2MkFfUk1QX0ROIHwgQ1M0MzYyQV9ERU1fTk9ORSk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA1LCAwKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDYsIENTNDM2MkFfRk1fU0lOR0xFIHwKLQkJICAgICAgQ1M0MzYyQV9BVEFQSV9CX1IgfCBDUzQzNjJBX0FUQVBJX0FfTCk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA3LCAweDdmIHwgQ1M0MzYyQV9NVVRFKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDgsIDB4N2YgfCBDUzQzNjJBX01VVEUpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwOSwgQ1M0MzYyQV9GTV9TSU5HTEUgfAotCQkgICAgICBDUzQzNjJBX0FUQVBJX0JfUiB8IENTNDM2MkFfQVRBUElfQV9MKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MGEsIDB4N2YgfCBDUzQzNjJBX01VVEUpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwYiwgMHg3ZiB8IENTNDM2MkFfTVVURSk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDBjLCBDUzQzNjJBX0ZNX1NJTkdMRSB8Ci0JCSAgICAgIENTNDM2MkFfQVRBUElfQl9SIHwgQ1M0MzYyQV9BVEFQSV9BX0wpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwZCwgMHg3ZiB8IENTNDM2MkFfTVVURSk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDBlLCAweDdmIHwgQ1M0MzYyQV9NVVRFKTsKLQkvKiBjbGVhciBwb3dlciBkb3duICovCi0JY3M0Mzk4X3dyaXRlKGNoaXAsIDgsIENTNDM5OF9DUEVOKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDEsIENTNDM2MkFfQ1BFTik7Ci0KLQlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19DT05UUk9MLAotCQkJICBHUElPX0RYX0ZST05UX1BBTkVMIHwgR1BJT19EWF9JTlBVVF9ST1VURSk7Ci0Jb3h5Z2VuX2NsZWFyX2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLAotCQkJICAgIEdQSU9fRFhfRlJPTlRfUEFORUwgfCBHUElPX0RYX0lOUFVUX1JPVVRFKTsKLQotCXhvbmFyX2NvbW1vbl9pbml0KGNoaXApOwotCi0Jc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNDM5OCIpOwotCXNuZF9jb21wb25lbnRfYWRkKGNoaXAtPmNhcmQsICJDUzQzNjJBIik7Ci0Jc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNTM2MSIpOwotfQotCi1zdGF0aWMgdm9pZCB4b25hcl9jbGVhbnVwKHN0cnVjdCBveHlnZW4gKmNoaXApCi17Ci0Jc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOwotCi0Jb3h5Z2VuX2NsZWFyX2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLCBkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHhvbmFyX2R4X2NsZWFudXAoc3RydWN0IG94eWdlbiAqY2hpcCkKLXsKLQl4b25hcl9jbGVhbnVwKGNoaXApOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwMSwgQ1M0MzYyQV9QRE4gfCBDUzQzNjJBX0NQRU4pOwotCW94eWdlbl9jbGVhcl9iaXRzOChjaGlwLCBPWFlHRU5fRlVOQ1RJT04sIE9YWUdFTl9GVU5DVElPTl9SRVNFVF9DT0RFQyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldF9wY20xNzk2X3BhcmFtcyhzdHJ1Y3Qgb3h5Z2VuICpjaGlwLAotCQkJICAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQotewotCXVuc2lnbmVkIGludCBpOwotCXU4IHZhbHVlOwotCi0JdmFsdWUgPSBwYXJhbXNfcmF0ZShwYXJhbXMpID49IDk2MDAwID8gUENNMTc5Nl9PU18zMiA6IFBDTTE3OTZfT1NfNjQ7Ci0JZm9yIChpID0gMDsgaSA8IDQ7ICsraSkKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAyMCwgdmFsdWUpOwotfQotCi1zdGF0aWMgdm9pZCB1cGRhdGVfcGNtMTc5Nl92b2x1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKLXsKLQl1bnNpZ25lZCBpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxNiwgY2hpcC0+ZGFjX3ZvbHVtZVtpICogMl0pOwotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE3LCBjaGlwLT5kYWNfdm9sdW1lW2kgKiAyICsgMV0pOwotCX0KLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlX3BjbTE3OTZfbXV0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQotewotCXVuc2lnbmVkIGludCBpOwotCXU4IHZhbHVlOwotCi0JdmFsdWUgPSBQQ00xNzk2X0ZNVF8yNF9MSlVTVCB8IFBDTTE3OTZfQVRMRDsKLQlpZiAoY2hpcC0+ZGFjX211dGUpCi0JCXZhbHVlIHw9IFBDTTE3OTZfTVVURTsKLQlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKQotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE4LCB2YWx1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldF9jczUzeDFfcGFyYW1zKHN0cnVjdCBveHlnZW4gKmNoaXAsCi0JCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKLXsKLQl1bnNpZ25lZCBpbnQgdmFsdWU7Ci0KLQlpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8PSA1NDAwMCkKLQkJdmFsdWUgPSBHUElPX0NTNTN4MV9NX1NJTkdMRTsKLQllbHNlIGlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDEwODAwMCkKLQkJdmFsdWUgPSBHUElPX0NTNTN4MV9NX0RPVUJMRTsKLQllbHNlCi0JCXZhbHVlID0gR1BJT19DUzUzeDFfTV9RVUFEOwotCW94eWdlbl93cml0ZTE2X21hc2tlZChjaGlwLCBPWFlHRU5fR1BJT19EQVRBLAotCQkJICAgICAgdmFsdWUsIEdQSU9fQ1M1M3gxX01fTUFTSyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldF9jczQzeHhfcGFyYW1zKHN0cnVjdCBveHlnZW4gKmNoaXAsCi0JCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKLXsKLQl1OCBmbV9jczQzOTgsIGZtX2NzNDM2MmE7Ci0KLQlmbV9jczQzOTggPSBDUzQzOThfREVNX05PTkUgfCBDUzQzOThfRElGX0xKVVNUOwotCWZtX2NzNDM2MmEgPSBDUzQzNjJBX0FUQVBJX0JfUiB8IENTNDM2MkFfQVRBUElfQV9MOwotCWlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDUwMDAwKSB7Ci0JCWZtX2NzNDM5OCB8PSBDUzQzOThfRk1fU0lOR0xFOwotCQlmbV9jczQzNjJhIHw9IENTNDM2MkFfRk1fU0lOR0xFOwotCX0gZWxzZSBpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8PSAxMDAwMDApIHsKLQkJZm1fY3M0Mzk4IHw9IENTNDM5OF9GTV9ET1VCTEU7Ci0JCWZtX2NzNDM2MmEgfD0gQ1M0MzYyQV9GTV9ET1VCTEU7Ci0JfSBlbHNlIHsKLQkJZm1fY3M0Mzk4IHw9IENTNDM5OF9GTV9RVUFEOwotCQlmbV9jczQzNjJhIHw9IENTNDM2MkFfRk1fUVVBRDsKLQl9Ci0JY3M0Mzk4X3dyaXRlKGNoaXAsIDIsIGZtX2NzNDM5OCk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA2LCBmbV9jczQzNjJhKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDksIGZtX2NzNDM2MmEpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwYywgZm1fY3M0MzYyYSk7Ci19Ci0KIHN0YXRpYyB2b2lkIHVwZGF0ZV9jczQzNjJhX3ZvbHVtZXMoc3RydWN0IG94eWdlbiAqY2hpcCkKIHsKIAl1OCBtdXRlOwpAQCAtMzkzLDYgKzI4NiwxNDEgQEAKIAl1cGRhdGVfY3M0MzYyYV92b2x1bWVzKGNoaXApOwogfQogCitzdGF0aWMgdm9pZCBjczQzeHhfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCS8qIHNldCBDUEVOIChjb250cm9sIHBvcnQgbW9kZSkgYW5kIHBvd2VyIGRvd24gKi8KKwljczQzOThfd3JpdGUoY2hpcCwgOCwgQ1M0Mzk4X0NQRU4gfCBDUzQzOThfUEROKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDEsIENTNDM2MkFfUEROIHwgQ1M0MzYyQV9DUEVOKTsKKwkvKiBjb25maWd1cmUgKi8KKwljczQzOThfd3JpdGUoY2hpcCwgMiwgZGF0YS0+Y3M0Mzk4X2ZtKTsKKwljczQzOThfd3JpdGUoY2hpcCwgMywgQ1M0Mzk4X0FUQVBJX0JfUiB8IENTNDM5OF9BVEFQSV9BX0wpOworCWNzNDM5OF93cml0ZShjaGlwLCA3LCBDUzQzOThfUk1QX0ROIHwgQ1M0Mzk4X1JNUF9VUCB8CisJCSAgICAgQ1M0Mzk4X1pFUk9fQ1JPU1MgfCBDUzQzOThfU09GVF9SQU1QKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDIsIENTNDM2MkFfRElGX0xKVVNUKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDMsIENTNDM2MkFfTVVURUNfNiB8IENTNDM2MkFfQU1VVEUgfAorCQkgICAgICBDUzQzNjJBX1JNUF9VUCB8IENTNDM2MkFfWkVST19DUk9TUyB8IENTNDM2MkFfU09GVF9SQU1QKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDQsIENTNDM2MkFfUk1QX0ROIHwgQ1M0MzYyQV9ERU1fTk9ORSk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDA1LCAwKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDYsIGRhdGEtPmNzNDM2MmFfZm0pOworCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwOSwgZGF0YS0+Y3M0MzYyYV9mbSk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDBjLCBkYXRhLT5jczQzNjJhX2ZtKTsKKwl1cGRhdGVfY3M0M3h4X3ZvbHVtZShjaGlwKTsKKwl1cGRhdGVfY3M0M3h4X211dGUoY2hpcCk7CisJLyogY2xlYXIgcG93ZXIgZG93biAqLworCWNzNDM5OF93cml0ZShjaGlwLCA4LCBDUzQzOThfQ1BFTik7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDAxLCBDUzQzNjJBX0NQRU4pOworfQorCitzdGF0aWMgdm9pZCB4b25hcl9keF9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCisJZGF0YS0+YW50aV9wb3BfZGVsYXkgPSA4MDA7CisJZGF0YS0+b3V0cHV0X2VuYWJsZV9iaXQgPSBHUElPX0RYX09VVFBVVF9FTkFCTEU7CisJZGF0YS0+ZXh0X3Bvd2VyX3JlZyA9IE9YWUdFTl9HUElfREFUQTsKKwlkYXRhLT5leHRfcG93ZXJfaW50X3JlZyA9IE9YWUdFTl9HUElfSU5URVJSVVBUX01BU0s7CisJZGF0YS0+ZXh0X3Bvd2VyX2JpdCA9IEdQSV9EWF9FWFRfUE9XRVI7CisJZGF0YS0+Y3M0Mzk4X2ZtID0gQ1M0Mzk4X0ZNX1NJTkdMRSB8IENTNDM5OF9ERU1fTk9ORSB8IENTNDM5OF9ESUZfTEpVU1Q7CisJZGF0YS0+Y3M0MzYyYV9mbSA9IENTNDM2MkFfRk1fU0lOR0xFIHwKKwkJQ1M0MzYyQV9BVEFQSV9CX1IgfCBDUzQzNjJBX0FUQVBJX0FfTDsKKworCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl8yV0lSRV9CVVNfU1RBVFVTLAorCQkgICAgICAgT1hZR0VOXzJXSVJFX0xFTkdUSF84IHwKKwkJICAgICAgIE9YWUdFTl8yV0lSRV9JTlRFUlJVUFRfTUFTSyB8CisJCSAgICAgICBPWFlHRU5fMldJUkVfU1BFRURfRkFTVCk7CisKKwljczQzeHhfaW5pdChjaGlwKTsKKworCW94eWdlbl9zZXRfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0NPTlRST0wsCisJCQkgIEdQSU9fRFhfRlJPTlRfUEFORUwgfCBHUElPX0RYX0lOUFVUX1JPVVRFKTsKKwlveHlnZW5fY2xlYXJfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsCisJCQkgICAgR1BJT19EWF9GUk9OVF9QQU5FTCB8IEdQSU9fRFhfSU5QVVRfUk9VVEUpOworCisJeG9uYXJfY29tbW9uX2luaXQoY2hpcCk7CisKKwlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiQ1M0Mzk4Iik7CisJc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNDM2MkEiKTsKKwlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiQ1M1MzYxIik7Cit9CisKK3N0YXRpYyB2b2lkIHhvbmFyX2NsZWFudXAoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlzdHJ1Y3QgeG9uYXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisKKwlveHlnZW5fY2xlYXJfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsIGRhdGEtPm91dHB1dF9lbmFibGVfYml0KTsKK30KKworc3RhdGljIHZvaWQgeG9uYXJfZHhfY2xlYW51cChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXhvbmFyX2NsZWFudXAoY2hpcCk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDAxLCBDUzQzNjJBX1BETiB8IENTNDM2MkFfQ1BFTik7CisJb3h5Z2VuX2NsZWFyX2JpdHM4KGNoaXAsIE9YWUdFTl9GVU5DVElPTiwgT1hZR0VOX0ZVTkNUSU9OX1JFU0VUX0NPREVDKTsKK30KKworc3RhdGljIHZvaWQgeG9uYXJfZDJfcmVzdW1lKHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJcGNtMTc5Nl9pbml0KGNoaXApOworCXhvbmFyX2VuYWJsZV9vdXRwdXQoY2hpcCk7Cit9CisKK3N0YXRpYyB2b2lkIHhvbmFyX2R4X3Jlc3VtZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCWNzNDN4eF9pbml0KGNoaXApOworCXhvbmFyX2VuYWJsZV9vdXRwdXQoY2hpcCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9wY20xNzk2X3BhcmFtcyhzdHJ1Y3Qgb3h5Z2VuICpjaGlwLAorCQkJICAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWRhdGEtPnBjbTE3OTZfb3ZlcnNhbXBsaW5nID0KKwkJcGFyYW1zX3JhdGUocGFyYW1zKSA+PSA5NjAwMCA/IFBDTTE3OTZfT1NfMzIgOiBQQ00xNzk2X09TXzY0OworCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpCisJCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMjAsIGRhdGEtPnBjbTE3OTZfb3ZlcnNhbXBsaW5nKTsKK30KKworc3RhdGljIHZvaWQgc2V0X2NzNTN4MV9wYXJhbXMoc3RydWN0IG94eWdlbiAqY2hpcCwKKwkJCSAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXVuc2lnbmVkIGludCB2YWx1ZTsKKworCWlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDU0MDAwKQorCQl2YWx1ZSA9IEdQSU9fQ1M1M3gxX01fU0lOR0xFOworCWVsc2UgaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgPD0gMTA4MDAwKQorCQl2YWx1ZSA9IEdQSU9fQ1M1M3gxX01fRE9VQkxFOworCWVsc2UKKwkJdmFsdWUgPSBHUElPX0NTNTN4MV9NX1FVQUQ7CisJb3h5Z2VuX3dyaXRlMTZfbWFza2VkKGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsCisJCQkgICAgICB2YWx1ZSwgR1BJT19DUzUzeDFfTV9NQVNLKTsKK30KKworc3RhdGljIHZvaWQgc2V0X2NzNDN4eF9wYXJhbXMoc3RydWN0IG94eWdlbiAqY2hpcCwKKwkJCSAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCWRhdGEtPmNzNDM5OF9mbSA9IENTNDM5OF9ERU1fTk9ORSB8IENTNDM5OF9ESUZfTEpVU1Q7CisJZGF0YS0+Y3M0MzYyYV9mbSA9IENTNDM2MkFfQVRBUElfQl9SIHwgQ1M0MzYyQV9BVEFQSV9BX0w7CisJaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgPD0gNTAwMDApIHsKKwkJZGF0YS0+Y3M0Mzk4X2ZtIHw9IENTNDM5OF9GTV9TSU5HTEU7CisJCWRhdGEtPmNzNDM2MmFfZm0gfD0gQ1M0MzYyQV9GTV9TSU5HTEU7CisJfSBlbHNlIGlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDEwMDAwMCkgeworCQlkYXRhLT5jczQzOThfZm0gfD0gQ1M0Mzk4X0ZNX0RPVUJMRTsKKwkJZGF0YS0+Y3M0MzYyYV9mbSB8PSBDUzQzNjJBX0ZNX0RPVUJMRTsKKwl9IGVsc2UgeworCQlkYXRhLT5jczQzOThfZm0gfD0gQ1M0Mzk4X0ZNX1FVQUQ7CisJCWRhdGEtPmNzNDM2MmFfZm0gfD0gQ1M0MzYyQV9GTV9RVUFEOworCX0KKwljczQzOThfd3JpdGUoY2hpcCwgMiwgZGF0YS0+Y3M0Mzk4X2ZtKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDYsIGRhdGEtPmNzNDM2MmFfZm0pOworCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwOSwgZGF0YS0+Y3M0MzYyYV9mbSk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDBjLCBkYXRhLT5jczQzNjJhX2ZtKTsKK30KKwogc3RhdGljIHZvaWQgeG9uYXJfZ3Bpb19jaGFuZ2VkKHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOwpAQCAtNTM1LDYgKzU2Myw4IEBACiAJCS5jb250cm9sX2ZpbHRlciA9IHhvbmFyX2QyX2NvbnRyb2xfZmlsdGVyLAogCQkubWl4ZXJfaW5pdCA9IHhvbmFyX21peGVyX2luaXQsCiAJCS5jbGVhbnVwID0geG9uYXJfY2xlYW51cCwKKwkJLnN1c3BlbmQgPSB4b25hcl9jbGVhbnVwLAorCQkucmVzdW1lID0geG9uYXJfZDJfcmVzdW1lLAogCQkuc2V0X2RhY19wYXJhbXMgPSBzZXRfcGNtMTc5Nl9wYXJhbXMsCiAJCS5zZXRfYWRjX3BhcmFtcyA9IHNldF9jczUzeDFfcGFyYW1zLAogCQkudXBkYXRlX2RhY192b2x1bWUgPSB1cGRhdGVfcGNtMTc5Nl92b2x1bWUsCkBAIC01NjMsNiArNTkzLDggQEAKIAkJLmNvbnRyb2xfZmlsdGVyID0geG9uYXJfZDJfY29udHJvbF9maWx0ZXIsCiAJCS5taXhlcl9pbml0ID0geG9uYXJfbWl4ZXJfaW5pdCwKIAkJLmNsZWFudXAgPSB4b25hcl9jbGVhbnVwLAorCQkuc3VzcGVuZCA9IHhvbmFyX2NsZWFudXAsCisJCS5yZXN1bWUgPSB4b25hcl9kMl9yZXN1bWUsCiAJCS5zZXRfZGFjX3BhcmFtcyA9IHNldF9wY20xNzk2X3BhcmFtcywKIAkJLnNldF9hZGNfcGFyYW1zID0gc2V0X2NzNTN4MV9wYXJhbXMsCiAJCS51cGRhdGVfZGFjX3ZvbHVtZSA9IHVwZGF0ZV9wY20xNzk2X3ZvbHVtZSwKQEAgLTU5Miw2ICs2MjQsOCBAQAogCQkuY29udHJvbF9maWx0ZXIgPSB4b25hcl9keF9jb250cm9sX2ZpbHRlciwKIAkJLm1peGVyX2luaXQgPSB4b25hcl9keF9taXhlcl9pbml0LAogCQkuY2xlYW51cCA9IHhvbmFyX2R4X2NsZWFudXAsCisJCS5zdXNwZW5kID0geG9uYXJfZHhfY2xlYW51cCwKKwkJLnJlc3VtZSA9IHhvbmFyX2R4X3Jlc3VtZSwKIAkJLnNldF9kYWNfcGFyYW1zID0gc2V0X2NzNDN4eF9wYXJhbXMsCiAJCS5zZXRfYWRjX3BhcmFtcyA9IHNldF9jczUzeDFfcGFyYW1zLAogCQkudXBkYXRlX2RhY192b2x1bWUgPSB1cGRhdGVfY3M0M3h4X3ZvbHVtZSwKQEAgLTYzNiw2ICs2NzAsMTAgQEAKIAkuaWRfdGFibGUgPSB4b25hcl9pZHMsCiAJLnByb2JlID0geG9uYXJfcHJvYmUsCiAJLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKG94eWdlbl9wY2lfcmVtb3ZlKSwKKyNpZmRlZiBDT05GSUdfUE0KKwkuc3VzcGVuZCA9IG94eWdlbl9wY2lfc3VzcGVuZCwKKwkucmVzdW1lID0gb3h5Z2VuX3BjaV9yZXN1bWUsCisjZW5kaWYKIH07CiAKIHN0YXRpYyBpbnQgX19pbml0IGFsc2FfY2FyZF94b25hcl9pbml0KHZvaWQpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHIuYyBiL3NvdW5kL3BjaS9wY3hoci9wY3hoci5jCmluZGV4IDdmZGNkYzguLjJjN2UyNTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9wY3hoci9wY3hoci5jCisrKyBiL3NvdW5kL3BjaS9wY3hoci9wY3hoci5jCkBAIC01MTYsNyArNTE2LDcgQEAKIAlpbnQgY2FwdHVyZV9tYXNrID0gMDsKIAlpbnQgcGxheWJhY2tfbWFzayA9IDA7CiAKLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogCXN0cnVjdCB0aW1ldmFsIG15X3R2MSwgbXlfdHYyOwogCWRvX2dldHRpbWVvZmRheSgmbXlfdHYxKTsKICNlbmRpZgpAQCAtNjIzLDcgKzYyMyw3IEBACiAKIAltdXRleF91bmxvY2soJm1nci0+c2V0dXBfbXV0ZXgpOwogCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlkb19nZXR0aW1lb2ZkYXkoJm15X3R2Mik7CiAJc25kX3ByaW50ZGQoIioqKlRSSUdHRVIgVEFTS0xFVCoqKiBUSU1FID0gJWxkIChlcnIgPSAleClcbiIsCiAJCSAgICAobG9uZykobXlfdHYyLnR2X3VzZWMgLSBteV90djEudHZfdXNlYyksIGVycik7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfY29yZS5jIGIvc291bmQvcGNpL3BjeGhyL3BjeGhyX2NvcmUuYwppbmRleCA3OGFhODFmLi4wMDBlNmZlIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfY29yZS5jCisrKyBiL3NvdW5kL3BjaS9wY3hoci9wY3hocl9jb3JlLmMKQEAgLTI2OSw3ICsyNjksNyBAQAogCXVuc2lnbmVkIGludCBjaGlwc2M7CiAJdW5zaWduZWQgY2hhciBkYXRhOwogCXVuc2lnbmVkIGNoYXIgbWFzazsKLQl1bnNpZ25lZCBjaGFyICppbWFnZTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICppbWFnZTsKIAogCS8qIHRlc3QgZmlyc3QgeGlsaW54ICovCiAJY2hpcHNjID0gUENYSFJfSU5QTChtZ3IsIFBDWEhSX1BMWF9DSElQU0MpOwpAQCAtMzE2LDcgKzMxNiw3IEBACiAJaW50IGVycjsKIAl1bnNpZ25lZCBpbnQgaTsKIAl1bnNpZ25lZCBpbnQgbGVuOwotCXVuc2lnbmVkIGNoYXIgKmRhdGE7CisJY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YTsKIAl1bnNpZ25lZCBjaGFyIGR1bW15OwogCS8qIGNoZWNrIHRoZSBsZW5ndGggb2YgYm9vdCBpbWFnZSAqLwogCXNuZF9hc3NlcnQoZHNwLT5zaXplID4gMCwgcmV0dXJuIC1FSU5WQUwpOwpAQCAtNDczLDcgKzQ3Myw3IEBACiBbQ01EX0FVRElPX0xFVkVMX0FESlVTVF0gPQkJeyAweGMyMjAwMCwgMCwgUk1IX1NTSVpFX0ZJWEVEIH0sCiB9OwogCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIHN0YXRpYyBjaGFyKiBjbWRfbmFtZXNbXSA9IHsKIFtDTURfVkVSU0lPTl0gPQkJCQkiQ01EX1ZFUlNJT04iLAogW0NNRF9TVVBQT1JURURdID0JCQkiQ01EX1NVUFBPUlRFRCIsCkBAIC01NDksNyArNTQ5LDcgQEAKIAkJCQl9CiAJCQl9CiAJCX0KLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogCQlpZiAocm1oLT5jbWRfaWR4IDwgQ01EX0xBU1RfSU5ERVgpCiAJCQlzbmRfcHJpbnRkZCgiICAgIHN0YXRbJWRdPSV4XG4iLCBpLCBkYXRhKTsKICNlbmRpZgpAQCAtNTk3LDcgKzU5Nyw3IEBACiAJCWRhdGEgfD0gMHgwMDgwMDA7CS8qIE1BU0tfTU9SRV9USEFOXzFfV09SRF9DT01NQU5EICovCiAJZWxzZQogCQlkYXRhICY9IDB4ZmY3ZmZmOwkvKiBNQVNLXzFfV09SRF9DT01NQU5EICovCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlpZiAocm1oLT5jbWRfaWR4IDwgQ01EX0xBU1RfSU5ERVgpCiAJCXNuZF9wcmludGRkKCJNU0cgY21kWzBdPSV4ICglcylcbiIsIGRhdGEsIGNtZF9uYW1lc1tybWgtPmNtZF9pZHhdKTsKICNlbmRpZgpAQCAtNjI0LDcgKzYyNCw3IEBACiAJCWZvciAoaT0xOyBpIDwgcm1oLT5jbWRfbGVuOyBpKyspIHsKIAkJCS8qIHNlbmQgb3RoZXIgd29yZHMgKi8KIAkJCWRhdGEgPSBybWgtPmNtZFtpXTsKLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogCQkJaWYgKHJtaC0+Y21kX2lkeCA8IENNRF9MQVNUX0lOREVYKQogCQkJCXNuZF9wcmludGRkKCIgICAgY21kWyVkXT0leFxuIiwgaSwgZGF0YSk7CiAjZW5kaWYKQEAgLTg0Nyw3ICs4NDcsNyBAQAogCWludCBzdGF0ZSwgaSwgZXJyOwogCWludCBhdWRpb19tYXNrOwogCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlzdHJ1Y3QgdGltZXZhbCBteV90djEsIG15X3R2MjsKIAlkb19nZXR0aW1lb2ZkYXkoJm15X3R2MSk7CiAjZW5kaWYKQEAgLTg5NCw3ICs4OTQsNyBAQAogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAl9Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlkb19nZXR0aW1lb2ZkYXkoJm15X3R2Mik7CiAJc25kX3ByaW50ZGQoIioqKlNFVCBQSVBFIFNUQVRFKioqIFRJTUUgPSAlbGQgKGVyciA9ICV4KVxuIiwKIAkJICAgIChsb25nKShteV90djIudHZfdXNlYyAtIG15X3R2MS50dl91c2VjKSwgZXJyKTsKQEAgLTk1MSw3ICs5NTEsNyBAQAogCQkJCSAgZW51bSBwY3hocl9hc3luY19lcnJfc3JjIGVycl9zcmMsIGludCBwaXBlLAogCQkJCSAgaW50IGlzX2NhcHR1cmUpCiB7Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlzdGF0aWMgY2hhciogZXJyX3NyY19uYW1lW10gPSB7CiAJCVtQQ1hIUl9FUlJfUElQRV0JPSAiUGlwZSIsCiAJCVtQQ1hIUl9FUlJfU1RSRUFNXQk9ICJTdHJlYW0iLApAQCAtMTE2OSw3ICsxMTY5LDcgQEAKIAkJCQkgICAgbWdyLT5kc3BfdGltZV9sYXN0LCBkc3BfdGltZV9uZXcpOwogCQkJbWdyLT5kc3BfdGltZV9lcnIrKzsKIAkJfQotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJCWlmIChkc3BfdGltZV9kaWZmID09IDApCiAJCQlzbmRfcHJpbnRkZCgiRVJST1IgRFNQIFRJTUUgTk8gRElGRiB0aW1lKCVkKVxuIiwgZHNwX3RpbWVfbmV3KTsKIAkJZWxzZSBpZiAoZHNwX3RpbWVfZGlmZiA+PSAoMipQQ1hIUl9HUkFOVUxBUklUWSkpCkBAIC0xMjA4LDcgKzEyMDgsNyBAQAogCQltZ3ItPnNyY19pdF9kc3AgPSByZWc7CiAJCXRhc2tsZXRfaGlfc2NoZWR1bGUoJm1nci0+bXNnX3Rhc2txKTsKIAl9Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlpZiAocmVnICYgUENYSFJfRkFUQUxfRFNQX0VSUikKIAkJc25kX3ByaW50ZGQoIkZBVEFMIERTUCBFUlJPUiA6ICV4XG4iLCByZWcpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfaHdkZXAuYyBiL3NvdW5kL3BjaS9wY3hoci9wY3hocl9od2RlcC5jCmluZGV4IGU2YTRiZmIuLmQyZjA0MzIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9wY3hoci9wY3hocl9od2RlcC5jCisrKyBiL3NvdW5kL3BjaS9wY3hoci9wY3hocl9od2RlcC5jCkBAIC0zOTQsNyArMzk0LDcgQEAKIAkJCSAgICh1bnNpZ25lZCBsb25nKWZ3LnNpemUpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0JaWYgKGNvcHlfZnJvbV91c2VyKGZ3LmRhdGEsIGRzcC0+aW1hZ2UsIGRzcC0+bGVuZ3RoKSkgeworCWlmIChjb3B5X2Zyb21fdXNlcigodm9pZCAqKWZ3LmRhdGEsIGRzcC0+aW1hZ2UsIGRzcC0+bGVuZ3RoKSkgewogCQl2ZnJlZShmdy5kYXRhKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3JpcHRpZGUvcmlwdGlkZS5jIGIvc291bmQvcGNpL3JpcHRpZGUvcmlwdGlkZS5jCmluZGV4IDk3OWY3ZGEuLjZhMzU5NjIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9yaXB0aWRlL3JpcHRpZGUuYworKysgYi9zb3VuZC9wY2kvcmlwdGlkZS9yaXB0aWRlLmMKQEAgLTY4Miw3ICs2ODIsNyBAQAogCX0sCiB9OwogCi1zdGF0aWMgdTMyIGF0b2godW5zaWduZWQgY2hhciAqaW4sIHVuc2lnbmVkIGludCBsZW4pCitzdGF0aWMgdTMyIGF0b2goY29uc3QgdW5zaWduZWQgY2hhciAqaW4sIHVuc2lnbmVkIGludCBsZW4pCiB7CiAJdTMyIHN1bSA9IDA7CiAJdW5zaWduZWQgaW50IG11bHQgPSAxOwpAQCAtNzAyLDEyICs3MDIsMTIgQEAKIAlyZXR1cm4gc3VtOwogfQogCi1zdGF0aWMgaW50IHNlbmRkYXRhKHN0cnVjdCBjbWRpZiAqY2lmLCB1bnNpZ25lZCBjaGFyICppbiwgdTMyIG9mZnNldCkKK3N0YXRpYyBpbnQgc2VuZGRhdGEoc3RydWN0IGNtZGlmICpjaWYsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLCB1MzIgb2Zmc2V0KQogewogCXUzMiBhZGRyOwogCXUzMiBkYXRhOwogCXUzMiBpOwotCXVuc2lnbmVkIGNoYXIgKnA7CisJY29uc3QgdW5zaWduZWQgY2hhciAqcDsKIAogCWkgPSBhdG9oKCZpblsxXSwgMik7CiAJYWRkciA9IG9mZnNldCArIGF0b2goJmluWzNdLCA0KTsKQEAgLTcyNiwxMCArNzI2LDEwIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbG9hZGZpcm13YXJlKHN0cnVjdCBjbWRpZiAqY2lmLCB1bnNpZ25lZCBjaGFyICppbWcsCitzdGF0aWMgaW50IGxvYWRmaXJtd2FyZShzdHJ1Y3QgY21kaWYgKmNpZiwgY29uc3QgdW5zaWduZWQgY2hhciAqaW1nLAogCQkJdW5zaWduZWQgaW50IHNpemUpCiB7Ci0JdW5zaWduZWQgY2hhciAqaW47CisJY29uc3QgdW5zaWduZWQgY2hhciAqaW47CiAJdTMyIGxhZGRyLCBzYWRkciwgdCwgdmFsOwogCWludCBlcnIgPSAwOwogCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvdHJpZGVudC90cmlkZW50X21haW4uYyBiL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWFpbi5jCmluZGV4IGJiY2VlMmMuLmE2OWI0MjAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWFpbi5jCisrKyBiL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWFpbi5jCkBAIC0xNTkwLDcgKzE1OTAsMTAgQEAKIAlpZiAoc3BkaWZfZmxhZykgewogCQlpZiAodHJpZGVudC0+ZGV2aWNlICE9IFRSSURFTlRfREVWSUNFX0lEX1NJNzAxOCkgewogCQkJb3V0bCh0cmlkZW50LT5zcGRpZl9wY21fYml0cywgVFJJRF9SRUcodHJpZGVudCwgTlhfU1BDU1RBVFVTKSk7Ci0JCQlvdXRiKHRyaWRlbnQtPnNwZGlmX3BjbV9jdHJsLCBUUklEX1JFRyh0cmlkZW50LCBOWF9TUENUUkxfU1BDU08gKyAzKSk7CisJCQl2YWwgPSB0cmlkZW50LT5zcGRpZl9wY21fY3RybDsKKwkJCWlmICghZ28pCisJCQkJdmFsICY9IH4oMHgyOCk7CisJCQlvdXRiKHZhbCwgVFJJRF9SRUcodHJpZGVudCwgTlhfU1BDVFJMX1NQQ1NPICsgMykpOwogCQl9IGVsc2UgewogCQkJb3V0bCh0cmlkZW50LT5zcGRpZl9wY21fYml0cywgVFJJRF9SRUcodHJpZGVudCwgU0lfU1BESUZfQ1MpKTsKIAkJCXZhbCA9IGlubChUUklEX1JFRyh0cmlkZW50LCBTSV9TRVJJQUxfSU5URl9DVFJMKSkgfCBTUERJRl9FTjsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWVtb3J5LmMgYi9zb3VuZC9wY2kvdHJpZGVudC90cmlkZW50X21lbW9yeS5jCmluZGV4IGRmOWI0ODcuLjNmZDdmMWIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWVtb3J5LmMKKysrIGIvc291bmQvcGNpL3RyaWRlbnQvdHJpZGVudF9tZW1vcnkuYwpAQCAtMzEwLDE4MSArMzEwLDMgQEAKIAltdXRleF91bmxvY2soJmhkci0+YmxvY2tfbXV0ZXgpOwogCXJldHVybiAwOwogfQotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogbWVtb3J5IGFsbG9jYXRpb24gdXNpbmcgbXVsdGlwbGUgcGFnZXMgKGZvciBzeW50aCkKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogVW5saWtlIHRoZSBETUEgYWxsb2NhdGlvbiBhYm92ZSwgbm9uLWNvbnRpZ3VvdXMgcGFnZXMgYXJlCi0gKiBhc3NpZ25lZCB0byBUTEIuCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKgotICovCi1zdGF0aWMgaW50IHN5bnRoX2FsbG9jX3BhZ2VzKHN0cnVjdCBzbmRfdHJpZGVudCAqaHcsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsayk7Ci1zdGF0aWMgaW50IHN5bnRoX2ZyZWVfcGFnZXMoc3RydWN0IHNuZF90cmlkZW50ICpodywgc3RydWN0IHNuZF91dGlsX21lbWJsayAqYmxrKTsKLQotLyoKLSAqIGFsbG9jYXRlIGEgc3ludGggc2FtcGxlIGFyZWEKLSAqLwotc3RydWN0IHNuZF91dGlsX21lbWJsayAqCi1zbmRfdHJpZGVudF9zeW50aF9hbGxvYyhzdHJ1Y3Qgc25kX3RyaWRlbnQgKmh3LCB1bnNpZ25lZCBpbnQgc2l6ZSkKLXsKLQlzdHJ1Y3Qgc25kX3V0aWxfbWVtYmxrICpibGs7Ci0Jc3RydWN0IHNuZF91dGlsX21lbWhkciAqaGRyID0gaHctPnRsYi5tZW1oZHI7IAotCi0JbXV0ZXhfbG9jaygmaGRyLT5ibG9ja19tdXRleCk7Ci0JYmxrID0gX19zbmRfdXRpbF9tZW1fYWxsb2MoaGRyLCBzaXplKTsKLQlpZiAoYmxrID09IE5VTEwpIHsKLQkJbXV0ZXhfdW5sb2NrKCZoZHItPmJsb2NrX211dGV4KTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCWlmIChzeW50aF9hbGxvY19wYWdlcyhodywgYmxrKSkgewotCQlfX3NuZF91dGlsX21lbV9mcmVlKGhkciwgYmxrKTsKLQkJbXV0ZXhfdW5sb2NrKCZoZHItPmJsb2NrX211dGV4KTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCW11dGV4X3VubG9jaygmaGRyLT5ibG9ja19tdXRleCk7Ci0JcmV0dXJuIGJsazsKLX0KLQotRVhQT1JUX1NZTUJPTChzbmRfdHJpZGVudF9zeW50aF9hbGxvYyk7Ci0KLS8qCi0gKiBmcmVlIGEgc3ludGggc2FtcGxlIGFyZWEKLSAqLwotaW50Ci1zbmRfdHJpZGVudF9zeW50aF9mcmVlKHN0cnVjdCBzbmRfdHJpZGVudCAqaHcsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsaykKLXsKLQlzdHJ1Y3Qgc25kX3V0aWxfbWVtaGRyICpoZHIgPSBody0+dGxiLm1lbWhkcjsgCi0KLQltdXRleF9sb2NrKCZoZHItPmJsb2NrX211dGV4KTsKLQlzeW50aF9mcmVlX3BhZ2VzKGh3LCBibGspOwotCSBfX3NuZF91dGlsX21lbV9mcmVlKGhkciwgYmxrKTsKLQltdXRleF91bmxvY2soJmhkci0+YmxvY2tfbXV0ZXgpOwotCXJldHVybiAwOwotfQotCi1FWFBPUlRfU1lNQk9MKHNuZF90cmlkZW50X3N5bnRoX2ZyZWUpOwotCi0vKgotICogcmVzZXQgVExCIGVudHJ5IGFuZCBmcmVlIGtlcm5lbCBwYWdlCi0gKi8KLXN0YXRpYyB2b2lkIGNsZWFyX3RsYihzdHJ1Y3Qgc25kX3RyaWRlbnQgKnRyaWRlbnQsIGludCBwYWdlKQotewotCXZvaWQgKnB0ciA9IHBhZ2VfdG9fcHRyKHRyaWRlbnQsIHBhZ2UpOwotCWRtYV9hZGRyX3QgYWRkciA9IHBhZ2VfdG9fYWRkcih0cmlkZW50LCBwYWdlKTsKLQlzZXRfc2lsZW50X3RsYih0cmlkZW50LCBwYWdlKTsKLQlpZiAocHRyKSB7Ci0JCXN0cnVjdCBzbmRfZG1hX2J1ZmZlciBkbWFiOwotCQlkbWFiLmRldi50eXBlID0gU05EUlZfRE1BX1RZUEVfREVWOwotCQlkbWFiLmRldi5kZXYgPSBzbmRfZG1hX3BjaV9kYXRhKHRyaWRlbnQtPnBjaSk7Ci0JCWRtYWIuYXJlYSA9IHB0cjsKLQkJZG1hYi5hZGRyID0gYWRkcjsKLQkJZG1hYi5ieXRlcyA9IEFMSUdOX1BBR0VfU0laRTsKLQkJc25kX2RtYV9mcmVlX3BhZ2VzKCZkbWFiKTsKLQl9Ci19Ci0KLS8qIGNoZWNrIG5ldyBhbGxvY2F0aW9uIHJhbmdlICovCi1zdGF0aWMgdm9pZCBnZXRfc2luZ2xlX3BhZ2VfcmFuZ2Uoc3RydWN0IHNuZF91dGlsX21lbWhkciAqaGRyLAotCQkJCSAgc3RydWN0IHNuZF91dGlsX21lbWJsayAqYmxrLAotCQkJCSAgaW50ICpmaXJzdF9wYWdlX3JldCwgaW50ICpsYXN0X3BhZ2VfcmV0KQotewotCXN0cnVjdCBsaXN0X2hlYWQgKnA7Ci0Jc3RydWN0IHNuZF91dGlsX21lbWJsayAqcTsKLQlpbnQgZmlyc3RfcGFnZSwgbGFzdF9wYWdlOwotCWZpcnN0X3BhZ2UgPSBmaXJzdHBnKGJsayk7Ci0JaWYgKChwID0gYmxrLT5saXN0LnByZXYpICE9ICZoZHItPmJsb2NrKSB7Ci0JCXEgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGssIGxpc3QpOwotCQlpZiAobGFzdHBnKHEpID09IGZpcnN0X3BhZ2UpCi0JCQlmaXJzdF9wYWdlKys7ICAvKiBmaXJzdCBwYWdlIHdhcyBhbHJlYWR5IGFsbG9jYXRlZCAqLwotCX0KLQlsYXN0X3BhZ2UgPSBsYXN0cGcoYmxrKTsKLQlpZiAoKHAgPSBibGstPmxpc3QubmV4dCkgIT0gJmhkci0+YmxvY2spIHsKLQkJcSA9IGxpc3RfZW50cnkocCwgc3RydWN0IHNuZF91dGlsX21lbWJsaywgbGlzdCk7Ci0JCWlmIChmaXJzdHBnKHEpID09IGxhc3RfcGFnZSkKLQkJCWxhc3RfcGFnZS0tOyAvKiBsYXN0IHBhZ2Ugd2FzIGFscmVhZHkgYWxsb2NhdGVkICovCi0JfQotCSpmaXJzdF9wYWdlX3JldCA9IGZpcnN0X3BhZ2U7Ci0JKmxhc3RfcGFnZV9yZXQgPSBsYXN0X3BhZ2U7Ci19Ci0KLS8qCi0gKiBhbGxvY2F0ZSBrZXJuZWwgcGFnZXMgYW5kIGFzc2lnbiB0aGVtIHRvIFRMQgotICovCi1zdGF0aWMgaW50IHN5bnRoX2FsbG9jX3BhZ2VzKHN0cnVjdCBzbmRfdHJpZGVudCAqaHcsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsaykKLXsKLQlpbnQgcGFnZSwgZmlyc3RfcGFnZSwgbGFzdF9wYWdlOwotCXN0cnVjdCBzbmRfZG1hX2J1ZmZlciBkbWFiOwotCi0JZmlyc3RwZyhibGspID0gZ2V0X2FsaWduZWRfcGFnZShibGstPm9mZnNldCk7Ci0JbGFzdHBnKGJsaykgPSBnZXRfYWxpZ25lZF9wYWdlKGJsay0+b2Zmc2V0ICsgYmxrLT5zaXplIC0gMSk7Ci0JZ2V0X3NpbmdsZV9wYWdlX3JhbmdlKGh3LT50bGIubWVtaGRyLCBibGssICZmaXJzdF9wYWdlLCAmbGFzdF9wYWdlKTsKLQotCS8qIGFsbG9jYXRlIGEga2VybmVsIHBhZ2UgZm9yIGVhY2ggVHJpZGVudCBwYWdlIC0KLQkgKiBmb3J0dW5hdGVseSBUcmlkZW50IHBhZ2Ugc2l6ZSBhbmQga2VybmVsIFBBR0VfU0laRSBpcyBpZGVudGljYWwhCi0JICovCi0JZm9yIChwYWdlID0gZmlyc3RfcGFnZTsgcGFnZSA8PSBsYXN0X3BhZ2U7IHBhZ2UrKykgewotCQlpZiAoc25kX2RtYV9hbGxvY19wYWdlcyhTTkRSVl9ETUFfVFlQRV9ERVYsIHNuZF9kbWFfcGNpX2RhdGEoaHctPnBjaSksCi0JCQkJCUFMSUdOX1BBR0VfU0laRSwgJmRtYWIpIDwgMCkKLQkJCWdvdG8gX19mYWlsOwotCQlpZiAoISBpc192YWxpZF9wYWdlKGRtYWIuYWRkcikpIHsKLQkJCXNuZF9kbWFfZnJlZV9wYWdlcygmZG1hYik7Ci0JCQlnb3RvIF9fZmFpbDsKLQkJfQotCQlzZXRfdGxiX2J1cyhodywgcGFnZSwgKHVuc2lnbmVkIGxvbmcpZG1hYi5hcmVhLCBkbWFiLmFkZHIpOwotCX0KLQlyZXR1cm4gMDsKLQotX19mYWlsOgotCS8qIHJlbGVhc2UgYWxsb2NhdGVkIHBhZ2VzICovCi0JbGFzdF9wYWdlID0gcGFnZSAtIDE7Ci0JZm9yIChwYWdlID0gZmlyc3RfcGFnZTsgcGFnZSA8PSBsYXN0X3BhZ2U7IHBhZ2UrKykKLQkJY2xlYXJfdGxiKGh3LCBwYWdlKTsKLQotCXJldHVybiAtRU5PTUVNOwotfQotCi0vKgotICogZnJlZSBwYWdlcwotICovCi1zdGF0aWMgaW50IHN5bnRoX2ZyZWVfcGFnZXMoc3RydWN0IHNuZF90cmlkZW50ICp0cmlkZW50LCBzdHJ1Y3Qgc25kX3V0aWxfbWVtYmxrICpibGspCi17Ci0JaW50IHBhZ2UsIGZpcnN0X3BhZ2UsIGxhc3RfcGFnZTsKLQotCWdldF9zaW5nbGVfcGFnZV9yYW5nZSh0cmlkZW50LT50bGIubWVtaGRyLCBibGssICZmaXJzdF9wYWdlLCAmbGFzdF9wYWdlKTsKLQlmb3IgKHBhZ2UgPSBmaXJzdF9wYWdlOyBwYWdlIDw9IGxhc3RfcGFnZTsgcGFnZSsrKQotCQljbGVhcl90bGIodHJpZGVudCwgcGFnZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIGNvcHlfZnJvbV91c2VyKGJsayArIG9mZnNldCwgZGF0YSwgc2l6ZSkKLSAqLwotaW50IHNuZF90cmlkZW50X3N5bnRoX2NvcHlfZnJvbV91c2VyKHN0cnVjdCBzbmRfdHJpZGVudCAqdHJpZGVudCwKLQkJCQkgICAgIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsaywKLQkJCQkgICAgIGludCBvZmZzZXQsIGNvbnN0IGNoYXIgX191c2VyICpkYXRhLCBpbnQgc2l6ZSkKLXsKLQlpbnQgcGFnZSwgbmV4dG9mcywgZW5kX29mZnNldCwgdGVtcCwgdGVtcDE7Ci0KLQlvZmZzZXQgKz0gYmxrLT5vZmZzZXQ7Ci0JZW5kX29mZnNldCA9IG9mZnNldCArIHNpemU7Ci0JcGFnZSA9IGdldF9hbGlnbmVkX3BhZ2Uob2Zmc2V0KSArIDE7Ci0JZG8gewotCQluZXh0b2ZzID0gYWxpZ25lZF9wYWdlX29mZnNldChwYWdlKTsKLQkJdGVtcCA9IG5leHRvZnMgLSBvZmZzZXQ7Ci0JCXRlbXAxID0gZW5kX29mZnNldCAtIG9mZnNldDsKLQkJaWYgKHRlbXAxIDwgdGVtcCkKLQkJCXRlbXAgPSB0ZW1wMTsKLQkJaWYgKGNvcHlfZnJvbV91c2VyKG9mZnNldF9wdHIodHJpZGVudCwgb2Zmc2V0KSwgZGF0YSwgdGVtcCkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQkJb2Zmc2V0ID0gbmV4dG9mczsKLQkJZGF0YSArPSB0ZW1wOwotCQlwYWdlKys7Ci0JfSB3aGlsZSAob2Zmc2V0IDwgZW5kX29mZnNldCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLUVYUE9SVF9TWU1CT0woc25kX3RyaWRlbnRfc3ludGhfY29weV9mcm9tX3VzZXIpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3ZpYTgyeHguYyBiL3NvdW5kL3BjaS92aWE4Mnh4LmMKaW5kZXggYjU4NWNjMy4uNjc4MWJlOSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL3ZpYTgyeHguYworKysgYi9zb3VuZC9wY2kvdmlhODJ4eC5jCkBAIC0xNzU3LDYgKzE3NTcsMTIgQEAKIAkJLnR5cGUgPSBBQzk3X1RVTkVfSFBfT05MWQogCX0sCiAJeworCQkuc3VidmVuZG9yID0gMHgxMDE5LAorCQkuc3ViZGV2aWNlID0gMHgxODQxLAorCQkubmFtZSA9ICJFQ1MgSzdWVEEzIiwKKwkJLnR5cGUgPSBBQzk3X1RVTkVfSFBfT05MWQorCX0sCisJewogCQkuc3VidmVuZG9yID0gMHgxODQ5LAogCQkuc3ViZGV2aWNlID0gMHgzMDU5LAogCQkubmFtZSA9ICJBU1JvY2sgSzdWTTIiLApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3Z4MjIyL3Z4MjIyX29wcy5jIGIvc291bmQvcGNpL3Z4MjIyL3Z4MjIyX29wcy5jCmluZGV4IGI0YmZjMWEuLjYzMWYzYTYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS92eDIyMi92eDIyMl9vcHMuYworKysgYi9zb3VuZC9wY2kvdngyMjIvdngyMjJfb3BzLmMKQEAgLTM1OSw3ICszNTksNyBAQAogewogCXVuc2lnbmVkIGludCBpOwogCXVuc2lnbmVkIGludCBwb3J0OwotCXVuc2lnbmVkIGNoYXIgKmltYWdlOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmltYWdlOwogCiAJLyogWElMSU5YIHJlc2V0ICh3YWl0IGF0IGxlYXN0IDEgbWlsaXNlY29uZCBiZXR3ZWVuIHJlc2V0IG9uIGFuZCBvZmYpLiAqLwogCXZ4X291dGwoY2hpcCwgQ05UUkwsIFZYX0NOVFJMX1JFR0lTVEVSX1ZBTFVFIHwgVlhfWElMSU5YX1JFU0VUX01BU0spOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfaW1hZ2UuaCBiL3NvdW5kL3BjaS95bWZwY2kveW1mcGNpX2ltYWdlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMmYyZmYuLjAwMDAwMDAKLS0tIGEvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfaW1hZ2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1NjUgKzAsMCBAQAotI2lmbmRlZiBfSFdNQ09ERV8KLSNkZWZpbmUgX0hXTUNPREVfCi0KLXN0YXRpYyB1MzIgRHNwSW5zdFtZRFNYR19EU1BMRU5HVEggLyA0XSA9IHsKLQkweDAwMDAwMDgxLCAweDAwMDAwMWE0LCAweDAwMDAwMDBhLCAweDAwMDAwMDJmLAotCTB4MDAwODAyNTMsIDB4MDE4MDAzMTcsIDB4MDAwMDQwN2IsIDB4MDAwMDg0M2YsCi0JMHgwMDAxNDgzYywgMHgwMDAxOTQzYywgMHgwMDA1ZDgzYywgMHgwMDAwMWMzYywKLQkweDAwMDBjMDdiLCAweDAwMDUwYzNmLCAweDAxMjE1MDNjLCAweDAwMDAwMDAwLAotCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCi0JMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKLQkweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLAotCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAKLX07Ci0KLXN0YXRpYyB1MzIgQ250cmxJbnN0W1lEU1hHX0NUUkxMRU5HVEggLyA0XSA9IHsKLQkweDAwMDAwNywgMHgyNDAwMDcsIDB4MEMwMDA3LCAweDFDMDAwNywKLQkweDA2MDAwNywgMHg3MDAwMDIsIDB4MDAwMDIwLCAweDAzMDA0MCwKLQkweDAwNzEwNCwgMHgwMDQyODYsIDB4MDMwMDQwLCAweDAwMEYwRCwKLQkweDAwMDgxMCwgMHgyMDA0M0EsIDB4MDAwMjgyLCAweDAwMDIwRCwKLQkweDAwMDgxMCwgMHgyMDA0M0EsIDB4MDAxMjgyLCAweDIwMEU4MiwKLQkweDAwMUE4MiwgMHgwMzJEMEQsIDB4MDAwODEwLCAweDEwMDQzQSwKLQkweDAyRDM4RCwgMHgwMDA4MTAsIDB4MTgwNDNBLCAweDAwMDEwRCwKLQkweDAyMDAxNSwgMHgwMDAwRkQsIDB4MDAwMDIwLCAweDAzODg2MCwKLQkweDAzOTA2MCwgMHgwMzgwNjAsIDB4MDM4MDQwLCAweDAzODA0MCwKLQkweDAzODA0MCwgMHgwMTgwNDAsIDB4MDAwQTdELCAweDAzODA0MCwKLQkweDAzODA0MCwgMHgwMTgwNDAsIDB4MjAwNDAyLCAweDAwMDg4MiwKLQkweDA4MDAxQSwgMHgwMDA5MDQsIDB4MDE1OTg2LCAweDAwMDAwNywKLQkweDI2MDAwNywgMHgwMDAwMDcsIDB4MDAwMDA3LCAweDAxOEEwNiwKLQkweDAwMDAwNywgMHgwMzBDOEQsIDB4MDAwODEwLCAweDE4MDQzQSwKLQkweDI2MDAwNywgMHgwMDA4N0QsIDB4MDE4MDQyLCAweDAwMTYwQSwKLQkweDA0QTIwNiwgMHgwMDAwMDcsIDB4MDAyMThELCAweDAwMDgxMCwKLQkweDA4MDQzQSwgMHgyMUMyMDYsIDB4MDAwMDA3LCAweDAwMDdGRCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDAyOTM4NiwKLQkweDAwMDE5NSwgMHgwOTBEMDQsIDB4MDAwMDA3LCAweDAwMDgyMCwKLQkweDAwMDBGNSwgMHgwMDBCN0QsIDB4MDFGMDYwLCAweDAwMDBGRCwKLQkweDAzMjIwNiwgMHgwMTgwNDAsIDB4MDAwQTdELCAweDAzODA0MiwKLQkweDEzODA0QSwgMHgxODAwMEEsIDB4MDAxODIwLCAweDA1OTA2MCwKLQkweDA1ODg2MCwgMHgwMTgwNDAsIDB4MDAwMEZELCAweDAxODA0MiwKLQkweDcwMDAwQSwgMHgwMDAxMTUsIDB4MDcxMTQ0LCAweDAzMjM4NiwKLQkweDAzMDAwMCwgMHgwMDcwMjAsIDB4MDM0QTA2LCAweDAxODA0MCwKLQkweDAwMzQ4RCwgMHgwMDA4MTAsIDB4MDgwNDNBLCAweDIxRUEwNiwKLQkweDAwMDAwNywgMHgwMkQzOEQsIDB4MDAwODEwLCAweDE4MDQzQSwKLQkweDAxODIwNiwgMHgwMDAwMDcsIDB4MjQwMDA3LCAweDAwMEY4RCwKLQkweDAwMDgxMCwgMHgwMDE2M0EsIDB4MDAyNDAyLCAweDAwNUMwMiwKLQkweDAwMjhGRCwgMHgwMDAwMjAsIDB4MDE4MDQwLCAweDA4MDAwRCwKLQkweDAwMDgxNSwgMHg1MTA5ODQsIDB4MDAwMDA3LCAweDAwMDA0RCwKLQkweDAwMEU1RCwgMHgwMDBFMDIsIDB4MDA0MThELCAweDAwMDgxMCwKLQkweDA4MDQzQSwgMHgyQzhBMDYsIDB4MDAwMDA3LCAweDAwMDA4RCwKLQkweDAwMDkyNCwgMHgwMDBGMDIsIDB4MDA0NThELCAweDAwMDgxMCwKLQkweDA4MDQzQSwgMHgyQzhBMDYsIDB4MDAwMDA3LCAweDAwMzg3RCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAxMDE1LCAweDAxMDk4NCwKLQkweDAxODM4NiwgMHgwMDAwMDcsIDB4MDFBQTA2LCAweDAwMDAwNywKLQkweDAwMDhGRCwgMHgwMTgwNDIsIDB4MTgwMDBBLCAweDAwMTkwNCwKLQkweDIxODA4NiwgMHgyODAwMDcsIDB4MDAxODEwLCAweDI4MDQzQSwKLQkweDI4MEMwMiwgMHgwMDAwMEQsIDB4MDAwODEwLCAweDI4MTQzQSwKLQkweDA4ODA4RCwgMHgwMDA4MjAsIDB4MDAwMkZELCAweDAxODA0MCwKLQkweDIwMDAwNywgMHgwMDAyMEQsIDB4MTg5OTA0LCAweDAwMDAwNywKLQkweDAwNDAyRCwgMHgwMDAwQkQsIDB4MDAwMkZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MDU1QTg2LCAweDAwMDAwNywKLQkweDAwMDEwMCwgMHgwMDBBMjAsIDB4MDAwNDdELCAweDAxODA0MCwKLQkweDAxODA0MiwgMHgyMDAwMEEsIDB4MDAzMDE1LCAweDAxMjE0NCwKLQkweDAzNDk4NiwgMHgwMDAwMDcsIDB4MDAyMTA0LCAweDAzNDk4NiwKLQkweDAwMDAwNywgMHgwMDBGOEQsIDB4MDAwODEwLCAweDI4MEMzQSwKLQkweDAyMzk0NCwgMHgwNkM5ODYsIDB4MDAwMDA3LCAweDAwMTgxMCwKLQkweDI4MDQzQSwgMHgwODgxMEQsIDB4MDAwODIwLCAweDAwMDJGRCwKLQkweDAxODA0MCwgMHgyMDAwMDcsIDB4MDAyODEwLCAweDc4MDAzQSwKLQkweDAwNjg4RCwgMHgwMDA4MTAsIDB4MDgwNDNBLCAweDI4OEEwNiwKLQkweDAwMDAwNywgMHgwMDQwMEQsIDB4MDAxMDE1LCAweDE4OTkwNCwKLQkweDI5MjkwNCwgMHgzOTM5MDQsIDB4MDAwMDA3LCAweDA2MDIwNiwKLQkweDAwMDAwNywgMHgwMDA0RjUsIDB4MDAwMDdELCAweDAwMDAyMCwKLQkweDAwMDA4RCwgMHgwMTA4NjAsIDB4MDE4MDQwLCAweDAwMDQ3RCwKLQkweDAzODA0MiwgMHgyMTgwNEEsIDB4MTgwMDBBLCAweDAyMTk0NCwKLQkweDIxNTg4NiwgMHgwMDAwMDcsIDB4MDA0MDc1LCAweDcxRjEwNCwKLQkweDAwMDAwNywgMHgwMTAwNDIsIDB4MjgwMDBBLCAweDAwMjkwNCwKLQkweDIxMjA4NiwgMHgwMDAwMDcsIDB4MDAzQzBELCAweDMwQTkwNCwKLQkweDAwMDAwNywgMHgwMDA3N0QsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAwMDkwNCwgMHgwN0RBODYsIDB4MDAwNTdELCAweDAwMjgyMCwKLQkweDAzQjA2MCwgMHgwN0YyMDYsIDB4MDE4MDQwLCAweDAwMzAyMCwKLQkweDAzQTg2MCwgMHgwMTgwNDAsIDB4MDAwMkZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MDdGQTg2LCAweDAwMDAwNywKLQkweDAwMDU3RCwgMHgwMTgwNDIsIDB4MjgwNDBBLCAweDAwMEU4RCwKLQkweDAwMDgxMCwgMHgyODBDM0EsIDB4MDAwMDBELCAweDAwMDgxMCwKLQkweDI4MTQzQSwgMHgwOTAwMEQsIDB4MDAwODIwLCAweDAwMDJGRCwKLQkweDAxODA0MCwgMHgyMDAwMDcsIDB4MDAzREZELCAweDAwMDAyMCwKLQkweDAxODA0MCwgMHgwMDEwN0QsIDB4MDA4RDhELCAweDAwMDgxMCwKLQkweDA4MDQzQSwgMHgyODhBMDYsIDB4MDAwMDA3LCAweDAwMDgxNSwKLQkweDA4MDAxQSwgMHgwMTA5ODQsIDB4MDk1MTg2LCAweDAwMTM3RCwKLQkweDIwMDUwMCwgMHgyODBGMjAsIDB4MzM4RjYwLCAweDNCOEY2MCwKLQkweDQzOEY2MCwgMHg0QjhGNjAsIDB4NTM4RjYwLCAweDVCOEY2MCwKLQkweDAzOEE2MCwgMHgwMTgwNDAsIDB4MDA3RkJELCAweDM4M0RDNCwKLQkweDAwMDAwNywgMHgwMDFBN0QsIDB4MDAxMzc1LCAweDAxODA0MiwKLQkweDA5MDA0QSwgMHgxMDAwMEEsIDB4MEI4RDA0LCAweDEzOTUwNCwKLQkweDAwMDAwNywgMHgwMDA4MjAsIDB4MDE5MDYwLCAweDAwMTEwNCwKLQkweDIxMjA4NiwgMHgwMTAwNDAsIDB4MDAxN0ZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MjEyMjg2LCAweDAwMDAwNywKLQkweDAwMTk3RCwgMHgwMzgwNDIsIDB4MDk4MDRBLCAweDEwMDAwQSwKLQkweDAwMDkyNCwgMHgwMDE2NjQsIDB4MDAxMUZELCAweDAzODA0MiwKLQkweDJCODA0QSwgMHgxOTgwNEEsIDB4MDAwMDhELCAweDIxODk0NCwKLQkweDAwMDAwNywgMHgwMDIyNDQsIDB4MEFFMTg2LCAweDAwMDAwNywKLQkweDAwMUE2NCwgMHgwMDJBMjQsIDB4MDAxOTdELCAweDA4MDEwMiwKLQkweDEwMDEyMiwgMHgwMDA4MjAsIDB4MDM5MDYwLCAweDAxODA0MCwKLQkweDAwM0RGRCwgMHgwMDAwOEQsIDB4MDAwODIwLCAweDAxODA0MCwKLQkweDAwMTM3NSwgMHgwMDFBN0QsIDB4MDEwMDQyLCAweDA5ODA0QSwKLQkweDEwMDAwQSwgMHgwMDAyMUQsIDB4MDE4OUU0LCAweDI5OTJFNCwKLQkweDMwOTE0NCwgMHgwMDAwMDcsIDB4MDAwNjBELCAweDAwMEExNSwKLQkweDAwMEMxRCwgMHgwMDEwMjUsIDB4MDBBOUU0LCAweDAxMkJFNCwKLQkweDAwMDQ2NCwgMHgwMUIzRTQsIDB4MDIzMkU0LCAweDAwMDQ2NCwKLQkweDAwMDQ2NCwgMHgwMDA0NjQsIDB4MDAwNDY0LCAweDAwMDQwRCwKLQkweDA4QjFDNCwgMHgwMDAwMDcsIDB4MDAwODIwLCAweDAwMEJGNSwKLQkweDAzMDA0MCwgMHgwMDE5N0QsIDB4MDM4MDQyLCAweDA5ODA0QSwKLQkweDAwMEEyNCwgMHgwODAwMEEsIDB4MDgwRTY0LCAweDAwMDAwNywKLQkweDEwMDEyMiwgMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAxMDA0MCwKLQkweDAwNjRBQywgMHgwMDAyN0QsIDB4MDAwMDIwLCAweDAxODA0MCwKLQkweDAwMTA3RCwgMHgwMTgwNDIsIDB4MDAxMUZELCAweDNCODA0QSwKLQkweDA5ODA0QSwgMHgyMDAwMEEsIDB4MDAwMDk1LCAweDFBMTE0NCwKLQkweDAwQTE0NCwgMHgwRDIwODYsIDB4MDAwNDBELCAweDAwQjk4NCwKLQkweDBEMjE4NiwgMHgwMDE4RkQsIDB4MDE4MDQyLCAweDAwMTBGRCwKLQkweDA5ODA0QSwgMHgyODAwMEEsIDB4MDAwMDk1LCAweDAxMDkyNCwKLQkweDAwMkE2NCwgMHgwRDExODYsIDB4MDAwMDA3LCAweDAwMjkwNCwKLQkweDBEMjI4NiwgMHgwMDAwMDcsIDB4MEQyQTA2LCAweDA4MDAwMiwKLQkweDAwMDA4RCwgMHgwMDM4N0QsIDB4MDAwODIwLCAweDAxODA0MCwKLQkweDAwMTI3RCwgMHgwMTgwNDIsIDB4MTAwMDBBLCAweDAwMzkwNCwKLQkweDBERDE4NiwgMHgwMDA4MEQsIDB4N0ZGRkI1LCAweDAwQjk4NCwKLQkweDBEQTE4NiwgMHgwMDAwMjUsIDB4MEU3QTA2LCAweDAwMDAyRCwKLQkweDAwMDAxNSwgMHgwMDA4MkQsIDB4MDJDNzhELCAweDAwMDgyMCwKLQkweDBFQzIwNiwgMHgwMDAwMEQsIDB4N0Y4MDM1LCAweDAwQjk4NCwKLQkweDBFNzE4NiwgMHg0MDAwMjUsIDB4MDAwMDhELCAweDExMDk0NCwKLQkweDAwMDAwNywgMHgwMDAxOEQsIDB4MTA5NTA0LCAweDAwMDAwNywKLQkweDAwOTE2NCwgMHgwMDA0MjQsIDB4MDAwNDI0LCAweDAwMDQyNCwKLQkweDEwMDEwMiwgMHgyODAwMDIsIDB4MDJDNjhELCAweDAwMDgyMCwKLQkweDBFQzIwNiwgMHgwMDAxOEQsIDB4MDAwNDJELCAweDAwMDA4RCwKLQkweDEwOTUwNCwgMHgwMDAwMDcsIDB4MDAwMjBELCAweDEwOTE4NCwKLQkweDAwMDAwNywgMHgwMkM3MEQsIDB4MDAwODIwLCAweDAwMDA4RCwKLQkweDAwMzhGRCwgMHgwMTgwNDAsIDB4MDAzQkZELCAweDAwMTAyMCwKLQkweDAzQTg2MCwgMHgwMDA4MTUsIDB4MzEzMTg0LCAweDIxMjE4NCwKLQkweDAwMDAwNywgMHgwM0IwNjAsIDB4MDNBMDYwLCAweDAxODA0MCwKLQkweDAwMjJGRCwgMHgwMDAwOTUsIDB4MDEwOTI0LCAweDAwMDQyNCwKLQkweDAwMDQyNCwgMHgwMDEyNjQsIDB4MTAwMTAyLCAweDAwMDgyMCwKLQkweDAzOTA2MCwgMHgwMTgwNDAsIDB4MDAxOTI0LCAweDAwRkI4RCwKLQkweDAwMzk3RCwgMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwKLQkweDA5ODQ0QSwgMHgwMDA2MDYsIDB4MDgwNDBBLCAweDAwMDQyNCwKLQkweDAwMDQyNCwgMHgwMDExN0QsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAwMEEyNCwgMHgyODA1MDIsIDB4MjgwQzAyLCAweDA5ODAwRCwKLQkweDAwMDgyMCwgMHgwMDAyRkQsIDB4MDE4MDQwLCAweDIwMDAwNywKLQkweDAwMjJGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDA5NSwKLQkweDI4MERDNCwgMHgwMTE5MjQsIDB4MDAxOTdELCAweDAxODA0MiwKLQkweDAwMTFGRCwgMHgwOTgwNEEsIDB4MTAwMDBBLCAweDAwMDBCNSwKLQkweDExMzE0NCwgMHgwQThEMDQsIDB4MDAwMDA3LCAweDA4MEE0NCwKLQkweDEyOTUwNCwgMHgwMDAwMDcsIDB4MDAyM0ZELCAweDAwMTAyMCwKLQkweDAzODA0MCwgMHgxMDEyNDQsIDB4MDAwMDA3LCAweDAwMDgyMCwKLQkweDAzOTA2MCwgMHgwMTgwNDAsIDB4MDAwMkZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MTBGQTg2LCAweDAwMDAwNywKLQkweDAwM0JGRCwgMHgwMDAxMDAsIDB4MDAwQTEwLCAweDBCODA3QSwKLQkweDEzODA0QSwgMHgwOTA5ODQsIDB4MDAwMDA3LCAweDAwMDA5NSwKLQkweDAxM0QwNCwgMHgxMTgwODYsIDB4MTAwMDBBLCAweDEwMDAwMiwKLQkweDA5MDk4NCwgMHgwMDAwMDcsIDB4MDM4MDQyLCAweDExODA0QSwKLQkweDA5MEQwNCwgMHgwMDAwMDcsIDB4MTAwMDBBLCAweDA5MEQ4NCwKLQkweDAwMDAwNywgMHgwMDI1N0QsIDB4MDAwODIwLCAweDAxODA0MCwKLQkweDAwMDEwRCwgMHgwMDA4MTAsIDB4MjgxNDNBLCAweDAwMTI3RCwKLQkweDAxODA0MiwgMHgyMDAwMEEsIDB4MDAxOTdELCAweDAxODA0MiwKLQkweDAwMTE3RCwgMHgzMTgwNEEsIDB4MTAwMDBBLCAweDAwMzEyNCwKLQkweDAxMjgwRCwgMHgwMDM5N0QsIDB4MDAwODIwLCAweDA1ODA0MCwKLQkweDAzODA0MiwgMHgwOTg0NEEsIDB4MDAwNjA2LCAweDA4MDQwQSwKLQkweDMwMDEwMiwgMHgwMDMxMjQsIDB4MDAwNDI0LCAweDAwMDQyNCwKLQkweDAwMTIyNCwgMHgyODA1MDIsIDB4MDAxQTRDLCAweDEzMDE4NiwKLQkweDcwMDAwMiwgMHgwMDAwMkQsIDB4MDMwMDAwLCAweDAwMzg3RCwKLQkweDAxODA0MiwgMHgxMDAwMEEsIDB4MTMyQTA2LCAweDAwMjEyNCwKLQkweDAwMDBBRCwgMHgxMDAwMDIsIDB4MDAwMTBELCAweDAwMDkyNCwKLQkweDAwNkIyNCwgMHgwMTM2OEQsIDB4MDAzOTdELCAweDAwMDgyMCwKLQkweDA1ODA0MCwgMHgwMzgwNDIsIDB4MDk4NDRBLCAweDAwMDYwNiwKLQkweDA4MDQwQSwgMHgwMDMyNjQsIDB4MDAwMDhELCAweDAwMEEyNCwKLQkweDAwMTAyMCwgMHgwMDIyN0QsIDB4MDE4MDQwLCAweDAxM0MwRCwKLQkweDAwMDgxMCwgMHgwODA0M0EsIDB4MjlEMjA2LCAweDAwMDAwNywKLQkweDAwMjgyMCwgMHgwMDIwN0QsIDB4MDE4MDQwLCAweDAwMTE3RCwKLQkweDAzODA0MiwgMHgxMzgwNEEsIDB4MzM4MDBBLCAweDAwMzg3RCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDE2M0E4NiwKLQkweDAwMDAwNywgMHgwMDAwOEQsIDB4MDMwOTY0LCAweDAxNDc4RCwKLQkweDAwMzk3RCwgMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwKLQkweDA5ODQ0QSwgMHgwMDA2MDYsIDB4MDgwNDBBLCAweDM4MDEwMiwKLQkweDAwMDQyNCwgMHgwMDA0MjQsIDB4MDAxMjI0LCAweDAwMDJGRCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDE0QTI4NiwKLQkweDAwMDAwNywgMHgyODA1MDIsIDB4MDAxQTRDLCAweDE2Mzk4NiwKLQkweDAwMDAwNywgMHgwMzIxNjQsIDB4MDA2MzJDLCAweDAwM0RGRCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwMDk1LCAweDA5MDkwNCwKLQkweDAwMDAwNywgMHgwMDA4MjAsIDB4MDAxQTRDLCAweDE1NjE4NiwKLQkweDAxODA0MCwgMHgwMzAwMDAsIDB4MTU3QTA2LCAweDAwMjEyNCwKLQkweDAwMDEwRCwgMHgwMDA5MjQsIDB4MDA2QjI0LCAweDAxNUI4RCwKLQkweDAwMzk3RCwgMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwKLQkweDA5ODQ0QSwgMHgwMDA2MDYsIDB4MDgwNDBBLCAweDAwM0E2NCwKLQkweDAwMDA5NSwgMHgwMDEyMjQsIDB4MDAwMkZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MTVEQTg2LCAweDAwMDAwNywKLQkweDAxNjI4RCwgMHgwMDA4MTAsIDB4MDgwNDNBLCAweDI5RDIwNiwKLQkweDAwMDAwNywgMHgxNEQyMDYsIDB4MDAwMDA3LCAweDAwNzAyMCwKLQkweDA4MDEwQSwgMHgxMDAxMkEsIDB4MDAyMEZELCAweDAzODg2MCwKLQkweDAzOTA2MCwgMHgwMTgwNDAsIDB4MDAyMjdELCAweDAxODA0MiwKLQkweDAwM0RGRCwgMHgwODAwMEEsIDB4MzE4NDRBLCAweDAwMDkwNCwKLQkweDE2RDg4NiwgMHgxODAwOEIsIDB4MDAwMDhELCAweDE4OTkwNCwKLQkweDAwMzEyQywgMHgxN0FBMDYsIDB4MDAwMDA3LCAweDAwMzI0QywKLQkweDE3MzM4NiwgMHgwMDAwMDcsIDB4MDAxOTA0LCAweDE3MzA4NiwKLQkweDAwMDAwNywgMHgwMDAwOTUsIDB4MTk5MTQ0LCAweDAwMjIyQywKLQkweDAwMzEyNCwgMHgwMDYzNkMsIDB4MDAwRTNELCAweDAwMTM3NSwKLQkweDAwMEJGRCwgMHgwMTAwNDIsIDB4MDk4MDRBLCAweDEwMDAwQSwKLQkweDAzOEFFQywgMHgwMzkzRUMsIDB4MDAyMjRDLCAweDE3QTk4NiwKLQkweDAwMDAwNywgMHgwMDAwOEQsIDB4MTg5OTA0LCAweDAwMjI2QywKLQkweDAwMzIyQywgMHgzMDA1MEEsIDB4MzAxREFCLCAweDAwMjA4MywKLQkweDAwMThGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAxODkyNCwKLQkweDMwMDUwMiwgMHgwMDEwODMsIDB4MDAxODc1LCAweDAxMDA0MiwKLQkweDEwMDAwQSwgMHgwMDAwOEQsIDB4MDEwOTI0LCAweDAwMTM3NSwKLQkweDMzMDU0MiwgMHgzMzBDQ0IsIDB4MzMyQ0NCLCAweDMzMzRDQiwKLQkweDMzM0NDQiwgMHgzMzQ0Q0IsIDB4MzM0Q0NCLCAweDMzNTRDQiwKLQkweDMwNUM4QiwgMHgwMDYwODMsIDB4MDAwMkY1LCAweDAxMDA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MTg3QTg2LCAweDAwMDAwNywKLQkweDAwMUUyRCwgMHgwMDA1RkQsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAyODkyNCwgMHgyODA1MDIsIDB4MDAwNjBELCAweDAwMDgxMCwKLQkweDI4MEMzQSwgMHgwMDAwOEQsIDB4MDAwODEwLCAweDI4MTQzQSwKLQkweDBBODA4RCwgMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwKLQkweDIyMDAwNywgMHgwMDEyNzUsIDB4MDMwMDQyLCAweDIxMDA0QSwKLQkweDAwMDA4RCwgMHgxQTA5NDQsIDB4MDAwMDA3LCAweDAxOTgwRCwKLQkweDAwMDgxMCwgMHgwODA0M0EsIDB4MkIyMjA2LCAweDAwMDAwNywKLQkweDAwMDFGNSwgMHgwMzAwNDIsIDB4MEQwMDRBLCAweDEwMDAwQSwKLQkweDA4OTE0NCwgMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxMDA0MCwKLQkweDAwMjVGNSwgMHgwQTMxNDQsIDB4MDAwMDA3LCAweDAwMDgyMCwKLQkweDAzMjg2MCwgMHgwMzAwNDAsIDB4MDAyMTdELCAweDAzODA0MiwKLQkweDBCODA0QSwgMHgxMDAwMEEsIDB4MDAwODIwLCAweDAzMTA2MCwKLQkweDAzMDA0MCwgMHgwMDAwOEQsIDB4MDAwMTI0LCAweDAwMDEyQywKLQkweDAwMEU2NCwgMHgwMDFBNjQsIDB4MDA2MzZDLCAweDA4MDEwQSwKLQkweDEwMDEyQSwgMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAzMDA0MCwKLQkweDAwMjBGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMjI3RCwKLQkweDAxODA0MiwgMHgxMDAwMEEsIDB4MDAwODIwLCAweDAzMTA2MCwKLQkweDAzMDA0MCwgMHgwMDE5N0QsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAwMjJGRCwgMHgwMzgwNDIsIDB4MTAwMDBBLCAweDAwMDgyMCwKLQkweDAzMTA2MCwgMHgwMzAwNDAsIDB4MDkwRDA0LCAweDAwMDAwNywKLQkweDAwMDgyMCwgMHgwMzAwNDAsIDB4MDM4MDQyLCAweDBCODA0QSwKLQkweDEwMDAwQSwgMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAzMDA0MCwKLQkweDAzODA0MiwgMHgxMzgwNEEsIDB4MTk4MDRBLCAweDExMEQwNCwKLQkweDE5OEQwNCwgMHgwMDAwMDcsIDB4MDgwMDBBLCAweDAwMTAyMCwKLQkweDAzMTg2MCwgMHgwMzA4NjAsIDB4MDMwMDQwLCAweDAwMDA4RCwKLQkweDBCMDk0NCwgMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxMDA0MCwKLQkweDAwMDVGNSwgMHgwMzAwNDIsIDB4MDgwMDBBLCAweDAwMDgyMCwKLQkweDAxMDA0MCwgMHgwMDAwRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwKLQkweDAwMDkwNCwgMHgxQzYwODYsIDB4MDAxRTc1LCAweDAzMDA0MiwKLQkweDAxMDQ0QSwgMHgwMDBDMEEsIDB4MUM3MjA2LCAweDAwMDAwNywKLQkweDAwMDQwMiwgMHgwMDBDMDIsIDB4MDAxNzdELCAweDAwMUFGNSwKLQkweDAxODA0MiwgMHgwMzE0NEEsIDB4MDMxQzRBLCAweDAzMjQ0QSwKLQkweDAzMkM0QSwgMHgwMzM0NEEsIDB4MDMzQzRBLCAweDAzNDQ0QSwKLQkweDAwNEMwQSwgMHgwMDA0M0QsIDB4MDAxM0Y1LCAweDAwMUFGRCwKLQkweDAzMDA0MiwgMHgwQjAwNEEsIDB4MUI4MDRBLCAweDEzODA0QSwKLQkweDIwMDAwQSwgMHgwODkxNDQsIDB4MTlBMTQ0LCAweDAzODlFNCwKLQkweDAzOTlFQywgMHgwMDU1MDIsIDB4MDA1RDBBLCAweDAzMDA0MiwKLQkweDBCMDA0QSwgMHgxQjgwNEEsIDB4MTM4MDRBLCAweDIwMDAwQSwKLQkweDA4OTE0NCwgMHgxOUExNDQsIDB4MDM4OUU0LCAweDAzOTlFQywKLQkweDAwNjUwMiwgMHgwMDZEMEEsIDB4MDMwMDQyLCAweDBCMDA0QSwKLQkweDE5MDA0QSwgMHgyQjgwNEEsIDB4MTM4MDRBLCAweDIxODA0QSwKLQkweDMwMDAwQSwgMHgwODkxNDQsIDB4MTlBMTQ0LCAweDJBQjE0NCwKLQkweDAzODlFNCwgMHgwMzk5RUMsIDB4MDA3NTAyLCAweDAwN0QwQSwKLQkweDAzQTlFNCwgMHgwMDA3MDIsIDB4MDAxMDdELCAweDAwMDQxNSwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDEwOUU0LCAweDAwMEYwMiwKLQkweDAwMkFGNSwgMHgwMDE5RkQsIDB4MDEwMDQyLCAweDA5ODA0QSwKLQkweDEwMDAwQSwgMHgwMDA5MzQsIDB4MDAxNjc0LCAweDAwMjlGNSwKLQkweDAxMDA0MiwgMHgxMDAwMEEsIDB4MDA5MTdDLCAweDAwMjA3NSwKLQkweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDFFRDI4NiwKLQkweDAwMjZGNSwgMHgwMDI3RjUsIDB4MDMwMDQyLCAweDA5MDA0QSwKLQkweDEwMDAwQSwgMHgwMDBBM0MsIDB4MDAxNjdDLCAweDAwMUE3NSwKLQkweDAwMEJGRCwgMHgwMTAwNDIsIDB4NTE4MDRBLCAweDQ4MDAwQSwKLQkweDE2MDAwNywgMHgwMDEwNzUsIDB4MDEwMDQyLCAweDI4MkMwQSwKLQkweDI4MUQxMiwgMHgyODI1MTIsIDB4MDAxRjMyLCAweDFFMDAwNywKLQkweDBFMDAwNywgMHgwMDE5NzUsIDB4MDEwMDQyLCAweDAwMkRGNSwKLQkweDBEMDA0QSwgMHgxMDAwMEEsIDB4MDA5MTQ0LCAweDFGQjI4NiwKLQkweDAxMDA0MiwgMHgyODM0MEEsIDB4MDAwRTVELCAweDAwMDA4RCwKLQkweDAwMDM3NSwgMHgwMDA4MjAsIDB4MDEwMDQwLCAweDA1RDJGNCwKLQkweDU0RDEwNCwgMHgwMDczNUMsIDB4MjA1Mzg2LCAweDAwMDAwNywKLQkweDBDMDAwNywgMHgwODAwMDcsIDB4MEEwMDA3LCAweDAyMDQwRCwKLQkweDAwMDgxMCwgMHgwODA0M0EsIDB4MzMyMjA2LCAweDAwMDAwNywKLQkweDIwNUEwNiwgMHgwMDAwMDcsIDB4MDgwMDA3LCAweDAwMjI3NSwKLQkweDAxMDA0MiwgMHgyMDAwMEEsIDB4MDAyMTA0LCAweDIxMjA4NiwKLQkweDAwMUUyRCwgMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwKLQkweDAwMDkwNCwgMHgyMDkyODYsIDB4MDAwMDA3LCAweDAwMjAxMCwKLQkweDMwMDQzQSwgMHgwMDA1N0QsIDB4MDE4MEMzLCAweDA4MDAwQSwKLQkweDAyODkyNCwgMHgyODA1MDIsIDB4MjgwQzAyLCAweDBBODEwRCwKLQkweDAwMDgyMCwgMHgwMDAyRjUsIDB4MDEwMDQwLCAweDIyMDAwNywKLQkweDAwMDRGRCwgMHgwMTgwNDIsIDB4NzAwMDBBLCAweDAzMDAwMCwKLQkweDAwNzAyMCwgMHgwNkZBMDYsIDB4MDE4MDQwLCAweDAyMTgwRCwKLQkweDAwMDgxMCwgMHgwODA0M0EsIDB4MkIyMjA2LCAweDAwMDAwNywKLQkweDAwMDJGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwKLQkweDIxOEE4NiwgMHgwMDAwMDcsIDB4MDFGMjA2LCAweDAwMDAwNywKLQkweDAwMDg3NSwgMHgwMDA5RkQsIDB4MDAwMTBELCAweDIyMEEwNiwKLQkweDAwMDI5NSwgMHgwMDBCNzUsIDB4MDAwOTdELCAweDAwMDAwRCwKLQkweDAwMDUxNSwgMHgwMTAwNDIsIDB4MTgwMDBBLCAweDAwMTkwNCwKLQkweDI4Nzg4NiwgMHgwMDA2RjUsIDB4MDAxMDIwLCAweDAxMDA0MCwKLQkweDAwMDRGNSwgMHgwMDA4MjAsIDB4MDEwMDQwLCAweDAwMDc3NSwKLQkweDAxMDA0MiwgMHgwOTgwNEEsIDB4MTAwMDBBLCAweDAwMTEyNCwKLQkweDAwMDkwNCwgMHgyMkJBODYsIDB4MDAwODE1LCAweDA4MDEwMiwKLQkweDEwMTIwNCwgMHgyMkRBMDYsIDB4MDAwNTc1LCAweDA4MTIwNCwKLQkweDAwMDAwNywgMHgxMDAxMDIsIDB4MDAwNTc1LCAweDAwMDQyNSwKLQkweDAyMTEyNCwgMHgxMDAxMDIsIDB4MDAwODIwLCAweDAzMTA2MCwKLQkweDAxMDA0MCwgMHgwMDE5MjQsIDB4Mjg3ODg2LCAweDAwMDA4RCwKLQkweDAwMDQ2NCwgMHgwMDlEMDQsIDB4Mjc4ODg2LCAweDE4MDEwMiwKLQkweDAwMDU3NSwgMHgwMTAwNDIsIDB4MjgwNDBBLCAweDAwMDE4RCwKLQkweDAwMDkyNCwgMHgyODBEMDIsIDB4MDAwMDBELCAweDAwMDkyNCwKLQkweDI4MTUwMiwgMHgxMDAwMEQsIDB4MDAwODIwLCAweDAwMDJGNSwKLQkweDAxMDA0MCwgMHgyMDAwMDcsIDB4MDAxMTc1LCAweDAwMDJGRCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDIzQzI4NiwKLQkweDAwMDAwNywgMHgwMDAxMDAsIDB4MDgwQjIwLCAweDEzMEI2MCwKLQkweDFCMEI2MCwgMHgwMzBBNjAsIDB4MDEwMDQwLCAweDA1MDA0MiwKLQkweDNEMDA0QSwgMHgzNTAwNEEsIDB4MkQwMDRBLCAweDIwMDAwQSwKLQkweDAwMDZGNSwgMHgwMTAwNDIsIDB4MjgxNDBBLCAweDAwMDRGNSwKLQkweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwMzE1LCAweDAxMEQwNCwKLQkweDI0Q0E4NiwgMHgwMDQwMTUsIDB4MDAwMDk1LCAweDAxMEQwNCwKLQkweDI0Qjg4NiwgMHgxMDAwMjIsIDB4MTAwMDJBLCAweDI0RTIwNiwKLQkweDAwMDAwNywgMHgzMzMxMDQsIDB4MkFBOTA0LCAweDAwMDAwNywKLQkweDAzMjEyNCwgMHgyODA1MDIsIDB4MDAxMTI0LCAweDAwMDQyNCwKLQkweDAwMDQyNCwgMHgwMDMyMjQsIDB4MDAyOTJDLCAweDAwNjM2QywKLQkweDI1RjM4NiwgMHgwMDAwMDcsIDB4MDJCMTY0LCAweDAwMDQ2NCwKLQkweDAwMDQ2NCwgMHgwMDAwOEQsIDB4MDAwQTY0LCAweDI4MEQwMiwKLQkweDEwMDA4RCwgMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwKLQkweDIyMDAwNywgMHgwMDAwOEQsIDB4MzhCOTA0LCAweDAwMDAwNywKLQkweDAzMjk2QywgMHgzMDAxMEEsIDB4MDAwMkY1LCAweDAxMDA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MjVCQTg2LCAweDAwMDAwNywKLQkweDAyMzEyQywgMHgyODA1MEEsIDB4MDAwMDhELCAweDAxMDk2QywKLQkweDI4MEQwQSwgMHgxMDAxMEQsIDB4MDAwODIwLCAweDAwMDJGNSwKLQkweDAxMDA0MCwgMHgyMjAwMDcsIDB4MDAxMTI0LCAweDAwMDQyNCwKLQkweDAwMDQyNCwgMHgwMDMyMjQsIDB4MzAwMTAyLCAweDAzMjk0NCwKLQkweDI2N0E4NiwgMHgwMDAwMDcsIDB4MzAwMDAyLCAweDAwMDRGNSwKLQkweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwMzE1LCAweDAxMEQwNCwKLQkweDI2QzA4NiwgMHgwMDMxMjQsIDB4MDAwNDY0LCAweDMwMDEwMiwKLQkweDAwMDJGNSwgMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwKLQkweDI2Q0E4NiwgMHgwMDAwMDcsIDB4MDAzMTI0LCAweDMwMDUwMiwKLQkweDAwMzkyNCwgMHgzMDA1ODMsIDB4MDAwODgzLCAweDAwMDVGNSwKLQkweDAxMDA0MiwgMHgyODA0MEEsIDB4MDAwMDhELCAweDAwODEyNCwKLQkweDI4MEQwMiwgMHgwMDAwOEQsIDB4MDA4MTI0LCAweDI4MTUwMiwKLQkweDEwMDE4RCwgMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwKLQkweDIyMDAwNywgMHgwMDEwMjUsIDB4MDAwNTc1LCAweDAzMDA0MiwKLQkweDA5MDA0QSwgMHgxMDAwMEEsIDB4MEEwOTA0LCAweDEyMTEwNCwKLQkweDAwMDAwNywgMHgwMDEwMjAsIDB4MDUwODYwLCAweDA1MDA0MCwKLQkweDAwMDZGRCwgMHgwMTgwNDIsIDB4MDkwMDRBLCAweDEwMDAwQSwKLQkweDAwMDBBNSwgMHgwQTA5MDQsIDB4MTIxMTA0LCAweDAwMDAwNywKLQkweDAwMDgyMCwgMHgwMTkwNjAsIDB4MDEwMDQwLCAweDAwMDJGNSwKLQkweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDI4NDI4NiwKLQkweDAwMDAwNywgMHgyMzBBMDYsIDB4MDAwMDA3LCAweDAwMDYwNiwKLQkweDAwMDAwNywgMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwKLQkweDAwMDkwNCwgMHgyODkyODYsIDB4MDAwMDA3LCAweDAwMDEwMCwKLQkweDA4MEIyMCwgMHgxMzhCNjAsIDB4MUI4QjYwLCAweDIzOEI2MCwKLQkweDJCOEI2MCwgMHgzMzhCNjAsIDB4M0I4QjYwLCAweDQzOEI2MCwKLQkweDRCOEI2MCwgMHg1MzhCNjAsIDB4NUI4QjYwLCAweDYzOEI2MCwKLQkweDZCOEI2MCwgMHg3MzhCNjAsIDB4N0I4QjYwLCAweDAzOEY2MCwKLQkweDBCOEY2MCwgMHgxMzhGNjAsIDB4MUI4RjYwLCAweDIzOEY2MCwKLQkweDJCOEY2MCwgMHgzMzhGNjAsIDB4M0I4RjYwLCAweDQzOEY2MCwKLQkweDRCOEY2MCwgMHg1MzhGNjAsIDB4NUI4RjYwLCAweDYzOEY2MCwKLQkweDZCOEY2MCwgMHg3MzhGNjAsIDB4N0I4RjYwLCAweDAzOEE2MCwKLQkweDAwMDYwNiwgMHgwMTgwNDAsIDB4MDAwMDhELCAweDAwMEE2NCwKLQkweDI4MEQwMiwgMHgwMDBBMjQsIDB4MDAwMjdELCAweDAxODA0MiwKLQkweDEwMDAwQSwgMHgwMDEyMjQsIDB4MDAwM0ZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MkE4Mjg2LCAweDAwMDAwNywKLQkweDAwMDE4RCwgMHgwMDBBMjQsIDB4MDAwNDY0LCAweDAwMDQ2NCwKLQkweDA4MDEwMiwgMHgwMDA5MjQsIDB4MDAwNDI0LCAweDAwMDQyNCwKLQkweDEwMDEwMiwgMHgwMjAwMEQsIDB4MDA5MTQ0LCAweDJBRDk4NiwKLQkweDAwMDAwNywgMHgwMDAxRkQsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAwMEE0NCwgMHgyQUJCODYsIDB4MDE4MDQyLCAweDBBMDAwRCwKLQkweDAwMDgyMCwgMHgwMDAyRkQsIDB4MDE4MDQwLCAweDIwMDAwNywKLQkweDAwMDI3RCwgMHgwMDEwMjAsIDB4MDAwNjA2LCAweDAxODA0MCwKLQkweDAwMDJGNSwgMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwKLQkweDJCMkE4NiwgMHgwMDAwMDcsIDB4MDAwMzdELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MkI1QTg2LCAweDAwMDAwNywKLQkweDAwMDA3NSwgMHgwMDJFN0QsIDB4MDEwMDQyLCAweDBCODA0QSwKLQkweDAwMDAyMCwgMHgwMDA5MDQsIDB4MDAwNjg2LCAweDAxMDA0MCwKLQkweDMxODQ0QSwgMHgzMDA0OEIsIDB4MDAwODgzLCAweDAwMDA4RCwKLQkweDAwMDgxMCwgMHgyODE0M0EsIDB4MDAwMDhELCAweDAwMDgxMCwKLQkweDI4MEMzQSwgMHgwMDA2NzUsIDB4MDEwMDQyLCAweDA4MDAwQSwKLQkweDAwMzgxNSwgMHgwMTA5MjQsIDB4MjgwNTAyLCAweDBCMDAwRCwKLQkweDAwMDgyMCwgMHgwMDAyRjUsIDB4MDEwMDQwLCAweDAwMDYwNiwKLQkweDIyMDAwNywgMHgwMDA0NjQsIDB4MDAwNDY0LCAweDAwMDYwNiwKLQkweDAwMDAwNywgMHgwMDAxMzQsIDB4MDA3RjhELCAweDAwMDkzQywKLQkweDI4MUQxMiwgMHgyODI1MTIsIDB4MDAxRjMyLCAweDBFMDAwNywKLQkweDAwMDEwRCwgMHgwMDAzN0QsIDB4MDAwODIwLCAweDAxODA0MCwKLQkweDA1RDJGNCwgMHgwMDAwMDcsIDB4MDgwMDA3LCAweDAwMDM3RCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDJEMDI4NiwKLQkweDAwMDAwNywgMHgwMDA2MDYsIDB4MDAwMDA3LCAweDAwMDAwNywKLQkweDAwMDAxMiwgMHgxMDAwMDcsIDB4MzIwMDA3LCAweDYwMDAwNywKLQkweDEwMDA4MCwgMHg0ODAwMUEsIDB4MDA0OTA0LCAweDJENjE4NiwKLQkweDAwMDAwNywgMHgwMDEyMTAsIDB4NTgwMDNBLCAweDAwMDE0NSwKLQkweDVDNUQwNCwgMHgwMDAwMDcsIDB4MDAwMDgwLCAweDQ4MDAxQSwKLQkweDAwNDkwNCwgMHgyREIxODYsIDB4MDAwMDA3LCAweDAwMTIxMCwKLQkweDUwMDAzQSwgMHgwMDU5MDQsIDB4MkUwODg2LCAweDAwMDA0NSwKLQkweDAwMDBDNSwgMHg3RkZGRjUsIDB4N0ZGRjdELCAweDA3RDUyNCwKLQkweDAwNDIyNCwgMHg1MDAxMDIsIDB4MjAwNTAyLCAweDAwMDA4MiwKLQkweDQwMDAxQSwgMHgwMDQxMDQsIDB4MkUzOTg2LCAweDAwMDAwNywKLQkweDAwMzg2NSwgMHg0MDAwMUEsIDB4MDA0MDIwLCAweDAwMTA0RCwKLQkweDA0QzE4NCwgMHgzMDFCODYsIDB4MDAwMDQwLCAweDA0MDAwNywKLQkweDAwMDE2NSwgMHgwMDAxNDUsIDB4MDA0MDIwLCAweDAwMDA0MCwKLQkweDAwMDc2NSwgMHgwODAwODAsIDB4NDAwMDFBLCAweDAwNDEwNCwKLQkweDJFQzk4NiwgMHgwMDAwMDcsIDB4MDAxMjEwLCAweDQwMDAzQSwKLQkweDAwNDEwNCwgMHgyRjIyODYsIDB4MDAwMDRELCAweDAwMDBDRCwKLQkweDAwNDgxMCwgMHgyMDA0M0EsIDB4MDAwODgyLCAweDQwMDAxQSwKLQkweDAwNDEwNCwgMHgyRjMxODYsIDB4MDAwMDA3LCAweDAwNDgyMCwKLQkweDAwNTkwNCwgMHgzMDA4ODYsIDB4MDAwMDQwLCAweDAwMDdFNSwKLQkweDIwMDQ4MCwgMHgyODE2QTAsIDB4MzIxNkUwLCAweDNBMTZFMCwKLQkweDQyMTZFMCwgMHgwMjEyNjAsIDB4MDAwMDQwLCAweDAwMDAzMiwKLQkweDQwMDA3NSwgMHgwMDAwN0QsIDB4MDdENTc0LCAweDIwMDUxMiwKLQkweDAwMDA4MiwgMHg0MDAwMUEsIDB4MDA0MTA0LCAweDJGRTE4NiwKLQkweDAwMDAwNywgMHgwMzcyMDYsIDB4NjQwMDA3LCAweDA2MDAwNywKLQkweDAwMDBFNSwgMHgwMDAwMjAsIDB4MDAwMDQwLCAweDAwMEE2NSwKLQkweDAwMDAyMCwgMHgwMjAwNDAsIDB4MDIwMDQwLCAweDAwMDA0MCwKLQkweDAwMDE2NSwgMHgwMDAwNDIsIDB4NzAwMDBBLCAweDAwNzEwNCwKLQkweDMwQTI4NiwgMHgwMDAwMDcsIDB4MDE4MjA2LCAweDY0MDAwNywKLQkweDA1MDAwMCwgMHgwMDcwMjAsIDB4MDAwMDQwLCAweDAzNzIwNiwKLQkweDY0MDAwNywgMHgwMDAwMDcsIDB4MDAzMDZELCAweDAyODg2MCwKLQkweDAyOTA2MCwgMHgwODAwMEEsIDB4MDI4ODYwLCAweDAwODA0MCwKLQkweDEwMDAxMiwgMHgwMDEwMEQsIDB4MDA5MTg0LCAweDMxNDE4NiwKLQkweDAwMEUwRCwgMHgwMDkxODQsIDB4MzI1MTg2LCAweDAwMDAwNywKLQkweDMwMDAwNywgMHgwMDEwMjAsIDB4MDAzQjZELCAweDAwODA0MCwKLQkweDAwMDA4MCwgMHgwODAwMUEsIDB4MDAwOTA0LCAweDMxNjE4NiwKLQkweDAwMDAwNywgMHgwMDEyMjAsIDB4MDAwREVELCAweDAwODA0MCwKLQkweDAwODA0MiwgMHgxMDAwMEEsIDB4NDAwMDBELCAweDEwOTU0NCwKLQkweDAwMDAwNywgMHgwMDEwMjAsIDB4MDAwREVELCAweDAwODA0MCwKLQkweDAwODA0MiwgMHgyMDA0MEEsIDB4MDAwMDgyLCAweDA4MDAxQSwKLQkweDAwMDkwNCwgMHgzMUYxODYsIDB4MDAwMDA3LCAweDAwM0I2RCwKLQkweDAwODA0MiwgMHgwODAwMEEsIDB4MDAwRTE1LCAweDAxMDk4NCwKLQkweDMyOUI4NiwgMHg2MDAwMDcsIDB4MDgwMDFBLCAweDAwMEMxNSwKLQkweDAxMDk4NCwgMHgzMjgzODYsIDB4MDAwMDIwLCAweDFBMDAwNywKLQkweDAwMDJFRCwgMHgwMDgwNDAsIDB4NjIwMDA3LCAweDAwMzA2RCwKLQkweDAyODA0MiwgMHgwQTgwNEEsIDB4MDAwODIwLCAweDBBODA0QSwKLQkweDAwMDYwNiwgMHgxMDgwNEEsIDB4MDAwMDA3LCAweDI4MjUxMiwKLQkweDAwMUYzMiwgMHgwNUQyRjQsIDB4NTREMTA0LCAweDAwNzM1QywKLQkweDAwMDc4NiwgMHgwMDAwMDcsIDB4MEMwMDA3LCAweDBBMDAwNywKLQkweDFDMDAwNywgMHgwMDM0NjUsIDB4MDIwMDQwLCAweDAwNDgyMCwKLQkweDAyNTA2MCwgMHg0MDAwMEEsIDB4MDI0MDYwLCAweDAwMDA0MCwKLQkweDQ1NDk0NCwgMHgwMDAwMDcsIDB4MDA0MDIwLCAweDAwM0FFNSwKLQkweDAwMDA0MCwgMHgwMDI4RTUsIDB4MDAwMDQyLCAweDQ4MDAwQSwKLQkweDAwNDkwNCwgMHgzODY4ODYsIDB4MDAyQzY1LCAweDAwMDA0MiwKLQkweDQwMDAwQSwgMHgwMDAwRDUsIDB4NDU0MTA0LCAweDAwMDAwNywKLQkweDAwMDY1NSwgMHgwNTQ1MDQsIDB4MzRGMjg2LCAweDAwMDFENSwKLQkweDA1NDUwNCwgMHgzNEYwODYsIDB4MDAyQjY1LCAweDAwMDA0MiwKLQkweDAwM0FFNSwgMHg1MDAwNEEsIDB4NDAwMDBBLCAweDQ1QzNENCwKLQkweDAwMDAwNywgMHg0NTQ1MDQsIDB4MDAwMDA3LCAweDAwMDBDRCwKLQkweDQ0NDk0NCwgMHgwMDAwMDcsIDB4NDU0NTA0LCAweDAwMDAwNywKLQkweDAwMDE0RCwgMHg1NTQ5NDQsIDB4MDAwMDA3LCAweDA0NTE0NCwKLQkweDM0RTk4NiwgMHgwMDJDNjUsIDB4MDAwMDQyLCAweDQ4MDAwQSwKLQkweDRDRDEwNCwgMHgwMDAwMDcsIDB4MDRDMTQ0LCAweDM0RjM4NiwKLQkweDAwMDAwNywgMHgxNjAwMDcsIDB4MDAyQ0U1LCAweDA0MDA0MiwKLQkweDQwMDAwQSwgMHgwMDQwMjAsIDB4MDAwMDQwLCAweDAwMjk2NSwKLQkweDAwMDA0MiwgMHg0MDAwMEEsIDB4MDA0MTA0LCAweDM1NjA4NiwKLQkweDAwMDAwNywgMHgwMDI0MDIsIDB4MzZBMjA2LCAweDAwNUMwMiwKLQkweDAwMjVFNSwgMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDI3NCwKLQkweDAwMkFFNSwgMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDI3NCwKLQkweDUwMDExMiwgMHgwMDI5RTUsIDB4MDAwMDQyLCAweDQwMDAwQSwKLQkweDAwNDIzNCwgMHg0NTQxMDQsIDB4MDAwMDA3LCAweDAwNDAyMCwKLQkweDAwMDA0MCwgMHgwMDNFRTUsIDB4MDAwMDIwLCAweDAwMDA0MCwKLQkweDAwMkRFNSwgMHg0MDAxNTIsIDB4NTAwMDBBLCAweDA0NTE0NCwKLQkweDM2NEE4NiwgMHgwMDAwQzUsIDB4MDAzRUU1LCAweDAwNDAyMCwKLQkweDAwMDA0MCwgMHgwMDJCRTUsIDB4MDAwMDQyLCAweDQwMDAwQSwKLQkweDQwNDI1NCwgMHgwMDAwMDcsIDB4MDAyQUU1LCAweDAwNDAyMCwKLQkweDAwMDA0MCwgMHg1MDAxMzIsIDB4MDQwMTM0LCAweDAwNTY3NCwKLQkweDAwMjlFNSwgMHgwMjAwNDIsIDB4NDIwMDBBLCAweDAwMDA0MiwKLQkweDUwMDAwQSwgMHgwNTQxN0MsIDB4MDAyOEU1LCAweDAwMDA0MiwKLQkweDQ4MDAwQSwgMHgwMDAwQzUsIDB4NENDMTQ0LCAweDM3MTA4NiwKLQkweDAwMjZFNSwgMHgwMDI3RTUsIDB4MDIwMDQyLCAweDQwMDA0QSwKLQkweDUwMDAwQSwgMHgwMDQyM0MsIDB4MDA1NjdDLCAweDAwMjhFNSwKLQkweDAwNDgyMCwgMHgwMDAwNDAsIDB4MjgxRDEyLCAweDI4MjUxMiwKLQkweDAwMUY3MiwgMHgwMDI5NjUsIDB4MDAwMDQyLCAweDQwMDAwQSwKLQkweDAwNDEwNCwgMHgzN0FBODYsIDB4MEUwMDA3LCAweDE2MDAwNywKLQkweDFFMDAwNywgMHgwMDNFRTUsIDB4MDAwMDQyLCAweDQwMDAwQSwKLQkweDAwNDEwNCwgMHgzN0U4ODYsIDB4MDAyRDY1LCAweDAwMDA0MiwKLQkweDI4MzQwQSwgMHgwMDM0NjUsIDB4MDIwMDQyLCAweDQyMDA0QSwKLQkweDAwNDAyMCwgMHg0QTAwNEEsIDB4NTAwMDRBLCAweDA1RDJGNCwKLQkweDU0RDEwNCwgMHgwMDczNUMsIDB4Mzg1MTg2LCAweDAwMDAwNywKLQkweDAwMDYwNiwgMHgwODAwMDcsIDB4MEMwMDA3LCAweDA4MDAwNywKLQkweDBBMDAwNywgMHgwMDAxRTUsIDB4MDIwMDQ1LCAweDAwNDAyMCwKLQkweDAwMDA2MCwgMHgwMDAzNjUsIDB4MDAwMDQwLCAweDAwMkU2NSwKLQkweDAwMUEyMCwgMHgwQTFBNjAsIDB4MDAwMDQwLCAweDAwMzQ2NSwKLQkweDAyMDA0MiwgMHg0MjAwNEEsIDB4MDA0MDIwLCAweDRBMDA0QSwKLQkweDAwMDYwNiwgMHg1MDAwNEEsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMAotfTsKLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vICBEUy0xRSBDb250cm9sbGVyIEluc3RydWN0aW9uUkFNIENvZGUKLS8vCTE5OTkvMDYvMjEKLS8vCUJ1ZjQ0MSBzbG90IGlzIEVuYWJsZWQuCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gMDQvMDkgIGNyZWF0Ci0vLyAwNC8xMiAgc3RvcCBuaXNlIGZpeAotLy8gMDYvMjEgIFdvcmtpbmdPZmYgdGltbWluZwotc3RhdGljIHUzMiBDbnRybEluc3QxRVtZRFNYR19DVFJMTEVOR1RIIC8gNF0gPSB7Ci0JMHgwMDAwMDcsIDB4MjQwMDA3LCAweDBDMDAwNywgMHgxQzAwMDcsCi0JMHgwNjAwMDcsIDB4NzAwMDAyLCAweDAwMDAyMCwgMHgwMzAwNDAsCi0JMHgwMDcxMDQsIDB4MDA0Mjg2LCAweDAzMDA0MCwgMHgwMDBGMEQsCi0JMHgwMDA4MTAsIDB4MjAwNDNBLCAweDAwMDI4MiwgMHgwMDAyMEQsCi0JMHgwMDA4MTAsIDB4MjAwNDNBLCAweDAwMTI4MiwgMHgyMDBFODIsCi0JMHgwMDgwMEQsIDB4MDAwODEwLCAweDIwMDQzQSwgMHgwMDFBODIsCi0JMHgwMzQ2MEQsIDB4MDAwODEwLCAweDEwMDQzQSwgMHgwMkVDMEQsCi0JMHgwMDA4MTAsIDB4MTgwNDNBLCAweDAwMDEwRCwgMHgwMjAwMTUsCi0JMHgwMDAwRkQsIDB4MDAwMDIwLCAweDAzODg2MCwgMHgwMzkwNjAsCi0JMHgwMzgwNjAsIDB4MDM4MDQwLCAweDAzODA0MCwgMHgwMzgwNDAsCi0JMHgwMTgwNDAsIDB4MDAwQTdELCAweDAzODA0MCwgMHgwMzgwNDAsCi0JMHgwMTgwNDAsIDB4MjAwNDAyLCAweDAwMDg4MiwgMHgwODAwMUEsCi0JMHgwMDA5MDQsIDB4MDE3MTg2LCAweDAwMDAwNywgMHgyNjAwMDcsCi0JMHg0MDAwMDcsIDB4MDAwMDA3LCAweDAzMjU4RCwgMHgwMDA4MTAsCi0JMHgxODA0M0EsIDB4MjYwMDA3LCAweDI4NDQwMiwgMHgwMDA4N0QsCi0JMHgwMTgwNDIsIDB4MDAxNjBBLCAweDA1QTIwNiwgMHgwMDAwMDcsCi0JMHg0NDAwMDcsIDB4MDAyMzBELCAweDAwMDgxMCwgMHgwODA0M0EsCi0JMHgyMkZBMDYsIDB4MDAwMDA3LCAweDAwMDdGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDAyQUI4NiwgMHgwMDAxOTUsCi0JMHgwOTBEMDQsIDB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMDAwRjUsCi0JMHgwMDBCN0QsIDB4MDFGMDYwLCAweDAwMDBGRCwgMHgwMzNBMDYsCi0JMHgwMTgwNDAsIDB4MDAwQTdELCAweDAzODA0MiwgMHgxMzgwNEEsCi0JMHgxODAwMEEsIDB4MDAxODIwLCAweDA1OTA2MCwgMHgwNTg4NjAsCi0JMHgwMTgwNDAsIDB4MDAwMEZELCAweDAxODA0MiwgMHg3MDAwMEEsCi0JMHgwMDAxMTUsIDB4MDcxMTQ0LCAweDAzM0I4NiwgMHgwMzAwMDAsCi0JMHgwMDcwMjAsIDB4MDM2MjA2LCAweDAxODA0MCwgMHgwMDM2MEQsCi0JMHgwMDA4MTAsIDB4MDgwNDNBLCAweDIzMjIwNiwgMHgwMDAwMDcsCi0JMHgwMkVDMEQsIDB4MDAwODEwLCAweDE4MDQzQSwgMHgwMTlBMDYsCi0JMHgwMDAwMDcsIDB4MjQwMDA3LCAweDAwMEY4RCwgMHgwMDA4MTAsCi0JMHgwMDE2M0EsIDB4MDAyNDAyLCAweDAwNUMwMiwgMHgwMDI4RkQsCi0JMHgwMDAwMjAsIDB4MDE4MDQwLCAweDA4MDAwRCwgMHgwMDA4MTUsCi0JMHg1MTA5ODQsIDB4MDAwMDA3LCAweDAwMDA0RCwgMHgwMDBFNUQsCi0JMHgwMDBFMDIsIDB4MDA0MzBELCAweDAwMDgxMCwgMHgwODA0M0EsCi0JMHgyRTEyMDYsIDB4MDAwMDA3LCAweDAwMDA4RCwgMHgwMDA5MjQsCi0JMHgwMDBGMDIsIDB4MDA0NzBELCAweDAwMDgxMCwgMHgwODA0M0EsCi0JMHgyRTEyMDYsIDB4MDAwMDA3LCAweDQ4MDQ4MCwgMHgwMDEyMTAsCi0JMHgyODA0M0EsIDB4MDA3NzhELCAweDAwMDgxMCwgMHgyODBDM0EsCi0JMHgwMDA2OEQsIDB4MDAwODEwLCAweDI4MTQzQSwgMHgyODQ0MDIsCi0JMHgwMzI1OEQsIDB4MDAwODEwLCAweDE4MDQzQSwgMHgwN0ZGOEQsCi0JMHgwMDA4MjAsIDB4MDAwMkZELCAweDAxODA0MCwgMHgyNjAwMDcsCi0JMHgyMDAwMDcsIDB4MDAwMkZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MDUxMjg2LCAweDAwMDAwNywgMHgyNDAwMDcsCi0JMHgwMkVDMEQsIDB4MDAwODEwLCAweDE4MDQzQSwgMHgwMDM4N0QsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMTAxNSwgMHgwMTA5ODQsCi0JMHgwMTlCODYsIDB4MDAwMDA3LCAweDAxQjIwNiwgMHgwMDAwMDcsCi0JMHgwMDA4RkQsIDB4MDE4MDQyLCAweDE4MDAwQSwgMHgwMDE5MDQsCi0JMHgyMkI4ODYsIDB4MjgwMDA3LCAweDAwMTgxMCwgMHgyODA0M0EsCi0JMHgyODBDMDIsIDB4MDAwMDBELCAweDAwMDgxMCwgMHgyODE0M0EsCi0JMHgwODgwOEQsIDB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsCi0JMHgyMDAwMDcsIDB4MDAwMjBELCAweDE4OTkwNCwgMHgwMDAwMDcsCi0JMHgwMDQwMkQsIDB4MDAwMEJELCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDA2NUE4NiwgMHgwMDAwMDcsCi0JMHgwMDAxMDAsIDB4MDAwQTIwLCAweDAwMDQ3RCwgMHgwMTgwNDAsCi0JMHgwMTgwNDIsIDB4MjAwMDBBLCAweDAwMzAxNSwgMHgwMTIxNDQsCi0JMHgwMzYxODYsIDB4MDAwMDA3LCAweDAwMjEwNCwgMHgwMzYxODYsCi0JMHgwMDAwMDcsIDB4MDAwRjhELCAweDAwMDgxMCwgMHgyODBDM0EsCi0JMHgwMjM5NDQsIDB4MDdDOTg2LCAweDAwMDAwNywgMHgwMDE4MTAsCi0JMHgyODA0M0EsIDB4MDg4MTBELCAweDAwMDgyMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDAsIDB4MjAwMDA3LCAweDAwMjgxMCwgMHg3ODAwM0EsCi0JMHgwMDc4OEQsIDB4MDAwODEwLCAweDA4MDQzQSwgMHgyQTEyMDYsCi0JMHgwMDAwMDcsIDB4MDA0MDBELCAweDAwMTAxNSwgMHgxODk5MDQsCi0JMHgyOTI5MDQsIDB4MzkzOTA0LCAweDAwMDAwNywgMHgwNzAyMDYsCi0JMHgwMDAwMDcsIDB4MDAwNEY1LCAweDAwMDA3RCwgMHgwMDAwMjAsCi0JMHgwMDAwOEQsIDB4MDEwODYwLCAweDAxODA0MCwgMHgwMDA0N0QsCi0JMHgwMzgwNDIsIDB4MjE4MDRBLCAweDE4MDAwQSwgMHgwMjE5NDQsCi0JMHgyMjkwODYsIDB4MDAwMDA3LCAweDAwNDA3NSwgMHg3MUYxMDQsCi0JMHgwMDAwMDcsIDB4MDEwMDQyLCAweDI4MDAwQSwgMHgwMDI5MDQsCi0JMHgyMjU4ODYsIDB4MDAwMDA3LCAweDAwM0MwRCwgMHgzMEE5MDQsCi0JMHgwMDAwMDcsIDB4MDAwNzdELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MDhEQTg2LCAweDAwMDU3RCwgMHgwMDI4MjAsCi0JMHgwM0IwNjAsIDB4MDhGMjA2LCAweDAxODA0MCwgMHgwMDMwMjAsCi0JMHgwM0E4NjAsIDB4MDE4MDQwLCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDA4RkE4NiwgMHgwMDAwMDcsCi0JMHgwMDA1N0QsIDB4MDE4MDQyLCAweDI4MDQwQSwgMHgwMDBFOEQsCi0JMHgwMDA4MTAsIDB4MjgwQzNBLCAweDAwMDAwRCwgMHgwMDA4MTAsCi0JMHgyODE0M0EsIDB4MDkwMDBELCAweDAwMDgyMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDAsIDB4MjAwMDA3LCAweDAwM0RGRCwgMHgwMDAwMjAsCi0JMHgwMTgwNDAsIDB4MDAxMDdELCAweDAwOUQ4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkExMjA2LCAweDAwMDAwNywgMHgwMDA4MTUsCi0JMHgwODAwMUEsIDB4MDEwOTg0LCAweDBBNTE4NiwgMHgwMDEzN0QsCi0JMHgyMDA1MDAsIDB4MjgwRjIwLCAweDMzOEY2MCwgMHgzQjhGNjAsCi0JMHg0MzhGNjAsIDB4NEI4RjYwLCAweDUzOEY2MCwgMHg1QjhGNjAsCi0JMHgwMzhBNjAsIDB4MDE4MDQwLCAweDAwMTA3RCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwMjE1LCAweDAxMDk4NCwgMHgzQTgxODYsCi0JMHgwMDAwMDcsIDB4MDA3RkJELCAweDM4M0RDNCwgMHgwMDAwMDcsCi0JMHgwMDFBN0QsIDB4MDAxMzc1LCAweDAxODA0MiwgMHgwOTAwNEEsCi0JMHgxMDAwMEEsIDB4MEI4RDA0LCAweDEzOTUwNCwgMHgwMDAwMDcsCi0JMHgwMDA4MjAsIDB4MDE5MDYwLCAweDAwMTEwNCwgMHgyMjU4ODYsCi0JMHgwMTAwNDAsIDB4MDAxN0ZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MjI1QTg2LCAweDAwMDAwNywgMHgwMDE5N0QsCi0JMHgwMzgwNDIsIDB4MDk4MDRBLCAweDEwMDAwQSwgMHgwMDA5MjQsCi0JMHgwMDE2NjQsIDB4MDAxMUZELCAweDAzODA0MiwgMHgyQjgwNEEsCi0JMHgxOTgwNEEsIDB4MDAwMDhELCAweDIxODk0NCwgMHgwMDAwMDcsCi0JMHgwMDIyNDQsIDB4MEMxOTg2LCAweDAwMDAwNywgMHgwMDFBNjQsCi0JMHgwMDJBMjQsIDB4MDAxOTdELCAweDA4MDEwMiwgMHgxMDAxMjIsCi0JMHgwMDA4MjAsIDB4MDM5MDYwLCAweDAxODA0MCwgMHgwMDNERkQsCi0JMHgwMDAwOEQsIDB4MDAwODIwLCAweDAxODA0MCwgMHgwMDEzNzUsCi0JMHgwMDFBN0QsIDB4MDEwMDQyLCAweDA5ODA0QSwgMHgxMDAwMEEsCi0JMHgwMDAyMUQsIDB4MDE4OUU0LCAweDI5OTJFNCwgMHgzMDkxNDQsCi0JMHgwMDAwMDcsIDB4MDAwNjBELCAweDAwMEExNSwgMHgwMDBDMUQsCi0JMHgwMDEwMjUsIDB4MDBBOUU0LCAweDAxMkJFNCwgMHgwMDA0NjQsCi0JMHgwMUIzRTQsIDB4MDIzMkU0LCAweDAwMDQ2NCwgMHgwMDA0NjQsCi0JMHgwMDA0NjQsIDB4MDAwNDY0LCAweDAwMDQwRCwgMHgwOEIxQzQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAwMEJGNSwgMHgwMzAwNDAsCi0JMHgwMDE5N0QsIDB4MDM4MDQyLCAweDA5ODA0QSwgMHgwMDBBMjQsCi0JMHgwODAwMEEsIDB4MDgwRTY0LCAweDAwMDAwNywgMHgxMDAxMjIsCi0JMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAxMDA0MCwgMHgwMDY0QUMsCi0JMHgwMDAyN0QsIDB4MDAwMDIwLCAweDAxODA0MCwgMHgwMDEwN0QsCi0JMHgwMTgwNDIsIDB4MDAxMUZELCAweDNCODA0QSwgMHgwOTgwNEEsCi0JMHgyMDAwMEEsIDB4MDAwMDk1LCAweDFBMTE0NCwgMHgwMEExNDQsCi0JMHgwRTU4ODYsIDB4MDAwNDBELCAweDAwQjk4NCwgMHgwRTU5ODYsCi0JMHgwMDE4RkQsIDB4MDE4MDQyLCAweDAwMTBGRCwgMHgwOTgwNEEsCi0JMHgyODAwMEEsIDB4MDAwMDk1LCAweDAxMDkyNCwgMHgwMDJBNjQsCi0JMHgwRTQ5ODYsIDB4MDAwMDA3LCAweDAwMjkwNCwgMHgwRTVBODYsCi0JMHgwMDAwMDcsIDB4MEU2MjA2LCAweDA4MDAwMiwgMHgwMDAwOEQsCi0JMHgwMDM4N0QsIDB4MDAwODIwLCAweDAxODA0MCwgMHgwMDEyN0QsCi0JMHgwMTgwNDIsIDB4MTAwMDBBLCAweDAwMzkwNCwgMHgwRjA5ODYsCi0JMHgwMDA4MEQsIDB4N0ZGRkI1LCAweDAwQjk4NCwgMHgwRUQ5ODYsCi0JMHgwMDAwMjUsIDB4MEZCMjA2LCAweDAwMDAyRCwgMHgwMDAwMTUsCi0JMHgwMDA4MkQsIDB4MDJFMDBELCAweDAwMDgyMCwgMHgwRkZBMDYsCi0JMHgwMDAwMEQsIDB4N0Y4MDM1LCAweDAwQjk4NCwgMHgwRkE5ODYsCi0JMHg0MDAwMjUsIDB4MDAwMDhELCAweDExMDk0NCwgMHgwMDAwMDcsCi0JMHgwMDAxOEQsIDB4MTA5NTA0LCAweDAwMDAwNywgMHgwMDkxNjQsCi0JMHgwMDA0MjQsIDB4MDAwNDI0LCAweDAwMDQyNCwgMHgxMDAxMDIsCi0JMHgyODAwMDIsIDB4MDJERjBELCAweDAwMDgyMCwgMHgwRkZBMDYsCi0JMHgwMDAxOEQsIDB4MDAwNDJELCAweDAwMDA4RCwgMHgxMDk1MDQsCi0JMHgwMDAwMDcsIDB4MDAwMjBELCAweDEwOTE4NCwgMHgwMDAwMDcsCi0JMHgwMkRGOEQsIDB4MDAwODIwLCAweDAwMDA4RCwgMHgwMDM4RkQsCi0JMHgwMTgwNDAsIDB4MDAzQkZELCAweDAwMTAyMCwgMHgwM0E4NjAsCi0JMHgwMDA4MTUsIDB4MzEzMTg0LCAweDIxMjE4NCwgMHgwMDAwMDcsCi0JMHgwM0IwNjAsIDB4MDNBMDYwLCAweDAxODA0MCwgMHgwMDIyRkQsCi0JMHgwMDAwOTUsIDB4MDEwOTI0LCAweDAwMDQyNCwgMHgwMDA0MjQsCi0JMHgwMDEyNjQsIDB4MTAwMTAyLCAweDAwMDgyMCwgMHgwMzkwNjAsCi0JMHgwMTgwNDAsIDB4MDAxOTI0LCAweDAxMEYwRCwgMHgwMDM5N0QsCi0JMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwgMHgwOTg0NEEsCi0JMHgwMDA2MDYsIDB4MDgwNDBBLCAweDAwMDQyNCwgMHgwMDA0MjQsCi0JMHgwMDExN0QsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDBBMjQsCi0JMHgyODA1MDIsIDB4MjgwQzAyLCAweDA5ODAwRCwgMHgwMDA4MjAsCi0JMHgwMDAyRkQsIDB4MDE4MDQwLCAweDIwMDAwNywgMHgwMDIyRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDA5NSwgMHgyODBEQzQsCi0JMHgwMTE5MjQsIDB4MDAxOTdELCAweDAxODA0MiwgMHgwMDExRkQsCi0JMHgwOTgwNEEsIDB4MTAwMDBBLCAweDAwMDBCNSwgMHgxMTMxNDQsCi0JMHgwQThEMDQsIDB4MDAwMDA3LCAweDA4MEE0NCwgMHgxMjk1MDQsCi0JMHgwMDAwMDcsIDB4MDAyM0ZELCAweDAwMTAyMCwgMHgwMzgwNDAsCi0JMHgxMDEyNDQsIDB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMzkwNjAsCi0JMHgwMTgwNDAsIDB4MDAwMkZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MTIzMjg2LCAweDAwMDAwNywgMHgwMDNCRkQsCi0JMHgwMDAxMDAsIDB4MDAwQTEwLCAweDBCODA3QSwgMHgxMzgwNEEsCi0JMHgwOTA5ODQsIDB4MDAwMDA3LCAweDAwMDA5NSwgMHgwMTNEMDQsCi0JMHgxMkI4ODYsIDB4MTAwMDBBLCAweDEwMDAwMiwgMHgwOTA5ODQsCi0JMHgwMDAwMDcsIDB4MDM4MDQyLCAweDExODA0QSwgMHgwOTBEMDQsCi0JMHgwMDAwMDcsIDB4MTAwMDBBLCAweDA5MEQ4NCwgMHgwMDAwMDcsCi0JMHgwMDI1N0QsIDB4MDAwODIwLCAweDAxODA0MCwgMHgwMDAxMEQsCi0JMHgwMDA4MTAsIDB4MjgxNDNBLCAweDAwMTI3RCwgMHgwMTgwNDIsCi0JMHgyMDAwMEEsIDB4MDAxOTdELCAweDAxODA0MiwgMHgwMDExN0QsCi0JMHgzMTgwNEEsIDB4MTAwMDBBLCAweDAwMzEyNCwgMHgwMTNCOEQsCi0JMHgwMDM5N0QsIDB4MDAwODIwLCAweDA1ODA0MCwgMHgwMzgwNDIsCi0JMHgwOTg0NEEsIDB4MDAwNjA2LCAweDA4MDQwQSwgMHgzMDAxMDIsCi0JMHgwMDMxMjQsIDB4MDAwNDI0LCAweDAwMDQyNCwgMHgwMDEyMjQsCi0JMHgyODA1MDIsIDB4MDAxQTRDLCAweDE0Mzk4NiwgMHg3MDAwMDIsCi0JMHgwMDAwMkQsIDB4MDMwMDAwLCAweDAwMzg3RCwgMHgwMTgwNDIsCi0JMHgxMDAwMEEsIDB4MTQ2MjA2LCAweDAwMjEyNCwgMHgwMDAwQUQsCi0JMHgxMDAwMDIsIDB4MDAwMTBELCAweDAwMDkyNCwgMHgwMDZCMjQsCi0JMHgwMTRBMEQsIDB4MDAzOTdELCAweDAwMDgyMCwgMHgwNTgwNDAsCi0JMHgwMzgwNDIsIDB4MDk4NDRBLCAweDAwMDYwNiwgMHgwODA0MEEsCi0JMHgwMDMyNjQsIDB4MDAwMDhELCAweDAwMEEyNCwgMHgwMDEwMjAsCi0JMHgwMDIyN0QsIDB4MDE4MDQwLCAweDAxNEY4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkI1QTA2LCAweDAwMDAwNywgMHgwMDI4MjAsCi0JMHgwMDIwN0QsIDB4MDE4MDQwLCAweDAwMTE3RCwgMHgwMzgwNDIsCi0JMHgxMzgwNEEsIDB4MzM4MDBBLCAweDAwMzg3RCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDE3NzI4NiwgMHgwMDAwMDcsCi0JMHgwMDAwOEQsIDB4MDMwOTY0LCAweDAxNUIwRCwgMHgwMDM5N0QsCi0JMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwgMHgwOTg0NEEsCi0JMHgwMDA2MDYsIDB4MDgwNDBBLCAweDM4MDEwMiwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MDAxMjI0LCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDE1REE4NiwgMHgwMDAwMDcsCi0JMHgyODA1MDIsIDB4MDAxQTRDLCAweDE3NzE4NiwgMHgwMDAwMDcsCi0JMHgwMzIxNjQsIDB4MDA2MzJDLCAweDAwM0RGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwMDk1LCAweDA5MDkwNCwgMHgwMDAwMDcsCi0JMHgwMDA4MjAsIDB4MDAxQTRDLCAweDE2OTk4NiwgMHgwMTgwNDAsCi0JMHgwMzAwMDAsIDB4MTZCMjA2LCAweDAwMjEyNCwgMHgwMDAxMEQsCi0JMHgwMDA5MjQsIDB4MDA2QjI0LCAweDAxNkYwRCwgMHgwMDM5N0QsCi0JMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwgMHgwOTg0NEEsCi0JMHgwMDA2MDYsIDB4MDgwNDBBLCAweDAwM0E2NCwgMHgwMDAwOTUsCi0JMHgwMDEyMjQsIDB4MDAwMkZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MTcxMjg2LCAweDAwMDAwNywgMHgwMTc2MEQsCi0JMHgwMDA4MTAsIDB4MDgwNDNBLCAweDJCNUEwNiwgMHgwMDAwMDcsCi0JMHgxNjBBMDYsIDB4MDAwMDA3LCAweDAwNzAyMCwgMHgwODAxMEEsCi0JMHgxMDAxMkEsIDB4MDAyMEZELCAweDAzODg2MCwgMHgwMzkwNjAsCi0JMHgwMTgwNDAsIDB4MDAyMjdELCAweDAxODA0MiwgMHgwMDNERkQsCi0JMHgwODAwMEEsIDB4MzE4NDRBLCAweDAwMDkwNCwgMHgxODEwODYsCi0JMHgxODAwOEIsIDB4MDAwMDhELCAweDE4OTkwNCwgMHgwMDMxMkMsCi0JMHgxOEUyMDYsIDB4MDAwMDA3LCAweDAwMzI0QywgMHgxODZCODYsCi0JMHgwMDAwMDcsIDB4MDAxOTA0LCAweDE4Njg4NiwgMHgwMDAwMDcsCi0JMHgwMDAwOTUsIDB4MTk5MTQ0LCAweDAwMjIyQywgMHgwMDMxMjQsCi0JMHgwMDYzNkMsIDB4MDAwRTNELCAweDAwMTM3NSwgMHgwMDBCRkQsCi0JMHgwMTAwNDIsIDB4MDk4MDRBLCAweDEwMDAwQSwgMHgwMzhBRUMsCi0JMHgwMzkzRUMsIDB4MDAyMjRDLCAweDE4RTE4NiwgMHgwMDAwMDcsCi0JMHgwMDAwOEQsIDB4MTg5OTA0LCAweDAwMjI2QywgMHgwMDMyMkMsCi0JMHgzMDA1MEEsIDB4MzAxREFCLCAweDAwMjA4MywgMHgwMDE4RkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAxODkyNCwgMHgzMDA1MDIsCi0JMHgwMDEwODMsIDB4MDAxODc1LCAweDAxMDA0MiwgMHgxMDAwMEEsCi0JMHgwMDAwOEQsIDB4MDEwOTI0LCAweDAwMTM3NSwgMHgzMzA1NDIsCi0JMHgzMzBDQ0IsIDB4MzMyQ0NCLCAweDMzMzRDQiwgMHgzMzNDQ0IsCi0JMHgzMzQ0Q0IsIDB4MzM0Q0NCLCAweDMzNTRDQiwgMHgzMDVDOEIsCi0JMHgwMDYwODMsIDB4MDAwMkY1LCAweDAxMDA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MTlCMjg2LCAweDAwMDAwNywgMHgwMDFFMkQsCi0JMHgwMDA1RkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMjg5MjQsCi0JMHgyODA1MDIsIDB4MDAwNjBELCAweDAwMDgxMCwgMHgyODBDM0EsCi0JMHgwMDAwOEQsIDB4MDAwODEwLCAweDI4MTQzQSwgMHgwQTgwOEQsCi0JMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwgMHgyMjAwMDcsCi0JMHgwMDEyNzUsIDB4MDMwMDQyLCAweDIxMDA0QSwgMHgwMDAwOEQsCi0JMHgxQTA5NDQsIDB4MDAwMDA3LCAweDAxQUI4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkNBQTA2LCAweDAwMDAwNywgMHgwMDAxRjUsCi0JMHgwMzAwNDIsIDB4MEQwMDRBLCAweDEwMDAwQSwgMHgwODkxNDQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxMDA0MCwgMHgwMDI1RjUsCi0JMHgwQTMxNDQsIDB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMzI4NjAsCi0JMHgwMzAwNDAsIDB4MDAyMTdELCAweDAzODA0MiwgMHgwQjgwNEEsCi0JMHgxMDAwMEEsIDB4MDAwODIwLCAweDAzMTA2MCwgMHgwMzAwNDAsCi0JMHgwMDAwOEQsIDB4MDAwMTI0LCAweDAwMDEyQywgMHgwMDBFNjQsCi0JMHgwMDFBNjQsIDB4MDA2MzZDLCAweDA4MDEwQSwgMHgxMDAxMkEsCi0JMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAzMDA0MCwgMHgwMDIwRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMjI3RCwgMHgwMTgwNDIsCi0JMHgxMDAwMEEsIDB4MDAwODIwLCAweDAzMTA2MCwgMHgwMzAwNDAsCi0JMHgwMDE5N0QsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDIyRkQsCi0JMHgwMzgwNDIsIDB4MTAwMDBBLCAweDAwMDgyMCwgMHgwMzEwNjAsCi0JMHgwMzAwNDAsIDB4MDkwRDA0LCAweDAwMDAwNywgMHgwMDA4MjAsCi0JMHgwMzAwNDAsIDB4MDM4MDQyLCAweDBCODA0QSwgMHgxMDAwMEEsCi0JMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAzMDA0MCwgMHgwMzgwNDIsCi0JMHgxMzgwNEEsIDB4MTk4MDRBLCAweDExMEQwNCwgMHgxOThEMDQsCi0JMHgwMDAwMDcsIDB4MDgwMDBBLCAweDAwMTAyMCwgMHgwMzE4NjAsCi0JMHgwMzA4NjAsIDB4MDMwMDQwLCAweDAwMDA4RCwgMHgwQjA5NDQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxMDA0MCwgMHgwMDA1RjUsCi0JMHgwMzAwNDIsIDB4MDgwMDBBLCAweDAwMDgyMCwgMHgwMTAwNDAsCi0JMHgwMDAwRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgxRDk4ODYsIDB4MDAxRTc1LCAweDAzMDA0MiwgMHgwMTA0NEEsCi0JMHgwMDBDMEEsIDB4MURBQTA2LCAweDAwMDAwNywgMHgwMDA0MDIsCi0JMHgwMDBDMDIsIDB4MDAxNzdELCAweDAwMUFGNSwgMHgwMTgwNDIsCi0JMHgwMzE0NEEsIDB4MDMxQzRBLCAweDAzMjQ0QSwgMHgwMzJDNEEsCi0JMHgwMzM0NEEsIDB4MDMzQzRBLCAweDAzNDQ0QSwgMHgwMDRDMEEsCi0JMHgwMDA0M0QsIDB4MDAxM0Y1LCAweDAwMUFGRCwgMHgwMzAwNDIsCi0JMHgwQjAwNEEsIDB4MUI4MDRBLCAweDEzODA0QSwgMHgyMDAwMEEsCi0JMHgwODkxNDQsIDB4MTlBMTQ0LCAweDAzODlFNCwgMHgwMzk5RUMsCi0JMHgwMDU1MDIsIDB4MDA1RDBBLCAweDAzMDA0MiwgMHgwQjAwNEEsCi0JMHgxQjgwNEEsIDB4MTM4MDRBLCAweDIwMDAwQSwgMHgwODkxNDQsCi0JMHgxOUExNDQsIDB4MDM4OUU0LCAweDAzOTlFQywgMHgwMDY1MDIsCi0JMHgwMDZEMEEsIDB4MDMwMDQyLCAweDBCMDA0QSwgMHgxOTAwNEEsCi0JMHgyQjgwNEEsIDB4MTM4MDRBLCAweDIxODA0QSwgMHgzMDAwMEEsCi0JMHgwODkxNDQsIDB4MTlBMTQ0LCAweDJBQjE0NCwgMHgwMzg5RTQsCi0JMHgwMzk5RUMsIDB4MDA3NTAyLCAweDAwN0QwQSwgMHgwM0E5RTQsCi0JMHgwMDA3MDIsIDB4MDAxMDdELCAweDAwMDQxNSwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDEwOUU0LCAweDAwMEYwMiwgMHgwMDJBRjUsCi0JMHgwMDE5RkQsIDB4MDEwMDQyLCAweDA5ODA0QSwgMHgxMDAwMEEsCi0JMHgwMDA5MzQsIDB4MDAxNjc0LCAweDAwMjlGNSwgMHgwMTAwNDIsCi0JMHgxMDAwMEEsIDB4MDA5MTdDLCAweDAwMjA3NSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDIwMEE4NiwgMHgwMDI2RjUsCi0JMHgwMDI3RjUsIDB4MDMwMDQyLCAweDA5MDA0QSwgMHgxMDAwMEEsCi0JMHgwMDBBM0MsIDB4MDAxNjdDLCAweDAwMUE3NSwgMHgwMDBCRkQsCi0JMHgwMTAwNDIsIDB4NTE4MDRBLCAweDQ4MDAwQSwgMHgxNjAwMDcsCi0JMHgwMDEwNzUsIDB4MDEwMDQyLCAweDI4MkMwQSwgMHgyODFEMTIsCi0JMHgyODI1MTIsIDB4MDAxRjMyLCAweDFFMDAwNywgMHgwRTAwMDcsCi0JMHgwMDE5NzUsIDB4MDEwMDQyLCAweDAwMkRGNSwgMHgwRDAwNEEsCi0JMHgxMDAwMEEsIDB4MDA5MTQ0LCAweDIwRUE4NiwgMHgwMTAwNDIsCi0JMHgyODM0MEEsIDB4MDAwRTVELCAweDAwMDA4RCwgMHgwMDAzNzUsCi0JMHgwMDA4MjAsIDB4MDEwMDQwLCAweDA1RDJGNCwgMHg1NEQxMDQsCi0JMHgwMDczNUMsIDB4MjE4Qjg2LCAweDAwMDAwNywgMHgwQzAwMDcsCi0JMHgwODAwMDcsIDB4MEEwMDA3LCAweDAyMTc4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MzRCMjA2LCAweDAwMDAwNywgMHgyMTkyMDYsCi0JMHgwMDAwMDcsIDB4MDgwMDA3LCAweDAwMjI3NSwgMHgwMTAwNDIsCi0JMHgyMDAwMEEsIDB4MDAyMTA0LCAweDIyNTg4NiwgMHgwMDFFMkQsCi0JMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyMUNBODYsIDB4MDAwMDA3LCAweDAwMjAxMCwgMHgzMDA0M0EsCi0JMHgwMDA1N0QsIDB4MDE4MEMzLCAweDA4MDAwQSwgMHgwMjg5MjQsCi0JMHgyODA1MDIsIDB4MjgwQzAyLCAweDBBODEwRCwgMHgwMDA4MjAsCi0JMHgwMDAyRjUsIDB4MDEwMDQwLCAweDIyMDAwNywgMHgwMDA0RkQsCi0JMHgwMTgwNDIsIDB4NzAwMDBBLCAweDAzMDAwMCwgMHgwMDcwMjAsCi0JMHgwN0ZBMDYsIDB4MDE4MDQwLCAweDAyMkI4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkNBQTA2LCAweDAwMDAwNywgMHgwMDAyRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyMkMyODYsCi0JMHgwMDAwMDcsIDB4MDIwMjA2LCAweDAwMDAwNywgMHgwMDA4NzUsCi0JMHgwMDA5RkQsIDB4MDAwMTBELCAweDIzNDIwNiwgMHgwMDAyOTUsCi0JMHgwMDBCNzUsIDB4MDAwOTdELCAweDAwMDAwRCwgMHgwMDA1MTUsCi0JMHgwMTAwNDIsIDB4MTgwMDBBLCAweDAwMTkwNCwgMHgyQTAwODYsCi0JMHgwMDA2RjUsIDB4MDAxMDIwLCAweDAxMDA0MCwgMHgwMDA0RjUsCi0JMHgwMDA4MjAsIDB4MDEwMDQwLCAweDAwMDc3NSwgMHgwMTAwNDIsCi0JMHgwOTgwNEEsIDB4MTAwMDBBLCAweDAwMTEyNCwgMHgwMDA5MDQsCi0JMHgyM0YyODYsIDB4MDAwODE1LCAweDA4MDEwMiwgMHgxMDEyMDQsCi0JMHgyNDEyMDYsIDB4MDAwNTc1LCAweDA4MTIwNCwgMHgwMDAwMDcsCi0JMHgxMDAxMDIsIDB4MDAwNTc1LCAweDAwMDQyNSwgMHgwMjExMjQsCi0JMHgxMDAxMDIsIDB4MDAwODIwLCAweDAzMTA2MCwgMHgwMTAwNDAsCi0JMHgwMDE5MjQsIDB4MkEwMDg2LCAweDAwMDA4RCwgMHgwMDA0NjQsCi0JMHgwMDlEMDQsIDB4MjkxMDg2LCAweDE4MDEwMiwgMHgwMDA1NzUsCi0JMHgwMTAwNDIsIDB4MjgwNDBBLCAweDAwMDE4RCwgMHgwMDA5MjQsCi0JMHgyODBEMDIsIDB4MDAwMDBELCAweDAwMDkyNCwgMHgyODE1MDIsCi0JMHgxMDAwMEQsIDB4MDAwODIwLCAweDAwMDJGNSwgMHgwMTAwNDAsCi0JMHgyMDAwMDcsIDB4MDAxMTc1LCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDI0RkE4NiwgMHgwMDAwMDcsCi0JMHgwMDAxMDAsIDB4MDgwQjIwLCAweDEzMEI2MCwgMHgxQjBCNjAsCi0JMHgwMzBBNjAsIDB4MDEwMDQwLCAweDA1MDA0MiwgMHgzRDAwNEEsCi0JMHgzNTAwNEEsIDB4MkQwMDRBLCAweDIwMDAwQSwgMHgwMDA2RjUsCi0JMHgwMTAwNDIsIDB4MjgxNDBBLCAweDAwMDRGNSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAwMzE1LCAweDAxMEQwNCwgMHgyNjAyODYsCi0JMHgwMDQwMTUsIDB4MDAwMDk1LCAweDAxMEQwNCwgMHgyNUYwODYsCi0JMHgxMDAwMjIsIDB4MTAwMDJBLCAweDI2MUEwNiwgMHgwMDAwMDcsCi0JMHgzMzMxMDQsIDB4MkFBOTA0LCAweDAwMDAwNywgMHgwMzIxMjQsCi0JMHgyODA1MDIsIDB4Mjg0NDAyLCAweDAwMTEyNCwgMHg0MDAxMDIsCi0JMHgwMDA0MjQsIDB4MDAwNDI0LCAweDAwMzIyNCwgMHgwMDI5MkMsCi0JMHgwMDYzNkMsIDB4Mjc3Mzg2LCAweDAwMDAwNywgMHgwMkIxNjQsCi0JMHgwMDA0NjQsIDB4MDAwNDY0LCAweDAwMDA4RCwgMHgwMDBBNjQsCi0JMHgyODBEMDIsIDB4MTAwMDhELCAweDAwMDgyMCwgMHgwMDAyRjUsCi0JMHgwMTAwNDAsIDB4MjIwMDA3LCAweDAwMDA4RCwgMHgzOEI5MDQsCi0JMHgwMDAwMDcsIDB4MDMyOTZDLCAweDMwMDEwQSwgMHgwMDAyRjUsCi0JMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyNzAyODYsCi0JMHgwMDAwMDcsIDB4MDAyMTJDLCAweDI4MDUwQSwgMHgwMDMxNkMsCi0JMHgwMDA0NkMsIDB4MDAwNDZDLCAweDI4NDUwQSwgMHgwMDExMjQsCi0JMHgwMDZCNjQsIDB4MTAwMTAyLCAweDAwMDA4RCwgMHgwMTA5NkMsCi0JMHgyODBEMEEsIDB4MTAwMTBELCAweDAwMDgyMCwgMHgwMDAyRjUsCi0JMHgwMTAwNDAsIDB4MjIwMDA3LCAweDAwNDEyNCwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MDAzMjI0LCAweDMwMDEwMiwgMHgwMzI5NDQsCi0JMHgyN0ZBODYsIDB4MDAwMDA3LCAweDMwMDAwMiwgMHgwMDA0RjUsCi0JMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDMxNSwgMHgwMTBEMDQsCi0JMHgyODQwODYsIDB4MDAzMTI0LCAweDAwMDQ2NCwgMHgzMDAxMDIsCi0JMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyODRBODYsIDB4MDAwMDA3LCAweDI4NDQwMiwgMHgwMDMxMjQsCi0JMHgzMDA1MDIsIDB4MDAzOTI0LCAweDMwMDU4MywgMHgwMDA4ODMsCi0JMHgwMDA1RjUsIDB4MDEwMDQyLCAweDI4MDQwQSwgMHgwMDAwOEQsCi0JMHgwMDgxMjQsIDB4MjgwRDAyLCAweDAwMDA4RCwgMHgwMDgxMjQsCi0JMHgyODE1MDIsIDB4MTAwMThELCAweDAwMDgyMCwgMHgwMDAyRjUsCi0JMHgwMTAwNDAsIDB4MjIwMDA3LCAweDAwMTAyNSwgMHgwMDA1NzUsCi0JMHgwMzAwNDIsIDB4MDkwMDRBLCAweDEwMDAwQSwgMHgwQTA5MDQsCi0JMHgxMjExMDQsIDB4MDAwMDA3LCAweDAwMTAyMCwgMHgwNTA4NjAsCi0JMHgwNTAwNDAsIDB4MDAwNkZELCAweDAxODA0MiwgMHgwOTAwNEEsCi0JMHgxMDAwMEEsIDB4MDAwMEE1LCAweDBBMDkwNCwgMHgxMjExMDQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxOTA2MCwgMHgwMTAwNDAsCi0JMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyOUNBODYsIDB4MDAwMDA3LCAweDI0NDIwNiwgMHgwMDAwMDcsCi0JMHgwMDA2MDYsIDB4MDAwMDA3LCAweDAwMDJGNSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDJBMUE4NiwgMHgwMDAwMDcsCi0JMHgwMDAxMDAsIDB4MDgwQjIwLCAweDEzOEI2MCwgMHgxQjhCNjAsCi0JMHgyMzhCNjAsIDB4MkI4QjYwLCAweDMzOEI2MCwgMHgzQjhCNjAsCi0JMHg0MzhCNjAsIDB4NEI4QjYwLCAweDUzOEI2MCwgMHg1QjhCNjAsCi0JMHg2MzhCNjAsIDB4NkI4QjYwLCAweDczOEI2MCwgMHg3QjhCNjAsCi0JMHgwMzhGNjAsIDB4MEI4RjYwLCAweDEzOEY2MCwgMHgxQjhGNjAsCi0JMHgyMzhGNjAsIDB4MkI4RjYwLCAweDMzOEY2MCwgMHgzQjhGNjAsCi0JMHg0MzhGNjAsIDB4NEI4RjYwLCAweDUzOEY2MCwgMHg1QjhGNjAsCi0JMHg2MzhGNjAsIDB4NkI4RjYwLCAweDczOEY2MCwgMHg3QjhGNjAsCi0JMHgwMzhBNjAsIDB4MDAwNjA2LCAweDAxODA0MCwgMHgwMDAwOEQsCi0JMHgwMDBBNjQsIDB4MjgwRDAyLCAweDAwMEEyNCwgMHgwMDAyN0QsCi0JMHgwMTgwNDIsIDB4MTAwMDBBLCAweDAwMTIyNCwgMHgwMDAzRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyQzBBODYsCi0JMHgwMDAwMDcsIDB4MDAwMThELCAweDAwMEEyNCwgMHgwMDA0NjQsCi0JMHgwMDA0NjQsIDB4MDgwMTAyLCAweDAwMDkyNCwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MTAwMTAyLCAweDAyMDAwRCwgMHgwMDkxNDQsCi0JMHgyQzYxODYsIDB4MDAwMDA3LCAweDAwMDFGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwQTQ0LCAweDJDNDM4NiwgMHgwMTgwNDIsCi0JMHgwQTAwMEQsIDB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsCi0JMHgyMDAwMDcsIDB4MDAwMjdELCAweDAwMTAyMCwgMHgwMDA2MDYsCi0JMHgwMTgwNDAsIDB4MDAwMkY1LCAweDAxMDA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MkNCMjg2LCAweDAwMDAwNywgMHgwMDAzN0QsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyQ0UyODYsCi0JMHgwMDAwMDcsIDB4MDAwMDc1LCAweDAwMkU3RCwgMHgwMTAwNDIsCi0JMHgwQjgwNEEsIDB4MDAwMDIwLCAweDAwMDkwNCwgMHgwMDA2ODYsCi0JMHgwMTAwNDAsIDB4MzE4NDRBLCAweDMwMDQ4QiwgMHgwMDA4ODMsCi0JMHgwMDAwOEQsIDB4MDAwODEwLCAweDI4MTQzQSwgMHgwMDAwOEQsCi0JMHgwMDA4MTAsIDB4MjgwQzNBLCAweDAwMDY3NSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAzODE1LCAweDAxMDkyNCwgMHgyODA1MDIsCi0JMHgwQjAwMEQsIDB4MDAwODIwLCAweDAwMDJGNSwgMHgwMTAwNDAsCi0JMHgwMDA2MDYsIDB4MjIwMDA3LCAweDAwMDQ2NCwgMHgwMDA0NjQsCi0JMHgwMDA2MDYsIDB4MDAwMDA3LCAweDAwMDEzNCwgMHgwMDdGOEQsCi0JMHgwMDA5M0MsIDB4MjgxRDEyLCAweDI4MjUxMiwgMHgwMDFGMzIsCi0JMHgwRTAwMDcsIDB4MDAwMTBELCAweDAwMDM3RCwgMHgwMDA4MjAsCi0JMHgwMTgwNDAsIDB4MDVEMkY0LCAweDAwMDAwNywgMHgwODAwMDcsCi0JMHgwMDAzN0QsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyRThBODYsIDB4MDAwMDA3LCAweDAwMDYwNiwgMHgwMDAwMDcsCi0JMHgwMDAwMDcsIDB4MDAwMDEyLCAweDEwMDAwNywgMHgzMjAwMDcsCi0JMHg2MDAwMDcsIDB4NDYwMDA3LCAweDEwMDA4MCwgMHg0ODAwMUEsCi0JMHgwMDQ5MDQsIDB4MkVGMTg2LCAweDAwMDAwNywgMHgwMDEyMTAsCi0JMHg1ODAwM0EsIDB4MDAwMTQ1LCAweDVDNUQwNCwgMHgwMDAwMDcsCi0JMHgwMDAwODAsIDB4NDgwMDFBLCAweDAwNDkwNCwgMHgyRjQxODYsCi0JMHgwMDAwMDcsIDB4MDAxMjEwLCAweDUwMDAzQSwgMHgwMDU5MDQsCi0JMHgyRjk4ODYsIDB4MDAwMDQ1LCAweDAwMDBDNSwgMHg3RkZGRjUsCi0JMHg3RkZGN0QsIDB4MDdENTI0LCAweDAwNDIyNCwgMHg1MDAxMDIsCi0JMHgyMDA1MDIsIDB4MDAwMDgyLCAweDQwMDAxQSwgMHgwMDQxMDQsCi0JMHgyRkM5ODYsIDB4MDAwMDA3LCAweDAwMzg2NSwgMHg0MDAwMUEsCi0JMHgwMDQwMjAsIDB4MDAxMDRELCAweDA0QzE4NCwgMHgzMUFCODYsCi0JMHgwMDAwNDAsIDB4MDQwMDA3LCAweDAwMDE2NSwgMHgwMDAxNDUsCi0JMHgwMDQwMjAsIDB4MDAwMDQwLCAweDAwMDc2NSwgMHgwODAwODAsCi0JMHg0MDAwMUEsIDB4MDA0MTA0LCAweDMwNTk4NiwgMHgwMDAwMDcsCi0JMHgwMDEyMTAsIDB4NDAwMDNBLCAweDAwNDEwNCwgMHgzMEIyODYsCi0JMHgwMDAwNEQsIDB4MDAwMENELCAweDAwNDgxMCwgMHgyMDA0M0EsCi0JMHgwMDA4ODIsIDB4NDAwMDFBLCAweDAwNDEwNCwgMHgzMEMxODYsCi0JMHgwMDAwMDcsIDB4MDA0ODIwLCAweDAwNTkwNCwgMHgzMTk4ODYsCi0JMHgwMDAwNDAsIDB4MDAwN0U1LCAweDIwMDQ4MCwgMHgyODE2QTAsCi0JMHgzMjE2RTAsIDB4M0ExNkUwLCAweDQyMTZFMCwgMHgwMjEyNjAsCi0JMHgwMDAwNDAsIDB4MDAwMDMyLCAweDQwMDA3NSwgMHgwMDAwN0QsCi0JMHgwN0Q1NzQsIDB4MjAwNTEyLCAweDAwMDA4MiwgMHg0MDAwMUEsCi0JMHgwMDQxMDQsIDB4MzE3MTg2LCAweDAwMDAwNywgMHgwMzhBMDYsCi0JMHg2NDAwMDcsIDB4MDAwMEU1LCAweDAwMDAyMCwgMHgwMDAwNDAsCi0JMHgwMDBBNjUsIDB4MDAwMDIwLCAweDAyMDA0MCwgMHgwMjAwNDAsCi0JMHgwMDAwNDAsIDB4MDAwMTY1LCAweDAwMDA0MiwgMHg3MDAwMEEsCi0JMHgwMDcxMDQsIDB4MzIzMjg2LCAweDAwMDAwNywgMHgwNjAwMDcsCi0JMHgwMTlBMDYsIDB4NjQwMDA3LCAweDA1MDAwMCwgMHgwMDcwMjAsCi0JMHgwMDAwNDAsIDB4MDM4QTA2LCAweDY0MDAwNywgMHgwMDAwMDcsCi0JMHgwMDMwNkQsIDB4MDI4ODYwLCAweDAyOTA2MCwgMHgwODAwMEEsCi0JMHgwMjg4NjAsIDB4MDA4MDQwLCAweDEwMDAxMiwgMHgwMDEwMEQsCi0JMHgwMDkxODQsIDB4MzJEMTg2LCAweDAwMEUwRCwgMHgwMDkxODQsCi0JMHgzM0UxODYsIDB4MDAwMDA3LCAweDMwMDAwNywgMHgwMDEwMjAsCi0JMHgwMDNCNkQsIDB4MDA4MDQwLCAweDAwMDA4MCwgMHgwODAwMUEsCi0JMHgwMDA5MDQsIDB4MzJGMTg2LCAweDAwMDAwNywgMHgwMDEyMjAsCi0JMHgwMDBERUQsIDB4MDA4MDQwLCAweDAwODA0MiwgMHgxMDAwMEEsCi0JMHg0MDAwMEQsIDB4MTA5NTQ0LCAweDAwMDAwNywgMHgwMDEwMjAsCi0JMHgwMDBERUQsIDB4MDA4MDQwLCAweDAwODA0MiwgMHgyMDA0MEEsCi0JMHgwMDAwODIsIDB4MDgwMDFBLCAweDAwMDkwNCwgMHgzMzgxODYsCi0JMHgwMDAwMDcsIDB4MDAzQjZELCAweDAwODA0MiwgMHgwODAwMEEsCi0JMHgwMDBFMTUsIDB4MDEwOTg0LCAweDM0MkI4NiwgMHg2MDAwMDcsCi0JMHgwODAwMUEsIDB4MDAwQzE1LCAweDAxMDk4NCwgMHgzNDEzODYsCi0JMHgwMDAwMjAsIDB4MUEwMDA3LCAweDAwMDJFRCwgMHgwMDgwNDAsCi0JMHg2MjAwMDcsIDB4MDAzMDZELCAweDAyODA0MiwgMHgwQTgwNEEsCi0JMHgwMDA4MjAsIDB4MEE4MDRBLCAweDAwMDYwNiwgMHgxMDgwNEEsCi0JMHgwMDAwMDcsIDB4MjgyNTEyLCAweDAwMUYzMiwgMHgwNUQyRjQsCi0JMHg1NEQxMDQsIDB4MDA3MzVDLCAweDAwMDc4NiwgMHgwMDAwMDcsCi0JMHgwQzAwMDcsIDB4MEEwMDA3LCAweDFDMDAwNywgMHgwMDM0NjUsCi0JMHgwMjAwNDAsIDB4MDA0ODIwLCAweDAyNTA2MCwgMHg0MDAwMEEsCi0JMHgwMjQwNjAsIDB4MDAwMDQwLCAweDQ1NDk0NCwgMHgwMDAwMDcsCi0JMHgwMDQwMjAsIDB4MDAzQUU1LCAweDAwMDA0MCwgMHgwMDI4RTUsCi0JMHgwMDAwNDIsIDB4NDgwMDBBLCAweDAwNDkwNCwgMHgzOUY4ODYsCi0JMHgwMDJDNjUsIDB4MDAwMDQyLCAweDQwMDAwQSwgMHgwMDAwRDUsCi0JMHg0NTQxMDQsIDB4MDAwMDA3LCAweDAwMDY1NSwgMHgwNTQ1MDQsCi0JMHgzNjgyODYsIDB4MDAwMUQ1LCAweDA1NDUwNCwgMHgzNjgwODYsCi0JMHgwMDJCNjUsIDB4MDAwMDQyLCAweDAwM0FFNSwgMHg1MDAwNEEsCi0JMHg0MDAwMEEsIDB4NDVDM0Q0LCAweDAwMDAwNywgMHg0NTQ1MDQsCi0JMHgwMDAwMDcsIDB4MDAwMENELCAweDQ0NDk0NCwgMHgwMDAwMDcsCi0JMHg0NTQ1MDQsIDB4MDAwMDA3LCAweDAwMDE0RCwgMHg1NTQ5NDQsCi0JMHgwMDAwMDcsIDB4MDQ1MTQ0LCAweDM2Nzk4NiwgMHgwMDJDNjUsCi0JMHgwMDAwNDIsIDB4NDgwMDBBLCAweDRDRDEwNCwgMHgwMDAwMDcsCi0JMHgwNEMxNDQsIDB4MzY4Mzg2LCAweDAwMDAwNywgMHgxNjAwMDcsCi0JMHgwMDJDRTUsIDB4MDQwMDQyLCAweDQwMDAwQSwgMHgwMDQwMjAsCi0JMHgwMDAwNDAsIDB4MDAyOTY1LCAweDAwMDA0MiwgMHg0MDAwMEEsCi0JMHgwMDQxMDQsIDB4MzZGMDg2LCAweDAwMDAwNywgMHgwMDI0MDIsCi0JMHgzODMyMDYsIDB4MDA1QzAyLCAweDAwMjVFNSwgMHgwMDAwNDIsCi0JMHg0MDAwMEEsIDB4MDA0Mjc0LCAweDAwMkFFNSwgMHgwMDAwNDIsCi0JMHg0MDAwMEEsIDB4MDA0Mjc0LCAweDUwMDExMiwgMHgwMDI5RTUsCi0JMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDIzNCwgMHg0NTQxMDQsCi0JMHgwMDAwMDcsIDB4MDA0MDIwLCAweDAwMDA0MCwgMHgwMDNFRTUsCi0JMHgwMDAwMjAsIDB4MDAwMDQwLCAweDAwMkRFNSwgMHg0MDAxNTIsCi0JMHg1MDAwMEEsIDB4MDQ1MTQ0LCAweDM3REE4NiwgMHgwMDAwQzUsCi0JMHgwMDNFRTUsIDB4MDA0MDIwLCAweDAwMDA0MCwgMHgwMDJCRTUsCi0JMHgwMDAwNDIsIDB4NDAwMDBBLCAweDQwNDI1NCwgMHgwMDAwMDcsCi0JMHgwMDJBRTUsIDB4MDA0MDIwLCAweDAwMDA0MCwgMHg1MDAxMzIsCi0JMHgwNDAxMzQsIDB4MDA1Njc0LCAweDAwMjlFNSwgMHgwMjAwNDIsCi0JMHg0MjAwMEEsIDB4MDAwMDQyLCAweDUwMDAwQSwgMHgwNTQxN0MsCi0JMHgwMDI4RTUsIDB4MDAwMDQyLCAweDQ4MDAwQSwgMHgwMDAwQzUsCi0JMHg0Q0MxNDQsIDB4MzhBMDg2LCAweDAwMjZFNSwgMHgwMDI3RTUsCi0JMHgwMjAwNDIsIDB4NDAwMDRBLCAweDUwMDAwQSwgMHgwMDQyM0MsCi0JMHgwMDU2N0MsIDB4MDAyOEU1LCAweDAwNDgyMCwgMHgwMDAwNDAsCi0JMHgyODFEMTIsIDB4MjgyNTEyLCAweDAwMUY3MiwgMHgwMDI5NjUsCi0JMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDEwNCwgMHgzOTNBODYsCi0JMHgwRTAwMDcsIDB4MTYwMDA3LCAweDFFMDAwNywgMHgwMDNFRTUsCi0JMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDEwNCwgMHgzOTc4ODYsCi0JMHgwMDJENjUsIDB4MDAwMDQyLCAweDI4MzQwQSwgMHgwMDM0NjUsCi0JMHgwMjAwNDIsIDB4NDIwMDRBLCAweDAwNDAyMCwgMHg0QTAwNEEsCi0JMHg1MDAwNEEsIDB4MDVEMkY0LCAweDU0RDEwNCwgMHgwMDczNUMsCi0JMHgzOUUxODYsIDB4MDAwMDA3LCAweDAwMDYwNiwgMHgwODAwMDcsCi0JMHgwQzAwMDcsIDB4MDgwMDA3LCAweDBBMDAwNywgMHgwMDAxRTUsCi0JMHgwMjAwNDUsIDB4MDA0MDIwLCAweDAwMDA2MCwgMHgwMDAzNjUsCi0JMHgwMDAwNDAsIDB4MDAyRTY1LCAweDAwMUEyMCwgMHgwQTFBNjAsCi0JMHgwMDAwNDAsIDB4MDAzNDY1LCAweDAyMDA0MiwgMHg0MjAwNEEsCi0JMHgwMDQwMjAsIDB4NEEwMDRBLCAweDAwMDYwNiwgMHg1MDAwNEEsCi0JMHgwMDE3RkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyMjVBODYsIDB4MDAwMDA3LCAweDAwMTA3RCwgMHgwMTgwNDIsCi0JMHgwMDExRkQsIDB4MzM4MDRBLCAweDE5ODA0QSwgMHgyMDAwMEEsCi0JMHgwMDAwOTUsIDB4MkExMTQ0LCAweDAxQTE0NCwgMHgzQjkwODYsCi0JMHgwMDA0MEQsIDB4MDBCMTg0LCAweDNCOTE4NiwgMHgwMDE4RkQsCi0JMHgwMTgwNDIsIDB4MDAxMEZELCAweDA5ODA0QSwgMHgzODAwMEEsCi0JMHgwMDAwOTUsIDB4MDEwOTI0LCAweDAwM0E2NCwgMHgzQjgxODYsCi0JMHgwMDAwMDcsIDB4MDAzOTA0LCAweDNCOTI4NiwgMHgwMDAwMDcsCi0JMHgzQjlBMDYsIDB4MDAwMDBELCAweDAwMDA4RCwgMHgwMDA4MjAsCi0JMHgwMDM4N0QsIDB4MDE4MDQwLCAweDcwMDAwMiwgMHgwMDExN0QsCi0JMHgwMTgwNDIsIDB4MDAxOTdELCAweDI5ODA0QSwgMHgzMDAwMEEsCi0JMHgzODAwMDIsIDB4MDAzMTI0LCAweDAwMDQyNCwgMHgwMDA0MjQsCi0JMHgwMDJBMjQsIDB4MjgwNTAyLCAweDAwMDY4RCwgMHgwMDA4MTAsCi0JMHgyODE0M0EsIDB4MDA3NTBELCAweDAwQjEyNCwgMHgwMDIyNjQsCi0JMHgzRDAzODYsIDB4Mjg0NDAyLCAweDAwMDgxMCwgMHgyODBDM0EsCi0JMHgwQjgwMEQsIDB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsCi0JMHgyMDAwMDcsIDB4MDA3NThELCAweDAwQjEyNCwgMHgxMDAxMDIsCi0JMHgwMTIxNDQsIDB4M0U0OTg2LCAweDAwMTgxMCwgMHgxMDAwM0EsCi0JMHgwMDM4N0QsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgzRTQ4ODYsIDB4MDMwMDAwLCAweDNFNEEwNiwgMHgwMDAwQkQsCi0JMHgwMDAwOEQsIDB4MDIzMTY0LCAweDAwMEE2NCwgMHgyODBEMDIsCi0JMHgwQjgwOEQsIDB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsCi0JMHgyMDAwMDcsIDB4MDAzODdELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4M0UzMjg2LCAweDAzMDAwMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgzRDgyODYsCi0JMHgwMDAwMDcsIDB4MDAyODEwLCAweDI4MDQzQSwgMHgwMDc1MEQsCi0JMHgwMzA5MjQsIDB4MDAyMjY0LCAweDI4MEQwMiwgMHgwMjMxNkMsCi0JMHgyODQ1MEEsIDB4MEI4MTBELCAweDAwMDgyMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDAsIDB4MjAwMDA3LCAweDAwMDA4RCwgMHgwMDBBMjQsCi0JMHgzRTRBMDYsIDB4MTAwMTAyLCAweDAwMTgxMCwgMHgxMDAwM0EsCi0JMHgwMDAwQkQsIDB4MDAzODEwLCAweDMwMDQzQSwgMHgwMDE4N0QsCi0JMHgwMTgwNDIsIDB4MDAxOEZELCAweDA5ODA0QSwgMHgyMDAwMEEsCi0JMHgwMDAwQUQsIDB4MDI4OTI0LCAweDA3MjEyQywgMHgwMDEwMTAsCi0JMHgzMDA1ODMsIDB4MzAwRDhCLCAweDMwMTRCQiwgMHgzMDFDODMsCi0JMHgwMDIwODMsIDB4MDAxMzdELCAweDAzODA0MiwgMHgzMzg0NEEsCi0JMHgzM0FDQ0IsIDB4MzNCNENCLCAweDMzQkNDQiwgMHgzM0M0Q0IsCi0JMHgzM0NDQ0IsIDB4MzNENENCLCAweDMwNUM4QiwgMHgwMDYwODMsCi0JMHgwMDFFMEQsIDB4MDAwNUZELCAweDAxODA0MiwgMHgyMDAwMEEsCi0JMHgwMjA5MjQsIDB4MDAwNjhELCAweDAwQTk2QywgMHgwMDAwOUQsCi0JMHgwMDAyRkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgzRjZBODYsIDB4MDAwMDA3LCAweDI4MDUwMiwgMHgyODBEMEEsCi0JMHgyODQ0MDIsIDB4MDAxODEwLCAweDI4MTQzQSwgMHgwQzAwOEQsCi0JMHgwMDA4MjAsIDB4MDAwMkZELCAweDAxODA0MCwgMHgyMjAwMDcsCi0JMHgwMDM5MDQsIDB4MjI1ODg2LCAweDAwMUUwRCwgMHgwMDA1N0QsCi0JMHgwMTgwNDIsIDB4MjAwMDBBLCAweDAyMDkyNCwgMHgwMDAwQTUsCi0JMHgwMDAyRkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHg0MDJBODYsIDB4MDAwMDA3LCAweDI4MDUwMiwgMHgyODBDMDIsCi0JMHgwMDIwMTAsIDB4MjgxNDNBLCAweDBDMDEwRCwgMHgwMDA4MjAsCi0JMHgwMDAyRkQsIDB4MDE4MDQwLCAweDIyNUEwNiwgMHgyMjAwMDcsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAKLX07Ci0KLSNlbmRpZgkvL19IV01DT0RFXwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfbWFpbi5jIGIvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfbWFpbi5jCmluZGV4IDI5YjMwNTYuLjkyZDQ5YWEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS95bWZwY2kveW1mcGNpX21haW4uYworKysgYi9zb3VuZC9wY2kveW1mcGNpL3ltZnBjaV9tYWluLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KIAogI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KICNpbmNsdWRlIDxzb3VuZC9jb250cm9sLmg+CkBAIC0xOTkzLDU1ICsxOTk0LDYgQEAKIAl9CiB9CiAKLSNpZmRlZiBDT05GSUdfU05EX1lNRlBDSV9GSVJNV0FSRV9JTl9LRVJORUwKLQotI2luY2x1ZGUgInltZnBjaV9pbWFnZS5oIgotCi1zdGF0aWMgc3RydWN0IGZpcm13YXJlIHNuZF95bWZwY2lfZHNwX21pY3JvY29kZSA9IHsKLQkuc2l6ZSA9IFlEU1hHX0RTUExFTkdUSCwKLQkuZGF0YSA9ICh1OCAqKURzcEluc3QsCi19Owotc3RhdGljIHN0cnVjdCBmaXJtd2FyZSBzbmRfeW1mcGNpX2NvbnRyb2xsZXJfbWljcm9jb2RlID0gewotCS5zaXplID0gWURTWEdfQ1RSTExFTkdUSCwKLQkuZGF0YSA9ICh1OCAqKUNudHJsSW5zdCwKLX07Ci1zdGF0aWMgc3RydWN0IGZpcm13YXJlIHNuZF95bWZwY2lfY29udHJvbGxlcl8xZV9taWNyb2NvZGUgPSB7Ci0JLnNpemUgPSBZRFNYR19DVFJMTEVOR1RILAotCS5kYXRhID0gKHU4ICopQ250cmxJbnN0MUUsCi19OwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfU05EX1lNRlBDSV9GSVJNV0FSRV9JTl9LRVJORUwKLXN0YXRpYyBpbnQgc25kX3ltZnBjaV9yZXF1ZXN0X2Zpcm13YXJlKHN0cnVjdCBzbmRfeW1mcGNpICpjaGlwKQotewotCWNoaXAtPmRzcF9taWNyb2NvZGUgPSAmc25kX3ltZnBjaV9kc3BfbWljcm9jb2RlOwotCWlmIChjaGlwLT5kZXZpY2VfaWQgPT0gUENJX0RFVklDRV9JRF9ZQU1BSEFfNzI0RiB8fAotCSAgICBjaGlwLT5kZXZpY2VfaWQgPT0gUENJX0RFVklDRV9JRF9ZQU1BSEFfNzQwQyB8fAotCSAgICBjaGlwLT5kZXZpY2VfaWQgPT0gUENJX0RFVklDRV9JRF9ZQU1BSEFfNzQ0IHx8Ci0JICAgIGNoaXAtPmRldmljZV9pZCA9PSBQQ0lfREVWSUNFX0lEX1lBTUFIQV83NTQpCi0JCWNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlID0KLQkJCSZzbmRfeW1mcGNpX2NvbnRyb2xsZXJfMWVfbWljcm9jb2RlOwotCWVsc2UKLQkJY2hpcC0+Y29udHJvbGxlcl9taWNyb2NvZGUgPQotCQkJJnNuZF95bWZwY2lfY29udHJvbGxlcl9taWNyb2NvZGU7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlIC8qIHVzZSBmd19sb2FkZXIgKi8KLQotI2lmZGVmIF9fTElUVExFX0VORElBTgotc3RhdGljIGlubGluZSB2b2lkIHNuZF95bWZwY2lfY29udmVydF9mcm9tX2xlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpIHsgfQotI2Vsc2UKLXN0YXRpYyB2b2lkIHNuZF95bWZwY2lfY29udmVydF9mcm9tX2xlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCi17Ci0JaW50IGk7Ci0JdTMyICpkYXRhID0gKHUzMiAqKWZ3LT5kYXRhOwotCi0JZm9yIChpID0gMDsgaSA8IGZ3LT5zaXplIC8gNDsgKytpKQotCQlsZTMyX3RvX2NwdXMoJmRhdGFbaV0pOwotfQotI2VuZGlmCi0KIHN0YXRpYyBpbnQgc25kX3ltZnBjaV9yZXF1ZXN0X2Zpcm13YXJlKHN0cnVjdCBzbmRfeW1mcGNpICpjaGlwKQogewogCWludCBlcnIsIGlzXzFlOwpAQCAtMjA1MCw5ICsyMDAyLDcgQEAKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZjaGlwLT5kc3BfbWljcm9jb2RlLCAieWFtYWhhL2RzMV9kc3AuZnciLAogCQkJICAgICAgICZjaGlwLT5wY2ktPmRldik7CiAJaWYgKGVyciA+PSAwKSB7Ci0JCWlmIChjaGlwLT5kc3BfbWljcm9jb2RlLT5zaXplID09IFlEU1hHX0RTUExFTkdUSCkKLQkJCXNuZF95bWZwY2lfY29udmVydF9mcm9tX2xlKGNoaXAtPmRzcF9taWNyb2NvZGUpOwotCQllbHNlIHsKKwkJaWYgKGNoaXAtPmRzcF9taWNyb2NvZGUtPnNpemUgIT0gWURTWEdfRFNQTEVOR1RIKSB7CiAJCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJEU1AgbWljcm9jb2RlIGhhcyB3cm9uZyBzaXplXG4iKTsKIAkJCWVyciA9IC1FSU5WQUw7CiAJCX0KQEAgLTIwNjcsOSArMjAxNyw3IEBACiAJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmY2hpcC0+Y29udHJvbGxlcl9taWNyb2NvZGUsIG5hbWUsCiAJCQkgICAgICAgJmNoaXAtPnBjaS0+ZGV2KTsKIAlpZiAoZXJyID49IDApIHsKLQkJaWYgKGNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlLT5zaXplID09IFlEU1hHX0NUUkxMRU5HVEgpCi0JCQlzbmRfeW1mcGNpX2NvbnZlcnRfZnJvbV9sZShjaGlwLT5jb250cm9sbGVyX21pY3JvY29kZSk7Ci0JCWVsc2UgeworCQlpZiAoY2hpcC0+Y29udHJvbGxlcl9taWNyb2NvZGUtPnNpemUgIT0gWURTWEdfQ1RSTExFTkdUSCkgewogCQkJc25kX3ByaW50ayhLRVJOX0VSUiAiY29udHJvbGxlciBtaWNyb2NvZGUiCiAJCQkJICAgIiBoYXMgd3Jvbmcgc2l6ZVxuIik7CiAJCQllcnIgPSAtRUlOVkFMOwpAQCAtMjA4NCwxMyArMjAzMiwxMSBAQAogTU9EVUxFX0ZJUk1XQVJFKCJ5YW1haGEvZHMxX2N0cmwuZnciKTsKIE1PRFVMRV9GSVJNV0FSRSgieWFtYWhhL2RzMWVfY3RybC5mdyIpOwogCi0jZW5kaWYKLQogc3RhdGljIHZvaWQgc25kX3ltZnBjaV9kb3dubG9hZF9pbWFnZShzdHJ1Y3Qgc25kX3ltZnBjaSAqY2hpcCkKIHsKIAlpbnQgaTsKIAl1MTYgY3RybDsKLQl1MzIgKmluc3Q7CisJY29uc3QgX19sZTMyICppbnN0OwogCiAJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgWURTWEdSX05BVElWRURBQ09VVFZPTCwgMHgwMDAwMDAwMCk7CiAJc25kX3ltZnBjaV9kaXNhYmxlX2RzcChjaGlwKTsKQEAgLTIxMDUsMTQgKzIwNTEsMTYgQEAKIAlzbmRfeW1mcGNpX3dyaXRldyhjaGlwLCBZRFNYR1JfR0xPQkFMQ1RSTCwgY3RybCAmIH4weDAwMDcpOwogCiAJLyogc2V0dXAgRFNQIGluc3RydWN0aW9uIGNvZGUgKi8KLQlpbnN0ID0gKHUzMiAqKWNoaXAtPmRzcF9taWNyb2NvZGUtPmRhdGE7CisJaW5zdCA9IChjb25zdCBfX2xlMzIgKiljaGlwLT5kc3BfbWljcm9jb2RlLT5kYXRhOwogCWZvciAoaSA9IDA7IGkgPCBZRFNYR19EU1BMRU5HVEggLyA0OyBpKyspCi0JCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9EU1BJTlNUUkFNICsgKGkgPDwgMiksIGluc3RbaV0pOworCQlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfRFNQSU5TVFJBTSArIChpIDw8IDIpLAorCQkJCSAgbGUzMl90b19jcHUoaW5zdFtpXSkpOwogCiAJLyogc2V0dXAgY29udHJvbCBpbnN0cnVjdGlvbiBjb2RlICovCi0JaW5zdCA9ICh1MzIgKiljaGlwLT5jb250cm9sbGVyX21pY3JvY29kZS0+ZGF0YTsKKwlpbnN0ID0gKGNvbnN0IF9fbGUzMiAqKWNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlLT5kYXRhOwogCWZvciAoaSA9IDA7IGkgPCBZRFNYR19DVFJMTEVOR1RIIC8gNDsgaSsrKQotCQlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfQ1RSTElOU1RSQU0gKyAoaSA8PCAyKSwgaW5zdFtpXSk7CisJCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9DVFJMSU5TVFJBTSArIChpIDw8IDIpLAorCQkJCSAgbGUzMl90b19jcHUoaW5zdFtpXSkpOwogCiAJc25kX3ltZnBjaV9lbmFibGVfZHNwKGNoaXApOwogfQpAQCAtMjIwNSw2ICsyMTUzLDcgQEAKIAlmb3IgKHJlZyA9IDB4ODA7IHJlZyA8IDB4YzA7IHJlZyArPSA0KQogCQlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCByZWcsIDApOwogCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9OQVRJVkVEQUNPVVRWT0wsIDB4M2ZmZjNmZmYpOworCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9CVUY0NDFPVVRWT0wsIDB4M2ZmZjNmZmYpOwogCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9aVk9VVFZPTCwgMHgzZmZmM2ZmZik7CiAJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgWURTWEdSX1NQRElGT1VUVk9MLCAweDNmZmYzZmZmKTsKIAlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfTkFUSVZFQURDSU5WT0wsIDB4M2ZmZjNmZmYpOwpAQCAtMjI2NCwxMCArMjIxMyw4IEBACiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKGNoaXAtPnBjaSwgMHg0MCwgY2hpcC0+b2xkX2xlZ2FjeV9jdHJsKTsKIAkKIAlwY2lfZGlzYWJsZV9kZXZpY2UoY2hpcC0+cGNpKTsKLSNpZm5kZWYgQ09ORklHX1NORF9ZTUZQQ0lfRklSTVdBUkVfSU5fS0VSTkVMCiAJcmVsZWFzZV9maXJtd2FyZShjaGlwLT5kc3BfbWljcm9jb2RlKTsKIAlyZWxlYXNlX2Zpcm13YXJlKGNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlKTsKLSNlbmRpZgogCWtmcmVlKGNoaXApOwogCXJldHVybiAwOwogfQpAQCAtMjMyNCw2ICsyMjcxLDcgQEAKIAkJY2hpcC0+c2F2ZWRfcmVnc1tpXSA9IHNuZF95bWZwY2lfcmVhZGwoY2hpcCwgc2F2ZWRfcmVnc19pbmRleFtpXSk7CiAJY2hpcC0+c2F2ZWRfeWRzeGdyX21vZGUgPSBzbmRfeW1mcGNpX3JlYWRsKGNoaXAsIFlEU1hHUl9NT0RFKTsKIAlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfTkFUSVZFREFDT1VUVk9MLCAwKTsKKwlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfQlVGNDQxT1VUVk9MLCAwKTsKIAlzbmRfeW1mcGNpX2Rpc2FibGVfZHNwKGNoaXApOwogCXBjaV9kaXNhYmxlX2RldmljZShwY2kpOwogCXBjaV9zYXZlX3N0YXRlKHBjaSk7CmRpZmYgLS1naXQgYS9zb3VuZC9wY21jaWEvS2NvbmZpZyBiL3NvdW5kL3BjbWNpYS9LY29uZmlnCmluZGV4IGM5ZmExYTIuLjdmYmIxOTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjbWNpYS9LY29uZmlnCisrKyBiL3NvdW5kL3BjbWNpYS9LY29uZmlnCkBAIC0xLDExICsxLDE2IEBACiAjIEFMU0EgUENNQ0lBIGRyaXZlcnMKIAotbWVudSAiUENNQ0lBIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgUENNQ0lBCittZW51Y29uZmlnIFNORF9QQ01DSUEKKwlib29sICJQQ01DSUEgc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIFBDTUNJQQorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgY29ubmVjdGVkIHZpYSB0aGUgUENNQ0lBIGJ1cy4KKworaWYgU05EX1BDTUNJQSAmJiBQQ01DSUEKIAogY29uZmlnIFNORF9WWFBPQ0tFVAogCXRyaXN0YXRlICJEaWdpZ3JhbSBWWHBvY2tldCIKLQlkZXBlbmRzIG9uIFNORCAmJiBQQ01DSUEKIAlzZWxlY3QgU05EX1ZYX0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBEaWdpZ3JhbSBWWHBvY2tldCBhbmQKQEAgLTE2LDcgKzIxLDYgQEAKIAogY29uZmlnIFNORF9QREFVRElPQ0YKIAl0cmlzdGF0ZSAiU291bmQgQ29yZSBQREF1ZGlvQ0YiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUENNQ0lBCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgU291bmQgQ29yZSBQREF1ZGlvQ0YKQEAgLTI1LDQgKzI5LDUgQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1wZGF1ZGlvY2YuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX1BDTUNJQQorCmRpZmYgLS1naXQgYS9zb3VuZC9wY21jaWEvdngvdnhwX29wcy5jIGIvc291bmQvcGNtY2lhL3Z4L3Z4cF9vcHMuYwppbmRleCAxNTdiMGI1Li45OWJmMmE2IDEwMDY0NAotLS0gYS9zb3VuZC9wY21jaWEvdngvdnhwX29wcy5jCisrKyBiL3NvdW5kL3BjbWNpYS92eC92eHBfb3BzLmMKQEAgLTE1MSw3ICsxNTEsNyBAQAogCXVuc2lnbmVkIGludCBpOwogCWludCBjOwogCWludCByZWdDU1VFUiwgcmVnUlVFUjsKLQl1bnNpZ25lZCBjaGFyICppbWFnZTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICppbWFnZTsKIAl1bnNpZ25lZCBjaGFyIGRhdGE7CiAKIAkvKiBTd2l0Y2ggdG8gcHJvZ3JhbW1hdGlvbiBtb2RlICovCmRpZmYgLS1naXQgYS9zb3VuZC9wcGMvS2NvbmZpZyBiL3NvdW5kL3BwYy9LY29uZmlnCmluZGV4IGNhY2IwYjEuLjc3N2RlMmIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BwYy9LY29uZmlnCisrKyBiL3NvdW5kL3BwYy9LY29uZmlnCkBAIC0xLDE3ICsxLDE3IEBACiAjIEFMU0EgUG93ZXJNYWMgZHJpdmVycwogCi1tZW51ICJBTFNBIFBvd2VyTWFjIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgUFBDCittZW51Y29uZmlnIFNORF9QUEMKKwlib29sICJQb3dlclBDIHNvdW5kIGRldmljZXMiCisJZGVwZW5kcyBvbiBQUEM2NCB8fCBQUEMzMgorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgc3BlY2lmaWMgdG8gUG93ZXJQQyBhcmNoaXRlY3R1cmVzLgogCi1jb21tZW50ICJBTFNBIFBvd2VyTWFjIHJlcXVpcmVzIEkyQyIKLQlkZXBlbmRzIG9uIFNORCAmJiBJMkM9bgotCi1jb21tZW50ICJBTFNBIFBvd2VyTWFjIHJlcXVpcmVzIElOUFVUIgotCWRlcGVuZHMgb24gU05EICYmIElOUFVUPW4KK2lmIFNORF9QUEMKIAogY29uZmlnIFNORF9QT1dFUk1BQwogCXRyaXN0YXRlICJQb3dlck1hYyAoQVdBQ1MsIERBQ0EsIEJ1cmd1bmR5LCBUdW1ibGVyLCBLZXl3ZXN0KSIKLQlkZXBlbmRzIG9uIFNORCAmJiBJMkMgJiYgSU5QVVQgJiYgUFBDX1BNQUMKKwlkZXBlbmRzIG9uIEkyQyAmJiBJTlBVVCAmJiBQUENfUE1BQwogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIHNvdW5kIGRldmljZS4KQEAgLTMyLDE0ICszMiw5IEBACiAJICBOb3RlIHRoYXQgeW91IGNhbiB0dXJuIG9uL29mZiBEUkMgbWFudWFsbHkgZXZlbiB3aXRob3V0IHRoaXMKIAkgIG9wdGlvbi4KIAotZW5kbWVudQotCi1tZW51ICJBTFNBIFBvd2VyUEMgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiAoIFBQQzY0IHx8IFBQQzMyICkKLQogY29uZmlnIFNORF9QUzMKIAl0cmlzdGF0ZSAiUFMzIEF1ZGlvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUFMzX1BTM0FWCisJZGVwZW5kcyBvbiBQUzNfUFMzQVYKIAlzZWxlY3QgU05EX1BDTQogCWRlZmF1bHQgbQogCWhlbHAKQEAgLTUyLDQgKzQ3LDUgQEAKIAlpbnQgIlN0YXJ0dXAgZGVsYXkgdGltZSBpbiBtcyIKIAlkZXBlbmRzIG9uIFNORF9QUzMKIAlkZWZhdWx0ICIyMDAwIgotZW5kbWVudQorCitlbmRpZgkjIFNORF9QUEMKZGlmZiAtLWdpdCBhL3NvdW5kL3BwYy9kYWNhLmMgYi9zb3VuZC9wcGMvZGFjYS5jCmluZGV4IGNhOTQ1MjkuLjhhNWIyOTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BwYy9kYWNhLmMKKysrIGIvc291bmQvcHBjL2RhY2EuYwpAQCAtMjQ5LDkgKzI0OSw3IEBACiAJaW50IGksIGVycjsKIAlzdHJ1Y3QgcG1hY19kYWNhICptaXg7CiAKLSNpZmRlZiBDT05GSUdfS01PRAogCXJlcXVlc3RfbW9kdWxlKCJpMmMtcG93ZXJtYWMiKTsKLSNlbmRpZiAvKiBDT05GSUdfS01PRCAqLwogCiAJbWl4ID0ga3phbGxvYyhzaXplb2YoKm1peCksIEdGUF9LRVJORUwpOwogCWlmICghIG1peCkKZGlmZiAtLWdpdCBhL3NvdW5kL3BwYy90dW1ibGVyLmMgYi9zb3VuZC9wcGMvdHVtYmxlci5jCmluZGV4IDNmOGQ3MTYuLjAwOWRmOGQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BwYy90dW1ibGVyLmMKKysrIGIvc291bmQvcHBjL3R1bWJsZXIuYwpAQCAtMTM1MCw5ICsxMzUwLDcgQEAKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnRhc19ub2RlLCAqbnA7CiAJY2hhciAqY2hpcG5hbWU7CiAKLSNpZmRlZiBDT05GSUdfS01PRAogCXJlcXVlc3RfbW9kdWxlKCJpMmMtcG93ZXJtYWMiKTsKLSNlbmRpZiAvKiBDT05GSUdfS01PRCAqLwogCiAJbWl4ID0ga3phbGxvYyhzaXplb2YoKm1peCksIEdGUF9LRVJORUwpOwogCWlmICghIG1peCkKZGlmZiAtLWdpdCBhL3NvdW5kL3NoL0tjb25maWcgYi9zb3VuZC9zaC9LY29uZmlnCmluZGV4IGI3ZTA4ZWYuLmNmYzE0MzkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NoL0tjb25maWcKKysrIGIvc291bmQvc2gvS2NvbmZpZwpAQCAtMSwxNCArMSwyMiBAQAogIyBBTFNBIFNIIGRyaXZlcnMKIAotbWVudSAiU1VQRVJIIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgU1VQRVJICittZW51Y29uZmlnIFNORF9TVVBFUkgKKwlib29sICJTVVBFUkggc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIFNVUEVSSAorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgc3BlY2lmaWMgdG8gU1VQRVJIIGFyY2hpdGVjdHVyZXMuCisJICBEcml2ZXJzIHRoYXQgYXJlIGltcGxlbWVudGVkIG9uIEFTb0MgY2FuIGJlIGZvdW5kIGluCisJICAiQUxTQSBmb3IgU29DIGF1ZGlvIHN1cHBvcnQiIHNlY3Rpb24uCisKK2lmIFNORF9TVVBFUkgKIAogY29uZmlnIFNORF9BSUNBCiAJdHJpc3RhdGUgIkRyZWFtY2FzdCBZYW1haGEgQUlDQSBzb3VuZCIKLQlkZXBlbmRzIG9uIFNIX0RSRUFNQ0FTVCAmJiBTTkQKKwlkZXBlbmRzIG9uIFNIX0RSRUFNQ0FTVAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgQUxTQSBTb3VuZCBkcml2ZXIgZm9yIHRoZSBTRUdBIERyZWFtY2FzdCBjb25zb2xlLgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9TVVBFUkgKIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL0tjb25maWcgYi9zb3VuZC9zb2MvS2NvbmZpZwppbmRleCAxOGYyOGFjLi5mNzQzNTMwIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvS2NvbmZpZwpAQCAtMiwxNSArMiw4IEBACiAjIFNvQyBhdWRpbyBjb25maWd1cmF0aW9uCiAjCiAKLW1lbnUgIlN5c3RlbSBvbiBDaGlwIGF1ZGlvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQhPW4KLQotY29uZmlnIFNORF9TT0NfQUM5N19CVVMKLQlib29sCi0KLWNvbmZpZyBTTkRfU09DCittZW51Y29uZmlnIFNORF9TT0MKIAl0cmlzdGF0ZSAiQUxTQSBmb3IgU29DIGF1ZGlvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCS0tLWhlbHAtLS0KIApAQCAtMjMsOCArMTYsMTUgQEAKIAkgIFRoaXMgQVNvQyBhdWRpbyBzdXBwb3J0IGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1zb2MtY29yZS4KIAoraWYgU05EX1NPQworCitjb25maWcgU05EX1NPQ19BQzk3X0JVUworCWJvb2wKKwogIyBBbGwgdGhlIHN1cHBvcnRlZCBTb2Mncworc291cmNlICJzb3VuZC9zb2MvYXQzMi9LY29uZmlnIgogc291cmNlICJzb3VuZC9zb2MvYXQ5MS9LY29uZmlnIgorc291cmNlICJzb3VuZC9zb2MvYXUxeC9LY29uZmlnIgogc291cmNlICJzb3VuZC9zb2MvcHhhL0tjb25maWciCiBzb3VyY2UgInNvdW5kL3NvYy9zM2MyNHh4L0tjb25maWciCiBzb3VyY2UgInNvdW5kL3NvYy9zaC9LY29uZmlnIgpAQCAtMzUsNCArMzUsNSBAQAogIyBTdXBwb3J0ZWQgY29kZWNzCiBzb3VyY2UgInNvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZyIKIAotZW5kbWVudQorZW5kaWYJIyBTTkRfU09DCisKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9NYWtlZmlsZSBiL3NvdW5kL3NvYy9NYWtlZmlsZQppbmRleCA3ODJkYjIxLi45MzNhNjZkIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvTWFrZWZpbGUKKysrIGIvc291bmQvc29jL01ha2VmaWxlCkBAIC0xLDQgKzEsNSBAQAogc25kLXNvYy1jb3JlLW9ianMgOj0gc29jLWNvcmUubyBzb2MtZGFwbS5vCiAKIG9iai0kKENPTkZJR19TTkRfU09DKQkrPSBzbmQtc29jLWNvcmUubwotb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IGNvZGVjcy8gYXQ5MS8gcHhhLyBzM2MyNHh4LyBzaC8gZnNsLyBkYXZpbmNpLyBvbWFwLworb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IGNvZGVjcy8gYXQzMi8gYXQ5MS8gcHhhLyBzM2MyNHh4LyBzaC8gZnNsLyBkYXZpbmNpLworb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IG9tYXAvIGF1MXgvCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQzMi9LY29uZmlnIGIvc291bmQvc29jL2F0MzIvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDc2NWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F0MzIvS2NvbmZpZwpAQCAtMCwwICsxLDM0IEBACitjb25maWcgU05EX0FUMzJfU09DCisgICAgICAgIHRyaXN0YXRlICJTb0MgQXVkaW8gZm9yIHRoZSBBdG1lbCBBVDMyIFN5c3RlbS1vbi1hLUNoaXAiCisgICAgICAgIGRlcGVuZHMgb24gQVZSMzIgJiYgU05EX1NPQworICAgICAgICBoZWxwCisgICAgICAgICAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgY29kZWNzIGF0dGFjaGVkIHRvIAorICAgICAgICAgIHRoZSBBVDMyIFNTQyBpbnRlcmZhY2UuICBZb3Ugd2lsbCBhbHNvIG5lZWQgdG8KKyAgICAgICAgICB0byBzZWxlY3QgdGhlIGF1ZGlvIGludGVyZmFjZXMgdG8gc3VwcG9ydCBiZWxvdy4KKworCitjb25maWcgU05EX0FUMzJfU09DX1NTQworICAgICAgICB0cmlzdGF0ZQorCisKKworY29uZmlnIFNORF9BVDMyX1NPQ19QTEFZUEFRCisgICAgICAgIHRyaXN0YXRlICJTb0MgQXVkaW8gc3VwcG9ydCBmb3IgUGxheVBhcSB3aXRoIFdNODUxMCIKKyAgICAgICAgZGVwZW5kcyBvbiBTTkRfQVQzMl9TT0MgJiYgQk9BUkRfUExBWVBBUQorICAgICAgICBzZWxlY3QgU05EX0FUMzJfU09DX1NTQworICAgICAgICBzZWxlY3QgU05EX1NPQ19XTTg1MTAKKyAgICAgICAgaGVscAorICAgICAgICAgIFNheSBZIG9yIE0gaGVyZSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgU29DIGF1ZGlvCisgICAgICAgICAgb24gdGhlIExSUyBQbGF5UGFxLgorCisKKworY29uZmlnIFNORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFCisgICAgICAgIGJvb2wgIlJ1biBDT0RFQyBvbiBQbGF5UGFxIGluIHNsYXZlIG1vZGUiCisgICAgICAgIGRlcGVuZHMgb24gU05EX0FUMzJfU09DX1BMQVlQQVEKKyAgICAgICAgZGVmYXVsdCBuCisgICAgICAgIGhlbHAKKyAgICAgICAgICBTYXkgWSBpZiB5b3Ugd2FudCB0byBydW4gd2l0aCB0aGUgQVQzMiBTU0MgZ2VuZXJhdGluZyB0aGUgQkNMSworICAgICAgICAgIGFuZCBGUkFNRSBzaWduYWxzIG9uIHRoZSBQbGF5UGFxLiAgVW5sZXNzIHlvdSB3YW50IHRvIHBsYXkKKyAgICAgICAgICB3aXRoIHRoZSBBVDMyIGFzIHRoZSBTU0MgbWFzdGVyLCB5b3UgcHJvYmFibHkgd2FudCB0byBzYXkgTiBoZXJlLAorICAgICAgICAgIGFzIHRoaXMgd2lsbCBnaXZlIHlvdSBiZXR0ZXIgc291bmQgcXVhbGl0eS4KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDMyL01ha2VmaWxlIGIvc291bmQvc29jL2F0MzIvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAzZTU1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdDMyL01ha2VmaWxlCkBAIC0wLDAgKzEsMTEgQEAKKyMgQVQzMiBQbGF0Zm9ybSBTdXBwb3J0CitzbmQtc29jLWF0MzItb2JqcyA6PSBhdDMyLXBjbS5vCitzbmQtc29jLWF0MzItc3NjLW9ianMgOj0gYXQzMi1zc2MubworCitvYmotJChDT05GSUdfU05EX0FUMzJfU09DKSArPSBzbmQtc29jLWF0MzIubworb2JqLSQoQ09ORklHX1NORF9BVDMyX1NPQ19TU0MpICs9IHNuZC1zb2MtYXQzMi1zc2MubworCisjIEFUMzIgTWFjaGluZSBTdXBwb3J0CitzbmQtc29jLXBsYXlwYXEtb2JqcyA6PSBwbGF5cGFxX3dtODUxMC5vCisKK29iai0kKENPTkZJR19TTkRfQVQzMl9TT0NfUExBWVBBUSkgKz0gc25kLXNvYy1wbGF5cGFxLm8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDMyL2F0MzItcGNtLmMgYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXBjbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzNWYxZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXBjbS5jCkBAIC0wLDAgKzEsNDkxIEBACisvKiBzb3VuZC9zb2MvYXQzMi9hdDMyLXBjbS5jCisgKiBBU29DIFBDTSBpbnRlcmZhY2UgZm9yIEF0bWVsIEFUMzIgU29DCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IExvbmcgUmFuZ2UgU3lzdGVtcworICogICAgR2VvZmZyZXkgV29zc3VtIDxnd29zc3VtQGFjbS5vcmc+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBOb3RlIHRoYXQgdGhpcyBpcyBiYXNpY2FsbHkgYSBwb3J0IG9mIHRoZSBzb3VuZC9zb2MvYXQ5MS1wY20uYyB0bworICogdGhlIEFWUjMyIGtlcm5lbC4gIFRoYW5rcyB0byBGcmFuayBNYW5kYXJpbm8gZm9yIHRoYXQgY29kZS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2F0bWVsX3BkYy5oPgorCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKworI2luY2x1ZGUgImF0MzItcGNtLmgiCisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIEhhcmR3YXJlIGRlZmluaXRpb24KK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogVE9ETzogVGhlc2UgdmFsdWVzIHdlcmUgdGFrZW4gZnJvbSB0aGUgQVQ5MSBwbGF0Zm9ybSBkcml2ZXIsIGNoZWNrCisgKgkgdGhlbSBhZ2FpbnN0IHJlYWwgdmFsdWVzIGZvciBBVDMyCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBhdDMyX3BjbV9oYXJkd2FyZSA9IHsKKwkuaW5mbyA9IChTTkRSVl9QQ01fSU5GT19NTUFQIHwKKwkJIFNORFJWX1BDTV9JTkZPX01NQVBfVkFMSUQgfAorCQkgU05EUlZfUENNX0lORk9fSU5URVJMRUFWRUQgfAorCQkgU05EUlZfUENNX0lORk9fQkxPQ0tfVFJBTlNGRVIgfAorCQkgU05EUlZfUENNX0lORk9fUEFVU0UpLAorCisJLmZvcm1hdHMgPSBTTkRSVl9QQ01fRk1UQklUX1MxNiwKKwkucGVyaW9kX2J5dGVzX21pbiA9IDMyLAorCS5wZXJpb2RfYnl0ZXNfbWF4ID0gODE5MiwJLyogNTEyIGZyYW1lcyAqIDE2IGJ5dGVzIC8gZnJhbWUgKi8KKwkucGVyaW9kc19taW4gPSAyLAorCS5wZXJpb2RzX21heCA9IDEwMjQsCisJLmJ1ZmZlcl9ieXRlc19tYXggPSAzMiAqIDEwMjQsCit9OworCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBEYXRhIHR5cGVzCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSB7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtczsKKwlkbWFfYWRkcl90IGRtYV9idWZmZXI7CS8qIHBoeXNpY2FsIGFkZHJlc3Mgb2YgRE1BIGJ1ZmZlciAqLworCWRtYV9hZGRyX3QgZG1hX2J1ZmZlcl9lbmQ7IC8qIGZpcnN0IGFkZHJlc3MgYmV5b25kIERNQSBidWZmZXIgKi8KKwlzaXplX3QgcGVyaW9kX3NpemU7CisKKwlkbWFfYWRkcl90IHBlcmlvZF9wdHI7CS8qIHBoeXNpY2FsIGFkZHJlc3Mgb2YgbmV4dCBwZXJpb2QgKi8KKwlpbnQgcGVyaW9kczsJCS8qIHBlcmlvZCBpbmRleCBvZiBwZXJpb2RfcHRyICovCisKKwkvKiBTYXZlIFBEQyByZWdpc3RlcnMgKGZvciBwb3dlciBtYW5hZ2VtZW50KSAqLworCXUzMiBwZGNfeHByX3NhdmU7CisJdTMyIHBkY194Y3Jfc2F2ZTsKKwl1MzIgcGRjX3hucHJfc2F2ZTsKKwl1MzIgcGRjX3huY3Jfc2F2ZTsKK307CisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIEhlbHBlciBmdW5jdGlvbnMKK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIGludCBhdDMyX3BjbV9wcmVhbGxvY2F0ZV9kbWFfYnVmZmVyKHN0cnVjdCBzbmRfcGNtICpwY20sIGludCBzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0gPSBwY20tPnN0cmVhbXNbc3RyZWFtXS5zdWJzdHJlYW07CisJc3RydWN0IHNuZF9kbWFfYnVmZmVyICpkbWFidWYgPSAmc3Vic3RyZWFtLT5kbWFfYnVmZmVyOworCXNpemVfdCBzaXplID0gYXQzMl9wY21faGFyZHdhcmUuYnVmZmVyX2J5dGVzX21heDsKKworCWRtYWJ1Zi0+ZGV2LnR5cGUgPSBTTkRSVl9ETUFfVFlQRV9ERVY7CisJZG1hYnVmLT5kZXYuZGV2ID0gcGNtLT5jYXJkLT5kZXY7CisJZG1hYnVmLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCWRtYWJ1Zi0+YXJlYSA9IGRtYV9hbGxvY19jb2hlcmVudChwY20tPmNhcmQtPmRldiwgc2l6ZSwKKwkJCQkJICAmZG1hYnVmLT5hZGRyLCBHRlBfS0VSTkVMKTsKKwlwcl9kZWJ1ZygiYXQzMl9wY206IHByZWFsbG9jYXRlX2RtYV9idWZmZXI6ICIKKwkJICJhcmVhPSVwLCBhZGRyPSVwLCBzaXplPSVsZFxuIiwKKwkJICh2b2lkICopZG1hYnVmLT5hcmVhLCAodm9pZCAqKWRtYWJ1Zi0+YWRkciwgc2l6ZSk7CisKKwlpZiAoIWRtYWJ1Zi0+YXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkbWFidWYtPmJ5dGVzID0gc2l6ZTsKKwlyZXR1cm4gMDsKK30KKworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICogSVNSCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB2b2lkIGF0MzJfcGNtX2RtYV9pcnEodTMyIHNzY19zciwgc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZCA9IHJ0ZC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpwYXJhbXMgPSBwcnRkLT5wYXJhbXM7CisJc3RhdGljIGludCBjb3VudDsKKworCWNvdW50Kys7CisJaWYgKHNzY19zciAmIHBhcmFtcy0+bWFzay0+c3NjX2VuZGJ1ZikgeworCQlwcl93YXJuaW5nKCJhdDMyLXBjbTogYnVmZmVyICVzIG9uICVzIChTU0NfU1I9JSN4LCBjb3VudD0lZClcbiIsCisJCQkgICBzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLID8KKwkJCSAgICJ1bmRlcnJ1biIgOiAib3ZlcnJ1biIsIHBhcmFtcy0+bmFtZSwgc3NjX3NyLCBjb3VudCk7CisKKwkJLyogcmUtc3RhcnQgdGhlIFBEQyAqLworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBBVE1FTF9QRENfUFRDUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+cGRjX2Rpc2FibGUpOworCQlwcnRkLT5wZXJpb2RfcHRyICs9IHBydGQtPnBlcmlvZF9zaXplOworCQlpZiAocHJ0ZC0+cGVyaW9kX3B0ciA+PSBwcnRkLT5kbWFfYnVmZmVyX2VuZCkKKwkJCXBydGQtPnBlcmlvZF9wdHIgPSBwcnRkLT5kbWFfYnVmZmVyOworCisKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhwciwKKwkJCSAgIHBydGQtPnBlcmlvZF9wdHIpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eGNyLAorCQkJICAgcHJ0ZC0+cGVyaW9kX3NpemUgLyBwYXJhbXMtPnBkY194ZmVyX3NpemUpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBBVE1FTF9QRENfUFRDUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+cGRjX2VuYWJsZSk7CisJfQorCisKKwlpZiAoc3NjX3NyICYgcGFyYW1zLT5tYXNrLT5zc2NfZW5keCkgeworCQkvKiBMb2FkIHRoZSBQREMgbmV4dCBwb2ludGVyIGFuZCBjb3VudGVyIHJlZ2lzdGVycyAqLworCQlwcnRkLT5wZXJpb2RfcHRyICs9IHBydGQtPnBlcmlvZF9zaXplOworCQlpZiAocHJ0ZC0+cGVyaW9kX3B0ciA+PSBwcnRkLT5kbWFfYnVmZmVyX2VuZCkKKwkJCXBydGQtPnBlcmlvZF9wdHIgPSBwcnRkLT5kbWFfYnVmZmVyOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5wciwKKwkJCSAgIHBydGQtPnBlcmlvZF9wdHIpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5jciwKKwkJCSAgIHBydGQtPnBlcmlvZF9zaXplIC8gcGFyYW1zLT5wZGNfeGZlcl9zaXplKTsKKwl9CisKKworCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoc3Vic3RyZWFtKTsKK30KKworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICogUENNIG9wZXJhdGlvbnMKK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIGludCBhdDMyX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZCA9IHJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisKKwkvKiB0aGlzIG1heSBnZXQgY2FsbGVkIHNldmVyYWwgdGltZXMgYnkgb3NzIGVtdWxhdGlvbgorCSAqIHdpdGggZGlmZmVyZW50IHBhcmFtcworCSAqLworCXNuZF9wY21fc2V0X3J1bnRpbWVfYnVmZmVyKHN1YnN0cmVhbSwgJnN1YnN0cmVhbS0+ZG1hX2J1ZmZlcik7CisJcnVudGltZS0+ZG1hX2J5dGVzID0gcGFyYW1zX2J1ZmZlcl9ieXRlcyhwYXJhbXMpOworCisJcHJ0ZC0+cGFyYW1zID0gcnRkLT5kYWktPmNwdV9kYWktPmRtYV9kYXRhOworCXBydGQtPnBhcmFtcy0+ZG1hX2ludHJfaGFuZGxlciA9IGF0MzJfcGNtX2RtYV9pcnE7CisKKwlwcnRkLT5kbWFfYnVmZmVyID0gcnVudGltZS0+ZG1hX2FkZHI7CisJcHJ0ZC0+ZG1hX2J1ZmZlcl9lbmQgPSBydW50aW1lLT5kbWFfYWRkciArIHJ1bnRpbWUtPmRtYV9ieXRlczsKKwlwcnRkLT5wZXJpb2Rfc2l6ZSA9IHBhcmFtc19wZXJpb2RfYnl0ZXMocGFyYW1zKTsKKworCXByX2RlYnVnKCJod19wYXJhbXM6IERNQSBmb3IgJXMgaW5pdGlhbGl6ZWQgIgorCQkgIihkbWFfYnl0ZXM9JWxkLCBwZXJpb2Rfc2l6ZT0lbGQpXG4iLAorCQkgcHJ0ZC0+cGFyYW1zLT5uYW1lLCBydW50aW1lLT5kbWFfYnl0ZXMsIHBydGQtPnBlcmlvZF9zaXplKTsKKworCXJldHVybiAwOworfQorCisKKworc3RhdGljIGludCBhdDMyX3BjbV9od19mcmVlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZCA9IHN1YnN0cmVhbS0+cnVudGltZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpwYXJhbXMgPSBwcnRkLT5wYXJhbXM7CisKKwlpZiAocGFyYW1zICE9IE5VTEwpIHsKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgU1NDX1BEQ19QVENSLAorCQkJICAgcGFyYW1zLT5tYXNrLT5wZGNfZGlzYWJsZSk7CisJCXBydGQtPnBhcmFtcy0+ZG1hX2ludHJfaGFuZGxlciA9IE5VTEw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgaW50IGF0MzJfcGNtX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IGF0MzJfcnVudGltZV9kYXRhICpwcnRkID0gc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtcyA9IHBydGQtPnBhcmFtczsKKworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIFNTQ19JRFIsCisJCSAgIHBhcmFtcy0+bWFzay0+c3NjX2VuZHggfCBwYXJhbXMtPm1hc2stPnNzY19lbmRidWYpOworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIEFUTUVMX1BEQ19QVENSLAorCQkgICBwYXJhbXMtPm1hc2stPnBkY19kaXNhYmxlKTsKKworCXJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQgYXQzMl9wY21fdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IGF0MzJfcnVudGltZV9kYXRhICpwcnRkID0gcnRkLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtcyA9IHBydGQtPnBhcmFtczsKKwlpbnQgcmV0ID0gMDsKKworCXByX2RlYnVnKCJhdDMyX3BjbV90cmlnZ2VyOiBidWZmZXJfc2l6ZSA9ICVsZCwgIgorCQkgImRtYV9hcmVhID0gJXAsIGRtYV9ieXRlcyA9ICVsZFxuIiwKKwkJIHJ0ZC0+YnVmZmVyX3NpemUsIHJ0ZC0+ZG1hX2FyZWEsIHJ0ZC0+ZG1hX2J5dGVzKTsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwkJcHJ0ZC0+cGVyaW9kX3B0ciA9IHBydGQtPmRtYV9idWZmZXI7CisKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhwciwKKwkJCSAgIHBydGQtPnBlcmlvZF9wdHIpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eGNyLAorCQkJICAgcHJ0ZC0+cGVyaW9kX3NpemUgLyBwYXJhbXMtPnBkY194ZmVyX3NpemUpOworCisJCXBydGQtPnBlcmlvZF9wdHIgKz0gcHJ0ZC0+cGVyaW9kX3NpemU7CisJCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bnByLAorCQkJICAgcHJ0ZC0+cGVyaW9kX3B0cik7CisJCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bmNyLAorCQkJICAgcHJ0ZC0+cGVyaW9kX3NpemUgLyBwYXJhbXMtPnBkY194ZmVyX3NpemUpOworCisJCXByX2RlYnVnKCJ0cmlnZ2VyOiBwZXJpb2RfcHRyPSVseCwgeHByPSV4LCAiCisJCQkgInhjcj0lZCwgeG5wcj0leCwgeG5jcj0lZFxuIiwKKwkJCSAodW5zaWduZWQgbG9uZylwcnRkLT5wZXJpb2RfcHRyLAorCQkJIHNzY19yZWFkeChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhwciksCisJCQkgc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eGNyKSwKKwkJCSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bnByKSwKKwkJCSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bmNyKSk7CisKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgU1NDX0lFUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+c3NjX2VuZHggfCBwYXJhbXMtPm1hc2stPnNzY19lbmRidWYpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBTU0NfUERDX1BUQ1IsCisJCQkgICBwYXJhbXMtPm1hc2stPnBkY19lbmFibGUpOworCisJCXByX2RlYnVnKCJzcj0leCwgaW1yPSV4XG4iLAorCQkJIHNzY19yZWFkeChwYXJhbXMtPnNzYy0+cmVncywgU1NDX1NSKSwKKwkJCSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIFNTQ19JRVIpKTsKKwkJYnJlYWs7CQkvKiBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVCAqLworCisKKworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NVU1BFTkQ6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9QVVNIOgorCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBBVE1FTF9QRENfUFRDUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+cGRjX2Rpc2FibGUpOworCQlicmVhazsKKworCisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9SRUxFQVNFOgorCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBBVE1FTF9QRENfUFRDUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+cGRjX2VuYWJsZSk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcmV0ID0gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCisKKworc3RhdGljIHNuZF9wY21fdWZyYW1lc190IGF0MzJfcGNtX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQgPSBydW50aW1lLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtcyA9IHBydGQtPnBhcmFtczsKKwlkbWFfYWRkcl90IHB0cjsKKwlzbmRfcGNtX3VmcmFtZXNfdCB4OworCisJcHRyID0gKGRtYV9hZGRyX3QpIHNzY19yZWFkeChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhwcik7CisJeCA9IGJ5dGVzX3RvX2ZyYW1lcyhydW50aW1lLCBwdHIgLSBwcnRkLT5kbWFfYnVmZmVyKTsKKworCWlmICh4ID09IHJ1bnRpbWUtPmJ1ZmZlcl9zaXplKQorCQl4ID0gMDsKKworCXJldHVybiB4OworfQorCisKKworc3RhdGljIGludCBhdDMyX3BjbV9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IGF0MzJfcnVudGltZV9kYXRhICpwcnRkOworCWludCByZXQgPSAwOworCisJc25kX3NvY19zZXRfcnVudGltZV9od3BhcmFtcyhzdWJzdHJlYW0sICZhdDMyX3BjbV9oYXJkd2FyZSk7CisKKwkvKiBlbnN1cmUgdGhhdCBidWZmZXIgc2l6ZSBpcyBhIG11bHRpcGxlIG9mIHBlcmlvZCBzaXplICovCisJcmV0ID0gc25kX3BjbV9od19jb25zdHJhaW50X2ludGVnZXIocnVudGltZSwKKwkJCQkJICAgIFNORFJWX1BDTV9IV19QQVJBTV9QRVJJT0RTKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXQ7CisKKwlwcnRkID0ga3phbGxvYyhzaXplb2YoKnBydGQpLCBHRlBfS0VSTkVMKTsKKwlpZiAocHJ0ZCA9PSBOVUxMKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKwlydW50aW1lLT5wcml2YXRlX2RhdGEgPSBwcnRkOworCisKK291dDoKKwlyZXR1cm4gcmV0OworfQorCisKKworc3RhdGljIGludCBhdDMyX3BjbV9jbG9zZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQgPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKworCWtmcmVlKHBydGQpOworCXJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQgYXQzMl9wY21fbW1hcChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCSBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlyZXR1cm4gcmVtYXBfcGZuX3JhbmdlKHZtYSwgdm1hLT52bV9zdGFydCwKKwkJCSAgICAgICBzdWJzdHJlYW0tPmRtYV9idWZmZXIuYWRkciA+PiBQQUdFX1NISUZULAorCQkJICAgICAgIHZtYS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydCwgdm1hLT52bV9wYWdlX3Byb3QpOworfQorCisKKworc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBhdDMyX3BjbV9vcHMgPSB7CisJLm9wZW4gPSBhdDMyX3BjbV9vcGVuLAorCS5jbG9zZSA9IGF0MzJfcGNtX2Nsb3NlLAorCS5pb2N0bCA9IHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMgPSBhdDMyX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSBhdDMyX3BjbV9od19mcmVlLAorCS5wcmVwYXJlID0gYXQzMl9wY21fcHJlcGFyZSwKKwkudHJpZ2dlciA9IGF0MzJfcGNtX3RyaWdnZXIsCisJLnBvaW50ZXIgPSBhdDMyX3BjbV9wb2ludGVyLAorCS5tbWFwID0gYXQzMl9wY21fbW1hcCwKK307CisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIEFTb0MgcGxhdGZvcm0gZHJpdmVyCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB1NjQgYXQzMl9wY21fZG1hbWFzayA9IDB4ZmZmZmZmZmY7CisKK3N0YXRpYyBpbnQgYXQzMl9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKKwkJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAorCQkJc3RydWN0IHNuZF9wY20gKnBjbSkKK3sKKwlpbnQgcmV0ID0gMDsKKworCWlmICghY2FyZC0+ZGV2LT5kbWFfbWFzaykKKwkJY2FyZC0+ZGV2LT5kbWFfbWFzayA9ICZhdDMyX3BjbV9kbWFtYXNrOworCWlmICghY2FyZC0+ZGV2LT5jb2hlcmVudF9kbWFfbWFzaykKKwkJY2FyZC0+ZGV2LT5jb2hlcmVudF9kbWFfbWFzayA9IDB4ZmZmZmZmZmY7CisKKwlpZiAoZGFpLT5wbGF5YmFjay5jaGFubmVsc19taW4pIHsKKwkJcmV0ID0gYXQzMl9wY21fcHJlYWxsb2NhdGVfZG1hX2J1ZmZlcigKKwkJCSAgcGNtLCBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OworCX0KKworCWlmIChkYWktPmNhcHR1cmUuY2hhbm5lbHNfbWluKSB7CisJCXByX2RlYnVnKCJhdDMyLXBjbTogQWxsb2NhdGluZyBQQ00gY2FwdHVyZSBETUEgYnVmZmVyXG4iKTsKKwkJcmV0ID0gYXQzMl9wY21fcHJlYWxsb2NhdGVfZG1hX2J1ZmZlcigKKwkJCSAgcGNtLCBTTkRSVl9QQ01fU1RSRUFNX0NBUFRVUkUpOworCQlpZiAocmV0KQorCQkJZ290byBvdXQ7CisJfQorCisKK291dDoKKwlyZXR1cm4gcmV0OworfQorCisKKworc3RhdGljIHZvaWQgYXQzMl9wY21fZnJlZV9kbWFfYnVmZmVycyhzdHJ1Y3Qgc25kX3BjbSAqcGNtKQoreworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCXN0cnVjdCBzbmRfZG1hX2J1ZmZlciAqYnVmOworCWludCBzdHJlYW07CisKKwlmb3IgKHN0cmVhbSA9IDA7IHN0cmVhbSA8IDI7IHN0cmVhbSsrKSB7CisJCXN1YnN0cmVhbSA9IHBjbS0+c3RyZWFtc1tzdHJlYW1dLnN1YnN0cmVhbTsKKwkJaWYgKHN1YnN0cmVhbSA9PSBOVUxMKQorCQkJY29udGludWU7CisKKwkJYnVmID0gJnN1YnN0cmVhbS0+ZG1hX2J1ZmZlcjsKKwkJaWYgKCFidWYtPmFyZWEpCisJCQljb250aW51ZTsKKwkJZG1hX2ZyZWVfY29oZXJlbnQocGNtLT5jYXJkLT5kZXYsIGJ1Zi0+Ynl0ZXMsCisJCQkJICBidWYtPmFyZWEsIGJ1Zi0+YWRkcik7CisJCWJ1Zi0+YXJlYSA9IE5VTEw7CisJfQorfQorCisKKworI2lmZGVmIENPTkZJR19QTQorc3RhdGljIGludCBhdDMyX3BjbV9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IGRhaS0+cnVudGltZTsKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQ7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtczsKKworCWlmIChydW50aW1lID09IE5VTEwpCisJCXJldHVybiAwOworCXBydGQgPSBydW50aW1lLT5wcml2YXRlX2RhdGE7CisJcGFyYW1zID0gcHJ0ZC0+cGFyYW1zOworCisJLyogRGlzYWJsZSB0aGUgUERDIGFuZCBzYXZlIHRoZSBQREMgcmVnaXN0ZXJzICovCisJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgUERDX1BUQ1IsIHBhcmFtcy0+bWFzay0+cGRjX2Rpc2FibGUpOworCisJcHJ0ZC0+cGRjX3hwcl9zYXZlID0gc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eHByKTsKKwlwcnRkLT5wZGNfeGNyX3NhdmUgPSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54Y3IpOworCXBydGQtPnBkY194bnByX3NhdmUgPSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bnByKTsKKwlwcnRkLT5wZGNfeG5jcl9zYXZlID0gc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5jcik7CisKKwlyZXR1cm4gMDsKK30KKworCisKK3N0YXRpYyBpbnQgYXQzMl9wY21fcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gZGFpLT5ydW50aW1lOworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZDsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqcGFyYW1zOworCisJaWYgKHJ1bnRpbWUgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisJcHJ0ZCA9IHJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKwlwYXJhbXMgPSBwcnRkLT5wYXJhbXM7CisKKwkvKiBSZXN0b3JlIHRoZSBQREMgcmVnaXN0ZXJzIGFuZCBlbmFibGUgdGhlIFBEQyAqLworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54cHIsIHBydGQtPnBkY194cHJfc2F2ZSk7CisJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhjciwgcHJ0ZC0+cGRjX3hjcl9zYXZlKTsKKwlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5wciwgcHJ0ZC0+cGRjX3hucHJfc2F2ZSk7CisJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhuY3IsIHBydGQtPnBkY194bmNyX3NhdmUpOworCisJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgUERDX1BUQ1IsIHBhcmFtcy0+bWFzay0+cGRjX2VuYWJsZSk7CisJcmV0dXJuIDA7Cit9CisjZWxzZSAvKiBDT05GSUdfUE0gKi8KKyMgIGRlZmluZSBhdDMyX3BjbV9zdXNwZW5kCU5VTEwKKyMgIGRlZmluZSBhdDMyX3BjbV9yZXN1bWUJTlVMTAorI2VuZGlmIC8qIENPTkZJR19QTSAqLworCisKKworc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gYXQzMl9zb2NfcGxhdGZvcm0gPSB7CisJLm5hbWUgPSAiYXQzMi1hdWRpbyIsCisJLnBjbV9vcHMgPSAmYXQzMl9wY21fb3BzLAorCS5wY21fbmV3ID0gYXQzMl9wY21fbmV3LAorCS5wY21fZnJlZSA9IGF0MzJfcGNtX2ZyZWVfZG1hX2J1ZmZlcnMsCisJLnN1c3BlbmQgPSBhdDMyX3BjbV9zdXNwZW5kLAorCS5yZXN1bWUgPSBhdDMyX3BjbV9yZXN1bWUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoYXQzMl9zb2NfcGxhdGZvcm0pOworCisKKworTU9EVUxFX0FVVEhPUigiR2VvZmZyZXkgV29zc3VtIDxnd29zc3VtQGFjbS5vcmc+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF0bWVsIEFUMzIgUENNIG1vZHVsZSIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F0MzIvYXQzMi1wY20uaCBiL3NvdW5kL3NvYy9hdDMyL2F0MzItcGNtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1MjQzMAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdDMyL2F0MzItcGNtLmgKQEAgLTAsMCArMSw3OSBAQAorLyogc291bmQvc29jL2F0MzIvYXQzMi1wY20uaAorICogQVNvQyBQQ00gaW50ZXJmYWNlIGZvciBBdG1lbCBBVDMyIFNvQworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMb25nIFJhbmdlIFN5c3RlbXMKKyAqICAgIEdlb2ZmcmV5IFdvc3N1bSA8Z3dvc3N1bUBhY20ub3JnPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2lmbmRlZiBfX1NPVU5EX1NPQ19BVDMyX0FUMzJfUENNX0gKKyNkZWZpbmUgX19TT1VORF9TT0NfQVQzMl9BVDMyX1BDTV9IIF9fRklMRV9fCisKKyNpbmNsdWRlIDxsaW51eC9hdG1lbC1zc2MuaD4KKworCisvKgorICogUmVnaXN0ZXJzIGFuZCBzdGF0dXMgYml0cyB0aGF0IGFyZSByZXF1aXJlZCBieSB0aGUgUENNIGRyaXZlcgorICogVE9ETzogSXMgcHRjciByZWFsbHkgdXNlZD8KKyAqLworc3RydWN0IGF0MzJfcGRjX3JlZ3MgeworCXUzMiB4cHI7CQkvKiBQREMgUlgvVFggcG9pbnRlciAqLworCXUzMiB4Y3I7CQkvKiBQREMgUlgvVFggY291bnRlciAqLworCXUzMiB4bnByOwkJLyogUERDIG5leHQgUlgvVFggcG9pbnRlciAqLworCXUzMiB4bmNyOwkJLyogUERDIG5leHQgUlgvVFggY291bnRlciAqLworCXUzMiBwdGNyOwkJLyogUERDIHRyYW5zZmVyIGNvbnRyb2wgKi8KK307CisKKworCisvKgorICogU1NDIG1hc2sgaW5mbworICovCitzdHJ1Y3QgYXQzMl9zc2NfbWFzayB7CisJdTMyIHNzY19lbmFibGU7CQkvKiBTU0MgUlgvVFggZW5hYmxlICovCisJdTMyIHNzY19kaXNhYmxlOwkvKiBTU0MgUlgvVFggZGlzYWJsZSAqLworCXUzMiBzc2NfZW5keDsJCS8qIFNTQyBFTkRUWCBvciBFTkRSWCAqLworCXUzMiBzc2NfZW5kYnVmOwkJLyogU1NDIFRYQlVGRiBvciBSWEJVRkYgKi8KKwl1MzIgcGRjX2VuYWJsZTsJCS8qIFBEQyBSWC9UWCBlbmFibGUgKi8KKwl1MzIgcGRjX2Rpc2FibGU7CS8qIFBEQyBSWC9UWCBkaXNhYmxlICovCit9OworCisKKworLyoKKyAqIFRoaXMgc3RydWN0dXJlLCBzaGFyZWQgYmV0d2VlbiB0aGUgUENNIGRyaXZlciBhbmQgdGhlIGludGVyZmFjZSwKKyAqIGNvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSB0aGUgUENNIGRyaXZlciB0byBwZXJmb3JtIHRoZQorICogUERDIERNQSBvcGVyYXRpb24uICBBbGwgZmllbGRzIGV4Y2VwdCBkbWFfaW50cl9oYW5kbGVyKCkgYXJlIGluaXRpYWxpemVkCisgKiBieSB0aGUgaW50ZXJmYWNlLiAgVGhlIGRtc19pbnRyX2hhbmRsZXIoKSBwb2ludGVyIGlzIHNldCBieSB0aGUgUENNCisgKiBkcml2ZXIgYW5kIGNhbGxlZCBieSB0aGUgaW50ZXJmYWNlIFNTQyBpbnRlcnJ1cHQgaGFuZGxlciBpZiBpdCBpcworICogbm9uLU5VTEwuCisgKi8KK3N0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zIHsKKwljaGFyICpuYW1lOwkJLyogc3RyZWFtIGlkZW50aWZpZXIgKi8KKwlpbnQgcGRjX3hmZXJfc2l6ZTsJLyogUERDIGNvdW50ZXIgaW5jcmVtZW50IGluIGJ5dGVzICovCisJc3RydWN0IHNzY19kZXZpY2UgKnNzYzsJLyogU1NDIGRldmljZSBmb3Igc3RyZWFtICovCisJc3RydWN0IGF0MzJfcGRjX3JlZ3MgKnBkYzsJLyogUERDIHJlZ2lzdGVyIGluZm8gKi8KKwlzdHJ1Y3QgYXQzMl9zc2NfbWFzayAqbWFzazsJLyogU1NDIG1hc2sgaW5mbyAqLworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCXZvaWQgKCpkbWFfaW50cl9oYW5kbGVyKSAodTMyLCBzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKik7Cit9OworCisKKworLyoKKyAqIFRoZSBBVDMyIEFTb0MgcGxhdGZvcm0gZHJpdmVyCisgKi8KK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSBhdDMyX3NvY19wbGF0Zm9ybTsKKworCisKKy8qCisgKiBTU0MgcmVnaXN0ZXIgYWNjZXNzIChzaW5jZSBzc2Nfd3JpdGVsKCkgLyBzc2NfcmVhZGwoKSByZXF1aXJlIGxpdGVyYWwgbmFtZSkKKyAqLworI2RlZmluZSBzc2NfcmVhZHgoYmFzZSwgcmVnKSAgICAgICAgICAgIChfX3Jhd19yZWFkbCgoYmFzZSkgKyAocmVnKSkpCisjZGVmaW5lIHNzY193cml0ZXgoYmFzZSwgcmVnLCB2YWx1ZSkgICAgX19yYXdfd3JpdGVsKCh2YWx1ZSksIChiYXNlKSArIChyZWcpKQorCisjZW5kaWYgLyogX19TT1VORF9TT0NfQVQzMl9BVDMyX1BDTV9IICovCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQzMi9hdDMyLXNzYy5jIGIvc291bmQvc29jL2F0MzIvYXQzMi1zc2MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWY2NDkyCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F0MzIvYXQzMi1zc2MuYwpAQCAtMCwwICsxLDg0OSBAQAorLyogc291bmQvc29jL2F0MzIvYXQzMi1zc2MuYworICogQVNvQyBwbGF0Zm9ybSBkcml2ZXIgZm9yIEFUMzIgdXNpbmcgU1NDIGFzIERBSQorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMb25nIFJhbmdlIFN5c3RlbXMKKyAqICAgIEdlb2ZmcmV5IFdvc3N1bSA8Z3dvc3N1bUBhY20ub3JnPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTm90ZSB0aGF0IHRoaXMgaXMgYmFzaWNhbGx5IGEgcG9ydCBvZiB0aGUgc291bmQvc29jL2F0OTEtc3NjLmMgdG8KKyAqIHRoZSBBVlIzMiBrZXJuZWwuICBUaGFua3MgdG8gRnJhbmsgTWFuZGFyaW5vIGZvciB0aGF0IGNvZGUuCisgKi8KKworLyogI2RlZmluZSBERUJVRyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9hdG1lbF9wZGMuaD4KKyNpbmNsdWRlIDxsaW51eC9hdG1lbC1zc2MuaD4KKworI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+CisjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorCisjaW5jbHVkZSAiYXQzMi1wY20uaCIKKyNpbmNsdWRlICJhdDMyLXNzYy5oIgorCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIENvbnN0YW50cworXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNkZWZpbmUgTlVNX1NTQ19ERVZJQ0VTCQkzCisKKy8qCisgKiBTU0MgZGlyZWN0aW9uIG1hc2tzCisgKi8KKyNkZWZpbmUgU1NDX0RJUl9NQVNLX1VOVVNFRAkwCisjZGVmaW5lIFNTQ19ESVJfTUFTS19QTEFZQkFDSwkxCisjZGVmaW5lIFNTQ19ESVJfTUFTS19DQVBUVVJFCTIKKworLyoKKyAqIFNTQyByZWdpc3RlciB2YWx1ZXMgdGhhdCBBdG1lbCBsZWZ0IG91dCBvZiA8bGludXgvYXRtZWwtc3NjLmg+LiAgVGhlc2UKKyAqIGFyZSBleHBlY3RlZCB0byBiZSB1c2VkIHdpdGggU1NDX0JGCisgKi8KKy8qIFNUQVJUIGJpdCBmaWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgU1NDX1NUQVJUX0NPTlRJTlVPVVMJMAorI2RlZmluZSBTU0NfU1RBUlRfVFhfUlgJCTEKKyNkZWZpbmUgU1NDX1NUQVJUX0xPV19SRgkyCisjZGVmaW5lIFNTQ19TVEFSVF9ISUdIX1JGCTMKKyNkZWZpbmUgU1NDX1NUQVJUX0ZBTExJTkdfUkYJNAorI2RlZmluZSBTU0NfU1RBUlRfUklTSU5HX1JGCTUKKyNkZWZpbmUgU1NDX1NUQVJUX0xFVkVMX1JGCTYKKyNkZWZpbmUgU1NDX1NUQVJUX0VER0VfUkYJNworI2RlZmluZSBTU1NfU1RBUlRfQ09NUEFSRV8wCTgKKworLyogQ0tJIGJpdCBmaWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgU1NDX0NLSV9GQUxMSU5HCQkwCisjZGVmaW5lIFNTQ19DS0lfUklTSU5HCQkxCisKKy8qIENLTyBiaXQgZmllbGQgdmFsdWVzICovCisjZGVmaW5lIFNTQ19DS09fTk9ORQkJMAorI2RlZmluZSBTU0NfQ0tPX0NPTlRJTlVPVVMJMQorI2RlZmluZSBTU0NfQ0tPX1RSQU5TRkVSCTIKKworLyogQ0tTIGJpdCBmaWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgU1NDX0NLU19ESVYJCTAKKyNkZWZpbmUgU1NDX0NLU19DTE9DSwkJMQorI2RlZmluZSBTU0NfQ0tTX1BJTgkJMgorCisvKiBGU0VER0UgYml0IGZpZWxkIHZhbHVlcyAqLworI2RlZmluZSBTU0NfRlNFREdFX1BPU0lUSVZFCTAKKyNkZWZpbmUgU1NDX0ZTRURHRV9ORUdBVElWRQkxCisKKy8qIEZTT1MgYml0IGZpZWxkIHZhbHVlcyAqLworI2RlZmluZSBTU0NfRlNPU19OT05FCQkwCisjZGVmaW5lIFNTQ19GU09TX05FR0FUSVZFCTEKKyNkZWZpbmUgU1NDX0ZTT1NfUE9TSVRJVkUJMgorI2RlZmluZSBTU0NfRlNPU19MT1cJCTMKKyNkZWZpbmUgU1NDX0ZTT1NfSElHSAkJNAorI2RlZmluZSBTU0NfRlNPU19UT0dHTEUJCTUKKworI2RlZmluZSBTVEFSVF9ERUxBWQkJMQorCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIE1vZHVsZSBkYXRhCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIFNTQyBQREMgcmVnaXN0ZXJlZCByZXF1aXJlZCBieSB0aGUgUENNIERNQSBlbmdpbmUKKyAqLworc3RhdGljIHN0cnVjdCBhdDMyX3BkY19yZWdzIHBkY190eF9yZWcgPSB7CisJLnhwciA9IFNTQ19QRENfVFBSLAorCS54Y3IgPSBTU0NfUERDX1RDUiwKKwkueG5wciA9IFNTQ19QRENfVE5QUiwKKwkueG5jciA9IFNTQ19QRENfVE5DUiwKK307CisKKworCitzdGF0aWMgc3RydWN0IGF0MzJfcGRjX3JlZ3MgcGRjX3J4X3JlZyA9IHsKKwkueHByID0gU1NDX1BEQ19SUFIsCisJLnhjciA9IFNTQ19QRENfUkNSLAorCS54bnByID0gU1NDX1BEQ19STlBSLAorCS54bmNyID0gU1NDX1BEQ19STkNSLAorfTsKKworCisKKy8qCisgKiBTU0MgYW5kIFBEQyBzdGF0dXMgYml0cyBmb3IgdHJhbnNtaXQgYW5kIHJlY2VpdmUKKyAqLworc3RhdGljIHN0cnVjdCBhdDMyX3NzY19tYXNrIHNzY190eF9tYXNrID0geworCS5zc2NfZW5hYmxlID0gU1NDX0JJVChDUl9UWEVOKSwKKwkuc3NjX2Rpc2FibGUgPSBTU0NfQklUKENSX1RYRElTKSwKKwkuc3NjX2VuZHggPSBTU0NfQklUKFNSX0VORFRYKSwKKwkuc3NjX2VuZGJ1ZiA9IFNTQ19CSVQoU1JfVFhCVUZFKSwKKwkucGRjX2VuYWJsZSA9IFNTQ19CSVQoUERDX1BUQ1JfVFhURU4pLAorCS5wZGNfZGlzYWJsZSA9IFNTQ19CSVQoUERDX1BUQ1JfVFhURElTKSwKK307CisKKworCitzdGF0aWMgc3RydWN0IGF0MzJfc3NjX21hc2sgc3NjX3J4X21hc2sgPSB7CisJLnNzY19lbmFibGUgPSBTU0NfQklUKENSX1JYRU4pLAorCS5zc2NfZGlzYWJsZSA9IFNTQ19CSVQoQ1JfUlhESVMpLAorCS5zc2NfZW5keCA9IFNTQ19CSVQoU1JfRU5EUlgpLAorCS5zc2NfZW5kYnVmID0gU1NDX0JJVChTUl9SWEJVRkYpLAorCS5wZGNfZW5hYmxlID0gU1NDX0JJVChQRENfUFRDUl9SWFRFTiksCisJLnBkY19kaXNhYmxlID0gU1NDX0JJVChQRENfUFRDUl9SWFRESVMpLAorfTsKKworCisKKy8qCisgKiBETUEgcGFyYW1ldGVycyBmb3IgZWFjaCBTU0MKKyAqLworc3RhdGljIHN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zIHNzY19kbWFfcGFyYW1zW05VTV9TU0NfREVWSUNFU11bMl0gPSB7CisJeworCSB7CisJICAubmFtZSA9ICJTU0MwIFBDTSBvdXQiLAorCSAgLnBkYyA9ICZwZGNfdHhfcmVnLAorCSAgLm1hc2sgPSAmc3NjX3R4X21hc2ssCisJICB9LAorCSB7CisJICAubmFtZSA9ICJTU0MwIFBDTSBpbiIsCisJICAucGRjID0gJnBkY19yeF9yZWcsCisJICAubWFzayA9ICZzc2NfcnhfbWFzaywKKwkgIH0sCisJIH0sCisJeworCSB7CisJICAubmFtZSA9ICJTU0MxIFBDTSBvdXQiLAorCSAgLnBkYyA9ICZwZGNfdHhfcmVnLAorCSAgLm1hc2sgPSAmc3NjX3R4X21hc2ssCisJICB9LAorCSB7CisJICAubmFtZSA9ICJTU0MxIFBDTSBpbiIsCisJICAucGRjID0gJnBkY19yeF9yZWcsCisJICAubWFzayA9ICZzc2NfcnhfbWFzaywKKwkgIH0sCisJIH0sCisJeworCSB7CisJICAubmFtZSA9ICJTU0MyIFBDTSBvdXQiLAorCSAgLnBkYyA9ICZwZGNfdHhfcmVnLAorCSAgLm1hc2sgPSAmc3NjX3R4X21hc2ssCisJICB9LAorCSB7CisJICAubmFtZSA9ICJTU0MyIFBDTSBpbiIsCisJICAucGRjID0gJnBkY19yeF9yZWcsCisJICAubWFzayA9ICZzc2NfcnhfbWFzaywKKwkgIH0sCisJIH0sCit9OworCisKKworc3RhdGljIHN0cnVjdCBhdDMyX3NzY19pbmZvIHNzY19pbmZvW05VTV9TU0NfREVWSUNFU10gPSB7CisJeworCSAubmFtZSA9ICJzc2MwIiwKKwkgLmxvY2sgPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzc2NfaW5mb1swXS5sb2NrKSwKKwkgLmRpcl9tYXNrID0gU1NDX0RJUl9NQVNLX1VOVVNFRCwKKwkgLmluaXRpYWxpemVkID0gMCwKKwkgfSwKKwl7CisJIC5uYW1lID0gInNzYzEiLAorCSAubG9jayA9IF9fU1BJTl9MT0NLX1VOTE9DS0VEKHNzY19pbmZvWzFdLmxvY2spLAorCSAuZGlyX21hc2sgPSBTU0NfRElSX01BU0tfVU5VU0VELAorCSAuaW5pdGlhbGl6ZWQgPSAwLAorCSB9LAorCXsKKwkgLm5hbWUgPSAic3NjMiIsCisJIC5sb2NrID0gX19TUElOX0xPQ0tfVU5MT0NLRUQoc3NjX2luZm9bMl0ubG9jayksCisJIC5kaXJfbWFzayA9IFNTQ19ESVJfTUFTS19VTlVTRUQsCisJIC5pbml0aWFsaXplZCA9IDAsCisJIH0sCit9OworCisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICogSVNSCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIFNTQyBpbnRlcnJ1cHQgaGFuZGxlci4gIFBhc3NlcyBQREMgaW50ZXJydXB0cyB0byB0aGUgRE1BIGludGVycnVwdAorICogaGFuZGxlciBpbiB0aGUgUENNIGRyaXZlci4KKyAqLworc3RhdGljIGlycXJldHVybl90IGF0MzJfc3NjX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gZGV2X2lkOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpkbWFfcGFyYW1zOworCXUzMiBzc2Nfc3I7CisJdTMyIHNzY19zdWJzdHJlYW1fbWFzazsKKwlpbnQgaTsKKworCXNzY19zciA9IChzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgU1IpICYKKwkJICBzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgSU1SKSk7CisKKwkvKgorCSAqIExvb3AgdGhyb3VnaCBzdWJzdHJlYW1zIGF0dGFjaGVkIHRvIHRoaXMgU1NDLiAgSWYgYSBETUEtcmVsYXRlZAorCSAqIGludGVycnVwdCBvY2N1cmVkIG9uIHRoYXQgc3Vic3RyZWFtLCBjYWxsIHRoZSBETUEgaW50ZXJydXB0CisJICogaGFuZGxlciBmdW5jdGlvbiwgaWYgb25lIGhhcyBiZWVuIHJlZ2lzdGVyZWQgaW4gdGhlIGRtYV9wYXJhbQorCSAqIHN0cnVjdHVyZSBieSB0aGUgUENNIGRyaXZlci4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzc2NfcC0+ZG1hX3BhcmFtcyk7IGkrKykgeworCQlkbWFfcGFyYW1zID0gc3NjX3AtPmRtYV9wYXJhbXNbaV07CisKKwkJaWYgKChkbWFfcGFyYW1zICE9IE5VTEwpICYmCisJCSAgICAoZG1hX3BhcmFtcy0+ZG1hX2ludHJfaGFuZGxlciAhPSBOVUxMKSkgeworCQkJc3NjX3N1YnN0cmVhbV9tYXNrID0gKGRtYV9wYXJhbXMtPm1hc2stPnNzY19lbmR4IHwKKwkJCQkJICAgICAgZG1hX3BhcmFtcy0+bWFzay0+c3NjX2VuZGJ1Zik7CisJCQlpZiAoc3NjX3NyICYgc3NjX3N1YnN0cmVhbV9tYXNrKSB7CisJCQkJZG1hX3BhcmFtcy0+ZG1hX2ludHJfaGFuZGxlcihzc2Nfc3IsCisJCQkJCQkJICAgICBkbWFfcGFyYW1zLT4KKwkJCQkJCQkgICAgIHN1YnN0cmVhbSk7CisJCQl9CisJCX0KKwl9CisKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIERBSSBmdW5jdGlvbnMKK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKgorICogU3RhcnR1cC4gIE9ubHkgdGhhdCBvbmUgc3Vic3RyZWFtIGFsbG93ZWQgaW4gZWFjaCBkaXJlY3Rpb24uCisgKi8KK3N0YXRpYyBpbnQgYXQzMl9zc2Nfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW3J0ZC0+ZGFpLT5jcHVfZGFpLT5pZF07CisJaW50IGRpcl9tYXNrOworCisJZGlyX21hc2sgPSAoKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spID8KKwkJICAgIFNTQ19ESVJfTUFTS19QTEFZQkFDSyA6IFNTQ19ESVJfTUFTS19DQVBUVVJFKTsKKworCXNwaW5fbG9ja19pcnEoJnNzY19wLT5sb2NrKTsKKwlpZiAoc3NjX3AtPmRpcl9tYXNrICYgZGlyX21hc2spIHsKKwkJc3Bpbl91bmxvY2tfaXJxKCZzc2NfcC0+bG9jayk7CisJCXJldHVybiAtRUJVU1k7CisJfQorCXNzY19wLT5kaXJfbWFzayB8PSBkaXJfbWFzazsKKwlzcGluX3VubG9ja19pcnEoJnNzY19wLT5sb2NrKTsKKworCXJldHVybiAwOworfQorCisKKworLyoKKyAqIFNodXRkb3duLiAgQ2xlYXIgRE1BIHBhcmFtZXRlcnMgYW5kIHNodXRkb3duIHRoZSBTU0MgaWYgdGhlcmUKKyAqIGFyZSBubyBvdGhlciBzdWJzdHJlYW1zIG9wZW4uCisgKi8KK3N0YXRpYyB2b2lkIGF0MzJfc3NjX3NodXRkb3duKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3AgPSAmc3NjX2luZm9bcnRkLT5kYWktPmNwdV9kYWktPmlkXTsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqZG1hX3BhcmFtczsKKwlpbnQgZGlyX21hc2s7CisKKwlkbWFfcGFyYW1zID0gc3NjX3AtPmRtYV9wYXJhbXNbc3Vic3RyZWFtLT5zdHJlYW1dOworCisJaWYgKGRtYV9wYXJhbXMgIT0gTlVMTCkgeworCQlzc2Nfd3JpdGVsKGRtYV9wYXJhbXMtPnNzYy0+cmVncywgQ1IsCisJCQkgICBkbWFfcGFyYW1zLT5tYXNrLT5zc2NfZGlzYWJsZSk7CisJCXByX2RlYnVnKCIlcyBkaXNhYmxlZCBTU0NfU1I9MHglMDh4XG4iLAorCQkJIChzdWJzdHJlYW0tPnN0cmVhbSA/ICJyZWNlaXZlciIgOiAidHJhbnNtaXQiKSwKKwkJCSBzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgU1IpKTsKKworCQlkbWFfcGFyYW1zLT5zc2MgPSBOVUxMOworCQlkbWFfcGFyYW1zLT5zdWJzdHJlYW0gPSBOVUxMOworCQlzc2NfcC0+ZG1hX3BhcmFtc1tzdWJzdHJlYW0tPnN0cmVhbV0gPSBOVUxMOworCX0KKworCisJZGlyX21hc2sgPSAxIDw8IHN1YnN0cmVhbS0+c3RyZWFtOworCXNwaW5fbG9ja19pcnEoJnNzY19wLT5sb2NrKTsKKwlzc2NfcC0+ZGlyX21hc2sgJj0gfmRpcl9tYXNrOworCWlmICghc3NjX3AtPmRpcl9tYXNrKSB7CisJCS8qIFNodXRkb3duIHRoZSBTU0MgY2xvY2sgKi8KKwkJcHJfZGVidWcoImF0MzItc3NjOiBTdG9wcGluZyB1c2VyICVkIGNsb2NrXG4iLAorCQkJIHNzY19wLT5zc2MtPnVzZXIpOworCQljbGtfZGlzYWJsZShzc2NfcC0+c3NjLT5jbGspOworCisJCWlmIChzc2NfcC0+aW5pdGlhbGl6ZWQpIHsKKwkJCWZyZWVfaXJxKHNzY19wLT5zc2MtPmlycSwgc3NjX3ApOworCQkJc3NjX3AtPmluaXRpYWxpemVkID0gMDsKKwkJfQorCisJCS8qIFJlc2V0IHRoZSBTU0MgKi8KKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDUiwgU1NDX0JJVChDUl9TV1JTVCkpOworCisJCS8qIGNsZWFyIHRoZSBTU0MgZGl2aWRlcnMgKi8KKwkJc3NjX3AtPmNtcl9kaXYgPSAwOworCQlzc2NfcC0+dGNtcl9wZXJpb2QgPSAwOworCQlzc2NfcC0+cmNtcl9wZXJpb2QgPSAwOworCX0KKwlzcGluX3VubG9ja19pcnEoJnNzY19wLT5sb2NrKTsKK30KKworCisKKy8qCisgKiBTZXQgdGhlIFNTQyBzeXN0ZW0gY2xvY2sgcmF0ZQorICovCitzdGF0aWMgaW50IGF0MzJfc3NjX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKKwkJCQkgICBpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKK3sKKwkvKiBUT0RPOiBXaGF0IHRoZSBoZWNrIGRvIEkgZG8gaGVyZT8gKi8KKwlyZXR1cm4gMDsKK30KKworCisKKy8qCisgKiBSZWNvcmQgREFJIGZvcm1hdCBmb3IgdXNlIGJ5IGh3X3BhcmFtcygpCisgKi8KK3N0YXRpYyBpbnQgYXQzMl9zc2Nfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAorCQkJCXVuc2lnbmVkIGludCBmbXQpCit7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW2NwdV9kYWktPmlkXTsKKworCXNzY19wLT5kYWlmbXQgPSBmbXQ7CisJcmV0dXJuIDA7Cit9CisKKworCisvKgorICogUmVjb3JkIFNTQyBjbG9jayBkaXZpZGVycyBmb3IgdXNlIGluIGh3X3BhcmFtcygpCisgKi8KK3N0YXRpYyBpbnQgYXQzMl9zc2Nfc2V0X2RhaV9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAorCQkJCSAgIGludCBkaXZfaWQsIGludCBkaXYpCit7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW2NwdV9kYWktPmlkXTsKKworCXN3aXRjaCAoZGl2X2lkKSB7CisJY2FzZSBBVDMyX1NTQ19DTVJfRElWOgorCQkvKgorCQkgKiBUaGUgc2FtZSBtYXN0ZXIgY2xvY2sgZGl2aWRlciBpcyB1c2VkIGZvciBib3RoCisJCSAqIHRyYW5zbWl0IGFuZCByZWNlaXZlLCBzbyBpZiBhIHZhbHVlIGhhcyBhbHJlYWR5CisJCSAqIGJlZW4gc2V0LCBpdCBtdXN0IG1hdGNoIHRoaXMgdmFsdWUKKwkJICovCisJCWlmIChzc2NfcC0+Y21yX2RpdiA9PSAwKQorCQkJc3NjX3AtPmNtcl9kaXYgPSBkaXY7CisJCWVsc2UgaWYgKGRpdiAhPSBzc2NfcC0+Y21yX2RpdikKKwkJCXJldHVybiAtRUJVU1k7CisJCWJyZWFrOworCisJY2FzZSBBVDMyX1NTQ19UQ01SX1BFUklPRDoKKwkJc3NjX3AtPnRjbXJfcGVyaW9kID0gZGl2OworCQlicmVhazsKKworCWNhc2UgQVQzMl9TU0NfUkNNUl9QRVJJT0Q6CisJCXNzY19wLT5yY21yX3BlcmlvZCA9IGRpdjsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworCisKKy8qCisgKiBDb25maWd1cmUgdGhlIFNTQworICovCitzdGF0aWMgaW50IGF0MzJfc3NjX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCSAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlpbnQgaWQgPSBydGQtPmRhaS0+Y3B1X2RhaS0+aWQ7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW2lkXTsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqZG1hX3BhcmFtczsKKwlpbnQgY2hhbm5lbHMsIGJpdHM7CisJdTMyIHRmbXIsIHJmbXIsIHRjbXIsIHJjbXI7CisJaW50IHN0YXJ0X2V2ZW50OworCWludCByZXQ7CisKKworCS8qCisJICogQ3VycmVudGx5LCB0aGVyZSBpcyBvbmx5IG9uZSBzZXQgb2YgZG1hX3BhcmFtcyBmb3IgZWFjaCBkaXJlY3Rpb24uCisJICogSWYgbW9yZSBhcmUgYWRkZWQsIHRoaXMgY29kZSB3aWxsIGhhdmUgdG8gYmUgY2hhbmdlZCB0byBzZWxlY3QKKwkgKiB0aGUgcHJvcGVyIHNldAorCSAqLworCWRtYV9wYXJhbXMgPSAmc3NjX2RtYV9wYXJhbXNbaWRdW3N1YnN0cmVhbS0+c3RyZWFtXTsKKwlkbWFfcGFyYW1zLT5zc2MgPSBzc2NfcC0+c3NjOworCWRtYV9wYXJhbXMtPnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKworCXNzY19wLT5kbWFfcGFyYW1zW3N1YnN0cmVhbS0+c3RyZWFtXSA9IGRtYV9wYXJhbXM7CisKKworCS8qCisJICogVGhlIGNwdV9kYWktPmRtYV9kYXRhIGZpZWxkIGlzIG9ubHkgdXNlZCB0byBjb21tdW5pY2F0ZSB0aGUKKwkgKiBhcHByb3ByaWF0ZSBETUEgcGFyYW1ldGVycyB0byB0aGUgUENNIGRyaXZlcidzIGh3X3BhcmFtcygpCisJICogZnVuY3Rpb24uICBJdCBzaG91bGQgbm90IGJlIHVzZWQgZm9yIG90aGVyIHB1cnBvc2VzIGFzIGl0CisJICogaXMgY29tbW9uIHRvIGFsbCBzdWJzdHJlYW1zLgorCSAqLworCXJ0ZC0+ZGFpLT5jcHVfZGFpLT5kbWFfZGF0YSA9IGRtYV9wYXJhbXM7CisKKwljaGFubmVscyA9IHBhcmFtc19jaGFubmVscyhwYXJhbXMpOworCisKKwkvKgorCSAqIERldGVybWluZSBzYW1wbGUgc2l6ZSBpbiBiaXRzIGFuZCB0aGUgUERDIGluY3JlbWVudAorCSAqLworCXN3aXRjaCAocGFyYW1zX2Zvcm1hdChwYXJhbXMpKSB7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1M4OgorCQliaXRzID0gODsKKwkJZG1hX3BhcmFtcy0+cGRjX3hmZXJfc2l6ZSA9IDE7CisJCWJyZWFrOworCisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNjoKKwkJYml0cyA9IDE2OworCQlkbWFfcGFyYW1zLT5wZGNfeGZlcl9zaXplID0gMjsKKwkJYnJlYWs7CisKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzI0OgorCQliaXRzID0gMjQ7CisJCWRtYV9wYXJhbXMtPnBkY194ZmVyX3NpemUgPSA0OworCQlicmVhazsKKworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMzI6CisJCWJpdHMgPSAzMjsKKwkJZG1hX3BhcmFtcy0+cGRjX3hmZXJfc2l6ZSA9IDQ7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcHJfd2FybmluZygiYXQzMi1zc2M6IFVuc3VwcG9ydGVkIFBDTSBmb3JtYXQgJWQiLAorCQkJICAgcGFyYW1zX2Zvcm1hdChwYXJhbXMpKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXByX2RlYnVnKCJhdDMyLXNzYzogYml0cyA9ICVkLCBwZGNfeGZlcl9zaXplID0gJWQsIGNoYW5uZWxzID0gJWRcbiIsCisJCSBiaXRzLCBkbWFfcGFyYW1zLT5wZGNfeGZlcl9zaXplLCBjaGFubmVscyk7CisKKworCS8qCisJICogVGhlIFNTQyBvbmx5IHN1cHBvcnRzIHVwIHRvIDE2LWJpdCBzYW1wbGVzIGluIEkyUyBmb3JtYXQsIGR1ZQorCSAqIHRvIHRoZSBzaXplIG9mIHRoZSBGcmFtZSBNb2RlIFJlZ2lzdGVyIEZTTEVOIGZpZWxkLgorCSAqLworCWlmICgoc3NjX3AtPmRhaWZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSA9PSBTTkRfU09DX0RBSUZNVF9JMlMpCisJCWlmIChiaXRzID4gMTYpIHsKKwkJCXByX3dhcm5pbmcoImF0MzItc3NjOiAiCisJCQkJICAgInNhbXBsZSBzaXplICVkIGlzIHRvbyBsYXJnZSBmb3IgSTJTXG4iLAorCQkJCSAgIGJpdHMpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCisJLyoKKwkgKiBDb21wdXRlIHRoZSBTU0MgcmVnaXN0ZXIgc2V0dGluZ3MKKwkgKi8KKwlzd2l0Y2ggKHNzY19wLT5kYWlmbXQgJiAoU05EX1NPQ19EQUlGTVRfRk9STUFUX01BU0sgfAorCQkJCSBTTkRfU09DX0RBSUZNVF9NQVNURVJfTUFTSykpIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0kyUyB8IFNORF9TT0NfREFJRk1UX0NCU19DRlM6CisJCS8qCisJCSAqIEkyUyBmb3JtYXQsIFNTQyBwcm92aWRlcyBCQ0xLIGFuZCBMUlMgY2xvY2tzLgorCQkgKgorCQkgKiBUaGUgU1NDIHRyYW5zbWl0IGFuZCByZWNlaXZlIGNsb2NrcyBhcmUgZ2VuZXJhdGVkIGZyb20gdGhlCisJCSAqIE1DSyBkaXZpZGVyLCBhbmQgdGhlIEJDTEsgc2lnbmFsIGlzIG91dHB1dCBvbiB0aGUgU1NDIFRLIGxpbmUKKwkJICovCisJCXByX2RlYnVnKCJhdDMyLXNzYzogU1NDIG1vZGUgaXMgSTJTIEJDTEsgLyBGUkFNRSBtYXN0ZXJcbiIpOworCQlyY21yID0gKFNTQ19CRihSQ01SX1BFUklPRCwgc3NjX3AtPnJjbXJfcGVyaW9kKSB8CisJCQlTU0NfQkYoUkNNUl9TVFRETFksIFNUQVJUX0RFTEFZKSB8CisJCQlTU0NfQkYoUkNNUl9TVEFSVCwgU1NDX1NUQVJUX0ZBTExJTkdfUkYpIHwKKwkJCVNTQ19CRihSQ01SX0NLSSwgU1NDX0NLSV9SSVNJTkcpIHwKKwkJCVNTQ19CRihSQ01SX0NLTywgU1NDX0NLT19OT05FKSB8CisJCQlTU0NfQkYoUkNNUl9DS1MsIFNTQ19DS1NfRElWKSk7CisKKwkJcmZtciA9IChTU0NfQkYoUkZNUl9GU0VER0UsIFNTQ19GU0VER0VfUE9TSVRJVkUpIHwKKwkJCVNTQ19CRihSRk1SX0ZTT1MsIFNTQ19GU09TX05FR0FUSVZFKSB8CisJCQlTU0NfQkYoUkZNUl9GU0xFTiwgYml0cyAtIDEpIHwKKwkJCVNTQ19CRihSRk1SX0RBVE5CLCBjaGFubmVscyAtIDEpIHwKKwkJCVNTQ19CSVQoUkZNUl9NU0JGKSB8IFNTQ19CRihSRk1SX0RBVExFTiwgYml0cyAtIDEpKTsKKworCQl0Y21yID0gKFNTQ19CRihUQ01SX1BFUklPRCwgc3NjX3AtPnRjbXJfcGVyaW9kKSB8CisJCQlTU0NfQkYoVENNUl9TVFRETFksIFNUQVJUX0RFTEFZKSB8CisJCQlTU0NfQkYoVENNUl9TVEFSVCwgU1NDX1NUQVJUX0ZBTExJTkdfUkYpIHwKKwkJCVNTQ19CRihUQ01SX0NLSSwgU1NDX0NLSV9GQUxMSU5HKSB8CisJCQlTU0NfQkYoVENNUl9DS08sIFNTQ19DS09fQ09OVElOVU9VUykgfAorCQkJU1NDX0JGKFRDTVJfQ0tTLCBTU0NfQ0tTX0RJVikpOworCisJCXRmbXIgPSAoU1NDX0JGKFRGTVJfRlNFREdFLCBTU0NfRlNFREdFX1BPU0lUSVZFKSB8CisJCQlTU0NfQkYoVEZNUl9GU09TLCBTU0NfRlNPU19ORUdBVElWRSkgfAorCQkJU1NDX0JGKFRGTVJfRlNMRU4sIGJpdHMgLSAxKSB8CisJCQlTU0NfQkYoVEZNUl9EQVROQiwgY2hhbm5lbHMgLSAxKSB8IFNTQ19CSVQoVEZNUl9NU0JGKSB8CisJCQlTU0NfQkYoVEZNUl9EQVRMRU4sIGJpdHMgLSAxKSk7CisJCWJyZWFrOworCisKKwljYXNlIFNORF9TT0NfREFJRk1UX0kyUyB8IFNORF9TT0NfREFJRk1UX0NCTV9DRk06CisJCS8qCisJCSAqIEkyUyBmb3JtYXQsIENPREVDIHN1cHBsaWVzIEJDTEsgYW5kIExSQyBjbG9jay4KKwkJICoKKwkJICogVGhlIFNTQyB0cmFuc21pdCBjbG9jayBpcyBvYnRhaW5lZCBmcm9tIHRoZSBCQ0xLIHNpZ25hbAorCQkgKiBvbiB0aGUgVEsgbGluZSwgYW5kIHRoZSBTU0MgcmVjZWl2ZSBjbG9jayBpcyBnZW5lcmF0ZWQgZnJvbQorCQkgKiB0aGUgdHJhbnNtaXQgY2xvY2suCisJCSAqCisJCSAqIEZvciBzaW5nbGUgY2hhbm5lbCBkYXRhLCBvbmUgc2FtcGxlIGlzIHRyYW5zZmVycmVkIG9uIHRoZQorCQkgKiBmYWxsaW5nIGVkZ2Ugb2YgdGhlIExSQyBjbG9jay4gIEZvciB0d28gY2hhbm5lbCBkYXRhLCBvbmUKKwkJICogc2FtcGxlIGlzIHRyYW5zZmVycmVkIG9uIGJvdGggZWRnZXMgb2YgdGhlIExSQyBjbG9jay4KKwkJICovCisJCXByX2RlYnVnKCJhdDMyLXNzYzogU1NDIG1vZGUgaXMgSTJTIEJDTEsgLyBGUkFNRSBzbGF2ZVxuIik7CisJCXN0YXJ0X2V2ZW50ID0gKChjaGFubmVscyA9PSAxKSA/CisJCQkgICAgICAgU1NDX1NUQVJUX0ZBTExJTkdfUkYgOiBTU0NfU1RBUlRfRURHRV9SRik7CisKKwkJcmNtciA9IChTU0NfQkYoUkNNUl9TVFRETFksIFNUQVJUX0RFTEFZKSB8CisJCQlTU0NfQkYoUkNNUl9TVEFSVCwgc3RhcnRfZXZlbnQpIHwKKwkJCVNTQ19CRihSQ01SX0NLSSwgU1NDX0NLSV9SSVNJTkcpIHwKKwkJCVNTQ19CRihSQ01SX0NLTywgU1NDX0NLT19OT05FKSB8CisJCQlTU0NfQkYoUkNNUl9DS1MsIFNTQ19DS1NfQ0xPQ0spKTsKKworCQlyZm1yID0gKFNTQ19CRihSRk1SX0ZTRURHRSwgU1NDX0ZTRURHRV9QT1NJVElWRSkgfAorCQkJU1NDX0JGKFJGTVJfRlNPUywgU1NDX0ZTT1NfTk9ORSkgfAorCQkJU1NDX0JJVChSRk1SX01TQkYpIHwgU1NDX0JGKFJGTVJfREFUTEVOLCBiaXRzIC0gMSkpOworCisJCXRjbXIgPSAoU1NDX0JGKFRDTVJfU1RURExZLCBTVEFSVF9ERUxBWSkgfAorCQkJU1NDX0JGKFRDTVJfU1RBUlQsIHN0YXJ0X2V2ZW50KSB8CisJCQlTU0NfQkYoVENNUl9DS0ksIFNTQ19DS0lfRkFMTElORykgfAorCQkJU1NDX0JGKFRDTVJfQ0tPLCBTU0NfQ0tPX05PTkUpIHwKKwkJCVNTQ19CRihUQ01SX0NLUywgU1NDX0NLU19QSU4pKTsKKworCQl0Zm1yID0gKFNTQ19CRihURk1SX0ZTRURHRSwgU1NDX0ZTRURHRV9QT1NJVElWRSkgfAorCQkJU1NDX0JGKFRGTVJfRlNPUywgU1NDX0ZTT1NfTk9ORSkgfAorCQkJU1NDX0JJVChURk1SX01TQkYpIHwgU1NDX0JGKFRGTVJfREFUTEVOLCBiaXRzIC0gMSkpOworCQlicmVhazsKKworCisJY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQSB8IFNORF9TT0NfREFJRk1UX0NCU19DRlM6CisJCS8qCisJCSAqIERTUC9QQ00gTW9kZSBBIGZvcm1hdCwgU1NDIHByb3ZpZGVzIEJDTEsgYW5kIExSQyBjbG9ja3MuCisJCSAqCisJCSAqIFRoZSBTU0MgdHJhbnNtaXQgYW5kIHJlY2VpdmUgY2xvY2tzIGFyZSBnZW5lcmF0ZWQgZnJvbSB0aGUKKwkJICogTUNLIGRpdmlkZXIsIGFuZCB0aGUgQkNMSyBzaWduYWwgaXMgb3V0cHV0IG9uIHRoZSBTU0MgVEsgbGluZQorCQkgKi8KKwkJcHJfZGVidWcoImF0MzItc3NjOiBTU0MgbW9kZSBpcyBEU1AgQSBCQ0xLIC8gRlJBTUUgbWFzdGVyXG4iKTsKKwkJcmNtciA9IChTU0NfQkYoUkNNUl9QRVJJT0QsIHNzY19wLT5yY21yX3BlcmlvZCkgfAorCQkJU1NDX0JGKFJDTVJfU1RURExZLCAxKSB8CisJCQlTU0NfQkYoUkNNUl9TVEFSVCwgU1NDX1NUQVJUX1JJU0lOR19SRikgfAorCQkJU1NDX0JGKFJDTVJfQ0tJLCBTU0NfQ0tJX1JJU0lORykgfAorCQkJU1NDX0JGKFJDTVJfQ0tPLCBTU0NfQ0tPX05PTkUpIHwKKwkJCVNTQ19CRihSQ01SX0NLUywgU1NDX0NLU19ESVYpKTsKKworCQlyZm1yID0gKFNTQ19CRihSRk1SX0ZTRURHRSwgU1NDX0ZTRURHRV9QT1NJVElWRSkgfAorCQkJU1NDX0JGKFJGTVJfRlNPUywgU1NDX0ZTT1NfUE9TSVRJVkUpIHwKKwkJCVNTQ19CRihSRk1SX0RBVE5CLCBjaGFubmVscyAtIDEpIHwKKwkJCVNTQ19CSVQoUkZNUl9NU0JGKSB8IFNTQ19CRihSRk1SX0RBVExFTiwgYml0cyAtIDEpKTsKKworCQl0Y21yID0gKFNTQ19CRihUQ01SX1BFUklPRCwgc3NjX3AtPnRjbXJfcGVyaW9kKSB8CisJCQlTU0NfQkYoVENNUl9TVFRETFksIDEpIHwKKwkJCVNTQ19CRihUQ01SX1NUQVJULCBTU0NfU1RBUlRfUklTSU5HX1JGKSB8CisJCQlTU0NfQkYoVENNUl9DS0ksIFNTQ19DS0lfUklTSU5HKSB8CisJCQlTU0NfQkYoVENNUl9DS08sIFNTQ19DS09fQ09OVElOVU9VUykgfAorCQkJU1NDX0JGKFRDTVJfQ0tTLCBTU0NfQ0tTX0RJVikpOworCisJCXRmbXIgPSAoU1NDX0JGKFRGTVJfRlNFREdFLCBTU0NfRlNFREdFX1BPU0lUSVZFKSB8CisJCQlTU0NfQkYoVEZNUl9GU09TLCBTU0NfRlNPU19QT1NJVElWRSkgfAorCQkJU1NDX0JGKFRGTVJfREFUTkIsIGNoYW5uZWxzIC0gMSkgfAorCQkJU1NDX0JJVChURk1SX01TQkYpIHwgU1NDX0JGKFRGTVJfREFUTEVOLCBiaXRzIC0gMSkpOworCQlicmVhazsKKworCisJY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQSB8IFNORF9TT0NfREFJRk1UX0NCTV9DRk06CisJZGVmYXVsdDoKKwkJcHJfd2FybmluZygiYXQzMi1zc2M6IHVuc3VwcG9ydGVkIERBSSBmb3JtYXQgMHgleFxuIiwKKwkJCSAgIHNzY19wLT5kYWlmbXQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwkJYnJlYWs7CisJfQorCXByX2RlYnVnKCJhdDMyLXNzYzogUkNNUj0lMDh4IFJGTVI9JTA4eCBUQ01SPSUwOHggVEZNUj0lMDh4XG4iLAorCQkgcmNtciwgcmZtciwgdGNtciwgdGZtcik7CisKKworCWlmICghc3NjX3AtPmluaXRpYWxpemVkKSB7CisJCS8qIGVuYWJsZSBwZXJpcGhlcmFsIGNsb2NrICovCisJCXByX2RlYnVnKCJhdDMyLXNzYzogU3RhcnRpbmcgY2xvY2tcbiIpOworCQljbGtfZW5hYmxlKHNzY19wLT5zc2MtPmNsayk7CisKKwkJLyogUmVzZXQgdGhlIFNTQyBhbmQgaXRzIFBEQyByZWdpc3RlcnMgKi8KKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDUiwgU1NDX0JJVChDUl9TV1JTVCkpOworCisJCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUERDX1JQUiwgMCk7CisJCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUERDX1JDUiwgMCk7CisJCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUERDX1JOUFIsIDApOworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19STkNSLCAwKTsKKworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19UUFIsIDApOworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19UQ1IsIDApOworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19UTlBSLCAwKTsKKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBQRENfVE5DUiwgMCk7CisKKwkJcmV0ID0gcmVxdWVzdF9pcnEoc3NjX3AtPnNzYy0+aXJxLCBhdDMyX3NzY19pbnRlcnJ1cHQsIDAsCisJCQkJICBzc2NfcC0+bmFtZSwgc3NjX3ApOworCQlpZiAocmV0IDwgMCkgeworCQkJcHJfd2FybmluZygiYXQzMi1zc2M6IHJlcXVlc3QgaXJxIGZhaWxlZCAoJWQpXG4iLCByZXQpOworCQkJcHJfZGVidWcoImF0MzItc3NjOiBTdG9wcGluZyBjbG9ja1xuIik7CisJCQljbGtfZGlzYWJsZShzc2NfcC0+c3NjLT5jbGspOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCXNzY19wLT5pbml0aWFsaXplZCA9IDE7CisJfQorCisJLyogU2V0IFNTQyBjbG9jayBtb2RlIHJlZ2lzdGVyICovCisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDTVIsIHNzY19wLT5jbXJfZGl2KTsKKworCS8qIHNldCByZWNlaXZlIGNsb2NrIG1vZGUgYW5kIGZvcm1hdCAqLworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUkNNUiwgcmNtcik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBSRk1SLCByZm1yKTsKKworCS8qIHNldCB0cmFuc21pdCBjbG9jayBtb2RlIGFuZCBmb3JtYXQgKi8KKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFRDTVIsIHRjbXIpOworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgVEZNUiwgdGZtcik7CisKKwlwcl9kZWJ1ZygiYXQzMi1zc2M6IFNTQyBpbml0aWFsaXplZFxuIik7CisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgaW50IGF0MzJfc3NjX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9ICZzc2NfaW5mb1tydGQtPmRhaS0+Y3B1X2RhaS0+aWRdOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpkbWFfcGFyYW1zOworCisJZG1hX3BhcmFtcyA9IHNzY19wLT5kbWFfcGFyYW1zW3N1YnN0cmVhbS0+c3RyZWFtXTsKKworCXNzY193cml0ZWwoZG1hX3BhcmFtcy0+c3NjLT5yZWdzLCBDUiwgZG1hX3BhcmFtcy0+bWFzay0+c3NjX2VuYWJsZSk7CisKKwlyZXR1cm4gMDsKK30KKworCisKKyNpZmRlZiBDT05GSUdfUE0KK3N0YXRpYyBpbnQgYXQzMl9zc2Nfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKK3sKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3A7CisKKwlpZiAoIWNwdV9kYWktPmFjdGl2ZSkKKwkJcmV0dXJuIDA7CisKKwlzc2NfcCA9ICZzc2NfaW5mb1tjcHVfZGFpLT5pZF07CisKKwkvKiBTYXZlIHRoZSBzdGF0dXMgcmVnaXN0ZXIgYmVmb3JlIGRpc2FibGluZyB0cmFuc21pdCBhbmQgcmVjZWl2ZSAqLworCXNzY19wLT5zc2Nfc3RhdGUuc3NjX3NyID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIFNSKTsKKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIENSLCBTU0NfQklUKENSX1RYRElTKSB8IFNTQ19CSVQoQ1JfUlhESVMpKTsKKworCS8qIFNhdmUgdGhlIGN1cnJlbnQgaW50ZXJydXB0IG1hc2ssIHRoZW4gZGlzYWJsZSB1bm1hc2tlZCBpbnRlcnJ1cHRzICovCisJc3NjX3AtPnNzY19zdGF0ZS5zc2NfaW1yID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIElNUik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBJRFIsIHNzY19wLT5zc2Nfc3RhdGUuc3NjX2ltcik7CisKKwlzc2NfcC0+c3NjX3N0YXRlLnNzY19jbXIgPSBzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgQ01SKTsKKwlzc2NfcC0+c3NjX3N0YXRlLnNzY19yY21yID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIFJDTVIpOworCXNzY19wLT5zc2Nfc3RhdGUuc3NjX3JmbXIgPSBzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgUkZNUik7CisJc3NjX3AtPnNzY19zdGF0ZS5zc2NfdGNtciA9IHNzY19yZWFkbChzc2NfcC0+c3NjLT5yZWdzLCBUQ01SKTsKKwlzc2NfcC0+c3NjX3N0YXRlLnNzY190Zm1yID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIFRGTVIpOworCisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgaW50IGF0MzJfc3NjX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpKQoreworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcDsKKwl1MzIgY3I7CisKKwlpZiAoIWNwdV9kYWktPmFjdGl2ZSkKKwkJcmV0dXJuIDA7CisKKwlzc2NfcCA9ICZzc2NfaW5mb1tjcHVfZGFpLT5pZF07CisKKwkvKiByZXN0b3JlIFNTQyByZWdpc3RlciBzZXR0aW5ncyAqLworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgVEZNUiwgc3NjX3AtPnNzY19zdGF0ZS5zc2NfdGZtcik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBUQ01SLCBzc2NfcC0+c3NjX3N0YXRlLnNzY190Y21yKTsKKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFJGTVIsIHNzY19wLT5zc2Nfc3RhdGUuc3NjX3JmbXIpOworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUkNNUiwgc3NjX3AtPnNzY19zdGF0ZS5zc2NfcmNtcik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDTVIsIHNzY19wLT5zc2Nfc3RhdGUuc3NjX2Ntcik7CisKKwkvKiByZS1lbmFibGUgaW50ZXJydXB0cyAqLworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgSUVSLCBzc2NfcC0+c3NjX3N0YXRlLnNzY19pbXIpOworCisJLyogUmUtZW5hYmxlIHJlY2lldmUgYW5kIHRyYW5zbWl0IGFzIGFwcHJvcHJpYXRlICovCisJY3IgPSAwOworCWNyIHw9CisJICAgIChzc2NfcC0+c3NjX3N0YXRlLnNzY19zciAmIFNTQ19CSVQoU1JfUlhFTikpID8gU1NDX0JJVChDUl9SWEVOKSA6IDA7CisJY3IgfD0KKwkgICAgKHNzY19wLT5zc2Nfc3RhdGUuc3NjX3NyICYgU1NDX0JJVChTUl9UWEVOKSkgPyBTU0NfQklUKENSX1RYRU4pIDogMDsKKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIENSLCBjcik7CisKKwlyZXR1cm4gMDsKK30KKyNlbHNlIC8qIENPTkZJR19QTSAqLworIyAgZGVmaW5lIGF0MzJfc3NjX3N1c3BlbmQJTlVMTAorIyAgZGVmaW5lIGF0MzJfc3NjX3Jlc3VtZQlOVUxMCisjZW5kaWYgLyogQ09ORklHX1BNICovCisKKworI2RlZmluZSBBVDMyX1NTQ19SQVRFUyBcCisgICAgKFNORFJWX1BDTV9SQVRFXzgwMDAgIHwgU05EUlZfUENNX1JBVEVfMTEwMjUgfCBTTkRSVl9QQ01fUkFURV8xNjAwMCB8IFwKKyAgICAgU05EUlZfUENNX1JBVEVfMjIwNTAgfCBTTkRSVl9QQ01fUkFURV8zMjAwMCB8IFNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgXAorICAgICBTTkRSVl9QQ01fUkFURV80ODAwMCB8IFNORFJWX1BDTV9SQVRFXzg4MjAwIHwgU05EUlZfUENNX1JBVEVfOTYwMDApCisKKworI2RlZmluZSBBVDMyX1NTQ19GT1JNQVRTIFwKKyAgICAoU05EUlZfUENNX0ZNVEJJVF9TOCAgfCBTTkRSVl9QQ01fRk1UQklUX1MxNiB8IFwKKyAgICAgU05EUlZfUENNX0ZNVEJJVF9TMjQgfCBTTkRSVl9QQ01fRk1UQklUX1MzMikKKworCitzdHJ1Y3Qgc25kX3NvY19kYWkgYXQzMl9zc2NfZGFpW05VTV9TU0NfREVWSUNFU10gPSB7CisJeworCSAubmFtZSA9ICJhdDMyLXNzYzAiLAorCSAuaWQgPSAwLAorCSAudHlwZSA9IFNORF9TT0NfREFJX1BDTSwKKwkgLnN1c3BlbmQgPSBhdDMyX3NzY19zdXNwZW5kLAorCSAucmVzdW1lID0gYXQzMl9zc2NfcmVzdW1lLAorCSAucGxheWJhY2sgPSB7CisJCSAgICAgIC5jaGFubmVsc19taW4gPSAxLAorCQkgICAgICAuY2hhbm5lbHNfbWF4ID0gMiwKKwkJICAgICAgLnJhdGVzID0gQVQzMl9TU0NfUkFURVMsCisJCSAgICAgIC5mb3JtYXRzID0gQVQzMl9TU0NfRk9STUFUUywKKwkJICAgICAgfSwKKwkgLmNhcHR1cmUgPSB7CisJCSAgICAgLmNoYW5uZWxzX21pbiA9IDEsCisJCSAgICAgLmNoYW5uZWxzX21heCA9IDIsCisJCSAgICAgLnJhdGVzID0gQVQzMl9TU0NfUkFURVMsCisJCSAgICAgLmZvcm1hdHMgPSBBVDMyX1NTQ19GT1JNQVRTLAorCQkgICAgIH0sCisJIC5vcHMgPSB7CisJCSAuc3RhcnR1cCA9IGF0MzJfc3NjX3N0YXJ0dXAsCisJCSAuc2h1dGRvd24gPSBhdDMyX3NzY19zaHV0ZG93biwKKwkJIC5wcmVwYXJlID0gYXQzMl9zc2NfcHJlcGFyZSwKKwkJIC5od19wYXJhbXMgPSBhdDMyX3NzY19od19wYXJhbXMsCisJCSB9LAorCSAuZGFpX29wcyA9IHsKKwkJICAgICAuc2V0X3N5c2NsayA9IGF0MzJfc3NjX3NldF9kYWlfc3lzY2xrLAorCQkgICAgIC5zZXRfZm10ID0gYXQzMl9zc2Nfc2V0X2RhaV9mbXQsCisJCSAgICAgLnNldF9jbGtkaXYgPSBhdDMyX3NzY19zZXRfZGFpX2Nsa2RpdiwKKwkJICAgICB9LAorCSAucHJpdmF0ZV9kYXRhID0gJnNzY19pbmZvWzBdLAorCSB9LAorCXsKKwkgLm5hbWUgPSAiYXQzMi1zc2MxIiwKKwkgLmlkID0gMSwKKwkgLnR5cGUgPSBTTkRfU09DX0RBSV9QQ00sCisJIC5zdXNwZW5kID0gYXQzMl9zc2Nfc3VzcGVuZCwKKwkgLnJlc3VtZSA9IGF0MzJfc3NjX3Jlc3VtZSwKKwkgLnBsYXliYWNrID0geworCQkgICAgICAuY2hhbm5lbHNfbWluID0gMSwKKwkJICAgICAgLmNoYW5uZWxzX21heCA9IDIsCisJCSAgICAgIC5yYXRlcyA9IEFUMzJfU1NDX1JBVEVTLAorCQkgICAgICAuZm9ybWF0cyA9IEFUMzJfU1NDX0ZPUk1BVFMsCisJCSAgICAgIH0sCisJIC5jYXB0dXJlID0geworCQkgICAgIC5jaGFubmVsc19taW4gPSAxLAorCQkgICAgIC5jaGFubmVsc19tYXggPSAyLAorCQkgICAgIC5yYXRlcyA9IEFUMzJfU1NDX1JBVEVTLAorCQkgICAgIC5mb3JtYXRzID0gQVQzMl9TU0NfRk9STUFUUywKKwkJICAgICB9LAorCSAub3BzID0geworCQkgLnN0YXJ0dXAgPSBhdDMyX3NzY19zdGFydHVwLAorCQkgLnNodXRkb3duID0gYXQzMl9zc2Nfc2h1dGRvd24sCisJCSAucHJlcGFyZSA9IGF0MzJfc3NjX3ByZXBhcmUsCisJCSAuaHdfcGFyYW1zID0gYXQzMl9zc2NfaHdfcGFyYW1zLAorCQkgfSwKKwkgLmRhaV9vcHMgPSB7CisJCSAgICAgLnNldF9zeXNjbGsgPSBhdDMyX3NzY19zZXRfZGFpX3N5c2NsaywKKwkJICAgICAuc2V0X2ZtdCA9IGF0MzJfc3NjX3NldF9kYWlfZm10LAorCQkgICAgIC5zZXRfY2xrZGl2ID0gYXQzMl9zc2Nfc2V0X2RhaV9jbGtkaXYsCisJCSAgICAgfSwKKwkgLnByaXZhdGVfZGF0YSA9ICZzc2NfaW5mb1sxXSwKKwkgfSwKKwl7CisJIC5uYW1lID0gImF0MzItc3NjMiIsCisJIC5pZCA9IDIsCisJIC50eXBlID0gU05EX1NPQ19EQUlfUENNLAorCSAuc3VzcGVuZCA9IGF0MzJfc3NjX3N1c3BlbmQsCisJIC5yZXN1bWUgPSBhdDMyX3NzY19yZXN1bWUsCisJIC5wbGF5YmFjayA9IHsKKwkJICAgICAgLmNoYW5uZWxzX21pbiA9IDEsCisJCSAgICAgIC5jaGFubmVsc19tYXggPSAyLAorCQkgICAgICAucmF0ZXMgPSBBVDMyX1NTQ19SQVRFUywKKwkJICAgICAgLmZvcm1hdHMgPSBBVDMyX1NTQ19GT1JNQVRTLAorCQkgICAgICB9LAorCSAuY2FwdHVyZSA9IHsKKwkJICAgICAuY2hhbm5lbHNfbWluID0gMSwKKwkJICAgICAuY2hhbm5lbHNfbWF4ID0gMiwKKwkJICAgICAucmF0ZXMgPSBBVDMyX1NTQ19SQVRFUywKKwkJICAgICAuZm9ybWF0cyA9IEFUMzJfU1NDX0ZPUk1BVFMsCisJCSAgICAgfSwKKwkgLm9wcyA9IHsKKwkJIC5zdGFydHVwID0gYXQzMl9zc2Nfc3RhcnR1cCwKKwkJIC5zaHV0ZG93biA9IGF0MzJfc3NjX3NodXRkb3duLAorCQkgLnByZXBhcmUgPSBhdDMyX3NzY19wcmVwYXJlLAorCQkgLmh3X3BhcmFtcyA9IGF0MzJfc3NjX2h3X3BhcmFtcywKKwkJIH0sCisJIC5kYWlfb3BzID0geworCQkgICAgIC5zZXRfc3lzY2xrID0gYXQzMl9zc2Nfc2V0X2RhaV9zeXNjbGssCisJCSAgICAgLnNldF9mbXQgPSBhdDMyX3NzY19zZXRfZGFpX2ZtdCwKKwkJICAgICAuc2V0X2Nsa2RpdiA9IGF0MzJfc3NjX3NldF9kYWlfY2xrZGl2LAorCQkgICAgIH0sCisJIC5wcml2YXRlX2RhdGEgPSAmc3NjX2luZm9bMl0sCisJIH0sCit9OworRVhQT1JUX1NZTUJPTF9HUEwoYXQzMl9zc2NfZGFpKTsKKworCitNT0RVTEVfQVVUSE9SKCJHZW9mZnJleSBXb3NzdW0gPGd3b3NzdW1AYWNtLm9yZz4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiQVQzMiBTU0MgQVNvQyBJbnRlcmZhY2UiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDMyL2F0MzItc3NjLmggYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXNzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMDUyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXNzYy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qIHNvdW5kL3NvYy9hdDMyL2F0MzItc3NjLmgKKyAqIEFTb0MgU1NDIGludGVyZmFjZSBmb3IgQXRtZWwgQVQzMiBTb0MKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTG9uZyBSYW5nZSBTeXN0ZW1zCisgKiAgICBHZW9mZnJleSBXb3NzdW0gPGd3b3NzdW1AYWNtLm9yZz4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19TT1VORF9TT0NfQVQzMl9BVDMyX1NTQ19ICisjZGVmaW5lIF9fU09VTkRfU09DX0FUMzJfQVQzMl9TU0NfSCBfX0ZJTEVfXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9hdG1lbC1zc2MuaD4KKworI2luY2x1ZGUgImF0MzItcGNtLmgiCisKKworCitzdHJ1Y3QgYXQzMl9zc2Nfc3RhdGUgeworCXUzMiBzc2NfY21yOworCXUzMiBzc2NfcmNtcjsKKwl1MzIgc3NjX3JmbXI7CisJdTMyIHNzY190Y21yOworCXUzMiBzc2NfdGZtcjsKKwl1MzIgc3NjX3NyOworCXUzMiBzc2NfaW1yOworfTsKKworCisKK3N0cnVjdCBhdDMyX3NzY19pbmZvIHsKKwljaGFyICpuYW1lOworCXN0cnVjdCBzc2NfZGV2aWNlICpzc2M7CisJc3BpbmxvY2tfdCBsb2NrOwkvKiBsb2NrIGZvciBkaXJfbWFzayAqLworCXVuc2lnbmVkIHNob3J0IGRpcl9tYXNrOwkvKiAwPXVudXNlZCwgMT1wbGF5YmFjaywgMj1jYXB0dXJlICovCisJdW5zaWduZWQgc2hvcnQgaW5pdGlhbGl6ZWQ7CS8qIHRydWUgaWYgU1NDIGhhcyBiZWVuIGluaXRpYWxpemVkICovCisJdW5zaWduZWQgc2hvcnQgZGFpZm10OworCXVuc2lnbmVkIHNob3J0IGNtcl9kaXY7CisJdW5zaWduZWQgc2hvcnQgdGNtcl9wZXJpb2Q7CisJdW5zaWduZWQgc2hvcnQgcmNtcl9wZXJpb2Q7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKmRtYV9wYXJhbXNbMl07CisJc3RydWN0IGF0MzJfc3NjX3N0YXRlIHNzY19zdGF0ZTsKK307CisKKworLyogU1NDIGRpdmlkZXIgaWRzICovCisjZGVmaW5lIEFUMzJfU1NDX0NNUl9ESVYgICAgICAgIDAJLyogTUNLIGRpdmlkZXIgZm9yIEJDTEsgKi8KKyNkZWZpbmUgQVQzMl9TU0NfVENNUl9QRVJJT0QgICAgMQkvKiBCQ0xLIGRpdmlkZXIgZm9yIHRyYW5zbWl0IEZTICovCisjZGVmaW5lIEFUMzJfU1NDX1JDTVJfUEVSSU9EICAgIDIJLyogQkNMSyBkaXZpZGVyIGZvciByZWNlaXZlIEZTICovCisKKworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhdDMyX3NzY19kYWlbXTsKKworCisKKyNlbmRpZiAvKiBfX1NPVU5EX1NPQ19BVDMyX0FUMzJfU1NDX0ggKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDMyL3BsYXlwYXFfd204NTEwLmMgYi9zb3VuZC9zb2MvYXQzMi9wbGF5cGFxX3dtODUxMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlZTVmOGUKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXQzMi9wbGF5cGFxX3dtODUxMC5jCkBAIC0wLDAgKzEsNTIyIEBACisvKiBzb3VuZC9zb2MvYXQzMi9wbGF5cGFxX3dtODUxMC5jCisgKiBBU29DIG1hY2hpbmUgZHJpdmVyIGZvciBQbGF5UGFxIHVzaW5nIFdNODUxMCBjb2RlYworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMb25nIFJhbmdlIFN5c3RlbXMKKyAqICAgIEdlb2ZmcmV5IFdvc3N1bSA8Z3dvc3N1bUBhY20ub3JnPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBjb2RlIGlzIGxhcmdlbHkgaW5zcGlyZWQgYnkgc291bmQvc29jL2F0OTEvZXRpX2IxX3dtODczMS5jCisgKgorICogTk9URTogSWYgeW91IGRvbid0IGhhdmUgdGhlIEFUMzIgZW5oYW5jZWQgcG9ydG11eCBjb25maWd1cmVkICh3aGljaAorICogaXNuJ3QgY3VycmVudGx5IGluIHRoZSBtYWlubGluZSBvciBBdG1lbCBwYXRjaGVkIGtlcm5lbCksIHlvdSB3aWxsCisgKiBuZWVkIHRvIHNldCB0aGUgTUNMSyBwaW4gKFBBMzApIHRvIHBlcmlwaGVyYWwgQSBpbiB5b3VyIGJvYXJkIGluaXRpYWxpemF0aW9uCisgKiBjb2RlLiAgU29tZXRoaW5nIGxpa2U6CisgKglhdDMyX3NlbGVjdF9wZXJpcGgoR1BJT19QSU5fUEEoMzApLCBHUElPX1BFUklQSF9BLCAwKTsKKyAqCisgKi8KKworLyogI2RlZmluZSBERUJVRyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvYXQzMmFwNzAweC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3BvcnRtdXguaD4KKworI2luY2x1ZGUgIi4uL2NvZGVjcy93bTg1MTAuaCIKKyNpbmNsdWRlICJhdDMyLXBjbS5oIgorI2luY2x1ZGUgImF0MzItc3NjLmgiCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIGNvbnN0YW50cworXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNkZWZpbmUgTUNMS19QSU4JCUdQSU9fUElOX1BBKDMwKQorI2RlZmluZSBNQ0xLX1BFUklQSAkJR1BJT19QRVJJUEhfQQorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBkYXRhIHR5cGVzCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogU1NDIGNsb2NraW5nIGRhdGEgKi8KK3N0cnVjdCBzc2NfY2xvY2tfZGF0YSB7CisJLyogQ01SIGRpdiAqLworCXVuc2lnbmVkIGludCBjbXJfZGl2OworCisJLyogRnJhbWUgcGVyaW9kIChhcyBuZWVkZWQgYnkgeENNUi5QRVJJT0QpICovCisJdW5zaWduZWQgaW50IHBlcmlvZDsKKworCS8qIFRoZSBTU0MgY2xvY2sgcmF0ZSB0aGVzZSBzZXR0aW5ncyB3aGVyZSBjYWxjdWxhdGVkIGZvciAqLworCXVuc2lnbmVkIGxvbmcgc3NjX3JhdGU7Cit9OworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBtb2R1bGUgZGF0YQorXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrICpfZ2NsazA7CitzdGF0aWMgc3RydWN0IGNsayAqX3BsbDA7CisKKyNkZWZpbmUgQ09ERUNfQ0xLIChfZ2NsazApCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIFNvdW5kIFNPQyBvcGVyYXRpb25zCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2lmIGRlZmluZWQgQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFCitzdGF0aWMgc3RydWN0IHNzY19jbG9ja19kYXRhIHBsYXlwYXFfd204NTEwX2NhbGNfc3NjX2Nsb2NrKAorCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zLAorCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKK3sKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3AgPSBjcHVfZGFpLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNzY19kZXZpY2UgKnNzYyA9IHNzY19wLT5zc2M7CisJc3RydWN0IHNzY19jbG9ja19kYXRhIGNkOworCXVuc2lnbmVkIGludCByYXRlLCB3aWR0aF9iaXRzLCBjaGFubmVsczsKKwl1bnNpZ25lZCBpbnQgYml0cmF0ZSwgc3NjX2RpdjsKKwl1bnNpZ25lZCBhY3R1YWxfcmF0ZTsKKworCisJLyoKKwkgKiBGaWd1cmUgb3V0IHJlcXVpcmVkIGJpdHJhdGUKKwkgKi8KKwlyYXRlID0gcGFyYW1zX3JhdGUocGFyYW1zKTsKKwljaGFubmVscyA9IHBhcmFtc19jaGFubmVscyhwYXJhbXMpOworCXdpZHRoX2JpdHMgPSBzbmRfcGNtX2Zvcm1hdF9waHlzaWNhbF93aWR0aChwYXJhbXNfZm9ybWF0KHBhcmFtcykpOworCWJpdHJhdGUgPSByYXRlICogd2lkdGhfYml0cyAqIGNoYW5uZWxzOworCisKKwkvKgorCSAqIEZpZ3VyZSBvdXQgcmVxdWlyZWQgU1NDIGRpdmlkZXIgYW5kIHBlcmlvZCBmb3IgcmVxdWlyZWQgYml0cmF0ZQorCSAqLworCWNkLnNzY19yYXRlID0gY2xrX2dldF9yYXRlKHNzYy0+Y2xrKTsKKwlzc2NfZGl2ID0gY2Quc3NjX3JhdGUgLyBiaXRyYXRlOworCWNkLmNtcl9kaXYgPSBzc2NfZGl2IC8gMjsKKwlpZiAoc3NjX2RpdiAmIDEpIHsKKwkJLyogcm91bmQgY21yX2RpdiB1cCAqLworCQljZC5jbXJfZGl2Kys7CisJfQorCWNkLnBlcmlvZCA9IHdpZHRoX2JpdHMgLSAxOworCisKKwkvKgorCSAqIEZpbmQgYWN0dWFsIHJhdGUsIGNvbXBhcmUgdG8gcmVxdWVzdGVkIHJhdGUKKwkgKi8KKwlhY3R1YWxfcmF0ZSA9IChjZC5zc2NfcmF0ZSAvIChjZC5jbXJfZGl2ICogMikpIC8gKDIgKiAoY2QucGVyaW9kICsgMSkpOworCXByX2RlYnVnKCJwbGF5cGFxX3dtODUxMDogUmVxdWVzdCByYXRlID0gJWQsIGFjdHVhbCByYXRlID0gJWRcbiIsCisJCSByYXRlLCBhY3R1YWxfcmF0ZSk7CisKKworCXJldHVybiBjZDsKK30KKyNlbmRpZiAvKiBDT05GSUdfU05EX0FUMzJfU09DX1BMQVlQQVFfU0xBVkUgKi8KKworCisKK3N0YXRpYyBpbnQgcGxheXBhcV93bTg1MTBfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9IGNwdV9kYWktPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qgc3NjX2RldmljZSAqc3NjID0gc3NjX3AtPnNzYzsKKwl1bnNpZ25lZCBpbnQgcGxsX291dCA9IDAsIGJjbGsgPSAwLCBtY2xrX2RpdiA9IDA7CisJaW50IHJldDsKKworCisJLyogRHVlIHRvIGRpZmZpY3VsdGllcyB3aXRoIGdldHRpbmcgdGhlIGNvcnJlY3QgY2xvY2tzIGZyb20gdGhlIEFUMzIncworCSAqIFBMTDAsIHdlJ3JlIGdvaW5nIHRvIGxldCB0aGUgQ09ERUMgYmUgaW4gY2hhcmdlIG9mIGFsbCB0aGUgY2xvY2tzCisJICovCisjaWYgIWRlZmluZWQgQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFCisJY29uc3QgdW5zaWduZWQgaW50IGZtdCA9IChTTkRfU09DX0RBSUZNVF9JMlMgfAorCQkJCSAgU05EX1NPQ19EQUlGTVRfTkJfTkYgfAorCQkJCSAgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSk7CisjZWxzZQorCXN0cnVjdCBzc2NfY2xvY2tfZGF0YSBjZDsKKwljb25zdCB1bnNpZ25lZCBpbnQgZm10ID0gKFNORF9TT0NfREFJRk1UX0kyUyB8CisJCQkJICBTTkRfU09DX0RBSUZNVF9OQl9ORiB8CisJCQkJICBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKKyNlbmRpZgorCisJaWYgKHNzYyA9PSBOVUxMKSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwX2h3X3BhcmFtczogc3NjIGlzIE5VTEwhXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisKKwkvKgorCSAqIEZpZ3VyZSBvdXQgUExMIGFuZCBCQ0xLIGRpdmlkZXJzIGZvciBXTTg1MTAKKwkgKi8KKwlzd2l0Y2ggKHBhcmFtc19yYXRlKHBhcmFtcykpIHsKKwljYXNlIDQ4MDAwOgorCQlwbGxfb3V0ID0gMTIyODgwMDA7CisJCW1jbGtfZGl2ID0gV004NTEwX01DTEtESVZfMTsKKwkJYmNsayA9IFdNODUxMF9CQ0xLRElWXzg7CisJCWJyZWFrOworCisJY2FzZSA0NDEwMDoKKwkJcGxsX291dCA9IDExMjg5NjAwOworCQltY2xrX2RpdiA9IFdNODUxMF9NQ0xLRElWXzE7CisJCWJjbGsgPSBXTTg1MTBfQkNMS0RJVl84OworCQlicmVhazsKKworCWNhc2UgMjIwNTA6CisJCXBsbF9vdXQgPSAxMTI4OTYwMDsKKwkJbWNsa19kaXYgPSBXTTg1MTBfTUNMS0RJVl8yOworCQliY2xrID0gV004NTEwX0JDTEtESVZfODsKKwkJYnJlYWs7CisKKwljYXNlIDE2MDAwOgorCQlwbGxfb3V0ID0gMTIyODgwMDA7CisJCW1jbGtfZGl2ID0gV004NTEwX01DTEtESVZfMzsKKwkJYmNsayA9IFdNODUxMF9CQ0xLRElWXzg7CisJCWJyZWFrOworCisJY2FzZSAxMTAyNToKKwkJcGxsX291dCA9IDExMjg5NjAwOworCQltY2xrX2RpdiA9IFdNODUxMF9NQ0xLRElWXzQ7CisJCWJjbGsgPSBXTTg1MTBfQkNMS0RJVl84OworCQlicmVhazsKKworCWNhc2UgODAwMDoKKwkJcGxsX291dCA9IDEyMjg4MDAwOworCQltY2xrX2RpdiA9IFdNODUxMF9NQ0xLRElWXzY7CisJCWJjbGsgPSBXTTg1MTBfQkNMS0RJVl84OworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiBVbnN1cHBvcnRlZCBzYW1wbGUgcmF0ZSAlZFxuIiwKKwkJCSAgIHBhcmFtc19yYXRlKHBhcmFtcykpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKworCS8qCisJICogc2V0IENQVSBhbmQgQ09ERUMgREFJIGNvbmZpZ3VyYXRpb24KKwkgKi8KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwgZm10KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMDogIgorCQkJICAgIkZhaWxlZCB0byBzZXQgQ09ERUMgREFJIGZvcm1hdCAoJWQpXG4iLAorCQkJICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjcHVfZGFpLCBmbXQpOworCWlmIChyZXQgPCAwKSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiAiCisJCQkgICAiRmFpbGVkIHRvIHNldCBDUFUgREFJIGZvcm1hdCAoJWQpXG4iLAorCQkJICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKworCS8qCisJICogU2V0IENQVSBjbG9jayBjb25maWd1cmF0aW9uCisJICovCisjaWYgZGVmaW5lZCBDT05GSUdfU05EX0FUMzJfU09DX1BMQVlQQVFfU0xBVkUKKwljZCA9IHBsYXlwYXFfd204NTEwX2NhbGNfc3NjX2Nsb2NrKHBhcmFtcywgY3B1X2RhaSk7CisJcHJfZGVidWcoInBsYXlwYXFfd204NTEwOiBjbXJfZGl2ID0gJWQsIHBlcmlvZCA9ICVkXG4iLAorCQkgY2QuY21yX2RpdiwgY2QucGVyaW9kKTsKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNwdV9kYWksIEFUMzJfU1NDX0NNUl9ESVYsIGNkLmNtcl9kaXYpOworCWlmIChyZXQgPCAwKSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiBGYWlsZWQgdG8gc2V0IENQVSBDTVJfRElWICglZClcbiIsCisJCQkgICByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNwdV9kYWksIEFUMzJfU1NDX1RDTVJfUEVSSU9ELAorCQkJCQkgIGNkLnBlcmlvZCk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfd2FybmluZygicGxheXBhcV93bTg1MTA6ICIKKwkJCSAgICJGYWlsZWQgdG8gc2V0IENQVSB0cmFuc21pdCBwZXJpb2QgKCVkKVxuIiwKKwkJCSAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorI2VuZGlmIC8qIENPTkZJR19TTkRfQVQzMl9TT0NfUExBWVBBUV9TTEFWRSAqLworCisKKwkvKgorCSAqIFNldCBDT0RFQyBjbG9jayBjb25maWd1cmF0aW9uCisJICovCisJcHJfZGVidWcoInBsYXlwYXFfd204NTEwOiAiCisJCSAicGxsX2luID0gJWxkLCBwbGxfb3V0ID0gJXUsIGJjbGsgPSAleCwgbWNsayA9ICV4XG4iLAorCQkgY2xrX2dldF9yYXRlKENPREVDX0NMSyksIHBsbF9vdXQsIGJjbGssIG1jbGtfZGl2KTsKKworCisjaWYgIWRlZmluZWQgQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2Rpdihjb2RlY19kYWksIFdNODUxMF9CQ0xLRElWLCBiY2xrKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl93YXJuaW5nCisJCSAgICAoInBsYXlwYXFfd204NTEwOiBGYWlsZWQgdG8gc2V0IENPREVDIERBSSBCQ0xLRElWICglZClcbiIsCisJCSAgICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisjZW5kaWYgLyogQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFICovCisKKworCXJldCA9IHNuZF9zb2NfZGFpX3NldF9wbGwoY29kZWNfZGFpLCAwLAorCQkJCQkgY2xrX2dldF9yYXRlKENPREVDX0NMSyksIHBsbF9vdXQpOworCWlmIChyZXQgPCAwKSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiBGYWlsZWQgdG8gc2V0IENPREVDIERBSSBQTEwgKCVkKVxuIiwKKwkJCSAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNvZGVjX2RhaSwgV004NTEwX01DTEtESVYsIG1jbGtfZGl2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMDogRmFpbGVkIHRvIHNldCBDT0RFQyBNQ0xLRElWICglZClcbiIsCisJCQkgICByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgc3RydWN0IHNuZF9zb2Nfb3BzIHBsYXlwYXFfd204NTEwX29wcyA9IHsKKwkuaHdfcGFyYW1zID0gcGxheXBhcV93bTg1MTBfaHdfcGFyYW1zLAorfTsKKworCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCBwbGF5cGFxX2RhcG1fd2lkZ2V0c1tdID0geworCVNORF9TT0NfREFQTV9NSUMoIkludCBNaWMiLCBOVUxMKSwKKwlTTkRfU09DX0RBUE1fU1BLKCJFeHQgU3BrIiwgTlVMTCksCit9OworCisKKworc3RhdGljIGNvbnN0IGNoYXIgKmludGVyY29uW11bM10gPSB7CisJLyogc3BlYWtlciBjb25uZWN0ZWQgdG8gU1BLT1VUICovCisJeyJFeHQgU3BrIiwgTlVMTCwgIlNQS09VVFAifSwKKwl7IkV4dCBTcGsiLCBOVUxMLCAiU1BLT1VUTiJ9LAorCisJeyJNaWMgQmlhcyIsIE5VTEwsICJJbnQgTWljIn0sCisJeyJNSUNOIiwgTlVMTCwgIk1pYyBCaWFzIn0sCisJeyJNSUNQIiwgTlVMTCwgIk1pYyBCaWFzIn0sCisKKwkvKiBUZXJtaW5hdG9yICovCisJe05VTEwsIE5VTEwsIE5VTEx9LAorfTsKKworCisKK3N0YXRpYyBpbnQgcGxheXBhcV93bTg1MTBfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJaW50IGk7CisKKwkvKgorCSAqIEFkZCBEQVBNIHdpZGdldHMKKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwbGF5cGFxX2RhcG1fd2lkZ2V0cyk7IGkrKykKKwkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmcGxheXBhcV9kYXBtX3dpZGdldHNbaV0pOworCisKKworCS8qCisJICogU2V0dXAgYXVkaW8gcGF0aCBpbnRlcmNvbm5lY3RzCisJICovCisJZm9yIChpID0gMDsgaW50ZXJjb25baV1bMF0gIT0gTlVMTDsgaSsrKSB7CisJCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLAorCQkJCQkgICBpbnRlcmNvbltpXVswXSwKKwkJCQkJICAgaW50ZXJjb25baV1bMV0sIGludGVyY29uW2ldWzJdKTsKKwl9CisKKworCS8qIGFsd2F5cyBjb25uZWN0ZWQgcGlucyAqLworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSW50IE1pYyIpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiRXh0IFNwayIpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKKworCisKKwkvKiBNYWtlIENTQiBzaG93IFBMTCByYXRlICovCisJc25kX3NvY19kYWlfc2V0X2Nsa2Rpdihjb2RlYy0+ZGFpLCBXTTg1MTBfT1BDTEtESVYsCisJCQkJICAgICAgIFdNODUxMF9PUENMS0RJVl8xIHwgNCk7CisKKwlyZXR1cm4gMDsKK30KKworCisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayBwbGF5cGFxX3dtODUxMF9kYWkgPSB7CisJLm5hbWUgPSAiV004NTEwIiwKKwkuc3RyZWFtX25hbWUgPSAiV004NTEwIFBDTSIsCisJLmNwdV9kYWkgPSAmYXQzMl9zc2NfZGFpWzBdLAorCS5jb2RlY19kYWkgPSAmd204NTEwX2RhaSwKKwkuaW5pdCA9IHBsYXlwYXFfd204NTEwX2luaXQsCisJLm9wcyA9ICZwbGF5cGFxX3dtODUxMF9vcHMsCit9OworCisKKworc3RhdGljIHN0cnVjdCBzbmRfc29jX21hY2hpbmUgc25kX3NvY19tYWNoaW5lX3BsYXlwYXEgPSB7CisJLm5hbWUgPSAiTFJTX1BsYXlQYXFfV004NTEwIiwKKwkuZGFpX2xpbmsgPSAmcGxheXBhcV93bTg1MTBfZGFpLAorCS5udW1fbGlua3MgPSAxLAorfTsKKworCisKK3N0YXRpYyBzdHJ1Y3Qgd204NTEwX3NldHVwX2RhdGEgcGxheXBhcV93bTg1MTBfc2V0dXAgPSB7CisJLmkyY19hZGRyZXNzID0gMHgxYSwKK307CisKKworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGV2aWNlIHBsYXlwYXFfd204NTEwX3NuZF9kZXZkYXRhID0geworCS5tYWNoaW5lID0gJnNuZF9zb2NfbWFjaGluZV9wbGF5cGFxLAorCS5wbGF0Zm9ybSA9ICZhdDMyX3NvY19wbGF0Zm9ybSwKKwkuY29kZWNfZGV2ID0gJnNvY19jb2RlY19kZXZfd204NTEwLAorCS5jb2RlY19kYXRhID0gJnBsYXlwYXFfd204NTEwX3NldHVwLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXlwYXFfc25kX2RldmljZTsKKworCitzdGF0aWMgaW50IF9faW5pdCBwbGF5cGFxX2Fzb2NfaW5pdCh2b2lkKQoreworCWludCByZXQgPSAwOworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9IHBsYXlwYXFfd204NTEwX2RhaS5jcHVfZGFpLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNzY19kZXZpY2UgKnNzYyA9IE5VTEw7CisKKworCS8qCisJICogUmVxdWVzdCBTU0MgZGV2aWNlCisJICovCisJc3NjID0gc3NjX3JlcXVlc3QoMCk7CisJaWYgKElTX0VSUihzc2MpKSB7CisJCXJldCA9IFBUUl9FUlIoc3NjKTsKKwkJc3NjID0gTlVMTDsKKwkJZ290byBlcnJfc3NjOworCX0KKwlzc2NfcC0+c3NjID0gc3NjOworCisKKwkvKgorCSAqIENvbmZpZ3VyZSBNQ0xLIGZvciBXTTg1MTAKKwkgKi8KKwlfZ2NsazAgPSBjbGtfZ2V0KE5VTEwsICJnY2xrMCIpOworCWlmIChJU19FUlIoX2djbGswKSkgeworCQlfZ2NsazAgPSBOVUxMOworCQlnb3RvIGVycl9nY2xrMDsKKwl9CisJX3BsbDAgPSBjbGtfZ2V0KE5VTEwsICJwbGwwIik7CisJaWYgKElTX0VSUihfcGxsMCkpIHsKKwkJX3BsbDAgPSBOVUxMOworCQlnb3RvIGVycl9wbGwwOworCX0KKwlpZiAoY2xrX3NldF9wYXJlbnQoX2djbGswLCBfcGxsMCkpIHsKKwkJcHJfd2FybmluZygic25kLXNvYy1wbGF5cGFxOiAiCisJCQkgICAiRmFpbGVkIHRvIHNldCBQTEwwIGFzIHBhcmVudCBmb3IgREFDIGNsb2NrXG4iKTsKKwkJZ290byBlcnJfc2V0X2NsazsKKwl9CisJY2xrX3NldF9yYXRlKENPREVDX0NMSywgMTIwMDAwMDApOworCWNsa19lbmFibGUoQ09ERUNfQ0xLKTsKKworI2lmIGRlZmluZWQgQ09ORklHX0FUMzJfRU5IQU5DRURfUE9SVE1VWAorCWF0MzJfc2VsZWN0X3BlcmlwaChNQ0xLX1BJTiwgTUNMS19QRVJJUEgsIDApOworI2VuZGlmCisKKworCS8qCisJICogQ3JlYXRlIGFuZCByZWdpc3RlciBwbGF0Zm9ybSBkZXZpY2UKKwkgKi8KKwlwbGF5cGFxX3NuZF9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNvYy1hdWRpbyIsIDApOworCWlmIChwbGF5cGFxX3NuZF9kZXZpY2UgPT0gTlVMTCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVycl9kZXZpY2VfYWxsb2M7CisJfQorCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGxheXBhcV9zbmRfZGV2aWNlLCAmcGxheXBhcV93bTg1MTBfc25kX2RldmRhdGEpOworCXBsYXlwYXFfd204NTEwX3NuZF9kZXZkYXRhLmRldiA9ICZwbGF5cGFxX3NuZF9kZXZpY2UtPmRldjsKKworCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQocGxheXBhcV9zbmRfZGV2aWNlKTsKKwlpZiAocmV0KSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiBwbGF0Zm9ybV9kZXZpY2VfYWRkIGZhaWxlZCAoJWQpXG4iLAorCQkJICAgcmV0KTsKKwkJZ290byBlcnJfZGV2aWNlX2FkZDsKKwl9CisKKwlyZXR1cm4gMDsKKworCitlcnJfZGV2aWNlX2FkZDoKKwlpZiAocGxheXBhcV9zbmRfZGV2aWNlICE9IE5VTEwpIHsKKwkJcGxhdGZvcm1fZGV2aWNlX3B1dChwbGF5cGFxX3NuZF9kZXZpY2UpOworCQlwbGF5cGFxX3NuZF9kZXZpY2UgPSBOVUxMOworCX0KK2Vycl9kZXZpY2VfYWxsb2M6CitlcnJfc2V0X2NsazoKKwlpZiAoX3BsbDAgIT0gTlVMTCkgeworCQljbGtfcHV0KF9wbGwwKTsKKwkJX3BsbDAgPSBOVUxMOworCX0KK2Vycl9wbGwwOgorCWlmIChfZ2NsazAgIT0gTlVMTCkgeworCQljbGtfcHV0KF9nY2xrMCk7CisJCV9nY2xrMCA9IE5VTEw7CisJfQorZXJyX2djbGswOgorCWlmIChzc2MgIT0gTlVMTCkgeworCQlzc2NfZnJlZShzc2MpOworCQlzc2MgPSBOVUxMOworCX0KK2Vycl9zc2M6CisJcmV0dXJuIHJldDsKK30KKworCitzdGF0aWMgdm9pZCBfX2V4aXQgcGxheXBhcV9hc29jX2V4aXQodm9pZCkKK3sKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3AgPSBwbGF5cGFxX3dtODUxMF9kYWkuY3B1X2RhaS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzc2NfZGV2aWNlICpzc2M7CisKKwlpZiAoc3NjX3AgIT0gTlVMTCkgeworCQlzc2MgPSBzc2NfcC0+c3NjOworCQlpZiAoc3NjICE9IE5VTEwpCisJCQlzc2NfZnJlZShzc2MpOworCQlzc2NfcC0+c3NjID0gTlVMTDsKKwl9CisKKwlpZiAoX2djbGswICE9IE5VTEwpIHsKKwkJY2xrX3B1dChfZ2NsazApOworCQlfZ2NsazAgPSBOVUxMOworCX0KKwlpZiAoX3BsbDAgIT0gTlVMTCkgeworCQljbGtfcHV0KF9wbGwwKTsKKwkJX3BsbDAgPSBOVUxMOworCX0KKworI2lmIGRlZmluZWQgQ09ORklHX0FUMzJfRU5IQU5DRURfUE9SVE1VWAorCWF0MzJfZnJlZV9waW4oTUNMS19QSU4pOworI2VuZGlmCisKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihwbGF5cGFxX3NuZF9kZXZpY2UpOworCXBsYXlwYXFfc25kX2RldmljZSA9IE5VTEw7Cit9CisKK21vZHVsZV9pbml0KHBsYXlwYXFfYXNvY19pbml0KTsKK21vZHVsZV9leGl0KHBsYXlwYXFfYXNvY19leGl0KTsKKworTU9EVUxFX0FVVEhPUigiR2VvZmZyZXkgV29zc3VtIDxnd29zc3VtQGFjbS5vcmc+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkFTb0MgbWFjaGluZSBkcml2ZXIgZm9yIExSUyBQbGF5UGFxIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQ5MS9LY29uZmlnIGIvc291bmQvc29jL2F0OTEvS2NvbmZpZwppbmRleCA1Y2I5M2ZkLi45MDUxODY1IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXQ5MS9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9hdDkxL0tjb25maWcKQEAgLTEsNiArMSw2IEBACiBjb25maWcgU05EX0FUOTFfU09DCiAJdHJpc3RhdGUgIlNvQyBBdWRpbyBmb3IgdGhlIEF0bWVsIEFUOTEgU3lzdGVtLW9uLUNoaXAiCi0JZGVwZW5kcyBvbiBBUkNIX0FUOTEgJiYgU05EX1NPQworCWRlcGVuZHMgb24gQVJDSF9BVDkxCiAJaGVscAogCSAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgY29kZWNzIGF0dGFjaGVkIHRvCiAJICB0aGUgQVQ5MSBTU0MgaW50ZXJmYWNlLiBZb3Ugd2lsbCBhbHNvIG5lZWQKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDkxL2F0OTEtcGNtLmMgYi9zb3VuZC9zb2MvYXQ5MS9hdDkxLXBjbS5jCmluZGV4IGNjYWM2YmQuLmQ0NzQ5MmIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9hdDkxL2F0OTEtcGNtLmMKKysrIGIvc291bmQvc29jL2F0OTEvYXQ5MS1wY20uYwpAQCAtMzE4LDcgKzMxOCw3IEBACiBzdGF0aWMgdTY0IGF0OTFfcGNtX2RtYW1hc2sgPSAweGZmZmZmZmZmOwogCiBzdGF0aWMgaW50IGF0OTFfcGNtX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsCi0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksIHN0cnVjdCBzbmRfcGNtICpwY20pCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIHN0cnVjdCBzbmRfcGNtICpwY20pCiB7CiAJaW50IHJldCA9IDA7CiAKQEAgLTM2Nyw3ICszNjcsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BNCiBzdGF0aWMgaW50IGF0OTFfcGNtX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IGRhaS0+cnVudGltZTsKIAlzdHJ1Y3QgYXQ5MV9ydW50aW1lX2RhdGEgKnBydGQ7CkBAIC0zOTIsNyArMzkyLDcgQEAKIH0KIAogc3RhdGljIGludCBhdDkxX3BjbV9yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IGRhaS0+cnVudGltZTsKIAlzdHJ1Y3QgYXQ5MV9ydW50aW1lX2RhdGEgKnBydGQ7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQ5MS9hdDkxLXNzYy5jIGIvc291bmQvc29jL2F0OTEvYXQ5MS1zc2MuYwppbmRleCBiYzM1ZDAwLi4wOTBlNjA3IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXQ5MS9hdDkxLXNzYy5jCisrKyBiL3NvdW5kL3NvYy9hdDkxL2F0OTEtc3NjLmMKQEAgLTQxLDcgKzQxLDcgQEAKICNkZWZpbmUJREJHKHguLi4pCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjApCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOUcyMCkKICNkZWZpbmUgTlVNX1NTQ19ERVZJQ0VTCQkxCiAjZWxzZQogI2RlZmluZSBOVU1fU1NDX0RFVklDRVMJCTMKQEAgLTI4MSw3ICsyODEsNyBAQAogLyoKICAqIFJlY29yZCB0aGUgU1NDIHN5c3RlbSBjbG9jayByYXRlLgogICovCi1zdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJLyoKQEAgLTMwMyw3ICszMDMsNyBAQAogLyoKICAqIFJlY29yZCB0aGUgREFJIGZvcm1hdCBmb3IgdXNlIGluIGh3X3BhcmFtcygpLgogICovCi1zdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3QgYXQ5MV9zc2NfaW5mbyAqc3NjX3AgPSAmc3NjX2luZm9bY3B1X2RhaS0+aWRdOwpAQCAtMzE1LDcgKzMxNSw3IEBACiAvKgogICogUmVjb3JkIFNTQyBjbG9jayBkaXZpZGVycyBmb3IgdXNlIGluIGh3X3BhcmFtcygpLgogICovCi1zdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAlpbnQgZGl2X2lkLCBpbnQgZGl2KQogewogCXN0cnVjdCBhdDkxX3NzY19pbmZvICpzc2NfcCA9ICZzc2NfaW5mb1tjcHVfZGFpLT5pZF07CkBAIC02MzQsNyArNjM0LDcgQEAKIAogI2lmZGVmIENPTkZJR19QTQogc3RhdGljIGludCBhdDkxX3NzY19zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSkKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCiB7CiAJc3RydWN0IGF0OTFfc3NjX2luZm8gKnNzY19wOwogCkBAIC02NjIsNyArNjYyLDcgQEAKIH0KIAogc3RhdGljIGludCBhdDkxX3NzY19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKQorCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKIHsKIAlzdHJ1Y3QgYXQ5MV9zc2NfaW5mbyAqc3NjX3A7CiAKQEAgLTcwMCw3ICs3MDAsNyBAQAogI2RlZmluZSBBVDkxX1NTQ19GT1JNQVRTIChTTkRSVl9QQ01fRk1UQklUX1M4ICAgICB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHxcCiAJCQkgIFNORFJWX1BDTV9GTVRCSVRfUzI0X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMzJfTEUpCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgYXQ5MV9zc2NfZGFpW05VTV9TU0NfREVWSUNFU10gPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgYXQ5MV9zc2NfZGFpW05VTV9TU0NfREVWSUNFU10gPSB7CiAJewkubmFtZSA9ICJhdDkxLXNzYzAiLAogCQkuaWQgPSAwLAogCQkudHlwZSA9IFNORF9TT0NfREFJX1BDTSwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDkxL2F0OTEtc3NjLmggYi9zb3VuZC9zb2MvYXQ5MS9hdDkxLXNzYy5oCmluZGV4IGIxODhmOTcuLjZiN2JmMzggMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9hdDkxL2F0OTEtc3NjLmgKKysrIGIvc291bmQvc29jL2F0OTEvYXQ5MS1zc2MuaApAQCAtMjEsNyArMjEsNyBAQAogI2RlZmluZSBBVDkxU1NDX1RDTVJfUEVSSU9ECTEgLyogQkNMSyBkaXZpZGVyIGZvciB0cmFuc21pdCBGUyAqLwogI2RlZmluZSBBVDkxU1NDX1JDTVJfUEVSSU9ECTIgLyogQkNMSyBkaXZpZGVyIGZvciByZWNlaXZlIEZTICovCiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIGF0OTFfc3NjX2RhaVtdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhdDkxX3NzY19kYWlbXTsKIAogI2VuZGlmIC8qIF9BVDkxX1NTQ19IICovCiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDkxL2V0aV9iMV93bTg3MzEuYyBiL3NvdW5kL3NvYy9hdDkxL2V0aV9iMV93bTg3MzEuYwppbmRleCAxMzQ3ZGNmLi5kNTMyZGU5IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXQ5MS9ldGlfYjFfd204NzMxLmMKKysrIGIvc291bmQvc29jL2F0OTEvZXRpX2IxX3dtODczMS5jCkBAIC01MywxOCArNTMsMTggQEAKIHN0YXRpYyBpbnQgZXRpX2IxX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCWludCByZXQ7CiAKIAkvKiBjcHUgY2xvY2sgaXMgdGhlIEFUOTEgbWFzdGVyIGNsb2NrIHNlbnQgdG8gdGhlIFNTQyAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X3N5c2NsayhjcHVfZGFpLCBBVDkxX1NZU0NMS19NQ0ssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2NsayhjcHVfZGFpLCBBVDkxX1NZU0NMS19NQ0ssCiAJCTYwMDAwMDAwLCBTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIGNvZGVjIHN5c3RlbSBjbG9jayBpcyBzdXBwbGllZCBieSBQQ0sxLCBzZXQgdG8gMTJNSHogKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODczMV9TWVNDTEssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODczMV9TWVNDTEssCiAJCTEyMDAwMDAwLCBTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTg3LDggKzg3LDggQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJaW50IHJldDsKIAogI2lmZGVmIENPTkZJR19TTkRfQVQ5MV9TT0NfRVRJX1NMQVZFCkBAIC05NiwxMyArOTYsMTMgQEAKIAlpbnQgY21yX2RpdiwgcGVyaW9kOwogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTE0MSwxNyArMTQxLDE3IEBACiAJfQogCiAJLyogc2V0IHRoZSBNQ0sgZGl2aWRlciBmb3IgQkNMSyAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2Nsa2RpdihjcHVfZGFpLCBBVDkxU1NDX0NNUl9ESVYsIGNtcl9kaXYpOworCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY3B1X2RhaSwgQVQ5MVNTQ19DTVJfRElWLCBjbXJfZGl2KTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKSB7CiAJCS8qIHNldCB0aGUgQkNMSyBkaXZpZGVyIGZvciBEQUNMUkMgKi8KLQkJcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfY2xrZGl2KGNwdV9kYWksCisJCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY3B1X2RhaSwKIAkJCQkJCUFUOTFTU0NfVENNUl9QRVJJT0QsIHBlcmlvZCk7CiAJfSBlbHNlIHsKIAkJLyogc2V0IHRoZSBCQ0xLIGRpdmlkZXIgZm9yIEFEQ0xSQyAqLwotCQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYoY3B1X2RhaSwKKwkJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2RpdihjcHVfZGFpLAogCQkJCQkJQVQ5MVNTQ19SQ01SX1BFUklPRCwgcGVyaW9kKTsKIAl9CiAJaWYgKHJldCA8IDApCkBAIC0xNjMsMTMgKzE2MywxMyBAQAogCSAqLwogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCTV9DRk0pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTE5MSw3ICsxOTEsNyBAQAogCVNORF9TT0NfREFQTV9TUEsoIkV4dCBTcGsiLCBOVUxMKSwKIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICppbnRlcmNvbltdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgaW50ZXJjb25bXSA9IHsKIAogCS8qIHNwZWFrZXIgY29ubmVjdGVkIHRvIExIUE9VVCAqLwogCXsiRXh0IFNwayIsIE5VTEwsICJMSFBPVVQifSwKQEAgLTE5OSw5ICsxOTksNiBAQAogCS8qIG1pYyBpcyBjb25uZWN0ZWQgdG8gTWljIEphY2ssIHdpdGggV004NzMxIE1pYyBCaWFzICovCiAJeyJNSUNJTiIsIE5VTEwsICJNaWMgQmlhcyJ9LAogCXsiTWljIEJpYXMiLCBOVUxMLCAiSW50IE1pYyJ9LAotCi0JLyogdGVybWluYXRvciAqLwotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIC8qCkBAIC0yMDksMzAgKzIwNiwyNCBAQAogICovCiBzdGF0aWMgaW50IGV0aV9iMV93bTg3MzFfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7Ci0KIAlEQkcoImV0aV9iMV93bTg3MzFfaW5pdCgpIGNhbGxlZFxuIik7CiAKIAkvKiBBZGQgc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvcihpID0gMDsgaSA8IEFSUkFZX1NJWkUoZXRpX2IxX2RhcG1fd2lkZ2V0cyk7IGkrKykgewotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZldGlfYjFfZGFwbV93aWRnZXRzW2ldKTsKLQl9CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgZXRpX2IxX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUoZXRpX2IxX2RhcG1fd2lkZ2V0cykpOwogCiAJLyogU2V0IHVwIHNwZWNpZmljIGF1ZGlvIHBhdGggaW50ZXJjb25uZWN0cyAqLwotCWZvcihpID0gMDsgaW50ZXJjb25baV1bMF0gIT0gTlVMTDsgaSsrKSB7Ci0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBpbnRlcmNvbltpXVswXSwKLQkJCWludGVyY29uW2ldWzFdLCBpbnRlcmNvbltpXVsyXSk7Ci0JfQorCXNuZF9zb2NfZGFwbV9hZGRfcm91dGUoY29kZWMsIGludGVyY29uLCBBUlJBWV9TSVpFKGludGVyY29uKSk7CiAKIAkvKiBub3QgY29ubmVjdGVkICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIlJMSU5FSU4iLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTExJTkVJTiIsIDApOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlJMSU5FSU4iKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMTElORUlOIik7CiAKIAkvKiBhbHdheXMgY29ubmVjdGVkICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkludCBNaWMiLCAxKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiRXh0IFNwayIsIDEpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSW50IE1pYyIpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiRXh0IFNwayIpOwogCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L0tjb25maWcgYi9zb3VuZC9zb2MvYXUxeC9LY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMGE4OTMKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9LY29uZmlnCkBAIC0wLDAgKzEsMzIgQEAKKyMjCisjIyBBdTEyMDAvQXUxNTUwIFBTQyArIERCRE1BCisjIworY29uZmlnIFNORF9TT0NfQVUxWFBTQworCXRyaXN0YXRlICJTb0MgQXVkaW8gZm9yIEF1MTIwMC9BdTEyNTAvQXUxNTUwIgorCWRlcGVuZHMgb24gU09DX0FVMTIwMCB8fCBTT0NfQVUxNTUwCisJaGVscAorCSAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgUHJvZ3JhbW1hYmxlIFNlcmlhbAorCSAgQ29udHJvbGxlcnMgaW4gQUM5NyBhbmQgSTJTIG1vZGUsIGFuZCB0aGUgRGVzY3JpcHRvci1CYXNlZCBETUEKKwkgIENvbnRyb2xsZXIgKERCRE1BKSBhcyBmb3VuZCBvbiB0aGUgQXUxMjAwL0F1MTI1MC9BdTE1NTAgU29DLgorCitjb25maWcgU05EX1NPQ19BVTFYUFNDX0kyUworCXRyaXN0YXRlCisKK2NvbmZpZyBTTkRfU09DX0FVMVhQU0NfQUM5NworCXRyaXN0YXRlCisJc2VsZWN0IEFDOTdfQlVTCisJc2VsZWN0IFNORF9BQzk3X0NPREVDCisJc2VsZWN0IFNORF9TT0NfQUM5N19CVVMKKworCisjIworIyMgQm9hcmRzCisjIworY29uZmlnIFNORF9TT0NfU0FNUExFX1BTQ19BQzk3CisJdHJpc3RhdGUgIlNhbXBsZSBBdTEyeDAvQXUxNTUwIFBTQyBBQzk3IHNvdW5kIG1hY2hpbmUiCisJZGVwZW5kcyBvbiBTTkRfU09DX0FVMVhQU0MKKwlzZWxlY3QgU05EX1NPQ19BVTFYUFNDX0FDOTcKKwlzZWxlY3QgU05EX1NPQ19BQzk3X0NPREVDCisJaGVscAorCSAgVGhpcyBpcyBhIHNhbXBsZSBBQzk3IHNvdW5kIG1hY2hpbmUgZm9yIHVzZSBpbiBBdTEyeDAvQXUxNTUwCisJICBiYXNlZCBzeXN0ZW1zIHdoaWNoIGhhdmUgYXVkaW8gb24gUFNDMSAoZS5nLiBEYjEyMDAgZGVtb2JvYXJkKS4KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L01ha2VmaWxlIGIvc291bmQvc29jL2F1MXgvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM2OTUwYgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdTF4L01ha2VmaWxlCkBAIC0wLDAgKzEsMTMgQEAKKyMgQXUxMjAwL0F1MTU1MCBQU0MgYXVkaW8KK3NuZC1zb2MtYXUxeHBzYy1kYmRtYS1vYmpzIDo9IGRiZG1hMi5vCitzbmQtc29jLWF1MXhwc2MtaTJzLW9ianMgOj0gcHNjLWkycy5vCitzbmQtc29jLWF1MXhwc2MtYWM5Ny1vYmpzIDo9IHBzYy1hYzk3Lm8KKworb2JqLSQoQ09ORklHX1NORF9TT0NfQVUxWFBTQykgKz0gc25kLXNvYy1hdTF4cHNjLWRiZG1hLm8KK29iai0kKENPTkZJR19TTkRfU09DX0FVMVhQU0NfSTJTKSArPSBzbmQtc29jLWF1MXhwc2MtaTJzLm8KK29iai0kKENPTkZJR19TTkRfU09DX0FVMVhQU0NfQUM5NykgKz0gc25kLXNvYy1hdTF4cHNjLWFjOTcubworCisjIEJvYXJkcworc25kLXNvYy1zYW1wbGUtYWM5Ny1vYmpzIDo9IHNhbXBsZS1hYzk3Lm8KKworb2JqLSQoQ09ORklHX1NORF9TT0NfU0FNUExFX1BTQ19BQzk3KSArPSBzbmQtc29jLXNhbXBsZS1hYzk3Lm8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L2RiZG1hMi5jIGIvc291bmQvc29jL2F1MXgvZGJkbWEyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ2NmQ5MwotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdTF4L2RiZG1hMi5jCkBAIC0wLDAgKzEsNDIxIEBACisvKgorICogQXUxMngwL0F1MTU1MCBQU0MgQUxTQSBBU29DIGF1ZGlvIHN1cHBvcnQuCisgKgorICogKGMpIDIwMDctMjAwOCBNU0MgVmVydHJpZWJzZ2VzLm0uYi5ILiwKKyAqCU1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIERNQSBnbHVlIGZvciBBdTF4LVBTQyBhdWRpby4KKyAqCisgKiBOT1RFOiBhbGwgb2YgdGhlc2UgZHJpdmVycyBjYW4gb25seSB3b3JrIHdpdGggYSBTSU5HTEUgaW5zdGFuY2UKKyAqCSBvZiBhIFBTQy4gTXVsdGlwbGUgaW5kZXBlbmRlbnQgYXVkaW8gZGV2aWNlcyBhcmUgaW1wb3NzaWJsZQorICoJIHdpdGggQVNvQyB2MS4KKyAqLworCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisKKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MTAwMC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLWF1MXgwMC9hdTF4eHhfZGJkbWEuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1hdTF4MDAvYXUxeHh4X3BzYy5oPgorCisjaW5jbHVkZSAicHNjLmgiCisKKy8qI2RlZmluZSBQQ01fREVCVUcqLworCisjZGVmaW5lIE1TRyh4Li4uKQlwcmludGsoS0VSTl9JTkZPICJhdTF4cHNjX3BjbTogIiB4KQorI2lmZGVmIFBDTV9ERUJVRworI2RlZmluZSBEQkcJCU1TRworI2Vsc2UKKyNkZWZpbmUgREJHKHguLi4pCWRvIHt9IHdoaWxlICgwKQorI2VuZGlmCisKK3N0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEgeworCS8qIERETUEgY29udHJvbCBkYXRhICovCisJdW5zaWduZWQgaW50IGRkbWFfaWQ7CQkvKiBERE1BIGRpcmVjdGlvbiBJRCBmb3IgdGhpcyBQU0MgKi8KKwl1MzIgZGRtYV9jaGFuOwkJCS8qIERETUEgY29udGV4dCAqLworCisJLyogUENNIGNvbnRleHQgKGZvciBpcnEgaGFuZGxlcnMpICovCisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW07CisJdW5zaWduZWQgbG9uZyBjdXJyX3BlcmlvZDsJLyogY3VycmVudCBzZWdtZW50IERETUEgaXMgd29ya2luZyBvbiAqLworCXVuc2lnbmVkIGxvbmcgcV9wZXJpb2Q7CQkvKiBxdWV1ZSBwZXJpb2QocykgKi8KKwl1bnNpZ25lZCBsb25nIGRtYV9hcmVhOwkJLyogYWRkcmVzcyBvZiBxdWV1ZWQgRE1BIGFyZWEgKi8KKwl1bnNpZ25lZCBsb25nIGRtYV9hcmVhX3M7CS8qIHN0YXJ0IGFkZHJlc3Mgb2YgRE1BIGFyZWEgKi8KKwl1bnNpZ25lZCBsb25nIHBvczsJCS8qIGN1cnJlbnQgYnl0ZSBwb3NpdGlvbiBiZWluZyBwbGF5ZWQgKi8KKwl1bnNpZ25lZCBsb25nIHBlcmlvZHM7CQkvKiBudW1iZXIgb2YgU0cgc2VnbWVudHMgaW4gdG90YWwgKi8KKwl1bnNpZ25lZCBsb25nIHBlcmlvZF9ieXRlczsJLyogc2l6ZSBpbiBieXRlcyBvZiBvbmUgU0cgc2VnbWVudCAqLworCisJLyogcnVudGltZSBkYXRhICovCisJaW50IG1zYml0czsKK307CisKKy8qIGluc3RhbmNlIGRhdGEuIFRoZXJlIGNhbiBiZSBvbmx5IG9uZSwgTWFjTGVvZCEhISEgKi8KK3N0YXRpYyBzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhICphdTF4cHNjX2F1ZGlvX3BjbWRtYVsyXTsKKworLyoKKyAqIFRoZXNlIHNldHRpbmdzIGFyZSBzb21ld2hhdCBva2F5LCBhdCBsZWFzdCBvbiBteSBtYWNoaW5lIGF1ZGlvIHBsYXlzCisgKiBhbG1vc3Qgc2tpcC1mcmVlLiBFc3BlY2lhbGx5IHRoZSA2NGtCIGJ1ZmZlciBzZWVtcyB0byBoZWxwIGEgTE9ULgorICovCisjZGVmaW5lIEFVMVhQU0NfUEVSSU9EX01JTl9CWVRFUwkxMDI0CisjZGVmaW5lIEFVMVhQU0NfQlVGRkVSX01JTl9CWVRFUwk2NTUzNgorCisjZGVmaW5lIEFVMVhQU0NfUENNX0ZNVFMJCQkJCVwKKwkoU05EUlZfUENNX0ZNVEJJVF9TOCAgICAgfCBTTkRSVl9QQ01fRk1UQklUX1U4IHwJXAorCSBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFIHwJXAorCSBTTkRSVl9QQ01fRk1UQklUX1UxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfVTE2X0JFIHwJXAorCSBTTkRSVl9QQ01fRk1UQklUX1MzMl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzMyX0JFIHwJXAorCSBTTkRSVl9QQ01fRk1UQklUX1UzMl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfVTMyX0JFIHwJXAorCSAwKQorCisvKiBQQ00gaGFyZHdhcmUgRE1BIGNhcGFiaWxpdGllcyAtIHBsYXRmb3JtIHNwZWNpZmljICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgYXUxeHBzY19wY21faGFyZHdhcmUgPSB7CisJLmluZm8JCSAgPSBTTkRSVl9QQ01fSU5GT19NTUFQIHwgU05EUlZfUENNX0lORk9fTU1BUF9WQUxJRCB8CisJCQkgICAgU05EUlZfUENNX0lORk9fSU5URVJMRUFWRUQsCisJLmZvcm1hdHMJICA9IEFVMVhQU0NfUENNX0ZNVFMsCisJLnBlcmlvZF9ieXRlc19taW4gPSBBVTFYUFNDX1BFUklPRF9NSU5fQllURVMsCisJLnBlcmlvZF9ieXRlc19tYXggPSA0MDk2ICogMTAyNCAtIDEsCisJLnBlcmlvZHNfbWluCSAgPSAyLAorCS5wZXJpb2RzX21heAkgID0gNDA5NiwJLyogMiB0byBhcy1tdWNoLWFzLXlvdS1saWtlICovCisJLmJ1ZmZlcl9ieXRlc19tYXggPSA0MDk2ICogMTAyNCAtIDEsCisJLmZpZm9fc2l6ZQkgID0gMTYsCQkvKiBmaWZvIGVudHJpZXMgb2YgQUM5Ny9JMlMgUFNDICovCit9OworCitzdGF0aWMgdm9pZCBhdTF4X3BjbV9xdWV1ZV90eChzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhICpjZCkKK3sKKwlhdTF4eHhfZGJkbWFfcHV0X3NvdXJjZV9mbGFncyhjZC0+ZGRtYV9jaGFuLAorCQkJCSh2b2lkICopcGh5c190b192aXJ0KGNkLT5kbWFfYXJlYSksCisJCQkJY2QtPnBlcmlvZF9ieXRlcywgRERNQV9GTEFHU19JRSk7CisKKwkvKiB1cGRhdGUgbmV4dC10by1xdWV1ZSBwZXJpb2QgKi8KKwkrK2NkLT5xX3BlcmlvZDsKKwljZC0+ZG1hX2FyZWEgKz0gY2QtPnBlcmlvZF9ieXRlczsKKwlpZiAoY2QtPnFfcGVyaW9kID49IGNkLT5wZXJpb2RzKSB7CisJCWNkLT5xX3BlcmlvZCA9IDA7CisJCWNkLT5kbWFfYXJlYSA9IGNkLT5kbWFfYXJlYV9zOworCX0KK30KKworc3RhdGljIHZvaWQgYXUxeF9wY21fcXVldWVfcngoc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqY2QpCit7CisJYXUxeHh4X2RiZG1hX3B1dF9kZXN0X2ZsYWdzKGNkLT5kZG1hX2NoYW4sCisJCQkJKHZvaWQgKilwaHlzX3RvX3ZpcnQoY2QtPmRtYV9hcmVhKSwKKwkJCQljZC0+cGVyaW9kX2J5dGVzLCBERE1BX0ZMQUdTX0lFKTsKKworCS8qIHVwZGF0ZSBuZXh0LXRvLXF1ZXVlIHBlcmlvZCAqLworCSsrY2QtPnFfcGVyaW9kOworCWNkLT5kbWFfYXJlYSArPSBjZC0+cGVyaW9kX2J5dGVzOworCWlmIChjZC0+cV9wZXJpb2QgPj0gY2QtPnBlcmlvZHMpIHsKKwkJY2QtPnFfcGVyaW9kID0gMDsKKwkJY2QtPmRtYV9hcmVhID0gY2QtPmRtYV9hcmVhX3M7CisJfQorfQorCitzdGF0aWMgdm9pZCBhdTF4X3BjbV9kbWF0eF9jYihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqY2QgPSBkZXZfaWQ7CisKKwljZC0+cG9zICs9IGNkLT5wZXJpb2RfYnl0ZXM7CisJaWYgKCsrY2QtPmN1cnJfcGVyaW9kID49IGNkLT5wZXJpb2RzKSB7CisJCWNkLT5wb3MgPSAwOworCQljZC0+Y3Vycl9wZXJpb2QgPSAwOworCX0KKwlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGNkLT5zdWJzdHJlYW0pOworCWF1MXhfcGNtX3F1ZXVlX3R4KGNkKTsKK30KKworc3RhdGljIHZvaWQgYXUxeF9wY21fZG1hcnhfY2IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEgKmNkID0gZGV2X2lkOworCisJY2QtPnBvcyArPSBjZC0+cGVyaW9kX2J5dGVzOworCWlmICgrK2NkLT5jdXJyX3BlcmlvZCA+PSBjZC0+cGVyaW9kcykgeworCQljZC0+cG9zID0gMDsKKwkJY2QtPmN1cnJfcGVyaW9kID0gMDsKKwl9CisJc25kX3BjbV9wZXJpb2RfZWxhcHNlZChjZC0+c3Vic3RyZWFtKTsKKwlhdTF4X3BjbV9xdWV1ZV9yeChjZCk7Cit9CisKK3N0YXRpYyB2b2lkIGF1MXhfcGNtX2RiZG1hX2ZyZWUoc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqcGNkKQoreworCWlmIChwY2QtPmRkbWFfY2hhbikgeworCQlhdTF4eHhfZGJkbWFfc3RvcChwY2QtPmRkbWFfY2hhbik7CisJCWF1MXh4eF9kYmRtYV9yZXNldChwY2QtPmRkbWFfY2hhbik7CisJCWF1MXh4eF9kYmRtYV9jaGFuX2ZyZWUocGNkLT5kZG1hX2NoYW4pOworCQlwY2QtPmRkbWFfY2hhbiA9IDA7CisJCXBjZC0+bXNiaXRzID0gMDsKKwl9Cit9CisKKy8qIGluIGNhc2Ugb2YgbWlzc2luZyBETUEgcmluZyBvciBjaGFuZ2VkIFRYLXNvdXJjZSAvIFJYLWRlc3QgYml0IHdpZHRocywKKyAqIGFsbG9jYXRlIChvciByZWFsbG9jYXRlKSBhIDItZGVzY3JpcHRvciBETUEgcmluZyB3aXRoIGJpdCBkZXB0aCBhY2NvcmRpbmcKKyAqIHRvIEFMU0Etc3VwcGxpZWQgc2FtcGxlIGRlcHRoLiAgVGhpcyBpcyBkdWUgdG8gbGltaXRhdGlvbnMgaW4gdGhlIGRiZG1hIGFwaQorICogKGNhbm5vdCBhZGp1c3Qgc291cmNlL2Rlc3Qgd2lkdGhzIG9mIGFscmVhZHkgYWxsb2NhdGVkIGRlc2NyaXB0b3IgcmluZykuCisgKi8KK3N0YXRpYyBpbnQgYXUxeF9wY21fZGJkbWFfcmVhbGxvYyhzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhICpwY2QsCisJCQkJIGludCBzdHlwZSwgaW50IG1zYml0cykKK3sKKwkvKiBETUEgb25seSBpbiA4LzE2LzMyIGJpdCB3aWR0aHMgKi8KKwlpZiAobXNiaXRzID09IDI0KQorCQltc2JpdHMgPSAzMjsKKworCS8qIGNoZWNrIGN1cnJlbnQgY29uZmlnOiBjb3JyZWN0IGJpdHMgYW5kIGRlc2NyaXB0b3JzIGFsbG9jYXRlZD8gKi8KKwlpZiAoKHBjZC0+ZGRtYV9jaGFuKSAmJiAobXNiaXRzID09IHBjZC0+bXNiaXRzKSkKKwkJZ290byBvdXQ7CS8qIGFsbCBvayEgKi8KKworCWF1MXhfcGNtX2RiZG1hX2ZyZWUocGNkKTsKKworCWlmIChzdHlwZSA9PSBQQ01fUlgpCisJCXBjZC0+ZGRtYV9jaGFuID0gYXUxeHh4X2RiZG1hX2NoYW5fYWxsb2MocGNkLT5kZG1hX2lkLAorCQkJCQlEU0NSX0NNRDBfQUxXQVlTLAorCQkJCQlhdTF4X3BjbV9kbWFyeF9jYiwgKHZvaWQgKilwY2QpOworCWVsc2UKKwkJcGNkLT5kZG1hX2NoYW4gPSBhdTF4eHhfZGJkbWFfY2hhbl9hbGxvYyhEU0NSX0NNRDBfQUxXQVlTLAorCQkJCQlwY2QtPmRkbWFfaWQsCisJCQkJCWF1MXhfcGNtX2RtYXR4X2NiLCAodm9pZCAqKXBjZCk7CisKKwlpZiAoIXBjZC0+ZGRtYV9jaGFuKQorCQlyZXR1cm4gLUVOT01FTTs7CisKKwlhdTF4eHhfZGJkbWFfc2V0X2RldndpZHRoKHBjZC0+ZGRtYV9jaGFuLCBtc2JpdHMpOworCWF1MXh4eF9kYmRtYV9yaW5nX2FsbG9jKHBjZC0+ZGRtYV9jaGFuLCAyKTsKKworCXBjZC0+bXNiaXRzID0gbXNiaXRzOworCisJYXUxeHh4X2RiZG1hX3N0b3AocGNkLT5kZG1hX2NoYW4pOworCWF1MXh4eF9kYmRtYV9yZXNldChwY2QtPmRkbWFfY2hhbik7CisKK291dDoKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqcGNkOworCWludCBzdHlwZSwgcmV0OworCisJcmV0ID0gc25kX3BjbV9saWJfbWFsbG9jX3BhZ2VzKHN1YnN0cmVhbSwgcGFyYW1zX2J1ZmZlcl9ieXRlcyhwYXJhbXMpKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXQ7CisKKwlzdHlwZSA9IFNVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSk7CisJcGNkID0gYXUxeHBzY19hdWRpb19wY21kbWFbc3R5cGVdOworCisJREJHKCJydW50aW1lLT5kbWFfYXJlYSA9IDB4JTA4bHggZG1hX2FkZHJfdCA9IDB4JTA4bHggZG1hX3NpemUgPSAlZCAiCisJICAgICJydW50aW1lLT5taW5fYWxpZ24gJWRcbiIsCisJCSh1bnNpZ25lZCBsb25nKXJ1bnRpbWUtPmRtYV9hcmVhLAorCQkodW5zaWduZWQgbG9uZylydW50aW1lLT5kbWFfYWRkciwgcnVudGltZS0+ZG1hX2J5dGVzLAorCQlydW50aW1lLT5taW5fYWxpZ24pOworCisJREJHKCJiaXRzICVkICBmcmFncyAlZCAgZnJhZ19ieXRlcyAlZCAgaXNfcnggJWRcbiIsIHBhcmFtcy0+bXNiaXRzLAorCQlwYXJhbXNfcGVyaW9kcyhwYXJhbXMpLCBwYXJhbXNfcGVyaW9kX2J5dGVzKHBhcmFtcyksIHN0eXBlKTsKKworCXJldCA9IGF1MXhfcGNtX2RiZG1hX3JlYWxsb2MocGNkLCBzdHlwZSwgcGFyYW1zLT5tc2JpdHMpOworCWlmIChyZXQpIHsKKwkJTVNHKCJERE1BIGNoYW5uZWwgKHJlKWFsbG9jIGZhaWxlZCFcbiIpOworCQlnb3RvIG91dDsKKwl9CisKKwlwY2QtPnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKwlwY2QtPnBlcmlvZF9ieXRlcyA9IHBhcmFtc19wZXJpb2RfYnl0ZXMocGFyYW1zKTsKKwlwY2QtPnBlcmlvZHMgPSBwYXJhbXNfcGVyaW9kcyhwYXJhbXMpOworCXBjZC0+ZG1hX2FyZWFfcyA9IHBjZC0+ZG1hX2FyZWEgPSAodW5zaWduZWQgbG9uZylydW50aW1lLT5kbWFfYWRkcjsKKwlwY2QtPnFfcGVyaW9kID0gMDsKKwlwY2QtPmN1cnJfcGVyaW9kID0gMDsKKwlwY2QtPnBvcyA9IDA7CisKKwlyZXQgPSAwOworb3V0OgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19wY21faHdfZnJlZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzbmRfcGNtX2xpYl9mcmVlX3BhZ2VzKHN1YnN0cmVhbSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19wY21fcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhICpwY2QgPQorCQkJYXUxeHBzY19hdWRpb19wY21kbWFbU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKV07CisKKwlhdTF4eHhfZGJkbWFfcmVzZXQocGNkLT5kZG1hX2NoYW4pOworCisJaWYgKFNVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSkgPT0gUENNX1JYKSB7CisJCWF1MXhfcGNtX3F1ZXVlX3J4KHBjZCk7CisJCWF1MXhfcGNtX3F1ZXVlX3J4KHBjZCk7CisJfSBlbHNlIHsKKwkJYXUxeF9wY21fcXVldWVfdHgocGNkKTsKKwkJYXUxeF9wY21fcXVldWVfdHgocGNkKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX3BjbV90cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgY21kKQoreworCXUzMiBjID0gYXUxeHBzY19hdWRpb19wY21kbWFbU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKV0tPmRkbWFfY2hhbjsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToKKwkJYXUxeHh4X2RiZG1hX3N0YXJ0KGMpOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVVNQRU5EOgorCQlhdTF4eHhfZGJkbWFfc3RvcChjKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgc25kX3BjbV91ZnJhbWVzX3QKK2F1MXhwc2NfcGNtX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsCisJCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1NVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSldLT5wb3MpOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc25kX3NvY19zZXRfcnVudGltZV9od3BhcmFtcyhzdWJzdHJlYW0sICZhdTF4cHNjX3BjbV9oYXJkd2FyZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19wY21fY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJYXUxeF9wY21fZGJkbWFfZnJlZShhdTF4cHNjX2F1ZGlvX3BjbWRtYVtTVUJTVFJFQU1fVFlQRShzdWJzdHJlYW0pXSk7CisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfcGNtX29wcyBhdTF4cHNjX3BjbV9vcHMgPSB7CisJLm9wZW4JCT0gYXUxeHBzY19wY21fb3BlbiwKKwkuY2xvc2UJCT0gYXUxeHBzY19wY21fY2xvc2UsCisJLmlvY3RsCQk9IHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMJPSBhdTF4cHNjX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUJPSBhdTF4cHNjX3BjbV9od19mcmVlLAorCS5wcmVwYXJlCT0gYXUxeHBzY19wY21fcHJlcGFyZSwKKwkudHJpZ2dlcgk9IGF1MXhwc2NfcGNtX3RyaWdnZXIsCisJLnBvaW50ZXIJPSBhdTF4cHNjX3BjbV9wb2ludGVyLAorfTsKKworc3RhdGljIHZvaWQgYXUxeHBzY19wY21fZnJlZV9kbWFfYnVmZmVycyhzdHJ1Y3Qgc25kX3BjbSAqcGNtKQoreworCXNuZF9wY21fbGliX3ByZWFsbG9jYXRlX2ZyZWVfZm9yX2FsbChwY20pOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsCisJCQkgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKKwkJCSAgIHN0cnVjdCBzbmRfcGNtICpwY20pCit7CisJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChwY20sIFNORFJWX0RNQV9UWVBFX0RFViwKKwkJY2FyZC0+ZGV2LCBBVTFYUFNDX0JVRkZFUl9NSU5fQllURVMsICg0MDk2ICogMTAyNCkgLSAxKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHJlc291cmNlICpyOworCWludCByZXQ7CisKKwlpZiAoYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1RYXSB8fCBhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fUlhdKQorCQlyZXR1cm4gLUVCVVNZOworCisJLyogVFggRE1BICovCisJYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1RYXQorCQk9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9UWF0pCisJCXJldHVybiAtRU5PTUVNOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX0RNQSwgMCk7CisJaWYgKCFyKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0MTsKKwl9CisJKGF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9UWF0pLT5kZG1hX2lkID0gci0+c3RhcnQ7CisKKwkvKiBSWCBETUEgKi8KKwlhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fUlhdCisJCT0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSksIEdGUF9LRVJORUwpOworCWlmICghYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1JYXSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfRE1BLCAxKTsKKwlpZiAoIXIpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQyOworCX0KKwkoYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1JYXSktPmRkbWFfaWQgPSByLT5zdGFydDsKKworCXJldHVybiAwOworCitvdXQyOgorCWtmcmVlKGF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9SWF0pOworCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9SWF0gPSBOVUxMOworb3V0MToKKwlrZnJlZShhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fVFhdKTsKKwlhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fVFhdID0gTlVMTDsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworCQlpZiAoYXUxeHBzY19hdWRpb19wY21kbWFbaV0pIHsKKwkJCWF1MXhfcGNtX2RiZG1hX2ZyZWUoYXUxeHBzY19hdWRpb19wY21kbWFbaV0pOworCQkJa2ZyZWUoYXUxeHBzY19hdWRpb19wY21kbWFbaV0pOworCQkJYXUxeHBzY19hdWRpb19wY21kbWFbaV0gPSBOVUxMOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIGF1MXhwc2MgYXVkaW8gcGxhdGZvcm0gKi8KK3N0cnVjdCBzbmRfc29jX3BsYXRmb3JtIGF1MXhwc2Nfc29jX3BsYXRmb3JtID0geworCS5uYW1lCQk9ICJhdTF4cHNjLXBjbS1kYmRtYSIsCisJLnByb2JlCQk9IGF1MXhwc2NfcGNtX3Byb2JlLAorCS5yZW1vdmUJCT0gYXUxeHBzY19wY21fcmVtb3ZlLAorCS5wY21fb3BzIAk9ICZhdTF4cHNjX3BjbV9vcHMsCisJLnBjbV9uZXcJPSBhdTF4cHNjX3BjbV9uZXcsCisJLnBjbV9mcmVlCT0gYXUxeHBzY19wY21fZnJlZV9kbWFfYnVmZmVycywKK307CitFWFBPUlRfU1lNQk9MX0dQTChhdTF4cHNjX3NvY19wbGF0Zm9ybSk7CisKK3N0YXRpYyBpbnQgX19pbml0IGF1MXhwc2NfYXVkaW9fZGJkbWFfaW5pdCh2b2lkKQoreworCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9UWF0gPSBOVUxMOworCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9SWF0gPSBOVUxMOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYXUxeHBzY19hdWRpb19kYmRtYV9leGl0KHZvaWQpCit7Cit9CisKK21vZHVsZV9pbml0KGF1MXhwc2NfYXVkaW9fZGJkbWFfaW5pdCk7Cittb2R1bGVfZXhpdChhdTF4cHNjX2F1ZGlvX2RiZG1hX2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF1MTJ4MC9BdTE1NTAgUFNDIEF1ZGlvIERNQSBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIk1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4iKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L3BzYy1hYzk3LmMgYi9zb3VuZC9zb2MvYXUxeC9wc2MtYWM5Ny5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3ZmFjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9wc2MtYWM5Ny5jCkBAIC0wLDAgKzEsMzg3IEBACisvKgorICogQXUxMngwL0F1MTU1MCBQU0MgQUxTQSBBU29DIGF1ZGlvIHN1cHBvcnQuCisgKgorICogKGMpIDIwMDctMjAwOCBNU0MgVmVydHJpZWJzZ2VzLm0uYi5ILiwKKyAqCU1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIEF1MXh4eC1QU0MgQUM5NyBnbHVlLgorICoKKyAqIE5PVEU6IGFsbCBvZiB0aGVzZSBkcml2ZXJzIGNhbiBvbmx5IHdvcmsgd2l0aCBhIFNJTkdMRSBpbnN0YW5jZQorICoJIG9mIGEgUFNDLiBNdWx0aXBsZSBpbmRlcGVuZGVudCBhdWRpbyBkZXZpY2VzIGFyZSBpbXBvc3NpYmxlCisgKgkgd2l0aCBBU29DIHYxLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1hdTF4MDAvYXUxMDAwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaD4KKworI2luY2x1ZGUgInBzYy5oIgorCisjZGVmaW5lIEFDOTdfRElSCVwKKwkoU05EX1NPQ19EQUlESVJfUExBWUJBQ0sgfCBTTkRfU09DX0RBSURJUl9DQVBUVVJFKQorCisjZGVmaW5lIEFDOTdfUkFURVMJXAorCVNORFJWX1BDTV9SQVRFXzgwMDBfNDgwMDAKKworI2RlZmluZSBBQzk3X0ZNVFMJXAorCShTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzIwXzNCRSkKKworI2RlZmluZSBBQzk3UENSX1NUQVJUKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0FDOTdQQ1JfVFMgOiBQU0NfQUM5N1BDUl9SUykKKyNkZWZpbmUgQUM5N1BDUl9TVE9QKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0FDOTdQQ1JfVFAgOiBQU0NfQUM5N1BDUl9SUCkKKyNkZWZpbmUgQUM5N1BDUl9DTFJGSUZPKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0FDOTdQQ1JfVEMgOiBQU0NfQUM5N1BDUl9SQykKKworLyogaW5zdGFuY2UgZGF0YS4gVGhlcmUgY2FuIGJlIG9ubHkgb25lLCBNYWNMZW9kISEhISAqLworc3RhdGljIHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKmF1MXhwc2NfYWM5N193b3JrZGF0YTsKKworLyogQUM5NyBjb250cm9sbGVyIHJlYWRzIGNvZGVjIHJlZ2lzdGVyICovCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgYXUxeHBzY19hYzk3X3JlYWQoc3RydWN0IHNuZF9hYzk3ICphYzk3LAorCQkJCQl1bnNpZ25lZCBzaG9ydCByZWcpCit7CisJLyogRklYTUUgKi8KKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19hYzk3X3dvcmtkYXRhOworCXVuc2lnbmVkIHNob3J0IGRhdGEsIHRtbzsKKworCWF1X3dyaXRlbChQU0NfQUM5N0NEQ19SRCB8IFBTQ19BQzk3Q0RDX0lORFgocmVnKSwgQUM5N19DREMocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKworCXRtbyA9IDEwMDA7CisJd2hpbGUgKCghKGF1X3JlYWRsKEFDOTdfRVZOVChwc2NkYXRhKSkgJiBQU0NfQUM5N0VWTlRfQ0QpKSAmJiAtLXRtbykKKwkJdWRlbGF5KDIpOworCisJaWYgKCF0bW8pCisJCWRhdGEgPSAweGZmZmY7CisJZWxzZQorCQlkYXRhID0gYXVfcmVhZGwoQUM5N19DREMocHNjZGF0YSkpICYgMHhmZmZmOworCisJYXVfd3JpdGVsKFBTQ19BQzk3RVZOVF9DRCwgQUM5N19FVk5UKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwlyZXR1cm4gZGF0YTsKK30KKworLyogQUM5NyBjb250cm9sbGVyIHdyaXRlcyB0byBjb2RlYyByZWdpc3RlciAqLworc3RhdGljIHZvaWQgYXUxeHBzY19hYzk3X3dyaXRlKHN0cnVjdCBzbmRfYWM5NyAqYWM5NywgdW5zaWduZWQgc2hvcnQgcmVnLAorCQkJCXVuc2lnbmVkIHNob3J0IHZhbCkKK3sKKwkvKiBGSVhNRSAqLworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2FjOTdfd29ya2RhdGE7CisJdW5zaWduZWQgaW50IHRtbzsKKworCWF1X3dyaXRlbChQU0NfQUM5N0NEQ19JTkRYKHJlZykgfCAodmFsICYgMHhmZmZmKSwgQUM5N19DREMocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKwl0bW8gPSAxMDAwOworCXdoaWxlICgoIShhdV9yZWFkbChBQzk3X0VWTlQocHNjZGF0YSkpICYgUFNDX0FDOTdFVk5UX0NEKSkgJiYgLS10bW8pCisJCWF1X3N5bmMoKTsKKworCWF1X3dyaXRlbChQU0NfQUM5N0VWTlRfQ0QsIEFDOTdfRVZOVChwc2NkYXRhKSk7CisJYXVfc3luYygpOworfQorCisvKiBBQzk3IGNvbnRyb2xsZXIgYXNzZXJ0cyBhIHdhcm0gcmVzZXQgKi8KK3N0YXRpYyB2b2lkIGF1MXhwc2NfYWM5N193YXJtX3Jlc2V0KHN0cnVjdCBzbmRfYWM5NyAqYWM5NykKK3sKKwkvKiBGSVhNRSAqLworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2FjOTdfd29ya2RhdGE7CisKKwlhdV93cml0ZWwoUFNDX0FDOTdSU1RfU05DLCBBQzk3X1JTVChwc2NkYXRhKSk7CisJYXVfc3luYygpOworCW1zbGVlcCgxMCk7CisJYXVfd3JpdGVsKDAsIEFDOTdfUlNUKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7Cit9CisKK3N0YXRpYyB2b2lkIGF1MXhwc2NfYWM5N19jb2xkX3Jlc2V0KHN0cnVjdCBzbmRfYWM5NyAqYWM5NykKK3sKKwkvKiBGSVhNRSAqLworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2FjOTdfd29ya2RhdGE7CisJaW50IGk7CisKKwkvKiBkaXNhYmxlIFBTQyBkdXJpbmcgY29sZCByZXNldCAqLworCWF1X3dyaXRlbCgwLCBBQzk3X0NGRyhhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKFBTQ19DVFJMX0RJU0FCTEUsIFBTQ19DVFJMKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiBpc3N1ZSBjb2xkIHJlc2V0ICovCisJYXVfd3JpdGVsKFBTQ19BQzk3UlNUX1JTVCwgQUM5N19SU1QocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKwltc2xlZXAoNTAwKTsKKwlhdV93cml0ZWwoMCwgQUM5N19SU1QocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKworCS8qIGVuYWJsZSBQU0MgKi8KKwlhdV93cml0ZWwoUFNDX0NUUkxfRU5BQkxFLCBQU0NfQ1RSTChwc2NkYXRhKSk7CisJYXVfc3luYygpOworCisJLyogd2FpdCBmb3IgUFNDIHRvIGluZGljYXRlIGl0J3MgcmVhZHkgKi8KKwlpID0gMTAwMDAwOworCXdoaWxlICghKChhdV9yZWFkbChBQzk3X1NUQVQocHNjZGF0YSkpICYgUFNDX0FDOTdTVEFUX1NSKSkgJiYgKC0taSkpCisJCWF1X3N5bmMoKTsKKworCWlmIChpID09IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJhdTF4cHNjLWFjOTc6IFBTQyBub3QgcmVhZHkhXG4iKTsKKwkJcmV0dXJuOworCX0KKworCS8qIGVuYWJsZSB0aGUgYWM5NyBmdW5jdGlvbiAqLworCWF1X3dyaXRlbChwc2NkYXRhLT5jZmcgfCBQU0NfQUM5N0NGR19ERV9FTkFCTEUsIEFDOTdfQ0ZHKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiB3YWl0IGZvciBBQzk3IGNvcmUgdG8gYmVjb21lIHJlYWR5ICovCisJaSA9IDEwMDAwMDsKKwl3aGlsZSAoISgoYXVfcmVhZGwoQUM5N19TVEFUKHBzY2RhdGEpKSAmIFBTQ19BQzk3U1RBVF9EUikpICYmICgtLWkpKQorCQlhdV9zeW5jKCk7CisJaWYgKGkgPT0gMCkKKwkJcHJpbnRrKEtFUk5fRVJSICJhdTF4cHNjLWFjOTc6IEFDOTcgY3RybCBub3QgcmVhZHlcbiIpOworfQorCisvKiBBQzk3IGNvbnRyb2xsZXIgb3BlcmF0aW9ucyAqLworc3RydWN0IHNuZF9hYzk3X2J1c19vcHMgc29jX2FjOTdfb3BzID0geworCS5yZWFkCQk9IGF1MXhwc2NfYWM5N19yZWFkLAorCS53cml0ZQkJPSBhdTF4cHNjX2FjOTdfd3JpdGUsCisJLnJlc2V0CQk9IGF1MXhwc2NfYWM5N19jb2xkX3Jlc2V0LAorCS53YXJtX3Jlc2V0CT0gYXUxeHBzY19hYzk3X3dhcm1fcmVzZXQsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoc29jX2FjOTdfb3BzKTsKKworc3RhdGljIGludCBhdTF4cHNjX2FjOTdfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCit7CisJLyogRklYTUUgKi8KKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19hYzk3X3dvcmtkYXRhOworCXVuc2lnbmVkIGxvbmcgciwgc3RhdDsKKwlpbnQgY2hhbnMsIHN0eXBlID0gU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKTsKKworCWNoYW5zID0gcGFyYW1zX2NoYW5uZWxzKHBhcmFtcyk7CisKKwlyID0gYXVfcmVhZGwoQUM5N19DRkcocHNjZGF0YSkpOworCXN0YXQgPSBhdV9yZWFkbChBQzk3X1NUQVQocHNjZGF0YSkpOworCisJLyogYWxyZWFkeSBhY3RpdmU/ICovCisJaWYgKHN0YXQgJiAoUFNDX0FDOTdTVEFUX1RCIHwgUFNDX0FDOTdTVEFUX1JCKSkgeworCQkvKiByZWplY3QgcGFyYW1ldGVycyBub3QgY3VycmVudGx5IHNldCB1cCAqLworCQlpZiAoKFBTQ19BQzk3Q0ZHX0dFVF9MRU4ocikgIT0gcGFyYW1zLT5tc2JpdHMpIHx8CisJCSAgICAocHNjZGF0YS0+cmF0ZSAhPSBwYXJhbXNfcmF0ZShwYXJhbXMpKSkKKwkJCXJldHVybiAtRUlOVkFMOworCX0gZWxzZSB7CisJCS8qIGRpc2FibGUgQUM5NyBkZXZpY2UgY29udHJvbGxlciBmaXJzdCAqLworCQlhdV93cml0ZWwociAmIH5QU0NfQUM5N0NGR19ERV9FTkFCTEUsIEFDOTdfQ0ZHKHBzY2RhdGEpKTsKKwkJYXVfc3luYygpOworCisJCS8qIHNldCBzYW1wbGUgYml0ZGVwdGg6IFJFR1syNDoyMV09KEJJVFMtMikvMiAqLworCQlyICY9IH5QU0NfQUM5N0NGR19MRU5fTUFTSzsKKwkJciB8PSBQU0NfQUM5N0NGR19TRVRfTEVOKHBhcmFtcy0+bXNiaXRzKTsKKworCQkvKiBjaGFubmVsczogZW5hYmxlIHNsb3RzIGZvciBmcm9udCBML1IgY2hhbm5lbCAqLworCQlpZiAoc3R5cGUgPT0gUENNX1RYKSB7CisJCQlyICY9IH5QU0NfQUM5N0NGR19UWFNMT1RfTUFTSzsKKwkJCXIgfD0gUFNDX0FDOTdDRkdfVFhTTE9UX0VOQSgzKTsKKwkJCXIgfD0gUFNDX0FDOTdDRkdfVFhTTE9UX0VOQSg0KTsKKwkJfSBlbHNlIHsKKwkJCXIgJj0gflBTQ19BQzk3Q0ZHX1JYU0xPVF9NQVNLOworCQkJciB8PSBQU0NfQUM5N0NGR19SWFNMT1RfRU5BKDMpOworCQkJciB8PSBQU0NfQUM5N0NGR19SWFNMT1RfRU5BKDQpOworCQl9CisKKwkJLyogZmluYWxseSBlbmFibGUgdGhlIEFDOTcgY29udHJvbGxlciBhZ2FpbiAqLworCQlhdV93cml0ZWwociB8IFBTQ19BQzk3Q0ZHX0RFX0VOQUJMRSwgQUM5N19DRkcocHNjZGF0YSkpOworCQlhdV9zeW5jKCk7CisKKwkJcHNjZGF0YS0+Y2ZnID0gcjsKKwkJcHNjZGF0YS0+cmF0ZSA9IHBhcmFtc19yYXRlKHBhcmFtcyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19hYzk3X3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJaW50IGNtZCkKK3sKKwkvKiBGSVhNRSAqLworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2FjOTdfd29ya2RhdGE7CisJaW50IHJldCwgc3R5cGUgPSBTVUJTVFJFQU1fVFlQRShzdWJzdHJlYW0pOworCisJcmV0ID0gMDsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToKKwkJYXVfd3JpdGVsKEFDOTdQQ1JfU1RBUlQoc3R5cGUpLCBBQzk3X1BDUihwc2NkYXRhKSk7CisJCWF1X3N5bmMoKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgorCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKKwkJYXVfd3JpdGVsKEFDOTdQQ1JfU1RPUChzdHlwZSksIEFDOTdfUENSKHBzY2RhdGEpKTsKKwkJYXVfc3luYygpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXQgPSAtRUlOVkFMOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfYWM5N19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CisJdW5zaWduZWQgbG9uZyBzZWw7CisKKwlpZiAoYXUxeHBzY19hYzk3X3dvcmtkYXRhKQorCQlyZXR1cm4gLUVCVVNZOworCisJYXUxeHBzY19hYzk3X3dvcmtkYXRhID0KKwkJa3phbGxvYyhzaXplb2Yoc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSksIEdGUF9LRVJORUwpOworCWlmICghYXUxeHBzY19hYzk3X3dvcmtkYXRhKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXIgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCWlmICghcikgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDA7CisJfQorCisJcmV0ID0gLUVCVVNZOworCWF1MXhwc2NfYWM5N193b3JrZGF0YS0+aW9hcmVhID0KKwkJcmVxdWVzdF9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEsCisJCQkJCSJhdTF4cHNjX2FjOTciKTsKKwlpZiAoIWF1MXhwc2NfYWM5N193b3JrZGF0YS0+aW9hcmVhKQorCQlnb3RvIG91dDA7CisKKwlhdTF4cHNjX2FjOTdfd29ya2RhdGEtPm1taW8gPSBpb3JlbWFwKHItPnN0YXJ0LCAweGZmZmYpOworCWlmICghYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5tbWlvKQorCQlnb3RvIG91dDE7CisKKwkvKiBjb25maWd1cmF0aW9uOiBtYXggZG1hIHRyaWdnZXIgdGhyZXNob2xkLCBlbmFibGUgYWM5NyAqLworCSBhdTF4cHNjX2FjOTdfd29ya2RhdGEtPmNmZyA9IFBTQ19BQzk3Q0ZHX1JUX0ZJRk84IHwKKwkJCQkgICAgICBQU0NfQUM5N0NGR19UVF9GSUZPOCB8CisJCQkJICAgICAgUFNDX0FDOTdDRkdfREVfRU5BQkxFOworCisJLyogcHJlc2VydmUgUFNDIGNsb2NrIHNvdXJjZSBzZXQgdXAgYnkgcGxhdGZvcm0gKGRldi5wbGF0Zm9ybV9kYXRhCisJICogaXMgYWxyZWFkeSBvY2N1cGllZCBieSBzb2MgbGF5ZXIpCisJICovCisJc2VsID0gYXVfcmVhZGwoUFNDX1NFTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKSAmIFBTQ19TRUxfQ0xLX01BU0s7CisJYXVfd3JpdGVsKFBTQ19DVFJMX0RJU0FCTEUsIFBTQ19DVFJMKGF1MXhwc2NfYWM5N193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoMCwgUFNDX1NFTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKFBTQ19TRUxfUFNfQUM5N01PREUgfCBzZWwsIFBTQ19TRUwoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCS8qIG5leHQgdXA6IGNvbGQgcmVzZXQuICBEb250IGNoZWNrIGZvciBQU0MtcmVhZHkgbm93IHNpbmNlCisJICogdGhlcmUgbWF5IG5vdCBiZSBhbnkgY29kZWMgY2xvY2sgeWV0LgorCSAqLworCisJcmV0dXJuIDA7CisKK291dDE6CisJcmVsZWFzZV9yZXNvdXJjZShhdTF4cHNjX2FjOTdfd29ya2RhdGEtPmlvYXJlYSk7CisJa2ZyZWUoYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5pb2FyZWEpOworb3V0MDoKKwlrZnJlZShhdTF4cHNjX2FjOTdfd29ya2RhdGEpOworCWF1MXhwc2NfYWM5N193b3JrZGF0YSA9IE5VTEw7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgYXUxeHBzY19hYzk3X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQoreworCS8qIGRpc2FibGUgUFNDIGNvbXBsZXRlbHkgKi8KKwlhdV93cml0ZWwoMCwgQUM5N19DRkcoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwlpb3VubWFwKGF1MXhwc2NfYWM5N193b3JrZGF0YS0+bW1pbyk7CisJcmVsZWFzZV9yZXNvdXJjZShhdTF4cHNjX2FjOTdfd29ya2RhdGEtPmlvYXJlYSk7CisJa2ZyZWUoYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5pb2FyZWEpOworCWtmcmVlKGF1MXhwc2NfYWM5N193b3JrZGF0YSk7CisJYXUxeHBzY19hYzk3X3dvcmtkYXRhID0gTlVMTDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2FjOTdfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQoreworCS8qIHNhdmUgaW50ZXJlc3RpbmcgcmVnaXN0ZXJzIGFuZCBkaXNhYmxlIFBTQyAqLworCWF1MXhwc2NfYWM5N193b3JrZGF0YS0+cG1bMF0gPQorCQkJYXVfcmVhZGwoUFNDX1NFTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKworCWF1X3dyaXRlbCgwLCBBQzk3X0NGRyhhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKFBTQ19DVFJMX0RJU0FCTEUsIFBTQ19DVFJMKGF1MXhwc2NfYWM5N193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfYWM5N19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwkvKiByZXN0b3JlIFBTQyBjbG9jayBjb25maWcgKi8KKwlhdV93cml0ZWwoYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5wbVswXSB8IFBTQ19TRUxfUFNfQUM5N01PREUsCisJCQlQU0NfU0VMKGF1MXhwc2NfYWM5N193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKworCS8qIGFmdGVyIHRoaXMgcG9pbnQgdGhlIGFjOTcgY29yZSB3aWxsIGNvbGQtcmVzZXQgdGhlIGNvZGVjLgorCSAqIER1cmluZyBjb2xkLXJlc2V0IHRoZSBQU0MgaXMgcmVpbml0aWFsaXplZCBhbmQgdGhlIGxhc3QKKwkgKiBjb25maWd1cmF0aW9uIHNldCB1cCBpbiBod19wYXJhbXMoKSBpcyByZXN0b3JlZC4KKwkgKi8KKwlyZXR1cm4gMDsKK30KKworc3RydWN0IHNuZF9zb2NfZGFpIGF1MXhwc2NfYWM5N19kYWkgPSB7CisJLm5hbWUJCQk9ICJhdTF4cHNjX2FjOTciLAorCS50eXBlCQkJPSBTTkRfU09DX0RBSV9BQzk3LAorCS5wcm9iZQkJCT0gYXUxeHBzY19hYzk3X3Byb2JlLAorCS5yZW1vdmUJCQk9IGF1MXhwc2NfYWM5N19yZW1vdmUsCisJLnN1c3BlbmQJCT0gYXUxeHBzY19hYzk3X3N1c3BlbmQsCisJLnJlc3VtZQkJCT0gYXUxeHBzY19hYzk3X3Jlc3VtZSwKKwkucGxheWJhY2sgPSB7CisJCS5yYXRlcwkJPSBBQzk3X1JBVEVTLAorCQkuZm9ybWF0cwk9IEFDOTdfRk1UUywKKwkJLmNoYW5uZWxzX21pbgk9IDIsCisJCS5jaGFubmVsc19tYXgJPSAyLAorCX0sCisJLmNhcHR1cmUgPSB7CisJCS5yYXRlcwkJPSBBQzk3X1JBVEVTLAorCQkuZm9ybWF0cwk9IEFDOTdfRk1UUywKKwkJLmNoYW5uZWxzX21pbgk9IDIsCisJCS5jaGFubmVsc19tYXgJPSAyLAorCX0sCisJLm9wcyA9IHsKKwkJLnRyaWdnZXIJPSBhdTF4cHNjX2FjOTdfdHJpZ2dlciwKKwkJLmh3X3BhcmFtcwk9IGF1MXhwc2NfYWM5N19od19wYXJhbXMsCisJfSwKK307CitFWFBPUlRfU1lNQk9MX0dQTChhdTF4cHNjX2FjOTdfZGFpKTsKKworc3RhdGljIGludCBfX2luaXQgYXUxeHBzY19hYzk3X2luaXQodm9pZCkKK3sKKwlhdTF4cHNjX2FjOTdfd29ya2RhdGEgPSBOVUxMOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYXUxeHBzY19hYzk3X2V4aXQodm9pZCkKK3sKK30KKworbW9kdWxlX2luaXQoYXUxeHBzY19hYzk3X2luaXQpOworbW9kdWxlX2V4aXQoYXUxeHBzY19hYzk3X2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF1MTJ4MC9BdTE1NTAgUFNDIEFDOTcgQUxTQSBBU29DIGF1ZGlvIGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiTWFudWVsIExhdXNzIDxtYW5vQHJvYXJpbmVsay5ob21lbGludXgubmV0PiIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F1MXgvcHNjLWkycy5jIGIvc291bmQvc29jL2F1MXgvcHNjLWkycy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNGI1YzEKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9wc2MtaTJzLmMKQEAgLTAsMCArMSw0MTQgQEAKKy8qCisgKiBBdTEyeDAvQXUxNTUwIFBTQyBBTFNBIEFTb0MgYXVkaW8gc3VwcG9ydC4KKyAqCisgKiAoYykgMjAwNy0yMDA4IE1TQyBWZXJ0cmllYnNnZXMubS5iLkguLAorICoJTWFudWVsIExhdXNzIDxtYW5vQHJvYXJpbmVsay5ob21lbGludXgubmV0PgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogQXUxeHh4LVBTQyBJMlMgZ2x1ZS4KKyAqCisgKiBOT1RFOiBhbGwgb2YgdGhlc2UgZHJpdmVycyBjYW4gb25seSB3b3JrIHdpdGggYSBTSU5HTEUgaW5zdGFuY2UKKyAqCSBvZiBhIFBTQy4gTXVsdGlwbGUgaW5kZXBlbmRlbnQgYXVkaW8gZGV2aWNlcyBhcmUgaW1wb3NzaWJsZQorICoJIHdpdGggQVNvQyB2MS4KKyAqIE5PVEU6IHNvIGZhciBvbmx5IFBTQyBzbGF2ZSBtb2RlIChiaXQtIGFuZCBmcmFtZWNsb2NrKSBpcyBzdXBwb3J0ZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1hdTF4MDAvYXUxMDAwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaD4KKworI2luY2x1ZGUgInBzYy5oIgorCisvKiBzdXBwb3J0ZWQgSTJTIERBSSBoYXJkd2FyZSBmb3JtYXRzICovCisjZGVmaW5lIEFVMVhQU0NfSTJTX0RBSUZNVCBcCisJKFNORF9TT0NfREFJRk1UX0kyUyB8IFNORF9TT0NfREFJRk1UX0xFRlRfSiB8CVwKKwkgU05EX1NPQ19EQUlGTVRfTkJfTkYpCisKKy8qIHN1cHBvcnRlZCBJMlMgZGlyZWN0aW9uICovCisjZGVmaW5lIEFVMVhQU0NfSTJTX0RJUiBcCisJKFNORF9TT0NfREFJRElSX1BMQVlCQUNLIHwgU05EX1NPQ19EQUlESVJfQ0FQVFVSRSkKKworI2RlZmluZSBBVTFYUFNDX0kyU19SQVRFUyBcCisJU05EUlZfUENNX1JBVEVfODAwMF8xOTIwMDAKKworI2RlZmluZSBBVTFYUFNDX0kyU19GTVRTIFwKKwkoU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MyNF9MRSkKKworI2RlZmluZSBJMlNTVEFUX0JVU1koc3R5cGUpCVwKKwkoKHN0eXBlKSA9PSBQQ01fVFggPyBQU0NfSTJTU1RBVF9UQiA6IFBTQ19JMlNTVEFUX1JCKQorI2RlZmluZSBJMlNQQ1JfU1RBUlQoc3R5cGUpCVwKKwkoKHN0eXBlKSA9PSBQQ01fVFggPyBQU0NfSTJTUENSX1RTIDogUFNDX0kyU1BDUl9SUykKKyNkZWZpbmUgSTJTUENSX1NUT1Aoc3R5cGUpCVwKKwkoKHN0eXBlKSA9PSBQQ01fVFggPyBQU0NfSTJTUENSX1RQIDogUFNDX0kyU1BDUl9SUCkKKyNkZWZpbmUgSTJTUENSX0NMUkZJRk8oc3R5cGUpCVwKKwkoKHN0eXBlKSA9PSBQQ01fVFggPyBQU0NfSTJTUENSX1RDIDogUFNDX0kyU1BDUl9SQykKKworCisvKiBpbnN0YW5jZSBkYXRhLiBUaGVyZSBjYW4gYmUgb25seSBvbmUsIE1hY0xlb2QhISEhICovCitzdGF0aWMgc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSAqYXUxeHBzY19pMnNfd29ya2RhdGE7CisKK3N0YXRpYyBpbnQgYXUxeHBzY19pMnNfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCisJCQkgICAgICAgdW5zaWduZWQgaW50IGZtdCkKK3sKKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19pMnNfd29ya2RhdGE7CisJdW5zaWduZWQgbG9uZyBjdDsKKwlpbnQgcmV0OworCisJcmV0ID0gLUVJTlZBTDsKKworCWN0ID0gcHNjZGF0YS0+Y2ZnOworCisJY3QgJj0gfihQU0NfSTJTQ0ZHX1hNIHwgUFNDX0kyU0NGR19NTEopOwkvKiBsZWZ0LWp1c3RpZmllZCAqLworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfRk9STUFUX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0kyUzoKKwkJY3QgfD0gUFNDX0kyU0NGR19YTTsJLyogZW5hYmxlIEkyUyBtb2RlICovCisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTVNCOgorCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0xTQjoKKwkJY3QgfD0gUFNDX0kyU0NGR19NTEo7CS8qIExTQiAocmlnaHQtKSBqdXN0aWZpZWQgKi8KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZ290byBvdXQ7CisJfQorCisJY3QgJj0gfihQU0NfSTJTQ0ZHX0JJIHwgUFNDX0kyU0NGR19XSSk7CQkvKiBJQi1JRiAqLworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfSU5WX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX05CX05GOgorCQljdCB8PSBQU0NfSTJTQ0ZHX0JJIHwgUFNDX0kyU0NGR19XSTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9OQl9JRjoKKwkJY3QgfD0gUFNDX0kyU0NGR19CSTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JQl9ORjoKKwkJY3QgfD0gUFNDX0kyU0NGR19XSTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JQl9JRjoKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZ290byBvdXQ7CisJfQorCisJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9NQVNURVJfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTToJLyogQ09ERUMgbWFzdGVyICovCisJCWN0IHw9IFBTQ19JMlNDRkdfTVM7CS8qIFBTQyBJMlMgc2xhdmUgbW9kZSAqLworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0NCU19DRlM6CS8qIENPREVDIHNsYXZlICovCisJCWN0ICY9IH5QU0NfSTJTQ0ZHX01TOwkvKiBQU0MgSTJTIE1hc3RlciBtb2RlICovCisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdvdG8gb3V0OworCX0KKworCXBzY2RhdGEtPmNmZyA9IGN0OworCXJldCA9IDA7CitvdXQ6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2kyc19od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2kyc193b3JrZGF0YTsKKworCWludCBjZmdiaXRzOworCXVuc2lnbmVkIGxvbmcgc3RhdDsKKworCS8qIGNoZWNrIGlmIHRoZSBQU0MgaXMgYWxyZWFkeSBzdHJlYW1pbmcgZGF0YSAqLworCXN0YXQgPSBhdV9yZWFkbChJMlNfU1RBVChwc2NkYXRhKSk7CisJaWYgKHN0YXQgJiAoUFNDX0kyU1NUQVRfVEIgfCBQU0NfSTJTU1RBVF9SQikpIHsKKwkJLyogcmVqZWN0IHBhcmFtZXRlcnMgbm90IGN1cnJlbnRseSBzZXQgdXAgaW4gaGFyZHdhcmUgKi8KKwkJY2ZnYml0cyA9IGF1X3JlYWRsKEkyU19DRkcocHNjZGF0YSkpOworCQlpZiAoKFBTQ19JMlNDRkdfR0VUX0xFTihjZmdiaXRzKSAhPSBwYXJhbXMtPm1zYml0cykgfHwKKwkJICAgIChwYXJhbXNfcmF0ZShwYXJhbXMpICE9IHBzY2RhdGEtPnJhdGUpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfSBlbHNlIHsKKwkJLyogc2V0IHNhbXBsZSBiaXRkZXB0aCAqLworCQlwc2NkYXRhLT5jZmcgJj0gfigweDFmIDw8IDQpOworCQlwc2NkYXRhLT5jZmcgfD0gUFNDX0kyU0NGR19TRVRfTEVOKHBhcmFtcy0+bXNiaXRzKTsKKwkJLyogcmVtZW1iZXIgY3VycmVudCByYXRlIGZvciBvdGhlciBzdHJlYW0gKi8KKwkJcHNjZGF0YS0+cmF0ZSA9IHBhcmFtc19yYXRlKHBhcmFtcyk7CisJfQorCXJldHVybiAwOworfQorCisvKiBDb25maWd1cmUgUFNDIGxhdGU6ICBvbiBteSBkZXZlbCBzeXN0ZW1zIHRoZSBjb2RlYyAgaXMgSTJTIG1hc3RlciBhbmQKKyAqIHN1cHBsaWVzIHRoZSBpMnNiaXRjbG9jayBfX0FORF9fIGkyc01jbGsgKCEpIHRvIHRoZSBQU0MgdW5pdC4gIEFTb0MKKyAqIHVzZXMgYWdncmVzc2l2ZSBQTSBhbmQgIHN3aXRjaGVzIHRoZSBjb2RlYyBvZmYgIHdoZW4gaXQgaXMgbm90IGluIHVzZQorICogd2hpY2ggYWxzbyBtZWFucyB0aGUgUFNDIHVuaXQgZG9lc24ndCBnZXQgYW55IGNsb2NrcyBhbmQgaXMgdGhlcmVmb3JlCisgKiBkZWFkLiBUaGF0J3Mgd2h5IHRoaXMgY2h1bmsgaGVyZSBnZXRzIGNhbGxlZCBmcm9tIHRoZSB0cmlnZ2VyIGNhbGxiYWNrCisgKiBiZWNhdXNlIEkgY2FuIGJlIHJlYXNvbmFibHkgY2VydGFpbiB0aGUgY29kZWMgaXMgZHJpdmluZyB0aGUgY2xvY2tzLgorICovCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX2NvbmZpZ3VyZShzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhKQoreworCXVuc2lnbmVkIGxvbmcgdG1vOworCisJLyogYnJpbmcgUFNDIG91dCBvZiBzbGVlcCwgYW5kIGNvbmZpZ3VyZSBJMlMgdW5pdCAqLworCWF1X3dyaXRlbChQU0NfQ1RSTF9FTkFCTEUsIFBTQ19DVFJMKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwl0bW8gPSAxMDAwMDAwOworCXdoaWxlICghKGF1X3JlYWRsKEkyU19TVEFUKHBzY2RhdGEpKSAmIFBTQ19JMlNTVEFUX1NSKSAmJiB0bW8pCisJCXRtby0tOworCisJaWYgKCF0bW8pCisJCWdvdG8gcHNjX2VycjsKKworCWF1X3dyaXRlbCgwLCBJMlNfQ0ZHKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKHBzY2RhdGEtPmNmZyB8IFBTQ19JMlNDRkdfREVfRU5BQkxFLCBJMlNfQ0ZHKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiB3YWl0IGZvciBJMlMgY29udHJvbGxlciB0byBiZWNvbWUgcmVhZHkgKi8KKwl0bW8gPSAxMDAwMDAwOworCXdoaWxlICghKGF1X3JlYWRsKEkyU19TVEFUKHBzY2RhdGEpKSAmIFBTQ19JMlNTVEFUX0RSKSAmJiB0bW8pCisJCXRtby0tOworCisJaWYgKHRtbykKKwkJcmV0dXJuIDA7CisKK3BzY19lcnI6CisJYXVfd3JpdGVsKDAsIEkyU19DRkcocHNjZGF0YSkpOworCWF1X3dyaXRlbChQU0NfQ1RSTF9TVVNQRU5ELCBQU0NfQ1RSTChwc2NkYXRhKSk7CisJYXVfc3luYygpOworCXJldHVybiAtRVRJTUVET1VUOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX3N0YXJ0KHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEsIGludCBzdHlwZSkKK3sKKwl1bnNpZ25lZCBsb25nIHRtbywgc3RhdDsKKwlpbnQgcmV0OworCisJcmV0ID0gMDsKKworCS8qIGlmIGJvdGggVFggYW5kIFJYIGFyZSBpZGxlLCBjb25maWd1cmUgdGhlIFBTQyAgKi8KKwlzdGF0ID0gYXVfcmVhZGwoSTJTX1NUQVQocHNjZGF0YSkpOworCWlmICghKHN0YXQgJiAoUFNDX0kyU1NUQVRfVEIgfCBQU0NfSTJTU1RBVF9SQikpKSB7CisJCXJldCA9IGF1MXhwc2NfaTJzX2NvbmZpZ3VyZShwc2NkYXRhKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OworCX0KKworCWF1X3dyaXRlbChJMlNQQ1JfQ0xSRklGTyhzdHlwZSksIEkyU19QQ1IocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoSTJTUENSX1NUQVJUKHN0eXBlKSwgSTJTX1BDUihwc2NkYXRhKSk7CisJYXVfc3luYygpOworCisJLyogd2FpdCBmb3Igc3RhcnQgY29uZmlybWF0aW9uICovCisJdG1vID0gMTAwMDAwMDsKKwl3aGlsZSAoIShhdV9yZWFkbChJMlNfU1RBVChwc2NkYXRhKSkgJiBJMlNTVEFUX0JVU1koc3R5cGUpKSAmJiB0bW8pCisJCXRtby0tOworCisJaWYgKCF0bW8pIHsKKwkJYXVfd3JpdGVsKEkyU1BDUl9TVE9QKHN0eXBlKSwgSTJTX1BDUihwc2NkYXRhKSk7CisJCWF1X3N5bmMoKTsKKwkJcmV0ID0gLUVUSU1FRE9VVDsKKwl9CitvdXQ6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2kyc19zdG9wKHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEsIGludCBzdHlwZSkKK3sKKwl1bnNpZ25lZCBsb25nIHRtbywgc3RhdDsKKworCWF1X3dyaXRlbChJMlNQQ1JfU1RPUChzdHlwZSksIEkyU19QQ1IocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKworCS8qIHdhaXQgZm9yIHN0b3AgY29uZmlybWF0aW9uICovCisJdG1vID0gMTAwMDAwMDsKKwl3aGlsZSAoKGF1X3JlYWRsKEkyU19TVEFUKHBzY2RhdGEpKSAmIEkyU1NUQVRfQlVTWShzdHlwZSkpICYmIHRtbykKKwkJdG1vLS07CisKKwkvKiBpZiBib3RoIFRYIGFuZCBSWCBhcmUgaWRsZSwgZGlzYWJsZSBQU0MgKi8KKwlzdGF0ID0gYXVfcmVhZGwoSTJTX1NUQVQocHNjZGF0YSkpOworCWlmICghKHN0YXQgJiAoUFNDX0kyU1NUQVRfUkIgfCBQU0NfSTJTU1RBVF9SQikpKSB7CisJCWF1X3dyaXRlbCgwLCBJMlNfQ0ZHKHBzY2RhdGEpKTsKKwkJYXVfc3luYygpOworCQlhdV93cml0ZWwoUFNDX0NUUkxfU1VTUEVORCwgUFNDX0NUUkwocHNjZGF0YSkpOworCQlhdV9zeW5jKCk7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCit7CisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSAqcHNjZGF0YSA9IGF1MXhwc2NfaTJzX3dvcmtkYXRhOworCWludCByZXQsIHN0eXBlID0gU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKTsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToKKwkJcmV0ID0gYXUxeHBzY19pMnNfc3RhcnQocHNjZGF0YSwgc3R5cGUpOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVVNQRU5EOgorCQlyZXQgPSBhdTF4cHNjX2kyc19zdG9wKHBzY2RhdGEsIHN0eXBlKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0ID0gLUVJTlZBTDsKKwl9CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CisJdW5zaWduZWQgbG9uZyBzZWw7CisJaW50IHJldDsKKworCWlmIChhdTF4cHNjX2kyc193b3JrZGF0YSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCWF1MXhwc2NfaTJzX3dvcmtkYXRhID0KKwkJa3phbGxvYyhzaXplb2Yoc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSksIEdGUF9LRVJORUwpOworCWlmICghYXUxeHBzY19pMnNfd29ya2RhdGEpCisJCXJldHVybiAtRU5PTUVNOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJaWYgKCFyKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0MDsKKwl9CisKKwlyZXQgPSAtRUJVU1k7CisJYXUxeHBzY19pMnNfd29ya2RhdGEtPmlvYXJlYSA9CisJCXJlcXVlc3RfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxLAorCQkJCQkiYXUxeHBzY19pMnMiKTsKKwlpZiAoIWF1MXhwc2NfaTJzX3dvcmtkYXRhLT5pb2FyZWEpCisJCWdvdG8gb3V0MDsKKworCWF1MXhwc2NfaTJzX3dvcmtkYXRhLT5tbWlvID0gaW9yZW1hcChyLT5zdGFydCwgMHhmZmZmKTsKKwlpZiAoIWF1MXhwc2NfaTJzX3dvcmtkYXRhLT5tbWlvKQorCQlnb3RvIG91dDE7CisKKwkvKiBwcmVzZXJ2ZSBQU0MgY2xvY2sgc291cmNlIHNldCB1cCBieSBwbGF0Zm9ybSAoZGV2LnBsYXRmb3JtX2RhdGEKKwkgKiBpcyBhbHJlYWR5IG9jY3VwaWVkIGJ5IHNvYyBsYXllcikKKwkgKi8KKwlzZWwgPSBhdV9yZWFkbChQU0NfU0VMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSkgJiBQU0NfU0VMX0NMS19NQVNLOworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoUFNDX1NFTF9QU19JMlNNT0RFIHwgc2VsLCBQU0NfU0VMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfd3JpdGVsKDAsIEkyU19DRkcoYXUxeHBzY19pMnNfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiBwcmVjb25maWd1cmU6IHNldCBtYXggcngvdHggZmlmbyBkZXB0aHMgKi8KKwlhdTF4cHNjX2kyc193b3JrZGF0YS0+Y2ZnIHw9CisJCQlQU0NfSTJTQ0ZHX1JUX0ZJRk84IHwgUFNDX0kyU0NGR19UVF9GSUZPODsKKworCS8qIGRvbid0IHdhaXQgZm9yIEkyUyBjb3JlIHRvIGJlY29tZSByZWFkeSBub3c7IGNsb2NrcyBtYXkgbm90CisJICogYmUgcnVubmluZyB5ZXQ7IGRlcGVuZGluZyBvbiBjbG9jayBpbnB1dCBmb3IgUFNDIGEgd2FpdCBtaWdodAorCSAqIHRpbWUgb3V0LgorCSAqLworCisJcmV0dXJuIDA7CisKK291dDE6CisJcmVsZWFzZV9yZXNvdXJjZShhdTF4cHNjX2kyc193b3JrZGF0YS0+aW9hcmVhKTsKKwlrZnJlZShhdTF4cHNjX2kyc193b3JrZGF0YS0+aW9hcmVhKTsKK291dDA6CisJa2ZyZWUoYXUxeHBzY19pMnNfd29ya2RhdGEpOworCWF1MXhwc2NfaTJzX3dvcmtkYXRhID0gTlVMTDsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBhdTF4cHNjX2kyc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwlhdV93cml0ZWwoMCwgSTJTX0NGRyhhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoUFNDX0NUUkxfRElTQUJMRSwgUFNDX0NUUkwoYXUxeHBzY19pMnNfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwlpb3VubWFwKGF1MXhwc2NfaTJzX3dvcmtkYXRhLT5tbWlvKTsKKwlyZWxlYXNlX3Jlc291cmNlKGF1MXhwc2NfaTJzX3dvcmtkYXRhLT5pb2FyZWEpOworCWtmcmVlKGF1MXhwc2NfaTJzX3dvcmtkYXRhLT5pb2FyZWEpOworCWtmcmVlKGF1MXhwc2NfaTJzX3dvcmtkYXRhKTsKKwlhdTF4cHNjX2kyc193b3JrZGF0YSA9IE5VTEw7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19pMnNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKK3sKKwkvKiBzYXZlIGludGVyZXN0aW5nIHJlZ2lzdGVyIGFuZCBkaXNhYmxlIFBTQyAqLworCWF1MXhwc2NfaTJzX3dvcmtkYXRhLT5wbVswXSA9CisJCWF1X3JlYWRsKFBTQ19TRUwoYXUxeHBzY19pMnNfd29ya2RhdGEpKTsKKworCWF1X3dyaXRlbCgwLCBJMlNfQ0ZHKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpKQoreworCS8qIHNlbGVjdCBJMlMgbW9kZSBhbmQgUFNDIGNsb2NrICovCisJYXVfd3JpdGVsKFBTQ19DVFJMX0RJU0FCTEUsIFBTQ19DVFJMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbCgwLCBQU0NfU0VMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChhdTF4cHNjX2kyc193b3JrZGF0YS0+cG1bMF0sCisJCQlQU0NfU0VMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfc29jX2RhaSBhdTF4cHNjX2kyc19kYWkgPSB7CisJLm5hbWUJCQk9ICJhdTF4cHNjX2kycyIsCisJLnR5cGUJCQk9IFNORF9TT0NfREFJX0kyUywKKwkucHJvYmUJCQk9IGF1MXhwc2NfaTJzX3Byb2JlLAorCS5yZW1vdmUJCQk9IGF1MXhwc2NfaTJzX3JlbW92ZSwKKwkuc3VzcGVuZAkJPSBhdTF4cHNjX2kyc19zdXNwZW5kLAorCS5yZXN1bWUJCQk9IGF1MXhwc2NfaTJzX3Jlc3VtZSwKKwkucGxheWJhY2sgPSB7CisJCS5yYXRlcwkJPSBBVTFYUFNDX0kyU19SQVRFUywKKwkJLmZvcm1hdHMJPSBBVTFYUFNDX0kyU19GTVRTLAorCQkuY2hhbm5lbHNfbWluCT0gMiwKKwkJLmNoYW5uZWxzX21heAk9IDgsCS8qIDIgd2l0aG91dCBleHRlcm5hbCBoZWxwICovCisJfSwKKwkuY2FwdHVyZSA9IHsKKwkJLnJhdGVzCQk9IEFVMVhQU0NfSTJTX1JBVEVTLAorCQkuZm9ybWF0cwk9IEFVMVhQU0NfSTJTX0ZNVFMsCisJCS5jaGFubmVsc19taW4JPSAyLAorCQkuY2hhbm5lbHNfbWF4CT0gOCwJLyogMiB3aXRob3V0IGV4dGVybmFsIGhlbHAgKi8KKwl9LAorCS5vcHMgPSB7CisJCS50cmlnZ2VyCT0gYXUxeHBzY19pMnNfdHJpZ2dlciwKKwkJLmh3X3BhcmFtcwk9IGF1MXhwc2NfaTJzX2h3X3BhcmFtcywKKwl9LAorCS5kYWlfb3BzID0geworCQkuc2V0X2ZtdAk9IGF1MXhwc2NfaTJzX3NldF9mbXQsCisJfSwKK307CitFWFBPUlRfU1lNQk9MKGF1MXhwc2NfaTJzX2RhaSk7CisKK3N0YXRpYyBpbnQgX19pbml0IGF1MXhwc2NfaTJzX2luaXQodm9pZCkKK3sKKwlhdTF4cHNjX2kyc193b3JrZGF0YSA9IE5VTEw7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBhdTF4cHNjX2kyc19leGl0KHZvaWQpCit7Cit9CisKK21vZHVsZV9pbml0KGF1MXhwc2NfaTJzX2luaXQpOworbW9kdWxlX2V4aXQoYXUxeHBzY19pMnNfZXhpdCk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiQXUxMngwL0F1MTU1MCBQU0MgSTJTIEFMU0EgQVNvQyBhdWRpbyBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIk1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4iKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L3BzYy5oIGIvc291bmQvc29jL2F1MXgvcHNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZkYjFhMDQKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9wc2MuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQXUxMngwL0F1MTU1MCBQU0MgQUxTQSBBU29DIGF1ZGlvIHN1cHBvcnQuCisgKgorICogKGMpIDIwMDctMjAwOCBNU0MgVmVydHJpZWJzZ2VzLm0uYi5ILiwKKyAqCU1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIE5PVEU6IGFsbCBvZiB0aGVzZSBkcml2ZXJzIGNhbiBvbmx5IHdvcmsgd2l0aCBhIFNJTkdMRSBpbnN0YW5jZQorICoJIG9mIGEgUFNDLiBNdWx0aXBsZSBpbmRlcGVuZGVudCBhdWRpbyBkZXZpY2VzIGFyZSBpbXBvc3NpYmxlCisgKgkgd2l0aCBBU29DIHYxLgorICovCisKKyNpZm5kZWYgX0FVMVhfUENNX0gKKyNkZWZpbmUgX0FVMVhfUENNX0gKKworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhdTF4cHNjX2FjOTdfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhdTF4cHNjX2kyc19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gYXUxeHBzY19zb2NfcGxhdGZvcm07CitleHRlcm4gc3RydWN0IHNuZF9hYzk3X2J1c19vcHMgc29jX2FjOTdfb3BzOworCitzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhIHsKKwl2b2lkIF9faW9tZW0gKm1taW87CisKKwl1bnNpZ25lZCBsb25nIGNmZzsKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisKKwl1bnNpZ25lZCBsb25nIHBtWzJdOworCXN0cnVjdCByZXNvdXJjZSAqaW9hcmVhOworfTsKKworI2RlZmluZSBQQ01fVFgJMAorI2RlZmluZSBQQ01fUlgJMQorCisjZGVmaW5lIFNVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSkgXAorCSgoc3Vic3RyZWFtKS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0sgPyBQQ01fVFggOiBQQ01fUlgpCisKKy8qIGVhc3kgYWNjZXNzIG1hY3JvcyAqLworI2RlZmluZSBQU0NfQ1RSTCh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfQ1RSTF9PRkZTRVQpCisjZGVmaW5lIFBTQ19TRUwoeCkJKCh1bnNpZ25lZCBsb25nKSgoeCktPm1taW8pICsgUFNDX1NFTF9PRkZTRVQpCisjZGVmaW5lIEkyU19TVEFUKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19JMlNTVEFUX09GRlNFVCkKKyNkZWZpbmUgSTJTX0NGRyh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfSTJTQ0ZHX09GRlNFVCkKKyNkZWZpbmUgSTJTX1BDUih4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfSTJTUENSX09GRlNFVCkKKyNkZWZpbmUgQUM5N19DRkcoeCkJKCh1bnNpZ25lZCBsb25nKSgoeCktPm1taW8pICsgUFNDX0FDOTdDRkdfT0ZGU0VUKQorI2RlZmluZSBBQzk3X0NEQyh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfQUM5N0NEQ19PRkZTRVQpCisjZGVmaW5lIEFDOTdfRVZOVCh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfQUM5N0VWTlRfT0ZGU0VUKQorI2RlZmluZSBBQzk3X1BDUih4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfQUM5N1BDUl9PRkZTRVQpCisjZGVmaW5lIEFDOTdfUlNUKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19BQzk3UlNUX09GRlNFVCkKKyNkZWZpbmUgQUM5N19TVEFUKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19BQzk3U1RBVF9PRkZTRVQpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F1MXgvc2FtcGxlLWFjOTcuYyBiL3NvdW5kL3NvYy9hdTF4L3NhbXBsZS1hYzk3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc1YWU3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdTF4L3NhbXBsZS1hYzk3LmMKQEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKiBTYW1wbGUgQXUxMngwL0F1MTU1MCBQU0MgQUM5NyBzb3VuZCBtYWNoaW5lLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNy0yMDA4IE1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb3V0bGluZWQgaW4gdGhlIGZpbGUgQ09QWUlORyBhdCB0aGUgcm9vdCBvZiB0aGlzCisgKiAgc291cmNlIGFyY2hpdmUuCisgKgorICogVGhpcyBpcyBhIHZlcnkgZ2VuZXJpYyBBQzk3IHNvdW5kIG1hY2hpbmUgZHJpdmVyIGZvciBib2FyZHMgd2hpY2gKKyAqIGhhdmUgKEFDOTcpIGF1ZGlvIGF0IFBTQzEgKGUuZy4gREIxMjAwIGRlbW9ib2FyZHMpLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy1kYXBtLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MTAwMC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLWF1MXgwMC9hdTF4eHhfcHNjLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MXh4eF9kYmRtYS5oPgorCisjaW5jbHVkZSAiLi4vY29kZWNzL2FjOTcuaCIKKyNpbmNsdWRlICJwc2MuaCIKKworc3RhdGljIGludCBhdTF4cHNjX3NhbXBsZV9hYzk3X2luaXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaV9saW5rIGF1MXhwc2Nfc2FtcGxlX2FjOTdfZGFpID0geworCS5uYW1lCQk9ICJBQzk3IiwKKwkuc3RyZWFtX25hbWUJPSAiQUM5NyBIaUZpIiwKKwkuY3B1X2RhaQk9ICZhdTF4cHNjX2FjOTdfZGFpLAkvKiBzZWUgcHNjLWFjOTcuYyAqLworCS5jb2RlY19kYWkJPSAmYWM5N19kYWksCQkvKiBzZWUgY29kZWNzL2FjOTcuYyAqLworCS5pbml0CQk9IGF1MXhwc2Nfc2FtcGxlX2FjOTdfaW5pdCwKKwkub3BzCQk9IE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfbWFjaGluZSBhdTF4cHNjX3NhbXBsZV9hYzk3X21hY2hpbmUgPSB7CisJLm5hbWUJCT0gIkF1MXh4eCBQU0MgQUM5NyBBdWRpbyIsCisJLmRhaV9saW5rCT0gJmF1MXhwc2Nfc2FtcGxlX2FjOTdfZGFpLAorCS5udW1fbGlua3MJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RldmljZSBhdTF4cHNjX3NhbXBsZV9hYzk3X2RldmRhdGEgPSB7CisJLm1hY2hpbmUJPSAmYXUxeHBzY19zYW1wbGVfYWM5N19tYWNoaW5lLAorCS5wbGF0Zm9ybQk9ICZhdTF4cHNjX3NvY19wbGF0Zm9ybSwgLyogc2VlIGRiZG1hMi5jICovCisJLmNvZGVjX2Rldgk9ICZzb2NfY29kZWNfZGV2X2FjOTcsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGF1MXhwc2NfcHNjMV9yZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IENQSFlTQUREUihQU0MxX0JBU0VfQUREUiksCisJCS5lbmQJPSBDUEhZU0FERFIoUFNDMV9CQVNFX0FERFIpICsgMHgwMDBmZmZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0gPSB7CisjaWZkZWYgQ09ORklHX1NPQ19BVTEyMDAKKwkJLnN0YXJ0CT0gQVUxMjAwX1BTQzFfSU5ULAorCQkuZW5kCT0gQVUxMjAwX1BTQzFfSU5ULAorI2VsaWYgZGVmaW5lZChDT05GSUdfU09DX0FVMTU1MCkKKwkJLnN0YXJ0CT0gQVUxNTUwX1BTQzFfSU5ULAorCQkuZW5kCT0gQVUxNTUwX1BTQzFfSU5ULAorI2VuZGlmCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCisJWzJdID0geworCQkuc3RhcnQJPSBEU0NSX0NNRDBfUFNDMV9UWCwKKwkJLmVuZAk9IERTQ1JfQ01EMF9QU0MxX1RYLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0RNQSwKKwl9LAorCVszXSA9IHsKKwkJLnN0YXJ0CT0gRFNDUl9DTUQwX1BTQzFfUlgsCisJCS5lbmQJPSBEU0NSX0NNRDBfUFNDMV9SWCwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9ETUEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphdTF4cHNjX3NhbXBsZV9hYzk3X2RldjsKKworc3RhdGljIGludCBfX2luaXQgYXUxeHBzY19zYW1wbGVfYWM5N19sb2FkKHZvaWQpCit7CisJaW50IHJldDsKKworI2lmZGVmIENPTkZJR19TT0NfQVUxMjAwCisJdW5zaWduZWQgbG9uZyBpbzsKKworCS8qIG1vZGlmeSBzeXNfcGluZnVuYyBmb3IgQUM5NyBvbiBQU0MxICovCisJaW8gPSBhdV9yZWFkbChTWVNfUElORlVOQyk7CisJaW8gfD0gU1lTX1BJTkZVTkNfUDFDOworCWlvICY9IH4oU1lTX1BJTkZVTkNfUDFBIHwgU1lTX1BJTkZVTkNfUDFCKTsKKwlhdV93cml0ZWwoaW8sIFNZU19QSU5GVU5DKTsKKwlhdV9zeW5jKCk7CisjZW5kaWYKKworCXJldCA9IC1FTk9NRU07CisKKwkvKiBzZXR1cCBQU0MgY2xvY2sgc291cmNlIGZvciBBQzk3IHBhcnQ6IGV4dGVybmFsIGNsb2NrIHByb3ZpZGVkCisJICogYnkgY29kZWMuICBUaGUgcHNjLWFjOTcuYyBkcml2ZXIgZGVwZW5kcyBvbiB0aGlzIHNldHRpbmchCisJICovCisJYXVfd3JpdGVsKFBTQ19TRUxfQ0xLX1NFUkNMSywgUFNDMV9CQVNFX0FERFIgKyBQU0NfU0VMX09GRlNFVCk7CisJYXVfc3luYygpOworCisJYXUxeHBzY19zYW1wbGVfYWM5N19kZXYgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNvYy1hdWRpbyIsIC0xKTsKKwlpZiAoIWF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2KQorCQlnb3RvIG91dDsKKworCWF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2LT5yZXNvdXJjZSA9CisJCWttZW1kdXAoYXUxeHBzY19wc2MxX3Jlcywgc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSkgKgorCQkJQVJSQVlfU0laRShhdTF4cHNjX3BzYzFfcmVzKSwgR0ZQX0tFUk5FTCk7CisJYXUxeHBzY19zYW1wbGVfYWM5N19kZXYtPm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKGF1MXhwc2NfcHNjMV9yZXMpOworCWF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2LT5pZCA9IDE7CisKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShhdTF4cHNjX3NhbXBsZV9hYzk3X2RldiwKKwkJCSAgICAgJmF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2ZGF0YSk7CisJYXUxeHBzY19zYW1wbGVfYWM5N19kZXZkYXRhLmRldiA9ICZhdTF4cHNjX3NhbXBsZV9hYzk3X2Rldi0+ZGV2OworCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQoYXUxeHBzY19zYW1wbGVfYWM5N19kZXYpOworCisJaWYgKHJldCkgeworCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KGF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2KTsKKwkJYXUxeHBzY19zYW1wbGVfYWM5N19kZXYgPSBOVUxMOworCX0KKworb3V0OgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBhdTF4cHNjX3NhbXBsZV9hYzk3X2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihhdTF4cHNjX3NhbXBsZV9hYzk3X2Rldik7Cit9CisKK21vZHVsZV9pbml0KGF1MXhwc2Nfc2FtcGxlX2FjOTdfbG9hZCk7Cittb2R1bGVfZXhpdChhdTF4cHNjX3NhbXBsZV9hYzk3X2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF1MXh4eCBQU0Mgc2FtcGxlIEFDOTcgbWFjaGluZSIpOworTU9EVUxFX0FVVEhPUigiTWFudWVsIExhdXNzIDxtYW5vQHJvYXJpbmVsay5ob21lbGludXgubmV0PiIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9LY29uZmlnIGIvc291bmQvc29jL2NvZGVjcy9LY29uZmlnCmluZGV4IDM5MDNhYjcuLjFkYjA0YTIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcKQEAgLTEsMzEgKzEsMzcgQEAKIGNvbmZpZyBTTkRfU09DX0FDOTdfQ09ERUMKIAl0cmlzdGF0ZQotCWRlcGVuZHMgb24gU05EX1NPQworCXNlbGVjdCBTTkRfQUM5N19DT0RFQworCitjb25maWcgU05EX1NPQ19BSzQ1MzUKKwl0cmlzdGF0ZQorCitjb25maWcgU05EX1NPQ19VREExMzgwCisgICAgICAgIHRyaXN0YXRlCisKK2NvbmZpZyBTTkRfU09DX1dNODUxMAorCXRyaXN0YXRlCiAKIGNvbmZpZyBTTkRfU09DX1dNODczMQogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCiAKIGNvbmZpZyBTTkRfU09DX1dNODc1MAogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCiAKIGNvbmZpZyBTTkRfU09DX1dNODc1MwogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCisKK2NvbmZpZyBTTkRfU09DX1dNODk5MAorCXRyaXN0YXRlCiAKIGNvbmZpZyBTTkRfU09DX1dNOTcxMgogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCiAKIGNvbmZpZyBTTkRfU09DX1dNOTcxMwogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCiAKICMgQ2lycnVzIExvZ2ljIENTNDI3MCBDb2RlYwogY29uZmlnIFNORF9TT0NfQ1M0MjcwCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORF9TT0MKIAogIyBDaXJydXMgTG9naWMgQ1M0MjcwIENvZGVjIEhhcmR3YXJlIE11dGUgU3VwcG9ydAogIyBTZWxlY3QgaWYgeW91IGhhdmUgZXh0ZXJuYWwgbXV0aW5nIGNpcmN1aXRyeSBhdHRhY2hlZCB0byB5b3VyIENTNDI3MC4KQEAgLTQzLDQgKzQ5LDQgQEAKIAogY29uZmlnIFNORF9TT0NfVExWMzIwQUlDM1gKIAl0cmlzdGF0ZQotCWRlcGVuZHMgb24gU05EX1NPQyAmJiBJMkMKKwlkZXBlbmRzIG9uIEkyQwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZSBiL3NvdW5kL3NvYy9jb2RlY3MvTWFrZWZpbGUKaW5kZXggNGUxMzE0Yy4uZDdiOTdhYiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZQorKysgYi9zb3VuZC9zb2MvY29kZWNzL01ha2VmaWxlCkBAIC0xLDE2ICsxLDI0IEBACiBzbmQtc29jLWFjOTctb2JqcyA6PSBhYzk3Lm8KK3NuZC1zb2MtYWs0NTM1LW9ianMgOj0gYWs0NTM1Lm8KK3NuZC1zb2MtdWRhMTM4MC1vYmpzIDo9IHVkYTEzODAubworc25kLXNvYy13bTg1MTAtb2JqcyA6PSB3bTg1MTAubwogc25kLXNvYy13bTg3MzEtb2JqcyA6PSB3bTg3MzEubwogc25kLXNvYy13bTg3NTAtb2JqcyA6PSB3bTg3NTAubwogc25kLXNvYy13bTg3NTMtb2JqcyA6PSB3bTg3NTMubworc25kLXNvYy13bTg5OTAtb2JqcyA6PSB3bTg5OTAubwogc25kLXNvYy13bTk3MTItb2JqcyA6PSB3bTk3MTIubwogc25kLXNvYy13bTk3MTMtb2JqcyA6PSB3bTk3MTMubwogc25kLXNvYy1jczQyNzAtb2JqcyA6PSBjczQyNzAubwogc25kLXNvYy10bHYzMjBhaWMzeC1vYmpzIDo9IHRsdjMyMGFpYzN4Lm8KIAogb2JqLSQoQ09ORklHX1NORF9TT0NfQUM5N19DT0RFQykJKz0gc25kLXNvYy1hYzk3Lm8KK29iai0kKENPTkZJR19TTkRfU09DX0FLNDUzNSkJKz0gc25kLXNvYy1hazQ1MzUubworb2JqLSQoQ09ORklHX1NORF9TT0NfVURBMTM4MCkJKz0gc25kLXNvYy11ZGExMzgwLm8KK29iai0kKENPTkZJR19TTkRfU09DX1dNODUxMCkJKz0gc25kLXNvYy13bTg1MTAubwogb2JqLSQoQ09ORklHX1NORF9TT0NfV004NzMxKQkrPSBzbmQtc29jLXdtODczMS5vCiBvYmotJChDT05GSUdfU05EX1NPQ19XTTg3NTApCSs9IHNuZC1zb2Mtd204NzUwLm8KIG9iai0kKENPTkZJR19TTkRfU09DX1dNODc1MykJKz0gc25kLXNvYy13bTg3NTMubworb2JqLSQoQ09ORklHX1NORF9TT0NfV004OTkwKQkrPSBzbmQtc29jLXdtODk5MC5vCiBvYmotJChDT05GSUdfU05EX1NPQ19XTTk3MTIpCSs9IHNuZC1zb2Mtd205NzEyLm8KIG9iai0kKENPTkZJR19TTkRfU09DX1dNOTcxMykJKz0gc25kLXNvYy13bTk3MTMubwogb2JqLSQoQ09ORklHX1NORF9TT0NfQ1M0MjcwKQkrPSBzbmQtc29jLWNzNDI3MC5vCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL2FjOTcuYyBiL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5jCmluZGV4IDJhMWZmZTMuLjYxZmQ5NmMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5jCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMTd0aCBPY3QgMjAwNSAgIEluaXRpYWwgdmVyc2lvbi4KLSAqCiAgKiBHZW5lcmljIEFDOTcgc3VwcG9ydC4KICAqLwogCkBAIC0yNCw2ICsyMSw3IEBACiAjaW5jbHVkZSA8c291bmQvYWM5N19jb2RlYy5oPgogI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KICNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlICJhYzk3LmgiCiAKICNkZWZpbmUgQUM5N19WRVJTSU9OICIwLjYiCiAKQEAgLTQzLDcgKzQxLDcgQEAKIAkJU05EUlZfUENNX1JBVEVfMjIwNTAgfCBTTkRSVl9QQ01fUkFURV80NDEwMCB8XAogCQlTTkRSVl9QQ01fUkFURV80ODAwMCkKIAotc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIGFjOTdfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIGFjOTdfZGFpID0gewogCS5uYW1lID0gIkFDOTcgSGlGaSIsCiAJLnR5cGUgPSBTTkRfU09DX0RBSV9BQzk3LAogCS5wbGF5YmFjayA9IHsKQEAgLTE0Niw5ICsxNDQsMzQgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIENPTkZJR19QTQorc3RhdGljIGludCBhYzk3X3NvY19zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBtc2cpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCXNuZF9hYzk3X3N1c3BlbmQoc29jZGV2LT5jb2RlYy0+YWM5Nyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhYzk3X3NvY19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJc25kX2FjOTdfcmVzdW1lKHNvY2Rldi0+Y29kZWMtPmFjOTcpOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorI2RlZmluZSBhYzk3X3NvY19zdXNwZW5kIE5VTEwKKyNkZWZpbmUgYWM5N19zb2NfcmVzdW1lIE5VTEwKKyNlbmRpZgorCiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl9hYzk3ID0gewogCS5wcm9iZSA9IAlhYzk3X3NvY19wcm9iZSwKIAkucmVtb3ZlID0gCWFjOTdfc29jX3JlbW92ZSwKKwkuc3VzcGVuZCA9CWFjOTdfc29jX3N1c3BlbmQsCisJLnJlc3VtZSA9CWFjOTdfc29jX3Jlc3VtZSwKIH07CiBFWFBPUlRfU1lNQk9MX0dQTChzb2NfY29kZWNfZGV2X2FjOTcpOwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL2FjOTcuaCBiL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5oCmluZGV4IDJiZjZkNjkuLjI4MWFhNDIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5oCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5oCkBAIC0xNCw2ICsxNCw2IEBACiAjZGVmaW5lIF9fTElOVVhfU05EX1NPQ19BQzk3X0gKIAogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X2FjOTc7Ci1leHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIGFjOTdfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhYzk3X2RhaTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL2FrNDUzNS5jIGIvc291bmQvc29jL2NvZGVjcy9hazQ1MzUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjYwMDNjCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2NvZGVjcy9hazQ1MzUuYwpAQCAtMCwwICsxLDY5NiBAQAorLyoKKyAqIGFrNDUzNS5jICAtLSAgQUs0NTM1IEFMU0EgU29jIEF1ZGlvIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAyMDA1IE9wZW5lZGhhbmQgTHRkLgorICoKKyAqIEF1dGhvcjogUmljaGFyZCBQdXJkaWUgPHJpY2hhcmRAb3BlbmVkaGFuZC5jb20+CisgKgorICogQmFzZWQgb24gd204NzUzLmMgYnkgTGlhbSBHaXJkd29vZAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvcG0uaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy1kYXBtLmg+CisjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorCisjaW5jbHVkZSAiYWs0NTM1LmgiCisKKyNkZWZpbmUgQVVESU9fTkFNRSAiYWs0NTM1IgorI2RlZmluZSBBSzQ1MzVfVkVSU0lPTiAiMC4zIgorCitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl9hazQ1MzU7CisKKy8qIGNvZGVjIHByaXZhdGUgZGF0YSAqLworc3RydWN0IGFrNDUzNV9wcml2IHsKKwl1bnNpZ25lZCBpbnQgc3lzY2xrOworfTsKKworLyoKKyAqIGFrNDUzNSByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgY29uc3QgdTE2IGFrNDUzNV9yZWdbQUs0NTM1X0NBQ0hFUkVHTlVNXSA9IHsKKyAgICAweDAwMDAsIDB4MDA4MCwgMHgwMDAwLCAweDAwMDMsCisgICAgMHgwMDAyLCAweDAwMDAsIDB4MDAxMSwgMHgwMDAxLAorICAgIDB4MDAwMCwgMHgwMDQwLCAweDAwMzYsIDB4MDAxMCwKKyAgICAweDAwMDAsIDB4MDAwMCwgMHgwMDU3LCAweDAwMDAsCit9OworCisvKgorICogcmVhZCBhazQ1MzUgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgYWs0NTM1X3JlYWRfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWlmIChyZWcgPj0gQUs0NTM1X0NBQ0hFUkVHTlVNKQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIGNhY2hlW3JlZ107Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGFrNDUzNV9yZWFkKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnKQoreworCXU4IGRhdGE7CisJZGF0YSA9IHJlZzsKKworCWlmIChjb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgJmRhdGEsIDEpICE9IDEpCisJCXJldHVybiAtRUlPOworCisJaWYgKGNvZGVjLT5od19yZWFkKGNvZGVjLT5jb250cm9sX2RhdGEsICZkYXRhLCAxKSAhPSAxKQorCQlyZXR1cm4gLUVJTzsKKworCXJldHVybiBkYXRhOworfTsKKworLyoKKyAqIHdyaXRlIGFrNDUzNSByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHZvaWQgYWs0NTM1X3dyaXRlX3JlZ19jYWNoZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJdTE2IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWlmIChyZWcgPj0gQUs0NTM1X0NBQ0hFUkVHTlVNKQorCQlyZXR1cm47CisJY2FjaGVbcmVnXSA9IHZhbHVlOworfQorCisvKgorICogd3JpdGUgdG8gdGhlIEFLNDUzNSByZWdpc3RlciBzcGFjZQorICovCitzdGF0aWMgaW50IGFrNDUzNV93cml0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIHVuc2lnbmVkIGludCByZWcsCisJdW5zaWduZWQgaW50IHZhbHVlKQoreworCXU4IGRhdGFbMl07CisKKwkvKiBkYXRhIGlzCisJICogICBEMTUuLkQ4IEFLNDUzNSByZWdpc3RlciBvZmZzZXQKKwkgKiAgIEQ3Li4uRDAgcmVnaXN0ZXIgZGF0YQorCSAqLworCWRhdGFbMF0gPSByZWcgJiAweGZmOworCWRhdGFbMV0gPSB2YWx1ZSAmIDB4ZmY7CisKKwlhazQ1MzVfd3JpdGVfcmVnX2NhY2hlKGNvZGVjLCByZWcsIHZhbHVlKTsKKwlpZiAoY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpID09IDIpCisJCXJldHVybiAwOworCWVsc2UKKwkJcmV0dXJuIC1FSU87Cit9CisKK3N0YXRpYyBpbnQgYWs0NTM1X3N5bmMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWludCBpLCByID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBBSzQ1MzVfQ0FDSEVSRUdOVU07IGkrKykKKwkJciB8PSBhazQ1MzVfd3JpdGUoY29kZWMsIGksIGNhY2hlW2ldKTsKKworCXJldHVybiByOworfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKmFrNDUzNV9tb25vX2dhaW5bXSA9IHsiKzZkQiIsICItMTdkQiJ9Oworc3RhdGljIGNvbnN0IGNoYXIgKmFrNDUzNV9tb25vX291dFtdID0geyIoTCArIFIpLzIiLCAiSGktWiJ9Oworc3RhdGljIGNvbnN0IGNoYXIgKmFrNDUzNV9ocF9vdXRbXSA9IHsiU3RlcmVvIiwgIk1vbm8ifTsKK3N0YXRpYyBjb25zdCBjaGFyICphazQ1MzVfZGVlbXBbXSA9IHsiNDQuMWtIeiIsICJPZmYiLCAiNDhrSHoiLCAiMzJrSHoifTsKK3N0YXRpYyBjb25zdCBjaGFyICphazQ1MzVfbWljX3NlbGVjdFtdID0geyJJbnRlcm5hbCIsICJFeHRlcm5hbCJ9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIGFrNDUzNV9lbnVtW10gPSB7CisJU09DX0VOVU1fU0lOR0xFKEFLNDUzNV9TSUcxLCA3LCAyLCBhazQ1MzVfbW9ub19nYWluKSwKKwlTT0NfRU5VTV9TSU5HTEUoQUs0NTM1X1NJRzEsIDYsIDIsIGFrNDUzNV9tb25vX291dCksCisJU09DX0VOVU1fU0lOR0xFKEFLNDUzNV9NT0RFMiwgMiwgMiwgYWs0NTM1X2hwX291dCksCisJU09DX0VOVU1fU0lOR0xFKEFLNDUzNV9EQUMsIDAsIDQsIGFrNDUzNV9kZWVtcCksCisJU09DX0VOVU1fU0lOR0xFKEFLNDUzNV9NSUMsIDEsIDIsIGFrNDUzNV9taWNfc2VsZWN0KSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfc25kX2NvbnRyb2xzW10gPSB7CisJU09DX1NJTkdMRSgiQUxDMiBTd2l0Y2giLCBBSzQ1MzVfU0lHMSwgMSwgMSwgMCksCisJU09DX0VOVU0oIk1vbm8gMSBPdXRwdXQiLCBhazQ1MzVfZW51bVsxXSksCisJU09DX0VOVU0oIk1vbm8gMSBHYWluIiwgYWs0NTM1X2VudW1bMF0pLAorCVNPQ19FTlVNKCJIZWFkcGhvbmUgT3V0cHV0IiwgYWs0NTM1X2VudW1bMl0pLAorCVNPQ19FTlVNKCJQbGF5YmFjayBEZWVtcGhhc2lzIiwgYWs0NTM1X2VudW1bM10pLAorCVNPQ19TSU5HTEUoIkJhc3MgVm9sdW1lIiwgQUs0NTM1X0RBQywgMiwgMywgMCksCisJU09DX1NJTkdMRSgiTWljIEJvb3N0ICgrMjBkQikgU3dpdGNoIiwgQUs0NTM1X01JQywgMCwgMSwgMCksCisJU09DX0VOVU0oIk1pYyBTZWxlY3QiLCBhazQ1MzVfZW51bVs0XSksCisJU09DX1NJTkdMRSgiQUxDIE9wZXJhdGlvbiBUaW1lIiwgQUs0NTM1X1RJTUVSLCAwLCAzLCAwKSwKKwlTT0NfU0lOR0xFKCJBTEMgUmVjb3ZlcnkgVGltZSIsIEFLNDUzNV9USU1FUiwgMiwgMywgMCksCisJU09DX1NJTkdMRSgiQUxDIFpDIFRpbWUiLCBBSzQ1MzVfVElNRVIsIDQsIDMsIDApLAorCVNPQ19TSU5HTEUoIkFMQyAxIFN3aXRjaCIsIEFLNDUzNV9BTEMxLCA1LCAxLCAwKSwKKwlTT0NfU0lOR0xFKCJBTEMgMiBTd2l0Y2giLCBBSzQ1MzVfQUxDMSwgNiwgMSwgMCksCisJU09DX1NJTkdMRSgiQUxDIFZvbHVtZSIsIEFLNDUzNV9BTEMyLCAwLCAxMjcsIDApLAorCVNPQ19TSU5HTEUoIkNhcHR1cmUgVm9sdW1lIiwgQUs0NTM1X1BHQSwgMCwgMTI3LCAwKSwKKwlTT0NfU0lOR0xFKCJMZWZ0IFBsYXliYWNrIFZvbHVtZSIsIEFLNDUzNV9MQVRULCAwLCAxMjcsIDEpLAorCVNPQ19TSU5HTEUoIlJpZ2h0IFBsYXliYWNrIFZvbHVtZSIsIEFLNDUzNV9SQVRULCAwLCAxMjcsIDEpLAorCVNPQ19TSU5HTEUoIkFVWCBCeXBhc3MgVm9sdW1lIiwgQUs0NTM1X1ZPTCwgMCwgMTUsIDApLAorCVNPQ19TSU5HTEUoIk1pYyBTaWRldG9uZSBWb2x1bWUiLCBBSzQ1MzVfVk9MLCA0LCA3LCAwKSwKK307CisKKy8qIGFkZCBub24gZGFwbSBjb250cm9scyAqLworc3RhdGljIGludCBhazQ1MzVfYWRkX2NvbnRyb2xzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlpbnQgZXJyLCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYWs0NTM1X3NuZF9jb250cm9scyk7IGkrKykgeworCQllcnIgPSBzbmRfY3RsX2FkZChjb2RlYy0+Y2FyZCwKKwkJCXNuZF9zb2NfY25ldygmYWs0NTM1X3NuZF9jb250cm9sc1tpXSwgY29kZWMsIE5VTEwpKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiAwOworfQorCisvKiBNb25vIDEgTWl4ZXIgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfbW9ubzFfbWl4ZXJfY29udHJvbHNbXSA9IHsKKwlTT0NfREFQTV9TSU5HTEUoIk1pYyBTaWRldG9uZSBTd2l0Y2giLCBBSzQ1MzVfU0lHMSwgNCwgMSwgMCksCisJU09DX0RBUE1fU0lOR0xFKCJNb25vIFBsYXliYWNrIFN3aXRjaCIsIEFLNDUzNV9TSUcxLCA1LCAxLCAwKSwKK307CisKKy8qIFN0ZXJlbyBNaXhlciAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFrNDUzNV9zdGVyZW9fbWl4ZXJfY29udHJvbHNbXSA9IHsKKwlTT0NfREFQTV9TSU5HTEUoIk1pYyBTaWRldG9uZSBTd2l0Y2giLCBBSzQ1MzVfU0lHMiwgNCwgMSwgMCksCisJU09DX0RBUE1fU0lOR0xFKCJQbGF5YmFjayBTd2l0Y2giLCBBSzQ1MzVfU0lHMiwgNywgMSwgMCksCisJU09DX0RBUE1fU0lOR0xFKCJBdXggQnlwYXNzIFN3aXRjaCIsIEFLNDUzNV9TSUcyLCA1LCAxLCAwKSwKK307CisKKy8qIElucHV0IE1peGVyICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWs0NTM1X2lucHV0X21peGVyX2NvbnRyb2xzW10gPSB7CisJU09DX0RBUE1fU0lOR0xFKCJNaWMgQ2FwdHVyZSBTd2l0Y2giLCBBSzQ1MzVfTUlDLCAyLCAxLCAwKSwKKwlTT0NfREFQTV9TSU5HTEUoIkF1eCBDYXB0dXJlIFN3aXRjaCIsIEFLNDUzNV9NSUMsIDUsIDEsIDApLAorfTsKKworLyogSW5wdXQgbXV4ICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWs0NTM1X2lucHV0X211eF9jb250cm9sID0KKwlTT0NfREFQTV9FTlVNKCJJbnB1dCBTZWxlY3QiLCBhazQ1MzVfZW51bVs0XSk7CisKKy8qIEhQIEwgc3dpdGNoICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWs0NTM1X2hwbF9jb250cm9sID0KKwlTT0NfREFQTV9TSU5HTEUoIlN3aXRjaCIsIEFLNDUzNV9TSUcyLCAxLCAxLCAxKTsKKworLyogSFAgUiBzd2l0Y2ggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfaHByX2NvbnRyb2wgPQorCVNPQ19EQVBNX1NJTkdMRSgiU3dpdGNoIiwgQUs0NTM1X1NJRzIsIDAsIDEsIDEpOworCisvKiBtb25vIDIgc3dpdGNoICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWs0NTM1X21vbm8yX2NvbnRyb2wgPQorCVNPQ19EQVBNX1NJTkdMRSgiU3dpdGNoIiwgQUs0NTM1X1NJRzEsIDAsIDEsIDApOworCisvKiBMaW5lIG91dCBzd2l0Y2ggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfbGluZV9jb250cm9sID0KKwlTT0NfREFQTV9TSU5HTEUoIlN3aXRjaCIsIEFLNDUzNV9TSUcyLCA2LCAxLCAwKTsKKworLyogYWs0NTM1IGRhcG0gd2lkZ2V0cyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IGFrNDUzNV9kYXBtX3dpZGdldHNbXSA9IHsKKwlTTkRfU09DX0RBUE1fTUlYRVIoIlN0ZXJlbyBNaXhlciIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9zdGVyZW9fbWl4ZXJfY29udHJvbHNbMF0sCisJCUFSUkFZX1NJWkUoYWs0NTM1X3N0ZXJlb19taXhlcl9jb250cm9scykpLAorCVNORF9TT0NfREFQTV9NSVhFUigiTW9ubzEgTWl4ZXIiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZhazQ1MzVfbW9ubzFfbWl4ZXJfY29udHJvbHNbMF0sCisJCUFSUkFZX1NJWkUoYWs0NTM1X21vbm8xX21peGVyX2NvbnRyb2xzKSksCisJU05EX1NPQ19EQVBNX01JWEVSKCJJbnB1dCBNaXhlciIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9pbnB1dF9taXhlcl9jb250cm9sc1swXSwKKwkJQVJSQVlfU0laRShhazQ1MzVfaW5wdXRfbWl4ZXJfY29udHJvbHMpKSwKKwlTTkRfU09DX0RBUE1fTVVYKCJJbnB1dCBNdXgiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZhazQ1MzVfaW5wdXRfbXV4X2NvbnRyb2wpLAorCVNORF9TT0NfREFQTV9EQUMoIkRBQyIsICJQbGF5YmFjayIsIEFLNDUzNV9QTTIsIDAsIDApLAorCVNORF9TT0NfREFQTV9TV0lUQ0goIk1vbm8gMiBFbmFibGUiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZhazQ1MzVfbW9ubzJfY29udHJvbCksCisJLyogc3BlYWtlciBwb3dlcnNhdmUgYml0ICovCisJU05EX1NPQ19EQVBNX1BHQSgiU3BlYWtlciBFbmFibGUiLCBBSzQ1MzVfTU9ERTIsIDAsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9TV0lUQ0goIkxpbmUgT3V0IEVuYWJsZSIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9saW5lX2NvbnRyb2wpLAorCVNORF9TT0NfREFQTV9TV0lUQ0goIkxlZnQgSFAgRW5hYmxlIiwgU05EX1NPQ19OT1BNLCAwLCAwLAorCQkmYWs0NTM1X2hwbF9jb250cm9sKSwKKwlTTkRfU09DX0RBUE1fU1dJVENIKCJSaWdodCBIUCBFbmFibGUiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZhazQ1MzVfaHByX2NvbnRyb2wpLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIkxPVVQiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJIUEwiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJST1VUIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiSFBSIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiU1BQIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiU1BOIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiTU9VVDEiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJNT1VUMiIpLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIk1JQ09VVCIpLAorCVNORF9TT0NfREFQTV9BREMoIkFEQyIsICJDYXB0dXJlIiwgQUs0NTM1X1BNMSwgMCwgMCksCisJU05EX1NPQ19EQVBNX1BHQSgiU3BrIEFtcCIsIEFLNDUzNV9QTTIsIDMsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9QR0EoIkhQIFIgQW1wIiwgQUs0NTM1X1BNMiwgMSwgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX1BHQSgiSFAgTCBBbXAiLCBBSzQ1MzVfUE0yLCAyLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJNaWMiLCBBSzQ1MzVfUE0xLCAxLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJMaW5lIE91dCIsIEFLNDUzNV9QTTEsIDQsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9QR0EoIk1vbm8gT3V0IiwgQUs0NTM1X1BNMSwgMywgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX1BHQSgiQVVYIEluIiwgQUs0NTM1X1BNMSwgMiwgMCwgTlVMTCwgMCksCisKKwlTTkRfU09DX0RBUE1fTUlDQklBUygiTWljIEludCBCaWFzIiwgQUs0NTM1X01JQywgMywgMCksCisJU05EX1NPQ19EQVBNX01JQ0JJQVMoIk1pYyBFeHQgQmlhcyIsIEFLNDUzNV9NSUMsIDQsIDApLAorCVNORF9TT0NfREFQTV9JTlBVVCgiTUlDSU4iKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIk1JQ0VYVCIpLAorCVNORF9TT0NfREFQTV9JTlBVVCgiQVVYIiksCisJU05EX1NPQ19EQVBNX0lOUFVUKCJNSU4iKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIkFJTiIpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CisJLypzdGVyZW8gbWl4ZXIgKi8KKwl7IlN0ZXJlbyBNaXhlciIsICJQbGF5YmFjayBTd2l0Y2giLCAiREFDIn0sCisJeyJTdGVyZW8gTWl4ZXIiLCAiTWljIFNpZGV0b25lIFN3aXRjaCIsICJNaWMifSwKKwl7IlN0ZXJlbyBNaXhlciIsICJBdXggQnlwYXNzIFN3aXRjaCIsICJBVVggSW4ifSwKKworCS8qIG1vbm8xIG1peGVyICovCisJeyJNb25vMSBNaXhlciIsICJNaWMgU2lkZXRvbmUgU3dpdGNoIiwgIk1pYyJ9LAorCXsiTW9ubzEgTWl4ZXIiLCAiTW9ubyBQbGF5YmFjayBTd2l0Y2giLCAiREFDIn0sCisKKwkvKiBNaWMgKi8KKwl7Ik1pYyIsIE5VTEwsICJBSU4ifSwKKwl7IklucHV0IE11eCIsICJJbnRlcm5hbCIsICJNaWMgSW50IEJpYXMifSwKKwl7IklucHV0IE11eCIsICJFeHRlcm5hbCIsICJNaWMgRXh0IEJpYXMifSwKKwl7Ik1pYyBJbnQgQmlhcyIsIE5VTEwsICJNSUNJTiJ9LAorCXsiTWljIEV4dCBCaWFzIiwgTlVMTCwgIk1JQ0VYVCJ9LAorCXsiTUlDT1VUIiwgTlVMTCwgIklucHV0IE11eCJ9LAorCisJLyogbGluZSBvdXQgKi8KKwl7IkxPVVQiLCBOVUxMLCAiTGluZSBPdXQgRW5hYmxlIn0sCisJeyJST1VUIiwgTlVMTCwgIkxpbmUgT3V0IEVuYWJsZSJ9LAorCXsiTGluZSBPdXQgRW5hYmxlIiwgIlN3aXRjaCIsICJMaW5lIE91dCJ9LAorCXsiTGluZSBPdXQiLCBOVUxMLCAiU3RlcmVvIE1peGVyIn0sCisKKwkvKiBtb25vMSBvdXQgKi8KKwl7Ik1PVVQxIiwgTlVMTCwgIk1vbm8gT3V0In0sCisJeyJNb25vIE91dCIsIE5VTEwsICJNb25vMSBNaXhlciJ9LAorCisJLyogbGVmdCBIUCAqLworCXsiSFBMIiwgTlVMTCwgIkxlZnQgSFAgRW5hYmxlIn0sCisJeyJMZWZ0IEhQIEVuYWJsZSIsICJTd2l0Y2giLCAiSFAgTCBBbXAifSwKKwl7IkhQIEwgQW1wIiwgTlVMTCwgIlN0ZXJlbyBNaXhlciJ9LAorCisJLyogcmlnaHQgSFAgKi8KKwl7IkhQUiIsIE5VTEwsICJSaWdodCBIUCBFbmFibGUifSwKKwl7IlJpZ2h0IEhQIEVuYWJsZSIsICJTd2l0Y2giLCAiSFAgUiBBbXAifSwKKwl7IkhQIFIgQW1wIiwgTlVMTCwgIlN0ZXJlbyBNaXhlciJ9LAorCisJLyogc3BlYWtlciAqLworCXsiU1BQIiwgTlVMTCwgIlNwZWFrZXIgRW5hYmxlIn0sCisJeyJTUE4iLCBOVUxMLCAiU3BlYWtlciBFbmFibGUifSwKKwl7IlNwZWFrZXIgRW5hYmxlIiwgIlN3aXRjaCIsICJTcGsgQW1wIn0sCisJeyJTcGsgQW1wIiwgTlVMTCwgIk1JTiJ9LAorCisJLyogbW9ubyAyICovCisJeyJNT1VUMiIsIE5VTEwsICJNb25vIDIgRW5hYmxlIn0sCisJeyJNb25vIDIgRW5hYmxlIiwgIlN3aXRjaCIsICJTdGVyZW8gTWl4ZXIifSwKKworCS8qIEF1eCBJbiAqLworCXsiQXV4IEluIiwgTlVMTCwgIkFVWCJ9LAorCisJLyogQURDICovCisJeyJBREMiLCBOVUxMLCAiSW5wdXQgTWl4ZXIifSwKKwl7IklucHV0IE1peGVyIiwgIk1pYyBDYXB0dXJlIFN3aXRjaCIsICJNaWMifSwKKwl7IklucHV0IE1peGVyIiwgIkF1eCBDYXB0dXJlIFN3aXRjaCIsICJBdXggSW4ifSwKK307CisKK3N0YXRpYyBpbnQgYWs0NTM1X2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCBhazQ1MzVfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRShhazQ1MzVfZGFwbV93aWRnZXRzKSk7CisKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOworCisJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhazQ1MzVfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwlzdHJ1Y3QgYWs0NTM1X3ByaXYgKmFrNDUzNSA9IGNvZGVjLT5wcml2YXRlX2RhdGE7CisKKwlhazQ1MzUtPnN5c2NsayA9IGZyZXE7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWs0NTM1X2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXN0cnVjdCBhazQ1MzVfcHJpdiAqYWs0NTM1ID0gY29kZWMtPnByaXZhdGVfZGF0YTsKKwl1OCBtb2RlMiA9IGFrNDUzNV9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUs0NTM1X01PREUyKSAmIH4oMHgzIDw8IDUpOworCWludCByYXRlID0gcGFyYW1zX3JhdGUocGFyYW1zKSwgZnMgPSAyNTY7CisKKwlpZiAocmF0ZSkKKwkJZnMgPSBhazQ1MzUtPnN5c2NsayAvIHJhdGU7CisKKwkvKiBzZXQgZnMgKi8KKwlzd2l0Y2ggKGZzKSB7CisJY2FzZSAxMDI0OgorCQltb2RlMiB8PSAoMHgyIDw8IDUpOworCQlicmVhazsKKwljYXNlIDUxMjoKKwkJbW9kZTIgfD0gKDB4MSA8PCA1KTsKKwkJYnJlYWs7CisJY2FzZSAyNTY6CisJCWJyZWFrOworCX0KKworCS8qIHNldCByYXRlICovCisJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfTU9ERTIsIG1vZGUyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhazQ1MzVfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJCXVuc2lnbmVkIGludCBmbXQpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwl1OCBtb2RlMSA9IDA7CisKKwkvKiBpbnRlcmZhY2UgZm9ybWF0ICovCisJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9GT1JNQVRfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfSTJTOgorCQltb2RlMSA9IDB4MDAwMjsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9MRUZUX0o6CisJCW1vZGUxID0gMHgwMDAxOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiB1c2UgMzIgZnMgZm9yIEJDTEsgdG8gc2F2ZSBwb3dlciAqLworCW1vZGUxIHw9IDB4NDsKKworCWFrNDUzNV93cml0ZShjb2RlYywgQUs0NTM1X01PREUxLCBtb2RlMSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWs0NTM1X211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CisJdTE2IG11dGVfcmVnID0gYWs0NTM1X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBBSzQ1MzVfREFDKSAmIDB4ZmZkZjsKKwlpZiAoIW11dGUpCisJCWFrNDUzNV93cml0ZShjb2RlYywgQUs0NTM1X0RBQywgbXV0ZV9yZWcpOworCWVsc2UKKwkJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfREFDLCBtdXRlX3JlZyB8IDB4MjApOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFrNDUzNV9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCit7CisJdTE2IGk7CisKKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CisJCWFrNDUzNV9tdXRlKGNvZGVjLT5kYWksIDApOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgorCQlhazQ1MzVfbXV0ZShjb2RlYy0+ZGFpLCAxKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKKwkJaSA9IGFrNDUzNV9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUs0NTM1X1BNMSk7CisJCWFrNDUzNV93cml0ZShjb2RlYywgQUs0NTM1X1BNMSwgaSB8IDB4ODApOworCQlpID0gYWs0NTM1X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBBSzQ1MzVfUE0yKTsKKwkJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfUE0yLCBpICYgKH4weDgwKSk7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKKwkJaSA9IGFrNDUzNV9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUs0NTM1X1BNMSk7CisJCWFrNDUzNV93cml0ZShjb2RlYywgQUs0NTM1X1BNMSwgaSAmICh+MHg4MCkpOworCQlicmVhazsKKwl9CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKKwlyZXR1cm4gMDsKK30KKworI2RlZmluZSBBSzQ1MzVfUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgfCBTTkRSVl9QQ01fUkFURV8xMTAyNSB8XAorCQlTTkRSVl9QQ01fUkFURV8xNjAwMCB8IFNORFJWX1BDTV9SQVRFXzIyMDUwIHxcCisJCVNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgU05EUlZfUENNX1JBVEVfNDgwMDApCisKK3N0cnVjdCBzbmRfc29jX2RhaSBhazQ1MzVfZGFpID0geworCS5uYW1lID0gIkFLNDUzNSIsCisJLnBsYXliYWNrID0geworCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2siLAorCQkuY2hhbm5lbHNfbWluID0gMSwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IEFLNDUzNV9SQVRFUywKKwkJLmZvcm1hdHMgPSBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSx9LAorCS5jYXB0dXJlID0geworCQkuc3RyZWFtX25hbWUgPSAiQ2FwdHVyZSIsCisJCS5jaGFubmVsc19taW4gPSAxLAorCQkuY2hhbm5lbHNfbWF4ID0gMiwKKwkJLnJhdGVzID0gQUs0NTM1X1JBVEVTLAorCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLH0sCisJLm9wcyA9IHsKKwkJLmh3X3BhcmFtcyA9IGFrNDUzNV9od19wYXJhbXMsCisJfSwKKwkuZGFpX29wcyA9IHsKKwkJLnNldF9mbXQgPSBhazQ1MzVfc2V0X2RhaV9mbXQsCisJCS5kaWdpdGFsX211dGUgPSBhazQ1MzVfbXV0ZSwKKwkJLnNldF9zeXNjbGsgPSBhazQ1MzVfc2V0X2RhaV9zeXNjbGssCisJfSwKK307CitFWFBPUlRfU1lNQk9MX0dQTChhazQ1MzVfZGFpKTsKKworc3RhdGljIGludCBhazQ1MzVfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCisJYWs0NTM1X3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhazQ1MzVfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWFrNDUzNV9zeW5jKGNvZGVjKTsKKwlhazQ1MzVfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKwlhazQ1MzVfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwpOworCXJldHVybiAwOworfQorCisvKgorICogaW5pdGlhbGlzZSB0aGUgQUs0NTM1IGRyaXZlcgorICogcmVnaXN0ZXIgdGhlIG1peGVyIGFuZCBkc3AgaW50ZXJmYWNlcyB3aXRoIHRoZSBrZXJuZWwKKyAqLworc3RhdGljIGludCBhazQ1MzVfaW5pdChzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWludCByZXQgPSAwOworCisJY29kZWMtPm5hbWUgPSAiQUs0NTM1IjsKKwljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKKwljb2RlYy0+cmVhZCA9IGFrNDUzNV9yZWFkX3JlZ19jYWNoZTsKKwljb2RlYy0+d3JpdGUgPSBhazQ1MzVfd3JpdGU7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gYWs0NTM1X3NldF9iaWFzX2xldmVsOworCWNvZGVjLT5kYWkgPSAmYWs0NTM1X2RhaTsKKwljb2RlYy0+bnVtX2RhaSA9IDE7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRShhazQ1MzVfcmVnKTsKKwljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cChhazQ1MzVfcmVnLCBzaXplb2YoYWs0NTM1X3JlZyksIEdGUF9LRVJORUwpOworCisJaWYgKGNvZGVjLT5yZWdfY2FjaGUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwkvKiByZWdpc3RlciBwY21zICovCisJcmV0ID0gc25kX3NvY19uZXdfcGNtcyhzb2NkZXYsIFNORFJWX0RFRkFVTFRfSURYMSwgU05EUlZfREVGQVVMVF9TVFIxKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgImFrNDUzNTogZmFpbGVkIHRvIGNyZWF0ZSBwY21zXG4iKTsKKwkJZ290byBwY21fZXJyOworCX0KKworCS8qIHBvd2VyIG9uIGRldmljZSAqLworCWFrNDUzNV9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOworCisJYWs0NTM1X2FkZF9jb250cm9scyhjb2RlYyk7CisJYWs0NTM1X2FkZF93aWRnZXRzKGNvZGVjKTsKKwlyZXQgPSBzbmRfc29jX3JlZ2lzdGVyX2NhcmQoc29jZGV2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgImFrNDUzNTogZmFpbGVkIHRvIHJlZ2lzdGVyIGNhcmRcbiIpOworCQlnb3RvIGNhcmRfZXJyOworCX0KKworCXJldHVybiByZXQ7CisKK2NhcmRfZXJyOgorCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKK3BjbV9lcnI6CisJa2ZyZWUoY29kZWMtPnJlZ19jYWNoZSk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGV2aWNlICphazQ1MzVfc29jZGV2OworCisjaWYgZGVmaW5lZChDT05GSUdfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19JMkNfTU9EVUxFKQorCisjZGVmaW5lIEkyQ19EUklWRVJJRF9BSzQ1MzUgMHhmZWZlIC8qIGxpYW0gLSAgbmVlZCBhIHByb3BlciBpZCAqLworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0geyAwLCBJMkNfQ0xJRU5UX0VORCB9OworCisvKiBNYWdpYyBkZWZpbml0aW9uIG9mIGFsbCBvdGhlciB2YXJpYWJsZXMgYW5kIHRoaW5ncyAqLworSTJDX0NMSUVOVF9JTlNNT0Q7CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBhazQ1MzVfaTJjX2RyaXZlcjsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGU7CisKKy8qIElmIHRoZSBpMmMgbGF5ZXIgd2VyZW4ndCBzbyBicm9rZW4sIHdlIGNvdWxkIHBhc3MgdGhpcyBraW5kIG9mIGRhdGEKKyAgIGFyb3VuZCAqLworc3RhdGljIGludCBhazQ1MzVfY29kZWNfcHJvYmUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCBpbnQgYWRkciwgaW50IGtpbmQpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBhazQ1MzVfc29jZGV2OworCXN0cnVjdCBhazQ1MzVfc2V0dXBfZGF0YSAqc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjOworCWludCByZXQ7CisKKwlpZiAoYWRkciAhPSBzZXR1cC0+aTJjX2FkZHJlc3MpCisJCXJldHVybiAtRU5PREVWOworCisJY2xpZW50X3RlbXBsYXRlLmFkYXB0ZXIgPSBhZGFwOworCWNsaWVudF90ZW1wbGF0ZS5hZGRyID0gYWRkcjsKKworCWkyYyA9IGttZW1kdXAoJmNsaWVudF90ZW1wbGF0ZSwgc2l6ZW9mKGNsaWVudF90ZW1wbGF0ZSksIEdGUF9LRVJORUwpOworCWlmIChpMmMgPT0gTlVMTCkgeworCQlrZnJlZShjb2RlYyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwlpMmNfc2V0X2NsaWVudGRhdGEoaTJjLCBjb2RlYyk7CisJY29kZWMtPmNvbnRyb2xfZGF0YSA9IGkyYzsKKworCXJldCA9IGkyY19hdHRhY2hfY2xpZW50KGkyYyk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOworCQlnb3RvIGVycjsKKwl9CisKKwlyZXQgPSBhazQ1MzVfaW5pdChzb2NkZXYpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIGluaXRpYWxpc2UgQUs0NTM1XG4iKTsKKwkJZ290byBlcnI7CisJfQorCXJldHVybiByZXQ7CisKK2VycjoKKwlrZnJlZShjb2RlYyk7CisJa2ZyZWUoaTJjKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFrNDUzNV9pMmNfZGV0YWNoKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisJaTJjX2RldGFjaF9jbGllbnQoY2xpZW50KTsKKwlrZnJlZShjb2RlYy0+cmVnX2NhY2hlKTsKKwlrZnJlZShjbGllbnQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFrNDUzNV9pMmNfYXR0YWNoKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCkKK3sKKwlyZXR1cm4gaTJjX3Byb2JlKGFkYXAsICZhZGRyX2RhdGEsIGFrNDUzNV9jb2RlY19wcm9iZSk7Cit9CisKKy8qIGNvcmdpIGkyYyBjb2RlYyBjb250cm9sIGxheWVyICovCitzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgYWs0NTM1X2kyY19kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiQUs0NTM1IEkyQyBDb2RlYyIsCisJCS5vd25lciA9IFRISVNfTU9EVUxFLAorCX0sCisJLmlkID0gICAgICAgICAgICAgSTJDX0RSSVZFUklEX0FLNDUzNSwKKwkuYXR0YWNoX2FkYXB0ZXIgPSBhazQ1MzVfaTJjX2F0dGFjaCwKKwkuZGV0YWNoX2NsaWVudCA9ICBhazQ1MzVfaTJjX2RldGFjaCwKKwkuY29tbWFuZCA9ICAgICAgICBOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBpMmNfY2xpZW50IGNsaWVudF90ZW1wbGF0ZSA9IHsKKwkubmFtZSA9ICAgIkFLNDUzNSIsCisJLmRyaXZlciA9ICZhazQ1MzVfaTJjX2RyaXZlciwKK307CisjZW5kaWYKKworc3RhdGljIGludCBhazQ1MzVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBhazQ1MzVfc2V0dXBfZGF0YSAqc2V0dXA7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjOworCXN0cnVjdCBhazQ1MzVfcHJpdiAqYWs0NTM1OworCWludCByZXQgPSAwOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQUs0NTM1IEF1ZGlvIENvZGVjICVzIiwgQUs0NTM1X1ZFUlNJT04pOworCisJc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CisJY29kZWMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX3NvY19jb2RlYyksIEdGUF9LRVJORUwpOworCWlmIChjb2RlYyA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWFrNDUzNSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhazQ1MzVfcHJpdiksIEdGUF9LRVJORUwpOworCWlmIChhazQ1MzUgPT0gTlVMTCkgeworCQlrZnJlZShjb2RlYyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWNvZGVjLT5wcml2YXRlX2RhdGEgPSBhazQ1MzU7CisJc29jZGV2LT5jb2RlYyA9IGNvZGVjOworCW11dGV4X2luaXQoJmNvZGVjLT5tdXRleCk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3dpZGdldHMpOworCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV9wYXRocyk7CisKKwlhazQ1MzVfc29jZGV2ID0gc29jZGV2OworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwlpZiAoc2V0dXAtPmkyY19hZGRyZXNzKSB7CisJCW5vcm1hbF9pMmNbMF0gPSBzZXR1cC0+aTJjX2FkZHJlc3M7CisJCWNvZGVjLT5od193cml0ZSA9IChod193cml0ZV90KWkyY19tYXN0ZXJfc2VuZDsKKwkJY29kZWMtPmh3X3JlYWQgPSAoaHdfcmVhZF90KWkyY19tYXN0ZXJfcmVjdjsKKwkJcmV0ID0gaTJjX2FkZF9kcml2ZXIoJmFrNDUzNV9pMmNfZHJpdmVyKTsKKwkJaWYgKHJldCAhPSAwKQorCQkJcHJpbnRrKEtFUk5fRVJSICJjYW4ndCBhZGQgaTJjIGRyaXZlciIpOworCX0KKyNlbHNlCisJLyogQWRkIG90aGVyIGludGVyZmFjZXMgaGVyZSAqLworI2VuZGlmCisJcmV0dXJuIHJldDsKK30KKworLyogcG93ZXIgZG93biBjaGlwICovCitzdGF0aWMgaW50IGFrNDUzNV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisKKwlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKKwkJYWs0NTM1X3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKworCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaTJjX2RlbF9kcml2ZXIoJmFrNDUzNV9pMmNfZHJpdmVyKTsKKyNlbmRpZgorCWtmcmVlKGNvZGVjLT5wcml2YXRlX2RhdGEpOworCWtmcmVlKGNvZGVjKTsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl9hazQ1MzUgPSB7CisJLnByb2JlID0gCWFrNDUzNV9wcm9iZSwKKwkucmVtb3ZlID0gCWFrNDUzNV9yZW1vdmUsCisJLnN1c3BlbmQgPSAJYWs0NTM1X3N1c3BlbmQsCisJLnJlc3VtZSA9CWFrNDUzNV9yZXN1bWUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoc29jX2NvZGVjX2Rldl9hazQ1MzUpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNvYyBBSzQ1MzUgZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJSaWNoYXJkIFB1cmRpZSIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9hazQ1MzUuaCBiL3NvdW5kL3NvYy9jb2RlY3MvYWs0NTM1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlmZTMwZQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvYWs0NTM1LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIGFrNDUzNS5oICAtLSAgQUs0NTM1IFNvYyBBdWRpbyBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgMjAwNSBPcGVuZWRoYW5kIEx0ZC4KKyAqCisgKiBBdXRob3I6IFJpY2hhcmQgUHVyZGllIDxyaWNoYXJkQG9wZW5lZGhhbmQuY29tPgorICoKKyAqIEJhc2VkIG9uIHdtODc1My5oCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9BSzQ1MzVfSAorI2RlZmluZSBfQUs0NTM1X0gKKworLyogQUs0NTM1IHJlZ2lzdGVyIHNwYWNlICovCisKKyNkZWZpbmUgQUs0NTM1X1BNMQkJMHgwCisjZGVmaW5lIEFLNDUzNV9QTTIJCTB4MQorI2RlZmluZSBBSzQ1MzVfU0lHMQkJMHgyCisjZGVmaW5lIEFLNDUzNV9TSUcyCQkweDMKKyNkZWZpbmUgQUs0NTM1X01PREUxCQkweDQKKyNkZWZpbmUgQUs0NTM1X01PREUyCQkweDUKKyNkZWZpbmUgQUs0NTM1X0RBQwkJMHg2CisjZGVmaW5lIEFLNDUzNV9NSUMJCTB4NworI2RlZmluZSBBSzQ1MzVfVElNRVIJCTB4OAorI2RlZmluZSBBSzQ1MzVfQUxDMQkJMHg5CisjZGVmaW5lIEFLNDUzNV9BTEMyCQkweGEKKyNkZWZpbmUgQUs0NTM1X1BHQQkJMHhiCisjZGVmaW5lIEFLNDUzNV9MQVRUCQkweGMKKyNkZWZpbmUgQUs0NTM1X1JBVFQJCTB4ZAorI2RlZmluZSBBSzQ1MzVfVk9MCQkweGUKKyNkZWZpbmUgQUs0NTM1X1NUQVRVUwkJMHhmCisKKyNkZWZpbmUgQUs0NTM1X0NBQ0hFUkVHTlVNIAkweDEwCisKK3N0cnVjdCBhazQ1MzVfc2V0dXBfZGF0YSB7CisJdW5zaWduZWQgc2hvcnQgaTJjX2FkZHJlc3M7Cit9OworCitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGFrNDUzNV9kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfYWs0NTM1OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmMgYi9zb3VuZC9zb2MvY29kZWNzL2NzNDI3MC5jCmluZGV4IGU3M2ZjZmQuLjlkZWI4YzcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy9jczQyNzAuYwpAQCAtMjAxLDcgKzIwMSw3IEBACiAgKiBkcml2ZXIgd2hhdCB0aGUgaW5wdXQgc2V0dGluZ3MgY2FuIGJlLiAgVGhpcyB3b3VsZCBuZWVkIHRvIGJlIGltcGxlbWVudGVkCiAgKiBmb3Igc3RhbmQtYWxvbmUgbW9kZSB0byB3b3JrLgogICovCi1zdGF0aWMgaW50IGNzNDI3MF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgY3M0MjcwX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQkJCSBpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtMjUxLDcgKzI1MSw3IEBACiAgKiBkYXRhIGZvciBwbGF5YmFjayBvbmx5LCBidXQgQVNvQyBjdXJyZW50bHkgZG9lcyBub3Qgc3VwcG9ydCBkaWZmZXJlbnQKICAqIGZvcm1hdHMgZm9yIHBsYXliYWNrIHZzLiByZWNvcmQuCiAgKi8KLXN0YXRpYyBpbnQgY3M0MjcwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCBjczQyNzBfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCQkgICAgICB1bnNpZ25lZCBpbnQgZm9ybWF0KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC00NzEsNyArNDcxLDcgQEAKICAqIGJvYXJkIGRvZXMgbm90IGhhdmUgdGhlIE1VVEVBIG9yIE1VVEVCIHBpbnMgY29ubmVjdGVkIHRvIHN1Y2ggY2lyY3VpdHJ5LAogICogdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgZG8gbm90aGluZy4KICAqLwotc3RhdGljIGludCBjczQyNzBfbXV0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgaW50IG11dGUpCitzdGF0aWMgaW50IGNzNDI3MF9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOwogCWludCByZWc2OwpAQCAtNjY3LDcgKzY2Nyw3IEBACiAKICNlbmRpZiAvKiBVU0VfSTJDKi8KIAotc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIGNzNDI3MF9kYWkgPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgY3M0MjcwX2RhaSA9IHsKIAkubmFtZSA9ICJDUzQyNzAiLAogCS5wbGF5YmFjayA9IHsKIAkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrIiwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmggYi9zb3VuZC9zb2MvY29kZWNzL2NzNDI3MC5oCmluZGV4IDBjZWQ0OWIuLmFkYzZjZDkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmgKKysrIGIvc291bmQvc29jL2NvZGVjcy9jczQyNzAuaApAQCAtMTYsNyArMTYsNyBAQAogICogVGhlIEFTb0MgY29kZWMgREFJIHN0cnVjdHVyZSBmb3IgdGhlIENTNDI3MC4gIEFzc2lnbiB0aGlzIHN0cnVjdHVyZSB0bwogICogdGhlIC5jb2RlY19kYWkgZmllbGQgb2YgeW91ciBtYWNoaW5lIGRyaXZlcidzIHNuZF9zb2NfZGFpX2xpbmsgc3RydWN0dXJlLgogICovCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIGNzNDI3MF9kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGNzNDI3MF9kYWk7CiAKIC8qCiAgKiBUaGUgQVNvQyBjb2RlYyBkZXZpY2Ugc3RydWN0dXJlIGZvciB0aGUgQ1M0MjcwLiAgQXNzaWduIHRoaXMgc3RydWN0dXJlCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFpYzN4LmMgYi9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFpYzN4LmMKaW5kZXggMDliMTY2MS4uYjFkY2U1ZiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy90bHYzMjBhaWMzeC5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvdGx2MzIwYWljM3guYwpAQCAtMjksNyArMjksNyBAQAogICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqICBIZW5jZSB0aGUgbWFjaGluZSBsYXllciBzaG91bGQgZGlzYWJsZSB1bnN1cHBvcnRlZCBpbnB1dHMvb3V0cHV0cyBieQotICogIHNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNT05PX0xPVVQiLCAwKSwgZXRjLgorICogIHNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1PTk9fTE9VVCIpLCBldGMuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNDksNyArNDksNyBAQAogI2luY2x1ZGUgInRsdjMyMGFpYzN4LmgiCiAKICNkZWZpbmUgQVVESU9fTkFNRSAiYWljM3giCi0jZGVmaW5lIEFJQzNYX1ZFUlNJT04gIjAuMSIKKyNkZWZpbmUgQUlDM1hfVkVSU0lPTiAiMC4yIgogCiAvKiBjb2RlYyBwcml2YXRlIGRhdGEgKi8KIHN0cnVjdCBhaWMzeF9wcml2IHsKQEAgLTEzOCw2ICsxMzgsMjAgQEAKIAkJcmV0dXJuIC1FSU87CiB9CiAKKy8qCisgKiByZWFkIGZyb20gdGhlIGFpYzN4IHJlZ2lzdGVyIHNwYWNlCisgKi8KK3N0YXRpYyBpbnQgYWljM3hfcmVhZChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIHVuc2lnbmVkIGludCByZWcsCisJCSAgICAgIHU4ICp2YWx1ZSkKK3sKKwkqdmFsdWUgPSByZWcgJiAweGZmOworCWlmIChjb2RlYy0+aHdfcmVhZChjb2RlYy0+Y29udHJvbF9kYXRhLCB2YWx1ZSwgMSkgIT0gMSkKKwkJcmV0dXJuIC1FSU87CisKKwlhaWMzeF93cml0ZV9yZWdfY2FjaGUoY29kZWMsIHJlZywgKnZhbHVlKTsKKwlyZXR1cm4gMDsKK30KKwogI2RlZmluZSBTT0NfREFQTV9TSU5HTEVfQUlDM1goeG5hbWUsIHJlZywgc2hpZnQsIG1hc2ssIGludmVydCkgXAogewkuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgXAogCS5pbmZvID0gc25kX3NvY19pbmZvX3ZvbHN3LCBcCkBAIC0xOTIsNyArMjA2LDcgQEAKIAkJfQogCiAJCWlmIChmb3VuZCkKLQkJCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyh3aWRnZXQtPmNvZGVjKTsKKwkJCXNuZF9zb2NfZGFwbV9zeW5jKHdpZGdldC0+Y29kZWMpOwogCX0KIAogCXJldCA9IHNuZF9zb2NfdXBkYXRlX2JpdHMod2lkZ2V0LT5jb2RlYywgcmVnLCB2YWxfbWFzaywgdmFsKTsKQEAgLTIwOSw2ICsyMjMsOCBAQAogICAgIHsgImRpZmZlcmVudGlhbCBvZiBIUFJPVVQiLCAiY29uc3RhbnQgVkNNIiwgInNpbmdsZS1lbmRlZCIsCiAgICAgICAiZGlmZmVyZW50aWFsIG9mIEhQTENPTSIsICJleHRlcm5hbCBmZWVkYmFjayIgfTsKIHN0YXRpYyBjb25zdCBjaGFyICphaWMzeF9saW5laW5fbW9kZV9tdXhbXSA9IHsgInNpbmdsZS1lbmRlZCIsICJkaWZmZXJlbnRpYWwiIH07CitzdGF0aWMgY29uc3QgY2hhciAqYWljM3hfYWRjX2hwZltdID0KKyAgICB7ICJEaXNhYmxlZCIsICIwLjAwNDV4RnMiLCAiMC4wMTI1eEZzIiwgIjAuMDI1eEZzIiB9OwogCiAjZGVmaW5lIExEQUNfRU5VTQkwCiAjZGVmaW5lIFJEQUNfRU5VTQkxCkBAIC0yMTgsNiArMjM0LDcgQEAKICNkZWZpbmUgTElORTFSX0VOVU0JNQogI2RlZmluZSBMSU5FMkxfRU5VTQk2CiAjZGVmaW5lIExJTkUyUl9FTlVNCTcKKyNkZWZpbmUgQURDX0hQRl9FTlVNCTgKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSBhaWMzeF9lbnVtW10gPSB7CiAJU09DX0VOVU1fU0lOR0xFKERBQ19MSU5FX01VWCwgNiwgMywgYWljM3hfbGVmdF9kYWNfbXV4KSwKQEAgLTIyOCw2ICsyNDUsNyBAQAogCVNPQ19FTlVNX1NJTkdMRShMSU5FMVJfMl9SQURDX0NUUkwsIDcsIDIsIGFpYzN4X2xpbmVpbl9tb2RlX211eCksCiAJU09DX0VOVU1fU0lOR0xFKExJTkUyTF8yX0xBRENfQ1RSTCwgNywgMiwgYWljM3hfbGluZWluX21vZGVfbXV4KSwKIAlTT0NfRU5VTV9TSU5HTEUoTElORTJSXzJfUkFEQ19DVFJMLCA3LCAyLCBhaWMzeF9saW5laW5fbW9kZV9tdXgpLAorCVNPQ19FTlVNX0RPVUJMRShBSUMzWF9DT0RFQ19ERklMVF9DVFJMLCA2LCA0LCA0LCBhaWMzeF9hZGNfaHBmKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhaWMzeF9zbmRfY29udHJvbHNbXSA9IHsKQEAgLTI3OCw2ICsyOTYsOCBAQAogCS8qIElucHV0ICovCiAJU09DX0RPVUJMRV9SKCJQR0EgQ2FwdHVyZSBWb2x1bWUiLCBMQURDX1ZPTCwgUkFEQ19WT0wsIDAsIDB4N2YsIDApLAogCVNPQ19ET1VCTEVfUigiUEdBIENhcHR1cmUgU3dpdGNoIiwgTEFEQ19WT0wsIFJBRENfVk9MLCA3LCAweDAxLCAxKSwKKworCVNPQ19FTlVNKCJBREMgSFBGIEN1dC1vZmYiLCBhaWMzeF9lbnVtW0FEQ19IUEZfRU5VTV0pLAogfTsKIAogLyogYWRkIG5vbiBkYXBtIGNvbnRyb2xzICovCkBAIC00NDEsMTEgKzQ2MSwzNCBAQAogCVNORF9TT0NfREFQTV9NVVgoIlJpZ2h0IExpbmUyUiBNdXgiLCBTTkRfU09DX05PUE0sIDAsIDAsCiAJCQkgJmFpYzN4X3JpZ2h0X2xpbmUyX211eF9jb250cm9scyksCiAKKwkvKgorCSAqIE5vdCBhIHJlYWwgbWljIGJpYXMgd2lkZ2V0IGJ1dCBzaW1pbGFyIGZ1bmN0aW9uLiBUaGlzIGlzIGZvciBkeW5hbWljCisJICogY29udHJvbCBvZiBHUElPMSBkaWdpdGFsIG1pYyBtb2R1bGF0b3IgY2xvY2sgb3V0cHV0IGZ1bmN0aW9uIHdoZW4KKwkgKiB1c2luZyBkaWdpdGFsIG1pYy4KKwkgKi8KKwlTTkRfU09DX0RBUE1fUkVHKHNuZF9zb2NfZGFwbV9taWNiaWFzLCAiR1BJTzEgZG1pYyBtb2RjbGsiLAorCQkJIEFJQzNYX0dQSU8xX1JFRywgNCwgMHhmLAorCQkJIEFJQzNYX0dQSU8xX0ZVTkNfRElHSVRBTF9NSUNfTU9EQ0xLLAorCQkJIEFJQzNYX0dQSU8xX0ZVTkNfRElTQUJMRUQpLAorCisJLyoKKwkgKiBBbHNvIHNpbWlsYXIgZnVuY3Rpb24gbGlrZSBtaWMgYmlhcy4gU2VsZWN0cyBkaWdpdGFsIG1pYyB3aXRoCisJICogY29uZmlndXJhYmxlIG92ZXJzYW1wbGluZyByYXRlIGluc3RlYWQgb2YgQURDIGNvbnZlcnRlci4KKwkgKi8KKwlTTkRfU09DX0RBUE1fUkVHKHNuZF9zb2NfZGFwbV9taWNiaWFzLCAiRE1pYyBSYXRlIDEyOCIsCisJCQkgQUlDM1hfQVNEX0lOVEZfQ1RSTEEsIDAsIDMsIDEsIDApLAorCVNORF9TT0NfREFQTV9SRUcoc25kX3NvY19kYXBtX21pY2JpYXMsICJETWljIFJhdGUgNjQiLAorCQkJIEFJQzNYX0FTRF9JTlRGX0NUUkxBLCAwLCAzLCAyLCAwKSwKKwlTTkRfU09DX0RBUE1fUkVHKHNuZF9zb2NfZGFwbV9taWNiaWFzLCAiRE1pYyBSYXRlIDMyIiwKKwkJCSBBSUMzWF9BU0RfSU5URl9DVFJMQSwgMCwgMywgMywgMCksCisKIAkvKiBNaWMgQmlhcyAqLwotCVNORF9TT0NfREFQTV9NSUNCSUFTKCJNaWMgQmlhcyAyViIsIE1JQ0JJQVNfQ1RSTCwgNiwgMCksCi0JU05EX1NPQ19EQVBNX01JQ0JJQVMoIk1pYyBCaWFzIDIuNVYiLCBNSUNCSUFTX0NUUkwsIDcsIDApLAotCVNORF9TT0NfREFQTV9NSUNCSUFTKCJNaWMgQmlhcyBBVkREIiwgTUlDQklBU19DVFJMLCA2LCAwKSwKLQlTTkRfU09DX0RBUE1fTUlDQklBUygiTWljIEJpYXMgQVZERCIsIE1JQ0JJQVNfQ1RSTCwgNywgMCksCisJU05EX1NPQ19EQVBNX1JFRyhzbmRfc29jX2RhcG1fbWljYmlhcywgIk1pYyBCaWFzIDJWIiwKKwkJCSBNSUNCSUFTX0NUUkwsIDYsIDMsIDEsIDApLAorCVNORF9TT0NfREFQTV9SRUcoc25kX3NvY19kYXBtX21pY2JpYXMsICJNaWMgQmlhcyAyLjVWIiwKKwkJCSBNSUNCSUFTX0NUUkwsIDYsIDMsIDIsIDApLAorCVNORF9TT0NfREFQTV9SRUcoc25kX3NvY19kYXBtX21pY2JpYXMsICJNaWMgQmlhcyBBVkREIiwKKwkJCSBNSUNCSUFTX0NUUkwsIDYsIDMsIDMsIDApLAogCiAJLyogTGVmdCBQR0EgdG8gTGVmdCBPdXRwdXQgYnlwYXNzICovCiAJU05EX1NPQ19EQVBNX01JWEVSKCJMZWZ0IFBHQSBCeXBhc3MgTWl4ZXIiLCBTTkRfU09DX05PUE0sIDAsIDAsCkBAIC00ODMsNyArNTI2LDcgQEAKIAlTTkRfU09DX0RBUE1fSU5QVVQoIkxJTkUyUiIpLAogfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKmludGVyY29uW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBpbnRlcmNvbltdID0gewogCS8qIExlZnQgT3V0cHV0ICovCiAJeyJMZWZ0IERBQyBNdXgiLCAiREFDX0wxIiwgIkxlZnQgREFDIn0sCiAJeyJMZWZ0IERBQyBNdXgiLCAiREFDX0wyIiwgIkxlZnQgREFDIn0sCkBAIC01NTQsNiArNTk3LDcgQEAKIAl7IkxlZnQgUEdBIE1peGVyIiwgIk1pYzNMIFN3aXRjaCIsICJNSUMzTCJ9LAogCiAJeyJMZWZ0IEFEQyIsIE5VTEwsICJMZWZ0IFBHQSBNaXhlciJ9LAorCXsiTGVmdCBBREMiLCBOVUxMLCAiR1BJTzEgZG1pYyBtb2RjbGsifSwKIAogCS8qIFJpZ2h0IElucHV0ICovCiAJeyJSaWdodCBMaW5lMVIgTXV4IiwgInNpbmdsZS1lbmRlZCIsICJMSU5FMVIifSwKQEAgLTU2Nyw2ICs2MTEsNyBAQAogCXsiUmlnaHQgUEdBIE1peGVyIiwgIk1pYzNSIFN3aXRjaCIsICJNSUMzUiJ9LAogCiAJeyJSaWdodCBBREMiLCBOVUxMLCAiUmlnaHQgUEdBIE1peGVyIn0sCisJeyJSaWdodCBBREMiLCBOVUxMLCAiR1BJTzEgZG1pYyBtb2RjbGsifSwKIAogCS8qIExlZnQgUEdBIEJ5cGFzcyAqLwogCXsiTGVmdCBQR0EgQnlwYXNzIE1peGVyIiwgIkxpbmUgU3dpdGNoIiwgIkxlZnQgUEdBIE1peGVyIn0sCkBAIC02MjgsMTAxICs2NzMsMjcgQEAKIAl7Ik1vbm8gT3V0IiwgTlVMTCwgIlJpZ2h0IExpbmUyIEJ5cGFzcyBNaXhlciJ9LAogCXsiUmlnaHQgSFAgT3V0IiwgTlVMTCwgIlJpZ2h0IExpbmUyIEJ5cGFzcyBNaXhlciJ9LAogCi0JLyogdGVybWluYXRvciAqLwotCXtOVUxMLCBOVUxMLCBOVUxMfSwKKwkvKgorCSAqIExvZ2ljYWwgcGF0aCBiZXR3ZWVuIGRpZ2l0YWwgbWljIGVuYWJsZSBhbmQgR1BJTzEgbW9kdWxhdG9yIGNsb2NrCisJICogb3V0cHV0IGZ1bmN0aW9uCisJICovCisJeyJHUElPMSBkbWljIG1vZGNsayIsIE5VTEwsICJETWljIFJhdGUgMTI4In0sCisJeyJHUElPMSBkbWljIG1vZGNsayIsIE5VTEwsICJETWljIFJhdGUgNjQifSwKKwl7IkdQSU8xIGRtaWMgbW9kY2xrIiwgTlVMTCwgIkRNaWMgUmF0ZSAzMiJ9LAogfTsKIAogc3RhdGljIGludCBhaWMzeF9hZGRfd2lkZ2V0cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhaWMzeF9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJmFpYzN4X2RhcG1fd2lkZ2V0c1tpXSk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgYWljM3hfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRShhaWMzeF9kYXBtX3dpZGdldHMpKTsKIAogCS8qIHNldCB1cCBhdWRpbyBwYXRoIGludGVyY29ubmVjdHMgKi8KLQlmb3IgKGkgPSAwOyBpbnRlcmNvbltpXVswXSAhPSBOVUxMOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBpbnRlcmNvbltpXVswXSwKLQkJCQkJICAgaW50ZXJjb25baV1bMV0sIGludGVyY29uW2ldWzJdKTsKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgaW50ZXJjb24sIEFSUkFZX1NJWkUoaW50ZXJjb24pKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CiB9CiAKLXN0cnVjdCBhaWMzeF9yYXRlX2RpdnMgewotCXUzMiBtY2xrOwotCXUzMiByYXRlOwotCXUzMiBmc3JlZl9yZWc7Ci0JdTggc3JfcmVnOjQ7Ci0JdTggcGxsal9yZWc7Ci0JdTE2IHBsbGRfcmVnOwotfTsKLQotLyogQUlDM1ggY29kZWMgbWNsayBjbG9jayBkaXZpZGVyIGNvZWZmaWNpZW50cyAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBhaWMzeF9yYXRlX2RpdnMgYWljM3hfZGl2c1tdID0gewotCS8qIDhrICovCi0JezEyMDAwMDAwLCA4MDAwLCA0ODAwMCwgMHhhLCAxNiwgMzg0MH0sCi0JezE5MjAwMDAwLCA4MDAwLCA0ODAwMCwgMHhhLCAxMCwgMjQwMH0sCi0JezIyNTc5MjAwLCA4MDAwLCA0ODAwMCwgMHhhLCA4LCA3MDc1fSwKLQl7MzM4Njg4MDAsIDgwMDAsIDQ4MDAwLCAweGEsIDUsIDgwNDl9LAotCS8qIDExLjAyNWsgKi8KLQl7MTIwMDAwMDAsIDExMDI1LCA0NDEwMCwgMHg2LCAxNSwgNTI4fSwKLQl7MTkyMDAwMDAsIDExMDI1LCA0NDEwMCwgMHg2LCA5LCA0MDgwfSwKLQl7MjI1NzkyMDAsIDExMDI1LCA0NDEwMCwgMHg2LCA4LCAwfSwKLQl7MzM4Njg4MDAsIDExMDI1LCA0NDEwMCwgMHg2LCA1LCAzMzMzfSwKLQkvKiAxNmsgKi8KLQl7MTIwMDAwMDAsIDE2MDAwLCA0ODAwMCwgMHg0LCAxNiwgMzg0MH0sCi0JezE5MjAwMDAwLCAxNjAwMCwgNDgwMDAsIDB4NCwgMTAsIDI0MDB9LAotCXsyMjU3OTIwMCwgMTYwMDAsIDQ4MDAwLCAweDQsIDgsIDcwNzV9LAotCXszMzg2ODgwMCwgMTYwMDAsIDQ4MDAwLCAweDQsIDUsIDgwNDl9LAotCS8qIDIyLjA1ayAqLwotCXsxMjAwMDAwMCwgMjIwNTAsIDQ0MTAwLCAweDIsIDE1LCA1Mjh9LAotCXsxOTIwMDAwMCwgMjIwNTAsIDQ0MTAwLCAweDIsIDksIDQwODB9LAotCXsyMjU3OTIwMCwgMjIwNTAsIDQ0MTAwLCAweDIsIDgsIDB9LAotCXszMzg2ODgwMCwgMjIwNTAsIDQ0MTAwLCAweDIsIDUsIDMzMzN9LAotCS8qIDMyayAqLwotCXsxMjAwMDAwMCwgMzIwMDAsIDQ4MDAwLCAweDEsIDE2LCAzODQwfSwKLQl7MTkyMDAwMDAsIDMyMDAwLCA0ODAwMCwgMHgxLCAxMCwgMjQwMH0sCi0JezIyNTc5MjAwLCAzMjAwMCwgNDgwMDAsIDB4MSwgOCwgNzA3NX0sCi0JezMzODY4ODAwLCAzMjAwMCwgNDgwMDAsIDB4MSwgNSwgODA0OX0sCi0JLyogNDQuMWsgKi8KLQl7MTIwMDAwMDAsIDQ0MTAwLCA0NDEwMCwgMHgwLCAxNSwgNTI4fSwKLQl7MTkyMDAwMDAsIDQ0MTAwLCA0NDEwMCwgMHgwLCA5LCA0MDgwfSwKLQl7MjI1NzkyMDAsIDQ0MTAwLCA0NDEwMCwgMHgwLCA4LCAwfSwKLQl7MzM4Njg4MDAsIDQ0MTAwLCA0NDEwMCwgMHgwLCA1LCAzMzMzfSwKLQkvKiA0OGsgKi8KLQl7MTIwMDAwMDAsIDQ4MDAwLCA0ODAwMCwgMHgwLCAxNiwgMzg0MH0sCi0JezE5MjAwMDAwLCA0ODAwMCwgNDgwMDAsIDB4MCwgMTAsIDI0MDB9LAotCXsyMjU3OTIwMCwgNDgwMDAsIDQ4MDAwLCAweDAsIDgsIDcwNzV9LAotCXszMzg2ODgwMCwgNDgwMDAsIDQ4MDAwLCAweDAsIDUsIDgwNDl9LAotCS8qIDY0ayAqLwotCXsxMjAwMDAwMCwgNjQwMDAsIDk2MDAwLCAweDEsIDE2LCAzODQwfSwKLQl7MTkyMDAwMDAsIDY0MDAwLCA5NjAwMCwgMHgxLCAxMCwgMjQwMH0sCi0JezIyNTc5MjAwLCA2NDAwMCwgOTYwMDAsIDB4MSwgOCwgNzA3NX0sCi0JezMzODY4ODAwLCA2NDAwMCwgOTYwMDAsIDB4MSwgNSwgODA0OX0sCi0JLyogODguMmsgKi8KLQl7MTIwMDAwMDAsIDg4MjAwLCA4ODIwMCwgMHgwLCAxNSwgNTI4fSwKLQl7MTkyMDAwMDAsIDg4MjAwLCA4ODIwMCwgMHgwLCA5LCA0MDgwfSwKLQl7MjI1NzkyMDAsIDg4MjAwLCA4ODIwMCwgMHgwLCA4LCAwfSwKLQl7MzM4Njg4MDAsIDg4MjAwLCA4ODIwMCwgMHgwLCA1LCAzMzMzfSwKLQkvKiA5NmsgKi8KLQl7MTIwMDAwMDAsIDk2MDAwLCA5NjAwMCwgMHgwLCAxNiwgMzg0MH0sCi0JezE5MjAwMDAwLCA5NjAwMCwgOTYwMDAsIDB4MCwgMTAsIDI0MDB9LAotCXsyMjU3OTIwMCwgOTYwMDAsIDk2MDAwLCAweDAsIDgsIDcwNzV9LAotCXszMzg2ODgwMCwgOTYwMDAsIDk2MDAwLCAweDAsIDUsIDgwNDl9LAotfTsKLQotc3RhdGljIGlubGluZSBpbnQgYWljM3hfZ2V0X2RpdnMoaW50IG1jbGssIGludCByYXRlKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYWljM3hfZGl2cyk7IGkrKykgewotCQlpZiAoYWljM3hfZGl2c1tpXS5yYXRlID09IHJhdGUgJiYgYWljM3hfZGl2c1tpXS5tY2xrID09IG1jbGspCi0JCQlyZXR1cm4gaTsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCBhaWMzeF9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCiAJCQkgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKQEAgLTczMCw1NyArNzAxLDkgQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAJc3RydWN0IGFpYzN4X3ByaXYgKmFpYzN4ID0gY29kZWMtPnByaXZhdGVfZGF0YTsKLQlpbnQgaTsKLQl1OCBkYXRhLCBwbGxfcCwgcGxsX3IsIHBsbF9qOwotCXUxNiBwbGxfZDsKLQotCWkgPSBhaWMzeF9nZXRfZGl2cyhhaWMzeC0+c3lzY2xrLCBwYXJhbXNfcmF0ZShwYXJhbXMpKTsKLQotCS8qIFJvdXRlIExlZnQgREFDIHRvIGxlZnQgY2hhbm5lbCBpbnB1dCBhbmQKLQkgKiByaWdodCBEQUMgdG8gcmlnaHQgY2hhbm5lbCBpbnB1dCAqLwotCWRhdGEgPSAoTERBQzJMQ0ggfCBSREFDMlJDSCk7Ci0Jc3dpdGNoIChhaWMzeF9kaXZzW2ldLmZzcmVmX3JlZykgewotCWNhc2UgNDQxMDA6Ci0JCWRhdGEgfD0gRlNSRUZfNDQxMDA7Ci0JCWJyZWFrOwotCWNhc2UgNDgwMDA6Ci0JCWRhdGEgfD0gRlNSRUZfNDgwMDA7Ci0JCWJyZWFrOwotCWNhc2UgODgyMDA6Ci0JCWRhdGEgfD0gRlNSRUZfNDQxMDAgfCBEVUFMX1JBVEVfTU9ERTsKLQkJYnJlYWs7Ci0JY2FzZSA5NjAwMDoKLQkJZGF0YSB8PSBGU1JFRl80ODAwMCB8IERVQUxfUkFURV9NT0RFOwotCQlicmVhazsKLQl9Ci0JYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0NPREVDX0RBVEFQQVRIX1JFRywgZGF0YSk7Ci0KLQkvKiBjb2RlYyBzYW1wbGUgcmF0ZSBzZWxlY3QgKi8KLQlkYXRhID0gYWljM3hfZGl2c1tpXS5zcl9yZWc7Ci0JZGF0YSB8PSAoZGF0YSA8PCA0KTsKLQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfU0FNUExFX1JBVEVfU0VMX1JFRywgZGF0YSk7Ci0KLQkvKiBVc2UgUExMIGZvciBnZW5lcmF0aW9uIEZzcmVmIGJ5IGVxdWF0aW9uOgotCSAqIEZzcmVmID0gKE1DTEsgKiBLICogUikvKDIwNDggKiBQKTsKLQkgKiBGaXggUCA9IDIgYW5kIFIgPSAxIGFuZCBjYWxjdWxhdGUgSywgaWYKLQkgKiBLID0gSi5ELCBpLmUuIEogLSBhbiBpbnRlcmdlciBwb3J0aW9uIG9mIEsgYW5kIEQgaXMgdGhlIGZyYWN0aW9uYWwKLQkgKiBvbmUgd2l0aCA0IGRpZ2l0cyBvZiBwcmVjaXNpb247Ci0JICogRXhhbXBsZToKLQkgKiBGb3IgTUNMSyA9IDIyLjU3OTIgTUh6IGFuZCBGc3JlZiA9IDQ4a0h6OgotCSAqIFNlbGVjdCBQID0gMiwgUj0gMSwgSyA9IDguNzA3NCwgd2hpY2ggcmVzdWx0cyBpbiBKID0gOCwgRCA9IDcwNzQKLQkgKi8KLQlwbGxfcCA9IDI7Ci0JcGxsX3IgPSAxOwotCXBsbF9qID0gYWljM3hfZGl2c1tpXS5wbGxqX3JlZzsKLQlwbGxfZCA9IGFpYzN4X2RpdnNbaV0ucGxsZF9yZWc7Ci0KLQlkYXRhID0gYWljM3hfcmVhZF9yZWdfY2FjaGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HQV9SRUcpOwotCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9QTExfUFJPR0FfUkVHLCBkYXRhIHwgKHBsbF9wIDw8IFBMTFBfU0hJRlQpKTsKLQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfT1ZSRl9TVEFUVVNfQU5EX1BMTFJfUkVHLCBwbGxfciA8PCBQTExSX1NISUZUKTsKLQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dCX1JFRywgcGxsX2ogPDwgUExMSl9TSElGVCk7Ci0JYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HQ19SRUcsIChwbGxfZCA+PiA2KSA8PCBQTExEX01TQl9TSElGVCk7Ci0JYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HRF9SRUcsCi0JCSAgICAocGxsX2QgJiAweDNGKSA8PCBQTExEX0xTQl9TSElGVCk7CisJaW50IGNvZGVjX2NsayA9IDAsIGJ5cGFzc19wbGwgPSAwLCBmc3JlZiwgbGFzdF9jbGsgPSAwOworCXU4IGRhdGEsIHIsIHAsIHBsbF9xLCBwbGxfcCA9IDEsIHBsbF9yID0gMSwgcGxsX2ogPSAxOworCXUxNiBwbGxfZCA9IDE7CiAKIAkvKiBzZWxlY3QgZGF0YSB3b3JkIGxlbmd0aCAqLwogCWRhdGEgPQpAQCAtODAwLDEwICs3MjMsOTggQEAKIAl9CiAJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0FTRF9JTlRGX0NUUkxCLCBkYXRhKTsKIAorCS8qIEZzcmVmIGNhbiBiZSA0NDEwMCBvciA0ODAwMCAqLworCWZzcmVmID0gKHBhcmFtc19yYXRlKHBhcmFtcykgJSAxMTAyNSA9PSAwKSA/IDQ0MTAwIDogNDgwMDA7CisKKwkvKiBUcnkgdG8gZmluZCBhIHZhbHVlIGZvciBRIHdoaWNoIGFsbG93cyB1cyB0byBieXBhc3MgdGhlIFBMTCBhbmQKKwkgKiBnZW5lcmF0ZSBDT0RFQ19DTEsgZGlyZWN0bHkuICovCisJZm9yIChwbGxfcSA9IDI7IHBsbF9xIDwgMTg7IHBsbF9xKyspCisJCWlmIChhaWMzeC0+c3lzY2xrIC8gKDEyOCAqIHBsbF9xKSA9PSBmc3JlZikgeworCQkJYnlwYXNzX3BsbCA9IDE7CisJCQlicmVhazsKKwkJfQorCisJaWYgKGJ5cGFzc19wbGwpIHsKKwkJcGxsX3EgJj0gMHhmOworCQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dBX1JFRywgcGxsX3EgPDwgUExMUV9TSElGVCk7CisJCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9HUElPQl9SRUcsIENPREVDX0NMS0lOX0NMS0RJVik7CisJfSBlbHNlCisJCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9HUElPQl9SRUcsIENPREVDX0NMS0lOX1BMTERJVik7CisKKwkvKiBSb3V0ZSBMZWZ0IERBQyB0byBsZWZ0IGNoYW5uZWwgaW5wdXQgYW5kCisJICogcmlnaHQgREFDIHRvIHJpZ2h0IGNoYW5uZWwgaW5wdXQgKi8KKwlkYXRhID0gKExEQUMyTENIIHwgUkRBQzJSQ0gpOworCWRhdGEgfD0gKGZzcmVmID09IDQ0MTAwKSA/IEZTUkVGXzQ0MTAwIDogRlNSRUZfNDgwMDA7CisJaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgPj0gNjQwMDApCisJCWRhdGEgfD0gRFVBTF9SQVRFX01PREU7CisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0NPREVDX0RBVEFQQVRIX1JFRywgZGF0YSk7CisKKwkvKiBjb2RlYyBzYW1wbGUgcmF0ZSBzZWxlY3QgKi8KKwlkYXRhID0gKGZzcmVmICogMjApIC8gcGFyYW1zX3JhdGUocGFyYW1zKTsKKwlpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8IDY0MDAwKQorCQlkYXRhIC89IDI7CisJZGF0YSAvPSA1OworCWRhdGEgLT0gMjsKKwlkYXRhIHw9IChkYXRhIDw8IDQpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9TQU1QTEVfUkFURV9TRUxfUkVHLCBkYXRhKTsKKworCWlmIChieXBhc3NfcGxsKQorCQlyZXR1cm4gMDsKKworCS8qIFVzZSBQTEwKKwkgKiBmaW5kIGFuIGFwcm9wcmlhdGUgc2V0dXAgZm9yIGosIGQsIHIgYW5kIHAgYnkgaXRlcmF0aW5nIG92ZXIKKwkgKiBwIGFuZCByIC0gaiBhbmQgZCBhcmUgY2FsY3VsYXRlZCBmb3IgZWFjaCBmcmFjdGlvbi4KKwkgKiBVcCB0byAxMjggdmFsdWVzIGFyZSBwcm9iZWQsIHRoZSBjbG9zZXN0IG9uZSB3aW5zIHRoZSBnYW1lLgorCSAqIFRoZSBzeXNjbGsgaXMgZGl2aWRlZCBieSAxMDAwIHRvIHByZXZlbnQgaW50ZWdlciBvdmVyZmxvd3MuCisJICovCisJY29kZWNfY2xrID0gKDIwNDggKiBmc3JlZikgLyAoYWljM3gtPnN5c2NsayAvIDEwMDApOworCisJZm9yIChyID0gMTsgciA8PSAxNjsgcisrKQorCQlmb3IgKHAgPSAxOyBwIDw9IDg7IHArKykgeworCQkJaW50IGNsaywgdG1wID0gKGNvZGVjX2NsayAqIHBsbF9yICogMTApIC8gcGxsX3A7CisJCQl1OCBqID0gdG1wIC8gMTAwMDA7CisJCQl1MTYgZCA9IHRtcCAlIDEwMDAwOworCisJCQlpZiAoaiA+IDYzKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoZCAhPSAwICYmIGFpYzN4LT5zeXNjbGsgPCAxMDAwMDAwMCkKKwkJCQljb250aW51ZTsKKworCQkJLyogVGhpcyBpcyBhY3R1YWxseSAxMDAwICogKChqICsgKGQvMTAwMDApKSAqIHIpIC8gcAorCQkJICogVGhlIHRlcm0gaGFkIHRvIGJlIGNvbnZlcnRlZCB0byBnZXQgcmlkIG9mIHRoZQorCQkJICogZGl2aXNpb24gYnkgMTAwMDAgKi8KKwkJCWNsayA9ICgoMTAwMDAgKiBqICogcikgKyAoZCAqIHIpKSAvICgxMCAqIHApOworCisJCQkvKiBjaGVjayB3aGV0aGVyIHRoaXMgdmFsdWVzIGdldCBjbG9zZXIgdGhhbiB0aGUgYmVzdAorCQkJICogb25lcyB3ZSBoYWQgYmVmb3JlICovCisJCQlpZiAoYWJzKGNvZGVjX2NsayAtIGNsaykgPCBhYnMoY29kZWNfY2xrIC0gbGFzdF9jbGspKSB7CisJCQkJcGxsX2ogPSBqOyBwbGxfZCA9IGQ7IHBsbF9yID0gcjsgcGxsX3AgPSBwOworCQkJCWxhc3RfY2xrID0gY2xrOworCQkJfQorCisJCQkvKiBFYXJseSBleGl0IGZvciBleGFjdCBtYXRjaGVzICovCisJCQlpZiAoY2xrID09IGNvZGVjX2NsaykKKwkJCQlicmVhazsKKwkJfQorCisJaWYgKGxhc3RfY2xrID09IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlcygpOiB1bmFibGUgdG8gc2V0dXAgUExMXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRhdGEgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUlDM1hfUExMX1BST0dBX1JFRyk7CisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HQV9SRUcsIGRhdGEgfCAocGxsX3AgPDwgUExMUF9TSElGVCkpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9PVlJGX1NUQVRVU19BTkRfUExMUl9SRUcsIHBsbF9yIDw8IFBMTFJfU0hJRlQpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9QTExfUFJPR0JfUkVHLCBwbGxfaiA8PCBQTExKX1NISUZUKTsKKwlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dDX1JFRywgKHBsbF9kID4+IDYpIDw8IFBMTERfTVNCX1NISUZUKTsKKwlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dEX1JFRywKKwkJICAgIChwbGxfZCAmIDB4M0YpIDw8IFBMTERfTFNCX1NISUZUKTsKKwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGFpYzN4X211dGUoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksIGludCBtdXRlKQorc3RhdGljIGludCBhaWMzeF9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOwogCXU4IGxkYWNfcmVnID0gYWljM3hfcmVhZF9yZWdfY2FjaGUoY29kZWMsIExEQUNfVk9MKSAmIH5NVVRFX09OOwpAQCAtODIwLDMxICs4MzEsMjUgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBhaWMzeF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgYWljM3hfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCQkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKIAlzdHJ1Y3QgYWljM3hfcHJpdiAqYWljM3ggPSBjb2RlYy0+cHJpdmF0ZV9kYXRhOwogCi0Jc3dpdGNoIChmcmVxKSB7Ci0JY2FzZSAxMjAwMDAwMDoKLQljYXNlIDE5MjAwMDAwOgotCWNhc2UgMjI1NzkyMDA6Ci0JY2FzZSAzMzg2ODgwMDoKLQkJYWljM3gtPnN5c2NsayA9IGZyZXE7Ci0JCXJldHVybiAwOwotCX0KLQotCXJldHVybiAtRUlOVkFMOworCWFpYzN4LT5zeXNjbGsgPSBmcmVxOworCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGFpYzN4X3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCBhaWMzeF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJCSAgICAgdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwogCXN0cnVjdCBhaWMzeF9wcml2ICphaWMzeCA9IGNvZGVjLT5wcml2YXRlX2RhdGE7Ci0JdTggaWZhY2VfYXJlZyA9IDA7Ci0JdTggaWZhY2VfYnJlZyA9IDA7CisJdTggaWZhY2VfYXJlZywgaWZhY2VfYnJlZzsKKworCWlmYWNlX2FyZWcgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUlDM1hfQVNEX0lOVEZfQ1RSTEEpICYgMHgzZjsKKwlpZmFjZV9icmVnID0gYWljM3hfcmVhZF9yZWdfY2FjaGUoY29kZWMsIEFJQzNYX0FTRF9JTlRGX0NUUkxCKSAmIDB4M2Y7CiAKIAkvKiBzZXQgbWFzdGVyL3NsYXZlIGF1ZGlvIGludGVyZmFjZSAqLwogCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfTUFTVEVSX01BU0spIHsKQEAgLTg4MywxMyArODg4LDE0IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYWljM3hfZGFwbV9ldmVudChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBldmVudCkKK3N0YXRpYyBpbnQgYWljM3hfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCQkJCWVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQogewogCXN0cnVjdCBhaWMzeF9wcml2ICphaWMzeCA9IGNvZGVjLT5wcml2YXRlX2RhdGE7CiAJdTggcmVnOwogCi0Jc3dpdGNoIChldmVudCkgewotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QwOgorCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKIAkJLyogYWxsIHBvd2VyIGlzIGRyaXZlbiBieSBEQVBNIHN5c3RlbSAqLwogCQlpZiAoYWljM3gtPm1hc3RlcikgewogCQkJLyogZW5hYmxlIHBsbCAqLwpAQCAtODk4LDEwICs5MDQsOSBAQAogCQkJCSAgICByZWcgfCBQTExfRU5BQkxFKTsKIAkJfQogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMToKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMjoKKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2hvdDoKKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgogCQkvKgogCQkgKiBhbGwgcG93ZXIgaXMgZHJpdmVuIGJ5IERBUE0gc3lzdGVtLAogCQkgKiBzbyBvdXRwdXQgcG93ZXIgaXMgc2FmZSBpZiBieXBhc3Mgd2FzIHNldApAQCAtOTEzLDcgKzkxOCw3IEBACiAJCQkJICAgIHJlZyAmIH5QTExfRU5BQkxFKTsKIAkJfQogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQ6CisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgogCQkvKiBmb3JjZSBhbGwgcG93ZXIgb2ZmICovCiAJCXJlZyA9IGFpYzN4X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBMSU5FMUxfMl9MQURDX0NUUkwpOwogCQlhaWMzeF93cml0ZShjb2RlYywgTElORTFMXzJfTEFEQ19DVFJMLCByZWcgJiB+TEFEQ19QV1JfT04pOwpAQCAtOTQ5LDE2ICs5NTQsNDMgQEAKIAkJfQogCQlicmVhazsKIAl9Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBldmVudDsKKwljb2RlYy0+Ymlhc19sZXZlbCA9IGxldmVsOwogCiAJcmV0dXJuIDA7CiB9CiAKK3ZvaWQgYWljM3hfc2V0X2dwaW8oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZ3BpbywgaW50IHN0YXRlKQoreworCXU4IHJlZyA9IGdwaW8gPyBBSUMzWF9HUElPMl9SRUcgOiBBSUMzWF9HUElPMV9SRUc7CisJdTggYml0ID0gZ3BpbyA/IDM6IDA7CisJdTggdmFsID0gYWljM3hfcmVhZF9yZWdfY2FjaGUoY29kZWMsIHJlZykgJiB+KDEgPDwgYml0KTsKKwlhaWMzeF93cml0ZShjb2RlYywgcmVnLCB2YWwgfCAoISFzdGF0ZSA8PCBiaXQpKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGFpYzN4X3NldF9ncGlvKTsKKworaW50IGFpYzN4X2dldF9ncGlvKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGdwaW8pCit7CisJdTggcmVnID0gZ3BpbyA/IEFJQzNYX0dQSU8yX1JFRyA6IEFJQzNYX0dQSU8xX1JFRzsKKwl1OCB2YWwsIGJpdCA9IGdwaW8gPyAyOiAxOworCisJYWljM3hfcmVhZChjb2RlYywgcmVnLCAmdmFsKTsKKwlyZXR1cm4gKHZhbCA+PiBiaXQpICYgMTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGFpYzN4X2dldF9ncGlvKTsKKworaW50IGFpYzN4X2hlYWRzZXRfZGV0ZWN0ZWQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXU4IHZhbDsKKwlhaWMzeF9yZWFkKGNvZGVjLCBBSUMzWF9SVF9JUlFfRkxBR1NfUkVHLCAmdmFsKTsKKwlyZXR1cm4gKHZhbCA+PiAyKSAmIDE7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChhaWMzeF9oZWFkc2V0X2RldGVjdGVkKTsKKwogI2RlZmluZSBBSUMzWF9SQVRFUwlTTkRSVl9QQ01fUkFURV84MDAwXzk2MDAwCiAjZGVmaW5lIEFJQzNYX0ZPUk1BVFMJKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMjBfM0xFIHwgXAogCQkJIFNORFJWX1BDTV9GTVRCSVRfUzI0XzNMRSB8IFNORFJWX1BDTV9GTVRCSVRfUzMyX0xFKQogCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgYWljM3hfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIGFpYzN4X2RhaSA9IHsKIAkubmFtZSA9ICJhaWMzeCIsCiAJLnBsYXliYWNrID0gewogCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2siLApAQCAtOTg4LDcgKzEwMjAsNyBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAotCWFpYzN4X2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCWFpYzN4X3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTAwOCw3ICsxMDQwLDcgQEAKIAkJY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpOwogCX0KIAotCWFpYzN4X2RhcG1fZXZlbnQoY29kZWMsIGNvZGVjLT5zdXNwZW5kX2RhcG1fc3RhdGUpOworCWFpYzN4X3NldF9iaWFzX2xldmVsKGNvZGVjLCBjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTAyMCwxNiArMTA1MiwxNyBAQAogc3RhdGljIGludCBhaWMzeF9pbml0KHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJc3RydWN0IGFpYzN4X3NldHVwX2RhdGEgKnNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOwogCWludCByZWcsIHJldCA9IDA7CiAKIAljb2RlYy0+bmFtZSA9ICJhaWMzeCI7CiAJY29kZWMtPm93bmVyID0gVEhJU19NT0RVTEU7CiAJY29kZWMtPnJlYWQgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZTsKIAljb2RlYy0+d3JpdGUgPSBhaWMzeF93cml0ZTsKLQljb2RlYy0+ZGFwbV9ldmVudCA9IGFpYzN4X2RhcG1fZXZlbnQ7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gYWljM3hfc2V0X2JpYXNfbGV2ZWw7CiAJY29kZWMtPmRhaSA9ICZhaWMzeF9kYWk7CiAJY29kZWMtPm51bV9kYWkgPSAxOwotCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IHNpemVvZihhaWMzeF9yZWcpOworCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFSUkFZX1NJWkUoYWljM3hfcmVnKTsKIAljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cChhaWMzeF9yZWcsIHNpemVvZihhaWMzeF9yZWcpLCBHRlBfS0VSTkVMKTsKIAlpZiAoY29kZWMtPnJlZ19jYWNoZSA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTExMDgsNyArMTE0MSwxMSBAQAogCWFpYzN4X3dyaXRlKGNvZGVjLCBMSU5FMlJfMl9NT05PTE9QTV9WT0wsIERFRkFVTFRfVk9MKTsKIAogCS8qIG9mZiwgd2l0aCBwb3dlciBvbiAqLwotCWFpYzN4X2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJYWljM3hfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKworCS8qIHNldHVwIEdQSU8gZnVuY3Rpb25zICovCisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0dQSU8xX1JFRywgKHNldHVwLT5ncGlvX2Z1bmNbMF0gJiAweGYpIDw8IDQpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9HUElPMl9SRUcsIChzZXR1cC0+Z3Bpb19mdW5jWzFdICYgMHhmKSA8PCA0KTsKIAogCWFpYzN4X2FkZF9jb250cm9scyhjb2RlYyk7CiAJYWljM3hfYWRkX3dpZGdldHMoY29kZWMpOwpAQCAtMTIxNyw2ICsxMjU0LDEyIEBACiAJLm5hbWUgPSAiQUlDM1giLAogCS5kcml2ZXIgPSAmYWljM3hfaTJjX2RyaXZlciwKIH07CisKK3N0YXRpYyBpbnQgYWljM3hfaTJjX3JlYWQoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggKnZhbHVlLCBpbnQgbGVuKQoreworCXZhbHVlWzBdID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgdmFsdWVbMF0pOworCXJldHVybiAobGVuID09IDEpOworfQogI2VuZGlmCiAKIHN0YXRpYyBpbnQgYWljM3hfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKQEAgLTEyNTEsNiArMTI5NCw3IEBACiAJaWYgKHNldHVwLT5pMmNfYWRkcmVzcykgewogCQlub3JtYWxfaTJjWzBdID0gc2V0dXAtPmkyY19hZGRyZXNzOwogCQljb2RlYy0+aHdfd3JpdGUgPSAoaHdfd3JpdGVfdCkgaTJjX21hc3Rlcl9zZW5kOworCQljb2RlYy0+aHdfcmVhZCA9IChod19yZWFkX3QpIGFpYzN4X2kyY19yZWFkOwogCQlyZXQgPSBpMmNfYWRkX2RyaXZlcigmYWljM3hfaTJjX2RyaXZlcik7CiAJCWlmIChyZXQgIT0gMCkKIAkJCXByaW50ayhLRVJOX0VSUiAiY2FuJ3QgYWRkIGkyYyBkcml2ZXIiKTsKQEAgLTEyNjgsNyArMTMxMiw3IEBACiAKIAkvKiBwb3dlciBkb3duIGNoaXAgKi8KIAlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKLQkJYWljM3hfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzKTsKKwkJYWljM3hfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCiAJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKIAlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy90bHYzMjBhaWMzeC5oIGIvc291bmQvc29jL2NvZGVjcy90bHYzMjBhaWMzeC5oCmluZGV4IGQwY2RlZWIuLmQ3NmMwNzkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvdGx2MzIwYWljM3guaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFpYzN4LmgKQEAgLTM3LDYgKzM3LDggQEAKICNkZWZpbmUgQUlDM1hfQVNEX0lOVEZfQ1RSTEIJCTkKIC8qIEF1ZGlvIG92ZXJmbG93IHN0YXR1cyBhbmQgUExMIFIgdmFsdWUgcHJvZ3JhbW1pbmcgcmVnaXN0ZXIgKi8KICNkZWZpbmUgQUlDM1hfT1ZSRl9TVEFUVVNfQU5EX1BMTFJfUkVHCTExCisvKiBBdWRpbyBjb2RlYyBkaWdpdGFsIGZpbHRlciBjb250cm9sIHJlZ2lzdGVyICovCisjZGVmaW5lIEFJQzNYX0NPREVDX0RGSUxUX0NUUkwJCTEyCiAKIC8qIEFEQyBQR0EgR2FpbiBjb250cm9sIHJlZ2lzdGVycyAqLwogI2RlZmluZSBMQURDX1ZPTAkJCTE1CkBAIC0xMDgsNiArMTEwLDEzIEBACiAjZGVmaW5lIERBQ1IxXzJfUkxPUE1fVk9MCQk5MgogI2RlZmluZSBMTE9QTV9DVFJMCQkJODYKICNkZWZpbmUgUkxPUE1fQ1RSTAkJCTkzCisvKiBHUElPL0lSUSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQUlDM1hfU1RJQ0tZX0lSUV9GTEFHU19SRUcJOTYKKyNkZWZpbmUgQUlDM1hfUlRfSVJRX0ZMQUdTX1JFRwkJOTcKKyNkZWZpbmUgQUlDM1hfR1BJTzFfUkVHCQkJOTgKKyNkZWZpbmUgQUlDM1hfR1BJTzJfUkVHCQkJOTkKKyNkZWZpbmUgQUlDM1hfR1BJT0FfUkVHCQkJMTAwCisjZGVmaW5lIEFJQzNYX0dQSU9CX1JFRwkJCTEwMQogLyogQ2xvY2sgZ2VuZXJhdGlvbiBjb250cm9sIHJlZ2lzdGVyICovCiAjZGVmaW5lIEFJQzNYX0NMS0dFTl9DVFJMX1JFRwkJMTAyCiAKQEAgLTEyOCwxMiArMTM3LDE1IEBACiAKIC8qIFBMTCByZWdpc3RlcnMgYml0ZmllbGRzICovCiAjZGVmaW5lIFBMTFBfU0hJRlQJCTAKKyNkZWZpbmUgUExMUV9TSElGVAkJMwogI2RlZmluZSBQTExSX1NISUZUCQkwCiAjZGVmaW5lIFBMTEpfU0hJRlQJCTIKICNkZWZpbmUgUExMRF9NU0JfU0hJRlQJCTAKICNkZWZpbmUgUExMRF9MU0JfU0hJRlQJCTIKIAogLyogQ2xvY2sgZ2VuZXJhdGlvbiByZWdpc3RlciBiaXRzICovCisjZGVmaW5lIENPREVDX0NMS0lOX1BMTERJVgkwCisjZGVmaW5lIENPREVDX0NMS0lOX0NMS0RJVgkxCiAjZGVmaW5lIFBMTF9DTEtJTl9TSElGVAkJNAogI2RlZmluZSBNQ0xLX1NPVVJDRQkJMHgwCiAjZGVmaW5lIFBMTF9DTEtESVZfU0hJRlQJMApAQCAtMTcxLDExICsxODMsNTIgQEAKIC8qIERlZmF1bHQgaW5wdXQgdm9sdW1lICovCiAjZGVmaW5lIERFRkFVTFRfR0FJTiAgICAweDIwCiAKLXN0cnVjdCBhaWMzeF9zZXR1cF9kYXRhIHsKLQl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKKy8qIEdQSU8gQVBJICovCitlbnVtIHsKKwlBSUMzWF9HUElPMV9GVU5DX0RJU0FCTEVECQk9IDAsCisJQUlDM1hfR1BJTzFfRlVOQ19BVURJT19XT1JEQ0xLX0FEQwk9IDEsCisJQUlDM1hfR1BJTzFfRlVOQ19DTE9DS19NVVgJCT0gMiwKKwlBSUMzWF9HUElPMV9GVU5DX0NMT0NLX01VWF9ESVYyCQk9IDMsCisJQUlDM1hfR1BJTzFfRlVOQ19DTE9DS19NVVhfRElWNAkJPSA0LAorCUFJQzNYX0dQSU8xX0ZVTkNfQ0xPQ0tfTVVYX0RJVjgJCT0gNSwKKwlBSUMzWF9HUElPMV9GVU5DX1NIT1JUX0NJUkNVSVRfSVJRCT0gNiwKKwlBSUMzWF9HUElPMV9GVU5DX0FHQ19OT0lTRV9JUlEJCT0gNywKKwlBSUMzWF9HUElPMV9GVU5DX0lOUFVUCQkJPSA4LAorCUFJQzNYX0dQSU8xX0ZVTkNfT1VUUFVUCQkJPSA5LAorCUFJQzNYX0dQSU8xX0ZVTkNfRElHSVRBTF9NSUNfTU9EQ0xLCT0gMTAsCisJQUlDM1hfR1BJTzFfRlVOQ19BVURJT19XT1JEQ0xLCQk9IDExLAorCUFJQzNYX0dQSU8xX0ZVTkNfQlVUVE9OX0lSUQkJPSAxMiwKKwlBSUMzWF9HUElPMV9GVU5DX0hFQURTRVRfREVURUNUX0lSUQk9IDEzLAorCUFJQzNYX0dQSU8xX0ZVTkNfSEVBRFNFVF9ERVRFQ1RfT1JfQlVUVE9OX0lSUQk9IDE0LAorCUFJQzNYX0dQSU8xX0ZVTkNfQUxMX0lSUQkJPSAxNgogfTsKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSBhaWMzeF9kYWk7CitlbnVtIHsKKwlBSUMzWF9HUElPMl9GVU5DX0RJU0FCTEVECQk9IDAsCisJQUlDM1hfR1BJTzJfRlVOQ19IRUFEU0VUX0RFVEVDVF9JUlEJPSAyLAorCUFJQzNYX0dQSU8yX0ZVTkNfSU5QVVQJCQk9IDMsCisJQUlDM1hfR1BJTzJfRlVOQ19PVVRQVVQJCQk9IDQsCisJQUlDM1hfR1BJTzJfRlVOQ19ESUdJVEFMX01JQ19JTlBVVAk9IDUsCisJQUlDM1hfR1BJTzJfRlVOQ19BVURJT19CSVRDTEsJCT0gOCwKKwlBSUMzWF9HUElPMl9GVU5DX0hFQURTRVRfREVURUNUX09SX0JVVFRPTl9JUlEgPSA5LAorCUFJQzNYX0dQSU8yX0ZVTkNfQUxMX0lSUQkJPSAxMCwKKwlBSUMzWF9HUElPMl9GVU5DX1NIT1JUX0NJUkNVSVRfT1JfQUdDX0lSUSA9IDExLAorCUFJQzNYX0dQSU8yX0ZVTkNfSEVBRFNFVF9PUl9CVVRUT05fUFJFU1NfT1JfU0hPUlRfQ0lSQ1VJVF9JUlEgPSAxMiwKKwlBSUMzWF9HUElPMl9GVU5DX1NIT1JUX0NJUkNVSVRfSVJRCT0gMTMsCisJQUlDM1hfR1BJTzJfRlVOQ19BR0NfTk9JU0VfSVJRCQk9IDE0LAorCUFJQzNYX0dQSU8yX0ZVTkNfQlVUVE9OX1BSRVNTX0lSUQk9IDE1Cit9OworCit2b2lkIGFpYzN4X3NldF9ncGlvKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGdwaW8sIGludCBzdGF0ZSk7CitpbnQgYWljM3hfZ2V0X2dwaW8oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZ3Bpbyk7CitpbnQgYWljM3hfaGVhZHNldF9kZXRlY3RlZChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpOworCitzdHJ1Y3QgYWljM3hfc2V0dXBfZGF0YSB7CisJdW5zaWduZWQgc2hvcnQgaTJjX2FkZHJlc3M7CisJdW5zaWduZWQgaW50IGdwaW9fZnVuY1syXTsKK307CisKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgYWljM3hfZGFpOwogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X2FpYzN4OwogCiAjZW5kaWYgLyogX0FJQzNYX0ggKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvdWRhMTM4MC5jIGIvc291bmQvc29jL2NvZGVjcy91ZGExMzgwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUyZDZkOQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvdWRhMTM4MC5jCkBAIC0wLDAgKzEsODUyIEBACisvKgorICogdWRhMTM4MC5jIC0gUGhpbGlwcyBVREExMzgwIEFMU0EgU29DIGF1ZGlvIGRyaXZlcgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA3IFBoaWxpcHAgWmFiZWwgPHBoaWxpcHAuemFiZWxAZ21haWwuY29tPgorICogSW1wcm92ZWQgc3VwcG9ydCBmb3IgREFQTSBhbmQgYXVkaW8gcm91dGluZy9taXhpbmcgY2FwYWJpbGl0aWVzLAorICogYWRkZWQgVExWIHN1cHBvcnQuCisgKgorICogTW9kaWZpZWQgYnkgUmljaGFyZCBQdXJkaWUgPHJpY2hhcmRAb3BlbmVkaGFuZC5jb20+IHRvIGZpdCBpbnRvIFNvQworICogY29kZWMgbW9kZWwuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA1IEdpb3JnaW8gUGFkcmluIDxnaW9yZ2lvQG1hbmRhcmlubG9naXEub3JnPgorICogQ29weXJpZ2h0IDIwMDUgT3BlbmVkaGFuZCBMdGQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvY29udHJvbC5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC9pbmZvLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKyNpbmNsdWRlIDxzb3VuZC90bHYuaD4KKworI2luY2x1ZGUgInVkYTEzODAuaCIKKworI2RlZmluZSBVREExMzgwX1ZFUlNJT04gIjAuNiIKKyNkZWZpbmUgQVVESU9fTkFNRSAidWRhMTM4MCIKKworLyoKKyAqIHVkYTEzODAgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGNvbnN0IHUxNiB1ZGExMzgwX3JlZ1tVREExMzgwX0NBQ0hFUkVHTlVNXSA9IHsKKwkweDA1MDIsIDB4MDAwMCwgMHgwMDAwLCAweDNmM2YsCisJMHgwMjAyLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDAwLCAweGZmMDAsIDB4MDAwMCwgMHg0ODAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAwMCwgMHg4MDAwLCAweDAwMDIsIDB4MDAwMCwKK307CisKKy8qCisgKiByZWFkIHVkYTEzODAgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJdW5zaWduZWQgaW50IHJlZykKK3sKKwl1MTYgKmNhY2hlID0gY29kZWMtPnJlZ19jYWNoZTsKKwlpZiAocmVnID09IFVEQTEzODBfUkVTRVQpCisJCXJldHVybiAwOworCWlmIChyZWcgPj0gVURBMTM4MF9DQUNIRVJFR05VTSkKKwkJcmV0dXJuIC0xOworCXJldHVybiBjYWNoZVtyZWddOworfQorCisvKgorICogd3JpdGUgdWRhMTM4MCByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHZvaWQgdWRhMTM4MF93cml0ZV9yZWdfY2FjaGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCXUxNiByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSkKK3sKKwl1MTYgKmNhY2hlID0gY29kZWMtPnJlZ19jYWNoZTsKKwlpZiAocmVnID49IFVEQTEzODBfQ0FDSEVSRUdOVU0pCisJCXJldHVybjsKKwljYWNoZVtyZWddID0gdmFsdWU7Cit9CisKKy8qCisgKiB3cml0ZSB0byB0aGUgVURBMTM4MCByZWdpc3RlciBzcGFjZQorICovCitzdGF0aWMgaW50IHVkYTEzODBfd3JpdGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCB1bnNpZ25lZCBpbnQgcmVnLAorCXVuc2lnbmVkIGludCB2YWx1ZSkKK3sKKwl1OCBkYXRhWzNdOworCisJLyogZGF0YSBpcworCSAqICAgZGF0YVswXSBpcyByZWdpc3RlciBvZmZzZXQKKwkgKiAgIGRhdGFbMV0gaXMgTVMgYnl0ZQorCSAqICAgZGF0YVsyXSBpcyBMUyBieXRlCisJICovCisJZGF0YVswXSA9IHJlZzsKKwlkYXRhWzFdID0gKHZhbHVlICYgMHhmZjAwKSA+PiA4OworCWRhdGFbMl0gPSB2YWx1ZSAmIDB4MDBmZjsKKworCXVkYTEzODBfd3JpdGVfcmVnX2NhY2hlKGNvZGVjLCByZWcsIHZhbHVlKTsKKworCS8qIHRoZSBpbnRlcnBvbGF0b3IgJiBkZWNpbWF0b3IgcmVncyBtdXN0IG9ubHkgYmUgd3JpdHRlbiB3aGVuIHRoZQorCSAqIGNvZGVjIERBSSBpcyBhY3RpdmUuCisJICovCisJaWYgKCFjb2RlYy0+YWN0aXZlICYmIChyZWcgPj0gVURBMTM4MF9NVk9MKSkKKwkJcmV0dXJuIDA7CisJcHJfZGVidWcoInVkYTEzODA6IGh3IHdyaXRlICV4IHZhbCAleFxuIiwgcmVnLCB2YWx1ZSk7CisJaWYgKGNvZGVjLT5od193cml0ZShjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAzKSA9PSAzKSB7CisJCXVuc2lnbmVkIGludCB2YWw7CisJCWkyY19tYXN0ZXJfc2VuZChjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAxKTsKKwkJaTJjX21hc3Rlcl9yZWN2KGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpOworCQl2YWwgPSAoZGF0YVswXTw8OCkgfCBkYXRhWzFdOworCQlpZiAodmFsICE9IHZhbHVlKSB7CisJCQlwcl9kZWJ1ZygidWRhMTM4MDogUkVBRCBCQUNLIFZBTCAleFxuIiwKKwkJCQkJKGRhdGFbMF08PDgpIHwgZGF0YVsxXSk7CisJCQlyZXR1cm4gLUVJTzsKKwkJfQorCQlyZXR1cm4gMDsKKwl9IGVsc2UKKwkJcmV0dXJuIC1FSU87Cit9CisKKyNkZWZpbmUgdWRhMTM4MF9yZXNldChjKQl1ZGExMzgwX3dyaXRlKGMsIFVEQTEzODBfUkVTRVQsIDApCisKKy8qIGRlY2xhcmF0aW9ucyBvZiBBTFNBIHJlZ19lbGVtX1JFQUwgY29udHJvbHMgKi8KK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX2RlZW1wW10gPSB7CisJIk5vbmUiLAorCSIzMmtIeiIsCisJIjQ0LjFrSHoiLAorCSI0OGtIeiIsCisJIjk2a0h6IiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqdWRhMTM4MF9pbnB1dF9zZWxbXSA9IHsKKwkiTGluZSIsCisJIk1pYyArIExpbmUgUiIsCisJIkxpbmUgTCIsCisJIk1pYyIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfb3V0cHV0X3NlbFtdID0geworCSJEQUMiLAorCSJBbmFsb2cgTWl4ZXIiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX3NwZl9tb2RlW10gPSB7CisJIkZsYXQiLAorCSJNaW5pbXVtMSIsCisJIk1pbmltdW0yIiwKKwkiTWF4aW11bSIKK307CitzdGF0aWMgY29uc3QgY2hhciAqdWRhMTM4MF9jYXB0dXJlX3NlbFtdID0geworCSJBREMiLAorCSJEaWdpdGFsIE1peGVyIgorfTsKK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX3NlbF9uc1tdID0geworCSIzcmQtb3JkZXIiLAorCSI1dGgtb3JkZXIiCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfbWl4X2NvbnRyb2xbXSA9IHsKKwkib2ZmIiwKKwkiUENNIG9ubHkiLAorCSJiZWZvcmUgc291bmQgcHJvY2Vzc2luZyIsCisJImFmdGVyIHNvdW5kIHByb2Nlc3NpbmciCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfc2RldF9zZXR0aW5nW10gPSB7CisJIjMyMDAiLAorCSI0ODAwIiwKKwkiOTYwMCIsCisJIjE5MjAwIgorfTsKK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX29zX3NldHRpbmdbXSA9IHsKKwkic2luZ2xlLXNwZWVkIiwKKwkiZG91YmxlLXNwZWVkIChubyBtaXhpbmcpIiwKKwkicXVhZC1zcGVlZCAobm8gbWl4aW5nKSIKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9kZWVtcF9lbnVtW10gPSB7CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfREVFTVAsIDgsIDUsIHVkYTEzODBfZGVlbXApLAorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX0RFRU1QLCAwLCA1LCB1ZGExMzgwX2RlZW1wKSwKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHVkYTEzODBfaW5wdXRfc2VsX2VudW0gPQorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX0FEQywgMiwgNCwgdWRhMTM4MF9pbnB1dF9zZWwpOwkJLyogU0VMX01JQywgU0VMX0xOQSAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB1ZGExMzgwX291dHB1dF9zZWxfZW51bSA9CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfUE0sIDcsIDIsIHVkYTEzODBfb3V0cHV0X3NlbCk7CQkvKiBSMDJfRU5fQVZDICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHVkYTEzODBfc3BmX2VudW0gPQorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX01PREUsIDE0LCA0LCB1ZGExMzgwX3NwZl9tb2RlKTsJCS8qIE0gKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9jYXB0dXJlX3NlbF9lbnVtID0KKwlTT0NfRU5VTV9TSU5HTEUoVURBMTM4MF9JRkFDRSwgNiwgMiwgdWRhMTM4MF9jYXB0dXJlX3NlbCk7CS8qIFNFTF9TT1VSQ0UgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9zZWxfbnNfZW51bSA9CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfTUlYRVIsIDE0LCAyLCB1ZGExMzgwX3NlbF9ucyk7CQkvKiBTRUxfTlMgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9taXhfZW51bSA9CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfTUlYRVIsIDEyLCA0LCB1ZGExMzgwX21peF9jb250cm9sKTsJLyogTUlYLCBNSVhfUE9TICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHVkYTEzODBfc2RldF9lbnVtID0KKwlTT0NfRU5VTV9TSU5HTEUoVURBMTM4MF9NSVhFUiwgNCwgNCwgdWRhMTM4MF9zZGV0X3NldHRpbmcpOwkvKiBTRF9WQUxVRSAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB1ZGExMzgwX29zX2VudW0gPQorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX01JWEVSLCAwLCAzLCB1ZGExMzgwX29zX3NldHRpbmcpOwkvKiBPUyAqLworCisvKgorICogZnJvbSAtNDggZEIgaW4gMS41IGRCIHN0ZXBzIChtdXRlIGluc3RlYWQgb2YgLTQ5LjUgZEIpCisgKi8KK3N0YXRpYyBERUNMQVJFX1RMVl9EQl9TQ0FMRShhbWl4X3RsdiwgLTQ5NTAsIDE1MCwgMSk7CisKKy8qCisgKiBmcm9tIC03OCBkQiBpbiAxIGRCIHN0ZXBzICgzIGRCIHN0ZXBzLCByZWFsbHkuIExTQiBhcmUgaWdub3JlZCksCisgKiBmcm9tIC02NiBkQiBpbiAwLjUgZEIgc3RlcHMgKDIgZEIgc3RlcHMsIHJlYWxseSkgYW5kCisgKiBmcm9tIC01MiBkQiBpbiAwLjI1IGRCIHN0ZXBzCisgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXZvbF90bHZbXSA9IHsKKwlUTFZfREJfUkFOR0VfSEVBRCgzKSwKKwkwLCAxNSwgVExWX0RCX1NDQUxFX0lURU0oLTgyMDAsIDEwMCwgMSksCisJMTYsIDQzLCBUTFZfREJfU0NBTEVfSVRFTSgtNjYwMCwgNTAsIDApLAorCTQ0LCAyNTIsIFRMVl9EQl9TQ0FMRV9JVEVNKC01MjAwLCAyNSwgMCksCit9OworCisvKgorICogZnJvbSAtNzIgZEIgaW4gMS41IGRCIHN0ZXBzICg2IGRCIHN0ZXBzIHJlYWxseSksCisgKiBmcm9tIC02NiBkQiBpbiAwLjc1IGRCIHN0ZXBzICgzIGRCIHN0ZXBzIHJlYWxseSksCisgKiBmcm9tIC02MCBkQiBpbiAwLjUgZEIgc3RlcHMgKDIgZEIgc3RlcHMgcmVhbGx5KSBhbmQKKyAqIGZyb20gLTQ2IGRCIGluIDAuMjUgZEIgc3RlcHMKKyAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB2Y190bHZbXSA9IHsKKwlUTFZfREJfUkFOR0VfSEVBRCg0KSwKKwkwLCA3LCBUTFZfREJfU0NBTEVfSVRFTSgtNzgwMCwgMTUwLCAxKSwKKwk4LCAxNSwgVExWX0RCX1NDQUxFX0lURU0oLTY2MDAsIDc1LCAwKSwKKwkxNiwgNDMsIFRMVl9EQl9TQ0FMRV9JVEVNKC02MDAwLCA1MCwgMCksCisJNDQsIDIyOCwgVExWX0RCX1NDQUxFX0lURU0oLTQ2MDAsIDI1LCAwKSwKK307CisKKy8qIGZyb20gMCB0byA2IGRCIGluIDIgZEIgc3RlcHMgaWYgU1BGIG1vZGUgIT0gZmxhdCAqLworc3RhdGljIERFQ0xBUkVfVExWX0RCX1NDQUxFKHRyX3RsdiwgMCwgMjAwLCAwKTsKKworLyogZnJvbSAwIHRvIDI0IGRCIGluIDIgZEIgc3RlcHMsIGlmIFNQRiBtb2RlID09IG1heGltdW0sIG90aGVyd2lzZSBjdXRzCisgKiBvZmYgYXQgMTggZEIgbWF4KSAqLworc3RhdGljIERFQ0xBUkVfVExWX0RCX1NDQUxFKGJiX3RsdiwgMCwgMjAwLCAwKTsKKworLyogZnJvbSAtNjMgdG8gMjQgZEIgaW4gMC41IGRCIHN0ZXBzICgtMTI4Li4uNDgpICovCitzdGF0aWMgREVDTEFSRV9UTFZfREJfU0NBTEUoZGVjX3RsdiwgLTY0MDAsIDUwLCAxKTsKKworLyogZnJvbSAwIHRvIDI0IGRCIGluIDMgZEIgc3RlcHMgKi8KK3N0YXRpYyBERUNMQVJFX1RMVl9EQl9TQ0FMRShwZ2FfdGx2LCAwLCAzMDAsIDApOworCisvKiBmcm9tIDAgdG8gMzAgZEIgaW4gMiBkQiBzdGVwcyAqLworc3RhdGljIERFQ0xBUkVfVExWX0RCX1NDQUxFKHZnYV90bHYsIDAsIDIwMCwgMCk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB1ZGExMzgwX3NuZF9jb250cm9sc1tdID0geworCVNPQ19ET1VCTEVfVExWKCJBbmFsb2cgTWl4ZXIgVm9sdW1lIiwgVURBMTM4MF9BTUlYLCAwLCA4LCA0NCwgMSwgYW1peF90bHYpLAkvKiBBVkNSLCBBVkNMICovCisJU09DX0RPVUJMRV9UTFYoIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLCBVREExMzgwX01WT0wsIDAsIDgsIDI1MiwgMSwgbXZvbF90bHYpLAkvKiBNVkNMLCBNVkNSICovCisJU09DX1NJTkdMRV9UTFYoIkFEQyBQbGF5YmFjayBWb2x1bWUiLCBVREExMzgwX01JWFZPTCwgOCwgMjI4LCAxLCB2Y190bHYpLAkvKiBWQzIgKi8KKwlTT0NfU0lOR0xFX1RMVigiUENNIFBsYXliYWNrIFZvbHVtZSIsIFVEQTEzODBfTUlYVk9MLCAwLCAyMjgsIDEsIHZjX3RsdiksCS8qIFZDMSAqLworCVNPQ19FTlVNKCJTb3VuZCBQcm9jZXNzaW5nIEZpbHRlciIsIHVkYTEzODBfc3BmX2VudW0pLAkJCQkvKiBNICovCisJU09DX0RPVUJMRV9UTFYoIlRvbmUgQ29udHJvbCAtIFRyZWJsZSIsIFVEQTEzODBfTU9ERSwgNCwgMTIsIDMsIDAsIHRyX3RsdiksIAkvKiBUUkwsIFRSUiAqLworCVNPQ19ET1VCTEVfVExWKCJUb25lIENvbnRyb2wgLSBCYXNzIiwgVURBMTM4MF9NT0RFLCAwLCA4LCAxNSwgMCwgYmJfdGx2KSwJLyogQkJMLCBCQlIgKi8KKy8qKi8JU09DX1NJTkdMRSgiTWFzdGVyIFBsYXliYWNrIFN3aXRjaCIsIFVEQTEzODBfREVFTVAsIDE0LCAxLCAxKSwJCS8qIE1UTSAqLworCVNPQ19TSU5HTEUoIkFEQyBQbGF5YmFjayBTd2l0Y2giLCBVREExMzgwX0RFRU1QLCAxMSwgMSwgMSksCQkvKiBNVDIgZnJvbSBkZWNpbWF0aW9uIGZpbHRlciAqLworCVNPQ19FTlVNKCJBREMgUGxheWJhY2sgRGUtZW1waGFzaXMiLCB1ZGExMzgwX2RlZW1wX2VudW1bMF0pLAkJLyogREUyICovCisJU09DX1NJTkdMRSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIFVEQTEzODBfREVFTVAsIDMsIDEsIDEpLAkJLyogTVQxLCBmcm9tIGRpZ2l0YWwgZGF0YSBpbnB1dCAqLworCVNPQ19FTlVNKCJQQ00gUGxheWJhY2sgRGUtZW1waGFzaXMiLCB1ZGExMzgwX2RlZW1wX2VudW1bMV0pLAkJLyogREUxICovCisJU09DX1NJTkdMRSgiREFDIFBvbGFyaXR5IGludmVydGluZyBTd2l0Y2giLCBVREExMzgwX01JWEVSLCAxNSwgMSwgMCksCS8qIERBX1BPTF9JTlYgKi8KKwlTT0NfRU5VTSgiTm9pc2UgU2hhcGVyIiwgdWRhMTM4MF9zZWxfbnNfZW51bSksCQkJCS8qIFNFTF9OUyAqLworCVNPQ19FTlVNKCJEaWdpdGFsIE1peGVyIFNpZ25hbCBDb250cm9sIiwgdWRhMTM4MF9taXhfZW51bSksCQkvKiBNSVhfUE9TLCBNSVggKi8KKwlTT0NfU0lOR0xFKCJTaWxlbmNlIFN3aXRjaCIsIFVEQTEzODBfTUlYRVIsIDcsIDEsIDApLAkJCS8qIFNJTEVOQ0UsIGZvcmNlIERBQyBvdXRwdXQgdG8gc2lsZW5jZSAqLworCVNPQ19TSU5HTEUoIlNpbGVuY2UgRGV0ZWN0b3IgU3dpdGNoIiwgVURBMTM4MF9NSVhFUiwgNiwgMSwgMCksCQkvKiBTREVUX09OICovCisJU09DX0VOVU0oIlNpbGVuY2UgRGV0ZWN0b3IgU2V0dGluZyIsIHVkYTEzODBfc2RldF9lbnVtKSwJCS8qIFNEX1ZBTFVFICovCisJU09DX0VOVU0oIk92ZXJzYW1wbGluZyBJbnB1dCIsIHVkYTEzODBfb3NfZW51bSksCQkJLyogT1MgKi8KKwlTT0NfRE9VQkxFX1M4X1RMVigiQURDIENhcHR1cmUgVm9sdW1lIiwgVURBMTM4MF9ERUMsIC0xMjgsIDQ4LCBkZWNfdGx2KSwJLyogTUxfREVDLCBNUl9ERUMgKi8KKy8qKi8JU09DX1NJTkdMRSgiQURDIENhcHR1cmUgU3dpdGNoIiwgVURBMTM4MF9QR0EsIDE1LCAxLCAxKSwJCS8qIE1UX0FEQyAqLworCVNPQ19ET1VCTEVfVExWKCJMaW5lIENhcHR1cmUgVm9sdW1lIiwgVURBMTM4MF9QR0EsIDAsIDgsIDgsIDAsIHBnYV90bHYpLCAvKiBQR0FfR0FJTkNUUkxMLCBQR0FfR0FJTkNUUkxSICovCisJU09DX1NJTkdMRSgiQURDIFBvbGFyaXR5IGludmVydGluZyBTd2l0Y2giLCBVREExMzgwX0FEQywgMTIsIDEsIDApLAkvKiBBRENQT0xfSU5WICovCisJU09DX1NJTkdMRV9UTFYoIk1pYyBDYXB0dXJlIFZvbHVtZSIsIFVEQTEzODBfQURDLCA4LCAxNSwgMCwgdmdhX3RsdiksCS8qIFZHQV9DVFJMICovCisJU09DX1NJTkdMRSgiREMgRmlsdGVyIEJ5cGFzcyBTd2l0Y2giLCBVREExMzgwX0FEQywgMSwgMSwgMCksCQkvKiBTS0lQX0RDRklMIChiZWZvcmUgZGVjaW1hdG9yKSAqLworCVNPQ19TSU5HTEUoIkRDIEZpbHRlciBFbmFibGUgU3dpdGNoIiwgVURBMTM4MF9BREMsIDAsIDEsIDApLAkJLyogRU5fRENGSUwgKGF0IG91dHB1dCBvZiBkZWNpbWF0b3IpICovCisJU09DX1NJTkdMRSgiQUdDIFRpbWluZyIsIFVEQTEzODBfQUdDLCA4LCA3LCAwKSwJCQkvKiBUT0RPOiBlbnVtLCBzZWUgdGFibGUgNjIgKi8KKwlTT0NfU0lOR0xFKCJBR0MgVGFyZ2V0IGxldmVsIiwgVURBMTM4MF9BR0MsIDIsIDMsIDEpLAkJCS8qIEFHQ19MRVZFTCAqLworCS8qIC01LjUsIC04LCAtMTEuNSwgLTE0IGRCRlMgKi8KKwlTT0NfU0lOR0xFKCJBR0MgU3dpdGNoIiwgVURBMTM4MF9BR0MsIDAsIDEsIDApLAorfTsKKworLyogYWRkIG5vbiBkYXBtIGNvbnRyb2xzICovCitzdGF0aWMgaW50IHVkYTEzODBfYWRkX2NvbnRyb2xzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlpbnQgZXJyLCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodWRhMTM4MF9zbmRfY29udHJvbHMpOyBpKyspIHsKKwkJZXJyID0gc25kX2N0bF9hZGQoY29kZWMtPmNhcmQsCisJCQlzbmRfc29jX2NuZXcoJnVkYTEzODBfc25kX2NvbnRyb2xzW2ldLCBjb2RlYywgTlVMTCkpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIElucHV0IG11eCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHVkYTEzODBfaW5wdXRfbXV4X2NvbnRyb2wgPQorCVNPQ19EQVBNX0VOVU0oIlJvdXRlIiwgdWRhMTM4MF9pbnB1dF9zZWxfZW51bSk7CisKKy8qIE91dHB1dCBtdXggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB1ZGExMzgwX291dHB1dF9tdXhfY29udHJvbCA9CisJU09DX0RBUE1fRU5VTSgiUm91dGUiLCB1ZGExMzgwX291dHB1dF9zZWxfZW51bSk7CisKKy8qIENhcHR1cmUgbXV4ICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgdWRhMTM4MF9jYXB0dXJlX211eF9jb250cm9sID0KKwlTT0NfREFQTV9FTlVNKCJSb3V0ZSIsIHVkYTEzODBfY2FwdHVyZV9zZWxfZW51bSk7CisKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IHVkYTEzODBfZGFwbV93aWRnZXRzW10gPSB7CisJU05EX1NPQ19EQVBNX01VWCgiSW5wdXQgTXV4IiwgU05EX1NPQ19OT1BNLCAwLCAwLAorCQkmdWRhMTM4MF9pbnB1dF9tdXhfY29udHJvbCksCisJU05EX1NPQ19EQVBNX01VWCgiT3V0cHV0IE11eCIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJnVkYTEzODBfb3V0cHV0X211eF9jb250cm9sKSwKKwlTTkRfU09DX0RBUE1fTVVYKCJDYXB0dXJlIE11eCIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJnVkYTEzODBfY2FwdHVyZV9tdXhfY29udHJvbCksCisJU05EX1NPQ19EQVBNX1BHQSgiTGVmdCBQR0EiLCBVREExMzgwX1BNLCAzLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJSaWdodCBQR0EiLCBVREExMzgwX1BNLCAxLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJNaWMgTE5BIiwgVURBMTM4MF9QTSwgNCwgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX0FEQygiTGVmdCBBREMiLCAiTGVmdCBDYXB0dXJlIiwgVURBMTM4MF9QTSwgMiwgMCksCisJU05EX1NPQ19EQVBNX0FEQygiUmlnaHQgQURDIiwgIlJpZ2h0IENhcHR1cmUiLCBVREExMzgwX1BNLCAwLCAwKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIlZJTk0iKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIlZJTkwiKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIlZJTlIiKSwKKwlTTkRfU09DX0RBUE1fTUlYRVIoIkFuYWxvZyBNaXhlciIsIFVEQTEzODBfUE0sIDYsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIlZPVVRMSFAiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJWT1VUUkhQIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiVk9VVEwiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJWT1VUUiIpLAorCVNORF9TT0NfREFQTV9EQUMoIkRBQyIsICJQbGF5YmFjayIsIFVEQTEzODBfUE0sIDEwLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJIZWFkUGhvbmUgRHJpdmVyIiwgVURBMTM4MF9QTSwgMTMsIDAsIE5VTEwsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CisKKwkvKiBvdXRwdXQgbXV4ICovCisJeyJIZWFkUGhvbmUgRHJpdmVyIiwgTlVMTCwgIk91dHB1dCBNdXgifSwKKwl7IlZPVVRSIiwgTlVMTCwgIk91dHB1dCBNdXgifSwKKwl7IlZPVVRMIiwgTlVMTCwgIk91dHB1dCBNdXgifSwKKworCXsiQW5hbG9nIE1peGVyIiwgTlVMTCwgIlZJTlIifSwKKwl7IkFuYWxvZyBNaXhlciIsIE5VTEwsICJWSU5MIn0sCisJeyJBbmFsb2cgTWl4ZXIiLCBOVUxMLCAiREFDIn0sCisKKwl7Ik91dHB1dCBNdXgiLCAiREFDIiwgIkRBQyJ9LAorCXsiT3V0cHV0IE11eCIsICJBbmFsb2cgTWl4ZXIiLCAiQW5hbG9nIE1peGVyIn0sCisKKwkvKiB7IkRBQyIsICJEaWdpdGFsIE1peGVyIiwgIkkyUyIgfSAqLworCisJLyogaGVhZHBob25lIGRyaXZlciAqLworCXsiVk9VVExIUCIsIE5VTEwsICJIZWFkUGhvbmUgRHJpdmVyIn0sCisJeyJWT1VUUkhQIiwgTlVMTCwgIkhlYWRQaG9uZSBEcml2ZXIifSwKKworCS8qIGlucHV0IG11eCAqLworCXsiTGVmdCBBREMiLCBOVUxMLCAiSW5wdXQgTXV4In0sCisJeyJJbnB1dCBNdXgiLCAiTWljIiwgIk1pYyBMTkEifSwKKwl7IklucHV0IE11eCIsICJNaWMgKyBMaW5lIFIiLCAiTWljIExOQSJ9LAorCXsiSW5wdXQgTXV4IiwgIkxpbmUgTCIsICJMZWZ0IFBHQSJ9LAorCXsiSW5wdXQgTXV4IiwgIkxpbmUiLCAiTGVmdCBQR0EifSwKKworCS8qIHJpZ2h0IGlucHV0ICovCisJeyJSaWdodCBBREMiLCAiTWljICsgTGluZSBSIiwgIlJpZ2h0IFBHQSJ9LAorCXsiUmlnaHQgQURDIiwgIkxpbmUiLCAiUmlnaHQgUEdBIn0sCisKKwkvKiBpbnB1dHMgKi8KKwl7Ik1pYyBMTkEiLCBOVUxMLCAiVklOTSJ9LAorCXsiTGVmdCBQR0EiLCBOVUxMLCAiVklOTCJ9LAorCXsiUmlnaHQgUEdBIiwgTlVMTCwgIlZJTlIifSwKK307CisKK3N0YXRpYyBpbnQgdWRhMTM4MF9hZGRfd2lkZ2V0cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgdWRhMTM4MF9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHVkYTEzODBfZGFwbV93aWRnZXRzKSk7CisKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOworCisJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1ZGExMzgwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQl1bnNpZ25lZCBpbnQgZm10KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJaW50IGlmYWNlOworCisJLyogc2V0IHVwIERBSSBiYXNlZCB1cG9uIGZtdCAqLworCWlmYWNlID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9JRkFDRSk7CisJaWZhY2UgJj0gfihSMDFfU0ZPUklfTUFTSyB8IFIwMV9TSU0gfCBSMDFfU0ZPUk9fTUFTSyk7CisKKwkvKiBGSVhNRTogaG93IHRvIHNlbGVjdCBJMlMgZm9yIERBVEFPIGFuZCBNU0IgZm9yIERBVEFJIGNvcnJlY3RseT8gKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JMlM6CisJCWlmYWNlIHw9IFIwMV9TRk9SSV9JMlMgfCBSMDFfU0ZPUk9fSTJTOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0xTQjoKKwkJaWZhY2UgfD0gUjAxX1NGT1JJX0xTQjE2IHwgUjAxX1NGT1JPX0kyUzsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9NU0I6CisJCWlmYWNlIHw9IFIwMV9TRk9SSV9NU0IgfCBSMDFfU0ZPUk9fSTJTOworCX0KKworCWlmICgoZm10ICYgU05EX1NPQ19EQUlGTVRfTUFTVEVSX01BU0spID09IFNORF9TT0NfREFJRk1UX0NCTV9DRk0pCisJCWlmYWNlIHw9IFIwMV9TSU07CisKKwl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0lGQUNFLCBpZmFjZSk7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEZsdXNoIHJlZyBjYWNoZQorICogV2UgY2FuIG9ubHkgd3JpdGUgdGhlIGludGVycG9sYXRvciBhbmQgZGVjaW1hdG9yIHJlZ2lzdGVycworICogd2hlbiB0aGUgREFJIGlzIGJlaW5nIGNsb2NrZWQgYnkgdGhlIENQVSBEQUkuIEl0J3MgdXAgdG8gdGhlCisgKiBtYWNoaW5lIGFuZCBjcHUgREFJIGRyaXZlciB0byBkbyB0aGlzIGJlZm9yZSB3ZSBhcmUgY2FsbGVkLgorICovCitzdGF0aWMgaW50IHVkYTEzODBfcGNtX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgcmVnLCByZWdfc3RhcnQsIHJlZ19lbmQsIGNsazsKKworCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKSB7CisJCXJlZ19zdGFydCA9IFVEQTEzODBfTVZPTDsKKwkJcmVnX2VuZCA9IFVEQTEzODBfTUlYRVI7CisJfSBlbHNlIHsKKwkJcmVnX3N0YXJ0ID0gVURBMTM4MF9ERUM7CisJCXJlZ19lbmQgPSBVREExMzgwX0FHQzsKKwl9CisKKwkvKiBGSVhNRSBkaXNhYmxlIERBQ19DTEsgKi8KKwljbGsgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBVREExMzgwX0NMSyk7CisJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIGNsayAmIH5SMDBfREFDX0NMSyk7CisKKwlmb3IgKHJlZyA9IHJlZ19zdGFydDsgcmVnIDw9IHJlZ19lbmQ7IHJlZysrKSB7CisJCXByX2RlYnVnKCJ1ZGExMzgwOiBmbHVzaCByZWcgJXggdmFsICV4OiIsIHJlZywKKwkJCQl1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCByZWcpKTsKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgcmVnLCB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCByZWcpKTsKKwl9CisKKwkvKiBGSVhNRSBlbmFibGUgREFDX0NMSyAqLworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfQ0xLLCBjbGsgfCBSMDBfREFDX0NMSyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1ZGExMzgwX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwl1MTYgY2xrID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9DTEspOworCisJLyogc2V0IFdTUExMIHBvd2VyIGFuZCBkaXZpZGVyIGlmIHJ1bm5pbmcgZnJvbSB0aGlzIGNsb2NrICovCisJaWYgKGNsayAmIFIwMF9EQUNfQ0xLKSB7CisJCWludCByYXRlID0gcGFyYW1zX3JhdGUocGFyYW1zKTsKKwkJdTE2IHBtID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9QTSk7CisJCWNsayAmPSB+MHgzOyAvKiBjbGVhciBTRUxfTE9PUF9ESVYgKi8KKwkJc3dpdGNoIChyYXRlKSB7CisJCWNhc2UgNjI1MCAuLi4gMTI1MDA6CisJCQljbGsgfD0gMHgwOworCQkJYnJlYWs7CisJCWNhc2UgMTI1MDEgLi4uIDI1MDAwOgorCQkJY2xrIHw9IDB4MTsKKwkJCWJyZWFrOworCQljYXNlIDI1MDAxIC4uLiA1MDAwMDoKKwkJCWNsayB8PSAweDI7CisJCQlicmVhazsKKwkJY2FzZSA1MDAwMSAuLi4gMTAwMDAwOgorCQkJY2xrIHw9IDB4MzsKKwkJCWJyZWFrOworCQl9CisJCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfUE0sIFIwMl9QT05fUExMIHwgcG0pOworCX0KKworCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQorCQljbGsgfD0gUjAwX0VOX0RBQyB8IFIwMF9FTl9JTlQ7CisJZWxzZQorCQljbGsgfD0gUjAwX0VOX0FEQyB8IFIwMF9FTl9ERUM7CisKKwl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0NMSywgY2xrKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgdWRhMTM4MF9wY21fc2h1dGRvd24oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwl1MTYgY2xrID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9DTEspOworCisJLyogc2h1dCBkb3duIFdTUExMIHBvd2VyIGlmIHJ1bm5pbmcgZnJvbSB0aGlzIGNsb2NrICovCisJaWYgKGNsayAmIFIwMF9EQUNfQ0xLKSB7CisJCXUxNiBwbSA9IHVkYTEzODBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFVEQTEzODBfUE0pOworCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX1BNLCB+UjAyX1BPTl9QTEwgJiBwbSk7CisJfQorCisJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCisJCWNsayAmPSB+KFIwMF9FTl9EQUMgfCBSMDBfRU5fSU5UKTsKKwllbHNlCisJCWNsayAmPSB+KFIwMF9FTl9BREMgfCBSMDBfRU5fREVDKTsKKworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfQ0xLLCBjbGspOworfQorCitzdGF0aWMgaW50IHVkYTEzODBfbXV0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwgaW50IG11dGUpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwl1MTYgbXV0ZV9yZWcgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBVREExMzgwX0RFRU1QKSAmIH5SMTNfTVRNOworCisJLyogRklYTUU6IG11dGUoY29kZWMsMCkgaXMgY2FsbGVkIHdoZW4gdGhlIG1hZ2ljaWFuIGNsb2NrIGlzIGFscmVhZHkKKwkgKiBzZXQgdG8gV1NQTEwsIGJ1dCBmb3Igc29tZSB1bmtub3duIHJlYXNvbiB3cml0aW5nIHRvIGludGVycG9sYXRvcgorCSAqIHJlZ2lzdGVycyB3b3JrcyBvbmx5IHdoZW4gY2xvY2tlZCBieSBTWVNDTEsgKi8KKwl1MTYgY2xrID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9DTEspOworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfQ0xLLCB+UjAwX0RBQ19DTEsgJiBjbGspOworCWlmIChtdXRlKQorCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0RFRU1QLCBtdXRlX3JlZyB8IFIxM19NVE0pOworCWVsc2UKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9ERUVNUCwgbXV0ZV9yZWcpOworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfQ0xLLCBjbGspOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHVkYTEzODBfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCWVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQoreworCWludCBwbSA9IHVkYTEzODBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFVEQTEzODBfUE0pOworCisJc3dpdGNoIChsZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgorCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CisJCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfUE0sIFIwMl9QT05fQklBUyB8IHBtKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9QTSwgUjAyX1BPTl9CSUFTKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgorCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX1BNLCAweDApOworCQlicmVhazsKKwl9CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKKwlyZXR1cm4gMDsKK30KKworI2RlZmluZSBVREExMzgwX1JBVEVTIChTTkRSVl9QQ01fUkFURV84MDAwIHwgU05EUlZfUENNX1JBVEVfMTEwMjUgfFwKKwkJICAgICAgIFNORFJWX1BDTV9SQVRFXzE2MDAwIHwgU05EUlZfUENNX1JBVEVfMjIwNTAgfFwKKwkJICAgICAgIFNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgU05EUlZfUENNX1JBVEVfNDgwMDApCisKK3N0cnVjdCBzbmRfc29jX2RhaSB1ZGExMzgwX2RhaVtdID0geworeworCS5uYW1lID0gIlVEQTEzODAiLAorCS5wbGF5YmFjayA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBVREExMzgwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLH0sCisJLmNhcHR1cmUgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJDYXB0dXJlIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBVREExMzgwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLH0sCisJLm9wcyA9IHsKKwkJLmh3X3BhcmFtcyA9IHVkYTEzODBfcGNtX2h3X3BhcmFtcywKKwkJLnNodXRkb3duID0gdWRhMTM4MF9wY21fc2h1dGRvd24sCisJCS5wcmVwYXJlID0gdWRhMTM4MF9wY21fcHJlcGFyZSwKKwl9LAorCS5kYWlfb3BzID0geworCQkuZGlnaXRhbF9tdXRlID0gdWRhMTM4MF9tdXRlLAorCQkuc2V0X2ZtdCA9IHVkYTEzODBfc2V0X2RhaV9mbXQsCisJfSwKK30sCit7IC8qIHBsYXliYWNrIG9ubHkgLSBkdWFsIGludGVyZmFjZSAqLworCS5uYW1lID0gIlVEQTEzODAiLAorCS5wbGF5YmFjayA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBVREExMzgwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLAorCX0sCisJLm9wcyA9IHsKKwkJLmh3X3BhcmFtcyA9IHVkYTEzODBfcGNtX2h3X3BhcmFtcywKKwkJLnNodXRkb3duID0gdWRhMTM4MF9wY21fc2h1dGRvd24sCisJCS5wcmVwYXJlID0gdWRhMTM4MF9wY21fcHJlcGFyZSwKKwl9LAorCS5kYWlfb3BzID0geworCQkuZGlnaXRhbF9tdXRlID0gdWRhMTM4MF9tdXRlLAorCQkuc2V0X2ZtdCA9IHVkYTEzODBfc2V0X2RhaV9mbXQsCisJfSwKK30sCit7IC8qIGNhcHR1cmUgb25seSAtIGR1YWwgaW50ZXJmYWNlKi8KKwkubmFtZSA9ICJVREExMzgwIiwKKwkuY2FwdHVyZSA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIkNhcHR1cmUiLAorCQkuY2hhbm5lbHNfbWluID0gMSwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IFVEQTEzODBfUkFURVMsCisJCS5mb3JtYXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUsCisJfSwKKwkub3BzID0geworCQkuaHdfcGFyYW1zID0gdWRhMTM4MF9wY21faHdfcGFyYW1zLAorCQkuc2h1dGRvd24gPSB1ZGExMzgwX3BjbV9zaHV0ZG93biwKKwkJLnByZXBhcmUgPSB1ZGExMzgwX3BjbV9wcmVwYXJlLAorCX0sCisJLmRhaV9vcHMgPSB7CisJCS5zZXRfZm10ID0gdWRhMTM4MF9zZXRfZGFpX2ZtdCwKKwl9LAorfSwKK307CitFWFBPUlRfU1lNQk9MX0dQTCh1ZGExMzgwX2RhaSk7CisKK3N0YXRpYyBpbnQgdWRhMTM4MF9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisKKwl1ZGExMzgwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1ZGExMzgwX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgaTsKKwl1OCBkYXRhWzJdOworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCisJLyogU3luYyByZWdfY2FjaGUgd2l0aCB0aGUgaGFyZHdhcmUgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh1ZGExMzgwX3JlZyk7IGkrKykgeworCQlkYXRhWzBdID0gKGkgPDwgMSkgfCAoKGNhY2hlW2ldID4+IDgpICYgMHgwMDAxKTsKKwkJZGF0YVsxXSA9IGNhY2hlW2ldICYgMHgwMGZmOworCQljb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CisJfQorCXVkYTEzODBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKwl1ZGExMzgwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIGluaXRpYWxpc2UgdGhlIFVEQTEzODAgZHJpdmVyCisgKiByZWdpc3RlciBtaXhlciBhbmQgZHNwIGludGVyZmFjZXMgd2l0aCB0aGUga2VybmVsCisgKi8KK3N0YXRpYyBpbnQgdWRhMTM4MF9pbml0KHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2LCBpbnQgZGFjX2NsaykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWludCByZXQgPSAwOworCisJY29kZWMtPm5hbWUgPSAiVURBMTM4MCI7CisJY29kZWMtPm93bmVyID0gVEhJU19NT0RVTEU7CisJY29kZWMtPnJlYWQgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlOworCWNvZGVjLT53cml0ZSA9IHVkYTEzODBfd3JpdGU7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gdWRhMTM4MF9zZXRfYmlhc19sZXZlbDsKKwljb2RlYy0+ZGFpID0gdWRhMTM4MF9kYWk7CisJY29kZWMtPm51bV9kYWkgPSBBUlJBWV9TSVpFKHVkYTEzODBfZGFpKTsKKwljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cCh1ZGExMzgwX3JlZywgc2l6ZW9mKHVkYTEzODBfcmVnKSwKKwkJCQkgICBHRlBfS0VSTkVMKTsKKwlpZiAoY29kZWMtPnJlZ19jYWNoZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKwljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBBUlJBWV9TSVpFKHVkYTEzODBfcmVnKTsKKwljb2RlYy0+cmVnX2NhY2hlX3N0ZXAgPSAxOworCXVkYTEzODBfcmVzZXQoY29kZWMpOworCisJLyogcmVnaXN0ZXIgcGNtcyAqLworCXJldCA9IHNuZF9zb2NfbmV3X3BjbXMoc29jZGV2LCBTTkRSVl9ERUZBVUxUX0lEWDEsIFNORFJWX0RFRkFVTFRfU1RSMSk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJ1ZGExMzgwOiBmYWlsZWQgdG8gY3JlYXRlIHBjbXNcbiIpOworCQlnb3RvIHBjbV9lcnI7CisJfQorCisJLyogcG93ZXIgb24gZGV2aWNlICovCisJdWRhMTM4MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOworCS8qIHNldCBjbG9jayBpbnB1dCAqLworCXN3aXRjaCAoZGFjX2NsaykgeworCWNhc2UgVURBMTM4MF9EQUNfQ0xLX1NZU0NMSzoKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIDApOworCQlicmVhazsKKwljYXNlIFVEQTEzODBfREFDX0NMS19XU1BMTDoKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIFIwMF9EQUNfQ0xLKTsKKwkJYnJlYWs7CisJfQorCisJLyogdWRhMTM4MCBpbml0ICovCisJdWRhMTM4MF9hZGRfY29udHJvbHMoY29kZWMpOworCXVkYTEzODBfYWRkX3dpZGdldHMoY29kZWMpOworCXJldCA9IHNuZF9zb2NfcmVnaXN0ZXJfY2FyZChzb2NkZXYpOworCWlmIChyZXQgPCAwKSB7CisJCXByX2VycigidWRhMTM4MDogZmFpbGVkIHRvIHJlZ2lzdGVyIGNhcmRcbiIpOworCQlnb3RvIGNhcmRfZXJyOworCX0KKworCXJldHVybiByZXQ7CisKK2NhcmRfZXJyOgorCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKK3BjbV9lcnI6CisJa2ZyZWUoY29kZWMtPnJlZ19jYWNoZSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RldmljZSAqdWRhMTM4MF9zb2NkZXY7CisKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisKKyNkZWZpbmUgSTJDX0RSSVZFUklEX1VEQTEzODAgMHhmZWZlIC8qIGxpYW0gLSAgbmVlZCBhIHByb3BlciBpZCAqLworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0geyAwLCBJMkNfQ0xJRU5UX0VORCB9OworCisvKiBNYWdpYyBkZWZpbml0aW9uIG9mIGFsbCBvdGhlciB2YXJpYWJsZXMgYW5kIHRoaW5ncyAqLworSTJDX0NMSUVOVF9JTlNNT0Q7CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB1ZGExMzgwX2kyY19kcml2ZXI7CitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlOworCisvKiBJZiB0aGUgaTJjIGxheWVyIHdlcmVuJ3Qgc28gYnJva2VuLCB3ZSBjb3VsZCBwYXNzIHRoaXMga2luZCBvZiBkYXRhCisgICBhcm91bmQgKi8KKworc3RhdGljIGludCB1ZGExMzgwX2NvZGVjX3Byb2JlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgaW50IGFkZHIsIGludCBraW5kKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gdWRhMTM4MF9zb2NkZXY7CisJc3RydWN0IHVkYTEzODBfc2V0dXBfZGF0YSAqc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjOworCWludCByZXQ7CisKKwlpZiAoYWRkciAhPSBzZXR1cC0+aTJjX2FkZHJlc3MpCisJCXJldHVybiAtRU5PREVWOworCisJY2xpZW50X3RlbXBsYXRlLmFkYXB0ZXIgPSBhZGFwOworCWNsaWVudF90ZW1wbGF0ZS5hZGRyID0gYWRkcjsKKworCWkyYyA9IGttZW1kdXAoJmNsaWVudF90ZW1wbGF0ZSwgc2l6ZW9mKGNsaWVudF90ZW1wbGF0ZSksIEdGUF9LRVJORUwpOworCWlmIChpMmMgPT0gTlVMTCkgeworCQlrZnJlZShjb2RlYyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwlpMmNfc2V0X2NsaWVudGRhdGEoaTJjLCBjb2RlYyk7CisJY29kZWMtPmNvbnRyb2xfZGF0YSA9IGkyYzsKKworCXJldCA9IGkyY19hdHRhY2hfY2xpZW50KGkyYyk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJ1ZGExMzgwOiBmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOworCQlnb3RvIGVycjsKKwl9CisKKwlyZXQgPSB1ZGExMzgwX2luaXQoc29jZGV2LCBzZXR1cC0+ZGFjX2Nsayk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJ1ZGExMzgwOiBmYWlsZWQgdG8gaW5pdGlhbGlzZSBVREExMzgwXG4iKTsKKwkJZ290byBlcnI7CisJfQorCXJldHVybiByZXQ7CisKK2VycjoKKwlrZnJlZShjb2RlYyk7CisJa2ZyZWUoaTJjKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHVkYTEzODBfaTJjX2RldGFjaChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOworCWkyY19kZXRhY2hfY2xpZW50KGNsaWVudCk7CisJa2ZyZWUoY29kZWMtPnJlZ19jYWNoZSk7CisJa2ZyZWUoY2xpZW50KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1ZGExMzgwX2kyY19hdHRhY2goc3RydWN0IGkyY19hZGFwdGVyICphZGFwKQoreworCXJldHVybiBpMmNfcHJvYmUoYWRhcCwgJmFkZHJfZGF0YSwgdWRhMTM4MF9jb2RlY19wcm9iZSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB1ZGExMzgwX2kyY19kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAgIlVEQTEzODAgSTJDIENvZGVjIiwKKwkJLm93bmVyID0gVEhJU19NT0RVTEUsCisJfSwKKwkuaWQgPSAgICAgICAgICAgICBJMkNfRFJJVkVSSURfVURBMTM4MCwKKwkuYXR0YWNoX2FkYXB0ZXIgPSB1ZGExMzgwX2kyY19hdHRhY2gsCisJLmRldGFjaF9jbGllbnQgPSAgdWRhMTM4MF9pMmNfZGV0YWNoLAorCS5jb21tYW5kID0gICAgICAgIE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlID0geworCS5uYW1lID0gICAiVURBMTM4MCIsCisJLmRyaXZlciA9ICZ1ZGExMzgwX2kyY19kcml2ZXIsCit9OworI2VuZGlmCisKK3N0YXRpYyBpbnQgdWRhMTM4MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHVkYTEzODBfc2V0dXBfZGF0YSAqc2V0dXA7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjOworCWludCByZXQgPSAwOworCisJcHJfaW5mbygiVURBMTM4MCBBdWRpbyBDb2RlYyAlcyIsIFVEQTEzODBfVkVSU0lPTik7CisKKwlzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKKwljb2RlYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2NvZGVjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGNvZGVjID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJc29jZGV2LT5jb2RlYyA9IGNvZGVjOworCW11dGV4X2luaXQoJmNvZGVjLT5tdXRleCk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3dpZGdldHMpOworCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV9wYXRocyk7CisKKwl1ZGExMzgwX3NvY2RldiA9IHNvY2RldjsKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaWYgKHNldHVwLT5pMmNfYWRkcmVzcykgeworCQlub3JtYWxfaTJjWzBdID0gc2V0dXAtPmkyY19hZGRyZXNzOworCQljb2RlYy0+aHdfd3JpdGUgPSAoaHdfd3JpdGVfdClpMmNfbWFzdGVyX3NlbmQ7CisJCXJldCA9IGkyY19hZGRfZHJpdmVyKCZ1ZGExMzgwX2kyY19kcml2ZXIpOworCQlpZiAocmV0ICE9IDApCisJCQlwcmludGsoS0VSTl9FUlIgImNhbid0IGFkZCBpMmMgZHJpdmVyIik7CisJfQorI2Vsc2UKKwkvKiBBZGQgb3RoZXIgaW50ZXJmYWNlcyBoZXJlICovCisjZW5kaWYKKwlyZXR1cm4gcmV0OworfQorCisvKiBwb3dlciBkb3duIGNoaXAgKi8KK3N0YXRpYyBpbnQgdWRhMTM4MF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisKKwlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKKwkJdWRhMTM4MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CisKKwlzbmRfc29jX2ZyZWVfcGNtcyhzb2NkZXYpOworCXNuZF9zb2NfZGFwbV9mcmVlKHNvY2Rldik7CisjaWYgZGVmaW5lZChDT05GSUdfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19JMkNfTU9EVUxFKQorCWkyY19kZWxfZHJpdmVyKCZ1ZGExMzgwX2kyY19kcml2ZXIpOworI2VuZGlmCisJa2ZyZWUoY29kZWMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3VkYTEzODAgPSB7CisJLnByb2JlID0gCXVkYTEzODBfcHJvYmUsCisJLnJlbW92ZSA9IAl1ZGExMzgwX3JlbW92ZSwKKwkuc3VzcGVuZCA9IAl1ZGExMzgwX3N1c3BlbmQsCisJLnJlc3VtZSA9CXVkYTEzODBfcmVzdW1lLAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKHNvY19jb2RlY19kZXZfdWRhMTM4MCk7CisKK01PRFVMRV9BVVRIT1IoIkdpb3JnaW8gUGFkcmluIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF1ZGlvIHN1cHBvcnQgZm9yIGNvZGVjIFBoaWxpcHMgVURBMTM4MCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy91ZGExMzgwLmggYi9zb3VuZC9zb2MvY29kZWNzL3VkYTEzODAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGM2MDNlCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2NvZGVjcy91ZGExMzgwLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIEF1ZGlvIHN1cHBvcnQgZm9yIFBoaWxpcHMgVURBMTM4MAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA1IEdpb3JnaW8gUGFkcmluIDxnaW9yZ2lvQG1hbmRhcmlubG9naXEub3JnPgorICovCisKKyNpZm5kZWYgX1VEQTEzODBfSAorI2RlZmluZSBfVURBMTM4MF9ICisKKyNkZWZpbmUgVURBMTM4MF9DTEsJMHgwMAorI2RlZmluZSBVREExMzgwX0lGQUNFCTB4MDEKKyNkZWZpbmUgVURBMTM4MF9QTQkweDAyCisjZGVmaW5lIFVEQTEzODBfQU1JWAkweDAzCisjZGVmaW5lIFVEQTEzODBfSFAJMHgwNAorI2RlZmluZSBVREExMzgwX01WT0wJMHgxMAorI2RlZmluZSBVREExMzgwX01JWFZPTAkweDExCisjZGVmaW5lIFVEQTEzODBfTU9ERQkweDEyCisjZGVmaW5lIFVEQTEzODBfREVFTVAJMHgxMworI2RlZmluZSBVREExMzgwX01JWEVSCTB4MTQKKyNkZWZpbmUgVURBMTM4MF9JTlRTVEFUCTB4MTgKKyNkZWZpbmUgVURBMTM4MF9ERUMJMHgyMAorI2RlZmluZSBVREExMzgwX1BHQQkweDIxCisjZGVmaW5lIFVEQTEzODBfQURDCTB4MjIKKyNkZWZpbmUgVURBMTM4MF9BR0MJMHgyMworI2RlZmluZSBVREExMzgwX0RFQ1NUQVQJMHgyOAorI2RlZmluZSBVREExMzgwX1JFU0VUCTB4N2YKKworI2RlZmluZSBVREExMzgwX0NBQ0hFUkVHTlVNIDB4MjQKKworLyogUmVnaXN0ZXIgZmxhZ3MgKi8KKyNkZWZpbmUgUjAwX0VOX0FEQwkweDA4MDAKKyNkZWZpbmUgUjAwX0VOX0RFQwkweDA0MDAKKyNkZWZpbmUgUjAwX0VOX0RBQwkweDAyMDAKKyNkZWZpbmUgUjAwX0VOX0lOVAkweDAxMDAKKyNkZWZpbmUgUjAwX0RBQ19DTEsJMHgwMDEwCisjZGVmaW5lIFIwMV9TRk9SSV9JMlMgICAweDAwMDAKKyNkZWZpbmUgUjAxX1NGT1JJX0xTQjE2IDB4MDEwMAorI2RlZmluZSBSMDFfU0ZPUklfTFNCMTggMHgwMjAwCisjZGVmaW5lIFIwMV9TRk9SSV9MU0IyMCAweDAzMDAKKyNkZWZpbmUgUjAxX1NGT1JJX01TQiAgIDB4MDUwMAorI2RlZmluZSBSMDFfU0ZPUklfTUFTSyAgMHgwNzAwCisjZGVmaW5lIFIwMV9TRk9ST19JMlMgICAweDAwMDAKKyNkZWZpbmUgUjAxX1NGT1JPX0xTQjE2IDB4MDAwMQorI2RlZmluZSBSMDFfU0ZPUk9fTFNCMTggMHgwMDAyCisjZGVmaW5lIFIwMV9TRk9ST19MU0IyMCAweDAwMDMKKyNkZWZpbmUgUjAxX1NGT1JPX0xTQjI0IDB4MDAwNAorI2RlZmluZSBSMDFfU0ZPUk9fTVNCICAgMHgwMDA1CisjZGVmaW5lIFIwMV9TRk9ST19NQVNLICAweDAwMDcKKyNkZWZpbmUgUjAxX1NFTF9TT1VSQ0UgIDB4MDA0MAorI2RlZmluZSBSMDFfU0lNCQkweDAwMTAKKyNkZWZpbmUgUjAyX1BPTl9QTEwJMHg4MDAwCisjZGVmaW5lIFIwMl9QT05fSFAJMHgyMDAwCisjZGVmaW5lIFIwMl9QT05fREFDCTB4MDQwMAorI2RlZmluZSBSMDJfUE9OX0JJQVMJMHgwMTAwCisjZGVmaW5lIFIwMl9FTl9BVkMJMHgwMDgwCisjZGVmaW5lIFIwMl9QT05fQVZDCTB4MDA0MAorI2RlZmluZSBSMDJfUE9OX0xOQQkweDAwMTAKKyNkZWZpbmUgUjAyX1BPTl9QR0FMCTB4MDAwOAorI2RlZmluZSBSMDJfUE9OX0FEQ0wJMHgwMDA0CisjZGVmaW5lIFIwMl9QT05fUEdBUgkweDAwMDIKKyNkZWZpbmUgUjAyX1BPTl9BRENSCTB4MDAwMQorI2RlZmluZSBSMTNfTVRNCQkweDQwMDAKKyNkZWZpbmUgUjE0X1NJTEVOQ0UJMHgwMDgwCisjZGVmaW5lIFIxNF9TREVUX09OCTB4MDA0MAorI2RlZmluZSBSMjFfTVRfQURDCTB4ODAwMAorI2RlZmluZSBSMjJfU0VMX0xOQQkweDAwMDgKKyNkZWZpbmUgUjIyX1NFTF9NSUMJMHgwMDA0CisjZGVmaW5lIFIyMl9TS0lQX0RDRklMCTB4MDAwMgorI2RlZmluZSBSMjNfQUdDX0VOCTB4MDAwMQorCitzdHJ1Y3QgdWRhMTM4MF9zZXR1cF9kYXRhIHsKKwl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKKwlpbnQgICAgICAgICAgICBkYWNfY2xrOworI2RlZmluZSBVREExMzgwX0RBQ19DTEtfU1lTQ0xLIDAKKyNkZWZpbmUgVURBMTM4MF9EQUNfQ0xLX1dTUExMICAxCit9OworCisjZGVmaW5lIFVEQTEzODBfREFJX0RVUExFWAkwIC8qIHBsYXliYWNrIGFuZCBjYXB0dXJlIG9uIHNpbmdsZSBEQUkgKi8KKyNkZWZpbmUgVURBMTM4MF9EQUlfUExBWUJBQ0sJMSAvKiBwbGF5YmFjayBEQUkgKi8KKyNkZWZpbmUgVURBMTM4MF9EQUlfQ0FQVFVSRQkyIC8qIGNhcHR1cmUgREFJICovCisKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgdWRhMTM4MF9kYWlbM107CitleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfdWRhMTM4MDsKKworI2VuZGlmIC8qIF9VREExMzgwX0ggKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NTEwLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODUxMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MzI1ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODUxMC5jCkBAIC0wLDAgKzEsODE3IEBACisvKgorICogd204NTEwLmMgIC0tICBXTTg1MTAgQUxTQSBTb2MgQXVkaW8gZHJpdmVyCisgKgorICogQ29weXJpZ2h0IDIwMDYgV29sZnNvbiBNaWNyb2VsZWN0cm9uaWNzIFBMQy4KKyAqCisgKiBBdXRob3I6IExpYW0gR2lyZHdvb2QgPGxpYW0uZ2lyZHdvb2RAd29sZnNvbm1pY3JvLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3BtLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKworI2luY2x1ZGUgIndtODUxMC5oIgorCisjZGVmaW5lIEFVRElPX05BTUUgIndtODUxMCIKKyNkZWZpbmUgV004NTEwX1ZFUlNJT04gIjAuNiIKKworc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd204NTEwOworCisvKgorICogd204NTEwIHJlZ2lzdGVyIGNhY2hlCisgKiBXZSBjYW4ndCByZWFkIHRoZSBXTTg1MTAgcmVnaXN0ZXIgc3BhY2Ugd2hlbiB3ZSBhcmUKKyAqIHVzaW5nIDIgd2lyZSBmb3IgZGV2aWNlIGNvbnRyb2wsIHNvIHdlIGNhY2hlIHRoZW0gaW5zdGVhZC4KKyAqLworc3RhdGljIGNvbnN0IHUxNiB3bTg1MTBfcmVnW1dNODUxMF9DQUNIRVJFR05VTV0gPSB7CisJMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDA1MCwgMHgwMDAwLCAweDAxNDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwZmYsCisJMHgwMDAwLCAweDAwMDAsIDB4MDEwMCwgMHgwMGZmLAorCTB4MDAwMCwgMHgwMDAwLCAweDAxMmMsIDB4MDAyYywKKwkweDAwMmMsIDB4MDAyYywgMHgwMDJjLCAweDAwMDAsCisJMHgwMDMyLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMzgsIDB4MDAwYiwgMHgwMDMyLCAweDAwMDAsCisJMHgwMDA4LCAweDAwMGMsIDB4MDA5MywgMHgwMGU5LAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDMsIDB4MDAxMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDAwLCAweDAwMDIsIDB4MDAwMSwgMHgwMDAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMzksIDB4MDAwMCwKKwkweDAwMDEsCit9OworCisvKgorICogcmVhZCB3bTg1MTAgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgd204NTEwX3JlYWRfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWlmIChyZWcgPT0gV004NTEwX1JFU0VUKQorCQlyZXR1cm4gMDsKKwlpZiAocmVnID49IFdNODUxMF9DQUNIRVJFR05VTSkKKwkJcmV0dXJuIC0xOworCXJldHVybiBjYWNoZVtyZWddOworfQorCisvKgorICogd3JpdGUgd204NTEwIHJlZ2lzdGVyIGNhY2hlCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCB3bTg1MTBfd3JpdGVfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1MTYgcmVnLCB1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisJaWYgKHJlZyA+PSBXTTg1MTBfQ0FDSEVSRUdOVU0pCisJCXJldHVybjsKKwljYWNoZVtyZWddID0gdmFsdWU7Cit9CisKKy8qCisgKiB3cml0ZSB0byB0aGUgV004NTEwIHJlZ2lzdGVyIHNwYWNlCisgKi8KK3N0YXRpYyBpbnQgd204NTEwX3dyaXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgdW5zaWduZWQgaW50IHJlZywKKwl1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisJdTggZGF0YVsyXTsKKworCS8qIGRhdGEgaXMKKwkgKiAgIEQxNS4uRDkgV004NTEwIHJlZ2lzdGVyIG9mZnNldAorCSAqICAgRDguLi5EMCByZWdpc3RlciBkYXRhCisJICovCisJZGF0YVswXSA9IChyZWcgPDwgMSkgfCAoKHZhbHVlID4+IDgpICYgMHgwMDAxKTsKKwlkYXRhWzFdID0gdmFsdWUgJiAweDAwZmY7CisKKwl3bTg1MTBfd3JpdGVfcmVnX2NhY2hlKGNvZGVjLCByZWcsIHZhbHVlKTsKKwlpZiAoY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpID09IDIpCisJCXJldHVybiAwOworCWVsc2UKKwkJcmV0dXJuIC1FSU87Cit9CisKKyNkZWZpbmUgd204NTEwX3Jlc2V0KGMpCXdtODUxMF93cml0ZShjLCBXTTg1MTBfUkVTRVQsIDApCisKK3N0YXRpYyBjb25zdCBjaGFyICp3bTg1MTBfY29tcGFuZGluZ1tdID0geyAiT2ZmIiwgIk5DIiwgInUtbGF3IiwgIkEtbGF3IiB9Oworc3RhdGljIGNvbnN0IGNoYXIgKndtODUxMF9kZWVtcFtdID0geyAiTm9uZSIsICIzMmtIeiIsICI0NC4xa0h6IiwgIjQ4a0h6IiB9Oworc3RhdGljIGNvbnN0IGNoYXIgKndtODUxMF9hbGNbXSA9IHsgIkFMQyIsICJMaW1pdGVyIiB9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHdtODUxMF9lbnVtW10gPSB7CisJU09DX0VOVU1fU0lOR0xFKFdNODUxMF9DT01QLCAxLCA0LCB3bTg1MTBfY29tcGFuZGluZyksIC8qIGFkYyAqLworCVNPQ19FTlVNX1NJTkdMRShXTTg1MTBfQ09NUCwgMywgNCwgd204NTEwX2NvbXBhbmRpbmcpLCAvKiBkYWMgKi8KKwlTT0NfRU5VTV9TSU5HTEUoV004NTEwX0RBQywgIDQsIDQsIHdtODUxMF9kZWVtcCksCisJU09DX0VOVU1fU0lOR0xFKFdNODUxMF9BTEMzLCAgOCwgMiwgd204NTEwX2FsYyksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204NTEwX3NuZF9jb250cm9sc1tdID0geworCitTT0NfU0lOR0xFKCJEaWdpdGFsIExvb3BiYWNrIFN3aXRjaCIsIFdNODUxMF9DT01QLCAwLCAxLCAwKSwKKworU09DX0VOVU0oIkRBQyBDb21wYW5kaW5nIiwgd204NTEwX2VudW1bMV0pLAorU09DX0VOVU0oIkFEQyBDb21wYW5kaW5nIiwgd204NTEwX2VudW1bMF0pLAorCitTT0NfRU5VTSgiUGxheWJhY2sgRGUtZW1waGFzaXMiLCB3bTg1MTBfZW51bVsyXSksCitTT0NfU0lOR0xFKCJEQUMgSW52ZXJzaW9uIFN3aXRjaCIsIFdNODUxMF9EQUMsIDAsIDEsIDApLAorCitTT0NfU0lOR0xFKCJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwgV004NTEwX0RBQ1ZPTCwgMCwgMTI3LCAwKSwKKworU09DX1NJTkdMRSgiSGlnaCBQYXNzIEZpbHRlciBTd2l0Y2giLCBXTTg1MTBfQURDLCA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIkhpZ2ggUGFzcyBDdXQgT2ZmIiwgV004NTEwX0FEQywgNCwgNywgMCksCitTT0NfU0lOR0xFKCJBREMgSW52ZXJzaW9uIFN3aXRjaCIsIFdNODUxMF9DT01QLCAwLCAxLCAwKSwKKworU09DX1NJTkdMRSgiQ2FwdHVyZSBWb2x1bWUiLCBXTTg1MTBfQURDVk9MLCAgMCwgMTI3LCAwKSwKKworU09DX1NJTkdMRSgiREFDIFBsYXliYWNrIExpbWl0ZXIgU3dpdGNoIiwgV004NTEwX0RBQ0xJTTEsICA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIkRBQyBQbGF5YmFjayBMaW1pdGVyIERlY2F5IiwgV004NTEwX0RBQ0xJTTEsICA0LCAxNSwgMCksCitTT0NfU0lOR0xFKCJEQUMgUGxheWJhY2sgTGltaXRlciBBdHRhY2siLCBXTTg1MTBfREFDTElNMSwgIDAsIDE1LCAwKSwKKworU09DX1NJTkdMRSgiREFDIFBsYXliYWNrIExpbWl0ZXIgVGhyZXNob2xkIiwgV004NTEwX0RBQ0xJTTIsICA0LCA3LCAwKSwKK1NPQ19TSU5HTEUoIkRBQyBQbGF5YmFjayBMaW1pdGVyIEJvb3N0IiwgV004NTEwX0RBQ0xJTTIsICAwLCAxNSwgMCksCisKK1NPQ19TSU5HTEUoIkFMQyBFbmFibGUgU3dpdGNoIiwgV004NTEwX0FMQzEsICA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIkFMQyBDYXB0dXJlIE1heCBHYWluIiwgV004NTEwX0FMQzEsICAzLCA3LCAwKSwKK1NPQ19TSU5HTEUoIkFMQyBDYXB0dXJlIE1pbiBHYWluIiwgV004NTEwX0FMQzEsICAwLCA3LCAwKSwKKworU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgWkMgU3dpdGNoIiwgV004NTEwX0FMQzIsICA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIkFMQyBDYXB0dXJlIEhvbGQiLCBXTTg1MTBfQUxDMiwgIDQsIDcsIDApLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgVGFyZ2V0IiwgV004NTEwX0FMQzIsICAwLCAxNSwgMCksCisKK1NPQ19FTlVNKCJBTEMgQ2FwdHVyZSBNb2RlIiwgd204NTEwX2VudW1bM10pLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgRGVjYXkiLCBXTTg1MTBfQUxDMywgIDQsIDE1LCAwKSwKK1NPQ19TSU5HTEUoIkFMQyBDYXB0dXJlIEF0dGFjayIsIFdNODUxMF9BTEMzLCAgMCwgMTUsIDApLAorCitTT0NfU0lOR0xFKCJBTEMgQ2FwdHVyZSBOb2lzZSBHYXRlIFN3aXRjaCIsIFdNODUxMF9OR0FURSwgIDMsIDEsIDApLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgTm9pc2UgR2F0ZSBUaHJlc2hvbGQiLCBXTTg1MTBfTkdBVEUsICAwLCA3LCAwKSwKKworU09DX1NJTkdMRSgiQ2FwdHVyZSBQR0EgWkMgU3dpdGNoIiwgV004NTEwX0lOUFBHQSwgIDcsIDEsIDApLAorU09DX1NJTkdMRSgiQ2FwdHVyZSBQR0EgVm9sdW1lIiwgV004NTEwX0lOUFBHQSwgIDAsIDYzLCAwKSwKKworU09DX1NJTkdMRSgiU3BlYWtlciBQbGF5YmFjayBaQyBTd2l0Y2giLCBXTTg1MTBfU1BLVk9MLCAgNywgMSwgMCksCitTT0NfU0lOR0xFKCJTcGVha2VyIFBsYXliYWNrIFN3aXRjaCIsIFdNODUxMF9TUEtWT0wsICA2LCAxLCAxKSwKK1NPQ19TSU5HTEUoIlNwZWFrZXIgUGxheWJhY2sgVm9sdW1lIiwgV004NTEwX1NQS1ZPTCwgIDAsIDYzLCAwKSwKK1NPQ19TSU5HTEUoIlNwZWFrZXIgQm9vc3QiLCBXTTg1MTBfT1VUUFVULCAyLCAxLCAwKSwKKworU09DX1NJTkdMRSgiQ2FwdHVyZSBCb29zdCgrMjBkQikiLCBXTTg1MTBfQURDQk9PU1QsICA4LCAxLCAwKSwKK1NPQ19TSU5HTEUoIk1vbm8gUGxheWJhY2sgU3dpdGNoIiwgV004NTEwX01PTk9NSVgsIDYsIDEsIDEpLAorfTsKKworLyogYWRkIG5vbiBkYXBtIGNvbnRyb2xzICovCitzdGF0aWMgaW50IHdtODUxMF9hZGRfY29udHJvbHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCWludCBlcnIsIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg1MTBfc25kX2NvbnRyb2xzKTsgaSsrKSB7CisJCWVyciA9IHNuZF9jdGxfYWRkKGNvZGVjLT5jYXJkLAorCQkJCXNuZF9zb2NfY25ldygmd204NTEwX3NuZF9jb250cm9sc1tpXSwgY29kZWMsCisJCQkJCU5VTEwpKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiAwOworfQorCisvKiBTcGVha2VyIE91dHB1dCBNaXhlciAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODUxMF9zcGVha2VyX21peGVyX2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIkxpbmUgQnlwYXNzIFN3aXRjaCIsIFdNODUxMF9TUEtNSVgsIDEsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJBdXggUGxheWJhY2sgU3dpdGNoIiwgV004NTEwX1NQS01JWCwgNSwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlBDTSBQbGF5YmFjayBTd2l0Y2giLCBXTTg1MTBfU1BLTUlYLCAwLCAxLCAwKSwKK307CisKKy8qIE1vbm8gT3V0cHV0IE1peGVyICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204NTEwX21vbm9fbWl4ZXJfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiTGluZSBCeXBhc3MgU3dpdGNoIiwgV004NTEwX01PTk9NSVgsIDEsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJBdXggUGxheWJhY2sgU3dpdGNoIiwgV004NTEwX01PTk9NSVgsIDIsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgV004NTEwX01PTk9NSVgsIDAsIDEsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODUxMF9ib29zdF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJNaWMgUEdBIFN3aXRjaCIsIFdNODUxMF9JTlBQR0EsICA2LCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiQXV4IFZvbHVtZSIsIFdNODUxMF9BRENCT09TVCwgMCwgNywgMCksCitTT0NfREFQTV9TSU5HTEUoIk1pYyBWb2x1bWUiLCBXTTg1MTBfQURDQk9PU1QsIDQsIDcsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODUxMF9taWNwZ2FfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiTUlDUCBTd2l0Y2giLCBXTTg1MTBfSU5QVVQsIDAsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJNSUNOIFN3aXRjaCIsIFdNODUxMF9JTlBVVCwgMSwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkFVWCBTd2l0Y2giLCBXTTg1MTBfSU5QVVQsIDIsIDEsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IHdtODUxMF9kYXBtX3dpZGdldHNbXSA9IHsKK1NORF9TT0NfREFQTV9NSVhFUigiU3BlYWtlciBNaXhlciIsIFdNODUxMF9QT1dFUjMsIDIsIDAsCisJJndtODUxMF9zcGVha2VyX21peGVyX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204NTEwX3NwZWFrZXJfbWl4ZXJfY29udHJvbHMpKSwKK1NORF9TT0NfREFQTV9NSVhFUigiTW9ubyBNaXhlciIsIFdNODUxMF9QT1dFUjMsIDMsIDAsCisJJndtODUxMF9tb25vX21peGVyX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204NTEwX21vbm9fbWl4ZXJfY29udHJvbHMpKSwKK1NORF9TT0NfREFQTV9EQUMoIkRBQyIsICJIaUZpIFBsYXliYWNrIiwgV004NTEwX1BPV0VSMywgMCwgMCksCitTTkRfU09DX0RBUE1fQURDKCJBREMiLCAiSGlGaSBDYXB0dXJlIiwgV004NTEwX1BPV0VSMiwgMCwgMCksCitTTkRfU09DX0RBUE1fUEdBKCJBdXggSW5wdXQiLCBXTTg1MTBfUE9XRVIxLCA2LCAwLCBOVUxMLCAwKSwKK1NORF9TT0NfREFQTV9QR0EoIlNwa04gT3V0IiwgV004NTEwX1BPV0VSMywgNSwgMCwgTlVMTCwgMCksCitTTkRfU09DX0RBUE1fUEdBKCJTcGtQIE91dCIsIFdNODUxMF9QT1dFUjMsIDYsIDAsIE5VTEwsIDApLAorU05EX1NPQ19EQVBNX1BHQSgiTW9ubyBPdXQiLCBXTTg1MTBfUE9XRVIzLCA3LCAwLCBOVUxMLCAwKSwKKworU05EX1NPQ19EQVBNX1BHQSgiTWljIFBHQSIsIFdNODUxMF9QT1dFUjIsIDIsIDAsCisJCSAmd204NTEwX21pY3BnYV9jb250cm9sc1swXSwKKwkJIEFSUkFZX1NJWkUod204NTEwX21pY3BnYV9jb250cm9scykpLAorU05EX1NPQ19EQVBNX01JWEVSKCJCb29zdCBNaXhlciIsIFdNODUxMF9QT1dFUjIsIDQsIDAsCisJJndtODUxMF9ib29zdF9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODUxMF9ib29zdF9jb250cm9scykpLAorCitTTkRfU09DX0RBUE1fTUlDQklBUygiTWljIEJpYXMiLCBXTTg1MTBfUE9XRVIxLCA0LCAwKSwKKworU05EX1NPQ19EQVBNX0lOUFVUKCJNSUNOIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIk1JQ1AiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiQVVYIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJNT05PT1VUIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJTUEtPVVRQIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJTUEtPVVROIiksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKKwkvKiBNb25vIG91dHB1dCBtaXhlciAqLworCXsiTW9ubyBNaXhlciIsICJQQ00gUGxheWJhY2sgU3dpdGNoIiwgIkRBQyJ9LAorCXsiTW9ubyBNaXhlciIsICJBdXggUGxheWJhY2sgU3dpdGNoIiwgIkF1eCBJbnB1dCJ9LAorCXsiTW9ubyBNaXhlciIsICJMaW5lIEJ5cGFzcyBTd2l0Y2giLCAiQm9vc3QgTWl4ZXIifSwKKworCS8qIFNwZWFrZXIgb3V0cHV0IG1peGVyICovCisJeyJTcGVha2VyIE1peGVyIiwgIlBDTSBQbGF5YmFjayBTd2l0Y2giLCAiREFDIn0sCisJeyJTcGVha2VyIE1peGVyIiwgIkF1eCBQbGF5YmFjayBTd2l0Y2giLCAiQXV4IElucHV0In0sCisJeyJTcGVha2VyIE1peGVyIiwgIkxpbmUgQnlwYXNzIFN3aXRjaCIsICJCb29zdCBNaXhlciJ9LAorCisJLyogT3V0cHV0cyAqLworCXsiTW9ubyBPdXQiLCBOVUxMLCAiTW9ubyBNaXhlciJ9LAorCXsiTU9OT09VVCIsIE5VTEwsICJNb25vIE91dCJ9LAorCXsiU3BrTiBPdXQiLCBOVUxMLCAiU3BlYWtlciBNaXhlciJ9LAorCXsiU3BrUCBPdXQiLCBOVUxMLCAiU3BlYWtlciBNaXhlciJ9LAorCXsiU1BLT1VUTiIsIE5VTEwsICJTcGtOIE91dCJ9LAorCXsiU1BLT1VUUCIsIE5VTEwsICJTcGtQIE91dCJ9LAorCisJLyogTWljcm9waG9uZSBQR0EgKi8KKwl7Ik1pYyBQR0EiLCAiTUlDTiBTd2l0Y2giLCAiTUlDTiJ9LAorCXsiTWljIFBHQSIsICJNSUNQIFN3aXRjaCIsICJNSUNQIn0sCisJeyAiTWljIFBHQSIsICJBVVggU3dpdGNoIiwgIkF1eCBJbnB1dCIgfSwKKworCS8qIEJvb3N0IE1peGVyICovCisJeyJCb29zdCBNaXhlciIsICJNaWMgUEdBIFN3aXRjaCIsICJNaWMgUEdBIn0sCisJeyJCb29zdCBNaXhlciIsICJNaWMgVm9sdW1lIiwgIk1JQ1AifSwKKwl7IkJvb3N0IE1peGVyIiwgIkF1eCBWb2x1bWUiLCAiQXV4IElucHV0In0sCisKKwl7IkFEQyIsIE5VTEwsICJCb29zdCBNaXhlciJ9LAorfTsKKworc3RhdGljIGludCB3bTg1MTBfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODUxMF9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODUxMF9kYXBtX3dpZGdldHMpKTsKKworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CisKKwlzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoY29kZWMpOworCXJldHVybiAwOworfQorCitzdHJ1Y3QgcGxsXyB7CisJdW5zaWduZWQgaW50IHByZV9kaXY6NDsgLyogcHJlc2NhbGUgLSAxICovCisJdW5zaWduZWQgaW50IG46NDsKKwl1bnNpZ25lZCBpbnQgazsKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxsXyBwbGxfZGl2OworCisvKiBUaGUgc2l6ZSBpbiBiaXRzIG9mIHRoZSBwbGwgZGl2aWRlIG11bHRpcGxpZWQgYnkgMTAKKyAqIHRvIGFsbG93IHJvdW5kaW5nIGxhdGVyICovCisjZGVmaW5lIEZJWEVEX1BMTF9TSVpFICgoMSA8PCAyNCkgKiAxMCkKKworc3RhdGljIHZvaWQgcGxsX2ZhY3RvcnModW5zaWduZWQgaW50IHRhcmdldCwgdW5zaWduZWQgaW50IHNvdXJjZSkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgS3BhcnQ7CisJdW5zaWduZWQgaW50IEssIE5kaXYsIE5tb2Q7CisKKwlOZGl2ID0gdGFyZ2V0IC8gc291cmNlOworCWlmIChOZGl2IDwgNikgeworCQlzb3VyY2UgPj49IDE7CisJCXBsbF9kaXYucHJlX2RpdiA9IDE7CisJCU5kaXYgPSB0YXJnZXQgLyBzb3VyY2U7CisJfSBlbHNlCisJCXBsbF9kaXYucHJlX2RpdiA9IDA7CisKKwlpZiAoKE5kaXYgPCA2KSB8fCAoTmRpdiA+IDEyKSkKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIldNODUxMCBOIHZhbHVlICVkIG91dHdpdGggcmVjb21tZW5kZWQgcmFuZ2UhZFxuIiwKKwkJCU5kaXYpOworCisJcGxsX2Rpdi5uID0gTmRpdjsKKwlObW9kID0gdGFyZ2V0ICUgc291cmNlOworCUtwYXJ0ID0gRklYRURfUExMX1NJWkUgKiAobG9uZyBsb25nKU5tb2Q7CisKKwlkb19kaXYoS3BhcnQsIHNvdXJjZSk7CisKKwlLID0gS3BhcnQgJiAweEZGRkZGRkZGOworCisJLyogQ2hlY2sgaWYgd2UgbmVlZCB0byByb3VuZCAqLworCWlmICgoSyAlIDEwKSA+PSA1KQorCQlLICs9IDU7CisKKwkvKiBNb3ZlIGRvd24gdG8gcHJvcGVyIHJhbmdlIG5vdyByb3VuZGluZyBpcyBkb25lICovCisJSyAvPSAxMDsKKworCXBsbF9kaXYuayA9IEs7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX3NldF9kYWlfcGxsKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQlpbnQgcGxsX2lkLCB1bnNpZ25lZCBpbnQgZnJlcV9pbiwgdW5zaWduZWQgaW50IGZyZXFfb3V0KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJdTE2IHJlZzsKKworCWlmIChmcmVxX2luID09IDAgfHwgZnJlcV9vdXQgPT0gMCkgeworCQkvKiBDbG9jayBDT0RFQyBkaXJlY3RseSBmcm9tIE1DTEsgKi8KKwkJcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfQ0xPQ0spOworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9DTE9DSywgcmVnICYgMHgwZmYpOworCisJCS8qIFR1cm4gb2ZmIFBMTCAqLworCQlyZWcgPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODUxMF9QT1dFUjEpOworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QT1dFUjEsIHJlZyAmIDB4MWRmKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcGxsX2ZhY3RvcnMoZnJlcV9vdXQqOCwgZnJlcV9pbik7CisKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QTExOLCAocGxsX2Rpdi5wcmVfZGl2IDw8IDQpIHwgcGxsX2Rpdi5uKTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QTExLMSwgcGxsX2Rpdi5rID4+IDE4KTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QTExLMiwgKHBsbF9kaXYuayA+PiA5KSAmIDB4MWZmKTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QTExLMywgcGxsX2Rpdi5rICYgMHgxZmYpOworCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX1BPV0VSMSk7CisJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfUE9XRVIxLCByZWcgfCAweDAyMCk7CisKKwkvKiBSdW4gQ09ERUMgZnJvbSBQTEwgaW5zdGVhZCBvZiBNQ0xLICovCisJcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfQ0xPQ0spOworCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0NMT0NLLCByZWcgfCAweDEwMCk7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIENvbmZpZ3VyZSBXTTg1MTAgY2xvY2sgZGl2aWRlcnMuCisgKi8KK3N0YXRpYyBpbnQgd204NTEwX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQlpbnQgZGl2X2lkLCBpbnQgZGl2KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJdTE2IHJlZzsKKworCXN3aXRjaCAoZGl2X2lkKSB7CisJY2FzZSBXTTg1MTBfT1BDTEtESVY6CisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0dQSU8pICYgMHgxY2Y7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0dQSU8sIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWNhc2UgV004NTEwX01DTEtESVY6CisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0NMT0NLKSAmIDB4MWY7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0NMT0NLLCByZWcgfCBkaXYpOworCQlicmVhazsKKwljYXNlIFdNODUxMF9BRENDTEs6CisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0FEQykgJiAweDFmNzsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfQURDLCByZWcgfCBkaXYpOworCQlicmVhazsKKwljYXNlIFdNODUxMF9EQUNDTEs6CisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0RBQykgJiAweDFmNzsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfREFDLCByZWcgfCBkaXYpOworCQlicmVhazsKKwljYXNlIFdNODUxMF9CQ0xLRElWOgorCQlyZWcgPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODUxMF9DTE9DSykgJiAweDFlMzsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfQ0xPQ0ssIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHdtODUxMF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKKwkJdW5zaWduZWQgaW50IGZtdCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOworCXUxNiBpZmFjZSA9IDA7CisJdTE2IGNsayA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0NMT0NLKSAmIDB4MWZlOworCisJLyogc2V0IG1hc3Rlci9zbGF2ZSBhdWRpbyBpbnRlcmZhY2UgKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX01BU1RFUl9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNOgorCQljbGsgfD0gMHgwMDAxOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0NCU19DRlM6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIGludGVyZmFjZSBmb3JtYXQgKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JMlM6CisJCWlmYWNlIHw9IDB4MDAxMDsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9SSUdIVF9KOgorCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0xFRlRfSjoKKwkJaWZhY2UgfD0gMHgwMDA4OworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0RTUF9BOgorCQlpZmFjZSB8PSAweDAwMDE4OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBjbG9jayBpbnZlcnNpb24gKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0lOVl9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9OQl9ORjoKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JQl9JRjoKKwkJaWZhY2UgfD0gMHgwMTgwOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0lCX05GOgorCQlpZmFjZSB8PSAweDAxMDA7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTkJfSUY6CisJCWlmYWNlIHw9IDB4MDA4MDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfSUZBQ0UsIGlmYWNlKTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9DTE9DSywgY2xrKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg1MTBfcGNtX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXUxNiBpZmFjZSA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0lGQUNFKSAmIDB4MTlmOworCXUxNiBhZG4gPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODUxMF9BREQpICYgMHgxZjE7CisKKwkvKiBiaXQgc2l6ZSAqLworCXN3aXRjaCAocGFyYW1zX2Zvcm1hdChwYXJhbXMpKSB7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRToKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MyMF8zTEU6CisJCWlmYWNlIHw9IDB4MDAyMDsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MyNF9MRToKKwkJaWZhY2UgfD0gMHgwMDQwOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzMyX0xFOgorCQlpZmFjZSB8PSAweDAwNjA7CisJCWJyZWFrOworCX0KKworCS8qIGZpbHRlciBjb2VmZmljaWVudCAqLworCXN3aXRjaCAocGFyYW1zX3JhdGUocGFyYW1zKSkgeworCWNhc2UgU05EUlZfUENNX1JBVEVfODAwMDoKKwkJYWRuIHw9IDB4NSA8PCAxOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9SQVRFXzExMDI1OgorCQlhZG4gfD0gMHg0IDw8IDE7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1JBVEVfMTYwMDA6CisJCWFkbiB8PSAweDMgPDwgMTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fUkFURV8yMjA1MDoKKwkJYWRuIHw9IDB4MiA8PCAxOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9SQVRFXzMyMDAwOgorCQlhZG4gfD0gMHgxIDw8IDE7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1JBVEVfNDQxMDA6CisJY2FzZSBTTkRSVl9QQ01fUkFURV80ODAwMDoKKwkJYnJlYWs7CisJfQorCisJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfSUZBQ0UsIGlmYWNlKTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9BREQsIGFkbik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CisJdTE2IG11dGVfcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfREFDKSAmIDB4ZmZiZjsKKworCWlmIChtdXRlKQorCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9EQUMsIG11dGVfcmVnIHwgMHg0MCk7CisJZWxzZQorCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9EQUMsIG11dGVfcmVnKTsKKwlyZXR1cm4gMDsKK30KKworLyogbGlhbSBuZWVkIHRvIG1ha2UgdGhpcyBsb3dlciBwb3dlciB3aXRoIGRhcG0gKi8KK3N0YXRpYyBpbnQgd204NTEwX3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwllbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCkKK3sKKworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfUE9XRVIxLCAweDFmZik7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BPV0VSMiwgMHgxZmYpOworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QT1dFUjMsIDB4MWZmKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgorCQlicmVhazsKKwljYXNlIFNORF9TT0NfQklBU19PRkY6CisJCS8qIGV2ZXJ5dGhpbmcgb2ZmLCBkYWMgbXV0ZSwgaW5hY3RpdmUgKi8KKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfUE9XRVIxLCAweDApOworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QT1dFUjIsIDB4MCk7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BPV0VSMywgMHgwKTsKKwkJYnJlYWs7CisJfQorCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CisJcmV0dXJuIDA7Cit9CisKKyNkZWZpbmUgV004NTEwX1JBVEVTIChTTkRSVl9QQ01fUkFURV84MDAwIHwgU05EUlZfUENNX1JBVEVfMTEwMjUgfFwKKwkJU05EUlZfUENNX1JBVEVfMTYwMDAgfCBTTkRSVl9QQ01fUkFURV8yMjA1MCB8XAorCQlTTkRSVl9QQ01fUkFURV80NDEwMCB8IFNORFJWX1BDTV9SQVRFXzQ4MDAwKQorCisjZGVmaW5lIFdNODUxMF9GT1JNQVRTIChTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzIwXzNMRSB8XAorCVNORFJWX1BDTV9GTVRCSVRfUzI0X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMzJfTEUpCisKK3N0cnVjdCBzbmRfc29jX2RhaSB3bTg1MTBfZGFpID0geworCS5uYW1lID0gIldNODUxMCBIaUZpIiwKKwkucGxheWJhY2sgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIsCisJCS5jaGFubmVsc19taW4gPSAyLAorCQkuY2hhbm5lbHNfbWF4ID0gMiwKKwkJLnJhdGVzID0gV004NTEwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFdNODUxMF9GT1JNQVRTLH0sCisJLmNhcHR1cmUgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJDYXB0dXJlIiwKKwkJLmNoYW5uZWxzX21pbiA9IDIsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBXTTg1MTBfUkFURVMsCisJCS5mb3JtYXRzID0gV004NTEwX0ZPUk1BVFMsfSwKKwkub3BzID0geworCQkuaHdfcGFyYW1zID0gd204NTEwX3BjbV9od19wYXJhbXMsCisJfSwKKwkuZGFpX29wcyA9IHsKKwkJLmRpZ2l0YWxfbXV0ZSA9IHdtODUxMF9tdXRlLAorCQkuc2V0X2ZtdCA9IHdtODUxMF9zZXRfZGFpX2ZtdCwKKwkJLnNldF9jbGtkaXYgPSB3bTg1MTBfc2V0X2RhaV9jbGtkaXYsCisJCS5zZXRfcGxsID0gd204NTEwX3NldF9kYWlfcGxsLAorCX0sCit9OworRVhQT1JUX1NZTUJPTF9HUEwod204NTEwX2RhaSk7CisKK3N0YXRpYyBpbnQgd204NTEwX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCXdtODUxMF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgaTsKKwl1OCBkYXRhWzJdOworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCisJLyogU3luYyByZWdfY2FjaGUgd2l0aCB0aGUgaGFyZHdhcmUgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg1MTBfcmVnKTsgaSsrKSB7CisJCWRhdGFbMF0gPSAoaSA8PCAxKSB8ICgoY2FjaGVbaV0gPj4gOCkgJiAweDAwMDEpOworCQlkYXRhWzFdID0gY2FjaGVbaV0gJiAweDAwZmY7CisJCWNvZGVjLT5od193cml0ZShjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAyKTsKKwl9CisJd204NTEwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisJd204NTEwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIGluaXRpYWxpc2UgdGhlIFdNODUxMCBkcml2ZXIKKyAqIHJlZ2lzdGVyIHRoZSBtaXhlciBhbmQgZHNwIGludGVyZmFjZXMgd2l0aCB0aGUga2VybmVsCisgKi8KK3N0YXRpYyBpbnQgd204NTEwX2luaXQoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgcmV0ID0gMDsKKworCWNvZGVjLT5uYW1lID0gIldNODUxMCI7CisJY29kZWMtPm93bmVyID0gVEhJU19NT0RVTEU7CisJY29kZWMtPnJlYWQgPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGU7CisJY29kZWMtPndyaXRlID0gd204NTEwX3dyaXRlOworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtODUxMF9zZXRfYmlhc19sZXZlbDsKKwljb2RlYy0+ZGFpID0gJndtODUxMF9kYWk7CisJY29kZWMtPm51bV9kYWkgPSAxOworCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFSUkFZX1NJWkUod204NTEwX3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZSA9IGttZW1kdXAod204NTEwX3JlZywgc2l6ZW9mKHdtODUxMF9yZWcpLCBHRlBfS0VSTkVMKTsKKworCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJd204NTEwX3Jlc2V0KGNvZGVjKTsKKworCS8qIHJlZ2lzdGVyIHBjbXMgKi8KKwlyZXQgPSBzbmRfc29jX25ld19wY21zKHNvY2RldiwgU05EUlZfREVGQVVMVF9JRFgxLCBTTkRSVl9ERUZBVUxUX1NUUjEpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAid204NTEwOiBmYWlsZWQgdG8gY3JlYXRlIHBjbXNcbiIpOworCQlnb3RvIHBjbV9lcnI7CisJfQorCisJLyogcG93ZXIgb24gZGV2aWNlICovCisJd204NTEwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisJd204NTEwX2FkZF9jb250cm9scyhjb2RlYyk7CisJd204NTEwX2FkZF93aWRnZXRzKGNvZGVjKTsKKwlyZXQgPSBzbmRfc29jX3JlZ2lzdGVyX2NhcmQoc29jZGV2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgIndtODUxMDogZmFpbGVkIHRvIHJlZ2lzdGVyIGNhcmRcbiIpOworCQlnb3RvIGNhcmRfZXJyOworCX0KKwlyZXR1cm4gcmV0OworCitjYXJkX2VycjoKKwlzbmRfc29jX2ZyZWVfcGNtcyhzb2NkZXYpOworCXNuZF9zb2NfZGFwbV9mcmVlKHNvY2Rldik7CitwY21fZXJyOgorCWtmcmVlKGNvZGVjLT5yZWdfY2FjaGUpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKndtODUxMF9zb2NkZXY7CisKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisKKy8qCisgKiBXTTg1MTAgMiB3aXJlIGFkZHJlc3MgaXMgMHgxYQorICovCisjZGVmaW5lIEkyQ19EUklWRVJJRF9XTTg1MTAgMHhmZWZlIC8qIGxpYW0gLSAgbmVlZCBhIHByb3BlciBpZCAqLworCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0geyAwLCBJMkNfQ0xJRU5UX0VORCB9OworCisvKiBNYWdpYyBkZWZpbml0aW9uIG9mIGFsbCBvdGhlciB2YXJpYWJsZXMgYW5kIHRoaW5ncyAqLworSTJDX0NMSUVOVF9JTlNNT0Q7CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB3bTg1MTBfaTJjX2RyaXZlcjsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGU7CisKKy8qIElmIHRoZSBpMmMgbGF5ZXIgd2VyZW4ndCBzbyBicm9rZW4sIHdlIGNvdWxkIHBhc3MgdGhpcyBraW5kIG9mIGRhdGEKKyAgIGFyb3VuZCAqLworCitzdGF0aWMgaW50IHdtODUxMF9jb2RlY19wcm9iZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIGludCBhZGRyLCBpbnQga2luZCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHdtODUxMF9zb2NkZXY7CisJc3RydWN0IHdtODUxMF9zZXR1cF9kYXRhICpzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXN0cnVjdCBpMmNfY2xpZW50ICppMmM7CisJaW50IHJldDsKKworCWlmIChhZGRyICE9IHNldHVwLT5pMmNfYWRkcmVzcykKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwljbGllbnRfdGVtcGxhdGUuYWRhcHRlciA9IGFkYXA7CisJY2xpZW50X3RlbXBsYXRlLmFkZHIgPSBhZGRyOworCisJaTJjID0ga21lbWR1cCgmY2xpZW50X3RlbXBsYXRlLCBzaXplb2YoY2xpZW50X3RlbXBsYXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGkyYyA9PSBOVUxMKSB7CisJCWtmcmVlKGNvZGVjKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCWkyY19zZXRfY2xpZW50ZGF0YShpMmMsIGNvZGVjKTsKKwljb2RlYy0+Y29udHJvbF9kYXRhID0gaTJjOworCisJcmV0ID0gaTJjX2F0dGFjaF9jbGllbnQoaTJjKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CisJCWdvdG8gZXJyOworCX0KKworCXJldCA9IHdtODUxMF9pbml0KHNvY2Rldik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg1MTBcbiIpOworCQlnb3RvIGVycjsKKwl9CisJcmV0dXJuIHJldDsKKworZXJyOgorCWtmcmVlKGNvZGVjKTsKKwlrZnJlZShpMmMpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX2kyY19kZXRhY2goc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKwlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOworCWtmcmVlKGNvZGVjLT5yZWdfY2FjaGUpOworCWtmcmVlKGNsaWVudCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX2kyY19hdHRhY2goc3RydWN0IGkyY19hZGFwdGVyICphZGFwKQoreworCXJldHVybiBpMmNfcHJvYmUoYWRhcCwgJmFkZHJfZGF0YSwgd204NTEwX2NvZGVjX3Byb2JlKTsKK30KKworLyogY29yZ2kgaTJjIGNvZGVjIGNvbnRyb2wgbGF5ZXIgKi8KK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB3bTg1MTBfaTJjX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJXTTg1MTAgSTJDIENvZGVjIiwKKwkJLm93bmVyID0gVEhJU19NT0RVTEUsCisJfSwKKwkuaWQgPSAgICAgICAgICAgICBJMkNfRFJJVkVSSURfV004NTEwLAorCS5hdHRhY2hfYWRhcHRlciA9IHdtODUxMF9pMmNfYXR0YWNoLAorCS5kZXRhY2hfY2xpZW50ID0gIHdtODUxMF9pMmNfZGV0YWNoLAorCS5jb21tYW5kID0gICAgICAgIE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlID0geworCS5uYW1lID0gICAiV004NTEwIiwKKwkuZHJpdmVyID0gJndtODUxMF9pMmNfZHJpdmVyLAorfTsKKyNlbmRpZgorCitzdGF0aWMgaW50IHdtODUxMF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHdtODUxMF9zZXR1cF9kYXRhICpzZXR1cDsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7CisJaW50IHJldCA9IDA7CisKKwlwcl9pbmZvKCJXTTg1MTAgQXVkaW8gQ29kZWMgJXMiLCBXTTg1MTBfVkVSU0lPTik7CisKKwlzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKKwljb2RlYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2NvZGVjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGNvZGVjID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJc29jZGV2LT5jb2RlYyA9IGNvZGVjOworCW11dGV4X2luaXQoJmNvZGVjLT5tdXRleCk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3dpZGdldHMpOworCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV9wYXRocyk7CisKKwl3bTg1MTBfc29jZGV2ID0gc29jZGV2OworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwlpZiAoc2V0dXAtPmkyY19hZGRyZXNzKSB7CisJCW5vcm1hbF9pMmNbMF0gPSBzZXR1cC0+aTJjX2FkZHJlc3M7CisJCWNvZGVjLT5od193cml0ZSA9IChod193cml0ZV90KWkyY19tYXN0ZXJfc2VuZDsKKwkJcmV0ID0gaTJjX2FkZF9kcml2ZXIoJndtODUxMF9pMmNfZHJpdmVyKTsKKwkJaWYgKHJldCAhPSAwKQorCQkJcHJpbnRrKEtFUk5fRVJSICJjYW4ndCBhZGQgaTJjIGRyaXZlciIpOworCX0KKyNlbHNlCisJLyogQWRkIG90aGVyIGludGVyZmFjZXMgaGVyZSAqLworI2VuZGlmCisJcmV0dXJuIHJldDsKK30KKworLyogcG93ZXIgZG93biBjaGlwICovCitzdGF0aWMgaW50IHdtODUxMF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisKKwlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKKwkJd204NTEwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKworCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaTJjX2RlbF9kcml2ZXIoJndtODUxMF9pMmNfZHJpdmVyKTsKKyNlbmRpZgorCWtmcmVlKGNvZGVjKTsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg1MTAgPSB7CisJLnByb2JlID0gCXdtODUxMF9wcm9iZSwKKwkucmVtb3ZlID0gCXdtODUxMF9yZW1vdmUsCisJLnN1c3BlbmQgPSAJd204NTEwX3N1c3BlbmQsCisJLnJlc3VtZSA9CXdtODUxMF9yZXN1bWUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoc29jX2NvZGVjX2Rldl93bTg1MTApOworCitNT0RVTEVfREVTQ1JJUFRJT04oIkFTb0MgV004NTEwIGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiTGlhbSBHaXJkd29vZCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg1MTAuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NTEwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVkMmU0MgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NTEwLmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiB3bTg1MTAuaCAgLS0gIFdNODUxMCBTb2MgQXVkaW8gZHJpdmVyCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9XTTg1MTBfSAorI2RlZmluZSBfV004NTEwX0gKKworLyogV004NTEwIHJlZ2lzdGVyIHNwYWNlICovCisKKyNkZWZpbmUgV004NTEwX1JFU0VUCQkweDAKKyNkZWZpbmUgV004NTEwX1BPV0VSMQkJMHgxCisjZGVmaW5lIFdNODUxMF9QT1dFUjIJCTB4MgorI2RlZmluZSBXTTg1MTBfUE9XRVIzCQkweDMKKyNkZWZpbmUgV004NTEwX0lGQUNFCQkweDQKKyNkZWZpbmUgV004NTEwX0NPTVAJCQkweDUKKyNkZWZpbmUgV004NTEwX0NMT0NLCQkweDYKKyNkZWZpbmUgV004NTEwX0FERAkJCTB4NworI2RlZmluZSBXTTg1MTBfR1BJTwkJCTB4OAorI2RlZmluZSBXTTg1MTBfREFDCQkJMHhhCisjZGVmaW5lIFdNODUxMF9EQUNWT0wJCTB4YgorI2RlZmluZSBXTTg1MTBfQURDCQkJMHhlCisjZGVmaW5lIFdNODUxMF9BRENWT0wJCTB4ZgorI2RlZmluZSBXTTg1MTBfRVExCQkJMHgxMgorI2RlZmluZSBXTTg1MTBfRVEyCQkJMHgxMworI2RlZmluZSBXTTg1MTBfRVEzCQkJMHgxNAorI2RlZmluZSBXTTg1MTBfRVE0CQkJMHgxNQorI2RlZmluZSBXTTg1MTBfRVE1CQkJMHgxNgorI2RlZmluZSBXTTg1MTBfREFDTElNMQkJMHgxOAorI2RlZmluZSBXTTg1MTBfREFDTElNMgkJMHgxOQorI2RlZmluZSBXTTg1MTBfTk9UQ0gxCQkweDFiCisjZGVmaW5lIFdNODUxMF9OT1RDSDIJCTB4MWMKKyNkZWZpbmUgV004NTEwX05PVENIMwkJMHgxZAorI2RlZmluZSBXTTg1MTBfTk9UQ0g0CQkweDFlCisjZGVmaW5lIFdNODUxMF9BTEMxCQkJMHgyMAorI2RlZmluZSBXTTg1MTBfQUxDMgkJCTB4MjEKKyNkZWZpbmUgV004NTEwX0FMQzMJCQkweDIyCisjZGVmaW5lIFdNODUxMF9OR0FURQkJMHgyMworI2RlZmluZSBXTTg1MTBfUExMTgkJCTB4MjQKKyNkZWZpbmUgV004NTEwX1BMTEsxCQkweDI1CisjZGVmaW5lIFdNODUxMF9QTExLMgkJMHgyNgorI2RlZmluZSBXTTg1MTBfUExMSzMJCTB4MjcKKyNkZWZpbmUgV004NTEwX0FUVEVOCQkweDI4CisjZGVmaW5lIFdNODUxMF9JTlBVVAkJMHgyYworI2RlZmluZSBXTTg1MTBfSU5QUEdBCQkweDJkCisjZGVmaW5lIFdNODUxMF9BRENCT09TVAkJMHgyZgorI2RlZmluZSBXTTg1MTBfT1VUUFVUCQkweDMxCisjZGVmaW5lIFdNODUxMF9TUEtNSVgJCTB4MzIKKyNkZWZpbmUgV004NTEwX1NQS1ZPTAkJMHgzNgorI2RlZmluZSBXTTg1MTBfTU9OT01JWAkJMHgzOAorCisjZGVmaW5lIFdNODUxMF9DQUNIRVJFR05VTSAJNTcKKworLyogQ2xvY2sgZGl2aWRlciBJZCdzICovCisjZGVmaW5lIFdNODUxMF9PUENMS0RJVgkJMAorI2RlZmluZSBXTTg1MTBfTUNMS0RJVgkJMQorI2RlZmluZSBXTTg1MTBfQURDQ0xLCQkyCisjZGVmaW5lIFdNODUxMF9EQUNDTEsJCTMKKyNkZWZpbmUgV004NTEwX0JDTEtESVYJCTQKKworLyogREFDIGNsb2NrIGRpdmlkZXJzICovCisjZGVmaW5lIFdNODUxMF9EQUNDTEtfRjIJKDEgPDwgMykKKyNkZWZpbmUgV004NTEwX0RBQ0NMS19GNAkoMCA8PCAzKQorCisvKiBBREMgY2xvY2sgZGl2aWRlcnMgKi8KKyNkZWZpbmUgV004NTEwX0FEQ0NMS19GMgkoMSA8PCAzKQorI2RlZmluZSBXTTg1MTBfQURDQ0xLX0Y0CSgwIDw8IDMpCisKKy8qIFBMTCBPdXQgZGl2aWRlcnMgKi8KKyNkZWZpbmUgV004NTEwX09QQ0xLRElWXzEJKDAgPDwgNCkKKyNkZWZpbmUgV004NTEwX09QQ0xLRElWXzIJKDEgPDwgNCkKKyNkZWZpbmUgV004NTEwX09QQ0xLRElWXzMJKDIgPDwgNCkKKyNkZWZpbmUgV004NTEwX09QQ0xLRElWXzQJKDMgPDwgNCkKKworLyogQkNMSyBjbG9jayBkaXZpZGVycyAqLworI2RlZmluZSBXTTg1MTBfQkNMS0RJVl8xCSgwIDw8IDIpCisjZGVmaW5lIFdNODUxMF9CQ0xLRElWXzIJKDEgPDwgMikKKyNkZWZpbmUgV004NTEwX0JDTEtESVZfNAkoMiA8PCAyKQorI2RlZmluZSBXTTg1MTBfQkNMS0RJVl84CSgzIDw8IDIpCisjZGVmaW5lIFdNODUxMF9CQ0xLRElWXzE2CSg0IDw8IDIpCisjZGVmaW5lIFdNODUxMF9CQ0xLRElWXzMyCSg1IDw8IDIpCisKKy8qIE1DTEsgY2xvY2sgZGl2aWRlcnMgKi8KKyNkZWZpbmUgV004NTEwX01DTEtESVZfMQkoMCA8PCA1KQorI2RlZmluZSBXTTg1MTBfTUNMS0RJVl8xXzUJKDEgPDwgNSkKKyNkZWZpbmUgV004NTEwX01DTEtESVZfMgkoMiA8PCA1KQorI2RlZmluZSBXTTg1MTBfTUNMS0RJVl8zCSgzIDw8IDUpCisjZGVmaW5lIFdNODUxMF9NQ0xLRElWXzQJKDQgPDwgNSkKKyNkZWZpbmUgV004NTEwX01DTEtESVZfNgkoNSA8PCA1KQorI2RlZmluZSBXTTg1MTBfTUNMS0RJVl84CSg2IDw8IDUpCisjZGVmaW5lIFdNODUxMF9NQ0xLRElWXzEyCSg3IDw8IDUpCisKK3N0cnVjdCB3bTg1MTBfc2V0dXBfZGF0YSB7CisJdW5zaWduZWQgc2hvcnQgaTJjX2FkZHJlc3M7Cit9OworCitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHdtODUxMF9kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd204NTEwOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzMxLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODczMS5jCmluZGV4IDBjZjkyNjUuLjM2OWQzOWMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzMxLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg3MzEuYwpAQCAtMzEsMjUgKzMxLDYgQEAKICNkZWZpbmUgQVVESU9fTkFNRSAid204NzMxIgogI2RlZmluZSBXTTg3MzFfVkVSU0lPTiAiMC4xMyIKIAotLyoKLSAqIERlYnVnCi0gKi8KLQotI2RlZmluZSBXTTg3MzFfREVCVUcgMAotCi0jaWZkZWYgV004NzMxX0RFQlVHCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0RFQlVHIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLSNlbHNlCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikgZG8ge30gd2hpbGUgKDApCi0jZW5kaWYKLSNkZWZpbmUgZXJyKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fRVJSIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLSNkZWZpbmUgaW5mbyhmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0lORk8gQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2RlZmluZSB3YXJuKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fV0FSTklORyBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0KIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtODczMTsKIAogLyogY29kZWMgcHJpdmF0ZSBkYXRhICovCkBAIC0xOTMsNyArMTc0LDcgQEAKIFNORF9TT0NfREFQTV9JTlBVVCgiTExJTkVJTiIpLAogfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKmludGVyY29uW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBpbnRlcmNvbltdID0gewogCS8qIG91dHB1dCBtaXhlciAqLwogCXsiT3V0cHV0IE1peGVyIiwgIkxpbmUgQnlwYXNzIFN3aXRjaCIsICJMaW5lIElucHV0In0sCiAJeyJPdXRwdXQgTWl4ZXIiLCAiSGlGaSBQbGF5YmFjayBTd2l0Y2giLCAiREFDIn0sCkBAIC0yMTQsMjIgKzE5NSwxNCBAQAogCXsiTGluZSBJbnB1dCIsIE5VTEwsICJMTElORUlOIn0sCiAJeyJMaW5lIElucHV0IiwgTlVMTCwgIlJMSU5FSU4ifSwKIAl7Ik1pYyBCaWFzIiwgTlVMTCwgIk1JQ0lOIn0sCi0KLQkvKiB0ZXJtaW5hdG9yICovCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGludCB3bTg3MzFfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBpOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODczMV9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpKTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtODczMV9kYXBtX3dpZGdldHNbaV0pOwotCi0JLyogc2V0IHVwIGF1ZGlvIHBhdGggaW50ZXJjb25uZWN0cyAqLwotCWZvciAoaSA9IDA7IGludGVyY29uW2ldWzBdICE9IE5VTEw7IGkrKykKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGludGVyY29uW2ldWzBdLAotCQkJaW50ZXJjb25baV1bMV0sIGludGVyY29uW2ldWzJdKTsKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgaW50ZXJjb24sIEFSUkFZX1NJWkUoaW50ZXJjb24pKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CkBAIC0zNDUsNyArMzE4LDcgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgd204NzMxX211dGUoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksIGludCBtdXRlKQorc3RhdGljIGludCB3bTg3MzFfbXV0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IG11dGUpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gZGFpLT5jb2RlYzsKIAl1MTYgbXV0ZV9yZWcgPSB3bTg3MzFfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODczMV9BUERJR0kpICYgMHhmZmY3OwpAQCAtMzU3LDcgKzMzMCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd204NzMxX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3MzFfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCWludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC0zNzYsNyArMzQ5LDcgQEAKIH0KIAogCi1zdGF0aWMgaW50IHdtODczMV9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzMxX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC00MzUsMjkgKzQwOCwyOSBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHdtODczMV9kYXBtX2V2ZW50KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGV2ZW50KQorc3RhdGljIGludCB3bTg3MzFfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCQkJCSBlbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCkKIHsKIAl1MTYgcmVnID0gd204NzMxX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg3MzFfUFdSKSAmIDB4ZmY3ZjsKIAotCXN3aXRjaCAoZXZlbnQpIHsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMDogLyogZnVsbCBPbiAqLworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKIAkJLyogdnJlZi9taWQsIG9zYyBvbiwgZGFjIHVubXV0ZSAqLwogCQl3bTg3MzFfd3JpdGUoY29kZWMsIFdNODczMV9QV1IsIHJlZyk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOiAvKiBwYXJ0aWFsIE9uICovCi0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDI6IC8qIHBhcnRpYWwgT24gKi8KKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2hvdDogLyogT2ZmLCB3aXRoIHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKIAkJLyogZXZlcnl0aGluZyBvZmYgZXhjZXB0IHZyZWYvdm1pZCwgKi8KIAkJd204NzMxX3dyaXRlKGNvZGVjLCBXTTg3MzFfUFdSLCByZWcgfCAweDAwNDApOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQ6IC8qIE9mZiwgd2l0aG91dCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKIAkJLyogZXZlcnl0aGluZyBvZmYsIGRhYyBtdXRlLCBpbmFjdGl2ZSAqLwogCQl3bTg3MzFfd3JpdGUoY29kZWMsIFdNODczMV9BQ1RJVkUsIDB4MCk7CiAJCXdtODczMV93cml0ZShjb2RlYywgV004NzMxX1BXUiwgMHhmZmZmKTsKIAkJYnJlYWs7CiAJfQotCWNvZGVjLT5kYXBtX3N0YXRlID0gZXZlbnQ7CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDcwLDcgKzQ0Myw3IEBACiAjZGVmaW5lIFdNODczMV9GT1JNQVRTIChTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzIwXzNMRSB8XAogCVNORFJWX1BDTV9GTVRCSVRfUzI0X0xFKQogCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd204NzMxX2RhaSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSB3bTg3MzFfZGFpID0gewogCS5uYW1lID0gIldNODczMSIsCiAJLnBsYXliYWNrID0gewogCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2siLApAQCAtNTAzLDcgKzQ3Niw3IEBACiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAogCXdtODczMV93cml0ZShjb2RlYywgV004NzMxX0FDVElWRSwgMHgwKTsKLQl3bTg3MzFfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzY29sZCk7CisJd204NzMxX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTIxLDggKzQ5NCw4IEBACiAJCWRhdGFbMV0gPSBjYWNoZVtpXSAmIDB4MDBmZjsKIAkJY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpOwogCX0KLQl3bTg3MzFfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKLQl3bTg3MzFfZGFwbV9ldmVudChjb2RlYywgY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSk7CisJd204NzMxX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisJd204NzMxX3NldF9iaWFzX2xldmVsKGNvZGVjLCBjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTM5LDEwICs1MTIsMTAgQEAKIAljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKIAljb2RlYy0+cmVhZCA9IHdtODczMV9yZWFkX3JlZ19jYWNoZTsKIAljb2RlYy0+d3JpdGUgPSB3bTg3MzFfd3JpdGU7Ci0JY29kZWMtPmRhcG1fZXZlbnQgPSB3bTg3MzFfZGFwbV9ldmVudDsKKwljb2RlYy0+c2V0X2JpYXNfbGV2ZWwgPSB3bTg3MzFfc2V0X2JpYXNfbGV2ZWw7CiAJY29kZWMtPmRhaSA9ICZ3bTg3MzFfZGFpOwogCWNvZGVjLT5udW1fZGFpID0gMTsKLQljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBzaXplb2Yod204NzMxX3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRSh3bTg3MzFfcmVnKTsKIAljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cCh3bTg3MzFfcmVnLCBzaXplb2Yod204NzMxX3JlZyksIEdGUF9LRVJORUwpOwogCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtNTU3LDcgKzUzMCw3IEBACiAJfQogCiAJLyogcG93ZXIgb24gZGV2aWNlICovCi0Jd204NzMxX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd204NzMxX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAkvKiBzZXQgdGhlIHVwZGF0ZSBiaXRzICovCiAJcmVnID0gd204NzMxX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg3MzFfTE9VVDFWKTsKQEAgLTYzMiwxMyArNjA1LDEzIEBACiAKIAlyZXQgPSBpMmNfYXR0YWNoX2NsaWVudChpMmMpOwogCWlmIChyZXQgPCAwKSB7Ci0JCWVycigiZmFpbGVkIHRvIGF0dGFjaCBjb2RlYyBhdCBhZGRyICV4XG4iLCBhZGRyKTsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOwogCQlnb3RvIGVycjsKIAl9CiAKIAlyZXQgPSB3bTg3MzFfaW5pdChzb2NkZXYpOwogCWlmIChyZXQgPCAwKSB7Ci0JCWVycigiZmFpbGVkIHRvIGluaXRpYWxpc2UgV004NzMxXG4iKTsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg3MzFcbiIpOwogCQlnb3RvIGVycjsKIAl9CiAJcmV0dXJuIHJldDsKQEAgLTY4OSw3ICs2NjIsNyBAQAogCXN0cnVjdCB3bTg3MzFfcHJpdiAqd204NzMxOwogCWludCByZXQgPSAwOwogCi0JaW5mbygiV004NzMxIEF1ZGlvIENvZGVjICVzIiwgV004NzMxX1ZFUlNJT04pOworCXByX2luZm8oIldNODczMSBBdWRpbyBDb2RlYyAlcyIsIFdNODczMV9WRVJTSU9OKTsKIAogCXNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOwogCWNvZGVjID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zb2NfY29kZWMpLCBHRlBfS0VSTkVMKTsKQEAgLTczMCw3ICs3MDMsNyBAQAogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKIAlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKLQkJd204NzMxX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCQl3bTg3MzFfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCiAJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKIAlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg3MzEuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzMxLmgKaW5kZXggNWJjYWI2YS4uOTlmMmUzYyAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg3MzEuaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODczMS5oCkBAIC0zOCw3ICszOCw3IEBACiAJdW5zaWduZWQgc2hvcnQgaTJjX2FkZHJlc3M7CiB9OwogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIHdtODczMV9kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHdtODczMV9kYWk7CiBleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd204NzMxOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUwLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODc1MC5jCmluZGV4IDE2Y2Q1ZDQuLmUyM2NiMDkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUwLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg3NTAuYwpAQCAtMzEsMjUgKzMxLDYgQEAKICNkZWZpbmUgQVVESU9fTkFNRSAiV004NzUwIgogI2RlZmluZSBXTTg3NTBfVkVSU0lPTiAiMC4xMiIKIAotLyoKLSAqIERlYnVnCi0gKi8KLQotI2RlZmluZSBXTTg3NTBfREVCVUcgMAotCi0jaWZkZWYgV004NzUwX0RFQlVHCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0RFQlVHIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLSNlbHNlCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikgZG8ge30gd2hpbGUgKDApCi0jZW5kaWYKLSNkZWZpbmUgZXJyKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fRVJSIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLSNkZWZpbmUgaW5mbyhmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0lORk8gQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2RlZmluZSB3YXJuKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fV0FSTklORyBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0KIC8qIGNvZGVjIHByaXZhdGUgZGF0YSAqLwogc3RydWN0IHdtODc1MF9wcml2IHsKIAl1bnNpZ25lZCBpbnQgc3lzY2xrOwpAQCAtMzc4LDcgKzM1OSw3IEBACiAJU05EX1NPQ19EQVBNX0lOUFVUKCJSSU5QVVQzIiksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAkvKiBsZWZ0IG1peGVyICovCiAJeyJMZWZ0IE1peGVyIiwgIlBsYXliYWNrIFN3aXRjaCIsICJMZWZ0IERBQyJ9LAogCXsiTGVmdCBNaXhlciIsICJMZWZ0IEJ5cGFzcyBTd2l0Y2giLCAiTGVmdCBMaW5lIE11eCJ9LApAQCAtNDcwLDIyICs0NTEsMTQgQEAKIAkvKiBBREMgKi8KIAl7IkxlZnQgQURDIiwgTlVMTCwgIkxlZnQgQURDIE11eCJ9LAogCXsiUmlnaHQgQURDIiwgTlVMTCwgIlJpZ2h0IEFEQyBNdXgifSwKLQotCS8qIHRlcm1pbmF0b3IgKi8KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiBzdGF0aWMgaW50IHdtODc1MF9hZGRfd2lkZ2V0cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgd204NzUwX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUod204NzUwX2RhcG1fd2lkZ2V0cykpOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204NzUwX2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmd204NzUwX2RhcG1fd2lkZ2V0c1tpXSk7Ci0KLQkvKiBzZXQgdXAgYXVkaW8gcGF0aCBhdWRpb19tYXBuZWN0cyAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBhdWRpb19tYXBbaV1bMF0sCi0JCQlhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CkBAIC01NjMsNyArNTM2LDcgQEAKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAotc3RhdGljIGludCB3bTg3NTBfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1MF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTU4MSw3ICs1NTQsNyBAQAogCXJldHVybiAtRUlOVkFMOwogfQogCi1zdGF0aWMgaW50IHdtODc1MF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzUwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC02NzQsNyArNjQ3LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB3bTg3NTBfbXV0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgaW50IG11dGUpCitzdGF0aWMgaW50IHdtODc1MF9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOwogCXUxNiBtdXRlX3JlZyA9IHdtODc1MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NzUwX0FEQ0RBQykgJiAweGZmZjc7CkBAIC02ODYsMjkgKzY1OSwyOSBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHdtODc1MF9kYXBtX2V2ZW50KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGV2ZW50KQorc3RhdGljIGludCB3bTg3NTBfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCQkJCSBlbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCkKIHsKIAl1MTYgcHdyX3JlZyA9IHdtODc1MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NzUwX1BXUjEpICYgMHhmZTNlOwogCi0Jc3dpdGNoIChldmVudCkgewotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QwOiAvKiBmdWxsIE9uICovCisJc3dpdGNoIChsZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgogCQkvKiBzZXQgdm1pZCB0byA1MGsgYW5kIHVubXV0ZSBkYWMgKi8KIAkJd204NzUwX3dyaXRlKGNvZGVjLCBXTTg3NTBfUFdSMSwgcHdyX3JlZyB8IDB4MDBjMCk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOiAvKiBwYXJ0aWFsIE9uICovCi0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDI6IC8qIHBhcnRpYWwgT24gKi8KKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgogCQkvKiBzZXQgdm1pZCB0byA1ayBmb3IgcXVpY2sgcG93ZXIgdXAgKi8KIAkJd204NzUwX3dyaXRlKGNvZGVjLCBXTTg3NTBfUFdSMSwgcHdyX3JlZyB8IDB4MDFjMSk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzaG90OiAvKiBPZmYsIHdpdGggcG93ZXIgKi8KKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgogCQkvKiBtdXRlIGRhYyBhbmQgc2V0IHZtaWQgdG8gNTAwaywgZW5hYmxlIFZSRUYgKi8KIAkJd204NzUwX3dyaXRlKGNvZGVjLCBXTTg3NTBfUFdSMSwgcHdyX3JlZyB8IDB4MDE0MSk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzY29sZDogLyogT2ZmLCB3aXRob3V0IHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgogCQl3bTg3NTBfd3JpdGUoY29kZWMsIFdNODc1MF9QV1IxLCAweDAwMDEpOwogCQlicmVhazsKIAl9Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBldmVudDsKKwljb2RlYy0+Ymlhc19sZXZlbCA9IGxldmVsOwogCXJldHVybiAwOwogfQogCkBAIC03MTksNyArNjkyLDcgQEAKICNkZWZpbmUgV004NzUwX0ZPUk1BVFMgKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMjBfM0xFIHxcCiAJU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUpCiAKLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTg3NTBfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIHdtODc1MF9kYWkgPSB7CiAJLm5hbWUgPSAiV004NzUwIiwKIAkucGxheWJhY2sgPSB7CiAJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIsCkBAIC03NDgsNyArNzIxLDcgQEAKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPQogCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IHNuZF9zb2NfY29kZWMsIGRlbGF5ZWRfd29yay53b3JrKTsKLQl3bTg3NTBfZGFwbV9ldmVudChjb2RlYywgY29kZWMtPmRhcG1fc3RhdGUpOworCXdtODc1MF9zZXRfYmlhc19sZXZlbChjb2RlYywgY29kZWMtPmJpYXNfbGV2ZWwpOwogfQogCiBzdGF0aWMgaW50IHdtODc1MF9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKQEAgLTc1Niw3ICs3MjksNyBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAotCXdtODc1MF9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNjb2xkKTsKKwl3bTg3NTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCXJldHVybiAwOwogfQogCkBAIC03NzcsMTIgKzc1MCwxMiBAQAogCQljb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CiAJfQogCi0Jd204NzUwX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd204NzUwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAkvKiBjaGFyZ2Ugd204NzUwIGNhcHMgKi8KLQlpZiAoY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSA9PSBTTkRSVl9DVExfUE9XRVJfRDApIHsKLQkJd204NzUwX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EMik7Ci0JCWNvZGVjLT5kYXBtX3N0YXRlID0gU05EUlZfQ1RMX1BPV0VSX0QwOworCWlmIChjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsID09IFNORF9TT0NfQklBU19PTikgeworCQl3bTg3NTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19QUkVQQVJFKTsKKwkJY29kZWMtPmJpYXNfbGV2ZWwgPSBTTkRfU09DX0JJQVNfT047CiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmY29kZWMtPmRlbGF5ZWRfd29yaywKIAkJCQkJbXNlY3NfdG9famlmZmllcygxMDAwKSk7CiAJfQpAQCAtODAzLDEwICs3NzYsMTAgQEAKIAljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKIAljb2RlYy0+cmVhZCA9IHdtODc1MF9yZWFkX3JlZ19jYWNoZTsKIAljb2RlYy0+d3JpdGUgPSB3bTg3NTBfd3JpdGU7Ci0JY29kZWMtPmRhcG1fZXZlbnQgPSB3bTg3NTBfZGFwbV9ldmVudDsKKwljb2RlYy0+c2V0X2JpYXNfbGV2ZWwgPSB3bTg3NTBfc2V0X2JpYXNfbGV2ZWw7CiAJY29kZWMtPmRhaSA9ICZ3bTg3NTBfZGFpOwogCWNvZGVjLT5udW1fZGFpID0gMTsKLQljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBzaXplb2Yod204NzUwX3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRSh3bTg3NTBfcmVnKTsKIAljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cCh3bTg3NTBfcmVnLCBzaXplb2Yod204NzUwX3JlZyksIEdGUF9LRVJORUwpOwogCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtODIxLDggKzc5NCw4IEBACiAJfQogCiAJLyogY2hhcmdlIG91dHB1dCBjYXBzICovCi0Jd204NzUwX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EMik7Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBTTkRSVl9DVExfUE9XRVJfRDNob3Q7CisJd204NzUwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfUFJFUEFSRSk7CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBTTkRfU09DX0JJQVNfU1RBTkRCWTsKIAlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmNvZGVjLT5kZWxheWVkX3dvcmssIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOwogCiAJLyogc2V0IHRoZSB1cGRhdGUgYml0cyAqLwpAQCAtOTA0LDEzICs4NzcsMTMgQEAKIAogCXJldCA9IGkyY19hdHRhY2hfY2xpZW50KGkyYyk7CiAJaWYgKHJldCA8IDApIHsKLQkJZXJyKCJmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOworCQlwcl9lcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CiAJCWdvdG8gZXJyOwogCX0KIAogCXJldCA9IHdtODc1MF9pbml0KHNvY2Rldik7CiAJaWYgKHJldCA8IDApIHsKLQllcnIoImZhaWxlZCB0byBpbml0aWFsaXNlIFdNODc1MFxuIik7CisJCXByX2VycigiZmFpbGVkIHRvIGluaXRpYWxpc2UgV004NzUwXG4iKTsKIAkJZ290byBlcnI7CiAJfQogCXJldHVybiByZXQ7CkBAIC05NjEsNyArOTM0LDcgQEAKIAlzdHJ1Y3Qgd204NzUwX3ByaXYgKndtODc1MDsKIAlpbnQgcmV0ID0gMDsKIAotCWluZm8oIldNODc1MCBBdWRpbyBDb2RlYyAlcyIsIFdNODc1MF9WRVJTSU9OKTsKKwlwcl9pbmZvKCJXTTg3NTAgQXVkaW8gQ29kZWMgJXMiLCBXTTg3NTBfVkVSU0lPTik7CiAJY29kZWMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX3NvY19jb2RlYyksIEdGUF9LRVJORUwpOwogCWlmIChjb2RlYyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTEwMjEsNyArOTk0LDcgQEAKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCiAJaWYgKGNvZGVjLT5jb250cm9sX2RhdGEpCi0JCXdtODc1MF9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNjb2xkKTsKKwkJd204NzUwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKIAlydW5fZGVsYXllZF93b3JrKCZjb2RlYy0+ZGVsYXllZF93b3JrKTsKIAlzbmRfc29jX2ZyZWVfcGNtcyhzb2NkZXYpOwogCXNuZF9zb2NfZGFwbV9mcmVlKHNvY2Rldik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODc1MC5oIGIvc291bmQvc29jL2NvZGVjcy93bTg3NTAuaAppbmRleCBhOTdhNTRhLi44ZWYzMGU2IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODc1MC5oCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUwLmgKQEAgLTYxLDcgKzYxLDcgQEAKIAl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKIH07CiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd204NzUwX2RhaTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgd204NzUwX2RhaTsKIGV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg3NTA7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg3NTMuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUzLmMKaW5kZXggZmI0MTgyNi4uODYwNDgwOSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg3NTMuYworKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODc1My5jCkBAIC01NSwyNSArNTUsNiBAQAogI2RlZmluZSBBVURJT19OQU1FICJ3bTg3NTMiCiAjZGVmaW5lIFdNODc1M19WRVJTSU9OICIwLjE2IgogCi0vKgotICogRGVidWcKLSAqLwotCi0jZGVmaW5lIFdNODc1M19ERUJVRyAwCi0KLSNpZmRlZiBXTTg3NTNfREVCVUcKLSNkZWZpbmUgZGJnKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fREVCVUcgQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2Vsc2UKLSNkZWZpbmUgZGJnKGZvcm1hdCwgYXJnLi4uKSBkbyB7fSB3aGlsZSAoMCkKLSNlbmRpZgotI2RlZmluZSBlcnIoZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9FUlIgQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2RlZmluZSBpbmZvKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fSU5GTyBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0jZGVmaW5lIHdhcm4oZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9XQVJOSU5HIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLQogc3RhdGljIGludCBjYXBzX2NoYXJnZSA9IDIwMDA7CiBtb2R1bGVfcGFyYW0oY2Fwc19jaGFyZ2UsIGludCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKGNhcHNfY2hhcmdlLCAiV004NzUzIGNhcCBjaGFyZ2UgdGltZSAobXNlY3MpIik7CkBAIC0yNjAsMjggKzI0MSw1MCBAQAogCXJldHVybiAxOwogfQogCi1zdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfTElORUFSKHJlY19taXhfdGx2LCAtMTUwMCwgNjAwKTsKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShyZWNfbWl4X3RsdiwgLTE1MDAsIDMwMCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUobWljX3ByZWFtcF90bHYsIDEyMDAsIDYwMCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoYWRjX3RsdiwgLTk3NTAsIDUwLCAxKTsKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShkYWNfdGx2LCAtMTI3NTAsIDUwLCAxKTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgb3V0X3RsdltdID0geworCVRMVl9EQl9SQU5HRV9IRUFEKDIpLAorCS8qIDAwMDAwMDAgLSAwMTAxMTExID0gIkFuYWxvZ3VlIG11dGUiICovCisJMCwgNDgsIFRMVl9EQl9TQ0FMRV9JVEVNKC0yNTUwMCwgMCwgMCksCisJNDgsIDEyNywgVExWX0RCX1NDQUxFX0lURU0oLTczMDAsIDEwMCwgMCksCit9Oworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKG1peF90bHYsIC0xNTAwLCAzMDAsIDApOworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKHZvaWNlX21peF90bHYsIC0xMjAwLCAzMDAsIDApOworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKHBnYV90bHYsIC0xNzI1LCA3NSwgMCk7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg3NTNfc25kX2NvbnRyb2xzW10gPSB7Ci1TT0NfRE9VQkxFX1IoIlBDTSBWb2x1bWUiLCBXTTg3NTNfTERBQywgV004NzUzX1JEQUMsIDAsIDI1NSwgMCksCitTT0NfRE9VQkxFX1JfVExWKCJQQ00gVm9sdW1lIiwgV004NzUzX0xEQUMsIFdNODc1M19SREFDLCAwLCAyNTUsIDAsIGRhY190bHYpLAogCi1TT0NfRE9VQkxFX1IoIkFEQyBDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19MQURDLCBXTTg3NTNfUkFEQywgMCwgMjU1LCAwKSwKK1NPQ19ET1VCTEVfUl9UTFYoIkFEQyBDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19MQURDLCBXTTg3NTNfUkFEQywgMCwgMjU1LCAwLAorCQkgYWRjX3RsdiksCiAKLVNPQ19ET1VCTEVfUigiSGVhZHBob25lIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUMVYsIFdNODc1M19ST1VUMVYsIDAsIDEyNywgMCksCi1TT0NfRE9VQkxFX1IoIlNwZWFrZXIgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVQyViwgV004NzUzX1JPVVQyViwgMCwgMTI3LCAwKSwKK1NPQ19ET1VCTEVfUl9UTFYoIkhlYWRwaG9uZSBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTE9VVDFWLCBXTTg3NTNfUk9VVDFWLAorCQkgMCwgMTI3LCAwLCBvdXRfdGx2KSwKK1NPQ19ET1VCTEVfUl9UTFYoIlNwZWFrZXIgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVQyViwgV004NzUzX1JPVVQyViwgMCwKKwkJIDEyNywgMCwgb3V0X3RsdiksCiAKLVNPQ19TSU5HTEUoIk1vbm8gUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRWLCAwLCAxMjcsIDApLAorU09DX1NJTkdMRV9UTFYoIk1vbm8gUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRWLCAwLCAxMjcsIDAsIG91dF90bHYpLAogCi1TT0NfRE9VQkxFX1IoIkJ5cGFzcyBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTE9VVE0xLCBXTTg3NTNfUk9VVE0xLCA0LCA3LCAxKSwKLVNPQ19ET1VCTEVfUigiU2lkZXRvbmUgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVRNMiwgV004NzUzX1JPVVRNMiwgNCwgNywgMSksCi1TT0NfRE9VQkxFX1IoIlZvaWNlIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUTTIsIFdNODc1M19ST1VUTTIsIDAsIDcsIDEpLAorU09DX0RPVUJMRV9SX1RMVigiQnlwYXNzIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUTTEsIFdNODc1M19ST1VUTTEsIDQsIDcsCisJCSAxLCBtaXhfdGx2KSwKK1NPQ19ET1VCTEVfUl9UTFYoIlNpZGV0b25lIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUTTIsIFdNODc1M19ST1VUTTIsIDQsCisJCSA3LCAxLCBtaXhfdGx2KSwKK1NPQ19ET1VCTEVfUl9UTFYoIlZvaWNlIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUTTIsIFdNODc1M19ST1VUTTIsIDAsIDcsCisJCSAxLCB2b2ljZV9taXhfdGx2KSwKIAotU09DX0RPVUJMRV9SKCJIZWFkcGhvbmUgUGxheWJhY2sgWkMgU3dpdGNoIiwgV004NzUzX0xPVVQxViwgV004NzUzX1JPVVQxViwgNywgMSwgMCksCi1TT0NfRE9VQkxFX1IoIlNwZWFrZXIgUGxheWJhY2sgWkMgU3dpdGNoIiwgV004NzUzX0xPVVQyViwgV004NzUzX1JPVVQyViwgNywgMSwgMCksCitTT0NfRE9VQkxFX1IoIkhlYWRwaG9uZSBQbGF5YmFjayBaQyBTd2l0Y2giLCBXTTg3NTNfTE9VVDFWLCBXTTg3NTNfUk9VVDFWLCA3LAorCSAgICAgMSwgMCksCitTT0NfRE9VQkxFX1IoIlNwZWFrZXIgUGxheWJhY2sgWkMgU3dpdGNoIiwgV004NzUzX0xPVVQyViwgV004NzUzX1JPVVQyViwgNywKKwkgICAgIDEsIDApLAogCi1TT0NfU0lOR0xFKCJNb25vIEJ5cGFzcyBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTU9VVE0xLCA0LCA3LCAxKSwKLVNPQ19TSU5HTEUoIk1vbm8gU2lkZXRvbmUgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRNMiwgNCwgNywgMSksCi1TT0NfU0lOR0xFKCJNb25vIFZvaWNlIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19NT1VUTTIsIDAsIDcsIDEpLAorU09DX1NJTkdMRV9UTFYoIk1vbm8gQnlwYXNzIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19NT1VUTTEsIDQsIDcsIDEsIG1peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIk1vbm8gU2lkZXRvbmUgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRNMiwgNCwgNywgMSwKKwkgICAgICAgbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiTW9ubyBWb2ljZSBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTU9VVE0yLCAwLCA3LCAxLAorCSAgICAgICB2b2ljZV9taXhfdGx2KSwKIFNPQ19TSU5HTEUoIk1vbm8gUGxheWJhY2sgWkMgU3dpdGNoIiwgV004NzUzX01PVVRWLCA3LCAxLCAwKSwKIAogU09DX0VOVU0oIkJhc3MgQm9vc3QiLCB3bTg3NTNfZW51bVswXSksCkBAIC0yOTEsMTAgKzI5NCwxMyBAQAogU09DX1NJTkdMRSgiVHJlYmxlIFZvbHVtZSIsIFdNODc1M19UUkVCTEUsIDAsIDE1LCAxKSwKIFNPQ19FTlVNKCJUcmVibGUgQ3V0LW9mZiIsIHdtODc1M19lbnVtWzJdKSwKIAotU09DX0RPVUJMRV9UTFYoIlNpZGV0b25lIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX1JFQ01JWDEsIDAsIDQsIDcsIDEsIHJlY19taXhfdGx2KSwKLVNPQ19TSU5HTEVfVExWKCJWb2ljZSBTaWRldG9uZSBDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19SRUNNSVgyLCAwLCA3LCAxLCByZWNfbWl4X3RsdiksCitTT0NfRE9VQkxFX1RMVigiU2lkZXRvbmUgQ2FwdHVyZSBWb2x1bWUiLCBXTTg3NTNfUkVDTUlYMSwgMCwgNCwgNywgMSwKKwkgICAgICAgcmVjX21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIlZvaWNlIFNpZGV0b25lIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX1JFQ01JWDIsIDAsIDcsIDEsCisJICAgICAgIHJlY19taXhfdGx2KSwKIAotU09DX0RPVUJMRV9SKCJDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19MSU5WT0wsIFdNODc1M19SSU5WT0wsIDAsIDYzLCAwKSwKK1NPQ19ET1VCTEVfUl9UTFYoIkNhcHR1cmUgVm9sdW1lIiwgV004NzUzX0xJTlZPTCwgV004NzUzX1JJTlZPTCwgMCwgNjMsIDAsCisJCSBwZ2FfdGx2KSwKIFNPQ19ET1VCTEVfUigiQ2FwdHVyZSBaQyBTd2l0Y2giLCBXTTg3NTNfTElOVk9MLCBXTTg3NTNfUklOVk9MLCA2LCAxLCAwKSwKIFNPQ19ET1VCTEVfUigiQ2FwdHVyZSBTd2l0Y2giLCBXTTg3NTNfTElOVk9MLCBXTTg3NTNfUklOVk9MLCA3LCAxLCAxKSwKIApAQCAtMzI2LDggKzMzMiw4IEBACiBTT0NfRU5VTSgiUGxheWJhY2sgTW9ubyBNaXgiLCB3bTg3NTNfZW51bVs5XSksCiBTT0NfRU5VTSgiUGxheWJhY2sgUGhhc2UiLCB3bTg3NTNfZW51bVsxMF0pLAogCi1TT0NfU0lOR0xFKCJNaWMyIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX0lOQ1RMMSwgNywgMywgMCksCi1TT0NfU0lOR0xFKCJNaWMxIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX0lOQ1RMMSwgNSwgMywgMCksCitTT0NfU0lOR0xFX1RMVigiTWljMiBDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19JTkNUTDEsIDcsIDMsIDAsIG1pY19wcmVhbXBfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJNaWMxIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX0lOQ1RMMSwgNSwgMywgMCwgbWljX3ByZWFtcF90bHYpLAogCiBTT0NfRU5VTV9FWFQoIkRBSSBNb2RlIiwgd204NzUzX2VudW1bMjZdLCB3bTg3NTNfZ2V0X2RhaSwgd204NzUzX3NldF9kYWkpLAogCkBAIC01MjMsNyArNTI5LDcgQEAKIFNORF9TT0NfREFQTV9WTUlEKCJWUkVGIiksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAkvKiBsZWZ0IG1peGVyICovCiAJeyJMZWZ0IE1peGVyIiwgIkxlZnQgUGxheWJhY2sgU3dpdGNoIiwgIkxlZnQgREFDIn0sCiAJeyJMZWZ0IE1peGVyIiwgIlZvaWNlIFBsYXliYWNrIFN3aXRjaCIsICJWb2ljZSBEQUMifSwKQEAgLTY3NCwyMyArNjgwLDE0IEBACiAKIAkvKiBBQ09QICovCiAJeyJBQ09QIiwgTlVMTCwgIkFMQyBNaXhlciJ9LAotCi0JLyogdGVybWluYXRvciAqLwotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBpbnQgd204NzUzX2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgaTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTg3NTNfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTg3NTNfZGFwbV93aWRnZXRzKSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTNfZGFwbV93aWRnZXRzKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZ3bTg3NTNfZGFwbV93aWRnZXRzW2ldKTsKLQotCS8qIHNldCB1cCB0aGUgV004NzUzIGF1ZGlvIG1hcCAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspIHsKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCWF1ZGlvX21hcFtpXVsxXSwgYXVkaW9fbWFwW2ldWzJdKTsKLQl9CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CkBAIC03NDMsNyArNzQwLDcgQEAKIAlwbGxfZGl2LT5rID0gSzsKIH0KIAotc3RhdGljIGludCB3bTg3NTNfc2V0X2RhaV9wbGwoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19zZXRfZGFpX3BsbChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IHBsbF9pZCwgdW5zaWduZWQgaW50IGZyZXFfaW4sIHVuc2lnbmVkIGludCBmcmVxX291dCkKIHsKIAl1MTYgcmVnLCBlbmFibGU7CkBAIC04NjYsNyArODYzLDcgQEAKIC8qCiAgKiBDbG9jayBhZnRlciBQTEwgYW5kIGRpdmlkZXJzCiAgKi8KLXN0YXRpYyBpbnQgd204NzUzX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCWludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC04OTMsNyArODkwLDcgQEAKIC8qCiAgKiBTZXQncyBBREMgYW5kIFZvaWNlIERBQyBmb3JtYXQuCiAgKi8KLXN0YXRpYyBpbnQgd204NzUzX3ZkYWNfYWRjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfdmRhY19hZGNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTk2Myw3ICs5NjAsNyBAQAogLyoKICAqIFNldCdzIFBDTSBkYWkgZm10IGFuZCBCQ0xLLgogICovCi1zdGF0aWMgaW50IHdtODc1M19wY21fc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19wY21fc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTEwMjksNyArMTAyNiw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUzX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfc2V0X2RhaV9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCWludCBkaXZfaWQsIGludCBkaXYpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTEwNTcsNyArMTA1NCw3IEBACiAvKgogICogU2V0J3MgSGlGaSBEQUMgZm9ybWF0LgogICovCi1zdGF0aWMgaW50IHdtODc1M19oZGFjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfaGRhY19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtMTA5MCw3ICsxMDg3LDcgQEAKIC8qCiAgKiBTZXQncyBJMlMgREFJIGZvcm1hdC4KICAqLwotc3RhdGljIGludCB3bTg3NTNfaTJzX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTNfaTJzX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC0xMTk4LDcgKzExOTUsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHdtODc1M19tb2RlMXZfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19tb2RlMXZfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTEyMTMsNyArMTIxMCw3IEBACiAJcmV0dXJuIHdtODc1M19wY21fc2V0X2RhaV9mbXQoY29kZWNfZGFpLCBmbXQpOwogfQogCi1zdGF0aWMgaW50IHdtODc1M19tb2RlMWhfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19tb2RlMWhfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJaWYgKHdtODc1M19oZGFjX3NldF9kYWlfZm10KGNvZGVjX2RhaSwgZm10KSA8IDApCkBAIC0xMjIxLDcgKzEyMTgsNyBAQAogCXJldHVybiB3bTg3NTNfaTJzX3NldF9kYWlfZm10KGNvZGVjX2RhaSwgZm10KTsKIH0KIAotc3RhdGljIGludCB3bTg3NTNfbW9kZTJfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19tb2RlMl9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtMTIzNiw3ICsxMjMzLDcgQEAKIAlyZXR1cm4gd204NzUzX2kyc19zZXRfZGFpX2ZtdChjb2RlY19kYWksIGZtdCk7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUzX21vZGUzXzRfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19tb2RlM180X3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC0xMjUzLDcgKzEyNTAsNyBAQAogCXJldHVybiB3bTg3NTNfaTJzX3NldF9kYWlfZm10KGNvZGVjX2RhaSwgZm10KTsKIH0KIAotc3RhdGljIGludCB3bTg3NTNfbXV0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgaW50IG11dGUpCitzdGF0aWMgaW50IHdtODc1M19tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOwogCXUxNiBtdXRlX3JlZyA9IHdtODc1M19yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NzUzX0RBQykgJiAweGZmZjc7CkBAIC0xMjc0LDI5ICsxMjcxLDI5IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUzX2RhcG1fZXZlbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZXZlbnQpCitzdGF0aWMgaW50IHdtODc1M19zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJCQkJIGVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQogewogCXUxNiBwd3JfcmVnID0gd204NzUzX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg3NTNfUFdSMSkgJiAweGZlM2U7CiAKLQlzd2l0Y2ggKGV2ZW50KSB7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDA6IC8qIGZ1bGwgT24gKi8KKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CiAJCS8qIHNldCB2bWlkIHRvIDUwayBhbmQgdW5tdXRlIGRhYyAqLwogCQl3bTg3NTNfd3JpdGUoY29kZWMsIFdNODc1M19QV1IxLCBwd3JfcmVnIHwgMHgwMGMwKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDE6IC8qIHBhcnRpYWwgT24gKi8KLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMjogLyogcGFydGlhbCBPbiAqLworCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CiAJCS8qIHNldCB2bWlkIHRvIDVrIGZvciBxdWljayBwb3dlciB1cCAqLwogCQl3bTg3NTNfd3JpdGUoY29kZWMsIFdNODc1M19QV1IxLCBwd3JfcmVnIHwgMHgwMWMxKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNob3Q6IC8qIE9mZiwgd2l0aCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CiAJCS8qIG11dGUgZGFjIGFuZCBzZXQgdm1pZCB0byA1MDBrLCBlbmFibGUgVlJFRiAqLwogCQl3bTg3NTNfd3JpdGUoY29kZWMsIFdNODc1M19QV1IxLCBwd3JfcmVnIHwgMHgwMTQxKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNjb2xkOiAvKiBPZmYsIHdpdGhvdXQgcG93ZXIgKi8KKwljYXNlIFNORF9TT0NfQklBU19PRkY6CiAJCXdtODc1M193cml0ZShjb2RlYywgV004NzUzX1BXUjEsIDB4MDAwMSk7CiAJCWJyZWFrOwogCX0KLQljb2RlYy0+ZGFwbV9zdGF0ZSA9IGV2ZW50OworCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEzMTksNyArMTMxNiw3IEBACiAgKiAzLiBWb2ljZSBkaXNhYmxlZCAtIEhJRkkgb3ZlciBISUZJCiAgKiA0LiBWb2ljZSBkaXNhYmxlZCAtIEhJRkkgb3ZlciBISUZJLCB1c2VzIHZvaWNlIERBSSBMUkMgZm9yIGNhcHR1cmUKICAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTg3NTNfYWxsX2RhaVtdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhaSB3bTg3NTNfYWxsX2RhaVtdID0gewogLyogREFJIEhpRmkgbW9kZSAxICovCiB7CS5uYW1lID0gIldNODc1MyBIaUZpIiwKIAkuaWQgPSAxLApAQCAtMTQ1OSw3ICsxNDU2LDcgQEAKIH0sCiB9OwogCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd204NzUzX2RhaVsyXTsKK3N0cnVjdCBzbmRfc29jX2RhaSB3bTg3NTNfZGFpWzJdOwogRVhQT1JUX1NZTUJPTF9HUEwod204NzUzX2RhaSk7CiAKIHN0YXRpYyB2b2lkIHdtODc1M19zZXRfZGFpX21vZGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCB1bnNpZ25lZCBpbnQgbW9kZSkKQEAgLTE1MDAsNyArMTQ5Nyw3IEBACiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0KIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBzbmRfc29jX2NvZGVjLCBkZWxheWVkX3dvcmsud29yayk7Ci0Jd204NzUzX2RhcG1fZXZlbnQoY29kZWMsIGNvZGVjLT5kYXBtX3N0YXRlKTsKKwl3bTg3NTNfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIGNvZGVjLT5iaWFzX2xldmVsKTsKIH0KIAogc3RhdGljIGludCB3bTg3NTNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCkBAIC0xNTEyLDcgKzE1MDksNyBAQAogCWlmICghY29kZWMtPmNhcmQpCiAJCXJldHVybiAwOwogCi0Jd204NzUzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCXdtODc1M19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE1MzcsMTIgKzE1MzQsMTIgQEAKIAkJY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpOwogCX0KIAotCXdtODc1M19kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNob3QpOworCXdtODc1M19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOwogCiAJLyogY2hhcmdlIHdtODc1MyBjYXBzICovCi0JaWYgKGNvZGVjLT5zdXNwZW5kX2RhcG1fc3RhdGUgPT0gU05EUlZfQ1RMX1BPV0VSX0QwKSB7Ci0JCXdtODc1M19kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDIpOwotCQljb2RlYy0+ZGFwbV9zdGF0ZSA9IFNORFJWX0NUTF9QT1dFUl9EMDsKKwlpZiAoY29kZWMtPnN1c3BlbmRfYmlhc19sZXZlbCA9PSBTTkRfU09DX0JJQVNfT04pIHsKKwkJd204NzUzX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfUFJFUEFSRSk7CisJCWNvZGVjLT5iaWFzX2xldmVsID0gU05EX1NPQ19CSUFTX09OOwogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmNvZGVjLT5kZWxheWVkX3dvcmssCiAJCQltc2Vjc190b19qaWZmaWVzKGNhcHNfY2hhcmdlKSk7CiAJfQpAQCAtMTU2MywxMCArMTU2MCwxMCBAQAogCWNvZGVjLT5vd25lciA9IFRISVNfTU9EVUxFOwogCWNvZGVjLT5yZWFkID0gd204NzUzX3JlYWRfcmVnX2NhY2hlOwogCWNvZGVjLT53cml0ZSA9IHdtODc1M193cml0ZTsKLQljb2RlYy0+ZGFwbV9ldmVudCA9IHdtODc1M19kYXBtX2V2ZW50OworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtODc1M19zZXRfYmlhc19sZXZlbDsKIAljb2RlYy0+ZGFpID0gd204NzUzX2RhaTsKIAljb2RlYy0+bnVtX2RhaSA9IDI7Ci0JY29kZWMtPnJlZ19jYWNoZV9zaXplID0gc2l6ZW9mKHdtODc1M19yZWcpOworCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFSUkFZX1NJWkUod204NzUzX3JlZyk7CiAJY29kZWMtPnJlZ19jYWNoZSA9IGttZW1kdXAod204NzUzX3JlZywgc2l6ZW9mKHdtODc1M19yZWcpLCBHRlBfS0VSTkVMKTsKIAogCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCkBAIC0xNTg0LDggKzE1ODEsOCBAQAogCX0KIAogCS8qIGNoYXJnZSBvdXRwdXQgY2FwcyAqLwotCXdtODc1M19kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDIpOwotCWNvZGVjLT5kYXBtX3N0YXRlID0gU05EUlZfQ1RMX1BPV0VSX0QzaG90OworCXdtODc1M19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1BSRVBBUkUpOworCWNvZGVjLT5iaWFzX2xldmVsID0gU05EX1NPQ19CSUFTX1NUQU5EQlk7CiAJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZjb2RlYy0+ZGVsYXllZF93b3JrLAogCQltc2Vjc190b19qaWZmaWVzKGNhcHNfY2hhcmdlKSk7CiAKQEAgLTE2NzMsMTMgKzE2NzAsMTMgQEAKIAogCXJldCA9IGkyY19hdHRhY2hfY2xpZW50KGkyYyk7CiAJaWYgKHJldCA8IDApIHsKLQkJZXJyKCJmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOworCQlwcl9lcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CiAJCWdvdG8gZXJyOwogCX0KIAogCXJldCA9IHdtODc1M19pbml0KHNvY2Rldik7CiAJaWYgKHJldCA8IDApIHsKLQkJZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg3NTNcbiIpOworCQlwcl9lcnIoImZhaWxlZCB0byBpbml0aWFsaXNlIFdNODc1M1xuIik7CiAJCWdvdG8gZXJyOwogCX0KIApAQCAtMTczMSw3ICsxNzI4LDcgQEAKIAlzdHJ1Y3Qgd204NzUzX3ByaXYgKndtODc1MzsKIAlpbnQgcmV0ID0gMDsKIAotCWluZm8oIldNODc1MyBBdWRpbyBDb2RlYyAlcyIsIFdNODc1M19WRVJTSU9OKTsKKwlwcl9pbmZvKCJXTTg3NTMgQXVkaW8gQ29kZWMgJXMiLCBXTTg3NTNfVkVSU0lPTik7CiAKIAlzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKIAljb2RlYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2NvZGVjKSwgR0ZQX0tFUk5FTCk7CkBAIC0xNzkyLDcgKzE3ODksNyBAQAogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKIAlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKLQkJd204NzUzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCQl3bTg3NTNfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCXJ1bl9kZWxheWVkX3dvcmsoJmNvZGVjLT5kZWxheWVkX3dvcmspOwogCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CiAJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUzLmggYi9zb3VuZC9zb2MvY29kZWNzL3dtODc1My5oCmluZGV4IDk1ZTJhMWYuLjQ0ZjVmMWYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUzLmgKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg3NTMuaApAQCAtMTIwLDcgKzEyMCw3IEBACiAjZGVmaW5lIFdNODc1M19EQUlfSElGSQkJMAogI2RlZmluZSBXTTg3NTNfREFJX1ZPSUNFCQkxCiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd204NzUzX2RhaVsyXTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgd204NzUzX2RhaVsyXTsKIGV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg3NTM7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg5OTAuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTkwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VjY2U1MQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTkwLmMKQEAgLTAsMCArMSwxNjI2IEBACisvKgorICogd204OTkwLmMgIC0tICBXTTg5OTAgQUxTQSBTb2MgQXVkaW8gZHJpdmVyCisgKgorICogQ29weXJpZ2h0IDIwMDggV29sZnNvbiBNaWNyb2VsZWN0cm9uaWNzIFBMQy4KKyAqIEF1dGhvcjogTGlhbSBHaXJkd29vZAorICogICAgICAgICBsZ0BvcGVuc291cmNlLndvbGZzb25taWNyby5jb20gb3IgbGludXhAd29sZnNvbm1pY3JvLmNvbQorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqICB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKyAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKKyAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3BtLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC90bHYuaD4KKyNpbmNsdWRlIDxhc20vZGl2NjQuaD4KKworI2luY2x1ZGUgIndtODk5MC5oIgorCisjZGVmaW5lIEFVRElPX05BTUUgIndtODk5MCIKKyNkZWZpbmUgV004OTkwX1ZFUlNJT04gIjAuMiIKKworLyogY29kZWMgcHJpdmF0ZSBkYXRhICovCitzdHJ1Y3Qgd204OTkwX3ByaXYgeworCXVuc2lnbmVkIGludCBzeXNjbGs7CisJdW5zaWduZWQgaW50IHBjbWNsazsKK307CisKKy8qCisgKiB3bTg5OTAgcmVnaXN0ZXIgY2FjaGUuICBOb3RlIHRoYXQgcmVnaXN0ZXIgMCBpcyBub3QgaW5jbHVkZWQgaW4gdGhlCisgKiBjYWNoZS4KKyAqLworc3RhdGljIGNvbnN0IHUxNiB3bTg5OTBfcmVnW10gPSB7CisJMHg4OTkwLCAgICAgLyogUjAgIC0gUmVzZXQgKi8KKwkweDAwMDAsICAgICAvKiBSMSAgLSBQb3dlciBNYW5hZ2VtZW50ICgxKSAqLworCTB4NjAwMCwgICAgIC8qIFIyICAtIFBvd2VyIE1hbmFnZW1lbnQgKDIpICovCisJMHgwMDAwLCAgICAgLyogUjMgIC0gUG93ZXIgTWFuYWdlbWVudCAoMykgKi8KKwkweDQwNTAsICAgICAvKiBSNCAgLSBBdWRpbyBJbnRlcmZhY2UgKDEpICovCisJMHg0MDAwLCAgICAgLyogUjUgIC0gQXVkaW8gSW50ZXJmYWNlICgyKSAqLworCTB4MDFDOCwgICAgIC8qIFI2ICAtIENsb2NraW5nICgxKSAqLworCTB4MDAwMCwgICAgIC8qIFI3ICAtIENsb2NraW5nICgyKSAqLworCTB4MDA0MCwgICAgIC8qIFI4ICAtIEF1ZGlvIEludGVyZmFjZSAoMykgKi8KKwkweDAwNDAsICAgICAvKiBSOSAgLSBBdWRpbyBJbnRlcmZhY2UgKDQpICovCisJMHgwMDA0LCAgICAgLyogUjEwIC0gREFDIENUUkwgKi8KKwkweDAwQzAsICAgICAvKiBSMTEgLSBMZWZ0IERBQyBEaWdpdGFsIFZvbHVtZSAqLworCTB4MDBDMCwgICAgIC8qIFIxMiAtIFJpZ2h0IERBQyBEaWdpdGFsIFZvbHVtZSAqLworCTB4MDAwMCwgICAgIC8qIFIxMyAtIERpZ2l0YWwgU2lkZSBUb25lICovCisJMHgwMTAwLCAgICAgLyogUjE0IC0gQURDIENUUkwgKi8KKwkweDAwQzAsICAgICAvKiBSMTUgLSBMZWZ0IEFEQyBEaWdpdGFsIFZvbHVtZSAqLworCTB4MDBDMCwgICAgIC8qIFIxNiAtIFJpZ2h0IEFEQyBEaWdpdGFsIFZvbHVtZSAqLworCTB4MDAwMCwgICAgIC8qIFIxNyAqLworCTB4MDAwMCwgICAgIC8qIFIxOCAtIEdQSU8gQ1RSTCAxICovCisJMHgxMDAwLCAgICAgLyogUjE5IC0gR1BJTzEgJiBHUElPMiAqLworCTB4MTAxMCwgICAgIC8qIFIyMCAtIEdQSU8zICYgR1BJTzQgKi8KKwkweDEwMTAsICAgICAvKiBSMjEgLSBHUElPNSAmIEdQSU82ICovCisJMHg4MDAwLCAgICAgLyogUjIyIC0gR1BJT0NUUkwgMiAqLworCTB4MDgwMCwgICAgIC8qIFIyMyAtIEdQSU9fUE9MICovCisJMHgwMDhCLCAgICAgLyogUjI0IC0gTGVmdCBMaW5lIElucHV0IDEmMiBWb2x1bWUgKi8KKwkweDAwOEIsICAgICAvKiBSMjUgLSBMZWZ0IExpbmUgSW5wdXQgMyY0IFZvbHVtZSAqLworCTB4MDA4QiwgICAgIC8qIFIyNiAtIFJpZ2h0IExpbmUgSW5wdXQgMSYyIFZvbHVtZSAqLworCTB4MDA4QiwgICAgIC8qIFIyNyAtIFJpZ2h0IExpbmUgSW5wdXQgMyY0IFZvbHVtZSAqLworCTB4MDAwMCwgICAgIC8qIFIyOCAtIExlZnQgT3V0cHV0IFZvbHVtZSAqLworCTB4MDAwMCwgICAgIC8qIFIyOSAtIFJpZ2h0IE91dHB1dCBWb2x1bWUgKi8KKwkweDAwNjYsICAgICAvKiBSMzAgLSBMaW5lIE91dHB1dHMgVm9sdW1lICovCisJMHgwMDIyLCAgICAgLyogUjMxIC0gT3V0My80IFZvbHVtZSAqLworCTB4MDA3OSwgICAgIC8qIFIzMiAtIExlZnQgT1BHQSBWb2x1bWUgKi8KKwkweDAwNzksICAgICAvKiBSMzMgLSBSaWdodCBPUEdBIFZvbHVtZSAqLworCTB4MDAwMywgICAgIC8qIFIzNCAtIFNwZWFrZXIgVm9sdW1lICovCisJMHgwMDAzLCAgICAgLyogUjM1IC0gQ2xhc3NEMSAqLworCTB4MDAwMCwgICAgIC8qIFIzNiAqLworCTB4MDEwMCwgICAgIC8qIFIzNyAtIENsYXNzRDMgKi8KKwkweDAwMDAsICAgICAvKiBSMzggKi8KKwkweDAwMDAsICAgICAvKiBSMzkgLSBJbnB1dCBNaXhlcjEgKi8KKwkweDAwMDAsICAgICAvKiBSNDAgLSBJbnB1dCBNaXhlcjIgKi8KKwkweDAwMDAsICAgICAvKiBSNDEgLSBJbnB1dCBNaXhlcjMgKi8KKwkweDAwMDAsICAgICAvKiBSNDIgLSBJbnB1dCBNaXhlcjQgKi8KKwkweDAwMDAsICAgICAvKiBSNDMgLSBJbnB1dCBNaXhlcjUgKi8KKwkweDAwMDAsICAgICAvKiBSNDQgLSBJbnB1dCBNaXhlcjYgKi8KKwkweDAwMDAsICAgICAvKiBSNDUgLSBPdXRwdXQgTWl4ZXIxICovCisJMHgwMDAwLCAgICAgLyogUjQ2IC0gT3V0cHV0IE1peGVyMiAqLworCTB4MDAwMCwgICAgIC8qIFI0NyAtIE91dHB1dCBNaXhlcjMgKi8KKwkweDAwMDAsICAgICAvKiBSNDggLSBPdXRwdXQgTWl4ZXI0ICovCisJMHgwMDAwLCAgICAgLyogUjQ5IC0gT3V0cHV0IE1peGVyNSAqLworCTB4MDAwMCwgICAgIC8qIFI1MCAtIE91dHB1dCBNaXhlcjYgKi8KKwkweDAxODAsICAgICAvKiBSNTEgLSBPdXQzLzQgTWl4ZXIgKi8KKwkweDAwMDAsICAgICAvKiBSNTIgLSBMaW5lIE1peGVyMSAqLworCTB4MDAwMCwgICAgIC8qIFI1MyAtIExpbmUgTWl4ZXIyICovCisJMHgwMDAwLCAgICAgLyogUjU0IC0gU3BlYWtlciBNaXhlciAqLworCTB4MDAwMCwgICAgIC8qIFI1NSAtIEFkZGl0aW9uYWwgQ29udHJvbCAqLworCTB4MDAwMCwgICAgIC8qIFI1NiAtIEFudGlQT1AxICovCisJMHgwMDAwLCAgICAgLyogUjU3IC0gQW50aVBPUDIgKi8KKwkweDAwMDAsICAgICAvKiBSNTggLSBNSUNCSUFTICovCisJMHgwMDAwLCAgICAgLyogUjU5ICovCisJMHgwMDA4LCAgICAgLyogUjYwIC0gUExMMSAqLworCTB4MDAzMSwgICAgIC8qIFI2MSAtIFBMTDIgKi8KKwkweDAwMjYsICAgICAvKiBSNjIgLSBQTEwzICovCit9OworCisvKgorICogcmVhZCB3bTg5OTAgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgd204OTkwX3JlYWRfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCUJVR19PTihyZWcgPiAoQVJSQVlfU0laRSh3bTg5OTBfcmVnKSkgLSAxKTsKKwlyZXR1cm4gY2FjaGVbcmVnXTsKK30KKworLyoKKyAqIHdyaXRlIHdtODk5MCByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHZvaWQgd204OTkwX3dyaXRlX3JlZ19jYWNoZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCUJVR19PTihyZWcgPiAoQVJSQVlfU0laRSh3bTg5OTBfcmVnKSkgLSAxKTsKKworCS8qIFJlc2V0IHJlZ2lzdGVyIGlzIHVuY2FjaGVkICovCisJaWYgKHJlZyA9PSAwKQorCQlyZXR1cm47CisKKwljYWNoZVtyZWddID0gdmFsdWU7Cit9CisKKy8qCisgKiB3cml0ZSB0byB0aGUgd204OTkwIHJlZ2lzdGVyIHNwYWNlCisgKi8KK3N0YXRpYyBpbnQgd204OTkwX3dyaXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgdW5zaWduZWQgaW50IHJlZywKKwl1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisJdTggZGF0YVszXTsKKworCWRhdGFbMF0gPSByZWcgJiAweEZGOworCWRhdGFbMV0gPSAodmFsdWUgPj4gOCkgJiAweEZGOworCWRhdGFbMl0gPSB2YWx1ZSAmIDB4RkY7CisKKwl3bTg5OTBfd3JpdGVfcmVnX2NhY2hlKGNvZGVjLCByZWcsIHZhbHVlKTsKKworCWlmIChjb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMykgPT0gMikKKwkJcmV0dXJuIDA7CisJZWxzZQorCQlyZXR1cm4gLUVJTzsKK30KKworI2RlZmluZSB3bTg5OTBfcmVzZXQoYykgd204OTkwX3dyaXRlKGMsIFdNODk5MF9SRVNFVCwgMCkKKworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX0xJTkVBUihyZWNfbWl4X3RsdiwgLTE1MDAsIDYwMCk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIoaW5fcGdhX3RsdiwgLTE2NTAsIDMwMDApOworCitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfTElORUFSKG91dF9taXhfdGx2LCAwLCAtMjEwMCk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIob3V0X3BnYV90bHYsIC03MzAwLCA2MDApOworCitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfTElORUFSKG91dF9vbWl4X3RsdiwgLTYwMCwgMCk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIob3V0X2RhY190bHYsIC03MTYzLCAwKTsKKworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX0xJTkVBUihpbl9hZGNfdGx2LCAtNzE2MywgMTc2Myk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIob3V0X3NpZGV0b25lX3RsdiwgLTM2MDAsIDApOworCitzdGF0aWMgaW50IHdtODk5eF9vdXRwZ2FfcHV0X3ZvbHN3X3Z1KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCByZXQ7CisJdTE2IHZhbDsKKworCXJldCA9IHNuZF9zb2NfcHV0X3ZvbHN3KGtjb250cm9sLCB1Y29udHJvbCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwkvKiBub3cgaGl0IHRoZSB2b2x1bWUgdXBkYXRlIGJpdHMgKGFsd2F5cyBiaXQgOCkgKi8KKwl2YWwgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIHJlZyk7CisJcmV0dXJuIHdtODk5MF93cml0ZShjb2RlYywgcmVnLCB2YWwgfCAweDAxMDApOworfQorCisjZGVmaW5lIFNPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVih4bmFtZSwgcmVnLCBzaGlmdCwgbWF4LCBpbnZlcnQsXAorCSB0bHZfYXJyYXkpIHtcCisJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0gKHhuYW1lKSwgXAorCS5hY2Nlc3MgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfVExWX1JFQUQgfFwKKwkJICBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLFwKKwkudGx2LnAgPSAodGx2X2FycmF5KSwgXAorCS5pbmZvID0gc25kX3NvY19pbmZvX3ZvbHN3LCBcCisJLmdldCA9IHNuZF9zb2NfZ2V0X3ZvbHN3LCAucHV0ID0gd204OTl4X291dHBnYV9wdXRfdm9sc3dfdnUsIFwKKwkucHJpdmF0ZV92YWx1ZSA9IFNPQ19TSU5HTEVfVkFMVUUocmVnLCBzaGlmdCwgbWF4LCBpbnZlcnQpIH0KKworCitzdGF0aWMgY29uc3QgY2hhciAqd204OTkwX2RpZ2l0YWxfc2lkZXRvbmVbXSA9CisJeyJOb25lIiwgIkxlZnQgQURDIiwgIlJpZ2h0IEFEQyIsICJSZXNlcnZlZCJ9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHdtODk5MF9sZWZ0X2RpZ2l0YWxfc2lkZXRvbmVfZW51bSA9CitTT0NfRU5VTV9TSU5HTEUoV004OTkwX0RJR0lUQUxfU0lERV9UT05FLAorCVdNODk5MF9BRENfVE9fREFDTF9TSElGVCwKKwlXTTg5OTBfQURDX1RPX0RBQ0xfTUFTSywKKwl3bTg5OTBfZGlnaXRhbF9zaWRldG9uZSk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gd204OTkwX3JpZ2h0X2RpZ2l0YWxfc2lkZXRvbmVfZW51bSA9CitTT0NfRU5VTV9TSU5HTEUoV004OTkwX0RJR0lUQUxfU0lERV9UT05FLAorCVdNODk5MF9BRENfVE9fREFDUl9TSElGVCwKKwlXTTg5OTBfQURDX1RPX0RBQ1JfTUFTSywKKwl3bTg5OTBfZGlnaXRhbF9zaWRldG9uZSk7CisKK3N0YXRpYyBjb25zdCBjaGFyICp3bTg5OTBfYWRjbW9kZVtdID0KKwl7IkhpLWZpIG1vZGUiLCAiVm9pY2UgbW9kZSAxIiwgIlZvaWNlIG1vZGUgMiIsICJWb2ljZSBtb2RlIDMifTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB3bTg5OTBfcmlnaHRfYWRjbW9kZV9lbnVtID0KK1NPQ19FTlVNX1NJTkdMRShXTTg5OTBfQURDX0NUUkwsCisJV004OTkwX0FEQ19IUEZfQ1VUX1NISUZULAorCVdNODk5MF9BRENfSFBGX0NVVF9NQVNLLAorCXdtODk5MF9hZGNtb2RlKTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9zbmRfY29udHJvbHNbXSA9IHsKKy8qIElOTUlYTCAqLworU09DX1NJTkdMRSgiTElOMTIgUEdBIEJvb3N0IiwgV004OTkwX0lOUFVUX01JWEVSMywgV004OTkwX0wxMk1OQlNUX0JJVCwgMSwgMCksCitTT0NfU0lOR0xFKCJMSU4zNCBQR0EgQm9vc3QiLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfTDM0TU5CU1RfQklULCAxLCAwKSwKKy8qIElOTUlYUiAqLworU09DX1NJTkdMRSgiUklOMTIgUEdBIEJvb3N0IiwgV004OTkwX0lOUFVUX01JWEVSMywgV004OTkwX1IxMk1OQlNUX0JJVCwgMSwgMCksCitTT0NfU0lOR0xFKCJSSU4zNCBQR0EgQm9vc3QiLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfUjM0TU5CU1RfQklULCAxLCAwKSwKKworLyogTE9NSVggKi8KK1NPQ19TSU5HTEVfVExWKCJMT01JWCBMSU4zIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSMywKKwlXTTg5OTBfTExJM0xPVk9MX1NISUZULCBXTTg5OTBfTExJM0xPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJMT01JWCBSSU4xMiBQR0EgQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVIzLAorCVdNODk5MF9MUjEyTE9WT0xfU0hJRlQsIFdNODk5MF9MUjEyTE9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIkxPTUlYIExJTjEyIFBHQSBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjMsCisJV004OTkwX0xMMTJMT1ZPTF9TSElGVCwgV004OTkwX0xMMTJMT1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiTE9NSVggUklOMyBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjUsCisJV004OTkwX0xSSTNMT1ZPTF9TSElGVCwgV004OTkwX0xSSTNMT1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiTE9NSVggQUlOUk1VWCBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjUsCisJV004OTkwX0xSQkxPVk9MX1NISUZULCBXTTg5OTBfTFJCTE9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIkxPTUlYIEFJTkxNVVggQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVI1LAorCVdNODk5MF9MUkJMT1ZPTF9TSElGVCwgV004OTkwX0xSQkxPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKKworLyogUk9NSVggKi8KK1NPQ19TSU5HTEVfVExWKCJST01JWCBSSU4zIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSNCwKKwlXTTg5OTBfUlJJM1JPVk9MX1NISUZULCBXTTg5OTBfUlJJM1JPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJST01JWCBMSU4xMiBQR0EgQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVI0LAorCVdNODk5MF9STDEyUk9WT0xfU0hJRlQsIFdNODk5MF9STDEyUk9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIlJPTUlYIFJJTjEyIFBHQSBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjQsCisJV004OTkwX1JSMTJST1ZPTF9TSElGVCwgV004OTkwX1JSMTJST1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiUk9NSVggTElOMyBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjYsCisJV004OTkwX1JMSTNST1ZPTF9TSElGVCwgV004OTkwX1JMSTNST1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiUk9NSVggQUlOTE1VWCBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjYsCisJV004OTkwX1JMQlJPVk9MX1NISUZULCBXTTg5OTBfUkxCUk9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIlJPTUlYIEFJTlJNVVggQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVI2LAorCVdNODk5MF9SUkJST1ZPTF9TSElGVCwgV004OTkwX1JSQlJPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKKworLyogTE9VVCAqLworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJMT1VUIFZvbHVtZSIsIFdNODk5MF9MRUZUX09VVFBVVF9WT0xVTUUsCisJV004OTkwX0xPVVRWT0xfU0hJRlQsIFdNODk5MF9MT1VUVk9MX01BU0ssIDAsIG91dF9wZ2FfdGx2KSwKK1NPQ19TSU5HTEUoIkxPVVQgWkMiLCBXTTg5OTBfTEVGVF9PVVRQVVRfVk9MVU1FLCBXTTg5OTBfTE9aQ19CSVQsIDEsIDApLAorCisvKiBST1VUICovCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIlJPVVQgVm9sdW1lIiwgV004OTkwX1JJR0hUX09VVFBVVF9WT0xVTUUsCisJV004OTkwX1JPVVRWT0xfU0hJRlQsIFdNODk5MF9ST1VUVk9MX01BU0ssIDAsIG91dF9wZ2FfdGx2KSwKK1NPQ19TSU5HTEUoIlJPVVQgWkMiLCBXTTg5OTBfUklHSFRfT1VUUFVUX1ZPTFVNRSwgV004OTkwX1JPWkNfQklULCAxLCAwKSwKKworLyogTE9QR0EgKi8KK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiTE9QR0EgVm9sdW1lIiwgV004OTkwX0xFRlRfT1BHQV9WT0xVTUUsCisJV004OTkwX0xPUEdBVk9MX1NISUZULCBXTTg5OTBfTE9QR0FWT0xfTUFTSywgMCwgb3V0X3BnYV90bHYpLAorU09DX1NJTkdMRSgiTE9QR0EgWkMgU3dpdGNoIiwgV004OTkwX0xFRlRfT1BHQV9WT0xVTUUsCisJV004OTkwX0xPUEdBWkNfQklULCAxLCAwKSwKKworLyogUk9QR0EgKi8KK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiUk9QR0EgVm9sdW1lIiwgV004OTkwX1JJR0hUX09QR0FfVk9MVU1FLAorCVdNODk5MF9ST1BHQVZPTF9TSElGVCwgV004OTkwX1JPUEdBVk9MX01BU0ssIDAsIG91dF9wZ2FfdGx2KSwKK1NPQ19TSU5HTEUoIlJPUEdBIFpDIFN3aXRjaCIsIFdNODk5MF9SSUdIVF9PUEdBX1ZPTFVNRSwKKwlXTTg5OTBfUk9QR0FaQ19CSVQsIDEsIDApLAorCitTT0NfU0lOR0xFKCJMT04gTXV0ZSBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfTE9OTVVURV9CSVQsIDEsIDApLAorU09DX1NJTkdMRSgiTE9QIE11dGUgU3dpdGNoIiwgV004OTkwX0xJTkVfT1VUUFVUU19WT0xVTUUsCisJV004OTkwX0xPUE1VVEVfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIkxPUCBBdHRlbnVhdGlvbiBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfTE9BVFROX0JJVCwgMSwgMCksCitTT0NfU0lOR0xFKCJST04gTXV0ZSBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfUk9OTVVURV9CSVQsIDEsIDApLAorU09DX1NJTkdMRSgiUk9QIE11dGUgU3dpdGNoIiwgV004OTkwX0xJTkVfT1VUUFVUU19WT0xVTUUsCisJV004OTkwX1JPUE1VVEVfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIlJPUCBBdHRlbnVhdGlvbiBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfUk9BVFROX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIk9VVDMgTXV0ZSBTd2l0Y2giLCBXTTg5OTBfT1VUM180X1ZPTFVNRSwKKwlXTTg5OTBfT1VUM01VVEVfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIk9VVDMgQXR0ZW51YXRpb24gU3dpdGNoIiwgV004OTkwX09VVDNfNF9WT0xVTUUsCisJV004OTkwX09VVDNBVFROX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIk9VVDQgTXV0ZSBTd2l0Y2giLCBXTTg5OTBfT1VUM180X1ZPTFVNRSwKKwlXTTg5OTBfT1VUNE1VVEVfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIk9VVDQgQXR0ZW51YXRpb24gU3dpdGNoIiwgV004OTkwX09VVDNfNF9WT0xVTUUsCisJV004OTkwX09VVDRBVFROX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIlNwZWFrZXIgTW9kZSBTd2l0Y2giLCBXTTg5OTBfQ0xBU1NEMSwKKwlXTTg5OTBfQ0RNT0RFX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIlNwZWFrZXIgT3V0cHV0IEF0dGVudWF0aW9uIFZvbHVtZSIsIFdNODk5MF9TUEVBS0VSX1ZPTFVNRSwKKwlXTTg5OTBfU1BLVk9MX1NISUZULCBXTTg5OTBfU1BLVk9MX01BU0ssIDApLAorU09DX1NJTkdMRSgiU3BlYWtlciBEQyBCb29zdCBWb2x1bWUiLCBXTTg5OTBfQ0xBU1NEMywKKwlXTTg5OTBfRENHQUlOX1NISUZULCBXTTg5OTBfRENHQUlOX01BU0ssIDApLAorU09DX1NJTkdMRSgiU3BlYWtlciBBQyBCb29zdCBWb2x1bWUiLCBXTTg5OTBfQ0xBU1NEMywKKwlXTTg5OTBfQUNHQUlOX1NISUZULCBXTTg5OTBfQUNHQUlOX01BU0ssIDApLAorCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIkxlZnQgREFDIERpZ2l0YWwgVm9sdW1lIiwKKwlXTTg5OTBfTEVGVF9EQUNfRElHSVRBTF9WT0xVTUUsCisJV004OTkwX0RBQ0xfVk9MX1NISUZULAorCVdNODk5MF9EQUNMX1ZPTF9NQVNLLAorCTAsCisJb3V0X2RhY190bHYpLAorCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIlJpZ2h0IERBQyBEaWdpdGFsIFZvbHVtZSIsCisJV004OTkwX1JJR0hUX0RBQ19ESUdJVEFMX1ZPTFVNRSwKKwlXTTg5OTBfREFDUl9WT0xfU0hJRlQsCisJV004OTkwX0RBQ1JfVk9MX01BU0ssCisJMCwKKwlvdXRfZGFjX3RsdiksCisKK1NPQ19FTlVNKCJMZWZ0IERpZ2l0YWwgU2lkZXRvbmUiLCB3bTg5OTBfbGVmdF9kaWdpdGFsX3NpZGV0b25lX2VudW0pLAorU09DX0VOVU0oIlJpZ2h0IERpZ2l0YWwgU2lkZXRvbmUiLCB3bTg5OTBfcmlnaHRfZGlnaXRhbF9zaWRldG9uZV9lbnVtKSwKKworU09DX1NJTkdMRV9UTFYoIkxlZnQgRGlnaXRhbCBTaWRldG9uZSBWb2x1bWUiLCBXTTg5OTBfRElHSVRBTF9TSURFX1RPTkUsCisJV004OTkwX0FEQ0xfREFDX1NWT0xfU0hJRlQsIFdNODk5MF9BRENMX0RBQ19TVk9MX01BU0ssIDAsCisJb3V0X3NpZGV0b25lX3RsdiksCitTT0NfU0lOR0xFX1RMVigiUmlnaHQgRGlnaXRhbCBTaWRldG9uZSBWb2x1bWUiLCBXTTg5OTBfRElHSVRBTF9TSURFX1RPTkUsCisJV004OTkwX0FEQ1JfREFDX1NWT0xfU0hJRlQsIFdNODk5MF9BRENSX0RBQ19TVk9MX01BU0ssIDAsCisJb3V0X3NpZGV0b25lX3RsdiksCisKK1NPQ19TSU5HTEUoIkFEQyBEaWdpdGFsIEhpZ2ggUGFzcyBGaWx0ZXIgU3dpdGNoIiwgV004OTkwX0FEQ19DVFJMLAorCVdNODk5MF9BRENfSFBGX0VOQV9CSVQsIDEsIDApLAorCitTT0NfRU5VTSgiQURDIEhQRiBNb2RlIiwgd204OTkwX3JpZ2h0X2FkY21vZGVfZW51bSksCisKK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiTGVmdCBBREMgRGlnaXRhbCBWb2x1bWUiLAorCVdNODk5MF9MRUZUX0FEQ19ESUdJVEFMX1ZPTFVNRSwKKwlXTTg5OTBfQURDTF9WT0xfU0hJRlQsCisJV004OTkwX0FEQ0xfVk9MX01BU0ssCisJMCwKKwlpbl9hZGNfdGx2KSwKKworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJSaWdodCBBREMgRGlnaXRhbCBWb2x1bWUiLAorCVdNODk5MF9SSUdIVF9BRENfRElHSVRBTF9WT0xVTUUsCisJV004OTkwX0FEQ1JfVk9MX1NISUZULAorCVdNODk5MF9BRENSX1ZPTF9NQVNLLAorCTAsCisJaW5fYWRjX3RsdiksCisKK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiTElOMTIgVm9sdW1lIiwKKwlXTTg5OTBfTEVGVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUsCisJV004OTkwX0xJTjEyVk9MX1NISUZULAorCVdNODk5MF9MSU4xMlZPTF9NQVNLLAorCTAsCisJaW5fcGdhX3RsdiksCisKK1NPQ19TSU5HTEUoIkxJTjEyIFpDIFN3aXRjaCIsIFdNODk5MF9MRUZUX0xJTkVfSU5QVVRfMV8yX1ZPTFVNRSwKKwlXTTg5OTBfTEkxMlpDX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIkxJTjEyIE11dGUgU3dpdGNoIiwgV004OTkwX0xFRlRfTElORV9JTlBVVF8xXzJfVk9MVU1FLAorCVdNODk5MF9MSTEyTVVURV9CSVQsIDEsIDApLAorCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIkxJTjM0IFZvbHVtZSIsCisJV004OTkwX0xFRlRfTElORV9JTlBVVF8zXzRfVk9MVU1FLAorCVdNODk5MF9MSU4zNFZPTF9TSElGVCwKKwlXTTg5OTBfTElOMzRWT0xfTUFTSywKKwkwLAorCWluX3BnYV90bHYpLAorCitTT0NfU0lOR0xFKCJMSU4zNCBaQyBTd2l0Y2giLCBXTTg5OTBfTEVGVF9MSU5FX0lOUFVUXzNfNF9WT0xVTUUsCisJV004OTkwX0xJMzRaQ19CSVQsIDEsIDApLAorCitTT0NfU0lOR0xFKCJMSU4zNCBNdXRlIFN3aXRjaCIsIFdNODk5MF9MRUZUX0xJTkVfSU5QVVRfM180X1ZPTFVNRSwKKwlXTTg5OTBfTEkzNE1VVEVfQklULCAxLCAwKSwKKworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJSSU4xMiBWb2x1bWUiLAorCVdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUsCisJV004OTkwX1JJTjEyVk9MX1NISUZULAorCVdNODk5MF9SSU4xMlZPTF9NQVNLLAorCTAsCisJaW5fcGdhX3RsdiksCisKK1NPQ19TSU5HTEUoIlJJTjEyIFpDIFN3aXRjaCIsIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUsCisJV004OTkwX1JJMTJaQ19CSVQsIDEsIDApLAorCitTT0NfU0lOR0xFKCJSSU4xMiBNdXRlIFN3aXRjaCIsIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUsCisJV004OTkwX1JJMTJNVVRFX0JJVCwgMSwgMCksCisKK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiUklOMzQgVm9sdW1lIiwKKwlXTTg5OTBfUklHSFRfTElORV9JTlBVVF8zXzRfVk9MVU1FLAorCVdNODk5MF9SSU4zNFZPTF9TSElGVCwKKwlXTTg5OTBfUklOMzRWT0xfTUFTSywKKwkwLAorCWluX3BnYV90bHYpLAorCitTT0NfU0lOR0xFKCJSSU4zNCBaQyBTd2l0Y2giLCBXTTg5OTBfUklHSFRfTElORV9JTlBVVF8zXzRfVk9MVU1FLAorCVdNODk5MF9SSTM0WkNfQklULCAxLCAwKSwKKworU09DX1NJTkdMRSgiUklOMzQgTXV0ZSBTd2l0Y2giLCBXTTg5OTBfUklHSFRfTElORV9JTlBVVF8zXzRfVk9MVU1FLAorCVdNODk5MF9SSTM0TVVURV9CSVQsIDEsIDApLAorCit9OworCisvKiBhZGQgbm9uIGRhcG0gY29udHJvbHMgKi8KK3N0YXRpYyBpbnQgd204OTkwX2FkZF9jb250cm9scyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJaW50IGVyciwgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODk5MF9zbmRfY29udHJvbHMpOyBpKyspIHsKKwkJZXJyID0gc25kX2N0bF9hZGQoY29kZWMtPmNhcmQsCisJCQkJc25kX3NvY19jbmV3KCZ3bTg5OTBfc25kX2NvbnRyb2xzW2ldLCBjb2RlYywKKwkJCQkJTlVMTCkpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogX0RBUE1fIENvbnRyb2xzCisgKi8KKworc3RhdGljIGludCBpbm1peGVyX2V2ZW50KHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3LAorCXN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBpbnQgZXZlbnQpCit7CisJdTE2IHJlZywgZmFrZXBvd2VyOworCisJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKHctPmNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yKTsKKwlmYWtlcG93ZXIgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUody0+Y29kZWMsIFdNODk5MF9JTlREUklWQklUUyk7CisKKwlpZiAoZmFrZXBvd2VyICYgKCgxIDw8IFdNODk5MF9JTk1JWExfUFdSX0JJVCkgfAorCQkoMSA8PCBXTTg5OTBfQUlOTE1VWF9QV1JfQklUKSkpIHsKKwkJcmVnIHw9IFdNODk5MF9BSU5MX0VOQTsKKwl9IGVsc2UgeworCQlyZWcgJj0gfldNODk5MF9BSU5MX0VOQTsKKwl9CisKKwlpZiAoZmFrZXBvd2VyICYgKCgxIDw8IFdNODk5MF9JTk1JWFJfUFdSX0JJVCkgfAorCQkoMSA8PCBXTTg5OTBfQUlOUk1VWF9QV1JfQklUKSkpIHsKKwkJcmVnIHw9IFdNODk5MF9BSU5SX0VOQTsKKwl9IGVsc2UgeworCQlyZWcgJj0gfldNODk5MF9BSU5MX0VOQTsKKwl9CisJd204OTkwX3dyaXRlKHctPmNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLCByZWcpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgb3V0bWl4ZXJfZXZlbnQoc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKncsCisJc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIGludCBldmVudCkKK3sKKwl1MzIgcmVnX3NoaWZ0ID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmZjsKKwlpbnQgcmV0ID0gMDsKKwl1MTYgcmVnOworCisJc3dpdGNoIChyZWdfc2hpZnQpIHsKKwljYXNlIFdNODk5MF9TUEVBS0VSX01JWEVSIHwgKFdNODk5MF9MRFNQS19CSVQgPDwgOCkgOgorCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUody0+Y29kZWMsIFdNODk5MF9PVVRQVVRfTUlYRVIxKTsKKwkJaWYgKHJlZyAmIFdNODk5MF9MRExPKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiQ2Fubm90IHNldCBhcyBPdXRwdXQgTWl4ZXIgMSBMRExPIFNldFxuIik7CisJCQlyZXQgPSAtMTsKKwkJfQorCQlicmVhazsKKwljYXNlIFdNODk5MF9TUEVBS0VSX01JWEVSIHwgKFdNODk5MF9SRFNQS19CSVQgPDwgOCk6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZSh3LT5jb2RlYywgV004OTkwX09VVFBVVF9NSVhFUjIpOworCQlpZiAocmVnICYgV004OTkwX1JEUk8pIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJDYW5ub3Qgc2V0IGFzIE91dHB1dCBNaXhlciAyIFJEUk8gU2V0XG4iKTsKKwkJCXJldCA9IC0xOworCQl9CisJCWJyZWFrOworCWNhc2UgV004OTkwX09VVFBVVF9NSVhFUjEgfCAoV004OTkwX0xETE9fQklUIDw8IDgpOgorCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUody0+Y29kZWMsIFdNODk5MF9TUEVBS0VSX01JWEVSKTsKKwkJaWYgKHJlZyAmIFdNODk5MF9MRFNQSykgeworCQkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIkNhbm5vdCBzZXQgYXMgU3BlYWtlciBNaXhlciBMRFNQSyBTZXRcbiIpOworCQkJcmV0ID0gLTE7CisJCX0KKwkJYnJlYWs7CisJY2FzZSBXTTg5OTBfT1VUUFVUX01JWEVSMiB8IChXTTg5OTBfUkRST19CSVQgPDwgOCk6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZSh3LT5jb2RlYywgV004OTkwX1NQRUFLRVJfTUlYRVIpOworCQlpZiAocmVnICYgV004OTkwX1JEU1BLKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiQ2Fubm90IHNldCBhcyBTcGVha2VyIE1peGVyIFJEU1BLIFNldFxuIik7CisJCQlyZXQgPSAtMTsKKwkJfQorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCisvKiBJTk1JWCBkQiB2YWx1ZXMgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgaW5fbWl4X3RsdltdID0geworCVRMVl9EQl9SQU5HRV9IRUFEKDEpLAorCTAsIDcsIFRMVl9EQl9MSU5FQVJfSVRFTSgtMTIwMCwgNjAwKSwKK307CisKKy8qIExlZnQgSW4gUEdBIENvbm5lY3Rpb25zICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fbGluMTJfcGdhX2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIkxJTjEgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMiwgV004OTkwX0xNTjFfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTElOMiBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIyLCBXTTg5OTBfTE1QMl9CSVQsIDEsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2xpbjM0X3BnYV9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJMSU4zIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjIsIFdNODk5MF9MTU4zX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxJTjQgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMiwgV004OTkwX0xNUDRfQklULCAxLCAwKSwKK307CisKKy8qIFJpZ2h0IEluIFBHQSBDb25uZWN0aW9ucyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX3JpbjEyX3BnYV9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJSSU4xIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjIsIFdNODk5MF9STU4xX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJJTjIgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMiwgV004OTkwX1JNUDJfQklULCAxLCAwKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9yaW4zNF9wZ2FfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiUklOMyBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIyLCBXTTg5OTBfUk1OM19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJSSU40IFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjIsIFdNODk5MF9STVA0X0JJVCwgMSwgMCksCit9OworCisvKiBJTk1JWEwgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9pbm1peGxfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRV9UTFYoIlJlY29yZCBMZWZ0IFZvbHVtZSIsIFdNODk5MF9JTlBVVF9NSVhFUjMsCisJV004OTkwX0xEQlZPTF9TSElGVCwgV004OTkwX0xEQlZPTF9NQVNLLCAwLCBpbl9taXhfdGx2KSwKK1NPQ19EQVBNX1NJTkdMRV9UTFYoIkxJTjIgVm9sdW1lIiwgV004OTkwX0lOUFVUX01JWEVSNSwgV004OTkwX0xJMkJWT0xfU0hJRlQsCisJNywgMCwgaW5fbWl4X3RsdiksCitTT0NfREFQTV9TSU5HTEUoIkxJTlBHQTEyIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjMsIFdNODk5MF9MMTJNTkJfQklULAorCTEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMSU5QR0EzNCBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfTDM0TU5CX0JJVCwKKwkxLCAwKSwKK307CisKKy8qIElOTUlYUiAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2lubWl4cl9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFX1RMVigiUmVjb3JkIFJpZ2h0IFZvbHVtZSIsIFdNODk5MF9JTlBVVF9NSVhFUjQsCisJV004OTkwX1JEQlZPTF9TSElGVCwgV004OTkwX1JEQlZPTF9NQVNLLCAwLCBpbl9taXhfdGx2KSwKK1NPQ19EQVBNX1NJTkdMRV9UTFYoIlJJTjIgVm9sdW1lIiwgV004OTkwX0lOUFVUX01JWEVSNiwgV004OTkwX1JJMkJWT0xfU0hJRlQsCisJNywgMCwgaW5fbWl4X3RsdiksCitTT0NfREFQTV9TSU5HTEUoIlJJTlBHQTEyIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjMsIFdNODk5MF9MMTJNTkJfQklULAorCTEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJSSU5QR0EzNCBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfTDM0TU5CX0JJVCwKKwkxLCAwKSwKK307CisKKy8qIEFJTkxNVVggKi8KK3N0YXRpYyBjb25zdCBjaGFyICp3bTg5OTBfYWlubG11eFtdID0KKwl7IklOTUlYTCBNaXgiLCAiUlhWT0lDRSBNaXgiLCAiRElGRklOTCBNaXgifTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB3bTg5OTBfYWlubG11eF9lbnVtID0KK1NPQ19FTlVNX1NJTkdMRShXTTg5OTBfSU5QVVRfTUlYRVIxLCBXTTg5OTBfQUlOTE1PREVfU0hJRlQsCisJQVJSQVlfU0laRSh3bTg5OTBfYWlubG11eCksIHdtODk5MF9haW5sbXV4KTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2FpbmxtdXhfY29udHJvbHMgPQorU09DX0RBUE1fRU5VTSgiUm91dGUiLCB3bTg5OTBfYWlubG11eF9lbnVtKTsKKworLyogRElGRklOTCAqLworCisvKiBBSU5STVVYICovCitzdGF0aWMgY29uc3QgY2hhciAqd204OTkwX2FpbnJtdXhbXSA9CisJeyJJTk1JWFIgTWl4IiwgIlJYVk9JQ0UgTWl4IiwgIkRJRkZJTlIgTWl4In07CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gd204OTkwX2FpbnJtdXhfZW51bSA9CitTT0NfRU5VTV9TSU5HTEUoV004OTkwX0lOUFVUX01JWEVSMSwgV004OTkwX0FJTlJNT0RFX1NISUZULAorCUFSUkFZX1NJWkUod204OTkwX2FpbnJtdXgpLCB3bTg5OTBfYWlucm11eCk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9haW5ybXV4X2NvbnRyb2xzID0KK1NPQ19EQVBNX0VOVU0oIlJvdXRlIiwgd204OTkwX2FpbnJtdXhfZW51bSk7CisKKy8qIFJYVk9JQ0UgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9yeHZvaWNlX2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEVfVExWKCJMSU40L1JYTiIsIFdNODk5MF9JTlBVVF9NSVhFUjUsIFdNODk5MF9MUjRCVk9MX1NISUZULAorCQkJV004OTkwX0xSNEJWT0xfTUFTSywgMCwgaW5fbWl4X3RsdiksCitTT0NfREFQTV9TSU5HTEVfVExWKCJSSU40L1JYUCIsIFdNODk5MF9JTlBVVF9NSVhFUjYsIFdNODk5MF9STDRCVk9MX1NISUZULAorCQkJV004OTkwX1JMNEJWT0xfTUFTSywgMCwgaW5fbWl4X3RsdiksCit9OworCisvKiBMT01JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2xvbWl4X2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIkxPTUlYIFJpZ2h0IEFEQyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjEsCisJV004OTkwX0xSQkxPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPTUlYIExlZnQgQURDIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMSwKKwlXTTg5OTBfTExCTE9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9NSVggUklOMyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjEsCisJV004OTkwX0xSSTNMT19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMT01JWCBMSU4zIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMSwKKwlXTTg5OTBfTExJM0xPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPTUlYIFJJTjEyIFBHQSBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjEsCisJV004OTkwX0xSMTJMT19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMT01JWCBMSU4xMiBQR0EgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIxLAorCVdNODk5MF9MTDEyTE9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9NSVggTGVmdCBEQUMgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjEsCisJV004OTkwX0xETE9fQklULCAxLCAwKSwKK307CisKKy8qIFJPTUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fcm9taXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiUk9NSVggTGVmdCBBREMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIyLAorCVdNODk5MF9STEJST19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST01JWCBSaWdodCBBREMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIyLAorCVdNODk5MF9SUkJST19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST01JWCBMSU4zIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMiwKKwlXTTg5OTBfUkxJM1JPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPTUlYIFJJTjMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIyLAorCVdNODk5MF9SUkkzUk9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUk9NSVggTElOMTIgUEdBIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMiwKKwlXTTg5OTBfUkwxMlJPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPTUlYIFJJTjEyIFBHQSBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjIsCisJV004OTkwX1JSMTJST19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST01JWCBSaWdodCBEQUMgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjIsCisJV004OTkwX1JEUk9fQklULCAxLCAwKSwKK307CisKKy8qIExPTk1JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2xvbm1peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJMT05NSVggTGVmdCBNaXhlciBQR0EgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIxLAorCVdNODk5MF9MTE9QR0FMT05fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9OTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjEsCisJV004OTkwX0xST1BHQUxPTl9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMT05NSVggSW52ZXJ0ZWQgTE9QIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMSwKKwlXTTg5OTBfTE9QTE9OX0JJVCwgMSwgMCksCit9OworCisvKiBMT1BNSVggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9sb3BtaXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiTE9QTUlYIFJpZ2h0IE1pYyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIxLAorCVdNODk5MF9MUjEyTE9QX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPUE1JWCBMZWZ0IE1pYyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIxLAorCVdNODk5MF9MTDEyTE9QX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPUE1JWCBMZWZ0IE1peGVyIFBHQSBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjEsCisJV004OTkwX0xMT1BHQUxPUF9CSVQsIDEsIDApLAorfTsKKworLyogUk9OTUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fcm9ubWl4X2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIlJPTk1JWCBSaWdodCBNaXhlciBQR0EgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIyLAorCVdNODk5MF9SUk9QR0FST05fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUk9OTUlYIExlZnQgTWl4ZXIgUEdBIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMiwKKwlXTTg5OTBfUkxPUEdBUk9OX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPTk1JWCBJbnZlcnRlZCBST1AgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIyLAorCVdNODk5MF9ST1BST05fQklULCAxLCAwKSwKK307CisKKy8qIFJPUE1JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX3JvcG1peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJST1BNSVggTGVmdCBNaWMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMiwKKwlXTTg5OTBfUkwxMlJPUF9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST1BNSVggUmlnaHQgTWljIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjIsCisJV004OTkwX1JSMTJST1BfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUk9QTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjIsCisJV004OTkwX1JST1BHQVJPUF9CSVQsIDEsIDApLAorfTsKKworLyogT1VUM01JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX291dDNtaXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiT1VUM01JWCBMSU40L1JYUCBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVDNfNF9NSVhFUiwKKwlXTTg5OTBfTEk0TzNfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiT1VUM01JWCBMZWZ0IE91dCBQR0EgU3dpdGNoIiwgV004OTkwX09VVDNfNF9NSVhFUiwKKwlXTTg5OTBfTFBHQU8zX0JJVCwgMSwgMCksCit9OworCisvKiBPVVQ0TUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fb3V0NG1peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJPVVQ0TUlYIFJpZ2h0IE91dCBQR0EgU3dpdGNoIiwgV004OTkwX09VVDNfNF9NSVhFUiwKKwlXTTg5OTBfUlBHQU80X0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIk9VVDRNSVggUklONC9SWFAgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVQzXzRfTUlYRVIsCisJV004OTkwX1JJNE80X0JJVCwgMSwgMCksCit9OworCisvKiBTUEtNSVggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9zcGttaXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiU1BLTUlYIExJTjIgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9TUEVBS0VSX01JWEVSLAorCVdNODk5MF9MSTJTUEtfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiU1BLTUlYIExBREMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9TUEVBS0VSX01JWEVSLAorCVdNODk5MF9MQjJTUEtfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiU1BLTUlYIExlZnQgTWl4ZXIgUEdBIFN3aXRjaCIsIFdNODk5MF9TUEVBS0VSX01JWEVSLAorCVdNODk5MF9MT1BHQVNQS19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJTUEtNSVggTGVmdCBEQUMgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX0xEU1BLX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlNQS01JWCBSaWdodCBEQUMgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX1JEU1BLX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlNQS01JWCBSaWdodCBNaXhlciBQR0EgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX1JPUEdBU1BLX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlNQS01JWCBSQURDIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfU1BFQUtFUl9NSVhFUiwKKwlXTTg5OTBfUkwxMlJPUF9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJTUEtNSVggUklOMiBCeXBhc3MgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX1JJMlNQS19CSVQsIDEsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IHdtODk5MF9kYXBtX3dpZGdldHNbXSA9IHsKKy8qIElucHV0IFNpZGUgKi8KKy8qIElucHV0IExpbmVzICovCitTTkRfU09DX0RBUE1fSU5QVVQoIkxJTjEiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiTElOMiIpLAorU05EX1NPQ19EQVBNX0lOUFVUKCJMSU4zIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIkxJTjQvUlhOIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIlJJTjMiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiUklONC9SWFAiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiUklOMSIpLAorU05EX1NPQ19EQVBNX0lOUFVUKCJSSU4yIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIkludGVybmFsIEFEQyBTb3VyY2UiKSwKKworLyogREFDcyAqLworU05EX1NPQ19EQVBNX0FEQygiTGVmdCBBREMiLCAiTGVmdCBDYXB0dXJlIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiwKKwlXTTg5OTBfQURDTF9FTkFfQklULCAwKSwKK1NORF9TT0NfREFQTV9BREMoIlJpZ2h0IEFEQyIsICJSaWdodCBDYXB0dXJlIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiwKKwlXTTg5OTBfQURDUl9FTkFfQklULCAwKSwKKworLyogSW5wdXQgUEdBcyAqLworU05EX1NPQ19EQVBNX01JWEVSKCJMSU4xMiBQR0EiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLCBXTTg5OTBfTElOMTJfRU5BX0JJVCwKKwkwLCAmd204OTkwX2RhcG1fbGluMTJfcGdhX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fbGluMTJfcGdhX2NvbnRyb2xzKSksCitTTkRfU09DX0RBUE1fTUlYRVIoIkxJTjM0IFBHQSIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIFdNODk5MF9MSU4zNF9FTkFfQklULAorCTAsICZ3bTg5OTBfZGFwbV9saW4zNF9wZ2FfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9saW4zNF9wZ2FfY29udHJvbHMpKSwKK1NORF9TT0NfREFQTV9NSVhFUigiUklOMTIgUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiwgV004OTkwX1JJTjEyX0VOQV9CSVQsCisJMCwgJndtODk5MF9kYXBtX3JpbjEyX3BnYV9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX3JpbjEyX3BnYV9jb250cm9scykpLAorU05EX1NPQ19EQVBNX01JWEVSKCJSSU4zNCBQR0EiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLCBXTTg5OTBfUklOMzRfRU5BX0JJVCwKKwkwLCAmd204OTkwX2RhcG1fcmluMzRfcGdhX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fcmluMzRfcGdhX2NvbnRyb2xzKSksCisKKy8qIElOTUlYTCAqLworU05EX1NPQ19EQVBNX01JWEVSX0UoIklOTUlYTCIsIFdNODk5MF9JTlREUklWQklUUywgV004OTkwX0lOTUlYTF9QV1JfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9pbm1peGxfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9pbm1peGxfY29udHJvbHMpLAorCWlubWl4ZXJfZXZlbnQsIFNORF9TT0NfREFQTV9QT1NUX1BNVSB8IFNORF9TT0NfREFQTV9QT1NUX1BNRCksCisKKy8qIEFJTkxNVVggKi8KK1NORF9TT0NfREFQTV9NVVhfRSgiQUlMTk1VWCIsIFdNODk5MF9JTlREUklWQklUUywgV004OTkwX0FJTkxNVVhfUFdSX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fYWlubG11eF9jb250cm9scywgaW5taXhlcl9ldmVudCwKKwlTTkRfU09DX0RBUE1fUE9TVF9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLAorCisvKiBJTk1JWFIgKi8KK1NORF9TT0NfREFQTV9NSVhFUl9FKCJJTk1JWFIiLCBXTTg5OTBfSU5URFJJVkJJVFMsIFdNODk5MF9JTk1JWFJfUFdSX0JJVCwgMCwKKwkmd204OTkwX2RhcG1faW5taXhyX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1faW5taXhyX2NvbnRyb2xzKSwKKwlpbm1peGVyX2V2ZW50LCBTTkRfU09DX0RBUE1fUE9TVF9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLAorCisvKiBBSU5STVVYICovCitTTkRfU09DX0RBUE1fTVVYX0UoIkFJUk5NVVgiLCBXTTg5OTBfSU5URFJJVkJJVFMsIFdNODk5MF9BSU5STVVYX1BXUl9CSVQsIDAsCisJJndtODk5MF9kYXBtX2FpbnJtdXhfY29udHJvbHMsIGlubWl4ZXJfZXZlbnQsCisJU05EX1NPQ19EQVBNX1BPU1RfUE1VIHwgU05EX1NPQ19EQVBNX1BPU1RfUE1EKSwKKworLyogT3V0cHV0IFNpZGUgKi8KKy8qIERBQ3MgKi8KK1NORF9TT0NfREFQTV9EQUMoIkxlZnQgREFDIiwgIkxlZnQgUGxheWJhY2siLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8zLAorCVdNODk5MF9EQUNMX0VOQV9CSVQsIDApLAorU05EX1NPQ19EQVBNX0RBQygiUmlnaHQgREFDIiwgIlJpZ2h0IFBsYXliYWNrIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywKKwlXTTg5OTBfREFDUl9FTkFfQklULCAwKSwKKworLyogTE9NSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUl9FKCJMT01JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsIFdNODk5MF9MT01JWF9FTkFfQklULAorCTAsICZ3bTg5OTBfZGFwbV9sb21peF9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX2xvbWl4X2NvbnRyb2xzKSwKKwlvdXRtaXhlcl9ldmVudCwgU05EX1NPQ19EQVBNX1BSRV9SRUcpLAorCisvKiBMT05NSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUigiTE9OTUlYIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX0xPTl9FTkFfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9sb25taXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9sb25taXhfY29udHJvbHMpKSwKKworLyogTE9QTUlYICovCitTTkRfU09DX0RBUE1fTUlYRVIoIkxPUE1JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsIFdNODk5MF9MT1BfRU5BX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fbG9wbWl4X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fbG9wbWl4X2NvbnRyb2xzKSksCisKKy8qIE9VVDNNSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUigiT1VUM01JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIFdNODk5MF9PVVQzX0VOQV9CSVQsIDAsCisJJndtODk5MF9kYXBtX291dDNtaXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9vdXQzbWl4X2NvbnRyb2xzKSksCisKKy8qIFNQS01JWCAqLworU05EX1NPQ19EQVBNX01JWEVSX0UoIlNQS01JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIFdNODk5MF9TUEtfRU5BX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fc3BrbWl4X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fc3BrbWl4X2NvbnRyb2xzKSwgb3V0bWl4ZXJfZXZlbnQsCisJU05EX1NPQ19EQVBNX1BSRV9SRUcpLAorCisvKiBPVVQ0TUlYICovCitTTkRfU09DX0RBUE1fTUlYRVIoIk9VVDRNSVgiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8xLCBXTTg5OTBfT1VUNF9FTkFfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9vdXQ0bWl4X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fb3V0NG1peF9jb250cm9scykpLAorCisvKiBST1BNSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUigiUk9QTUlYIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX1JPUF9FTkFfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9yb3BtaXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9yb3BtaXhfY29udHJvbHMpKSwKKworLyogUk9OTUlYICovCitTTkRfU09DX0RBUE1fTUlYRVIoIlJPTk1JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsIFdNODk5MF9ST05fRU5BX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fcm9ubWl4X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fcm9ubWl4X2NvbnRyb2xzKSksCisKKy8qIFJPTUlYICovCitTTkRfU09DX0RBUE1fTUlYRVJfRSgiUk9NSVgiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8zLCBXTTg5OTBfUk9NSVhfRU5BX0JJVCwKKwkwLCAmd204OTkwX2RhcG1fcm9taXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9yb21peF9jb250cm9scyksCisJb3V0bWl4ZXJfZXZlbnQsIFNORF9TT0NfREFQTV9QUkVfUkVHKSwKKworLyogTE9VVCBQR0EgKi8KK1NORF9TT0NfREFQTV9QR0EoIkxPVVQgUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgV004OTkwX0xPVVRfRU5BX0JJVCwgMCwKKwlOVUxMLCAwKSwKKworLyogUk9VVCBQR0EgKi8KK1NORF9TT0NfREFQTV9QR0EoIlJPVVQgUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgV004OTkwX1JPVVRfRU5BX0JJVCwgMCwKKwlOVUxMLCAwKSwKKworLyogTE9QR0EgKi8KK1NORF9TT0NfREFQTV9QR0EoIkxPUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX0xPUEdBX0VOQV9CSVQsIDAsCisJTlVMTCwgMCksCisKKy8qIFJPUEdBICovCitTTkRfU09DX0RBUE1fUEdBKCJST1BHQSIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsIFdNODk5MF9ST1BHQV9FTkFfQklULCAwLAorCU5VTEwsIDApLAorCisvKiBNSUNCSUFTICovCitTTkRfU09DX0RBUE1fTUlDQklBUygiTUlDQklBUyIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsCisJV004OTkwX01JQ0JJQVNfRU5BX0JJVCwgMCksCisKK1NORF9TT0NfREFQTV9PVVRQVVQoIkxPTiIpLAorU05EX1NPQ19EQVBNX09VVFBVVCgiTE9QIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJPVVQzIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJMT1VUIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJTUEtOIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJTUEtQIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJST1VUIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJPVVQ0IiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJST1AiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIlJPTiIpLAorCitTTkRfU09DX0RBUE1fT1VUUFVUKCJJbnRlcm5hbCBEQUMgU2luayIpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CisJLyogTWFrZSBEQUNzIHR1cm4gb24gd2hlbiBwbGF5aW5nIGV2ZW4gaWYgbm90IG1peGVkIGludG8gYW55IG91dHB1dHMgKi8KKwl7IkludGVybmFsIERBQyBTaW5rIiwgTlVMTCwgIkxlZnQgREFDIn0sCisJeyJJbnRlcm5hbCBEQUMgU2luayIsIE5VTEwsICJSaWdodCBEQUMifSwKKworCS8qIE1ha2UgQURDcyB0dXJuIG9uIHdoZW4gcmVjb3JkaW5nIGV2ZW4gaWYgbm90IG1peGVkIGZyb20gYW55IGlucHV0cyAqLworCXsiTGVmdCBBREMiLCBOVUxMLCAiSW50ZXJuYWwgQURDIFNvdXJjZSJ9LAorCXsiUmlnaHQgQURDIiwgTlVMTCwgIkludGVybmFsIEFEQyBTb3VyY2UifSwKKworCS8qIElucHV0IFNpZGUgKi8KKwkvKiBMSU4xMiBQR0EgKi8KKwl7IkxJTjEyIFBHQSIsICJMSU4xIFN3aXRjaCIsICJMSU4xIn0sCisJeyJMSU4xMiBQR0EiLCAiTElOMiBTd2l0Y2giLCAiTElOMiJ9LAorCS8qIExJTjM0IFBHQSAqLworCXsiTElOMzQgUEdBIiwgIkxJTjMgU3dpdGNoIiwgIkxJTjMifSwKKwl7IkxJTjM0IFBHQSIsICJMSU40IFN3aXRjaCIsICJMSU40In0sCisJLyogSU5NSVhMICovCisJeyJJTk1JWEwiLCAiUmVjb3JkIExlZnQgVm9sdW1lIiwgIkxPTUlYIn0sCisJeyJJTk1JWEwiLCAiTElOMiBWb2x1bWUiLCAiTElOMiJ9LAorCXsiSU5NSVhMIiwgIkxJTlBHQTEyIFN3aXRjaCIsICJMSU4xMiBQR0EifSwKKwl7IklOTUlYTCIsICJMSU5QR0EzNCBTd2l0Y2giLCAiTElOMzQgUEdBIn0sCisJLyogQUlMTk1VWCAqLworCXsiQUlMTk1VWCIsICJJTk1JWEwgTWl4IiwgIklOTUlYTCJ9LAorCXsiQUlMTk1VWCIsICJESUZGSU5MIE1peCIsICJMSU4xMlBHQSJ9LAorCXsiQUlMTk1VWCIsICJESUZGSU5MIE1peCIsICJMSU4zNFBHQSJ9LAorCXsiQUlMTk1VWCIsICJSWFZPSUNFIE1peCIsICJMSU40L1JYTiJ9LAorCXsiQUlMTk1VWCIsICJSWFZPSUNFIE1peCIsICJSSU40L1JYUCJ9LAorCS8qIEFEQyAqLworCXsiTGVmdCBBREMiLCBOVUxMLCAiQUlMTk1VWCJ9LAorCisJLyogUklOMTIgUEdBICovCisJeyJSSU4xMiBQR0EiLCAiUklOMSBTd2l0Y2giLCAiUklOMSJ9LAorCXsiUklOMTIgUEdBIiwgIlJJTjIgU3dpdGNoIiwgIlJJTjIifSwKKwkvKiBSSU4zNCBQR0EgKi8KKwl7IlJJTjM0IFBHQSIsICJSSU4zIFN3aXRjaCIsICJSSU4zIn0sCisJeyJSSU4zNCBQR0EiLCAiUklONCBTd2l0Y2giLCAiUklONCJ9LAorCS8qIElOTUlYTCAqLworCXsiSU5NSVhSIiwgIlJlY29yZCBSaWdodCBWb2x1bWUiLCAiUk9NSVgifSwKKwl7IklOTUlYUiIsICJSSU4yIFZvbHVtZSIsICJSSU4yIn0sCisJeyJJTk1JWFIiLCAiUklOUEdBMTIgU3dpdGNoIiwgIlJJTjEyIFBHQSJ9LAorCXsiSU5NSVhSIiwgIlJJTlBHQTM0IFN3aXRjaCIsICJSSU4zNCBQR0EifSwKKwkvKiBBSVJOTVVYICovCisJeyJBSVJOTVVYIiwgIklOTUlYUiBNaXgiLCAiSU5NSVhSIn0sCisJeyJBSVJOTVVYIiwgIkRJRkZJTlIgTWl4IiwgIlJJTjEyUEdBIn0sCisJeyJBSVJOTVVYIiwgIkRJRkZJTlIgTWl4IiwgIlJJTjM0UEdBIn0sCisJeyJBSVJOTVVYIiwgIlJYVk9JQ0UgTWl4IiwgIlJJTjQvUlhOIn0sCisJeyJBSVJOTVVYIiwgIlJYVk9JQ0UgTWl4IiwgIlJJTjQvUlhQIn0sCisJLyogQURDICovCisJeyJSaWdodCBBREMiLCBOVUxMLCAiQUlSTk1VWCJ9LAorCisJLyogTE9NSVggKi8KKwl7IkxPTUlYIiwgIkxPTUlYIFJJTjMgQnlwYXNzIFN3aXRjaCIsICJSSU4zIn0sCisJeyJMT01JWCIsICJMT01JWCBMSU4zIEJ5cGFzcyBTd2l0Y2giLCAiTElOMyJ9LAorCXsiTE9NSVgiLCAiTE9NSVggTElOMTIgUEdBIEJ5cGFzcyBTd2l0Y2giLCAiTElOMTIgUEdBIn0sCisJeyJMT01JWCIsICJMT01JWCBSSU4xMiBQR0EgQnlwYXNzIFN3aXRjaCIsICJSSU4xMiBQR0EifSwKKwl7IkxPTUlYIiwgIkxPTUlYIFJpZ2h0IEFEQyBCeXBhc3MgU3dpdGNoIiwgIkFJTlJNVVgifSwKKwl7IkxPTUlYIiwgIkxPTUlYIExlZnQgQURDIEJ5cGFzcyBTd2l0Y2giLCAiQUlOTE1VWCJ9LAorCXsiTE9NSVgiLCAiTE9NSVggTGVmdCBEQUMgU3dpdGNoIiwgIkxlZnQgREFDIn0sCisKKwkvKiBST01JWCAqLworCXsiUk9NSVgiLCAiUk9NSVggUklOMyBCeXBhc3MgU3dpdGNoIiwgIlJJTjMifSwKKwl7IlJPTUlYIiwgIlJPTUlYIExJTjMgQnlwYXNzIFN3aXRjaCIsICJMSU4zIn0sCisJeyJST01JWCIsICJST01JWCBMSU4xMiBQR0EgQnlwYXNzIFN3aXRjaCIsICJMSU4xMiBQR0EifSwKKwl7IlJPTUlYIiwgIlJPTUlYIFJJTjEyIFBHQSBCeXBhc3MgU3dpdGNoIiwgIlJJTjEyIFBHQSJ9LAorCXsiUk9NSVgiLCAiUk9NSVggUmlnaHQgQURDIEJ5cGFzcyBTd2l0Y2giLCAiQUlOUk1VWCJ9LAorCXsiUk9NSVgiLCAiUk9NSVggTGVmdCBBREMgQnlwYXNzIFN3aXRjaCIsICJBSU5MTVVYIn0sCisJeyJST01JWCIsICJST01JWCBSaWdodCBEQUMgU3dpdGNoIiwgIlJpZ2h0IERBQyJ9LAorCisJLyogU1BLTUlYICovCisJeyJTUEtNSVgiLCAiU1BLTUlYIExJTjIgQnlwYXNzIFN3aXRjaCIsICJMSU4yIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIFJJTjIgQnlwYXNzIFN3aXRjaCIsICJSSU4yIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIExBREMgQnlwYXNzIFN3aXRjaCIsICJBSU5MTVVYIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIFJBREMgQnlwYXNzIFN3aXRjaCIsICJBSU5STVVYIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIExlZnQgTWl4ZXIgUEdBIFN3aXRjaCIsICJMT1BHQSJ9LAorCXsiU1BLTUlYIiwgIlNQS01JWCBSaWdodCBNaXhlciBQR0EgU3dpdGNoIiwgIlJPUEdBIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIFJpZ2h0IERBQyBTd2l0Y2giLCAiUmlnaHQgREFDIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIExlZnQgREFDIFN3aXRjaCIsICJSaWdodCBEQUMifSwKKworCS8qIExPTk1JWCAqLworCXsiTE9OTUlYIiwgIkxPTk1JWCBMZWZ0IE1peGVyIFBHQSBTd2l0Y2giLCAiTE9QR0EifSwKKwl7IkxPTk1JWCIsICJMT05NSVggUmlnaHQgTWl4ZXIgUEdBIFN3aXRjaCIsICJST1BHQSJ9LAorCXsiTE9OTUlYIiwgIkxPTk1JWCBJbnZlcnRlZCBMT1AgU3dpdGNoIiwgIkxPUE1JWCJ9LAorCisJLyogTE9QTUlYICovCisJeyJMT1BNSVgiLCAiTE9QTUlYIFJpZ2h0IE1pYyBCeXBhc3MgU3dpdGNoIiwgIlJJTjEyIFBHQSJ9LAorCXsiTE9QTUlYIiwgIkxPUE1JWCBMZWZ0IE1pYyBCeXBhc3MgU3dpdGNoIiwgIkxJTjEyIFBHQSJ9LAorCXsiTE9QTUlYIiwgIkxPUE1JWCBMZWZ0IE1peGVyIFBHQSBTd2l0Y2giLCAiTE9QR0EifSwKKworCS8qIE9VVDNNSVggKi8KKwl7Ik9VVDNNSVgiLCAiT1VUM01JWCBMSU40L1JYUCBCeXBhc3MgU3dpdGNoIiwgIkxJTjQvUlhQIn0sCisJeyJPVVQzTUlYIiwgIk9VVDNNSVggTGVmdCBPdXQgUEdBIFN3aXRjaCIsICJMT1BHQSJ9LAorCisJLyogT1VUNE1JWCAqLworCXsiT1VUNE1JWCIsICJPVVQ0TUlYIFJpZ2h0IE91dCBQR0EgU3dpdGNoIiwgIlJPUEdBIn0sCisJeyJPVVQ0TUlYIiwgIk9VVDRNSVggUklONC9SWFAgQnlwYXNzIFN3aXRjaCIsICJSSU40L1JYUCJ9LAorCisJLyogUk9OTUlYICovCisJeyJST05NSVgiLCAiUk9OTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCAiUk9QR0EifSwKKwl7IlJPTk1JWCIsICJST05NSVggTGVmdCBNaXhlciBQR0EgU3dpdGNoIiwgIkxPUEdBIn0sCisJeyJST05NSVgiLCAiUk9OTUlYIEludmVydGVkIFJPUCBTd2l0Y2giLCAiUk9QTUlYIn0sCisKKwkvKiBST1BNSVggKi8KKwl7IlJPUE1JWCIsICJST1BNSVggTGVmdCBNaWMgQnlwYXNzIFN3aXRjaCIsICJMSU4xMiBQR0EifSwKKwl7IlJPUE1JWCIsICJST1BNSVggUmlnaHQgTWljIEJ5cGFzcyBTd2l0Y2giLCAiUklOMTIgUEdBIn0sCisJeyJST1BNSVgiLCAiUk9QTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCAiUk9QR0EifSwKKworCS8qIE91dCBNaXhlciBQR0FzICovCisJeyJMT1BHQSIsIE5VTEwsICJMT01JWCJ9LAorCXsiUk9QR0EiLCBOVUxMLCAiUk9NSVgifSwKKworCXsiTE9VVCBQR0EiLCBOVUxMLCAiTE9NSVgifSwKKwl7IlJPVVQgUEdBIiwgTlVMTCwgIlJPTUlYIn0sCisKKwkvKiBPdXRwdXQgUGlucyAqLworCXsiTE9OIiwgTlVMTCwgIkxPTk1JWCJ9LAorCXsiTE9QIiwgTlVMTCwgIkxPUE1JWCJ9LAorCXsiT1VUIiwgTlVMTCwgIk9VVDNNSVgifSwKKwl7IkxPVVQiLCBOVUxMLCAiTE9VVCBQR0EifSwKKwl7IlNQS04iLCBOVUxMLCAiU1BLTUlYIn0sCisJeyJST1VUIiwgTlVMTCwgIlJPVVQgUEdBIn0sCisJeyJPVVQ0IiwgTlVMTCwgIk9VVDRNSVgifSwKKwl7IlJPUCIsIE5VTEwsICJST1BNSVgifSwKKwl7IlJPTiIsIE5VTEwsICJST05NSVgifSwKK307CisKK3N0YXRpYyBpbnQgd204OTkwX2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTg5OTBfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTg5OTBfZGFwbV93aWRnZXRzKSk7CisKKwkvKiBzZXQgdXAgdGhlIFdNODk5MCBhdWRpbyBtYXAgKi8KKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOworCisJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKKwlyZXR1cm4gMDsKK30KKworLyogUExMIGRpdmlzb3JzICovCitzdHJ1Y3QgX3BsbF9kaXYgeworCXUzMiBkaXYyOworCXUzMiBuOworCXUzMiBrOworfTsKKworLyogVGhlIHNpemUgaW4gYml0cyBvZiB0aGUgcGxsIGRpdmlkZSBtdWx0aXBsaWVkIGJ5IDEwCisgKiB0byBhbGxvdyByb3VuZGluZyBsYXRlciAqLworI2RlZmluZSBGSVhFRF9QTExfU0laRSAoKDEgPDwgMTYpICogMTApCisKK3N0YXRpYyB2b2lkIHBsbF9mYWN0b3JzKHN0cnVjdCBfcGxsX2RpdiAqcGxsX2RpdiwgdW5zaWduZWQgaW50IHRhcmdldCwKKwl1bnNpZ25lZCBpbnQgc291cmNlKQoreworCXU2NCBLcGFydDsKKwl1bnNpZ25lZCBpbnQgSywgTmRpdiwgTm1vZDsKKworCisJTmRpdiA9IHRhcmdldCAvIHNvdXJjZTsKKwlpZiAoTmRpdiA8IDYpIHsKKwkJc291cmNlID4+PSAxOworCQlwbGxfZGl2LT5kaXYyID0gMTsKKwkJTmRpdiA9IHRhcmdldCAvIHNvdXJjZTsKKwl9IGVsc2UKKwkJcGxsX2Rpdi0+ZGl2MiA9IDA7CisKKwlpZiAoKE5kaXYgPCA2KSB8fCAoTmRpdiA+IDEyKSkKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkiV004OTkwIE4gdmFsdWUgb3V0d2l0aCByZWNvbW1lbmRlZCByYW5nZSEgTiA9ICVkXG4iLCBOZGl2KTsKKworCXBsbF9kaXYtPm4gPSBOZGl2OworCU5tb2QgPSB0YXJnZXQgJSBzb3VyY2U7CisJS3BhcnQgPSBGSVhFRF9QTExfU0laRSAqIChsb25nIGxvbmcpTm1vZDsKKworCWRvX2RpdihLcGFydCwgc291cmNlKTsKKworCUsgPSBLcGFydCAmIDB4RkZGRkZGRkY7CisKKwkvKiBDaGVjayBpZiB3ZSBuZWVkIHRvIHJvdW5kICovCisJaWYgKChLICUgMTApID49IDUpCisJCUsgKz0gNTsKKworCS8qIE1vdmUgZG93biB0byBwcm9wZXIgcmFuZ2Ugbm93IHJvdW5kaW5nIGlzIGRvbmUgKi8KKwlLIC89IDEwOworCisJcGxsX2Rpdi0+ayA9IEs7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX3NldF9kYWlfcGxsKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQlpbnQgcGxsX2lkLCB1bnNpZ25lZCBpbnQgZnJlcV9pbiwgdW5zaWduZWQgaW50IGZyZXFfb3V0KQoreworCXUxNiByZWc7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwlzdHJ1Y3QgX3BsbF9kaXYgcGxsX2RpdjsKKworCWlmIChmcmVxX2luICYmIGZyZXFfb3V0KSB7CisJCXBsbF9mYWN0b3JzKCZwbGxfZGl2LCBmcmVxX291dCAqIDQsIGZyZXFfaW4pOworCisJCS8qIFR1cm4gb24gUExMICovCisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMik7CisJCXJlZyB8PSBXTTg5OTBfUExMX0VOQTsKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLCByZWcpOworCisJCS8qIHN5c2NsayBjb21lcyBmcm9tIFBMTCAqLworCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18yKTsKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMiwgcmVnIHwgV004OTkwX1NZU0NMS19TUkMpOworCisJCS8qIHNldCB1cCBOICwgZnJhY3Rpb25hbCBtb2RlIGFuZCBwcmUtZGl2aXNvciBpZiBuZWNjZXNzYXJ5ICovCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BMTDEsIHBsbF9kaXYubiB8IFdNODk5MF9TRE0gfAorCQkJKHBsbF9kaXYuZGl2Mj9XTTg5OTBfUFJFU0NBTEU6MCkpOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QTEwyLCAodTgpKHBsbF9kaXYuaz4+OCkpOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QTEwzLCAodTgpKHBsbF9kaXYuayAmIDB4RkYpKTsKKwl9IGVsc2UgeworCQkvKiBUdXJuIG9uIFBMTCAqLworCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIpOworCQlyZWcgJj0gfldNODk5MF9QTExfRU5BOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIHJlZyk7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogQ2xvY2sgYWZ0ZXIgUExMIGFuZCBkaXZpZGVycworICovCitzdGF0aWMgaW50IHdtODk5MF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKKwkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwlzdHJ1Y3Qgd204OTkwX3ByaXYgKndtODk5MCA9IGNvZGVjLT5wcml2YXRlX2RhdGE7CisKKwl3bTg5OTAtPnN5c2NsayA9IGZyZXE7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBTZXQncyBBREMgYW5kIFZvaWNlIERBQyBmb3JtYXQuCisgKi8KK3N0YXRpYyBpbnQgd204OTkwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQl1bnNpZ25lZCBpbnQgZm10KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJdTE2IGF1ZGlvMSwgYXVkaW8zOworCisJYXVkaW8xID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzEpOworCWF1ZGlvMyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0FVRElPX0lOVEVSRkFDRV8zKTsKKworCS8qIHNldCBtYXN0ZXIvc2xhdmUgYXVkaW8gaW50ZXJmYWNlICovCisJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9NQVNURVJfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUzoKKwkJYXVkaW8zICY9IH5XTTg5OTBfQUlGX01TVFIxOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0NCTV9DRk06CisJCWF1ZGlvMyB8PSBXTTg5OTBfQUlGX01TVFIxOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlhdWRpbzEgJj0gfldNODk5MF9BSUZfRk1UX01BU0s7CisKKwkvKiBpbnRlcmZhY2UgZm9ybWF0ICovCisJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9GT1JNQVRfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfSTJTOgorCQlhdWRpbzEgfD0gV004OTkwX0FJRl9UTUZfSTJTOworCQlhdWRpbzEgJj0gfldNODk5MF9BSUZfTFJDTEtfSU5WOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX1JJR0hUX0o6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1RNRl9SSUdIVEo7CisJCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9MUkNMS19JTlY7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTEVGVF9KOgorCQlhdWRpbzEgfD0gV004OTkwX0FJRl9UTUZfTEVGVEo7CisJCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9MUkNMS19JTlY7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfRFNQX0E6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1RNRl9EU1A7CisJCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9MUkNMS19JTlY7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfRFNQX0I6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1RNRl9EU1AgfCBXTTg5OTBfQUlGX0xSQ0xLX0lOVjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzEsIGF1ZGlvMSk7CisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzMsIGF1ZGlvMyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQlpbnQgZGl2X2lkLCBpbnQgZGl2KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJdTE2IHJlZzsKKworCXN3aXRjaCAoZGl2X2lkKSB7CisJY2FzZSBXTTg5OTBfTUNMS19ESVY6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0NMT0NLSU5HXzIpICYKKwkJCX5XTTg5OTBfTUNMS19ESVZfTUFTSzsKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMiwgcmVnIHwgZGl2KTsKKwkJYnJlYWs7CisJY2FzZSBXTTg5OTBfREFDQ0xLX0RJVjoKKwkJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMikgJgorCQkJfldNODk5MF9EQUNfQ0xLRElWX01BU0s7CisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0NMT0NLSU5HXzIsIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWNhc2UgV004OTkwX0FEQ0NMS19ESVY6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0NMT0NLSU5HXzIpICYKKwkJCX5XTTg5OTBfQURDX0NMS0RJVl9NQVNLOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18yLCByZWcgfCBkaXYpOworCQlicmVhazsKKwljYXNlIFdNODk5MF9CQ0xLX0RJVjoKKwkJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMSkgJgorCQkJfldNODk5MF9CQ0xLX0RJVl9NQVNLOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18xLCByZWcgfCBkaXYpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNldCBQQ00gREFJIGJpdCBzaXplIGFuZCBzYW1wbGUgcmF0ZS4KKyAqLworc3RhdGljIGludCB3bTg5OTBfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJdTE2IGF1ZGlvMSA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0FVRElPX0lOVEVSRkFDRV8xKTsKKworCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9XTF9NQVNLOworCS8qIGJpdCBzaXplICovCisJc3dpdGNoIChwYXJhbXNfZm9ybWF0KHBhcmFtcykpIHsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzE2X0xFOgorCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzIwXzNMRToKKwkJYXVkaW8xIHw9IFdNODk5MF9BSUZfV0xfMjBCSVRTOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzI0X0xFOgorCQlhdWRpbzEgfD0gV004OTkwX0FJRl9XTF8yNEJJVFM7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMzJfTEU6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1dMXzMyQklUUzsKKwkJYnJlYWs7CisJfQorCisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzEsIGF1ZGlvMSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CisJdTE2IHZhbDsKKworCXZhbCAgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9EQUNfQ1RSTCkgJiB+V004OTkwX0RBQ19NVVRFOworCisJaWYgKG11dGUpCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0RBQ19DVFJMLCB2YWwgfCBXTTg5OTBfREFDX01VVEUpOworCWVsc2UKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfREFDX0NUUkwsIHZhbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg5OTBfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCWVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQoreworCXUxNiB2YWw7CisKKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CisJCWlmIChjb2RlYy0+Ymlhc19sZXZlbCA9PSBTTkRfU09DX0JJQVNfT0ZGKSB7CisJCQkvKiBFbmFibGUgYWxsIG91dHB1dCBkaXNjaGFyZ2UgYml0cyAqLworCQkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDEsIFdNODk5MF9ESVNfTExJTkUgfAorCQkJCVdNODk5MF9ESVNfUkxJTkUgfCBXTTg5OTBfRElTX09VVDMgfAorCQkJCVdNODk5MF9ESVNfT1VUNCB8IFdNODk5MF9ESVNfTE9VVCB8CisJCQkJV004OTkwX0RJU19ST1VUKTsKKworCQkJLyogRW5hYmxlIFBPQkNUUkwsIFNPRlRfU1QsIFZNSURUT0cgYW5kIEJVRkRDT1BFTiAqLworCQkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIFdNODk5MF9TT0ZUU1QgfAorCQkJCSAgICAgV004OTkwX0JVRkRDT1BFTiB8IFdNODk5MF9QT0JDVFJMIHwKKwkJCQkgICAgIFdNODk5MF9WTUlEVE9HKTsKKworCQkJLyogRGVsYXkgdG8gYWxsb3cgb3V0cHV0IGNhcHMgdG8gZGlzY2hhcmdlICovCisJCQltc2xlZXAobXNlY3NfdG9famlmZmllcygzMDApKTsKKworCQkJLyogRGlzYWJsZSBWTUlEVE9HICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMiwgV004OTkwX1NPRlRTVCB8CisJCQkJICAgICBXTTg5OTBfQlVGRENPUEVOIHwgV004OTkwX1BPQkNUUkwpOworCisJCQkvKiBkaXNhYmxlIGFsbCBvdXRwdXQgZGlzY2hhcmdlIGJpdHMgKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0FOVElQT1AxLCAwKTsKKworCQkJLyogRW5hYmxlIG91dHB1dHMgKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgxYjAwKTsKKworCQkJbXNsZWVwKG1zZWNzX3RvX2ppZmZpZXMoNTApKTsKKworCQkJLyogRW5hYmxlIFZNSUQgYXQgMng1MGsgKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgxZjAyKTsKKworCQkJbXNsZWVwKG1zZWNzX3RvX2ppZmZpZXMoMTAwKSk7CisKKwkJCS8qIEVuYWJsZSBWUkVGICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIDB4MWYwMyk7CisKKwkJCW1zbGVlcChtc2Vjc190b19qaWZmaWVzKDYwMCkpOworCisJCQkvKiBFbmFibGUgQlVGSU9FTiAqLworCQkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIFdNODk5MF9TT0ZUU1QgfAorCQkJCSAgICAgV004OTkwX0JVRkRDT1BFTiB8IFdNODk5MF9QT0JDVFJMIHwKKwkJCQkgICAgIFdNODk5MF9CVUZJT0VOKTsKKworCQkJLyogRGlzYWJsZSBvdXRwdXRzICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIDB4Myk7CisKKwkJCS8qIGRpc2FibGUgUE9CQ1RSTCwgU09GVF9TVCBhbmQgQlVGRENPUEVOICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMiwgV004OTkwX0JVRklPRU4pOworCQl9IGVsc2UgeworCQkJLyogT04gLT4gc3RhbmRieSAqLworCisJCX0KKwkJYnJlYWs7CisKKwljYXNlIFNORF9TT0NfQklBU19PRkY6CisJCS8qIEVuYWJsZSBQT0JDVFJMIGFuZCBTT0ZUX1NUICovCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0FOVElQT1AyLCBXTTg5OTBfU09GVFNUIHwKKwkJCVdNODk5MF9QT0JDVFJMIHwgV004OTkwX0JVRklPRU4pOworCisJCS8qIEVuYWJsZSBQT0JDVFJMLCBTT0ZUX1NUIGFuZCBCVUZEQ09QRU4gKi8KKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIFdNODk5MF9TT0ZUU1QgfAorCQkJV004OTkwX0JVRkRDT1BFTiB8IFdNODk5MF9QT0JDVFJMIHwKKwkJCVdNODk5MF9CVUZJT0VOKTsKKworCQkvKiBtdXRlIERBQyAqLworCQl2YWwgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9EQUNfQ1RSTCk7CisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0RBQ19DVFJMLCB2YWwgfCBXTTg5OTBfREFDX01VVEUpOworCisJCS8qIEVuYWJsZSBhbnkgZGlzYWJsZWQgb3V0cHV0cyAqLworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIDB4MWYwMyk7CisKKwkJLyogRGlzYWJsZSBWTUlEICovCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgxZjAxKTsKKworCQltc2xlZXAobXNlY3NfdG9famlmZmllcygzMDApKTsKKworCQkvKiBFbmFibGUgYWxsIG91dHB1dCBkaXNjaGFyZ2UgYml0cyAqLworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMSwgV004OTkwX0RJU19MTElORSB8CisJCQlXTTg5OTBfRElTX1JMSU5FIHwgV004OTkwX0RJU19PVVQzIHwKKwkJCVdNODk5MF9ESVNfT1VUNCB8IFdNODk5MF9ESVNfTE9VVCB8CisJCQlXTTg5OTBfRElTX1JPVVQpOworCisJCS8qIERpc2FibGUgVlJFRiAqLworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIDB4MCk7CisKKwkJLyogZGlzYWJsZSBQT0JDVFJMLCBTT0ZUX1NUIGFuZCBCVUZEQ09QRU4gKi8KKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIDB4MCk7CisJCWJyZWFrOworCX0KKworCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CisJcmV0dXJuIDA7Cit9CisKKyNkZWZpbmUgV004OTkwX1JBVEVTIChTTkRSVl9QQ01fUkFURV84MDAwIHwgU05EUlZfUENNX1JBVEVfMTEwMjUgfFwKKwlTTkRSVl9QQ01fUkFURV8xNjAwMCB8IFNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfNDQxMDAgfCBcCisJU05EUlZfUENNX1JBVEVfNDgwMDApCisKKyNkZWZpbmUgV004OTkwX0ZPUk1BVFMgKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMjBfM0xFIHxcCisJU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MzMl9MRSkKKworLyoKKyAqIFRoZSBXTTg5OTAgc3VwcG9ydHMgMiBkaWZmZXJlbnQgYW5kIG11dHVhbGx5IGV4Y2x1c2l2ZSBEQUkKKyAqIGNvbmZpZ3VyYXRpb25zLgorICoKKyAqIDEuIEFEQy9EQUMgb24gUHJpbWFyeSBJbnRlcmZhY2UKKyAqIDIuIEFEQyBvbiBQcmltYXJ5IEludGVyZmFjZS9EQUMgb24gc2Vjb25kYXJ5CisgKi8KK3N0cnVjdCBzbmRfc29jX2RhaSB3bTg5OTBfZGFpID0geworLyogQURDL0RBQyBvbiBwcmltYXJ5ICovCisJLm5hbWUgPSAiV004OTkwIEFEQy9EQUMgUHJpbWFyeSIsCisJLmlkID0gMSwKKwkucGxheWJhY2sgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIsCisJCS5jaGFubmVsc19taW4gPSAxLAorCQkuY2hhbm5lbHNfbWF4ID0gMiwKKwkJLnJhdGVzID0gV004OTkwX1JBVEVTLAorCQkuZm9ybWF0cyA9IFdNODk5MF9GT1JNQVRTLH0sCisJLmNhcHR1cmUgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJDYXB0dXJlIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBXTTg5OTBfUkFURVMsCisJCS5mb3JtYXRzID0gV004OTkwX0ZPUk1BVFMsfSwKKwkub3BzID0geworCQkuaHdfcGFyYW1zID0gd204OTkwX2h3X3BhcmFtcyx9LAorCS5kYWlfb3BzID0geworCQkuZGlnaXRhbF9tdXRlID0gd204OTkwX211dGUsCisJCS5zZXRfZm10ID0gd204OTkwX3NldF9kYWlfZm10LAorCQkuc2V0X2Nsa2RpdiA9IHdtODk5MF9zZXRfZGFpX2Nsa2RpdiwKKwkJLnNldF9wbGwgPSB3bTg5OTBfc2V0X2RhaV9wbGwsCisJCS5zZXRfc3lzY2xrID0gd204OTkwX3NldF9kYWlfc3lzY2xrLAorCX0sCit9OworRVhQT1JUX1NZTUJPTF9HUEwod204OTkwX2RhaSk7CisKK3N0YXRpYyBpbnQgd204OTkwX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCS8qIHdlIG9ubHkgbmVlZCB0byBzdXNwZW5kIGlmIHdlIGFyZSBhIHZhbGlkIGNhcmQgKi8KKwlpZiAoIWNvZGVjLT5jYXJkKQorCQlyZXR1cm4gMDsKKworCXdtODk5MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlpbnQgaTsKKwl1OCBkYXRhWzJdOworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCisJLyogd2Ugb25seSBuZWVkIHRvIHJlc3VtZSBpZiB3ZSBhcmUgYSB2YWxpZCBjYXJkICovCisJaWYgKCFjb2RlYy0+Y2FyZCkKKwkJcmV0dXJuIDA7CisKKwkvKiBTeW5jIHJlZ19jYWNoZSB3aXRoIHRoZSBoYXJkd2FyZSAqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODk5MF9yZWcpOyBpKyspIHsKKwkJaWYgKGkgKyAxID09IFdNODk5MF9SRVNFVCkKKwkJCWNvbnRpbnVlOworCQlkYXRhWzBdID0gKChpICsgMSkgPDwgMSkgfCAoKGNhY2hlW2ldID4+IDgpICYgMHgwMDAxKTsKKwkJZGF0YVsxXSA9IGNhY2hlW2ldICYgMHgwMGZmOworCQljb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CisJfQorCisJd204OTkwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBpbml0aWFsaXNlIHRoZSBXTTg5OTAgZHJpdmVyCisgKiByZWdpc3RlciB0aGUgbWl4ZXIgYW5kIGRzcCBpbnRlcmZhY2VzIHdpdGggdGhlIGtlcm5lbAorICovCitzdGF0aWMgaW50IHdtODk5MF9pbml0KHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJdTE2IHJlZzsKKwlpbnQgcmV0ID0gMDsKKworCWNvZGVjLT5uYW1lID0gIldNODk5MCI7CisJY29kZWMtPm93bmVyID0gVEhJU19NT0RVTEU7CisJY29kZWMtPnJlYWQgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGU7CisJY29kZWMtPndyaXRlID0gd204OTkwX3dyaXRlOworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtODk5MF9zZXRfYmlhc19sZXZlbDsKKwljb2RlYy0+ZGFpID0gJndtODk5MF9kYWk7CisJY29kZWMtPm51bV9kYWkgPSAyOworCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFSUkFZX1NJWkUod204OTkwX3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZSA9IGttZW1kdXAod204OTkwX3JlZywgc2l6ZW9mKHdtODk5MF9yZWcpLCBHRlBfS0VSTkVMKTsKKworCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJd204OTkwX3Jlc2V0KGNvZGVjKTsKKworCS8qIHJlZ2lzdGVyIHBjbXMgKi8KKwlyZXQgPSBzbmRfc29jX25ld19wY21zKHNvY2RldiwgU05EUlZfREVGQVVMVF9JRFgxLCBTTkRSVl9ERUZBVUxUX1NUUjEpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAid204OTkwOiBmYWlsZWQgdG8gY3JlYXRlIHBjbXNcbiIpOworCQlnb3RvIHBjbV9lcnI7CisJfQorCisJLyogY2hhcmdlIG91dHB1dCBjYXBzICovCisJY29kZWMtPmJpYXNfbGV2ZWwgPSBTTkRfU09DX0JJQVNfT0ZGOworCXdtODk5MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOworCisJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzQpOworCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0FVRElPX0lOVEVSRkFDRV80LCByZWcgfCBXTTg5OTBfQUxSQ0dQSU8xKTsKKworCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0dQSU8xX0dQSU8yKSAmCisJCX5XTTg5OTBfR1BJTzFfU0VMX01BU0s7CisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfR1BJTzFfR1BJTzIsIHJlZyB8IDEpOworCisJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yKTsKKwl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIHJlZyB8IFdNODk5MF9PUENMS19FTkEpOworCisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfTEVGVF9PVVRQVVRfVk9MVU1FLCAweDUwIHwgKDE8PDgpKTsKKwl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9SSUdIVF9PVVRQVVRfVk9MVU1FLCAweDUwIHwgKDE8PDgpKTsKKworCXdtODk5MF9hZGRfY29udHJvbHMoY29kZWMpOworCXdtODk5MF9hZGRfd2lkZ2V0cyhjb2RlYyk7CisJcmV0ID0gc25kX3NvY19yZWdpc3Rlcl9jYXJkKHNvY2Rldik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ3bTg5OTA6IGZhaWxlZCB0byByZWdpc3RlciBjYXJkXG4iKTsKKwkJZ290byBjYXJkX2VycjsKKwl9CisJcmV0dXJuIHJldDsKKworY2FyZF9lcnI6CisJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKKwlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOworcGNtX2VycjoKKwlrZnJlZShjb2RlYy0+cmVnX2NhY2hlKTsKKwlyZXR1cm4gcmV0OworfQorCisvKiBJZiB0aGUgaTJjIGxheWVyIHdlcmVuJ3Qgc28gYnJva2VuLCB3ZSBjb3VsZCBwYXNzIHRoaXMga2luZCBvZiBkYXRhCisgICBhcm91bmQgKi8KK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKndtODk5MF9zb2NkZXY7CisKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisKKy8qCisgKiBXTTg5MSAyIHdpcmUgYWRkcmVzcyBpcyBkZXRlcm1pbmVkIGJ5IEdQSU81CisgKiBzdGF0ZSBkdXJpbmcgcG93ZXJ1cC4KKyAqICAgIGxvdyAgPSAweDM0CisgKiAgICBoaWdoID0gMHgzNgorICovCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0geyAwLCBJMkNfQ0xJRU5UX0VORCB9OworCisvKiBNYWdpYyBkZWZpbml0aW9uIG9mIGFsbCBvdGhlciB2YXJpYWJsZXMgYW5kIHRoaW5ncyAqLworSTJDX0NMSUVOVF9JTlNNT0Q7CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB3bTg5OTBfaTJjX2RyaXZlcjsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGU7CisKK3N0YXRpYyBpbnQgd204OTkwX2NvZGVjX3Byb2JlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgaW50IGFkZHIsIGludCBraW5kKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gd204OTkwX3NvY2RldjsKKwlzdHJ1Y3Qgd204OTkwX3NldHVwX2RhdGEgKnNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJc3RydWN0IGkyY19jbGllbnQgKmkyYzsKKwlpbnQgcmV0OworCisJaWYgKGFkZHIgIT0gc2V0dXAtPmkyY19hZGRyZXNzKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWNsaWVudF90ZW1wbGF0ZS5hZGFwdGVyID0gYWRhcDsKKwljbGllbnRfdGVtcGxhdGUuYWRkciA9IGFkZHI7CisKKwlpMmMgPSAga21lbWR1cCgmY2xpZW50X3RlbXBsYXRlLCBzaXplb2YoY2xpZW50X3RlbXBsYXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGkyYyA9PSBOVUxMKSB7CisJCWtmcmVlKGNvZGVjKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCWkyY19zZXRfY2xpZW50ZGF0YShpMmMsIGNvZGVjKTsKKwljb2RlYy0+Y29udHJvbF9kYXRhID0gaTJjOworCisJcmV0ID0gaTJjX2F0dGFjaF9jbGllbnQoaTJjKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CisJCWdvdG8gZXJyOworCX0KKworCXJldCA9IHdtODk5MF9pbml0KHNvY2Rldik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg5OTBcbiIpOworCQlnb3RvIGVycjsKKwl9CisJcmV0dXJuIHJldDsKKworZXJyOgorCWtmcmVlKGNvZGVjKTsKKwlrZnJlZShpMmMpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX2kyY19kZXRhY2goc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKwlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOworCWtmcmVlKGNvZGVjLT5yZWdfY2FjaGUpOworCWtmcmVlKGNsaWVudCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204OTkwX2kyY19hdHRhY2goc3RydWN0IGkyY19hZGFwdGVyICphZGFwKQoreworCXJldHVybiBpMmNfcHJvYmUoYWRhcCwgJmFkZHJfZGF0YSwgd204OTkwX2NvZGVjX3Byb2JlKTsKK30KKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHdtODk5MF9pMmNfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gIldNODk5MCBJMkMgQ29kZWMiLAorCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwl9LAorCS5hdHRhY2hfYWRhcHRlciA9IHdtODk5MF9pMmNfYXR0YWNoLAorCS5kZXRhY2hfY2xpZW50ID0gIHdtODk5MF9pMmNfZGV0YWNoLAorCS5jb21tYW5kID0gICAgICAgIE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlID0geworCS5uYW1lID0gICAiV004OTkwIiwKKwkuZHJpdmVyID0gJndtODk5MF9pMmNfZHJpdmVyLAorfTsKKyNlbmRpZgorCitzdGF0aWMgaW50IHdtODk5MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHdtODk5MF9zZXR1cF9kYXRhICpzZXR1cDsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7CisJc3RydWN0IHdtODk5MF9wcml2ICp3bTg5OTA7CisJaW50IHJldCA9IDA7CisKKwlwcl9pbmZvKCJXTTg5OTAgQXVkaW8gQ29kZWMgJXNcbiIsIFdNODk5MF9WRVJTSU9OKTsKKworCXNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOworCWNvZGVjID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zb2NfY29kZWMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoY29kZWMgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwl3bTg5OTAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgd204OTkwX3ByaXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAod204OTkwID09IE5VTEwpIHsKKwkJa2ZyZWUoY29kZWMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwljb2RlYy0+cHJpdmF0ZV9kYXRhID0gd204OTkwOworCXNvY2Rldi0+Y29kZWMgPSBjb2RlYzsKKwltdXRleF9pbml0KCZjb2RlYy0+bXV0ZXgpOworCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV93aWRnZXRzKTsKKwlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fcGF0aHMpOworCXdtODk5MF9zb2NkZXYgPSBzb2NkZXY7CisKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaWYgKHNldHVwLT5pMmNfYWRkcmVzcykgeworCQlub3JtYWxfaTJjWzBdID0gc2V0dXAtPmkyY19hZGRyZXNzOworCQljb2RlYy0+aHdfd3JpdGUgPSAoaHdfd3JpdGVfdClpMmNfbWFzdGVyX3NlbmQ7CisJCXJldCA9IGkyY19hZGRfZHJpdmVyKCZ3bTg5OTBfaTJjX2RyaXZlcik7CisJCWlmIChyZXQgIT0gMCkKKwkJCXByaW50ayhLRVJOX0VSUiAiY2FuJ3QgYWRkIGkyYyBkcml2ZXIiKTsKKwl9CisjZWxzZQorCQkvKiBBZGQgb3RoZXIgaW50ZXJmYWNlcyBoZXJlICovCisjZW5kaWYKKwlyZXR1cm4gcmV0OworfQorCisvKiBwb3dlciBkb3duIGNoaXAgKi8KK3N0YXRpYyBpbnQgd204OTkwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCWlmIChjb2RlYy0+Y29udHJvbF9kYXRhKQorCQl3bTg5OTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOworCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaTJjX2RlbF9kcml2ZXIoJndtODk5MF9pMmNfZHJpdmVyKTsKKyNlbmRpZgorCWtmcmVlKGNvZGVjLT5wcml2YXRlX2RhdGEpOworCWtmcmVlKGNvZGVjKTsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg5OTAgPSB7CisJLnByb2JlID0Jd204OTkwX3Byb2JlLAorCS5yZW1vdmUgPQl3bTg5OTBfcmVtb3ZlLAorCS5zdXNwZW5kID0Jd204OTkwX3N1c3BlbmQsCisJLnJlc3VtZSA9CXdtODk5MF9yZXN1bWUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoc29jX2NvZGVjX2Rldl93bTg5OTApOworCitNT0RVTEVfREVTQ1JJUFRJT04oIkFTb0MgV004OTkwIGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiTGlhbSBHaXJkd29vZCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg5OTAuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTkwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJlYTU3NAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTkwLmgKQEAgLTAsMCArMSw4MzIgQEAKKy8qCisgKiB3bTg5OTAuaCAgLS0gIGF1ZGlvIGRyaXZlciBmb3IgV004OTkwCisgKgorICogQ29weXJpZ2h0IDIwMDcgV29sZnNvbiBNaWNyb2VsZWN0cm9uaWNzIFBMQy4KKyAqIEF1dGhvcjogR3JhZW1lIEdyZWdvcnkKKyAqICAgICAgICAgZ3JhZW1lLmdyZWdvcnlAd29sZnNvbm1pY3JvLmNvbSBvciBsaW51eEB3b2xmc29ubWljcm8uY29tCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSAgaXQgYW5kL29yIG1vZGlmeSBpdAorICogIHVuZGVyICB0aGUgdGVybXMgb2YgIHRoZSBHTlUgR2VuZXJhbCAgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgorICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpZm5kZWYgX19XTTg5OTBSRUdJU1RFUkRFRlNfSF9fCisjZGVmaW5lIF9fV004OTkwUkVHSVNURVJERUZTX0hfXworCisvKgorICogUmVnaXN0ZXIgdmFsdWVzLgorICovCisjZGVmaW5lIFdNODk5MF9SRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCisjZGVmaW5lIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMgICAgICAgICAgICAgICAweDAzCisjZGVmaW5lIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMSAgICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMiAgICAgICAgICAgICAgICAweDA1CisjZGVmaW5lIFdNODk5MF9DTE9DS0lOR18xICAgICAgICAgICAgICAgICAgICAgICAweDA2CisjZGVmaW5lIFdNODk5MF9DTE9DS0lOR18yICAgICAgICAgICAgICAgICAgICAgICAweDA3CisjZGVmaW5lIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMyAgICAgICAgICAgICAgICAweDA4CisjZGVmaW5lIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfNCAgICAgICAgICAgICAgICAweDA5CisjZGVmaW5lIFdNODk5MF9EQUNfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAweDBBCisjZGVmaW5lIFdNODk5MF9MRUZUX0RBQ19ESUdJVEFMX1ZPTFVNRSAgICAgICAgICAweDBCCisjZGVmaW5lIFdNODk5MF9SSUdIVF9EQUNfRElHSVRBTF9WT0xVTUUgICAgICAgICAweDBDCisjZGVmaW5lIFdNODk5MF9ESUdJVEFMX1NJREVfVE9ORSAgICAgICAgICAgICAgICAweDBECisjZGVmaW5lIFdNODk5MF9BRENfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAweDBFCisjZGVmaW5lIFdNODk5MF9MRUZUX0FEQ19ESUdJVEFMX1ZPTFVNRSAgICAgICAgICAweDBGCisjZGVmaW5lIFdNODk5MF9SSUdIVF9BRENfRElHSVRBTF9WT0xVTUUgICAgICAgICAweDEwCisjZGVmaW5lIFdNODk5MF9HUElPX0NUUkxfMSAgICAgICAgICAgICAgICAgICAgICAweDEyCisjZGVmaW5lIFdNODk5MF9HUElPMV9HUElPMiAgICAgICAgICAgICAgICAgICAgICAweDEzCisjZGVmaW5lIFdNODk5MF9HUElPM19HUElPNCAgICAgICAgICAgICAgICAgICAgICAweDE0CisjZGVmaW5lIFdNODk5MF9HUElPNV9HUElPNiAgICAgICAgICAgICAgICAgICAgICAweDE1CisjZGVmaW5lIFdNODk5MF9HUElPQ1RSTF8yICAgICAgICAgICAgICAgICAgICAgICAweDE2CisjZGVmaW5lIFdNODk5MF9HUElPX1BPTCAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CisjZGVmaW5lIFdNODk5MF9MRUZUX0xJTkVfSU5QVVRfMV8yX1ZPTFVNRSAgICAgICAweDE4CisjZGVmaW5lIFdNODk5MF9MRUZUX0xJTkVfSU5QVVRfM180X1ZPTFVNRSAgICAgICAweDE5CisjZGVmaW5lIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUgICAgICAweDFBCisjZGVmaW5lIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzNfNF9WT0xVTUUgICAgICAweDFCCisjZGVmaW5lIFdNODk5MF9MRUZUX09VVFBVVF9WT0xVTUUgICAgICAgICAgICAgICAweDFDCisjZGVmaW5lIFdNODk5MF9SSUdIVF9PVVRQVVRfVk9MVU1FICAgICAgICAgICAgICAweDFECisjZGVmaW5lIFdNODk5MF9MSU5FX09VVFBVVFNfVk9MVU1FICAgICAgICAgICAgICAweDFFCisjZGVmaW5lIFdNODk5MF9PVVQzXzRfVk9MVU1FICAgICAgICAgICAgICAgICAgICAweDFGCisjZGVmaW5lIFdNODk5MF9MRUZUX09QR0FfVk9MVU1FICAgICAgICAgICAgICAgICAweDIwCisjZGVmaW5lIFdNODk5MF9SSUdIVF9PUEdBX1ZPTFVNRSAgICAgICAgICAgICAgICAweDIxCisjZGVmaW5lIFdNODk5MF9TUEVBS0VSX1ZPTFVNRSAgICAgICAgICAgICAgICAgICAweDIyCisjZGVmaW5lIFdNODk5MF9DTEFTU0QxICAgICAgICAgICAgICAgICAgICAgICAgICAweDIzCisjZGVmaW5lIFdNODk5MF9DTEFTU0QzICAgICAgICAgICAgICAgICAgICAgICAgICAweDI1CisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjEgICAgICAgICAgICAgICAgICAgICAweDI3CisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjIgICAgICAgICAgICAgICAgICAgICAweDI4CisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjMgICAgICAgICAgICAgICAgICAgICAweDI5CisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjQgICAgICAgICAgICAgICAgICAgICAweDJBCisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjUgICAgICAgICAgICAgICAgICAgICAweDJCCisjZGVmaW5lIFdNODk5MF9JTlBVVF9NSVhFUjYgICAgICAgICAgICAgICAgICAgICAweDJDCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVIxICAgICAgICAgICAgICAgICAgICAweDJECisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVIyICAgICAgICAgICAgICAgICAgICAweDJFCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVIzICAgICAgICAgICAgICAgICAgICAweDJGCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVI0ICAgICAgICAgICAgICAgICAgICAweDMwCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVI1ICAgICAgICAgICAgICAgICAgICAweDMxCisjZGVmaW5lIFdNODk5MF9PVVRQVVRfTUlYRVI2ICAgICAgICAgICAgICAgICAgICAweDMyCisjZGVmaW5lIFdNODk5MF9PVVQzXzRfTUlYRVIgICAgICAgICAgICAgICAgICAgICAweDMzCisjZGVmaW5lIFdNODk5MF9MSU5FX01JWEVSMSAgICAgICAgICAgICAgICAgICAgICAweDM0CisjZGVmaW5lIFdNODk5MF9MSU5FX01JWEVSMiAgICAgICAgICAgICAgICAgICAgICAweDM1CisjZGVmaW5lIFdNODk5MF9TUEVBS0VSX01JWEVSICAgICAgICAgICAgICAgICAgICAweDM2CisjZGVmaW5lIFdNODk5MF9BRERJVElPTkFMX0NPTlRST0wgICAgICAgICAgICAgICAweDM3CisjZGVmaW5lIFdNODk5MF9BTlRJUE9QMSAgICAgICAgICAgICAgICAgICAgICAgICAweDM4CisjZGVmaW5lIFdNODk5MF9BTlRJUE9QMiAgICAgICAgICAgICAgICAgICAgICAgICAweDM5CisjZGVmaW5lIFdNODk5MF9NSUNCSUFTICAgICAgICAgICAgICAgICAgICAgICAgICAweDNBCisjZGVmaW5lIFdNODk5MF9QTEwxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNDCisjZGVmaW5lIFdNODk5MF9QTEwyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNECisjZGVmaW5lIFdNODk5MF9QTEwzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNFCisjZGVmaW5lIFdNODk5MF9JTlREUklWQklUUwkJCTB4M0YKKworI2RlZmluZSBXTTg5OTBfUkVHSVNURVJfQ09VTlQgICAgICAgICAgICAgICAgICAgNjAKKyNkZWZpbmUgV004OTkwX01BWF9SRUdJU1RFUiAgICAgICAgICAgICAgICAgICAgIDB4M0YKKworLyoKKyAqIEZpZWxkIERlZmluaXRpb25zLgorICovCisKKy8qCisgKiBSMCAoMHgwMCkgLSBSZXNldAorICovCisjZGVmaW5lIFdNODk5MF9TV19SRVNFVF9DSElQX0lEX01BU0sgICAgICAgICAgICAweEZGRkYgIC8qIFNXX1JFU0VUX0NISVBfSUQgKi8KKworLyoKKyAqIFIxICgweDAxKSAtIFBvd2VyIE1hbmFnZW1lbnQgKDEpCisgKi8KKyNkZWZpbmUgV004OTkwX1NQS19FTkEgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCAgLyogU1BLX0VOQSAqLworI2RlZmluZSBXTTg5OTBfU1BLX0VOQV9CSVQJCQkxMgorI2RlZmluZSBXTTg5OTBfT1VUM19FTkEgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwICAvKiBPVVQzX0VOQSAqLworI2RlZmluZSBXTTg5OTBfT1VUM19FTkFfQklUCQkJMTEKKyNkZWZpbmUgV004OTkwX09VVDRfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMCAgLyogT1VUNF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX09VVDRfRU5BX0JJVAkJCTEwCisjZGVmaW5lIFdNODk5MF9MT1VUX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAgIC8qIExPVVRfRU5BICovCisjZGVmaW5lIFdNODk5MF9MT1VUX0VOQV9CSVQJCQk5CisjZGVmaW5lIFdNODk5MF9ST1VUX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIFJPVVRfRU5BICovCisjZGVmaW5lIFdNODk5MF9ST1VUX0VOQV9CSVQJCQk4CisjZGVmaW5lIFdNODk5MF9NSUNCSUFTX0VOQSAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIE1JQ0JJQVNfRU5BICovCisjZGVmaW5lIFdNODk5MF9NSUNCSUFTX0VOQV9CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9WTUlEX01PREVfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDYgIC8qIFZNSURfTU9ERSAtIFsyOjFdICovCisjZGVmaW5lIFdNODk5MF9WUkVGX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFZSRUZfRU5BICovCisjZGVmaW5lIFdNODk5MF9WUkVGX0VOQV9CSVQJCQkwCisKKy8qCisgKiBSMiAoMHgwMikgLSBQb3dlciBNYW5hZ2VtZW50ICgyKQorICovCisjZGVmaW5lIFdNODk5MF9QTExfRU5BICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIFBMTF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1BMTF9FTkFfQklUCQkJMTUKKyNkZWZpbmUgV004OTkwX1RTSFVUX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogVFNIVVRfRU5BICovCisjZGVmaW5lIFdNODk5MF9UU0hVVF9FTkFfQklUCQkJMTQKKyNkZWZpbmUgV004OTkwX1RTSFVUX09QRElTICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogVFNIVVRfT1BESVMgKi8KKyNkZWZpbmUgV004OTkwX1RTSFVUX09QRElTX0JJVAkJCTEzCisjZGVmaW5lIFdNODk5MF9PUENMS19FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAgIC8qIE9QQ0xLX0VOQSAqLworI2RlZmluZSBXTTg5OTBfT1BDTEtfRU5BX0JJVAkJCTExCisjZGVmaW5lIFdNODk5MF9BSU5MX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAgIC8qIEFJTkxfRU5BICovCisjZGVmaW5lIFdNODk5MF9BSU5MX0VOQV9CSVQJCQk5CisjZGVmaW5lIFdNODk5MF9BSU5SX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIEFJTlJfRU5BICovCisjZGVmaW5lIFdNODk5MF9BSU5SX0VOQV9CSVQJCQk4CisjZGVmaW5lIFdNODk5MF9MSU4zNF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExJTjM0X0VOQSAqLworI2RlZmluZSBXTTg5OTBfTElOMzRfRU5BX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0xJTjEyX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTElOMTJfRU5BICovCisjZGVmaW5lIFdNODk5MF9MSU4xMl9FTkFfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfUklOMzRfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBSSU4zNF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1JJTjM0X0VOQV9CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9SSU4xMl9FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIFJJTjEyX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUklOMTJfRU5BX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX0FEQ0xfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogQURDTF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0FEQ0xfRU5BX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX0FEQ1JfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogQURDUl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0FEQ1JfRU5BX0JJVAkJCTAKKworLyoKKyAqIFIzICgweDAzKSAtIFBvd2VyIE1hbmFnZW1lbnQgKDMpCisgKi8KKyNkZWZpbmUgV004OTkwX0xPTl9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogTE9OX0VOQSAqLworI2RlZmluZSBXTTg5OTBfTE9OX0VOQV9CSVQJCQkxMworI2RlZmluZSBXTTg5OTBfTE9QX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwICAvKiBMT1BfRU5BICovCisjZGVmaW5lIFdNODk5MF9MT1BfRU5BX0JJVAkJCTEyCisjZGVmaW5lIFdNODk5MF9ST05fRU5BICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAgIC8qIFJPTl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1JPTl9FTkFfQklUCQkJMTEKKyNkZWZpbmUgV004OTkwX1JPUF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMCAgLyogUk9QX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUk9QX0VOQV9CSVQJCQkxMAorI2RlZmluZSBXTTg5OTBfTE9QR0FfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBMT1BHQV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0xPUEdBX0VOQV9CSVQJCQk3CisjZGVmaW5lIFdNODk5MF9ST1BHQV9FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIFJPUEdBX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUk9QR0FfRU5BX0JJVAkJCTYKKyNkZWZpbmUgV004OTkwX0xPTUlYX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogTE9NSVhfRU5BICovCisjZGVmaW5lIFdNODk5MF9MT01JWF9FTkFfQklUCQkJNQorI2RlZmluZSBXTTg5OTBfUk9NSVhfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBST01JWF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1JPTUlYX0VOQV9CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9EQUNMX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIERBQ0xfRU5BICovCisjZGVmaW5lIFdNODk5MF9EQUNMX0VOQV9CSVQJCQkxCisjZGVmaW5lIFdNODk5MF9EQUNSX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIERBQ1JfRU5BICovCisjZGVmaW5lIFdNODk5MF9EQUNSX0VOQV9CSVQJCQkwCisKKy8qCisgKiBSNCAoMHgwNCkgLSBBdWRpbyBJbnRlcmZhY2UgKDEpCisgKi8KKyNkZWZpbmUgV004OTkwX0FJRkFEQ0xfU1JDICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogQUlGQURDTF9TUkMgKi8KKyNkZWZpbmUgV004OTkwX0FJRkFEQ1JfU1JDICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogQUlGQURDUl9TUkMgKi8KKyNkZWZpbmUgV004OTkwX0FJRkFEQ19URE0gICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogQUlGQURDX1RETSAqLworI2RlZmluZSBXTTg5OTBfQUlGQURDX1RETV9DSEFOICAgICAgICAgICAgICAgICAgMHgxMDAwICAvKiBBSUZBRENfVERNX0NIQU4gKi8KKyNkZWZpbmUgV004OTkwX0FJRl9CQ0xLX0lOViAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogQUlGX0JDTEtfSU5WICovCisjZGVmaW5lIFdNODk5MF9BSUZfTFJDTEtfSU5WICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIEFJRl9MUkNMS19JTlYgKi8KKyNkZWZpbmUgV004OTkwX0FJRl9XTF9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MCAgLyogQUlGX1dMIC0gWzY6NV0gKi8KKyNkZWZpbmUgV004OTkwX0FJRl9XTF8xNkJJVFMJCQkoMCA8PCA1KQorI2RlZmluZSBXTTg5OTBfQUlGX1dMXzIwQklUUwkJCSgxIDw8IDUpCisjZGVmaW5lIFdNODk5MF9BSUZfV0xfMjRCSVRTCQkJKDIgPDwgNSkKKyNkZWZpbmUgV004OTkwX0FJRl9XTF8zMkJJVFMJCQkoMyA8PCA1KQorI2RlZmluZSBXTTg5OTBfQUlGX0ZNVF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDE4ICAvKiBBSUZfRk1UIC0gWzQ6M10gKi8KKyNkZWZpbmUgV004OTkwX0FJRl9UTUZfUklHSFRKCQkJKDAgPDwgMykKKyNkZWZpbmUgV004OTkwX0FJRl9UTUZfTEVGVEoJCQkoMSA8PCAzKQorI2RlZmluZSBXTTg5OTBfQUlGX1RNRl9JMlMJCQkoMiA8PCAzKQorI2RlZmluZSBXTTg5OTBfQUlGX1RNRl9EU1AJCQkoMyA8PCAzKQorCisvKgorICogUjUgKDB4MDUpIC0gQXVkaW8gSW50ZXJmYWNlICgyKQorICovCisjZGVmaW5lIFdNODk5MF9EQUNMX1NSQyAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIERBQ0xfU1JDICovCisjZGVmaW5lIFdNODk5MF9EQUNSX1NSQyAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIERBQ1JfU1JDICovCisjZGVmaW5lIFdNODk5MF9BSUZEQUNfVERNICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEFJRkRBQ19URE0gKi8KKyNkZWZpbmUgV004OTkwX0FJRkRBQ19URE1fQ0hBTiAgICAgICAgICAgICAgICAgIDB4MTAwMCAgLyogQUlGREFDX1RETV9DSEFOICovCisjZGVmaW5lIFdNODk5MF9EQUNfQk9PU1RfTUFTSyAgICAgICAgICAgICAgICAgICAweDBDMDAgIC8qIERBQ19CT09TVCAqLworI2RlZmluZSBXTTg5OTBfREFDX0NPTVAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBEQUNfQ09NUCAqLworI2RlZmluZSBXTTg5OTBfREFDX0NPTVBNT0RFICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBEQUNfQ09NUE1PREUgKi8KKyNkZWZpbmUgV004OTkwX0FEQ19DT01QICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogQURDX0NPTVAgKi8KKyNkZWZpbmUgV004OTkwX0FEQ19DT01QTU9ERSAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogQURDX0NPTVBNT0RFICovCisjZGVmaW5lIFdNODk5MF9MT09QQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIExPT1BCQUNLICovCisKKy8qCisgKiBSNiAoMHgwNikgLSBDbG9ja2luZyAoMSkKKyAqLworI2RlZmluZSBXTTg5OTBfVE9DTEtfUkFURSAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwICAvKiBUT0NMS19SQVRFICovCisjZGVmaW5lIFdNODk5MF9UT0NMS19FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIFRPQ0xLX0VOQSAqLworI2RlZmluZSBXTTg5OTBfT1BDTEtESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgxRTAwICAvKiBPUENMS0RJViAtIFsxMjo5XSAqLworI2RlZmluZSBXTTg5OTBfRENMS0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMUMwICAvKiBEQ0xLRElWIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX0JDTEtfRElWX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAxRSAgLyogQkNMS19ESVYgLSBbNDoxXSAqLworI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMQkJCSgweDAgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzFfNQkJCSgweDEgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzIJCQkoMHgyIDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl8zCQkJKDB4MyA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfNAkJCSgweDQgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzVfNQkJCSgweDUgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzYJCQkoMHg2IDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl84CQkJKDB4NyA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMTEJCQkoMHg4IDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl8xMgkJCSgweDkgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzE2CQkJKDB4QSA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMjIJCQkoMHhCIDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl8yNAkJCSgweEMgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzMyCQkJKDB4RCA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfNDQJCQkoMHhFIDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl80OAkJCSgweEYgPDwgMSkKKworLyoKKyAqIFI3ICgweDA3KSAtIENsb2NraW5nICgyKQorICovCisjZGVmaW5lIFdNODk5MF9NQ0xLX1NSQyAgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIE1DTEtfU1JDICovCisjZGVmaW5lIFdNODk5MF9TWVNDTEtfU1JDICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIFNZU0NMS19TUkMgKi8KKyNkZWZpbmUgV004OTkwX0NMS19GT1JDRSAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogQ0xLX0ZPUkNFICovCisjZGVmaW5lIFdNODk5MF9NQ0xLX0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAweDE4MDAgIC8qIE1DTEtfRElWIC0gWzEyOjExXSAqLworI2RlZmluZSBXTTg5OTBfTUNMS19ESVZfMQkJCSgwIDw8IDExKQorI2RlZmluZSBXTTg5OTBfTUNMS19ESVZfMgkJCSgyIDw8IDExKQorI2RlZmluZSBXTTg5OTBfTUNMS19JTlYgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwICAvKiBNQ0xLX0lOViAqLworI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMEUwICAvKiBBRENfQ0xLRElWICovCisjZGVmaW5lIFdNODk5MF9BRENfQ0xLRElWXzEJCQkoMCA8PCA1KQorI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl8xXzUJCQkoMSA8PCA1KQorI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl8yCQkJKDIgPDwgNSkKKyNkZWZpbmUgV004OTkwX0FEQ19DTEtESVZfMwkJCSgzIDw8IDUpCisjZGVmaW5lIFdNODk5MF9BRENfQ0xLRElWXzQJCQkoNCA8PCA1KQorI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl81XzUJCQkoNSA8PCA1KQorI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl82CQkJKDYgPDwgNSkKKyNkZWZpbmUgV004OTkwX0RBQ19DTEtESVZfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAxQyAgLyogREFDX0NMS0RJViAtIFs0OjJdICovCisjZGVmaW5lIFdNODk5MF9EQUNfQ0xLRElWXzEJCQkoMCA8PCAyKQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl8xXzUJCQkoMSA8PCAyKQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl8yCQkJKDIgPDwgMikKKyNkZWZpbmUgV004OTkwX0RBQ19DTEtESVZfMwkJCSgzIDw8IDIpCisjZGVmaW5lIFdNODk5MF9EQUNfQ0xLRElWXzQJCQkoNCA8PCAyKQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl81XzUJCQkoNSA8PCAyKQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl82CQkJKDYgPDwgMikKKworLyoKKyAqIFI4ICgweDA4KSAtIEF1ZGlvIEludGVyZmFjZSAoMykKKyAqLworI2RlZmluZSBXTTg5OTBfQUlGX01TVFIxICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwICAvKiBBSUZfTVNUUjEgKi8KKyNkZWZpbmUgV004OTkwX0FJRl9NU1RSMiAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogQUlGX01TVFIyICovCisjZGVmaW5lIFdNODk5MF9BSUZfU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEFJRl9TRUwgKi8KKyNkZWZpbmUgV004OTkwX0FEQ0xSQ19ESVIgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMCAgLyogQURDTFJDX0RJUiAqLworI2RlZmluZSBXTTg5OTBfQURDTFJDX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgMHgwN0ZGICAvKiBBRENMUkNfUkFURSAqLworCisvKgorICogUjkgKDB4MDkpIC0gQXVkaW8gSW50ZXJmYWNlICg0KQorICovCisjZGVmaW5lIFdNODk5MF9BTFJDR1BJTzEgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIEFMUkNHUElPMSAqLworI2RlZmluZSBXTTg5OTBfQUxSQ0JHUElPNiAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBBTFJDQkdQSU82ICovCisjZGVmaW5lIFdNODk5MF9BSUZfVFJJUyAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEFJRl9UUklTICovCisjZGVmaW5lIFdNODk5MF9EQUNMUkNfRElSICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAgIC8qIERBQ0xSQ19ESVIgKi8KKyNkZWZpbmUgV004OTkwX0RBQ0xSQ19SQVRFX01BU0sgICAgICAgICAgICAgICAgIDB4MDdGRiAgLyogREFDTFJDX1JBVEUgKi8KKworLyoKKyAqIFIxMCAoMHgwQSkgLSBEQUMgQ1RSTAorICovCisjZGVmaW5lIFdNODk5MF9BSUZfTFJDTEtSQVRFICAgICAgICAgICAgICAgICAgICAweDA0MDAgIC8qIEFJRl9MUkNMS1JBVEUgKi8KKyNkZWZpbmUgV004OTkwX0RBQ19NT05PICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMCAgLyogREFDX01PTk8gKi8KKyNkZWZpbmUgV004OTkwX0RBQ19TQl9GSUxUICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogREFDX1NCX0ZJTFQgKi8KKyNkZWZpbmUgV004OTkwX0RBQ19NVVRFUkFURSAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogREFDX01VVEVSQVRFICovCisjZGVmaW5lIFdNODk5MF9EQUNfTVVURU1PREUgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIERBQ19NVVRFTU9ERSAqLworI2RlZmluZSBXTTg5OTBfREVFTVBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwICAvKiBERUVNUCAtIFs1OjRdICovCisjZGVmaW5lIFdNODk5MF9EQUNfTVVURSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIERBQ19NVVRFICovCisjZGVmaW5lIFdNODk5MF9EQUNMX0RBVElOViAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIERBQ0xfREFUSU5WICovCisjZGVmaW5lIFdNODk5MF9EQUNSX0RBVElOViAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIERBQ1JfREFUSU5WICovCisKKy8qCisgKiBSMTEgKDB4MEIpIC0gTGVmdCBEQUMgRGlnaXRhbCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfREFDX1ZVICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBEQUNfVlUgKi8KKyNkZWZpbmUgV004OTkwX0RBQ0xfVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDBGRiAgLyogREFDTF9WT0wgLSBbNzowXSAqLworI2RlZmluZSBXTTg5OTBfREFDTF9WT0xfU0hJRlQJCQkwCisvKgorICogUjEyICgweDBDKSAtIFJpZ2h0IERBQyBEaWdpdGFsIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9EQUNfVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIERBQ19WVSAqLworI2RlZmluZSBXTTg5OTBfREFDUl9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMEZGICAvKiBEQUNSX1ZPTCAtIFs3OjBdICovCisjZGVmaW5lIFdNODk5MF9EQUNSX1ZPTF9TSElGVAkJCTAKKy8qCisgKiBSMTMgKDB4MEQpIC0gRGlnaXRhbCBTaWRlIFRvbmUKKyAqLworI2RlZmluZSBXTTg5OTBfQURDTF9EQUNfU1ZPTF9NQVNLICAgICAgICAgICAgICAgMHgwRiAgLyogQURDTF9EQUNfU1ZPTCAqLworI2RlZmluZSBXTTg5OTBfQURDTF9EQUNfU1ZPTF9TSElGVAkJOQorI2RlZmluZSBXTTg5OTBfQURDUl9EQUNfU1ZPTF9NQVNLICAgICAgICAgICAgICAgMHgwRiAgLyogQURDUl9EQUNfU1ZPTCAqLworI2RlZmluZSBXTTg5OTBfQURDUl9EQUNfU1ZPTF9TSElGVAkJNQorI2RlZmluZSBXTTg5OTBfQURDX1RPX0RBQ0xfTUFTSyAgICAgICAgICAgICAgICAgMHgwMyAgLyogQURDX1RPX0RBQ0wgLSBbMzoyXSAqLworI2RlZmluZSBXTTg5OTBfQURDX1RPX0RBQ0xfU0hJRlQJCTIKKyNkZWZpbmUgV004OTkwX0FEQ19UT19EQUNSX01BU0sgICAgICAgICAgICAgICAgIDB4MDMgIC8qIEFEQ19UT19EQUNSIC0gWzE6MF0gKi8KKyNkZWZpbmUgV004OTkwX0FEQ19UT19EQUNSX1NISUZUCQkwCisKKy8qCisgKiBSMTQgKDB4MEUpIC0gQURDIENUUkwKKyAqLworI2RlZmluZSBXTTg5OTBfQURDX0hQRl9FTkEgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBBRENfSFBGX0VOQSAqLworI2RlZmluZSBXTTg5OTBfQURDX0hQRl9FTkFfQklUCQkJOAorI2RlZmluZSBXTTg5OTBfQURDX0hQRl9DVVRfTUFTSyAgICAgICAgICAgICAgICAgMHgwMyAgLyogQURDX0hQRl9DVVQgLSBbNjo1XSAqLworI2RlZmluZSBXTTg5OTBfQURDX0hQRl9DVVRfU0hJRlQJCTUKKyNkZWZpbmUgV004OTkwX0FEQ0xfREFUSU5WICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogQURDTF9EQVRJTlYgKi8KKyNkZWZpbmUgV004OTkwX0FEQ0xfREFUSU5WX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX0FEQ1JfREFUSU5WICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogQURDUl9EQVRJTlYgKi8KKyNkZWZpbmUgV004OTkwX0FEQ1JfREFUSU5WX0JJVAkJCTAKKworLyoKKyAqIFIxNSAoMHgwRikgLSBMZWZ0IEFEQyBEaWdpdGFsIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9BRENfVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIEFEQ19WVSAqLworI2RlZmluZSBXTTg5OTBfQURDTF9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMEZGICAvKiBBRENMX1ZPTCAtIFs3OjBdICovCisjZGVmaW5lIFdNODk5MF9BRENMX1ZPTF9TSElGVAkJCTAKKworLyoKKyAqIFIxNiAoMHgxMCkgLSBSaWdodCBBREMgRGlnaXRhbCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfQURDX1ZVICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBBRENfVlUgKi8KKyNkZWZpbmUgV004OTkwX0FEQ1JfVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDBGRiAgLyogQURDUl9WT0wgLSBbNzowXSAqLworI2RlZmluZSBXTTg5OTBfQURDUl9WT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSMTggKDB4MTIpIC0gR1BJTyBDVFJMIDEKKyAqLworI2RlZmluZSBXTTg5OTBfSVJRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwICAvKiBJUlEgKi8KKyNkZWZpbmUgV004OTkwX1RFTVBPSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMCAgLyogVEVNUE9LICovCisjZGVmaW5lIFdNODk5MF9NSUNTSFJUICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAgIC8qIE1JQ1NIUlQgKi8KKyNkZWZpbmUgV004OTkwX01JQ0RFVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMCAgLyogTUlDREVUICovCisjZGVmaW5lIFdNODk5MF9QTExfTENLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIFBMTF9MQ0sgKi8KKyNkZWZpbmUgV004OTkwX0dQSThfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogR1BJOF9TVEFUVVMgKi8KKyNkZWZpbmUgV004OTkwX0dQSTdfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogR1BJN19TVEFUVVMgKi8KKyNkZWZpbmUgV004OTkwX0dQSU82X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzZfU1RBVFVTICovCisjZGVmaW5lIFdNODk5MF9HUElPNV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIEdQSU81X1NUQVRVUyAqLworI2RlZmluZSBXTTg5OTBfR1BJTzRfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBHUElPNF9TVEFUVVMgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogR1BJTzNfU1RBVFVTICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIEdQSU8yX1NUQVRVUyAqLworI2RlZmluZSBXTTg5OTBfR1BJTzFfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBHUElPMV9TVEFUVVMgKi8KKworLyoKKyAqIFIxOSAoMHgxMykgLSBHUElPMSAmIEdQSU8yCisgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8yX0RFQl9FTkEgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogR1BJTzJfREVCX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzJfSVJRX0VOQSAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBHUElPMl9JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9QVSAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEdQSU8yX1BVICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9QRCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAgIC8qIEdQSU8yX1BEICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDBGMDAgIC8qIEdQSU8yX1NFTCAtIFsxMTo4XSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzFfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBHUElPMV9ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPMV9JUlFfRU5BICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIEdQSU8xX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8xX1BVICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzFfUFUgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8xX1BEICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJTzFfUEQgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8xX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwRiAgLyogR1BJTzFfU0VMIC0gWzM6MF0gKi8KKworLyoKKyAqIFIyMCAoMHgxNCkgLSBHUElPMyAmIEdQSU80CisgKi8KKyNkZWZpbmUgV004OTkwX0dQSU80X0RFQl9FTkEgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogR1BJTzRfREVCX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzRfSVJRX0VOQSAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBHUElPNF9JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPNF9QVSAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEdQSU80X1BVICovCisjZGVmaW5lIFdNODk5MF9HUElPNF9QRCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAgIC8qIEdQSU80X1BEICovCisjZGVmaW5lIFdNODk5MF9HUElPNF9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDBGMDAgIC8qIEdQSU80X1NFTCAtIFsxMTo4XSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzNfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBHUElPM19ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPM19JUlFfRU5BICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIEdQSU8zX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1BVICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzNfUFUgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1BEICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJTzNfUEQgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwRiAgLyogR1BJTzNfU0VMIC0gWzM6MF0gKi8KKworLyoKKyAqIFIyMSAoMHgxNSkgLSBHUElPNSAmIEdQSU82CisgKi8KKyNkZWZpbmUgV004OTkwX0dQSU82X0RFQl9FTkEgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogR1BJTzZfREVCX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzZfSVJRX0VOQSAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBHUElPNl9JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPNl9QVSAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMDAgIC8qIEdQSU82X1BVICovCisjZGVmaW5lIFdNODk5MF9HUElPNl9QRCAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAgIC8qIEdQSU82X1BEICovCisjZGVmaW5lIFdNODk5MF9HUElPNl9TRUxfTUFTSyAgICAgICAgICAgICAgICAgICAweDBGMDAgIC8qIEdQSU82X1NFTCAtIFsxMTo4XSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzVfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBHUElPNV9ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPNV9JUlFfRU5BICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIEdQSU81X0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU81X1BVICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzVfUFUgKi8KKyNkZWZpbmUgV004OTkwX0dQSU81X1BEICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJTzVfUEQgKi8KKyNkZWZpbmUgV004OTkwX0dQSU81X1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwRiAgLyogR1BJTzVfU0VMIC0gWzM6MF0gKi8KKworLyoKKyAqIFIyMiAoMHgxNikgLSBHUElPQ1RSTCAyCisgKi8KKyNkZWZpbmUgV004OTkwX1JEXzNXX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogUkRfM1dfRU5BICovCisjZGVmaW5lIFdNODk5MF9NT0RFXzNXNFcgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIE1PREVfM1c0VyAqLworI2RlZmluZSBXTTg5OTBfVEVNUE9LX0lSUV9FTkEgICAgICAgICAgICAgICAgICAgMHgwODAwICAvKiBURU1QT0tfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfTUlDU0hSVF9JUlFfRU5BICAgICAgICAgICAgICAgICAgMHgwNDAwICAvKiBNSUNTSFJUX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX01JQ0RFVF9JUlFfRU5BICAgICAgICAgICAgICAgICAgIDB4MDIwMCAgLyogTUlDREVUX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1BMTF9MQ0tfSVJRX0VOQSAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogUExMX0xDS19JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUEk4X0RFQl9FTkEgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIEdQSThfREVCX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJOF9JUlFfRU5BICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBHUEk4X0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSThfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJOF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSTdfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCAgLyogR1BJN19ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUEk3X0lSUV9FTkEgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIEdQSTdfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJN19FTkEgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBHUEk3X0VOQSAqLworCisvKgorICogUjIzICgweDE3KSAtIEdQSU9fUE9MCisgKi8KKyNkZWZpbmUgV004OTkwX0lSUV9JTlYgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCAgLyogSVJRX0lOViAqLworI2RlZmluZSBXTTg5OTBfVEVNUE9LX1BPTCAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwICAvKiBURU1QT0tfUE9MICovCisjZGVmaW5lIFdNODk5MF9NSUNTSFJUX1BPTCAgICAgICAgICAgICAgICAgICAgICAweDA0MDAgIC8qIE1JQ1NIUlRfUE9MICovCisjZGVmaW5lIFdNODk5MF9NSUNERVRfUE9MICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAgIC8qIE1JQ0RFVF9QT0wgKi8KKyNkZWZpbmUgV004OTkwX1BMTF9MQ0tfUE9MICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogUExMX0xDS19QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSThfUE9MICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogR1BJOF9QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSTdfUE9MICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogR1BJN19QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSU82X1BPTCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogR1BJTzZfUE9MICovCisjZGVmaW5lIFdNODk5MF9HUElPNV9QT0wgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIEdQSU81X1BPTCAqLworI2RlZmluZSBXTTg5OTBfR1BJTzRfUE9MICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBHUElPNF9QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX1BPTCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogR1BJTzNfUE9MICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9QT0wgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIEdQSU8yX1BPTCAqLworI2RlZmluZSBXTTg5OTBfR1BJTzFfUE9MICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBHUElPMV9QT0wgKi8KKworLyoKKyAqIFIyNCAoMHgxOCkgLSBMZWZ0IExpbmUgSW5wdXQgMSYyIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9JUFZVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIElQVlUgKi8KKyNkZWZpbmUgV004OTkwX0xJMTJNVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTEkxMk1VVEUgKi8KKyNkZWZpbmUgV004OTkwX0xJMTJNVVRFX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0xJMTJaQyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTEkxMlpDICovCisjZGVmaW5lIFdNODk5MF9MSTEyWkNfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTElOMTJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDFGICAvKiBMSU4xMlZPTCAtIFs0OjBdICovCisjZGVmaW5lIFdNODk5MF9MSU4xMlZPTF9TSElGVAkJCTAKKy8qCisgKiBSMjUgKDB4MTkpIC0gTGVmdCBMaW5lIElucHV0IDMmNCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfSVBWVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBJUFZVICovCisjZGVmaW5lIFdNODk5MF9MSTM0TVVURSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExJMzRNVVRFICovCisjZGVmaW5lIFdNODk5MF9MSTM0TVVURV9CSVQJCQk3CisjZGVmaW5lIFdNODk5MF9MSTM0WkMgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIExJMzRaQyAqLworI2RlZmluZSBXTTg5OTBfTEkzNFpDX0JJVAkJCTYKKyNkZWZpbmUgV004OTkwX0xJTjM0Vk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAxRiAgLyogTElOMzRWT0wgLSBbNDowXSAqLworI2RlZmluZSBXTTg5OTBfTElOMzRWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSMjYgKDB4MUEpIC0gUmlnaHQgTGluZSBJbnB1dCAxJjIgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX0lQVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogSVBWVSAqLworI2RlZmluZSBXTTg5OTBfUkkxMk1VVEUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBSSTEyTVVURSAqLworI2RlZmluZSBXTTg5OTBfUkkxMk1VVEVfQklUCQkJNworI2RlZmluZSBXTTg5OTBfUkkxMlpDICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBSSTEyWkMgKi8KKyNkZWZpbmUgV004OTkwX1JJMTJaQ19CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9SSU4xMlZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMUYgIC8qIFJJTjEyVk9MIC0gWzQ6MF0gKi8KKyNkZWZpbmUgV004OTkwX1JJTjEyVk9MX1NISUZUCQkJMAorCisvKgorICogUjI3ICgweDFCKSAtIFJpZ2h0IExpbmUgSW5wdXQgMyY0IFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9JUFZVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIElQVlUgKi8KKyNkZWZpbmUgV004OTkwX1JJMzRNVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogUkkzNE1VVEUgKi8KKyNkZWZpbmUgV004OTkwX1JJMzRNVVRFX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX1JJMzRaQyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogUkkzNFpDICovCisjZGVmaW5lIFdNODk5MF9SSTM0WkNfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfUklOMzRWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDFGICAvKiBSSU4zNFZPTCAtIFs0OjBdICovCisjZGVmaW5lIFdNODk5MF9SSU4zNFZPTF9TSElGVAkJCTAKKworLyoKKyAqIFIyOCAoMHgxQykgLSBMZWZ0IE91dHB1dCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfT1BWVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBPUFZVICovCisjZGVmaW5lIFdNODk5MF9MT1pDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExPWkMgKi8KKyNkZWZpbmUgV004OTkwX0xPWkNfQklUCQkJCTcKKyNkZWZpbmUgV004OTkwX0xPVVRWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDA3RiAgLyogTE9VVFZPTCAtIFs2OjBdICovCisjZGVmaW5lIFdNODk5MF9MT1VUVk9MX1NISUZUCQkJMAorLyoKKyAqIFIyOSAoMHgxRCkgLSBSaWdodCBPdXRwdXQgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX09QVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogT1BWVSAqLworI2RlZmluZSBXTTg5OTBfUk9aQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBST1pDICovCisjZGVmaW5lIFdNODk5MF9ST1pDX0JJVAkJCQk3CisjZGVmaW5lIFdNODk5MF9ST1VUVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwN0YgIC8qIFJPVVRWT0wgLSBbNjowXSAqLworI2RlZmluZSBXTTg5OTBfUk9VVFZPTF9TSElGVAkJCTAKKy8qCisgKiBSMzAgKDB4MUUpIC0gTGluZSBPdXRwdXRzIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9MT05NVVRFICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIExPTk1VVEUgKi8KKyNkZWZpbmUgV004OTkwX0xPTk1VVEVfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTE9QTVVURSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMT1BNVVRFICovCisjZGVmaW5lIFdNODk5MF9MT1BNVVRFX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX0xPQVRUTiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogTE9BVFROICovCisjZGVmaW5lIFdNODk5MF9MT0FUVE5fQklUCQkJNAorI2RlZmluZSBXTTg5OTBfUk9OTVVURSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBST05NVVRFICovCisjZGVmaW5lIFdNODk5MF9ST05NVVRFX0JJVAkJCTIKKyNkZWZpbmUgV004OTkwX1JPUE1VVEUgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogUk9QTVVURSAqLworI2RlZmluZSBXTTg5OTBfUk9QTVVURV9CSVQJCQkxCisjZGVmaW5lIFdNODk5MF9ST0FUVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFJPQVRUTiAqLworI2RlZmluZSBXTTg5OTBfUk9BVFROX0JJVAkJCTAKKworLyoKKyAqIFIzMSAoMHgxRikgLSBPdXQzLzQgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX09VVDNNVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogT1VUM01VVEUgKi8KKyNkZWZpbmUgV004OTkwX09VVDNNVVRFX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX09VVDNBVFROICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogT1VUM0FUVE4gKi8KKyNkZWZpbmUgV004OTkwX09VVDNBVFROX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX09VVDRNVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogT1VUNE1VVEUgKi8KKyNkZWZpbmUgV004OTkwX09VVDRNVVRFX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX09VVDRBVFROICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogT1VUNEFUVE4gKi8KKyNkZWZpbmUgV004OTkwX09VVDRBVFROX0JJVAkJCTAKKworLyoKKyAqIFIzMiAoMHgyMCkgLSBMZWZ0IE9QR0EgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX09QVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogT1BWVSAqLworI2RlZmluZSBXTTg5OTBfTE9QR0FaQyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBMT1BHQVpDICovCisjZGVmaW5lIFdNODk5MF9MT1BHQVpDX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0xPUEdBVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDA3RiAgLyogTE9QR0FWT0wgLSBbNjowXSAqLworI2RlZmluZSBXTTg5OTBfTE9QR0FWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSMzMgKDB4MjEpIC0gUmlnaHQgT1BHQSBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfT1BWVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBPUFZVICovCisjZGVmaW5lIFdNODk5MF9ST1BHQVpDICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIFJPUEdBWkMgKi8KKyNkZWZpbmUgV004OTkwX1JPUEdBWkNfQklUCQkJNworI2RlZmluZSBXTTg5OTBfUk9QR0FWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDdGICAvKiBST1BHQVZPTCAtIFs2OjBdICovCisjZGVmaW5lIFdNODk5MF9ST1BHQVZPTF9TSElGVAkJCTAKKy8qCisgKiBSMzQgKDB4MjIpIC0gU3BlYWtlciBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfU1BLVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDAzICAvKiBTUEtWT0wgLSBbMTowXSAqLworI2RlZmluZSBXTTg5OTBfU1BLVk9MX1NISUZUCQkJMAorCisvKgorICogUjM1ICgweDIzKSAtIENsYXNzRDEKKyAqLworI2RlZmluZSBXTTg5OTBfQ0RNT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBDRE1PREUgKi8KKyNkZWZpbmUgV004OTkwX0NETU9ERV9CSVQJCQk4CisKKy8qCisgKiBSMzcgKDB4MjUpIC0gQ2xhc3NEMworICovCisjZGVmaW5lIFdNODk5MF9EQ0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDcgIC8qIERDR0FJTiAtIFs1OjNdICovCisjZGVmaW5lIFdNODk5MF9EQ0dBSU5fU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9BQ0dBSU5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDcgIC8qIEFDR0FJTiAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9BQ0dBSU5fU0hJRlQJCQkwCisvKgorICogUjM5ICgweDI3KSAtIElucHV0IE1peGVyMQorICovCisjZGVmaW5lIFdNODk5MF9BSU5MTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMEMgIC8qIEFJTkxNT0RFIC0gWzM6Ml0gKi8KKyNkZWZpbmUgV004OTkwX0FJTkxNT0RFX1NISUZUCQkJMgorI2RlZmluZSBXTTg5OTBfQUlOUk1PREVfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDAzICAvKiBBSU5STU9ERSAtIFsxOjBdICovCisjZGVmaW5lIFdNODk5MF9BSU5STU9ERV9TSElGVAkJCTAKKworLyoKKyAqIFI0MCAoMHgyOCkgLSBJbnB1dCBNaXhlcjIKKyAqLworI2RlZmluZSBXTTg5OTBfTE1QNAkJCQkweDAwODAJLyogTE1QNCAqLworI2RlZmluZSBXTTg5OTBfTE1QNF9CSVQgICAgICAgICAgICAgICAgICAgICAgICAgNwkvKiBMTVA0ICovCisjZGVmaW5lIFdNODk5MF9MTU4zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIExNTjMgKi8KKyNkZWZpbmUgV004OTkwX0xNTjNfQklUICAgICAgICAgICAgICAgICAgICAgICAgIDYgICAgICAgLyogTE1OMyAqLworI2RlZmluZSBXTTg5OTBfTE1QMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMTVAyICovCisjZGVmaW5lIFdNODk5MF9MTVAyX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICA1ICAgICAgIC8qIExNUDIgKi8KKyNkZWZpbmUgV004OTkwX0xNTjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogTE1OMSAqLworI2RlZmluZSBXTTg5OTBfTE1OMV9CSVQgICAgICAgICAgICAgICAgICAgICAgICAgNCAgICAgICAvKiBMTU4xICovCisjZGVmaW5lIFdNODk5MF9STVA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIFJNUDQgKi8KKyNkZWZpbmUgV004OTkwX1JNUDRfQklUICAgICAgICAgICAgICAgICAgICAgICAgIDMgICAgICAgLyogUk1QNCAqLworI2RlZmluZSBXTTg5OTBfUk1OMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBSTU4zICovCisjZGVmaW5lIFdNODk5MF9STU4zX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICAyICAgICAgIC8qIFJNTjMgKi8KKyNkZWZpbmUgV004OTkwX1JNUDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogUk1QMiAqLworI2RlZmluZSBXTTg5OTBfUk1QMl9CSVQgICAgICAgICAgICAgICAgICAgICAgICAgMSAgICAgICAvKiBSTVAyICovCisjZGVmaW5lIFdNODk5MF9STU4xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFJNTjEgKi8KKyNkZWZpbmUgV004OTkwX1JNTjFfQklUICAgICAgICAgICAgICAgICAgICAgICAgIDAgICAgICAgLyogUk1OMSAqLworCisvKgorICogUjQxICgweDI5KSAtIElucHV0IE1peGVyMworICovCisjZGVmaW5lIFdNODk5MF9MMzRNTkIgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIEwzNE1OQiAqLworI2RlZmluZSBXTTg5OTBfTDM0TU5CX0JJVAkJCTgKKyNkZWZpbmUgV004OTkwX0wzNE1OQlNUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTDM0TU5CU1QgKi8KKyNkZWZpbmUgV004OTkwX0wzNE1OQlNUX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0wxMk1OQiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogTDEyTU5CICovCisjZGVmaW5lIFdNODk5MF9MMTJNTkJfQklUCQkJNQorI2RlZmluZSBXTTg5OTBfTDEyTU5CU1QgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBMMTJNTkJTVCAqLworI2RlZmluZSBXTTg5OTBfTDEyTU5CU1RfQklUCQkJNAorI2RlZmluZSBXTTg5OTBfTERCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3ICAvKiBMREJWT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfTERCVk9MX1NISUZUCQkJMAorCisvKgorICogUjQyICgweDJBKSAtIElucHV0IE1peGVyNAorICovCisjZGVmaW5lIFdNODk5MF9SMzRNTkIgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIFIzNE1OQiAqLworI2RlZmluZSBXTTg5OTBfUjM0TU5CX0JJVAkJCTgKKyNkZWZpbmUgV004OTkwX1IzNE1OQlNUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogUjM0TU5CU1QgKi8KKyNkZWZpbmUgV004OTkwX1IzNE1OQlNUX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX1IxMk1OQiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogUjEyTU5CICovCisjZGVmaW5lIFdNODk5MF9SMTJNTkJfQklUCQkJNQorI2RlZmluZSBXTTg5OTBfUjEyTU5CU1QgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBSMTJNTkJTVCAqLworI2RlZmluZSBXTTg5OTBfUjEyTU5CU1RfQklUCQkJNAorI2RlZmluZSBXTTg5OTBfUkRCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDA3ICAvKiBSREJWT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfUkRCVk9MX1NISUZUCQkJMAorCisvKgorICogUjQzICgweDJCKSAtIElucHV0IE1peGVyNQorICovCisjZGVmaW5lIFdNODk5MF9MSTJCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMSTJCVk9MIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX0xJMkJWT0xfU0hJRlQJCQk2CisjZGVmaW5lIFdNODk5MF9MUjRCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMUjRCVk9MIC0gWzU6M10gKi8KKyNkZWZpbmUgV004OTkwX0xSNEJWT0xfU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9MTDRCVk9MX01BU0sgICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMTDRCVk9MIC0gWzI6MF0gKi8KKyNkZWZpbmUgV004OTkwX0xMNEJWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSNDQgKDB4MkMpIC0gSW5wdXQgTWl4ZXI2CisgKi8KKyNkZWZpbmUgV004OTkwX1JJMkJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJJMkJWT0wgLSBbODo2XSAqLworI2RlZmluZSBXTTg5OTBfUkkyQlZPTF9TSElGVAkJCTYKKyNkZWZpbmUgV004OTkwX1JMNEJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJMNEJWT0wgLSBbNTozXSAqLworI2RlZmluZSBXTTg5OTBfUkw0QlZPTF9TSElGVAkJCTMKKyNkZWZpbmUgV004OTkwX1JSNEJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJSNEJWT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfUlI0QlZPTF9TSElGVAkJCTAKKworLyoKKyAqIFI0NSAoMHgyRCkgLSBPdXRwdXQgTWl4ZXIxCisgKi8KKyNkZWZpbmUgV004OTkwX0xSQkxPICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTFJCTE8gKi8KKyNkZWZpbmUgV004OTkwX0xSQkxPX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0xMQkxPICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTExCTE8gKi8KKyNkZWZpbmUgV004OTkwX0xMQkxPX0JJVAkJCTYKKyNkZWZpbmUgV004OTkwX0xSSTNMTyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogTFJJM0xPICovCisjZGVmaW5lIFdNODk5MF9MUkkzTE9fQklUCQkJNQorI2RlZmluZSBXTTg5OTBfTExJM0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBMTEkzTE8gKi8KKyNkZWZpbmUgV004OTkwX0xMSTNMT19CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9MUjEyTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIExSMTJMTyAqLworI2RlZmluZSBXTTg5OTBfTFIxMkxPX0JJVAkJCTMKKyNkZWZpbmUgV004OTkwX0xMMTJMTyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogTEwxMkxPICovCisjZGVmaW5lIFdNODk5MF9MTDEyTE9fQklUCQkJMgorI2RlZmluZSBXTTg5OTBfTERMTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBMRExPICovCisjZGVmaW5lIFdNODk5MF9MRExPX0JJVAkJCQkwCisKKy8qCisgKiBSNDYgKDB4MkUpIC0gT3V0cHV0IE1peGVyMgorICovCisjZGVmaW5lIFdNODk5MF9STEJSTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIFJMQlJPICovCisjZGVmaW5lIFdNODk5MF9STEJST19CSVQJCQk3CisjZGVmaW5lIFdNODk5MF9SUkJSTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIFJSQlJPICovCisjZGVmaW5lIFdNODk5MF9SUkJST19CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9STEkzUk8gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAgIC8qIFJMSTNSTyAqLworI2RlZmluZSBXTTg5OTBfUkxJM1JPX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX1JSSTNSTyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogUlJJM1JPICovCisjZGVmaW5lIFdNODk5MF9SUkkzUk9fQklUCQkJNAorI2RlZmluZSBXTTg5OTBfUkwxMlJPICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBSTDEyUk8gKi8KKyNkZWZpbmUgV004OTkwX1JMMTJST19CSVQJCQkzCisjZGVmaW5lIFdNODk5MF9SUjEyUk8gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIFJSMTJSTyAqLworI2RlZmluZSBXTTg5OTBfUlIxMlJPX0JJVAkJCTIKKyNkZWZpbmUgV004OTkwX1JEUk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogUkRSTyAqLworI2RlZmluZSBXTTg5OTBfUkRST19CSVQJCQkJMAorCisvKgorICogUjQ3ICgweDJGKSAtIE91dHB1dCBNaXhlcjMKKyAqLworI2RlZmluZSBXTTg5OTBfTExJM0xPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogTExJM0xPVk9MIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX0xMSTNMT1ZPTF9TSElGVAkJCTYKKyNkZWZpbmUgV004OTkwX0xSMTJMT1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIExSMTJMT1ZPTCAtIFs1OjNdICovCisjZGVmaW5lIFdNODk5MF9MUjEyTE9WT0xfU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9MTDEyTE9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMTDEyTE9WT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfTEwxMkxPVk9MX1NISUZUCQkJMAorCisvKgorICogUjQ4ICgweDMwKSAtIE91dHB1dCBNaXhlcjQKKyAqLworI2RlZmluZSBXTTg5OTBfUlJJM1JPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogUlJJM1JPVk9MIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX1JSSTNST1ZPTF9TSElGVAkJCTYKKyNkZWZpbmUgV004OTkwX1JMMTJST1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJMMTJST1ZPTCAtIFs1OjNdICovCisjZGVmaW5lIFdNODk5MF9STDEyUk9WT0xfU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9SUjEyUk9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBSUjEyUk9WT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfUlIxMlJPVk9MX1NISUZUCQkJMAorCisvKgorICogUjQ5ICgweDMxKSAtIE91dHB1dCBNaXhlcjUKKyAqLworI2RlZmluZSBXTTg5OTBfTFJJM0xPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogTFJJM0xPVk9MIC0gWzg6Nl0gKi8KKyNkZWZpbmUgV004OTkwX0xSSTNMT1ZPTF9TSElGVAkJCTYKKyNkZWZpbmUgV004OTkwX0xSQkxPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIExSQkxPVk9MIC0gWzU6M10gKi8KKyNkZWZpbmUgV004OTkwX0xSQkxPVk9MX1NISUZUCQkJMworI2RlZmluZSBXTTg5OTBfTExCTE9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogTExCTE9WT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfTExCTE9WT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSNTAgKDB4MzIpIC0gT3V0cHV0IE1peGVyNgorICovCisjZGVmaW5lIFdNODk5MF9STEkzUk9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBSTEkzUk9WT0wgLSBbODo2XSAqLworI2RlZmluZSBXTTg5OTBfUkxJM1JPVk9MX1NISUZUCQkJNgorI2RlZmluZSBXTTg5OTBfUkxCUk9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogUkxCUk9WT0wgLSBbNTozXSAqLworI2RlZmluZSBXTTg5OTBfUkxCUk9WT0xfU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9SUkJST1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBSUkJST1ZPTCAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9SUkJST1ZPTF9TSElGVAkJCTAKKworLyoKKyAqIFI1MSAoMHgzMykgLSBPdXQzLzQgTWl4ZXIKKyAqLworI2RlZmluZSBXTTg5OTBfVlNFTF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTgwICAvKiBWU0VMIC0gWzg6N10gKi8KKyNkZWZpbmUgV004OTkwX0xJNE8zICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogTEk0TzMgKi8KKyNkZWZpbmUgV004OTkwX0xJNE8zX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX0xQR0FPMyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogTFBHQU8zICovCisjZGVmaW5lIFdNODk5MF9MUEdBTzNfQklUCQkJNAorI2RlZmluZSBXTTg5OTBfUkk0TzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBSSTRPNCAqLworI2RlZmluZSBXTTg5OTBfUkk0TzRfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfUlBHQU80ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBSUEdBTzQgKi8KKyNkZWZpbmUgV004OTkwX1JQR0FPNF9CSVQJCQkwCisvKgorICogUjUyICgweDM0KSAtIExpbmUgTWl4ZXIxCisgKi8KKyNkZWZpbmUgV004OTkwX0xMT1BHQUxPTiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTExPUEdBTE9OICovCisjZGVmaW5lIFdNODk5MF9MTE9QR0FMT05fQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTFJPUEdBTE9OICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMUk9QR0FMT04gKi8KKyNkZWZpbmUgV004OTkwX0xST1BHQUxPTl9CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9MT1BMT04gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIExPUExPTiAqLworI2RlZmluZSBXTTg5OTBfTE9QTE9OX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX0xSMTJMT1AgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogTFIxMkxPUCAqLworI2RlZmluZSBXTTg5OTBfTFIxMkxPUF9CSVQJCQkyCisjZGVmaW5lIFdNODk5MF9MTDEyTE9QICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIExMMTJMT1AgKi8KKyNkZWZpbmUgV004OTkwX0xMMTJMT1BfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfTExPUEdBTE9QICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBMTE9QR0FMT1AgKi8KKyNkZWZpbmUgV004OTkwX0xMT1BHQUxPUF9CSVQJCQkwCisvKgorICogUjUzICgweDM1KSAtIExpbmUgTWl4ZXIyCisgKi8KKyNkZWZpbmUgV004OTkwX1JST1BHQVJPTiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogUlJPUEdBUk9OICovCisjZGVmaW5lIFdNODk5MF9SUk9QR0FST05fQklUCQkJNgorI2RlZmluZSBXTTg5OTBfUkxPUEdBUk9OICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBSTE9QR0FST04gKi8KKyNkZWZpbmUgV004OTkwX1JMT1BHQVJPTl9CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9ST1BST04gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIFJPUFJPTiAqLworI2RlZmluZSBXTTg5OTBfUk9QUk9OX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX1JMMTJST1AgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogUkwxMlJPUCAqLworI2RlZmluZSBXTTg5OTBfUkwxMlJPUF9CSVQJCQkyCisjZGVmaW5lIFdNODk5MF9SUjEyUk9QICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIFJSMTJST1AgKi8KKyNkZWZpbmUgV004OTkwX1JSMTJST1BfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfUlJPUEdBUk9QICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBSUk9QR0FST1AgKi8KKyNkZWZpbmUgV004OTkwX1JST1BHQVJPUF9CSVQJCQkwCisKKy8qCisgKiBSNTQgKDB4MzYpIC0gU3BlYWtlciBNaXhlcgorICovCisjZGVmaW5lIFdNODk5MF9MQjJTUEsgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExCMlNQSyAqLworI2RlZmluZSBXTTg5OTBfTEIyU1BLX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX1JCMlNQSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogUkIyU1BLICovCisjZGVmaW5lIFdNODk5MF9SQjJTUEtfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTEkyU1BLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMSTJTUEsgKi8KKyNkZWZpbmUgV004OTkwX0xJMlNQS19CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9SSTJTUEsgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIFJJMlNQSyAqLworI2RlZmluZSBXTTg5OTBfUkkyU1BLX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX0xPUEdBU1BLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCAgLyogTE9QR0FTUEsgKi8KKyNkZWZpbmUgV004OTkwX0xPUEdBU1BLX0JJVAkJCTMKKyNkZWZpbmUgV004OTkwX1JPUEdBU1BLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogUk9QR0FTUEsgKi8KKyNkZWZpbmUgV004OTkwX1JPUEdBU1BLX0JJVAkJCTIKKyNkZWZpbmUgV004OTkwX0xEU1BLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogTERTUEsgKi8KKyNkZWZpbmUgV004OTkwX0xEU1BLX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX1JEU1BLICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogUkRTUEsgKi8KKyNkZWZpbmUgV004OTkwX1JEU1BLX0JJVAkJCTAKKworLyoKKyAqIFI1NSAoMHgzNykgLSBBZGRpdGlvbmFsIENvbnRyb2wKKyAqLworI2RlZmluZSBXTTg5OTBfVlJPSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBWUk9JICovCisKKy8qCisgKiBSNTYgKDB4MzgpIC0gQW50aVBPUDEKKyAqLworI2RlZmluZSBXTTg5OTBfRElTX0xMSU5FICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBESVNfTExJTkUgKi8KKyNkZWZpbmUgV004OTkwX0RJU19STElORSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogRElTX1JMSU5FICovCisjZGVmaW5lIFdNODk5MF9ESVNfT1VUMyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIERJU19PVVQzICovCisjZGVmaW5lIFdNODk5MF9ESVNfT1VUNCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIERJU19PVVQ0ICovCisjZGVmaW5lIFdNODk5MF9ESVNfTE9VVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIERJU19MT1VUICovCisjZGVmaW5lIFdNODk5MF9ESVNfUk9VVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIERJU19ST1VUICovCisKKy8qCisgKiBSNTcgKDB4MzkpIC0gQW50aVBPUDIKKyAqLworI2RlZmluZSBXTTg5OTBfU09GVFNUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBTT0ZUU1QgKi8KKyNkZWZpbmUgV004OTkwX0JVRklPRU4gICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCAgLyogQlVGSU9FTiAqLworI2RlZmluZSBXTTg5OTBfQlVGRENPUEVOICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBCVUZEQ09QRU4gKi8KKyNkZWZpbmUgV004OTkwX1BPQkNUUkwgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogUE9CQ1RSTCAqLworI2RlZmluZSBXTTg5OTBfVk1JRFRPRyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBWTUlEVE9HICovCisKKy8qCisgKiBSNTggKDB4M0EpIC0gTUlDQklBUworICovCisjZGVmaW5lIFdNODk5MF9NQ0RTQ1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwQzAgIC8qIE1DRFNDVEggLSBbNzo2XSAqLworI2RlZmluZSBXTTg5OTBfTUNEVEhSX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4ICAvKiBNQ0RUSFIgLSBbNTozXSAqLworI2RlZmluZSBXTTg5OTBfTUNEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBNQ0QgKi8KKyNkZWZpbmUgV004OTkwX01CU0VMICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogTUJTRUwgKi8KKworLyoKKyAqIFI2MCAoMHgzQykgLSBQTEwxCisgKi8KKyNkZWZpbmUgV004OTkwX1NETSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogU0RNICovCisjZGVmaW5lIFdNODk5MF9QUkVTQ0FMRSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIFBSRVNDQUxFICovCisjZGVmaW5lIFdNODk5MF9QTExOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEYgIC8qIFBMTE4gLSBbMzowXSAqLworCisvKgorICogUjYxICgweDNEKSAtIFBMTDIKKyAqLworI2RlZmluZSBXTTg5OTBfUExMSzFfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgMHgwMEZGICAvKiBQTExLMSAtIFs3OjBdICovCisKKy8qCisgKiBSNjIgKDB4M0UpIC0gUExMMworICovCisjZGVmaW5lIFdNODk5MF9QTExLMl9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYgIC8qIFBMTEsyIC0gWzc6MF0gKi8KKworLyoKKyAqIFI2MyAoMHgzRikgLSBJbnRlcm5hbCBEcml2ZXIgQml0cworICovCisjZGVmaW5lIFdNODk5MF9JTk1JWExfUFdSX0JJVAkJCTAKKyNkZWZpbmUgV004OTkwX0FJTkxNVVhfUFdSX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX0lOTUlYUl9QV1JfQklUCQkJMgorI2RlZmluZSBXTTg5OTBfQUlOUk1VWF9QV1JfQklUCQkJMworCitzdHJ1Y3Qgd204OTkwX3NldHVwX2RhdGEgeworCXVuc2lnbmVkIHNob3J0IGkyY19hZGRyZXNzOworfTsKKworI2RlZmluZSBXTTg5OTBfTUNMS19ESVYgMAorI2RlZmluZSBXTTg5OTBfREFDQ0xLX0RJViAxCisjZGVmaW5lIFdNODk5MF9BRENDTEtfRElWIDIKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWIDMKKworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSB3bTg5OTBfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtODk5MDsKKworI2VuZGlmCS8qIF9fV004OTkwUkVHSVNURVJERUZTX0hfXyAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRU5EIE9GIEZJTEUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEyLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMi5jCmluZGV4IDc2YzFlMmQuLjlmYzhlZGQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEyLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTk3MTIuYwpAQCAtOSw5ICs5LDYgQEAKICAqICB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICA0dGggRmViIDIwMDYgICBJbml0aWFsIHZlcnNpb24uCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTI1LDYgKzIyLDcgQEAKICNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CiAjaW5jbHVkZSA8c291bmQvc29jLmg+CiAjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKyNpbmNsdWRlICJ3bTk3MTIuaCIKIAogI2RlZmluZSBXTTk3MTJfVkVSU0lPTiAiMC40IgogCkBAIC0zNTEsNyArMzQ5LDcgQEAKIFNORF9TT0NfREFQTV9JTlBVVCgiTUlDMiIpLAogfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKmF1ZGlvX21hcFtdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CiAJLyogdmlydHVhbCBtaXhlciAtIG1peGVzIGxlZnQgJiByaWdodCBjaGFubmVscyBmb3Igc3BrIGFuZCBtb25vICovCiAJeyJBQzk3IE1peGVyIiwgTlVMTCwgIkxlZnQgREFDIn0sCiAJeyJBQzk3IE1peGVyIiwgTlVMTCwgIlJpZ2h0IERBQyJ9LApAQCAtNDQ2LDIxICs0NDQsMTQgQEAKIAl7IlNwZWFrZXIgUEdBIiwgTlVMTCwgIlNwZWFrZXIgTXV4In0sCiAJeyJMT1VUMiIsIE5VTEwsICJTcGVha2VyIFBHQSJ9LAogCXsiUk9VVDIiLCBOVUxMLCAiU3BlYWtlciBQR0EifSwKLQotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBpbnQgd205NzEyX2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgaTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTk3MTJfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTk3MTJfZGFwbV93aWRnZXRzKSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTk3MTJfZGFwbV93aWRnZXRzKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZ3bTk3MTJfZGFwbV93aWRnZXRzW2ldKTsKLQotCS8qIHNldCB1cCBhdWRpbyBwYXRoIGNvbm5lY3RzICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCQkJICAgYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKIAlzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoY29kZWMpOwogCXJldHVybiAwOwpAQCAtNTQxLDcgKzUzMiw3IEBACiAJCVNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfNDQxMDAgfFwKIAkJU05EUlZfUENNX1JBVEVfNDgwMDApCiAKLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTk3MTJfZGFpW10gPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgd205NzEyX2RhaVtdID0gewogewogCS5uYW1lID0gIkFDOTcgSGlGaSIsCiAJLnR5cGUgPSBTTkRfU09DX0RBSV9BQzk3X0JVUywKQEAgLTU3NCwyMyArNTY1LDIzIEBACiB9OwogRVhQT1JUX1NZTUJPTF9HUEwod205NzEyX2RhaSk7CiAKLXN0YXRpYyBpbnQgd205NzEyX2RhcG1fZXZlbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZXZlbnQpCitzdGF0aWMgaW50IHdtOTcxMl9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJCQkJIGVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQogewotCXN3aXRjaCAoZXZlbnQpIHsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMDogLyogZnVsbCBPbiAqLwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOiAvKiBwYXJ0aWFsIE9uICovCi0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDI6IC8qIHBhcnRpYWwgT24gKi8KKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNob3Q6IC8qIE9mZiwgd2l0aCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfUE9XRVJET1dOLCAweDAwMDApOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQ6IC8qIE9mZiwgd2l0aG91dCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKIAkJLyogZGlzYWJsZSBldmVyeXRoaW5nIGluY2x1ZGluZyBBQyBsaW5rICovCiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfRVhURU5ERURfTVNUQVRVUywgMHhmZmZmKTsKIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19QT1dFUkRPV04sIDB4ZmZmZik7CiAJCWJyZWFrOwogCX0KLQljb2RlYy0+ZGFwbV9zdGF0ZSA9IGV2ZW50OworCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTU5OCwxMiArNTg5LDEyIEBACiB7CiAJaWYgKHRyeV93YXJtICYmIHNvY19hYzk3X29wcy53YXJtX3Jlc2V0KSB7CiAJCXNvY19hYzk3X29wcy53YXJtX3Jlc2V0KGNvZGVjLT5hYzk3KTsKLQkJaWYgKCEoYWM5N19yZWFkKGNvZGVjLCAwKSAmIDB4ODAwMCkpCisJCWlmIChhYzk3X3JlYWQoY29kZWMsIDApID09IHdtOTcxMl9yZWdbMF0pCiAJCQlyZXR1cm4gMTsKIAl9CiAKIAlzb2NfYWM5N19vcHMucmVzZXQoY29kZWMtPmFjOTcpOwotCWlmIChhYzk3X3JlYWQoY29kZWMsIDApICYgMHg4MDAwKQorCWlmIChhYzk3X3JlYWQoY29kZWMsIDApICE9IHdtOTcxMl9yZWdbMF0pCiAJCWdvdG8gZXJyOwogCXJldHVybiAwOwogCkBAIC02MTgsNyArNjA5LDcgQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKLQl3bTk3MTJfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzY29sZCk7CisJd205NzEyX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNjM1LDcgKzYyNiw3IEBACiAJCXJldHVybiByZXQ7CiAJfQogCi0Jd205NzEyX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd205NzEyX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAlpZiAocmV0ID09IDApIHsKIAkJLyogU3luYyByZWdfY2FjaGUgd2l0aCB0aGUgaGFyZHdhcmUgYWZ0ZXIgY29sZCByZXNldCAqLwpAQCAtNjQ3LDggKzYzOCw4IEBACiAJCX0KIAl9CiAKLQlpZiAoY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSA9PSBTTkRSVl9DVExfUE9XRVJfRDApCi0JCXdtOTcxMl9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDApOworCWlmIChjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsID09IFNORF9TT0NfQklBU19PTikKKwkJd205NzEyX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT04pOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTY4Miw3ICs2NzMsNyBAQAogCWNvZGVjLT5udW1fZGFpID0gQVJSQVlfU0laRSh3bTk3MTJfZGFpKTsKIAljb2RlYy0+d3JpdGUgPSBhYzk3X3dyaXRlOwogCWNvZGVjLT5yZWFkID0gYWM5N19yZWFkOwotCWNvZGVjLT5kYXBtX2V2ZW50ID0gd205NzEyX2RhcG1fZXZlbnQ7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gd205NzEyX3NldF9iaWFzX2xldmVsOwogCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV93aWRnZXRzKTsKIAlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fcGF0aHMpOwogCkBAIC03MDYsNyArNjk3LDcgQEAKIAkvKiBzZXQgYWxjIG11eCB0byBub25lICovCiAJYWM5N193cml0ZShjb2RlYywgQUM5N19WSURFTywgYWM5N19yZWFkKGNvZGVjLCBBQzk3X1ZJREVPKSB8IDB4MzAwMCk7CiAKLQl3bTk3MTJfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwl3bTk3MTJfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKIAl3bTk3MTJfYWRkX2NvbnRyb2xzKGNvZGVjKTsKIAl3bTk3MTJfYWRkX3dpZGdldHMoY29kZWMpOwogCXJldCA9IHNuZF9zb2NfcmVnaXN0ZXJfY2FyZChzb2NkZXYpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTk3MTIuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEyLmgKaW5kZXggNzE5MTA1ZC4uZDI5ZThhMSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTk3MTIuaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMi5oCkBAIC04LDcgKzgsNyBAQAogI2RlZmluZSBXTTk3MTJfREFJX0FDOTdfSElGSQkwCiAjZGVmaW5lIFdNOTcxMl9EQUlfQUM5N19BVVgJCTEKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTk3MTJfZGFpWzJdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSB3bTk3MTJfZGFpWzJdOwogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtOTcxMjsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMy5jIGIvc291bmQvc29jL2NvZGVjcy93bTk3MTMuYwppbmRleCAxZjI0MTE2Li4zOGQxZmUwIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMy5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEzLmMKQEAgLTEwLDkgKzEwLDYgQEAKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICA0dGggRmViIDIwMDYgICBJbml0aWFsIHZlcnNpb24uCi0gKgogICogIEZlYXR1cmVzOi0KICAqCiAgKiAgIG8gU3VwcG9ydCBmb3IgQUM5NyBDb2RlYywgVm9pY2UgREFDIGFuZCBBdXggREFDCkBAIC00NTYsNyArNDUzLDcgQEAKIFNORF9TT0NfREFQTV9WTUlEKCJWTUlEIiksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAkvKiBsZWZ0IEhQIG1peGVyICovCiAJeyJMZWZ0IEhQIE1peGVyIiwgIlBDIEJlZXAgUGxheWJhY2sgU3dpdGNoIiwgIlBDQkVFUCJ9LAogCXsiTGVmdCBIUCBNaXhlciIsICJWb2ljZSBQbGF5YmFjayBTd2l0Y2giLCAgICJWb2ljZSBEQUMifSwKQEAgLTYwNywyMSArNjA0LDE0IEBACiAJeyJDYXB0dXJlIE1vbm8gTXV4IiwgIlN0ZXJlbyIsICJDYXB0dXJlIE1peGVyIn0sCiAJeyJDYXB0dXJlIE1vbm8gTXV4IiwgIkxlZnQiLCAiTGVmdCBDYXB0dXJlIFNvdXJjZSJ9LAogCXsiQ2FwdHVyZSBNb25vIE11eCIsICJSaWdodCIsICJSaWdodCBDYXB0dXJlIFNvdXJjZSJ9LAotCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGludCB3bTk3MTNfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBpOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtOTcxM19kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtOTcxM19kYXBtX3dpZGdldHMpKTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtOTcxM19kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtOTcxM19kYXBtX3dpZGdldHNbaV0pOwotCi0JLyogc2V0IHVwIGF1ZGlvIHBhdGggYXVkaW9fbWFwbmVjdHMgKi8KLQlmb3IgKGkgPSAwOyBhdWRpb19tYXBbaV1bMF0gIT0gTlVMTDsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKIAlzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoY29kZWMpOwogCXJldHVybiAwOwpAQCAtNzk5LDcgKzc4OSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd205NzEzX3NldF9kYWlfcGxsKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV9wbGwoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTgxMCw3ICs4MDAsNyBAQAogICogVHJpc3RhdGUgdGhlIFBDTSBEQUkgbGluZXMsIHRyaXN0YXRlIGNhbiBiZSBkaXNhYmxlZCBieSBjYWxsaW5nCiAgKiB3bTk3MTNfc2V0X2RhaV9mbXQoKQogICovCi1zdGF0aWMgaW50IHdtOTcxM19zZXRfZGFpX3RyaXN0YXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV90cmlzdGF0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAlpbnQgdHJpc3RhdGUpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTgyNiw3ICs4MTYsNyBAQAogICogQ29uZmlndXJlIFdNOTcxMyBjbG9jayBkaXZpZGVycy4KICAqIFZvaWNlIERBQyBuZWVkcyAyNTYgRlMKICAqLwotc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV9jbGtkaXYoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtOTcxM19zZXRfZGFpX2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtODY4LDcgKzg1OCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd205NzEzX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTg4Niw3ICs4NzYsNyBAQAogCQlncGlvIHw9IDB4MDAxODsKIAkJYnJlYWs7CiAJY2FzZSBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTOgotCQlyZWcgfD0gMHgwMjAwOworCQlyZWcgfD0gMHgyMDAwOwogCQlncGlvIHw9IDB4MDAxYTsKIAkJYnJlYWs7CiAJY2FzZSBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZNOgpAQCAtMTAxMSwxNSArMTAwMSwyNCBAQAogCXJldHVybiBhYzk3X3dyaXRlKGNvZGVjLCBBQzk3X1BDTV9TVVJSX0RBQ19SQVRFLCBydW50aW1lLT5yYXRlKTsKIH0KIAotI2RlZmluZSBXTTk3MTNfUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgfCBTTkRSVl9QQ01fUkFURV8xMTAyNSB8XAotCQlTTkRSVl9QQ01fUkFURV8yMjA1MCB8IFNORFJWX1BDTV9SQVRFXzQ0MTAwIHxcCi0JCVNORFJWX1BDTV9SQVRFXzQ4MDAwKQorI2RlZmluZSBXTTk3MTNfUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgIHwJXAorCQkgICAgICBTTkRSVl9QQ01fUkFURV8xMTAyNSB8CVwKKwkJICAgICAgU05EUlZfUENNX1JBVEVfMjIwNTAgfAlcCisJCSAgICAgIFNORFJWX1BDTV9SQVRFXzQ0MTAwIHwJXAorCQkgICAgICBTTkRSVl9QQ01fUkFURV80ODAwMCkKKworI2RlZmluZSBXTTk3MTNfUENNX1JBVEVTIChTTkRSVl9QQ01fUkFURV84MDAwICB8CVwKKwkJCSAgU05EUlZfUENNX1JBVEVfMTEwMjUgfAlcCisJCQkgIFNORFJWX1BDTV9SQVRFXzE2MDAwIHwJXAorCQkJICBTTkRSVl9QQ01fUkFURV8yMjA1MCB8CVwKKwkJCSAgU05EUlZfUENNX1JBVEVfNDQxMDAgfAlcCisJCQkgIFNORFJWX1BDTV9SQVRFXzQ4MDAwKQogCiAjZGVmaW5lIFdNOTcxM19QQ01fRk9STUFUUyBcCiAJKFNORFJWX1BDTV9GT1JNQVRfUzE2X0xFIHwgU05EUlZfUENNX0ZPUk1BVF9TMjBfM0xFIHwgXAogCSBTTkRSVl9QQ01fRk9STUFUX1MyNF9MRSkKIAotc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIHdtOTcxM19kYWlbXSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSB3bTk3MTNfZGFpW10gPSB7CiB7CiAJLm5hbWUgPSAiQUM5NyBIaUZpIiwKIAkudHlwZSA9IFNORF9TT0NfREFJX0FDOTdfQlVTLApAQCAtMTA2MSwxMyArMTA2MCwxMyBAQAogCQkuc3RyZWFtX25hbWUgPSAiVm9pY2UgUGxheWJhY2siLAogCQkuY2hhbm5lbHNfbWluID0gMSwKIAkJLmNoYW5uZWxzX21heCA9IDEsCi0JCS5yYXRlcyA9IFdNOTcxM19SQVRFUywKKwkJLnJhdGVzID0gV005NzEzX1BDTV9SQVRFUywKIAkJLmZvcm1hdHMgPSBXTTk3MTNfUENNX0ZPUk1BVFMsfSwKIAkuY2FwdHVyZSA9IHsKIAkJLnN0cmVhbV9uYW1lID0gIlZvaWNlIENhcHR1cmUiLAogCQkuY2hhbm5lbHNfbWluID0gMSwKIAkJLmNoYW5uZWxzX21heCA9IDIsCi0JCS5yYXRlcyA9IFdNOTcxM19SQVRFUywKKwkJLnJhdGVzID0gV005NzEzX1BDTV9SQVRFUywKIAkJLmZvcm1hdHMgPSBXTTk3MTNfUENNX0ZPUk1BVFMsfSwKIAkub3BzID0gewogCQkuaHdfcGFyYW1zID0gd205NzEzX3BjbV9od19wYXJhbXMsCkBAIC0xMDg2LDQ0ICsxMDg1LDQ0IEBACiB7CiAJaWYgKHRyeV93YXJtICYmIHNvY19hYzk3X29wcy53YXJtX3Jlc2V0KSB7CiAJCXNvY19hYzk3X29wcy53YXJtX3Jlc2V0KGNvZGVjLT5hYzk3KTsKLQkJaWYgKCEoYWM5N19yZWFkKGNvZGVjLCAwKSAmIDB4ODAwMCkpCisJCWlmIChhYzk3X3JlYWQoY29kZWMsIDApID09IHdtOTcxM19yZWdbMF0pCiAJCQlyZXR1cm4gMTsKIAl9CiAKIAlzb2NfYWM5N19vcHMucmVzZXQoY29kZWMtPmFjOTcpOwotCWlmIChhYzk3X3JlYWQoY29kZWMsIDApICYgMHg4MDAwKQorCWlmIChhYzk3X3JlYWQoY29kZWMsIDApICE9IHdtOTcxM19yZWdbMF0pCiAJCXJldHVybiAtRUlPOwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTF9HUEwod205NzEzX3Jlc2V0KTsKIAotc3RhdGljIGludCB3bTk3MTNfZGFwbV9ldmVudChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBldmVudCkKK3N0YXRpYyBpbnQgd205NzEzX3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwkJCQkgZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCiB7CiAJdTE2IHJlZzsKIAotCXN3aXRjaCAoZXZlbnQpIHsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMDogLyogZnVsbCBPbiAqLworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKIAkJLyogZW5hYmxlIHRoZXJtYWwgc2h1dGRvd24gKi8KIAkJcmVnID0gYWM5N19yZWFkKGNvZGVjLCBBQzk3X0VYVEVOREVEX01JRCkgJiAweDFiZmY7CiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfRVhURU5ERURfTUlELCByZWcpOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMTogLyogcGFydGlhbCBPbiAqLwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QyOiAvKiBwYXJ0aWFsIE9uICovCisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNob3Q6IC8qIE9mZiwgd2l0aCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CiAJCS8qIGVuYWJsZSBtYXN0ZXIgYmlhcyBhbmQgdm1pZCAqLwogCQlyZWcgPSBhYzk3X3JlYWQoY29kZWMsIEFDOTdfRVhURU5ERURfTUlEKSAmIDB4M2JmZjsKIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19FWFRFTkRFRF9NSUQsIHJlZyk7CiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfUE9XRVJET1dOLCAweDAwMDApOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQ6IC8qIE9mZiwgd2l0aG91dCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKIAkJLyogZGlzYWJsZSBldmVyeXRoaW5nIGluY2x1ZGluZyBBQyBsaW5rICovCiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfRVhURU5ERURfTUlELCAweGZmZmYpOwogCQlhYzk3X3dyaXRlKGNvZGVjLCBBQzk3X0VYVEVOREVEX01TVEFUVVMsIDB4ZmZmZik7CiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfUE9XRVJET1dOLCAweGZmZmYpOwogCQlicmVhazsKIAl9Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBldmVudDsKKwljb2RlYy0+Ymlhc19sZXZlbCA9IGxldmVsOwogCXJldHVybiAwOwogfQogCkBAIC0xMTYwLDcgKzExNTksNyBAQAogCQlyZXR1cm4gcmV0OwogCX0KIAotCXdtOTcxM19kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNob3QpOworCXdtOTcxM19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOwogCiAJLyogZG8gd2UgbmVlZCB0byByZS1zdGFydCB0aGUgUExMID8gKi8KIAlpZiAod205NzEzLT5wbGxfb3V0KQpAQCAtMTE3Niw4ICsxMTc1LDggQEAKIAkJfQogCX0KIAotCWlmIChjb2RlYy0+c3VzcGVuZF9kYXBtX3N0YXRlID09IFNORFJWX0NUTF9QT1dFUl9EMCkKLQkJd205NzEzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EMCk7CisJaWYgKGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwgPT0gU05EX1NPQ19CSUFTX09OKQorCQl3bTk3MTNfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PTik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTIxNiw3ICsxMjE1LDcgQEAKIAljb2RlYy0+bnVtX2RhaSA9IEFSUkFZX1NJWkUod205NzEzX2RhaSk7CiAJY29kZWMtPndyaXRlID0gYWM5N193cml0ZTsKIAljb2RlYy0+cmVhZCA9IGFjOTdfcmVhZDsKLQljb2RlYy0+ZGFwbV9ldmVudCA9IHdtOTcxM19kYXBtX2V2ZW50OworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtOTcxM19zZXRfYmlhc19sZXZlbDsKIAlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fd2lkZ2V0cyk7CiAJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3BhdGhzKTsKIApAQCAtMTIzOCw3ICsxMjM3LDcgQEAKIAkJZ290byByZXNldF9lcnI7CiAJfQogCi0Jd205NzEzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd205NzEzX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAkvKiB1bm11dGUgdGhlIGFkYyAtIG1vdmUgdG8ga2NvbnRyb2wgKi8KIAlyZWcgPSBhYzk3X3JlYWQoY29kZWMsIEFDOTdfQ0QpICYgMHg3ZmZmOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTk3MTMuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEzLmgKaW5kZXggZDM1N2I2Yy4uNjNiOGQ4MSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTk3MTMuaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMy5oCkBAIC00Niw3ICs0Niw3IEBACiAjZGVmaW5lIFdNOTcxM19EQUlfUENNX1ZPSUNFCTIKIAogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtOTcxMzsKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd205NzEzX2RhaVszXTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgd205NzEzX2RhaVszXTsKIAogaW50IHdtOTcxM19yZXNldChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsICBpbnQgdHJ5X3dhcm0pOwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZGF2aW5jaS9LY29uZmlnIGIvc291bmQvc29jL2RhdmluY2kvS2NvbmZpZwppbmRleCAyMDY4MGM1Li44ZjdlMzM4IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZGF2aW5jaS9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9kYXZpbmNpL0tjb25maWcKQEAgLTEsNiArMSw2IEBACiBjb25maWcgU05EX0RBVklOQ0lfU09DCiAJdHJpc3RhdGUgIlNvQyBBdWRpbyBmb3IgdGhlIFRJIERBVklOQ0kgY2hpcCIKLQlkZXBlbmRzIG9uIEFSQ0hfREFWSU5DSSAmJiBTTkRfU09DCisJZGVwZW5kcyBvbiBBUkNIX0RBVklOQ0kKIAloZWxwCiAJICBTYXkgWSBvciBNIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBjb2RlY3MgYXR0YWNoZWQgdG8KIAkgIHRoZSBEQVZJTkNJIEFDOTcgb3IgSTJTIGludGVyZmFjZS4gWW91IHdpbGwgYWxzbyBuZWVkCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWV2bS5jIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1ldm0uYwppbmRleCBmY2QxNjUyLi41ZTJjMzA2IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWV2bS5jCisrKyBiL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktZXZtLmMKQEAgLTMzLDI0ICszMywyNCBAQAogCQkJIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAlpbnQgcmV0ID0gMDsKIAogCS8qIHNldCBjb2RlYyBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJCQkJIFNORF9TT0NfREFJRk1UX0NCTV9DRk0pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0NCTV9DRk0gfAogCQkJCSAgICAgICBTTkRfU09DX0RBSUZNVF9JQl9ORik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgdGhlIGNvZGVjIHN5c3RlbSBjbG9jayAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgMCwgRVZNX0NPREVDX0NMT0NLLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY29kZWNfZGFpLCAwLCBFVk1fQ09ERUNfQ0xPQ0ssCiAJCQkJCSAgICBTTkRfU09DX0NMT0NLX09VVCk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC03MSw3ICs3MSw3IEBACiB9OwogCiAvKiBkYXZpbmNpLWV2bSBtYWNoaW5lIGF1ZGlvX21hcG5lY3Rpb25zIHRvIHRoZSBjb2RlYyBwaW5zICovCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAkvKiBIZWFkcGhvbmUgY29ubmVjdGVkIHRvIEhQTE9VVCwgSFBST1VUICovCiAJeyJIZWFkcGhvbmUgSmFjayIsIE5VTEwsICJIUExPVVQifSwKIAl7IkhlYWRwaG9uZSBKYWNrIiwgTlVMTCwgIkhQUk9VVCJ9LApAQCAtOTAsMzYgKzkwLDMwIEBACiAJeyJMSU5FMkwiLCBOVUxMLCAiTGluZSBJbiJ9LAogCXsiTElORTFSIiwgTlVMTCwgIkxpbmUgSW4ifSwKIAl7IkxJTkUyUiIsIE5VTEwsICJMaW5lIEluIn0sCi0KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiAvKiBMb2dpYyBmb3IgYSBhaWMzeCBhcyBjb25uZWN0ZWQgb24gYSBkYXZpbmNpLWV2bSAqLwogc3RhdGljIGludCBldm1fYWljM3hfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7Ci0KIAkvKiBBZGQgZGF2aW5jaS1ldm0gc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFpYzN4X2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmYWljM3hfZGFwbV93aWRnZXRzW2ldKTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCBhaWMzeF9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKGFpYzN4X2RhcG1fd2lkZ2V0cykpOwogCiAJLyogU2V0IHVwIGRhdmluY2ktZXZtIHNwZWNpZmljIGF1ZGlvIHBhdGggYXVkaW9fbWFwICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCQkJICAgYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKIAkvKiBub3QgY29ubmVjdGVkICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1PTk9fTE9VVCIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIUExDT00iLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSFBSQ09NIiwgMCk7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTU9OT19MT1VUIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSFBMQ09NIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSFBSQ09NIik7CiAKIAkvKiBhbHdheXMgY29ubmVjdGVkICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRwaG9uZSBKYWNrIiwgMSk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxpbmUgT3V0IiwgMSk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1pYyBKYWNrIiwgMSk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxpbmUgSW4iLCAxKTsKKwlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJMaW5lIE91dCIpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkxpbmUgSW4iKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWkycy5jIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1pMnMuYwppbmRleCBjNDIxNzc0Li41ZWJmMWZmIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWkycy5jCisrKyBiL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktaTJzLmMKQEAgLTE0Nyw3ICsxNDcsNyBAQAogc3RhdGljIGludCBkYXZpbmNpX2kyc19zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJc3RydWN0IGRhdmluY2lfbWNic3BfZGV2ICpkZXYgPSBydGQtPmRhaS0+Y3B1X2RhaS0+cHJpdmF0ZV9kYXRhOwogCiAJY3B1X2RhaS0+ZG1hX2RhdGEgPSBkZXYtPmRtYV9wYXJhbXNbc3Vic3RyZWFtLT5zdHJlYW1dOwpAQCAtMTU1LDcgKzE1NSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZGF2aW5jaV9pMnNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgZGF2aW5jaV9pMnNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCSAgIHVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IGRhdmluY2lfbWNic3BfZGV2ICpkZXYgPSBjcHVfZGFpLT5wcml2YXRlX2RhdGE7CkBAIC0yOTUsMTEgKzI5NSwxMiBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZGF2aW5jaV9pMnNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgZGF2aW5jaV9pMnNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICptYWNoaW5lID0gc29jZGV2LT5tYWNoaW5lOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1twZGV2LT5pZF0uY3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1twZGV2LT5pZF0uY3B1X2RhaTsKIAlzdHJ1Y3QgZGF2aW5jaV9tY2JzcF9kZXYgKmRldjsKIAlzdHJ1Y3QgcmVzb3VyY2UgKm1lbSwgKmlvYXJlYTsKIAlzdHJ1Y3QgZXZtX3NuZF9wbGF0Zm9ybV9kYXRhICpwZGF0YTsKQEAgLTM1NiwxMSArMzU3LDEyIEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgZGF2aW5jaV9pMnNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgdm9pZCBkYXZpbmNpX2kyc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW3BkZXYtPmlkXS5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW3BkZXYtPmlkXS5jcHVfZGFpOwogCXN0cnVjdCBkYXZpbmNpX21jYnNwX2RldiAqZGV2ID0gY3B1X2RhaS0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCByZXNvdXJjZSAqbWVtOwogCkBAIC0zNzYsNyArMzc4LDcgQEAKIAogI2RlZmluZSBEQVZJTkNJX0kyU19SQVRFUwlTTkRSVl9QQ01fUkFURV84MDAwXzk2MDAwCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgZGF2aW5jaV9pMnNfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIGRhdmluY2lfaTJzX2RhaSA9IHsKIAkubmFtZSA9ICJkYXZpbmNpLWkycyIsCiAJLmlkID0gMCwKIAkudHlwZSA9IFNORF9TT0NfREFJX0kyUywKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktaTJzLmggYi9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWkycy5oCmluZGV4IDk1OTJkMTcuLmM1YjA5MTggMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktaTJzLmgKKysrIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1pMnMuaApAQCAtMTIsNiArMTIsNiBAQAogI2lmbmRlZiBfREFWSU5DSV9JMlNfSAogI2RlZmluZSBfREFWSU5DSV9JMlNfSAogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBkYXZpbmNpX2kyc19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGRhdmluY2lfaTJzX2RhaTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLXBjbS5jIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1wY20uYwppbmRleCA2YTc2OTI3Li42YTVlNTZhIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLXBjbS5jCisrKyBiL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktcGNtLmMKQEAgLTM1MCw3ICszNTAsNyBAQAogc3RhdGljIHU2NCBkYXZpbmNpX3BjbV9kbWFtYXNrID0gMHhmZmZmZmZmZjsKIAogc3RhdGljIGludCBkYXZpbmNpX3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLAotCQkJICAgc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksIHN0cnVjdCBzbmRfcGNtICpwY20pCisJCQkgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgc3RydWN0IHNuZF9wY20gKnBjbSkKIHsKIAlpbnQgcmV0OwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZnNsL0tjb25maWcgYi9zb3VuZC9zb2MvZnNsL0tjb25maWcKaW5kZXggMjU3MTAxZi4uMzM2OGFjZSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2ZzbC9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9mc2wvS2NvbmZpZwpAQCAtMSw4ICsxLDYgQEAKLW1lbnUgIkFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcyIKLQogY29uZmlnIFNORF9TT0NfTVBDODYxMAogCWJvb2wgIkFMU0EgU29DIHN1cHBvcnQgZm9yIHRoZSBNUEM4NjEwIFNPQyIKLQlkZXBlbmRzIG9uIFNORF9TT0MgJiYgTVBDODYxMF9IUENECisJZGVwZW5kcyBvbiBNUEM4NjEwX0hQQ0QKIAlkZWZhdWx0IHkgaWYgTVBDODYxMAogCWhlbHAKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBjb2RlY3MgYXR0YWNoZWQgdG8gdGhlIFNTSQpAQCAtMTYsNSArMTQsMyBAQAogCWRlZmF1bHQgeSBpZiBNUEM4NjEwX0hQQ0QKIAloZWxwCiAJICBTYXkgWSBpZiB5b3Ugd2FudCB0byBlbmFibGUgYXVkaW8gb24gdGhlIEZyZWVzY2FsZSBNUEM4NjEwIEhQQ0QuCi0KLWVuZG1lbnUKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9mc2wvZnNsX2RtYS5jIGIvc291bmQvc29jL2ZzbC9mc2xfZG1hLmMKaW5kZXggNzhkZTcxNi4uZGEyYmM1OSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2ZzbC9mc2xfZG1hLmMKKysrIGIvc291bmQvc29jL2ZzbC9mc2xfZG1hLmMKQEAgLTI4Miw3ICsyODIsNyBAQAogICogb25jZSBmb3IgZWFjaCAuZGFpX2xpbmsgaW4gdGhlIG1hY2hpbmUgZHJpdmVyJ3Mgc25kX3NvY19tYWNoaW5lCiAgKiBzdHJ1Y3R1cmUuCiAgKi8KLXN0YXRpYyBpbnQgZnNsX2RtYV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwKK3N0YXRpYyBpbnQgZnNsX2RtYV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKIAlzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogewogCXN0YXRpYyB1NjQgZnNsX2RtYV9kbWFtYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9mc2wvZnNsX2RtYS5oIGIvc291bmQvc29jL2ZzbC9mc2xfZG1hLmgKaW5kZXggNDMwYTZjZS4uMzg1ZDRhNCAxMDA2NDQKLS0tIGEvc291bmQvc29jL2ZzbC9mc2xfZG1hLmgKKysrIGIvc291bmQvc29jL2ZzbC9mc2xfZG1hLmgKQEAgLTEyNiw3ICsxMjYsNyBAQAogCXU4IHJlc1s0XTsgICAgICAvKiBSZXNlcnZlZCAqLwogfSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCgzMiksIHBhY2tlZCkpOwogCi0vKiBETUEgaW5mb3JtYXRpb24gbmVlZGVkIHRvIGNyZWF0ZSBhIHNuZF9zb2NfY3B1X2RhaSBvYmplY3QKKy8qIERNQSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gY3JlYXRlIGEgc25kX3NvY19kYWkgb2JqZWN0CiAgKgogICogc3NpX3N0eF9waHlzOiBidXMgYWRkcmVzcyBvZiBTU0kgU1RYIHJlZ2lzdGVyIHRvIHVzZQogICogc3NpX3NyeF9waHlzOiBidXMgYWRkcmVzcyBvZiBTU0kgU1JYIHJlZ2lzdGVyIHRvIHVzZQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2ZzbC9mc2xfc3NpLmMgYi9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuYwppbmRleCBmNTg4NTQ1Li43MWJmZjMzIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuYworKysgYi9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuYwpAQCAtODIsNyArODIsNyBAQAogCXN0cnVjdCBkZXZpY2UgKmRldjsKIAl1bnNpZ25lZCBpbnQgcGxheWJhY2s7CiAJdW5zaWduZWQgaW50IGNhcHR1cmU7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBjcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSBjcHVfZGFpOwogCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGRldl9hdHRyOwogCiAJc3RydWN0IHsKQEAgLTQ3OSw3ICs0NzksNyBAQAogICogQGZyZXE6IHRoZSBmcmVxdWVuY3kgb2YgdGhlIGdpdmVuIGNsb2NrIElELCBjdXJyZW50bHkgaWdub3JlZAogICogQGRpcjogU05EX1NPQ19DTE9DS19JTiAoY2xvY2sgc2xhdmUpIG9yIFNORF9TT0NfQ0xPQ0tfT1VUIChjbG9jayBtYXN0ZXIpCiAgKi8KLXN0YXRpYyBpbnQgZnNsX3NzaV9zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IGZzbF9zc2lfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCQkgICAgICBpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKIHsKIApAQCAtNDk3LDcgKzQ5Nyw3IEBACiAgKgogICogQGZvcm1hdDogb25lIG9mIFNORF9TT0NfREFJRk1UX3h4eAogICovCi1zdGF0aWMgaW50IGZzbF9zc2lfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLCB1bnNpZ25lZCBpbnQgZm9ybWF0KQorc3RhdGljIGludCBmc2xfc3NpX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLCB1bnNpZ25lZCBpbnQgZm9ybWF0KQogewogCXJldHVybiAoZm9ybWF0ID09IFNORF9TT0NfREFJRk1UX0kyUykgPyAwIDogLUVJTlZBTDsKIH0KQEAgLTUwNSw3ICs1MDUsNyBAQAogLyoqCiAgKiBmc2xfc3NpX2RhaV90ZW1wbGF0ZTogdGVtcGxhdGUgQ1BVIERBSSBmb3IgdGhlIFNTSQogICovCi1zdGF0aWMgc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBmc2xfc3NpX2RhaV90ZW1wbGF0ZSA9IHsKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWkgZnNsX3NzaV9kYWlfdGVtcGxhdGUgPSB7CiAJLnBsYXliYWNrID0gewogCQkvKiBUaGUgU1NJIGRvZXMgbm90IHN1cHBvcnQgbW9uYXVyYWwgYXVkaW8uICovCiAJCS5jaGFubmVsc19taW4gPSAyLApAQCAtNTY5LDE1ICs1NjksMTUgQEAKIH0KIAogLyoqCi0gKiBmc2xfc3NpX2NyZWF0ZV9kYWk6IGNyZWF0ZSBhIHNuZF9zb2NfY3B1X2RhaSBzdHJ1Y3R1cmUKKyAqIGZzbF9zc2lfY3JlYXRlX2RhaTogY3JlYXRlIGEgc25kX3NvY19kYWkgc3RydWN0dXJlCiAgKgotICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIG1hY2hpbmUgZHJpdmVyIHRvIGNyZWF0ZSBhIHNuZF9zb2NfY3B1X2RhaQorICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIG1hY2hpbmUgZHJpdmVyIHRvIGNyZWF0ZSBhIHNuZF9zb2NfZGFpCiAgKiBzdHJ1Y3R1cmUuICBUaGUgZnVuY3Rpb24gY3JlYXRlcyBhbiBzc2lfcHJpdmF0ZSBvYmplY3QsIHdoaWNoIGNvbnRhaW5zCi0gKiB0aGUgc25kX3NvY19jcHVfZGFpLiAgSXQgYWxzbyBjcmVhdGVzIHRoZSBzeXNmcyBzdGF0aXN0aWNzIGRldmljZS4KKyAqIHRoZSBzbmRfc29jX2RhaS4gIEl0IGFsc28gY3JlYXRlcyB0aGUgc3lzZnMgc3RhdGlzdGljcyBkZXZpY2UuCiAgKi8KLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmZzbF9zc2lfY3JlYXRlX2RhaShzdHJ1Y3QgZnNsX3NzaV9pbmZvICpzc2lfaW5mbykKK3N0cnVjdCBzbmRfc29jX2RhaSAqZnNsX3NzaV9jcmVhdGVfZGFpKHN0cnVjdCBmc2xfc3NpX2luZm8gKnNzaV9pbmZvKQogewotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmZzbF9zc2lfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqZnNsX3NzaV9kYWk7CiAJc3RydWN0IGZzbF9zc2lfcHJpdmF0ZSAqc3NpX3ByaXZhdGU7CiAJaW50IHJldCA9IDA7CiAJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRldl9hdHRyOwpAQCAtNTg4LDcgKzU4OCw3IEBACiAJCXJldHVybiBOVUxMOwogCX0KIAltZW1jcHkoJnNzaV9wcml2YXRlLT5jcHVfZGFpLCAmZnNsX3NzaV9kYWlfdGVtcGxhdGUsCi0JICAgICAgIHNpemVvZihzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpKSk7CisJICAgICAgIHNpemVvZihzdHJ1Y3Qgc25kX3NvY19kYWkpKTsKIAogCWZzbF9zc2lfZGFpID0gJnNzaV9wcml2YXRlLT5jcHVfZGFpOwogCWRldl9hdHRyID0gJnNzaV9wcml2YXRlLT5kZXZfYXR0cjsKQEAgLTYyMywxMSArNjIzLDExIEBACiBFWFBPUlRfU1lNQk9MX0dQTChmc2xfc3NpX2NyZWF0ZV9kYWkpOwogCiAvKioKLSAqIGZzbF9zc2lfZGVzdHJveV9kYWk6IGRlc3Ryb3kgdGhlIHNuZF9zb2NfY3B1X2RhaSBvYmplY3QKKyAqIGZzbF9zc2lfZGVzdHJveV9kYWk6IGRlc3Ryb3kgdGhlIHNuZF9zb2NfZGFpIG9iamVjdAogICoKICAqIFRoaXMgZnVuY3Rpb24gdW5kb2VzIHRoZSBvcGVyYXRpb25zIG9mIGZzbF9zc2lfY3JlYXRlX2RhaSgpCiAgKi8KLXZvaWQgZnNsX3NzaV9kZXN0cm95X2RhaShzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpmc2xfc3NpX2RhaSkKK3ZvaWQgZnNsX3NzaV9kZXN0cm95X2RhaShzdHJ1Y3Qgc25kX3NvY19kYWkgKmZzbF9zc2lfZGFpKQogewogCXN0cnVjdCBmc2xfc3NpX3ByaXZhdGUgKnNzaV9wcml2YXRlID0KIAljb250YWluZXJfb2YoZnNsX3NzaV9kYWksIHN0cnVjdCBmc2xfc3NpX3ByaXZhdGUsIGNwdV9kYWkpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2ZzbC9mc2xfc3NpLmggYi9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuaAppbmRleCBjNWNlODhlLi44M2I0NGQ3IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuaAorKysgYi9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuaApAQCAtMjE3LDggKzIxNyw4IEBACiAJc3RydWN0IGRldmljZSAqZGV2OwogfTsKIAotc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZnNsX3NzaV9jcmVhdGVfZGFpKHN0cnVjdCBmc2xfc3NpX2luZm8gKnNzaV9pbmZvKTsKLXZvaWQgZnNsX3NzaV9kZXN0cm95X2RhaShzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpmc2xfc3NpX2RhaSk7CitzdHJ1Y3Qgc25kX3NvY19kYWkgKmZzbF9zc2lfY3JlYXRlX2RhaShzdHJ1Y3QgZnNsX3NzaV9pbmZvICpzc2lfaW5mbyk7Cit2b2lkIGZzbF9zc2lfZGVzdHJveV9kYWkoc3RydWN0IHNuZF9zb2NfZGFpICpmc2xfc3NpX2RhaSk7CiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZnNsL21wYzg2MTBfaHBjZC5jIGIvc291bmQvc29jL2ZzbC9tcGM4NjEwX2hwY2QuYwppbmRleCBhMDBhYWM3Li40YmRjOWQ4IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL21wYzg2MTBfaHBjZC5jCisrKyBiL3NvdW5kL3NvYy9mc2wvbXBjODYxMF9ocGNkLmMKQEAgLTU4LDkgKzU4LDkgQEAKIAkJc291bmRfZGV2aWNlLT5kZXYucGxhdGZvcm1fZGF0YTsKIAogCS8qIFByb2dyYW0gdGhlIHNpZ25hbCByb3V0aW5nIGJldHdlZW4gdGhlIFNTSSBhbmQgdGhlIERNQSAqLwotCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQgKyAxLAorCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQsCiAJCW1hY2hpbmVfZGF0YS0+ZG1hX2NoYW5uZWxfaWRbMF0sIENDU1JfR1VUU19ETUFDUl9ERVZfU1NJKTsKLQlndXRzX3NldF9kbWFjcihtYWNoaW5lX2RhdGEtPmd1dHMsIG1hY2hpbmVfZGF0YS0+ZG1hX2lkICsgMSwKKwlndXRzX3NldF9kbWFjcihtYWNoaW5lX2RhdGEtPmd1dHMsIG1hY2hpbmVfZGF0YS0+ZG1hX2lkLAogCQltYWNoaW5lX2RhdGEtPmRtYV9jaGFubmVsX2lkWzFdLCBDQ1NSX0dVVFNfRE1BQ1JfREVWX1NTSSk7CiAKIAlndXRzX3NldF9wbXV4Y3JfZG1hKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQsCkBAIC05Niw2MiArOTYsNTIgQEAKIHN0YXRpYyBpbnQgbXBjODYxMF9ocGNkX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCXN0cnVjdCBtcGM4NjEwX2hwY2RfZGF0YSAqbWFjaGluZV9kYXRhID0KIAkJcnRkLT5zb2NkZXYtPmRldi0+cGxhdGZvcm1fZGF0YTsKIAlpbnQgcmV0ID0gMDsKIAogCS8qIFRlbGwgdGhlIENQVSBkcml2ZXIgd2hhdCB0aGUgc2VyaWFsIHByb3RvY29sIGlzLiAqLwotCWlmIChjcHVfZGFpLT5kYWlfb3BzLnNldF9mbXQpIHsKLQkJcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksCi0JCQltYWNoaW5lX2RhdGEtPmRhaV9mb3JtYXQpOwotCQlpZiAocmV0IDwgMCkgewotCQkJZGV2X2VycihzdWJzdHJlYW0tPnBjbS0+Y2FyZC0+ZGV2LAotCQkJCSJjb3VsZCBub3Qgc2V0IENQVSBkcml2ZXIgYXVkaW8gZm9ybWF0XG4iKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNwdV9kYWksIG1hY2hpbmVfZGF0YS0+ZGFpX2Zvcm1hdCk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihzdWJzdHJlYW0tPnBjbS0+Y2FyZC0+ZGV2LAorCQkJImNvdWxkIG5vdCBzZXQgQ1BVIGRyaXZlciBhdWRpbyBmb3JtYXRcbiIpOworCQlyZXR1cm4gcmV0OwogCX0KIAogCS8qIFRlbGwgdGhlIGNvZGVjIGRyaXZlciB3aGF0IHRoZSBzZXJpYWwgcHJvdG9jb2wgaXMuICovCi0JaWYgKGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KSB7Ci0JCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KGNvZGVjX2RhaSwKLQkJCW1hY2hpbmVfZGF0YS0+ZGFpX2Zvcm1hdCk7Ci0JCWlmIChyZXQgPCAwKSB7Ci0JCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCi0JCQkJImNvdWxkIG5vdCBzZXQgY29kZWMgZHJpdmVyIGF1ZGlvIGZvcm1hdFxuIik7Ci0JCQlyZXR1cm4gcmV0OwotCQl9CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIG1hY2hpbmVfZGF0YS0+ZGFpX2Zvcm1hdCk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihzdWJzdHJlYW0tPnBjbS0+Y2FyZC0+ZGV2LAorCQkJImNvdWxkIG5vdCBzZXQgY29kZWMgZHJpdmVyIGF1ZGlvIGZvcm1hdFxuIik7CisJCXJldHVybiByZXQ7CiAJfQogCiAJLyoKIAkgKiBUZWxsIHRoZSBDUFUgZHJpdmVyIHdoYXQgdGhlIGNsb2NrIGZyZXF1ZW5jeSBpcywgYW5kIHdoZXRoZXIgaXQncyBhCiAJICogc2xhdmUgb3IgbWFzdGVyLgogCSAqLwotCWlmIChjcHVfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGspIHsKLQkJcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNwdV9kYWksIDAsCi0JCQltYWNoaW5lX2RhdGEtPmNsa19mcmVxdWVuY3ksCi0JCQltYWNoaW5lX2RhdGEtPmNwdV9jbGtfZGlyZWN0aW9uKTsKLQkJaWYgKHJldCA8IDApIHsKLQkJCWRldl9lcnIoc3Vic3RyZWFtLT5wY20tPmNhcmQtPmRldiwKLQkJCQkiY291bGQgbm90IHNldCBDUFUgZHJpdmVyIGNsb2NrIHBhcmFtZXRlcnNcbiIpOwotCQkJcmV0dXJuIHJldDsKLQkJfQorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY3B1X2RhaSwgMCwKKwkJCQkJbWFjaGluZV9kYXRhLT5jbGtfZnJlcXVlbmN5LAorCQkJCQltYWNoaW5lX2RhdGEtPmNwdV9jbGtfZGlyZWN0aW9uKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCisJCQkiY291bGQgbm90IHNldCBDUFUgZHJpdmVyIGNsb2NrIHBhcmFtZXRlcnNcbiIpOworCQlyZXR1cm4gcmV0OwogCX0KIAogCS8qCiAJICogVGVsbCB0aGUgY29kZWMgZHJpdmVyIHdoYXQgdGhlIE1DTEsgZnJlcXVlbmN5IGlzLCBhbmQgd2hldGhlciBpdCdzCiAJICogYSBzbGF2ZSBvciBtYXN0ZXIuCiAJICovCi0JaWYgKGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKSB7Ci0JCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgMCwKLQkJCW1hY2hpbmVfZGF0YS0+Y2xrX2ZyZXF1ZW5jeSwKLQkJCW1hY2hpbmVfZGF0YS0+Y29kZWNfY2xrX2RpcmVjdGlvbik7Ci0JCWlmIChyZXQgPCAwKSB7Ci0JCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCi0JCQkJImNvdWxkIG5vdCBzZXQgY29kZWMgZHJpdmVyIGNsb2NrIHBhcmFtc1xuIik7Ci0JCQlyZXR1cm4gcmV0OwotCQl9CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIDAsCisJCQkJCW1hY2hpbmVfZGF0YS0+Y2xrX2ZyZXF1ZW5jeSwKKwkJCQkJbWFjaGluZV9kYXRhLT5jb2RlY19jbGtfZGlyZWN0aW9uKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCisJCQkiY291bGQgbm90IHNldCBjb2RlYyBkcml2ZXIgY2xvY2sgcGFyYW1zXG4iKTsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTE3MCw5ICsxNjAsOSBAQAogCiAJLyogUmVzdG9yZSB0aGUgc2lnbmFsIHJvdXRpbmcgKi8KIAotCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQgKyAxLAorCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQsCiAJCW1hY2hpbmVfZGF0YS0+ZG1hX2NoYW5uZWxfaWRbMF0sIDApOwotCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQgKyAxLAorCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQsCiAJCW1hY2hpbmVfZGF0YS0+ZG1hX2NoYW5uZWxfaWRbMV0sIDApOwogCiAJc3dpdGNoIChtYWNoaW5lX2RhdGEtPnNzaV9pZCkgewpAQCAtMTgyLDcgKzE3Miw3IEBACiAJCWJyZWFrOwogCWNhc2UgMToKIAkJY2xyc2V0Yml0c19iZTMyKCZtYWNoaW5lX2RhdGEtPmd1dHMtPnBtdXhjciwKLQkJCUNDU1JfR1VUU19QTVVYQ1JfU1NJMl9NQVNLLCBDQ1NSX0dVVFNfUE1VWENSX1NTSTFfTEEpOworCQkJQ0NTUl9HVVRTX1BNVVhDUl9TU0kyX01BU0ssIENDU1JfR1VUU19QTVVYQ1JfU1NJMl9MQSk7CiAJCWJyZWFrOwogCX0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL29tYXAvS2NvbmZpZyBiL3NvdW5kL3NvYy9vbWFwL0tjb25maWcKaW5kZXggMDIzMGQ4My4uYWVhMjdlNyAxMDA2NDQKLS0tIGEvc291bmQvc29jL29tYXAvS2NvbmZpZworKysgYi9zb3VuZC9zb2Mvb21hcC9LY29uZmlnCkBAIC0xLDUgKzEsMyBAQAotbWVudSAiU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUCIKLQogY29uZmlnIFNORF9PTUFQX1NPQwogCXRyaXN0YXRlICJTb0MgQXVkaW8gZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cyBPTUFQIGNoaXBzIgogCWRlcGVuZHMgb24gQVJDSF9PTUFQICYmIFNORF9TT0MKQEAgLTE1LDUgKzEzLDMgQEAKIAlzZWxlY3QgU05EX1NPQ19UTFYzMjBBSUMzWAogCWhlbHAKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBTb0MgYXVkaW8gb24gTm9raWEgTjgxMC4KLQotZW5kbWVudQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL29tYXAvbjgxMC5jIGIvc291bmQvc29jL29tYXAvbjgxMC5jCmluZGV4IDY1MzM1NjMuLjAyY2VjOTY4IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvb21hcC9uODEwLmMKKysrIGIvc291bmQvc29jL29tYXAvbjgxMC5jCkBAIC0zMCwxNSArMzAsMTUgQEAKIAogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21jYnNwLmg+CiAKICNpbmNsdWRlICJvbWFwLW1jYnNwLmgiCiAjaW5jbHVkZSAib21hcC1wY20uaCIKICNpbmNsdWRlICIuLi9jb2RlY3MvdGx2MzIwYWljM3guaCIKIAotI2RlZmluZSBSWDQ0X0hFQURTRVRfQU1QX0dQSU8JMTAKLSNkZWZpbmUgUlg0NF9TUEVBS0VSX0FNUF9HUElPCTEwMQorI2RlZmluZSBOODEwX0hFQURTRVRfQU1QX0dQSU8JMTAKKyNkZWZpbmUgTjgxMF9TUEVBS0VSX0FNUF9HUElPCTEwMQogCiBzdGF0aWMgc3RydWN0IGNsayAqc3lzX2Nsa291dDI7CiBzdGF0aWMgc3RydWN0IGNsayAqc3lzX2Nsa291dDJfc3JjOwpAQCAtNDYsMTMgKzQ2LDI2IEBACiAKIHN0YXRpYyBpbnQgbjgxMF9zcGtfZnVuYzsKIHN0YXRpYyBpbnQgbjgxMF9qYWNrX2Z1bmM7CitzdGF0aWMgaW50IG44MTBfZG1pY19mdW5jOwogCiBzdGF0aWMgdm9pZCBuODEwX2V4dF9jb250cm9sKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiRXh0IFNwayIsIG44MTBfc3BrX2Z1bmMpOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIG44MTBfamFja19mdW5jKTsKKwlpZiAobjgxMF9zcGtfZnVuYykKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CisJZWxzZQorCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CiAKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCWlmIChuODEwX2phY2tfZnVuYykKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCWVsc2UKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKworCWlmIChuODEwX2RtaWNfZnVuYykKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJETWljIik7CisJZWxzZQorCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJETWljIik7CisKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiB9CiAKIHN0YXRpYyBpbnQgbjgxMF9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQpAQCAtNzMsMTIgKzg2LDEyIEBACiAJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCWludCBlcnI7CiAKIAkvKiBTZXQgY29kZWMgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQllcnIgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2ZtdChjb2RlY19kYWksCisJZXJyID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksCiAJCQkJCSBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQkJCQkgU05EX1NPQ19EQUlGTVRfTkJfTkYgfAogCQkJCQkgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSk7CkBAIC04Niw3ICs5OSw3IEBACiAJCXJldHVybiBlcnI7CiAKIAkvKiBTZXQgY3B1IERBSSBjb25maWd1cmF0aW9uICovCi0JZXJyID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksCisJZXJyID0gc25kX3NvY19kYWlfc2V0X2ZtdChjcHVfZGFpLAogCQkJCSAgICAgICBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQkJCSAgICAgICBTTkRfU09DX0RBSUZNVF9OQl9ORiB8CiAJCQkJICAgICAgIFNORF9TT0NfREFJRk1UX0NCTV9DRk0pOwpAQCAtOTQsNyArMTA3LDcgQEAKIAkJcmV0dXJuIGVycjsKIAogCS8qIFNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCWVyciA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgMCwgMTIwMDAwMDAsCisJZXJyID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIDAsIDEyMDAwMDAwLAogCQkJCQkgICAgU05EX1NPQ19DTE9DS19JTik7CiAKIAlyZXR1cm4gZXJyOwpAQCAtMTUwLDEzICsxNjMsMzUgQEAKIAlyZXR1cm4gMTsKIH0KIAorc3RhdGljIGludCBuODEwX2dldF9pbnB1dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwkJCSAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBuODEwX2RtaWNfZnVuYzsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG44MTBfc2V0X2lucHV0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSAgc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCisJaWYgKG44MTBfZG1pY19mdW5jID09IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdKQorCQlyZXR1cm4gMDsKKworCW44MTBfZG1pY19mdW5jID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CisJbjgxMF9leHRfY29udHJvbChjb2RlYyk7CisKKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIGludCBuODEwX3Nwa19ldmVudChzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqdywKIAkJCSAgc3RydWN0IHNuZF9rY29udHJvbCAqaywgaW50IGV2ZW50KQogewogCWlmIChTTkRfU09DX0RBUE1fRVZFTlRfT04oZXZlbnQpKQotCQlvbWFwX3NldF9ncGlvX2RhdGFvdXQoUlg0NF9TUEVBS0VSX0FNUF9HUElPLCAxKTsKKwkJZ3Bpb19zZXRfdmFsdWUoTjgxMF9TUEVBS0VSX0FNUF9HUElPLCAxKTsKIAllbHNlCi0JCW9tYXBfc2V0X2dwaW9fZGF0YW91dChSWDQ0X1NQRUFLRVJfQU1QX0dQSU8sIDApOworCQlncGlvX3NldF92YWx1ZShOODEwX1NQRUFLRVJfQU1QX0dQSU8sIDApOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNjUsOSArMjAwLDkgQEAKIAkJCSAgIHN0cnVjdCBzbmRfa2NvbnRyb2wgKmssIGludCBldmVudCkKIHsKIAlpZiAoU05EX1NPQ19EQVBNX0VWRU5UX09OKGV2ZW50KSkKLQkJb21hcF9zZXRfZ3Bpb19kYXRhb3V0KFJYNDRfSEVBRFNFVF9BTVBfR1BJTywgMSk7CisJCWdwaW9fc2V0X3ZhbHVlKE44MTBfSEVBRFNFVF9BTVBfR1BJTywgMSk7CiAJZWxzZQotCQlvbWFwX3NldF9ncGlvX2RhdGFvdXQoUlg0NF9IRUFEU0VUX0FNUF9HUElPLCAwKTsKKwkJZ3Bpb19zZXRfdmFsdWUoTjgxMF9IRUFEU0VUX0FNUF9HUElPLCAwKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTc1LDIxICsyMTAsMjcgQEAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCBhaWMzM19kYXBtX3dpZGdldHNbXSA9IHsKIAlTTkRfU09DX0RBUE1fU1BLKCJFeHQgU3BrIiwgbjgxMF9zcGtfZXZlbnQpLAogCVNORF9TT0NfREFQTV9IUCgiSGVhZHBob25lIEphY2siLCBuODEwX2phY2tfZXZlbnQpLAorCVNORF9TT0NfREFQTV9NSUMoIkRNaWMiLCBOVUxMKSwKIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCXsiSGVhZHBob25lIEphY2siLCBOVUxMLCAiSFBMT1VUIn0sCiAJeyJIZWFkcGhvbmUgSmFjayIsIE5VTEwsICJIUFJPVVQifSwKIAogCXsiRXh0IFNwayIsIE5VTEwsICJMTE9VVCJ9LAogCXsiRXh0IFNwayIsIE5VTEwsICJSTE9VVCJ9LAorCisJeyJETWljIFJhdGUgNjQiLCBOVUxMLCAiTWljIEJpYXMgMlYifSwKKwl7Ik1pYyBCaWFzIDJWIiwgTlVMTCwgIkRNaWMifSwKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICpzcGtfZnVuY3Rpb25bXSA9IHsiT2ZmIiwgIk9uIn07CiBzdGF0aWMgY29uc3QgY2hhciAqamFja19mdW5jdGlvbltdID0geyJPZmYiLCAiSGVhZHBob25lIn07CitzdGF0aWMgY29uc3QgY2hhciAqaW5wdXRfZnVuY3Rpb25bXSA9IHsiQURDIiwgIkRpZ2l0YWwgTWljIn07CiBzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIG44MTBfZW51bVtdID0gewogCVNPQ19FTlVNX1NJTkdMRV9FWFQoQVJSQVlfU0laRShzcGtfZnVuY3Rpb24pLCBzcGtfZnVuY3Rpb24pLAogCVNPQ19FTlVNX1NJTkdMRV9FWFQoQVJSQVlfU0laRShqYWNrX2Z1bmN0aW9uKSwgamFja19mdW5jdGlvbiksCisJU09DX0VOVU1fU0lOR0xFX0VYVChBUlJBWV9TSVpFKGlucHV0X2Z1bmN0aW9uKSwgaW5wdXRfZnVuY3Rpb24pLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFpYzMzX244MTBfY29udHJvbHNbXSA9IHsKQEAgLTE5Nyw2ICsyMzgsOCBAQAogCQkgICAgIG44MTBfZ2V0X3NwaywgbjgxMF9zZXRfc3BrKSwKIAlTT0NfRU5VTV9FWFQoIkphY2sgRnVuY3Rpb24iLCBuODEwX2VudW1bMV0sCiAJCSAgICAgbjgxMF9nZXRfamFjaywgbjgxMF9zZXRfamFjayksCisJU09DX0VOVU1fRVhUKCJJbnB1dCBTZWxlY3QiLCAgbjgxMF9lbnVtWzJdLAorCQkgICAgIG44MTBfZ2V0X2lucHV0LCBuODEwX3NldF9pbnB1dCksCiB9OwogCiBzdGF0aWMgaW50IG44MTBfYWljMzNfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCkBAIC0yMDQsOSArMjQ3LDkgQEAKIAlpbnQgaSwgZXJyOwogCiAJLyogTm90IGNvbm5lY3RlZCAqLwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNT05PX0xPVVQiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSFBMQ09NIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhQUkNPTSIsIDApOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1PTk9fTE9VVCIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhQTENPTSIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhQUkNPTSIpOwogCiAJLyogQWRkIE44MTAgc3BlY2lmaWMgY29udHJvbHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhaWMzM19uODEwX2NvbnRyb2xzKTsgaSsrKSB7CkBAIC0yMTcsMTUgKzI2MCwxMyBAQAogCX0KIAogCS8qIEFkZCBOODEwIHNwZWNpZmljIHdpZGdldHMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhaWMzM19kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJmFpYzMzX2RhcG1fd2lkZ2V0c1tpXSk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgYWljMzNfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRShhaWMzM19kYXBtX3dpZGdldHMpKTsKIAogCS8qIFNldCB1cCBOODEwIHNwZWNpZmljIGF1ZGlvIHBhdGggYXVkaW9fbWFwICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYXVkaW9fbWFwKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjUwLDYgKzI5MSw4IEBACiAvKiBBdWRpbyBwcml2YXRlIGRhdGEgKi8KIHN0YXRpYyBzdHJ1Y3QgYWljM3hfc2V0dXBfZGF0YSBuODEwX2FpYzMzX3NldHVwID0gewogCS5pMmNfYWRkcmVzcyA9IDB4MTgsCisJLmdwaW9fZnVuY1swXSA9IEFJQzNYX0dQSU8xX0ZVTkNfRElTQUJMRUQsCisJLmdwaW9fZnVuY1sxXSA9IEFJQzNYX0dQSU8yX0ZVTkNfRElHSVRBTF9NSUNfSU5QVVQsCiB9OwogCiAvKiBBdWRpbyBzdWJzeXN0ZW0gKi8KQEAgLTI2Nyw3ICszMTAsNyBAQAogCWludCBlcnI7CiAJc3RydWN0IGRldmljZSAqZGV2OwogCi0JaWYgKCFtYWNoaW5lX2lzX25va2lhX244MTAoKSkKKwlpZiAoIShtYWNoaW5lX2lzX25va2lhX244MTAoKSB8fCBtYWNoaW5lX2lzX25va2lhX244MTBfd2ltYXgoKSkpCiAJCXJldHVybiAtRU5PREVWOwogCiAJbjgxMF9zbmRfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJzb2MtYXVkaW8iLCAtMSk7CkBAIC0zMDUsMTIgKzM0OCwxMiBAQAogCWNsa19zZXRfcGFyZW50KHN5c19jbGtvdXQyX3NyYywgZnVuYzk2bV9jbGspOwogCWNsa19zZXRfcmF0ZShzeXNfY2xrb3V0MiwgMTIwMDAwMDApOwogCi0JaWYgKG9tYXBfcmVxdWVzdF9ncGlvKFJYNDRfSEVBRFNFVF9BTVBfR1BJTykgPCAwKQorCWlmIChncGlvX3JlcXVlc3QoTjgxMF9IRUFEU0VUX0FNUF9HUElPLCAiaHNfYW1wIikgPCAwKQogCQlCVUcoKTsKLQlpZiAob21hcF9yZXF1ZXN0X2dwaW8oUlg0NF9TUEVBS0VSX0FNUF9HUElPKSA8IDApCisJaWYgKGdwaW9fcmVxdWVzdChOODEwX1NQRUFLRVJfQU1QX0dQSU8sICJzcGtfYW1wIikgPCAwKQogCQlCVUcoKTsKLQlvbWFwX3NldF9ncGlvX2RpcmVjdGlvbihSWDQ0X0hFQURTRVRfQU1QX0dQSU8sIDApOwotCW9tYXBfc2V0X2dwaW9fZGlyZWN0aW9uKFJYNDRfU1BFQUtFUl9BTVBfR1BJTywgMCk7CisJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KE44MTBfSEVBRFNFVF9BTVBfR1BJTywgMCk7CisJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KE44MTBfU1BFQUtFUl9BTVBfR1BJTywgMCk7CiAKIAlyZXR1cm4gMDsKIGVycjI6CkBAIC0zMjUsNiArMzY4LDkgQEAKIAogc3RhdGljIHZvaWQgX19leGl0IG44MTBfc29jX2V4aXQodm9pZCkKIHsKKwlncGlvX2ZyZWUoTjgxMF9TUEVBS0VSX0FNUF9HUElPKTsKKwlncGlvX2ZyZWUoTjgxMF9IRUFEU0VUX0FNUF9HUElPKTsKKwogCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKG44MTBfc25kX2RldmljZSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9vbWFwL29tYXAtbWNic3AuYyBiL3NvdW5kL3NvYy9vbWFwL29tYXAtbWNic3AuYwppbmRleCA0MGQ4N2U2Li4wMGIwYzlkIDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvb21hcC9vbWFwLW1jYnNwLmMKKysrIGIvc291bmQvc29jL29tYXAvb21hcC1tY2JzcC5jCkBAIC0xMDMsNyArMTAzLDcgQEAKIHN0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCXN0cnVjdCBvbWFwX21jYnNwX2RhdGEgKm1jYnNwX2RhdGEgPSB0b19tY2JzcChjcHVfZGFpLT5wcml2YXRlX2RhdGEpOwogCWludCBlcnIgPSAwOwogCkBAIC0xMTYsNyArMTE2LDcgQEAKIHN0YXRpYyB2b2lkIG9tYXBfbWNic3BfZGFpX3NodXRkb3duKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJc3RydWN0IG9tYXBfbWNic3BfZGF0YSAqbWNic3BfZGF0YSA9IHRvX21jYnNwKGNwdV9kYWktPnByaXZhdGVfZGF0YSk7CiAKIAlpZiAoIWNwdV9kYWktPmFjdGl2ZSkgewpAQCAtMTI4LDcgKzEyOCw3IEBACiBzdGF0aWMgaW50IG9tYXBfbWNic3BfZGFpX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9kYXRhICptY2JzcF9kYXRhID0gdG9fbWNic3AoY3B1X2RhaS0+cHJpdmF0ZV9kYXRhKTsKIAlpbnQgZXJyID0gMDsKIApAQCAtMTU3LDcgKzE1Nyw3IEBACiAJCQkJICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJc3RydWN0IG9tYXBfbWNic3BfZGF0YSAqbWNic3BfZGF0YSA9IHRvX21jYnNwKGNwdV9kYWktPnByaXZhdGVfZGF0YSk7CiAJc3RydWN0IG9tYXBfbWNic3BfcmVnX2NmZyAqcmVncyA9ICZtY2JzcF9kYXRhLT5yZWdzOwogCWludCBkbWEsIGJ1c19pZCA9IG1jYnNwX2RhdGEtPmJ1c19pZCwgaWQgPSBjcHVfZGFpLT5pZDsKQEAgLTIyMyw3ICsyMjMsNyBAQAogICogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgX3NldF9jbGtkaXYgYW5kIF9zZXRfc3lzY2xrIHNpbmNlIE1jQlNQIHJlZ2lzdGVyCiAgKiBjYWNoZSBpcyBpbml0aWFsaXplZCBoZXJlCiAgKi8KLXN0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCSAgICAgIHVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IG9tYXBfbWNic3BfZGF0YSAqbWNic3BfZGF0YSA9IHRvX21jYnNwKGNwdV9kYWktPnByaXZhdGVfZGF0YSk7CkBAIC0yOTIsNyArMjkyLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBvbWFwX21jYnNwX2RhaV9zZXRfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IG9tYXBfbWNic3BfZGFpX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCSAgICAgaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9kYXRhICptY2JzcF9kYXRhID0gdG9fbWNic3AoY3B1X2RhaS0+cHJpdmF0ZV9kYXRhKTsKQEAgLTM0Nyw3ICszNDcsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG9tYXBfbWNic3BfZGFpX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IG9tYXBfbWNic3BfZGFpX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJCQkJIGludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLAogCQkJCQkgaW50IGRpcikKIHsKQEAgLTM3Niw3ICszNzYsNyBAQAogCXJldHVybiBlcnI7CiB9CiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgb21hcF9tY2JzcF9kYWlbTlVNX0xJTktTXSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSBvbWFwX21jYnNwX2RhaVtOVU1fTElOS1NdID0gewogewogCS5uYW1lID0gIm9tYXAtbWNic3AtZGFpIiwKIAkuaWQgPSAwLApkaWZmIC0tZ2l0IGEvc291bmQvc29jL29tYXAvb21hcC1tY2JzcC5oIGIvc291bmQvc29jL29tYXAvb21hcC1tY2JzcC5oCmluZGV4IDk5NjVmZDQuLmVkOGFmYjUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9vbWFwL29tYXAtbWNic3AuaAorKysgYi9zb3VuZC9zb2Mvb21hcC9vbWFwLW1jYnNwLmgKQEAgLTQ0LDYgKzQ0LDYgQEAKICAqLwogI2RlZmluZSBOVU1fTElOS1MJMQogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBvbWFwX21jYnNwX2RhaVtOVU1fTElOS1NdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBvbWFwX21jYnNwX2RhaVtOVU1fTElOS1NdOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9vbWFwL29tYXAtcGNtLmMgYi9zb3VuZC9zb2Mvb21hcC9vbWFwLXBjbS5jCmluZGV4IDYyMzcwMjAuLmUwOTJmM2QgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9vbWFwL29tYXAtcGNtLmMKKysrIGIvc291bmQvc29jL29tYXAvb21hcC1wY20uYwpAQCAtMzE2LDcgKzMxNiw3IEBACiAJfQogfQogCi1pbnQgb21hcF9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksCitpbnQgb21hcF9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCiAJCSBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogewogCWludCByZXQgPSAwOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS9LY29uZmlnIGIvc291bmQvc29jL3B4YS9LY29uZmlnCmluZGV4IDQ4NGY4ODMuLjEyZjZhYzkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvcHhhL0tjb25maWcKQEAgLTEsNiArMSw2IEBACiBjb25maWcgU05EX1BYQTJYWF9TT0MKIAl0cmlzdGF0ZSAiU29DIEF1ZGlvIGZvciB0aGUgSW50ZWwgUFhBMnh4IGNoaXAiCi0JZGVwZW5kcyBvbiBBUkNIX1BYQSAmJiBTTkRfU09DCisJZGVwZW5kcyBvbiBBUkNIX1BYQQogCWhlbHAKIAkgIFNheSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIGNvZGVjcyBhdHRhY2hlZCB0bwogCSAgdGhlIFBYQTJ4eCBBQzk3LCBJMlMgb3IgU1NQIGludGVyZmFjZS4gWW91IHdpbGwgYWxzbyBuZWVkCkBAIC02MiwzICs2MiwxMiBAQAogCWhlbHAKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBTb0MgYXVkaW8gb24gdGhlCiAJICBUb3NoaWJhIGU4MDAgUERBCisKK2NvbmZpZyBTTkRfUFhBMlhYX1NPQ19FTV9YMjcwCisJdHJpc3RhdGUgIlNvQyBBdWRpbyBzdXBwb3J0IGZvciBDb21wdUxhYiBFTS14MjcwIgorCWRlcGVuZHMgb24gU05EX1BYQTJYWF9TT0MgJiYgTUFDSF9FTV9YMjcwCisJc2VsZWN0IFNORF9QWEEyWFhfU09DX0FDOTcKKwlzZWxlY3QgU05EX1NPQ19XTTk3MTIKKwloZWxwCisJICBTYXkgWSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgU29DIGF1ZGlvIG9uCisJICBDb21wdUxhYiBFTS14MjcwLgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS9NYWtlZmlsZSBiL3NvdW5kL3NvYy9weGEvTWFrZWZpbGUKaW5kZXggMDRlNTY0Ni4uNWJjOGVkZiAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9NYWtlZmlsZQorKysgYi9zb3VuZC9zb2MvcHhhL01ha2VmaWxlCkBAIC0xMywxMCArMTMsMTEgQEAKIHNuZC1zb2MtdG9zYS1vYmpzIDo9IHRvc2Eubwogc25kLXNvYy1lODAwLW9ianMgOj0gZTgwMF93bTk3MTIubwogc25kLXNvYy1zcGl0ei1vYmpzIDo9IHNwaXR6Lm8KK3NuZC1zb2MtZW0teDI3MC1vYmpzIDo9IGVtLXgyNzAubwogCiBvYmotJChDT05GSUdfU05EX1BYQTJYWF9TT0NfQ09SR0kpICs9IHNuZC1zb2MtY29yZ2kubwogb2JqLSQoQ09ORklHX1NORF9QWEEyWFhfU09DX1BPT0RMRSkgKz0gc25kLXNvYy1wb29kbGUubwogb2JqLSQoQ09ORklHX1NORF9QWEEyWFhfU09DX1RPU0EpICs9IHNuZC1zb2MtdG9zYS5vCiBvYmotJChDT05GSUdfU05EX1BYQTJYWF9TT0NfRTgwMCkgKz0gc25kLXNvYy1lODAwLm8KIG9iai0kKENPTkZJR19TTkRfUFhBMlhYX1NPQ19TUElUWikgKz0gc25kLXNvYy1zcGl0ei5vCi0KK29iai0kKENPTkZJR19TTkRfUFhBMlhYX1NPQ19FTV9YMjcwKSArPSBzbmQtc29jLWVtLXgyNzAubwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS9jb3JnaS5jIGIvc291bmQvc29jL3B4YS9jb3JnaS5jCmluZGV4IDdmMzJhMTEuLmMwMjk0NDYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvY29yZ2kuYworKysgYi9zb3VuZC9zb2MvcHhhL2NvcmdpLmMKQEAgLTExLDEwICsxMSw2IEBACiAgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMzB0aCBOb3YgMjAwNSAgIEluaXRpYWwgdmVyc2lvbi4KLSAqCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNTQsNDcgKzUwLDUxIEBACiAKIHN0YXRpYyB2b2lkIGNvcmdpX2V4dF9jb250cm9sKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgc3BrID0gMCwgbWljID0gMCwgbGluZSA9IDAsIGhwID0gMCwgaHMgPSAwOwotCiAJLyogc2V0IHVwIGphY2sgY29ubmVjdGlvbiAqLwogCXN3aXRjaCAoY29yZ2lfamFja19mdW5jKSB7CiAJY2FzZSBDT1JHSV9IUDoKLQkJaHAgPSAxOwogCQkvKiBzZXQgPSB1bm11dGUgaGVhZHBob25lICovCiAJCXNldF9zY29vcF9ncGlvKCZjb3JnaXNjb29wX2RldmljZS5kZXYsIENPUkdJX1NDUF9NVVRFX0wpOwogCQlzZXRfc2Nvb3BfZ3BpbygmY29yZ2lzY29vcF9kZXZpY2UuZGV2LCBDT1JHSV9TQ1BfTVVURV9SKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCWJyZWFrOwogCWNhc2UgQ09SR0lfTUlDOgotCQltaWMgPSAxOwogCQkvKiByZXNldCA9IG11dGUgaGVhZHBob25lICovCiAJCXJlc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfTCk7CiAJCXJlc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfUik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOwogCQlicmVhazsKIAljYXNlIENPUkdJX0xJTkU6Ci0JCWxpbmUgPSAxOwogCQlyZXNldF9zY29vcF9ncGlvKCZjb3JnaXNjb29wX2RldmljZS5kZXYsIENPUkdJX1NDUF9NVVRFX0wpOwogCQlyZXNldF9zY29vcF9ncGlvKCZjb3JnaXNjb29wX2RldmljZS5kZXYsIENPUkdJX1NDUF9NVVRFX1IpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkxpbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IEphY2siKTsKIAkJYnJlYWs7CiAJY2FzZSBDT1JHSV9IRUFEU0VUOgotCQlocyA9IDE7Ci0JCW1pYyA9IDE7CiAJCXJlc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfTCk7CiAJCXNldF9zY29vcF9ncGlvKCZjb3JnaXNjb29wX2RldmljZS5kZXYsIENPUkdJX1NDUF9NVVRFX1IpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIk1pYyBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxpbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOwogCQlicmVhazsKIAl9CiAKIAlpZiAoY29yZ2lfc3BrX2Z1bmMgPT0gQ09SR0lfU1BLX09OKQotCQlzcGsgPSAxOwotCi0JLyogc2V0IHRoZSBlbnBvaW50cyB0byB0aGVpciBuZXcgY29ubmV0aW9uIHN0YXRlcyAqLwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJFeHQgU3BrIiwgc3BrKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTWljIEphY2siLCBtaWMpOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMaW5lIEphY2siLCBsaW5lKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCBocCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgSmFjayIsIGhzKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CisJZWxzZQorCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CiAKIAkvKiBzaWduYWwgYSBEQVBNIGV2ZW50ICovCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiB9CiAKIHN0YXRpYyBpbnQgY29yZ2lfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKQEAgLTEyMyw4ICsxMjMsOCBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAl1bnNpZ25lZCBpbnQgY2xrID0gMDsKIAlpbnQgcmV0ID0gMDsKIApAQCAtMTQzLDI1ICsxNDMsMjUgQEAKIAl9CiAKIAkvKiBzZXQgY29kZWMgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CiAJCVNORF9TT0NfREFJRk1UX05CX05GIHwgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUyk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgY3B1IERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBjb2RlYyBzeXN0ZW0gY2xvY2sgZm9yIERBQyBhbmQgQURDICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3MzFfU1lTQ0xLLCBjbGssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODczMV9TWVNDTEssIGNsaywKIAkJU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgdGhlIEkyUyBzeXN0ZW0gY2xvY2sgYXMgaW5wdXQgKHVudXNlZCkgKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY3B1X2RhaSwgUFhBMlhYX0kyU19TWVNDTEssIDAsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2NsayhjcHVfZGFpLCBQWEEyWFhfSTJTX1NZU0NMSywgMCwKIAkJU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC0yNDcsNyArMjQ3LDcgQEAKIH07CiAKIC8qIENvcmdpIG1hY2hpbmUgYXVkaW8gbWFwIChjb25uZWN0aW9ucyB0byB0aGUgY29kZWMgcGlucykgKi8KLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCiAJLyogaGVhZHNldCBKYWNrICAtIGluID0gbWljaW4sIG91dCA9IExIUE9VVCovCiAJeyJIZWFkc2V0IEphY2siLCBOVUxMLCAiTEhQT1VUIn0sCkBAIC0yNjUsOCArMjY1LDYgQEAKIAogCS8qIFNhbWUgYXMgdGhlIGFib3ZlIGJ1dCBubyBtaWMgYmlhcyBmb3IgbGluZSBzaWduYWxzICovCiAJeyJNSUNJTiIsIE5VTEwsICJMaW5lIEphY2sifSwKLQotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICpqYWNrX2Z1bmN0aW9uW10gPSB7IkhlYWRwaG9uZSIsICJNaWMiLCAiTGluZSIsICJIZWFkc2V0IiwKQEAgLTI5MSw4ICsyODksOCBAQAogewogCWludCBpLCBlcnI7CiAKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTExJTkVJTiIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJSTElORUlOIiwgMCk7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTExJTkVJTiIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlJMSU5FSU4iKTsKIAogCS8qIEFkZCBjb3JnaSBzcGVjaWZpYyBjb250cm9scyAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODczMV9jb3JnaV9jb250cm9scyk7IGkrKykgewpAQCAtMzAzLDE1ICszMDEsMTMgQEAKIAl9CiAKIAkvKiBBZGQgY29yZ2kgc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtODczMV9kYXBtX3dpZGdldHNbaV0pOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODczMV9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpKTsKIAogCS8qIFNldCB1cCBjb3JnaSBzcGVjaWZpYyBhdWRpbyBwYXRoIGF1ZGlvX21hcCAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBhdWRpb19tYXBbaV1bMF0sCi0JCQlhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL2VtLXgyNzAuYyBiL3NvdW5kL3NvYy9weGEvZW0teDI3MC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyZGNhYzMKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvcHhhL2VtLXgyNzAuYwpAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIGVtLXgyNzAuYyAgLS0gIFNvQyBhdWRpbyBmb3IgRU0tWDI3MAorICoKKyAqIENvcHlyaWdodCAyMDA3IENvbXB1TGFiLCBMdGQuCisgKgorICogQXV0aG9yOiBNaWtlIFJhcG9wb3J0IDxtaWtlQGNvbXB1bGFiLmNvLmlsPgorICoKKyAqIENvcGllZCBmcm9tIHRvc2EuYzoKKyAqIENvcHlyaWdodCAyMDA1IFdvbGZzb24gTWljcm9lbGVjdHJvbmljcyBQTEMuCisgKiBDb3B5cmlnaHQgMjAwNSBPcGVuZWRoYW5kIEx0ZC4KKyAqCisgKiBBdXRob3JzOiBMaWFtIEdpcmR3b29kIDxsaWFtLmdpcmR3b29kQHdvbGZzb25taWNyby5jb20+CisgKiAgICAgICAgICBSaWNoYXJkIFB1cmRpZSA8cmljaGFyZEBvcGVuZWRoYW5kLmNvbT4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlICBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCisgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisKKyNpbmNsdWRlIDxzb3VuZC9kcml2ZXIuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F1ZGlvLmg+CisKKyNpbmNsdWRlICIuLi9jb2RlY3Mvd205NzEyLmgiCisjaW5jbHVkZSAicHhhMnh4LXBjbS5oIgorI2luY2x1ZGUgInB4YTJ4eC1hYzk3LmgiCisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayBlbV94MjcwX2RhaVtdID0geworCXsKKwkJLm5hbWUgPSAiQUM5NyIsCisJCS5zdHJlYW1fbmFtZSA9ICJBQzk3IEhpRmkiLAorCQkuY3B1X2RhaSA9ICZweGFfYWM5N19kYWlbUFhBMlhYX0RBSV9BQzk3X0hJRkldLAorCQkuY29kZWNfZGFpID0gJndtOTcxMl9kYWlbV005NzEyX0RBSV9BQzk3X0hJRkldLAorCX0sCisJeworCQkubmFtZSA9ICJBQzk3IEF1eCIsCisJCS5zdHJlYW1fbmFtZSA9ICJBQzk3IEF1eCIsCisJCS5jcHVfZGFpID0gJnB4YV9hYzk3X2RhaVtQWEEyWFhfREFJX0FDOTdfQVVYXSwKKwkJLmNvZGVjX2RhaSA9ICZ3bTk3MTJfZGFpW1dNOTcxMl9EQUlfQUM5N19BVVhdLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfbWFjaGluZSBlbV94MjcwID0geworCS5uYW1lID0gIkVNLVgyNzAiLAorCS5kYWlfbGluayA9IGVtX3gyNzBfZGFpLAorCS5udW1fbGlua3MgPSBBUlJBWV9TSVpFKGVtX3gyNzBfZGFpKSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgZW1feDI3MF9zbmRfZGV2ZGF0YSA9IHsKKwkubWFjaGluZSA9ICZlbV94MjcwLAorCS5wbGF0Zm9ybSA9ICZweGEyeHhfc29jX3BsYXRmb3JtLAorCS5jb2RlY19kZXYgPSAmc29jX2NvZGVjX2Rldl93bTk3MTIsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZW1feDI3MF9zbmRfZGV2aWNlOworCitzdGF0aWMgaW50IF9faW5pdCBlbV94MjcwX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJaWYgKCFtYWNoaW5lX2lzX2VtX3gyNzAoKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwllbV94MjcwX3NuZF9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNvYy1hdWRpbyIsIC0xKTsKKwlpZiAoIWVtX3gyNzBfc25kX2RldmljZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShlbV94MjcwX3NuZF9kZXZpY2UsICZlbV94MjcwX3NuZF9kZXZkYXRhKTsKKwllbV94MjcwX3NuZF9kZXZkYXRhLmRldiA9ICZlbV94MjcwX3NuZF9kZXZpY2UtPmRldjsKKwlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKGVtX3gyNzBfc25kX2RldmljZSk7CisKKwlpZiAocmV0KQorCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KGVtX3gyNzBfc25kX2RldmljZSk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgZW1feDI3MF9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoZW1feDI3MF9zbmRfZGV2aWNlKTsKK30KKworbW9kdWxlX2luaXQoZW1feDI3MF9pbml0KTsKK21vZHVsZV9leGl0KGVtX3gyNzBfZXhpdCk7CisKKy8qIE1vZHVsZSBpbmZvcm1hdGlvbiAqLworTU9EVUxFX0FVVEhPUigiTWlrZSBSYXBvcG9ydCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBTFNBIFNvQyBFTS1YMjcwIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3Bvb2RsZS5jIGIvc291bmQvc29jL3B4YS9wb29kbGUuYwppbmRleCA3ZTgzMGIyLi42NWE0ZTlhIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvcHhhL3Bvb2RsZS5jCisrKyBiL3NvdW5kL3NvYy9weGEvcG9vZGxlLmMKQEAgLTQ4LDggKzQ4LDYgQEAKIAogc3RhdGljIHZvaWQgcG9vZGxlX2V4dF9jb250cm9sKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgc3BrID0gMDsKLQogCS8qIHNldCB1cCBqYWNrIGNvbm5lY3Rpb24gKi8KIAlpZiAocG9vZGxlX2phY2tfZnVuYyA9PSBQT09ETEVfSFApIHsKIAkJLyogc2V0ID0gdW5tdXRlIGhlYWRwaG9uZSAqLwpAQCAtNTcsMjMgKzU1LDIzIEBACiAJCQlQT09ETEVfTE9DT01PX0dQSU9fTVVURV9MLCAxKTsKIAkJbG9jb21vX2dwaW9fd3JpdGUoJnBvb2RsZV9sb2NvbW9fZGV2aWNlLmRldiwKIAkJCVBPT0RMRV9MT0NPTU9fR1BJT19NVVRFX1IsIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCAxKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOwogCX0gZWxzZSB7CiAJCWxvY29tb19ncGlvX3dyaXRlKCZwb29kbGVfbG9jb21vX2RldmljZS5kZXYsCiAJCQlQT09ETEVfTE9DT01PX0dQSU9fTVVURV9MLCAwKTsKIAkJbG9jb21vX2dwaW9fd3JpdGUoJnBvb2RsZV9sb2NvbW9fZGV2aWNlLmRldiwKIAkJCVBPT0RMRV9MT0NPTU9fR1BJT19NVVRFX1IsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKIAl9CiAKLQlpZiAocG9vZGxlX3Nwa19mdW5jID09IFBPT0RMRV9TUEtfT04pCi0JCXNwayA9IDE7Ci0KIAkvKiBzZXQgdGhlIGVucG9pbnRzIHRvIHRoZWlyIG5ldyBjb25uZXRpb24gc3RhdGVzICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkV4dCBTcGsiLCBzcGspOworCWlmIChwb29kbGVfc3BrX2Z1bmMgPT0gUE9PRExFX1NQS19PTikKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CisJZWxzZQorCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CiAKIAkvKiBzaWduYWwgYSBEQVBNIGV2ZW50ICovCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiB9CiAKIHN0YXRpYyBpbnQgcG9vZGxlX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCkBAIC0xMDQsOCArMTAyLDggQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJdW5zaWduZWQgaW50IGNsayA9IDA7CiAJaW50IHJldCA9IDA7CiAKQEAgLTEyNCwyNSArMTIyLDI1IEBACiAJfQogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzMxX1NZU0NMSywgY2xrLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3MzFfU1lTQ0xLLCBjbGssCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBJMlMgc3lzdGVtIGNsb2NrIGFzIGlucHV0ICh1bnVzZWQpICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNwdV9kYWksIFBYQTJYWF9JMlNfU1lTQ0xLLCAwLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY3B1X2RhaSwgUFhBMlhYX0kyU19TWVNDTEssIDAsCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwpAQCAtMjE1LDggKzIxMyw4IEBACiBTTkRfU09DX0RBUE1fU1BLKCJFeHQgU3BrIiwgcG9vZGxlX2FtcF9ldmVudCksCiB9OwogCi0vKiBDb3JnaSBtYWNoaW5lIGF1ZGlvX21hcG5lY3Rpb25zIHRvIHRoZSBjb2RlYyBwaW5zICovCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CisvKiBDb3JnaSBtYWNoaW5lIGNvbm5lY3Rpb25zIHRvIHRoZSBjb2RlYyBwaW5zICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAogCS8qIGhlYWRwaG9uZSBjb25uZWN0ZWQgdG8gTEhQT1VUMSwgUkhQT1VUMSAqLwogCXsiSGVhZHBob25lIEphY2siLCBOVUxMLCAiTEhQT1VUIn0sCkBAIC0yMjUsOCArMjIzLDYgQEAKIAkvKiBzcGVha2VyIGNvbm5lY3RlZCB0byBMT1VULCBST1VUICovCiAJeyJFeHQgU3BrIiwgTlVMTCwgIlJPVVQifSwKIAl7IkV4dCBTcGsiLCBOVUxMLCAiTE9VVCJ9LAotCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmphY2tfZnVuY3Rpb25bXSA9IHsiT2ZmIiwgIkhlYWRwaG9uZSJ9OwpAQCAtMjUwLDkgKzI0Niw5IEBACiB7CiAJaW50IGksIGVycjsKIAotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMTElORUlOIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIlJMSU5FSU4iLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTUlDSU4iLCAxKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMTElORUlOIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiUkxJTkVJTiIpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTUlDSU4iKTsKIAogCS8qIEFkZCBwb29kbGUgc3BlY2lmaWMgY29udHJvbHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3MzFfcG9vZGxlX2NvbnRyb2xzKTsgaSsrKSB7CkBAIC0yNjMsMTUgKzI1OSwxMyBAQAogCX0KIAogCS8qIEFkZCBwb29kbGUgc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtODczMV9kYXBtX3dpZGdldHNbaV0pOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODczMV9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODczMV9kYXBtX3dpZGdldHMpKTsKIAogCS8qIFNldCB1cCBwb29kbGUgc3BlY2lmaWMgYXVkaW8gcGF0aCBhdWRpb19tYXAgKi8KLQlmb3IgKGkgPSAwOyBhdWRpb19tYXBbaV1bMF0gIT0gTlVMTDsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS9weGEyeHgtYWM5Ny5jIGIvc291bmQvc29jL3B4YS9weGEyeHgtYWM5Ny5jCmluZGV4IDk3ZWMyZDkuLjA1OWFmODEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LWFjOTcuYworKysgYi9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1hYzk3LmMKQEAgLTI4Myw3ICsyODMsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BNCiBzdGF0aWMgaW50IHB4YTJ4eF9hYzk3X3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJR0NSIHw9IEdDUl9BQ0xJTktfT0ZGOwogCWNsa19kaXNhYmxlKGFjOTdfY2xrKTsKQEAgLTI5MSw3ICsyOTEsNyBAQAogfQogCiBzdGF0aWMgaW50IHB4YTJ4eF9hYzk3X3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmRhaSkKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlweGFfZ3Bpb19tb2RlKEdQSU8zMV9TWU5DX0FDOTdfTUQpOwogCXB4YV9ncGlvX21vZGUoR1BJTzMwX1NEQVRBX09VVF9BQzk3X01EKTsKQEAgLTMxMCw3ICszMTAsOCBAQAogI2RlZmluZSBweGEyeHhfYWM5N19yZXN1bWUJTlVMTAogI2VuZGlmCiAKLXN0YXRpYyBpbnQgcHhhMnh4X2FjOTdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgcHhhMnh4X2FjOTdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJaW50IHJldDsKIApAQCAtMzU1LDcgKzM1Niw4IEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgcHhhMnh4X2FjOTdfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgdm9pZCBweGEyeHhfYWM5N19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlHQ1IgfD0gR0NSX0FDTElOS19PRkY7CiAJZnJlZV9pcnEoSVJRX0FDOTcsIE5VTEwpOwpAQCAtMzcyLDcgKzM3NCw3IEBACiAJCQkJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQogCQljcHVfZGFpLT5kbWFfZGF0YSA9ICZweGEyeHhfYWM5N19wY21fc3RlcmVvX291dDsKQEAgLTM4Niw3ICszODgsNyBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAKIAlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKIAkJY3B1X2RhaS0+ZG1hX2RhdGEgPSAmcHhhMnh4X2FjOTdfcGNtX2F1eF9tb25vX291dDsKQEAgLTQwMCw3ICs0MDIsNyBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAKIAlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKIAkJcmV0dXJuIC1FTk9ERVY7CkBAIC00MTgsNyArNDIwLDcgQEAKICAqIFRoZXJlIGlzIG9ubHkgMSBwaHlzaWNhbCBBQzk3IGludGVyZmFjZSBmb3IgcHhhMnh4LCBidXQgaXQKICAqIGhhcyBleHRyYSBmaWZvJ3MgdGhhdCBjYW4gYmUgdXNlZCBmb3IgYXV4IERBQ3MgYW5kIEFEQ3MuCiAgKi8KLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgcHhhX2FjOTdfZGFpW10gPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgcHhhX2FjOTdfZGFpW10gPSB7CiB7CiAJLm5hbWUgPSAicHhhMnh4LWFjOTciLAogCS5pZCA9IDAsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1hYzk3LmggYi9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1hYzk3LmgKaW5kZXggYjhjY2ZlZS4uZTM5MGRlOCAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9weGEyeHgtYWM5Ny5oCisrKyBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWFjOTcuaApAQCAtMTQsNyArMTQsNyBAQAogI2RlZmluZSBQWEEyWFhfREFJX0FDOTdfQVVYCQkxCiAjZGVmaW5lIFBYQTJYWF9EQUlfQUM5N19NSUMJCTIKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgcHhhX2FjOTdfZGFpWzNdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBweGFfYWM5N19kYWlbM107CiAKIC8qIHBsYXRmb3JtIGRhdGEgKi8KIGV4dGVybiBzdHJ1Y3Qgc25kX2FjOTdfYnVzX29wcyBweGEyeHhfYWM5N19vcHM7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1pMnMuYyBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5jCmluZGV4IDQyNTA3MTAuLjhmOTZkODcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5jCisrKyBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5jCkBAIC05LDE1ICs5LDEzIEBACiAgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMTJ0aCBBdWcgMjAwNSAgIEluaXRpYWwgdmVyc2lvbi4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8c291bmQvY29yZS5oPgogI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgogI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KQEAgLTQwLDYgKzM4LDcgQEAKIAl1MzIgZm10OwogfTsKIHN0YXRpYyBzdHJ1Y3QgcHhhX2kyc19wb3J0IHB4YV9pMnM7CitzdGF0aWMgc3RydWN0IGNsayAqY2xrX2kyczsKIAogc3RhdGljIHN0cnVjdCBweGEyeHhfcGNtX2RtYV9wYXJhbXMgcHhhMnh4X2kyc19wY21fc3RlcmVvX291dCA9IHsKIAkubmFtZQkJCT0gIkkyUyBQQ00gU3RlcmVvIG91dCIsCkBAIC04MCw3ICs3OSwxMSBAQAogc3RhdGljIGludCBweGEyeHhfaTJzX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKworCWNsa19pMnMgPSBjbGtfZ2V0KE5VTEwsICJJMlNDTEsiKTsKKwlpZiAoSVNfRVJSKGNsa19pMnMpKQorCQlyZXR1cm4gUFRSX0VSUihjbGtfaTJzKTsKIAogCWlmICghY3B1X2RhaS0+YWN0aXZlKSB7CiAJCVNBQ1IwIHw9IFNBQ1IwX1JTVDsKQEAgLTEwMSw3ICsxMDQsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHB4YTJ4eF9pMnNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgcHhhMnh4X2kyc19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJLyogaW50ZXJmYWNlIGZvcm1hdCAqLwpAQCAtMTI3LDcgKzEzMCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcHhhMnh4X2kyc19zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBweGEyeHhfaTJzX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJaWYgKGNsa19pZCAhPSBQWEEyWFhfSTJTX1NZU0NMSykKQEAgLTE0MywxMyArMTQ2LDEzIEBACiAJCQkJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAogCXB4YV9ncGlvX21vZGUoZ3Bpb19idXNbcHhhX2kycy5tYXN0ZXJdLnJ4KTsKIAlweGFfZ3Bpb19tb2RlKGdwaW9fYnVzW3B4YV9pMnMubWFzdGVyXS50eCk7CiAJcHhhX2dwaW9fbW9kZShncGlvX2J1c1tweGFfaTJzLm1hc3Rlcl0uZnJtKTsKIAlweGFfZ3Bpb19tb2RlKGdwaW9fYnVzW3B4YV9pMnMubWFzdGVyXS5jbGspOwotCXB4YV9zZXRfY2tlbihDS0VOX0kyUywgMSk7CisJY2xrX2VuYWJsZShjbGtfaTJzKTsKIAlweGFfaTJzX3dhaXQoKTsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQpAQCAtMjM0LDEzICsyMzcsMTUgQEAKIAlpZiAoU0FDUjEgJiAoU0FDUjFfRFJFQyB8IFNBQ1IxX0RSUEwpKSB7CiAJCVNBQ1IwICY9IH5TQUNSMF9FTkI7CiAJCXB4YV9pMnNfd2FpdCgpOwotCQlweGFfc2V0X2NrZW4oQ0tFTl9JMlMsIDApOworCQljbGtfZGlzYWJsZShjbGtfaTJzKTsKIAl9CisKKwljbGtfcHV0KGNsa19pMnMpOwogfQogCiAjaWZkZWYgQ09ORklHX1BNCiBzdGF0aWMgaW50IHB4YTJ4eF9pMnNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsCi0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpKQorCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCWlmICghZGFpLT5hY3RpdmUpCiAJCXJldHVybiAwOwpAQCAtMjU4LDcgKzI2Myw3IEBACiB9CiAKIHN0YXRpYyBpbnQgcHhhMnh4X2kyc19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJaWYgKCFkYWktPmFjdGl2ZSkKIAkJcmV0dXJuIDA7CkBAIC0yODMsNyArMjg4LDcgQEAKIAkJU05EUlZfUENNX1JBVEVfMTYwMDAgfCBTTkRSVl9QQ01fUkFURV8yMjA1MCB8IFNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgXAogCQlTTkRSVl9QQ01fUkFURV80ODAwMCB8IFNORFJWX1BDTV9SQVRFXzk2MDAwKQogCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHB4YV9pMnNfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIHB4YV9pMnNfZGFpID0gewogCS5uYW1lID0gInB4YTJ4eC1pMnMiLAogCS5pZCA9IDAsCiAJLnR5cGUgPSBTTkRfU09DX0RBSV9JMlMsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1pMnMuaCBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5oCmluZGV4IDQ0MzViZDkuLmUyZGVmNDQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5oCisrKyBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5oCkBAIC0xNSw2ICsxNSw2IEBACiAvKiBJMlMgY2xvY2sgKi8KICNkZWZpbmUgUFhBMlhYX0kyU19TWVNDTEsJCTAKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgcHhhX2kyc19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHB4YV9pMnNfZGFpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LXBjbS5jIGIvc291bmQvc29jL3B4YS9weGEyeHgtcGNtLmMKaW5kZXggMDFhZDdiZi4uMmRmMDNlZSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9weGEyeHgtcGNtLmMKKysrIGIvc291bmQvc29jL3B4YS9weGEyeHgtcGNtLmMKQEAgLTMzMCw3ICszMzAsNyBAQAogCiBzdGF0aWMgdTY0IHB4YTJ4eF9wY21fZG1hbWFzayA9IERNQV8zMkJJVF9NQVNLOwogCi1pbnQgcHhhMnh4X3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwKK2ludCBweGEyeHhfcGNtX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAogCXN0cnVjdCBzbmRfcGNtICpwY20pCiB7CiAJaW50IHJldCA9IDA7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3NwaXR6LmMgYi9zb3VuZC9zb2MvcHhhL3NwaXR6LmMKaW5kZXggZDhiODM3Mi4uNjQzODU3OSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9zcGl0ei5jCisrKyBiL3NvdW5kL3NvYy9weGEvc3BpdHouYwpAQCAtMTIsOSArMTIsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDMwdGggTm92IDIwMDUgICBJbml0aWFsIHZlcnNpb24uCi0gKgogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTU0LDYwICs1MSw2MCBAQAogc3RhdGljIHZvaWQgc3BpdHpfZXh0X2NvbnRyb2woc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewogCWlmIChzcGl0el9zcGtfZnVuYyA9PSBTUElUWl9TUEtfT04pCi0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJFeHQgU3BrIiwgMSk7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiRXh0IFNwayIpOwogCWVsc2UKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkV4dCBTcGsiLCAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiRXh0IFNwayIpOwogCiAJLyogc2V0IHVwIGphY2sgY29ubmVjdGlvbiAqLwogCXN3aXRjaCAoc3BpdHpfamFja19mdW5jKSB7CiAJY2FzZSBTUElUWl9IUDoKIAkJLyogZW5hYmxlIGFuZCB1bm11dGUgaHAgamFjaywgZGlzYWJsZSBtaWMgYmlhcyAqLwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNaWMgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTGluZSBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDEpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKIAkJc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfTCk7CiAJCXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX1IpOwogCQlicmVhazsKIAljYXNlIFNQSVRaX01JQzoKIAkJLyogZW5hYmxlIG1pYyBqYWNrIGFuZCBiaWFzLCBtdXRlIGhwICovCi0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMaW5lIEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1pYyBKYWNrIiwgMSk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMaW5lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOwogCQlyZXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX0wpOwogCQlyZXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX1IpOwogCQlicmVhazsKIAljYXNlIFNQSVRaX0xJTkU6CiAJCS8qIGVuYWJsZSBsaW5lIGphY2ssIGRpc2FibGUgbWljIGJpYXMgYW5kIG11dGUgaHAgKi8KLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRwaG9uZSBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1pYyBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMaW5lIEphY2siLCAxKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1pYyBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CiAJCXJlc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfTCk7CiAJCXJlc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfUik7CiAJCWJyZWFrOwogCWNhc2UgU1BJVFpfSEVBRFNFVDoKIAkJLyogZW5hYmxlIGFuZCB1bm11dGUgaGVhZHNldCBqYWNrIGVuYWJsZSBtaWMgYmlhcywgbXV0ZSBMIGhwICovCi0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTWljIEphY2siLCAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxpbmUgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgMSk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCXJlc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfTCk7CiAJCXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX1IpOwogCQlicmVhazsKIAljYXNlIFNQSVRaX0hQX09GRjoKIAogCQkvKiBqYWNrIHJlbW92ZWQsIGV2ZXJ5dGhpbmcgb2ZmICovCi0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNaWMgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTGluZSBKYWNrIiwgMCk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMaW5lIEphY2siKTsKIAkJcmVzZXRfc2Nvb3BfZ3Bpbygmc3BpdHpzY29vcF9kZXZpY2UuZGV2LCBTUElUWl9TQ1BfTVVURV9MKTsKIAkJcmVzZXRfc2Nvb3BfZ3Bpbygmc3BpdHpzY29vcF9kZXZpY2UuZGV2LCBTUElUWl9TQ1BfTVVURV9SKTsKIAkJYnJlYWs7CiAJfQotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogfQogCiBzdGF0aWMgaW50IHNwaXR6X3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCkBAIC0xMjQsOCArMTIxLDggQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJdW5zaWduZWQgaW50IGNsayA9IDA7CiAJaW50IHJldCA9IDA7CiAKQEAgLTE0NCwyNSArMTQxLDI1IEBACiAJfQogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzUwX1NZU0NMSywgY2xrLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3NTBfU1lTQ0xLLCBjbGssCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBJMlMgc3lzdGVtIGNsb2NrIGFzIGlucHV0ICh1bnVzZWQpICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNwdV9kYWksIFBYQTJYWF9JMlNfU1lTQ0xLLCAwLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoY3B1X2RhaSwgUFhBMlhYX0kyU19TWVNDTEssIDAsCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwpAQCAtMjUwLDcgKzI0Nyw3IEBACiB9OwogCiAvKiBTcGl0eiBtYWNoaW5lIGF1ZGlvX21hcCAqLwotc3RhdGljIGNvbnN0IGNoYXIgKmF1ZGlvX21hcFtdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CiAKIAkvKiBoZWFkcGhvbmUgY29ubmVjdGVkIHRvIExPVVQxLCBST1VUMSAqLwogCXsiSGVhZHBob25lIEphY2siLCBOVUxMLCAiTE9VVDEifSwKQEAgLTI2OSw4ICsyNjYsNiBAQAogCiAJLyogbGluZSBpcyBjb25uZWN0ZWQgdG8gaW5wdXQgMSAtIG5vIGJpYXMgKi8KIAl7IkxJTlBVVDEiLCBOVUxMLCAiTGluZSBKYWNrIn0sCi0KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqamFja19mdW5jdGlvbltdID0geyJIZWFkcGhvbmUiLCAiTWljIiwgIkxpbmUiLCAiSGVhZHNldCIsCkBAIC0yOTYsMTMgKzI5MSwxMyBAQAogCWludCBpLCBlcnI7CiAKIAkvKiBOQyBjb2RlYyBwaW5zICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIlJJTlBVVDEiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTElOUFVUMiIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJSSU5QVVQyIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxJTlBVVDMiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiUklOUFVUMyIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJPVVQzIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1PTk8iLCAwKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJSSU5QVVQxIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTElOUFVUMiIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlJJTlBVVDIiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMSU5QVVQzIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiUklOUFVUMyIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk9VVDMiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNT05PIik7CiAKIAkvKiBBZGQgc3BpdHogc3BlY2lmaWMgY29udHJvbHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTBfc3BpdHpfY29udHJvbHMpOyBpKyspIHsKQEAgLTMxMywxNSArMzA4LDEzIEBACiAJfQogCiAJLyogQWRkIHNwaXR6IHNwZWNpZmljIHdpZGdldHMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTBfZGFwbV93aWRnZXRzKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZ3bTg3NTBfZGFwbV93aWRnZXRzW2ldKTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTg3NTBfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTg3NTBfZGFwbV93aWRnZXRzKSk7CiAKLQkvKiBTZXQgdXAgc3BpdHogc3BlY2lmaWMgYXVkaW8gcGF0aCBhdWRpb19tYXAgKi8KLQlmb3IgKGkgPSAwOyBhdWRpb19tYXBbaV1bMF0gIT0gTlVMTDsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOworCS8qIFNldCB1cCBzcGl0eiBzcGVjaWZpYyBhdWRpbyBwYXRocyAqLworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS90b3NhLmMgYi9zb3VuZC9zb2MvcHhhL3Rvc2EuYwppbmRleCA3MzQ2ZDdlLi5iNmVkYjYxIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvcHhhL3Rvc2EuYworKysgYi9zb3VuZC9zb2MvcHhhL3Rvc2EuYwpAQCAtMTIsOSArMTIsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDMwdGggTm92IDIwMDUgICBJbml0aWFsIHZlcnNpb24uCi0gKgogICogR1BJTydzCiAgKiAgMSAtIEphY2sgSW5zZXJ0aW9uCiAgKiAgNSAtIEhvb2tzd2l0Y2ggKGhlYWRzZXQgYW5zd2VyL2hhbmcgdXAgc3dpdGNoKQpAQCAtNTUsMjkgKzUyLDMxIEBACiAKIHN0YXRpYyB2b2lkIHRvc2FfZXh0X2NvbnRyb2woc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBzcGsgPSAwLCBtaWNfaW50ID0gMCwgaHAgPSAwLCBocyA9IDA7Ci0KIAkvKiBzZXQgdXAgamFjayBjb25uZWN0aW9uICovCiAJc3dpdGNoICh0b3NhX2phY2tfZnVuYykgewogCWNhc2UgVE9TQV9IUDoKLQkJaHAgPSAxOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNaWMgKEludGVybmFsKSIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOwogCQlicmVhazsKIAljYXNlIFRPU0FfTUlDX0lOVDoKLQkJbWljX2ludCA9IDE7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTWljIChJbnRlcm5hbCkiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCWJyZWFrOwogCWNhc2UgVE9TQV9IRUFEU0VUOgotCQlocyA9IDE7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1pYyAoSW50ZXJuYWwpIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCWJyZWFrOwogCX0KIAogCWlmICh0b3NhX3Nwa19mdW5jID09IFRPU0FfU1BLX09OKQotCQlzcGsgPSAxOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIlNwZWFrZXIiKTsKKwllbHNlCisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlNwZWFrZXIiKTsKIAotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJTcGVha2VyIiwgc3BrKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTWljIChJbnRlcm5hbCkiLCBtaWNfaW50KTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCBocCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgSmFjayIsIGhzKTsKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIH0KIAogc3RhdGljIGludCB0b3NhX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCkBAIC0xNTQsNyArMTUzLDcgQEAKIH07CiAKIC8qIHRvc2EgYXVkaW8gbWFwICovCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAogCS8qIGhlYWRwaG9uZSBjb25uZWN0ZWQgdG8gSFBPVVRMLCBIUE9VVFIgKi8KIAl7IkhlYWRwaG9uZSBKYWNrIiwgTlVMTCwgIkhQT1VUTCJ9LApAQCAtMTczLDggKzE3Miw2IEBACiAJeyJIZWFkc2V0IEphY2siLCBOVUxMLCAiSFBPVVRSIn0sCiAJeyJMSU5FSU5SIiwgTlVMTCwgIk1pYyBCaWFzIn0sCiAJeyJNaWMgQmlhcyIsIE5VTEwsICJIZWFkc2V0IEphY2sifSwKLQotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICpqYWNrX2Z1bmN0aW9uW10gPSB7IkhlYWRwaG9uZSIsICJNaWMiLCAiTGluZSIsICJIZWFkc2V0IiwKQEAgLTE5Niw4ICsxOTMsOCBAQAogewogCWludCBpLCBlcnI7CiAKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiT1VUMyIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNT05PT1VUIiwgMCk7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiT1VUMyIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1PTk9PVVQiKTsKIAogCS8qIGFkZCB0b3NhIHNwZWNpZmljIGNvbnRyb2xzICovCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodG9zYV9jb250cm9scyk7IGkrKykgewpAQCAtMjA4LDE3ICsyMDUsMTMgQEAKIAl9CiAKIAkvKiBhZGQgdG9zYSBzcGVjaWZpYyB3aWRnZXRzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodG9zYV9kYXBtX3dpZGdldHMpOyBpKyspIHsKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmdG9zYV9kYXBtX3dpZGdldHNbaV0pOwotCX0KKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB0b3NhX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUodG9zYV9kYXBtX3dpZGdldHMpKTsKIAogCS8qIHNldCB1cCB0b3NhIHNwZWNpZmljIGF1ZGlvIHBhdGggYXVkaW9fbWFwICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykgewotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOwotCX0KKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOwogCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L0tjb25maWcgYi9zb3VuZC9zb2MvczNjMjR4eC9LY29uZmlnCmluZGV4IDFmNmRiZmMuLmI5ZjIzNTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L0tjb25maWcKKysrIGIvc291bmQvc29jL3MzYzI0eHgvS2NvbmZpZwpAQCAtMSw3ICsxLDYgQEAKIGNvbmZpZyBTTkRfUzNDMjRYWF9TT0MKIAl0cmlzdGF0ZSAiU29DIEF1ZGlvIGZvciB0aGUgU2Ftc3VuZyBTM0MyNFhYIGNoaXBzIgotCWRlcGVuZHMgb24gQVJDSF9TM0MyNDEwICYmIFNORF9TT0MKLQlzZWxlY3QgU05EX1BDTQorCWRlcGVuZHMgb24gQVJDSF9TM0MyNDEwCiAJaGVscAogCSAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgY29kZWNzIGF0dGFjaGVkIHRvCiAJICB0aGUgUzNDMjRYWCBBQzk3LCBJMlMgb3IgU1NQIGludGVyZmFjZS4gWW91IHdpbGwgYWxzbyBuZWVkCkBAIC0xNiw3ICsxNSw2IEBACiBjb25maWcgU05EX1MzQzI0NDNfU09DX0FDOTcKIAl0cmlzdGF0ZQogCXNlbGVjdCBBQzk3X0JVUwotCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCXNlbGVjdCBTTkRfU09DX0FDOTdfQlVTCiAJCiBjb25maWcgU05EX1MzQzI0WFhfU09DX05FTzE5NzNfV004NzUzCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9uZW8xOTczX3dtODc1My5jIGIvc291bmQvc29jL3MzYzI0eHgvbmVvMTk3M193bTg3NTMuYwppbmRleCAwZTlkMWM1Li40ZDdhOWFhIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9uZW8xOTczX3dtODc1My5jCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L25lbzE5NzNfd204NzUzLmMKQEAgLTEwLDEwICsxMCw2IEBACiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMjB0aCBKYW4gMjAwNyAgIEluaXRpYWwgdmVyc2lvbi4KLSAqICAgIDA1dGggRmViIDIwMDcgICBSZW5hbWUgYWxsIHRvIE5lbzE5NzMKLSAqCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtMjYsNiArMjIsNyBAQAogI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgogI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgogI2luY2x1ZGUgPHNvdW5kL3NvYy1kYXBtLmg+CisjaW5jbHVkZSA8c291bmQvdGx2Lmg+CiAKICNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9zY29vcC5oPgpAQCAtNDMsNiArNDAsMTQgQEAKICNpbmNsdWRlICJzM2MyNHh4LXBjbS5oIgogI2luY2x1ZGUgInMzYzI0eHgtaTJzLmgiCiAKKy8qIERlYnVnZ2luZyBzdHVmZiAqLworI2RlZmluZSBTM0MyNFhYX1NPQ19ORU8xOTczX1dNODc1M19ERUJVRyAwCisjaWYgUzNDMjRYWF9TT0NfTkVPMTk3M19XTTg3NTNfREVCVUcKKyNkZWZpbmUgREJHKHguLi4pIHByaW50ayhLRVJOX0RFQlVHICJzM2MyNHh4LXNvYy1uZW8xOTczLXdtODc1MzogIiB4KQorI2Vsc2UKKyNkZWZpbmUgREJHKHguLi4pCisjZW5kaWYKKwogLyogZGVmaW5lIHRoZSBzY2VuYXJpb3MgKi8KICNkZWZpbmUgTkVPX0FVRElPX09GRgkJCTAKICNkZWZpbmUgTkVPX0dTTV9DQUxMX0FVRElPX0hBTkRTRVQJMQpAQCAtNjEsMTIgKzY2LDE0IEBACiAJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCXVuc2lnbmVkIGludCBwbGxfb3V0ID0gMCwgYmNsayA9IDA7CiAJaW50IHJldCA9IDA7CiAJdW5zaWduZWQgbG9uZyBpaXNfY2xrcmF0ZTsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJaWlzX2Nsa3JhdGUgPSBzM2MyNHh4X2kyc19nZXRfY2xvY2tyYXRlKCk7CiAKIAlzd2l0Y2ggKHBhcmFtc19yYXRlKHBhcmFtcykpIHsKQEAgLTEwMSw0NCArMTA4LDQ0IEBACiAJfQogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLAogCQlTTkRfU09DX0RBSUZNVF9JMlMgfCBTTkRfU09DX0RBSUZNVF9OQl9ORiB8CiAJCVNORF9TT0NfREFJRk1UX0NCTV9DRk0pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwKIAkJU05EX1NPQ19EQUlGTVRfSTJTIHwgU05EX1NPQ19EQUlGTVRfTkJfTkYgfAogCQlTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzUzX01DTEssIHBsbF9vdXQsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODc1M19NQ0xLLCBwbGxfb3V0LAogCQlTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCBNQ0xLIGRpdmlzaW9uIGZvciBzYW1wbGUgcmF0ZSAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2Nsa2RpdihjcHVfZGFpLCBTM0MyNFhYX0RJVl9NQ0xLLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY3B1X2RhaSwgUzNDMjRYWF9ESVZfTUNMSywKIAkJUzNDMjQxMF9JSVNNT0RfMzJGUyk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgY29kZWMgQkNMSyBkaXZpc2lvbiBmb3Igc2FtcGxlIHJhdGUgKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2Nsa2Rpdihjb2RlY19kYWksIFdNODc1M19CQ0xLRElWLCBiY2xrKTsKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNvZGVjX2RhaSwgV004NzUzX0JDTEtESVYsIGJjbGspOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHByZXNjYWxlciBkaXZpc2lvbiBmb3Igc2FtcGxlIHJhdGUgKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYoY3B1X2RhaSwgUzNDMjRYWF9ESVZfUFJFU0NBTEVSLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY3B1X2RhaSwgUzNDMjRYWF9ESVZfUFJFU0NBTEVSLAogCQlTM0MyNFhYX1BSRVNDQUxFKDQsIDQpKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIGNvZGVjIFBMTCBpbnB1dCBpcyBQQ0xLLzQgKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwxLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9wbGwoY29kZWNfZGFpLCBXTTg3NTNfUExMMSwKIAkJaWlzX2Nsa3JhdGUgLyA0LCBwbGxfb3V0KTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTE0OSwxMCArMTU2LDEyIEBACiBzdGF0aWMgaW50IG5lbzE5NzNfaGlmaV9od19mcmVlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CiAKIAkvKiBkaXNhYmxlIHRoZSBQTEwgKi8KLQlyZXR1cm4gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9wbGwoY29kZWNfZGFpLCBXTTg3NTNfUExMMSwgMCwgMCk7CisJcmV0dXJuIHNuZF9zb2NfZGFpX3NldF9wbGwoY29kZWNfZGFpLCBXTTg3NTNfUExMMSwgMCwgMCk7CiB9CiAKIC8qCkBAIC0xNjcsMTEgKzE3NiwxMyBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwogCXVuc2lnbmVkIGludCBwY21kaXYgPSAwOwogCWludCByZXQgPSAwOwogCXVuc2lnbmVkIGxvbmcgaWlzX2Nsa3JhdGU7CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWlpc19jbGtyYXRlID0gczNjMjR4eF9pMnNfZ2V0X2Nsb2NrcmF0ZSgpOwogCiAJaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgIT0gODAwMCkKQEAgLTE4MywyNCArMTk0LDI0IEBACiAKIAkvKiB0b2RvOiBnZyBjaGVjayBtb2RlIChEU1BfQikgYWdhaW5zdCBDU1IgZGF0YXNoZWV0ICovCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9EU1BfQiB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0RTUF9CIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrIGZvciBEQUMgYW5kIEFEQyAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzUzX1BDTUNMSywgMTIyODgwMDAsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODc1M19QQ01DTEssIDEyMjg4MDAwLAogCQlTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCBjb2RlYyBQQ00gZGl2aXNpb24gZm9yIHNhbXBsZSByYXRlICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYoY29kZWNfZGFpLCBXTTg3NTNfUENNRElWLCBwY21kaXYpOworCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY29kZWNfZGFpLCBXTTg3NTNfUENNRElWLCBwY21kaXYpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogY29uZmlndWUgYW5kIGVuYWJsZSBQTEwgZm9yIDEyLjI4OE1IeiBvdXRwdXQgKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwyLAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9wbGwoY29kZWNfZGFpLCBXTTg3NTNfUExMMiwKIAkJaWlzX2Nsa3JhdGUgLyA0LCAxMjI4ODAwMCk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC0yMTEsMTAgKzIyMiwxMiBAQAogc3RhdGljIGludCBuZW8xOTczX3ZvaWNlX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKIAogCS8qIGRpc2FibGUgdGhlIFBMTCAqLwotCXJldHVybiBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwyLCAwLCAwKTsKKwlyZXR1cm4gc25kX3NvY19kYWlfc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwyLCAwLCAwKTsKIH0KIAogc3RhdGljIHN0cnVjdCBzbmRfc29jX29wcyBuZW8xOTczX3ZvaWNlX29wcyA9IHsKQEAgLTIzMyw3OSArMjQ2LDgxIEBACiAKIHN0YXRpYyBpbnQgc2V0X3NjZW5hcmlvX2VuZHBvaW50cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBzY2VuYXJpbykKIHsKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCXN3aXRjaCAobmVvMTk3M19zY2VuYXJpbykgewogCWNhc2UgTkVPX0FVRElPX09GRjoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMCk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkF1ZGlvIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgSW4iKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBNaWMiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQ2FsbCBNaWMiKTsKIAkJYnJlYWs7CiAJY2FzZSBORU9fR1NNX0NBTExfQVVESU9fSEFORFNFVDoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMSk7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgSW4iKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBNaWMiKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAljYXNlIE5FT19HU01fQ0FMTF9BVURJT19IRUFEU0VUOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWNhc2UgTkVPX0dTTV9DQUxMX0FVRElPX0JMVUVUT09USDoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMCk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkF1ZGlvIE91dCIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWNhc2UgTkVPX1NURVJFT19UT19TUEVBS0VSUzoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMCk7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAljYXNlIE5FT19TVEVSRU9fVE9fSEVBRFBIT05FUzoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMCk7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAljYXNlIE5FT19DQVBUVVJFX0hBTkRTRVQ6Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJBdWRpbyBPdXQiLCAgICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIE91dCIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgSW4iLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IE1pYyIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkNhbGwgTWljIiwgICAgIDEpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiQ2FsbCBNaWMiKTsKIAkJYnJlYWs7CiAJY2FzZSBORU9fQ0FQVFVSRV9IRUFEU0VUOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWNhc2UgTkVPX0NBUFRVUkVfQkxVRVRPT1RIOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCX0KIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zMTUsNiArMzMwLDggQEAKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWlmIChuZW8xOTczX3NjZW5hcmlvID09IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdKQogCQlyZXR1cm4gMDsKIApAQCAtMzI3LDYgKzM0NCw4IEBACiAKIHN0YXRpYyB2b2lkIGxtNDg1N193cml0ZV9yZWdzKHZvaWQpCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlpZiAoaTJjX21hc3Rlcl9zZW5kKGkyYywgbG00ODU3X3JlZ3MsIDQpICE9IDQpCiAJCXByaW50ayhLRVJOX0VSUiAibG00ODU3OiBpMmMgd3JpdGUgZmFpbGVkXG4iKTsKIH0KQEAgLTMzOCw2ICszNTcsOCBAQAogCWludCBzaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4MEY7CiAJaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHhGRjsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSAobG00ODU3X3JlZ3NbcmVnXSA+PiBzaGlmdCkgJiBtYXNrOwogCXJldHVybiAwOwogfQpAQCAtMzY0LDYgKzM4NSw4IEBACiB7CiAJdTggdmFsdWUgPSBsbTQ4NTdfcmVnc1tMTTQ4NTdfQ1RSTF0gJiAweDBGOwogCisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlpZiAodmFsdWUpCiAJCXZhbHVlIC09IDU7CiAKQEAgLTM3Niw2ICszOTksOCBAQAogewogCXU4IHZhbHVlID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWlmICh2YWx1ZSkKIAkJdmFsdWUgKz0gNTsKIApAQCAtMzk3LDggKzQyMiw3IEBACiB9OwogCiAKLS8qIGV4YW1wbGUgbWFjaGluZSBhdWRpb19tYXBuZWN0aW9ucyAqLwotc3RhdGljIGNvbnN0IGNoYXIgKmF1ZGlvX21hcFtdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgZGFwbV9yb3V0ZXNbXSA9IHsKIAogCS8qIENvbm5lY3Rpb25zIHRvIHRoZSBsbTQ4NTcgYW1wICovCiAJeyJBdWRpbyBPdXQiLCBOVUxMLCAiTE9VVDEifSwKQEAgLTQyMSw4ICs0NDUsNiBAQAogCiAJLyogQ29ubmVjdCB0aGUgQUxDIHBpbnMgKi8KIAl7IkFDSU4iLCBOVUxMLCAiQUNPUCJ9LAotCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmxtNDg1N19tb2RlW10gPSB7CkBAIC00NTMsMTMgKzQ3NSwxNiBAQAogCVNPQ19FTlVNX1NJTkdMRV9FWFQoQVJSQVlfU0laRShuZW9fc2NlbmFyaW9zKSwgbmVvX3NjZW5hcmlvcyksCiB9OwogCitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoc3RlcmVvX3RsdiwgLTQwNTAsIDE1MCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUobW9ub190bHYsIC0zNDUwLCAxNTAsIDApOworCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204NzUzX25lbzE5NzNfY29udHJvbHNbXSA9IHsKLQlTT0NfU0lOR0xFX0VYVCgiQW1wIExlZnQgUGxheWJhY2sgVm9sdW1lIiwgTE00ODU3X0xWT0wsIDAsIDMxLCAwLAotCQlsbTQ4NTdfZ2V0X3JlZywgbG00ODU3X3NldF9yZWcpLAotCVNPQ19TSU5HTEVfRVhUKCJBbXAgUmlnaHQgUGxheWJhY2sgVm9sdW1lIiwgTE00ODU3X1JWT0wsIDAsIDMxLCAwLAotCQlsbTQ4NTdfZ2V0X3JlZywgbG00ODU3X3NldF9yZWcpLAotCVNPQ19TSU5HTEVfRVhUKCJBbXAgTW9ubyBQbGF5YmFjayBWb2x1bWUiLCBMTTQ4NTdfTVZPTCwgMCwgMzEsIDAsCi0JCWxtNDg1N19nZXRfcmVnLCBsbTQ4NTdfc2V0X3JlZyksCisJU09DX1NJTkdMRV9FWFRfVExWKCJBbXAgTGVmdCBQbGF5YmFjayBWb2x1bWUiLCBMTTQ4NTdfTFZPTCwgMCwgMzEsIDAsCisJCWxtNDg1N19nZXRfcmVnLCBsbTQ4NTdfc2V0X3JlZywgc3RlcmVvX3RsdiksCisJU09DX1NJTkdMRV9FWFRfVExWKCJBbXAgUmlnaHQgUGxheWJhY2sgVm9sdW1lIiwgTE00ODU3X1JWT0wsIDAsIDMxLCAwLAorCQlsbTQ4NTdfZ2V0X3JlZywgbG00ODU3X3NldF9yZWcsIHN0ZXJlb190bHYpLAorCVNPQ19TSU5HTEVfRVhUX1RMVigiQW1wIE1vbm8gUGxheWJhY2sgVm9sdW1lIiwgTE00ODU3X01WT0wsIDAsIDMxLCAwLAorCQlsbTQ4NTdfZ2V0X3JlZywgbG00ODU3X3NldF9yZWcsIG1vbm9fdGx2KSwKIAlTT0NfRU5VTV9FWFQoIkFtcCBNb2RlIiwgbG00ODU3X21vZGVfZW51bVswXSwKIAkJbG00ODU3X2dldF9tb2RlLCBsbTQ4NTdfc2V0X21vZGUpLAogCVNPQ19FTlVNX0VYVCgiTmVvIE1vZGUiLCBuZW9fc2NlbmFyaW9fZW51bVswXSwKQEAgLTQ4MywyMSArNTA4LDIzIEBACiB7CiAJaW50IGksIGVycjsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJLyogc2V0IHVwIE5DIGNvZGVjIHBpbnMgKi8KLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTE9VVDIiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiUk9VVDIiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiT1VUMyIsICAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiT1VUNCIsICAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTElORTEiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTElORTIiLCAwKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMT1VUMiIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlJPVVQyIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiT1VUMyIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk9VVDQiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMSU5FMSIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxJTkUyIik7CiAKIAogCS8qIHNldCBlbmRwb2ludHMgdG8gZGVmYXVsdCBtb2RlICovCiAJc2V0X3NjZW5hcmlvX2VuZHBvaW50cyhjb2RlYywgTkVPX0FVRElPX09GRik7CiAKIAkvKiBBZGQgbmVvMTk3MyBzcGVjaWZpYyB3aWRnZXRzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204NzUzX2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmd204NzUzX2RhcG1fd2lkZ2V0c1tpXSk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgd204NzUzX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUod204NzUzX2RhcG1fd2lkZ2V0cykpOwogCiAJLyogYWRkIG5lbzE5NzMgc3BlY2lmaWMgY29udHJvbHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTNfbmVvMTk3M19jb250cm9scyk7IGkrKykgewpAQCAtNTA4LDIwICs1MzUsMTggQEAKIAkJCXJldHVybiBlcnI7CiAJfQogCi0JLyogc2V0IHVwIG5lbzE5NzMgc3BlY2lmaWMgYXVkaW8gcGF0aCBhdWRpb19tYXBuZWN0cyAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspIHsKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCWF1ZGlvX21hcFtpXVsxXSwgYXVkaW9fbWFwW2ldWzJdKTsKLQl9CisJLyogc2V0IHVwIG5lbzE5NzMgc3BlY2lmaWMgYXVkaW8gcm91dGVzICovCisJZXJyID0gc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGRhcG1fcm91dGVzLAorCQkJCSAgICAgIEFSUkFZX1NJWkUoZGFwbV9yb3V0ZXMpKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCXJldHVybiAwOwogfQogCiAvKgogICogQlQgQ29kZWMgREFJCiAgKi8KLXN0YXRpYyBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIGJ0X2RhaSA9IHsKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWkgYnRfZGFpID0gewogCS5uYW1lID0gIkJsdWV0b290aCIsCiAJLmlkID0gMCwKIAkudHlwZSA9IFNORF9TT0NfREFJX1BDTSwKQEAgLTU4Myw2ICs2MDgsOCBAQAogewogCWludCByZXQ7CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWNsaWVudF90ZW1wbGF0ZS5hZGFwdGVyID0gYWRhcDsKIAljbGllbnRfdGVtcGxhdGUuYWRkciA9IGFkZHI7CiAKQEAgLTYwNiw2ICs2MzMsOCBAQAogCiBzdGF0aWMgaW50IGxtNDg1N19pMmNfZGV0YWNoKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOwogCWtmcmVlKGNsaWVudCk7CiAJcmV0dXJuIDA7CkBAIC02MTMsNiArNjQyLDggQEAKIAogc3RhdGljIGludCBsbTQ4NTdfaTJjX2F0dGFjaChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlyZXR1cm4gaTJjX3Byb2JlKGFkYXAsICZhZGRyX2RhdGEsIGxtNDg1N19hbXBfcHJvYmUpOwogfQogCkBAIC02MjAsNiArNjUxLDggQEAKIAogc3RhdGljIGludCBsbTQ4NTdfc3VzcGVuZChzdHJ1Y3QgaTJjX2NsaWVudCAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlkZXZfZGJnKCZkZXYtPmRldiwgImxtNDg1N19zdXNwZW5kXG4iKTsKIAlsbTQ4NTdfc3RhdGUgPSBsbTQ4NTdfcmVnc1tMTTQ4NTdfQ1RSTF0gJiAweGY7CiAJaWYgKGxtNDg1N19zdGF0ZSkgewpAQCAtNjMxLDYgKzY2NCw4IEBACiAKIHN0YXRpYyBpbnQgbG00ODU3X3Jlc3VtZShzdHJ1Y3QgaTJjX2NsaWVudCAqZGV2KQogeworCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJaWYgKGxtNDg1N19zdGF0ZSkgewogCQlsbTQ4NTdfcmVnc1tMTTQ4NTdfQ1RSTF0gfD0gKGxtNDg1N19zdGF0ZSAmIDB4MGYpOwogCQlsbTQ4NTdfd3JpdGVfcmVncygpOwpAQCAtNjQwLDYgKzY3NSw4IEBACiAKIHN0YXRpYyB2b2lkIGxtNDg1N19zaHV0ZG93bihzdHJ1Y3QgaTJjX2NsaWVudCAqZGV2KQogeworCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJZGV2X2RiZygmZGV2LT5kZXYsICJsbTQ4NTdfc2h1dGRvd25cbiIpOwogCWxtNDg1N19yZWdzW0xNNDg1N19DVFJMXSAmPSAweGYwOwogCWxtNDg1N193cml0ZV9yZWdzKCk7CkBAIC02NzEsNiArNzA4LDggQEAKIHsKIAlpbnQgcmV0OwogCisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAluZW8xOTczX3NuZF9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNvYy1hdWRpbyIsIC0xKTsKIAlpZiAoIW5lbzE5NzNfc25kX2RldmljZSkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC02OTEsNiArNzMwLDggQEAKIAogc3RhdGljIHZvaWQgX19leGl0IG5lbzE5NzNfZXhpdCh2b2lkKQogeworCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJaTJjX2RlbF9kcml2ZXIoJmxtNDg1N19pMmNfZHJpdmVyKTsKIAlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihuZW8xOTczX3NuZF9kZXZpY2UpOwogfQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3MzYzI0eHgvczNjMjQxMi1pMnMuYyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0MTItaTJzLmMKaW5kZXggYzRhNDZkZC4uZWU0Njc2ZSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3MzYzI0eHgvczNjMjQxMi1pMnMuYworKysgYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDEyLWkycy5jCkBAIC0yOTUsNyArMjk1LDcgQEAKIC8qCiAgKiBTZXQgUzNDMjQxMiBJMlMgREFJIGZvcm1hdAogICovCi1zdGF0aWMgaW50IHMzYzI0MTJfaTJzX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgczNjMjQxMl9pMnNfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCQkgICAgICAgdW5zaWduZWQgaW50IGZtdCkKIHsKIAl1MzIgaWlzbW9kOwpAQCAtNTAwLDcgKzUwMCw3IEBACiAvKgogICogU2V0IFMzQzI0MTIgQ2xvY2sgc291cmNlCiAgKi8KLXN0YXRpYyBpbnQgczNjMjQxMl9pMnNfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBzM2MyNDEyX2kyc19zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJCQkgIGludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCXUzMiBpaXNtb2QgPSByZWFkbChzM2MyNDEyX2kycy5yZWdzICsgUzNDMjQxMl9JSVNNT0QpOwpAQCAtNTI4LDcgKzUyOCw3IEBACiAvKgogICogU2V0IFMzQzI0MTIgQ2xvY2sgZGl2aWRlcnMKICAqLwotc3RhdGljIGludCBzM2MyNDEyX2kyc19zZXRfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IHMzYzI0MTJfaTJzX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCSAgaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3QgczNjMjQxMl9pMnNfaW5mbyAqaTJzID0gJnMzYzI0MTJfaTJzOwpAQCAtNjAxLDcgKzYwMSw4IEBACiBFWFBPUlRfU1lNQk9MX0dQTChzM2MyNDEyX2dldF9paXNjbGspOwogCiAKLXN0YXRpYyBpbnQgczNjMjQxMl9pMnNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgczNjMjQxMl9pMnNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CiAKQEAgLTY0Nyw3ICs2NDgsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BNCiBzdGF0aWMgaW50IHMzYzI0MTJfaTJzX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2LAotCQkJICAgICAgc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpKQorCQkJICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJc3RydWN0IHMzYzI0MTJfaTJzX2luZm8gKmkycyA9ICZzM2MyNDEyX2kyczsKIAl1MzIgaWlzbW9kOwpAQCAtNjc1LDcgKzY3Niw3IEBACiB9CiAKIHN0YXRpYyBpbnQgczNjMjQxMl9pMnNfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0JCQkgICAgICBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJCQkgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlzdHJ1Y3QgczNjMjQxMl9pMnNfaW5mbyAqaTJzID0gJnMzYzI0MTJfaTJzOwogCkBAIC03MDcsNyArNzA4LDcgQEAKIAlTTkRSVl9QQ01fUkFURV8yMjA1MCB8IFNORFJWX1BDTV9SQVRFXzMyMDAwIHwgU05EUlZfUENNX1JBVEVfNDQxMDAgfCBcCiAJU05EUlZfUENNX1JBVEVfNDgwMDAgfCBTTkRSVl9QQ01fUkFURV84ODIwMCB8IFNORFJWX1BDTV9SQVRFXzk2MDAwKQogCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHMzYzI0MTJfaTJzX2RhaSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSBzM2MyNDEyX2kyc19kYWkgPSB7CiAJLm5hbWUJPSAiczNjMjQxMi1pMnMiLAogCS5pZAk9IDAsCiAJLnR5cGUJPSBTTkRfU09DX0RBSV9JMlMsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDEyLWkycy5oIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjQxMi1pMnMuaAppbmRleCAyN2Y0OGUxLi5hYWMwOGEyIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDEyLWkycy5oCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0MTItaTJzLmgKQEAgLTI0LDcgKzI0LDcgQEAKIAogZXh0ZXJuIHN0cnVjdCBjbGsgKnMzYzI0MTJfZ2V0X2lpc2Nsayh2b2lkKTsKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjQxMl9pMnNfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBzM2MyNDEyX2kyc19kYWk7CiAKIHN0cnVjdCBzM2MyNDEyX3JhdGVfY2FsYyB7CiAJdW5zaWduZWQgaW50CWNsa19kaXY7CS8qIGZvciBwcmVzY2FsZXIgKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0NDMtYWM5Ny5jIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjQ0My1hYzk3LmMKaW5kZXggZTgxZDlhNi4uNzgzMzQ5YiAxMDA2NDQKLS0tIGEvc291bmQvc29jL3MzYzI0eHgvczNjMjQ0My1hYzk3LmMKKysrIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjQ0My1hYzk3LmMKQEAgLTEwLDkgKzEwLDYgQEAKICAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCiAgKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqCTIxc3QgTWFyIDIwMDcgICBJbml0aWFsIFZlcnNpb24KICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpAQCAtMjEyLDcgKzIwOSw4IEBACiAJLmRtYV9zaXplCT0gNCwKIH07CiAKLXN0YXRpYyBpbnQgczNjMjQ0M19hYzk3X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgaW50IHMzYzI0NDNfYWM5N19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJaW50IHJldDsKIAl1MzIgYWNfZ2xiY3RybDsKQEAgLTI2Myw3ICsyNjEsOCBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIHMzYzI0NDNfYWM5N19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyB2b2lkIHMzYzI0NDNfYWM5N19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlmcmVlX2lycShJUlFfUzNDMjQ0eF9BQzk3LCBOVUxMKTsKIAljbGtfZGlzYWJsZShzM2MyNHh4X2FjOTcuYWM5N19jbGspOwpAQCAtMjc1LDcgKzI3NCw3IEBACiAJCQkJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQogCQljcHVfZGFpLT5kbWFfZGF0YSA9ICZzM2MyNDQzX2FjOTdfcGNtX3N0ZXJlb19vdXQ7CkBAIC0zMTcsNyArMzE2LDcgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCiAJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCiAJCXJldHVybiAtRU5PREVWOwpAQCAtMzUzLDcgKzM1Miw3IEBACiAJCVNORFJWX1BDTV9SQVRFXzE2MDAwIHwgU05EUlZfUENNX1JBVEVfMjIwNTAgfCBcCiAJCVNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgU05EUlZfUENNX1JBVEVfNDgwMDApCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjQ0M19hYzk3X2RhaVtdID0geworc3RydWN0IHNuZF9zb2NfZGFpIHMzYzI0NDNfYWM5N19kYWlbXSA9IHsKIHsKIAkubmFtZSA9ICJzM2MyNDQzLWFjOTciLAogCS5pZCA9IDAsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWFjOTcuaCBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtYWM5Ny5oCmluZGV4IGJmMDNlOGUuLmE5NmRjYWQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtYWM5Ny5oCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtYWM5Ny5oCkBAIC0yNiw2ICsyNiw2IEBACiAjZGVmaW5lIElSUV9TM0MyNDR4X0FDOTcgSVJRX1MzQzI0NDNfQUM5NwogI2VuZGlmCiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHMzYzI0NDNfYWM5N19kYWlbXTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgczNjMjQ0M19hYzk3X2RhaVtdOwogCiAjZW5kaWYgLypTM0MyNFhYQUM5N19IXyovCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWkycy5jIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1pMnMuYwppbmRleCAxZWQ2YWZkLi4zOTc1MjQyIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWkycy5jCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtaTJzLmMKQEAgLTEyLDExICsxMiw2IEBACiAgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDExdGggRGVjIDIwMDYgICBNZXJnZWQgd2l0aCBTaW10ZWMgZHJpdmVyCi0gKiAgICAxMHRoIE5vdiAyMDA2ICAgSW5pdGlhbCB2ZXJzaW9uLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC0xODAsNyArMTc1LDcgQEAKIHN0YXRpYyBpbnQgczNjMjR4eF9zbmRfbHJzeW5jKHZvaWQpCiB7CiAJdTMyIGlpc2NvbjsKLQl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcyg1KTsKKwlpbnQgdGltZW91dCA9IDUwOyAvKiA1bXMgKi8KIAogCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOwogCkBAIC0xODksOCArMTg0LDkgQEAKIAkJaWYgKGlpc2NvbiAmIFMzQzI0MTBfSUlTQ09OX0xSSU5ERVgpCiAJCQlicmVhazsKIAotCQlpZiAodGltZV9hZnRlcihqaWZmaWVzLCB0aW1lb3V0KSkKKwkJaWYgKCF0aW1lb3V0LS0pCiAJCQlyZXR1cm4gLUVUSU1FRE9VVDsKKwkJdWRlbGF5KDEwMCk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0yMDksNyArMjA1LDcgQEAKIC8qCiAgKiBTZXQgUzNDMjR4eCBJMlMgREFJIGZvcm1hdAogICovCi1zdGF0aWMgaW50IHMzYzI0eHhfaTJzX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgczNjMjR4eF9pMnNfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJdTMyIGlpc21vZDsKQEAgLTMxNyw3ICszMTMsNyBAQAogLyoKICAqIFNldCBTM0MyNHh4IENsb2NrIHNvdXJjZQogICovCi1zdGF0aWMgaW50IHMzYzI0eHhfaTJzX3NldF9zeXNjbGsoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgczNjMjR4eF9pMnNfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJdTMyIGlpc21vZCA9IHJlYWRsKHMzYzI0eHhfaTJzLnJlZ3MgKyBTM0MyNDEwX0lJU01PRCk7CkBAIC0zNDMsNyArMzM5LDcgQEAKIC8qCiAgKiBTZXQgUzNDMjR4eCBDbG9jayBkaXZpZGVycwogICovCi1zdGF0aWMgaW50IHMzYzI0eHhfaTJzX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgczNjMjR4eF9pMnNfc2V0X2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAl1MzIgcmVnOwpAQCAtMzgxLDcgKzM3Nyw4IEBACiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzM2MyNHh4X2kyc19nZXRfY2xvY2tyYXRlKTsKIAotc3RhdGljIGludCBzM2MyNHh4X2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIGludCBzM2MyNHh4X2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKIApAQCAtNDE0LDcgKzQxMSw3IEBACiAKICNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyBpbnQgczNjMjR4eF9pMnNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKQorCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCiB7CiAJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CiAKQEAgLTQyOSw3ICs0MjYsNyBAQAogfQogCiBzdGF0aWMgaW50IHMzYzI0eHhfaTJzX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKQorCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCiB7CiAJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CiAJY2xrX2VuYWJsZShzM2MyNHh4X2kycy5paXNfY2xrKTsKQEAgLTQ1Miw3ICs0NDksNyBAQAogCVNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfMzIwMDAgfCBTTkRSVl9QQ01fUkFURV80NDEwMCB8IFwKIAlTTkRSVl9QQ01fUkFURV80ODAwMCB8IFNORFJWX1BDTV9SQVRFXzg4MjAwIHwgU05EUlZfUENNX1JBVEVfOTYwMDApCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjR4eF9pMnNfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIHMzYzI0eHhfaTJzX2RhaSA9IHsKIAkubmFtZSA9ICJzM2MyNHh4LWkycyIsCiAJLmlkID0gMCwKIAkudHlwZSA9IFNORF9TT0NfREFJX0kyUywKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtaTJzLmggYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWkycy5oCmluZGV4IDUzN2I0ZWMuLjcyNmQ5MWMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtaTJzLmgKKysrIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1pMnMuaApAQCAtMzIsNiArMzIsNiBAQAogCiB1MzIgczNjMjR4eF9pMnNfZ2V0X2Nsb2NrcmF0ZSh2b2lkKTsKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjR4eF9pMnNfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBzM2MyNHh4X2kyc19kYWk7CiAKICNlbmRpZiAvKlMzQzI0WFhJMlNfSF8qLwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1wY20uYyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtcGNtLmMKaW5kZXggNzgwNmFlNi4uY2VmNzliMyAxMDA2NDQKLS0tIGEvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1wY20uYworKysgYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LXBjbS5jCkBAIC0xMiwxMCArMTIsNiBAQAogICogIHVuZGVyICB0aGUgdGVybXMgb2YgIHRoZSBHTlUgR2VuZXJhbCAgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDExdGggRGVjIDIwMDYgICBNZXJnZWQgd2l0aCBTaW10ZWMgZHJpdmVyCi0gKiAgICAxMHRoIE5vdiAyMDA2ICAgSW5pdGlhbCB2ZXJzaW9uLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTQzMyw3ICs0MjksNyBAQAogc3RhdGljIHU2NCBzM2MyNHh4X3BjbV9kbWFtYXNrID0gRE1BXzMyQklUX01BU0s7CiAKIHN0YXRpYyBpbnQgczNjMjR4eF9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgc3RydWN0IHNuZF9wY20gKnBjbSkKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgc3RydWN0IHNuZF9wY20gKnBjbSkKIHsKIAlpbnQgcmV0ID0gMDsKIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3MzYzI0eHgvc21kazI0NDNfd205NzEwLmMgYi9zb3VuZC9zb2MvczNjMjR4eC9zbWRrMjQ0M193bTk3MTAuYwppbmRleCBiNGE1NjMwLi44NTE1ZDZmIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9zbWRrMjQ0M193bTk3MTAuYworKysgYi9zb3VuZC9zb2MvczNjMjR4eC9zbWRrMjQ0M193bTk3MTAuYwpAQCAtMTAsOSArMTAsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDh0aCBNYXIgMjAwNyAgIEluaXRpYWwgdmVyc2lvbi4KLSAqCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NoL0tjb25maWcgYi9zb3VuZC9zb2Mvc2gvS2NvbmZpZwppbmRleCA0YzFlMDEzLi41NGJkNjA0IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc2gvS2NvbmZpZworKysgYi9zb3VuZC9zb2Mvc2gvS2NvbmZpZwpAQCAtMyw3ICszLDcgQEAKIAogY29uZmlnIFNORF9TT0NfUENNX1NINzc2MAogCXRyaXN0YXRlICJTb0MgQXVkaW8gc3VwcG9ydCBmb3IgUmVuZXNhcyBTSDc3NjAiCi0JZGVwZW5kcyBvbiBDUFVfU1VCVFlQRV9TSDc3NjAgJiYgU05EX1NPQyAmJiBTSF9ETUFCUkcKKwlkZXBlbmRzIG9uIENQVV9TVUJUWVBFX1NINzc2MCAmJiBTSF9ETUFCUkcKIAloZWxwCiAJICBFbmFibGUgdGhpcyBvcHRpb24gZm9yIFNINzc2MCBBQzk3L0kyUyBhdWRpbyBzdXBwb3J0LgogCkBAIC0xMywxMCArMTMsOSBAQAogIyMKIAogY29uZmlnIFNORF9TT0NfU0g0X0hBQworCXRyaXN0YXRlCiAJc2VsZWN0IEFDOTdfQlVTCiAJc2VsZWN0IFNORF9TT0NfQUM5N19CVVMKLQlzZWxlY3QgU05EX0FDOTdfQ09ERUMKLQl0cmlzdGF0ZQogCiBjb25maWcgU05EX1NPQ19TSDRfU1NJCiAJdHJpc3RhdGUKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zaC9kbWEtc2g3NzYwLmMgYi9zb3VuZC9zb2Mvc2gvZG1hLXNoNzc2MC5jCmluZGV4IDdhM2NlODAuLjlmYWExMjYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zaC9kbWEtc2g3NzYwLmMKKysrIGIvc291bmQvc29jL3NoL2RtYS1zaDc3NjAuYwpAQCAtMzI2LDcgKzMyNiw3IEBACiB9CiAKIHN0YXRpYyBpbnQgY2FtZWxvdF9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKLQkJCSAgIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpLAorCQkJICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCiAJCQkgICBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogewogCS8qIGRvbnQgdXNlIFNORFJWX0RNQV9UWVBFX0RFViwgc2luY2UgaXQgd2lsbCBvb3BzIHRoZSBTSCBrZXJuZWwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zaC9oYWMuYyBiL3NvdW5kL3NvYy9zaC9oYWMuYwppbmRleCBiN2I2NzZiLi5kZjdiYzM0IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc2gvaGFjLmMKKysrIGIvc291bmQvc29jL3NoL2hhYy5jCkBAIC0yNjYsNyArMjY2LDcgQEAKICNkZWZpbmUgQUM5N19GTVRTCVwKIAlTTkRSVl9QQ01fRk1UQklUX1MxNl9MRQogCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHNoNF9oYWNfZGFpW10gPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgc2g0X2hhY19kYWlbXSA9IHsKIHsKIAkubmFtZQkJCT0gIkhBQzAiLAogCS5pZAkJCT0gMCwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zaC9zaDc3NjAtYWM5Ny5jIGIvc291bmQvc29jL3NoL3NoNzc2MC1hYzk3LmMKaW5kZXggMmY5MWRlOC4uOTJiZmFmNCAxMDA2NDQKLS0tIGEvc291bmQvc29jL3NoL3NoNzc2MC1hYzk3LmMKKysrIGIvc291bmQvc29jL3NoL3NoNzc2MC1hYzk3LmMKQEAgLTIwLDEyICsyMCwxMiBAQAogI2RlZmluZSBJUFNFTCAweEZFNDAwMDM0CiAKIC8qIHBsYXRmb3JtIHNwZWNpZmljIHN0cnVjdHMgY2FuIGJlIGRlY2xhcmVkIGhlcmUgKi8KLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHNoNF9oYWNfZGFpWzJdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBzaDRfaGFjX2RhaVsyXTsKIGV4dGVybiBzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSBzaDc3NjBfc29jX3BsYXRmb3JtOwogCiBzdGF0aWMgaW50IG1hY2hpbmVfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zaC9zc2kuYyBiL3NvdW5kL3NvYy9zaC9zc2kuYwppbmRleCAzMzg4YmMzLi41NWMzNDY0IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc2gvc3NpLmMKKysrIGIvc291bmQvc29jL3NoL3NzaS5jCkBAIC0yMDgsNyArMjA4LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzc2lfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLCBpbnQgY2xrX2lkLAorc3RhdGljIGludCBzc2lfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksIGludCBjbGtfaWQsCiAJCQkgIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCXN0cnVjdCBzc2lfcHJpdiAqc3NpID0gJnNzaV9jcHVfZGF0YVtjcHVfZGFpLT5pZF07CkBAIC0yMjIsNyArMjIyLDcgQEAKICAqIFRoaXMgZGl2aWRlciBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBTU0lfU0NLIChJMlMgYml0Y2xvY2spIGZyb20gdGhlCiAgKiBjbG9jayBhdCB0aGUgSEFDX0JJVF9DTEsgKCJvdmVyc2FtcGxpbmcgY2xvY2siKSBwaW4uCiAgKi8KLXN0YXRpYyBpbnQgc3NpX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpLCBpbnQgZGlkLCBpbnQgZGl2KQorc3RhdGljIGludCBzc2lfc2V0X2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IGRpZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3Qgc3NpX3ByaXYgKnNzaSA9ICZzc2lfY3B1X2RhdGFbZGFpLT5pZF07CiAJdW5zaWduZWQgbG9uZyBzc2ljcjsKQEAgLTI0NSw3ICsyNDUsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNzaV9zZXRfZm10KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmRhaSwgdW5zaWduZWQgaW50IGZtdCkKK3N0YXRpYyBpbnQgc3NpX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIHVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNzaV9wcml2ICpzc2kgPSAmc3NpX2NwdV9kYXRhW2RhaS0+aWRdOwogCXVuc2lnbmVkIGxvbmcgc3NpY3IgPSBTU0lSRUcoU1NJQ1IpOwpAQCAtMzMyLDcgKzMzMiw3IEBACiAJIFNORFJWX1BDTV9GTVRCSVRfUzI0XzNMRSB8IFNORFJWX1BDTV9GTVRCSVRfVTI0XzNMRSB8CVwKIAkgU05EUlZfUENNX0ZNVEJJVF9TMzJfTEUgIHwgU05EUlZfUENNX0ZNVEJJVF9VMzJfTEUpCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgc2g0X3NzaV9kYWlbXSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSBzaDRfc3NpX2RhaVtdID0gewogewogCS5uYW1lCQkJPSAiU1NJMCIsCiAJLmlkCQkJPSAwLApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NvYy1jb3JlLmMgYi9zb3VuZC9zb2Mvc29jLWNvcmUuYwppbmRleCBlMTQ4ZGI5Li44M2YxMTkwIDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc29jLWNvcmUuYworKysgYi9zb3VuZC9zb2Mvc29jLWNvcmUuYwpAQCAtMTQsMTAgKzE0LDYgQEAKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICAxMnRoIEF1ZyAyMDA1ICAgSW5pdGlhbCB2ZXJzaW9uLgotICogICAgMjV0aCBPY3QgMjAwNSAgIFdvcmtpbmcgQ29kZWMsIEludGVyZmFjZSBhbmQgUGxhdGZvcm0gcmVnaXN0cmF0aW9uLgotICoKICAqICBUT0RPOgogICogICBvIEFkZCBodyBydWxlcyB0byBlbmZvcmNlIHJhdGVzLCBldGMuCiAgKiAgIG8gTW9yZSB0ZXN0aW5nIHdpdGggb3RoZXIgY29kZWNzL21hY2hpbmVzLgpAQCAtMTEyLDkgKzEwOCw5IEBACiB9CiAjZW5kaWYKIAotc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBnZXRfZGFpX25hbWUoaW50IHR5cGUpCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmdldF9kYWlfbmFtZShpbnQgdHlwZSkKIHsKLQlzd2l0Y2godHlwZSkgeworCXN3aXRjaCAodHlwZSkgewogCWNhc2UgU05EX1NPQ19EQUlfQUM5N19CVVM6CiAJY2FzZSBTTkRfU09DX0RBSV9BQzk3OgogCQlyZXR1cm4gIkFDOTciOwpAQCAtMTM4LDggKzEzNCw4IEBACiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqbWFjaGluZSA9IHJ0ZC0+ZGFpOwogCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKIAlpbnQgcmV0ID0gMDsKIAogCW11dGV4X2xvY2soJnBjbV9tdXRleCk7CkBAIC0xODIsOSArMTc4LDExIEBACiAJLyogQ2hlY2sgdGhhdCB0aGUgY29kZWMgYW5kIGNwdSBEQUkncyBhcmUgY29tcGF0aWJsZSAqLwogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKSB7CiAJCXJ1bnRpbWUtPmh3LnJhdGVfbWluID0KLQkJCW1heChjb2RlY19kYWktPnBsYXliYWNrLnJhdGVfbWluLCBjcHVfZGFpLT5wbGF5YmFjay5yYXRlX21pbik7CisJCQltYXgoY29kZWNfZGFpLT5wbGF5YmFjay5yYXRlX21pbiwKKwkJCSAgICBjcHVfZGFpLT5wbGF5YmFjay5yYXRlX21pbik7CiAJCXJ1bnRpbWUtPmh3LnJhdGVfbWF4ID0KLQkJCW1pbihjb2RlY19kYWktPnBsYXliYWNrLnJhdGVfbWF4LCBjcHVfZGFpLT5wbGF5YmFjay5yYXRlX21heCk7CisJCQltaW4oY29kZWNfZGFpLT5wbGF5YmFjay5yYXRlX21heCwKKwkJCSAgICBjcHVfZGFpLT5wbGF5YmFjay5yYXRlX21heCk7CiAJCXJ1bnRpbWUtPmh3LmNoYW5uZWxzX21pbiA9CiAJCQltYXgoY29kZWNfZGFpLT5wbGF5YmFjay5jaGFubmVsc19taW4sCiAJCQkJY3B1X2RhaS0+cGxheWJhY2suY2hhbm5lbHNfbWluKTsKQEAgLTE5Nyw5ICsxOTUsMTEgQEAKIAkJCWNvZGVjX2RhaS0+cGxheWJhY2sucmF0ZXMgJiBjcHVfZGFpLT5wbGF5YmFjay5yYXRlczsKIAl9IGVsc2UgewogCQlydW50aW1lLT5ody5yYXRlX21pbiA9Ci0JCQltYXgoY29kZWNfZGFpLT5jYXB0dXJlLnJhdGVfbWluLCBjcHVfZGFpLT5jYXB0dXJlLnJhdGVfbWluKTsKKwkJCW1heChjb2RlY19kYWktPmNhcHR1cmUucmF0ZV9taW4sCisJCQkgICAgY3B1X2RhaS0+Y2FwdHVyZS5yYXRlX21pbik7CiAJCXJ1bnRpbWUtPmh3LnJhdGVfbWF4ID0KLQkJCW1pbihjb2RlY19kYWktPmNhcHR1cmUucmF0ZV9tYXgsIGNwdV9kYWktPmNhcHR1cmUucmF0ZV9tYXgpOworCQkJbWluKGNvZGVjX2RhaS0+Y2FwdHVyZS5yYXRlX21heCwKKwkJCSAgICBjcHVfZGFpLT5jYXB0dXJlLnJhdGVfbWF4KTsKIAkJcnVudGltZS0+aHcuY2hhbm5lbHNfbWluID0KIAkJCW1heChjb2RlY19kYWktPmNhcHR1cmUuY2hhbm5lbHNfbWluLAogCQkJCWNwdV9kYWktPmNhcHR1cmUuY2hhbm5lbHNfbWluKTsKQEAgLTIyOSw3ICsyMjksNyBAQAogCQlnb3RvIG1hY2hpbmVfZXJyOwogCX0KIAotCWRiZygiYXNvYzogJXMgPC0+ICVzIGluZm86XG4iLGNvZGVjX2RhaS0+bmFtZSwgY3B1X2RhaS0+bmFtZSk7CisJZGJnKCJhc29jOiAlcyA8LT4gJXMgaW5mbzpcbiIsIGNvZGVjX2RhaS0+bmFtZSwgY3B1X2RhaS0+bmFtZSk7CiAJZGJnKCJhc29jOiByYXRlIG1hc2sgMHgleFxuIiwgcnVudGltZS0+aHcucmF0ZXMpOwogCWRiZygiYXNvYzogbWluIGNoICVkIG1heCBjaCAlZFxuIiwgcnVudGltZS0+aHcuY2hhbm5lbHNfbWluLAogCQlydW50aW1lLT5ody5jaGFubmVsc19tYXgpOwpAQCAtMjcyLDExICsyNzIsMTEgQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9CiAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UsIGRlbGF5ZWRfd29yay53b3JrKTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpOwogCWludCBpOwogCiAJbXV0ZXhfbG9jaygmcGNtX211dGV4KTsKLQlmb3IoaSA9IDA7IGkgPCBjb2RlYy0+bnVtX2RhaTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKIAkJY29kZWNfZGFpID0gJmNvZGVjLT5kYWlbaV07CiAKIAkJZGJnKCJwb3Agd3EgY2hlY2tpbmc6ICVzIHN0YXR1czogJXMgd2FpdGluZzogJXNcbiIsCkBAIC0yODcsMTIgKzI4NywxMiBAQAogCQkvKiBhcmUgd2Ugd2FpdGluZyBvbiB0aGlzIGNvZGVjIERBSSBzdHJlYW0gKi8KIAkJaWYgKGNvZGVjX2RhaS0+cG9wX3dhaXQgPT0gMSkgewogCi0JCQkvKiBwb3dlciBkb3duIHRoZSBjb2RlYyB0byBEMSBpZiBubyBsb25nZXIgYWN0aXZlICovCisJCQkvKiBSZWR1Y2UgcG93ZXIgaWYgbm8gbG9uZ2VyIGFjdGl2ZSAqLwogCQkJaWYgKGNvZGVjLT5hY3RpdmUgPT0gMCkgewogCQkJCWRiZygicG9wIHdxIEQxICVzICVzXG4iLCBjb2RlYy0+bmFtZSwKIAkJCQkJY29kZWNfZGFpLT5wbGF5YmFjay5zdHJlYW1fbmFtZSk7Ci0JCQkJc25kX3NvY19kYXBtX2RldmljZV9ldmVudChzb2NkZXYsCi0JCQkJCVNORFJWX0NUTF9QT1dFUl9EMSk7CisJCQkJc25kX3NvY19kYXBtX3NldF9iaWFzX2xldmVsKHNvY2RldiwKKwkJCQkJU05EX1NPQ19CSUFTX1BSRVBBUkUpOwogCQkJfQogCiAJCQljb2RlY19kYWktPnBvcF93YWl0ID0gMDsKQEAgLTMwMCwxMiArMzAwLDEyIEBACiAJCQkJY29kZWNfZGFpLT5wbGF5YmFjay5zdHJlYW1fbmFtZSwKIAkJCQlTTkRfU09DX0RBUE1fU1RSRUFNX1NUT1ApOwogCi0JCQkvKiBwb3dlciBkb3duIHRoZSBjb2RlYyBwb3dlciBkb21haW4gaWYgbm8gbG9uZ2VyIGFjdGl2ZSAqLworCQkJLyogRmFsbCBpbnRvIHN0YW5kYnkgaWYgbm8gbG9uZ2VyIGFjdGl2ZSAqLwogCQkJaWYgKGNvZGVjLT5hY3RpdmUgPT0gMCkgewogCQkJCWRiZygicG9wIHdxIEQzICVzICVzXG4iLCBjb2RlYy0+bmFtZSwKIAkJCQkJY29kZWNfZGFpLT5wbGF5YmFjay5zdHJlYW1fbmFtZSk7Ci0JCQkJc25kX3NvY19kYXBtX2RldmljZV9ldmVudChzb2NkZXYsCi0JCQkJCVNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJCQkJc25kX3NvY19kYXBtX3NldF9iaWFzX2xldmVsKHNvY2RldiwKKwkJCQkJU05EX1NPQ19CSUFTX1NUQU5EQlkpOwogCQkJfQogCQl9CiAJfQpAQCAtMzIzLDggKzMyMyw4IEBACiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqbWFjaGluZSA9IHJ0ZC0+ZGFpOwogCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCiAJbXV0ZXhfbG9jaygmcGNtX211dGV4KTsKQEAgLTM2NSw4ICszNjUsOCBAQAogCQkJU05EX1NPQ19EQVBNX1NUUkVBTV9TVE9QKTsKIAogCQlpZiAoY29kZWMtPmFjdGl2ZSA9PSAwICYmIGNvZGVjX2RhaS0+cG9wX3dhaXQgPT0gMCkKLQkJCXNuZF9zb2NfZGFwbV9kZXZpY2VfZXZlbnQoc29jZGV2LAotCQkJCQkJU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwkJCXNuZF9zb2NfZGFwbV9zZXRfYmlhc19sZXZlbChzb2NkZXYsCisJCQkJCQlTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAJfQogCiAJbXV0ZXhfdW5sb2NrKCZwY21fbXV0ZXgpOwpAQCAtMzg0LDggKzM4NCw4IEBACiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqbWFjaGluZSA9IHJ0ZC0+ZGFpOwogCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCWludCByZXQgPSAwOwogCkBAIC00MzQsMTQgKzQzNCwxNCBAQAogCQllbHNlIHsKIAkJCWNvZGVjX2RhaS0+cG9wX3dhaXQgPSAwOwogCQkJY2FuY2VsX2RlbGF5ZWRfd29yaygmc29jZGV2LT5kZWxheWVkX3dvcmspOwotCQkJaWYgKGNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUpCi0JCQkJY29kZWNfZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZShjb2RlY19kYWksIDApOworCQkJc25kX3NvY19kYWlfZGlnaXRhbF9tdXRlKGNvZGVjX2RhaSwgMCk7CiAJCX0KIAl9IGVsc2UgewogCQkvKiBubyBkZWxheWVkIHdvcmsgLSBkbyB3ZSBuZWVkIHRvIHBvd2VyIHVwIGNvZGVjICovCi0JCWlmIChjb2RlYy0+ZGFwbV9zdGF0ZSAhPSBTTkRSVl9DVExfUE9XRVJfRDApIHsKKwkJaWYgKGNvZGVjLT5iaWFzX2xldmVsICE9IFNORF9TT0NfQklBU19PTikgewogCi0JCQlzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KHNvY2RldiwgIFNORFJWX0NUTF9QT1dFUl9EMSk7CisJCQlzbmRfc29jX2RhcG1fc2V0X2JpYXNfbGV2ZWwoc29jZGV2LAorCQkJCQkJICAgIFNORF9TT0NfQklBU19QUkVQQVJFKTsKIAogCQkJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCiAJCQkJc25kX3NvY19kYXBtX3N0cmVhbV9ldmVudChjb2RlYywKQEAgLTQ1Miw5ICs0NTIsOCBAQAogCQkJCQljb2RlY19kYWktPmNhcHR1cmUuc3RyZWFtX25hbWUsCiAJCQkJCVNORF9TT0NfREFQTV9TVFJFQU1fU1RBUlQpOwogCi0JCQlzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KHNvY2RldiwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKLQkJCWlmIChjb2RlY19kYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKQotCQkJCWNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUoY29kZWNfZGFpLCAwKTsKKwkJCXNuZF9zb2NfZGFwbV9zZXRfYmlhc19sZXZlbChzb2NkZXYsIFNORF9TT0NfQklBU19PTik7CisJCQlzbmRfc29jX2RhaV9kaWdpdGFsX211dGUoY29kZWNfZGFpLCAwKTsKIAogCQl9IGVsc2UgewogCQkJLyogY29kZWMgYWxyZWFkeSBwb3dlcmVkIC0gcG93ZXIgb24gd2lkZ2V0cyAqLwpAQCAtNDY2LDggKzQ2NSw4IEBACiAJCQkJc25kX3NvY19kYXBtX3N0cmVhbV9ldmVudChjb2RlYywKIAkJCQkJY29kZWNfZGFpLT5jYXB0dXJlLnN0cmVhbV9uYW1lLAogCQkJCQlTTkRfU09DX0RBUE1fU1RSRUFNX1NUQVJUKTsKLQkJCWlmIChjb2RlY19kYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKQotCQkJCWNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUoY29kZWNfZGFpLCAwKTsKKworCQkJc25kX3NvY19kYWlfZGlnaXRhbF9tdXRlKGNvZGVjX2RhaSwgMCk7CiAJCX0KIAl9CiAKQEAgLTQ4OCw4ICs0ODcsOCBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CiAJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgKm1hY2hpbmUgPSBydGQtPmRhaTsKIAlzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSAqcGxhdGZvcm0gPSBzb2NkZXYtPnBsYXRmb3JtOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5jcHVfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gbWFjaGluZS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CiAJaW50IHJldCA9IDA7CiAKIAltdXRleF9sb2NrKCZwY21fbXV0ZXgpOwpAQCAtNTE0LDcgKzUxMyw3IEBACiAJaWYgKGNwdV9kYWktPm9wcy5od19wYXJhbXMpIHsKIAkJcmV0ID0gY3B1X2RhaS0+b3BzLmh3X3BhcmFtcyhzdWJzdHJlYW0sIHBhcmFtcyk7CiAJCWlmIChyZXQgPCAwKSB7Ci0JCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGNhbid0IHNldCBpbnRlcmZhY2UgJXMgaHcgcGFyYW1zXG4iLAorCQkJcHJpbnRrKEtFUk5fRVJSICJhc29jOiBpbnRlcmZhY2UgJXMgaHcgcGFyYW1zIGZhaWxlZFxuIiwKIAkJCQljcHVfZGFpLT5uYW1lKTsKIAkJCWdvdG8gaW50ZXJmYWNlX2VycjsKIAkJfQpAQCAtNTIzLDcgKzUyMiw3IEBACiAJaWYgKHBsYXRmb3JtLT5wY21fb3BzLT5od19wYXJhbXMpIHsKIAkJcmV0ID0gcGxhdGZvcm0tPnBjbV9vcHMtPmh3X3BhcmFtcyhzdWJzdHJlYW0sIHBhcmFtcyk7CiAJCWlmIChyZXQgPCAwKSB7Ci0JCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGNhbid0IHNldCBwbGF0Zm9ybSAlcyBodyBwYXJhbXNcbiIsCisJCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IHBsYXRmb3JtICVzIGh3IHBhcmFtcyBmYWlsZWRcbiIsCiAJCQkJcGxhdGZvcm0tPm5hbWUpOwogCQkJZ290byBwbGF0Zm9ybV9lcnI7CiAJCX0KQEAgLTU0Miw3ICs1NDEsNyBAQAogCQljb2RlY19kYWktPm9wcy5od19mcmVlKHN1YnN0cmVhbSk7CiAKIGNvZGVjX2VycjoKLQlpZihtYWNoaW5lLT5vcHMgJiYgbWFjaGluZS0+b3BzLT5od19mcmVlKQorCWlmIChtYWNoaW5lLT5vcHMgJiYgbWFjaGluZS0+b3BzLT5od19mcmVlKQogCQltYWNoaW5lLT5vcHMtPmh3X2ZyZWUoc3Vic3RyZWFtKTsKIAogCW11dGV4X3VubG9jaygmcGNtX211dGV4KTsKQEAgLTU1OCwxNSArNTU3LDE1IEBACiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqbWFjaGluZSA9IHJ0ZC0+ZGFpOwogCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCiAJbXV0ZXhfbG9jaygmcGNtX211dGV4KTsKIAogCS8qIGFwcGx5IGNvZGVjIGRpZ2l0YWwgbXV0ZSAqLwotCWlmICghY29kZWMtPmFjdGl2ZSAmJiBjb2RlY19kYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKQotCQljb2RlY19kYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKGNvZGVjX2RhaSwgMSk7CisJaWYgKCFjb2RlYy0+YWN0aXZlKQorCQlzbmRfc29jX2RhaV9kaWdpdGFsX211dGUoY29kZWNfZGFpLCAxKTsKIAogCS8qIGZyZWUgYW55IG1hY2hpbmUgaHcgcGFyYW1zICovCiAJaWYgKG1hY2hpbmUtPm9wcyAmJiBtYWNoaW5lLT5vcHMtPmh3X2ZyZWUpCkBAIC01OTMsOCArNTkyLDggQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OwogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICptYWNoaW5lID0gcnRkLT5kYWk7CiAJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gbWFjaGluZS0+Y29kZWNfZGFpOwogCWludCByZXQ7CiAKIAlpZiAoY29kZWNfZGFpLT5vcHMudHJpZ2dlcikgewpAQCAtNjMxLDE2ICs2MzAsMjYgQEAKIC8qIHBvd2VycyBkb3duIGF1ZGlvIHN1YnN5c3RlbSBmb3Igc3VzcGVuZCAqLwogc3RhdGljIGludCBzb2Nfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7Ci0gCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Ci0gCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7Ci0gCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0gCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSAqY29kZWNfZGV2ID0gc29jZGV2LT5jb2RlY19kZXY7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICptYWNoaW5lID0gc29jZGV2LT5tYWNoaW5lOworCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07CisJc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlICpjb2RlY19kZXYgPSBzb2NkZXYtPmNvZGVjX2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCWludCBpOwogCisJLyogRHVlIHRvIHRoZSByZXN1bWUgYmVpbmcgc2NoZWR1bGVkIGludG8gYSB3b3JrcXVldWUgd2UgY291bGQKKwkqIHN1c3BlbmQgYmVmb3JlIHRoYXQncyBmaW5pc2hlZCAtIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlLgorCSAqLworCXNuZF9wb3dlcl9sb2NrKGNvZGVjLT5jYXJkKTsKKwlzbmRfcG93ZXJfd2FpdChjb2RlYy0+Y2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKKwlzbmRfcG93ZXJfdW5sb2NrKGNvZGVjLT5jYXJkKTsKKworCS8qIHdlJ3JlIGdvaW5nIHRvIGJsb2NrIHVzZXJzcGFjZSB0b3VjaGluZyB1cyB1bnRpbCByZXN1bWUgY29tcGxldGVzICovCisJc25kX3Bvd2VyX2NoYW5nZV9zdGF0ZShjb2RlYy0+Y2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwogCS8qIG11dGUgYW55IGFjdGl2ZSBEQUMncyAqLwotCWZvcihpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7Ci0JCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY29kZWNfZGFpOworCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgeworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNvZGVjX2RhaTsKIAkJaWYgKGRhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUgJiYgZGFpLT5wbGF5YmFjay5hY3RpdmUpCiAJCQlkYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKGRhaSwgMSk7CiAJfQpAQCAtNjUyLDggKzY2MSw4IEBACiAJaWYgKG1hY2hpbmUtPnN1c3BlbmRfcHJlKQogCQltYWNoaW5lLT5zdXNwZW5kX3ByZShwZGV2LCBzdGF0ZSk7CiAKLQlmb3IoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jcHVfZGFpOwogCQlpZiAoY3B1X2RhaS0+c3VzcGVuZCAmJiBjcHVfZGFpLT50eXBlICE9IFNORF9TT0NfREFJX0FDOTcpCiAJCQljcHVfZGFpLT5zdXNwZW5kKHBkZXYsIGNwdV9kYWkpOwogCQlpZiAocGxhdGZvcm0tPnN1c3BlbmQpCkBAIC02NjIsOSArNjcxLDkgQEAKIAogCS8qIGNsb3NlIGFueSB3YWl0aW5nIHN0cmVhbXMgYW5kIHNhdmUgc3RhdGUgKi8KIAlydW5fZGVsYXllZF93b3JrKCZzb2NkZXYtPmRlbGF5ZWRfd29yayk7Ci0JY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSA9IGNvZGVjLT5kYXBtX3N0YXRlOworCWNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwgPSBjb2RlYy0+Ymlhc19sZXZlbDsKIAotCWZvcihpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgY29kZWMtPm51bV9kYWk7IGkrKykgewogCQljaGFyICpzdHJlYW0gPSBjb2RlYy0+ZGFpW2ldLnBsYXliYWNrLnN0cmVhbV9uYW1lOwogCQlpZiAoc3RyZWFtICE9IE5VTEwpCiAJCQlzbmRfc29jX2RhcG1fc3RyZWFtX2V2ZW50KGNvZGVjLCBzdHJlYW0sCkBAIC02NzgsOCArNjg3LDggQEAKIAlpZiAoY29kZWNfZGV2LT5zdXNwZW5kKQogCQljb2RlY19kZXYtPnN1c3BlbmQocGRldiwgc3RhdGUpOwogCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5zdXNwZW5kICYmIGNwdV9kYWktPnR5cGUgPT0gU05EX1NPQ19EQUlfQUM5NykKIAkJCWNwdV9kYWktPnN1c3BlbmQocGRldiwgY3B1X2RhaSk7CiAJfQpAQCAtNjkwLDIxICs2OTksMzIgQEAKIAlyZXR1cm4gMDsKIH0KIAotLyogcG93ZXJzIHVwIGF1ZGlvIHN1YnN5c3RlbSBhZnRlciBhIHN1c3BlbmQgKi8KLXN0YXRpYyBpbnQgc29jX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorLyogZGVmZXJyZWQgcmVzdW1lIHdvcmssIHNvIHJlc3VtZSBjYW4gY29tcGxldGUgYmVmb3JlIHdlIGZpbmlzaGVkCisgKiBzZXR0aW5nIG91ciBjb2RlYyBiYWNrIHVwLCB3aGljaCBjYW4gYmUgdmVyeSBzbG93IG9uIEkyQworICovCitzdGF0aWMgdm9pZCBzb2NfcmVzdW1lX2RlZmVycmVkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKLSAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLSAJc3RydWN0IHNuZF9zb2NfbWFjaGluZSAqbWFjaGluZSA9IHNvY2Rldi0+bWFjaGluZTsKLSAJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKLSAJc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlICpjb2RlY19kZXYgPSBzb2NkZXYtPmNvZGVjX2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IGNvbnRhaW5lcl9vZih3b3JrLAorCQkJCQkJICAgICBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UsCisJCQkJCQkgICAgIGRlZmVycmVkX3Jlc3VtZV93b3JrKTsKKwlzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICptYWNoaW5lID0gc29jZGV2LT5tYWNoaW5lOworCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07CisJc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlICpjb2RlY19kZXYgPSBzb2NkZXYtPmNvZGVjX2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2Uoc29jZGV2LT5kZXYpOwogCWludCBpOwogCisJLyogb3VyIHBvd2VyIHN0YXRlIGlzIHN0aWxsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCBmcm9tIHN1c3BlbmQgdGltZSwKKwkgKiBzbyB1c2Vyc3BhY2UgYXBwcyBhcmUgYmxvY2tlZCBmcm9tIHRvdWNoaW5nIHVzCisJICovCisKKwlkZXZfaW5mbyhzb2NkZXYtPmRldiwgInN0YXJ0aW5nIHJlc3VtZSB3b3JrXG4iKTsKKwogCWlmIChtYWNoaW5lLT5yZXN1bWVfcHJlKQogCQltYWNoaW5lLT5yZXN1bWVfcHJlKHBkZXYpOwogCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5yZXN1bWUgJiYgY3B1X2RhaS0+dHlwZSA9PSBTTkRfU09DX0RBSV9BQzk3KQogCQkJY3B1X2RhaS0+cmVzdW1lKHBkZXYsIGNwdV9kYWkpOwogCX0KQEAgLTcxMiw4ICs3MzIsOCBAQAogCWlmIChjb2RlY19kZXYtPnJlc3VtZSkKIAkJY29kZWNfZGV2LT5yZXN1bWUocGRldik7CiAKLQlmb3IoaSA9IDA7IGkgPCBjb2RlYy0+bnVtX2RhaTsgaSsrKSB7Ci0JCWNoYXIqIHN0cmVhbSA9IGNvZGVjLT5kYWlbaV0ucGxheWJhY2suc3RyZWFtX25hbWU7CisJZm9yIChpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKKwkJY2hhciAqc3RyZWFtID0gY29kZWMtPmRhaVtpXS5wbGF5YmFjay5zdHJlYW1fbmFtZTsKIAkJaWYgKHN0cmVhbSAhPSBOVUxMKQogCQkJc25kX3NvY19kYXBtX3N0cmVhbV9ldmVudChjb2RlYywgc3RyZWFtLAogCQkJCVNORF9TT0NfREFQTV9TVFJFQU1fUkVTVU1FKTsKQEAgLTcyMywxNSArNzQzLDE1IEBACiAJCQkJU05EX1NPQ19EQVBNX1NUUkVBTV9SRVNVTUUpOwogCX0KIAotCS8qIHVubXV0ZSBhbnkgYWN0aXZlIERBQydzICovCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jb2RlY19kYWk7CisJLyogdW5tdXRlIGFueSBhY3RpdmUgREFDcyAqLworCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgeworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNvZGVjX2RhaTsKIAkJaWYgKGRhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUgJiYgZGFpLT5wbGF5YmFjay5hY3RpdmUpCiAJCQlkYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKGRhaSwgMCk7CiAJfQogCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5yZXN1bWUgJiYgY3B1X2RhaS0+dHlwZSAhPSBTTkRfU09DX0RBSV9BQzk3KQogCQkJY3B1X2RhaS0+cmVzdW1lKHBkZXYsIGNwdV9kYWkpOwogCQlpZiAocGxhdGZvcm0tPnJlc3VtZSkKQEAgLTc0MSw2ICs3NjEsMjIgQEAKIAlpZiAobWFjaGluZS0+cmVzdW1lX3Bvc3QpCiAJCW1hY2hpbmUtPnJlc3VtZV9wb3N0KHBkZXYpOwogCisJZGV2X2luZm8oc29jZGV2LT5kZXYsICJyZXN1bWUgd29yayBjb21wbGV0ZWRcbiIpOworCisJLyogdXNlcnNwYWNlIGNhbiBhY2Nlc3MgdXMgbm93IHdlIGFyZSBiYWNrIGFzIHdlIHdlcmUgYmVmb3JlICovCisJc25kX3Bvd2VyX2NoYW5nZV9zdGF0ZShjb2RlYy0+Y2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKK30KKworLyogcG93ZXJzIHVwIGF1ZGlvIHN1YnN5c3RlbSBhZnRlciBhIHN1c3BlbmQgKi8KK3N0YXRpYyBpbnQgc29jX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlkZXZfaW5mbyhzb2NkZXYtPmRldiwgInNjaGVkdWxpbmcgcmVzdW1lIHdvcmtcbiIpOworCisJaWYgKCFzY2hlZHVsZV93b3JrKCZzb2NkZXYtPmRlZmVycmVkX3Jlc3VtZV93b3JrKSkKKwkJZGV2X2Vycihzb2NkZXYtPmRldiwgIndvcmsgaXRlbSBtYXkgYmUgbG9zdFxuIik7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNzYwLDMzICs3OTYsMzggQEAKIAogCWlmIChtYWNoaW5lLT5wcm9iZSkgewogCQlyZXQgPSBtYWNoaW5lLT5wcm9iZShwZGV2KTsKLQkJaWYocmV0IDwgMCkKKwkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0OwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKIAkJaWYgKGNwdV9kYWktPnByb2JlKSB7Ci0JCQlyZXQgPSBjcHVfZGFpLT5wcm9iZShwZGV2KTsKLQkJCWlmKHJldCA8IDApCisJCQlyZXQgPSBjcHVfZGFpLT5wcm9iZShwZGV2LCBjcHVfZGFpKTsKKwkJCWlmIChyZXQgPCAwKQogCQkJCWdvdG8gY3B1X2RhaV9lcnI7CiAJCX0KIAl9CiAKIAlpZiAoY29kZWNfZGV2LT5wcm9iZSkgewogCQlyZXQgPSBjb2RlY19kZXYtPnByb2JlKHBkZXYpOwotCQlpZihyZXQgPCAwKQorCQlpZiAocmV0IDwgMCkKIAkJCWdvdG8gY3B1X2RhaV9lcnI7CiAJfQogCiAJaWYgKHBsYXRmb3JtLT5wcm9iZSkgewogCQlyZXQgPSBwbGF0Zm9ybS0+cHJvYmUocGRldik7Ci0JCWlmKHJldCA8IDApCisJCWlmIChyZXQgPCAwKQogCQkJZ290byBwbGF0Zm9ybV9lcnI7CiAJfQogCiAJLyogREFQTSBzdHJlYW0gd29yayAqLwogCUlOSVRfREVMQVlFRF9XT1JLKCZzb2NkZXYtPmRlbGF5ZWRfd29yaywgY2xvc2VfZGVsYXllZF93b3JrKTsKKyNpZmRlZiBDT05GSUdfUE0KKwkvKiBkZWZlcnJlZCByZXN1bWUgd29yayAqLworCUlOSVRfV09SSygmc29jZGV2LT5kZWZlcnJlZF9yZXN1bWVfd29yaywgc29jX3Jlc3VtZV9kZWZlcnJlZCk7CisjZW5kaWYKKwogCXJldHVybiAwOwogCiBwbGF0Zm9ybV9lcnI6CkBAIC03OTUsOSArODM2LDkgQEAKIAogY3B1X2RhaV9lcnI6CiAJZm9yIChpLS07IGkgPj0gMDsgaS0tKSB7Ci0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jcHVfZGFpOworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jcHVfZGFpOwogCQlpZiAoY3B1X2RhaS0+cmVtb3ZlKQotCQkJY3B1X2RhaS0+cmVtb3ZlKHBkZXYpOworCQkJY3B1X2RhaS0+cmVtb3ZlKHBkZXYsIGNwdV9kYWkpOwogCX0KIAogCWlmIChtYWNoaW5lLT5yZW1vdmUpCkBAIC04MjQsOSArODY1LDkgQEAKIAkJY29kZWNfZGV2LT5yZW1vdmUocGRldik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5yZW1vdmUpCi0JCQljcHVfZGFpLT5yZW1vdmUocGRldik7CisJCQljcHVfZGFpLT5yZW1vdmUocGRldiwgY3B1X2RhaSk7CiAJfQogCiAJaWYgKG1hY2hpbmUtPnJlbW92ZSkKQEAgLTg1Miw4ICs4OTMsOCBAQAogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICpkYWlfbGluaywgaW50IG51bSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gZGFpX2xpbmstPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gZGFpX2xpbmstPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBkYWlfbGluay0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IGRhaV9saW5rLT5jcHVfZGFpOwogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQ7CiAJc3RydWN0IHNuZF9wY20gKnBjbTsKIAljaGFyIG5ld19uYW1lWzY0XTsKQEAgLTg2OCw3ICs5MDksNyBAQAogCWNvZGVjX2RhaS0+Y29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCiAJLyogY2hlY2sgY2xpZW50IGFuZCBpbnRlcmZhY2UgaHcgY2FwYWJpbGl0aWVzICovCi0Jc3ByaW50ZihuZXdfbmFtZSwgIiVzICVzLSVzLSVkIixkYWlfbGluay0+c3RyZWFtX25hbWUsIGNvZGVjX2RhaS0+bmFtZSwKKwlzcHJpbnRmKG5ld19uYW1lLCAiJXMgJXMtJXMtJWQiLCBkYWlfbGluay0+c3RyZWFtX25hbWUsIGNvZGVjX2RhaS0+bmFtZSwKIAkJZ2V0X2RhaV9uYW1lKGNwdV9kYWktPnR5cGUpLCBudW0pOwogCiAJaWYgKGNvZGVjX2RhaS0+cGxheWJhY2suY2hhbm5lbHNfbWluKQpAQCAtODc5LDcgKzkyMCw4IEBACiAJcmV0ID0gc25kX3BjbV9uZXcoY29kZWMtPmNhcmQsIG5ld19uYW1lLCBjb2RlYy0+cGNtX2RldnMrKywgcGxheWJhY2ssCiAJCWNhcHR1cmUsICZwY20pOwogCWlmIChyZXQgPCAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiYXNvYzogY2FuJ3QgY3JlYXRlIHBjbSBmb3IgY29kZWMgJXNcbiIsIGNvZGVjLT5uYW1lKTsKKwkJcHJpbnRrKEtFUk5fRVJSICJhc29jOiBjYW4ndCBjcmVhdGUgcGNtIGZvciBjb2RlYyAlc1xuIiwKKwkJCWNvZGVjLT5uYW1lKTsKIAkJa2ZyZWUocnRkKTsKIAkJcmV0dXJuIHJldDsKIAl9CkBAIC05MjgsOCArOTcwLDkgQEAKIAkJc3RlcCA9IGNvZGVjLT5yZWdfY2FjaGVfc3RlcDsKIAogCWNvdW50ICs9IHNwcmludGYoYnVmLCAiJXMgcmVnaXN0ZXJzXG4iLCBjb2RlYy0+bmFtZSk7Ci0JZm9yKGkgPSAwOyBpIDwgY29kZWMtPnJlZ19jYWNoZV9zaXplOyBpICs9IHN0ZXApCi0JCWNvdW50ICs9IHNwcmludGYoYnVmICsgY291bnQsICIlMng6ICU0eFxuIiwgaSwgY29kZWMtPnJlYWQoY29kZWMsIGkpKTsKKwlmb3IgKGkgPSAwOyBpIDwgY29kZWMtPnJlZ19jYWNoZV9zaXplOyBpICs9IHN0ZXApCisJCWNvdW50ICs9IHNwcmludGYoYnVmICsgY291bnQsICIlMng6ICU0eFxuIiwgaSwKKwkJCWNvZGVjLT5yZWFkKGNvZGVjLCBpKSk7CiAKIAlyZXR1cm4gY291bnQ7CiB9CkBAIC0xMDcyLDcgKzExMTUsNyBAQAogCXN0cm5jcHkoY29kZWMtPmNhcmQtPmRyaXZlciwgY29kZWMtPm5hbWUsIHNpemVvZihjb2RlYy0+Y2FyZC0+ZHJpdmVyKSk7CiAKIAkvKiBjcmVhdGUgdGhlIHBjbXMgKi8KLQlmb3IoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewogCQlyZXQgPSBzb2NfbmV3X3BjbShzb2NkZXYsICZtYWNoaW5lLT5kYWlfbGlua1tpXSwgaSk7CiAJCWlmIChyZXQgPCAwKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGNhbid0IGNyZWF0ZSBwY20gJXNcbiIsCkBAIC0xMTAyLDcgKzExNDUsNyBAQAogCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7CiAJaW50IHJldCA9IDAsIGksIGFjOTcgPSAwLCBlcnIgPSAwOwogCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKIAkJaWYgKHNvY2Rldi0+bWFjaGluZS0+ZGFpX2xpbmtbaV0uaW5pdCkgewogCQkJZXJyID0gc29jZGV2LT5tYWNoaW5lLT5kYWlfbGlua1tpXS5pbml0KGNvZGVjKTsKIAkJCWlmIChlcnIgPCAwKSB7CkBAIC0xMTExLDcgKzExNTQsNyBAQAogCQkJCWNvbnRpbnVlOwogCQkJfQogCQl9Ci0JCWlmIChzb2NkZXYtPm1hY2hpbmUtPmRhaV9saW5rW2ldLmNvZGVjX2RhaS0+dHlwZSA9PSAKKwkJaWYgKHNvY2Rldi0+bWFjaGluZS0+ZGFpX2xpbmtbaV0uY29kZWNfZGFpLT50eXBlID09CiAJCQlTTkRfU09DX0RBSV9BQzk3X0JVUykKIAkJCWFjOTcgPSAxOwogCX0KQEAgLTExMjIsNyArMTE2NSw3IEBACiAKIAlyZXQgPSBzbmRfY2FyZF9yZWdpc3Rlcihjb2RlYy0+Y2FyZCk7CiAJaWYgKHJldCA8IDApIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJhc29jOiBmYWlsZWQgdG8gcmVnaXN0ZXIgc291bmRjYXJkIGZvciBjb2RlYyAlc1xuIiwKKwkJcHJpbnRrKEtFUk5fRVJSICJhc29jOiBmYWlsZWQgdG8gcmVnaXN0ZXIgc291bmRjYXJkIGZvciAlc1xuIiwKIAkJCQljb2RlYy0+bmFtZSk7CiAJCWdvdG8gb3V0OwogCX0KQEAgLTExNDYsNyArMTE4OSw3IEBACiAKIAllcnIgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoc29jZGV2LT5kZXYsICZkZXZfYXR0cl9jb2RlY19yZWcpOwogCWlmIChlcnIgPCAwKQotCQlwcmludGsoS0VSTl9XQVJOSU5HICJhc29jOiBmYWlsZWQgdG8gYWRkIGNvZGVjIHN5c2ZzIGVudHJpZXNcbiIpOworCQlwcmludGsoS0VSTl9XQVJOSU5HICJhc29jOiBmYWlsZWQgdG8gYWRkIGNvZGVjIHN5c2ZzIGZpbGVzXG4iKTsKIAogCW11dGV4X3VubG9jaygmY29kZWMtPm11dGV4KTsKIApAQCAtMTE2NiwxMyArMTIwOSwxMyBAQAogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAjaWZkZWYgQ09ORklHX1NORF9TT0NfQUM5N19CVVMKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaTsKIAlpbnQgaTsKICNlbmRpZgogCiAJbXV0ZXhfbG9jaygmY29kZWMtPm11dGV4KTsKICNpZmRlZiBDT05GSUdfU05EX1NPQ19BQzk3X0JVUwotCWZvcihpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgY29kZWMtPm51bV9kYWk7IGkrKykgewogCQljb2RlY19kYWkgPSAmY29kZWMtPmRhaVtpXTsKIAkJaWYgKGNvZGVjX2RhaS0+dHlwZSA9PSBTTkRfU09DX0RBSV9BQzk3X0JVUyAmJiBjb2RlYy0+YWM5NykgewogCQkJc29jX2FjOTdfZGV2X3VucmVnaXN0ZXIoY29kZWMpOwpAQCAtMTI4Miw3ICsxMzI1LDggQEAKIAlmb3IgKGJpdG1hc2sgPSAxOyBiaXRtYXNrIDwgZS0+bWFzazsgYml0bWFzayA8PD0gMSkKIAkJOwogCXZhbCA9IHNuZF9zb2NfcmVhZChjb2RlYywgZS0+cmVnKTsKLQl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdID0gKHZhbCA+PiBlLT5zaGlmdF9sKSAmIChiaXRtYXNrIC0gMSk7CisJdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXQorCQk9ICh2YWwgPj4gZS0+c2hpZnRfbCkgJiAoYml0bWFzayAtIDEpOwogCWlmIChlLT5zaGlmdF9sICE9IGUtPnNoaWZ0X3IpCiAJCXVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMV0gPQogCQkJKHZhbCA+PiBlLT5zaGlmdF9yKSAmIChiaXRtYXNrIC0gMSk7CkBAIC0xNTc2LDcgKzE2MjAsOCBAQAogCXZhbCA9IHZhbCA8PCBzaGlmdDsKIAl2YWwyID0gdmFsMiA8PCBzaGlmdDsKIAotCWlmICgoZXJyID0gc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgcmVnLCB2YWxfbWFzaywgdmFsKSkgPCAwKQorCWVyciA9IHNuZF9zb2NfdXBkYXRlX2JpdHMoY29kZWMsIHJlZywgdmFsX21hc2ssIHZhbCk7CisJaWYgKGVyciA8IDApCiAJCXJldHVybiBlcnI7CiAKIAllcnIgPSBzbmRfc29jX3VwZGF0ZV9iaXRzKGNvZGVjLCByZWcyLCB2YWxfbWFzaywgdmFsMik7CkBAIC0xNTg0LDYgKzE2MjksMjA0IEBACiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX3B1dF92b2xzd18ycik7CiAKKy8qKgorICogc25kX3NvY19pbmZvX3ZvbHN3X3M4IC0gc2lnbmVkIG1peGVyIGluZm8gY2FsbGJhY2sKKyAqIEBrY29udHJvbDogbWl4ZXIgY29udHJvbAorICogQHVpbmZvOiBjb250cm9sIGVsZW1lbnQgaW5mb3JtYXRpb24KKyAqCisgKiBDYWxsYmFjayB0byBwcm92aWRlIGluZm9ybWF0aW9uIGFib3V0IGEgc2lnbmVkIG1peGVyIGNvbnRyb2wuCisgKgorICogUmV0dXJucyAwIGZvciBzdWNjZXNzLgorICovCitpbnQgc25kX3NvY19pbmZvX3ZvbHN3X3M4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCit7CisJaW50IG1heCA9IChzaWduZWQgY2hhcikoKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4ZmYpOworCWludCBtaW4gPSAoc2lnbmVkIGNoYXIpKChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmKTsKKworCXVpbmZvLT50eXBlID0gU05EUlZfQ1RMX0VMRU1fVFlQRV9JTlRFR0VSOworCXVpbmZvLT5jb3VudCA9IDI7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSBtYXgtbWluOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19pbmZvX3ZvbHN3X3M4KTsKKworLyoqCisgKiBzbmRfc29jX2dldF92b2xzd19zOCAtIHNpZ25lZCBtaXhlciBnZXQgY2FsbGJhY2sKKyAqIEBrY29udHJvbDogbWl4ZXIgY29udHJvbAorICogQHVpbmZvOiBjb250cm9sIGVsZW1lbnQgaW5mb3JtYXRpb24KKyAqCisgKiBDYWxsYmFjayB0byBnZXQgdGhlIHZhbHVlIG9mIGEgc2lnbmVkIG1peGVyIGNvbnRyb2wuCisgKgorICogUmV0dXJucyAwIGZvciBzdWNjZXNzLgorICovCitpbnQgc25kX3NvY19nZXRfdm9sc3dfczgoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IG1pbiA9IChzaWduZWQgY2hhcikoKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmYpOworCWludCB2YWwgPSBzbmRfc29jX3JlYWQoY29kZWMsIHJlZyk7CisKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9CisJCSgoc2lnbmVkIGNoYXIpKHZhbCAmIDB4ZmYpKS1taW47CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gPQorCQkoKHNpZ25lZCBjaGFyKSgodmFsID4+IDgpICYgMHhmZikpLW1pbjsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZ2V0X3ZvbHN3X3M4KTsKKworLyoqCisgKiBzbmRfc29jX3B1dF92b2xzd19zZ24gLSBzaWduZWQgbWl4ZXIgcHV0IGNhbGxiYWNrCisgKiBAa2NvbnRyb2w6IG1peGVyIGNvbnRyb2wKKyAqIEB1aW5mbzogY29udHJvbCBlbGVtZW50IGluZm9ybWF0aW9uCisgKgorICogQ2FsbGJhY2sgdG8gc2V0IHRoZSB2YWx1ZSBvZiBhIHNpZ25lZCBtaXhlciBjb250cm9sLgorICoKKyAqIFJldHVybnMgMCBmb3Igc3VjY2Vzcy4KKyAqLworaW50IHNuZF9zb2NfcHV0X3ZvbHN3X3M4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCBtaW4gPSAoc2lnbmVkIGNoYXIpKChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmKTsKKwl1bnNpZ25lZCBzaG9ydCB2YWw7CisKKwl2YWwgPSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0rbWluKSAmIDB4ZmY7CisJdmFsIHw9ICgodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0rbWluKSAmIDB4ZmYpIDw8IDg7CisKKwlyZXR1cm4gc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgcmVnLCAweGZmZmYsIHZhbCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX3B1dF92b2xzd19zOCk7CisKKy8qKgorICogc25kX3NvY19kYWlfc2V0X3N5c2NsayAtIGNvbmZpZ3VyZSBEQUkgc3lzdGVtIG9yIG1hc3RlciBjbG9jay4KKyAqIEBkYWk6IERBSQorICogQGNsa19pZDogREFJIHNwZWNpZmljIGNsb2NrIElECisgKiBAZnJlcTogbmV3IGNsb2NrIGZyZXF1ZW5jeSBpbiBIegorICogQGRpcjogbmV3IGNsb2NrIGRpcmVjdGlvbiAtIGlucHV0L291dHB1dC4KKyAqCisgKiBDb25maWd1cmVzIHRoZSBEQUkgbWFzdGVyIChNQ0xLKSBvciBzeXN0ZW0gKFNZU0NMSykgY2xvY2tpbmcuCisgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgY2xrX2lkLAorCXVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQoreworCWlmIChkYWktPmRhaV9vcHMuc2V0X3N5c2NsaykKKwkJcmV0dXJuIGRhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKGRhaSwgY2xrX2lkLCBmcmVxLCBkaXIpOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhaV9zZXRfc3lzY2xrKTsKKworLyoqCisgKiBzbmRfc29jX2RhaV9zZXRfY2xrZGl2IC0gY29uZmlndXJlIERBSSBjbG9jayBkaXZpZGVycy4KKyAqIEBkYWk6IERBSQorICogQGNsa19pZDogREFJIHNwZWNpZmljIGNsb2NrIGRpdmlkZXIgSUQKKyAqIEBkaXY6IG5ldyBjbG9jayBkaXZpc29yLgorICoKKyAqIENvbmZpZ3VyZXMgdGhlIGNsb2NrIGRpdmlkZXJzLiBUaGlzIGlzIHVzZWQgdG8gZGVyaXZlIHRoZSBiZXN0IERBSSBiaXQgYW5kCisgKiBmcmFtZSBjbG9ja3MgZnJvbSB0aGUgc3lzdGVtIG9yIG1hc3RlciBjbG9jay4gSXQncyBiZXN0IHRvIHNldCB0aGUgREFJIGJpdAorICogYW5kIGZyYW1lIGNsb2NrcyBhcyBsb3cgYXMgcG9zc2libGUgdG8gc2F2ZSBzeXN0ZW0gcG93ZXIuCisgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAorCWludCBkaXZfaWQsIGludCBkaXYpCit7CisJaWYgKGRhaS0+ZGFpX29wcy5zZXRfY2xrZGl2KQorCQlyZXR1cm4gZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYoZGFpLCBkaXZfaWQsIGRpdik7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFpX3NldF9jbGtkaXYpOworCisvKioKKyAqIHNuZF9zb2NfZGFpX3NldF9wbGwgLSBjb25maWd1cmUgREFJIFBMTC4KKyAqIEBkYWk6IERBSQorICogQHBsbF9pZDogREFJIHNwZWNpZmljIFBMTCBJRAorICogQGZyZXFfaW46IFBMTCBpbnB1dCBjbG9jayBmcmVxdWVuY3kgaW4gSHoKKyAqIEBmcmVxX291dDogcmVxdWVzdGVkIFBMTCBvdXRwdXQgY2xvY2sgZnJlcXVlbmN5IGluIEh6CisgKgorICogQ29uZmlndXJlcyBhbmQgZW5hYmxlcyBQTEwgdG8gZ2VuZXJhdGUgb3V0cHV0IGNsb2NrIGJhc2VkIG9uIGlucHV0IGNsb2NrLgorICovCitpbnQgc25kX3NvY19kYWlfc2V0X3BsbChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKKwlpbnQgcGxsX2lkLCB1bnNpZ25lZCBpbnQgZnJlcV9pbiwgdW5zaWduZWQgaW50IGZyZXFfb3V0KQoreworCWlmIChkYWktPmRhaV9vcHMuc2V0X3BsbCkKKwkJcmV0dXJuIGRhaS0+ZGFpX29wcy5zZXRfcGxsKGRhaSwgcGxsX2lkLCBmcmVxX2luLCBmcmVxX291dCk7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFpX3NldF9wbGwpOworCisvKioKKyAqIHNuZF9zb2NfZGFpX3NldF9mbXQgLSBjb25maWd1cmUgREFJIGhhcmR3YXJlIGF1ZGlvIGZvcm1hdC4KKyAqIEBkYWk6IERBSQorICogQGNsa19pZDogREFJIHNwZWNpZmljIGNsb2NrIElECisgKiBAZm10OiBTTkRfU09DX0RBSUZNVF8gZm9ybWF0IHZhbHVlLgorICoKKyAqIENvbmZpZ3VyZXMgdGhlIERBSSBoYXJkd2FyZSBmb3JtYXQgYW5kIGNsb2NraW5nLgorICovCitpbnQgc25kX3NvY19kYWlfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgdW5zaWduZWQgaW50IGZtdCkKK3sKKwlpZiAoZGFpLT5kYWlfb3BzLnNldF9mbXQpCisJCXJldHVybiBkYWktPmRhaV9vcHMuc2V0X2ZtdChkYWksIGZtdCk7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFpX3NldF9mbXQpOworCisvKioKKyAqIHNuZF9zb2NfZGFpX3NldF90ZG1fc2xvdCAtIGNvbmZpZ3VyZSBEQUkgVERNLgorICogQGRhaTogREFJCisgKiBAbWFzazogREFJIHNwZWNpZmljIG1hc2sgcmVwcmVzZW50aW5nIHVzZWQgc2xvdHMuCisgKiBAc2xvdHM6IE51bWJlciBvZiBzbG90cyBpbiB1c2UuCisgKgorICogQ29uZmlndXJlcyBhIERBSSBmb3IgVERNIG9wZXJhdGlvbi4gQm90aCBtYXNrIGFuZCBzbG90cyBhcmUgY29kZWMgYW5kIERBSQorICogc3BlY2lmaWMuCisgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfdGRtX3Nsb3Qoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCisJdW5zaWduZWQgaW50IG1hc2ssIGludCBzbG90cykKK3sKKwlpZiAoZGFpLT5kYWlfb3BzLnNldF9zeXNjbGspCisJCXJldHVybiBkYWktPmRhaV9vcHMuc2V0X3RkbV9zbG90KGRhaSwgbWFzaywgc2xvdHMpOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhaV9zZXRfdGRtX3Nsb3QpOworCisvKioKKyAqIHNuZF9zb2NfZGFpX3NldF90cmlzdGF0ZSAtIGNvbmZpZ3VyZSBEQUkgc3lzdGVtIG9yIG1hc3RlciBjbG9jay4KKyAqIEBkYWk6IERBSQorICogQHRyaXN0YXRlOiB0cmlzdGF0ZSBlbmFibGUKKyAqCisgKiBUcmlzdGF0ZXMgdGhlIERBSSBzbyB0aGF0IG90aGVycyBjYW4gdXNlIGl0LgorICovCitpbnQgc25kX3NvY19kYWlfc2V0X3RyaXN0YXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgdHJpc3RhdGUpCit7CisJaWYgKGRhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKQorCQlyZXR1cm4gZGFpLT5kYWlfb3BzLnNldF90cmlzdGF0ZShkYWksIHRyaXN0YXRlKTsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYWlfc2V0X3RyaXN0YXRlKTsKKworLyoqCisgKiBzbmRfc29jX2RhaV9kaWdpdGFsX211dGUgLSBjb25maWd1cmUgREFJIHN5c3RlbSBvciBtYXN0ZXIgY2xvY2suCisgKiBAZGFpOiBEQUkKKyAqIEBtdXRlOiBtdXRlIGVuYWJsZQorICoKKyAqIE11dGVzIHRoZSBEQUkgREFDLgorICovCitpbnQgc25kX3NvY19kYWlfZGlnaXRhbF9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKK3sKKwlpZiAoZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZSkKKwkJcmV0dXJuIGRhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUoZGFpLCBtdXRlKTsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYWlfZGlnaXRhbF9tdXRlKTsKKwogc3RhdGljIGludCBfX2RldmluaXQgc25kX3NvY19pbml0KHZvaWQpCiB7CiAJcHJpbnRrKEtFUk5fSU5GTyAiQVNvQyB2ZXJzaW9uICVzXG4iLCBTTkRfU09DX1ZFUlNJT04pOwpAQCAtMTU5Miw3ICsxODM1LDcgQEAKIAogc3RhdGljIHZvaWQgc25kX3NvY19leGl0KHZvaWQpCiB7Ci0gCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzb2NfZHJpdmVyKTsKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3Rlcigmc29jX2RyaXZlcik7CiB9CiAKIG1vZHVsZV9pbml0KHNuZF9zb2NfaW5pdCk7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc29jLWRhcG0uYyBiL3NvdW5kL3NvYy9zb2MtZGFwbS5jCmluZGV4IGFmMzMyNmMuLjJjODcwNjEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zb2MtZGFwbS5jCisrKyBiL3NvdW5kL3NvYy9zb2MtZGFwbS5jCkBAIC0xMCwxMSArMTAsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDEydGggQXVnIDIwMDUgICBJbml0aWFsIHZlcnNpb24uCi0gKiAgICAyNXRoIE9jdCAyMDA1ICAgSW1wbGVtZW50ZWQgcGF0aCBwb3dlciBkb21haW4uCi0gKiAgICAxOHRoIERlYyAyMDA1ICAgSW1wbGVtZW50ZWQgbWFjaGluZSBhbmQgc3RyZWFtIGxldmVsIHBvd2VyIGRvbWFpbi4KLSAqCiAgKiAgRmVhdHVyZXM6CiAgKiAgICBvIENoYW5nZXMgcG93ZXIgc3RhdHVzIG9mIGludGVybmFsIGNvZGVjIGJsb2NrcyBkZXBlbmRpbmcgb24gdGhlCiAgKiAgICAgIGR5bmFtaWMgY29uZmlndXJhdGlvbiBvZiBjb2RlYyBpbnRlcm5hbCBhdWRpbyBwYXRocyBhbmQgYWN0aXZlCkBAIC01MCwyMyArNDUsMTAgQEAKICNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CiAKIC8qIGRlYnVnICovCi0jZGVmaW5lIERBUE1fREVCVUcgMAotI2lmIERBUE1fREVCVUcKKyNpZmRlZiBERUJVRwogI2RlZmluZSBkdW1wX2RhcG0oY29kZWMsIGFjdGlvbikgZGJnX2R1bXBfZGFwbShjb2RlYywgYWN0aW9uKQotI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pIHByaW50ayhmb3JtYXQsICMjIGFyZykKICNlbHNlCiAjZGVmaW5lIGR1bXBfZGFwbShjb2RlYywgYWN0aW9uKQotI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pCi0jZW5kaWYKLQotI2RlZmluZSBQT1BfREVCVUcgMAotI2lmIFBPUF9ERUJVRwotI2RlZmluZSBQT1BfVElNRSA1MDAgLyogNTAwIG1zZWNzIC0gY2hhbmdlIGlmIHBvcCBkZWJ1ZyBpcyB0b28gZmFzdCAqLwotI2RlZmluZSBwb3Bfd2FpdCh0aW1lKSBzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShtc2Vjc190b19qaWZmaWVzKHRpbWUpKQotI2RlZmluZSBwb3BfZGJnKGZvcm1hdCwgYXJnLi4uKSBwcmludGsoZm9ybWF0LCAjIyBhcmcpOyBwb3Bfd2FpdChQT1BfVElNRSkKLSNlbHNlCi0jZGVmaW5lIHBvcF9kYmcoZm9ybWF0LCBhcmcuLi4pCi0jZGVmaW5lIHBvcF93YWl0KHRpbWUpCiAjZW5kaWYKIAogLyogZGFwbSBwb3dlciBzZXF1ZW5jZXMgLSBtYWtlIHRoaXMgcGVyIGNvZGVjIGluIHRoZSBmdXR1cmUgKi8KQEAgLTg1LDYgKzY3LDI4IEBACiBtb2R1bGVfcGFyYW0oZGFwbV9zdGF0dXMsIGludCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKGRhcG1fc3RhdHVzLCAiZW5hYmxlIERQTSBzeXNmcyBlbnRyaWVzIik7CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcG9wX3RpbWU7CisKK3N0YXRpYyB2b2lkIHBvcF93YWl0KHZvaWQpCit7CisJaWYgKHBvcF90aW1lKQorCQlzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShtc2Vjc190b19qaWZmaWVzKHBvcF90aW1lKSk7Cit9CisKK3N0YXRpYyB2b2lkIHBvcF9kYmcoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJdmFfbGlzdCBhcmdzOworCisJdmFfc3RhcnQoYXJncywgZm10KTsKKworCWlmIChwb3BfdGltZSkgeworCQl2cHJpbnRrKGZtdCwgYXJncyk7CisJCXBvcF93YWl0KCk7CisJfQorCisJdmFfZW5kKGFyZ3MpOworfQorCiAvKiBjcmVhdGUgYSBuZXcgZGFwbSB3aWRnZXQgKi8KIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKmRhcG1fY25ld193aWRnZXQoCiAJY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKl93aWRnZXQpCkBAIC0yMjIsMTEgKzIyNiwxMiBAQAogCWNoYW5nZSA9IG9sZCAhPSBuZXc7CiAJaWYgKGNoYW5nZSkgewogCQlwb3BfZGJnKCJwb3AgdGVzdCAlcyA6ICVzIGluICVkIG1zXG4iLCB3aWRnZXQtPm5hbWUsCi0JCQl3aWRnZXQtPnBvd2VyID8gIm9uIiA6ICJvZmYiLCBQT1BfVElNRSk7CisJCQl3aWRnZXQtPnBvd2VyID8gIm9uIiA6ICJvZmYiLCBwb3BfdGltZSk7CiAJCXNuZF9zb2Nfd3JpdGUoY29kZWMsIHdpZGdldC0+cmVnLCBuZXcpOwotCQlwb3Bfd2FpdChQT1BfVElNRSk7CisJCXBvcF93YWl0KCk7CiAJfQotCWRiZygicmVnICV4IG9sZCAleCBuZXcgJXggY2hhbmdlICVkXG4iLCB3aWRnZXQtPnJlZywgb2xkLCBuZXcsIGNoYW5nZSk7CisJcHJfZGVidWcoInJlZyAleCBvbGQgJXggbmV3ICV4IGNoYW5nZSAlZFxuIiwgd2lkZ2V0LT5yZWcsCisJCSBvbGQsIG5ldywgY2hhbmdlKTsKIAlyZXR1cm4gY2hhbmdlOwogfQogCkBAIC00NDgsNiArNDUzLDI1IEBACiB9CiAKIC8qCisgKiBIYW5kbGVyIGZvciBnZW5lcmljIHJlZ2lzdGVyIG1vZGlmaWVyIHdpZGdldC4KKyAqLworaW50IGRhcG1fcmVnX2V2ZW50KHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3LAorCQkgICBzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgaW50IGV2ZW50KQoreworCXVuc2lnbmVkIGludCB2YWw7CisKKwlpZiAoU05EX1NPQ19EQVBNX0VWRU5UX09OKGV2ZW50KSkKKwkJdmFsID0gdy0+b25fdmFsOworCWVsc2UKKwkJdmFsID0gdy0+b2ZmX3ZhbDsKKworCXNuZF9zb2NfdXBkYXRlX2JpdHMody0+Y29kZWMsIC0ody0+cmVnICsgMSksCisJCQkgICAgdy0+bWFzayA8PCB3LT5zaGlmdCwgdmFsIDw8IHctPnNoaWZ0KTsKKworCXJldHVybiAwOworfQorCisvKgogICogU2NhbiBlYWNoIGRhcG0gd2lkZ2V0IGZvciBjb21wbGV0ZSBhdWRpbyBwYXRoLgogICogQSBjb21wbGV0ZSBwYXRoIGlzIGEgcm91dGUgdGhhdCBoYXMgdmFsaWQgZW5kcG9pbnRzIGkuZS46LQogICoKQEAgLTU2NSw4ICs1ODksOCBAQAogCQkJLyogY2FsbCBhbnkgcG93ZXIgY2hhbmdlIGV2ZW50IGhhbmRsZXJzICovCiAJCQlpZiAocG93ZXJfY2hhbmdlKSB7CiAJCQkJaWYgKHctPmV2ZW50KSB7Ci0JCQkJCWRiZygicG93ZXIgJXMgZXZlbnQgZm9yICVzIGZsYWdzICV4XG4iLAotCQkJCQkJdy0+cG93ZXIgPyAib24iIDogIm9mZiIsIHctPm5hbWUsIHctPmV2ZW50X2ZsYWdzKTsKKwkJCQkJcHJfZGVidWcoInBvd2VyICVzIGV2ZW50IGZvciAlcyBmbGFncyAleFxuIiwKKwkJCQkJCSB3LT5wb3dlciA/ICJvbiIgOiAib2ZmIiwgdy0+bmFtZSwgdy0+ZXZlbnRfZmxhZ3MpOwogCQkJCQlpZiAocG93ZXIpIHsKIAkJCQkJCS8qIHBvd2VyIHVwIGV2ZW50ICovCiAJCQkJCQlpZiAody0+ZXZlbnRfZmxhZ3MgJiBTTkRfU09DX0RBUE1fUFJFX1BNVSkgewpAQCAtNjA4LDcgKzYzMiw3IEBACiAJcmV0dXJuIHJldDsKIH0KIAotI2lmIERBUE1fREVCVUcKKyNpZmRlZiBERUJVRwogc3RhdGljIHZvaWQgZGJnX2R1bXBfZGFwbShzdHJ1Y3Qgc25kX3NvY19jb2RlYyogY29kZWMsIGNvbnN0IGNoYXIgKmFjdGlvbikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqdzsKQEAgLTY5Myw4ICs3MTcsMTAgQEAKIAkJCXBhdGgtPmNvbm5lY3QgPSAwOyAvKiBvbGQgY29ubmVjdGlvbiBtdXN0IGJlIHBvd2VyZWQgZG93biAqLwogCX0KIAotCWlmIChmb3VuZCkKKwlpZiAoZm91bmQpIHsKIAkJZGFwbV9wb3dlcl93aWRnZXRzKHdpZGdldC0+Y29kZWMsIFNORF9TT0NfREFQTV9TVFJFQU1fTk9QKTsKKwkJZHVtcF9kYXBtKHdpZGdldC0+Y29kZWMsICJtdXggcG93ZXIgdXBkYXRlIik7CisJfQogCiAJcmV0dXJuIDA7CiB9CkBAIC03MzAsOCArNzU2LDEwIEBACiAJCWJyZWFrOwogCX0KIAotCWlmIChmb3VuZCkKKwlpZiAoZm91bmQpIHsKIAkJZGFwbV9wb3dlcl93aWRnZXRzKHdpZGdldC0+Y29kZWMsIFNORF9TT0NfREFQTV9TVFJFQU1fTk9QKTsKKwkJZHVtcF9kYXBtKHdpZGdldC0+Y29kZWMsICJtaXhlciBwb3dlciB1cGRhdGUiKTsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTc2OCwyMSArNzk2LDE4IEBACiAJCX0KIAl9CiAKLQlzd2l0Y2goY29kZWMtPmRhcG1fc3RhdGUpewotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QwOgotCQlzdGF0ZSA9ICJEMCI7CisJc3dpdGNoIChjb2RlYy0+Ymlhc19sZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgorCQlzdGF0ZSA9ICJPbiI7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOgotCQlzdGF0ZSA9ICJEMSI7CisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKKwkJc3RhdGUgPSAiUHJlcGFyZSI7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QyOgotCQlzdGF0ZSA9ICJEMiI7CisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKKwkJc3RhdGUgPSAiU3RhbmRieSI7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzaG90OgotCQlzdGF0ZSA9ICJEM2hvdCI7Ci0JCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzY29sZDoKLQkJc3RhdGUgPSAiRDNjb2xkIjsKKwljYXNlIFNORF9TT0NfQklBU19PRkY6CisJCXN0YXRlID0gIk9mZiI7CiAJCWJyZWFrOwogCX0KIAljb3VudCArPSBzcHJpbnRmKGJ1ZiArIGNvdW50LCAiUE0gU3RhdGU6ICVzXG4iLCBzdGF0ZSk7CkBAIC03OTIsMjAgKzgxNyw1MSBAQAogCiBzdGF0aWMgREVWSUNFX0FUVFIoZGFwbV93aWRnZXQsIDA0NDQsIGRhcG1fd2lkZ2V0X3Nob3csIE5VTEwpOwogCisvKiBwb3AvY2xpY2sgZGVsYXkgdGltZXMgKi8KK3N0YXRpYyBzc2l6ZV90IGRhcG1fcG9wX3RpbWVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgcG9wX3RpbWUpOworfQorCitzdGF0aWMgc3NpemVfdCBkYXBtX3BvcF90aW1lX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKKworeworCXVuc2lnbmVkIGxvbmcgdmFsOworCisJaWYgKHN0cmljdF9zdHJ0b3VsKGJ1ZiwgMTAsICZ2YWwpID49IDApCisJCXBvcF90aW1lID0gdmFsOworCWVsc2UKKwkJcHJpbnRrKEtFUk5fRVJSICJVbmFibGUgdG8gcGFyc2UgcG9wX3RpbWUgc2V0dGluZ1xuIik7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBERVZJQ0VfQVRUUihkYXBtX3BvcF90aW1lLCAwNzQ0LCBkYXBtX3BvcF90aW1lX3Nob3csCisJCSAgIGRhcG1fcG9wX3RpbWVfc3RvcmUpOworCiBpbnQgc25kX3NvY19kYXBtX3N5c19hZGQoc3RydWN0IGRldmljZSAqZGV2KQogewogCWludCByZXQgPSAwOwogCi0JaWYgKGRhcG1fc3RhdHVzKQorCWlmIChkYXBtX3N0YXR1cykgewogCQlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoZGV2LCAmZGV2X2F0dHJfZGFwbV93aWRnZXQpOwogCisJCWlmIChyZXQgPT0gMCkKKwkJCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICZkZXZfYXR0cl9kYXBtX3BvcF90aW1lKTsKKwl9CisKIAlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCBzbmRfc29jX2RhcG1fc3lzX3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0JaWYgKGRhcG1fc3RhdHVzKQorCWlmIChkYXBtX3N0YXR1cykgeworCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoZGV2LCAmZGV2X2F0dHJfZGFwbV9wb3BfdGltZSk7CiAJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZkZXZfYXR0cl9kYXBtX3dpZGdldCk7CisJfQogfQogCiAvKiBmcmVlIGFsbCBkYXBtIHdpZGdldHMgYW5kIHJlc291cmNlcyAqLwpAQCAtODI2LDggKzg4MiwyNSBAQAogCX0KIH0KIAorc3RhdGljIGludCBzbmRfc29jX2RhcG1fc2V0X3BpbihzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJY2hhciAqcGluLCBpbnQgc3RhdHVzKQoreworCXN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeSh3LCAmY29kZWMtPmRhcG1fd2lkZ2V0cywgbGlzdCkgeworCQlpZiAoIXN0cmNtcCh3LT5uYW1lLCBwaW4pKSB7CisJCQlwcl9kZWJ1ZygiZGFwbTogJXM6IHBpbiAlc1xuIiwgY29kZWMtPm5hbWUsIHBpbik7CisJCQl3LT5jb25uZWN0ZWQgPSBzdGF0dXM7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCXByX2VycigiZGFwbTogJXM6IGNvbmZpZ3VyaW5nIHVua25vd24gcGluICVzXG4iLCBjb2RlYy0+bmFtZSwgcGluKTsKKwlyZXR1cm4gLUVJTlZBTDsKK30KKwogLyoqCi0gKiBzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMgLSBzY2FuIGFuZCBwb3dlciBkYXBtIHBhdGhzCisgKiBzbmRfc29jX2RhcG1fc3luYyAtIHNjYW4gYW5kIHBvd2VyIGRhcG0gcGF0aHMKICAqIEBjb2RlYzogYXVkaW8gY29kZWMKICAqCiAgKiBXYWxrcyBhbGwgZGFwbSBhdWRpbyBwYXRocyBhbmQgcG93ZXJzIHdpZGdldHMgYWNjb3JkaW5nIHRvIHRoZWlyCkBAIC04MzUsMjcgKzkwOCwxNiBAQAogICoKICAqIFJldHVybnMgMCBmb3Igc3VjY2Vzcy4KICAqLwotaW50IHNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCitpbnQgc25kX3NvY19kYXBtX3N5bmMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCXJldHVybiBkYXBtX3Bvd2VyX3dpZGdldHMoY29kZWMsIFNORF9TT0NfREFQTV9TVFJFQU1fTk9QKTsKKwlpbnQgcmV0ID0gZGFwbV9wb3dlcl93aWRnZXRzKGNvZGVjLCBTTkRfU09DX0RBUE1fU1RSRUFNX05PUCk7CisJZHVtcF9kYXBtKGNvZGVjLCAic3luYyIpOworCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMpOworRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYXBtX3N5bmMpOwogCi0vKioKLSAqIHNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0IC0gY29ubmVjdCBkYXBtIHdpZGdldHMKLSAqIEBjb2RlYzogYXVkaW8gY29kZWMKLSAqIEBzaW5rOiBuYW1lIG9mIHRhcmdldCB3aWRnZXQKLSAqIEBjb250cm9sOiBtaXhlciBjb250cm9sIG5hbWUKLSAqIEBzb3VyY2U6IG5hbWUgb2Ygc291cmNlIG5hbWUKLSAqCi0gKiBDb25uZWN0cyAyIGRhcG0gd2lkZ2V0cyB0b2dldGhlciB2aWEgYSBuYW1lZCBhdWRpbyBwYXRoLiBUaGUgc2luayBpcwotICogdGhlIHdpZGdldCByZWNlaXZpbmcgdGhlIGF1ZGlvIHNpZ25hbCwgd2hpbHN0IHRoZSBzb3VyY2UgaXMgdGhlIHNlbmRlcgotICogb2YgdGhlIGF1ZGlvIHNpZ25hbC4KLSAqCi0gKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MgZWxzZSBlcnJvci4KLSAqLwotaW50IHNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY29uc3QgY2hhciAqc2luaywKLQljb25zdCBjaGFyICogY29udHJvbCwgY29uc3QgY2hhciAqc291cmNlKQorc3RhdGljIGludCBzbmRfc29jX2RhcG1fYWRkX3JvdXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwljb25zdCBjaGFyICpzaW5rLCBjb25zdCBjaGFyICpjb250cm9sLCBjb25zdCBjaGFyICpzb3VyY2UpCiB7CiAJc3RydWN0IHNuZF9zb2NfZGFwbV9wYXRoICpwYXRoOwogCXN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3c291cmNlID0gTlVMTCwgKndzaW5rID0gTlVMTCwgKnc7CkBAIC05NTcsOSArMTAxOSw2NCBAQAogCWtmcmVlKHBhdGgpOwogCXJldHVybiByZXQ7CiB9CisKKy8qKgorICogc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQgLSBjb25uZWN0IGRhcG0gd2lkZ2V0cworICogQGNvZGVjOiBhdWRpbyBjb2RlYworICogQHNpbms6IG5hbWUgb2YgdGFyZ2V0IHdpZGdldAorICogQGNvbnRyb2w6IG1peGVyIGNvbnRyb2wgbmFtZQorICogQHNvdXJjZTogbmFtZSBvZiBzb3VyY2UgbmFtZQorICoKKyAqIENvbm5lY3RzIDIgZGFwbSB3aWRnZXRzIHRvZ2V0aGVyIHZpYSBhIG5hbWVkIGF1ZGlvIHBhdGguIFRoZSBzaW5rIGlzCisgKiB0aGUgd2lkZ2V0IHJlY2VpdmluZyB0aGUgYXVkaW8gc2lnbmFsLCB3aGlsc3QgdGhlIHNvdXJjZSBpcyB0aGUgc2VuZGVyCisgKiBvZiB0aGUgYXVkaW8gc2lnbmFsLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2Ygc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoKS4KKyAqCisgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MgZWxzZSBlcnJvci4KKyAqLworaW50IHNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY29uc3QgY2hhciAqc2luaywKKwljb25zdCBjaGFyICpjb250cm9sLCBjb25zdCBjaGFyICpzb3VyY2UpCit7CisJcmV0dXJuIHNuZF9zb2NfZGFwbV9hZGRfcm91dGUoY29kZWMsIHNpbmssIGNvbnRyb2wsIHNvdXJjZSk7Cit9CiBFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dCk7CiAKIC8qKgorICogc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMgLSBBZGQgcm91dGVzIGJldHdlZW4gREFQTSB3aWRnZXRzCisgKiBAY29kZWM6IGNvZGVjCisgKiBAcm91dGU6IGF1ZGlvIHJvdXRlcworICogQG51bTogbnVtYmVyIG9mIHJvdXRlcworICoKKyAqIENvbm5lY3RzIDIgZGFwbSB3aWRnZXRzIHRvZ2V0aGVyIHZpYSBhIG5hbWVkIGF1ZGlvIHBhdGguIFRoZSBzaW5rIGlzCisgKiB0aGUgd2lkZ2V0IHJlY2VpdmluZyB0aGUgYXVkaW8gc2lnbmFsLCB3aGlsc3QgdGhlIHNvdXJjZSBpcyB0aGUgc2VuZGVyCisgKiBvZiB0aGUgYXVkaW8gc2lnbmFsLgorICoKKyAqIFJldHVybnMgMCBmb3Igc3VjY2VzcyBlbHNlIGVycm9yLiBPbiBlcnJvciBhbGwgcmVzb3VyY2VzIGNhbiBiZSBmcmVlZAorICogd2l0aCBhIGNhbGwgdG8gc25kX3NvY19jYXJkX2ZyZWUoKS4KKyAqLworaW50IHNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwkJCSAgICBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlICpyb3V0ZSwgaW50IG51bSkKK3sKKwlpbnQgaSwgcmV0OworCisJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CisJCXJldCA9IHNuZF9zb2NfZGFwbV9hZGRfcm91dGUoY29kZWMsIHJvdXRlLT5zaW5rLAorCQkJCQkgICAgIHJvdXRlLT5jb250cm9sLCByb3V0ZS0+c291cmNlKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGFkZCByb3V0ZSAlcy0+JXNcbiIsCisJCQkgICAgICAgcm91dGUtPnNvdXJjZSwKKwkJCSAgICAgICByb3V0ZS0+c2luayk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJCXJvdXRlKys7CisJfQorCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyk7CisKKy8qKgogICogc25kX3NvY19kYXBtX25ld193aWRnZXRzIC0gYWRkIG5ldyBkYXBtIHdpZGdldHMKICAqIEBjb2RlYzogYXVkaW8gY29kZWMKICAqCkBAIC0xMjM0LDYgKzEzNTEsMzMgQEAKIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9uZXdfY29udHJvbCk7CiAKIC8qKgorICogc25kX3NvY19kYXBtX25ld19jb250cm9scyAtIGNyZWF0ZSBuZXcgZGFwbSBjb250cm9scworICogQGNvZGVjOiBhdWRpbyBjb2RlYworICogQHdpZGdldDogd2lkZ2V0IGFycmF5CisgKiBAbnVtOiBudW1iZXIgb2Ygd2lkZ2V0cworICoKKyAqIENyZWF0ZXMgbmV3IERBUE0gY29udHJvbHMgYmFzZWQgdXBvbiB0aGUgdGVtcGxhdGVzLgorICoKKyAqIFJldHVybnMgMCBmb3Igc3VjY2VzcyBlbHNlIGVycm9yLgorICovCitpbnQgc25kX3NvY19kYXBtX25ld19jb250cm9scyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKndpZGdldCwKKwlpbnQgbnVtKQoreworCWludCBpLCByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKKwkJcmV0ID0gc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCB3aWRnZXQpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisJCXdpZGdldCsrOworCX0KKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMpOworCisKKy8qKgogICogc25kX3NvY19kYXBtX3N0cmVhbV9ldmVudCAtIHNlbmQgYSBzdHJlYW0gZXZlbnQgdG8gdGhlIGRhcG0gY29yZQogICogQGNvZGVjOiBhdWRpbyBjb2RlYwogICogQHN0cmVhbTogc3RyZWFtIG5hbWUKQEAgLTEyNTcsOCArMTQwMSw4IEBACiAJewogCQlpZiAoIXctPnNuYW1lKQogCQkJY29udGludWU7Ci0JCWRiZygid2lkZ2V0ICVzXG4gJXMgc3RyZWFtICVzIGV2ZW50ICVkXG4iLCB3LT5uYW1lLCB3LT5zbmFtZSwKLQkJCXN0cmVhbSwgZXZlbnQpOworCQlwcl9kZWJ1Zygid2lkZ2V0ICVzXG4gJXMgc3RyZWFtICVzIGV2ZW50ICVkXG4iLAorCQkJIHctPm5hbWUsIHctPnNuYW1lLCBzdHJlYW0sIGV2ZW50KTsKIAkJaWYgKHN0cnN0cih3LT5zbmFtZSwgc3RyZWFtKSkgewogCQkJc3dpdGNoKGV2ZW50KSB7CiAJCQljYXNlIFNORF9TT0NfREFQTV9TVFJFQU1fU1RBUlQ6CkBAIC0xMjk0LDUzICsxNDM4LDgxIEBACiBFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fc3RyZWFtX2V2ZW50KTsKIAogLyoqCi0gKiBzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50IC0gc2VuZCBhIGRldmljZSBldmVudCB0byB0aGUgZGFwbSBjb3JlCisgKiBzbmRfc29jX2RhcG1fc2V0X2JpYXNfbGV2ZWwgLSBzZXQgdGhlIGJpYXMgbGV2ZWwgZm9yIHRoZSBzeXN0ZW0KICAqIEBzb2NkZXY6IGF1ZGlvIGRldmljZQotICogQGV2ZW50OiBkZXZpY2UgZXZlbnQKKyAqIEBsZXZlbDogbGV2ZWwgdG8gY29uZmlndXJlCiAgKgotICogU2VuZHMgYSBkZXZpY2UgZXZlbnQgdG8gdGhlIGRhcG0gY29yZS4gVGhlIGNvcmUgdGhlbiBtYWtlcyBhbnkKLSAqIG5lY2Vzc2FyeSBtYWNoaW5lIG9yIGNvZGVjIHBvd2VyIGNoYW5nZXMuLgorICogQ29uZmlndXJlIHRoZSBiaWFzIChwb3dlcikgbGV2ZWxzIGZvciB0aGUgU29DIGF1ZGlvIGRldmljZS4KICAqCiAgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MgZWxzZSBlcnJvci4KICAqLwotaW50IHNuZF9zb2NfZGFwbV9kZXZpY2VfZXZlbnQoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYsIGludCBldmVudCkKK2ludCBzbmRfc29jX2RhcG1fc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYsCisJCQkJZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAlzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICptYWNoaW5lID0gc29jZGV2LT5tYWNoaW5lOworCWludCByZXQgPSAwOwogCi0JaWYgKG1hY2hpbmUtPmRhcG1fZXZlbnQpCi0JCW1hY2hpbmUtPmRhcG1fZXZlbnQobWFjaGluZSwgZXZlbnQpOwotCWlmIChjb2RlYy0+ZGFwbV9ldmVudCkKLQkJY29kZWMtPmRhcG1fZXZlbnQoY29kZWMsIGV2ZW50KTsKLQlyZXR1cm4gMDsKKwlpZiAobWFjaGluZS0+c2V0X2JpYXNfbGV2ZWwpCisJCXJldCA9IG1hY2hpbmUtPnNldF9iaWFzX2xldmVsKG1hY2hpbmUsIGxldmVsKTsKKwlpZiAocmV0ID09IDAgJiYgY29kZWMtPnNldF9iaWFzX2xldmVsKQorCQlyZXQgPSBjb2RlYy0+c2V0X2JpYXNfbGV2ZWwoY29kZWMsIGxldmVsKTsKKworCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KTsKIAogLyoqCi0gKiBzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50IC0gc2V0IGF1ZGlvIGVuZHBvaW50IHN0YXR1cwotICogQGNvZGVjOiBhdWRpbyBjb2RlYwotICogQGVuZHBvaW50OiBhdWRpbyBzaWduYWwgZW5kcG9pbnQgKG9yIHN0YXJ0IHBvaW50KQotICogQHN0YXR1czogcG9pbnQgc3RhdHVzCisgKiBzbmRfc29jX2RhcG1fZW5hYmxlX3BpbiAtIGVuYWJsZSBwaW4uCisgKiBAc25kX3NvY19jb2RlYzogU29DIGNvZGVjCisgKiBAcGluOiBwaW4gbmFtZQogICoKLSAqIFNldCBhdWRpbyBlbmRwb2ludCBzdGF0dXMgLSBjb25uZWN0ZWQgb3IgZGlzY29ubmVjdGVkLgotICoKLSAqIFJldHVybnMgMCBmb3Igc3VjY2VzcyBlbHNlIGVycm9yLgorICogRW5hYmxlcyBpbnB1dC9vdXRwdXQgcGluIGFuZCBpdCdzIHBhcmVudHMgb3IgY2hpbGRyZW4gd2lkZ2V0cyBpZmYgdGhlcmUgaXMKKyAqIGEgdmFsaWQgYXVkaW8gcm91dGUgYW5kIGFjdGl2ZSBhdWRpbyBzdHJlYW0uCisgKiBOT1RFOiBzbmRfc29jX2RhcG1fc3luYygpIG5lZWRzIHRvIGJlIGNhbGxlZCBhZnRlciB0aGlzIGZvciBEQVBNIHRvCisgKiBkbyBhbnkgd2lkZ2V0IHBvd2VyIHN3aXRjaGluZy4KICAqLwotaW50IHNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAotCWNoYXIgKmVuZHBvaW50LCBpbnQgc3RhdHVzKQoraW50IHNuZF9zb2NfZGFwbV9lbmFibGVfcGluKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY2hhciAqcGluKQoreworCXJldHVybiBzbmRfc29jX2RhcG1fc2V0X3Bpbihjb2RlYywgcGluLCAxKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9lbmFibGVfcGluKTsKKworLyoqCisgKiBzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4gLSBkaXNhYmxlIHBpbi4KKyAqIEBjb2RlYzogU29DIGNvZGVjCisgKiBAcGluOiBwaW4gbmFtZQorICoKKyAqIERpc2FibGVzIGlucHV0L291dHB1dCBwaW4gYW5kIGl0J3MgcGFyZW50cyBvciBjaGlsZHJlbiB3aWRnZXRzLgorICogTk9URTogc25kX3NvY19kYXBtX3N5bmMoKSBuZWVkcyB0byBiZSBjYWxsZWQgYWZ0ZXIgdGhpcyBmb3IgREFQTSB0bworICogZG8gYW55IHdpZGdldCBwb3dlciBzd2l0Y2hpbmcuCisgKi8KK2ludCBzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjaGFyICpwaW4pCit7CisJcmV0dXJuIHNuZF9zb2NfZGFwbV9zZXRfcGluKGNvZGVjLCBwaW4sIDApOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKTsKKworLyoqCisgKiBzbmRfc29jX2RhcG1fZ2V0X3Bpbl9zdGF0dXMgLSBnZXQgYXVkaW8gcGluIHN0YXR1cworICogQGNvZGVjOiBhdWRpbyBjb2RlYworICogQHBpbjogYXVkaW8gc2lnbmFsIHBpbiBlbmRwb2ludCAob3Igc3RhcnQgcG9pbnQpCisgKgorICogR2V0IGF1ZGlvIHBpbiBzdGF0dXMgLSBjb25uZWN0ZWQgb3IgZGlzY29ubmVjdGVkLgorICoKKyAqIFJldHVybnMgMSBmb3IgY29ubmVjdGVkIG90aGVyd2lzZSAwLgorICovCitpbnQgc25kX3NvY19kYXBtX2dldF9waW5fc3RhdHVzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY2hhciAqcGluKQogewogCXN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3OwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh3LCAmY29kZWMtPmRhcG1fd2lkZ2V0cywgbGlzdCkgewotCQlpZiAoIXN0cmNtcCh3LT5uYW1lLCBlbmRwb2ludCkpIHsKLQkJCXctPmNvbm5lY3RlZCA9IHN0YXR1czsKLQkJCXJldHVybiAwOwotCQl9CisJCWlmICghc3RyY21wKHctPm5hbWUsIHBpbikpCisJCQlyZXR1cm4gdy0+Y29ubmVjdGVkOwogCX0KIAotCXJldHVybiAtRU5PREVWOworCXJldHVybiAwOwogfQotRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYXBtX3NldF9lbmRwb2ludCk7CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fZ2V0X3Bpbl9zdGF0dXMpOwogCiAvKioKICAqIHNuZF9zb2NfZGFwbV9mcmVlIC0gZnJlZSBkYXBtIHJlc291cmNlcwpkaWZmIC0tZ2l0IGEvc291bmQvc291bmRfY29yZS5jIGIvc291bmQvc291bmRfY29yZS5jCmluZGV4IDQ2ZGFjYTEuLmRjZmMxZDUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvdW5kX2NvcmUuYworKysgYi9zb3VuZC9zb3VuZF9jb3JlLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgpAQCAtNDY0LDYgKzQ2NSw4IEBACiAJc3RydWN0IHNvdW5kX3VuaXQgKnM7CiAJY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqbmV3X2ZvcHMgPSBOVUxMOwogCisJbG9ja19rZXJuZWwgKCk7CisKIAljaGFpbj11bml0JjB4MEY7CiAJaWYoY2hhaW49PTQgfHwgY2hhaW49PTUpCS8qIGRzcC9hdWRpby9kc3AxNiAqLwogCXsKQEAgLTUxMSw5ICs1MTQsMTEgQEAKIAkJCWZpbGUtPmZfb3AgPSBmb3BzX2dldChvbGRfZm9wcyk7CiAJCX0KIAkJZm9wc19wdXQob2xkX2ZvcHMpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiBlcnI7CiAJfQogCXNwaW5fdW5sb2NrKCZzb3VuZF9sb2FkZXJfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRU5PREVWOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9zcGFyYy9LY29uZmlnIGIvc291bmQvc3BhcmMvS2NvbmZpZwppbmRleCAwNzllMjJhLi5kNzVkZWJhIDEwMDY0NAotLS0gYS9zb3VuZC9zcGFyYy9LY29uZmlnCisrKyBiL3NvdW5kL3NwYXJjL0tjb25maWcKQEAgLTEsMTEgKzEsMTcgQEAKICMgQUxTQSBTcGFyYyBkcml2ZXJzCiAKLW1lbnUgIkFMU0EgU3BhcmMgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBTUEFSQworbWVudWNvbmZpZyBTTkRfU1BBUkMKKwlib29sICJTcGFyYyBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gU1BBUkMKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBzb3VuZCBkZXZpY2VzIHNwZWNpZmljIHRvIFN1biBTUEFSQyBhcmNoaXRlY3R1cmVzLgorCitpZiBTTkRfU1BBUkMKIAogY29uZmlnIFNORF9TVU5fQU1ENzkzMAogCXRyaXN0YXRlICJTdW4gQU1ENzkzMCIKLQlkZXBlbmRzIG9uIFNCVVMgJiYgU05ECisJZGVwZW5kcyBvbiBTQlVTCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQU1ENzkzMCBzb3VuZCBkZXZpY2Ugb24gU3VuLgpAQCAtMTUsNyArMjEsNiBAQAogCiBjb25maWcgU05EX1NVTl9DUzQyMzEKIAl0cmlzdGF0ZSAiU3VuIENTNDIzMSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIENTNDIzMSBzb3VuZCBkZXZpY2Ugb24gU3VuLgpAQCAtMjUsNyArMzAsNyBAQAogCiBjb25maWcgU05EX1NVTl9EQlJJCiAJdHJpc3RhdGUgIlN1biBEQlJJIgotCWRlcGVuZHMgb24gU05EICYmIFNCVVMKKwlkZXBlbmRzIG9uIFNCVVMKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBEQlJJIHNvdW5kIGRldmljZSBvbiBTdW4uCkBAIC0zMyw0ICszOCw0IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQtc3VuLWRicmkuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX1NQQVJDCmRpZmYgLS1naXQgYS9zb3VuZC9zcGFyYy9kYnJpLmMgYi9zb3VuZC9zcGFyYy9kYnJpLmMKaW5kZXggM2QwMGUwNy4uZWUyZTFiNCAxMDA2NDQKLS0tIGEvc291bmQvc3BhcmMvZGJyaS5jCisrKyBiL3NvdW5kL3NwYXJjL2RicmkuYwpAQCAtMjQ5MCw3ICsyNDkwLDcgQEAKIH0KICNlbmRpZgogCi12b2lkIF9fZGV2aW5pdCBzbmRfZGJyaV9wcm9jKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCkKK3N0YXRpYyB2b2lkIF9fZGV2aW5pdCBzbmRfZGJyaV9wcm9jKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCkKIHsKIAlzdHJ1Y3Qgc25kX2RicmkgKmRicmkgPSBjYXJkLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IHNuZF9pbmZvX2VudHJ5ICplbnRyeTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NwaS9LY29uZmlnIGIvc291bmQvc3BpL0tjb25maWcKaW5kZXggMGQwOGMyOS4uZTY0ODViZSAxMDA2NDQKLS0tIGEvc291bmQvc3BpL0tjb25maWcKKysrIGIvc291bmQvc3BpL0tjb25maWcKQEAgLTEsNyArMSwxMyBAQAogI1NQSSBkcml2ZXJzCiAKLW1lbnUgIlNQSSBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EICE9IG4KK21lbnVjb25maWcgU05EX1NQSQorCWJvb2wgIlNQSSBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gU1BJCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBmb3Igc291bmQgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBTUEkgYnVzLgorCitpZiBTTkRfU1BJCiAKIGNvbmZpZyBTTkRfQVQ3M0MyMTMKIAl0cmlzdGF0ZSAiQXRtZWwgQVQ3M0MyMTMgREFDIGRyaXZlciIKQEAgLTI4LDQgKzM0LDUgQEAKIAogCSAgU2V0IHRvIDQ4MDAwIEh6IGJ5IGRlZmF1bHQuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX1NQSQorCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvS2NvbmZpZyBiL3NvdW5kL3VzYi9LY29uZmlnCmluZGV4IDkzNTFiOGEuLmZmY2RjOGYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9LY29uZmlnCisrKyBiL3NvdW5kL3VzYi9LY29uZmlnCkBAIC0xLDExICsxLDE2IEBACiAjIEFMU0EgVVNCIGRyaXZlcnMKIAotbWVudSAiVVNCIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgVVNCIT1uCittZW51Y29uZmlnIFNORF9VU0IKKwlib29sICJVU0Igc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIFVTQgorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgY29ubmVjdGVkIHZpYSB0aGUgVVNCIGJ1cy4KKworaWYgU05EX1VTQiAmJiBVU0IKIAogY29uZmlnIFNORF9VU0JfQVVESU8KIAl0cmlzdGF0ZSAiVVNCIEF1ZGlvL01JREkgZHJpdmVyIgotCWRlcGVuZHMgb24gU05EICYmIFVTQgogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtMTgsNyArMjMsNyBAQAogCiBjb25maWcgU05EX1VTQl9VU1gyWQogCXRyaXN0YXRlICJUYXNjYW0gVVMtMTIyLCBVUy0yMjQgYW5kIFVTLTQyOCBVU0IgZHJpdmVyIgotCWRlcGVuZHMgb24gU05EICYmIFVTQiAmJiAoWDg2IHx8IFBQQyB8fCBBTFBIQSkKKwlkZXBlbmRzIG9uIFg4NiB8fCBQUEMgfHwgQUxQSEEKIAlzZWxlY3QgU05EX0hXREVQCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KQEAgLTMxLDcgKzM2LDYgQEAKIAogY29uZmlnIFNORF9VU0JfQ0FJQVEKIAl0cmlzdGF0ZSAiTmF0aXZlIEluc3RydW1lbnRzIFVTQiBhdWRpbyBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EICYmIFVTQgogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtNjMsNSArNjcsNSBAQAogCSAgICogTmF0aXZlIEluc3RydW1lbnRzIEtvcmUgQ29udHJvbGxlciAyCiAJICAgKiBOYXRpdmUgSW5zdHJ1bWVudHMgQXVkaW8gS29udHJvbCAxCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX1VTQgogCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvY2FpYXEvY2FpYXEtYXVkaW8uYyBiL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1hdWRpby5jCmluZGV4IDI0OTcwYTUuLmIzYTYwMzMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1hdWRpby5jCisrKyBiL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1hdWRpby5jCkBAIC02MzcsNiArNjM3LDcgQEAKIAlzd2l0Y2ggKGRldi0+Y2hpcC51c2JfaWQpIHsKIAljYXNlIFVTQl9JRChVU0JfVklEX05BVElWRUlOU1RSVU1FTlRTLCBVU0JfUElEX0FLMSk6CiAJY2FzZSBVU0JfSUQoVVNCX1ZJRF9OQVRJVkVJTlNUUlVNRU5UUywgVVNCX1BJRF9SSUdLT05UUk9MMyk6CisJY2FzZSBVU0JfSUQoVVNCX1ZJRF9OQVRJVkVJTlNUUlVNRU5UUywgVVNCX1BJRF9TRVNTSU9OSU8pOgogCQlkZXYtPnNhbXBsZXJhdGVzIHw9IFNORFJWX1BDTV9SQVRFXzg4MjAwOwogCQlkZXYtPnNhbXBsZXJhdGVzIHw9IFNORFJWX1BDTV9SQVRFXzE5MjAwMDsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9zb3VuZC91c2IvY2FpYXEvY2FpYXEtZGV2aWNlLmMgYi9zb3VuZC91c2IvY2FpYXEvY2FpYXEtZGV2aWNlLmMKaW5kZXggYTk3MmY3Ny4uODMxNzUwOCAxMDA2NDQKLS0tIGEvc291bmQvdXNiL2NhaWFxL2NhaWFxLWRldmljZS5jCisrKyBiL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1kZXZpY2UuYwpAQCAtNDIsMTQgKzQyLDE1IEBACiAjZW5kaWYKIAogTU9EVUxFX0FVVEhPUigiRGFuaWVsIE1hY2sgPGRhbmllbEBjYWlhcS5kZT4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiY2FpYXEgVVNCIGF1ZGlvLCB2ZXJzaW9uIDEuMy42Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oImNhaWFxIFVTQiBhdWRpbywgdmVyc2lvbiAxLjMuOCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX1NVUFBPUlRFRF9ERVZJQ0UoInt7TmF0aXZlIEluc3RydW1lbnRzLCBSaWdLb250cm9sMn0sIgogCQkJICJ7TmF0aXZlIEluc3RydW1lbnRzLCBSaWdLb250cm9sM30sIgogCQkJICJ7TmF0aXZlIEluc3RydW1lbnRzLCBLb3JlIENvbnRyb2xsZXJ9LCIKIAkJCSAie05hdGl2ZSBJbnN0cnVtZW50cywgS29yZSBDb250cm9sbGVyIDJ9LCIKLQkJCSAie05hdGl2ZSBJbnN0cnVtZW50cywgQXVkaW8gS29udHJvbCAxfSIKLQkJCSAie05hdGl2ZSBJbnN0cnVtZW50cywgQXVkaW8gOCBESn19Iik7CisJCQkgIntOYXRpdmUgSW5zdHJ1bWVudHMsIEF1ZGlvIEtvbnRyb2wgMX0sIgorCQkJICJ7TmF0aXZlIEluc3RydW1lbnRzLCBBdWRpbyA4IERKfSwiCisJCQkgIntOYXRpdmUgSW5zdHJ1bWVudHMsIFNlc3Npb24gSS9PfX0iKTsKIAogc3RhdGljIGludCBpbmRleFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0lEWDsgLyogSW5kZXggMC1tYXggKi8KIHN0YXRpYyBjaGFyKiBpZFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX1NUUjsgLyogSWQgZm9yIHRoaXMgY2FyZCAqLwpAQCAtMTEwLDYgKzExMSwxMSBAQAogCQkuaWRWZW5kb3IgPSAgICAgVVNCX1ZJRF9OQVRJVkVJTlNUUlVNRU5UUywKIAkJLmlkUHJvZHVjdCA9ICAgIFVTQl9QSURfQVVESU84REoKIAl9LAorCXsKKwkJLm1hdGNoX2ZsYWdzID0gIFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFLAorCQkuaWRWZW5kb3IgPSAgICAgVVNCX1ZJRF9OQVRJVkVJTlNUUlVNRU5UUywKKwkJLmlkUHJvZHVjdCA9ICAgIFVTQl9QSURfU0VTU0lPTklPCisJfSwKIAl7IC8qIHRlcm1pbmF0b3IgKi8gfQogfTsKIApkaWZmIC0tZ2l0IGEvc291bmQvdXNiL2NhaWFxL2NhaWFxLWRldmljZS5oIGIvc291bmQvdXNiL2NhaWFxL2NhaWFxLWRldmljZS5oCmluZGV4IDk2YTQ5MTMuLmY5ZmJkYmFlIDEwMDY0NAotLS0gYS9zb3VuZC91c2IvY2FpYXEvY2FpYXEtZGV2aWNlLmgKKysrIGIvc291bmQvdXNiL2NhaWFxL2NhaWFxLWRldmljZS5oCkBAIC0xMSw2ICsxMSw3IEBACiAjZGVmaW5lIFVTQl9QSURfS09SRUNPTlRST0xMRVIyCTB4NDcxMgogI2RlZmluZSBVU0JfUElEX0FLMQkJMHgwODE1CiAjZGVmaW5lIFVTQl9QSURfQVVESU84REoJMHgxOTc4CisjZGVmaW5lIFVTQl9QSURfU0VTU0lPTklPCTB4MTkxNQogCiAjZGVmaW5lIEVQMV9CVUZTSVpFIDY0CiAjZGVmaW5lIENBSUFRX1VTQl9TVFJfTEVOIDB4ZmYKZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi91c2JhdWRpby5jIGIvc291bmQvdXNiL3VzYmF1ZGlvLmMKaW5kZXggNDEwYmU0YS4uYjhjZmI3YyAxMDA2NDQKLS0tIGEvc291bmQvdXNiL3VzYmF1ZGlvLmMKKysrIGIvc291bmQvdXNiL3VzYmF1ZGlvLmMKQEAgLTgxOSwxMCArODE5LDYgQEAKIAkJcmV0dXJuICJkZXZpY2UgZGlzYWJsZWQiOwogCWNhc2UgLUVIT1NUVU5SRUFDSDoKIAkJcmV0dXJuICJkZXZpY2Ugc3VzcGVuZGVkIjsKLSNpZm5kZWYgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTwotCWNhc2UgLUVOT1NZUzoKLQkJcmV0dXJuICJlbmFibGUgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyB0byBwbGF5IHRocm91Z2ggYSBodWIiOwotI2VuZGlmCiAJY2FzZSAtRUlOVkFMOgogCWNhc2UgLUVBR0FJTjoKIAljYXNlIC1FRkJJRzoKZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi91c2JxdWlya3MuaCBiL3NvdW5kL3VzYi91c2JxdWlya3MuaAppbmRleCA4MmE4ZDE0Li45ZWE3MjZjIDEwMDY0NAotLS0gYS9zb3VuZC91c2IvdXNicXVpcmtzLmgKKysrIGIvc291bmQvdXNiL3VzYnF1aXJrcy5oCkBAIC0yMTAsNiArMjEwLDExIEBACiBZQU1BSEFfREVWSUNFKDB4MTA0MywgTlVMTCksCiBZQU1BSEFfREVWSUNFKDB4MTA0NCwgTlVMTCksCiBZQU1BSEFfREVWSUNFKDB4MTA0NSwgTlVMTCksCitZQU1BSEFfSU5URVJGQUNFKDB4MTA0ZSwgMCwgTlVMTCksCitZQU1BSEFfREVWSUNFKDB4MTA0ZiwgTlVMTCksCitZQU1BSEFfREVWSUNFKDB4MTA1MCwgTlVMTCksCitZQU1BSEFfREVWSUNFKDB4MTA1MSwgTlVMTCksCitZQU1BSEFfREVWSUNFKDB4MTA1MiwgTlVMTCksCiBZQU1BSEFfREVWSUNFKDB4MjAwMCwgIkRHUC03IiksCiBZQU1BSEFfREVWSUNFKDB4MjAwMSwgIkRHUC01IiksCiBZQU1BSEFfREVWSUNFKDB4MjAwMiwgTlVMTCksCkBAIC0xMzc5LDYgKzEzODQsMzkgQEAKIAl9CiB9LAogCit7CisJLyogUm9sYW5kIFNvbmljQ2VsbCAqLworCVVTQl9ERVZJQ0UoMHgwNTgyLCAweDAwYzIpLAorCS5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKSAmIChjb25zdCBzdHJ1Y3Qgc25kX3VzYl9hdWRpb19xdWlyaykgeworCQkudmVuZG9yX25hbWUgPSAiUm9sYW5kIiwKKwkJLnByb2R1Y3RfbmFtZSA9ICJTb25pY0NlbGwiLAorCQkuaWZudW0gPSBRVUlSS19BTllfSU5URVJGQUNFLAorCQkudHlwZSA9IFFVSVJLX0NPTVBPU0lURSwKKwkJLmRhdGEgPSAoY29uc3Qgc3RydWN0IHNuZF91c2JfYXVkaW9fcXVpcmtbXSkgeworCQkJeworCQkJCS5pZm51bSA9IDAsCisJCQkJLnR5cGUgPSBRVUlSS19BVURJT19TVEFOREFSRF9JTlRFUkZBQ0UKKwkJCX0sCisJCQl7CisJCQkJLmlmbnVtID0gMSwKKwkJCQkudHlwZSA9IFFVSVJLX0FVRElPX1NUQU5EQVJEX0lOVEVSRkFDRQorCQkJfSwKKwkJCXsKKwkJCQkuaWZudW0gPSAyLAorCQkJCS50eXBlID0gUVVJUktfTUlESV9GSVhFRF9FTkRQT0lOVCwKKwkJCQkuZGF0YSA9ICYgKGNvbnN0IHN0cnVjdCBzbmRfdXNiX21pZGlfZW5kcG9pbnRfaW5mbykgeworCQkJCQkub3V0X2NhYmxlcyA9IDB4MDAwMSwKKwkJCQkJLmluX2NhYmxlcyAgPSAweDAwMDEKKwkJCQl9CisJCQl9LAorCQkJeworCQkJCS5pZm51bSA9IC0xCisJCQl9CisJCX0KKwl9Cit9LAorCisKIC8qIEd1aWxsZW1vdCBkZXZpY2VzICovCiB7CiAJLyoKZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2lvYXBpYy5jIGIvdmlydC9rdm0vaW9hcGljLmMKaW5kZXggMWRjZjlmMy4uNDQ1ODkwOCAxMDA2NDQKLS0tIGEvdmlydC9rdm0vaW9hcGljLmMKKysrIGIvdmlydC9rdm0vaW9hcGljLmMKQEAgLTI3OCw3ICsyNzgsNyBAQAogCiAJZW50LT5maWVsZHMucmVtb3RlX2lyciA9IDA7CiAJaWYgKCFlbnQtPmZpZWxkcy5tYXNrICYmIChpb2FwaWMtPmlyciAmICgxIDw8IGdzaSkpKQotCQlpb2FwaWNfZGVsaXZlcihpb2FwaWMsIGdzaSk7CisJCWlvYXBpY19zZXJ2aWNlKGlvYXBpYywgZ3NpKTsKIH0KIAogdm9pZCBrdm1faW9hcGljX3VwZGF0ZV9lb2koc3RydWN0IGt2bSAqa3ZtLCBpbnQgdmVjdG9yKQo=